from collections.abc import Mapping
from typing import List
from boto3.resources.collection import ResourceCollection
from botocore.waiter import Waiter
from botocore.paginate import Paginator
from botocore.client import BaseClient


class AccessAnalyzer(BaseClient):
    r"""AWS IAM Access Analyzer helps identify potential resource-access risks by enabling you to identify any policies that grant access to an external principal. It does this by using logic-based reasoning to analyze resource-based policies in your AWS environment. An external principal can be another AWS account, a root user, an IAM user or role, a federated user, an AWS service, or an anonymous user. You can also use Access Analyzer to preview and validate public and cross-account access to your resources before deploying permissions changes. This guide describes the AWS IAM Access Analyzer operations that you can call programmatically. For general information about Access Analyzer, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/what-is-access-analyzer.html">AWS IAM Access Analyzer</a> in the <b>IAM User Guide</b>. To start using Access Analyzer, you first need to create an analyzer."""


    class ListAnalyzedResourcesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_analyzed_resources` for valid parameters"""
            pass
    class ListAnalyzersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_analyzers` for valid parameters"""
            pass
    class ListArchiveRulesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_archive_rules` for valid parameters"""
            pass
    class ListFindingsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_findings` for valid parameters"""
            pass
    class ListAccessPreviewFindingsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_access_preview_findings` for valid parameters"""
            pass
    class ListAccessPreviewsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_access_previews` for valid parameters"""
            pass
    class ValidatePolicyPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `validate_policy` for valid parameters"""
            pass
    class ListPolicyGenerationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_policy_generations` for valid parameters"""
            pass


    class ApplyArchiveRuleRequest(Mapping):
        pass
    
    class CancelPolicyGenerationRequest(Mapping):
        pass
    
    class CancelPolicyGenerationResponse(Mapping):
        pass
    
    class CreateAccessPreviewRequest(Mapping):
        pass
    
    class CreateAccessPreviewResponse(Mapping):
        pass
    
    class ConfigurationsMap(object):
        pass
    
    class CreateAnalyzerRequest(Mapping):
        pass
    
    class CreateAnalyzerResponse(Mapping):
        pass
    
    class InlineArchiveRule(Mapping):
        pass
    
    class TagsMap(object):
        pass
    
    class CreateArchiveRuleRequest(Mapping):
        pass
    
    class FilterCriteriaMap(object):
        pass
    
    class DeleteAnalyzerRequest(Mapping):
        pass
    
    class DeleteArchiveRuleRequest(Mapping):
        pass
    
    class GetAccessPreviewRequest(Mapping):
        pass
    
    class GetAccessPreviewResponse(Mapping):
        pass
    
    class GetAnalyzedResourceRequest(Mapping):
        pass
    
    class GetAnalyzedResourceResponse(Mapping):
        pass
    
    class GetAnalyzerRequest(Mapping):
        pass
    
    class GetAnalyzerResponse(Mapping):
        pass
    
    class GetArchiveRuleRequest(Mapping):
        pass
    
    class GetArchiveRuleResponse(Mapping):
        pass
    
    class GetFindingRequest(Mapping):
        pass
    
    class GetFindingResponse(Mapping):
        pass
    
    class GetGeneratedPolicyRequest(Mapping):
        pass
    
    class GetGeneratedPolicyResponse(Mapping):
        pass
    
    class Boolean(object):
        pass
    
    class ListAccessPreviewFindingsRequest(Mapping):
        pass
    
    class ListAccessPreviewFindingsResponse(Mapping):
        pass
    
    class ListAccessPreviewsRequest(Mapping):
        pass
    
    class ListAccessPreviewsResponse(Mapping):
        pass
    
    class ListAnalyzedResourcesRequest(Mapping):
        pass
    
    class ListAnalyzedResourcesResponse(Mapping):
        pass
    
    class ListAnalyzersRequest(Mapping):
        pass
    
    class ListAnalyzersResponse(Mapping):
        pass
    
    class ListArchiveRulesRequest(Mapping):
        pass
    
    class ListArchiveRulesResponse(Mapping):
        pass
    
    class ListFindingsRequest(Mapping):
        pass
    
    class ListFindingsResponse(Mapping):
        pass
    
    class SortCriteria(Mapping):
        pass
    
    class ListPolicyGenerationsRequest(Mapping):
        pass
    
    class ListPolicyGenerationsResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class StartPolicyGenerationRequest(Mapping):
        pass
    
    class StartPolicyGenerationResponse(Mapping):
        pass
    
    class CloudTrailDetails(Mapping):
        pass
    
    class PolicyGenerationDetails(Mapping):
        pass
    
    class StartResourceScanRequest(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class String(object):
        pass
    
    class UpdateArchiveRuleRequest(Mapping):
        pass
    
    class UpdateFindingsRequest(Mapping):
        pass
    
    class FindingId(object):
        pass
    
    class ValidatePolicyRequest(Mapping):
        pass
    
    class ValidatePolicyResponse(Mapping):
        pass
    
    def apply_archive_rule(self, ruleName: str, analyzerArn: str, clientToken: str=None):
        r"""Retroactively applies the archive rule to existing findings that meet the archive rule criteria.

        :param self:
        :param ruleName:  The name of the rule to apply.<br/>clientToken:  A client token.<br/>analyzerArn:  The Amazon resource name (ARN) of the analyzer.<br/>
        :return:         """
        pass

    def cancel_policy_generation(self, jobId: str) -> CancelPolicyGenerationResponse:
        r"""Cancels the requested policy generation.

        :param self:
        :param jobId:  The <code>JobId</code> that is returned by the <code>StartPolicyGeneration</code> operation. The <code>JobId</code> can be used with <code>GetGeneratedPolicy</code> to retrieve the generated policies or used with <code>CancelPolicyGeneration</code> to cancel the policy generation request.<br/>
        :return:         """
        pass

    def create_access_preview(self, configurations: ConfigurationsMap, analyzerArn: str, clientToken: str=None) -> CreateAccessPreviewResponse:
        r"""Creates an access preview that allows you to preview Access Analyzer findings for your resource before deploying resource permissions.

        :param self:
        :param configurations:  Access control configuration for your resource that is used to generate the access preview. The access preview includes findings for external access allowed to the resource with the proposed access control configuration. The configuration must contain exactly one element.<br/>clientToken:  A client token.<br/>analyzerArn:  The <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-getting-started.html#permission-resources">ARN of the account analyzer</a> used to generate the access preview. You can only create an access preview for analyzers with an <code>Account</code> type and <code>Active</code> status.<br/>
        :return: id:  The unique ID for the access preview.<br/>        """
        pass

    def create_analyzer(self, type: str, analyzerName: str, archiveRules: List[InlineArchiveRule]=None, clientToken: str=None, tags: TagsMap=None) -> CreateAnalyzerResponse:
        r"""Creates an analyzer for your account.

        :param self:
        :param type:  The type of analyzer to create. Only ACCOUNT and ORGANIZATION analyzers are supported. You can create only one analyzer per account per Region. You can create up to 5 analyzers per organization per Region.<br/>tags:  The tags to apply to the analyzer.<br/>clientToken:  A client token.<br/>archiveRules:  Specifies the archive rules to add for the analyzer. Archive rules automatically archive findings that meet the criteria you define for the rule.<br/>analyzerName:  The name of the analyzer to create.<br/>
        :return: arn:  The ARN of the analyzer that was created by the request.<br/>        """
        pass

    def create_archive_rule(self, ruleName: str, filter: FilterCriteriaMap, analyzerName: str, clientToken: str=None):
        r"""Creates an archive rule for the specified analyzer. Archive rules automatically archive new findings that meet the criteria you define when you create the rule. To learn about filter keys that you can use to create an archive rule, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-reference-filter-keys.html">Access Analyzer filter keys</a> in the <b>IAM User Guide</b>.

        :param self:
        :param ruleName:  The name of the rule to create.<br/>filter:  The criteria for the rule.<br/>clientToken:  A client token.<br/>analyzerName:  The name of the created analyzer.<br/>
        :return:         """
        pass

    def delete_analyzer(self, analyzerName: str, clientToken: str=None):
        r"""Deletes the specified analyzer. When you delete an analyzer, Access Analyzer is disabled for the account or organization in the current or specific Region. All findings that were generated by the analyzer are deleted. You cannot undo this action.

        :param self:
        :param clientToken:  A client token.<br/>analyzerName:  The name of the analyzer to delete.<br/>
        :return:         """
        pass

    def delete_archive_rule(self, ruleName: str, analyzerName: str, clientToken: str=None):
        r"""Deletes the specified archive rule.

        :param self:
        :param ruleName:  The name of the rule to delete.<br/>clientToken:  A client token.<br/>analyzerName:  The name of the analyzer that associated with the archive rule to delete.<br/>
        :return:         """
        pass

    def get_access_preview(self, analyzerArn: str, accessPreviewId: str) -> GetAccessPreviewResponse:
        r"""Retrieves information about an access preview for the specified analyzer.

        :param self:
        :param analyzerArn:  The <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-getting-started.html#permission-resources">ARN of the analyzer</a> used to generate the access preview.<br/>accessPreviewId:  The unique ID for the access preview.<br/>
        :return: accessPreview:  An object that contains information about the access preview.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusReason</i> Provides more details about the current status of the access preview. For example, if the creation of the access preview fails, a <code>Failed</code> status is returned. This failure can be due to an internal issue with the analysis or due to an invalid resource configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>statusReason</b>: Provides more details about the current status of the access preview. For example, if the creation of the access preview fails, a <code>Failed</code> status is returned. This failure can be due to an internal issue with the analysis or due to an invalid resource configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the access preview. <ul> <li>  <code>Creating</code> - The access preview creation is in progress. </li> <li>  <code>Completed</code> - The access preview is complete. You can preview findings for external access to the resource. </li> <li>  <code>Failed</code> - The access preview creation has failed. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The unique ID for the access preview.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The time at which the access preview was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>configurations</i> A map of resource ARNs for the proposed resource configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>analyzerArn</i> The ARN of the analyzer used to generate the access preview.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>code</i> The reason code for the current status of the access preview.<br/>        """
        pass

    def get_analyzed_resource(self, resourceArn: str, analyzerArn: str) -> GetAnalyzedResourceResponse:
        r"""Retrieves information about a resource that was analyzed.

        :param self:
        :param resourceArn:  The ARN of the resource to retrieve information about.<br/>analyzerArn:  The <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-getting-started.html#permission-resources">ARN of the analyzer</a> to retrieve information from.<br/>
        :return: resource:  An <code>AnalyzedResource</code> object that contains information that Access Analyzer found when it analyzed the resource.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>updatedAt</i> The time at which the finding was updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current status of the finding generated from the analyzed resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>sharedVia</i> Indicates how the access that generated the finding is granted. This is populated for Amazon S3 bucket findings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceType</i> The type of the resource that was analyzed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceOwnerAccount</i> The AWS account ID that owns the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceArn</i> The ARN of the resource that was analyzed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>isPublic</i> Indicates whether the policy that generated the finding grants public access to the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>error</i> An error message.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The time at which the finding was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>analyzedAt</i> The time at which the resource was analyzed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>actions</i> The actions that an external principal is granted permission to use by the policy that generated the finding.<br/>        """
        pass

    def get_analyzer(self, analyzerName: str) -> GetAnalyzerResponse:
        r"""Retrieves information about the specified analyzer.

        :param self:
        :param analyzerName:  The name of the analyzer retrieved.<br/>
        :return: analyzer:  An <code>AnalyzerSummary</code> object that contains information about the analyzer.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of analyzer, which corresponds to the zone of trust chosen for the analyzer.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The tags added to the analyzer.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusReason</i> The <code>statusReason</code> provides more details about the current status of the analyzer. For example, if the creation for the analyzer fails, a <code>Failed</code> status is returned. For an analyzer with organization as the type, this failure can be due to an issue with creating the service-linked roles required in the member accounts of the AWS organization.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>statusReason</b>: The <code>statusReason</code> provides more details about the current status of the analyzer. For example, if the creation for the analyzer fails, a <code>Failed</code> status is returned. For an analyzer with organization as the type, this failure can be due to an issue with creating the service-linked roles required in the member accounts of the AWS organization.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the analyzer. An <code>Active</code> analyzer successfully monitors supported resources and generates new findings. The analyzer is <code>Disabled</code> when a user action, such as removing trusted access for AWS IAM Access Analyzer from AWS Organizations, causes the analyzer to stop generating new findings. The status is <code>Creating</code> when the analyzer creation is in progress and <code>Failed</code> when the analyzer creation has failed. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the analyzer.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastResourceAnalyzedAt</i> The time at which the most recently analyzed resource was analyzed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastResourceAnalyzed</i> The resource that was most recently analyzed by the analyzer.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> A timestamp for the time at which the analyzer was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The ARN of the analyzer.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>code</i> The reason code for the current status of the analyzer.<br/>        """
        pass

    def get_archive_rule(self, ruleName: str, analyzerName: str) -> GetArchiveRuleResponse:
        r"""Retrieves information about an archive rule. To learn about filter keys that you can use to create an archive rule, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-reference-filter-keys.html">Access Analyzer filter keys</a> in the <b>IAM User Guide</b>.

        :param self:
        :param ruleName:  The name of the rule to retrieve.<br/>analyzerName:  The name of the analyzer to retrieve rules from.<br/>
        :return: archiveRule:  Contains information about an archive rule.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>updatedAt</i> The time at which the archive rule was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ruleName</i> The name of the archive rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>filter</i> A filter used to define the archive rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The time at which the archive rule was created.<br/>        """
        pass

    def get_finding(self, id: str, analyzerArn: str) -> GetFindingResponse:
        r"""Retrieves information about the specified finding.

        :param self:
        :param id:  The ID of the finding to retrieve.<br/>analyzerArn:  The <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-getting-started.html#permission-resources">ARN of the analyzer</a> that generated the finding.<br/>
        :return: finding:  A <code>finding</code> object that contains finding details.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>updatedAt</i> The time at which the finding was updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current status of the finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>sources</i> The sources of the finding. This indicates how the access that generated the finding is granted. It is populated for Amazon S3 bucket findings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceType</i> The type of the resource identified in the finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceOwnerAccount</i> The AWS account ID that owns the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resource</i> The resource that an external principal has access to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>principal</i> The external principal that access to a resource within the zone of trust.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>isPublic</i> Indicates whether the policy that generated the finding allows public access to the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The ID of the finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>error</i> An error.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The time at which the finding was generated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>condition</i> The condition in the analyzed policy statement that resulted in a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>analyzedAt</i> The time at which the resource was analyzed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>action</i> The action in the analyzed policy statement that an external principal has permission to use.<br/>        """
        pass

    def get_generated_policy(self, jobId: str, includeResourcePlaceholders: Boolean=None, includeServiceLevelTemplate: Boolean=None) -> GetGeneratedPolicyResponse:
        r"""Retrieves the policy that was generated using <code>StartPolicyGeneration</code>. 

        :param self:
        :param jobId:  The <code>JobId</code> that is returned by the <code>StartPolicyGeneration</code> operation. The <code>JobId</code> can be used with <code>GetGeneratedPolicy</code> to retrieve the generated policies or used with <code>CancelPolicyGeneration</code> to cancel the policy generation request.<br/>includeServiceLevelTemplate:  The level of detail that you want to generate. You can specify whether to generate service-level policies.  Access Analyzer uses <code>iam:servicelastaccessed</code> to identify services that have been used recently to create this service-level template.<br/>includeResourcePlaceholders:  The level of detail that you want to generate. You can specify whether to generate policies with placeholders for resource ARNs for actions that support resource level granularity in policies. For example, in the resource section of a policy, you can receive a placeholder such as <code>"Resource":"arn:aws:s3:::${BucketName}"</code> instead of <code>"*"</code>.<br/>
        :return: jobDetails:  A <code>GeneratedPolicyDetails</code> object that contains details about the generated policy.:<br/>generatedPolicyResult:  A <code>GeneratedPolicyResult</code> object that contains the generated policies and associated details.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>properties</i> A <code>GeneratedPolicyProperties</code> object that contains properties of the generated policy.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>properties</b>: A <code>GeneratedPolicyProperties</code> object that contains properties of the generated policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>generatedPolicies</i> The text to use as the content for the new policy. The policy is created using the <a href="https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreatePolicy.html">CreatePolicy</a> action.<br/>Lists details about the <code>Trail</code> used to generated policy.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>cloudTrailProperties</b>: Lists details about the <code>Trail</code> used to generated policy.&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the job request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>startedOn</i> A timestamp of when the job was started.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>jobId</i> The <code>JobId</code> that is returned by the <code>StartPolicyGeneration</code> operation. The <code>JobId</code> can be used with <code>GetGeneratedPolicy</code> to retrieve the generated policies or used with <code>CancelPolicyGeneration</code> to cancel the policy generation request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>jobError</i> Contains the details about the policy generation error.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>jobError</b>: Contains the details about the policy generation error.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>completedOn</i> A timestamp of when the job was completed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>message</i> Specific information about the error. For example, which service quota was exceeded or which resource was not found.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>code</i> The job error code.<br/>        """
        pass

    def list_access_preview_findings(self, analyzerArn: str, accessPreviewId: str, filter: FilterCriteriaMap=None, maxResults: int=None, nextToken: str=None) -> ListAccessPreviewFindingsResponse:
        r"""Retrieves a list of access preview findings generated by the specified access preview.

        :param self:
        :param nextToken:  A token used for pagination of results returned.<br/>maxResults:  The maximum number of results to return in the response.<br/>filter:  Criteria to filter the returned findings.<br/>analyzerArn:  The <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-getting-started.html#permission-resources">ARN of the analyzer</a> used to generate the access.<br/>accessPreviewId:  The unique ID for the access preview.<br/>
        :return: nextToken:  A token used for pagination of results returned.<br/>findings:  A list of access preview findings that match the specified filter criteria.<br/>        """
        pass

    def list_access_previews(self, analyzerArn: str, maxResults: int=None, nextToken: str=None) -> ListAccessPreviewsResponse:
        r"""Retrieves a list of access previews for the specified analyzer.

        :param self:
        :param nextToken:  A token used for pagination of results returned.<br/>maxResults:  The maximum number of results to return in the response.<br/>analyzerArn:  The <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-getting-started.html#permission-resources">ARN of the analyzer</a> used to generate the access preview.<br/>
        :return: nextToken:  A token used for pagination of results returned.<br/>accessPreviews:  A list of access previews retrieved for the analyzer.<br/>        """
        pass

    def list_analyzed_resources(self, analyzerArn: str, maxResults: int=None, nextToken: str=None, resourceType: str=None) -> ListAnalyzedResourcesResponse:
        r"""Retrieves a list of resources of the specified type that have been analyzed by the specified analyzer..

        :param self:
        :param resourceType:  The type of resource.<br/>nextToken:  A token used for pagination of results returned.<br/>maxResults:  The maximum number of results to return in the response.<br/>analyzerArn:  The <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-getting-started.html#permission-resources">ARN of the analyzer</a> to retrieve a list of analyzed resources from.<br/>
        :return: nextToken:  A token used for pagination of results returned.<br/>analyzedResources:  A list of resources that were analyzed.<br/>        """
        pass

    def list_analyzers(self, maxResults: int=None, nextToken: str=None, type: str=None) -> ListAnalyzersResponse:
        r"""Retrieves a list of analyzers.

        :param self:
        :param type:  The type of analyzer.<br/>nextToken:  A token used for pagination of results returned.<br/>maxResults:  The maximum number of results to return in the response.<br/>
        :return: nextToken:  A token used for pagination of results returned.<br/>analyzers:  The analyzers retrieved.<br/>        """
        pass

    def list_archive_rules(self, analyzerName: str, maxResults: int=None, nextToken: str=None) -> ListArchiveRulesResponse:
        r"""Retrieves a list of archive rules created for the specified analyzer.

        :param self:
        :param nextToken:  A token used for pagination of results returned.<br/>maxResults:  The maximum number of results to return in the request.<br/>analyzerName:  The name of the analyzer to retrieve rules from.<br/>
        :return: nextToken:  A token used for pagination of results returned.<br/>archiveRules:  A list of archive rules created for the specified analyzer.<br/>        """
        pass

    def list_findings(self, analyzerArn: str, filter: FilterCriteriaMap=None, maxResults: int=None, nextToken: str=None, sort: SortCriteria=None) -> ListFindingsResponse:
        r"""Retrieves a list of findings generated by the specified analyzer. To learn about filter keys that you can use to retrieve a list of findings, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-reference-filter-keys.html">Access Analyzer filter keys</a> in the <b>IAM User Guide</b>.

        :param self:
        :param sort:  The sort order for the findings returned.:<br/>nextToken:  A token used for pagination of results returned.<br/>maxResults:  The maximum number of results to return in the response.<br/>filter:  A filter to match for the findings to return.<br/>analyzerArn:  The <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-getting-started.html#permission-resources">ARN of the analyzer</a> to retrieve findings from.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>orderBy</i> The sort order, ascending or descending.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>attributeName</i> The name of the attribute to sort on.<br/>
        :return: nextToken:  A token used for pagination of results returned.<br/>findings:  A list of findings retrieved from the analyzer that match the filter criteria specified, if any.<br/>        """
        pass

    def list_policy_generations(self, maxResults: int=None, nextToken: str=None, principalArn: str=None) -> ListPolicyGenerationsResponse:
        r"""Lists all of the policy generations requested in the last seven days.

        :param self:
        :param principalArn:  The ARN of the IAM entity (user or role) for which you are generating a policy. Use this with <code>ListGeneratedPolicies</code> to filter the results to only include results for a specific principal.<br/>nextToken:  A token used for pagination of results returned.<br/>maxResults:  The maximum number of results to return in the response.<br/>
        :return: policyGenerations:  A <code>PolicyGeneration</code> object that contains details about the generated policy.<br/>nextToken:  A token used for pagination of results returned.<br/>        """
        pass

    def list_tags_for_resource(self, resourceArn: str) -> ListTagsForResourceResponse:
        r"""Retrieves a list of tags applied to the specified resource.

        :param self:
        :param resourceArn:  The ARN of the resource to retrieve tags from.<br/>
        :return: tags:  The tags that are applied to the specified resource.<br/>        """
        pass

    def start_policy_generation(self, policyGenerationDetails: PolicyGenerationDetails, clientToken: str=None, cloudTrailDetails: CloudTrailDetails=None) -> StartPolicyGenerationResponse:
        r"""Starts the policy generation request.

        :param self:
        :param policyGenerationDetails:  Contains the ARN of the IAM entity (user or role) for which you are generating a policy.:<br/>cloudTrailDetails:  A <code>CloudTrailDetails</code> object that contains details about a <code>Trail</code> that you want to analyze to generate policies.:<br/>clientToken:  A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, the subsequent retries with the same client token return the result from the original successful request and they have no additional effect. If you do not specify a client token, one is automatically generated by the AWS SDK.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>trails</i> A <code>Trail</code> object that contains settings for a trail.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>startTime</i> The start of the time range for which Access Analyzer reviews your CloudTrail events. Events with a timestamp before this time are not considered to generate a policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>endTime</i> The end of the time range for which Access Analyzer reviews your CloudTrail events. Events with a timestamp after this time are not considered to generate a policy. If this is not included in the request, the default value is the current time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>accessRole</i> The ARN of the service role that Access Analyzer uses to access your CloudTrail trail and service last accessed information.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>principalArn</i> The ARN of the IAM entity (user or role) for which you are generating a policy.<br/>
        :return: jobId:  The <code>JobId</code> that is returned by the <code>StartPolicyGeneration</code> operation. The <code>JobId</code> can be used with <code>GetGeneratedPolicy</code> to retrieve the generated policies or used with <code>CancelPolicyGeneration</code> to cancel the policy generation request.<br/>        """
        pass

    def start_resource_scan(self, resourceArn: str, analyzerArn: str):
        r"""Immediately starts a scan of the policies applied to the specified resource.

        :param self:
        :param resourceArn:  The ARN of the resource to scan.<br/>analyzerArn:  The <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-getting-started.html#permission-resources">ARN of the analyzer</a> to use to scan the policies applied to the specified resource.<br/>
        :return:         """
        pass

    def tag_resource(self, tags: TagsMap, resourceArn: str) -> TagResourceResponse:
        r"""Adds a tag to the specified resource.

        :param self:
        :param tags:  The tags to add to the resource.<br/>resourceArn:  The ARN of the resource to add the tag to.<br/>
        :return:         """
        pass

    def untag_resource(self, tagKeys: List[String], resourceArn: str) -> UntagResourceResponse:
        r"""Removes a tag from the specified resource.

        :param self:
        :param tagKeys:  The key for the tag to add.<br/>resourceArn:  The ARN of the resource to remove the tag from.<br/>
        :return:         """
        pass

    def update_archive_rule(self, ruleName: str, filter: FilterCriteriaMap, analyzerName: str, clientToken: str=None):
        r"""Updates the criteria and values for the specified archive rule.

        :param self:
        :param ruleName:  The name of the rule to update.<br/>filter:  A filter to match for the rules to update. Only rules that match the filter are updated.<br/>clientToken:  A client token.<br/>analyzerName:  The name of the analyzer to update the archive rules for.<br/>
        :return:         """
        pass

    def update_findings(self, status: str, analyzerArn: str, clientToken: str=None, ids: List[FindingId]=None, resourceArn: str=None):
        r"""Updates the status for the specified findings.

        :param self:
        :param status:  The state represents the action to take to update the finding Status. Use <code>ARCHIVE</code> to change an Active finding to an Archived finding. Use <code>ACTIVE</code> to change an Archived finding to an Active finding.<br/>resourceArn:  The ARN of the resource identified in the finding.<br/>ids:  The IDs of the findings to update.<br/>clientToken:  A client token.<br/>analyzerArn:  The <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-getting-started.html#permission-resources">ARN of the analyzer</a> that generated the findings to update.<br/>
        :return:         """
        pass

    def validate_policy(self, policyType: str, policyDocument: str, locale: str=None, maxResults: int=None, nextToken: str=None) -> ValidatePolicyResponse:
        r"""Requests the validation of a policy and returns a list of findings. The findings help you identify issues and provide actionable recommendations to resolve the issue and enable you to author functional policies that meet security best practices. 

        :param self:
        :param policyType:  The type of policy to validate. Identity policies grant permissions to IAM principals. Identity policies include managed and inline policies for IAM roles, users, and groups. They also include service-control policies (SCPs) that are attached to an AWS organization, organizational unit (OU), or an account. Resource policies grant permissions on AWS resources. Resource policies include trust policies for IAM roles and bucket policies for S3 buckets. You can provide a generic input such as identity policy or resource policy or a specific input such as managed policy or S3 bucket policy. <br/>policyDocument:  The JSON policy document to use as the content for the policy.<br/>nextToken:  A token used for pagination of results returned.<br/>maxResults:  The maximum number of results to return in the response.<br/>locale:  The locale to use for localizing the findings.<br/>
        :return: nextToken:  A token used for pagination of results returned.<br/>findings:  The list of findings in a policy returned by Access Analyzer based on its suite of policy checks.<br/>        """
        pass





class ACM(BaseClient):
    r"""<fullname>AWS Certificate Manager</fullname> You can use AWS Certificate Manager (ACM) to manage SSL/TLS certificates for your AWS-based websites and applications. For more information about using ACM, see the <a href="https://docs.aws.amazon.com/acm/latest/userguide/">AWS Certificate Manager User Guide</a>."""

    class CertificateValidatedWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_certificate` for valid parameters"""
            pass


    class ListCertificatesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_certificates` for valid parameters"""
            pass


    class AddTagsToCertificateRequest(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class DeleteCertificateRequest(Mapping):
        pass
    
    class DescribeCertificateRequest(Mapping):
        pass
    
    class DescribeCertificateResponse(Mapping):
        pass
    
    class ExportCertificateRequest(Mapping):
        pass
    
    class ExportCertificateResponse(Mapping):
        pass
    
    class PassphraseBlob(object):
        pass
    
    class GetAccountConfigurationResponse(Mapping):
        pass
    
    class GetCertificateRequest(Mapping):
        pass
    
    class GetCertificateResponse(Mapping):
        pass
    
    class ImportCertificateRequest(Mapping):
        pass
    
    class ImportCertificateResponse(Mapping):
        pass
    
    class CertificateBodyBlob(object):
        pass
    
    class PrivateKeyBlob(object):
        pass
    
    class CertificateChainBlob(object):
        pass
    
    class ListCertificatesRequest(Mapping):
        pass
    
    class ListCertificatesResponse(Mapping):
        pass
    
    class CertificateStatus(object):
        pass
    
    class Filters(Mapping):
        pass
    
    class ListTagsForCertificateRequest(Mapping):
        pass
    
    class ListTagsForCertificateResponse(Mapping):
        pass
    
    class PutAccountConfigurationRequest(Mapping):
        pass
    
    class ExpiryEventsConfiguration(Mapping):
        pass
    
    class RemoveTagsFromCertificateRequest(Mapping):
        pass
    
    class RenewCertificateRequest(Mapping):
        pass
    
    class RequestCertificateRequest(Mapping):
        pass
    
    class RequestCertificateResponse(Mapping):
        pass
    
    class DomainNameString(object):
        pass
    
    class DomainValidationOption(Mapping):
        pass
    
    class CertificateOptions(Mapping):
        pass
    
    class ResendValidationEmailRequest(Mapping):
        pass
    
    class UpdateCertificateOptionsRequest(Mapping):
        pass
    
    def add_tags_to_certificate(self, Tags: List[Tag], CertificateArn: str):
        r"""Adds one or more tags to an ACM certificate. Tags are labels that you can use to identify and organize your AWS resources. Each tag consists of a <code>key</code> and an optional <code>value</code>. You specify the certificate on input by its Amazon Resource Name (ARN). You specify the tag by using a key-value pair.  You can apply a tag to just one certificate if you want to identify a specific characteristic of that certificate, or you can apply the same tag to multiple certificates if you want to filter for a common relationship among those certificates. Similarly, you can apply the same tag to multiple resources if you want to specify a relationship among those resources. For example, you can add the same tag to an ACM certificate and an Elastic Load Balancing load balancer to indicate that they are both used by the same website. For more information, see <a href="https://docs.aws.amazon.com/acm/latest/userguide/tags.html">Tagging ACM certificates</a>.  To remove one or more tags, use the <a>RemoveTagsFromCertificate</a> action. To view all of the tags that have been applied to the certificate, use the <a>ListTagsForCertificate</a> action. 

        :param self:
        :param Tags:  The key-value pair that defines the tag. The tag value is optional.<br/>CertificateArn:  String that contains the ARN of the ACM certificate to which the tag is to be applied. This must be of the form:  <code>arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012</code>  For more information about ARNs, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs)</a>.<br/>
        :return:         """
        pass

    def delete_certificate(self, CertificateArn: str):
        r"""Deletes a certificate and its associated private key. If this action succeeds, the certificate no longer appears in the list that can be displayed by calling the <a>ListCertificates</a> action or be retrieved by calling the <a>GetCertificate</a> action. The certificate will not be available for use by AWS services integrated with ACM.  <note> You cannot delete an ACM certificate that is being used by another AWS service. To delete a certificate that is in use, the certificate association must first be removed. </note>

        :param self:
        :param CertificateArn:  String that contains the ARN of the ACM certificate to be deleted. This must be of the form:  <code>arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012</code>  For more information about ARNs, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs)</a>.<br/>
        :return:         """
        pass

    def describe_certificate(self, CertificateArn: str) -> DescribeCertificateResponse:
        r"""Returns detailed metadata about the specified ACM certificate.

        :param self:
        :param CertificateArn:  The Amazon Resource Name (ARN) of the ACM certificate. The ARN must have the following form:  <code>arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012</code>  For more information about ARNs, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs)</a>.<br/>
        :return: Certificate:  Metadata about an ACM certificate.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Options</i> Value that specifies whether to add the certificate to a transparency log. Certificate transparency makes it possible to detect SSL certificates that have been mistakenly or maliciously issued. A browser might respond to certificate that has not been logged by showing an error message. The logs are cryptographically secure. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Options</b>: Value that specifies whether to add the certificate to a transparency log. Certificate transparency makes it possible to detect SSL certificates that have been mistakenly or maliciously issued. A browser might respond to certificate that has not been logged by showing an error message. The logs are cryptographically secure. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RenewalEligibility</i> Specifies whether the certificate is eligible for renewal. At this time, only exported private certificates can be renewed with the <a>RenewCertificate</a> command.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CertificateAuthorityArn</i> The Amazon Resource Name (ARN) of the ACM PCA private certificate authority (CA) that issued the certificate. This has the following format:   <code>arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExtendedKeyUsages</i> Contains a list of Extended Key Usage X.509 v3 extension objects. Each object specifies a purpose for which the certificate public key can be used and consists of a name and an object identifier (OID). <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KeyUsages</i> A list of Key Usage X.509 v3 extension objects. Each object is a string value that identifies the purpose of the public key contained in the certificate. Possible extension values include DIGITAL_SIGNATURE, KEY_ENCHIPHERMENT, NON_REPUDIATION, and more.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RenewalSummary</i> Contains information about the status of ACM's <a href="https://docs.aws.amazon.com/acm/latest/userguide/acm-renewal.html">managed renewal</a> for the certificate. This field exists only when the certificate type is <code>AMAZON_ISSUED</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RenewalSummary</b>: Contains information about the status of ACM's <a href="https://docs.aws.amazon.com/acm/latest/userguide/acm-renewal.html">managed renewal</a> for the certificate. This field exists only when the certificate type is <code>AMAZON_ISSUED</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The source of the certificate. For certificates provided by ACM, this value is <code>AMAZON_ISSUED</code>. For certificates that you imported with <a>ImportCertificate</a>, this value is <code>IMPORTED</code>. ACM does not provide <a href="https://docs.aws.amazon.com/acm/latest/userguide/acm-renewal.html">managed renewal</a> for imported certificates. For more information about the differences between certificates that you import and those that ACM provides, see <a href="https://docs.aws.amazon.com/acm/latest/userguide/import-certificate.html">Importing Certificates</a> in the <i>AWS Certificate Manager User Guide</i>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FailureReason</i> The reason the certificate request failed. This value exists only when the certificate status is <code>FAILED</code>. For more information, see <a href="https://docs.aws.amazon.com/acm/latest/userguide/troubleshooting.html#troubleshooting-failed">Certificate Request Failed</a> in the <i>AWS Certificate Manager User Guide</i>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InUseBy</i> A list of ARNs for the AWS resources that are using the certificate. A certificate can be used by multiple AWS resources. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SignatureAlgorithm</i> The algorithm that was used to sign the certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KeyAlgorithm</i> The algorithm that was used to generate the public-private key pair.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NotAfter</i> The time after which the certificate is not valid.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NotBefore</i> The time before which the certificate is not valid.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RevocationReason</i> The reason the certificate was revoked. This value exists only when the certificate status is <code>REVOKED</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RevokedAt</i> The time at which the certificate was revoked. This value exists only when the certificate status is <code>REVOKED</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImportedAt</i> The date and time at which the certificate was imported. This value exists only when the certificate type is <code>IMPORTED</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IssuedAt</i> The time at which the certificate was issued. This value exists only when the certificate type is <code>AMAZON_ISSUED</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedAt</i> The time at which the certificate was requested.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Issuer</i> The name of the certificate authority that issued and signed the certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Subject</i> The name of the entity that is associated with the public key contained in the certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Serial</i> The serial number of the certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainValidationOptions</i> Contains information about the initial validation of each domain name that occurs as a result of the <a>RequestCertificate</a> request. This field exists only when the certificate type is <code>AMAZON_ISSUED</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubjectAlternativeNames</i> One or more domain names (subject alternative names) included in the certificate. This list contains the domain names that are bound to the public key that is contained in the certificate. The subject alternative names include the canonical domain name (CN) of the certificate and additional domain names that can be used to connect to the website. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainName</i> The fully qualified domain name for the certificate, such as www.example.com or example.com.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CertificateArn</i> The Amazon Resource Name (ARN) of the certificate. For more information about ARNs, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs)</a> in the <i>AWS General Reference</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdatedAt</i> The time at which the renewal summary was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RenewalStatusReason</i> The reason that a renewal request was unsuccessful.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainValidationOptions</i> Contains information about the validation of each domain name in the certificate, as it pertains to ACM's <a href="https://docs.aws.amazon.com/acm/latest/userguide/acm-renewal.html">managed renewal</a>. This is different from the initial validation that occurs as a result of the <a>RequestCertificate</a> request. This field exists only when the certificate type is <code>AMAZON_ISSUED</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RenewalStatus</i> The status of ACM's <a href="https://docs.aws.amazon.com/acm/latest/userguide/acm-renewal.html">managed renewal</a> of the certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CertificateTransparencyLoggingPreference</i> You can opt out of certificate transparency logging by specifying the <code>DISABLED</code> option. Opt in by specifying <code>ENABLED</code>. <br/>        """
        pass

    def export_certificate(self, Passphrase: PassphraseBlob, CertificateArn: str) -> ExportCertificateResponse:
        r"""Exports a private certificate issued by a private certificate authority (CA) for use anywhere. The exported file contains the certificate, the certificate chain, and the encrypted private 2048-bit RSA key associated with the public key that is embedded in the certificate. For security, you must assign a passphrase for the private key when exporting it.  For information about exporting and formatting a certificate using the ACM console or CLI, see <a href="https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-export-private.html">Export a Private Certificate</a>.

        :param self:
        :param Passphrase:  Passphrase to associate with the encrypted exported private key. If you want to later decrypt the private key, you must have the passphrase. You can use the following OpenSSL command to decrypt a private key:   <code>openssl rsa -in encrypted_key.pem -out decrypted_key.pem</code> <br/>CertificateArn:  An Amazon Resource Name (ARN) of the issued certificate. This must be of the form:  <code>arn:aws:acm:region:account:certificate/12345678-1234-1234-1234-123456789012</code> <br/>
        :return: PrivateKey:  The encrypted private key associated with the public key in the certificate. The key is output in PKCS #8 format and is base64 PEM-encoded. <br/>CertificateChain:  The base64 PEM-encoded certificate chain. This does not include the certificate that you are exporting.<br/>Certificate:  The base64 PEM-encoded certificate.<br/>        """
        pass

    def get_account_configuration(self) -> GetAccountConfigurationResponse:
        r"""Returns the account configuration options associated with an AWS account.

        :param self:
        :param 
        :return: ExpiryEvents:  Expiration events configuration options associated with the AWS account.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DaysBeforeExpiry</i> Specifies the number of days prior to certificate expiration when ACM starts generating <code>EventBridge</code> events. ACM sends one event per day per certificate until the certificate expires. By default, accounts receive events starting 45 days before certificate expiration.<br/>        """
        pass

    def get_certificate(self, CertificateArn: str) -> GetCertificateResponse:
        r"""Retrieves an Amazon-issued certificate and its certificate chain. The chain consists of the certificate of the issuing CA and the intermediate certificates of any other subordinate CAs. All of the certificates are base64 encoded. You can use <a href="https://wiki.openssl.org/index.php/Command_Line_Utilities">OpenSSL</a> to decode the certificates and inspect individual fields.

        :param self:
        :param CertificateArn:  String that contains a certificate ARN in the following format:  <code>arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012</code>  For more information about ARNs, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs)</a>.<br/>
        :return: CertificateChain:  Certificates forming the requested certificate's chain of trust. The chain consists of the certificate of the issuing CA and the intermediate certificates of any other subordinate CAs. <br/>Certificate:  The ACM-issued certificate corresponding to the ARN specified as input.<br/>        """
        pass

    def import_certificate(self, PrivateKey: PrivateKeyBlob, Certificate: CertificateBodyBlob, CertificateArn: str=None, CertificateChain: CertificateChainBlob=None, Tags: List[Tag]=None) -> ImportCertificateResponse:
        r"""Imports a certificate into AWS Certificate Manager (ACM) to use with services that are integrated with ACM. Note that <a href="https://docs.aws.amazon.com/acm/latest/userguide/acm-services.html">integrated services</a> allow only certificate types and keys they support to be associated with their resources. Further, their support differs depending on whether the certificate is imported into IAM or into ACM. For more information, see the documentation for each service. For more information about importing certificates into ACM, see <a href="https://docs.aws.amazon.com/acm/latest/userguide/import-certificate.html">Importing Certificates</a> in the <i>AWS Certificate Manager User Guide</i>.  <note> ACM does not provide <a href="https://docs.aws.amazon.com/acm/latest/userguide/acm-renewal.html">managed renewal</a> for certificates that you import. </note> Note the following guidelines when importing third party certificates: <ul> <li> You must enter the private key that matches the certificate you are importing. </li> <li> The private key must be unencrypted. You cannot import a private key that is protected by a password or a passphrase. </li> <li> The private key must be no larger than 5 KB (5,120 bytes). </li> <li> If the certificate you are importing is not self-signed, you must enter its certificate chain. </li> <li> If a certificate chain is included, the issuer must be the subject of one of the certificates in the chain. </li> <li> The certificate, private key, and certificate chain must be PEM-encoded. </li> <li> The current time must be between the <code>Not Before</code> and <code>Not After</code> certificate fields. </li> <li> The <code>Issuer</code> field must not be empty. </li> <li> The OCSP authority URL, if present, must not exceed 1000 characters. </li> <li> To import a new certificate, omit the <code>CertificateArn</code> argument. Include this argument only when you want to replace a previously imported certificate. </li> <li> When you import a certificate by using the CLI, you must specify the certificate, the certificate chain, and the private key by their file names preceded by <code>fileb://</code>. For example, you can specify a certificate saved in the <code>C:\temp</code> folder as <code>fileb://C:\temp\certificate_to_import.pem</code>. If you are making an HTTP or HTTPS Query request, include these arguments as BLOBs.  </li> <li> When you import a certificate by using an SDK, you must specify the certificate, the certificate chain, and the private key files in the manner required by the programming language you're using.  </li> <li> The cryptographic algorithm of an imported certificate must match the algorithm of the signing CA. For example, if the signing CA key type is RSA, then the certificate key type must also be RSA. </li> </ul> This operation returns the <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Name (ARN)</a> of the imported certificate.

        :param self:
        :param Tags:  One or more resource tags to associate with the imported certificate.  Note: You cannot apply tags when reimporting a certificate.<br/>CertificateChain:  The PEM encoded certificate chain.<br/>PrivateKey:  The private key that matches the public key in the certificate.<br/>Certificate:  The certificate to import.<br/>CertificateArn:  The <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Name (ARN)</a> of an imported certificate to replace. To import a new certificate, omit this field. <br/>
        :return: CertificateArn:  The <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Name (ARN)</a> of the imported certificate.<br/>        """
        pass

    def list_certificates(self, CertificateStatuses: List[CertificateStatus]=None, Includes: Filters=None, NextToken: str=None, MaxItems: int=None) -> ListCertificatesResponse:
        r"""Retrieves a list of certificate ARNs and domain names. You can request that only certificates that match a specific status be listed. You can also filter by specific attributes of the certificate. Default filtering returns only <code>RSA_2048</code> certificates. For more information, see <a>Filters</a>.

        :param self:
        :param MaxItems:  Use this parameter when paginating results to specify the maximum number of items to return in the response. If additional items exist beyond the number you specify, the <code>NextToken</code> element is sent in the response. Use this <code>NextToken</code> value in a subsequent request to retrieve additional items.<br/>NextToken:  Use this parameter only when paginating results and only in a subsequent request after you receive a response with truncated results. Set it to the value of <code>NextToken</code> from the response you just received.<br/>Includes:  Filter the certificate list. For more information, see the <a>Filters</a> structure.:<br/>CertificateStatuses:  Filter the certificate list by status value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>keyTypes</i> Specify one or more algorithms that can be used to generate key pairs. Default filtering returns only <code>RSA_1024</code> and <code>RSA_2048</code> certificates that have at least one domain. To return other certificate types, provide the desired type signatures in a comma-separated list. For example, <code>"keyTypes": ["RSA_2048,RSA_4096"]</code> returns both <code>RSA_2048</code> and <code>RSA_4096</code> certificates.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>keyUsage</i> Specify one or more <a>KeyUsage</a> extension values.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>extendedKeyUsage</i> Specify one or more <a>ExtendedKeyUsage</a> extension values.<br/>
        :return: CertificateSummaryList:  A list of ACM certificates.<br/>NextToken:  When the list is truncated, this value is present and contains the value to use for the <code>NextToken</code> parameter in a subsequent pagination request.<br/>        """
        pass

    def list_tags_for_certificate(self, CertificateArn: str) -> ListTagsForCertificateResponse:
        r"""Lists the tags that have been applied to the ACM certificate. Use the certificate's Amazon Resource Name (ARN) to specify the certificate. To add a tag to an ACM certificate, use the <a>AddTagsToCertificate</a> action. To delete a tag, use the <a>RemoveTagsFromCertificate</a> action. 

        :param self:
        :param CertificateArn:  String that contains the ARN of the ACM certificate for which you want to list the tags. This must have the following form:  <code>arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012</code>  For more information about ARNs, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs)</a>.<br/>
        :return: Tags:  The key-value pairs that define the applied tags.<br/>        """
        pass

    def put_account_configuration(self, IdempotencyToken: str, ExpiryEvents: ExpiryEventsConfiguration=None):
        r"""Adds or modifies account-level configurations in ACM.  The supported configuration option is <code>DaysBeforeExpiry</code>. This option specifies the number of days prior to certificate expiration when ACM starts generating <code>EventBridge</code> events. ACM sends one event per day per certificate until the certificate expires. By default, accounts receive events starting 45 days before certificate expiration.

        :param self:
        :param IdempotencyToken:  Customer-chosen string used to distinguish between calls to <code>PutAccountConfiguration</code>. Idempotency tokens time out after one hour. If you call <code>PutAccountConfiguration</code> multiple times with the same unexpired idempotency token, ACM treats it as the same request and returns the original result. If you change the idempotency token for each call, ACM treats each call as a new request.<br/>ExpiryEvents:  Specifies expiration events associated with an account.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DaysBeforeExpiry</i> Specifies the number of days prior to certificate expiration when ACM starts generating <code>EventBridge</code> events. ACM sends one event per day per certificate until the certificate expires. By default, accounts receive events starting 45 days before certificate expiration.<br/>
        :return:         """
        pass

    def remove_tags_from_certificate(self, Tags: List[Tag], CertificateArn: str):
        r"""Remove one or more tags from an ACM certificate. A tag consists of a key-value pair. If you do not specify the value portion of the tag when calling this function, the tag will be removed regardless of value. If you specify a value, the tag is removed only if it is associated with the specified value.  To add tags to a certificate, use the <a>AddTagsToCertificate</a> action. To view all of the tags that have been applied to a specific ACM certificate, use the <a>ListTagsForCertificate</a> action. 

        :param self:
        :param Tags:  The key-value pair that defines the tag to remove.<br/>CertificateArn:  String that contains the ARN of the ACM Certificate with one or more tags that you want to remove. This must be of the form:  <code>arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012</code>  For more information about ARNs, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs)</a>.<br/>
        :return:         """
        pass

    def renew_certificate(self, CertificateArn: str):
        r"""Renews an eligible ACM certificate. At this time, only exported private certificates can be renewed with this operation. In order to renew your ACM PCA certificates with ACM, you must first <a href="https://docs.aws.amazon.com/acm-pca/latest/userguide/PcaPermissions.html">grant the ACM service principal permission to do so</a>. For more information, see <a href="https://docs.aws.amazon.com/acm/latest/userguide/manual-renewal.html">Testing Managed Renewal</a> in the ACM User Guide.

        :param self:
        :param CertificateArn:  String that contains the ARN of the ACM certificate to be renewed. This must be of the form:  <code>arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012</code>  For more information about ARNs, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs)</a>.<br/>
        :return:         """
        pass

    def request_certificate(self, DomainName: str, ValidationMethod: str=None, SubjectAlternativeNames: List[DomainNameString]=None, IdempotencyToken: str=None, DomainValidationOptions: List[DomainValidationOption]=None, Options: CertificateOptions=None, CertificateAuthorityArn: str=None, Tags: List[Tag]=None) -> RequestCertificateResponse:
        r"""Requests an ACM certificate for use with other AWS services. To request an ACM certificate, you must specify a fully qualified domain name (FQDN) in the <code>DomainName</code> parameter. You can also specify additional FQDNs in the <code>SubjectAlternativeNames</code> parameter.  If you are requesting a private certificate, domain validation is not required. If you are requesting a public certificate, each domain name that you specify must be validated to verify that you own or control the domain. You can use <a href="https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-validate-dns.html">DNS validation</a> or <a href="https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-validate-email.html">email validation</a>. We recommend that you use DNS validation. ACM issues public certificates after receiving approval from the domain owner. 

        :param self:
        :param Tags:  One or more resource tags to associate with the certificate.<br/>CertificateAuthorityArn:  The Amazon Resource Name (ARN) of the private certificate authority (CA) that will be used to issue the certificate. If you do not provide an ARN and you are trying to request a private certificate, ACM will attempt to issue a public certificate. For more information about private CAs, see the <a href="https://docs.aws.amazon.com/acm-pca/latest/userguide/PcaWelcome.html">AWS Certificate Manager Private Certificate Authority (PCA)</a> user guide. The ARN must have the following form:   <code>arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012</code> <br/>Options:  Currently, you can use this parameter to specify whether to add the certificate to a certificate transparency log. Certificate transparency makes it possible to detect SSL/TLS certificates that have been mistakenly or maliciously issued. Certificates that have not been logged typically produce an error message in a browser. For more information, see <a href="https://docs.aws.amazon.com/acm/latest/userguide/acm-bestpractices.html#best-practices-transparency">Opting Out of Certificate Transparency Logging</a>.:<br/>DomainValidationOptions:  The domain name that you want ACM to use to send you emails so that you can validate domain ownership.<br/>IdempotencyToken:  Customer chosen string that can be used to distinguish between calls to <code>RequestCertificate</code>. Idempotency tokens time out after one hour. Therefore, if you call <code>RequestCertificate</code> multiple times with the same idempotency token within one hour, ACM recognizes that you are requesting only one certificate and will issue only one. If you change the idempotency token for each call, ACM recognizes that you are requesting multiple certificates.<br/>SubjectAlternativeNames:  Additional FQDNs to be included in the Subject Alternative Name extension of the ACM certificate. For example, add the name www.example.net to a certificate for which the <code>DomainName</code> field is www.example.com if users can reach your site by using either name. The maximum number of domain names that you can add to an ACM certificate is 100. However, the initial quota is 10 domain names. If you need more than 10 names, you must request a quota increase. For more information, see <a href="https://docs.aws.amazon.com/acm/latest/userguide/acm-limits.html">Quotas</a>.  The maximum length of a SAN DNS name is 253 octets. The name is made up of multiple labels separated by periods. No label can be longer than 63 octets. Consider the following examples:  <ul> <li>  <code>(63 octets).(63 octets).(63 octets).(61 octets)</code> is legal because the total length is 253 octets (63+1+63+1+63+1+61) and no label exceeds 63 octets. </li> <li>  <code>(64 octets).(63 octets).(63 octets).(61 octets)</code> is not legal because the total length exceeds 253 octets (64+1+63+1+63+1+61) and the first label exceeds 63 octets. </li> <li>  <code>(63 octets).(63 octets).(63 octets).(62 octets)</code> is not legal because the total length of the DNS name (63+1+63+1+63+1+62) exceeds 253 octets. </li> </ul><br/>ValidationMethod:  The method you want to use if you are requesting a public certificate to validate that you own or control domain. You can <a href="https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-validate-dns.html">validate with DNS</a> or <a href="https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-validate-email.html">validate with email</a>. We recommend that you use DNS validation. <br/>DomainName:   Fully qualified domain name (FQDN), such as www.example.com, that you want to secure with an ACM certificate. Use an asterisk (*) to create a wildcard certificate that protects several sites in the same domain. For example, *.example.com protects www.example.com, site.example.com, and images.example.com.   The first domain name you enter cannot exceed 64 octets, including periods. Each subsequent Subject Alternative Name (SAN), however, can be up to 253 octets in length. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CertificateTransparencyLoggingPreference</i> You can opt out of certificate transparency logging by specifying the <code>DISABLED</code> option. Opt in by specifying <code>ENABLED</code>. <br/>
        :return: CertificateArn:  String that contains the ARN of the issued certificate. This must be of the form:  <code>arn:aws:acm:us-east-1:123456789012:certificate/12345678-1234-1234-1234-123456789012</code> <br/>        """
        pass

    def resend_validation_email(self, ValidationDomain: str, Domain: str, CertificateArn: str):
        r"""Resends the email that requests domain ownership validation. The domain owner or an authorized representative must approve the ACM certificate before it can be issued. The certificate can be approved by clicking a link in the mail to navigate to the Amazon certificate approval website and then clicking <b>I Approve</b>. However, the validation email can be blocked by spam filters. Therefore, if you do not receive the original mail, you can request that the mail be resent within 72 hours of requesting the ACM certificate. If more than 72 hours have elapsed since your original request or since your last attempt to resend validation mail, you must request a new certificate. For more information about setting up your contact email addresses, see <a href="https://docs.aws.amazon.com/acm/latest/userguide/setup-email.html">Configure Email for your Domain</a>. 

        :param self:
        :param ValidationDomain:  The base validation domain that will act as the suffix of the email addresses that are used to send the emails. This must be the same as the <code>Domain</code> value or a superdomain of the <code>Domain</code> value. For example, if you requested a certificate for <code>site.subdomain.example.com</code> and specify a <b>ValidationDomain</b> of <code>subdomain.example.com</code>, ACM sends email to the domain registrant, technical contact, and administrative contact in WHOIS and the following five addresses: <ul> <li> admin@subdomain.example.com </li> <li> administrator@subdomain.example.com </li> <li> hostmaster@subdomain.example.com </li> <li> postmaster@subdomain.example.com </li> <li> webmaster@subdomain.example.com </li> </ul><br/>Domain:  The fully qualified domain name (FQDN) of the certificate that needs to be validated.<br/>CertificateArn:  String that contains the ARN of the requested certificate. The certificate ARN is generated and returned by the <a>RequestCertificate</a> action as soon as the request is made. By default, using this parameter causes email to be sent to all top-level domains you specified in the certificate request. The ARN must be of the form:   <code>arn:aws:acm:us-east-1:123456789012:certificate/12345678-1234-1234-1234-123456789012</code> <br/>
        :return:         """
        pass

    def update_certificate_options(self, Options: CertificateOptions, CertificateArn: str):
        r"""Updates a certificate. Currently, you can use this function to specify whether to opt in to or out of recording your certificate in a certificate transparency log. For more information, see <a href="https://docs.aws.amazon.com/acm/latest/userguide/acm-bestpractices.html#best-practices-transparency"> Opting Out of Certificate Transparency Logging</a>. 

        :param self:
        :param Options:  Use to update the options for your certificate. Currently, you can specify whether to add your certificate to a transparency log. Certificate transparency makes it possible to detect SSL/TLS certificates that have been mistakenly or maliciously issued. Certificates that have not been logged typically produce an error message in a browser. :<br/>CertificateArn:  ARN of the requested certificate to update. This must be of the form:  <code>arn:aws:acm:us-east-1:<i>account</i>:certificate/<i>12345678-1234-1234-1234-123456789012</i> </code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CertificateTransparencyLoggingPreference</i> You can opt out of certificate transparency logging by specifying the <code>DISABLED</code> option. Opt in by specifying <code>ENABLED</code>. <br/>
        :return:         """
        pass





class ACMPCA(BaseClient):
    r"""This is the <i>ACM Private CA API Reference</i>. It provides descriptions, syntax, and usage examples for each of the actions and data types involved in creating and managing private certificate authorities (CA) for your organization. The documentation for each action shows the Query API request parameters and the XML response. Alternatively, you can use one of the AWS SDKs to access an API that's tailored to the programming language or platform that you're using. For more information, see <a href="https://aws.amazon.com/tools/#SDKs">AWS SDKs</a>. <note> Each ACM Private CA API action has a quota that determines the number of times the action can be called per second. For more information, see <a href="https://docs.aws.amazon.com/acm-pca/latest/userguide/PcaLimits.html#PcaLimits-api">API Rate Quotas in ACM Private CA</a> in the ACM Private CA user guide. </note>"""

    class AuditReportCreatedWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_certificate_authority_audit_report` for valid parameters"""
            pass
    class CertificateAuthorityCSRCreatedWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `get_certificate_authority_csr` for valid parameters"""
            pass
    class CertificateIssuedWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `get_certificate` for valid parameters"""
            pass


    class ListCertificateAuthoritiesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_certificate_authorities` for valid parameters"""
            pass
    class ListTagsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_tags` for valid parameters"""
            pass
    class ListPermissionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_permissions` for valid parameters"""
            pass


    class CreateCertificateAuthorityRequest(Mapping):
        pass
    
    class CreateCertificateAuthorityResponse(Mapping):
        pass
    
    class CertificateAuthorityConfiguration(Mapping):
        pass
    
    class RevocationConfiguration(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class CreateCertificateAuthorityAuditReportRequest(Mapping):
        pass
    
    class CreateCertificateAuthorityAuditReportResponse(Mapping):
        pass
    
    class CreatePermissionRequest(Mapping):
        pass
    
    class ActionType(object):
        pass
    
    class DeleteCertificateAuthorityRequest(Mapping):
        pass
    
    class DeletePermissionRequest(Mapping):
        pass
    
    class DeletePolicyRequest(Mapping):
        pass
    
    class DescribeCertificateAuthorityRequest(Mapping):
        pass
    
    class DescribeCertificateAuthorityResponse(Mapping):
        pass
    
    class DescribeCertificateAuthorityAuditReportRequest(Mapping):
        pass
    
    class DescribeCertificateAuthorityAuditReportResponse(Mapping):
        pass
    
    class GetCertificateRequest(Mapping):
        pass
    
    class GetCertificateResponse(Mapping):
        pass
    
    class GetCertificateAuthorityCertificateRequest(Mapping):
        pass
    
    class GetCertificateAuthorityCertificateResponse(Mapping):
        pass
    
    class GetCertificateAuthorityCsrRequest(Mapping):
        pass
    
    class GetCertificateAuthorityCsrResponse(Mapping):
        pass
    
    class GetPolicyRequest(Mapping):
        pass
    
    class GetPolicyResponse(Mapping):
        pass
    
    class ImportCertificateAuthorityCertificateRequest(Mapping):
        pass
    
    class CertificateBodyBlob(object):
        pass
    
    class CertificateChainBlob(object):
        pass
    
    class IssueCertificateRequest(Mapping):
        pass
    
    class IssueCertificateResponse(Mapping):
        pass
    
    class ApiPassthrough(Mapping):
        pass
    
    class CsrBlob(object):
        pass
    
    class Validity(Mapping):
        pass
    
    class ListCertificateAuthoritiesRequest(Mapping):
        pass
    
    class ListCertificateAuthoritiesResponse(Mapping):
        pass
    
    class ListPermissionsRequest(Mapping):
        pass
    
    class ListPermissionsResponse(Mapping):
        pass
    
    class ListTagsRequest(Mapping):
        pass
    
    class ListTagsResponse(Mapping):
        pass
    
    class PutPolicyRequest(Mapping):
        pass
    
    class RestoreCertificateAuthorityRequest(Mapping):
        pass
    
    class RevokeCertificateRequest(Mapping):
        pass
    
    class TagCertificateAuthorityRequest(Mapping):
        pass
    
    class UntagCertificateAuthorityRequest(Mapping):
        pass
    
    class UpdateCertificateAuthorityRequest(Mapping):
        pass
    
    def create_certificate_authority(self, CertificateAuthorityType: str, CertificateAuthorityConfiguration: CertificateAuthorityConfiguration, RevocationConfiguration: RevocationConfiguration=None, IdempotencyToken: str=None, KeyStorageSecurityStandard: str=None, Tags: List[Tag]=None) -> CreateCertificateAuthorityResponse:
        r"""Creates a root or subordinate private certificate authority (CA). You must specify the CA configuration, the certificate revocation list (CRL) configuration, the CA type, and an optional idempotency token to avoid accidental creation of multiple CAs. The CA configuration specifies the name of the algorithm and key size to be used to create the CA private key, the type of signing algorithm that the CA uses, and X.500 subject information. The CRL configuration specifies the CRL expiration period in days (the validity period of the CRL), the Amazon S3 bucket that will contain the CRL, and a CNAME alias for the S3 bucket that is included in certificates issued by the CA. If successful, this action returns the Amazon Resource Name (ARN) of the CA. ACM Private CA assets that are stored in Amazon S3 can be protected with encryption. For more information, see <a href="https://docs.aws.amazon.com/acm-pca/latest/userguide/PcaCreateCa.html#crl-encryption">Encrypting Your CRLs</a>. <note> Both PCA and the IAM principal must have permission to write to the S3 bucket that you specify. If the IAM principal making the call does not have permission to write to the bucket, then an exception is thrown. For more information, see <a href="https://docs.aws.amazon.com/acm-pca/latest/userguide/PcaAuthAccess.html">Configure Access to ACM Private CA</a>. </note>

        :param self:
        :param Tags:  Key-value pairs that will be attached to the new private CA. You can associate up to 50 tags with a private CA. For information using tags with IAM to manage permissions, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_iam-tags.html">Controlling Access Using IAM Tags</a>.<br/>KeyStorageSecurityStandard:  Specifies a cryptographic key management compliance standard used for handling CA keys. Default: FIPS_140_2_LEVEL_3_OR_HIGHER Note: <code>FIPS_140_2_LEVEL_3_OR_HIGHER</code> is not supported in Region ap-northeast-3. When creating a CA in the ap-northeast-3, you must provide <code>FIPS_140_2_LEVEL_2_OR_HIGHER</code> as the argument for <code>KeyStorageSecurityStandard</code>. Failure to do this results in an <code>InvalidArgsException</code> with the message, "A certificate authority cannot be created in this region with the specified security standard."<br/>IdempotencyToken:  Custom string that can be used to distinguish between calls to the <b>CreateCertificateAuthority</b> action. Idempotency tokens for <b>CreateCertificateAuthority</b> time out after five minutes. Therefore, if you call <b>CreateCertificateAuthority</b> multiple times with the same idempotency token within five minutes, ACM Private CA recognizes that you are requesting only certificate authority and will issue only one. If you change the idempotency token for each call, PCA recognizes that you are requesting multiple certificate authorities.<br/>CertificateAuthorityType:  The type of the certificate authority.<br/>RevocationConfiguration:  Contains a Boolean value that you can use to enable a certification revocation list (CRL) for the CA, the name of the S3 bucket to which ACM Private CA will write the CRL, and an optional CNAME alias that you can use to hide the name of your bucket in the <b>CRL Distribution Points</b> extension of your CA certificate. For more information, see the <a href="https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CrlConfiguration.html">CrlConfiguration</a> structure. :<br/>CertificateAuthorityConfiguration:  Name and bit size of the private key algorithm, the name of the signing algorithm, and X.500 certificate subject information.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CsrExtensions</i> Specifies information to be added to the extension section of the certificate signing request (CSR).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CsrExtensions</b>: Specifies information to be added to the extension section of the certificate signing request (CSR).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Subject</i> Structure that contains X.500 distinguished name information for your private CA.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Subject</b>: Structure that contains X.500 distinguished name information for your private CA.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SigningAlgorithm</i> Name of the algorithm your private CA uses to sign certificate requests. This parameter should not be confused with the <code>SigningAlgorithm</code> parameter used to sign certificates when they are issued.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KeyAlgorithm</i> Type of the public key algorithm and size, in bits, of the key pair that your CA creates when it issues a certificate. When you create a subordinate CA, you must use a key algorithm supported by the parent CA.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>GenerationQualifier</i> Typically a qualifier appended to the name of an individual. Examples include Jr. for junior, Sr. for senior, and III for third.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Pseudonym</i> Typically a shortened version of a longer <b>GivenName</b>. For example, Jonathan is often shortened to John. Elizabeth is often shortened to Beth, Liz, or Eliza.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Initials</i> Concatenation that typically contains the first letter of the <b>GivenName</b>, the first letter of the middle name if one exists, and the first letter of the <b>Surname</b>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>GivenName</i> First name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Surname</i> Family name. In the US and the UK, for example, the surname of an individual is ordered last. In Asian cultures the surname is typically ordered first.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Title</i> A title such as Mr. or Ms., which is pre-pended to the name to refer formally to the certificate subject.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Locality</i> The locality (such as a city or town) in which the certificate subject is located.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SerialNumber</i> The certificate serial number.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CommonName</i> For CA and end-entity certificates in a private PKI, the common name (CN) can be any string within the length limit.  Note: In publicly trusted certificates, the common name must be a fully qualified domain name (FQDN) associated with the certificate subject.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> State in which the subject of the certificate is located.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DistinguishedNameQualifier</i> Disambiguating information for the certificate subject.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OrganizationalUnit</i> A subdivision or unit of the organization (such as sales or finance) with which the certificate subject is affiliated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Organization</i> Legal name of the organization with which the certificate subject is affiliated. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Country</i> Two-digit code that specifies the country in which the certificate subject located.<br/>Indicates the purpose of the certificate and of the key contained in the certificate.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>KeyUsage</b>: Indicates the purpose of the certificate and of the key contained in the certificate.&nbsp;&nbsp;&nbsp;&nbsp; <i>CrlConfiguration</i> Configuration of the certificate revocation list (CRL), if any, maintained by your private CA.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CrlConfiguration</b>: Configuration of the certificate revocation list (CRL), if any, maintained by your private CA.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3ObjectAcl</i> Determines whether the CRL will be publicly readable or privately held in the CRL Amazon S3 bucket. If you choose PUBLIC_READ, the CRL will be accessible over the public internet. If you choose BUCKET_OWNER_FULL_CONTROL, only the owner of the CRL S3 bucket can access the CRL, and your PKI clients may need an alternative method of access.  If no value is specified, the default is <code>PUBLIC_READ</code>.  <i>Note:</i> This default can cause CA creation to fail in some circumstances. If you have have enabled the Block Public Access (BPA) feature in your S3 account, then you must specify the value of this parameter as <code>BUCKET_OWNER_FULL_CONTROL</code>, and not doing so results in an error. If you have disabled BPA in S3, then you can specify either <code>BUCKET_OWNER_FULL_CONTROL</code> or <code>PUBLIC_READ</code> as the value. For more information, see <a href="https://docs.aws.amazon.com/acm-pca/latest/userguide/PcaCreateCa.html#s3-bpa">Blocking public access to the S3 bucket</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3BucketName</i> Name of the S3 bucket that contains the CRL. If you do not provide a value for the <b>CustomCname</b> argument, the name of your S3 bucket is placed into the <b>CRL Distribution Points</b> extension of the issued certificate. You can change the name of your bucket by calling the <a href="https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_UpdateCertificateAuthority.html">UpdateCertificateAuthority</a> action. You must specify a <a href="https://docs.aws.amazon.com/acm-pca/latest/userguide/PcaCreateCa.html#s3-policies">bucket policy</a> that allows ACM Private CA to write the CRL to your bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomCname</i> Name inserted into the certificate <b>CRL Distribution Points</b> extension that enables the use of an alias for the CRL distribution point. Use this value if you don't want the name of your S3 bucket to be public.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ExpirationInDays</i> Validity period of the CRL in days.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Boolean value that specifies whether certificate revocation lists (CRLs) are enabled. You can use this value to enable certificate revocation for a new CA when you call the <a href="https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CreateCertificateAuthority.html">CreateCertificateAuthority</a> action or for an existing CA when you call the <a href="https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_UpdateCertificateAuthority.html">UpdateCertificateAuthority</a> action. <br/>
        :return: CertificateAuthorityArn:  If successful, the Amazon Resource Name (ARN) of the certificate authority (CA). This is of the form:   <code>arn:aws:acm-pca:<i>region</i>:<i>account</i>:certificate-authority/<i>12345678-1234-1234-1234-123456789012</i> </code>. <br/>        """
        pass

    def create_certificate_authority_audit_report(self, AuditReportResponseFormat: str, S3BucketName: str, CertificateAuthorityArn: str) -> CreateCertificateAuthorityAuditReportResponse:
        r"""Creates an audit report that lists every time that your CA private key is used. The report is saved in the Amazon S3 bucket that you specify on input. The <a href="https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_IssueCertificate.html">IssueCertificate</a> and <a href="https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_RevokeCertificate.html">RevokeCertificate</a> actions use the private key.  <note> Both PCA and the IAM principal must have permission to write to the S3 bucket that you specify. If the IAM principal making the call does not have permission to write to the bucket, then an exception is thrown. For more information, see <a href="https://docs.aws.amazon.com/acm-pca/latest/userguide/PcaAuthAccess.html">Configure Access to ACM Private CA</a>. </note> ACM Private CA assets that are stored in Amazon S3 can be protected with encryption. For more information, see <a href="https://docs.aws.amazon.com/acm-pca/latest/userguide/PcaAuditReport.html#audit-report-encryption">Encrypting Your Audit Reports</a>.

        :param self:
        :param AuditReportResponseFormat:  The format in which to create the report. This can be either <b>JSON</b> or <b>CSV</b>.<br/>S3BucketName:  The name of the S3 bucket that will contain the audit report.<br/>CertificateAuthorityArn:  The Amazon Resource Name (ARN) of the CA to be audited. This is of the form:  <code>arn:aws:acm-pca:<i>region</i>:<i>account</i>:certificate-authority/<i>12345678-1234-1234-1234-123456789012</i> </code>.<br/>
        :return: S3Key:  The <b>key</b> that uniquely identifies the report file in your S3 bucket.<br/>AuditReportId:  An alphanumeric string that contains a report identifier.<br/>        """
        pass

    def create_permission(self, Actions: List[ActionType], Principal: str, CertificateAuthorityArn: str, SourceAccount: str=None):
        r"""Grants one or more permissions on a private CA to the AWS Certificate Manager (ACM) service principal (<code>acm.amazonaws.com</code>). These permissions allow ACM to issue and renew ACM certificates that reside in the same AWS account as the CA. You can list current permissions with the <a href="https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_ListPermissions.html">ListPermissions</a> action and revoke them with the <a href="https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_DeletePermission.html">DeletePermission</a> action. <p class="title"> <b>About Permissions</b>  <ul> <li> If the private CA and the certificates it issues reside in the same account, you can use <code>CreatePermission</code> to grant permissions for ACM to carry out automatic certificate renewals. </li> <li> For automatic certificate renewal to succeed, the ACM service principal needs permissions to create, retrieve, and list certificates. </li> <li> If the private CA and the ACM certificates reside in different accounts, then permissions cannot be used to enable automatic renewals. Instead, the ACM certificate owner must set up a resource-based policy to enable cross-account issuance and renewals. For more information, see <a href="https://docs.aws.amazon.com/acm-pca/latest/userguide/pca-rbp.html">Using a Resource Based Policy with ACM Private CA</a>. </li> </ul>

        :param self:
        :param Actions:  The actions that the specified AWS service principal can use. These include <code>IssueCertificate</code>, <code>GetCertificate</code>, and <code>ListPermissions</code>.<br/>SourceAccount:  The ID of the calling account.<br/>Principal:  The AWS service or identity that receives the permission. At this time, the only valid principal is <code>acm.amazonaws.com</code>.<br/>CertificateAuthorityArn:  The Amazon Resource Name (ARN) of the CA that grants the permissions. You can find the ARN by calling the <a href="https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_ListCertificateAuthorities.html">ListCertificateAuthorities</a> action. This must have the following form:   <code>arn:aws:acm-pca:<i>region</i>:<i>account</i>:certificate-authority/<i>12345678-1234-1234-1234-123456789012</i> </code>. <br/>
        :return:         """
        pass

    def delete_certificate_authority(self, CertificateAuthorityArn: str, PermanentDeletionTimeInDays: int=None):
        r"""Deletes a private certificate authority (CA). You must provide the Amazon Resource Name (ARN) of the private CA that you want to delete. You can find the ARN by calling the <a href="https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_ListCertificateAuthorities.html">ListCertificateAuthorities</a> action.  <note> Deleting a CA will invalidate other CAs and certificates below it in your CA hierarchy. </note> Before you can delete a CA that you have created and activated, you must disable it. To do this, call the <a href="https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_UpdateCertificateAuthority.html">UpdateCertificateAuthority</a> action and set the <b>CertificateAuthorityStatus</b> parameter to <code>DISABLED</code>.  Additionally, you can delete a CA if you are waiting for it to be created (that is, the status of the CA is <code>CREATING</code>). You can also delete it if the CA has been created but you haven't yet imported the signed certificate into ACM Private CA (that is, the status of the CA is <code>PENDING_CERTIFICATE</code>).  When you successfully call <a href="https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_DeleteCertificateAuthority.html">DeleteCertificateAuthority</a>, the CA's status changes to <code>DELETED</code>. However, the CA won't be permanently deleted until the restoration period has passed. By default, if you do not set the <code>PermanentDeletionTimeInDays</code> parameter, the CA remains restorable for 30 days. You can set the parameter from 7 to 30 days. The <a href="https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_DescribeCertificateAuthority.html">DescribeCertificateAuthority</a> action returns the time remaining in the restoration window of a private CA in the <code>DELETED</code> state. To restore an eligible CA, call the <a href="https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_RestoreCertificateAuthority.html">RestoreCertificateAuthority</a> action.

        :param self:
        :param PermanentDeletionTimeInDays:  The number of days to make a CA restorable after it has been deleted. This can be anywhere from 7 to 30 days, with 30 being the default.<br/>CertificateAuthorityArn:  The Amazon Resource Name (ARN) that was returned when you called <a href="https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CreateCertificateAuthority.html">CreateCertificateAuthority</a>. This must have the following form:   <code>arn:aws:acm-pca:<i>region</i>:<i>account</i>:certificate-authority/<i>12345678-1234-1234-1234-123456789012</i> </code>. <br/>
        :return:         """
        pass

    def delete_permission(self, Principal: str, CertificateAuthorityArn: str, SourceAccount: str=None):
        r"""Revokes permissions on a private CA granted to the AWS Certificate Manager (ACM) service principal (acm.amazonaws.com).  These permissions allow ACM to issue and renew ACM certificates that reside in the same AWS account as the CA. If you revoke these permissions, ACM will no longer renew the affected certificates automatically. Permissions can be granted with the <a href="https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CreatePermission.html">CreatePermission</a> action and listed with the <a href="https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_ListPermissions.html">ListPermissions</a> action.  <p class="title"> <b>About Permissions</b>  <ul> <li> If the private CA and the certificates it issues reside in the same account, you can use <code>CreatePermission</code> to grant permissions for ACM to carry out automatic certificate renewals. </li> <li> For automatic certificate renewal to succeed, the ACM service principal needs permissions to create, retrieve, and list certificates. </li> <li> If the private CA and the ACM certificates reside in different accounts, then permissions cannot be used to enable automatic renewals. Instead, the ACM certificate owner must set up a resource-based policy to enable cross-account issuance and renewals. For more information, see <a href="https://docs.aws.amazon.com/acm-pca/latest/userguide/pca-rbp.html">Using a Resource Based Policy with ACM Private CA</a>. </li> </ul>

        :param self:
        :param SourceAccount:  The AWS account that calls this action.<br/>Principal:  The AWS service or identity that will have its CA permissions revoked. At this time, the only valid service principal is <code>acm.amazonaws.com</code> <br/>CertificateAuthorityArn:  The Amazon Resource Number (ARN) of the private CA that issued the permissions. You can find the CA's ARN by calling the <a href="https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_ListCertificateAuthorities.html">ListCertificateAuthorities</a> action. This must have the following form:   <code>arn:aws:acm-pca:<i>region</i>:<i>account</i>:certificate-authority/<i>12345678-1234-1234-1234-123456789012</i> </code>. <br/>
        :return:         """
        pass

    def delete_policy(self, ResourceArn: str):
        r"""Deletes the resource-based policy attached to a private CA. Deletion will remove any access that the policy has granted. If there is no policy attached to the private CA, this action will return successful. If you delete a policy that was applied through AWS Resource Access Manager (RAM), the CA will be removed from all shares in which it was included.  The AWS Certificate Manager Service Linked Role that the policy supports is not affected when you delete the policy.  The current policy can be shown with <a href="https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_GetPolicy.html">GetPolicy</a> and updated with <a href="https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_PutPolicy.html">PutPolicy</a>. <p class="title"> <b>About Policies</b>  <ul> <li> A policy grants access on a private CA to an AWS customer account, to AWS Organizations, or to an AWS Organizations unit. Policies are under the control of a CA administrator. For more information, see <a href="https://docs.aws.amazon.com/acm-pca/latest/userguide/pca-rbp.html">Using a Resource Based Policy with ACM Private CA</a>. </li> <li> A policy permits a user of AWS Certificate Manager (ACM) to issue ACM certificates signed by a CA in another account. </li> <li> For ACM to manage automatic renewal of these certificates, the ACM user must configure a Service Linked Role (SLR). The SLR allows the ACM service to assume the identity of the user, subject to confirmation against the ACM Private CA policy. For more information, see <a href="https://docs.aws.amazon.com/acm/latest/userguide/acm-slr.html">Using a Service Linked Role with ACM</a>. </li> <li> Updates made in AWS Resource Manager (RAM) are reflected in policies. For more information, see <a href="https://docs.aws.amazon.com/acm-pca/latest/userguide/pca-ram.html">Attach a Policy for Cross-Account Access</a>. </li> </ul>

        :param self:
        :param ResourceArn:  The Amazon Resource Number (ARN) of the private CA that will have its policy deleted. You can find the CA's ARN by calling the <a href="https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_ListCertificateAuthorities.html">ListCertificateAuthorities</a> action. The ARN value must have the form <code>arn:aws:acm-pca:region:account:certificate-authority/01234567-89ab-cdef-0123-0123456789ab</code>. <br/>
        :return:         """
        pass

    def describe_certificate_authority(self, CertificateAuthorityArn: str) -> DescribeCertificateAuthorityResponse:
        r"""Lists information about your private certificate authority (CA) or one that has been shared with you. You specify the private CA on input by its ARN (Amazon Resource Name). The output contains the status of your CA. This can be any of the following:  <ul> <li>  <code>CREATING</code> - ACM Private CA is creating your private certificate authority. </li> <li>  <code>PENDING_CERTIFICATE</code> - The certificate is pending. You must use your ACM Private CA-hosted or on-premises root or subordinate CA to sign your private CA CSR and then import it into PCA.  </li> <li>  <code>ACTIVE</code> - Your private CA is active. </li> <li>  <code>DISABLED</code> - Your private CA has been disabled. </li> <li>  <code>EXPIRED</code> - Your private CA certificate has expired. </li> <li>  <code>FAILED</code> - Your private CA has failed. Your CA can fail because of problems such a network outage or back-end AWS failure or other errors. A failed CA can never return to the pending state. You must create a new CA.  </li> <li>  <code>DELETED</code> - Your private CA is within the restoration period, after which it is permanently deleted. The length of time remaining in the CA's restoration period is also included in this action's output. </li> </ul>

        :param self:
        :param CertificateAuthorityArn:  The Amazon Resource Name (ARN) that was returned when you called <a href="https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CreateCertificateAuthority.html">CreateCertificateAuthority</a>. This must be of the form:   <code>arn:aws:acm-pca:<i>region</i>:<i>account</i>:certificate-authority/<i>12345678-1234-1234-1234-123456789012</i> </code>. <br/>
        :return: CertificateAuthority:  A <a href="https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CertificateAuthority.html">CertificateAuthority</a> structure that contains information about your private CA.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KeyStorageSecurityStandard</i> Defines a cryptographic key management compliance standard used for handling CA keys.  Default: FIPS_140_2_LEVEL_3_OR_HIGHER Note: AWS Region ap-northeast-3 supports only FIPS_140_2_LEVEL_2_OR_HIGHER. You must explicitly specify this parameter and value when creating a CA in that Region. Specifying a different value (or no value) results in an <code>InvalidArgsException</code> with the message "A certificate authority cannot be created in this region with the specified security standard."<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RestorableUntil</i> The period during which a deleted CA can be restored. For more information, see the <code>PermanentDeletionTimeInDays</code> parameter of the <a href="https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_DeleteCertificateAuthorityRequest.html">DeleteCertificateAuthorityRequest</a> action. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RevocationConfiguration</i> Information about the certificate revocation list (CRL) created and maintained by your private CA. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RevocationConfiguration</b>: Information about the certificate revocation list (CRL) created and maintained by your private CA. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CertificateAuthorityConfiguration</i> Your private CA configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CertificateAuthorityConfiguration</b>: Your private CA configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FailureReason</i> Reason the request to create your private CA failed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NotAfter</i> Date and time after which your private CA certificate is not valid.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NotBefore</i> Date and time before which your private CA certificate is not valid.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Status of your private CA.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Serial</i> Serial number of your private CA.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> Type of your private CA.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastStateChangeAt</i> Date and time at which your private CA was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedAt</i> Date and time at which your private CA was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerAccount</i> The AWS account ID that owns the certificate authority.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> Amazon Resource Name (ARN) for your private certificate authority (CA). The format is <code> <i>12345678-1234-1234-1234-123456789012</i> </code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SigningAlgorithm</i> Name of the algorithm your private CA uses to sign certificate requests. This parameter should not be confused with the <code>SigningAlgorithm</code> parameter used to sign certificates when they are issued.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KeyAlgorithm</i> Type of the public key algorithm and size, in bits, of the key pair that your CA creates when it issues a certificate. When you create a subordinate CA, you must use a key algorithm supported by the parent CA.<br/>Structure that contains X.500 distinguished name information for your private CA.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Subject</b>: Structure that contains X.500 distinguished name information for your private CA.Configuration of the certificate revocation list (CRL), if any, maintained by your private CA.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CrlConfiguration</b>: Configuration of the certificate revocation list (CRL), if any, maintained by your private CA.        """
        pass

    def describe_certificate_authority_audit_report(self, AuditReportId: str, CertificateAuthorityArn: str) -> DescribeCertificateAuthorityAuditReportResponse:
        r"""Lists information about a specific audit report created by calling the <a href="https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CreateCertificateAuthorityAuditReport.html">CreateCertificateAuthorityAuditReport</a> action. Audit information is created every time the certificate authority (CA) private key is used. The private key is used when you call the <a href="https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_IssueCertificate.html">IssueCertificate</a> action or the <a href="https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_RevokeCertificate.html">RevokeCertificate</a> action. 

        :param self:
        :param AuditReportId:  The report ID returned by calling the <a href="https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CreateCertificateAuthorityAuditReport.html">CreateCertificateAuthorityAuditReport</a> action.<br/>CertificateAuthorityArn:  The Amazon Resource Name (ARN) of the private CA. This must be of the form:  <code>arn:aws:acm-pca:<i>region</i>:<i>account</i>:certificate-authority/<i>12345678-1234-1234-1234-123456789012</i> </code>. <br/>
        :return: CreatedAt:  The date and time at which the report was created.<br/>S3Key:  S3 <b>key</b> that uniquely identifies the report file in your S3 bucket.<br/>S3BucketName:  Name of the S3 bucket that contains the report.<br/>AuditReportStatus:  Specifies whether report creation is in progress, has succeeded, or has failed.<br/>        """
        pass

    def get_certificate(self, CertificateArn: str, CertificateAuthorityArn: str) -> GetCertificateResponse:
        r"""Retrieves a certificate from your private CA or one that has been shared with you. The ARN of the certificate is returned when you call the <a href="https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_IssueCertificate.html">IssueCertificate</a> action. You must specify both the ARN of your private CA and the ARN of the issued certificate when calling the <b>GetCertificate</b> action. You can retrieve the certificate if it is in the <b>ISSUED</b> state. You can call the <a href="https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CreateCertificateAuthorityAuditReport.html">CreateCertificateAuthorityAuditReport</a> action to create a report that contains information about all of the certificates issued and revoked by your private CA. 

        :param self:
        :param CertificateArn:  The ARN of the issued certificate. The ARN contains the certificate serial number and must be in the following form:   <code>arn:aws:acm-pca:<i>region</i>:<i>account</i>:certificate-authority/<i>12345678-1234-1234-1234-123456789012</i>/certificate/<i>286535153982981100925020015808220737245</i> </code> <br/>CertificateAuthorityArn:  The Amazon Resource Name (ARN) that was returned when you called <a href="https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CreateCertificateAuthority.html">CreateCertificateAuthority</a>. This must be of the form:   <code>arn:aws:acm-pca:<i>region</i>:<i>account</i>:certificate-authority/<i>12345678-1234-1234-1234-123456789012</i> </code>. <br/>
        :return: CertificateChain:  The base64 PEM-encoded certificate chain that chains up to the root CA certificate that you used to sign your private CA certificate. <br/>Certificate:  The base64 PEM-encoded certificate specified by the <code>CertificateArn</code> parameter.<br/>        """
        pass

    def get_certificate_authority_certificate(self, CertificateAuthorityArn: str) -> GetCertificateAuthorityCertificateResponse:
        r"""Retrieves the certificate and certificate chain for your private certificate authority (CA) or one that has been shared with you. Both the certificate and the chain are base64 PEM-encoded. The chain does not include the CA certificate. Each certificate in the chain signs the one before it. 

        :param self:
        :param CertificateAuthorityArn:  The Amazon Resource Name (ARN) of your private CA. This is of the form:  <code>arn:aws:acm-pca:<i>region</i>:<i>account</i>:certificate-authority/<i>12345678-1234-1234-1234-123456789012</i> </code>. <br/>
        :return: CertificateChain:  Base64-encoded certificate chain that includes any intermediate certificates and chains up to root certificate that you used to sign your private CA certificate. The chain does not include your private CA certificate. If this is a root CA, the value will be null.<br/>Certificate:  Base64-encoded certificate authority (CA) certificate.<br/>        """
        pass

    def get_certificate_authority_csr(self, CertificateAuthorityArn: str) -> GetCertificateAuthorityCsrResponse:
        r"""Retrieves the certificate signing request (CSR) for your private certificate authority (CA). The CSR is created when you call the <a href="https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CreateCertificateAuthority.html">CreateCertificateAuthority</a> action. Sign the CSR with your ACM Private CA-hosted or on-premises root or subordinate CA. Then import the signed certificate back into ACM Private CA by calling the <a href="https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_ImportCertificateAuthorityCertificate.html">ImportCertificateAuthorityCertificate</a> action. The CSR is returned as a base64 PEM-encoded string. 

        :param self:
        :param CertificateAuthorityArn:  The Amazon Resource Name (ARN) that was returned when you called the <a href="https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CreateCertificateAuthority.html">CreateCertificateAuthority</a> action. This must be of the form:   <code>arn:aws:acm-pca:<i>region</i>:<i>account</i>:certificate-authority/<i>12345678-1234-1234-1234-123456789012</i> </code> <br/>
        :return: Csr:  The base64 PEM-encoded certificate signing request (CSR) for your private CA certificate.<br/>        """
        pass

    def get_policy(self, ResourceArn: str) -> GetPolicyResponse:
        r"""Retrieves the resource-based policy attached to a private CA. If either the private CA resource or the policy cannot be found, this action returns a <code>ResourceNotFoundException</code>.  The policy can be attached or updated with <a href="https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_PutPolicy.html">PutPolicy</a> and removed with <a href="https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_DeletePolicy.html">DeletePolicy</a>. <p class="title"> <b>About Policies</b>  <ul> <li> A policy grants access on a private CA to an AWS customer account, to AWS Organizations, or to an AWS Organizations unit. Policies are under the control of a CA administrator. For more information, see <a href="https://docs.aws.amazon.com/acm-pca/latest/userguide/pca-rbp.html">Using a Resource Based Policy with ACM Private CA</a>. </li> <li> A policy permits a user of AWS Certificate Manager (ACM) to issue ACM certificates signed by a CA in another account. </li> <li> For ACM to manage automatic renewal of these certificates, the ACM user must configure a Service Linked Role (SLR). The SLR allows the ACM service to assume the identity of the user, subject to confirmation against the ACM Private CA policy. For more information, see <a href="https://docs.aws.amazon.com/acm/latest/userguide/acm-slr.html">Using a Service Linked Role with ACM</a>. </li> <li> Updates made in AWS Resource Manager (RAM) are reflected in policies. For more information, see <a href="https://docs.aws.amazon.com/acm-pca/latest/userguide/pca-ram.html">Attach a Policy for Cross-Account Access</a>. </li> </ul>

        :param self:
        :param ResourceArn:  The Amazon Resource Number (ARN) of the private CA that will have its policy retrieved. You can find the CA's ARN by calling the ListCertificateAuthorities action. <br/>
        :return: Policy:  The policy attached to the private CA as a JSON document.<br/>        """
        pass

    def import_certificate_authority_certificate(self, Certificate: CertificateBodyBlob, CertificateAuthorityArn: str, CertificateChain: CertificateChainBlob=None):
        r"""Imports a signed private CA certificate into ACM Private CA. This action is used when you are using a chain of trust whose root is located outside ACM Private CA. Before you can call this action, the following preparations must in place: <ol> <li> In ACM Private CA, call the <a href="https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CreateCertificateAuthority.html">CreateCertificateAuthority</a> action to create the private CA that you plan to back with the imported certificate. </li> <li> Call the <a href="https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_GetCertificateAuthorityCsr.html">GetCertificateAuthorityCsr</a> action to generate a certificate signing request (CSR). </li> <li> Sign the CSR using a root or intermediate CA hosted by either an on-premises PKI hierarchy or by a commercial CA. </li> <li> Create a certificate chain and copy the signed certificate and the certificate chain to your working directory. </li> </ol> ACM Private CA supports three scenarios for installing a CA certificate: <ul> <li> Installing a certificate for a root CA hosted by ACM Private CA. </li> <li> Installing a subordinate CA certificate whose parent authority is hosted by ACM Private CA. </li> <li> Installing a subordinate CA certificate whose parent authority is externally hosted. </li> </ul> The following additional requirements apply when you import a CA certificate. <ul> <li> Only a self-signed certificate can be imported as a root CA. </li> <li> A self-signed certificate cannot be imported as a subordinate CA. </li> <li> Your certificate chain must not include the private CA certificate that you are importing. </li> <li> Your root CA must be the last certificate in your chain. The subordinate certificate, if any, that your root CA signed must be next to last. The subordinate certificate signed by the preceding subordinate CA must come next, and so on until your chain is built.  </li> <li> The chain must be PEM-encoded. </li> <li> The maximum allowed size of a certificate is 32 KB. </li> <li> The maximum allowed size of a certificate chain is 2 MB. </li> </ul>  <i>Enforcement of Critical Constraints</i>  ACM Private CA allows the following extensions to be marked critical in the imported CA certificate or chain. <ul> <li> Basic constraints (<i>must</i> be marked critical) </li> <li> Subject alternative names </li> <li> Key usage </li> <li> Extended key usage </li> <li> Authority key identifier </li> <li> Subject key identifier </li> <li> Issuer alternative name </li> <li> Subject directory attributes </li> <li> Subject information access </li> <li> Certificate policies </li> <li> Policy mappings </li> <li> Inhibit anyPolicy </li> </ul> ACM Private CA rejects the following extensions when they are marked critical in an imported CA certificate or chain. <ul> <li> Name constraints </li> <li> Policy constraints </li> <li> CRL distribution points </li> <li> Authority information access </li> <li> Freshest CRL </li> <li> Any other extension </li> </ul>

        :param self:
        :param CertificateChain:  A PEM-encoded file that contains all of your certificates, other than the certificate you're importing, chaining up to your root CA. Your ACM Private CA-hosted or on-premises root certificate is the last in the chain, and each certificate in the chain signs the one preceding.  This parameter must be supplied when you import a subordinate CA. When you import a root CA, there is no chain.<br/>Certificate:  The PEM-encoded certificate for a private CA. This may be a self-signed certificate in the case of a root CA, or it may be signed by another CA that you control.<br/>CertificateAuthorityArn:  The Amazon Resource Name (ARN) that was returned when you called <a href="https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CreateCertificateAuthority.html">CreateCertificateAuthority</a>. This must be of the form:   <code>arn:aws:acm-pca:<i>region</i>:<i>account</i>:certificate-authority/<i>12345678-1234-1234-1234-123456789012</i> </code> <br/>
        :return:         """
        pass

    def issue_certificate(self, Validity: Validity, SigningAlgorithm: str, Csr: CsrBlob, CertificateAuthorityArn: str, ApiPassthrough: ApiPassthrough=None, TemplateArn: str=None, ValidityNotBefore: Validity=None, IdempotencyToken: str=None) -> IssueCertificateResponse:
        r"""Uses your private certificate authority (CA), or one that has been shared with you, to issue a client certificate. This action returns the Amazon Resource Name (ARN) of the certificate. You can retrieve the certificate by calling the <a href="https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_GetCertificate.html">GetCertificate</a> action and specifying the ARN.  <note> You cannot use the ACM <b>ListCertificateAuthorities</b> action to retrieve the ARNs of the certificates that you issue by using ACM Private CA. </note>

        :param self:
        :param IdempotencyToken:  Alphanumeric string that can be used to distinguish between calls to the <b>IssueCertificate</b> action. Idempotency tokens for <b>IssueCertificate</b> time out after one minute. Therefore, if you call <b>IssueCertificate</b> multiple times with the same idempotency token within one minute, ACM Private CA recognizes that you are requesting only one certificate and will issue only one. If you change the idempotency token for each call, PCA recognizes that you are requesting multiple certificates.<br/>ValidityNotBefore:  Information describing the start of the validity period of the certificate. This parameter sets the “Not Before" date for the certificate. By default, when issuing a certificate, ACM Private CA sets the "Not Before" date to the issuance time minus 60 minutes. This compensates for clock inconsistencies across computer systems. The <code>ValidityNotBefore</code> parameter can be used to customize the “Not Before” value.  Unlike the <code>Validity</code> parameter, the <code>ValidityNotBefore</code> parameter is optional. The <code>ValidityNotBefore</code> value is expressed as an explicit date and time, using the <code>Validity</code> type value <code>ABSOLUTE</code>. For more information, see <a href="https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_Validity.html">Validity</a> in this API reference and <a href="https://tools.ietf.org/html/rfc5280#section-4.1.2.5">Validity</a> in RFC 5280.:<br/>Validity:  Information describing the end of the validity period of the certificate. This parameter sets the “Not After” date for the certificate. Certificate validity is the period of time during which a certificate is valid. Validity can be expressed as an explicit date and time when the certificate expires, or as a span of time after issuance, stated in days, months, or years. For more information, see <a href="https://tools.ietf.org/html/rfc5280#section-4.1.2.5">Validity</a> in RFC 5280.  This value is unaffected when <code>ValidityNotBefore</code> is also specified. For example, if <code>Validity</code> is set to 20 days in the future, the certificate will expire 20 days from issuance time regardless of the <code>ValidityNotBefore</code> value. The end of the validity period configured on a certificate must not exceed the limit set on its parents in the CA hierarchy.:<br/>TemplateArn:  Specifies a custom configuration template to use when issuing a certificate. If this parameter is not provided, ACM Private CA defaults to the <code>EndEntityCertificate/V1</code> template. For CA certificates, you should choose the shortest path length that meets your needs. The path length is indicated by the PathLen<i>N</i> portion of the ARN, where <i>N</i> is the <a href="https://docs.aws.amazon.com/acm-pca/latest/userguide/PcaTerms.html#terms-cadepth">CA depth</a>. Note: The CA depth configured on a subordinate CA certificate must not exceed the limit set by its parents in the CA hierarchy. For a list of <code>TemplateArn</code> values supported by ACM Private CA, see <a href="https://docs.aws.amazon.com/acm-pca/latest/userguide/UsingTemplates.html">Understanding Certificate Templates</a>.<br/>SigningAlgorithm:  The name of the algorithm that will be used to sign the certificate to be issued.  This parameter should not be confused with the <code>SigningAlgorithm</code> parameter used to sign a CSR in the <code>CreateCertificateAuthority</code> action.<br/>Csr:  The certificate signing request (CSR) for the certificate you want to issue. As an example, you can use the following OpenSSL command to create the CSR and a 2048 bit RSA private key.   <code>openssl req -new -newkey rsa:2048 -days 365 -keyout private/test_cert_priv_key.pem -out csr/test_cert_.csr</code>  If you have a configuration file, you can then use the following OpenSSL command. The <code>usr_cert</code> block in the configuration file contains your X509 version 3 extensions.   <code>openssl req -new -config openssl_rsa.cnf -extensions usr_cert -newkey rsa:2048 -days -365 -keyout private/test_cert_priv_key.pem -out csr/test_cert_.csr</code>  Note: A CSR must provide either a <i>subject name</i> or a <i>subject alternative name</i> or the request will be rejected. <br/>CertificateAuthorityArn:  The Amazon Resource Name (ARN) that was returned when you called <a href="https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CreateCertificateAuthority.html">CreateCertificateAuthority</a>. This must be of the form:  <code>arn:aws:acm-pca:<i>region</i>:<i>account</i>:certificate-authority/<i>12345678-1234-1234-1234-123456789012</i> </code> <br/>ApiPassthrough:  Specifies X.509 certificate information to be included in the issued certificate. An <code>APIPassthrough</code> or <code>APICSRPassthrough</code> template variant must be selected, or else this parameter is ignored. For more information about using these templates, see <a href="https://docs.aws.amazon.com/acm-pca/latest/userguide/UsingTemplates.html">Understanding Certificate Templates</a>. If conflicting or duplicate certificate information is supplied during certificate issuance, ACM Private CA applies <a href="https://docs.aws.amazon.com/acm-pca/latest/userguide/UsingTemplates.html#template-order-of-operations">order of operation rules</a> to determine what information is used.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Subject</i> Contains information about the certificate subject. The <code>Subject</code> field in the certificate identifies the entity that owns or controls the public key in the certificate. The entity can be a user, computer, device, or service. The <code>Subject </code>must contain an X.500 distinguished name (DN). A DN is a sequence of relative distinguished names (RDNs). The RDNs are separated by commas in the certificate.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Subject</b>: Contains information about the certificate subject. The <code>Subject</code> field in the certificate identifies the entity that owns or controls the public key in the certificate. The entity can be a user, computer, device, or service. The <code>Subject </code>must contain an X.500 distinguished name (DN). A DN is a sequence of relative distinguished names (RDNs). The RDNs are separated by commas in the certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Extensions</i> Specifies X.509 extension information for a certificate.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Extensions</b>: Specifies X.509 extension information for a certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ExtendedKeyUsage</i> Specifies additional purposes for which the certified public key may be used other than basic purposes indicated in the <code>KeyUsage</code> extension.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CertificatePolicies</i> Contains a sequence of one or more policy information terms, each of which consists of an object identifier (OID) and optional qualifiers. For more information, see NIST's definition of <a href="https://csrc.nist.gov/glossary/term/Object_Identifier">Object Identifier (OID)</a>. In an end-entity certificate, these terms indicate the policy under which the certificate was issued and the purposes for which it may be used. In a CA certificate, these terms limit the set of policies for certification paths that include this certificate.<br/>Defines one or more purposes for which the key contained in the certificate can be used. Default value for each option is false.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>KeyUsage</b>: Defines one or more purposes for which the key contained in the certificate can be used. Default value for each option is false.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>GenerationQualifier</i> Typically a qualifier appended to the name of an individual. Examples include Jr. for junior, Sr. for senior, and III for third.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Pseudonym</i> Typically a shortened version of a longer <b>GivenName</b>. For example, Jonathan is often shortened to John. Elizabeth is often shortened to Beth, Liz, or Eliza.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Initials</i> Concatenation that typically contains the first letter of the <b>GivenName</b>, the first letter of the middle name if one exists, and the first letter of the <b>Surname</b>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>GivenName</i> First name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Surname</i> Family name. In the US and the UK, for example, the surname of an individual is ordered last. In Asian cultures the surname is typically ordered first.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Title</i> A title such as Mr. or Ms., which is pre-pended to the name to refer formally to the certificate subject.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Locality</i> The locality (such as a city or town) in which the certificate subject is located.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SerialNumber</i> The certificate serial number.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CommonName</i> For CA and end-entity certificates in a private PKI, the common name (CN) can be any string within the length limit.  Note: In publicly trusted certificates, the common name must be a fully qualified domain name (FQDN) associated with the certificate subject.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> State in which the subject of the certificate is located.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DistinguishedNameQualifier</i> Disambiguating information for the certificate subject.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OrganizationalUnit</i> A subdivision or unit of the organization (such as sales or finance) with which the certificate subject is affiliated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Organization</i> Legal name of the organization with which the certificate subject is affiliated. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Country</i> Two-digit code that specifies the country in which the certificate subject located.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> Determines how <i>ACM Private CA</i> interprets the <code>Value</code> parameter, an integer. Supported validity types include those listed below. Type definitions with values include a sample input value and the resulting output.   <code>END_DATE</code>: The specific date and time when the certificate will expire, expressed using UTCTime (YYMMDDHHMMSS) or GeneralizedTime (YYYYMMDDHHMMSS) format. When UTCTime is used, if the year field (YY) is greater than or equal to 50, the year is interpreted as 19YY. If the year field is less than 50, the year is interpreted as 20YY. <ul> <li> Sample input value: 491231235959 (UTCTime format) </li> <li> Output expiration date/time: 12/31/2049 23:59:59 </li> </ul>  <code>ABSOLUTE</code>: The specific date and time when the validity of a certificate will start or expire, expressed in seconds since the Unix Epoch.  <ul> <li> Sample input value: 2524608000 </li> <li> Output expiration date/time: 01/01/2050 00:00:00 </li> </ul>  <code>DAYS</code>, <code>MONTHS</code>, <code>YEARS</code>: The relative time from the moment of issuance until the certificate will expire, expressed in days, months, or years.  Example if <code>DAYS</code>, issued on 10/12/2020 at 12:34:54 UTC: <ul> <li> Sample input value: 90 </li> <li> Output expiration date: 01/10/2020 12:34:54 UTC </li> </ul> The minimum validity duration for a certificate using relative time (<code>DAYS</code>) is one day. The minimum validity for a certificate using absolute time (<code>ABSOLUTE</code> or <code>END_DATE</code>) is one second.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Value</i> A long integer interpreted according to the value of <code>Type</code>, below.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> Determines how <i>ACM Private CA</i> interprets the <code>Value</code> parameter, an integer. Supported validity types include those listed below. Type definitions with values include a sample input value and the resulting output.   <code>END_DATE</code>: The specific date and time when the certificate will expire, expressed using UTCTime (YYMMDDHHMMSS) or GeneralizedTime (YYYYMMDDHHMMSS) format. When UTCTime is used, if the year field (YY) is greater than or equal to 50, the year is interpreted as 19YY. If the year field is less than 50, the year is interpreted as 20YY. <ul> <li> Sample input value: 491231235959 (UTCTime format) </li> <li> Output expiration date/time: 12/31/2049 23:59:59 </li> </ul>  <code>ABSOLUTE</code>: The specific date and time when the validity of a certificate will start or expire, expressed in seconds since the Unix Epoch.  <ul> <li> Sample input value: 2524608000 </li> <li> Output expiration date/time: 01/01/2050 00:00:00 </li> </ul>  <code>DAYS</code>, <code>MONTHS</code>, <code>YEARS</code>: The relative time from the moment of issuance until the certificate will expire, expressed in days, months, or years.  Example if <code>DAYS</code>, issued on 10/12/2020 at 12:34:54 UTC: <ul> <li> Sample input value: 90 </li> <li> Output expiration date: 01/10/2020 12:34:54 UTC </li> </ul> The minimum validity duration for a certificate using relative time (<code>DAYS</code>) is one day. The minimum validity for a certificate using absolute time (<code>ABSOLUTE</code> or <code>END_DATE</code>) is one second.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Value</i> A long integer interpreted according to the value of <code>Type</code>, below.<br/>
        :return: CertificateArn:  The Amazon Resource Name (ARN) of the issued certificate and the certificate serial number. This is of the form:  <code>arn:aws:acm-pca:<i>region</i>:<i>account</i>:certificate-authority/<i>12345678-1234-1234-1234-123456789012</i>/certificate/<i>286535153982981100925020015808220737245</i> </code> <br/>        """
        pass

    def list_certificate_authorities(self, NextToken: str=None, MaxResults: int=None, ResourceOwner: str=None) -> ListCertificateAuthoritiesResponse:
        r"""Lists the private certificate authorities that you created by using the <a href="https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CreateCertificateAuthority.html">CreateCertificateAuthority</a> action.

        :param self:
        :param ResourceOwner:  Use this parameter to filter the returned set of certificate authorities based on their owner. The default is SELF.<br/>MaxResults:  Use this parameter when paginating results to specify the maximum number of items to return in the response on each page. If additional items exist beyond the number you specify, the <code>NextToken</code> element is sent in the response. Use this <code>NextToken</code> value in a subsequent request to retrieve additional items.<br/>NextToken:  Use this parameter when paginating results in a subsequent request after you receive a response with truncated results. Set it to the value of the <code>NextToken</code> parameter from the response you just received.<br/>
        :return: NextToken:  When the list is truncated, this value is present and should be used for the <code>NextToken</code> parameter in a subsequent pagination request.<br/>CertificateAuthorities:  Summary information about each certificate authority you have created.<br/>        """
        pass

    def list_permissions(self, CertificateAuthorityArn: str, NextToken: str=None, MaxResults: int=None) -> ListPermissionsResponse:
        r"""List all permissions on a private CA, if any, granted to the AWS Certificate Manager (ACM) service principal (acm.amazonaws.com).  These permissions allow ACM to issue and renew ACM certificates that reside in the same AWS account as the CA.  Permissions can be granted with the <a href="https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CreatePermission.html">CreatePermission</a> action and revoked with the <a href="https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_DeletePermission.html">DeletePermission</a> action. <p class="title"> <b>About Permissions</b>  <ul> <li> If the private CA and the certificates it issues reside in the same account, you can use <code>CreatePermission</code> to grant permissions for ACM to carry out automatic certificate renewals. </li> <li> For automatic certificate renewal to succeed, the ACM service principal needs permissions to create, retrieve, and list certificates. </li> <li> If the private CA and the ACM certificates reside in different accounts, then permissions cannot be used to enable automatic renewals. Instead, the ACM certificate owner must set up a resource-based policy to enable cross-account issuance and renewals. For more information, see <a href="https://docs.aws.amazon.com/acm-pca/latest/userguide/pca-rbp.html">Using a Resource Based Policy with ACM Private CA</a>. </li> </ul>

        :param self:
        :param MaxResults:  When paginating results, use this parameter to specify the maximum number of items to return in the response. If additional items exist beyond the number you specify, the <b>NextToken</b> element is sent in the response. Use this <b>NextToken</b> value in a subsequent request to retrieve additional items.<br/>NextToken:  When paginating results, use this parameter in a subsequent request after you receive a response with truncated results. Set it to the value of <b>NextToken</b> from the response you just received.<br/>CertificateAuthorityArn:  The Amazon Resource Number (ARN) of the private CA to inspect. You can find the ARN by calling the <a href="https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_ListCertificateAuthorities.html">ListCertificateAuthorities</a> action. This must be of the form: <code>arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012</code> You can get a private CA's ARN by running the <a href="https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_ListCertificateAuthorities.html">ListCertificateAuthorities</a> action.<br/>
        :return: NextToken:  When the list is truncated, this value is present and should be used for the <b>NextToken</b> parameter in a subsequent pagination request. <br/>Permissions:  Summary information about each permission assigned by the specified private CA, including the action enabled, the policy provided, and the time of creation.<br/>        """
        pass

    def list_tags(self, CertificateAuthorityArn: str, NextToken: str=None, MaxResults: int=None) -> ListTagsResponse:
        r"""Lists the tags, if any, that are associated with your private CA or one that has been shared with you. Tags are labels that you can use to identify and organize your CAs. Each tag consists of a key and an optional value. Call the <a href="https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_TagCertificateAuthority.html">TagCertificateAuthority</a> action to add one or more tags to your CA. Call the <a href="https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_UntagCertificateAuthority.html">UntagCertificateAuthority</a> action to remove tags. 

        :param self:
        :param MaxResults:  Use this parameter when paginating results to specify the maximum number of items to return in the response. If additional items exist beyond the number you specify, the <b>NextToken</b> element is sent in the response. Use this <b>NextToken</b> value in a subsequent request to retrieve additional items.<br/>NextToken:  Use this parameter when paginating results in a subsequent request after you receive a response with truncated results. Set it to the value of <b>NextToken</b> from the response you just received.<br/>CertificateAuthorityArn:  The Amazon Resource Name (ARN) that was returned when you called the <a href="https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CreateCertificateAuthority.html">CreateCertificateAuthority</a> action. This must be of the form:   <code>arn:aws:acm-pca:<i>region</i>:<i>account</i>:certificate-authority/<i>12345678-1234-1234-1234-123456789012</i> </code> <br/>
        :return: NextToken:  When the list is truncated, this value is present and should be used for the <b>NextToken</b> parameter in a subsequent pagination request. <br/>Tags:  The tags associated with your private CA.<br/>        """
        pass

    def put_policy(self, Policy: str, ResourceArn: str):
        r"""Attaches a resource-based policy to a private CA.  A policy can also be applied by sharing a private CA through AWS Resource Access Manager (RAM). For more information, see <a href="https://docs.aws.amazon.com/acm-pca/latest/userguide/pca-ram.html">Attach a Policy for Cross-Account Access</a>. The policy can be displayed with <a href="https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_GetPolicy.html">GetPolicy</a> and removed with <a href="https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_DeletePolicy.html">DeletePolicy</a>. <p class="title"> <b>About Policies</b>  <ul> <li> A policy grants access on a private CA to an AWS customer account, to AWS Organizations, or to an AWS Organizations unit. Policies are under the control of a CA administrator. For more information, see <a href="https://docs.aws.amazon.com/acm-pca/latest/userguide/pca-rbp.html">Using a Resource Based Policy with ACM Private CA</a>. </li> <li> A policy permits a user of AWS Certificate Manager (ACM) to issue ACM certificates signed by a CA in another account. </li> <li> For ACM to manage automatic renewal of these certificates, the ACM user must configure a Service Linked Role (SLR). The SLR allows the ACM service to assume the identity of the user, subject to confirmation against the ACM Private CA policy. For more information, see <a href="https://docs.aws.amazon.com/acm/latest/userguide/acm-slr.html">Using a Service Linked Role with ACM</a>. </li> <li> Updates made in AWS Resource Manager (RAM) are reflected in policies. For more information, see <a href="https://docs.aws.amazon.com/acm-pca/latest/userguide/pca-ram.html">Attach a Policy for Cross-Account Access</a>. </li> </ul>

        :param self:
        :param Policy:  The path and file name of a JSON-formatted IAM policy to attach to the specified private CA resource. If this policy does not contain all required statements or if it includes any statement that is not allowed, the <code>PutPolicy</code> action returns an <code>InvalidPolicyException</code>. For information about IAM policy and statement structure, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#access_policies-json">Overview of JSON Policies</a>.<br/>ResourceArn:  The Amazon Resource Number (ARN) of the private CA to associate with the policy. The ARN of the CA can be found by calling the <a href="https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_ListCertificateAuthorities.html">ListCertificateAuthorities</a> action. <p/><br/>
        :return:         """
        pass

    def restore_certificate_authority(self, CertificateAuthorityArn: str):
        r"""Restores a certificate authority (CA) that is in the <code>DELETED</code> state. You can restore a CA during the period that you defined in the <b>PermanentDeletionTimeInDays</b> parameter of the <a href="https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_DeleteCertificateAuthority.html">DeleteCertificateAuthority</a> action. Currently, you can specify 7 to 30 days. If you did not specify a <b>PermanentDeletionTimeInDays</b> value, by default you can restore the CA at any time in a 30 day period. You can check the time remaining in the restoration period of a private CA in the <code>DELETED</code> state by calling the <a href="https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_DescribeCertificateAuthority.html">DescribeCertificateAuthority</a> or <a href="https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_ListCertificateAuthorities.html">ListCertificateAuthorities</a> actions. The status of a restored CA is set to its pre-deletion status when the <b>RestoreCertificateAuthority</b> action returns. To change its status to <code>ACTIVE</code>, call the <a href="https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_UpdateCertificateAuthority.html">UpdateCertificateAuthority</a> action. If the private CA was in the <code>PENDING_CERTIFICATE</code> state at deletion, you must use the <a href="https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_ImportCertificateAuthorityCertificate.html">ImportCertificateAuthorityCertificate</a> action to import a certificate authority into the private CA before it can be activated. You cannot restore a CA after the restoration period has ended.

        :param self:
        :param CertificateAuthorityArn:  The Amazon Resource Name (ARN) that was returned when you called the <a href="https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CreateCertificateAuthority.html">CreateCertificateAuthority</a> action. This must be of the form:   <code>arn:aws:acm-pca:<i>region</i>:<i>account</i>:certificate-authority/<i>12345678-1234-1234-1234-123456789012</i> </code> <br/>
        :return:         """
        pass

    def revoke_certificate(self, RevocationReason: str, CertificateSerial: str, CertificateAuthorityArn: str):
        r"""Revokes a certificate that was issued inside ACM Private CA. If you enable a certificate revocation list (CRL) when you create or update your private CA, information about the revoked certificates will be included in the CRL. ACM Private CA writes the CRL to an S3 bucket that you specify. A CRL is typically updated approximately 30 minutes after a certificate is revoked. If for any reason the CRL update fails, ACM Private CA attempts makes further attempts every 15 minutes. With Amazon CloudWatch, you can create alarms for the metrics <code>CRLGenerated</code> and <code>MisconfiguredCRLBucket</code>. For more information, see <a href="https://docs.aws.amazon.com/acm-pca/latest/userguide/PcaCloudWatch.html">Supported CloudWatch Metrics</a>. <note> Both PCA and the IAM principal must have permission to write to the S3 bucket that you specify. If the IAM principal making the call does not have permission to write to the bucket, then an exception is thrown. For more information, see <a href="https://docs.aws.amazon.com/acm-pca/latest/userguide/PcaAuthAccess.html">Configure Access to ACM Private CA</a>. </note> ACM Private CA also writes revocation information to the audit report. For more information, see <a href="https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CreateCertificateAuthorityAuditReport.html">CreateCertificateAuthorityAuditReport</a>. <note> You cannot revoke a root CA self-signed certificate. </note>

        :param self:
        :param RevocationReason:  Specifies why you revoked the certificate.<br/>CertificateSerial:  Serial number of the certificate to be revoked. This must be in hexadecimal format. You can retrieve the serial number by calling <a href="https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_GetCertificate.html">GetCertificate</a> with the Amazon Resource Name (ARN) of the certificate you want and the ARN of your private CA. The <b>GetCertificate</b> action retrieves the certificate in the PEM format. You can use the following OpenSSL command to list the certificate in text format and copy the hexadecimal serial number.   <code>openssl x509 -in <i>file_path</i> -text -noout</code>  You can also copy the serial number from the console or use the <a href="https://docs.aws.amazon.com/acm/latest/APIReference/API_DescribeCertificate.html">DescribeCertificate</a> action in the <i>AWS Certificate Manager API Reference</i>. <br/>CertificateAuthorityArn:  Amazon Resource Name (ARN) of the private CA that issued the certificate to be revoked. This must be of the form:  <code>arn:aws:acm-pca:<i>region</i>:<i>account</i>:certificate-authority/<i>12345678-1234-1234-1234-123456789012</i> </code> <br/>
        :return:         """
        pass

    def tag_certificate_authority(self, Tags: List[Tag], CertificateAuthorityArn: str):
        r"""Adds one or more tags to your private CA. Tags are labels that you can use to identify and organize your AWS resources. Each tag consists of a key and an optional value. You specify the private CA on input by its Amazon Resource Name (ARN). You specify the tag by using a key-value pair. You can apply a tag to just one private CA if you want to identify a specific characteristic of that CA, or you can apply the same tag to multiple private CAs if you want to filter for a common relationship among those CAs. To remove one or more tags, use the <a href="https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_UntagCertificateAuthority.html">UntagCertificateAuthority</a> action. Call the <a href="https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_ListTags.html">ListTags</a> action to see what tags are associated with your CA. 

        :param self:
        :param Tags:  List of tags to be associated with the CA.<br/>CertificateAuthorityArn:  The Amazon Resource Name (ARN) that was returned when you called <a href="https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CreateCertificateAuthority.html">CreateCertificateAuthority</a>. This must be of the form:   <code>arn:aws:acm-pca:<i>region</i>:<i>account</i>:certificate-authority/<i>12345678-1234-1234-1234-123456789012</i> </code> <br/>
        :return:         """
        pass

    def untag_certificate_authority(self, Tags: List[Tag], CertificateAuthorityArn: str):
        r"""Remove one or more tags from your private CA. A tag consists of a key-value pair. If you do not specify the value portion of the tag when calling this action, the tag will be removed regardless of value. If you specify a value, the tag is removed only if it is associated with the specified value. To add tags to a private CA, use the <a href="https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_TagCertificateAuthority.html">TagCertificateAuthority</a>. Call the <a href="https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_ListTags.html">ListTags</a> action to see what tags are associated with your CA. 

        :param self:
        :param Tags:  List of tags to be removed from the CA.<br/>CertificateAuthorityArn:  The Amazon Resource Name (ARN) that was returned when you called <a href="https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CreateCertificateAuthority.html">CreateCertificateAuthority</a>. This must be of the form:   <code>arn:aws:acm-pca:<i>region</i>:<i>account</i>:certificate-authority/<i>12345678-1234-1234-1234-123456789012</i> </code> <br/>
        :return:         """
        pass

    def update_certificate_authority(self, CertificateAuthorityArn: str, RevocationConfiguration: RevocationConfiguration=None, Status: str=None):
        r"""Updates the status or configuration of a private certificate authority (CA). Your private CA must be in the <code>ACTIVE</code> or <code>DISABLED</code> state before you can update it. You can disable a private CA that is in the <code>ACTIVE</code> state or make a CA that is in the <code>DISABLED</code> state active again. <note> Both PCA and the IAM principal must have permission to write to the S3 bucket that you specify. If the IAM principal making the call does not have permission to write to the bucket, then an exception is thrown. For more information, see <a href="https://docs.aws.amazon.com/acm-pca/latest/userguide/PcaAuthAccess.html">Configure Access to ACM Private CA</a>. </note>

        :param self:
        :param Status:  Status of your private CA.<br/>RevocationConfiguration:  Revocation information for your private CA.:<br/>CertificateAuthorityArn:  Amazon Resource Name (ARN) of the private CA that issued the certificate to be revoked. This must be of the form:  <code>arn:aws:acm-pca:<i>region</i>:<i>account</i>:certificate-authority/<i>12345678-1234-1234-1234-123456789012</i> </code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CrlConfiguration</i> Configuration of the certificate revocation list (CRL), if any, maintained by your private CA.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CrlConfiguration</b>: Configuration of the certificate revocation list (CRL), if any, maintained by your private CA.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3ObjectAcl</i> Determines whether the CRL will be publicly readable or privately held in the CRL Amazon S3 bucket. If you choose PUBLIC_READ, the CRL will be accessible over the public internet. If you choose BUCKET_OWNER_FULL_CONTROL, only the owner of the CRL S3 bucket can access the CRL, and your PKI clients may need an alternative method of access.  If no value is specified, the default is <code>PUBLIC_READ</code>.  <i>Note:</i> This default can cause CA creation to fail in some circumstances. If you have have enabled the Block Public Access (BPA) feature in your S3 account, then you must specify the value of this parameter as <code>BUCKET_OWNER_FULL_CONTROL</code>, and not doing so results in an error. If you have disabled BPA in S3, then you can specify either <code>BUCKET_OWNER_FULL_CONTROL</code> or <code>PUBLIC_READ</code> as the value. For more information, see <a href="https://docs.aws.amazon.com/acm-pca/latest/userguide/PcaCreateCa.html#s3-bpa">Blocking public access to the S3 bucket</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3BucketName</i> Name of the S3 bucket that contains the CRL. If you do not provide a value for the <b>CustomCname</b> argument, the name of your S3 bucket is placed into the <b>CRL Distribution Points</b> extension of the issued certificate. You can change the name of your bucket by calling the <a href="https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_UpdateCertificateAuthority.html">UpdateCertificateAuthority</a> action. You must specify a <a href="https://docs.aws.amazon.com/acm-pca/latest/userguide/PcaCreateCa.html#s3-policies">bucket policy</a> that allows ACM Private CA to write the CRL to your bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomCname</i> Name inserted into the certificate <b>CRL Distribution Points</b> extension that enables the use of an alias for the CRL distribution point. Use this value if you don't want the name of your S3 bucket to be public.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ExpirationInDays</i> Validity period of the CRL in days.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Boolean value that specifies whether certificate revocation lists (CRLs) are enabled. You can use this value to enable certificate revocation for a new CA when you call the <a href="https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CreateCertificateAuthority.html">CreateCertificateAuthority</a> action or for an existing CA when you call the <a href="https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_UpdateCertificateAuthority.html">UpdateCertificateAuthority</a> action. <br/>
        :return:         """
        pass





class AlexaForBusiness(BaseClient):
    r"""Alexa for Business helps you use Alexa in your organization. Alexa for Business provides you with the tools to manage Alexa devices, enroll your users, and assign skills, at scale. You can build your own context-aware voice skills using the Alexa Skills Kit and the Alexa for Business API operations. You can also make these available as private skills for your organization. Alexa for Business makes it efficient to voice-enable your products and services, thus providing context-aware voice experiences for your customers. Device makers building with the Alexa Voice Service (AVS) can create fully integrated solutions, register their products with Alexa for Business, and manage them as shared devices in their organization. """


    class ListSkillsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_skills` for valid parameters"""
            pass
    class SearchUsersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `search_users` for valid parameters"""
            pass
    class ListTagsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_tags` for valid parameters"""
            pass
    class SearchProfilesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `search_profiles` for valid parameters"""
            pass
    class SearchSkillGroupsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `search_skill_groups` for valid parameters"""
            pass
    class SearchDevicesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `search_devices` for valid parameters"""
            pass
    class SearchRoomsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `search_rooms` for valid parameters"""
            pass
    class ListBusinessReportSchedulesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_business_report_schedules` for valid parameters"""
            pass
    class ListConferenceProvidersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_conference_providers` for valid parameters"""
            pass
    class ListDeviceEventsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_device_events` for valid parameters"""
            pass
    class ListSkillsStoreCategoriesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_skills_store_categories` for valid parameters"""
            pass
    class ListSkillsStoreSkillsByCategoryPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_skills_store_skills_by_category` for valid parameters"""
            pass
    class ListSmartHomeAppliancesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_smart_home_appliances` for valid parameters"""
            pass


    class ApproveSkillRequest(Mapping):
        pass
    
    class ApproveSkillResponse(Mapping):
        pass
    
    class AssociateContactWithAddressBookRequest(Mapping):
        pass
    
    class AssociateContactWithAddressBookResponse(Mapping):
        pass
    
    class AssociateDeviceWithNetworkProfileRequest(Mapping):
        pass
    
    class AssociateDeviceWithNetworkProfileResponse(Mapping):
        pass
    
    class AssociateDeviceWithRoomRequest(Mapping):
        pass
    
    class AssociateDeviceWithRoomResponse(Mapping):
        pass
    
    class AssociateSkillGroupWithRoomRequest(Mapping):
        pass
    
    class AssociateSkillGroupWithRoomResponse(Mapping):
        pass
    
    class AssociateSkillWithSkillGroupRequest(Mapping):
        pass
    
    class AssociateSkillWithSkillGroupResponse(Mapping):
        pass
    
    class AssociateSkillWithUsersRequest(Mapping):
        pass
    
    class AssociateSkillWithUsersResponse(Mapping):
        pass
    
    class CreateAddressBookRequest(Mapping):
        pass
    
    class CreateAddressBookResponse(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class CreateBusinessReportScheduleRequest(Mapping):
        pass
    
    class CreateBusinessReportScheduleResponse(Mapping):
        pass
    
    class BusinessReportContentRange(Mapping):
        pass
    
    class BusinessReportRecurrence(Mapping):
        pass
    
    class CreateConferenceProviderRequest(Mapping):
        pass
    
    class CreateConferenceProviderResponse(Mapping):
        pass
    
    class IPDialIn(Mapping):
        pass
    
    class PSTNDialIn(Mapping):
        pass
    
    class MeetingSetting(Mapping):
        pass
    
    class CreateContactRequest(Mapping):
        pass
    
    class CreateContactResponse(Mapping):
        pass
    
    class PhoneNumber(Mapping):
        pass
    
    class SipAddress(Mapping):
        pass
    
    class CreateGatewayGroupRequest(Mapping):
        pass
    
    class CreateGatewayGroupResponse(Mapping):
        pass
    
    class CreateNetworkProfileRequest(Mapping):
        pass
    
    class CreateNetworkProfileResponse(Mapping):
        pass
    
    class TrustAnchor(object):
        pass
    
    class CreateProfileRequest(Mapping):
        pass
    
    class CreateProfileResponse(Mapping):
        pass
    
    class Boolean(object):
        pass
    
    class CreateMeetingRoomConfiguration(Mapping):
        pass
    
    class CreateRoomRequest(Mapping):
        pass
    
    class CreateRoomResponse(Mapping):
        pass
    
    class CreateSkillGroupRequest(Mapping):
        pass
    
    class CreateSkillGroupResponse(Mapping):
        pass
    
    class CreateUserRequest(Mapping):
        pass
    
    class CreateUserResponse(Mapping):
        pass
    
    class DeleteAddressBookRequest(Mapping):
        pass
    
    class DeleteAddressBookResponse(Mapping):
        pass
    
    class DeleteBusinessReportScheduleRequest(Mapping):
        pass
    
    class DeleteBusinessReportScheduleResponse(Mapping):
        pass
    
    class DeleteConferenceProviderRequest(Mapping):
        pass
    
    class DeleteConferenceProviderResponse(Mapping):
        pass
    
    class DeleteContactRequest(Mapping):
        pass
    
    class DeleteContactResponse(Mapping):
        pass
    
    class DeleteDeviceRequest(Mapping):
        pass
    
    class DeleteDeviceResponse(Mapping):
        pass
    
    class DeleteDeviceUsageDataRequest(Mapping):
        pass
    
    class DeleteDeviceUsageDataResponse(Mapping):
        pass
    
    class DeleteGatewayGroupRequest(Mapping):
        pass
    
    class DeleteGatewayGroupResponse(Mapping):
        pass
    
    class DeleteNetworkProfileRequest(Mapping):
        pass
    
    class DeleteNetworkProfileResponse(Mapping):
        pass
    
    class DeleteProfileRequest(Mapping):
        pass
    
    class DeleteProfileResponse(Mapping):
        pass
    
    class DeleteRoomRequest(Mapping):
        pass
    
    class DeleteRoomResponse(Mapping):
        pass
    
    class DeleteRoomSkillParameterRequest(Mapping):
        pass
    
    class DeleteRoomSkillParameterResponse(Mapping):
        pass
    
    class DeleteSkillAuthorizationRequest(Mapping):
        pass
    
    class DeleteSkillAuthorizationResponse(Mapping):
        pass
    
    class DeleteSkillGroupRequest(Mapping):
        pass
    
    class DeleteSkillGroupResponse(Mapping):
        pass
    
    class DeleteUserRequest(Mapping):
        pass
    
    class DeleteUserResponse(Mapping):
        pass
    
    class DisassociateContactFromAddressBookRequest(Mapping):
        pass
    
    class DisassociateContactFromAddressBookResponse(Mapping):
        pass
    
    class DisassociateDeviceFromRoomRequest(Mapping):
        pass
    
    class DisassociateDeviceFromRoomResponse(Mapping):
        pass
    
    class DisassociateSkillFromSkillGroupRequest(Mapping):
        pass
    
    class DisassociateSkillFromSkillGroupResponse(Mapping):
        pass
    
    class DisassociateSkillFromUsersRequest(Mapping):
        pass
    
    class DisassociateSkillFromUsersResponse(Mapping):
        pass
    
    class DisassociateSkillGroupFromRoomRequest(Mapping):
        pass
    
    class DisassociateSkillGroupFromRoomResponse(Mapping):
        pass
    
    class ForgetSmartHomeAppliancesRequest(Mapping):
        pass
    
    class ForgetSmartHomeAppliancesResponse(Mapping):
        pass
    
    class GetAddressBookRequest(Mapping):
        pass
    
    class GetAddressBookResponse(Mapping):
        pass
    
    class GetConferencePreferenceRequest(Mapping):
        pass
    
    class GetConferencePreferenceResponse(Mapping):
        pass
    
    class GetConferenceProviderRequest(Mapping):
        pass
    
    class GetConferenceProviderResponse(Mapping):
        pass
    
    class GetContactRequest(Mapping):
        pass
    
    class GetContactResponse(Mapping):
        pass
    
    class GetDeviceRequest(Mapping):
        pass
    
    class GetDeviceResponse(Mapping):
        pass
    
    class GetGatewayRequest(Mapping):
        pass
    
    class GetGatewayResponse(Mapping):
        pass
    
    class GetGatewayGroupRequest(Mapping):
        pass
    
    class GetGatewayGroupResponse(Mapping):
        pass
    
    class GetInvitationConfigurationRequest(Mapping):
        pass
    
    class GetInvitationConfigurationResponse(Mapping):
        pass
    
    class GetNetworkProfileRequest(Mapping):
        pass
    
    class GetNetworkProfileResponse(Mapping):
        pass
    
    class GetProfileRequest(Mapping):
        pass
    
    class GetProfileResponse(Mapping):
        pass
    
    class GetRoomRequest(Mapping):
        pass
    
    class GetRoomResponse(Mapping):
        pass
    
    class GetRoomSkillParameterRequest(Mapping):
        pass
    
    class GetRoomSkillParameterResponse(Mapping):
        pass
    
    class GetSkillGroupRequest(Mapping):
        pass
    
    class GetSkillGroupResponse(Mapping):
        pass
    
    class ListBusinessReportSchedulesRequest(Mapping):
        pass
    
    class ListBusinessReportSchedulesResponse(Mapping):
        pass
    
    class ListConferenceProvidersRequest(Mapping):
        pass
    
    class ListConferenceProvidersResponse(Mapping):
        pass
    
    class ListDeviceEventsRequest(Mapping):
        pass
    
    class ListDeviceEventsResponse(Mapping):
        pass
    
    class ListGatewayGroupsRequest(Mapping):
        pass
    
    class ListGatewayGroupsResponse(Mapping):
        pass
    
    class ListGatewaysRequest(Mapping):
        pass
    
    class ListGatewaysResponse(Mapping):
        pass
    
    class ListSkillsRequest(Mapping):
        pass
    
    class ListSkillsResponse(Mapping):
        pass
    
    class ListSkillsStoreCategoriesRequest(Mapping):
        pass
    
    class ListSkillsStoreCategoriesResponse(Mapping):
        pass
    
    class ListSkillsStoreSkillsByCategoryRequest(Mapping):
        pass
    
    class ListSkillsStoreSkillsByCategoryResponse(Mapping):
        pass
    
    class CategoryId(object):
        pass
    
    class ListSmartHomeAppliancesRequest(Mapping):
        pass
    
    class ListSmartHomeAppliancesResponse(Mapping):
        pass
    
    class ListTagsRequest(Mapping):
        pass
    
    class ListTagsResponse(Mapping):
        pass
    
    class PutConferencePreferenceRequest(Mapping):
        pass
    
    class PutConferencePreferenceResponse(Mapping):
        pass
    
    class ConferencePreference(Mapping):
        pass
    
    class PutInvitationConfigurationRequest(Mapping):
        pass
    
    class PutInvitationConfigurationResponse(Mapping):
        pass
    
    class SkillId(object):
        pass
    
    class PutRoomSkillParameterRequest(Mapping):
        pass
    
    class PutRoomSkillParameterResponse(Mapping):
        pass
    
    class RoomSkillParameter(Mapping):
        pass
    
    class PutSkillAuthorizationRequest(Mapping):
        pass
    
    class PutSkillAuthorizationResponse(Mapping):
        pass
    
    class AuthorizationResult(object):
        pass
    
    class RegisterAVSDeviceRequest(Mapping):
        pass
    
    class RegisterAVSDeviceResponse(Mapping):
        pass
    
    class RejectSkillRequest(Mapping):
        pass
    
    class RejectSkillResponse(Mapping):
        pass
    
    class ResolveRoomRequest(Mapping):
        pass
    
    class ResolveRoomResponse(Mapping):
        pass
    
    class RevokeInvitationRequest(Mapping):
        pass
    
    class RevokeInvitationResponse(Mapping):
        pass
    
    class SearchAddressBooksRequest(Mapping):
        pass
    
    class SearchAddressBooksResponse(Mapping):
        pass
    
    class Filter(Mapping):
        pass
    
    class Sort(Mapping):
        pass
    
    class SearchContactsRequest(Mapping):
        pass
    
    class SearchContactsResponse(Mapping):
        pass
    
    class SearchDevicesRequest(Mapping):
        pass
    
    class SearchDevicesResponse(Mapping):
        pass
    
    class SearchNetworkProfilesRequest(Mapping):
        pass
    
    class SearchNetworkProfilesResponse(Mapping):
        pass
    
    class SearchProfilesRequest(Mapping):
        pass
    
    class SearchProfilesResponse(Mapping):
        pass
    
    class SearchRoomsRequest(Mapping):
        pass
    
    class SearchRoomsResponse(Mapping):
        pass
    
    class SearchSkillGroupsRequest(Mapping):
        pass
    
    class SearchSkillGroupsResponse(Mapping):
        pass
    
    class SearchUsersRequest(Mapping):
        pass
    
    class SearchUsersResponse(Mapping):
        pass
    
    class SendAnnouncementRequest(Mapping):
        pass
    
    class SendAnnouncementResponse(Mapping):
        pass
    
    class Content(Mapping):
        pass
    
    class SendInvitationRequest(Mapping):
        pass
    
    class SendInvitationResponse(Mapping):
        pass
    
    class StartDeviceSyncRequest(Mapping):
        pass
    
    class StartDeviceSyncResponse(Mapping):
        pass
    
    class Feature(object):
        pass
    
    class StartSmartHomeApplianceDiscoveryRequest(Mapping):
        pass
    
    class StartSmartHomeApplianceDiscoveryResponse(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateAddressBookRequest(Mapping):
        pass
    
    class UpdateAddressBookResponse(Mapping):
        pass
    
    class UpdateBusinessReportScheduleRequest(Mapping):
        pass
    
    class UpdateBusinessReportScheduleResponse(Mapping):
        pass
    
    class UpdateConferenceProviderRequest(Mapping):
        pass
    
    class UpdateConferenceProviderResponse(Mapping):
        pass
    
    class UpdateContactRequest(Mapping):
        pass
    
    class UpdateContactResponse(Mapping):
        pass
    
    class UpdateDeviceRequest(Mapping):
        pass
    
    class UpdateDeviceResponse(Mapping):
        pass
    
    class UpdateGatewayRequest(Mapping):
        pass
    
    class UpdateGatewayResponse(Mapping):
        pass
    
    class UpdateGatewayGroupRequest(Mapping):
        pass
    
    class UpdateGatewayGroupResponse(Mapping):
        pass
    
    class UpdateNetworkProfileRequest(Mapping):
        pass
    
    class UpdateNetworkProfileResponse(Mapping):
        pass
    
    class UpdateProfileRequest(Mapping):
        pass
    
    class UpdateProfileResponse(Mapping):
        pass
    
    class UpdateMeetingRoomConfiguration(Mapping):
        pass
    
    class UpdateRoomRequest(Mapping):
        pass
    
    class UpdateRoomResponse(Mapping):
        pass
    
    class UpdateSkillGroupRequest(Mapping):
        pass
    
    class UpdateSkillGroupResponse(Mapping):
        pass
    
    def approve_skill(self, SkillId: str) -> ApproveSkillResponse:
        r"""Associates a skill with the organization under the customer's AWS account. If a skill is private, the user implicitly accepts access to this skill during enablement.

        :param self:
        :param SkillId:  The unique identifier of the skill.<br/>
        :return:         """
        pass

    def associate_contact_with_address_book(self, AddressBookArn: str, ContactArn: str) -> AssociateContactWithAddressBookResponse:
        r"""Associates a contact with a given address book.

        :param self:
        :param AddressBookArn:  The ARN of the address book with which to associate the contact.<br/>ContactArn:  The ARN of the contact to associate with an address book.<br/>
        :return:         """
        pass

    def associate_device_with_network_profile(self, NetworkProfileArn: str, DeviceArn: str) -> AssociateDeviceWithNetworkProfileResponse:
        r"""Associates a device with the specified network profile.

        :param self:
        :param NetworkProfileArn:  The ARN of the network profile to associate with a device.<br/>DeviceArn:  The device ARN.<br/>
        :return:         """
        pass

    def associate_device_with_room(self, DeviceArn: str=None, RoomArn: str=None) -> AssociateDeviceWithRoomResponse:
        r"""Associates a device with a given room. This applies all the settings from the room profile to the device, and all the skills in any skill groups added to that room. This operation requires the device to be online, or else a manual sync is required. 

        :param self:
        :param RoomArn:  The ARN of the room with which to associate the device. Required.<br/>DeviceArn:  The ARN of the device to associate to a room. Required.<br/>
        :return:         """
        pass

    def associate_skill_group_with_room(self, SkillGroupArn: str=None, RoomArn: str=None) -> AssociateSkillGroupWithRoomResponse:
        r"""Associates a skill group with a given room. This enables all skills in the associated skill group on all devices in the room.

        :param self:
        :param RoomArn:  The ARN of the room with which to associate the skill group. Required.<br/>SkillGroupArn:  The ARN of the skill group to associate with a room. Required.<br/>
        :return:         """
        pass

    def associate_skill_with_skill_group(self, SkillId: str, SkillGroupArn: str=None) -> AssociateSkillWithSkillGroupResponse:
        r"""Associates a skill with a skill group.

        :param self:
        :param SkillId:  The unique identifier of the skill.<br/>SkillGroupArn:  The ARN of the skill group to associate the skill to. Required.<br/>
        :return:         """
        pass

    def associate_skill_with_users(self, SkillId: str) -> AssociateSkillWithUsersResponse:
        r"""Makes a private skill available for enrolled users to enable on their devices.

        :param self:
        :param SkillId:  The private skill ID you want to make available to enrolled users.<br/>
        :return:         """
        pass

    def create_address_book(self, Name: str, Description: str=None, ClientRequestToken: str=None, Tags: List[Tag]=None) -> CreateAddressBookResponse:
        r"""Creates an address book with the specified details.

        :param self:
        :param Tags:  The tags to be added to the specified resource. Do not provide system tags.<br/>ClientRequestToken:  A unique, user-specified identifier for the request that ensures idempotency.<br/>Description:  The description of the address book.<br/>Name:  The name of the address book.<br/>
        :return: AddressBookArn:  The ARN of the newly created address book.<br/>        """
        pass

    def create_business_report_schedule(self, ContentRange: BusinessReportContentRange, Format: str, ScheduleName: str=None, S3BucketName: str=None, S3KeyPrefix: str=None, Recurrence: BusinessReportRecurrence=None, ClientRequestToken: str=None, Tags: List[Tag]=None) -> CreateBusinessReportScheduleResponse:
        r"""Creates a recurring schedule for usage reports to deliver to the specified S3 location with a specified daily or weekly interval.

        :param self:
        :param Tags:  The tags for the business report schedule.<br/>ClientRequestToken:  The client request token.<br/>Recurrence:  The recurrence of the reports. If this isn't specified, the report will only be delivered one time when the API is called. :<br/>ContentRange:  The content range of the reports.:<br/>Format:  The format of the generated report (individual CSV files or zipped files of individual files).<br/>S3KeyPrefix:  The S3 key where the report is delivered.<br/>S3BucketName:  The S3 bucket name of the output reports. If this isn't specified, the report can be retrieved from a download link by calling ListBusinessReportSchedule. <br/>ScheduleName:  The name identifier of the schedule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Interval</i> The interval of the content range.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StartDate</i> The start date.<br/>
        :return: ScheduleArn:  The ARN of the business report schedule.<br/>        """
        pass

    def create_conference_provider(self, MeetingSetting: MeetingSetting, ConferenceProviderType: str, ConferenceProviderName: str, IPDialIn: IPDialIn=None, PSTNDialIn: PSTNDialIn=None, ClientRequestToken: str=None, Tags: List[Tag]=None) -> CreateConferenceProviderResponse:
        r"""Adds a new conference provider under the user's AWS account.

        :param self:
        :param Tags:  The tags to be added to the specified resource. Do not provide system tags.<br/>ClientRequestToken:  The request token of the client.<br/>MeetingSetting:  The meeting settings for the conference provider.:<br/>PSTNDialIn:  The information for PSTN conferencing.:<br/>IPDialIn:  The IP endpoint and protocol for calling.:<br/>ConferenceProviderType:  Represents a type within a list of predefined types.<br/>ConferenceProviderName:  The name of the conference provider.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CommsProtocol</i> The protocol, including SIP, SIPS, and H323.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i> The IP address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OneClickPinDelay</i> The delay duration before Alexa enters the conference pin with dual-tone multi-frequency (DTMF). Each number on the dial pad corresponds to a DTMF tone, which is how we send data over the telephone network.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OneClickIdDelay</i> The delay duration before Alexa enters the conference ID with dual-tone multi-frequency (DTMF). Each number on the dial pad corresponds to a DTMF tone, which is how we send data over the telephone network.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PhoneNumber</i> The phone number to call to join the conference.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CountryCode</i> The zip code.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequirePin</i> The values that indicate whether the pin is always required.<br/>
        :return: ConferenceProviderArn:  The ARN of the newly-created conference provider.<br/>        """
        pass

    def create_contact(self, FirstName: str, DisplayName: str=None, LastName: str=None, PhoneNumber: str=None, PhoneNumbers: List[PhoneNumber]=None, SipAddresses: List[SipAddress]=None, ClientRequestToken: str=None, Tags: List[Tag]=None) -> CreateContactResponse:
        r"""Creates a contact with the specified details.

        :param self:
        :param Tags:  The tags to be added to the specified resource. Do not provide system tags.<br/>ClientRequestToken:  A unique, user-specified identifier for this request that ensures idempotency.<br/>SipAddresses:  The list of SIP addresses for the contact.<br/>PhoneNumbers:  The list of phone numbers for the contact.<br/>PhoneNumber:  The phone number of the contact in E.164 format. The phone number type defaults to WORK. You can specify PhoneNumber or PhoneNumbers. We recommend that you use PhoneNumbers, which lets you specify the phone number type and multiple numbers.<br/>LastName:  The last name of the contact that is used to call the contact on the device.<br/>FirstName:  The first name of the contact that is used to call the contact on the device.<br/>DisplayName:  The name of the contact to display on the console.<br/>
        :return: ContactArn:  The ARN of the newly created address book.<br/>        """
        pass

    def create_gateway_group(self, ClientRequestToken: str, Name: str, Description: str=None, Tags: List[Tag]=None) -> CreateGatewayGroupResponse:
        r"""Creates a gateway group with the specified details.

        :param self:
        :param Tags:  The tags to be added to the specified resource. Do not provide system tags.<br/>ClientRequestToken:   A unique, user-specified identifier for the request that ensures idempotency.<br/>Description:  The description of the gateway group.<br/>Name:  The name of the gateway group.<br/>
        :return: GatewayGroupArn:  The ARN of the created gateway group.<br/>        """
        pass

    def create_network_profile(self, ClientRequestToken: str, SecurityType: str, Ssid: str, NetworkProfileName: str, Description: str=None, EapMethod: str=None, CurrentPassword: str=None, NextPassword: str=None, CertificateAuthorityArn: str=None, TrustAnchors: List[TrustAnchor]=None, Tags: List[Tag]=None) -> CreateNetworkProfileResponse:
        r"""Creates a network profile with the specified details.

        :param self:
        :param Tags:  The tags to be added to the specified resource. Do not provide system tags. <br/>ClientRequestToken:  A unique, user-specified identifier for the request that ensures idempotency.<br/>TrustAnchors:  The root certificates of your authentication server that is installed on your devices and used to trust your authentication server during EAP negotiation. <br/>CertificateAuthorityArn:  The ARN of the Private Certificate Authority (PCA) created in AWS Certificate Manager (ACM). This is used to issue certificates to the devices. <br/>NextPassword:  The next, or subsequent, password of the Wi-Fi network. This password is asynchronously transmitted to the device and is used when the password of the network changes to NextPassword. <br/>CurrentPassword:  The current password of the Wi-Fi network.<br/>EapMethod:  The authentication standard that is used in the EAP framework. Currently, EAP_TLS is supported.<br/>SecurityType:  The security type of the Wi-Fi network. This can be WPA2_ENTERPRISE, WPA2_PSK, WPA_PSK, WEP, or OPEN.<br/>Ssid:  The SSID of the Wi-Fi network.<br/>Description:  Detailed information about a device's network profile.<br/>NetworkProfileName:  The name of the network profile associated with a device.<br/>
        :return: NetworkProfileArn:  The ARN of the network profile associated with a device.<br/>        """
        pass

    def create_profile(self, WakeWord: str, TemperatureUnit: str, DistanceUnit: str, Address: str, Timezone: str, ProfileName: str, Locale: str=None, ClientRequestToken: str=None, SetupModeDisabled: Boolean=None, MaxVolumeLimit: int=None, PSTNEnabled: Boolean=None, DataRetentionOptIn: Boolean=None, MeetingRoomConfiguration: CreateMeetingRoomConfiguration=None, Tags: List[Tag]=None) -> CreateProfileResponse:
        r"""Creates a new room profile with the specified details.

        :param self:
        :param Tags:  The tags for the profile.<br/>MeetingRoomConfiguration:  The meeting room settings of a room profile.:<br/>DataRetentionOptIn:  Whether data retention of the profile is enabled.<br/>PSTNEnabled:  Whether PSTN calling is enabled.<br/>MaxVolumeLimit:  The maximum volume limit for a room profile.<br/>SetupModeDisabled:  Whether room profile setup is enabled.<br/>ClientRequestToken:  The user-specified token that is used during the creation of a profile.<br/>Locale:  The locale of the room profile. (This is currently only available to a limited preview audience.)<br/>WakeWord:  A wake word for Alexa, Echo, Amazon, or a computer.<br/>TemperatureUnit:  The temperature unit to be used by devices in the profile.<br/>DistanceUnit:  The distance unit to be used by devices in the profile.<br/>Address:  The valid address for the room.<br/>Timezone:  The time zone used by a room profile.<br/>ProfileName:  The name of a room profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequireCheckIn</i> Settings for requiring a check in when a room is reserved. Alexa can cancel a room reservation if it's not checked into to make the room available for others. Users can check in by joining the meeting with Alexa or an AVS device, or by saying “Alexa, check in.”&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RequireCheckIn</b>: Settings for requiring a check in when a room is reserved. Alexa can cancel a room reservation if it's not checked into to make the room available for others. Users can check in by joining the meeting with Alexa or an AVS device, or by saying “Alexa, check in.”<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstantBooking</i> Settings to automatically book a room for a configured duration if it's free when joining a meeting with Alexa.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>InstantBooking</b>: Settings to automatically book a room for a configured duration if it's free when joining a meeting with Alexa.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndOfMeetingReminder</i> Creates settings for the end of meeting reminder feature that are applied to a room profile. The end of meeting reminder enables Alexa to remind users when a meeting is ending.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EndOfMeetingReminder</b>: Creates settings for the end of meeting reminder feature that are applied to a room profile. The end of meeting reminder enables Alexa to remind users when a meeting is ending.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoomUtilizationMetricsEnabled</i> Whether room utilization metrics are enabled or not.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Whether an end of meeting reminder is enabled or not.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReminderType</i> The type of sound that users hear during the end of meeting reminder. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReminderAtMinutes</i>  A range of 3 to 15 minutes that determines when the reminder begins.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Whether instant booking is enabled or not.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DurationInMinutes</i> Duration between 15 and 240 minutes at increments of 15 that determines how long to book an available room when a meeting is started with Alexa.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Whether require check in is enabled or not.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReleaseAfterMinutes</i> Duration between 5 and 20 minutes to determine when to release the room if it's not checked into.<br/>
        :return: ProfileArn:  The ARN of the newly created room profile in the response.<br/>        """
        pass

    def create_room(self, RoomName: str, Description: str=None, ProfileArn: str=None, ProviderCalendarId: str=None, ClientRequestToken: str=None, Tags: List[Tag]=None) -> CreateRoomResponse:
        r"""Creates a room with the specified details.

        :param self:
        :param Tags:  The tags for the room.<br/>ClientRequestToken:  A unique, user-specified identifier for this request that ensures idempotency. <br/>ProviderCalendarId:  The calendar ARN for the room.<br/>ProfileArn:  The profile ARN for the room. This is required.<br/>Description:  The description for the room.<br/>RoomName:  The name for the room.<br/>
        :return: RoomArn:  The ARN of the newly created room in the response.<br/>        """
        pass

    def create_skill_group(self, SkillGroupName: str, Description: str=None, ClientRequestToken: str=None, Tags: List[Tag]=None) -> CreateSkillGroupResponse:
        r"""Creates a skill group with a specified name and description.

        :param self:
        :param Tags:  The tags for the skill group.<br/>ClientRequestToken:  A unique, user-specified identifier for this request that ensures idempotency. <br/>Description:  The description for the skill group.<br/>SkillGroupName:  The name for the skill group.<br/>
        :return: SkillGroupArn:  The ARN of the newly created skill group in the response.<br/>        """
        pass

    def create_user(self, UserId: str, FirstName: str=None, LastName: str=None, Email: str=None, ClientRequestToken: str=None, Tags: List[Tag]=None) -> CreateUserResponse:
        r"""Creates a user.

        :param self:
        :param Tags:  The tags for the user.<br/>ClientRequestToken:  A unique, user-specified identifier for this request that ensures idempotency. <br/>Email:  The email address for the user.<br/>LastName:  The last name for the user.<br/>FirstName:  The first name for the user.<br/>UserId:  The ARN for the user.<br/>
        :return: UserArn:  The ARN of the newly created user in the response.<br/>        """
        pass

    def delete_address_book(self, AddressBookArn: str) -> DeleteAddressBookResponse:
        r"""Deletes an address book by the address book ARN.

        :param self:
        :param AddressBookArn:  The ARN of the address book to delete.<br/>
        :return:         """
        pass

    def delete_business_report_schedule(self, ScheduleArn: str) -> DeleteBusinessReportScheduleResponse:
        r"""Deletes the recurring report delivery schedule with the specified schedule ARN.

        :param self:
        :param ScheduleArn:  The ARN of the business report schedule.<br/>
        :return:         """
        pass

    def delete_conference_provider(self, ConferenceProviderArn: str) -> DeleteConferenceProviderResponse:
        r"""Deletes a conference provider.

        :param self:
        :param ConferenceProviderArn:  The ARN of the conference provider.<br/>
        :return:         """
        pass

    def delete_contact(self, ContactArn: str) -> DeleteContactResponse:
        r"""Deletes a contact by the contact ARN.

        :param self:
        :param ContactArn:  The ARN of the contact to delete.<br/>
        :return:         """
        pass

    def delete_device(self, DeviceArn: str) -> DeleteDeviceResponse:
        r"""Removes a device from Alexa For Business.

        :param self:
        :param DeviceArn:  The ARN of the device for which to request details.<br/>
        :return:         """
        pass

    def delete_device_usage_data(self, DeviceUsageType: str, DeviceArn: str) -> DeleteDeviceUsageDataResponse:
        r"""When this action is called for a specified shared device, it allows authorized users to delete the device's entire previous history of voice input data and associated response data. This action can be called once every 24 hours for a specific shared device.

        :param self:
        :param DeviceUsageType:  The type of usage data to delete.<br/>DeviceArn:  The ARN of the device.<br/>
        :return:         """
        pass

    def delete_gateway_group(self, GatewayGroupArn: str) -> DeleteGatewayGroupResponse:
        r"""Deletes a gateway group.

        :param self:
        :param GatewayGroupArn:  The ARN of the gateway group to delete.<br/>
        :return:         """
        pass

    def delete_network_profile(self, NetworkProfileArn: str) -> DeleteNetworkProfileResponse:
        r"""Deletes a network profile by the network profile ARN.

        :param self:
        :param NetworkProfileArn:  The ARN of the network profile associated with a device.<br/>
        :return:         """
        pass

    def delete_profile(self, ProfileArn: str=None) -> DeleteProfileResponse:
        r"""Deletes a room profile by the profile ARN.

        :param self:
        :param ProfileArn:  The ARN of the room profile to delete. Required.<br/>
        :return:         """
        pass

    def delete_room(self, RoomArn: str=None) -> DeleteRoomResponse:
        r"""Deletes a room by the room ARN.

        :param self:
        :param RoomArn:  The ARN of the room to delete. Required.<br/>
        :return:         """
        pass

    def delete_room_skill_parameter(self, ParameterKey: str, SkillId: str, RoomArn: str=None) -> DeleteRoomSkillParameterResponse:
        r"""Deletes room skill parameter details by room, skill, and parameter key ID.

        :param self:
        :param ParameterKey:  The room skill parameter key for which to remove details.<br/>SkillId:  The ID of the skill from which to remove the room skill parameter details.<br/>RoomArn:  The ARN of the room from which to remove the room skill parameter details.<br/>
        :return:         """
        pass

    def delete_skill_authorization(self, SkillId: str, RoomArn: str=None) -> DeleteSkillAuthorizationResponse:
        r"""Unlinks a third-party account from a skill.

        :param self:
        :param RoomArn:  The room that the skill is authorized for.<br/>SkillId:  The unique identifier of a skill.<br/>
        :return:         """
        pass

    def delete_skill_group(self, SkillGroupArn: str=None) -> DeleteSkillGroupResponse:
        r"""Deletes a skill group by skill group ARN.

        :param self:
        :param SkillGroupArn:  The ARN of the skill group to delete. Required.<br/>
        :return:         """
        pass

    def delete_user(self, EnrollmentId: str, UserArn: str=None) -> DeleteUserResponse:
        r"""Deletes a specified user by user ARN and enrollment ARN.

        :param self:
        :param EnrollmentId:  The ARN of the user's enrollment in the organization. Required.<br/>UserArn:  The ARN of the user to delete in the organization. Required.<br/>
        :return:         """
        pass

    def disassociate_contact_from_address_book(self, AddressBookArn: str, ContactArn: str) -> DisassociateContactFromAddressBookResponse:
        r"""Disassociates a contact from a given address book.

        :param self:
        :param AddressBookArn:  The ARN of the address from which to disassociate the contact.<br/>ContactArn:  The ARN of the contact to disassociate from an address book.<br/>
        :return:         """
        pass

    def disassociate_device_from_room(self, DeviceArn: str=None) -> DisassociateDeviceFromRoomResponse:
        r"""Disassociates a device from its current room. The device continues to be connected to the Wi-Fi network and is still registered to the account. The device settings and skills are removed from the room.

        :param self:
        :param DeviceArn:  The ARN of the device to disassociate from a room. Required.<br/>
        :return:         """
        pass

    def disassociate_skill_from_skill_group(self, SkillId: str, SkillGroupArn: str=None) -> DisassociateSkillFromSkillGroupResponse:
        r"""Disassociates a skill from a skill group.

        :param self:
        :param SkillId:  The ARN of a skill group to associate to a skill.<br/>SkillGroupArn:  The unique identifier of a skill. Required.<br/>
        :return:         """
        pass

    def disassociate_skill_from_users(self, SkillId: str) -> DisassociateSkillFromUsersResponse:
        r"""Makes a private skill unavailable for enrolled users and prevents them from enabling it on their devices.

        :param self:
        :param SkillId:   The private skill ID you want to make unavailable for enrolled users.<br/>
        :return:         """
        pass

    def disassociate_skill_group_from_room(self, SkillGroupArn: str=None, RoomArn: str=None) -> DisassociateSkillGroupFromRoomResponse:
        r"""Disassociates a skill group from a specified room. This disables all skills in the skill group on all devices in the room.

        :param self:
        :param RoomArn:  The ARN of the room from which the skill group is to be disassociated. Required.<br/>SkillGroupArn:  The ARN of the skill group to disassociate from a room. Required.<br/>
        :return:         """
        pass

    def forget_smart_home_appliances(self, RoomArn: str) -> ForgetSmartHomeAppliancesResponse:
        r"""Forgets smart home appliances associated to a room.

        :param self:
        :param RoomArn:  The room that the appliances are associated with.<br/>
        :return:         """
        pass

    def get_address_book(self, AddressBookArn: str) -> GetAddressBookResponse:
        r"""Gets address the book details by the address book ARN.

        :param self:
        :param AddressBookArn:  The ARN of the address book for which to request details.<br/>
        :return: AddressBook:  The details of the requested address book.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the address book.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the address book.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AddressBookArn</i> The ARN of the address book.<br/>        """
        pass

    def get_conference_preference(self) -> GetConferencePreferenceResponse:
        r"""Retrieves the existing conference preferences.

        :param self:
        :param 
        :return: Preference:  The conference preference.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultConferenceProviderArn</i> The ARN of the default conference provider.<br/>        """
        pass

    def get_conference_provider(self, ConferenceProviderArn: str) -> GetConferenceProviderResponse:
        r"""Gets details about a specific conference provider.

        :param self:
        :param ConferenceProviderArn:  The ARN of the newly created conference provider.<br/>
        :return: ConferenceProvider:  The conference provider.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MeetingSetting</i> The meeting settings for the conference provider.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>MeetingSetting</b>: The meeting settings for the conference provider.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PSTNDialIn</i> The information for PSTN conferencing.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PSTNDialIn</b>: The information for PSTN conferencing.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IPDialIn</i> The IP endpoint and protocol for calling.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>IPDialIn</b>: The IP endpoint and protocol for calling.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of conference providers.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the conference provider.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The ARN of the newly created conference provider.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CommsProtocol</i> The protocol, including SIP, SIPS, and H323.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i> The IP address.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OneClickPinDelay</i> The delay duration before Alexa enters the conference pin with dual-tone multi-frequency (DTMF). Each number on the dial pad corresponds to a DTMF tone, which is how we send data over the telephone network.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OneClickIdDelay</i> The delay duration before Alexa enters the conference ID with dual-tone multi-frequency (DTMF). Each number on the dial pad corresponds to a DTMF tone, which is how we send data over the telephone network.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PhoneNumber</i> The phone number to call to join the conference.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CountryCode</i> The zip code.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RequirePin</i> The values that indicate whether the pin is always required.<br/>        """
        pass

    def get_contact(self, ContactArn: str) -> GetContactResponse:
        r"""Gets the contact details by the contact ARN.

        :param self:
        :param ContactArn:  The ARN of the contact for which to request details.<br/>
        :return: Contact:  The details of the requested contact.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SipAddresses</i> The list of SIP addresses for the contact.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PhoneNumbers</i> The list of phone numbers for the contact.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PhoneNumber</i> The phone number of the contact. The phone number type defaults to WORK. You can either specify PhoneNumber or PhoneNumbers. We recommend that you use PhoneNumbers, which lets you specify the phone number type and multiple numbers.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastName</i> The last name of the contact, used to call the contact on the device.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FirstName</i> The first name of the contact, used to call the contact on the device.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DisplayName</i> The name of the contact to display on the console.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ContactArn</i> The ARN of the contact.<br/>        """
        pass

    def get_device(self, DeviceArn: str=None) -> GetDeviceResponse:
        r"""Gets the details of a device by device ARN.

        :param self:
        :param DeviceArn:  The ARN of the device for which to request details. Required.<br/>
        :return: Device:  The details of the device requested. Required.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkProfileInfo</i> Detailed information about a device's network profile.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>NetworkProfileInfo</b>: Detailed information about a device's network profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeviceStatusInfo</i> Detailed information about a device's status.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DeviceStatusInfo</b>: Detailed information about a device's status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeviceStatus</i> The status of a device. If the status is not READY, check the DeviceStatusInfo value for details.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoomArn</i> The room ARN of a device.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MacAddress</i> The MAC address of a device.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SoftwareVersion</i> The software version of a device.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeviceName</i> The name of a device.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeviceType</i> The type of a device.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeviceSerialNumber</i> The serial number of a device.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeviceArn</i> The ARN of a device.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ConnectionStatusUpdatedTime</i> The time (in epoch) when the device connection status changed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ConnectionStatus</i> The latest available information about the connection status of a device. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DeviceStatusDetails</i> One or more device status detail descriptions.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CertificateExpirationTime</i> The time (in epoch) when the certificate expires.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CertificateArn</i> The ARN of the certificate associated with a device.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkProfileArn</i> The ARN of the network profile associated with a device.<br/>        """
        pass

    def get_gateway(self, GatewayArn: str) -> GetGatewayResponse:
        r"""Retrieves the details of a gateway.

        :param self:
        :param GatewayArn:  The ARN of the gateway to get.<br/>
        :return: Gateway:  The details of the gateway.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SoftwareVersion</i> The software version of the gateway. The gateway automatically updates its software version during normal operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GatewayGroupArn</i> The ARN of the gateway group that the gateway is associated to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The ARN of the gateway.<br/>        """
        pass

    def get_gateway_group(self, GatewayGroupArn: str) -> GetGatewayGroupResponse:
        r"""Retrieves the details of a gateway group.

        :param self:
        :param GatewayGroupArn:  The ARN of the gateway group to get.<br/>
        :return: GatewayGroup:  The details of the gateway group.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the gateway group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the gateway group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The ARN of the gateway group.<br/>        """
        pass

    def get_invitation_configuration(self) -> GetInvitationConfigurationResponse:
        r"""Retrieves the configured values for the user enrollment invitation email template.

        :param self:
        :param 
        :return: PrivateSkillIds:  The list of private skill IDs that you want to recommend to the user to enable in the invitation.<br/>ContactEmail:  The email ID of the organization or individual contact that the enrolled user can use. <br/>OrganizationName:  The name of the organization sending the enrollment invite to a user.<br/>        """
        pass

    def get_network_profile(self, NetworkProfileArn: str) -> GetNetworkProfileResponse:
        r"""Gets the network profile details by the network profile ARN.

        :param self:
        :param NetworkProfileArn:  The ARN of the network profile associated with a device.<br/>
        :return: NetworkProfile:  The network profile associated with a device.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TrustAnchors</i> The root certificates of your authentication server, which is installed on your devices and used to trust your authentication server during EAP negotiation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CertificateAuthorityArn</i> The ARN of the Private Certificate Authority (PCA) created in AWS Certificate Manager (ACM). This is used to issue certificates to the devices. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NextPassword</i> The next, or subsequent, password of the Wi-Fi network. This password is asynchronously transmitted to the device and is used when the password of the network changes to NextPassword. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CurrentPassword</i> The current password of the Wi-Fi network.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EapMethod</i> The authentication standard that is used in the EAP framework. Currently, EAP_TLS is supported. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityType</i> The security type of the Wi-Fi network. This can be WPA2_ENTERPRISE, WPA2_PSK, WPA_PSK, WEP, or OPEN.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Ssid</i> The SSID of the Wi-Fi network.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> Detailed information about a device's network profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkProfileName</i> The name of the network profile associated with a device.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkProfileArn</i> The ARN of the network profile associated with a device.<br/>        """
        pass

    def get_profile(self, ProfileArn: str=None) -> GetProfileResponse:
        r"""Gets the details of a room profile by profile ARN.

        :param self:
        :param ProfileArn:  The ARN of the room profile for which to request details. Required.<br/>
        :return: Profile:  The details of the room profile requested. Required.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MeetingRoomConfiguration</i> Meeting room settings of a room profile.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>MeetingRoomConfiguration</b>: Meeting room settings of a room profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AddressBookArn</i> The ARN of the address book.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataRetentionOptIn</i> Whether data retention of the profile is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PSTNEnabled</i> The PSTN setting of a room profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxVolumeLimit</i> The max volume limit of a room profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SetupModeDisabled</i> The setup mode of a room profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Locale</i> The locale of a room profile. (This is currently available only to a limited preview audience.)<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WakeWord</i> The wake word of a room profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TemperatureUnit</i> The temperature unit of a room profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DistanceUnit</i> The distance unit of a room profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Timezone</i> The time zone of a room profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Address</i> The address of a room profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsDefault</i> Retrieves if the profile is default or not.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProfileName</i> The name of a room profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProfileArn</i> The ARN of a room profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RoomUtilizationMetricsEnabled</i> Whether room utilization metrics are enabled or not.<br/>Settings for the end of meeting reminder feature that are applied to a room profile. The end of meeting reminder enables Alexa to remind users when a meeting is ending. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EndOfMeetingReminder</b>: Settings for the end of meeting reminder feature that are applied to a room profile. The end of meeting reminder enables Alexa to remind users when a meeting is ending.         """
        pass

    def get_room(self, RoomArn: str=None) -> GetRoomResponse:
        r"""Gets room details by room ARN.

        :param self:
        :param RoomArn:  The ARN of the room for which to request details. Required.<br/>
        :return: Room:  The details of the room requested.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProfileArn</i> The profile ARN of a room.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProviderCalendarId</i> The provider calendar ARN of a room.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of a room.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoomName</i> The name of a room.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoomArn</i> The ARN of a room.<br/>        """
        pass

    def get_room_skill_parameter(self, ParameterKey: str, SkillId: str, RoomArn: str=None) -> GetRoomSkillParameterResponse:
        r"""Gets room skill parameter details by room, skill, and parameter key ARN.

        :param self:
        :param ParameterKey:  The room skill parameter key for which to get details. Required.<br/>SkillId:  The ARN of the skill from which to get the room skill parameter details. Required.<br/>RoomArn:  The ARN of the room from which to get the room skill parameter details. <br/>
        :return: RoomSkillParameter:  The details of the room skill parameter requested. Required.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ParameterValue</i> The parameter value of a room skill parameter.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ParameterKey</i> The parameter key of a room skill parameter. ParameterKey is an enumerated type that only takes “DEFAULT” or “SCOPE” as valid values.<br/>        """
        pass

    def get_skill_group(self, SkillGroupArn: str=None) -> GetSkillGroupResponse:
        r"""Gets skill group details by skill group ARN.

        :param self:
        :param SkillGroupArn:  The ARN of the skill group for which to get details. Required.<br/>
        :return: SkillGroup:  The details of the skill group requested. Required.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of a skill group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SkillGroupName</i> The name of a skill group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SkillGroupArn</i> The ARN of a skill group.<br/>        """
        pass

    def list_business_report_schedules(self, NextToken: str=None, MaxResults: int=None) -> ListBusinessReportSchedulesResponse:
        r"""Lists the details of the schedules that a user configured. A download URL of the report associated with each schedule is returned every time this action is called. A new download URL is returned each time, and is valid for 24 hours.

        :param self:
        :param MaxResults:  The maximum number of schedules listed in the call.<br/>NextToken:  The token used to list the remaining schedules from the previous API call.<br/>
        :return: NextToken:  The token used to list the remaining schedules from the previous API call.<br/>BusinessReportSchedules:  The schedule of the reports.<br/>        """
        pass

    def list_conference_providers(self, NextToken: str=None, MaxResults: int=None) -> ListConferenceProvidersResponse:
        r"""Lists conference providers under a specific AWS account.

        :param self:
        :param MaxResults:  The maximum number of conference providers to be returned, per paginated calls.<br/>NextToken:  The tokens used for pagination.<br/>
        :return: NextToken:  The tokens used for pagination.<br/>ConferenceProviders:  The conference providers.<br/>        """
        pass

    def list_device_events(self, DeviceArn: str, EventType: str=None, NextToken: str=None, MaxResults: int=None) -> ListDeviceEventsResponse:
        r"""Lists the device event history, including device connection status, for up to 30 days.

        :param self:
        :param MaxResults:  The maximum number of results to include in the response. The default value is 50. If more results exist than the specified MaxResults value, a token is included in the response so that the remaining results can be retrieved. <br/>NextToken:  An optional token returned from a prior request. Use this token for pagination of results from this action. If this parameter is specified, the response only includes results beyond the token, up to the value specified by MaxResults. When the end of results is reached, the response has a value of null.<br/>EventType:  The event type to filter device events. If EventType isn't specified, this returns a list of all device events in reverse chronological order. If EventType is specified, this returns a list of device events for that EventType in reverse chronological order. <br/>DeviceArn:  The ARN of a device.<br/>
        :return: NextToken:  The token returned to indicate that there is more data available.<br/>DeviceEvents:  The device events requested for the device ARN.<br/>        """
        pass

    def list_gateway_groups(self, NextToken: str=None, MaxResults: int=None) -> ListGatewayGroupsResponse:
        r"""Retrieves a list of gateway group summaries. Use GetGatewayGroup to retrieve details of a specific gateway group.

        :param self:
        :param MaxResults:  The maximum number of gateway group summaries to return. The default is 50.<br/>NextToken:  The token used to paginate though multiple pages of gateway group summaries.<br/>
        :return: NextToken:  The token used to paginate though multiple pages of gateway group summaries.<br/>GatewayGroups:  The gateway groups in the list.<br/>        """
        pass

    def list_gateways(self, GatewayGroupArn: str=None, NextToken: str=None, MaxResults: int=None) -> ListGatewaysResponse:
        r"""Retrieves a list of gateway summaries. Use GetGateway to retrieve details of a specific gateway. An optional gateway group ARN can be provided to only retrieve gateway summaries of gateways that are associated with that gateway group ARN.

        :param self:
        :param MaxResults:  The maximum number of gateway summaries to return. The default is 50.<br/>NextToken:  The token used to paginate though multiple pages of gateway summaries.<br/>GatewayGroupArn:  The gateway group ARN for which to list gateways.<br/>
        :return: NextToken:  The token used to paginate though multiple pages of gateway summaries.<br/>Gateways:  The gateways in the list.<br/>        """
        pass

    def list_skills(self, SkillGroupArn: str=None, EnablementType: str=None, SkillType: str=None, NextToken: str=None, MaxResults: int=None) -> ListSkillsResponse:
        r"""Lists all enabled skills in a specific skill group.

        :param self:
        :param MaxResults:  The maximum number of results to include in the response. If more results exist than the specified <code>MaxResults</code> value, a token is included in the response so that the remaining results can be retrieved.<br/>NextToken:  An optional token returned from a prior request. Use this token for pagination of results from this action. If this parameter is specified, the response includes only results beyond the token, up to the value specified by <code>MaxResults</code>.<br/>SkillType:  Whether the skill is publicly available or is a private skill.<br/>EnablementType:  Whether the skill is enabled under the user's account.<br/>SkillGroupArn:  The ARN of the skill group for which to list enabled skills.<br/>
        :return: NextToken:  The token returned to indicate that there is more data available.<br/>SkillSummaries:  The list of enabled skills requested. Required.<br/>        """
        pass

    def list_skills_store_categories(self, NextToken: str=None, MaxResults: int=None) -> ListSkillsStoreCategoriesResponse:
        r"""Lists all categories in the Alexa skill store.

        :param self:
        :param MaxResults:  The maximum number of categories returned, per paginated calls.<br/>NextToken:  The tokens used for pagination.<br/>
        :return: NextToken:  The tokens used for pagination.<br/>CategoryList:  The list of categories.<br/>        """
        pass

    def list_skills_store_skills_by_category(self, CategoryId: CategoryId, NextToken: str=None, MaxResults: int=None) -> ListSkillsStoreSkillsByCategoryResponse:
        r"""Lists all skills in the Alexa skill store by category.

        :param self:
        :param MaxResults:  The maximum number of skills returned per paginated calls.<br/>NextToken:  The tokens used for pagination.<br/>CategoryId:  The category ID for which the skills are being retrieved from the skill store.<br/>
        :return: NextToken:  The tokens used for pagination.<br/>SkillsStoreSkills:  The skill store skills.<br/>        """
        pass

    def list_smart_home_appliances(self, RoomArn: str, MaxResults: int=None, NextToken: str=None) -> ListSmartHomeAppliancesResponse:
        r"""Lists all of the smart home appliances associated with a room.

        :param self:
        :param NextToken:  The tokens used for pagination.<br/>MaxResults:  The maximum number of appliances to be returned, per paginated calls.<br/>RoomArn:  The room that the appliances are associated with.<br/>
        :return: NextToken:  The tokens used for pagination.<br/>SmartHomeAppliances:  The smart home appliances.<br/>        """
        pass

    def list_tags(self, Arn: str, NextToken: str=None, MaxResults: int=None) -> ListTagsResponse:
        r"""Lists all tags for the specified resource.

        :param self:
        :param MaxResults:  The maximum number of results to include in the response. If more results exist than the specified <code>MaxResults</code> value, a token is included in the response so that the remaining results can be retrieved.<br/>NextToken:  An optional token returned from a prior request. Use this token for pagination of results from this action. If this parameter is specified, the response includes only results beyond the token, up to the value specified by <code>MaxResults</code>. <br/>Arn:  The ARN of the specified resource for which to list tags.<br/>
        :return: NextToken:  The token returned to indicate that there is more data available.<br/>Tags:  The tags requested for the specified resource.<br/>        """
        pass

    def put_conference_preference(self, ConferencePreference: ConferencePreference) -> PutConferencePreferenceResponse:
        r"""Sets the conference preferences on a specific conference provider at the account level.

        :param self:
        :param ConferencePreference:  The conference preference of a specific conference provider.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultConferenceProviderArn</i> The ARN of the default conference provider.<br/>
        :return:         """
        pass

    def put_invitation_configuration(self, OrganizationName: str, ContactEmail: str=None, PrivateSkillIds: List[SkillId]=None) -> PutInvitationConfigurationResponse:
        r"""Configures the email template for the user enrollment invitation with the specified attributes.

        :param self:
        :param PrivateSkillIds:  The list of private skill IDs that you want to recommend to the user to enable in the invitation.<br/>ContactEmail:  The email ID of the organization or individual contact that the enrolled user can use. <br/>OrganizationName:  The name of the organization sending the enrollment invite to a user.<br/>
        :return:         """
        pass

    def put_room_skill_parameter(self, RoomSkillParameter: RoomSkillParameter, SkillId: str, RoomArn: str=None) -> PutRoomSkillParameterResponse:
        r"""Updates room skill parameter details by room, skill, and parameter key ID. Not all skills have a room skill parameter.

        :param self:
        :param RoomSkillParameter:  The updated room skill parameter. Required.:<br/>SkillId:  The ARN of the skill associated with the room skill parameter. Required.<br/>RoomArn:  The ARN of the room associated with the room skill parameter. Required.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ParameterValue</i> The parameter value of a room skill parameter.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ParameterKey</i> The parameter key of a room skill parameter. ParameterKey is an enumerated type that only takes “DEFAULT” or “SCOPE” as valid values.<br/>
        :return:         """
        pass

    def put_skill_authorization(self, SkillId: str, AuthorizationResult: AuthorizationResult, RoomArn: str=None) -> PutSkillAuthorizationResponse:
        r"""Links a user's account to a third-party skill provider. If this API operation is called by an assumed IAM role, the skill being linked must be a private skill. Also, the skill must be owned by the AWS account that assumed the IAM role.

        :param self:
        :param RoomArn:  The room that the skill is authorized for.<br/>SkillId:  The unique identifier of a skill.<br/>AuthorizationResult:  The authorization result specific to OAUTH code grant output. "Code” must be populated in the AuthorizationResult map to establish the authorization.<br/>
        :return:         """
        pass

    def register_avs_device(self, AmazonId: str, ProductId: str, UserCode: str, ClientId: str, DeviceSerialNumber: str=None, RoomArn: str=None, Tags: List[Tag]=None) -> RegisterAVSDeviceResponse:
        r"""Registers an Alexa-enabled device built by an Original Equipment Manufacturer (OEM) using Alexa Voice Service (AVS).

        :param self:
        :param Tags:  The tags to be added to the specified resource. Do not provide system tags.<br/>RoomArn:  The Amazon Resource Name (ARN) of the room with which to associate your AVS device.<br/>AmazonId:  The device type ID for your AVS device generated by Amazon when the OEM creates a new product on Amazon's Developer Console.<br/>DeviceSerialNumber:  The key generated by the OEM that uniquely identifies a specified instance of your AVS device.<br/>ProductId:  The product ID used to identify your AVS device during authorization.<br/>UserCode:  The code that is obtained after your AVS device has made a POST request to LWA as a part of the Device Authorization Request component of the OAuth code-based linking specification.<br/>ClientId:  The client ID of the OEM used for code-based linking authorization on an AVS device.<br/>
        :return: DeviceArn:  The ARN of the device.<br/>        """
        pass

    def reject_skill(self, SkillId: str) -> RejectSkillResponse:
        r"""Disassociates a skill from the organization under a user's AWS account. If the skill is a private skill, it moves to an AcceptStatus of PENDING. Any private or public skill that is rejected can be added later by calling the ApproveSkill API. 

        :param self:
        :param SkillId:  The unique identifier of the skill.<br/>
        :return:         """
        pass

    def resolve_room(self, SkillId: str, UserId: str) -> ResolveRoomResponse:
        r"""Determines the details for the room from which a skill request was invoked. This operation is used by skill developers. To query ResolveRoom from an Alexa skill, the skill ID needs to be authorized. When the skill is using an AWS Lambda function, the skill is automatically authorized when you publish your skill as a private skill to your AWS account. Skills that are hosted using a custom web service must be manually authorized. To get your skill authorized, contact AWS Support with your AWS account ID that queries the ResolveRoom API and skill ID. 

        :param self:
        :param SkillId:  The ARN of the skill that was requested. Required.<br/>UserId:  The ARN of the user. Required.<br/>
        :return: RoomSkillParameters:  Response to get the room profile request. Required.<br/>RoomName:  The name of the room from which the skill request was invoked.<br/>RoomArn:  The ARN of the room from which the skill request was invoked.<br/>        """
        pass

    def revoke_invitation(self, UserArn: str=None, EnrollmentId: str=None) -> RevokeInvitationResponse:
        r"""Revokes an invitation and invalidates the enrollment URL.

        :param self:
        :param EnrollmentId:  The ARN of the enrollment invitation to revoke. Required.<br/>UserArn:  The ARN of the user for whom to revoke an enrollment invitation. Required.<br/>
        :return:         """
        pass

    def search_address_books(self, Filters: List[Filter]=None, SortCriteria: List[Sort]=None, NextToken: str=None, MaxResults: int=None) -> SearchAddressBooksResponse:
        r"""Searches address books and lists the ones that meet a set of filter and sort criteria.

        :param self:
        :param MaxResults:  The maximum number of results to include in the response. If more results exist than the specified MaxResults value, a token is included in the response so that the remaining results can be retrieved.<br/>NextToken:  An optional token returned from a prior request. Use this token for pagination of results from this action. If this parameter is specified, the response only includes results beyond the token, up to the value specified by MaxResults.<br/>SortCriteria:  The sort order to use in listing the specified set of address books. The supported sort key is AddressBookName.<br/>Filters:  The filters to use to list a specified set of address books. The supported filter key is AddressBookName.<br/>
        :return: TotalCount:  The total number of address books returned.<br/>NextToken:  The token returned to indicate that there is more data available.<br/>AddressBooks:  The address books that meet the specified set of filter criteria, in sort order.<br/>        """
        pass

    def search_contacts(self, Filters: List[Filter]=None, SortCriteria: List[Sort]=None, NextToken: str=None, MaxResults: int=None) -> SearchContactsResponse:
        r"""Searches contacts and lists the ones that meet a set of filter and sort criteria.

        :param self:
        :param MaxResults:  The maximum number of results to include in the response. If more results exist than the specified MaxResults value, a token is included in the response so that the remaining results can be retrieved.<br/>NextToken:  An optional token returned from a prior request. Use this token for pagination of results from this action. If this parameter is specified, the response only includes results beyond the token, up to the value specified by MaxResults.<br/>SortCriteria:  The sort order to use in listing the specified set of contacts. The supported sort keys are DisplayName, FirstName, and LastName.<br/>Filters:  The filters to use to list a specified set of address books. The supported filter keys are DisplayName, FirstName, LastName, and AddressBookArns.<br/>
        :return: TotalCount:  The total number of contacts returned.<br/>NextToken:  The token returned to indicate that there is more data available.<br/>Contacts:  The contacts that meet the specified set of filter criteria, in sort order.<br/>        """
        pass

    def search_devices(self, NextToken: str=None, MaxResults: int=None, Filters: List[Filter]=None, SortCriteria: List[Sort]=None) -> SearchDevicesResponse:
        r"""Searches devices and lists the ones that meet a set of filter criteria.

        :param self:
        :param SortCriteria:  The sort order to use in listing the specified set of devices. Supported sort keys are DeviceName, DeviceStatus, RoomName, DeviceType, DeviceSerialNumber, ConnectionStatus, NetworkProfileName, NetworkProfileArn, Feature, and FailureCode.<br/>Filters:  The filters to use to list a specified set of devices. Supported filter keys are DeviceName, DeviceStatus, DeviceStatusDetailCode, RoomName, DeviceType, DeviceSerialNumber, UnassociatedOnly, ConnectionStatus (ONLINE and OFFLINE), NetworkProfileName, NetworkProfileArn, Feature, and FailureCode.<br/>MaxResults:  The maximum number of results to include in the response. If more results exist than the specified <code>MaxResults</code> value, a token is included in the response so that the remaining results can be retrieved.<br/>NextToken:  An optional token returned from a prior request. Use this token for pagination of results from this action. If this parameter is specified, the response includes only results beyond the token, up to the value specified by <code>MaxResults</code>.<br/>
        :return: TotalCount:  The total number of devices returned.<br/>NextToken:  The token returned to indicate that there is more data available.<br/>Devices:  The devices that meet the specified set of filter criteria, in sort order.<br/>        """
        pass

    def search_network_profiles(self, NextToken: str=None, MaxResults: int=None, Filters: List[Filter]=None, SortCriteria: List[Sort]=None) -> SearchNetworkProfilesResponse:
        r"""Searches network profiles and lists the ones that meet a set of filter and sort criteria.

        :param self:
        :param SortCriteria:  The sort order to use to list the specified set of network profiles. Valid sort criteria includes NetworkProfileName, Ssid, and SecurityType.<br/>Filters:  The filters to use to list a specified set of network profiles. Valid filters are NetworkProfileName, Ssid, and SecurityType.<br/>MaxResults:  The maximum number of results to include in the response. If more results exist than the specified MaxResults value, a token is included in the response so that the remaining results can be retrieved. <br/>NextToken:  An optional token returned from a prior request. Use this token for pagination of results from this action. If this parameter is specified, the response includes only results beyond the token, up to the value specified by MaxResults. <br/>
        :return: TotalCount:  The total number of network profiles returned.<br/>NextToken:  An optional token returned from a prior request. Use this token for pagination of results from this action. If this parameter is specified, the response includes only results beyond the token, up to the value specified by MaxResults.<br/>NetworkProfiles:  The network profiles that meet the specified set of filter criteria, in sort order. It is a list of NetworkProfileData objects. <br/>        """
        pass

    def search_profiles(self, NextToken: str=None, MaxResults: int=None, Filters: List[Filter]=None, SortCriteria: List[Sort]=None) -> SearchProfilesResponse:
        r"""Searches room profiles and lists the ones that meet a set of filter criteria.

        :param self:
        :param SortCriteria:  The sort order to use in listing the specified set of room profiles. Supported sort keys are ProfileName and Address.<br/>Filters:  The filters to use to list a specified set of room profiles. Supported filter keys are ProfileName and Address. Required. <br/>MaxResults:  The maximum number of results to include in the response. If more results exist than the specified <code>MaxResults</code> value, a token is included in the response so that the remaining results can be retrieved.<br/>NextToken:  An optional token returned from a prior request. Use this token for pagination of results from this action. If this parameter is specified, the response includes only results beyond the token, up to the value specified by <code>MaxResults</code>.<br/>
        :return: TotalCount:  The total number of room profiles returned.<br/>NextToken:  The token returned to indicate that there is more data available.<br/>Profiles:  The profiles that meet the specified set of filter criteria, in sort order.<br/>        """
        pass

    def search_rooms(self, NextToken: str=None, MaxResults: int=None, Filters: List[Filter]=None, SortCriteria: List[Sort]=None) -> SearchRoomsResponse:
        r"""Searches rooms and lists the ones that meet a set of filter and sort criteria.

        :param self:
        :param SortCriteria:  The sort order to use in listing the specified set of rooms. The supported sort keys are RoomName and ProfileName.<br/>Filters:  The filters to use to list a specified set of rooms. The supported filter keys are RoomName and ProfileName.<br/>MaxResults:  The maximum number of results to include in the response. If more results exist than the specified <code>MaxResults</code> value, a token is included in the response so that the remaining results can be retrieved. <br/>NextToken:  An optional token returned from a prior request. Use this token for pagination of results from this action. If this parameter is specified, the response includes only results beyond the token, up to the value specified by <code>MaxResults</code>.<br/>
        :return: TotalCount:  The total number of rooms returned.<br/>NextToken:  The token returned to indicate that there is more data available.<br/>Rooms:  The rooms that meet the specified set of filter criteria, in sort order.<br/>        """
        pass

    def search_skill_groups(self, NextToken: str=None, MaxResults: int=None, Filters: List[Filter]=None, SortCriteria: List[Sort]=None) -> SearchSkillGroupsResponse:
        r"""Searches skill groups and lists the ones that meet a set of filter and sort criteria.

        :param self:
        :param SortCriteria:  The sort order to use in listing the specified set of skill groups. The supported sort key is SkillGroupName. <br/>Filters:  The filters to use to list a specified set of skill groups. The supported filter key is SkillGroupName. <br/>MaxResults:  The maximum number of results to include in the response. If more results exist than the specified <code>MaxResults</code> value, a token is included in the response so that the remaining results can be retrieved. <br/>NextToken:  An optional token returned from a prior request. Use this token for pagination of results from this action. If this parameter is specified, the response includes only results beyond the token, up to the value specified by <code>MaxResults</code>. Required.<br/>
        :return: TotalCount:  The total number of skill groups returned.<br/>NextToken:  The token returned to indicate that there is more data available.<br/>SkillGroups:  The skill groups that meet the filter criteria, in sort order.<br/>        """
        pass

    def search_users(self, NextToken: str=None, MaxResults: int=None, Filters: List[Filter]=None, SortCriteria: List[Sort]=None) -> SearchUsersResponse:
        r"""Searches users and lists the ones that meet a set of filter and sort criteria.

        :param self:
        :param SortCriteria:  The sort order to use in listing the filtered set of users. Required. Supported sort keys are UserId, FirstName, LastName, Email, and EnrollmentStatus.<br/>Filters:  The filters to use for listing a specific set of users. Required. Supported filter keys are UserId, FirstName, LastName, Email, and EnrollmentStatus.<br/>MaxResults:  The maximum number of results to include in the response. If more results exist than the specified <code>MaxResults</code> value, a token is included in the response so that the remaining results can be retrieved. Required.<br/>NextToken:  An optional token returned from a prior request. Use this token for pagination of results from this action. If this parameter is specified, the response includes only results beyond the token, up to the value specified by <code>MaxResults</code>. Required.<br/>
        :return: TotalCount:  The total number of users returned.<br/>NextToken:  The token returned to indicate that there is more data available.<br/>Users:  The users that meet the specified set of filter criteria, in sort order.<br/>        """
        pass

    def send_announcement(self, ClientRequestToken: str, Content: Content, RoomFilters: List[Filter], TimeToLiveInSeconds: int=None) -> SendAnnouncementResponse:
        r"""Triggers an asynchronous flow to send text, SSML, or audio announcements to rooms that are identified by a search or filter. 

        :param self:
        :param ClientRequestToken:  The unique, user-specified identifier for the request that ensures idempotency.<br/>TimeToLiveInSeconds:  The time to live for an announcement. Default is 300. If delivery doesn't occur within this time, the announcement is not delivered.<br/>Content:  The announcement content. This can contain only one of the three possible announcement types (text, SSML or audio).:<br/>RoomFilters:  The filters to use to send an announcement to a specified list of rooms. The supported filter keys are RoomName, ProfileName, RoomArn, and ProfileArn. To send to all rooms, specify an empty RoomFilters list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AudioList</i> The list of audio messages.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SsmlList</i> The list of SSML messages.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TextList</i> The list of text messages.<br/>
        :return: AnnouncementArn:  The identifier of the announcement.<br/>        """
        pass

    def send_invitation(self, UserArn: str=None) -> SendInvitationResponse:
        r"""Sends an enrollment invitation email with a URL to a user. The URL is valid for 30 days or until you call this operation again, whichever comes first. 

        :param self:
        :param UserArn:  The ARN of the user to whom to send an invitation. Required.<br/>
        :return:         """
        pass

    def start_device_sync(self, Features: List[Feature], RoomArn: str=None, DeviceArn: str=None) -> StartDeviceSyncResponse:
        r"""Resets a device and its account to the known default settings. This clears all information and settings set by previous users in the following ways: <ul> <li> Bluetooth - This unpairs all bluetooth devices paired with your echo device. </li> <li> Volume - This resets the echo device's volume to the default value. </li> <li> Notifications - This clears all notifications from your echo device. </li> <li> Lists - This clears all to-do items from your echo device. </li> <li> Settings - This internally syncs the room's profile (if the device is assigned to a room), contacts, address books, delegation access for account linking, and communications (if enabled on the room profile). </li> </ul>

        :param self:
        :param Features:  Request structure to start the device sync. Required.<br/>DeviceArn:  The ARN of the device to sync. Required.<br/>RoomArn:  The ARN of the room with which the device to sync is associated. Required.<br/>
        :return:         """
        pass

    def start_smart_home_appliance_discovery(self, RoomArn: str) -> StartSmartHomeApplianceDiscoveryResponse:
        r"""Initiates the discovery of any smart home appliances associated with the room.

        :param self:
        :param RoomArn:  The room where smart home appliance discovery was initiated.<br/>
        :return:         """
        pass

    def tag_resource(self, Tags: List[Tag], Arn: str) -> TagResourceResponse:
        r"""Adds metadata tags to a specified resource.

        :param self:
        :param Tags:  The tags to be added to the specified resource. Do not provide system tags. Required. <br/>Arn:  The ARN of the resource to which to add metadata tags. Required. <br/>
        :return:         """
        pass

    def untag_resource(self, TagKeys: List[TagKey], Arn: str) -> UntagResourceResponse:
        r"""Removes metadata tags from a specified resource.

        :param self:
        :param TagKeys:  The tags to be removed from the specified resource. Do not provide system tags. Required. <br/>Arn:  The ARN of the resource from which to remove metadata tags. Required. <br/>
        :return:         """
        pass

    def update_address_book(self, AddressBookArn: str, Name: str=None, Description: str=None) -> UpdateAddressBookResponse:
        r"""Updates address book details by the address book ARN.

        :param self:
        :param Description:  The updated description of the room.<br/>Name:  The updated name of the room.<br/>AddressBookArn:  The ARN of the room to update.<br/>
        :return:         """
        pass

    def update_business_report_schedule(self, ScheduleArn: str, S3BucketName: str=None, S3KeyPrefix: str=None, Format: str=None, ScheduleName: str=None, Recurrence: BusinessReportRecurrence=None) -> UpdateBusinessReportScheduleResponse:
        r"""Updates the configuration of the report delivery schedule with the specified schedule ARN.

        :param self:
        :param Recurrence:  The recurrence of the reports.:<br/>ScheduleName:  The name identifier of the schedule.<br/>Format:  The format of the generated report (individual CSV files or zipped files of individual files).<br/>S3KeyPrefix:  The S3 key where the report is delivered.<br/>S3BucketName:  The S3 location of the output reports.<br/>ScheduleArn:  The ARN of the business report schedule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StartDate</i> The start date.<br/>
        :return:         """
        pass

    def update_conference_provider(self, MeetingSetting: MeetingSetting, ConferenceProviderType: str, ConferenceProviderArn: str, IPDialIn: IPDialIn=None, PSTNDialIn: PSTNDialIn=None) -> UpdateConferenceProviderResponse:
        r"""Updates an existing conference provider's settings.

        :param self:
        :param MeetingSetting:  The meeting settings for the conference provider.:<br/>PSTNDialIn:  The information for PSTN conferencing.:<br/>IPDialIn:  The IP endpoint and protocol for calling.:<br/>ConferenceProviderType:  The type of the conference provider.<br/>ConferenceProviderArn:  The ARN of the conference provider.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CommsProtocol</i> The protocol, including SIP, SIPS, and H323.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i> The IP address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OneClickPinDelay</i> The delay duration before Alexa enters the conference pin with dual-tone multi-frequency (DTMF). Each number on the dial pad corresponds to a DTMF tone, which is how we send data over the telephone network.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OneClickIdDelay</i> The delay duration before Alexa enters the conference ID with dual-tone multi-frequency (DTMF). Each number on the dial pad corresponds to a DTMF tone, which is how we send data over the telephone network.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PhoneNumber</i> The phone number to call to join the conference.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CountryCode</i> The zip code.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequirePin</i> The values that indicate whether the pin is always required.<br/>
        :return:         """
        pass

    def update_contact(self, ContactArn: str, DisplayName: str=None, FirstName: str=None, LastName: str=None, PhoneNumber: str=None, PhoneNumbers: List[PhoneNumber]=None, SipAddresses: List[SipAddress]=None) -> UpdateContactResponse:
        r"""Updates the contact details by the contact ARN.

        :param self:
        :param SipAddresses:  The list of SIP addresses for the contact.<br/>PhoneNumbers:  The list of phone numbers for the contact.<br/>PhoneNumber:  The updated phone number of the contact. The phone number type defaults to WORK. You can either specify PhoneNumber or PhoneNumbers. We recommend that you use PhoneNumbers, which lets you specify the phone number type and multiple numbers.<br/>LastName:  The updated last name of the contact.<br/>FirstName:  The updated first name of the contact.<br/>DisplayName:  The updated display name of the contact.<br/>ContactArn:  The ARN of the contact to update.<br/>
        :return:         """
        pass

    def update_device(self, DeviceArn: str=None, DeviceName: str=None) -> UpdateDeviceResponse:
        r"""Updates the device name by device ARN.

        :param self:
        :param DeviceName:  The updated device name. Required.<br/>DeviceArn:  The ARN of the device to update. Required.<br/>
        :return:         """
        pass

    def update_gateway(self, GatewayArn: str, Name: str=None, Description: str=None, SoftwareVersion: str=None) -> UpdateGatewayResponse:
        r"""Updates the details of a gateway. If any optional field is not provided, the existing corresponding value is left unmodified.

        :param self:
        :param SoftwareVersion:  The updated software version of the gateway. The gateway automatically updates its software version during normal operation.<br/>Description:  The updated description of the gateway.<br/>Name:  The updated name of the gateway.<br/>GatewayArn:  The ARN of the gateway to update.<br/>
        :return:         """
        pass

    def update_gateway_group(self, GatewayGroupArn: str, Name: str=None, Description: str=None) -> UpdateGatewayGroupResponse:
        r"""Updates the details of a gateway group. If any optional field is not provided, the existing corresponding value is left unmodified.

        :param self:
        :param Description:  The updated description of the gateway group.<br/>Name:  The updated name of the gateway group.<br/>GatewayGroupArn:  The ARN of the gateway group to update.<br/>
        :return:         """
        pass

    def update_network_profile(self, NetworkProfileArn: str, NetworkProfileName: str=None, Description: str=None, CurrentPassword: str=None, NextPassword: str=None, CertificateAuthorityArn: str=None, TrustAnchors: List[TrustAnchor]=None) -> UpdateNetworkProfileResponse:
        r"""Updates a network profile by the network profile ARN.

        :param self:
        :param TrustAnchors:  The root certificate(s) of your authentication server that will be installed on your devices and used to trust your authentication server during EAP negotiation. <br/>CertificateAuthorityArn:  The ARN of the Private Certificate Authority (PCA) created in AWS Certificate Manager (ACM). This is used to issue certificates to the devices. <br/>NextPassword:  The next, or subsequent, password of the Wi-Fi network. This password is asynchronously transmitted to the device and is used when the password of the network changes to NextPassword. <br/>CurrentPassword:  The current password of the Wi-Fi network.<br/>Description:  Detailed information about a device's network profile.<br/>NetworkProfileName:  The name of the network profile associated with a device.<br/>NetworkProfileArn:  The ARN of the network profile associated with a device.<br/>
        :return:         """
        pass

    def update_profile(self, ProfileArn: str=None, ProfileName: str=None, IsDefault: Boolean=None, Timezone: str=None, Address: str=None, DistanceUnit: str=None, TemperatureUnit: str=None, WakeWord: str=None, Locale: str=None, SetupModeDisabled: Boolean=None, MaxVolumeLimit: int=None, PSTNEnabled: Boolean=None, DataRetentionOptIn: Boolean=None, MeetingRoomConfiguration: UpdateMeetingRoomConfiguration=None) -> UpdateProfileResponse:
        r"""Updates an existing room profile by room profile ARN.

        :param self:
        :param MeetingRoomConfiguration:  The updated meeting room settings of a room profile.:<br/>DataRetentionOptIn:  Whether data retention of the profile is enabled.<br/>PSTNEnabled:  Whether the PSTN setting of the room profile is enabled.<br/>MaxVolumeLimit:  The updated maximum volume limit for the room profile.<br/>SetupModeDisabled:  Whether the setup mode of the profile is enabled.<br/>Locale:  The updated locale for the room profile. (This is currently only available to a limited preview audience.)<br/>WakeWord:  The updated wake word for the room profile.<br/>TemperatureUnit:  The updated temperature unit for the room profile.<br/>DistanceUnit:  The updated distance unit for the room profile.<br/>Address:  The updated address for the room profile.<br/>Timezone:  The updated timezone for the room profile.<br/>IsDefault:  Sets the profile as default if selected. If this is missing, no update is done to the default status.<br/>ProfileName:  The updated name for the room profile.<br/>ProfileArn:  The ARN of the room profile to update. Required.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequireCheckIn</i> Settings for requiring a check in when a room is reserved. Alexa can cancel a room reservation if it's not checked into to make the room available for others. Users can check in by joining the meeting with Alexa or an AVS device, or by saying “Alexa, check in.” &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RequireCheckIn</b>: Settings for requiring a check in when a room is reserved. Alexa can cancel a room reservation if it's not checked into to make the room available for others. Users can check in by joining the meeting with Alexa or an AVS device, or by saying “Alexa, check in.” <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstantBooking</i> Settings to automatically book an available room available for a configured duration when joining a meeting with Alexa.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>InstantBooking</b>: Settings to automatically book an available room available for a configured duration when joining a meeting with Alexa.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndOfMeetingReminder</i> Settings for the end of meeting reminder feature that are applied to a room profile. The end of meeting reminder enables Alexa to remind users when a meeting is ending. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EndOfMeetingReminder</b>: Settings for the end of meeting reminder feature that are applied to a room profile. The end of meeting reminder enables Alexa to remind users when a meeting is ending. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoomUtilizationMetricsEnabled</i> Whether room utilization metrics are enabled or not.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Whether an end of meeting reminder is enabled or not.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReminderType</i> The type of sound that users hear during the end of meeting reminder. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReminderAtMinutes</i> Updates settings for the end of meeting reminder feature that are applied to a room profile. The end of meeting reminder enables Alexa to remind users when a meeting is ending. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Whether instant booking is enabled or not.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DurationInMinutes</i> Duration between 15 and 240 minutes at increments of 15 that determines how long to book an available room when a meeting is started with Alexa.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Whether require check in is enabled or not.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReleaseAfterMinutes</i> Duration between 5 and 20 minutes to determine when to release the room if it's not checked into. <br/>
        :return:         """
        pass

    def update_room(self, RoomArn: str=None, RoomName: str=None, Description: str=None, ProviderCalendarId: str=None, ProfileArn: str=None) -> UpdateRoomResponse:
        r"""Updates room details by room ARN.

        :param self:
        :param ProfileArn:  The updated profile ARN for the room.<br/>ProviderCalendarId:  The updated provider calendar ARN for the room.<br/>Description:  The updated description for the room.<br/>RoomName:  The updated name for the room.<br/>RoomArn:  The ARN of the room to update. <br/>
        :return:         """
        pass

    def update_skill_group(self, SkillGroupArn: str=None, SkillGroupName: str=None, Description: str=None) -> UpdateSkillGroupResponse:
        r"""Updates skill group details by skill group ARN.

        :param self:
        :param Description:  The updated description for the skill group.<br/>SkillGroupName:  The updated name for the skill group.<br/>SkillGroupArn:  The ARN of the skill group to update. <br/>
        :return:         """
        pass





class PrometheusService(BaseClient):
    r"""Amazon Managed Service for Prometheus"""


    class ListWorkspacesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_workspaces` for valid parameters"""
            pass


    class CreateWorkspaceRequest(Mapping):
        pass
    
    class CreateWorkspaceResponse(Mapping):
        pass
    
    class DeleteWorkspaceRequest(Mapping):
        pass
    
    class DescribeWorkspaceRequest(Mapping):
        pass
    
    class DescribeWorkspaceResponse(Mapping):
        pass
    
    class ListWorkspacesRequest(Mapping):
        pass
    
    class ListWorkspacesResponse(Mapping):
        pass
    
    class UpdateWorkspaceAliasRequest(Mapping):
        pass
    
    def create_workspace(self, alias: str=None, clientToken: str=None) -> CreateWorkspaceResponse:
        r"""Creates a new AMP workspace.

        :param self:
        :param clientToken:  Optional, unique, case-sensitive, user-provided identifier to ensure the idempotency of the request.<br/>alias:  An optional user-assigned alias for this workspace. This alias is for user reference and does not need to be unique.<br/>
        :return: workspaceId:  The generated ID of the workspace that was just created.<br/>status:  The status of the workspace that was just created (usually CREATING).:<br/>arn:  The ARN of the workspace that was just created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusCode</i> Status code of this workspace.<br/>        """
        pass

    def delete_workspace(self, workspaceId: str, clientToken: str=None):
        r"""Deletes an AMP workspace.

        :param self:
        :param workspaceId:  The ID of the workspace to delete.<br/>clientToken:  Optional, unique, case-sensitive, user-provided identifier to ensure the idempotency of the request.<br/>
        :return:         """
        pass

    def describe_workspace(self, workspaceId: str) -> DescribeWorkspaceResponse:
        r"""Describes an existing AMP workspace.

        :param self:
        :param workspaceId:  The ID of the workspace to describe.<br/>
        :return: workspace:  The properties of the selected workspace.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>workspaceId</i> Unique string identifying this workspace.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of this workspace.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>status</b>: The status of this workspace.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>prometheusEndpoint</i> Prometheus endpoint URI.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The time when the workspace was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of this workspace.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>alias</i> Alias of this workspace.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>statusCode</i> Status code of this workspace.<br/>        """
        pass

    def list_workspaces(self, alias: str=None, maxResults: int=None, nextToken: str=None) -> ListWorkspacesResponse:
        r"""Lists all AMP workspaces, including workspaces being created or deleted.

        :param self:
        :param nextToken:  Pagination token to request the next page in a paginated list. This token is obtained from the output of the previous ListWorkspaces request.<br/>maxResults:  Maximum results to return in response (default=100, maximum=1000).<br/>alias:  Optional filter for workspace alias. Only the workspaces with aliases that begin with this value will be returned.<br/>
        :return: workspaces:  The list of existing workspaces, including those undergoing creation or deletion.<br/>nextToken:  Pagination token to use when requesting the next page in this list.<br/>        """
        pass

    def update_workspace_alias(self, workspaceId: str, alias: str=None, clientToken: str=None):
        r"""Updates an AMP workspace alias.

        :param self:
        :param workspaceId:  The ID of the workspace being updated.<br/>clientToken:  Optional, unique, case-sensitive, user-provided identifier to ensure the idempotency of the request.<br/>alias:  The new alias of the workspace.<br/>
        :return:         """
        pass





class Amplify(BaseClient):
    r"""Amplify enables developers to develop and deploy cloud-powered mobile and web apps. The Amplify Console provides a continuous delivery and hosting service for web applications. For more information, see the <a href="https://docs.aws.amazon.com/amplify/latest/userguide/welcome.html">Amplify Console User Guide</a>. The Amplify Framework is a comprehensive set of SDKs, libraries, tools, and documentation for client app development. For more information, see the <a href="https://docs.amplify.aws/">Amplify Framework.</a> """


    class ListAppsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_apps` for valid parameters"""
            pass
    class ListBranchesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_branches` for valid parameters"""
            pass
    class ListDomainAssociationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_domain_associations` for valid parameters"""
            pass
    class ListJobsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_jobs` for valid parameters"""
            pass


    class CreateAppRequest(Mapping):
        pass
    
    class CreateAppResult(Mapping):
        pass
    
    class EnvironmentVariables(object):
        pass
    
    class EnableBranchAutoBuild(object):
        pass
    
    class EnableBranchAutoDeletion(object):
        pass
    
    class EnableBasicAuth(object):
        pass
    
    class CustomRule(Mapping):
        pass
    
    class TagMap(object):
        pass
    
    class EnableAutoBranchCreation(object):
        pass
    
    class AutoBranchCreationPattern(object):
        pass
    
    class AutoBranchCreationConfig(Mapping):
        pass
    
    class CreateBackendEnvironmentRequest(Mapping):
        pass
    
    class CreateBackendEnvironmentResult(Mapping):
        pass
    
    class CreateBranchRequest(Mapping):
        pass
    
    class CreateBranchResult(Mapping):
        pass
    
    class EnableNotification(object):
        pass
    
    class EnableAutoBuild(object):
        pass
    
    class EnablePerformanceMode(object):
        pass
    
    class EnablePullRequestPreview(object):
        pass
    
    class CreateDeploymentRequest(Mapping):
        pass
    
    class CreateDeploymentResult(Mapping):
        pass
    
    class FileMap(object):
        pass
    
    class CreateDomainAssociationRequest(Mapping):
        pass
    
    class CreateDomainAssociationResult(Mapping):
        pass
    
    class EnableAutoSubDomain(object):
        pass
    
    class SubDomainSetting(Mapping):
        pass
    
    class AutoSubDomainCreationPattern(object):
        pass
    
    class CreateWebhookRequest(Mapping):
        pass
    
    class CreateWebhookResult(Mapping):
        pass
    
    class DeleteAppRequest(Mapping):
        pass
    
    class DeleteAppResult(Mapping):
        pass
    
    class DeleteBackendEnvironmentRequest(Mapping):
        pass
    
    class DeleteBackendEnvironmentResult(Mapping):
        pass
    
    class DeleteBranchRequest(Mapping):
        pass
    
    class DeleteBranchResult(Mapping):
        pass
    
    class DeleteDomainAssociationRequest(Mapping):
        pass
    
    class DeleteDomainAssociationResult(Mapping):
        pass
    
    class DeleteJobRequest(Mapping):
        pass
    
    class DeleteJobResult(Mapping):
        pass
    
    class DeleteWebhookRequest(Mapping):
        pass
    
    class DeleteWebhookResult(Mapping):
        pass
    
    class GenerateAccessLogsRequest(Mapping):
        pass
    
    class GenerateAccessLogsResult(Mapping):
        pass
    
    class StartTime(object):
        pass
    
    class EndTime(object):
        pass
    
    class GetAppRequest(Mapping):
        pass
    
    class GetAppResult(Mapping):
        pass
    
    class GetArtifactUrlRequest(Mapping):
        pass
    
    class GetArtifactUrlResult(Mapping):
        pass
    
    class GetBackendEnvironmentRequest(Mapping):
        pass
    
    class GetBackendEnvironmentResult(Mapping):
        pass
    
    class GetBranchRequest(Mapping):
        pass
    
    class GetBranchResult(Mapping):
        pass
    
    class GetDomainAssociationRequest(Mapping):
        pass
    
    class GetDomainAssociationResult(Mapping):
        pass
    
    class GetJobRequest(Mapping):
        pass
    
    class GetJobResult(Mapping):
        pass
    
    class GetWebhookRequest(Mapping):
        pass
    
    class GetWebhookResult(Mapping):
        pass
    
    class ListAppsRequest(Mapping):
        pass
    
    class ListAppsResult(Mapping):
        pass
    
    class ListArtifactsRequest(Mapping):
        pass
    
    class ListArtifactsResult(Mapping):
        pass
    
    class ListBackendEnvironmentsRequest(Mapping):
        pass
    
    class ListBackendEnvironmentsResult(Mapping):
        pass
    
    class ListBranchesRequest(Mapping):
        pass
    
    class ListBranchesResult(Mapping):
        pass
    
    class ListDomainAssociationsRequest(Mapping):
        pass
    
    class ListDomainAssociationsResult(Mapping):
        pass
    
    class ListJobsRequest(Mapping):
        pass
    
    class ListJobsResult(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class ListWebhooksRequest(Mapping):
        pass
    
    class ListWebhooksResult(Mapping):
        pass
    
    class StartDeploymentRequest(Mapping):
        pass
    
    class StartDeploymentResult(Mapping):
        pass
    
    class StartJobRequest(Mapping):
        pass
    
    class StartJobResult(Mapping):
        pass
    
    class CommitTime(object):
        pass
    
    class StopJobRequest(Mapping):
        pass
    
    class StopJobResult(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateAppRequest(Mapping):
        pass
    
    class UpdateAppResult(Mapping):
        pass
    
    class UpdateBranchRequest(Mapping):
        pass
    
    class UpdateBranchResult(Mapping):
        pass
    
    class UpdateDomainAssociationRequest(Mapping):
        pass
    
    class UpdateDomainAssociationResult(Mapping):
        pass
    
    class UpdateWebhookRequest(Mapping):
        pass
    
    class UpdateWebhookResult(Mapping):
        pass
    
    def create_app(self, name: str, description: str=None, repository: str=None, platform: str=None, iamServiceRoleArn: str=None, oauthToken: str=None, accessToken: str=None, environmentVariables: EnvironmentVariables=None, enableBranchAutoBuild: EnableBranchAutoBuild=None, enableBranchAutoDeletion: EnableBranchAutoDeletion=None, enableBasicAuth: EnableBasicAuth=None, basicAuthCredentials: str=None, customRules: List[CustomRule]=None, tags: TagMap=None, buildSpec: str=None, customHeaders: str=None, enableAutoBranchCreation: EnableAutoBranchCreation=None, autoBranchCreationPatterns: List[AutoBranchCreationPattern]=None, autoBranchCreationConfig: AutoBranchCreationConfig=None) -> CreateAppResult:
        r""" Creates a new Amplify app. 

        :param self:
        :param autoBranchCreationConfig:   The automated branch creation configuration for an Amplify app. :<br/>autoBranchCreationPatterns:   The automated branch creation glob patterns for an Amplify app. <br/>enableAutoBranchCreation:   Enables automated branch creation for an Amplify app. <br/>customHeaders:  The custom HTTP headers for an Amplify app.<br/>buildSpec:   The build specification (build spec) for an Amplify app. <br/>tags:   The tag for an Amplify app. <br/>customRules:   The custom rewrite and redirect rules for an Amplify app. <br/>basicAuthCredentials:   The credentials for basic authorization for an Amplify app. <br/>enableBasicAuth:   Enables basic authorization for an Amplify app. This will apply to all branches that are part of this app. <br/>enableBranchAutoDeletion:   Automatically disconnects a branch in the Amplify Console when you delete a branch from your Git repository. <br/>enableBranchAutoBuild:   Enables the auto building of branches for an Amplify app. <br/>environmentVariables:   The environment variables map for an Amplify app. <br/>accessToken:   The personal access token for a third-party source control system for an Amplify app. The personal access token is used to create a webhook and a read-only deploy key. The token is not stored. <br/>oauthToken:   The OAuth token for a third-party source control system for an Amplify app. The OAuth token is used to create a webhook and a read-only deploy key. The OAuth token is not stored. <br/>iamServiceRoleArn:   The AWS Identity and Access Management (IAM) service role for an Amplify app. <br/>platform:   The platform or framework for an Amplify app. <br/>repository:   The repository for an Amplify app. <br/>description:   The description for an Amplify app. <br/>name:   The name for an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>pullRequestEnvironmentName</i>  The Amplify environment name for the pull request. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>enablePullRequestPreview</i>  Enables pull request previews for the autocreated branch. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>buildSpec</i>  The build specification (build spec) for the autocreated branch. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>enablePerformanceMode</i> Enables performance mode for the branch. Performance mode optimizes for faster hosting performance by keeping content cached at the edge for a longer interval. When performance mode is enabled, hosting configuration or code changes can take up to 10 minutes to roll out. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>enableBasicAuth</i>  Enables basic authorization for the autocreated branch. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>basicAuthCredentials</i>  The basic authorization credentials for the autocreated branch. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>environmentVariables</i>  The environment variables for the autocreated branch. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>enableAutoBuild</i>  Enables auto building for the autocreated branch. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>framework</i>  The framework for the autocreated branch. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>stage</i>  Describes the current stage for the autocreated branch. <br/>
        :return: app:   Represents the different branches of a repository for building, deploying, and hosting an Amplify app. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>autoBranchCreationConfig</i>  Describes the automated branch creation configuration for the Amplify app. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>autoBranchCreationConfig</b>:  Describes the automated branch creation configuration for the Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>autoBranchCreationPatterns</i>  Describes the automated branch creation glob patterns for the Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>enableAutoBranchCreation</i>  Enables automated branch creation for the Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>customHeaders</i> Describes the custom HTTP headers for the Amplify app.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>buildSpec</i>  Describes the content of the build specification (build spec) for the Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>productionBranch</i>  Describes the information about a production branch of the Amplify app. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>productionBranch</b>:  Describes the information about a production branch of the Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>customRules</i>  Describes the custom redirect and rewrite rules for the Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>basicAuthCredentials</i>  The basic authorization credentials for branches for the Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>enableBasicAuth</i>  Enables basic authorization for the Amplify app's branches. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>enableBranchAutoDeletion</i>  Automatically disconnect a branch in the Amplify Console when you delete a branch from your Git repository. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>enableBranchAutoBuild</i>  Enables the auto-building of branches for the Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>defaultDomain</i>  The default domain for the Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>environmentVariables</i>  The environment variables for the Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>iamServiceRoleArn</i>  The AWS Identity and Access Management (IAM) service role for the Amazon Resource Name (ARN) of the Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>updateTime</i>  Updates the date and time for the Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createTime</i>  Creates a date and time for the Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>platform</i>  The platform for the Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>repository</i>  The repository for the Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i>  The description for the Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i>  The tag for the Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i>  The name for the Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>appArn</i>  The Amazon Resource Name (ARN) of the Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>appId</i>  The unique ID of the Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>branchName</i>  The branch name for the production branch. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>thumbnailUrl</i>  The thumbnail URL for the production branch. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i>  The status of the production branch. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>lastDeployTime</i>  The last deploy time of the production branch. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>pullRequestEnvironmentName</i>  The Amplify environment name for the pull request. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>enablePullRequestPreview</i>  Enables pull request previews for the autocreated branch. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>buildSpec</i>  The build specification (build spec) for the autocreated branch. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>enablePerformanceMode</i> Enables performance mode for the branch. Performance mode optimizes for faster hosting performance by keeping content cached at the edge for a longer interval. When performance mode is enabled, hosting configuration or code changes can take up to 10 minutes to roll out. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>enableBasicAuth</i>  Enables basic authorization for the autocreated branch. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>basicAuthCredentials</i>  The basic authorization credentials for the autocreated branch. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>environmentVariables</i>  The environment variables for the autocreated branch. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>enableAutoBuild</i>  Enables auto building for the autocreated branch. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>framework</i>  The framework for the autocreated branch. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>stage</i>  Describes the current stage for the autocreated branch. <br/>        """
        pass

    def create_backend_environment(self, environmentName: str, appId: str, stackName: str=None, deploymentArtifacts: str=None) -> CreateBackendEnvironmentResult:
        r""" Creates a new backend environment for an Amplify app. 

        :param self:
        :param deploymentArtifacts:   The name of deployment artifacts. <br/>stackName:   The AWS CloudFormation stack name of a backend environment. <br/>environmentName:   The name for the backend environment. <br/>appId:   The unique ID for an Amplify app. <br/>
        :return: backendEnvironment:   Describes the backend environment for an Amplify app. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>updateTime</i>  The last updated date and time for a backend environment that is part of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createTime</i>  The creation date and time for a backend environment that is part of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deploymentArtifacts</i>  The name of deployment artifacts. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>stackName</i>  The AWS CloudFormation stack name of a backend environment. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>environmentName</i>  The name for a backend environment that is part of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>backendEnvironmentArn</i>  The Amazon Resource Name (ARN) for a backend environment that is part of an Amplify app. <br/>        """
        pass

    def create_branch(self, branchName: str, appId: str, description: str=None, stage: str=None, framework: str=None, enableNotification: EnableNotification=None, enableAutoBuild: EnableAutoBuild=None, environmentVariables: EnvironmentVariables=None, basicAuthCredentials: str=None, enableBasicAuth: EnableBasicAuth=None, enablePerformanceMode: EnablePerformanceMode=None, tags: TagMap=None, buildSpec: str=None, ttl: str=None, displayName: str=None, enablePullRequestPreview: EnablePullRequestPreview=None, pullRequestEnvironmentName: str=None, backendEnvironmentArn: str=None) -> CreateBranchResult:
        r""" Creates a new branch for an Amplify app. 

        :param self:
        :param backendEnvironmentArn:   The Amazon Resource Name (ARN) for a backend environment that is part of an Amplify app. <br/>pullRequestEnvironmentName:   The Amplify environment name for the pull request. <br/>enablePullRequestPreview:   Enables pull request previews for this branch. <br/>displayName:   The display name for a branch. This is used as the default domain prefix. <br/>ttl:   The content Time To Live (TTL) for the website in seconds. <br/>buildSpec:   The build specification (build spec) for the branch. <br/>tags:   The tag for the branch. <br/>enablePerformanceMode:  Enables performance mode for the branch. Performance mode optimizes for faster hosting performance by keeping content cached at the edge for a longer interval. When performance mode is enabled, hosting configuration or code changes can take up to 10 minutes to roll out. <br/>enableBasicAuth:   Enables basic authorization for the branch. <br/>basicAuthCredentials:   The basic authorization credentials for the branch. <br/>environmentVariables:   The environment variables for the branch. <br/>enableAutoBuild:   Enables auto building for the branch. <br/>enableNotification:   Enables notifications for the branch. <br/>framework:   The framework for the branch. <br/>stage:   Describes the current stage for the branch. <br/>description:   The description for the branch. <br/>branchName:   The name for the branch. <br/>appId:   The unique ID for an Amplify app. <br/>
        :return: branch:   Describes the branch for an Amplify app, which maps to a third-party repository branch. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>backendEnvironmentArn</i>  The Amazon Resource Name (ARN) for a backend environment that is part of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>sourceBranch</i>  The source branch if the branch is a pull request branch. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>destinationBranch</i>  The destination branch if the branch is a pull request branch. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>pullRequestEnvironmentName</i>  The Amplify environment name for the pull request. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>enablePullRequestPreview</i>  Enables pull request previews for the branch. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>associatedResources</i>  A list of custom resources that are linked to this branch. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ttl</i>  The content Time to Live (TTL) for the website in seconds. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>buildSpec</i>  The build specification (build spec) content for the branch of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>basicAuthCredentials</i>  The basic authorization credentials for a branch of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>thumbnailUrl</i>  The thumbnail URL for the branch of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>enablePerformanceMode</i> Enables performance mode for the branch. Performance mode optimizes for faster hosting performance by keeping content cached at the edge for a longer interval. When performance mode is enabled, hosting configuration or code changes can take up to 10 minutes to roll out. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>enableBasicAuth</i>  Enables basic authorization for a branch of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>totalNumberOfJobs</i>  The total number of jobs that are part of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>activeJobId</i>  The ID of the active job for a branch of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>framework</i>  The framework for a branch of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>customDomains</i>  The custom domains for a branch of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>enableAutoBuild</i>  Enables auto-building on push for a branch of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>environmentVariables</i>  The environment variables specific to a branch of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>updateTime</i>  The last updated date and time for a branch that is part of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createTime</i>  The creation date and time for a branch that is part of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>enableNotification</i>  Enables notifications for a branch that is part of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>displayName</i>  The display name for the branch. This is used as the default domain prefix. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>stage</i>  The current stage for the branch that is part of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i>  The tag for the branch of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i>  The description for the branch that is part of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>branchName</i>  The name for the branch that is part of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>branchArn</i>  The Amazon Resource Name (ARN) for a branch that is part of an Amplify app. <br/>        """
        pass

    def create_deployment(self, branchName: str, appId: str, fileMap: FileMap=None) -> CreateDeploymentResult:
        r""" Creates a deployment for a manually deployed Amplify app. Manually deployed apps are not connected to a repository. 

        :param self:
        :param fileMap:   An optional file map that contains the file name as the key and the file content md5 hash as the value. If this argument is provided, the service will generate a unique upload URL per file. Otherwise, the service will only generate a single upload URL for the zipped files. <br/>branchName:   The name for the branch, for the job. <br/>appId:   The unique ID for an Amplify app. <br/>
        :return: zipUploadUrl:   When the <code>fileMap</code> argument is not provided in the request, this <code>zipUploadUrl</code> is returned. <br/>fileUploadUrls:   When the <code>fileMap</code> argument is provided in the request, <code>fileUploadUrls</code> will contain a map of file names to upload URLs. <br/>jobId:   The job ID for this deployment. will supply to start deployment api. <br/>        """
        pass

    def create_domain_association(self, subDomainSettings: List[SubDomainSetting], domainName: str, appId: str, enableAutoSubDomain: EnableAutoSubDomain=None, autoSubDomainCreationPatterns: List[AutoSubDomainCreationPattern]=None, autoSubDomainIAMRole: str=None) -> CreateDomainAssociationResult:
        r""" Creates a new domain association for an Amplify app. This action associates a custom domain with the Amplify app 

        :param self:
        :param autoSubDomainIAMRole:   The required AWS Identity and Access Management (IAM) service role for the Amazon Resource Name (ARN) for automatically creating subdomains. <br/>autoSubDomainCreationPatterns:   Sets the branch patterns for automatic subdomain creation. <br/>subDomainSettings:   The setting for the subdomain. <br/>enableAutoSubDomain:   Enables the automated creation of subdomains for branches. <br/>domainName:   The domain name for the domain association. <br/>appId:   The unique ID for an Amplify app. <br/>
        :return: domainAssociation:   Describes the structure of a domain association, which associates a custom domain with an Amplify app. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>subDomains</i>  The subdomains for the domain association. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>certificateVerificationDNSRecord</i>  The DNS record for certificate verification. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusReason</i>  The reason for the current status of the domain association. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>domainStatus</i>  The current status of the domain association. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>autoSubDomainIAMRole</i>  The required AWS Identity and Access Management (IAM) service role for the Amazon Resource Name (ARN) for automatically creating subdomains. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>autoSubDomainCreationPatterns</i>  Sets branch patterns for automatic subdomain creation. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>enableAutoSubDomain</i>  Enables the automated creation of subdomains for branches. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>domainName</i>  The name of the domain. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>domainAssociationArn</i>  The Amazon Resource Name (ARN) for the domain association. <br/>        """
        pass

    def create_webhook(self, branchName: str, appId: str, description: str=None) -> CreateWebhookResult:
        r""" Creates a new webhook on an Amplify app. 

        :param self:
        :param description:   The description for a webhook. <br/>branchName:   The name for a branch that is part of an Amplify app. <br/>appId:   The unique ID for an Amplify app. <br/>
        :return: webhook:   Describes a webhook that connects repository events to an Amplify app. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>updateTime</i>  Updates the date and time for a webhook. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createTime</i>  The create date and time for a webhook. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i>  The description for a webhook. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>branchName</i>  The name for a branch that is part of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>webhookUrl</i>  The URL of the webhook. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>webhookId</i>  The ID of the webhook. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>webhookArn</i>  The Amazon Resource Name (ARN) for the webhook. <br/>        """
        pass

    def delete_app(self, appId: str) -> DeleteAppResult:
        r""" Deletes an existing Amplify app specified by an app ID. 

        :param self:
        :param appId:   The unique ID for an Amplify app. <br/>
        :return: app:   Represents the different branches of a repository for building, deploying, and hosting an Amplify app. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>autoBranchCreationConfig</i>  Describes the automated branch creation configuration for the Amplify app. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>autoBranchCreationConfig</b>:  Describes the automated branch creation configuration for the Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>autoBranchCreationPatterns</i>  Describes the automated branch creation glob patterns for the Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>enableAutoBranchCreation</i>  Enables automated branch creation for the Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>customHeaders</i> Describes the custom HTTP headers for the Amplify app.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>buildSpec</i>  Describes the content of the build specification (build spec) for the Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>productionBranch</i>  Describes the information about a production branch of the Amplify app. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>productionBranch</b>:  Describes the information about a production branch of the Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>customRules</i>  Describes the custom redirect and rewrite rules for the Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>basicAuthCredentials</i>  The basic authorization credentials for branches for the Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>enableBasicAuth</i>  Enables basic authorization for the Amplify app's branches. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>enableBranchAutoDeletion</i>  Automatically disconnect a branch in the Amplify Console when you delete a branch from your Git repository. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>enableBranchAutoBuild</i>  Enables the auto-building of branches for the Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>defaultDomain</i>  The default domain for the Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>environmentVariables</i>  The environment variables for the Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>iamServiceRoleArn</i>  The AWS Identity and Access Management (IAM) service role for the Amazon Resource Name (ARN) of the Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>updateTime</i>  Updates the date and time for the Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createTime</i>  Creates a date and time for the Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>platform</i>  The platform for the Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>repository</i>  The repository for the Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i>  The description for the Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i>  The tag for the Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i>  The name for the Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>appArn</i>  The Amazon Resource Name (ARN) of the Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>appId</i>  The unique ID of the Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>branchName</i>  The branch name for the production branch. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>thumbnailUrl</i>  The thumbnail URL for the production branch. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i>  The status of the production branch. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>lastDeployTime</i>  The last deploy time of the production branch. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>pullRequestEnvironmentName</i>  The Amplify environment name for the pull request. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>enablePullRequestPreview</i>  Enables pull request previews for the autocreated branch. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>buildSpec</i>  The build specification (build spec) for the autocreated branch. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>enablePerformanceMode</i> Enables performance mode for the branch. Performance mode optimizes for faster hosting performance by keeping content cached at the edge for a longer interval. When performance mode is enabled, hosting configuration or code changes can take up to 10 minutes to roll out. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>enableBasicAuth</i>  Enables basic authorization for the autocreated branch. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>basicAuthCredentials</i>  The basic authorization credentials for the autocreated branch. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>environmentVariables</i>  The environment variables for the autocreated branch. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>enableAutoBuild</i>  Enables auto building for the autocreated branch. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>framework</i>  The framework for the autocreated branch. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>stage</i>  Describes the current stage for the autocreated branch. <br/>        """
        pass

    def delete_backend_environment(self, environmentName: str, appId: str) -> DeleteBackendEnvironmentResult:
        r""" Deletes a backend environment for an Amplify app. 

        :param self:
        :param environmentName:   The name of a backend environment of an Amplify app. <br/>appId:   The unique ID of an Amplify app. <br/>
        :return: backendEnvironment:   Describes the backend environment for an Amplify app. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>updateTime</i>  The last updated date and time for a backend environment that is part of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createTime</i>  The creation date and time for a backend environment that is part of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deploymentArtifacts</i>  The name of deployment artifacts. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>stackName</i>  The AWS CloudFormation stack name of a backend environment. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>environmentName</i>  The name for a backend environment that is part of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>backendEnvironmentArn</i>  The Amazon Resource Name (ARN) for a backend environment that is part of an Amplify app. <br/>        """
        pass

    def delete_branch(self, branchName: str, appId: str) -> DeleteBranchResult:
        r""" Deletes a branch for an Amplify app. 

        :param self:
        :param branchName:   The name for the branch. <br/>appId:   The unique ID for an Amplify app. <br/>
        :return: branch:   The branch for an Amplify app, which maps to a third-party repository branch. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>backendEnvironmentArn</i>  The Amazon Resource Name (ARN) for a backend environment that is part of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>sourceBranch</i>  The source branch if the branch is a pull request branch. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>destinationBranch</i>  The destination branch if the branch is a pull request branch. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>pullRequestEnvironmentName</i>  The Amplify environment name for the pull request. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>enablePullRequestPreview</i>  Enables pull request previews for the branch. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>associatedResources</i>  A list of custom resources that are linked to this branch. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ttl</i>  The content Time to Live (TTL) for the website in seconds. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>buildSpec</i>  The build specification (build spec) content for the branch of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>basicAuthCredentials</i>  The basic authorization credentials for a branch of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>thumbnailUrl</i>  The thumbnail URL for the branch of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>enablePerformanceMode</i> Enables performance mode for the branch. Performance mode optimizes for faster hosting performance by keeping content cached at the edge for a longer interval. When performance mode is enabled, hosting configuration or code changes can take up to 10 minutes to roll out. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>enableBasicAuth</i>  Enables basic authorization for a branch of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>totalNumberOfJobs</i>  The total number of jobs that are part of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>activeJobId</i>  The ID of the active job for a branch of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>framework</i>  The framework for a branch of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>customDomains</i>  The custom domains for a branch of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>enableAutoBuild</i>  Enables auto-building on push for a branch of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>environmentVariables</i>  The environment variables specific to a branch of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>updateTime</i>  The last updated date and time for a branch that is part of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createTime</i>  The creation date and time for a branch that is part of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>enableNotification</i>  Enables notifications for a branch that is part of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>displayName</i>  The display name for the branch. This is used as the default domain prefix. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>stage</i>  The current stage for the branch that is part of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i>  The tag for the branch of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i>  The description for the branch that is part of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>branchName</i>  The name for the branch that is part of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>branchArn</i>  The Amazon Resource Name (ARN) for a branch that is part of an Amplify app. <br/>        """
        pass

    def delete_domain_association(self, domainName: str, appId: str) -> DeleteDomainAssociationResult:
        r""" Deletes a domain association for an Amplify app. 

        :param self:
        :param domainName:   The name of the domain. <br/>appId:   The unique id for an Amplify app. <br/>
        :return: domainAssociation:   Describes a domain association that associates a custom domain with an Amplify app. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>subDomains</i>  The subdomains for the domain association. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>certificateVerificationDNSRecord</i>  The DNS record for certificate verification. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusReason</i>  The reason for the current status of the domain association. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>domainStatus</i>  The current status of the domain association. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>autoSubDomainIAMRole</i>  The required AWS Identity and Access Management (IAM) service role for the Amazon Resource Name (ARN) for automatically creating subdomains. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>autoSubDomainCreationPatterns</i>  Sets branch patterns for automatic subdomain creation. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>enableAutoSubDomain</i>  Enables the automated creation of subdomains for branches. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>domainName</i>  The name of the domain. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>domainAssociationArn</i>  The Amazon Resource Name (ARN) for the domain association. <br/>        """
        pass

    def delete_job(self, jobId: str, branchName: str, appId: str) -> DeleteJobResult:
        r""" Deletes a job for a branch of an Amplify app. 

        :param self:
        :param jobId:   The unique ID for the job. <br/>branchName:   The name for the branch, for the job. <br/>appId:   The unique ID for an Amplify app. <br/>
        :return: jobSummary:   Describes the summary for an execution job for an Amplify app. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>jobType</i>  The type for the job. If the value is <code>RELEASE</code>, the job was manually released from its source by using the <code>StartJob</code> API. If the value is <code>RETRY</code>, the job was manually retried using the <code>StartJob</code> API. If the value is <code>WEB_HOOK</code>, the job was automatically triggered by webhooks. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>endTime</i>  The end date and time for the job. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i>  The current status for the job. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>startTime</i>  The start date and time for the job. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>commitTime</i>  The commit date and time for the job. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>commitMessage</i>  The commit message from a third-party repository provider for the job. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>commitId</i>  The commit ID from a third-party repository provider for the job. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>jobId</i>  The unique ID for the job. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>jobArn</i>  The Amazon Resource Name (ARN) for the job. <br/>        """
        pass

    def delete_webhook(self, webhookId: str) -> DeleteWebhookResult:
        r""" Deletes a webhook. 

        :param self:
        :param webhookId:   The unique ID for a webhook. <br/>
        :return: webhook:   Describes a webhook that connects repository events to an Amplify app. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>updateTime</i>  Updates the date and time for a webhook. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createTime</i>  The create date and time for a webhook. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i>  The description for a webhook. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>branchName</i>  The name for a branch that is part of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>webhookUrl</i>  The URL of the webhook. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>webhookId</i>  The ID of the webhook. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>webhookArn</i>  The Amazon Resource Name (ARN) for the webhook. <br/>        """
        pass

    def generate_access_logs(self, appId: str, domainName: str, startTime: StartTime=None, endTime: EndTime=None) -> GenerateAccessLogsResult:
        r""" Returns the website access logs for a specific time range using a presigned URL. 

        :param self:
        :param appId:   The unique ID for an Amplify app. <br/>domainName:   The name of the domain. <br/>endTime:   The time at which the logs should end. The time range specified is inclusive of the end time. <br/>startTime:   The time at which the logs should start. The time range specified is inclusive of the start time. <br/>
        :return: logUrl:   The pre-signed URL for the requested access logs. <br/>        """
        pass

    def get_app(self, appId: str) -> GetAppResult:
        r""" Returns an existing Amplify app by appID. 

        :param self:
        :param appId:   The unique ID for an Amplify app. <br/>
        :return: app:   Represents the different branches of a repository for building, deploying, and hosting an Amplify app. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>autoBranchCreationConfig</i>  Describes the automated branch creation configuration for the Amplify app. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>autoBranchCreationConfig</b>:  Describes the automated branch creation configuration for the Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>autoBranchCreationPatterns</i>  Describes the automated branch creation glob patterns for the Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>enableAutoBranchCreation</i>  Enables automated branch creation for the Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>customHeaders</i> Describes the custom HTTP headers for the Amplify app.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>buildSpec</i>  Describes the content of the build specification (build spec) for the Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>productionBranch</i>  Describes the information about a production branch of the Amplify app. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>productionBranch</b>:  Describes the information about a production branch of the Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>customRules</i>  Describes the custom redirect and rewrite rules for the Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>basicAuthCredentials</i>  The basic authorization credentials for branches for the Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>enableBasicAuth</i>  Enables basic authorization for the Amplify app's branches. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>enableBranchAutoDeletion</i>  Automatically disconnect a branch in the Amplify Console when you delete a branch from your Git repository. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>enableBranchAutoBuild</i>  Enables the auto-building of branches for the Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>defaultDomain</i>  The default domain for the Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>environmentVariables</i>  The environment variables for the Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>iamServiceRoleArn</i>  The AWS Identity and Access Management (IAM) service role for the Amazon Resource Name (ARN) of the Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>updateTime</i>  Updates the date and time for the Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createTime</i>  Creates a date and time for the Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>platform</i>  The platform for the Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>repository</i>  The repository for the Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i>  The description for the Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i>  The tag for the Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i>  The name for the Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>appArn</i>  The Amazon Resource Name (ARN) of the Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>appId</i>  The unique ID of the Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>branchName</i>  The branch name for the production branch. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>thumbnailUrl</i>  The thumbnail URL for the production branch. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i>  The status of the production branch. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>lastDeployTime</i>  The last deploy time of the production branch. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>pullRequestEnvironmentName</i>  The Amplify environment name for the pull request. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>enablePullRequestPreview</i>  Enables pull request previews for the autocreated branch. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>buildSpec</i>  The build specification (build spec) for the autocreated branch. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>enablePerformanceMode</i> Enables performance mode for the branch. Performance mode optimizes for faster hosting performance by keeping content cached at the edge for a longer interval. When performance mode is enabled, hosting configuration or code changes can take up to 10 minutes to roll out. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>enableBasicAuth</i>  Enables basic authorization for the autocreated branch. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>basicAuthCredentials</i>  The basic authorization credentials for the autocreated branch. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>environmentVariables</i>  The environment variables for the autocreated branch. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>enableAutoBuild</i>  Enables auto building for the autocreated branch. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>framework</i>  The framework for the autocreated branch. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>stage</i>  Describes the current stage for the autocreated branch. <br/>        """
        pass

    def get_artifact_url(self, artifactId: str) -> GetArtifactUrlResult:
        r""" Returns the artifact info that corresponds to an artifact id. 

        :param self:
        :param artifactId:   The unique ID for an artifact. <br/>
        :return: artifactUrl:   The presigned URL for the artifact. <br/>artifactId:   The unique ID for an artifact. <br/>        """
        pass

    def get_backend_environment(self, environmentName: str, appId: str) -> GetBackendEnvironmentResult:
        r""" Returns a backend environment for an Amplify app. 

        :param self:
        :param environmentName:   The name for the backend environment. <br/>appId:   The unique id for an Amplify app. <br/>
        :return: backendEnvironment:   Describes the backend environment for an Amplify app. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>updateTime</i>  The last updated date and time for a backend environment that is part of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createTime</i>  The creation date and time for a backend environment that is part of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deploymentArtifacts</i>  The name of deployment artifacts. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>stackName</i>  The AWS CloudFormation stack name of a backend environment. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>environmentName</i>  The name for a backend environment that is part of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>backendEnvironmentArn</i>  The Amazon Resource Name (ARN) for a backend environment that is part of an Amplify app. <br/>        """
        pass

    def get_branch(self, branchName: str, appId: str) -> GetBranchResult:
        r""" Returns a branch for an Amplify app. 

        :param self:
        :param branchName:   The name for the branch. <br/>appId:   The unique ID for an Amplify app. <br/>
        :return: branch:   The branch for an Amplify app, which maps to a third-party repository branch. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>backendEnvironmentArn</i>  The Amazon Resource Name (ARN) for a backend environment that is part of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>sourceBranch</i>  The source branch if the branch is a pull request branch. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>destinationBranch</i>  The destination branch if the branch is a pull request branch. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>pullRequestEnvironmentName</i>  The Amplify environment name for the pull request. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>enablePullRequestPreview</i>  Enables pull request previews for the branch. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>associatedResources</i>  A list of custom resources that are linked to this branch. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ttl</i>  The content Time to Live (TTL) for the website in seconds. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>buildSpec</i>  The build specification (build spec) content for the branch of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>basicAuthCredentials</i>  The basic authorization credentials for a branch of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>thumbnailUrl</i>  The thumbnail URL for the branch of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>enablePerformanceMode</i> Enables performance mode for the branch. Performance mode optimizes for faster hosting performance by keeping content cached at the edge for a longer interval. When performance mode is enabled, hosting configuration or code changes can take up to 10 minutes to roll out. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>enableBasicAuth</i>  Enables basic authorization for a branch of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>totalNumberOfJobs</i>  The total number of jobs that are part of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>activeJobId</i>  The ID of the active job for a branch of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>framework</i>  The framework for a branch of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>customDomains</i>  The custom domains for a branch of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>enableAutoBuild</i>  Enables auto-building on push for a branch of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>environmentVariables</i>  The environment variables specific to a branch of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>updateTime</i>  The last updated date and time for a branch that is part of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createTime</i>  The creation date and time for a branch that is part of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>enableNotification</i>  Enables notifications for a branch that is part of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>displayName</i>  The display name for the branch. This is used as the default domain prefix. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>stage</i>  The current stage for the branch that is part of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i>  The tag for the branch of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i>  The description for the branch that is part of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>branchName</i>  The name for the branch that is part of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>branchArn</i>  The Amazon Resource Name (ARN) for a branch that is part of an Amplify app. <br/>        """
        pass

    def get_domain_association(self, domainName: str, appId: str) -> GetDomainAssociationResult:
        r""" Returns the domain information for an Amplify app. 

        :param self:
        :param domainName:   The name of the domain. <br/>appId:   The unique id for an Amplify app. <br/>
        :return: domainAssociation:   Describes the structure of a domain association, which associates a custom domain with an Amplify app. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>subDomains</i>  The subdomains for the domain association. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>certificateVerificationDNSRecord</i>  The DNS record for certificate verification. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusReason</i>  The reason for the current status of the domain association. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>domainStatus</i>  The current status of the domain association. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>autoSubDomainIAMRole</i>  The required AWS Identity and Access Management (IAM) service role for the Amazon Resource Name (ARN) for automatically creating subdomains. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>autoSubDomainCreationPatterns</i>  Sets branch patterns for automatic subdomain creation. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>enableAutoSubDomain</i>  Enables the automated creation of subdomains for branches. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>domainName</i>  The name of the domain. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>domainAssociationArn</i>  The Amazon Resource Name (ARN) for the domain association. <br/>        """
        pass

    def get_job(self, jobId: str, branchName: str, appId: str) -> GetJobResult:
        r""" Returns a job for a branch of an Amplify app. 

        :param self:
        :param jobId:   The unique ID for the job. <br/>branchName:   The branch name for the job. <br/>appId:   The unique ID for an Amplify app. <br/>
        :return: job:   Describes an execution job for an Amplify app. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>steps</i>  The execution steps for an execution job, for an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>summary</i>  Describes the summary for an execution job for an Amplify app. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>summary</b>:  Describes the summary for an execution job for an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>jobType</i>  The type for the job. If the value is <code>RELEASE</code>, the job was manually released from its source by using the <code>StartJob</code> API. If the value is <code>RETRY</code>, the job was manually retried using the <code>StartJob</code> API. If the value is <code>WEB_HOOK</code>, the job was automatically triggered by webhooks. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>endTime</i>  The end date and time for the job. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i>  The current status for the job. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>startTime</i>  The start date and time for the job. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>commitTime</i>  The commit date and time for the job. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>commitMessage</i>  The commit message from a third-party repository provider for the job. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>commitId</i>  The commit ID from a third-party repository provider for the job. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>jobId</i>  The unique ID for the job. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>jobArn</i>  The Amazon Resource Name (ARN) for the job. <br/>        """
        pass

    def get_webhook(self, webhookId: str) -> GetWebhookResult:
        r""" Returns the webhook information that corresponds to a specified webhook ID. 

        :param self:
        :param webhookId:   The unique ID for a webhook. <br/>
        :return: webhook:   Describes the structure of a webhook. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>updateTime</i>  Updates the date and time for a webhook. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createTime</i>  The create date and time for a webhook. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i>  The description for a webhook. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>branchName</i>  The name for a branch that is part of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>webhookUrl</i>  The URL of the webhook. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>webhookId</i>  The ID of the webhook. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>webhookArn</i>  The Amazon Resource Name (ARN) for the webhook. <br/>        """
        pass

    def list_apps(self, nextToken: str=None, maxResults: int=None) -> ListAppsResult:
        r""" Returns a list of the existing Amplify apps. 

        :param self:
        :param maxResults:   The maximum number of records to list in a single response. <br/>nextToken:   A pagination token. If non-null, the pagination token is returned in a result. Pass its value in another request to retrieve more entries. <br/>
        :return: nextToken:   A pagination token. Set to null to start listing apps from start. If non-null, the pagination token is returned in a result. Pass its value in here to list more projects. <br/>apps:   A list of Amplify apps. <br/>        """
        pass

    def list_artifacts(self, jobId: str, branchName: str, appId: str, nextToken: str=None, maxResults: int=None) -> ListArtifactsResult:
        r""" Returns a list of artifacts for a specified app, branch, and job. 

        :param self:
        :param maxResults:   The maximum number of records to list in a single response. <br/>nextToken:   A pagination token. Set to null to start listing artifacts from start. If a non-null pagination token is returned in a result, pass its value in here to list more artifacts. <br/>jobId:   The unique ID for a job. <br/>branchName:   The name of a branch that is part of an Amplify app. <br/>appId:   The unique ID for an Amplify app. <br/>
        :return: nextToken:   A pagination token. If a non-null pagination token is returned in a result, pass its value in another request to retrieve more entries. <br/>artifacts:   A list of artifacts. <br/>        """
        pass

    def list_backend_environments(self, appId: str, environmentName: str=None, nextToken: str=None, maxResults: int=None) -> ListBackendEnvironmentsResult:
        r""" Lists the backend environments for an Amplify app. 

        :param self:
        :param maxResults:   The maximum number of records to list in a single response. <br/>nextToken:   A pagination token. Set to null to start listing backend environments from the start. If a non-null pagination token is returned in a result, pass its value in here to list more backend environments. <br/>environmentName:   The name of the backend environment <br/>appId:   The unique ID for an Amplify app. <br/>
        :return: nextToken:   A pagination token. If a non-null pagination token is returned in a result, pass its value in another request to retrieve more entries. <br/>backendEnvironments:   The list of backend environments for an Amplify app. <br/>        """
        pass

    def list_branches(self, appId: str, nextToken: str=None, maxResults: int=None) -> ListBranchesResult:
        r""" Lists the branches of an Amplify app. 

        :param self:
        :param maxResults:   The maximum number of records to list in a single response. <br/>nextToken:   A pagination token. Set to null to start listing branches from the start. If a non-null pagination token is returned in a result, pass its value in here to list more branches. <br/>appId:   The unique ID for an Amplify app. <br/>
        :return: nextToken:   A pagination token. If a non-null pagination token is returned in a result, pass its value in another request to retrieve more entries. <br/>branches:   A list of branches for an Amplify app. <br/>        """
        pass

    def list_domain_associations(self, appId: str, nextToken: str=None, maxResults: int=None) -> ListDomainAssociationsResult:
        r""" Returns the domain associations for an Amplify app. 

        :param self:
        :param maxResults:   The maximum number of records to list in a single response. <br/>nextToken:   A pagination token. Set to null to start listing apps from the start. If non-null, a pagination token is returned in a result. Pass its value in here to list more projects. <br/>appId:   The unique ID for an Amplify app. <br/>
        :return: nextToken:   A pagination token. If non-null, a pagination token is returned in a result. Pass its value in another request to retrieve more entries. <br/>domainAssociations:   A list of domain associations. <br/>        """
        pass

    def list_jobs(self, branchName: str, appId: str, nextToken: str=None, maxResults: int=None) -> ListJobsResult:
        r""" Lists the jobs for a branch of an Amplify app. 

        :param self:
        :param maxResults:   The maximum number of records to list in a single response. <br/>nextToken:   A pagination token. Set to null to start listing steps from the start. If a non-null pagination token is returned in a result, pass its value in here to list more steps. <br/>branchName:   The name for a branch. <br/>appId:   The unique ID for an Amplify app. <br/>
        :return: nextToken:   A pagination token. If non-null the pagination token is returned in a result. Pass its value in another request to retrieve more entries. <br/>jobSummaries:   The result structure for the list job result request. <br/>        """
        pass

    def list_tags_for_resource(self, resourceArn: str) -> ListTagsForResourceResponse:
        r""" Returns a list of tags for a specified Amazon Resource Name (ARN). 

        :param self:
        :param resourceArn:   The Amazon Resource Name (ARN) to use to list tags. <br/>
        :return: tags:   A list of tags for the specified The Amazon Resource Name (ARN). <br/>        """
        pass

    def list_webhooks(self, appId: str, nextToken: str=None, maxResults: int=None) -> ListWebhooksResult:
        r""" Returns a list of webhooks for an Amplify app. 

        :param self:
        :param maxResults:   The maximum number of records to list in a single response. <br/>nextToken:   A pagination token. Set to null to start listing webhooks from the start. If non-null,the pagination token is returned in a result. Pass its value in here to list more webhooks. <br/>appId:   The unique ID for an Amplify app. <br/>
        :return: nextToken:   A pagination token. If non-null, the pagination token is returned in a result. Pass its value in another request to retrieve more entries. <br/>webhooks:   A list of webhooks. <br/>        """
        pass

    def start_deployment(self, branchName: str, appId: str, jobId: str=None, sourceUrl: str=None) -> StartDeploymentResult:
        r""" Starts a deployment for a manually deployed app. Manually deployed apps are not connected to a repository. 

        :param self:
        :param sourceUrl:   The source URL for this deployment, used when calling start deployment without create deployment. The source URL can be any HTTP GET URL that is publicly accessible and downloads a single .zip file. <br/>jobId:   The job ID for this deployment, generated by the create deployment request. <br/>branchName:   The name for the branch, for the job. <br/>appId:   The unique ID for an Amplify app. <br/>
        :return: jobSummary:   The summary for the job. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>jobType</i>  The type for the job. If the value is <code>RELEASE</code>, the job was manually released from its source by using the <code>StartJob</code> API. If the value is <code>RETRY</code>, the job was manually retried using the <code>StartJob</code> API. If the value is <code>WEB_HOOK</code>, the job was automatically triggered by webhooks. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>endTime</i>  The end date and time for the job. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i>  The current status for the job. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>startTime</i>  The start date and time for the job. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>commitTime</i>  The commit date and time for the job. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>commitMessage</i>  The commit message from a third-party repository provider for the job. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>commitId</i>  The commit ID from a third-party repository provider for the job. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>jobId</i>  The unique ID for the job. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>jobArn</i>  The Amazon Resource Name (ARN) for the job. <br/>        """
        pass

    def start_job(self, jobType: str, branchName: str, appId: str, jobId: str=None, jobReason: str=None, commitId: str=None, commitMessage: str=None, commitTime: CommitTime=None) -> StartJobResult:
        r""" Starts a new job for a branch of an Amplify app. 

        :param self:
        :param commitTime:   The commit date and time for the job. <br/>commitMessage:   The commit message from a third-party repository provider for the job. <br/>commitId:   The commit ID from a third-party repository provider for the job. <br/>jobReason:   A descriptive reason for starting this job. <br/>jobType:   Describes the type for the job. The job type <code>RELEASE</code> starts a new job with the latest change from the specified branch. This value is available only for apps that are connected to a repository. The job type <code>RETRY</code> retries an existing job. If the job type value is <code>RETRY</code>, the <code>jobId</code> is also required. <br/>jobId:   The unique ID for an existing job. This is required if the value of <code>jobType</code> is <code>RETRY</code>. <br/>branchName:   The branch name for the job. <br/>appId:   The unique ID for an Amplify app. <br/>
        :return: jobSummary:   The summary for the job. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>jobType</i>  The type for the job. If the value is <code>RELEASE</code>, the job was manually released from its source by using the <code>StartJob</code> API. If the value is <code>RETRY</code>, the job was manually retried using the <code>StartJob</code> API. If the value is <code>WEB_HOOK</code>, the job was automatically triggered by webhooks. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>endTime</i>  The end date and time for the job. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i>  The current status for the job. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>startTime</i>  The start date and time for the job. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>commitTime</i>  The commit date and time for the job. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>commitMessage</i>  The commit message from a third-party repository provider for the job. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>commitId</i>  The commit ID from a third-party repository provider for the job. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>jobId</i>  The unique ID for the job. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>jobArn</i>  The Amazon Resource Name (ARN) for the job. <br/>        """
        pass

    def stop_job(self, jobId: str, branchName: str, appId: str) -> StopJobResult:
        r""" Stops a job that is in progress for a branch of an Amplify app. 

        :param self:
        :param jobId:   The unique id for the job. <br/>branchName:   The name for the branch, for the job. <br/>appId:   The unique ID for an Amplify app. <br/>
        :return: jobSummary:   The summary for the job. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>jobType</i>  The type for the job. If the value is <code>RELEASE</code>, the job was manually released from its source by using the <code>StartJob</code> API. If the value is <code>RETRY</code>, the job was manually retried using the <code>StartJob</code> API. If the value is <code>WEB_HOOK</code>, the job was automatically triggered by webhooks. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>endTime</i>  The end date and time for the job. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i>  The current status for the job. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>startTime</i>  The start date and time for the job. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>commitTime</i>  The commit date and time for the job. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>commitMessage</i>  The commit message from a third-party repository provider for the job. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>commitId</i>  The commit ID from a third-party repository provider for the job. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>jobId</i>  The unique ID for the job. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>jobArn</i>  The Amazon Resource Name (ARN) for the job. <br/>        """
        pass

    def tag_resource(self, tags: TagMap, resourceArn: str) -> TagResourceResponse:
        r""" Tags the resource with a tag key and value. 

        :param self:
        :param tags:   The tags used to tag the resource. <br/>resourceArn:   The Amazon Resource Name (ARN) to use to tag a resource. <br/>
        :return:         """
        pass

    def untag_resource(self, tagKeys: List[TagKey], resourceArn: str) -> UntagResourceResponse:
        r""" Untags a resource with a specified Amazon Resource Name (ARN). 

        :param self:
        :param tagKeys:   The tag keys to use to untag a resource. <br/>resourceArn:   The Amazon Resource Name (ARN) to use to untag a resource. <br/>
        :return:         """
        pass

    def update_app(self, appId: str, name: str=None, description: str=None, platform: str=None, iamServiceRoleArn: str=None, environmentVariables: EnvironmentVariables=None, enableBranchAutoBuild: EnableAutoBuild=None, enableBranchAutoDeletion: EnableBranchAutoDeletion=None, enableBasicAuth: EnableBasicAuth=None, basicAuthCredentials: str=None, customRules: List[CustomRule]=None, buildSpec: str=None, customHeaders: str=None, enableAutoBranchCreation: EnableAutoBranchCreation=None, autoBranchCreationPatterns: List[AutoBranchCreationPattern]=None, autoBranchCreationConfig: AutoBranchCreationConfig=None, repository: str=None, oauthToken: str=None, accessToken: str=None) -> UpdateAppResult:
        r""" Updates an existing Amplify app. 

        :param self:
        :param accessToken:   The personal access token for a third-party source control system for an Amplify app. The token is used to create webhook and a read-only deploy key. The token is not stored. <br/>oauthToken:   The OAuth token for a third-party source control system for an Amplify app. The token is used to create a webhook and a read-only deploy key. The OAuth token is not stored. <br/>repository:   The name of the repository for an Amplify app <br/>autoBranchCreationConfig:   The automated branch creation configuration for an Amplify app. :<br/>autoBranchCreationPatterns:   Describes the automated branch creation glob patterns for an Amplify app. <br/>enableAutoBranchCreation:   Enables automated branch creation for an Amplify app. <br/>customHeaders:  The custom HTTP headers for an Amplify app.<br/>buildSpec:   The build specification (build spec) for an Amplify app. <br/>customRules:   The custom redirect and rewrite rules for an Amplify app. <br/>basicAuthCredentials:   The basic authorization credentials for an Amplify app. <br/>enableBasicAuth:   Enables basic authorization for an Amplify app. <br/>enableBranchAutoDeletion:   Automatically disconnects a branch in the Amplify Console when you delete a branch from your Git repository. <br/>enableBranchAutoBuild:   Enables branch auto-building for an Amplify app. <br/>environmentVariables:   The environment variables for an Amplify app. <br/>iamServiceRoleArn:   The AWS Identity and Access Management (IAM) service role for an Amplify app. <br/>platform:   The platform for an Amplify app. <br/>description:   The description for an Amplify app. <br/>name:   The name for an Amplify app. <br/>appId:   The unique ID for an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>pullRequestEnvironmentName</i>  The Amplify environment name for the pull request. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>enablePullRequestPreview</i>  Enables pull request previews for the autocreated branch. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>buildSpec</i>  The build specification (build spec) for the autocreated branch. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>enablePerformanceMode</i> Enables performance mode for the branch. Performance mode optimizes for faster hosting performance by keeping content cached at the edge for a longer interval. When performance mode is enabled, hosting configuration or code changes can take up to 10 minutes to roll out. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>enableBasicAuth</i>  Enables basic authorization for the autocreated branch. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>basicAuthCredentials</i>  The basic authorization credentials for the autocreated branch. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>environmentVariables</i>  The environment variables for the autocreated branch. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>enableAutoBuild</i>  Enables auto building for the autocreated branch. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>framework</i>  The framework for the autocreated branch. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>stage</i>  Describes the current stage for the autocreated branch. <br/>
        :return: app:   Represents the updated Amplify app. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>autoBranchCreationConfig</i>  Describes the automated branch creation configuration for the Amplify app. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>autoBranchCreationConfig</b>:  Describes the automated branch creation configuration for the Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>autoBranchCreationPatterns</i>  Describes the automated branch creation glob patterns for the Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>enableAutoBranchCreation</i>  Enables automated branch creation for the Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>customHeaders</i> Describes the custom HTTP headers for the Amplify app.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>buildSpec</i>  Describes the content of the build specification (build spec) for the Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>productionBranch</i>  Describes the information about a production branch of the Amplify app. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>productionBranch</b>:  Describes the information about a production branch of the Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>customRules</i>  Describes the custom redirect and rewrite rules for the Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>basicAuthCredentials</i>  The basic authorization credentials for branches for the Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>enableBasicAuth</i>  Enables basic authorization for the Amplify app's branches. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>enableBranchAutoDeletion</i>  Automatically disconnect a branch in the Amplify Console when you delete a branch from your Git repository. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>enableBranchAutoBuild</i>  Enables the auto-building of branches for the Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>defaultDomain</i>  The default domain for the Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>environmentVariables</i>  The environment variables for the Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>iamServiceRoleArn</i>  The AWS Identity and Access Management (IAM) service role for the Amazon Resource Name (ARN) of the Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>updateTime</i>  Updates the date and time for the Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createTime</i>  Creates a date and time for the Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>platform</i>  The platform for the Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>repository</i>  The repository for the Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i>  The description for the Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i>  The tag for the Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i>  The name for the Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>appArn</i>  The Amazon Resource Name (ARN) of the Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>appId</i>  The unique ID of the Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>branchName</i>  The branch name for the production branch. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>thumbnailUrl</i>  The thumbnail URL for the production branch. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i>  The status of the production branch. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>lastDeployTime</i>  The last deploy time of the production branch. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>pullRequestEnvironmentName</i>  The Amplify environment name for the pull request. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>enablePullRequestPreview</i>  Enables pull request previews for the autocreated branch. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>buildSpec</i>  The build specification (build spec) for the autocreated branch. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>enablePerformanceMode</i> Enables performance mode for the branch. Performance mode optimizes for faster hosting performance by keeping content cached at the edge for a longer interval. When performance mode is enabled, hosting configuration or code changes can take up to 10 minutes to roll out. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>enableBasicAuth</i>  Enables basic authorization for the autocreated branch. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>basicAuthCredentials</i>  The basic authorization credentials for the autocreated branch. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>environmentVariables</i>  The environment variables for the autocreated branch. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>enableAutoBuild</i>  Enables auto building for the autocreated branch. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>framework</i>  The framework for the autocreated branch. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>stage</i>  Describes the current stage for the autocreated branch. <br/>        """
        pass

    def update_branch(self, branchName: str, appId: str, description: str=None, framework: str=None, stage: str=None, enableNotification: EnableNotification=None, enableAutoBuild: EnableAutoBuild=None, environmentVariables: EnvironmentVariables=None, basicAuthCredentials: str=None, enableBasicAuth: EnableBasicAuth=None, enablePerformanceMode: EnablePerformanceMode=None, buildSpec: str=None, ttl: str=None, displayName: str=None, enablePullRequestPreview: EnablePullRequestPreview=None, pullRequestEnvironmentName: str=None, backendEnvironmentArn: str=None) -> UpdateBranchResult:
        r""" Updates a branch for an Amplify app. 

        :param self:
        :param backendEnvironmentArn:   The Amazon Resource Name (ARN) for a backend environment that is part of an Amplify app. <br/>pullRequestEnvironmentName:   The Amplify environment name for the pull request. <br/>enablePullRequestPreview:   Enables pull request previews for this branch. <br/>displayName:   The display name for a branch. This is used as the default domain prefix. <br/>ttl:   The content Time to Live (TTL) for the website in seconds. <br/>buildSpec:   The build specification (build spec) for the branch. <br/>enablePerformanceMode:  Enables performance mode for the branch. Performance mode optimizes for faster hosting performance by keeping content cached at the edge for a longer interval. When performance mode is enabled, hosting configuration or code changes can take up to 10 minutes to roll out. <br/>enableBasicAuth:   Enables basic authorization for the branch. <br/>basicAuthCredentials:   The basic authorization credentials for the branch. <br/>environmentVariables:   The environment variables for the branch. <br/>enableAutoBuild:   Enables auto building for the branch. <br/>enableNotification:   Enables notifications for the branch. <br/>stage:   Describes the current stage for the branch. <br/>framework:   The framework for the branch. <br/>description:   The description for the branch. <br/>branchName:   The name for the branch. <br/>appId:   The unique ID for an Amplify app. <br/>
        :return: branch:   The branch for an Amplify app, which maps to a third-party repository branch. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>backendEnvironmentArn</i>  The Amazon Resource Name (ARN) for a backend environment that is part of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>sourceBranch</i>  The source branch if the branch is a pull request branch. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>destinationBranch</i>  The destination branch if the branch is a pull request branch. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>pullRequestEnvironmentName</i>  The Amplify environment name for the pull request. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>enablePullRequestPreview</i>  Enables pull request previews for the branch. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>associatedResources</i>  A list of custom resources that are linked to this branch. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ttl</i>  The content Time to Live (TTL) for the website in seconds. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>buildSpec</i>  The build specification (build spec) content for the branch of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>basicAuthCredentials</i>  The basic authorization credentials for a branch of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>thumbnailUrl</i>  The thumbnail URL for the branch of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>enablePerformanceMode</i> Enables performance mode for the branch. Performance mode optimizes for faster hosting performance by keeping content cached at the edge for a longer interval. When performance mode is enabled, hosting configuration or code changes can take up to 10 minutes to roll out. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>enableBasicAuth</i>  Enables basic authorization for a branch of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>totalNumberOfJobs</i>  The total number of jobs that are part of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>activeJobId</i>  The ID of the active job for a branch of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>framework</i>  The framework for a branch of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>customDomains</i>  The custom domains for a branch of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>enableAutoBuild</i>  Enables auto-building on push for a branch of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>environmentVariables</i>  The environment variables specific to a branch of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>updateTime</i>  The last updated date and time for a branch that is part of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createTime</i>  The creation date and time for a branch that is part of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>enableNotification</i>  Enables notifications for a branch that is part of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>displayName</i>  The display name for the branch. This is used as the default domain prefix. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>stage</i>  The current stage for the branch that is part of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i>  The tag for the branch of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i>  The description for the branch that is part of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>branchName</i>  The name for the branch that is part of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>branchArn</i>  The Amazon Resource Name (ARN) for a branch that is part of an Amplify app. <br/>        """
        pass

    def update_domain_association(self, subDomainSettings: List[SubDomainSetting], domainName: str, appId: str, enableAutoSubDomain: EnableAutoSubDomain=None, autoSubDomainCreationPatterns: List[AutoSubDomainCreationPattern]=None, autoSubDomainIAMRole: str=None) -> UpdateDomainAssociationResult:
        r""" Creates a new domain association for an Amplify app.

        :param self:
        :param autoSubDomainIAMRole:   The required AWS Identity and Access Management (IAM) service role for the Amazon Resource Name (ARN) for automatically creating subdomains. <br/>autoSubDomainCreationPatterns:   Sets the branch patterns for automatic subdomain creation. <br/>subDomainSettings:   Describes the settings for the subdomain. <br/>enableAutoSubDomain:   Enables the automated creation of subdomains for branches. <br/>domainName:   The name of the domain. <br/>appId:   The unique ID for an Amplify app. <br/>
        :return: domainAssociation:   Describes a domain association, which associates a custom domain with an Amplify app. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>subDomains</i>  The subdomains for the domain association. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>certificateVerificationDNSRecord</i>  The DNS record for certificate verification. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusReason</i>  The reason for the current status of the domain association. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>domainStatus</i>  The current status of the domain association. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>autoSubDomainIAMRole</i>  The required AWS Identity and Access Management (IAM) service role for the Amazon Resource Name (ARN) for automatically creating subdomains. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>autoSubDomainCreationPatterns</i>  Sets branch patterns for automatic subdomain creation. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>enableAutoSubDomain</i>  Enables the automated creation of subdomains for branches. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>domainName</i>  The name of the domain. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>domainAssociationArn</i>  The Amazon Resource Name (ARN) for the domain association. <br/>        """
        pass

    def update_webhook(self, webhookId: str, branchName: str=None, description: str=None) -> UpdateWebhookResult:
        r""" Updates a webhook. 

        :param self:
        :param description:   The description for a webhook. <br/>branchName:   The name for a branch that is part of an Amplify app. <br/>webhookId:   The unique ID for a webhook. <br/>
        :return: webhook:   Describes a webhook that connects repository events to an Amplify app. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>updateTime</i>  Updates the date and time for a webhook. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createTime</i>  The create date and time for a webhook. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i>  The description for a webhook. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>branchName</i>  The name for a branch that is part of an Amplify app. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>webhookUrl</i>  The URL of the webhook. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>webhookId</i>  The ID of the webhook. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>webhookArn</i>  The Amazon Resource Name (ARN) for the webhook. <br/>        """
        pass





class AmplifyBackend(BaseClient):
    r"""AWS Amplify Admin API"""


    class ListBackendJobsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_backend_jobs` for valid parameters"""
            pass


    class CloneBackendRequest(Mapping):
        pass
    
    class CloneBackendResponse(Mapping):
        pass
    
    class CreateBackendRequest(Mapping):
        pass
    
    class CreateBackendResponse(Mapping):
        pass
    
    class ResourceConfig(Mapping):
        pass
    
    class CreateBackendAPIRequest(Mapping):
        pass
    
    class CreateBackendAPIResponse(Mapping):
        pass
    
    class BackendAPIResourceConfig(Mapping):
        pass
    
    class CreateBackendAuthRequest(Mapping):
        pass
    
    class CreateBackendAuthResponse(Mapping):
        pass
    
    class CreateBackendAuthResourceConfig(Mapping):
        pass
    
    class CreateBackendConfigRequest(Mapping):
        pass
    
    class CreateBackendConfigResponse(Mapping):
        pass
    
    class CreateTokenRequest(Mapping):
        pass
    
    class CreateTokenResponse(Mapping):
        pass
    
    class DeleteBackendRequest(Mapping):
        pass
    
    class DeleteBackendResponse(Mapping):
        pass
    
    class DeleteBackendAPIRequest(Mapping):
        pass
    
    class DeleteBackendAPIResponse(Mapping):
        pass
    
    class DeleteBackendAuthRequest(Mapping):
        pass
    
    class DeleteBackendAuthResponse(Mapping):
        pass
    
    class DeleteTokenRequest(Mapping):
        pass
    
    class DeleteTokenResponse(Mapping):
        pass
    
    class GenerateBackendAPIModelsRequest(Mapping):
        pass
    
    class GenerateBackendAPIModelsResponse(Mapping):
        pass
    
    class GetBackendRequest(Mapping):
        pass
    
    class GetBackendResponse(Mapping):
        pass
    
    class GetBackendAPIRequest(Mapping):
        pass
    
    class GetBackendAPIResponse(Mapping):
        pass
    
    class GetBackendAPIModelsRequest(Mapping):
        pass
    
    class GetBackendAPIModelsResponse(Mapping):
        pass
    
    class GetBackendAuthRequest(Mapping):
        pass
    
    class GetBackendAuthResponse(Mapping):
        pass
    
    class GetBackendJobRequest(Mapping):
        pass
    
    class GetBackendJobResponse(Mapping):
        pass
    
    class GetTokenRequest(Mapping):
        pass
    
    class GetTokenResponse(Mapping):
        pass
    
    class ImportBackendAuthRequest(Mapping):
        pass
    
    class ImportBackendAuthResponse(Mapping):
        pass
    
    class ListBackendJobsRequest(Mapping):
        pass
    
    class ListBackendJobsResponse(Mapping):
        pass
    
    class RemoveAllBackendsRequest(Mapping):
        pass
    
    class RemoveAllBackendsResponse(Mapping):
        pass
    
    class __boolean(object):
        pass
    
    class RemoveBackendConfigRequest(Mapping):
        pass
    
    class RemoveBackendConfigResponse(Mapping):
        pass
    
    class UpdateBackendAPIRequest(Mapping):
        pass
    
    class UpdateBackendAPIResponse(Mapping):
        pass
    
    class UpdateBackendAuthRequest(Mapping):
        pass
    
    class UpdateBackendAuthResponse(Mapping):
        pass
    
    class UpdateBackendAuthResourceConfig(Mapping):
        pass
    
    class UpdateBackendConfigRequest(Mapping):
        pass
    
    class UpdateBackendConfigResponse(Mapping):
        pass
    
    class LoginAuthConfigReqObj(Mapping):
        pass
    
    class UpdateBackendJobRequest(Mapping):
        pass
    
    class UpdateBackendJobResponse(Mapping):
        pass
    
    def clone_backend(self, TargetEnvironmentName: str, BackendEnvironmentName: str, AppId: str) -> CloneBackendResponse:
        r"""This operation clones an existing backend.

        :param self:
        :param TargetEnvironmentName:  The name of the destination backend environment to be created.<br/>BackendEnvironmentName:  The name of the backend environment.<br/>AppId:  The app ID.<br/>
        :return: Status:  The current status of the request.<br/>Operation:  The name of the operation.<br/>JobId:  The ID for the job.<br/>Error:  If the request fails, this error is returned.<br/>BackendEnvironmentName:  The name of the backend environment.<br/>AppId:  The app ID.<br/>        """
        pass

    def create_backend(self, BackendEnvironmentName: str, AppName: str, AppId: str, ResourceConfig: ResourceConfig=None, ResourceName: str=None) -> CreateBackendResponse:
        r"""This operation creates a backend for an Amplify app. Backends are automatically created at the time of app creation.

        :param self:
        :param BackendEnvironmentName:  The name of the backend environment.<br/>AppName:  The name of the app.<br/>AppId:  The app ID.<br/>The resource configuration for the create backend request.:
        :return: Status:  The current status of the request.<br/>Operation:  The name of the operation.<br/>JobId:  The ID for the job.<br/>Error:  If the request fails, this error is returned.<br/>BackendEnvironmentName:  The name of the backend environment.<br/>AppId:  The app ID.<br/>        """
        pass

    def create_backend_api(self, ResourceName: str, ResourceConfig: BackendAPIResourceConfig, BackendEnvironmentName: str, AppId: str) -> CreateBackendAPIResponse:
        r"""Creates a new backend API resource.

        :param self:
        :param ResourceName:  The name of this resource.<br/>ResourceConfig:  The resource configuration for this request.:<br/>BackendEnvironmentName:  The name of the backend environment.<br/>AppId:  The app ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransformSchema</i> The definition of the data model in the annotated transform of the GraphQL schema.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Service</i> The service used to provision and interact with the data model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultAuthType</i> The default authentication type for interacting with the configured data models in your Amplify project.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DefaultAuthType</b>: The default authentication type for interacting with the configured data models in your Amplify project.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConflictResolution</i> The conflict resolution strategy for your data stored in the data models.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ConflictResolution</b>: The conflict resolution strategy for your data stored in the data models.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApiName</i> The API name used to interact with the data model, configured as a part of the amplify project.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdditionalAuthTypes</i> Additional authentication methods used to interact with your data models.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ResolutionStrategy</i> The strategy for conflict resolution.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Mode</i> Describes the authentication mode.<br/>Describes settings for the authentication mode.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Settings</b>: Describes settings for the authentication mode.
        :return: Status:  The current status of the request.<br/>Operation:  The name of the operation.<br/>JobId:  The ID for the job.<br/>Error:  If the request fails, this error is returned.<br/>BackendEnvironmentName:  The name of the backend environment.<br/>AppId:  The app ID.<br/>        """
        pass

    def create_backend_auth(self, ResourceName: str, ResourceConfig: CreateBackendAuthResourceConfig, BackendEnvironmentName: str, AppId: str) -> CreateBackendAuthResponse:
        r"""Creates a new backend authentication resource.

        :param self:
        :param ResourceName:  The name of this resource.<br/>ResourceConfig:  The resource configuration for this request object.:<br/>BackendEnvironmentName:  The name of the backend environment.<br/>AppId:  The app ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserPoolConfigs</i> Describes authentication configuration for the Amazon Cognito user pool, provisioned as a part of your auth resource in the Amplify project.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>UserPoolConfigs</b>: Describes authentication configuration for the Amazon Cognito user pool, provisioned as a part of your auth resource in the Amplify project.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Service</i> Defines the service name to use when configuring an authentication resource in your Amplify project.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IdentityPoolConfigs</i> Describes the authorization configuration for the Amazon Cognito identity pool, provisioned as a part of your auth resource in the Amplify project.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>IdentityPoolConfigs</b>: Describes the authorization configuration for the Amazon Cognito identity pool, provisioned as a part of your auth resource in the Amplify project.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AuthResources</i> Defines whether you want to configure only authentication or both authentication and authorization settings.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UnauthenticatedLogin</i> Set to true or false based on whether you want to enable guest authorization to your Amplify app.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IdentityPoolName</i> Name of the Amazon Cognito identity pool used for authorization.<br/>Describes the forgotten password policy for your Amazon Cognito user pool, configured as a part of your Amplify project.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ForgotPassword</b>: Describes the forgotten password policy for your Amazon Cognito user pool, configured as a part of your Amplify project.
        :return: Status:  The current status of the request.<br/>Operation:  The name of the operation.<br/>JobId:  The ID for the job.<br/>Error:  If the request fails, this error is returned.<br/>BackendEnvironmentName:  The name of the backend environment.<br/>AppId:  The app ID.<br/>        """
        pass

    def create_backend_config(self, AppId: str, BackendManagerAppId: str=None) -> CreateBackendConfigResponse:
        r"""Creates a config object for a backend.

        :param self:
        :param BackendManagerAppId:  The app ID for the backend manager.<br/>AppId:  The app ID.<br/>
        :return: Status:  The current status of the request.<br/>JobId:  The ID for the job.<br/>BackendEnvironmentName:  The name of the backend environment.<br/>AppId:  The app ID.<br/>        """
        pass

    def create_token(self, AppId: str) -> CreateTokenResponse:
        r"""Generates a one-time challenge code to authenticate a user into your Amplify Admin UI.

        :param self:
        :param AppId:  The app ID.<br/>
        :return: Ttl:  The expiry time for the one-time generated token code.<br/>SessionId:  A unique ID provided when creating a new challenge token.<br/>ChallengeCode:  One-time challenge code for authenticating into the Amplify Admin UI.<br/>AppId:  The app ID.<br/>        """
        pass

    def delete_backend(self, BackendEnvironmentName: str, AppId: str) -> DeleteBackendResponse:
        r"""Removes an existing environment from your Amplify project.

        :param self:
        :param BackendEnvironmentName:  The name of the backend environment.<br/>AppId:  The app ID.<br/>
        :return: Status:  The current status of the request.<br/>Operation:  The name of the operation.<br/>JobId:  The ID for the job.<br/>Error:  If the request fails, this error is returned.<br/>BackendEnvironmentName:  The name of the backend environment.<br/>AppId:  The app ID.<br/>        """
        pass

    def delete_backend_api(self, ResourceName: str, BackendEnvironmentName: str, AppId: str, ResourceConfig: BackendAPIResourceConfig=None) -> DeleteBackendAPIResponse:
        r"""Deletes an existing backend API resource.

        :param self:
        :param ResourceName:  The name of this resource.<br/>ResourceConfig:  Defines the resource configuration for the data model in your Amplify project.:<br/>BackendEnvironmentName:  The name of the backend environment.<br/>AppId:  The app ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransformSchema</i> The definition of the data model in the annotated transform of the GraphQL schema.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Service</i> The service used to provision and interact with the data model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultAuthType</i> The default authentication type for interacting with the configured data models in your Amplify project.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DefaultAuthType</b>: The default authentication type for interacting with the configured data models in your Amplify project.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConflictResolution</i> The conflict resolution strategy for your data stored in the data models.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ConflictResolution</b>: The conflict resolution strategy for your data stored in the data models.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApiName</i> The API name used to interact with the data model, configured as a part of the amplify project.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdditionalAuthTypes</i> Additional authentication methods used to interact with your data models.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ResolutionStrategy</i> The strategy for conflict resolution.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Mode</i> Describes the authentication mode.<br/>Describes settings for the authentication mode.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Settings</b>: Describes settings for the authentication mode.
        :return: Status:  The current status of the request.<br/>Operation:  The name of the operation.<br/>JobId:  The ID for the job.<br/>Error:  If the request fails, this error is returned.<br/>BackendEnvironmentName:  The name of the backend environment.<br/>AppId:  The app ID.<br/>        """
        pass

    def delete_backend_auth(self, ResourceName: str, BackendEnvironmentName: str, AppId: str) -> DeleteBackendAuthResponse:
        r"""Deletes an existing backend authentication resource.

        :param self:
        :param ResourceName:  The name of this resource.<br/>BackendEnvironmentName:  The name of the backend environment.<br/>AppId:  The app ID.<br/>
        :return: Status:  The current status of the request.<br/>Operation:  The name of the operation.<br/>JobId:  The ID for the job.<br/>Error:  If the request fails, this error is returned.<br/>BackendEnvironmentName:  The name of the backend environment.<br/>AppId:  The app ID.<br/>        """
        pass

    def delete_token(self, SessionId: str, AppId: str) -> DeleteTokenResponse:
        r"""Deletes the challenge token based on the given appId and sessionId.

        :param self:
        :param SessionId:  The session ID.<br/>AppId:  The app ID.<br/>
        :return: IsSuccess:  Indicates whether the request succeeded or failed.<br/>        """
        pass

    def generate_backend_api_models(self, ResourceName: str, BackendEnvironmentName: str, AppId: str) -> GenerateBackendAPIModelsResponse:
        r"""Generates a model schema for an existing backend API resource.

        :param self:
        :param ResourceName:  The name of this resource.<br/>BackendEnvironmentName:  The name of the backend environment.<br/>AppId:  The app ID.<br/>
        :return: Status:  The current status of the request.<br/>Operation:  The name of the operation.<br/>JobId:  The ID for the job.<br/>Error:  If the request fails, this error is returned.<br/>BackendEnvironmentName:  The name of the backend environment.<br/>AppId:  The app ID.<br/>        """
        pass

    def get_backend(self, AppId: str, BackendEnvironmentName: str=None) -> GetBackendResponse:
        r"""Provides project-level details for your Amplify UI project.

        :param self:
        :param BackendEnvironmentName:  The name of the backend environment.<br/>AppId:  The app ID.<br/>
        :return: Error:  If the request failed, this is the returned error.<br/>BackendEnvironmentName:  The name of the backend environment.<br/>BackendEnvironmentList:  A list of backend environments in an array.<br/>AppName:  The name of the app.<br/>AppId:  The app ID.<br/>AmplifyMetaConfig:  A stringified version of the current configs for your Amplify project.<br/>        """
        pass

    def get_backend_api(self, ResourceName: str, BackendEnvironmentName: str, AppId: str, ResourceConfig: BackendAPIResourceConfig=None) -> GetBackendAPIResponse:
        r"""Gets the details for a backend API.

        :param self:
        :param ResourceName:  The name of this resource.<br/>ResourceConfig:  Defines the resource configuration for the data model in your Amplify project.:<br/>BackendEnvironmentName:  The name of the backend environment.<br/>AppId:  The app ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransformSchema</i> The definition of the data model in the annotated transform of the GraphQL schema.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Service</i> The service used to provision and interact with the data model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultAuthType</i> The default authentication type for interacting with the configured data models in your Amplify project.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DefaultAuthType</b>: The default authentication type for interacting with the configured data models in your Amplify project.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConflictResolution</i> The conflict resolution strategy for your data stored in the data models.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ConflictResolution</b>: The conflict resolution strategy for your data stored in the data models.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApiName</i> The API name used to interact with the data model, configured as a part of the amplify project.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdditionalAuthTypes</i> Additional authentication methods used to interact with your data models.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ResolutionStrategy</i> The strategy for conflict resolution.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Mode</i> Describes the authentication mode.<br/>Describes settings for the authentication mode.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Settings</b>: Describes settings for the authentication mode.
        :return: ResourceName:  The name of this resource.<br/>ResourceConfig:  The resource configuration for this response object.:<br/>Error:  If the request fails, this error is returned.<br/>BackendEnvironmentName:  The name of the backend environment.<br/>AppId:  The app ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransformSchema</i> The definition of the data model in the annotated transform of the GraphQL schema.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Service</i> The service used to provision and interact with the data model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultAuthType</i> The default authentication type for interacting with the configured data models in your Amplify project.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DefaultAuthType</b>: The default authentication type for interacting with the configured data models in your Amplify project.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConflictResolution</i> The conflict resolution strategy for your data stored in the data models.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ConflictResolution</b>: The conflict resolution strategy for your data stored in the data models.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApiName</i> The API name used to interact with the data model, configured as a part of the amplify project.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdditionalAuthTypes</i> Additional authentication methods used to interact with your data models.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ResolutionStrategy</i> The strategy for conflict resolution.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Mode</i> Describes the authentication mode.<br/>Describes settings for the authentication mode.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Settings</b>: Describes settings for the authentication mode.        """
        pass

    def get_backend_api_models(self, ResourceName: str, BackendEnvironmentName: str, AppId: str) -> GetBackendAPIModelsResponse:
        r"""Generates a model schema for existing backend API resource.

        :param self:
        :param ResourceName:  The name of this resource.<br/>BackendEnvironmentName:  The name of the backend environment.<br/>AppId:  The app ID.<br/>
        :return: Status:  The current status of the request.<br/>Models:  Stringified JSON of the datastore model.<br/>        """
        pass

    def get_backend_auth(self, ResourceName: str, BackendEnvironmentName: str, AppId: str) -> GetBackendAuthResponse:
        r"""Gets a backend auth details.

        :param self:
        :param ResourceName:  The name of this resource.<br/>BackendEnvironmentName:  The name of the backend environment.<br/>AppId:  The app ID.<br/>
        :return: ResourceName:  The name of this resource.<br/>ResourceConfig:  The resource configuration for authorization requests to the backend of your Amplify project.:<br/>Error:  If the request fails, this error is returned.<br/>BackendEnvironmentName:  The name of the backend environment.<br/>AppId:  The app ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserPoolConfigs</i> Describes authentication configuration for the Amazon Cognito user pool, provisioned as a part of your auth resource in the Amplify project.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>UserPoolConfigs</b>: Describes authentication configuration for the Amazon Cognito user pool, provisioned as a part of your auth resource in the Amplify project.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Service</i> Defines the service name to use when configuring an authentication resource in your Amplify project.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IdentityPoolConfigs</i> Describes the authorization configuration for the Amazon Cognito identity pool, provisioned as a part of your auth resource in the Amplify project.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>IdentityPoolConfigs</b>: Describes the authorization configuration for the Amazon Cognito identity pool, provisioned as a part of your auth resource in the Amplify project.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AuthResources</i> Defines whether you want to configure only authentication or both authentication and authorization settings.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UnauthenticatedLogin</i> Set to true or false based on whether you want to enable guest authorization to your Amplify app.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IdentityPoolName</i> Name of the Amazon Cognito identity pool used for authorization.<br/>Describes the forgotten password policy for your Amazon Cognito user pool, configured as a part of your Amplify project.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ForgotPassword</b>: Describes the forgotten password policy for your Amazon Cognito user pool, configured as a part of your Amplify project.        """
        pass

    def get_backend_job(self, JobId: str, BackendEnvironmentName: str, AppId: str) -> GetBackendJobResponse:
        r"""Returns information about a specific job.

        :param self:
        :param JobId:  The ID for the job.<br/>BackendEnvironmentName:  The name of the backend environment.<br/>AppId:  The app ID.<br/>
        :return: UpdateTime:  The time when the job was last updated.<br/>Status:  The current status of the request.<br/>Operation:  The name of the operation.<br/>JobId:  The ID for the job.<br/>Error:  If the request fails, this error is returned.<br/>CreateTime:  The time when the job was created.<br/>BackendEnvironmentName:  The name of the backend environment.<br/>AppId:  The app ID.<br/>        """
        pass

    def get_token(self, SessionId: str, AppId: str) -> GetTokenResponse:
        r"""Gets the challenge token based on the given appId and sessionId.

        :param self:
        :param SessionId:  The session ID.<br/>AppId:  The app ID.<br/>
        :return: Ttl:  The expiry time for the one-time generated token code.<br/>SessionId:  A unique ID provided when creating a new challenge token.<br/>ChallengeCode:  The one-time challenge code for authenticating into the Amplify Admin UI.<br/>AppId:  The app ID.<br/>        """
        pass

    def import_backend_auth(self, WebClientId: str, UserPoolId: str, NativeClientId: str, BackendEnvironmentName: str, AppId: str, IdentityPoolId: str=None) -> ImportBackendAuthResponse:
        r"""Imports an existing backend authentication resource.

        :param self:
        :param WebClientId:  The ID of the Amazon Cognito web client.<br/>UserPoolId:  The ID of the Amazon Cognito user pool.<br/>NativeClientId:  The ID of the Amazon Cognito native client.<br/>IdentityPoolId:  The ID of the Amazon Cognito identity pool.<br/>BackendEnvironmentName:  The name of the backend environment.<br/>AppId:  The app ID.<br/>
        :return: Status:  The current status of the request.<br/>Operation:  The name of the operation.<br/>JobId:  The ID for the job.<br/>Error:  If the request fails, this error is returned.<br/>BackendEnvironmentName:  The name of the backend environment.<br/>AppId:  The app ID.<br/>        """
        pass

    def list_backend_jobs(self, BackendEnvironmentName: str, AppId: str, JobId: str=None, MaxResults: int=None, NextToken: str=None, Operation: str=None, Status: str=None) -> ListBackendJobsResponse:
        r"""Lists the jobs for the backend of an Amplify app.

        :param self:
        :param Status:  Filters the list of response objects to include only those with the specified status.<br/>Operation:  Filters the list of response objects to include only those with the specified operation name.<br/>NextToken:  The token for the next set of results.<br/>MaxResults:  The maximum number of results that you want in the response.<br/>JobId:  The ID for the job.<br/>BackendEnvironmentName:  The name of the backend environment.<br/>AppId:  The app ID.<br/>
        :return: NextToken:  The token for the next set of results.<br/>Jobs:  An array of jobs and their properties.<br/>        """
        pass

    def remove_all_backends(self, AppId: str, CleanAmplifyApp: __boolean=None) -> RemoveAllBackendsResponse:
        r"""Removes all backend environments from your Amplify project.

        :param self:
        :param CleanAmplifyApp:  Cleans up the Amplify Console app if this value is set to true.<br/>AppId:  The app ID.<br/>
        :return: Status:  The current status of the request.<br/>Operation:  The name of the operation.<br/>JobId:  The ID for the job.<br/>Error:  If the request fails, this error is returned.<br/>AppId:  The app ID.<br/>        """
        pass

    def remove_backend_config(self, AppId: str) -> RemoveBackendConfigResponse:
        r"""Removes the AWS resources required to access the Amplify Admin UI.

        :param self:
        :param AppId:  The app ID.<br/>
        :return: Error:  If the request fails, this error is returned.<br/>        """
        pass

    def update_backend_api(self, ResourceName: str, BackendEnvironmentName: str, AppId: str, ResourceConfig: BackendAPIResourceConfig=None) -> UpdateBackendAPIResponse:
        r"""Updates an existing backend API resource.

        :param self:
        :param ResourceName:  The name of this resource.<br/>ResourceConfig:  Defines the resource configuration for the data model in your Amplify project.:<br/>BackendEnvironmentName:  The name of the backend environment.<br/>AppId:  The app ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransformSchema</i> The definition of the data model in the annotated transform of the GraphQL schema.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Service</i> The service used to provision and interact with the data model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultAuthType</i> The default authentication type for interacting with the configured data models in your Amplify project.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DefaultAuthType</b>: The default authentication type for interacting with the configured data models in your Amplify project.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConflictResolution</i> The conflict resolution strategy for your data stored in the data models.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ConflictResolution</b>: The conflict resolution strategy for your data stored in the data models.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApiName</i> The API name used to interact with the data model, configured as a part of the amplify project.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdditionalAuthTypes</i> Additional authentication methods used to interact with your data models.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ResolutionStrategy</i> The strategy for conflict resolution.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Mode</i> Describes the authentication mode.<br/>Describes settings for the authentication mode.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Settings</b>: Describes settings for the authentication mode.
        :return: Status:  The current status of the request.<br/>Operation:  The name of the operation.<br/>JobId:  The ID for the job.<br/>Error:  If the request fails, this error is returned.<br/>BackendEnvironmentName:  The name of the backend environment.<br/>AppId:  The app ID.<br/>        """
        pass

    def update_backend_auth(self, ResourceName: str, ResourceConfig: UpdateBackendAuthResourceConfig, BackendEnvironmentName: str, AppId: str) -> UpdateBackendAuthResponse:
        r"""Updates an existing backend authentication resource.

        :param self:
        :param ResourceName:  The name of this resource.<br/>ResourceConfig:  The resource configuration for this request object.:<br/>BackendEnvironmentName:  The name of the backend environment.<br/>AppId:  The app ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserPoolConfigs</i> Describes the authentication configuration for the Amazon Cognito user pool, provisioned as a part of your auth resource in the Amplify project.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>UserPoolConfigs</b>: Describes the authentication configuration for the Amazon Cognito user pool, provisioned as a part of your auth resource in the Amplify project.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Service</i> Defines the service name to use when configuring an authentication resource in your Amplify project.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IdentityPoolConfigs</i> Describes the authorization configuration for the Amazon Cognito identity pool, provisioned as a part of your auth resource in the Amplify project.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>IdentityPoolConfigs</b>: Describes the authorization configuration for the Amazon Cognito identity pool, provisioned as a part of your auth resource in the Amplify project.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AuthResources</i> Defines the service name to use when configuring an authentication resource in your Amplify project.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UnauthenticatedLogin</i> A boolean value which can be set to allow or disallow guest-level authorization into your Amplify app.<br/>Describes the forgot password policy for your Amazon Cognito user pool, configured as a part of your Amplify project.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ForgotPassword</b>: Describes the forgot password policy for your Amazon Cognito user pool, configured as a part of your Amplify project.
        :return: Status:  The current status of the request.<br/>Operation:  The name of the operation.<br/>JobId:  The ID for the job.<br/>Error:  If the request fails, this error is returned.<br/>BackendEnvironmentName:  The name of the backend environment.<br/>AppId:  The app ID.<br/>        """
        pass

    def update_backend_config(self, AppId: str, LoginAuthConfig: LoginAuthConfigReqObj=None) -> UpdateBackendConfigResponse:
        r"""Updates the AWS resources required to access the Amplify Admin UI.

        :param self:
        :param LoginAuthConfig:  Describes the Amazon Cognito configuration for Admin UI access.:<br/>AppId:  The app ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AwsUserPoolsWebClientId</i> The web client ID for the Amazon Cognito user pools.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AwsUserPoolsId</i> The Amazon Cognito user pool ID used for Amplify Admin UI login authentication.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AwsCognitoRegion</i> The AWS Region for the Amplify Admin UI login.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AwsCognitoIdentityPoolId</i> The Amazon Cognito identity pool ID used for the Amplify Admin UI login authorization.<br/>
        :return: LoginAuthConfig:  Describes the Amazon Cognito configurations for the Admin UI auth resource to log in with.:<br/>Error:  If the request fails, this error is returned.<br/>BackendManagerAppId:  The app ID for the backend manager.<br/>AppId:  The app ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AwsUserPoolsWebClientId</i> The web client ID for the Amazon Cognito user pools.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AwsUserPoolsId</i> The Amazon Cognito user pool ID used for Amplify Admin UI login authentication.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AwsCognitoRegion</i> The AWS Region for the Amplify Admin UI login.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AwsCognitoIdentityPoolId</i> The Amazon Cognito identity pool ID used for the Amplify Admin UI login authorization.<br/>        """
        pass

    def update_backend_job(self, JobId: str, BackendEnvironmentName: str, AppId: str, Operation: str=None, Status: str=None) -> UpdateBackendJobResponse:
        r"""Updates a specific job.

        :param self:
        :param Status:  Filters the list of response objects to include only those with the specified status.<br/>Operation:  Filters the list of response objects to only include those with the specified operation name.<br/>JobId:  The ID for the job.<br/>BackendEnvironmentName:  The name of the backend environment.<br/>AppId:  The app ID.<br/>
        :return: UpdateTime:  The time when the job was last updated.<br/>Status:  The current status of the request.<br/>Operation:  The name of the operation.<br/>JobId:  The ID for the job.<br/>Error:  If the request fails, this error is returned.<br/>CreateTime:  The time when the job was created.<br/>BackendEnvironmentName:  The name of the backend environment.<br/>AppId:  The app ID.<br/>        """
        pass





class APIGateway(BaseClient):
    r"""<fullname>Amazon API Gateway</fullname> Amazon API Gateway helps developers deliver robust, secure, and scalable mobile and web application back ends. API Gateway allows developers to securely connect mobile and web applications to APIs that run on AWS Lambda, Amazon EC2, or other publicly addressable web services that are hosted outside of AWS."""


    class GetApiKeysPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_api_keys` for valid parameters"""
            pass
    class GetBasePathMappingsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_base_path_mappings` for valid parameters"""
            pass
    class GetClientCertificatesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_client_certificates` for valid parameters"""
            pass
    class GetDeploymentsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_deployments` for valid parameters"""
            pass
    class GetDomainNamesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_domain_names` for valid parameters"""
            pass
    class GetModelsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_models` for valid parameters"""
            pass
    class GetResourcesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_resources` for valid parameters"""
            pass
    class GetRestApisPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_rest_apis` for valid parameters"""
            pass
    class GetUsagePaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_usage` for valid parameters"""
            pass
    class GetUsagePlansPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_usage_plans` for valid parameters"""
            pass
    class GetUsagePlanKeysPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_usage_plan_keys` for valid parameters"""
            pass
    class GetVpcLinksPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_vpc_links` for valid parameters"""
            pass
    class GetAuthorizersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_authorizers` for valid parameters"""
            pass
    class GetDocumentationPartsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_documentation_parts` for valid parameters"""
            pass
    class GetDocumentationVersionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_documentation_versions` for valid parameters"""
            pass
    class GetGatewayResponsesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_gateway_responses` for valid parameters"""
            pass
    class GetRequestValidatorsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_request_validators` for valid parameters"""
            pass
    class GetSdkTypesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_sdk_types` for valid parameters"""
            pass


    class CreateApiKeyRequest(Mapping):
        pass
    
    class ApiKey(Mapping):
        pass
    
    class Boolean(object):
        pass
    
    class StageKey(Mapping):
        pass
    
    class MapOfStringToString(object):
        pass
    
    class CreateAuthorizerRequest(Mapping):
        pass
    
    class Authorizer(Mapping):
        pass
    
    class ProviderARN(object):
        pass
    
    class CreateBasePathMappingRequest(Mapping):
        pass
    
    class BasePathMapping(Mapping):
        pass
    
    class CreateDeploymentRequest(Mapping):
        pass
    
    class Deployment(Mapping):
        pass
    
    class NullableBoolean(object):
        pass
    
    class DeploymentCanarySettings(Mapping):
        pass
    
    class CreateDocumentationPartRequest(Mapping):
        pass
    
    class DocumentationPart(Mapping):
        pass
    
    class DocumentationPartLocation(Mapping):
        pass
    
    class CreateDocumentationVersionRequest(Mapping):
        pass
    
    class DocumentationVersion(Mapping):
        pass
    
    class CreateDomainNameRequest(Mapping):
        pass
    
    class DomainName(Mapping):
        pass
    
    class EndpointConfiguration(Mapping):
        pass
    
    class MutualTlsAuthenticationInput(Mapping):
        pass
    
    class CreateModelRequest(Mapping):
        pass
    
    class Model(Mapping):
        pass
    
    class CreateRequestValidatorRequest(Mapping):
        pass
    
    class RequestValidator(Mapping):
        pass
    
    class CreateResourceRequest(Mapping):
        pass
    
    class Resource(Mapping):
        pass
    
    class CreateRestApiRequest(Mapping):
        pass
    
    class RestApi(Mapping):
        pass
    
    class String(object):
        pass
    
    class CreateStageRequest(Mapping):
        pass
    
    class Stage(Mapping):
        pass
    
    class CanarySettings(Mapping):
        pass
    
    class CreateUsagePlanRequest(Mapping):
        pass
    
    class UsagePlan(Mapping):
        pass
    
    class ApiStage(Mapping):
        pass
    
    class ThrottleSettings(Mapping):
        pass
    
    class QuotaSettings(Mapping):
        pass
    
    class CreateUsagePlanKeyRequest(Mapping):
        pass
    
    class UsagePlanKey(Mapping):
        pass
    
    class CreateVpcLinkRequest(Mapping):
        pass
    
    class VpcLink(Mapping):
        pass
    
    class DeleteApiKeyRequest(Mapping):
        pass
    
    class DeleteAuthorizerRequest(Mapping):
        pass
    
    class DeleteBasePathMappingRequest(Mapping):
        pass
    
    class DeleteClientCertificateRequest(Mapping):
        pass
    
    class DeleteDeploymentRequest(Mapping):
        pass
    
    class DeleteDocumentationPartRequest(Mapping):
        pass
    
    class DeleteDocumentationVersionRequest(Mapping):
        pass
    
    class DeleteDomainNameRequest(Mapping):
        pass
    
    class DeleteGatewayResponseRequest(Mapping):
        pass
    
    class DeleteIntegrationRequest(Mapping):
        pass
    
    class DeleteIntegrationResponseRequest(Mapping):
        pass
    
    class DeleteMethodRequest(Mapping):
        pass
    
    class DeleteMethodResponseRequest(Mapping):
        pass
    
    class DeleteModelRequest(Mapping):
        pass
    
    class DeleteRequestValidatorRequest(Mapping):
        pass
    
    class DeleteResourceRequest(Mapping):
        pass
    
    class DeleteRestApiRequest(Mapping):
        pass
    
    class DeleteStageRequest(Mapping):
        pass
    
    class DeleteUsagePlanRequest(Mapping):
        pass
    
    class DeleteUsagePlanKeyRequest(Mapping):
        pass
    
    class DeleteVpcLinkRequest(Mapping):
        pass
    
    class FlushStageAuthorizersCacheRequest(Mapping):
        pass
    
    class FlushStageCacheRequest(Mapping):
        pass
    
    class GenerateClientCertificateRequest(Mapping):
        pass
    
    class ClientCertificate(Mapping):
        pass
    
    class GetAccountRequest(Mapping):
        pass
    
    class Account(Mapping):
        pass
    
    class GetApiKeyRequest(Mapping):
        pass
    
    class GetApiKeysRequest(Mapping):
        pass
    
    class ApiKeys(Mapping):
        pass
    
    class GetAuthorizerRequest(Mapping):
        pass
    
    class GetAuthorizersRequest(Mapping):
        pass
    
    class Authorizers(Mapping):
        pass
    
    class GetBasePathMappingRequest(Mapping):
        pass
    
    class GetBasePathMappingsRequest(Mapping):
        pass
    
    class BasePathMappings(Mapping):
        pass
    
    class GetClientCertificateRequest(Mapping):
        pass
    
    class GetClientCertificatesRequest(Mapping):
        pass
    
    class ClientCertificates(Mapping):
        pass
    
    class GetDeploymentRequest(Mapping):
        pass
    
    class GetDeploymentsRequest(Mapping):
        pass
    
    class Deployments(Mapping):
        pass
    
    class GetDocumentationPartRequest(Mapping):
        pass
    
    class GetDocumentationPartsRequest(Mapping):
        pass
    
    class DocumentationParts(Mapping):
        pass
    
    class GetDocumentationVersionRequest(Mapping):
        pass
    
    class GetDocumentationVersionsRequest(Mapping):
        pass
    
    class DocumentationVersions(Mapping):
        pass
    
    class GetDomainNameRequest(Mapping):
        pass
    
    class GetDomainNamesRequest(Mapping):
        pass
    
    class DomainNames(Mapping):
        pass
    
    class GetExportRequest(Mapping):
        pass
    
    class ExportResponse(Mapping):
        pass
    
    class GetGatewayResponseRequest(Mapping):
        pass
    
    class GatewayResponse(Mapping):
        pass
    
    class GetGatewayResponsesRequest(Mapping):
        pass
    
    class GatewayResponses(Mapping):
        pass
    
    class GetIntegrationRequest(Mapping):
        pass
    
    class Integration(Mapping):
        pass
    
    class GetIntegrationResponseRequest(Mapping):
        pass
    
    class IntegrationResponse(Mapping):
        pass
    
    class GetMethodRequest(Mapping):
        pass
    
    class Method(Mapping):
        pass
    
    class GetMethodResponseRequest(Mapping):
        pass
    
    class MethodResponse(Mapping):
        pass
    
    class GetModelRequest(Mapping):
        pass
    
    class GetModelTemplateRequest(Mapping):
        pass
    
    class Template(Mapping):
        pass
    
    class GetModelsRequest(Mapping):
        pass
    
    class Models(Mapping):
        pass
    
    class GetRequestValidatorRequest(Mapping):
        pass
    
    class GetRequestValidatorsRequest(Mapping):
        pass
    
    class RequestValidators(Mapping):
        pass
    
    class GetResourceRequest(Mapping):
        pass
    
    class GetResourcesRequest(Mapping):
        pass
    
    class Resources(Mapping):
        pass
    
    class GetRestApiRequest(Mapping):
        pass
    
    class GetRestApisRequest(Mapping):
        pass
    
    class RestApis(Mapping):
        pass
    
    class GetSdkRequest(Mapping):
        pass
    
    class SdkResponse(Mapping):
        pass
    
    class GetSdkTypeRequest(Mapping):
        pass
    
    class SdkType(Mapping):
        pass
    
    class GetSdkTypesRequest(Mapping):
        pass
    
    class SdkTypes(Mapping):
        pass
    
    class GetStageRequest(Mapping):
        pass
    
    class GetStagesRequest(Mapping):
        pass
    
    class Stages(Mapping):
        pass
    
    class GetTagsRequest(Mapping):
        pass
    
    class Tags(Mapping):
        pass
    
    class GetUsageRequest(Mapping):
        pass
    
    class Usage(Mapping):
        pass
    
    class GetUsagePlanRequest(Mapping):
        pass
    
    class GetUsagePlanKeyRequest(Mapping):
        pass
    
    class GetUsagePlanKeysRequest(Mapping):
        pass
    
    class UsagePlanKeys(Mapping):
        pass
    
    class GetUsagePlansRequest(Mapping):
        pass
    
    class UsagePlans(Mapping):
        pass
    
    class GetVpcLinkRequest(Mapping):
        pass
    
    class GetVpcLinksRequest(Mapping):
        pass
    
    class VpcLinks(Mapping):
        pass
    
    class ImportApiKeysRequest(Mapping):
        pass
    
    class ApiKeyIds(Mapping):
        pass
    
    class Blob(object):
        pass
    
    class ImportDocumentationPartsRequest(Mapping):
        pass
    
    class DocumentationPartIds(Mapping):
        pass
    
    class ImportRestApiRequest(Mapping):
        pass
    
    class PutGatewayResponseRequest(Mapping):
        pass
    
    class PutIntegrationRequest(Mapping):
        pass
    
    class TlsConfig(Mapping):
        pass
    
    class PutIntegrationResponseRequest(Mapping):
        pass
    
    class PutMethodRequest(Mapping):
        pass
    
    class MapOfStringToBoolean(object):
        pass
    
    class PutMethodResponseRequest(Mapping):
        pass
    
    class PutRestApiRequest(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TestInvokeAuthorizerRequest(Mapping):
        pass
    
    class TestInvokeAuthorizerResponse(Mapping):
        pass
    
    class MapOfStringToList(object):
        pass
    
    class TestInvokeMethodRequest(Mapping):
        pass
    
    class TestInvokeMethodResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UpdateAccountRequest(Mapping):
        pass
    
    class PatchOperation(Mapping):
        pass
    
    class UpdateApiKeyRequest(Mapping):
        pass
    
    class UpdateAuthorizerRequest(Mapping):
        pass
    
    class UpdateBasePathMappingRequest(Mapping):
        pass
    
    class UpdateClientCertificateRequest(Mapping):
        pass
    
    class UpdateDeploymentRequest(Mapping):
        pass
    
    class UpdateDocumentationPartRequest(Mapping):
        pass
    
    class UpdateDocumentationVersionRequest(Mapping):
        pass
    
    class UpdateDomainNameRequest(Mapping):
        pass
    
    class UpdateGatewayResponseRequest(Mapping):
        pass
    
    class UpdateIntegrationRequest(Mapping):
        pass
    
    class UpdateIntegrationResponseRequest(Mapping):
        pass
    
    class UpdateMethodRequest(Mapping):
        pass
    
    class UpdateMethodResponseRequest(Mapping):
        pass
    
    class UpdateModelRequest(Mapping):
        pass
    
    class UpdateRequestValidatorRequest(Mapping):
        pass
    
    class UpdateResourceRequest(Mapping):
        pass
    
    class UpdateRestApiRequest(Mapping):
        pass
    
    class UpdateStageRequest(Mapping):
        pass
    
    class UpdateUsageRequest(Mapping):
        pass
    
    class UpdateUsagePlanRequest(Mapping):
        pass
    
    class UpdateVpcLinkRequest(Mapping):
        pass
    
    def create_api_key(self, name: str=None, description: str=None, enabled: Boolean=None, generateDistinctId: Boolean=None, value: str=None, stageKeys: List[StageKey]=None, customerId: str=None, tags: MapOfStringToString=None) -> ApiKey:
        r"""Create an <a>ApiKey</a> resource.  <div class="seeAlso"><a href="https://docs.aws.amazon.com/cli/latest/reference/apigateway/create-api-key.html">AWS CLI</a></div>

        :param self:
        :param tags:  The key-value map of strings. The valid character set is [a-zA-Z+-=._:/]. The tag key can be up to 128 characters and must not start with <code>aws:</code>. The tag value can be up to 256 characters.<br/>customerId:  An AWS Marketplace customer identifier , when integrating with the AWS SaaS Marketplace.<br/>stageKeys:  DEPRECATED FOR USAGE PLANS - Specifies stages associated with the API key.<br/>value:  Specifies a value of the API key.<br/>generateDistinctId:  Specifies whether (<code>true</code>) or not (<code>false</code>) the key identifier is distinct from the created API key value. This parameter is deprecated and should not be used.<br/>enabled:  Specifies whether the <a>ApiKey</a> can be used by callers.<br/>description:  The description of the <a>ApiKey</a>.<br/>name:  The name of the <a>ApiKey</a>.<br/>
        :return: tags:  The collection of tags. Each tag element is associated with a given resource.<br/>stageKeys:  A list of <a>Stage</a> resources that are associated with the <a>ApiKey</a> resource.<br/>lastUpdatedDate:  The timestamp when the API Key was last updated.<br/>createdDate:  The timestamp when the API Key was created.<br/>enabled:  Specifies whether the API Key can be used by callers.<br/>description:  The description of the API Key.<br/>customerId:  An AWS Marketplace customer identifier , when integrating with the AWS SaaS Marketplace.<br/>name:  The name of the API Key.<br/>value:  The value of the API Key.<br/>id:  The identifier of the API Key.<br/>        """
        pass

    def create_authorizer(self, type: str, name: str, restApiId: str, providerARNs: List[ProviderARN]=None, authType: str=None, authorizerUri: str=None, authorizerCredentials: str=None, identitySource: str=None, identityValidationExpression: str=None, authorizerResultTtlInSeconds: int=None) -> Authorizer:
        r"""Adds a new <a>Authorizer</a> resource to an existing <a>RestApi</a> resource. <div class="seeAlso"><a href="https://docs.aws.amazon.com/cli/latest/reference/apigateway/create-authorizer.html">AWS CLI</a></div>

        :param self:
        :param authorizerResultTtlInSeconds:  The TTL in seconds of cached authorizer results. If it equals 0, authorization caching is disabled. If it is greater than 0, API Gateway will cache authorizer responses. If this field is not set, the default value is 300. The maximum value is 3600, or 1 hour.<br/>identityValidationExpression:  A validation expression for the incoming identity token. For <code>TOKEN</code> authorizers, this value is a regular expression. For <code>COGNITO_USER_POOLS</code> authorizers, API Gateway will match the <code>aud</code> field of the incoming token from the client against the specified regular expression. It will invoke the authorizer's Lambda function when there is a match. Otherwise, it will return a 401 Unauthorized response without calling the Lambda function. The validation expression does not apply to the <code>REQUEST</code> authorizer.<br/>identitySource:  The identity source for which authorization is requested. <ul><li>For a <code>TOKEN</code> or <code>COGNITO_USER_POOLS</code> authorizer, this is required and specifies the request header mapping expression for the custom header holding the authorization token submitted by the client. For example, if the token header name is <code>Auth</code>, the header mapping expression is <code>method.request.header.Auth</code>.</li><li>For the <code>REQUEST</code> authorizer, this is required when authorization caching is enabled. The value is a comma-separated string of one or more mapping expressions of the specified request parameters. For example, if an <code>Auth</code> header, a <code>Name</code> query string parameter are defined as identity sources, this value is <code>method.request.header.Auth, method.request.querystring.Name</code>. These parameters will be used to derive the authorization caching key and to perform runtime validation of the <code>REQUEST</code> authorizer by verifying all of the identity-related request parameters are present, not null and non-empty. Only when this is true does the authorizer invoke the authorizer Lambda function, otherwise, it returns a 401 Unauthorized response without calling the Lambda function. The valid value is a string of comma-separated mapping expressions of the specified request parameters. When the authorization caching is not enabled, this property is optional.</li></ul><br/>authorizerCredentials:  Specifies the required credentials as an IAM role for API Gateway to invoke the authorizer. To specify an IAM role for API Gateway to assume, use the role's Amazon Resource Name (ARN). To use resource-based permissions on the Lambda function, specify null.<br/>authorizerUri:  Specifies the authorizer's Uniform Resource Identifier (URI). For <code>TOKEN</code> or <code>REQUEST</code> authorizers, this must be a well-formed Lambda function URI, for example, <code>arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:{account_id}:function:{lambda_function_name}/invocations</code>. In general, the URI has this form <code>arn:aws:apigateway:{region}:lambda:path/{service_api}</code>, where <code>{region}</code> is the same as the region hosting the Lambda function, <code>path</code> indicates that the remaining substring in the URI should be treated as the path to the resource, including the initial <code>/</code>. For Lambda functions, this is usually of the form <code>/2015-03-31/functions/[FunctionARN]/invocations</code>.<br/>authType:  Optional customer-defined field, used in OpenAPI imports and exports without functional impact.<br/>providerARNs:  A list of the Amazon Cognito user pool ARNs for the <code>COGNITO_USER_POOLS</code> authorizer. Each element is of this format: <code>arn:aws:cognito-idp:{region}:{account_id}:userpool/{user_pool_id}</code>. For a <code>TOKEN</code> or <code>REQUEST</code> authorizer, this is not defined.<br/>type:  [Required] The authorizer type. Valid values are <code>TOKEN</code> for a Lambda function using a single authorization token submitted in a custom header, <code>REQUEST</code> for a Lambda function using incoming request parameters, and <code>COGNITO_USER_POOLS</code> for using an Amazon Cognito user pool.<br/>name:  [Required] The name of the authorizer.<br/>restApiId:  [Required] The string identifier of the associated <a>RestApi</a>.<br/>
        :return: authorizerResultTtlInSeconds:  The TTL in seconds of cached authorizer results. If it equals 0, authorization caching is disabled. If it is greater than 0, API Gateway will cache authorizer responses. If this field is not set, the default value is 300. The maximum value is 3600, or 1 hour.<br/>identityValidationExpression:  A validation expression for the incoming identity token. For <code>TOKEN</code> authorizers, this value is a regular expression. For <code>COGNITO_USER_POOLS</code> authorizers, API Gateway will match the <code>aud</code> field of the incoming token from the client against the specified regular expression. It will invoke the authorizer's Lambda function when there is a match. Otherwise, it will return a 401 Unauthorized response without calling the Lambda function. The validation expression does not apply to the <code>REQUEST</code> authorizer.<br/>identitySource:  The identity source for which authorization is requested. <ul><li>For a <code>TOKEN</code> or <code>COGNITO_USER_POOLS</code> authorizer, this is required and specifies the request header mapping expression for the custom header holding the authorization token submitted by the client. For example, if the token header name is <code>Auth</code>, the header mapping expression is <code>method.request.header.Auth</code>.</li><li>For the <code>REQUEST</code> authorizer, this is required when authorization caching is enabled. The value is a comma-separated string of one or more mapping expressions of the specified request parameters. For example, if an <code>Auth</code> header, a <code>Name</code> query string parameter are defined as identity sources, this value is <code>method.request.header.Auth, method.request.querystring.Name</code>. These parameters will be used to derive the authorization caching key and to perform runtime validation of the <code>REQUEST</code> authorizer by verifying all of the identity-related request parameters are present, not null and non-empty. Only when this is true does the authorizer invoke the authorizer Lambda function, otherwise, it returns a 401 Unauthorized response without calling the Lambda function. The valid value is a string of comma-separated mapping expressions of the specified request parameters. When the authorization caching is not enabled, this property is optional.</li></ul><br/>authorizerCredentials:  Specifies the required credentials as an IAM role for API Gateway to invoke the authorizer. To specify an IAM role for API Gateway to assume, use the role's Amazon Resource Name (ARN). To use resource-based permissions on the Lambda function, specify null.<br/>authorizerUri:  Specifies the authorizer's Uniform Resource Identifier (URI). For <code>TOKEN</code> or <code>REQUEST</code> authorizers, this must be a well-formed Lambda function URI, for example, <code>arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:{account_id}:function:{lambda_function_name}/invocations</code>. In general, the URI has this form <code>arn:aws:apigateway:{region}:lambda:path/{service_api}</code>, where <code>{region}</code> is the same as the region hosting the Lambda function, <code>path</code> indicates that the remaining substring in the URI should be treated as the path to the resource, including the initial <code>/</code>. For Lambda functions, this is usually of the form <code>/2015-03-31/functions/[FunctionARN]/invocations</code>.<br/>authType:  Optional customer-defined field, used in OpenAPI imports and exports without functional impact.<br/>providerARNs:  A list of the Amazon Cognito user pool ARNs for the <code>COGNITO_USER_POOLS</code> authorizer. Each element is of this format: <code>arn:aws:cognito-idp:{region}:{account_id}:userpool/{user_pool_id}</code>. For a <code>TOKEN</code> or <code>REQUEST</code> authorizer, this is not defined.<br/>type:  The authorizer type. Valid values are <code>TOKEN</code> for a Lambda function using a single authorization token submitted in a custom header, <code>REQUEST</code> for a Lambda function using incoming request parameters, and <code>COGNITO_USER_POOLS</code> for using an Amazon Cognito user pool.<br/>name:  [Required] The name of the authorizer.<br/>id:  The identifier for the authorizer resource.<br/>        """
        pass

    def create_base_path_mapping(self, restApiId: str, domainName: str, basePath: str=None, stage: str=None) -> BasePathMapping:
        r"""Creates a new <a>BasePathMapping</a> resource.

        :param self:
        :param stage:  The name of the API's stage that you want to use for this mapping. Specify '(none)' if you want callers to explicitly specify the stage name after any base path name.<br/>restApiId:  [Required] The string identifier of the associated <a>RestApi</a>.<br/>basePath:  The base path name that callers of the API must provide as part of the URL after the domain name. This value must be unique for all of the mappings across a single API. Specify '(none)' if you do not want callers to specify a base path name after the domain name.<br/>domainName:  [Required] The domain name of the <a>BasePathMapping</a> resource to create.<br/>
        :return: stage:  The name of the associated stage.<br/>restApiId:  The string identifier of the associated <a>RestApi</a>.<br/>basePath:  The base path name that callers of the API must provide as part of the URL after the domain name.<br/>        """
        pass

    def create_deployment(self, restApiId: str, stageName: str=None, stageDescription: str=None, description: str=None, cacheClusterEnabled: NullableBoolean=None, cacheClusterSize: str=None, variables: MapOfStringToString=None, canarySettings: DeploymentCanarySettings=None, tracingEnabled: NullableBoolean=None) -> Deployment:
        r"""Creates a <a>Deployment</a> resource, which makes a specified <a>RestApi</a> callable over the internet.

        :param self:
        :param tracingEnabled:  Specifies whether active tracing with X-ray is enabled for the <a>Stage</a>.<br/>canarySettings:  The input configuration for the canary deployment when the deployment is a canary release deployment. :<br/>variables:  A map that defines the stage variables for the <a>Stage</a> resource that is associated with the new deployment. Variable names can have alphanumeric and underscore characters, and the values must match <code>[A-Za-z0-9-._~:/?#&amp;=,]+</code>.<br/>cacheClusterSize:  Specifies the cache cluster size for the <a>Stage</a> resource specified in the input, if a cache cluster is enabled.<br/>cacheClusterEnabled:  Enables a cache cluster for the <a>Stage</a> resource specified in the input.<br/>description:  The description for the <a>Deployment</a> resource to create.<br/>stageDescription:  The description of the <a>Stage</a> resource for the <a>Deployment</a> resource to create.<br/>stageName:  The name of the <a>Stage</a> resource for the <a>Deployment</a> resource to create.<br/>restApiId:  [Required] The string identifier of the associated <a>RestApi</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>useStageCache</i> A Boolean flag to indicate whether the canary release deployment uses the stage cache or not.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>stageVariableOverrides</i> A stage variable overrides used for the canary release deployment. They can override existing stage variables or add new stage variables for the canary release deployment. These stage variables are represented as a string-to-string map between stage variable names and their values.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>percentTraffic</i> The percentage (0.0-100.0) of traffic routed to the canary deployment.<br/>
        :return: apiSummary:  A summary of the <a>RestApi</a> at the date and time that the deployment resource was created.<br/>createdDate:  The date and time that the deployment resource was created.<br/>description:  The description for the deployment resource.<br/>id:  The identifier for the deployment resource.<br/>        """
        pass

    def create_documentation_part(self, properties: str, location: DocumentationPartLocation, restApiId: str) -> DocumentationPart:
        r"""

        :param self:
        :param properties:  [Required] The new documentation content map of the targeted API entity. Enclosed key-value pairs are API-specific, but only OpenAPI-compliant key-value pairs can be exported and, hence, published.<br/>location:  [Required] The location of the targeted API entity of the to-be-created documentation part.:<br/>restApiId:  [Required] The string identifier of the associated <a>RestApi</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the targeted API entity. It is a valid and required field for the API entity types of <code>AUTHORIZER</code>, <code>MODEL</code>, <code>PATH_PARAMETER</code>, <code>QUERY_PARAMETER</code>, <code>REQUEST_HEADER</code>, <code>REQUEST_BODY</code> and <code>RESPONSE_HEADER</code>. It is an invalid field for any other entity type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusCode</i> The HTTP status code of a response. It is a valid field for the API entity types of <code>RESPONSE</code>, <code>RESPONSE_HEADER</code>, and <code>RESPONSE_BODY</code>. The default value is <code>*</code> for any status code. When an applicable child entity inherits the content of an entity of the same type with more general specifications of the other <code>location</code> attributes, the child entity's <code>statusCode</code> attribute must match that of the parent entity exactly.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>method</i> The HTTP verb of a method. It is a valid field for the API entity types of <code>METHOD</code>, <code>PATH_PARAMETER</code>, <code>QUERY_PARAMETER</code>, <code>REQUEST_HEADER</code>, <code>REQUEST_BODY</code>, <code>RESPONSE</code>, <code>RESPONSE_HEADER</code>, and <code>RESPONSE_BODY</code>. The default value is <code>*</code> for any method. When an applicable child entity inherits the content of an entity of the same type with more general specifications of the other <code>location</code> attributes, the child entity's <code>method</code> attribute must match that of the parent entity exactly.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>path</i> The URL path of the target. It is a valid field for the API entity types of <code>RESOURCE</code>, <code>METHOD</code>, <code>PATH_PARAMETER</code>, <code>QUERY_PARAMETER</code>, <code>REQUEST_HEADER</code>, <code>REQUEST_BODY</code>, <code>RESPONSE</code>, <code>RESPONSE_HEADER</code>, and <code>RESPONSE_BODY</code>. The default value is <code>/</code> for the root resource. When an applicable child entity inherits the content of another entity of the same type with more general specifications of the other <code>location</code> attributes, the child entity's <code>path</code> attribute must match that of the parent entity as a prefix.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> [Required] The type of API entity to which the documentation content applies. Valid values are <code>API</code>, <code>AUTHORIZER</code>, <code>MODEL</code>, <code>RESOURCE</code>, <code>METHOD</code>, <code>PATH_PARAMETER</code>, <code>QUERY_PARAMETER</code>, <code>REQUEST_HEADER</code>, <code>REQUEST_BODY</code>, <code>RESPONSE</code>, <code>RESPONSE_HEADER</code>, and <code>RESPONSE_BODY</code>. Content inheritance does not apply to any entity of the <code>API</code>, <code>AUTHORIZER</code>, <code>METHOD</code>, <code>MODEL</code>, <code>REQUEST_BODY</code>, or <code>RESOURCE</code> type.<br/>
        :return: properties:  A content map of API-specific key-value pairs describing the targeted API entity. The map must be encoded as a JSON string, e.g., <code>"{ \"description\": \"The API does ...\" }"</code>. Only OpenAPI-compliant documentation-related fields from the <literal>properties</literal> map are exported and, hence, published as part of the API entity definitions, while the original documentation parts are exported in a OpenAPI extension of <code>x-amazon-apigateway-documentation</code>.<br/>location:  The location of the API entity to which the documentation applies. Valid fields depend on the targeted API entity type. All the valid location fields are not required. If not explicitly specified, a valid location field is treated as a wildcard and associated documentation content may be inherited by matching entities, unless overridden.:<br/>id:  The <a>DocumentationPart</a> identifier, generated by API Gateway when the <code>DocumentationPart</code> is created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the targeted API entity. It is a valid and required field for the API entity types of <code>AUTHORIZER</code>, <code>MODEL</code>, <code>PATH_PARAMETER</code>, <code>QUERY_PARAMETER</code>, <code>REQUEST_HEADER</code>, <code>REQUEST_BODY</code> and <code>RESPONSE_HEADER</code>. It is an invalid field for any other entity type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusCode</i> The HTTP status code of a response. It is a valid field for the API entity types of <code>RESPONSE</code>, <code>RESPONSE_HEADER</code>, and <code>RESPONSE_BODY</code>. The default value is <code>*</code> for any status code. When an applicable child entity inherits the content of an entity of the same type with more general specifications of the other <code>location</code> attributes, the child entity's <code>statusCode</code> attribute must match that of the parent entity exactly.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>method</i> The HTTP verb of a method. It is a valid field for the API entity types of <code>METHOD</code>, <code>PATH_PARAMETER</code>, <code>QUERY_PARAMETER</code>, <code>REQUEST_HEADER</code>, <code>REQUEST_BODY</code>, <code>RESPONSE</code>, <code>RESPONSE_HEADER</code>, and <code>RESPONSE_BODY</code>. The default value is <code>*</code> for any method. When an applicable child entity inherits the content of an entity of the same type with more general specifications of the other <code>location</code> attributes, the child entity's <code>method</code> attribute must match that of the parent entity exactly.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>path</i> The URL path of the target. It is a valid field for the API entity types of <code>RESOURCE</code>, <code>METHOD</code>, <code>PATH_PARAMETER</code>, <code>QUERY_PARAMETER</code>, <code>REQUEST_HEADER</code>, <code>REQUEST_BODY</code>, <code>RESPONSE</code>, <code>RESPONSE_HEADER</code>, and <code>RESPONSE_BODY</code>. The default value is <code>/</code> for the root resource. When an applicable child entity inherits the content of another entity of the same type with more general specifications of the other <code>location</code> attributes, the child entity's <code>path</code> attribute must match that of the parent entity as a prefix.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> [Required] The type of API entity to which the documentation content applies. Valid values are <code>API</code>, <code>AUTHORIZER</code>, <code>MODEL</code>, <code>RESOURCE</code>, <code>METHOD</code>, <code>PATH_PARAMETER</code>, <code>QUERY_PARAMETER</code>, <code>REQUEST_HEADER</code>, <code>REQUEST_BODY</code>, <code>RESPONSE</code>, <code>RESPONSE_HEADER</code>, and <code>RESPONSE_BODY</code>. Content inheritance does not apply to any entity of the <code>API</code>, <code>AUTHORIZER</code>, <code>METHOD</code>, <code>MODEL</code>, <code>REQUEST_BODY</code>, or <code>RESOURCE</code> type.<br/>        """
        pass

    def create_documentation_version(self, documentationVersion: str, restApiId: str, stageName: str=None, description: str=None) -> DocumentationVersion:
        r"""

        :param self:
        :param description:  A description about the new documentation snapshot.<br/>stageName:  The stage name to be associated with the new documentation snapshot.<br/>documentationVersion:  [Required] The version identifier of the new snapshot.<br/>restApiId:  [Required] The string identifier of the associated <a>RestApi</a>.<br/>
        :return: description:  The description of the API documentation snapshot.<br/>createdDate:  The date when the API documentation snapshot is created.<br/>version:  The version identifier of the API documentation snapshot.<br/>        """
        pass

    def create_domain_name(self, domainName: str, certificateName: str=None, certificateBody: str=None, certificatePrivateKey: str=None, certificateChain: str=None, certificateArn: str=None, regionalCertificateName: str=None, regionalCertificateArn: str=None, endpointConfiguration: EndpointConfiguration=None, tags: MapOfStringToString=None, securityPolicy: str=None, mutualTlsAuthentication: MutualTlsAuthenticationInput=None) -> DomainName:
        r"""Creates a new domain name.

        :param self:
        :param mutualTlsAuthentication:  If specified, API Gateway performs two-way authentication between the client and the server. Clients must present a trusted certificate to access your custom domain name.:<br/>securityPolicy:  The Transport Layer Security (TLS) version + cipher suite for this <a>DomainName</a>. The valid values are <code>TLS_1_0</code> and <code>TLS_1_2</code>.<br/>tags:  The key-value map of strings. The valid character set is [a-zA-Z+-=._:/]. The tag key can be up to 128 characters and must not start with <code>aws:</code>. The tag value can be up to 256 characters.<br/>endpointConfiguration:  The endpoint configuration of this <a>DomainName</a> showing the endpoint types of the domain name.:<br/>regionalCertificateArn:  The reference to an AWS-managed certificate that will be used by regional endpoint for this domain name. AWS Certificate Manager is the only supported source.<br/>regionalCertificateName:  The user-friendly name of the certificate that will be used by regional endpoint for this domain name.<br/>certificateArn:  The reference to an AWS-managed certificate that will be used by edge-optimized endpoint for this domain name. AWS Certificate Manager is the only supported source.<br/>certificateChain:  [Deprecated] The intermediate certificates and optionally the root certificate, one after the other without any blank lines, used by an edge-optimized endpoint for this domain name. If you include the root certificate, your certificate chain must start with intermediate certificates and end with the root certificate. Use the intermediate certificates that were provided by your certificate authority. Do not include any intermediaries that are not in the chain of trust path.<br/>certificatePrivateKey:  [Deprecated] Your edge-optimized endpoint's domain name certificate's private key.<br/>certificateBody:  [Deprecated] The body of the server certificate that will be used by edge-optimized endpoint for this domain name provided by your certificate authority.<br/>certificateName:  The user-friendly name of the certificate that will be used by edge-optimized endpoint for this domain name.<br/>domainName:  [Required] The name of the <a>DomainName</a> resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>vpcEndpointIds</i> A list of VpcEndpointIds of an API (<a>RestApi</a>) against which to create Route53 ALIASes. It is only supported for <code>PRIVATE</code> endpoint type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>types</i> A list of endpoint types of an API (<a>RestApi</a>) or its custom domain name (<a>DomainName</a>). For an edge-optimized API and its custom domain name, the endpoint type is <code>"EDGE"</code>. For a regional API and its custom domain name, the endpoint type is <code>REGIONAL</code>. For a private API, the endpoint type is <code>PRIVATE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>truststoreVersion</i> The version of the S3 object that contains your truststore. To specify a version, you must have versioning enabled for the S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>truststoreUri</i> An Amazon S3 resource ARN that specifies the truststore for mutual TLS authentication, for example, <code>s3://bucket-name/key-name</code>. The truststore can contain certificates from public or private certificate authorities. To update the truststore, upload a new version to S3, and then update your custom domain name to use the new version. To update the truststore, you must have permissions to access the S3 object.<br/>
        :return: mutualTlsAuthentication:  The mutual TLS authentication configuration for a custom domain name. If specified, API Gateway performs two-way authentication between the client and the server. Clients must present a trusted certificate to access your API.:<br/>tags:  The collection of tags. Each tag element is associated with a given resource.<br/>securityPolicy:  The Transport Layer Security (TLS) version + cipher suite for this <a>DomainName</a>. The valid values are <code>TLS_1_0</code> and <code>TLS_1_2</code>.<br/>domainNameStatusMessage:  An optional text message containing detailed information about status of the <a>DomainName</a> migration.<br/>domainNameStatus:  The status of the <a>DomainName</a> migration. The valid values are <code>AVAILABLE</code> and <code>UPDATING</code>. If the status is <code>UPDATING</code>, the domain cannot be modified further until the existing operation is complete. If it is <code>AVAILABLE</code>, the domain can be updated.<br/>endpointConfiguration:  The endpoint configuration of this <a>DomainName</a> showing the endpoint types of the domain name.:<br/>distributionHostedZoneId:  The region-agnostic Amazon Route 53 Hosted Zone ID of the edge-optimized endpoint. The valid value is <code>Z2FDTNDATAQYW2</code> for all the regions. For more information, see <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-regional-api-custom-domain-create.html">Set up a Regional Custom Domain Name</a> and <a href="https://docs.aws.amazon.com/general/latest/gr/rande.html#apigateway_region">AWS Regions and Endpoints for API Gateway</a>. <br/>distributionDomainName:  The domain name of the Amazon CloudFront distribution associated with this custom domain name for an edge-optimized endpoint. You set up this association when adding a DNS record pointing the custom domain name to this distribution name. For more information about CloudFront distributions, see the <a href="https://aws.amazon.com/documentation/cloudfront/" target="_blank">Amazon CloudFront documentation</a>.<br/>regionalCertificateArn:  The reference to an AWS-managed certificate that will be used for validating the regional domain name. AWS Certificate Manager is the only supported source.<br/>regionalCertificateName:  The name of the certificate that will be used for validating the regional domain name.<br/>regionalHostedZoneId:  The region-specific Amazon Route 53 Hosted Zone ID of the regional endpoint. For more information, see <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-regional-api-custom-domain-create.html">Set up a Regional Custom Domain Name</a> and <a href="https://docs.aws.amazon.com/general/latest/gr/rande.html#apigateway_region">AWS Regions and Endpoints for API Gateway</a>. <br/>regionalDomainName:  The domain name associated with the regional endpoint for this custom domain name. You set up this association by adding a DNS record that points the custom domain name to this regional domain name. The regional domain name is returned by API Gateway when you create a regional endpoint.<br/>certificateUploadDate:  The timestamp when the certificate that was used by edge-optimized endpoint for this domain name was uploaded.<br/>certificateArn:  The reference to an AWS-managed certificate that will be used by edge-optimized endpoint for this domain name. AWS Certificate Manager is the only supported source.<br/>certificateName:  The name of the certificate that will be used by edge-optimized endpoint for this domain name.<br/>domainName:  The custom domain name as an API host name, for example, <code>my-api.example.com</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>vpcEndpointIds</i> A list of VpcEndpointIds of an API (<a>RestApi</a>) against which to create Route53 ALIASes. It is only supported for <code>PRIVATE</code> endpoint type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>types</i> A list of endpoint types of an API (<a>RestApi</a>) or its custom domain name (<a>DomainName</a>). For an edge-optimized API and its custom domain name, the endpoint type is <code>"EDGE"</code>. For a regional API and its custom domain name, the endpoint type is <code>REGIONAL</code>. For a private API, the endpoint type is <code>PRIVATE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>truststoreWarnings</i> A list of warnings that API Gateway returns while processing your truststore. Invalid certificates produce warnings. Mutual TLS is still enabled, but some clients might not be able to access your API. To resolve warnings, upload a new truststore to S3, and then update you domain name to use the new version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>truststoreVersion</i> The version of the S3 object that contains your truststore. To specify a version, you must have versioning enabled for the S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>truststoreUri</i> An Amazon S3 URL that specifies the truststore for mutual TLS authentication, for example <code>s3://bucket-name/key-name</code>. The truststore can contain certificates from public or private certificate authorities. To update the truststore, upload a new version to S3, and then update your custom domain name to use the new version. To update the truststore, you must have permissions to access the S3 object.<br/>        """
        pass

    def create_model(self, contentType: str, name: str, restApiId: str, description: str=None, schema: str=None) -> Model:
        r"""Adds a new <a>Model</a> resource to an existing <a>RestApi</a> resource.

        :param self:
        :param contentType:  [Required] The content-type for the model.<br/>schema:  The schema for the model. For <code>application/json</code> models, this should be <a href="https://tools.ietf.org/html/draft-zyp-json-schema-04" target="_blank">JSON schema draft 4</a> model.<br/>description:  The description of the model.<br/>name:  [Required] The name of the model. Must be alphanumeric.<br/>restApiId:  [Required] The <a>RestApi</a> identifier under which the <a>Model</a> will be created.<br/>
        :return: contentType:  The content-type for the model.<br/>schema:  The schema for the model. For <code>application/json</code> models, this should be <a href="https://tools.ietf.org/html/draft-zyp-json-schema-04" target="_blank">JSON schema draft 4</a> model. Do not include "\*/" characters in the description of any properties because such "\*/" characters may be interpreted as the closing marker for comments in some languages, such as Java or JavaScript, causing the installation of your API's SDK generated by API Gateway to fail.<br/>description:  The description of the model.<br/>name:  The name of the model. Must be an alphanumeric string.<br/>id:  The identifier for the model resource.<br/>        """
        pass

    def create_request_validator(self, restApiId: str, name: str=None, validateRequestBody: Boolean=None, validateRequestParameters: Boolean=None) -> RequestValidator:
        r"""Creates a <a>ReqeustValidator</a> of a given <a>RestApi</a>.

        :param self:
        :param validateRequestParameters:  A Boolean flag to indicate whether to validate request parameters, <code>true</code>, or not <code>false</code>.<br/>validateRequestBody:  A Boolean flag to indicate whether to validate request body according to the configured model schema for the method (<code>true</code>) or not (<code>false</code>).<br/>name:  The name of the to-be-created <a>RequestValidator</a>.<br/>restApiId:  [Required] The string identifier of the associated <a>RestApi</a>.<br/>
        :return: validateRequestParameters:  A Boolean flag to indicate whether to validate request parameters (<code>true</code>) or not (<code>false</code>).<br/>validateRequestBody:  A Boolean flag to indicate whether to validate a request body according to the configured <a>Model</a> schema.<br/>name:  The name of this <a>RequestValidator</a><br/>id:  The identifier of this <a>RequestValidator</a>.<br/>        """
        pass

    def create_resource(self, pathPart: str, parentId: str, restApiId: str) -> Resource:
        r"""Creates a <a>Resource</a> resource.

        :param self:
        :param pathPart:  The last path segment for this resource.<br/>parentId:  [Required] The parent resource's identifier.<br/>restApiId:  [Required] The string identifier of the associated <a>RestApi</a>.<br/>
        :return: resourceMethods:  Gets an API resource's method of a given HTTP verb. <div class="remarks"> The resource methods are a map of methods indexed by methods' HTTP verbs enabled on the resource. This method map is included in the <code>200 OK</code> response of the <code>GET /restapis/{restapi_id}/resources/{resource_id}</code> or <code>GET /restapis/{restapi_id}/resources/{resource_id}?embed=methods</code> request. <h4>Example: Get the GET method of an API resource</h4> <h5>Request</h5> <pre><code>GET /restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET HTTP/1.1 Content-Type: application/json Host: apigateway.us-east-1.amazonaws.com X-Amz-Date: 20170223T031827Z Authorization: AWS4-HMAC-SHA256 Credential={access_key_ID}/20170223/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}</code></pre> <h5>Response</h5> <pre><code>{ "_links": { "curies": [ { "href": "https://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-{rel}.html", "name": "integration", "templated": true }, { "href": "https://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-response-{rel}.html", "name": "integrationresponse", "templated": true }, { "href": "https://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-method-{rel}.html", "name": "method", "templated": true }, { "href": "https://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-method-response-{rel}.html", "name": "methodresponse", "templated": true } ], "self": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET", "name": "GET", "title": "GET" }, "integration:put": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration" }, "method:delete": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET" }, "method:integration": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration" }, "method:responses": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/responses/200", "name": "200", "title": "200" }, "method:update": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET" }, "methodresponse:put": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/responses/{status_code}", "templated": true } }, "apiKeyRequired": false, "authorizationType": "NONE", "httpMethod": "GET", "_embedded": { "method:integration": { "_links": { "self": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration" }, "integration:delete": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration" }, "integration:responses": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200", "name": "200", "title": "200" }, "integration:update": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration" }, "integrationresponse:put": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/{status_code}", "templated": true } }, "cacheKeyParameters": [], "cacheNamespace": "3kzxbg5sa2", "credentials": "arn:aws:iam::123456789012:role/apigAwsProxyRole", "httpMethod": "POST", "passthroughBehavior": "WHEN_NO_MATCH", "requestParameters": { "integration.request.header.Content-Type": "'application/x-amz-json-1.1'" }, "requestTemplates": { "application/json": "{\n}" }, "type": "AWS", "uri": "arn:aws:apigateway:us-east-1:kinesis:action/ListStreams", "_embedded": { "integration:responses": { "_links": { "self": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200", "name": "200", "title": "200" }, "integrationresponse:delete": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200" }, "integrationresponse:update": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200" } }, "responseParameters": { "method.response.header.Content-Type": "'application/xml'" }, "responseTemplates": { "application/json": "$util.urlDecode(\"%3CkinesisStreams%3E#foreach($stream in $input.path('$.StreamNames'))%3Cstream%3E%3Cname%3E$stream%3C/name%3E%3C/stream%3E#end%3C/kinesisStreams%3E\")\n" }, "statusCode": "200" } } }, "method:responses": { "_links": { "self": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/responses/200", "name": "200", "title": "200" }, "methodresponse:delete": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/responses/200" }, "methodresponse:update": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/responses/200" } }, "responseModels": { "application/json": "Empty" }, "responseParameters": { "method.response.header.Content-Type": false }, "statusCode": "200" } } }</code></pre> If the <code>OPTIONS</code> is enabled on the resource, you can follow the example here to get that method. Just replace the <code>GET</code> of the last path segment in the request URL with <code>OPTIONS</code>. </div> <div class="seeAlso"> </div><br/>path:  The full path for this resource.<br/>pathPart:  The last path segment for this resource.<br/>parentId:  The parent resource's identifier.<br/>id:  The resource's identifier.<br/>        """
        pass

    def create_rest_api(self, name: str, description: str=None, version: str=None, cloneFrom: str=None, binaryMediaTypes: List[String]=None, minimumCompressionSize: int=None, apiKeySource: str=None, endpointConfiguration: EndpointConfiguration=None, policy: str=None, tags: MapOfStringToString=None, disableExecuteApiEndpoint: Boolean=None) -> RestApi:
        r"""Creates a new <a>RestApi</a> resource.

        :param self:
        :param disableExecuteApiEndpoint:  Specifies whether clients can invoke your API by using the default <code>execute-api</code> endpoint. By default, clients can invoke your API with the default https://{api_id}.execute-api.{region}.amazonaws.com endpoint. To require that clients use a custom domain name to invoke your API, disable the default endpoint.<br/>tags:  The key-value map of strings. The valid character set is [a-zA-Z+-=._:/]. The tag key can be up to 128 characters and must not start with <code>aws:</code>. The tag value can be up to 256 characters.<br/>policy:  A stringified JSON policy document that applies to this RestApi regardless of the caller and <a>Method</a> configuration.<br/>endpointConfiguration:  The endpoint configuration of this <a>RestApi</a> showing the endpoint types of the API.:<br/>apiKeySource:  The source of the API key for metering requests according to a usage plan. Valid values are: <ul><li><code>HEADER</code> to read the API key from the <code>X-API-Key</code> header of a request. </li><li><code>AUTHORIZER</code> to read the API key from the <code>UsageIdentifierKey</code> from a custom authorizer.</li></ul><br/>minimumCompressionSize:  A nullable integer that is used to enable compression (with non-negative between 0 and 10485760 (10M) bytes, inclusive) or disable compression (with a null value) on an API. When compression is enabled, compression or decompression is not applied on the payload if the payload size is smaller than this value. Setting it to zero allows compression for any payload size.<br/>binaryMediaTypes:  The list of binary media types supported by the <a>RestApi</a>. By default, the <a>RestApi</a> supports only UTF-8-encoded text payloads.<br/>cloneFrom:  The ID of the <a>RestApi</a> that you want to clone from.<br/>version:  A version identifier for the API.<br/>description:  The description of the <a>RestApi</a>.<br/>name:  [Required] The name of the <a>RestApi</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>vpcEndpointIds</i> A list of VpcEndpointIds of an API (<a>RestApi</a>) against which to create Route53 ALIASes. It is only supported for <code>PRIVATE</code> endpoint type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>types</i> A list of endpoint types of an API (<a>RestApi</a>) or its custom domain name (<a>DomainName</a>). For an edge-optimized API and its custom domain name, the endpoint type is <code>"EDGE"</code>. For a regional API and its custom domain name, the endpoint type is <code>REGIONAL</code>. For a private API, the endpoint type is <code>PRIVATE</code>.<br/>
        :return: disableExecuteApiEndpoint:  Specifies whether clients can invoke your API by using the default <code>execute-api</code> endpoint. By default, clients can invoke your API with the default https://{api_id}.execute-api.{region}.amazonaws.com endpoint. To require that clients use a custom domain name to invoke your API, disable the default endpoint.<br/>tags:  The collection of tags. Each tag element is associated with a given resource.<br/>policy:  A stringified JSON policy document that applies to this RestApi regardless of the caller and <a>Method</a> configuration.<br/>endpointConfiguration:  The endpoint configuration of this <a>RestApi</a> showing the endpoint types of the API.:<br/>apiKeySource:  The source of the API key for metering requests according to a usage plan. Valid values are: <ul><li><code>HEADER</code> to read the API key from the <code>X-API-Key</code> header of a request. </li><li><code>AUTHORIZER</code> to read the API key from the <code>UsageIdentifierKey</code> from a custom authorizer.</li></ul><br/>minimumCompressionSize:  A nullable integer that is used to enable compression (with non-negative between 0 and 10485760 (10M) bytes, inclusive) or disable compression (with a null value) on an API. When compression is enabled, compression or decompression is not applied on the payload if the payload size is smaller than this value. Setting it to zero allows compression for any payload size.<br/>binaryMediaTypes:  The list of binary media types supported by the <a>RestApi</a>. By default, the <a>RestApi</a> supports only UTF-8-encoded text payloads.<br/>warnings:  The warning messages reported when <code>failonwarnings</code> is turned on during API import.<br/>version:  A version identifier for the API.<br/>createdDate:  The timestamp when the API was created.<br/>description:  The API's description.<br/>name:  The API's name.<br/>id:  The API's identifier. This identifier is unique across all of your APIs in API Gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>vpcEndpointIds</i> A list of VpcEndpointIds of an API (<a>RestApi</a>) against which to create Route53 ALIASes. It is only supported for <code>PRIVATE</code> endpoint type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>types</i> A list of endpoint types of an API (<a>RestApi</a>) or its custom domain name (<a>DomainName</a>). For an edge-optimized API and its custom domain name, the endpoint type is <code>"EDGE"</code>. For a regional API and its custom domain name, the endpoint type is <code>REGIONAL</code>. For a private API, the endpoint type is <code>PRIVATE</code>.<br/>        """
        pass

    def create_stage(self, deploymentId: str, stageName: str, restApiId: str, description: str=None, cacheClusterEnabled: Boolean=None, cacheClusterSize: str=None, variables: MapOfStringToString=None, documentationVersion: str=None, canarySettings: CanarySettings=None, tracingEnabled: Boolean=None, tags: MapOfStringToString=None) -> Stage:
        r"""Creates a new <a>Stage</a> resource that references a pre-existing <a>Deployment</a> for the API. 

        :param self:
        :param tags:  The key-value map of strings. The valid character set is [a-zA-Z+-=._:/]. The tag key can be up to 128 characters and must not start with <code>aws:</code>. The tag value can be up to 256 characters.<br/>tracingEnabled:  Specifies whether active tracing with X-ray is enabled for the <a>Stage</a>.<br/>canarySettings:  The canary deployment settings of this stage.:<br/>documentationVersion:  The version of the associated API documentation.<br/>variables:  A map that defines the stage variables for the new <a>Stage</a> resource. Variable names can have alphanumeric and underscore characters, and the values must match <code>[A-Za-z0-9-._~:/?#&amp;=,]+</code>.<br/>cacheClusterSize:  The stage's cache cluster size.<br/>cacheClusterEnabled:  Whether cache clustering is enabled for the stage.<br/>description:  The description of the <a>Stage</a> resource.<br/>deploymentId:  [Required] The identifier of the <a>Deployment</a> resource for the <a>Stage</a> resource.<br/>stageName:  [Required] The name for the <a>Stage</a> resource. Stage names can only contain alphanumeric characters, hyphens, and underscores. Maximum length is 128 characters.<br/>restApiId:  [Required] The string identifier of the associated <a>RestApi</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>useStageCache</i> A Boolean flag to indicate whether the canary deployment uses the stage cache or not.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>stageVariableOverrides</i> Stage variables overridden for a canary release deployment, including new stage variables introduced in the canary. These stage variables are represented as a string-to-string map between stage variable names and their values.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deploymentId</i> The ID of the canary deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>percentTraffic</i> The percent (0-100) of traffic diverted to a canary deployment.<br/>
        :return: lastUpdatedDate:  The timestamp when the stage last updated.<br/>createdDate:  The timestamp when the stage was created.<br/>tags:  The collection of tags. Each tag element is associated with a given resource.<br/>webAclArn:  The ARN of the WebAcl associated with the <a>Stage</a>.<br/>tracingEnabled:  Specifies whether active tracing with X-ray is enabled for the <a>Stage</a>.<br/>canarySettings:  Settings for the canary deployment in this stage.:<br/>accessLogSettings:  Settings for logging access in this stage.:<br/>documentationVersion:  The version of the associated API documentation.<br/>variables:  A map that defines the stage variables for a <a>Stage</a> resource. Variable names can have alphanumeric and underscore characters, and the values must match <code>[A-Za-z0-9-._~:/?#&amp;=,]+</code>.<br/>methodSettings:  A map that defines the method settings for a <a>Stage</a> resource. Keys (designated as <code>/{method_setting_key</code> below) are method paths defined as <code>{resource_path}/{http_method}</code> for an individual method override, or <code>/\*/\*</code> for overriding all methods in the stage. <br/>cacheClusterStatus:  The status of the cache cluster for the stage, if enabled.<br/>cacheClusterSize:  The size of the cache cluster for the stage, if enabled.<br/>cacheClusterEnabled:  Specifies whether a cache cluster is enabled for the stage.<br/>description:  The stage's description.<br/>stageName:  The name of the stage is the first path segment in the Uniform Resource Identifier (URI) of a call to API Gateway. Stage names can only contain alphanumeric characters, hyphens, and underscores. Maximum length is 128 characters.<br/>clientCertificateId:  The identifier of a client certificate for an API stage.<br/>deploymentId:  The identifier of the <a>Deployment</a> that the stage points to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>destinationArn</i> The Amazon Resource Name (ARN) of the CloudWatch Logs log group or Kinesis Data Firehose delivery stream to receive access logs. If you specify a Kinesis Data Firehose delivery stream, the stream name must begin with <code>amazon-apigateway-</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>format</i> A single line format of the access logs of data, as specified by selected <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-reference.html#context-variable-reference">$context variables</a>. The format must include at least <code>$context.requestId</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>useStageCache</i> A Boolean flag to indicate whether the canary deployment uses the stage cache or not.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>stageVariableOverrides</i> Stage variables overridden for a canary release deployment, including new stage variables introduced in the canary. These stage variables are represented as a string-to-string map between stage variable names and their values.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deploymentId</i> The ID of the canary deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>percentTraffic</i> The percent (0-100) of traffic diverted to a canary deployment.<br/>        """
        pass

    def create_usage_plan(self, name: str, description: str=None, apiStages: List[ApiStage]=None, throttle: ThrottleSettings=None, quota: QuotaSettings=None, tags: MapOfStringToString=None) -> UsagePlan:
        r"""Creates a usage plan with the throttle and quota limits, as well as the associated API stages, specified in the payload. 

        :param self:
        :param tags:  The key-value map of strings. The valid character set is [a-zA-Z+-=._:/]. The tag key can be up to 128 characters and must not start with <code>aws:</code>. The tag value can be up to 256 characters.<br/>quota:  The quota of the usage plan.:<br/>throttle:  The throttling limits of the usage plan.:<br/>apiStages:  The associated API stages of the usage plan.<br/>description:  The description of the usage plan.<br/>name:  [Required] The name of the usage plan.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>rateLimit</i> The API request steady-state rate limit.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>burstLimit</i> The API request burst limit, the maximum rate limit over a time ranging from one to a few seconds, depending upon whether the underlying token bucket is at its full capacity.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>period</i> The time period in which the limit applies. Valid values are "DAY", "WEEK" or "MONTH".<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>offset</i> The day that a time period starts. For example, with a time period of <code>WEEK</code>, an offset of <code>0</code> starts on Sunday, and an offset of <code>1</code> starts on Monday.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>limit</i> The maximum number of requests that can be made in a given time period.<br/>
        :return: tags:  The collection of tags. Each tag element is associated with a given resource.<br/>productCode:  The AWS Markeplace product identifier to associate with the usage plan as a SaaS product on AWS Marketplace.<br/>quota:  The maximum number of permitted requests per a given unit time interval.:<br/>throttle:  The request throttle limits of a usage plan.:<br/>apiStages:  The associated API stages of a usage plan.<br/>description:  The description of a usage plan.<br/>name:  The name of a usage plan.<br/>id:  The identifier of a <a>UsagePlan</a> resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>rateLimit</i> The API request steady-state rate limit.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>burstLimit</i> The API request burst limit, the maximum rate limit over a time ranging from one to a few seconds, depending upon whether the underlying token bucket is at its full capacity.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>period</i> The time period in which the limit applies. Valid values are "DAY", "WEEK" or "MONTH".<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>offset</i> The day that a time period starts. For example, with a time period of <code>WEEK</code>, an offset of <code>0</code> starts on Sunday, and an offset of <code>1</code> starts on Monday.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>limit</i> The maximum number of requests that can be made in a given time period.<br/>        """
        pass

    def create_usage_plan_key(self, keyType: str, keyId: str, usagePlanId: str) -> UsagePlanKey:
        r"""Creates a usage plan key for adding an existing API key to a usage plan.

        :param self:
        :param keyType:  [Required] The type of a <a>UsagePlanKey</a> resource for a plan customer.<br/>keyId:  [Required] The identifier of a <a>UsagePlanKey</a> resource for a plan customer.<br/>usagePlanId:  [Required] The Id of the <a>UsagePlan</a> resource representing the usage plan containing the to-be-created <a>UsagePlanKey</a> resource representing a plan customer.<br/>
        :return: name:  The name of a usage plan key.<br/>value:  The value of a usage plan key.<br/>type:  The type of a usage plan key. Currently, the valid key type is <code>API_KEY</code>.<br/>id:  The Id of a usage plan key.<br/>        """
        pass

    def create_vpc_link(self, targetArns: List[String], name: str, description: str=None, tags: MapOfStringToString=None) -> VpcLink:
        r"""Creates a VPC link, under the caller's account in a selected region, in an asynchronous operation that typically takes 2-4 minutes to complete and become operational. The caller must have permissions to create and update VPC Endpoint services.

        :param self:
        :param tags:  The key-value map of strings. The valid character set is [a-zA-Z+-=._:/]. The tag key can be up to 128 characters and must not start with <code>aws:</code>. The tag value can be up to 256 characters.<br/>targetArns:  [Required] The ARN of the network load balancer of the VPC targeted by the VPC link. The network load balancer must be owned by the same AWS account of the API owner.<br/>description:  The description of the VPC link.<br/>name:  [Required] The name used to label and identify the VPC link.<br/>
        :return: tags:  The collection of tags. Each tag element is associated with a given resource.<br/>statusMessage:  A description about the VPC link status.<br/>status:  The status of the VPC link. The valid values are <code>AVAILABLE</code>, <code>PENDING</code>, <code>DELETING</code>, or <code>FAILED</code>. Deploying an API will wait if the status is <code>PENDING</code> and will fail if the status is <code>DELETING</code>.<br/>targetArns:  The ARN of the network load balancer of the VPC targeted by the VPC link. The network load balancer must be owned by the same AWS account of the API owner.<br/>description:  The description of the VPC link.<br/>name:  The name used to label and identify the VPC link.<br/>id:  The identifier of the <a>VpcLink</a>. It is used in an <a>Integration</a> to reference this <a>VpcLink</a>.<br/>        """
        pass

    def delete_api_key(self, apiKey: str):
        r"""Deletes the <a>ApiKey</a> resource.

        :param self:
        :param apiKey:  [Required] The identifier of the <a>ApiKey</a> resource to be deleted.<br/>
        :return:         """
        pass

    def delete_authorizer(self, authorizerId: str, restApiId: str):
        r"""Deletes an existing <a>Authorizer</a> resource. <div class="seeAlso"><a href="https://docs.aws.amazon.com/cli/latest/reference/apigateway/delete-authorizer.html">AWS CLI</a></div>

        :param self:
        :param authorizerId:  [Required] The identifier of the <a>Authorizer</a> resource.<br/>restApiId:  [Required] The string identifier of the associated <a>RestApi</a>.<br/>
        :return:         """
        pass

    def delete_base_path_mapping(self, basePath: str, domainName: str):
        r"""Deletes the <a>BasePathMapping</a> resource.

        :param self:
        :param basePath:  [Required] The base path name of the <a>BasePathMapping</a> resource to delete. To specify an empty base path, set this parameter to <code>'(none)'</code>.<br/>domainName:  [Required] The domain name of the <a>BasePathMapping</a> resource to delete.<br/>
        :return:         """
        pass

    def delete_client_certificate(self, clientCertificateId: str):
        r"""Deletes the <a>ClientCertificate</a> resource.

        :param self:
        :param clientCertificateId:  [Required] The identifier of the <a>ClientCertificate</a> resource to be deleted.<br/>
        :return:         """
        pass

    def delete_deployment(self, deploymentId: str, restApiId: str):
        r"""Deletes a <a>Deployment</a> resource. Deleting a deployment will only succeed if there are no <a>Stage</a> resources associated with it.

        :param self:
        :param deploymentId:  [Required] The identifier of the <a>Deployment</a> resource to delete.<br/>restApiId:  [Required] The string identifier of the associated <a>RestApi</a>.<br/>
        :return:         """
        pass

    def delete_documentation_part(self, documentationPartId: str, restApiId: str):
        r"""

        :param self:
        :param documentationPartId:  [Required] The identifier of the to-be-deleted documentation part.<br/>restApiId:  [Required] The string identifier of the associated <a>RestApi</a>.<br/>
        :return:         """
        pass

    def delete_documentation_version(self, documentationVersion: str, restApiId: str):
        r"""

        :param self:
        :param documentationVersion:  [Required] The version identifier of a to-be-deleted documentation snapshot.<br/>restApiId:  [Required] The string identifier of the associated <a>RestApi</a>.<br/>
        :return:         """
        pass

    def delete_domain_name(self, domainName: str):
        r"""Deletes the <a>DomainName</a> resource.

        :param self:
        :param domainName:  [Required] The name of the <a>DomainName</a> resource to be deleted.<br/>
        :return:         """
        pass

    def delete_gateway_response(self, responseType: str, restApiId: str):
        r"""Clears any customization of a <a>GatewayResponse</a> of a specified response type on the given <a>RestApi</a> and resets it with the default settings.

        :param self:
        :param responseType:  [Required] The response type of the associated <a>GatewayResponse</a>. Valid values are <ul><li>ACCESS_DENIED</li><li>API_CONFIGURATION_ERROR</li><li>AUTHORIZER_FAILURE</li><li> AUTHORIZER_CONFIGURATION_ERROR</li><li>BAD_REQUEST_PARAMETERS</li><li>BAD_REQUEST_BODY</li><li>DEFAULT_4XX</li><li>DEFAULT_5XX</li><li>EXPIRED_TOKEN</li><li>INVALID_SIGNATURE</li><li>INTEGRATION_FAILURE</li><li>INTEGRATION_TIMEOUT</li><li>INVALID_API_KEY</li><li>MISSING_AUTHENTICATION_TOKEN</li><li> QUOTA_EXCEEDED</li><li>REQUEST_TOO_LARGE</li><li>RESOURCE_NOT_FOUND</li><li>THROTTLED</li><li>UNAUTHORIZED</li><li>UNSUPPORTED_MEDIA_TYPE</li></ul> <br/>restApiId:  [Required] The string identifier of the associated <a>RestApi</a>.<br/>
        :return:         """
        pass

    def delete_integration(self, httpMethod: str, resourceId: str, restApiId: str):
        r"""Represents a delete integration.

        :param self:
        :param httpMethod:  [Required] Specifies a delete integration request's HTTP method.<br/>resourceId:  [Required] Specifies a delete integration request's resource identifier.<br/>restApiId:  [Required] The string identifier of the associated <a>RestApi</a>.<br/>
        :return:         """
        pass

    def delete_integration_response(self, statusCode: str, httpMethod: str, resourceId: str, restApiId: str):
        r"""Represents a delete integration response.

        :param self:
        :param statusCode:  [Required] Specifies a delete integration response request's status code.<br/>httpMethod:  [Required] Specifies a delete integration response request's HTTP method.<br/>resourceId:  [Required] Specifies a delete integration response request's resource identifier.<br/>restApiId:  [Required] The string identifier of the associated <a>RestApi</a>.<br/>
        :return:         """
        pass

    def delete_method(self, httpMethod: str, resourceId: str, restApiId: str):
        r"""Deletes an existing <a>Method</a> resource.

        :param self:
        :param httpMethod:  [Required] The HTTP verb of the <a>Method</a> resource.<br/>resourceId:  [Required] The <a>Resource</a> identifier for the <a>Method</a> resource.<br/>restApiId:  [Required] The string identifier of the associated <a>RestApi</a>.<br/>
        :return:         """
        pass

    def delete_method_response(self, statusCode: str, httpMethod: str, resourceId: str, restApiId: str):
        r"""Deletes an existing <a>MethodResponse</a> resource.

        :param self:
        :param statusCode:  [Required] The status code identifier for the <a>MethodResponse</a> resource.<br/>httpMethod:  [Required] The HTTP verb of the <a>Method</a> resource.<br/>resourceId:  [Required] The <a>Resource</a> identifier for the <a>MethodResponse</a> resource.<br/>restApiId:  [Required] The string identifier of the associated <a>RestApi</a>.<br/>
        :return:         """
        pass

    def delete_model(self, modelName: str, restApiId: str):
        r"""Deletes a model.

        :param self:
        :param modelName:  [Required] The name of the model to delete.<br/>restApiId:  [Required] The string identifier of the associated <a>RestApi</a>.<br/>
        :return:         """
        pass

    def delete_request_validator(self, requestValidatorId: str, restApiId: str):
        r"""Deletes a <a>RequestValidator</a> of a given <a>RestApi</a>.

        :param self:
        :param requestValidatorId:  [Required] The identifier of the <a>RequestValidator</a> to be deleted.<br/>restApiId:  [Required] The string identifier of the associated <a>RestApi</a>.<br/>
        :return:         """
        pass

    def delete_resource(self, resourceId: str, restApiId: str):
        r"""Deletes a <a>Resource</a> resource.

        :param self:
        :param resourceId:  [Required] The identifier of the <a>Resource</a> resource.<br/>restApiId:  [Required] The string identifier of the associated <a>RestApi</a>.<br/>
        :return:         """
        pass

    def delete_rest_api(self, restApiId: str):
        r"""Deletes the specified API.

        :param self:
        :param restApiId:  [Required] The string identifier of the associated <a>RestApi</a>.<br/>
        :return:         """
        pass

    def delete_stage(self, stageName: str, restApiId: str):
        r"""Deletes a <a>Stage</a> resource.

        :param self:
        :param stageName:  [Required] The name of the <a>Stage</a> resource to delete.<br/>restApiId:  [Required] The string identifier of the associated <a>RestApi</a>.<br/>
        :return:         """
        pass

    def delete_usage_plan(self, usagePlanId: str):
        r"""Deletes a usage plan of a given plan Id.

        :param self:
        :param usagePlanId:  [Required] The Id of the to-be-deleted usage plan.<br/>
        :return:         """
        pass

    def delete_usage_plan_key(self, keyId: str, usagePlanId: str):
        r"""Deletes a usage plan key and remove the underlying API key from the associated usage plan.

        :param self:
        :param keyId:  [Required] The Id of the <a>UsagePlanKey</a> resource to be deleted.<br/>usagePlanId:  [Required] The Id of the <a>UsagePlan</a> resource representing the usage plan containing the to-be-deleted <a>UsagePlanKey</a> resource representing a plan customer.<br/>
        :return:         """
        pass

    def delete_vpc_link(self, vpcLinkId: str):
        r"""Deletes an existing <a>VpcLink</a> of a specified identifier.

        :param self:
        :param vpcLinkId:  [Required] The identifier of the <a>VpcLink</a>. It is used in an <a>Integration</a> to reference this <a>VpcLink</a>.<br/>
        :return:         """
        pass

    def flush_stage_authorizers_cache(self, stageName: str, restApiId: str):
        r"""Flushes all authorizer cache entries on a stage.

        :param self:
        :param stageName:  The name of the stage to flush.<br/>restApiId:  The string identifier of the associated <a>RestApi</a>.<br/>
        :return:         """
        pass

    def flush_stage_cache(self, stageName: str, restApiId: str):
        r"""Flushes a stage's cache.

        :param self:
        :param stageName:  [Required] The name of the stage to flush its cache.<br/>restApiId:  [Required] The string identifier of the associated <a>RestApi</a>.<br/>
        :return:         """
        pass

    def generate_client_certificate(self, description: str=None, tags: MapOfStringToString=None) -> ClientCertificate:
        r"""Generates a <a>ClientCertificate</a> resource.

        :param self:
        :param tags:  The key-value map of strings. The valid character set is [a-zA-Z+-=._:/]. The tag key can be up to 128 characters and must not start with <code>aws:</code>. The tag value can be up to 256 characters.<br/>description:  The description of the <a>ClientCertificate</a>.<br/>
        :return: tags:  The collection of tags. Each tag element is associated with a given resource.<br/>expirationDate:  The timestamp when the client certificate will expire.<br/>createdDate:  The timestamp when the client certificate was created.<br/>pemEncodedCertificate:  The PEM-encoded public key of the client certificate, which can be used to configure certificate authentication in the integration endpoint .<br/>description:  The description of the client certificate.<br/>clientCertificateId:  The identifier of the client certificate.<br/>        """
        pass

    def get_account(self) -> Account:
        r"""Gets information about the current <a>Account</a> resource.

        :param self:
        :param 
        :return: apiKeyVersion:  The version of the API keys used for the account.<br/>features:  A list of features supported for the account. When usage plans are enabled, the features list will include an entry of <code>"UsagePlans"</code>.<br/>throttleSettings:  Specifies the API request limits configured for the current <a>Account</a>.:<br/>cloudwatchRoleArn:  The ARN of an Amazon CloudWatch role for the current <a>Account</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>rateLimit</i> The API request steady-state rate limit.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>burstLimit</i> The API request burst limit, the maximum rate limit over a time ranging from one to a few seconds, depending upon whether the underlying token bucket is at its full capacity.<br/>        """
        pass

    def get_api_key(self, apiKey: str, includeValue: NullableBoolean=None) -> ApiKey:
        r"""Gets information about the current <a>ApiKey</a> resource.

        :param self:
        :param includeValue:  A boolean flag to specify whether (<code>true</code>) or not (<code>false</code>) the result contains the key value.<br/>apiKey:  [Required] The identifier of the <a>ApiKey</a> resource.<br/>
        :return: tags:  The collection of tags. Each tag element is associated with a given resource.<br/>stageKeys:  A list of <a>Stage</a> resources that are associated with the <a>ApiKey</a> resource.<br/>lastUpdatedDate:  The timestamp when the API Key was last updated.<br/>createdDate:  The timestamp when the API Key was created.<br/>enabled:  Specifies whether the API Key can be used by callers.<br/>description:  The description of the API Key.<br/>customerId:  An AWS Marketplace customer identifier , when integrating with the AWS SaaS Marketplace.<br/>name:  The name of the API Key.<br/>value:  The value of the API Key.<br/>id:  The identifier of the API Key.<br/>        """
        pass

    def get_api_keys(self, position: str=None, limit: int=None, nameQuery: str=None, customerId: str=None, includeValues: NullableBoolean=None) -> ApiKeys:
        r"""Gets information about the current <a>ApiKeys</a> resource.

        :param self:
        :param includeValues:  A boolean flag to specify whether (<code>true</code>) or not (<code>false</code>) the result contains key values.<br/>customerId:  The identifier of a customer in AWS Marketplace or an external system, such as a developer portal.<br/>nameQuery:  The name of queried API keys.<br/>limit:  The maximum number of returned results per page. The default value is 25 and the maximum value is 500.<br/>position:  The current pagination position in the paged result set.<br/>
        :return: items:  The current page of elements from this collection.<br/>position:  <br/>warnings:  A list of warning messages logged during the import of API keys when the <code>failOnWarnings</code> option is set to true.<br/>        """
        pass

    def get_authorizer(self, authorizerId: str, restApiId: str) -> Authorizer:
        r"""Describe an existing <a>Authorizer</a> resource. <div class="seeAlso"><a href="https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-authorizer.html">AWS CLI</a></div>

        :param self:
        :param authorizerId:  [Required] The identifier of the <a>Authorizer</a> resource.<br/>restApiId:  [Required] The string identifier of the associated <a>RestApi</a>.<br/>
        :return: authorizerResultTtlInSeconds:  The TTL in seconds of cached authorizer results. If it equals 0, authorization caching is disabled. If it is greater than 0, API Gateway will cache authorizer responses. If this field is not set, the default value is 300. The maximum value is 3600, or 1 hour.<br/>identityValidationExpression:  A validation expression for the incoming identity token. For <code>TOKEN</code> authorizers, this value is a regular expression. For <code>COGNITO_USER_POOLS</code> authorizers, API Gateway will match the <code>aud</code> field of the incoming token from the client against the specified regular expression. It will invoke the authorizer's Lambda function when there is a match. Otherwise, it will return a 401 Unauthorized response without calling the Lambda function. The validation expression does not apply to the <code>REQUEST</code> authorizer.<br/>identitySource:  The identity source for which authorization is requested. <ul><li>For a <code>TOKEN</code> or <code>COGNITO_USER_POOLS</code> authorizer, this is required and specifies the request header mapping expression for the custom header holding the authorization token submitted by the client. For example, if the token header name is <code>Auth</code>, the header mapping expression is <code>method.request.header.Auth</code>.</li><li>For the <code>REQUEST</code> authorizer, this is required when authorization caching is enabled. The value is a comma-separated string of one or more mapping expressions of the specified request parameters. For example, if an <code>Auth</code> header, a <code>Name</code> query string parameter are defined as identity sources, this value is <code>method.request.header.Auth, method.request.querystring.Name</code>. These parameters will be used to derive the authorization caching key and to perform runtime validation of the <code>REQUEST</code> authorizer by verifying all of the identity-related request parameters are present, not null and non-empty. Only when this is true does the authorizer invoke the authorizer Lambda function, otherwise, it returns a 401 Unauthorized response without calling the Lambda function. The valid value is a string of comma-separated mapping expressions of the specified request parameters. When the authorization caching is not enabled, this property is optional.</li></ul><br/>authorizerCredentials:  Specifies the required credentials as an IAM role for API Gateway to invoke the authorizer. To specify an IAM role for API Gateway to assume, use the role's Amazon Resource Name (ARN). To use resource-based permissions on the Lambda function, specify null.<br/>authorizerUri:  Specifies the authorizer's Uniform Resource Identifier (URI). For <code>TOKEN</code> or <code>REQUEST</code> authorizers, this must be a well-formed Lambda function URI, for example, <code>arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:{account_id}:function:{lambda_function_name}/invocations</code>. In general, the URI has this form <code>arn:aws:apigateway:{region}:lambda:path/{service_api}</code>, where <code>{region}</code> is the same as the region hosting the Lambda function, <code>path</code> indicates that the remaining substring in the URI should be treated as the path to the resource, including the initial <code>/</code>. For Lambda functions, this is usually of the form <code>/2015-03-31/functions/[FunctionARN]/invocations</code>.<br/>authType:  Optional customer-defined field, used in OpenAPI imports and exports without functional impact.<br/>providerARNs:  A list of the Amazon Cognito user pool ARNs for the <code>COGNITO_USER_POOLS</code> authorizer. Each element is of this format: <code>arn:aws:cognito-idp:{region}:{account_id}:userpool/{user_pool_id}</code>. For a <code>TOKEN</code> or <code>REQUEST</code> authorizer, this is not defined.<br/>type:  The authorizer type. Valid values are <code>TOKEN</code> for a Lambda function using a single authorization token submitted in a custom header, <code>REQUEST</code> for a Lambda function using incoming request parameters, and <code>COGNITO_USER_POOLS</code> for using an Amazon Cognito user pool.<br/>name:  [Required] The name of the authorizer.<br/>id:  The identifier for the authorizer resource.<br/>        """
        pass

    def get_authorizers(self, restApiId: str, position: str=None, limit: int=None) -> Authorizers:
        r"""Describe an existing <a>Authorizers</a> resource. <div class="seeAlso"><a href="https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-authorizers.html">AWS CLI</a></div>

        :param self:
        :param limit:  The maximum number of returned results per page. The default value is 25 and the maximum value is 500.<br/>position:  The current pagination position in the paged result set.<br/>restApiId:  [Required] The string identifier of the associated <a>RestApi</a>.<br/>
        :return: items:  The current page of elements from this collection.<br/>position:  <br/>        """
        pass

    def get_base_path_mapping(self, basePath: str, domainName: str) -> BasePathMapping:
        r"""Describe a <a>BasePathMapping</a> resource.

        :param self:
        :param basePath:  [Required] The base path name that callers of the API must provide as part of the URL after the domain name. This value must be unique for all of the mappings across a single API. Specify '(none)' if you do not want callers to specify any base path name after the domain name.<br/>domainName:  [Required] The domain name of the <a>BasePathMapping</a> resource to be described.<br/>
        :return: stage:  The name of the associated stage.<br/>restApiId:  The string identifier of the associated <a>RestApi</a>.<br/>basePath:  The base path name that callers of the API must provide as part of the URL after the domain name.<br/>        """
        pass

    def get_base_path_mappings(self, domainName: str, position: str=None, limit: int=None) -> BasePathMappings:
        r"""Represents a collection of <a>BasePathMapping</a> resources.

        :param self:
        :param limit:  The maximum number of returned results per page. The default value is 25 and the maximum value is 500.<br/>position:  The current pagination position in the paged result set.<br/>domainName:  [Required] The domain name of a <a>BasePathMapping</a> resource.<br/>
        :return: items:  The current page of elements from this collection.<br/>position:  <br/>        """
        pass

    def get_client_certificate(self, clientCertificateId: str) -> ClientCertificate:
        r"""Gets information about the current <a>ClientCertificate</a> resource.

        :param self:
        :param clientCertificateId:  [Required] The identifier of the <a>ClientCertificate</a> resource to be described.<br/>
        :return: tags:  The collection of tags. Each tag element is associated with a given resource.<br/>expirationDate:  The timestamp when the client certificate will expire.<br/>createdDate:  The timestamp when the client certificate was created.<br/>pemEncodedCertificate:  The PEM-encoded public key of the client certificate, which can be used to configure certificate authentication in the integration endpoint .<br/>description:  The description of the client certificate.<br/>clientCertificateId:  The identifier of the client certificate.<br/>        """
        pass

    def get_client_certificates(self, position: str=None, limit: int=None) -> ClientCertificates:
        r"""Gets a collection of <a>ClientCertificate</a> resources.

        :param self:
        :param limit:  The maximum number of returned results per page. The default value is 25 and the maximum value is 500.<br/>position:  The current pagination position in the paged result set.<br/>
        :return: items:  The current page of elements from this collection.<br/>position:  <br/>        """
        pass

    def get_deployment(self, deploymentId: str, restApiId: str, embed: List[String]=None) -> Deployment:
        r"""Gets information about a <a>Deployment</a> resource.

        :param self:
        :param embed:  A query parameter to retrieve the specified embedded resources of the returned <a>Deployment</a> resource in the response. In a REST API call, this <code>embed</code> parameter value is a list of comma-separated strings, as in <code>GET /restapis/{restapi_id}/deployments/{deployment_id}?embed=var1,var2</code>. The SDK and other platform-dependent libraries might use a different format for the list. Currently, this request supports only retrieval of the embedded API summary this way. Hence, the parameter value must be a single-valued list containing only the <code>"apisummary"</code> string. For example, <code>GET /restapis/{restapi_id}/deployments/{deployment_id}?embed=apisummary</code>.<br/>deploymentId:  [Required] The identifier of the <a>Deployment</a> resource to get information about.<br/>restApiId:  [Required] The string identifier of the associated <a>RestApi</a>.<br/>
        :return: apiSummary:  A summary of the <a>RestApi</a> at the date and time that the deployment resource was created.<br/>createdDate:  The date and time that the deployment resource was created.<br/>description:  The description for the deployment resource.<br/>id:  The identifier for the deployment resource.<br/>        """
        pass

    def get_deployments(self, restApiId: str, position: str=None, limit: int=None) -> Deployments:
        r"""Gets information about a <a>Deployments</a> collection.

        :param self:
        :param limit:  The maximum number of returned results per page. The default value is 25 and the maximum value is 500.<br/>position:  The current pagination position in the paged result set.<br/>restApiId:  [Required] The string identifier of the associated <a>RestApi</a>.<br/>
        :return: items:  The current page of elements from this collection.<br/>position:  <br/>        """
        pass

    def get_documentation_part(self, documentationPartId: str, restApiId: str) -> DocumentationPart:
        r"""

        :param self:
        :param documentationPartId:  [Required] The string identifier of the associated <a>RestApi</a>.<br/>restApiId:  [Required] The string identifier of the associated <a>RestApi</a>.<br/>
        :return: properties:  A content map of API-specific key-value pairs describing the targeted API entity. The map must be encoded as a JSON string, e.g., <code>"{ \"description\": \"The API does ...\" }"</code>. Only OpenAPI-compliant documentation-related fields from the <literal>properties</literal> map are exported and, hence, published as part of the API entity definitions, while the original documentation parts are exported in a OpenAPI extension of <code>x-amazon-apigateway-documentation</code>.<br/>location:  The location of the API entity to which the documentation applies. Valid fields depend on the targeted API entity type. All the valid location fields are not required. If not explicitly specified, a valid location field is treated as a wildcard and associated documentation content may be inherited by matching entities, unless overridden.:<br/>id:  The <a>DocumentationPart</a> identifier, generated by API Gateway when the <code>DocumentationPart</code> is created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the targeted API entity. It is a valid and required field for the API entity types of <code>AUTHORIZER</code>, <code>MODEL</code>, <code>PATH_PARAMETER</code>, <code>QUERY_PARAMETER</code>, <code>REQUEST_HEADER</code>, <code>REQUEST_BODY</code> and <code>RESPONSE_HEADER</code>. It is an invalid field for any other entity type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusCode</i> The HTTP status code of a response. It is a valid field for the API entity types of <code>RESPONSE</code>, <code>RESPONSE_HEADER</code>, and <code>RESPONSE_BODY</code>. The default value is <code>*</code> for any status code. When an applicable child entity inherits the content of an entity of the same type with more general specifications of the other <code>location</code> attributes, the child entity's <code>statusCode</code> attribute must match that of the parent entity exactly.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>method</i> The HTTP verb of a method. It is a valid field for the API entity types of <code>METHOD</code>, <code>PATH_PARAMETER</code>, <code>QUERY_PARAMETER</code>, <code>REQUEST_HEADER</code>, <code>REQUEST_BODY</code>, <code>RESPONSE</code>, <code>RESPONSE_HEADER</code>, and <code>RESPONSE_BODY</code>. The default value is <code>*</code> for any method. When an applicable child entity inherits the content of an entity of the same type with more general specifications of the other <code>location</code> attributes, the child entity's <code>method</code> attribute must match that of the parent entity exactly.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>path</i> The URL path of the target. It is a valid field for the API entity types of <code>RESOURCE</code>, <code>METHOD</code>, <code>PATH_PARAMETER</code>, <code>QUERY_PARAMETER</code>, <code>REQUEST_HEADER</code>, <code>REQUEST_BODY</code>, <code>RESPONSE</code>, <code>RESPONSE_HEADER</code>, and <code>RESPONSE_BODY</code>. The default value is <code>/</code> for the root resource. When an applicable child entity inherits the content of another entity of the same type with more general specifications of the other <code>location</code> attributes, the child entity's <code>path</code> attribute must match that of the parent entity as a prefix.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> [Required] The type of API entity to which the documentation content applies. Valid values are <code>API</code>, <code>AUTHORIZER</code>, <code>MODEL</code>, <code>RESOURCE</code>, <code>METHOD</code>, <code>PATH_PARAMETER</code>, <code>QUERY_PARAMETER</code>, <code>REQUEST_HEADER</code>, <code>REQUEST_BODY</code>, <code>RESPONSE</code>, <code>RESPONSE_HEADER</code>, and <code>RESPONSE_BODY</code>. Content inheritance does not apply to any entity of the <code>API</code>, <code>AUTHORIZER</code>, <code>METHOD</code>, <code>MODEL</code>, <code>REQUEST_BODY</code>, or <code>RESOURCE</code> type.<br/>        """
        pass

    def get_documentation_parts(self, restApiId: str, type: str=None, nameQuery: str=None, path: str=None, position: str=None, limit: int=None, locationStatus: str=None) -> DocumentationParts:
        r"""

        :param self:
        :param locationStatus:  The status of the API documentation parts to retrieve. Valid values are <code>DOCUMENTED</code> for retrieving <a>DocumentationPart</a> resources with content and <code>UNDOCUMENTED</code> for <a>DocumentationPart</a> resources without content.<br/>limit:  The maximum number of returned results per page. The default value is 25 and the maximum value is 500.<br/>position:  The current pagination position in the paged result set.<br/>path:  The path of API entities of the to-be-retrieved documentation parts.<br/>nameQuery:  The name of API entities of the to-be-retrieved documentation parts.<br/>type:  The type of API entities of the to-be-retrieved documentation parts. <br/>restApiId:  [Required] The string identifier of the associated <a>RestApi</a>.<br/>
        :return: items:  The current page of elements from this collection.<br/>position:  <br/>        """
        pass

    def get_documentation_version(self, documentationVersion: str, restApiId: str) -> DocumentationVersion:
        r"""

        :param self:
        :param documentationVersion:  [Required] The version identifier of the to-be-retrieved documentation snapshot.<br/>restApiId:  [Required] The string identifier of the associated <a>RestApi</a>.<br/>
        :return: description:  The description of the API documentation snapshot.<br/>createdDate:  The date when the API documentation snapshot is created.<br/>version:  The version identifier of the API documentation snapshot.<br/>        """
        pass

    def get_documentation_versions(self, restApiId: str, position: str=None, limit: int=None) -> DocumentationVersions:
        r"""

        :param self:
        :param limit:  The maximum number of returned results per page. The default value is 25 and the maximum value is 500.<br/>position:  The current pagination position in the paged result set.<br/>restApiId:  [Required] The string identifier of the associated <a>RestApi</a>.<br/>
        :return: items:  The current page of elements from this collection.<br/>position:  <br/>        """
        pass

    def get_domain_name(self, domainName: str) -> DomainName:
        r"""Represents a domain name that is contained in a simpler, more intuitive URL that can be called.

        :param self:
        :param domainName:  [Required] The name of the <a>DomainName</a> resource.<br/>
        :return: mutualTlsAuthentication:  The mutual TLS authentication configuration for a custom domain name. If specified, API Gateway performs two-way authentication between the client and the server. Clients must present a trusted certificate to access your API.:<br/>tags:  The collection of tags. Each tag element is associated with a given resource.<br/>securityPolicy:  The Transport Layer Security (TLS) version + cipher suite for this <a>DomainName</a>. The valid values are <code>TLS_1_0</code> and <code>TLS_1_2</code>.<br/>domainNameStatusMessage:  An optional text message containing detailed information about status of the <a>DomainName</a> migration.<br/>domainNameStatus:  The status of the <a>DomainName</a> migration. The valid values are <code>AVAILABLE</code> and <code>UPDATING</code>. If the status is <code>UPDATING</code>, the domain cannot be modified further until the existing operation is complete. If it is <code>AVAILABLE</code>, the domain can be updated.<br/>endpointConfiguration:  The endpoint configuration of this <a>DomainName</a> showing the endpoint types of the domain name.:<br/>distributionHostedZoneId:  The region-agnostic Amazon Route 53 Hosted Zone ID of the edge-optimized endpoint. The valid value is <code>Z2FDTNDATAQYW2</code> for all the regions. For more information, see <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-regional-api-custom-domain-create.html">Set up a Regional Custom Domain Name</a> and <a href="https://docs.aws.amazon.com/general/latest/gr/rande.html#apigateway_region">AWS Regions and Endpoints for API Gateway</a>. <br/>distributionDomainName:  The domain name of the Amazon CloudFront distribution associated with this custom domain name for an edge-optimized endpoint. You set up this association when adding a DNS record pointing the custom domain name to this distribution name. For more information about CloudFront distributions, see the <a href="https://aws.amazon.com/documentation/cloudfront/" target="_blank">Amazon CloudFront documentation</a>.<br/>regionalCertificateArn:  The reference to an AWS-managed certificate that will be used for validating the regional domain name. AWS Certificate Manager is the only supported source.<br/>regionalCertificateName:  The name of the certificate that will be used for validating the regional domain name.<br/>regionalHostedZoneId:  The region-specific Amazon Route 53 Hosted Zone ID of the regional endpoint. For more information, see <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-regional-api-custom-domain-create.html">Set up a Regional Custom Domain Name</a> and <a href="https://docs.aws.amazon.com/general/latest/gr/rande.html#apigateway_region">AWS Regions and Endpoints for API Gateway</a>. <br/>regionalDomainName:  The domain name associated with the regional endpoint for this custom domain name. You set up this association by adding a DNS record that points the custom domain name to this regional domain name. The regional domain name is returned by API Gateway when you create a regional endpoint.<br/>certificateUploadDate:  The timestamp when the certificate that was used by edge-optimized endpoint for this domain name was uploaded.<br/>certificateArn:  The reference to an AWS-managed certificate that will be used by edge-optimized endpoint for this domain name. AWS Certificate Manager is the only supported source.<br/>certificateName:  The name of the certificate that will be used by edge-optimized endpoint for this domain name.<br/>domainName:  The custom domain name as an API host name, for example, <code>my-api.example.com</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>vpcEndpointIds</i> A list of VpcEndpointIds of an API (<a>RestApi</a>) against which to create Route53 ALIASes. It is only supported for <code>PRIVATE</code> endpoint type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>types</i> A list of endpoint types of an API (<a>RestApi</a>) or its custom domain name (<a>DomainName</a>). For an edge-optimized API and its custom domain name, the endpoint type is <code>"EDGE"</code>. For a regional API and its custom domain name, the endpoint type is <code>REGIONAL</code>. For a private API, the endpoint type is <code>PRIVATE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>truststoreWarnings</i> A list of warnings that API Gateway returns while processing your truststore. Invalid certificates produce warnings. Mutual TLS is still enabled, but some clients might not be able to access your API. To resolve warnings, upload a new truststore to S3, and then update you domain name to use the new version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>truststoreVersion</i> The version of the S3 object that contains your truststore. To specify a version, you must have versioning enabled for the S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>truststoreUri</i> An Amazon S3 URL that specifies the truststore for mutual TLS authentication, for example <code>s3://bucket-name/key-name</code>. The truststore can contain certificates from public or private certificate authorities. To update the truststore, upload a new version to S3, and then update your custom domain name to use the new version. To update the truststore, you must have permissions to access the S3 object.<br/>        """
        pass

    def get_domain_names(self, position: str=None, limit: int=None) -> DomainNames:
        r"""Represents a collection of <a>DomainName</a> resources.

        :param self:
        :param limit:  The maximum number of returned results per page. The default value is 25 and the maximum value is 500.<br/>position:  The current pagination position in the paged result set.<br/>
        :return: items:  The current page of elements from this collection.<br/>position:  <br/>        """
        pass

    def get_export(self, exportType: str, stageName: str, restApiId: str, parameters: MapOfStringToString=None, accepts: str=None) -> ExportResponse:
        r"""Exports a deployed version of a <a>RestApi</a> in a specified format.

        :param self:
        :param accepts:  The content-type of the export, for example <code>application/json</code>. Currently <code>application/json</code> and <code>application/yaml</code> are supported for <code>exportType</code> of<code>oas30</code> and <code>swagger</code>. This should be specified in the <code>Accept</code> header for direct API requests.<br/>parameters:  A key-value map of query string parameters that specify properties of the export, depending on the requested <code>exportType</code>. For <code>exportType</code> <code>oas30</code> and <code>swagger</code>, any combination of the following parameters are supported: <code>extensions='integrations'</code> or <code>extensions='apigateway'</code> will export the API with x-amazon-apigateway-integration extensions. <code>extensions='authorizers'</code> will export the API with x-amazon-apigateway-authorizer extensions. <code>postman</code> will export the API with Postman extensions, allowing for import to the Postman tool<br/>exportType:  [Required] The type of export. Acceptable values are 'oas30' for OpenAPI 3.0.x and 'swagger' for Swagger/OpenAPI 2.0.<br/>stageName:  [Required] The name of the <a>Stage</a> that will be exported.<br/>restApiId:  [Required] The string identifier of the associated <a>RestApi</a>.<br/>
        :return: body:  The binary blob response to <a>GetExport</a>, which contains the export.<br/>contentDisposition:  The content-disposition header value in the HTTP response.<br/>contentType:  The content-type header value in the HTTP response. This will correspond to a valid 'accept' type in the request.<br/>        """
        pass

    def get_gateway_response(self, responseType: str, restApiId: str) -> GatewayResponse:
        r"""Gets a <a>GatewayResponse</a> of a specified response type on the given <a>RestApi</a>.

        :param self:
        :param responseType:  [Required] The response type of the associated <a>GatewayResponse</a>. Valid values are <ul><li>ACCESS_DENIED</li><li>API_CONFIGURATION_ERROR</li><li>AUTHORIZER_FAILURE</li><li> AUTHORIZER_CONFIGURATION_ERROR</li><li>BAD_REQUEST_PARAMETERS</li><li>BAD_REQUEST_BODY</li><li>DEFAULT_4XX</li><li>DEFAULT_5XX</li><li>EXPIRED_TOKEN</li><li>INVALID_SIGNATURE</li><li>INTEGRATION_FAILURE</li><li>INTEGRATION_TIMEOUT</li><li>INVALID_API_KEY</li><li>MISSING_AUTHENTICATION_TOKEN</li><li> QUOTA_EXCEEDED</li><li>REQUEST_TOO_LARGE</li><li>RESOURCE_NOT_FOUND</li><li>THROTTLED</li><li>UNAUTHORIZED</li><li>UNSUPPORTED_MEDIA_TYPE</li></ul> <br/>restApiId:  [Required] The string identifier of the associated <a>RestApi</a>.<br/>
        :return: defaultResponse:  A Boolean flag to indicate whether this <a>GatewayResponse</a> is the default gateway response (<code>true</code>) or not (<code>false</code>). A default gateway response is one generated by API Gateway without any customization by an API developer. <br/>responseTemplates:  Response templates of the <a>GatewayResponse</a> as a string-to-string map of key-value pairs.<br/>responseParameters:  Response parameters (paths, query strings and headers) of the <a>GatewayResponse</a> as a string-to-string map of key-value pairs.<br/>statusCode:  The HTTP status code for this <a>GatewayResponse</a>.<br/>responseType:  The response type of the associated <a>GatewayResponse</a>. Valid values are <ul><li>ACCESS_DENIED</li><li>API_CONFIGURATION_ERROR</li><li>AUTHORIZER_FAILURE</li><li> AUTHORIZER_CONFIGURATION_ERROR</li><li>BAD_REQUEST_PARAMETERS</li><li>BAD_REQUEST_BODY</li><li>DEFAULT_4XX</li><li>DEFAULT_5XX</li><li>EXPIRED_TOKEN</li><li>INVALID_SIGNATURE</li><li>INTEGRATION_FAILURE</li><li>INTEGRATION_TIMEOUT</li><li>INVALID_API_KEY</li><li>MISSING_AUTHENTICATION_TOKEN</li><li> QUOTA_EXCEEDED</li><li>REQUEST_TOO_LARGE</li><li>RESOURCE_NOT_FOUND</li><li>THROTTLED</li><li>UNAUTHORIZED</li><li>UNSUPPORTED_MEDIA_TYPE</li></ul> <br/>        """
        pass

    def get_gateway_responses(self, restApiId: str, position: str=None, limit: int=None) -> GatewayResponses:
        r"""Gets the <a>GatewayResponses</a> collection on the given <a>RestApi</a>. If an API developer has not added any definitions for gateway responses, the result will be the API Gateway-generated default <a>GatewayResponses</a> collection for the supported response types.

        :param self:
        :param limit:  The maximum number of returned results per page. The default value is 25 and the maximum value is 500. The <a>GatewayResponses</a> collection does not support pagination and the limit does not apply here.<br/>position:  The current pagination position in the paged result set. The <a>GatewayResponse</a> collection does not support pagination and the position does not apply here.<br/>restApiId:  [Required] The string identifier of the associated <a>RestApi</a>.<br/>
        :return: items:  Returns the entire collection, because of no pagination support.<br/>position:  <br/>        """
        pass

    def get_integration(self, httpMethod: str, resourceId: str, restApiId: str) -> Integration:
        r"""Get the integration settings.

        :param self:
        :param httpMethod:  [Required] Specifies a get integration request's HTTP method.<br/>resourceId:  [Required] Specifies a get integration request's resource identifier<br/>restApiId:  [Required] The string identifier of the associated <a>RestApi</a>.<br/>
        :return: tlsConfig:  Specifies the TLS configuration for an integration.:<br/>integrationResponses:  Specifies the integration's responses. <div class="remarks"> <p/> <h4>Example: Get integration responses of a method</h4> <h5>Request</h5> <p/> <pre><code>GET /restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200 HTTP/1.1 Content-Type: application/json Host: apigateway.us-east-1.amazonaws.com X-Amz-Date: 20160607T191449Z Authorization: AWS4-HMAC-SHA256 Credential={access_key_ID}/20160607/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash} </code></pre> <h5>Response</h5> The successful response returns <code>200 OK</code> status and a payload as follows: <pre><code>{ "_links": { "curies": { "href": "https://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-response-{rel}.html", "name": "integrationresponse", "templated": true }, "self": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200", "title": "200" }, "integrationresponse:delete": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200" }, "integrationresponse:update": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200" } }, "responseParameters": { "method.response.header.Content-Type": "'application/xml'" }, "responseTemplates": { "application/json": "$util.urlDecode(\"%3CkinesisStreams%3E#foreach($stream in $input.path('$.StreamNames'))%3Cstream%3E%3Cname%3E$stream%3C/name%3E%3C/stream%3E#end%3C/kinesisStreams%3E\")\n" }, "statusCode": "200" }</code></pre> <p/> </div> <div class="seeAlso"> <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-create-api.html">Creating an API</a> </div><br/>cacheKeyParameters:  A list of request parameters whose values API Gateway caches. To be valid values for <code>cacheKeyParameters</code>, these parameters must also be specified for <a>Method</a> <code>requestParameters</code>.<br/>cacheNamespace:  Specifies a group of related cached parameters. By default, API Gateway uses the resource ID as the <code>cacheNamespace</code>. You can specify the same <code>cacheNamespace</code> across resources to return the same cached data for requests to different resources.<br/>timeoutInMillis:  Custom timeout between 50 and 29,000 milliseconds. The default value is 29,000 milliseconds or 29 seconds.<br/>contentHandling:  Specifies how to handle request payload content type conversions. Supported values are <code>CONVERT_TO_BINARY</code> and <code>CONVERT_TO_TEXT</code>, with the following behaviors: <ul> <li><code>CONVERT_TO_BINARY</code>: Converts a request payload from a Base64-encoded string to the corresponding binary blob.</li> <li><code>CONVERT_TO_TEXT</code>: Converts a request payload from a binary blob to a Base64-encoded string.</li> </ul> If this property is not defined, the request payload will be passed through from the method request to integration request without modification, provided that the <code>passthroughBehavior</code> is configured to support payload pass-through.<br/>passthroughBehavior:  <div>  Specifies how the method request body of an unmapped content type will be passed through the integration request to the back end without transformation. A content type is unmapped if no mapping template is defined in the integration or the content type does not match any of the mapped content types, as specified in <code>requestTemplates</code>. The valid value is one of the following:  <ul> <li> <code>WHEN_NO_MATCH</code>: passes the method request body through the integration request to the back end without transformation when the method request content type does not match any content type associated with the mapping templates defined in the integration request. </li> <li> <code>WHEN_NO_TEMPLATES</code>: passes the method request body through the integration request to the back end without transformation when no mapping template is defined in the integration request. If a template is defined when this option is selected, the method request of an unmapped content-type will be rejected with an HTTP <code>415 Unsupported Media Type</code> response. </li> <li> <code>NEVER</code>: rejects the method request with an HTTP <code>415 Unsupported Media Type</code> response when either the method request content type does not match any content type associated with the mapping templates defined in the integration request or no mapping template is defined in the integration request. </li> </ul> </div><br/>requestTemplates:  Represents a map of Velocity templates that are applied on the request payload based on the value of the Content-Type header sent by the client. The content type value is the key in this map, and the template (as a String) is the value.<br/>requestParameters:  A key-value map specifying request parameters that are passed from the method request to the back end. The key is an integration request parameter name and the associated value is a method request parameter value or static value that must be enclosed within single quotes and pre-encoded as required by the back end. The method request parameter value must match the pattern of <code>method.request.{location}.{name}</code>, where <code>location</code> is <code>querystring</code>, <code>path</code>, or <code>header</code> and <code>name</code> must be a valid and unique method request parameter name.<br/>credentials:  Specifies the credentials required for the integration, if any. For AWS integrations, three options are available. To specify an IAM Role for API Gateway to assume, use the role's Amazon Resource Name (ARN). To require that the caller's identity be passed through from the request, specify the string <code>arn:aws:iam::\*:user/\*</code>. To use resource-based permissions on supported AWS services, specify null.<br/>connectionId:  The (<a href="https://docs.aws.amazon.com/apigateway/api-reference/resource/vpc-link/#id"><code>id</code></a>) of the <a>VpcLink</a> used for the integration when <code>connectionType=VPC_LINK</code> and undefined, otherwise.<br/>connectionType:  The type of the network connection to the integration endpoint. The valid value is <code>INTERNET</code> for connections through the public routable internet or <code>VPC_LINK</code> for private connections between API Gateway and a network load balancer in a VPC. The default value is <code>INTERNET</code>.<br/>uri:  Specifies Uniform Resource Identifier (URI) of the integration endpoint. <ul> <li> For <code>HTTP</code> or <code>HTTP_PROXY</code> integrations, the URI must be a fully formed, encoded HTTP(S) URL according to the <a href="https://en.wikipedia.org/wiki/Uniform_Resource_Identifier" target="_blank">RFC-3986 specification</a>, for either standard integration, where <code>connectionType</code> is not <code>VPC_LINK</code>, or private integration, where <code>connectionType</code> is <code>VPC_LINK</code>. For a private HTTP integration, the URI is not used for routing.  </li> <li> For <code>AWS</code> or <code>AWS_PROXY</code> integrations, the URI is of the form <code>arn:aws:apigateway:{region}:{subdomain.service|service}:path|action/{service_api}</code>. Here, <code>{Region}</code> is the API Gateway region (e.g., <code>us-east-1</code>); <code>{service}</code> is the name of the integrated AWS service (e.g., <code>s3</code>); and <code>{subdomain}</code> is a designated subdomain supported by certain AWS service for fast host-name lookup. <code>action</code> can be used for an AWS service action-based API, using an <code>Action={name}&amp;{p1}={v1}&amp;p2={v2}...</code> query string. The ensuing <code>{service_api}</code> refers to a supported action <code>{name}</code> plus any required input parameters. Alternatively, <code>path</code> can be used for an AWS service path-based API. The ensuing <code>service_api</code> refers to the path to an AWS service resource, including the region of the integrated AWS service, if applicable. For example, for integration with the S3 API of <code><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectGET.html">GetObject</a></code>, the <code>uri</code> can be either <code>arn:aws:apigateway:us-west-2:s3:action/GetObject&amp;Bucket={bucket}&amp;Key={key}</code> or <code>arn:aws:apigateway:us-west-2:s3:path/{bucket}/{key}</code> </li></ul><br/>httpMethod:  Specifies the integration's HTTP method type.<br/>type:  Specifies an API method integration type. The valid value is one of the following: <ul> <li><code>AWS</code>: for integrating the API method request with an AWS service action, including the Lambda function-invoking action. With the Lambda function-invoking action, this is referred to as the Lambda custom integration. With any other AWS service action, this is known as AWS integration.</li> <li><code>AWS_PROXY</code>: for integrating the API method request with the Lambda function-invoking action with the client request passed through as-is. This integration is also referred to as the Lambda proxy integration.</li> <li><code>HTTP</code>: for integrating the API method request with an HTTP endpoint, including a private HTTP endpoint within a VPC. This integration is also referred to as the HTTP custom integration.</li> <li><code>HTTP_PROXY</code>: for integrating the API method request with an HTTP endpoint, including a private HTTP endpoint within a VPC, with the client request passed through as-is. This is also referred to as the HTTP proxy integration.</li> <li><code>MOCK</code>: for integrating the API method request with API Gateway as a "loop-back" endpoint without invoking any backend.</li> </ul> For the HTTP and HTTP proxy integrations, each integration can specify a protocol (<code>http/https</code>), port and path. Standard 80 and 443 ports are supported as well as custom ports above 1024. An HTTP or HTTP proxy integration with a <code>connectionType</code> of <code>VPC_LINK</code> is referred to as a private integration and uses a <a>VpcLink</a> to connect API Gateway to a network load balancer of a VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>insecureSkipVerification</i> Specifies whether or not API Gateway skips verification that the certificate for an integration endpoint is issued by a <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-supported-certificate-authorities-for-http-endpoints.html">supported certificate authority</a>. This isn’t recommended, but it enables you to use certificates that are signed by private certificate authorities, or certificates that are self-signed. If enabled, API Gateway still performs basic certificate validation, which includes checking the certificate's expiration date, hostname, and presence of a root certificate authority. Supported only for <code>HTTP</code> and <code>HTTP_PROXY</code> integrations.<br/>        """
        pass

    def get_integration_response(self, statusCode: str, httpMethod: str, resourceId: str, restApiId: str) -> IntegrationResponse:
        r"""Represents a get integration response.

        :param self:
        :param statusCode:  [Required] Specifies a get integration response request's status code.<br/>httpMethod:  [Required] Specifies a get integration response request's HTTP method.<br/>resourceId:  [Required] Specifies a get integration response request's resource identifier.<br/>restApiId:  [Required] The string identifier of the associated <a>RestApi</a>.<br/>
        :return: contentHandling:  Specifies how to handle response payload content type conversions. Supported values are <code>CONVERT_TO_BINARY</code> and <code>CONVERT_TO_TEXT</code>, with the following behaviors: <ul> <li><code>CONVERT_TO_BINARY</code>: Converts a response payload from a Base64-encoded string to the corresponding binary blob.</li> <li><code>CONVERT_TO_TEXT</code>: Converts a response payload from a binary blob to a Base64-encoded string.</li> </ul> If this property is not defined, the response payload will be passed through from the integration response to the method response without modification.<br/>responseTemplates:  Specifies the templates used to transform the integration response body. Response templates are represented as a key/value map, with a content-type as the key and a template as the value.<br/>responseParameters:  A key-value map specifying response parameters that are passed to the method response from the back end. The key is a method response header parameter name and the mapped value is an integration response header value, a static value enclosed within a pair of single quotes, or a JSON expression from the integration response body. The mapping key must match the pattern of <code>method.response.header.{name}</code>, where <code>name</code> is a valid and unique header name. The mapped non-static value must match the pattern of <code>integration.response.header.{name}</code> or <code>integration.response.body.{JSON-expression}</code>, where <code>name</code> is a valid and unique response header name and <code>JSON-expression</code> is a valid JSON expression without the <code>$</code> prefix.<br/>selectionPattern:  Specifies the regular expression (regex) pattern used to choose an integration response based on the response from the back end. For example, if the success response returns nothing and the error response returns some string, you could use the <code>.+</code> regex to match error response. However, make sure that the error response does not contain any newline (<code>\n</code>) character in such cases. If the back end is an AWS Lambda function, the AWS Lambda function error header is matched. For all other HTTP and AWS back ends, the HTTP status code is matched.<br/>statusCode:  Specifies the status code that is used to map the integration response to an existing <a>MethodResponse</a>.<br/>        """
        pass

    def get_method(self, httpMethod: str, resourceId: str, restApiId: str) -> Method:
        r"""Describe an existing <a>Method</a> resource.

        :param self:
        :param httpMethod:  [Required] Specifies the method request's HTTP method type.<br/>resourceId:  [Required] The <a>Resource</a> identifier for the <a>Method</a> resource.<br/>restApiId:  [Required] The string identifier of the associated <a>RestApi</a>.<br/>
        :return: authorizationScopes:  A list of authorization scopes configured on the method. The scopes are used with a <code>COGNITO_USER_POOLS</code> authorizer to authorize the method invocation. The authorization works by matching the method scopes against the scopes parsed from the access token in the incoming request. The method invocation is authorized if any method scopes matches a claimed scope in the access token. Otherwise, the invocation is not authorized. When the method scope is configured, the client must provide an access token instead of an identity token for authorization purposes.<br/>methodIntegration:  Gets the method's integration responsible for passing the client-submitted request to the back end and performing necessary transformations to make the request compliant with the back end. <div class="remarks"> <p/> <h4>Example: </h4> <h5>Request</h5> <p/> <pre><code>GET /restapis/uojnr9hd57/resources/0cjtch/methods/GET/integration HTTP/1.1 Content-Type: application/json Host: apigateway.us-east-1.amazonaws.com Content-Length: 117 X-Amz-Date: 20160613T213210Z Authorization: AWS4-HMAC-SHA256 Credential={access_key_ID}/20160613/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}</code></pre> <h5>Response</h5> The successful response returns a <code>200 OK</code> status code and a payload similar to the following: <pre><code>{ "_links": { "curies": [ { "href": "https://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-{rel}.html", "name": "integration", "templated": true }, { "href": "https://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-response-{rel}.html", "name": "integrationresponse", "templated": true } ], "self": { "href": "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/integration" }, "integration:delete": { "href": "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/integration" }, "integration:responses": { "href": "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/integration/responses/200", "name": "200", "title": "200" }, "integration:update": { "href": "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/integration" }, "integrationresponse:put": { "href": "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/integration/responses/{status_code}", "templated": true } }, "cacheKeyParameters": [], "cacheNamespace": "0cjtch", "credentials": "arn:aws:iam::123456789012:role/apigAwsProxyRole", "httpMethod": "POST", "passthroughBehavior": "WHEN_NO_MATCH", "requestTemplates": { "application/json": "{\n \"a\": \"$input.params('operand1')\",\n \"b\": \"$input.params('operand2')\", \n \"op\": \"$input.params('operator')\" \n}" }, "type": "AWS", "uri": "arn:aws:apigateway:us-west-2:lambda:path//2015-03-31/functions/arn:aws:lambda:us-west-2:123456789012:function:Calc/invocations", "_embedded": { "integration:responses": { "_links": { "self": { "href": "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/integration/responses/200", "name": "200", "title": "200" }, "integrationresponse:delete": { "href": "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/integration/responses/200" }, "integrationresponse:update": { "href": "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/integration/responses/200" } }, "responseParameters": { "method.response.header.operator": "integration.response.body.op", "method.response.header.operand_2": "integration.response.body.b", "method.response.header.operand_1": "integration.response.body.a" }, "responseTemplates": { "application/json": "#set($res = $input.path('$'))\n{\n \"result\": \"$res.a, $res.b, $res.op => $res.c\",\n \"a\" : \"$res.a\",\n \"b\" : \"$res.b\",\n \"op\" : \"$res.op\",\n \"c\" : \"$res.c\"\n}" }, "selectionPattern": "", "statusCode": "200" } } }</code></pre> <p/> </div> <div class="seeAlso"> <a href="https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-integration.html">AWS CLI</a> </div>:<br/>methodResponses:  Gets a method response associated with a given HTTP status code.  <div class="remarks"> The collection of method responses are encapsulated in a key-value map, where the key is a response's HTTP status code and the value is a <a>MethodResponse</a> resource that specifies the response returned to the caller from the back end through the integration response. <h4>Example: Get a 200 OK response of a GET method</h4> <h5>Request</h5> <p/> <pre><code>GET /restapis/uojnr9hd57/resources/0cjtch/methods/GET/responses/200 HTTP/1.1 Content-Type: application/json Host: apigateway.us-east-1.amazonaws.com Content-Length: 117 X-Amz-Date: 20160613T215008Z Authorization: AWS4-HMAC-SHA256 Credential={access_key_ID}/20160613/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}</code></pre> <h5>Response</h5> The successful response returns a <code>200 OK</code> status code and a payload similar to the following: <pre><code>{ "_links": { "curies": { "href": "https://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-method-response-{rel}.html", "name": "methodresponse", "templated": true }, "self": { "href": "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/responses/200", "title": "200" }, "methodresponse:delete": { "href": "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/responses/200" }, "methodresponse:update": { "href": "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/responses/200" } }, "responseModels": { "application/json": "Empty" }, "responseParameters": { "method.response.header.operator": false, "method.response.header.operand_2": false, "method.response.header.operand_1": false }, "statusCode": "200" }</code></pre> <p/> </div> <div class="seeAlso"> <a href="https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-method-response.html">AWS CLI</a> </div><br/>requestModels:  A key-value map specifying data schemas, represented by <a>Model</a> resources, (as the mapped value) of the request payloads of given content types (as the mapping key).<br/>requestParameters:  A key-value map defining required or optional method request parameters that can be accepted by API Gateway. A key is a method request parameter name matching the pattern of <code>method.request.{location}.{name}</code>, where <code>location</code> is <code>querystring</code>, <code>path</code>, or <code>header</code> and <code>name</code> is a valid and unique parameter name. The value associated with the key is a Boolean flag indicating whether the parameter is required (<code>true</code>) or optional (<code>false</code>). The method request parameter names defined here are available in <a>Integration</a> to be mapped to integration request parameters or templates.<br/>operationName:  A human-friendly operation identifier for the method. For example, you can assign the <code>operationName</code> of <code>ListPets</code> for the <code>GET /pets</code> method in the <code>PetStore</code> example.<br/>requestValidatorId:  The identifier of a <a>RequestValidator</a> for request validation.<br/>apiKeyRequired:  A boolean flag specifying whether a valid <a>ApiKey</a> is required to invoke this method.<br/>authorizerId:  The identifier of an <a>Authorizer</a> to use on this method. The <code>authorizationType</code> must be <code>CUSTOM</code>.<br/>authorizationType:  The method's authorization type. Valid values are <code>NONE</code> for open access, <code>AWS_IAM</code> for using AWS IAM permissions, <code>CUSTOM</code> for using a custom authorizer, or <code>COGNITO_USER_POOLS</code> for using a Cognito user pool.<br/>httpMethod:  The method's HTTP verb.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tlsConfig</i> Specifies the TLS configuration for an integration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>tlsConfig</b>: Specifies the TLS configuration for an integration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>integrationResponses</i> Specifies the integration's responses. <div class="remarks"> <p/> <h4>Example: Get integration responses of a method</h4> <h5>Request</h5> <p/> <pre><code>GET /restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200 HTTP/1.1 Content-Type: application/json Host: apigateway.us-east-1.amazonaws.com X-Amz-Date: 20160607T191449Z Authorization: AWS4-HMAC-SHA256 Credential={access_key_ID}/20160607/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash} </code></pre> <h5>Response</h5> The successful response returns <code>200 OK</code> status and a payload as follows: <pre><code>{ "_links": { "curies": { "href": "https://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-response-{rel}.html", "name": "integrationresponse", "templated": true }, "self": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200", "title": "200" }, "integrationresponse:delete": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200" }, "integrationresponse:update": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200" } }, "responseParameters": { "method.response.header.Content-Type": "'application/xml'" }, "responseTemplates": { "application/json": "$util.urlDecode(\"%3CkinesisStreams%3E#foreach($stream in $input.path('$.StreamNames'))%3Cstream%3E%3Cname%3E$stream%3C/name%3E%3C/stream%3E#end%3C/kinesisStreams%3E\")\n" }, "statusCode": "200" }</code></pre> <p/> </div> <div class="seeAlso"> <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-create-api.html">Creating an API</a> </div><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>cacheKeyParameters</i> A list of request parameters whose values API Gateway caches. To be valid values for <code>cacheKeyParameters</code>, these parameters must also be specified for <a>Method</a> <code>requestParameters</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>cacheNamespace</i> Specifies a group of related cached parameters. By default, API Gateway uses the resource ID as the <code>cacheNamespace</code>. You can specify the same <code>cacheNamespace</code> across resources to return the same cached data for requests to different resources.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>timeoutInMillis</i> Custom timeout between 50 and 29,000 milliseconds. The default value is 29,000 milliseconds or 29 seconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>contentHandling</i> Specifies how to handle request payload content type conversions. Supported values are <code>CONVERT_TO_BINARY</code> and <code>CONVERT_TO_TEXT</code>, with the following behaviors: <ul> <li><code>CONVERT_TO_BINARY</code>: Converts a request payload from a Base64-encoded string to the corresponding binary blob.</li> <li><code>CONVERT_TO_TEXT</code>: Converts a request payload from a binary blob to a Base64-encoded string.</li> </ul> If this property is not defined, the request payload will be passed through from the method request to integration request without modification, provided that the <code>passthroughBehavior</code> is configured to support payload pass-through.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>passthroughBehavior</i> <div>  Specifies how the method request body of an unmapped content type will be passed through the integration request to the back end without transformation. A content type is unmapped if no mapping template is defined in the integration or the content type does not match any of the mapped content types, as specified in <code>requestTemplates</code>. The valid value is one of the following:  <ul> <li> <code>WHEN_NO_MATCH</code>: passes the method request body through the integration request to the back end without transformation when the method request content type does not match any content type associated with the mapping templates defined in the integration request. </li> <li> <code>WHEN_NO_TEMPLATES</code>: passes the method request body through the integration request to the back end without transformation when no mapping template is defined in the integration request. If a template is defined when this option is selected, the method request of an unmapped content-type will be rejected with an HTTP <code>415 Unsupported Media Type</code> response. </li> <li> <code>NEVER</code>: rejects the method request with an HTTP <code>415 Unsupported Media Type</code> response when either the method request content type does not match any content type associated with the mapping templates defined in the integration request or no mapping template is defined in the integration request. </li> </ul> </div><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>requestTemplates</i> Represents a map of Velocity templates that are applied on the request payload based on the value of the Content-Type header sent by the client. The content type value is the key in this map, and the template (as a String) is the value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>requestParameters</i> A key-value map specifying request parameters that are passed from the method request to the back end. The key is an integration request parameter name and the associated value is a method request parameter value or static value that must be enclosed within single quotes and pre-encoded as required by the back end. The method request parameter value must match the pattern of <code>method.request.{location}.{name}</code>, where <code>location</code> is <code>querystring</code>, <code>path</code>, or <code>header</code> and <code>name</code> must be a valid and unique method request parameter name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>credentials</i> Specifies the credentials required for the integration, if any. For AWS integrations, three options are available. To specify an IAM Role for API Gateway to assume, use the role's Amazon Resource Name (ARN). To require that the caller's identity be passed through from the request, specify the string <code>arn:aws:iam::\*:user/\*</code>. To use resource-based permissions on supported AWS services, specify null.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>connectionId</i> The (<a href="https://docs.aws.amazon.com/apigateway/api-reference/resource/vpc-link/#id"><code>id</code></a>) of the <a>VpcLink</a> used for the integration when <code>connectionType=VPC_LINK</code> and undefined, otherwise.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>connectionType</i> The type of the network connection to the integration endpoint. The valid value is <code>INTERNET</code> for connections through the public routable internet or <code>VPC_LINK</code> for private connections between API Gateway and a network load balancer in a VPC. The default value is <code>INTERNET</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>uri</i> Specifies Uniform Resource Identifier (URI) of the integration endpoint. <ul> <li> For <code>HTTP</code> or <code>HTTP_PROXY</code> integrations, the URI must be a fully formed, encoded HTTP(S) URL according to the <a href="https://en.wikipedia.org/wiki/Uniform_Resource_Identifier" target="_blank">RFC-3986 specification</a>, for either standard integration, where <code>connectionType</code> is not <code>VPC_LINK</code>, or private integration, where <code>connectionType</code> is <code>VPC_LINK</code>. For a private HTTP integration, the URI is not used for routing.  </li> <li> For <code>AWS</code> or <code>AWS_PROXY</code> integrations, the URI is of the form <code>arn:aws:apigateway:{region}:{subdomain.service|service}:path|action/{service_api}</code>. Here, <code>{Region}</code> is the API Gateway region (e.g., <code>us-east-1</code>); <code>{service}</code> is the name of the integrated AWS service (e.g., <code>s3</code>); and <code>{subdomain}</code> is a designated subdomain supported by certain AWS service for fast host-name lookup. <code>action</code> can be used for an AWS service action-based API, using an <code>Action={name}&amp;{p1}={v1}&amp;p2={v2}...</code> query string. The ensuing <code>{service_api}</code> refers to a supported action <code>{name}</code> plus any required input parameters. Alternatively, <code>path</code> can be used for an AWS service path-based API. The ensuing <code>service_api</code> refers to the path to an AWS service resource, including the region of the integrated AWS service, if applicable. For example, for integration with the S3 API of <code><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectGET.html">GetObject</a></code>, the <code>uri</code> can be either <code>arn:aws:apigateway:us-west-2:s3:action/GetObject&amp;Bucket={bucket}&amp;Key={key}</code> or <code>arn:aws:apigateway:us-west-2:s3:path/{bucket}/{key}</code> </li></ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>httpMethod</i> Specifies the integration's HTTP method type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> Specifies an API method integration type. The valid value is one of the following: <ul> <li><code>AWS</code>: for integrating the API method request with an AWS service action, including the Lambda function-invoking action. With the Lambda function-invoking action, this is referred to as the Lambda custom integration. With any other AWS service action, this is known as AWS integration.</li> <li><code>AWS_PROXY</code>: for integrating the API method request with the Lambda function-invoking action with the client request passed through as-is. This integration is also referred to as the Lambda proxy integration.</li> <li><code>HTTP</code>: for integrating the API method request with an HTTP endpoint, including a private HTTP endpoint within a VPC. This integration is also referred to as the HTTP custom integration.</li> <li><code>HTTP_PROXY</code>: for integrating the API method request with an HTTP endpoint, including a private HTTP endpoint within a VPC, with the client request passed through as-is. This is also referred to as the HTTP proxy integration.</li> <li><code>MOCK</code>: for integrating the API method request with API Gateway as a "loop-back" endpoint without invoking any backend.</li> </ul> For the HTTP and HTTP proxy integrations, each integration can specify a protocol (<code>http/https</code>), port and path. Standard 80 and 443 ports are supported as well as custom ports above 1024. An HTTP or HTTP proxy integration with a <code>connectionType</code> of <code>VPC_LINK</code> is referred to as a private integration and uses a <a>VpcLink</a> to connect API Gateway to a network load balancer of a VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>insecureSkipVerification</i> Specifies whether or not API Gateway skips verification that the certificate for an integration endpoint is issued by a <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-supported-certificate-authorities-for-http-endpoints.html">supported certificate authority</a>. This isn’t recommended, but it enables you to use certificates that are signed by private certificate authorities, or certificates that are self-signed. If enabled, API Gateway still performs basic certificate validation, which includes checking the certificate's expiration date, hostname, and presence of a root certificate authority. Supported only for <code>HTTP</code> and <code>HTTP_PROXY</code> integrations.<br/>        """
        pass

    def get_method_response(self, statusCode: str, httpMethod: str, resourceId: str, restApiId: str) -> MethodResponse:
        r"""Describes a <a>MethodResponse</a> resource.

        :param self:
        :param statusCode:  [Required] The status code for the <a>MethodResponse</a> resource.<br/>httpMethod:  [Required] The HTTP verb of the <a>Method</a> resource.<br/>resourceId:  [Required] The <a>Resource</a> identifier for the <a>MethodResponse</a> resource.<br/>restApiId:  [Required] The string identifier of the associated <a>RestApi</a>.<br/>
        :return: responseModels:  Specifies the <a>Model</a> resources used for the response's content-type. Response models are represented as a key/value map, with a content-type as the key and a <a>Model</a> name as the value.<br/>responseParameters:  A key-value map specifying required or optional response parameters that API Gateway can send back to the caller. A key defines a method response header and the value specifies whether the associated method response header is required or not. The expression of the key must match the pattern <code>method.response.header.{name}</code>, where <code>name</code> is a valid and unique header name. API Gateway passes certain integration response data to the method response headers specified here according to the mapping you prescribe in the API's <a>IntegrationResponse</a>. The integration response data that can be mapped include an integration response header expressed in <code>integration.response.header.{name}</code>, a static value enclosed within a pair of single quotes (e.g., <code>'application/json'</code>), or a JSON expression from the back-end response payload in the form of <code>integration.response.body.{JSON-expression}</code>, where <code>JSON-expression</code> is a valid JSON expression without the <code>$</code> prefix.)<br/>statusCode:  The method response's status code.<br/>        """
        pass

    def get_model(self, modelName: str, restApiId: str, flatten: Boolean=None) -> Model:
        r"""Describes an existing model defined for a <a>RestApi</a> resource.

        :param self:
        :param flatten:  A query parameter of a Boolean value to resolve (<code>true</code>) all external model references and returns a flattened model schema or not (<code>false</code>) The default is <code>false</code>.<br/>modelName:  [Required] The name of the model as an identifier.<br/>restApiId:  [Required] The <a>RestApi</a> identifier under which the <a>Model</a> exists.<br/>
        :return: contentType:  The content-type for the model.<br/>schema:  The schema for the model. For <code>application/json</code> models, this should be <a href="https://tools.ietf.org/html/draft-zyp-json-schema-04" target="_blank">JSON schema draft 4</a> model. Do not include "\*/" characters in the description of any properties because such "\*/" characters may be interpreted as the closing marker for comments in some languages, such as Java or JavaScript, causing the installation of your API's SDK generated by API Gateway to fail.<br/>description:  The description of the model.<br/>name:  The name of the model. Must be an alphanumeric string.<br/>id:  The identifier for the model resource.<br/>        """
        pass

    def get_model_template(self, modelName: str, restApiId: str) -> Template:
        r"""Generates a sample mapping template that can be used to transform a payload into the structure of a model.

        :param self:
        :param modelName:  [Required] The name of the model for which to generate a template.<br/>restApiId:  [Required] The string identifier of the associated <a>RestApi</a>.<br/>
        :return: value:  The Apache <a href="https://velocity.apache.org/engine/devel/vtl-reference.html" target="_blank">Velocity Template Language (VTL)</a> template content used for the template resource.<br/>        """
        pass

    def get_models(self, restApiId: str, position: str=None, limit: int=None) -> Models:
        r"""Describes existing <a>Models</a> defined for a <a>RestApi</a> resource.

        :param self:
        :param limit:  The maximum number of returned results per page. The default value is 25 and the maximum value is 500.<br/>position:  The current pagination position in the paged result set.<br/>restApiId:  [Required] The string identifier of the associated <a>RestApi</a>.<br/>
        :return: items:  The current page of elements from this collection.<br/>position:  <br/>        """
        pass

    def get_request_validator(self, requestValidatorId: str, restApiId: str) -> RequestValidator:
        r"""Gets a <a>RequestValidator</a> of a given <a>RestApi</a>.

        :param self:
        :param requestValidatorId:  [Required] The identifier of the <a>RequestValidator</a> to be retrieved.<br/>restApiId:  [Required] The string identifier of the associated <a>RestApi</a>.<br/>
        :return: validateRequestParameters:  A Boolean flag to indicate whether to validate request parameters (<code>true</code>) or not (<code>false</code>).<br/>validateRequestBody:  A Boolean flag to indicate whether to validate a request body according to the configured <a>Model</a> schema.<br/>name:  The name of this <a>RequestValidator</a><br/>id:  The identifier of this <a>RequestValidator</a>.<br/>        """
        pass

    def get_request_validators(self, restApiId: str, position: str=None, limit: int=None) -> RequestValidators:
        r"""Gets the <a>RequestValidators</a> collection of a given <a>RestApi</a>.

        :param self:
        :param limit:  The maximum number of returned results per page. The default value is 25 and the maximum value is 500.<br/>position:  The current pagination position in the paged result set.<br/>restApiId:  [Required] The string identifier of the associated <a>RestApi</a>.<br/>
        :return: items:  The current page of elements from this collection.<br/>position:  <br/>        """
        pass

    def get_resource(self, resourceId: str, restApiId: str, embed: List[String]=None) -> Resource:
        r"""Lists information about a resource.

        :param self:
        :param embed:  A query parameter to retrieve the specified resources embedded in the returned <a>Resource</a> representation in the response. This <code>embed</code> parameter value is a list of comma-separated strings. Currently, the request supports only retrieval of the embedded <a>Method</a> resources this way. The query parameter value must be a single-valued list and contain the <code>"methods"</code> string. For example, <code>GET /restapis/{restapi_id}/resources/{resource_id}?embed=methods</code>.<br/>resourceId:  [Required] The identifier for the <a>Resource</a> resource.<br/>restApiId:  [Required] The string identifier of the associated <a>RestApi</a>.<br/>
        :return: resourceMethods:  Gets an API resource's method of a given HTTP verb. <div class="remarks"> The resource methods are a map of methods indexed by methods' HTTP verbs enabled on the resource. This method map is included in the <code>200 OK</code> response of the <code>GET /restapis/{restapi_id}/resources/{resource_id}</code> or <code>GET /restapis/{restapi_id}/resources/{resource_id}?embed=methods</code> request. <h4>Example: Get the GET method of an API resource</h4> <h5>Request</h5> <pre><code>GET /restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET HTTP/1.1 Content-Type: application/json Host: apigateway.us-east-1.amazonaws.com X-Amz-Date: 20170223T031827Z Authorization: AWS4-HMAC-SHA256 Credential={access_key_ID}/20170223/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}</code></pre> <h5>Response</h5> <pre><code>{ "_links": { "curies": [ { "href": "https://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-{rel}.html", "name": "integration", "templated": true }, { "href": "https://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-response-{rel}.html", "name": "integrationresponse", "templated": true }, { "href": "https://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-method-{rel}.html", "name": "method", "templated": true }, { "href": "https://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-method-response-{rel}.html", "name": "methodresponse", "templated": true } ], "self": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET", "name": "GET", "title": "GET" }, "integration:put": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration" }, "method:delete": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET" }, "method:integration": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration" }, "method:responses": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/responses/200", "name": "200", "title": "200" }, "method:update": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET" }, "methodresponse:put": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/responses/{status_code}", "templated": true } }, "apiKeyRequired": false, "authorizationType": "NONE", "httpMethod": "GET", "_embedded": { "method:integration": { "_links": { "self": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration" }, "integration:delete": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration" }, "integration:responses": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200", "name": "200", "title": "200" }, "integration:update": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration" }, "integrationresponse:put": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/{status_code}", "templated": true } }, "cacheKeyParameters": [], "cacheNamespace": "3kzxbg5sa2", "credentials": "arn:aws:iam::123456789012:role/apigAwsProxyRole", "httpMethod": "POST", "passthroughBehavior": "WHEN_NO_MATCH", "requestParameters": { "integration.request.header.Content-Type": "'application/x-amz-json-1.1'" }, "requestTemplates": { "application/json": "{\n}" }, "type": "AWS", "uri": "arn:aws:apigateway:us-east-1:kinesis:action/ListStreams", "_embedded": { "integration:responses": { "_links": { "self": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200", "name": "200", "title": "200" }, "integrationresponse:delete": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200" }, "integrationresponse:update": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200" } }, "responseParameters": { "method.response.header.Content-Type": "'application/xml'" }, "responseTemplates": { "application/json": "$util.urlDecode(\"%3CkinesisStreams%3E#foreach($stream in $input.path('$.StreamNames'))%3Cstream%3E%3Cname%3E$stream%3C/name%3E%3C/stream%3E#end%3C/kinesisStreams%3E\")\n" }, "statusCode": "200" } } }, "method:responses": { "_links": { "self": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/responses/200", "name": "200", "title": "200" }, "methodresponse:delete": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/responses/200" }, "methodresponse:update": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/responses/200" } }, "responseModels": { "application/json": "Empty" }, "responseParameters": { "method.response.header.Content-Type": false }, "statusCode": "200" } } }</code></pre> If the <code>OPTIONS</code> is enabled on the resource, you can follow the example here to get that method. Just replace the <code>GET</code> of the last path segment in the request URL with <code>OPTIONS</code>. </div> <div class="seeAlso"> </div><br/>path:  The full path for this resource.<br/>pathPart:  The last path segment for this resource.<br/>parentId:  The parent resource's identifier.<br/>id:  The resource's identifier.<br/>        """
        pass

    def get_resources(self, restApiId: str, position: str=None, limit: int=None, embed: List[String]=None) -> Resources:
        r"""Lists information about a collection of <a>Resource</a> resources.

        :param self:
        :param embed:  A query parameter used to retrieve the specified resources embedded in the returned <a>Resources</a> resource in the response. This <code>embed</code> parameter value is a list of comma-separated strings. Currently, the request supports only retrieval of the embedded <a>Method</a> resources this way. The query parameter value must be a single-valued list and contain the <code>"methods"</code> string. For example, <code>GET /restapis/{restapi_id}/resources?embed=methods</code>.<br/>limit:  The maximum number of returned results per page. The default value is 25 and the maximum value is 500.<br/>position:  The current pagination position in the paged result set.<br/>restApiId:  [Required] The string identifier of the associated <a>RestApi</a>.<br/>
        :return: items:  The current page of elements from this collection.<br/>position:  <br/>        """
        pass

    def get_rest_api(self, restApiId: str) -> RestApi:
        r"""Lists the <a>RestApi</a> resource in the collection.

        :param self:
        :param restApiId:  [Required] The string identifier of the associated <a>RestApi</a>.<br/>
        :return: disableExecuteApiEndpoint:  Specifies whether clients can invoke your API by using the default <code>execute-api</code> endpoint. By default, clients can invoke your API with the default https://{api_id}.execute-api.{region}.amazonaws.com endpoint. To require that clients use a custom domain name to invoke your API, disable the default endpoint.<br/>tags:  The collection of tags. Each tag element is associated with a given resource.<br/>policy:  A stringified JSON policy document that applies to this RestApi regardless of the caller and <a>Method</a> configuration.<br/>endpointConfiguration:  The endpoint configuration of this <a>RestApi</a> showing the endpoint types of the API.:<br/>apiKeySource:  The source of the API key for metering requests according to a usage plan. Valid values are: <ul><li><code>HEADER</code> to read the API key from the <code>X-API-Key</code> header of a request. </li><li><code>AUTHORIZER</code> to read the API key from the <code>UsageIdentifierKey</code> from a custom authorizer.</li></ul><br/>minimumCompressionSize:  A nullable integer that is used to enable compression (with non-negative between 0 and 10485760 (10M) bytes, inclusive) or disable compression (with a null value) on an API. When compression is enabled, compression or decompression is not applied on the payload if the payload size is smaller than this value. Setting it to zero allows compression for any payload size.<br/>binaryMediaTypes:  The list of binary media types supported by the <a>RestApi</a>. By default, the <a>RestApi</a> supports only UTF-8-encoded text payloads.<br/>warnings:  The warning messages reported when <code>failonwarnings</code> is turned on during API import.<br/>version:  A version identifier for the API.<br/>createdDate:  The timestamp when the API was created.<br/>description:  The API's description.<br/>name:  The API's name.<br/>id:  The API's identifier. This identifier is unique across all of your APIs in API Gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>vpcEndpointIds</i> A list of VpcEndpointIds of an API (<a>RestApi</a>) against which to create Route53 ALIASes. It is only supported for <code>PRIVATE</code> endpoint type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>types</i> A list of endpoint types of an API (<a>RestApi</a>) or its custom domain name (<a>DomainName</a>). For an edge-optimized API and its custom domain name, the endpoint type is <code>"EDGE"</code>. For a regional API and its custom domain name, the endpoint type is <code>REGIONAL</code>. For a private API, the endpoint type is <code>PRIVATE</code>.<br/>        """
        pass

    def get_rest_apis(self, position: str=None, limit: int=None) -> RestApis:
        r"""Lists the <a>RestApis</a> resources for your collection.

        :param self:
        :param limit:  The maximum number of returned results per page. The default value is 25 and the maximum value is 500.<br/>position:  The current pagination position in the paged result set.<br/>
        :return: items:  The current page of elements from this collection.<br/>position:  <br/>        """
        pass

    def get_sdk(self, sdkType: str, stageName: str, restApiId: str, parameters: MapOfStringToString=None) -> SdkResponse:
        r"""Generates a client SDK for a <a>RestApi</a> and <a>Stage</a>.

        :param self:
        :param parameters:  A string-to-string key-value map of query parameters <code>sdkType</code>-dependent properties of the SDK. For <code>sdkType</code> of <code>objectivec</code> or <code>swift</code>, a parameter named <code>classPrefix</code> is required. For <code>sdkType</code> of <code>android</code>, parameters named <code>groupId</code>, <code>artifactId</code>, <code>artifactVersion</code>, and <code>invokerPackage</code> are required. For <code>sdkType</code> of <code>java</code>, parameters named <code>serviceName</code> and <code>javaPackageName</code> are required. <br/>sdkType:  [Required] The language for the generated SDK. Currently <code>java</code>, <code>javascript</code>, <code>android</code>, <code>objectivec</code> (for iOS), <code>swift</code> (for iOS), and <code>ruby</code> are supported.<br/>stageName:  [Required] The name of the <a>Stage</a> that the SDK will use.<br/>restApiId:  [Required] The string identifier of the associated <a>RestApi</a>.<br/>
        :return: body:  The binary blob response to <a>GetSdk</a>, which contains the generated SDK.<br/>contentDisposition:  The content-disposition header value in the HTTP response.<br/>contentType:  The content-type header value in the HTTP response.<br/>        """
        pass

    def get_sdk_type(self, id: str) -> SdkType:
        r"""

        :param self:
        :param id:  [Required] The identifier of the queried <a>SdkType</a> instance.<br/>
        :return: configurationProperties:  A list of configuration properties of an <a>SdkType</a>.<br/>description:  The description of an <a>SdkType</a>.<br/>friendlyName:  The user-friendly name of an <a>SdkType</a> instance.<br/>id:  The identifier of an <a>SdkType</a> instance.<br/>        """
        pass

    def get_sdk_types(self, position: str=None, limit: int=None) -> SdkTypes:
        r"""

        :param self:
        :param limit:  The maximum number of returned results per page. The default value is 25 and the maximum value is 500.<br/>position:  The current pagination position in the paged result set.<br/>
        :return: items:  The current page of elements from this collection.<br/>position:  <br/>        """
        pass

    def get_stage(self, stageName: str, restApiId: str) -> Stage:
        r"""Gets information about a <a>Stage</a> resource.

        :param self:
        :param stageName:  [Required] The name of the <a>Stage</a> resource to get information about.<br/>restApiId:  [Required] The string identifier of the associated <a>RestApi</a>.<br/>
        :return: lastUpdatedDate:  The timestamp when the stage last updated.<br/>createdDate:  The timestamp when the stage was created.<br/>tags:  The collection of tags. Each tag element is associated with a given resource.<br/>webAclArn:  The ARN of the WebAcl associated with the <a>Stage</a>.<br/>tracingEnabled:  Specifies whether active tracing with X-ray is enabled for the <a>Stage</a>.<br/>canarySettings:  Settings for the canary deployment in this stage.:<br/>accessLogSettings:  Settings for logging access in this stage.:<br/>documentationVersion:  The version of the associated API documentation.<br/>variables:  A map that defines the stage variables for a <a>Stage</a> resource. Variable names can have alphanumeric and underscore characters, and the values must match <code>[A-Za-z0-9-._~:/?#&amp;=,]+</code>.<br/>methodSettings:  A map that defines the method settings for a <a>Stage</a> resource. Keys (designated as <code>/{method_setting_key</code> below) are method paths defined as <code>{resource_path}/{http_method}</code> for an individual method override, or <code>/\*/\*</code> for overriding all methods in the stage. <br/>cacheClusterStatus:  The status of the cache cluster for the stage, if enabled.<br/>cacheClusterSize:  The size of the cache cluster for the stage, if enabled.<br/>cacheClusterEnabled:  Specifies whether a cache cluster is enabled for the stage.<br/>description:  The stage's description.<br/>stageName:  The name of the stage is the first path segment in the Uniform Resource Identifier (URI) of a call to API Gateway. Stage names can only contain alphanumeric characters, hyphens, and underscores. Maximum length is 128 characters.<br/>clientCertificateId:  The identifier of a client certificate for an API stage.<br/>deploymentId:  The identifier of the <a>Deployment</a> that the stage points to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>destinationArn</i> The Amazon Resource Name (ARN) of the CloudWatch Logs log group or Kinesis Data Firehose delivery stream to receive access logs. If you specify a Kinesis Data Firehose delivery stream, the stream name must begin with <code>amazon-apigateway-</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>format</i> A single line format of the access logs of data, as specified by selected <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-reference.html#context-variable-reference">$context variables</a>. The format must include at least <code>$context.requestId</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>useStageCache</i> A Boolean flag to indicate whether the canary deployment uses the stage cache or not.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>stageVariableOverrides</i> Stage variables overridden for a canary release deployment, including new stage variables introduced in the canary. These stage variables are represented as a string-to-string map between stage variable names and their values.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deploymentId</i> The ID of the canary deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>percentTraffic</i> The percent (0-100) of traffic diverted to a canary deployment.<br/>        """
        pass

    def get_stages(self, restApiId: str, deploymentId: str=None) -> Stages:
        r"""Gets information about one or more <a>Stage</a> resources.

        :param self:
        :param deploymentId:  The stages' deployment identifiers.<br/>restApiId:  [Required] The string identifier of the associated <a>RestApi</a>.<br/>
        :return: item:  The current page of elements from this collection.<br/>        """
        pass

    def get_tags(self, resourceArn: str, position: str=None, limit: int=None) -> Tags:
        r"""Gets the <a>Tags</a> collection for a given resource.

        :param self:
        :param limit:  (Not currently supported) The maximum number of returned results per page. The default value is 25 and the maximum value is 500.<br/>position:  (Not currently supported) The current pagination position in the paged result set.<br/>resourceArn:  [Required] The ARN of a resource that can be tagged.<br/>
        :return: tags:  The collection of tags. Each tag element is associated with a given resource.<br/>        """
        pass

    def get_usage(self, endDate: str, startDate: str, usagePlanId: str, keyId: str=None, position: str=None, limit: int=None) -> Usage:
        r"""Gets the usage data of a usage plan in a specified time interval.

        :param self:
        :param limit:  The maximum number of returned results per page. The default value is 25 and the maximum value is 500.<br/>position:  The current pagination position in the paged result set.<br/>endDate:  [Required] The ending date (e.g., 2016-12-31) of the usage data.<br/>startDate:  [Required] The starting date (e.g., 2016-01-01) of the usage data.<br/>keyId:  The Id of the API key associated with the resultant usage data.<br/>usagePlanId:  [Required] The Id of the usage plan associated with the usage data.<br/>
        :return: items:  The usage data, as daily logs of used and remaining quotas, over the specified time interval indexed over the API keys in a usage plan. For example, <code>{..., "values" : { "{api_key}" : [ [0, 100], [10, 90], [100, 10]]}</code>, where <code>{api_key}</code> stands for an API key value and the daily log entry is of the format <code>[used quota, remaining quota]</code>.<br/>position:  <br/>endDate:  The ending date of the usage data.<br/>startDate:  The starting date of the usage data.<br/>usagePlanId:  The plan Id associated with this usage data.<br/>        """
        pass

    def get_usage_plan(self, usagePlanId: str) -> UsagePlan:
        r"""Gets a usage plan of a given plan identifier.

        :param self:
        :param usagePlanId:  [Required] The identifier of the <a>UsagePlan</a> resource to be retrieved.<br/>
        :return: tags:  The collection of tags. Each tag element is associated with a given resource.<br/>productCode:  The AWS Markeplace product identifier to associate with the usage plan as a SaaS product on AWS Marketplace.<br/>quota:  The maximum number of permitted requests per a given unit time interval.:<br/>throttle:  The request throttle limits of a usage plan.:<br/>apiStages:  The associated API stages of a usage plan.<br/>description:  The description of a usage plan.<br/>name:  The name of a usage plan.<br/>id:  The identifier of a <a>UsagePlan</a> resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>rateLimit</i> The API request steady-state rate limit.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>burstLimit</i> The API request burst limit, the maximum rate limit over a time ranging from one to a few seconds, depending upon whether the underlying token bucket is at its full capacity.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>period</i> The time period in which the limit applies. Valid values are "DAY", "WEEK" or "MONTH".<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>offset</i> The day that a time period starts. For example, with a time period of <code>WEEK</code>, an offset of <code>0</code> starts on Sunday, and an offset of <code>1</code> starts on Monday.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>limit</i> The maximum number of requests that can be made in a given time period.<br/>        """
        pass

    def get_usage_plan_key(self, keyId: str, usagePlanId: str) -> UsagePlanKey:
        r"""Gets a usage plan key of a given key identifier.

        :param self:
        :param keyId:  [Required] The key Id of the to-be-retrieved <a>UsagePlanKey</a> resource representing a plan customer.<br/>usagePlanId:  [Required] The Id of the <a>UsagePlan</a> resource representing the usage plan containing the to-be-retrieved <a>UsagePlanKey</a> resource representing a plan customer.<br/>
        :return: name:  The name of a usage plan key.<br/>value:  The value of a usage plan key.<br/>type:  The type of a usage plan key. Currently, the valid key type is <code>API_KEY</code>.<br/>id:  The Id of a usage plan key.<br/>        """
        pass

    def get_usage_plan_keys(self, usagePlanId: str, position: str=None, limit: int=None, nameQuery: str=None) -> UsagePlanKeys:
        r"""Gets all the usage plan keys representing the API keys added to a specified usage plan.

        :param self:
        :param nameQuery:  A query parameter specifying the name of the to-be-returned usage plan keys.<br/>limit:  The maximum number of returned results per page. The default value is 25 and the maximum value is 500.<br/>position:  The current pagination position in the paged result set.<br/>usagePlanId:  [Required] The Id of the <a>UsagePlan</a> resource representing the usage plan containing the to-be-retrieved <a>UsagePlanKey</a> resource representing a plan customer.<br/>
        :return: items:  The current page of elements from this collection.<br/>position:  <br/>        """
        pass

    def get_usage_plans(self, position: str=None, keyId: str=None, limit: int=None) -> UsagePlans:
        r"""Gets all the usage plans of the caller's account.

        :param self:
        :param limit:  The maximum number of returned results per page. The default value is 25 and the maximum value is 500.<br/>keyId:  The identifier of the API key associated with the usage plans.<br/>position:  The current pagination position in the paged result set.<br/>
        :return: items:  The current page of elements from this collection.<br/>position:  <br/>        """
        pass

    def get_vpc_link(self, vpcLinkId: str) -> VpcLink:
        r"""Gets a specified VPC link under the caller's account in a region.

        :param self:
        :param vpcLinkId:  [Required] The identifier of the <a>VpcLink</a>. It is used in an <a>Integration</a> to reference this <a>VpcLink</a>.<br/>
        :return: tags:  The collection of tags. Each tag element is associated with a given resource.<br/>statusMessage:  A description about the VPC link status.<br/>status:  The status of the VPC link. The valid values are <code>AVAILABLE</code>, <code>PENDING</code>, <code>DELETING</code>, or <code>FAILED</code>. Deploying an API will wait if the status is <code>PENDING</code> and will fail if the status is <code>DELETING</code>.<br/>targetArns:  The ARN of the network load balancer of the VPC targeted by the VPC link. The network load balancer must be owned by the same AWS account of the API owner.<br/>description:  The description of the VPC link.<br/>name:  The name used to label and identify the VPC link.<br/>id:  The identifier of the <a>VpcLink</a>. It is used in an <a>Integration</a> to reference this <a>VpcLink</a>.<br/>        """
        pass

    def get_vpc_links(self, position: str=None, limit: int=None) -> VpcLinks:
        r"""Gets the <a>VpcLinks</a> collection under the caller's account in a selected region.

        :param self:
        :param limit:  The maximum number of returned results per page. The default value is 25 and the maximum value is 500.<br/>position:  The current pagination position in the paged result set.<br/>
        :return: items:  The current page of elements from this collection.<br/>position:  <br/>        """
        pass

    def import_api_keys(self, format: str, body: Blob, failOnWarnings: Boolean=None) -> ApiKeyIds:
        r"""Import API keys from an external source, such as a CSV-formatted file.

        :param self:
        :param failOnWarnings:  A query parameter to indicate whether to rollback <a>ApiKey</a> importation (<code>true</code>) or not (<code>false</code>) when error is encountered.<br/>format:  A query parameter to specify the input format to imported API keys. Currently, only the <code>csv</code> format is supported.<br/>body:  The payload of the POST request to import API keys. For the payload format, see <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/api-key-file-format.html">API Key File Format</a>.<br/>
        :return: warnings:  A list of warning messages.<br/>ids:  A list of all the <a>ApiKey</a> identifiers.<br/>        """
        pass

    def import_documentation_parts(self, body: Blob, restApiId: str, mode: str=None, failOnWarnings: Boolean=None) -> DocumentationPartIds:
        r"""

        :param self:
        :param body:  [Required] Raw byte array representing the to-be-imported documentation parts. To import from an OpenAPI file, this is a JSON object.<br/>failOnWarnings:  A query parameter to specify whether to rollback the documentation importation (<code>true</code>) or not (<code>false</code>) when a warning is encountered. The default value is <code>false</code>.<br/>mode:  A query parameter to indicate whether to overwrite (<code>OVERWRITE</code>) any existing <a>DocumentationParts</a> definition or to merge (<code>MERGE</code>) the new definition into the existing one. The default value is <code>MERGE</code>.<br/>restApiId:  [Required] The string identifier of the associated <a>RestApi</a>.<br/>
        :return: warnings:  A list of warning messages reported during import of documentation parts.<br/>ids:  A list of the returned documentation part identifiers.<br/>        """
        pass

    def import_rest_api(self, body: Blob, failOnWarnings: Boolean=None, parameters: MapOfStringToString=None) -> RestApi:
        r"""A feature of the API Gateway control service for creating a new API from an external API definition file.

        :param self:
        :param body:  [Required] The POST request body containing external API definitions. Currently, only OpenAPI definition JSON/YAML files are supported. The maximum size of the API definition file is 6MB.<br/>parameters:  A key-value map of context-specific query string parameters specifying the behavior of different API importing operations. The following shows operation-specific parameters and their supported values.  To exclude <a>DocumentationParts</a> from the import, set <code>parameters</code> as <code>ignore=documentation</code>.  To configure the endpoint type, set <code>parameters</code> as <code>endpointConfigurationTypes=EDGE</code>, <code>endpointConfigurationTypes=REGIONAL</code>, or <code>endpointConfigurationTypes=PRIVATE</code>. The default endpoint type is <code>EDGE</code>.  To handle imported <code>basepath</code>, set <code>parameters</code> as <code>basepath=ignore</code>, <code>basepath=prepend</code> or <code>basepath=split</code>. For example, the AWS CLI command to exclude documentation from the imported API is: <pre><code>aws apigateway import-rest-api --parameters ignore=documentation --body 'file:///path/to/imported-api-body.json'</code></pre> The AWS CLI command to set the regional endpoint on the imported API is: <pre><code>aws apigateway import-rest-api --parameters endpointConfigurationTypes=REGIONAL --body 'file:///path/to/imported-api-body.json'</code></pre><br/>failOnWarnings:  A query parameter to indicate whether to rollback the API creation (<code>true</code>) or not (<code>false</code>) when a warning is encountered. The default value is <code>false</code>.<br/>
        :return: disableExecuteApiEndpoint:  Specifies whether clients can invoke your API by using the default <code>execute-api</code> endpoint. By default, clients can invoke your API with the default https://{api_id}.execute-api.{region}.amazonaws.com endpoint. To require that clients use a custom domain name to invoke your API, disable the default endpoint.<br/>tags:  The collection of tags. Each tag element is associated with a given resource.<br/>policy:  A stringified JSON policy document that applies to this RestApi regardless of the caller and <a>Method</a> configuration.<br/>endpointConfiguration:  The endpoint configuration of this <a>RestApi</a> showing the endpoint types of the API.:<br/>apiKeySource:  The source of the API key for metering requests according to a usage plan. Valid values are: <ul><li><code>HEADER</code> to read the API key from the <code>X-API-Key</code> header of a request. </li><li><code>AUTHORIZER</code> to read the API key from the <code>UsageIdentifierKey</code> from a custom authorizer.</li></ul><br/>minimumCompressionSize:  A nullable integer that is used to enable compression (with non-negative between 0 and 10485760 (10M) bytes, inclusive) or disable compression (with a null value) on an API. When compression is enabled, compression or decompression is not applied on the payload if the payload size is smaller than this value. Setting it to zero allows compression for any payload size.<br/>binaryMediaTypes:  The list of binary media types supported by the <a>RestApi</a>. By default, the <a>RestApi</a> supports only UTF-8-encoded text payloads.<br/>warnings:  The warning messages reported when <code>failonwarnings</code> is turned on during API import.<br/>version:  A version identifier for the API.<br/>createdDate:  The timestamp when the API was created.<br/>description:  The API's description.<br/>name:  The API's name.<br/>id:  The API's identifier. This identifier is unique across all of your APIs in API Gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>vpcEndpointIds</i> A list of VpcEndpointIds of an API (<a>RestApi</a>) against which to create Route53 ALIASes. It is only supported for <code>PRIVATE</code> endpoint type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>types</i> A list of endpoint types of an API (<a>RestApi</a>) or its custom domain name (<a>DomainName</a>). For an edge-optimized API and its custom domain name, the endpoint type is <code>"EDGE"</code>. For a regional API and its custom domain name, the endpoint type is <code>REGIONAL</code>. For a private API, the endpoint type is <code>PRIVATE</code>.<br/>        """
        pass

    def put_gateway_response(self, responseType: str, restApiId: str, statusCode: str=None, responseParameters: MapOfStringToString=None, responseTemplates: MapOfStringToString=None) -> GatewayResponse:
        r"""Creates a customization of a <a>GatewayResponse</a> of a specified response type and status code on the given <a>RestApi</a>.

        :param self:
        :param responseTemplates:  Response templates of the <a>GatewayResponse</a> as a string-to-string map of key-value pairs.<br/>responseParameters:  Response parameters (paths, query strings and headers) of the <a>GatewayResponse</a> as a string-to-string map of key-value pairs.<br/>statusCode:  The HTTP status code of the <a>GatewayResponse</a>.<br/>responseType:  [Required] The response type of the associated <a>GatewayResponse</a>. Valid values are <ul><li>ACCESS_DENIED</li><li>API_CONFIGURATION_ERROR</li><li>AUTHORIZER_FAILURE</li><li> AUTHORIZER_CONFIGURATION_ERROR</li><li>BAD_REQUEST_PARAMETERS</li><li>BAD_REQUEST_BODY</li><li>DEFAULT_4XX</li><li>DEFAULT_5XX</li><li>EXPIRED_TOKEN</li><li>INVALID_SIGNATURE</li><li>INTEGRATION_FAILURE</li><li>INTEGRATION_TIMEOUT</li><li>INVALID_API_KEY</li><li>MISSING_AUTHENTICATION_TOKEN</li><li> QUOTA_EXCEEDED</li><li>REQUEST_TOO_LARGE</li><li>RESOURCE_NOT_FOUND</li><li>THROTTLED</li><li>UNAUTHORIZED</li><li>UNSUPPORTED_MEDIA_TYPE</li></ul> <br/>restApiId:  [Required] The string identifier of the associated <a>RestApi</a>.<br/>
        :return: defaultResponse:  A Boolean flag to indicate whether this <a>GatewayResponse</a> is the default gateway response (<code>true</code>) or not (<code>false</code>). A default gateway response is one generated by API Gateway without any customization by an API developer. <br/>responseTemplates:  Response templates of the <a>GatewayResponse</a> as a string-to-string map of key-value pairs.<br/>responseParameters:  Response parameters (paths, query strings and headers) of the <a>GatewayResponse</a> as a string-to-string map of key-value pairs.<br/>statusCode:  The HTTP status code for this <a>GatewayResponse</a>.<br/>responseType:  The response type of the associated <a>GatewayResponse</a>. Valid values are <ul><li>ACCESS_DENIED</li><li>API_CONFIGURATION_ERROR</li><li>AUTHORIZER_FAILURE</li><li> AUTHORIZER_CONFIGURATION_ERROR</li><li>BAD_REQUEST_PARAMETERS</li><li>BAD_REQUEST_BODY</li><li>DEFAULT_4XX</li><li>DEFAULT_5XX</li><li>EXPIRED_TOKEN</li><li>INVALID_SIGNATURE</li><li>INTEGRATION_FAILURE</li><li>INTEGRATION_TIMEOUT</li><li>INVALID_API_KEY</li><li>MISSING_AUTHENTICATION_TOKEN</li><li> QUOTA_EXCEEDED</li><li>REQUEST_TOO_LARGE</li><li>RESOURCE_NOT_FOUND</li><li>THROTTLED</li><li>UNAUTHORIZED</li><li>UNSUPPORTED_MEDIA_TYPE</li></ul> <br/>        """
        pass

    def put_integration(self, type: str, httpMethod: str, resourceId: str, restApiId: str, integrationHttpMethod: str=None, uri: str=None, connectionType: str=None, connectionId: str=None, credentials: str=None, requestParameters: MapOfStringToString=None, requestTemplates: MapOfStringToString=None, passthroughBehavior: str=None, cacheNamespace: str=None, cacheKeyParameters: List[String]=None, contentHandling: str=None, timeoutInMillis: int=None, tlsConfig: TlsConfig=None) -> Integration:
        r"""Sets up a method's integration.

        :param self:
        :param tlsConfig:  :<br/>timeoutInMillis:  Custom timeout between 50 and 29,000 milliseconds. The default value is 29,000 milliseconds or 29 seconds.<br/>contentHandling:  Specifies how to handle request payload content type conversions. Supported values are <code>CONVERT_TO_BINARY</code> and <code>CONVERT_TO_TEXT</code>, with the following behaviors: <ul> <li><code>CONVERT_TO_BINARY</code>: Converts a request payload from a Base64-encoded string to the corresponding binary blob.</li> <li><code>CONVERT_TO_TEXT</code>: Converts a request payload from a binary blob to a Base64-encoded string.</li> </ul> If this property is not defined, the request payload will be passed through from the method request to integration request without modification, provided that the <code>passthroughBehavior</code> is configured to support payload pass-through.<br/>cacheKeyParameters:  A list of request parameters whose values API Gateway caches. To be valid values for <code>cacheKeyParameters</code>, these parameters must also be specified for <a>Method</a> <code>requestParameters</code>.<br/>cacheNamespace:  Specifies a group of related cached parameters. By default, API Gateway uses the resource ID as the <code>cacheNamespace</code>. You can specify the same <code>cacheNamespace</code> across resources to return the same cached data for requests to different resources.<br/>passthroughBehavior:  Specifies the pass-through behavior for incoming requests based on the Content-Type header in the request, and the available mapping templates specified as the <code>requestTemplates</code> property on the Integration resource. There are three valid values: <code>WHEN_NO_MATCH</code>, <code>WHEN_NO_TEMPLATES</code>, and <code>NEVER</code>.  <ul> <li><code>WHEN_NO_MATCH</code> passes the request body for unmapped content types through to the integration back end without transformation.</li> <li><code>NEVER</code> rejects unmapped content types with an HTTP 415 'Unsupported Media Type' response.</li> <li><code>WHEN_NO_TEMPLATES</code> allows pass-through when the integration has NO content types mapped to templates. However if there is at least one content type defined, unmapped content types will be rejected with the same 415 response.</li> </ul><br/>requestTemplates:  Represents a map of Velocity templates that are applied on the request payload based on the value of the Content-Type header sent by the client. The content type value is the key in this map, and the template (as a String) is the value.<br/>requestParameters:  A key-value map specifying request parameters that are passed from the method request to the back end. The key is an integration request parameter name and the associated value is a method request parameter value or static value that must be enclosed within single quotes and pre-encoded as required by the back end. The method request parameter value must match the pattern of <code>method.request.{location}.{name}</code>, where <code>location</code> is <code>querystring</code>, <code>path</code>, or <code>header</code> and <code>name</code> must be a valid and unique method request parameter name.<br/>credentials:  Specifies whether credentials are required for a put integration.<br/>connectionId:  The (<a href="https://docs.aws.amazon.com/apigateway/api-reference/resource/vpc-link/#id"><code>id</code></a>) of the <a>VpcLink</a> used for the integration when <code>connectionType=VPC_LINK</code> and undefined, otherwise.<br/>connectionType:  The type of the network connection to the integration endpoint. The valid value is <code>INTERNET</code> for connections through the public routable internet or <code>VPC_LINK</code> for private connections between API Gateway and a network load balancer in a VPC. The default value is <code>INTERNET</code>.<br/>uri:  Specifies Uniform Resource Identifier (URI) of the integration endpoint. <ul> <li> For <code>HTTP</code> or <code>HTTP_PROXY</code> integrations, the URI must be a fully formed, encoded HTTP(S) URL according to the <a href="https://en.wikipedia.org/wiki/Uniform_Resource_Identifier" target="_blank">RFC-3986 specification</a>, for either standard integration, where <code>connectionType</code> is not <code>VPC_LINK</code>, or private integration, where <code>connectionType</code> is <code>VPC_LINK</code>. For a private HTTP integration, the URI is not used for routing.  </li> <li> For <code>AWS</code> or <code>AWS_PROXY</code> integrations, the URI is of the form <code>arn:aws:apigateway:{region}:{subdomain.service|service}:path|action/{service_api}</code>. Here, <code>{Region}</code> is the API Gateway region (e.g., <code>us-east-1</code>); <code>{service}</code> is the name of the integrated AWS service (e.g., <code>s3</code>); and <code>{subdomain}</code> is a designated subdomain supported by certain AWS service for fast host-name lookup. <code>action</code> can be used for an AWS service action-based API, using an <code>Action={name}&amp;{p1}={v1}&amp;p2={v2}...</code> query string. The ensuing <code>{service_api}</code> refers to a supported action <code>{name}</code> plus any required input parameters. Alternatively, <code>path</code> can be used for an AWS service path-based API. The ensuing <code>service_api</code> refers to the path to an AWS service resource, including the region of the integrated AWS service, if applicable. For example, for integration with the S3 API of <code><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectGET.html">GetObject</a></code>, the <code>uri</code> can be either <code>arn:aws:apigateway:us-west-2:s3:action/GetObject&amp;Bucket={bucket}&amp;Key={key}</code> or <code>arn:aws:apigateway:us-west-2:s3:path/{bucket}/{key}</code> </li></ul><br/>integrationHttpMethod:  Specifies a put integration HTTP method. When the integration type is HTTP or AWS, this field is required.<br/>type:  [Required] Specifies a put integration input's type.<br/>httpMethod:  [Required] Specifies a put integration request's HTTP method.<br/>resourceId:  [Required] Specifies a put integration request's resource ID.<br/>restApiId:  [Required] The string identifier of the associated <a>RestApi</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>insecureSkipVerification</i> Specifies whether or not API Gateway skips verification that the certificate for an integration endpoint is issued by a <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-supported-certificate-authorities-for-http-endpoints.html">supported certificate authority</a>. This isn’t recommended, but it enables you to use certificates that are signed by private certificate authorities, or certificates that are self-signed. If enabled, API Gateway still performs basic certificate validation, which includes checking the certificate's expiration date, hostname, and presence of a root certificate authority. Supported only for <code>HTTP</code> and <code>HTTP_PROXY</code> integrations.<br/>
        :return: tlsConfig:  Specifies the TLS configuration for an integration.:<br/>integrationResponses:  Specifies the integration's responses. <div class="remarks"> <p/> <h4>Example: Get integration responses of a method</h4> <h5>Request</h5> <p/> <pre><code>GET /restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200 HTTP/1.1 Content-Type: application/json Host: apigateway.us-east-1.amazonaws.com X-Amz-Date: 20160607T191449Z Authorization: AWS4-HMAC-SHA256 Credential={access_key_ID}/20160607/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash} </code></pre> <h5>Response</h5> The successful response returns <code>200 OK</code> status and a payload as follows: <pre><code>{ "_links": { "curies": { "href": "https://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-response-{rel}.html", "name": "integrationresponse", "templated": true }, "self": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200", "title": "200" }, "integrationresponse:delete": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200" }, "integrationresponse:update": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200" } }, "responseParameters": { "method.response.header.Content-Type": "'application/xml'" }, "responseTemplates": { "application/json": "$util.urlDecode(\"%3CkinesisStreams%3E#foreach($stream in $input.path('$.StreamNames'))%3Cstream%3E%3Cname%3E$stream%3C/name%3E%3C/stream%3E#end%3C/kinesisStreams%3E\")\n" }, "statusCode": "200" }</code></pre> <p/> </div> <div class="seeAlso"> <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-create-api.html">Creating an API</a> </div><br/>cacheKeyParameters:  A list of request parameters whose values API Gateway caches. To be valid values for <code>cacheKeyParameters</code>, these parameters must also be specified for <a>Method</a> <code>requestParameters</code>.<br/>cacheNamespace:  Specifies a group of related cached parameters. By default, API Gateway uses the resource ID as the <code>cacheNamespace</code>. You can specify the same <code>cacheNamespace</code> across resources to return the same cached data for requests to different resources.<br/>timeoutInMillis:  Custom timeout between 50 and 29,000 milliseconds. The default value is 29,000 milliseconds or 29 seconds.<br/>contentHandling:  Specifies how to handle request payload content type conversions. Supported values are <code>CONVERT_TO_BINARY</code> and <code>CONVERT_TO_TEXT</code>, with the following behaviors: <ul> <li><code>CONVERT_TO_BINARY</code>: Converts a request payload from a Base64-encoded string to the corresponding binary blob.</li> <li><code>CONVERT_TO_TEXT</code>: Converts a request payload from a binary blob to a Base64-encoded string.</li> </ul> If this property is not defined, the request payload will be passed through from the method request to integration request without modification, provided that the <code>passthroughBehavior</code> is configured to support payload pass-through.<br/>passthroughBehavior:  <div>  Specifies how the method request body of an unmapped content type will be passed through the integration request to the back end without transformation. A content type is unmapped if no mapping template is defined in the integration or the content type does not match any of the mapped content types, as specified in <code>requestTemplates</code>. The valid value is one of the following:  <ul> <li> <code>WHEN_NO_MATCH</code>: passes the method request body through the integration request to the back end without transformation when the method request content type does not match any content type associated with the mapping templates defined in the integration request. </li> <li> <code>WHEN_NO_TEMPLATES</code>: passes the method request body through the integration request to the back end without transformation when no mapping template is defined in the integration request. If a template is defined when this option is selected, the method request of an unmapped content-type will be rejected with an HTTP <code>415 Unsupported Media Type</code> response. </li> <li> <code>NEVER</code>: rejects the method request with an HTTP <code>415 Unsupported Media Type</code> response when either the method request content type does not match any content type associated with the mapping templates defined in the integration request or no mapping template is defined in the integration request. </li> </ul> </div><br/>requestTemplates:  Represents a map of Velocity templates that are applied on the request payload based on the value of the Content-Type header sent by the client. The content type value is the key in this map, and the template (as a String) is the value.<br/>requestParameters:  A key-value map specifying request parameters that are passed from the method request to the back end. The key is an integration request parameter name and the associated value is a method request parameter value or static value that must be enclosed within single quotes and pre-encoded as required by the back end. The method request parameter value must match the pattern of <code>method.request.{location}.{name}</code>, where <code>location</code> is <code>querystring</code>, <code>path</code>, or <code>header</code> and <code>name</code> must be a valid and unique method request parameter name.<br/>credentials:  Specifies the credentials required for the integration, if any. For AWS integrations, three options are available. To specify an IAM Role for API Gateway to assume, use the role's Amazon Resource Name (ARN). To require that the caller's identity be passed through from the request, specify the string <code>arn:aws:iam::\*:user/\*</code>. To use resource-based permissions on supported AWS services, specify null.<br/>connectionId:  The (<a href="https://docs.aws.amazon.com/apigateway/api-reference/resource/vpc-link/#id"><code>id</code></a>) of the <a>VpcLink</a> used for the integration when <code>connectionType=VPC_LINK</code> and undefined, otherwise.<br/>connectionType:  The type of the network connection to the integration endpoint. The valid value is <code>INTERNET</code> for connections through the public routable internet or <code>VPC_LINK</code> for private connections between API Gateway and a network load balancer in a VPC. The default value is <code>INTERNET</code>.<br/>uri:  Specifies Uniform Resource Identifier (URI) of the integration endpoint. <ul> <li> For <code>HTTP</code> or <code>HTTP_PROXY</code> integrations, the URI must be a fully formed, encoded HTTP(S) URL according to the <a href="https://en.wikipedia.org/wiki/Uniform_Resource_Identifier" target="_blank">RFC-3986 specification</a>, for either standard integration, where <code>connectionType</code> is not <code>VPC_LINK</code>, or private integration, where <code>connectionType</code> is <code>VPC_LINK</code>. For a private HTTP integration, the URI is not used for routing.  </li> <li> For <code>AWS</code> or <code>AWS_PROXY</code> integrations, the URI is of the form <code>arn:aws:apigateway:{region}:{subdomain.service|service}:path|action/{service_api}</code>. Here, <code>{Region}</code> is the API Gateway region (e.g., <code>us-east-1</code>); <code>{service}</code> is the name of the integrated AWS service (e.g., <code>s3</code>); and <code>{subdomain}</code> is a designated subdomain supported by certain AWS service for fast host-name lookup. <code>action</code> can be used for an AWS service action-based API, using an <code>Action={name}&amp;{p1}={v1}&amp;p2={v2}...</code> query string. The ensuing <code>{service_api}</code> refers to a supported action <code>{name}</code> plus any required input parameters. Alternatively, <code>path</code> can be used for an AWS service path-based API. The ensuing <code>service_api</code> refers to the path to an AWS service resource, including the region of the integrated AWS service, if applicable. For example, for integration with the S3 API of <code><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectGET.html">GetObject</a></code>, the <code>uri</code> can be either <code>arn:aws:apigateway:us-west-2:s3:action/GetObject&amp;Bucket={bucket}&amp;Key={key}</code> or <code>arn:aws:apigateway:us-west-2:s3:path/{bucket}/{key}</code> </li></ul><br/>httpMethod:  Specifies the integration's HTTP method type.<br/>type:  Specifies an API method integration type. The valid value is one of the following: <ul> <li><code>AWS</code>: for integrating the API method request with an AWS service action, including the Lambda function-invoking action. With the Lambda function-invoking action, this is referred to as the Lambda custom integration. With any other AWS service action, this is known as AWS integration.</li> <li><code>AWS_PROXY</code>: for integrating the API method request with the Lambda function-invoking action with the client request passed through as-is. This integration is also referred to as the Lambda proxy integration.</li> <li><code>HTTP</code>: for integrating the API method request with an HTTP endpoint, including a private HTTP endpoint within a VPC. This integration is also referred to as the HTTP custom integration.</li> <li><code>HTTP_PROXY</code>: for integrating the API method request with an HTTP endpoint, including a private HTTP endpoint within a VPC, with the client request passed through as-is. This is also referred to as the HTTP proxy integration.</li> <li><code>MOCK</code>: for integrating the API method request with API Gateway as a "loop-back" endpoint without invoking any backend.</li> </ul> For the HTTP and HTTP proxy integrations, each integration can specify a protocol (<code>http/https</code>), port and path. Standard 80 and 443 ports are supported as well as custom ports above 1024. An HTTP or HTTP proxy integration with a <code>connectionType</code> of <code>VPC_LINK</code> is referred to as a private integration and uses a <a>VpcLink</a> to connect API Gateway to a network load balancer of a VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>insecureSkipVerification</i> Specifies whether or not API Gateway skips verification that the certificate for an integration endpoint is issued by a <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-supported-certificate-authorities-for-http-endpoints.html">supported certificate authority</a>. This isn’t recommended, but it enables you to use certificates that are signed by private certificate authorities, or certificates that are self-signed. If enabled, API Gateway still performs basic certificate validation, which includes checking the certificate's expiration date, hostname, and presence of a root certificate authority. Supported only for <code>HTTP</code> and <code>HTTP_PROXY</code> integrations.<br/>        """
        pass

    def put_integration_response(self, statusCode: str, httpMethod: str, resourceId: str, restApiId: str, selectionPattern: str=None, responseParameters: MapOfStringToString=None, responseTemplates: MapOfStringToString=None, contentHandling: str=None) -> IntegrationResponse:
        r"""Represents a put integration.

        :param self:
        :param contentHandling:  Specifies how to handle response payload content type conversions. Supported values are <code>CONVERT_TO_BINARY</code> and <code>CONVERT_TO_TEXT</code>, with the following behaviors: <ul> <li><code>CONVERT_TO_BINARY</code>: Converts a response payload from a Base64-encoded string to the corresponding binary blob.</li> <li><code>CONVERT_TO_TEXT</code>: Converts a response payload from a binary blob to a Base64-encoded string.</li> </ul> If this property is not defined, the response payload will be passed through from the integration response to the method response without modification.<br/>responseTemplates:  Specifies a put integration response's templates.<br/>responseParameters:  A key-value map specifying response parameters that are passed to the method response from the back end. The key is a method response header parameter name and the mapped value is an integration response header value, a static value enclosed within a pair of single quotes, or a JSON expression from the integration response body. The mapping key must match the pattern of <code>method.response.header.{name}</code>, where <code>name</code> is a valid and unique header name. The mapped non-static value must match the pattern of <code>integration.response.header.{name}</code> or <code>integration.response.body.{JSON-expression}</code>, where <code>name</code> must be a valid and unique response header name and <code>JSON-expression</code> a valid JSON expression without the <code>$</code> prefix.<br/>selectionPattern:  Specifies the selection pattern of a put integration response.<br/>statusCode:  [Required] Specifies the status code that is used to map the integration response to an existing <a>MethodResponse</a>.<br/>httpMethod:  [Required] Specifies a put integration response request's HTTP method.<br/>resourceId:  [Required] Specifies a put integration response request's resource identifier.<br/>restApiId:  [Required] The string identifier of the associated <a>RestApi</a>.<br/>
        :return: contentHandling:  Specifies how to handle response payload content type conversions. Supported values are <code>CONVERT_TO_BINARY</code> and <code>CONVERT_TO_TEXT</code>, with the following behaviors: <ul> <li><code>CONVERT_TO_BINARY</code>: Converts a response payload from a Base64-encoded string to the corresponding binary blob.</li> <li><code>CONVERT_TO_TEXT</code>: Converts a response payload from a binary blob to a Base64-encoded string.</li> </ul> If this property is not defined, the response payload will be passed through from the integration response to the method response without modification.<br/>responseTemplates:  Specifies the templates used to transform the integration response body. Response templates are represented as a key/value map, with a content-type as the key and a template as the value.<br/>responseParameters:  A key-value map specifying response parameters that are passed to the method response from the back end. The key is a method response header parameter name and the mapped value is an integration response header value, a static value enclosed within a pair of single quotes, or a JSON expression from the integration response body. The mapping key must match the pattern of <code>method.response.header.{name}</code>, where <code>name</code> is a valid and unique header name. The mapped non-static value must match the pattern of <code>integration.response.header.{name}</code> or <code>integration.response.body.{JSON-expression}</code>, where <code>name</code> is a valid and unique response header name and <code>JSON-expression</code> is a valid JSON expression without the <code>$</code> prefix.<br/>selectionPattern:  Specifies the regular expression (regex) pattern used to choose an integration response based on the response from the back end. For example, if the success response returns nothing and the error response returns some string, you could use the <code>.+</code> regex to match error response. However, make sure that the error response does not contain any newline (<code>\n</code>) character in such cases. If the back end is an AWS Lambda function, the AWS Lambda function error header is matched. For all other HTTP and AWS back ends, the HTTP status code is matched.<br/>statusCode:  Specifies the status code that is used to map the integration response to an existing <a>MethodResponse</a>.<br/>        """
        pass

    def put_method(self, authorizationType: str, httpMethod: str, resourceId: str, restApiId: str, authorizerId: str=None, apiKeyRequired: Boolean=None, operationName: str=None, requestParameters: MapOfStringToBoolean=None, requestModels: MapOfStringToString=None, requestValidatorId: str=None, authorizationScopes: List[String]=None) -> Method:
        r"""Add a method to an existing <a>Resource</a> resource.

        :param self:
        :param authorizationScopes:  A list of authorization scopes configured on the method. The scopes are used with a <code>COGNITO_USER_POOLS</code> authorizer to authorize the method invocation. The authorization works by matching the method scopes against the scopes parsed from the access token in the incoming request. The method invocation is authorized if any method scopes matches a claimed scope in the access token. Otherwise, the invocation is not authorized. When the method scope is configured, the client must provide an access token instead of an identity token for authorization purposes.<br/>requestValidatorId:  The identifier of a <a>RequestValidator</a> for validating the method request.<br/>requestModels:  Specifies the <a>Model</a> resources used for the request's content type. Request models are represented as a key/value map, with a content type as the key and a <a>Model</a> name as the value.<br/>requestParameters:  A key-value map defining required or optional method request parameters that can be accepted by API Gateway. A key defines a method request parameter name matching the pattern of <code>method.request.{location}.{name}</code>, where <code>location</code> is <code>querystring</code>, <code>path</code>, or <code>header</code> and <code>name</code> is a valid and unique parameter name. The value associated with the key is a Boolean flag indicating whether the parameter is required (<code>true</code>) or optional (<code>false</code>). The method request parameter names defined here are available in <a>Integration</a> to be mapped to integration request parameters or body-mapping templates.<br/>operationName:  A human-friendly operation identifier for the method. For example, you can assign the <code>operationName</code> of <code>ListPets</code> for the <code>GET /pets</code> method in the <code>PetStore</code> example.<br/>apiKeyRequired:  Specifies whether the method required a valid <a>ApiKey</a>.<br/>authorizerId:  Specifies the identifier of an <a>Authorizer</a> to use on this Method, if the type is CUSTOM or COGNITO_USER_POOLS. The authorizer identifier is generated by API Gateway when you created the authorizer.<br/>authorizationType:  [Required] The method's authorization type. Valid values are <code>NONE</code> for open access, <code>AWS_IAM</code> for using AWS IAM permissions, <code>CUSTOM</code> for using a custom authorizer, or <code>COGNITO_USER_POOLS</code> for using a Cognito user pool.<br/>httpMethod:  [Required] Specifies the method request's HTTP method type.<br/>resourceId:  [Required] The <a>Resource</a> identifier for the new <a>Method</a> resource.<br/>restApiId:  [Required] The string identifier of the associated <a>RestApi</a>.<br/>
        :return: authorizationScopes:  A list of authorization scopes configured on the method. The scopes are used with a <code>COGNITO_USER_POOLS</code> authorizer to authorize the method invocation. The authorization works by matching the method scopes against the scopes parsed from the access token in the incoming request. The method invocation is authorized if any method scopes matches a claimed scope in the access token. Otherwise, the invocation is not authorized. When the method scope is configured, the client must provide an access token instead of an identity token for authorization purposes.<br/>methodIntegration:  Gets the method's integration responsible for passing the client-submitted request to the back end and performing necessary transformations to make the request compliant with the back end. <div class="remarks"> <p/> <h4>Example: </h4> <h5>Request</h5> <p/> <pre><code>GET /restapis/uojnr9hd57/resources/0cjtch/methods/GET/integration HTTP/1.1 Content-Type: application/json Host: apigateway.us-east-1.amazonaws.com Content-Length: 117 X-Amz-Date: 20160613T213210Z Authorization: AWS4-HMAC-SHA256 Credential={access_key_ID}/20160613/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}</code></pre> <h5>Response</h5> The successful response returns a <code>200 OK</code> status code and a payload similar to the following: <pre><code>{ "_links": { "curies": [ { "href": "https://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-{rel}.html", "name": "integration", "templated": true }, { "href": "https://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-response-{rel}.html", "name": "integrationresponse", "templated": true } ], "self": { "href": "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/integration" }, "integration:delete": { "href": "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/integration" }, "integration:responses": { "href": "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/integration/responses/200", "name": "200", "title": "200" }, "integration:update": { "href": "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/integration" }, "integrationresponse:put": { "href": "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/integration/responses/{status_code}", "templated": true } }, "cacheKeyParameters": [], "cacheNamespace": "0cjtch", "credentials": "arn:aws:iam::123456789012:role/apigAwsProxyRole", "httpMethod": "POST", "passthroughBehavior": "WHEN_NO_MATCH", "requestTemplates": { "application/json": "{\n \"a\": \"$input.params('operand1')\",\n \"b\": \"$input.params('operand2')\", \n \"op\": \"$input.params('operator')\" \n}" }, "type": "AWS", "uri": "arn:aws:apigateway:us-west-2:lambda:path//2015-03-31/functions/arn:aws:lambda:us-west-2:123456789012:function:Calc/invocations", "_embedded": { "integration:responses": { "_links": { "self": { "href": "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/integration/responses/200", "name": "200", "title": "200" }, "integrationresponse:delete": { "href": "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/integration/responses/200" }, "integrationresponse:update": { "href": "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/integration/responses/200" } }, "responseParameters": { "method.response.header.operator": "integration.response.body.op", "method.response.header.operand_2": "integration.response.body.b", "method.response.header.operand_1": "integration.response.body.a" }, "responseTemplates": { "application/json": "#set($res = $input.path('$'))\n{\n \"result\": \"$res.a, $res.b, $res.op => $res.c\",\n \"a\" : \"$res.a\",\n \"b\" : \"$res.b\",\n \"op\" : \"$res.op\",\n \"c\" : \"$res.c\"\n}" }, "selectionPattern": "", "statusCode": "200" } } }</code></pre> <p/> </div> <div class="seeAlso"> <a href="https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-integration.html">AWS CLI</a> </div>:<br/>methodResponses:  Gets a method response associated with a given HTTP status code.  <div class="remarks"> The collection of method responses are encapsulated in a key-value map, where the key is a response's HTTP status code and the value is a <a>MethodResponse</a> resource that specifies the response returned to the caller from the back end through the integration response. <h4>Example: Get a 200 OK response of a GET method</h4> <h5>Request</h5> <p/> <pre><code>GET /restapis/uojnr9hd57/resources/0cjtch/methods/GET/responses/200 HTTP/1.1 Content-Type: application/json Host: apigateway.us-east-1.amazonaws.com Content-Length: 117 X-Amz-Date: 20160613T215008Z Authorization: AWS4-HMAC-SHA256 Credential={access_key_ID}/20160613/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}</code></pre> <h5>Response</h5> The successful response returns a <code>200 OK</code> status code and a payload similar to the following: <pre><code>{ "_links": { "curies": { "href": "https://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-method-response-{rel}.html", "name": "methodresponse", "templated": true }, "self": { "href": "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/responses/200", "title": "200" }, "methodresponse:delete": { "href": "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/responses/200" }, "methodresponse:update": { "href": "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/responses/200" } }, "responseModels": { "application/json": "Empty" }, "responseParameters": { "method.response.header.operator": false, "method.response.header.operand_2": false, "method.response.header.operand_1": false }, "statusCode": "200" }</code></pre> <p/> </div> <div class="seeAlso"> <a href="https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-method-response.html">AWS CLI</a> </div><br/>requestModels:  A key-value map specifying data schemas, represented by <a>Model</a> resources, (as the mapped value) of the request payloads of given content types (as the mapping key).<br/>requestParameters:  A key-value map defining required or optional method request parameters that can be accepted by API Gateway. A key is a method request parameter name matching the pattern of <code>method.request.{location}.{name}</code>, where <code>location</code> is <code>querystring</code>, <code>path</code>, or <code>header</code> and <code>name</code> is a valid and unique parameter name. The value associated with the key is a Boolean flag indicating whether the parameter is required (<code>true</code>) or optional (<code>false</code>). The method request parameter names defined here are available in <a>Integration</a> to be mapped to integration request parameters or templates.<br/>operationName:  A human-friendly operation identifier for the method. For example, you can assign the <code>operationName</code> of <code>ListPets</code> for the <code>GET /pets</code> method in the <code>PetStore</code> example.<br/>requestValidatorId:  The identifier of a <a>RequestValidator</a> for request validation.<br/>apiKeyRequired:  A boolean flag specifying whether a valid <a>ApiKey</a> is required to invoke this method.<br/>authorizerId:  The identifier of an <a>Authorizer</a> to use on this method. The <code>authorizationType</code> must be <code>CUSTOM</code>.<br/>authorizationType:  The method's authorization type. Valid values are <code>NONE</code> for open access, <code>AWS_IAM</code> for using AWS IAM permissions, <code>CUSTOM</code> for using a custom authorizer, or <code>COGNITO_USER_POOLS</code> for using a Cognito user pool.<br/>httpMethod:  The method's HTTP verb.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tlsConfig</i> Specifies the TLS configuration for an integration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>tlsConfig</b>: Specifies the TLS configuration for an integration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>integrationResponses</i> Specifies the integration's responses. <div class="remarks"> <p/> <h4>Example: Get integration responses of a method</h4> <h5>Request</h5> <p/> <pre><code>GET /restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200 HTTP/1.1 Content-Type: application/json Host: apigateway.us-east-1.amazonaws.com X-Amz-Date: 20160607T191449Z Authorization: AWS4-HMAC-SHA256 Credential={access_key_ID}/20160607/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash} </code></pre> <h5>Response</h5> The successful response returns <code>200 OK</code> status and a payload as follows: <pre><code>{ "_links": { "curies": { "href": "https://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-response-{rel}.html", "name": "integrationresponse", "templated": true }, "self": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200", "title": "200" }, "integrationresponse:delete": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200" }, "integrationresponse:update": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200" } }, "responseParameters": { "method.response.header.Content-Type": "'application/xml'" }, "responseTemplates": { "application/json": "$util.urlDecode(\"%3CkinesisStreams%3E#foreach($stream in $input.path('$.StreamNames'))%3Cstream%3E%3Cname%3E$stream%3C/name%3E%3C/stream%3E#end%3C/kinesisStreams%3E\")\n" }, "statusCode": "200" }</code></pre> <p/> </div> <div class="seeAlso"> <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-create-api.html">Creating an API</a> </div><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>cacheKeyParameters</i> A list of request parameters whose values API Gateway caches. To be valid values for <code>cacheKeyParameters</code>, these parameters must also be specified for <a>Method</a> <code>requestParameters</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>cacheNamespace</i> Specifies a group of related cached parameters. By default, API Gateway uses the resource ID as the <code>cacheNamespace</code>. You can specify the same <code>cacheNamespace</code> across resources to return the same cached data for requests to different resources.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>timeoutInMillis</i> Custom timeout between 50 and 29,000 milliseconds. The default value is 29,000 milliseconds or 29 seconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>contentHandling</i> Specifies how to handle request payload content type conversions. Supported values are <code>CONVERT_TO_BINARY</code> and <code>CONVERT_TO_TEXT</code>, with the following behaviors: <ul> <li><code>CONVERT_TO_BINARY</code>: Converts a request payload from a Base64-encoded string to the corresponding binary blob.</li> <li><code>CONVERT_TO_TEXT</code>: Converts a request payload from a binary blob to a Base64-encoded string.</li> </ul> If this property is not defined, the request payload will be passed through from the method request to integration request without modification, provided that the <code>passthroughBehavior</code> is configured to support payload pass-through.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>passthroughBehavior</i> <div>  Specifies how the method request body of an unmapped content type will be passed through the integration request to the back end without transformation. A content type is unmapped if no mapping template is defined in the integration or the content type does not match any of the mapped content types, as specified in <code>requestTemplates</code>. The valid value is one of the following:  <ul> <li> <code>WHEN_NO_MATCH</code>: passes the method request body through the integration request to the back end without transformation when the method request content type does not match any content type associated with the mapping templates defined in the integration request. </li> <li> <code>WHEN_NO_TEMPLATES</code>: passes the method request body through the integration request to the back end without transformation when no mapping template is defined in the integration request. If a template is defined when this option is selected, the method request of an unmapped content-type will be rejected with an HTTP <code>415 Unsupported Media Type</code> response. </li> <li> <code>NEVER</code>: rejects the method request with an HTTP <code>415 Unsupported Media Type</code> response when either the method request content type does not match any content type associated with the mapping templates defined in the integration request or no mapping template is defined in the integration request. </li> </ul> </div><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>requestTemplates</i> Represents a map of Velocity templates that are applied on the request payload based on the value of the Content-Type header sent by the client. The content type value is the key in this map, and the template (as a String) is the value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>requestParameters</i> A key-value map specifying request parameters that are passed from the method request to the back end. The key is an integration request parameter name and the associated value is a method request parameter value or static value that must be enclosed within single quotes and pre-encoded as required by the back end. The method request parameter value must match the pattern of <code>method.request.{location}.{name}</code>, where <code>location</code> is <code>querystring</code>, <code>path</code>, or <code>header</code> and <code>name</code> must be a valid and unique method request parameter name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>credentials</i> Specifies the credentials required for the integration, if any. For AWS integrations, three options are available. To specify an IAM Role for API Gateway to assume, use the role's Amazon Resource Name (ARN). To require that the caller's identity be passed through from the request, specify the string <code>arn:aws:iam::\*:user/\*</code>. To use resource-based permissions on supported AWS services, specify null.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>connectionId</i> The (<a href="https://docs.aws.amazon.com/apigateway/api-reference/resource/vpc-link/#id"><code>id</code></a>) of the <a>VpcLink</a> used for the integration when <code>connectionType=VPC_LINK</code> and undefined, otherwise.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>connectionType</i> The type of the network connection to the integration endpoint. The valid value is <code>INTERNET</code> for connections through the public routable internet or <code>VPC_LINK</code> for private connections between API Gateway and a network load balancer in a VPC. The default value is <code>INTERNET</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>uri</i> Specifies Uniform Resource Identifier (URI) of the integration endpoint. <ul> <li> For <code>HTTP</code> or <code>HTTP_PROXY</code> integrations, the URI must be a fully formed, encoded HTTP(S) URL according to the <a href="https://en.wikipedia.org/wiki/Uniform_Resource_Identifier" target="_blank">RFC-3986 specification</a>, for either standard integration, where <code>connectionType</code> is not <code>VPC_LINK</code>, or private integration, where <code>connectionType</code> is <code>VPC_LINK</code>. For a private HTTP integration, the URI is not used for routing.  </li> <li> For <code>AWS</code> or <code>AWS_PROXY</code> integrations, the URI is of the form <code>arn:aws:apigateway:{region}:{subdomain.service|service}:path|action/{service_api}</code>. Here, <code>{Region}</code> is the API Gateway region (e.g., <code>us-east-1</code>); <code>{service}</code> is the name of the integrated AWS service (e.g., <code>s3</code>); and <code>{subdomain}</code> is a designated subdomain supported by certain AWS service for fast host-name lookup. <code>action</code> can be used for an AWS service action-based API, using an <code>Action={name}&amp;{p1}={v1}&amp;p2={v2}...</code> query string. The ensuing <code>{service_api}</code> refers to a supported action <code>{name}</code> plus any required input parameters. Alternatively, <code>path</code> can be used for an AWS service path-based API. The ensuing <code>service_api</code> refers to the path to an AWS service resource, including the region of the integrated AWS service, if applicable. For example, for integration with the S3 API of <code><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectGET.html">GetObject</a></code>, the <code>uri</code> can be either <code>arn:aws:apigateway:us-west-2:s3:action/GetObject&amp;Bucket={bucket}&amp;Key={key}</code> or <code>arn:aws:apigateway:us-west-2:s3:path/{bucket}/{key}</code> </li></ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>httpMethod</i> Specifies the integration's HTTP method type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> Specifies an API method integration type. The valid value is one of the following: <ul> <li><code>AWS</code>: for integrating the API method request with an AWS service action, including the Lambda function-invoking action. With the Lambda function-invoking action, this is referred to as the Lambda custom integration. With any other AWS service action, this is known as AWS integration.</li> <li><code>AWS_PROXY</code>: for integrating the API method request with the Lambda function-invoking action with the client request passed through as-is. This integration is also referred to as the Lambda proxy integration.</li> <li><code>HTTP</code>: for integrating the API method request with an HTTP endpoint, including a private HTTP endpoint within a VPC. This integration is also referred to as the HTTP custom integration.</li> <li><code>HTTP_PROXY</code>: for integrating the API method request with an HTTP endpoint, including a private HTTP endpoint within a VPC, with the client request passed through as-is. This is also referred to as the HTTP proxy integration.</li> <li><code>MOCK</code>: for integrating the API method request with API Gateway as a "loop-back" endpoint without invoking any backend.</li> </ul> For the HTTP and HTTP proxy integrations, each integration can specify a protocol (<code>http/https</code>), port and path. Standard 80 and 443 ports are supported as well as custom ports above 1024. An HTTP or HTTP proxy integration with a <code>connectionType</code> of <code>VPC_LINK</code> is referred to as a private integration and uses a <a>VpcLink</a> to connect API Gateway to a network load balancer of a VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>insecureSkipVerification</i> Specifies whether or not API Gateway skips verification that the certificate for an integration endpoint is issued by a <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-supported-certificate-authorities-for-http-endpoints.html">supported certificate authority</a>. This isn’t recommended, but it enables you to use certificates that are signed by private certificate authorities, or certificates that are self-signed. If enabled, API Gateway still performs basic certificate validation, which includes checking the certificate's expiration date, hostname, and presence of a root certificate authority. Supported only for <code>HTTP</code> and <code>HTTP_PROXY</code> integrations.<br/>        """
        pass

    def put_method_response(self, statusCode: str, httpMethod: str, resourceId: str, restApiId: str, responseParameters: MapOfStringToBoolean=None, responseModels: MapOfStringToString=None) -> MethodResponse:
        r"""Adds a <a>MethodResponse</a> to an existing <a>Method</a> resource.

        :param self:
        :param responseModels:  Specifies the <a>Model</a> resources used for the response's content type. Response models are represented as a key/value map, with a content type as the key and a <a>Model</a> name as the value.<br/>responseParameters:  A key-value map specifying required or optional response parameters that API Gateway can send back to the caller. A key defines a method response header name and the associated value is a Boolean flag indicating whether the method response parameter is required or not. The method response header names must match the pattern of <code>method.response.header.{name}</code>, where <code>name</code> is a valid and unique header name. The response parameter names defined here are available in the integration response to be mapped from an integration response header expressed in <code>integration.response.header.{name}</code>, a static value enclosed within a pair of single quotes (e.g., <code>'application/json'</code>), or a JSON expression from the back-end response payload in the form of <code>integration.response.body.{JSON-expression}</code>, where <code>JSON-expression</code> is a valid JSON expression without the <code>$</code> prefix.)<br/>statusCode:  [Required] The method response's status code.<br/>httpMethod:  [Required] The HTTP verb of the <a>Method</a> resource.<br/>resourceId:  [Required] The <a>Resource</a> identifier for the <a>Method</a> resource.<br/>restApiId:  [Required] The string identifier of the associated <a>RestApi</a>.<br/>
        :return: responseModels:  Specifies the <a>Model</a> resources used for the response's content-type. Response models are represented as a key/value map, with a content-type as the key and a <a>Model</a> name as the value.<br/>responseParameters:  A key-value map specifying required or optional response parameters that API Gateway can send back to the caller. A key defines a method response header and the value specifies whether the associated method response header is required or not. The expression of the key must match the pattern <code>method.response.header.{name}</code>, where <code>name</code> is a valid and unique header name. API Gateway passes certain integration response data to the method response headers specified here according to the mapping you prescribe in the API's <a>IntegrationResponse</a>. The integration response data that can be mapped include an integration response header expressed in <code>integration.response.header.{name}</code>, a static value enclosed within a pair of single quotes (e.g., <code>'application/json'</code>), or a JSON expression from the back-end response payload in the form of <code>integration.response.body.{JSON-expression}</code>, where <code>JSON-expression</code> is a valid JSON expression without the <code>$</code> prefix.)<br/>statusCode:  The method response's status code.<br/>        """
        pass

    def put_rest_api(self, body: Blob, restApiId: str, mode: str=None, failOnWarnings: Boolean=None, parameters: MapOfStringToString=None) -> RestApi:
        r"""A feature of the API Gateway control service for updating an existing API with an input of external API definitions. The update can take the form of merging the supplied definition into the existing API or overwriting the existing API.

        :param self:
        :param body:  [Required] The PUT request body containing external API definitions. Currently, only OpenAPI definition JSON/YAML files are supported. The maximum size of the API definition file is 6MB.<br/>parameters:  Custom header parameters as part of the request. For example, to exclude <a>DocumentationParts</a> from an imported API, set <code>ignore=documentation</code> as a <code>parameters</code> value, as in the AWS CLI command of <code>aws apigateway import-rest-api --parameters ignore=documentation --body 'file:///path/to/imported-api-body.json'</code>.<br/>failOnWarnings:  A query parameter to indicate whether to rollback the API update (<code>true</code>) or not (<code>false</code>) when a warning is encountered. The default value is <code>false</code>.<br/>mode:  The <code>mode</code> query parameter to specify the update mode. Valid values are "merge" and "overwrite". By default, the update mode is "merge".<br/>restApiId:  [Required] The string identifier of the associated <a>RestApi</a>.<br/>
        :return: disableExecuteApiEndpoint:  Specifies whether clients can invoke your API by using the default <code>execute-api</code> endpoint. By default, clients can invoke your API with the default https://{api_id}.execute-api.{region}.amazonaws.com endpoint. To require that clients use a custom domain name to invoke your API, disable the default endpoint.<br/>tags:  The collection of tags. Each tag element is associated with a given resource.<br/>policy:  A stringified JSON policy document that applies to this RestApi regardless of the caller and <a>Method</a> configuration.<br/>endpointConfiguration:  The endpoint configuration of this <a>RestApi</a> showing the endpoint types of the API.:<br/>apiKeySource:  The source of the API key for metering requests according to a usage plan. Valid values are: <ul><li><code>HEADER</code> to read the API key from the <code>X-API-Key</code> header of a request. </li><li><code>AUTHORIZER</code> to read the API key from the <code>UsageIdentifierKey</code> from a custom authorizer.</li></ul><br/>minimumCompressionSize:  A nullable integer that is used to enable compression (with non-negative between 0 and 10485760 (10M) bytes, inclusive) or disable compression (with a null value) on an API. When compression is enabled, compression or decompression is not applied on the payload if the payload size is smaller than this value. Setting it to zero allows compression for any payload size.<br/>binaryMediaTypes:  The list of binary media types supported by the <a>RestApi</a>. By default, the <a>RestApi</a> supports only UTF-8-encoded text payloads.<br/>warnings:  The warning messages reported when <code>failonwarnings</code> is turned on during API import.<br/>version:  A version identifier for the API.<br/>createdDate:  The timestamp when the API was created.<br/>description:  The API's description.<br/>name:  The API's name.<br/>id:  The API's identifier. This identifier is unique across all of your APIs in API Gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>vpcEndpointIds</i> A list of VpcEndpointIds of an API (<a>RestApi</a>) against which to create Route53 ALIASes. It is only supported for <code>PRIVATE</code> endpoint type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>types</i> A list of endpoint types of an API (<a>RestApi</a>) or its custom domain name (<a>DomainName</a>). For an edge-optimized API and its custom domain name, the endpoint type is <code>"EDGE"</code>. For a regional API and its custom domain name, the endpoint type is <code>REGIONAL</code>. For a private API, the endpoint type is <code>PRIVATE</code>.<br/>        """
        pass

    def tag_resource(self, tags: MapOfStringToString, resourceArn: str):
        r"""Adds or updates a tag on a given resource.

        :param self:
        :param tags:  [Required] The key-value map of strings. The valid character set is [a-zA-Z+-=._:/]. The tag key can be up to 128 characters and must not start with <code>aws:</code>. The tag value can be up to 256 characters.<br/>resourceArn:  [Required] The ARN of a resource that can be tagged.<br/>
        :return:         """
        pass

    def test_invoke_authorizer(self, authorizerId: str, restApiId: str, headers: MapOfStringToString=None, multiValueHeaders: MapOfStringToList=None, pathWithQueryString: str=None, body: str=None, stageVariables: MapOfStringToString=None, additionalContext: MapOfStringToString=None) -> TestInvokeAuthorizerResponse:
        r"""Simulate the execution of an <a>Authorizer</a> in your <a>RestApi</a> with headers, parameters, and an incoming request body. <div class="seeAlso"> <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-use-lambda-authorizer.html">Use Lambda Function as Authorizer</a> <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-integrate-with-cognito.html">Use Cognito User Pool as Authorizer</a> </div>

        :param self:
        :param additionalContext:  [Optional] A key-value map of additional context variables.<br/>stageVariables:  A key-value map of stage variables to simulate an invocation on a deployed <a>Stage</a>.<br/>body:  [Optional] The simulated request body of an incoming invocation request.<br/>pathWithQueryString:  [Optional] The URI path, including query string, of the simulated invocation request. Use this to specify path parameters and query string parameters.<br/>multiValueHeaders:  [Optional] The headers as a map from string to list of values to simulate an incoming invocation request. This is where the incoming authorization token, or identity source, may be specified.<br/>headers:  [Required] A key-value map of headers to simulate an incoming invocation request. This is where the incoming authorization token, or identity source, should be specified.<br/>authorizerId:  [Required] Specifies a test invoke authorizer request's <a>Authorizer</a> ID.<br/>restApiId:  [Required] The string identifier of the associated <a>RestApi</a>.<br/>
        :return: claims:  The <a href="https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims">open identity claims</a>, with any supported custom attributes, returned from the Cognito Your User Pool configured for the API.<br/>authorization:  <br/>policy:  The JSON policy document returned by the <a>Authorizer</a><br/>principalId:  The principal identity returned by the <a>Authorizer</a><br/>latency:  The execution latency of the test authorizer request.<br/>log:  The API Gateway execution log for the test authorizer request.<br/>clientStatus:  The HTTP status code that the client would have received. Value is 0 if the authorizer succeeded.<br/>        """
        pass

    def test_invoke_method(self, httpMethod: str, resourceId: str, restApiId: str, pathWithQueryString: str=None, body: str=None, headers: MapOfStringToString=None, multiValueHeaders: MapOfStringToList=None, clientCertificateId: str=None, stageVariables: MapOfStringToString=None) -> TestInvokeMethodResponse:
        r"""Simulate the execution of a <a>Method</a> in your <a>RestApi</a> with headers, parameters, and an incoming request body.

        :param self:
        :param stageVariables:  A key-value map of stage variables to simulate an invocation on a deployed <a>Stage</a>.<br/>clientCertificateId:  A <a>ClientCertificate</a> identifier to use in the test invocation. API Gateway will use the certificate when making the HTTPS request to the defined back-end endpoint.<br/>multiValueHeaders:  The headers as a map from string to list of values to simulate an incoming invocation request.<br/>headers:  A key-value map of headers to simulate an incoming invocation request.<br/>body:  The simulated request body of an incoming invocation request.<br/>pathWithQueryString:  The URI path, including query string, of the simulated invocation request. Use this to specify path parameters and query string parameters.<br/>httpMethod:  [Required] Specifies a test invoke method request's HTTP method.<br/>resourceId:  [Required] Specifies a test invoke method request's resource ID.<br/>restApiId:  [Required] The string identifier of the associated <a>RestApi</a>.<br/>
        :return: latency:  The execution latency of the test invoke request.<br/>log:  The API Gateway execution log for the test invoke request.<br/>multiValueHeaders:  The headers of the HTTP response as a map from string to list of values.<br/>headers:  The headers of the HTTP response.<br/>body:  The body of the HTTP response.<br/>status:  The HTTP status code.<br/>        """
        pass

    def untag_resource(self, tagKeys: List[String], resourceArn: str):
        r"""Removes a tag from a given resource.

        :param self:
        :param tagKeys:  [Required] The Tag keys to delete.<br/>resourceArn:  [Required] The ARN of a resource that can be tagged.<br/>
        :return:         """
        pass

    def update_account(self, patchOperations: List[PatchOperation]=None) -> Account:
        r"""Changes information about the current <a>Account</a> resource.

        :param self:
        :param patchOperations:  A list of update operations to be applied to the specified resource and in the order specified in this list.<br/>
        :return: apiKeyVersion:  The version of the API keys used for the account.<br/>features:  A list of features supported for the account. When usage plans are enabled, the features list will include an entry of <code>"UsagePlans"</code>.<br/>throttleSettings:  Specifies the API request limits configured for the current <a>Account</a>.:<br/>cloudwatchRoleArn:  The ARN of an Amazon CloudWatch role for the current <a>Account</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>rateLimit</i> The API request steady-state rate limit.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>burstLimit</i> The API request burst limit, the maximum rate limit over a time ranging from one to a few seconds, depending upon whether the underlying token bucket is at its full capacity.<br/>        """
        pass

    def update_api_key(self, apiKey: str, patchOperations: List[PatchOperation]=None) -> ApiKey:
        r"""Changes information about an <a>ApiKey</a> resource.

        :param self:
        :param patchOperations:  A list of update operations to be applied to the specified resource and in the order specified in this list.<br/>apiKey:  [Required] The identifier of the <a>ApiKey</a> resource to be updated.<br/>
        :return: tags:  The collection of tags. Each tag element is associated with a given resource.<br/>stageKeys:  A list of <a>Stage</a> resources that are associated with the <a>ApiKey</a> resource.<br/>lastUpdatedDate:  The timestamp when the API Key was last updated.<br/>createdDate:  The timestamp when the API Key was created.<br/>enabled:  Specifies whether the API Key can be used by callers.<br/>description:  The description of the API Key.<br/>customerId:  An AWS Marketplace customer identifier , when integrating with the AWS SaaS Marketplace.<br/>name:  The name of the API Key.<br/>value:  The value of the API Key.<br/>id:  The identifier of the API Key.<br/>        """
        pass

    def update_authorizer(self, authorizerId: str, restApiId: str, patchOperations: List[PatchOperation]=None) -> Authorizer:
        r"""Updates an existing <a>Authorizer</a> resource. <div class="seeAlso"><a href="https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-authorizer.html">AWS CLI</a></div>

        :param self:
        :param patchOperations:  A list of update operations to be applied to the specified resource and in the order specified in this list.<br/>authorizerId:  [Required] The identifier of the <a>Authorizer</a> resource.<br/>restApiId:  [Required] The string identifier of the associated <a>RestApi</a>.<br/>
        :return: authorizerResultTtlInSeconds:  The TTL in seconds of cached authorizer results. If it equals 0, authorization caching is disabled. If it is greater than 0, API Gateway will cache authorizer responses. If this field is not set, the default value is 300. The maximum value is 3600, or 1 hour.<br/>identityValidationExpression:  A validation expression for the incoming identity token. For <code>TOKEN</code> authorizers, this value is a regular expression. For <code>COGNITO_USER_POOLS</code> authorizers, API Gateway will match the <code>aud</code> field of the incoming token from the client against the specified regular expression. It will invoke the authorizer's Lambda function when there is a match. Otherwise, it will return a 401 Unauthorized response without calling the Lambda function. The validation expression does not apply to the <code>REQUEST</code> authorizer.<br/>identitySource:  The identity source for which authorization is requested. <ul><li>For a <code>TOKEN</code> or <code>COGNITO_USER_POOLS</code> authorizer, this is required and specifies the request header mapping expression for the custom header holding the authorization token submitted by the client. For example, if the token header name is <code>Auth</code>, the header mapping expression is <code>method.request.header.Auth</code>.</li><li>For the <code>REQUEST</code> authorizer, this is required when authorization caching is enabled. The value is a comma-separated string of one or more mapping expressions of the specified request parameters. For example, if an <code>Auth</code> header, a <code>Name</code> query string parameter are defined as identity sources, this value is <code>method.request.header.Auth, method.request.querystring.Name</code>. These parameters will be used to derive the authorization caching key and to perform runtime validation of the <code>REQUEST</code> authorizer by verifying all of the identity-related request parameters are present, not null and non-empty. Only when this is true does the authorizer invoke the authorizer Lambda function, otherwise, it returns a 401 Unauthorized response without calling the Lambda function. The valid value is a string of comma-separated mapping expressions of the specified request parameters. When the authorization caching is not enabled, this property is optional.</li></ul><br/>authorizerCredentials:  Specifies the required credentials as an IAM role for API Gateway to invoke the authorizer. To specify an IAM role for API Gateway to assume, use the role's Amazon Resource Name (ARN). To use resource-based permissions on the Lambda function, specify null.<br/>authorizerUri:  Specifies the authorizer's Uniform Resource Identifier (URI). For <code>TOKEN</code> or <code>REQUEST</code> authorizers, this must be a well-formed Lambda function URI, for example, <code>arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:{account_id}:function:{lambda_function_name}/invocations</code>. In general, the URI has this form <code>arn:aws:apigateway:{region}:lambda:path/{service_api}</code>, where <code>{region}</code> is the same as the region hosting the Lambda function, <code>path</code> indicates that the remaining substring in the URI should be treated as the path to the resource, including the initial <code>/</code>. For Lambda functions, this is usually of the form <code>/2015-03-31/functions/[FunctionARN]/invocations</code>.<br/>authType:  Optional customer-defined field, used in OpenAPI imports and exports without functional impact.<br/>providerARNs:  A list of the Amazon Cognito user pool ARNs for the <code>COGNITO_USER_POOLS</code> authorizer. Each element is of this format: <code>arn:aws:cognito-idp:{region}:{account_id}:userpool/{user_pool_id}</code>. For a <code>TOKEN</code> or <code>REQUEST</code> authorizer, this is not defined.<br/>type:  The authorizer type. Valid values are <code>TOKEN</code> for a Lambda function using a single authorization token submitted in a custom header, <code>REQUEST</code> for a Lambda function using incoming request parameters, and <code>COGNITO_USER_POOLS</code> for using an Amazon Cognito user pool.<br/>name:  [Required] The name of the authorizer.<br/>id:  The identifier for the authorizer resource.<br/>        """
        pass

    def update_base_path_mapping(self, basePath: str, domainName: str, patchOperations: List[PatchOperation]=None) -> BasePathMapping:
        r"""Changes information about the <a>BasePathMapping</a> resource.

        :param self:
        :param patchOperations:  A list of update operations to be applied to the specified resource and in the order specified in this list.<br/>basePath:  [Required] The base path of the <a>BasePathMapping</a> resource to change. To specify an empty base path, set this parameter to <code>'(none)'</code>.<br/>domainName:  [Required] The domain name of the <a>BasePathMapping</a> resource to change.<br/>
        :return: stage:  The name of the associated stage.<br/>restApiId:  The string identifier of the associated <a>RestApi</a>.<br/>basePath:  The base path name that callers of the API must provide as part of the URL after the domain name.<br/>        """
        pass

    def update_client_certificate(self, clientCertificateId: str, patchOperations: List[PatchOperation]=None) -> ClientCertificate:
        r"""Changes information about an <a>ClientCertificate</a> resource.

        :param self:
        :param patchOperations:  A list of update operations to be applied to the specified resource and in the order specified in this list.<br/>clientCertificateId:  [Required] The identifier of the <a>ClientCertificate</a> resource to be updated.<br/>
        :return: tags:  The collection of tags. Each tag element is associated with a given resource.<br/>expirationDate:  The timestamp when the client certificate will expire.<br/>createdDate:  The timestamp when the client certificate was created.<br/>pemEncodedCertificate:  The PEM-encoded public key of the client certificate, which can be used to configure certificate authentication in the integration endpoint .<br/>description:  The description of the client certificate.<br/>clientCertificateId:  The identifier of the client certificate.<br/>        """
        pass

    def update_deployment(self, deploymentId: str, restApiId: str, patchOperations: List[PatchOperation]=None) -> Deployment:
        r"""Changes information about a <a>Deployment</a> resource.

        :param self:
        :param patchOperations:  A list of update operations to be applied to the specified resource and in the order specified in this list.<br/>deploymentId:  The replacement identifier for the <a>Deployment</a> resource to change information about.<br/>restApiId:  [Required] The string identifier of the associated <a>RestApi</a>.<br/>
        :return: apiSummary:  A summary of the <a>RestApi</a> at the date and time that the deployment resource was created.<br/>createdDate:  The date and time that the deployment resource was created.<br/>description:  The description for the deployment resource.<br/>id:  The identifier for the deployment resource.<br/>        """
        pass

    def update_documentation_part(self, documentationPartId: str, restApiId: str, patchOperations: List[PatchOperation]=None) -> DocumentationPart:
        r"""

        :param self:
        :param patchOperations:  A list of update operations to be applied to the specified resource and in the order specified in this list.<br/>documentationPartId:  [Required] The identifier of the to-be-updated documentation part.<br/>restApiId:  [Required] The string identifier of the associated <a>RestApi</a>.<br/>
        :return: properties:  A content map of API-specific key-value pairs describing the targeted API entity. The map must be encoded as a JSON string, e.g., <code>"{ \"description\": \"The API does ...\" }"</code>. Only OpenAPI-compliant documentation-related fields from the <literal>properties</literal> map are exported and, hence, published as part of the API entity definitions, while the original documentation parts are exported in a OpenAPI extension of <code>x-amazon-apigateway-documentation</code>.<br/>location:  The location of the API entity to which the documentation applies. Valid fields depend on the targeted API entity type. All the valid location fields are not required. If not explicitly specified, a valid location field is treated as a wildcard and associated documentation content may be inherited by matching entities, unless overridden.:<br/>id:  The <a>DocumentationPart</a> identifier, generated by API Gateway when the <code>DocumentationPart</code> is created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the targeted API entity. It is a valid and required field for the API entity types of <code>AUTHORIZER</code>, <code>MODEL</code>, <code>PATH_PARAMETER</code>, <code>QUERY_PARAMETER</code>, <code>REQUEST_HEADER</code>, <code>REQUEST_BODY</code> and <code>RESPONSE_HEADER</code>. It is an invalid field for any other entity type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusCode</i> The HTTP status code of a response. It is a valid field for the API entity types of <code>RESPONSE</code>, <code>RESPONSE_HEADER</code>, and <code>RESPONSE_BODY</code>. The default value is <code>*</code> for any status code. When an applicable child entity inherits the content of an entity of the same type with more general specifications of the other <code>location</code> attributes, the child entity's <code>statusCode</code> attribute must match that of the parent entity exactly.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>method</i> The HTTP verb of a method. It is a valid field for the API entity types of <code>METHOD</code>, <code>PATH_PARAMETER</code>, <code>QUERY_PARAMETER</code>, <code>REQUEST_HEADER</code>, <code>REQUEST_BODY</code>, <code>RESPONSE</code>, <code>RESPONSE_HEADER</code>, and <code>RESPONSE_BODY</code>. The default value is <code>*</code> for any method. When an applicable child entity inherits the content of an entity of the same type with more general specifications of the other <code>location</code> attributes, the child entity's <code>method</code> attribute must match that of the parent entity exactly.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>path</i> The URL path of the target. It is a valid field for the API entity types of <code>RESOURCE</code>, <code>METHOD</code>, <code>PATH_PARAMETER</code>, <code>QUERY_PARAMETER</code>, <code>REQUEST_HEADER</code>, <code>REQUEST_BODY</code>, <code>RESPONSE</code>, <code>RESPONSE_HEADER</code>, and <code>RESPONSE_BODY</code>. The default value is <code>/</code> for the root resource. When an applicable child entity inherits the content of another entity of the same type with more general specifications of the other <code>location</code> attributes, the child entity's <code>path</code> attribute must match that of the parent entity as a prefix.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> [Required] The type of API entity to which the documentation content applies. Valid values are <code>API</code>, <code>AUTHORIZER</code>, <code>MODEL</code>, <code>RESOURCE</code>, <code>METHOD</code>, <code>PATH_PARAMETER</code>, <code>QUERY_PARAMETER</code>, <code>REQUEST_HEADER</code>, <code>REQUEST_BODY</code>, <code>RESPONSE</code>, <code>RESPONSE_HEADER</code>, and <code>RESPONSE_BODY</code>. Content inheritance does not apply to any entity of the <code>API</code>, <code>AUTHORIZER</code>, <code>METHOD</code>, <code>MODEL</code>, <code>REQUEST_BODY</code>, or <code>RESOURCE</code> type.<br/>        """
        pass

    def update_documentation_version(self, documentationVersion: str, restApiId: str, patchOperations: List[PatchOperation]=None) -> DocumentationVersion:
        r"""

        :param self:
        :param patchOperations:  A list of update operations to be applied to the specified resource and in the order specified in this list.<br/>documentationVersion:  [Required] The version identifier of the to-be-updated documentation version.<br/>restApiId:  [Required] The string identifier of the associated <a>RestApi</a>..<br/>
        :return: description:  The description of the API documentation snapshot.<br/>createdDate:  The date when the API documentation snapshot is created.<br/>version:  The version identifier of the API documentation snapshot.<br/>        """
        pass

    def update_domain_name(self, domainName: str, patchOperations: List[PatchOperation]=None) -> DomainName:
        r"""Changes information about the <a>DomainName</a> resource.

        :param self:
        :param patchOperations:  A list of update operations to be applied to the specified resource and in the order specified in this list.<br/>domainName:  [Required] The name of the <a>DomainName</a> resource to be changed.<br/>
        :return: mutualTlsAuthentication:  The mutual TLS authentication configuration for a custom domain name. If specified, API Gateway performs two-way authentication between the client and the server. Clients must present a trusted certificate to access your API.:<br/>tags:  The collection of tags. Each tag element is associated with a given resource.<br/>securityPolicy:  The Transport Layer Security (TLS) version + cipher suite for this <a>DomainName</a>. The valid values are <code>TLS_1_0</code> and <code>TLS_1_2</code>.<br/>domainNameStatusMessage:  An optional text message containing detailed information about status of the <a>DomainName</a> migration.<br/>domainNameStatus:  The status of the <a>DomainName</a> migration. The valid values are <code>AVAILABLE</code> and <code>UPDATING</code>. If the status is <code>UPDATING</code>, the domain cannot be modified further until the existing operation is complete. If it is <code>AVAILABLE</code>, the domain can be updated.<br/>endpointConfiguration:  The endpoint configuration of this <a>DomainName</a> showing the endpoint types of the domain name.:<br/>distributionHostedZoneId:  The region-agnostic Amazon Route 53 Hosted Zone ID of the edge-optimized endpoint. The valid value is <code>Z2FDTNDATAQYW2</code> for all the regions. For more information, see <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-regional-api-custom-domain-create.html">Set up a Regional Custom Domain Name</a> and <a href="https://docs.aws.amazon.com/general/latest/gr/rande.html#apigateway_region">AWS Regions and Endpoints for API Gateway</a>. <br/>distributionDomainName:  The domain name of the Amazon CloudFront distribution associated with this custom domain name for an edge-optimized endpoint. You set up this association when adding a DNS record pointing the custom domain name to this distribution name. For more information about CloudFront distributions, see the <a href="https://aws.amazon.com/documentation/cloudfront/" target="_blank">Amazon CloudFront documentation</a>.<br/>regionalCertificateArn:  The reference to an AWS-managed certificate that will be used for validating the regional domain name. AWS Certificate Manager is the only supported source.<br/>regionalCertificateName:  The name of the certificate that will be used for validating the regional domain name.<br/>regionalHostedZoneId:  The region-specific Amazon Route 53 Hosted Zone ID of the regional endpoint. For more information, see <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-regional-api-custom-domain-create.html">Set up a Regional Custom Domain Name</a> and <a href="https://docs.aws.amazon.com/general/latest/gr/rande.html#apigateway_region">AWS Regions and Endpoints for API Gateway</a>. <br/>regionalDomainName:  The domain name associated with the regional endpoint for this custom domain name. You set up this association by adding a DNS record that points the custom domain name to this regional domain name. The regional domain name is returned by API Gateway when you create a regional endpoint.<br/>certificateUploadDate:  The timestamp when the certificate that was used by edge-optimized endpoint for this domain name was uploaded.<br/>certificateArn:  The reference to an AWS-managed certificate that will be used by edge-optimized endpoint for this domain name. AWS Certificate Manager is the only supported source.<br/>certificateName:  The name of the certificate that will be used by edge-optimized endpoint for this domain name.<br/>domainName:  The custom domain name as an API host name, for example, <code>my-api.example.com</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>vpcEndpointIds</i> A list of VpcEndpointIds of an API (<a>RestApi</a>) against which to create Route53 ALIASes. It is only supported for <code>PRIVATE</code> endpoint type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>types</i> A list of endpoint types of an API (<a>RestApi</a>) or its custom domain name (<a>DomainName</a>). For an edge-optimized API and its custom domain name, the endpoint type is <code>"EDGE"</code>. For a regional API and its custom domain name, the endpoint type is <code>REGIONAL</code>. For a private API, the endpoint type is <code>PRIVATE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>truststoreWarnings</i> A list of warnings that API Gateway returns while processing your truststore. Invalid certificates produce warnings. Mutual TLS is still enabled, but some clients might not be able to access your API. To resolve warnings, upload a new truststore to S3, and then update you domain name to use the new version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>truststoreVersion</i> The version of the S3 object that contains your truststore. To specify a version, you must have versioning enabled for the S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>truststoreUri</i> An Amazon S3 URL that specifies the truststore for mutual TLS authentication, for example <code>s3://bucket-name/key-name</code>. The truststore can contain certificates from public or private certificate authorities. To update the truststore, upload a new version to S3, and then update your custom domain name to use the new version. To update the truststore, you must have permissions to access the S3 object.<br/>        """
        pass

    def update_gateway_response(self, responseType: str, restApiId: str, patchOperations: List[PatchOperation]=None) -> GatewayResponse:
        r"""Updates a <a>GatewayResponse</a> of a specified response type on the given <a>RestApi</a>.

        :param self:
        :param patchOperations:  A list of update operations to be applied to the specified resource and in the order specified in this list.<br/>responseType:  [Required] The response type of the associated <a>GatewayResponse</a>. Valid values are <ul><li>ACCESS_DENIED</li><li>API_CONFIGURATION_ERROR</li><li>AUTHORIZER_FAILURE</li><li> AUTHORIZER_CONFIGURATION_ERROR</li><li>BAD_REQUEST_PARAMETERS</li><li>BAD_REQUEST_BODY</li><li>DEFAULT_4XX</li><li>DEFAULT_5XX</li><li>EXPIRED_TOKEN</li><li>INVALID_SIGNATURE</li><li>INTEGRATION_FAILURE</li><li>INTEGRATION_TIMEOUT</li><li>INVALID_API_KEY</li><li>MISSING_AUTHENTICATION_TOKEN</li><li> QUOTA_EXCEEDED</li><li>REQUEST_TOO_LARGE</li><li>RESOURCE_NOT_FOUND</li><li>THROTTLED</li><li>UNAUTHORIZED</li><li>UNSUPPORTED_MEDIA_TYPE</li></ul> <br/>restApiId:  [Required] The string identifier of the associated <a>RestApi</a>.<br/>
        :return: defaultResponse:  A Boolean flag to indicate whether this <a>GatewayResponse</a> is the default gateway response (<code>true</code>) or not (<code>false</code>). A default gateway response is one generated by API Gateway without any customization by an API developer. <br/>responseTemplates:  Response templates of the <a>GatewayResponse</a> as a string-to-string map of key-value pairs.<br/>responseParameters:  Response parameters (paths, query strings and headers) of the <a>GatewayResponse</a> as a string-to-string map of key-value pairs.<br/>statusCode:  The HTTP status code for this <a>GatewayResponse</a>.<br/>responseType:  The response type of the associated <a>GatewayResponse</a>. Valid values are <ul><li>ACCESS_DENIED</li><li>API_CONFIGURATION_ERROR</li><li>AUTHORIZER_FAILURE</li><li> AUTHORIZER_CONFIGURATION_ERROR</li><li>BAD_REQUEST_PARAMETERS</li><li>BAD_REQUEST_BODY</li><li>DEFAULT_4XX</li><li>DEFAULT_5XX</li><li>EXPIRED_TOKEN</li><li>INVALID_SIGNATURE</li><li>INTEGRATION_FAILURE</li><li>INTEGRATION_TIMEOUT</li><li>INVALID_API_KEY</li><li>MISSING_AUTHENTICATION_TOKEN</li><li> QUOTA_EXCEEDED</li><li>REQUEST_TOO_LARGE</li><li>RESOURCE_NOT_FOUND</li><li>THROTTLED</li><li>UNAUTHORIZED</li><li>UNSUPPORTED_MEDIA_TYPE</li></ul> <br/>        """
        pass

    def update_integration(self, httpMethod: str, resourceId: str, restApiId: str, patchOperations: List[PatchOperation]=None) -> Integration:
        r"""Represents an update integration.

        :param self:
        :param patchOperations:  A list of update operations to be applied to the specified resource and in the order specified in this list.<br/>httpMethod:  [Required] Represents an update integration request's HTTP method.<br/>resourceId:  [Required] Represents an update integration request's resource identifier.<br/>restApiId:  [Required] The string identifier of the associated <a>RestApi</a>.<br/>
        :return: tlsConfig:  Specifies the TLS configuration for an integration.:<br/>integrationResponses:  Specifies the integration's responses. <div class="remarks"> <p/> <h4>Example: Get integration responses of a method</h4> <h5>Request</h5> <p/> <pre><code>GET /restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200 HTTP/1.1 Content-Type: application/json Host: apigateway.us-east-1.amazonaws.com X-Amz-Date: 20160607T191449Z Authorization: AWS4-HMAC-SHA256 Credential={access_key_ID}/20160607/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash} </code></pre> <h5>Response</h5> The successful response returns <code>200 OK</code> status and a payload as follows: <pre><code>{ "_links": { "curies": { "href": "https://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-response-{rel}.html", "name": "integrationresponse", "templated": true }, "self": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200", "title": "200" }, "integrationresponse:delete": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200" }, "integrationresponse:update": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200" } }, "responseParameters": { "method.response.header.Content-Type": "'application/xml'" }, "responseTemplates": { "application/json": "$util.urlDecode(\"%3CkinesisStreams%3E#foreach($stream in $input.path('$.StreamNames'))%3Cstream%3E%3Cname%3E$stream%3C/name%3E%3C/stream%3E#end%3C/kinesisStreams%3E\")\n" }, "statusCode": "200" }</code></pre> <p/> </div> <div class="seeAlso"> <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-create-api.html">Creating an API</a> </div><br/>cacheKeyParameters:  A list of request parameters whose values API Gateway caches. To be valid values for <code>cacheKeyParameters</code>, these parameters must also be specified for <a>Method</a> <code>requestParameters</code>.<br/>cacheNamespace:  Specifies a group of related cached parameters. By default, API Gateway uses the resource ID as the <code>cacheNamespace</code>. You can specify the same <code>cacheNamespace</code> across resources to return the same cached data for requests to different resources.<br/>timeoutInMillis:  Custom timeout between 50 and 29,000 milliseconds. The default value is 29,000 milliseconds or 29 seconds.<br/>contentHandling:  Specifies how to handle request payload content type conversions. Supported values are <code>CONVERT_TO_BINARY</code> and <code>CONVERT_TO_TEXT</code>, with the following behaviors: <ul> <li><code>CONVERT_TO_BINARY</code>: Converts a request payload from a Base64-encoded string to the corresponding binary blob.</li> <li><code>CONVERT_TO_TEXT</code>: Converts a request payload from a binary blob to a Base64-encoded string.</li> </ul> If this property is not defined, the request payload will be passed through from the method request to integration request without modification, provided that the <code>passthroughBehavior</code> is configured to support payload pass-through.<br/>passthroughBehavior:  <div>  Specifies how the method request body of an unmapped content type will be passed through the integration request to the back end without transformation. A content type is unmapped if no mapping template is defined in the integration or the content type does not match any of the mapped content types, as specified in <code>requestTemplates</code>. The valid value is one of the following:  <ul> <li> <code>WHEN_NO_MATCH</code>: passes the method request body through the integration request to the back end without transformation when the method request content type does not match any content type associated with the mapping templates defined in the integration request. </li> <li> <code>WHEN_NO_TEMPLATES</code>: passes the method request body through the integration request to the back end without transformation when no mapping template is defined in the integration request. If a template is defined when this option is selected, the method request of an unmapped content-type will be rejected with an HTTP <code>415 Unsupported Media Type</code> response. </li> <li> <code>NEVER</code>: rejects the method request with an HTTP <code>415 Unsupported Media Type</code> response when either the method request content type does not match any content type associated with the mapping templates defined in the integration request or no mapping template is defined in the integration request. </li> </ul> </div><br/>requestTemplates:  Represents a map of Velocity templates that are applied on the request payload based on the value of the Content-Type header sent by the client. The content type value is the key in this map, and the template (as a String) is the value.<br/>requestParameters:  A key-value map specifying request parameters that are passed from the method request to the back end. The key is an integration request parameter name and the associated value is a method request parameter value or static value that must be enclosed within single quotes and pre-encoded as required by the back end. The method request parameter value must match the pattern of <code>method.request.{location}.{name}</code>, where <code>location</code> is <code>querystring</code>, <code>path</code>, or <code>header</code> and <code>name</code> must be a valid and unique method request parameter name.<br/>credentials:  Specifies the credentials required for the integration, if any. For AWS integrations, three options are available. To specify an IAM Role for API Gateway to assume, use the role's Amazon Resource Name (ARN). To require that the caller's identity be passed through from the request, specify the string <code>arn:aws:iam::\*:user/\*</code>. To use resource-based permissions on supported AWS services, specify null.<br/>connectionId:  The (<a href="https://docs.aws.amazon.com/apigateway/api-reference/resource/vpc-link/#id"><code>id</code></a>) of the <a>VpcLink</a> used for the integration when <code>connectionType=VPC_LINK</code> and undefined, otherwise.<br/>connectionType:  The type of the network connection to the integration endpoint. The valid value is <code>INTERNET</code> for connections through the public routable internet or <code>VPC_LINK</code> for private connections between API Gateway and a network load balancer in a VPC. The default value is <code>INTERNET</code>.<br/>uri:  Specifies Uniform Resource Identifier (URI) of the integration endpoint. <ul> <li> For <code>HTTP</code> or <code>HTTP_PROXY</code> integrations, the URI must be a fully formed, encoded HTTP(S) URL according to the <a href="https://en.wikipedia.org/wiki/Uniform_Resource_Identifier" target="_blank">RFC-3986 specification</a>, for either standard integration, where <code>connectionType</code> is not <code>VPC_LINK</code>, or private integration, where <code>connectionType</code> is <code>VPC_LINK</code>. For a private HTTP integration, the URI is not used for routing.  </li> <li> For <code>AWS</code> or <code>AWS_PROXY</code> integrations, the URI is of the form <code>arn:aws:apigateway:{region}:{subdomain.service|service}:path|action/{service_api}</code>. Here, <code>{Region}</code> is the API Gateway region (e.g., <code>us-east-1</code>); <code>{service}</code> is the name of the integrated AWS service (e.g., <code>s3</code>); and <code>{subdomain}</code> is a designated subdomain supported by certain AWS service for fast host-name lookup. <code>action</code> can be used for an AWS service action-based API, using an <code>Action={name}&amp;{p1}={v1}&amp;p2={v2}...</code> query string. The ensuing <code>{service_api}</code> refers to a supported action <code>{name}</code> plus any required input parameters. Alternatively, <code>path</code> can be used for an AWS service path-based API. The ensuing <code>service_api</code> refers to the path to an AWS service resource, including the region of the integrated AWS service, if applicable. For example, for integration with the S3 API of <code><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectGET.html">GetObject</a></code>, the <code>uri</code> can be either <code>arn:aws:apigateway:us-west-2:s3:action/GetObject&amp;Bucket={bucket}&amp;Key={key}</code> or <code>arn:aws:apigateway:us-west-2:s3:path/{bucket}/{key}</code> </li></ul><br/>httpMethod:  Specifies the integration's HTTP method type.<br/>type:  Specifies an API method integration type. The valid value is one of the following: <ul> <li><code>AWS</code>: for integrating the API method request with an AWS service action, including the Lambda function-invoking action. With the Lambda function-invoking action, this is referred to as the Lambda custom integration. With any other AWS service action, this is known as AWS integration.</li> <li><code>AWS_PROXY</code>: for integrating the API method request with the Lambda function-invoking action with the client request passed through as-is. This integration is also referred to as the Lambda proxy integration.</li> <li><code>HTTP</code>: for integrating the API method request with an HTTP endpoint, including a private HTTP endpoint within a VPC. This integration is also referred to as the HTTP custom integration.</li> <li><code>HTTP_PROXY</code>: for integrating the API method request with an HTTP endpoint, including a private HTTP endpoint within a VPC, with the client request passed through as-is. This is also referred to as the HTTP proxy integration.</li> <li><code>MOCK</code>: for integrating the API method request with API Gateway as a "loop-back" endpoint without invoking any backend.</li> </ul> For the HTTP and HTTP proxy integrations, each integration can specify a protocol (<code>http/https</code>), port and path. Standard 80 and 443 ports are supported as well as custom ports above 1024. An HTTP or HTTP proxy integration with a <code>connectionType</code> of <code>VPC_LINK</code> is referred to as a private integration and uses a <a>VpcLink</a> to connect API Gateway to a network load balancer of a VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>insecureSkipVerification</i> Specifies whether or not API Gateway skips verification that the certificate for an integration endpoint is issued by a <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-supported-certificate-authorities-for-http-endpoints.html">supported certificate authority</a>. This isn’t recommended, but it enables you to use certificates that are signed by private certificate authorities, or certificates that are self-signed. If enabled, API Gateway still performs basic certificate validation, which includes checking the certificate's expiration date, hostname, and presence of a root certificate authority. Supported only for <code>HTTP</code> and <code>HTTP_PROXY</code> integrations.<br/>        """
        pass

    def update_integration_response(self, statusCode: str, httpMethod: str, resourceId: str, restApiId: str, patchOperations: List[PatchOperation]=None) -> IntegrationResponse:
        r"""Represents an update integration response.

        :param self:
        :param patchOperations:  A list of update operations to be applied to the specified resource and in the order specified in this list.<br/>statusCode:  [Required] Specifies an update integration response request's status code.<br/>httpMethod:  [Required] Specifies an update integration response request's HTTP method.<br/>resourceId:  [Required] Specifies an update integration response request's resource identifier.<br/>restApiId:  [Required] The string identifier of the associated <a>RestApi</a>.<br/>
        :return: contentHandling:  Specifies how to handle response payload content type conversions. Supported values are <code>CONVERT_TO_BINARY</code> and <code>CONVERT_TO_TEXT</code>, with the following behaviors: <ul> <li><code>CONVERT_TO_BINARY</code>: Converts a response payload from a Base64-encoded string to the corresponding binary blob.</li> <li><code>CONVERT_TO_TEXT</code>: Converts a response payload from a binary blob to a Base64-encoded string.</li> </ul> If this property is not defined, the response payload will be passed through from the integration response to the method response without modification.<br/>responseTemplates:  Specifies the templates used to transform the integration response body. Response templates are represented as a key/value map, with a content-type as the key and a template as the value.<br/>responseParameters:  A key-value map specifying response parameters that are passed to the method response from the back end. The key is a method response header parameter name and the mapped value is an integration response header value, a static value enclosed within a pair of single quotes, or a JSON expression from the integration response body. The mapping key must match the pattern of <code>method.response.header.{name}</code>, where <code>name</code> is a valid and unique header name. The mapped non-static value must match the pattern of <code>integration.response.header.{name}</code> or <code>integration.response.body.{JSON-expression}</code>, where <code>name</code> is a valid and unique response header name and <code>JSON-expression</code> is a valid JSON expression without the <code>$</code> prefix.<br/>selectionPattern:  Specifies the regular expression (regex) pattern used to choose an integration response based on the response from the back end. For example, if the success response returns nothing and the error response returns some string, you could use the <code>.+</code> regex to match error response. However, make sure that the error response does not contain any newline (<code>\n</code>) character in such cases. If the back end is an AWS Lambda function, the AWS Lambda function error header is matched. For all other HTTP and AWS back ends, the HTTP status code is matched.<br/>statusCode:  Specifies the status code that is used to map the integration response to an existing <a>MethodResponse</a>.<br/>        """
        pass

    def update_method(self, httpMethod: str, resourceId: str, restApiId: str, patchOperations: List[PatchOperation]=None) -> Method:
        r"""Updates an existing <a>Method</a> resource.

        :param self:
        :param patchOperations:  A list of update operations to be applied to the specified resource and in the order specified in this list.<br/>httpMethod:  [Required] The HTTP verb of the <a>Method</a> resource.<br/>resourceId:  [Required] The <a>Resource</a> identifier for the <a>Method</a> resource.<br/>restApiId:  [Required] The string identifier of the associated <a>RestApi</a>.<br/>
        :return: authorizationScopes:  A list of authorization scopes configured on the method. The scopes are used with a <code>COGNITO_USER_POOLS</code> authorizer to authorize the method invocation. The authorization works by matching the method scopes against the scopes parsed from the access token in the incoming request. The method invocation is authorized if any method scopes matches a claimed scope in the access token. Otherwise, the invocation is not authorized. When the method scope is configured, the client must provide an access token instead of an identity token for authorization purposes.<br/>methodIntegration:  Gets the method's integration responsible for passing the client-submitted request to the back end and performing necessary transformations to make the request compliant with the back end. <div class="remarks"> <p/> <h4>Example: </h4> <h5>Request</h5> <p/> <pre><code>GET /restapis/uojnr9hd57/resources/0cjtch/methods/GET/integration HTTP/1.1 Content-Type: application/json Host: apigateway.us-east-1.amazonaws.com Content-Length: 117 X-Amz-Date: 20160613T213210Z Authorization: AWS4-HMAC-SHA256 Credential={access_key_ID}/20160613/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}</code></pre> <h5>Response</h5> The successful response returns a <code>200 OK</code> status code and a payload similar to the following: <pre><code>{ "_links": { "curies": [ { "href": "https://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-{rel}.html", "name": "integration", "templated": true }, { "href": "https://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-response-{rel}.html", "name": "integrationresponse", "templated": true } ], "self": { "href": "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/integration" }, "integration:delete": { "href": "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/integration" }, "integration:responses": { "href": "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/integration/responses/200", "name": "200", "title": "200" }, "integration:update": { "href": "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/integration" }, "integrationresponse:put": { "href": "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/integration/responses/{status_code}", "templated": true } }, "cacheKeyParameters": [], "cacheNamespace": "0cjtch", "credentials": "arn:aws:iam::123456789012:role/apigAwsProxyRole", "httpMethod": "POST", "passthroughBehavior": "WHEN_NO_MATCH", "requestTemplates": { "application/json": "{\n \"a\": \"$input.params('operand1')\",\n \"b\": \"$input.params('operand2')\", \n \"op\": \"$input.params('operator')\" \n}" }, "type": "AWS", "uri": "arn:aws:apigateway:us-west-2:lambda:path//2015-03-31/functions/arn:aws:lambda:us-west-2:123456789012:function:Calc/invocations", "_embedded": { "integration:responses": { "_links": { "self": { "href": "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/integration/responses/200", "name": "200", "title": "200" }, "integrationresponse:delete": { "href": "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/integration/responses/200" }, "integrationresponse:update": { "href": "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/integration/responses/200" } }, "responseParameters": { "method.response.header.operator": "integration.response.body.op", "method.response.header.operand_2": "integration.response.body.b", "method.response.header.operand_1": "integration.response.body.a" }, "responseTemplates": { "application/json": "#set($res = $input.path('$'))\n{\n \"result\": \"$res.a, $res.b, $res.op => $res.c\",\n \"a\" : \"$res.a\",\n \"b\" : \"$res.b\",\n \"op\" : \"$res.op\",\n \"c\" : \"$res.c\"\n}" }, "selectionPattern": "", "statusCode": "200" } } }</code></pre> <p/> </div> <div class="seeAlso"> <a href="https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-integration.html">AWS CLI</a> </div>:<br/>methodResponses:  Gets a method response associated with a given HTTP status code.  <div class="remarks"> The collection of method responses are encapsulated in a key-value map, where the key is a response's HTTP status code and the value is a <a>MethodResponse</a> resource that specifies the response returned to the caller from the back end through the integration response. <h4>Example: Get a 200 OK response of a GET method</h4> <h5>Request</h5> <p/> <pre><code>GET /restapis/uojnr9hd57/resources/0cjtch/methods/GET/responses/200 HTTP/1.1 Content-Type: application/json Host: apigateway.us-east-1.amazonaws.com Content-Length: 117 X-Amz-Date: 20160613T215008Z Authorization: AWS4-HMAC-SHA256 Credential={access_key_ID}/20160613/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}</code></pre> <h5>Response</h5> The successful response returns a <code>200 OK</code> status code and a payload similar to the following: <pre><code>{ "_links": { "curies": { "href": "https://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-method-response-{rel}.html", "name": "methodresponse", "templated": true }, "self": { "href": "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/responses/200", "title": "200" }, "methodresponse:delete": { "href": "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/responses/200" }, "methodresponse:update": { "href": "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/responses/200" } }, "responseModels": { "application/json": "Empty" }, "responseParameters": { "method.response.header.operator": false, "method.response.header.operand_2": false, "method.response.header.operand_1": false }, "statusCode": "200" }</code></pre> <p/> </div> <div class="seeAlso"> <a href="https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-method-response.html">AWS CLI</a> </div><br/>requestModels:  A key-value map specifying data schemas, represented by <a>Model</a> resources, (as the mapped value) of the request payloads of given content types (as the mapping key).<br/>requestParameters:  A key-value map defining required or optional method request parameters that can be accepted by API Gateway. A key is a method request parameter name matching the pattern of <code>method.request.{location}.{name}</code>, where <code>location</code> is <code>querystring</code>, <code>path</code>, or <code>header</code> and <code>name</code> is a valid and unique parameter name. The value associated with the key is a Boolean flag indicating whether the parameter is required (<code>true</code>) or optional (<code>false</code>). The method request parameter names defined here are available in <a>Integration</a> to be mapped to integration request parameters or templates.<br/>operationName:  A human-friendly operation identifier for the method. For example, you can assign the <code>operationName</code> of <code>ListPets</code> for the <code>GET /pets</code> method in the <code>PetStore</code> example.<br/>requestValidatorId:  The identifier of a <a>RequestValidator</a> for request validation.<br/>apiKeyRequired:  A boolean flag specifying whether a valid <a>ApiKey</a> is required to invoke this method.<br/>authorizerId:  The identifier of an <a>Authorizer</a> to use on this method. The <code>authorizationType</code> must be <code>CUSTOM</code>.<br/>authorizationType:  The method's authorization type. Valid values are <code>NONE</code> for open access, <code>AWS_IAM</code> for using AWS IAM permissions, <code>CUSTOM</code> for using a custom authorizer, or <code>COGNITO_USER_POOLS</code> for using a Cognito user pool.<br/>httpMethod:  The method's HTTP verb.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tlsConfig</i> Specifies the TLS configuration for an integration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>tlsConfig</b>: Specifies the TLS configuration for an integration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>integrationResponses</i> Specifies the integration's responses. <div class="remarks"> <p/> <h4>Example: Get integration responses of a method</h4> <h5>Request</h5> <p/> <pre><code>GET /restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200 HTTP/1.1 Content-Type: application/json Host: apigateway.us-east-1.amazonaws.com X-Amz-Date: 20160607T191449Z Authorization: AWS4-HMAC-SHA256 Credential={access_key_ID}/20160607/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash} </code></pre> <h5>Response</h5> The successful response returns <code>200 OK</code> status and a payload as follows: <pre><code>{ "_links": { "curies": { "href": "https://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-response-{rel}.html", "name": "integrationresponse", "templated": true }, "self": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200", "title": "200" }, "integrationresponse:delete": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200" }, "integrationresponse:update": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200" } }, "responseParameters": { "method.response.header.Content-Type": "'application/xml'" }, "responseTemplates": { "application/json": "$util.urlDecode(\"%3CkinesisStreams%3E#foreach($stream in $input.path('$.StreamNames'))%3Cstream%3E%3Cname%3E$stream%3C/name%3E%3C/stream%3E#end%3C/kinesisStreams%3E\")\n" }, "statusCode": "200" }</code></pre> <p/> </div> <div class="seeAlso"> <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-create-api.html">Creating an API</a> </div><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>cacheKeyParameters</i> A list of request parameters whose values API Gateway caches. To be valid values for <code>cacheKeyParameters</code>, these parameters must also be specified for <a>Method</a> <code>requestParameters</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>cacheNamespace</i> Specifies a group of related cached parameters. By default, API Gateway uses the resource ID as the <code>cacheNamespace</code>. You can specify the same <code>cacheNamespace</code> across resources to return the same cached data for requests to different resources.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>timeoutInMillis</i> Custom timeout between 50 and 29,000 milliseconds. The default value is 29,000 milliseconds or 29 seconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>contentHandling</i> Specifies how to handle request payload content type conversions. Supported values are <code>CONVERT_TO_BINARY</code> and <code>CONVERT_TO_TEXT</code>, with the following behaviors: <ul> <li><code>CONVERT_TO_BINARY</code>: Converts a request payload from a Base64-encoded string to the corresponding binary blob.</li> <li><code>CONVERT_TO_TEXT</code>: Converts a request payload from a binary blob to a Base64-encoded string.</li> </ul> If this property is not defined, the request payload will be passed through from the method request to integration request without modification, provided that the <code>passthroughBehavior</code> is configured to support payload pass-through.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>passthroughBehavior</i> <div>  Specifies how the method request body of an unmapped content type will be passed through the integration request to the back end without transformation. A content type is unmapped if no mapping template is defined in the integration or the content type does not match any of the mapped content types, as specified in <code>requestTemplates</code>. The valid value is one of the following:  <ul> <li> <code>WHEN_NO_MATCH</code>: passes the method request body through the integration request to the back end without transformation when the method request content type does not match any content type associated with the mapping templates defined in the integration request. </li> <li> <code>WHEN_NO_TEMPLATES</code>: passes the method request body through the integration request to the back end without transformation when no mapping template is defined in the integration request. If a template is defined when this option is selected, the method request of an unmapped content-type will be rejected with an HTTP <code>415 Unsupported Media Type</code> response. </li> <li> <code>NEVER</code>: rejects the method request with an HTTP <code>415 Unsupported Media Type</code> response when either the method request content type does not match any content type associated with the mapping templates defined in the integration request or no mapping template is defined in the integration request. </li> </ul> </div><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>requestTemplates</i> Represents a map of Velocity templates that are applied on the request payload based on the value of the Content-Type header sent by the client. The content type value is the key in this map, and the template (as a String) is the value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>requestParameters</i> A key-value map specifying request parameters that are passed from the method request to the back end. The key is an integration request parameter name and the associated value is a method request parameter value or static value that must be enclosed within single quotes and pre-encoded as required by the back end. The method request parameter value must match the pattern of <code>method.request.{location}.{name}</code>, where <code>location</code> is <code>querystring</code>, <code>path</code>, or <code>header</code> and <code>name</code> must be a valid and unique method request parameter name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>credentials</i> Specifies the credentials required for the integration, if any. For AWS integrations, three options are available. To specify an IAM Role for API Gateway to assume, use the role's Amazon Resource Name (ARN). To require that the caller's identity be passed through from the request, specify the string <code>arn:aws:iam::\*:user/\*</code>. To use resource-based permissions on supported AWS services, specify null.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>connectionId</i> The (<a href="https://docs.aws.amazon.com/apigateway/api-reference/resource/vpc-link/#id"><code>id</code></a>) of the <a>VpcLink</a> used for the integration when <code>connectionType=VPC_LINK</code> and undefined, otherwise.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>connectionType</i> The type of the network connection to the integration endpoint. The valid value is <code>INTERNET</code> for connections through the public routable internet or <code>VPC_LINK</code> for private connections between API Gateway and a network load balancer in a VPC. The default value is <code>INTERNET</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>uri</i> Specifies Uniform Resource Identifier (URI) of the integration endpoint. <ul> <li> For <code>HTTP</code> or <code>HTTP_PROXY</code> integrations, the URI must be a fully formed, encoded HTTP(S) URL according to the <a href="https://en.wikipedia.org/wiki/Uniform_Resource_Identifier" target="_blank">RFC-3986 specification</a>, for either standard integration, where <code>connectionType</code> is not <code>VPC_LINK</code>, or private integration, where <code>connectionType</code> is <code>VPC_LINK</code>. For a private HTTP integration, the URI is not used for routing.  </li> <li> For <code>AWS</code> or <code>AWS_PROXY</code> integrations, the URI is of the form <code>arn:aws:apigateway:{region}:{subdomain.service|service}:path|action/{service_api}</code>. Here, <code>{Region}</code> is the API Gateway region (e.g., <code>us-east-1</code>); <code>{service}</code> is the name of the integrated AWS service (e.g., <code>s3</code>); and <code>{subdomain}</code> is a designated subdomain supported by certain AWS service for fast host-name lookup. <code>action</code> can be used for an AWS service action-based API, using an <code>Action={name}&amp;{p1}={v1}&amp;p2={v2}...</code> query string. The ensuing <code>{service_api}</code> refers to a supported action <code>{name}</code> plus any required input parameters. Alternatively, <code>path</code> can be used for an AWS service path-based API. The ensuing <code>service_api</code> refers to the path to an AWS service resource, including the region of the integrated AWS service, if applicable. For example, for integration with the S3 API of <code><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectGET.html">GetObject</a></code>, the <code>uri</code> can be either <code>arn:aws:apigateway:us-west-2:s3:action/GetObject&amp;Bucket={bucket}&amp;Key={key}</code> or <code>arn:aws:apigateway:us-west-2:s3:path/{bucket}/{key}</code> </li></ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>httpMethod</i> Specifies the integration's HTTP method type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> Specifies an API method integration type. The valid value is one of the following: <ul> <li><code>AWS</code>: for integrating the API method request with an AWS service action, including the Lambda function-invoking action. With the Lambda function-invoking action, this is referred to as the Lambda custom integration. With any other AWS service action, this is known as AWS integration.</li> <li><code>AWS_PROXY</code>: for integrating the API method request with the Lambda function-invoking action with the client request passed through as-is. This integration is also referred to as the Lambda proxy integration.</li> <li><code>HTTP</code>: for integrating the API method request with an HTTP endpoint, including a private HTTP endpoint within a VPC. This integration is also referred to as the HTTP custom integration.</li> <li><code>HTTP_PROXY</code>: for integrating the API method request with an HTTP endpoint, including a private HTTP endpoint within a VPC, with the client request passed through as-is. This is also referred to as the HTTP proxy integration.</li> <li><code>MOCK</code>: for integrating the API method request with API Gateway as a "loop-back" endpoint without invoking any backend.</li> </ul> For the HTTP and HTTP proxy integrations, each integration can specify a protocol (<code>http/https</code>), port and path. Standard 80 and 443 ports are supported as well as custom ports above 1024. An HTTP or HTTP proxy integration with a <code>connectionType</code> of <code>VPC_LINK</code> is referred to as a private integration and uses a <a>VpcLink</a> to connect API Gateway to a network load balancer of a VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>insecureSkipVerification</i> Specifies whether or not API Gateway skips verification that the certificate for an integration endpoint is issued by a <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-supported-certificate-authorities-for-http-endpoints.html">supported certificate authority</a>. This isn’t recommended, but it enables you to use certificates that are signed by private certificate authorities, or certificates that are self-signed. If enabled, API Gateway still performs basic certificate validation, which includes checking the certificate's expiration date, hostname, and presence of a root certificate authority. Supported only for <code>HTTP</code> and <code>HTTP_PROXY</code> integrations.<br/>        """
        pass

    def update_method_response(self, statusCode: str, httpMethod: str, resourceId: str, restApiId: str, patchOperations: List[PatchOperation]=None) -> MethodResponse:
        r"""Updates an existing <a>MethodResponse</a> resource.

        :param self:
        :param patchOperations:  A list of update operations to be applied to the specified resource and in the order specified in this list.<br/>statusCode:  [Required] The status code for the <a>MethodResponse</a> resource.<br/>httpMethod:  [Required] The HTTP verb of the <a>Method</a> resource.<br/>resourceId:  [Required] The <a>Resource</a> identifier for the <a>MethodResponse</a> resource.<br/>restApiId:  [Required] The string identifier of the associated <a>RestApi</a>.<br/>
        :return: responseModels:  Specifies the <a>Model</a> resources used for the response's content-type. Response models are represented as a key/value map, with a content-type as the key and a <a>Model</a> name as the value.<br/>responseParameters:  A key-value map specifying required or optional response parameters that API Gateway can send back to the caller. A key defines a method response header and the value specifies whether the associated method response header is required or not. The expression of the key must match the pattern <code>method.response.header.{name}</code>, where <code>name</code> is a valid and unique header name. API Gateway passes certain integration response data to the method response headers specified here according to the mapping you prescribe in the API's <a>IntegrationResponse</a>. The integration response data that can be mapped include an integration response header expressed in <code>integration.response.header.{name}</code>, a static value enclosed within a pair of single quotes (e.g., <code>'application/json'</code>), or a JSON expression from the back-end response payload in the form of <code>integration.response.body.{JSON-expression}</code>, where <code>JSON-expression</code> is a valid JSON expression without the <code>$</code> prefix.)<br/>statusCode:  The method response's status code.<br/>        """
        pass

    def update_model(self, modelName: str, restApiId: str, patchOperations: List[PatchOperation]=None) -> Model:
        r"""Changes information about a model.

        :param self:
        :param patchOperations:  A list of update operations to be applied to the specified resource and in the order specified in this list.<br/>modelName:  [Required] The name of the model to update.<br/>restApiId:  [Required] The string identifier of the associated <a>RestApi</a>.<br/>
        :return: contentType:  The content-type for the model.<br/>schema:  The schema for the model. For <code>application/json</code> models, this should be <a href="https://tools.ietf.org/html/draft-zyp-json-schema-04" target="_blank">JSON schema draft 4</a> model. Do not include "\*/" characters in the description of any properties because such "\*/" characters may be interpreted as the closing marker for comments in some languages, such as Java or JavaScript, causing the installation of your API's SDK generated by API Gateway to fail.<br/>description:  The description of the model.<br/>name:  The name of the model. Must be an alphanumeric string.<br/>id:  The identifier for the model resource.<br/>        """
        pass

    def update_request_validator(self, requestValidatorId: str, restApiId: str, patchOperations: List[PatchOperation]=None) -> RequestValidator:
        r"""Updates a <a>RequestValidator</a> of a given <a>RestApi</a>.

        :param self:
        :param patchOperations:  A list of update operations to be applied to the specified resource and in the order specified in this list.<br/>requestValidatorId:  [Required] The identifier of <a>RequestValidator</a> to be updated.<br/>restApiId:  [Required] The string identifier of the associated <a>RestApi</a>.<br/>
        :return: validateRequestParameters:  A Boolean flag to indicate whether to validate request parameters (<code>true</code>) or not (<code>false</code>).<br/>validateRequestBody:  A Boolean flag to indicate whether to validate a request body according to the configured <a>Model</a> schema.<br/>name:  The name of this <a>RequestValidator</a><br/>id:  The identifier of this <a>RequestValidator</a>.<br/>        """
        pass

    def update_resource(self, resourceId: str, restApiId: str, patchOperations: List[PatchOperation]=None) -> Resource:
        r"""Changes information about a <a>Resource</a> resource.

        :param self:
        :param patchOperations:  A list of update operations to be applied to the specified resource and in the order specified in this list.<br/>resourceId:  [Required] The identifier of the <a>Resource</a> resource.<br/>restApiId:  [Required] The string identifier of the associated <a>RestApi</a>.<br/>
        :return: resourceMethods:  Gets an API resource's method of a given HTTP verb. <div class="remarks"> The resource methods are a map of methods indexed by methods' HTTP verbs enabled on the resource. This method map is included in the <code>200 OK</code> response of the <code>GET /restapis/{restapi_id}/resources/{resource_id}</code> or <code>GET /restapis/{restapi_id}/resources/{resource_id}?embed=methods</code> request. <h4>Example: Get the GET method of an API resource</h4> <h5>Request</h5> <pre><code>GET /restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET HTTP/1.1 Content-Type: application/json Host: apigateway.us-east-1.amazonaws.com X-Amz-Date: 20170223T031827Z Authorization: AWS4-HMAC-SHA256 Credential={access_key_ID}/20170223/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}</code></pre> <h5>Response</h5> <pre><code>{ "_links": { "curies": [ { "href": "https://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-{rel}.html", "name": "integration", "templated": true }, { "href": "https://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-response-{rel}.html", "name": "integrationresponse", "templated": true }, { "href": "https://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-method-{rel}.html", "name": "method", "templated": true }, { "href": "https://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-method-response-{rel}.html", "name": "methodresponse", "templated": true } ], "self": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET", "name": "GET", "title": "GET" }, "integration:put": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration" }, "method:delete": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET" }, "method:integration": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration" }, "method:responses": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/responses/200", "name": "200", "title": "200" }, "method:update": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET" }, "methodresponse:put": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/responses/{status_code}", "templated": true } }, "apiKeyRequired": false, "authorizationType": "NONE", "httpMethod": "GET", "_embedded": { "method:integration": { "_links": { "self": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration" }, "integration:delete": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration" }, "integration:responses": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200", "name": "200", "title": "200" }, "integration:update": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration" }, "integrationresponse:put": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/{status_code}", "templated": true } }, "cacheKeyParameters": [], "cacheNamespace": "3kzxbg5sa2", "credentials": "arn:aws:iam::123456789012:role/apigAwsProxyRole", "httpMethod": "POST", "passthroughBehavior": "WHEN_NO_MATCH", "requestParameters": { "integration.request.header.Content-Type": "'application/x-amz-json-1.1'" }, "requestTemplates": { "application/json": "{\n}" }, "type": "AWS", "uri": "arn:aws:apigateway:us-east-1:kinesis:action/ListStreams", "_embedded": { "integration:responses": { "_links": { "self": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200", "name": "200", "title": "200" }, "integrationresponse:delete": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200" }, "integrationresponse:update": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200" } }, "responseParameters": { "method.response.header.Content-Type": "'application/xml'" }, "responseTemplates": { "application/json": "$util.urlDecode(\"%3CkinesisStreams%3E#foreach($stream in $input.path('$.StreamNames'))%3Cstream%3E%3Cname%3E$stream%3C/name%3E%3C/stream%3E#end%3C/kinesisStreams%3E\")\n" }, "statusCode": "200" } } }, "method:responses": { "_links": { "self": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/responses/200", "name": "200", "title": "200" }, "methodresponse:delete": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/responses/200" }, "methodresponse:update": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/responses/200" } }, "responseModels": { "application/json": "Empty" }, "responseParameters": { "method.response.header.Content-Type": false }, "statusCode": "200" } } }</code></pre> If the <code>OPTIONS</code> is enabled on the resource, you can follow the example here to get that method. Just replace the <code>GET</code> of the last path segment in the request URL with <code>OPTIONS</code>. </div> <div class="seeAlso"> </div><br/>path:  The full path for this resource.<br/>pathPart:  The last path segment for this resource.<br/>parentId:  The parent resource's identifier.<br/>id:  The resource's identifier.<br/>        """
        pass

    def update_rest_api(self, restApiId: str, patchOperations: List[PatchOperation]=None) -> RestApi:
        r"""Changes information about the specified API.

        :param self:
        :param patchOperations:  A list of update operations to be applied to the specified resource and in the order specified in this list.<br/>restApiId:  [Required] The string identifier of the associated <a>RestApi</a>.<br/>
        :return: disableExecuteApiEndpoint:  Specifies whether clients can invoke your API by using the default <code>execute-api</code> endpoint. By default, clients can invoke your API with the default https://{api_id}.execute-api.{region}.amazonaws.com endpoint. To require that clients use a custom domain name to invoke your API, disable the default endpoint.<br/>tags:  The collection of tags. Each tag element is associated with a given resource.<br/>policy:  A stringified JSON policy document that applies to this RestApi regardless of the caller and <a>Method</a> configuration.<br/>endpointConfiguration:  The endpoint configuration of this <a>RestApi</a> showing the endpoint types of the API.:<br/>apiKeySource:  The source of the API key for metering requests according to a usage plan. Valid values are: <ul><li><code>HEADER</code> to read the API key from the <code>X-API-Key</code> header of a request. </li><li><code>AUTHORIZER</code> to read the API key from the <code>UsageIdentifierKey</code> from a custom authorizer.</li></ul><br/>minimumCompressionSize:  A nullable integer that is used to enable compression (with non-negative between 0 and 10485760 (10M) bytes, inclusive) or disable compression (with a null value) on an API. When compression is enabled, compression or decompression is not applied on the payload if the payload size is smaller than this value. Setting it to zero allows compression for any payload size.<br/>binaryMediaTypes:  The list of binary media types supported by the <a>RestApi</a>. By default, the <a>RestApi</a> supports only UTF-8-encoded text payloads.<br/>warnings:  The warning messages reported when <code>failonwarnings</code> is turned on during API import.<br/>version:  A version identifier for the API.<br/>createdDate:  The timestamp when the API was created.<br/>description:  The API's description.<br/>name:  The API's name.<br/>id:  The API's identifier. This identifier is unique across all of your APIs in API Gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>vpcEndpointIds</i> A list of VpcEndpointIds of an API (<a>RestApi</a>) against which to create Route53 ALIASes. It is only supported for <code>PRIVATE</code> endpoint type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>types</i> A list of endpoint types of an API (<a>RestApi</a>) or its custom domain name (<a>DomainName</a>). For an edge-optimized API and its custom domain name, the endpoint type is <code>"EDGE"</code>. For a regional API and its custom domain name, the endpoint type is <code>REGIONAL</code>. For a private API, the endpoint type is <code>PRIVATE</code>.<br/>        """
        pass

    def update_stage(self, stageName: str, restApiId: str, patchOperations: List[PatchOperation]=None) -> Stage:
        r"""Changes information about a <a>Stage</a> resource.

        :param self:
        :param patchOperations:  A list of update operations to be applied to the specified resource and in the order specified in this list.<br/>stageName:  [Required] The name of the <a>Stage</a> resource to change information about.<br/>restApiId:  [Required] The string identifier of the associated <a>RestApi</a>.<br/>
        :return: lastUpdatedDate:  The timestamp when the stage last updated.<br/>createdDate:  The timestamp when the stage was created.<br/>tags:  The collection of tags. Each tag element is associated with a given resource.<br/>webAclArn:  The ARN of the WebAcl associated with the <a>Stage</a>.<br/>tracingEnabled:  Specifies whether active tracing with X-ray is enabled for the <a>Stage</a>.<br/>canarySettings:  Settings for the canary deployment in this stage.:<br/>accessLogSettings:  Settings for logging access in this stage.:<br/>documentationVersion:  The version of the associated API documentation.<br/>variables:  A map that defines the stage variables for a <a>Stage</a> resource. Variable names can have alphanumeric and underscore characters, and the values must match <code>[A-Za-z0-9-._~:/?#&amp;=,]+</code>.<br/>methodSettings:  A map that defines the method settings for a <a>Stage</a> resource. Keys (designated as <code>/{method_setting_key</code> below) are method paths defined as <code>{resource_path}/{http_method}</code> for an individual method override, or <code>/\*/\*</code> for overriding all methods in the stage. <br/>cacheClusterStatus:  The status of the cache cluster for the stage, if enabled.<br/>cacheClusterSize:  The size of the cache cluster for the stage, if enabled.<br/>cacheClusterEnabled:  Specifies whether a cache cluster is enabled for the stage.<br/>description:  The stage's description.<br/>stageName:  The name of the stage is the first path segment in the Uniform Resource Identifier (URI) of a call to API Gateway. Stage names can only contain alphanumeric characters, hyphens, and underscores. Maximum length is 128 characters.<br/>clientCertificateId:  The identifier of a client certificate for an API stage.<br/>deploymentId:  The identifier of the <a>Deployment</a> that the stage points to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>destinationArn</i> The Amazon Resource Name (ARN) of the CloudWatch Logs log group or Kinesis Data Firehose delivery stream to receive access logs. If you specify a Kinesis Data Firehose delivery stream, the stream name must begin with <code>amazon-apigateway-</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>format</i> A single line format of the access logs of data, as specified by selected <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-reference.html#context-variable-reference">$context variables</a>. The format must include at least <code>$context.requestId</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>useStageCache</i> A Boolean flag to indicate whether the canary deployment uses the stage cache or not.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>stageVariableOverrides</i> Stage variables overridden for a canary release deployment, including new stage variables introduced in the canary. These stage variables are represented as a string-to-string map between stage variable names and their values.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deploymentId</i> The ID of the canary deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>percentTraffic</i> The percent (0-100) of traffic diverted to a canary deployment.<br/>        """
        pass

    def update_usage(self, keyId: str, usagePlanId: str, patchOperations: List[PatchOperation]=None) -> Usage:
        r"""Grants a temporary extension to the remaining quota of a usage plan associated with a specified API key.

        :param self:
        :param patchOperations:  A list of update operations to be applied to the specified resource and in the order specified in this list.<br/>keyId:  [Required] The identifier of the API key associated with the usage plan in which a temporary extension is granted to the remaining quota.<br/>usagePlanId:  [Required] The Id of the usage plan associated with the usage data.<br/>
        :return: items:  The usage data, as daily logs of used and remaining quotas, over the specified time interval indexed over the API keys in a usage plan. For example, <code>{..., "values" : { "{api_key}" : [ [0, 100], [10, 90], [100, 10]]}</code>, where <code>{api_key}</code> stands for an API key value and the daily log entry is of the format <code>[used quota, remaining quota]</code>.<br/>position:  <br/>endDate:  The ending date of the usage data.<br/>startDate:  The starting date of the usage data.<br/>usagePlanId:  The plan Id associated with this usage data.<br/>        """
        pass

    def update_usage_plan(self, usagePlanId: str, patchOperations: List[PatchOperation]=None) -> UsagePlan:
        r"""Updates a usage plan of a given plan Id.

        :param self:
        :param patchOperations:  A list of update operations to be applied to the specified resource and in the order specified in this list.<br/>usagePlanId:  [Required] The Id of the to-be-updated usage plan.<br/>
        :return: tags:  The collection of tags. Each tag element is associated with a given resource.<br/>productCode:  The AWS Markeplace product identifier to associate with the usage plan as a SaaS product on AWS Marketplace.<br/>quota:  The maximum number of permitted requests per a given unit time interval.:<br/>throttle:  The request throttle limits of a usage plan.:<br/>apiStages:  The associated API stages of a usage plan.<br/>description:  The description of a usage plan.<br/>name:  The name of a usage plan.<br/>id:  The identifier of a <a>UsagePlan</a> resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>rateLimit</i> The API request steady-state rate limit.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>burstLimit</i> The API request burst limit, the maximum rate limit over a time ranging from one to a few seconds, depending upon whether the underlying token bucket is at its full capacity.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>period</i> The time period in which the limit applies. Valid values are "DAY", "WEEK" or "MONTH".<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>offset</i> The day that a time period starts. For example, with a time period of <code>WEEK</code>, an offset of <code>0</code> starts on Sunday, and an offset of <code>1</code> starts on Monday.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>limit</i> The maximum number of requests that can be made in a given time period.<br/>        """
        pass

    def update_vpc_link(self, vpcLinkId: str, patchOperations: List[PatchOperation]=None) -> VpcLink:
        r"""Updates an existing <a>VpcLink</a> of a specified identifier.

        :param self:
        :param patchOperations:  A list of update operations to be applied to the specified resource and in the order specified in this list.<br/>vpcLinkId:  [Required] The identifier of the <a>VpcLink</a>. It is used in an <a>Integration</a> to reference this <a>VpcLink</a>.<br/>
        :return: tags:  The collection of tags. Each tag element is associated with a given resource.<br/>statusMessage:  A description about the VPC link status.<br/>status:  The status of the VPC link. The valid values are <code>AVAILABLE</code>, <code>PENDING</code>, <code>DELETING</code>, or <code>FAILED</code>. Deploying an API will wait if the status is <code>PENDING</code> and will fail if the status is <code>DELETING</code>.<br/>targetArns:  The ARN of the network load balancer of the VPC targeted by the VPC link. The network load balancer must be owned by the same AWS account of the API owner.<br/>description:  The description of the VPC link.<br/>name:  The name used to label and identify the VPC link.<br/>id:  The identifier of the <a>VpcLink</a>. It is used in an <a>Integration</a> to reference this <a>VpcLink</a>.<br/>        """
        pass





class ApiGatewayManagementApi(BaseClient):
    r"""The Amazon API Gateway Management API allows you to directly manage runtime aspects of your deployed APIs. To use it, you must explicitly set the SDK's endpoint to point to the endpoint of your deployed API. The endpoint will be of the form https://{api-id}.execute-api.{region}.amazonaws.com/{stage}, or will be the endpoint corresponding to your API's custom domain and base path, if applicable."""




    class DeleteConnectionRequest(Mapping):
        pass
    
    class GetConnectionRequest(Mapping):
        pass
    
    class GetConnectionResponse(Mapping):
        pass
    
    class PostToConnectionRequest(Mapping):
        pass
    
    class Data(object):
        pass
    
    def delete_connection(self, ConnectionId: str):
        r"""Delete the connection with the provided id.

        :param self:
        :param ConnectionId:  <br/>
        :return:         """
        pass

    def get_connection(self, ConnectionId: str) -> GetConnectionResponse:
        r"""Get information about the connection with the provided id.

        :param self:
        :param ConnectionId:  <br/>
        :return: LastActiveAt:  The time in ISO 8601 format for when the connection was last active.<br/>Identity:  :<br/>ConnectedAt:  The time in ISO 8601 format for when the connection was established.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserAgent</i> The User Agent of the API caller.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceIp</i> The source IP address of the TCP connection making the request to API Gateway.<br/>        """
        pass

    def post_to_connection(self, ConnectionId: str, Data: Data):
        r"""Sends the provided data to the specified connection.

        :param self:
        :param ConnectionId:  The identifier of the connection that a specific client is using.<br/>Data:  The data to be sent to the client specified by its connection id.<br/>
        :return:         """
        pass





class ApiGatewayV2(BaseClient):
    r"""Amazon API Gateway V2"""


    class GetApisPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_apis` for valid parameters"""
            pass
    class GetAuthorizersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_authorizers` for valid parameters"""
            pass
    class GetDeploymentsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_deployments` for valid parameters"""
            pass
    class GetDomainNamesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_domain_names` for valid parameters"""
            pass
    class GetIntegrationResponsesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_integration_responses` for valid parameters"""
            pass
    class GetIntegrationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_integrations` for valid parameters"""
            pass
    class GetModelsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_models` for valid parameters"""
            pass
    class GetRouteResponsesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_route_responses` for valid parameters"""
            pass
    class GetRoutesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_routes` for valid parameters"""
            pass
    class GetStagesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_stages` for valid parameters"""
            pass


    class CreateApiRequest(Mapping):
        pass
    
    class CreateApiResponse(Mapping):
        pass
    
    class Cors(Mapping):
        pass
    
    class __boolean(object):
        pass
    
    class Tags(object):
        pass
    
    class CreateApiMappingRequest(Mapping):
        pass
    
    class CreateApiMappingResponse(Mapping):
        pass
    
    class CreateAuthorizerRequest(Mapping):
        pass
    
    class CreateAuthorizerResponse(Mapping):
        pass
    
    class __string(object):
        pass
    
    class JWTConfiguration(Mapping):
        pass
    
    class CreateDeploymentRequest(Mapping):
        pass
    
    class CreateDeploymentResponse(Mapping):
        pass
    
    class CreateDomainNameRequest(Mapping):
        pass
    
    class CreateDomainNameResponse(Mapping):
        pass
    
    class DomainNameConfiguration(Mapping):
        pass
    
    class MutualTlsAuthenticationInput(Mapping):
        pass
    
    class CreateIntegrationRequest(Mapping):
        pass
    
    class CreateIntegrationResult(Mapping):
        pass
    
    class IntegrationParameters(object):
        pass
    
    class TemplateMap(object):
        pass
    
    class ResponseParameters(object):
        pass
    
    class TlsConfigInput(Mapping):
        pass
    
    class CreateIntegrationResponseRequest(Mapping):
        pass
    
    class CreateIntegrationResponseResponse(Mapping):
        pass
    
    class CreateModelRequest(Mapping):
        pass
    
    class CreateModelResponse(Mapping):
        pass
    
    class CreateRouteRequest(Mapping):
        pass
    
    class CreateRouteResult(Mapping):
        pass
    
    class StringWithLengthBetween1And64(object):
        pass
    
    class RouteModels(object):
        pass
    
    class RouteParameters(object):
        pass
    
    class CreateRouteResponseRequest(Mapping):
        pass
    
    class CreateRouteResponseResponse(Mapping):
        pass
    
    class CreateStageRequest(Mapping):
        pass
    
    class CreateStageResponse(Mapping):
        pass
    
    class AccessLogSettings(Mapping):
        pass
    
    class RouteSettings(Mapping):
        pass
    
    class RouteSettingsMap(object):
        pass
    
    class StageVariablesMap(object):
        pass
    
    class CreateVpcLinkRequest(Mapping):
        pass
    
    class CreateVpcLinkResponse(Mapping):
        pass
    
    class DeleteAccessLogSettingsRequest(Mapping):
        pass
    
    class DeleteApiRequest(Mapping):
        pass
    
    class DeleteApiMappingRequest(Mapping):
        pass
    
    class DeleteAuthorizerRequest(Mapping):
        pass
    
    class DeleteCorsConfigurationRequest(Mapping):
        pass
    
    class DeleteDeploymentRequest(Mapping):
        pass
    
    class DeleteDomainNameRequest(Mapping):
        pass
    
    class DeleteIntegrationRequest(Mapping):
        pass
    
    class DeleteIntegrationResponseRequest(Mapping):
        pass
    
    class DeleteModelRequest(Mapping):
        pass
    
    class DeleteRouteRequest(Mapping):
        pass
    
    class DeleteRouteRequestParameterRequest(Mapping):
        pass
    
    class DeleteRouteResponseRequest(Mapping):
        pass
    
    class DeleteRouteSettingsRequest(Mapping):
        pass
    
    class DeleteStageRequest(Mapping):
        pass
    
    class DeleteVpcLinkRequest(Mapping):
        pass
    
    class DeleteVpcLinkResponse(Mapping):
        pass
    
    class ExportApiRequest(Mapping):
        pass
    
    class ExportApiResponse(Mapping):
        pass
    
    class ResetAuthorizersCacheRequest(Mapping):
        pass
    
    class GetApiRequest(Mapping):
        pass
    
    class GetApiResponse(Mapping):
        pass
    
    class GetApiMappingRequest(Mapping):
        pass
    
    class GetApiMappingResponse(Mapping):
        pass
    
    class GetApiMappingsRequest(Mapping):
        pass
    
    class GetApiMappingsResponse(Mapping):
        pass
    
    class GetApisRequest(Mapping):
        pass
    
    class GetApisResponse(Mapping):
        pass
    
    class GetAuthorizerRequest(Mapping):
        pass
    
    class GetAuthorizerResponse(Mapping):
        pass
    
    class GetAuthorizersRequest(Mapping):
        pass
    
    class GetAuthorizersResponse(Mapping):
        pass
    
    class GetDeploymentRequest(Mapping):
        pass
    
    class GetDeploymentResponse(Mapping):
        pass
    
    class GetDeploymentsRequest(Mapping):
        pass
    
    class GetDeploymentsResponse(Mapping):
        pass
    
    class GetDomainNameRequest(Mapping):
        pass
    
    class GetDomainNameResponse(Mapping):
        pass
    
    class GetDomainNamesRequest(Mapping):
        pass
    
    class GetDomainNamesResponse(Mapping):
        pass
    
    class GetIntegrationRequest(Mapping):
        pass
    
    class GetIntegrationResult(Mapping):
        pass
    
    class GetIntegrationResponseRequest(Mapping):
        pass
    
    class GetIntegrationResponseResponse(Mapping):
        pass
    
    class GetIntegrationResponsesRequest(Mapping):
        pass
    
    class GetIntegrationResponsesResponse(Mapping):
        pass
    
    class GetIntegrationsRequest(Mapping):
        pass
    
    class GetIntegrationsResponse(Mapping):
        pass
    
    class GetModelRequest(Mapping):
        pass
    
    class GetModelResponse(Mapping):
        pass
    
    class GetModelTemplateRequest(Mapping):
        pass
    
    class GetModelTemplateResponse(Mapping):
        pass
    
    class GetModelsRequest(Mapping):
        pass
    
    class GetModelsResponse(Mapping):
        pass
    
    class GetRouteRequest(Mapping):
        pass
    
    class GetRouteResult(Mapping):
        pass
    
    class GetRouteResponseRequest(Mapping):
        pass
    
    class GetRouteResponseResponse(Mapping):
        pass
    
    class GetRouteResponsesRequest(Mapping):
        pass
    
    class GetRouteResponsesResponse(Mapping):
        pass
    
    class GetRoutesRequest(Mapping):
        pass
    
    class GetRoutesResponse(Mapping):
        pass
    
    class GetStageRequest(Mapping):
        pass
    
    class GetStageResponse(Mapping):
        pass
    
    class GetStagesRequest(Mapping):
        pass
    
    class GetStagesResponse(Mapping):
        pass
    
    class GetTagsRequest(Mapping):
        pass
    
    class GetTagsResponse(Mapping):
        pass
    
    class GetVpcLinkRequest(Mapping):
        pass
    
    class GetVpcLinkResponse(Mapping):
        pass
    
    class GetVpcLinksRequest(Mapping):
        pass
    
    class GetVpcLinksResponse(Mapping):
        pass
    
    class ImportApiRequest(Mapping):
        pass
    
    class ImportApiResponse(Mapping):
        pass
    
    class ReimportApiRequest(Mapping):
        pass
    
    class ReimportApiResponse(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UpdateApiRequest(Mapping):
        pass
    
    class UpdateApiResponse(Mapping):
        pass
    
    class UpdateApiMappingRequest(Mapping):
        pass
    
    class UpdateApiMappingResponse(Mapping):
        pass
    
    class UpdateAuthorizerRequest(Mapping):
        pass
    
    class UpdateAuthorizerResponse(Mapping):
        pass
    
    class UpdateDeploymentRequest(Mapping):
        pass
    
    class UpdateDeploymentResponse(Mapping):
        pass
    
    class UpdateDomainNameRequest(Mapping):
        pass
    
    class UpdateDomainNameResponse(Mapping):
        pass
    
    class UpdateIntegrationRequest(Mapping):
        pass
    
    class UpdateIntegrationResult(Mapping):
        pass
    
    class UpdateIntegrationResponseRequest(Mapping):
        pass
    
    class UpdateIntegrationResponseResponse(Mapping):
        pass
    
    class UpdateModelRequest(Mapping):
        pass
    
    class UpdateModelResponse(Mapping):
        pass
    
    class UpdateRouteRequest(Mapping):
        pass
    
    class UpdateRouteResult(Mapping):
        pass
    
    class UpdateRouteResponseRequest(Mapping):
        pass
    
    class UpdateRouteResponseResponse(Mapping):
        pass
    
    class UpdateStageRequest(Mapping):
        pass
    
    class UpdateStageResponse(Mapping):
        pass
    
    class UpdateVpcLinkRequest(Mapping):
        pass
    
    class UpdateVpcLinkResponse(Mapping):
        pass
    
    def create_api(self, ProtocolType: str, Name: str, ApiKeySelectionExpression: str=None, CorsConfiguration: Cors=None, CredentialsArn: str=None, Description: str=None, DisableSchemaValidation: __boolean=None, DisableExecuteApiEndpoint: __boolean=None, RouteKey: str=None, RouteSelectionExpression: str=None, Tags: Tags=None, Target: str=None, Version: str=None) -> CreateApiResponse:
        r"""Creates an Api resource.

        :param self:
        :param Version:  A version identifier for the API.<br/>Target:  This property is part of quick create. Quick create produces an API with an integration, a default catch-all route, and a default stage which is configured to automatically deploy changes. For HTTP integrations, specify a fully qualified URL. For Lambda integrations, specify a function ARN. The type of the integration will be HTTP_PROXY or AWS_PROXY, respectively. Supported only for HTTP APIs.<br/>Tags:  The collection of tags. Each tag element is associated with a given resource.<br/>RouteSelectionExpression:  The route selection expression for the API. For HTTP APIs, the routeSelectionExpression must be ${request.method} ${request.path}. If not provided, this will be the default for HTTP APIs. This property is required for WebSocket APIs.<br/>RouteKey:  This property is part of quick create. If you don't specify a routeKey, a default route of $default is created. The $default route acts as a catch-all for any request made to your API, for a particular stage. The $default route key can't be modified. You can add routes after creating the API, and you can update the route keys of additional routes. Supported only for HTTP APIs.<br/>ProtocolType:  The API protocol.<br/>Name:  The name of the API.<br/>DisableExecuteApiEndpoint:  Specifies whether clients can invoke your API by using the default execute-api endpoint. By default, clients can invoke your API with the default https://{api_id}.execute-api.{region}.amazonaws.com endpoint. To require that clients use a custom domain name to invoke your API, disable the default endpoint.<br/>DisableSchemaValidation:  Avoid validating models when creating a deployment. Supported only for WebSocket APIs.<br/>Description:  The description of the API.<br/>CredentialsArn:  This property is part of quick create. It specifies the credentials required for the integration, if any. For a Lambda integration, three options are available. To specify an IAM Role for API Gateway to assume, use the role's Amazon Resource Name (ARN). To require that the caller's identity be passed through from the request, specify arn:aws:iam::*:user/*. To use resource-based permissions on supported AWS services, specify null. Currently, this property is not used for HTTP integrations. Supported only for HTTP APIs.<br/>CorsConfiguration:  A CORS configuration. Supported only for HTTP APIs. See <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-cors.html">Configuring CORS</a> for more information.:<br/>ApiKeySelectionExpression:  An API key selection expression. Supported only for WebSocket APIs. See <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions">API Key Selection Expressions</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxAge</i> The number of seconds that the browser should cache preflight request results. Supported only for HTTP APIs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExposeHeaders</i> Represents a collection of exposed headers. Supported only for HTTP APIs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowOrigins</i> Represents a collection of allowed origins. Supported only for HTTP APIs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowMethods</i> Represents a collection of allowed HTTP methods. Supported only for HTTP APIs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowHeaders</i> Represents a collection of allowed headers. Supported only for HTTP APIs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowCredentials</i> Specifies whether credentials are included in the CORS request. Supported only for HTTP APIs.<br/>
        :return: Warnings:  The warning messages reported when failonwarnings is turned on during API import.<br/>Version:  A version identifier for the API.<br/>Tags:  A collection of tags associated with the API.<br/>RouteSelectionExpression:  The route selection expression for the API. For HTTP APIs, the routeSelectionExpression must be ${request.method} ${request.path}. If not provided, this will be the default for HTTP APIs. This property is required for WebSocket APIs.<br/>ProtocolType:  The API protocol.<br/>Name:  The name of the API.<br/>ImportInfo:  The validation information during API import. This may include particular properties of your OpenAPI definition which are ignored during import. Supported only for HTTP APIs.<br/>DisableExecuteApiEndpoint:  Specifies whether clients can invoke your API by using the default execute-api endpoint. By default, clients can invoke your API with the default https://{api_id}.execute-api.{region}.amazonaws.com endpoint. To require that clients use a custom domain name to invoke your API, disable the default endpoint.<br/>DisableSchemaValidation:  Avoid validating models when creating a deployment. Supported only for WebSocket APIs.<br/>Description:  The description of the API.<br/>CreatedDate:  The timestamp when the API was created.<br/>CorsConfiguration:  A CORS configuration. Supported only for HTTP APIs.:<br/>ApiKeySelectionExpression:  An API key selection expression. Supported only for WebSocket APIs. See <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions">API Key Selection Expressions</a>.<br/>ApiId:  The API ID.<br/>ApiGatewayManaged:  Specifies whether an API is managed by API Gateway. You can't update or delete a managed API by using API Gateway. A managed API can be deleted only through the tooling or service that created it.<br/>ApiEndpoint:  The URI of the API, of the form {api-id}.execute-api.{region}.amazonaws.com. The stage name is typically appended to this URI to form a complete path to a deployed API stage.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxAge</i> The number of seconds that the browser should cache preflight request results. Supported only for HTTP APIs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExposeHeaders</i> Represents a collection of exposed headers. Supported only for HTTP APIs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowOrigins</i> Represents a collection of allowed origins. Supported only for HTTP APIs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowMethods</i> Represents a collection of allowed HTTP methods. Supported only for HTTP APIs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowHeaders</i> Represents a collection of allowed headers. Supported only for HTTP APIs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowCredentials</i> Specifies whether credentials are included in the CORS request. Supported only for HTTP APIs.<br/>        """
        pass

    def create_api_mapping(self, Stage: str, DomainName: str, ApiId: str, ApiMappingKey: str=None) -> CreateApiMappingResponse:
        r"""Creates an API mapping.

        :param self:
        :param Stage:  The API stage.<br/>DomainName:  The domain name.<br/>ApiMappingKey:  The API mapping key.<br/>ApiId:  The API identifier.<br/>
        :return: Stage:  The API stage.<br/>ApiMappingKey:  The API mapping key.<br/>ApiMappingId:  The API mapping identifier.<br/>ApiId:  The API identifier.<br/>        """
        pass

    def create_authorizer(self, Name: str, IdentitySource: List[__string], AuthorizerType: str, ApiId: str, AuthorizerCredentialsArn: str=None, AuthorizerPayloadFormatVersion: str=None, AuthorizerResultTtlInSeconds: int=None, AuthorizerUri: str=None, EnableSimpleResponses: __boolean=None, IdentityValidationExpression: str=None, JwtConfiguration: JWTConfiguration=None) -> CreateAuthorizerResponse:
        r"""Creates an Authorizer for an API.

        :param self:
        :param Name:  The name of the authorizer.<br/>JwtConfiguration:  Represents the configuration of a JWT authorizer. Required for the JWT authorizer type. Supported only for HTTP APIs.:<br/>IdentityValidationExpression:  This parameter is not used.<br/>IdentitySource:  The identity source for which authorization is requested. For a REQUEST authorizer, this is optional. The value is a set of one or more mapping expressions of the specified request parameters. The identity source can be headers, query string parameters, stage variables, and context parameters. For example, if an Auth header and a Name query string parameter are defined as identity sources, this value is route.request.header.Auth, route.request.querystring.Name for WebSocket APIs. For HTTP APIs, use selection expressions prefixed with $, for example, $request.header.Auth, $request.querystring.Name. These parameters are used to perform runtime validation for Lambda-based authorizers by verifying all of the identity-related request parameters are present in the request, not null, and non-empty. Only when this is true does the authorizer invoke the authorizer Lambda function. Otherwise, it returns a 401 Unauthorized response without calling the Lambda function. For HTTP APIs, identity sources are also used as the cache key when caching is enabled. To learn more, see <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html">Working with AWS Lambda authorizers for HTTP APIs</a>. For JWT, a single entry that specifies where to extract the JSON Web Token (JWT) from inbound requests. Currently only header-based and query parameter-based selections are supported, for example $request.header.Authorization.<br/>EnableSimpleResponses:  Specifies whether a Lambda authorizer returns a response in a simple format. By default, a Lambda authorizer must return an IAM policy. If enabled, the Lambda authorizer can return a boolean value instead of an IAM policy. Supported only for HTTP APIs. To learn more, see <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html">Working with AWS Lambda authorizers for HTTP APIs</a><br/>AuthorizerUri:  The authorizer's Uniform Resource Identifier (URI). For REQUEST authorizers, this must be a well-formed Lambda function URI, for example, arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:<replaceable>{account_id}</replaceable>:function:<replaceable>{lambda_function_name}</replaceable>/invocations. In general, the URI has this form: arn:aws:apigateway:<replaceable>{region}</replaceable>:lambda:path/<replaceable>{service_api}</replaceable>
               , where <replaceable></replaceable>{region} is the same as the region hosting the Lambda function, path indicates that the remaining substring in the URI should be treated as the path to the resource, including the initial /. For Lambda functions, this is usually of the form /2015-03-31/functions/[FunctionARN]/invocations. Supported only for REQUEST authorizers.<br/>AuthorizerType:  The authorizer type. Specify REQUEST for a Lambda function using incoming request parameters. Specify JWT to use JSON Web Tokens (supported only for HTTP APIs).<br/>AuthorizerResultTtlInSeconds:  The time to live (TTL) for cached authorizer results, in seconds. If it equals 0, authorization caching is disabled. If it is greater than 0, API Gateway caches authorizer responses. The maximum value is 3600, or 1 hour. Supported only for HTTP API Lambda authorizers.<br/>AuthorizerPayloadFormatVersion:  Specifies the format of the payload sent to an HTTP API Lambda authorizer. Required for HTTP API Lambda authorizers. Supported values are 1.0 and 2.0. To learn more, see <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html">Working with AWS Lambda authorizers for HTTP APIs</a>.<br/>AuthorizerCredentialsArn:  Specifies the required credentials as an IAM role for API Gateway to invoke the authorizer. To specify an IAM role for API Gateway to assume, use the role's Amazon Resource Name (ARN). To use resource-based permissions on the Lambda function, don't specify this parameter. Supported only for REQUEST authorizers.<br/>ApiId:  The API identifier.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Issuer</i> The base domain of the identity provider that issues JSON Web Tokens. For example, an Amazon Cognito user pool has the following format: https://cognito-idp.<replaceable>{region}</replaceable>.amazonaws.com/<replaceable>{userPoolId}</replaceable>
               . Required for the JWT authorizer type. Supported only for HTTP APIs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Audience</i> A list of the intended recipients of the JWT. A valid JWT must provide an aud that matches at least one entry in this list. See <a href="https://tools.ietf.org/html/rfc7519#section-4.1.3">RFC 7519</a>. Supported only for HTTP APIs.<br/>
        :return: Name:  The name of the authorizer.<br/>JwtConfiguration:  Represents the configuration of a JWT authorizer. Required for the JWT authorizer type. Supported only for HTTP APIs.:<br/>IdentityValidationExpression:  The validation expression does not apply to the REQUEST authorizer.<br/>IdentitySource:  The identity source for which authorization is requested. For a REQUEST authorizer, this is optional. The value is a set of one or more mapping expressions of the specified request parameters. The identity source can be headers, query string parameters, stage variables, and context parameters. For example, if an Auth header and a Name query string parameter are defined as identity sources, this value is route.request.header.Auth, route.request.querystring.Name for WebSocket APIs. For HTTP APIs, use selection expressions prefixed with $, for example, $request.header.Auth, $request.querystring.Name. These parameters are used to perform runtime validation for Lambda-based authorizers by verifying all of the identity-related request parameters are present in the request, not null, and non-empty. Only when this is true does the authorizer invoke the authorizer Lambda function. Otherwise, it returns a 401 Unauthorized response without calling the Lambda function. For HTTP APIs, identity sources are also used as the cache key when caching is enabled. To learn more, see <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html">Working with AWS Lambda authorizers for HTTP APIs</a>. For JWT, a single entry that specifies where to extract the JSON Web Token (JWT) from inbound requests. Currently only header-based and query parameter-based selections are supported, for example $request.header.Authorization.<br/>EnableSimpleResponses:  Specifies whether a Lambda authorizer returns a response in a simple format. If enabled, the Lambda authorizer can return a boolean value instead of an IAM policy. Supported only for HTTP APIs. To learn more, see <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html">Working with AWS Lambda authorizers for HTTP APIs</a><br/>AuthorizerUri:  The authorizer's Uniform Resource Identifier (URI). For REQUEST authorizers, this must be a well-formed Lambda function URI, for example, arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:<replaceable>{account_id}</replaceable>:function:<replaceable>{lambda_function_name}</replaceable>/invocations. In general, the URI has this form: arn:aws:apigateway:<replaceable>{region}</replaceable>:lambda:path/<replaceable>{service_api}</replaceable>
               , where <replaceable></replaceable>{region} is the same as the region hosting the Lambda function, path indicates that the remaining substring in the URI should be treated as the path to the resource, including the initial /. For Lambda functions, this is usually of the form /2015-03-31/functions/[FunctionARN]/invocations. Supported only for REQUEST authorizers.<br/>AuthorizerType:  The authorizer type. Specify REQUEST for a Lambda function using incoming request parameters. Specify JWT to use JSON Web Tokens (supported only for HTTP APIs).<br/>AuthorizerResultTtlInSeconds:  The time to live (TTL) for cached authorizer results, in seconds. If it equals 0, authorization caching is disabled. If it is greater than 0, API Gateway caches authorizer responses. The maximum value is 3600, or 1 hour. Supported only for HTTP API Lambda authorizers.<br/>AuthorizerPayloadFormatVersion:  Specifies the format of the payload sent to an HTTP API Lambda authorizer. Required for HTTP API Lambda authorizers. Supported values are 1.0 and 2.0. To learn more, see <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html">Working with AWS Lambda authorizers for HTTP APIs</a>.<br/>AuthorizerId:  The authorizer identifier.<br/>AuthorizerCredentialsArn:  Specifies the required credentials as an IAM role for API Gateway to invoke the authorizer. To specify an IAM role for API Gateway to assume, use the role's Amazon Resource Name (ARN). To use resource-based permissions on the Lambda function, don't specify this parameter. Supported only for REQUEST authorizers.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Issuer</i> The base domain of the identity provider that issues JSON Web Tokens. For example, an Amazon Cognito user pool has the following format: https://cognito-idp.<replaceable>{region}</replaceable>.amazonaws.com/<replaceable>{userPoolId}</replaceable>
               . Required for the JWT authorizer type. Supported only for HTTP APIs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Audience</i> A list of the intended recipients of the JWT. A valid JWT must provide an aud that matches at least one entry in this list. See <a href="https://tools.ietf.org/html/rfc7519#section-4.1.3">RFC 7519</a>. Supported only for HTTP APIs.<br/>        """
        pass

    def create_deployment(self, ApiId: str, Description: str=None, StageName: str=None) -> CreateDeploymentResponse:
        r"""Creates a Deployment for an API.

        :param self:
        :param StageName:  The name of the Stage resource for the Deployment resource to create.<br/>Description:  The description for the deployment resource.<br/>ApiId:  The API identifier.<br/>
        :return: Description:  The description for the deployment.<br/>DeploymentStatusMessage:  May contain additional feedback on the status of an API deployment.<br/>DeploymentStatus:  The status of the deployment: PENDING, FAILED, or SUCCEEDED.<br/>DeploymentId:  The identifier for the deployment.<br/>CreatedDate:  The date and time when the Deployment resource was created.<br/>AutoDeployed:  Specifies whether a deployment was automatically released.<br/>        """
        pass

    def create_domain_name(self, DomainName: str, DomainNameConfigurations: List[DomainNameConfiguration]=None, MutualTlsAuthentication: MutualTlsAuthenticationInput=None, Tags: Tags=None) -> CreateDomainNameResponse:
        r"""Creates a domain name.

        :param self:
        :param Tags:  The collection of tags associated with a domain name.<br/>MutualTlsAuthentication:  The mutual TLS authentication configuration for a custom domain name.:<br/>DomainNameConfigurations:  The domain name configurations.<br/>DomainName:  The domain name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TruststoreVersion</i> The version of the S3 object that contains your truststore. To specify a version, you must have versioning enabled for the S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TruststoreUri</i> An Amazon S3 URL that specifies the truststore for mutual TLS authentication, for example, s3://<replaceable>bucket-name</replaceable>/<replaceable>key-name</replaceable>. The truststore can contain certificates from public or private certificate authorities. To update the truststore, upload a new version to S3, and then update your custom domain name to use the new version. To update the truststore, you must have permissions to access the S3 object.<br/>
        :return: Tags:  The collection of tags associated with a domain name.<br/>MutualTlsAuthentication:  The mutual TLS authentication configuration for a custom domain name.:<br/>DomainNameConfigurations:  The domain name configurations.<br/>DomainName:  The name of the DomainName resource.<br/>ApiMappingSelectionExpression:  The API mapping selection expression.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TruststoreWarnings</i> A list of warnings that API Gateway returns while processing your truststore. Invalid certificates produce warnings. Mutual TLS is still enabled, but some clients might not be able to access your API. To resolve warnings, upload a new truststore to S3, and then update you domain name to use the new version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TruststoreVersion</i> The version of the S3 object that contains your truststore. To specify a version, you must have versioning enabled for the S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TruststoreUri</i> An Amazon S3 URL that specifies the truststore for mutual TLS authentication, for example, s3://<replaceable>bucket-name</replaceable>/<replaceable>key-name</replaceable>. The truststore can contain certificates from public or private certificate authorities. To update the truststore, upload a new version to S3, and then update your custom domain name to use the new version. To update the truststore, you must have permissions to access the S3 object.<br/>        """
        pass

    def create_integration(self, IntegrationType: str, ApiId: str, ConnectionId: str=None, ConnectionType: str=None, ContentHandlingStrategy: str=None, CredentialsArn: str=None, Description: str=None, IntegrationMethod: str=None, IntegrationSubtype: str=None, IntegrationUri: str=None, PassthroughBehavior: str=None, PayloadFormatVersion: str=None, RequestParameters: IntegrationParameters=None, RequestTemplates: TemplateMap=None, ResponseParameters: ResponseParameters=None, TemplateSelectionExpression: str=None, TimeoutInMillis: int=None, TlsConfig: TlsConfigInput=None) -> CreateIntegrationResult:
        r"""Creates an Integration.

        :param self:
        :param TlsConfig:  The TLS configuration for a private integration. If you specify a TLS configuration, private integration traffic uses the HTTPS protocol. Supported only for HTTP APIs.:<br/>TimeoutInMillis:  Custom timeout between 50 and 29,000 milliseconds for WebSocket APIs and between 50 and 30,000 milliseconds for HTTP APIs. The default timeout is 29 seconds for WebSocket APIs and 30 seconds for HTTP APIs.<br/>TemplateSelectionExpression:  The template selection expression for the integration.<br/>ResponseParameters:  Supported only for HTTP APIs. You use response parameters to transform the HTTP response from a backend integration before returning the response to clients. Specify a key-value map from a selection key to response parameters. The selection key must be a valid HTTP status code within the range of 200-599. Response parameters are a key-value map. The key must match pattern &lt;action&gt;:&lt;header&gt;.&lt;location&gt; or overwrite.statuscode. The action can be append, overwrite or remove. The value can be a static value, or map to response data, stage variables, or context variables that are evaluated at runtime. To learn more, see <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html">Transforming API requests and responses</a>.<br/>RequestTemplates:  Represents a map of Velocity templates that are applied on the request payload based on the value of the Content-Type header sent by the client. The content type value is the key in this map, and the template (as a String) is the value. Supported only for WebSocket APIs.<br/>RequestParameters:  For WebSocket APIs, a key-value map specifying request parameters that are passed from the method request to the backend. The key is an integration request parameter name and the associated value is a method request parameter value or static value that must be enclosed within single quotes and pre-encoded as required by the backend. The method request parameter value must match the pattern of method.request.<replaceable>{location}</replaceable>.<replaceable>{name}</replaceable>
               , where 
                  <replaceable>{location}</replaceable>
                is querystring, path, or header; and 
                  <replaceable>{name}</replaceable>
                must be a valid and unique method request parameter name. For HTTP API integrations with a specified integrationSubtype, request parameters are a key-value map specifying parameters that are passed to AWS_PROXY integrations. You can provide static values, or map request data, stage variables, or context variables that are evaluated at runtime. To learn more, see <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-aws-services.html">Working with AWS service integrations for HTTP APIs</a>. For HTTP API integrations without a specified integrationSubtype request parameters are a key-value map specifying how to transform HTTP requests before sending them to the backend. The key should follow the pattern &lt;action&gt;:&lt;header|querystring|path&gt;.&lt;location&gt; where action can be append, overwrite or remove. For values, you can provide static values, or map request data, stage variables, or context variables that are evaluated at runtime. To learn more, see <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html">Transforming API requests and responses</a>.<br/>PayloadFormatVersion:  Specifies the format of the payload sent to an integration. Required for HTTP APIs.<br/>PassthroughBehavior:  Specifies the pass-through behavior for incoming requests based on the Content-Type header in the request, and the available mapping templates specified as the requestTemplates property on the Integration resource. There are three valid values: WHEN_NO_MATCH, WHEN_NO_TEMPLATES, and NEVER. Supported only for WebSocket APIs. WHEN_NO_MATCH passes the request body for unmapped content types through to the integration backend without transformation. NEVER rejects unmapped content types with an HTTP 415 Unsupported Media Type response. WHEN_NO_TEMPLATES allows pass-through when the integration has no content types mapped to templates. However, if there is at least one content type defined, unmapped content types will be rejected with the same HTTP 415 Unsupported Media Type response.<br/>IntegrationUri:  For a Lambda integration, specify the URI of a Lambda function. For an HTTP integration, specify a fully-qualified URL. For an HTTP API private integration, specify the ARN of an Application Load Balancer listener, Network Load Balancer listener, or AWS Cloud Map service. If you specify the ARN of an AWS Cloud Map service, API Gateway uses DiscoverInstances to identify resources. You can use query parameters to target specific resources. To learn more, see <a href="https://docs.aws.amazon.com/cloud-map/latest/api/API_DiscoverInstances.html">DiscoverInstances</a>. For private integrations, all resources must be owned by the same AWS account.<br/>IntegrationType:  The integration type of an integration. One of the following: AWS: for integrating the route or method request with an AWS service action, including the Lambda function-invoking action. With the Lambda function-invoking action, this is referred to as the Lambda custom integration. With any other AWS service action, this is known as AWS integration. Supported only for WebSocket APIs. AWS_PROXY: for integrating the route or method request with a Lambda function or other AWS service action. This integration is also referred to as a Lambda proxy integration. HTTP: for integrating the route or method request with an HTTP endpoint. This integration is also referred to as the HTTP custom integration. Supported only for WebSocket APIs. HTTP_PROXY: for integrating the route or method request with an HTTP endpoint, with the client request passed through as-is. This is also referred to as HTTP proxy integration. For HTTP API private integrations, use an HTTP_PROXY integration. MOCK: for integrating the route or method request with API Gateway as a "loopback" endpoint without invoking any backend. Supported only for WebSocket APIs.<br/>IntegrationSubtype:  Supported only for HTTP API AWS_PROXY integrations. Specifies the AWS service action to invoke. To learn more, see <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-aws-services-reference.html">Integration subtype reference</a>.<br/>IntegrationMethod:  Specifies the integration's HTTP method type.<br/>Description:  The description of the integration.<br/>CredentialsArn:  Specifies the credentials required for the integration, if any. For AWS integrations, three options are available. To specify an IAM Role for API Gateway to assume, use the role's Amazon Resource Name (ARN). To require that the caller's identity be passed through from the request, specify the string arn:aws:iam::*:user/*. To use resource-based permissions on supported AWS services, specify null.<br/>ContentHandlingStrategy:  Supported only for WebSocket APIs. Specifies how to handle response payload content type conversions. Supported values are CONVERT_TO_BINARY and CONVERT_TO_TEXT, with the following behaviors: CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded string to the corresponding binary blob. CONVERT_TO_TEXT: Converts a response payload from a binary blob to a Base64-encoded string. If this property is not defined, the response payload will be passed through from the integration response to the route response or method response without modification.<br/>ConnectionType:  The type of the network connection to the integration endpoint. Specify INTERNET for connections through the public routable internet or VPC_LINK for private connections between API Gateway and resources in a VPC. The default value is INTERNET.<br/>ConnectionId:  The ID of the VPC link for a private integration. Supported only for HTTP APIs.<br/>ApiId:  The API identifier.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerNameToVerify</i> If you specify a server name, API Gateway uses it to verify the hostname on the integration's certificate. The server name is also included in the TLS handshake to support Server Name Indication (SNI) or virtual hosting.<br/>
        :return: TlsConfig:  The TLS configuration for a private integration. If you specify a TLS configuration, private integration traffic uses the HTTPS protocol. Supported only for HTTP APIs.:<br/>TimeoutInMillis:  Custom timeout between 50 and 29,000 milliseconds for WebSocket APIs and between 50 and 30,000 milliseconds for HTTP APIs. The default timeout is 29 seconds for WebSocket APIs and 30 seconds for HTTP APIs.<br/>TemplateSelectionExpression:  The template selection expression for the integration. Supported only for WebSocket APIs.<br/>ResponseParameters:  Supported only for HTTP APIs. You use response parameters to transform the HTTP response from a backend integration before returning the response to clients. Specify a key-value map from a selection key to response parameters. The selection key must be a valid HTTP status code within the range of 200-599. Response parameters are a key-value map. The key must match pattern &lt;action&gt;:&lt;header&gt;.&lt;location&gt; or overwrite.statuscode. The action can be append, overwrite or remove. The value can be a static value, or map to response data, stage variables, or context variables that are evaluated at runtime. To learn more, see <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html">Transforming API requests and responses</a>.<br/>RequestTemplates:  Represents a map of Velocity templates that are applied on the request payload based on the value of the Content-Type header sent by the client. The content type value is the key in this map, and the template (as a String) is the value. Supported only for WebSocket APIs.<br/>RequestParameters:  For WebSocket APIs, a key-value map specifying request parameters that are passed from the method request to the backend. The key is an integration request parameter name and the associated value is a method request parameter value or static value that must be enclosed within single quotes and pre-encoded as required by the backend. The method request parameter value must match the pattern of method.request.<replaceable>{location}</replaceable>.<replaceable>{name}</replaceable>
          , where 
            <replaceable>{location}</replaceable>
           is querystring, path, or header; and 
            <replaceable>{name}</replaceable>
           must be a valid and unique method request parameter name. For HTTP API integrations with a specified integrationSubtype, request parameters are a key-value map specifying parameters that are passed to AWS_PROXY integrations. You can provide static values, or map request data, stage variables, or context variables that are evaluated at runtime. To learn more, see <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-aws-services.html">Working with AWS service integrations for HTTP APIs</a>. For HTTP API itegrations, without a specified integrationSubtype request parameters are a key-value map specifying how to transform HTTP requests before sending them to backend integrations. The key should follow the pattern &lt;action&gt;:&lt;header|querystring|path&gt;.&lt;location&gt;. The action can be append, overwrite or remove. For values, you can provide static values, or map request data, stage variables, or context variables that are evaluated at runtime. To learn more, see <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html">Transforming API requests and responses</a>.<br/>PayloadFormatVersion:  Specifies the format of the payload sent to an integration. Required for HTTP APIs.<br/>PassthroughBehavior:  Specifies the pass-through behavior for incoming requests based on the Content-Type header in the request, and the available mapping templates specified as the requestTemplates property on the Integration resource. There are three valid values: WHEN_NO_MATCH, WHEN_NO_TEMPLATES, and NEVER. Supported only for WebSocket APIs. WHEN_NO_MATCH passes the request body for unmapped content types through to the integration backend without transformation. NEVER rejects unmapped content types with an HTTP 415 Unsupported Media Type response. WHEN_NO_TEMPLATES allows pass-through when the integration has no content types mapped to templates. However, if there is at least one content type defined, unmapped content types will be rejected with the same HTTP 415 Unsupported Media Type response.<br/>IntegrationUri:  For a Lambda integration, specify the URI of a Lambda function. For an HTTP integration, specify a fully-qualified URL. For an HTTP API private integration, specify the ARN of an Application Load Balancer listener, Network Load Balancer listener, or AWS Cloud Map service. If you specify the ARN of an AWS Cloud Map service, API Gateway uses DiscoverInstances to identify resources. You can use query parameters to target specific resources. To learn more, see <a href="https://docs.aws.amazon.com/cloud-map/latest/api/API_DiscoverInstances.html">DiscoverInstances</a>. For private integrations, all resources must be owned by the same AWS account.<br/>IntegrationType:  The integration type of an integration. One of the following: AWS: for integrating the route or method request with an AWS service action, including the Lambda function-invoking action. With the Lambda function-invoking action, this is referred to as the Lambda custom integration. With any other AWS service action, this is known as AWS integration. Supported only for WebSocket APIs. AWS_PROXY: for integrating the route or method request with a Lambda function or other AWS service action. This integration is also referred to as a Lambda proxy integration. HTTP: for integrating the route or method request with an HTTP endpoint. This integration is also referred to as the HTTP custom integration. Supported only for WebSocket APIs. HTTP_PROXY: for integrating the route or method request with an HTTP endpoint, with the client request passed through as-is. This is also referred to as HTTP proxy integration. MOCK: for integrating the route or method request with API Gateway as a "loopback" endpoint without invoking any backend. Supported only for WebSocket APIs.<br/>IntegrationSubtype:  Supported only for HTTP API AWS_PROXY integrations. Specifies the AWS service action to invoke. To learn more, see <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-aws-services-reference.html">Integration subtype reference</a>.<br/>IntegrationResponseSelectionExpression:  The integration response selection expression for the integration. Supported only for WebSocket APIs. See <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-integration-response-selection-expressions">Integration Response Selection Expressions</a>.<br/>IntegrationMethod:  Specifies the integration's HTTP method type.<br/>IntegrationId:  Represents the identifier of an integration.<br/>Description:  Represents the description of an integration.<br/>CredentialsArn:  Specifies the credentials required for the integration, if any. For AWS integrations, three options are available. To specify an IAM Role for API Gateway to assume, use the role's Amazon Resource Name (ARN). To require that the caller's identity be passed through from the request, specify the string arn:aws:iam::*:user/*. To use resource-based permissions on supported AWS services, specify null.<br/>ContentHandlingStrategy:  Supported only for WebSocket APIs. Specifies how to handle response payload content type conversions. Supported values are CONVERT_TO_BINARY and CONVERT_TO_TEXT, with the following behaviors: CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded string to the corresponding binary blob. CONVERT_TO_TEXT: Converts a response payload from a binary blob to a Base64-encoded string. If this property is not defined, the response payload will be passed through from the integration response to the route response or method response without modification.<br/>ConnectionType:  The type of the network connection to the integration endpoint. Specify INTERNET for connections through the public routable internet or VPC_LINK for private connections between API Gateway and resources in a VPC. The default value is INTERNET.<br/>ConnectionId:  The ID of the VPC link for a private integration. Supported only for HTTP APIs.<br/>ApiGatewayManaged:  Specifies whether an integration is managed by API Gateway. If you created an API using using quick create, the resulting integration is managed by API Gateway. You can update a managed integration, but you can't delete it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerNameToVerify</i> If you specify a server name, API Gateway uses it to verify the hostname on the integration's certificate. The server name is also included in the TLS handshake to support Server Name Indication (SNI) or virtual hosting.<br/>        """
        pass

    def create_integration_response(self, IntegrationResponseKey: str, IntegrationId: str, ApiId: str, ContentHandlingStrategy: str=None, ResponseParameters: IntegrationParameters=None, ResponseTemplates: TemplateMap=None, TemplateSelectionExpression: str=None) -> CreateIntegrationResponseResponse:
        r"""Creates an IntegrationResponses.

        :param self:
        :param TemplateSelectionExpression:  The template selection expression for the integration response. Supported only for WebSocket APIs.<br/>ResponseTemplates:  The collection of response templates for the integration response as a string-to-string map of key-value pairs. Response templates are represented as a key/value map, with a content-type as the key and a template as the value.<br/>ResponseParameters:  A key-value map specifying response parameters that are passed to the method response from the backend. The key is a method response header parameter name and the mapped value is an integration response header value, a static value enclosed within a pair of single quotes, or a JSON expression from the integration response body. The mapping key must match the pattern of method.response.header.{name}, where {name} is a valid and unique header name. The mapped non-static value must match the pattern of integration.response.header.{name} or integration.response.body.{JSON-expression}, where {name} is a valid and unique response header name and {JSON-expression} is a valid JSON expression without the $ prefix.<br/>IntegrationResponseKey:  The integration response key.<br/>IntegrationId:  The integration ID.<br/>ContentHandlingStrategy:  Specifies how to handle response payload content type conversions. Supported values are CONVERT_TO_BINARY and CONVERT_TO_TEXT, with the following behaviors: CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded string to the corresponding binary blob. CONVERT_TO_TEXT: Converts a response payload from a binary blob to a Base64-encoded string. If this property is not defined, the response payload will be passed through from the integration response to the route response or method response without modification.<br/>ApiId:  The API identifier.<br/>
        :return: TemplateSelectionExpression:  The template selection expressions for the integration response.<br/>ResponseTemplates:  The collection of response templates for the integration response as a string-to-string map of key-value pairs. Response templates are represented as a key/value map, with a content-type as the key and a template as the value.<br/>ResponseParameters:  A key-value map specifying response parameters that are passed to the method response from the backend. The key is a method response header parameter name and the mapped value is an integration response header value, a static value enclosed within a pair of single quotes, or a JSON expression from the integration response body. The mapping key must match the pattern of method.response.header.{name}, where name is a valid and unique header name. The mapped non-static value must match the pattern of integration.response.header.{name} or integration.response.body.{JSON-expression}, where name is a valid and unique response header name and JSON-expression is a valid JSON expression without the $ prefix.<br/>IntegrationResponseKey:  The integration response key.<br/>IntegrationResponseId:  The integration response ID.<br/>ContentHandlingStrategy:  Supported only for WebSocket APIs. Specifies how to handle response payload content type conversions. Supported values are CONVERT_TO_BINARY and CONVERT_TO_TEXT, with the following behaviors: CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded string to the corresponding binary blob. CONVERT_TO_TEXT: Converts a response payload from a binary blob to a Base64-encoded string. If this property is not defined, the response payload will be passed through from the integration response to the route response or method response without modification.<br/>        """
        pass

    def create_model(self, Schema: str, Name: str, ApiId: str, ContentType: str=None, Description: str=None) -> CreateModelResponse:
        r"""Creates a Model for an API.

        :param self:
        :param Schema:  The schema for the model. For application/json models, this should be JSON schema draft 4 model.<br/>Name:  The name of the model. Must be alphanumeric.<br/>Description:  The description of the model.<br/>ContentType:  The content-type for the model, for example, "application/json".<br/>ApiId:  The API identifier.<br/>
        :return: Schema:  The schema for the model. For application/json models, this should be JSON schema draft 4 model.<br/>Name:  The name of the model. Must be alphanumeric.<br/>ModelId:  The model identifier.<br/>Description:  The description of the model.<br/>ContentType:  The content-type for the model, for example, "application/json".<br/>        """
        pass

    def create_route(self, RouteKey: str, ApiId: str, ApiKeyRequired: __boolean=None, AuthorizationScopes: List[StringWithLengthBetween1And64]=None, AuthorizationType: str=None, AuthorizerId: str=None, ModelSelectionExpression: str=None, OperationName: str=None, RequestModels: RouteModels=None, RequestParameters: RouteParameters=None, RouteResponseSelectionExpression: str=None, Target: str=None) -> CreateRouteResult:
        r"""Creates a Route for an API.

        :param self:
        :param Target:  The target for the route.<br/>RouteResponseSelectionExpression:  The route response selection expression for the route. Supported only for WebSocket APIs.<br/>RouteKey:  The route key for the route.<br/>RequestParameters:  The request parameters for the route. Supported only for WebSocket APIs.<br/>RequestModels:  The request models for the route. Supported only for WebSocket APIs.<br/>OperationName:  The operation name for the route.<br/>ModelSelectionExpression:  The model selection expression for the route. Supported only for WebSocket APIs.<br/>AuthorizerId:  The identifier of the Authorizer resource to be associated with this route. The authorizer identifier is generated by API Gateway when you created the authorizer.<br/>AuthorizationType:  The authorization type for the route. For WebSocket APIs, valid values are NONE for open access, AWS_IAM for using AWS IAM permissions, and CUSTOM for using a Lambda authorizer For HTTP APIs, valid values are NONE for open access, JWT for using JSON Web Tokens, AWS_IAM for using AWS IAM permissions, and CUSTOM for using a Lambda authorizer.<br/>AuthorizationScopes:  The authorization scopes supported by this route.<br/>ApiKeyRequired:  Specifies whether an API key is required for the route. Supported only for WebSocket APIs.<br/>ApiId:  The API identifier.<br/>
        :return: Target:  The target for the route.<br/>RouteResponseSelectionExpression:  The route response selection expression for the route. Supported only for WebSocket APIs.<br/>RouteKey:  The route key for the route.<br/>RouteId:  The route ID.<br/>RequestParameters:  The request parameters for the route. Supported only for WebSocket APIs.<br/>RequestModels:  The request models for the route. Supported only for WebSocket APIs.<br/>OperationName:  The operation name for the route.<br/>ModelSelectionExpression:  The model selection expression for the route. Supported only for WebSocket APIs.<br/>AuthorizerId:  The identifier of the Authorizer resource to be associated with this route. The authorizer identifier is generated by API Gateway when you created the authorizer.<br/>AuthorizationType:  The authorization type for the route. For WebSocket APIs, valid values are NONE for open access, AWS_IAM for using AWS IAM permissions, and CUSTOM for using a Lambda authorizer For HTTP APIs, valid values are NONE for open access, JWT for using JSON Web Tokens, AWS_IAM for using AWS IAM permissions, and CUSTOM for using a Lambda authorizer.<br/>AuthorizationScopes:  A list of authorization scopes configured on a route. The scopes are used with a JWT authorizer to authorize the method invocation. The authorization works by matching the route scopes against the scopes parsed from the access token in the incoming request. The method invocation is authorized if any route scope matches a claimed scope in the access token. Otherwise, the invocation is not authorized. When the route scope is configured, the client must provide an access token instead of an identity token for authorization purposes.<br/>ApiKeyRequired:  Specifies whether an API key is required for this route. Supported only for WebSocket APIs.<br/>ApiGatewayManaged:  Specifies whether a route is managed by API Gateway. If you created an API using quick create, the $default route is managed by API Gateway. You can't modify the $default route key.<br/>        """
        pass

    def create_route_response(self, RouteResponseKey: str, RouteId: str, ApiId: str, ModelSelectionExpression: str=None, ResponseModels: RouteModels=None, ResponseParameters: RouteParameters=None) -> CreateRouteResponseResponse:
        r"""Creates a RouteResponse for a Route.

        :param self:
        :param RouteResponseKey:  The route response key.<br/>RouteId:  The route ID.<br/>ResponseParameters:  The route response parameters.<br/>ResponseModels:  The response models for the route response.<br/>ModelSelectionExpression:  The model selection expression for the route response. Supported only for WebSocket APIs.<br/>ApiId:  The API identifier.<br/>
        :return: RouteResponseKey:  Represents the route response key of a route response.<br/>RouteResponseId:  Represents the identifier of a route response.<br/>ResponseParameters:  Represents the response parameters of a route response.<br/>ResponseModels:  Represents the response models of a route response.<br/>ModelSelectionExpression:  Represents the model selection expression of a route response. Supported only for WebSocket APIs.<br/>        """
        pass

    def create_stage(self, StageName: str, ApiId: str, AccessLogSettings: AccessLogSettings=None, AutoDeploy: __boolean=None, ClientCertificateId: str=None, DefaultRouteSettings: RouteSettings=None, DeploymentId: str=None, Description: str=None, RouteSettings: RouteSettingsMap=None, StageVariables: StageVariablesMap=None, Tags: Tags=None) -> CreateStageResponse:
        r"""Creates a Stage for an API.

        :param self:
        :param Tags:  The collection of tags. Each tag element is associated with a given resource.<br/>StageVariables:  A map that defines the stage variables for a Stage. Variable names can have alphanumeric and underscore characters, and the values must match [A-Za-z0-9-._~:/?#&amp;=,]+.<br/>StageName:  The name of the stage.<br/>RouteSettings:  Route settings for the stage, by routeKey.<br/>Description:  The description for the API stage.<br/>DeploymentId:  The deployment identifier of the API stage.<br/>DefaultRouteSettings:  The default route settings for the stage.:<br/>ClientCertificateId:  The identifier of a client certificate for a Stage. Supported only for WebSocket APIs.<br/>AutoDeploy:  Specifies whether updates to an API automatically trigger a new deployment. The default value is false.<br/>ApiId:  The API identifier.<br/>AccessLogSettings:  Settings for logging access in this stage.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Format</i> A single line format of the access logs of data, as specified by selected $context variables. The format must include at least $context.requestId.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DestinationArn</i> The ARN of the CloudWatch Logs log group to receive access logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ThrottlingRateLimit</i> Specifies the throttling rate limit.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ThrottlingBurstLimit</i> Specifies the throttling burst limit.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LoggingLevel</i> Specifies the logging level for this route: INFO, ERROR, or OFF. This property affects the log entries pushed to Amazon CloudWatch Logs. Supported only for WebSocket APIs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DetailedMetricsEnabled</i> Specifies whether detailed metrics are enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataTraceEnabled</i> Specifies whether (true) or not (false) data trace logging is enabled for this route. This property affects the log entries pushed to Amazon CloudWatch Logs. Supported only for WebSocket APIs.<br/>
        :return: Tags:  The collection of tags. Each tag element is associated with a given resource.<br/>StageVariables:  A map that defines the stage variables for a stage resource. Variable names can have alphanumeric and underscore characters, and the values must match [A-Za-z0-9-._~:/?#&amp;=,]+.<br/>StageName:  The name of the stage.<br/>RouteSettings:  Route settings for the stage, by routeKey.<br/>LastUpdatedDate:  The timestamp when the stage was last updated.<br/>LastDeploymentStatusMessage:  Describes the status of the last deployment of a stage. Supported only for stages with autoDeploy enabled.<br/>Description:  The description of the stage.<br/>DeploymentId:  The identifier of the Deployment that the Stage is associated with. Can't be updated if autoDeploy is enabled.<br/>DefaultRouteSettings:  Default route settings for the stage.:<br/>CreatedDate:  The timestamp when the stage was created.<br/>ClientCertificateId:  The identifier of a client certificate for a Stage. Supported only for WebSocket APIs.<br/>AutoDeploy:  Specifies whether updates to an API automatically trigger a new deployment. The default value is false.<br/>ApiGatewayManaged:  Specifies whether a stage is managed by API Gateway. If you created an API using quick create, the $default stage is managed by API Gateway. You can't modify the $default stage.<br/>AccessLogSettings:  Settings for logging access in this stage.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Format</i> A single line format of the access logs of data, as specified by selected $context variables. The format must include at least $context.requestId.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DestinationArn</i> The ARN of the CloudWatch Logs log group to receive access logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ThrottlingRateLimit</i> Specifies the throttling rate limit.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ThrottlingBurstLimit</i> Specifies the throttling burst limit.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LoggingLevel</i> Specifies the logging level for this route: INFO, ERROR, or OFF. This property affects the log entries pushed to Amazon CloudWatch Logs. Supported only for WebSocket APIs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DetailedMetricsEnabled</i> Specifies whether detailed metrics are enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataTraceEnabled</i> Specifies whether (true) or not (false) data trace logging is enabled for this route. This property affects the log entries pushed to Amazon CloudWatch Logs. Supported only for WebSocket APIs.<br/>        """
        pass

    def create_vpc_link(self, SubnetIds: List[__string], Name: str, SecurityGroupIds: List[__string]=None, Tags: Tags=None) -> CreateVpcLinkResponse:
        r"""Creates a VPC link.

        :param self:
        :param Tags:  A list of tags.<br/>SubnetIds:  A list of subnet IDs to include in the VPC link.<br/>SecurityGroupIds:  A list of security group IDs for the VPC link.<br/>Name:  The name of the VPC link.<br/>
        :return: VpcLinkVersion:  The version of the VPC link.<br/>VpcLinkStatusMessage:  A message summarizing the cause of the status of the VPC link.<br/>VpcLinkStatus:  The status of the VPC link.<br/>VpcLinkId:  The ID of the VPC link.<br/>Tags:  Tags for the VPC link.<br/>SubnetIds:  A list of subnet IDs to include in the VPC link.<br/>SecurityGroupIds:  A list of security group IDs for the VPC link.<br/>Name:  The name of the VPC link.<br/>CreatedDate:  The timestamp when the VPC link was created.<br/>        """
        pass

    def delete_access_log_settings(self, StageName: str, ApiId: str):
        r"""Deletes the AccessLogSettings for a Stage. To disable access logging for a Stage, delete its AccessLogSettings.

        :param self:
        :param StageName:  The stage name. Stage names can only contain alphanumeric characters, hyphens, and underscores. Maximum length is 128 characters.<br/>ApiId:  The API identifier.<br/>
        :return:         """
        pass

    def delete_api(self, ApiId: str):
        r"""Deletes an Api resource.

        :param self:
        :param ApiId:  The API identifier.<br/>
        :return:         """
        pass

    def delete_api_mapping(self, DomainName: str, ApiMappingId: str):
        r"""Deletes an API mapping.

        :param self:
        :param DomainName:  The domain name.<br/>ApiMappingId:  The API mapping identifier.<br/>
        :return:         """
        pass

    def delete_authorizer(self, AuthorizerId: str, ApiId: str):
        r"""Deletes an Authorizer.

        :param self:
        :param AuthorizerId:  The authorizer identifier.<br/>ApiId:  The API identifier.<br/>
        :return:         """
        pass

    def delete_cors_configuration(self, ApiId: str):
        r"""Deletes a CORS configuration.

        :param self:
        :param ApiId:  The API identifier.<br/>
        :return:         """
        pass

    def delete_deployment(self, DeploymentId: str, ApiId: str):
        r"""Deletes a Deployment.

        :param self:
        :param DeploymentId:  The deployment ID.<br/>ApiId:  The API identifier.<br/>
        :return:         """
        pass

    def delete_domain_name(self, DomainName: str):
        r"""Deletes a domain name.

        :param self:
        :param DomainName:  The domain name.<br/>
        :return:         """
        pass

    def delete_integration(self, IntegrationId: str, ApiId: str):
        r"""Deletes an Integration.

        :param self:
        :param IntegrationId:  The integration ID.<br/>ApiId:  The API identifier.<br/>
        :return:         """
        pass

    def delete_integration_response(self, IntegrationResponseId: str, IntegrationId: str, ApiId: str):
        r"""Deletes an IntegrationResponses.

        :param self:
        :param IntegrationResponseId:  The integration response ID.<br/>IntegrationId:  The integration ID.<br/>ApiId:  The API identifier.<br/>
        :return:         """
        pass

    def delete_model(self, ModelId: str, ApiId: str):
        r"""Deletes a Model.

        :param self:
        :param ModelId:  The model ID.<br/>ApiId:  The API identifier.<br/>
        :return:         """
        pass

    def delete_route(self, RouteId: str, ApiId: str):
        r"""Deletes a Route.

        :param self:
        :param RouteId:  The route ID.<br/>ApiId:  The API identifier.<br/>
        :return:         """
        pass

    def delete_route_request_parameter(self, RouteId: str, RequestParameterKey: str, ApiId: str):
        r"""Deletes a route request parameter.

        :param self:
        :param RouteId:  The route ID.<br/>RequestParameterKey:  The route request parameter key.<br/>ApiId:  The API identifier.<br/>
        :return:         """
        pass

    def delete_route_response(self, RouteResponseId: str, RouteId: str, ApiId: str):
        r"""Deletes a RouteResponse.

        :param self:
        :param RouteResponseId:  The route response ID.<br/>RouteId:  The route ID.<br/>ApiId:  The API identifier.<br/>
        :return:         """
        pass

    def delete_route_settings(self, StageName: str, RouteKey: str, ApiId: str):
        r"""Deletes the RouteSettings for a stage.

        :param self:
        :param StageName:  The stage name. Stage names can only contain alphanumeric characters, hyphens, and underscores. Maximum length is 128 characters.<br/>RouteKey:  The route key.<br/>ApiId:  The API identifier.<br/>
        :return:         """
        pass

    def delete_stage(self, StageName: str, ApiId: str):
        r"""Deletes a Stage.

        :param self:
        :param StageName:  The stage name. Stage names can only contain alphanumeric characters, hyphens, and underscores. Maximum length is 128 characters.<br/>ApiId:  The API identifier.<br/>
        :return:         """
        pass

    def delete_vpc_link(self, VpcLinkId: str) -> DeleteVpcLinkResponse:
        r"""Deletes a VPC link.

        :param self:
        :param VpcLinkId:  The ID of the VPC link.<br/>
        :return:         """
        pass

    def export_api(self, Specification: str, OutputType: str, ApiId: str, ExportVersion: str=None, IncludeExtensions: __boolean=None, StageName: str=None) -> ExportApiResponse:
        r"""

        :param self:
        :param StageName:  The name of the API stage to export. If you don't specify this property, a representation of the latest API configuration is exported.<br/>Specification:  The version of the API specification to use. OAS30, for OpenAPI 3.0, is the only supported value.<br/>OutputType:  The output type of the exported definition file. Valid values are JSON and YAML.<br/>IncludeExtensions:  Specifies whether to include <a href="https://docs.aws.amazon.com//apigateway/latest/developerguide/api-gateway-swagger-extensions.html">API Gateway extensions</a> in the exported API definition. API Gateway extensions are included by default.<br/>ExportVersion:  The version of the API Gateway export algorithm. API Gateway uses the latest version by default. Currently, the only supported version is 1.0.<br/>ApiId:  The API identifier.<br/>
        :return: body:  Represents an exported definition of an API in a particular output format, for example, YAML. The API is serialized to the requested specification, for example, OpenAPI 3.0.<br/>        """
        pass

    def reset_authorizers_cache(self, StageName: str, ApiId: str):
        r"""Resets all authorizer cache entries on a stage. Supported only for HTTP APIs.

        :param self:
        :param StageName:  The stage name. Stage names can contain only alphanumeric characters, hyphens, and underscores, or be $default. Maximum length is 128 characters.<br/>ApiId:  The API identifier.<br/>
        :return:         """
        pass

    def get_api(self, ApiId: str) -> GetApiResponse:
        r"""Gets an Api resource.

        :param self:
        :param ApiId:  The API identifier.<br/>
        :return: Warnings:  The warning messages reported when failonwarnings is turned on during API import.<br/>Version:  A version identifier for the API.<br/>Tags:  A collection of tags associated with the API.<br/>RouteSelectionExpression:  The route selection expression for the API. For HTTP APIs, the routeSelectionExpression must be ${request.method} ${request.path}. If not provided, this will be the default for HTTP APIs. This property is required for WebSocket APIs.<br/>ProtocolType:  The API protocol.<br/>Name:  The name of the API.<br/>ImportInfo:  The validation information during API import. This may include particular properties of your OpenAPI definition which are ignored during import. Supported only for HTTP APIs.<br/>DisableExecuteApiEndpoint:  Specifies whether clients can invoke your API by using the default execute-api endpoint. By default, clients can invoke your API with the default https://{api_id}.execute-api.{region}.amazonaws.com endpoint. To require that clients use a custom domain name to invoke your API, disable the default endpoint.<br/>DisableSchemaValidation:  Avoid validating models when creating a deployment. Supported only for WebSocket APIs.<br/>Description:  The description of the API.<br/>CreatedDate:  The timestamp when the API was created.<br/>CorsConfiguration:  A CORS configuration. Supported only for HTTP APIs.:<br/>ApiKeySelectionExpression:  An API key selection expression. Supported only for WebSocket APIs. See <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions">API Key Selection Expressions</a>.<br/>ApiId:  The API ID.<br/>ApiGatewayManaged:  Specifies whether an API is managed by API Gateway. You can't update or delete a managed API by using API Gateway. A managed API can be deleted only through the tooling or service that created it.<br/>ApiEndpoint:  The URI of the API, of the form {api-id}.execute-api.{region}.amazonaws.com. The stage name is typically appended to this URI to form a complete path to a deployed API stage.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxAge</i> The number of seconds that the browser should cache preflight request results. Supported only for HTTP APIs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExposeHeaders</i> Represents a collection of exposed headers. Supported only for HTTP APIs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowOrigins</i> Represents a collection of allowed origins. Supported only for HTTP APIs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowMethods</i> Represents a collection of allowed HTTP methods. Supported only for HTTP APIs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowHeaders</i> Represents a collection of allowed headers. Supported only for HTTP APIs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowCredentials</i> Specifies whether credentials are included in the CORS request. Supported only for HTTP APIs.<br/>        """
        pass

    def get_api_mapping(self, DomainName: str, ApiMappingId: str) -> GetApiMappingResponse:
        r"""Gets an API mapping.

        :param self:
        :param DomainName:  The domain name.<br/>ApiMappingId:  The API mapping identifier.<br/>
        :return: Stage:  The API stage.<br/>ApiMappingKey:  The API mapping key.<br/>ApiMappingId:  The API mapping identifier.<br/>ApiId:  The API identifier.<br/>        """
        pass

    def get_api_mappings(self, DomainName: str, MaxResults: str=None, NextToken: str=None) -> GetApiMappingsResponse:
        r"""Gets API mappings.

        :param self:
        :param NextToken:  The next page of elements from this collection. Not valid for the last element of the collection.<br/>MaxResults:  The maximum number of elements to be returned for this resource.<br/>DomainName:  The domain name.<br/>
        :return: NextToken:  The next page of elements from this collection. Not valid for the last element of the collection.<br/>Items:  The elements from this collection.<br/>        """
        pass

    def get_apis(self, MaxResults: str=None, NextToken: str=None) -> GetApisResponse:
        r"""Gets a collection of Api resources.

        :param self:
        :param NextToken:  The next page of elements from this collection. Not valid for the last element of the collection.<br/>MaxResults:  The maximum number of elements to be returned for this resource.<br/>
        :return: NextToken:  The next page of elements from this collection. Not valid for the last element of the collection.<br/>Items:  The elements from this collection.<br/>        """
        pass

    def get_authorizer(self, AuthorizerId: str, ApiId: str) -> GetAuthorizerResponse:
        r"""Gets an Authorizer.

        :param self:
        :param AuthorizerId:  The authorizer identifier.<br/>ApiId:  The API identifier.<br/>
        :return: Name:  The name of the authorizer.<br/>JwtConfiguration:  Represents the configuration of a JWT authorizer. Required for the JWT authorizer type. Supported only for HTTP APIs.:<br/>IdentityValidationExpression:  The validation expression does not apply to the REQUEST authorizer.<br/>IdentitySource:  The identity source for which authorization is requested. For a REQUEST authorizer, this is optional. The value is a set of one or more mapping expressions of the specified request parameters. The identity source can be headers, query string parameters, stage variables, and context parameters. For example, if an Auth header and a Name query string parameter are defined as identity sources, this value is route.request.header.Auth, route.request.querystring.Name for WebSocket APIs. For HTTP APIs, use selection expressions prefixed with $, for example, $request.header.Auth, $request.querystring.Name. These parameters are used to perform runtime validation for Lambda-based authorizers by verifying all of the identity-related request parameters are present in the request, not null, and non-empty. Only when this is true does the authorizer invoke the authorizer Lambda function. Otherwise, it returns a 401 Unauthorized response without calling the Lambda function. For HTTP APIs, identity sources are also used as the cache key when caching is enabled. To learn more, see <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html">Working with AWS Lambda authorizers for HTTP APIs</a>. For JWT, a single entry that specifies where to extract the JSON Web Token (JWT) from inbound requests. Currently only header-based and query parameter-based selections are supported, for example $request.header.Authorization.<br/>EnableSimpleResponses:  Specifies whether a Lambda authorizer returns a response in a simple format. If enabled, the Lambda authorizer can return a boolean value instead of an IAM policy. Supported only for HTTP APIs. To learn more, see <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html">Working with AWS Lambda authorizers for HTTP APIs</a><br/>AuthorizerUri:  The authorizer's Uniform Resource Identifier (URI). For REQUEST authorizers, this must be a well-formed Lambda function URI, for example, arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:<replaceable>{account_id}</replaceable>:function:<replaceable>{lambda_function_name}</replaceable>/invocations. In general, the URI has this form: arn:aws:apigateway:<replaceable>{region}</replaceable>:lambda:path/<replaceable>{service_api}</replaceable>
               , where <replaceable></replaceable>{region} is the same as the region hosting the Lambda function, path indicates that the remaining substring in the URI should be treated as the path to the resource, including the initial /. For Lambda functions, this is usually of the form /2015-03-31/functions/[FunctionARN]/invocations. Supported only for REQUEST authorizers.<br/>AuthorizerType:  The authorizer type. Specify REQUEST for a Lambda function using incoming request parameters. Specify JWT to use JSON Web Tokens (supported only for HTTP APIs).<br/>AuthorizerResultTtlInSeconds:  The time to live (TTL) for cached authorizer results, in seconds. If it equals 0, authorization caching is disabled. If it is greater than 0, API Gateway caches authorizer responses. The maximum value is 3600, or 1 hour. Supported only for HTTP API Lambda authorizers.<br/>AuthorizerPayloadFormatVersion:  Specifies the format of the payload sent to an HTTP API Lambda authorizer. Required for HTTP API Lambda authorizers. Supported values are 1.0 and 2.0. To learn more, see <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html">Working with AWS Lambda authorizers for HTTP APIs</a>.<br/>AuthorizerId:  The authorizer identifier.<br/>AuthorizerCredentialsArn:  Specifies the required credentials as an IAM role for API Gateway to invoke the authorizer. To specify an IAM role for API Gateway to assume, use the role's Amazon Resource Name (ARN). To use resource-based permissions on the Lambda function, don't specify this parameter. Supported only for REQUEST authorizers.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Issuer</i> The base domain of the identity provider that issues JSON Web Tokens. For example, an Amazon Cognito user pool has the following format: https://cognito-idp.<replaceable>{region}</replaceable>.amazonaws.com/<replaceable>{userPoolId}</replaceable>
               . Required for the JWT authorizer type. Supported only for HTTP APIs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Audience</i> A list of the intended recipients of the JWT. A valid JWT must provide an aud that matches at least one entry in this list. See <a href="https://tools.ietf.org/html/rfc7519#section-4.1.3">RFC 7519</a>. Supported only for HTTP APIs.<br/>        """
        pass

    def get_authorizers(self, ApiId: str, MaxResults: str=None, NextToken: str=None) -> GetAuthorizersResponse:
        r"""Gets the Authorizers for an API.

        :param self:
        :param NextToken:  The next page of elements from this collection. Not valid for the last element of the collection.<br/>MaxResults:  The maximum number of elements to be returned for this resource.<br/>ApiId:  The API identifier.<br/>
        :return: NextToken:  The next page of elements from this collection. Not valid for the last element of the collection.<br/>Items:  The elements from this collection.<br/>        """
        pass

    def get_deployment(self, DeploymentId: str, ApiId: str) -> GetDeploymentResponse:
        r"""Gets a Deployment.

        :param self:
        :param DeploymentId:  The deployment ID.<br/>ApiId:  The API identifier.<br/>
        :return: Description:  The description for the deployment.<br/>DeploymentStatusMessage:  May contain additional feedback on the status of an API deployment.<br/>DeploymentStatus:  The status of the deployment: PENDING, FAILED, or SUCCEEDED.<br/>DeploymentId:  The identifier for the deployment.<br/>CreatedDate:  The date and time when the Deployment resource was created.<br/>AutoDeployed:  Specifies whether a deployment was automatically released.<br/>        """
        pass

    def get_deployments(self, ApiId: str, MaxResults: str=None, NextToken: str=None) -> GetDeploymentsResponse:
        r"""Gets the Deployments for an API.

        :param self:
        :param NextToken:  The next page of elements from this collection. Not valid for the last element of the collection.<br/>MaxResults:  The maximum number of elements to be returned for this resource.<br/>ApiId:  The API identifier.<br/>
        :return: NextToken:  The next page of elements from this collection. Not valid for the last element of the collection.<br/>Items:  The elements from this collection.<br/>        """
        pass

    def get_domain_name(self, DomainName: str) -> GetDomainNameResponse:
        r"""Gets a domain name.

        :param self:
        :param DomainName:  The domain name.<br/>
        :return: Tags:  The collection of tags associated with a domain name.<br/>MutualTlsAuthentication:  The mutual TLS authentication configuration for a custom domain name.:<br/>DomainNameConfigurations:  The domain name configurations.<br/>DomainName:  The name of the DomainName resource.<br/>ApiMappingSelectionExpression:  The API mapping selection expression.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TruststoreWarnings</i> A list of warnings that API Gateway returns while processing your truststore. Invalid certificates produce warnings. Mutual TLS is still enabled, but some clients might not be able to access your API. To resolve warnings, upload a new truststore to S3, and then update you domain name to use the new version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TruststoreVersion</i> The version of the S3 object that contains your truststore. To specify a version, you must have versioning enabled for the S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TruststoreUri</i> An Amazon S3 URL that specifies the truststore for mutual TLS authentication, for example, s3://<replaceable>bucket-name</replaceable>/<replaceable>key-name</replaceable>. The truststore can contain certificates from public or private certificate authorities. To update the truststore, upload a new version to S3, and then update your custom domain name to use the new version. To update the truststore, you must have permissions to access the S3 object.<br/>        """
        pass

    def get_domain_names(self, MaxResults: str=None, NextToken: str=None) -> GetDomainNamesResponse:
        r"""Gets the domain names for an AWS account.

        :param self:
        :param NextToken:  The next page of elements from this collection. Not valid for the last element of the collection.<br/>MaxResults:  The maximum number of elements to be returned for this resource.<br/>
        :return: NextToken:  The next page of elements from this collection. Not valid for the last element of the collection.<br/>Items:  The elements from this collection.<br/>        """
        pass

    def get_integration(self, IntegrationId: str, ApiId: str) -> GetIntegrationResult:
        r"""Gets an Integration.

        :param self:
        :param IntegrationId:  The integration ID.<br/>ApiId:  The API identifier.<br/>
        :return: TlsConfig:  The TLS configuration for a private integration. If you specify a TLS configuration, private integration traffic uses the HTTPS protocol. Supported only for HTTP APIs.:<br/>TimeoutInMillis:  Custom timeout between 50 and 29,000 milliseconds for WebSocket APIs and between 50 and 30,000 milliseconds for HTTP APIs. The default timeout is 29 seconds for WebSocket APIs and 30 seconds for HTTP APIs.<br/>TemplateSelectionExpression:  The template selection expression for the integration. Supported only for WebSocket APIs.<br/>ResponseParameters:  Supported only for HTTP APIs. You use response parameters to transform the HTTP response from a backend integration before returning the response to clients. Specify a key-value map from a selection key to response parameters. The selection key must be a valid HTTP status code within the range of 200-599. Response parameters are a key-value map. The key must match pattern &lt;action&gt;:&lt;header&gt;.&lt;location&gt; or overwrite.statuscode. The action can be append, overwrite or remove. The value can be a static value, or map to response data, stage variables, or context variables that are evaluated at runtime. To learn more, see <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html">Transforming API requests and responses</a>.<br/>RequestTemplates:  Represents a map of Velocity templates that are applied on the request payload based on the value of the Content-Type header sent by the client. The content type value is the key in this map, and the template (as a String) is the value. Supported only for WebSocket APIs.<br/>RequestParameters:  For WebSocket APIs, a key-value map specifying request parameters that are passed from the method request to the backend. The key is an integration request parameter name and the associated value is a method request parameter value or static value that must be enclosed within single quotes and pre-encoded as required by the backend. The method request parameter value must match the pattern of method.request.<replaceable>{location}</replaceable>.<replaceable>{name}</replaceable>
          , where 
            <replaceable>{location}</replaceable>
           is querystring, path, or header; and 
            <replaceable>{name}</replaceable>
           must be a valid and unique method request parameter name. For HTTP API integrations with a specified integrationSubtype, request parameters are a key-value map specifying parameters that are passed to AWS_PROXY integrations. You can provide static values, or map request data, stage variables, or context variables that are evaluated at runtime. To learn more, see <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-aws-services.html">Working with AWS service integrations for HTTP APIs</a>. For HTTP API itegrations, without a specified integrationSubtype request parameters are a key-value map specifying how to transform HTTP requests before sending them to backend integrations. The key should follow the pattern &lt;action&gt;:&lt;header|querystring|path&gt;.&lt;location&gt;. The action can be append, overwrite or remove. For values, you can provide static values, or map request data, stage variables, or context variables that are evaluated at runtime. To learn more, see <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html">Transforming API requests and responses</a>.<br/>PayloadFormatVersion:  Specifies the format of the payload sent to an integration. Required for HTTP APIs.<br/>PassthroughBehavior:  Specifies the pass-through behavior for incoming requests based on the Content-Type header in the request, and the available mapping templates specified as the requestTemplates property on the Integration resource. There are three valid values: WHEN_NO_MATCH, WHEN_NO_TEMPLATES, and NEVER. Supported only for WebSocket APIs. WHEN_NO_MATCH passes the request body for unmapped content types through to the integration backend without transformation. NEVER rejects unmapped content types with an HTTP 415 Unsupported Media Type response. WHEN_NO_TEMPLATES allows pass-through when the integration has no content types mapped to templates. However, if there is at least one content type defined, unmapped content types will be rejected with the same HTTP 415 Unsupported Media Type response.<br/>IntegrationUri:  For a Lambda integration, specify the URI of a Lambda function. For an HTTP integration, specify a fully-qualified URL. For an HTTP API private integration, specify the ARN of an Application Load Balancer listener, Network Load Balancer listener, or AWS Cloud Map service. If you specify the ARN of an AWS Cloud Map service, API Gateway uses DiscoverInstances to identify resources. You can use query parameters to target specific resources. To learn more, see <a href="https://docs.aws.amazon.com/cloud-map/latest/api/API_DiscoverInstances.html">DiscoverInstances</a>. For private integrations, all resources must be owned by the same AWS account.<br/>IntegrationType:  The integration type of an integration. One of the following: AWS: for integrating the route or method request with an AWS service action, including the Lambda function-invoking action. With the Lambda function-invoking action, this is referred to as the Lambda custom integration. With any other AWS service action, this is known as AWS integration. Supported only for WebSocket APIs. AWS_PROXY: for integrating the route or method request with a Lambda function or other AWS service action. This integration is also referred to as a Lambda proxy integration. HTTP: for integrating the route or method request with an HTTP endpoint. This integration is also referred to as the HTTP custom integration. Supported only for WebSocket APIs. HTTP_PROXY: for integrating the route or method request with an HTTP endpoint, with the client request passed through as-is. This is also referred to as HTTP proxy integration. MOCK: for integrating the route or method request with API Gateway as a "loopback" endpoint without invoking any backend. Supported only for WebSocket APIs.<br/>IntegrationSubtype:  Supported only for HTTP API AWS_PROXY integrations. Specifies the AWS service action to invoke. To learn more, see <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-aws-services-reference.html">Integration subtype reference</a>.<br/>IntegrationResponseSelectionExpression:  The integration response selection expression for the integration. Supported only for WebSocket APIs. See <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-integration-response-selection-expressions">Integration Response Selection Expressions</a>.<br/>IntegrationMethod:  Specifies the integration's HTTP method type.<br/>IntegrationId:  Represents the identifier of an integration.<br/>Description:  Represents the description of an integration.<br/>CredentialsArn:  Specifies the credentials required for the integration, if any. For AWS integrations, three options are available. To specify an IAM Role for API Gateway to assume, use the role's Amazon Resource Name (ARN). To require that the caller's identity be passed through from the request, specify the string arn:aws:iam::*:user/*. To use resource-based permissions on supported AWS services, specify null.<br/>ContentHandlingStrategy:  Supported only for WebSocket APIs. Specifies how to handle response payload content type conversions. Supported values are CONVERT_TO_BINARY and CONVERT_TO_TEXT, with the following behaviors: CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded string to the corresponding binary blob. CONVERT_TO_TEXT: Converts a response payload from a binary blob to a Base64-encoded string. If this property is not defined, the response payload will be passed through from the integration response to the route response or method response without modification.<br/>ConnectionType:  The type of the network connection to the integration endpoint. Specify INTERNET for connections through the public routable internet or VPC_LINK for private connections between API Gateway and resources in a VPC. The default value is INTERNET.<br/>ConnectionId:  The ID of the VPC link for a private integration. Supported only for HTTP APIs.<br/>ApiGatewayManaged:  Specifies whether an integration is managed by API Gateway. If you created an API using using quick create, the resulting integration is managed by API Gateway. You can update a managed integration, but you can't delete it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerNameToVerify</i> If you specify a server name, API Gateway uses it to verify the hostname on the integration's certificate. The server name is also included in the TLS handshake to support Server Name Indication (SNI) or virtual hosting.<br/>        """
        pass

    def get_integration_response(self, IntegrationResponseId: str, IntegrationId: str, ApiId: str) -> GetIntegrationResponseResponse:
        r"""Gets an IntegrationResponses.

        :param self:
        :param IntegrationResponseId:  The integration response ID.<br/>IntegrationId:  The integration ID.<br/>ApiId:  The API identifier.<br/>
        :return: TemplateSelectionExpression:  The template selection expressions for the integration response.<br/>ResponseTemplates:  The collection of response templates for the integration response as a string-to-string map of key-value pairs. Response templates are represented as a key/value map, with a content-type as the key and a template as the value.<br/>ResponseParameters:  A key-value map specifying response parameters that are passed to the method response from the backend. The key is a method response header parameter name and the mapped value is an integration response header value, a static value enclosed within a pair of single quotes, or a JSON expression from the integration response body. The mapping key must match the pattern of method.response.header.{name}, where name is a valid and unique header name. The mapped non-static value must match the pattern of integration.response.header.{name} or integration.response.body.{JSON-expression}, where name is a valid and unique response header name and JSON-expression is a valid JSON expression without the $ prefix.<br/>IntegrationResponseKey:  The integration response key.<br/>IntegrationResponseId:  The integration response ID.<br/>ContentHandlingStrategy:  Supported only for WebSocket APIs. Specifies how to handle response payload content type conversions. Supported values are CONVERT_TO_BINARY and CONVERT_TO_TEXT, with the following behaviors: CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded string to the corresponding binary blob. CONVERT_TO_TEXT: Converts a response payload from a binary blob to a Base64-encoded string. If this property is not defined, the response payload will be passed through from the integration response to the route response or method response without modification.<br/>        """
        pass

    def get_integration_responses(self, IntegrationId: str, ApiId: str, MaxResults: str=None, NextToken: str=None) -> GetIntegrationResponsesResponse:
        r"""Gets the IntegrationResponses for an Integration.

        :param self:
        :param NextToken:  The next page of elements from this collection. Not valid for the last element of the collection.<br/>MaxResults:  The maximum number of elements to be returned for this resource.<br/>IntegrationId:  The integration ID.<br/>ApiId:  The API identifier.<br/>
        :return: NextToken:  The next page of elements from this collection. Not valid for the last element of the collection.<br/>Items:  The elements from this collection.<br/>        """
        pass

    def get_integrations(self, ApiId: str, MaxResults: str=None, NextToken: str=None) -> GetIntegrationsResponse:
        r"""Gets the Integrations for an API.

        :param self:
        :param NextToken:  The next page of elements from this collection. Not valid for the last element of the collection.<br/>MaxResults:  The maximum number of elements to be returned for this resource.<br/>ApiId:  The API identifier.<br/>
        :return: NextToken:  The next page of elements from this collection. Not valid for the last element of the collection.<br/>Items:  The elements from this collection.<br/>        """
        pass

    def get_model(self, ModelId: str, ApiId: str) -> GetModelResponse:
        r"""Gets a Model.

        :param self:
        :param ModelId:  The model ID.<br/>ApiId:  The API identifier.<br/>
        :return: Schema:  The schema for the model. For application/json models, this should be JSON schema draft 4 model.<br/>Name:  The name of the model. Must be alphanumeric.<br/>ModelId:  The model identifier.<br/>Description:  The description of the model.<br/>ContentType:  The content-type for the model, for example, "application/json".<br/>        """
        pass

    def get_model_template(self, ModelId: str, ApiId: str) -> GetModelTemplateResponse:
        r"""Gets a model template.

        :param self:
        :param ModelId:  The model ID.<br/>ApiId:  The API identifier.<br/>
        :return: Value:  The template value.<br/>        """
        pass

    def get_models(self, ApiId: str, MaxResults: str=None, NextToken: str=None) -> GetModelsResponse:
        r"""Gets the Models for an API.

        :param self:
        :param NextToken:  The next page of elements from this collection. Not valid for the last element of the collection.<br/>MaxResults:  The maximum number of elements to be returned for this resource.<br/>ApiId:  The API identifier.<br/>
        :return: NextToken:  The next page of elements from this collection. Not valid for the last element of the collection.<br/>Items:  The elements from this collection.<br/>        """
        pass

    def get_route(self, RouteId: str, ApiId: str) -> GetRouteResult:
        r"""Gets a Route.

        :param self:
        :param RouteId:  The route ID.<br/>ApiId:  The API identifier.<br/>
        :return: Target:  The target for the route.<br/>RouteResponseSelectionExpression:  The route response selection expression for the route. Supported only for WebSocket APIs.<br/>RouteKey:  The route key for the route.<br/>RouteId:  The route ID.<br/>RequestParameters:  The request parameters for the route. Supported only for WebSocket APIs.<br/>RequestModels:  The request models for the route. Supported only for WebSocket APIs.<br/>OperationName:  The operation name for the route.<br/>ModelSelectionExpression:  The model selection expression for the route. Supported only for WebSocket APIs.<br/>AuthorizerId:  The identifier of the Authorizer resource to be associated with this route. The authorizer identifier is generated by API Gateway when you created the authorizer.<br/>AuthorizationType:  The authorization type for the route. For WebSocket APIs, valid values are NONE for open access, AWS_IAM for using AWS IAM permissions, and CUSTOM for using a Lambda authorizer For HTTP APIs, valid values are NONE for open access, JWT for using JSON Web Tokens, AWS_IAM for using AWS IAM permissions, and CUSTOM for using a Lambda authorizer.<br/>AuthorizationScopes:  A list of authorization scopes configured on a route. The scopes are used with a JWT authorizer to authorize the method invocation. The authorization works by matching the route scopes against the scopes parsed from the access token in the incoming request. The method invocation is authorized if any route scope matches a claimed scope in the access token. Otherwise, the invocation is not authorized. When the route scope is configured, the client must provide an access token instead of an identity token for authorization purposes.<br/>ApiKeyRequired:  Specifies whether an API key is required for this route. Supported only for WebSocket APIs.<br/>ApiGatewayManaged:  Specifies whether a route is managed by API Gateway. If you created an API using quick create, the $default route is managed by API Gateway. You can't modify the $default route key.<br/>        """
        pass

    def get_route_response(self, RouteResponseId: str, RouteId: str, ApiId: str) -> GetRouteResponseResponse:
        r"""Gets a RouteResponse.

        :param self:
        :param RouteResponseId:  The route response ID.<br/>RouteId:  The route ID.<br/>ApiId:  The API identifier.<br/>
        :return: RouteResponseKey:  Represents the route response key of a route response.<br/>RouteResponseId:  Represents the identifier of a route response.<br/>ResponseParameters:  Represents the response parameters of a route response.<br/>ResponseModels:  Represents the response models of a route response.<br/>ModelSelectionExpression:  Represents the model selection expression of a route response. Supported only for WebSocket APIs.<br/>        """
        pass

    def get_route_responses(self, RouteId: str, ApiId: str, MaxResults: str=None, NextToken: str=None) -> GetRouteResponsesResponse:
        r"""Gets the RouteResponses for a Route.

        :param self:
        :param RouteId:  The route ID.<br/>NextToken:  The next page of elements from this collection. Not valid for the last element of the collection.<br/>MaxResults:  The maximum number of elements to be returned for this resource.<br/>ApiId:  The API identifier.<br/>
        :return: NextToken:  The next page of elements from this collection. Not valid for the last element of the collection.<br/>Items:  The elements from this collection.<br/>        """
        pass

    def get_routes(self, ApiId: str, MaxResults: str=None, NextToken: str=None) -> GetRoutesResponse:
        r"""Gets the Routes for an API.

        :param self:
        :param NextToken:  The next page of elements from this collection. Not valid for the last element of the collection.<br/>MaxResults:  The maximum number of elements to be returned for this resource.<br/>ApiId:  The API identifier.<br/>
        :return: NextToken:  The next page of elements from this collection. Not valid for the last element of the collection.<br/>Items:  The elements from this collection.<br/>        """
        pass

    def get_stage(self, StageName: str, ApiId: str) -> GetStageResponse:
        r"""Gets a Stage.

        :param self:
        :param StageName:  The stage name. Stage names can only contain alphanumeric characters, hyphens, and underscores. Maximum length is 128 characters.<br/>ApiId:  The API identifier.<br/>
        :return: Tags:  The collection of tags. Each tag element is associated with a given resource.<br/>StageVariables:  A map that defines the stage variables for a stage resource. Variable names can have alphanumeric and underscore characters, and the values must match [A-Za-z0-9-._~:/?#&amp;=,]+.<br/>StageName:  The name of the stage.<br/>RouteSettings:  Route settings for the stage, by routeKey.<br/>LastUpdatedDate:  The timestamp when the stage was last updated.<br/>LastDeploymentStatusMessage:  Describes the status of the last deployment of a stage. Supported only for stages with autoDeploy enabled.<br/>Description:  The description of the stage.<br/>DeploymentId:  The identifier of the Deployment that the Stage is associated with. Can't be updated if autoDeploy is enabled.<br/>DefaultRouteSettings:  Default route settings for the stage.:<br/>CreatedDate:  The timestamp when the stage was created.<br/>ClientCertificateId:  The identifier of a client certificate for a Stage. Supported only for WebSocket APIs.<br/>AutoDeploy:  Specifies whether updates to an API automatically trigger a new deployment. The default value is false.<br/>ApiGatewayManaged:  Specifies whether a stage is managed by API Gateway. If you created an API using quick create, the $default stage is managed by API Gateway. You can't modify the $default stage.<br/>AccessLogSettings:  Settings for logging access in this stage.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Format</i> A single line format of the access logs of data, as specified by selected $context variables. The format must include at least $context.requestId.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DestinationArn</i> The ARN of the CloudWatch Logs log group to receive access logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ThrottlingRateLimit</i> Specifies the throttling rate limit.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ThrottlingBurstLimit</i> Specifies the throttling burst limit.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LoggingLevel</i> Specifies the logging level for this route: INFO, ERROR, or OFF. This property affects the log entries pushed to Amazon CloudWatch Logs. Supported only for WebSocket APIs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DetailedMetricsEnabled</i> Specifies whether detailed metrics are enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataTraceEnabled</i> Specifies whether (true) or not (false) data trace logging is enabled for this route. This property affects the log entries pushed to Amazon CloudWatch Logs. Supported only for WebSocket APIs.<br/>        """
        pass

    def get_stages(self, ApiId: str, MaxResults: str=None, NextToken: str=None) -> GetStagesResponse:
        r"""Gets the Stages for an API.

        :param self:
        :param NextToken:  The next page of elements from this collection. Not valid for the last element of the collection.<br/>MaxResults:  The maximum number of elements to be returned for this resource.<br/>ApiId:  The API identifier.<br/>
        :return: NextToken:  The next page of elements from this collection. Not valid for the last element of the collection.<br/>Items:  The elements from this collection.<br/>        """
        pass

    def get_tags(self, ResourceArn: str) -> GetTagsResponse:
        r"""Gets a collection of Tag resources.

        :param self:
        :param ResourceArn:  The resource ARN for the tag.<br/>
        :return: Tags:  Represents a collection of tags associated with the resource.<br/>        """
        pass

    def get_vpc_link(self, VpcLinkId: str) -> GetVpcLinkResponse:
        r"""Gets a VPC link.

        :param self:
        :param VpcLinkId:  The ID of the VPC link.<br/>
        :return: VpcLinkVersion:  The version of the VPC link.<br/>VpcLinkStatusMessage:  A message summarizing the cause of the status of the VPC link.<br/>VpcLinkStatus:  The status of the VPC link.<br/>VpcLinkId:  The ID of the VPC link.<br/>Tags:  Tags for the VPC link.<br/>SubnetIds:  A list of subnet IDs to include in the VPC link.<br/>SecurityGroupIds:  A list of security group IDs for the VPC link.<br/>Name:  The name of the VPC link.<br/>CreatedDate:  The timestamp when the VPC link was created.<br/>        """
        pass

    def get_vpc_links(self, MaxResults: str=None, NextToken: str=None) -> GetVpcLinksResponse:
        r"""Gets a collection of VPC links.

        :param self:
        :param NextToken:  The next page of elements from this collection. Not valid for the last element of the collection.<br/>MaxResults:  The maximum number of elements to be returned for this resource.<br/>
        :return: NextToken:  The next page of elements from this collection. Not valid for the last element of the collection.<br/>Items:  A collection of VPC links.<br/>        """
        pass

    def import_api(self, Body: str, Basepath: str=None, FailOnWarnings: __boolean=None) -> ImportApiResponse:
        r"""Imports an API.

        :param self:
        :param FailOnWarnings:  Specifies whether to rollback the API creation when a warning is encountered. By default, API creation continues if a warning is encountered.<br/>Body:  The OpenAPI definition. Supported only for HTTP APIs.<br/>Basepath:  Specifies how to interpret the base path of the API during import. Valid values are ignore, prepend, and split. The default value is ignore. To learn more, see <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-import-api-basePath.html">Set the OpenAPI basePath Property</a>. Supported only for HTTP APIs.<br/>
        :return: Warnings:  The warning messages reported when failonwarnings is turned on during API import.<br/>Version:  A version identifier for the API.<br/>Tags:  A collection of tags associated with the API.<br/>RouteSelectionExpression:  The route selection expression for the API. For HTTP APIs, the routeSelectionExpression must be ${request.method} ${request.path}. If not provided, this will be the default for HTTP APIs. This property is required for WebSocket APIs.<br/>ProtocolType:  The API protocol.<br/>Name:  The name of the API.<br/>ImportInfo:  The validation information during API import. This may include particular properties of your OpenAPI definition which are ignored during import. Supported only for HTTP APIs.<br/>DisableExecuteApiEndpoint:  Specifies whether clients can invoke your API by using the default execute-api endpoint. By default, clients can invoke your API with the default https://{api_id}.execute-api.{region}.amazonaws.com endpoint. To require that clients use a custom domain name to invoke your API, disable the default endpoint.<br/>DisableSchemaValidation:  Avoid validating models when creating a deployment. Supported only for WebSocket APIs.<br/>Description:  The description of the API.<br/>CreatedDate:  The timestamp when the API was created.<br/>CorsConfiguration:  A CORS configuration. Supported only for HTTP APIs.:<br/>ApiKeySelectionExpression:  An API key selection expression. Supported only for WebSocket APIs. See <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions">API Key Selection Expressions</a>.<br/>ApiId:  The API ID.<br/>ApiGatewayManaged:  Specifies whether an API is managed by API Gateway. You can't update or delete a managed API by using API Gateway. A managed API can be deleted only through the tooling or service that created it.<br/>ApiEndpoint:  The URI of the API, of the form {api-id}.execute-api.{region}.amazonaws.com. The stage name is typically appended to this URI to form a complete path to a deployed API stage.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxAge</i> The number of seconds that the browser should cache preflight request results. Supported only for HTTP APIs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExposeHeaders</i> Represents a collection of exposed headers. Supported only for HTTP APIs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowOrigins</i> Represents a collection of allowed origins. Supported only for HTTP APIs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowMethods</i> Represents a collection of allowed HTTP methods. Supported only for HTTP APIs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowHeaders</i> Represents a collection of allowed headers. Supported only for HTTP APIs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowCredentials</i> Specifies whether credentials are included in the CORS request. Supported only for HTTP APIs.<br/>        """
        pass

    def reimport_api(self, Body: str, ApiId: str, Basepath: str=None, FailOnWarnings: __boolean=None) -> ReimportApiResponse:
        r"""Puts an Api resource.

        :param self:
        :param FailOnWarnings:  Specifies whether to rollback the API creation when a warning is encountered. By default, API creation continues if a warning is encountered.<br/>Body:  The OpenAPI definition. Supported only for HTTP APIs.<br/>Basepath:  Specifies how to interpret the base path of the API during import. Valid values are ignore, prepend, and split. The default value is ignore. To learn more, see <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-import-api-basePath.html">Set the OpenAPI basePath Property</a>. Supported only for HTTP APIs.<br/>ApiId:  The API identifier.<br/>
        :return: Warnings:  The warning messages reported when failonwarnings is turned on during API import.<br/>Version:  A version identifier for the API.<br/>Tags:  A collection of tags associated with the API.<br/>RouteSelectionExpression:  The route selection expression for the API. For HTTP APIs, the routeSelectionExpression must be ${request.method} ${request.path}. If not provided, this will be the default for HTTP APIs. This property is required for WebSocket APIs.<br/>ProtocolType:  The API protocol.<br/>Name:  The name of the API.<br/>ImportInfo:  The validation information during API import. This may include particular properties of your OpenAPI definition which are ignored during import. Supported only for HTTP APIs.<br/>DisableExecuteApiEndpoint:  Specifies whether clients can invoke your API by using the default execute-api endpoint. By default, clients can invoke your API with the default https://{api_id}.execute-api.{region}.amazonaws.com endpoint. To require that clients use a custom domain name to invoke your API, disable the default endpoint.<br/>DisableSchemaValidation:  Avoid validating models when creating a deployment. Supported only for WebSocket APIs.<br/>Description:  The description of the API.<br/>CreatedDate:  The timestamp when the API was created.<br/>CorsConfiguration:  A CORS configuration. Supported only for HTTP APIs.:<br/>ApiKeySelectionExpression:  An API key selection expression. Supported only for WebSocket APIs. See <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions">API Key Selection Expressions</a>.<br/>ApiId:  The API ID.<br/>ApiGatewayManaged:  Specifies whether an API is managed by API Gateway. You can't update or delete a managed API by using API Gateway. A managed API can be deleted only through the tooling or service that created it.<br/>ApiEndpoint:  The URI of the API, of the form {api-id}.execute-api.{region}.amazonaws.com. The stage name is typically appended to this URI to form a complete path to a deployed API stage.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxAge</i> The number of seconds that the browser should cache preflight request results. Supported only for HTTP APIs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExposeHeaders</i> Represents a collection of exposed headers. Supported only for HTTP APIs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowOrigins</i> Represents a collection of allowed origins. Supported only for HTTP APIs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowMethods</i> Represents a collection of allowed HTTP methods. Supported only for HTTP APIs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowHeaders</i> Represents a collection of allowed headers. Supported only for HTTP APIs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowCredentials</i> Specifies whether credentials are included in the CORS request. Supported only for HTTP APIs.<br/>        """
        pass

    def tag_resource(self, ResourceArn: str, Tags: Tags=None) -> TagResourceResponse:
        r"""Creates a new Tag resource to represent a tag.

        :param self:
        :param Tags:  The collection of tags. Each tag element is associated with a given resource.<br/>ResourceArn:  The resource ARN for the tag.<br/>
        :return:         """
        pass

    def untag_resource(self, TagKeys: List[__string], ResourceArn: str):
        r"""Deletes a Tag.

        :param self:
        :param TagKeys:  The Tag keys to delete<br/>ResourceArn:  The resource ARN for the tag.<br/>
        :return:         """
        pass

    def update_api(self, ApiId: str, ApiKeySelectionExpression: str=None, CorsConfiguration: Cors=None, CredentialsArn: str=None, Description: str=None, DisableSchemaValidation: __boolean=None, DisableExecuteApiEndpoint: __boolean=None, Name: str=None, RouteKey: str=None, RouteSelectionExpression: str=None, Target: str=None, Version: str=None) -> UpdateApiResponse:
        r"""Updates an Api resource.

        :param self:
        :param Version:  A version identifier for the API.<br/>Target:  This property is part of quick create. For HTTP integrations, specify a fully qualified URL. For Lambda integrations, specify a function ARN. The type of the integration will be HTTP_PROXY or AWS_PROXY, respectively. The value provided updates the integration URI and integration type. You can update a quick-created target, but you can't remove it from an API. Supported only for HTTP APIs.<br/>RouteSelectionExpression:  The route selection expression for the API. For HTTP APIs, the routeSelectionExpression must be ${request.method} ${request.path}. If not provided, this will be the default for HTTP APIs. This property is required for WebSocket APIs.<br/>RouteKey:  This property is part of quick create. If not specified, the route created using quick create is kept. Otherwise, this value replaces the route key of the quick create route. Additional routes may still be added after the API is updated. Supported only for HTTP APIs.<br/>Name:  The name of the API.<br/>DisableExecuteApiEndpoint:  Specifies whether clients can invoke your API by using the default execute-api endpoint. By default, clients can invoke your API with the default https://{api_id}.execute-api.{region}.amazonaws.com endpoint. To require that clients use a custom domain name to invoke your API, disable the default endpoint.<br/>DisableSchemaValidation:  Avoid validating models when creating a deployment. Supported only for WebSocket APIs.<br/>Description:  The description of the API.<br/>CredentialsArn:  This property is part of quick create. It specifies the credentials required for the integration, if any. For a Lambda integration, three options are available. To specify an IAM Role for API Gateway to assume, use the role's Amazon Resource Name (ARN). To require that the caller's identity be passed through from the request, specify arn:aws:iam::*:user/*. To use resource-based permissions on supported AWS services, don't specify this parameter. Currently, this property is not used for HTTP integrations. If provided, this value replaces the credentials associated with the quick create integration. Supported only for HTTP APIs.<br/>CorsConfiguration:  A CORS configuration. Supported only for HTTP APIs.:<br/>ApiKeySelectionExpression:  An API key selection expression. Supported only for WebSocket APIs. See <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions">API Key Selection Expressions</a>.<br/>ApiId:  The API identifier.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxAge</i> The number of seconds that the browser should cache preflight request results. Supported only for HTTP APIs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExposeHeaders</i> Represents a collection of exposed headers. Supported only for HTTP APIs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowOrigins</i> Represents a collection of allowed origins. Supported only for HTTP APIs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowMethods</i> Represents a collection of allowed HTTP methods. Supported only for HTTP APIs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowHeaders</i> Represents a collection of allowed headers. Supported only for HTTP APIs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowCredentials</i> Specifies whether credentials are included in the CORS request. Supported only for HTTP APIs.<br/>
        :return: Warnings:  The warning messages reported when failonwarnings is turned on during API import.<br/>Version:  A version identifier for the API.<br/>Tags:  A collection of tags associated with the API.<br/>RouteSelectionExpression:  The route selection expression for the API. For HTTP APIs, the routeSelectionExpression must be ${request.method} ${request.path}. If not provided, this will be the default for HTTP APIs. This property is required for WebSocket APIs.<br/>ProtocolType:  The API protocol.<br/>Name:  The name of the API.<br/>ImportInfo:  The validation information during API import. This may include particular properties of your OpenAPI definition which are ignored during import. Supported only for HTTP APIs.<br/>DisableExecuteApiEndpoint:  Specifies whether clients can invoke your API by using the default execute-api endpoint. By default, clients can invoke your API with the default https://{api_id}.execute-api.{region}.amazonaws.com endpoint. To require that clients use a custom domain name to invoke your API, disable the default endpoint.<br/>DisableSchemaValidation:  Avoid validating models when creating a deployment. Supported only for WebSocket APIs.<br/>Description:  The description of the API.<br/>CreatedDate:  The timestamp when the API was created.<br/>CorsConfiguration:  A CORS configuration. Supported only for HTTP APIs.:<br/>ApiKeySelectionExpression:  An API key selection expression. Supported only for WebSocket APIs. See <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions">API Key Selection Expressions</a>.<br/>ApiId:  The API ID.<br/>ApiGatewayManaged:  Specifies whether an API is managed by API Gateway. You can't update or delete a managed API by using API Gateway. A managed API can be deleted only through the tooling or service that created it.<br/>ApiEndpoint:  The URI of the API, of the form {api-id}.execute-api.{region}.amazonaws.com. The stage name is typically appended to this URI to form a complete path to a deployed API stage.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxAge</i> The number of seconds that the browser should cache preflight request results. Supported only for HTTP APIs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExposeHeaders</i> Represents a collection of exposed headers. Supported only for HTTP APIs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowOrigins</i> Represents a collection of allowed origins. Supported only for HTTP APIs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowMethods</i> Represents a collection of allowed HTTP methods. Supported only for HTTP APIs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowHeaders</i> Represents a collection of allowed headers. Supported only for HTTP APIs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowCredentials</i> Specifies whether credentials are included in the CORS request. Supported only for HTTP APIs.<br/>        """
        pass

    def update_api_mapping(self, DomainName: str, ApiMappingId: str, ApiId: str, ApiMappingKey: str=None, Stage: str=None) -> UpdateApiMappingResponse:
        r"""The API mapping.

        :param self:
        :param Stage:  The API stage.<br/>DomainName:  The domain name.<br/>ApiMappingKey:  The API mapping key.<br/>ApiMappingId:  The API mapping identifier.<br/>ApiId:  The API identifier.<br/>
        :return: Stage:  The API stage.<br/>ApiMappingKey:  The API mapping key.<br/>ApiMappingId:  The API mapping identifier.<br/>ApiId:  The API identifier.<br/>        """
        pass

    def update_authorizer(self, AuthorizerId: str, ApiId: str, AuthorizerCredentialsArn: str=None, AuthorizerPayloadFormatVersion: str=None, AuthorizerResultTtlInSeconds: int=None, AuthorizerType: str=None, AuthorizerUri: str=None, EnableSimpleResponses: __boolean=None, IdentitySource: List[__string]=None, IdentityValidationExpression: str=None, JwtConfiguration: JWTConfiguration=None, Name: str=None) -> UpdateAuthorizerResponse:
        r"""Updates an Authorizer.

        :param self:
        :param Name:  The name of the authorizer.<br/>JwtConfiguration:  Represents the configuration of a JWT authorizer. Required for the JWT authorizer type. Supported only for HTTP APIs.:<br/>IdentityValidationExpression:  This parameter is not used.<br/>IdentitySource:  The identity source for which authorization is requested. For a REQUEST authorizer, this is optional. The value is a set of one or more mapping expressions of the specified request parameters. The identity source can be headers, query string parameters, stage variables, and context parameters. For example, if an Auth header and a Name query string parameter are defined as identity sources, this value is route.request.header.Auth, route.request.querystring.Name for WebSocket APIs. For HTTP APIs, use selection expressions prefixed with $, for example, $request.header.Auth, $request.querystring.Name. These parameters are used to perform runtime validation for Lambda-based authorizers by verifying all of the identity-related request parameters are present in the request, not null, and non-empty. Only when this is true does the authorizer invoke the authorizer Lambda function. Otherwise, it returns a 401 Unauthorized response without calling the Lambda function. For HTTP APIs, identity sources are also used as the cache key when caching is enabled. To learn more, see <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html">Working with AWS Lambda authorizers for HTTP APIs</a>. For JWT, a single entry that specifies where to extract the JSON Web Token (JWT) from inbound requests. Currently only header-based and query parameter-based selections are supported, for example $request.header.Authorization.<br/>EnableSimpleResponses:  Specifies whether a Lambda authorizer returns a response in a simple format. By default, a Lambda authorizer must return an IAM policy. If enabled, the Lambda authorizer can return a boolean value instead of an IAM policy. Supported only for HTTP APIs. To learn more, see <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html">Working with AWS Lambda authorizers for HTTP APIs</a><br/>AuthorizerUri:  The authorizer's Uniform Resource Identifier (URI). For REQUEST authorizers, this must be a well-formed Lambda function URI, for example, arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:<replaceable>{account_id}</replaceable>:function:<replaceable>{lambda_function_name}</replaceable>/invocations. In general, the URI has this form: arn:aws:apigateway:<replaceable>{region}</replaceable>:lambda:path/<replaceable>{service_api}</replaceable>
               , where <replaceable></replaceable>{region} is the same as the region hosting the Lambda function, path indicates that the remaining substring in the URI should be treated as the path to the resource, including the initial /. For Lambda functions, this is usually of the form /2015-03-31/functions/[FunctionARN]/invocations. Supported only for REQUEST authorizers.<br/>AuthorizerType:  The authorizer type. Specify REQUEST for a Lambda function using incoming request parameters. Specify JWT to use JSON Web Tokens (supported only for HTTP APIs).<br/>AuthorizerResultTtlInSeconds:  The time to live (TTL) for cached authorizer results, in seconds. If it equals 0, authorization caching is disabled. If it is greater than 0, API Gateway caches authorizer responses. The maximum value is 3600, or 1 hour. Supported only for HTTP API Lambda authorizers.<br/>AuthorizerPayloadFormatVersion:  Specifies the format of the payload sent to an HTTP API Lambda authorizer. Required for HTTP API Lambda authorizers. Supported values are 1.0 and 2.0. To learn more, see <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html">Working with AWS Lambda authorizers for HTTP APIs</a>.<br/>AuthorizerId:  The authorizer identifier.<br/>AuthorizerCredentialsArn:  Specifies the required credentials as an IAM role for API Gateway to invoke the authorizer. To specify an IAM role for API Gateway to assume, use the role's Amazon Resource Name (ARN). To use resource-based permissions on the Lambda function, don't specify this parameter.<br/>ApiId:  The API identifier.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Issuer</i> The base domain of the identity provider that issues JSON Web Tokens. For example, an Amazon Cognito user pool has the following format: https://cognito-idp.<replaceable>{region}</replaceable>.amazonaws.com/<replaceable>{userPoolId}</replaceable>
               . Required for the JWT authorizer type. Supported only for HTTP APIs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Audience</i> A list of the intended recipients of the JWT. A valid JWT must provide an aud that matches at least one entry in this list. See <a href="https://tools.ietf.org/html/rfc7519#section-4.1.3">RFC 7519</a>. Supported only for HTTP APIs.<br/>
        :return: Name:  The name of the authorizer.<br/>JwtConfiguration:  Represents the configuration of a JWT authorizer. Required for the JWT authorizer type. Supported only for HTTP APIs.:<br/>IdentityValidationExpression:  The validation expression does not apply to the REQUEST authorizer.<br/>IdentitySource:  The identity source for which authorization is requested. For a REQUEST authorizer, this is optional. The value is a set of one or more mapping expressions of the specified request parameters. The identity source can be headers, query string parameters, stage variables, and context parameters. For example, if an Auth header and a Name query string parameter are defined as identity sources, this value is route.request.header.Auth, route.request.querystring.Name for WebSocket APIs. For HTTP APIs, use selection expressions prefixed with $, for example, $request.header.Auth, $request.querystring.Name. These parameters are used to perform runtime validation for Lambda-based authorizers by verifying all of the identity-related request parameters are present in the request, not null, and non-empty. Only when this is true does the authorizer invoke the authorizer Lambda function. Otherwise, it returns a 401 Unauthorized response without calling the Lambda function. For HTTP APIs, identity sources are also used as the cache key when caching is enabled. To learn more, see <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html">Working with AWS Lambda authorizers for HTTP APIs</a>. For JWT, a single entry that specifies where to extract the JSON Web Token (JWT) from inbound requests. Currently only header-based and query parameter-based selections are supported, for example $request.header.Authorization.<br/>EnableSimpleResponses:  Specifies whether a Lambda authorizer returns a response in a simple format. If enabled, the Lambda authorizer can return a boolean value instead of an IAM policy. Supported only for HTTP APIs. To learn more, see <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html">Working with AWS Lambda authorizers for HTTP APIs</a><br/>AuthorizerUri:  The authorizer's Uniform Resource Identifier (URI). For REQUEST authorizers, this must be a well-formed Lambda function URI, for example, arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:<replaceable>{account_id}</replaceable>:function:<replaceable>{lambda_function_name}</replaceable>/invocations. In general, the URI has this form: arn:aws:apigateway:<replaceable>{region}</replaceable>:lambda:path/<replaceable>{service_api}</replaceable>
               , where <replaceable></replaceable>{region} is the same as the region hosting the Lambda function, path indicates that the remaining substring in the URI should be treated as the path to the resource, including the initial /. For Lambda functions, this is usually of the form /2015-03-31/functions/[FunctionARN]/invocations. Supported only for REQUEST authorizers.<br/>AuthorizerType:  The authorizer type. Specify REQUEST for a Lambda function using incoming request parameters. Specify JWT to use JSON Web Tokens (supported only for HTTP APIs).<br/>AuthorizerResultTtlInSeconds:  The time to live (TTL) for cached authorizer results, in seconds. If it equals 0, authorization caching is disabled. If it is greater than 0, API Gateway caches authorizer responses. The maximum value is 3600, or 1 hour. Supported only for HTTP API Lambda authorizers.<br/>AuthorizerPayloadFormatVersion:  Specifies the format of the payload sent to an HTTP API Lambda authorizer. Required for HTTP API Lambda authorizers. Supported values are 1.0 and 2.0. To learn more, see <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html">Working with AWS Lambda authorizers for HTTP APIs</a>.<br/>AuthorizerId:  The authorizer identifier.<br/>AuthorizerCredentialsArn:  Specifies the required credentials as an IAM role for API Gateway to invoke the authorizer. To specify an IAM role for API Gateway to assume, use the role's Amazon Resource Name (ARN). To use resource-based permissions on the Lambda function, don't specify this parameter. Supported only for REQUEST authorizers.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Issuer</i> The base domain of the identity provider that issues JSON Web Tokens. For example, an Amazon Cognito user pool has the following format: https://cognito-idp.<replaceable>{region}</replaceable>.amazonaws.com/<replaceable>{userPoolId}</replaceable>
               . Required for the JWT authorizer type. Supported only for HTTP APIs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Audience</i> A list of the intended recipients of the JWT. A valid JWT must provide an aud that matches at least one entry in this list. See <a href="https://tools.ietf.org/html/rfc7519#section-4.1.3">RFC 7519</a>. Supported only for HTTP APIs.<br/>        """
        pass

    def update_deployment(self, DeploymentId: str, ApiId: str, Description: str=None) -> UpdateDeploymentResponse:
        r"""Updates a Deployment.

        :param self:
        :param Description:  The description for the deployment resource.<br/>DeploymentId:  The deployment ID.<br/>ApiId:  The API identifier.<br/>
        :return: Description:  The description for the deployment.<br/>DeploymentStatusMessage:  May contain additional feedback on the status of an API deployment.<br/>DeploymentStatus:  The status of the deployment: PENDING, FAILED, or SUCCEEDED.<br/>DeploymentId:  The identifier for the deployment.<br/>CreatedDate:  The date and time when the Deployment resource was created.<br/>AutoDeployed:  Specifies whether a deployment was automatically released.<br/>        """
        pass

    def update_domain_name(self, DomainName: str, DomainNameConfigurations: List[DomainNameConfiguration]=None, MutualTlsAuthentication: MutualTlsAuthenticationInput=None) -> UpdateDomainNameResponse:
        r"""Updates a domain name.

        :param self:
        :param MutualTlsAuthentication:  The mutual TLS authentication configuration for a custom domain name.:<br/>DomainNameConfigurations:  The domain name configurations.<br/>DomainName:  The domain name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TruststoreVersion</i> The version of the S3 object that contains your truststore. To specify a version, you must have versioning enabled for the S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TruststoreUri</i> An Amazon S3 URL that specifies the truststore for mutual TLS authentication, for example, s3://<replaceable>bucket-name</replaceable>/<replaceable>key-name</replaceable>. The truststore can contain certificates from public or private certificate authorities. To update the truststore, upload a new version to S3, and then update your custom domain name to use the new version. To update the truststore, you must have permissions to access the S3 object.<br/>
        :return: Tags:  The collection of tags associated with a domain name.<br/>MutualTlsAuthentication:  The mutual TLS authentication configuration for a custom domain name.:<br/>DomainNameConfigurations:  The domain name configurations.<br/>DomainName:  The name of the DomainName resource.<br/>ApiMappingSelectionExpression:  The API mapping selection expression.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TruststoreWarnings</i> A list of warnings that API Gateway returns while processing your truststore. Invalid certificates produce warnings. Mutual TLS is still enabled, but some clients might not be able to access your API. To resolve warnings, upload a new truststore to S3, and then update you domain name to use the new version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TruststoreVersion</i> The version of the S3 object that contains your truststore. To specify a version, you must have versioning enabled for the S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TruststoreUri</i> An Amazon S3 URL that specifies the truststore for mutual TLS authentication, for example, s3://<replaceable>bucket-name</replaceable>/<replaceable>key-name</replaceable>. The truststore can contain certificates from public or private certificate authorities. To update the truststore, upload a new version to S3, and then update your custom domain name to use the new version. To update the truststore, you must have permissions to access the S3 object.<br/>        """
        pass

    def update_integration(self, IntegrationId: str, ApiId: str, ConnectionId: str=None, ConnectionType: str=None, ContentHandlingStrategy: str=None, CredentialsArn: str=None, Description: str=None, IntegrationMethod: str=None, IntegrationSubtype: str=None, IntegrationType: str=None, IntegrationUri: str=None, PassthroughBehavior: str=None, PayloadFormatVersion: str=None, RequestParameters: IntegrationParameters=None, RequestTemplates: TemplateMap=None, ResponseParameters: ResponseParameters=None, TemplateSelectionExpression: str=None, TimeoutInMillis: int=None, TlsConfig: TlsConfigInput=None) -> UpdateIntegrationResult:
        r"""Updates an Integration.

        :param self:
        :param TlsConfig:  The TLS configuration for a private integration. If you specify a TLS configuration, private integration traffic uses the HTTPS protocol. Supported only for HTTP APIs.:<br/>TimeoutInMillis:  Custom timeout between 50 and 29,000 milliseconds for WebSocket APIs and between 50 and 30,000 milliseconds for HTTP APIs. The default timeout is 29 seconds for WebSocket APIs and 30 seconds for HTTP APIs.<br/>TemplateSelectionExpression:  The template selection expression for the integration.<br/>ResponseParameters:  Supported only for HTTP APIs. You use response parameters to transform the HTTP response from a backend integration before returning the response to clients. Specify a key-value map from a selection key to response parameters. The selection key must be a valid HTTP status code within the range of 200-599. Response parameters are a key-value map. The key must match pattern &lt;action&gt;:&lt;header&gt;.&lt;location&gt; or overwrite.statuscode. The action can be append, overwrite or remove. The value can be a static value, or map to response data, stage variables, or context variables that are evaluated at runtime. To learn more, see <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html">Transforming API requests and responses</a>.<br/>RequestTemplates:  Represents a map of Velocity templates that are applied on the request payload based on the value of the Content-Type header sent by the client. The content type value is the key in this map, and the template (as a String) is the value. Supported only for WebSocket APIs.<br/>RequestParameters:  For WebSocket APIs, a key-value map specifying request parameters that are passed from the method request to the backend. The key is an integration request parameter name and the associated value is a method request parameter value or static value that must be enclosed within single quotes and pre-encoded as required by the backend. The method request parameter value must match the pattern of method.request.<replaceable>{location}</replaceable>.<replaceable>{name}</replaceable>
          , where 
            <replaceable>{location}</replaceable>
           is querystring, path, or header; and 
            <replaceable>{name}</replaceable>
           must be a valid and unique method request parameter name. For HTTP API integrations with a specified integrationSubtype, request parameters are a key-value map specifying parameters that are passed to AWS_PROXY integrations. You can provide static values, or map request data, stage variables, or context variables that are evaluated at runtime. To learn more, see <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-aws-services.html">Working with AWS service integrations for HTTP APIs</a>. For HTTP API integrations, without a specified integrationSubtype request parameters are a key-value map specifying how to transform HTTP requests before sending them to the backend. The key should follow the pattern &lt;action&gt;:&lt;header|querystring|path&gt;.&lt;location&gt; where action can be append, overwrite or remove. For values, you can provide static values, or map request data, stage variables, or context variables that are evaluated at runtime. To learn more, see <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.">Transforming API requests and responses</a>.<br/>PayloadFormatVersion:  Specifies the format of the payload sent to an integration. Required for HTTP APIs.<br/>PassthroughBehavior:  Specifies the pass-through behavior for incoming requests based on the Content-Type header in the request, and the available mapping templates specified as the requestTemplates property on the Integration resource. There are three valid values: WHEN_NO_MATCH, WHEN_NO_TEMPLATES, and NEVER. Supported only for WebSocket APIs. WHEN_NO_MATCH passes the request body for unmapped content types through to the integration backend without transformation. NEVER rejects unmapped content types with an HTTP 415 Unsupported Media Type response. WHEN_NO_TEMPLATES allows pass-through when the integration has no content types mapped to templates. However, if there is at least one content type defined, unmapped content types will be rejected with the same HTTP 415 Unsupported Media Type response.<br/>IntegrationUri:  For a Lambda integration, specify the URI of a Lambda function. For an HTTP integration, specify a fully-qualified URL. For an HTTP API private integration, specify the ARN of an Application Load Balancer listener, Network Load Balancer listener, or AWS Cloud Map service. If you specify the ARN of an AWS Cloud Map service, API Gateway uses DiscoverInstances to identify resources. You can use query parameters to target specific resources. To learn more, see <a href="https://docs.aws.amazon.com/cloud-map/latest/api/API_DiscoverInstances.html">DiscoverInstances</a>. For private integrations, all resources must be owned by the same AWS account.<br/>IntegrationType:  The integration type of an integration. One of the following: AWS: for integrating the route or method request with an AWS service action, including the Lambda function-invoking action. With the Lambda function-invoking action, this is referred to as the Lambda custom integration. With any other AWS service action, this is known as AWS integration. Supported only for WebSocket APIs. AWS_PROXY: for integrating the route or method request with a Lambda function or other AWS service action. This integration is also referred to as a Lambda proxy integration. HTTP: for integrating the route or method request with an HTTP endpoint. This integration is also referred to as the HTTP custom integration. Supported only for WebSocket APIs. HTTP_PROXY: for integrating the route or method request with an HTTP endpoint, with the client request passed through as-is. This is also referred to as HTTP proxy integration. For HTTP API private integrations, use an HTTP_PROXY integration. MOCK: for integrating the route or method request with API Gateway as a "loopback" endpoint without invoking any backend. Supported only for WebSocket APIs.<br/>IntegrationSubtype:  Supported only for HTTP API AWS_PROXY integrations. Specifies the AWS service action to invoke. To learn more, see <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-aws-services-reference.html">Integration subtype reference</a>.<br/>IntegrationMethod:  Specifies the integration's HTTP method type.<br/>IntegrationId:  The integration ID.<br/>Description:  The description of the integration<br/>CredentialsArn:  Specifies the credentials required for the integration, if any. For AWS integrations, three options are available. To specify an IAM Role for API Gateway to assume, use the role's Amazon Resource Name (ARN). To require that the caller's identity be passed through from the request, specify the string arn:aws:iam::*:user/*. To use resource-based permissions on supported AWS services, specify null.<br/>ContentHandlingStrategy:  Supported only for WebSocket APIs. Specifies how to handle response payload content type conversions. Supported values are CONVERT_TO_BINARY and CONVERT_TO_TEXT, with the following behaviors: CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded string to the corresponding binary blob. CONVERT_TO_TEXT: Converts a response payload from a binary blob to a Base64-encoded string. If this property is not defined, the response payload will be passed through from the integration response to the route response or method response without modification.<br/>ConnectionType:  The type of the network connection to the integration endpoint. Specify INTERNET for connections through the public routable internet or VPC_LINK for private connections between API Gateway and resources in a VPC. The default value is INTERNET.<br/>ConnectionId:  The ID of the VPC link for a private integration. Supported only for HTTP APIs.<br/>ApiId:  The API identifier.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerNameToVerify</i> If you specify a server name, API Gateway uses it to verify the hostname on the integration's certificate. The server name is also included in the TLS handshake to support Server Name Indication (SNI) or virtual hosting.<br/>
        :return: TlsConfig:  The TLS configuration for a private integration. If you specify a TLS configuration, private integration traffic uses the HTTPS protocol. Supported only for HTTP APIs.:<br/>TimeoutInMillis:  Custom timeout between 50 and 29,000 milliseconds for WebSocket APIs and between 50 and 30,000 milliseconds for HTTP APIs. The default timeout is 29 seconds for WebSocket APIs and 30 seconds for HTTP APIs.<br/>TemplateSelectionExpression:  The template selection expression for the integration. Supported only for WebSocket APIs.<br/>ResponseParameters:  Supported only for HTTP APIs. You use response parameters to transform the HTTP response from a backend integration before returning the response to clients. Specify a key-value map from a selection key to response parameters. The selection key must be a valid HTTP status code within the range of 200-599. Response parameters are a key-value map. The key must match pattern &lt;action&gt;:&lt;header&gt;.&lt;location&gt; or overwrite.statuscode. The action can be append, overwrite or remove. The value can be a static value, or map to response data, stage variables, or context variables that are evaluated at runtime. To learn more, see <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html">Transforming API requests and responses</a>.<br/>RequestTemplates:  Represents a map of Velocity templates that are applied on the request payload based on the value of the Content-Type header sent by the client. The content type value is the key in this map, and the template (as a String) is the value. Supported only for WebSocket APIs.<br/>RequestParameters:  For WebSocket APIs, a key-value map specifying request parameters that are passed from the method request to the backend. The key is an integration request parameter name and the associated value is a method request parameter value or static value that must be enclosed within single quotes and pre-encoded as required by the backend. The method request parameter value must match the pattern of method.request.<replaceable>{location}</replaceable>.<replaceable>{name}</replaceable>
          , where 
            <replaceable>{location}</replaceable>
           is querystring, path, or header; and 
            <replaceable>{name}</replaceable>
           must be a valid and unique method request parameter name. For HTTP API integrations with a specified integrationSubtype, request parameters are a key-value map specifying parameters that are passed to AWS_PROXY integrations. You can provide static values, or map request data, stage variables, or context variables that are evaluated at runtime. To learn more, see <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-aws-services.html">Working with AWS service integrations for HTTP APIs</a>. For HTTP API itegrations, without a specified integrationSubtype request parameters are a key-value map specifying how to transform HTTP requests before sending them to backend integrations. The key should follow the pattern &lt;action&gt;:&lt;header|querystring|path&gt;.&lt;location&gt;. The action can be append, overwrite or remove. For values, you can provide static values, or map request data, stage variables, or context variables that are evaluated at runtime. To learn more, see <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html">Transforming API requests and responses</a>.<br/>PayloadFormatVersion:  Specifies the format of the payload sent to an integration. Required for HTTP APIs.<br/>PassthroughBehavior:  Specifies the pass-through behavior for incoming requests based on the Content-Type header in the request, and the available mapping templates specified as the requestTemplates property on the Integration resource. There are three valid values: WHEN_NO_MATCH, WHEN_NO_TEMPLATES, and NEVER. Supported only for WebSocket APIs. WHEN_NO_MATCH passes the request body for unmapped content types through to the integration backend without transformation. NEVER rejects unmapped content types with an HTTP 415 Unsupported Media Type response. WHEN_NO_TEMPLATES allows pass-through when the integration has no content types mapped to templates. However, if there is at least one content type defined, unmapped content types will be rejected with the same HTTP 415 Unsupported Media Type response.<br/>IntegrationUri:  For a Lambda integration, specify the URI of a Lambda function. For an HTTP integration, specify a fully-qualified URL. For an HTTP API private integration, specify the ARN of an Application Load Balancer listener, Network Load Balancer listener, or AWS Cloud Map service. If you specify the ARN of an AWS Cloud Map service, API Gateway uses DiscoverInstances to identify resources. You can use query parameters to target specific resources. To learn more, see <a href="https://docs.aws.amazon.com/cloud-map/latest/api/API_DiscoverInstances.html">DiscoverInstances</a>. For private integrations, all resources must be owned by the same AWS account.<br/>IntegrationType:  The integration type of an integration. One of the following: AWS: for integrating the route or method request with an AWS service action, including the Lambda function-invoking action. With the Lambda function-invoking action, this is referred to as the Lambda custom integration. With any other AWS service action, this is known as AWS integration. Supported only for WebSocket APIs. AWS_PROXY: for integrating the route or method request with a Lambda function or other AWS service action. This integration is also referred to as a Lambda proxy integration. HTTP: for integrating the route or method request with an HTTP endpoint. This integration is also referred to as the HTTP custom integration. Supported only for WebSocket APIs. HTTP_PROXY: for integrating the route or method request with an HTTP endpoint, with the client request passed through as-is. This is also referred to as HTTP proxy integration. MOCK: for integrating the route or method request with API Gateway as a "loopback" endpoint without invoking any backend. Supported only for WebSocket APIs.<br/>IntegrationSubtype:  Supported only for HTTP API AWS_PROXY integrations. Specifies the AWS service action to invoke. To learn more, see <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-aws-services-reference.html">Integration subtype reference</a>.<br/>IntegrationResponseSelectionExpression:  The integration response selection expression for the integration. Supported only for WebSocket APIs. See <a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-integration-response-selection-expressions">Integration Response Selection Expressions</a>.<br/>IntegrationMethod:  Specifies the integration's HTTP method type.<br/>IntegrationId:  Represents the identifier of an integration.<br/>Description:  Represents the description of an integration.<br/>CredentialsArn:  Specifies the credentials required for the integration, if any. For AWS integrations, three options are available. To specify an IAM Role for API Gateway to assume, use the role's Amazon Resource Name (ARN). To require that the caller's identity be passed through from the request, specify the string arn:aws:iam::*:user/*. To use resource-based permissions on supported AWS services, specify null.<br/>ContentHandlingStrategy:  Supported only for WebSocket APIs. Specifies how to handle response payload content type conversions. Supported values are CONVERT_TO_BINARY and CONVERT_TO_TEXT, with the following behaviors: CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded string to the corresponding binary blob. CONVERT_TO_TEXT: Converts a response payload from a binary blob to a Base64-encoded string. If this property is not defined, the response payload will be passed through from the integration response to the route response or method response without modification.<br/>ConnectionType:  The type of the network connection to the integration endpoint. Specify INTERNET for connections through the public routable internet or VPC_LINK for private connections between API Gateway and resources in a VPC. The default value is INTERNET.<br/>ConnectionId:  The ID of the VPC link for a private integration. Supported only for HTTP APIs.<br/>ApiGatewayManaged:  Specifies whether an integration is managed by API Gateway. If you created an API using using quick create, the resulting integration is managed by API Gateway. You can update a managed integration, but you can't delete it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerNameToVerify</i> If you specify a server name, API Gateway uses it to verify the hostname on the integration's certificate. The server name is also included in the TLS handshake to support Server Name Indication (SNI) or virtual hosting.<br/>        """
        pass

    def update_integration_response(self, IntegrationResponseId: str, IntegrationId: str, ApiId: str, ContentHandlingStrategy: str=None, IntegrationResponseKey: str=None, ResponseParameters: IntegrationParameters=None, ResponseTemplates: TemplateMap=None, TemplateSelectionExpression: str=None) -> UpdateIntegrationResponseResponse:
        r"""Updates an IntegrationResponses.

        :param self:
        :param TemplateSelectionExpression:  The template selection expression for the integration response. Supported only for WebSocket APIs.<br/>ResponseTemplates:  The collection of response templates for the integration response as a string-to-string map of key-value pairs. Response templates are represented as a key/value map, with a content-type as the key and a template as the value.<br/>ResponseParameters:  A key-value map specifying response parameters that are passed to the method response from the backend. The key is a method response header parameter name and the mapped value is an integration response header value, a static value enclosed within a pair of single quotes, or a JSON expression from the integration response body. The mapping key must match the pattern of method.response.header.<replaceable>{name}</replaceable>
               , where name is a valid and unique header name. The mapped non-static value must match the pattern of integration.response.header.<replaceable>{name}</replaceable>
                or integration.response.body.<replaceable>{JSON-expression}</replaceable>
               , where 
                  <replaceable>{name}</replaceable>
                is a valid and unique response header name and 
                  <replaceable>{JSON-expression}</replaceable>
                is a valid JSON expression without the $ prefix.<br/>IntegrationResponseKey:  The integration response key.<br/>IntegrationResponseId:  The integration response ID.<br/>IntegrationId:  The integration ID.<br/>ContentHandlingStrategy:  Supported only for WebSocket APIs. Specifies how to handle response payload content type conversions. Supported values are CONVERT_TO_BINARY and CONVERT_TO_TEXT, with the following behaviors: CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded string to the corresponding binary blob. CONVERT_TO_TEXT: Converts a response payload from a binary blob to a Base64-encoded string. If this property is not defined, the response payload will be passed through from the integration response to the route response or method response without modification.<br/>ApiId:  The API identifier.<br/>
        :return: TemplateSelectionExpression:  The template selection expressions for the integration response.<br/>ResponseTemplates:  The collection of response templates for the integration response as a string-to-string map of key-value pairs. Response templates are represented as a key/value map, with a content-type as the key and a template as the value.<br/>ResponseParameters:  A key-value map specifying response parameters that are passed to the method response from the backend. The key is a method response header parameter name and the mapped value is an integration response header value, a static value enclosed within a pair of single quotes, or a JSON expression from the integration response body. The mapping key must match the pattern of method.response.header.{name}, where name is a valid and unique header name. The mapped non-static value must match the pattern of integration.response.header.{name} or integration.response.body.{JSON-expression}, where name is a valid and unique response header name and JSON-expression is a valid JSON expression without the $ prefix.<br/>IntegrationResponseKey:  The integration response key.<br/>IntegrationResponseId:  The integration response ID.<br/>ContentHandlingStrategy:  Supported only for WebSocket APIs. Specifies how to handle response payload content type conversions. Supported values are CONVERT_TO_BINARY and CONVERT_TO_TEXT, with the following behaviors: CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded string to the corresponding binary blob. CONVERT_TO_TEXT: Converts a response payload from a binary blob to a Base64-encoded string. If this property is not defined, the response payload will be passed through from the integration response to the route response or method response without modification.<br/>        """
        pass

    def update_model(self, ModelId: str, ApiId: str, ContentType: str=None, Description: str=None, Name: str=None, Schema: str=None) -> UpdateModelResponse:
        r"""Updates a Model.

        :param self:
        :param Schema:  The schema for the model. For application/json models, this should be JSON schema draft 4 model.<br/>Name:  The name of the model.<br/>ModelId:  The model ID.<br/>Description:  The description of the model.<br/>ContentType:  The content-type for the model, for example, "application/json".<br/>ApiId:  The API identifier.<br/>
        :return: Schema:  The schema for the model. For application/json models, this should be JSON schema draft 4 model.<br/>Name:  The name of the model. Must be alphanumeric.<br/>ModelId:  The model identifier.<br/>Description:  The description of the model.<br/>ContentType:  The content-type for the model, for example, "application/json".<br/>        """
        pass

    def update_route(self, RouteId: str, ApiId: str, ApiKeyRequired: __boolean=None, AuthorizationScopes: List[StringWithLengthBetween1And64]=None, AuthorizationType: str=None, AuthorizerId: str=None, ModelSelectionExpression: str=None, OperationName: str=None, RequestModels: RouteModels=None, RequestParameters: RouteParameters=None, RouteKey: str=None, RouteResponseSelectionExpression: str=None, Target: str=None) -> UpdateRouteResult:
        r"""Updates a Route.

        :param self:
        :param Target:  The target for the route.<br/>RouteResponseSelectionExpression:  The route response selection expression for the route. Supported only for WebSocket APIs.<br/>RouteKey:  The route key for the route.<br/>RouteId:  The route ID.<br/>RequestParameters:  The request parameters for the route. Supported only for WebSocket APIs.<br/>RequestModels:  The request models for the route. Supported only for WebSocket APIs.<br/>OperationName:  The operation name for the route.<br/>ModelSelectionExpression:  The model selection expression for the route. Supported only for WebSocket APIs.<br/>AuthorizerId:  The identifier of the Authorizer resource to be associated with this route. The authorizer identifier is generated by API Gateway when you created the authorizer.<br/>AuthorizationType:  The authorization type for the route. For WebSocket APIs, valid values are NONE for open access, AWS_IAM for using AWS IAM permissions, and CUSTOM for using a Lambda authorizer For HTTP APIs, valid values are NONE for open access, JWT for using JSON Web Tokens, AWS_IAM for using AWS IAM permissions, and CUSTOM for using a Lambda authorizer.<br/>AuthorizationScopes:  The authorization scopes supported by this route.<br/>ApiKeyRequired:  Specifies whether an API key is required for the route. Supported only for WebSocket APIs.<br/>ApiId:  The API identifier.<br/>
        :return: Target:  The target for the route.<br/>RouteResponseSelectionExpression:  The route response selection expression for the route. Supported only for WebSocket APIs.<br/>RouteKey:  The route key for the route.<br/>RouteId:  The route ID.<br/>RequestParameters:  The request parameters for the route. Supported only for WebSocket APIs.<br/>RequestModels:  The request models for the route. Supported only for WebSocket APIs.<br/>OperationName:  The operation name for the route.<br/>ModelSelectionExpression:  The model selection expression for the route. Supported only for WebSocket APIs.<br/>AuthorizerId:  The identifier of the Authorizer resource to be associated with this route. The authorizer identifier is generated by API Gateway when you created the authorizer.<br/>AuthorizationType:  The authorization type for the route. For WebSocket APIs, valid values are NONE for open access, AWS_IAM for using AWS IAM permissions, and CUSTOM for using a Lambda authorizer For HTTP APIs, valid values are NONE for open access, JWT for using JSON Web Tokens, AWS_IAM for using AWS IAM permissions, and CUSTOM for using a Lambda authorizer.<br/>AuthorizationScopes:  A list of authorization scopes configured on a route. The scopes are used with a JWT authorizer to authorize the method invocation. The authorization works by matching the route scopes against the scopes parsed from the access token in the incoming request. The method invocation is authorized if any route scope matches a claimed scope in the access token. Otherwise, the invocation is not authorized. When the route scope is configured, the client must provide an access token instead of an identity token for authorization purposes.<br/>ApiKeyRequired:  Specifies whether an API key is required for this route. Supported only for WebSocket APIs.<br/>ApiGatewayManaged:  Specifies whether a route is managed by API Gateway. If you created an API using quick create, the $default route is managed by API Gateway. You can't modify the $default route key.<br/>        """
        pass

    def update_route_response(self, RouteResponseId: str, RouteId: str, ApiId: str, ModelSelectionExpression: str=None, ResponseModels: RouteModels=None, ResponseParameters: RouteParameters=None, RouteResponseKey: str=None) -> UpdateRouteResponseResponse:
        r"""Updates a RouteResponse.

        :param self:
        :param RouteResponseKey:  The route response key.<br/>RouteResponseId:  The route response ID.<br/>RouteId:  The route ID.<br/>ResponseParameters:  The route response parameters.<br/>ResponseModels:  The response models for the route response.<br/>ModelSelectionExpression:  The model selection expression for the route response. Supported only for WebSocket APIs.<br/>ApiId:  The API identifier.<br/>
        :return: RouteResponseKey:  Represents the route response key of a route response.<br/>RouteResponseId:  Represents the identifier of a route response.<br/>ResponseParameters:  Represents the response parameters of a route response.<br/>ResponseModels:  Represents the response models of a route response.<br/>ModelSelectionExpression:  Represents the model selection expression of a route response. Supported only for WebSocket APIs.<br/>        """
        pass

    def update_stage(self, StageName: str, ApiId: str, AccessLogSettings: AccessLogSettings=None, AutoDeploy: __boolean=None, ClientCertificateId: str=None, DefaultRouteSettings: RouteSettings=None, DeploymentId: str=None, Description: str=None, RouteSettings: RouteSettingsMap=None, StageVariables: StageVariablesMap=None) -> UpdateStageResponse:
        r"""Updates a Stage.

        :param self:
        :param StageVariables:  A map that defines the stage variables for a Stage. Variable names can have alphanumeric and underscore characters, and the values must match [A-Za-z0-9-._~:/?#&amp;=,]+.<br/>StageName:  The stage name. Stage names can contain only alphanumeric characters, hyphens, and underscores, or be $default. Maximum length is 128 characters.<br/>RouteSettings:  Route settings for the stage.<br/>Description:  The description for the API stage.<br/>DeploymentId:  The deployment identifier for the API stage. Can't be updated if autoDeploy is enabled.<br/>DefaultRouteSettings:  The default route settings for the stage.:<br/>ClientCertificateId:  The identifier of a client certificate for a Stage.<br/>AutoDeploy:  Specifies whether updates to an API automatically trigger a new deployment. The default value is false.<br/>ApiId:  The API identifier.<br/>AccessLogSettings:  Settings for logging access in this stage.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Format</i> A single line format of the access logs of data, as specified by selected $context variables. The format must include at least $context.requestId.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DestinationArn</i> The ARN of the CloudWatch Logs log group to receive access logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ThrottlingRateLimit</i> Specifies the throttling rate limit.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ThrottlingBurstLimit</i> Specifies the throttling burst limit.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LoggingLevel</i> Specifies the logging level for this route: INFO, ERROR, or OFF. This property affects the log entries pushed to Amazon CloudWatch Logs. Supported only for WebSocket APIs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DetailedMetricsEnabled</i> Specifies whether detailed metrics are enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataTraceEnabled</i> Specifies whether (true) or not (false) data trace logging is enabled for this route. This property affects the log entries pushed to Amazon CloudWatch Logs. Supported only for WebSocket APIs.<br/>
        :return: Tags:  The collection of tags. Each tag element is associated with a given resource.<br/>StageVariables:  A map that defines the stage variables for a stage resource. Variable names can have alphanumeric and underscore characters, and the values must match [A-Za-z0-9-._~:/?#&amp;=,]+.<br/>StageName:  The name of the stage.<br/>RouteSettings:  Route settings for the stage, by routeKey.<br/>LastUpdatedDate:  The timestamp when the stage was last updated.<br/>LastDeploymentStatusMessage:  Describes the status of the last deployment of a stage. Supported only for stages with autoDeploy enabled.<br/>Description:  The description of the stage.<br/>DeploymentId:  The identifier of the Deployment that the Stage is associated with. Can't be updated if autoDeploy is enabled.<br/>DefaultRouteSettings:  Default route settings for the stage.:<br/>CreatedDate:  The timestamp when the stage was created.<br/>ClientCertificateId:  The identifier of a client certificate for a Stage. Supported only for WebSocket APIs.<br/>AutoDeploy:  Specifies whether updates to an API automatically trigger a new deployment. The default value is false.<br/>ApiGatewayManaged:  Specifies whether a stage is managed by API Gateway. If you created an API using quick create, the $default stage is managed by API Gateway. You can't modify the $default stage.<br/>AccessLogSettings:  Settings for logging access in this stage.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Format</i> A single line format of the access logs of data, as specified by selected $context variables. The format must include at least $context.requestId.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DestinationArn</i> The ARN of the CloudWatch Logs log group to receive access logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ThrottlingRateLimit</i> Specifies the throttling rate limit.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ThrottlingBurstLimit</i> Specifies the throttling burst limit.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LoggingLevel</i> Specifies the logging level for this route: INFO, ERROR, or OFF. This property affects the log entries pushed to Amazon CloudWatch Logs. Supported only for WebSocket APIs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DetailedMetricsEnabled</i> Specifies whether detailed metrics are enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataTraceEnabled</i> Specifies whether (true) or not (false) data trace logging is enabled for this route. This property affects the log entries pushed to Amazon CloudWatch Logs. Supported only for WebSocket APIs.<br/>        """
        pass

    def update_vpc_link(self, VpcLinkId: str, Name: str=None) -> UpdateVpcLinkResponse:
        r"""Updates a VPC link.

        :param self:
        :param VpcLinkId:  The ID of the VPC link.<br/>Name:  The name of the VPC link.<br/>
        :return: VpcLinkVersion:  The version of the VPC link.<br/>VpcLinkStatusMessage:  A message summarizing the cause of the status of the VPC link.<br/>VpcLinkStatus:  The status of the VPC link.<br/>VpcLinkId:  The ID of the VPC link.<br/>Tags:  Tags for the VPC link.<br/>SubnetIds:  A list of subnet IDs to include in the VPC link.<br/>SecurityGroupIds:  A list of security group IDs for the VPC link.<br/>Name:  The name of the VPC link.<br/>CreatedDate:  The timestamp when the VPC link was created.<br/>        """
        pass





class AppConfig(BaseClient):
    r"""<fullname>AWS AppConfig</fullname> Use AWS AppConfig, a capability of AWS Systems Manager, to create, manage, and quickly deploy application configurations. AppConfig supports controlled deployments to applications of any size and includes built-in validation checks and monitoring. You can use AppConfig with applications hosted on Amazon EC2 instances, AWS Lambda, containers, mobile applications, or IoT devices. To prevent errors when deploying application configurations, especially for production systems where a simple typo could cause an unexpected outage, AppConfig includes validators. A validator provides a syntactic or semantic check to ensure that the configuration you want to deploy works as intended. To validate your application configuration data, you provide a schema or a Lambda function that runs against the configuration. The configuration deployment or update can only proceed when the configuration data is valid. During a configuration deployment, AppConfig monitors the application to ensure that the deployment is successful. If the system encounters an error, AppConfig rolls back the change to minimize impact for your application users. You can configure a deployment strategy for each application or environment that includes deployment criteria, including velocity, bake time, and alarms to monitor. Similar to error monitoring, if a deployment triggers an alarm, AppConfig automatically rolls back to the previous version.  AppConfig supports multiple use cases. Here are some examples. <ul> <li>  <b>Application tuning</b>: Use AppConfig to carefully introduce changes to your application that can only be tested with production traffic. </li> <li>  <b>Feature toggle</b>: Use AppConfig to turn on new features that require a timely deployment, such as a product launch or announcement.  </li> <li>  <b>Allow list</b>: Use AppConfig to allow premium subscribers to access paid content.  </li> <li>  <b>Operational issues</b>: Use AppConfig to reduce stress on your application when a dependency or other external factor impacts the system. </li> </ul> This reference is intended to be used with the <a href="http://docs.aws.amazon.com/systems-manager/latest/userguide/appconfig.html">AWS AppConfig User Guide</a>."""




    class CreateApplicationRequest(Mapping):
        pass
    
    class Application(Mapping):
        pass
    
    class TagMap(object):
        pass
    
    class CreateConfigurationProfileRequest(Mapping):
        pass
    
    class ConfigurationProfile(Mapping):
        pass
    
    class Validator(Mapping):
        pass
    
    class CreateDeploymentStrategyRequest(Mapping):
        pass
    
    class DeploymentStrategy(Mapping):
        pass
    
    class GrowthFactor(object):
        pass
    
    class CreateEnvironmentRequest(Mapping):
        pass
    
    class Environment(Mapping):
        pass
    
    class Monitor(Mapping):
        pass
    
    class CreateHostedConfigurationVersionRequest(Mapping):
        pass
    
    class HostedConfigurationVersion(Mapping):
        pass
    
    class Blob(object):
        pass
    
    class DeleteApplicationRequest(Mapping):
        pass
    
    class DeleteConfigurationProfileRequest(Mapping):
        pass
    
    class DeleteDeploymentStrategyRequest(Mapping):
        pass
    
    class DeleteEnvironmentRequest(Mapping):
        pass
    
    class DeleteHostedConfigurationVersionRequest(Mapping):
        pass
    
    class GetApplicationRequest(Mapping):
        pass
    
    class GetConfigurationRequest(Mapping):
        pass
    
    class Configuration(Mapping):
        pass
    
    class GetConfigurationProfileRequest(Mapping):
        pass
    
    class GetDeploymentRequest(Mapping):
        pass
    
    class Deployment(Mapping):
        pass
    
    class GetDeploymentStrategyRequest(Mapping):
        pass
    
    class GetEnvironmentRequest(Mapping):
        pass
    
    class GetHostedConfigurationVersionRequest(Mapping):
        pass
    
    class ListApplicationsRequest(Mapping):
        pass
    
    class Applications(Mapping):
        pass
    
    class ListConfigurationProfilesRequest(Mapping):
        pass
    
    class ConfigurationProfiles(Mapping):
        pass
    
    class ListDeploymentStrategiesRequest(Mapping):
        pass
    
    class DeploymentStrategies(Mapping):
        pass
    
    class ListDeploymentsRequest(Mapping):
        pass
    
    class Deployments(Mapping):
        pass
    
    class ListEnvironmentsRequest(Mapping):
        pass
    
    class Environments(Mapping):
        pass
    
    class ListHostedConfigurationVersionsRequest(Mapping):
        pass
    
    class HostedConfigurationVersions(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ResourceTags(Mapping):
        pass
    
    class StartDeploymentRequest(Mapping):
        pass
    
    class StopDeploymentRequest(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateApplicationRequest(Mapping):
        pass
    
    class UpdateConfigurationProfileRequest(Mapping):
        pass
    
    class UpdateDeploymentStrategyRequest(Mapping):
        pass
    
    class UpdateEnvironmentRequest(Mapping):
        pass
    
    class ValidateConfigurationRequest(Mapping):
        pass
    
    def create_application(self, Name: str, Description: str=None, Tags: TagMap=None) -> Application:
        r"""An application in AppConfig is a logical unit of code that provides capabilities for your customers. For example, an application can be a microservice that runs on Amazon EC2 instances, a mobile application installed by your users, a serverless application using Amazon API Gateway and AWS Lambda, or any system you run on behalf of others.

        :param self:
        :param Tags:  Metadata to assign to the application. Tags help organize and categorize your AppConfig resources. Each tag consists of a key and an optional value, both of which you define.<br/>Description:  A description of the application.<br/>Name:  A name for the application.<br/>
        :return: Description:  The description of the application.<br/>Name:  The application name.<br/>Id:  The application ID.<br/>        """
        pass

    def create_configuration_profile(self, LocationUri: str, Name: str, ApplicationId: str, Description: str=None, RetrievalRoleArn: str=None, Validators: List[Validator]=None, Tags: TagMap=None) -> ConfigurationProfile:
        r"""Information that enables AppConfig to access the configuration source. Valid configuration sources include Systems Manager (SSM) documents, SSM Parameter Store parameters, and Amazon S3 objects. A configuration profile includes the following information. <ul> <li> The Uri location of the configuration data. </li> <li> The AWS Identity and Access Management (IAM) role that provides access to the configuration data. </li> <li> A validator for the configuration data. Available validators include either a JSON Schema or an AWS Lambda function. </li> </ul> For more information, see <a href="http://docs.aws.amazon.com/systems-manager/latest/userguide/appconfig-creating-configuration-and-profile.html">Create a Configuration and a Configuration Profile</a> in the <i>AWS AppConfig User Guide</i>.

        :param self:
        :param Tags:  Metadata to assign to the configuration profile. Tags help organize and categorize your AppConfig resources. Each tag consists of a key and an optional value, both of which you define.<br/>Validators:  A list of methods for validating the configuration.<br/>RetrievalRoleArn:  The ARN of an IAM role with permission to access the configuration at the specified LocationUri.<br/>LocationUri:  A URI to locate the configuration. You can specify a Systems Manager (SSM) document, an SSM Parameter Store parameter, or an Amazon S3 object. For an SSM document, specify either the document name in the format <code>ssm-document://&lt;Document_name&gt;</code> or the Amazon Resource Name (ARN). For a parameter, specify either the parameter name in the format <code>ssm-parameter://&lt;Parameter_name&gt;</code> or the ARN. For an Amazon S3 object, specify the URI in the following format: <code>s3://&lt;bucket&gt;/&lt;objectKey&gt; </code>. Here is an example: s3://my-bucket/my-app/us-east-1/my-config.json<br/>Description:  A description of the configuration profile.<br/>Name:  A name for the configuration profile.<br/>ApplicationId:  The application ID.<br/>
        :return: Validators:  A list of methods for validating the configuration.<br/>RetrievalRoleArn:  The ARN of an IAM role with permission to access the configuration at the specified LocationUri.<br/>LocationUri:  The URI location of the configuration.<br/>Description:  The configuration profile description.<br/>Name:  The name of the configuration profile.<br/>Id:  The configuration profile ID.<br/>ApplicationId:  The application ID.<br/>        """
        pass

    def create_deployment_strategy(self, ReplicateTo: str, GrowthFactor: GrowthFactor, DeploymentDurationInMinutes: int, Name: str, Description: str=None, FinalBakeTimeInMinutes: int=None, GrowthType: str=None, Tags: TagMap=None) -> DeploymentStrategy:
        r"""A deployment strategy defines important criteria for rolling out your configuration to the designated targets. A deployment strategy includes: the overall duration required, a percentage of targets to receive the deployment during each interval, an algorithm that defines how percentage grows, and bake time.

        :param self:
        :param Tags:  Metadata to assign to the deployment strategy. Tags help organize and categorize your AppConfig resources. Each tag consists of a key and an optional value, both of which you define.<br/>ReplicateTo:  Save the deployment strategy to a Systems Manager (SSM) document.<br/>GrowthType:  The algorithm used to define how percentage grows over time. AWS AppConfig supports the following growth types:  <b>Linear</b>: For this type, AppConfig processes the deployment by dividing the total number of targets by the value specified for <code>Step percentage</code>. For example, a linear deployment that uses a <code>Step percentage</code> of 10 deploys the configuration to 10 percent of the hosts. After those deployments are complete, the system deploys the configuration to the next 10 percent. This continues until 100% of the targets have successfully received the configuration.  <b>Exponential</b>: For this type, AppConfig processes the deployment exponentially using the following formula: <code>G*(2^N)</code>. In this formula, <code>G</code> is the growth factor specified by the user and <code>N</code> is the number of steps until the configuration is deployed to all targets. For example, if you specify a growth factor of 2, then the system rolls out the configuration as follows:  <code>2*(2^0)</code>   <code>2*(2^1)</code>   <code>2*(2^2)</code>  Expressed numerically, the deployment rolls out as follows: 2% of the targets, 4% of the targets, 8% of the targets, and continues until the configuration has been deployed to all targets.<br/>GrowthFactor:  The percentage of targets to receive a deployed configuration during each interval.<br/>FinalBakeTimeInMinutes:  The amount of time AppConfig monitors for alarms before considering the deployment to be complete and no longer eligible for automatic roll back.<br/>DeploymentDurationInMinutes:  Total amount of time for a deployment to last.<br/>Description:  A description of the deployment strategy.<br/>Name:  A name for the deployment strategy.<br/>
        :return: ReplicateTo:  Save the deployment strategy to a Systems Manager (SSM) document.<br/>FinalBakeTimeInMinutes:  The amount of time AppConfig monitored for alarms before considering the deployment to be complete and no longer eligible for automatic roll back.<br/>GrowthFactor:  The percentage of targets that received a deployed configuration during each interval.<br/>GrowthType:  The algorithm used to define how percentage grew over time.<br/>DeploymentDurationInMinutes:  Total amount of time the deployment lasted.<br/>Description:  The description of the deployment strategy.<br/>Name:  The name of the deployment strategy.<br/>Id:  The deployment strategy ID.<br/>        """
        pass

    def create_environment(self, Name: str, ApplicationId: str, Description: str=None, Monitors: List[Monitor]=None, Tags: TagMap=None) -> Environment:
        r"""For each application, you define one or more environments. An environment is a logical deployment group of AppConfig targets, such as applications in a <code>Beta</code> or <code>Production</code> environment. You can also define environments for application subcomponents such as the <code>Web</code>, <code>Mobile</code> and <code>Back-end</code> components for your application. You can configure Amazon CloudWatch alarms for each environment. The system monitors alarms during a configuration deployment. If an alarm is triggered, the system rolls back the configuration.

        :param self:
        :param Tags:  Metadata to assign to the environment. Tags help organize and categorize your AppConfig resources. Each tag consists of a key and an optional value, both of which you define.<br/>Monitors:  Amazon CloudWatch alarms to monitor during the deployment process.<br/>Description:  A description of the environment.<br/>Name:  A name for the environment.<br/>ApplicationId:  The application ID.<br/>
        :return: Monitors:  Amazon CloudWatch alarms monitored during the deployment.<br/>State:  The state of the environment. An environment can be in one of the following states: <code>READY_FOR_DEPLOYMENT</code>, <code>DEPLOYING</code>, <code>ROLLING_BACK</code>, or <code>ROLLED_BACK</code> <br/>Description:  The description of the environment.<br/>Name:  The name of the environment.<br/>Id:  The environment ID.<br/>ApplicationId:  The application ID.<br/>        """
        pass

    def create_hosted_configuration_version(self, ContentType: str, Content: Blob, ConfigurationProfileId: str, ApplicationId: str, Description: str=None, LatestVersionNumber: int=None) -> HostedConfigurationVersion:
        r"""Create a new configuration in the AppConfig configuration store.

        :param self:
        :param LatestVersionNumber:  An optional locking token used to prevent race conditions from overwriting configuration updates when creating a new version. To ensure your data is not overwritten when creating multiple hosted configuration versions in rapid succession, specify the version of the latest hosted configuration version.<br/>ContentType:  A standard MIME type describing the format of the configuration content. For more information, see <a href="https://docs.aws.amazon.com/https:/www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.17">Content-Type</a>.<br/>Content:  The content of the configuration or the configuration data.<br/>Description:  A description of the configuration.<br/>ConfigurationProfileId:  The configuration profile ID.<br/>ApplicationId:  The application ID.<br/>
        :return: ContentType:  A standard MIME type describing the format of the configuration content. For more information, see <a href="https://docs.aws.amazon.com/https:/www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.17">Content-Type</a>.<br/>Content:  The content of the configuration or the configuration data.<br/>Description:  A description of the configuration.<br/>VersionNumber:  The configuration version.<br/>ConfigurationProfileId:  The configuration profile ID.<br/>ApplicationId:  The application ID.<br/>        """
        pass

    def delete_application(self, ApplicationId: str):
        r"""Delete an application. Deleting an application does not delete a configuration from a host.

        :param self:
        :param ApplicationId:  The ID of the application to delete.<br/>
        :return:         """
        pass

    def delete_configuration_profile(self, ConfigurationProfileId: str, ApplicationId: str):
        r"""Delete a configuration profile. Deleting a configuration profile does not delete a configuration from a host.

        :param self:
        :param ConfigurationProfileId:  The ID of the configuration profile you want to delete.<br/>ApplicationId:  The application ID that includes the configuration profile you want to delete.<br/>
        :return:         """
        pass

    def delete_deployment_strategy(self, DeploymentStrategyId: str):
        r"""Delete a deployment strategy. Deleting a deployment strategy does not delete a configuration from a host.

        :param self:
        :param DeploymentStrategyId:  The ID of the deployment strategy you want to delete.<br/>
        :return:         """
        pass

    def delete_environment(self, EnvironmentId: str, ApplicationId: str):
        r"""Delete an environment. Deleting an environment does not delete a configuration from a host.

        :param self:
        :param EnvironmentId:  The ID of the environment you want to delete.<br/>ApplicationId:  The application ID that includes the environment you want to delete.<br/>
        :return:         """
        pass

    def delete_hosted_configuration_version(self, VersionNumber: int, ConfigurationProfileId: str, ApplicationId: str):
        r"""Delete a version of a configuration from the AppConfig configuration store.

        :param self:
        :param VersionNumber:  The versions number to delete.<br/>ConfigurationProfileId:  The configuration profile ID.<br/>ApplicationId:  The application ID.<br/>
        :return:         """
        pass

    def get_application(self, ApplicationId: str) -> Application:
        r"""Retrieve information about an application.

        :param self:
        :param ApplicationId:  The ID of the application you want to get.<br/>
        :return: Description:  The description of the application.<br/>Name:  The application name.<br/>Id:  The application ID.<br/>        """
        pass

    def get_configuration(self, ClientId: str, Configuration: str, Environment: str, Application: str, ClientConfigurationVersion: str=None) -> Configuration:
        r"""Receive information about a configuration. <important> AWS AppConfig uses the value of the <code>ClientConfigurationVersion</code> parameter to identify the configuration version on your clients. If you don’t send <code>ClientConfigurationVersion</code> with each call to <code>GetConfiguration</code>, your clients receive the current configuration. You are charged each time your clients receive a configuration. To avoid excess charges, we recommend that you include the <code>ClientConfigurationVersion</code> value with every call to <code>GetConfiguration</code>. This value must be saved on your client. Subsequent calls to <code>GetConfiguration</code> must pass this value by using the <code>ClientConfigurationVersion</code> parameter.  </important>

        :param self:
        :param ClientConfigurationVersion:  The configuration version returned in the most recent <code>GetConfiguration</code> response. <important> AWS AppConfig uses the value of the <code>ClientConfigurationVersion</code> parameter to identify the configuration version on your clients. If you don’t send <code>ClientConfigurationVersion</code> with each call to <code>GetConfiguration</code>, your clients receive the current configuration. You are charged each time your clients receive a configuration. To avoid excess charges, we recommend that you include the <code>ClientConfigurationVersion</code> value with every call to <code>GetConfiguration</code>. This value must be saved on your client. Subsequent calls to <code>GetConfiguration</code> must pass this value by using the <code>ClientConfigurationVersion</code> parameter.  </important> For more information about working with configurations, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/appconfig-retrieving-the-configuration.html">Retrieving the Configuration</a> in the <i>AWS AppConfig User Guide</i>.<br/>ClientId:  A unique ID to identify the client for the configuration. This ID enables AppConfig to deploy the configuration in intervals, as defined in the deployment strategy.<br/>Configuration:  The configuration to get. Specify either the configuration name or the configuration ID.<br/>Environment:  The environment to get. Specify either the environment name or the environment ID.<br/>Application:  The application to get. Specify either the application name or the application ID.<br/>
        :return: ContentType:  A standard MIME type describing the format of the configuration content. For more information, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.17">Content-Type</a>.<br/>ConfigurationVersion:  The configuration version.<br/>Content:  The content of the configuration or the configuration data.<br/>        """
        pass

    def get_configuration_profile(self, ConfigurationProfileId: str, ApplicationId: str) -> ConfigurationProfile:
        r"""Retrieve information about a configuration profile.

        :param self:
        :param ConfigurationProfileId:  The ID of the configuration profile you want to get.<br/>ApplicationId:  The ID of the application that includes the configuration profile you want to get.<br/>
        :return: Validators:  A list of methods for validating the configuration.<br/>RetrievalRoleArn:  The ARN of an IAM role with permission to access the configuration at the specified LocationUri.<br/>LocationUri:  The URI location of the configuration.<br/>Description:  The configuration profile description.<br/>Name:  The name of the configuration profile.<br/>Id:  The configuration profile ID.<br/>ApplicationId:  The application ID.<br/>        """
        pass

    def get_deployment(self, DeploymentNumber: int, EnvironmentId: str, ApplicationId: str) -> Deployment:
        r"""Retrieve information about a configuration deployment.

        :param self:
        :param DeploymentNumber:  The sequence number of the deployment.<br/>EnvironmentId:  The ID of the environment that includes the deployment you want to get. <br/>ApplicationId:  The ID of the application that includes the deployment you want to get. <br/>
        :return: CompletedAt:  The time the deployment completed. <br/>StartedAt:  The time the deployment started.<br/>PercentageComplete:  The percentage of targets for which the deployment is available.<br/>EventLog:  A list containing all events related to a deployment. The most recent events are displayed first.<br/>State:  The state of the deployment.<br/>FinalBakeTimeInMinutes:  The amount of time AppConfig monitored for alarms before considering the deployment to be complete and no longer eligible for automatic roll back.<br/>GrowthFactor:  The percentage of targets to receive a deployed configuration during each interval.<br/>GrowthType:  The algorithm used to define how percentage grew over time.<br/>DeploymentDurationInMinutes:  Total amount of time the deployment lasted.<br/>Description:  The description of the deployment.<br/>ConfigurationVersion:  The configuration version that was deployed.<br/>ConfigurationLocationUri:  Information about the source location of the configuration.<br/>ConfigurationName:  The name of the configuration.<br/>DeploymentNumber:  The sequence number of the deployment.<br/>ConfigurationProfileId:  The ID of the configuration profile that was deployed.<br/>DeploymentStrategyId:  The ID of the deployment strategy that was deployed.<br/>EnvironmentId:  The ID of the environment that was deployed.<br/>ApplicationId:  The ID of the application that was deployed.<br/>        """
        pass

    def get_deployment_strategy(self, DeploymentStrategyId: str) -> DeploymentStrategy:
        r"""Retrieve information about a deployment strategy. A deployment strategy defines important criteria for rolling out your configuration to the designated targets. A deployment strategy includes: the overall duration required, a percentage of targets to receive the deployment during each interval, an algorithm that defines how percentage grows, and bake time.

        :param self:
        :param DeploymentStrategyId:  The ID of the deployment strategy to get.<br/>
        :return: ReplicateTo:  Save the deployment strategy to a Systems Manager (SSM) document.<br/>FinalBakeTimeInMinutes:  The amount of time AppConfig monitored for alarms before considering the deployment to be complete and no longer eligible for automatic roll back.<br/>GrowthFactor:  The percentage of targets that received a deployed configuration during each interval.<br/>GrowthType:  The algorithm used to define how percentage grew over time.<br/>DeploymentDurationInMinutes:  Total amount of time the deployment lasted.<br/>Description:  The description of the deployment strategy.<br/>Name:  The name of the deployment strategy.<br/>Id:  The deployment strategy ID.<br/>        """
        pass

    def get_environment(self, EnvironmentId: str, ApplicationId: str) -> Environment:
        r"""Retrieve information about an environment. An environment is a logical deployment group of AppConfig applications, such as applications in a <code>Production</code> environment or in an <code>EU_Region</code> environment. Each configuration deployment targets an environment. You can enable one or more Amazon CloudWatch alarms for an environment. If an alarm is triggered during a deployment, AppConfig roles back the configuration.

        :param self:
        :param EnvironmentId:  The ID of the environment you wnat to get.<br/>ApplicationId:  The ID of the application that includes the environment you want to get.<br/>
        :return: Monitors:  Amazon CloudWatch alarms monitored during the deployment.<br/>State:  The state of the environment. An environment can be in one of the following states: <code>READY_FOR_DEPLOYMENT</code>, <code>DEPLOYING</code>, <code>ROLLING_BACK</code>, or <code>ROLLED_BACK</code> <br/>Description:  The description of the environment.<br/>Name:  The name of the environment.<br/>Id:  The environment ID.<br/>ApplicationId:  The application ID.<br/>        """
        pass

    def get_hosted_configuration_version(self, VersionNumber: int, ConfigurationProfileId: str, ApplicationId: str) -> HostedConfigurationVersion:
        r"""Get information about a specific configuration version.

        :param self:
        :param VersionNumber:  The version.<br/>ConfigurationProfileId:  The configuration profile ID.<br/>ApplicationId:  The application ID.<br/>
        :return: ContentType:  A standard MIME type describing the format of the configuration content. For more information, see <a href="https://docs.aws.amazon.com/https:/www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.17">Content-Type</a>.<br/>Content:  The content of the configuration or the configuration data.<br/>Description:  A description of the configuration.<br/>VersionNumber:  The configuration version.<br/>ConfigurationProfileId:  The configuration profile ID.<br/>ApplicationId:  The application ID.<br/>        """
        pass

    def list_applications(self, MaxResults: int=None, NextToken: str=None) -> Applications:
        r"""List all applications in your AWS account.

        :param self:
        :param NextToken:  A token to start the list. Use this token to get the next set of results.<br/>MaxResults:  The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.<br/>
        :return: NextToken:  The token for the next set of items to return. Use this token to get the next set of results.<br/>Items:  The elements from this collection.<br/>        """
        pass

    def list_configuration_profiles(self, ApplicationId: str, MaxResults: int=None, NextToken: str=None) -> ConfigurationProfiles:
        r"""Lists the configuration profiles for an application.

        :param self:
        :param NextToken:  A token to start the list. Use this token to get the next set of results.<br/>MaxResults:  The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.<br/>ApplicationId:  The application ID.<br/>
        :return: NextToken:  The token for the next set of items to return. Use this token to get the next set of results.<br/>Items:  The elements from this collection.<br/>        """
        pass

    def list_deployment_strategies(self, MaxResults: int=None, NextToken: str=None) -> DeploymentStrategies:
        r"""List deployment strategies.

        :param self:
        :param NextToken:  A token to start the list. Use this token to get the next set of results.<br/>MaxResults:  The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.<br/>
        :return: NextToken:  The token for the next set of items to return. Use this token to get the next set of results.<br/>Items:  The elements from this collection.<br/>        """
        pass

    def list_deployments(self, EnvironmentId: str, ApplicationId: str, MaxResults: int=None, NextToken: str=None) -> Deployments:
        r"""Lists the deployments for an environment.

        :param self:
        :param NextToken:  A token to start the list. Use this token to get the next set of results.<br/>MaxResults:  The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.<br/>EnvironmentId:  The environment ID.<br/>ApplicationId:  The application ID.<br/>
        :return: NextToken:  The token for the next set of items to return. Use this token to get the next set of results.<br/>Items:  The elements from this collection.<br/>        """
        pass

    def list_environments(self, ApplicationId: str, MaxResults: int=None, NextToken: str=None) -> Environments:
        r"""List the environments for an application.

        :param self:
        :param NextToken:  A token to start the list. Use this token to get the next set of results.<br/>MaxResults:  The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.<br/>ApplicationId:  The application ID.<br/>
        :return: NextToken:  The token for the next set of items to return. Use this token to get the next set of results.<br/>Items:  The elements from this collection.<br/>        """
        pass

    def list_hosted_configuration_versions(self, ConfigurationProfileId: str, ApplicationId: str, MaxResults: int=None, NextToken: str=None) -> HostedConfigurationVersions:
        r"""View a list of configurations stored in the AppConfig configuration store by version.

        :param self:
        :param NextToken:  A token to start the list. Use this token to get the next set of results. <br/>MaxResults:  The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.<br/>ConfigurationProfileId:  The configuration profile ID.<br/>ApplicationId:  The application ID.<br/>
        :return: NextToken:  The token for the next set of items to return. Use this token to get the next set of results.<br/>Items:  The elements from this collection.<br/>        """
        pass

    def list_tags_for_resource(self, ResourceArn: str) -> ResourceTags:
        r"""Retrieves the list of key-value tags assigned to the resource.

        :param self:
        :param ResourceArn:  The resource ARN.<br/>
        :return: Tags:  Metadata to assign to AppConfig resources. Tags help organize and categorize your AppConfig resources. Each tag consists of a key and an optional value, both of which you define.<br/>        """
        pass

    def start_deployment(self, ConfigurationVersion: str, ConfigurationProfileId: str, DeploymentStrategyId: str, EnvironmentId: str, ApplicationId: str, Description: str=None, Tags: TagMap=None) -> Deployment:
        r"""Starts a deployment.

        :param self:
        :param Tags:  Metadata to assign to the deployment. Tags help organize and categorize your AppConfig resources. Each tag consists of a key and an optional value, both of which you define.<br/>Description:  A description of the deployment.<br/>ConfigurationVersion:  The configuration version to deploy.<br/>ConfigurationProfileId:  The configuration profile ID.<br/>DeploymentStrategyId:  The deployment strategy ID.<br/>EnvironmentId:  The environment ID.<br/>ApplicationId:  The application ID.<br/>
        :return: CompletedAt:  The time the deployment completed. <br/>StartedAt:  The time the deployment started.<br/>PercentageComplete:  The percentage of targets for which the deployment is available.<br/>EventLog:  A list containing all events related to a deployment. The most recent events are displayed first.<br/>State:  The state of the deployment.<br/>FinalBakeTimeInMinutes:  The amount of time AppConfig monitored for alarms before considering the deployment to be complete and no longer eligible for automatic roll back.<br/>GrowthFactor:  The percentage of targets to receive a deployed configuration during each interval.<br/>GrowthType:  The algorithm used to define how percentage grew over time.<br/>DeploymentDurationInMinutes:  Total amount of time the deployment lasted.<br/>Description:  The description of the deployment.<br/>ConfigurationVersion:  The configuration version that was deployed.<br/>ConfigurationLocationUri:  Information about the source location of the configuration.<br/>ConfigurationName:  The name of the configuration.<br/>DeploymentNumber:  The sequence number of the deployment.<br/>ConfigurationProfileId:  The ID of the configuration profile that was deployed.<br/>DeploymentStrategyId:  The ID of the deployment strategy that was deployed.<br/>EnvironmentId:  The ID of the environment that was deployed.<br/>ApplicationId:  The ID of the application that was deployed.<br/>        """
        pass

    def stop_deployment(self, DeploymentNumber: int, EnvironmentId: str, ApplicationId: str) -> Deployment:
        r"""Stops a deployment. This API action works only on deployments that have a status of <code>DEPLOYING</code>. This action moves the deployment to a status of <code>ROLLED_BACK</code>.

        :param self:
        :param DeploymentNumber:  The sequence number of the deployment.<br/>EnvironmentId:  The environment ID.<br/>ApplicationId:  The application ID.<br/>
        :return: CompletedAt:  The time the deployment completed. <br/>StartedAt:  The time the deployment started.<br/>PercentageComplete:  The percentage of targets for which the deployment is available.<br/>EventLog:  A list containing all events related to a deployment. The most recent events are displayed first.<br/>State:  The state of the deployment.<br/>FinalBakeTimeInMinutes:  The amount of time AppConfig monitored for alarms before considering the deployment to be complete and no longer eligible for automatic roll back.<br/>GrowthFactor:  The percentage of targets to receive a deployed configuration during each interval.<br/>GrowthType:  The algorithm used to define how percentage grew over time.<br/>DeploymentDurationInMinutes:  Total amount of time the deployment lasted.<br/>Description:  The description of the deployment.<br/>ConfigurationVersion:  The configuration version that was deployed.<br/>ConfigurationLocationUri:  Information about the source location of the configuration.<br/>ConfigurationName:  The name of the configuration.<br/>DeploymentNumber:  The sequence number of the deployment.<br/>ConfigurationProfileId:  The ID of the configuration profile that was deployed.<br/>DeploymentStrategyId:  The ID of the deployment strategy that was deployed.<br/>EnvironmentId:  The ID of the environment that was deployed.<br/>ApplicationId:  The ID of the application that was deployed.<br/>        """
        pass

    def tag_resource(self, Tags: TagMap, ResourceArn: str):
        r"""Metadata to assign to an AppConfig resource. Tags help organize and categorize your AppConfig resources. Each tag consists of a key and an optional value, both of which you define. You can specify a maximum of 50 tags for a resource.

        :param self:
        :param Tags:  The key-value string map. The valid character set is [a-zA-Z+-=._:/]. The tag key can be up to 128 characters and must not start with <code>aws:</code>. The tag value can be up to 256 characters.<br/>ResourceArn:  The ARN of the resource for which to retrieve tags.<br/>
        :return:         """
        pass

    def untag_resource(self, TagKeys: List[TagKey], ResourceArn: str):
        r"""Deletes a tag key and value from an AppConfig resource.

        :param self:
        :param TagKeys:  The tag keys to delete.<br/>ResourceArn:  The ARN of the resource for which to remove tags.<br/>
        :return:         """
        pass

    def update_application(self, ApplicationId: str, Name: str=None, Description: str=None) -> Application:
        r"""Updates an application.

        :param self:
        :param Description:  A description of the application.<br/>Name:  The name of the application.<br/>ApplicationId:  The application ID.<br/>
        :return: Description:  The description of the application.<br/>Name:  The application name.<br/>Id:  The application ID.<br/>        """
        pass

    def update_configuration_profile(self, ConfigurationProfileId: str, ApplicationId: str, Name: str=None, Description: str=None, RetrievalRoleArn: str=None, Validators: List[Validator]=None) -> ConfigurationProfile:
        r"""Updates a configuration profile.

        :param self:
        :param Validators:  A list of methods for validating the configuration.<br/>RetrievalRoleArn:  The ARN of an IAM role with permission to access the configuration at the specified LocationUri.<br/>Description:  A description of the configuration profile.<br/>Name:  The name of the configuration profile.<br/>ConfigurationProfileId:  The ID of the configuration profile.<br/>ApplicationId:  The application ID.<br/>
        :return: Validators:  A list of methods for validating the configuration.<br/>RetrievalRoleArn:  The ARN of an IAM role with permission to access the configuration at the specified LocationUri.<br/>LocationUri:  The URI location of the configuration.<br/>Description:  The configuration profile description.<br/>Name:  The name of the configuration profile.<br/>Id:  The configuration profile ID.<br/>ApplicationId:  The application ID.<br/>        """
        pass

    def update_deployment_strategy(self, DeploymentStrategyId: str, Description: str=None, DeploymentDurationInMinutes: int=None, FinalBakeTimeInMinutes: int=None, GrowthFactor: GrowthFactor=None, GrowthType: str=None) -> DeploymentStrategy:
        r"""Updates a deployment strategy.

        :param self:
        :param GrowthType:  The algorithm used to define how percentage grows over time. AWS AppConfig supports the following growth types:  <b>Linear</b>: For this type, AppConfig processes the deployment by increments of the growth factor evenly distributed over the deployment time. For example, a linear deployment that uses a growth factor of 20 initially makes the configuration available to 20 percent of the targets. After 1/5th of the deployment time has passed, the system updates the percentage to 40 percent. This continues until 100% of the targets are set to receive the deployed configuration.  <b>Exponential</b>: For this type, AppConfig processes the deployment exponentially using the following formula: <code>G*(2^N)</code>. In this formula, <code>G</code> is the growth factor specified by the user and <code>N</code> is the number of steps until the configuration is deployed to all targets. For example, if you specify a growth factor of 2, then the system rolls out the configuration as follows:  <code>2*(2^0)</code>   <code>2*(2^1)</code>   <code>2*(2^2)</code>  Expressed numerically, the deployment rolls out as follows: 2% of the targets, 4% of the targets, 8% of the targets, and continues until the configuration has been deployed to all targets.<br/>GrowthFactor:  The percentage of targets to receive a deployed configuration during each interval.<br/>FinalBakeTimeInMinutes:  The amount of time AppConfig monitors for alarms before considering the deployment to be complete and no longer eligible for automatic roll back.<br/>DeploymentDurationInMinutes:  Total amount of time for a deployment to last.<br/>Description:  A description of the deployment strategy.<br/>DeploymentStrategyId:  The deployment strategy ID.<br/>
        :return: ReplicateTo:  Save the deployment strategy to a Systems Manager (SSM) document.<br/>FinalBakeTimeInMinutes:  The amount of time AppConfig monitored for alarms before considering the deployment to be complete and no longer eligible for automatic roll back.<br/>GrowthFactor:  The percentage of targets that received a deployed configuration during each interval.<br/>GrowthType:  The algorithm used to define how percentage grew over time.<br/>DeploymentDurationInMinutes:  Total amount of time the deployment lasted.<br/>Description:  The description of the deployment strategy.<br/>Name:  The name of the deployment strategy.<br/>Id:  The deployment strategy ID.<br/>        """
        pass

    def update_environment(self, EnvironmentId: str, ApplicationId: str, Name: str=None, Description: str=None, Monitors: List[Monitor]=None) -> Environment:
        r"""Updates an environment.

        :param self:
        :param Monitors:  Amazon CloudWatch alarms to monitor during the deployment process.<br/>Description:  A description of the environment.<br/>Name:  The name of the environment.<br/>EnvironmentId:  The environment ID.<br/>ApplicationId:  The application ID.<br/>
        :return: Monitors:  Amazon CloudWatch alarms monitored during the deployment.<br/>State:  The state of the environment. An environment can be in one of the following states: <code>READY_FOR_DEPLOYMENT</code>, <code>DEPLOYING</code>, <code>ROLLING_BACK</code>, or <code>ROLLED_BACK</code> <br/>Description:  The description of the environment.<br/>Name:  The name of the environment.<br/>Id:  The environment ID.<br/>ApplicationId:  The application ID.<br/>        """
        pass

    def validate_configuration(self, ConfigurationVersion: str, ConfigurationProfileId: str, ApplicationId: str):
        r"""Uses the validators in a configuration profile to validate a configuration.

        :param self:
        :param ConfigurationVersion:  The version of the configuration to validate.<br/>ConfigurationProfileId:  The configuration profile ID.<br/>ApplicationId:  The application ID.<br/>
        :return:         """
        pass





class Appflow(BaseClient):
    r"""Welcome to the Amazon AppFlow API reference. This guide is for developers who need detailed information about the Amazon AppFlow API operations, data types, and errors.  Amazon AppFlow is a fully managed integration service that enables you to securely transfer data between software as a service (SaaS) applications like Salesforce, Marketo, Slack, and ServiceNow, and AWS services like Amazon S3 and Amazon Redshift.  Use the following links to get started on the Amazon AppFlow API: <ul> <li>  <a href="https://docs.aws.amazon.com/appflow/1.0/APIReference/API_Operations.html">Actions</a>: An alphabetical list of all Amazon AppFlow API operations. </li> <li>  <a href="https://docs.aws.amazon.com/appflow/1.0/APIReference/API_Types.html">Data types</a>: An alphabetical list of all Amazon AppFlow data types. </li> <li>  <a href="https://docs.aws.amazon.com/appflow/1.0/APIReference/CommonParameters.html">Common parameters</a>: Parameters that all Query operations can use. </li> <li>  <a href="https://docs.aws.amazon.com/appflow/1.0/APIReference/CommonErrors.html">Common errors</a>: Client and server errors that all operations can return. </li> </ul> If you're new to Amazon AppFlow, we recommend that you review the <a href="https://docs.aws.amazon.com/appflow/latest/userguide/what-is-appflow.html">Amazon AppFlow User Guide</a>. Amazon AppFlow API users can use vendor-specific mechanisms for OAuth, and include applicable OAuth attributes (such as <code>auth-code</code> and <code>redirecturi</code>) with the connector-specific <code>ConnectorProfileProperties</code> when creating a new connector profile using Amazon AppFlow API operations. For example, Salesforce users can refer to the <a href="https://help.salesforce.com/articleView?id=remoteaccess_authenticate.htm"> <i>Authorize Apps with OAuth</i> </a> documentation."""




    class CreateConnectorProfileRequest(Mapping):
        pass
    
    class CreateConnectorProfileResponse(Mapping):
        pass
    
    class ConnectorProfileConfig(Mapping):
        pass
    
    class CreateFlowRequest(Mapping):
        pass
    
    class CreateFlowResponse(Mapping):
        pass
    
    class TriggerConfig(Mapping):
        pass
    
    class SourceFlowConfig(Mapping):
        pass
    
    class DestinationFlowConfig(Mapping):
        pass
    
    class Task(Mapping):
        pass
    
    class TagMap(object):
        pass
    
    class DeleteConnectorProfileRequest(Mapping):
        pass
    
    class DeleteConnectorProfileResponse(Mapping):
        pass
    
    class Boolean(object):
        pass
    
    class DeleteFlowRequest(Mapping):
        pass
    
    class DeleteFlowResponse(Mapping):
        pass
    
    class DescribeConnectorEntityRequest(Mapping):
        pass
    
    class DescribeConnectorEntityResponse(Mapping):
        pass
    
    class DescribeConnectorProfilesRequest(Mapping):
        pass
    
    class DescribeConnectorProfilesResponse(Mapping):
        pass
    
    class ConnectorProfileName(object):
        pass
    
    class DescribeConnectorsRequest(Mapping):
        pass
    
    class DescribeConnectorsResponse(Mapping):
        pass
    
    class ConnectorType(object):
        pass
    
    class DescribeFlowRequest(Mapping):
        pass
    
    class DescribeFlowResponse(Mapping):
        pass
    
    class DescribeFlowExecutionRecordsRequest(Mapping):
        pass
    
    class DescribeFlowExecutionRecordsResponse(Mapping):
        pass
    
    class ListConnectorEntitiesRequest(Mapping):
        pass
    
    class ListConnectorEntitiesResponse(Mapping):
        pass
    
    class ListFlowsRequest(Mapping):
        pass
    
    class ListFlowsResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class StartFlowRequest(Mapping):
        pass
    
    class StartFlowResponse(Mapping):
        pass
    
    class StopFlowRequest(Mapping):
        pass
    
    class StopFlowResponse(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateConnectorProfileRequest(Mapping):
        pass
    
    class UpdateConnectorProfileResponse(Mapping):
        pass
    
    class UpdateFlowRequest(Mapping):
        pass
    
    class UpdateFlowResponse(Mapping):
        pass
    
    def create_connector_profile(self, connectorProfileConfig: ConnectorProfileConfig, connectionMode: str, connectorType: str, connectorProfileName: str, kmsArn: str=None) -> CreateConnectorProfileResponse:
        r""" Creates a new connector profile associated with your AWS account. There is a soft quota of 100 connector profiles per AWS account. If you need more connector profiles than this quota allows, you can submit a request to the Amazon AppFlow team through the Amazon AppFlow support channel. 

        :param self:
        :param connectorProfileConfig:   Defines the connector-specific configuration and credentials. :<br/>connectionMode:   Indicates the connection mode and specifies whether it is public or private. Private flows use AWS PrivateLink to route data over AWS infrastructure without exposing it to the public internet. <br/>connectorType:   The type of connector, such as Salesforce, Amplitude, and so on. <br/>kmsArn:   The ARN (Amazon Resource Name) of the Key Management Service (KMS) key you provide for encryption. This is required if you do not want to use the Amazon AppFlow-managed KMS key. If you don't provide anything here, Amazon AppFlow uses the Amazon AppFlow-managed KMS key. <br/>connectorProfileName:   The name of the connector profile. The name is unique for each <code>ConnectorProfile</code> in your AWS account. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>connectorProfileCredentials</i>  The connector-specific credentials required by each connector. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>connectorProfileCredentials</b>:  The connector-specific credentials required by each connector. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>connectorProfileProperties</i>  The connector-specific properties of the profile configuration. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>connectorProfileProperties</b>:  The connector-specific properties of the profile configuration. <br/> The connector-specific properties required by Amplitude. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Amplitude</b>:  The connector-specific properties required by Amplitude.  The connector-specific credentials required when using Amplitude. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Amplitude</b>:  The connector-specific credentials required when using Amplitude. 
        :return: connectorProfileArn:   The Amazon Resource Name (ARN) of the connector profile. <br/>        """
        pass

    def create_flow(self, tasks: List[Task], destinationFlowConfigList: List[DestinationFlowConfig], sourceFlowConfig: SourceFlowConfig, triggerConfig: TriggerConfig, flowName: str, description: str=None, kmsArn: str=None, tags: TagMap=None) -> CreateFlowResponse:
        r""" Enables your application to create a new flow using Amazon AppFlow. You must create a connector profile before calling this API. Please note that the Request Syntax below shows syntax for multiple destinations, however, you can only transfer data to one item in this list at a time. Amazon AppFlow does not currently support flows to multiple destinations at once. 

        :param self:
        :param tags:   The tags used to organize, track, or control access for your flow. <br/>tasks:   A list of tasks that Amazon AppFlow performs while transferring the data in the flow run. <br/>destinationFlowConfigList:   The configuration that controls how Amazon AppFlow places data in the destination connector. <br/>sourceFlowConfig:   The configuration that controls how Amazon AppFlow retrieves data from the source connector. :<br/>triggerConfig:   The trigger settings that determine how and when the flow runs. :<br/>kmsArn:   The ARN (Amazon Resource Name) of the Key Management Service (KMS) key you provide for encryption. This is required if you do not want to use the Amazon AppFlow-managed KMS key. If you don't provide anything here, Amazon AppFlow uses the Amazon AppFlow-managed KMS key. <br/>description:   A description of the flow you want to create. <br/>flowName:   The specified name of the flow. Spaces are not allowed. Use underscores (_) or hyphens (-) only. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>triggerProperties</i>  Specifies the configuration details of a schedule-triggered flow as defined by the user. Currently, these settings only apply to the <code>Scheduled</code> trigger type. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>triggerProperties</b>:  Specifies the configuration details of a schedule-triggered flow as defined by the user. Currently, these settings only apply to the <code>Scheduled</code> trigger type. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>triggerType</i>  Specifies the type of flow trigger. This can be <code>OnDemand</code>, <code>Scheduled</code>, or <code>Event</code>. <br/> Specifies the configuration details of a schedule-triggered flow as defined by the user. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Scheduled</b>:  Specifies the configuration details of a schedule-triggered flow as defined by the user. &nbsp;&nbsp;&nbsp;&nbsp; <i>incrementalPullConfig</i>  Defines the configuration for a scheduled incremental data pull. If a valid configuration is provided, the fields specified in the configuration are used when querying for the incremental data pull. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>incrementalPullConfig</b>:  Defines the configuration for a scheduled incremental data pull. If a valid configuration is provided, the fields specified in the configuration are used when querying for the incremental data pull. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>sourceConnectorProperties</i>  Specifies the information that is required to query a particular source connector. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>sourceConnectorProperties</b>:  Specifies the information that is required to query a particular source connector. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>connectorProfileName</i>  The name of the connector profile. This name must be unique for each connector profile in the AWS account. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>connectorType</i>  The type of connector, such as Salesforce, Amplitude, and so on. <br/> Specifies the information that is required for querying Amplitude. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Amplitude</b>:  Specifies the information that is required for querying Amplitude. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>datetimeTypeFieldName</i>  A field that specifies the date time or timestamp field as the criteria to use when importing incremental records from the source. <br/>
        :return: flowStatus:   Indicates the current status of the flow. <br/>flowArn:   The flow's Amazon Resource Name (ARN). <br/>        """
        pass

    def delete_connector_profile(self, connectorProfileName: str, forceDelete: Boolean=None) -> DeleteConnectorProfileResponse:
        r""" Enables you to delete an existing connector profile. 

        :param self:
        :param forceDelete:   Indicates whether Amazon AppFlow should delete the profile, even if it is currently in use in one or more flows. <br/>connectorProfileName:   The name of the connector profile. The name is unique for each <code>ConnectorProfile</code> in your account. <br/>
        :return:         """
        pass

    def delete_flow(self, flowName: str, forceDelete: Boolean=None) -> DeleteFlowResponse:
        r""" Enables your application to delete an existing flow. Before deleting the flow, Amazon AppFlow validates the request by checking the flow configuration and status. You can delete flows one at a time. 

        :param self:
        :param forceDelete:   Indicates whether Amazon AppFlow should delete the flow, even if it is currently in use. <br/>flowName:   The specified name of the flow. Spaces are not allowed. Use underscores (_) or hyphens (-) only. <br/>
        :return:         """
        pass

    def describe_connector_entity(self, connectorEntityName: str, connectorType: str=None, connectorProfileName: str=None) -> DescribeConnectorEntityResponse:
        r""" Provides details regarding the entity used with the connector, with a description of the data model for each entity. 

        :param self:
        :param connectorProfileName:   The name of the connector profile. The name is unique for each <code>ConnectorProfile</code> in the AWS account. <br/>connectorType:   The type of connector application, such as Salesforce, Amplitude, and so on. <br/>connectorEntityName:   The entity name for that connector. <br/>
        :return: connectorEntityFields:   Describes the fields for that connector entity. For example, for an <i>account</i> entity, the fields would be <i>account name</i>, <i>account ID</i>, and so on. <br/>        """
        pass

    def describe_connector_profiles(self, connectorProfileNames: List[ConnectorProfileName]=None, connectorType: str=None, maxResults: int=None, nextToken: str=None) -> DescribeConnectorProfilesResponse:
        r""" Returns a list of <code>connector-profile</code> details matching the provided <code>connector-profile</code> names and <code>connector-types</code>. Both input lists are optional, and you can use them to filter the result.  If no names or <code>connector-types</code> are provided, returns all connector profiles in a paginated form. If there is no match, this operation returns an empty list.

        :param self:
        :param nextToken:   The pagination token for the next page of data. <br/>maxResults:   Specifies the maximum number of items that should be returned in the result set. The default for <code>maxResults</code> is 20 (for all paginated API operations). <br/>connectorType:   The type of connector, such as Salesforce, Amplitude, and so on. <br/>connectorProfileNames:   The name of the connector profile. The name is unique for each <code>ConnectorProfile</code> in the AWS account. <br/>
        :return: nextToken:   The pagination token for the next page of data. If <code>nextToken=null</code>, this means that all records have been fetched. <br/>connectorProfileDetails:   Returns information about the connector profiles associated with the flow. <br/>        """
        pass

    def describe_connectors(self, connectorTypes: List[ConnectorType]=None, nextToken: str=None) -> DescribeConnectorsResponse:
        r""" Describes the connectors vended by Amazon AppFlow for specified connector types. If you don't specify a connector type, this operation describes all connectors vended by Amazon AppFlow. If there are more connectors than can be returned in one page, the response contains a <code>nextToken</code> object, which can be be passed in to the next call to the <code>DescribeConnectors</code> API operation to retrieve the next page. 

        :param self:
        :param nextToken:   The pagination token for the next page of data. <br/>connectorTypes:   The type of connector, such as Salesforce, Amplitude, and so on. <br/>
        :return: nextToken:   The pagination token for the next page of data. <br/>connectorConfigurations:   The configuration that is applied to the connectors used in the flow. <br/>        """
        pass

    def describe_flow(self, flowName: str) -> DescribeFlowResponse:
        r""" Provides a description of the specified flow. 

        :param self:
        :param flowName:   The specified name of the flow. Spaces are not allowed. Use underscores (_) or hyphens (-) only. <br/>
        :return: tags:   The tags used to organize, track, or control access for your flow. <br/>lastUpdatedBy:   Specifies the user name of the account that performed the most recent update. <br/>createdBy:   The ARN of the user who created the flow. <br/>lastUpdatedAt:   Specifies when the flow was last updated. <br/>createdAt:   Specifies when the flow was created. <br/>tasks:   A list of tasks that Amazon AppFlow performs while transferring the data in the flow run. <br/>triggerConfig:   The trigger settings that determine how and when the flow runs. :<br/>lastRunExecutionDetails:   Describes the details of the most recent flow run. :<br/>destinationFlowConfigList:   The configuration that controls how Amazon AppFlow transfers data to the destination connector. <br/>sourceFlowConfig:   The configuration that controls how Amazon AppFlow retrieves data from the source connector. :<br/>flowStatusMessage:   Contains an error message if the flow status is in a suspended or error state. This applies only to scheduled or event-triggered flows. <br/>flowStatus:   Indicates the current status of the flow. <br/>kmsArn:   The ARN (Amazon Resource Name) of the Key Management Service (KMS) key you provide for encryption. This is required if you do not want to use the Amazon AppFlow-managed KMS key. If you don't provide anything here, Amazon AppFlow uses the Amazon AppFlow-managed KMS key. <br/>flowName:   The specified name of the flow. Spaces are not allowed. Use underscores (_) or hyphens (-) only. <br/>description:   A description of the flow. <br/>flowArn:   The flow's Amazon Resource Name (ARN). <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>incrementalPullConfig</i>  Defines the configuration for a scheduled incremental data pull. If a valid configuration is provided, the fields specified in the configuration are used when querying for the incremental data pull. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>incrementalPullConfig</b>:  Defines the configuration for a scheduled incremental data pull. If a valid configuration is provided, the fields specified in the configuration are used when querying for the incremental data pull. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>sourceConnectorProperties</i>  Specifies the information that is required to query a particular source connector. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>sourceConnectorProperties</b>:  Specifies the information that is required to query a particular source connector. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>connectorProfileName</i>  The name of the connector profile. This name must be unique for each connector profile in the AWS account. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>connectorType</i>  The type of connector, such as Salesforce, Amplitude, and so on. <br/> Specifies the information that is required for querying Amplitude. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Amplitude</b>:  Specifies the information that is required for querying Amplitude. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>datetimeTypeFieldName</i>  A field that specifies the date time or timestamp field as the criteria to use when importing incremental records from the source. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>mostRecentExecutionStatus</i>  Specifies the status of the most recent flow run. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>mostRecentExecutionTime</i>  Specifies the time of the most recent flow run. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>mostRecentExecutionMessage</i>  Describes the details of the most recent flow run. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>triggerProperties</i>  Specifies the configuration details of a schedule-triggered flow as defined by the user. Currently, these settings only apply to the <code>Scheduled</code> trigger type. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>triggerProperties</b>:  Specifies the configuration details of a schedule-triggered flow as defined by the user. Currently, these settings only apply to the <code>Scheduled</code> trigger type. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>triggerType</i>  Specifies the type of flow trigger. This can be <code>OnDemand</code>, <code>Scheduled</code>, or <code>Event</code>. <br/> Specifies the configuration details of a schedule-triggered flow as defined by the user. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Scheduled</b>:  Specifies the configuration details of a schedule-triggered flow as defined by the user.         """
        pass

    def describe_flow_execution_records(self, flowName: str, maxResults: int=None, nextToken: str=None) -> DescribeFlowExecutionRecordsResponse:
        r""" Fetches the execution history of the flow. 

        :param self:
        :param nextToken:   The pagination token for the next page of data. <br/>maxResults:   Specifies the maximum number of items that should be returned in the result set. The default for <code>maxResults</code> is 20 (for all paginated API operations). <br/>flowName:   The specified name of the flow. Spaces are not allowed. Use underscores (_) or hyphens (-) only. <br/>
        :return: nextToken:   The pagination token for the next page of data. <br/>flowExecutions:   Returns a list of all instances when this flow was run. <br/>        """
        pass

    def list_connector_entities(self, connectorProfileName: str=None, connectorType: str=None, entitiesPath: str=None) -> ListConnectorEntitiesResponse:
        r""" Returns the list of available connector entities supported by Amazon AppFlow. For example, you can query Salesforce for <i>Account</i> and <i>Opportunity</i> entities, or query ServiceNow for the <i>Incident</i> entity. 

        :param self:
        :param entitiesPath:   This optional parameter is specific to connector implementation. Some connectors support multiple levels or categories of entities. You can find out the list of roots for such providers by sending a request without the <code>entitiesPath</code> parameter. If the connector supports entities at different roots, this initial request returns the list of roots. Otherwise, this request returns all entities supported by the provider. <br/>connectorType:   The type of connector, such as Salesforce, Amplitude, and so on. <br/>connectorProfileName:   The name of the connector profile. The name is unique for each <code>ConnectorProfile</code> in the AWS account, and is used to query the downstream connector. <br/>
        :return: connectorEntityMap:   The response of <code>ListConnectorEntities</code> lists entities grouped by category. This map's key represents the group name, and its value contains the list of entities belonging to that group. <br/>        """
        pass

    def list_flows(self, maxResults: int=None, nextToken: str=None) -> ListFlowsResponse:
        r""" Lists all of the flows associated with your account. 

        :param self:
        :param nextToken:   The pagination token for next page of data. <br/>maxResults:   Specifies the maximum number of items that should be returned in the result set. <br/>
        :return: nextToken:   The pagination token for next page of data. <br/>flows:   The list of flows associated with your account. <br/>        """
        pass

    def list_tags_for_resource(self, resourceArn: str) -> ListTagsForResourceResponse:
        r""" Retrieves the tags that are associated with a specified flow. 

        :param self:
        :param resourceArn:   The Amazon Resource Name (ARN) of the specified flow. <br/>
        :return: tags:   The tags used to organize, track, or control access for your flow. <br/>        """
        pass

    def start_flow(self, flowName: str) -> StartFlowResponse:
        r""" Activates an existing flow. For on-demand flows, this operation runs the flow immediately. For schedule and event-triggered flows, this operation activates the flow. 

        :param self:
        :param flowName:   The specified name of the flow. Spaces are not allowed. Use underscores (_) or hyphens (-) only. <br/>
        :return: executionId:   Returns the internal execution ID of an on-demand flow when the flow is started. For scheduled or event-triggered flows, this value is null. <br/>flowStatus:   Indicates the current status of the flow. <br/>flowArn:   The flow's Amazon Resource Name (ARN). <br/>        """
        pass

    def stop_flow(self, flowName: str) -> StopFlowResponse:
        r""" Deactivates the existing flow. For on-demand flows, this operation returns an <code>unsupportedOperationException</code> error message. For schedule and event-triggered flows, this operation deactivates the flow. 

        :param self:
        :param flowName:   The specified name of the flow. Spaces are not allowed. Use underscores (_) or hyphens (-) only. <br/>
        :return: flowStatus:   Indicates the current status of the flow. <br/>flowArn:   The flow's Amazon Resource Name (ARN). <br/>        """
        pass

    def tag_resource(self, tags: TagMap, resourceArn: str) -> TagResourceResponse:
        r""" Applies a tag to the specified flow. 

        :param self:
        :param tags:   The tags used to organize, track, or control access for your flow. <br/>resourceArn:   The Amazon Resource Name (ARN) of the flow that you want to tag. <br/>
        :return:         """
        pass

    def untag_resource(self, tagKeys: List[TagKey], resourceArn: str) -> UntagResourceResponse:
        r""" Removes a tag from the specified flow. 

        :param self:
        :param tagKeys:   The tag keys associated with the tag that you want to remove from your flow. <br/>resourceArn:   The Amazon Resource Name (ARN) of the flow that you want to untag. <br/>
        :return:         """
        pass

    def update_connector_profile(self, connectorProfileConfig: ConnectorProfileConfig, connectionMode: str, connectorProfileName: str) -> UpdateConnectorProfileResponse:
        r""" Updates a given connector profile associated with your account. 

        :param self:
        :param connectorProfileConfig:   Defines the connector-specific profile configuration and credentials. :<br/>connectionMode:   Indicates the connection mode and if it is public or private. <br/>connectorProfileName:   The name of the connector profile and is unique for each <code>ConnectorProfile</code> in the AWS Account. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>connectorProfileCredentials</i>  The connector-specific credentials required by each connector. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>connectorProfileCredentials</b>:  The connector-specific credentials required by each connector. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>connectorProfileProperties</i>  The connector-specific properties of the profile configuration. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>connectorProfileProperties</b>:  The connector-specific properties of the profile configuration. <br/> The connector-specific properties required by Amplitude. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Amplitude</b>:  The connector-specific properties required by Amplitude.  The connector-specific credentials required when using Amplitude. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Amplitude</b>:  The connector-specific credentials required when using Amplitude. 
        :return: connectorProfileArn:   The Amazon Resource Name (ARN) of the connector profile. <br/>        """
        pass

    def update_flow(self, tasks: List[Task], destinationFlowConfigList: List[DestinationFlowConfig], triggerConfig: TriggerConfig, flowName: str, description: str=None, sourceFlowConfig: SourceFlowConfig=None) -> UpdateFlowResponse:
        r""" Updates an existing flow. 

        :param self:
        :param tasks:   A list of tasks that Amazon AppFlow performs while transferring the data in the flow run. <br/>destinationFlowConfigList:   The configuration that controls how Amazon AppFlow transfers data to the destination connector. <br/>sourceFlowConfig:   Contains information about the configuration of the source connector used in the flow. :<br/>triggerConfig:   The trigger settings that determine how and when the flow runs. :<br/>description:   A description of the flow. <br/>flowName:   The specified name of the flow. Spaces are not allowed. Use underscores (_) or hyphens (-) only. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>triggerProperties</i>  Specifies the configuration details of a schedule-triggered flow as defined by the user. Currently, these settings only apply to the <code>Scheduled</code> trigger type. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>triggerProperties</b>:  Specifies the configuration details of a schedule-triggered flow as defined by the user. Currently, these settings only apply to the <code>Scheduled</code> trigger type. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>triggerType</i>  Specifies the type of flow trigger. This can be <code>OnDemand</code>, <code>Scheduled</code>, or <code>Event</code>. <br/> Specifies the configuration details of a schedule-triggered flow as defined by the user. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Scheduled</b>:  Specifies the configuration details of a schedule-triggered flow as defined by the user. &nbsp;&nbsp;&nbsp;&nbsp; <i>incrementalPullConfig</i>  Defines the configuration for a scheduled incremental data pull. If a valid configuration is provided, the fields specified in the configuration are used when querying for the incremental data pull. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>incrementalPullConfig</b>:  Defines the configuration for a scheduled incremental data pull. If a valid configuration is provided, the fields specified in the configuration are used when querying for the incremental data pull. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>sourceConnectorProperties</i>  Specifies the information that is required to query a particular source connector. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>sourceConnectorProperties</b>:  Specifies the information that is required to query a particular source connector. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>connectorProfileName</i>  The name of the connector profile. This name must be unique for each connector profile in the AWS account. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>connectorType</i>  The type of connector, such as Salesforce, Amplitude, and so on. <br/> Specifies the information that is required for querying Amplitude. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Amplitude</b>:  Specifies the information that is required for querying Amplitude. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>datetimeTypeFieldName</i>  A field that specifies the date time or timestamp field as the criteria to use when importing incremental records from the source. <br/>
        :return: flowStatus:  Indicates the current status of the flow. <br/>        """
        pass





class AppIntegrationsService(BaseClient):
    r"""The Amazon AppIntegrations APIs are in preview release and are subject to change. The Amazon AppIntegrations service enables you to configure and reuse connections to external applications. For information about how you can use external applications with Amazon Connect, see <a href="https://docs.aws.amazon.com/connect/latest/adminguide/crm.html">Set up pre-built integrations</a> in the <i>Amazon Connect Administrator Guide</i>."""




    class CreateEventIntegrationRequest(Mapping):
        pass
    
    class CreateEventIntegrationResponse(Mapping):
        pass
    
    class EventFilter(Mapping):
        pass
    
    class TagMap(object):
        pass
    
    class DeleteEventIntegrationRequest(Mapping):
        pass
    
    class DeleteEventIntegrationResponse(Mapping):
        pass
    
    class GetEventIntegrationRequest(Mapping):
        pass
    
    class GetEventIntegrationResponse(Mapping):
        pass
    
    class ListEventIntegrationAssociationsRequest(Mapping):
        pass
    
    class ListEventIntegrationAssociationsResponse(Mapping):
        pass
    
    class ListEventIntegrationsRequest(Mapping):
        pass
    
    class ListEventIntegrationsResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateEventIntegrationRequest(Mapping):
        pass
    
    class UpdateEventIntegrationResponse(Mapping):
        pass
    
    def create_event_integration(self, EventBridgeBus: str, EventFilter: EventFilter, Name: str, Description: str=None, ClientToken: str=None, Tags: TagMap=None) -> CreateEventIntegrationResponse:
        r"""The Amazon AppIntegrations APIs are in preview release and are subject to change. Creates an EventIntegration, given a specified name, description, and a reference to an Amazon Eventbridge bus in your account and a partner event source that will push events to that bus. No objects are created in the your account, only metadata that is persisted on the EventIntegration control plane.

        :param self:
        :param Tags:  One or more tags.<br/>ClientToken:  A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.<br/>EventBridgeBus:  The Eventbridge bus.<br/>EventFilter:  The event filter.:<br/>Description:  The description of the event integration.<br/>Name:  The name of the event integration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Source</i> The source of the events.<br/>
        :return: EventIntegrationArn:  The Amazon Resource Name (ARN) of the event integration. <br/>        """
        pass

    def delete_event_integration(self, Name: str) -> DeleteEventIntegrationResponse:
        r"""The Amazon AppIntegrations APIs are in preview release and are subject to change. Deletes the specified existing event integration. If the event integration is associated with clients, the request is rejected.

        :param self:
        :param Name:  The name of the event integration.<br/>
        :return:         """
        pass

    def get_event_integration(self, Name: str) -> GetEventIntegrationResponse:
        r"""The Amazon AppIntegrations APIs are in preview release and are subject to change. Return information about the event integration.

        :param self:
        :param Name:  The name of the event integration. <br/>
        :return: Tags:  One or more tags.<br/>EventFilter:  The event filter.:<br/>EventBridgeBus:  The Eventbridge bus.<br/>EventIntegrationArn:  The Amazon Resource Name (ARN) for the event integration.<br/>Description:  The description of the event integration.<br/>Name:  The name of the event integration. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Source</i> The source of the events.<br/>        """
        pass

    def list_event_integration_associations(self, EventIntegrationName: str, NextToken: str=None, MaxResults: int=None) -> ListEventIntegrationAssociationsResponse:
        r"""The Amazon AppIntegrations APIs are in preview release and are subject to change. Returns a paginated list of event integration associations in the account. 

        :param self:
        :param MaxResults:  The maximum number of results to return per page.<br/>NextToken:  The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.<br/>EventIntegrationName:  The name of the event integration. <br/>
        :return: NextToken:  If there are additional results, this is the token for the next set of results.<br/>EventIntegrationAssociations:  The event integration associations.<br/>        """
        pass

    def list_event_integrations(self, NextToken: str=None, MaxResults: int=None) -> ListEventIntegrationsResponse:
        r"""The Amazon AppIntegrations APIs are in preview release and are subject to change. Returns a paginated list of event integrations in the account.

        :param self:
        :param MaxResults:  The maximum number of results to return per page.<br/>NextToken:  The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.<br/>
        :return: NextToken:  If there are additional results, this is the token for the next set of results.<br/>EventIntegrations:  The event integrations.<br/>        """
        pass

    def list_tags_for_resource(self, resourceArn: str) -> ListTagsForResourceResponse:
        r"""The Amazon AppIntegrations APIs are in preview release and are subject to change. Lists the tags for the specified resource.

        :param self:
        :param resourceArn:  The Amazon Resource Name (ARN) of the resource. <br/>
        :return: tags:  Information about the tags.<br/>        """
        pass

    def tag_resource(self, tags: TagMap, resourceArn: str) -> TagResourceResponse:
        r"""The Amazon AppIntegrations APIs are in preview release and are subject to change. Adds the specified tags to the specified resource.

        :param self:
        :param tags:  One or more tags. <br/>resourceArn:  The Amazon Resource Name (ARN) of the resource.<br/>
        :return:         """
        pass

    def untag_resource(self, tagKeys: List[TagKey], resourceArn: str) -> UntagResourceResponse:
        r"""The Amazon AppIntegrations APIs are in preview release and are subject to change. Removes the specified tags from the specified resource.

        :param self:
        :param tagKeys:  The tag keys.<br/>resourceArn:  The Amazon Resource Name (ARN) of the resource.<br/>
        :return:         """
        pass

    def update_event_integration(self, Name: str, Description: str=None) -> UpdateEventIntegrationResponse:
        r"""The Amazon AppIntegrations APIs are in preview release and are subject to change. Updates the description of an event integration.

        :param self:
        :param Description:  The description of the event inegration.<br/>Name:  The name of the event integration.<br/>
        :return:         """
        pass





class ApplicationAutoScaling(BaseClient):
    r"""With Application Auto Scaling, you can configure automatic scaling for the following resources: <ul> <li> Amazon ECS services </li> <li> Amazon EC2 Spot Fleet requests </li> <li> Amazon EMR clusters </li> <li> Amazon AppStream 2.0 fleets </li> <li> Amazon DynamoDB tables and global secondary indexes throughput capacity </li> <li> Amazon Aurora Replicas </li> <li> Amazon SageMaker endpoint variants </li> <li> Custom resources provided by your own applications or services </li> <li> Amazon Comprehend document classification and entity recognizer endpoints </li> <li> AWS Lambda function provisioned concurrency </li> <li> Amazon Keyspaces (for Apache Cassandra) tables </li> <li> Amazon Managed Streaming for Apache Kafka broker storage </li> </ul>  <b>API Summary</b>  The Application Auto Scaling service API includes three key sets of actions:  <ul> <li> Register and manage scalable targets - Register AWS or custom resources as scalable targets (a resource that Application Auto Scaling can scale), set minimum and maximum capacity limits, and retrieve information on existing scalable targets. </li> <li> Configure and manage automatic scaling - Define scaling policies to dynamically scale your resources in response to CloudWatch alarms, schedule one-time or recurring scaling actions, and retrieve your recent scaling activity history. </li> <li> Suspend and resume scaling - Temporarily suspend and later resume automatic scaling by calling the <a href="https://docs.aws.amazon.com/autoscaling/application/APIReference/API_RegisterScalableTarget.html">RegisterScalableTarget</a> API action for any Application Auto Scaling scalable target. You can suspend and resume (individually or in combination) scale-out activities that are triggered by a scaling policy, scale-in activities that are triggered by a scaling policy, and scheduled scaling. </li> </ul> To learn more about Application Auto Scaling, including information about granting IAM users required permissions for Application Auto Scaling actions, see the <a href="https://docs.aws.amazon.com/autoscaling/application/userguide/what-is-application-auto-scaling.html">Application Auto Scaling User Guide</a>."""


    class DescribeScalableTargetsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_scalable_targets` for valid parameters"""
            pass
    class DescribeScalingActivitiesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_scaling_activities` for valid parameters"""
            pass
    class DescribeScalingPoliciesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_scaling_policies` for valid parameters"""
            pass
    class DescribeScheduledActionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_scheduled_actions` for valid parameters"""
            pass


    class DeleteScalingPolicyRequest(Mapping):
        pass
    
    class DeleteScalingPolicyResponse(Mapping):
        pass
    
    class DeleteScheduledActionRequest(Mapping):
        pass
    
    class DeleteScheduledActionResponse(Mapping):
        pass
    
    class DeregisterScalableTargetRequest(Mapping):
        pass
    
    class DeregisterScalableTargetResponse(Mapping):
        pass
    
    class DescribeScalableTargetsRequest(Mapping):
        pass
    
    class DescribeScalableTargetsResponse(Mapping):
        pass
    
    class ResourceIdMaxLen1600(object):
        pass
    
    class DescribeScalingActivitiesRequest(Mapping):
        pass
    
    class DescribeScalingActivitiesResponse(Mapping):
        pass
    
    class DescribeScalingPoliciesRequest(Mapping):
        pass
    
    class DescribeScalingPoliciesResponse(Mapping):
        pass
    
    class DescribeScheduledActionsRequest(Mapping):
        pass
    
    class DescribeScheduledActionsResponse(Mapping):
        pass
    
    class PutScalingPolicyRequest(Mapping):
        pass
    
    class PutScalingPolicyResponse(Mapping):
        pass
    
    class StepScalingPolicyConfiguration(Mapping):
        pass
    
    class TargetTrackingScalingPolicyConfiguration(Mapping):
        pass
    
    class PutScheduledActionRequest(Mapping):
        pass
    
    class PutScheduledActionResponse(Mapping):
        pass
    
    class TimestampType(object):
        pass
    
    class ScalableTargetAction(Mapping):
        pass
    
    class RegisterScalableTargetRequest(Mapping):
        pass
    
    class RegisterScalableTargetResponse(Mapping):
        pass
    
    class SuspendedState(Mapping):
        pass
    
    def delete_scaling_policy(self, ScalableDimension: str, ResourceId: str, ServiceNamespace: str, PolicyName: str) -> DeleteScalingPolicyResponse:
        r"""Deletes the specified scaling policy for an Application Auto Scaling scalable target. Deleting a step scaling policy deletes the underlying alarm action, but does not delete the CloudWatch alarm associated with the scaling policy, even if it no longer has an associated action. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-step-scaling-policies.html#delete-step-scaling-policy">Delete a step scaling policy</a> and <a href="https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-target-tracking.html#delete-target-tracking-policy">Delete a target tracking scaling policy</a> in the <i>Application Auto Scaling User Guide</i>.

        :param self:
        :param ScalableDimension:  The scalable dimension. This string consists of the service namespace, resource type, and scaling property. <ul> <li>  <code>ecs:service:DesiredCount</code> - The desired task count of an ECS service. </li> <li>  <code>ec2:spot-fleet-request:TargetCapacity</code> - The target capacity of a Spot Fleet request. </li> <li>  <code>elasticmapreduce:instancegroup:InstanceCount</code> - The instance count of an EMR Instance Group. </li> <li>  <code>appstream:fleet:DesiredCapacity</code> - The desired capacity of an AppStream 2.0 fleet. </li> <li>  <code>dynamodb:table:ReadCapacityUnits</code> - The provisioned read capacity for a DynamoDB table. </li> <li>  <code>dynamodb:table:WriteCapacityUnits</code> - The provisioned write capacity for a DynamoDB table. </li> <li>  <code>dynamodb:index:ReadCapacityUnits</code> - The provisioned read capacity for a DynamoDB global secondary index. </li> <li>  <code>dynamodb:index:WriteCapacityUnits</code> - The provisioned write capacity for a DynamoDB global secondary index. </li> <li>  <code>rds:cluster:ReadReplicaCount</code> - The count of Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible edition. </li> <li>  <code>sagemaker:variant:DesiredInstanceCount</code> - The number of EC2 instances for an Amazon SageMaker model endpoint variant. </li> <li>  <code>custom-resource:ResourceType:Property</code> - The scalable dimension for a custom resource provided by your own application or service. </li> <li>  <code>comprehend:document-classifier-endpoint:DesiredInferenceUnits</code> - The number of inference units for an Amazon Comprehend document classification endpoint. </li> <li>  <code>comprehend:entity-recognizer-endpoint:DesiredInferenceUnits</code> - The number of inference units for an Amazon Comprehend entity recognizer endpoint. </li> <li>  <code>lambda:function:ProvisionedConcurrency</code> - The provisioned concurrency for a Lambda function. </li> <li>  <code>cassandra:table:ReadCapacityUnits</code> - The provisioned read capacity for an Amazon Keyspaces table. </li> <li>  <code>cassandra:table:WriteCapacityUnits</code> - The provisioned write capacity for an Amazon Keyspaces table. </li> <li>  <code>kafka:broker-storage:VolumeSize</code> - The provisioned volume size (in GiB) for brokers in an Amazon MSK cluster. </li> </ul><br/>ResourceId:  The identifier of the resource associated with the scalable target. This string consists of the resource type and unique identifier. <ul> <li> ECS service - The resource type is <code>service</code> and the unique identifier is the cluster name and service name. Example: <code>service/default/sample-webapp</code>. </li> <li> Spot Fleet request - The resource type is <code>spot-fleet-request</code> and the unique identifier is the Spot Fleet request ID. Example: <code>spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE</code>. </li> <li> EMR cluster - The resource type is <code>instancegroup</code> and the unique identifier is the cluster ID and instance group ID. Example: <code>instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0</code>. </li> <li> AppStream 2.0 fleet - The resource type is <code>fleet</code> and the unique identifier is the fleet name. Example: <code>fleet/sample-fleet</code>. </li> <li> DynamoDB table - The resource type is <code>table</code> and the unique identifier is the table name. Example: <code>table/my-table</code>. </li> <li> DynamoDB global secondary index - The resource type is <code>index</code> and the unique identifier is the index name. Example: <code>table/my-table/index/my-table-index</code>. </li> <li> Aurora DB cluster - The resource type is <code>cluster</code> and the unique identifier is the cluster name. Example: <code>cluster:my-db-cluster</code>. </li> <li> Amazon SageMaker endpoint variant - The resource type is <code>variant</code> and the unique identifier is the resource ID. Example: <code>endpoint/my-end-point/variant/KMeansClustering</code>. </li> <li> Custom resources are not supported with a resource type. This parameter must specify the <code>OutputValue</code> from the CloudFormation template stack used to access the resources. The unique identifier is defined by the service provider. More information is available in our <a href="https://github.com/aws/aws-auto-scaling-custom-resource">GitHub repository</a>. </li> <li> Amazon Comprehend document classification endpoint - The resource type and unique identifier are specified using the endpoint ARN. Example: <code>arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE</code>. </li> <li> Amazon Comprehend entity recognizer endpoint - The resource type and unique identifier are specified using the endpoint ARN. Example: <code>arn:aws:comprehend:us-west-2:123456789012:entity-recognizer-endpoint/EXAMPLE</code>. </li> <li> Lambda provisioned concurrency - The resource type is <code>function</code> and the unique identifier is the function name with a function version or alias name suffix that is not <code>$LATEST</code>. Example: <code>function:my-function:prod</code> or <code>function:my-function:1</code>. </li> <li> Amazon Keyspaces table - The resource type is <code>table</code> and the unique identifier is the table name. Example: <code>keyspace/mykeyspace/table/mytable</code>. </li> <li> Amazon MSK cluster - The resource type and unique identifier are specified using the cluster ARN. Example: <code>arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5</code>. </li> </ul><br/>ServiceNamespace:  The namespace of the AWS service that provides the resource. For a resource provided by your own application or service, use <code>custom-resource</code> instead.<br/>PolicyName:  The name of the scaling policy.<br/>
        :return:         """
        pass

    def delete_scheduled_action(self, ScalableDimension: str, ResourceId: str, ScheduledActionName: str, ServiceNamespace: str) -> DeleteScheduledActionResponse:
        r"""Deletes the specified scheduled action for an Application Auto Scaling scalable target. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/application/userguide/scheduled-scaling-additional-cli-commands.html#delete-scheduled-action">Delete a scheduled action</a> in the <i>Application Auto Scaling User Guide</i>.

        :param self:
        :param ScalableDimension:  The scalable dimension. This string consists of the service namespace, resource type, and scaling property. <ul> <li>  <code>ecs:service:DesiredCount</code> - The desired task count of an ECS service. </li> <li>  <code>ec2:spot-fleet-request:TargetCapacity</code> - The target capacity of a Spot Fleet request. </li> <li>  <code>elasticmapreduce:instancegroup:InstanceCount</code> - The instance count of an EMR Instance Group. </li> <li>  <code>appstream:fleet:DesiredCapacity</code> - The desired capacity of an AppStream 2.0 fleet. </li> <li>  <code>dynamodb:table:ReadCapacityUnits</code> - The provisioned read capacity for a DynamoDB table. </li> <li>  <code>dynamodb:table:WriteCapacityUnits</code> - The provisioned write capacity for a DynamoDB table. </li> <li>  <code>dynamodb:index:ReadCapacityUnits</code> - The provisioned read capacity for a DynamoDB global secondary index. </li> <li>  <code>dynamodb:index:WriteCapacityUnits</code> - The provisioned write capacity for a DynamoDB global secondary index. </li> <li>  <code>rds:cluster:ReadReplicaCount</code> - The count of Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible edition. </li> <li>  <code>sagemaker:variant:DesiredInstanceCount</code> - The number of EC2 instances for an Amazon SageMaker model endpoint variant. </li> <li>  <code>custom-resource:ResourceType:Property</code> - The scalable dimension for a custom resource provided by your own application or service. </li> <li>  <code>comprehend:document-classifier-endpoint:DesiredInferenceUnits</code> - The number of inference units for an Amazon Comprehend document classification endpoint. </li> <li>  <code>comprehend:entity-recognizer-endpoint:DesiredInferenceUnits</code> - The number of inference units for an Amazon Comprehend entity recognizer endpoint. </li> <li>  <code>lambda:function:ProvisionedConcurrency</code> - The provisioned concurrency for a Lambda function. </li> <li>  <code>cassandra:table:ReadCapacityUnits</code> - The provisioned read capacity for an Amazon Keyspaces table. </li> <li>  <code>cassandra:table:WriteCapacityUnits</code> - The provisioned write capacity for an Amazon Keyspaces table. </li> <li>  <code>kafka:broker-storage:VolumeSize</code> - The provisioned volume size (in GiB) for brokers in an Amazon MSK cluster. </li> </ul><br/>ResourceId:  The identifier of the resource associated with the scheduled action. This string consists of the resource type and unique identifier. <ul> <li> ECS service - The resource type is <code>service</code> and the unique identifier is the cluster name and service name. Example: <code>service/default/sample-webapp</code>. </li> <li> Spot Fleet request - The resource type is <code>spot-fleet-request</code> and the unique identifier is the Spot Fleet request ID. Example: <code>spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE</code>. </li> <li> EMR cluster - The resource type is <code>instancegroup</code> and the unique identifier is the cluster ID and instance group ID. Example: <code>instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0</code>. </li> <li> AppStream 2.0 fleet - The resource type is <code>fleet</code> and the unique identifier is the fleet name. Example: <code>fleet/sample-fleet</code>. </li> <li> DynamoDB table - The resource type is <code>table</code> and the unique identifier is the table name. Example: <code>table/my-table</code>. </li> <li> DynamoDB global secondary index - The resource type is <code>index</code> and the unique identifier is the index name. Example: <code>table/my-table/index/my-table-index</code>. </li> <li> Aurora DB cluster - The resource type is <code>cluster</code> and the unique identifier is the cluster name. Example: <code>cluster:my-db-cluster</code>. </li> <li> Amazon SageMaker endpoint variant - The resource type is <code>variant</code> and the unique identifier is the resource ID. Example: <code>endpoint/my-end-point/variant/KMeansClustering</code>. </li> <li> Custom resources are not supported with a resource type. This parameter must specify the <code>OutputValue</code> from the CloudFormation template stack used to access the resources. The unique identifier is defined by the service provider. More information is available in our <a href="https://github.com/aws/aws-auto-scaling-custom-resource">GitHub repository</a>. </li> <li> Amazon Comprehend document classification endpoint - The resource type and unique identifier are specified using the endpoint ARN. Example: <code>arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE</code>. </li> <li> Amazon Comprehend entity recognizer endpoint - The resource type and unique identifier are specified using the endpoint ARN. Example: <code>arn:aws:comprehend:us-west-2:123456789012:entity-recognizer-endpoint/EXAMPLE</code>. </li> <li> Lambda provisioned concurrency - The resource type is <code>function</code> and the unique identifier is the function name with a function version or alias name suffix that is not <code>$LATEST</code>. Example: <code>function:my-function:prod</code> or <code>function:my-function:1</code>. </li> <li> Amazon Keyspaces table - The resource type is <code>table</code> and the unique identifier is the table name. Example: <code>keyspace/mykeyspace/table/mytable</code>. </li> <li> Amazon MSK cluster - The resource type and unique identifier are specified using the cluster ARN. Example: <code>arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5</code>. </li> </ul><br/>ScheduledActionName:  The name of the scheduled action.<br/>ServiceNamespace:  The namespace of the AWS service that provides the resource. For a resource provided by your own application or service, use <code>custom-resource</code> instead.<br/>
        :return:         """
        pass

    def deregister_scalable_target(self, ScalableDimension: str, ResourceId: str, ServiceNamespace: str) -> DeregisterScalableTargetResponse:
        r"""Deregisters an Application Auto Scaling scalable target when you have finished using it. To see which resources have been registered, use <a href="https://docs.aws.amazon.com/autoscaling/application/APIReference/API_DescribeScalableTargets.html">DescribeScalableTargets</a>.  <note> Deregistering a scalable target deletes the scaling policies and the scheduled actions that are associated with it. </note>

        :param self:
        :param ScalableDimension:  The scalable dimension associated with the scalable target. This string consists of the service namespace, resource type, and scaling property. <ul> <li>  <code>ecs:service:DesiredCount</code> - The desired task count of an ECS service. </li> <li>  <code>ec2:spot-fleet-request:TargetCapacity</code> - The target capacity of a Spot Fleet request. </li> <li>  <code>elasticmapreduce:instancegroup:InstanceCount</code> - The instance count of an EMR Instance Group. </li> <li>  <code>appstream:fleet:DesiredCapacity</code> - The desired capacity of an AppStream 2.0 fleet. </li> <li>  <code>dynamodb:table:ReadCapacityUnits</code> - The provisioned read capacity for a DynamoDB table. </li> <li>  <code>dynamodb:table:WriteCapacityUnits</code> - The provisioned write capacity for a DynamoDB table. </li> <li>  <code>dynamodb:index:ReadCapacityUnits</code> - The provisioned read capacity for a DynamoDB global secondary index. </li> <li>  <code>dynamodb:index:WriteCapacityUnits</code> - The provisioned write capacity for a DynamoDB global secondary index. </li> <li>  <code>rds:cluster:ReadReplicaCount</code> - The count of Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible edition. </li> <li>  <code>sagemaker:variant:DesiredInstanceCount</code> - The number of EC2 instances for an Amazon SageMaker model endpoint variant. </li> <li>  <code>custom-resource:ResourceType:Property</code> - The scalable dimension for a custom resource provided by your own application or service. </li> <li>  <code>comprehend:document-classifier-endpoint:DesiredInferenceUnits</code> - The number of inference units for an Amazon Comprehend document classification endpoint. </li> <li>  <code>comprehend:entity-recognizer-endpoint:DesiredInferenceUnits</code> - The number of inference units for an Amazon Comprehend entity recognizer endpoint. </li> <li>  <code>lambda:function:ProvisionedConcurrency</code> - The provisioned concurrency for a Lambda function. </li> <li>  <code>cassandra:table:ReadCapacityUnits</code> - The provisioned read capacity for an Amazon Keyspaces table. </li> <li>  <code>cassandra:table:WriteCapacityUnits</code> - The provisioned write capacity for an Amazon Keyspaces table. </li> <li>  <code>kafka:broker-storage:VolumeSize</code> - The provisioned volume size (in GiB) for brokers in an Amazon MSK cluster. </li> </ul><br/>ResourceId:  The identifier of the resource associated with the scalable target. This string consists of the resource type and unique identifier. <ul> <li> ECS service - The resource type is <code>service</code> and the unique identifier is the cluster name and service name. Example: <code>service/default/sample-webapp</code>. </li> <li> Spot Fleet request - The resource type is <code>spot-fleet-request</code> and the unique identifier is the Spot Fleet request ID. Example: <code>spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE</code>. </li> <li> EMR cluster - The resource type is <code>instancegroup</code> and the unique identifier is the cluster ID and instance group ID. Example: <code>instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0</code>. </li> <li> AppStream 2.0 fleet - The resource type is <code>fleet</code> and the unique identifier is the fleet name. Example: <code>fleet/sample-fleet</code>. </li> <li> DynamoDB table - The resource type is <code>table</code> and the unique identifier is the table name. Example: <code>table/my-table</code>. </li> <li> DynamoDB global secondary index - The resource type is <code>index</code> and the unique identifier is the index name. Example: <code>table/my-table/index/my-table-index</code>. </li> <li> Aurora DB cluster - The resource type is <code>cluster</code> and the unique identifier is the cluster name. Example: <code>cluster:my-db-cluster</code>. </li> <li> Amazon SageMaker endpoint variant - The resource type is <code>variant</code> and the unique identifier is the resource ID. Example: <code>endpoint/my-end-point/variant/KMeansClustering</code>. </li> <li> Custom resources are not supported with a resource type. This parameter must specify the <code>OutputValue</code> from the CloudFormation template stack used to access the resources. The unique identifier is defined by the service provider. More information is available in our <a href="https://github.com/aws/aws-auto-scaling-custom-resource">GitHub repository</a>. </li> <li> Amazon Comprehend document classification endpoint - The resource type and unique identifier are specified using the endpoint ARN. Example: <code>arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE</code>. </li> <li> Amazon Comprehend entity recognizer endpoint - The resource type and unique identifier are specified using the endpoint ARN. Example: <code>arn:aws:comprehend:us-west-2:123456789012:entity-recognizer-endpoint/EXAMPLE</code>. </li> <li> Lambda provisioned concurrency - The resource type is <code>function</code> and the unique identifier is the function name with a function version or alias name suffix that is not <code>$LATEST</code>. Example: <code>function:my-function:prod</code> or <code>function:my-function:1</code>. </li> <li> Amazon Keyspaces table - The resource type is <code>table</code> and the unique identifier is the table name. Example: <code>keyspace/mykeyspace/table/mytable</code>. </li> <li> Amazon MSK cluster - The resource type and unique identifier are specified using the cluster ARN. Example: <code>arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5</code>. </li> </ul><br/>ServiceNamespace:  The namespace of the AWS service that provides the resource. For a resource provided by your own application or service, use <code>custom-resource</code> instead.<br/>
        :return:         """
        pass

    def describe_scalable_targets(self, ServiceNamespace: str, ResourceIds: List[ResourceIdMaxLen1600]=None, ScalableDimension: str=None, MaxResults: int=None, NextToken: str=None) -> DescribeScalableTargetsResponse:
        r"""Gets information about the scalable targets in the specified namespace. You can filter the results using <code>ResourceIds</code> and <code>ScalableDimension</code>.

        :param self:
        :param NextToken:  The token for the next set of results.<br/>MaxResults:  The maximum number of scalable targets. This value can be between 1 and 50. The default value is 50. If this parameter is used, the operation returns up to <code>MaxResults</code> results at a time, along with a <code>NextToken</code> value. To get the next set of results, include the <code>NextToken</code> value in a subsequent call. If this parameter is not used, the operation returns up to 50 results and a <code>NextToken</code> value, if applicable.<br/>ScalableDimension:  The scalable dimension associated with the scalable target. This string consists of the service namespace, resource type, and scaling property. If you specify a scalable dimension, you must also specify a resource ID. <ul> <li>  <code>ecs:service:DesiredCount</code> - The desired task count of an ECS service. </li> <li>  <code>ec2:spot-fleet-request:TargetCapacity</code> - The target capacity of a Spot Fleet request. </li> <li>  <code>elasticmapreduce:instancegroup:InstanceCount</code> - The instance count of an EMR Instance Group. </li> <li>  <code>appstream:fleet:DesiredCapacity</code> - The desired capacity of an AppStream 2.0 fleet. </li> <li>  <code>dynamodb:table:ReadCapacityUnits</code> - The provisioned read capacity for a DynamoDB table. </li> <li>  <code>dynamodb:table:WriteCapacityUnits</code> - The provisioned write capacity for a DynamoDB table. </li> <li>  <code>dynamodb:index:ReadCapacityUnits</code> - The provisioned read capacity for a DynamoDB global secondary index. </li> <li>  <code>dynamodb:index:WriteCapacityUnits</code> - The provisioned write capacity for a DynamoDB global secondary index. </li> <li>  <code>rds:cluster:ReadReplicaCount</code> - The count of Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible edition. </li> <li>  <code>sagemaker:variant:DesiredInstanceCount</code> - The number of EC2 instances for an Amazon SageMaker model endpoint variant. </li> <li>  <code>custom-resource:ResourceType:Property</code> - The scalable dimension for a custom resource provided by your own application or service. </li> <li>  <code>comprehend:document-classifier-endpoint:DesiredInferenceUnits</code> - The number of inference units for an Amazon Comprehend document classification endpoint. </li> <li>  <code>comprehend:entity-recognizer-endpoint:DesiredInferenceUnits</code> - The number of inference units for an Amazon Comprehend entity recognizer endpoint. </li> <li>  <code>lambda:function:ProvisionedConcurrency</code> - The provisioned concurrency for a Lambda function. </li> <li>  <code>cassandra:table:ReadCapacityUnits</code> - The provisioned read capacity for an Amazon Keyspaces table. </li> <li>  <code>cassandra:table:WriteCapacityUnits</code> - The provisioned write capacity for an Amazon Keyspaces table. </li> <li>  <code>kafka:broker-storage:VolumeSize</code> - The provisioned volume size (in GiB) for brokers in an Amazon MSK cluster. </li> </ul><br/>ResourceIds:  The identifier of the resource associated with the scalable target. This string consists of the resource type and unique identifier. <ul> <li> ECS service - The resource type is <code>service</code> and the unique identifier is the cluster name and service name. Example: <code>service/default/sample-webapp</code>. </li> <li> Spot Fleet request - The resource type is <code>spot-fleet-request</code> and the unique identifier is the Spot Fleet request ID. Example: <code>spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE</code>. </li> <li> EMR cluster - The resource type is <code>instancegroup</code> and the unique identifier is the cluster ID and instance group ID. Example: <code>instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0</code>. </li> <li> AppStream 2.0 fleet - The resource type is <code>fleet</code> and the unique identifier is the fleet name. Example: <code>fleet/sample-fleet</code>. </li> <li> DynamoDB table - The resource type is <code>table</code> and the unique identifier is the table name. Example: <code>table/my-table</code>. </li> <li> DynamoDB global secondary index - The resource type is <code>index</code> and the unique identifier is the index name. Example: <code>table/my-table/index/my-table-index</code>. </li> <li> Aurora DB cluster - The resource type is <code>cluster</code> and the unique identifier is the cluster name. Example: <code>cluster:my-db-cluster</code>. </li> <li> Amazon SageMaker endpoint variant - The resource type is <code>variant</code> and the unique identifier is the resource ID. Example: <code>endpoint/my-end-point/variant/KMeansClustering</code>. </li> <li> Custom resources are not supported with a resource type. This parameter must specify the <code>OutputValue</code> from the CloudFormation template stack used to access the resources. The unique identifier is defined by the service provider. More information is available in our <a href="https://github.com/aws/aws-auto-scaling-custom-resource">GitHub repository</a>. </li> <li> Amazon Comprehend document classification endpoint - The resource type and unique identifier are specified using the endpoint ARN. Example: <code>arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE</code>. </li> <li> Amazon Comprehend entity recognizer endpoint - The resource type and unique identifier are specified using the endpoint ARN. Example: <code>arn:aws:comprehend:us-west-2:123456789012:entity-recognizer-endpoint/EXAMPLE</code>. </li> <li> Lambda provisioned concurrency - The resource type is <code>function</code> and the unique identifier is the function name with a function version or alias name suffix that is not <code>$LATEST</code>. Example: <code>function:my-function:prod</code> or <code>function:my-function:1</code>. </li> <li> Amazon Keyspaces table - The resource type is <code>table</code> and the unique identifier is the table name. Example: <code>keyspace/mykeyspace/table/mytable</code>. </li> <li> Amazon MSK cluster - The resource type and unique identifier are specified using the cluster ARN. Example: <code>arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5</code>. </li> </ul><br/>ServiceNamespace:  The namespace of the AWS service that provides the resource. For a resource provided by your own application or service, use <code>custom-resource</code> instead.<br/>
        :return: NextToken:  The token required to get the next set of results. This value is <code>null</code> if there are no more results to return.<br/>ScalableTargets:  The scalable targets that match the request parameters.<br/>        """
        pass

    def describe_scaling_activities(self, ServiceNamespace: str, ResourceId: str=None, ScalableDimension: str=None, MaxResults: int=None, NextToken: str=None) -> DescribeScalingActivitiesResponse:
        r"""Provides descriptive information about the scaling activities in the specified namespace from the previous six weeks. You can filter the results using <code>ResourceId</code> and <code>ScalableDimension</code>.

        :param self:
        :param NextToken:  The token for the next set of results.<br/>MaxResults:  The maximum number of scalable targets. This value can be between 1 and 50. The default value is 50. If this parameter is used, the operation returns up to <code>MaxResults</code> results at a time, along with a <code>NextToken</code> value. To get the next set of results, include the <code>NextToken</code> value in a subsequent call. If this parameter is not used, the operation returns up to 50 results and a <code>NextToken</code> value, if applicable.<br/>ScalableDimension:  The scalable dimension. This string consists of the service namespace, resource type, and scaling property. If you specify a scalable dimension, you must also specify a resource ID. <ul> <li>  <code>ecs:service:DesiredCount</code> - The desired task count of an ECS service. </li> <li>  <code>ec2:spot-fleet-request:TargetCapacity</code> - The target capacity of a Spot Fleet request. </li> <li>  <code>elasticmapreduce:instancegroup:InstanceCount</code> - The instance count of an EMR Instance Group. </li> <li>  <code>appstream:fleet:DesiredCapacity</code> - The desired capacity of an AppStream 2.0 fleet. </li> <li>  <code>dynamodb:table:ReadCapacityUnits</code> - The provisioned read capacity for a DynamoDB table. </li> <li>  <code>dynamodb:table:WriteCapacityUnits</code> - The provisioned write capacity for a DynamoDB table. </li> <li>  <code>dynamodb:index:ReadCapacityUnits</code> - The provisioned read capacity for a DynamoDB global secondary index. </li> <li>  <code>dynamodb:index:WriteCapacityUnits</code> - The provisioned write capacity for a DynamoDB global secondary index. </li> <li>  <code>rds:cluster:ReadReplicaCount</code> - The count of Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible edition. </li> <li>  <code>sagemaker:variant:DesiredInstanceCount</code> - The number of EC2 instances for an Amazon SageMaker model endpoint variant. </li> <li>  <code>custom-resource:ResourceType:Property</code> - The scalable dimension for a custom resource provided by your own application or service. </li> <li>  <code>comprehend:document-classifier-endpoint:DesiredInferenceUnits</code> - The number of inference units for an Amazon Comprehend document classification endpoint. </li> <li>  <code>comprehend:entity-recognizer-endpoint:DesiredInferenceUnits</code> - The number of inference units for an Amazon Comprehend entity recognizer endpoint. </li> <li>  <code>lambda:function:ProvisionedConcurrency</code> - The provisioned concurrency for a Lambda function. </li> <li>  <code>cassandra:table:ReadCapacityUnits</code> - The provisioned read capacity for an Amazon Keyspaces table. </li> <li>  <code>cassandra:table:WriteCapacityUnits</code> - The provisioned write capacity for an Amazon Keyspaces table. </li> <li>  <code>kafka:broker-storage:VolumeSize</code> - The provisioned volume size (in GiB) for brokers in an Amazon MSK cluster. </li> </ul><br/>ResourceId:  The identifier of the resource associated with the scaling activity. This string consists of the resource type and unique identifier. <ul> <li> ECS service - The resource type is <code>service</code> and the unique identifier is the cluster name and service name. Example: <code>service/default/sample-webapp</code>. </li> <li> Spot Fleet request - The resource type is <code>spot-fleet-request</code> and the unique identifier is the Spot Fleet request ID. Example: <code>spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE</code>. </li> <li> EMR cluster - The resource type is <code>instancegroup</code> and the unique identifier is the cluster ID and instance group ID. Example: <code>instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0</code>. </li> <li> AppStream 2.0 fleet - The resource type is <code>fleet</code> and the unique identifier is the fleet name. Example: <code>fleet/sample-fleet</code>. </li> <li> DynamoDB table - The resource type is <code>table</code> and the unique identifier is the table name. Example: <code>table/my-table</code>. </li> <li> DynamoDB global secondary index - The resource type is <code>index</code> and the unique identifier is the index name. Example: <code>table/my-table/index/my-table-index</code>. </li> <li> Aurora DB cluster - The resource type is <code>cluster</code> and the unique identifier is the cluster name. Example: <code>cluster:my-db-cluster</code>. </li> <li> Amazon SageMaker endpoint variant - The resource type is <code>variant</code> and the unique identifier is the resource ID. Example: <code>endpoint/my-end-point/variant/KMeansClustering</code>. </li> <li> Custom resources are not supported with a resource type. This parameter must specify the <code>OutputValue</code> from the CloudFormation template stack used to access the resources. The unique identifier is defined by the service provider. More information is available in our <a href="https://github.com/aws/aws-auto-scaling-custom-resource">GitHub repository</a>. </li> <li> Amazon Comprehend document classification endpoint - The resource type and unique identifier are specified using the endpoint ARN. Example: <code>arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE</code>. </li> <li> Amazon Comprehend entity recognizer endpoint - The resource type and unique identifier are specified using the endpoint ARN. Example: <code>arn:aws:comprehend:us-west-2:123456789012:entity-recognizer-endpoint/EXAMPLE</code>. </li> <li> Lambda provisioned concurrency - The resource type is <code>function</code> and the unique identifier is the function name with a function version or alias name suffix that is not <code>$LATEST</code>. Example: <code>function:my-function:prod</code> or <code>function:my-function:1</code>. </li> <li> Amazon Keyspaces table - The resource type is <code>table</code> and the unique identifier is the table name. Example: <code>keyspace/mykeyspace/table/mytable</code>. </li> <li> Amazon MSK cluster - The resource type and unique identifier are specified using the cluster ARN. Example: <code>arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5</code>. </li> </ul><br/>ServiceNamespace:  The namespace of the AWS service that provides the resource. For a resource provided by your own application or service, use <code>custom-resource</code> instead.<br/>
        :return: NextToken:  The token required to get the next set of results. This value is <code>null</code> if there are no more results to return.<br/>ScalingActivities:  A list of scaling activity objects.<br/>        """
        pass

    def describe_scaling_policies(self, ServiceNamespace: str, PolicyNames: List[ResourceIdMaxLen1600]=None, ResourceId: str=None, ScalableDimension: str=None, MaxResults: int=None, NextToken: str=None) -> DescribeScalingPoliciesResponse:
        r"""Describes the Application Auto Scaling scaling policies for the specified service namespace. You can filter the results using <code>ResourceId</code>, <code>ScalableDimension</code>, and <code>PolicyNames</code>. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-target-tracking.html">Target tracking scaling policies</a> and <a href="https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-step-scaling-policies.html">Step scaling policies</a> in the <i>Application Auto Scaling User Guide</i>.

        :param self:
        :param NextToken:  The token for the next set of results.<br/>MaxResults:  The maximum number of scalable targets. This value can be between 1 and 50. The default value is 50. If this parameter is used, the operation returns up to <code>MaxResults</code> results at a time, along with a <code>NextToken</code> value. To get the next set of results, include the <code>NextToken</code> value in a subsequent call. If this parameter is not used, the operation returns up to 50 results and a <code>NextToken</code> value, if applicable.<br/>ScalableDimension:  The scalable dimension. This string consists of the service namespace, resource type, and scaling property. If you specify a scalable dimension, you must also specify a resource ID. <ul> <li>  <code>ecs:service:DesiredCount</code> - The desired task count of an ECS service. </li> <li>  <code>ec2:spot-fleet-request:TargetCapacity</code> - The target capacity of a Spot Fleet request. </li> <li>  <code>elasticmapreduce:instancegroup:InstanceCount</code> - The instance count of an EMR Instance Group. </li> <li>  <code>appstream:fleet:DesiredCapacity</code> - The desired capacity of an AppStream 2.0 fleet. </li> <li>  <code>dynamodb:table:ReadCapacityUnits</code> - The provisioned read capacity for a DynamoDB table. </li> <li>  <code>dynamodb:table:WriteCapacityUnits</code> - The provisioned write capacity for a DynamoDB table. </li> <li>  <code>dynamodb:index:ReadCapacityUnits</code> - The provisioned read capacity for a DynamoDB global secondary index. </li> <li>  <code>dynamodb:index:WriteCapacityUnits</code> - The provisioned write capacity for a DynamoDB global secondary index. </li> <li>  <code>rds:cluster:ReadReplicaCount</code> - The count of Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible edition. </li> <li>  <code>sagemaker:variant:DesiredInstanceCount</code> - The number of EC2 instances for an Amazon SageMaker model endpoint variant. </li> <li>  <code>custom-resource:ResourceType:Property</code> - The scalable dimension for a custom resource provided by your own application or service. </li> <li>  <code>comprehend:document-classifier-endpoint:DesiredInferenceUnits</code> - The number of inference units for an Amazon Comprehend document classification endpoint. </li> <li>  <code>comprehend:entity-recognizer-endpoint:DesiredInferenceUnits</code> - The number of inference units for an Amazon Comprehend entity recognizer endpoint. </li> <li>  <code>lambda:function:ProvisionedConcurrency</code> - The provisioned concurrency for a Lambda function. </li> <li>  <code>cassandra:table:ReadCapacityUnits</code> - The provisioned read capacity for an Amazon Keyspaces table. </li> <li>  <code>cassandra:table:WriteCapacityUnits</code> - The provisioned write capacity for an Amazon Keyspaces table. </li> <li>  <code>kafka:broker-storage:VolumeSize</code> - The provisioned volume size (in GiB) for brokers in an Amazon MSK cluster. </li> </ul><br/>ResourceId:  The identifier of the resource associated with the scaling policy. This string consists of the resource type and unique identifier. <ul> <li> ECS service - The resource type is <code>service</code> and the unique identifier is the cluster name and service name. Example: <code>service/default/sample-webapp</code>. </li> <li> Spot Fleet request - The resource type is <code>spot-fleet-request</code> and the unique identifier is the Spot Fleet request ID. Example: <code>spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE</code>. </li> <li> EMR cluster - The resource type is <code>instancegroup</code> and the unique identifier is the cluster ID and instance group ID. Example: <code>instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0</code>. </li> <li> AppStream 2.0 fleet - The resource type is <code>fleet</code> and the unique identifier is the fleet name. Example: <code>fleet/sample-fleet</code>. </li> <li> DynamoDB table - The resource type is <code>table</code> and the unique identifier is the table name. Example: <code>table/my-table</code>. </li> <li> DynamoDB global secondary index - The resource type is <code>index</code> and the unique identifier is the index name. Example: <code>table/my-table/index/my-table-index</code>. </li> <li> Aurora DB cluster - The resource type is <code>cluster</code> and the unique identifier is the cluster name. Example: <code>cluster:my-db-cluster</code>. </li> <li> Amazon SageMaker endpoint variant - The resource type is <code>variant</code> and the unique identifier is the resource ID. Example: <code>endpoint/my-end-point/variant/KMeansClustering</code>. </li> <li> Custom resources are not supported with a resource type. This parameter must specify the <code>OutputValue</code> from the CloudFormation template stack used to access the resources. The unique identifier is defined by the service provider. More information is available in our <a href="https://github.com/aws/aws-auto-scaling-custom-resource">GitHub repository</a>. </li> <li> Amazon Comprehend document classification endpoint - The resource type and unique identifier are specified using the endpoint ARN. Example: <code>arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE</code>. </li> <li> Amazon Comprehend entity recognizer endpoint - The resource type and unique identifier are specified using the endpoint ARN. Example: <code>arn:aws:comprehend:us-west-2:123456789012:entity-recognizer-endpoint/EXAMPLE</code>. </li> <li> Lambda provisioned concurrency - The resource type is <code>function</code> and the unique identifier is the function name with a function version or alias name suffix that is not <code>$LATEST</code>. Example: <code>function:my-function:prod</code> or <code>function:my-function:1</code>. </li> <li> Amazon Keyspaces table - The resource type is <code>table</code> and the unique identifier is the table name. Example: <code>keyspace/mykeyspace/table/mytable</code>. </li> <li> Amazon MSK cluster - The resource type and unique identifier are specified using the cluster ARN. Example: <code>arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5</code>. </li> </ul><br/>ServiceNamespace:  The namespace of the AWS service that provides the resource. For a resource provided by your own application or service, use <code>custom-resource</code> instead.<br/>PolicyNames:  The names of the scaling policies to describe.<br/>
        :return: NextToken:  The token required to get the next set of results. This value is <code>null</code> if there are no more results to return.<br/>ScalingPolicies:  Information about the scaling policies.<br/>        """
        pass

    def describe_scheduled_actions(self, ServiceNamespace: str, ScheduledActionNames: List[ResourceIdMaxLen1600]=None, ResourceId: str=None, ScalableDimension: str=None, MaxResults: int=None, NextToken: str=None) -> DescribeScheduledActionsResponse:
        r"""Describes the Application Auto Scaling scheduled actions for the specified service namespace. You can filter the results using the <code>ResourceId</code>, <code>ScalableDimension</code>, and <code>ScheduledActionNames</code> parameters. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-scheduled-scaling.html">Scheduled scaling</a> and <a href="https://docs.aws.amazon.com/autoscaling/application/userguide/scheduled-scaling-additional-cli-commands.html">Managing scheduled scaling</a> in the <i>Application Auto Scaling User Guide</i>.

        :param self:
        :param NextToken:  The token for the next set of results.<br/>MaxResults:  The maximum number of scheduled action results. This value can be between 1 and 50. The default value is 50. If this parameter is used, the operation returns up to <code>MaxResults</code> results at a time, along with a <code>NextToken</code> value. To get the next set of results, include the <code>NextToken</code> value in a subsequent call. If this parameter is not used, the operation returns up to 50 results and a <code>NextToken</code> value, if applicable.<br/>ScalableDimension:  The scalable dimension. This string consists of the service namespace, resource type, and scaling property. If you specify a scalable dimension, you must also specify a resource ID. <ul> <li>  <code>ecs:service:DesiredCount</code> - The desired task count of an ECS service. </li> <li>  <code>ec2:spot-fleet-request:TargetCapacity</code> - The target capacity of a Spot Fleet request. </li> <li>  <code>elasticmapreduce:instancegroup:InstanceCount</code> - The instance count of an EMR Instance Group. </li> <li>  <code>appstream:fleet:DesiredCapacity</code> - The desired capacity of an AppStream 2.0 fleet. </li> <li>  <code>dynamodb:table:ReadCapacityUnits</code> - The provisioned read capacity for a DynamoDB table. </li> <li>  <code>dynamodb:table:WriteCapacityUnits</code> - The provisioned write capacity for a DynamoDB table. </li> <li>  <code>dynamodb:index:ReadCapacityUnits</code> - The provisioned read capacity for a DynamoDB global secondary index. </li> <li>  <code>dynamodb:index:WriteCapacityUnits</code> - The provisioned write capacity for a DynamoDB global secondary index. </li> <li>  <code>rds:cluster:ReadReplicaCount</code> - The count of Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible edition. </li> <li>  <code>sagemaker:variant:DesiredInstanceCount</code> - The number of EC2 instances for an Amazon SageMaker model endpoint variant. </li> <li>  <code>custom-resource:ResourceType:Property</code> - The scalable dimension for a custom resource provided by your own application or service. </li> <li>  <code>comprehend:document-classifier-endpoint:DesiredInferenceUnits</code> - The number of inference units for an Amazon Comprehend document classification endpoint. </li> <li>  <code>comprehend:entity-recognizer-endpoint:DesiredInferenceUnits</code> - The number of inference units for an Amazon Comprehend entity recognizer endpoint. </li> <li>  <code>lambda:function:ProvisionedConcurrency</code> - The provisioned concurrency for a Lambda function. </li> <li>  <code>cassandra:table:ReadCapacityUnits</code> - The provisioned read capacity for an Amazon Keyspaces table. </li> <li>  <code>cassandra:table:WriteCapacityUnits</code> - The provisioned write capacity for an Amazon Keyspaces table. </li> <li>  <code>kafka:broker-storage:VolumeSize</code> - The provisioned volume size (in GiB) for brokers in an Amazon MSK cluster. </li> </ul><br/>ResourceId:  The identifier of the resource associated with the scheduled action. This string consists of the resource type and unique identifier. <ul> <li> ECS service - The resource type is <code>service</code> and the unique identifier is the cluster name and service name. Example: <code>service/default/sample-webapp</code>. </li> <li> Spot Fleet request - The resource type is <code>spot-fleet-request</code> and the unique identifier is the Spot Fleet request ID. Example: <code>spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE</code>. </li> <li> EMR cluster - The resource type is <code>instancegroup</code> and the unique identifier is the cluster ID and instance group ID. Example: <code>instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0</code>. </li> <li> AppStream 2.0 fleet - The resource type is <code>fleet</code> and the unique identifier is the fleet name. Example: <code>fleet/sample-fleet</code>. </li> <li> DynamoDB table - The resource type is <code>table</code> and the unique identifier is the table name. Example: <code>table/my-table</code>. </li> <li> DynamoDB global secondary index - The resource type is <code>index</code> and the unique identifier is the index name. Example: <code>table/my-table/index/my-table-index</code>. </li> <li> Aurora DB cluster - The resource type is <code>cluster</code> and the unique identifier is the cluster name. Example: <code>cluster:my-db-cluster</code>. </li> <li> Amazon SageMaker endpoint variant - The resource type is <code>variant</code> and the unique identifier is the resource ID. Example: <code>endpoint/my-end-point/variant/KMeansClustering</code>. </li> <li> Custom resources are not supported with a resource type. This parameter must specify the <code>OutputValue</code> from the CloudFormation template stack used to access the resources. The unique identifier is defined by the service provider. More information is available in our <a href="https://github.com/aws/aws-auto-scaling-custom-resource">GitHub repository</a>. </li> <li> Amazon Comprehend document classification endpoint - The resource type and unique identifier are specified using the endpoint ARN. Example: <code>arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE</code>. </li> <li> Amazon Comprehend entity recognizer endpoint - The resource type and unique identifier are specified using the endpoint ARN. Example: <code>arn:aws:comprehend:us-west-2:123456789012:entity-recognizer-endpoint/EXAMPLE</code>. </li> <li> Lambda provisioned concurrency - The resource type is <code>function</code> and the unique identifier is the function name with a function version or alias name suffix that is not <code>$LATEST</code>. Example: <code>function:my-function:prod</code> or <code>function:my-function:1</code>. </li> <li> Amazon Keyspaces table - The resource type is <code>table</code> and the unique identifier is the table name. Example: <code>keyspace/mykeyspace/table/mytable</code>. </li> <li> Amazon MSK cluster - The resource type and unique identifier are specified using the cluster ARN. Example: <code>arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5</code>. </li> </ul><br/>ServiceNamespace:  The namespace of the AWS service that provides the resource. For a resource provided by your own application or service, use <code>custom-resource</code> instead.<br/>ScheduledActionNames:  The names of the scheduled actions to describe.<br/>
        :return: NextToken:  The token required to get the next set of results. This value is <code>null</code> if there are no more results to return.<br/>ScheduledActions:  Information about the scheduled actions.<br/>        """
        pass

    def put_scaling_policy(self, ScalableDimension: str, ResourceId: str, ServiceNamespace: str, PolicyName: str, PolicyType: str=None, StepScalingPolicyConfiguration: StepScalingPolicyConfiguration=None, TargetTrackingScalingPolicyConfiguration: TargetTrackingScalingPolicyConfiguration=None) -> PutScalingPolicyResponse:
        r"""Creates or updates a scaling policy for an Application Auto Scaling scalable target. Each scalable target is identified by a service namespace, resource ID, and scalable dimension. A scaling policy applies to the scalable target identified by those three attributes. You cannot create a scaling policy until you have registered the resource as a scalable target. Multiple scaling policies can be in force at the same time for the same scalable target. You can have one or more target tracking scaling policies, one or more step scaling policies, or both. However, there is a chance that multiple policies could conflict, instructing the scalable target to scale out or in at the same time. Application Auto Scaling gives precedence to the policy that provides the largest capacity for both scale out and scale in. For example, if one policy increases capacity by 3, another policy increases capacity by 200 percent, and the current capacity is 10, Application Auto Scaling uses the policy with the highest calculated capacity (200% of 10 = 20) and scales out to 30.  We recommend caution, however, when using target tracking scaling policies with step scaling policies because conflicts between these policies can cause undesirable behavior. For example, if the step scaling policy initiates a scale-in activity before the target tracking policy is ready to scale in, the scale-in activity will not be blocked. After the scale-in activity completes, the target tracking policy could instruct the scalable target to scale out again.  For more information, see <a href="https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-target-tracking.html">Target tracking scaling policies</a> and <a href="https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-step-scaling-policies.html">Step scaling policies</a> in the <i>Application Auto Scaling User Guide</i>. <note> If a scalable target is deregistered, the scalable target is no longer available to execute scaling policies. Any scaling policies that were specified for the scalable target are deleted. </note>

        :param self:
        :param TargetTrackingScalingPolicyConfiguration:  A target tracking scaling policy. Includes support for predefined or customized metrics. This parameter is required if you are creating a policy and the policy type is <code>TargetTrackingScaling</code>.:<br/>StepScalingPolicyConfiguration:  A step scaling policy. This parameter is required if you are creating a policy and the policy type is <code>StepScaling</code>.:<br/>PolicyType:  The policy type. This parameter is required if you are creating a scaling policy. The following policy types are supported:   <code>TargetTrackingScaling</code>—Not supported for Amazon EMR  <code>StepScaling</code>—Not supported for DynamoDB, Amazon Comprehend, Lambda, Amazon Keyspaces (for Apache Cassandra), or Amazon MSK. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-target-tracking.html">Target tracking scaling policies</a> and <a href="https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-step-scaling-policies.html">Step scaling policies</a> in the <i>Application Auto Scaling User Guide</i>.<br/>ScalableDimension:  The scalable dimension. This string consists of the service namespace, resource type, and scaling property. <ul> <li>  <code>ecs:service:DesiredCount</code> - The desired task count of an ECS service. </li> <li>  <code>ec2:spot-fleet-request:TargetCapacity</code> - The target capacity of a Spot Fleet request. </li> <li>  <code>elasticmapreduce:instancegroup:InstanceCount</code> - The instance count of an EMR Instance Group. </li> <li>  <code>appstream:fleet:DesiredCapacity</code> - The desired capacity of an AppStream 2.0 fleet. </li> <li>  <code>dynamodb:table:ReadCapacityUnits</code> - The provisioned read capacity for a DynamoDB table. </li> <li>  <code>dynamodb:table:WriteCapacityUnits</code> - The provisioned write capacity for a DynamoDB table. </li> <li>  <code>dynamodb:index:ReadCapacityUnits</code> - The provisioned read capacity for a DynamoDB global secondary index. </li> <li>  <code>dynamodb:index:WriteCapacityUnits</code> - The provisioned write capacity for a DynamoDB global secondary index. </li> <li>  <code>rds:cluster:ReadReplicaCount</code> - The count of Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible edition. </li> <li>  <code>sagemaker:variant:DesiredInstanceCount</code> - The number of EC2 instances for an Amazon SageMaker model endpoint variant. </li> <li>  <code>custom-resource:ResourceType:Property</code> - The scalable dimension for a custom resource provided by your own application or service. </li> <li>  <code>comprehend:document-classifier-endpoint:DesiredInferenceUnits</code> - The number of inference units for an Amazon Comprehend document classification endpoint. </li> <li>  <code>comprehend:entity-recognizer-endpoint:DesiredInferenceUnits</code> - The number of inference units for an Amazon Comprehend entity recognizer endpoint. </li> <li>  <code>lambda:function:ProvisionedConcurrency</code> - The provisioned concurrency for a Lambda function. </li> <li>  <code>cassandra:table:ReadCapacityUnits</code> - The provisioned read capacity for an Amazon Keyspaces table. </li> <li>  <code>cassandra:table:WriteCapacityUnits</code> - The provisioned write capacity for an Amazon Keyspaces table. </li> <li>  <code>kafka:broker-storage:VolumeSize</code> - The provisioned volume size (in GiB) for brokers in an Amazon MSK cluster. </li> </ul><br/>ResourceId:  The identifier of the resource associated with the scaling policy. This string consists of the resource type and unique identifier. <ul> <li> ECS service - The resource type is <code>service</code> and the unique identifier is the cluster name and service name. Example: <code>service/default/sample-webapp</code>. </li> <li> Spot Fleet request - The resource type is <code>spot-fleet-request</code> and the unique identifier is the Spot Fleet request ID. Example: <code>spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE</code>. </li> <li> EMR cluster - The resource type is <code>instancegroup</code> and the unique identifier is the cluster ID and instance group ID. Example: <code>instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0</code>. </li> <li> AppStream 2.0 fleet - The resource type is <code>fleet</code> and the unique identifier is the fleet name. Example: <code>fleet/sample-fleet</code>. </li> <li> DynamoDB table - The resource type is <code>table</code> and the unique identifier is the table name. Example: <code>table/my-table</code>. </li> <li> DynamoDB global secondary index - The resource type is <code>index</code> and the unique identifier is the index name. Example: <code>table/my-table/index/my-table-index</code>. </li> <li> Aurora DB cluster - The resource type is <code>cluster</code> and the unique identifier is the cluster name. Example: <code>cluster:my-db-cluster</code>. </li> <li> Amazon SageMaker endpoint variant - The resource type is <code>variant</code> and the unique identifier is the resource ID. Example: <code>endpoint/my-end-point/variant/KMeansClustering</code>. </li> <li> Custom resources are not supported with a resource type. This parameter must specify the <code>OutputValue</code> from the CloudFormation template stack used to access the resources. The unique identifier is defined by the service provider. More information is available in our <a href="https://github.com/aws/aws-auto-scaling-custom-resource">GitHub repository</a>. </li> <li> Amazon Comprehend document classification endpoint - The resource type and unique identifier are specified using the endpoint ARN. Example: <code>arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE</code>. </li> <li> Amazon Comprehend entity recognizer endpoint - The resource type and unique identifier are specified using the endpoint ARN. Example: <code>arn:aws:comprehend:us-west-2:123456789012:entity-recognizer-endpoint/EXAMPLE</code>. </li> <li> Lambda provisioned concurrency - The resource type is <code>function</code> and the unique identifier is the function name with a function version or alias name suffix that is not <code>$LATEST</code>. Example: <code>function:my-function:prod</code> or <code>function:my-function:1</code>. </li> <li> Amazon Keyspaces table - The resource type is <code>table</code> and the unique identifier is the table name. Example: <code>keyspace/mykeyspace/table/mytable</code>. </li> <li> Amazon MSK cluster - The resource type and unique identifier are specified using the cluster ARN. Example: <code>arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5</code>. </li> </ul><br/>ServiceNamespace:  The namespace of the AWS service that provides the resource. For a resource provided by your own application or service, use <code>custom-resource</code> instead.<br/>PolicyName:  The name of the scaling policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MetricAggregationType</i> The aggregation type for the CloudWatch metrics. Valid values are <code>Minimum</code>, <code>Maximum</code>, and <code>Average</code>. If the aggregation type is null, the value is treated as <code>Average</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Cooldown</i> The amount of time, in seconds, to wait for a previous scaling activity to take effect.  With scale-out policies, the intention is to continuously (but not excessively) scale out. After Application Auto Scaling successfully scales out using a step scaling policy, it starts to calculate the cooldown time. The scaling policy won't increase the desired capacity again unless either a larger scale out is triggered or the cooldown period ends. While the cooldown period is in effect, capacity added by the initiating scale-out activity is calculated as part of the desired capacity for the next scale-out activity. For example, when an alarm triggers a step scaling policy to increase the capacity by 2, the scaling activity completes successfully, and a cooldown period starts. If the alarm triggers again during the cooldown period but at a more aggressive step adjustment of 3, the previous increase of 2 is considered part of the current capacity. Therefore, only 1 is added to the capacity. With scale-in policies, the intention is to scale in conservatively to protect your application’s availability, so scale-in activities are blocked until the cooldown period has expired. However, if another alarm triggers a scale-out activity during the cooldown period after a scale-in activity, Application Auto Scaling scales out the target immediately. In this case, the cooldown period for the scale-in activity stops and doesn't complete. Application Auto Scaling provides a default value of 300 for the following scalable targets: <ul> <li> ECS services </li> <li> Spot Fleet requests </li> <li> EMR clusters </li> <li> AppStream 2.0 fleets </li> <li> Aurora DB clusters </li> <li> Amazon SageMaker endpoint variants </li> <li> Custom resources </li> </ul> For all other scalable targets, the default value is 0: <ul> <li> DynamoDB tables </li> <li> DynamoDB global secondary indexes </li> <li> Amazon Comprehend document classification and entity recognizer endpoints </li> <li> Lambda provisioned concurrency </li> <li> Amazon Keyspaces tables </li> <li> Amazon MSK broker storage </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MinAdjustmentMagnitude</i> The minimum value to scale by when the adjustment type is <code>PercentChangeInCapacity</code>. For example, suppose that you create a step scaling policy to scale out an Amazon ECS service by 25 percent and you specify a <code>MinAdjustmentMagnitude</code> of 2. If the service has 4 tasks and the scaling policy is performed, 25 percent of 4 is 1. However, because you specified a <code>MinAdjustmentMagnitude</code> of 2, Application Auto Scaling scales out the service by 2 tasks.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StepAdjustments</i> A set of adjustments that enable you to scale based on the size of the alarm breach. At least one step adjustment is required if you are adding a new step scaling policy configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdjustmentType</i> Specifies how the <code>ScalingAdjustment</code> value in a <a href="https://docs.aws.amazon.com/autoscaling/application/APIReference/API_StepAdjustment.html">StepAdjustment</a> is interpreted (for example, an absolute number or a percentage). The valid values are <code>ChangeInCapacity</code>, <code>ExactCapacity</code>, and <code>PercentChangeInCapacity</code>.   <code>AdjustmentType</code> is required if you are adding a new step scaling policy configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DisableScaleIn</i> Indicates whether scale in by the target tracking scaling policy is disabled. If the value is <code>true</code>, scale in is disabled and the target tracking scaling policy won't remove capacity from the scalable target. Otherwise, scale in is enabled and the target tracking scaling policy can remove capacity from the scalable target. The default value is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ScaleInCooldown</i> The amount of time, in seconds, after a scale-in activity completes before another scale-in activity can start. With the <i>scale-in cooldown period</i>, the intention is to scale in conservatively to protect your application’s availability, so scale-in activities are blocked until the cooldown period has expired. However, if another alarm triggers a scale-out activity during the scale-in cooldown period, Application Auto Scaling scales out the target immediately. In this case, the scale-in cooldown period stops and doesn't complete. Application Auto Scaling provides a default value of 300 for the following scalable targets: <ul> <li> ECS services </li> <li> Spot Fleet requests </li> <li> EMR clusters </li> <li> AppStream 2.0 fleets </li> <li> Aurora DB clusters </li> <li> Amazon SageMaker endpoint variants </li> <li> Custom resources </li> </ul> For all other scalable targets, the default value is 0: <ul> <li> DynamoDB tables </li> <li> DynamoDB global secondary indexes </li> <li> Amazon Comprehend document classification and entity recognizer endpoints </li> <li> Lambda provisioned concurrency </li> <li> Amazon Keyspaces tables </li> <li> Amazon MSK broker storage </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ScaleOutCooldown</i> The amount of time, in seconds, to wait for a previous scale-out activity to take effect. With the <i>scale-out cooldown period</i>, the intention is to continuously (but not excessively) scale out. After Application Auto Scaling successfully scales out using a target tracking scaling policy, it starts to calculate the cooldown time. The scaling policy won't increase the desired capacity again unless either a larger scale out is triggered or the cooldown period ends. While the cooldown period is in effect, the capacity added by the initiating scale-out activity is calculated as part of the desired capacity for the next scale-out activity. Application Auto Scaling provides a default value of 300 for the following scalable targets: <ul> <li> ECS services </li> <li> Spot Fleet requests </li> <li> EMR clusters </li> <li> AppStream 2.0 fleets </li> <li> Aurora DB clusters </li> <li> Amazon SageMaker endpoint variants </li> <li> Custom resources </li> </ul> For all other scalable targets, the default value is 0: <ul> <li> DynamoDB tables </li> <li> DynamoDB global secondary indexes </li> <li> Amazon Comprehend document classification and entity recognizer endpoints </li> <li> Lambda provisioned concurrency </li> <li> Amazon Keyspaces tables </li> <li> Amazon MSK broker storage </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomizedMetricSpecification</i> A customized metric. You can specify either a predefined metric or a customized metric.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CustomizedMetricSpecification</b>: A customized metric. You can specify either a predefined metric or a customized metric.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PredefinedMetricSpecification</i> A predefined metric. You can specify either a predefined metric or a customized metric.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PredefinedMetricSpecification</b>: A predefined metric. You can specify either a predefined metric or a customized metric.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetValue</i> The target value for the metric. Although this property accepts numbers of type Double, it won't accept values that are either too small or too large. Values must be in the range of -2^360 to 2^360. The value must be a valid number based on the choice of metric. For example, if the metric is CPU utilization, then the target value is a percent value that represents how much of the CPU can be used before scaling out. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceLabel</i> Identifies the resource associated with the metric type. You can't specify a resource label unless the metric type is <code>ALBRequestCountPerTarget</code> and there is a target group attached to the Spot Fleet request or ECS service. You create the resource label by appending the final portion of the load balancer ARN and the final portion of the target group ARN into a single value, separated by a forward slash (/). The format is app/&lt;load-balancer-name&gt;/&lt;load-balancer-id&gt;/targetgroup/&lt;target-group-name&gt;/&lt;target-group-id&gt;, where: <ul> <li> app/&lt;load-balancer-name&gt;/&lt;load-balancer-id&gt; is the final portion of the load balancer ARN </li> <li> targetgroup/&lt;target-group-name&gt;/&lt;target-group-id&gt; is the final portion of the target group ARN. </li> </ul> This is an example: app/EC2Co-EcsEl-1TKLTMITMM0EO/f37c06a68c1748aa/targetgroup/EC2Co-Defau-LDNM7Q3ZH1ZN/6d4ea56ca2d6a18d. To find the ARN for an Application Load Balancer, use the <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html">DescribeLoadBalancers</a> API operation. To find the ARN for the target group, use the <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeTargetGroups.html">DescribeTargetGroups</a> API operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PredefinedMetricType</i> The metric type. The <code>ALBRequestCountPerTarget</code> metric type applies only to Spot Fleet requests and ECS services.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Unit</i> The unit of the metric.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Statistic</i> The statistic of the metric.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Dimensions</i> The dimensions of the metric.  Conditional: If you published your metric with dimensions, you must specify the same dimensions in your scaling policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Namespace</i> The namespace of the metric.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MetricName</i> The name of the metric. <br/>
        :return: Alarms:  The CloudWatch alarms created for the target tracking scaling policy.<br/>PolicyARN:  The Amazon Resource Name (ARN) of the resulting scaling policy.<br/>        """
        pass

    def put_scheduled_action(self, ScalableDimension: str, ResourceId: str, ScheduledActionName: str, ServiceNamespace: str, Schedule: str=None, Timezone: str=None, StartTime: TimestampType=None, EndTime: TimestampType=None, ScalableTargetAction: ScalableTargetAction=None) -> PutScheduledActionResponse:
        r"""Creates or updates a scheduled action for an Application Auto Scaling scalable target.  Each scalable target is identified by a service namespace, resource ID, and scalable dimension. A scheduled action applies to the scalable target identified by those three attributes. You cannot create a scheduled action until you have registered the resource as a scalable target. When start and end times are specified with a recurring schedule using a cron expression or rates, they form the boundaries for when the recurring action starts and stops. To update a scheduled action, specify the parameters that you want to change. If you don't specify start and end times, the old values are deleted. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-scheduled-scaling.html">Scheduled scaling</a> in the <i>Application Auto Scaling User Guide</i>. <note> If a scalable target is deregistered, the scalable target is no longer available to run scheduled actions. Any scheduled actions that were specified for the scalable target are deleted. </note>

        :param self:
        :param ScalableTargetAction:  The new minimum and maximum capacity. You can set both values or just one. At the scheduled time, if the current capacity is below the minimum capacity, Application Auto Scaling scales out to the minimum capacity. If the current capacity is above the maximum capacity, Application Auto Scaling scales in to the maximum capacity.:<br/>EndTime:  The date and time for the recurring schedule to end, in UTC.<br/>StartTime:  The date and time for this scheduled action to start, in UTC.<br/>ScalableDimension:  The scalable dimension. This string consists of the service namespace, resource type, and scaling property. <ul> <li>  <code>ecs:service:DesiredCount</code> - The desired task count of an ECS service. </li> <li>  <code>ec2:spot-fleet-request:TargetCapacity</code> - The target capacity of a Spot Fleet request. </li> <li>  <code>elasticmapreduce:instancegroup:InstanceCount</code> - The instance count of an EMR Instance Group. </li> <li>  <code>appstream:fleet:DesiredCapacity</code> - The desired capacity of an AppStream 2.0 fleet. </li> <li>  <code>dynamodb:table:ReadCapacityUnits</code> - The provisioned read capacity for a DynamoDB table. </li> <li>  <code>dynamodb:table:WriteCapacityUnits</code> - The provisioned write capacity for a DynamoDB table. </li> <li>  <code>dynamodb:index:ReadCapacityUnits</code> - The provisioned read capacity for a DynamoDB global secondary index. </li> <li>  <code>dynamodb:index:WriteCapacityUnits</code> - The provisioned write capacity for a DynamoDB global secondary index. </li> <li>  <code>rds:cluster:ReadReplicaCount</code> - The count of Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible edition. </li> <li>  <code>sagemaker:variant:DesiredInstanceCount</code> - The number of EC2 instances for an Amazon SageMaker model endpoint variant. </li> <li>  <code>custom-resource:ResourceType:Property</code> - The scalable dimension for a custom resource provided by your own application or service. </li> <li>  <code>comprehend:document-classifier-endpoint:DesiredInferenceUnits</code> - The number of inference units for an Amazon Comprehend document classification endpoint. </li> <li>  <code>comprehend:entity-recognizer-endpoint:DesiredInferenceUnits</code> - The number of inference units for an Amazon Comprehend entity recognizer endpoint. </li> <li>  <code>lambda:function:ProvisionedConcurrency</code> - The provisioned concurrency for a Lambda function. </li> <li>  <code>cassandra:table:ReadCapacityUnits</code> - The provisioned read capacity for an Amazon Keyspaces table. </li> <li>  <code>cassandra:table:WriteCapacityUnits</code> - The provisioned write capacity for an Amazon Keyspaces table. </li> <li>  <code>kafka:broker-storage:VolumeSize</code> - The provisioned volume size (in GiB) for brokers in an Amazon MSK cluster. </li> </ul><br/>ResourceId:  The identifier of the resource associated with the scheduled action. This string consists of the resource type and unique identifier. <ul> <li> ECS service - The resource type is <code>service</code> and the unique identifier is the cluster name and service name. Example: <code>service/default/sample-webapp</code>. </li> <li> Spot Fleet request - The resource type is <code>spot-fleet-request</code> and the unique identifier is the Spot Fleet request ID. Example: <code>spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE</code>. </li> <li> EMR cluster - The resource type is <code>instancegroup</code> and the unique identifier is the cluster ID and instance group ID. Example: <code>instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0</code>. </li> <li> AppStream 2.0 fleet - The resource type is <code>fleet</code> and the unique identifier is the fleet name. Example: <code>fleet/sample-fleet</code>. </li> <li> DynamoDB table - The resource type is <code>table</code> and the unique identifier is the table name. Example: <code>table/my-table</code>. </li> <li> DynamoDB global secondary index - The resource type is <code>index</code> and the unique identifier is the index name. Example: <code>table/my-table/index/my-table-index</code>. </li> <li> Aurora DB cluster - The resource type is <code>cluster</code> and the unique identifier is the cluster name. Example: <code>cluster:my-db-cluster</code>. </li> <li> Amazon SageMaker endpoint variant - The resource type is <code>variant</code> and the unique identifier is the resource ID. Example: <code>endpoint/my-end-point/variant/KMeansClustering</code>. </li> <li> Custom resources are not supported with a resource type. This parameter must specify the <code>OutputValue</code> from the CloudFormation template stack used to access the resources. The unique identifier is defined by the service provider. More information is available in our <a href="https://github.com/aws/aws-auto-scaling-custom-resource">GitHub repository</a>. </li> <li> Amazon Comprehend document classification endpoint - The resource type and unique identifier are specified using the endpoint ARN. Example: <code>arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE</code>. </li> <li> Amazon Comprehend entity recognizer endpoint - The resource type and unique identifier are specified using the endpoint ARN. Example: <code>arn:aws:comprehend:us-west-2:123456789012:entity-recognizer-endpoint/EXAMPLE</code>. </li> <li> Lambda provisioned concurrency - The resource type is <code>function</code> and the unique identifier is the function name with a function version or alias name suffix that is not <code>$LATEST</code>. Example: <code>function:my-function:prod</code> or <code>function:my-function:1</code>. </li> <li> Amazon Keyspaces table - The resource type is <code>table</code> and the unique identifier is the table name. Example: <code>keyspace/mykeyspace/table/mytable</code>. </li> <li> Amazon MSK cluster - The resource type and unique identifier are specified using the cluster ARN. Example: <code>arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5</code>. </li> </ul><br/>ScheduledActionName:  The name of the scheduled action. This name must be unique among all other scheduled actions on the specified scalable target. <br/>Timezone:  Specifies the time zone used when setting a scheduled action by using an at or cron expression. If a time zone is not provided, UTC is used by default. Valid values are the canonical names of the IANA time zones supported by Joda-Time (such as <code>Etc/GMT+9</code> or <code>Pacific/Tahiti</code>). For more information, see <a href="https://www.joda.org/joda-time/timezones.html">https://www.joda.org/joda-time/timezones.html</a>.<br/>Schedule:  The schedule for this action. The following formats are supported: <ul> <li> At expressions - "<code>at(<i>yyyy</i>-<i>mm</i>-<i>dd</i>T<i>hh</i>:<i>mm</i>:<i>ss</i>)</code>" </li> <li> Rate expressions - "<code>rate(<i>value</i> <i>unit</i>)</code>" </li> <li> Cron expressions - "<code>cron(<i>fields</i>)</code>" </li> </ul> At expressions are useful for one-time schedules. Cron expressions are useful for scheduled actions that run periodically at a specified date and time, and rate expressions are useful for scheduled actions that run at a regular interval. At and cron expressions use Universal Coordinated Time (UTC) by default. The cron format consists of six fields separated by white spaces: [Minutes] [Hours] [Day_of_Month] [Month] [Day_of_Week] [Year]. For rate expressions, <i>value</i> is a positive integer and <i>unit</i> is <code>minute</code> | <code>minutes</code> | <code>hour</code> | <code>hours</code> | <code>day</code> | <code>days</code>. For more information and examples, see <a href="https://docs.aws.amazon.com/autoscaling/application/userguide/examples-scheduled-actions.html">Example scheduled actions for Application Auto Scaling</a> in the <i>Application Auto Scaling User Guide</i>.<br/>ServiceNamespace:  The namespace of the AWS service that provides the resource. For a resource provided by your own application or service, use <code>custom-resource</code> instead.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxCapacity</i> The maximum capacity. Although you can specify a large maximum capacity, note that service quotas may impose lower limits. Each service has its own default quotas for the maximum capacity of the resource. If you want to specify a higher limit, you can request an increase. For more information, consult the documentation for that service. For information about the default quotas for each service, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html">Service Endpoints and Quotas</a> in the <i>Amazon Web Services General Reference</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MinCapacity</i> The minimum capacity. For certain resources, the minimum value allowed is 0. This includes Lambda provisioned concurrency, Spot Fleet, ECS services, Aurora DB clusters, EMR clusters, and custom resources. For all other resources, the minimum value allowed is 1.<br/>
        :return:         """
        pass

    def register_scalable_target(self, ScalableDimension: str, ResourceId: str, ServiceNamespace: str, MinCapacity: int=None, MaxCapacity: int=None, RoleARN: str=None, SuspendedState: SuspendedState=None) -> RegisterScalableTargetResponse:
        r"""Registers or updates a scalable target.  A scalable target is a resource that Application Auto Scaling can scale out and scale in. Scalable targets are uniquely identified by the combination of resource ID, scalable dimension, and namespace.  When you register a new scalable target, you must specify values for minimum and maximum capacity. Current capacity will be adjusted within the specified range when scaling starts. Application Auto Scaling scaling policies will not scale capacity to values that are outside of this range. After you register a scalable target, you do not need to register it again to use other Application Auto Scaling operations. To see which resources have been registered, use <a href="https://docs.aws.amazon.com/autoscaling/application/APIReference/API_DescribeScalableTargets.html">DescribeScalableTargets</a>. You can also view the scaling policies for a service namespace by using <a href="https://docs.aws.amazon.com/autoscaling/application/APIReference/API_DescribeScalableTargets.html">DescribeScalableTargets</a>. If you no longer need a scalable target, you can deregister it by using <a href="https://docs.aws.amazon.com/autoscaling/application/APIReference/API_DeregisterScalableTarget.html">DeregisterScalableTarget</a>. To update a scalable target, specify the parameters that you want to change. Include the parameters that identify the scalable target: resource ID, scalable dimension, and namespace. Any parameters that you don't specify are not changed by this update request. 

        :param self:
        :param SuspendedState:  An embedded object that contains attributes and attribute values that are used to suspend and resume automatic scaling. Setting the value of an attribute to <code>true</code> suspends the specified scaling activities. Setting it to <code>false</code> (default) resumes the specified scaling activities.   <b>Suspension Outcomes</b>  <ul> <li> For <code>DynamicScalingInSuspended</code>, while a suspension is in effect, all scale-in activities that are triggered by a scaling policy are suspended. </li> <li> For <code>DynamicScalingOutSuspended</code>, while a suspension is in effect, all scale-out activities that are triggered by a scaling policy are suspended. </li> <li> For <code>ScheduledScalingSuspended</code>, while a suspension is in effect, all scaling activities that involve scheduled actions are suspended.  </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-suspend-resume-scaling.html">Suspending and resuming scaling</a> in the <i>Application Auto Scaling User Guide</i>.:<br/>RoleARN:  This parameter is required for services that do not support service-linked roles (such as Amazon EMR), and it must specify the ARN of an IAM role that allows Application Auto Scaling to modify the scalable target on your behalf.  If the service supports service-linked roles, Application Auto Scaling uses a service-linked role, which it creates if it does not yet exist. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/application/userguide/security_iam_service-with-iam.html#security_iam_service-with-iam-roles">Application Auto Scaling IAM roles</a>.<br/>MaxCapacity:  The maximum value that you plan to scale out to. When a scaling policy is in effect, Application Auto Scaling can scale out (expand) as needed to the maximum capacity limit in response to changing demand. This property is required when registering a new scalable target. Although you can specify a large maximum capacity, note that service quotas may impose lower limits. Each service has its own default quotas for the maximum capacity of the resource. If you want to specify a higher limit, you can request an increase. For more information, consult the documentation for that service. For information about the default quotas for each service, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html">Service Endpoints and Quotas</a> in the <i>Amazon Web Services General Reference</i>.<br/>MinCapacity:  The minimum value that you plan to scale in to. When a scaling policy is in effect, Application Auto Scaling can scale in (contract) as needed to the minimum capacity limit in response to changing demand. This property is required when registering a new scalable target. For certain resources, the minimum value allowed is 0. This includes Lambda provisioned concurrency, Spot Fleet, ECS services, Aurora DB clusters, EMR clusters, and custom resources. For all other resources, the minimum value allowed is 1.<br/>ScalableDimension:  The scalable dimension associated with the scalable target. This string consists of the service namespace, resource type, and scaling property. <ul> <li>  <code>ecs:service:DesiredCount</code> - The desired task count of an ECS service. </li> <li>  <code>ec2:spot-fleet-request:TargetCapacity</code> - The target capacity of a Spot Fleet request. </li> <li>  <code>elasticmapreduce:instancegroup:InstanceCount</code> - The instance count of an EMR Instance Group. </li> <li>  <code>appstream:fleet:DesiredCapacity</code> - The desired capacity of an AppStream 2.0 fleet. </li> <li>  <code>dynamodb:table:ReadCapacityUnits</code> - The provisioned read capacity for a DynamoDB table. </li> <li>  <code>dynamodb:table:WriteCapacityUnits</code> - The provisioned write capacity for a DynamoDB table. </li> <li>  <code>dynamodb:index:ReadCapacityUnits</code> - The provisioned read capacity for a DynamoDB global secondary index. </li> <li>  <code>dynamodb:index:WriteCapacityUnits</code> - The provisioned write capacity for a DynamoDB global secondary index. </li> <li>  <code>rds:cluster:ReadReplicaCount</code> - The count of Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible edition. </li> <li>  <code>sagemaker:variant:DesiredInstanceCount</code> - The number of EC2 instances for an Amazon SageMaker model endpoint variant. </li> <li>  <code>custom-resource:ResourceType:Property</code> - The scalable dimension for a custom resource provided by your own application or service. </li> <li>  <code>comprehend:document-classifier-endpoint:DesiredInferenceUnits</code> - The number of inference units for an Amazon Comprehend document classification endpoint. </li> <li>  <code>comprehend:entity-recognizer-endpoint:DesiredInferenceUnits</code> - The number of inference units for an Amazon Comprehend entity recognizer endpoint. </li> <li>  <code>lambda:function:ProvisionedConcurrency</code> - The provisioned concurrency for a Lambda function. </li> <li>  <code>cassandra:table:ReadCapacityUnits</code> - The provisioned read capacity for an Amazon Keyspaces table. </li> <li>  <code>cassandra:table:WriteCapacityUnits</code> - The provisioned write capacity for an Amazon Keyspaces table. </li> <li>  <code>kafka:broker-storage:VolumeSize</code> - The provisioned volume size (in GiB) for brokers in an Amazon MSK cluster. </li> </ul><br/>ResourceId:  The identifier of the resource that is associated with the scalable target. This string consists of the resource type and unique identifier. <ul> <li> ECS service - The resource type is <code>service</code> and the unique identifier is the cluster name and service name. Example: <code>service/default/sample-webapp</code>. </li> <li> Spot Fleet request - The resource type is <code>spot-fleet-request</code> and the unique identifier is the Spot Fleet request ID. Example: <code>spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE</code>. </li> <li> EMR cluster - The resource type is <code>instancegroup</code> and the unique identifier is the cluster ID and instance group ID. Example: <code>instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0</code>. </li> <li> AppStream 2.0 fleet - The resource type is <code>fleet</code> and the unique identifier is the fleet name. Example: <code>fleet/sample-fleet</code>. </li> <li> DynamoDB table - The resource type is <code>table</code> and the unique identifier is the table name. Example: <code>table/my-table</code>. </li> <li> DynamoDB global secondary index - The resource type is <code>index</code> and the unique identifier is the index name. Example: <code>table/my-table/index/my-table-index</code>. </li> <li> Aurora DB cluster - The resource type is <code>cluster</code> and the unique identifier is the cluster name. Example: <code>cluster:my-db-cluster</code>. </li> <li> Amazon SageMaker endpoint variant - The resource type is <code>variant</code> and the unique identifier is the resource ID. Example: <code>endpoint/my-end-point/variant/KMeansClustering</code>. </li> <li> Custom resources are not supported with a resource type. This parameter must specify the <code>OutputValue</code> from the CloudFormation template stack used to access the resources. The unique identifier is defined by the service provider. More information is available in our <a href="https://github.com/aws/aws-auto-scaling-custom-resource">GitHub repository</a>. </li> <li> Amazon Comprehend document classification endpoint - The resource type and unique identifier are specified using the endpoint ARN. Example: <code>arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE</code>. </li> <li> Amazon Comprehend entity recognizer endpoint - The resource type and unique identifier are specified using the endpoint ARN. Example: <code>arn:aws:comprehend:us-west-2:123456789012:entity-recognizer-endpoint/EXAMPLE</code>. </li> <li> Lambda provisioned concurrency - The resource type is <code>function</code> and the unique identifier is the function name with a function version or alias name suffix that is not <code>$LATEST</code>. Example: <code>function:my-function:prod</code> or <code>function:my-function:1</code>. </li> <li> Amazon Keyspaces table - The resource type is <code>table</code> and the unique identifier is the table name. Example: <code>keyspace/mykeyspace/table/mytable</code>. </li> <li> Amazon MSK cluster - The resource type and unique identifier are specified using the cluster ARN. Example: <code>arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5</code>. </li> </ul><br/>ServiceNamespace:  The namespace of the AWS service that provides the resource. For a resource provided by your own application or service, use <code>custom-resource</code> instead.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ScheduledScalingSuspended</i> Whether scheduled scaling is suspended. Set the value to <code>true</code> if you don't want Application Auto Scaling to add or remove capacity by initiating scheduled actions. The default is <code>false</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DynamicScalingOutSuspended</i> Whether scale out by a target tracking scaling policy or a step scaling policy is suspended. Set the value to <code>true</code> if you don't want Application Auto Scaling to add capacity when a scaling policy is triggered. The default is <code>false</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DynamicScalingInSuspended</i> Whether scale in by a target tracking scaling policy or a step scaling policy is suspended. Set the value to <code>true</code> if you don't want Application Auto Scaling to remove capacity when a scaling policy is triggered. The default is <code>false</code>. <br/>
        :return:         """
        pass





class ApplicationInsights(BaseClient):
    r"""<fullname>Amazon CloudWatch Application Insights</fullname>  Amazon CloudWatch Application Insights is a service that helps you detect common problems with your applications. It enables you to pinpoint the source of issues in your applications (built with technologies such as Microsoft IIS, .NET, and Microsoft SQL Server), by providing key insights into detected problems. After you onboard your application, CloudWatch Application Insights identifies, recommends, and sets up metrics and logs. It continuously analyzes and correlates your metrics and logs for unusual behavior to surface actionable problems with your application. For example, if your application is slow and unresponsive and leading to HTTP 500 errors in your Application Load Balancer (ALB), Application Insights informs you that a memory pressure problem with your SQL Server database is occurring. It bases this analysis on impactful metrics and log errors. """




    class CreateApplicationRequest(Mapping):
        pass
    
    class CreateApplicationResponse(Mapping):
        pass
    
    class OpsCenterEnabled(object):
        pass
    
    class CWEMonitorEnabled(object):
        pass
    
    class Tag(Mapping):
        pass
    
    class CreateComponentRequest(Mapping):
        pass
    
    class CreateComponentResponse(Mapping):
        pass
    
    class ResourceARN(object):
        pass
    
    class CreateLogPatternRequest(Mapping):
        pass
    
    class CreateLogPatternResponse(Mapping):
        pass
    
    class DeleteApplicationRequest(Mapping):
        pass
    
    class DeleteApplicationResponse(Mapping):
        pass
    
    class DeleteComponentRequest(Mapping):
        pass
    
    class DeleteComponentResponse(Mapping):
        pass
    
    class DeleteLogPatternRequest(Mapping):
        pass
    
    class DeleteLogPatternResponse(Mapping):
        pass
    
    class DescribeApplicationRequest(Mapping):
        pass
    
    class DescribeApplicationResponse(Mapping):
        pass
    
    class DescribeComponentRequest(Mapping):
        pass
    
    class DescribeComponentResponse(Mapping):
        pass
    
    class DescribeComponentConfigurationRequest(Mapping):
        pass
    
    class DescribeComponentConfigurationResponse(Mapping):
        pass
    
    class DescribeComponentConfigurationRecommendationRequest(Mapping):
        pass
    
    class DescribeComponentConfigurationRecommendationResponse(Mapping):
        pass
    
    class DescribeLogPatternRequest(Mapping):
        pass
    
    class DescribeLogPatternResponse(Mapping):
        pass
    
    class DescribeObservationRequest(Mapping):
        pass
    
    class DescribeObservationResponse(Mapping):
        pass
    
    class DescribeProblemRequest(Mapping):
        pass
    
    class DescribeProblemResponse(Mapping):
        pass
    
    class DescribeProblemObservationsRequest(Mapping):
        pass
    
    class DescribeProblemObservationsResponse(Mapping):
        pass
    
    class ListApplicationsRequest(Mapping):
        pass
    
    class ListApplicationsResponse(Mapping):
        pass
    
    class ListComponentsRequest(Mapping):
        pass
    
    class ListComponentsResponse(Mapping):
        pass
    
    class ListConfigurationHistoryRequest(Mapping):
        pass
    
    class ListConfigurationHistoryResponse(Mapping):
        pass
    
    class StartTime(object):
        pass
    
    class EndTime(object):
        pass
    
    class ListLogPatternSetsRequest(Mapping):
        pass
    
    class ListLogPatternSetsResponse(Mapping):
        pass
    
    class ListLogPatternsRequest(Mapping):
        pass
    
    class ListLogPatternsResponse(Mapping):
        pass
    
    class ListProblemsRequest(Mapping):
        pass
    
    class ListProblemsResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateApplicationRequest(Mapping):
        pass
    
    class UpdateApplicationResponse(Mapping):
        pass
    
    class RemoveSNSTopic(object):
        pass
    
    class UpdateComponentRequest(Mapping):
        pass
    
    class UpdateComponentResponse(Mapping):
        pass
    
    class UpdateComponentConfigurationRequest(Mapping):
        pass
    
    class UpdateComponentConfigurationResponse(Mapping):
        pass
    
    class Monitor(object):
        pass
    
    class UpdateLogPatternRequest(Mapping):
        pass
    
    class UpdateLogPatternResponse(Mapping):
        pass
    
    def create_application(self, ResourceGroupName: str, OpsCenterEnabled: OpsCenterEnabled=None, CWEMonitorEnabled: CWEMonitorEnabled=None, OpsItemSNSTopicArn: str=None, Tags: List[Tag]=None) -> CreateApplicationResponse:
        r"""Adds an application that is created from a resource group.

        :param self:
        :param Tags:  List of tags to add to the application. tag key (<code>Key</code>) and an associated tag value (<code>Value</code>). The maximum length of a tag key is 128 characters. The maximum length of a tag value is 256 characters.<br/>OpsItemSNSTopicArn:   The SNS topic provided to Application Insights that is associated to the created opsItem. Allows you to receive notifications for updates to the opsItem. <br/>CWEMonitorEnabled:   Indicates whether Application Insights can listen to CloudWatch events for the application resources, such as <code>instance terminated</code>, <code>failed deployment</code>, and others. <br/>OpsCenterEnabled:   When set to <code>true</code>, creates opsItems for any problems detected on an application. <br/>ResourceGroupName:  The name of the resource group.<br/>
        :return: ApplicationInfo:  Information about the application.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Remarks</i> The issues on the user side that block Application Insights from successfully monitoring an application. Example remarks include: <ul> <li> “Configuring application, detected 1 Errors, 3 Warnings” </li> <li> “Configuring application, detected 1 Unconfigured Components” </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CWEMonitorEnabled</i>  Indicates whether Application Insights can listen to CloudWatch events for the application resources, such as <code>instance terminated</code>, <code>failed deployment</code>, and others. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OpsCenterEnabled</i>  Indicates whether Application Insights will create opsItems for any problem detected by Application Insights for an application. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OpsItemSNSTopicArn</i>  The SNS topic provided to Application Insights that is associated to the created opsItems to receive SNS notifications for opsItem updates. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LifeCycle</i> The lifecycle of the application. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceGroupName</i> The name of the resource group used for the application.<br/>        """
        pass

    def create_component(self, ResourceList: List[ResourceARN], ComponentName: str, ResourceGroupName: str) -> CreateComponentResponse:
        r"""Creates a custom component by grouping similar standalone instances to monitor.

        :param self:
        :param ResourceList:  The list of resource ARNs that belong to the component.<br/>ComponentName:  The name of the component.<br/>ResourceGroupName:  The name of the resource group.<br/>
        :return:         """
        pass

    def create_log_pattern(self, Rank: int, Pattern: str, PatternName: str, PatternSetName: str, ResourceGroupName: str) -> CreateLogPatternResponse:
        r"""Adds an log pattern to a <code>LogPatternSet</code>.

        :param self:
        :param Rank:  Rank of the log pattern. Must be a value between <code>1</code> and <code>1,000,000</code>. The patterns are sorted by rank, so we recommend that you set your highest priority patterns with the lowest rank. A pattern of rank <code>1</code> will be the first to get matched to a log line. A pattern of rank <code>1,000,000</code> will be last to get matched. When you configure custom log patterns from the console, a <code>Low</code> severity pattern translates to a <code>750,000</code> rank. A <code>Medium</code> severity pattern translates to a <code>500,000</code> rank. And a <code>High</code> severity pattern translates to a <code>250,000</code> rank. Rank values less than <code>1</code> or greater than <code>1,000,000</code> are reserved for AWS-provided patterns. <br/>Pattern:  The log pattern. The pattern must be DFA compatible. Patterns that utilize forward lookahead or backreference constructions are not supported.<br/>PatternName:  The name of the log pattern.<br/>PatternSetName:  The name of the log pattern set.<br/>ResourceGroupName:  The name of the resource group.<br/>
        :return: ResourceGroupName:  The name of the resource group.<br/>LogPattern:  The successfully created log pattern.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Rank</i> Rank of the log pattern. Must be a value between <code>1</code> and <code>1,000,000</code>. The patterns are sorted by rank, so we recommend that you set your highest priority patterns with the lowest rank. A pattern of rank <code>1</code> will be the first to get matched to a log line. A pattern of rank <code>1,000,000</code> will be last to get matched. When you configure custom log patterns from the console, a <code>Low</code> severity pattern translates to a <code>750,000</code> rank. A <code>Medium</code> severity pattern translates to a <code>500,000</code> rank. And a <code>High</code> severity pattern translates to a <code>250,000</code> rank. Rank values less than <code>1</code> or greater than <code>1,000,000</code> are reserved for AWS-provided patterns. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Pattern</i> A regular expression that defines the log pattern. A log pattern can contain as many as 50 characters, and it cannot be empty. The pattern must be DFA compatible. Patterns that utilize forward lookahead or backreference constructions are not supported.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PatternName</i> The name of the log pattern. A log pattern name can contain as many as 50 characters, and it cannot be empty. The characters can be Unicode letters, digits, or one of the following symbols: period, dash, underscore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PatternSetName</i> The name of the log pattern. A log pattern name can contain as many as 30 characters, and it cannot be empty. The characters can be Unicode letters, digits, or one of the following symbols: period, dash, underscore.<br/>        """
        pass

    def delete_application(self, ResourceGroupName: str) -> DeleteApplicationResponse:
        r"""Removes the specified application from monitoring. Does not delete the application.

        :param self:
        :param ResourceGroupName:  The name of the resource group.<br/>
        :return:         """
        pass

    def delete_component(self, ComponentName: str, ResourceGroupName: str) -> DeleteComponentResponse:
        r"""Ungroups a custom component. When you ungroup custom components, all applicable monitors that are set up for the component are removed and the instances revert to their standalone status.

        :param self:
        :param ComponentName:  The name of the component.<br/>ResourceGroupName:  The name of the resource group.<br/>
        :return:         """
        pass

    def delete_log_pattern(self, PatternName: str, PatternSetName: str, ResourceGroupName: str) -> DeleteLogPatternResponse:
        r"""Removes the specified log pattern from a <code>LogPatternSet</code>.

        :param self:
        :param PatternName:  The name of the log pattern.<br/>PatternSetName:  The name of the log pattern set.<br/>ResourceGroupName:  The name of the resource group.<br/>
        :return:         """
        pass

    def describe_application(self, ResourceGroupName: str) -> DescribeApplicationResponse:
        r"""Describes the application.

        :param self:
        :param ResourceGroupName:  The name of the resource group.<br/>
        :return: ApplicationInfo:  Information about the application.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Remarks</i> The issues on the user side that block Application Insights from successfully monitoring an application. Example remarks include: <ul> <li> “Configuring application, detected 1 Errors, 3 Warnings” </li> <li> “Configuring application, detected 1 Unconfigured Components” </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CWEMonitorEnabled</i>  Indicates whether Application Insights can listen to CloudWatch events for the application resources, such as <code>instance terminated</code>, <code>failed deployment</code>, and others. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OpsCenterEnabled</i>  Indicates whether Application Insights will create opsItems for any problem detected by Application Insights for an application. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OpsItemSNSTopicArn</i>  The SNS topic provided to Application Insights that is associated to the created opsItems to receive SNS notifications for opsItem updates. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LifeCycle</i> The lifecycle of the application. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceGroupName</i> The name of the resource group used for the application.<br/>        """
        pass

    def describe_component(self, ComponentName: str, ResourceGroupName: str) -> DescribeComponentResponse:
        r"""Describes a component and lists the resources that are grouped together in a component.

        :param self:
        :param ComponentName:  The name of the component.<br/>ResourceGroupName:  The name of the resource group.<br/>
        :return: ResourceList:  The list of resource ARNs that belong to the component.<br/>ApplicationComponent:  Describes a standalone resource or similarly grouped resources that the application is made up of.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DetectedWorkload</i>  Workloads detected in the application component. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Monitor</i> Indicates whether the application component is monitored. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tier</i> The stack tier of the application component.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OsType</i>  The operating system of the component. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceType</i> The resource type. Supported resource types include EC2 instances, Auto Scaling group, Classic ELB, Application ELB, and SQS Queue.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ComponentRemarks</i>  If logging is supported for the resource type, indicates whether the component has configured logs to be monitored. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ComponentName</i> The name of the component.<br/>        """
        pass

    def describe_component_configuration(self, ComponentName: str, ResourceGroupName: str) -> DescribeComponentConfigurationResponse:
        r"""Describes the monitoring configuration of the component.

        :param self:
        :param ComponentName:  The name of the component.<br/>ResourceGroupName:  The name of the resource group.<br/>
        :return: ComponentConfiguration:  The configuration settings of the component. The value is the escaped JSON of the configuration.<br/>Tier:  The tier of the application component. Supported tiers include <code>DOT_NET_CORE</code>, <code>DOT_NET_WORKER</code>, <code>DOT_NET_WEB</code>, <code>SQL_SERVER</code>, and <code>DEFAULT</code> <br/>Monitor:  Indicates whether the application component is monitored.<br/>        """
        pass

    def describe_component_configuration_recommendation(self, Tier: str, ComponentName: str, ResourceGroupName: str) -> DescribeComponentConfigurationRecommendationResponse:
        r"""Describes the recommended monitoring configuration of the component.

        :param self:
        :param Tier:  The tier of the application component. Supported tiers include <code>DOT_NET_CORE</code>, <code>DOT_NET_WORKER</code>, <code>DOT_NET_WEB</code>, <code>SQL_SERVER</code>, and <code>DEFAULT</code>.<br/>ComponentName:  The name of the component.<br/>ResourceGroupName:  The name of the resource group.<br/>
        :return: ComponentConfiguration:  The recommended configuration settings of the component. The value is the escaped JSON of the configuration.<br/>        """
        pass

    def describe_log_pattern(self, PatternName: str, PatternSetName: str, ResourceGroupName: str) -> DescribeLogPatternResponse:
        r"""Describe a specific log pattern from a <code>LogPatternSet</code>.

        :param self:
        :param PatternName:  The name of the log pattern.<br/>PatternSetName:  The name of the log pattern set.<br/>ResourceGroupName:  The name of the resource group.<br/>
        :return: LogPattern:  The successfully created log pattern.:<br/>ResourceGroupName:  The name of the resource group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Rank</i> Rank of the log pattern. Must be a value between <code>1</code> and <code>1,000,000</code>. The patterns are sorted by rank, so we recommend that you set your highest priority patterns with the lowest rank. A pattern of rank <code>1</code> will be the first to get matched to a log line. A pattern of rank <code>1,000,000</code> will be last to get matched. When you configure custom log patterns from the console, a <code>Low</code> severity pattern translates to a <code>750,000</code> rank. A <code>Medium</code> severity pattern translates to a <code>500,000</code> rank. And a <code>High</code> severity pattern translates to a <code>250,000</code> rank. Rank values less than <code>1</code> or greater than <code>1,000,000</code> are reserved for AWS-provided patterns. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Pattern</i> A regular expression that defines the log pattern. A log pattern can contain as many as 50 characters, and it cannot be empty. The pattern must be DFA compatible. Patterns that utilize forward lookahead or backreference constructions are not supported.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PatternName</i> The name of the log pattern. A log pattern name can contain as many as 50 characters, and it cannot be empty. The characters can be Unicode letters, digits, or one of the following symbols: period, dash, underscore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PatternSetName</i> The name of the log pattern. A log pattern name can contain as many as 30 characters, and it cannot be empty. The characters can be Unicode letters, digits, or one of the following symbols: period, dash, underscore.<br/>        """
        pass

    def describe_observation(self, ObservationId: str) -> DescribeObservationResponse:
        r"""Describes an anomaly or error with the application.

        :param self:
        :param ObservationId:  The ID of the observation.<br/>
        :return: Observation:  Information about the observation.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>XRayNodeType</i>  The type of the X-Ray node. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>XRayNodeName</i>  The name of the X-Ray node. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>XRayRequestAverageLatency</i>  The X-Ray node request average latency for this node. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>XRayRequestCount</i>  The X-Ray request count for this node. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>XRayErrorPercent</i>  The X-Ray request error percentage for this node. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>XRayThrottlePercent</i>  The X-Ray request throttle percentage for this node. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>XRayFaultPercent</i>  The X-Ray request fault percentage for this node. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EbsRequestId</i>  The request ID of an EBS CloudWatch event. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EbsCause</i>  The cause of an EBS CloudWatch event. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EbsResult</i>  The result of an EBS CloudWatch event, such as <code>failed</code> or <code>succeeded</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EbsEvent</i>  The type of EBS CloudWatch event, such as <code>createVolume</code>, <code>deleteVolume</code> or <code>attachVolume</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatesInput</i>  The input to the step function-based observation. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatesStatus</i>  The status of the step function-related observation. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatesArn</i>  The Amazon Resource Name (ARN) of the step function-based observation. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatesExecutionArn</i>  The Amazon Resource Name (ARN) of the step function execution-based observation. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3EventName</i>  The name of the S3 CloudWatch Event-based observation. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RdsEventMessage</i>  The message of an RDS event. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RdsEventCategories</i>  The category of an RDS event. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Ec2State</i>  The state of the instance, such as <code>STOPPING</code> or <code>TERMINATING</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CodeDeployInstanceGroupId</i>  The instance group to which the CodeDeploy instance belongs. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CodeDeployApplication</i>  The CodeDeploy application to which the deployment belongs. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CodeDeployState</i>  The status of the CodeDeploy deployment, for example <code>SUCCESS</code> or <code> FAILURE</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CodeDeployDeploymentGroup</i>  The deployment group to which the CodeDeploy deployment belongs. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CodeDeployDeploymentId</i>  The deployment ID of the CodeDeploy-based observation related to the detected problem. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HealthEventDescription</i>  The description of the AWS Health event provided by the service, such as Amazon EC2. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HealthEventTypeCategory</i>  The category of the AWS Health event, such as <code>issue</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HealthEventTypeCode</i>  The type of the AWS Health event, for example, <code>AWS_EC2_POWER_CONNECTIVITY_ISSUE</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HealthService</i>  The service to which the AWS Health Event belongs, such as EC2. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HealthEventArn</i>  The Amazon Resource Name (ARN) of the AWS Health Event-based observation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudWatchEventDetailType</i>  The detail type of the CloudWatch Event-based observation, for example, <code>EC2 Instance State-change Notification</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudWatchEventSource</i>  The source of the CloudWatch Event. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudWatchEventId</i>  The ID of the CloudWatch Event-based observation related to the detected problem. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Value</i> The value of the source observation metric.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Unit</i> The unit of the source observation metric.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MetricName</i> The name of the observation metric.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MetricNamespace</i> The namespace of the observation metric.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogFilter</i> The log filter of the observation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogText</i> The log text of the observation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LineTime</i> The timestamp in the CloudWatch Logs that specifies when the matched line occurred.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogGroup</i> The log group name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceARN</i> The source resource ARN of the observation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceType</i> The source type of the observation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndTime</i> The time when the observation ended, in epoch seconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StartTime</i> The time when the observation was first detected, in epoch seconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID of the observation type.<br/>        """
        pass

    def describe_problem(self, ProblemId: str) -> DescribeProblemResponse:
        r"""Describes an application problem.

        :param self:
        :param ProblemId:  The ID of the problem.<br/>
        :return: Problem:  Information about the problem. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Feedback</i> Feedback provided by the user about the problem.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceGroupName</i> The name of the resource group affected by the problem.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SeverityLevel</i> A measure of the level of impact of the problem.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndTime</i> The time when the problem ended, in epoch seconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StartTime</i> The time when the problem started, in epoch seconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AffectedResource</i> The resource affected by the problem.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the problem.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Insights</i> A detailed analysis of the problem using machine learning.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Title</i> The name of the problem.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID of the problem.<br/>        """
        pass

    def describe_problem_observations(self, ProblemId: str) -> DescribeProblemObservationsResponse:
        r"""Describes the anomalies or errors associated with the problem.

        :param self:
        :param ProblemId:  The ID of the problem.<br/>
        :return: RelatedObservations:  Observations related to the problem.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ObservationList</i> The list of observations related to the problem.<br/>        """
        pass

    def list_applications(self, MaxResults: int=None, NextToken: str=None) -> ListApplicationsResponse:
        r"""Lists the IDs of the applications that you are monitoring. 

        :param self:
        :param NextToken:  The token to request the next page of results.<br/>MaxResults:  The maximum number of results to return in a single call. To retrieve the remaining results, make another call with the returned <code>NextToken</code> value.<br/>
        :return: NextToken:  The token used to retrieve the next page of results. This value is <code>null</code> when there are no more results to return. <br/>ApplicationInfoList:  The list of applications.<br/>        """
        pass

    def list_components(self, ResourceGroupName: str, MaxResults: int=None, NextToken: str=None) -> ListComponentsResponse:
        r"""Lists the auto-grouped, standalone, and custom components of the application.

        :param self:
        :param NextToken:  The token to request the next page of results.<br/>MaxResults:  The maximum number of results to return in a single call. To retrieve the remaining results, make another call with the returned <code>NextToken</code> value.<br/>ResourceGroupName:  The name of the resource group.<br/>
        :return: NextToken:  The token to request the next page of results.<br/>ApplicationComponentList:  The list of application components.<br/>        """
        pass

    def list_configuration_history(self, ResourceGroupName: str=None, StartTime: StartTime=None, EndTime: EndTime=None, EventStatus: str=None, MaxResults: int=None, NextToken: str=None) -> ListConfigurationHistoryResponse:
        r""" Lists the INFO, WARN, and ERROR events for periodic configuration updates performed by Application Insights. Examples of events represented are:  <ul> <li> INFO: creating a new alarm or updating an alarm threshold. </li> <li> WARN: alarm not created due to insufficient data points used to predict thresholds. </li> <li> ERROR: alarm not created due to permission errors or exceeding quotas.  </li> </ul>

        :param self:
        :param NextToken:  The <code>NextToken</code> value returned from a previous paginated <code>ListConfigurationHistory</code> request where <code>MaxResults</code> was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the <code>NextToken</code> value. This value is <code>null</code> when there are no more results to return.<br/>MaxResults:   The maximum number of results returned by <code>ListConfigurationHistory</code> in paginated output. When this parameter is used, <code>ListConfigurationHistory</code> returns only <code>MaxResults</code> in a single page along with a <code>NextToken</code> response element. The remaining results of the initial request can be seen by sending another <code>ListConfigurationHistory</code> request with the returned <code>NextToken</code> value. If this parameter is not used, then <code>ListConfigurationHistory</code> returns all results. <br/>EventStatus:  The status of the configuration update event. Possible values include INFO, WARN, and ERROR.<br/>EndTime:  The end time of the event.<br/>StartTime:  The start time of the event. <br/>ResourceGroupName:  Resource group to which the application belongs. <br/>
        :return: NextToken:  The <code>NextToken</code> value to include in a future <code>ListConfigurationHistory</code> request. When the results of a <code>ListConfigurationHistory</code> request exceed <code>MaxResults</code>, this value can be used to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>EventList:   The list of configuration events and their corresponding details. <br/>        """
        pass

    def list_log_pattern_sets(self, ResourceGroupName: str, MaxResults: int=None, NextToken: str=None) -> ListLogPatternSetsResponse:
        r"""Lists the log pattern sets in the specific application.

        :param self:
        :param NextToken:  The token to request the next page of results.<br/>MaxResults:  The maximum number of results to return in a single call. To retrieve the remaining results, make another call with the returned <code>NextToken</code> value.<br/>ResourceGroupName:  The name of the resource group.<br/>
        :return: NextToken:  The token used to retrieve the next page of results. This value is <code>null</code> when there are no more results to return. <br/>LogPatternSets:  The list of log pattern sets.<br/>ResourceGroupName:  The name of the resource group.<br/>        """
        pass

    def list_log_patterns(self, ResourceGroupName: str, PatternSetName: str=None, MaxResults: int=None, NextToken: str=None) -> ListLogPatternsResponse:
        r"""Lists the log patterns in the specific log <code>LogPatternSet</code>.

        :param self:
        :param NextToken:  The token to request the next page of results.<br/>MaxResults:  The maximum number of results to return in a single call. To retrieve the remaining results, make another call with the returned <code>NextToken</code> value.<br/>PatternSetName:  The name of the log pattern set.<br/>ResourceGroupName:  The name of the resource group.<br/>
        :return: NextToken:  The token used to retrieve the next page of results. This value is <code>null</code> when there are no more results to return. <br/>LogPatterns:  The list of log patterns.<br/>ResourceGroupName:  The name of the resource group.<br/>        """
        pass

    def list_problems(self, ResourceGroupName: str=None, StartTime: StartTime=None, EndTime: EndTime=None, MaxResults: int=None, NextToken: str=None) -> ListProblemsResponse:
        r"""Lists the problems with your application.

        :param self:
        :param NextToken:  The token to request the next page of results.<br/>MaxResults:  The maximum number of results to return in a single call. To retrieve the remaining results, make another call with the returned <code>NextToken</code> value.<br/>EndTime:  The time when the problem ended, in epoch seconds. If not specified, problems within the past seven days are returned.<br/>StartTime:  The time when the problem was detected, in epoch seconds. If you don't specify a time frame for the request, problems within the past seven days are returned.<br/>ResourceGroupName:  The name of the resource group.<br/>
        :return: NextToken:  The token used to retrieve the next page of results. This value is <code>null</code> when there are no more results to return. <br/>ProblemList:  The list of problems. <br/>        """
        pass

    def list_tags_for_resource(self, ResourceARN: str) -> ListTagsForResourceResponse:
        r"""Retrieve a list of the tags (keys and values) that are associated with a specified application. A <i>tag</i> is a label that you optionally define and associate with an application. Each tag consists of a required <i>tag key</i> and an optional associated <i>tag value</i>. A tag key is a general label that acts as a category for more specific tag values. A tag value acts as a descriptor within a tag key.

        :param self:
        :param ResourceARN:  The Amazon Resource Name (ARN) of the application that you want to retrieve tag information for.<br/>
        :return: Tags:  An array that lists all the tags that are associated with the application. Each tag consists of a required tag key (<code>Key</code>) and an associated tag value (<code>Value</code>).<br/>        """
        pass

    def tag_resource(self, Tags: List[Tag], ResourceARN: str) -> TagResourceResponse:
        r"""Add one or more tags (keys and values) to a specified application. A <i>tag</i> is a label that you optionally define and associate with an application. Tags can help you categorize and manage application in different ways, such as by purpose, owner, environment, or other criteria.  Each tag consists of a required <i>tag key</i> and an associated <i>tag value</i>, both of which you define. A tag key is a general label that acts as a category for more specific tag values. A tag value acts as a descriptor within a tag key.

        :param self:
        :param Tags:  A list of tags that to add to the application. A tag consists of a required tag key (<code>Key</code>) and an associated tag value (<code>Value</code>). The maximum length of a tag key is 128 characters. The maximum length of a tag value is 256 characters.<br/>ResourceARN:  The Amazon Resource Name (ARN) of the application that you want to add one or more tags to.<br/>
        :return:         """
        pass

    def untag_resource(self, TagKeys: List[TagKey], ResourceARN: str) -> UntagResourceResponse:
        r"""Remove one or more tags (keys and values) from a specified application.

        :param self:
        :param TagKeys:  The tags (tag keys) that you want to remove from the resource. When you specify a tag key, the action removes both that key and its associated tag value. To remove more than one tag from the application, append the <code>TagKeys</code> parameter and argument for each additional tag to remove, separated by an ampersand. <br/>ResourceARN:  The Amazon Resource Name (ARN) of the application that you want to remove one or more tags from.<br/>
        :return:         """
        pass

    def update_application(self, ResourceGroupName: str, OpsCenterEnabled: OpsCenterEnabled=None, CWEMonitorEnabled: CWEMonitorEnabled=None, OpsItemSNSTopicArn: str=None, RemoveSNSTopic: RemoveSNSTopic=None) -> UpdateApplicationResponse:
        r"""Updates the application.

        :param self:
        :param RemoveSNSTopic:   Disassociates the SNS topic from the opsItem created for detected problems.<br/>OpsItemSNSTopicArn:   The SNS topic provided to Application Insights that is associated to the created opsItem. Allows you to receive notifications for updates to the opsItem.<br/>CWEMonitorEnabled:   Indicates whether Application Insights can listen to CloudWatch events for the application resources, such as <code>instance terminated</code>, <code>failed deployment</code>, and others. <br/>OpsCenterEnabled:   When set to <code>true</code>, creates opsItems for any problems detected on an application. <br/>ResourceGroupName:  The name of the resource group.<br/>
        :return: ApplicationInfo:  Information about the application. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Remarks</i> The issues on the user side that block Application Insights from successfully monitoring an application. Example remarks include: <ul> <li> “Configuring application, detected 1 Errors, 3 Warnings” </li> <li> “Configuring application, detected 1 Unconfigured Components” </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CWEMonitorEnabled</i>  Indicates whether Application Insights can listen to CloudWatch events for the application resources, such as <code>instance terminated</code>, <code>failed deployment</code>, and others. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OpsCenterEnabled</i>  Indicates whether Application Insights will create opsItems for any problem detected by Application Insights for an application. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OpsItemSNSTopicArn</i>  The SNS topic provided to Application Insights that is associated to the created opsItems to receive SNS notifications for opsItem updates. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LifeCycle</i> The lifecycle of the application. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceGroupName</i> The name of the resource group used for the application.<br/>        """
        pass

    def update_component(self, ComponentName: str, ResourceGroupName: str, NewComponentName: str=None, ResourceList: List[ResourceARN]=None) -> UpdateComponentResponse:
        r"""Updates the custom component name and/or the list of resources that make up the component.

        :param self:
        :param ResourceList:  The list of resource ARNs that belong to the component.<br/>NewComponentName:  The new name of the component.<br/>ComponentName:  The name of the component.<br/>ResourceGroupName:  The name of the resource group.<br/>
        :return:         """
        pass

    def update_component_configuration(self, ComponentName: str, ResourceGroupName: str, Monitor: Monitor=None, Tier: str=None, ComponentConfiguration: str=None) -> UpdateComponentConfigurationResponse:
        r"""Updates the monitoring configurations for the component. The configuration input parameter is an escaped JSON of the configuration and should match the schema of what is returned by <code>DescribeComponentConfigurationRecommendation</code>. 

        :param self:
        :param ComponentConfiguration:  The configuration settings of the component. The value is the escaped JSON of the configuration. For more information about the JSON format, see <a href="https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/working-with-json.html">Working with JSON</a>. You can send a request to <code>DescribeComponentConfigurationRecommendation</code> to see the recommended configuration for a component. For the complete format of the component configuration file, see <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/component-config.html">Component Configuration</a>.<br/>Tier:  The tier of the application component. Supported tiers include <code>DOT_NET_WORKER</code>, <code>DOT_NET_WEB</code>, <code>DOT_NET_CORE</code>, <code>SQL_SERVER</code>, and <code>DEFAULT</code>.<br/>Monitor:  Indicates whether the application component is monitored.<br/>ComponentName:  The name of the component.<br/>ResourceGroupName:  The name of the resource group.<br/>
        :return:         """
        pass

    def update_log_pattern(self, PatternName: str, PatternSetName: str, ResourceGroupName: str, Pattern: str=None, Rank: int=None) -> UpdateLogPatternResponse:
        r"""Adds a log pattern to a <code>LogPatternSet</code>.

        :param self:
        :param Rank:  Rank of the log pattern. Must be a value between <code>1</code> and <code>1,000,000</code>. The patterns are sorted by rank, so we recommend that you set your highest priority patterns with the lowest rank. A pattern of rank <code>1</code> will be the first to get matched to a log line. A pattern of rank <code>1,000,000</code> will be last to get matched. When you configure custom log patterns from the console, a <code>Low</code> severity pattern translates to a <code>750,000</code> rank. A <code>Medium</code> severity pattern translates to a <code>500,000</code> rank. And a <code>High</code> severity pattern translates to a <code>250,000</code> rank. Rank values less than <code>1</code> or greater than <code>1,000,000</code> are reserved for AWS-provided patterns. <br/>Pattern:  The log pattern. The pattern must be DFA compatible. Patterns that utilize forward lookahead or backreference constructions are not supported.<br/>PatternName:  The name of the log pattern.<br/>PatternSetName:  The name of the log pattern set.<br/>ResourceGroupName:  The name of the resource group.<br/>
        :return: LogPattern:  The successfully created log pattern.:<br/>ResourceGroupName:  The name of the resource group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Rank</i> Rank of the log pattern. Must be a value between <code>1</code> and <code>1,000,000</code>. The patterns are sorted by rank, so we recommend that you set your highest priority patterns with the lowest rank. A pattern of rank <code>1</code> will be the first to get matched to a log line. A pattern of rank <code>1,000,000</code> will be last to get matched. When you configure custom log patterns from the console, a <code>Low</code> severity pattern translates to a <code>750,000</code> rank. A <code>Medium</code> severity pattern translates to a <code>500,000</code> rank. And a <code>High</code> severity pattern translates to a <code>250,000</code> rank. Rank values less than <code>1</code> or greater than <code>1,000,000</code> are reserved for AWS-provided patterns. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Pattern</i> A regular expression that defines the log pattern. A log pattern can contain as many as 50 characters, and it cannot be empty. The pattern must be DFA compatible. Patterns that utilize forward lookahead or backreference constructions are not supported.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PatternName</i> The name of the log pattern. A log pattern name can contain as many as 50 characters, and it cannot be empty. The characters can be Unicode letters, digits, or one of the following symbols: period, dash, underscore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PatternSetName</i> The name of the log pattern. A log pattern name can contain as many as 30 characters, and it cannot be empty. The characters can be Unicode letters, digits, or one of the following symbols: period, dash, underscore.<br/>        """
        pass





class ApplicationCostProfiler(BaseClient):
    r"""This reference provides descriptions of the AWS Application Cost Profiler API. The AWS Application Cost Profiler API provides programmatic access to view, create, update, and delete application cost report definitions, as well as to import your usage data into the Application Cost Profiler service. For more information about using this service, see the <a href="https://docs.aws.amazon.com/application-cost-profiler/latest/userguide/introduction.html">AWS Application Cost Profiler User Guide</a>."""


    class ListReportDefinitionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_report_definitions` for valid parameters"""
            pass


    class DeleteReportDefinitionRequest(Mapping):
        pass
    
    class DeleteReportDefinitionResult(Mapping):
        pass
    
    class GetReportDefinitionRequest(Mapping):
        pass
    
    class GetReportDefinitionResult(Mapping):
        pass
    
    class ImportApplicationUsageRequest(Mapping):
        pass
    
    class ImportApplicationUsageResult(Mapping):
        pass
    
    class SourceS3Location(Mapping):
        pass
    
    class ListReportDefinitionsRequest(Mapping):
        pass
    
    class ListReportDefinitionsResult(Mapping):
        pass
    
    class PutReportDefinitionRequest(Mapping):
        pass
    
    class PutReportDefinitionResult(Mapping):
        pass
    
    class S3Location(Mapping):
        pass
    
    class UpdateReportDefinitionRequest(Mapping):
        pass
    
    class UpdateReportDefinitionResult(Mapping):
        pass
    
    def delete_report_definition(self, reportId: str) -> DeleteReportDefinitionResult:
        r"""Deletes the specified report definition in AWS Application Cost Profiler. This stops the report from being generated.

        :param self:
        :param reportId:  Required. ID of the report to delete.<br/>
        :return: reportId:  ID of the report that was deleted.<br/>        """
        pass

    def get_report_definition(self, reportId: str) -> GetReportDefinitionResult:
        r"""Retrieves the definition of a report already configured in AWS Application Cost Profiler.

        :param self:
        :param reportId:  ID of the report to retrieve.<br/>
        :return: lastUpdated:  Timestamp (milliseconds) when this report definition was last updated.<br/>createdAt:  Timestamp (milliseconds) when this report definition was created.<br/>destinationS3Location:  Amazon Simple Storage Service (Amazon S3) location where the report is uploaded.:<br/>format:  Format of the generated report.<br/>reportFrequency:  Cadence used to generate the report.<br/>reportDescription:  Description of the report.<br/>reportId:  ID of the report retrieved.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>prefix</i> Prefix for the location to write to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>bucket</i> Name of the S3 bucket.<br/>        """
        pass

    def import_application_usage(self, sourceS3Location: SourceS3Location) -> ImportApplicationUsageResult:
        r"""Ingests application usage data from Amazon Simple Storage Service (Amazon S3). The data must already exist in the S3 location. As part of the action, AWS Application Cost Profiler copies the object from your S3 bucket to an S3 bucket owned by Amazon for processing asynchronously.

        :param self:
        :param sourceS3Location:  Amazon S3 location to import application usage data from.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>region</i> Region of the bucket. Only required for Regions that are disabled by default. For more infomration about Regions that are disabled by default, see <a href="https://docs.aws.amazon.com/general/latest/gr/rande-manage.html#rande-manage-enable"> Enabling a Region</a> in the <i>AWS General Reference guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>key</i> Key of the object.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>bucket</i> Name of the bucket.<br/>
        :return: importId:  ID of the import request.<br/>        """
        pass

    def list_report_definitions(self, nextToken: str=None, maxResults: int=None) -> ListReportDefinitionsResult:
        r"""Retrieves a list of all reports and their configurations for your AWS account. The maximum number of reports is one.

        :param self:
        :param maxResults:  The maximum number of results to return.<br/>nextToken:  The token value from a previous call to access the next page of results.<br/>
        :return: nextToken:  The value of the next token, if it exists. Null if there are no more results.<br/>reportDefinitions:  The retrieved reports.<br/>        """
        pass

    def put_report_definition(self, destinationS3Location: S3Location, format: str, reportFrequency: str, reportDescription: str, reportId: str) -> PutReportDefinitionResult:
        r"""Creates the report definition for a report in Application Cost Profiler.

        :param self:
        :param destinationS3Location:  Required. Amazon Simple Storage Service (Amazon S3) location where Application Cost Profiler uploads the report.:<br/>format:  Required. The format to use for the generated report.<br/>reportFrequency:  Required. The cadence to generate the report.<br/>reportDescription:  Required. Description of the report.<br/>reportId:  Required. ID of the report. You can choose any valid string matching the pattern for the ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>prefix</i> Prefix for the location to write to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>bucket</i> Name of the S3 bucket.<br/>
        :return: reportId:  ID of the report.<br/>        """
        pass

    def update_report_definition(self, destinationS3Location: S3Location, format: str, reportFrequency: str, reportDescription: str, reportId: str) -> UpdateReportDefinitionResult:
        r"""Updates existing report in AWS Application Cost Profiler.

        :param self:
        :param destinationS3Location:  Required. Amazon Simple Storage Service (Amazon S3) location where Application Cost Profiler uploads the report.:<br/>format:  Required. The format to use for the generated report.<br/>reportFrequency:  Required. The cadence to generate the report.<br/>reportDescription:  Required. Description of the report.<br/>reportId:  Required. ID of the report to update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>prefix</i> Prefix for the location to write to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>bucket</i> Name of the S3 bucket.<br/>
        :return: reportId:  ID of the report.<br/>        """
        pass





class AppMesh(BaseClient):
    r"""App Mesh is a service mesh based on the Envoy proxy that makes it easy to monitor and control microservices. App Mesh standardizes how your microservices communicate, giving you end-to-end visibility and helping to ensure high availability for your applications. App Mesh gives you consistent visibility and network traffic controls for every microservice in an application. You can use App Mesh with Amazon Web Services Fargate, Amazon ECS, Amazon EKS, Kubernetes on Amazon Web Services, and Amazon EC2. <note> App Mesh supports microservice applications that use service discovery naming for their components. For more information about service discovery on Amazon ECS, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html">Service Discovery</a> in the <i>Amazon Elastic Container Service Developer Guide</i>. Kubernetes <code>kube-dns</code> and <code>coredns</code> are supported. For more information, see <a href="https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/">DNS for Services and Pods</a> in the Kubernetes documentation. </note>"""


    class ListMeshesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_meshes` for valid parameters"""
            pass
    class ListRoutesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_routes` for valid parameters"""
            pass
    class ListVirtualNodesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_virtual_nodes` for valid parameters"""
            pass
    class ListVirtualRoutersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_virtual_routers` for valid parameters"""
            pass
    class ListVirtualServicesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_virtual_services` for valid parameters"""
            pass
    class ListTagsForResourcePaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_tags_for_resource` for valid parameters"""
            pass
    class ListGatewayRoutesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_gateway_routes` for valid parameters"""
            pass
    class ListVirtualGatewaysPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_virtual_gateways` for valid parameters"""
            pass


    class CreateGatewayRouteInput(Mapping):
        pass
    
    class CreateGatewayRouteOutput(Mapping):
        pass
    
    class GatewayRouteSpec(Mapping):
        pass
    
    class TagRef(Mapping):
        pass
    
    class CreateMeshInput(Mapping):
        pass
    
    class CreateMeshOutput(Mapping):
        pass
    
    class MeshSpec(Mapping):
        pass
    
    class CreateRouteInput(Mapping):
        pass
    
    class CreateRouteOutput(Mapping):
        pass
    
    class RouteSpec(Mapping):
        pass
    
    class CreateVirtualGatewayInput(Mapping):
        pass
    
    class CreateVirtualGatewayOutput(Mapping):
        pass
    
    class VirtualGatewaySpec(Mapping):
        pass
    
    class CreateVirtualNodeInput(Mapping):
        pass
    
    class CreateVirtualNodeOutput(Mapping):
        pass
    
    class VirtualNodeSpec(Mapping):
        pass
    
    class CreateVirtualRouterInput(Mapping):
        pass
    
    class CreateVirtualRouterOutput(Mapping):
        pass
    
    class VirtualRouterSpec(Mapping):
        pass
    
    class CreateVirtualServiceInput(Mapping):
        pass
    
    class CreateVirtualServiceOutput(Mapping):
        pass
    
    class VirtualServiceSpec(Mapping):
        pass
    
    class DeleteGatewayRouteInput(Mapping):
        pass
    
    class DeleteGatewayRouteOutput(Mapping):
        pass
    
    class DeleteMeshInput(Mapping):
        pass
    
    class DeleteMeshOutput(Mapping):
        pass
    
    class DeleteRouteInput(Mapping):
        pass
    
    class DeleteRouteOutput(Mapping):
        pass
    
    class DeleteVirtualGatewayInput(Mapping):
        pass
    
    class DeleteVirtualGatewayOutput(Mapping):
        pass
    
    class DeleteVirtualNodeInput(Mapping):
        pass
    
    class DeleteVirtualNodeOutput(Mapping):
        pass
    
    class DeleteVirtualRouterInput(Mapping):
        pass
    
    class DeleteVirtualRouterOutput(Mapping):
        pass
    
    class DeleteVirtualServiceInput(Mapping):
        pass
    
    class DeleteVirtualServiceOutput(Mapping):
        pass
    
    class DescribeGatewayRouteInput(Mapping):
        pass
    
    class DescribeGatewayRouteOutput(Mapping):
        pass
    
    class DescribeMeshInput(Mapping):
        pass
    
    class DescribeMeshOutput(Mapping):
        pass
    
    class DescribeRouteInput(Mapping):
        pass
    
    class DescribeRouteOutput(Mapping):
        pass
    
    class DescribeVirtualGatewayInput(Mapping):
        pass
    
    class DescribeVirtualGatewayOutput(Mapping):
        pass
    
    class DescribeVirtualNodeInput(Mapping):
        pass
    
    class DescribeVirtualNodeOutput(Mapping):
        pass
    
    class DescribeVirtualRouterInput(Mapping):
        pass
    
    class DescribeVirtualRouterOutput(Mapping):
        pass
    
    class DescribeVirtualServiceInput(Mapping):
        pass
    
    class DescribeVirtualServiceOutput(Mapping):
        pass
    
    class ListGatewayRoutesInput(Mapping):
        pass
    
    class ListGatewayRoutesOutput(Mapping):
        pass
    
    class ListMeshesInput(Mapping):
        pass
    
    class ListMeshesOutput(Mapping):
        pass
    
    class ListRoutesInput(Mapping):
        pass
    
    class ListRoutesOutput(Mapping):
        pass
    
    class ListTagsForResourceInput(Mapping):
        pass
    
    class ListTagsForResourceOutput(Mapping):
        pass
    
    class ListVirtualGatewaysInput(Mapping):
        pass
    
    class ListVirtualGatewaysOutput(Mapping):
        pass
    
    class ListVirtualNodesInput(Mapping):
        pass
    
    class ListVirtualNodesOutput(Mapping):
        pass
    
    class ListVirtualRoutersInput(Mapping):
        pass
    
    class ListVirtualRoutersOutput(Mapping):
        pass
    
    class ListVirtualServicesInput(Mapping):
        pass
    
    class ListVirtualServicesOutput(Mapping):
        pass
    
    class TagResourceInput(Mapping):
        pass
    
    class TagResourceOutput(Mapping):
        pass
    
    class UntagResourceInput(Mapping):
        pass
    
    class UntagResourceOutput(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateGatewayRouteInput(Mapping):
        pass
    
    class UpdateGatewayRouteOutput(Mapping):
        pass
    
    class UpdateMeshInput(Mapping):
        pass
    
    class UpdateMeshOutput(Mapping):
        pass
    
    class UpdateRouteInput(Mapping):
        pass
    
    class UpdateRouteOutput(Mapping):
        pass
    
    class UpdateVirtualGatewayInput(Mapping):
        pass
    
    class UpdateVirtualGatewayOutput(Mapping):
        pass
    
    class UpdateVirtualNodeInput(Mapping):
        pass
    
    class UpdateVirtualNodeOutput(Mapping):
        pass
    
    class UpdateVirtualRouterInput(Mapping):
        pass
    
    class UpdateVirtualRouterOutput(Mapping):
        pass
    
    class UpdateVirtualServiceInput(Mapping):
        pass
    
    class UpdateVirtualServiceOutput(Mapping):
        pass
    
    def create_gateway_route(self, virtualGatewayName: str, spec: GatewayRouteSpec, meshName: str, gatewayRouteName: str, clientToken: str=None, meshOwner: str=None, tags: List[TagRef]=None) -> CreateGatewayRouteOutput:
        r"""Creates a gateway route. A gateway route is attached to a virtual gateway and routes traffic to an existing virtual service. If a route matches a request, it can distribute traffic to a target virtual service. For more information about gateway routes, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/gateway-routes.html">Gateway routes</a>.

        :param self:
        :param virtualGatewayName:  The name of the virtual gateway to associate the gateway route with. If the virtual gateway is in a shared mesh, then you must be the owner of the virtual gateway resource.<br/>tags:  Optional metadata that you can apply to the gateway route to assist with categorization and organization. Each tag consists of a key and an optional value, both of which you define. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters.<br/>spec:  The gateway route specification to apply.:<br/>meshOwner:  The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then the account that you specify must share the mesh with your account before you can create the resource in the service mesh. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>meshName:  The name of the service mesh to create the gateway route in.<br/>gatewayRouteName:  The name to use for the gateway route.<br/>clientToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Up to 36 letters, numbers, hyphens, and underscores are allowed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>priority</i> The ordering of the gateway routes spec.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>httpRoute</i> An object that represents the specification of an HTTP gateway route.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>httpRoute</b>: An object that represents the specification of an HTTP gateway route.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>http2Route</i> An object that represents the specification of an HTTP/2 gateway route.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>http2Route</b>: An object that represents the specification of an HTTP/2 gateway route.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>grpcRoute</i> An object that represents the specification of a gRPC gateway route.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>grpcRoute</b>: An object that represents the specification of a gRPC gateway route.<br/>An object that represents the action to take if a match is determined.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>action</b>: An object that represents the action to take if a match is determined.An object that represents the action to take if a match is determined.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>action</b>: An object that represents the action to take if a match is determined.An object that represents the action to take if a match is determined.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>action</b>: An object that represents the action to take if a match is determined.
        :return: gatewayRoute:  The full description of your gateway route following the create call.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>virtualGatewayName</i> The virtual gateway that the gateway route is associated with.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the gateway route.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>status</b>: The status of the gateway route.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>spec</i> The specifications of the gateway route.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>spec</b>: The specifications of the gateway route.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>metadata</i> An object that represents metadata for a resource.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>metadata</b>: An object that represents metadata for a resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>meshName</i> The name of the service mesh that the resource resides in. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>gatewayRouteName</i> The name of the gateway route.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The version of the resource. Resources are created at version 1, and this version is incremented each time that they're updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>uid</i> The unique identifier for the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceOwner</i> The AWS IAM account ID of the resource owner. If the account ID is not your own, then it's the ID of the mesh owner or of another account that the mesh is shared with. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>meshOwner</i> The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedAt</i> The Unix epoch timestamp in seconds for when the resource was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The Unix epoch timestamp in seconds for when the resource was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The full Amazon Resource Name (ARN) for the resource.<br/>An object that represents the specification of a gRPC gateway route.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>grpcRoute</b>: An object that represents the specification of a gRPC gateway route.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current status for the gateway route.<br/>        """
        pass

    def create_mesh(self, meshName: str, clientToken: str=None, spec: MeshSpec=None, tags: List[TagRef]=None) -> CreateMeshOutput:
        r"""Creates a service mesh.  A service mesh is a logical boundary for network traffic between services that are represented by resources within the mesh. After you create your service mesh, you can create virtual services, virtual nodes, virtual routers, and routes to distribute traffic between the applications in your mesh. For more information about service meshes, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/meshes.html">Service meshes</a>.

        :param self:
        :param tags:  Optional metadata that you can apply to the service mesh to assist with categorization and organization. Each tag consists of a key and an optional value, both of which you define. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters.<br/>spec:  The service mesh specification to apply.:<br/>meshName:  The name to use for the service mesh.<br/>clientToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Up to 36 letters, numbers, hyphens, and underscores are allowed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>egressFilter</i> The egress filter rules for the service mesh.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>egressFilter</b>: The egress filter rules for the service mesh.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The egress filter type. By default, the type is <code>DROP_ALL</code>, which allows egress only from virtual nodes to other defined resources in the service mesh (and any traffic to <code>*.amazonaws.com</code> for Amazon Web Services API calls). You can set the egress filter type to <code>ALLOW_ALL</code> to allow egress to any endpoint inside or outside of the service mesh.<br/>
        :return: mesh:  The full description of your service mesh following the create call.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the service mesh.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>status</b>: The status of the service mesh.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>spec</i> The associated specification for the service mesh.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>spec</b>: The associated specification for the service mesh.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>metadata</i> The associated metadata for the service mesh.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>metadata</b>: The associated metadata for the service mesh.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>meshName</i> The name of the service mesh.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The version of the resource. Resources are created at version 1, and this version is incremented each time that they're updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>uid</i> The unique identifier for the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceOwner</i> The AWS IAM account ID of the resource owner. If the account ID is not your own, then it's the ID of the mesh owner or of another account that the mesh is shared with. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>meshOwner</i> The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedAt</i> The Unix epoch timestamp in seconds for when the resource was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The Unix epoch timestamp in seconds for when the resource was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The full Amazon Resource Name (ARN) for the resource.<br/>The egress filter rules for the service mesh.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>egressFilter</b>: The egress filter rules for the service mesh.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current mesh status.<br/>        """
        pass

    def create_route(self, virtualRouterName: str, spec: RouteSpec, routeName: str, meshName: str, clientToken: str=None, meshOwner: str=None, tags: List[TagRef]=None) -> CreateRouteOutput:
        r"""Creates a route that is associated with a virtual router.  You can route several different protocols and define a retry policy for a route. Traffic can be routed to one or more virtual nodes. For more information about routes, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/routes.html">Routes</a>.

        :param self:
        :param virtualRouterName:  The name of the virtual router in which to create the route. If the virtual router is in a shared mesh, then you must be the owner of the virtual router resource.<br/>tags:  Optional metadata that you can apply to the route to assist with categorization and organization. Each tag consists of a key and an optional value, both of which you define. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters.<br/>spec:  The route specification to apply.:<br/>routeName:  The name to use for the route.<br/>meshOwner:  The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then the account that you specify must share the mesh with your account before you can create the resource in the service mesh. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>meshName:  The name of the service mesh to create the route in.<br/>clientToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Up to 36 letters, numbers, hyphens, and underscores are allowed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tcpRoute</i> An object that represents the specification of a TCP route.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>tcpRoute</b>: An object that represents the specification of a TCP route.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>priority</i> The priority for the route. Routes are matched based on the specified value, where 0 is the highest priority.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>httpRoute</i> An object that represents the specification of an HTTP route.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>httpRoute</b>: An object that represents the specification of an HTTP route.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>http2Route</i> An object that represents the specification of an HTTP/2 route.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>http2Route</b>: An object that represents the specification of an HTTP/2 route.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>grpcRoute</i> An object that represents the specification of a gRPC route.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>grpcRoute</b>: An object that represents the specification of a gRPC route.<br/>An object that represents the action to take if a match is determined.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>action</b>: An object that represents the action to take if a match is determined.An object that represents the action to take if a match is determined.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>action</b>: An object that represents the action to take if a match is determined.An object that represents the action to take if a match is determined.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>action</b>: An object that represents the action to take if a match is determined.The action to take if a match is determined.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>action</b>: The action to take if a match is determined.
        :return: route:  The full description of your mesh following the create call.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>virtualRouterName</i> The virtual router that the route is associated with.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the route.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>status</b>: The status of the route.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>spec</i> The specifications of the route.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>spec</b>: The specifications of the route.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>routeName</i> The name of the route.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>metadata</i> The associated metadata for the route.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>metadata</b>: The associated metadata for the route.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>meshName</i> The name of the service mesh that the route resides in.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The version of the resource. Resources are created at version 1, and this version is incremented each time that they're updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>uid</i> The unique identifier for the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceOwner</i> The AWS IAM account ID of the resource owner. If the account ID is not your own, then it's the ID of the mesh owner or of another account that the mesh is shared with. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>meshOwner</i> The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedAt</i> The Unix epoch timestamp in seconds for when the resource was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The Unix epoch timestamp in seconds for when the resource was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The full Amazon Resource Name (ARN) for the resource.<br/>An object that represents the specification of a gRPC route.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>grpcRoute</b>: An object that represents the specification of a gRPC route.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current status for the route.<br/>        """
        pass

    def create_virtual_gateway(self, virtualGatewayName: str, spec: VirtualGatewaySpec, meshName: str, clientToken: str=None, meshOwner: str=None, tags: List[TagRef]=None) -> CreateVirtualGatewayOutput:
        r"""Creates a virtual gateway. A virtual gateway allows resources outside your mesh to communicate to resources that are inside your mesh. The virtual gateway represents an Envoy proxy running in an Amazon ECS task, in a Kubernetes service, or on an Amazon EC2 instance. Unlike a virtual node, which represents an Envoy running with an application, a virtual gateway represents Envoy deployed by itself. For more information about virtual gateways, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/virtual_gateways.html">Virtual gateways</a>. 

        :param self:
        :param virtualGatewayName:  The name to use for the virtual gateway.<br/>tags:  Optional metadata that you can apply to the virtual gateway to assist with categorization and organization. Each tag consists of a key and an optional value, both of which you define. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters.<br/>spec:  The virtual gateway specification to apply.:<br/>meshOwner:  The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then the account that you specify must share the mesh with your account before you can create the resource in the service mesh. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>meshName:  The name of the service mesh to create the virtual gateway in.<br/>clientToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Up to 36 letters, numbers, hyphens, and underscores are allowed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>logging</i> An object that represents logging information.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>logging</b>: An object that represents logging information.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>listeners</i> The listeners that the mesh endpoint is expected to receive inbound traffic from. You can specify one listener.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>backendDefaults</i> A reference to an object that represents the defaults for backends.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>backendDefaults</b>: A reference to an object that represents the defaults for backends.<br/>A reference to an object that represents a client policy.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>clientPolicy</b>: A reference to an object that represents a client policy.The access log configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>accessLog</b>: The access log configuration.
        :return: virtualGateway:  The full description of your virtual gateway following the create call.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>virtualGatewayName</i> The name of the virtual gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current status of the virtual gateway.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>status</b>: The current status of the virtual gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>spec</i> The specifications of the virtual gateway.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>spec</b>: The specifications of the virtual gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>metadata</i> An object that represents metadata for a resource.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>metadata</b>: An object that represents metadata for a resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>meshName</i> The name of the service mesh that the virtual gateway resides in.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The version of the resource. Resources are created at version 1, and this version is incremented each time that they're updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>uid</i> The unique identifier for the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceOwner</i> The AWS IAM account ID of the resource owner. If the account ID is not your own, then it's the ID of the mesh owner or of another account that the mesh is shared with. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>meshOwner</i> The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedAt</i> The Unix epoch timestamp in seconds for when the resource was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The Unix epoch timestamp in seconds for when the resource was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The full Amazon Resource Name (ARN) for the resource.<br/>A reference to an object that represents the defaults for backends.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>backendDefaults</b>: A reference to an object that represents the defaults for backends.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current status.<br/>        """
        pass

    def create_virtual_node(self, virtualNodeName: str, spec: VirtualNodeSpec, meshName: str, clientToken: str=None, meshOwner: str=None, tags: List[TagRef]=None) -> CreateVirtualNodeOutput:
        r"""Creates a virtual node within a service mesh.  A virtual node acts as a logical pointer to a particular task group, such as an Amazon ECS service or a Kubernetes deployment. When you create a virtual node, you can specify the service discovery information for your task group, and whether the proxy running in a task group will communicate with other proxies using Transport Layer Security (TLS). You define a <code>listener</code> for any inbound traffic that your virtual node expects. Any virtual service that your virtual node expects to communicate to is specified as a <code>backend</code>. The response metadata for your new virtual node contains the <code>arn</code> that is associated with the virtual node. Set this value to the full ARN; for example, <code>arn:aws:appmesh:us-west-2:123456789012:myMesh/default/virtualNode/myApp</code>) as the <code>APPMESH_RESOURCE_ARN</code> environment variable for your task group's Envoy proxy container in your task definition or pod spec. This is then mapped to the <code>node.id</code> and <code>node.cluster</code> Envoy parameters. <note> By default, App Mesh uses the name of the resource you specified in <code>APPMESH_RESOURCE_ARN</code> when Envoy is referring to itself in metrics and traces. You can override this behavior by setting the <code>APPMESH_RESOURCE_CLUSTER</code> environment variable with your own name. </note> For more information about virtual nodes, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/virtual_nodes.html">Virtual nodes</a>. You must be using <code>1.15.0</code> or later of the Envoy image when setting these variables. For more information aboutApp Mesh Envoy variables, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/envoy.html">Envoy image</a> in the AWS App Mesh User Guide.

        :param self:
        :param virtualNodeName:  The name to use for the virtual node.<br/>tags:  Optional metadata that you can apply to the virtual node to assist with categorization and organization. Each tag consists of a key and an optional value, both of which you define. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters.<br/>spec:  The virtual node specification to apply.:<br/>meshOwner:  The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then the account that you specify must share the mesh with your account before you can create the resource in the service mesh. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>meshName:  The name of the service mesh to create the virtual node in.<br/>clientToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Up to 36 letters, numbers, hyphens, and underscores are allowed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>serviceDiscovery</i> The service discovery information for the virtual node. If your virtual node does not expect ingress traffic, you can omit this parameter. If you specify a <code>listener</code>, then you must specify service discovery information.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>serviceDiscovery</b>: The service discovery information for the virtual node. If your virtual node does not expect ingress traffic, you can omit this parameter. If you specify a <code>listener</code>, then you must specify service discovery information.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>logging</i> The inbound and outbound access logging information for the virtual node.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>logging</b>: The inbound and outbound access logging information for the virtual node.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>listeners</i> The listener that the virtual node is expected to receive inbound traffic from. You can specify one listener.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>backends</i> The backends that the virtual node is expected to send outbound traffic to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>backendDefaults</i> A reference to an object that represents the defaults for backends.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>backendDefaults</b>: A reference to an object that represents the defaults for backends.<br/>A reference to an object that represents a client policy.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>clientPolicy</b>: A reference to an object that represents a client policy.The access log configuration for a virtual node.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>accessLog</b>: The access log configuration for a virtual node.Specifies any Cloud Map information for the virtual node.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>awsCloudMap</b>: Specifies any Cloud Map information for the virtual node.
        :return: virtualNode:  The full description of your virtual node following the create call.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>virtualNodeName</i> The name of the virtual node.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current status for the virtual node.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>status</b>: The current status for the virtual node.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>spec</i> The specifications of the virtual node.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>spec</b>: The specifications of the virtual node.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>metadata</i> The associated metadata for the virtual node.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>metadata</b>: The associated metadata for the virtual node.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>meshName</i> The name of the service mesh that the virtual node resides in.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The version of the resource. Resources are created at version 1, and this version is incremented each time that they're updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>uid</i> The unique identifier for the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceOwner</i> The AWS IAM account ID of the resource owner. If the account ID is not your own, then it's the ID of the mesh owner or of another account that the mesh is shared with. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>meshOwner</i> The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedAt</i> The Unix epoch timestamp in seconds for when the resource was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The Unix epoch timestamp in seconds for when the resource was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The full Amazon Resource Name (ARN) for the resource.<br/>A reference to an object that represents the defaults for backends.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>backendDefaults</b>: A reference to an object that represents the defaults for backends.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current status of the virtual node.<br/>        """
        pass

    def create_virtual_router(self, virtualRouterName: str, spec: VirtualRouterSpec, meshName: str, clientToken: str=None, meshOwner: str=None, tags: List[TagRef]=None) -> CreateVirtualRouterOutput:
        r"""Creates a virtual router within a service mesh. Specify a <code>listener</code> for any inbound traffic that your virtual router receives. Create a virtual router for each protocol and port that you need to route. Virtual routers handle traffic for one or more virtual services within your mesh. After you create your virtual router, create and associate routes for your virtual router that direct incoming requests to different virtual nodes. For more information about virtual routers, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/virtual_routers.html">Virtual routers</a>.

        :param self:
        :param virtualRouterName:  The name to use for the virtual router.<br/>tags:  Optional metadata that you can apply to the virtual router to assist with categorization and organization. Each tag consists of a key and an optional value, both of which you define. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters.<br/>spec:  The virtual router specification to apply.:<br/>meshOwner:  The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then the account that you specify must share the mesh with your account before you can create the resource in the service mesh. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>meshName:  The name of the service mesh to create the virtual router in.<br/>clientToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Up to 36 letters, numbers, hyphens, and underscores are allowed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>listeners</i> The listeners that the virtual router is expected to receive inbound traffic from. You can specify one listener.<br/>
        :return: virtualRouter:  The full description of your virtual router following the create call.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>virtualRouterName</i> The name of the virtual router.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current status of the virtual router.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>status</b>: The current status of the virtual router.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>spec</i> The specifications of the virtual router.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>spec</b>: The specifications of the virtual router.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>metadata</i> The associated metadata for the virtual router.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>metadata</b>: The associated metadata for the virtual router.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>meshName</i> The name of the service mesh that the virtual router resides in.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The version of the resource. Resources are created at version 1, and this version is incremented each time that they're updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>uid</i> The unique identifier for the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceOwner</i> The AWS IAM account ID of the resource owner. If the account ID is not your own, then it's the ID of the mesh owner or of another account that the mesh is shared with. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>meshOwner</i> The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedAt</i> The Unix epoch timestamp in seconds for when the resource was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The Unix epoch timestamp in seconds for when the resource was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The full Amazon Resource Name (ARN) for the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>listeners</i> The listeners that the virtual router is expected to receive inbound traffic from. You can specify one listener.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current status of the virtual router.<br/>        """
        pass

    def create_virtual_service(self, virtualServiceName: str, spec: VirtualServiceSpec, meshName: str, clientToken: str=None, meshOwner: str=None, tags: List[TagRef]=None) -> CreateVirtualServiceOutput:
        r"""Creates a virtual service within a service mesh. A virtual service is an abstraction of a real service that is provided by a virtual node directly or indirectly by means of a virtual router. Dependent services call your virtual service by its <code>virtualServiceName</code>, and those requests are routed to the virtual node or virtual router that is specified as the provider for the virtual service. For more information about virtual services, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/virtual_services.html">Virtual services</a>.

        :param self:
        :param virtualServiceName:  The name to use for the virtual service.<br/>tags:  Optional metadata that you can apply to the virtual service to assist with categorization and organization. Each tag consists of a key and an optional value, both of which you define. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters.<br/>spec:  The virtual service specification to apply.:<br/>meshOwner:  The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then the account that you specify must share the mesh with your account before you can create the resource in the service mesh. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>meshName:  The name of the service mesh to create the virtual service in.<br/>clientToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Up to 36 letters, numbers, hyphens, and underscores are allowed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>provider</i> The App Mesh object that is acting as the provider for a virtual service. You can specify a single virtual node or virtual router.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>provider</b>: The App Mesh object that is acting as the provider for a virtual service. You can specify a single virtual node or virtual router.<br/>The virtual node associated with a virtual service.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>virtualNode</b>: The virtual node associated with a virtual service.
        :return: virtualService:  The full description of your virtual service following the create call.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>virtualServiceName</i> The name of the virtual service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current status of the virtual service.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>status</b>: The current status of the virtual service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>spec</i> The specifications of the virtual service.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>spec</b>: The specifications of the virtual service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>metadata</i> An object that represents metadata for a resource.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>metadata</b>: An object that represents metadata for a resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>meshName</i> The name of the service mesh that the virtual service resides in.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The version of the resource. Resources are created at version 1, and this version is incremented each time that they're updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>uid</i> The unique identifier for the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceOwner</i> The AWS IAM account ID of the resource owner. If the account ID is not your own, then it's the ID of the mesh owner or of another account that the mesh is shared with. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>meshOwner</i> The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedAt</i> The Unix epoch timestamp in seconds for when the resource was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The Unix epoch timestamp in seconds for when the resource was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The full Amazon Resource Name (ARN) for the resource.<br/>The App Mesh object that is acting as the provider for a virtual service. You can specify a single virtual node or virtual router.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>provider</b>: The App Mesh object that is acting as the provider for a virtual service. You can specify a single virtual node or virtual router.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current status of the virtual service.<br/>        """
        pass

    def delete_gateway_route(self, virtualGatewayName: str, meshName: str, gatewayRouteName: str, meshOwner: str=None) -> DeleteGatewayRouteOutput:
        r"""Deletes an existing gateway route.

        :param self:
        :param virtualGatewayName:  The name of the virtual gateway to delete the route from.<br/>meshOwner:  The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>meshName:  The name of the service mesh to delete the gateway route from.<br/>gatewayRouteName:  The name of the gateway route to delete.<br/>
        :return: gatewayRoute:  The gateway route that was deleted.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>virtualGatewayName</i> The virtual gateway that the gateway route is associated with.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the gateway route.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>status</b>: The status of the gateway route.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>spec</i> The specifications of the gateway route.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>spec</b>: The specifications of the gateway route.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>metadata</i> An object that represents metadata for a resource.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>metadata</b>: An object that represents metadata for a resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>meshName</i> The name of the service mesh that the resource resides in. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>gatewayRouteName</i> The name of the gateway route.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The version of the resource. Resources are created at version 1, and this version is incremented each time that they're updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>uid</i> The unique identifier for the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceOwner</i> The AWS IAM account ID of the resource owner. If the account ID is not your own, then it's the ID of the mesh owner or of another account that the mesh is shared with. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>meshOwner</i> The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedAt</i> The Unix epoch timestamp in seconds for when the resource was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The Unix epoch timestamp in seconds for when the resource was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The full Amazon Resource Name (ARN) for the resource.<br/>An object that represents the specification of a gRPC gateway route.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>grpcRoute</b>: An object that represents the specification of a gRPC gateway route.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current status for the gateway route.<br/>        """
        pass

    def delete_mesh(self, meshName: str) -> DeleteMeshOutput:
        r"""Deletes an existing service mesh. You must delete all resources (virtual services, routes, virtual routers, and virtual nodes) in the service mesh before you can delete the mesh itself.

        :param self:
        :param meshName:  The name of the service mesh to delete.<br/>
        :return: mesh:  The service mesh that was deleted.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the service mesh.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>status</b>: The status of the service mesh.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>spec</i> The associated specification for the service mesh.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>spec</b>: The associated specification for the service mesh.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>metadata</i> The associated metadata for the service mesh.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>metadata</b>: The associated metadata for the service mesh.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>meshName</i> The name of the service mesh.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The version of the resource. Resources are created at version 1, and this version is incremented each time that they're updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>uid</i> The unique identifier for the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceOwner</i> The AWS IAM account ID of the resource owner. If the account ID is not your own, then it's the ID of the mesh owner or of another account that the mesh is shared with. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>meshOwner</i> The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedAt</i> The Unix epoch timestamp in seconds for when the resource was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The Unix epoch timestamp in seconds for when the resource was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The full Amazon Resource Name (ARN) for the resource.<br/>The egress filter rules for the service mesh.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>egressFilter</b>: The egress filter rules for the service mesh.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current mesh status.<br/>        """
        pass

    def delete_route(self, virtualRouterName: str, routeName: str, meshName: str, meshOwner: str=None) -> DeleteRouteOutput:
        r"""Deletes an existing route.

        :param self:
        :param virtualRouterName:  The name of the virtual router to delete the route in.<br/>routeName:  The name of the route to delete.<br/>meshOwner:  The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>meshName:  The name of the service mesh to delete the route in.<br/>
        :return: route:  The route that was deleted.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>virtualRouterName</i> The virtual router that the route is associated with.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the route.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>status</b>: The status of the route.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>spec</i> The specifications of the route.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>spec</b>: The specifications of the route.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>routeName</i> The name of the route.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>metadata</i> The associated metadata for the route.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>metadata</b>: The associated metadata for the route.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>meshName</i> The name of the service mesh that the route resides in.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The version of the resource. Resources are created at version 1, and this version is incremented each time that they're updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>uid</i> The unique identifier for the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceOwner</i> The AWS IAM account ID of the resource owner. If the account ID is not your own, then it's the ID of the mesh owner or of another account that the mesh is shared with. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>meshOwner</i> The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedAt</i> The Unix epoch timestamp in seconds for when the resource was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The Unix epoch timestamp in seconds for when the resource was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The full Amazon Resource Name (ARN) for the resource.<br/>An object that represents the specification of a gRPC route.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>grpcRoute</b>: An object that represents the specification of a gRPC route.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current status for the route.<br/>        """
        pass

    def delete_virtual_gateway(self, virtualGatewayName: str, meshName: str, meshOwner: str=None) -> DeleteVirtualGatewayOutput:
        r"""Deletes an existing virtual gateway. You cannot delete a virtual gateway if any gateway routes are associated to it.

        :param self:
        :param virtualGatewayName:  The name of the virtual gateway to delete.<br/>meshOwner:  The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>meshName:  The name of the service mesh to delete the virtual gateway from.<br/>
        :return: virtualGateway:  The virtual gateway that was deleted.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>virtualGatewayName</i> The name of the virtual gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current status of the virtual gateway.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>status</b>: The current status of the virtual gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>spec</i> The specifications of the virtual gateway.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>spec</b>: The specifications of the virtual gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>metadata</i> An object that represents metadata for a resource.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>metadata</b>: An object that represents metadata for a resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>meshName</i> The name of the service mesh that the virtual gateway resides in.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The version of the resource. Resources are created at version 1, and this version is incremented each time that they're updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>uid</i> The unique identifier for the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceOwner</i> The AWS IAM account ID of the resource owner. If the account ID is not your own, then it's the ID of the mesh owner or of another account that the mesh is shared with. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>meshOwner</i> The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedAt</i> The Unix epoch timestamp in seconds for when the resource was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The Unix epoch timestamp in seconds for when the resource was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The full Amazon Resource Name (ARN) for the resource.<br/>A reference to an object that represents the defaults for backends.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>backendDefaults</b>: A reference to an object that represents the defaults for backends.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current status.<br/>        """
        pass

    def delete_virtual_node(self, virtualNodeName: str, meshName: str, meshOwner: str=None) -> DeleteVirtualNodeOutput:
        r"""Deletes an existing virtual node. You must delete any virtual services that list a virtual node as a service provider before you can delete the virtual node itself.

        :param self:
        :param virtualNodeName:  The name of the virtual node to delete.<br/>meshOwner:  The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>meshName:  The name of the service mesh to delete the virtual node in.<br/>
        :return: virtualNode:  The virtual node that was deleted.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>virtualNodeName</i> The name of the virtual node.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current status for the virtual node.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>status</b>: The current status for the virtual node.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>spec</i> The specifications of the virtual node.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>spec</b>: The specifications of the virtual node.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>metadata</i> The associated metadata for the virtual node.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>metadata</b>: The associated metadata for the virtual node.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>meshName</i> The name of the service mesh that the virtual node resides in.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The version of the resource. Resources are created at version 1, and this version is incremented each time that they're updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>uid</i> The unique identifier for the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceOwner</i> The AWS IAM account ID of the resource owner. If the account ID is not your own, then it's the ID of the mesh owner or of another account that the mesh is shared with. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>meshOwner</i> The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedAt</i> The Unix epoch timestamp in seconds for when the resource was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The Unix epoch timestamp in seconds for when the resource was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The full Amazon Resource Name (ARN) for the resource.<br/>A reference to an object that represents the defaults for backends.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>backendDefaults</b>: A reference to an object that represents the defaults for backends.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current status of the virtual node.<br/>        """
        pass

    def delete_virtual_router(self, virtualRouterName: str, meshName: str, meshOwner: str=None) -> DeleteVirtualRouterOutput:
        r"""Deletes an existing virtual router. You must delete any routes associated with the virtual router before you can delete the router itself.

        :param self:
        :param virtualRouterName:  The name of the virtual router to delete.<br/>meshOwner:  The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>meshName:  The name of the service mesh to delete the virtual router in.<br/>
        :return: virtualRouter:  The virtual router that was deleted.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>virtualRouterName</i> The name of the virtual router.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current status of the virtual router.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>status</b>: The current status of the virtual router.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>spec</i> The specifications of the virtual router.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>spec</b>: The specifications of the virtual router.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>metadata</i> The associated metadata for the virtual router.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>metadata</b>: The associated metadata for the virtual router.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>meshName</i> The name of the service mesh that the virtual router resides in.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The version of the resource. Resources are created at version 1, and this version is incremented each time that they're updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>uid</i> The unique identifier for the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceOwner</i> The AWS IAM account ID of the resource owner. If the account ID is not your own, then it's the ID of the mesh owner or of another account that the mesh is shared with. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>meshOwner</i> The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedAt</i> The Unix epoch timestamp in seconds for when the resource was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The Unix epoch timestamp in seconds for when the resource was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The full Amazon Resource Name (ARN) for the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>listeners</i> The listeners that the virtual router is expected to receive inbound traffic from. You can specify one listener.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current status of the virtual router.<br/>        """
        pass

    def delete_virtual_service(self, virtualServiceName: str, meshName: str, meshOwner: str=None) -> DeleteVirtualServiceOutput:
        r"""Deletes an existing virtual service.

        :param self:
        :param virtualServiceName:  The name of the virtual service to delete.<br/>meshOwner:  The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>meshName:  The name of the service mesh to delete the virtual service in.<br/>
        :return: virtualService:  The virtual service that was deleted.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>virtualServiceName</i> The name of the virtual service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current status of the virtual service.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>status</b>: The current status of the virtual service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>spec</i> The specifications of the virtual service.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>spec</b>: The specifications of the virtual service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>metadata</i> An object that represents metadata for a resource.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>metadata</b>: An object that represents metadata for a resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>meshName</i> The name of the service mesh that the virtual service resides in.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The version of the resource. Resources are created at version 1, and this version is incremented each time that they're updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>uid</i> The unique identifier for the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceOwner</i> The AWS IAM account ID of the resource owner. If the account ID is not your own, then it's the ID of the mesh owner or of another account that the mesh is shared with. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>meshOwner</i> The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedAt</i> The Unix epoch timestamp in seconds for when the resource was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The Unix epoch timestamp in seconds for when the resource was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The full Amazon Resource Name (ARN) for the resource.<br/>The App Mesh object that is acting as the provider for a virtual service. You can specify a single virtual node or virtual router.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>provider</b>: The App Mesh object that is acting as the provider for a virtual service. You can specify a single virtual node or virtual router.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current status of the virtual service.<br/>        """
        pass

    def describe_gateway_route(self, virtualGatewayName: str, meshName: str, gatewayRouteName: str, meshOwner: str=None) -> DescribeGatewayRouteOutput:
        r"""Describes an existing gateway route.

        :param self:
        :param virtualGatewayName:  The name of the virtual gateway that the gateway route is associated with.<br/>meshOwner:  The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>meshName:  The name of the service mesh that the gateway route resides in.<br/>gatewayRouteName:  The name of the gateway route to describe.<br/>
        :return: gatewayRoute:  The full description of your gateway route.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>virtualGatewayName</i> The virtual gateway that the gateway route is associated with.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the gateway route.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>status</b>: The status of the gateway route.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>spec</i> The specifications of the gateway route.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>spec</b>: The specifications of the gateway route.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>metadata</i> An object that represents metadata for a resource.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>metadata</b>: An object that represents metadata for a resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>meshName</i> The name of the service mesh that the resource resides in. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>gatewayRouteName</i> The name of the gateway route.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The version of the resource. Resources are created at version 1, and this version is incremented each time that they're updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>uid</i> The unique identifier for the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceOwner</i> The AWS IAM account ID of the resource owner. If the account ID is not your own, then it's the ID of the mesh owner or of another account that the mesh is shared with. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>meshOwner</i> The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedAt</i> The Unix epoch timestamp in seconds for when the resource was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The Unix epoch timestamp in seconds for when the resource was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The full Amazon Resource Name (ARN) for the resource.<br/>An object that represents the specification of a gRPC gateway route.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>grpcRoute</b>: An object that represents the specification of a gRPC gateway route.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current status for the gateway route.<br/>        """
        pass

    def describe_mesh(self, meshName: str, meshOwner: str=None) -> DescribeMeshOutput:
        r"""Describes an existing service mesh.

        :param self:
        :param meshOwner:  The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>meshName:  The name of the service mesh to describe.<br/>
        :return: mesh:  The full description of your service mesh.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the service mesh.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>status</b>: The status of the service mesh.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>spec</i> The associated specification for the service mesh.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>spec</b>: The associated specification for the service mesh.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>metadata</i> The associated metadata for the service mesh.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>metadata</b>: The associated metadata for the service mesh.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>meshName</i> The name of the service mesh.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The version of the resource. Resources are created at version 1, and this version is incremented each time that they're updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>uid</i> The unique identifier for the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceOwner</i> The AWS IAM account ID of the resource owner. If the account ID is not your own, then it's the ID of the mesh owner or of another account that the mesh is shared with. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>meshOwner</i> The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedAt</i> The Unix epoch timestamp in seconds for when the resource was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The Unix epoch timestamp in seconds for when the resource was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The full Amazon Resource Name (ARN) for the resource.<br/>The egress filter rules for the service mesh.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>egressFilter</b>: The egress filter rules for the service mesh.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current mesh status.<br/>        """
        pass

    def describe_route(self, virtualRouterName: str, routeName: str, meshName: str, meshOwner: str=None) -> DescribeRouteOutput:
        r"""Describes an existing route.

        :param self:
        :param virtualRouterName:  The name of the virtual router that the route is associated with.<br/>routeName:  The name of the route to describe.<br/>meshOwner:  The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>meshName:  The name of the service mesh that the route resides in.<br/>
        :return: route:  The full description of your route.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>virtualRouterName</i> The virtual router that the route is associated with.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the route.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>status</b>: The status of the route.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>spec</i> The specifications of the route.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>spec</b>: The specifications of the route.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>routeName</i> The name of the route.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>metadata</i> The associated metadata for the route.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>metadata</b>: The associated metadata for the route.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>meshName</i> The name of the service mesh that the route resides in.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The version of the resource. Resources are created at version 1, and this version is incremented each time that they're updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>uid</i> The unique identifier for the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceOwner</i> The AWS IAM account ID of the resource owner. If the account ID is not your own, then it's the ID of the mesh owner or of another account that the mesh is shared with. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>meshOwner</i> The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedAt</i> The Unix epoch timestamp in seconds for when the resource was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The Unix epoch timestamp in seconds for when the resource was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The full Amazon Resource Name (ARN) for the resource.<br/>An object that represents the specification of a gRPC route.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>grpcRoute</b>: An object that represents the specification of a gRPC route.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current status for the route.<br/>        """
        pass

    def describe_virtual_gateway(self, virtualGatewayName: str, meshName: str, meshOwner: str=None) -> DescribeVirtualGatewayOutput:
        r"""Describes an existing virtual gateway.

        :param self:
        :param virtualGatewayName:  The name of the virtual gateway to describe.<br/>meshOwner:  The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>meshName:  The name of the service mesh that the gateway route resides in.<br/>
        :return: virtualGateway:  The full description of your virtual gateway.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>virtualGatewayName</i> The name of the virtual gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current status of the virtual gateway.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>status</b>: The current status of the virtual gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>spec</i> The specifications of the virtual gateway.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>spec</b>: The specifications of the virtual gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>metadata</i> An object that represents metadata for a resource.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>metadata</b>: An object that represents metadata for a resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>meshName</i> The name of the service mesh that the virtual gateway resides in.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The version of the resource. Resources are created at version 1, and this version is incremented each time that they're updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>uid</i> The unique identifier for the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceOwner</i> The AWS IAM account ID of the resource owner. If the account ID is not your own, then it's the ID of the mesh owner or of another account that the mesh is shared with. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>meshOwner</i> The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedAt</i> The Unix epoch timestamp in seconds for when the resource was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The Unix epoch timestamp in seconds for when the resource was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The full Amazon Resource Name (ARN) for the resource.<br/>A reference to an object that represents the defaults for backends.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>backendDefaults</b>: A reference to an object that represents the defaults for backends.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current status.<br/>        """
        pass

    def describe_virtual_node(self, virtualNodeName: str, meshName: str, meshOwner: str=None) -> DescribeVirtualNodeOutput:
        r"""Describes an existing virtual node.

        :param self:
        :param virtualNodeName:  The name of the virtual node to describe.<br/>meshOwner:  The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>meshName:  The name of the service mesh that the virtual node resides in.<br/>
        :return: virtualNode:  The full description of your virtual node.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>virtualNodeName</i> The name of the virtual node.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current status for the virtual node.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>status</b>: The current status for the virtual node.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>spec</i> The specifications of the virtual node.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>spec</b>: The specifications of the virtual node.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>metadata</i> The associated metadata for the virtual node.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>metadata</b>: The associated metadata for the virtual node.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>meshName</i> The name of the service mesh that the virtual node resides in.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The version of the resource. Resources are created at version 1, and this version is incremented each time that they're updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>uid</i> The unique identifier for the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceOwner</i> The AWS IAM account ID of the resource owner. If the account ID is not your own, then it's the ID of the mesh owner or of another account that the mesh is shared with. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>meshOwner</i> The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedAt</i> The Unix epoch timestamp in seconds for when the resource was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The Unix epoch timestamp in seconds for when the resource was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The full Amazon Resource Name (ARN) for the resource.<br/>A reference to an object that represents the defaults for backends.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>backendDefaults</b>: A reference to an object that represents the defaults for backends.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current status of the virtual node.<br/>        """
        pass

    def describe_virtual_router(self, virtualRouterName: str, meshName: str, meshOwner: str=None) -> DescribeVirtualRouterOutput:
        r"""Describes an existing virtual router.

        :param self:
        :param virtualRouterName:  The name of the virtual router to describe.<br/>meshOwner:  The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>meshName:  The name of the service mesh that the virtual router resides in.<br/>
        :return: virtualRouter:  The full description of your virtual router.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>virtualRouterName</i> The name of the virtual router.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current status of the virtual router.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>status</b>: The current status of the virtual router.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>spec</i> The specifications of the virtual router.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>spec</b>: The specifications of the virtual router.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>metadata</i> The associated metadata for the virtual router.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>metadata</b>: The associated metadata for the virtual router.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>meshName</i> The name of the service mesh that the virtual router resides in.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The version of the resource. Resources are created at version 1, and this version is incremented each time that they're updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>uid</i> The unique identifier for the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceOwner</i> The AWS IAM account ID of the resource owner. If the account ID is not your own, then it's the ID of the mesh owner or of another account that the mesh is shared with. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>meshOwner</i> The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedAt</i> The Unix epoch timestamp in seconds for when the resource was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The Unix epoch timestamp in seconds for when the resource was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The full Amazon Resource Name (ARN) for the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>listeners</i> The listeners that the virtual router is expected to receive inbound traffic from. You can specify one listener.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current status of the virtual router.<br/>        """
        pass

    def describe_virtual_service(self, virtualServiceName: str, meshName: str, meshOwner: str=None) -> DescribeVirtualServiceOutput:
        r"""Describes an existing virtual service.

        :param self:
        :param virtualServiceName:  The name of the virtual service to describe.<br/>meshOwner:  The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>meshName:  The name of the service mesh that the virtual service resides in.<br/>
        :return: virtualService:  The full description of your virtual service.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>virtualServiceName</i> The name of the virtual service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current status of the virtual service.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>status</b>: The current status of the virtual service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>spec</i> The specifications of the virtual service.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>spec</b>: The specifications of the virtual service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>metadata</i> An object that represents metadata for a resource.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>metadata</b>: An object that represents metadata for a resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>meshName</i> The name of the service mesh that the virtual service resides in.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The version of the resource. Resources are created at version 1, and this version is incremented each time that they're updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>uid</i> The unique identifier for the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceOwner</i> The AWS IAM account ID of the resource owner. If the account ID is not your own, then it's the ID of the mesh owner or of another account that the mesh is shared with. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>meshOwner</i> The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedAt</i> The Unix epoch timestamp in seconds for when the resource was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The Unix epoch timestamp in seconds for when the resource was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The full Amazon Resource Name (ARN) for the resource.<br/>The App Mesh object that is acting as the provider for a virtual service. You can specify a single virtual node or virtual router.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>provider</b>: The App Mesh object that is acting as the provider for a virtual service. You can specify a single virtual node or virtual router.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current status of the virtual service.<br/>        """
        pass

    def list_gateway_routes(self, virtualGatewayName: str, meshName: str, limit: int=None, meshOwner: str=None, nextToken: str=None) -> ListGatewayRoutesOutput:
        r"""Returns a list of existing gateway routes that are associated to a virtual gateway.

        :param self:
        :param virtualGatewayName:  The name of the virtual gateway to list gateway routes in.<br/>nextToken:  The <code>nextToken</code> value returned from a previous paginated <code>ListGatewayRoutes</code> request where <code>limit</code> was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the <code>nextToken</code> value.<br/>meshOwner:  The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>meshName:  The name of the service mesh to list gateway routes in.<br/>limit:  The maximum number of results returned by <code>ListGatewayRoutes</code> in paginated output. When you use this parameter, <code>ListGatewayRoutes</code> returns only <code>limit</code> results in a single page along with a <code>nextToken</code> response element. You can see the remaining results of the initial request by sending another <code>ListGatewayRoutes</code> request with the returned <code>nextToken</code> value. This value can be between 1 and 100. If you don't use this parameter, <code>ListGatewayRoutes</code> returns up to 100 results and a <code>nextToken</code> value if applicable.<br/>
        :return: nextToken:  The <code>nextToken</code> value to include in a future <code>ListGatewayRoutes</code> request. When the results of a <code>ListGatewayRoutes</code> request exceed <code>limit</code>, you can use this value to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>gatewayRoutes:  The list of existing gateway routes for the specified service mesh and virtual gateway.<br/>        """
        pass

    def list_meshes(self, limit: int=None, nextToken: str=None) -> ListMeshesOutput:
        r"""Returns a list of existing service meshes.

        :param self:
        :param nextToken:  The <code>nextToken</code> value returned from a previous paginated <code>ListMeshes</code> request where <code>limit</code> was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the <code>nextToken</code> value. <note> This token should be treated as an opaque identifier that is used only to retrieve the next items in a list and not for other programmatic purposes. </note><br/>limit:  The maximum number of results returned by <code>ListMeshes</code> in paginated output. When you use this parameter, <code>ListMeshes</code> returns only <code>limit</code> results in a single page along with a <code>nextToken</code> response element. You can see the remaining results of the initial request by sending another <code>ListMeshes</code> request with the returned <code>nextToken</code> value. This value can be between 1 and 100. If you don't use this parameter, <code>ListMeshes</code> returns up to 100 results and a <code>nextToken</code> value if applicable.<br/>
        :return: nextToken:  The <code>nextToken</code> value to include in a future <code>ListMeshes</code> request. When the results of a <code>ListMeshes</code> request exceed <code>limit</code>, you can use this value to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>meshes:  The list of existing service meshes.<br/>        """
        pass

    def list_routes(self, virtualRouterName: str, meshName: str, limit: int=None, meshOwner: str=None, nextToken: str=None) -> ListRoutesOutput:
        r"""Returns a list of existing routes in a service mesh.

        :param self:
        :param virtualRouterName:  The name of the virtual router to list routes in.<br/>nextToken:  The <code>nextToken</code> value returned from a previous paginated <code>ListRoutes</code> request where <code>limit</code> was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the <code>nextToken</code> value.<br/>meshOwner:  The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>meshName:  The name of the service mesh to list routes in.<br/>limit:  The maximum number of results returned by <code>ListRoutes</code> in paginated output. When you use this parameter, <code>ListRoutes</code> returns only <code>limit</code> results in a single page along with a <code>nextToken</code> response element. You can see the remaining results of the initial request by sending another <code>ListRoutes</code> request with the returned <code>nextToken</code> value. This value can be between 1 and 100. If you don't use this parameter, <code>ListRoutes</code> returns up to 100 results and a <code>nextToken</code> value if applicable.<br/>
        :return: routes:  The list of existing routes for the specified service mesh and virtual router.<br/>nextToken:  The <code>nextToken</code> value to include in a future <code>ListRoutes</code> request. When the results of a <code>ListRoutes</code> request exceed <code>limit</code>, you can use this value to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>        """
        pass

    def list_tags_for_resource(self, resourceArn: str, limit: int=None, nextToken: str=None) -> ListTagsForResourceOutput:
        r"""List the tags for an App Mesh resource.

        :param self:
        :param resourceArn:  The Amazon Resource Name (ARN) that identifies the resource to list the tags for.<br/>nextToken:  The <code>nextToken</code> value returned from a previous paginated <code>ListTagsForResource</code> request where <code>limit</code> was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the <code>nextToken</code> value.<br/>limit:  The maximum number of tag results returned by <code>ListTagsForResource</code> in paginated output. When this parameter is used, <code>ListTagsForResource</code> returns only <code>limit</code> results in a single page along with a <code>nextToken</code> response element. You can see the remaining results of the initial request by sending another <code>ListTagsForResource</code> request with the returned <code>nextToken</code> value. This value can be between 1 and 100. If you don't use this parameter, <code>ListTagsForResource</code> returns up to 100 results and a <code>nextToken</code> value if applicable.<br/>
        :return: tags:  The tags for the resource.<br/>nextToken:  The <code>nextToken</code> value to include in a future <code>ListTagsForResource</code> request. When the results of a <code>ListTagsForResource</code> request exceed <code>limit</code>, you can use this value to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>        """
        pass

    def list_virtual_gateways(self, meshName: str, limit: int=None, meshOwner: str=None, nextToken: str=None) -> ListVirtualGatewaysOutput:
        r"""Returns a list of existing virtual gateways in a service mesh.

        :param self:
        :param nextToken:  The <code>nextToken</code> value returned from a previous paginated <code>ListVirtualGateways</code> request where <code>limit</code> was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the <code>nextToken</code> value.<br/>meshOwner:  The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>meshName:  The name of the service mesh to list virtual gateways in.<br/>limit:  The maximum number of results returned by <code>ListVirtualGateways</code> in paginated output. When you use this parameter, <code>ListVirtualGateways</code> returns only <code>limit</code> results in a single page along with a <code>nextToken</code> response element. You can see the remaining results of the initial request by sending another <code>ListVirtualGateways</code> request with the returned <code>nextToken</code> value. This value can be between 1 and 100. If you don't use this parameter, <code>ListVirtualGateways</code> returns up to 100 results and a <code>nextToken</code> value if applicable.<br/>
        :return: virtualGateways:  The list of existing virtual gateways for the specified service mesh.<br/>nextToken:  The <code>nextToken</code> value to include in a future <code>ListVirtualGateways</code> request. When the results of a <code>ListVirtualGateways</code> request exceed <code>limit</code>, you can use this value to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>        """
        pass

    def list_virtual_nodes(self, meshName: str, limit: int=None, meshOwner: str=None, nextToken: str=None) -> ListVirtualNodesOutput:
        r"""Returns a list of existing virtual nodes.

        :param self:
        :param nextToken:  The <code>nextToken</code> value returned from a previous paginated <code>ListVirtualNodes</code> request where <code>limit</code> was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the <code>nextToken</code> value.<br/>meshOwner:  The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>meshName:  The name of the service mesh to list virtual nodes in.<br/>limit:  The maximum number of results returned by <code>ListVirtualNodes</code> in paginated output. When you use this parameter, <code>ListVirtualNodes</code> returns only <code>limit</code> results in a single page along with a <code>nextToken</code> response element. You can see the remaining results of the initial request by sending another <code>ListVirtualNodes</code> request with the returned <code>nextToken</code> value. This value can be between 1 and 100. If you don't use this parameter, <code>ListVirtualNodes</code> returns up to 100 results and a <code>nextToken</code> value if applicable.<br/>
        :return: virtualNodes:  The list of existing virtual nodes for the specified service mesh.<br/>nextToken:  The <code>nextToken</code> value to include in a future <code>ListVirtualNodes</code> request. When the results of a <code>ListVirtualNodes</code> request exceed <code>limit</code>, you can use this value to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>        """
        pass

    def list_virtual_routers(self, meshName: str, limit: int=None, meshOwner: str=None, nextToken: str=None) -> ListVirtualRoutersOutput:
        r"""Returns a list of existing virtual routers in a service mesh.

        :param self:
        :param nextToken:  The <code>nextToken</code> value returned from a previous paginated <code>ListVirtualRouters</code> request where <code>limit</code> was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the <code>nextToken</code> value.<br/>meshOwner:  The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>meshName:  The name of the service mesh to list virtual routers in.<br/>limit:  The maximum number of results returned by <code>ListVirtualRouters</code> in paginated output. When you use this parameter, <code>ListVirtualRouters</code> returns only <code>limit</code> results in a single page along with a <code>nextToken</code> response element. You can see the remaining results of the initial request by sending another <code>ListVirtualRouters</code> request with the returned <code>nextToken</code> value. This value can be between 1 and 100. If you don't use this parameter, <code>ListVirtualRouters</code> returns up to 100 results and a <code>nextToken</code> value if applicable.<br/>
        :return: virtualRouters:  The list of existing virtual routers for the specified service mesh.<br/>nextToken:  The <code>nextToken</code> value to include in a future <code>ListVirtualRouters</code> request. When the results of a <code>ListVirtualRouters</code> request exceed <code>limit</code>, you can use this value to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>        """
        pass

    def list_virtual_services(self, meshName: str, limit: int=None, meshOwner: str=None, nextToken: str=None) -> ListVirtualServicesOutput:
        r"""Returns a list of existing virtual services in a service mesh.

        :param self:
        :param nextToken:  The <code>nextToken</code> value returned from a previous paginated <code>ListVirtualServices</code> request where <code>limit</code> was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the <code>nextToken</code> value.<br/>meshOwner:  The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>meshName:  The name of the service mesh to list virtual services in.<br/>limit:  The maximum number of results returned by <code>ListVirtualServices</code> in paginated output. When you use this parameter, <code>ListVirtualServices</code> returns only <code>limit</code> results in a single page along with a <code>nextToken</code> response element. You can see the remaining results of the initial request by sending another <code>ListVirtualServices</code> request with the returned <code>nextToken</code> value. This value can be between 1 and 100. If you don't use this parameter, <code>ListVirtualServices</code> returns up to 100 results and a <code>nextToken</code> value if applicable.<br/>
        :return: virtualServices:  The list of existing virtual services for the specified service mesh.<br/>nextToken:  The <code>nextToken</code> value to include in a future <code>ListVirtualServices</code> request. When the results of a <code>ListVirtualServices</code> request exceed <code>limit</code>, you can use this value to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>        """
        pass

    def tag_resource(self, tags: List[TagRef], resourceArn: str) -> TagResourceOutput:
        r"""Associates the specified tags to a resource with the specified <code>resourceArn</code>. If existing tags on a resource aren't specified in the request parameters, they aren't changed. When a resource is deleted, the tags associated with that resource are also deleted.

        :param self:
        :param tags:  The tags to add to the resource. A tag is an array of key-value pairs. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters.<br/>resourceArn:  The Amazon Resource Name (ARN) of the resource to add tags to.<br/>
        :return:         """
        pass

    def untag_resource(self, tagKeys: List[TagKey], resourceArn: str) -> UntagResourceOutput:
        r"""Deletes specified tags from a resource.

        :param self:
        :param tagKeys:  The keys of the tags to be removed.<br/>resourceArn:  The Amazon Resource Name (ARN) of the resource to delete tags from.<br/>
        :return:         """
        pass

    def update_gateway_route(self, virtualGatewayName: str, spec: GatewayRouteSpec, meshName: str, gatewayRouteName: str, clientToken: str=None, meshOwner: str=None) -> UpdateGatewayRouteOutput:
        r"""Updates an existing gateway route that is associated to a specified virtual gateway in a service mesh.

        :param self:
        :param virtualGatewayName:  The name of the virtual gateway that the gateway route is associated with.<br/>spec:  The new gateway route specification to apply. This overwrites the existing data.:<br/>meshOwner:  The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>meshName:  The name of the service mesh that the gateway route resides in.<br/>gatewayRouteName:  The name of the gateway route to update.<br/>clientToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Up to 36 letters, numbers, hyphens, and underscores are allowed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>priority</i> The ordering of the gateway routes spec.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>httpRoute</i> An object that represents the specification of an HTTP gateway route.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>httpRoute</b>: An object that represents the specification of an HTTP gateway route.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>http2Route</i> An object that represents the specification of an HTTP/2 gateway route.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>http2Route</b>: An object that represents the specification of an HTTP/2 gateway route.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>grpcRoute</i> An object that represents the specification of a gRPC gateway route.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>grpcRoute</b>: An object that represents the specification of a gRPC gateway route.<br/>An object that represents the action to take if a match is determined.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>action</b>: An object that represents the action to take if a match is determined.An object that represents the action to take if a match is determined.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>action</b>: An object that represents the action to take if a match is determined.An object that represents the action to take if a match is determined.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>action</b>: An object that represents the action to take if a match is determined.
        :return: gatewayRoute:  A full description of the gateway route that was updated.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>virtualGatewayName</i> The virtual gateway that the gateway route is associated with.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the gateway route.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>status</b>: The status of the gateway route.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>spec</i> The specifications of the gateway route.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>spec</b>: The specifications of the gateway route.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>metadata</i> An object that represents metadata for a resource.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>metadata</b>: An object that represents metadata for a resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>meshName</i> The name of the service mesh that the resource resides in. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>gatewayRouteName</i> The name of the gateway route.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The version of the resource. Resources are created at version 1, and this version is incremented each time that they're updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>uid</i> The unique identifier for the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceOwner</i> The AWS IAM account ID of the resource owner. If the account ID is not your own, then it's the ID of the mesh owner or of another account that the mesh is shared with. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>meshOwner</i> The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedAt</i> The Unix epoch timestamp in seconds for when the resource was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The Unix epoch timestamp in seconds for when the resource was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The full Amazon Resource Name (ARN) for the resource.<br/>An object that represents the specification of a gRPC gateway route.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>grpcRoute</b>: An object that represents the specification of a gRPC gateway route.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current status for the gateway route.<br/>        """
        pass

    def update_mesh(self, meshName: str, clientToken: str=None, spec: MeshSpec=None) -> UpdateMeshOutput:
        r"""Updates an existing service mesh.

        :param self:
        :param spec:  The service mesh specification to apply.:<br/>meshName:  The name of the service mesh to update.<br/>clientToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Up to 36 letters, numbers, hyphens, and underscores are allowed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>egressFilter</i> The egress filter rules for the service mesh.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>egressFilter</b>: The egress filter rules for the service mesh.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The egress filter type. By default, the type is <code>DROP_ALL</code>, which allows egress only from virtual nodes to other defined resources in the service mesh (and any traffic to <code>*.amazonaws.com</code> for Amazon Web Services API calls). You can set the egress filter type to <code>ALLOW_ALL</code> to allow egress to any endpoint inside or outside of the service mesh.<br/>
        :return: mesh:  An object that represents a service mesh returned by a describe operation.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the service mesh.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>status</b>: The status of the service mesh.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>spec</i> The associated specification for the service mesh.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>spec</b>: The associated specification for the service mesh.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>metadata</i> The associated metadata for the service mesh.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>metadata</b>: The associated metadata for the service mesh.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>meshName</i> The name of the service mesh.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The version of the resource. Resources are created at version 1, and this version is incremented each time that they're updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>uid</i> The unique identifier for the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceOwner</i> The AWS IAM account ID of the resource owner. If the account ID is not your own, then it's the ID of the mesh owner or of another account that the mesh is shared with. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>meshOwner</i> The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedAt</i> The Unix epoch timestamp in seconds for when the resource was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The Unix epoch timestamp in seconds for when the resource was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The full Amazon Resource Name (ARN) for the resource.<br/>The egress filter rules for the service mesh.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>egressFilter</b>: The egress filter rules for the service mesh.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current mesh status.<br/>        """
        pass

    def update_route(self, virtualRouterName: str, spec: RouteSpec, routeName: str, meshName: str, clientToken: str=None, meshOwner: str=None) -> UpdateRouteOutput:
        r"""Updates an existing route for a specified service mesh and virtual router.

        :param self:
        :param virtualRouterName:  The name of the virtual router that the route is associated with.<br/>spec:  The new route specification to apply. This overwrites the existing data.:<br/>routeName:  The name of the route to update.<br/>meshOwner:  The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>meshName:  The name of the service mesh that the route resides in.<br/>clientToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Up to 36 letters, numbers, hyphens, and underscores are allowed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tcpRoute</i> An object that represents the specification of a TCP route.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>tcpRoute</b>: An object that represents the specification of a TCP route.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>priority</i> The priority for the route. Routes are matched based on the specified value, where 0 is the highest priority.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>httpRoute</i> An object that represents the specification of an HTTP route.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>httpRoute</b>: An object that represents the specification of an HTTP route.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>http2Route</i> An object that represents the specification of an HTTP/2 route.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>http2Route</b>: An object that represents the specification of an HTTP/2 route.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>grpcRoute</i> An object that represents the specification of a gRPC route.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>grpcRoute</b>: An object that represents the specification of a gRPC route.<br/>An object that represents the action to take if a match is determined.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>action</b>: An object that represents the action to take if a match is determined.An object that represents the action to take if a match is determined.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>action</b>: An object that represents the action to take if a match is determined.An object that represents the action to take if a match is determined.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>action</b>: An object that represents the action to take if a match is determined.The action to take if a match is determined.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>action</b>: The action to take if a match is determined.
        :return: route:  A full description of the route that was updated.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>virtualRouterName</i> The virtual router that the route is associated with.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the route.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>status</b>: The status of the route.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>spec</i> The specifications of the route.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>spec</b>: The specifications of the route.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>routeName</i> The name of the route.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>metadata</i> The associated metadata for the route.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>metadata</b>: The associated metadata for the route.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>meshName</i> The name of the service mesh that the route resides in.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The version of the resource. Resources are created at version 1, and this version is incremented each time that they're updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>uid</i> The unique identifier for the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceOwner</i> The AWS IAM account ID of the resource owner. If the account ID is not your own, then it's the ID of the mesh owner or of another account that the mesh is shared with. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>meshOwner</i> The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedAt</i> The Unix epoch timestamp in seconds for when the resource was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The Unix epoch timestamp in seconds for when the resource was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The full Amazon Resource Name (ARN) for the resource.<br/>An object that represents the specification of a gRPC route.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>grpcRoute</b>: An object that represents the specification of a gRPC route.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current status for the route.<br/>        """
        pass

    def update_virtual_gateway(self, virtualGatewayName: str, spec: VirtualGatewaySpec, meshName: str, clientToken: str=None, meshOwner: str=None) -> UpdateVirtualGatewayOutput:
        r"""Updates an existing virtual gateway in a specified service mesh.

        :param self:
        :param virtualGatewayName:  The name of the virtual gateway to update.<br/>spec:  The new virtual gateway specification to apply. This overwrites the existing data.:<br/>meshOwner:  The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>meshName:  The name of the service mesh that the virtual gateway resides in.<br/>clientToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Up to 36 letters, numbers, hyphens, and underscores are allowed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>logging</i> An object that represents logging information.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>logging</b>: An object that represents logging information.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>listeners</i> The listeners that the mesh endpoint is expected to receive inbound traffic from. You can specify one listener.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>backendDefaults</i> A reference to an object that represents the defaults for backends.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>backendDefaults</b>: A reference to an object that represents the defaults for backends.<br/>A reference to an object that represents a client policy.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>clientPolicy</b>: A reference to an object that represents a client policy.The access log configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>accessLog</b>: The access log configuration.
        :return: virtualGateway:  A full description of the virtual gateway that was updated.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>virtualGatewayName</i> The name of the virtual gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current status of the virtual gateway.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>status</b>: The current status of the virtual gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>spec</i> The specifications of the virtual gateway.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>spec</b>: The specifications of the virtual gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>metadata</i> An object that represents metadata for a resource.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>metadata</b>: An object that represents metadata for a resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>meshName</i> The name of the service mesh that the virtual gateway resides in.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The version of the resource. Resources are created at version 1, and this version is incremented each time that they're updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>uid</i> The unique identifier for the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceOwner</i> The AWS IAM account ID of the resource owner. If the account ID is not your own, then it's the ID of the mesh owner or of another account that the mesh is shared with. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>meshOwner</i> The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedAt</i> The Unix epoch timestamp in seconds for when the resource was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The Unix epoch timestamp in seconds for when the resource was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The full Amazon Resource Name (ARN) for the resource.<br/>A reference to an object that represents the defaults for backends.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>backendDefaults</b>: A reference to an object that represents the defaults for backends.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current status.<br/>        """
        pass

    def update_virtual_node(self, virtualNodeName: str, spec: VirtualNodeSpec, meshName: str, clientToken: str=None, meshOwner: str=None) -> UpdateVirtualNodeOutput:
        r"""Updates an existing virtual node in a specified service mesh.

        :param self:
        :param virtualNodeName:  The name of the virtual node to update.<br/>spec:  The new virtual node specification to apply. This overwrites the existing data.:<br/>meshOwner:  The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>meshName:  The name of the service mesh that the virtual node resides in.<br/>clientToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Up to 36 letters, numbers, hyphens, and underscores are allowed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>serviceDiscovery</i> The service discovery information for the virtual node. If your virtual node does not expect ingress traffic, you can omit this parameter. If you specify a <code>listener</code>, then you must specify service discovery information.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>serviceDiscovery</b>: The service discovery information for the virtual node. If your virtual node does not expect ingress traffic, you can omit this parameter. If you specify a <code>listener</code>, then you must specify service discovery information.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>logging</i> The inbound and outbound access logging information for the virtual node.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>logging</b>: The inbound and outbound access logging information for the virtual node.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>listeners</i> The listener that the virtual node is expected to receive inbound traffic from. You can specify one listener.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>backends</i> The backends that the virtual node is expected to send outbound traffic to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>backendDefaults</i> A reference to an object that represents the defaults for backends.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>backendDefaults</b>: A reference to an object that represents the defaults for backends.<br/>A reference to an object that represents a client policy.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>clientPolicy</b>: A reference to an object that represents a client policy.The access log configuration for a virtual node.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>accessLog</b>: The access log configuration for a virtual node.Specifies any Cloud Map information for the virtual node.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>awsCloudMap</b>: Specifies any Cloud Map information for the virtual node.
        :return: virtualNode:  A full description of the virtual node that was updated.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>virtualNodeName</i> The name of the virtual node.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current status for the virtual node.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>status</b>: The current status for the virtual node.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>spec</i> The specifications of the virtual node.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>spec</b>: The specifications of the virtual node.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>metadata</i> The associated metadata for the virtual node.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>metadata</b>: The associated metadata for the virtual node.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>meshName</i> The name of the service mesh that the virtual node resides in.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The version of the resource. Resources are created at version 1, and this version is incremented each time that they're updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>uid</i> The unique identifier for the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceOwner</i> The AWS IAM account ID of the resource owner. If the account ID is not your own, then it's the ID of the mesh owner or of another account that the mesh is shared with. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>meshOwner</i> The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedAt</i> The Unix epoch timestamp in seconds for when the resource was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The Unix epoch timestamp in seconds for when the resource was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The full Amazon Resource Name (ARN) for the resource.<br/>A reference to an object that represents the defaults for backends.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>backendDefaults</b>: A reference to an object that represents the defaults for backends.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current status of the virtual node.<br/>        """
        pass

    def update_virtual_router(self, virtualRouterName: str, spec: VirtualRouterSpec, meshName: str, clientToken: str=None, meshOwner: str=None) -> UpdateVirtualRouterOutput:
        r"""Updates an existing virtual router in a specified service mesh.

        :param self:
        :param virtualRouterName:  The name of the virtual router to update.<br/>spec:  The new virtual router specification to apply. This overwrites the existing data.:<br/>meshOwner:  The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>meshName:  The name of the service mesh that the virtual router resides in.<br/>clientToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Up to 36 letters, numbers, hyphens, and underscores are allowed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>listeners</i> The listeners that the virtual router is expected to receive inbound traffic from. You can specify one listener.<br/>
        :return: virtualRouter:  A full description of the virtual router that was updated.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>virtualRouterName</i> The name of the virtual router.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current status of the virtual router.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>status</b>: The current status of the virtual router.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>spec</i> The specifications of the virtual router.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>spec</b>: The specifications of the virtual router.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>metadata</i> The associated metadata for the virtual router.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>metadata</b>: The associated metadata for the virtual router.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>meshName</i> The name of the service mesh that the virtual router resides in.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The version of the resource. Resources are created at version 1, and this version is incremented each time that they're updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>uid</i> The unique identifier for the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceOwner</i> The AWS IAM account ID of the resource owner. If the account ID is not your own, then it's the ID of the mesh owner or of another account that the mesh is shared with. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>meshOwner</i> The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedAt</i> The Unix epoch timestamp in seconds for when the resource was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The Unix epoch timestamp in seconds for when the resource was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The full Amazon Resource Name (ARN) for the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>listeners</i> The listeners that the virtual router is expected to receive inbound traffic from. You can specify one listener.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current status of the virtual router.<br/>        """
        pass

    def update_virtual_service(self, virtualServiceName: str, spec: VirtualServiceSpec, meshName: str, clientToken: str=None, meshOwner: str=None) -> UpdateVirtualServiceOutput:
        r"""Updates an existing virtual service in a specified service mesh.

        :param self:
        :param virtualServiceName:  The name of the virtual service to update.<br/>spec:  The new virtual service specification to apply. This overwrites the existing data.:<br/>meshOwner:  The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>meshName:  The name of the service mesh that the virtual service resides in.<br/>clientToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Up to 36 letters, numbers, hyphens, and underscores are allowed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>provider</i> The App Mesh object that is acting as the provider for a virtual service. You can specify a single virtual node or virtual router.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>provider</b>: The App Mesh object that is acting as the provider for a virtual service. You can specify a single virtual node or virtual router.<br/>The virtual node associated with a virtual service.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>virtualNode</b>: The virtual node associated with a virtual service.
        :return: virtualService:  A full description of the virtual service that was updated.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>virtualServiceName</i> The name of the virtual service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current status of the virtual service.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>status</b>: The current status of the virtual service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>spec</i> The specifications of the virtual service.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>spec</b>: The specifications of the virtual service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>metadata</i> An object that represents metadata for a resource.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>metadata</b>: An object that represents metadata for a resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>meshName</i> The name of the service mesh that the virtual service resides in.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The version of the resource. Resources are created at version 1, and this version is incremented each time that they're updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>uid</i> The unique identifier for the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceOwner</i> The AWS IAM account ID of the resource owner. If the account ID is not your own, then it's the ID of the mesh owner or of another account that the mesh is shared with. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>meshOwner</i> The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html">Working with shared meshes</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedAt</i> The Unix epoch timestamp in seconds for when the resource was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The Unix epoch timestamp in seconds for when the resource was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The full Amazon Resource Name (ARN) for the resource.<br/>The App Mesh object that is acting as the provider for a virtual service. You can specify a single virtual node or virtual router.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>provider</b>: The App Mesh object that is acting as the provider for a virtual service. You can specify a single virtual node or virtual router.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current status of the virtual service.<br/>        """
        pass





class AppRunner(BaseClient):
    r"""<fullname>AWS App Runner</fullname> AWS App Runner is an application service that provides a fast, simple, and cost-effective way to go directly from an existing container image or source code to a running service in the AWS cloud in seconds. You don't need to learn new technologies, decide which compute service to use, or understand how to provision and configure AWS resources. App Runner connects directly to your container registry or source code repository. It provides an automatic delivery pipeline with fully managed operations, high performance, scalability, and security. For more information about App Runner, see the <a href="https://docs.aws.amazon.com/apprunner/latest/dg/">AWS App Runner Developer Guide</a>. For release information, see the <a href="https://docs.aws.amazon.com/apprunner/latest/relnotes/">AWS App Runner Release Notes</a>.  To install the Software Development Kits (SDKs), Integrated Development Environment (IDE) Toolkits, and command line tools that you can use to access the API, see <a href="http://aws.amazon.com/tools/">Tools for Amazon Web Services</a>.  <b>Endpoints</b>  For a list of Region-specific endpoints that App Runner supports, see <a href="https://docs.aws.amazon.com/general/latest/gr/apprunner.html">AWS App Runner endpoints and quotas</a> in the <i>AWS General Reference</i>."""




    class AssociateCustomDomainRequest(Mapping):
        pass
    
    class AssociateCustomDomainResponse(Mapping):
        pass
    
    class NullableBoolean(object):
        pass
    
    class CreateAutoScalingConfigurationRequest(Mapping):
        pass
    
    class CreateAutoScalingConfigurationResponse(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class CreateConnectionRequest(Mapping):
        pass
    
    class CreateConnectionResponse(Mapping):
        pass
    
    class CreateServiceRequest(Mapping):
        pass
    
    class CreateServiceResponse(Mapping):
        pass
    
    class SourceConfiguration(Mapping):
        pass
    
    class InstanceConfiguration(Mapping):
        pass
    
    class EncryptionConfiguration(Mapping):
        pass
    
    class HealthCheckConfiguration(Mapping):
        pass
    
    class DeleteAutoScalingConfigurationRequest(Mapping):
        pass
    
    class DeleteAutoScalingConfigurationResponse(Mapping):
        pass
    
    class DeleteConnectionRequest(Mapping):
        pass
    
    class DeleteConnectionResponse(Mapping):
        pass
    
    class DeleteServiceRequest(Mapping):
        pass
    
    class DeleteServiceResponse(Mapping):
        pass
    
    class DescribeAutoScalingConfigurationRequest(Mapping):
        pass
    
    class DescribeAutoScalingConfigurationResponse(Mapping):
        pass
    
    class DescribeCustomDomainsRequest(Mapping):
        pass
    
    class DescribeCustomDomainsResponse(Mapping):
        pass
    
    class DescribeServiceRequest(Mapping):
        pass
    
    class DescribeServiceResponse(Mapping):
        pass
    
    class DisassociateCustomDomainRequest(Mapping):
        pass
    
    class DisassociateCustomDomainResponse(Mapping):
        pass
    
    class ListAutoScalingConfigurationsRequest(Mapping):
        pass
    
    class ListAutoScalingConfigurationsResponse(Mapping):
        pass
    
    class Boolean(object):
        pass
    
    class ListConnectionsRequest(Mapping):
        pass
    
    class ListConnectionsResponse(Mapping):
        pass
    
    class ListOperationsRequest(Mapping):
        pass
    
    class ListOperationsResponse(Mapping):
        pass
    
    class ListServicesRequest(Mapping):
        pass
    
    class ListServicesResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class PauseServiceRequest(Mapping):
        pass
    
    class PauseServiceResponse(Mapping):
        pass
    
    class ResumeServiceRequest(Mapping):
        pass
    
    class ResumeServiceResponse(Mapping):
        pass
    
    class StartDeploymentRequest(Mapping):
        pass
    
    class StartDeploymentResponse(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateServiceRequest(Mapping):
        pass
    
    class UpdateServiceResponse(Mapping):
        pass
    
    def associate_custom_domain(self, DomainName: str, ServiceArn: str, EnableWWWSubdomain: NullableBoolean=None) -> AssociateCustomDomainResponse:
        r"""Associate your own domain name with the AWS App Runner subdomain URL of your App Runner service. After you call <code>AssociateCustomDomain</code> and receive a successful response, use the information in the <a>CustomDomain</a> record that's returned to add CNAME records to your Domain Name System (DNS). For each mapped domain name, add a mapping to the target App Runner subdomain and one or more certificate validation records. App Runner then performs DNS validation to verify that you own or control the domain name that you associated. App Runner tracks domain validity in a certificate stored in <a href="https://docs.aws.amazon.com/acm/latest/userguide">AWS Certificate Manager (ACM)</a>.

        :param self:
        :param EnableWWWSubdomain:  Set to <code>true</code> to associate the subdomain <code>www.<i>DomainName</i> </code> with the App Runner service in addition to the base domain. Default: <code>true</code> <br/>DomainName:  A custom domain endpoint to associate. Specify a root domain (for example, <code>example.com</code>), a subdomain (for example, <code>login.example.com</code> or <code>admin.login.example.com</code>), or a wildcard (for example, <code>*.example.com</code>).<br/>ServiceArn:  The Amazon Resource Name (ARN) of the App Runner service that you want to associate a custom domain name with.<br/>
        :return: CustomDomain:  A description of the domain name that's being associated.:<br/>ServiceArn:  The Amazon Resource Name (ARN) of the App Runner service with which a custom domain name is associated.<br/>DNSTarget:  The App Runner subdomain of the App Runner service. The custom domain name is mapped to this target name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current state of the domain name association.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CertificateValidationRecords</i> A list of certificate CNAME records that's used for this domain name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableWWWSubdomain</i> When <code>true</code>, the subdomain <code>www.<i>DomainName</i> </code> is associated with the App Runner service in addition to the base domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainName</i> An associated custom domain endpoint. It can be a root domain (for example, <code>example.com</code>), a subdomain (for example, <code>login.example.com</code> or <code>admin.login.example.com</code>), or a wildcard (for example, <code>*.example.com</code>).<br/>        """
        pass

    def create_auto_scaling_configuration(self, AutoScalingConfigurationName: str, MaxConcurrency: int=None, MinSize: int=None, MaxSize: int=None, Tags: List[Tag]=None) -> CreateAutoScalingConfigurationResponse:
        r"""Create an AWS App Runner automatic scaling configuration resource. App Runner requires this resource when you create App Runner services that require non-default auto scaling settings. You can share an auto scaling configuration across multiple services. Create multiple revisions of a configuration by using the same <code>AutoScalingConfigurationName</code> and different <code>AutoScalingConfigurationRevision</code> values. When you create a service, you can set it to use the latest active revision of an auto scaling configuration or a specific revision. Configure a higher <code>MinSize</code> to increase the spread of your App Runner service over more Availability Zones in the AWS Region. The tradeoff is a higher minimal cost. Configure a lower <code>MaxSize</code> to control your cost. The tradeoff is lower responsiveness during peak demand.

        :param self:
        :param Tags:  A list of metadata items that you can associate with your auto scaling configuration resource. A tag is a key-value pair.<br/>MaxSize:  The maximum number of instances that your service scales up to. At most <code>MaxSize</code> instances actively serve traffic for your service. Default: <code>25</code> <br/>MinSize:  The minimum number of instances that App Runner provisions for your service. The service always has at least <code>MinSize</code> provisioned instances. Some of them actively serve traffic. The rest of them (provisioned and inactive instances) are a cost-effective compute capacity reserve and are ready to be quickly activated. You pay for memory usage of all the provisioned instances. You pay for CPU usage of only the active subset. App Runner temporarily doubles the number of provisioned instances during deployments, to maintain the same capacity for both old and new code. Default: <code>1</code> <br/>MaxConcurrency:  The maximum number of concurrent requests that you want an instance to process. If the number of concurrent requests exceeds this limit, App Runner scales up your service. Default: <code>100</code> <br/>AutoScalingConfigurationName:  A name for the auto scaling configuration. When you use it for the first time in an AWS Region, App Runner creates revision number <code>1</code> of this name. When you use the same name in subsequent calls, App Runner creates incremental revisions of the configuration.<br/>
        :return: AutoScalingConfiguration:  A description of the App Runner auto scaling configuration that's created by this request.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeletedAt</i> The time when the auto scaling configuration was deleted. It's in Unix time stamp format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedAt</i> The time when the auto scaling configuration was created. It's in Unix time stamp format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxSize</i> The maximum number of instances that a service scales up to. At most <code>MaxSize</code> instances actively serve traffic for your service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MinSize</i> The minimum number of instances that App Runner provisions for a service. The service always has at least <code>MinSize</code> provisioned instances. Some of them actively serve traffic. The rest of them (provisioned and inactive instances) are a cost-effective compute capacity reserve and are ready to be quickly activated. You pay for memory usage of all the provisioned instances. You pay for CPU usage of only the active subset. App Runner temporarily doubles the number of provisioned instances during deployments, to maintain the same capacity for both old and new code.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxConcurrency</i> The maximum number of concurrent requests that an instance processes. If the number of concurrent requests exceeds this limit, App Runner scales the service up.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current state of the auto scaling configuration. If the status of a configuration revision is <code>INACTIVE</code>, it was deleted and can't be used. Inactive configuration revisions are permanently removed some time after they are deleted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Latest</i> It's set to <code>true</code> for the configuration with the highest <code>Revision</code> among all configurations that share the same <code>Name</code>. It's set to <code>false</code> otherwise.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoScalingConfigurationRevision</i> The revision of this auto scaling configuration. It's unique among all the active configurations (<code>"Status": "ACTIVE"</code>) that share the same <code>AutoScalingConfigurationName</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoScalingConfigurationName</i> The customer-provided auto scaling configuration name. It can be used in multiple revisions of a configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoScalingConfigurationArn</i> The Amazon Resource Name (ARN) of this auto scaling configuration.<br/>        """
        pass

    def create_connection(self, ProviderType: str, ConnectionName: str, Tags: List[Tag]=None) -> CreateConnectionResponse:
        r"""Create an AWS App Runner connection resource. App Runner requires a connection resource when you create App Runner services that access private repositories from certain third-party providers. You can share a connection across multiple services. A connection resource is needed to access GitHub repositories. GitHub requires a user interface approval process through the App Runner console before you can use the connection.

        :param self:
        :param Tags:  A list of metadata items that you can associate with your connection resource. A tag is a key-value pair.<br/>ProviderType:  The source repository provider.<br/>ConnectionName:  A name for the new connection. It must be unique across all App Runner connections for the AWS account in the AWS Region.<br/>
        :return: Connection:  A description of the App Runner connection that's created by this request.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedAt</i> The App Runner connection creation time, expressed as a Unix time stamp.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current state of the App Runner connection. When the state is <code>AVAILABLE</code>, you can use the connection to create an App Runner service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProviderType</i> The source repository provider.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConnectionArn</i> The Amazon Resource Name (ARN) of this connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConnectionName</i> The customer-provided connection name.<br/>        """
        pass

    def create_service(self, SourceConfiguration: SourceConfiguration, ServiceName: str, InstanceConfiguration: InstanceConfiguration=None, Tags: List[Tag]=None, EncryptionConfiguration: EncryptionConfiguration=None, HealthCheckConfiguration: HealthCheckConfiguration=None, AutoScalingConfigurationArn: str=None) -> CreateServiceResponse:
        r"""Create an AWS App Runner service. After the service is created, the action also automatically starts a deployment. This is an asynchronous operation. On a successful call, you can use the returned <code>OperationId</code> and the <a href="https://docs.aws.amazon.com/apprunner/latest/api/API_ListOperations.html">ListOperations</a> call to track the operation's progress.

        :param self:
        :param AutoScalingConfigurationArn:  The Amazon Resource Name (ARN) of an App Runner automatic scaling configuration resource that you want to associate with your service. If not provided, App Runner associates the latest revision of a default auto scaling configuration.<br/>HealthCheckConfiguration:  The settings for the health check that AWS App Runner performs to monitor the health of your service.:<br/>EncryptionConfiguration:  An optional custom encryption key that App Runner uses to encrypt the copy of your source repository that it maintains and your service logs. By default, App Runner uses an AWS managed CMK.:<br/>Tags:  An optional list of metadata items that you can associate with your service resource. A tag is a key-value pair.<br/>InstanceConfiguration:  The runtime configuration of instances (scaling units) of the App Runner service.:<br/>SourceConfiguration:  The source to deploy to the App Runner service. It can be a code or an image repository.:<br/>ServiceName:  A name for the new service. It must be unique across all the running App Runner services in your AWS account in the AWS Region.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AuthenticationConfiguration</i> Describes the resources that are needed to authenticate access to some source repositories.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AuthenticationConfiguration</b>: Describes the resources that are needed to authenticate access to some source repositories.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoDeploymentsEnabled</i> If <code>true</code>, continuous integration from the source repository is enabled for the App Runner service. Each repository change (source code commit or new image version) starts a deployment. Default: <code>true</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImageRepository</i> The description of a source image repository. You must provide either this member or <code>CodeRepository</code> (but not both).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ImageRepository</b>: The description of a source image repository. You must provide either this member or <code>CodeRepository</code> (but not both).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CodeRepository</i> The description of a source code repository. You must provide either this member or <code>ImageRepository</code> (but not both).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CodeRepository</b>: The description of a source code repository. You must provide either this member or <code>ImageRepository</code> (but not both).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RepositoryUrl</i> The location of the repository that contains the source code.<br/>The version that should be used within the source code repository.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SourceCodeVersion</b>: The version that should be used within the source code repository.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ImageIdentifier</i> The identifier of an image. For an image in Amazon Elastic Container Registry (Amazon ECR), this is an image name. For the image name format, see <a href="https://docs.aws.amazon.com/AmazonECR/latest/userguide/docker-pull-ecr-image.html">Pulling an image</a> in the <i>Amazon ECR User Guide</i>.<br/>Configuration for running the identified image.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ImageConfiguration</b>: Configuration for running the identified image.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AccessRoleArn</i> The Amazon Resource Name (ARN) of the IAM role that grants the App Runner service access to a source repository. It's required for ECR image repositories (but not for ECR Public repositories).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ConnectionArn</i> The Amazon Resource Name (ARN) of the App Runner connection that enables the App Runner service to connect to a source repository. It's required for GitHub code repositories.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceRoleArn</i> The Amazon Resource Name (ARN) of an IAM role that provides permissions to your App Runner service. These are permissions that your code needs when it calls any AWS APIs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Memory</i> The amount of memory, in MB or GB, reserved for each instance of your App Runner service. Default: <code>2 GB</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Cpu</i> The number of CPU units reserved for each instance of your App Runner service. Default: <code>1 vCPU</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKey</i> The ARN of the KMS key that's used for encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UnhealthyThreshold</i> The number of consecutive checks that must fail before App Runner decides that the service is unhealthy. Default: <code>3</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HealthyThreshold</i> The number of consecutive checks that must succeed before App Runner decides that the service is healthy. Default: <code>3</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Timeout</i> The time, in seconds, to wait for a health check response before deciding it failed. Default: <code>2</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Interval</i> The time interval, in seconds, between health checks. Default: <code>5</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Path</i> The URL that health check requests are sent to.  <code>Path</code> is only applicable when you set <code>Protocol</code> to <code>HTTP</code>. Default: <code>"/"</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Protocol</i> The IP protocol that App Runner uses to perform health checks for your service. If you set <code>Protocol</code> to <code>HTTP</code>, App Runner sends health check requests to the HTTP path specified by <code>Path</code>. Default: <code>TCP</code> <br/>
        :return: OperationId:  The unique ID of the asynchronous operation that this request started. You can use it combined with the <a href="https://docs.aws.amazon.com/apprunner/latest/api/API_ListOperations.html">ListOperations</a> call to track the operation's progress.<br/>Service:  A description of the App Runner service that's created by this request.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoScalingConfigurationSummary</i> Summary information for the App Runner automatic scaling configuration resource that's associated with this service.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AutoScalingConfigurationSummary</b>: Summary information for the App Runner automatic scaling configuration resource that's associated with this service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HealthCheckConfiguration</i> The settings for the health check that App Runner performs to monitor the health of this service.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>HealthCheckConfiguration</b>: The settings for the health check that App Runner performs to monitor the health of this service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EncryptionConfiguration</i> The encryption key that App Runner uses to encrypt the service logs and the copy of the source repository that App Runner maintains for the service. It can be either a customer-provided encryption key or an AWS managed CMK.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EncryptionConfiguration</b>: The encryption key that App Runner uses to encrypt the service logs and the copy of the source repository that App Runner maintains for the service. It can be either a customer-provided encryption key or an AWS managed CMK.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceConfiguration</i> The runtime configuration of instances (scaling units) of this service.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>InstanceConfiguration</b>: The runtime configuration of instances (scaling units) of this service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceConfiguration</i> The source deployed to the App Runner service. It can be a code or an image repository.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SourceConfiguration</b>: The source deployed to the App Runner service. It can be a code or an image repository.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current state of the App Runner service. These particular values mean the following. <ul> <li>  <code>CREATE_FAILED</code> – The service failed to create. To troubleshoot this failure, read the failure events and logs, change any parameters that need to be fixed, and retry the call to create the service. The failed service isn't usable, and still counts towards your service quota. When you're done analyzing the failure, delete the service. </li> <li>  <code>DELETE_FAILED</code> – The service failed to delete and can't be successfully recovered. Retry the service deletion call to ensure that all related resources are removed. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeletedAt</i> The time when the App Runner service was deleted. It's in the Unix time stamp format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdatedAt</i> The time when the App Runner service was last updated at. It's in the Unix time stamp format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedAt</i> The time when the App Runner service was created. It's in the Unix time stamp format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceUrl</i> A subdomain URL that App Runner generated for this service. You can use this URL to access your service web application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceArn</i> The Amazon Resource Name (ARN) of this service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceId</i> An ID that App Runner generated for this service. It's unique within the AWS Region.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceName</i> The customer-provided service name.<br/>The description of a source code repository. You must provide either this member or <code>ImageRepository</code> (but not both).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CodeRepository</b>: The description of a source code repository. You must provide either this member or <code>ImageRepository</code> (but not both).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceRoleArn</i> The Amazon Resource Name (ARN) of an IAM role that provides permissions to your App Runner service. These are permissions that your code needs when it calls any AWS APIs.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Memory</i> The amount of memory, in MB or GB, reserved for each instance of your App Runner service. Default: <code>2 GB</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Cpu</i> The number of CPU units reserved for each instance of your App Runner service. Default: <code>1 vCPU</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKey</i> The ARN of the KMS key that's used for encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UnhealthyThreshold</i> The number of consecutive checks that must fail before App Runner decides that the service is unhealthy. Default: <code>3</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HealthyThreshold</i> The number of consecutive checks that must succeed before App Runner decides that the service is healthy. Default: <code>3</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Timeout</i> The time, in seconds, to wait for a health check response before deciding it failed. Default: <code>2</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Interval</i> The time interval, in seconds, between health checks. Default: <code>5</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Path</i> The URL that health check requests are sent to.  <code>Path</code> is only applicable when you set <code>Protocol</code> to <code>HTTP</code>. Default: <code>"/"</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Protocol</i> The IP protocol that App Runner uses to perform health checks for your service. If you set <code>Protocol</code> to <code>HTTP</code>, App Runner sends health check requests to the HTTP path specified by <code>Path</code>. Default: <code>TCP</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoScalingConfigurationRevision</i> The revision of this auto scaling configuration. It's unique among all the active configurations (<code>"Status": "ACTIVE"</code>) with the same <code>AutoScalingConfigurationName</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoScalingConfigurationName</i> The customer-provided auto scaling configuration name. It can be used in multiple revisions of a configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoScalingConfigurationArn</i> The Amazon Resource Name (ARN) of this auto scaling configuration.<br/>        """
        pass

    def delete_auto_scaling_configuration(self, AutoScalingConfigurationArn: str) -> DeleteAutoScalingConfigurationResponse:
        r"""Delete an AWS App Runner automatic scaling configuration resource. You can delete a specific revision or the latest active revision. You can't delete a configuration that's used by one or more App Runner services.

        :param self:
        :param AutoScalingConfigurationArn:  The Amazon Resource Name (ARN) of the App Runner auto scaling configuration that you want to delete. The ARN can be a full auto scaling configuration ARN, or a partial ARN ending with either <code>.../<i>name</i> </code> or <code>.../<i>name</i>/<i>revision</i> </code>. If a revision isn't specified, the latest active revision is deleted.<br/>
        :return: AutoScalingConfiguration:  A description of the App Runner auto scaling configuration that this request just deleted.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeletedAt</i> The time when the auto scaling configuration was deleted. It's in Unix time stamp format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedAt</i> The time when the auto scaling configuration was created. It's in Unix time stamp format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxSize</i> The maximum number of instances that a service scales up to. At most <code>MaxSize</code> instances actively serve traffic for your service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MinSize</i> The minimum number of instances that App Runner provisions for a service. The service always has at least <code>MinSize</code> provisioned instances. Some of them actively serve traffic. The rest of them (provisioned and inactive instances) are a cost-effective compute capacity reserve and are ready to be quickly activated. You pay for memory usage of all the provisioned instances. You pay for CPU usage of only the active subset. App Runner temporarily doubles the number of provisioned instances during deployments, to maintain the same capacity for both old and new code.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxConcurrency</i> The maximum number of concurrent requests that an instance processes. If the number of concurrent requests exceeds this limit, App Runner scales the service up.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current state of the auto scaling configuration. If the status of a configuration revision is <code>INACTIVE</code>, it was deleted and can't be used. Inactive configuration revisions are permanently removed some time after they are deleted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Latest</i> It's set to <code>true</code> for the configuration with the highest <code>Revision</code> among all configurations that share the same <code>Name</code>. It's set to <code>false</code> otherwise.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoScalingConfigurationRevision</i> The revision of this auto scaling configuration. It's unique among all the active configurations (<code>"Status": "ACTIVE"</code>) that share the same <code>AutoScalingConfigurationName</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoScalingConfigurationName</i> The customer-provided auto scaling configuration name. It can be used in multiple revisions of a configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoScalingConfigurationArn</i> The Amazon Resource Name (ARN) of this auto scaling configuration.<br/>        """
        pass

    def delete_connection(self, ConnectionArn: str) -> DeleteConnectionResponse:
        r"""Delete an AWS App Runner connection. You must first ensure that there are no running App Runner services that use this connection. If there are any, the <code>DeleteConnection</code> action fails.

        :param self:
        :param ConnectionArn:  The Amazon Resource Name (ARN) of the App Runner connection that you want to delete.<br/>
        :return: Connection:  A description of the App Runner connection that this request just deleted.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedAt</i> The App Runner connection creation time, expressed as a Unix time stamp.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current state of the App Runner connection. When the state is <code>AVAILABLE</code>, you can use the connection to create an App Runner service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProviderType</i> The source repository provider.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConnectionArn</i> The Amazon Resource Name (ARN) of this connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConnectionName</i> The customer-provided connection name.<br/>        """
        pass

    def delete_service(self, ServiceArn: str) -> DeleteServiceResponse:
        r"""Delete an AWS App Runner service. This is an asynchronous operation. On a successful call, you can use the returned <code>OperationId</code> and the <a>ListOperations</a> call to track the operation's progress.

        :param self:
        :param ServiceArn:  The Amazon Resource Name (ARN) of the App Runner service that you want to delete.<br/>
        :return: OperationId:  The unique ID of the asynchronous operation that this request started. You can use it combined with the <a>ListOperations</a> call to track the operation's progress.<br/>Service:  A description of the App Runner service that this request just deleted.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoScalingConfigurationSummary</i> Summary information for the App Runner automatic scaling configuration resource that's associated with this service.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AutoScalingConfigurationSummary</b>: Summary information for the App Runner automatic scaling configuration resource that's associated with this service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HealthCheckConfiguration</i> The settings for the health check that App Runner performs to monitor the health of this service.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>HealthCheckConfiguration</b>: The settings for the health check that App Runner performs to monitor the health of this service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EncryptionConfiguration</i> The encryption key that App Runner uses to encrypt the service logs and the copy of the source repository that App Runner maintains for the service. It can be either a customer-provided encryption key or an AWS managed CMK.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EncryptionConfiguration</b>: The encryption key that App Runner uses to encrypt the service logs and the copy of the source repository that App Runner maintains for the service. It can be either a customer-provided encryption key or an AWS managed CMK.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceConfiguration</i> The runtime configuration of instances (scaling units) of this service.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>InstanceConfiguration</b>: The runtime configuration of instances (scaling units) of this service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceConfiguration</i> The source deployed to the App Runner service. It can be a code or an image repository.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SourceConfiguration</b>: The source deployed to the App Runner service. It can be a code or an image repository.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current state of the App Runner service. These particular values mean the following. <ul> <li>  <code>CREATE_FAILED</code> – The service failed to create. To troubleshoot this failure, read the failure events and logs, change any parameters that need to be fixed, and retry the call to create the service. The failed service isn't usable, and still counts towards your service quota. When you're done analyzing the failure, delete the service. </li> <li>  <code>DELETE_FAILED</code> – The service failed to delete and can't be successfully recovered. Retry the service deletion call to ensure that all related resources are removed. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeletedAt</i> The time when the App Runner service was deleted. It's in the Unix time stamp format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdatedAt</i> The time when the App Runner service was last updated at. It's in the Unix time stamp format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedAt</i> The time when the App Runner service was created. It's in the Unix time stamp format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceUrl</i> A subdomain URL that App Runner generated for this service. You can use this URL to access your service web application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceArn</i> The Amazon Resource Name (ARN) of this service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceId</i> An ID that App Runner generated for this service. It's unique within the AWS Region.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceName</i> The customer-provided service name.<br/>The description of a source code repository. You must provide either this member or <code>ImageRepository</code> (but not both).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CodeRepository</b>: The description of a source code repository. You must provide either this member or <code>ImageRepository</code> (but not both).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceRoleArn</i> The Amazon Resource Name (ARN) of an IAM role that provides permissions to your App Runner service. These are permissions that your code needs when it calls any AWS APIs.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Memory</i> The amount of memory, in MB or GB, reserved for each instance of your App Runner service. Default: <code>2 GB</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Cpu</i> The number of CPU units reserved for each instance of your App Runner service. Default: <code>1 vCPU</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKey</i> The ARN of the KMS key that's used for encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UnhealthyThreshold</i> The number of consecutive checks that must fail before App Runner decides that the service is unhealthy. Default: <code>3</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HealthyThreshold</i> The number of consecutive checks that must succeed before App Runner decides that the service is healthy. Default: <code>3</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Timeout</i> The time, in seconds, to wait for a health check response before deciding it failed. Default: <code>2</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Interval</i> The time interval, in seconds, between health checks. Default: <code>5</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Path</i> The URL that health check requests are sent to.  <code>Path</code> is only applicable when you set <code>Protocol</code> to <code>HTTP</code>. Default: <code>"/"</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Protocol</i> The IP protocol that App Runner uses to perform health checks for your service. If you set <code>Protocol</code> to <code>HTTP</code>, App Runner sends health check requests to the HTTP path specified by <code>Path</code>. Default: <code>TCP</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoScalingConfigurationRevision</i> The revision of this auto scaling configuration. It's unique among all the active configurations (<code>"Status": "ACTIVE"</code>) with the same <code>AutoScalingConfigurationName</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoScalingConfigurationName</i> The customer-provided auto scaling configuration name. It can be used in multiple revisions of a configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoScalingConfigurationArn</i> The Amazon Resource Name (ARN) of this auto scaling configuration.<br/>        """
        pass

    def describe_auto_scaling_configuration(self, AutoScalingConfigurationArn: str) -> DescribeAutoScalingConfigurationResponse:
        r"""Return a full description of an AWS App Runner automatic scaling configuration resource.

        :param self:
        :param AutoScalingConfigurationArn:  The Amazon Resource Name (ARN) of the App Runner auto scaling configuration that you want a description for. The ARN can be a full auto scaling configuration ARN, or a partial ARN ending with either <code>.../<i>name</i> </code> or <code>.../<i>name</i>/<i>revision</i> </code>. If a revision isn't specified, the latest active revision is described.<br/>
        :return: AutoScalingConfiguration:  A full description of the App Runner auto scaling configuration that you specified in this request.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeletedAt</i> The time when the auto scaling configuration was deleted. It's in Unix time stamp format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedAt</i> The time when the auto scaling configuration was created. It's in Unix time stamp format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxSize</i> The maximum number of instances that a service scales up to. At most <code>MaxSize</code> instances actively serve traffic for your service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MinSize</i> The minimum number of instances that App Runner provisions for a service. The service always has at least <code>MinSize</code> provisioned instances. Some of them actively serve traffic. The rest of them (provisioned and inactive instances) are a cost-effective compute capacity reserve and are ready to be quickly activated. You pay for memory usage of all the provisioned instances. You pay for CPU usage of only the active subset. App Runner temporarily doubles the number of provisioned instances during deployments, to maintain the same capacity for both old and new code.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxConcurrency</i> The maximum number of concurrent requests that an instance processes. If the number of concurrent requests exceeds this limit, App Runner scales the service up.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current state of the auto scaling configuration. If the status of a configuration revision is <code>INACTIVE</code>, it was deleted and can't be used. Inactive configuration revisions are permanently removed some time after they are deleted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Latest</i> It's set to <code>true</code> for the configuration with the highest <code>Revision</code> among all configurations that share the same <code>Name</code>. It's set to <code>false</code> otherwise.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoScalingConfigurationRevision</i> The revision of this auto scaling configuration. It's unique among all the active configurations (<code>"Status": "ACTIVE"</code>) that share the same <code>AutoScalingConfigurationName</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoScalingConfigurationName</i> The customer-provided auto scaling configuration name. It can be used in multiple revisions of a configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoScalingConfigurationArn</i> The Amazon Resource Name (ARN) of this auto scaling configuration.<br/>        """
        pass

    def describe_custom_domains(self, ServiceArn: str, NextToken: str=None, MaxResults: int=None) -> DescribeCustomDomainsResponse:
        r"""Return a description of custom domain names that are associated with an AWS App Runner service.

        :param self:
        :param MaxResults:  The maximum number of results that each response (result page) can include. It's used for a paginated request. If you don't specify <code>MaxResults</code>, the request retrieves all available results in a single response.<br/>NextToken:  A token from a previous result page. It's used for a paginated request. The request retrieves the next result page. All other parameter values must be identical to the ones that are specified in the initial request. If you don't specify <code>NextToken</code>, the request retrieves the first result page.<br/>ServiceArn:  The Amazon Resource Name (ARN) of the App Runner service that you want associated custom domain names to be described for.<br/>
        :return: NextToken:  The token that you can pass in a subsequent request to get the next result page. It's returned in a paginated request.<br/>CustomDomains:  A list of descriptions of custom domain names that are associated with the service. In a paginated request, the request returns up to <code>MaxResults</code> records per call.<br/>ServiceArn:  The Amazon Resource Name (ARN) of the App Runner service whose associated custom domain names you want to describe.<br/>DNSTarget:  The App Runner subdomain of the App Runner service. The associated custom domain names are mapped to this target name.<br/>        """
        pass

    def describe_service(self, ServiceArn: str) -> DescribeServiceResponse:
        r"""Return a full description of an AWS App Runner service.

        :param self:
        :param ServiceArn:  The Amazon Resource Name (ARN) of the App Runner service that you want a description for.<br/>
        :return: Service:  A full description of the App Runner service that you specified in this request.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoScalingConfigurationSummary</i> Summary information for the App Runner automatic scaling configuration resource that's associated with this service.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AutoScalingConfigurationSummary</b>: Summary information for the App Runner automatic scaling configuration resource that's associated with this service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HealthCheckConfiguration</i> The settings for the health check that App Runner performs to monitor the health of this service.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>HealthCheckConfiguration</b>: The settings for the health check that App Runner performs to monitor the health of this service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EncryptionConfiguration</i> The encryption key that App Runner uses to encrypt the service logs and the copy of the source repository that App Runner maintains for the service. It can be either a customer-provided encryption key or an AWS managed CMK.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EncryptionConfiguration</b>: The encryption key that App Runner uses to encrypt the service logs and the copy of the source repository that App Runner maintains for the service. It can be either a customer-provided encryption key or an AWS managed CMK.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceConfiguration</i> The runtime configuration of instances (scaling units) of this service.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>InstanceConfiguration</b>: The runtime configuration of instances (scaling units) of this service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceConfiguration</i> The source deployed to the App Runner service. It can be a code or an image repository.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SourceConfiguration</b>: The source deployed to the App Runner service. It can be a code or an image repository.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current state of the App Runner service. These particular values mean the following. <ul> <li>  <code>CREATE_FAILED</code> – The service failed to create. To troubleshoot this failure, read the failure events and logs, change any parameters that need to be fixed, and retry the call to create the service. The failed service isn't usable, and still counts towards your service quota. When you're done analyzing the failure, delete the service. </li> <li>  <code>DELETE_FAILED</code> – The service failed to delete and can't be successfully recovered. Retry the service deletion call to ensure that all related resources are removed. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeletedAt</i> The time when the App Runner service was deleted. It's in the Unix time stamp format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdatedAt</i> The time when the App Runner service was last updated at. It's in the Unix time stamp format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedAt</i> The time when the App Runner service was created. It's in the Unix time stamp format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceUrl</i> A subdomain URL that App Runner generated for this service. You can use this URL to access your service web application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceArn</i> The Amazon Resource Name (ARN) of this service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceId</i> An ID that App Runner generated for this service. It's unique within the AWS Region.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceName</i> The customer-provided service name.<br/>The description of a source code repository. You must provide either this member or <code>ImageRepository</code> (but not both).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CodeRepository</b>: The description of a source code repository. You must provide either this member or <code>ImageRepository</code> (but not both).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceRoleArn</i> The Amazon Resource Name (ARN) of an IAM role that provides permissions to your App Runner service. These are permissions that your code needs when it calls any AWS APIs.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Memory</i> The amount of memory, in MB or GB, reserved for each instance of your App Runner service. Default: <code>2 GB</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Cpu</i> The number of CPU units reserved for each instance of your App Runner service. Default: <code>1 vCPU</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKey</i> The ARN of the KMS key that's used for encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UnhealthyThreshold</i> The number of consecutive checks that must fail before App Runner decides that the service is unhealthy. Default: <code>3</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HealthyThreshold</i> The number of consecutive checks that must succeed before App Runner decides that the service is healthy. Default: <code>3</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Timeout</i> The time, in seconds, to wait for a health check response before deciding it failed. Default: <code>2</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Interval</i> The time interval, in seconds, between health checks. Default: <code>5</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Path</i> The URL that health check requests are sent to.  <code>Path</code> is only applicable when you set <code>Protocol</code> to <code>HTTP</code>. Default: <code>"/"</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Protocol</i> The IP protocol that App Runner uses to perform health checks for your service. If you set <code>Protocol</code> to <code>HTTP</code>, App Runner sends health check requests to the HTTP path specified by <code>Path</code>. Default: <code>TCP</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoScalingConfigurationRevision</i> The revision of this auto scaling configuration. It's unique among all the active configurations (<code>"Status": "ACTIVE"</code>) with the same <code>AutoScalingConfigurationName</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoScalingConfigurationName</i> The customer-provided auto scaling configuration name. It can be used in multiple revisions of a configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoScalingConfigurationArn</i> The Amazon Resource Name (ARN) of this auto scaling configuration.<br/>        """
        pass

    def disassociate_custom_domain(self, DomainName: str, ServiceArn: str) -> DisassociateCustomDomainResponse:
        r"""Disassociate a custom domain name from an AWS App Runner service. Certificates tracking domain validity are associated with a custom domain and are stored in <a href="https://docs.aws.amazon.com/acm/latest/userguide">AWS Certificate Manager (ACM)</a>. These certificates aren't deleted as part of this action. App Runner delays certificate deletion for 30 days after a domain is disassociated from your service.

        :param self:
        :param DomainName:  The domain name that you want to disassociate from the App Runner service.<br/>ServiceArn:  The Amazon Resource Name (ARN) of the App Runner service that you want to disassociate a custom domain name from.<br/>
        :return: CustomDomain:  A description of the domain name that's being disassociated.:<br/>ServiceArn:  The Amazon Resource Name (ARN) of the App Runner service that a custom domain name is disassociated from.<br/>DNSTarget:  The App Runner subdomain of the App Runner service. The disassociated custom domain name was mapped to this target name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current state of the domain name association.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CertificateValidationRecords</i> A list of certificate CNAME records that's used for this domain name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableWWWSubdomain</i> When <code>true</code>, the subdomain <code>www.<i>DomainName</i> </code> is associated with the App Runner service in addition to the base domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainName</i> An associated custom domain endpoint. It can be a root domain (for example, <code>example.com</code>), a subdomain (for example, <code>login.example.com</code> or <code>admin.login.example.com</code>), or a wildcard (for example, <code>*.example.com</code>).<br/>        """
        pass

    def list_auto_scaling_configurations(self, AutoScalingConfigurationName: str=None, LatestOnly: Boolean=None, MaxResults: int=None, NextToken: str=None) -> ListAutoScalingConfigurationsResponse:
        r"""Returns a list of AWS App Runner automatic scaling configurations in your AWS account. You can query the revisions for a specific configuration name or the revisions for all configurations in your account. You can optionally query only the latest revision of each requested name.

        :param self:
        :param NextToken:  A token from a previous result page. It's used for a paginated request. The request retrieves the next result page. All other parameter values must be identical to the ones that are specified in the initial request. If you don't specify <code>NextToken</code>, the request retrieves the first result page.<br/>MaxResults:  The maximum number of results to include in each response (result page). It's used for a paginated request. If you don't specify <code>MaxResults</code>, the request retrieves all available results in a single response.<br/>LatestOnly:  Set to <code>true</code> to list only the latest revision for each requested configuration name. Keep as <code>false</code> to list all revisions for each requested configuration name. Default: <code>false</code> <br/>AutoScalingConfigurationName:  The name of the App Runner auto scaling configuration that you want to list. If specified, App Runner lists revisions that share this name. If not specified, App Runner returns revisions of all configurations.<br/>
        :return: NextToken:  The token that you can pass in a subsequent request to get the next result page. It's returned in a paginated request.<br/>AutoScalingConfigurationSummaryList:  A list of summary information records for auto scaling configurations. In a paginated request, the request returns up to <code>MaxResults</code> records for each call.<br/>        """
        pass

    def list_connections(self, ConnectionName: str=None, MaxResults: int=None, NextToken: str=None) -> ListConnectionsResponse:
        r"""Returns a list of AWS App Runner connections that are associated with your AWS account.

        :param self:
        :param NextToken:  A token from a previous result page. Used for a paginated request. The request retrieves the next result page. All other parameter values must be identical to the ones specified in the initial request. If you don't specify <code>NextToken</code>, the request retrieves the first result page.<br/>MaxResults:  The maximum number of results to include in each response (result page). Used for a paginated request. If you don't specify <code>MaxResults</code>, the request retrieves all available results in a single response.<br/>ConnectionName:  If specified, only this connection is returned. If not specified, the result isn't filtered by name.<br/>
        :return: NextToken:  The token that you can pass in a subsequent request to get the next result page. Returned in a paginated request.<br/>ConnectionSummaryList:  A list of summary information records for connections. In a paginated request, the request returns up to <code>MaxResults</code> records for each call.<br/>        """
        pass

    def list_operations(self, ServiceArn: str, NextToken: str=None, MaxResults: int=None) -> ListOperationsResponse:
        r"""Return a list of operations that occurred on an AWS App Runner service. The resulting list of <a>OperationSummary</a> objects is sorted in reverse chronological order. The first object on the list represents the last started operation.

        :param self:
        :param MaxResults:  The maximum number of results to include in each response (result page). It's used for a paginated request. If you don't specify <code>MaxResults</code>, the request retrieves all available results in a single response.<br/>NextToken:  A token from a previous result page. It's used for a paginated request. The request retrieves the next result page. All other parameter values must be identical to the ones specified in the initial request. If you don't specify <code>NextToken</code>, the request retrieves the first result page.<br/>ServiceArn:  The Amazon Resource Name (ARN) of the App Runner service that you want a list of operations for.<br/>
        :return: NextToken:  The token that you can pass in a subsequent request to get the next result page. It's returned in a paginated request.<br/>OperationSummaryList:  A list of operation summary information records. In a paginated request, the request returns up to <code>MaxResults</code> records for each call.<br/>        """
        pass

    def list_services(self, NextToken: str=None, MaxResults: int=None) -> ListServicesResponse:
        r"""Returns a list of running AWS App Runner services in your AWS account.

        :param self:
        :param MaxResults:  The maximum number of results to include in each response (result page). It's used for a paginated request. If you don't specify <code>MaxResults</code>, the request retrieves all available results in a single response.<br/>NextToken:  A token from a previous result page. Used for a paginated request. The request retrieves the next result page. All other parameter values must be identical to the ones specified in the initial request. If you don't specify <code>NextToken</code>, the request retrieves the first result page.<br/>
        :return: NextToken:  The token that you can pass in a subsequent request to get the next result page. It's returned in a paginated request.<br/>ServiceSummaryList:  A list of service summary information records. In a paginated request, the request returns up to <code>MaxResults</code> records for each call.<br/>        """
        pass

    def list_tags_for_resource(self, ResourceArn: str) -> ListTagsForResourceResponse:
        r"""List tags that are associated with for an AWS App Runner resource. The response contains a list of tag key-value pairs.

        :param self:
        :param ResourceArn:  The Amazon Resource Name (ARN) of the resource that a tag list is requested for. It must be the ARN of an App Runner resource.<br/>
        :return: Tags:  A list of the tag key-value pairs that are associated with the resource.<br/>        """
        pass

    def pause_service(self, ServiceArn: str) -> PauseServiceResponse:
        r"""Pause an active AWS App Runner service. App Runner reduces compute capacity for the service to zero and loses state (for example, ephemeral storage is removed). This is an asynchronous operation. On a successful call, you can use the returned <code>OperationId</code> and the <a>ListOperations</a> call to track the operation's progress.

        :param self:
        :param ServiceArn:  The Amazon Resource Name (ARN) of the App Runner service that you want to pause.<br/>
        :return: OperationId:  The unique ID of the asynchronous operation that this request started. You can use it combined with the <a>ListOperations</a> call to track the operation's progress.<br/>Service:  A description of the App Runner service that this request just paused.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoScalingConfigurationSummary</i> Summary information for the App Runner automatic scaling configuration resource that's associated with this service.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AutoScalingConfigurationSummary</b>: Summary information for the App Runner automatic scaling configuration resource that's associated with this service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HealthCheckConfiguration</i> The settings for the health check that App Runner performs to monitor the health of this service.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>HealthCheckConfiguration</b>: The settings for the health check that App Runner performs to monitor the health of this service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EncryptionConfiguration</i> The encryption key that App Runner uses to encrypt the service logs and the copy of the source repository that App Runner maintains for the service. It can be either a customer-provided encryption key or an AWS managed CMK.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EncryptionConfiguration</b>: The encryption key that App Runner uses to encrypt the service logs and the copy of the source repository that App Runner maintains for the service. It can be either a customer-provided encryption key or an AWS managed CMK.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceConfiguration</i> The runtime configuration of instances (scaling units) of this service.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>InstanceConfiguration</b>: The runtime configuration of instances (scaling units) of this service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceConfiguration</i> The source deployed to the App Runner service. It can be a code or an image repository.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SourceConfiguration</b>: The source deployed to the App Runner service. It can be a code or an image repository.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current state of the App Runner service. These particular values mean the following. <ul> <li>  <code>CREATE_FAILED</code> – The service failed to create. To troubleshoot this failure, read the failure events and logs, change any parameters that need to be fixed, and retry the call to create the service. The failed service isn't usable, and still counts towards your service quota. When you're done analyzing the failure, delete the service. </li> <li>  <code>DELETE_FAILED</code> – The service failed to delete and can't be successfully recovered. Retry the service deletion call to ensure that all related resources are removed. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeletedAt</i> The time when the App Runner service was deleted. It's in the Unix time stamp format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdatedAt</i> The time when the App Runner service was last updated at. It's in the Unix time stamp format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedAt</i> The time when the App Runner service was created. It's in the Unix time stamp format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceUrl</i> A subdomain URL that App Runner generated for this service. You can use this URL to access your service web application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceArn</i> The Amazon Resource Name (ARN) of this service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceId</i> An ID that App Runner generated for this service. It's unique within the AWS Region.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceName</i> The customer-provided service name.<br/>The description of a source code repository. You must provide either this member or <code>ImageRepository</code> (but not both).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CodeRepository</b>: The description of a source code repository. You must provide either this member or <code>ImageRepository</code> (but not both).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceRoleArn</i> The Amazon Resource Name (ARN) of an IAM role that provides permissions to your App Runner service. These are permissions that your code needs when it calls any AWS APIs.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Memory</i> The amount of memory, in MB or GB, reserved for each instance of your App Runner service. Default: <code>2 GB</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Cpu</i> The number of CPU units reserved for each instance of your App Runner service. Default: <code>1 vCPU</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKey</i> The ARN of the KMS key that's used for encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UnhealthyThreshold</i> The number of consecutive checks that must fail before App Runner decides that the service is unhealthy. Default: <code>3</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HealthyThreshold</i> The number of consecutive checks that must succeed before App Runner decides that the service is healthy. Default: <code>3</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Timeout</i> The time, in seconds, to wait for a health check response before deciding it failed. Default: <code>2</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Interval</i> The time interval, in seconds, between health checks. Default: <code>5</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Path</i> The URL that health check requests are sent to.  <code>Path</code> is only applicable when you set <code>Protocol</code> to <code>HTTP</code>. Default: <code>"/"</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Protocol</i> The IP protocol that App Runner uses to perform health checks for your service. If you set <code>Protocol</code> to <code>HTTP</code>, App Runner sends health check requests to the HTTP path specified by <code>Path</code>. Default: <code>TCP</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoScalingConfigurationRevision</i> The revision of this auto scaling configuration. It's unique among all the active configurations (<code>"Status": "ACTIVE"</code>) with the same <code>AutoScalingConfigurationName</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoScalingConfigurationName</i> The customer-provided auto scaling configuration name. It can be used in multiple revisions of a configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoScalingConfigurationArn</i> The Amazon Resource Name (ARN) of this auto scaling configuration.<br/>        """
        pass

    def resume_service(self, ServiceArn: str) -> ResumeServiceResponse:
        r"""Resume an active AWS App Runner service. App Runner provisions compute capacity for the service. This is an asynchronous operation. On a successful call, you can use the returned <code>OperationId</code> and the <a>ListOperations</a> call to track the operation's progress.

        :param self:
        :param ServiceArn:  The Amazon Resource Name (ARN) of the App Runner service that you want to resume.<br/>
        :return: OperationId:  The unique ID of the asynchronous operation that this request started. You can use it combined with the <a>ListOperations</a> call to track the operation's progress.<br/>Service:  A description of the App Runner service that this request just resumed.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoScalingConfigurationSummary</i> Summary information for the App Runner automatic scaling configuration resource that's associated with this service.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AutoScalingConfigurationSummary</b>: Summary information for the App Runner automatic scaling configuration resource that's associated with this service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HealthCheckConfiguration</i> The settings for the health check that App Runner performs to monitor the health of this service.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>HealthCheckConfiguration</b>: The settings for the health check that App Runner performs to monitor the health of this service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EncryptionConfiguration</i> The encryption key that App Runner uses to encrypt the service logs and the copy of the source repository that App Runner maintains for the service. It can be either a customer-provided encryption key or an AWS managed CMK.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EncryptionConfiguration</b>: The encryption key that App Runner uses to encrypt the service logs and the copy of the source repository that App Runner maintains for the service. It can be either a customer-provided encryption key or an AWS managed CMK.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceConfiguration</i> The runtime configuration of instances (scaling units) of this service.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>InstanceConfiguration</b>: The runtime configuration of instances (scaling units) of this service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceConfiguration</i> The source deployed to the App Runner service. It can be a code or an image repository.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SourceConfiguration</b>: The source deployed to the App Runner service. It can be a code or an image repository.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current state of the App Runner service. These particular values mean the following. <ul> <li>  <code>CREATE_FAILED</code> – The service failed to create. To troubleshoot this failure, read the failure events and logs, change any parameters that need to be fixed, and retry the call to create the service. The failed service isn't usable, and still counts towards your service quota. When you're done analyzing the failure, delete the service. </li> <li>  <code>DELETE_FAILED</code> – The service failed to delete and can't be successfully recovered. Retry the service deletion call to ensure that all related resources are removed. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeletedAt</i> The time when the App Runner service was deleted. It's in the Unix time stamp format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdatedAt</i> The time when the App Runner service was last updated at. It's in the Unix time stamp format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedAt</i> The time when the App Runner service was created. It's in the Unix time stamp format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceUrl</i> A subdomain URL that App Runner generated for this service. You can use this URL to access your service web application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceArn</i> The Amazon Resource Name (ARN) of this service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceId</i> An ID that App Runner generated for this service. It's unique within the AWS Region.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceName</i> The customer-provided service name.<br/>The description of a source code repository. You must provide either this member or <code>ImageRepository</code> (but not both).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CodeRepository</b>: The description of a source code repository. You must provide either this member or <code>ImageRepository</code> (but not both).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceRoleArn</i> The Amazon Resource Name (ARN) of an IAM role that provides permissions to your App Runner service. These are permissions that your code needs when it calls any AWS APIs.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Memory</i> The amount of memory, in MB or GB, reserved for each instance of your App Runner service. Default: <code>2 GB</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Cpu</i> The number of CPU units reserved for each instance of your App Runner service. Default: <code>1 vCPU</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKey</i> The ARN of the KMS key that's used for encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UnhealthyThreshold</i> The number of consecutive checks that must fail before App Runner decides that the service is unhealthy. Default: <code>3</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HealthyThreshold</i> The number of consecutive checks that must succeed before App Runner decides that the service is healthy. Default: <code>3</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Timeout</i> The time, in seconds, to wait for a health check response before deciding it failed. Default: <code>2</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Interval</i> The time interval, in seconds, between health checks. Default: <code>5</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Path</i> The URL that health check requests are sent to.  <code>Path</code> is only applicable when you set <code>Protocol</code> to <code>HTTP</code>. Default: <code>"/"</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Protocol</i> The IP protocol that App Runner uses to perform health checks for your service. If you set <code>Protocol</code> to <code>HTTP</code>, App Runner sends health check requests to the HTTP path specified by <code>Path</code>. Default: <code>TCP</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoScalingConfigurationRevision</i> The revision of this auto scaling configuration. It's unique among all the active configurations (<code>"Status": "ACTIVE"</code>) with the same <code>AutoScalingConfigurationName</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoScalingConfigurationName</i> The customer-provided auto scaling configuration name. It can be used in multiple revisions of a configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoScalingConfigurationArn</i> The Amazon Resource Name (ARN) of this auto scaling configuration.<br/>        """
        pass

    def start_deployment(self, ServiceArn: str) -> StartDeploymentResponse:
        r"""Initiate a manual deployment of the latest commit in a source code repository or the latest image in a source image repository to an AWS App Runner service. For a source code repository, App Runner retrieves the commit and builds a Docker image. For a source image repository, App Runner retrieves the latest Docker image. In both cases, App Runner then deploys the new image to your service and starts a new container instance. This is an asynchronous operation. On a successful call, you can use the returned <code>OperationId</code> and the <a>ListOperations</a> call to track the operation's progress.

        :param self:
        :param ServiceArn:  The Amazon Resource Name (ARN) of the App Runner service that you want to manually deploy to.<br/>
        :return: OperationId:  The unique ID of the asynchronous operation that this request started. You can use it combined with the <a>ListOperations</a> call to track the operation's progress.<br/>        """
        pass

    def tag_resource(self, Tags: List[Tag], ResourceArn: str) -> TagResourceResponse:
        r"""Add tags to, or update the tag values of, an App Runner resource. A tag is a key-value pair.

        :param self:
        :param Tags:  A list of tag key-value pairs to add or update. If a key is new to the resource, the tag is added with the provided value. If a key is already associated with the resource, the value of the tag is updated.<br/>ResourceArn:  The Amazon Resource Name (ARN) of the resource that you want to update tags for. It must be the ARN of an App Runner resource.<br/>
        :return:         """
        pass

    def untag_resource(self, TagKeys: List[TagKey], ResourceArn: str) -> UntagResourceResponse:
        r"""Remove tags from an App Runner resource.

        :param self:
        :param TagKeys:  A list of tag keys that you want to remove.<br/>ResourceArn:  The Amazon Resource Name (ARN) of the resource that you want to remove tags from. It must be the ARN of an App Runner resource.<br/>
        :return:         """
        pass

    def update_service(self, ServiceArn: str, SourceConfiguration: SourceConfiguration=None, InstanceConfiguration: InstanceConfiguration=None, AutoScalingConfigurationArn: str=None, HealthCheckConfiguration: HealthCheckConfiguration=None) -> UpdateServiceResponse:
        r"""Update an AWS App Runner service. You can update the source configuration and instance configuration of the service. You can also update the ARN of the auto scaling configuration resource that's associated with the service. However, you can't change the name or the encryption configuration of the service. These can be set only when you create the service. To update the tags applied to your service, use the separate actions <a>TagResource</a> and <a>UntagResource</a>. This is an asynchronous operation. On a successful call, you can use the returned <code>OperationId</code> and the <a>ListOperations</a> call to track the operation's progress.

        :param self:
        :param HealthCheckConfiguration:  The settings for the health check that AWS App Runner performs to monitor the health of your service.:<br/>AutoScalingConfigurationArn:  The Amazon Resource Name (ARN) of an App Runner automatic scaling configuration resource that you want to associate with your service.<br/>InstanceConfiguration:  The runtime configuration to apply to instances (scaling units) of the App Runner service.:<br/>SourceConfiguration:  The source configuration to apply to the App Runner service. You can change the configuration of the code or image repository that the service uses. However, you can't switch from code to image or the other way around. This means that you must provide the same structure member of <code>SourceConfiguration</code> that you originally included when you created the service. Specifically, you can include either <code>CodeRepository</code> or <code>ImageRepository</code>. To update the source configuration, set the values to members of the structure that you include.:<br/>ServiceArn:  The Amazon Resource Name (ARN) of the App Runner service that you want to update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AuthenticationConfiguration</i> Describes the resources that are needed to authenticate access to some source repositories.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AuthenticationConfiguration</b>: Describes the resources that are needed to authenticate access to some source repositories.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoDeploymentsEnabled</i> If <code>true</code>, continuous integration from the source repository is enabled for the App Runner service. Each repository change (source code commit or new image version) starts a deployment. Default: <code>true</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImageRepository</i> The description of a source image repository. You must provide either this member or <code>CodeRepository</code> (but not both).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ImageRepository</b>: The description of a source image repository. You must provide either this member or <code>CodeRepository</code> (but not both).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CodeRepository</i> The description of a source code repository. You must provide either this member or <code>ImageRepository</code> (but not both).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CodeRepository</b>: The description of a source code repository. You must provide either this member or <code>ImageRepository</code> (but not both).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RepositoryUrl</i> The location of the repository that contains the source code.<br/>The version that should be used within the source code repository.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SourceCodeVersion</b>: The version that should be used within the source code repository.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ImageIdentifier</i> The identifier of an image. For an image in Amazon Elastic Container Registry (Amazon ECR), this is an image name. For the image name format, see <a href="https://docs.aws.amazon.com/AmazonECR/latest/userguide/docker-pull-ecr-image.html">Pulling an image</a> in the <i>Amazon ECR User Guide</i>.<br/>Configuration for running the identified image.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ImageConfiguration</b>: Configuration for running the identified image.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AccessRoleArn</i> The Amazon Resource Name (ARN) of the IAM role that grants the App Runner service access to a source repository. It's required for ECR image repositories (but not for ECR Public repositories).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ConnectionArn</i> The Amazon Resource Name (ARN) of the App Runner connection that enables the App Runner service to connect to a source repository. It's required for GitHub code repositories.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceRoleArn</i> The Amazon Resource Name (ARN) of an IAM role that provides permissions to your App Runner service. These are permissions that your code needs when it calls any AWS APIs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Memory</i> The amount of memory, in MB or GB, reserved for each instance of your App Runner service. Default: <code>2 GB</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Cpu</i> The number of CPU units reserved for each instance of your App Runner service. Default: <code>1 vCPU</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UnhealthyThreshold</i> The number of consecutive checks that must fail before App Runner decides that the service is unhealthy. Default: <code>3</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HealthyThreshold</i> The number of consecutive checks that must succeed before App Runner decides that the service is healthy. Default: <code>3</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Timeout</i> The time, in seconds, to wait for a health check response before deciding it failed. Default: <code>2</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Interval</i> The time interval, in seconds, between health checks. Default: <code>5</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Path</i> The URL that health check requests are sent to.  <code>Path</code> is only applicable when you set <code>Protocol</code> to <code>HTTP</code>. Default: <code>"/"</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Protocol</i> The IP protocol that App Runner uses to perform health checks for your service. If you set <code>Protocol</code> to <code>HTTP</code>, App Runner sends health check requests to the HTTP path specified by <code>Path</code>. Default: <code>TCP</code> <br/>
        :return: OperationId:  The unique ID of the asynchronous operation that this request started. You can use it combined with the <a>ListOperations</a> call to track the operation's progress.<br/>Service:  A description of the App Runner service updated by this request. All configuration values in the returned <code>Service</code> structure reflect configuration changes that are being applied by this request.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoScalingConfigurationSummary</i> Summary information for the App Runner automatic scaling configuration resource that's associated with this service.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AutoScalingConfigurationSummary</b>: Summary information for the App Runner automatic scaling configuration resource that's associated with this service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HealthCheckConfiguration</i> The settings for the health check that App Runner performs to monitor the health of this service.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>HealthCheckConfiguration</b>: The settings for the health check that App Runner performs to monitor the health of this service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EncryptionConfiguration</i> The encryption key that App Runner uses to encrypt the service logs and the copy of the source repository that App Runner maintains for the service. It can be either a customer-provided encryption key or an AWS managed CMK.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EncryptionConfiguration</b>: The encryption key that App Runner uses to encrypt the service logs and the copy of the source repository that App Runner maintains for the service. It can be either a customer-provided encryption key or an AWS managed CMK.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceConfiguration</i> The runtime configuration of instances (scaling units) of this service.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>InstanceConfiguration</b>: The runtime configuration of instances (scaling units) of this service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceConfiguration</i> The source deployed to the App Runner service. It can be a code or an image repository.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SourceConfiguration</b>: The source deployed to the App Runner service. It can be a code or an image repository.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current state of the App Runner service. These particular values mean the following. <ul> <li>  <code>CREATE_FAILED</code> – The service failed to create. To troubleshoot this failure, read the failure events and logs, change any parameters that need to be fixed, and retry the call to create the service. The failed service isn't usable, and still counts towards your service quota. When you're done analyzing the failure, delete the service. </li> <li>  <code>DELETE_FAILED</code> – The service failed to delete and can't be successfully recovered. Retry the service deletion call to ensure that all related resources are removed. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeletedAt</i> The time when the App Runner service was deleted. It's in the Unix time stamp format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdatedAt</i> The time when the App Runner service was last updated at. It's in the Unix time stamp format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedAt</i> The time when the App Runner service was created. It's in the Unix time stamp format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceUrl</i> A subdomain URL that App Runner generated for this service. You can use this URL to access your service web application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceArn</i> The Amazon Resource Name (ARN) of this service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceId</i> An ID that App Runner generated for this service. It's unique within the AWS Region.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceName</i> The customer-provided service name.<br/>The description of a source code repository. You must provide either this member or <code>ImageRepository</code> (but not both).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CodeRepository</b>: The description of a source code repository. You must provide either this member or <code>ImageRepository</code> (but not both).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceRoleArn</i> The Amazon Resource Name (ARN) of an IAM role that provides permissions to your App Runner service. These are permissions that your code needs when it calls any AWS APIs.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Memory</i> The amount of memory, in MB or GB, reserved for each instance of your App Runner service. Default: <code>2 GB</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Cpu</i> The number of CPU units reserved for each instance of your App Runner service. Default: <code>1 vCPU</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKey</i> The ARN of the KMS key that's used for encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UnhealthyThreshold</i> The number of consecutive checks that must fail before App Runner decides that the service is unhealthy. Default: <code>3</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HealthyThreshold</i> The number of consecutive checks that must succeed before App Runner decides that the service is healthy. Default: <code>3</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Timeout</i> The time, in seconds, to wait for a health check response before deciding it failed. Default: <code>2</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Interval</i> The time interval, in seconds, between health checks. Default: <code>5</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Path</i> The URL that health check requests are sent to.  <code>Path</code> is only applicable when you set <code>Protocol</code> to <code>HTTP</code>. Default: <code>"/"</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Protocol</i> The IP protocol that App Runner uses to perform health checks for your service. If you set <code>Protocol</code> to <code>HTTP</code>, App Runner sends health check requests to the HTTP path specified by <code>Path</code>. Default: <code>TCP</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoScalingConfigurationRevision</i> The revision of this auto scaling configuration. It's unique among all the active configurations (<code>"Status": "ACTIVE"</code>) with the same <code>AutoScalingConfigurationName</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoScalingConfigurationName</i> The customer-provided auto scaling configuration name. It can be used in multiple revisions of a configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoScalingConfigurationArn</i> The Amazon Resource Name (ARN) of this auto scaling configuration.<br/>        """
        pass





class AppStream(BaseClient):
    r"""<fullname>Amazon AppStream 2.0</fullname> This is the <i>Amazon AppStream 2.0 API Reference</i>. This documentation provides descriptions and syntax for each of the actions and data types in AppStream 2.0. AppStream 2.0 is a fully managed, secure application streaming service that lets you stream desktop applications to users without rewriting applications. AppStream 2.0 manages the AWS resources that are required to host and run your applications, scales automatically, and provides access to your users on demand.  <note> You can call the AppStream 2.0 API operations by using an interface VPC endpoint (interface endpoint). For more information, see <a href="https://docs.aws.amazon.com/appstream2/latest/developerguide/access-api-cli-through-interface-vpc-endpoint.html">Access AppStream 2.0 API Operations and CLI Commands Through an Interface VPC Endpoint</a> in the <i>Amazon AppStream 2.0 Administration Guide</i>. </note> To learn more about AppStream 2.0, see the following resources: <ul> <li>  <a href="http://aws.amazon.com/appstream2">Amazon AppStream 2.0 product page</a>  </li> <li>  <a href="http://aws.amazon.com/documentation/appstream2">Amazon AppStream 2.0 documentation</a>  </li> </ul>"""

    class FleetStartedWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_fleets` for valid parameters"""
            pass
    class FleetStoppedWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_fleets` for valid parameters"""
            pass


    class DescribeDirectoryConfigsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_directory_configs` for valid parameters"""
            pass
    class DescribeFleetsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_fleets` for valid parameters"""
            pass
    class DescribeImageBuildersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_image_builders` for valid parameters"""
            pass
    class DescribeImagesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_images` for valid parameters"""
            pass
    class DescribeSessionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_sessions` for valid parameters"""
            pass
    class DescribeStacksPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_stacks` for valid parameters"""
            pass
    class DescribeUserStackAssociationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_user_stack_associations` for valid parameters"""
            pass
    class DescribeUsersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_users` for valid parameters"""
            pass
    class ListAssociatedFleetsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_associated_fleets` for valid parameters"""
            pass
    class ListAssociatedStacksPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_associated_stacks` for valid parameters"""
            pass


    class AssociateFleetRequest(Mapping):
        pass
    
    class AssociateFleetResult(Mapping):
        pass
    
    class BatchAssociateUserStackRequest(Mapping):
        pass
    
    class BatchAssociateUserStackResult(Mapping):
        pass
    
    class UserStackAssociation(Mapping):
        pass
    
    class BatchDisassociateUserStackRequest(Mapping):
        pass
    
    class BatchDisassociateUserStackResult(Mapping):
        pass
    
    class CopyImageRequest(Mapping):
        pass
    
    class CopyImageResponse(Mapping):
        pass
    
    class CreateDirectoryConfigRequest(Mapping):
        pass
    
    class CreateDirectoryConfigResult(Mapping):
        pass
    
    class OrganizationalUnitDistinguishedName(object):
        pass
    
    class ServiceAccountCredentials(Mapping):
        pass
    
    class CreateFleetRequest(Mapping):
        pass
    
    class CreateFleetResult(Mapping):
        pass
    
    class ComputeCapacity(Mapping):
        pass
    
    class VpcConfig(Mapping):
        pass
    
    class BooleanObject(object):
        pass
    
    class DomainJoinInfo(Mapping):
        pass
    
    class Tags(object):
        pass
    
    class CreateImageBuilderRequest(Mapping):
        pass
    
    class CreateImageBuilderResult(Mapping):
        pass
    
    class AccessEndpoint(Mapping):
        pass
    
    class CreateImageBuilderStreamingURLRequest(Mapping):
        pass
    
    class CreateImageBuilderStreamingURLResult(Mapping):
        pass
    
    class Long(object):
        pass
    
    class CreateStackRequest(Mapping):
        pass
    
    class CreateStackResult(Mapping):
        pass
    
    class StorageConnector(Mapping):
        pass
    
    class UserSetting(Mapping):
        pass
    
    class ApplicationSettings(Mapping):
        pass
    
    class EmbedHostDomain(object):
        pass
    
    class CreateStreamingURLRequest(Mapping):
        pass
    
    class CreateStreamingURLResult(Mapping):
        pass
    
    class CreateUpdatedImageRequest(Mapping):
        pass
    
    class CreateUpdatedImageResult(Mapping):
        pass
    
    class Boolean(object):
        pass
    
    class CreateUsageReportSubscriptionRequest(Mapping):
        pass
    
    class CreateUsageReportSubscriptionResult(Mapping):
        pass
    
    class CreateUserRequest(Mapping):
        pass
    
    class CreateUserResult(Mapping):
        pass
    
    class DeleteDirectoryConfigRequest(Mapping):
        pass
    
    class DeleteDirectoryConfigResult(Mapping):
        pass
    
    class DeleteFleetRequest(Mapping):
        pass
    
    class DeleteFleetResult(Mapping):
        pass
    
    class DeleteImageRequest(Mapping):
        pass
    
    class DeleteImageResult(Mapping):
        pass
    
    class DeleteImageBuilderRequest(Mapping):
        pass
    
    class DeleteImageBuilderResult(Mapping):
        pass
    
    class DeleteImagePermissionsRequest(Mapping):
        pass
    
    class DeleteImagePermissionsResult(Mapping):
        pass
    
    class DeleteStackRequest(Mapping):
        pass
    
    class DeleteStackResult(Mapping):
        pass
    
    class DeleteUsageReportSubscriptionRequest(Mapping):
        pass
    
    class DeleteUsageReportSubscriptionResult(Mapping):
        pass
    
    class DeleteUserRequest(Mapping):
        pass
    
    class DeleteUserResult(Mapping):
        pass
    
    class DescribeDirectoryConfigsRequest(Mapping):
        pass
    
    class DescribeDirectoryConfigsResult(Mapping):
        pass
    
    class DirectoryName(object):
        pass
    
    class DescribeFleetsRequest(Mapping):
        pass
    
    class DescribeFleetsResult(Mapping):
        pass
    
    class String(object):
        pass
    
    class DescribeImageBuildersRequest(Mapping):
        pass
    
    class DescribeImageBuildersResult(Mapping):
        pass
    
    class DescribeImagePermissionsRequest(Mapping):
        pass
    
    class DescribeImagePermissionsResult(Mapping):
        pass
    
    class AwsAccountId(object):
        pass
    
    class DescribeImagesRequest(Mapping):
        pass
    
    class DescribeImagesResult(Mapping):
        pass
    
    class Arn(object):
        pass
    
    class DescribeSessionsRequest(Mapping):
        pass
    
    class DescribeSessionsResult(Mapping):
        pass
    
    class DescribeStacksRequest(Mapping):
        pass
    
    class DescribeStacksResult(Mapping):
        pass
    
    class DescribeUsageReportSubscriptionsRequest(Mapping):
        pass
    
    class DescribeUsageReportSubscriptionsResult(Mapping):
        pass
    
    class DescribeUserStackAssociationsRequest(Mapping):
        pass
    
    class DescribeUserStackAssociationsResult(Mapping):
        pass
    
    class DescribeUsersRequest(Mapping):
        pass
    
    class DescribeUsersResult(Mapping):
        pass
    
    class DisableUserRequest(Mapping):
        pass
    
    class DisableUserResult(Mapping):
        pass
    
    class DisassociateFleetRequest(Mapping):
        pass
    
    class DisassociateFleetResult(Mapping):
        pass
    
    class EnableUserRequest(Mapping):
        pass
    
    class EnableUserResult(Mapping):
        pass
    
    class ExpireSessionRequest(Mapping):
        pass
    
    class ExpireSessionResult(Mapping):
        pass
    
    class ListAssociatedFleetsRequest(Mapping):
        pass
    
    class ListAssociatedFleetsResult(Mapping):
        pass
    
    class ListAssociatedStacksRequest(Mapping):
        pass
    
    class ListAssociatedStacksResult(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class StartFleetRequest(Mapping):
        pass
    
    class StartFleetResult(Mapping):
        pass
    
    class StartImageBuilderRequest(Mapping):
        pass
    
    class StartImageBuilderResult(Mapping):
        pass
    
    class StopFleetRequest(Mapping):
        pass
    
    class StopFleetResult(Mapping):
        pass
    
    class StopImageBuilderRequest(Mapping):
        pass
    
    class StopImageBuilderResult(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateDirectoryConfigRequest(Mapping):
        pass
    
    class UpdateDirectoryConfigResult(Mapping):
        pass
    
    class UpdateFleetRequest(Mapping):
        pass
    
    class UpdateFleetResult(Mapping):
        pass
    
    class FleetAttribute(object):
        pass
    
    class UpdateImagePermissionsRequest(Mapping):
        pass
    
    class UpdateImagePermissionsResult(Mapping):
        pass
    
    class ImagePermissions(Mapping):
        pass
    
    class UpdateStackRequest(Mapping):
        pass
    
    class UpdateStackResult(Mapping):
        pass
    
    class StackAttribute(object):
        pass
    
    def associate_fleet(self, StackName: str, FleetName: str) -> AssociateFleetResult:
        r"""Associates the specified fleet with the specified stack.

        :param self:
        :param StackName:  The name of the stack.<br/>FleetName:  The name of the fleet. <br/>
        :return:         """
        pass

    def batch_associate_user_stack(self, UserStackAssociations: List[UserStackAssociation]) -> BatchAssociateUserStackResult:
        r"""Associates the specified users with the specified stacks. Users in a user pool cannot be assigned to stacks with fleets that are joined to an Active Directory domain.

        :param self:
        :param UserStackAssociations:  The list of UserStackAssociation objects.<br/>
        :return: errors:  The list of UserStackAssociationError objects.<br/>        """
        pass

    def batch_disassociate_user_stack(self, UserStackAssociations: List[UserStackAssociation]) -> BatchDisassociateUserStackResult:
        r"""Disassociates the specified users from the specified stacks.

        :param self:
        :param UserStackAssociations:  The list of UserStackAssociation objects.<br/>
        :return: errors:  The list of UserStackAssociationError objects.<br/>        """
        pass

    def copy_image(self, DestinationRegion: str, DestinationImageName: str, SourceImageName: str, DestinationImageDescription: str=None) -> CopyImageResponse:
        r"""Copies the image within the same region or to a new region within the same AWS account. Note that any tags you added to the image will not be copied.

        :param self:
        :param DestinationImageDescription:  The description that the image will have when it is copied to the destination.<br/>DestinationRegion:  The destination region to which the image will be copied. This parameter is required, even if you are copying an image within the same region.<br/>DestinationImageName:  The name that the image will have when it is copied to the destination.<br/>SourceImageName:  The name of the image to copy.<br/>
        :return: DestinationImageName:  The name of the destination image.<br/>        """
        pass

    def create_directory_config(self, OrganizationalUnitDistinguishedNames: List[OrganizationalUnitDistinguishedName], DirectoryName: str, ServiceAccountCredentials: ServiceAccountCredentials=None) -> CreateDirectoryConfigResult:
        r"""Creates a Directory Config object in AppStream 2.0. This object includes the configuration information required to join fleets and image builders to Microsoft Active Directory domains.

        :param self:
        :param ServiceAccountCredentials:  The credentials for the service account used by the fleet or image builder to connect to the directory.:<br/>OrganizationalUnitDistinguishedNames:  The distinguished names of the organizational units for computer accounts.<br/>DirectoryName:  The fully qualified name of the directory (for example, corp.example.com).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccountPassword</i> The password for the account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccountName</i> The user name of the account. This account must have the following privileges: create computer objects, join computers to the domain, and change/reset the password on descendant computer objects for the organizational units specified.<br/>
        :return: DirectoryConfig:  Information about the directory configuration.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTime</i> The time the directory configuration was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceAccountCredentials</i> The credentials for the service account used by the fleet or image builder to connect to the directory.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ServiceAccountCredentials</b>: The credentials for the service account used by the fleet or image builder to connect to the directory.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OrganizationalUnitDistinguishedNames</i> The distinguished names of the organizational units for computer accounts.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DirectoryName</i> The fully qualified name of the directory (for example, corp.example.com).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AccountPassword</i> The password for the account.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AccountName</i> The user name of the account. This account must have the following privileges: create computer objects, join computers to the domain, and change/reset the password on descendant computer objects for the organizational units specified.<br/>        """
        pass

    def create_fleet(self, ComputeCapacity: ComputeCapacity, InstanceType: str, Name: str, ImageName: str=None, ImageArn: str=None, FleetType: str=None, VpcConfig: VpcConfig=None, MaxUserDurationInSeconds: int=None, DisconnectTimeoutInSeconds: int=None, Description: str=None, DisplayName: str=None, EnableDefaultInternetAccess: BooleanObject=None, DomainJoinInfo: DomainJoinInfo=None, Tags: Tags=None, IdleDisconnectTimeoutInSeconds: int=None, IamRoleArn: str=None, StreamView: str=None) -> CreateFleetResult:
        r"""Creates a fleet. A fleet consists of streaming instances that run a specified image.

        :param self:
        :param StreamView:  The AppStream 2.0 view that is displayed to your users when they stream from the fleet. When <code>APP</code> is specified, only the windows of applications opened by users display. When <code>DESKTOP</code> is specified, the standard desktop that is provided by the operating system displays. The default value is <code>APP</code>.<br/>IamRoleArn:  The Amazon Resource Name (ARN) of the IAM role to apply to the fleet. To assume a role, a fleet instance calls the AWS Security Token Service (STS) <code>AssumeRole</code> API operation and passes the ARN of the role to use. The operation creates a new session with temporary credentials. AppStream 2.0 retrieves the temporary credentials and creates the <b>appstream_machine_role</b> credential profile on the instance. For more information, see <a href="https://docs.aws.amazon.com/appstream2/latest/developerguide/using-iam-roles-to-grant-permissions-to-applications-scripts-streaming-instances.html">Using an IAM Role to Grant Permissions to Applications and Scripts Running on AppStream 2.0 Streaming Instances</a> in the <i>Amazon AppStream 2.0 Administration Guide</i>.<br/>IdleDisconnectTimeoutInSeconds:  The amount of time that users can be idle (inactive) before they are disconnected from their streaming session and the <code>DisconnectTimeoutInSeconds</code> time interval begins. Users are notified before they are disconnected due to inactivity. If they try to reconnect to the streaming session before the time interval specified in <code>DisconnectTimeoutInSeconds</code> elapses, they are connected to their previous session. Users are considered idle when they stop providing keyboard or mouse input during their streaming session. File uploads and downloads, audio in, audio out, and pixels changing do not qualify as user activity. If users continue to be idle after the time interval in <code>IdleDisconnectTimeoutInSeconds</code> elapses, they are disconnected. To prevent users from being disconnected due to inactivity, specify a value of 0. Otherwise, specify a value between 60 and 3600. The default value is 0. <note> If you enable this feature, we recommend that you specify a value that corresponds exactly to a whole number of minutes (for example, 60, 120, and 180). If you don't do this, the value is rounded to the nearest minute. For example, if you specify a value of 70, users are disconnected after 1 minute of inactivity. If you specify a value that is at the midpoint between two different minutes, the value is rounded up. For example, if you specify a value of 90, users are disconnected after 2 minutes of inactivity.  </note><br/>Tags:  The tags to associate with the fleet. A tag is a key-value pair, and the value is optional. For example, Environment=Test. If you do not specify a value, Environment=.  If you do not specify a value, the value is set to an empty string. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following special characters:  _ . : / = + \ - @ For more information, see <a href="https://docs.aws.amazon.com/appstream2/latest/developerguide/tagging-basic.html">Tagging Your Resources</a> in the <i>Amazon AppStream 2.0 Administration Guide</i>.<br/>DomainJoinInfo:  The name of the directory and organizational unit (OU) to use to join the fleet to a Microsoft Active Directory domain. :<br/>EnableDefaultInternetAccess:  Enables or disables default internet access for the fleet.<br/>DisplayName:  The fleet name to display.<br/>Description:  The description to display.<br/>DisconnectTimeoutInSeconds:  The amount of time that a streaming session remains active after users disconnect. If users try to reconnect to the streaming session after a disconnection or network interruption within this time interval, they are connected to their previous session. Otherwise, they are connected to a new session with a new streaming instance.  Specify a value between 60 and 360000.<br/>MaxUserDurationInSeconds:  The maximum amount of time that a streaming session can remain active, in seconds. If users are still connected to a streaming instance five minutes before this limit is reached, they are prompted to save any open documents before being disconnected. After this time elapses, the instance is terminated and replaced by a new instance. Specify a value between 600 and 360000.<br/>VpcConfig:  The VPC configuration for the fleet.:<br/>ComputeCapacity:  The desired capacity for the fleet.:<br/>FleetType:  The fleet type. <dl> <dt>ALWAYS_ON</dt> <dd> Provides users with instant-on access to their apps. You are charged for all running instances in your fleet, even if no users are streaming apps. </dd> <dt>ON_DEMAND</dt> <dd> Provide users with access to applications after they connect, which takes one to two minutes. You are charged for instance streaming when users are connected and a small hourly fee for instances that are not streaming apps. </dd> </dl><br/>InstanceType:  The instance type to use when launching fleet instances. The following instance types are available: <ul> <li> stream.standard.small </li> <li> stream.standard.medium </li> <li> stream.standard.large </li> <li> stream.compute.large </li> <li> stream.compute.xlarge </li> <li> stream.compute.2xlarge </li> <li> stream.compute.4xlarge </li> <li> stream.compute.8xlarge </li> <li> stream.memory.large </li> <li> stream.memory.xlarge </li> <li> stream.memory.2xlarge </li> <li> stream.memory.4xlarge </li> <li> stream.memory.8xlarge </li> <li> stream.memory.z1d.large </li> <li> stream.memory.z1d.xlarge </li> <li> stream.memory.z1d.2xlarge </li> <li> stream.memory.z1d.3xlarge </li> <li> stream.memory.z1d.6xlarge </li> <li> stream.memory.z1d.12xlarge </li> <li> stream.graphics-design.large </li> <li> stream.graphics-design.xlarge </li> <li> stream.graphics-design.2xlarge </li> <li> stream.graphics-design.4xlarge </li> <li> stream.graphics-desktop.2xlarge </li> <li> stream.graphics.g4dn.xlarge </li> <li> stream.graphics.g4dn.2xlarge </li> <li> stream.graphics.g4dn.4xlarge </li> <li> stream.graphics.g4dn.8xlarge </li> <li> stream.graphics.g4dn.12xlarge </li> <li> stream.graphics.g4dn.16xlarge </li> <li> stream.graphics-pro.4xlarge </li> <li> stream.graphics-pro.8xlarge </li> <li> stream.graphics-pro.16xlarge </li> </ul><br/>ImageArn:  The ARN of the public, private, or shared image to use.<br/>ImageName:  The name of the image used to create the fleet.<br/>Name:  A unique name for the fleet.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DesiredInstances</i> The desired number of streaming instances.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> The identifiers of the security groups for the fleet or image builder.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetIds</i> The identifiers of the subnets to which a network interface is attached from the fleet instance or image builder instance. Fleet instances use one or more subnets. Image builder instances use one subnet.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OrganizationalUnitDistinguishedName</i> The distinguished name of the organizational unit for computer accounts.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DirectoryName</i> The fully qualified name of the directory (for example, corp.example.com).<br/>
        :return: Fleet:  Information about the fleet.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamView</i> The AppStream 2.0 view that is displayed to your users when they stream from the fleet. When <code>APP</code> is specified, only the windows of applications opened by users display. When <code>DESKTOP</code> is specified, the standard desktop that is provided by the operating system displays. The default value is <code>APP</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IamRoleArn</i> The ARN of the IAM role that is applied to the fleet. To assume a role, the fleet instance calls the AWS Security Token Service (STS) <code>AssumeRole</code> API operation and passes the ARN of the role to use. The operation creates a new session with temporary credentials. AppStream 2.0 retrieves the temporary credentials and creates the <b>appstream_machine_role</b> credential profile on the instance. For more information, see <a href="https://docs.aws.amazon.com/appstream2/latest/developerguide/using-iam-roles-to-grant-permissions-to-applications-scripts-streaming-instances.html">Using an IAM Role to Grant Permissions to Applications and Scripts Running on AppStream 2.0 Streaming Instances</a> in the <i>Amazon AppStream 2.0 Administration Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IdleDisconnectTimeoutInSeconds</i> The amount of time that users can be idle (inactive) before they are disconnected from their streaming session and the <code>DisconnectTimeoutInSeconds</code> time interval begins. Users are notified before they are disconnected due to inactivity. If users try to reconnect to the streaming session before the time interval specified in <code>DisconnectTimeoutInSeconds</code> elapses, they are connected to their previous session. Users are considered idle when they stop providing keyboard or mouse input during their streaming session. File uploads and downloads, audio in, audio out, and pixels changing do not qualify as user activity. If users continue to be idle after the time interval in <code>IdleDisconnectTimeoutInSeconds</code> elapses, they are disconnected. To prevent users from being disconnected due to inactivity, specify a value of 0. Otherwise, specify a value between 60 and 3600. The default value is 0. <note> If you enable this feature, we recommend that you specify a value that corresponds exactly to a whole number of minutes (for example, 60, 120, and 180). If you don't do this, the value is rounded to the nearest minute. For example, if you specify a value of 70, users are disconnected after 1 minute of inactivity. If you specify a value that is at the midpoint between two different minutes, the value is rounded up. For example, if you specify a value of 90, users are disconnected after 2 minutes of inactivity.  </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainJoinInfo</i> The name of the directory and organizational unit (OU) to use to join the fleet to a Microsoft Active Directory domain. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DomainJoinInfo</b>: The name of the directory and organizational unit (OU) to use to join the fleet to a Microsoft Active Directory domain. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableDefaultInternetAccess</i> Indicates whether default internet access is enabled for the fleet.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FleetErrors</i> The fleet errors.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTime</i> The time the fleet was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcConfig</i> The VPC configuration for the fleet.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>VpcConfig</b>: The VPC configuration for the fleet.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The current state for the fleet.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DisconnectTimeoutInSeconds</i> The amount of time that a streaming session remains active after users disconnect. If they try to reconnect to the streaming session after a disconnection or network interruption within this time interval, they are connected to their previous session. Otherwise, they are connected to a new session with a new streaming instance. Specify a value between 60 and 360000.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxUserDurationInSeconds</i> The maximum amount of time that a streaming session can remain active, in seconds. If users are still connected to a streaming instance five minutes before this limit is reached, they are prompted to save any open documents before being disconnected. After this time elapses, the instance is terminated and replaced by a new instance.  Specify a value between 600 and 360000.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ComputeCapacityStatus</i> The capacity status for the fleet.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ComputeCapacityStatus</b>: The capacity status for the fleet.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FleetType</i> The fleet type. <dl> <dt>ALWAYS_ON</dt> <dd> Provides users with instant-on access to their apps. You are charged for all running instances in your fleet, even if no users are streaming apps. </dd> <dt>ON_DEMAND</dt> <dd> Provide users with access to applications after they connect, which takes one to two minutes. You are charged for instance streaming when users are connected and a small hourly fee for instances that are not streaming apps. </dd> </dl><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceType</i> The instance type to use when launching fleet instances. The following instance types are available: <ul> <li> stream.standard.small </li> <li> stream.standard.medium </li> <li> stream.standard.large </li> <li> stream.compute.large </li> <li> stream.compute.xlarge </li> <li> stream.compute.2xlarge </li> <li> stream.compute.4xlarge </li> <li> stream.compute.8xlarge </li> <li> stream.memory.large </li> <li> stream.memory.xlarge </li> <li> stream.memory.2xlarge </li> <li> stream.memory.4xlarge </li> <li> stream.memory.8xlarge </li> <li> stream.memory.z1d.large </li> <li> stream.memory.z1d.xlarge </li> <li> stream.memory.z1d.2xlarge </li> <li> stream.memory.z1d.3xlarge </li> <li> stream.memory.z1d.6xlarge </li> <li> stream.memory.z1d.12xlarge </li> <li> stream.graphics-design.large </li> <li> stream.graphics-design.xlarge </li> <li> stream.graphics-design.2xlarge </li> <li> stream.graphics-design.4xlarge </li> <li> stream.graphics-desktop.2xlarge </li> <li> stream.graphics.g4dn.xlarge </li> <li> stream.graphics.g4dn.2xlarge </li> <li> stream.graphics.g4dn.4xlarge </li> <li> stream.graphics.g4dn.8xlarge </li> <li> stream.graphics.g4dn.12xlarge </li> <li> stream.graphics.g4dn.16xlarge </li> <li> stream.graphics-pro.4xlarge </li> <li> stream.graphics-pro.8xlarge </li> <li> stream.graphics-pro.16xlarge </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImageArn</i> The ARN for the public, private, or shared image.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImageName</i> The name of the image used to create the fleet.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description to display.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DisplayName</i> The fleet name to display.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the fleet.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) for the fleet.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Available</i> The number of currently available instances that can be used to stream sessions.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InUse</i> The number of instances in use for streaming.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Running</i> The total number of simultaneous streaming instances that are running.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Desired</i> The desired number of streaming instances.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> The identifiers of the security groups for the fleet or image builder.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetIds</i> The identifiers of the subnets to which a network interface is attached from the fleet instance or image builder instance. Fleet instances use one or more subnets. Image builder instances use one subnet.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OrganizationalUnitDistinguishedName</i> The distinguished name of the organizational unit for computer accounts.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DirectoryName</i> The fully qualified name of the directory (for example, corp.example.com).<br/>        """
        pass

    def create_image_builder(self, InstanceType: str, Name: str, ImageName: str=None, ImageArn: str=None, Description: str=None, DisplayName: str=None, VpcConfig: VpcConfig=None, IamRoleArn: str=None, EnableDefaultInternetAccess: BooleanObject=None, DomainJoinInfo: DomainJoinInfo=None, AppstreamAgentVersion: str=None, Tags: Tags=None, AccessEndpoints: List[AccessEndpoint]=None) -> CreateImageBuilderResult:
        r"""Creates an image builder. An image builder is a virtual machine that is used to create an image. The initial state of the builder is <code>PENDING</code>. When it is ready, the state is <code>RUNNING</code>.

        :param self:
        :param AccessEndpoints:  The list of interface VPC endpoint (interface endpoint) objects. Administrators can connect to the image builder only through the specified endpoints.<br/>Tags:  The tags to associate with the image builder. A tag is a key-value pair, and the value is optional. For example, Environment=Test. If you do not specify a value, Environment=.  Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following special characters:  _ . : / = + \ - @ If you do not specify a value, the value is set to an empty string. For more information about tags, see <a href="https://docs.aws.amazon.com/appstream2/latest/developerguide/tagging-basic.html">Tagging Your Resources</a> in the <i>Amazon AppStream 2.0 Administration Guide</i>.<br/>AppstreamAgentVersion:  The version of the AppStream 2.0 agent to use for this image builder. To use the latest version of the AppStream 2.0 agent, specify [LATEST]. <br/>DomainJoinInfo:  The name of the directory and organizational unit (OU) to use to join the image builder to a Microsoft Active Directory domain. :<br/>EnableDefaultInternetAccess:  Enables or disables default internet access for the image builder.<br/>IamRoleArn:  The Amazon Resource Name (ARN) of the IAM role to apply to the image builder. To assume a role, the image builder calls the AWS Security Token Service (STS) <code>AssumeRole</code> API operation and passes the ARN of the role to use. The operation creates a new session with temporary credentials. AppStream 2.0 retrieves the temporary credentials and creates the <b>appstream_machine_role</b> credential profile on the instance. For more information, see <a href="https://docs.aws.amazon.com/appstream2/latest/developerguide/using-iam-roles-to-grant-permissions-to-applications-scripts-streaming-instances.html">Using an IAM Role to Grant Permissions to Applications and Scripts Running on AppStream 2.0 Streaming Instances</a> in the <i>Amazon AppStream 2.0 Administration Guide</i>.<br/>VpcConfig:  The VPC configuration for the image builder. You can specify only one subnet.:<br/>DisplayName:  The image builder name to display.<br/>Description:  The description to display.<br/>InstanceType:  The instance type to use when launching the image builder. The following instance types are available: <ul> <li> stream.standard.small </li> <li> stream.standard.medium </li> <li> stream.standard.large </li> <li> stream.compute.large </li> <li> stream.compute.xlarge </li> <li> stream.compute.2xlarge </li> <li> stream.compute.4xlarge </li> <li> stream.compute.8xlarge </li> <li> stream.memory.large </li> <li> stream.memory.xlarge </li> <li> stream.memory.2xlarge </li> <li> stream.memory.4xlarge </li> <li> stream.memory.8xlarge </li> <li> stream.memory.z1d.large </li> <li> stream.memory.z1d.xlarge </li> <li> stream.memory.z1d.2xlarge </li> <li> stream.memory.z1d.3xlarge </li> <li> stream.memory.z1d.6xlarge </li> <li> stream.memory.z1d.12xlarge </li> <li> stream.graphics-design.large </li> <li> stream.graphics-design.xlarge </li> <li> stream.graphics-design.2xlarge </li> <li> stream.graphics-design.4xlarge </li> <li> stream.graphics-desktop.2xlarge </li> <li> stream.graphics.g4dn.xlarge </li> <li> stream.graphics.g4dn.2xlarge </li> <li> stream.graphics.g4dn.4xlarge </li> <li> stream.graphics.g4dn.8xlarge </li> <li> stream.graphics.g4dn.12xlarge </li> <li> stream.graphics.g4dn.16xlarge </li> <li> stream.graphics-pro.4xlarge </li> <li> stream.graphics-pro.8xlarge </li> <li> stream.graphics-pro.16xlarge </li> </ul><br/>ImageArn:  The ARN of the public, private, or shared image to use.<br/>ImageName:  The name of the image used to create the image builder.<br/>Name:  A unique name for the image builder.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> The identifiers of the security groups for the fleet or image builder.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetIds</i> The identifiers of the subnets to which a network interface is attached from the fleet instance or image builder instance. Fleet instances use one or more subnets. Image builder instances use one subnet.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OrganizationalUnitDistinguishedName</i> The distinguished name of the organizational unit for computer accounts.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DirectoryName</i> The fully qualified name of the directory (for example, corp.example.com).<br/>
        :return: ImageBuilder:  Information about the image builder.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccessEndpoints</i> The list of virtual private cloud (VPC) interface endpoint objects. Administrators can connect to the image builder only through the specified endpoints.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AppstreamAgentVersion</i> The version of the AppStream 2.0 agent that is currently being used by the image builder. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImageBuilderErrors</i> The image builder errors.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkAccessConfiguration</i> Describes the network details of the fleet or image builder instance.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>NetworkAccessConfiguration</b>: Describes the network details of the fleet or image builder instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainJoinInfo</i> The name of the directory and organizational unit (OU) to use to join the image builder to a Microsoft Active Directory domain. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DomainJoinInfo</b>: The name of the directory and organizational unit (OU) to use to join the image builder to a Microsoft Active Directory domain. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableDefaultInternetAccess</i> Enables or disables default internet access for the image builder.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTime</i> The time stamp when the image builder was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StateChangeReason</i> The reason why the last state change occurred.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StateChangeReason</b>: The reason why the last state change occurred.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the image builder.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IamRoleArn</i> The ARN of the IAM role that is applied to the image builder. To assume a role, the image builder calls the AWS Security Token Service (STS) <code>AssumeRole</code> API operation and passes the ARN of the role to use. The operation creates a new session with temporary credentials. AppStream 2.0 retrieves the temporary credentials and creates the <b>appstream_machine_role</b> credential profile on the instance. For more information, see <a href="https://docs.aws.amazon.com/appstream2/latest/developerguide/using-iam-roles-to-grant-permissions-to-applications-scripts-streaming-instances.html">Using an IAM Role to Grant Permissions to Applications and Scripts Running on AppStream 2.0 Streaming Instances</a> in the <i>Amazon AppStream 2.0 Administration Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Platform</i> The operating system platform of the image builder.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceType</i> The instance type for the image builder. The following instance types are available: <ul> <li> stream.standard.small </li> <li> stream.standard.medium </li> <li> stream.standard.large </li> <li> stream.compute.large </li> <li> stream.compute.xlarge </li> <li> stream.compute.2xlarge </li> <li> stream.compute.4xlarge </li> <li> stream.compute.8xlarge </li> <li> stream.memory.large </li> <li> stream.memory.xlarge </li> <li> stream.memory.2xlarge </li> <li> stream.memory.4xlarge </li> <li> stream.memory.8xlarge </li> <li> stream.memory.z1d.large </li> <li> stream.memory.z1d.xlarge </li> <li> stream.memory.z1d.2xlarge </li> <li> stream.memory.z1d.3xlarge </li> <li> stream.memory.z1d.6xlarge </li> <li> stream.memory.z1d.12xlarge </li> <li> stream.graphics-design.large </li> <li> stream.graphics-design.xlarge </li> <li> stream.graphics-design.2xlarge </li> <li> stream.graphics-design.4xlarge </li> <li> stream.graphics-desktop.2xlarge </li> <li> stream.graphics.g4dn.xlarge </li> <li> stream.graphics.g4dn.2xlarge </li> <li> stream.graphics.g4dn.4xlarge </li> <li> stream.graphics.g4dn.8xlarge </li> <li> stream.graphics.g4dn.12xlarge </li> <li> stream.graphics.g4dn.16xlarge </li> <li> stream.graphics-pro.4xlarge </li> <li> stream.graphics-pro.8xlarge </li> <li> stream.graphics-pro.16xlarge </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcConfig</i> The VPC configuration of the image builder.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>VpcConfig</b>: The VPC configuration of the image builder.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DisplayName</i> The image builder name to display.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description to display.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImageArn</i> The ARN of the image from which this builder was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The ARN for the image builder.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the image builder.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> The identifiers of the security groups for the fleet or image builder.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetIds</i> The identifiers of the subnets to which a network interface is attached from the fleet instance or image builder instance. Fleet instances use one or more subnets. Image builder instances use one subnet.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> The state change reason message.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Code</i> The state change reason code.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OrganizationalUnitDistinguishedName</i> The distinguished name of the organizational unit for computer accounts.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DirectoryName</i> The fully qualified name of the directory (for example, corp.example.com).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EniId</i> The resource identifier of the elastic network interface that is attached to instances in your VPC. All network interfaces have the eni-xxxxxxxx resource identifier.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EniPrivateIpAddress</i> The private IP address of the elastic network interface that is attached to instances in your VPC.<br/>        """
        pass

    def create_image_builder_streaming_url(self, Name: str, Validity: Long=None) -> CreateImageBuilderStreamingURLResult:
        r"""Creates a URL to start an image builder streaming session.

        :param self:
        :param Validity:  The time that the streaming URL will be valid, in seconds. Specify a value between 1 and 604800 seconds. The default is 3600 seconds.<br/>Name:  The name of the image builder.<br/>
        :return: Expires:  The elapsed time, in seconds after the Unix epoch, when this URL expires.<br/>StreamingURL:  The URL to start the AppStream 2.0 streaming session.<br/>        """
        pass

    def create_stack(self, Name: str, Description: str=None, DisplayName: str=None, StorageConnectors: List[StorageConnector]=None, RedirectURL: str=None, FeedbackURL: str=None, UserSettings: List[UserSetting]=None, ApplicationSettings: ApplicationSettings=None, Tags: Tags=None, AccessEndpoints: List[AccessEndpoint]=None, EmbedHostDomains: List[EmbedHostDomain]=None) -> CreateStackResult:
        r"""Creates a stack to start streaming applications to users. A stack consists of an associated fleet, user access policies, and storage configurations. 

        :param self:
        :param EmbedHostDomains:  The domains where AppStream 2.0 streaming sessions can be embedded in an iframe. You must approve the domains that you want to host embedded AppStream 2.0 streaming sessions. <br/>AccessEndpoints:  The list of interface VPC endpoint (interface endpoint) objects. Users of the stack can connect to AppStream 2.0 only through the specified endpoints.<br/>Tags:  The tags to associate with the stack. A tag is a key-value pair, and the value is optional. For example, Environment=Test. If you do not specify a value, Environment=.  If you do not specify a value, the value is set to an empty string. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following special characters:  _ . : / = + \ - @ For more information about tags, see <a href="https://docs.aws.amazon.com/appstream2/latest/developerguide/tagging-basic.html">Tagging Your Resources</a> in the <i>Amazon AppStream 2.0 Administration Guide</i>.<br/>ApplicationSettings:  The persistent application settings for users of a stack. When these settings are enabled, changes that users make to applications and Windows settings are automatically saved after each session and applied to the next session.:<br/>UserSettings:  The actions that are enabled or disabled for users during their streaming sessions. By default, these actions are enabled. <br/>FeedbackURL:  The URL that users are redirected to after they click the Send Feedback link. If no URL is specified, no Send Feedback link is displayed.<br/>RedirectURL:  The URL that users are redirected to after their streaming session ends.<br/>StorageConnectors:  The storage connectors to enable.<br/>DisplayName:  The stack name to display.<br/>Description:  The description to display.<br/>Name:  The name of the stack.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SettingsGroup</i> The path prefix for the S3 bucket where users’ persistent application settings are stored. You can allow the same persistent application settings to be used across multiple stacks by specifying the same settings group for each stack. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Enables or disables persistent application settings for users during their streaming sessions. <br/>
        :return: Stack:  Information about the stack.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EmbedHostDomains</i> The domains where AppStream 2.0 streaming sessions can be embedded in an iframe. You must approve the domains that you want to host embedded AppStream 2.0 streaming sessions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccessEndpoints</i> The list of virtual private cloud (VPC) interface endpoint objects. Users of the stack can connect to AppStream 2.0 only through the specified endpoints. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationSettings</i> The persistent application settings for users of the stack.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ApplicationSettings</b>: The persistent application settings for users of the stack.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserSettings</i> The actions that are enabled or disabled for users during their streaming sessions. By default these actions are enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StackErrors</i> The errors for the stack.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FeedbackURL</i> The URL that users are redirected to after they click the Send Feedback link. If no URL is specified, no Send Feedback link is displayed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RedirectURL</i> The URL that users are redirected to after their streaming session ends.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageConnectors</i> The storage connectors to enable.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTime</i> The time the stack was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DisplayName</i> The stack name to display.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description to display.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the stack.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The ARN of the stack.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3BucketName</i> The S3 bucket where users’ persistent application settings are stored. When persistent application settings are enabled for the first time for an account in an AWS Region, an S3 bucket is created. The bucket is unique to the AWS account and the Region. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SettingsGroup</i> The path prefix for the S3 bucket where users’ persistent application settings are stored.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specifies whether persistent application settings are enabled for users during their streaming sessions.<br/>        """
        pass

    def create_streaming_url(self, UserId: str, FleetName: str, StackName: str, ApplicationId: str=None, Validity: Long=None, SessionContext: str=None) -> CreateStreamingURLResult:
        r"""Creates a temporary URL to start an AppStream 2.0 streaming session for the specified user. A streaming URL enables application streaming to be tested without user setup. 

        :param self:
        :param SessionContext:  The session context. For more information, see <a href="https://docs.aws.amazon.com/appstream2/latest/developerguide/managing-stacks-fleets.html#managing-stacks-fleets-parameters">Session Context</a> in the <i>Amazon AppStream 2.0 Administration Guide</i>.<br/>Validity:  The time that the streaming URL will be valid, in seconds. Specify a value between 1 and 604800 seconds. The default is 60 seconds.<br/>ApplicationId:  The name of the application to launch after the session starts. This is the name that you specified as <b>Name</b> in the Image Assistant. If your fleet is enabled for the <b>Desktop</b> stream view, you can also choose to launch directly to the operating system desktop. To do so, specify <b>Desktop</b>.<br/>UserId:  The identifier of the user.<br/>FleetName:  The name of the fleet.<br/>StackName:  The name of the stack.<br/>
        :return: Expires:  The elapsed time, in seconds after the Unix epoch, when this URL expires.<br/>StreamingURL:  The URL to start the AppStream 2.0 streaming session.<br/>        """
        pass

    def create_updated_image(self, newImageName: str, existingImageName: str, newImageDescription: str=None, newImageDisplayName: str=None, newImageTags: Tags=None, dryRun: Boolean=None) -> CreateUpdatedImageResult:
        r"""Creates a new image with the latest Windows operating system updates, driver updates, and AppStream 2.0 agent software. For more information, see the "Update an Image by Using Managed AppStream 2.0 Image Updates" section in <a href="https://docs.aws.amazon.com/appstream2/latest/developerguide/administer-images.html">Administer Your AppStream 2.0 Images</a>, in the <i>Amazon AppStream 2.0 Administration Guide</i>.

        :param self:
        :param dryRun:  Indicates whether to display the status of image update availability before AppStream 2.0 initiates the process of creating a new updated image. If this value is set to <code>true</code>, AppStream 2.0 displays whether image updates are available. If this value is set to <code>false</code>, AppStream 2.0 initiates the process of creating a new updated image without displaying whether image updates are available.<br/>newImageTags:  The tags to associate with the new image. A tag is a key-value pair, and the value is optional. For example, Environment=Test. If you do not specify a value, Environment=.  Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following special characters:  _ . : / = + \ - @ If you do not specify a value, the value is set to an empty string. For more information about tags, see <a href="https://docs.aws.amazon.com/appstream2/latest/developerguide/tagging-basic.html">Tagging Your Resources</a> in the <i>Amazon AppStream 2.0 Administration Guide</i>.<br/>newImageDisplayName:  The name to display for the new image.<br/>newImageDescription:  The description to display for the new image.<br/>newImageName:  The name of the new image. The name must be unique within the AWS account and Region.<br/>existingImageName:  The name of the image to update.<br/>
        :return: canUpdateImage:  Indicates whether a new image can be created.<br/>image:  Describes an image.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImageErrors</i> Describes the errors that are returned when a new image can't be created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImagePermissions</i> The permissions to provide to the destination AWS account for the specified image.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ImagePermissions</b>: The permissions to provide to the destination AWS account for the specified image.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AppstreamAgentVersion</i> The version of the AppStream 2.0 agent to use for instances that are launched from this image. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PublicBaseImageReleasedDate</i> The release date of the public base image. For private images, this date is the release date of the base image from which the image was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTime</i> The time the image was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Applications</i> The applications associated with the image.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StateChangeReason</i> The reason why the last state change occurred.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StateChangeReason</b>: The reason why the last state change occurred.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description to display.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Platform</i> The operating system platform of the image.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImageBuilderName</i> The name of the image builder that was used to create the private image. If the image is shared, this value is null.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImageBuilderSupported</i> Indicates whether an image builder can be launched from this image.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Visibility</i> Indicates whether the image is public or private.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The image starts in the <code>PENDING</code> state. If image creation succeeds, the state is <code>AVAILABLE</code>. If image creation fails, the state is <code>FAILED</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DisplayName</i> The image name to display.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BaseImageArn</i> The ARN of the image from which this image was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The ARN of the image.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the image.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> The state change reason message.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Code</i> The state change reason code.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>allowImageBuilder</i> Indicates whether the image can be used for an image builder.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>allowFleet</i> Indicates whether the image can be used for a fleet.<br/>        """
        pass

    def create_usage_report_subscription(self) -> CreateUsageReportSubscriptionResult:
        r"""Creates a usage report subscription. Usage reports are generated daily.

        :param self:
        :param 
        :return: Schedule:  The schedule for generating usage reports.<br/>S3BucketName:  The Amazon S3 bucket where generated reports are stored. If you enabled on-instance session scripts and Amazon S3 logging for your session script configuration, AppStream 2.0 created an S3 bucket to store the script output. The bucket is unique to your account and Region. When you enable usage reporting in this case, AppStream 2.0 uses the same bucket to store your usage reports. If you haven't already enabled on-instance session scripts, when you enable usage reports, AppStream 2.0 creates a new S3 bucket.<br/>        """
        pass

    def create_user(self, AuthenticationType: str, UserName: str, MessageAction: str=None, FirstName: str=None, LastName: str=None) -> CreateUserResult:
        r"""Creates a new user in the user pool.

        :param self:
        :param AuthenticationType:  The authentication type for the user. You must specify USERPOOL. <br/>LastName:  The last name, or surname, of the user.<br/>FirstName:  The first name, or given name, of the user.<br/>MessageAction:  The action to take for the welcome email that is sent to a user after the user is created in the user pool. If you specify SUPPRESS, no email is sent. If you specify RESEND, do not specify the first name or last name of the user. If the value is null, the email is sent.  <note> The temporary password in the welcome email is valid for only 7 days. If users don’t set their passwords within 7 days, you must send them a new welcome email. </note><br/>UserName:  The email address of the user. <note> Users' email addresses are case-sensitive. During login, if they specify an email address that doesn't use the same capitalization as the email address specified when their user pool account was created, a "user does not exist" error message displays. </note><br/>
        :return:         """
        pass

    def delete_directory_config(self, DirectoryName: str) -> DeleteDirectoryConfigResult:
        r"""Deletes the specified Directory Config object from AppStream 2.0. This object includes the information required to join streaming instances to an Active Directory domain.

        :param self:
        :param DirectoryName:  The name of the directory configuration.<br/>
        :return:         """
        pass

    def delete_fleet(self, Name: str) -> DeleteFleetResult:
        r"""Deletes the specified fleet.

        :param self:
        :param Name:  The name of the fleet.<br/>
        :return:         """
        pass

    def delete_image(self, Name: str) -> DeleteImageResult:
        r"""Deletes the specified image. You cannot delete an image when it is in use. After you delete an image, you cannot provision new capacity using the image.

        :param self:
        :param Name:  The name of the image.<br/>
        :return: Image:  Information about the image.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImageErrors</i> Describes the errors that are returned when a new image can't be created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImagePermissions</i> The permissions to provide to the destination AWS account for the specified image.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ImagePermissions</b>: The permissions to provide to the destination AWS account for the specified image.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AppstreamAgentVersion</i> The version of the AppStream 2.0 agent to use for instances that are launched from this image. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PublicBaseImageReleasedDate</i> The release date of the public base image. For private images, this date is the release date of the base image from which the image was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTime</i> The time the image was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Applications</i> The applications associated with the image.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StateChangeReason</i> The reason why the last state change occurred.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StateChangeReason</b>: The reason why the last state change occurred.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description to display.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Platform</i> The operating system platform of the image.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImageBuilderName</i> The name of the image builder that was used to create the private image. If the image is shared, this value is null.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImageBuilderSupported</i> Indicates whether an image builder can be launched from this image.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Visibility</i> Indicates whether the image is public or private.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The image starts in the <code>PENDING</code> state. If image creation succeeds, the state is <code>AVAILABLE</code>. If image creation fails, the state is <code>FAILED</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DisplayName</i> The image name to display.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BaseImageArn</i> The ARN of the image from which this image was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The ARN of the image.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the image.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> The state change reason message.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Code</i> The state change reason code.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>allowImageBuilder</i> Indicates whether the image can be used for an image builder.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>allowFleet</i> Indicates whether the image can be used for a fleet.<br/>        """
        pass

    def delete_image_builder(self, Name: str) -> DeleteImageBuilderResult:
        r"""Deletes the specified image builder and releases the capacity.

        :param self:
        :param Name:  The name of the image builder.<br/>
        :return: ImageBuilder:  Information about the image builder.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccessEndpoints</i> The list of virtual private cloud (VPC) interface endpoint objects. Administrators can connect to the image builder only through the specified endpoints.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AppstreamAgentVersion</i> The version of the AppStream 2.0 agent that is currently being used by the image builder. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImageBuilderErrors</i> The image builder errors.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkAccessConfiguration</i> Describes the network details of the fleet or image builder instance.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>NetworkAccessConfiguration</b>: Describes the network details of the fleet or image builder instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainJoinInfo</i> The name of the directory and organizational unit (OU) to use to join the image builder to a Microsoft Active Directory domain. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DomainJoinInfo</b>: The name of the directory and organizational unit (OU) to use to join the image builder to a Microsoft Active Directory domain. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableDefaultInternetAccess</i> Enables or disables default internet access for the image builder.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTime</i> The time stamp when the image builder was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StateChangeReason</i> The reason why the last state change occurred.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StateChangeReason</b>: The reason why the last state change occurred.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the image builder.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IamRoleArn</i> The ARN of the IAM role that is applied to the image builder. To assume a role, the image builder calls the AWS Security Token Service (STS) <code>AssumeRole</code> API operation and passes the ARN of the role to use. The operation creates a new session with temporary credentials. AppStream 2.0 retrieves the temporary credentials and creates the <b>appstream_machine_role</b> credential profile on the instance. For more information, see <a href="https://docs.aws.amazon.com/appstream2/latest/developerguide/using-iam-roles-to-grant-permissions-to-applications-scripts-streaming-instances.html">Using an IAM Role to Grant Permissions to Applications and Scripts Running on AppStream 2.0 Streaming Instances</a> in the <i>Amazon AppStream 2.0 Administration Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Platform</i> The operating system platform of the image builder.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceType</i> The instance type for the image builder. The following instance types are available: <ul> <li> stream.standard.small </li> <li> stream.standard.medium </li> <li> stream.standard.large </li> <li> stream.compute.large </li> <li> stream.compute.xlarge </li> <li> stream.compute.2xlarge </li> <li> stream.compute.4xlarge </li> <li> stream.compute.8xlarge </li> <li> stream.memory.large </li> <li> stream.memory.xlarge </li> <li> stream.memory.2xlarge </li> <li> stream.memory.4xlarge </li> <li> stream.memory.8xlarge </li> <li> stream.memory.z1d.large </li> <li> stream.memory.z1d.xlarge </li> <li> stream.memory.z1d.2xlarge </li> <li> stream.memory.z1d.3xlarge </li> <li> stream.memory.z1d.6xlarge </li> <li> stream.memory.z1d.12xlarge </li> <li> stream.graphics-design.large </li> <li> stream.graphics-design.xlarge </li> <li> stream.graphics-design.2xlarge </li> <li> stream.graphics-design.4xlarge </li> <li> stream.graphics-desktop.2xlarge </li> <li> stream.graphics.g4dn.xlarge </li> <li> stream.graphics.g4dn.2xlarge </li> <li> stream.graphics.g4dn.4xlarge </li> <li> stream.graphics.g4dn.8xlarge </li> <li> stream.graphics.g4dn.12xlarge </li> <li> stream.graphics.g4dn.16xlarge </li> <li> stream.graphics-pro.4xlarge </li> <li> stream.graphics-pro.8xlarge </li> <li> stream.graphics-pro.16xlarge </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcConfig</i> The VPC configuration of the image builder.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>VpcConfig</b>: The VPC configuration of the image builder.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DisplayName</i> The image builder name to display.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description to display.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImageArn</i> The ARN of the image from which this builder was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The ARN for the image builder.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the image builder.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> The identifiers of the security groups for the fleet or image builder.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetIds</i> The identifiers of the subnets to which a network interface is attached from the fleet instance or image builder instance. Fleet instances use one or more subnets. Image builder instances use one subnet.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> The state change reason message.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Code</i> The state change reason code.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OrganizationalUnitDistinguishedName</i> The distinguished name of the organizational unit for computer accounts.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DirectoryName</i> The fully qualified name of the directory (for example, corp.example.com).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EniId</i> The resource identifier of the elastic network interface that is attached to instances in your VPC. All network interfaces have the eni-xxxxxxxx resource identifier.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EniPrivateIpAddress</i> The private IP address of the elastic network interface that is attached to instances in your VPC.<br/>        """
        pass

    def delete_image_permissions(self, SharedAccountId: str, Name: str) -> DeleteImagePermissionsResult:
        r"""Deletes permissions for the specified private image. After you delete permissions for an image, AWS accounts to which you previously granted these permissions can no longer use the image.

        :param self:
        :param SharedAccountId:  The 12-digit identifier of the AWS account for which to delete image permissions.<br/>Name:  The name of the private image.<br/>
        :return:         """
        pass

    def delete_stack(self, Name: str) -> DeleteStackResult:
        r"""Deletes the specified stack. After the stack is deleted, the application streaming environment provided by the stack is no longer available to users. Also, any reservations made for application streaming sessions for the stack are released.

        :param self:
        :param Name:  The name of the stack.<br/>
        :return:         """
        pass

    def delete_usage_report_subscription(self) -> DeleteUsageReportSubscriptionResult:
        r"""Disables usage report generation.

        :param self:
        :param 
        :return:         """
        pass

    def delete_user(self, AuthenticationType: str, UserName: str) -> DeleteUserResult:
        r"""Deletes a user from the user pool.

        :param self:
        :param AuthenticationType:  The authentication type for the user. You must specify USERPOOL.<br/>UserName:  The email address of the user. <note> Users' email addresses are case-sensitive. </note><br/>
        :return:         """
        pass

    def describe_directory_configs(self, DirectoryNames: List[DirectoryName]=None, MaxResults: int=None, NextToken: str=None) -> DescribeDirectoryConfigsResult:
        r"""Retrieves a list that describes one or more specified Directory Config objects for AppStream 2.0, if the names for these objects are provided. Otherwise, all Directory Config objects in the account are described. These objects include the configuration information required to join fleets and image builders to Microsoft Active Directory domains.  Although the response syntax in this topic includes the account password, this password is not returned in the actual response.

        :param self:
        :param NextToken:  The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page.<br/>MaxResults:  The maximum size of each page of results.<br/>DirectoryNames:  The directory names.<br/>
        :return: NextToken:  The pagination token to use to retrieve the next page of results for this operation. If there are no more pages, this value is null.<br/>DirectoryConfigs:  Information about the directory configurations. Note that although the response syntax in this topic includes the account password, this password is not returned in the actual response. <br/>        """
        pass

    def describe_fleets(self, Names: List[String]=None, NextToken: str=None) -> DescribeFleetsResult:
        r"""Retrieves a list that describes one or more specified fleets, if the fleet names are provided. Otherwise, all fleets in the account are described.

        :param self:
        :param NextToken:  The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page.<br/>Names:  The names of the fleets to describe.<br/>
        :return: NextToken:  The pagination token to use to retrieve the next page of results for this operation. If there are no more pages, this value is null.<br/>Fleets:  Information about the fleets.<br/>        """
        pass

    def describe_image_builders(self, Names: List[String]=None, MaxResults: int=None, NextToken: str=None) -> DescribeImageBuildersResult:
        r"""Retrieves a list that describes one or more specified image builders, if the image builder names are provided. Otherwise, all image builders in the account are described.

        :param self:
        :param NextToken:  The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page.<br/>MaxResults:  The maximum size of each page of results.<br/>Names:  The names of the image builders to describe.<br/>
        :return: NextToken:  The pagination token to use to retrieve the next page of results for this operation. If there are no more pages, this value is null.<br/>ImageBuilders:  Information about the image builders.<br/>        """
        pass

    def describe_image_permissions(self, Name: str, MaxResults: int=None, SharedAwsAccountIds: List[AwsAccountId]=None, NextToken: str=None) -> DescribeImagePermissionsResult:
        r"""Retrieves a list that describes the permissions for shared AWS account IDs on a private image that you own. 

        :param self:
        :param NextToken:  The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page.<br/>SharedAwsAccountIds:  The 12-digit identifier of one or more AWS accounts with which the image is shared.<br/>MaxResults:  The maximum size of each page of results.<br/>Name:  The name of the private image for which to describe permissions. The image must be one that you own. <br/>
        :return: NextToken:  The pagination token to use to retrieve the next page of results for this operation. If there are no more pages, this value is null.<br/>SharedImagePermissionsList:  The permissions for a private image that you own. <br/>Name:  The name of the private image.<br/>        """
        pass

    def describe_images(self, Names: List[String]=None, Arns: List[Arn]=None, Type: str=None, NextToken: str=None, MaxResults: int=None) -> DescribeImagesResult:
        r"""Retrieves a list that describes one or more specified images, if the image names or image ARNs are provided. Otherwise, all images in the account are described.

        :param self:
        :param MaxResults:  The maximum size of each page of results.<br/>NextToken:  The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page.<br/>Type:  The type of image (public, private, or shared) to describe. <br/>Arns:  The ARNs of the public, private, and shared images to describe.<br/>Names:  The names of the public or private images to describe.<br/>
        :return: NextToken:  The pagination token to use to retrieve the next page of results for this operation. If there are no more pages, this value is null.<br/>Images:  Information about the images.<br/>        """
        pass

    def describe_sessions(self, FleetName: str, StackName: str, UserId: str=None, NextToken: str=None, Limit: int=None, AuthenticationType: str=None) -> DescribeSessionsResult:
        r"""Retrieves a list that describes the streaming sessions for a specified stack and fleet. If a UserId is provided for the stack and fleet, only streaming sessions for that user are described. If an authentication type is not provided, the default is to authenticate users using a streaming URL.

        :param self:
        :param AuthenticationType:  The authentication method. Specify <code>API</code> for a user authenticated using a streaming URL or <code>SAML</code> for a SAML federated user. The default is to authenticate users using a streaming URL.<br/>Limit:  The size of each page of results. The default value is 20 and the maximum value is 50.<br/>NextToken:  The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page.<br/>UserId:  The user identifier (ID). If you specify a user ID, you must also specify the authentication type.<br/>FleetName:  The name of the fleet. This value is case-sensitive.<br/>StackName:  The name of the stack. This value is case-sensitive.<br/>
        :return: NextToken:  The pagination token to use to retrieve the next page of results for this operation. If there are no more pages, this value is null.<br/>Sessions:  Information about the streaming sessions.<br/>        """
        pass

    def describe_stacks(self, Names: List[String]=None, NextToken: str=None) -> DescribeStacksResult:
        r"""Retrieves a list that describes one or more specified stacks, if the stack names are provided. Otherwise, all stacks in the account are described.

        :param self:
        :param NextToken:  The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page.<br/>Names:  The names of the stacks to describe.<br/>
        :return: NextToken:  The pagination token to use to retrieve the next page of results for this operation. If there are no more pages, this value is null.<br/>Stacks:  Information about the stacks.<br/>        """
        pass

    def describe_usage_report_subscriptions(self, MaxResults: int=None, NextToken: str=None) -> DescribeUsageReportSubscriptionsResult:
        r"""Retrieves a list that describes one or more usage report subscriptions.

        :param self:
        :param NextToken:  The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page.<br/>MaxResults:  The maximum size of each page of results.<br/>
        :return: NextToken:  The pagination token to use to retrieve the next page of results for this operation. If there are no more pages, this value is null.<br/>UsageReportSubscriptions:  Information about the usage report subscription.<br/>        """
        pass

    def describe_user_stack_associations(self, StackName: str=None, UserName: str=None, AuthenticationType: str=None, MaxResults: int=None, NextToken: str=None) -> DescribeUserStackAssociationsResult:
        r"""Retrieves a list that describes the UserStackAssociation objects. You must specify either or both of the following: <ul> <li> The stack name </li> <li> The user name (email address of the user associated with the stack) and the authentication type for the user </li> </ul>

        :param self:
        :param NextToken:  The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page.<br/>MaxResults:  The maximum size of each page of results.<br/>AuthenticationType:  The authentication type for the user who is associated with the stack. You must specify USERPOOL.<br/>UserName:  The email address of the user who is associated with the stack. <note> Users' email addresses are case-sensitive. </note><br/>StackName:  The name of the stack that is associated with the user.<br/>
        :return: NextToken:  The pagination token to use to retrieve the next page of results for this operation. If there are no more pages, this value is null.<br/>UserStackAssociations:  The UserStackAssociation objects.<br/>        """
        pass

    def describe_users(self, AuthenticationType: str, MaxResults: int=None, NextToken: str=None) -> DescribeUsersResult:
        r"""Retrieves a list that describes one or more specified users in the user pool.

        :param self:
        :param NextToken:  The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page.<br/>MaxResults:  The maximum size of each page of results.<br/>AuthenticationType:  The authentication type for the users in the user pool to describe. You must specify USERPOOL.<br/>
        :return: NextToken:  The pagination token to use to retrieve the next page of results for this operation. If there are no more pages, this value is null.<br/>Users:  Information about users in the user pool.<br/>        """
        pass

    def disable_user(self, AuthenticationType: str, UserName: str) -> DisableUserResult:
        r"""Disables the specified user in the user pool. Users can't sign in to AppStream 2.0 until they are re-enabled. This action does not delete the user. 

        :param self:
        :param AuthenticationType:  The authentication type for the user. You must specify USERPOOL.<br/>UserName:  The email address of the user. <note> Users' email addresses are case-sensitive. </note><br/>
        :return:         """
        pass

    def disassociate_fleet(self, StackName: str, FleetName: str) -> DisassociateFleetResult:
        r"""Disassociates the specified fleet from the specified stack.

        :param self:
        :param StackName:  The name of the stack.<br/>FleetName:  The name of the fleet.<br/>
        :return:         """
        pass

    def enable_user(self, AuthenticationType: str, UserName: str) -> EnableUserResult:
        r"""Enables a user in the user pool. After being enabled, users can sign in to AppStream 2.0 and open applications from the stacks to which they are assigned.

        :param self:
        :param AuthenticationType:  The authentication type for the user. You must specify USERPOOL.<br/>UserName:  The email address of the user. <note> Users' email addresses are case-sensitive. During login, if they specify an email address that doesn't use the same capitalization as the email address specified when their user pool account was created, a "user does not exist" error message displays.  </note><br/>
        :return:         """
        pass

    def expire_session(self, SessionId: str) -> ExpireSessionResult:
        r"""Immediately stops the specified streaming session.

        :param self:
        :param SessionId:  The identifier of the streaming session.<br/>
        :return:         """
        pass

    def list_associated_fleets(self, StackName: str, NextToken: str=None) -> ListAssociatedFleetsResult:
        r"""Retrieves the name of the fleet that is associated with the specified stack.

        :param self:
        :param NextToken:  The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page.<br/>StackName:  The name of the stack.<br/>
        :return: NextToken:  The pagination token to use to retrieve the next page of results for this operation. If there are no more pages, this value is null.<br/>Names:  The name of the fleet.<br/>        """
        pass

    def list_associated_stacks(self, FleetName: str, NextToken: str=None) -> ListAssociatedStacksResult:
        r"""Retrieves the name of the stack with which the specified fleet is associated.

        :param self:
        :param NextToken:  The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page.<br/>FleetName:  The name of the fleet.<br/>
        :return: NextToken:  The pagination token to use to retrieve the next page of results for this operation. If there are no more pages, this value is null.<br/>Names:  The name of the stack.<br/>        """
        pass

    def list_tags_for_resource(self, ResourceArn: str) -> ListTagsForResourceResponse:
        r"""Retrieves a list of all tags for the specified AppStream 2.0 resource. You can tag AppStream 2.0 image builders, images, fleets, and stacks. For more information about tags, see <a href="https://docs.aws.amazon.com/appstream2/latest/developerguide/tagging-basic.html">Tagging Your Resources</a> in the <i>Amazon AppStream 2.0 Administration Guide</i>.

        :param self:
        :param ResourceArn:  The Amazon Resource Name (ARN) of the resource.<br/>
        :return: Tags:  The information about the tags.<br/>        """
        pass

    def start_fleet(self, Name: str) -> StartFleetResult:
        r"""Starts the specified fleet.

        :param self:
        :param Name:  The name of the fleet.<br/>
        :return:         """
        pass

    def start_image_builder(self, Name: str, AppstreamAgentVersion: str=None) -> StartImageBuilderResult:
        r"""Starts the specified image builder.

        :param self:
        :param AppstreamAgentVersion:  The version of the AppStream 2.0 agent to use for this image builder. To use the latest version of the AppStream 2.0 agent, specify [LATEST]. <br/>Name:  The name of the image builder.<br/>
        :return: ImageBuilder:  Information about the image builder.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccessEndpoints</i> The list of virtual private cloud (VPC) interface endpoint objects. Administrators can connect to the image builder only through the specified endpoints.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AppstreamAgentVersion</i> The version of the AppStream 2.0 agent that is currently being used by the image builder. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImageBuilderErrors</i> The image builder errors.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkAccessConfiguration</i> Describes the network details of the fleet or image builder instance.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>NetworkAccessConfiguration</b>: Describes the network details of the fleet or image builder instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainJoinInfo</i> The name of the directory and organizational unit (OU) to use to join the image builder to a Microsoft Active Directory domain. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DomainJoinInfo</b>: The name of the directory and organizational unit (OU) to use to join the image builder to a Microsoft Active Directory domain. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableDefaultInternetAccess</i> Enables or disables default internet access for the image builder.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTime</i> The time stamp when the image builder was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StateChangeReason</i> The reason why the last state change occurred.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StateChangeReason</b>: The reason why the last state change occurred.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the image builder.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IamRoleArn</i> The ARN of the IAM role that is applied to the image builder. To assume a role, the image builder calls the AWS Security Token Service (STS) <code>AssumeRole</code> API operation and passes the ARN of the role to use. The operation creates a new session with temporary credentials. AppStream 2.0 retrieves the temporary credentials and creates the <b>appstream_machine_role</b> credential profile on the instance. For more information, see <a href="https://docs.aws.amazon.com/appstream2/latest/developerguide/using-iam-roles-to-grant-permissions-to-applications-scripts-streaming-instances.html">Using an IAM Role to Grant Permissions to Applications and Scripts Running on AppStream 2.0 Streaming Instances</a> in the <i>Amazon AppStream 2.0 Administration Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Platform</i> The operating system platform of the image builder.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceType</i> The instance type for the image builder. The following instance types are available: <ul> <li> stream.standard.small </li> <li> stream.standard.medium </li> <li> stream.standard.large </li> <li> stream.compute.large </li> <li> stream.compute.xlarge </li> <li> stream.compute.2xlarge </li> <li> stream.compute.4xlarge </li> <li> stream.compute.8xlarge </li> <li> stream.memory.large </li> <li> stream.memory.xlarge </li> <li> stream.memory.2xlarge </li> <li> stream.memory.4xlarge </li> <li> stream.memory.8xlarge </li> <li> stream.memory.z1d.large </li> <li> stream.memory.z1d.xlarge </li> <li> stream.memory.z1d.2xlarge </li> <li> stream.memory.z1d.3xlarge </li> <li> stream.memory.z1d.6xlarge </li> <li> stream.memory.z1d.12xlarge </li> <li> stream.graphics-design.large </li> <li> stream.graphics-design.xlarge </li> <li> stream.graphics-design.2xlarge </li> <li> stream.graphics-design.4xlarge </li> <li> stream.graphics-desktop.2xlarge </li> <li> stream.graphics.g4dn.xlarge </li> <li> stream.graphics.g4dn.2xlarge </li> <li> stream.graphics.g4dn.4xlarge </li> <li> stream.graphics.g4dn.8xlarge </li> <li> stream.graphics.g4dn.12xlarge </li> <li> stream.graphics.g4dn.16xlarge </li> <li> stream.graphics-pro.4xlarge </li> <li> stream.graphics-pro.8xlarge </li> <li> stream.graphics-pro.16xlarge </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcConfig</i> The VPC configuration of the image builder.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>VpcConfig</b>: The VPC configuration of the image builder.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DisplayName</i> The image builder name to display.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description to display.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImageArn</i> The ARN of the image from which this builder was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The ARN for the image builder.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the image builder.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> The identifiers of the security groups for the fleet or image builder.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetIds</i> The identifiers of the subnets to which a network interface is attached from the fleet instance or image builder instance. Fleet instances use one or more subnets. Image builder instances use one subnet.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> The state change reason message.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Code</i> The state change reason code.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OrganizationalUnitDistinguishedName</i> The distinguished name of the organizational unit for computer accounts.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DirectoryName</i> The fully qualified name of the directory (for example, corp.example.com).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EniId</i> The resource identifier of the elastic network interface that is attached to instances in your VPC. All network interfaces have the eni-xxxxxxxx resource identifier.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EniPrivateIpAddress</i> The private IP address of the elastic network interface that is attached to instances in your VPC.<br/>        """
        pass

    def stop_fleet(self, Name: str) -> StopFleetResult:
        r"""Stops the specified fleet.

        :param self:
        :param Name:  The name of the fleet.<br/>
        :return:         """
        pass

    def stop_image_builder(self, Name: str) -> StopImageBuilderResult:
        r"""Stops the specified image builder.

        :param self:
        :param Name:  The name of the image builder.<br/>
        :return: ImageBuilder:  Information about the image builder.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccessEndpoints</i> The list of virtual private cloud (VPC) interface endpoint objects. Administrators can connect to the image builder only through the specified endpoints.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AppstreamAgentVersion</i> The version of the AppStream 2.0 agent that is currently being used by the image builder. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImageBuilderErrors</i> The image builder errors.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkAccessConfiguration</i> Describes the network details of the fleet or image builder instance.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>NetworkAccessConfiguration</b>: Describes the network details of the fleet or image builder instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainJoinInfo</i> The name of the directory and organizational unit (OU) to use to join the image builder to a Microsoft Active Directory domain. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DomainJoinInfo</b>: The name of the directory and organizational unit (OU) to use to join the image builder to a Microsoft Active Directory domain. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableDefaultInternetAccess</i> Enables or disables default internet access for the image builder.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTime</i> The time stamp when the image builder was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StateChangeReason</i> The reason why the last state change occurred.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StateChangeReason</b>: The reason why the last state change occurred.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the image builder.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IamRoleArn</i> The ARN of the IAM role that is applied to the image builder. To assume a role, the image builder calls the AWS Security Token Service (STS) <code>AssumeRole</code> API operation and passes the ARN of the role to use. The operation creates a new session with temporary credentials. AppStream 2.0 retrieves the temporary credentials and creates the <b>appstream_machine_role</b> credential profile on the instance. For more information, see <a href="https://docs.aws.amazon.com/appstream2/latest/developerguide/using-iam-roles-to-grant-permissions-to-applications-scripts-streaming-instances.html">Using an IAM Role to Grant Permissions to Applications and Scripts Running on AppStream 2.0 Streaming Instances</a> in the <i>Amazon AppStream 2.0 Administration Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Platform</i> The operating system platform of the image builder.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceType</i> The instance type for the image builder. The following instance types are available: <ul> <li> stream.standard.small </li> <li> stream.standard.medium </li> <li> stream.standard.large </li> <li> stream.compute.large </li> <li> stream.compute.xlarge </li> <li> stream.compute.2xlarge </li> <li> stream.compute.4xlarge </li> <li> stream.compute.8xlarge </li> <li> stream.memory.large </li> <li> stream.memory.xlarge </li> <li> stream.memory.2xlarge </li> <li> stream.memory.4xlarge </li> <li> stream.memory.8xlarge </li> <li> stream.memory.z1d.large </li> <li> stream.memory.z1d.xlarge </li> <li> stream.memory.z1d.2xlarge </li> <li> stream.memory.z1d.3xlarge </li> <li> stream.memory.z1d.6xlarge </li> <li> stream.memory.z1d.12xlarge </li> <li> stream.graphics-design.large </li> <li> stream.graphics-design.xlarge </li> <li> stream.graphics-design.2xlarge </li> <li> stream.graphics-design.4xlarge </li> <li> stream.graphics-desktop.2xlarge </li> <li> stream.graphics.g4dn.xlarge </li> <li> stream.graphics.g4dn.2xlarge </li> <li> stream.graphics.g4dn.4xlarge </li> <li> stream.graphics.g4dn.8xlarge </li> <li> stream.graphics.g4dn.12xlarge </li> <li> stream.graphics.g4dn.16xlarge </li> <li> stream.graphics-pro.4xlarge </li> <li> stream.graphics-pro.8xlarge </li> <li> stream.graphics-pro.16xlarge </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcConfig</i> The VPC configuration of the image builder.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>VpcConfig</b>: The VPC configuration of the image builder.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DisplayName</i> The image builder name to display.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description to display.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImageArn</i> The ARN of the image from which this builder was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The ARN for the image builder.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the image builder.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> The identifiers of the security groups for the fleet or image builder.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetIds</i> The identifiers of the subnets to which a network interface is attached from the fleet instance or image builder instance. Fleet instances use one or more subnets. Image builder instances use one subnet.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> The state change reason message.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Code</i> The state change reason code.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OrganizationalUnitDistinguishedName</i> The distinguished name of the organizational unit for computer accounts.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DirectoryName</i> The fully qualified name of the directory (for example, corp.example.com).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EniId</i> The resource identifier of the elastic network interface that is attached to instances in your VPC. All network interfaces have the eni-xxxxxxxx resource identifier.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EniPrivateIpAddress</i> The private IP address of the elastic network interface that is attached to instances in your VPC.<br/>        """
        pass

    def tag_resource(self, Tags: Tags, ResourceArn: str) -> TagResourceResponse:
        r"""Adds or overwrites one or more tags for the specified AppStream 2.0 resource. You can tag AppStream 2.0 image builders, images, fleets, and stacks. Each tag consists of a key and an optional value. If a resource already has a tag with the same key, this operation updates its value. To list the current tags for your resources, use <a>ListTagsForResource</a>. To disassociate tags from your resources, use <a>UntagResource</a>. For more information about tags, see <a href="https://docs.aws.amazon.com/appstream2/latest/developerguide/tagging-basic.html">Tagging Your Resources</a> in the <i>Amazon AppStream 2.0 Administration Guide</i>.

        :param self:
        :param Tags:  The tags to associate. A tag is a key-value pair, and the value is optional. For example, Environment=Test. If you do not specify a value, Environment=.  If you do not specify a value, the value is set to an empty string. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following special characters:  _ . : / = + \ - @<br/>ResourceArn:  The Amazon Resource Name (ARN) of the resource.<br/>
        :return:         """
        pass

    def untag_resource(self, TagKeys: List[TagKey], ResourceArn: str) -> UntagResourceResponse:
        r"""Disassociates one or more specified tags from the specified AppStream 2.0 resource. To list the current tags for your resources, use <a>ListTagsForResource</a>. For more information about tags, see <a href="https://docs.aws.amazon.com/appstream2/latest/developerguide/tagging-basic.html">Tagging Your Resources</a> in the <i>Amazon AppStream 2.0 Administration Guide</i>.

        :param self:
        :param TagKeys:  The tag keys for the tags to disassociate.<br/>ResourceArn:  The Amazon Resource Name (ARN) of the resource.<br/>
        :return:         """
        pass

    def update_directory_config(self, DirectoryName: str, OrganizationalUnitDistinguishedNames: List[OrganizationalUnitDistinguishedName]=None, ServiceAccountCredentials: ServiceAccountCredentials=None) -> UpdateDirectoryConfigResult:
        r"""Updates the specified Directory Config object in AppStream 2.0. This object includes the configuration information required to join fleets and image builders to Microsoft Active Directory domains.

        :param self:
        :param ServiceAccountCredentials:  The credentials for the service account used by the fleet or image builder to connect to the directory.:<br/>OrganizationalUnitDistinguishedNames:  The distinguished names of the organizational units for computer accounts.<br/>DirectoryName:  The name of the Directory Config object.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccountPassword</i> The password for the account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccountName</i> The user name of the account. This account must have the following privileges: create computer objects, join computers to the domain, and change/reset the password on descendant computer objects for the organizational units specified.<br/>
        :return: DirectoryConfig:  Information about the Directory Config object.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTime</i> The time the directory configuration was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceAccountCredentials</i> The credentials for the service account used by the fleet or image builder to connect to the directory.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ServiceAccountCredentials</b>: The credentials for the service account used by the fleet or image builder to connect to the directory.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OrganizationalUnitDistinguishedNames</i> The distinguished names of the organizational units for computer accounts.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DirectoryName</i> The fully qualified name of the directory (for example, corp.example.com).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AccountPassword</i> The password for the account.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AccountName</i> The user name of the account. This account must have the following privileges: create computer objects, join computers to the domain, and change/reset the password on descendant computer objects for the organizational units specified.<br/>        """
        pass

    def update_fleet(self, ImageName: str=None, ImageArn: str=None, Name: str=None, InstanceType: str=None, ComputeCapacity: ComputeCapacity=None, VpcConfig: VpcConfig=None, MaxUserDurationInSeconds: int=None, DisconnectTimeoutInSeconds: int=None, DeleteVpcConfig: Boolean=None, Description: str=None, DisplayName: str=None, EnableDefaultInternetAccess: BooleanObject=None, DomainJoinInfo: DomainJoinInfo=None, IdleDisconnectTimeoutInSeconds: int=None, AttributesToDelete: List[FleetAttribute]=None, IamRoleArn: str=None, StreamView: str=None) -> UpdateFleetResult:
        r"""Updates the specified fleet. If the fleet is in the <code>STOPPED</code> state, you can update any attribute except the fleet name. If the fleet is in the <code>RUNNING</code> state, you can update the <code>DisplayName</code>, <code>ComputeCapacity</code>, <code>ImageARN</code>, <code>ImageName</code>, <code>IdleDisconnectTimeoutInSeconds</code>, and <code>DisconnectTimeoutInSeconds</code> attributes. If the fleet is in the <code>STARTING</code> or <code>STOPPING</code> state, you can't update it.

        :param self:
        :param StreamView:  The AppStream 2.0 view that is displayed to your users when they stream from the fleet. When <code>APP</code> is specified, only the windows of applications opened by users display. When <code>DESKTOP</code> is specified, the standard desktop that is provided by the operating system displays. The default value is <code>APP</code>.<br/>IamRoleArn:  The Amazon Resource Name (ARN) of the IAM role to apply to the fleet. To assume a role, a fleet instance calls the AWS Security Token Service (STS) <code>AssumeRole</code> API operation and passes the ARN of the role to use. The operation creates a new session with temporary credentials. AppStream 2.0 retrieves the temporary credentials and creates the <b>appstream_machine_role</b> credential profile on the instance. For more information, see <a href="https://docs.aws.amazon.com/appstream2/latest/developerguide/using-iam-roles-to-grant-permissions-to-applications-scripts-streaming-instances.html">Using an IAM Role to Grant Permissions to Applications and Scripts Running on AppStream 2.0 Streaming Instances</a> in the <i>Amazon AppStream 2.0 Administration Guide</i>.<br/>AttributesToDelete:  The fleet attributes to delete.<br/>IdleDisconnectTimeoutInSeconds:  The amount of time that users can be idle (inactive) before they are disconnected from their streaming session and the <code>DisconnectTimeoutInSeconds</code> time interval begins. Users are notified before they are disconnected due to inactivity. If users try to reconnect to the streaming session before the time interval specified in <code>DisconnectTimeoutInSeconds</code> elapses, they are connected to their previous session. Users are considered idle when they stop providing keyboard or mouse input during their streaming session. File uploads and downloads, audio in, audio out, and pixels changing do not qualify as user activity. If users continue to be idle after the time interval in <code>IdleDisconnectTimeoutInSeconds</code> elapses, they are disconnected.  To prevent users from being disconnected due to inactivity, specify a value of 0. Otherwise, specify a value between 60 and 3600. The default value is 0. <note> If you enable this feature, we recommend that you specify a value that corresponds exactly to a whole number of minutes (for example, 60, 120, and 180). If you don't do this, the value is rounded to the nearest minute. For example, if you specify a value of 70, users are disconnected after 1 minute of inactivity. If you specify a value that is at the midpoint between two different minutes, the value is rounded up. For example, if you specify a value of 90, users are disconnected after 2 minutes of inactivity.  </note><br/>DomainJoinInfo:  The name of the directory and organizational unit (OU) to use to join the fleet to a Microsoft Active Directory domain. :<br/>EnableDefaultInternetAccess:  Enables or disables default internet access for the fleet.<br/>DisplayName:  The fleet name to display.<br/>Description:  The description to display.<br/>DeleteVpcConfig:  Deletes the VPC association for the specified fleet.<br/>DisconnectTimeoutInSeconds:  The amount of time that a streaming session remains active after users disconnect. If users try to reconnect to the streaming session after a disconnection or network interruption within this time interval, they are connected to their previous session. Otherwise, they are connected to a new session with a new streaming instance.  Specify a value between 60 and 360000.<br/>MaxUserDurationInSeconds:  The maximum amount of time that a streaming session can remain active, in seconds. If users are still connected to a streaming instance five minutes before this limit is reached, they are prompted to save any open documents before being disconnected. After this time elapses, the instance is terminated and replaced by a new instance. Specify a value between 600 and 360000.<br/>VpcConfig:  The VPC configuration for the fleet.:<br/>ComputeCapacity:  The desired capacity for the fleet.:<br/>InstanceType:  The instance type to use when launching fleet instances. The following instance types are available: <ul> <li> stream.standard.small </li> <li> stream.standard.medium </li> <li> stream.standard.large </li> <li> stream.compute.large </li> <li> stream.compute.xlarge </li> <li> stream.compute.2xlarge </li> <li> stream.compute.4xlarge </li> <li> stream.compute.8xlarge </li> <li> stream.memory.large </li> <li> stream.memory.xlarge </li> <li> stream.memory.2xlarge </li> <li> stream.memory.4xlarge </li> <li> stream.memory.8xlarge </li> <li> stream.memory.z1d.large </li> <li> stream.memory.z1d.xlarge </li> <li> stream.memory.z1d.2xlarge </li> <li> stream.memory.z1d.3xlarge </li> <li> stream.memory.z1d.6xlarge </li> <li> stream.memory.z1d.12xlarge </li> <li> stream.graphics-design.large </li> <li> stream.graphics-design.xlarge </li> <li> stream.graphics-design.2xlarge </li> <li> stream.graphics-design.4xlarge </li> <li> stream.graphics-desktop.2xlarge </li> <li> stream.graphics.g4dn.xlarge </li> <li> stream.graphics.g4dn.2xlarge </li> <li> stream.graphics.g4dn.4xlarge </li> <li> stream.graphics.g4dn.8xlarge </li> <li> stream.graphics.g4dn.12xlarge </li> <li> stream.graphics.g4dn.16xlarge </li> <li> stream.graphics-pro.4xlarge </li> <li> stream.graphics-pro.8xlarge </li> <li> stream.graphics-pro.16xlarge </li> </ul><br/>Name:  A unique name for the fleet.<br/>ImageArn:  The ARN of the public, private, or shared image to use.<br/>ImageName:  The name of the image used to create the fleet.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DesiredInstances</i> The desired number of streaming instances.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> The identifiers of the security groups for the fleet or image builder.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetIds</i> The identifiers of the subnets to which a network interface is attached from the fleet instance or image builder instance. Fleet instances use one or more subnets. Image builder instances use one subnet.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OrganizationalUnitDistinguishedName</i> The distinguished name of the organizational unit for computer accounts.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DirectoryName</i> The fully qualified name of the directory (for example, corp.example.com).<br/>
        :return: Fleet:  Information about the fleet.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamView</i> The AppStream 2.0 view that is displayed to your users when they stream from the fleet. When <code>APP</code> is specified, only the windows of applications opened by users display. When <code>DESKTOP</code> is specified, the standard desktop that is provided by the operating system displays. The default value is <code>APP</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IamRoleArn</i> The ARN of the IAM role that is applied to the fleet. To assume a role, the fleet instance calls the AWS Security Token Service (STS) <code>AssumeRole</code> API operation and passes the ARN of the role to use. The operation creates a new session with temporary credentials. AppStream 2.0 retrieves the temporary credentials and creates the <b>appstream_machine_role</b> credential profile on the instance. For more information, see <a href="https://docs.aws.amazon.com/appstream2/latest/developerguide/using-iam-roles-to-grant-permissions-to-applications-scripts-streaming-instances.html">Using an IAM Role to Grant Permissions to Applications and Scripts Running on AppStream 2.0 Streaming Instances</a> in the <i>Amazon AppStream 2.0 Administration Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IdleDisconnectTimeoutInSeconds</i> The amount of time that users can be idle (inactive) before they are disconnected from their streaming session and the <code>DisconnectTimeoutInSeconds</code> time interval begins. Users are notified before they are disconnected due to inactivity. If users try to reconnect to the streaming session before the time interval specified in <code>DisconnectTimeoutInSeconds</code> elapses, they are connected to their previous session. Users are considered idle when they stop providing keyboard or mouse input during their streaming session. File uploads and downloads, audio in, audio out, and pixels changing do not qualify as user activity. If users continue to be idle after the time interval in <code>IdleDisconnectTimeoutInSeconds</code> elapses, they are disconnected. To prevent users from being disconnected due to inactivity, specify a value of 0. Otherwise, specify a value between 60 and 3600. The default value is 0. <note> If you enable this feature, we recommend that you specify a value that corresponds exactly to a whole number of minutes (for example, 60, 120, and 180). If you don't do this, the value is rounded to the nearest minute. For example, if you specify a value of 70, users are disconnected after 1 minute of inactivity. If you specify a value that is at the midpoint between two different minutes, the value is rounded up. For example, if you specify a value of 90, users are disconnected after 2 minutes of inactivity.  </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainJoinInfo</i> The name of the directory and organizational unit (OU) to use to join the fleet to a Microsoft Active Directory domain. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DomainJoinInfo</b>: The name of the directory and organizational unit (OU) to use to join the fleet to a Microsoft Active Directory domain. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableDefaultInternetAccess</i> Indicates whether default internet access is enabled for the fleet.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FleetErrors</i> The fleet errors.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTime</i> The time the fleet was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcConfig</i> The VPC configuration for the fleet.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>VpcConfig</b>: The VPC configuration for the fleet.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The current state for the fleet.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DisconnectTimeoutInSeconds</i> The amount of time that a streaming session remains active after users disconnect. If they try to reconnect to the streaming session after a disconnection or network interruption within this time interval, they are connected to their previous session. Otherwise, they are connected to a new session with a new streaming instance. Specify a value between 60 and 360000.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxUserDurationInSeconds</i> The maximum amount of time that a streaming session can remain active, in seconds. If users are still connected to a streaming instance five minutes before this limit is reached, they are prompted to save any open documents before being disconnected. After this time elapses, the instance is terminated and replaced by a new instance.  Specify a value between 600 and 360000.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ComputeCapacityStatus</i> The capacity status for the fleet.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ComputeCapacityStatus</b>: The capacity status for the fleet.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FleetType</i> The fleet type. <dl> <dt>ALWAYS_ON</dt> <dd> Provides users with instant-on access to their apps. You are charged for all running instances in your fleet, even if no users are streaming apps. </dd> <dt>ON_DEMAND</dt> <dd> Provide users with access to applications after they connect, which takes one to two minutes. You are charged for instance streaming when users are connected and a small hourly fee for instances that are not streaming apps. </dd> </dl><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceType</i> The instance type to use when launching fleet instances. The following instance types are available: <ul> <li> stream.standard.small </li> <li> stream.standard.medium </li> <li> stream.standard.large </li> <li> stream.compute.large </li> <li> stream.compute.xlarge </li> <li> stream.compute.2xlarge </li> <li> stream.compute.4xlarge </li> <li> stream.compute.8xlarge </li> <li> stream.memory.large </li> <li> stream.memory.xlarge </li> <li> stream.memory.2xlarge </li> <li> stream.memory.4xlarge </li> <li> stream.memory.8xlarge </li> <li> stream.memory.z1d.large </li> <li> stream.memory.z1d.xlarge </li> <li> stream.memory.z1d.2xlarge </li> <li> stream.memory.z1d.3xlarge </li> <li> stream.memory.z1d.6xlarge </li> <li> stream.memory.z1d.12xlarge </li> <li> stream.graphics-design.large </li> <li> stream.graphics-design.xlarge </li> <li> stream.graphics-design.2xlarge </li> <li> stream.graphics-design.4xlarge </li> <li> stream.graphics-desktop.2xlarge </li> <li> stream.graphics.g4dn.xlarge </li> <li> stream.graphics.g4dn.2xlarge </li> <li> stream.graphics.g4dn.4xlarge </li> <li> stream.graphics.g4dn.8xlarge </li> <li> stream.graphics.g4dn.12xlarge </li> <li> stream.graphics.g4dn.16xlarge </li> <li> stream.graphics-pro.4xlarge </li> <li> stream.graphics-pro.8xlarge </li> <li> stream.graphics-pro.16xlarge </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImageArn</i> The ARN for the public, private, or shared image.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImageName</i> The name of the image used to create the fleet.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description to display.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DisplayName</i> The fleet name to display.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the fleet.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) for the fleet.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Available</i> The number of currently available instances that can be used to stream sessions.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InUse</i> The number of instances in use for streaming.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Running</i> The total number of simultaneous streaming instances that are running.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Desired</i> The desired number of streaming instances.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> The identifiers of the security groups for the fleet or image builder.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetIds</i> The identifiers of the subnets to which a network interface is attached from the fleet instance or image builder instance. Fleet instances use one or more subnets. Image builder instances use one subnet.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OrganizationalUnitDistinguishedName</i> The distinguished name of the organizational unit for computer accounts.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DirectoryName</i> The fully qualified name of the directory (for example, corp.example.com).<br/>        """
        pass

    def update_image_permissions(self, ImagePermissions: ImagePermissions, SharedAccountId: str, Name: str) -> UpdateImagePermissionsResult:
        r"""Adds or updates permissions for the specified private image. 

        :param self:
        :param ImagePermissions:  The permissions for the image.:<br/>SharedAccountId:  The 12-digit identifier of the AWS account for which you want add or update image permissions.<br/>Name:  The name of the private image.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>allowImageBuilder</i> Indicates whether the image can be used for an image builder.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>allowFleet</i> Indicates whether the image can be used for a fleet.<br/>
        :return:         """
        pass

    def update_stack(self, Name: str, DisplayName: str=None, Description: str=None, StorageConnectors: List[StorageConnector]=None, DeleteStorageConnectors: Boolean=None, RedirectURL: str=None, FeedbackURL: str=None, AttributesToDelete: List[StackAttribute]=None, UserSettings: List[UserSetting]=None, ApplicationSettings: ApplicationSettings=None, AccessEndpoints: List[AccessEndpoint]=None, EmbedHostDomains: List[EmbedHostDomain]=None) -> UpdateStackResult:
        r"""Updates the specified fields for the specified stack.

        :param self:
        :param EmbedHostDomains:  The domains where AppStream 2.0 streaming sessions can be embedded in an iframe. You must approve the domains that you want to host embedded AppStream 2.0 streaming sessions. <br/>AccessEndpoints:  The list of interface VPC endpoint (interface endpoint) objects. Users of the stack can connect to AppStream 2.0 only through the specified endpoints.<br/>ApplicationSettings:  The persistent application settings for users of a stack. When these settings are enabled, changes that users make to applications and Windows settings are automatically saved after each session and applied to the next session.:<br/>UserSettings:  The actions that are enabled or disabled for users during their streaming sessions. By default, these actions are enabled.<br/>AttributesToDelete:  The stack attributes to delete.<br/>FeedbackURL:  The URL that users are redirected to after they choose the Send Feedback link. If no URL is specified, no Send Feedback link is displayed.<br/>RedirectURL:  The URL that users are redirected to after their streaming session ends.<br/>DeleteStorageConnectors:  Deletes the storage connectors currently enabled for the stack.<br/>StorageConnectors:  The storage connectors to enable.<br/>Name:  The name of the stack.<br/>Description:  The description to display.<br/>DisplayName:  The stack name to display.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SettingsGroup</i> The path prefix for the S3 bucket where users’ persistent application settings are stored. You can allow the same persistent application settings to be used across multiple stacks by specifying the same settings group for each stack. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Enables or disables persistent application settings for users during their streaming sessions. <br/>
        :return: Stack:  Information about the stack.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EmbedHostDomains</i> The domains where AppStream 2.0 streaming sessions can be embedded in an iframe. You must approve the domains that you want to host embedded AppStream 2.0 streaming sessions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccessEndpoints</i> The list of virtual private cloud (VPC) interface endpoint objects. Users of the stack can connect to AppStream 2.0 only through the specified endpoints. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationSettings</i> The persistent application settings for users of the stack.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ApplicationSettings</b>: The persistent application settings for users of the stack.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserSettings</i> The actions that are enabled or disabled for users during their streaming sessions. By default these actions are enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StackErrors</i> The errors for the stack.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FeedbackURL</i> The URL that users are redirected to after they click the Send Feedback link. If no URL is specified, no Send Feedback link is displayed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RedirectURL</i> The URL that users are redirected to after their streaming session ends.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageConnectors</i> The storage connectors to enable.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTime</i> The time the stack was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DisplayName</i> The stack name to display.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description to display.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the stack.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The ARN of the stack.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3BucketName</i> The S3 bucket where users’ persistent application settings are stored. When persistent application settings are enabled for the first time for an account in an AWS Region, an S3 bucket is created. The bucket is unique to the AWS account and the Region. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SettingsGroup</i> The path prefix for the S3 bucket where users’ persistent application settings are stored.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specifies whether persistent application settings are enabled for users during their streaming sessions.<br/>        """
        pass





class AppSync(BaseClient):
    r"""AWS AppSync provides API actions for creating and interacting with data sources using GraphQL from your application."""


    class ListApiKeysPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_api_keys` for valid parameters"""
            pass
    class ListDataSourcesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_data_sources` for valid parameters"""
            pass
    class ListFunctionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_functions` for valid parameters"""
            pass
    class ListGraphqlApisPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_graphql_apis` for valid parameters"""
            pass
    class ListResolversPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_resolvers` for valid parameters"""
            pass
    class ListResolversByFunctionPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_resolvers_by_function` for valid parameters"""
            pass
    class ListTypesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_types` for valid parameters"""
            pass


    class CreateApiCacheRequest(Mapping):
        pass
    
    class CreateApiCacheResponse(Mapping):
        pass
    
    class Long(object):
        pass
    
    class Boolean(object):
        pass
    
    class CreateApiKeyRequest(Mapping):
        pass
    
    class CreateApiKeyResponse(Mapping):
        pass
    
    class CreateDataSourceRequest(Mapping):
        pass
    
    class CreateDataSourceResponse(Mapping):
        pass
    
    class DynamodbDataSourceConfig(Mapping):
        pass
    
    class LambdaDataSourceConfig(Mapping):
        pass
    
    class ElasticsearchDataSourceConfig(Mapping):
        pass
    
    class HttpDataSourceConfig(Mapping):
        pass
    
    class RelationalDatabaseDataSourceConfig(Mapping):
        pass
    
    class CreateFunctionRequest(Mapping):
        pass
    
    class CreateFunctionResponse(Mapping):
        pass
    
    class SyncConfig(Mapping):
        pass
    
    class CreateGraphqlApiRequest(Mapping):
        pass
    
    class CreateGraphqlApiResponse(Mapping):
        pass
    
    class LogConfig(Mapping):
        pass
    
    class UserPoolConfig(Mapping):
        pass
    
    class OpenIDConnectConfig(Mapping):
        pass
    
    class TagMap(object):
        pass
    
    class AdditionalAuthenticationProvider(Mapping):
        pass
    
    class CreateResolverRequest(Mapping):
        pass
    
    class CreateResolverResponse(Mapping):
        pass
    
    class PipelineConfig(Mapping):
        pass
    
    class CachingConfig(Mapping):
        pass
    
    class CreateTypeRequest(Mapping):
        pass
    
    class CreateTypeResponse(Mapping):
        pass
    
    class DeleteApiCacheRequest(Mapping):
        pass
    
    class DeleteApiCacheResponse(Mapping):
        pass
    
    class DeleteApiKeyRequest(Mapping):
        pass
    
    class DeleteApiKeyResponse(Mapping):
        pass
    
    class DeleteDataSourceRequest(Mapping):
        pass
    
    class DeleteDataSourceResponse(Mapping):
        pass
    
    class DeleteFunctionRequest(Mapping):
        pass
    
    class DeleteFunctionResponse(Mapping):
        pass
    
    class DeleteGraphqlApiRequest(Mapping):
        pass
    
    class DeleteGraphqlApiResponse(Mapping):
        pass
    
    class DeleteResolverRequest(Mapping):
        pass
    
    class DeleteResolverResponse(Mapping):
        pass
    
    class DeleteTypeRequest(Mapping):
        pass
    
    class DeleteTypeResponse(Mapping):
        pass
    
    class FlushApiCacheRequest(Mapping):
        pass
    
    class FlushApiCacheResponse(Mapping):
        pass
    
    class GetApiCacheRequest(Mapping):
        pass
    
    class GetApiCacheResponse(Mapping):
        pass
    
    class GetDataSourceRequest(Mapping):
        pass
    
    class GetDataSourceResponse(Mapping):
        pass
    
    class GetFunctionRequest(Mapping):
        pass
    
    class GetFunctionResponse(Mapping):
        pass
    
    class GetGraphqlApiRequest(Mapping):
        pass
    
    class GetGraphqlApiResponse(Mapping):
        pass
    
    class GetIntrospectionSchemaRequest(Mapping):
        pass
    
    class GetIntrospectionSchemaResponse(Mapping):
        pass
    
    class BooleanValue(object):
        pass
    
    class GetResolverRequest(Mapping):
        pass
    
    class GetResolverResponse(Mapping):
        pass
    
    class GetSchemaCreationStatusRequest(Mapping):
        pass
    
    class GetSchemaCreationStatusResponse(Mapping):
        pass
    
    class GetTypeRequest(Mapping):
        pass
    
    class GetTypeResponse(Mapping):
        pass
    
    class ListApiKeysRequest(Mapping):
        pass
    
    class ListApiKeysResponse(Mapping):
        pass
    
    class ListDataSourcesRequest(Mapping):
        pass
    
    class ListDataSourcesResponse(Mapping):
        pass
    
    class ListFunctionsRequest(Mapping):
        pass
    
    class ListFunctionsResponse(Mapping):
        pass
    
    class ListGraphqlApisRequest(Mapping):
        pass
    
    class ListGraphqlApisResponse(Mapping):
        pass
    
    class ListResolversRequest(Mapping):
        pass
    
    class ListResolversResponse(Mapping):
        pass
    
    class ListResolversByFunctionRequest(Mapping):
        pass
    
    class ListResolversByFunctionResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class ListTypesRequest(Mapping):
        pass
    
    class ListTypesResponse(Mapping):
        pass
    
    class StartSchemaCreationRequest(Mapping):
        pass
    
    class StartSchemaCreationResponse(Mapping):
        pass
    
    class Blob(object):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateApiCacheRequest(Mapping):
        pass
    
    class UpdateApiCacheResponse(Mapping):
        pass
    
    class UpdateApiKeyRequest(Mapping):
        pass
    
    class UpdateApiKeyResponse(Mapping):
        pass
    
    class UpdateDataSourceRequest(Mapping):
        pass
    
    class UpdateDataSourceResponse(Mapping):
        pass
    
    class UpdateFunctionRequest(Mapping):
        pass
    
    class UpdateFunctionResponse(Mapping):
        pass
    
    class UpdateGraphqlApiRequest(Mapping):
        pass
    
    class UpdateGraphqlApiResponse(Mapping):
        pass
    
    class UpdateResolverRequest(Mapping):
        pass
    
    class UpdateResolverResponse(Mapping):
        pass
    
    class UpdateTypeRequest(Mapping):
        pass
    
    class UpdateTypeResponse(Mapping):
        pass
    
    def create_api_cache(self, type: str, apiCachingBehavior: str, ttl: Long, apiId: str, transitEncryptionEnabled: Boolean=None, atRestEncryptionEnabled: Boolean=None) -> CreateApiCacheResponse:
        r"""Creates a cache for the GraphQL API.

        :param self:
        :param type:  The cache instance type. Valid values are  <ul> <li>  <code>SMALL</code>  </li> <li>  <code>MEDIUM</code>  </li> <li>  <code>LARGE</code>  </li> <li>  <code>XLARGE</code>  </li> <li>  <code>LARGE_2X</code>  </li> <li>  <code>LARGE_4X</code>  </li> <li>  <code>LARGE_8X</code> (not available in all regions) </li> <li>  <code>LARGE_12X</code>  </li> </ul> Historically, instance types were identified by an EC2-style value. As of July 2020, this is deprecated, and the generic identifiers above should be used. The following legacy instance types are available, but their use is discouraged: <ul> <li>  <b>T2_SMALL</b>: A t2.small instance type. </li> <li>  <b>T2_MEDIUM</b>: A t2.medium instance type. </li> <li>  <b>R4_LARGE</b>: A r4.large instance type. </li> <li>  <b>R4_XLARGE</b>: A r4.xlarge instance type. </li> <li>  <b>R4_2XLARGE</b>: A r4.2xlarge instance type. </li> <li>  <b>R4_4XLARGE</b>: A r4.4xlarge instance type. </li> <li>  <b>R4_8XLARGE</b>: A r4.8xlarge instance type. </li> </ul><br/>apiCachingBehavior:  Caching behavior. <ul> <li>  <b>FULL_REQUEST_CACHING</b>: All requests are fully cached. </li> <li>  <b>PER_RESOLVER_CACHING</b>: Individual resolvers that you specify are cached. </li> </ul><br/>atRestEncryptionEnabled:  At rest encryption flag for cache. This setting cannot be updated after creation.<br/>transitEncryptionEnabled:  Transit encryption flag when connecting to cache. This setting cannot be updated after creation.<br/>ttl:  TTL in seconds for cache entries. Valid values are between 1 and 3600 seconds.<br/>apiId:  The GraphQL API Id.<br/>
        :return: apiCache:  The <code>ApiCache</code> object.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The cache instance status. <ul> <li>  <b>AVAILABLE</b>: The instance is available for use. </li> <li>  <b>CREATING</b>: The instance is currently creating. </li> <li>  <b>DELETING</b>: The instance is currently deleting. </li> <li>  <b>MODIFYING</b>: The instance is currently modifying. </li> <li>  <b>FAILED</b>: The instance has failed creation. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The cache instance type. Valid values are  <ul> <li>  <code>SMALL</code>  </li> <li>  <code>MEDIUM</code>  </li> <li>  <code>LARGE</code>  </li> <li>  <code>XLARGE</code>  </li> <li>  <code>LARGE_2X</code>  </li> <li>  <code>LARGE_4X</code>  </li> <li>  <code>LARGE_8X</code> (not available in all regions) </li> <li>  <code>LARGE_12X</code>  </li> </ul> Historically, instance types were identified by an EC2-style value. As of July 2020, this is deprecated, and the generic identifiers above should be used. The following legacy instance types are available, but their use is discouraged: <ul> <li>  <b>T2_SMALL</b>: A t2.small instance type. </li> <li>  <b>T2_MEDIUM</b>: A t2.medium instance type. </li> <li>  <b>R4_LARGE</b>: A r4.large instance type. </li> <li>  <b>R4_XLARGE</b>: A r4.xlarge instance type. </li> <li>  <b>R4_2XLARGE</b>: A r4.2xlarge instance type. </li> <li>  <b>R4_4XLARGE</b>: A r4.4xlarge instance type. </li> <li>  <b>R4_8XLARGE</b>: A r4.8xlarge instance type. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>atRestEncryptionEnabled</i> At rest encryption flag for cache. This setting cannot be updated after creation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>transitEncryptionEnabled</i> Transit encryption flag when connecting to cache. This setting cannot be updated after creation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>apiCachingBehavior</i> Caching behavior. <ul> <li>  <b>FULL_REQUEST_CACHING</b>: All requests are fully cached. </li> <li>  <b>PER_RESOLVER_CACHING</b>: Individual resolvers that you specify are cached. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ttl</i> TTL in seconds for cache entries. Valid values are between 1 and 3600 seconds.<br/>        """
        pass

    def create_api_key(self, apiId: str, description: str=None, expires: Long=None) -> CreateApiKeyResponse:
        r"""Creates a unique key that you can distribute to clients who are executing your API.

        :param self:
        :param expires:  The time from creation time after which the API key expires. The date is represented as seconds since the epoch, rounded down to the nearest hour. The default value for this parameter is 7 days from creation time. For more information, see .<br/>description:  A description of the purpose of the API key.<br/>apiId:  The ID for your GraphQL API.<br/>
        :return: apiKey:  The API key.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deletes</i> The time after which the API key is deleted. The date is represented as seconds since the epoch, rounded down to the nearest hour.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>expires</i> The time after which the API key expires. The date is represented as seconds since the epoch, rounded down to the nearest hour.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> A description of the purpose of the API key.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The API key ID.<br/>        """
        pass

    def create_data_source(self, type: str, name: str, apiId: str, description: str=None, serviceRoleArn: str=None, dynamodbConfig: DynamodbDataSourceConfig=None, lambdaConfig: LambdaDataSourceConfig=None, elasticsearchConfig: ElasticsearchDataSourceConfig=None, httpConfig: HttpDataSourceConfig=None, relationalDatabaseConfig: RelationalDatabaseDataSourceConfig=None) -> CreateDataSourceResponse:
        r"""Creates a <code>DataSource</code> object.

        :param self:
        :param relationalDatabaseConfig:  Relational database settings.:<br/>httpConfig:  HTTP endpoint settings.:<br/>elasticsearchConfig:  Amazon Elasticsearch Service settings.:<br/>lambdaConfig:  AWS Lambda settings.:<br/>dynamodbConfig:  Amazon DynamoDB settings.:<br/>serviceRoleArn:  The AWS IAM service role ARN for the data source. The system assumes this role when accessing the data source.<br/>type:  The type of the <code>DataSource</code>.<br/>description:  A description of the <code>DataSource</code>.<br/>name:  A user-supplied name for the <code>DataSource</code>.<br/>apiId:  The API ID for the GraphQL API for the <code>DataSource</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>versioned</i> Set to TRUE to use Conflict Detection and Resolution with this data source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deltaSyncConfig</i> The <code>DeltaSyncConfig</code> for a versioned datasource.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>deltaSyncConfig</b>: The <code>DeltaSyncConfig</code> for a versioned datasource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>useCallerCredentials</i> Set to TRUE to use Amazon Cognito credentials with this data source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>awsRegion</i> The AWS Region.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tableName</i> The table name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>deltaSyncTableTTL</i> The number of minutes a Delta Sync log entry is stored in the Delta Sync table.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>deltaSyncTableName</i> The Delta Sync table name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>baseTableTTL</i> The number of minutes an Item is stored in the datasource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lambdaFunctionArn</i> The ARN for the Lambda function.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>awsRegion</i> The AWS Region.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>endpoint</i> The endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>authorizationConfig</i> The authorization config in case the HTTP endpoint requires authorization.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>authorizationConfig</b>: The authorization config in case the HTTP endpoint requires authorization.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>endpoint</i> The HTTP URL endpoint. You can either specify the domain name or IP, and port combination, and the URL scheme must be HTTP or HTTPS. If the port is not specified, AWS AppSync uses the default port 80 for the HTTP endpoint and port 443 for HTTPS endpoints.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>authorizationType</i> The authorization type required by the HTTP endpoint. <ul> <li>  <b>AWS_IAM</b>: The authorization type is Sigv4. </li> </ul><br/>The AWS IAM settings.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>awsIamConfig</b>: The AWS IAM settings.&nbsp;&nbsp;&nbsp;&nbsp; <i>rdsHttpEndpointConfig</i> Amazon RDS HTTP endpoint settings.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>rdsHttpEndpointConfig</b>: Amazon RDS HTTP endpoint settings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>relationalDatabaseSourceType</i> Source type for the relational database. <ul> <li>  <b>RDS_HTTP_ENDPOINT</b>: The relational database source type is an Amazon RDS HTTP endpoint. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>awsSecretStoreArn</i> AWS secret store ARN for database credentials.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>schema</i> Logical schema name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>databaseName</i> Logical database name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>dbClusterIdentifier</i> Amazon RDS cluster ARN.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>awsRegion</i> AWS Region for RDS HTTP endpoint.<br/>
        :return: dataSource:  The <code>DataSource</code> object.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>relationalDatabaseConfig</i> Relational database settings.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>relationalDatabaseConfig</b>: Relational database settings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>httpConfig</i> HTTP endpoint settings.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>httpConfig</b>: HTTP endpoint settings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>elasticsearchConfig</i> Amazon Elasticsearch Service settings.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>elasticsearchConfig</b>: Amazon Elasticsearch Service settings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lambdaConfig</i> AWS Lambda settings.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>lambdaConfig</b>: AWS Lambda settings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>dynamodbConfig</i> Amazon DynamoDB settings.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>dynamodbConfig</b>: Amazon DynamoDB settings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>serviceRoleArn</i> The AWS IAM service role ARN for the data source. The system assumes this role when accessing the data source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of the data source. <ul> <li>  <b>AMAZON_DYNAMODB</b>: The data source is an Amazon DynamoDB table. </li> <li>  <b>AMAZON_ELASTICSEARCH</b>: The data source is an Amazon Elasticsearch Service domain. </li> <li>  <b>AWS_LAMBDA</b>: The data source is an AWS Lambda function. </li> <li>  <b>NONE</b>: There is no data source. This type is used when you wish to invoke a GraphQL operation without connecting to a data source, such as performing data transformation with resolvers or triggering a subscription to be invoked from a mutation. </li> <li>  <b>HTTP</b>: The data source is an HTTP endpoint. </li> <li>  <b>RELATIONAL_DATABASE</b>: The data source is a relational database. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> The description of the data source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the data source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>dataSourceArn</i> The data source ARN.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>useCallerCredentials</i> Set to TRUE to use Amazon Cognito credentials with this data source.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>awsRegion</i> The AWS Region.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>tableName</i> The table name.<br/>The <code>DeltaSyncConfig</code> for a versioned datasource.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>deltaSyncConfig</b>: The <code>DeltaSyncConfig</code> for a versioned datasource.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>lambdaFunctionArn</i> The ARN for the Lambda function.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>awsRegion</i> The AWS Region.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>endpoint</i> The endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>endpoint</i> The HTTP URL endpoint. You can either specify the domain name or IP, and port combination, and the URL scheme must be HTTP or HTTPS. If the port is not specified, AWS AppSync uses the default port 80 for the HTTP endpoint and port 443 for HTTPS endpoints.<br/>The authorization config in case the HTTP endpoint requires authorization.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>authorizationConfig</b>: The authorization config in case the HTTP endpoint requires authorization.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>relationalDatabaseSourceType</i> Source type for the relational database. <ul> <li>  <b>RDS_HTTP_ENDPOINT</b>: The relational database source type is an Amazon RDS HTTP endpoint. </li> </ul><br/>Amazon RDS HTTP endpoint settings.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>rdsHttpEndpointConfig</b>: Amazon RDS HTTP endpoint settings.        """
        pass

    def create_function(self, functionVersion: str, dataSourceName: str, name: str, apiId: str, description: str=None, requestMappingTemplate: str=None, responseMappingTemplate: str=None, syncConfig: SyncConfig=None) -> CreateFunctionResponse:
        r"""Creates a <code>Function</code> object. A function is a reusable entity. Multiple functions can be used to compose the resolver logic.

        :param self:
        :param syncConfig:  Describes a Sync configuration for a resolver. Contains information on which Conflict Detection as well as Resolution strategy should be performed when the resolver is invoked.:<br/>functionVersion:  The <code>version</code> of the request mapping template. Currently the supported value is 2018-05-29. <br/>responseMappingTemplate:  The <code>Function</code> response mapping template. <br/>requestMappingTemplate:  The <code>Function</code> request mapping template. Functions support only the 2018-05-29 version of the request mapping template.<br/>dataSourceName:  The <code>Function</code> <code>DataSource</code> name.<br/>description:  The <code>Function</code> description.<br/>name:  The <code>Function</code> name. The function name does not have to be unique.<br/>apiId:  The GraphQL API ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lambdaConflictHandlerConfig</i> The <code>LambdaConflictHandlerConfig</code> when configuring LAMBDA as the Conflict Handler.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>lambdaConflictHandlerConfig</b>: The <code>LambdaConflictHandlerConfig</code> when configuring LAMBDA as the Conflict Handler.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>conflictDetection</i> The Conflict Detection strategy to use. <ul> <li>  <b>VERSION</b>: Detect conflicts based on object versions for this resolver. </li> <li>  <b>NONE</b>: Do not detect conflicts when executing this resolver. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>conflictHandler</i> The Conflict Resolution strategy to perform in the event of a conflict. <ul> <li>  <b>OPTIMISTIC_CONCURRENCY</b>: Resolve conflicts by rejecting mutations when versions do not match the latest version at the server. </li> <li>  <b>AUTOMERGE</b>: Resolve conflicts with the Automerge conflict resolution strategy. </li> <li>  <b>LAMBDA</b>: Resolve conflicts with a Lambda function supplied in the LambdaConflictHandlerConfig. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>lambdaConflictHandlerArn</i> The Arn for the Lambda function to use as the Conflict Handler.<br/>
        :return: functionConfiguration:  The <code>Function</code> object.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>syncConfig</i> Describes a Sync configuration for a resolver. Contains information on which Conflict Detection as well as Resolution strategy should be performed when the resolver is invoked.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>syncConfig</b>: Describes a Sync configuration for a resolver. Contains information on which Conflict Detection as well as Resolution strategy should be performed when the resolver is invoked.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>functionVersion</i> The version of the request mapping template. Currently only the 2018-05-29 version of the template is supported.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>responseMappingTemplate</i> The <code>Function</code> response mapping template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>requestMappingTemplate</i> The <code>Function</code> request mapping template. Functions support only the 2018-05-29 version of the request mapping template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>dataSourceName</i> The name of the <code>DataSource</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> The <code>Function</code> description.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the <code>Function</code> object.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>functionArn</i> The ARN of the <code>Function</code> object.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>functionId</i> A unique ID representing the <code>Function</code> object.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>conflictDetection</i> The Conflict Detection strategy to use. <ul> <li>  <b>VERSION</b>: Detect conflicts based on object versions for this resolver. </li> <li>  <b>NONE</b>: Do not detect conflicts when executing this resolver. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>conflictHandler</i> The Conflict Resolution strategy to perform in the event of a conflict. <ul> <li>  <b>OPTIMISTIC_CONCURRENCY</b>: Resolve conflicts by rejecting mutations when versions do not match the latest version at the server. </li> <li>  <b>AUTOMERGE</b>: Resolve conflicts with the Automerge conflict resolution strategy. </li> <li>  <b>LAMBDA</b>: Resolve conflicts with a Lambda function supplied in the LambdaConflictHandlerConfig. </li> </ul><br/>The <code>LambdaConflictHandlerConfig</code> when configuring LAMBDA as the Conflict Handler.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>lambdaConflictHandlerConfig</b>: The <code>LambdaConflictHandlerConfig</code> when configuring LAMBDA as the Conflict Handler.        """
        pass

    def create_graphql_api(self, authenticationType: str, name: str, logConfig: LogConfig=None, userPoolConfig: UserPoolConfig=None, openIDConnectConfig: OpenIDConnectConfig=None, tags: TagMap=None, additionalAuthenticationProviders: List[AdditionalAuthenticationProvider]=None, xrayEnabled: Boolean=None) -> CreateGraphqlApiResponse:
        r"""Creates a <code>GraphqlApi</code> object.

        :param self:
        :param xrayEnabled:  A flag indicating whether to enable X-Ray tracing for the <code>GraphqlApi</code>.<br/>additionalAuthenticationProviders:  A list of additional authentication providers for the <code>GraphqlApi</code> API.<br/>tags:  A <code>TagMap</code> object.<br/>openIDConnectConfig:  The OpenID Connect configuration.:<br/>userPoolConfig:  The Amazon Cognito user pool configuration.:<br/>authenticationType:  The authentication type: API key, AWS IAM, OIDC, or Amazon Cognito user pools.<br/>logConfig:  The Amazon CloudWatch Logs configuration.:<br/>name:  A user-supplied name for the <code>GraphqlApi</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>excludeVerboseContent</i> Set to TRUE to exclude sections that contain information such as headers, context, and evaluated mapping templates, regardless of logging level.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>cloudWatchLogsRoleArn</i> The service role that AWS AppSync will assume to publish to Amazon CloudWatch logs in your account. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>fieldLogLevel</i> The field logging level. Values can be NONE, ERROR, or ALL.  <ul> <li>  <b>NONE</b>: No field-level logs are captured. </li> <li>  <b>ERROR</b>: Logs the following information only for the fields that are in error: <ul> <li> The error section in the server response. </li> <li> Field-level errors. </li> <li> The generated request/response functions that got resolved for error fields. </li> </ul> </li> <li>  <b>ALL</b>: The following information is logged for all fields in the query: <ul> <li> Field-level tracing information. </li> <li> The generated request/response functions that got resolved for each field. </li> </ul> </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>appIdClientRegex</i> A regular expression for validating the incoming Amazon Cognito user pool app client ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>defaultAction</i> The action that you want your GraphQL API to take when a request that uses Amazon Cognito user pool authentication doesn't match the Amazon Cognito user pool configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>awsRegion</i> The AWS Region in which the user pool was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>userPoolId</i> The user pool ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>authTTL</i> The number of milliseconds a token is valid after being authenticated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>iatTTL</i> The number of milliseconds a token is valid after being issued to a user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>clientId</i> The client identifier of the Relying party at the OpenID identity provider. This identifier is typically obtained when the Relying party is registered with the OpenID identity provider. You can specify a regular expression so the AWS AppSync can validate against multiple client identifiers at a time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>issuer</i> The issuer for the OpenID Connect configuration. The issuer returned by discovery must exactly match the value of <code>iss</code> in the ID token.<br/>
        :return: graphqlApi:  The <code>GraphqlApi</code>.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>wafWebAclArn</i> The ARN of the AWS Web Application Firewall (WAF) ACL associated with this <code>GraphqlApi</code>, if one exists.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>xrayEnabled</i> A flag representing whether X-Ray tracing is enabled for this <code>GraphqlApi</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>additionalAuthenticationProviders</i> A list of additional authentication providers for the <code>GraphqlApi</code> API.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The tags.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>uris</i> The URIs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The ARN.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>openIDConnectConfig</i> The OpenID Connect configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>openIDConnectConfig</b>: The OpenID Connect configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>userPoolConfig</i> The Amazon Cognito user pool configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>userPoolConfig</b>: The Amazon Cognito user pool configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>logConfig</i> The Amazon CloudWatch Logs configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>logConfig</b>: The Amazon CloudWatch Logs configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>authenticationType</i> The authentication type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>apiId</i> The API ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The API name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>excludeVerboseContent</i> Set to TRUE to exclude sections that contain information such as headers, context, and evaluated mapping templates, regardless of logging level.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>cloudWatchLogsRoleArn</i> The service role that AWS AppSync will assume to publish to Amazon CloudWatch logs in your account. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>fieldLogLevel</i> The field logging level. Values can be NONE, ERROR, or ALL.  <ul> <li>  <b>NONE</b>: No field-level logs are captured. </li> <li>  <b>ERROR</b>: Logs the following information only for the fields that are in error: <ul> <li> The error section in the server response. </li> <li> Field-level errors. </li> <li> The generated request/response functions that got resolved for error fields. </li> </ul> </li> <li>  <b>ALL</b>: The following information is logged for all fields in the query: <ul> <li> Field-level tracing information. </li> <li> The generated request/response functions that got resolved for each field. </li> </ul> </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>appIdClientRegex</i> A regular expression for validating the incoming Amazon Cognito user pool app client ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>defaultAction</i> The action that you want your GraphQL API to take when a request that uses Amazon Cognito user pool authentication doesn't match the Amazon Cognito user pool configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>awsRegion</i> The AWS Region in which the user pool was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>userPoolId</i> The user pool ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>authTTL</i> The number of milliseconds a token is valid after being authenticated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>iatTTL</i> The number of milliseconds a token is valid after being issued to a user.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>clientId</i> The client identifier of the Relying party at the OpenID identity provider. This identifier is typically obtained when the Relying party is registered with the OpenID identity provider. You can specify a regular expression so the AWS AppSync can validate against multiple client identifiers at a time.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>issuer</i> The issuer for the OpenID Connect configuration. The issuer returned by discovery must exactly match the value of <code>iss</code> in the ID token.<br/>        """
        pass

    def create_resolver(self, fieldName: str, typeName: str, apiId: str, dataSourceName: str=None, requestMappingTemplate: str=None, responseMappingTemplate: str=None, kind: str=None, pipelineConfig: PipelineConfig=None, syncConfig: SyncConfig=None, cachingConfig: CachingConfig=None) -> CreateResolverResponse:
        r"""Creates a <code>Resolver</code> object. A resolver converts incoming requests into a format that a data source can understand and converts the data source's responses into GraphQL.

        :param self:
        :param cachingConfig:  The caching configuration for the resolver.:<br/>syncConfig:  The <code>SyncConfig</code> for a resolver attached to a versioned datasource.:<br/>pipelineConfig:  The <code>PipelineConfig</code>.:<br/>kind:  The resolver type. <ul> <li>  <b>UNIT</b>: A UNIT resolver type. A UNIT resolver is the default resolver type. A UNIT resolver enables you to execute a GraphQL query against a single data source. </li> <li>  <b>PIPELINE</b>: A PIPELINE resolver type. A PIPELINE resolver enables you to execute a series of <code>Function</code> in a serial manner. You can use a pipeline resolver to execute a GraphQL query against multiple data sources. </li> </ul><br/>responseMappingTemplate:  The mapping template to be used for responses from the data source.<br/>requestMappingTemplate:  The mapping template to be used for requests. A resolver uses a request mapping template to convert a GraphQL expression into a format that a data source can understand. Mapping templates are written in Apache Velocity Template Language (VTL). VTL request mapping templates are optional when using a Lambda data source. For all other data sources, VTL request and response mapping templates are required.<br/>dataSourceName:  The name of the data source for which the resolver is being created.<br/>fieldName:  The name of the field to attach the resolver to.<br/>typeName:  The name of the <code>Type</code>.<br/>apiId:  The ID for the GraphQL API for which the resolver is being created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>functions</i> A list of <code>Function</code> objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lambdaConflictHandlerConfig</i> The <code>LambdaConflictHandlerConfig</code> when configuring LAMBDA as the Conflict Handler.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>lambdaConflictHandlerConfig</b>: The <code>LambdaConflictHandlerConfig</code> when configuring LAMBDA as the Conflict Handler.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>conflictDetection</i> The Conflict Detection strategy to use. <ul> <li>  <b>VERSION</b>: Detect conflicts based on object versions for this resolver. </li> <li>  <b>NONE</b>: Do not detect conflicts when executing this resolver. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>conflictHandler</i> The Conflict Resolution strategy to perform in the event of a conflict. <ul> <li>  <b>OPTIMISTIC_CONCURRENCY</b>: Resolve conflicts by rejecting mutations when versions do not match the latest version at the server. </li> <li>  <b>AUTOMERGE</b>: Resolve conflicts with the Automerge conflict resolution strategy. </li> <li>  <b>LAMBDA</b>: Resolve conflicts with a Lambda function supplied in the LambdaConflictHandlerConfig. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>lambdaConflictHandlerArn</i> The Arn for the Lambda function to use as the Conflict Handler.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>cachingKeys</i> The caching keys for a resolver that has caching enabled. Valid values are entries from the <code>$context.arguments</code>, <code>$context.source</code>, and <code>$context.identity</code> maps.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ttl</i> The TTL in seconds for a resolver that has caching enabled. Valid values are between 1 and 3600 seconds.<br/>
        :return: resolver:  The <code>Resolver</code> object.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>cachingConfig</i> The caching configuration for the resolver.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>cachingConfig</b>: The caching configuration for the resolver.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>syncConfig</i> The <code>SyncConfig</code> for a resolver attached to a versioned datasource.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>syncConfig</b>: The <code>SyncConfig</code> for a resolver attached to a versioned datasource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>pipelineConfig</i> The <code>PipelineConfig</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>pipelineConfig</b>: The <code>PipelineConfig</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>kind</i> The resolver type. <ul> <li>  <b>UNIT</b>: A UNIT resolver type. A UNIT resolver is the default resolver type. A UNIT resolver enables you to execute a GraphQL query against a single data source. </li> <li>  <b>PIPELINE</b>: A PIPELINE resolver type. A PIPELINE resolver enables you to execute a series of <code>Function</code> in a serial manner. You can use a pipeline resolver to execute a GraphQL query against multiple data sources. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>responseMappingTemplate</i> The response mapping template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>requestMappingTemplate</i> The request mapping template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resolverArn</i> The resolver ARN.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>dataSourceName</i> The resolver data source name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>fieldName</i> The resolver field name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>typeName</i> The resolver type name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>functions</i> A list of <code>Function</code> objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>conflictDetection</i> The Conflict Detection strategy to use. <ul> <li>  <b>VERSION</b>: Detect conflicts based on object versions for this resolver. </li> <li>  <b>NONE</b>: Do not detect conflicts when executing this resolver. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>conflictHandler</i> The Conflict Resolution strategy to perform in the event of a conflict. <ul> <li>  <b>OPTIMISTIC_CONCURRENCY</b>: Resolve conflicts by rejecting mutations when versions do not match the latest version at the server. </li> <li>  <b>AUTOMERGE</b>: Resolve conflicts with the Automerge conflict resolution strategy. </li> <li>  <b>LAMBDA</b>: Resolve conflicts with a Lambda function supplied in the LambdaConflictHandlerConfig. </li> </ul><br/>The <code>LambdaConflictHandlerConfig</code> when configuring LAMBDA as the Conflict Handler.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>lambdaConflictHandlerConfig</b>: The <code>LambdaConflictHandlerConfig</code> when configuring LAMBDA as the Conflict Handler.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>cachingKeys</i> The caching keys for a resolver that has caching enabled. Valid values are entries from the <code>$context.arguments</code>, <code>$context.source</code>, and <code>$context.identity</code> maps.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ttl</i> The TTL in seconds for a resolver that has caching enabled. Valid values are between 1 and 3600 seconds.<br/>        """
        pass

    def create_type(self, format: str, definition: str, apiId: str) -> CreateTypeResponse:
        r"""Creates a <code>Type</code> object.

        :param self:
        :param format:  The type format: SDL or JSON.<br/>definition:  The type definition, in GraphQL Schema Definition Language (SDL) format. For more information, see the <a href="http://graphql.org/learn/schema/">GraphQL SDL documentation</a>.<br/>apiId:  The API ID.<br/>
        :return: type:  The <code>Type</code> object.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>format</i> The type format: SDL or JSON.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>definition</i> The type definition.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The type ARN.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> The type description.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The type name.<br/>        """
        pass

    def delete_api_cache(self, apiId: str) -> DeleteApiCacheResponse:
        r"""Deletes an <code>ApiCache</code> object.

        :param self:
        :param apiId:  The API ID.<br/>
        :return:         """
        pass

    def delete_api_key(self, id: str, apiId: str) -> DeleteApiKeyResponse:
        r"""Deletes an API key.

        :param self:
        :param id:  The ID for the API key.<br/>apiId:  The API ID.<br/>
        :return:         """
        pass

    def delete_data_source(self, name: str, apiId: str) -> DeleteDataSourceResponse:
        r"""Deletes a <code>DataSource</code> object.

        :param self:
        :param name:  The name of the data source.<br/>apiId:  The API ID.<br/>
        :return:         """
        pass

    def delete_function(self, functionId: str, apiId: str) -> DeleteFunctionResponse:
        r"""Deletes a <code>Function</code>.

        :param self:
        :param functionId:  The <code>Function</code> ID.<br/>apiId:  The GraphQL API ID.<br/>
        :return:         """
        pass

    def delete_graphql_api(self, apiId: str) -> DeleteGraphqlApiResponse:
        r"""Deletes a <code>GraphqlApi</code> object.

        :param self:
        :param apiId:  The API ID.<br/>
        :return:         """
        pass

    def delete_resolver(self, fieldName: str, typeName: str, apiId: str) -> DeleteResolverResponse:
        r"""Deletes a <code>Resolver</code> object.

        :param self:
        :param fieldName:  The resolver field name.<br/>typeName:  The name of the resolver type.<br/>apiId:  The API ID.<br/>
        :return:         """
        pass

    def delete_type(self, typeName: str, apiId: str) -> DeleteTypeResponse:
        r"""Deletes a <code>Type</code> object.

        :param self:
        :param typeName:  The type name.<br/>apiId:  The API ID.<br/>
        :return:         """
        pass

    def flush_api_cache(self, apiId: str) -> FlushApiCacheResponse:
        r"""Flushes an <code>ApiCache</code> object.

        :param self:
        :param apiId:  The API ID.<br/>
        :return:         """
        pass

    def get_api_cache(self, apiId: str) -> GetApiCacheResponse:
        r"""Retrieves an <code>ApiCache</code> object.

        :param self:
        :param apiId:  The API ID.<br/>
        :return: apiCache:  The <code>ApiCache</code> object.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The cache instance status. <ul> <li>  <b>AVAILABLE</b>: The instance is available for use. </li> <li>  <b>CREATING</b>: The instance is currently creating. </li> <li>  <b>DELETING</b>: The instance is currently deleting. </li> <li>  <b>MODIFYING</b>: The instance is currently modifying. </li> <li>  <b>FAILED</b>: The instance has failed creation. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The cache instance type. Valid values are  <ul> <li>  <code>SMALL</code>  </li> <li>  <code>MEDIUM</code>  </li> <li>  <code>LARGE</code>  </li> <li>  <code>XLARGE</code>  </li> <li>  <code>LARGE_2X</code>  </li> <li>  <code>LARGE_4X</code>  </li> <li>  <code>LARGE_8X</code> (not available in all regions) </li> <li>  <code>LARGE_12X</code>  </li> </ul> Historically, instance types were identified by an EC2-style value. As of July 2020, this is deprecated, and the generic identifiers above should be used. The following legacy instance types are available, but their use is discouraged: <ul> <li>  <b>T2_SMALL</b>: A t2.small instance type. </li> <li>  <b>T2_MEDIUM</b>: A t2.medium instance type. </li> <li>  <b>R4_LARGE</b>: A r4.large instance type. </li> <li>  <b>R4_XLARGE</b>: A r4.xlarge instance type. </li> <li>  <b>R4_2XLARGE</b>: A r4.2xlarge instance type. </li> <li>  <b>R4_4XLARGE</b>: A r4.4xlarge instance type. </li> <li>  <b>R4_8XLARGE</b>: A r4.8xlarge instance type. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>atRestEncryptionEnabled</i> At rest encryption flag for cache. This setting cannot be updated after creation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>transitEncryptionEnabled</i> Transit encryption flag when connecting to cache. This setting cannot be updated after creation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>apiCachingBehavior</i> Caching behavior. <ul> <li>  <b>FULL_REQUEST_CACHING</b>: All requests are fully cached. </li> <li>  <b>PER_RESOLVER_CACHING</b>: Individual resolvers that you specify are cached. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ttl</i> TTL in seconds for cache entries. Valid values are between 1 and 3600 seconds.<br/>        """
        pass

    def get_data_source(self, name: str, apiId: str) -> GetDataSourceResponse:
        r"""Retrieves a <code>DataSource</code> object.

        :param self:
        :param name:  The name of the data source.<br/>apiId:  The API ID.<br/>
        :return: dataSource:  The <code>DataSource</code> object.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>relationalDatabaseConfig</i> Relational database settings.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>relationalDatabaseConfig</b>: Relational database settings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>httpConfig</i> HTTP endpoint settings.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>httpConfig</b>: HTTP endpoint settings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>elasticsearchConfig</i> Amazon Elasticsearch Service settings.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>elasticsearchConfig</b>: Amazon Elasticsearch Service settings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lambdaConfig</i> AWS Lambda settings.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>lambdaConfig</b>: AWS Lambda settings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>dynamodbConfig</i> Amazon DynamoDB settings.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>dynamodbConfig</b>: Amazon DynamoDB settings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>serviceRoleArn</i> The AWS IAM service role ARN for the data source. The system assumes this role when accessing the data source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of the data source. <ul> <li>  <b>AMAZON_DYNAMODB</b>: The data source is an Amazon DynamoDB table. </li> <li>  <b>AMAZON_ELASTICSEARCH</b>: The data source is an Amazon Elasticsearch Service domain. </li> <li>  <b>AWS_LAMBDA</b>: The data source is an AWS Lambda function. </li> <li>  <b>NONE</b>: There is no data source. This type is used when you wish to invoke a GraphQL operation without connecting to a data source, such as performing data transformation with resolvers or triggering a subscription to be invoked from a mutation. </li> <li>  <b>HTTP</b>: The data source is an HTTP endpoint. </li> <li>  <b>RELATIONAL_DATABASE</b>: The data source is a relational database. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> The description of the data source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the data source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>dataSourceArn</i> The data source ARN.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>useCallerCredentials</i> Set to TRUE to use Amazon Cognito credentials with this data source.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>awsRegion</i> The AWS Region.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>tableName</i> The table name.<br/>The <code>DeltaSyncConfig</code> for a versioned datasource.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>deltaSyncConfig</b>: The <code>DeltaSyncConfig</code> for a versioned datasource.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>lambdaFunctionArn</i> The ARN for the Lambda function.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>awsRegion</i> The AWS Region.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>endpoint</i> The endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>endpoint</i> The HTTP URL endpoint. You can either specify the domain name or IP, and port combination, and the URL scheme must be HTTP or HTTPS. If the port is not specified, AWS AppSync uses the default port 80 for the HTTP endpoint and port 443 for HTTPS endpoints.<br/>The authorization config in case the HTTP endpoint requires authorization.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>authorizationConfig</b>: The authorization config in case the HTTP endpoint requires authorization.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>relationalDatabaseSourceType</i> Source type for the relational database. <ul> <li>  <b>RDS_HTTP_ENDPOINT</b>: The relational database source type is an Amazon RDS HTTP endpoint. </li> </ul><br/>Amazon RDS HTTP endpoint settings.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>rdsHttpEndpointConfig</b>: Amazon RDS HTTP endpoint settings.        """
        pass

    def get_function(self, functionId: str, apiId: str) -> GetFunctionResponse:
        r"""Get a <code>Function</code>.

        :param self:
        :param functionId:  The <code>Function</code> ID.<br/>apiId:  The GraphQL API ID.<br/>
        :return: functionConfiguration:  The <code>Function</code> object.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>syncConfig</i> Describes a Sync configuration for a resolver. Contains information on which Conflict Detection as well as Resolution strategy should be performed when the resolver is invoked.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>syncConfig</b>: Describes a Sync configuration for a resolver. Contains information on which Conflict Detection as well as Resolution strategy should be performed when the resolver is invoked.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>functionVersion</i> The version of the request mapping template. Currently only the 2018-05-29 version of the template is supported.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>responseMappingTemplate</i> The <code>Function</code> response mapping template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>requestMappingTemplate</i> The <code>Function</code> request mapping template. Functions support only the 2018-05-29 version of the request mapping template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>dataSourceName</i> The name of the <code>DataSource</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> The <code>Function</code> description.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the <code>Function</code> object.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>functionArn</i> The ARN of the <code>Function</code> object.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>functionId</i> A unique ID representing the <code>Function</code> object.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>conflictDetection</i> The Conflict Detection strategy to use. <ul> <li>  <b>VERSION</b>: Detect conflicts based on object versions for this resolver. </li> <li>  <b>NONE</b>: Do not detect conflicts when executing this resolver. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>conflictHandler</i> The Conflict Resolution strategy to perform in the event of a conflict. <ul> <li>  <b>OPTIMISTIC_CONCURRENCY</b>: Resolve conflicts by rejecting mutations when versions do not match the latest version at the server. </li> <li>  <b>AUTOMERGE</b>: Resolve conflicts with the Automerge conflict resolution strategy. </li> <li>  <b>LAMBDA</b>: Resolve conflicts with a Lambda function supplied in the LambdaConflictHandlerConfig. </li> </ul><br/>The <code>LambdaConflictHandlerConfig</code> when configuring LAMBDA as the Conflict Handler.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>lambdaConflictHandlerConfig</b>: The <code>LambdaConflictHandlerConfig</code> when configuring LAMBDA as the Conflict Handler.        """
        pass

    def get_graphql_api(self, apiId: str) -> GetGraphqlApiResponse:
        r"""Retrieves a <code>GraphqlApi</code> object.

        :param self:
        :param apiId:  The API ID for the GraphQL API.<br/>
        :return: graphqlApi:  The <code>GraphqlApi</code> object.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>wafWebAclArn</i> The ARN of the AWS Web Application Firewall (WAF) ACL associated with this <code>GraphqlApi</code>, if one exists.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>xrayEnabled</i> A flag representing whether X-Ray tracing is enabled for this <code>GraphqlApi</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>additionalAuthenticationProviders</i> A list of additional authentication providers for the <code>GraphqlApi</code> API.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The tags.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>uris</i> The URIs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The ARN.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>openIDConnectConfig</i> The OpenID Connect configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>openIDConnectConfig</b>: The OpenID Connect configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>userPoolConfig</i> The Amazon Cognito user pool configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>userPoolConfig</b>: The Amazon Cognito user pool configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>logConfig</i> The Amazon CloudWatch Logs configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>logConfig</b>: The Amazon CloudWatch Logs configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>authenticationType</i> The authentication type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>apiId</i> The API ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The API name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>excludeVerboseContent</i> Set to TRUE to exclude sections that contain information such as headers, context, and evaluated mapping templates, regardless of logging level.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>cloudWatchLogsRoleArn</i> The service role that AWS AppSync will assume to publish to Amazon CloudWatch logs in your account. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>fieldLogLevel</i> The field logging level. Values can be NONE, ERROR, or ALL.  <ul> <li>  <b>NONE</b>: No field-level logs are captured. </li> <li>  <b>ERROR</b>: Logs the following information only for the fields that are in error: <ul> <li> The error section in the server response. </li> <li> Field-level errors. </li> <li> The generated request/response functions that got resolved for error fields. </li> </ul> </li> <li>  <b>ALL</b>: The following information is logged for all fields in the query: <ul> <li> Field-level tracing information. </li> <li> The generated request/response functions that got resolved for each field. </li> </ul> </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>appIdClientRegex</i> A regular expression for validating the incoming Amazon Cognito user pool app client ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>defaultAction</i> The action that you want your GraphQL API to take when a request that uses Amazon Cognito user pool authentication doesn't match the Amazon Cognito user pool configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>awsRegion</i> The AWS Region in which the user pool was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>userPoolId</i> The user pool ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>authTTL</i> The number of milliseconds a token is valid after being authenticated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>iatTTL</i> The number of milliseconds a token is valid after being issued to a user.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>clientId</i> The client identifier of the Relying party at the OpenID identity provider. This identifier is typically obtained when the Relying party is registered with the OpenID identity provider. You can specify a regular expression so the AWS AppSync can validate against multiple client identifiers at a time.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>issuer</i> The issuer for the OpenID Connect configuration. The issuer returned by discovery must exactly match the value of <code>iss</code> in the ID token.<br/>        """
        pass

    def get_introspection_schema(self, format: str, apiId: str, includeDirectives: BooleanValue=None) -> GetIntrospectionSchemaResponse:
        r"""Retrieves the introspection schema for a GraphQL API.

        :param self:
        :param includeDirectives:  A flag that specifies whether the schema introspection should contain directives.<br/>format:  The schema format: SDL or JSON.<br/>apiId:  The API ID.<br/>
        :return: schema:  The schema, in GraphQL Schema Definition Language (SDL) format. For more information, see the <a href="http://graphql.org/learn/schema/">GraphQL SDL documentation</a>.<br/>        """
        pass

    def get_resolver(self, fieldName: str, typeName: str, apiId: str) -> GetResolverResponse:
        r"""Retrieves a <code>Resolver</code> object.

        :param self:
        :param fieldName:  The resolver field name.<br/>typeName:  The resolver type name.<br/>apiId:  The API ID.<br/>
        :return: resolver:  The <code>Resolver</code> object.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>cachingConfig</i> The caching configuration for the resolver.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>cachingConfig</b>: The caching configuration for the resolver.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>syncConfig</i> The <code>SyncConfig</code> for a resolver attached to a versioned datasource.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>syncConfig</b>: The <code>SyncConfig</code> for a resolver attached to a versioned datasource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>pipelineConfig</i> The <code>PipelineConfig</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>pipelineConfig</b>: The <code>PipelineConfig</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>kind</i> The resolver type. <ul> <li>  <b>UNIT</b>: A UNIT resolver type. A UNIT resolver is the default resolver type. A UNIT resolver enables you to execute a GraphQL query against a single data source. </li> <li>  <b>PIPELINE</b>: A PIPELINE resolver type. A PIPELINE resolver enables you to execute a series of <code>Function</code> in a serial manner. You can use a pipeline resolver to execute a GraphQL query against multiple data sources. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>responseMappingTemplate</i> The response mapping template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>requestMappingTemplate</i> The request mapping template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resolverArn</i> The resolver ARN.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>dataSourceName</i> The resolver data source name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>fieldName</i> The resolver field name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>typeName</i> The resolver type name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>functions</i> A list of <code>Function</code> objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>conflictDetection</i> The Conflict Detection strategy to use. <ul> <li>  <b>VERSION</b>: Detect conflicts based on object versions for this resolver. </li> <li>  <b>NONE</b>: Do not detect conflicts when executing this resolver. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>conflictHandler</i> The Conflict Resolution strategy to perform in the event of a conflict. <ul> <li>  <b>OPTIMISTIC_CONCURRENCY</b>: Resolve conflicts by rejecting mutations when versions do not match the latest version at the server. </li> <li>  <b>AUTOMERGE</b>: Resolve conflicts with the Automerge conflict resolution strategy. </li> <li>  <b>LAMBDA</b>: Resolve conflicts with a Lambda function supplied in the LambdaConflictHandlerConfig. </li> </ul><br/>The <code>LambdaConflictHandlerConfig</code> when configuring LAMBDA as the Conflict Handler.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>lambdaConflictHandlerConfig</b>: The <code>LambdaConflictHandlerConfig</code> when configuring LAMBDA as the Conflict Handler.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>cachingKeys</i> The caching keys for a resolver that has caching enabled. Valid values are entries from the <code>$context.arguments</code>, <code>$context.source</code>, and <code>$context.identity</code> maps.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ttl</i> The TTL in seconds for a resolver that has caching enabled. Valid values are between 1 and 3600 seconds.<br/>        """
        pass

    def get_schema_creation_status(self, apiId: str) -> GetSchemaCreationStatusResponse:
        r"""Retrieves the current status of a schema creation operation.

        :param self:
        :param apiId:  The API ID.<br/>
        :return: details:  Detailed information about the status of the schema creation operation.<br/>status:  The current state of the schema (PROCESSING, FAILED, SUCCESS, or NOT_APPLICABLE). When the schema is in the ACTIVE state, you can add data.<br/>        """
        pass

    def get_type(self, format: str, typeName: str, apiId: str) -> GetTypeResponse:
        r"""Retrieves a <code>Type</code> object.

        :param self:
        :param format:  The type format: SDL or JSON.<br/>typeName:  The type name.<br/>apiId:  The API ID.<br/>
        :return: type:  The <code>Type</code> object.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>format</i> The type format: SDL or JSON.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>definition</i> The type definition.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The type ARN.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> The type description.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The type name.<br/>        """
        pass

    def list_api_keys(self, apiId: str, nextToken: str=None, maxResults: int=None) -> ListApiKeysResponse:
        r"""Lists the API keys for a given API. <note> API keys are deleted automatically 60 days after they expire. However, they may still be included in the response until they have actually been deleted. You can safely call <code>DeleteApiKey</code> to manually delete a key before it's automatically deleted. </note>

        :param self:
        :param maxResults:  The maximum number of results you want the request to return.<br/>nextToken:  An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.<br/>apiId:  The API ID.<br/>
        :return: nextToken:  An identifier to be passed in the next request to this operation to return the next set of items in the list.<br/>apiKeys:  The <code>ApiKey</code> objects.<br/>        """
        pass

    def list_data_sources(self, apiId: str, nextToken: str=None, maxResults: int=None) -> ListDataSourcesResponse:
        r"""Lists the data sources for a given API.

        :param self:
        :param maxResults:  The maximum number of results you want the request to return.<br/>nextToken:  An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list. <br/>apiId:  The API ID.<br/>
        :return: nextToken:  An identifier to be passed in the next request to this operation to return the next set of items in the list.<br/>dataSources:  The <code>DataSource</code> objects.<br/>        """
        pass

    def list_functions(self, apiId: str, nextToken: str=None, maxResults: int=None) -> ListFunctionsResponse:
        r"""List multiple functions.

        :param self:
        :param maxResults:  The maximum number of results you want the request to return.<br/>nextToken:  An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.<br/>apiId:  The GraphQL API ID.<br/>
        :return: nextToken:  An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.<br/>functions:  A list of <code>Function</code> objects.<br/>        """
        pass

    def list_graphql_apis(self, nextToken: str=None, maxResults: int=None) -> ListGraphqlApisResponse:
        r"""Lists your GraphQL APIs.

        :param self:
        :param maxResults:  The maximum number of results you want the request to return.<br/>nextToken:  An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list. <br/>
        :return: nextToken:  An identifier to be passed in the next request to this operation to return the next set of items in the list.<br/>graphqlApis:  The <code>GraphqlApi</code> objects.<br/>        """
        pass

    def list_resolvers(self, typeName: str, apiId: str, nextToken: str=None, maxResults: int=None) -> ListResolversResponse:
        r"""Lists the resolvers for a given API and type.

        :param self:
        :param maxResults:  The maximum number of results you want the request to return.<br/>nextToken:  An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list. <br/>typeName:  The type name.<br/>apiId:  The API ID.<br/>
        :return: nextToken:  An identifier to be passed in the next request to this operation to return the next set of items in the list.<br/>resolvers:  The <code>Resolver</code> objects.<br/>        """
        pass

    def list_resolvers_by_function(self, functionId: str, apiId: str, nextToken: str=None, maxResults: int=None) -> ListResolversByFunctionResponse:
        r"""List the resolvers that are associated with a specific function.

        :param self:
        :param maxResults:  The maximum number of results you want the request to return.<br/>nextToken:  An identifier that was returned from the previous call to this operation, which you can use to return the next set of items in the list.<br/>functionId:  The Function ID.<br/>apiId:  The API ID.<br/>
        :return: nextToken:  An identifier that can be used to return the next set of items in the list.<br/>resolvers:  The list of resolvers.<br/>        """
        pass

    def list_tags_for_resource(self, resourceArn: str) -> ListTagsForResourceResponse:
        r"""Lists the tags for a resource.

        :param self:
        :param resourceArn:  The <code>GraphqlApi</code> ARN.<br/>
        :return: tags:  A <code>TagMap</code> object.<br/>        """
        pass

    def list_types(self, format: str, apiId: str, nextToken: str=None, maxResults: int=None) -> ListTypesResponse:
        r"""Lists the types for a given API.

        :param self:
        :param maxResults:  The maximum number of results you want the request to return.<br/>nextToken:  An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list. <br/>format:  The type format: SDL or JSON.<br/>apiId:  The API ID.<br/>
        :return: nextToken:  An identifier to be passed in the next request to this operation to return the next set of items in the list.<br/>types:  The <code>Type</code> objects.<br/>        """
        pass

    def start_schema_creation(self, definition: Blob, apiId: str) -> StartSchemaCreationResponse:
        r"""Adds a new schema to your GraphQL API. This operation is asynchronous. Use to determine when it has completed.

        :param self:
        :param definition:  The schema definition, in GraphQL schema language format.<br/>apiId:  The API ID.<br/>
        :return: status:  The current state of the schema (PROCESSING, FAILED, SUCCESS, or NOT_APPLICABLE). When the schema is in the ACTIVE state, you can add data.<br/>        """
        pass

    def tag_resource(self, tags: TagMap, resourceArn: str) -> TagResourceResponse:
        r"""Tags a resource with user-supplied tags.

        :param self:
        :param tags:  A <code>TagMap</code> object.<br/>resourceArn:  The <code>GraphqlApi</code> ARN.<br/>
        :return:         """
        pass

    def untag_resource(self, tagKeys: List[TagKey], resourceArn: str) -> UntagResourceResponse:
        r"""Untags a resource.

        :param self:
        :param tagKeys:  A list of <code>TagKey</code> objects.<br/>resourceArn:  The <code>GraphqlApi</code> ARN.<br/>
        :return:         """
        pass

    def update_api_cache(self, type: str, apiCachingBehavior: str, ttl: Long, apiId: str) -> UpdateApiCacheResponse:
        r"""Updates the cache for the GraphQL API.

        :param self:
        :param type:  The cache instance type. Valid values are  <ul> <li>  <code>SMALL</code>  </li> <li>  <code>MEDIUM</code>  </li> <li>  <code>LARGE</code>  </li> <li>  <code>XLARGE</code>  </li> <li>  <code>LARGE_2X</code>  </li> <li>  <code>LARGE_4X</code>  </li> <li>  <code>LARGE_8X</code> (not available in all regions) </li> <li>  <code>LARGE_12X</code>  </li> </ul> Historically, instance types were identified by an EC2-style value. As of July 2020, this is deprecated, and the generic identifiers above should be used. The following legacy instance types are available, but their use is discouraged: <ul> <li>  <b>T2_SMALL</b>: A t2.small instance type. </li> <li>  <b>T2_MEDIUM</b>: A t2.medium instance type. </li> <li>  <b>R4_LARGE</b>: A r4.large instance type. </li> <li>  <b>R4_XLARGE</b>: A r4.xlarge instance type. </li> <li>  <b>R4_2XLARGE</b>: A r4.2xlarge instance type. </li> <li>  <b>R4_4XLARGE</b>: A r4.4xlarge instance type. </li> <li>  <b>R4_8XLARGE</b>: A r4.8xlarge instance type. </li> </ul><br/>apiCachingBehavior:  Caching behavior. <ul> <li>  <b>FULL_REQUEST_CACHING</b>: All requests are fully cached. </li> <li>  <b>PER_RESOLVER_CACHING</b>: Individual resolvers that you specify are cached. </li> </ul><br/>ttl:  TTL in seconds for cache entries. Valid values are between 1 and 3600 seconds.<br/>apiId:  The GraphQL API Id.<br/>
        :return: apiCache:  The <code>ApiCache</code> object.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The cache instance status. <ul> <li>  <b>AVAILABLE</b>: The instance is available for use. </li> <li>  <b>CREATING</b>: The instance is currently creating. </li> <li>  <b>DELETING</b>: The instance is currently deleting. </li> <li>  <b>MODIFYING</b>: The instance is currently modifying. </li> <li>  <b>FAILED</b>: The instance has failed creation. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The cache instance type. Valid values are  <ul> <li>  <code>SMALL</code>  </li> <li>  <code>MEDIUM</code>  </li> <li>  <code>LARGE</code>  </li> <li>  <code>XLARGE</code>  </li> <li>  <code>LARGE_2X</code>  </li> <li>  <code>LARGE_4X</code>  </li> <li>  <code>LARGE_8X</code> (not available in all regions) </li> <li>  <code>LARGE_12X</code>  </li> </ul> Historically, instance types were identified by an EC2-style value. As of July 2020, this is deprecated, and the generic identifiers above should be used. The following legacy instance types are available, but their use is discouraged: <ul> <li>  <b>T2_SMALL</b>: A t2.small instance type. </li> <li>  <b>T2_MEDIUM</b>: A t2.medium instance type. </li> <li>  <b>R4_LARGE</b>: A r4.large instance type. </li> <li>  <b>R4_XLARGE</b>: A r4.xlarge instance type. </li> <li>  <b>R4_2XLARGE</b>: A r4.2xlarge instance type. </li> <li>  <b>R4_4XLARGE</b>: A r4.4xlarge instance type. </li> <li>  <b>R4_8XLARGE</b>: A r4.8xlarge instance type. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>atRestEncryptionEnabled</i> At rest encryption flag for cache. This setting cannot be updated after creation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>transitEncryptionEnabled</i> Transit encryption flag when connecting to cache. This setting cannot be updated after creation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>apiCachingBehavior</i> Caching behavior. <ul> <li>  <b>FULL_REQUEST_CACHING</b>: All requests are fully cached. </li> <li>  <b>PER_RESOLVER_CACHING</b>: Individual resolvers that you specify are cached. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ttl</i> TTL in seconds for cache entries. Valid values are between 1 and 3600 seconds.<br/>        """
        pass

    def update_api_key(self, id: str, apiId: str, description: str=None, expires: Long=None) -> UpdateApiKeyResponse:
        r"""Updates an API key. The key can be updated while it is not deleted.

        :param self:
        :param expires:  The time from update time after which the API key expires. The date is represented as seconds since the epoch. For more information, see .<br/>description:  A description of the purpose of the API key.<br/>id:  The API key ID.<br/>apiId:  The ID for the GraphQL API.<br/>
        :return: apiKey:  The API key.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deletes</i> The time after which the API key is deleted. The date is represented as seconds since the epoch, rounded down to the nearest hour.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>expires</i> The time after which the API key expires. The date is represented as seconds since the epoch, rounded down to the nearest hour.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> A description of the purpose of the API key.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The API key ID.<br/>        """
        pass

    def update_data_source(self, type: str, name: str, apiId: str, description: str=None, serviceRoleArn: str=None, dynamodbConfig: DynamodbDataSourceConfig=None, lambdaConfig: LambdaDataSourceConfig=None, elasticsearchConfig: ElasticsearchDataSourceConfig=None, httpConfig: HttpDataSourceConfig=None, relationalDatabaseConfig: RelationalDatabaseDataSourceConfig=None) -> UpdateDataSourceResponse:
        r"""Updates a <code>DataSource</code> object.

        :param self:
        :param relationalDatabaseConfig:  The new relational database configuration.:<br/>httpConfig:  The new HTTP endpoint configuration.:<br/>elasticsearchConfig:  The new Elasticsearch Service configuration.:<br/>lambdaConfig:  The new AWS Lambda configuration.:<br/>dynamodbConfig:  The new Amazon DynamoDB configuration.:<br/>serviceRoleArn:  The new service role ARN for the data source.<br/>type:  The new data source type.<br/>description:  The new description for the data source.<br/>name:  The new name for the data source.<br/>apiId:  The API ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>versioned</i> Set to TRUE to use Conflict Detection and Resolution with this data source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deltaSyncConfig</i> The <code>DeltaSyncConfig</code> for a versioned datasource.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>deltaSyncConfig</b>: The <code>DeltaSyncConfig</code> for a versioned datasource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>useCallerCredentials</i> Set to TRUE to use Amazon Cognito credentials with this data source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>awsRegion</i> The AWS Region.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tableName</i> The table name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>deltaSyncTableTTL</i> The number of minutes a Delta Sync log entry is stored in the Delta Sync table.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>deltaSyncTableName</i> The Delta Sync table name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>baseTableTTL</i> The number of minutes an Item is stored in the datasource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lambdaFunctionArn</i> The ARN for the Lambda function.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>awsRegion</i> The AWS Region.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>endpoint</i> The endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>authorizationConfig</i> The authorization config in case the HTTP endpoint requires authorization.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>authorizationConfig</b>: The authorization config in case the HTTP endpoint requires authorization.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>endpoint</i> The HTTP URL endpoint. You can either specify the domain name or IP, and port combination, and the URL scheme must be HTTP or HTTPS. If the port is not specified, AWS AppSync uses the default port 80 for the HTTP endpoint and port 443 for HTTPS endpoints.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>authorizationType</i> The authorization type required by the HTTP endpoint. <ul> <li>  <b>AWS_IAM</b>: The authorization type is Sigv4. </li> </ul><br/>The AWS IAM settings.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>awsIamConfig</b>: The AWS IAM settings.&nbsp;&nbsp;&nbsp;&nbsp; <i>rdsHttpEndpointConfig</i> Amazon RDS HTTP endpoint settings.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>rdsHttpEndpointConfig</b>: Amazon RDS HTTP endpoint settings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>relationalDatabaseSourceType</i> Source type for the relational database. <ul> <li>  <b>RDS_HTTP_ENDPOINT</b>: The relational database source type is an Amazon RDS HTTP endpoint. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>awsSecretStoreArn</i> AWS secret store ARN for database credentials.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>schema</i> Logical schema name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>databaseName</i> Logical database name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>dbClusterIdentifier</i> Amazon RDS cluster ARN.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>awsRegion</i> AWS Region for RDS HTTP endpoint.<br/>
        :return: dataSource:  The updated <code>DataSource</code> object.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>relationalDatabaseConfig</i> Relational database settings.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>relationalDatabaseConfig</b>: Relational database settings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>httpConfig</i> HTTP endpoint settings.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>httpConfig</b>: HTTP endpoint settings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>elasticsearchConfig</i> Amazon Elasticsearch Service settings.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>elasticsearchConfig</b>: Amazon Elasticsearch Service settings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lambdaConfig</i> AWS Lambda settings.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>lambdaConfig</b>: AWS Lambda settings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>dynamodbConfig</i> Amazon DynamoDB settings.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>dynamodbConfig</b>: Amazon DynamoDB settings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>serviceRoleArn</i> The AWS IAM service role ARN for the data source. The system assumes this role when accessing the data source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of the data source. <ul> <li>  <b>AMAZON_DYNAMODB</b>: The data source is an Amazon DynamoDB table. </li> <li>  <b>AMAZON_ELASTICSEARCH</b>: The data source is an Amazon Elasticsearch Service domain. </li> <li>  <b>AWS_LAMBDA</b>: The data source is an AWS Lambda function. </li> <li>  <b>NONE</b>: There is no data source. This type is used when you wish to invoke a GraphQL operation without connecting to a data source, such as performing data transformation with resolvers or triggering a subscription to be invoked from a mutation. </li> <li>  <b>HTTP</b>: The data source is an HTTP endpoint. </li> <li>  <b>RELATIONAL_DATABASE</b>: The data source is a relational database. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> The description of the data source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the data source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>dataSourceArn</i> The data source ARN.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>useCallerCredentials</i> Set to TRUE to use Amazon Cognito credentials with this data source.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>awsRegion</i> The AWS Region.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>tableName</i> The table name.<br/>The <code>DeltaSyncConfig</code> for a versioned datasource.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>deltaSyncConfig</b>: The <code>DeltaSyncConfig</code> for a versioned datasource.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>lambdaFunctionArn</i> The ARN for the Lambda function.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>awsRegion</i> The AWS Region.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>endpoint</i> The endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>endpoint</i> The HTTP URL endpoint. You can either specify the domain name or IP, and port combination, and the URL scheme must be HTTP or HTTPS. If the port is not specified, AWS AppSync uses the default port 80 for the HTTP endpoint and port 443 for HTTPS endpoints.<br/>The authorization config in case the HTTP endpoint requires authorization.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>authorizationConfig</b>: The authorization config in case the HTTP endpoint requires authorization.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>relationalDatabaseSourceType</i> Source type for the relational database. <ul> <li>  <b>RDS_HTTP_ENDPOINT</b>: The relational database source type is an Amazon RDS HTTP endpoint. </li> </ul><br/>Amazon RDS HTTP endpoint settings.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>rdsHttpEndpointConfig</b>: Amazon RDS HTTP endpoint settings.        """
        pass

    def update_function(self, functionVersion: str, dataSourceName: str, functionId: str, name: str, apiId: str, description: str=None, requestMappingTemplate: str=None, responseMappingTemplate: str=None, syncConfig: SyncConfig=None) -> UpdateFunctionResponse:
        r"""Updates a <code>Function</code> object.

        :param self:
        :param syncConfig:  Describes a Sync configuration for a resolver. Contains information on which Conflict Detection as well as Resolution strategy should be performed when the resolver is invoked.:<br/>functionVersion:  The <code>version</code> of the request mapping template. Currently the supported value is 2018-05-29. <br/>responseMappingTemplate:  The <code>Function</code> request mapping template. <br/>requestMappingTemplate:  The <code>Function</code> request mapping template. Functions support only the 2018-05-29 version of the request mapping template.<br/>dataSourceName:  The <code>Function</code> <code>DataSource</code> name.<br/>functionId:  The function ID.<br/>description:  The <code>Function</code> description.<br/>name:  The <code>Function</code> name.<br/>apiId:  The GraphQL API ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lambdaConflictHandlerConfig</i> The <code>LambdaConflictHandlerConfig</code> when configuring LAMBDA as the Conflict Handler.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>lambdaConflictHandlerConfig</b>: The <code>LambdaConflictHandlerConfig</code> when configuring LAMBDA as the Conflict Handler.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>conflictDetection</i> The Conflict Detection strategy to use. <ul> <li>  <b>VERSION</b>: Detect conflicts based on object versions for this resolver. </li> <li>  <b>NONE</b>: Do not detect conflicts when executing this resolver. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>conflictHandler</i> The Conflict Resolution strategy to perform in the event of a conflict. <ul> <li>  <b>OPTIMISTIC_CONCURRENCY</b>: Resolve conflicts by rejecting mutations when versions do not match the latest version at the server. </li> <li>  <b>AUTOMERGE</b>: Resolve conflicts with the Automerge conflict resolution strategy. </li> <li>  <b>LAMBDA</b>: Resolve conflicts with a Lambda function supplied in the LambdaConflictHandlerConfig. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>lambdaConflictHandlerArn</i> The Arn for the Lambda function to use as the Conflict Handler.<br/>
        :return: functionConfiguration:  The <code>Function</code> object.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>syncConfig</i> Describes a Sync configuration for a resolver. Contains information on which Conflict Detection as well as Resolution strategy should be performed when the resolver is invoked.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>syncConfig</b>: Describes a Sync configuration for a resolver. Contains information on which Conflict Detection as well as Resolution strategy should be performed when the resolver is invoked.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>functionVersion</i> The version of the request mapping template. Currently only the 2018-05-29 version of the template is supported.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>responseMappingTemplate</i> The <code>Function</code> response mapping template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>requestMappingTemplate</i> The <code>Function</code> request mapping template. Functions support only the 2018-05-29 version of the request mapping template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>dataSourceName</i> The name of the <code>DataSource</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> The <code>Function</code> description.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the <code>Function</code> object.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>functionArn</i> The ARN of the <code>Function</code> object.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>functionId</i> A unique ID representing the <code>Function</code> object.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>conflictDetection</i> The Conflict Detection strategy to use. <ul> <li>  <b>VERSION</b>: Detect conflicts based on object versions for this resolver. </li> <li>  <b>NONE</b>: Do not detect conflicts when executing this resolver. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>conflictHandler</i> The Conflict Resolution strategy to perform in the event of a conflict. <ul> <li>  <b>OPTIMISTIC_CONCURRENCY</b>: Resolve conflicts by rejecting mutations when versions do not match the latest version at the server. </li> <li>  <b>AUTOMERGE</b>: Resolve conflicts with the Automerge conflict resolution strategy. </li> <li>  <b>LAMBDA</b>: Resolve conflicts with a Lambda function supplied in the LambdaConflictHandlerConfig. </li> </ul><br/>The <code>LambdaConflictHandlerConfig</code> when configuring LAMBDA as the Conflict Handler.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>lambdaConflictHandlerConfig</b>: The <code>LambdaConflictHandlerConfig</code> when configuring LAMBDA as the Conflict Handler.        """
        pass

    def update_graphql_api(self, name: str, apiId: str, logConfig: LogConfig=None, authenticationType: str=None, userPoolConfig: UserPoolConfig=None, openIDConnectConfig: OpenIDConnectConfig=None, additionalAuthenticationProviders: List[AdditionalAuthenticationProvider]=None, xrayEnabled: Boolean=None) -> UpdateGraphqlApiResponse:
        r"""Updates a <code>GraphqlApi</code> object.

        :param self:
        :param xrayEnabled:  A flag indicating whether to enable X-Ray tracing for the <code>GraphqlApi</code>.<br/>additionalAuthenticationProviders:  A list of additional authentication providers for the <code>GraphqlApi</code> API.<br/>openIDConnectConfig:  The OpenID Connect configuration for the <code>GraphqlApi</code> object.:<br/>userPoolConfig:  The new Amazon Cognito user pool configuration for the <code>GraphqlApi</code> object.:<br/>authenticationType:  The new authentication type for the <code>GraphqlApi</code> object.<br/>logConfig:  The Amazon CloudWatch Logs configuration for the <code>GraphqlApi</code> object.:<br/>name:  The new name for the <code>GraphqlApi</code> object.<br/>apiId:  The API ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>excludeVerboseContent</i> Set to TRUE to exclude sections that contain information such as headers, context, and evaluated mapping templates, regardless of logging level.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>cloudWatchLogsRoleArn</i> The service role that AWS AppSync will assume to publish to Amazon CloudWatch logs in your account. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>fieldLogLevel</i> The field logging level. Values can be NONE, ERROR, or ALL.  <ul> <li>  <b>NONE</b>: No field-level logs are captured. </li> <li>  <b>ERROR</b>: Logs the following information only for the fields that are in error: <ul> <li> The error section in the server response. </li> <li> Field-level errors. </li> <li> The generated request/response functions that got resolved for error fields. </li> </ul> </li> <li>  <b>ALL</b>: The following information is logged for all fields in the query: <ul> <li> Field-level tracing information. </li> <li> The generated request/response functions that got resolved for each field. </li> </ul> </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>appIdClientRegex</i> A regular expression for validating the incoming Amazon Cognito user pool app client ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>defaultAction</i> The action that you want your GraphQL API to take when a request that uses Amazon Cognito user pool authentication doesn't match the Amazon Cognito user pool configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>awsRegion</i> The AWS Region in which the user pool was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>userPoolId</i> The user pool ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>authTTL</i> The number of milliseconds a token is valid after being authenticated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>iatTTL</i> The number of milliseconds a token is valid after being issued to a user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>clientId</i> The client identifier of the Relying party at the OpenID identity provider. This identifier is typically obtained when the Relying party is registered with the OpenID identity provider. You can specify a regular expression so the AWS AppSync can validate against multiple client identifiers at a time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>issuer</i> The issuer for the OpenID Connect configuration. The issuer returned by discovery must exactly match the value of <code>iss</code> in the ID token.<br/>
        :return: graphqlApi:  The updated <code>GraphqlApi</code> object.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>wafWebAclArn</i> The ARN of the AWS Web Application Firewall (WAF) ACL associated with this <code>GraphqlApi</code>, if one exists.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>xrayEnabled</i> A flag representing whether X-Ray tracing is enabled for this <code>GraphqlApi</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>additionalAuthenticationProviders</i> A list of additional authentication providers for the <code>GraphqlApi</code> API.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The tags.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>uris</i> The URIs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The ARN.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>openIDConnectConfig</i> The OpenID Connect configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>openIDConnectConfig</b>: The OpenID Connect configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>userPoolConfig</i> The Amazon Cognito user pool configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>userPoolConfig</b>: The Amazon Cognito user pool configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>logConfig</i> The Amazon CloudWatch Logs configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>logConfig</b>: The Amazon CloudWatch Logs configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>authenticationType</i> The authentication type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>apiId</i> The API ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The API name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>excludeVerboseContent</i> Set to TRUE to exclude sections that contain information such as headers, context, and evaluated mapping templates, regardless of logging level.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>cloudWatchLogsRoleArn</i> The service role that AWS AppSync will assume to publish to Amazon CloudWatch logs in your account. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>fieldLogLevel</i> The field logging level. Values can be NONE, ERROR, or ALL.  <ul> <li>  <b>NONE</b>: No field-level logs are captured. </li> <li>  <b>ERROR</b>: Logs the following information only for the fields that are in error: <ul> <li> The error section in the server response. </li> <li> Field-level errors. </li> <li> The generated request/response functions that got resolved for error fields. </li> </ul> </li> <li>  <b>ALL</b>: The following information is logged for all fields in the query: <ul> <li> Field-level tracing information. </li> <li> The generated request/response functions that got resolved for each field. </li> </ul> </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>appIdClientRegex</i> A regular expression for validating the incoming Amazon Cognito user pool app client ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>defaultAction</i> The action that you want your GraphQL API to take when a request that uses Amazon Cognito user pool authentication doesn't match the Amazon Cognito user pool configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>awsRegion</i> The AWS Region in which the user pool was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>userPoolId</i> The user pool ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>authTTL</i> The number of milliseconds a token is valid after being authenticated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>iatTTL</i> The number of milliseconds a token is valid after being issued to a user.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>clientId</i> The client identifier of the Relying party at the OpenID identity provider. This identifier is typically obtained when the Relying party is registered with the OpenID identity provider. You can specify a regular expression so the AWS AppSync can validate against multiple client identifiers at a time.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>issuer</i> The issuer for the OpenID Connect configuration. The issuer returned by discovery must exactly match the value of <code>iss</code> in the ID token.<br/>        """
        pass

    def update_resolver(self, fieldName: str, typeName: str, apiId: str, dataSourceName: str=None, requestMappingTemplate: str=None, responseMappingTemplate: str=None, kind: str=None, pipelineConfig: PipelineConfig=None, syncConfig: SyncConfig=None, cachingConfig: CachingConfig=None) -> UpdateResolverResponse:
        r"""Updates a <code>Resolver</code> object.

        :param self:
        :param cachingConfig:  The caching configuration for the resolver.:<br/>syncConfig:  The <code>SyncConfig</code> for a resolver attached to a versioned datasource.:<br/>pipelineConfig:  The <code>PipelineConfig</code>.:<br/>kind:  The resolver type. <ul> <li>  <b>UNIT</b>: A UNIT resolver type. A UNIT resolver is the default resolver type. A UNIT resolver enables you to execute a GraphQL query against a single data source. </li> <li>  <b>PIPELINE</b>: A PIPELINE resolver type. A PIPELINE resolver enables you to execute a series of <code>Function</code> in a serial manner. You can use a pipeline resolver to execute a GraphQL query against multiple data sources. </li> </ul><br/>responseMappingTemplate:  The new response mapping template.<br/>requestMappingTemplate:  The new request mapping template. A resolver uses a request mapping template to convert a GraphQL expression into a format that a data source can understand. Mapping templates are written in Apache Velocity Template Language (VTL). VTL request mapping templates are optional when using a Lambda data source. For all other data sources, VTL request and response mapping templates are required.<br/>dataSourceName:  The new data source name.<br/>fieldName:  The new field name.<br/>typeName:  The new type name.<br/>apiId:  The API ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>functions</i> A list of <code>Function</code> objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lambdaConflictHandlerConfig</i> The <code>LambdaConflictHandlerConfig</code> when configuring LAMBDA as the Conflict Handler.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>lambdaConflictHandlerConfig</b>: The <code>LambdaConflictHandlerConfig</code> when configuring LAMBDA as the Conflict Handler.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>conflictDetection</i> The Conflict Detection strategy to use. <ul> <li>  <b>VERSION</b>: Detect conflicts based on object versions for this resolver. </li> <li>  <b>NONE</b>: Do not detect conflicts when executing this resolver. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>conflictHandler</i> The Conflict Resolution strategy to perform in the event of a conflict. <ul> <li>  <b>OPTIMISTIC_CONCURRENCY</b>: Resolve conflicts by rejecting mutations when versions do not match the latest version at the server. </li> <li>  <b>AUTOMERGE</b>: Resolve conflicts with the Automerge conflict resolution strategy. </li> <li>  <b>LAMBDA</b>: Resolve conflicts with a Lambda function supplied in the LambdaConflictHandlerConfig. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>lambdaConflictHandlerArn</i> The Arn for the Lambda function to use as the Conflict Handler.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>cachingKeys</i> The caching keys for a resolver that has caching enabled. Valid values are entries from the <code>$context.arguments</code>, <code>$context.source</code>, and <code>$context.identity</code> maps.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ttl</i> The TTL in seconds for a resolver that has caching enabled. Valid values are between 1 and 3600 seconds.<br/>
        :return: resolver:  The updated <code>Resolver</code> object.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>cachingConfig</i> The caching configuration for the resolver.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>cachingConfig</b>: The caching configuration for the resolver.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>syncConfig</i> The <code>SyncConfig</code> for a resolver attached to a versioned datasource.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>syncConfig</b>: The <code>SyncConfig</code> for a resolver attached to a versioned datasource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>pipelineConfig</i> The <code>PipelineConfig</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>pipelineConfig</b>: The <code>PipelineConfig</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>kind</i> The resolver type. <ul> <li>  <b>UNIT</b>: A UNIT resolver type. A UNIT resolver is the default resolver type. A UNIT resolver enables you to execute a GraphQL query against a single data source. </li> <li>  <b>PIPELINE</b>: A PIPELINE resolver type. A PIPELINE resolver enables you to execute a series of <code>Function</code> in a serial manner. You can use a pipeline resolver to execute a GraphQL query against multiple data sources. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>responseMappingTemplate</i> The response mapping template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>requestMappingTemplate</i> The request mapping template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resolverArn</i> The resolver ARN.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>dataSourceName</i> The resolver data source name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>fieldName</i> The resolver field name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>typeName</i> The resolver type name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>functions</i> A list of <code>Function</code> objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>conflictDetection</i> The Conflict Detection strategy to use. <ul> <li>  <b>VERSION</b>: Detect conflicts based on object versions for this resolver. </li> <li>  <b>NONE</b>: Do not detect conflicts when executing this resolver. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>conflictHandler</i> The Conflict Resolution strategy to perform in the event of a conflict. <ul> <li>  <b>OPTIMISTIC_CONCURRENCY</b>: Resolve conflicts by rejecting mutations when versions do not match the latest version at the server. </li> <li>  <b>AUTOMERGE</b>: Resolve conflicts with the Automerge conflict resolution strategy. </li> <li>  <b>LAMBDA</b>: Resolve conflicts with a Lambda function supplied in the LambdaConflictHandlerConfig. </li> </ul><br/>The <code>LambdaConflictHandlerConfig</code> when configuring LAMBDA as the Conflict Handler.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>lambdaConflictHandlerConfig</b>: The <code>LambdaConflictHandlerConfig</code> when configuring LAMBDA as the Conflict Handler.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>cachingKeys</i> The caching keys for a resolver that has caching enabled. Valid values are entries from the <code>$context.arguments</code>, <code>$context.source</code>, and <code>$context.identity</code> maps.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ttl</i> The TTL in seconds for a resolver that has caching enabled. Valid values are between 1 and 3600 seconds.<br/>        """
        pass

    def update_type(self, format: str, typeName: str, apiId: str, definition: str=None) -> UpdateTypeResponse:
        r"""Updates a <code>Type</code> object.

        :param self:
        :param format:  The new type format: SDL or JSON.<br/>definition:  The new definition.<br/>typeName:  The new type name.<br/>apiId:  The API ID.<br/>
        :return: type:  The updated <code>Type</code> object.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>format</i> The type format: SDL or JSON.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>definition</i> The type definition.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The type ARN.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> The type description.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The type name.<br/>        """
        pass





class Athena(BaseClient):
    r"""Amazon Athena is an interactive query service that lets you use standard SQL to analyze data directly in Amazon S3. You can point Athena at your data in Amazon S3 and run ad-hoc queries and get results in seconds. Athena is serverless, so there is no infrastructure to set up or manage. You pay only for the queries you run. Athena scales automatically—executing queries in parallel—so results are fast, even with large datasets and complex queries. For more information, see <a href="http://docs.aws.amazon.com/athena/latest/ug/what-is.html">What is Amazon Athena</a> in the <i>Amazon Athena User Guide</i>. If you connect to Athena using the JDBC driver, use version 1.1.0 of the driver or later with the Amazon Athena API. Earlier version drivers do not support the API. For more information and to download the driver, see <a href="https://docs.aws.amazon.com/athena/latest/ug/connect-with-jdbc.html">Accessing Amazon Athena with JDBC</a>. For code samples using the AWS SDK for Java, see <a href="https://docs.aws.amazon.com/athena/latest/ug/code-samples.html">Examples and Code Samples</a> in the <i>Amazon Athena User Guide</i>."""


    class ListNamedQueriesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_named_queries` for valid parameters"""
            pass
    class ListQueryExecutionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_query_executions` for valid parameters"""
            pass
    class GetQueryResultsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_query_results` for valid parameters"""
            pass
    class ListDataCatalogsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_data_catalogs` for valid parameters"""
            pass
    class ListDatabasesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_databases` for valid parameters"""
            pass
    class ListTableMetadataPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_table_metadata` for valid parameters"""
            pass
    class ListTagsForResourcePaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_tags_for_resource` for valid parameters"""
            pass


    class BatchGetNamedQueryInput(Mapping):
        pass
    
    class BatchGetNamedQueryOutput(Mapping):
        pass
    
    class NamedQueryId(object):
        pass
    
    class BatchGetQueryExecutionInput(Mapping):
        pass
    
    class BatchGetQueryExecutionOutput(Mapping):
        pass
    
    class QueryExecutionId(object):
        pass
    
    class CreateDataCatalogInput(Mapping):
        pass
    
    class CreateDataCatalogOutput(Mapping):
        pass
    
    class ParametersMap(object):
        pass
    
    class Tag(Mapping):
        pass
    
    class CreateNamedQueryInput(Mapping):
        pass
    
    class CreateNamedQueryOutput(Mapping):
        pass
    
    class CreatePreparedStatementInput(Mapping):
        pass
    
    class CreatePreparedStatementOutput(Mapping):
        pass
    
    class CreateWorkGroupInput(Mapping):
        pass
    
    class CreateWorkGroupOutput(Mapping):
        pass
    
    class WorkGroupConfiguration(Mapping):
        pass
    
    class DeleteDataCatalogInput(Mapping):
        pass
    
    class DeleteDataCatalogOutput(Mapping):
        pass
    
    class DeleteNamedQueryInput(Mapping):
        pass
    
    class DeleteNamedQueryOutput(Mapping):
        pass
    
    class DeletePreparedStatementInput(Mapping):
        pass
    
    class DeletePreparedStatementOutput(Mapping):
        pass
    
    class DeleteWorkGroupInput(Mapping):
        pass
    
    class DeleteWorkGroupOutput(Mapping):
        pass
    
    class BoxedBoolean(object):
        pass
    
    class GetDataCatalogInput(Mapping):
        pass
    
    class GetDataCatalogOutput(Mapping):
        pass
    
    class GetDatabaseInput(Mapping):
        pass
    
    class GetDatabaseOutput(Mapping):
        pass
    
    class GetNamedQueryInput(Mapping):
        pass
    
    class GetNamedQueryOutput(Mapping):
        pass
    
    class GetPreparedStatementInput(Mapping):
        pass
    
    class GetPreparedStatementOutput(Mapping):
        pass
    
    class GetQueryExecutionInput(Mapping):
        pass
    
    class GetQueryExecutionOutput(Mapping):
        pass
    
    class GetQueryResultsInput(Mapping):
        pass
    
    class GetQueryResultsOutput(Mapping):
        pass
    
    class GetTableMetadataInput(Mapping):
        pass
    
    class GetTableMetadataOutput(Mapping):
        pass
    
    class GetWorkGroupInput(Mapping):
        pass
    
    class GetWorkGroupOutput(Mapping):
        pass
    
    class ListDataCatalogsInput(Mapping):
        pass
    
    class ListDataCatalogsOutput(Mapping):
        pass
    
    class ListDatabasesInput(Mapping):
        pass
    
    class ListDatabasesOutput(Mapping):
        pass
    
    class ListEngineVersionsInput(Mapping):
        pass
    
    class ListEngineVersionsOutput(Mapping):
        pass
    
    class ListNamedQueriesInput(Mapping):
        pass
    
    class ListNamedQueriesOutput(Mapping):
        pass
    
    class ListPreparedStatementsInput(Mapping):
        pass
    
    class ListPreparedStatementsOutput(Mapping):
        pass
    
    class ListQueryExecutionsInput(Mapping):
        pass
    
    class ListQueryExecutionsOutput(Mapping):
        pass
    
    class ListTableMetadataInput(Mapping):
        pass
    
    class ListTableMetadataOutput(Mapping):
        pass
    
    class ListTagsForResourceInput(Mapping):
        pass
    
    class ListTagsForResourceOutput(Mapping):
        pass
    
    class ListWorkGroupsInput(Mapping):
        pass
    
    class ListWorkGroupsOutput(Mapping):
        pass
    
    class StartQueryExecutionInput(Mapping):
        pass
    
    class StartQueryExecutionOutput(Mapping):
        pass
    
    class QueryExecutionContext(Mapping):
        pass
    
    class ResultConfiguration(Mapping):
        pass
    
    class StopQueryExecutionInput(Mapping):
        pass
    
    class StopQueryExecutionOutput(Mapping):
        pass
    
    class TagResourceInput(Mapping):
        pass
    
    class TagResourceOutput(Mapping):
        pass
    
    class UntagResourceInput(Mapping):
        pass
    
    class UntagResourceOutput(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateDataCatalogInput(Mapping):
        pass
    
    class UpdateDataCatalogOutput(Mapping):
        pass
    
    class UpdatePreparedStatementInput(Mapping):
        pass
    
    class UpdatePreparedStatementOutput(Mapping):
        pass
    
    class UpdateWorkGroupInput(Mapping):
        pass
    
    class UpdateWorkGroupOutput(Mapping):
        pass
    
    class WorkGroupConfigurationUpdates(Mapping):
        pass
    
    def batch_get_named_query(self, NamedQueryIds: List[NamedQueryId]) -> BatchGetNamedQueryOutput:
        r"""Returns the details of a single named query or a list of up to 50 queries, which you provide as an array of query ID strings. Requires you to have access to the workgroup in which the queries were saved. Use <a>ListNamedQueriesInput</a> to get the list of named query IDs in the specified workgroup. If information could not be retrieved for a submitted query ID, information about the query ID submitted is listed under <a>UnprocessedNamedQueryId</a>. Named queries differ from executed queries. Use <a>BatchGetQueryExecutionInput</a> to get details about each unique query execution, and <a>ListQueryExecutionsInput</a> to get a list of query execution IDs.

        :param self:
        :param NamedQueryIds:  An array of query IDs.<br/>
        :return: UnprocessedNamedQueryIds:  Information about provided query IDs.<br/>NamedQueries:  Information about the named query IDs submitted.<br/>        """
        pass

    def batch_get_query_execution(self, QueryExecutionIds: List[QueryExecutionId]) -> BatchGetQueryExecutionOutput:
        r"""Returns the details of a single query execution or a list of up to 50 query executions, which you provide as an array of query execution ID strings. Requires you to have access to the workgroup in which the queries ran. To get a list of query execution IDs, use <a>ListQueryExecutionsInput$WorkGroup</a>. Query executions differ from named (saved) queries. Use <a>BatchGetNamedQueryInput</a> to get details about named queries.

        :param self:
        :param QueryExecutionIds:  An array of query execution IDs.<br/>
        :return: UnprocessedQueryExecutionIds:  Information about the query executions that failed to run.<br/>QueryExecutions:  Information about a query execution.<br/>        """
        pass

    def create_data_catalog(self, Type: str, Name: str, Description: str=None, Parameters: ParametersMap=None, Tags: List[Tag]=None) -> CreateDataCatalogOutput:
        r"""Creates (registers) a data catalog with the specified name and properties. Catalogs created are visible to all users of the same AWS account.

        :param self:
        :param Tags:  A list of comma separated tags to add to the data catalog that is created.<br/>Parameters:  Specifies the Lambda function or functions to use for creating the data catalog. This is a mapping whose values depend on the catalog type.  <ul> <li> For the <code>HIVE</code> data catalog type, use the following syntax. The <code>metadata-function</code> parameter is required. <code>The sdk-version</code> parameter is optional and defaults to the currently supported version.  <code>metadata-function=<i>lambda_arn</i>, sdk-version=<i>version_number</i> </code>  </li> <li> For the <code>LAMBDA</code> data catalog type, use one of the following sets of required parameters, but not both. <ul> <li> If you have one Lambda function that processes metadata and another for reading the actual data, use the following syntax. Both parameters are required.  <code>metadata-function=<i>lambda_arn</i>, record-function=<i>lambda_arn</i> </code>  </li> <li>  If you have a composite Lambda function that processes both metadata and data, use the following syntax to specify your Lambda function.  <code>function=<i>lambda_arn</i> </code>  </li> </ul> </li> </ul><br/>Description:  A description of the data catalog to be created.<br/>Type:  The type of data catalog to create: <code>LAMBDA</code> for a federated catalog or <code>HIVE</code> for an external hive metastore. <note> Do not use the <code>GLUE</code> type. This refers to the <code>AwsDataCatalog</code> that already exists in your account, of which you can have only one. Specifying the <code>GLUE</code> type will result in an <code>INVALID_INPUT</code> error. </note><br/>Name:  The name of the data catalog to create. The catalog name must be unique for the AWS account and can use a maximum of 128 alphanumeric, underscore, at sign, or hyphen characters.<br/>
        :return:         """
        pass

    def create_named_query(self, QueryString: str, Database: str, Name: str, Description: str=None, ClientRequestToken: str=None, WorkGroup: str=None) -> CreateNamedQueryOutput:
        r"""Creates a named query in the specified workgroup. Requires that you have access to the workgroup. For code samples using the AWS SDK for Java, see <a href="http://docs.aws.amazon.com/athena/latest/ug/code-samples.html">Examples and Code Samples</a> in the <i>Amazon Athena User Guide</i>.

        :param self:
        :param WorkGroup:  The name of the workgroup in which the named query is being created.<br/>ClientRequestToken:  A unique case-sensitive string used to ensure the request to create the query is idempotent (executes only once). If another <code>CreateNamedQuery</code> request is received, the same response is returned and another query is not created. If a parameter has changed, for example, the <code>QueryString</code>, an error is returned. <important> This token is listed as not required because AWS SDKs (for example the AWS SDK for Java) auto-generate the token for users. If you are not using the AWS SDK or the AWS CLI, you must provide this token or the action will fail. </important><br/>QueryString:  The contents of the query with all query statements.<br/>Database:  The database to which the query belongs.<br/>Description:  The query description.<br/>Name:  The query name.<br/>
        :return: NamedQueryId:  The unique ID of the query.<br/>        """
        pass

    def create_prepared_statement(self, QueryStatement: str, WorkGroup: str, StatementName: str, Description: str=None) -> CreatePreparedStatementOutput:
        r"""Creates a prepared statement for use with SQL queries in Athena.

        :param self:
        :param Description:  The description of the prepared statement.<br/>QueryStatement:  The query string for the prepared statement.<br/>WorkGroup:  The name of the workgroup to which the prepared statement belongs.<br/>StatementName:  The name of the prepared statement.<br/>
        :return:         """
        pass

    def create_work_group(self, Name: str, Configuration: WorkGroupConfiguration=None, Description: str=None, Tags: List[Tag]=None) -> CreateWorkGroupOutput:
        r"""Creates a workgroup with the specified name.

        :param self:
        :param Tags:  A list of comma separated tags to add to the workgroup that is created.<br/>Description:  The workgroup description.<br/>Configuration:  The configuration for the workgroup, which includes the location in Amazon S3 where query results are stored, the encryption configuration, if any, used for encrypting query results, whether the Amazon CloudWatch Metrics are enabled for the workgroup, the limit for the amount of bytes scanned (cutoff) per query, if it is specified, and whether workgroup's settings (specified with EnforceWorkGroupConfiguration) in the WorkGroupConfiguration override client-side settings. See <a>WorkGroupConfiguration$EnforceWorkGroupConfiguration</a>.:<br/>Name:  The workgroup name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> The engine version that all queries running on the workgroup use. Queries on the <code>AmazonAthenaPreviewFunctionality</code> workgroup run on the preview engine regardless of this setting.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EngineVersion</b>: The engine version that all queries running on the workgroup use. Queries on the <code>AmazonAthenaPreviewFunctionality</code> workgroup run on the preview engine regardless of this setting.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequesterPaysEnabled</i> If set to <code>true</code>, allows members assigned to a workgroup to reference Amazon S3 Requester Pays buckets in queries. If set to <code>false</code>, workgroup members cannot query data from Requester Pays buckets, and queries that retrieve data from Requester Pays buckets cause an error. The default is <code>false</code>. For more information about Requester Pays buckets, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html">Requester Pays Buckets</a> in the <i>Amazon Simple Storage Service Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BytesScannedCutoffPerQuery</i> The upper data usage limit (cutoff) for the amount of bytes a single query in a workgroup is allowed to scan.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PublishCloudWatchMetricsEnabled</i> Indicates that the Amazon CloudWatch metrics are enabled for the workgroup.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnforceWorkGroupConfiguration</i> If set to "true", the settings for the workgroup override client-side settings. If set to "false", client-side settings are used. For more information, see <a href="https://docs.aws.amazon.com/athena/latest/ug/workgroups-settings-override.html">Workgroup Settings Override Client-Side Settings</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResultConfiguration</i> The configuration for the workgroup, which includes the location in Amazon S3 where query results are stored and the encryption option, if any, used for query results. To run the query, you must specify the query results location using one of the ways: either in the workgroup using this setting, or for individual queries (client-side), using <a>ResultConfiguration$OutputLocation</a>. If none of them is set, Athena issues an error that no output location is provided. For more information, see <a href="https://docs.aws.amazon.com/athena/latest/ug/querying.html">Query Results</a>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ResultConfiguration</b>: The configuration for the workgroup, which includes the location in Amazon S3 where query results are stored and the encryption option, if any, used for query results. To run the query, you must specify the query results location using one of the ways: either in the workgroup using this setting, or for individual queries (client-side), using <a>ResultConfiguration$OutputLocation</a>. If none of them is set, Athena issues an error that no output location is provided. For more information, see <a href="https://docs.aws.amazon.com/athena/latest/ug/querying.html">Query Results</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OutputLocation</i> The location in Amazon S3 where your query results are stored, such as <code>s3://path/to/query/bucket/</code>. To run the query, you must specify the query results location using one of the ways: either for individual queries using either this setting (client-side), or in the workgroup, using <a>WorkGroupConfiguration</a>. If none of them is set, Athena issues an error that no output location is provided. For more information, see <a href="https://docs.aws.amazon.com/athena/latest/ug/querying.html">Query Results</a>. If workgroup settings override client-side settings, then the query uses the settings specified for the workgroup. See <a>WorkGroupConfiguration$EnforceWorkGroupConfiguration</a>.<br/>If query results are encrypted in Amazon S3, indicates the encryption option used (for example, <code>SSE-KMS</code> or <code>CSE-KMS</code>) and key information. This is a client-side setting. If workgroup settings override client-side settings, then the query uses the encryption configuration that is specified for the workgroup, and also uses the location for storing query results specified in the workgroup. See <a>WorkGroupConfiguration$EnforceWorkGroupConfiguration</a> and <a href="https://docs.aws.amazon.com/athena/latest/ug/workgroups-settings-override.html">Workgroup Settings Override Client-Side Settings</a>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EncryptionConfiguration</b>: If query results are encrypted in Amazon S3, indicates the encryption option used (for example, <code>SSE-KMS</code> or <code>CSE-KMS</code>) and key information. This is a client-side setting. If workgroup settings override client-side settings, then the query uses the encryption configuration that is specified for the workgroup, and also uses the location for storing query results specified in the workgroup. See <a>WorkGroupConfiguration$EnforceWorkGroupConfiguration</a> and <a href="https://docs.aws.amazon.com/athena/latest/ug/workgroups-settings-override.html">Workgroup Settings Override Client-Side Settings</a>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EffectiveEngineVersion</i> Read only. The engine version on which the query runs. If the user requests a valid engine version other than Auto, the effective engine version is the same as the engine version that the user requested. If the user requests Auto, the effective engine version is chosen by Athena. When a request to update the engine version is made by a <code>CreateWorkGroup</code> or <code>UpdateWorkGroup</code> operation, the <code>EffectiveEngineVersion</code> field is ignored.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SelectedEngineVersion</i> The engine version requested by the user. Possible values are determined by the output of <code>ListEngineVersions</code>, including Auto. The default is Auto.<br/>
        :return:         """
        pass

    def delete_data_catalog(self, Name: str) -> DeleteDataCatalogOutput:
        r"""Deletes a data catalog.

        :param self:
        :param Name:  The name of the data catalog to delete.<br/>
        :return:         """
        pass

    def delete_named_query(self, NamedQueryId: str) -> DeleteNamedQueryOutput:
        r"""Deletes the named query if you have access to the workgroup in which the query was saved. For code samples using the AWS SDK for Java, see <a href="http://docs.aws.amazon.com/athena/latest/ug/code-samples.html">Examples and Code Samples</a> in the <i>Amazon Athena User Guide</i>.

        :param self:
        :param NamedQueryId:  The unique ID of the query to delete.<br/>
        :return:         """
        pass

    def delete_prepared_statement(self, WorkGroup: str, StatementName: str) -> DeletePreparedStatementOutput:
        r"""Deletes the prepared statement with the specified name from the specified workgroup.

        :param self:
        :param WorkGroup:  The workgroup to which the statement to be deleted belongs.<br/>StatementName:  The name of the prepared statement to delete.<br/>
        :return:         """
        pass

    def delete_work_group(self, WorkGroup: str, RecursiveDeleteOption: BoxedBoolean=None) -> DeleteWorkGroupOutput:
        r"""Deletes the workgroup with the specified name. The primary workgroup cannot be deleted.

        :param self:
        :param RecursiveDeleteOption:  The option to delete the workgroup and its contents even if the workgroup contains any named queries or query executions.<br/>WorkGroup:  The unique name of the workgroup to delete.<br/>
        :return:         """
        pass

    def get_data_catalog(self, Name: str) -> GetDataCatalogOutput:
        r"""Returns the specified data catalog.

        :param self:
        :param Name:  The name of the data catalog to return.<br/>
        :return: DataCatalog:  The data catalog returned.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Parameters</i> Specifies the Lambda function or functions to use for the data catalog. This is a mapping whose values depend on the catalog type.  <ul> <li> For the <code>HIVE</code> data catalog type, use the following syntax. The <code>metadata-function</code> parameter is required. <code>The sdk-version</code> parameter is optional and defaults to the currently supported version.  <code>metadata-function=<i>lambda_arn</i>, sdk-version=<i>version_number</i> </code>  </li> <li> For the <code>LAMBDA</code> data catalog type, use one of the following sets of required parameters, but not both. <ul> <li> If you have one Lambda function that processes metadata and another for reading the actual data, use the following syntax. Both parameters are required.  <code>metadata-function=<i>lambda_arn</i>, record-function=<i>lambda_arn</i> </code>  </li> <li>  If you have a composite Lambda function that processes both metadata and data, use the following syntax to specify your Lambda function.  <code>function=<i>lambda_arn</i> </code>  </li> </ul> </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of data catalog: <code>LAMBDA</code> for a federated catalog or <code>HIVE</code> for an external hive metastore. <code>GLUE</code> refers to the <code>AwsDataCatalog</code> that already exists in your account, of which you can have only one.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> An optional description of the data catalog.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the data catalog. The catalog name must be unique for the AWS account and can use a maximum of 128 alphanumeric, underscore, at sign, or hyphen characters.<br/>        """
        pass

    def get_database(self, DatabaseName: str, CatalogName: str) -> GetDatabaseOutput:
        r"""Returns a database object for the specified database and data catalog.

        :param self:
        :param DatabaseName:  The name of the database to return.<br/>CatalogName:  The name of the data catalog that contains the database to return.<br/>
        :return: Database:  The database returned.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Parameters</i> A set of custom key/value pairs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> An optional description of the database.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the database.<br/>        """
        pass

    def get_named_query(self, NamedQueryId: str) -> GetNamedQueryOutput:
        r"""Returns information about a single query. Requires that you have access to the workgroup in which the query was saved.

        :param self:
        :param NamedQueryId:  The unique ID of the query. Use <a>ListNamedQueries</a> to get query IDs.<br/>
        :return: NamedQuery:  Information about the query.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WorkGroup</i> The name of the workgroup that contains the named query.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NamedQueryId</i> The unique identifier of the query.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>QueryString</i> The SQL query statements that comprise the query.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Database</i> The database to which the query belongs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The query description.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The query name.<br/>        """
        pass

    def get_prepared_statement(self, WorkGroup: str, StatementName: str) -> GetPreparedStatementOutput:
        r"""Retrieves the prepared statement with the specified name from the specified workgroup.

        :param self:
        :param WorkGroup:  The workgroup to which the statement to be retrieved belongs.<br/>StatementName:  The name of the prepared statement to retrieve.<br/>
        :return: PreparedStatement:  The name of the prepared statement that was retrieved.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedTime</i> The last modified time of the prepared statement.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the prepared statement.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WorkGroupName</i> The name of the workgroup to which the prepared statement belongs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>QueryStatement</i> The query string for the prepared statement.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatementName</i> The name of the prepared statement.<br/>        """
        pass

    def get_query_execution(self, QueryExecutionId: str) -> GetQueryExecutionOutput:
        r"""Returns information about a single execution of a query if you have access to the workgroup in which the query ran. Each time a query executes, information about the query execution is saved with a unique ID.

        :param self:
        :param QueryExecutionId:  The unique ID of the query execution.<br/>
        :return: QueryExecution:  Information about the query execution.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> The engine version that executed the query.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EngineVersion</b>: The engine version that executed the query.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WorkGroup</i> The name of the workgroup in which the query ran.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Statistics</i> Query execution statistics, such as the amount of data scanned, the amount of time that the query took to process, and the type of statement that was run.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Statistics</b>: Query execution statistics, such as the amount of data scanned, the amount of time that the query took to process, and the type of statement that was run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The completion date, current state, submission time, and state change reason (if applicable) for the query execution.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Status</b>: The completion date, current state, submission time, and state change reason (if applicable) for the query execution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>QueryExecutionContext</i> The database in which the query execution occurred.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>QueryExecutionContext</b>: The database in which the query execution occurred.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResultConfiguration</i> The location in Amazon S3 where query results were stored and the encryption option, if any, used for query results. These are known as "client-side settings". If workgroup settings override client-side settings, then the query uses the location for the query results and the encryption configuration that are specified for the workgroup.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ResultConfiguration</b>: The location in Amazon S3 where query results were stored and the encryption option, if any, used for query results. These are known as "client-side settings". If workgroup settings override client-side settings, then the query uses the location for the query results and the encryption configuration that are specified for the workgroup.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatementType</i> The type of query statement that was run. <code>DDL</code> indicates DDL query statements. <code>DML</code> indicates DML (Data Manipulation Language) query statements, such as <code>CREATE TABLE AS SELECT</code>. <code>UTILITY</code> indicates query statements other than DDL and DML, such as <code>SHOW CREATE TABLE</code>, or <code>DESCRIBE &lt;table&gt;</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Query</i> The SQL query statements which the query execution ran.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>QueryExecutionId</i> The unique identifier for each query execution.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OutputLocation</i> The location in Amazon S3 where your query results are stored, such as <code>s3://path/to/query/bucket/</code>. To run the query, you must specify the query results location using one of the ways: either for individual queries using either this setting (client-side), or in the workgroup, using <a>WorkGroupConfiguration</a>. If none of them is set, Athena issues an error that no output location is provided. For more information, see <a href="https://docs.aws.amazon.com/athena/latest/ug/querying.html">Query Results</a>. If workgroup settings override client-side settings, then the query uses the settings specified for the workgroup. See <a>WorkGroupConfiguration$EnforceWorkGroupConfiguration</a>.<br/>If query results are encrypted in Amazon S3, indicates the encryption option used (for example, <code>SSE-KMS</code> or <code>CSE-KMS</code>) and key information. This is a client-side setting. If workgroup settings override client-side settings, then the query uses the encryption configuration that is specified for the workgroup, and also uses the location for storing query results specified in the workgroup. See <a>WorkGroupConfiguration$EnforceWorkGroupConfiguration</a> and <a href="https://docs.aws.amazon.com/athena/latest/ug/workgroups-settings-override.html">Workgroup Settings Override Client-Side Settings</a>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EncryptionConfiguration</b>: If query results are encrypted in Amazon S3, indicates the encryption option used (for example, <code>SSE-KMS</code> or <code>CSE-KMS</code>) and key information. This is a client-side setting. If workgroup settings override client-side settings, then the query uses the encryption configuration that is specified for the workgroup, and also uses the location for storing query results specified in the workgroup. See <a>WorkGroupConfiguration$EnforceWorkGroupConfiguration</a> and <a href="https://docs.aws.amazon.com/athena/latest/ug/workgroups-settings-override.html">Workgroup Settings Override Client-Side Settings</a>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Catalog</i> The name of the data catalog used in the query execution.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Database</i> The name of the database used in the query execution.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CompletionDateTime</i> The date and time that the query completed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SubmissionDateTime</i> The date and time that the query was submitted.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StateChangeReason</i> Further detail about the status of the query.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of query execution. <code>QUEUED</code> indicates that the query has been submitted to the service, and Athena will execute the query as soon as resources are available. <code>RUNNING</code> indicates that the query is in execution phase. <code>SUCCEEDED</code> indicates that the query completed without errors. <code>FAILED</code> indicates that the query experienced an error and did not complete processing. <code>CANCELLED</code> indicates that a user input interrupted query execution. <note> Athena automatically retries your queries in cases of certain transient errors. As a result, you may see the query state transition from <code>RUNNING</code> or <code>FAILED</code> to <code>QUEUED</code>.  </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceProcessingTimeInMillis</i> The number of milliseconds that Athena took to finalize and publish the query results after the query engine finished running the query.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>QueryPlanningTimeInMillis</i> The number of milliseconds that Athena took to plan the query processing flow. This includes the time spent retrieving table partitions from the data source. Note that because the query engine performs the query planning, query planning time is a subset of engine processing time.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>QueryQueueTimeInMillis</i> The number of milliseconds that the query was in your query queue waiting for resources. Note that if transient errors occur, Athena might automatically add the query back to the queue.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalExecutionTimeInMillis</i> The number of milliseconds that Athena took to run the query.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DataManifestLocation</i> The location and file name of a data manifest file. The manifest file is saved to the Athena query results location in Amazon S3. The manifest file tracks files that the query wrote to Amazon S3. If the query fails, the manifest file also tracks files that the query intended to write. The manifest is useful for identifying orphaned files resulting from a failed query. For more information, see <a href="https://docs.aws.amazon.com/athena/latest/ug/querying.html">Working with Query Results, Output Files, and Query History</a> in the <i>Amazon Athena User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DataScannedInBytes</i> The number of bytes in the data that was queried.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineExecutionTimeInMillis</i> The number of milliseconds that the query took to execute.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EffectiveEngineVersion</i> Read only. The engine version on which the query runs. If the user requests a valid engine version other than Auto, the effective engine version is the same as the engine version that the user requested. If the user requests Auto, the effective engine version is chosen by Athena. When a request to update the engine version is made by a <code>CreateWorkGroup</code> or <code>UpdateWorkGroup</code> operation, the <code>EffectiveEngineVersion</code> field is ignored.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SelectedEngineVersion</i> The engine version requested by the user. Possible values are determined by the output of <code>ListEngineVersions</code>, including Auto. The default is Auto.<br/>        """
        pass

    def get_query_results(self, QueryExecutionId: str, NextToken: str=None, MaxResults: int=None) -> GetQueryResultsOutput:
        r"""Streams the results of a single query execution specified by <code>QueryExecutionId</code> from the Athena query results location in Amazon S3. For more information, see <a href="https://docs.aws.amazon.com/athena/latest/ug/querying.html">Query Results</a> in the <i>Amazon Athena User Guide</i>. This request does not execute the query but returns results. Use <a>StartQueryExecution</a> to run a query. To stream query results successfully, the IAM principal with permission to call <code>GetQueryResults</code> also must have permissions to the Amazon S3 <code>GetObject</code> action for the Athena query results location. <important> IAM principals with permission to the Amazon S3 <code>GetObject</code> action for the query results location are able to retrieve query results from Amazon S3 even if permission to the <code>GetQueryResults</code> action is denied. To restrict user or role access, ensure that Amazon S3 permissions to the Athena query location are denied. </important>

        :param self:
        :param MaxResults:  The maximum number of results (rows) to return in this request.<br/>NextToken:  A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the <code>NextToken</code> from the response object of the previous page call.<br/>QueryExecutionId:  The unique ID of the query execution.<br/>
        :return: NextToken:  A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the <code>NextToken</code> from the response object of the previous page call.<br/>ResultSet:  The results of the query execution.:<br/>UpdateCount:  The number of rows inserted with a CREATE TABLE AS SELECT statement. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResultSetMetadata</i> The metadata that describes the column structure and data types of a table of query results.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ResultSetMetadata</b>: The metadata that describes the column structure and data types of a table of query results.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Rows</i> The rows in the table.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ColumnInfo</i> Information about the columns returned in a query result metadata.<br/>        """
        pass

    def get_table_metadata(self, TableName: str, DatabaseName: str, CatalogName: str) -> GetTableMetadataOutput:
        r"""Returns table metadata for the specified catalog, database, and table.

        :param self:
        :param TableName:  The name of the table for which metadata is returned.<br/>DatabaseName:  The name of the database that contains the table metadata to return.<br/>CatalogName:  The name of the data catalog that contains the database and table metadata to return.<br/>
        :return: TableMetadata:  An object that contains table metadata.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Parameters</i> A set of custom key/value pairs for table properties.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PartitionKeys</i> A list of the partition keys in the table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Columns</i> A list of the columns in the table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TableType</i> The type of table. In Athena, only <code>EXTERNAL_TABLE</code> is supported.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastAccessTime</i> The last time the table was accessed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreateTime</i> The time that the table was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the table.<br/>        """
        pass

    def get_work_group(self, WorkGroup: str) -> GetWorkGroupOutput:
        r"""Returns information about the workgroup with the specified name.

        :param self:
        :param WorkGroup:  The name of the workgroup.<br/>
        :return: WorkGroup:  Information about the workgroup.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The date and time the workgroup was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The workgroup description.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Configuration</i> The configuration of the workgroup, which includes the location in Amazon S3 where query results are stored, the encryption configuration, if any, used for query results; whether the Amazon CloudWatch Metrics are enabled for the workgroup; whether workgroup settings override client-side settings; and the data usage limits for the amount of data scanned per query or per workgroup. The workgroup settings override is specified in EnforceWorkGroupConfiguration (true/false) in the WorkGroupConfiguration. See <a>WorkGroupConfiguration$EnforceWorkGroupConfiguration</a>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Configuration</b>: The configuration of the workgroup, which includes the location in Amazon S3 where query results are stored, the encryption configuration, if any, used for query results; whether the Amazon CloudWatch Metrics are enabled for the workgroup; whether workgroup settings override client-side settings; and the data usage limits for the amount of data scanned per query or per workgroup. The workgroup settings override is specified in EnforceWorkGroupConfiguration (true/false) in the WorkGroupConfiguration. See <a>WorkGroupConfiguration$EnforceWorkGroupConfiguration</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the workgroup: ENABLED or DISABLED.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The workgroup name.<br/>The configuration for the workgroup, which includes the location in Amazon S3 where query results are stored and the encryption option, if any, used for query results. To run the query, you must specify the query results location using one of the ways: either in the workgroup using this setting, or for individual queries (client-side), using <a>ResultConfiguration$OutputLocation</a>. If none of them is set, Athena issues an error that no output location is provided. For more information, see <a href="https://docs.aws.amazon.com/athena/latest/ug/querying.html">Query Results</a>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ResultConfiguration</b>: The configuration for the workgroup, which includes the location in Amazon S3 where query results are stored and the encryption option, if any, used for query results. To run the query, you must specify the query results location using one of the ways: either in the workgroup using this setting, or for individual queries (client-side), using <a>ResultConfiguration$OutputLocation</a>. If none of them is set, Athena issues an error that no output location is provided. For more information, see <a href="https://docs.aws.amazon.com/athena/latest/ug/querying.html">Query Results</a>.        """
        pass

    def list_data_catalogs(self, NextToken: str=None, MaxResults: int=None) -> ListDataCatalogsOutput:
        r"""Lists the data catalogs in the current AWS account.

        :param self:
        :param MaxResults:  Specifies the maximum number of data catalogs to return.<br/>NextToken:  A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the NextToken from the response object of the previous page call.<br/>
        :return: NextToken:  A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the NextToken from the response object of the previous page call.<br/>DataCatalogsSummary:  A summary list of data catalogs.<br/>        """
        pass

    def list_databases(self, CatalogName: str, NextToken: str=None, MaxResults: int=None) -> ListDatabasesOutput:
        r"""Lists the databases in the specified data catalog.

        :param self:
        :param MaxResults:  Specifies the maximum number of results to return.<br/>NextToken:  A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the <code>NextToken</code> from the response object of the previous page call.<br/>CatalogName:  The name of the data catalog that contains the databases to return.<br/>
        :return: NextToken:  A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the NextToken from the response object of the previous page call.<br/>DatabaseList:  A list of databases from a data catalog.<br/>        """
        pass

    def list_engine_versions(self, NextToken: str=None, MaxResults: int=None) -> ListEngineVersionsOutput:
        r"""Returns a list of engine versions that are available to choose from, including the Auto option.

        :param self:
        :param MaxResults:  The maximum number of engine versions to return in this request.<br/>NextToken:  A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the <code>NextToken</code> from the response object of the previous page call.<br/>
        :return: NextToken:  A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the <code>NextToken</code> from the response object of the previous page call.<br/>EngineVersions:  A list of engine versions that are available to choose from.<br/>        """
        pass

    def list_named_queries(self, NextToken: str=None, MaxResults: int=None, WorkGroup: str=None) -> ListNamedQueriesOutput:
        r"""Provides a list of available query IDs only for queries saved in the specified workgroup. Requires that you have access to the specified workgroup. If a workgroup is not specified, lists the saved queries for the primary workgroup. For code samples using the AWS SDK for Java, see <a href="http://docs.aws.amazon.com/athena/latest/ug/code-samples.html">Examples and Code Samples</a> in the <i>Amazon Athena User Guide</i>.

        :param self:
        :param WorkGroup:  The name of the workgroup from which the named queries are being returned. If a workgroup is not specified, the saved queries for the primary workgroup are returned.<br/>MaxResults:  The maximum number of queries to return in this request.<br/>NextToken:  A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the <code>NextToken</code> from the response object of the previous page call.<br/>
        :return: NextToken:  A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the <code>NextToken</code> from the response object of the previous page call.<br/>NamedQueryIds:  The list of unique query IDs.<br/>        """
        pass

    def list_prepared_statements(self, WorkGroup: str, NextToken: str=None, MaxResults: int=None) -> ListPreparedStatementsOutput:
        r"""Lists the prepared statements in the specfied workgroup.

        :param self:
        :param MaxResults:  The maximum number of results to return in this request.<br/>NextToken:  A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the <code>NextToken</code> from the response object of the previous page call.<br/>WorkGroup:  The workgroup to list the prepared statements for.<br/>
        :return: NextToken:  A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the <code>NextToken</code> from the response object of the previous page call.<br/>PreparedStatements:  The list of prepared statements for the workgroup.<br/>        """
        pass

    def list_query_executions(self, NextToken: str=None, MaxResults: int=None, WorkGroup: str=None) -> ListQueryExecutionsOutput:
        r"""Provides a list of available query execution IDs for the queries in the specified workgroup. If a workgroup is not specified, returns a list of query execution IDs for the primary workgroup. Requires you to have access to the workgroup in which the queries ran. For code samples using the AWS SDK for Java, see <a href="http://docs.aws.amazon.com/athena/latest/ug/code-samples.html">Examples and Code Samples</a> in the <i>Amazon Athena User Guide</i>.

        :param self:
        :param WorkGroup:  The name of the workgroup from which queries are being returned. If a workgroup is not specified, a list of available query execution IDs for the queries in the primary workgroup is returned.<br/>MaxResults:  The maximum number of query executions to return in this request.<br/>NextToken:  A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the <code>NextToken</code> from the response object of the previous page call.<br/>
        :return: NextToken:  A token to be used by the next request if this request is truncated.<br/>QueryExecutionIds:  The unique IDs of each query execution as an array of strings.<br/>        """
        pass

    def list_table_metadata(self, DatabaseName: str, CatalogName: str, Expression: str=None, NextToken: str=None, MaxResults: int=None) -> ListTableMetadataOutput:
        r"""Lists the metadata for the tables in the specified data catalog database.

        :param self:
        :param MaxResults:  Specifies the maximum number of results to return.<br/>NextToken:  A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the NextToken from the response object of the previous page call.<br/>Expression:  A regex filter that pattern-matches table names. If no expression is supplied, metadata for all tables are listed.<br/>DatabaseName:  The name of the database for which table metadata should be returned.<br/>CatalogName:  The name of the data catalog for which table metadata should be returned.<br/>
        :return: NextToken:  A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the NextToken from the response object of the previous page call.<br/>TableMetadataList:  A list of table metadata.<br/>        """
        pass

    def list_tags_for_resource(self, ResourceARN: str, NextToken: str=None, MaxResults: int=None) -> ListTagsForResourceOutput:
        r"""Lists the tags associated with an Athena workgroup or data catalog resource.

        :param self:
        :param MaxResults:  The maximum number of results to be returned per request that lists the tags for the resource.<br/>NextToken:  The token for the next set of results, or null if there are no additional results for this request, where the request lists the tags for the resource with the specified ARN.<br/>ResourceARN:  Lists the tags for the resource with the specified ARN.<br/>
        :return: NextToken:  A token to be used by the next request if this request is truncated.<br/>Tags:  The list of tags associated with the specified resource.<br/>        """
        pass

    def list_work_groups(self, NextToken: str=None, MaxResults: int=None) -> ListWorkGroupsOutput:
        r"""Lists available workgroups for the account.

        :param self:
        :param MaxResults:  The maximum number of workgroups to return in this request.<br/>NextToken:  A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the <code>NextToken</code> from the response object of the previous page call.<br/>
        :return: NextToken:  A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the <code>NextToken</code> from the response object of the previous page call.<br/>WorkGroups:  A list of <a>WorkGroupSummary</a> objects that include the names, descriptions, creation times, and states for each workgroup.<br/>        """
        pass

    def start_query_execution(self, QueryString: str, ClientRequestToken: str=None, QueryExecutionContext: QueryExecutionContext=None, ResultConfiguration: ResultConfiguration=None, WorkGroup: str=None) -> StartQueryExecutionOutput:
        r"""Runs the SQL query statements contained in the <code>Query</code>. Requires you to have access to the workgroup in which the query ran. Running queries against an external catalog requires <a>GetDataCatalog</a> permission to the catalog. For code samples using the AWS SDK for Java, see <a href="http://docs.aws.amazon.com/athena/latest/ug/code-samples.html">Examples and Code Samples</a> in the <i>Amazon Athena User Guide</i>.

        :param self:
        :param WorkGroup:  The name of the workgroup in which the query is being started.<br/>ResultConfiguration:  Specifies information about where and how to save the results of the query execution. If the query runs in a workgroup, then workgroup's settings may override query settings. This affects the query results location. The workgroup settings override is specified in EnforceWorkGroupConfiguration (true/false) in the WorkGroupConfiguration. See <a>WorkGroupConfiguration$EnforceWorkGroupConfiguration</a>.:<br/>QueryExecutionContext:  The database within which the query executes.:<br/>ClientRequestToken:  A unique case-sensitive string used to ensure the request to create the query is idempotent (executes only once). If another <code>StartQueryExecution</code> request is received, the same response is returned and another query is not created. If a parameter has changed, for example, the <code>QueryString</code>, an error is returned. <important> This token is listed as not required because AWS SDKs (for example the AWS SDK for Java) auto-generate the token for users. If you are not using the AWS SDK or the AWS CLI, you must provide this token or the action will fail. </important><br/>QueryString:  The SQL query statements to be executed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Catalog</i> The name of the data catalog used in the query execution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Database</i> The name of the database used in the query execution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EncryptionConfiguration</i> If query results are encrypted in Amazon S3, indicates the encryption option used (for example, <code>SSE-KMS</code> or <code>CSE-KMS</code>) and key information. This is a client-side setting. If workgroup settings override client-side settings, then the query uses the encryption configuration that is specified for the workgroup, and also uses the location for storing query results specified in the workgroup. See <a>WorkGroupConfiguration$EnforceWorkGroupConfiguration</a> and <a href="https://docs.aws.amazon.com/athena/latest/ug/workgroups-settings-override.html">Workgroup Settings Override Client-Side Settings</a>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EncryptionConfiguration</b>: If query results are encrypted in Amazon S3, indicates the encryption option used (for example, <code>SSE-KMS</code> or <code>CSE-KMS</code>) and key information. This is a client-side setting. If workgroup settings override client-side settings, then the query uses the encryption configuration that is specified for the workgroup, and also uses the location for storing query results specified in the workgroup. See <a>WorkGroupConfiguration$EnforceWorkGroupConfiguration</a> and <a href="https://docs.aws.amazon.com/athena/latest/ug/workgroups-settings-override.html">Workgroup Settings Override Client-Side Settings</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OutputLocation</i> The location in Amazon S3 where your query results are stored, such as <code>s3://path/to/query/bucket/</code>. To run the query, you must specify the query results location using one of the ways: either for individual queries using either this setting (client-side), or in the workgroup, using <a>WorkGroupConfiguration</a>. If none of them is set, Athena issues an error that no output location is provided. For more information, see <a href="https://docs.aws.amazon.com/athena/latest/ug/querying.html">Query Results</a>. If workgroup settings override client-side settings, then the query uses the settings specified for the workgroup. See <a>WorkGroupConfiguration$EnforceWorkGroupConfiguration</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKey</i> For <code>SSE-KMS</code> and <code>CSE-KMS</code>, this is the KMS key ARN or ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EncryptionOption</i> Indicates whether Amazon S3 server-side encryption with Amazon S3-managed keys (<code>SSE-S3</code>), server-side encryption with KMS-managed keys (<code>SSE-KMS</code>), or client-side encryption with KMS-managed keys (CSE-KMS) is used. If a query runs in a workgroup and the workgroup overrides client-side settings, then the workgroup's setting for encryption is used. It specifies whether query results must be encrypted, for all queries that run in this workgroup. <br/>
        :return: QueryExecutionId:  The unique ID of the query that ran as a result of this request.<br/>        """
        pass

    def stop_query_execution(self, QueryExecutionId: str) -> StopQueryExecutionOutput:
        r"""Stops a query execution. Requires you to have access to the workgroup in which the query ran. For code samples using the AWS SDK for Java, see <a href="http://docs.aws.amazon.com/athena/latest/ug/code-samples.html">Examples and Code Samples</a> in the <i>Amazon Athena User Guide</i>.

        :param self:
        :param QueryExecutionId:  The unique ID of the query execution to stop.<br/>
        :return:         """
        pass

    def tag_resource(self, Tags: List[Tag], ResourceARN: str) -> TagResourceOutput:
        r"""Adds one or more tags to an Athena resource. A tag is a label that you assign to a resource. In Athena, a resource can be a workgroup or data catalog. Each tag consists of a key and an optional value, both of which you define. For example, you can use tags to categorize Athena workgroups or data catalogs by purpose, owner, or environment. Use a consistent set of tag keys to make it easier to search and filter workgroups or data catalogs in your account. For best practices, see <a href="https://aws.amazon.com/answers/account-management/aws-tagging-strategies/">Tagging Best Practices</a>. Tag keys can be from 1 to 128 UTF-8 Unicode characters, and tag values can be from 0 to 256 UTF-8 Unicode characters. Tags can use letters and numbers representable in UTF-8, and the following characters: + - = . _ : / @. Tag keys and values are case-sensitive. Tag keys must be unique per resource. If you specify more than one tag, separate them by commas.

        :param self:
        :param Tags:  A collection of one or more tags, separated by commas, to be added to an Athena workgroup or data catalog resource.<br/>ResourceARN:  Specifies the ARN of the Athena resource (workgroup or data catalog) to which tags are to be added.<br/>
        :return:         """
        pass

    def untag_resource(self, TagKeys: List[TagKey], ResourceARN: str) -> UntagResourceOutput:
        r"""Removes one or more tags from a data catalog or workgroup resource.

        :param self:
        :param TagKeys:  A comma-separated list of one or more tag keys whose tags are to be removed from the specified resource.<br/>ResourceARN:  Specifies the ARN of the resource from which tags are to be removed.<br/>
        :return:         """
        pass

    def update_data_catalog(self, Type: str, Name: str, Description: str=None, Parameters: ParametersMap=None) -> UpdateDataCatalogOutput:
        r"""Updates the data catalog that has the specified name.

        :param self:
        :param Parameters:  Specifies the Lambda function or functions to use for updating the data catalog. This is a mapping whose values depend on the catalog type.  <ul> <li> For the <code>HIVE</code> data catalog type, use the following syntax. The <code>metadata-function</code> parameter is required. <code>The sdk-version</code> parameter is optional and defaults to the currently supported version.  <code>metadata-function=<i>lambda_arn</i>, sdk-version=<i>version_number</i> </code>  </li> <li> For the <code>LAMBDA</code> data catalog type, use one of the following sets of required parameters, but not both. <ul> <li> If you have one Lambda function that processes metadata and another for reading the actual data, use the following syntax. Both parameters are required.  <code>metadata-function=<i>lambda_arn</i>, record-function=<i>lambda_arn</i> </code>  </li> <li>  If you have a composite Lambda function that processes both metadata and data, use the following syntax to specify your Lambda function.  <code>function=<i>lambda_arn</i> </code>  </li> </ul> </li> </ul><br/>Description:  New or modified text that describes the data catalog.<br/>Type:  Specifies the type of data catalog to update. Specify <code>LAMBDA</code> for a federated catalog or <code>HIVE</code> for an external hive metastore. <note> Do not use the <code>GLUE</code> type. This refers to the <code>AwsDataCatalog</code> that already exists in your account, of which you can have only one. Specifying the <code>GLUE</code> type will result in an <code>INVALID_INPUT</code> error. </note><br/>Name:  The name of the data catalog to update. The catalog name must be unique for the AWS account and can use a maximum of 128 alphanumeric, underscore, at sign, or hyphen characters.<br/>
        :return:         """
        pass

    def update_prepared_statement(self, QueryStatement: str, WorkGroup: str, StatementName: str, Description: str=None) -> UpdatePreparedStatementOutput:
        r"""Updates a prepared statement.

        :param self:
        :param Description:  The description of the prepared statement.<br/>QueryStatement:  The query string for the prepared statement.<br/>WorkGroup:  The workgroup for the prepared statement.<br/>StatementName:  The name of the prepared statement.<br/>
        :return:         """
        pass

    def update_work_group(self, WorkGroup: str, Description: str=None, ConfigurationUpdates: WorkGroupConfigurationUpdates=None, State: str=None) -> UpdateWorkGroupOutput:
        r"""Updates the workgroup with the specified name. The workgroup's name cannot be changed.

        :param self:
        :param State:  The workgroup state that will be updated for the given workgroup.<br/>ConfigurationUpdates:  The workgroup configuration that will be updated for the given workgroup.:<br/>Description:  The workgroup description.<br/>WorkGroup:  The specified workgroup that will be updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> The engine version requested when a workgroup is updated. After the update, all queries on the workgroup run on the requested engine version. If no value was previously set, the default is Auto. Queries on the <code>AmazonAthenaPreviewFunctionality</code> workgroup run on the preview engine regardless of this setting.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EngineVersion</b>: The engine version requested when a workgroup is updated. After the update, all queries on the workgroup run on the requested engine version. If no value was previously set, the default is Auto. Queries on the <code>AmazonAthenaPreviewFunctionality</code> workgroup run on the preview engine regardless of this setting.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequesterPaysEnabled</i> If set to <code>true</code>, allows members assigned to a workgroup to specify Amazon S3 Requester Pays buckets in queries. If set to <code>false</code>, workgroup members cannot query data from Requester Pays buckets, and queries that retrieve data from Requester Pays buckets cause an error. The default is <code>false</code>. For more information about Requester Pays buckets, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html">Requester Pays Buckets</a> in the <i>Amazon Simple Storage Service Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RemoveBytesScannedCutoffPerQuery</i> Indicates that the data usage control limit per query is removed. <a>WorkGroupConfiguration$BytesScannedCutoffPerQuery</a> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BytesScannedCutoffPerQuery</i> The upper limit (cutoff) for the amount of bytes a single query in a workgroup is allowed to scan.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PublishCloudWatchMetricsEnabled</i> Indicates whether this workgroup enables publishing metrics to Amazon CloudWatch.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResultConfigurationUpdates</i> The result configuration information about the queries in this workgroup that will be updated. Includes the updated results location and an updated option for encrypting query results.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ResultConfigurationUpdates</b>: The result configuration information about the queries in this workgroup that will be updated. Includes the updated results location and an updated option for encrypting query results.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnforceWorkGroupConfiguration</i> If set to "true", the settings for the workgroup override client-side settings. If set to "false" client-side settings are used. For more information, see <a href="https://docs.aws.amazon.com/athena/latest/ug/workgroups-settings-override.html">Workgroup Settings Override Client-Side Settings</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RemoveOutputLocation</i> If set to "true", indicates that the previously-specified query results location (also known as a client-side setting) for queries in this workgroup should be ignored and set to null. If set to "false" or not set, and a value is present in the OutputLocation in ResultConfigurationUpdates (the client-side setting), the OutputLocation in the workgroup's ResultConfiguration will be updated with the new value. For more information, see <a href="https://docs.aws.amazon.com/athena/latest/ug/workgroups-settings-override.html">Workgroup Settings Override Client-Side Settings</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OutputLocation</i> The location in Amazon S3 where your query results are stored, such as <code>s3://path/to/query/bucket/</code>. For more information, see <a href="https://docs.aws.amazon.com/athena/latest/ug/querying.html">Query Results</a> If workgroup settings override client-side settings, then the query uses the location for the query results and the encryption configuration that are specified for the workgroup. The "workgroup settings override" is specified in EnforceWorkGroupConfiguration (true/false) in the WorkGroupConfiguration. See <a>WorkGroupConfiguration$EnforceWorkGroupConfiguration</a>.<br/>The encryption configuration for the query results.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EncryptionConfiguration</b>: The encryption configuration for the query results.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EffectiveEngineVersion</i> Read only. The engine version on which the query runs. If the user requests a valid engine version other than Auto, the effective engine version is the same as the engine version that the user requested. If the user requests Auto, the effective engine version is chosen by Athena. When a request to update the engine version is made by a <code>CreateWorkGroup</code> or <code>UpdateWorkGroup</code> operation, the <code>EffectiveEngineVersion</code> field is ignored.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SelectedEngineVersion</i> The engine version requested by the user. Possible values are determined by the output of <code>ListEngineVersions</code>, including Auto. The default is Auto.<br/>
        :return:         """
        pass





class AuditManager(BaseClient):
    r"""Welcome to the AWS Audit Manager API reference. This guide is for developers who need detailed information about the AWS Audit Manager API operations, data types, and errors.  AWS Audit Manager is a service that provides automated evidence collection so that you can continuously audit your AWS usage, and assess the effectiveness of your controls to better manage risk and simplify compliance. AWS Audit Manager provides pre-built frameworks that structure and automate assessments for a given compliance standard. Frameworks include a pre-built collection of controls with descriptions and testing procedures, which are grouped according to the requirements of the specified compliance standard or regulation. You can also customize frameworks and controls to support internal audits with unique requirements.  Use the following links to get started with the AWS Audit Manager API: <ul> <li>  <a href="https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_Operations.html">Actions</a>: An alphabetical list of all AWS Audit Manager API operations. </li> <li>  <a href="https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_Types.html">Data types</a>: An alphabetical list of all AWS Audit Manager data types. </li> <li>  <a href="https://docs.aws.amazon.com/audit-manager/latest/APIReference/CommonParameters.html">Common parameters</a>: Parameters that all Query operations can use. </li> <li>  <a href="https://docs.aws.amazon.com/audit-manager/latest/APIReference/CommonErrors.html">Common errors</a>: Client and server errors that all operations can return. </li> </ul> If you're new to AWS Audit Manager, we recommend that you review the <a href="https://docs.aws.amazon.com/audit-manager/latest/userguide/what-is.html"> AWS Audit Manager User Guide</a>."""




    class AssociateAssessmentReportEvidenceFolderRequest(Mapping):
        pass
    
    class AssociateAssessmentReportEvidenceFolderResponse(Mapping):
        pass
    
    class BatchAssociateAssessmentReportEvidenceRequest(Mapping):
        pass
    
    class BatchAssociateAssessmentReportEvidenceResponse(Mapping):
        pass
    
    class UUID(object):
        pass
    
    class BatchCreateDelegationByAssessmentRequest(Mapping):
        pass
    
    class BatchCreateDelegationByAssessmentResponse(Mapping):
        pass
    
    class CreateDelegationRequest(Mapping):
        pass
    
    class BatchDeleteDelegationByAssessmentRequest(Mapping):
        pass
    
    class BatchDeleteDelegationByAssessmentResponse(Mapping):
        pass
    
    class BatchDisassociateAssessmentReportEvidenceRequest(Mapping):
        pass
    
    class BatchDisassociateAssessmentReportEvidenceResponse(Mapping):
        pass
    
    class BatchImportEvidenceToAssessmentControlRequest(Mapping):
        pass
    
    class BatchImportEvidenceToAssessmentControlResponse(Mapping):
        pass
    
    class ManualEvidence(Mapping):
        pass
    
    class CreateAssessmentRequest(Mapping):
        pass
    
    class CreateAssessmentResponse(Mapping):
        pass
    
    class AssessmentReportsDestination(Mapping):
        pass
    
    class Scope(Mapping):
        pass
    
    class Role(Mapping):
        pass
    
    class TagMap(object):
        pass
    
    class CreateAssessmentFrameworkRequest(Mapping):
        pass
    
    class CreateAssessmentFrameworkResponse(Mapping):
        pass
    
    class CreateAssessmentFrameworkControlSet(Mapping):
        pass
    
    class CreateAssessmentReportRequest(Mapping):
        pass
    
    class CreateAssessmentReportResponse(Mapping):
        pass
    
    class CreateControlRequest(Mapping):
        pass
    
    class CreateControlResponse(Mapping):
        pass
    
    class CreateControlMappingSource(Mapping):
        pass
    
    class DeleteAssessmentRequest(Mapping):
        pass
    
    class DeleteAssessmentResponse(Mapping):
        pass
    
    class DeleteAssessmentFrameworkRequest(Mapping):
        pass
    
    class DeleteAssessmentFrameworkResponse(Mapping):
        pass
    
    class DeleteAssessmentReportRequest(Mapping):
        pass
    
    class DeleteAssessmentReportResponse(Mapping):
        pass
    
    class DeleteControlRequest(Mapping):
        pass
    
    class DeleteControlResponse(Mapping):
        pass
    
    class DeregisterAccountRequest(Mapping):
        pass
    
    class DeregisterAccountResponse(Mapping):
        pass
    
    class DeregisterOrganizationAdminAccountRequest(Mapping):
        pass
    
    class DeregisterOrganizationAdminAccountResponse(Mapping):
        pass
    
    class DisassociateAssessmentReportEvidenceFolderRequest(Mapping):
        pass
    
    class DisassociateAssessmentReportEvidenceFolderResponse(Mapping):
        pass
    
    class GetAccountStatusRequest(Mapping):
        pass
    
    class GetAccountStatusResponse(Mapping):
        pass
    
    class GetAssessmentRequest(Mapping):
        pass
    
    class GetAssessmentResponse(Mapping):
        pass
    
    class GetAssessmentFrameworkRequest(Mapping):
        pass
    
    class GetAssessmentFrameworkResponse(Mapping):
        pass
    
    class GetAssessmentReportUrlRequest(Mapping):
        pass
    
    class GetAssessmentReportUrlResponse(Mapping):
        pass
    
    class GetChangeLogsRequest(Mapping):
        pass
    
    class GetChangeLogsResponse(Mapping):
        pass
    
    class GetControlRequest(Mapping):
        pass
    
    class GetControlResponse(Mapping):
        pass
    
    class GetDelegationsRequest(Mapping):
        pass
    
    class GetDelegationsResponse(Mapping):
        pass
    
    class GetEvidenceRequest(Mapping):
        pass
    
    class GetEvidenceResponse(Mapping):
        pass
    
    class GetEvidenceByEvidenceFolderRequest(Mapping):
        pass
    
    class GetEvidenceByEvidenceFolderResponse(Mapping):
        pass
    
    class GetEvidenceFolderRequest(Mapping):
        pass
    
    class GetEvidenceFolderResponse(Mapping):
        pass
    
    class GetEvidenceFoldersByAssessmentRequest(Mapping):
        pass
    
    class GetEvidenceFoldersByAssessmentResponse(Mapping):
        pass
    
    class GetEvidenceFoldersByAssessmentControlRequest(Mapping):
        pass
    
    class GetEvidenceFoldersByAssessmentControlResponse(Mapping):
        pass
    
    class GetOrganizationAdminAccountRequest(Mapping):
        pass
    
    class GetOrganizationAdminAccountResponse(Mapping):
        pass
    
    class GetServicesInScopeRequest(Mapping):
        pass
    
    class GetServicesInScopeResponse(Mapping):
        pass
    
    class GetSettingsRequest(Mapping):
        pass
    
    class GetSettingsResponse(Mapping):
        pass
    
    class ListAssessmentFrameworksRequest(Mapping):
        pass
    
    class ListAssessmentFrameworksResponse(Mapping):
        pass
    
    class ListAssessmentReportsRequest(Mapping):
        pass
    
    class ListAssessmentReportsResponse(Mapping):
        pass
    
    class ListAssessmentsRequest(Mapping):
        pass
    
    class ListAssessmentsResponse(Mapping):
        pass
    
    class ListControlsRequest(Mapping):
        pass
    
    class ListControlsResponse(Mapping):
        pass
    
    class ListKeywordsForDataSourceRequest(Mapping):
        pass
    
    class ListKeywordsForDataSourceResponse(Mapping):
        pass
    
    class ListNotificationsRequest(Mapping):
        pass
    
    class ListNotificationsResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class RegisterAccountRequest(Mapping):
        pass
    
    class RegisterAccountResponse(Mapping):
        pass
    
    class RegisterOrganizationAdminAccountRequest(Mapping):
        pass
    
    class RegisterOrganizationAdminAccountResponse(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateAssessmentRequest(Mapping):
        pass
    
    class UpdateAssessmentResponse(Mapping):
        pass
    
    class UpdateAssessmentControlRequest(Mapping):
        pass
    
    class UpdateAssessmentControlResponse(Mapping):
        pass
    
    class UpdateAssessmentControlSetStatusRequest(Mapping):
        pass
    
    class UpdateAssessmentControlSetStatusResponse(Mapping):
        pass
    
    class UpdateAssessmentFrameworkRequest(Mapping):
        pass
    
    class UpdateAssessmentFrameworkResponse(Mapping):
        pass
    
    class UpdateAssessmentFrameworkControlSet(Mapping):
        pass
    
    class UpdateAssessmentStatusRequest(Mapping):
        pass
    
    class UpdateAssessmentStatusResponse(Mapping):
        pass
    
    class UpdateControlRequest(Mapping):
        pass
    
    class UpdateControlResponse(Mapping):
        pass
    
    class ControlMappingSource(Mapping):
        pass
    
    class UpdateSettingsRequest(Mapping):
        pass
    
    class UpdateSettingsResponse(Mapping):
        pass
    
    class ValidateAssessmentReportIntegrityRequest(Mapping):
        pass
    
    class ValidateAssessmentReportIntegrityResponse(Mapping):
        pass
    
    def associate_assessment_report_evidence_folder(self, evidenceFolderId: str, assessmentId: str) -> AssociateAssessmentReportEvidenceFolderResponse:
        r""" Associates an evidence folder to the specified assessment report in AWS Audit Manager. 

        :param self:
        :param evidenceFolderId:   The identifier for the folder in which evidence is stored. <br/>assessmentId:   The identifier for the specified assessment. <br/>
        :return:         """
        pass

    def batch_associate_assessment_report_evidence(self, evidenceIds: List[UUID], evidenceFolderId: str, assessmentId: str) -> BatchAssociateAssessmentReportEvidenceResponse:
        r""" Associates a list of evidence to an assessment report in an AWS Audit Manager assessment. 

        :param self:
        :param evidenceIds:   The list of evidence identifiers. <br/>evidenceFolderId:   The identifier for the folder in which the evidence is stored. <br/>assessmentId:   The unique identifier for the specified assessment. <br/>
        :return: errors:   A list of errors returned by the <code>BatchAssociateAssessmentReportEvidence</code> API. <br/>evidenceIds:   The identifier for the evidence. <br/>        """
        pass

    def batch_create_delegation_by_assessment(self, assessmentId: str, createDelegationRequests: List[CreateDelegationRequest]) -> BatchCreateDelegationByAssessmentResponse:
        r""" Create a batch of delegations for a specified assessment in AWS Audit Manager. 

        :param self:
        :param assessmentId:   The identifier for the specified assessment. <br/>createDelegationRequests:   The API request to batch create delegations in AWS Audit Manager. <br/>
        :return: errors:   A list of errors returned by the <code>BatchCreateDelegationByAssessment</code> API. <br/>delegations:   The delegations associated with the assessment. <br/>        """
        pass

    def batch_delete_delegation_by_assessment(self, assessmentId: str, delegationIds: List[UUID]) -> BatchDeleteDelegationByAssessmentResponse:
        r""" Deletes the delegations in the specified AWS Audit Manager assessment. 

        :param self:
        :param assessmentId:   The identifier for the specified assessment. <br/>delegationIds:   The identifiers for the specified delegations. <br/>
        :return: errors:   A list of errors returned by the <code>BatchDeleteDelegationByAssessment</code> API. <br/>        """
        pass

    def batch_disassociate_assessment_report_evidence(self, evidenceIds: List[UUID], evidenceFolderId: str, assessmentId: str) -> BatchDisassociateAssessmentReportEvidenceResponse:
        r""" Disassociates a list of evidence from the specified assessment report in AWS Audit Manager. 

        :param self:
        :param evidenceIds:   The list of evidence identifiers. <br/>evidenceFolderId:   The identifier for the folder in which evidence is stored. <br/>assessmentId:   The identifier for the specified assessment. <br/>
        :return: errors:   A list of errors returned by the <code>BatchDisassociateAssessmentReportEvidence</code> API. <br/>evidenceIds:   The identifier for the evidence. <br/>        """
        pass

    def batch_import_evidence_to_assessment_control(self, manualEvidence: List[ManualEvidence], controlId: str, controlSetId: str, assessmentId: str) -> BatchImportEvidenceToAssessmentControlResponse:
        r""" Uploads one or more pieces of evidence to the specified control in the assessment in AWS Audit Manager. 

        :param self:
        :param manualEvidence:   The list of manual evidence objects. <br/>controlId:   The identifier for the specified control. <br/>controlSetId:   The identifier for the specified control set. <br/>assessmentId:   The identifier for the specified assessment. <br/>
        :return: errors:   A list of errors returned by the <code>BatchImportEvidenceToAssessmentControl</code> API. <br/>        """
        pass

    def create_assessment(self, frameworkId: str, roles: List[Role], scope: Scope, assessmentReportsDestination: AssessmentReportsDestination, name: str, description: str=None, tags: TagMap=None) -> CreateAssessmentResponse:
        r""" Creates an assessment in AWS Audit Manager. 

        :param self:
        :param tags:   The tags associated with the assessment. <br/>frameworkId:   The identifier for the specified framework. <br/>roles:   The list of roles for the specified assessment. <br/>scope:   The wrapper that contains the AWS accounts and AWS services in scope for the assessment. :<br/>assessmentReportsDestination:   The assessment report storage destination for the specified assessment that is being created. :<br/>description:   The optional description of the assessment to be created. <br/>name:   The name of the assessment to be created. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>destination</i>  The destination of the assessment report. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>destinationType</i>  The destination type, such as Amazon S3. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>awsServices</i>  The AWS services included in the scope of the assessment. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>awsAccounts</i>  The AWS accounts included in the scope of the assessment. <br/>
        :return: assessment:   An entity that defines the scope of audit evidence collected by AWS Audit Manager. An AWS Audit Manager assessment is an implementation of an AWS Audit Manager framework. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i>  The tags associated with the assessment. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>framework</i>  The framework from which the assessment was created. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>framework</b>:  The framework from which the assessment was created. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>metadata</i>  The metadata for the specified assessment. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>metadata</b>:  The metadata for the specified assessment. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>awsAccount</i>  The AWS account associated with the assessment. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>awsAccount</b>:  The AWS account associated with the assessment. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i>  The Amazon Resource Name (ARN) of the assessment. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i>  The name of the specified AWS account. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>emailAddress</i>  The email address associated with the specified AWS account. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i>  The identifier for the specified AWS account. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i>  The overall status of the assessment. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>complianceType</i>  The name of a compliance standard related to the assessment, such as PCI-DSS. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i>  The description of the assessment. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i>  The unique identifier for the assessment. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i>  The name of the assessment. <br/> The destination in which evidence reports are stored for the specified assessment. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>assessmentReportsDestination</b>:  The destination in which evidence reports are stored for the specified assessment. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i>  The Amazon Resource Name (ARN) of the specified framework. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i>  The unique identifier for the framework. <br/> The metadata of a framework, such as the name, ID, description, and so on. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>metadata</b>:  The metadata of a framework, such as the name, ID, description, and so on.         """
        pass

    def create_assessment_framework(self, controlSets: List[CreateAssessmentFrameworkControlSet], name: str, description: str=None, complianceType: str=None, tags: TagMap=None) -> CreateAssessmentFrameworkResponse:
        r""" Creates a custom framework in AWS Audit Manager. 

        :param self:
        :param tags:   The tags associated with the framework. <br/>controlSets:   The control sets to be associated with the framework. <br/>complianceType:   The compliance type that the new custom framework supports, such as CIS or HIPAA. <br/>description:   An optional description for the new custom framework. <br/>name:   The name of the new custom framework. <br/>
        :return: framework:   The name of the new framework returned by the <code>CreateAssessmentFramework</code> API. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i>  The tags associated with the framework. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedBy</i>  The IAM user or role that most recently updated the framework. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdBy</i>  The IAM user or role that created the framework. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedAt</i>  Specifies when the framework was most recently updated. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i>  Specifies when the framework was created. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>controlSets</i>  The control sets associated with the framework. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>controlSources</i>  The sources from which AWS Audit Manager collects evidence for the control. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>logo</i>  The logo associated with the framework. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i>  The description of the specified framework. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>complianceType</i>  The compliance type that the new custom framework supports, such as CIS or HIPAA. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i>  The framework type, such as custom or standard. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i>  The name of the specified framework. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i>  The unique identifier for the specified framework. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i>  The Amazon Resource Name (ARN) of the specified framework. <br/>        """
        pass

    def create_assessment_report(self, assessmentId: str, name: str, description: str=None) -> CreateAssessmentReportResponse:
        r""" Creates an assessment report for the specified assessment. 

        :param self:
        :param assessmentId:   The identifier for the specified assessment. <br/>description:   The description of the assessment report. <br/>name:   The name of the new assessment report. <br/>
        :return: assessmentReport:   The new assessment report returned by the <code>CreateAssessmentReport</code> API. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationTime</i>  Specifies when the assessment report was created. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i>  The current status of the specified assessment report. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>author</i>  The name of the user who created the assessment report. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>assessmentName</i>  The name of the associated assessment. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>assessmentId</i>  The identifier for the specified assessment. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>awsAccountId</i>  The identifier for the specified AWS account. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i>  The description of the specified assessment report. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i>  The name given to the assessment report. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i>  The unique identifier for the specified assessment report. <br/>        """
        pass

    def create_control(self, controlMappingSources: List[CreateControlMappingSource], name: str, description: str=None, testingInformation: str=None, actionPlanTitle: str=None, actionPlanInstructions: str=None, tags: TagMap=None) -> CreateControlResponse:
        r""" Creates a new custom control in AWS Audit Manager. 

        :param self:
        :param tags:   The tags associated with the control. <br/>controlMappingSources:   The data mapping sources for the specified control. <br/>actionPlanInstructions:   The recommended actions to carry out if the control is not fulfilled. <br/>actionPlanTitle:   The title of the action plan for remediating the control. <br/>testingInformation:   The steps to follow to determine if the control has been satisfied. <br/>description:   The description of the control. <br/>name:   The name of the control. <br/>
        :return: control:   The new control returned by the <code>CreateControl</code> API. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i>  The tags associated with the control. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedBy</i>  The IAM user or role that most recently updated the control. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdBy</i>  The IAM user or role that created the control. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedAt</i>  Specifies when the control was most recently updated. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i>  Specifies when the control was created. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>controlMappingSources</i>  The data mapping sources for the specified control. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>controlSources</i>  The data source that determines from where AWS Audit Manager collects evidence for the control. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>actionPlanInstructions</i>  The recommended actions to carry out if the control is not fulfilled. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>actionPlanTitle</i>  The title of the action plan for remediating the control. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>testingInformation</i>  The steps to follow to determine if the control has been satisfied. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i>  The description of the specified control. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i>  The name of the specified control. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i>  The type of control, such as custom or standard. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i>  The unique identifier for the control. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i>  The Amazon Resource Name (ARN) of the specified control. <br/>        """
        pass

    def delete_assessment(self, assessmentId: str) -> DeleteAssessmentResponse:
        r""" Deletes an assessment in AWS Audit Manager. 

        :param self:
        :param assessmentId:   The identifier for the specified assessment. <br/>
        :return:         """
        pass

    def delete_assessment_framework(self, frameworkId: str) -> DeleteAssessmentFrameworkResponse:
        r""" Deletes a custom framework in AWS Audit Manager. 

        :param self:
        :param frameworkId:   The identifier for the specified framework. <br/>
        :return:         """
        pass

    def delete_assessment_report(self, assessmentReportId: str, assessmentId: str) -> DeleteAssessmentReportResponse:
        r""" Deletes an assessment report from an assessment in AWS Audit Manager. 

        :param self:
        :param assessmentReportId:   The unique identifier for the assessment report. <br/>assessmentId:   The identifier for the specified assessment. <br/>
        :return:         """
        pass

    def delete_control(self, controlId: str) -> DeleteControlResponse:
        r""" Deletes a custom control in AWS Audit Manager. 

        :param self:
        :param controlId:   The identifier for the specified control. <br/>
        :return:         """
        pass

    def deregister_account(self) -> DeregisterAccountResponse:
        r""" Deregisters an account in AWS Audit Manager. 

        :param self:
        :param 
        :return: status:   The registration status of the account. <br/>        """
        pass

    def deregister_organization_admin_account(self, adminAccountId: str=None) -> DeregisterOrganizationAdminAccountResponse:
        r""" Deregisters the delegated AWS administrator account from the AWS organization. 

        :param self:
        :param adminAccountId:   The identifier for the specified administrator account. <br/>
        :return:         """
        pass

    def disassociate_assessment_report_evidence_folder(self, evidenceFolderId: str, assessmentId: str) -> DisassociateAssessmentReportEvidenceFolderResponse:
        r""" Disassociates an evidence folder from the specified assessment report in AWS Audit Manager. 

        :param self:
        :param evidenceFolderId:   The identifier for the folder in which evidence is stored. <br/>assessmentId:   The identifier for the specified assessment. <br/>
        :return:         """
        pass

    def get_account_status(self) -> GetAccountStatusResponse:
        r""" Returns the registration status of an account in AWS Audit Manager. 

        :param self:
        :param 
        :return: status:   The status of the specified AWS account. <br/>        """
        pass

    def get_assessment(self, assessmentId: str) -> GetAssessmentResponse:
        r""" Returns an assessment from AWS Audit Manager. 

        :param self:
        :param assessmentId:   The identifier for the specified assessment. <br/>
        :return: userRole:   The wrapper that contains the AWS Audit Manager role information of the current user, such as the role type and IAM Amazon Resource Name (ARN). :<br/>assessment:   An entity that defines the scope of audit evidence collected by AWS Audit Manager. An AWS Audit Manager assessment is an implementation of an AWS Audit Manager framework. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i>  The tags associated with the assessment. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>framework</i>  The framework from which the assessment was created. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>framework</b>:  The framework from which the assessment was created. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>metadata</i>  The metadata for the specified assessment. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>metadata</b>:  The metadata for the specified assessment. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>awsAccount</i>  The AWS account associated with the assessment. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>awsAccount</b>:  The AWS account associated with the assessment. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i>  The Amazon Resource Name (ARN) of the assessment. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i>  The name of the specified AWS account. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>emailAddress</i>  The email address associated with the specified AWS account. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i>  The identifier for the specified AWS account. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i>  The overall status of the assessment. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>complianceType</i>  The name of a compliance standard related to the assessment, such as PCI-DSS. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i>  The description of the assessment. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i>  The unique identifier for the assessment. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i>  The name of the assessment. <br/> The destination in which evidence reports are stored for the specified assessment. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>assessmentReportsDestination</b>:  The destination in which evidence reports are stored for the specified assessment. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i>  The Amazon Resource Name (ARN) of the specified framework. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i>  The unique identifier for the framework. <br/> The metadata of a framework, such as the name, ID, description, and so on. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>metadata</b>:  The metadata of a framework, such as the name, ID, description, and so on. &nbsp;&nbsp;&nbsp;&nbsp; <i>roleArn</i>  The Amazon Resource Name (ARN) of the IAM role. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>roleType</i>  The type of customer persona.  <note> In <code>CreateAssessment</code>, <code>roleType</code> can only be <code>PROCESS_OWNER</code>.  In <code>UpdateSettings</code>, <code>roleType</code> can only be <code>PROCESS_OWNER</code>. In <code>BatchCreateDelegationByAssessment</code>, <code>roleType</code> can only be <code>RESOURCE_OWNER</code>. </note><br/>        """
        pass

    def get_assessment_framework(self, frameworkId: str) -> GetAssessmentFrameworkResponse:
        r""" Returns a framework from AWS Audit Manager. 

        :param self:
        :param frameworkId:   The identifier for the specified framework. <br/>
        :return: framework:   The framework returned by the <code>GetAssessmentFramework</code> API. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i>  The tags associated with the framework. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedBy</i>  The IAM user or role that most recently updated the framework. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdBy</i>  The IAM user or role that created the framework. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedAt</i>  Specifies when the framework was most recently updated. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i>  Specifies when the framework was created. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>controlSets</i>  The control sets associated with the framework. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>controlSources</i>  The sources from which AWS Audit Manager collects evidence for the control. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>logo</i>  The logo associated with the framework. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i>  The description of the specified framework. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>complianceType</i>  The compliance type that the new custom framework supports, such as CIS or HIPAA. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i>  The framework type, such as custom or standard. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i>  The name of the specified framework. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i>  The unique identifier for the specified framework. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i>  The Amazon Resource Name (ARN) of the specified framework. <br/>        """
        pass

    def get_assessment_report_url(self, assessmentId: str, assessmentReportId: str) -> GetAssessmentReportUrlResponse:
        r""" Returns the URL of a specified assessment report in AWS Audit Manager. 

        :param self:
        :param assessmentId:   The identifier for the specified assessment. <br/>assessmentReportId:   The identifier for the assessment report. <br/>
        :return: preSignedUrl:   A uniform resource locator, used as a unique identifier to locate a resource on the internet. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>link</i>  The unique identifier for the internet resource. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>hyperlinkName</i>  The name or word used as a hyperlink to the URL. <br/>        """
        pass

    def get_change_logs(self, assessmentId: str, controlSetId: str=None, controlId: str=None, nextToken: str=None, maxResults: int=None) -> GetChangeLogsResponse:
        r""" Returns a list of changelogs from AWS Audit Manager. 

        :param self:
        :param maxResults:   Represents the maximum number of results per page, or per API request call. <br/>nextToken:   The pagination token used to fetch the next set of results. <br/>controlId:   The identifier for the specified control. <br/>controlSetId:   The identifier for the specified control set. <br/>assessmentId:   The identifier for the specified assessment. <br/>
        :return: nextToken:   The pagination token used to fetch the next set of results. <br/>changeLogs:   The list of user activity for the control. <br/>        """
        pass

    def get_control(self, controlId: str) -> GetControlResponse:
        r""" Returns a control from AWS Audit Manager. 

        :param self:
        :param controlId:   The identifier for the specified control. <br/>
        :return: control:   The name of the control returned by the <code>GetControl</code> API. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i>  The tags associated with the control. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedBy</i>  The IAM user or role that most recently updated the control. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdBy</i>  The IAM user or role that created the control. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedAt</i>  Specifies when the control was most recently updated. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i>  Specifies when the control was created. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>controlMappingSources</i>  The data mapping sources for the specified control. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>controlSources</i>  The data source that determines from where AWS Audit Manager collects evidence for the control. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>actionPlanInstructions</i>  The recommended actions to carry out if the control is not fulfilled. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>actionPlanTitle</i>  The title of the action plan for remediating the control. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>testingInformation</i>  The steps to follow to determine if the control has been satisfied. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i>  The description of the specified control. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i>  The name of the specified control. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i>  The type of control, such as custom or standard. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i>  The unique identifier for the control. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i>  The Amazon Resource Name (ARN) of the specified control. <br/>        """
        pass

    def get_delegations(self, nextToken: str=None, maxResults: int=None) -> GetDelegationsResponse:
        r""" Returns a list of delegations from an audit owner to a delegate. 

        :param self:
        :param maxResults:   Represents the maximum number of results per page, or per API request call. <br/>nextToken:   The pagination token used to fetch the next set of results. <br/>
        :return: nextToken:   The pagination token used to fetch the next set of results. <br/>delegations:   The list of delegations returned by the <code>GetDelegations</code> API. <br/>        """
        pass

    def get_evidence(self, evidenceId: str, evidenceFolderId: str, controlSetId: str, assessmentId: str) -> GetEvidenceResponse:
        r""" Returns evidence from AWS Audit Manager. 

        :param self:
        :param evidenceId:   The identifier for the evidence. <br/>evidenceFolderId:   The identifier for the folder in which the evidence is stored. <br/>controlSetId:   The identifier for the specified control set. <br/>assessmentId:   The identifier for the specified assessment. <br/>
        :return: evidence:   The evidence returned by the <code>GetEvidenceResponse</code> API. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>assessmentReportSelection</i>  Specifies whether the evidence is included in the assessment report. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i>  The identifier for the evidence. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>evidenceFolderId</i>  The identifier for the folder in which the evidence is stored. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>awsAccountId</i>  The identifier for the specified AWS account. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>awsOrganization</i>  The AWS account from which the evidence is collected, and its AWS organization path. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>complianceCheck</i>  The evaluation status for evidence that falls under the compliance check category. For evidence collected from AWS Security Hub, a <i>Pass</i> or <i>Fail</i> result is shown. For evidence collected from AWS Config, a <i>Compliant</i> or <i>Noncompliant</i> result is shown. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>iamId</i>  The unique identifier for the IAM user or role associated with the evidence. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>attributes</i>  The names and values used by the evidence event, including an attribute name (such as <code>allowUsersToChangePassword</code>) and value (such as <code>true</code> or <code>false</code>). <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourcesIncluded</i>  The list of resources assessed to generate the evidence. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>evidenceByType</i>  The type of automated evidence. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>eventName</i>  The name of the specified evidence event. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>eventSource</i>  The AWS service from which the evidence is collected. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>time</i>  The timestamp that represents when the evidence was collected. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>evidenceAwsAccountId</i>  The identifier for the specified AWS account. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>dataSource</i>  The data source from which the specified evidence was collected. <br/>        """
        pass

    def get_evidence_by_evidence_folder(self, evidenceFolderId: str, controlSetId: str, assessmentId: str, nextToken: str=None, maxResults: int=None) -> GetEvidenceByEvidenceFolderResponse:
        r""" Returns all evidence from a specified evidence folder in AWS Audit Manager. 

        :param self:
        :param maxResults:   Represents the maximum number of results per page, or per API request call. <br/>nextToken:   The pagination token used to fetch the next set of results. <br/>evidenceFolderId:   The unique identifier for the folder in which the evidence is stored. <br/>controlSetId:   The identifier for the control set. <br/>assessmentId:   The identifier for the specified assessment. <br/>
        :return: nextToken:   The pagination token used to fetch the next set of results. <br/>evidence:   The list of evidence returned by the <code>GetEvidenceByEvidenceFolder</code> API. <br/>        """
        pass

    def get_evidence_folder(self, evidenceFolderId: str, controlSetId: str, assessmentId: str) -> GetEvidenceFolderResponse:
        r""" Returns an evidence folder from the specified assessment in AWS Audit Manager. 

        :param self:
        :param evidenceFolderId:   The identifier for the folder in which the evidence is stored. <br/>controlSetId:   The identifier for the specified control set. <br/>assessmentId:   The identifier for the specified assessment. <br/>
        :return: evidenceFolder:   The folder in which evidence is stored. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>evidenceAwsServiceSourceCount</i>  The total number of AWS resources assessed to generate the evidence. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>evidenceByTypeUserActivityCount</i>  The number of evidence that falls under the user activity category. This evidence is collected from AWS CloudTrail logs. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>evidenceByTypeComplianceCheckIssuesCount</i>  The total number of issues that were reported directly from AWS Security Hub, AWS Config, or both. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>evidenceByTypeComplianceCheckCount</i>  The number of evidence that falls under the compliance check category. This evidence is collected from AWS Config or AWS Security Hub. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>evidenceByTypeManualCount</i>  The number of evidence that falls under the manual category. This evidence is imported manually. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>evidenceByTypeConfigurationDataCount</i>  The number of evidence that falls under the configuration data category. This evidence is collected from configuration snapshots of other AWS services such as Amazon EC2, Amazon S3, or IAM. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>evidenceResourcesIncludedCount</i>  The amount of evidence included in the evidence folder. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>controlName</i>  The name of the control. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>assessmentReportSelectionCount</i>  The total count of evidence included in the assessment report. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>totalEvidence</i>  The total amount of evidence in the evidence folder. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>author</i>  The name of the user who created the evidence folder. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>dataSource</i>  The AWS service from which the evidence was collected. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i>  The identifier for the folder in which evidence is stored. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>controlId</i>  The unique identifier for the specified control. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>controlSetId</i>  The identifier for the control set. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>assessmentId</i>  The identifier for the specified assessment. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>date</i>  The date when the first evidence was added to the evidence folder. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i>  The name of the specified evidence folder. <br/>        """
        pass

    def get_evidence_folders_by_assessment(self, assessmentId: str, nextToken: str=None, maxResults: int=None) -> GetEvidenceFoldersByAssessmentResponse:
        r""" Returns the evidence folders from a specified assessment in AWS Audit Manager. 

        :param self:
        :param maxResults:   Represents the maximum number of results per page, or per API request call. <br/>nextToken:   The pagination token used to fetch the next set of results. <br/>assessmentId:   The identifier for the specified assessment. <br/>
        :return: nextToken:   The pagination token used to fetch the next set of results. <br/>evidenceFolders:   The list of evidence folders returned by the <code>GetEvidenceFoldersByAssessment</code> API. <br/>        """
        pass

    def get_evidence_folders_by_assessment_control(self, controlId: str, controlSetId: str, assessmentId: str, nextToken: str=None, maxResults: int=None) -> GetEvidenceFoldersByAssessmentControlResponse:
        r""" Returns a list of evidence folders associated with a specified control of an assessment in AWS Audit Manager. 

        :param self:
        :param maxResults:   Represents the maximum number of results per page, or per API request call. <br/>nextToken:   The pagination token used to fetch the next set of results. <br/>controlId:   The identifier for the specified control. <br/>controlSetId:   The identifier for the specified control set. <br/>assessmentId:   The identifier for the specified assessment. <br/>
        :return: nextToken:   The pagination token used to fetch the next set of results. <br/>evidenceFolders:   The list of evidence folders returned by the <code>GetEvidenceFoldersByAssessmentControl</code> API. <br/>        """
        pass

    def get_organization_admin_account(self) -> GetOrganizationAdminAccountResponse:
        r""" Returns the name of the delegated AWS administrator account for the AWS organization. 

        :param self:
        :param 
        :return: organizationId:   The identifier for the specified organization. <br/>adminAccountId:   The identifier for the specified administrator account. <br/>        """
        pass

    def get_services_in_scope(self) -> GetServicesInScopeResponse:
        r""" Returns a list of the in-scope AWS services for the specified assessment. 

        :param self:
        :param 
        :return: serviceMetadata:   The metadata associated with the aAWS service. <br/>        """
        pass

    def get_settings(self, attribute: str) -> GetSettingsResponse:
        r""" Returns the settings for the specified AWS account. 

        :param self:
        :param attribute:   The list of <code>SettingAttribute</code> enum values. <br/>
        :return: settings:   The settings object that holds all supported AWS Audit Manager settings. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>kmsKey</i>  The AWS KMS key details. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>defaultProcessOwners</i>  The designated default audit owners. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>defaultAssessmentReportsDestination</i>  The default storage destination for assessment reports. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>defaultAssessmentReportsDestination</b>:  The default storage destination for assessment reports. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>snsTopic</i>  The designated Amazon Simple Notification Service (Amazon SNS) topic. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>isAwsOrgEnabled</i>  Specifies whether AWS Organizations is enabled. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>destination</i>  The destination of the assessment report. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>destinationType</i>  The destination type, such as Amazon S3. <br/>        """
        pass

    def list_assessment_frameworks(self, frameworkType: str, nextToken: str=None, maxResults: int=None) -> ListAssessmentFrameworksResponse:
        r""" Returns a list of the frameworks available in the AWS Audit Manager framework library. 

        :param self:
        :param maxResults:   Represents the maximum number of results per page, or per API request call. <br/>nextToken:   The pagination token used to fetch the next set of results. <br/>frameworkType:   The type of framework, such as standard or custom. <br/>
        :return: nextToken:   The pagination token used to fetch the next set of results. <br/>frameworkMetadataList:   The list of metadata objects for the specified framework. <br/>        """
        pass

    def list_assessment_reports(self, nextToken: str=None, maxResults: int=None) -> ListAssessmentReportsResponse:
        r""" Returns a list of assessment reports created in AWS Audit Manager. 

        :param self:
        :param maxResults:   Represents the maximum number of results per page, or per API request call. <br/>nextToken:   The pagination token used to fetch the next set of results. <br/>
        :return: nextToken:   The pagination token used to fetch the next set of results. <br/>assessmentReports:   The list of assessment reports returned by the <code>ListAssessmentReports</code> API. <br/>        """
        pass

    def list_assessments(self, nextToken: str=None, maxResults: int=None) -> ListAssessmentsResponse:
        r""" Returns a list of current and past assessments from AWS Audit Manager. 

        :param self:
        :param maxResults:   Represents the maximum number of results per page, or per API request call. <br/>nextToken:   The pagination token used to fetch the next set of results. <br/>
        :return: nextToken:   The pagination token used to fetch the next set of results. <br/>assessmentMetadata:   The metadata associated with the assessment. <br/>        """
        pass

    def list_controls(self, controlType: str, nextToken: str=None, maxResults: int=None) -> ListControlsResponse:
        r""" Returns a list of controls from AWS Audit Manager. 

        :param self:
        :param maxResults:   Represents the maximum number of results per page, or per API request call. <br/>nextToken:   The pagination token used to fetch the next set of results. <br/>controlType:   The type of control, such as standard or custom. <br/>
        :return: nextToken:   The pagination token used to fetch the next set of results. <br/>controlMetadataList:   The list of control metadata objects returned by the <code>ListControls</code> API. <br/>        """
        pass

    def list_keywords_for_data_source(self, source: str, nextToken: str=None, maxResults: int=None) -> ListKeywordsForDataSourceResponse:
        r""" Returns a list of keywords that pre-mapped to the specified control data source. 

        :param self:
        :param maxResults:   Represents the maximum number of results per page, or per API request call. <br/>nextToken:   The pagination token used to fetch the next set of results. <br/>source:   The control mapping data source to which the keywords apply. <br/>
        :return: nextToken:   The pagination token used to fetch the next set of results. <br/>keywords:   The list of keywords for the specified event mapping source. <br/>        """
        pass

    def list_notifications(self, nextToken: str=None, maxResults: int=None) -> ListNotificationsResponse:
        r""" Returns a list of all AWS Audit Manager notifications. 

        :param self:
        :param maxResults:   Represents the maximum number of results per page, or per API request call. <br/>nextToken:   The pagination token used to fetch the next set of results. <br/>
        :return: nextToken:   The pagination token used to fetch the next set of results. <br/>notifications:   The returned list of notifications. <br/>        """
        pass

    def list_tags_for_resource(self, resourceArn: str) -> ListTagsForResourceResponse:
        r""" Returns a list of tags for the specified resource in AWS Audit Manager. 

        :param self:
        :param resourceArn:   The Amazon Resource Name (ARN) of the specified resource. <br/>
        :return: tags:   The list of tags returned by the <code>ListTagsForResource</code> API. <br/>        """
        pass

    def register_account(self, kmsKey: str=None, delegatedAdminAccount: str=None) -> RegisterAccountResponse:
        r""" Enables AWS Audit Manager for the specified AWS account. 

        :param self:
        :param delegatedAdminAccount:   The delegated administrator account for AWS Audit Manager. <br/>kmsKey:   The AWS KMS key details. <br/>
        :return: status:   The status of the account registration request. <br/>        """
        pass

    def register_organization_admin_account(self, adminAccountId: str) -> RegisterOrganizationAdminAccountResponse:
        r""" Enables an AWS account within the organization as the delegated administrator for AWS Audit Manager. 

        :param self:
        :param adminAccountId:   The identifier for the specified delegated administrator account. <br/>
        :return: organizationId:   The identifier for the specified AWS organization. <br/>adminAccountId:   The identifier for the specified delegated administrator account. <br/>        """
        pass

    def tag_resource(self, tags: TagMap, resourceArn: str) -> TagResourceResponse:
        r""" Tags the specified resource in AWS Audit Manager. 

        :param self:
        :param tags:   The tags to be associated with the resource. <br/>resourceArn:   The Amazon Resource Name (ARN) of the specified resource. <br/>
        :return:         """
        pass

    def untag_resource(self, tagKeys: List[TagKey], resourceArn: str) -> UntagResourceResponse:
        r""" Removes a tag from a resource in AWS Audit Manager. 

        :param self:
        :param tagKeys:   The name or key of the tag. <br/>resourceArn:   The Amazon Resource Name (ARN) of the specified resource. <br/>
        :return:         """
        pass

    def update_assessment(self, scope: Scope, assessmentId: str, assessmentName: str=None, assessmentDescription: str=None, assessmentReportsDestination: AssessmentReportsDestination=None, roles: List[Role]=None) -> UpdateAssessmentResponse:
        r""" Edits an AWS Audit Manager assessment. 

        :param self:
        :param roles:   The list of roles for the specified assessment. <br/>assessmentReportsDestination:   The assessment report storage destination for the specified assessment that is being updated. :<br/>scope:   The scope of the specified assessment. :<br/>assessmentDescription:   The description of the specified assessment. <br/>assessmentName:   The name of the specified assessment to be updated. <br/>assessmentId:   The identifier for the specified assessment. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>awsServices</i>  The AWS services included in the scope of the assessment. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>awsAccounts</i>  The AWS accounts included in the scope of the assessment. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>destination</i>  The destination of the assessment report. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>destinationType</i>  The destination type, such as Amazon S3. <br/>
        :return: assessment:   The response object (name of the updated assessment) for the <code>UpdateAssessmentRequest</code> API. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i>  The tags associated with the assessment. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>framework</i>  The framework from which the assessment was created. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>framework</b>:  The framework from which the assessment was created. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>metadata</i>  The metadata for the specified assessment. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>metadata</b>:  The metadata for the specified assessment. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>awsAccount</i>  The AWS account associated with the assessment. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>awsAccount</b>:  The AWS account associated with the assessment. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i>  The Amazon Resource Name (ARN) of the assessment. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i>  The name of the specified AWS account. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>emailAddress</i>  The email address associated with the specified AWS account. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i>  The identifier for the specified AWS account. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i>  The overall status of the assessment. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>complianceType</i>  The name of a compliance standard related to the assessment, such as PCI-DSS. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i>  The description of the assessment. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i>  The unique identifier for the assessment. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i>  The name of the assessment. <br/> The destination in which evidence reports are stored for the specified assessment. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>assessmentReportsDestination</b>:  The destination in which evidence reports are stored for the specified assessment. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i>  The Amazon Resource Name (ARN) of the specified framework. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i>  The unique identifier for the framework. <br/> The metadata of a framework, such as the name, ID, description, and so on. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>metadata</b>:  The metadata of a framework, such as the name, ID, description, and so on.         """
        pass

    def update_assessment_control(self, controlId: str, controlSetId: str, assessmentId: str, controlStatus: str=None, commentBody: str=None) -> UpdateAssessmentControlResponse:
        r""" Updates a control within an assessment in AWS Audit Manager. 

        :param self:
        :param commentBody:   The comment body text for the specified control. <br/>controlStatus:   The status of the specified control. <br/>controlId:   The identifier for the specified control. <br/>controlSetId:   The identifier for the specified control set. <br/>assessmentId:   The identifier for the specified assessment. <br/>
        :return: control:   The name of the updated control set returned by the <code>UpdateAssessmentControl</code> API. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>assessmentReportEvidenceCount</i>  The amount of evidence in the assessment report. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>evidenceCount</i>  The amount of evidence generated for the control. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>evidenceSources</i>  The list of data sources for the specified evidence. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>comments</i>  The list of comments attached to the specified control. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>response</i>  The response of the specified control. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i>  The status of the specified control. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i>  The description of the specified control. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i>  The name of the specified control. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i>  The identifier for the specified control. <br/>        """
        pass

    def update_assessment_control_set_status(self, comment: str, status: str, controlSetId: str, assessmentId: str) -> UpdateAssessmentControlSetStatusResponse:
        r""" Updates the status of a control set in an AWS Audit Manager assessment. 

        :param self:
        :param comment:   The comment related to the status update. <br/>status:   The status of the control set that is being updated. <br/>controlSetId:   The identifier for the specified control set. <br/>assessmentId:   The identifier for the specified assessment. <br/>
        :return: controlSet:   The name of the updated control set returned by the <code>UpdateAssessmentControlSetStatus</code> API. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>manualEvidenceCount</i>  The total number of evidence objects uploaded manually to the control set. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>systemEvidenceCount</i>  The total number of evidence objects retrieved automatically for the control set. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>delegations</i>  The delegations associated with the control set. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>controls</i>  The list of controls contained with the control set. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>roles</i>  The roles associated with the control set. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i>  Specifies the current status of the control set. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i>  The description for the control set. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i>  The identifier of the control set in the assessment. This is the control set name in a plain string format. <br/>        """
        pass

    def update_assessment_framework(self, controlSets: List[UpdateAssessmentFrameworkControlSet], name: str, frameworkId: str, description: str=None, complianceType: str=None) -> UpdateAssessmentFrameworkResponse:
        r""" Updates a custom framework in AWS Audit Manager. 

        :param self:
        :param controlSets:   The control sets associated with the framework. <br/>complianceType:   The compliance type that the new custom framework supports, such as CIS or HIPAA. <br/>description:   The description of the framework that is to be updated. <br/>name:   The name of the framework to be updated. <br/>frameworkId:   The identifier for the specified framework. <br/>
        :return: framework:   The name of the specified framework. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i>  The tags associated with the framework. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedBy</i>  The IAM user or role that most recently updated the framework. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdBy</i>  The IAM user or role that created the framework. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedAt</i>  Specifies when the framework was most recently updated. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i>  Specifies when the framework was created. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>controlSets</i>  The control sets associated with the framework. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>controlSources</i>  The sources from which AWS Audit Manager collects evidence for the control. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>logo</i>  The logo associated with the framework. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i>  The description of the specified framework. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>complianceType</i>  The compliance type that the new custom framework supports, such as CIS or HIPAA. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i>  The framework type, such as custom or standard. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i>  The name of the specified framework. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i>  The unique identifier for the specified framework. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i>  The Amazon Resource Name (ARN) of the specified framework. <br/>        """
        pass

    def update_assessment_status(self, status: str, assessmentId: str) -> UpdateAssessmentStatusResponse:
        r""" Updates the status of an assessment in AWS Audit Manager. 

        :param self:
        :param status:   The current status of the specified assessment. <br/>assessmentId:   The identifier for the specified assessment. <br/>
        :return: assessment:   The name of the updated assessment returned by the <code>UpdateAssessmentStatus</code> API. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i>  The tags associated with the assessment. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>framework</i>  The framework from which the assessment was created. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>framework</b>:  The framework from which the assessment was created. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>metadata</i>  The metadata for the specified assessment. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>metadata</b>:  The metadata for the specified assessment. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>awsAccount</i>  The AWS account associated with the assessment. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>awsAccount</b>:  The AWS account associated with the assessment. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i>  The Amazon Resource Name (ARN) of the assessment. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i>  The name of the specified AWS account. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>emailAddress</i>  The email address associated with the specified AWS account. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i>  The identifier for the specified AWS account. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i>  The overall status of the assessment. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>complianceType</i>  The name of a compliance standard related to the assessment, such as PCI-DSS. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i>  The description of the assessment. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i>  The unique identifier for the assessment. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i>  The name of the assessment. <br/> The destination in which evidence reports are stored for the specified assessment. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>assessmentReportsDestination</b>:  The destination in which evidence reports are stored for the specified assessment. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i>  The Amazon Resource Name (ARN) of the specified framework. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i>  The unique identifier for the framework. <br/> The metadata of a framework, such as the name, ID, description, and so on. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>metadata</b>:  The metadata of a framework, such as the name, ID, description, and so on.         """
        pass

    def update_control(self, controlMappingSources: List[ControlMappingSource], name: str, controlId: str, description: str=None, testingInformation: str=None, actionPlanTitle: str=None, actionPlanInstructions: str=None) -> UpdateControlResponse:
        r""" Updates a custom control in AWS Audit Manager. 

        :param self:
        :param controlMappingSources:   The data mapping sources for the specified control. <br/>actionPlanInstructions:   The recommended actions to carry out if the control is not fulfilled. <br/>actionPlanTitle:   The title of the action plan for remediating the control. <br/>testingInformation:   The steps that to follow to determine if the control has been satisfied. <br/>description:   The optional description of the control. <br/>name:   The name of the control to be updated. <br/>controlId:   The identifier for the specified control. <br/>
        :return: control:   The name of the updated control set returned by the <code>UpdateControl</code> API. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i>  The tags associated with the control. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedBy</i>  The IAM user or role that most recently updated the control. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdBy</i>  The IAM user or role that created the control. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedAt</i>  Specifies when the control was most recently updated. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i>  Specifies when the control was created. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>controlMappingSources</i>  The data mapping sources for the specified control. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>controlSources</i>  The data source that determines from where AWS Audit Manager collects evidence for the control. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>actionPlanInstructions</i>  The recommended actions to carry out if the control is not fulfilled. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>actionPlanTitle</i>  The title of the action plan for remediating the control. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>testingInformation</i>  The steps to follow to determine if the control has been satisfied. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i>  The description of the specified control. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i>  The name of the specified control. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i>  The type of control, such as custom or standard. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i>  The unique identifier for the control. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i>  The Amazon Resource Name (ARN) of the specified control. <br/>        """
        pass

    def update_settings(self, snsTopic: str=None, defaultAssessmentReportsDestination: AssessmentReportsDestination=None, defaultProcessOwners: List[Role]=None, kmsKey: str=None) -> UpdateSettingsResponse:
        r""" Updates AWS Audit Manager settings for the current user account. 

        :param self:
        :param kmsKey:   The AWS KMS key details. <br/>defaultProcessOwners:   A list of the default audit owners. <br/>defaultAssessmentReportsDestination:   The default storage destination for assessment reports. :<br/>snsTopic:   The Amazon Simple Notification Service (Amazon SNS) topic to which AWS Audit Manager sends notifications. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>destination</i>  The destination of the assessment report. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>destinationType</i>  The destination type, such as Amazon S3. <br/>
        :return: settings:   The current list of settings. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>kmsKey</i>  The AWS KMS key details. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>defaultProcessOwners</i>  The designated default audit owners. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>defaultAssessmentReportsDestination</i>  The default storage destination for assessment reports. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>defaultAssessmentReportsDestination</b>:  The default storage destination for assessment reports. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>snsTopic</i>  The designated Amazon Simple Notification Service (Amazon SNS) topic. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>isAwsOrgEnabled</i>  Specifies whether AWS Organizations is enabled. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>destination</i>  The destination of the assessment report. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>destinationType</i>  The destination type, such as Amazon S3. <br/>        """
        pass

    def validate_assessment_report_integrity(self, s3RelativePath: str) -> ValidateAssessmentReportIntegrityResponse:
        r""" Validates the integrity of an assessment report in AWS Audit Manager. 

        :param self:
        :param s3RelativePath:   The relative path of the specified Amazon S3 bucket in which the assessment report is stored. <br/>
        :return: validationErrors:   Represents any errors that occurred when validating the assessment report. <br/>signatureKeyId:   The unique identifier for the validation signature key. <br/>signatureDateTime:   The date and time signature that specifies when the assessment report was created. <br/>signatureAlgorithm:   The signature algorithm used to code sign the assessment report file. <br/>signatureValid:   Specifies whether the signature key is valid. <br/>        """
        pass





class AutoScaling(BaseClient):
    r"""<fullname>Amazon EC2 Auto Scaling</fullname> Amazon EC2 Auto Scaling is designed to automatically launch or terminate EC2 instances based on user-defined scaling policies, scheduled actions, and health checks. For more information about Amazon EC2 Auto Scaling, see the <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/what-is-amazon-ec2-auto-scaling.html">Amazon EC2 Auto Scaling User Guide</a>. For information about granting IAM users required permissions for calls to Amazon EC2 Auto Scaling, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/APIReference/ec2-auto-scaling-api-permissions.html">Granting IAM users required permissions for Amazon EC2 Auto Scaling resources</a> in the <i>Amazon EC2 Auto Scaling API Reference</i>."""


    class DescribeAutoScalingGroupsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_auto_scaling_groups` for valid parameters"""
            pass
    class DescribeAutoScalingInstancesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_auto_scaling_instances` for valid parameters"""
            pass
    class DescribeLaunchConfigurationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_launch_configurations` for valid parameters"""
            pass
    class DescribeNotificationConfigurationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_notification_configurations` for valid parameters"""
            pass
    class DescribePoliciesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_policies` for valid parameters"""
            pass
    class DescribeScalingActivitiesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_scaling_activities` for valid parameters"""
            pass
    class DescribeScheduledActionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_scheduled_actions` for valid parameters"""
            pass
    class DescribeTagsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_tags` for valid parameters"""
            pass
    class DescribeLoadBalancerTargetGroupsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_load_balancer_target_groups` for valid parameters"""
            pass
    class DescribeLoadBalancersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_load_balancers` for valid parameters"""
            pass


    class AttachInstancesQuery(Mapping):
        pass
    
    class XmlStringMaxLen19(object):
        pass
    
    class AttachLoadBalancerTargetGroupsType(Mapping):
        pass
    
    class AttachLoadBalancerTargetGroupsResultType(Mapping):
        pass
    
    class XmlStringMaxLen511(object):
        pass
    
    class AttachLoadBalancersType(Mapping):
        pass
    
    class AttachLoadBalancersResultType(Mapping):
        pass
    
    class XmlStringMaxLen255(object):
        pass
    
    class BatchDeleteScheduledActionType(Mapping):
        pass
    
    class BatchDeleteScheduledActionAnswer(Mapping):
        pass
    
    class BatchPutScheduledUpdateGroupActionType(Mapping):
        pass
    
    class BatchPutScheduledUpdateGroupActionAnswer(Mapping):
        pass
    
    class ScheduledUpdateGroupActionRequest(Mapping):
        pass
    
    class CancelInstanceRefreshType(Mapping):
        pass
    
    class CancelInstanceRefreshAnswer(Mapping):
        pass
    
    class CompleteLifecycleActionType(Mapping):
        pass
    
    class CompleteLifecycleActionAnswer(Mapping):
        pass
    
    class CreateAutoScalingGroupType(Mapping):
        pass
    
    class LaunchTemplateSpecification(Mapping):
        pass
    
    class MixedInstancesPolicy(Mapping):
        pass
    
    class XmlStringMaxLen1600(object):
        pass
    
    class InstanceProtected(object):
        pass
    
    class CapacityRebalanceEnabled(object):
        pass
    
    class LifecycleHookSpecification(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class CreateLaunchConfigurationType(Mapping):
        pass
    
    class XmlString(object):
        pass
    
    class BlockDeviceMapping(Mapping):
        pass
    
    class InstanceMonitoring(Mapping):
        pass
    
    class EbsOptimized(object):
        pass
    
    class AssociatePublicIpAddress(object):
        pass
    
    class InstanceMetadataOptions(Mapping):
        pass
    
    class CreateOrUpdateTagsType(Mapping):
        pass
    
    class DeleteAutoScalingGroupType(Mapping):
        pass
    
    class ForceDelete(object):
        pass
    
    class LaunchConfigurationNameType(Mapping):
        pass
    
    class DeleteLifecycleHookType(Mapping):
        pass
    
    class DeleteLifecycleHookAnswer(Mapping):
        pass
    
    class DeleteNotificationConfigurationType(Mapping):
        pass
    
    class DeletePolicyType(Mapping):
        pass
    
    class DeleteScheduledActionType(Mapping):
        pass
    
    class DeleteTagsType(Mapping):
        pass
    
    class DeleteWarmPoolType(Mapping):
        pass
    
    class DeleteWarmPoolAnswer(Mapping):
        pass
    
    class DescribeAccountLimitsAnswer(Mapping):
        pass
    
    class DescribeAdjustmentTypesAnswer(Mapping):
        pass
    
    class AutoScalingGroupNamesType(Mapping):
        pass
    
    class AutoScalingGroupsType(Mapping):
        pass
    
    class DescribeAutoScalingInstancesType(Mapping):
        pass
    
    class AutoScalingInstancesType(Mapping):
        pass
    
    class DescribeAutoScalingNotificationTypesAnswer(Mapping):
        pass
    
    class DescribeInstanceRefreshesType(Mapping):
        pass
    
    class DescribeInstanceRefreshesAnswer(Mapping):
        pass
    
    class LaunchConfigurationNamesType(Mapping):
        pass
    
    class LaunchConfigurationsType(Mapping):
        pass
    
    class DescribeLifecycleHookTypesAnswer(Mapping):
        pass
    
    class DescribeLifecycleHooksType(Mapping):
        pass
    
    class DescribeLifecycleHooksAnswer(Mapping):
        pass
    
    class AsciiStringMaxLen255(object):
        pass
    
    class DescribeLoadBalancerTargetGroupsRequest(Mapping):
        pass
    
    class DescribeLoadBalancerTargetGroupsResponse(Mapping):
        pass
    
    class DescribeLoadBalancersRequest(Mapping):
        pass
    
    class DescribeLoadBalancersResponse(Mapping):
        pass
    
    class DescribeMetricCollectionTypesAnswer(Mapping):
        pass
    
    class DescribeNotificationConfigurationsType(Mapping):
        pass
    
    class DescribeNotificationConfigurationsAnswer(Mapping):
        pass
    
    class DescribePoliciesType(Mapping):
        pass
    
    class PoliciesType(Mapping):
        pass
    
    class ResourceName(object):
        pass
    
    class XmlStringMaxLen64(object):
        pass
    
    class DescribeScalingActivitiesType(Mapping):
        pass
    
    class ActivitiesType(Mapping):
        pass
    
    class IncludeDeletedGroups(object):
        pass
    
    class ProcessesType(Mapping):
        pass
    
    class DescribeScheduledActionsType(Mapping):
        pass
    
    class ScheduledActionsType(Mapping):
        pass
    
    class TimestampType(object):
        pass
    
    class DescribeTagsType(Mapping):
        pass
    
    class TagsType(Mapping):
        pass
    
    class Filter(Mapping):
        pass
    
    class DescribeTerminationPolicyTypesAnswer(Mapping):
        pass
    
    class DescribeWarmPoolType(Mapping):
        pass
    
    class DescribeWarmPoolAnswer(Mapping):
        pass
    
    class DetachInstancesQuery(Mapping):
        pass
    
    class DetachInstancesAnswer(Mapping):
        pass
    
    class ShouldDecrementDesiredCapacity(object):
        pass
    
    class DetachLoadBalancerTargetGroupsType(Mapping):
        pass
    
    class DetachLoadBalancerTargetGroupsResultType(Mapping):
        pass
    
    class DetachLoadBalancersType(Mapping):
        pass
    
    class DetachLoadBalancersResultType(Mapping):
        pass
    
    class DisableMetricsCollectionQuery(Mapping):
        pass
    
    class EnableMetricsCollectionQuery(Mapping):
        pass
    
    class EnterStandbyQuery(Mapping):
        pass
    
    class EnterStandbyAnswer(Mapping):
        pass
    
    class ExecutePolicyType(Mapping):
        pass
    
    class HonorCooldown(object):
        pass
    
    class MetricScale(object):
        pass
    
    class ExitStandbyQuery(Mapping):
        pass
    
    class ExitStandbyAnswer(Mapping):
        pass
    
    class GetPredictiveScalingForecastType(Mapping):
        pass
    
    class GetPredictiveScalingForecastAnswer(Mapping):
        pass
    
    class PutLifecycleHookType(Mapping):
        pass
    
    class PutLifecycleHookAnswer(Mapping):
        pass
    
    class PutNotificationConfigurationType(Mapping):
        pass
    
    class PutScalingPolicyType(Mapping):
        pass
    
    class PolicyARNType(Mapping):
        pass
    
    class StepAdjustment(Mapping):
        pass
    
    class TargetTrackingConfiguration(Mapping):
        pass
    
    class ScalingPolicyEnabled(object):
        pass
    
    class PredictiveScalingConfiguration(Mapping):
        pass
    
    class PutScheduledUpdateGroupActionType(Mapping):
        pass
    
    class PutWarmPoolType(Mapping):
        pass
    
    class PutWarmPoolAnswer(Mapping):
        pass
    
    class RecordLifecycleActionHeartbeatType(Mapping):
        pass
    
    class RecordLifecycleActionHeartbeatAnswer(Mapping):
        pass
    
    class ScalingProcessQuery(Mapping):
        pass
    
    class SetDesiredCapacityType(Mapping):
        pass
    
    class SetInstanceHealthQuery(Mapping):
        pass
    
    class ShouldRespectGracePeriod(object):
        pass
    
    class SetInstanceProtectionQuery(Mapping):
        pass
    
    class SetInstanceProtectionAnswer(Mapping):
        pass
    
    class ProtectedFromScaleIn(object):
        pass
    
    class StartInstanceRefreshType(Mapping):
        pass
    
    class StartInstanceRefreshAnswer(Mapping):
        pass
    
    class RefreshPreferences(Mapping):
        pass
    
    class TerminateInstanceInAutoScalingGroupType(Mapping):
        pass
    
    class ActivityType(Mapping):
        pass
    
    class UpdateAutoScalingGroupType(Mapping):
        pass
    
    def attach_instances(self, AutoScalingGroupName: str, InstanceIds: List[XmlStringMaxLen19]=None):
        r"""Attaches one or more EC2 instances to the specified Auto Scaling group. When you attach instances, Amazon EC2 Auto Scaling increases the desired capacity of the group by the number of instances being attached. If the number of instances being attached plus the desired capacity of the group exceeds the maximum size of the group, the operation fails. If there is a Classic Load Balancer attached to your Auto Scaling group, the instances are also registered with the load balancer. If there are target groups attached to your Auto Scaling group, the instances are also registered with the target groups. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/attach-instance-asg.html">Attach EC2 instances to your Auto Scaling group</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.

        :param self:
        :param AutoScalingGroupName:  The name of the Auto Scaling group.<br/>InstanceIds:  The IDs of the instances. You can specify up to 20 instances.<br/>
        :return:         """
        pass

    def attach_load_balancer_target_groups(self, TargetGroupARNs: List[XmlStringMaxLen511], AutoScalingGroupName: str) -> AttachLoadBalancerTargetGroupsResultType:
        r"""Attaches one or more target groups to the specified Auto Scaling group. This operation is used with the following load balancer types:  <ul> <li>  Application Load Balancer - Operates at the application layer (layer 7) and supports HTTP and HTTPS.  </li> <li>  Network Load Balancer - Operates at the transport layer (layer 4) and supports TCP, TLS, and UDP.  </li> <li>  Gateway Load Balancer - Operates at the network layer (layer 3). </li> </ul> To describe the target groups for an Auto Scaling group, call the <a>DescribeLoadBalancerTargetGroups</a> API. To detach the target group from the Auto Scaling group, call the <a>DetachLoadBalancerTargetGroups</a> API. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-load-balancer.html">Elastic Load Balancing and Amazon EC2 Auto Scaling</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>. 

        :param self:
        :param TargetGroupARNs:  The Amazon Resource Names (ARN) of the target groups. You can specify up to 10 target groups. To get the ARN of a target group, use the Elastic Load Balancing <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeTargetGroups.html">DescribeTargetGroups</a> API operation.<br/>AutoScalingGroupName:  The name of the Auto Scaling group.<br/>
        :return:         """
        pass

    def attach_load_balancers(self, LoadBalancerNames: List[XmlStringMaxLen255], AutoScalingGroupName: str) -> AttachLoadBalancersResultType:
        r"""<note> To attach an Application Load Balancer, Network Load Balancer, or Gateway Load Balancer, use the <a>AttachLoadBalancerTargetGroups</a> API operation instead. </note> Attaches one or more Classic Load Balancers to the specified Auto Scaling group. Amazon EC2 Auto Scaling registers the running instances with these Classic Load Balancers. To describe the load balancers for an Auto Scaling group, call the <a>DescribeLoadBalancers</a> API. To detach the load balancer from the Auto Scaling group, call the <a>DetachLoadBalancers</a> API. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-load-balancer.html">Elastic Load Balancing and Amazon EC2 Auto Scaling</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>. 

        :param self:
        :param LoadBalancerNames:  The names of the load balancers. You can specify up to 10 load balancers.<br/>AutoScalingGroupName:  The name of the Auto Scaling group.<br/>
        :return:         """
        pass

    def batch_delete_scheduled_action(self, ScheduledActionNames: List[XmlStringMaxLen255], AutoScalingGroupName: str) -> BatchDeleteScheduledActionAnswer:
        r"""Deletes one or more scheduled actions for the specified Auto Scaling group.

        :param self:
        :param ScheduledActionNames:  The names of the scheduled actions to delete. The maximum number allowed is 50. <br/>AutoScalingGroupName:  The name of the Auto Scaling group.<br/>
        :return: FailedScheduledActions:  The names of the scheduled actions that could not be deleted, including an error message.<br/>        """
        pass

    def batch_put_scheduled_update_group_action(self, ScheduledUpdateGroupActions: List[ScheduledUpdateGroupActionRequest], AutoScalingGroupName: str) -> BatchPutScheduledUpdateGroupActionAnswer:
        r"""Creates or updates one or more scheduled scaling actions for an Auto Scaling group.

        :param self:
        :param ScheduledUpdateGroupActions:  One or more scheduled actions. The maximum number allowed is 50.<br/>AutoScalingGroupName:  The name of the Auto Scaling group.<br/>
        :return: FailedScheduledUpdateGroupActions:  The names of the scheduled actions that could not be created or updated, including an error message.<br/>        """
        pass

    def cancel_instance_refresh(self, AutoScalingGroupName: str) -> CancelInstanceRefreshAnswer:
        r"""Cancels an instance refresh operation in progress. Cancellation does not roll back any replacements that have already been completed, but it prevents new replacements from being started.  This operation is part of the <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-instance-refresh.html">instance refresh feature</a> in Amazon EC2 Auto Scaling, which helps you update instances in your Auto Scaling group after you make configuration changes.

        :param self:
        :param AutoScalingGroupName:  The name of the Auto Scaling group.<br/>
        :return: InstanceRefreshId:  The instance refresh ID.<br/>        """
        pass

    def complete_lifecycle_action(self, LifecycleActionResult: str, AutoScalingGroupName: str, LifecycleHookName: str, LifecycleActionToken: str=None, InstanceId: str=None) -> CompleteLifecycleActionAnswer:
        r"""Completes the lifecycle action for the specified token or instance with the specified result. This step is a part of the procedure for adding a lifecycle hook to an Auto Scaling group: <ol> <li> (Optional) Create a Lambda function and a rule that allows CloudWatch Events to invoke your Lambda function when Amazon EC2 Auto Scaling launches or terminates instances. </li> <li> (Optional) Create a notification target and an IAM role. The target can be either an Amazon SQS queue or an Amazon SNS topic. The role allows Amazon EC2 Auto Scaling to publish lifecycle notifications to the target. </li> <li> Create the lifecycle hook. Specify whether the hook is used when the instances launch or terminate. </li> <li> If you need more time, record the lifecycle action heartbeat to keep the instance in a pending state. </li> <li>  <b>If you finish before the timeout period ends, complete the lifecycle action.</b>  </li> </ol> For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/lifecycle-hooks.html">Amazon EC2 Auto Scaling lifecycle hooks</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.

        :param self:
        :param InstanceId:  The ID of the instance.<br/>LifecycleActionResult:  The action for the group to take. This parameter can be either <code>CONTINUE</code> or <code>ABANDON</code>.<br/>LifecycleActionToken:  A universally unique identifier (UUID) that identifies a specific lifecycle action associated with an instance. Amazon EC2 Auto Scaling sends this token to the notification target you specified when you created the lifecycle hook.<br/>AutoScalingGroupName:  The name of the Auto Scaling group.<br/>LifecycleHookName:  The name of the lifecycle hook.<br/>
        :return:         """
        pass

    def create_auto_scaling_group(self, MaxSize: int, MinSize: int, AutoScalingGroupName: str, LaunchConfigurationName: str=None, LaunchTemplate: LaunchTemplateSpecification=None, MixedInstancesPolicy: MixedInstancesPolicy=None, InstanceId: str=None, DesiredCapacity: int=None, DefaultCooldown: int=None, AvailabilityZones: List[XmlStringMaxLen255]=None, LoadBalancerNames: List[XmlStringMaxLen255]=None, TargetGroupARNs: List[XmlStringMaxLen511]=None, HealthCheckType: str=None, HealthCheckGracePeriod: int=None, PlacementGroup: str=None, VPCZoneIdentifier: str=None, TerminationPolicies: List[XmlStringMaxLen1600]=None, NewInstancesProtectedFromScaleIn: InstanceProtected=None, CapacityRebalance: CapacityRebalanceEnabled=None, LifecycleHookSpecificationList: List[LifecycleHookSpecification]=None, Tags: List[Tag]=None, ServiceLinkedRoleARN: str=None, MaxInstanceLifetime: int=None, Context: str=None):
        r""" <b>We strongly recommend using a launch template when calling this operation to ensure full functionality for Amazon EC2 Auto Scaling and Amazon EC2.</b>  Creates an Auto Scaling group with the specified name and attributes.  If you exceed your maximum limit of Auto Scaling groups, the call fails. To query this limit, call the <a>DescribeAccountLimits</a> API. For information about updating this limit, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-account-limits.html">Amazon EC2 Auto Scaling service quotas</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>. For introductory exercises for creating an Auto Scaling group, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/GettingStartedTutorial.html">Getting started with Amazon EC2 Auto Scaling</a> and <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-register-lbs-with-asg.html">Tutorial: Set up a scaled and load-balanced application</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/AutoScalingGroup.html">Auto Scaling groups</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>. Every Auto Scaling group has three size parameters (<code>DesiredCapacity</code>, <code>MaxSize</code>, and <code>MinSize</code>). Usually, you set these sizes based on a specific number of instances. However, if you configure a mixed instances policy that defines weights for the instance types, you must specify these sizes with the same units that you use for weighting instances.

        :param self:
        :param Context:  Reserved.<br/>MaxInstanceLifetime:  The maximum amount of time, in seconds, that an instance can be in service. The default is null. If specified, the value must be either 0 or a number equal to or greater than 86,400 seconds (1 day). For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-max-instance-lifetime.html">Replacing Auto Scaling instances based on maximum instance lifetime</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.<br/>ServiceLinkedRoleARN:  The Amazon Resource Name (ARN) of the service-linked role that the Auto Scaling group uses to call other Amazon Web Services on your behalf. By default, Amazon EC2 Auto Scaling uses a service-linked role named <code>AWSServiceRoleForAutoScaling</code>, which it creates if it does not exist. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-service-linked-role.html">Service-linked roles</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.<br/>Tags:  One or more tags. You can tag your Auto Scaling group and propagate the tags to the Amazon EC2 instances it launches. Tags are not propagated to Amazon EBS volumes. To add tags to Amazon EBS volumes, specify the tags in a launch template but use caution. If the launch template specifies an instance tag with a key that is also specified for the Auto Scaling group, Amazon EC2 Auto Scaling overrides the value of that instance tag with the value specified by the Auto Scaling group. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-tagging.html">Tagging Auto Scaling groups and instances</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.<br/>LifecycleHookSpecificationList:  One or more lifecycle hooks for the group, which specify actions to perform when Amazon EC2 Auto Scaling launches or terminates instances.<br/>CapacityRebalance:  Indicates whether Capacity Rebalancing is enabled. Otherwise, Capacity Rebalancing is disabled. When you turn on Capacity Rebalancing, Amazon EC2 Auto Scaling attempts to launch a Spot Instance whenever Amazon EC2 notifies that a Spot Instance is at an elevated risk of interruption. After launching a new instance, it then terminates an old instance. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/capacity-rebalance.html">Amazon EC2 Auto Scaling Capacity Rebalancing</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.<br/>NewInstancesProtectedFromScaleIn:  Indicates whether newly launched instances are protected from termination by Amazon EC2 Auto Scaling when scaling in. For more information about preventing instances from terminating on scale in, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-termination.html#instance-protection">Instance scale-in protection</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.<br/>TerminationPolicies:  A policy or a list of policies that are used to select the instance to terminate. These policies are executed in the order that you list them. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-termination.html">Controlling which Auto Scaling instances terminate during scale in</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.<br/>VPCZoneIdentifier:  A comma-separated list of subnet IDs for a virtual private cloud (VPC) where instances in the Auto Scaling group can be created. If you specify <code>VPCZoneIdentifier</code> with <code>AvailabilityZones</code>, the subnets that you specify for this parameter must reside in those Availability Zones. Conditional: If your account supports EC2-Classic and VPC, this parameter is required to launch instances into a VPC.<br/>PlacementGroup:  The name of an existing placement group into which to launch your instances, if any. A placement group is a logical grouping of instances within a single Availability Zone. You cannot specify multiple Availability Zones and a placement group. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html">Placement Groups</a> in the <i>Amazon EC2 User Guide for Linux Instances</i>.<br/>HealthCheckGracePeriod:  The amount of time, in seconds, that Amazon EC2 Auto Scaling waits before checking the health status of an EC2 instance that has come into service. During this time, any health check failures for the instance are ignored. The default value is <code>0</code>. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/healthcheck.html#health-check-grace-period">Health check grace period</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>. Conditional: Required if you are adding an <code>ELB</code> health check.<br/>HealthCheckType:  The service to use for the health checks. The valid values are <code>EC2</code> (default) and <code>ELB</code>. If you configure an Auto Scaling group to use load balancer (ELB) health checks, it considers the instance unhealthy if it fails either the EC2 status checks or the load balancer health checks. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/healthcheck.html">Health checks for Auto Scaling instances</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.<br/>TargetGroupARNs:  The Amazon Resource Names (ARN) of the target groups to associate with the Auto Scaling group. Instances are registered as targets in a target group, and traffic is routed to the target group. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-load-balancer.html">Elastic Load Balancing and Amazon EC2 Auto Scaling</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.<br/>LoadBalancerNames:  A list of Classic Load Balancers associated with this Auto Scaling group. For Application Load Balancers, Network Load Balancers, and Gateway Load Balancers, specify the <code>TargetGroupARNs</code> property instead.<br/>AvailabilityZones:  A list of Availability Zones where instances in the Auto Scaling group can be created. This parameter is optional if you specify one or more subnets for <code>VPCZoneIdentifier</code>. Conditional: If your account supports EC2-Classic and VPC, this parameter is required to launch instances into EC2-Classic.<br/>DefaultCooldown:  The amount of time, in seconds, after a scaling activity completes before another scaling activity can start. The default value is <code>300</code>. This setting applies when using simple scaling policies, but not when using other scaling policies or scheduled scaling. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/Cooldown.html">Scaling cooldowns for Amazon EC2 Auto Scaling</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.<br/>DesiredCapacity:  The desired capacity is the initial capacity of the Auto Scaling group at the time of its creation and the capacity it attempts to maintain. It can scale beyond this capacity if you configure auto scaling. This number must be greater than or equal to the minimum size of the group and less than or equal to the maximum size of the group. If you do not specify a desired capacity, the default is the minimum size of the group.<br/>MaxSize:  The maximum size of the group. <note> With a mixed instances policy that uses instance weighting, Amazon EC2 Auto Scaling may need to go above <code>MaxSize</code> to meet your capacity requirements. In this event, Amazon EC2 Auto Scaling will never go above <code>MaxSize</code> by more than your largest instance weight (weights that define how many units each instance contributes to the desired capacity of the group). </note><br/>MinSize:  The minimum size of the group.<br/>InstanceId:  The ID of the instance used to base the launch configuration on. If specified, Amazon EC2 Auto Scaling uses the configuration values from the specified instance to create a new launch configuration. To get the instance ID, use the Amazon EC2 <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstances.html">DescribeInstances</a> API operation. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-asg-from-instance.html">Creating an Auto Scaling group using an EC2 instance</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.<br/>MixedInstancesPolicy:  An embedded object that specifies a mixed instances policy. The required properties must be specified. If optional properties are unspecified, their default values are used. The policy includes properties that not only define the distribution of On-Demand Instances and Spot Instances, the maximum price to pay for Spot Instances, and how the Auto Scaling group allocates instance types to fulfill On-Demand and Spot capacities, but also the properties that specify the instance configuration information—the launch template and instance types. The policy can also include a weight for each instance type and different launch templates for individual instance types. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-purchase-options.html">Auto Scaling groups with multiple instance types and purchase options</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.:<br/>LaunchTemplate:  Parameters used to specify the launch template and version to use to launch instances.  Conditional: You must specify either a launch template (<code>LaunchTemplate</code> or <code>MixedInstancesPolicy</code>) or a launch configuration (<code>LaunchConfigurationName</code> or <code>InstanceId</code>). <note> The launch template that is specified must be configured for use with an Auto Scaling group. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-launch-template.html">Creating a launch template for an Auto Scaling group</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>. </note>:<br/>LaunchConfigurationName:  The name of the launch configuration to use to launch instances.  Conditional: You must specify either a launch template (<code>LaunchTemplate</code> or <code>MixedInstancesPolicy</code>) or a launch configuration (<code>LaunchConfigurationName</code> or <code>InstanceId</code>).<br/>AutoScalingGroupName:  The name of the Auto Scaling group. This name must be unique per Region per account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The version number, <code>$Latest</code>, or <code>$Default</code>. To get the version number, use the Amazon EC2 <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeLaunchTemplateVersions.html">DescribeLaunchTemplateVersions</a> API operation. New launch template versions can be created using the Amazon EC2 <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateLaunchTemplateVersion.html">CreateLaunchTemplateVersion</a> API. If the value is <code>$Latest</code>, Amazon EC2 Auto Scaling selects the latest version of the launch template when launching instances. If the value is <code>$Default</code>, Amazon EC2 Auto Scaling selects the default version of the launch template when launching instances. The default value is <code>$Default</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LaunchTemplateName</i> The name of the launch template. To get the template name, use the Amazon EC2 <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeLaunchTemplates.html">DescribeLaunchTemplates</a> API operation. New launch templates can be created using the Amazon EC2 <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateLaunchTemplate.html">CreateLaunchTemplate</a> API.  Conditional: You must specify either a <code>LaunchTemplateId</code> or a <code>LaunchTemplateName</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LaunchTemplateId</i> The ID of the launch template. To get the template ID, use the Amazon EC2 <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeLaunchTemplates.html">DescribeLaunchTemplates</a> API operation. New launch templates can be created using the Amazon EC2 <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateLaunchTemplate.html">CreateLaunchTemplate</a> API.  Conditional: You must specify either a <code>LaunchTemplateId</code> or a <code>LaunchTemplateName</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstancesDistribution</i> Specifies the instances distribution. If not provided, the value for each property in <code>InstancesDistribution</code> uses a default value.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>InstancesDistribution</b>: Specifies the instances distribution. If not provided, the value for each property in <code>InstancesDistribution</code> uses a default value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LaunchTemplate</i> Specifies the launch template to use and optionally the instance types (overrides) that are used to provision EC2 instances to fulfill On-Demand and Spot capacities. Required when creating a mixed instances policy.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>LaunchTemplate</b>: Specifies the launch template to use and optionally the instance types (overrides) that are used to provision EC2 instances to fulfill On-Demand and Spot capacities. Required when creating a mixed instances policy.<br/>The launch template to use.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>LaunchTemplateSpecification</b>: The launch template to use.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SpotMaxPrice</i> The maximum price per unit hour that you are willing to pay for a Spot Instance. If you leave the value at its default (empty), Amazon EC2 Auto Scaling uses the On-Demand price as the maximum Spot price. To remove a value that you previously set, include the property but specify an empty string ("") for the value.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SpotInstancePools</i> The number of Spot Instance pools across which to allocate your Spot Instances. The Spot pools are determined from the different instance types in the overrides. Valid only when the Spot allocation strategy is <code>lowest-price</code>. Value must be in the range of 1 to 20. Defaults to 2 if not specified.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SpotAllocationStrategy</i> Indicates how to allocate instances across Spot Instance pools.  If the allocation strategy is <code>lowest-price</code>, the Auto Scaling group launches instances using the Spot pools with the lowest price, and evenly allocates your instances across the number of Spot pools that you specify. Defaults to <code>lowest-price</code> if not specified. If the allocation strategy is <code>capacity-optimized</code> (recommended), the Auto Scaling group launches instances using Spot pools that are optimally chosen based on the available Spot capacity. Alternatively, you can use <code>capacity-optimized-prioritized</code> and set the order of instance types in the list of launch template overrides from highest to lowest priority (from first to last in the list). Amazon EC2 Auto Scaling honors the instance type priorities on a best-effort basis but optimizes for capacity first. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OnDemandPercentageAboveBaseCapacity</i> Controls the percentages of On-Demand Instances and Spot Instances for your additional capacity beyond <code>OnDemandBaseCapacity</code>. Expressed as a number (for example, 20 specifies 20% On-Demand Instances, 80% Spot Instances). Defaults to 100 if not specified. If set to 100, only On-Demand Instances are provisioned.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OnDemandBaseCapacity</i> The minimum amount of the Auto Scaling group's capacity that must be fulfilled by On-Demand Instances. This base portion is provisioned first as your group scales. Defaults to 0 if not specified. If you specify weights for the instance types in the overrides, set the value of <code>OnDemandBaseCapacity</code> in terms of the number of capacity units, and not the number of instances.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OnDemandAllocationStrategy</i> Indicates how to allocate instance types to fulfill On-Demand capacity. The only valid value is <code>prioritized</code>, which is also the default value. This strategy uses the order of instance types in the <code>LaunchTemplateOverrides</code> to define the launch priority of each instance type. The first instance type in the array is prioritized higher than the last. If all your On-Demand capacity cannot be fulfilled using your highest priority instance, then the Auto Scaling groups launches the remaining capacity using the second priority instance type, and so on.<br/>
        :return:         """
        pass

    def create_launch_configuration(self, LaunchConfigurationName: str, ImageId: str=None, KeyName: str=None, SecurityGroups: List[XmlString]=None, ClassicLinkVPCId: str=None, ClassicLinkVPCSecurityGroups: List[XmlStringMaxLen255]=None, UserData: str=None, InstanceId: str=None, InstanceType: str=None, KernelId: str=None, RamdiskId: str=None, BlockDeviceMappings: List[BlockDeviceMapping]=None, InstanceMonitoring: InstanceMonitoring=None, SpotPrice: str=None, IamInstanceProfile: str=None, EbsOptimized: EbsOptimized=None, AssociatePublicIpAddress: AssociatePublicIpAddress=None, PlacementTenancy: str=None, MetadataOptions: InstanceMetadataOptions=None):
        r"""Creates a launch configuration. If you exceed your maximum limit of launch configurations, the call fails. To query this limit, call the <a>DescribeAccountLimits</a> API. For information about updating this limit, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-account-limits.html">Amazon EC2 Auto Scaling service quotas</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/LaunchConfiguration.html">Launch configurations</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.

        :param self:
        :param MetadataOptions:  The metadata options for the instances. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-launch-config.html#launch-configurations-imds">Configuring the Instance Metadata Options</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.:<br/>PlacementTenancy:  The tenancy of the instance. An instance with <code>dedicated</code> tenancy runs on isolated, single-tenant hardware and can only be launched into a VPC. To launch dedicated instances into a shared tenancy VPC (a VPC with the instance placement tenancy attribute set to <code>default</code>), you must set the value of this parameter to <code>dedicated</code>. If you specify <code>PlacementTenancy</code>, you must specify at least one subnet for <code>VPCZoneIdentifier</code> when you create your group. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/auto-scaling-dedicated-instances.html">Configuring instance tenancy with Amazon EC2 Auto Scaling</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>. Valid Values: <code>default</code> | <code>dedicated</code> <br/>AssociatePublicIpAddress:  For Auto Scaling groups that are running in a virtual private cloud (VPC), specifies whether to assign a public IP address to the group's instances. If you specify <code>true</code>, each instance in the Auto Scaling group receives a unique public IP address. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-in-vpc.html">Launching Auto Scaling instances in a VPC</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>. If you specify this parameter, you must specify at least one subnet for <code>VPCZoneIdentifier</code> when you create your group. <note> If the instance is launched into a default subnet, the default is to assign a public IP address, unless you disabled the option to assign a public IP address on the subnet. If the instance is launched into a nondefault subnet, the default is not to assign a public IP address, unless you enabled the option to assign a public IP address on the subnet. </note><br/>EbsOptimized:  Specifies whether the launch configuration is optimized for EBS I/O (<code>true</code>) or not (<code>false</code>). The optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal I/O performance. This optimization is not available with all instance types. Additional fees are incurred when you enable EBS optimization for an instance type that is not EBS-optimized by default. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html">Amazon EBS-Optimized Instances</a> in the <i>Amazon EC2 User Guide for Linux Instances</i>. The default value is <code>false</code>.<br/>IamInstanceProfile:  The name or the Amazon Resource Name (ARN) of the instance profile associated with the IAM role for the instance. The instance profile contains the IAM role. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/us-iam-role.html">IAM role for applications that run on Amazon EC2 instances</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.<br/>SpotPrice:  The maximum hourly price to be paid for any Spot Instance launched to fulfill the request. Spot Instances are launched when the price you specify exceeds the current Spot price. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-launch-spot-instances.html">Requesting Spot Instances</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>. <note> When you change your maximum price by creating a new launch configuration, running instances will continue to run as long as the maximum price for those running instances is higher than the current Spot price. </note><br/>InstanceMonitoring:  Controls whether instances in this group are launched with detailed (<code>true</code>) or basic (<code>false</code>) monitoring. The default value is <code>true</code> (enabled). <important> When detailed monitoring is enabled, Amazon CloudWatch generates metrics every minute and your account is charged a fee. When you disable detailed monitoring, CloudWatch generates metrics every 5 minutes. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/latest/userguide/enable-as-instance-metrics.html">Configure Monitoring for Auto Scaling Instances</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>. </important>:<br/>BlockDeviceMappings:  A block device mapping, which specifies the block devices for the instance. You can specify virtual devices and EBS volumes. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/block-device-mapping-concepts.html">Block Device Mapping</a> in the <i>Amazon EC2 User Guide for Linux Instances</i>.<br/>RamdiskId:  The ID of the RAM disk to select.<br/>KernelId:  The ID of the kernel associated with the AMI.<br/>InstanceType:  Specifies the instance type of the EC2 instance. For information about available instance types, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#AvailableInstanceTypes">Available Instance Types</a> in the <i>Amazon EC2 User Guide for Linux Instances</i>. If you do not specify <code>InstanceId</code>, you must specify <code>InstanceType</code>.<br/>InstanceId:  The ID of the instance to use to create the launch configuration. The new launch configuration derives attributes from the instance, except for the block device mapping. To create a launch configuration with a block device mapping or override any other instance attributes, specify them as part of the same request. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-lc-with-instanceID.html">Creating a launch configuration using an EC2 instance</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>. If you do not specify <code>InstanceId</code>, you must specify both <code>ImageId</code> and <code>InstanceType</code>.<br/>UserData:  The user data to make available to the launched EC2 instances. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html">Instance metadata and user data</a> (Linux) and <a href="https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2-instance-metadata.html">Instance metadata and user data</a> (Windows). If you are using a command line tool, base64-encoding is performed for you, and you can load the text from a file. Otherwise, you must provide base64-encoded text. User data is limited to 16 KB.<br/>ClassicLinkVPCSecurityGroups:  The IDs of one or more security groups for the specified ClassicLink-enabled VPC. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-classiclink.html">ClassicLink</a> in the <i>Amazon EC2 User Guide for Linux Instances</i> and <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-in-vpc.html#as-ClassicLink">Linking EC2-Classic instances to a VPC</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>. If you specify the <code>ClassicLinkVPCId</code> parameter, you must specify this parameter.<br/>ClassicLinkVPCId:  The ID of a ClassicLink-enabled VPC to link your EC2-Classic instances to. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-classiclink.html">ClassicLink</a> in the <i>Amazon EC2 User Guide for Linux Instances</i> and <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-in-vpc.html#as-ClassicLink">Linking EC2-Classic instances to a VPC</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>. This parameter can only be used if you are launching EC2-Classic instances.<br/>SecurityGroups:  A list that contains the security groups to assign to the instances in the Auto Scaling group. [EC2-VPC] Specify the security group IDs. For more information, see <a href="https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_SecurityGroups.html">Security Groups for Your VPC</a> in the <i>Amazon Virtual Private Cloud User Guide</i>. [EC2-Classic] Specify either the security group names or the security group IDs. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html">Amazon EC2 Security Groups</a> in the <i>Amazon EC2 User Guide for Linux Instances</i>.<br/>KeyName:  The name of the key pair. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html">Amazon EC2 Key Pairs</a> in the <i>Amazon EC2 User Guide for Linux Instances</i>.<br/>ImageId:  The ID of the Amazon Machine Image (AMI) that was assigned during registration. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/finding-an-ami.html">Finding an AMI</a> in the <i>Amazon EC2 User Guide for Linux Instances</i>. If you do not specify <code>InstanceId</code>, you must specify <code>ImageId</code>.<br/>LaunchConfigurationName:  The name of the launch configuration. This name must be unique per Region per account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> If <code>true</code>, detailed monitoring is enabled. Otherwise, basic monitoring is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HttpEndpoint</i> This parameter enables or disables the HTTP metadata endpoint on your instances. If the parameter is not specified, the default state is <code>enabled</code>. <note> If you specify a value of <code>disabled</code>, you will not be able to access your instance metadata.  </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HttpPutResponseHopLimit</i> The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Default: 1<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HttpTokens</i> The state of token usage for your instance metadata requests. If the parameter is not specified in the request, the default state is <code>optional</code>. If the state is <code>optional</code>, you can choose to retrieve instance metadata with or without a signed token header on your request. If you retrieve the IAM role credentials without a token, the version 1.0 role credentials are returned. If you retrieve the IAM role credentials using a valid signed token, the version 2.0 role credentials are returned. If the state is <code>required</code>, you must send a signed token header with any instance metadata retrieval requests. In this state, retrieving the IAM role credentials always returns the version 2.0 credentials; the version 1.0 credentials are not available.<br/>
        :return:         """
        pass

    def create_or_update_tags(self, Tags: List[Tag]):
        r"""Creates or updates tags for the specified Auto Scaling group. When you specify a tag with a key that already exists, the operation overwrites the previous tag definition, and you do not get an error message. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-tagging.html">Tagging Auto Scaling groups and instances</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.

        :param self:
        :param Tags:  One or more tags.<br/>
        :return:         """
        pass

    def delete_auto_scaling_group(self, AutoScalingGroupName: str, ForceDelete: ForceDelete=None):
        r"""Deletes the specified Auto Scaling group. If the group has instances or scaling activities in progress, you must specify the option to force the deletion in order for it to succeed. If the group has policies, deleting the group deletes the policies, the underlying alarm actions, and any alarm that no longer has an associated action. To remove instances from the Auto Scaling group before deleting it, call the <a>DetachInstances</a> API with the list of instances and the option to decrement the desired capacity. This ensures that Amazon EC2 Auto Scaling does not launch replacement instances. To terminate all instances before deleting the Auto Scaling group, call the <a>UpdateAutoScalingGroup</a> API and set the minimum size and desired capacity of the Auto Scaling group to zero.

        :param self:
        :param ForceDelete:  Specifies that the group is to be deleted along with all instances associated with the group, without waiting for all instances to be terminated. This parameter also deletes any outstanding lifecycle actions associated with the group.<br/>AutoScalingGroupName:  The name of the Auto Scaling group.<br/>
        :return:         """
        pass

    def delete_launch_configuration(self, LaunchConfigurationName: str):
        r"""Deletes the specified launch configuration. The launch configuration must not be attached to an Auto Scaling group. When this call completes, the launch configuration is no longer available for use.

        :param self:
        :param LaunchConfigurationName:  The name of the launch configuration.<br/>
        :return:         """
        pass

    def delete_lifecycle_hook(self, AutoScalingGroupName: str, LifecycleHookName: str) -> DeleteLifecycleHookAnswer:
        r"""Deletes the specified lifecycle hook. If there are any outstanding lifecycle actions, they are completed first (<code>ABANDON</code> for launching instances, <code>CONTINUE</code> for terminating instances).

        :param self:
        :param AutoScalingGroupName:  The name of the Auto Scaling group.<br/>LifecycleHookName:  The name of the lifecycle hook.<br/>
        :return:         """
        pass

    def delete_notification_configuration(self, TopicARN: str, AutoScalingGroupName: str):
        r"""Deletes the specified notification.

        :param self:
        :param TopicARN:  The Amazon Resource Name (ARN) of the Amazon Simple Notification Service (Amazon SNS) topic.<br/>AutoScalingGroupName:  The name of the Auto Scaling group.<br/>
        :return:         """
        pass

    def delete_policy(self, PolicyName: str, AutoScalingGroupName: str=None):
        r"""Deletes the specified scaling policy. Deleting either a step scaling policy or a simple scaling policy deletes the underlying alarm action, but does not delete the alarm, even if it no longer has an associated action. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/deleting-scaling-policy.html">Deleting a scaling policy</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.

        :param self:
        :param PolicyName:  The name or Amazon Resource Name (ARN) of the policy.<br/>AutoScalingGroupName:  The name of the Auto Scaling group.<br/>
        :return:         """
        pass

    def delete_scheduled_action(self, ScheduledActionName: str, AutoScalingGroupName: str):
        r"""Deletes the specified scheduled action.

        :param self:
        :param ScheduledActionName:  The name of the action to delete.<br/>AutoScalingGroupName:  The name of the Auto Scaling group.<br/>
        :return:         """
        pass

    def delete_tags(self, Tags: List[Tag]):
        r"""Deletes the specified tags.

        :param self:
        :param Tags:  One or more tags.<br/>
        :return:         """
        pass

    def delete_warm_pool(self, AutoScalingGroupName: str, ForceDelete: ForceDelete=None) -> DeleteWarmPoolAnswer:
        r"""Deletes the warm pool for the specified Auto Scaling group. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-warm-pools.html">Warm pools for Amazon EC2 Auto Scaling</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.

        :param self:
        :param ForceDelete:  Specifies that the warm pool is to be deleted along with all of its associated instances, without waiting for all instances to be terminated. This parameter also deletes any outstanding lifecycle actions associated with the warm pool instances.<br/>AutoScalingGroupName:  The name of the Auto Scaling group.<br/>
        :return:         """
        pass

    def describe_account_limits(self) -> DescribeAccountLimitsAnswer:
        r"""Describes the current Amazon EC2 Auto Scaling resource quotas for your account. When you establish an account, the account has initial quotas on the maximum number of Auto Scaling groups and launch configurations that you can create in a given Region. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-account-limits.html">Amazon EC2 Auto Scaling service quotas</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.

        :param self:
        :param 
        :return: NumberOfLaunchConfigurations:  The current number of launch configurations for your account.<br/>NumberOfAutoScalingGroups:  The current number of groups for your account.<br/>MaxNumberOfLaunchConfigurations:  The maximum number of launch configurations allowed for your account. The default is 200 launch configurations per Region.<br/>MaxNumberOfAutoScalingGroups:  The maximum number of groups allowed for your account. The default is 200 groups per Region.<br/>        """
        pass

    def describe_adjustment_types(self) -> DescribeAdjustmentTypesAnswer:
        r"""Describes the available adjustment types for step scaling and simple scaling policies. The following adjustment types are supported: <ul> <li>  <code>ChangeInCapacity</code>  </li> <li>  <code>ExactCapacity</code>  </li> <li>  <code>PercentChangeInCapacity</code>  </li> </ul>

        :param self:
        :param 
        :return: AdjustmentTypes:  The policy adjustment types.<br/>        """
        pass

    def describe_auto_scaling_groups(self, AutoScalingGroupNames: List[XmlStringMaxLen255]=None, NextToken: str=None, MaxRecords: int=None) -> AutoScalingGroupsType:
        r"""Gets information about the Auto Scaling groups in the account and Region. This operation returns information about instances in Auto Scaling groups. To retrieve information about the instances in a warm pool, you must call the <a>DescribeWarmPool</a> API. 

        :param self:
        :param MaxRecords:  The maximum number of items to return with this call. The default value is <code>50</code> and the maximum value is <code>100</code>.<br/>NextToken:  The token for the next set of items to return. (You received this token from a previous call.)<br/>AutoScalingGroupNames:  The names of the Auto Scaling groups. By default, you can only specify up to 50 names. You can optionally increase this limit using the <code>MaxRecords</code> parameter. If you omit this parameter, all Auto Scaling groups are described.<br/>
        :return: NextToken:  A string that indicates that the response contains more items than can be returned in a single response. To receive additional items, specify this string for the <code>NextToken</code> value when requesting the next set of items. This value is null when there are no more items to return.<br/>AutoScalingGroups:  The groups.<br/>        """
        pass

    def describe_auto_scaling_instances(self, InstanceIds: List[XmlStringMaxLen19]=None, MaxRecords: int=None, NextToken: str=None) -> AutoScalingInstancesType:
        r"""Gets information about the Auto Scaling instances in the account and Region.

        :param self:
        :param NextToken:  The token for the next set of items to return. (You received this token from a previous call.)<br/>MaxRecords:  The maximum number of items to return with this call. The default value is <code>50</code> and the maximum value is <code>50</code>.<br/>InstanceIds:  The IDs of the instances. If you omit this parameter, all Auto Scaling instances are described. If you specify an ID that does not exist, it is ignored with no error. Array Members: Maximum number of 50 items.<br/>
        :return: NextToken:  A string that indicates that the response contains more items than can be returned in a single response. To receive additional items, specify this string for the <code>NextToken</code> value when requesting the next set of items. This value is null when there are no more items to return.<br/>AutoScalingInstances:  The instances.<br/>        """
        pass

    def describe_auto_scaling_notification_types(self) -> DescribeAutoScalingNotificationTypesAnswer:
        r"""Describes the notification types that are supported by Amazon EC2 Auto Scaling.

        :param self:
        :param 
        :return: AutoScalingNotificationTypes:  The notification types.<br/>        """
        pass

    def describe_instance_refreshes(self, AutoScalingGroupName: str, InstanceRefreshIds: List[XmlStringMaxLen255]=None, NextToken: str=None, MaxRecords: int=None) -> DescribeInstanceRefreshesAnswer:
        r"""Gets information about the instance refreshes for the specified Auto Scaling group. This operation is part of the <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-instance-refresh.html">instance refresh feature</a> in Amazon EC2 Auto Scaling, which helps you update instances in your Auto Scaling group after you make configuration changes. To help you determine the status of an instance refresh, this operation returns information about the instance refreshes you previously initiated, including their status, end time, the percentage of the instance refresh that is complete, and the number of instances remaining to update before the instance refresh is complete. The following are the possible statuses:  <ul> <li>  <code>Pending</code> - The request was created, but the operation has not started. </li> <li>  <code>InProgress</code> - The operation is in progress. </li> <li>  <code>Successful</code> - The operation completed successfully. </li> <li>  <code>Failed</code> - The operation failed to complete. You can troubleshoot using the status reason and the scaling activities.  </li> <li>  <code>Cancelling</code> - An ongoing operation is being cancelled. Cancellation does not roll back any replacements that have already been completed, but it prevents new replacements from being started.  </li> <li>  <code>Cancelled</code> - The operation is cancelled.  </li> </ul>

        :param self:
        :param MaxRecords:  The maximum number of items to return with this call. The default value is <code>50</code> and the maximum value is <code>100</code>.<br/>NextToken:  The token for the next set of items to return. (You received this token from a previous call.)<br/>InstanceRefreshIds:  One or more instance refresh IDs.<br/>AutoScalingGroupName:  The name of the Auto Scaling group.<br/>
        :return: NextToken:  A string that indicates that the response contains more items than can be returned in a single response. To receive additional items, specify this string for the <code>NextToken</code> value when requesting the next set of items. This value is null when there are no more items to return.<br/>InstanceRefreshes:  The instance refreshes for the specified group.<br/>        """
        pass

    def describe_launch_configurations(self, LaunchConfigurationNames: List[XmlStringMaxLen255]=None, NextToken: str=None, MaxRecords: int=None) -> LaunchConfigurationsType:
        r"""Gets information about the launch configurations in the account and Region.

        :param self:
        :param MaxRecords:  The maximum number of items to return with this call. The default value is <code>50</code> and the maximum value is <code>100</code>.<br/>NextToken:  The token for the next set of items to return. (You received this token from a previous call.)<br/>LaunchConfigurationNames:  The launch configuration names. If you omit this parameter, all launch configurations are described. Array Members: Maximum number of 50 items.<br/>
        :return: NextToken:  A string that indicates that the response contains more items than can be returned in a single response. To receive additional items, specify this string for the <code>NextToken</code> value when requesting the next set of items. This value is null when there are no more items to return.<br/>LaunchConfigurations:  The launch configurations.<br/>        """
        pass

    def describe_lifecycle_hook_types(self) -> DescribeLifecycleHookTypesAnswer:
        r"""Describes the available types of lifecycle hooks. The following hook types are supported: <ul> <li>  <code>autoscaling:EC2_INSTANCE_LAUNCHING</code>  </li> <li>  <code>autoscaling:EC2_INSTANCE_TERMINATING</code>  </li> </ul>

        :param self:
        :param 
        :return: LifecycleHookTypes:  The lifecycle hook types.<br/>        """
        pass

    def describe_lifecycle_hooks(self, AutoScalingGroupName: str, LifecycleHookNames: List[AsciiStringMaxLen255]=None) -> DescribeLifecycleHooksAnswer:
        r"""Gets information about the lifecycle hooks for the specified Auto Scaling group.

        :param self:
        :param LifecycleHookNames:  The names of one or more lifecycle hooks. If you omit this parameter, all lifecycle hooks are described.<br/>AutoScalingGroupName:  The name of the Auto Scaling group.<br/>
        :return: LifecycleHooks:  The lifecycle hooks for the specified group.<br/>        """
        pass

    def describe_load_balancer_target_groups(self, AutoScalingGroupName: str, NextToken: str=None, MaxRecords: int=None) -> DescribeLoadBalancerTargetGroupsResponse:
        r"""Gets information about the load balancer target groups for the specified Auto Scaling group. To determine the availability of registered instances, use the <code>State</code> element in the response. When you attach a target group to an Auto Scaling group, the initial <code>State</code> value is <code>Adding</code>. The state transitions to <code>Added</code> after all Auto Scaling instances are registered with the target group. If Elastic Load Balancing health checks are enabled for the Auto Scaling group, the state transitions to <code>InService</code> after at least one Auto Scaling instance passes the health check. When the target group is in the <code>InService</code> state, Amazon EC2 Auto Scaling can terminate and replace any instances that are reported as unhealthy. If no registered instances pass the health checks, the target group doesn't enter the <code>InService</code> state.  Target groups also have an <code>InService</code> state if you attach them in the <a>CreateAutoScalingGroup</a> API call. If your target group state is <code>InService</code>, but it is not working properly, check the scaling activities by calling <a>DescribeScalingActivities</a> and take any corrective actions necessary. For help with failed health checks, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/ts-as-healthchecks.html">Troubleshooting Amazon EC2 Auto Scaling: Health checks</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-load-balancer.html">Elastic Load Balancing and Amazon EC2 Auto Scaling</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>. 

        :param self:
        :param MaxRecords:  The maximum number of items to return with this call. The default value is <code>100</code> and the maximum value is <code>100</code>.<br/>NextToken:  The token for the next set of items to return. (You received this token from a previous call.)<br/>AutoScalingGroupName:  The name of the Auto Scaling group.<br/>
        :return: NextToken:  A string that indicates that the response contains more items than can be returned in a single response. To receive additional items, specify this string for the <code>NextToken</code> value when requesting the next set of items. This value is null when there are no more items to return.<br/>LoadBalancerTargetGroups:  Information about the target groups.<br/>        """
        pass

    def describe_load_balancers(self, AutoScalingGroupName: str, NextToken: str=None, MaxRecords: int=None) -> DescribeLoadBalancersResponse:
        r"""Gets information about the load balancers for the specified Auto Scaling group. This operation describes only Classic Load Balancers. If you have Application Load Balancers, Network Load Balancers, or Gateway Load Balancers, use the <a>DescribeLoadBalancerTargetGroups</a> API instead. To determine the availability of registered instances, use the <code>State</code> element in the response. When you attach a load balancer to an Auto Scaling group, the initial <code>State</code> value is <code>Adding</code>. The state transitions to <code>Added</code> after all Auto Scaling instances are registered with the load balancer. If Elastic Load Balancing health checks are enabled for the Auto Scaling group, the state transitions to <code>InService</code> after at least one Auto Scaling instance passes the health check. When the load balancer is in the <code>InService</code> state, Amazon EC2 Auto Scaling can terminate and replace any instances that are reported as unhealthy. If no registered instances pass the health checks, the load balancer doesn't enter the <code>InService</code> state.  Load balancers also have an <code>InService</code> state if you attach them in the <a>CreateAutoScalingGroup</a> API call. If your load balancer state is <code>InService</code>, but it is not working properly, check the scaling activities by calling <a>DescribeScalingActivities</a> and take any corrective actions necessary. For help with failed health checks, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/ts-as-healthchecks.html">Troubleshooting Amazon EC2 Auto Scaling: Health checks</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-load-balancer.html">Elastic Load Balancing and Amazon EC2 Auto Scaling</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>. 

        :param self:
        :param MaxRecords:  The maximum number of items to return with this call. The default value is <code>100</code> and the maximum value is <code>100</code>.<br/>NextToken:  The token for the next set of items to return. (You received this token from a previous call.)<br/>AutoScalingGroupName:  The name of the Auto Scaling group.<br/>
        :return: NextToken:  A string that indicates that the response contains more items than can be returned in a single response. To receive additional items, specify this string for the <code>NextToken</code> value when requesting the next set of items. This value is null when there are no more items to return.<br/>LoadBalancers:  The load balancers.<br/>        """
        pass

    def describe_metric_collection_types(self) -> DescribeMetricCollectionTypesAnswer:
        r"""Describes the available CloudWatch metrics for Amazon EC2 Auto Scaling. The <code>GroupStandbyInstances</code> metric is not returned by default. You must explicitly request this metric when calling the <a>EnableMetricsCollection</a> API.

        :param self:
        :param 
        :return: Granularities:  The granularities for the metrics.<br/>Metrics:  One or more metrics.<br/>        """
        pass

    def describe_notification_configurations(self, AutoScalingGroupNames: List[XmlStringMaxLen255]=None, NextToken: str=None, MaxRecords: int=None) -> DescribeNotificationConfigurationsAnswer:
        r"""Gets information about the Amazon SNS notifications that are configured for one or more Auto Scaling groups.

        :param self:
        :param MaxRecords:  The maximum number of items to return with this call. The default value is <code>50</code> and the maximum value is <code>100</code>.<br/>NextToken:  The token for the next set of items to return. (You received this token from a previous call.)<br/>AutoScalingGroupNames:  The name of the Auto Scaling group.<br/>
        :return: NextToken:  A string that indicates that the response contains more items than can be returned in a single response. To receive additional items, specify this string for the <code>NextToken</code> value when requesting the next set of items. This value is null when there are no more items to return.<br/>NotificationConfigurations:  The notification configurations.<br/>        """
        pass

    def describe_policies(self, AutoScalingGroupName: str=None, PolicyNames: List[ResourceName]=None, PolicyTypes: List[XmlStringMaxLen64]=None, NextToken: str=None, MaxRecords: int=None) -> PoliciesType:
        r"""Gets information about the scaling policies in the account and Region.

        :param self:
        :param MaxRecords:  The maximum number of items to be returned with each call. The default value is <code>50</code> and the maximum value is <code>100</code>.<br/>NextToken:  The token for the next set of items to return. (You received this token from a previous call.)<br/>PolicyTypes:  One or more policy types. The valid values are <code>SimpleScaling</code>, <code>StepScaling</code>, <code>TargetTrackingScaling</code>, and <code>PredictiveScaling</code>.<br/>PolicyNames:  The names of one or more policies. If you omit this parameter, all policies are described. If a group name is provided, the results are limited to that group. If you specify an unknown policy name, it is ignored with no error. Array Members: Maximum number of 50 items.<br/>AutoScalingGroupName:  The name of the Auto Scaling group.<br/>
        :return: NextToken:  A string that indicates that the response contains more items than can be returned in a single response. To receive additional items, specify this string for the <code>NextToken</code> value when requesting the next set of items. This value is null when there are no more items to return.<br/>ScalingPolicies:  The scaling policies.<br/>        """
        pass

    def describe_scaling_activities(self, ActivityIds: List[XmlString]=None, AutoScalingGroupName: str=None, IncludeDeletedGroups: IncludeDeletedGroups=None, MaxRecords: int=None, NextToken: str=None) -> ActivitiesType:
        r"""Gets information about the scaling activities in the account and Region. When scaling events occur, you see a record of the scaling activity in the scaling activities. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-verify-scaling-activity.html">Verifying a scaling activity for an Auto Scaling group</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>. If the scaling event succeeds, the value of the <code>StatusCode</code> element in the response is <code>Successful</code>. If an attempt to launch instances failed, the <code>StatusCode</code> value is <code>Failed</code> or <code>Cancelled</code> and the <code>StatusMessage</code> element in the response indicates the cause of the failure. For help interpreting the <code>StatusMessage</code>, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/CHAP_Troubleshooting.html">Troubleshooting Amazon EC2 Auto Scaling</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>. 

        :param self:
        :param NextToken:  The token for the next set of items to return. (You received this token from a previous call.)<br/>MaxRecords:  The maximum number of items to return with this call. The default value is <code>100</code> and the maximum value is <code>100</code>.<br/>IncludeDeletedGroups:  Indicates whether to include scaling activity from deleted Auto Scaling groups.<br/>AutoScalingGroupName:  The name of the Auto Scaling group.<br/>ActivityIds:  The activity IDs of the desired scaling activities. If you omit this parameter, all activities for the past six weeks are described. If unknown activities are requested, they are ignored with no error. If you specify an Auto Scaling group, the results are limited to that group. Array Members: Maximum number of 50 IDs.<br/>
        :return: NextToken:  A string that indicates that the response contains more items than can be returned in a single response. To receive additional items, specify this string for the <code>NextToken</code> value when requesting the next set of items. This value is null when there are no more items to return.<br/>Activities:  The scaling activities. Activities are sorted by start time. Activities still in progress are described first.<br/>        """
        pass

    def describe_scaling_process_types(self) -> ProcessesType:
        r"""Describes the scaling process types for use with the <a>ResumeProcesses</a> and <a>SuspendProcesses</a> APIs.

        :param self:
        :param 
        :return: Processes:  The names of the process types.<br/>        """
        pass

    def describe_scheduled_actions(self, AutoScalingGroupName: str=None, ScheduledActionNames: List[XmlStringMaxLen255]=None, StartTime: TimestampType=None, EndTime: TimestampType=None, NextToken: str=None, MaxRecords: int=None) -> ScheduledActionsType:
        r"""Gets information about the scheduled actions that haven't run or that have not reached their end time. To describe the scaling activities for scheduled actions that have already run, call the <a>DescribeScalingActivities</a> API.

        :param self:
        :param MaxRecords:  The maximum number of items to return with this call. The default value is <code>50</code> and the maximum value is <code>100</code>.<br/>NextToken:  The token for the next set of items to return. (You received this token from a previous call.)<br/>EndTime:  The latest scheduled start time to return. If scheduled action names are provided, this parameter is ignored.<br/>StartTime:  The earliest scheduled start time to return. If scheduled action names are provided, this parameter is ignored.<br/>ScheduledActionNames:  The names of one or more scheduled actions. If you omit this parameter, all scheduled actions are described. If you specify an unknown scheduled action, it is ignored with no error. Array Members: Maximum number of 50 actions.<br/>AutoScalingGroupName:  The name of the Auto Scaling group.<br/>
        :return: NextToken:  A string that indicates that the response contains more items than can be returned in a single response. To receive additional items, specify this string for the <code>NextToken</code> value when requesting the next set of items. This value is null when there are no more items to return.<br/>ScheduledUpdateGroupActions:  The scheduled actions.<br/>        """
        pass

    def describe_tags(self, Filters: List[Filter]=None, NextToken: str=None, MaxRecords: int=None) -> TagsType:
        r"""Describes the specified tags. You can use filters to limit the results. For example, you can query for the tags for a specific Auto Scaling group. You can specify multiple values for a filter. A tag must match at least one of the specified values for it to be included in the results. You can also specify multiple filters. The result includes information for a particular tag only if it matches all the filters. If there's no match, no special message is returned. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-tagging.html">Tagging Auto Scaling groups and instances</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.

        :param self:
        :param MaxRecords:  The maximum number of items to return with this call. The default value is <code>50</code> and the maximum value is <code>100</code>.<br/>NextToken:  The token for the next set of items to return. (You received this token from a previous call.)<br/>Filters:  One or more filters to scope the tags to return. The maximum number of filters per filter type (for example, <code>auto-scaling-group</code>) is 1000.<br/>
        :return: NextToken:  A string that indicates that the response contains more items than can be returned in a single response. To receive additional items, specify this string for the <code>NextToken</code> value when requesting the next set of items. This value is null when there are no more items to return.<br/>Tags:  One or more tags.<br/>        """
        pass

    def describe_termination_policy_types(self) -> DescribeTerminationPolicyTypesAnswer:
        r"""Describes the termination policies supported by Amazon EC2 Auto Scaling. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-termination.html">Controlling which Auto Scaling instances terminate during scale in</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.

        :param self:
        :param 
        :return: TerminationPolicyTypes:  The termination policies supported by Amazon EC2 Auto Scaling: <code>OldestInstance</code>, <code>OldestLaunchConfiguration</code>, <code>NewestInstance</code>, <code>ClosestToNextInstanceHour</code>, <code>Default</code>, <code>OldestLaunchTemplate</code>, and <code>AllocationStrategy</code>.<br/>        """
        pass

    def describe_warm_pool(self, AutoScalingGroupName: str, MaxRecords: int=None, NextToken: str=None) -> DescribeWarmPoolAnswer:
        r"""Gets information about a warm pool and its instances. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-warm-pools.html">Warm pools for Amazon EC2 Auto Scaling</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.

        :param self:
        :param NextToken:  The token for the next set of instances to return. (You received this token from a previous call.)<br/>MaxRecords:  The maximum number of instances to return with this call. The maximum value is <code>50</code>.<br/>AutoScalingGroupName:  The name of the Auto Scaling group.<br/>
        :return: NextToken:  The token for the next set of items to return. (You received this token from a previous call.)<br/>Instances:  The instances that are currently in the warm pool.<br/>WarmPoolConfiguration:  The warm pool configuration details. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of a warm pool that is marked for deletion.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PoolState</i> The instance state to transition to after the lifecycle actions are complete.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MinSize</i> The minimum number of instances to maintain in the warm pool.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxGroupPreparedCapacity</i> The maximum number of instances that are allowed to be in the warm pool or in any state except <code>Terminated</code> for the Auto Scaling group.<br/>        """
        pass

    def detach_instances(self, ShouldDecrementDesiredCapacity: ShouldDecrementDesiredCapacity, AutoScalingGroupName: str, InstanceIds: List[XmlStringMaxLen19]=None) -> DetachInstancesAnswer:
        r"""Removes one or more instances from the specified Auto Scaling group. After the instances are detached, you can manage them independent of the Auto Scaling group. If you do not specify the option to decrement the desired capacity, Amazon EC2 Auto Scaling launches instances to replace the ones that are detached. If there is a Classic Load Balancer attached to the Auto Scaling group, the instances are deregistered from the load balancer. If there are target groups attached to the Auto Scaling group, the instances are deregistered from the target groups. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/detach-instance-asg.html">Detach EC2 instances from your Auto Scaling group</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.

        :param self:
        :param ShouldDecrementDesiredCapacity:  Indicates whether the Auto Scaling group decrements the desired capacity value by the number of instances detached.<br/>AutoScalingGroupName:  The name of the Auto Scaling group.<br/>InstanceIds:  The IDs of the instances. You can specify up to 20 instances.<br/>
        :return: Activities:  The activities related to detaching the instances from the Auto Scaling group.<br/>        """
        pass

    def detach_load_balancer_target_groups(self, TargetGroupARNs: List[XmlStringMaxLen511], AutoScalingGroupName: str) -> DetachLoadBalancerTargetGroupsResultType:
        r"""Detaches one or more target groups from the specified Auto Scaling group.

        :param self:
        :param TargetGroupARNs:  The Amazon Resource Names (ARN) of the target groups. You can specify up to 10 target groups.<br/>AutoScalingGroupName:  The name of the Auto Scaling group.<br/>
        :return:         """
        pass

    def detach_load_balancers(self, LoadBalancerNames: List[XmlStringMaxLen255], AutoScalingGroupName: str) -> DetachLoadBalancersResultType:
        r"""Detaches one or more Classic Load Balancers from the specified Auto Scaling group. This operation detaches only Classic Load Balancers. If you have Application Load Balancers, Network Load Balancers, or Gateway Load Balancers, use the <a>DetachLoadBalancerTargetGroups</a> API instead. When you detach a load balancer, it enters the <code>Removing</code> state while deregistering the instances in the group. When all instances are deregistered, then you can no longer describe the load balancer using the <a>DescribeLoadBalancers</a> API call. The instances remain running.

        :param self:
        :param LoadBalancerNames:  The names of the load balancers. You can specify up to 10 load balancers.<br/>AutoScalingGroupName:  The name of the Auto Scaling group.<br/>
        :return:         """
        pass

    def disable_metrics_collection(self, AutoScalingGroupName: str, Metrics: List[XmlStringMaxLen255]=None):
        r"""Disables group metrics for the specified Auto Scaling group.

        :param self:
        :param Metrics:  Specifies one or more of the following metrics: <ul> <li>  <code>GroupMinSize</code>  </li> <li>  <code>GroupMaxSize</code>  </li> <li>  <code>GroupDesiredCapacity</code>  </li> <li>  <code>GroupInServiceInstances</code>  </li> <li>  <code>GroupPendingInstances</code>  </li> <li>  <code>GroupStandbyInstances</code>  </li> <li>  <code>GroupTerminatingInstances</code>  </li> <li>  <code>GroupTotalInstances</code>  </li> <li>  <code>GroupInServiceCapacity</code>  </li> <li>  <code>GroupPendingCapacity</code>  </li> <li>  <code>GroupStandbyCapacity</code>  </li> <li>  <code>GroupTerminatingCapacity</code>  </li> <li>  <code>GroupTotalCapacity</code>  </li> <li>  <code>WarmPoolDesiredCapacity</code>  </li> <li>  <code>WarmPoolWarmedCapacity</code>  </li> <li>  <code>WarmPoolPendingCapacity</code>  </li> <li>  <code>WarmPoolTerminatingCapacity</code>  </li> <li>  <code>WarmPoolTotalCapacity</code>  </li> <li>  <code>GroupAndWarmPoolDesiredCapacity</code>  </li> <li>  <code>GroupAndWarmPoolTotalCapacity</code>  </li> </ul> If you omit this parameter, all metrics are disabled. <br/>AutoScalingGroupName:  The name of the Auto Scaling group.<br/>
        :return:         """
        pass

    def enable_metrics_collection(self, Granularity: str, AutoScalingGroupName: str, Metrics: List[XmlStringMaxLen255]=None):
        r"""Enables group metrics for the specified Auto Scaling group. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-monitoring.html">Monitoring CloudWatch metrics for your Auto Scaling groups and instances</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.

        :param self:
        :param Granularity:  The granularity to associate with the metrics to collect. The only valid value is <code>1Minute</code>.<br/>Metrics:  Specifies which group-level metrics to start collecting. You can specify one or more of the following metrics: <ul> <li>  <code>GroupMinSize</code>  </li> <li>  <code>GroupMaxSize</code>  </li> <li>  <code>GroupDesiredCapacity</code>  </li> <li>  <code>GroupInServiceInstances</code>  </li> <li>  <code>GroupPendingInstances</code>  </li> <li>  <code>GroupStandbyInstances</code>  </li> <li>  <code>GroupTerminatingInstances</code>  </li> <li>  <code>GroupTotalInstances</code>  </li> </ul> The instance weighting feature supports the following additional metrics:  <ul> <li>  <code>GroupInServiceCapacity</code>  </li> <li>  <code>GroupPendingCapacity</code>  </li> <li>  <code>GroupStandbyCapacity</code>  </li> <li>  <code>GroupTerminatingCapacity</code>  </li> <li>  <code>GroupTotalCapacity</code>  </li> </ul> The warm pools feature supports the following additional metrics:  <ul> <li>  <code>WarmPoolDesiredCapacity</code>  </li> <li>  <code>WarmPoolWarmedCapacity</code>  </li> <li>  <code>WarmPoolPendingCapacity</code>  </li> <li>  <code>WarmPoolTerminatingCapacity</code>  </li> <li>  <code>WarmPoolTotalCapacity</code>  </li> <li>  <code>GroupAndWarmPoolDesiredCapacity</code>  </li> <li>  <code>GroupAndWarmPoolTotalCapacity</code>  </li> </ul> If you omit this parameter, all metrics are enabled. <br/>AutoScalingGroupName:  The name of the Auto Scaling group.<br/>
        :return:         """
        pass

    def enter_standby(self, ShouldDecrementDesiredCapacity: ShouldDecrementDesiredCapacity, AutoScalingGroupName: str, InstanceIds: List[XmlStringMaxLen19]=None) -> EnterStandbyAnswer:
        r"""Moves the specified instances into the standby state. If you choose to decrement the desired capacity of the Auto Scaling group, the instances can enter standby as long as the desired capacity of the Auto Scaling group after the instances are placed into standby is equal to or greater than the minimum capacity of the group. If you choose not to decrement the desired capacity of the Auto Scaling group, the Auto Scaling group launches new instances to replace the instances on standby. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-enter-exit-standby.html">Temporarily removing instances from your Auto Scaling group</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.

        :param self:
        :param ShouldDecrementDesiredCapacity:  Indicates whether to decrement the desired capacity of the Auto Scaling group by the number of instances moved to <code>Standby</code> mode.<br/>AutoScalingGroupName:  The name of the Auto Scaling group.<br/>InstanceIds:  The IDs of the instances. You can specify up to 20 instances.<br/>
        :return: Activities:  The activities related to moving instances into <code>Standby</code> mode.<br/>        """
        pass

    def execute_policy(self, PolicyName: str, AutoScalingGroupName: str=None, HonorCooldown: HonorCooldown=None, MetricValue: MetricScale=None, BreachThreshold: MetricScale=None):
        r"""Executes the specified policy. This can be useful for testing the design of your scaling policy.

        :param self:
        :param BreachThreshold:  The breach threshold for the alarm. Required if the policy type is <code>StepScaling</code> and not supported otherwise.<br/>MetricValue:  The metric value to compare to <code>BreachThreshold</code>. This enables you to execute a policy of type <code>StepScaling</code> and determine which step adjustment to use. For example, if the breach threshold is 50 and you want to use a step adjustment with a lower bound of 0 and an upper bound of 10, you can set the metric value to 59. If you specify a metric value that doesn't correspond to a step adjustment for the policy, the call returns an error. Required if the policy type is <code>StepScaling</code> and not supported otherwise.<br/>HonorCooldown:  Indicates whether Amazon EC2 Auto Scaling waits for the cooldown period to complete before executing the policy. Valid only if the policy type is <code>SimpleScaling</code>. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/Cooldown.html">Scaling cooldowns for Amazon EC2 Auto Scaling</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.<br/>PolicyName:  The name or ARN of the policy.<br/>AutoScalingGroupName:  The name of the Auto Scaling group.<br/>
        :return:         """
        pass

    def exit_standby(self, AutoScalingGroupName: str, InstanceIds: List[XmlStringMaxLen19]=None) -> ExitStandbyAnswer:
        r"""Moves the specified instances out of the standby state. After you put the instances back in service, the desired capacity is incremented. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-enter-exit-standby.html">Temporarily removing instances from your Auto Scaling group</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.

        :param self:
        :param AutoScalingGroupName:  The name of the Auto Scaling group.<br/>InstanceIds:  The IDs of the instances. You can specify up to 20 instances.<br/>
        :return: Activities:  The activities related to moving instances out of <code>Standby</code> mode.<br/>        """
        pass

    def get_predictive_scaling_forecast(self, EndTime: TimestampType, StartTime: TimestampType, PolicyName: str, AutoScalingGroupName: str) -> GetPredictiveScalingForecastAnswer:
        r"""Retrieves the forecast data for a predictive scaling policy. Load forecasts are predictions of the hourly load values using historical load data from CloudWatch and an analysis of historical trends. Capacity forecasts are represented as predicted values for the minimum capacity that is needed on an hourly basis, based on the hourly load forecast. A minimum of 24 hours of data is required to create the initial forecasts. However, having a full 14 days of historical data results in more accurate forecasts. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-predictive-scaling.html">Predictive scaling for Amazon EC2 Auto Scaling</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.

        :param self:
        :param EndTime:  The exclusive end time of the time range for the forecast data to get. The maximum time duration between the start and end time is 30 days.  Although this parameter can accept a date and time that is more than two days in the future, the availability of forecast data has limits. Amazon EC2 Auto Scaling only issues forecasts for periods of two days in advance.<br/>StartTime:  The inclusive start time of the time range for the forecast data to get. At most, the date and time can be one year before the current date and time.<br/>PolicyName:  The name of the policy.<br/>AutoScalingGroupName:  The name of the Auto Scaling group.<br/>
        :return: UpdateTime:  The time the forecast was made.<br/>CapacityForecast:  The capacity forecast.:<br/>LoadForecast:  The load forecast.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Values</i> The values of the data points.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Timestamps</i> The time stamps for the data points, in UTC format.<br/>        """
        pass

    def put_lifecycle_hook(self, AutoScalingGroupName: str, LifecycleHookName: str, LifecycleTransition: str=None, RoleARN: str=None, NotificationTargetARN: str=None, NotificationMetadata: str=None, HeartbeatTimeout: int=None, DefaultResult: str=None) -> PutLifecycleHookAnswer:
        r"""Creates or updates a lifecycle hook for the specified Auto Scaling group. A lifecycle hook tells Amazon EC2 Auto Scaling to perform an action on an instance when the instance launches (before it is put into service) or as the instance terminates (before it is fully terminated). This step is a part of the procedure for adding a lifecycle hook to an Auto Scaling group: <ol> <li> (Optional) Create a Lambda function and a rule that allows CloudWatch Events to invoke your Lambda function when Amazon EC2 Auto Scaling launches or terminates instances. </li> <li> (Optional) Create a notification target and an IAM role. The target can be either an Amazon SQS queue or an Amazon SNS topic. The role allows Amazon EC2 Auto Scaling to publish lifecycle notifications to the target. </li> <li>  <b>Create the lifecycle hook. Specify whether the hook is used when the instances launch or terminate.</b>  </li> <li> If you need more time, record the lifecycle action heartbeat to keep the instance in a pending state using the <a>RecordLifecycleActionHeartbeat</a> API call. </li> <li> If you finish before the timeout period ends, complete the lifecycle action using the <a>CompleteLifecycleAction</a> API call. </li> </ol> For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/lifecycle-hooks.html">Amazon EC2 Auto Scaling lifecycle hooks</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>. If you exceed your maximum limit of lifecycle hooks, which by default is 50 per Auto Scaling group, the call fails. You can view the lifecycle hooks for an Auto Scaling group using the <a>DescribeLifecycleHooks</a> API call. If you are no longer using a lifecycle hook, you can delete it by calling the <a>DeleteLifecycleHook</a> API.

        :param self:
        :param DefaultResult:  Defines the action the Auto Scaling group should take when the lifecycle hook timeout elapses or if an unexpected failure occurs. This parameter can be either <code>CONTINUE</code> or <code>ABANDON</code>. The default value is <code>ABANDON</code>.<br/>HeartbeatTimeout:  The maximum time, in seconds, that can elapse before the lifecycle hook times out. The range is from <code>30</code> to <code>7200</code> seconds. The default value is <code>3600</code> seconds (1 hour). If the lifecycle hook times out, Amazon EC2 Auto Scaling performs the action that you specified in the <code>DefaultResult</code> parameter. You can prevent the lifecycle hook from timing out by calling the <a>RecordLifecycleActionHeartbeat</a> API.<br/>NotificationMetadata:  Additional information that you want to include any time Amazon EC2 Auto Scaling sends a message to the notification target.<br/>NotificationTargetARN:  The ARN of the notification target that Amazon EC2 Auto Scaling uses to notify you when an instance is in the transition state for the lifecycle hook. This target can be either an SQS queue or an SNS topic. If you specify an empty string, this overrides the current ARN. This operation uses the JSON format when sending notifications to an Amazon SQS queue, and an email key-value pair format when sending notifications to an Amazon SNS topic. When you specify a notification target, Amazon EC2 Auto Scaling sends it a test message. Test messages contain the following additional key-value pair: <code>"Event": "autoscaling:TEST_NOTIFICATION"</code>.<br/>RoleARN:  The ARN of the IAM role that allows the Auto Scaling group to publish to the specified notification target, for example, an Amazon SNS topic or an Amazon SQS queue. Required for new lifecycle hooks, but optional when updating existing hooks.<br/>LifecycleTransition:  The instance state to which you want to attach the lifecycle hook. The valid values are: <ul> <li> autoscaling:EC2_INSTANCE_LAUNCHING </li> <li> autoscaling:EC2_INSTANCE_TERMINATING </li> </ul> Required for new lifecycle hooks, but optional when updating existing hooks.<br/>AutoScalingGroupName:  The name of the Auto Scaling group.<br/>LifecycleHookName:  The name of the lifecycle hook.<br/>
        :return:         """
        pass

    def put_notification_configuration(self, NotificationTypes: List[XmlStringMaxLen255], TopicARN: str, AutoScalingGroupName: str):
        r"""Configures an Auto Scaling group to send notifications when specified events take place. Subscribers to the specified topic can have messages delivered to an endpoint such as a web server or an email address. This configuration overwrites any existing configuration. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/ASGettingNotifications.html">Getting Amazon SNS notifications when your Auto Scaling group scales</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>. If you exceed your maximum limit of SNS topics, which is 10 per Auto Scaling group, the call fails.

        :param self:
        :param NotificationTypes:  The type of event that causes the notification to be sent. To query the notification types supported by Amazon EC2 Auto Scaling, call the <a>DescribeAutoScalingNotificationTypes</a> API.<br/>TopicARN:  The Amazon Resource Name (ARN) of the Amazon Simple Notification Service (Amazon SNS) topic.<br/>AutoScalingGroupName:  The name of the Auto Scaling group.<br/>
        :return:         """
        pass

    def put_scaling_policy(self, PolicyName: str, AutoScalingGroupName: str, PolicyType: str=None, AdjustmentType: str=None, MinAdjustmentStep: int=None, MinAdjustmentMagnitude: int=None, ScalingAdjustment: int=None, Cooldown: int=None, MetricAggregationType: str=None, StepAdjustments: List[StepAdjustment]=None, EstimatedInstanceWarmup: int=None, TargetTrackingConfiguration: TargetTrackingConfiguration=None, Enabled: ScalingPolicyEnabled=None, PredictiveScalingConfiguration: PredictiveScalingConfiguration=None) -> PolicyARNType:
        r"""Creates or updates a scaling policy for an Auto Scaling group. Scaling policies are used to scale an Auto Scaling group based on configurable metrics. If no policies are defined, the dynamic scaling and predictive scaling features are not used.  For more information about using dynamic scaling, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scaling-target-tracking.html">Target tracking scaling policies</a> and <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scaling-simple-step.html">Step and simple scaling policies</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>. For more information about using predictive scaling, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-predictive-scaling.html">Predictive scaling for Amazon EC2 Auto Scaling</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>. You can view the scaling policies for an Auto Scaling group using the <a>DescribePolicies</a> API call. If you are no longer using a scaling policy, you can delete it by calling the <a>DeletePolicy</a> API.

        :param self:
        :param PredictiveScalingConfiguration:  A predictive scaling policy. Provides support for only predefined metrics. Predictive scaling works with CPU utilization, network in/out, and the Application Load Balancer request count. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_PredictiveScalingConfiguration.html">PredictiveScalingConfiguration</a> in the <i>Amazon EC2 Auto Scaling API Reference</i>. Required if the policy type is <code>PredictiveScaling</code>.:<br/>Enabled:  Indicates whether the scaling policy is enabled or disabled. The default is enabled. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-enable-disable-scaling-policy.html">Disabling a scaling policy for an Auto Scaling group</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.<br/>TargetTrackingConfiguration:  A target tracking scaling policy. Provides support for predefined or customized metrics. The following predefined metrics are available: <ul> <li>  <code>ASGAverageCPUUtilization</code>  </li> <li>  <code>ASGAverageNetworkIn</code>  </li> <li>  <code>ASGAverageNetworkOut</code>  </li> <li>  <code>ALBRequestCountPerTarget</code>  </li> </ul> If you specify <code>ALBRequestCountPerTarget</code> for the metric, you must specify the <code>ResourceLabel</code> parameter with the <code>PredefinedMetricSpecification</code>. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_TargetTrackingConfiguration.html">TargetTrackingConfiguration</a> in the <i>Amazon EC2 Auto Scaling API Reference</i>. Required if the policy type is <code>TargetTrackingScaling</code>.:<br/>EstimatedInstanceWarmup:  The estimated time, in seconds, until a newly launched instance can contribute to the CloudWatch metrics. If not provided, the default is to use the value from the default cooldown period for the Auto Scaling group. Valid only if the policy type is <code>TargetTrackingScaling</code> or <code>StepScaling</code>.<br/>StepAdjustments:  A set of adjustments that enable you to scale based on the size of the alarm breach. Required if the policy type is <code>StepScaling</code>. (Not used with any other policy type.) <br/>MetricAggregationType:  The aggregation type for the CloudWatch metrics. The valid values are <code>Minimum</code>, <code>Maximum</code>, and <code>Average</code>. If the aggregation type is null, the value is treated as <code>Average</code>. Valid only if the policy type is <code>StepScaling</code>.<br/>Cooldown:  The duration of the policy's cooldown period, in seconds. When a cooldown period is specified here, it overrides the default cooldown period defined for the Auto Scaling group. Valid only if the policy type is <code>SimpleScaling</code>. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/Cooldown.html">Scaling cooldowns for Amazon EC2 Auto Scaling</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.<br/>ScalingAdjustment:  The amount by which to scale, based on the specified adjustment type. A positive value adds to the current capacity while a negative number removes from the current capacity. For exact capacity, you must specify a positive value. Required if the policy type is <code>SimpleScaling</code>. (Not used with any other policy type.) <br/>MinAdjustmentMagnitude:  The minimum value to scale by when the adjustment type is <code>PercentChangeInCapacity</code>. For example, suppose that you create a step scaling policy to scale out an Auto Scaling group by 25 percent and you specify a <code>MinAdjustmentMagnitude</code> of 2. If the group has 4 instances and the scaling policy is performed, 25 percent of 4 is 1. However, because you specified a <code>MinAdjustmentMagnitude</code> of 2, Amazon EC2 Auto Scaling scales out the group by 2 instances. Valid only if the policy type is <code>StepScaling</code> or <code>SimpleScaling</code>. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scaling-simple-step.html#as-scaling-adjustment">Scaling adjustment types</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>. <note> Some Auto Scaling groups use instance weights. In this case, set the <code>MinAdjustmentMagnitude</code> to a value that is at least as large as your largest instance weight. </note><br/>MinAdjustmentStep:  Available for backward compatibility. Use <code>MinAdjustmentMagnitude</code> instead.<br/>AdjustmentType:  Specifies how the scaling adjustment is interpreted (for example, an absolute number or a percentage). The valid values are <code>ChangeInCapacity</code>, <code>ExactCapacity</code>, and <code>PercentChangeInCapacity</code>. Required if the policy type is <code>StepScaling</code> or <code>SimpleScaling</code>. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scaling-simple-step.html#as-scaling-adjustment">Scaling adjustment types</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.<br/>PolicyType:  One of the following policy types:  <ul> <li>  <code>TargetTrackingScaling</code>  </li> <li>  <code>StepScaling</code>  </li> <li>  <code>SimpleScaling</code> (default) </li> <li>  <code>PredictiveScaling</code>  </li> </ul><br/>PolicyName:  The name of the policy.<br/>AutoScalingGroupName:  The name of the Auto Scaling group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DisableScaleIn</i> Indicates whether scaling in by the target tracking scaling policy is disabled. If scaling in is disabled, the target tracking scaling policy doesn't remove instances from the Auto Scaling group. Otherwise, the target tracking scaling policy can remove instances from the Auto Scaling group. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetValue</i> The target value for the metric.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomizedMetricSpecification</i> A customized metric. You must specify either a predefined metric or a customized metric.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CustomizedMetricSpecification</b>: A customized metric. You must specify either a predefined metric or a customized metric.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PredefinedMetricSpecification</i> A predefined metric. You must specify either a predefined metric or a customized metric.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PredefinedMetricSpecification</b>: A predefined metric. You must specify either a predefined metric or a customized metric.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceLabel</i> A label that uniquely identifies a specific Application Load Balancer target group from which to determine the average request count served by your Auto Scaling group. You can't specify a resource label unless the target group is attached to the Auto Scaling group. You create the resource label by appending the final portion of the load balancer ARN and the final portion of the target group ARN into a single value, separated by a forward slash (/). The format of the resource label is:  <code>app/my-alb/778d41231b141a0f/targetgroup/my-alb-target-group/943f017f100becff</code>. Where: <ul> <li> app/&lt;load-balancer-name&gt;/&lt;load-balancer-id&gt; is the final portion of the load balancer ARN </li> <li> targetgroup/&lt;target-group-name&gt;/&lt;target-group-id&gt; is the final portion of the target group ARN. </li> </ul> To find the ARN for an Application Load Balancer, use the <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html">DescribeLoadBalancers</a> API operation. To find the ARN for the target group, use the <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeTargetGroups.html">DescribeTargetGroups</a> API operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PredefinedMetricType</i> The metric type. The following predefined metrics are available: <ul> <li>  <code>ASGAverageCPUUtilization</code> - Average CPU utilization of the Auto Scaling group. </li> <li>  <code>ASGAverageNetworkIn</code> - Average number of bytes received on all network interfaces by the Auto Scaling group. </li> <li>  <code>ASGAverageNetworkOut</code> - Average number of bytes sent out on all network interfaces by the Auto Scaling group. </li> <li>  <code>ALBRequestCountPerTarget</code> - Number of requests completed per target in an Application Load Balancer target group. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Unit</i> The unit of the metric.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Statistic</i> The statistic of the metric.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Dimensions</i> The dimensions of the metric. Conditional: If you published your metric with dimensions, you must specify the same dimensions in your scaling policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Namespace</i> The namespace of the metric.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MetricName</i> The name of the metric.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxCapacityBuffer</i> The size of the capacity buffer to use when the forecast capacity is close to or exceeds the maximum capacity. The value is specified as a percentage relative to the forecast capacity. For example, if the buffer is 10, this means a 10 percent buffer, such that if the forecast capacity is 50, and the maximum capacity is 40, then the effective maximum capacity is 55. If set to 0, Amazon EC2 Auto Scaling may scale capacity higher than the maximum capacity to equal but not exceed forecast capacity.  Required if the <code>MaxCapacityBreachBehavior</code> property is set to <code>IncreaseMaxCapacity</code>, and cannot be used otherwise.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxCapacityBreachBehavior</i> Defines the behavior that should be applied if the forecast capacity approaches or exceeds the maximum capacity of the Auto Scaling group. Defaults to <code>HonorMaxCapacity</code> if not specified. The following are possible values: <ul> <li>  <code>HonorMaxCapacity</code> - Amazon EC2 Auto Scaling cannot scale out capacity higher than the maximum capacity. The maximum capacity is enforced as a hard limit.  </li> <li>  <code>IncreaseMaxCapacity</code> - Amazon EC2 Auto Scaling can scale out capacity higher than the maximum capacity when the forecast capacity is close to or exceeds the maximum capacity. The upper limit is determined by the forecasted capacity and the value for <code>MaxCapacityBuffer</code>. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SchedulingBufferTime</i> The amount of time, in seconds, by which the instance launch time can be advanced. For example, the forecast says to add capacity at 10:00 AM, and you choose to pre-launch instances by 5 minutes. In that case, the instances will be launched at 9:55 AM. The intention is to give resources time to be provisioned. It can take a few minutes to launch an EC2 instance. The actual amount of time required depends on several factors, such as the size of the instance and whether there are startup scripts to complete.  The value must be less than the forecast interval duration of 3600 seconds (60 minutes). Defaults to 300 seconds if not specified. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Mode</i> The predictive scaling mode. Defaults to <code>ForecastOnly</code> if not specified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MetricSpecifications</i> This structure includes the metrics and target utilization to use for predictive scaling.  This is an array, but we currently only support a single metric specification. That is, you can specify a target value and a single metric pair, or a target value and one scaling metric and one load metric.<br/>
        :return: Alarms:  The CloudWatch alarms created for the target tracking scaling policy.<br/>PolicyARN:  The Amazon Resource Name (ARN) of the policy.<br/>        """
        pass

    def put_scheduled_update_group_action(self, ScheduledActionName: str, AutoScalingGroupName: str, Time: TimestampType=None, StartTime: TimestampType=None, EndTime: TimestampType=None, Recurrence: str=None, MinSize: int=None, MaxSize: int=None, DesiredCapacity: int=None, TimeZone: str=None):
        r"""Creates or updates a scheduled scaling action for an Auto Scaling group. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/schedule_time.html">Scheduled scaling</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>. You can view the scheduled actions for an Auto Scaling group using the <a>DescribeScheduledActions</a> API call. If you are no longer using a scheduled action, you can delete it by calling the <a>DeleteScheduledAction</a> API.

        :param self:
        :param TimeZone:  Specifies the time zone for a cron expression. If a time zone is not provided, UTC is used by default.  Valid values are the canonical names of the IANA time zones, derived from the IANA Time Zone Database (such as <code>Etc/GMT+9</code> or <code>Pacific/Tahiti</code>). For more information, see <a href="https://en.wikipedia.org/wiki/List_of_tz_database_time_zones">https://en.wikipedia.org/wiki/List_of_tz_database_time_zones</a>.<br/>DesiredCapacity:  The desired capacity is the initial capacity of the Auto Scaling group after the scheduled action runs and the capacity it attempts to maintain. It can scale beyond this capacity if you add more scaling conditions. <br/>MaxSize:  The maximum size of the Auto Scaling group.<br/>MinSize:  The minimum size of the Auto Scaling group.<br/>Recurrence:  The recurring schedule for this action. This format consists of five fields separated by white spaces: [Minute] [Hour] [Day_of_Month] [Month_of_Year] [Day_of_Week]. The value must be in quotes (for example, <code>"30 0 1 1,6,12 *"</code>). For more information about this format, see <a href="http://crontab.org">Crontab</a>. When <code>StartTime</code> and <code>EndTime</code> are specified with <code>Recurrence</code>, they form the boundaries of when the recurring action starts and stops. Cron expressions use Universal Coordinated Time (UTC) by default.<br/>EndTime:  The date and time for the recurring schedule to end, in UTC.<br/>StartTime:  The date and time for this action to start, in YYYY-MM-DDThh:mm:ssZ format in UTC/GMT only and in quotes (for example, <code>"2019-06-01T00:00:00Z"</code>). If you specify <code>Recurrence</code> and <code>StartTime</code>, Amazon EC2 Auto Scaling performs the action at this time, and then performs the action based on the specified recurrence. If you try to schedule your action in the past, Amazon EC2 Auto Scaling returns an error message.<br/>Time:  This parameter is no longer used.<br/>ScheduledActionName:  The name of this scaling action.<br/>AutoScalingGroupName:  The name of the Auto Scaling group.<br/>
        :return:         """
        pass

    def put_warm_pool(self, AutoScalingGroupName: str, MaxGroupPreparedCapacity: int=None, MinSize: int=None, PoolState: str=None) -> PutWarmPoolAnswer:
        r"""Creates or updates a warm pool for the specified Auto Scaling group. A warm pool is a pool of pre-initialized EC2 instances that sits alongside the Auto Scaling group. Whenever your application needs to scale out, the Auto Scaling group can draw on the warm pool to meet its new desired capacity. For more information and example configurations, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-warm-pools.html">Warm pools for Amazon EC2 Auto Scaling</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>. This operation must be called from the Region in which the Auto Scaling group was created. This operation cannot be called on an Auto Scaling group that has a mixed instances policy or a launch template or launch configuration that requests Spot Instances. You can view the instances in the warm pool using the <a>DescribeWarmPool</a> API call. If you are no longer using a warm pool, you can delete it by calling the <a>DeleteWarmPool</a> API.

        :param self:
        :param PoolState:  Sets the instance state to transition to after the lifecycle actions are complete. Default is <code>Stopped</code>.<br/>MinSize:  Specifies the minimum number of instances to maintain in the warm pool. This helps you to ensure that there is always a certain number of warmed instances available to handle traffic spikes. Defaults to 0 if not specified.<br/>MaxGroupPreparedCapacity:  Specifies the maximum number of instances that are allowed to be in the warm pool or in any state except <code>Terminated</code> for the Auto Scaling group. This is an optional property. Specify it only if you do not want the warm pool size to be determined by the difference between the group's maximum capacity and its desired capacity.  <important> If a value for <code>MaxGroupPreparedCapacity</code> is not specified, Amazon EC2 Auto Scaling launches and maintains the difference between the group's maximum capacity and its desired capacity. If you specify a value for <code>MaxGroupPreparedCapacity</code>, Amazon EC2 Auto Scaling uses the difference between the <code>MaxGroupPreparedCapacity</code> and the desired capacity instead.  The size of the warm pool is dynamic. Only when <code>MaxGroupPreparedCapacity</code> and <code>MinSize</code> are set to the same value does the warm pool have an absolute size. </important> If the desired capacity of the Auto Scaling group is higher than the <code>MaxGroupPreparedCapacity</code>, the capacity of the warm pool is 0, unless you specify a value for <code>MinSize</code>. To remove a value that you previously set, include the property but specify -1 for the value. <br/>AutoScalingGroupName:  The name of the Auto Scaling group.<br/>
        :return:         """
        pass

    def record_lifecycle_action_heartbeat(self, AutoScalingGroupName: str, LifecycleHookName: str, LifecycleActionToken: str=None, InstanceId: str=None) -> RecordLifecycleActionHeartbeatAnswer:
        r"""Records a heartbeat for the lifecycle action associated with the specified token or instance. This extends the timeout by the length of time defined using the <a>PutLifecycleHook</a> API call. This step is a part of the procedure for adding a lifecycle hook to an Auto Scaling group: <ol> <li> (Optional) Create a Lambda function and a rule that allows CloudWatch Events to invoke your Lambda function when Amazon EC2 Auto Scaling launches or terminates instances. </li> <li> (Optional) Create a notification target and an IAM role. The target can be either an Amazon SQS queue or an Amazon SNS topic. The role allows Amazon EC2 Auto Scaling to publish lifecycle notifications to the target. </li> <li> Create the lifecycle hook. Specify whether the hook is used when the instances launch or terminate. </li> <li>  <b>If you need more time, record the lifecycle action heartbeat to keep the instance in a pending state.</b>  </li> <li> If you finish before the timeout period ends, complete the lifecycle action. </li> </ol> For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/lifecycle-hooks.html">Amazon EC2 Auto Scaling lifecycle hooks</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.

        :param self:
        :param InstanceId:  The ID of the instance.<br/>LifecycleActionToken:  A token that uniquely identifies a specific lifecycle action associated with an instance. Amazon EC2 Auto Scaling sends this token to the notification target that you specified when you created the lifecycle hook.<br/>AutoScalingGroupName:  The name of the Auto Scaling group.<br/>LifecycleHookName:  The name of the lifecycle hook.<br/>
        :return:         """
        pass

    def resume_processes(self, AutoScalingGroupName: str, ScalingProcesses: List[XmlStringMaxLen255]=None):
        r"""Resumes the specified suspended auto scaling processes, or all suspended process, for the specified Auto Scaling group. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-suspend-resume-processes.html">Suspending and resuming scaling processes</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.

        :param self:
        :param ScalingProcesses:  One or more of the following processes: <ul> <li>  <code>Launch</code>  </li> <li>  <code>Terminate</code>  </li> <li>  <code>AddToLoadBalancer</code>  </li> <li>  <code>AlarmNotification</code>  </li> <li>  <code>AZRebalance</code>  </li> <li>  <code>HealthCheck</code>  </li> <li>  <code>InstanceRefresh</code>  </li> <li>  <code>ReplaceUnhealthy</code>  </li> <li>  <code>ScheduledActions</code>  </li> </ul> If you omit this parameter, all processes are specified.<br/>AutoScalingGroupName:  The name of the Auto Scaling group.<br/>
        :return:         """
        pass

    def set_desired_capacity(self, DesiredCapacity: int, AutoScalingGroupName: str, HonorCooldown: HonorCooldown=None):
        r"""Sets the size of the specified Auto Scaling group. If a scale-in activity occurs as a result of a new <code>DesiredCapacity</code> value that is lower than the current size of the group, the Auto Scaling group uses its termination policy to determine which instances to terminate.  For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-manual-scaling.html">Manual scaling</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.

        :param self:
        :param HonorCooldown:  Indicates whether Amazon EC2 Auto Scaling waits for the cooldown period to complete before initiating a scaling activity to set your Auto Scaling group to its new capacity. By default, Amazon EC2 Auto Scaling does not honor the cooldown period during manual scaling activities.<br/>DesiredCapacity:  The desired capacity is the initial capacity of the Auto Scaling group after this operation completes and the capacity it attempts to maintain.<br/>AutoScalingGroupName:  The name of the Auto Scaling group.<br/>
        :return:         """
        pass

    def set_instance_health(self, HealthStatus: str, InstanceId: str, ShouldRespectGracePeriod: ShouldRespectGracePeriod=None):
        r"""Sets the health status of the specified instance. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/healthcheck.html">Health checks for Auto Scaling instances</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.

        :param self:
        :param ShouldRespectGracePeriod:  If the Auto Scaling group of the specified instance has a <code>HealthCheckGracePeriod</code> specified for the group, by default, this call respects the grace period. Set this to <code>False</code>, to have the call not respect the grace period associated with the group. For more information about the health check grace period, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_CreateAutoScalingGroup.html">CreateAutoScalingGroup</a> in the <i>Amazon EC2 Auto Scaling API Reference</i>.<br/>HealthStatus:  The health status of the instance. Set to <code>Healthy</code> to have the instance remain in service. Set to <code>Unhealthy</code> to have the instance be out of service. Amazon EC2 Auto Scaling terminates and replaces the unhealthy instance.<br/>InstanceId:  The ID of the instance.<br/>
        :return:         """
        pass

    def set_instance_protection(self, ProtectedFromScaleIn: ProtectedFromScaleIn, AutoScalingGroupName: str, InstanceIds: List[XmlStringMaxLen19]) -> SetInstanceProtectionAnswer:
        r"""Updates the instance protection settings of the specified instances. This operation cannot be called on instances in a warm pool. For more information about preventing instances that are part of an Auto Scaling group from terminating on scale in, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-termination.html#instance-protection">Instance scale-in protection</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>. If you exceed your maximum limit of instance IDs, which is 50 per Auto Scaling group, the call fails.

        :param self:
        :param ProtectedFromScaleIn:  Indicates whether the instance is protected from termination by Amazon EC2 Auto Scaling when scaling in.<br/>AutoScalingGroupName:  The name of the Auto Scaling group.<br/>InstanceIds:  One or more instance IDs. You can specify up to 50 instances.<br/>
        :return:         """
        pass

    def start_instance_refresh(self, AutoScalingGroupName: str, Strategy: str=None, Preferences: RefreshPreferences=None) -> StartInstanceRefreshAnswer:
        r"""Starts a new instance refresh operation, which triggers a rolling replacement of previously launched instances in the Auto Scaling group with a new group of instances. This operation is part of the <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-instance-refresh.html">instance refresh feature</a> in Amazon EC2 Auto Scaling, which helps you update instances in your Auto Scaling group after you make configuration changes. If the call succeeds, it creates a new instance refresh request with a unique ID that you can use to track its progress. To query its status, call the <a>DescribeInstanceRefreshes</a> API. To describe the instance refreshes that have already run, call the <a>DescribeInstanceRefreshes</a> API. To cancel an instance refresh operation in progress, use the <a>CancelInstanceRefresh</a> API. 

        :param self:
        :param Preferences:  Set of preferences associated with the instance refresh request. If not provided, the default values are used. For <code>MinHealthyPercentage</code>, the default value is <code>90</code>. For <code>InstanceWarmup</code>, the default is to use the value specified for the health check grace period for the Auto Scaling group. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_RefreshPreferences.html">RefreshPreferences</a> in the <i>Amazon EC2 Auto Scaling API Reference</i>.:<br/>Strategy:  The strategy to use for the instance refresh. The only valid value is <code>Rolling</code>. A rolling update is an update that is applied to all instances in an Auto Scaling group until all instances have been updated. A rolling update can fail due to failed health checks or if instances are on standby or are protected from scale in. If the rolling update process fails, any instances that were already replaced are not rolled back to their previous configuration. <br/>AutoScalingGroupName:  The name of the Auto Scaling group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CheckpointDelay</i> The amount of time, in seconds, to wait after a checkpoint before continuing. This property is optional, but if you specify a value for it, you must also specify a value for <code>CheckpointPercentages</code>. If you specify a value for <code>CheckpointPercentages</code> and not for <code>CheckpointDelay</code>, the <code>CheckpointDelay</code> defaults to <code>3600</code> (1 hour). <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CheckpointPercentages</i> Threshold values for each checkpoint in ascending order. Each number must be unique. To replace all instances in the Auto Scaling group, the last number in the array must be <code>100</code>. For usage examples, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-adding-checkpoints-instance-refresh.html">Adding checkpoints to an instance refresh</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceWarmup</i> The number of seconds until a newly launched instance is configured and ready to use. During this time, Amazon EC2 Auto Scaling does not immediately move on to the next replacement. The default is to use the value for the health check grace period defined for the group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MinHealthyPercentage</i> The amount of capacity in the Auto Scaling group that must remain healthy during an instance refresh to allow the operation to continue, as a percentage of the desired capacity of the Auto Scaling group (rounded up to the nearest integer). The default is <code>90</code>. <br/>
        :return: InstanceRefreshId:  A unique ID for tracking the progress of the request.<br/>        """
        pass

    def suspend_processes(self, AutoScalingGroupName: str, ScalingProcesses: List[XmlStringMaxLen255]=None):
        r"""Suspends the specified auto scaling processes, or all processes, for the specified Auto Scaling group. If you suspend either the <code>Launch</code> or <code>Terminate</code> process types, it can prevent other process types from functioning properly. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-suspend-resume-processes.html">Suspending and resuming scaling processes</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>. To resume processes that have been suspended, call the <a>ResumeProcesses</a> API.

        :param self:
        :param ScalingProcesses:  One or more of the following processes: <ul> <li>  <code>Launch</code>  </li> <li>  <code>Terminate</code>  </li> <li>  <code>AddToLoadBalancer</code>  </li> <li>  <code>AlarmNotification</code>  </li> <li>  <code>AZRebalance</code>  </li> <li>  <code>HealthCheck</code>  </li> <li>  <code>InstanceRefresh</code>  </li> <li>  <code>ReplaceUnhealthy</code>  </li> <li>  <code>ScheduledActions</code>  </li> </ul> If you omit this parameter, all processes are specified.<br/>AutoScalingGroupName:  The name of the Auto Scaling group.<br/>
        :return:         """
        pass

    def terminate_instance_in_auto_scaling_group(self, ShouldDecrementDesiredCapacity: ShouldDecrementDesiredCapacity, InstanceId: str) -> ActivityType:
        r"""Terminates the specified instance and optionally adjusts the desired group size. This operation cannot be called on instances in a warm pool. This call simply makes a termination request. The instance is not terminated immediately. When an instance is terminated, the instance status changes to <code>terminated</code>. You can't connect to or start an instance after you've terminated it. If you do not specify the option to decrement the desired capacity, Amazon EC2 Auto Scaling launches instances to replace the ones that are terminated.  By default, Amazon EC2 Auto Scaling balances instances across all Availability Zones. If you decrement the desired capacity, your Auto Scaling group can become unbalanced between Availability Zones. Amazon EC2 Auto Scaling tries to rebalance the group, and rebalancing might terminate instances in other zones. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/auto-scaling-benefits.html#AutoScalingBehavior.InstanceUsage">Rebalancing activities</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.

        :param self:
        :param ShouldDecrementDesiredCapacity:  Indicates whether terminating the instance also decrements the size of the Auto Scaling group.<br/>InstanceId:  The ID of the instance.<br/>
        :return: Activity:  A scaling activity.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoScalingGroupARN</i> The Amazon Resource Name (ARN) of the Auto Scaling group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoScalingGroupState</i> The state of the Auto Scaling group, which is either <code>InService</code> or <code>Deleted</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Details</i> The details about the activity.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Progress</i> A value between 0 and 100 that indicates the progress of the activity.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusMessage</i> A friendly, more verbose description of the activity status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusCode</i> The current status of the activity.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndTime</i> The end time of the activity.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StartTime</i> The start time of the activity.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Cause</i> The reason the activity began.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A friendly, more verbose description of the activity.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoScalingGroupName</i> The name of the Auto Scaling group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityId</i> The ID of the activity.<br/>        """
        pass

    def update_auto_scaling_group(self, AutoScalingGroupName: str, LaunchConfigurationName: str=None, LaunchTemplate: LaunchTemplateSpecification=None, MixedInstancesPolicy: MixedInstancesPolicy=None, MinSize: int=None, MaxSize: int=None, DesiredCapacity: int=None, DefaultCooldown: int=None, AvailabilityZones: List[XmlStringMaxLen255]=None, HealthCheckType: str=None, HealthCheckGracePeriod: int=None, PlacementGroup: str=None, VPCZoneIdentifier: str=None, TerminationPolicies: List[XmlStringMaxLen1600]=None, NewInstancesProtectedFromScaleIn: InstanceProtected=None, ServiceLinkedRoleARN: str=None, MaxInstanceLifetime: int=None, CapacityRebalance: CapacityRebalanceEnabled=None, Context: str=None):
        r""" <b>We strongly recommend that all Auto Scaling groups use launch templates to ensure full functionality for Amazon EC2 Auto Scaling and Amazon EC2.</b>  Updates the configuration for the specified Auto Scaling group. To update an Auto Scaling group, specify the name of the group and the parameter that you want to change. Any parameters that you don't specify are not changed by this update request. The new settings take effect on any scaling activities after this call returns.  If you associate a new launch configuration or template with an Auto Scaling group, all new instances will get the updated configuration. Existing instances continue to run with the configuration that they were originally launched with. When you update a group to specify a mixed instances policy instead of a launch configuration or template, existing instances may be replaced to match the new purchasing options that you specified in the policy. For example, if the group currently has 100% On-Demand capacity and the policy specifies 50% Spot capacity, this means that half of your instances will be gradually terminated and relaunched as Spot Instances. When replacing instances, Amazon EC2 Auto Scaling launches new instances before terminating the old ones, so that updating your group does not compromise the performance or availability of your application. Note the following about changing <code>DesiredCapacity</code>, <code>MaxSize</code>, or <code>MinSize</code>: <ul> <li> If a scale-in activity occurs as a result of a new <code>DesiredCapacity</code> value that is lower than the current size of the group, the Auto Scaling group uses its termination policy to determine which instances to terminate. </li> <li> If you specify a new value for <code>MinSize</code> without specifying a value for <code>DesiredCapacity</code>, and the new <code>MinSize</code> is larger than the current size of the group, this sets the group's <code>DesiredCapacity</code> to the new <code>MinSize</code> value. </li> <li> If you specify a new value for <code>MaxSize</code> without specifying a value for <code>DesiredCapacity</code>, and the new <code>MaxSize</code> is smaller than the current size of the group, this sets the group's <code>DesiredCapacity</code> to the new <code>MaxSize</code> value. </li> </ul> To see which parameters have been set, call the <a>DescribeAutoScalingGroups</a> API. To view the scaling policies for an Auto Scaling group, call the <a>DescribePolicies</a> API. If the group has scaling policies, you can update them by calling the <a>PutScalingPolicy</a> API.

        :param self:
        :param Context:  Reserved.<br/>CapacityRebalance:  Enables or disables Capacity Rebalancing. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/capacity-rebalance.html">Amazon EC2 Auto Scaling Capacity Rebalancing</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.<br/>MaxInstanceLifetime:  The maximum amount of time, in seconds, that an instance can be in service. The default is null. If specified, the value must be either 0 or a number equal to or greater than 86,400 seconds (1 day). To clear a previously set value, specify a new value of 0. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-max-instance-lifetime.html">Replacing Auto Scaling instances based on maximum instance lifetime</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.<br/>ServiceLinkedRoleARN:  The Amazon Resource Name (ARN) of the service-linked role that the Auto Scaling group uses to call other Amazon Web Services on your behalf. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-service-linked-role.html">Service-linked roles</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.<br/>NewInstancesProtectedFromScaleIn:  Indicates whether newly launched instances are protected from termination by Amazon EC2 Auto Scaling when scaling in. For more information about preventing instances from terminating on scale in, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-termination.html#instance-protection">Instance scale-in protection</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.<br/>TerminationPolicies:  A policy or a list of policies that are used to select the instances to terminate. The policies are executed in the order that you list them. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-termination.html">Controlling which Auto Scaling instances terminate during scale in</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.<br/>VPCZoneIdentifier:  A comma-separated list of subnet IDs for a virtual private cloud (VPC). If you specify <code>VPCZoneIdentifier</code> with <code>AvailabilityZones</code>, the subnets that you specify for this parameter must reside in those Availability Zones.<br/>PlacementGroup:  The name of an existing placement group into which to launch your instances, if any. A placement group is a logical grouping of instances within a single Availability Zone. You cannot specify multiple Availability Zones and a placement group. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html">Placement Groups</a> in the <i>Amazon EC2 User Guide for Linux Instances</i>.<br/>HealthCheckGracePeriod:  The amount of time, in seconds, that Amazon EC2 Auto Scaling waits before checking the health status of an EC2 instance that has come into service. The default value is <code>0</code>. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/healthcheck.html#health-check-grace-period">Health check grace period</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>. Conditional: Required if you are adding an <code>ELB</code> health check.<br/>HealthCheckType:  The service to use for the health checks. The valid values are <code>EC2</code> and <code>ELB</code>. If you configure an Auto Scaling group to use <code>ELB</code> health checks, it considers the instance unhealthy if it fails either the EC2 status checks or the load balancer health checks.<br/>AvailabilityZones:  One or more Availability Zones for the group.<br/>DefaultCooldown:  The amount of time, in seconds, after a scaling activity completes before another scaling activity can start. The default value is <code>300</code>. This setting applies when using simple scaling policies, but not when using other scaling policies or scheduled scaling. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/Cooldown.html">Scaling cooldowns for Amazon EC2 Auto Scaling</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.<br/>DesiredCapacity:  The desired capacity is the initial capacity of the Auto Scaling group after this operation completes and the capacity it attempts to maintain. This number must be greater than or equal to the minimum size of the group and less than or equal to the maximum size of the group.<br/>MaxSize:  The maximum size of the Auto Scaling group. <note> With a mixed instances policy that uses instance weighting, Amazon EC2 Auto Scaling may need to go above <code>MaxSize</code> to meet your capacity requirements. In this event, Amazon EC2 Auto Scaling will never go above <code>MaxSize</code> by more than your largest instance weight (weights that define how many units each instance contributes to the desired capacity of the group). </note><br/>MinSize:  The minimum size of the Auto Scaling group.<br/>MixedInstancesPolicy:  An embedded object that specifies a mixed instances policy. When you make changes to an existing policy, all optional properties are left unchanged if not specified. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-purchase-options.html">Auto Scaling groups with multiple instance types and purchase options</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.:<br/>LaunchTemplate:  The launch template and version to use to specify the updates. If you specify <code>LaunchTemplate</code> in your update request, you can't specify <code>LaunchConfigurationName</code> or <code>MixedInstancesPolicy</code>.:<br/>LaunchConfigurationName:  The name of the launch configuration. If you specify <code>LaunchConfigurationName</code> in your update request, you can't specify <code>LaunchTemplate</code> or <code>MixedInstancesPolicy</code>.<br/>AutoScalingGroupName:  The name of the Auto Scaling group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The version number, <code>$Latest</code>, or <code>$Default</code>. To get the version number, use the Amazon EC2 <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeLaunchTemplateVersions.html">DescribeLaunchTemplateVersions</a> API operation. New launch template versions can be created using the Amazon EC2 <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateLaunchTemplateVersion.html">CreateLaunchTemplateVersion</a> API. If the value is <code>$Latest</code>, Amazon EC2 Auto Scaling selects the latest version of the launch template when launching instances. If the value is <code>$Default</code>, Amazon EC2 Auto Scaling selects the default version of the launch template when launching instances. The default value is <code>$Default</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LaunchTemplateName</i> The name of the launch template. To get the template name, use the Amazon EC2 <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeLaunchTemplates.html">DescribeLaunchTemplates</a> API operation. New launch templates can be created using the Amazon EC2 <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateLaunchTemplate.html">CreateLaunchTemplate</a> API.  Conditional: You must specify either a <code>LaunchTemplateId</code> or a <code>LaunchTemplateName</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LaunchTemplateId</i> The ID of the launch template. To get the template ID, use the Amazon EC2 <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeLaunchTemplates.html">DescribeLaunchTemplates</a> API operation. New launch templates can be created using the Amazon EC2 <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateLaunchTemplate.html">CreateLaunchTemplate</a> API.  Conditional: You must specify either a <code>LaunchTemplateId</code> or a <code>LaunchTemplateName</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstancesDistribution</i> Specifies the instances distribution. If not provided, the value for each property in <code>InstancesDistribution</code> uses a default value.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>InstancesDistribution</b>: Specifies the instances distribution. If not provided, the value for each property in <code>InstancesDistribution</code> uses a default value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LaunchTemplate</i> Specifies the launch template to use and optionally the instance types (overrides) that are used to provision EC2 instances to fulfill On-Demand and Spot capacities. Required when creating a mixed instances policy.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>LaunchTemplate</b>: Specifies the launch template to use and optionally the instance types (overrides) that are used to provision EC2 instances to fulfill On-Demand and Spot capacities. Required when creating a mixed instances policy.<br/>The launch template to use.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>LaunchTemplateSpecification</b>: The launch template to use.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SpotMaxPrice</i> The maximum price per unit hour that you are willing to pay for a Spot Instance. If you leave the value at its default (empty), Amazon EC2 Auto Scaling uses the On-Demand price as the maximum Spot price. To remove a value that you previously set, include the property but specify an empty string ("") for the value.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SpotInstancePools</i> The number of Spot Instance pools across which to allocate your Spot Instances. The Spot pools are determined from the different instance types in the overrides. Valid only when the Spot allocation strategy is <code>lowest-price</code>. Value must be in the range of 1 to 20. Defaults to 2 if not specified.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SpotAllocationStrategy</i> Indicates how to allocate instances across Spot Instance pools.  If the allocation strategy is <code>lowest-price</code>, the Auto Scaling group launches instances using the Spot pools with the lowest price, and evenly allocates your instances across the number of Spot pools that you specify. Defaults to <code>lowest-price</code> if not specified. If the allocation strategy is <code>capacity-optimized</code> (recommended), the Auto Scaling group launches instances using Spot pools that are optimally chosen based on the available Spot capacity. Alternatively, you can use <code>capacity-optimized-prioritized</code> and set the order of instance types in the list of launch template overrides from highest to lowest priority (from first to last in the list). Amazon EC2 Auto Scaling honors the instance type priorities on a best-effort basis but optimizes for capacity first. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OnDemandPercentageAboveBaseCapacity</i> Controls the percentages of On-Demand Instances and Spot Instances for your additional capacity beyond <code>OnDemandBaseCapacity</code>. Expressed as a number (for example, 20 specifies 20% On-Demand Instances, 80% Spot Instances). Defaults to 100 if not specified. If set to 100, only On-Demand Instances are provisioned.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OnDemandBaseCapacity</i> The minimum amount of the Auto Scaling group's capacity that must be fulfilled by On-Demand Instances. This base portion is provisioned first as your group scales. Defaults to 0 if not specified. If you specify weights for the instance types in the overrides, set the value of <code>OnDemandBaseCapacity</code> in terms of the number of capacity units, and not the number of instances.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OnDemandAllocationStrategy</i> Indicates how to allocate instance types to fulfill On-Demand capacity. The only valid value is <code>prioritized</code>, which is also the default value. This strategy uses the order of instance types in the <code>LaunchTemplateOverrides</code> to define the launch priority of each instance type. The first instance type in the array is prioritized higher than the last. If all your On-Demand capacity cannot be fulfilled using your highest priority instance, then the Auto Scaling groups launches the remaining capacity using the second priority instance type, and so on.<br/>
        :return:         """
        pass





class AutoScalingPlans(BaseClient):
    r"""<fullname>AWS Auto Scaling</fullname> Use AWS Auto Scaling to create scaling plans for your applications to automatically scale your scalable AWS resources.   <b>API Summary</b>  You can use the AWS Auto Scaling service API to accomplish the following tasks: <ul> <li> Create and manage scaling plans </li> <li> Define target tracking scaling policies to dynamically scale your resources based on utilization </li> <li> Scale Amazon EC2 Auto Scaling groups using predictive scaling and dynamic scaling to scale your Amazon EC2 capacity faster </li> <li> Set minimum and maximum capacity limits </li> <li> Retrieve information on existing scaling plans </li> <li> Access current forecast data and historical forecast data for up to 56 days previous </li> </ul> To learn more about AWS Auto Scaling, including information about granting IAM users required permissions for AWS Auto Scaling actions, see the <a href="https://docs.aws.amazon.com/autoscaling/plans/userguide/what-is-aws-auto-scaling.html">AWS Auto Scaling User Guide</a>. """


    class DescribeScalingPlanResourcesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_scaling_plan_resources` for valid parameters"""
            pass
    class DescribeScalingPlansPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_scaling_plans` for valid parameters"""
            pass


    class CreateScalingPlanRequest(Mapping):
        pass
    
    class CreateScalingPlanResponse(Mapping):
        pass
    
    class ApplicationSource(Mapping):
        pass
    
    class ScalingInstruction(Mapping):
        pass
    
    class DeleteScalingPlanRequest(Mapping):
        pass
    
    class DeleteScalingPlanResponse(Mapping):
        pass
    
    class ScalingPlanVersion(object):
        pass
    
    class DescribeScalingPlanResourcesRequest(Mapping):
        pass
    
    class DescribeScalingPlanResourcesResponse(Mapping):
        pass
    
    class DescribeScalingPlansRequest(Mapping):
        pass
    
    class DescribeScalingPlansResponse(Mapping):
        pass
    
    class ScalingPlanName(object):
        pass
    
    class GetScalingPlanResourceForecastDataRequest(Mapping):
        pass
    
    class GetScalingPlanResourceForecastDataResponse(Mapping):
        pass
    
    class TimestampType(object):
        pass
    
    class UpdateScalingPlanRequest(Mapping):
        pass
    
    class UpdateScalingPlanResponse(Mapping):
        pass
    
    def create_scaling_plan(self, ScalingInstructions: List[ScalingInstruction], ApplicationSource: ApplicationSource, ScalingPlanName: str) -> CreateScalingPlanResponse:
        r"""Creates a scaling plan. 

        :param self:
        :param ScalingInstructions:  The scaling instructions. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/plans/APIReference/API_ScalingInstruction.html">ScalingInstruction</a> in the <i>AWS Auto Scaling API Reference</i>.<br/>ApplicationSource:  A CloudFormation stack or set of tags. You can create one scaling plan per application source. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/plans/APIReference/API_ApplicationSource.html">ApplicationSource</a> in the <i>AWS Auto Scaling API Reference</i>.:<br/>ScalingPlanName:  The name of the scaling plan. Names cannot contain vertical bars, colons, or forward slashes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TagFilters</i> A set of tags (up to 50).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudFormationStackARN</i> The Amazon Resource Name (ARN) of a AWS CloudFormation stack.<br/>
        :return: ScalingPlanVersion:  The version number of the scaling plan. This value is always <code>1</code>. Currently, you cannot have multiple scaling plan versions.<br/>        """
        pass

    def delete_scaling_plan(self, ScalingPlanVersion: ScalingPlanVersion, ScalingPlanName: str) -> DeleteScalingPlanResponse:
        r"""Deletes the specified scaling plan. Deleting a scaling plan deletes the underlying <a>ScalingInstruction</a> for all of the scalable resources that are covered by the plan. If the plan has launched resources or has scaling activities in progress, you must delete those resources separately.

        :param self:
        :param ScalingPlanVersion:  The version number of the scaling plan. Currently, the only valid value is <code>1</code>.<br/>ScalingPlanName:  The name of the scaling plan.<br/>
        :return:         """
        pass

    def describe_scaling_plan_resources(self, ScalingPlanVersion: ScalingPlanVersion, ScalingPlanName: str, MaxResults: int=None, NextToken: str=None) -> DescribeScalingPlanResourcesResponse:
        r"""Describes the scalable resources in the specified scaling plan.

        :param self:
        :param NextToken:  The token for the next set of results.<br/>MaxResults:  The maximum number of scalable resources to return. The value must be between 1 and 50. The default value is 50.<br/>ScalingPlanVersion:  The version number of the scaling plan. Currently, the only valid value is <code>1</code>.<br/>ScalingPlanName:  The name of the scaling plan.<br/>
        :return: NextToken:  The token required to get the next set of results. This value is <code>null</code> if there are no more results to return.<br/>ScalingPlanResources:  Information about the scalable resources.<br/>        """
        pass

    def describe_scaling_plans(self, ScalingPlanNames: List[ScalingPlanName]=None, ScalingPlanVersion: ScalingPlanVersion=None, ApplicationSources: List[ApplicationSource]=None, MaxResults: int=None, NextToken: str=None) -> DescribeScalingPlansResponse:
        r"""Describes one or more of your scaling plans.

        :param self:
        :param NextToken:  The token for the next set of results.<br/>MaxResults:  The maximum number of scalable resources to return. This value can be between 1 and 50. The default value is 50.<br/>ApplicationSources:  The sources for the applications (up to 10). If you specify scaling plan names, you cannot specify application sources.<br/>ScalingPlanVersion:  The version number of the scaling plan. Currently, the only valid value is <code>1</code>. <note> If you specify a scaling plan version, you must also specify a scaling plan name. </note><br/>ScalingPlanNames:  The names of the scaling plans (up to 10). If you specify application sources, you cannot specify scaling plan names.<br/>
        :return: NextToken:  The token required to get the next set of results. This value is <code>null</code> if there are no more results to return.<br/>ScalingPlans:  Information about the scaling plans.<br/>        """
        pass

    def get_scaling_plan_resource_forecast_data(self, EndTime: TimestampType, StartTime: TimestampType, ForecastDataType: str, ScalableDimension: str, ResourceId: str, ServiceNamespace: str, ScalingPlanVersion: ScalingPlanVersion, ScalingPlanName: str) -> GetScalingPlanResourceForecastDataResponse:
        r"""Retrieves the forecast data for a scalable resource. Capacity forecasts are represented as predicted values, or data points, that are calculated using historical data points from a specified CloudWatch load metric. Data points are available for up to 56 days. 

        :param self:
        :param EndTime:  The exclusive end time of the time range for the forecast data to get. The maximum time duration between the start and end time is seven days.  Although this parameter can accept a date and time that is more than two days in the future, the availability of forecast data has limits. AWS Auto Scaling only issues forecasts for periods of two days in advance.<br/>StartTime:  The inclusive start time of the time range for the forecast data to get. The date and time can be at most 56 days before the current date and time. <br/>ForecastDataType:  The type of forecast data to get. <ul> <li>  <code>LoadForecast</code>: The load metric forecast.  </li> <li>  <code>CapacityForecast</code>: The capacity forecast.  </li> <li>  <code>ScheduledActionMinCapacity</code>: The minimum capacity for each scheduled scaling action. This data is calculated as the larger of two values: the capacity forecast or the minimum capacity in the scaling instruction. </li> <li>  <code>ScheduledActionMaxCapacity</code>: The maximum capacity for each scheduled scaling action. The calculation used is determined by the predictive scaling maximum capacity behavior setting in the scaling instruction. </li> </ul><br/>ScalableDimension:  The scalable dimension for the resource. The only valid value is <code>autoscaling:autoScalingGroup:DesiredCapacity</code>. <br/>ResourceId:  The ID of the resource. This string consists of a prefix (<code>autoScalingGroup</code>) followed by the name of a specified Auto Scaling group (<code>my-asg</code>). Example: <code>autoScalingGroup/my-asg</code>. <br/>ServiceNamespace:  The namespace of the AWS service. The only valid value is <code>autoscaling</code>. <br/>ScalingPlanVersion:  The version number of the scaling plan. Currently, the only valid value is <code>1</code>.<br/>ScalingPlanName:  The name of the scaling plan.<br/>
        :return: Datapoints:  The data points to return.<br/>        """
        pass

    def update_scaling_plan(self, ScalingPlanVersion: ScalingPlanVersion, ScalingPlanName: str, ApplicationSource: ApplicationSource=None, ScalingInstructions: List[ScalingInstruction]=None) -> UpdateScalingPlanResponse:
        r"""Updates the specified scaling plan. You cannot update a scaling plan if it is in the process of being created, updated, or deleted.

        :param self:
        :param ScalingInstructions:  The scaling instructions. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/plans/APIReference/API_ScalingInstruction.html">ScalingInstruction</a> in the <i>AWS Auto Scaling API Reference</i>.<br/>ApplicationSource:  A CloudFormation stack or set of tags. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/plans/APIReference/API_ApplicationSource.html">ApplicationSource</a> in the <i>AWS Auto Scaling API Reference</i>.:<br/>ScalingPlanVersion:  The version number of the scaling plan. The only valid value is <code>1</code>. Currently, you cannot have multiple scaling plan versions.<br/>ScalingPlanName:  The name of the scaling plan.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TagFilters</i> A set of tags (up to 50).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudFormationStackARN</i> The Amazon Resource Name (ARN) of a AWS CloudFormation stack.<br/>
        :return:         """
        pass





class Backup(BaseClient):
    r"""<fullname>AWS Backup</fullname> AWS Backup is a unified backup service designed to protect AWS services and their associated data. AWS Backup simplifies the creation, migration, restoration, and deletion of backups, while also providing reporting and auditing."""




    class CreateBackupPlanInput(Mapping):
        pass
    
    class CreateBackupPlanOutput(Mapping):
        pass
    
    class BackupPlanInput(Mapping):
        pass
    
    class Tags(object):
        pass
    
    class CreateBackupSelectionInput(Mapping):
        pass
    
    class CreateBackupSelectionOutput(Mapping):
        pass
    
    class BackupSelection(Mapping):
        pass
    
    class CreateBackupVaultInput(Mapping):
        pass
    
    class CreateBackupVaultOutput(Mapping):
        pass
    
    class DeleteBackupPlanInput(Mapping):
        pass
    
    class DeleteBackupPlanOutput(Mapping):
        pass
    
    class DeleteBackupSelectionInput(Mapping):
        pass
    
    class DeleteBackupVaultInput(Mapping):
        pass
    
    class DeleteBackupVaultAccessPolicyInput(Mapping):
        pass
    
    class DeleteBackupVaultNotificationsInput(Mapping):
        pass
    
    class DeleteRecoveryPointInput(Mapping):
        pass
    
    class DescribeBackupJobInput(Mapping):
        pass
    
    class DescribeBackupJobOutput(Mapping):
        pass
    
    class DescribeBackupVaultInput(Mapping):
        pass
    
    class DescribeBackupVaultOutput(Mapping):
        pass
    
    class DescribeCopyJobInput(Mapping):
        pass
    
    class DescribeCopyJobOutput(Mapping):
        pass
    
    class DescribeGlobalSettingsInput(Mapping):
        pass
    
    class DescribeGlobalSettingsOutput(Mapping):
        pass
    
    class DescribeProtectedResourceInput(Mapping):
        pass
    
    class DescribeProtectedResourceOutput(Mapping):
        pass
    
    class DescribeRecoveryPointInput(Mapping):
        pass
    
    class DescribeRecoveryPointOutput(Mapping):
        pass
    
    class DescribeRegionSettingsInput(Mapping):
        pass
    
    class DescribeRegionSettingsOutput(Mapping):
        pass
    
    class DescribeRestoreJobInput(Mapping):
        pass
    
    class DescribeRestoreJobOutput(Mapping):
        pass
    
    class DisassociateRecoveryPointInput(Mapping):
        pass
    
    class ExportBackupPlanTemplateInput(Mapping):
        pass
    
    class ExportBackupPlanTemplateOutput(Mapping):
        pass
    
    class GetBackupPlanInput(Mapping):
        pass
    
    class GetBackupPlanOutput(Mapping):
        pass
    
    class GetBackupPlanFromJSONInput(Mapping):
        pass
    
    class GetBackupPlanFromJSONOutput(Mapping):
        pass
    
    class GetBackupPlanFromTemplateInput(Mapping):
        pass
    
    class GetBackupPlanFromTemplateOutput(Mapping):
        pass
    
    class GetBackupSelectionInput(Mapping):
        pass
    
    class GetBackupSelectionOutput(Mapping):
        pass
    
    class GetBackupVaultAccessPolicyInput(Mapping):
        pass
    
    class GetBackupVaultAccessPolicyOutput(Mapping):
        pass
    
    class GetBackupVaultNotificationsInput(Mapping):
        pass
    
    class GetBackupVaultNotificationsOutput(Mapping):
        pass
    
    class GetRecoveryPointRestoreMetadataInput(Mapping):
        pass
    
    class GetRecoveryPointRestoreMetadataOutput(Mapping):
        pass
    
    class GetSupportedResourceTypesOutput(Mapping):
        pass
    
    class ListBackupJobsInput(Mapping):
        pass
    
    class ListBackupJobsOutput(Mapping):
        pass
    
    class timestamp(object):
        pass
    
    class ListBackupPlanTemplatesInput(Mapping):
        pass
    
    class ListBackupPlanTemplatesOutput(Mapping):
        pass
    
    class ListBackupPlanVersionsInput(Mapping):
        pass
    
    class ListBackupPlanVersionsOutput(Mapping):
        pass
    
    class ListBackupPlansInput(Mapping):
        pass
    
    class ListBackupPlansOutput(Mapping):
        pass
    
    class Boolean(object):
        pass
    
    class ListBackupSelectionsInput(Mapping):
        pass
    
    class ListBackupSelectionsOutput(Mapping):
        pass
    
    class ListBackupVaultsInput(Mapping):
        pass
    
    class ListBackupVaultsOutput(Mapping):
        pass
    
    class ListCopyJobsInput(Mapping):
        pass
    
    class ListCopyJobsOutput(Mapping):
        pass
    
    class ListProtectedResourcesInput(Mapping):
        pass
    
    class ListProtectedResourcesOutput(Mapping):
        pass
    
    class ListRecoveryPointsByBackupVaultInput(Mapping):
        pass
    
    class ListRecoveryPointsByBackupVaultOutput(Mapping):
        pass
    
    class ListRecoveryPointsByResourceInput(Mapping):
        pass
    
    class ListRecoveryPointsByResourceOutput(Mapping):
        pass
    
    class ListRestoreJobsInput(Mapping):
        pass
    
    class ListRestoreJobsOutput(Mapping):
        pass
    
    class ListTagsInput(Mapping):
        pass
    
    class ListTagsOutput(Mapping):
        pass
    
    class PutBackupVaultAccessPolicyInput(Mapping):
        pass
    
    class PutBackupVaultNotificationsInput(Mapping):
        pass
    
    class BackupVaultEvent(object):
        pass
    
    class StartBackupJobInput(Mapping):
        pass
    
    class StartBackupJobOutput(Mapping):
        pass
    
    class WindowMinutes(object):
        pass
    
    class Lifecycle(Mapping):
        pass
    
    class BackupOptions(object):
        pass
    
    class StartCopyJobInput(Mapping):
        pass
    
    class StartCopyJobOutput(Mapping):
        pass
    
    class StartRestoreJobInput(Mapping):
        pass
    
    class StartRestoreJobOutput(Mapping):
        pass
    
    class Metadata(object):
        pass
    
    class StopBackupJobInput(Mapping):
        pass
    
    class TagResourceInput(Mapping):
        pass
    
    class UntagResourceInput(Mapping):
        pass
    
    class string(object):
        pass
    
    class UpdateBackupPlanInput(Mapping):
        pass
    
    class UpdateBackupPlanOutput(Mapping):
        pass
    
    class UpdateGlobalSettingsInput(Mapping):
        pass
    
    class GlobalSettings(object):
        pass
    
    class UpdateRecoveryPointLifecycleInput(Mapping):
        pass
    
    class UpdateRecoveryPointLifecycleOutput(Mapping):
        pass
    
    class UpdateRegionSettingsInput(Mapping):
        pass
    
    class ResourceTypeOptInPreference(object):
        pass
    
    def create_backup_plan(self, BackupPlan: BackupPlanInput, BackupPlanTags: Tags=None, CreatorRequestId: str=None) -> CreateBackupPlanOutput:
        r"""Creates a backup plan using a backup plan name and backup rules. A backup plan is a document that contains information that AWS Backup uses to schedule tasks that create recovery points for resources. If you call <code>CreateBackupPlan</code> with a plan that already exists, an <code>AlreadyExistsException</code> is returned.

        :param self:
        :param CreatorRequestId:  Identifies the request and allows failed requests to be retried without the risk of running the operation twice. If the request includes a <code>CreatorRequestId</code> that matches an existing backup plan, that plan is returned. This parameter is optional.<br/>BackupPlanTags:  To help organize your resources, you can assign your own metadata to the resources that you create. Each tag is a key-value pair. The specified tags are assigned to all backups created with this plan.<br/>BackupPlan:  Specifies the body of a backup plan. Includes a <code>BackupPlanName</code> and one or more sets of <code>Rules</code>.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdvancedBackupSettings</i> Specifies a list of <code>BackupOptions</code> for each resource type. These settings are only available for Windows VSS backup jobs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Rules</i> An array of <code>BackupRule</code> objects, each of which specifies a scheduled task that is used to back up a selection of resources.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupPlanName</i> The optional display name of a backup plan.<br/>
        :return: AdvancedBackupSettings:  A list of <code>BackupOptions</code> settings for a resource type. This option is only available for Windows VSS backup jobs.<br/>VersionId:  Unique, randomly generated, Unicode, UTF-8 encoded strings that are at most 1,024 bytes long. They cannot be edited.<br/>CreationDate:  The date and time that a backup plan is created, in Unix format and Coordinated Universal Time (UTC). The value of <code>CreationDate</code> is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM.<br/>BackupPlanArn:  An Amazon Resource Name (ARN) that uniquely identifies a backup plan; for example, <code>arn:aws:backup:us-east-1:123456789012:plan:8F81F553-3A74-4A3F-B93D-B3360DC80C50</code>.<br/>BackupPlanId:  Uniquely identifies a backup plan.<br/>        """
        pass

    def create_backup_selection(self, BackupSelection: BackupSelection, BackupPlanId: str, CreatorRequestId: str=None) -> CreateBackupSelectionOutput:
        r"""Creates a JSON document that specifies a set of resources to assign to a backup plan. Resources can be included by specifying patterns for a <code>ListOfTags</code> and selected <code>Resources</code>.  For example, consider the following patterns: <ul> <li>  <code>Resources: "arn:aws:ec2:region:account-id:volume/volume-id"</code>  </li> <li>  <code>ConditionKey:"department"</code>   <code>ConditionValue:"finance"</code>   <code>ConditionType:"StringEquals"</code>  </li> <li>  <code>ConditionKey:"importance"</code>   <code>ConditionValue:"critical"</code>   <code>ConditionType:"StringEquals"</code>  </li> </ul> Using these patterns would back up all Amazon Elastic Block Store (Amazon EBS) volumes that are tagged as <code>"department=finance"</code>, <code>"importance=critical"</code>, in addition to an EBS volume with the specified volume ID. Resources and conditions are additive in that all resources that match the pattern are selected. This shouldn't be confused with a logical AND, where all conditions must match. The matching patterns are logically put together using the OR operator. In other words, all patterns that match are selected for backup.

        :param self:
        :param CreatorRequestId:  A unique string that identifies the request and allows failed requests to be retried without the risk of running the operation twice.<br/>BackupSelection:  Specifies the body of a request to assign a set of resources to a backup plan.:<br/>BackupPlanId:  Uniquely identifies the backup plan to be associated with the selection of resources.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ListOfTags</i> An array of conditions used to specify a set of resources to assign to a backup plan; for example, <code>"StringEquals": {"ec2:ResourceTag/Department": "accounting"</code>. Assigns the backup plan to every resource with at least one matching tag.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Resources</i> An array of strings that contain Amazon Resource Names (ARNs) of resources to assign to a backup plan.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IamRoleArn</i> The ARN of the IAM role that AWS Backup uses to authenticate when backing up the target resource; for example, <code>arn:aws:iam::123456789012:role/S3Access</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SelectionName</i> The display name of a resource selection document.<br/>
        :return: CreationDate:  The date and time a backup selection is created, in Unix format and Coordinated Universal Time (UTC). The value of <code>CreationDate</code> is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM.<br/>BackupPlanId:  Uniquely identifies a backup plan.<br/>SelectionId:  Uniquely identifies the body of a request to assign a set of resources to a backup plan.<br/>        """
        pass

    def create_backup_vault(self, BackupVaultName: str, BackupVaultTags: Tags=None, EncryptionKeyArn: str=None, CreatorRequestId: str=None) -> CreateBackupVaultOutput:
        r"""Creates a logical container where backups are stored. A <code>CreateBackupVault</code> request includes a name, optionally one or more resource tags, an encryption key, and a request ID. <note> Sensitive data, such as passport numbers, should not be included the name of a backup vault. </note>

        :param self:
        :param CreatorRequestId:  A unique string that identifies the request and allows failed requests to be retried without the risk of running the operation twice.<br/>EncryptionKeyArn:  The server-side encryption key that is used to protect your backups; for example, <code>arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab</code>.<br/>BackupVaultTags:  Metadata that you can assign to help organize the resources that you create. Each tag is a key-value pair.<br/>BackupVaultName:  The name of a logical container where backups are stored. Backup vaults are identified by names that are unique to the account used to create them and the AWS Region where they are created. They consist of letters, numbers, and hyphens.<br/>
        :return: CreationDate:  The date and time a backup vault is created, in Unix format and Coordinated Universal Time (UTC). The value of <code>CreationDate</code> is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM.<br/>BackupVaultArn:  An Amazon Resource Name (ARN) that uniquely identifies a backup vault; for example, <code>arn:aws:backup:us-east-1:123456789012:vault:aBackupVault</code>.<br/>BackupVaultName:  The name of a logical container where backups are stored. Backup vaults are identified by names that are unique to the account used to create them and the Region where they are created. They consist of lowercase letters, numbers, and hyphens.<br/>        """
        pass

    def delete_backup_plan(self, BackupPlanId: str) -> DeleteBackupPlanOutput:
        r"""Deletes a backup plan. A backup plan can only be deleted after all associated selections of resources have been deleted. Deleting a backup plan deletes the current version of a backup plan. Previous versions, if any, will still exist.

        :param self:
        :param BackupPlanId:  Uniquely identifies a backup plan.<br/>
        :return: VersionId:  Unique, randomly generated, Unicode, UTF-8 encoded strings that are at most 1,024 bytes long. Version IDs cannot be edited.<br/>DeletionDate:  The date and time a backup plan is deleted, in Unix format and Coordinated Universal Time (UTC). The value of <code>DeletionDate</code> is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM.<br/>BackupPlanArn:  An Amazon Resource Name (ARN) that uniquely identifies a backup plan; for example, <code>arn:aws:backup:us-east-1:123456789012:plan:8F81F553-3A74-4A3F-B93D-B3360DC80C50</code>.<br/>BackupPlanId:  Uniquely identifies a backup plan.<br/>        """
        pass

    def delete_backup_selection(self, SelectionId: str, BackupPlanId: str):
        r"""Deletes the resource selection associated with a backup plan that is specified by the <code>SelectionId</code>.

        :param self:
        :param SelectionId:  Uniquely identifies the body of a request to assign a set of resources to a backup plan.<br/>BackupPlanId:  Uniquely identifies a backup plan.<br/>
        :return:         """
        pass

    def delete_backup_vault(self, BackupVaultName: str):
        r"""Deletes the backup vault identified by its name. A vault can be deleted only if it is empty.

        :param self:
        :param BackupVaultName:  The name of a logical container where backups are stored. Backup vaults are identified by names that are unique to the account used to create them and the AWS Region where they are created. They consist of lowercase letters, numbers, and hyphens.<br/>
        :return:         """
        pass

    def delete_backup_vault_access_policy(self, BackupVaultName: str):
        r"""Deletes the policy document that manages permissions on a backup vault.

        :param self:
        :param BackupVaultName:  The name of a logical container where backups are stored. Backup vaults are identified by names that are unique to the account used to create them and the AWS Region where they are created. They consist of lowercase letters, numbers, and hyphens.<br/>
        :return:         """
        pass

    def delete_backup_vault_notifications(self, BackupVaultName: str):
        r"""Deletes event notifications for the specified backup vault.

        :param self:
        :param BackupVaultName:  The name of a logical container where backups are stored. Backup vaults are identified by names that are unique to the account used to create them and the Region where they are created. They consist of lowercase letters, numbers, and hyphens.<br/>
        :return:         """
        pass

    def delete_recovery_point(self, RecoveryPointArn: str, BackupVaultName: str):
        r"""Deletes the recovery point specified by a recovery point ID. If the recovery point ID belongs to a continuous backup, calling this endpoint deletes the existing continuous backup and stops future continuous backup.

        :param self:
        :param RecoveryPointArn:  An Amazon Resource Name (ARN) that uniquely identifies a recovery point; for example, <code>arn:aws:backup:us-east-1:123456789012:recovery-point:1EB3B5E7-9EB0-435A-A80B-108B488B0D45</code>.<br/>BackupVaultName:  The name of a logical container where backups are stored. Backup vaults are identified by names that are unique to the account used to create them and the AWS Region where they are created. They consist of lowercase letters, numbers, and hyphens.<br/>
        :return:         """
        pass

    def describe_backup_job(self, BackupJobId: str) -> DescribeBackupJobOutput:
        r"""Returns backup job details for the specified <code>BackupJobId</code>.

        :param self:
        :param BackupJobId:  Uniquely identifies a request to AWS Backup to back up a resource.<br/>
        :return: BackupType:  Represents the actual backup type selected for a backup job. For example, if a successful WindowsVSS backup was taken, <code>BackupType</code> returns "WindowsVSS". If <code>BackupType</code> is empty, then the backup type that was is a regular backup.<br/>BackupOptions:  Represents the options specified as part of backup plan or on-demand backup job.<br/>StartBy:  Specifies the time in Unix format and Coordinated Universal Time (UTC) when a backup job must be started before it is canceled. The value is calculated by adding the start window to the scheduled time. So if the scheduled time were 6:00 PM and the start window is 2 hours, the <code>StartBy</code> time would be 8:00 PM on the date specified. The value of <code>StartBy</code> is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM.<br/>ExpectedCompletionDate:  The date and time that a job to back up resources is expected to be completed, in Unix format and Coordinated Universal Time (UTC). The value of <code>ExpectedCompletionDate</code> is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM.<br/>BytesTransferred:  The size in bytes transferred to a backup vault at the time that the job status was queried.<br/>ResourceType:  The type of AWS resource to be backed up; for example, an Amazon Elastic Block Store (Amazon EBS) volume or an Amazon Relational Database Service (Amazon RDS) database.<br/>CreatedBy:  Contains identifying information about the creation of a backup job, including the <code>BackupPlanArn</code>, <code>BackupPlanId</code>, <code>BackupPlanVersion</code>, and <code>BackupRuleId</code> of the backup plan that is used to create it.:<br/>IamRoleArn:  Specifies the IAM role ARN used to create the target recovery point; for example, <code>arn:aws:iam::123456789012:role/S3Access</code>.<br/>BackupSizeInBytes:  The size, in bytes, of a backup.<br/>PercentDone:  Contains an estimated percentage that is complete of a job at the time the job status was queried.<br/>StatusMessage:  A detailed message explaining the status of the job to back up a resource.<br/>State:  The current state of a resource recovery point.<br/>CompletionDate:  The date and time that a job to create a backup job is completed, in Unix format and Coordinated Universal Time (UTC). The value of <code>CompletionDate</code> is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM.<br/>CreationDate:  The date and time that a backup job is created, in Unix format and Coordinated Universal Time (UTC). The value of <code>CreationDate</code> is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM.<br/>ResourceArn:  An ARN that uniquely identifies a saved resource. The format of the ARN depends on the resource type.<br/>RecoveryPointArn:  An ARN that uniquely identifies a recovery point; for example, <code>arn:aws:backup:us-east-1:123456789012:recovery-point:1EB3B5E7-9EB0-435A-A80B-108B488B0D45</code>.<br/>BackupVaultArn:  An Amazon Resource Name (ARN) that uniquely identifies a backup vault; for example, <code>arn:aws:backup:us-east-1:123456789012:vault:aBackupVault</code>.<br/>BackupVaultName:  The name of a logical container where backups are stored. Backup vaults are identified by names that are unique to the account used to create them and the AWS Region where they are created. They consist of lowercase letters, numbers, and hyphens.<br/>BackupJobId:  Uniquely identifies a request to AWS Backup to back up a resource.<br/>AccountId:  Returns the account ID that owns the backup job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupRuleId</i> Uniquely identifies a rule used to schedule the backup of a selection of resources.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupPlanVersion</i> Version IDs are unique, randomly generated, Unicode, UTF-8 encoded strings that are at most 1,024 bytes long. They cannot be edited.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupPlanArn</i> An Amazon Resource Name (ARN) that uniquely identifies a backup plan; for example, <code>arn:aws:backup:us-east-1:123456789012:plan:8F81F553-3A74-4A3F-B93D-B3360DC80C50</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupPlanId</i> Uniquely identifies a backup plan.<br/>        """
        pass

    def describe_backup_vault(self, BackupVaultName: str) -> DescribeBackupVaultOutput:
        r"""Returns metadata about a backup vault specified by its name.

        :param self:
        :param BackupVaultName:  The name of a logical container where backups are stored. Backup vaults are identified by names that are unique to the account used to create them and the AWS Region where they are created. They consist of lowercase letters, numbers, and hyphens.<br/>
        :return: NumberOfRecoveryPoints:  The number of recovery points that are stored in a backup vault.<br/>CreatorRequestId:  A unique string that identifies the request and allows failed requests to be retried without the risk of running the operation twice.<br/>CreationDate:  The date and time that a backup vault is created, in Unix format and Coordinated Universal Time (UTC). The value of <code>CreationDate</code> is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM.<br/>EncryptionKeyArn:  The server-side encryption key that is used to protect your backups; for example, <code>arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab</code>.<br/>BackupVaultArn:  An Amazon Resource Name (ARN) that uniquely identifies a backup vault; for example, <code>arn:aws:backup:us-east-1:123456789012:vault:aBackupVault</code>.<br/>BackupVaultName:  The name of a logical container where backups are stored. Backup vaults are identified by names that are unique to the account used to create them and the Region where they are created. They consist of lowercase letters, numbers, and hyphens.<br/>        """
        pass

    def describe_copy_job(self, CopyJobId: str) -> DescribeCopyJobOutput:
        r"""Returns metadata associated with creating a copy of a resource.

        :param self:
        :param CopyJobId:  Uniquely identifies a copy job.<br/>
        :return: CopyJob:  Contains detailed information about a copy job.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceType</i> The type of AWS resource to be copied; for example, an Amazon Elastic Block Store (Amazon EBS) volume or an Amazon Relational Database Service (Amazon RDS) database.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedBy</i> Contains information about the backup plan and rule that AWS Backup used to initiate the recovery point backup.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CreatedBy</b>: Contains information about the backup plan and rule that AWS Backup used to initiate the recovery point backup.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IamRoleArn</i> Specifies the IAM role ARN used to copy the target recovery point; for example, <code>arn:aws:iam::123456789012:role/S3Access</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupSizeInBytes</i> The size, in bytes, of a copy job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusMessage</i> A detailed message explaining the status of the job to copy a resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The current state of a copy job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CompletionDate</i> The date and time a copy job is completed, in Unix format and Coordinated Universal Time (UTC). The value of <code>CompletionDate</code> is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date and time a copy job is created, in Unix format and Coordinated Universal Time (UTC). The value of <code>CreationDate</code> is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceArn</i> The AWS resource to be copied; for example, an Amazon Elastic Block Store (Amazon EBS) volume or an Amazon Relational Database Service (Amazon RDS) database.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DestinationRecoveryPointArn</i> An ARN that uniquely identifies a destination recovery point; for example, <code>arn:aws:backup:us-east-1:123456789012:recovery-point:1EB3B5E7-9EB0-435A-A80B-108B488B0D45</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DestinationBackupVaultArn</i> An Amazon Resource Name (ARN) that uniquely identifies a destination copy vault; for example, <code>arn:aws:backup:us-east-1:123456789012:vault:aBackupVault</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceRecoveryPointArn</i> An ARN that uniquely identifies a source recovery point; for example, <code>arn:aws:backup:us-east-1:123456789012:recovery-point:1EB3B5E7-9EB0-435A-A80B-108B488B0D45</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceBackupVaultArn</i> An Amazon Resource Name (ARN) that uniquely identifies a source copy vault; for example, <code>arn:aws:backup:us-east-1:123456789012:vault:aBackupVault</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CopyJobId</i> Uniquely identifies a copy job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccountId</i> The account ID that owns the copy job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupRuleId</i> Uniquely identifies a rule used to schedule the backup of a selection of resources.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupPlanVersion</i> Version IDs are unique, randomly generated, Unicode, UTF-8 encoded strings that are at most 1,024 bytes long. They cannot be edited.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupPlanArn</i> An Amazon Resource Name (ARN) that uniquely identifies a backup plan; for example, <code>arn:aws:backup:us-east-1:123456789012:plan:8F81F553-3A74-4A3F-B93D-B3360DC80C50</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupPlanId</i> Uniquely identifies a backup plan.<br/>        """
        pass

    def describe_global_settings(self) -> DescribeGlobalSettingsOutput:
        r"""Describes the global settings of the AWS account, including whether it is opted in to cross-account backup.

        :param self:
        :param 
        :return: LastUpdateTime:  The date and time that the global settings were last updated. This update is in Unix format and Coordinated Universal Time (UTC). The value of <code>LastUpdateTime</code> is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM.<br/>GlobalSettings:  A list of resources along with the opt-in preferences for the account.<br/>        """
        pass

    def describe_protected_resource(self, ResourceArn: str) -> DescribeProtectedResourceOutput:
        r"""Returns information about a saved resource, including the last time it was backed up, its Amazon Resource Name (ARN), and the AWS service type of the saved resource.

        :param self:
        :param ResourceArn:  An Amazon Resource Name (ARN) that uniquely identifies a resource. The format of the ARN depends on the resource type.<br/>
        :return: LastBackupTime:  The date and time that a resource was last backed up, in Unix format and Coordinated Universal Time (UTC). The value of <code>LastBackupTime</code> is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM.<br/>ResourceType:  The type of AWS resource saved as a recovery point; for example, an EBS volume or an Amazon RDS database.<br/>ResourceArn:  An ARN that uniquely identifies a resource. The format of the ARN depends on the resource type.<br/>        """
        pass

    def describe_recovery_point(self, RecoveryPointArn: str, BackupVaultName: str) -> DescribeRecoveryPointOutput:
        r"""Returns metadata associated with a recovery point, including ID, status, encryption, and lifecycle.

        :param self:
        :param RecoveryPointArn:  An Amazon Resource Name (ARN) that uniquely identifies a recovery point; for example, <code>arn:aws:backup:us-east-1:123456789012:recovery-point:1EB3B5E7-9EB0-435A-A80B-108B488B0D45</code>.<br/>BackupVaultName:  The name of a logical container where backups are stored. Backup vaults are identified by names that are unique to the account used to create them and the AWS Region where they are created. They consist of lowercase letters, numbers, and hyphens.<br/>
        :return: LastRestoreTime:  The date and time that a recovery point was last restored, in Unix format and Coordinated Universal Time (UTC). The value of <code>LastRestoreTime</code> is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM.<br/>StorageClass:  Specifies the storage class of the recovery point. Valid values are <code>WARM</code> or <code>COLD</code>.<br/>IsEncrypted:  A Boolean value that is returned as <code>TRUE</code> if the specified recovery point is encrypted, or <code>FALSE</code> if the recovery point is not encrypted.<br/>EncryptionKeyArn:  The server-side encryption key used to protect your backups; for example, <code>arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab</code>.<br/>Lifecycle:  The lifecycle defines when a protected resource is transitioned to cold storage and when it expires. AWS Backup transitions and expires backups automatically according to the lifecycle that you define.  Backups that are transitioned to cold storage must be stored in cold storage for a minimum of 90 days. Therefore, the “expire after days” setting must be 90 days greater than the “transition to cold after days” setting. The “transition to cold after days” setting cannot be changed after a backup has been transitioned to cold.  Only Amazon EFS file system backups can be transitioned to cold storage.:<br/>CalculatedLifecycle:  A <code>CalculatedLifecycle</code> object containing <code>DeleteAt</code> and <code>MoveToColdStorageAt</code> timestamps.:<br/>BackupSizeInBytes:  The size, in bytes, of a backup.<br/>CompletionDate:  The date and time that a job to create a recovery point is completed, in Unix format and Coordinated Universal Time (UTC). The value of <code>CompletionDate</code> is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM.<br/>CreationDate:  The date and time that a recovery point is created, in Unix format and Coordinated Universal Time (UTC). The value of <code>CreationDate</code> is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM.<br/>Status:  A status code specifying the state of the recovery point. <note> A partial status indicates that the recovery point was not successfully re-created and must be retried. </note><br/>IamRoleArn:  Specifies the IAM role ARN used to create the target recovery point; for example, <code>arn:aws:iam::123456789012:role/S3Access</code>.<br/>CreatedBy:  Contains identifying information about the creation of a recovery point, including the <code>BackupPlanArn</code>, <code>BackupPlanId</code>, <code>BackupPlanVersion</code>, and <code>BackupRuleId</code> of the backup plan used to create it.:<br/>ResourceType:  The type of AWS resource to save as a recovery point; for example, an Amazon Elastic Block Store (Amazon EBS) volume or an Amazon Relational Database Service (Amazon RDS) database.<br/>ResourceArn:  An ARN that uniquely identifies a saved resource. The format of the ARN depends on the resource type.<br/>SourceBackupVaultArn:  An Amazon Resource Name (ARN) that uniquely identifies the source vault where the resource was originally backed up in; for example, <code>arn:aws:backup:us-east-1:123456789012:vault:BackupVault</code>. If the recovery is restored to the same AWS account or Region, this value will be <code>null</code>.<br/>BackupVaultArn:  An ARN that uniquely identifies a backup vault; for example, <code>arn:aws:backup:us-east-1:123456789012:vault:aBackupVault</code>.<br/>BackupVaultName:  The name of a logical container where backups are stored. Backup vaults are identified by names that are unique to the account used to create them and the Region where they are created. They consist of lowercase letters, numbers, and hyphens.<br/>RecoveryPointArn:  An ARN that uniquely identifies a recovery point; for example, <code>arn:aws:backup:us-east-1:123456789012:recovery-point:1EB3B5E7-9EB0-435A-A80B-108B488B0D45</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupRuleId</i> Uniquely identifies a rule used to schedule the backup of a selection of resources.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupPlanVersion</i> Version IDs are unique, randomly generated, Unicode, UTF-8 encoded strings that are at most 1,024 bytes long. They cannot be edited.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupPlanArn</i> An Amazon Resource Name (ARN) that uniquely identifies a backup plan; for example, <code>arn:aws:backup:us-east-1:123456789012:plan:8F81F553-3A74-4A3F-B93D-B3360DC80C50</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupPlanId</i> Uniquely identifies a backup plan.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeleteAt</i> A timestamp that specifies when to delete a recovery point.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MoveToColdStorageAt</i> A timestamp that specifies when to transition a recovery point to cold storage.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeleteAfterDays</i> Specifies the number of days after creation that a recovery point is deleted. Must be greater than 90 days plus <code>MoveToColdStorageAfterDays</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MoveToColdStorageAfterDays</i> Specifies the number of days after creation that a recovery point is moved to cold storage.<br/>        """
        pass

    def describe_region_settings(self) -> DescribeRegionSettingsOutput:
        r"""Returns the current service opt-in settings for the Region. If service-opt-in is enabled for a service, AWS Backup tries to protect that service's resources in this Region, when the resource is included in an on-demand backup or scheduled backup plan. Otherwise, AWS Backup does not try to protect that service's resources in this Region, AWS Backup does not try to protect that service's resources in this Region.

        :param self:
        :param 
        :return: ResourceTypeOptInPreference:  Returns a list of all services along with the opt-in preferences in the Region.<br/>        """
        pass

    def describe_restore_job(self, RestoreJobId: str) -> DescribeRestoreJobOutput:
        r"""Returns metadata associated with a restore job that is specified by a job ID.

        :param self:
        :param RestoreJobId:  Uniquely identifies the job that restores a recovery point.<br/>
        :return: ResourceType:  Returns metadata associated with a restore job listed by resource type.<br/>CreatedResourceArn:  An Amazon Resource Name (ARN) that uniquely identifies a resource whose recovery point is being restored. The format of the ARN depends on the resource type of the backed-up resource.<br/>ExpectedCompletionTimeMinutes:  The amount of time in minutes that a job restoring a recovery point is expected to take.<br/>IamRoleArn:  Specifies the IAM role ARN used to create the target recovery point; for example, <code>arn:aws:iam::123456789012:role/S3Access</code>.<br/>BackupSizeInBytes:  The size, in bytes, of the restored resource.<br/>PercentDone:  Contains an estimated percentage that is complete of a job at the time the job status was queried.<br/>StatusMessage:  A message showing the status of a job to restore a recovery point.<br/>Status:  Status code specifying the state of the job that is initiated by AWS Backup to restore a recovery point.<br/>CompletionDate:  The date and time that a job to restore a recovery point is completed, in Unix format and Coordinated Universal Time (UTC). The value of <code>CompletionDate</code> is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM.<br/>CreationDate:  The date and time that a restore job is created, in Unix format and Coordinated Universal Time (UTC). The value of <code>CreationDate</code> is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM.<br/>RecoveryPointArn:  An ARN that uniquely identifies a recovery point; for example, <code>arn:aws:backup:us-east-1:123456789012:recovery-point:1EB3B5E7-9EB0-435A-A80B-108B488B0D45</code>.<br/>RestoreJobId:  Uniquely identifies the job that restores a recovery point.<br/>AccountId:  Returns the account ID that owns the restore job.<br/>        """
        pass

    def disassociate_recovery_point(self, RecoveryPointArn: str, BackupVaultName: str):
        r"""Deletes the specified continuous backup recovery point from AWS Backup and releases control of that continuous backup to the source service, such as Amazon RDS. The source service will continue to create and retain continuous backups using the lifecycle that you specified in your original backup plan. Does not support snapshot backup recovery points.

        :param self:
        :param RecoveryPointArn:  An Amazon Resource Name (ARN) that uniquely identifies an AWS Backup recovery point. Required.<br/>BackupVaultName:  The unique name of an AWS Backup vault. Required.<br/>
        :return:         """
        pass

    def export_backup_plan_template(self, BackupPlanId: str) -> ExportBackupPlanTemplateOutput:
        r"""Returns the backup plan that is specified by the plan ID as a backup template.

        :param self:
        :param BackupPlanId:  Uniquely identifies a backup plan.<br/>
        :return: BackupPlanTemplateJson:  The body of a backup plan template in JSON format. <note> This is a signed JSON document that cannot be modified before being passed to <code>GetBackupPlanFromJSON.</code>  </note><br/>        """
        pass

    def get_backup_plan(self, BackupPlanId: str, VersionId: str=None) -> GetBackupPlanOutput:
        r"""Returns <code>BackupPlan</code> details for the specified <code>BackupPlanId</code>. The details are the body of a backup plan in JSON format, in addition to plan metadata.

        :param self:
        :param VersionId:  Unique, randomly generated, Unicode, UTF-8 encoded strings that are at most 1,024 bytes long. Version IDs cannot be edited.<br/>BackupPlanId:  Uniquely identifies a backup plan.<br/>
        :return: AdvancedBackupSettings:  Contains a list of <code>BackupOptions</code> for each resource type. The list is populated only if the advanced option is set for the backup plan.<br/>LastExecutionDate:  The last time a job to back up resources was run with this backup plan. A date and time, in Unix format and Coordinated Universal Time (UTC). The value of <code>LastExecutionDate</code> is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM.<br/>DeletionDate:  The date and time that a backup plan is deleted, in Unix format and Coordinated Universal Time (UTC). The value of <code>DeletionDate</code> is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM.<br/>CreationDate:  The date and time that a backup plan is created, in Unix format and Coordinated Universal Time (UTC). The value of <code>CreationDate</code> is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM.<br/>CreatorRequestId:  A unique string that identifies the request and allows failed requests to be retried without the risk of running the operation twice.<br/>VersionId:  Unique, randomly generated, Unicode, UTF-8 encoded strings that are at most 1,024 bytes long. Version IDs cannot be edited.<br/>BackupPlanArn:  An Amazon Resource Name (ARN) that uniquely identifies a backup plan; for example, <code>arn:aws:backup:us-east-1:123456789012:plan:8F81F553-3A74-4A3F-B93D-B3360DC80C50</code>.<br/>BackupPlanId:  Uniquely identifies a backup plan.<br/>BackupPlan:  Specifies the body of a backup plan. Includes a <code>BackupPlanName</code> and one or more sets of <code>Rules</code>.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdvancedBackupSettings</i> Contains a list of <code>BackupOptions</code> for each resource type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Rules</i> An array of <code>BackupRule</code> objects, each of which specifies a scheduled task that is used to back up a selection of resources. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupPlanName</i> The display name of a backup plan.<br/>        """
        pass

    def get_backup_plan_from_json(self, BackupPlanTemplateJson: str) -> GetBackupPlanFromJSONOutput:
        r"""Returns a valid JSON document specifying a backup plan or an error.

        :param self:
        :param BackupPlanTemplateJson:  A customer-supplied backup plan document in JSON format.<br/>
        :return: BackupPlan:  Specifies the body of a backup plan. Includes a <code>BackupPlanName</code> and one or more sets of <code>Rules</code>.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdvancedBackupSettings</i> Contains a list of <code>BackupOptions</code> for each resource type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Rules</i> An array of <code>BackupRule</code> objects, each of which specifies a scheduled task that is used to back up a selection of resources. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupPlanName</i> The display name of a backup plan.<br/>        """
        pass

    def get_backup_plan_from_template(self, BackupPlanTemplateId: str) -> GetBackupPlanFromTemplateOutput:
        r"""Returns the template specified by its <code>templateId</code> as a backup plan.

        :param self:
        :param BackupPlanTemplateId:  Uniquely identifies a stored backup plan template.<br/>
        :return: BackupPlanDocument:  Returns the body of a backup plan based on the target template, including the name, rules, and backup vault of the plan.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdvancedBackupSettings</i> Contains a list of <code>BackupOptions</code> for each resource type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Rules</i> An array of <code>BackupRule</code> objects, each of which specifies a scheduled task that is used to back up a selection of resources. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupPlanName</i> The display name of a backup plan.<br/>        """
        pass

    def get_backup_selection(self, SelectionId: str, BackupPlanId: str) -> GetBackupSelectionOutput:
        r"""Returns selection metadata and a document in JSON format that specifies a list of resources that are associated with a backup plan.

        :param self:
        :param SelectionId:  Uniquely identifies the body of a request to assign a set of resources to a backup plan.<br/>BackupPlanId:  Uniquely identifies a backup plan.<br/>
        :return: CreatorRequestId:  A unique string that identifies the request and allows failed requests to be retried without the risk of running the operation twice.<br/>CreationDate:  The date and time a backup selection is created, in Unix format and Coordinated Universal Time (UTC). The value of <code>CreationDate</code> is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM.<br/>BackupPlanId:  Uniquely identifies a backup plan.<br/>SelectionId:  Uniquely identifies the body of a request to assign a set of resources to a backup plan.<br/>BackupSelection:  Specifies the body of a request to assign a set of resources to a backup plan.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ListOfTags</i> An array of conditions used to specify a set of resources to assign to a backup plan; for example, <code>"StringEquals": {"ec2:ResourceTag/Department": "accounting"</code>. Assigns the backup plan to every resource with at least one matching tag.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Resources</i> An array of strings that contain Amazon Resource Names (ARNs) of resources to assign to a backup plan.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IamRoleArn</i> The ARN of the IAM role that AWS Backup uses to authenticate when backing up the target resource; for example, <code>arn:aws:iam::123456789012:role/S3Access</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SelectionName</i> The display name of a resource selection document.<br/>        """
        pass

    def get_backup_vault_access_policy(self, BackupVaultName: str) -> GetBackupVaultAccessPolicyOutput:
        r"""Returns the access policy document that is associated with the named backup vault.

        :param self:
        :param BackupVaultName:  The name of a logical container where backups are stored. Backup vaults are identified by names that are unique to the account used to create them and the AWS Region where they are created. They consist of lowercase letters, numbers, and hyphens.<br/>
        :return: Policy:  The backup vault access policy document in JSON format.<br/>BackupVaultArn:  An Amazon Resource Name (ARN) that uniquely identifies a backup vault; for example, <code>arn:aws:backup:us-east-1:123456789012:vault:aBackupVault</code>.<br/>BackupVaultName:  The name of a logical container where backups are stored. Backup vaults are identified by names that are unique to the account used to create them and the Region where they are created. They consist of lowercase letters, numbers, and hyphens.<br/>        """
        pass

    def get_backup_vault_notifications(self, BackupVaultName: str) -> GetBackupVaultNotificationsOutput:
        r"""Returns event notifications for the specified backup vault.

        :param self:
        :param BackupVaultName:  The name of a logical container where backups are stored. Backup vaults are identified by names that are unique to the account used to create them and the AWS Region where they are created. They consist of lowercase letters, numbers, and hyphens.<br/>
        :return: BackupVaultEvents:  An array of events that indicate the status of jobs to back up resources to the backup vault.<br/>SNSTopicArn:  An ARN that uniquely identifies an Amazon Simple Notification Service (Amazon SNS) topic; for example, <code>arn:aws:sns:us-west-2:111122223333:MyTopic</code>.<br/>BackupVaultArn:  An Amazon Resource Name (ARN) that uniquely identifies a backup vault; for example, <code>arn:aws:backup:us-east-1:123456789012:vault:aBackupVault</code>.<br/>BackupVaultName:  The name of a logical container where backups are stored. Backup vaults are identified by names that are unique to the account used to create them and the Region where they are created. They consist of lowercase letters, numbers, and hyphens.<br/>        """
        pass

    def get_recovery_point_restore_metadata(self, RecoveryPointArn: str, BackupVaultName: str) -> GetRecoveryPointRestoreMetadataOutput:
        r"""Returns a set of metadata key-value pairs that were used to create the backup.

        :param self:
        :param RecoveryPointArn:  An Amazon Resource Name (ARN) that uniquely identifies a recovery point; for example, <code>arn:aws:backup:us-east-1:123456789012:recovery-point:1EB3B5E7-9EB0-435A-A80B-108B488B0D45</code>.<br/>BackupVaultName:  The name of a logical container where backups are stored. Backup vaults are identified by names that are unique to the account used to create them and the AWS Region where they are created. They consist of lowercase letters, numbers, and hyphens.<br/>
        :return: RestoreMetadata:  The set of metadata key-value pairs that describe the original configuration of the backed-up resource. These values vary depending on the service that is being restored.<br/>RecoveryPointArn:  An ARN that uniquely identifies a recovery point; for example, <code>arn:aws:backup:us-east-1:123456789012:recovery-point:1EB3B5E7-9EB0-435A-A80B-108B488B0D45</code>.<br/>BackupVaultArn:  An ARN that uniquely identifies a backup vault; for example, <code>arn:aws:backup:us-east-1:123456789012:vault:aBackupVault</code>.<br/>        """
        pass

    def get_supported_resource_types(self) -> GetSupportedResourceTypesOutput:
        r"""Returns the AWS resource types supported by AWS Backup.

        :param self:
        :param 
        :return: ResourceTypes:  Contains a string with the supported AWS resource types: <ul> <li>  <code>DynamoDB</code> for Amazon DynamoDB </li> <li>  <code>EBS</code> for Amazon Elastic Block Store </li> <li>  <code>EC2</code> for Amazon Elastic Compute Cloud </li> <li>  <code>EFS</code> for Amazon Elastic File System </li> <li>  <code>RDS</code> for Amazon Relational Database Service </li> <li>  <code>Aurora</code> for Amazon Aurora </li> <li>  <code>Storage Gateway</code> for AWS Storage Gateway </li> </ul><br/>        """
        pass

    def list_backup_jobs(self, NextToken: str=None, MaxResults: int=None, ByResourceArn: str=None, ByState: str=None, ByBackupVaultName: str=None, ByCreatedBefore: timestamp=None, ByCreatedAfter: timestamp=None, ByResourceType: str=None, ByAccountId: str=None) -> ListBackupJobsOutput:
        r"""Returns a list of existing backup jobs for an authenticated account for the last 30 days. For a longer period of time, consider using these <a href="https://docs.aws.amazon.com/aws-backup/latest/devguide/monitoring.html">monitoring tools</a>.

        :param self:
        :param ByAccountId:  The account ID to list the jobs from. Returns only backup jobs associated with the specified account ID. If used from an AWS Organizations management account, passing <code>*</code> returns all jobs across the organization.<br/>ByResourceType:  Returns only backup jobs for the specified resources: <ul> <li>  <code>DynamoDB</code> for Amazon DynamoDB </li> <li>  <code>EBS</code> for Amazon Elastic Block Store </li> <li>  <code>EC2</code> for Amazon Elastic Compute Cloud </li> <li>  <code>EFS</code> for Amazon Elastic File System </li> <li>  <code>RDS</code> for Amazon Relational Database Service </li> <li>  <code>Aurora</code> for Amazon Aurora </li> <li>  <code>Storage Gateway</code> for AWS Storage Gateway </li> </ul><br/>ByCreatedAfter:  Returns only backup jobs that were created after the specified date.<br/>ByCreatedBefore:  Returns only backup jobs that were created before the specified date.<br/>ByBackupVaultName:  Returns only backup jobs that will be stored in the specified backup vault. Backup vaults are identified by names that are unique to the account used to create them and the AWS Region where they are created. They consist of lowercase letters, numbers, and hyphens.<br/>ByState:  Returns only backup jobs that are in the specified state.<br/>ByResourceArn:  Returns only backup jobs that match the specified resource Amazon Resource Name (ARN).<br/>MaxResults:  The maximum number of items to be returned.<br/>NextToken:  The next item following a partial list of returned items. For example, if a request is made to return <code>maxResults</code> number of items, <code>NextToken</code> allows you to return more items in your list starting at the location pointed to by the next token.<br/>
        :return: NextToken:  The next item following a partial list of returned items. For example, if a request is made to return <code>maxResults</code> number of items, <code>NextToken</code> allows you to return more items in your list starting at the location pointed to by the next token.<br/>BackupJobs:  An array of structures containing metadata about your backup jobs returned in JSON format.<br/>        """
        pass

    def list_backup_plan_templates(self, NextToken: str=None, MaxResults: int=None) -> ListBackupPlanTemplatesOutput:
        r"""Returns metadata of your saved backup plan templates, including the template ID, name, and the creation and deletion dates.

        :param self:
        :param MaxResults:  The maximum number of items to be returned.<br/>NextToken:  The next item following a partial list of returned items. For example, if a request is made to return <code>maxResults</code> number of items, <code>NextToken</code> allows you to return more items in your list starting at the location pointed to by the next token.<br/>
        :return: BackupPlanTemplatesList:  An array of template list items containing metadata about your saved templates.<br/>NextToken:  The next item following a partial list of returned items. For example, if a request is made to return <code>maxResults</code> number of items, <code>NextToken</code> allows you to return more items in your list starting at the location pointed to by the next token.<br/>        """
        pass

    def list_backup_plan_versions(self, BackupPlanId: str, NextToken: str=None, MaxResults: int=None) -> ListBackupPlanVersionsOutput:
        r"""Returns version metadata of your backup plans, including Amazon Resource Names (ARNs), backup plan IDs, creation and deletion dates, plan names, and version IDs.

        :param self:
        :param MaxResults:  The maximum number of items to be returned.<br/>NextToken:  The next item following a partial list of returned items. For example, if a request is made to return <code>maxResults</code> number of items, <code>NextToken</code> allows you to return more items in your list starting at the location pointed to by the next token.<br/>BackupPlanId:  Uniquely identifies a backup plan.<br/>
        :return: BackupPlanVersionsList:  An array of version list items containing metadata about your backup plans.<br/>NextToken:  The next item following a partial list of returned items. For example, if a request is made to return <code>maxResults</code> number of items, <code>NextToken</code> allows you to return more items in your list starting at the location pointed to by the next token.<br/>        """
        pass

    def list_backup_plans(self, NextToken: str=None, MaxResults: int=None, IncludeDeleted: Boolean=None) -> ListBackupPlansOutput:
        r"""Returns a list of existing backup plans for an authenticated account. The list is populated only if the advanced option is set for the backup plan. The list contains information such as Amazon Resource Names (ARNs), plan IDs, creation and deletion dates, version IDs, plan names, and creator request IDs.

        :param self:
        :param IncludeDeleted:  A Boolean value with a default value of <code>FALSE</code> that returns deleted backup plans when set to <code>TRUE</code>.<br/>MaxResults:  The maximum number of items to be returned.<br/>NextToken:  The next item following a partial list of returned items. For example, if a request is made to return <code>maxResults</code> number of items, <code>NextToken</code> allows you to return more items in your list starting at the location pointed to by the next token.<br/>
        :return: BackupPlansList:  An array of backup plan list items containing metadata about your saved backup plans.<br/>NextToken:  The next item following a partial list of returned items. For example, if a request is made to return <code>maxResults</code> number of items, <code>NextToken</code> allows you to return more items in your list starting at the location pointed to by the next token.<br/>        """
        pass

    def list_backup_selections(self, BackupPlanId: str, NextToken: str=None, MaxResults: int=None) -> ListBackupSelectionsOutput:
        r"""Returns an array containing metadata of the resources associated with the target backup plan.

        :param self:
        :param MaxResults:  The maximum number of items to be returned.<br/>NextToken:  The next item following a partial list of returned items. For example, if a request is made to return <code>maxResults</code> number of items, <code>NextToken</code> allows you to return more items in your list starting at the location pointed to by the next token.<br/>BackupPlanId:  Uniquely identifies a backup plan.<br/>
        :return: BackupSelectionsList:  An array of backup selection list items containing metadata about each resource in the list.<br/>NextToken:  The next item following a partial list of returned items. For example, if a request is made to return <code>maxResults</code> number of items, <code>NextToken</code> allows you to return more items in your list starting at the location pointed to by the next token.<br/>        """
        pass

    def list_backup_vaults(self, NextToken: str=None, MaxResults: int=None) -> ListBackupVaultsOutput:
        r"""Returns a list of recovery point storage containers along with information about them.

        :param self:
        :param MaxResults:  The maximum number of items to be returned.<br/>NextToken:  The next item following a partial list of returned items. For example, if a request is made to return <code>maxResults</code> number of items, <code>NextToken</code> allows you to return more items in your list starting at the location pointed to by the next token.<br/>
        :return: NextToken:  The next item following a partial list of returned items. For example, if a request is made to return <code>maxResults</code> number of items, <code>NextToken</code> allows you to return more items in your list starting at the location pointed to by the next token.<br/>BackupVaultList:  An array of backup vault list members containing vault metadata, including Amazon Resource Name (ARN), display name, creation date, number of saved recovery points, and encryption information if the resources saved in the backup vault are encrypted.<br/>        """
        pass

    def list_copy_jobs(self, NextToken: str=None, MaxResults: int=None, ByResourceArn: str=None, ByState: str=None, ByCreatedBefore: timestamp=None, ByCreatedAfter: timestamp=None, ByResourceType: str=None, ByDestinationVaultArn: str=None, ByAccountId: str=None) -> ListCopyJobsOutput:
        r"""Returns metadata about your copy jobs.

        :param self:
        :param ByAccountId:  The account ID to list the jobs from. Returns only copy jobs associated with the specified account ID.<br/>ByDestinationVaultArn:  An Amazon Resource Name (ARN) that uniquely identifies a source backup vault to copy from; for example, <code>arn:aws:backup:us-east-1:123456789012:vault:aBackupVault</code>. <br/>ByResourceType:  Returns only backup jobs for the specified resources: <ul> <li>  <code>DynamoDB</code> for Amazon DynamoDB </li> <li>  <code>EBS</code> for Amazon Elastic Block Store </li> <li>  <code>EC2</code> for Amazon Elastic Compute Cloud </li> <li>  <code>EFS</code> for Amazon Elastic File System </li> <li>  <code>RDS</code> for Amazon Relational Database Service </li> <li>  <code>Aurora</code> for Amazon Aurora </li> <li>  <code>Storage Gateway</code> for AWS Storage Gateway </li> </ul><br/>ByCreatedAfter:  Returns only copy jobs that were created after the specified date.<br/>ByCreatedBefore:  Returns only copy jobs that were created before the specified date.<br/>ByState:  Returns only copy jobs that are in the specified state.<br/>ByResourceArn:  Returns only copy jobs that match the specified resource Amazon Resource Name (ARN). <br/>MaxResults:  The maximum number of items to be returned.<br/>NextToken:  The next item following a partial list of returned items. For example, if a request is made to return maxResults number of items, NextToken allows you to return more items in your list starting at the location pointed to by the next token. <br/>
        :return: NextToken:  The next item following a partial list of returned items. For example, if a request is made to return maxResults number of items, NextToken allows you to return more items in your list starting at the location pointed to by the next token. <br/>CopyJobs:  An array of structures containing metadata about your copy jobs returned in JSON format. <br/>        """
        pass

    def list_protected_resources(self, NextToken: str=None, MaxResults: int=None) -> ListProtectedResourcesOutput:
        r"""Returns an array of resources successfully backed up by AWS Backup, including the time the resource was saved, an Amazon Resource Name (ARN) of the resource, and a resource type.

        :param self:
        :param MaxResults:  The maximum number of items to be returned.<br/>NextToken:  The next item following a partial list of returned items. For example, if a request is made to return <code>maxResults</code> number of items, <code>NextToken</code> allows you to return more items in your list starting at the location pointed to by the next token.<br/>
        :return: NextToken:  The next item following a partial list of returned items. For example, if a request is made to return <code>maxResults</code> number of items, <code>NextToken</code> allows you to return more items in your list starting at the location pointed to by the next token.<br/>Results:  An array of resources successfully backed up by AWS Backup including the time the resource was saved, an Amazon Resource Name (ARN) of the resource, and a resource type.<br/>        """
        pass

    def list_recovery_points_by_backup_vault(self, BackupVaultName: str, NextToken: str=None, MaxResults: int=None, ByResourceArn: str=None, ByResourceType: str=None, ByBackupPlanId: str=None, ByCreatedBefore: timestamp=None, ByCreatedAfter: timestamp=None) -> ListRecoveryPointsByBackupVaultOutput:
        r"""Returns detailed information about the recovery points stored in a backup vault.

        :param self:
        :param ByCreatedAfter:  Returns only recovery points that were created after the specified timestamp.<br/>ByCreatedBefore:  Returns only recovery points that were created before the specified timestamp.<br/>ByBackupPlanId:  Returns only recovery points that match the specified backup plan ID.<br/>ByResourceType:  Returns only recovery points that match the specified resource type.<br/>ByResourceArn:  Returns only recovery points that match the specified resource Amazon Resource Name (ARN).<br/>MaxResults:  The maximum number of items to be returned.<br/>NextToken:  The next item following a partial list of returned items. For example, if a request is made to return <code>maxResults</code> number of items, <code>NextToken</code> allows you to return more items in your list starting at the location pointed to by the next token.<br/>BackupVaultName:  The name of a logical container where backups are stored. Backup vaults are identified by names that are unique to the account used to create them and the AWS Region where they are created. They consist of lowercase letters, numbers, and hyphens.<br/>
        :return: RecoveryPoints:  An array of objects that contain detailed information about recovery points saved in a backup vault.<br/>NextToken:  The next item following a partial list of returned items. For example, if a request is made to return <code>maxResults</code> number of items, <code>NextToken</code> allows you to return more items in your list starting at the location pointed to by the next token.<br/>        """
        pass

    def list_recovery_points_by_resource(self, ResourceArn: str, NextToken: str=None, MaxResults: int=None) -> ListRecoveryPointsByResourceOutput:
        r"""Returns detailed information about recovery points of the type specified by a resource Amazon Resource Name (ARN).

        :param self:
        :param MaxResults:  The maximum number of items to be returned.<br/>NextToken:  The next item following a partial list of returned items. For example, if a request is made to return <code>maxResults</code> number of items, <code>NextToken</code> allows you to return more items in your list starting at the location pointed to by the next token.<br/>ResourceArn:  An ARN that uniquely identifies a resource. The format of the ARN depends on the resource type.<br/>
        :return: RecoveryPoints:  An array of objects that contain detailed information about recovery points of the specified resource type.<br/>NextToken:  The next item following a partial list of returned items. For example, if a request is made to return <code>maxResults</code> number of items, <code>NextToken</code> allows you to return more items in your list starting at the location pointed to by the next token.<br/>        """
        pass

    def list_restore_jobs(self, NextToken: str=None, MaxResults: int=None, ByAccountId: str=None, ByCreatedBefore: timestamp=None, ByCreatedAfter: timestamp=None, ByStatus: str=None) -> ListRestoreJobsOutput:
        r"""Returns a list of jobs that AWS Backup initiated to restore a saved resource, including metadata about the recovery process.

        :param self:
        :param ByStatus:  Returns only restore jobs associated with the specified job status.<br/>ByCreatedAfter:  Returns only restore jobs that were created after the specified date.<br/>ByCreatedBefore:  Returns only restore jobs that were created before the specified date.<br/>ByAccountId:  The account ID to list the jobs from. Returns only restore jobs associated with the specified account ID.<br/>MaxResults:  The maximum number of items to be returned.<br/>NextToken:  The next item following a partial list of returned items. For example, if a request is made to return <code>maxResults</code> number of items, <code>NextToken</code> allows you to return more items in your list starting at the location pointed to by the next token.<br/>
        :return: NextToken:  The next item following a partial list of returned items. For example, if a request is made to return <code>maxResults</code> number of items, <code>NextToken</code> allows you to return more items in your list starting at the location pointed to by the next token.<br/>RestoreJobs:  An array of objects that contain detailed information about jobs to restore saved resources.<br/>        """
        pass

    def list_tags(self, ResourceArn: str, NextToken: str=None, MaxResults: int=None) -> ListTagsOutput:
        r"""Returns a list of key-value pairs assigned to a target recovery point, backup plan, or backup vault. <note>  <code>ListTags</code> are currently only supported with Amazon EFS backups. </note>

        :param self:
        :param MaxResults:  The maximum number of items to be returned.<br/>NextToken:  The next item following a partial list of returned items. For example, if a request is made to return <code>maxResults</code> number of items, <code>NextToken</code> allows you to return more items in your list starting at the location pointed to by the next token.<br/>ResourceArn:  An Amazon Resource Name (ARN) that uniquely identifies a resource. The format of the ARN depends on the type of resource. Valid targets for <code>ListTags</code> are recovery points, backup plans, and backup vaults.<br/>
        :return: Tags:  To help organize your resources, you can assign your own metadata to the resources you create. Each tag is a key-value pair.<br/>NextToken:  The next item following a partial list of returned items. For example, if a request is made to return <code>maxResults</code> number of items, <code>NextToken</code> allows you to return more items in your list starting at the location pointed to by the next token.<br/>        """
        pass

    def put_backup_vault_access_policy(self, BackupVaultName: str, Policy: str=None):
        r"""Sets a resource-based policy that is used to manage access permissions on the target backup vault. Requires a backup vault name and an access policy document in JSON format.

        :param self:
        :param Policy:  The backup vault access policy document in JSON format.<br/>BackupVaultName:  The name of a logical container where backups are stored. Backup vaults are identified by names that are unique to the account used to create them and the AWS Region where they are created. They consist of lowercase letters, numbers, and hyphens.<br/>
        :return:         """
        pass

    def put_backup_vault_notifications(self, BackupVaultEvents: List[BackupVaultEvent], SNSTopicArn: str, BackupVaultName: str):
        r"""Turns on notifications on a backup vault for the specified topic and events.

        :param self:
        :param BackupVaultEvents:  An array of events that indicate the status of jobs to back up resources to the backup vault.<br/>SNSTopicArn:  The Amazon Resource Name (ARN) that specifies the topic for a backup vault’s events; for example, <code>arn:aws:sns:us-west-2:111122223333:MyVaultTopic</code>.<br/>BackupVaultName:  The name of a logical container where backups are stored. Backup vaults are identified by names that are unique to the account used to create them and the AWS Region where they are created. They consist of lowercase letters, numbers, and hyphens.<br/>
        :return:         """
        pass

    def start_backup_job(self, IamRoleArn: str, ResourceArn: str, BackupVaultName: str, IdempotencyToken: str=None, StartWindowMinutes: WindowMinutes=None, CompleteWindowMinutes: WindowMinutes=None, Lifecycle: Lifecycle=None, RecoveryPointTags: Tags=None, BackupOptions: BackupOptions=None) -> StartBackupJobOutput:
        r"""Starts an on-demand backup job for the specified resource.

        :param self:
        :param BackupOptions:  Specifies the backup option for a selected resource. This option is only available for Windows VSS backup jobs. Valid values: Set to <code>"WindowsVSS”:“enabled"</code> to enable WindowsVSS backup option and create a VSS Windows backup. Set to “WindowsVSS”:”disabled” to create a regular backup. The WindowsVSS option is not enabled by default.<br/>RecoveryPointTags:  To help organize your resources, you can assign your own metadata to the resources that you create. Each tag is a key-value pair.<br/>Lifecycle:  The lifecycle defines when a protected resource is transitioned to cold storage and when it expires. AWS Backup will transition and expire backups automatically according to the lifecycle that you define.  Backups transitioned to cold storage must be stored in cold storage for a minimum of 90 days. Therefore, the “expire after days” setting must be 90 days greater than the “transition to cold after days” setting. The “transition to cold after days” setting cannot be changed after a backup has been transitioned to cold.  Only Amazon EFS file system backups can be transitioned to cold storage.:<br/>CompleteWindowMinutes:  A value in minutes during which a successfully started backup must complete, or else AWS Backup will cancel the job. This value is optional. This value begins counting down from when the backup was scheduled. It does not add additional time for <code>StartWindowMinutes</code>, or if the backup started later than scheduled.<br/>StartWindowMinutes:  A value in minutes after a backup is scheduled before a job will be canceled if it doesn't start successfully. This value is optional, and the default is 8 hours.<br/>IdempotencyToken:  A customer chosen string that can be used to distinguish between calls to <code>StartBackupJob</code>.<br/>IamRoleArn:  Specifies the IAM role ARN used to create the target recovery point; for example, <code>arn:aws:iam::123456789012:role/S3Access</code>.<br/>ResourceArn:  An Amazon Resource Name (ARN) that uniquely identifies a resource. The format of the ARN depends on the resource type.<br/>BackupVaultName:  The name of a logical container where backups are stored. Backup vaults are identified by names that are unique to the account used to create them and the AWS Region where they are created. They consist of lowercase letters, numbers, and hyphens.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeleteAfterDays</i> Specifies the number of days after creation that a recovery point is deleted. Must be greater than 90 days plus <code>MoveToColdStorageAfterDays</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MoveToColdStorageAfterDays</i> Specifies the number of days after creation that a recovery point is moved to cold storage.<br/>
        :return: CreationDate:  The date and time that a backup job is created, in Unix format and Coordinated Universal Time (UTC). The value of <code>CreationDate</code> is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM.<br/>RecoveryPointArn:  An ARN that uniquely identifies a recovery point; for example, <code>arn:aws:backup:us-east-1:123456789012:recovery-point:1EB3B5E7-9EB0-435A-A80B-108B488B0D45</code>.<br/>BackupJobId:  Uniquely identifies a request to AWS Backup to back up a resource.<br/>        """
        pass

    def start_copy_job(self, IamRoleArn: str, DestinationBackupVaultArn: str, SourceBackupVaultName: str, RecoveryPointArn: str, IdempotencyToken: str=None, Lifecycle: Lifecycle=None) -> StartCopyJobOutput:
        r"""Starts a job to create a one-time copy of the specified resource. Does not support continuous backups.

        :param self:
        :param Lifecycle:  Contains an array of <code>Transition</code> objects specifying how long in days before a recovery point transitions to cold storage or is deleted. Backups transitioned to cold storage must be stored in cold storage for a minimum of 90 days. Therefore, on the console, the “expire after days” setting must be 90 days greater than the “transition to cold after days” setting. The “transition to cold after days” setting cannot be changed after a backup has been transitioned to cold. Only Amazon EFS file system backups can be transitioned to cold storage.:<br/>IdempotencyToken:  A customer chosen string that can be used to distinguish between calls to <code>StartCopyJob</code>.<br/>IamRoleArn:  Specifies the IAM role ARN used to copy the target recovery point; for example, <code>arn:aws:iam::123456789012:role/S3Access</code>.<br/>DestinationBackupVaultArn:  An Amazon Resource Name (ARN) that uniquely identifies a destination backup vault to copy to; for example, <code>arn:aws:backup:us-east-1:123456789012:vault:aBackupVault</code>.<br/>SourceBackupVaultName:  The name of a logical source container where backups are stored. Backup vaults are identified by names that are unique to the account used to create them and the AWS Region where they are created. They consist of lowercase letters, numbers, and hyphens.<br/>RecoveryPointArn:  An ARN that uniquely identifies a recovery point to use for the copy job; for example, arn:aws:backup:us-east-1:123456789012:recovery-point:1EB3B5E7-9EB0-435A-A80B-108B488B0D45. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeleteAfterDays</i> Specifies the number of days after creation that a recovery point is deleted. Must be greater than 90 days plus <code>MoveToColdStorageAfterDays</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MoveToColdStorageAfterDays</i> Specifies the number of days after creation that a recovery point is moved to cold storage.<br/>
        :return: CreationDate:  The date and time that a copy job is created, in Unix format and Coordinated Universal Time (UTC). The value of <code>CreationDate</code> is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM.<br/>CopyJobId:  Uniquely identifies a copy job.<br/>        """
        pass

    def start_restore_job(self, IamRoleArn: str, Metadata: Metadata, RecoveryPointArn: str, IdempotencyToken: str=None, ResourceType: str=None) -> StartRestoreJobOutput:
        r"""Recovers the saved resource identified by an Amazon Resource Name (ARN).

        :param self:
        :param ResourceType:  Starts a job to restore a recovery point for one of the following resources: <ul> <li>  <code>DynamoDB</code> for Amazon DynamoDB </li> <li>  <code>EBS</code> for Amazon Elastic Block Store </li> <li>  <code>EC2</code> for Amazon Elastic Compute Cloud </li> <li>  <code>EFS</code> for Amazon Elastic File System </li> <li>  <code>RDS</code> for Amazon Relational Database Service </li> <li>  <code>Aurora</code> for Amazon Aurora </li> <li>  <code>Storage Gateway</code> for AWS Storage Gateway </li> </ul><br/>IdempotencyToken:  A customer chosen string that can be used to distinguish between calls to <code>StartRestoreJob</code>.<br/>IamRoleArn:  The Amazon Resource Name (ARN) of the IAM role that AWS Backup uses to create the target recovery point; for example, <code>arn:aws:iam::123456789012:role/S3Access</code>.<br/>Metadata:  A set of metadata key-value pairs. Contains information, such as a resource name, required to restore a recovery point.  You can get configuration metadata about a resource at the time it was backed up by calling <code>GetRecoveryPointRestoreMetadata</code>. However, values in addition to those provided by <code>GetRecoveryPointRestoreMetadata</code> might be required to restore a resource. For example, you might need to provide a new resource name if the original already exists. You need to specify specific metadata to restore an Amazon Elastic File System (Amazon EFS) instance: <ul> <li>  <code>file-system-id</code>: The ID of the Amazon EFS file system that is backed up by AWS Backup. Returned in <code>GetRecoveryPointRestoreMetadata</code>. </li> <li>  <code>Encrypted</code>: A Boolean value that, if true, specifies that the file system is encrypted. If <code>KmsKeyId</code> is specified, <code>Encrypted</code> must be set to <code>true</code>. </li> <li>  <code>KmsKeyId</code>: Specifies the AWS KMS key that is used to encrypt the restored file system. You can specify a key from another AWS account provided that key it is properly shared with your account via AWS KMS. </li> <li>  <code>PerformanceMode</code>: Specifies the throughput mode of the file system. </li> <li>  <code>CreationToken</code>: A user-supplied value that ensures the uniqueness (idempotency) of the request. </li> <li>  <code>newFileSystem</code>: A Boolean value that, if true, specifies that the recovery point is restored to a new Amazon EFS file system. </li> <li>  <code>ItemsToRestore </code>: An array of one to five strings where each string is a file path. Use <code>ItemsToRestore</code> to restore specific files or directories rather than the entire file system. This parameter is optional. For example, <code>"itemsToRestore":"[\"/my.test\"]"</code>. </li> </ul><br/>RecoveryPointArn:  An ARN that uniquely identifies a recovery point; for example, <code>arn:aws:backup:us-east-1:123456789012:recovery-point:1EB3B5E7-9EB0-435A-A80B-108B488B0D45</code>.<br/>
        :return: RestoreJobId:  Uniquely identifies the job that restores a recovery point.<br/>        """
        pass

    def stop_backup_job(self, BackupJobId: str):
        r"""Attempts to cancel a job to create a one-time backup of a resource.

        :param self:
        :param BackupJobId:  Uniquely identifies a request to AWS Backup to back up a resource.<br/>
        :return:         """
        pass

    def tag_resource(self, Tags: Tags, ResourceArn: str):
        r"""Assigns a set of key-value pairs to a recovery point, backup plan, or backup vault identified by an Amazon Resource Name (ARN).

        :param self:
        :param Tags:  Key-value pairs that are used to help organize your resources. You can assign your own metadata to the resources you create.<br/>ResourceArn:  An ARN that uniquely identifies a resource. The format of the ARN depends on the type of the tagged resource.<br/>
        :return:         """
        pass

    def untag_resource(self, TagKeyList: List[string], ResourceArn: str):
        r"""Removes a set of key-value pairs from a recovery point, backup plan, or backup vault identified by an Amazon Resource Name (ARN)

        :param self:
        :param TagKeyList:  A list of keys to identify which key-value tags to remove from a resource.<br/>ResourceArn:  An ARN that uniquely identifies a resource. The format of the ARN depends on the type of the tagged resource.<br/>
        :return:         """
        pass

    def update_backup_plan(self, BackupPlan: BackupPlanInput, BackupPlanId: str) -> UpdateBackupPlanOutput:
        r"""Updates an existing backup plan identified by its <code>backupPlanId</code> with the input document in JSON format. The new version is uniquely identified by a <code>VersionId</code>.

        :param self:
        :param BackupPlan:  Specifies the body of a backup plan. Includes a <code>BackupPlanName</code> and one or more sets of <code>Rules</code>.:<br/>BackupPlanId:  Uniquely identifies a backup plan.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdvancedBackupSettings</i> Specifies a list of <code>BackupOptions</code> for each resource type. These settings are only available for Windows VSS backup jobs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Rules</i> An array of <code>BackupRule</code> objects, each of which specifies a scheduled task that is used to back up a selection of resources.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupPlanName</i> The optional display name of a backup plan.<br/>
        :return: AdvancedBackupSettings:  Contains a list of <code>BackupOptions</code> for each resource type.<br/>VersionId:  Unique, randomly generated, Unicode, UTF-8 encoded strings that are at most 1,024 bytes long. Version Ids cannot be edited.<br/>CreationDate:  The date and time a backup plan is updated, in Unix format and Coordinated Universal Time (UTC). The value of <code>CreationDate</code> is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM.<br/>BackupPlanArn:  An Amazon Resource Name (ARN) that uniquely identifies a backup plan; for example, <code>arn:aws:backup:us-east-1:123456789012:plan:8F81F553-3A74-4A3F-B93D-B3360DC80C50</code>.<br/>BackupPlanId:  Uniquely identifies a backup plan.<br/>        """
        pass

    def update_global_settings(self, GlobalSettings: GlobalSettings=None):
        r"""Updates the current global settings for the AWS account. Use the <code>DescribeGlobalSettings</code> API to determine the current settings.

        :param self:
        :param GlobalSettings:  A list of resources along with the opt-in preferences for the account.<br/>
        :return:         """
        pass

    def update_recovery_point_lifecycle(self, RecoveryPointArn: str, BackupVaultName: str, Lifecycle: Lifecycle=None) -> UpdateRecoveryPointLifecycleOutput:
        r"""Sets the transition lifecycle of a recovery point. The lifecycle defines when a protected resource is transitioned to cold storage and when it expires. AWS Backup transitions and expires backups automatically according to the lifecycle that you define. Backups transitioned to cold storage must be stored in cold storage for a minimum of 90 days. Therefore, the “expire after days” setting must be 90 days greater than the “transition to cold after days” setting. The “transition to cold after days” setting cannot be changed after a backup has been transitioned to cold. Only Amazon EFS file system backups can be transitioned to cold storage. Does not support continuous backups.

        :param self:
        :param Lifecycle:  The lifecycle defines when a protected resource is transitioned to cold storage and when it expires. AWS Backup transitions and expires backups automatically according to the lifecycle that you define.  Backups transitioned to cold storage must be stored in cold storage for a minimum of 90 days. Therefore, the “expire after days” setting must be 90 days greater than the “transition to cold after days” setting. The “transition to cold after days” setting cannot be changed after a backup has been transitioned to cold. :<br/>RecoveryPointArn:  An Amazon Resource Name (ARN) that uniquely identifies a recovery point; for example, <code>arn:aws:backup:us-east-1:123456789012:recovery-point:1EB3B5E7-9EB0-435A-A80B-108B488B0D45</code>.<br/>BackupVaultName:  The name of a logical container where backups are stored. Backup vaults are identified by names that are unique to the account used to create them and the AWS Region where they are created. They consist of lowercase letters, numbers, and hyphens.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeleteAfterDays</i> Specifies the number of days after creation that a recovery point is deleted. Must be greater than 90 days plus <code>MoveToColdStorageAfterDays</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MoveToColdStorageAfterDays</i> Specifies the number of days after creation that a recovery point is moved to cold storage.<br/>
        :return: CalculatedLifecycle:  A <code>CalculatedLifecycle</code> object containing <code>DeleteAt</code> and <code>MoveToColdStorageAt</code> timestamps.:<br/>Lifecycle:  The lifecycle defines when a protected resource is transitioned to cold storage and when it expires. AWS Backup transitions and expires backups automatically according to the lifecycle that you define.  Backups transitioned to cold storage must be stored in cold storage for a minimum of 90 days. Therefore, the “expire after days” setting must be 90 days greater than the “transition to cold after days” setting. The “transition to cold after days” setting cannot be changed after a backup has been transitioned to cold.  Only Amazon EFS file system backups can be transitioned to cold storage.:<br/>RecoveryPointArn:  An Amazon Resource Name (ARN) that uniquely identifies a recovery point; for example, <code>arn:aws:backup:us-east-1:123456789012:recovery-point:1EB3B5E7-9EB0-435A-A80B-108B488B0D45</code>.<br/>BackupVaultArn:  An ARN that uniquely identifies a backup vault; for example, <code>arn:aws:backup:us-east-1:123456789012:vault:aBackupVault</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeleteAfterDays</i> Specifies the number of days after creation that a recovery point is deleted. Must be greater than 90 days plus <code>MoveToColdStorageAfterDays</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MoveToColdStorageAfterDays</i> Specifies the number of days after creation that a recovery point is moved to cold storage.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeleteAt</i> A timestamp that specifies when to delete a recovery point.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MoveToColdStorageAt</i> A timestamp that specifies when to transition a recovery point to cold storage.<br/>        """
        pass

    def update_region_settings(self, ResourceTypeOptInPreference: ResourceTypeOptInPreference=None):
        r"""Updates the current service opt-in settings for the Region. If service-opt-in is enabled for a service, AWS Backup tries to protect that service's resources in this Region, when the resource is included in an on-demand backup or scheduled backup plan. Otherwise, AWS Backup does not try to protect that service's resources in this Region. Use the <code>DescribeRegionSettings</code> API to determine the resource types that are supported.

        :param self:
        :param ResourceTypeOptInPreference:  Updates the list of services along with the opt-in preferences for the Region.<br/>
        :return:         """
        pass





class Batch(BaseClient):
    r"""Using AWS Batch, you can run batch computing workloads on the AWS Cloud. Batch computing is a common means for developers, scientists, and engineers to access large amounts of compute resources. AWS Batch uses the advantages of this computing workload to remove the undifferentiated heavy lifting of configuring and managing required infrastructure. At the same time, it also adopts a familiar batch computing software approach. Given these advantages, AWS Batch can help you to efficiently provision resources in response to jobs submitted, thus effectively helping you to eliminate capacity constraints, reduce compute costs, and deliver your results more quickly. As a fully managed service, AWS Batch can run batch computing workloads of any scale. AWS Batch automatically provisions compute resources and optimizes workload distribution based on the quantity and scale of your specific workloads. With AWS Batch, there's no need to install or manage batch computing software. This means that you can focus your time and energy on analyzing results and solving your specific problems."""


    class DescribeComputeEnvironmentsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_compute_environments` for valid parameters"""
            pass
    class DescribeJobDefinitionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_job_definitions` for valid parameters"""
            pass
    class DescribeJobQueuesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_job_queues` for valid parameters"""
            pass
    class ListJobsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_jobs` for valid parameters"""
            pass


    class CancelJobRequest(Mapping):
        pass
    
    class CancelJobResponse(Mapping):
        pass
    
    class CreateComputeEnvironmentRequest(Mapping):
        pass
    
    class CreateComputeEnvironmentResponse(Mapping):
        pass
    
    class ComputeResource(Mapping):
        pass
    
    class TagrisTagsMap(object):
        pass
    
    class CreateJobQueueRequest(Mapping):
        pass
    
    class CreateJobQueueResponse(Mapping):
        pass
    
    class ComputeEnvironmentOrder(Mapping):
        pass
    
    class DeleteComputeEnvironmentRequest(Mapping):
        pass
    
    class DeleteComputeEnvironmentResponse(Mapping):
        pass
    
    class DeleteJobQueueRequest(Mapping):
        pass
    
    class DeleteJobQueueResponse(Mapping):
        pass
    
    class DeregisterJobDefinitionRequest(Mapping):
        pass
    
    class DeregisterJobDefinitionResponse(Mapping):
        pass
    
    class DescribeComputeEnvironmentsRequest(Mapping):
        pass
    
    class DescribeComputeEnvironmentsResponse(Mapping):
        pass
    
    class String(object):
        pass
    
    class DescribeJobDefinitionsRequest(Mapping):
        pass
    
    class DescribeJobDefinitionsResponse(Mapping):
        pass
    
    class DescribeJobQueuesRequest(Mapping):
        pass
    
    class DescribeJobQueuesResponse(Mapping):
        pass
    
    class DescribeJobsRequest(Mapping):
        pass
    
    class DescribeJobsResponse(Mapping):
        pass
    
    class ListJobsRequest(Mapping):
        pass
    
    class ListJobsResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class RegisterJobDefinitionRequest(Mapping):
        pass
    
    class RegisterJobDefinitionResponse(Mapping):
        pass
    
    class ParametersMap(object):
        pass
    
    class ContainerProperties(Mapping):
        pass
    
    class NodeProperties(Mapping):
        pass
    
    class RetryStrategy(Mapping):
        pass
    
    class Boolean(object):
        pass
    
    class JobTimeout(Mapping):
        pass
    
    class PlatformCapability(object):
        pass
    
    class SubmitJobRequest(Mapping):
        pass
    
    class SubmitJobResponse(Mapping):
        pass
    
    class ArrayProperties(Mapping):
        pass
    
    class JobDependency(Mapping):
        pass
    
    class ContainerOverrides(Mapping):
        pass
    
    class NodeOverrides(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class TerminateJobRequest(Mapping):
        pass
    
    class TerminateJobResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateComputeEnvironmentRequest(Mapping):
        pass
    
    class UpdateComputeEnvironmentResponse(Mapping):
        pass
    
    class ComputeResourceUpdate(Mapping):
        pass
    
    class UpdateJobQueueRequest(Mapping):
        pass
    
    class UpdateJobQueueResponse(Mapping):
        pass
    
    def cancel_job(self, reason: str, jobId: str) -> CancelJobResponse:
        r"""Cancels a job in an AWS Batch job queue. Jobs that are in the <code>SUBMITTED</code>, <code>PENDING</code>, or <code>RUNNABLE</code> state are canceled. Jobs that have progressed to <code>STARTING</code> or <code>RUNNING</code> aren't canceled, but the API operation still succeeds, even if no job is canceled. These jobs must be terminated with the <a>TerminateJob</a> operation.

        :param self:
        :param reason:  A message to attach to the job that explains the reason for canceling it. This message is returned by future <a>DescribeJobs</a> operations on the job. This message is also recorded in the AWS Batch activity logs.<br/>jobId:  The AWS Batch job ID of the job to cancel.<br/>
        :return:         """
        pass

    def create_compute_environment(self, type: str, computeEnvironmentName: str, state: str=None, computeResources: ComputeResource=None, serviceRole: str=None, tags: TagrisTagsMap=None) -> CreateComputeEnvironmentResponse:
        r"""Creates an AWS Batch compute environment. You can create <code>MANAGED</code> or <code>UNMANAGED</code> compute environments. <code>MANAGED</code> compute environments can use Amazon EC2 or AWS Fargate resources. <code>UNMANAGED</code> compute environments can only use EC2 resources. In a managed compute environment, AWS Batch manages the capacity and instance types of the compute resources within the environment. This is based on the compute resource specification that you define or the <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html">launch template</a> that you specify when you create the compute environment. Either, you can choose to use EC2 On-Demand Instances and EC2 Spot Instances. Or, you can use Fargate and Fargate Spot capacity in your managed compute environment. You can optionally set a maximum price so that Spot Instances only launch when the Spot Instance price is less than a specified percentage of the On-Demand price. <note> Multi-node parallel jobs aren't supported on Spot Instances. </note> In an unmanaged compute environment, you can manage your own EC2 compute resources and have a lot of flexibility with how you configure your compute resources. For example, you can use custom AMIs. However, you must verify that each of your AMIs meet the Amazon ECS container instance AMI specification. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/container_instance_AMIs.html">container instance AMIs</a> in the <i>Amazon Elastic Container Service Developer Guide</i>. After you created your unmanaged compute environment, you can use the <a>DescribeComputeEnvironments</a> operation to find the Amazon ECS cluster that's associated with it. Then, launch your container instances into that Amazon ECS cluster. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_container_instance.html">Launching an Amazon ECS container instance</a> in the <i>Amazon Elastic Container Service Developer Guide</i>. <note> AWS Batch doesn't upgrade the AMIs in a compute environment after the environment is created. For example, it doesn't update the AMIs when a newer version of the Amazon ECS optimized AMI is available. Therefore, you're responsible for managing the guest operating system (including its updates and security patches) and any additional application software or utilities that you install on the compute resources. To use a new AMI for your AWS Batch jobs, complete these steps: <ol> <li> Create a new compute environment with the new AMI. </li> <li> Add the compute environment to an existing job queue. </li> <li> Remove the earlier compute environment from your job queue. </li> <li> Delete the earlier compute environment. </li> </ol> </note>

        :param self:
        :param tags:  The tags that you apply to the compute environment to help you categorize and organize your resources. Each tag consists of a key and an optional value. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html">Tagging AWS Resources</a> in <i>AWS General Reference</i>. These tags can be updated or removed using the <a href="https://docs.aws.amazon.com/batch/latest/APIReference/API_TagResource.html">TagResource</a> and <a href="https://docs.aws.amazon.com/batch/latest/APIReference/API_UntagResource.html">UntagResource</a> API operations. These tags don't propagate to the underlying compute resources.<br/>serviceRole:  The full Amazon Resource Name (ARN) of the IAM role that allows AWS Batch to make calls to other AWS services on your behalf. For more information, see <a href="https://docs.aws.amazon.com/batch/latest/userguide/service_IAM_role.html">AWS Batch service IAM role</a> in the <i>AWS Batch User Guide</i>. <important> If your account has already created the AWS Batch service-linked role, that role is used by default for your compute environment unless you specify a role here. If the AWS Batch service-linked role does not exist in your account, and no role is specified here, the service will try to create the AWS Batch service-linked role in your account. </important> If your specified role has a path other than <code>/</code>, then you must specify either the full role ARN (recommended) or prefix the role name with the path. For example, if a role with the name <code>bar</code> has a path of <code>/foo/</code> then you would specify <code>/foo/bar</code> as the role name. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-friendly-names">Friendly names and paths</a> in the <i>IAM User Guide</i>. <note> Depending on how you created your AWS Batch service role, its ARN might contain the <code>service-role</code> path prefix. When you only specify the name of the service role, AWS Batch assumes that your ARN doesn't use the <code>service-role</code> path prefix. Because of this, we recommend that you specify the full ARN of your service role when you create compute environments. </note><br/>computeResources:  Details about the compute resources managed by the compute environment. This parameter is required for managed compute environments. For more information, see <a href="https://docs.aws.amazon.com/batch/latest/userguide/compute_environments.html">Compute Environments</a> in the <i>AWS Batch User Guide</i>.:<br/>state:  The state of the compute environment. If the state is <code>ENABLED</code>, then the compute environment accepts jobs from a queue and can scale out automatically based on queues. If the state is <code>ENABLED</code>, then the AWS Batch scheduler can attempt to place jobs from an associated job queue on the compute resources within the environment. If the compute environment is managed, then it can scale its instances out or in automatically, based on the job queue demand. If the state is <code>DISABLED</code>, then the AWS Batch scheduler doesn't attempt to place jobs within the environment. Jobs in a <code>STARTING</code> or <code>RUNNING</code> state continue to progress normally. Managed compute environments in the <code>DISABLED</code> state don't scale out. However, they scale in to <code>minvCpus</code> value after instances become idle.<br/>type:  The type of the compute environment: <code>MANAGED</code> or <code>UNMANAGED</code>. For more information, see <a href="https://docs.aws.amazon.com/batch/latest/userguide/compute_environments.html">Compute Environments</a> in the <i>AWS Batch User Guide</i>.<br/>computeEnvironmentName:  The name for your compute environment. Up to 128 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ec2Configuration</i> Provides information used to select Amazon Machine Images (AMIs) for EC2 instances in the compute environment. If <code>Ec2Configuration</code> isn't specified, the default is <code>ECS_AL1</code>. <note> This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>launchTemplate</i> The launch template to use for your compute resources. Any other compute resource parameters that you specify in a <a>CreateComputeEnvironment</a> API operation override the same parameters in the launch template. You must specify either the launch template ID or launch template name in the request, but not both. For more information, see <a href="https://docs.aws.amazon.com/batch/latest/userguide/launch-templates.html">Launch Template Support</a> in the <i>AWS Batch User Guide</i>. <note> This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified. </note>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>launchTemplate</b>: The launch template to use for your compute resources. Any other compute resource parameters that you specify in a <a>CreateComputeEnvironment</a> API operation override the same parameters in the launch template. You must specify either the launch template ID or launch template name in the request, but not both. For more information, see <a href="https://docs.aws.amazon.com/batch/latest/userguide/launch-templates.html">Launch Template Support</a> in the <i>AWS Batch User Guide</i>. <note> This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>spotIamFleetRole</i> The Amazon Resource Name (ARN) of the Amazon EC2 Spot Fleet IAM role applied to a <code>SPOT</code> compute environment. This role is required if the allocation strategy set to <code>BEST_FIT</code> or if the allocation strategy isn't specified. For more information, see <a href="https://docs.aws.amazon.com/batch/latest/userguide/spot_fleet_IAM_role.html">Amazon EC2 Spot Fleet Role</a> in the <i>AWS Batch User Guide</i>. <note> This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified. </note> <important> To tag your Spot Instances on creation, the Spot Fleet IAM role specified here must use the newer <b>AmazonEC2SpotFleetTaggingRole</b> managed policy. The previously recommended <b>AmazonEC2SpotFleetRole</b> managed policy doesn't have the required permissions to tag Spot Instances. For more information, see <a href="https://docs.aws.amazon.com/batch/latest/userguide/troubleshooting.html#spot-instance-no-tag">Spot Instances not tagged on creation</a> in the <i>AWS Batch User Guide</i>. </important><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>bidPercentage</i> The maximum percentage that a Spot Instance price can be when compared with the On-Demand price for that instance type before instances are launched. For example, if your maximum percentage is 20%, then the Spot price must be less than 20% of the current On-Demand price for that Amazon EC2 instance. You always pay the lowest (market) price and never more than your maximum percentage. If you leave this field empty, the default value is 100% of the On-Demand price. <note> This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>placementGroup</i> The Amazon EC2 placement group to associate with your compute resources. If you intend to submit multi-node parallel jobs to your compute environment, you should consider creating a cluster placement group and associate it with your compute resources. This keeps your multi-node parallel job on a logical grouping of instances within a single Availability Zone with high network flow potential. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html">Placement Groups</a> in the <i>Amazon EC2 User Guide for Linux Instances</i>. <note> This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> Key-value pair tags to be applied to EC2 resources that are launched in the compute environment. For AWS Batch, these take the form of "String1": "String2", where String1 is the tag key and String2 is the tag value−for example, { "Name": "AWS Batch Instance - C4OnDemand" }. This is helpful for recognizing your AWS Batch instances in the Amazon EC2 console. These tags can't be updated or removed after the compute environment has been created; any changes require creating a new compute environment and removing the old compute environment. These tags aren't seen when using the AWS Batch <code>ListTagsForResource</code> API operation. <note> This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>instanceRole</i> The Amazon ECS instance profile applied to Amazon EC2 instances in a compute environment. You can specify the short name or full Amazon Resource Name (ARN) of an instance profile. For example, <code> <i>ecsInstanceRole</i> </code> or <code>arn:aws:iam::<i>&lt;aws_account_id&gt;</i>:instance-profile/<i>ecsInstanceRole</i> </code>. For more information, see <a href="https://docs.aws.amazon.com/batch/latest/userguide/instance_IAM_role.html">Amazon ECS Instance Role</a> in the <i>AWS Batch User Guide</i>. <note> This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ec2KeyPair</i> The Amazon EC2 key pair that's used for instances launched in the compute environment. You can use this key pair to log in to your instances with SSH. <note> This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>securityGroupIds</i> The Amazon EC2 security groups associated with instances launched in the compute environment. One or more security groups must be specified, either in <code>securityGroupIds</code> or using a launch template referenced in <code>launchTemplate</code>. This parameter is required for jobs running on Fargate resources and must contain at least one security group. Fargate doesn't support launch templates. If security groups are specified using both <code>securityGroupIds</code> and <code>launchTemplate</code>, the values in <code>securityGroupIds</code> is used.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>subnets</i> The VPC subnets into which the compute resources are launched. These subnets must be within the same VPC. Fargate compute resources can contain up to 16 subnets. For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html">VPCs and Subnets</a> in the <i>Amazon VPC User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>imageId</i> The Amazon Machine Image (AMI) ID used for instances launched in the compute environment. This parameter is overridden by the <code>imageIdOverride</code> member of the <code>Ec2Configuration</code> structure. <note> This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified. </note> <note> The AMI that you choose for a compute environment must match the architecture of the instance types that you intend to use for that compute environment. For example, if your compute environment uses A1 instance types, the compute resource AMI that you choose must support ARM instances. Amazon ECS vends both x86 and ARM versions of the Amazon ECS-optimized Amazon Linux 2 AMI. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html#ecs-optimized-ami-linux-variants.html">Amazon ECS-optimized Amazon Linux 2 AMI</a> in the <i>Amazon Elastic Container Service Developer Guide</i>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>instanceTypes</i> The instances types that can be launched. You can specify instance families to launch any instance type within those families (for example, <code>c5</code> or <code>p3</code>), or you can specify specific sizes within a family (such as <code>c5.8xlarge</code>). You can also choose <code>optimal</code> to select instance types (from the C4, M4, and R4 instance families) that match the demand of your job queues. <note> This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified. </note> <note> When you create a compute environment, the instance types that you select for the compute environment must share the same architecture. For example, you can't mix x86 and ARM instances in the same compute environment. </note> <note> Currently, <code>optimal</code> uses instance types from the C4, M4, and R4 instance families. In Regions that don't have instance types from those instance families, instance types from the C5, M5. and R5 instance families are used. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>desiredvCpus</i> The desired number of Amazon EC2 vCPUS in the compute environment. AWS Batch modifies this value between the minimum and maximum values, based on job queue demand. <note> This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>maxvCpus</i> The maximum number of Amazon EC2 vCPUs that a compute environment can reach. <note> With both <code>BEST_FIT_PROGRESSIVE</code> and <code>SPOT_CAPACITY_OPTIMIZED</code> allocation strategies, AWS Batch might need to exceed <code>maxvCpus</code> to meet your capacity requirements. In this event, AWS Batch never exceeds <code>maxvCpus</code> by more than a single instance. For example, no more than a single instance from among those specified in your compute environment is allocated. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>minvCpus</i> The minimum number of Amazon EC2 vCPUs that an environment should maintain (even if the compute environment is <code>DISABLED</code>). <note> This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>allocationStrategy</i> The allocation strategy to use for the compute resource if not enough instances of the best fitting instance type can be allocated. This might be because of availability of the instance type in the Region or <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-resource-limits.html">Amazon EC2 service limits</a>. For more information, see <a href="https://docs.aws.amazon.com/batch/latest/userguide/allocation-strategies.html">Allocation Strategies</a> in the <i>AWS Batch User Guide</i>. <note> This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified. </note> <dl> <dt>BEST_FIT (default)</dt> <dd> AWS Batch selects an instance type that best fits the needs of the jobs with a preference for the lowest-cost instance type. If additional instances of the selected instance type aren't available, AWS Batch waits for the additional instances to be available. If there aren't enough instances available, or if the user is hitting <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-resource-limits.html">Amazon EC2 service limits</a> then additional jobs aren't run until the currently running jobs have completed. This allocation strategy keeps costs lower but can limit scaling. If you are using Spot Fleets with <code>BEST_FIT</code> then the Spot Fleet IAM Role must be specified. </dd> <dt>BEST_FIT_PROGRESSIVE</dt> <dd> AWS Batch will select additional instance types that are large enough to meet the requirements of the jobs in the queue, with a preference for instance types with a lower cost per unit vCPU. If additional instances of the previously selected instance types aren't available, AWS Batch will select new instance types. </dd> <dt>SPOT_CAPACITY_OPTIMIZED</dt> <dd> AWS Batch will select one or more instance types that are large enough to meet the requirements of the jobs in the queue, with a preference for instance types that are less likely to be interrupted. This allocation strategy is only available for Spot Instance compute resources. </dd> </dl> With both <code>BEST_FIT_PROGRESSIVE</code> and <code>SPOT_CAPACITY_OPTIMIZED</code> strategies, AWS Batch might need to go above <code>maxvCpus</code> to meet your capacity requirements. In this event, AWS Batch never exceeds <code>maxvCpus</code> by more than a single instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of compute environment: <code>EC2</code>, <code>SPOT</code>, <code>FARGATE</code>, or <code>FARGATE_SPOT</code>. For more information, see <a href="https://docs.aws.amazon.com/batch/latest/userguide/compute_environments.html">Compute Environments</a> in the <i>AWS Batch User Guide</i>.  If you choose <code>SPOT</code>, you must also specify an Amazon EC2 Spot Fleet role with the <code>spotIamFleetRole</code> parameter. For more information, see <a href="https://docs.aws.amazon.com/batch/latest/userguide/spot_fleet_IAM_role.html">Amazon EC2 Spot Fleet role</a> in the <i>AWS Batch User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The version number of the launch template, <code>$Latest</code>, or <code>$Default</code>. If the value is <code>$Latest</code>, the latest version of the launch template is used. If the value is <code>$Default</code>, the default version of the launch template is used. <important> After the compute environment is created, the launch template version used will not be changed, even if the <code>$Default</code> or <code>$Latest</code> version for the launch template is updated. To use a new launch template version, create a new compute environment, add the new compute environment to the existing job queue, remove the old compute environment from the job queue, and delete the old compute environment. </important> Default: <code>$Default</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>launchTemplateName</i> The name of the launch template.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>launchTemplateId</i> The ID of the launch template.<br/>
        :return: computeEnvironmentArn:  The Amazon Resource Name (ARN) of the compute environment.<br/>computeEnvironmentName:  The name of the compute environment. Up to 128 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed.<br/>        """
        pass

    def create_job_queue(self, computeEnvironmentOrder: List[ComputeEnvironmentOrder], priority: int, jobQueueName: str, state: str=None, tags: TagrisTagsMap=None) -> CreateJobQueueResponse:
        r"""Creates an AWS Batch job queue. When you create a job queue, you associate one or more compute environments to the queue and assign an order of preference for the compute environments. You also set a priority to the job queue that determines the order that the AWS Batch scheduler places jobs onto its associated compute environments. For example, if a compute environment is associated with more than one job queue, the job queue with a higher priority is given preference for scheduling jobs to that compute environment.

        :param self:
        :param tags:  The tags that you apply to the job queue to help you categorize and organize your resources. Each tag consists of a key and an optional value. For more information, see <a href="https://docs.aws.amazon.com/batch/latest/userguide/using-tags.html">Tagging your AWS Batch resources</a> in <i>AWS Batch User Guide</i>.<br/>computeEnvironmentOrder:  The set of compute environments mapped to a job queue and their order relative to each other. The job scheduler uses this parameter to determine which compute environment should run a specific job. Compute environments must be in the <code>VALID</code> state before you can associate them with a job queue. You can associate up to three compute environments with a job queue. All of the compute environments must be either EC2 (<code>EC2</code> or <code>SPOT</code>) or Fargate (<code>FARGATE</code> or <code>FARGATE_SPOT</code>); EC2 and Fargate compute environments can't be mixed. <note> All compute environments that are associated with a job queue must share the same architecture. AWS Batch doesn't support mixing compute environment architecture types in a single job queue. </note><br/>priority:  The priority of the job queue. Job queues with a higher priority (or a higher integer value for the <code>priority</code> parameter) are evaluated first when associated with the same compute environment. Priority is determined in descending order. For example, a job queue with a priority value of <code>10</code> is given scheduling preference over a job queue with a priority value of <code>1</code>. All of the compute environments must be either EC2 (<code>EC2</code> or <code>SPOT</code>) or Fargate (<code>FARGATE</code> or <code>FARGATE_SPOT</code>); EC2 and Fargate compute environments cannot be mixed.<br/>state:  The state of the job queue. If the job queue state is <code>ENABLED</code>, it is able to accept jobs. If the job queue state is <code>DISABLED</code>, new jobs can't be added to the queue, but jobs already in the queue can finish.<br/>jobQueueName:  The name of the job queue. Up to 128 letters (uppercase and lowercase), numbers, and underscores are allowed.<br/>
        :return: jobQueueArn:  The Amazon Resource Name (ARN) of the job queue.<br/>jobQueueName:  The name of the job queue.<br/>        """
        pass

    def delete_compute_environment(self, computeEnvironment: str) -> DeleteComputeEnvironmentResponse:
        r"""Deletes an AWS Batch compute environment. Before you can delete a compute environment, you must set its state to <code>DISABLED</code> with the <a>UpdateComputeEnvironment</a> API operation and disassociate it from any job queues with the <a>UpdateJobQueue</a> API operation. Compute environments that use AWS Fargate resources must terminate all active jobs on that compute environment before deleting the compute environment. If this isn't done, the compute environment enters an invalid state.

        :param self:
        :param computeEnvironment:  The name or Amazon Resource Name (ARN) of the compute environment to delete.<br/>
        :return:         """
        pass

    def delete_job_queue(self, jobQueue: str) -> DeleteJobQueueResponse:
        r"""Deletes the specified job queue. You must first disable submissions for a queue with the <a>UpdateJobQueue</a> operation. All jobs in the queue are eventually terminated when you delete a job queue. The jobs are terminated at a rate of about 16 jobs each second. It's not necessary to disassociate compute environments from a queue before submitting a <code>DeleteJobQueue</code> request.

        :param self:
        :param jobQueue:  The short name or full Amazon Resource Name (ARN) of the queue to delete.<br/>
        :return:         """
        pass

    def deregister_job_definition(self, jobDefinition: str) -> DeregisterJobDefinitionResponse:
        r"""Deregisters an AWS Batch job definition. Job definitions are permanently deleted after 180 days.

        :param self:
        :param jobDefinition:  The name and revision (<code>name:revision</code>) or full Amazon Resource Name (ARN) of the job definition to deregister.<br/>
        :return:         """
        pass

    def describe_compute_environments(self, computeEnvironments: List[String]=None, maxResults: int=None, nextToken: str=None) -> DescribeComputeEnvironmentsResponse:
        r"""Describes one or more of your compute environments. If you're using an unmanaged compute environment, you can use the <code>DescribeComputeEnvironment</code> operation to determine the <code>ecsClusterArn</code> that you should launch your Amazon ECS container instances into.

        :param self:
        :param nextToken:  The <code>nextToken</code> value returned from a previous paginated <code>DescribeComputeEnvironments</code> request where <code>maxResults</code> was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the <code>nextToken</code> value. This value is <code>null</code> when there are no more results to return. <note> This token should be treated as an opaque identifier that's only used to retrieve the next items in a list and not for other programmatic purposes. </note><br/>maxResults:  The maximum number of cluster results returned by <code>DescribeComputeEnvironments</code> in paginated output. When this parameter is used, <code>DescribeComputeEnvironments</code> only returns <code>maxResults</code> results in a single page along with a <code>nextToken</code> response element. The remaining results of the initial request can be seen by sending another <code>DescribeComputeEnvironments</code> request with the returned <code>nextToken</code> value. This value can be between 1 and 100. If this parameter isn't used, then <code>DescribeComputeEnvironments</code> returns up to 100 results and a <code>nextToken</code> value if applicable.<br/>computeEnvironments:  A list of up to 100 compute environment names or full Amazon Resource Name (ARN) entries.<br/>
        :return: nextToken:  The <code>nextToken</code> value to include in a future <code>DescribeComputeEnvironments</code> request. When the results of a <code>DescribeJobDefinitions</code> request exceed <code>maxResults</code>, this value can be used to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>computeEnvironments:  The list of compute environments.<br/>        """
        pass

    def describe_job_definitions(self, jobDefinitions: List[String]=None, maxResults: int=None, jobDefinitionName: str=None, status: str=None, nextToken: str=None) -> DescribeJobDefinitionsResponse:
        r"""Describes a list of job definitions. You can specify a <code>status</code> (such as <code>ACTIVE</code>) to only return job definitions that match that status.

        :param self:
        :param nextToken:  The <code>nextToken</code> value returned from a previous paginated <code>DescribeJobDefinitions</code> request where <code>maxResults</code> was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the <code>nextToken</code> value. This value is <code>null</code> when there are no more results to return. <note> This token should be treated as an opaque identifier that's only used to retrieve the next items in a list and not for other programmatic purposes. </note><br/>status:  The status used to filter job definitions.<br/>jobDefinitionName:  The name of the job definition to describe.<br/>maxResults:  The maximum number of results returned by <code>DescribeJobDefinitions</code> in paginated output. When this parameter is used, <code>DescribeJobDefinitions</code> only returns <code>maxResults</code> results in a single page and a <code>nextToken</code> response element. The remaining results of the initial request can be seen by sending another <code>DescribeJobDefinitions</code> request with the returned <code>nextToken</code> value. This value can be between 1 and 100. If this parameter isn't used, then <code>DescribeJobDefinitions</code> returns up to 100 results and a <code>nextToken</code> value if applicable.<br/>jobDefinitions:  A list of up to 100 job definition names or full Amazon Resource Name (ARN) entries.<br/>
        :return: nextToken:  The <code>nextToken</code> value to include in a future <code>DescribeJobDefinitions</code> request. When the results of a <code>DescribeJobDefinitions</code> request exceed <code>maxResults</code>, this value can be used to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>jobDefinitions:  The list of job definitions.<br/>        """
        pass

    def describe_job_queues(self, jobQueues: List[String]=None, maxResults: int=None, nextToken: str=None) -> DescribeJobQueuesResponse:
        r"""Describes one or more of your job queues.

        :param self:
        :param nextToken:  The <code>nextToken</code> value returned from a previous paginated <code>DescribeJobQueues</code> request where <code>maxResults</code> was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the <code>nextToken</code> value. This value is <code>null</code> when there are no more results to return. <note> This token should be treated as an opaque identifier that's only used to retrieve the next items in a list and not for other programmatic purposes. </note><br/>maxResults:  The maximum number of results returned by <code>DescribeJobQueues</code> in paginated output. When this parameter is used, <code>DescribeJobQueues</code> only returns <code>maxResults</code> results in a single page and a <code>nextToken</code> response element. The remaining results of the initial request can be seen by sending another <code>DescribeJobQueues</code> request with the returned <code>nextToken</code> value. This value can be between 1 and 100. If this parameter isn't used, then <code>DescribeJobQueues</code> returns up to 100 results and a <code>nextToken</code> value if applicable.<br/>jobQueues:  A list of up to 100 queue names or full queue Amazon Resource Name (ARN) entries.<br/>
        :return: nextToken:  The <code>nextToken</code> value to include in a future <code>DescribeJobQueues</code> request. When the results of a <code>DescribeJobQueues</code> request exceed <code>maxResults</code>, this value can be used to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>jobQueues:  The list of job queues.<br/>        """
        pass

    def describe_jobs(self, jobs: List[String]) -> DescribeJobsResponse:
        r"""Describes a list of AWS Batch jobs.

        :param self:
        :param jobs:  A list of up to 100 job IDs.<br/>
        :return: jobs:  The list of jobs.<br/>        """
        pass

    def list_jobs(self, jobQueue: str=None, arrayJobId: str=None, multiNodeJobId: str=None, jobStatus: str=None, maxResults: int=None, nextToken: str=None) -> ListJobsResponse:
        r"""Returns a list of AWS Batch jobs. You must specify only one of the following items: <ul> <li> A job queue ID to return a list of jobs in that job queue </li> <li> A multi-node parallel job ID to return a list of nodes for that job </li> <li> An array job ID to return a list of the children for that job </li> </ul> You can filter the results by job status with the <code>jobStatus</code> parameter. If you don't specify a status, only <code>RUNNING</code> jobs are returned.

        :param self:
        :param nextToken:  The <code>nextToken</code> value returned from a previous paginated <code>ListJobs</code> request where <code>maxResults</code> was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the <code>nextToken</code> value. This value is <code>null</code> when there are no more results to return. <note> This token should be treated as an opaque identifier that's only used to retrieve the next items in a list and not for other programmatic purposes. </note><br/>maxResults:  The maximum number of results returned by <code>ListJobs</code> in paginated output. When this parameter is used, <code>ListJobs</code> only returns <code>maxResults</code> results in a single page and a <code>nextToken</code> response element. The remaining results of the initial request can be seen by sending another <code>ListJobs</code> request with the returned <code>nextToken</code> value. This value can be between 1 and 100. If this parameter isn't used, then <code>ListJobs</code> returns up to 100 results and a <code>nextToken</code> value if applicable.<br/>jobStatus:  The job status used to filter jobs in the specified queue. If you don't specify a status, only <code>RUNNING</code> jobs are returned.<br/>multiNodeJobId:  The job ID for a multi-node parallel job. Specifying a multi-node parallel job ID with this parameter lists all nodes that are associated with the specified job.<br/>arrayJobId:  The job ID for an array job. Specifying an array job ID with this parameter lists all child jobs from within the specified array.<br/>jobQueue:  The name or full Amazon Resource Name (ARN) of the job queue used to list jobs.<br/>
        :return: nextToken:  The <code>nextToken</code> value to include in a future <code>ListJobs</code> request. When the results of a <code>ListJobs</code> request exceed <code>maxResults</code>, this value can be used to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>jobSummaryList:  A list of job summaries that match the request.<br/>        """
        pass

    def list_tags_for_resource(self, resourceArn: str) -> ListTagsForResourceResponse:
        r"""Lists the tags for an AWS Batch resource. AWS Batch resources that support tags are compute environments, jobs, job definitions, and job queues. ARNs for child jobs of array and multi-node parallel (MNP) jobs are not supported.

        :param self:
        :param resourceArn:  The Amazon Resource Name (ARN) that identifies the resource that tags are listed for. AWS Batch resources that support tags are compute environments, jobs, job definitions, and job queues. ARNs for child jobs of array and multi-node parallel (MNP) jobs are not supported.<br/>
        :return: tags:  The tags for the resource.<br/>        """
        pass

    def register_job_definition(self, type: str, jobDefinitionName: str, parameters: ParametersMap=None, containerProperties: ContainerProperties=None, nodeProperties: NodeProperties=None, retryStrategy: RetryStrategy=None, propagateTags: Boolean=None, timeout: JobTimeout=None, tags: TagrisTagsMap=None, platformCapabilities: List[PlatformCapability]=None) -> RegisterJobDefinitionResponse:
        r"""Registers an AWS Batch job definition.

        :param self:
        :param platformCapabilities:  The platform capabilities required by the job definition. If no value is specified, it defaults to <code>EC2</code>. To run the job on Fargate resources, specify <code>FARGATE</code>.<br/>tags:  The tags that you apply to the job definition to help you categorize and organize your resources. Each tag consists of a key and an optional value. For more information, see <a href="https://docs.aws.amazon.com/batch/latest/userguide/using-tags.html">Tagging AWS Resources</a> in <i>AWS Batch User Guide</i>.<br/>timeout:  The timeout configuration for jobs that are submitted with this job definition, after which AWS Batch terminates your jobs if they have not finished. If a job is terminated due to a timeout, it isn't retried. The minimum value for the timeout is 60 seconds. Any timeout configuration that's specified during a <a>SubmitJob</a> operation overrides the timeout configuration defined here. For more information, see <a href="https://docs.aws.amazon.com/batch/latest/userguide/job_timeouts.html">Job Timeouts</a> in the <i>AWS Batch User Guide</i>.:<br/>propagateTags:  Specifies whether to propagate the tags from the job or job definition to the corresponding Amazon ECS task. If no value is specified, the tags are not propagated. Tags can only be propagated to the tasks during task creation. For tags with the same name, job tags are given priority over job definitions tags. If the total number of combined tags from the job and job definition is over 50, the job is moved to the <code>FAILED</code> state.<br/>retryStrategy:  The retry strategy to use for failed jobs that are submitted with this job definition. Any retry strategy that's specified during a <a>SubmitJob</a> operation overrides the retry strategy defined here. If a job is terminated due to a timeout, it isn't retried.:<br/>nodeProperties:  An object with various properties specific to multi-node parallel jobs. If you specify node properties for a job, it becomes a multi-node parallel job. For more information, see <a href="https://docs.aws.amazon.com/batch/latest/userguide/multi-node-parallel-jobs.html">Multi-node Parallel Jobs</a> in the <i>AWS Batch User Guide</i>. If the job definition's <code>type</code> parameter is <code>container</code>, then you must specify either <code>containerProperties</code> or <code>nodeProperties</code>. <note> If the job runs on Fargate resources, then you must not specify <code>nodeProperties</code>; use <code>containerProperties</code> instead. </note>:<br/>containerProperties:  An object with various properties specific to single-node container-based jobs. If the job definition's <code>type</code> parameter is <code>container</code>, then you must specify either <code>containerProperties</code> or <code>nodeProperties</code>. <note> If the job runs on Fargate resources, then you must not specify <code>nodeProperties</code>; use only <code>containerProperties</code>. </note>:<br/>parameters:  Default parameter substitution placeholders to set in the job definition. Parameters are specified as a key-value pair mapping. Parameters in a <code>SubmitJob</code> request override any corresponding parameter defaults from the job definition.<br/>type:  The type of job definition. For more information about multi-node parallel jobs, see <a href="https://docs.aws.amazon.com/batch/latest/userguide/multi-node-job-def.html">Creating a multi-node parallel job definition</a> in the <i>AWS Batch User Guide</i>. <note> If the job is run on Fargate resources, then <code>multinode</code> isn't supported. </note><br/>jobDefinitionName:  The name of the job definition to register. Up to 128 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>fargatePlatformConfiguration</i> The platform configuration for jobs running on Fargate resources. Jobs running on EC2 resources must not specify this parameter.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>fargatePlatformConfiguration</b>: The platform configuration for jobs running on Fargate resources. Jobs running on EC2 resources must not specify this parameter.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>networkConfiguration</i> The network configuration for jobs running on Fargate resources. Jobs running on EC2 resources must not specify this parameter.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>networkConfiguration</b>: The network configuration for jobs running on Fargate resources. Jobs running on EC2 resources must not specify this parameter.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>secrets</i> The secrets for the container. For more information, see <a href="https://docs.aws.amazon.com/batch/latest/userguide/specifying-sensitive-data.html">Specifying sensitive data</a> in the <i>AWS Batch User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>logConfiguration</i> The log configuration specification for the container. This parameter maps to <code>LogConfig</code> in the <a href="https://docs.docker.com/engine/api/v1.23/#create-a-container">Create a container</a> section of the <a href="https://docs.docker.com/engine/api/v1.23/">Docker Remote API</a> and the <code>--log-driver</code> option to <a href="https://docs.docker.com/engine/reference/run/">docker run</a>. By default, containers use the same logging driver that the Docker daemon uses. However the container might use a different logging driver than the Docker daemon by specifying a log driver with this parameter in the container definition. To use a different logging driver for a container, the log system must be configured properly on the container instance (or on a different log server for remote logging options). For more information on the options for different supported log drivers, see <a href="https://docs.docker.com/engine/admin/logging/overview/">Configure logging drivers</a> in the Docker documentation. <note> AWS Batch currently supports a subset of the logging drivers available to the Docker daemon (shown in the <a>LogConfiguration</a> data type). </note> This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log into your container instance and run the following command: <code>sudo docker version | grep "Server API version"</code>  <note> The Amazon ECS container agent running on a container instance must register the logging drivers available on that instance with the <code>ECS_AVAILABLE_LOGGING_DRIVERS</code> environment variable before containers placed on that instance can use these log configuration options. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html">Amazon ECS Container Agent Configuration</a> in the <i>Amazon Elastic Container Service Developer Guide</i>. </note>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>logConfiguration</b>: The log configuration specification for the container. This parameter maps to <code>LogConfig</code> in the <a href="https://docs.docker.com/engine/api/v1.23/#create-a-container">Create a container</a> section of the <a href="https://docs.docker.com/engine/api/v1.23/">Docker Remote API</a> and the <code>--log-driver</code> option to <a href="https://docs.docker.com/engine/reference/run/">docker run</a>. By default, containers use the same logging driver that the Docker daemon uses. However the container might use a different logging driver than the Docker daemon by specifying a log driver with this parameter in the container definition. To use a different logging driver for a container, the log system must be configured properly on the container instance (or on a different log server for remote logging options). For more information on the options for different supported log drivers, see <a href="https://docs.docker.com/engine/admin/logging/overview/">Configure logging drivers</a> in the Docker documentation. <note> AWS Batch currently supports a subset of the logging drivers available to the Docker daemon (shown in the <a>LogConfiguration</a> data type). </note> This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log into your container instance and run the following command: <code>sudo docker version | grep "Server API version"</code>  <note> The Amazon ECS container agent running on a container instance must register the logging drivers available on that instance with the <code>ECS_AVAILABLE_LOGGING_DRIVERS</code> environment variable before containers placed on that instance can use these log configuration options. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html">Amazon ECS Container Agent Configuration</a> in the <i>Amazon Elastic Container Service Developer Guide</i>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>linuxParameters</i> Linux-specific modifications that are applied to the container, such as details for device mappings.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>linuxParameters</b>: Linux-specific modifications that are applied to the container, such as details for device mappings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceRequirements</i> The type and amount of resources to assign to a container. The supported resources include <code>GPU</code>, <code>MEMORY</code>, and <code>VCPU</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>instanceType</i> The instance type to use for a multi-node parallel job. All node groups in a multi-node parallel job must use the same instance type. <note> This parameter isn't applicable to single-node container jobs or for jobs that run on Fargate resources and shouldn't be provided. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>user</i> The user name to use inside the container. This parameter maps to <code>User</code> in the <a href="https://docs.docker.com/engine/api/v1.23/#create-a-container">Create a container</a> section of the <a href="https://docs.docker.com/engine/api/v1.23/">Docker Remote API</a> and the <code>--user</code> option to <a href="https://docs.docker.com/engine/reference/run/">docker run</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ulimits</i> A list of <code>ulimits</code> to set in the container. This parameter maps to <code>Ulimits</code> in the <a href="https://docs.docker.com/engine/api/v1.23/#create-a-container">Create a container</a> section of the <a href="https://docs.docker.com/engine/api/v1.23/">Docker Remote API</a> and the <code>--ulimit</code> option to <a href="https://docs.docker.com/engine/reference/run/">docker run</a>. <note> This parameter isn't applicable to jobs running on Fargate resources and shouldn't be provided. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>privileged</i> When this parameter is true, the container is given elevated permissions on the host container instance (similar to the <code>root</code> user). This parameter maps to <code>Privileged</code> in the <a href="https://docs.docker.com/engine/api/v1.23/#create-a-container">Create a container</a> section of the <a href="https://docs.docker.com/engine/api/v1.23/">Docker Remote API</a> and the <code>--privileged</code> option to <a href="https://docs.docker.com/engine/reference/run/">docker run</a>. The default value is false. <note> This parameter isn't applicable to jobs running on Fargate resources and shouldn't be provided, or specified as false. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>readonlyRootFilesystem</i> When this parameter is true, the container is given read-only access to its root file system. This parameter maps to <code>ReadonlyRootfs</code> in the <a href="https://docs.docker.com/engine/api/v1.23/#create-a-container">Create a container</a> section of the <a href="https://docs.docker.com/engine/api/v1.23/">Docker Remote API</a> and the <code>--read-only</code> option to <code>docker run</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>mountPoints</i> The mount points for data volumes in your container. This parameter maps to <code>Volumes</code> in the <a href="https://docs.docker.com/engine/api/v1.23/#create-a-container">Create a container</a> section of the <a href="https://docs.docker.com/engine/api/v1.23/">Docker Remote API</a> and the <code>--volume</code> option to <a href="https://docs.docker.com/engine/reference/run/">docker run</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>environment</i> The environment variables to pass to a container. This parameter maps to <code>Env</code> in the <a href="https://docs.docker.com/engine/api/v1.23/#create-a-container">Create a container</a> section of the <a href="https://docs.docker.com/engine/api/v1.23/">Docker Remote API</a> and the <code>--env</code> option to <a href="https://docs.docker.com/engine/reference/run/">docker run</a>. <important> We don't recommend using plaintext environment variables for sensitive information, such as credential data. </important> <note> Environment variables must not start with <code>AWS_BATCH</code>; this naming convention is reserved for variables that are set by the AWS Batch service. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>volumes</i> A list of data volumes used in a job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>executionRoleArn</i> The Amazon Resource Name (ARN) of the execution role that AWS Batch can assume. For jobs that run on Fargate resources, you must provide an execution role. For more information, see <a href="https://docs.aws.amazon.com/batch/latest/userguide/execution-IAM-role.html">AWS Batch execution IAM role</a> in the <i>AWS Batch User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>jobRoleArn</i> The Amazon Resource Name (ARN) of the IAM role that the container can assume for AWS permissions. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html">IAM Roles for Tasks</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>command</i> The command that's passed to the container. This parameter maps to <code>Cmd</code> in the <a href="https://docs.docker.com/engine/api/v1.23/#create-a-container">Create a container</a> section of the <a href="https://docs.docker.com/engine/api/v1.23/">Docker Remote API</a> and the <code>COMMAND</code> parameter to <a href="https://docs.docker.com/engine/reference/run/">docker run</a>. For more information, see <a href="https://docs.docker.com/engine/reference/builder/#cmd">https://docs.docker.com/engine/reference/builder/#cmd</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>memory</i> This parameter indicates the memory hard limit (in MiB) for a container. If your container attempts to exceed the specified number, it is terminated. You must specify at least 4 MiB of memory for a job using this parameter. The memory hard limit can be specified in several places. It must be specified for each node at least once. This parameter maps to <code>Memory</code> in the <a href="https://docs.docker.com/engine/api/v1.23/#create-a-container">Create a container</a> section of the <a href="https://docs.docker.com/engine/api/v1.23/">Docker Remote API</a> and the <code>--memory</code> option to <a href="https://docs.docker.com/engine/reference/run/">docker run</a>. This parameter is supported on EC2 resources but isn't supported on Fargate resources. For Fargate resources, you should specify the memory requirement using <code>resourceRequirement</code>. You can do this for EC2 resources. <note> If you're trying to maximize your resource utilization by providing your jobs as much memory as possible for a particular instance type, see <a href="https://docs.aws.amazon.com/batch/latest/userguide/memory-management.html">Memory Management</a> in the <i>AWS Batch User Guide</i>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>vcpus</i> The number of vCPUs reserved for the job. Each vCPU is equivalent to 1,024 CPU shares. This parameter maps to <code>CpuShares</code> in the <a href="https://docs.docker.com/engine/api/v1.23/#create-a-container">Create a container</a> section of the <a href="https://docs.docker.com/engine/api/v1.23/">Docker Remote API</a> and the <code>--cpu-shares</code> option to <a href="https://docs.docker.com/engine/reference/run/">docker run</a>. The number of vCPUs must be specified but can be be specified in several places. You must specify it at least once for each node. This parameter is supported on EC2 resources but isn't supported for jobs that run on Fargate resources. For these resources, use <code>resourceRequirement</code> instead. You can use this parameter or <code>resourceRequirements</code> structure but not both. <note> This parameter isn't applicable to jobs running on Fargate resources and shouldn't be provided. For jobs that run on Fargate resources, you must specify the vCPU requirement for the job using <code>resourceRequirements</code>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>image</i> The image used to start a container. This string is passed directly to the Docker daemon. Images in the Docker Hub registry are available by default. Other repositories are specified with <code> <i>repository-url</i>/<i>image</i>:<i>tag</i> </code>. Up to 255 letters (uppercase and lowercase), numbers, hyphens, underscores, colons, periods, forward slashes, and number signs are allowed. This parameter maps to <code>Image</code> in the <a href="https://docs.docker.com/engine/api/v1.23/#create-a-container">Create a container</a> section of the <a href="https://docs.docker.com/engine/api/v1.23/">Docker Remote API</a> and the <code>IMAGE</code> parameter of <a href="https://docs.docker.com/engine/reference/run/">docker run</a>. <note> Docker image architecture must match the processor architecture of the compute resources that they're scheduled on. For example, ARM-based Docker images can only run on ARM-based compute resources. </note> <ul> <li> Images in Amazon ECR repositories use the full registry and repository URI (for example, <code>012345678910.dkr.ecr.&lt;region-name&gt;.amazonaws.com/&lt;repository-name&gt;</code>). </li> <li> Images in official repositories on Docker Hub use a single name (for example, <code>ubuntu</code> or <code>mongo</code>). </li> <li> Images in other repositories on Docker Hub are qualified with an organization name (for example, <code>amazon/amazon-ecs-agent</code>). </li> <li> Images in other online repositories are qualified further by a domain name (for example, <code>quay.io/assemblyline/ubuntu</code>). </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>swappiness</i> This allows you to tune a container's memory swappiness behavior. A <code>swappiness</code> value of <code>0</code> causes swapping not to happen unless absolutely necessary. A <code>swappiness</code> value of <code>100</code> causes pages to be swapped very aggressively. Accepted values are whole numbers between <code>0</code> and <code>100</code>. If the <code>swappiness</code> parameter isn't specified, a default value of <code>60</code> is used. If a value isn't specified for <code>maxSwap</code> then this parameter is ignored. If <code>maxSwap</code> is set to 0, the container doesn't use swap. This parameter maps to the <code>--memory-swappiness</code> option to <a href="https://docs.docker.com/engine/reference/run/">docker run</a>. Consider the following when you use a per-container swap configuration. <ul> <li> Swap space must be enabled and allocated on the container instance for the containers to use. <note> The Amazon ECS optimized AMIs don't have swap enabled by default. You must enable swap on the instance to use this feature. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-store-swap-volumes.html">Instance Store Swap Volumes</a> in the <i>Amazon EC2 User Guide for Linux Instances</i> or <a href="http://aws.amazon.com/premiumsupport/knowledge-center/ec2-memory-swap-file/">How do I allocate memory to work as swap space in an Amazon EC2 instance by using a swap file?</a>  </note> </li> <li> The swap space parameters are only supported for job definitions using EC2 resources. </li> <li> If the <code>maxSwap</code> and <code>swappiness</code> parameters are omitted from a job definition, each container will have a default <code>swappiness</code> value of 60, and the total swap usage will be limited to two times the memory reservation of the container. </li> </ul> <note> This parameter isn't applicable to jobs running on Fargate resources and shouldn't be provided. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>maxSwap</i> The total amount of swap memory (in MiB) a container can use. This parameter is translated to the <code>--memory-swap</code> option to <a href="https://docs.docker.com/engine/reference/run/">docker run</a> where the value is the sum of the container memory plus the <code>maxSwap</code> value. For more information, see <a href="https://docs.docker.com/config/containers/resource_constraints/#--memory-swap-details"> <code>--memory-swap</code> details</a> in the Docker documentation. If a <code>maxSwap</code> value of <code>0</code> is specified, the container doesn't use swap. Accepted values are <code>0</code> or any positive integer. If the <code>maxSwap</code> parameter is omitted, the container doesn't use the swap configuration for the container instance it is running on. A <code>maxSwap</code> value must be set for the <code>swappiness</code> parameter to be used. <note> This parameter isn't applicable to jobs running on Fargate resources and shouldn't be provided. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>tmpfs</i> The container path, mount options, and size (in MiB) of the tmpfs mount. This parameter maps to the <code>--tmpfs</code> option to <a href="https://docs.docker.com/engine/reference/run/">docker run</a>. <note> This parameter isn't applicable to jobs running on Fargate resources and shouldn't be provided. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>sharedMemorySize</i> The value for the size (in MiB) of the <code>/dev/shm</code> volume. This parameter maps to the <code>--shm-size</code> option to <a href="https://docs.docker.com/engine/reference/run/">docker run</a>. <note> This parameter isn't applicable to jobs running on Fargate resources and shouldn't be provided. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>initProcessEnabled</i> If true, run an <code>init</code> process inside the container that forwards signals and reaps processes. This parameter maps to the <code>--init</code> option to <a href="https://docs.docker.com/engine/reference/run/">docker run</a>. This parameter requires version 1.25 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log into your container instance and run the following command: <code>sudo docker version | grep "Server API version"</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>devices</i> Any host devices to expose to the container. This parameter maps to <code>Devices</code> in the <a href="https://docs.docker.com/engine/api/v1.23/#create-a-container">Create a container</a> section of the <a href="https://docs.docker.com/engine/api/v1.23/">Docker Remote API</a> and the <code>--device</code> option to <a href="https://docs.docker.com/engine/reference/run/">docker run</a>. <note> This parameter isn't applicable to jobs running on Fargate resources and shouldn't be provided. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>secretOptions</i> The secrets to pass to the log configuration. For more information, see <a href="https://docs.aws.amazon.com/batch/latest/userguide/specifying-sensitive-data.html">Specifying Sensitive Data</a> in the <i>AWS Batch User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>options</i> The configuration options to send to the log driver. This parameter requires version 1.19 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log into your container instance and run the following command: <code>sudo docker version | grep "Server API version"</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>logDriver</i> The log driver to use for the container. The valid values listed for this parameter are log drivers that the Amazon ECS container agent can communicate with by default. The supported log drivers are <code>awslogs</code>, <code>fluentd</code>, <code>gelf</code>, <code>json-file</code>, <code>journald</code>, <code>logentries</code>, <code>syslog</code>, and <code>splunk</code>. <note> Jobs running on Fargate resources are restricted to the <code>awslogs</code> and <code>splunk</code> log drivers. </note> <dl> <dt>awslogs</dt> <dd> Specifies the Amazon CloudWatch Logs logging driver. For more information, see <a href="https://docs.aws.amazon.com/batch/latest/userguide/using_awslogs.html">Using the awslogs Log Driver</a> in the <i>AWS Batch User Guide</i> and <a href="https://docs.docker.com/config/containers/logging/awslogs/">Amazon CloudWatch Logs logging driver</a> in the Docker documentation. </dd> <dt>fluentd</dt> <dd> Specifies the Fluentd logging driver. For more information, including usage and options, see <a href="https://docs.docker.com/config/containers/logging/fluentd/">Fluentd logging driver</a> in the Docker documentation. </dd> <dt>gelf</dt> <dd> Specifies the Graylog Extended Format (GELF) logging driver. For more information, including usage and options, see <a href="https://docs.docker.com/config/containers/logging/gelf/">Graylog Extended Format logging driver</a> in the Docker documentation. </dd> <dt>journald</dt> <dd> Specifies the journald logging driver. For more information, including usage and options, see <a href="https://docs.docker.com/config/containers/logging/journald/">Journald logging driver</a> in the Docker documentation. </dd> <dt>json-file</dt> <dd> Specifies the JSON file logging driver. For more information, including usage and options, see <a href="https://docs.docker.com/config/containers/logging/json-file/">JSON File logging driver</a> in the Docker documentation. </dd> <dt>splunk</dt> <dd> Specifies the Splunk logging driver. For more information, including usage and options, see <a href="https://docs.docker.com/config/containers/logging/splunk/">Splunk logging driver</a> in the Docker documentation. </dd> <dt>syslog</dt> <dd> Specifies the syslog logging driver. For more information, including usage and options, see <a href="https://docs.docker.com/config/containers/logging/syslog/">Syslog logging driver</a> in the Docker documentation. </dd> </dl> <note> If you have a custom driver that's not listed earlier that you want to work with the Amazon ECS container agent, you can fork the Amazon ECS container agent project that's <a href="https://github.com/aws/amazon-ecs-agent">available on GitHub</a> and customize it to work with that driver. We encourage you to submit pull requests for changes that you want to have included. However, Amazon Web Services doesn't currently support running modified copies of this software. </note> This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log into your container instance and run the following command: <code>sudo docker version | grep "Server API version"</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>assignPublicIp</i> Indicates whether the job should have a public IP address. For a job running on Fargate resources in a private subnet to send outbound traffic to the internet (for example, in order to pull container images), the private subnet requires a NAT gateway be attached to route requests to the internet. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html">Amazon ECS task networking</a>. The default value is "DISABLED".<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>platformVersion</i> The AWS Fargate platform version where the jobs are running. A platform version is specified only for jobs running on Fargate resources. If one isn't specified, the <code>LATEST</code> platform version is used by default. This uses a recent, approved version of the AWS Fargate platform for compute resources. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html">AWS Fargate platform versions</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>nodeRangeProperties</i> A list of node ranges and their properties associated with a multi-node parallel job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>mainNode</i> Specifies the node index for the main node of a multi-node parallel job. This node index value must be fewer than the number of nodes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>numNodes</i> The number of nodes associated with a multi-node parallel job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>evaluateOnExit</i> Array of up to 5 objects that specify conditions under which the job should be retried or failed. If this parameter is specified, then the <code>attempts</code> parameter must also be specified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>attempts</i> The number of times to move a job to the <code>RUNNABLE</code> status. You can specify between 1 and 10 attempts. If the value of <code>attempts</code> is greater than one, the job is retried on failure the same number of attempts as the value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>attemptDurationSeconds</i> The time duration in seconds (measured from the job attempt's <code>startedAt</code> timestamp) after which AWS Batch terminates your jobs if they have not finished. The minimum value for the timeout is 60 seconds.<br/>
        :return: revision:  The revision of the job definition.<br/>jobDefinitionArn:  The Amazon Resource Name (ARN) of the job definition.<br/>jobDefinitionName:  The name of the job definition.<br/>        """
        pass

    def submit_job(self, jobDefinition: str, jobQueue: str, jobName: str, arrayProperties: ArrayProperties=None, dependsOn: List[JobDependency]=None, parameters: ParametersMap=None, containerOverrides: ContainerOverrides=None, nodeOverrides: NodeOverrides=None, retryStrategy: RetryStrategy=None, propagateTags: Boolean=None, timeout: JobTimeout=None, tags: TagrisTagsMap=None) -> SubmitJobResponse:
        r"""Submits an AWS Batch job from a job definition. Parameters that are specified during <a>SubmitJob</a> override parameters defined in the job definition. vCPU and memory requirements that are specified in the <code>ResourceRequirements</code> objects in the job definition are the exception. They can't be overridden this way using the <code>memory</code> and <code>vcpus</code> parameters. Rather, you must specify updates to job definition parameters in a <code>ResourceRequirements</code> object that's included in the <code>containerOverrides</code> parameter. <important> Jobs that run on Fargate resources can't be guaranteed to run for more than 14 days. This is because, after 14 days, Fargate resources might become unavailable and job might be terminated. </important>

        :param self:
        :param tags:  The tags that you apply to the job request to help you categorize and organize your resources. Each tag consists of a key and an optional value. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html">Tagging AWS Resources</a> in <i>AWS General Reference</i>.<br/>timeout:  The timeout configuration for this <a>SubmitJob</a> operation. You can specify a timeout duration after which AWS Batch terminates your jobs if they haven't finished. If a job is terminated due to a timeout, it isn't retried. The minimum value for the timeout is 60 seconds. This configuration overrides any timeout configuration specified in the job definition. For array jobs, child jobs have the same timeout configuration as the parent job. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/job_timeouts.html">Job Timeouts</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.:<br/>propagateTags:  Specifies whether to propagate the tags from the job or job definition to the corresponding Amazon ECS task. If no value is specified, the tags aren't propagated. Tags can only be propagated to the tasks during task creation. For tags with the same name, job tags are given priority over job definitions tags. If the total number of combined tags from the job and job definition is over 50, the job is moved to the <code>FAILED</code> state. When specified, this overrides the tag propagation setting in the job definition.<br/>retryStrategy:  The retry strategy to use for failed jobs from this <a>SubmitJob</a> operation. When a retry strategy is specified here, it overrides the retry strategy defined in the job definition.:<br/>nodeOverrides:  A list of node overrides in JSON format that specify the node range to target and the container overrides for that node range. <note> This parameter isn't applicable to jobs running on Fargate resources; use <code>containerOverrides</code> instead. </note>:<br/>containerOverrides:  A list of container overrides in the JSON format that specify the name of a container in the specified job definition and the overrides it should receive. You can override the default command for a container, which is specified in the job definition or the Docker image, with a <code>command</code> override. You can also override existing environment variables on a container or add new environment variables to it with an <code>environment</code> override.:<br/>parameters:  Additional parameters passed to the job that replace parameter substitution placeholders that are set in the job definition. Parameters are specified as a key and value pair mapping. Parameters in a <code>SubmitJob</code> request override any corresponding parameter defaults from the job definition.<br/>jobDefinition:  The job definition used by this job. This value can be one of <code>name</code>, <code>name:revision</code>, or the Amazon Resource Name (ARN) for the job definition. If <code>name</code> is specified without a revision then the latest active revision is used.<br/>dependsOn:  A list of dependencies for the job. A job can depend upon a maximum of 20 jobs. You can specify a <code>SEQUENTIAL</code> type dependency without specifying a job ID for array jobs so that each child array job completes sequentially, starting at index 0. You can also specify an <code>N_TO_N</code> type dependency with a job ID for array jobs. In that case, each index child of this job must wait for the corresponding index child of each dependency to complete before it can begin.<br/>arrayProperties:  The array properties for the submitted job, such as the size of the array. The array size can be between 2 and 10,000. If you specify array properties for a job, it becomes an array job. For more information, see <a href="https://docs.aws.amazon.com/batch/latest/userguide/array_jobs.html">Array Jobs</a> in the <i>AWS Batch User Guide</i>.:<br/>jobQueue:  The job queue where the job is submitted. You can specify either the name or the Amazon Resource Name (ARN) of the queue.<br/>jobName:  The name of the job. The first character must be alphanumeric, and up to 128 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>size</i> The size of the array job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceRequirements</i> The type and amount of resources to assign to a container. This overrides the settings in the job definition. The supported resources include <code>GPU</code>, <code>MEMORY</code>, and <code>VCPU</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>environment</i> The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the job definition. <note> Environment variables must not start with <code>AWS_BATCH</code>; this naming convention is reserved for variables that are set by the AWS Batch service. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>instanceType</i> The instance type to use for a multi-node parallel job. <note> This parameter isn't applicable to single-node container jobs or for jobs running on Fargate resources and shouldn't be provided. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>command</i> The command to send to the container that overrides the default command from the Docker image or the job definition.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>memory</i> This parameter indicates the amount of memory (in MiB) that's reserved for the job. It overrides the <code>memory</code> parameter set in the job definition, but doesn't override any memory requirement specified in the <code>ResourceRequirement</code> structure in the job definition. This parameter is supported for jobs that run on EC2 resources, but isn't supported for jobs that run on Fargate resources. For these resources, use <code>resourceRequirement</code> instead.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>vcpus</i> This parameter indicates the number of vCPUs reserved for the container.It overrides the <code>vcpus</code> parameter that's set in the job definition, but doesn't override any vCPU requirement specified in the <code>resourceRequirement</code> structure in the job definition. This parameter is supported for jobs that run on EC2 resources, but isn't supported for jobs that run on Fargate resources. For Fargate resources, you can only use <code>resourceRequirement</code>. For EC2 resources, you can use either this parameter or <code>resourceRequirement</code> but not both.  This parameter maps to <code>CpuShares</code> in the <a href="https://docs.docker.com/engine/api/v1.23/#create-a-container">Create a container</a> section of the <a href="https://docs.docker.com/engine/api/v1.23/">Docker Remote API</a> and the <code>--cpu-shares</code> option to <a href="https://docs.docker.com/engine/reference/run/">docker run</a>. Each vCPU is equivalent to 1,024 CPU shares. You must specify at least one vCPU. <note> This parameter isn't applicable to jobs that run on Fargate resources and shouldn't be provided. For jobs that run on Fargate resources, you must specify the vCPU requirement for the job using <code>resourceRequirements</code>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>nodePropertyOverrides</i> The node property overrides for the job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>numNodes</i> The number of nodes to use with a multi-node parallel job. This value overrides the number of nodes that are specified in the job definition. To use this override: <ul> <li> There must be at least one node range in your job definition that has an open upper boundary (such as <code>:</code> or <code>n:</code>). </li> <li> The lower boundary of the node range specified in the job definition must be fewer than the number of nodes specified in the override. </li> <li> The main node index specified in the job definition must be fewer than the number of nodes specified in the override. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>evaluateOnExit</i> Array of up to 5 objects that specify conditions under which the job should be retried or failed. If this parameter is specified, then the <code>attempts</code> parameter must also be specified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>attempts</i> The number of times to move a job to the <code>RUNNABLE</code> status. You can specify between 1 and 10 attempts. If the value of <code>attempts</code> is greater than one, the job is retried on failure the same number of attempts as the value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>attemptDurationSeconds</i> The time duration in seconds (measured from the job attempt's <code>startedAt</code> timestamp) after which AWS Batch terminates your jobs if they have not finished. The minimum value for the timeout is 60 seconds.<br/>
        :return: jobId:  The unique identifier for the job.<br/>jobName:  The name of the job.<br/>jobArn:  The Amazon Resource Name (ARN) for the job.<br/>        """
        pass

    def tag_resource(self, tags: TagrisTagsMap, resourceArn: str) -> TagResourceResponse:
        r"""Associates the specified tags to a resource with the specified <code>resourceArn</code>. If existing tags on a resource aren't specified in the request parameters, they aren't changed. When a resource is deleted, the tags associated with that resource are deleted as well. AWS Batch resources that support tags are compute environments, jobs, job definitions, and job queues. ARNs for child jobs of array and multi-node parallel (MNP) jobs are not supported.

        :param self:
        :param tags:  The tags that you apply to the resource to help you categorize and organize your resources. Each tag consists of a key and an optional value. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html">Tagging AWS Resources</a> in <i>AWS General Reference</i>.<br/>resourceArn:  The Amazon Resource Name (ARN) of the resource that tags are added to. AWS Batch resources that support tags are compute environments, jobs, job definitions, and job queues. ARNs for child jobs of array and multi-node parallel (MNP) jobs are not supported.<br/>
        :return:         """
        pass

    def terminate_job(self, reason: str, jobId: str) -> TerminateJobResponse:
        r"""Terminates a job in a job queue. Jobs that are in the <code>STARTING</code> or <code>RUNNING</code> state are terminated, which causes them to transition to <code>FAILED</code>. Jobs that have not progressed to the <code>STARTING</code> state are cancelled.

        :param self:
        :param reason:  A message to attach to the job that explains the reason for canceling it. This message is returned by future <a>DescribeJobs</a> operations on the job. This message is also recorded in the AWS Batch activity logs.<br/>jobId:  The AWS Batch job ID of the job to terminate.<br/>
        :return:         """
        pass

    def untag_resource(self, tagKeys: List[TagKey], resourceArn: str) -> UntagResourceResponse:
        r"""Deletes specified tags from an AWS Batch resource.

        :param self:
        :param tagKeys:  The keys of the tags to be removed.<br/>resourceArn:  The Amazon Resource Name (ARN) of the resource from which to delete tags. AWS Batch resources that support tags are compute environments, jobs, job definitions, and job queues. ARNs for child jobs of array and multi-node parallel (MNP) jobs are not supported.<br/>
        :return:         """
        pass

    def update_compute_environment(self, computeEnvironment: str, state: str=None, computeResources: ComputeResourceUpdate=None, serviceRole: str=None) -> UpdateComputeEnvironmentResponse:
        r"""Updates an AWS Batch compute environment.

        :param self:
        :param serviceRole:  The full Amazon Resource Name (ARN) of the IAM role that allows AWS Batch to make calls to other AWS services on your behalf. For more information, see <a href="https://docs.aws.amazon.com/batch/latest/userguide/service_IAM_role.html">AWS Batch service IAM role</a> in the <i>AWS Batch User Guide</i>. <important> If the compute environment has a service-linked role, it cannot be changed to use a regular IAM role. If the compute environment has a regular IAM role, it cannot be changed to use a service-linked role. </important> If your specified role has a path other than <code>/</code>, then you must either specify the full role ARN (this is recommended) or prefix the role name with the path. <note> Depending on how you created your AWS Batch service role, its ARN might contain the <code>service-role</code> path prefix. When you only specify the name of the service role, AWS Batch assumes that your ARN doesn't use the <code>service-role</code> path prefix. Because of this, we recommend that you specify the full ARN of your service role when you create compute environments. </note><br/>computeResources:  Details of the compute resources managed by the compute environment. Required for a managed compute environment. For more information, see <a href="https://docs.aws.amazon.com/batch/latest/userguide/compute_environments.html">Compute Environments</a> in the <i>AWS Batch User Guide</i>.:<br/>state:  The state of the compute environment. Compute environments in the <code>ENABLED</code> state can accept jobs from a queue and scale in or out automatically based on the workload demand of its associated queues. If the state is <code>ENABLED</code>, then the AWS Batch scheduler can attempt to place jobs from an associated job queue on the compute resources within the environment. If the compute environment is managed, then it can scale its instances out or in automatically, based on the job queue demand. If the state is <code>DISABLED</code>, then the AWS Batch scheduler doesn't attempt to place jobs within the environment. Jobs in a <code>STARTING</code> or <code>RUNNING</code> state continue to progress normally. Managed compute environments in the <code>DISABLED</code> state don't scale out. However, they scale in to <code>minvCpus</code> value after instances become idle.<br/>computeEnvironment:  The name or full Amazon Resource Name (ARN) of the compute environment to update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>securityGroupIds</i> The Amazon EC2 security groups associated with instances launched in the compute environment. This parameter is required for Fargate compute resources, where it can contain up to 5 security groups. This can't be specified for EC2 compute resources. Providing an empty list is handled as if this parameter wasn't specified and no change is made.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>subnets</i> The VPC subnets that the compute resources are launched into. Fargate compute resources can contain up to 16 subnets. Providing an empty list will be handled as if this parameter wasn't specified and no change is made. This can't be specified for EC2 compute resources. For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html">VPCs and Subnets</a> in the <i>Amazon VPC User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>desiredvCpus</i> The desired number of Amazon EC2 vCPUS in the compute environment. <note> This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>maxvCpus</i> The maximum number of Amazon EC2 vCPUs that an environment can reach. <note> With both <code>BEST_FIT_PROGRESSIVE</code> and <code>SPOT_CAPACITY_OPTIMIZED</code> allocation strategies, AWS Batch might need to exceed <code>maxvCpus</code> to meet your capacity requirements. In this event, AWS Batch never exceeds <code>maxvCpus</code> by more than a single instance. That is, no more than a single instance from among those specified in your compute environment. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>minvCpus</i> The minimum number of Amazon EC2 vCPUs that an environment should maintain. <note> This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified. </note><br/>
        :return: computeEnvironmentArn:  The Amazon Resource Name (ARN) of the compute environment.<br/>computeEnvironmentName:  The name of the compute environment. Up to 128 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed.<br/>        """
        pass

    def update_job_queue(self, jobQueue: str, state: str=None, priority: int=None, computeEnvironmentOrder: List[ComputeEnvironmentOrder]=None) -> UpdateJobQueueResponse:
        r"""Updates a job queue.

        :param self:
        :param computeEnvironmentOrder:  Details the set of compute environments mapped to a job queue and their order relative to each other. This is one of the parameters used by the job scheduler to determine which compute environment should run a given job. Compute environments must be in the <code>VALID</code> state before you can associate them with a job queue. All of the compute environments must be either EC2 (<code>EC2</code> or <code>SPOT</code>) or Fargate (<code>FARGATE</code> or <code>FARGATE_SPOT</code>). EC2 and Fargate compute environments can't be mixed. <note> All compute environments that are associated with a job queue must share the same architecture. AWS Batch doesn't support mixing compute environment architecture types in a single job queue. </note><br/>priority:  The priority of the job queue. Job queues with a higher priority (or a higher integer value for the <code>priority</code> parameter) are evaluated first when associated with the same compute environment. Priority is determined in descending order, for example, a job queue with a priority value of <code>10</code> is given scheduling preference over a job queue with a priority value of <code>1</code>. All of the compute environments must be either EC2 (<code>EC2</code> or <code>SPOT</code>) or Fargate (<code>FARGATE</code> or <code>FARGATE_SPOT</code>). EC2 and Fargate compute environments can't be mixed.<br/>state:  Describes the queue's ability to accept new jobs. If the job queue state is <code>ENABLED</code>, it can accept jobs. If the job queue state is <code>DISABLED</code>, new jobs can't be added to the queue, but jobs already in the queue can finish.<br/>jobQueue:  The name or the Amazon Resource Name (ARN) of the job queue.<br/>
        :return: jobQueueArn:  The Amazon Resource Name (ARN) of the job queue.<br/>jobQueueName:  The name of the job queue.<br/>        """
        pass





class Braket(BaseClient):
    r"""The Amazon Braket API Reference provides information about the operations and structures supported in Amazon Braket."""


    class SearchDevicesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `search_devices` for valid parameters"""
            pass
    class SearchQuantumTasksPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `search_quantum_tasks` for valid parameters"""
            pass


    class CancelQuantumTaskRequest(Mapping):
        pass
    
    class CancelQuantumTaskResponse(Mapping):
        pass
    
    class CreateQuantumTaskRequest(Mapping):
        pass
    
    class CreateQuantumTaskResponse(Mapping):
        pass
    
    class CreateQuantumTaskRequestShotsLong(object):
        pass
    
    class TagsMap(object):
        pass
    
    class GetDeviceRequest(Mapping):
        pass
    
    class GetDeviceResponse(Mapping):
        pass
    
    class GetQuantumTaskRequest(Mapping):
        pass
    
    class GetQuantumTaskResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class SearchDevicesRequest(Mapping):
        pass
    
    class SearchDevicesResponse(Mapping):
        pass
    
    class SearchDevicesFilter(Mapping):
        pass
    
    class SearchQuantumTasksRequest(Mapping):
        pass
    
    class SearchQuantumTasksResponse(Mapping):
        pass
    
    class SearchQuantumTasksFilter(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class String(object):
        pass
    
    def cancel_quantum_task(self, quantumTaskArn: str, clientToken: str) -> CancelQuantumTaskResponse:
        r"""Cancels the specified task.

        :param self:
        :param quantumTaskArn:  The ARN of the task to cancel.<br/>clientToken:  The client token associated with the request.<br/>
        :return: quantumTaskArn:  The ARN of the task.<br/>cancellationStatus:  The status of the cancellation request.<br/>        """
        pass

    def create_quantum_task(self, shots: CreateQuantumTaskRequestShotsLong, outputS3KeyPrefix: str, outputS3Bucket: str, deviceArn: str, clientToken: str, action: str, deviceParameters: str=None, tags: TagsMap=None) -> CreateQuantumTaskResponse:
        r"""Creates a quantum task.

        :param self:
        :param tags:  Tags to be added to the quantum task you're creating.<br/>shots:  The number of shots to use for the task.<br/>outputS3KeyPrefix:  The key prefix for the location in the S3 bucket to store task results in.<br/>outputS3Bucket:  The S3 bucket to store task result files in.<br/>deviceParameters:  The parameters for the device to run the task on.<br/>deviceArn:  The ARN of the device to run the task on.<br/>clientToken:  The client token associated with the request.<br/>action:  The action associated with the task.<br/>
        :return: quantumTaskArn:  The ARN of the task created by the request.<br/>        """
        pass

    def get_device(self, deviceArn: str) -> GetDeviceResponse:
        r"""Retrieves the devices available in Amazon Braket.

        :param self:
        :param deviceArn:  The ARN of the device to retrieve.<br/>
        :return: providerName:  The name of the partner company for the device.<br/>deviceType:  The type of the device.<br/>deviceStatus:  The status of the device.<br/>deviceName:  The name of the device.<br/>deviceCapabilities:  Details about the capabilities of the device.<br/>deviceArn:  The ARN of the device.<br/>        """
        pass

    def get_quantum_task(self, quantumTaskArn: str) -> GetQuantumTaskResponse:
        r"""Retrieves the specified quantum task.

        :param self:
        :param quantumTaskArn:  the ARN of the task to retrieve.<br/>
        :return: tags:  The tags that belong to this task.<br/>status:  The status of the task.<br/>shots:  The number of shots used in the task.<br/>quantumTaskArn:  The ARN of the task.<br/>outputS3Directory:  The folder in the S3 bucket where task results are stored.<br/>outputS3Bucket:  The S3 bucket where task results are stored.<br/>failureReason:  The reason that a task failed.<br/>endedAt:  The time at which the task ended.<br/>deviceParameters:  The parameters for the device on which the task ran.<br/>deviceArn:  The ARN of the device the task was run on.<br/>createdAt:  The time at which the task was created.<br/>        """
        pass

    def list_tags_for_resource(self, resourceArn: str) -> ListTagsForResourceResponse:
        r"""Shows the tags associated with this resource.

        :param self:
        :param resourceArn:  Specify the <code>resourceArn</code> for the resource whose tags to display.<br/>
        :return: tags:  Displays the key, value pairs of tags associated with this resource.<br/>        """
        pass

    def search_devices(self, filters: List[SearchDevicesFilter], maxResults: int=None, nextToken: str=None) -> SearchDevicesResponse:
        r"""Searches for devices using the specified filters.

        :param self:
        :param nextToken:  A token used for pagination of results returned in the response. Use the token returned from the previous request continue results where the previous request ended.<br/>maxResults:  The maximum number of results to return in the response.<br/>filters:  The filter values to use to search for a device.<br/>
        :return: nextToken:  A token used for pagination of results, or null if there are no additional results. Use the token value in a subsequent request to continue results where the previous request ended.<br/>devices:  An array of <code>DeviceSummary</code> objects for devices that match the specified filter values.<br/>        """
        pass

    def search_quantum_tasks(self, filters: List[SearchQuantumTasksFilter], maxResults: int=None, nextToken: str=None) -> SearchQuantumTasksResponse:
        r"""Searches for tasks that match the specified filter values.

        :param self:
        :param nextToken:  A token used for pagination of results returned in the response. Use the token returned from the previous request continue results where the previous request ended.<br/>maxResults:  Maximum number of results to return in the response.<br/>filters:  Array of <code>SearchQuantumTasksFilter</code> objects.<br/>
        :return: quantumTasks:  An array of <code>QuantumTaskSummary</code> objects for tasks that match the specified filters.<br/>nextToken:  A token used for pagination of results, or null if there are no additional results. Use the token value in a subsequent request to continue results where the previous request ended.<br/>        """
        pass

    def tag_resource(self, tags: TagsMap, resourceArn: str) -> TagResourceResponse:
        r"""Add a tag to the specified resource.

        :param self:
        :param tags:  Specify the tags to add to the resource.<br/>resourceArn:  Specify the <code>resourceArn</code> of the resource to which a tag will be added.<br/>
        :return:         """
        pass

    def untag_resource(self, tagKeys: List[String], resourceArn: str) -> UntagResourceResponse:
        r"""Remove tags from a resource.

        :param self:
        :param tagKeys:  Specify the keys for the tags to remove from the resource.<br/>resourceArn:  Specify the <code>resourceArn</code> for the resource from which to remove the tags.<br/>
        :return:         """
        pass





class Budgets(BaseClient):
    r"""The AWS Budgets API enables you to use AWS Budgets to plan your service usage, service costs, and instance reservations. The API reference provides descriptions, syntax, and usage examples for each of the actions and data types for AWS Budgets.  Budgets provide you with a way to see the following information: <ul> <li> How close your plan is to your budgeted amount or to the free tier limits </li> <li> Your usage-to-date, including how much you've used of your Reserved Instances (RIs) </li> <li> Your current estimated charges from AWS, and how much your predicted usage will accrue in charges by the end of the month </li> <li> How much of your budget has been used </li> </ul> AWS updates your budget status several times a day. Budgets track your unblended costs, subscriptions, refunds, and RIs. You can create the following types of budgets: <ul> <li>  <b>Cost budgets</b> - Plan how much you want to spend on a service. </li> <li>  <b>Usage budgets</b> - Plan how much you want to use one or more services. </li> <li>  <b>RI utilization budgets</b> - Define a utilization threshold, and receive alerts when your RI usage falls below that threshold. This lets you see if your RIs are unused or under-utilized. </li> <li>  <b>RI coverage budgets</b> - Define a coverage threshold, and receive alerts when the number of your instance hours that are covered by RIs fall below that threshold. This lets you see how much of your instance usage is covered by a reservation. </li> </ul> Service Endpoint The AWS Budgets API provides the following endpoint: <ul> <li> https://budgets.amazonaws.com </li> </ul> For information about costs that are associated with the AWS Budgets API, see <a href="https://aws.amazon.com/aws-cost-management/pricing/">AWS Cost Management Pricing</a>."""


    class DescribeBudgetsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_budgets` for valid parameters"""
            pass
    class DescribeNotificationsForBudgetPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_notifications_for_budget` for valid parameters"""
            pass
    class DescribeSubscribersForNotificationPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_subscribers_for_notification` for valid parameters"""
            pass
    class DescribeBudgetPerformanceHistoryPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_budget_performance_history` for valid parameters"""
            pass
    class DescribeBudgetActionHistoriesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_budget_action_histories` for valid parameters"""
            pass
    class DescribeBudgetActionsForAccountPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_budget_actions_for_account` for valid parameters"""
            pass
    class DescribeBudgetActionsForBudgetPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_budget_actions_for_budget` for valid parameters"""
            pass


    class CreateBudgetRequest(Mapping):
        pass
    
    class CreateBudgetResponse(Mapping):
        pass
    
    class Budget(Mapping):
        pass
    
    class NotificationWithSubscribers(Mapping):
        pass
    
    class CreateBudgetActionRequest(Mapping):
        pass
    
    class CreateBudgetActionResponse(Mapping):
        pass
    
    class ActionThreshold(Mapping):
        pass
    
    class Definition(Mapping):
        pass
    
    class Subscriber(Mapping):
        pass
    
    class CreateNotificationRequest(Mapping):
        pass
    
    class CreateNotificationResponse(Mapping):
        pass
    
    class Notification(Mapping):
        pass
    
    class CreateSubscriberRequest(Mapping):
        pass
    
    class CreateSubscriberResponse(Mapping):
        pass
    
    class DeleteBudgetRequest(Mapping):
        pass
    
    class DeleteBudgetResponse(Mapping):
        pass
    
    class DeleteBudgetActionRequest(Mapping):
        pass
    
    class DeleteBudgetActionResponse(Mapping):
        pass
    
    class DeleteNotificationRequest(Mapping):
        pass
    
    class DeleteNotificationResponse(Mapping):
        pass
    
    class DeleteSubscriberRequest(Mapping):
        pass
    
    class DeleteSubscriberResponse(Mapping):
        pass
    
    class DescribeBudgetRequest(Mapping):
        pass
    
    class DescribeBudgetResponse(Mapping):
        pass
    
    class DescribeBudgetActionRequest(Mapping):
        pass
    
    class DescribeBudgetActionResponse(Mapping):
        pass
    
    class DescribeBudgetActionHistoriesRequest(Mapping):
        pass
    
    class DescribeBudgetActionHistoriesResponse(Mapping):
        pass
    
    class TimePeriod(Mapping):
        pass
    
    class DescribeBudgetActionsForAccountRequest(Mapping):
        pass
    
    class DescribeBudgetActionsForAccountResponse(Mapping):
        pass
    
    class DescribeBudgetActionsForBudgetRequest(Mapping):
        pass
    
    class DescribeBudgetActionsForBudgetResponse(Mapping):
        pass
    
    class DescribeBudgetPerformanceHistoryRequest(Mapping):
        pass
    
    class DescribeBudgetPerformanceHistoryResponse(Mapping):
        pass
    
    class DescribeBudgetsRequest(Mapping):
        pass
    
    class DescribeBudgetsResponse(Mapping):
        pass
    
    class DescribeNotificationsForBudgetRequest(Mapping):
        pass
    
    class DescribeNotificationsForBudgetResponse(Mapping):
        pass
    
    class DescribeSubscribersForNotificationRequest(Mapping):
        pass
    
    class DescribeSubscribersForNotificationResponse(Mapping):
        pass
    
    class ExecuteBudgetActionRequest(Mapping):
        pass
    
    class ExecuteBudgetActionResponse(Mapping):
        pass
    
    class UpdateBudgetRequest(Mapping):
        pass
    
    class UpdateBudgetResponse(Mapping):
        pass
    
    class UpdateBudgetActionRequest(Mapping):
        pass
    
    class UpdateBudgetActionResponse(Mapping):
        pass
    
    class UpdateNotificationRequest(Mapping):
        pass
    
    class UpdateNotificationResponse(Mapping):
        pass
    
    class UpdateSubscriberRequest(Mapping):
        pass
    
    class UpdateSubscriberResponse(Mapping):
        pass
    
    def create_budget(self, Budget: Budget, AccountId: str, NotificationsWithSubscribers: List[NotificationWithSubscribers]=None) -> CreateBudgetResponse:
        r"""Creates a budget and, if included, notifications and subscribers.  <important> Only one of <code>BudgetLimit</code> or <code>PlannedBudgetLimits</code> can be present in the syntax at one time. Use the syntax that matches your case. The Request Syntax section shows the <code>BudgetLimit</code> syntax. For <code>PlannedBudgetLimits</code>, see the <a href="https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_budgets_CreateBudget.html#API_CreateBudget_Examples">Examples</a> section.  </important>

        :param self:
        :param NotificationsWithSubscribers:  A notification that you want to associate with a budget. A budget can have up to five notifications, and each notification can have one SNS subscriber and up to 10 email subscribers. If you include notifications and subscribers in your <code>CreateBudget</code> call, AWS creates the notifications and subscribers for you.<br/>Budget:  The budget object that you want to create.:<br/>AccountId:  The <code>accountId</code> that is associated with the budget.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdatedTime</i> The last time that you updated this budget.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BudgetType</i> Whether this budget tracks costs, usage, RI utilization, RI coverage, Savings Plans utilization, or Savings Plans coverage.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CalculatedSpend</i> The actual and forecasted cost or usage that the budget tracks.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CalculatedSpend</b>: The actual and forecasted cost or usage that the budget tracks.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TimePeriod</i> The period of time that is covered by a budget. The period has a start date and an end date. The start date must come before the end date. The end date must come before <code>06/15/87 00:00 UTC</code>.  If you create your budget and don't specify a start date, AWS defaults to the start of your chosen time period (DAILY, MONTHLY, QUARTERLY, or ANNUALLY). For example, if you created your budget on January 24, 2018, chose <code>DAILY</code>, and didn't set a start date, AWS set your start date to <code>01/24/18 00:00 UTC</code>. If you chose <code>MONTHLY</code>, AWS set your start date to <code>01/01/18 00:00 UTC</code>. If you didn't specify an end date, AWS set your end date to <code>06/15/87 00:00 UTC</code>. The defaults are the same for the AWS Billing and Cost Management console and the API.  You can change either date with the <code>UpdateBudget</code> operation. After the end date, AWS deletes the budget and all associated notifications and subscribers.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TimePeriod</b>: The period of time that is covered by a budget. The period has a start date and an end date. The start date must come before the end date. The end date must come before <code>06/15/87 00:00 UTC</code>.  If you create your budget and don't specify a start date, AWS defaults to the start of your chosen time period (DAILY, MONTHLY, QUARTERLY, or ANNUALLY). For example, if you created your budget on January 24, 2018, chose <code>DAILY</code>, and didn't set a start date, AWS set your start date to <code>01/24/18 00:00 UTC</code>. If you chose <code>MONTHLY</code>, AWS set your start date to <code>01/01/18 00:00 UTC</code>. If you didn't specify an end date, AWS set your end date to <code>06/15/87 00:00 UTC</code>. The defaults are the same for the AWS Billing and Cost Management console and the API.  You can change either date with the <code>UpdateBudget</code> operation. After the end date, AWS deletes the budget and all associated notifications and subscribers.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TimeUnit</i> The length of time until a budget resets the actual and forecasted spend.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CostTypes</i> The types of costs that are included in this <code>COST</code> budget.  <code>USAGE</code>, <code>RI_UTILIZATION</code>, <code>RI_COVERAGE</code>, <code>SAVINGS_PLANS_UTILIZATION</code>, and <code>SAVINGS_PLANS_COVERAGE</code> budgets do not have <code>CostTypes</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CostTypes</b>: The types of costs that are included in this <code>COST</code> budget.  <code>USAGE</code>, <code>RI_UTILIZATION</code>, <code>RI_COVERAGE</code>, <code>SAVINGS_PLANS_UTILIZATION</code>, and <code>SAVINGS_PLANS_COVERAGE</code> budgets do not have <code>CostTypes</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CostFilters</i> The cost filters, such as service or tag, that are applied to a budget. AWS Budgets supports the following services as a filter for RI budgets: <ul> <li> Amazon Elastic Compute Cloud - Compute </li> <li> Amazon Redshift </li> <li> Amazon Relational Database Service </li> <li> Amazon ElastiCache </li> <li> Amazon Elasticsearch Service </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PlannedBudgetLimits</i> A map containing multiple <code>BudgetLimit</code>, including current or future limits.  <code>PlannedBudgetLimits</code> is available for cost or usage budget and supports monthly and quarterly <code>TimeUnit</code>.  For monthly budgets, provide 12 months of <code>PlannedBudgetLimits</code> values. This must start from the current month and include the next 11 months. The <code>key</code> is the start of the month, <code>UTC</code> in epoch seconds.  For quarterly budgets, provide 4 quarters of <code>PlannedBudgetLimits</code> value entries in standard calendar quarter increments. This must start from the current quarter and include the next 3 quarters. The <code>key</code> is the start of the quarter, <code>UTC</code> in epoch seconds.  If the planned budget expires before 12 months for monthly or 4 quarters for quarterly, provide the <code>PlannedBudgetLimits</code> values only for the remaining periods. If the budget begins at a date in the future, provide <code>PlannedBudgetLimits</code> values from the start date of the budget.  After all of the <code>BudgetLimit</code> values in <code>PlannedBudgetLimits</code> are used, the budget continues to use the last limit as the <code>BudgetLimit</code>. At that point, the planned budget provides the same experience as a fixed budget.   <code>DescribeBudget</code> and <code>DescribeBudgets</code> response along with <code>PlannedBudgetLimits</code> will also contain <code>BudgetLimit</code> representing the current month or quarter limit present in <code>PlannedBudgetLimits</code>. This only applies to budgets created with <code>PlannedBudgetLimits</code>. Budgets created without <code>PlannedBudgetLimits</code> will only contain <code>BudgetLimit</code>, and no <code>PlannedBudgetLimits</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BudgetLimit</i> The total amount of cost, usage, RI utilization, RI coverage, Savings Plans utilization, or Savings Plans coverage that you want to track with your budget.  <code>BudgetLimit</code> is required for cost or usage budgets, but optional for RI or Savings Plans utilization or coverage budgets. RI and Savings Plans utilization or coverage budgets default to <code>100</code>, which is the only valid value for RI or Savings Plans utilization or coverage budgets. You can't use <code>BudgetLimit</code> with <code>PlannedBudgetLimits</code> for <code>CreateBudget</code> and <code>UpdateBudget</code> actions. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>BudgetLimit</b>: The total amount of cost, usage, RI utilization, RI coverage, Savings Plans utilization, or Savings Plans coverage that you want to track with your budget.  <code>BudgetLimit</code> is required for cost or usage budgets, but optional for RI or Savings Plans utilization or coverage budgets. RI and Savings Plans utilization or coverage budgets default to <code>100</code>, which is the only valid value for RI or Savings Plans utilization or coverage budgets. You can't use <code>BudgetLimit</code> with <code>PlannedBudgetLimits</code> for <code>CreateBudget</code> and <code>UpdateBudget</code> actions. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BudgetName</i> The name of a budget. The name must be unique within an account. The <code>:</code> and <code>\</code> characters aren't allowed in <code>BudgetName</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Unit</i> The unit of measurement that is used for the budget forecast, actual spend, or budget threshold, such as dollars or GB.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Amount</i> The cost or usage amount that is associated with a budget forecast, actual spend, or budget threshold.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UseAmortized</i> Specifies whether a budget uses the amortized rate. The default value is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeDiscount</i> Specifies whether a budget includes discounts. The default value is <code>true</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeSupport</i> Specifies whether a budget includes support subscription fees. The default value is <code>true</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeOtherSubscription</i> Specifies whether a budget includes non-RI subscription costs. The default value is <code>true</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeRecurring</i> Specifies whether a budget includes recurring fees such as monthly RI fees. The default value is <code>true</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeUpfront</i> Specifies whether a budget includes upfront RI costs. The default value is <code>true</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeCredit</i> Specifies whether a budget includes credits. The default value is <code>true</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeRefund</i> Specifies whether a budget includes refunds. The default value is <code>true</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UseBlended</i> Specifies whether a budget uses a blended rate. The default value is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeSubscription</i> Specifies whether a budget includes subscriptions. The default value is <code>true</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeTax</i> Specifies whether a budget includes taxes. The default value is <code>true</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>End</i> The end date for a budget. If you didn't specify an end date, AWS set your end date to <code>06/15/87 00:00 UTC</code>. The defaults are the same for the AWS Billing and Cost Management console and the API. After the end date, AWS deletes the budget and all associated notifications and subscribers. You can change your end date with the <code>UpdateBudget</code> operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Start</i> The start date for a budget. If you created your budget and didn't specify a start date, AWS defaults to the start of your chosen time period (DAILY, MONTHLY, QUARTERLY, or ANNUALLY). For example, if you created your budget on January 24, 2018, chose <code>DAILY</code>, and didn't set a start date, AWS set your start date to <code>01/24/18 00:00 UTC</code>. If you chose <code>MONTHLY</code>, AWS set your start date to <code>01/01/18 00:00 UTC</code>. The defaults are the same for the AWS Billing and Cost Management console and the API. You can change your start date with the <code>UpdateBudget</code> operation.<br/>The amount of cost, usage, RI units, or Savings Plans units that you have used.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ActualSpend</b>: The amount of cost, usage, RI units, or Savings Plans units that you have used.
        :return:         """
        pass

    def create_budget_action(self, Subscribers: List[Subscriber], ApprovalModel: str, ExecutionRoleArn: str, Definition: Definition, ActionThreshold: ActionThreshold, ActionType: str, NotificationType: str, BudgetName: str, AccountId: str) -> CreateBudgetActionResponse:
        r""" Creates a budget action. 

        :param self:
        :param Subscribers:   A list of subscribers.<br/>ApprovalModel:   This specifies if the action needs manual or automatic approval. <br/>ExecutionRoleArn:   The role passed for action execution and reversion. Roles and actions must be in the same account. <br/>Definition:   Specifies all of the type-specific parameters. :<br/>ActionThreshold:   The trigger threshold of the action. :<br/>ActionType:   The type of action. This defines the type of tasks that can be carried out by this action. This field also determines the format for definition. <br/>NotificationType:   The type of a notification. It must be ACTUAL or FORECASTED.<br/>BudgetName:   A string that represents the budget name. The ":" and "\" characters aren't allowed.<br/>AccountId:  The account ID of the user. It should be a 12-digit number.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActionThresholdType</i>  The type of threshold for a notification.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActionThresholdValue</i>  The threshold of a notification.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SsmActionDefinition</i>  The AWS Systems Manager (SSM) action definition details. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SsmActionDefinition</b>:  The AWS Systems Manager (SSM) action definition details. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ScpActionDefinition</i>  The service control policies (SCPs) action definition details. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ScpActionDefinition</b>:  The service control policies (SCPs) action definition details. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IamActionDefinition</i>  The AWS Identity and Access Management (IAM) action definition details. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>IamActionDefinition</b>:  The AWS Identity and Access Management (IAM) action definition details. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Users</i>  A list of users to be attached. There must be at least one user. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Groups</i>  A list of groups to be attached. There must be at least one group. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Roles</i>  A list of roles to be attached. There must be at least one role. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PolicyArn</i>  The Amazon Resource Name (ARN) of the policy to be attached. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetIds</i>  A list of target IDs. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PolicyId</i>  The policy ID attached. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceIds</i>  The EC2 and RDS instance IDs. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Region</i>  The Region to run the SSM document. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ActionSubType</i>  The action subType. <br/>
        :return: ActionId:   A system-generated universally unique identifier (UUID) for the action. <br/>BudgetName:   A string that represents the budget name. The ":" and "\" characters aren't allowed.<br/>AccountId:  The account ID of the user. It should be a 12-digit number.<br/>        """
        pass

    def create_notification(self, Subscribers: List[Subscriber], Notification: Notification, BudgetName: str, AccountId: str) -> CreateNotificationResponse:
        r"""Creates a notification. You must create the budget before you create the associated notification.

        :param self:
        :param Subscribers:  A list of subscribers that you want to associate with the notification. Each notification can have one SNS subscriber and up to 10 email subscribers.<br/>Notification:  The notification that you want to create.:<br/>BudgetName:  The name of the budget that you want AWS to notify you about. Budget names must be unique within an account.<br/>AccountId:  The <code>accountId</code> that is associated with the budget that you want to create a notification for.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NotificationState</i> Whether this notification is in alarm. If a budget notification is in the <code>ALARM</code> state, you have passed the set threshold for the budget.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ThresholdType</i> The type of threshold for a notification. For <code>ABSOLUTE_VALUE</code> thresholds, AWS notifies you when you go over or are forecasted to go over your total cost threshold. For <code>PERCENTAGE</code> thresholds, AWS notifies you when you go over or are forecasted to go over a certain percentage of your forecasted spend. For example, if you have a budget for 200 dollars and you have a <code>PERCENTAGE</code> threshold of 80%, AWS notifies you when you go over 160 dollars.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Threshold</i> The threshold that is associated with a notification. Thresholds are always a percentage, and many customers find value being alerted between 50% - 200% of the budgeted amount. The maximum limit for your threshold is 1,000,000% above the budgeted amount.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ComparisonOperator</i> The comparison that is used for this notification.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NotificationType</i> Whether the notification is for how much you have spent (<code>ACTUAL</code>) or for how much you're forecasted to spend (<code>FORECASTED</code>).<br/>
        :return:         """
        pass

    def create_subscriber(self, Subscriber: Subscriber, Notification: Notification, BudgetName: str, AccountId: str) -> CreateSubscriberResponse:
        r"""Creates a subscriber. You must create the associated budget and notification before you create the subscriber.

        :param self:
        :param Subscriber:  The subscriber that you want to associate with a budget notification.:<br/>Notification:  The notification that you want to create a subscriber for.:<br/>BudgetName:  The name of the budget that you want to subscribe to. Budget names must be unique within an account.<br/>AccountId:  The <code>accountId</code> that is associated with the budget that you want to create a subscriber for.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NotificationState</i> Whether this notification is in alarm. If a budget notification is in the <code>ALARM</code> state, you have passed the set threshold for the budget.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ThresholdType</i> The type of threshold for a notification. For <code>ABSOLUTE_VALUE</code> thresholds, AWS notifies you when you go over or are forecasted to go over your total cost threshold. For <code>PERCENTAGE</code> thresholds, AWS notifies you when you go over or are forecasted to go over a certain percentage of your forecasted spend. For example, if you have a budget for 200 dollars and you have a <code>PERCENTAGE</code> threshold of 80%, AWS notifies you when you go over 160 dollars.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Threshold</i> The threshold that is associated with a notification. Thresholds are always a percentage, and many customers find value being alerted between 50% - 200% of the budgeted amount. The maximum limit for your threshold is 1,000,000% above the budgeted amount.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ComparisonOperator</i> The comparison that is used for this notification.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NotificationType</i> Whether the notification is for how much you have spent (<code>ACTUAL</code>) or for how much you're forecasted to spend (<code>FORECASTED</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Address</i> The address that AWS sends budget notifications to, either an SNS topic or an email. When you create a subscriber, the value of <code>Address</code> can't contain line breaks.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubscriptionType</i> The type of notification that AWS sends to a subscriber.<br/>
        :return:         """
        pass

    def delete_budget(self, BudgetName: str, AccountId: str) -> DeleteBudgetResponse:
        r"""Deletes a budget. You can delete your budget at any time. <important> Deleting a budget also deletes the notifications and subscribers that are associated with that budget. </important>

        :param self:
        :param BudgetName:  The name of the budget that you want to delete.<br/>AccountId:  The <code>accountId</code> that is associated with the budget that you want to delete.<br/>
        :return:         """
        pass

    def delete_budget_action(self, ActionId: str, BudgetName: str, AccountId: str) -> DeleteBudgetActionResponse:
        r""" Deletes a budget action. 

        :param self:
        :param ActionId:   A system-generated universally unique identifier (UUID) for the action. <br/>BudgetName:   A string that represents the budget name. The ":" and "\" characters aren't allowed.<br/>AccountId:  The account ID of the user. It should be a 12-digit number.<br/>
        :return: Action:   A budget action resource. :<br/>BudgetName:   A string that represents the budget name. The ":" and "\" characters aren't allowed.<br/>AccountId:  The account ID of the user. It should be a 12-digit number.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Subscribers</i>  A list of subscribers.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i>  The status of action. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApprovalModel</i>  This specifies if the action needs manual or automatic approval. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExecutionRoleArn</i>  The role passed for action execution and reversion. Roles and actions must be in the same account. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Definition</i>  Where you specify all of the type-specific parameters. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Definition</b>:  Where you specify all of the type-specific parameters. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActionThreshold</i>  The trigger threshold of the action. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ActionThreshold</b>:  The trigger threshold of the action. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActionType</i>  The type of action. This defines the type of tasks that can be carried out by this action. This field also determines the format for definition. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NotificationType</i>  The type of a notification. It must be ACTUAL or FORECASTED.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BudgetName</i>  A string that represents the budget name. The ":" and "\" characters aren't allowed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActionId</i>  A system-generated universally unique identifier (UUID) for the action. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ActionThresholdType</i>  The type of threshold for a notification.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ActionThresholdValue</i>  The threshold of a notification.<br/> The AWS Identity and Access Management (IAM) action definition details. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>IamActionDefinition</b>:  The AWS Identity and Access Management (IAM) action definition details.         """
        pass

    def delete_notification(self, Notification: Notification, BudgetName: str, AccountId: str) -> DeleteNotificationResponse:
        r"""Deletes a notification. <important> Deleting a notification also deletes the subscribers that are associated with the notification. </important>

        :param self:
        :param Notification:  The notification that you want to delete.:<br/>BudgetName:  The name of the budget whose notification you want to delete.<br/>AccountId:  The <code>accountId</code> that is associated with the budget whose notification you want to delete.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NotificationState</i> Whether this notification is in alarm. If a budget notification is in the <code>ALARM</code> state, you have passed the set threshold for the budget.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ThresholdType</i> The type of threshold for a notification. For <code>ABSOLUTE_VALUE</code> thresholds, AWS notifies you when you go over or are forecasted to go over your total cost threshold. For <code>PERCENTAGE</code> thresholds, AWS notifies you when you go over or are forecasted to go over a certain percentage of your forecasted spend. For example, if you have a budget for 200 dollars and you have a <code>PERCENTAGE</code> threshold of 80%, AWS notifies you when you go over 160 dollars.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Threshold</i> The threshold that is associated with a notification. Thresholds are always a percentage, and many customers find value being alerted between 50% - 200% of the budgeted amount. The maximum limit for your threshold is 1,000,000% above the budgeted amount.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ComparisonOperator</i> The comparison that is used for this notification.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NotificationType</i> Whether the notification is for how much you have spent (<code>ACTUAL</code>) or for how much you're forecasted to spend (<code>FORECASTED</code>).<br/>
        :return:         """
        pass

    def delete_subscriber(self, Subscriber: Subscriber, Notification: Notification, BudgetName: str, AccountId: str) -> DeleteSubscriberResponse:
        r"""Deletes a subscriber. <important> Deleting the last subscriber to a notification also deletes the notification. </important>

        :param self:
        :param Subscriber:  The subscriber that you want to delete.:<br/>Notification:  The notification whose subscriber you want to delete.:<br/>BudgetName:  The name of the budget whose subscriber you want to delete.<br/>AccountId:  The <code>accountId</code> that is associated with the budget whose subscriber you want to delete.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NotificationState</i> Whether this notification is in alarm. If a budget notification is in the <code>ALARM</code> state, you have passed the set threshold for the budget.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ThresholdType</i> The type of threshold for a notification. For <code>ABSOLUTE_VALUE</code> thresholds, AWS notifies you when you go over or are forecasted to go over your total cost threshold. For <code>PERCENTAGE</code> thresholds, AWS notifies you when you go over or are forecasted to go over a certain percentage of your forecasted spend. For example, if you have a budget for 200 dollars and you have a <code>PERCENTAGE</code> threshold of 80%, AWS notifies you when you go over 160 dollars.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Threshold</i> The threshold that is associated with a notification. Thresholds are always a percentage, and many customers find value being alerted between 50% - 200% of the budgeted amount. The maximum limit for your threshold is 1,000,000% above the budgeted amount.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ComparisonOperator</i> The comparison that is used for this notification.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NotificationType</i> Whether the notification is for how much you have spent (<code>ACTUAL</code>) or for how much you're forecasted to spend (<code>FORECASTED</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Address</i> The address that AWS sends budget notifications to, either an SNS topic or an email. When you create a subscriber, the value of <code>Address</code> can't contain line breaks.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubscriptionType</i> The type of notification that AWS sends to a subscriber.<br/>
        :return:         """
        pass

    def describe_budget(self, BudgetName: str, AccountId: str) -> DescribeBudgetResponse:
        r"""Describes a budget. <important> The Request Syntax section shows the <code>BudgetLimit</code> syntax. For <code>PlannedBudgetLimits</code>, see the <a href="https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_budgets_DescribeBudget.html#API_DescribeBudget_Examples">Examples</a> section.  </important>

        :param self:
        :param BudgetName:  The name of the budget that you want a description of.<br/>AccountId:  The <code>accountId</code> that is associated with the budget that you want a description of.<br/>
        :return: Budget:  The description of the budget.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdatedTime</i> The last time that you updated this budget.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BudgetType</i> Whether this budget tracks costs, usage, RI utilization, RI coverage, Savings Plans utilization, or Savings Plans coverage.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CalculatedSpend</i> The actual and forecasted cost or usage that the budget tracks.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CalculatedSpend</b>: The actual and forecasted cost or usage that the budget tracks.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TimePeriod</i> The period of time that is covered by a budget. The period has a start date and an end date. The start date must come before the end date. The end date must come before <code>06/15/87 00:00 UTC</code>.  If you create your budget and don't specify a start date, AWS defaults to the start of your chosen time period (DAILY, MONTHLY, QUARTERLY, or ANNUALLY). For example, if you created your budget on January 24, 2018, chose <code>DAILY</code>, and didn't set a start date, AWS set your start date to <code>01/24/18 00:00 UTC</code>. If you chose <code>MONTHLY</code>, AWS set your start date to <code>01/01/18 00:00 UTC</code>. If you didn't specify an end date, AWS set your end date to <code>06/15/87 00:00 UTC</code>. The defaults are the same for the AWS Billing and Cost Management console and the API.  You can change either date with the <code>UpdateBudget</code> operation. After the end date, AWS deletes the budget and all associated notifications and subscribers.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TimePeriod</b>: The period of time that is covered by a budget. The period has a start date and an end date. The start date must come before the end date. The end date must come before <code>06/15/87 00:00 UTC</code>.  If you create your budget and don't specify a start date, AWS defaults to the start of your chosen time period (DAILY, MONTHLY, QUARTERLY, or ANNUALLY). For example, if you created your budget on January 24, 2018, chose <code>DAILY</code>, and didn't set a start date, AWS set your start date to <code>01/24/18 00:00 UTC</code>. If you chose <code>MONTHLY</code>, AWS set your start date to <code>01/01/18 00:00 UTC</code>. If you didn't specify an end date, AWS set your end date to <code>06/15/87 00:00 UTC</code>. The defaults are the same for the AWS Billing and Cost Management console and the API.  You can change either date with the <code>UpdateBudget</code> operation. After the end date, AWS deletes the budget and all associated notifications and subscribers.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TimeUnit</i> The length of time until a budget resets the actual and forecasted spend.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CostTypes</i> The types of costs that are included in this <code>COST</code> budget.  <code>USAGE</code>, <code>RI_UTILIZATION</code>, <code>RI_COVERAGE</code>, <code>SAVINGS_PLANS_UTILIZATION</code>, and <code>SAVINGS_PLANS_COVERAGE</code> budgets do not have <code>CostTypes</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CostTypes</b>: The types of costs that are included in this <code>COST</code> budget.  <code>USAGE</code>, <code>RI_UTILIZATION</code>, <code>RI_COVERAGE</code>, <code>SAVINGS_PLANS_UTILIZATION</code>, and <code>SAVINGS_PLANS_COVERAGE</code> budgets do not have <code>CostTypes</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CostFilters</i> The cost filters, such as service or tag, that are applied to a budget. AWS Budgets supports the following services as a filter for RI budgets: <ul> <li> Amazon Elastic Compute Cloud - Compute </li> <li> Amazon Redshift </li> <li> Amazon Relational Database Service </li> <li> Amazon ElastiCache </li> <li> Amazon Elasticsearch Service </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PlannedBudgetLimits</i> A map containing multiple <code>BudgetLimit</code>, including current or future limits.  <code>PlannedBudgetLimits</code> is available for cost or usage budget and supports monthly and quarterly <code>TimeUnit</code>.  For monthly budgets, provide 12 months of <code>PlannedBudgetLimits</code> values. This must start from the current month and include the next 11 months. The <code>key</code> is the start of the month, <code>UTC</code> in epoch seconds.  For quarterly budgets, provide 4 quarters of <code>PlannedBudgetLimits</code> value entries in standard calendar quarter increments. This must start from the current quarter and include the next 3 quarters. The <code>key</code> is the start of the quarter, <code>UTC</code> in epoch seconds.  If the planned budget expires before 12 months for monthly or 4 quarters for quarterly, provide the <code>PlannedBudgetLimits</code> values only for the remaining periods. If the budget begins at a date in the future, provide <code>PlannedBudgetLimits</code> values from the start date of the budget.  After all of the <code>BudgetLimit</code> values in <code>PlannedBudgetLimits</code> are used, the budget continues to use the last limit as the <code>BudgetLimit</code>. At that point, the planned budget provides the same experience as a fixed budget.   <code>DescribeBudget</code> and <code>DescribeBudgets</code> response along with <code>PlannedBudgetLimits</code> will also contain <code>BudgetLimit</code> representing the current month or quarter limit present in <code>PlannedBudgetLimits</code>. This only applies to budgets created with <code>PlannedBudgetLimits</code>. Budgets created without <code>PlannedBudgetLimits</code> will only contain <code>BudgetLimit</code>, and no <code>PlannedBudgetLimits</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BudgetLimit</i> The total amount of cost, usage, RI utilization, RI coverage, Savings Plans utilization, or Savings Plans coverage that you want to track with your budget.  <code>BudgetLimit</code> is required for cost or usage budgets, but optional for RI or Savings Plans utilization or coverage budgets. RI and Savings Plans utilization or coverage budgets default to <code>100</code>, which is the only valid value for RI or Savings Plans utilization or coverage budgets. You can't use <code>BudgetLimit</code> with <code>PlannedBudgetLimits</code> for <code>CreateBudget</code> and <code>UpdateBudget</code> actions. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>BudgetLimit</b>: The total amount of cost, usage, RI utilization, RI coverage, Savings Plans utilization, or Savings Plans coverage that you want to track with your budget.  <code>BudgetLimit</code> is required for cost or usage budgets, but optional for RI or Savings Plans utilization or coverage budgets. RI and Savings Plans utilization or coverage budgets default to <code>100</code>, which is the only valid value for RI or Savings Plans utilization or coverage budgets. You can't use <code>BudgetLimit</code> with <code>PlannedBudgetLimits</code> for <code>CreateBudget</code> and <code>UpdateBudget</code> actions. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BudgetName</i> The name of a budget. The name must be unique within an account. The <code>:</code> and <code>\</code> characters aren't allowed in <code>BudgetName</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Unit</i> The unit of measurement that is used for the budget forecast, actual spend, or budget threshold, such as dollars or GB.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Amount</i> The cost or usage amount that is associated with a budget forecast, actual spend, or budget threshold.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UseAmortized</i> Specifies whether a budget uses the amortized rate. The default value is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeDiscount</i> Specifies whether a budget includes discounts. The default value is <code>true</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeSupport</i> Specifies whether a budget includes support subscription fees. The default value is <code>true</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeOtherSubscription</i> Specifies whether a budget includes non-RI subscription costs. The default value is <code>true</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeRecurring</i> Specifies whether a budget includes recurring fees such as monthly RI fees. The default value is <code>true</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeUpfront</i> Specifies whether a budget includes upfront RI costs. The default value is <code>true</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeCredit</i> Specifies whether a budget includes credits. The default value is <code>true</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeRefund</i> Specifies whether a budget includes refunds. The default value is <code>true</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UseBlended</i> Specifies whether a budget uses a blended rate. The default value is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeSubscription</i> Specifies whether a budget includes subscriptions. The default value is <code>true</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeTax</i> Specifies whether a budget includes taxes. The default value is <code>true</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>End</i> The end date for a budget. If you didn't specify an end date, AWS set your end date to <code>06/15/87 00:00 UTC</code>. The defaults are the same for the AWS Billing and Cost Management console and the API. After the end date, AWS deletes the budget and all associated notifications and subscribers. You can change your end date with the <code>UpdateBudget</code> operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Start</i> The start date for a budget. If you created your budget and didn't specify a start date, AWS defaults to the start of your chosen time period (DAILY, MONTHLY, QUARTERLY, or ANNUALLY). For example, if you created your budget on January 24, 2018, chose <code>DAILY</code>, and didn't set a start date, AWS set your start date to <code>01/24/18 00:00 UTC</code>. If you chose <code>MONTHLY</code>, AWS set your start date to <code>01/01/18 00:00 UTC</code>. The defaults are the same for the AWS Billing and Cost Management console and the API. You can change your start date with the <code>UpdateBudget</code> operation.<br/>The amount of cost, usage, RI units, or Savings Plans units that you have used.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ActualSpend</b>: The amount of cost, usage, RI units, or Savings Plans units that you have used.        """
        pass

    def describe_budget_action(self, ActionId: str, BudgetName: str, AccountId: str) -> DescribeBudgetActionResponse:
        r""" Describes a budget action detail. 

        :param self:
        :param ActionId:   A system-generated universally unique identifier (UUID) for the action. <br/>BudgetName:   A string that represents the budget name. The ":" and "\" characters aren't allowed.<br/>AccountId:  The account ID of the user. It should be a 12-digit number.<br/>
        :return: Action:   A budget action resource. :<br/>BudgetName:   A string that represents the budget name. The ":" and "\" characters aren't allowed.<br/>AccountId:  The account ID of the user. It should be a 12-digit number.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Subscribers</i>  A list of subscribers.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i>  The status of action. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApprovalModel</i>  This specifies if the action needs manual or automatic approval. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExecutionRoleArn</i>  The role passed for action execution and reversion. Roles and actions must be in the same account. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Definition</i>  Where you specify all of the type-specific parameters. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Definition</b>:  Where you specify all of the type-specific parameters. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActionThreshold</i>  The trigger threshold of the action. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ActionThreshold</b>:  The trigger threshold of the action. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActionType</i>  The type of action. This defines the type of tasks that can be carried out by this action. This field also determines the format for definition. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NotificationType</i>  The type of a notification. It must be ACTUAL or FORECASTED.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BudgetName</i>  A string that represents the budget name. The ":" and "\" characters aren't allowed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActionId</i>  A system-generated universally unique identifier (UUID) for the action. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ActionThresholdType</i>  The type of threshold for a notification.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ActionThresholdValue</i>  The threshold of a notification.<br/> The AWS Identity and Access Management (IAM) action definition details. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>IamActionDefinition</b>:  The AWS Identity and Access Management (IAM) action definition details.         """
        pass

    def describe_budget_action_histories(self, ActionId: str, BudgetName: str, AccountId: str, TimePeriod: TimePeriod=None, MaxResults: int=None, NextToken: str=None) -> DescribeBudgetActionHistoriesResponse:
        r""" Describes a budget action history detail. 

        :param self:
        :param NextToken:   A generic string.<br/>MaxResults:   An integer that represents how many entries a paginated response contains. The maximum is 100.<br/>TimePeriod:  The period of time that is covered by a budget. The period has a start date and an end date. The start date must come before the end date. There are no restrictions on the end date. :<br/>ActionId:   A system-generated universally unique identifier (UUID) for the action. <br/>BudgetName:   A string that represents the budget name. The ":" and "\" characters aren't allowed.<br/>AccountId:  The account ID of the user. It should be a 12-digit number.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>End</i> The end date for a budget. If you didn't specify an end date, AWS set your end date to <code>06/15/87 00:00 UTC</code>. The defaults are the same for the AWS Billing and Cost Management console and the API. After the end date, AWS deletes the budget and all associated notifications and subscribers. You can change your end date with the <code>UpdateBudget</code> operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Start</i> The start date for a budget. If you created your budget and didn't specify a start date, AWS defaults to the start of your chosen time period (DAILY, MONTHLY, QUARTERLY, or ANNUALLY). For example, if you created your budget on January 24, 2018, chose <code>DAILY</code>, and didn't set a start date, AWS set your start date to <code>01/24/18 00:00 UTC</code>. If you chose <code>MONTHLY</code>, AWS set your start date to <code>01/01/18 00:00 UTC</code>. The defaults are the same for the AWS Billing and Cost Management console and the API. You can change your start date with the <code>UpdateBudget</code> operation.<br/>
        :return: NextToken:   A generic string.<br/>ActionHistories:   The historical record of the budget action resource. <br/>        """
        pass

    def describe_budget_actions_for_account(self, AccountId: str, MaxResults: int=None, NextToken: str=None) -> DescribeBudgetActionsForAccountResponse:
        r""" Describes all of the budget actions for an account. 

        :param self:
        :param NextToken:   A generic string.<br/>MaxResults:   An integer that represents how many entries a paginated response contains. The maximum is 100.<br/>AccountId:  The account ID of the user. It should be a 12-digit number.<br/>
        :return: NextToken:   A generic string.<br/>Actions:   A list of the budget action resources information. <br/>        """
        pass

    def describe_budget_actions_for_budget(self, BudgetName: str, AccountId: str, MaxResults: int=None, NextToken: str=None) -> DescribeBudgetActionsForBudgetResponse:
        r""" Describes all of the budget actions for a budget. 

        :param self:
        :param NextToken:   A generic string.<br/>MaxResults:   An integer that represents how many entries a paginated response contains. The maximum is 100.<br/>BudgetName:   A string that represents the budget name. The ":" and "\" characters aren't allowed.<br/>AccountId:  The account ID of the user. It should be a 12-digit number.<br/>
        :return: NextToken:   A generic string.<br/>Actions:   A list of the budget action resources information. <br/>        """
        pass

    def describe_budget_performance_history(self, BudgetName: str, AccountId: str, TimePeriod: TimePeriod=None, MaxResults: int=None, NextToken: str=None) -> DescribeBudgetPerformanceHistoryResponse:
        r"""Describes the history for <code>DAILY</code>, <code>MONTHLY</code>, and <code>QUARTERLY</code> budgets. Budget history isn't available for <code>ANNUAL</code> budgets.

        :param self:
        :param NextToken:   A generic string.<br/>MaxResults:   An integer that represents how many entries a paginated response contains. The maximum is 100.<br/>TimePeriod:  Retrieves how often the budget went into an <code>ALARM</code> state for the specified time period.:<br/>BudgetName:   A string that represents the budget name. The ":" and "\" characters aren't allowed.<br/>AccountId:  The account ID of the user. It should be a 12-digit number.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>End</i> The end date for a budget. If you didn't specify an end date, AWS set your end date to <code>06/15/87 00:00 UTC</code>. The defaults are the same for the AWS Billing and Cost Management console and the API. After the end date, AWS deletes the budget and all associated notifications and subscribers. You can change your end date with the <code>UpdateBudget</code> operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Start</i> The start date for a budget. If you created your budget and didn't specify a start date, AWS defaults to the start of your chosen time period (DAILY, MONTHLY, QUARTERLY, or ANNUALLY). For example, if you created your budget on January 24, 2018, chose <code>DAILY</code>, and didn't set a start date, AWS set your start date to <code>01/24/18 00:00 UTC</code>. If you chose <code>MONTHLY</code>, AWS set your start date to <code>01/01/18 00:00 UTC</code>. The defaults are the same for the AWS Billing and Cost Management console and the API. You can change your start date with the <code>UpdateBudget</code> operation.<br/>
        :return: NextToken:   A generic string.<br/>BudgetPerformanceHistory:  The history of how often the budget has gone into an <code>ALARM</code> state. For <code>DAILY</code> budgets, the history saves the state of the budget for the last 60 days. For <code>MONTHLY</code> budgets, the history saves the state of the budget for the current month plus the last 12 months. For <code>QUARTERLY</code> budgets, the history saves the state of the budget for the last four quarters.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BudgetedAndActualAmountsList</i> A list of amounts of cost or usage that you created budgets for, compared to your actual costs or usage.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TimeUnit</i>  The time unit of the budget, such as MONTHLY or QUARTERLY.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CostTypes</i> The history of the cost types for a budget during the specified time period.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CostTypes</b>: The history of the cost types for a budget during the specified time period.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CostFilters</i> The history of the cost filters for a budget during the specified time period.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BudgetType</i>  The type of a budget. It must be one of the following types:   <code>COST</code>, <code>USAGE</code>, <code>RI_UTILIZATION</code>, <code>RI_COVERAGE</code>, <code>SAVINGS_PLANS_UTILIZATION</code>, or <code>SAVINGS_PLANS_COVERAGE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BudgetName</i>  A string that represents the budget name. The ":" and "\" characters aren't allowed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UseAmortized</i> Specifies whether a budget uses the amortized rate. The default value is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeDiscount</i> Specifies whether a budget includes discounts. The default value is <code>true</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeSupport</i> Specifies whether a budget includes support subscription fees. The default value is <code>true</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeOtherSubscription</i> Specifies whether a budget includes non-RI subscription costs. The default value is <code>true</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeRecurring</i> Specifies whether a budget includes recurring fees such as monthly RI fees. The default value is <code>true</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeUpfront</i> Specifies whether a budget includes upfront RI costs. The default value is <code>true</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeCredit</i> Specifies whether a budget includes credits. The default value is <code>true</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeRefund</i> Specifies whether a budget includes refunds. The default value is <code>true</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UseBlended</i> Specifies whether a budget uses a blended rate. The default value is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeSubscription</i> Specifies whether a budget includes subscriptions. The default value is <code>true</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeTax</i> Specifies whether a budget includes taxes. The default value is <code>true</code>.<br/>        """
        pass

    def describe_budgets(self, AccountId: str, MaxResults: int=None, NextToken: str=None) -> DescribeBudgetsResponse:
        r"""Lists the budgets that are associated with an account. <important> The Request Syntax section shows the <code>BudgetLimit</code> syntax. For <code>PlannedBudgetLimits</code>, see the <a href="https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_budgets_DescribeBudgets.html#API_DescribeBudgets_Examples">Examples</a> section.  </important>

        :param self:
        :param NextToken:  The pagination token that you include in your request to indicate the next set of results that you want to retrieve.<br/>MaxResults:  An optional integer that represents how many entries a paginated response contains. The maximum is 100.<br/>AccountId:  The <code>accountId</code> that is associated with the budgets that you want descriptions of.<br/>
        :return: NextToken:  The pagination token in the service response that indicates the next set of results that you can retrieve.<br/>Budgets:  A list of budgets.<br/>        """
        pass

    def describe_notifications_for_budget(self, BudgetName: str, AccountId: str, MaxResults: int=None, NextToken: str=None) -> DescribeNotificationsForBudgetResponse:
        r"""Lists the notifications that are associated with a budget.

        :param self:
        :param NextToken:  The pagination token that you include in your request to indicate the next set of results that you want to retrieve.<br/>MaxResults:  An optional integer that represents how many entries a paginated response contains. The maximum is 100.<br/>BudgetName:  The name of the budget whose notifications you want descriptions of.<br/>AccountId:  The <code>accountId</code> that is associated with the budget whose notifications you want descriptions of.<br/>
        :return: NextToken:  The pagination token in the service response that indicates the next set of results that you can retrieve.<br/>Notifications:  A list of notifications that are associated with a budget.<br/>        """
        pass

    def describe_subscribers_for_notification(self, Notification: Notification, BudgetName: str, AccountId: str, MaxResults: int=None, NextToken: str=None) -> DescribeSubscribersForNotificationResponse:
        r"""Lists the subscribers that are associated with a notification.

        :param self:
        :param NextToken:  The pagination token that you include in your request to indicate the next set of results that you want to retrieve.<br/>MaxResults:  An optional integer that represents how many entries a paginated response contains. The maximum is 100.<br/>Notification:  The notification whose subscribers you want to list.:<br/>BudgetName:  The name of the budget whose subscribers you want descriptions of.<br/>AccountId:  The <code>accountId</code> that is associated with the budget whose subscribers you want descriptions of.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NotificationState</i> Whether this notification is in alarm. If a budget notification is in the <code>ALARM</code> state, you have passed the set threshold for the budget.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ThresholdType</i> The type of threshold for a notification. For <code>ABSOLUTE_VALUE</code> thresholds, AWS notifies you when you go over or are forecasted to go over your total cost threshold. For <code>PERCENTAGE</code> thresholds, AWS notifies you when you go over or are forecasted to go over a certain percentage of your forecasted spend. For example, if you have a budget for 200 dollars and you have a <code>PERCENTAGE</code> threshold of 80%, AWS notifies you when you go over 160 dollars.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Threshold</i> The threshold that is associated with a notification. Thresholds are always a percentage, and many customers find value being alerted between 50% - 200% of the budgeted amount. The maximum limit for your threshold is 1,000,000% above the budgeted amount.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ComparisonOperator</i> The comparison that is used for this notification.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NotificationType</i> Whether the notification is for how much you have spent (<code>ACTUAL</code>) or for how much you're forecasted to spend (<code>FORECASTED</code>).<br/>
        :return: NextToken:  The pagination token in the service response that indicates the next set of results that you can retrieve.<br/>Subscribers:  A list of subscribers that are associated with a notification.<br/>        """
        pass

    def execute_budget_action(self, ExecutionType: str, ActionId: str, BudgetName: str, AccountId: str) -> ExecuteBudgetActionResponse:
        r""" Executes a budget action. 

        :param self:
        :param ExecutionType:   The type of execution. <br/>ActionId:   A system-generated universally unique identifier (UUID) for the action. <br/>BudgetName:   A string that represents the budget name. The ":" and "\" characters aren't allowed.<br/>AccountId:  The account ID of the user. It should be a 12-digit number.<br/>
        :return: ExecutionType:   The type of execution. <br/>ActionId:   A system-generated universally unique identifier (UUID) for the action. <br/>BudgetName:   A string that represents the budget name. The ":" and "\" characters aren't allowed.<br/>AccountId:  The account ID of the user. It should be a 12-digit number.<br/>        """
        pass

    def update_budget(self, NewBudget: Budget, AccountId: str) -> UpdateBudgetResponse:
        r"""Updates a budget. You can change every part of a budget except for the <code>budgetName</code> and the <code>calculatedSpend</code>. When you modify a budget, the <code>calculatedSpend</code> drops to zero until AWS has new usage data to use for forecasting. <important> Only one of <code>BudgetLimit</code> or <code>PlannedBudgetLimits</code> can be present in the syntax at one time. Use the syntax that matches your case. The Request Syntax section shows the <code>BudgetLimit</code> syntax. For <code>PlannedBudgetLimits</code>, see the <a href="https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_budgets_UpdateBudget.html#API_UpdateBudget_Examples">Examples</a> section.  </important>

        :param self:
        :param NewBudget:  The budget that you want to update your budget to.:<br/>AccountId:  The <code>accountId</code> that is associated with the budget that you want to update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdatedTime</i> The last time that you updated this budget.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BudgetType</i> Whether this budget tracks costs, usage, RI utilization, RI coverage, Savings Plans utilization, or Savings Plans coverage.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CalculatedSpend</i> The actual and forecasted cost or usage that the budget tracks.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CalculatedSpend</b>: The actual and forecasted cost or usage that the budget tracks.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TimePeriod</i> The period of time that is covered by a budget. The period has a start date and an end date. The start date must come before the end date. The end date must come before <code>06/15/87 00:00 UTC</code>.  If you create your budget and don't specify a start date, AWS defaults to the start of your chosen time period (DAILY, MONTHLY, QUARTERLY, or ANNUALLY). For example, if you created your budget on January 24, 2018, chose <code>DAILY</code>, and didn't set a start date, AWS set your start date to <code>01/24/18 00:00 UTC</code>. If you chose <code>MONTHLY</code>, AWS set your start date to <code>01/01/18 00:00 UTC</code>. If you didn't specify an end date, AWS set your end date to <code>06/15/87 00:00 UTC</code>. The defaults are the same for the AWS Billing and Cost Management console and the API.  You can change either date with the <code>UpdateBudget</code> operation. After the end date, AWS deletes the budget and all associated notifications and subscribers.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TimePeriod</b>: The period of time that is covered by a budget. The period has a start date and an end date. The start date must come before the end date. The end date must come before <code>06/15/87 00:00 UTC</code>.  If you create your budget and don't specify a start date, AWS defaults to the start of your chosen time period (DAILY, MONTHLY, QUARTERLY, or ANNUALLY). For example, if you created your budget on January 24, 2018, chose <code>DAILY</code>, and didn't set a start date, AWS set your start date to <code>01/24/18 00:00 UTC</code>. If you chose <code>MONTHLY</code>, AWS set your start date to <code>01/01/18 00:00 UTC</code>. If you didn't specify an end date, AWS set your end date to <code>06/15/87 00:00 UTC</code>. The defaults are the same for the AWS Billing and Cost Management console and the API.  You can change either date with the <code>UpdateBudget</code> operation. After the end date, AWS deletes the budget and all associated notifications and subscribers.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TimeUnit</i> The length of time until a budget resets the actual and forecasted spend.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CostTypes</i> The types of costs that are included in this <code>COST</code> budget.  <code>USAGE</code>, <code>RI_UTILIZATION</code>, <code>RI_COVERAGE</code>, <code>SAVINGS_PLANS_UTILIZATION</code>, and <code>SAVINGS_PLANS_COVERAGE</code> budgets do not have <code>CostTypes</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CostTypes</b>: The types of costs that are included in this <code>COST</code> budget.  <code>USAGE</code>, <code>RI_UTILIZATION</code>, <code>RI_COVERAGE</code>, <code>SAVINGS_PLANS_UTILIZATION</code>, and <code>SAVINGS_PLANS_COVERAGE</code> budgets do not have <code>CostTypes</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CostFilters</i> The cost filters, such as service or tag, that are applied to a budget. AWS Budgets supports the following services as a filter for RI budgets: <ul> <li> Amazon Elastic Compute Cloud - Compute </li> <li> Amazon Redshift </li> <li> Amazon Relational Database Service </li> <li> Amazon ElastiCache </li> <li> Amazon Elasticsearch Service </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PlannedBudgetLimits</i> A map containing multiple <code>BudgetLimit</code>, including current or future limits.  <code>PlannedBudgetLimits</code> is available for cost or usage budget and supports monthly and quarterly <code>TimeUnit</code>.  For monthly budgets, provide 12 months of <code>PlannedBudgetLimits</code> values. This must start from the current month and include the next 11 months. The <code>key</code> is the start of the month, <code>UTC</code> in epoch seconds.  For quarterly budgets, provide 4 quarters of <code>PlannedBudgetLimits</code> value entries in standard calendar quarter increments. This must start from the current quarter and include the next 3 quarters. The <code>key</code> is the start of the quarter, <code>UTC</code> in epoch seconds.  If the planned budget expires before 12 months for monthly or 4 quarters for quarterly, provide the <code>PlannedBudgetLimits</code> values only for the remaining periods. If the budget begins at a date in the future, provide <code>PlannedBudgetLimits</code> values from the start date of the budget.  After all of the <code>BudgetLimit</code> values in <code>PlannedBudgetLimits</code> are used, the budget continues to use the last limit as the <code>BudgetLimit</code>. At that point, the planned budget provides the same experience as a fixed budget.   <code>DescribeBudget</code> and <code>DescribeBudgets</code> response along with <code>PlannedBudgetLimits</code> will also contain <code>BudgetLimit</code> representing the current month or quarter limit present in <code>PlannedBudgetLimits</code>. This only applies to budgets created with <code>PlannedBudgetLimits</code>. Budgets created without <code>PlannedBudgetLimits</code> will only contain <code>BudgetLimit</code>, and no <code>PlannedBudgetLimits</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BudgetLimit</i> The total amount of cost, usage, RI utilization, RI coverage, Savings Plans utilization, or Savings Plans coverage that you want to track with your budget.  <code>BudgetLimit</code> is required for cost or usage budgets, but optional for RI or Savings Plans utilization or coverage budgets. RI and Savings Plans utilization or coverage budgets default to <code>100</code>, which is the only valid value for RI or Savings Plans utilization or coverage budgets. You can't use <code>BudgetLimit</code> with <code>PlannedBudgetLimits</code> for <code>CreateBudget</code> and <code>UpdateBudget</code> actions. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>BudgetLimit</b>: The total amount of cost, usage, RI utilization, RI coverage, Savings Plans utilization, or Savings Plans coverage that you want to track with your budget.  <code>BudgetLimit</code> is required for cost or usage budgets, but optional for RI or Savings Plans utilization or coverage budgets. RI and Savings Plans utilization or coverage budgets default to <code>100</code>, which is the only valid value for RI or Savings Plans utilization or coverage budgets. You can't use <code>BudgetLimit</code> with <code>PlannedBudgetLimits</code> for <code>CreateBudget</code> and <code>UpdateBudget</code> actions. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BudgetName</i> The name of a budget. The name must be unique within an account. The <code>:</code> and <code>\</code> characters aren't allowed in <code>BudgetName</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Unit</i> The unit of measurement that is used for the budget forecast, actual spend, or budget threshold, such as dollars or GB.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Amount</i> The cost or usage amount that is associated with a budget forecast, actual spend, or budget threshold.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UseAmortized</i> Specifies whether a budget uses the amortized rate. The default value is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeDiscount</i> Specifies whether a budget includes discounts. The default value is <code>true</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeSupport</i> Specifies whether a budget includes support subscription fees. The default value is <code>true</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeOtherSubscription</i> Specifies whether a budget includes non-RI subscription costs. The default value is <code>true</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeRecurring</i> Specifies whether a budget includes recurring fees such as monthly RI fees. The default value is <code>true</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeUpfront</i> Specifies whether a budget includes upfront RI costs. The default value is <code>true</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeCredit</i> Specifies whether a budget includes credits. The default value is <code>true</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeRefund</i> Specifies whether a budget includes refunds. The default value is <code>true</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UseBlended</i> Specifies whether a budget uses a blended rate. The default value is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeSubscription</i> Specifies whether a budget includes subscriptions. The default value is <code>true</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeTax</i> Specifies whether a budget includes taxes. The default value is <code>true</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>End</i> The end date for a budget. If you didn't specify an end date, AWS set your end date to <code>06/15/87 00:00 UTC</code>. The defaults are the same for the AWS Billing and Cost Management console and the API. After the end date, AWS deletes the budget and all associated notifications and subscribers. You can change your end date with the <code>UpdateBudget</code> operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Start</i> The start date for a budget. If you created your budget and didn't specify a start date, AWS defaults to the start of your chosen time period (DAILY, MONTHLY, QUARTERLY, or ANNUALLY). For example, if you created your budget on January 24, 2018, chose <code>DAILY</code>, and didn't set a start date, AWS set your start date to <code>01/24/18 00:00 UTC</code>. If you chose <code>MONTHLY</code>, AWS set your start date to <code>01/01/18 00:00 UTC</code>. The defaults are the same for the AWS Billing and Cost Management console and the API. You can change your start date with the <code>UpdateBudget</code> operation.<br/>The amount of cost, usage, RI units, or Savings Plans units that you have used.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ActualSpend</b>: The amount of cost, usage, RI units, or Savings Plans units that you have used.
        :return:         """
        pass

    def update_budget_action(self, ActionId: str, BudgetName: str, AccountId: str, NotificationType: str=None, ActionThreshold: ActionThreshold=None, Definition: Definition=None, ExecutionRoleArn: str=None, ApprovalModel: str=None, Subscribers: List[Subscriber]=None) -> UpdateBudgetActionResponse:
        r""" Updates a budget action. 

        :param self:
        :param Subscribers:   A list of subscribers.<br/>ApprovalModel:   This specifies if the action needs manual or automatic approval. <br/>ExecutionRoleArn:   The role passed for action execution and reversion. Roles and actions must be in the same account. <br/>Definition:   Specifies all of the type-specific parameters. :<br/>ActionThreshold:   The trigger threshold of the action. :<br/>NotificationType:   The type of a notification. It must be ACTUAL or FORECASTED.<br/>ActionId:   A system-generated universally unique identifier (UUID) for the action. <br/>BudgetName:   A string that represents the budget name. The ":" and "\" characters aren't allowed.<br/>AccountId:  The account ID of the user. It should be a 12-digit number.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActionThresholdType</i>  The type of threshold for a notification.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActionThresholdValue</i>  The threshold of a notification.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SsmActionDefinition</i>  The AWS Systems Manager (SSM) action definition details. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SsmActionDefinition</b>:  The AWS Systems Manager (SSM) action definition details. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ScpActionDefinition</i>  The service control policies (SCPs) action definition details. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ScpActionDefinition</b>:  The service control policies (SCPs) action definition details. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IamActionDefinition</i>  The AWS Identity and Access Management (IAM) action definition details. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>IamActionDefinition</b>:  The AWS Identity and Access Management (IAM) action definition details. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Users</i>  A list of users to be attached. There must be at least one user. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Groups</i>  A list of groups to be attached. There must be at least one group. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Roles</i>  A list of roles to be attached. There must be at least one role. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PolicyArn</i>  The Amazon Resource Name (ARN) of the policy to be attached. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetIds</i>  A list of target IDs. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PolicyId</i>  The policy ID attached. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceIds</i>  The EC2 and RDS instance IDs. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Region</i>  The Region to run the SSM document. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ActionSubType</i>  The action subType. <br/>
        :return: NewAction:   The updated action resource information. :<br/>OldAction:   The previous action resource information. :<br/>BudgetName:   A string that represents the budget name. The ":" and "\" characters aren't allowed.<br/>AccountId:  The account ID of the user. It should be a 12-digit number.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Subscribers</i>  A list of subscribers.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i>  The status of action. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApprovalModel</i>  This specifies if the action needs manual or automatic approval. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExecutionRoleArn</i>  The role passed for action execution and reversion. Roles and actions must be in the same account. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Definition</i>  Where you specify all of the type-specific parameters. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Definition</b>:  Where you specify all of the type-specific parameters. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActionThreshold</i>  The trigger threshold of the action. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ActionThreshold</b>:  The trigger threshold of the action. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActionType</i>  The type of action. This defines the type of tasks that can be carried out by this action. This field also determines the format for definition. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NotificationType</i>  The type of a notification. It must be ACTUAL or FORECASTED.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BudgetName</i>  A string that represents the budget name. The ":" and "\" characters aren't allowed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActionId</i>  A system-generated universally unique identifier (UUID) for the action. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ActionThresholdType</i>  The type of threshold for a notification.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ActionThresholdValue</i>  The threshold of a notification.<br/> The AWS Identity and Access Management (IAM) action definition details. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>IamActionDefinition</b>:  The AWS Identity and Access Management (IAM) action definition details. &nbsp;&nbsp;&nbsp;&nbsp; <i>Subscribers</i>  A list of subscribers.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i>  The status of action. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApprovalModel</i>  This specifies if the action needs manual or automatic approval. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExecutionRoleArn</i>  The role passed for action execution and reversion. Roles and actions must be in the same account. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Definition</i>  Where you specify all of the type-specific parameters. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Definition</b>:  Where you specify all of the type-specific parameters. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActionThreshold</i>  The trigger threshold of the action. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ActionThreshold</b>:  The trigger threshold of the action. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActionType</i>  The type of action. This defines the type of tasks that can be carried out by this action. This field also determines the format for definition. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NotificationType</i>  The type of a notification. It must be ACTUAL or FORECASTED.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BudgetName</i>  A string that represents the budget name. The ":" and "\" characters aren't allowed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActionId</i>  A system-generated universally unique identifier (UUID) for the action. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ActionThresholdType</i>  The type of threshold for a notification.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ActionThresholdValue</i>  The threshold of a notification.<br/> The AWS Identity and Access Management (IAM) action definition details. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>IamActionDefinition</b>:  The AWS Identity and Access Management (IAM) action definition details.         """
        pass

    def update_notification(self, NewNotification: Notification, OldNotification: Notification, BudgetName: str, AccountId: str) -> UpdateNotificationResponse:
        r"""Updates a notification.

        :param self:
        :param NewNotification:  The updated notification to be associated with a budget.:<br/>OldNotification:  The previous notification that is associated with a budget.:<br/>BudgetName:  The name of the budget whose notification you want to update.<br/>AccountId:  The <code>accountId</code> that is associated with the budget whose notification you want to update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NotificationState</i> Whether this notification is in alarm. If a budget notification is in the <code>ALARM</code> state, you have passed the set threshold for the budget.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ThresholdType</i> The type of threshold for a notification. For <code>ABSOLUTE_VALUE</code> thresholds, AWS notifies you when you go over or are forecasted to go over your total cost threshold. For <code>PERCENTAGE</code> thresholds, AWS notifies you when you go over or are forecasted to go over a certain percentage of your forecasted spend. For example, if you have a budget for 200 dollars and you have a <code>PERCENTAGE</code> threshold of 80%, AWS notifies you when you go over 160 dollars.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Threshold</i> The threshold that is associated with a notification. Thresholds are always a percentage, and many customers find value being alerted between 50% - 200% of the budgeted amount. The maximum limit for your threshold is 1,000,000% above the budgeted amount.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ComparisonOperator</i> The comparison that is used for this notification.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NotificationType</i> Whether the notification is for how much you have spent (<code>ACTUAL</code>) or for how much you're forecasted to spend (<code>FORECASTED</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NotificationState</i> Whether this notification is in alarm. If a budget notification is in the <code>ALARM</code> state, you have passed the set threshold for the budget.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ThresholdType</i> The type of threshold for a notification. For <code>ABSOLUTE_VALUE</code> thresholds, AWS notifies you when you go over or are forecasted to go over your total cost threshold. For <code>PERCENTAGE</code> thresholds, AWS notifies you when you go over or are forecasted to go over a certain percentage of your forecasted spend. For example, if you have a budget for 200 dollars and you have a <code>PERCENTAGE</code> threshold of 80%, AWS notifies you when you go over 160 dollars.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Threshold</i> The threshold that is associated with a notification. Thresholds are always a percentage, and many customers find value being alerted between 50% - 200% of the budgeted amount. The maximum limit for your threshold is 1,000,000% above the budgeted amount.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ComparisonOperator</i> The comparison that is used for this notification.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NotificationType</i> Whether the notification is for how much you have spent (<code>ACTUAL</code>) or for how much you're forecasted to spend (<code>FORECASTED</code>).<br/>
        :return:         """
        pass

    def update_subscriber(self, NewSubscriber: Subscriber, OldSubscriber: Subscriber, Notification: Notification, BudgetName: str, AccountId: str) -> UpdateSubscriberResponse:
        r"""Updates a subscriber.

        :param self:
        :param NewSubscriber:  The updated subscriber that is associated with a budget notification.:<br/>OldSubscriber:  The previous subscriber that is associated with a budget notification.:<br/>Notification:  The notification whose subscriber you want to update.:<br/>BudgetName:  The name of the budget whose subscriber you want to update.<br/>AccountId:  The <code>accountId</code> that is associated with the budget whose subscriber you want to update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NotificationState</i> Whether this notification is in alarm. If a budget notification is in the <code>ALARM</code> state, you have passed the set threshold for the budget.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ThresholdType</i> The type of threshold for a notification. For <code>ABSOLUTE_VALUE</code> thresholds, AWS notifies you when you go over or are forecasted to go over your total cost threshold. For <code>PERCENTAGE</code> thresholds, AWS notifies you when you go over or are forecasted to go over a certain percentage of your forecasted spend. For example, if you have a budget for 200 dollars and you have a <code>PERCENTAGE</code> threshold of 80%, AWS notifies you when you go over 160 dollars.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Threshold</i> The threshold that is associated with a notification. Thresholds are always a percentage, and many customers find value being alerted between 50% - 200% of the budgeted amount. The maximum limit for your threshold is 1,000,000% above the budgeted amount.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ComparisonOperator</i> The comparison that is used for this notification.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NotificationType</i> Whether the notification is for how much you have spent (<code>ACTUAL</code>) or for how much you're forecasted to spend (<code>FORECASTED</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Address</i> The address that AWS sends budget notifications to, either an SNS topic or an email. When you create a subscriber, the value of <code>Address</code> can't contain line breaks.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubscriptionType</i> The type of notification that AWS sends to a subscriber.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Address</i> The address that AWS sends budget notifications to, either an SNS topic or an email. When you create a subscriber, the value of <code>Address</code> can't contain line breaks.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubscriptionType</i> The type of notification that AWS sends to a subscriber.<br/>
        :return:         """
        pass





class CostExplorer(BaseClient):
    r"""The Cost Explorer API enables you to programmatically query your cost and usage data. You can query for aggregated data such as total monthly costs or total daily usage. You can also query for granular data, such as the number of daily write operations for Amazon DynamoDB database tables in your production environment.  Service Endpoint The Cost Explorer API provides the following endpoint: <ul> <li>  <code>https://ce.us-east-1.amazonaws.com</code>  </li> </ul> For information about costs associated with the Cost Explorer API, see <a href="http://aws.amazon.com/aws-cost-management/pricing/">AWS Cost Management Pricing</a>."""




    class CreateAnomalyMonitorRequest(Mapping):
        pass
    
    class CreateAnomalyMonitorResponse(Mapping):
        pass
    
    class AnomalyMonitor(Mapping):
        pass
    
    class CreateAnomalySubscriptionRequest(Mapping):
        pass
    
    class CreateAnomalySubscriptionResponse(Mapping):
        pass
    
    class AnomalySubscription(Mapping):
        pass
    
    class CreateCostCategoryDefinitionRequest(Mapping):
        pass
    
    class CreateCostCategoryDefinitionResponse(Mapping):
        pass
    
    class CostCategoryRule(Mapping):
        pass
    
    class DeleteAnomalyMonitorRequest(Mapping):
        pass
    
    class DeleteAnomalyMonitorResponse(Mapping):
        pass
    
    class DeleteAnomalySubscriptionRequest(Mapping):
        pass
    
    class DeleteAnomalySubscriptionResponse(Mapping):
        pass
    
    class DeleteCostCategoryDefinitionRequest(Mapping):
        pass
    
    class DeleteCostCategoryDefinitionResponse(Mapping):
        pass
    
    class DescribeCostCategoryDefinitionRequest(Mapping):
        pass
    
    class DescribeCostCategoryDefinitionResponse(Mapping):
        pass
    
    class GetAnomaliesRequest(Mapping):
        pass
    
    class GetAnomaliesResponse(Mapping):
        pass
    
    class AnomalyDateInterval(Mapping):
        pass
    
    class TotalImpactFilter(Mapping):
        pass
    
    class GetAnomalyMonitorsRequest(Mapping):
        pass
    
    class GetAnomalyMonitorsResponse(Mapping):
        pass
    
    class Value(object):
        pass
    
    class GetAnomalySubscriptionsRequest(Mapping):
        pass
    
    class GetAnomalySubscriptionsResponse(Mapping):
        pass
    
    class GetCostAndUsageRequest(Mapping):
        pass
    
    class GetCostAndUsageResponse(Mapping):
        pass
    
    class DateInterval(Mapping):
        pass
    
    class Expression(Mapping):
        pass
    
    class MetricName(object):
        pass
    
    class GroupDefinition(Mapping):
        pass
    
    class GetCostAndUsageWithResourcesRequest(Mapping):
        pass
    
    class GetCostAndUsageWithResourcesResponse(Mapping):
        pass
    
    class GetCostCategoriesRequest(Mapping):
        pass
    
    class GetCostCategoriesResponse(Mapping):
        pass
    
    class SortDefinition(Mapping):
        pass
    
    class GetCostForecastRequest(Mapping):
        pass
    
    class GetCostForecastResponse(Mapping):
        pass
    
    class GetDimensionValuesRequest(Mapping):
        pass
    
    class GetDimensionValuesResponse(Mapping):
        pass
    
    class GetReservationCoverageRequest(Mapping):
        pass
    
    class GetReservationCoverageResponse(Mapping):
        pass
    
    class GetReservationPurchaseRecommendationRequest(Mapping):
        pass
    
    class GetReservationPurchaseRecommendationResponse(Mapping):
        pass
    
    class ServiceSpecification(Mapping):
        pass
    
    class GetReservationUtilizationRequest(Mapping):
        pass
    
    class GetReservationUtilizationResponse(Mapping):
        pass
    
    class GetRightsizingRecommendationRequest(Mapping):
        pass
    
    class GetRightsizingRecommendationResponse(Mapping):
        pass
    
    class RightsizingRecommendationConfiguration(Mapping):
        pass
    
    class GetSavingsPlansCoverageRequest(Mapping):
        pass
    
    class GetSavingsPlansCoverageResponse(Mapping):
        pass
    
    class GetSavingsPlansPurchaseRecommendationRequest(Mapping):
        pass
    
    class GetSavingsPlansPurchaseRecommendationResponse(Mapping):
        pass
    
    class GetSavingsPlansUtilizationRequest(Mapping):
        pass
    
    class GetSavingsPlansUtilizationResponse(Mapping):
        pass
    
    class GetSavingsPlansUtilizationDetailsRequest(Mapping):
        pass
    
    class GetSavingsPlansUtilizationDetailsResponse(Mapping):
        pass
    
    class SavingsPlansDataType(object):
        pass
    
    class GetTagsRequest(Mapping):
        pass
    
    class GetTagsResponse(Mapping):
        pass
    
    class GetUsageForecastRequest(Mapping):
        pass
    
    class GetUsageForecastResponse(Mapping):
        pass
    
    class ListCostCategoryDefinitionsRequest(Mapping):
        pass
    
    class ListCostCategoryDefinitionsResponse(Mapping):
        pass
    
    class ProvideAnomalyFeedbackRequest(Mapping):
        pass
    
    class ProvideAnomalyFeedbackResponse(Mapping):
        pass
    
    class UpdateAnomalyMonitorRequest(Mapping):
        pass
    
    class UpdateAnomalyMonitorResponse(Mapping):
        pass
    
    class UpdateAnomalySubscriptionRequest(Mapping):
        pass
    
    class UpdateAnomalySubscriptionResponse(Mapping):
        pass
    
    class NullableNonNegativeDouble(object):
        pass
    
    class Arn(object):
        pass
    
    class Subscriber(Mapping):
        pass
    
    class UpdateCostCategoryDefinitionRequest(Mapping):
        pass
    
    class UpdateCostCategoryDefinitionResponse(Mapping):
        pass
    
    def create_anomaly_monitor(self, AnomalyMonitor: AnomalyMonitor) -> CreateAnomalyMonitorResponse:
        r"""Creates a new cost anomaly detection monitor with the requested type and monitor specification. 

        :param self:
        :param AnomalyMonitor:   The cost anomaly detection monitor object that you want to create.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DimensionalValueCount</i>  The value for evaluated dimensions. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MonitorSpecification</i> Use <code>Expression</code> to filter by cost or by usage. There are two patterns:  <ul> <li> Simple dimension values - You can set the dimension name and values for the filters that you plan to use. For example, you can filter for <code>REGION==us-east-1 OR REGION==us-west-1</code>. For <code>GetRightsizingRecommendation</code>, the Region is a full name (for example, <code>REGION==US East (N. Virginia)</code>. The <code>Expression</code> example looks like:  <code>{ "Dimensions": { "Key": "REGION", "Values": [ "us-east-1", “us-west-1” ] } }</code>  The list of dimension values are OR'd together to retrieve cost or usage data. You can create <code>Expression</code> and <code>DimensionValues</code> objects using either <code>with*</code> methods or <code>set*</code> methods in multiple lines.  </li> <li> Compound dimension values with logical operations - You can use multiple <code>Expression</code> types and the logical operators <code>AND/OR/NOT</code> to create a list of one or more <code>Expression</code> objects. This allows you to filter on more advanced options. For example, you can filter on <code>((REGION == us-east-1 OR REGION == us-west-1) OR (TAG.Type == Type1)) AND (USAGE_TYPE != DataTransfer)</code>. The <code>Expression</code> for that looks like this:  <code>{ "And": [ {"Or": [ {"Dimensions": { "Key": "REGION", "Values": [ "us-east-1", "us-west-1" ] }}, {"Tags": { "Key": "TagName", "Values": ["Value1"] } } ]}, {"Not": {"Dimensions": { "Key": "USAGE_TYPE", "Values": ["DataTransfer"] }}} ] } </code>  <note> Because each <code>Expression</code> can have only one operator, the service returns an error if more than one is specified. The following example shows an <code>Expression</code> object that creates an error. </note>  <code> { "And": [ ... ], "DimensionValues": { "Dimension": "USAGE_TYPE", "Values": [ "DataTransfer" ] } } </code>  </li> </ul> <note> For the <code>GetRightsizingRecommendation</code> action, a combination of OR and NOT is not supported. OR is not supported between different dimensions, or dimensions and tags. NOT operators aren't supported. Dimensions are also limited to <code>LINKED_ACCOUNT</code>, <code>REGION</code>, or <code>RIGHTSIZING_TYPE</code>. For the <code>GetReservationPurchaseRecommendation</code> action, only NOT is supported. AND and OR are not supported. Dimensions are limited to <code>LINKED_ACCOUNT</code>. </note>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>MonitorSpecification</b>: Use <code>Expression</code> to filter by cost or by usage. There are two patterns:  <ul> <li> Simple dimension values - You can set the dimension name and values for the filters that you plan to use. For example, you can filter for <code>REGION==us-east-1 OR REGION==us-west-1</code>. For <code>GetRightsizingRecommendation</code>, the Region is a full name (for example, <code>REGION==US East (N. Virginia)</code>. The <code>Expression</code> example looks like:  <code>{ "Dimensions": { "Key": "REGION", "Values": [ "us-east-1", “us-west-1” ] } }</code>  The list of dimension values are OR'd together to retrieve cost or usage data. You can create <code>Expression</code> and <code>DimensionValues</code> objects using either <code>with*</code> methods or <code>set*</code> methods in multiple lines.  </li> <li> Compound dimension values with logical operations - You can use multiple <code>Expression</code> types and the logical operators <code>AND/OR/NOT</code> to create a list of one or more <code>Expression</code> objects. This allows you to filter on more advanced options. For example, you can filter on <code>((REGION == us-east-1 OR REGION == us-west-1) OR (TAG.Type == Type1)) AND (USAGE_TYPE != DataTransfer)</code>. The <code>Expression</code> for that looks like this:  <code>{ "And": [ {"Or": [ {"Dimensions": { "Key": "REGION", "Values": [ "us-east-1", "us-west-1" ] }}, {"Tags": { "Key": "TagName", "Values": ["Value1"] } } ]}, {"Not": {"Dimensions": { "Key": "USAGE_TYPE", "Values": ["DataTransfer"] }}} ] } </code>  <note> Because each <code>Expression</code> can have only one operator, the service returns an error if more than one is specified. The following example shows an <code>Expression</code> object that creates an error. </note>  <code> { "And": [ ... ], "DimensionValues": { "Dimension": "USAGE_TYPE", "Values": [ "DataTransfer" ] } } </code>  </li> </ul> <note> For the <code>GetRightsizingRecommendation</code> action, a combination of OR and NOT is not supported. OR is not supported between different dimensions, or dimensions and tags. NOT operators aren't supported. Dimensions are also limited to <code>LINKED_ACCOUNT</code>, <code>REGION</code>, or <code>RIGHTSIZING_TYPE</code>. For the <code>GetReservationPurchaseRecommendation</code> action, only NOT is supported. AND and OR are not supported. Dimensions are limited to <code>LINKED_ACCOUNT</code>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MonitorDimension</i>  The dimensions to evaluate. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MonitorType</i>  The possible type values. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastEvaluatedDate</i>  The date when the monitor last evaluated for anomalies. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdatedDate</i>  The date when the monitor was last updated. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i>  The date when the monitor was created. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MonitorName</i>  The name of the monitor. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MonitorArn</i>  The Amazon Resource Name (ARN) value. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>And</i> Return results that match both <code>Dimension</code> objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Or</i> Return results that match either <code>Dimension</code> object.<br/>Return results that don't match a <code>Dimension</code> object.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Not</b>: Return results that don't match a <code>Dimension</code> object.
        :return: MonitorArn:   The unique identifier of your newly created cost anomaly detection monitor.<br/>        """
        pass

    def create_anomaly_subscription(self, AnomalySubscription: AnomalySubscription) -> CreateAnomalySubscriptionResponse:
        r"""Adds a subscription to a cost anomaly detection monitor. You can use each subscription to define subscribers with email or SNS notifications. Email subscribers can set a dollar threshold and a time frequency for receiving notifications. 

        :param self:
        :param AnomalySubscription:   The cost anomaly subscription object that you want to create. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubscriptionName</i>  The name for the subscription. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Frequency</i>  The frequency at which anomaly reports are sent over email. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Threshold</i>  The dollar value that triggers a notification if the threshold is exceeded. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Subscribers</i>  A list of subscribers to notify. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MonitorArnList</i>  A list of cost anomaly monitors. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccountId</i>  Your unique account identifier. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubscriptionArn</i>  The <code>AnomalySubscription</code> Amazon Resource Name (ARN). <br/>
        :return: SubscriptionArn:   The unique identifier of your newly created cost anomaly subscription. <br/>        """
        pass

    def create_cost_category_definition(self, Rules: List[CostCategoryRule], RuleVersion: str, Name: str, DefaultValue: str=None) -> CreateCostCategoryDefinitionResponse:
        r"""Creates a new Cost Category with the requested name and rules.

        :param self:
        :param DefaultValue:  The default value for the cost category.<br/>Rules:  The Cost Category rules used to categorize costs. For more information, see <a href="https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_CostCategoryRule.html">CostCategoryRule</a>.<br/>RuleVersion:  The rule schema version in this particular Cost Category.<br/>Name:  The unique name of the Cost Category.<br/>
        :return: EffectiveStart:   The Cost Category's effective start date. <br/>CostCategoryArn:   The unique identifier for your newly created Cost Category. <br/>        """
        pass

    def delete_anomaly_monitor(self, MonitorArn: str) -> DeleteAnomalyMonitorResponse:
        r"""Deletes a cost anomaly monitor. 

        :param self:
        :param MonitorArn:   The unique identifier of the cost anomaly monitor that you want to delete. <br/>
        :return:         """
        pass

    def delete_anomaly_subscription(self, SubscriptionArn: str) -> DeleteAnomalySubscriptionResponse:
        r"""Deletes a cost anomaly subscription. 

        :param self:
        :param SubscriptionArn:   The unique identifier of the cost anomaly subscription that you want to delete. <br/>
        :return:         """
        pass

    def delete_cost_category_definition(self, CostCategoryArn: str) -> DeleteCostCategoryDefinitionResponse:
        r"""Deletes a Cost Category. Expenses from this month going forward will no longer be categorized with this Cost Category.

        :param self:
        :param CostCategoryArn:   The unique identifier for your Cost Category. <br/>
        :return: EffectiveEnd:   The effective end date of the Cost Category as a result of deleting it. No costs after this date will be categorized by the deleted Cost Category. <br/>CostCategoryArn:   The unique identifier for your Cost Category. <br/>        """
        pass

    def describe_cost_category_definition(self, CostCategoryArn: str, EffectiveOn: str=None) -> DescribeCostCategoryDefinitionResponse:
        r"""Returns the name, ARN, rules, definition, and effective dates of a Cost Category that's defined in the account. You have the option to use <code>EffectiveOn</code> to return a Cost Category that is active on a specific date. If there is no <code>EffectiveOn</code> specified, you’ll see a Cost Category that is effective on the current date. If Cost Category is still effective, <code>EffectiveEnd</code> is omitted in the response. 

        :param self:
        :param EffectiveOn:   The date when the Cost Category was effective. <br/>CostCategoryArn:   The unique identifier for your Cost Category. <br/>
        :return: CostCategory:  The structure of Cost Categories. This includes detailed metadata and the set of rules for the <code>CostCategory</code> object.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultValue</i> The default value for the cost category.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProcessingStatus</i>  The list of processing statuses for Cost Management products for a specific cost category. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Rules</i>  Rules are processed in order. If there are multiple rules that match the line item, then the first rule to match is used to determine that Cost Category value. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RuleVersion</i> The rule schema version in this particular Cost Category.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The unique name of the Cost Category.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EffectiveEnd</i>  The Cost Category's effective end date.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EffectiveStart</i>  The Cost Category's effective start date.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CostCategoryArn</i>  The unique identifier for your Cost Category. <br/>        """
        pass

    def get_anomalies(self, DateInterval: AnomalyDateInterval, MonitorArn: str=None, Feedback: str=None, TotalImpact: TotalImpactFilter=None, NextPageToken: str=None, MaxResults: int=None) -> GetAnomaliesResponse:
        r"""Retrieves all of the cost anomalies detected on your account, during the time period specified by the <code>DateInterval</code> object. 

        :param self:
        :param MaxResults:   The number of entries a paginated response contains. <br/>NextPageToken:   The token to retrieve the next set of results. AWS provides the token when the response from a previous call has more results than the maximum page size. <br/>TotalImpact:  Filters anomaly results by the total impact field on the anomaly object. For example, you can filter anomalies <code>GREATER_THAN 200.00</code> to retrieve anomalies, with an estimated dollar impact greater than 200. :<br/>Feedback:  Filters anomaly results by the feedback field on the anomaly object. <br/>DateInterval:  Assigns the start and end dates for retrieving cost anomalies. The returned anomaly object will have an <code>AnomalyEndDate</code> in the specified time range. :<br/>MonitorArn:  Retrieves all of the cost anomalies detected for a specific cost anomaly monitor Amazon Resource Name (ARN). <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndDate</i>  The last date an anomaly was observed. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StartDate</i>  The first date an anomaly was observed. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndValue</i>  The upper bound dollar value used in the filter. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StartValue</i>  The lower bound dollar value used in the filter. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NumericOperator</i>  The comparing value used in the filter. <br/>
        :return: NextPageToken:   The token to retrieve the next set of results. AWS provides the token when the response from a previous call has more results than the maximum page size. <br/>Anomalies:   A list of cost anomalies. <br/>        """
        pass

    def get_anomaly_monitors(self, MonitorArnList: List[Value]=None, NextPageToken: str=None, MaxResults: int=None) -> GetAnomalyMonitorsResponse:
        r"""Retrieves the cost anomaly monitor definitions for your account. You can filter using a list of cost anomaly monitor Amazon Resource Names (ARNs). 

        :param self:
        :param MaxResults:   The number of entries a paginated response contains. <br/>NextPageToken:   The token to retrieve the next set of results. AWS provides the token when the response from a previous call has more results than the maximum page size. <br/>MonitorArnList:   A list of cost anomaly monitor ARNs. <br/>
        :return: NextPageToken:   The token to retrieve the next set of results. AWS provides the token when the response from a previous call has more results than the maximum page size. <br/>AnomalyMonitors:   A list of cost anomaly monitors that includes the detailed metadata for each monitor. <br/>        """
        pass

    def get_anomaly_subscriptions(self, SubscriptionArnList: List[Value]=None, MonitorArn: str=None, NextPageToken: str=None, MaxResults: int=None) -> GetAnomalySubscriptionsResponse:
        r"""Retrieves the cost anomaly subscription objects for your account. You can filter using a list of cost anomaly monitor Amazon Resource Names (ARNs). 

        :param self:
        :param MaxResults:   The number of entries a paginated response contains. <br/>NextPageToken:   The token to retrieve the next set of results. AWS provides the token when the response from a previous call has more results than the maximum page size. <br/>MonitorArn:   Cost anomaly monitor ARNs. <br/>SubscriptionArnList:   A list of cost anomaly subscription ARNs. <br/>
        :return: NextPageToken:   The token to retrieve the next set of results. AWS provides the token when the response from a previous call has more results than the maximum page size. <br/>AnomalySubscriptions:   A list of cost anomaly subscriptions that includes the detailed metadata for each one. <br/>        """
        pass

    def get_cost_and_usage(self, Metrics: List[MetricName], Granularity: str, TimePeriod: DateInterval, Filter: Expression=None, GroupBy: List[GroupDefinition]=None, NextPageToken: str=None) -> GetCostAndUsageResponse:
        r"""Retrieves cost and usage metrics for your account. You can specify which cost and usage-related metric, such as <code>BlendedCosts</code> or <code>UsageQuantity</code>, that you want the request to return. You can also filter and group your data by various dimensions, such as <code>SERVICE</code> or <code>AZ</code>, in a specific time range. For a complete list of valid dimensions, see the <a href="https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_GetDimensionValues.html">GetDimensionValues</a> operation. Management account in an organization in AWS Organizations have access to all member accounts. For information about filter limitations, see <a href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/billing-limits.html">Quotas and restrictions</a> in the <i>Billing and Cost Management User Guide</i>.

        :param self:
        :param NextPageToken:  The token to retrieve the next set of results. AWS provides the token when the response from a previous call has more results than the maximum page size.<br/>GroupBy:  You can group AWS costs using up to two different groups, either dimensions, tag keys, cost categories, or any two group by types. When you group by tag key, you get all tag values, including empty strings. Valid values are <code>AZ</code>, <code>INSTANCE_TYPE</code>, <code>LEGAL_ENTITY_NAME</code>, <code>LINKED_ACCOUNT</code>, <code>OPERATION</code>, <code>PLATFORM</code>, <code>PURCHASE_TYPE</code>, <code>SERVICE</code>, <code>TAGS</code>, <code>TENANCY</code>, <code>RECORD_TYPE</code>, and <code>USAGE_TYPE</code>.<br/>Metrics:  Which metrics are returned in the query. For more information about blended and unblended rates, see <a href="http://aws.amazon.com/premiumsupport/knowledge-center/blended-rates-intro/">Why does the "blended" annotation appear on some line items in my bill?</a>.  Valid values are <code>AmortizedCost</code>, <code>BlendedCost</code>, <code>NetAmortizedCost</code>, <code>NetUnblendedCost</code>, <code>NormalizedUsageAmount</code>, <code>UnblendedCost</code>, and <code>UsageQuantity</code>.  <note> If you return the <code>UsageQuantity</code> metric, the service aggregates all usage numbers without taking into account the units. For example, if you aggregate <code>usageQuantity</code> across all of Amazon EC2, the results aren't meaningful because Amazon EC2 compute hours and data transfer are measured in different units (for example, hours vs. GB). To get more meaningful <code>UsageQuantity</code> metrics, filter by <code>UsageType</code> or <code>UsageTypeGroups</code>.  </note>  <code>Metrics</code> is required for <code>GetCostAndUsage</code> requests.<br/>Filter:  Filters AWS costs by different dimensions. For example, you can specify <code>SERVICE</code> and <code>LINKED_ACCOUNT</code> and get the costs that are associated with that account's usage of that service. You can nest <code>Expression</code> objects to define any combination of dimension filters. For more information, see <a href="https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html">Expression</a>. :<br/>Granularity:  Sets the AWS cost granularity to <code>MONTHLY</code> or <code>DAILY</code>, or <code>HOURLY</code>. If <code>Granularity</code> isn't set, the response object doesn't include the <code>Granularity</code>, either <code>MONTHLY</code> or <code>DAILY</code>, or <code>HOURLY</code>. <br/>TimePeriod:  Sets the start and end dates for retrieving AWS costs. The start date is inclusive, but the end date is exclusive. For example, if <code>start</code> is <code>2017-01-01</code> and <code>end</code> is <code>2017-05-01</code>, then the cost and usage data is retrieved from <code>2017-01-01</code> up to and including <code>2017-04-30</code> but not including <code>2017-05-01</code>.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>End</i> The end of the time period. The end date is exclusive. For example, if <code>end</code> is <code>2017-05-01</code>, AWS retrieves cost and usage data from the start date up to, but not including, <code>2017-05-01</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Start</i> The beginning of the time period. The start date is inclusive. For example, if <code>start</code> is <code>2017-01-01</code>, AWS retrieves cost and usage data starting at <code>2017-01-01</code> up to the end date. The start date must be equal to or no later than the current date to avoid a validation error.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CostCategories</i> The filter based on <code>CostCategory</code> values.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CostCategories</b>: The filter based on <code>CostCategory</code> values.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The specific <code>Tag</code> to use for <code>Expression</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Tags</b>: The specific <code>Tag</code> to use for <code>Expression</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Dimensions</i> The specific <code>Dimension</code> to use for <code>Expression</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Dimensions</b>: The specific <code>Dimension</code> to use for <code>Expression</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Not</i> Return results that don't match a <code>Dimension</code> object.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Not</b>: Return results that don't match a <code>Dimension</code> object.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>And</i> Return results that match both <code>Dimension</code> objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Or</i> Return results that match either <code>Dimension</code> object.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>And</i> Return results that match both <code>Dimension</code> objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Or</i> Return results that match either <code>Dimension</code> object.<br/>Return results that don't match a <code>Dimension</code> object.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Not</b>: Return results that don't match a <code>Dimension</code> object.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MatchOptions</i> The match options that you can use to filter your results. <code>MatchOptions</code> is only applicable for actions related to Cost Category. The default values for <code>MatchOptions</code> are <code>EQUALS</code> and <code>CASE_SENSITIVE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Values</i> The metadata values that you can use to filter and group your results. You can use <code>GetDimensionValues</code> to find specific values.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The names of the metadata types that you can use to filter and group your results. For example, <code>AZ</code> returns a list of Availability Zones.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MatchOptions</i> The match options that you can use to filter your results. <code>MatchOptions</code> is only applicable for actions related to Cost Category. The default values for <code>MatchOptions</code> are <code>EQUALS</code> and <code>CASE_SENSITIVE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Values</i> The specific value of the tag.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The key for the tag.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MatchOptions</i>  The match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for <code>MatchOptions</code> is <code>EQUALS</code> and <code>CASE_SENSITIVE</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Values</i> The specific value of the Cost Category.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The unique name of the Cost Category.<br/>
        :return: DimensionValueAttributes:  The attributes that apply to a specific dimension value. For example, if the value is a linked account, the attribute is that account name.<br/>ResultsByTime:  The time period that is covered by the results in the response.<br/>GroupDefinitions:  The groups that are specified by the <code>Filter</code> or <code>GroupBy</code> parameters in the request.<br/>NextPageToken:  The token for the next set of retrievable results. AWS provides the token when the response from a previous call has more results than the maximum page size.<br/>        """
        pass

    def get_cost_and_usage_with_resources(self, Filter: Expression, Granularity: str, TimePeriod: DateInterval, Metrics: List[MetricName]=None, GroupBy: List[GroupDefinition]=None, NextPageToken: str=None) -> GetCostAndUsageWithResourcesResponse:
        r"""Retrieves cost and usage metrics with resources for your account. You can specify which cost and usage-related metric, such as <code>BlendedCosts</code> or <code>UsageQuantity</code>, that you want the request to return. You can also filter and group your data by various dimensions, such as <code>SERVICE</code> or <code>AZ</code>, in a specific time range. For a complete list of valid dimensions, see the <a href="https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_GetDimensionValues.html">GetDimensionValues</a> operation. Management account in an organization in AWS Organizations have access to all member accounts. This API is currently available for the Amazon Elastic Compute Cloud – Compute service only. <note> This is an opt-in only feature. You can enable this feature from the Cost Explorer Settings page. For information on how to access the Settings page, see <a href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/ce-access.html">Controlling Access for Cost Explorer</a> in the <i>AWS Billing and Cost Management User Guide</i>. </note>

        :param self:
        :param NextPageToken:  The token to retrieve the next set of results. AWS provides the token when the response from a previous call has more results than the maximum page size.<br/>GroupBy:  You can group Amazon Web Services costs using up to two different groups: <code>DIMENSION</code>, <code>TAG</code>, <code>COST_CATEGORY</code>.<br/>Metrics:  Which metrics are returned in the query. For more information about blended and unblended rates, see <a href="http://aws.amazon.com/premiumsupport/knowledge-center/blended-rates-intro/">Why does the "blended" annotation appear on some line items in my bill?</a>.  Valid values are <code>AmortizedCost</code>, <code>BlendedCost</code>, <code>NetAmortizedCost</code>, <code>NetUnblendedCost</code>, <code>NormalizedUsageAmount</code>, <code>UnblendedCost</code>, and <code>UsageQuantity</code>.  <note> If you return the <code>UsageQuantity</code> metric, the service aggregates all usage numbers without taking the units into account. For example, if you aggregate <code>usageQuantity</code> across all of Amazon EC2, the results aren't meaningful because Amazon EC2 compute hours and data transfer are measured in different units (for example, hours vs. GB). To get more meaningful <code>UsageQuantity</code> metrics, filter by <code>UsageType</code> or <code>UsageTypeGroups</code>.  </note>  <code>Metrics</code> is required for <code>GetCostAndUsageWithResources</code> requests.<br/>Filter:  Filters Amazon Web Services costs by different dimensions. For example, you can specify <code>SERVICE</code> and <code>LINKED_ACCOUNT</code> and get the costs that are associated with that account's usage of that service. You can nest <code>Expression</code> objects to define any combination of dimension filters. For more information, see <a href="https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html">Expression</a>.  The <code>GetCostAndUsageWithResources</code> operation requires that you either group by or filter by a <code>ResourceId</code>. It requires the <a href="https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html">Expression</a> <code>"SERVICE = Amazon Elastic Compute Cloud - Compute"</code> in the filter.:<br/>Granularity:  Sets the AWS cost granularity to <code>MONTHLY</code>, <code>DAILY</code>, or <code>HOURLY</code>. If <code>Granularity</code> isn't set, the response object doesn't include the <code>Granularity</code>, <code>MONTHLY</code>, <code>DAILY</code>, or <code>HOURLY</code>. <br/>TimePeriod:  Sets the start and end dates for retrieving Amazon Web Services costs. The range must be within the last 14 days (the start date cannot be earlier than 14 days ago). The start date is inclusive, but the end date is exclusive. For example, if <code>start</code> is <code>2017-01-01</code> and <code>end</code> is <code>2017-05-01</code>, then the cost and usage data is retrieved from <code>2017-01-01</code> up to and including <code>2017-04-30</code> but not including <code>2017-05-01</code>.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>End</i> The end of the time period. The end date is exclusive. For example, if <code>end</code> is <code>2017-05-01</code>, AWS retrieves cost and usage data from the start date up to, but not including, <code>2017-05-01</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Start</i> The beginning of the time period. The start date is inclusive. For example, if <code>start</code> is <code>2017-01-01</code>, AWS retrieves cost and usage data starting at <code>2017-01-01</code> up to the end date. The start date must be equal to or no later than the current date to avoid a validation error.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CostCategories</i> The filter based on <code>CostCategory</code> values.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CostCategories</b>: The filter based on <code>CostCategory</code> values.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The specific <code>Tag</code> to use for <code>Expression</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Tags</b>: The specific <code>Tag</code> to use for <code>Expression</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Dimensions</i> The specific <code>Dimension</code> to use for <code>Expression</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Dimensions</b>: The specific <code>Dimension</code> to use for <code>Expression</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Not</i> Return results that don't match a <code>Dimension</code> object.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Not</b>: Return results that don't match a <code>Dimension</code> object.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>And</i> Return results that match both <code>Dimension</code> objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Or</i> Return results that match either <code>Dimension</code> object.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>And</i> Return results that match both <code>Dimension</code> objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Or</i> Return results that match either <code>Dimension</code> object.<br/>Return results that don't match a <code>Dimension</code> object.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Not</b>: Return results that don't match a <code>Dimension</code> object.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MatchOptions</i> The match options that you can use to filter your results. <code>MatchOptions</code> is only applicable for actions related to Cost Category. The default values for <code>MatchOptions</code> are <code>EQUALS</code> and <code>CASE_SENSITIVE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Values</i> The metadata values that you can use to filter and group your results. You can use <code>GetDimensionValues</code> to find specific values.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The names of the metadata types that you can use to filter and group your results. For example, <code>AZ</code> returns a list of Availability Zones.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MatchOptions</i> The match options that you can use to filter your results. <code>MatchOptions</code> is only applicable for actions related to Cost Category. The default values for <code>MatchOptions</code> are <code>EQUALS</code> and <code>CASE_SENSITIVE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Values</i> The specific value of the tag.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The key for the tag.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MatchOptions</i>  The match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for <code>MatchOptions</code> is <code>EQUALS</code> and <code>CASE_SENSITIVE</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Values</i> The specific value of the Cost Category.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The unique name of the Cost Category.<br/>
        :return: DimensionValueAttributes:  The attributes that apply to a specific dimension value. For example, if the value is a linked account, the attribute is that account name.<br/>ResultsByTime:  The time period that is covered by the results in the response.<br/>GroupDefinitions:  The groups that are specified by the <code>Filter</code> or <code>GroupBy</code> parameters in the request.<br/>NextPageToken:  The token for the next set of retrievable results. AWS provides the token when the response from a previous call has more results than the maximum page size.<br/>        """
        pass

    def get_cost_categories(self, TimePeriod: DateInterval, SearchString: str=None, CostCategoryName: str=None, Filter: Expression=None, SortBy: List[SortDefinition]=None, MaxResults: int=None, NextPageToken: str=None) -> GetCostCategoriesResponse:
        r"""Retrieves an array of Cost Category names and values incurred cost. <note> If some Cost Category names and values are not associated with any cost, they will not be returned by this API. </note>

        :param self:
        :param NextPageToken:  If the number of objects that are still available for retrieval exceeds the limit, AWS returns a NextPageToken value in the response. To retrieve the next batch of objects, provide the NextPageToken from the prior call in your next request.<br/>MaxResults:  This field is only used when <code>SortBy</code> is provided in the request. The maximum number of objects that to be returned for this request. If <code>MaxResults</code> is not specified with <code>SortBy</code>, the request will return 1000 results as the default value for this parameter. For <code>GetCostCategories</code>, MaxResults has an upper limit of 1000.<br/>SortBy:  The value by which you want to sort the data. The key represents cost and usage metrics. The following values are supported: <ul> <li>  <code>BlendedCost</code>  </li> <li>  <code>UnblendedCost</code>  </li> <li>  <code>AmortizedCost</code>  </li> <li>  <code>NetAmortizedCost</code>  </li> <li>  <code>NetUnblendedCost</code>  </li> <li>  <code>UsageQuantity</code>  </li> <li>  <code>NormalizedUsageAmount</code>  </li> </ul> Supported values for <code>SortOrder</code> are <code>ASCENDING</code> or <code>DESCENDING</code>. When using <code>SortBy</code>, <code>NextPageToken</code> and <code>SearchString</code> are not supported.<br/>Filter:  Use <code>Expression</code> to filter by cost or by usage. There are two patterns:  <ul> <li> Simple dimension values - You can set the dimension name and values for the filters that you plan to use. For example, you can filter for <code>REGION==us-east-1 OR REGION==us-west-1</code>. For <code>GetRightsizingRecommendation</code>, the Region is a full name (for example, <code>REGION==US East (N. Virginia)</code>. The <code>Expression</code> example looks like:  <code>{ "Dimensions": { "Key": "REGION", "Values": [ "us-east-1", “us-west-1” ] } }</code>  The list of dimension values are OR'd together to retrieve cost or usage data. You can create <code>Expression</code> and <code>DimensionValues</code> objects using either <code>with*</code> methods or <code>set*</code> methods in multiple lines.  </li> <li> Compound dimension values with logical operations - You can use multiple <code>Expression</code> types and the logical operators <code>AND/OR/NOT</code> to create a list of one or more <code>Expression</code> objects. This allows you to filter on more advanced options. For example, you can filter on <code>((REGION == us-east-1 OR REGION == us-west-1) OR (TAG.Type == Type1)) AND (USAGE_TYPE != DataTransfer)</code>. The <code>Expression</code> for that looks like this:  <code>{ "And": [ {"Or": [ {"Dimensions": { "Key": "REGION", "Values": [ "us-east-1", "us-west-1" ] }}, {"Tags": { "Key": "TagName", "Values": ["Value1"] } } ]}, {"Not": {"Dimensions": { "Key": "USAGE_TYPE", "Values": ["DataTransfer"] }}} ] } </code>  <note> Because each <code>Expression</code> can have only one operator, the service returns an error if more than one is specified. The following example shows an <code>Expression</code> object that creates an error. </note>  <code> { "And": [ ... ], "DimensionValues": { "Dimension": "USAGE_TYPE", "Values": [ "DataTransfer" ] } } </code>  </li> </ul> <note> For the <code>GetRightsizingRecommendation</code> action, a combination of OR and NOT is not supported. OR is not supported between different dimensions, or dimensions and tags. NOT operators aren't supported. Dimensions are also limited to <code>LINKED_ACCOUNT</code>, <code>REGION</code>, or <code>RIGHTSIZING_TYPE</code>. For the <code>GetReservationPurchaseRecommendation</code> action, only NOT is supported. AND and OR are not supported. Dimensions are limited to <code>LINKED_ACCOUNT</code>. </note>:<br/>CostCategoryName:  The unique name of the Cost Category.<br/>TimePeriod:  The time period of the request. :<br/>SearchString:  The value that you want to search the filter values for. If you do not specify a <code>CostCategoryName</code>, <code>SearchString</code> will be used to filter Cost Category names that match the <code>SearchString</code> pattern. If you do specifiy a <code>CostCategoryName</code>, <code>SearchString</code> will be used to filter Cost Category values that match the <code>SearchString</code> pattern.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>End</i> The end of the time period. The end date is exclusive. For example, if <code>end</code> is <code>2017-05-01</code>, AWS retrieves cost and usage data from the start date up to, but not including, <code>2017-05-01</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Start</i> The beginning of the time period. The start date is inclusive. For example, if <code>start</code> is <code>2017-01-01</code>, AWS retrieves cost and usage data starting at <code>2017-01-01</code> up to the end date. The start date must be equal to or no later than the current date to avoid a validation error.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CostCategories</i> The filter based on <code>CostCategory</code> values.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CostCategories</b>: The filter based on <code>CostCategory</code> values.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The specific <code>Tag</code> to use for <code>Expression</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Tags</b>: The specific <code>Tag</code> to use for <code>Expression</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Dimensions</i> The specific <code>Dimension</code> to use for <code>Expression</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Dimensions</b>: The specific <code>Dimension</code> to use for <code>Expression</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Not</i> Return results that don't match a <code>Dimension</code> object.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Not</b>: Return results that don't match a <code>Dimension</code> object.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>And</i> Return results that match both <code>Dimension</code> objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Or</i> Return results that match either <code>Dimension</code> object.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>And</i> Return results that match both <code>Dimension</code> objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Or</i> Return results that match either <code>Dimension</code> object.<br/>Return results that don't match a <code>Dimension</code> object.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Not</b>: Return results that don't match a <code>Dimension</code> object.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MatchOptions</i> The match options that you can use to filter your results. <code>MatchOptions</code> is only applicable for actions related to Cost Category. The default values for <code>MatchOptions</code> are <code>EQUALS</code> and <code>CASE_SENSITIVE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Values</i> The metadata values that you can use to filter and group your results. You can use <code>GetDimensionValues</code> to find specific values.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The names of the metadata types that you can use to filter and group your results. For example, <code>AZ</code> returns a list of Availability Zones.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MatchOptions</i> The match options that you can use to filter your results. <code>MatchOptions</code> is only applicable for actions related to Cost Category. The default values for <code>MatchOptions</code> are <code>EQUALS</code> and <code>CASE_SENSITIVE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Values</i> The specific value of the tag.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The key for the tag.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MatchOptions</i>  The match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for <code>MatchOptions</code> is <code>EQUALS</code> and <code>CASE_SENSITIVE</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Values</i> The specific value of the Cost Category.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The unique name of the Cost Category.<br/>
        :return: TotalSize:  The total number of objects.<br/>ReturnSize:  The number of objects returned.<br/>CostCategoryValues:  The Cost Category values.  <code>CostCategoryValues</code> are not returned if <code>CostCategoryName</code> is not specified in the request. <br/>CostCategoryNames:  The names of the Cost Categories.<br/>NextPageToken:  If the number of objects that are still available for retrieval exceeds the limit, AWS returns a NextPageToken value in the response. To retrieve the next batch of objects, provide the marker from the prior call in your next request.<br/>        """
        pass

    def get_cost_forecast(self, Granularity: str, Metric: str, TimePeriod: DateInterval, Filter: Expression=None, PredictionIntervalLevel: int=None) -> GetCostForecastResponse:
        r"""Retrieves a forecast for how much Amazon Web Services predicts that you will spend over the forecast time period that you select, based on your past costs. 

        :param self:
        :param PredictionIntervalLevel:  Cost Explorer always returns the mean forecast as a single point. You can request a prediction interval around the mean by specifying a confidence level. The higher the confidence level, the more confident Cost Explorer is about the actual value falling in the prediction interval. Higher confidence levels result in wider prediction intervals.<br/>Filter:  The filters that you want to use to filter your forecast. The <code>GetCostForecast</code> API supports filtering by the following dimensions: <ul> <li>  <code>AZ</code>  </li> <li>  <code>INSTANCE_TYPE</code>  </li> <li>  <code>LINKED_ACCOUNT</code>  </li> <li>  <code>LINKED_ACCOUNT_NAME</code>  </li> <li>  <code>OPERATION</code>  </li> <li>  <code>PURCHASE_TYPE</code>  </li> <li>  <code>REGION</code>  </li> <li>  <code>SERVICE</code>  </li> <li>  <code>USAGE_TYPE</code>  </li> <li>  <code>USAGE_TYPE_GROUP</code>  </li> <li>  <code>RECORD_TYPE</code>  </li> <li>  <code>OPERATING_SYSTEM</code>  </li> <li>  <code>TENANCY</code>  </li> <li>  <code>SCOPE</code>  </li> <li>  <code>PLATFORM</code>  </li> <li>  <code>SUBSCRIPTION_ID</code>  </li> <li>  <code>LEGAL_ENTITY_NAME</code>  </li> <li>  <code>DEPLOYMENT_OPTION</code>  </li> <li>  <code>DATABASE_ENGINE</code>  </li> <li>  <code>INSTANCE_TYPE_FAMILY</code>  </li> <li>  <code>BILLING_ENTITY</code>  </li> <li>  <code>RESERVATION_ID</code>  </li> <li>  <code>SAVINGS_PLAN_ARN</code>  </li> </ul>:<br/>Granularity:  How granular you want the forecast to be. You can get 3 months of <code>DAILY</code> forecasts or 12 months of <code>MONTHLY</code> forecasts. The <code>GetCostForecast</code> operation supports only <code>DAILY</code> and <code>MONTHLY</code> granularities.<br/>Metric:  Which metric Cost Explorer uses to create your forecast. For more information about blended and unblended rates, see <a href="http://aws.amazon.com/premiumsupport/knowledge-center/blended-rates-intro/">Why does the "blended" annotation appear on some line items in my bill?</a>.  Valid values for a <code>GetCostForecast</code> call are the following: <ul> <li> AMORTIZED_COST </li> <li> BLENDED_COST </li> <li> NET_AMORTIZED_COST </li> <li> NET_UNBLENDED_COST </li> <li> UNBLENDED_COST </li> </ul><br/>TimePeriod:  The period of time that you want the forecast to cover. The start date must be equal to or no later than the current date to avoid a validation error.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>End</i> The end of the time period. The end date is exclusive. For example, if <code>end</code> is <code>2017-05-01</code>, AWS retrieves cost and usage data from the start date up to, but not including, <code>2017-05-01</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Start</i> The beginning of the time period. The start date is inclusive. For example, if <code>start</code> is <code>2017-01-01</code>, AWS retrieves cost and usage data starting at <code>2017-01-01</code> up to the end date. The start date must be equal to or no later than the current date to avoid a validation error.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CostCategories</i> The filter based on <code>CostCategory</code> values.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CostCategories</b>: The filter based on <code>CostCategory</code> values.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The specific <code>Tag</code> to use for <code>Expression</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Tags</b>: The specific <code>Tag</code> to use for <code>Expression</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Dimensions</i> The specific <code>Dimension</code> to use for <code>Expression</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Dimensions</b>: The specific <code>Dimension</code> to use for <code>Expression</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Not</i> Return results that don't match a <code>Dimension</code> object.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Not</b>: Return results that don't match a <code>Dimension</code> object.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>And</i> Return results that match both <code>Dimension</code> objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Or</i> Return results that match either <code>Dimension</code> object.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>And</i> Return results that match both <code>Dimension</code> objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Or</i> Return results that match either <code>Dimension</code> object.<br/>Return results that don't match a <code>Dimension</code> object.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Not</b>: Return results that don't match a <code>Dimension</code> object.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MatchOptions</i> The match options that you can use to filter your results. <code>MatchOptions</code> is only applicable for actions related to Cost Category. The default values for <code>MatchOptions</code> are <code>EQUALS</code> and <code>CASE_SENSITIVE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Values</i> The metadata values that you can use to filter and group your results. You can use <code>GetDimensionValues</code> to find specific values.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The names of the metadata types that you can use to filter and group your results. For example, <code>AZ</code> returns a list of Availability Zones.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MatchOptions</i> The match options that you can use to filter your results. <code>MatchOptions</code> is only applicable for actions related to Cost Category. The default values for <code>MatchOptions</code> are <code>EQUALS</code> and <code>CASE_SENSITIVE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Values</i> The specific value of the tag.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The key for the tag.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MatchOptions</i>  The match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for <code>MatchOptions</code> is <code>EQUALS</code> and <code>CASE_SENSITIVE</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Values</i> The specific value of the Cost Category.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The unique name of the Cost Category.<br/>
        :return: ForecastResultsByTime:  The forecasts for your query, in order. For <code>DAILY</code> forecasts, this is a list of days. For <code>MONTHLY</code> forecasts, this is a list of months.<br/>Total:  How much you are forecasted to spend over the forecast period, in <code>USD</code>.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Unit</i> The unit that the metric is given in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Amount</i> The actual number that represents the metric.<br/>        """
        pass

    def get_dimension_values(self, Dimension: str, TimePeriod: DateInterval, SearchString: str=None, Context: str=None, Filter: Expression=None, SortBy: List[SortDefinition]=None, MaxResults: int=None, NextPageToken: str=None) -> GetDimensionValuesResponse:
        r"""Retrieves all available filter values for a specified filter over a period of time. You can search the dimension values for an arbitrary string. 

        :param self:
        :param NextPageToken:  The token to retrieve the next set of results. AWS provides the token when the response from a previous call has more results than the maximum page size.<br/>MaxResults:  This field is only used when SortBy is provided in the request. The maximum number of objects that to be returned for this request. If MaxResults is not specified with SortBy, the request will return 1000 results as the default value for this parameter. For <code>GetDimensionValues</code>, MaxResults has an upper limit of 1000.<br/>SortBy:  The value by which you want to sort the data. The key represents cost and usage metrics. The following values are supported: <ul> <li>  <code>BlendedCost</code>  </li> <li>  <code>UnblendedCost</code>  </li> <li>  <code>AmortizedCost</code>  </li> <li>  <code>NetAmortizedCost</code>  </li> <li>  <code>NetUnblendedCost</code>  </li> <li>  <code>UsageQuantity</code>  </li> <li>  <code>NormalizedUsageAmount</code>  </li> </ul> Supported values for <code>SortOrder</code> are <code>ASCENDING</code> or <code>DESCENDING</code>. When you specify a <code>SortBy</code> paramater, the context must be <code>COST_AND_USAGE</code>. Further, when using <code>SortBy</code>, <code>NextPageToken</code> and <code>SearchString</code> are not supported.<br/>Filter:  Use <code>Expression</code> to filter by cost or by usage. There are two patterns:  <ul> <li> Simple dimension values - You can set the dimension name and values for the filters that you plan to use. For example, you can filter for <code>REGION==us-east-1 OR REGION==us-west-1</code>. For <code>GetRightsizingRecommendation</code>, the Region is a full name (for example, <code>REGION==US East (N. Virginia)</code>. The <code>Expression</code> example looks like:  <code>{ "Dimensions": { "Key": "REGION", "Values": [ "us-east-1", “us-west-1” ] } }</code>  The list of dimension values are OR'd together to retrieve cost or usage data. You can create <code>Expression</code> and <code>DimensionValues</code> objects using either <code>with*</code> methods or <code>set*</code> methods in multiple lines.  </li> <li> Compound dimension values with logical operations - You can use multiple <code>Expression</code> types and the logical operators <code>AND/OR/NOT</code> to create a list of one or more <code>Expression</code> objects. This allows you to filter on more advanced options. For example, you can filter on <code>((REGION == us-east-1 OR REGION == us-west-1) OR (TAG.Type == Type1)) AND (USAGE_TYPE != DataTransfer)</code>. The <code>Expression</code> for that looks like this:  <code>{ "And": [ {"Or": [ {"Dimensions": { "Key": "REGION", "Values": [ "us-east-1", "us-west-1" ] }}, {"Tags": { "Key": "TagName", "Values": ["Value1"] } } ]}, {"Not": {"Dimensions": { "Key": "USAGE_TYPE", "Values": ["DataTransfer"] }}} ] } </code>  <note> Because each <code>Expression</code> can have only one operator, the service returns an error if more than one is specified. The following example shows an <code>Expression</code> object that creates an error. </note>  <code> { "And": [ ... ], "DimensionValues": { "Dimension": "USAGE_TYPE", "Values": [ "DataTransfer" ] } } </code>  </li> </ul> <note> For the <code>GetRightsizingRecommendation</code> action, a combination of OR and NOT is not supported. OR is not supported between different dimensions, or dimensions and tags. NOT operators aren't supported. Dimensions are also limited to <code>LINKED_ACCOUNT</code>, <code>REGION</code>, or <code>RIGHTSIZING_TYPE</code>. For the <code>GetReservationPurchaseRecommendation</code> action, only NOT is supported. AND and OR are not supported. Dimensions are limited to <code>LINKED_ACCOUNT</code>. </note>:<br/>Context:  The context for the call to <code>GetDimensionValues</code>. This can be <code>RESERVATIONS</code> or <code>COST_AND_USAGE</code>. The default value is <code>COST_AND_USAGE</code>. If the context is set to <code>RESERVATIONS</code>, the resulting dimension values can be used in the <code>GetReservationUtilization</code> operation. If the context is set to <code>COST_AND_USAGE</code>, the resulting dimension values can be used in the <code>GetCostAndUsage</code> operation. If you set the context to <code>COST_AND_USAGE</code>, you can use the following dimensions for searching: <ul> <li> AZ - The Availability Zone. An example is <code>us-east-1a</code>. </li> <li> DATABASE_ENGINE - The Amazon Relational Database Service database. Examples are Aurora or MySQL. </li> <li> INSTANCE_TYPE - The type of Amazon EC2 instance. An example is <code>m4.xlarge</code>. </li> <li> LEGAL_ENTITY_NAME - The name of the organization that sells you AWS services, such as Amazon Web Services. </li> <li> LINKED_ACCOUNT - The description in the attribute map that includes the full name of the member account. The value field contains the AWS ID of the member account. </li> <li> OPERATING_SYSTEM - The operating system. Examples are Windows or Linux. </li> <li> OPERATION - The action performed. Examples include <code>RunInstance</code> and <code>CreateBucket</code>. </li> <li> PLATFORM - The Amazon EC2 operating system. Examples are Windows or Linux. </li> <li> PURCHASE_TYPE - The reservation type of the purchase to which this usage is related. Examples include On-Demand Instances and Standard Reserved Instances. </li> <li> SERVICE - The AWS service such as Amazon DynamoDB. </li> <li> USAGE_TYPE - The type of usage. An example is DataTransfer-In-Bytes. The response for the <code>GetDimensionValues</code> operation includes a unit attribute. Examples include GB and Hrs. </li> <li> USAGE_TYPE_GROUP - The grouping of common usage types. An example is Amazon EC2: CloudWatch – Alarms. The response for this operation includes a unit attribute. </li> <li> REGION - The AWS Region. </li> <li> RECORD_TYPE - The different types of charges such as RI fees, usage costs, tax refunds, and credits. </li> <li> RESOURCE_ID - The unique identifier of the resource. ResourceId is an opt-in feature only available for last 14 days for EC2-Compute Service. </li> </ul> If you set the context to <code>RESERVATIONS</code>, you can use the following dimensions for searching: <ul> <li> AZ - The Availability Zone. An example is <code>us-east-1a</code>. </li> <li> CACHE_ENGINE - The Amazon ElastiCache operating system. Examples are Windows or Linux. </li> <li> DEPLOYMENT_OPTION - The scope of Amazon Relational Database Service deployments. Valid values are <code>SingleAZ</code> and <code>MultiAZ</code>. </li> <li> INSTANCE_TYPE - The type of Amazon EC2 instance. An example is <code>m4.xlarge</code>. </li> <li> LINKED_ACCOUNT - The description in the attribute map that includes the full name of the member account. The value field contains the AWS ID of the member account. </li> <li> PLATFORM - The Amazon EC2 operating system. Examples are Windows or Linux. </li> <li> REGION - The AWS Region. </li> <li> SCOPE (Utilization only) - The scope of a Reserved Instance (RI). Values are regional or a single Availability Zone. </li> <li> TAG (Coverage only) - The tags that are associated with a Reserved Instance (RI). </li> <li> TENANCY - The tenancy of a resource. Examples are shared or dedicated. </li> </ul> If you set the context to <code>SAVINGS_PLANS</code>, you can use the following dimensions for searching: <ul> <li> SAVINGS_PLANS_TYPE - Type of Savings Plans (EC2 Instance or Compute) </li> <li> PAYMENT_OPTION - Payment option for the given Savings Plans (for example, All Upfront) </li> <li> REGION - The AWS Region. </li> <li> INSTANCE_TYPE_FAMILY - The family of instances (For example, <code>m5</code>) </li> <li> LINKED_ACCOUNT - The description in the attribute map that includes the full name of the member account. The value field contains the AWS ID of the member account. </li> <li> SAVINGS_PLAN_ARN - The unique identifier for your Savings Plan </li> </ul><br/>Dimension:  The name of the dimension. Each <code>Dimension</code> is available for a different <code>Context</code>. For more information, see <code>Context</code>. <br/>TimePeriod:  The start and end dates for retrieving the dimension values. The start date is inclusive, but the end date is exclusive. For example, if <code>start</code> is <code>2017-01-01</code> and <code>end</code> is <code>2017-05-01</code>, then the cost and usage data is retrieved from <code>2017-01-01</code> up to and including <code>2017-04-30</code> but not including <code>2017-05-01</code>.:<br/>SearchString:  The value that you want to search the filter values for.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>End</i> The end of the time period. The end date is exclusive. For example, if <code>end</code> is <code>2017-05-01</code>, AWS retrieves cost and usage data from the start date up to, but not including, <code>2017-05-01</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Start</i> The beginning of the time period. The start date is inclusive. For example, if <code>start</code> is <code>2017-01-01</code>, AWS retrieves cost and usage data starting at <code>2017-01-01</code> up to the end date. The start date must be equal to or no later than the current date to avoid a validation error.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CostCategories</i> The filter based on <code>CostCategory</code> values.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CostCategories</b>: The filter based on <code>CostCategory</code> values.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The specific <code>Tag</code> to use for <code>Expression</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Tags</b>: The specific <code>Tag</code> to use for <code>Expression</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Dimensions</i> The specific <code>Dimension</code> to use for <code>Expression</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Dimensions</b>: The specific <code>Dimension</code> to use for <code>Expression</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Not</i> Return results that don't match a <code>Dimension</code> object.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Not</b>: Return results that don't match a <code>Dimension</code> object.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>And</i> Return results that match both <code>Dimension</code> objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Or</i> Return results that match either <code>Dimension</code> object.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>And</i> Return results that match both <code>Dimension</code> objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Or</i> Return results that match either <code>Dimension</code> object.<br/>Return results that don't match a <code>Dimension</code> object.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Not</b>: Return results that don't match a <code>Dimension</code> object.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MatchOptions</i> The match options that you can use to filter your results. <code>MatchOptions</code> is only applicable for actions related to Cost Category. The default values for <code>MatchOptions</code> are <code>EQUALS</code> and <code>CASE_SENSITIVE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Values</i> The metadata values that you can use to filter and group your results. You can use <code>GetDimensionValues</code> to find specific values.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The names of the metadata types that you can use to filter and group your results. For example, <code>AZ</code> returns a list of Availability Zones.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MatchOptions</i> The match options that you can use to filter your results. <code>MatchOptions</code> is only applicable for actions related to Cost Category. The default values for <code>MatchOptions</code> are <code>EQUALS</code> and <code>CASE_SENSITIVE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Values</i> The specific value of the tag.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The key for the tag.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MatchOptions</i>  The match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for <code>MatchOptions</code> is <code>EQUALS</code> and <code>CASE_SENSITIVE</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Values</i> The specific value of the Cost Category.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The unique name of the Cost Category.<br/>
        :return: NextPageToken:  The token for the next set of retrievable results. AWS provides the token when the response from a previous call has more results than the maximum page size.<br/>TotalSize:  The total number of search results.<br/>ReturnSize:  The number of results that AWS returned at one time.<br/>DimensionValues:  The filters that you used to filter your request. Some dimensions are available only for a specific context. If you set the context to <code>COST_AND_USAGE</code>, you can use the following dimensions for searching: <ul> <li> AZ - The Availability Zone. An example is <code>us-east-1a</code>. </li> <li> DATABASE_ENGINE - The Amazon Relational Database Service database. Examples are Aurora or MySQL. </li> <li> INSTANCE_TYPE - The type of Amazon EC2 instance. An example is <code>m4.xlarge</code>. </li> <li> LEGAL_ENTITY_NAME - The name of the organization that sells you AWS services, such as Amazon Web Services. </li> <li> LINKED_ACCOUNT - The description in the attribute map that includes the full name of the member account. The value field contains the AWS ID of the member account. </li> <li> OPERATING_SYSTEM - The operating system. Examples are Windows or Linux. </li> <li> OPERATION - The action performed. Examples include <code>RunInstance</code> and <code>CreateBucket</code>. </li> <li> PLATFORM - The Amazon EC2 operating system. Examples are Windows or Linux. </li> <li> PURCHASE_TYPE - The reservation type of the purchase to which this usage is related. Examples include On-Demand Instances and Standard Reserved Instances. </li> <li> SERVICE - The AWS service such as Amazon DynamoDB. </li> <li> USAGE_TYPE - The type of usage. An example is DataTransfer-In-Bytes. The response for the <code>GetDimensionValues</code> operation includes a unit attribute. Examples include GB and Hrs. </li> <li> USAGE_TYPE_GROUP - The grouping of common usage types. An example is Amazon EC2: CloudWatch – Alarms. The response for this operation includes a unit attribute. </li> <li> RECORD_TYPE - The different types of charges such as RI fees, usage costs, tax refunds, and credits. </li> <li> RESOURCE_ID - The unique identifier of the resource. ResourceId is an opt-in feature only available for last 14 days for EC2-Compute Service. </li> </ul> If you set the context to <code>RESERVATIONS</code>, you can use the following dimensions for searching: <ul> <li> AZ - The Availability Zone. An example is <code>us-east-1a</code>. </li> <li> CACHE_ENGINE - The Amazon ElastiCache operating system. Examples are Windows or Linux. </li> <li> DEPLOYMENT_OPTION - The scope of Amazon Relational Database Service deployments. Valid values are <code>SingleAZ</code> and <code>MultiAZ</code>. </li> <li> INSTANCE_TYPE - The type of Amazon EC2 instance. An example is <code>m4.xlarge</code>. </li> <li> LINKED_ACCOUNT - The description in the attribute map that includes the full name of the member account. The value field contains the AWS ID of the member account. </li> <li> PLATFORM - The Amazon EC2 operating system. Examples are Windows or Linux. </li> <li> REGION - The AWS Region. </li> <li> SCOPE (Utilization only) - The scope of a Reserved Instance (RI). Values are regional or a single Availability Zone. </li> <li> TAG (Coverage only) - The tags that are associated with a Reserved Instance (RI). </li> <li> TENANCY - The tenancy of a resource. Examples are shared or dedicated. </li> </ul> If you set the context to <code>SAVINGS_PLANS</code>, you can use the following dimensions for searching: <ul> <li> SAVINGS_PLANS_TYPE - Type of Savings Plans (EC2 Instance or Compute) </li> <li> PAYMENT_OPTION - Payment option for the given Savings Plans (for example, All Upfront) </li> <li> REGION - The AWS Region. </li> <li> INSTANCE_TYPE_FAMILY - The family of instances (For example, <code>m5</code>) </li> <li> LINKED_ACCOUNT - The description in the attribute map that includes the full name of the member account. The value field contains the AWS ID of the member account. </li> <li> SAVINGS_PLAN_ARN - The unique identifier for your Savings Plan </li> </ul><br/>        """
        pass

    def get_reservation_coverage(self, TimePeriod: DateInterval, GroupBy: List[GroupDefinition]=None, Granularity: str=None, Filter: Expression=None, Metrics: List[MetricName]=None, NextPageToken: str=None, SortBy: SortDefinition=None, MaxResults: int=None) -> GetReservationCoverageResponse:
        r"""Retrieves the reservation coverage for your account. This enables you to see how much of your Amazon Elastic Compute Cloud, Amazon ElastiCache, Amazon Relational Database Service, or Amazon Redshift usage is covered by a reservation. An organization's management account can see the coverage of the associated member accounts. This supports dimensions, Cost Categories, and nested expressions. For any time period, you can filter data about reservation usage by the following dimensions: <ul> <li> AZ </li> <li> CACHE_ENGINE </li> <li> DATABASE_ENGINE </li> <li> DEPLOYMENT_OPTION </li> <li> INSTANCE_TYPE </li> <li> LINKED_ACCOUNT </li> <li> OPERATING_SYSTEM </li> <li> PLATFORM </li> <li> REGION </li> <li> SERVICE </li> <li> TAG </li> <li> TENANCY </li> </ul> To determine valid values for a dimension, use the <code>GetDimensionValues</code> operation. 

        :param self:
        :param MaxResults:  The maximum number of objects that you returned for this request. If more objects are available, in the response, AWS provides a NextPageToken value that you can use in a subsequent call to get the next batch of objects.<br/>SortBy:  The value by which you want to sort the data. The following values are supported for <code>Key</code>: <ul> <li>  <code>OnDemandCost</code>  </li> <li>  <code>CoverageHoursPercentage</code>  </li> <li>  <code>OnDemandHours</code>  </li> <li>  <code>ReservedHours</code>  </li> <li>  <code>TotalRunningHours</code>  </li> <li>  <code>CoverageNormalizedUnitsPercentage</code>  </li> <li>  <code>OnDemandNormalizedUnits</code>  </li> <li>  <code>ReservedNormalizedUnits</code>  </li> <li>  <code>TotalRunningNormalizedUnits</code>  </li> <li>  <code>Time</code>  </li> </ul> Supported values for <code>SortOrder</code> are <code>ASCENDING</code> or <code>DESCENDING</code>.:<br/>NextPageToken:  The token to retrieve the next set of results. AWS provides the token when the response from a previous call has more results than the maximum page size.<br/>Metrics:  The measurement that you want your reservation coverage reported in. Valid values are <code>Hour</code>, <code>Unit</code>, and <code>Cost</code>. You can use multiple values in a request.<br/>Filter:  Filters utilization data by dimensions. You can filter by the following dimensions: <ul> <li> AZ </li> <li> CACHE_ENGINE </li> <li> DATABASE_ENGINE </li> <li> DEPLOYMENT_OPTION </li> <li> INSTANCE_TYPE </li> <li> LINKED_ACCOUNT </li> <li> OPERATING_SYSTEM </li> <li> PLATFORM </li> <li> REGION </li> <li> SERVICE </li> <li> TAG </li> <li> TENANCY </li> </ul>  <code>GetReservationCoverage</code> uses the same <a href="https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html">Expression</a> object as the other operations, but only <code>AND</code> is supported among each dimension. You can nest only one level deep. If there are multiple values for a dimension, they are OR'd together. If you don't provide a <code>SERVICE</code> filter, Cost Explorer defaults to EC2. Cost category is also supported.:<br/>Granularity:  The granularity of the AWS cost data for the reservation. Valid values are <code>MONTHLY</code> and <code>DAILY</code>. If <code>GroupBy</code> is set, <code>Granularity</code> can't be set. If <code>Granularity</code> isn't set, the response object doesn't include <code>Granularity</code>, either <code>MONTHLY</code> or <code>DAILY</code>. The <code>GetReservationCoverage</code> operation supports only <code>DAILY</code> and <code>MONTHLY</code> granularities.<br/>GroupBy:  You can group the data by the following attributes: <ul> <li> AZ </li> <li> CACHE_ENGINE </li> <li> DATABASE_ENGINE </li> <li> DEPLOYMENT_OPTION </li> <li> INSTANCE_TYPE </li> <li> LINKED_ACCOUNT </li> <li> OPERATING_SYSTEM </li> <li> PLATFORM </li> <li> REGION </li> <li> TENANCY </li> </ul><br/>TimePeriod:  The start and end dates of the period that you want to retrieve data about reservation coverage for. You can retrieve data for a maximum of 13 months: the last 12 months and the current month. The start date is inclusive, but the end date is exclusive. For example, if <code>start</code> is <code>2017-01-01</code> and <code>end</code> is <code>2017-05-01</code>, then the cost and usage data is retrieved from <code>2017-01-01</code> up to and including <code>2017-04-30</code> but not including <code>2017-05-01</code>. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>End</i> The end of the time period. The end date is exclusive. For example, if <code>end</code> is <code>2017-05-01</code>, AWS retrieves cost and usage data from the start date up to, but not including, <code>2017-05-01</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Start</i> The beginning of the time period. The start date is inclusive. For example, if <code>start</code> is <code>2017-01-01</code>, AWS retrieves cost and usage data starting at <code>2017-01-01</code> up to the end date. The start date must be equal to or no later than the current date to avoid a validation error.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CostCategories</i> The filter based on <code>CostCategory</code> values.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CostCategories</b>: The filter based on <code>CostCategory</code> values.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The specific <code>Tag</code> to use for <code>Expression</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Tags</b>: The specific <code>Tag</code> to use for <code>Expression</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Dimensions</i> The specific <code>Dimension</code> to use for <code>Expression</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Dimensions</b>: The specific <code>Dimension</code> to use for <code>Expression</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Not</i> Return results that don't match a <code>Dimension</code> object.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Not</b>: Return results that don't match a <code>Dimension</code> object.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>And</i> Return results that match both <code>Dimension</code> objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Or</i> Return results that match either <code>Dimension</code> object.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>And</i> Return results that match both <code>Dimension</code> objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Or</i> Return results that match either <code>Dimension</code> object.<br/>Return results that don't match a <code>Dimension</code> object.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Not</b>: Return results that don't match a <code>Dimension</code> object.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MatchOptions</i> The match options that you can use to filter your results. <code>MatchOptions</code> is only applicable for actions related to Cost Category. The default values for <code>MatchOptions</code> are <code>EQUALS</code> and <code>CASE_SENSITIVE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Values</i> The metadata values that you can use to filter and group your results. You can use <code>GetDimensionValues</code> to find specific values.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The names of the metadata types that you can use to filter and group your results. For example, <code>AZ</code> returns a list of Availability Zones.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MatchOptions</i> The match options that you can use to filter your results. <code>MatchOptions</code> is only applicable for actions related to Cost Category. The default values for <code>MatchOptions</code> are <code>EQUALS</code> and <code>CASE_SENSITIVE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Values</i> The specific value of the tag.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The key for the tag.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MatchOptions</i>  The match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for <code>MatchOptions</code> is <code>EQUALS</code> and <code>CASE_SENSITIVE</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Values</i> The specific value of the Cost Category.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The unique name of the Cost Category.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SortOrder</i> The order in which to sort the data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The key by which to sort the data.<br/>
        :return: NextPageToken:  The token for the next set of retrievable results. AWS provides the token when the response from a previous call has more results than the maximum page size.<br/>Total:  The total amount of instance usage that a reservation covered.:<br/>CoveragesByTime:  The amount of time that your reservations covered.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CoverageCost</i> The amount of cost that the reservation covered.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CoverageCost</b>: The amount of cost that the reservation covered.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CoverageNormalizedUnits</i> The amount of instance usage that the reservation covered, in normalized units.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CoverageNormalizedUnits</b>: The amount of instance usage that the reservation covered, in normalized units.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CoverageHours</i> The amount of instance usage that the reservation covered, in hours.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CoverageHours</b>: The amount of instance usage that the reservation covered, in hours.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CoverageHoursPercentage</i> The percentage of instance hours that a reservation covered.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalRunningHours</i> The total instance usage, in hours.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReservedHours</i> The number of instance running hours that reservations covered.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OnDemandHours</i> The number of instance running hours that On-Demand Instances covered.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CoverageNormalizedUnitsPercentage</i> The percentage of your used instance normalized units that a reservation covers.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalRunningNormalizedUnits</i> The total number of normalized units that you used.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReservedNormalizedUnits</i> The number of normalized units that a reservation covers.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OnDemandNormalizedUnits</i> The number of normalized units that are covered by On-Demand Instances instead of a reservation.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OnDemandCost</i> How much an On-Demand Instance costs.<br/>        """
        pass

    def get_reservation_purchase_recommendation(self, Service: str, AccountId: str=None, Filter: Expression=None, AccountScope: str=None, LookbackPeriodInDays: str=None, TermInYears: str=None, PaymentOption: str=None, ServiceSpecification: ServiceSpecification=None, PageSize: int=None, NextPageToken: str=None) -> GetReservationPurchaseRecommendationResponse:
        r"""Gets recommendations for which reservations to purchase. These recommendations could help you reduce your costs. Reservations provide a discounted hourly rate (up to 75%) compared to On-Demand pricing. AWS generates your recommendations by identifying your On-Demand usage during a specific time period and collecting your usage into categories that are eligible for a reservation. After AWS has these categories, it simulates every combination of reservations in each category of usage to identify the best number of each type of RI to purchase to maximize your estimated savings.  For example, AWS automatically aggregates your Amazon EC2 Linux, shared tenancy, and c4 family usage in the US West (Oregon) Region and recommends that you buy size-flexible regional reservations to apply to the c4 family usage. AWS recommends the smallest size instance in an instance family. This makes it easier to purchase a size-flexible RI. AWS also shows the equal number of normalized units so that you can purchase any instance size that you want. For this example, your RI recommendation would be for <code>c4.large</code> because that is the smallest size instance in the c4 instance family.

        :param self:
        :param NextPageToken:  The pagination token that indicates the next set of results that you want to retrieve.<br/>PageSize:  The number of recommendations that you want returned in a single response object.<br/>ServiceSpecification:  The hardware specifications for the service instances that you want recommendations for, such as standard or convertible Amazon EC2 instances.:<br/>PaymentOption:  The reservation purchase option that you want recommendations for.<br/>TermInYears:  The reservation term that you want recommendations for.<br/>LookbackPeriodInDays:  The number of previous days that you want AWS to consider when it calculates your recommendations.<br/>AccountScope:  The account scope that you want your recommendations for. Amazon Web Services calculates recommendations including the management account and member accounts if the value is set to <code>PAYER</code>. If the value is <code>LINKED</code>, recommendations are calculated for individual member accounts only.<br/>Filter:  Use <code>Expression</code> to filter by cost or by usage. There are two patterns:  <ul> <li> Simple dimension values - You can set the dimension name and values for the filters that you plan to use. For example, you can filter for <code>REGION==us-east-1 OR REGION==us-west-1</code>. For <code>GetRightsizingRecommendation</code>, the Region is a full name (for example, <code>REGION==US East (N. Virginia)</code>. The <code>Expression</code> example looks like:  <code>{ "Dimensions": { "Key": "REGION", "Values": [ "us-east-1", “us-west-1” ] } }</code>  The list of dimension values are OR'd together to retrieve cost or usage data. You can create <code>Expression</code> and <code>DimensionValues</code> objects using either <code>with*</code> methods or <code>set*</code> methods in multiple lines.  </li> <li> Compound dimension values with logical operations - You can use multiple <code>Expression</code> types and the logical operators <code>AND/OR/NOT</code> to create a list of one or more <code>Expression</code> objects. This allows you to filter on more advanced options. For example, you can filter on <code>((REGION == us-east-1 OR REGION == us-west-1) OR (TAG.Type == Type1)) AND (USAGE_TYPE != DataTransfer)</code>. The <code>Expression</code> for that looks like this:  <code>{ "And": [ {"Or": [ {"Dimensions": { "Key": "REGION", "Values": [ "us-east-1", "us-west-1" ] }}, {"Tags": { "Key": "TagName", "Values": ["Value1"] } } ]}, {"Not": {"Dimensions": { "Key": "USAGE_TYPE", "Values": ["DataTransfer"] }}} ] } </code>  <note> Because each <code>Expression</code> can have only one operator, the service returns an error if more than one is specified. The following example shows an <code>Expression</code> object that creates an error. </note>  <code> { "And": [ ... ], "DimensionValues": { "Dimension": "USAGE_TYPE", "Values": [ "DataTransfer" ] } } </code>  </li> </ul> <note> For the <code>GetRightsizingRecommendation</code> action, a combination of OR and NOT is not supported. OR is not supported between different dimensions, or dimensions and tags. NOT operators aren't supported. Dimensions are also limited to <code>LINKED_ACCOUNT</code>, <code>REGION</code>, or <code>RIGHTSIZING_TYPE</code>. For the <code>GetReservationPurchaseRecommendation</code> action, only NOT is supported. AND and OR are not supported. Dimensions are limited to <code>LINKED_ACCOUNT</code>. </note>:<br/>Service:  The specific service that you want recommendations for.<br/>AccountId:  The account ID that is associated with the recommendation. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CostCategories</i> The filter based on <code>CostCategory</code> values.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CostCategories</b>: The filter based on <code>CostCategory</code> values.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The specific <code>Tag</code> to use for <code>Expression</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Tags</b>: The specific <code>Tag</code> to use for <code>Expression</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Dimensions</i> The specific <code>Dimension</code> to use for <code>Expression</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Dimensions</b>: The specific <code>Dimension</code> to use for <code>Expression</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Not</i> Return results that don't match a <code>Dimension</code> object.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Not</b>: Return results that don't match a <code>Dimension</code> object.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>And</i> Return results that match both <code>Dimension</code> objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Or</i> Return results that match either <code>Dimension</code> object.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>And</i> Return results that match both <code>Dimension</code> objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Or</i> Return results that match either <code>Dimension</code> object.<br/>Return results that don't match a <code>Dimension</code> object.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Not</b>: Return results that don't match a <code>Dimension</code> object.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MatchOptions</i> The match options that you can use to filter your results. <code>MatchOptions</code> is only applicable for actions related to Cost Category. The default values for <code>MatchOptions</code> are <code>EQUALS</code> and <code>CASE_SENSITIVE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Values</i> The metadata values that you can use to filter and group your results. You can use <code>GetDimensionValues</code> to find specific values.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The names of the metadata types that you can use to filter and group your results. For example, <code>AZ</code> returns a list of Availability Zones.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MatchOptions</i> The match options that you can use to filter your results. <code>MatchOptions</code> is only applicable for actions related to Cost Category. The default values for <code>MatchOptions</code> are <code>EQUALS</code> and <code>CASE_SENSITIVE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Values</i> The specific value of the tag.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The key for the tag.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MatchOptions</i>  The match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for <code>MatchOptions</code> is <code>EQUALS</code> and <code>CASE_SENSITIVE</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Values</i> The specific value of the Cost Category.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The unique name of the Cost Category.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EC2Specification</i> The Amazon EC2 hardware specifications that you want AWS to provide recommendations for.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EC2Specification</b>: The Amazon EC2 hardware specifications that you want AWS to provide recommendations for.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OfferingClass</i> Whether you want a recommendation for standard or convertible reservations.<br/>
        :return: NextPageToken:  The pagination token for the next set of retrievable results.<br/>Recommendations:  Recommendations for reservations to purchase.<br/>Metadata:  Information about this specific recommendation call, such as the time stamp for when Cost Explorer generated this recommendation.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GenerationTimestamp</i> The timestamp for when AWS made this recommendation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecommendationId</i> The ID for this specific recommendation.<br/>        """
        pass

    def get_reservation_utilization(self, TimePeriod: DateInterval, GroupBy: List[GroupDefinition]=None, Granularity: str=None, Filter: Expression=None, SortBy: SortDefinition=None, NextPageToken: str=None, MaxResults: int=None) -> GetReservationUtilizationResponse:
        r"""Retrieves the reservation utilization for your account. Management account in an organization have access to member accounts. You can filter data by dimensions in a time period. You can use <code>GetDimensionValues</code> to determine the possible dimension values. Currently, you can group only by <code>SUBSCRIPTION_ID</code>. 

        :param self:
        :param MaxResults:  The maximum number of objects that you returned for this request. If more objects are available, in the response, AWS provides a NextPageToken value that you can use in a subsequent call to get the next batch of objects.<br/>NextPageToken:  The token to retrieve the next set of results. AWS provides the token when the response from a previous call has more results than the maximum page size.<br/>SortBy:  The value by which you want to sort the data. The following values are supported for <code>Key</code>: <ul> <li>  <code>UtilizationPercentage</code>  </li> <li>  <code>UtilizationPercentageInUnits</code>  </li> <li>  <code>PurchasedHours</code>  </li> <li>  <code>PurchasedUnits</code>  </li> <li>  <code>TotalActualHours</code>  </li> <li>  <code>TotalActualUnits</code>  </li> <li>  <code>UnusedHours</code>  </li> <li>  <code>UnusedUnits</code>  </li> <li>  <code>OnDemandCostOfRIHoursUsed</code>  </li> <li>  <code>NetRISavings</code>  </li> <li>  <code>TotalPotentialRISavings</code>  </li> <li>  <code>AmortizedUpfrontFee</code>  </li> <li>  <code>AmortizedRecurringFee</code>  </li> <li>  <code>TotalAmortizedFee</code>  </li> <li>  <code>RICostForUnusedHours</code>  </li> <li>  <code>RealizedSavings</code>  </li> <li>  <code>UnrealizedSavings</code>  </li> </ul> Supported values for <code>SortOrder</code> are <code>ASCENDING</code> or <code>DESCENDING</code>.:<br/>Filter:  Filters utilization data by dimensions. You can filter by the following dimensions: <ul> <li> AZ </li> <li> CACHE_ENGINE </li> <li> DEPLOYMENT_OPTION </li> <li> INSTANCE_TYPE </li> <li> LINKED_ACCOUNT </li> <li> OPERATING_SYSTEM </li> <li> PLATFORM </li> <li> REGION </li> <li> SERVICE </li> <li> SCOPE </li> <li> TENANCY </li> </ul>  <code>GetReservationUtilization</code> uses the same <a href="https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html">Expression</a> object as the other operations, but only <code>AND</code> is supported among each dimension, and nesting is supported up to only one level deep. If there are multiple values for a dimension, they are OR'd together.:<br/>Granularity:  If <code>GroupBy</code> is set, <code>Granularity</code> can't be set. If <code>Granularity</code> isn't set, the response object doesn't include <code>Granularity</code>, either <code>MONTHLY</code> or <code>DAILY</code>. If both <code>GroupBy</code> and <code>Granularity</code> aren't set, <code>GetReservationUtilization</code> defaults to <code>DAILY</code>. The <code>GetReservationUtilization</code> operation supports only <code>DAILY</code> and <code>MONTHLY</code> granularities.<br/>GroupBy:  Groups only by <code>SUBSCRIPTION_ID</code>. Metadata is included.<br/>TimePeriod:  Sets the start and end dates for retrieving RI utilization. The start date is inclusive, but the end date is exclusive. For example, if <code>start</code> is <code>2017-01-01</code> and <code>end</code> is <code>2017-05-01</code>, then the cost and usage data is retrieved from <code>2017-01-01</code> up to and including <code>2017-04-30</code> but not including <code>2017-05-01</code>. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>End</i> The end of the time period. The end date is exclusive. For example, if <code>end</code> is <code>2017-05-01</code>, AWS retrieves cost and usage data from the start date up to, but not including, <code>2017-05-01</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Start</i> The beginning of the time period. The start date is inclusive. For example, if <code>start</code> is <code>2017-01-01</code>, AWS retrieves cost and usage data starting at <code>2017-01-01</code> up to the end date. The start date must be equal to or no later than the current date to avoid a validation error.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CostCategories</i> The filter based on <code>CostCategory</code> values.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CostCategories</b>: The filter based on <code>CostCategory</code> values.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The specific <code>Tag</code> to use for <code>Expression</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Tags</b>: The specific <code>Tag</code> to use for <code>Expression</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Dimensions</i> The specific <code>Dimension</code> to use for <code>Expression</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Dimensions</b>: The specific <code>Dimension</code> to use for <code>Expression</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Not</i> Return results that don't match a <code>Dimension</code> object.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Not</b>: Return results that don't match a <code>Dimension</code> object.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>And</i> Return results that match both <code>Dimension</code> objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Or</i> Return results that match either <code>Dimension</code> object.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>And</i> Return results that match both <code>Dimension</code> objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Or</i> Return results that match either <code>Dimension</code> object.<br/>Return results that don't match a <code>Dimension</code> object.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Not</b>: Return results that don't match a <code>Dimension</code> object.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MatchOptions</i> The match options that you can use to filter your results. <code>MatchOptions</code> is only applicable for actions related to Cost Category. The default values for <code>MatchOptions</code> are <code>EQUALS</code> and <code>CASE_SENSITIVE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Values</i> The metadata values that you can use to filter and group your results. You can use <code>GetDimensionValues</code> to find specific values.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The names of the metadata types that you can use to filter and group your results. For example, <code>AZ</code> returns a list of Availability Zones.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MatchOptions</i> The match options that you can use to filter your results. <code>MatchOptions</code> is only applicable for actions related to Cost Category. The default values for <code>MatchOptions</code> are <code>EQUALS</code> and <code>CASE_SENSITIVE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Values</i> The specific value of the tag.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The key for the tag.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MatchOptions</i>  The match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for <code>MatchOptions</code> is <code>EQUALS</code> and <code>CASE_SENSITIVE</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Values</i> The specific value of the Cost Category.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The unique name of the Cost Category.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SortOrder</i> The order in which to sort the data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The key by which to sort the data.<br/>
        :return: NextPageToken:  The token for the next set of retrievable results. AWS provides the token when the response from a previous call has more results than the maximum page size.<br/>Total:  The total amount of time that you used your RIs.:<br/>UtilizationsByTime:  The amount of time that you used your RIs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UnrealizedSavings</i> The unrealized savings due to purchasing and using a reservation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RealizedSavings</i> The realized savings due to purchasing and using a reservation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RICostForUnusedHours</i> The cost of unused hours for your reservation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalAmortizedFee</i> The total cost of your reservation, amortized over the reservation period.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AmortizedRecurringFee</i> The monthly cost of your reservation, amortized over the reservation period.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AmortizedUpfrontFee</i> The upfront cost of your reservation, amortized over the reservation period.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalPotentialRISavings</i> How much you could save if you use your entire reservation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetRISavings</i> How much you saved due to purchasing and utilizing reservation. AWS calculates this by subtracting <code>TotalAmortizedFee</code> from <code>OnDemandCostOfRIHoursUsed</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OnDemandCostOfRIHoursUsed</i> How much your reservation would cost if charged On-Demand rates.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UnusedUnits</i> The number of Amazon EC2 reservation hours that you didn't use, converted to normalized units. Normalized units are available only for Amazon EC2 usage after November 11, 2017.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UnusedHours</i> The number of reservation hours that you didn't use.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalActualUnits</i> The total number of Amazon EC2 reservation hours that you used, converted to normalized units. Normalized units are available only for Amazon EC2 usage after November 11, 2017.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalActualHours</i> The total number of reservation hours that you used.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PurchasedUnits</i> How many Amazon EC2 reservation hours that you purchased, converted to normalized units. Normalized units are available only for Amazon EC2 usage after November 11, 2017.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PurchasedHours</i> How many reservation hours that you purchased.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UtilizationPercentageInUnits</i> The percentage of Amazon EC2 reservation time that you used, converted to normalized units. Normalized units are available only for Amazon EC2 usage after November 11, 2017.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UtilizationPercentage</i> The percentage of reservation time that you used.<br/>        """
        pass

    def get_rightsizing_recommendation(self, Service: str, Filter: Expression=None, Configuration: RightsizingRecommendationConfiguration=None, PageSize: int=None, NextPageToken: str=None) -> GetRightsizingRecommendationResponse:
        r"""Creates recommendations that help you save cost by identifying idle and underutilized Amazon EC2 instances. Recommendations are generated to either downsize or terminate instances, along with providing savings detail and metrics. For details on calculation and function, see <a href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/ce-rightsizing.html">Optimizing Your Cost with Rightsizing Recommendations</a> in the <i>AWS Billing and Cost Management User Guide</i>.

        :param self:
        :param NextPageToken:  The pagination token that indicates the next set of results that you want to retrieve.<br/>PageSize:  The number of recommendations that you want returned in a single response object.<br/>Service:  The specific service that you want recommendations for. The only valid value for <code>GetRightsizingRecommendation</code> is "<code>AmazonEC2</code>".<br/>Configuration:   Enables you to customize recommendations across two attributes. You can choose to view recommendations for instances within the same instance families or across different instance families. You can also choose to view your estimated savings associated with recommendations with consideration of existing Savings Plans or RI benefits, or neither. :<br/>Filter:  Use <code>Expression</code> to filter by cost or by usage. There are two patterns:  <ul> <li> Simple dimension values - You can set the dimension name and values for the filters that you plan to use. For example, you can filter for <code>REGION==us-east-1 OR REGION==us-west-1</code>. For <code>GetRightsizingRecommendation</code>, the Region is a full name (for example, <code>REGION==US East (N. Virginia)</code>. The <code>Expression</code> example looks like:  <code>{ "Dimensions": { "Key": "REGION", "Values": [ "us-east-1", “us-west-1” ] } }</code>  The list of dimension values are OR'd together to retrieve cost or usage data. You can create <code>Expression</code> and <code>DimensionValues</code> objects using either <code>with*</code> methods or <code>set*</code> methods in multiple lines.  </li> <li> Compound dimension values with logical operations - You can use multiple <code>Expression</code> types and the logical operators <code>AND/OR/NOT</code> to create a list of one or more <code>Expression</code> objects. This allows you to filter on more advanced options. For example, you can filter on <code>((REGION == us-east-1 OR REGION == us-west-1) OR (TAG.Type == Type1)) AND (USAGE_TYPE != DataTransfer)</code>. The <code>Expression</code> for that looks like this:  <code>{ "And": [ {"Or": [ {"Dimensions": { "Key": "REGION", "Values": [ "us-east-1", "us-west-1" ] }}, {"Tags": { "Key": "TagName", "Values": ["Value1"] } } ]}, {"Not": {"Dimensions": { "Key": "USAGE_TYPE", "Values": ["DataTransfer"] }}} ] } </code>  <note> Because each <code>Expression</code> can have only one operator, the service returns an error if more than one is specified. The following example shows an <code>Expression</code> object that creates an error. </note>  <code> { "And": [ ... ], "DimensionValues": { "Dimension": "USAGE_TYPE", "Values": [ "DataTransfer" ] } } </code>  </li> </ul> <note> For the <code>GetRightsizingRecommendation</code> action, a combination of OR and NOT is not supported. OR is not supported between different dimensions, or dimensions and tags. NOT operators aren't supported. Dimensions are also limited to <code>LINKED_ACCOUNT</code>, <code>REGION</code>, or <code>RIGHTSIZING_TYPE</code>. For the <code>GetReservationPurchaseRecommendation</code> action, only NOT is supported. AND and OR are not supported. Dimensions are limited to <code>LINKED_ACCOUNT</code>. </note>:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CostCategories</i> The filter based on <code>CostCategory</code> values.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CostCategories</b>: The filter based on <code>CostCategory</code> values.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The specific <code>Tag</code> to use for <code>Expression</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Tags</b>: The specific <code>Tag</code> to use for <code>Expression</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Dimensions</i> The specific <code>Dimension</code> to use for <code>Expression</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Dimensions</b>: The specific <code>Dimension</code> to use for <code>Expression</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Not</i> Return results that don't match a <code>Dimension</code> object.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Not</b>: Return results that don't match a <code>Dimension</code> object.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>And</i> Return results that match both <code>Dimension</code> objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Or</i> Return results that match either <code>Dimension</code> object.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>And</i> Return results that match both <code>Dimension</code> objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Or</i> Return results that match either <code>Dimension</code> object.<br/>Return results that don't match a <code>Dimension</code> object.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Not</b>: Return results that don't match a <code>Dimension</code> object.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MatchOptions</i> The match options that you can use to filter your results. <code>MatchOptions</code> is only applicable for actions related to Cost Category. The default values for <code>MatchOptions</code> are <code>EQUALS</code> and <code>CASE_SENSITIVE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Values</i> The metadata values that you can use to filter and group your results. You can use <code>GetDimensionValues</code> to find specific values.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The names of the metadata types that you can use to filter and group your results. For example, <code>AZ</code> returns a list of Availability Zones.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MatchOptions</i> The match options that you can use to filter your results. <code>MatchOptions</code> is only applicable for actions related to Cost Category. The default values for <code>MatchOptions</code> are <code>EQUALS</code> and <code>CASE_SENSITIVE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Values</i> The specific value of the tag.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The key for the tag.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MatchOptions</i>  The match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for <code>MatchOptions</code> is <code>EQUALS</code> and <code>CASE_SENSITIVE</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Values</i> The specific value of the Cost Category.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The unique name of the Cost Category.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BenefitsConsidered</i>  The option to consider RI or Savings Plans discount benefits in your savings calculation. The default value is <code>TRUE</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecommendationTarget</i>  The option to see recommendations within the same instance family, or recommendations for instances across other families. The default value is <code>SAME_INSTANCE_FAMILY</code>. <br/>
        :return: Configuration:   Enables you to customize recommendations across two attributes. You can choose to view recommendations for instances within the same instance families or across different instance families. You can also choose to view your estimated savings associated with recommendations with consideration of existing Savings Plans or RI benefits, or neither. :<br/>NextPageToken:  The token to retrieve the next set of results.<br/>RightsizingRecommendations:  Recommendations to rightsize resources.<br/>Summary:  Summary of this recommendation set.:<br/>Metadata:  Information regarding this specific recommendation set.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdditionalMetadata</i> Additional metadata that may be applicable to the recommendation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LookbackPeriodInDays</i>  How many days of previous usage that AWS considers when making this recommendation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GenerationTimestamp</i>  The timestamp for when AWS made this recommendation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecommendationId</i>  The ID for this specific recommendation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SavingsPercentage</i>  Savings percentage based on the recommended modifications, relative to the total On-Demand costs associated with these instances.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SavingsCurrencyCode</i>  The currency code that AWS used to calculate the savings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EstimatedTotalMonthlySavingsAmount</i>  Estimated total savings resulting from modifications, on a monthly basis.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalRecommendationCount</i>  Total number of instance recommendations.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BenefitsConsidered</i>  The option to consider RI or Savings Plans discount benefits in your savings calculation. The default value is <code>TRUE</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecommendationTarget</i>  The option to see recommendations within the same instance family, or recommendations for instances across other families. The default value is <code>SAME_INSTANCE_FAMILY</code>. <br/>        """
        pass

    def get_savings_plans_coverage(self, TimePeriod: DateInterval, GroupBy: List[GroupDefinition]=None, Granularity: str=None, Filter: Expression=None, Metrics: List[MetricName]=None, NextToken: str=None, MaxResults: int=None, SortBy: SortDefinition=None) -> GetSavingsPlansCoverageResponse:
        r"""Retrieves the Savings Plans covered for your account. This enables you to see how much of your cost is covered by a Savings Plan. An organization’s management account can see the coverage of the associated member accounts. This supports dimensions, Cost Categories, and nested expressions. For any time period, you can filter data for Savings Plans usage with the following dimensions: <ul> <li>  <code>LINKED_ACCOUNT</code>  </li> <li>  <code>REGION</code>  </li> <li>  <code>SERVICE</code>  </li> <li>  <code>INSTANCE_FAMILY</code>  </li> </ul> To determine valid values for a dimension, use the <code>GetDimensionValues</code> operation.

        :param self:
        :param SortBy:  The value by which you want to sort the data. The following values are supported for <code>Key</code>: <ul> <li>  <code>SpendCoveredBySavingsPlan</code>  </li> <li>  <code>OnDemandCost</code>  </li> <li>  <code>CoveragePercentage</code>  </li> <li>  <code>TotalCost</code>  </li> <li>  <code>InstanceFamily</code>  </li> <li>  <code>Region</code>  </li> <li>  <code>Service</code>  </li> </ul> Supported values for <code>SortOrder</code> are <code>ASCENDING</code> or <code>DESCENDING</code>.:<br/>MaxResults:  The number of items to be returned in a response. The default is <code>20</code>, with a minimum value of <code>1</code>.<br/>NextToken:  The token to retrieve the next set of results. Amazon Web Services provides the token when the response from a previous call has more results than the maximum page size.<br/>Metrics:  The measurement that you want your Savings Plans coverage reported in. The only valid value is <code>SpendCoveredBySavingsPlans</code>.<br/>Filter:  Filters Savings Plans coverage data by dimensions. You can filter data for Savings Plans usage with the following dimensions: <ul> <li>  <code>LINKED_ACCOUNT</code>  </li> <li>  <code>REGION</code>  </li> <li>  <code>SERVICE</code>  </li> <li>  <code>INSTANCE_FAMILY</code>  </li> </ul>  <code>GetSavingsPlansCoverage</code> uses the same <a href="https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html">Expression</a> object as the other operations, but only <code>AND</code> is supported among each dimension. If there are multiple values for a dimension, they are OR'd together. Cost category is also supported.:<br/>Granularity:  The granularity of the Amazon Web Services cost data for your Savings Plans. <code>Granularity</code> can't be set if <code>GroupBy</code> is set. The <code>GetSavingsPlansCoverage</code> operation supports only <code>DAILY</code> and <code>MONTHLY</code> granularities.<br/>GroupBy:  You can group the data using the attributes <code>INSTANCE_FAMILY</code>, <code>REGION</code>, or <code>SERVICE</code>.<br/>TimePeriod:  The time period that you want the usage and costs for. The <code>Start</code> date must be within 13 months. The <code>End</code> date must be after the <code>Start</code> date, and before the current date. Future dates can't be used as an <code>End</code> date.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>End</i> The end of the time period. The end date is exclusive. For example, if <code>end</code> is <code>2017-05-01</code>, AWS retrieves cost and usage data from the start date up to, but not including, <code>2017-05-01</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Start</i> The beginning of the time period. The start date is inclusive. For example, if <code>start</code> is <code>2017-01-01</code>, AWS retrieves cost and usage data starting at <code>2017-01-01</code> up to the end date. The start date must be equal to or no later than the current date to avoid a validation error.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CostCategories</i> The filter based on <code>CostCategory</code> values.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CostCategories</b>: The filter based on <code>CostCategory</code> values.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The specific <code>Tag</code> to use for <code>Expression</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Tags</b>: The specific <code>Tag</code> to use for <code>Expression</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Dimensions</i> The specific <code>Dimension</code> to use for <code>Expression</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Dimensions</b>: The specific <code>Dimension</code> to use for <code>Expression</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Not</i> Return results that don't match a <code>Dimension</code> object.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Not</b>: Return results that don't match a <code>Dimension</code> object.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>And</i> Return results that match both <code>Dimension</code> objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Or</i> Return results that match either <code>Dimension</code> object.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>And</i> Return results that match both <code>Dimension</code> objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Or</i> Return results that match either <code>Dimension</code> object.<br/>Return results that don't match a <code>Dimension</code> object.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Not</b>: Return results that don't match a <code>Dimension</code> object.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MatchOptions</i> The match options that you can use to filter your results. <code>MatchOptions</code> is only applicable for actions related to Cost Category. The default values for <code>MatchOptions</code> are <code>EQUALS</code> and <code>CASE_SENSITIVE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Values</i> The metadata values that you can use to filter and group your results. You can use <code>GetDimensionValues</code> to find specific values.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The names of the metadata types that you can use to filter and group your results. For example, <code>AZ</code> returns a list of Availability Zones.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MatchOptions</i> The match options that you can use to filter your results. <code>MatchOptions</code> is only applicable for actions related to Cost Category. The default values for <code>MatchOptions</code> are <code>EQUALS</code> and <code>CASE_SENSITIVE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Values</i> The specific value of the tag.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The key for the tag.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MatchOptions</i>  The match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for <code>MatchOptions</code> is <code>EQUALS</code> and <code>CASE_SENSITIVE</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Values</i> The specific value of the Cost Category.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The unique name of the Cost Category.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SortOrder</i> The order in which to sort the data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The key by which to sort the data.<br/>
        :return: NextToken:  The token to retrieve the next set of results. Amazon Web Services provides the token when the response from a previous call has more results than the maximum page size.<br/>SavingsPlansCoverages:  The amount of spend that your Savings Plans covered.<br/>        """
        pass

    def get_savings_plans_purchase_recommendation(self, LookbackPeriodInDays: str, PaymentOption: str, TermInYears: str, SavingsPlansType: str, AccountScope: str=None, NextPageToken: str=None, PageSize: int=None, Filter: Expression=None) -> GetSavingsPlansPurchaseRecommendationResponse:
        r"""Retrieves your request parameters, Savings Plan Recommendations Summary and Details. 

        :param self:
        :param Filter:  You can filter your recommendations by Account ID with the <code>LINKED_ACCOUNT</code> dimension. To filter your recommendations by Account ID, specify <code>Key</code> as <code>LINKED_ACCOUNT</code> and <code>Value</code> as the comma-separated Acount ID(s) for which you want to see Savings Plans purchase recommendations. For GetSavingsPlansPurchaseRecommendation, the <code>Filter</code> does not include <code>CostCategories</code> or <code>Tags</code>. It only includes <code>Dimensions</code>. With <code>Dimensions</code>, <code>Key</code> must be <code>LINKED_ACCOUNT</code> and <code>Value</code> can be a single Account ID or multiple comma-separated Account IDs for which you want to see Savings Plans Purchase Recommendations. <code>AND</code> and <code>OR</code> operators are not supported.:<br/>LookbackPeriodInDays:  The lookback period used to generate the recommendation.<br/>PageSize:  The number of recommendations that you want returned in a single response object.<br/>NextPageToken:  The token to retrieve the next set of results. Amazon Web Services provides the token when the response from a previous call has more results than the maximum page size.<br/>AccountScope:  The account scope that you want your recommendations for. Amazon Web Services calculates recommendations including the management account and member accounts if the value is set to <code>PAYER</code>. If the value is <code>LINKED</code>, recommendations are calculated for individual member accounts only.<br/>PaymentOption:  The payment option used to generate these recommendations.<br/>TermInYears:  The savings plan recommendation term used to generate these recommendations.<br/>SavingsPlansType:  The Savings Plans recommendation type requested.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CostCategories</i> The filter based on <code>CostCategory</code> values.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CostCategories</b>: The filter based on <code>CostCategory</code> values.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The specific <code>Tag</code> to use for <code>Expression</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Tags</b>: The specific <code>Tag</code> to use for <code>Expression</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Dimensions</i> The specific <code>Dimension</code> to use for <code>Expression</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Dimensions</b>: The specific <code>Dimension</code> to use for <code>Expression</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Not</i> Return results that don't match a <code>Dimension</code> object.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Not</b>: Return results that don't match a <code>Dimension</code> object.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>And</i> Return results that match both <code>Dimension</code> objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Or</i> Return results that match either <code>Dimension</code> object.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>And</i> Return results that match both <code>Dimension</code> objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Or</i> Return results that match either <code>Dimension</code> object.<br/>Return results that don't match a <code>Dimension</code> object.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Not</b>: Return results that don't match a <code>Dimension</code> object.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MatchOptions</i> The match options that you can use to filter your results. <code>MatchOptions</code> is only applicable for actions related to Cost Category. The default values for <code>MatchOptions</code> are <code>EQUALS</code> and <code>CASE_SENSITIVE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Values</i> The metadata values that you can use to filter and group your results. You can use <code>GetDimensionValues</code> to find specific values.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The names of the metadata types that you can use to filter and group your results. For example, <code>AZ</code> returns a list of Availability Zones.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MatchOptions</i> The match options that you can use to filter your results. <code>MatchOptions</code> is only applicable for actions related to Cost Category. The default values for <code>MatchOptions</code> are <code>EQUALS</code> and <code>CASE_SENSITIVE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Values</i> The specific value of the tag.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The key for the tag.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MatchOptions</i>  The match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for <code>MatchOptions</code> is <code>EQUALS</code> and <code>CASE_SENSITIVE</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Values</i> The specific value of the Cost Category.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The unique name of the Cost Category.<br/>
        :return: NextPageToken:  The token for the next set of retrievable results. AWS provides the token when the response from a previous call has more results than the maximum page size.<br/>SavingsPlansPurchaseRecommendation:  Contains your request parameters, Savings Plan Recommendations Summary, and Details.:<br/>Metadata:  Information regarding this specific recommendation set.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdditionalMetadata</i> Additional metadata that may be applicable to the recommendation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GenerationTimestamp</i> The timestamp showing when the recommendations were generated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecommendationId</i> The unique identifier for the recommendation set.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SavingsPlansPurchaseRecommendationSummary</i> Summary metrics for your Savings Plans Recommendations. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SavingsPlansPurchaseRecommendationSummary</b>: Summary metrics for your Savings Plans Recommendations. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SavingsPlansPurchaseRecommendationDetails</i> Details for the Savings Plans we recommend that you purchase to cover existing Savings Plans eligible workloads.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LookbackPeriodInDays</i> The lookback period in days, used to generate the recommendation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PaymentOption</i> The payment option used to generate the recommendation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TermInYears</i> The Savings Plans recommendation term in years, used to generate the recommendation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SavingsPlansType</i> The requested Savings Plans recommendation type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccountScope</i> The account scope that you want your recommendations for. Amazon Web Services calculates recommendations including the management account and member accounts if the value is set to <code>PAYER</code>. If the value is <code>LINKED</code>, recommendations are calculated for individual member accounts only.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EstimatedOnDemandCostWithCurrentCommitment</i>  The estimated On-Demand costs you would expect with no additional commitment, based on your usage of the selected time period and the Savings Plans you own. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EstimatedMonthlySavingsAmount</i> The estimated monthly savings amount, based on the recommended Savings Plans purchase.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EstimatedSavingsPercentage</i> The estimated savings relative to the total cost of On-Demand usage, over the lookback period. This is calculated as <code>estimatedSavingsAmount</code>/ <code>CurrentOnDemandSpend</code>*100.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HourlyCommitmentToPurchase</i> The recommended hourly commitment based on the recommendation parameters.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DailyCommitmentToPurchase</i> The recommended Savings Plans cost on a daily (24 hourly) basis.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalRecommendationCount</i> The aggregate number of Savings Plans recommendations that exist for your account.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EstimatedSavingsAmount</i> The estimated total savings over the lookback period, based on the purchase of the recommended Savings Plans.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CurrentOnDemandSpend</i> The current total on demand spend of the applicable usage types over the lookback period.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EstimatedTotalCost</i> The estimated total cost of the usage after purchasing the recommended Savings Plans. This is a sum of the cost of Savings Plans during this term, and the remaining On-Demand usage.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CurrencyCode</i> The currency code AWS used to generate the recommendations and present potential savings.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EstimatedROI</i> The estimated return on investment based on the recommended Savings Plans and estimated savings.<br/>        """
        pass

    def get_savings_plans_utilization(self, TimePeriod: DateInterval, Granularity: str=None, Filter: Expression=None, SortBy: SortDefinition=None) -> GetSavingsPlansUtilizationResponse:
        r"""Retrieves the Savings Plans utilization for your account across date ranges with daily or monthly granularity. Management account in an organization have access to member accounts. You can use <code>GetDimensionValues</code> in <code>SAVINGS_PLANS</code> to determine the possible dimension values. <note> You cannot group by any dimension values for <code>GetSavingsPlansUtilization</code>. </note>

        :param self:
        :param SortBy:  The value by which you want to sort the data. The following values are supported for <code>Key</code>: <ul> <li>  <code>UtilizationPercentage</code>  </li> <li>  <code>TotalCommitment</code>  </li> <li>  <code>UsedCommitment</code>  </li> <li>  <code>UnusedCommitment</code>  </li> <li>  <code>NetSavings</code>  </li> </ul> Supported values for <code>SortOrder</code> are <code>ASCENDING</code> or <code>DESCENDING</code>.:<br/>Filter:  Filters Savings Plans utilization coverage data for active Savings Plans dimensions. You can filter data with the following dimensions: <ul> <li>  <code>LINKED_ACCOUNT</code>  </li> <li>  <code>SAVINGS_PLAN_ARN</code>  </li> <li>  <code>SAVINGS_PLANS_TYPE</code>  </li> <li>  <code>REGION</code>  </li> <li>  <code>PAYMENT_OPTION</code>  </li> <li>  <code>INSTANCE_TYPE_FAMILY</code>  </li> </ul>  <code>GetSavingsPlansUtilization</code> uses the same <a href="https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html">Expression</a> object as the other operations, but only <code>AND</code> is supported among each dimension.:<br/>Granularity:  The granularity of the Amazon Web Services utillization data for your Savings Plans. The <code>GetSavingsPlansUtilization</code> operation supports only <code>DAILY</code> and <code>MONTHLY</code> granularities.<br/>TimePeriod:  The time period that you want the usage and costs for. The <code>Start</code> date must be within 13 months. The <code>End</code> date must be after the <code>Start</code> date, and before the current date. Future dates can't be used as an <code>End</code> date.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>End</i> The end of the time period. The end date is exclusive. For example, if <code>end</code> is <code>2017-05-01</code>, AWS retrieves cost and usage data from the start date up to, but not including, <code>2017-05-01</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Start</i> The beginning of the time period. The start date is inclusive. For example, if <code>start</code> is <code>2017-01-01</code>, AWS retrieves cost and usage data starting at <code>2017-01-01</code> up to the end date. The start date must be equal to or no later than the current date to avoid a validation error.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CostCategories</i> The filter based on <code>CostCategory</code> values.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CostCategories</b>: The filter based on <code>CostCategory</code> values.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The specific <code>Tag</code> to use for <code>Expression</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Tags</b>: The specific <code>Tag</code> to use for <code>Expression</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Dimensions</i> The specific <code>Dimension</code> to use for <code>Expression</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Dimensions</b>: The specific <code>Dimension</code> to use for <code>Expression</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Not</i> Return results that don't match a <code>Dimension</code> object.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Not</b>: Return results that don't match a <code>Dimension</code> object.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>And</i> Return results that match both <code>Dimension</code> objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Or</i> Return results that match either <code>Dimension</code> object.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>And</i> Return results that match both <code>Dimension</code> objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Or</i> Return results that match either <code>Dimension</code> object.<br/>Return results that don't match a <code>Dimension</code> object.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Not</b>: Return results that don't match a <code>Dimension</code> object.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MatchOptions</i> The match options that you can use to filter your results. <code>MatchOptions</code> is only applicable for actions related to Cost Category. The default values for <code>MatchOptions</code> are <code>EQUALS</code> and <code>CASE_SENSITIVE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Values</i> The metadata values that you can use to filter and group your results. You can use <code>GetDimensionValues</code> to find specific values.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The names of the metadata types that you can use to filter and group your results. For example, <code>AZ</code> returns a list of Availability Zones.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MatchOptions</i> The match options that you can use to filter your results. <code>MatchOptions</code> is only applicable for actions related to Cost Category. The default values for <code>MatchOptions</code> are <code>EQUALS</code> and <code>CASE_SENSITIVE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Values</i> The specific value of the tag.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The key for the tag.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MatchOptions</i>  The match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for <code>MatchOptions</code> is <code>EQUALS</code> and <code>CASE_SENSITIVE</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Values</i> The specific value of the Cost Category.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The unique name of the Cost Category.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SortOrder</i> The order in which to sort the data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The key by which to sort the data.<br/>
        :return: Total:  The total amount of cost/commitment that you used your Savings Plans, regardless of date ranges.:<br/>SavingsPlansUtilizationsByTime:  The amount of cost/commitment you used your Savings Plans. This allows you to specify date ranges.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AmortizedCommitment</i> The total amortized commitment for a Savings Plans. This includes the sum of the upfront and recurring Savings Plans fees.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AmortizedCommitment</b>: The total amortized commitment for a Savings Plans. This includes the sum of the upfront and recurring Savings Plans fees.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Savings</i> The amount saved by using existing Savings Plans. Savings returns both net savings from Savings Plans, as well as the <code>onDemandCostEquivalent</code> of the Savings Plans when considering the utilization rate.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Savings</b>: The amount saved by using existing Savings Plans. Savings returns both net savings from Savings Plans, as well as the <code>onDemandCostEquivalent</code> of the Savings Plans when considering the utilization rate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Utilization</i> A ratio of your effectiveness of using existing Savings Plans to apply to workloads that are Savings Plans eligible.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Utilization</b>: A ratio of your effectiveness of using existing Savings Plans to apply to workloads that are Savings Plans eligible.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UtilizationPercentage</i> The amount of <code>UsedCommitment</code> divided by the <code>TotalCommitment</code> for your Savings Plans.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UnusedCommitment</i> The amount of your Savings Plans commitment that was not consumed from Savings Plans eligible usage in a specific period.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UsedCommitment</i> The amount of your Savings Plans commitment that was consumed from Savings Plans eligible usage in a specific period.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalCommitment</i> The total amount of Savings Plans commitment that's been purchased in an account (or set of accounts).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OnDemandCostEquivalent</i> How much the amount that the usage would have cost if it was accrued at the On-Demand rate.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NetSavings</i> The savings amount that you are accumulating for the usage that is covered by a Savings Plans, when compared to the On-Demand equivalent of the same usage.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalAmortizedCommitment</i> The total amortized amount of your Savings Plans commitment, regardless of your Savings Plans purchase method. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AmortizedUpfrontCommitment</i> The amortized amount of your Savings Plans commitment that was purchased with an <code>Upfront</code> or <code>PartialUpfront</code> Savings Plans.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AmortizedRecurringCommitment</i> The amortized amount of your Savings Plans commitment that was purchased with either a <code>Partial</code> or a <code>NoUpfront</code>.<br/>        """
        pass

    def get_savings_plans_utilization_details(self, TimePeriod: DateInterval, Filter: Expression=None, DataType: List[SavingsPlansDataType]=None, NextToken: str=None, MaxResults: int=None, SortBy: SortDefinition=None) -> GetSavingsPlansUtilizationDetailsResponse:
        r"""Retrieves attribute data along with aggregate utilization and savings data for a given time period. This doesn't support granular or grouped data (daily/monthly) in response. You can't retrieve data by dates in a single response similar to <code>GetSavingsPlanUtilization</code>, but you have the option to make multiple calls to <code>GetSavingsPlanUtilizationDetails</code> by providing individual dates. You can use <code>GetDimensionValues</code> in <code>SAVINGS_PLANS</code> to determine the possible dimension values. <note>  <code>GetSavingsPlanUtilizationDetails</code> internally groups data by <code>SavingsPlansArn</code>. </note>

        :param self:
        :param SortBy:  The value by which you want to sort the data. The following values are supported for <code>Key</code>: <ul> <li>  <code>UtilizationPercentage</code>  </li> <li>  <code>TotalCommitment</code>  </li> <li>  <code>UsedCommitment</code>  </li> <li>  <code>UnusedCommitment</code>  </li> <li>  <code>NetSavings</code>  </li> <li>  <code>AmortizedRecurringCommitment</code>  </li> <li>  <code>AmortizedUpfrontCommitment</code>  </li> </ul> Supported values for <code>SortOrder</code> are <code>ASCENDING</code> or <code>DESCENDING</code>.:<br/>MaxResults:  The number of items to be returned in a response. The default is <code>20</code>, with a minimum value of <code>1</code>.<br/>NextToken:  The token to retrieve the next set of results. Amazon Web Services provides the token when the response from a previous call has more results than the maximum page size.<br/>DataType:  The data type.<br/>Filter:  Filters Savings Plans utilization coverage data for active Savings Plans dimensions. You can filter data with the following dimensions: <ul> <li>  <code>LINKED_ACCOUNT</code>  </li> <li>  <code>SAVINGS_PLAN_ARN</code>  </li> <li>  <code>REGION</code>  </li> <li>  <code>PAYMENT_OPTION</code>  </li> <li>  <code>INSTANCE_TYPE_FAMILY</code>  </li> </ul>  <code>GetSavingsPlansUtilizationDetails</code> uses the same <a href="https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html">Expression</a> object as the other operations, but only <code>AND</code> is supported among each dimension.:<br/>TimePeriod:  The time period that you want the usage and costs for. The <code>Start</code> date must be within 13 months. The <code>End</code> date must be after the <code>Start</code> date, and before the current date. Future dates can't be used as an <code>End</code> date.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>End</i> The end of the time period. The end date is exclusive. For example, if <code>end</code> is <code>2017-05-01</code>, AWS retrieves cost and usage data from the start date up to, but not including, <code>2017-05-01</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Start</i> The beginning of the time period. The start date is inclusive. For example, if <code>start</code> is <code>2017-01-01</code>, AWS retrieves cost and usage data starting at <code>2017-01-01</code> up to the end date. The start date must be equal to or no later than the current date to avoid a validation error.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CostCategories</i> The filter based on <code>CostCategory</code> values.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CostCategories</b>: The filter based on <code>CostCategory</code> values.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The specific <code>Tag</code> to use for <code>Expression</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Tags</b>: The specific <code>Tag</code> to use for <code>Expression</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Dimensions</i> The specific <code>Dimension</code> to use for <code>Expression</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Dimensions</b>: The specific <code>Dimension</code> to use for <code>Expression</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Not</i> Return results that don't match a <code>Dimension</code> object.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Not</b>: Return results that don't match a <code>Dimension</code> object.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>And</i> Return results that match both <code>Dimension</code> objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Or</i> Return results that match either <code>Dimension</code> object.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>And</i> Return results that match both <code>Dimension</code> objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Or</i> Return results that match either <code>Dimension</code> object.<br/>Return results that don't match a <code>Dimension</code> object.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Not</b>: Return results that don't match a <code>Dimension</code> object.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MatchOptions</i> The match options that you can use to filter your results. <code>MatchOptions</code> is only applicable for actions related to Cost Category. The default values for <code>MatchOptions</code> are <code>EQUALS</code> and <code>CASE_SENSITIVE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Values</i> The metadata values that you can use to filter and group your results. You can use <code>GetDimensionValues</code> to find specific values.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The names of the metadata types that you can use to filter and group your results. For example, <code>AZ</code> returns a list of Availability Zones.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MatchOptions</i> The match options that you can use to filter your results. <code>MatchOptions</code> is only applicable for actions related to Cost Category. The default values for <code>MatchOptions</code> are <code>EQUALS</code> and <code>CASE_SENSITIVE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Values</i> The specific value of the tag.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The key for the tag.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MatchOptions</i>  The match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for <code>MatchOptions</code> is <code>EQUALS</code> and <code>CASE_SENSITIVE</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Values</i> The specific value of the Cost Category.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The unique name of the Cost Category.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SortOrder</i> The order in which to sort the data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The key by which to sort the data.<br/>
        :return: NextToken:  The token to retrieve the next set of results. Amazon Web Services provides the token when the response from a previous call has more results than the maximum page size.<br/>TimePeriod:  The time period of the request. :<br/>Total:  The total Savings Plans utilization, regardless of time period.:<br/>SavingsPlansUtilizationDetails:  Retrieves a single daily or monthly Savings Plans utilization rate and details for your account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AmortizedCommitment</i> The total amortized commitment for a Savings Plans. This includes the sum of the upfront and recurring Savings Plans fees.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AmortizedCommitment</b>: The total amortized commitment for a Savings Plans. This includes the sum of the upfront and recurring Savings Plans fees.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Savings</i> The amount saved by using existing Savings Plans. Savings returns both net savings from Savings Plans, as well as the <code>onDemandCostEquivalent</code> of the Savings Plans when considering the utilization rate.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Savings</b>: The amount saved by using existing Savings Plans. Savings returns both net savings from Savings Plans, as well as the <code>onDemandCostEquivalent</code> of the Savings Plans when considering the utilization rate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Utilization</i> A ratio of your effectiveness of using existing Savings Plans to apply to workloads that are Savings Plans eligible.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Utilization</b>: A ratio of your effectiveness of using existing Savings Plans to apply to workloads that are Savings Plans eligible.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UtilizationPercentage</i> The amount of <code>UsedCommitment</code> divided by the <code>TotalCommitment</code> for your Savings Plans.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UnusedCommitment</i> The amount of your Savings Plans commitment that was not consumed from Savings Plans eligible usage in a specific period.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UsedCommitment</i> The amount of your Savings Plans commitment that was consumed from Savings Plans eligible usage in a specific period.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalCommitment</i> The total amount of Savings Plans commitment that's been purchased in an account (or set of accounts).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OnDemandCostEquivalent</i> How much the amount that the usage would have cost if it was accrued at the On-Demand rate.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NetSavings</i> The savings amount that you are accumulating for the usage that is covered by a Savings Plans, when compared to the On-Demand equivalent of the same usage.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalAmortizedCommitment</i> The total amortized amount of your Savings Plans commitment, regardless of your Savings Plans purchase method. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AmortizedUpfrontCommitment</i> The amortized amount of your Savings Plans commitment that was purchased with an <code>Upfront</code> or <code>PartialUpfront</code> Savings Plans.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AmortizedRecurringCommitment</i> The amortized amount of your Savings Plans commitment that was purchased with either a <code>Partial</code> or a <code>NoUpfront</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>End</i> The end of the time period. The end date is exclusive. For example, if <code>end</code> is <code>2017-05-01</code>, AWS retrieves cost and usage data from the start date up to, but not including, <code>2017-05-01</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Start</i> The beginning of the time period. The start date is inclusive. For example, if <code>start</code> is <code>2017-01-01</code>, AWS retrieves cost and usage data starting at <code>2017-01-01</code> up to the end date. The start date must be equal to or no later than the current date to avoid a validation error.<br/>        """
        pass

    def get_tags(self, TimePeriod: DateInterval, SearchString: str=None, TagKey: str=None, Filter: Expression=None, SortBy: List[SortDefinition]=None, MaxResults: int=None, NextPageToken: str=None) -> GetTagsResponse:
        r"""Queries for available tag keys and tag values for a specified period. You can search the tag values for an arbitrary string. 

        :param self:
        :param NextPageToken:  The token to retrieve the next set of results. AWS provides the token when the response from a previous call has more results than the maximum page size.<br/>MaxResults:  This field is only used when SortBy is provided in the request. The maximum number of objects that to be returned for this request. If MaxResults is not specified with SortBy, the request will return 1000 results as the default value for this parameter. For <code>GetTags</code>, MaxResults has an upper limit of 1000.<br/>SortBy:  The value by which you want to sort the data. The key represents cost and usage metrics. The following values are supported: <ul> <li>  <code>BlendedCost</code>  </li> <li>  <code>UnblendedCost</code>  </li> <li>  <code>AmortizedCost</code>  </li> <li>  <code>NetAmortizedCost</code>  </li> <li>  <code>NetUnblendedCost</code>  </li> <li>  <code>UsageQuantity</code>  </li> <li>  <code>NormalizedUsageAmount</code>  </li> </ul> Supported values for <code>SortOrder</code> are <code>ASCENDING</code> or <code>DESCENDING</code>. When using <code>SortBy</code>, <code>NextPageToken</code> and <code>SearchString</code> are not supported.<br/>Filter:  Use <code>Expression</code> to filter by cost or by usage. There are two patterns:  <ul> <li> Simple dimension values - You can set the dimension name and values for the filters that you plan to use. For example, you can filter for <code>REGION==us-east-1 OR REGION==us-west-1</code>. For <code>GetRightsizingRecommendation</code>, the Region is a full name (for example, <code>REGION==US East (N. Virginia)</code>. The <code>Expression</code> example looks like:  <code>{ "Dimensions": { "Key": "REGION", "Values": [ "us-east-1", “us-west-1” ] } }</code>  The list of dimension values are OR'd together to retrieve cost or usage data. You can create <code>Expression</code> and <code>DimensionValues</code> objects using either <code>with*</code> methods or <code>set*</code> methods in multiple lines.  </li> <li> Compound dimension values with logical operations - You can use multiple <code>Expression</code> types and the logical operators <code>AND/OR/NOT</code> to create a list of one or more <code>Expression</code> objects. This allows you to filter on more advanced options. For example, you can filter on <code>((REGION == us-east-1 OR REGION == us-west-1) OR (TAG.Type == Type1)) AND (USAGE_TYPE != DataTransfer)</code>. The <code>Expression</code> for that looks like this:  <code>{ "And": [ {"Or": [ {"Dimensions": { "Key": "REGION", "Values": [ "us-east-1", "us-west-1" ] }}, {"Tags": { "Key": "TagName", "Values": ["Value1"] } } ]}, {"Not": {"Dimensions": { "Key": "USAGE_TYPE", "Values": ["DataTransfer"] }}} ] } </code>  <note> Because each <code>Expression</code> can have only one operator, the service returns an error if more than one is specified. The following example shows an <code>Expression</code> object that creates an error. </note>  <code> { "And": [ ... ], "DimensionValues": { "Dimension": "USAGE_TYPE", "Values": [ "DataTransfer" ] } } </code>  </li> </ul> <note> For the <code>GetRightsizingRecommendation</code> action, a combination of OR and NOT is not supported. OR is not supported between different dimensions, or dimensions and tags. NOT operators aren't supported. Dimensions are also limited to <code>LINKED_ACCOUNT</code>, <code>REGION</code>, or <code>RIGHTSIZING_TYPE</code>. For the <code>GetReservationPurchaseRecommendation</code> action, only NOT is supported. AND and OR are not supported. Dimensions are limited to <code>LINKED_ACCOUNT</code>. </note>:<br/>TagKey:  The key of the tag that you want to return values for.<br/>TimePeriod:  The start and end dates for retrieving the dimension values. The start date is inclusive, but the end date is exclusive. For example, if <code>start</code> is <code>2017-01-01</code> and <code>end</code> is <code>2017-05-01</code>, then the cost and usage data is retrieved from <code>2017-01-01</code> up to and including <code>2017-04-30</code> but not including <code>2017-05-01</code>.:<br/>SearchString:  The value that you want to search for.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>End</i> The end of the time period. The end date is exclusive. For example, if <code>end</code> is <code>2017-05-01</code>, AWS retrieves cost and usage data from the start date up to, but not including, <code>2017-05-01</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Start</i> The beginning of the time period. The start date is inclusive. For example, if <code>start</code> is <code>2017-01-01</code>, AWS retrieves cost and usage data starting at <code>2017-01-01</code> up to the end date. The start date must be equal to or no later than the current date to avoid a validation error.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CostCategories</i> The filter based on <code>CostCategory</code> values.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CostCategories</b>: The filter based on <code>CostCategory</code> values.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The specific <code>Tag</code> to use for <code>Expression</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Tags</b>: The specific <code>Tag</code> to use for <code>Expression</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Dimensions</i> The specific <code>Dimension</code> to use for <code>Expression</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Dimensions</b>: The specific <code>Dimension</code> to use for <code>Expression</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Not</i> Return results that don't match a <code>Dimension</code> object.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Not</b>: Return results that don't match a <code>Dimension</code> object.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>And</i> Return results that match both <code>Dimension</code> objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Or</i> Return results that match either <code>Dimension</code> object.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>And</i> Return results that match both <code>Dimension</code> objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Or</i> Return results that match either <code>Dimension</code> object.<br/>Return results that don't match a <code>Dimension</code> object.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Not</b>: Return results that don't match a <code>Dimension</code> object.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MatchOptions</i> The match options that you can use to filter your results. <code>MatchOptions</code> is only applicable for actions related to Cost Category. The default values for <code>MatchOptions</code> are <code>EQUALS</code> and <code>CASE_SENSITIVE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Values</i> The metadata values that you can use to filter and group your results. You can use <code>GetDimensionValues</code> to find specific values.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The names of the metadata types that you can use to filter and group your results. For example, <code>AZ</code> returns a list of Availability Zones.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MatchOptions</i> The match options that you can use to filter your results. <code>MatchOptions</code> is only applicable for actions related to Cost Category. The default values for <code>MatchOptions</code> are <code>EQUALS</code> and <code>CASE_SENSITIVE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Values</i> The specific value of the tag.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The key for the tag.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MatchOptions</i>  The match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for <code>MatchOptions</code> is <code>EQUALS</code> and <code>CASE_SENSITIVE</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Values</i> The specific value of the Cost Category.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The unique name of the Cost Category.<br/>
        :return: TotalSize:  The total number of query results.<br/>ReturnSize:  The number of query results that AWS returns at a time.<br/>Tags:  The tags that match your request.<br/>NextPageToken:  The token for the next set of retrievable results. AWS provides the token when the response from a previous call has more results than the maximum page size.<br/>        """
        pass

    def get_usage_forecast(self, Granularity: str, Metric: str, TimePeriod: DateInterval, Filter: Expression=None, PredictionIntervalLevel: int=None) -> GetUsageForecastResponse:
        r"""Retrieves a forecast for how much Amazon Web Services predicts that you will use over the forecast time period that you select, based on your past usage. 

        :param self:
        :param PredictionIntervalLevel:  Cost Explorer always returns the mean forecast as a single point. You can request a prediction interval around the mean by specifying a confidence level. The higher the confidence level, the more confident Cost Explorer is about the actual value falling in the prediction interval. Higher confidence levels result in wider prediction intervals.<br/>Filter:  The filters that you want to use to filter your forecast. The <code>GetUsageForecast</code> API supports filtering by the following dimensions: <ul> <li>  <code>AZ</code>  </li> <li>  <code>INSTANCE_TYPE</code>  </li> <li>  <code>LINKED_ACCOUNT</code>  </li> <li>  <code>LINKED_ACCOUNT_NAME</code>  </li> <li>  <code>OPERATION</code>  </li> <li>  <code>PURCHASE_TYPE</code>  </li> <li>  <code>REGION</code>  </li> <li>  <code>SERVICE</code>  </li> <li>  <code>USAGE_TYPE</code>  </li> <li>  <code>USAGE_TYPE_GROUP</code>  </li> <li>  <code>RECORD_TYPE</code>  </li> <li>  <code>OPERATING_SYSTEM</code>  </li> <li>  <code>TENANCY</code>  </li> <li>  <code>SCOPE</code>  </li> <li>  <code>PLATFORM</code>  </li> <li>  <code>SUBSCRIPTION_ID</code>  </li> <li>  <code>LEGAL_ENTITY_NAME</code>  </li> <li>  <code>DEPLOYMENT_OPTION</code>  </li> <li>  <code>DATABASE_ENGINE</code>  </li> <li>  <code>INSTANCE_TYPE_FAMILY</code>  </li> <li>  <code>BILLING_ENTITY</code>  </li> <li>  <code>RESERVATION_ID</code>  </li> <li>  <code>SAVINGS_PLAN_ARN</code>  </li> </ul>:<br/>Granularity:  How granular you want the forecast to be. You can get 3 months of <code>DAILY</code> forecasts or 12 months of <code>MONTHLY</code> forecasts. The <code>GetUsageForecast</code> operation supports only <code>DAILY</code> and <code>MONTHLY</code> granularities.<br/>Metric:  Which metric Cost Explorer uses to create your forecast. Valid values for a <code>GetUsageForecast</code> call are the following: <ul> <li> USAGE_QUANTITY </li> <li> NORMALIZED_USAGE_AMOUNT </li> </ul><br/>TimePeriod:  The start and end dates of the period that you want to retrieve usage forecast for. The start date is inclusive, but the end date is exclusive. For example, if <code>start</code> is <code>2017-01-01</code> and <code>end</code> is <code>2017-05-01</code>, then the cost and usage data is retrieved from <code>2017-01-01</code> up to and including <code>2017-04-30</code> but not including <code>2017-05-01</code>. The start date must be equal to or later than the current date to avoid a validation error.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>End</i> The end of the time period. The end date is exclusive. For example, if <code>end</code> is <code>2017-05-01</code>, AWS retrieves cost and usage data from the start date up to, but not including, <code>2017-05-01</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Start</i> The beginning of the time period. The start date is inclusive. For example, if <code>start</code> is <code>2017-01-01</code>, AWS retrieves cost and usage data starting at <code>2017-01-01</code> up to the end date. The start date must be equal to or no later than the current date to avoid a validation error.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CostCategories</i> The filter based on <code>CostCategory</code> values.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CostCategories</b>: The filter based on <code>CostCategory</code> values.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The specific <code>Tag</code> to use for <code>Expression</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Tags</b>: The specific <code>Tag</code> to use for <code>Expression</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Dimensions</i> The specific <code>Dimension</code> to use for <code>Expression</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Dimensions</b>: The specific <code>Dimension</code> to use for <code>Expression</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Not</i> Return results that don't match a <code>Dimension</code> object.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Not</b>: Return results that don't match a <code>Dimension</code> object.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>And</i> Return results that match both <code>Dimension</code> objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Or</i> Return results that match either <code>Dimension</code> object.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>And</i> Return results that match both <code>Dimension</code> objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Or</i> Return results that match either <code>Dimension</code> object.<br/>Return results that don't match a <code>Dimension</code> object.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Not</b>: Return results that don't match a <code>Dimension</code> object.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MatchOptions</i> The match options that you can use to filter your results. <code>MatchOptions</code> is only applicable for actions related to Cost Category. The default values for <code>MatchOptions</code> are <code>EQUALS</code> and <code>CASE_SENSITIVE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Values</i> The metadata values that you can use to filter and group your results. You can use <code>GetDimensionValues</code> to find specific values.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The names of the metadata types that you can use to filter and group your results. For example, <code>AZ</code> returns a list of Availability Zones.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MatchOptions</i> The match options that you can use to filter your results. <code>MatchOptions</code> is only applicable for actions related to Cost Category. The default values for <code>MatchOptions</code> are <code>EQUALS</code> and <code>CASE_SENSITIVE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Values</i> The specific value of the tag.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The key for the tag.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MatchOptions</i>  The match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for <code>MatchOptions</code> is <code>EQUALS</code> and <code>CASE_SENSITIVE</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Values</i> The specific value of the Cost Category.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The unique name of the Cost Category.<br/>
        :return: ForecastResultsByTime:  The forecasts for your query, in order. For <code>DAILY</code> forecasts, this is a list of days. For <code>MONTHLY</code> forecasts, this is a list of months.<br/>Total:  How much you're forecasted to use over the forecast period.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Unit</i> The unit that the metric is given in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Amount</i> The actual number that represents the metric.<br/>        """
        pass

    def list_cost_category_definitions(self, EffectiveOn: str=None, NextToken: str=None, MaxResults: int=None) -> ListCostCategoryDefinitionsResponse:
        r"""Returns the name, ARN, <code>NumberOfRules</code> and effective dates of all Cost Categories defined in the account. You have the option to use <code>EffectiveOn</code> to return a list of Cost Categories that were active on a specific date. If there is no <code>EffectiveOn</code> specified, you’ll see Cost Categories that are effective on the current date. If Cost Category is still effective, <code>EffectiveEnd</code> is omitted in the response. <code>ListCostCategoryDefinitions</code> supports pagination. The request can have a <code>MaxResults</code> range up to 100.

        :param self:
        :param MaxResults:   The number of entries a paginated response contains. <br/>NextToken:   The token to retrieve the next set of results. Amazon Web Services provides the token when the response from a previous call has more results than the maximum page size. <br/>EffectiveOn:   The date when the Cost Category was effective. <br/>
        :return: NextToken:   The token to retrieve the next set of results. Amazon Web Services provides the token when the response from a previous call has more results than the maximum page size. <br/>CostCategoryReferences:   A reference to a Cost Category containing enough information to identify the Cost Category. <br/>        """
        pass

    def provide_anomaly_feedback(self, Feedback: str, AnomalyId: str) -> ProvideAnomalyFeedbackResponse:
        r"""Modifies the feedback property of a given cost anomaly. 

        :param self:
        :param Feedback:  Describes whether the cost anomaly was a planned activity or you considered it an anomaly. <br/>AnomalyId:   A cost anomaly ID. <br/>
        :return: AnomalyId:   The ID of the modified cost anomaly. <br/>        """
        pass

    def update_anomaly_monitor(self, MonitorArn: str, MonitorName: str=None) -> UpdateAnomalyMonitorResponse:
        r"""Updates an existing cost anomaly monitor. The changes made are applied going forward, and does not change anomalies detected in the past. 

        :param self:
        :param MonitorName:   The new name for the cost anomaly monitor. <br/>MonitorArn:   Cost anomaly monitor Amazon Resource Names (ARNs). <br/>
        :return: MonitorArn:   A cost anomaly monitor ARN. <br/>        """
        pass

    def update_anomaly_subscription(self, SubscriptionArn: str, Threshold: NullableNonNegativeDouble=None, Frequency: str=None, MonitorArnList: List[Arn]=None, Subscribers: List[Subscriber]=None, SubscriptionName: str=None) -> UpdateAnomalySubscriptionResponse:
        r""" Updates an existing cost anomaly monitor subscription. 

        :param self:
        :param SubscriptionName:   The subscription's new name. <br/>Subscribers:   The update to the subscriber list. <br/>MonitorArnList:   A list of cost anomaly monitor ARNs. <br/>Frequency:   The update to the frequency value at which subscribers will receive notifications. <br/>Threshold:   The update to the threshold value for receiving notifications. <br/>SubscriptionArn:   A cost anomaly subscription Amazon Resource Name (ARN). <br/>
        :return: SubscriptionArn:   A cost anomaly subscription ARN. <br/>        """
        pass

    def update_cost_category_definition(self, Rules: List[CostCategoryRule], RuleVersion: str, CostCategoryArn: str, DefaultValue: str=None) -> UpdateCostCategoryDefinitionResponse:
        r"""Updates an existing Cost Category. Changes made to the Cost Category rules will be used to categorize the current month’s expenses and future expenses. This won’t change categorization for the previous months.

        :param self:
        :param DefaultValue:  The default value for the cost category.<br/>Rules:  The <code>Expression</code> object used to categorize costs. For more information, see <a href="https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_CostCategoryRule.html">CostCategoryRule </a>. <br/>RuleVersion:  The rule schema version in this particular Cost Category.<br/>CostCategoryArn:  The unique identifier for your Cost Category.<br/>
        :return: EffectiveStart:   The Cost Category's effective start date. <br/>CostCategoryArn:   The unique identifier for your Cost Category. <br/>        """
        pass





class Chime(BaseClient):
    r"""The Amazon Chime API (application programming interface) is designed for developers to perform key tasks, such as creating and managing Amazon Chime accounts, users, and Voice Connectors. This guide provides detailed information about the Amazon Chime API, including operations, types, inputs and outputs, and error codes. It also includes some server-side API actions to use with the Amazon Chime SDK. For more information about the Amazon Chime SDK, see <a href="https://docs.aws.amazon.com/chime/latest/dg/meetings-sdk.html"> Using the Amazon Chime SDK </a> in the <i>Amazon Chime Developer Guide</i>. You can use an AWS SDK, the AWS Command Line Interface (AWS CLI), or the REST API to make API calls. We recommend using an AWS SDK or the AWS CLI. Each API operation includes links to information about using it with a language-specific AWS SDK or the AWS CLI. <dl> <dt>Using an AWS SDK</dt> <dd>  You don't need to write code to calculate a signature for request authentication. The SDK clients authenticate your requests by using access keys that you provide. For more information about AWS SDKs, see the <a href="http://aws.amazon.com/developer/">AWS Developer Center</a>.  </dd> <dt>Using the AWS CLI</dt> <dd> Use your access keys with the AWS CLI to make API calls. For information about setting up the AWS CLI, see <a href="https://docs.aws.amazon.com/cli/latest/userguide/installing.html">Installing the AWS Command Line Interface</a> in the <i>AWS Command Line Interface User Guide</i>. For a list of available Amazon Chime commands, see the <a href="https://docs.aws.amazon.com/cli/latest/reference/chime/index.html">Amazon Chime commands</a> in the <i>AWS CLI Command Reference</i>.  </dd> <dt>Using REST APIs</dt> <dd> If you use REST to make API calls, you must authenticate your request by providing a signature. Amazon Chime supports signature version 4. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html">Signature Version 4 Signing Process</a> in the <i>Amazon Web Services General Reference</i>. When making REST API calls, use the service name <code>chime</code> and REST endpoint <code>https://service.chime.aws.amazon.com</code>. </dd> </dl> Administrative permissions are controlled using AWS Identity and Access Management (IAM). For more information, see <a href="https://docs.aws.amazon.com/chime/latest/ag/security-iam.html">Identity and Access Management for Amazon Chime</a> in the <i>Amazon Chime Administration Guide</i>."""


    class ListAccountsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_accounts` for valid parameters"""
            pass
    class ListUsersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_users` for valid parameters"""
            pass


    class AssociatePhoneNumberWithUserRequest(Mapping):
        pass
    
    class AssociatePhoneNumberWithUserResponse(Mapping):
        pass
    
    class AssociatePhoneNumbersWithVoiceConnectorRequest(Mapping):
        pass
    
    class AssociatePhoneNumbersWithVoiceConnectorResponse(Mapping):
        pass
    
    class E164PhoneNumber(object):
        pass
    
    class NullableBoolean(object):
        pass
    
    class AssociatePhoneNumbersWithVoiceConnectorGroupRequest(Mapping):
        pass
    
    class AssociatePhoneNumbersWithVoiceConnectorGroupResponse(Mapping):
        pass
    
    class AssociateSigninDelegateGroupsWithAccountRequest(Mapping):
        pass
    
    class AssociateSigninDelegateGroupsWithAccountResponse(Mapping):
        pass
    
    class SigninDelegateGroup(Mapping):
        pass
    
    class BatchCreateAttendeeRequest(Mapping):
        pass
    
    class BatchCreateAttendeeResponse(Mapping):
        pass
    
    class CreateAttendeeRequestItem(Mapping):
        pass
    
    class BatchCreateChannelMembershipRequest(Mapping):
        pass
    
    class BatchCreateChannelMembershipResponse(Mapping):
        pass
    
    class ChimeArn(object):
        pass
    
    class BatchCreateRoomMembershipRequest(Mapping):
        pass
    
    class BatchCreateRoomMembershipResponse(Mapping):
        pass
    
    class MembershipItem(Mapping):
        pass
    
    class BatchDeletePhoneNumberRequest(Mapping):
        pass
    
    class BatchDeletePhoneNumberResponse(Mapping):
        pass
    
    class String(object):
        pass
    
    class BatchSuspendUserRequest(Mapping):
        pass
    
    class BatchSuspendUserResponse(Mapping):
        pass
    
    class NonEmptyString(object):
        pass
    
    class BatchUnsuspendUserRequest(Mapping):
        pass
    
    class BatchUnsuspendUserResponse(Mapping):
        pass
    
    class BatchUpdatePhoneNumberRequest(Mapping):
        pass
    
    class BatchUpdatePhoneNumberResponse(Mapping):
        pass
    
    class UpdatePhoneNumberRequestItem(Mapping):
        pass
    
    class BatchUpdateUserRequest(Mapping):
        pass
    
    class BatchUpdateUserResponse(Mapping):
        pass
    
    class UpdateUserRequestItem(Mapping):
        pass
    
    class CreateAccountRequest(Mapping):
        pass
    
    class CreateAccountResponse(Mapping):
        pass
    
    class CreateAppInstanceRequest(Mapping):
        pass
    
    class CreateAppInstanceResponse(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class CreateAppInstanceAdminRequest(Mapping):
        pass
    
    class CreateAppInstanceAdminResponse(Mapping):
        pass
    
    class CreateAppInstanceUserRequest(Mapping):
        pass
    
    class CreateAppInstanceUserResponse(Mapping):
        pass
    
    class CreateAttendeeRequest(Mapping):
        pass
    
    class CreateAttendeeResponse(Mapping):
        pass
    
    class CreateBotRequest(Mapping):
        pass
    
    class CreateBotResponse(Mapping):
        pass
    
    class CreateChannelRequest(Mapping):
        pass
    
    class CreateChannelResponse(Mapping):
        pass
    
    class CreateChannelBanRequest(Mapping):
        pass
    
    class CreateChannelBanResponse(Mapping):
        pass
    
    class CreateChannelMembershipRequest(Mapping):
        pass
    
    class CreateChannelMembershipResponse(Mapping):
        pass
    
    class CreateChannelModeratorRequest(Mapping):
        pass
    
    class CreateChannelModeratorResponse(Mapping):
        pass
    
    class CreateMediaCapturePipelineRequest(Mapping):
        pass
    
    class CreateMediaCapturePipelineResponse(Mapping):
        pass
    
    class CreateMeetingRequest(Mapping):
        pass
    
    class CreateMeetingResponse(Mapping):
        pass
    
    class MeetingNotificationConfiguration(Mapping):
        pass
    
    class CreateMeetingDialOutRequest(Mapping):
        pass
    
    class CreateMeetingDialOutResponse(Mapping):
        pass
    
    class CreateMeetingWithAttendeesRequest(Mapping):
        pass
    
    class CreateMeetingWithAttendeesResponse(Mapping):
        pass
    
    class CreatePhoneNumberOrderRequest(Mapping):
        pass
    
    class CreatePhoneNumberOrderResponse(Mapping):
        pass
    
    class CreateProxySessionRequest(Mapping):
        pass
    
    class CreateProxySessionResponse(Mapping):
        pass
    
    class Capability(object):
        pass
    
    class GeoMatchParams(Mapping):
        pass
    
    class CreateRoomRequest(Mapping):
        pass
    
    class CreateRoomResponse(Mapping):
        pass
    
    class CreateRoomMembershipRequest(Mapping):
        pass
    
    class CreateRoomMembershipResponse(Mapping):
        pass
    
    class CreateSipMediaApplicationRequest(Mapping):
        pass
    
    class CreateSipMediaApplicationResponse(Mapping):
        pass
    
    class SipMediaApplicationEndpoint(Mapping):
        pass
    
    class CreateSipMediaApplicationCallRequest(Mapping):
        pass
    
    class CreateSipMediaApplicationCallResponse(Mapping):
        pass
    
    class CreateSipRuleRequest(Mapping):
        pass
    
    class CreateSipRuleResponse(Mapping):
        pass
    
    class SipRuleTargetApplication(Mapping):
        pass
    
    class CreateUserRequest(Mapping):
        pass
    
    class CreateUserResponse(Mapping):
        pass
    
    class CreateVoiceConnectorRequest(Mapping):
        pass
    
    class CreateVoiceConnectorResponse(Mapping):
        pass
    
    class Boolean(object):
        pass
    
    class CreateVoiceConnectorGroupRequest(Mapping):
        pass
    
    class CreateVoiceConnectorGroupResponse(Mapping):
        pass
    
    class VoiceConnectorItem(Mapping):
        pass
    
    class DeleteAccountRequest(Mapping):
        pass
    
    class DeleteAccountResponse(Mapping):
        pass
    
    class DeleteAppInstanceRequest(Mapping):
        pass
    
    class DeleteAppInstanceAdminRequest(Mapping):
        pass
    
    class DeleteAppInstanceStreamingConfigurationsRequest(Mapping):
        pass
    
    class DeleteAppInstanceUserRequest(Mapping):
        pass
    
    class DeleteAttendeeRequest(Mapping):
        pass
    
    class DeleteChannelRequest(Mapping):
        pass
    
    class DeleteChannelBanRequest(Mapping):
        pass
    
    class DeleteChannelMembershipRequest(Mapping):
        pass
    
    class DeleteChannelMessageRequest(Mapping):
        pass
    
    class DeleteChannelModeratorRequest(Mapping):
        pass
    
    class DeleteEventsConfigurationRequest(Mapping):
        pass
    
    class DeleteMediaCapturePipelineRequest(Mapping):
        pass
    
    class DeleteMeetingRequest(Mapping):
        pass
    
    class DeletePhoneNumberRequest(Mapping):
        pass
    
    class DeleteProxySessionRequest(Mapping):
        pass
    
    class DeleteRoomRequest(Mapping):
        pass
    
    class DeleteRoomMembershipRequest(Mapping):
        pass
    
    class DeleteSipMediaApplicationRequest(Mapping):
        pass
    
    class DeleteSipRuleRequest(Mapping):
        pass
    
    class DeleteVoiceConnectorRequest(Mapping):
        pass
    
    class DeleteVoiceConnectorEmergencyCallingConfigurationRequest(Mapping):
        pass
    
    class DeleteVoiceConnectorGroupRequest(Mapping):
        pass
    
    class DeleteVoiceConnectorOriginationRequest(Mapping):
        pass
    
    class DeleteVoiceConnectorProxyRequest(Mapping):
        pass
    
    class DeleteVoiceConnectorStreamingConfigurationRequest(Mapping):
        pass
    
    class DeleteVoiceConnectorTerminationRequest(Mapping):
        pass
    
    class DeleteVoiceConnectorTerminationCredentialsRequest(Mapping):
        pass
    
    class SensitiveString(object):
        pass
    
    class DescribeAppInstanceRequest(Mapping):
        pass
    
    class DescribeAppInstanceResponse(Mapping):
        pass
    
    class DescribeAppInstanceAdminRequest(Mapping):
        pass
    
    class DescribeAppInstanceAdminResponse(Mapping):
        pass
    
    class DescribeAppInstanceUserRequest(Mapping):
        pass
    
    class DescribeAppInstanceUserResponse(Mapping):
        pass
    
    class DescribeChannelRequest(Mapping):
        pass
    
    class DescribeChannelResponse(Mapping):
        pass
    
    class DescribeChannelBanRequest(Mapping):
        pass
    
    class DescribeChannelBanResponse(Mapping):
        pass
    
    class DescribeChannelMembershipRequest(Mapping):
        pass
    
    class DescribeChannelMembershipResponse(Mapping):
        pass
    
    class DescribeChannelMembershipForAppInstanceUserRequest(Mapping):
        pass
    
    class DescribeChannelMembershipForAppInstanceUserResponse(Mapping):
        pass
    
    class DescribeChannelModeratedByAppInstanceUserRequest(Mapping):
        pass
    
    class DescribeChannelModeratedByAppInstanceUserResponse(Mapping):
        pass
    
    class DescribeChannelModeratorRequest(Mapping):
        pass
    
    class DescribeChannelModeratorResponse(Mapping):
        pass
    
    class DisassociatePhoneNumberFromUserRequest(Mapping):
        pass
    
    class DisassociatePhoneNumberFromUserResponse(Mapping):
        pass
    
    class DisassociatePhoneNumbersFromVoiceConnectorRequest(Mapping):
        pass
    
    class DisassociatePhoneNumbersFromVoiceConnectorResponse(Mapping):
        pass
    
    class DisassociatePhoneNumbersFromVoiceConnectorGroupRequest(Mapping):
        pass
    
    class DisassociatePhoneNumbersFromVoiceConnectorGroupResponse(Mapping):
        pass
    
    class DisassociateSigninDelegateGroupsFromAccountRequest(Mapping):
        pass
    
    class DisassociateSigninDelegateGroupsFromAccountResponse(Mapping):
        pass
    
    class GetAccountRequest(Mapping):
        pass
    
    class GetAccountResponse(Mapping):
        pass
    
    class GetAccountSettingsRequest(Mapping):
        pass
    
    class GetAccountSettingsResponse(Mapping):
        pass
    
    class GetAppInstanceRetentionSettingsRequest(Mapping):
        pass
    
    class GetAppInstanceRetentionSettingsResponse(Mapping):
        pass
    
    class GetAppInstanceStreamingConfigurationsRequest(Mapping):
        pass
    
    class GetAppInstanceStreamingConfigurationsResponse(Mapping):
        pass
    
    class GetAttendeeRequest(Mapping):
        pass
    
    class GetAttendeeResponse(Mapping):
        pass
    
    class GetBotRequest(Mapping):
        pass
    
    class GetBotResponse(Mapping):
        pass
    
    class GetChannelMessageRequest(Mapping):
        pass
    
    class GetChannelMessageResponse(Mapping):
        pass
    
    class GetEventsConfigurationRequest(Mapping):
        pass
    
    class GetEventsConfigurationResponse(Mapping):
        pass
    
    class GetGlobalSettingsResponse(Mapping):
        pass
    
    class GetMediaCapturePipelineRequest(Mapping):
        pass
    
    class GetMediaCapturePipelineResponse(Mapping):
        pass
    
    class GetMeetingRequest(Mapping):
        pass
    
    class GetMeetingResponse(Mapping):
        pass
    
    class GetMessagingSessionEndpointRequest(Mapping):
        pass
    
    class GetMessagingSessionEndpointResponse(Mapping):
        pass
    
    class GetPhoneNumberRequest(Mapping):
        pass
    
    class GetPhoneNumberResponse(Mapping):
        pass
    
    class GetPhoneNumberOrderRequest(Mapping):
        pass
    
    class GetPhoneNumberOrderResponse(Mapping):
        pass
    
    class GetPhoneNumberSettingsResponse(Mapping):
        pass
    
    class GetProxySessionRequest(Mapping):
        pass
    
    class GetProxySessionResponse(Mapping):
        pass
    
    class GetRetentionSettingsRequest(Mapping):
        pass
    
    class GetRetentionSettingsResponse(Mapping):
        pass
    
    class GetRoomRequest(Mapping):
        pass
    
    class GetRoomResponse(Mapping):
        pass
    
    class GetSipMediaApplicationRequest(Mapping):
        pass
    
    class GetSipMediaApplicationResponse(Mapping):
        pass
    
    class GetSipMediaApplicationLoggingConfigurationRequest(Mapping):
        pass
    
    class GetSipMediaApplicationLoggingConfigurationResponse(Mapping):
        pass
    
    class GetSipRuleRequest(Mapping):
        pass
    
    class GetSipRuleResponse(Mapping):
        pass
    
    class GetUserRequest(Mapping):
        pass
    
    class GetUserResponse(Mapping):
        pass
    
    class GetUserSettingsRequest(Mapping):
        pass
    
    class GetUserSettingsResponse(Mapping):
        pass
    
    class GetVoiceConnectorRequest(Mapping):
        pass
    
    class GetVoiceConnectorResponse(Mapping):
        pass
    
    class GetVoiceConnectorEmergencyCallingConfigurationRequest(Mapping):
        pass
    
    class GetVoiceConnectorEmergencyCallingConfigurationResponse(Mapping):
        pass
    
    class GetVoiceConnectorGroupRequest(Mapping):
        pass
    
    class GetVoiceConnectorGroupResponse(Mapping):
        pass
    
    class GetVoiceConnectorLoggingConfigurationRequest(Mapping):
        pass
    
    class GetVoiceConnectorLoggingConfigurationResponse(Mapping):
        pass
    
    class GetVoiceConnectorOriginationRequest(Mapping):
        pass
    
    class GetVoiceConnectorOriginationResponse(Mapping):
        pass
    
    class GetVoiceConnectorProxyRequest(Mapping):
        pass
    
    class GetVoiceConnectorProxyResponse(Mapping):
        pass
    
    class GetVoiceConnectorStreamingConfigurationRequest(Mapping):
        pass
    
    class GetVoiceConnectorStreamingConfigurationResponse(Mapping):
        pass
    
    class GetVoiceConnectorTerminationRequest(Mapping):
        pass
    
    class GetVoiceConnectorTerminationResponse(Mapping):
        pass
    
    class GetVoiceConnectorTerminationHealthRequest(Mapping):
        pass
    
    class GetVoiceConnectorTerminationHealthResponse(Mapping):
        pass
    
    class InviteUsersRequest(Mapping):
        pass
    
    class InviteUsersResponse(Mapping):
        pass
    
    class EmailAddress(object):
        pass
    
    class ListAccountsRequest(Mapping):
        pass
    
    class ListAccountsResponse(Mapping):
        pass
    
    class ListAppInstanceAdminsRequest(Mapping):
        pass
    
    class ListAppInstanceAdminsResponse(Mapping):
        pass
    
    class ListAppInstanceUsersRequest(Mapping):
        pass
    
    class ListAppInstanceUsersResponse(Mapping):
        pass
    
    class ListAppInstancesRequest(Mapping):
        pass
    
    class ListAppInstancesResponse(Mapping):
        pass
    
    class ListAttendeeTagsRequest(Mapping):
        pass
    
    class ListAttendeeTagsResponse(Mapping):
        pass
    
    class ListAttendeesRequest(Mapping):
        pass
    
    class ListAttendeesResponse(Mapping):
        pass
    
    class ListBotsRequest(Mapping):
        pass
    
    class ListBotsResponse(Mapping):
        pass
    
    class ListChannelBansRequest(Mapping):
        pass
    
    class ListChannelBansResponse(Mapping):
        pass
    
    class ListChannelMembershipsRequest(Mapping):
        pass
    
    class ListChannelMembershipsResponse(Mapping):
        pass
    
    class ListChannelMembershipsForAppInstanceUserRequest(Mapping):
        pass
    
    class ListChannelMembershipsForAppInstanceUserResponse(Mapping):
        pass
    
    class ListChannelMessagesRequest(Mapping):
        pass
    
    class ListChannelMessagesResponse(Mapping):
        pass
    
    class Timestamp(object):
        pass
    
    class ListChannelModeratorsRequest(Mapping):
        pass
    
    class ListChannelModeratorsResponse(Mapping):
        pass
    
    class ListChannelsRequest(Mapping):
        pass
    
    class ListChannelsResponse(Mapping):
        pass
    
    class ListChannelsModeratedByAppInstanceUserRequest(Mapping):
        pass
    
    class ListChannelsModeratedByAppInstanceUserResponse(Mapping):
        pass
    
    class ListMediaCapturePipelinesRequest(Mapping):
        pass
    
    class ListMediaCapturePipelinesResponse(Mapping):
        pass
    
    class ListMeetingTagsRequest(Mapping):
        pass
    
    class ListMeetingTagsResponse(Mapping):
        pass
    
    class ListMeetingsRequest(Mapping):
        pass
    
    class ListMeetingsResponse(Mapping):
        pass
    
    class ListPhoneNumberOrdersRequest(Mapping):
        pass
    
    class ListPhoneNumberOrdersResponse(Mapping):
        pass
    
    class ListPhoneNumbersRequest(Mapping):
        pass
    
    class ListPhoneNumbersResponse(Mapping):
        pass
    
    class ListProxySessionsRequest(Mapping):
        pass
    
    class ListProxySessionsResponse(Mapping):
        pass
    
    class ListRoomMembershipsRequest(Mapping):
        pass
    
    class ListRoomMembershipsResponse(Mapping):
        pass
    
    class ListRoomsRequest(Mapping):
        pass
    
    class ListRoomsResponse(Mapping):
        pass
    
    class ListSipMediaApplicationsRequest(Mapping):
        pass
    
    class ListSipMediaApplicationsResponse(Mapping):
        pass
    
    class ListSipRulesRequest(Mapping):
        pass
    
    class ListSipRulesResponse(Mapping):
        pass
    
    class ListSupportedPhoneNumberCountriesRequest(Mapping):
        pass
    
    class ListSupportedPhoneNumberCountriesResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class ListUsersRequest(Mapping):
        pass
    
    class ListUsersResponse(Mapping):
        pass
    
    class ListVoiceConnectorGroupsRequest(Mapping):
        pass
    
    class ListVoiceConnectorGroupsResponse(Mapping):
        pass
    
    class ListVoiceConnectorTerminationCredentialsRequest(Mapping):
        pass
    
    class ListVoiceConnectorTerminationCredentialsResponse(Mapping):
        pass
    
    class ListVoiceConnectorsRequest(Mapping):
        pass
    
    class ListVoiceConnectorsResponse(Mapping):
        pass
    
    class LogoutUserRequest(Mapping):
        pass
    
    class LogoutUserResponse(Mapping):
        pass
    
    class PutAppInstanceRetentionSettingsRequest(Mapping):
        pass
    
    class PutAppInstanceRetentionSettingsResponse(Mapping):
        pass
    
    class AppInstanceRetentionSettings(Mapping):
        pass
    
    class PutAppInstanceStreamingConfigurationsRequest(Mapping):
        pass
    
    class PutAppInstanceStreamingConfigurationsResponse(Mapping):
        pass
    
    class AppInstanceStreamingConfiguration(Mapping):
        pass
    
    class PutEventsConfigurationRequest(Mapping):
        pass
    
    class PutEventsConfigurationResponse(Mapping):
        pass
    
    class PutRetentionSettingsRequest(Mapping):
        pass
    
    class PutRetentionSettingsResponse(Mapping):
        pass
    
    class RetentionSettings(Mapping):
        pass
    
    class PutSipMediaApplicationLoggingConfigurationRequest(Mapping):
        pass
    
    class PutSipMediaApplicationLoggingConfigurationResponse(Mapping):
        pass
    
    class SipMediaApplicationLoggingConfiguration(Mapping):
        pass
    
    class PutVoiceConnectorEmergencyCallingConfigurationRequest(Mapping):
        pass
    
    class PutVoiceConnectorEmergencyCallingConfigurationResponse(Mapping):
        pass
    
    class EmergencyCallingConfiguration(Mapping):
        pass
    
    class PutVoiceConnectorLoggingConfigurationRequest(Mapping):
        pass
    
    class PutVoiceConnectorLoggingConfigurationResponse(Mapping):
        pass
    
    class LoggingConfiguration(Mapping):
        pass
    
    class PutVoiceConnectorOriginationRequest(Mapping):
        pass
    
    class PutVoiceConnectorOriginationResponse(Mapping):
        pass
    
    class Origination(Mapping):
        pass
    
    class PutVoiceConnectorProxyRequest(Mapping):
        pass
    
    class PutVoiceConnectorProxyResponse(Mapping):
        pass
    
    class Country(object):
        pass
    
    class PutVoiceConnectorStreamingConfigurationRequest(Mapping):
        pass
    
    class PutVoiceConnectorStreamingConfigurationResponse(Mapping):
        pass
    
    class StreamingConfiguration(Mapping):
        pass
    
    class PutVoiceConnectorTerminationRequest(Mapping):
        pass
    
    class PutVoiceConnectorTerminationResponse(Mapping):
        pass
    
    class Termination(Mapping):
        pass
    
    class PutVoiceConnectorTerminationCredentialsRequest(Mapping):
        pass
    
    class Credential(Mapping):
        pass
    
    class RedactChannelMessageRequest(Mapping):
        pass
    
    class RedactChannelMessageResponse(Mapping):
        pass
    
    class RedactConversationMessageRequest(Mapping):
        pass
    
    class RedactConversationMessageResponse(Mapping):
        pass
    
    class RedactRoomMessageRequest(Mapping):
        pass
    
    class RedactRoomMessageResponse(Mapping):
        pass
    
    class RegenerateSecurityTokenRequest(Mapping):
        pass
    
    class RegenerateSecurityTokenResponse(Mapping):
        pass
    
    class ResetPersonalPINRequest(Mapping):
        pass
    
    class ResetPersonalPINResponse(Mapping):
        pass
    
    class RestorePhoneNumberRequest(Mapping):
        pass
    
    class RestorePhoneNumberResponse(Mapping):
        pass
    
    class SearchAvailablePhoneNumbersRequest(Mapping):
        pass
    
    class SearchAvailablePhoneNumbersResponse(Mapping):
        pass
    
    class SendChannelMessageRequest(Mapping):
        pass
    
    class SendChannelMessageResponse(Mapping):
        pass
    
    class TagAttendeeRequest(Mapping):
        pass
    
    class TagMeetingRequest(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class UntagAttendeeRequest(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UntagMeetingRequest(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UpdateAccountRequest(Mapping):
        pass
    
    class UpdateAccountResponse(Mapping):
        pass
    
    class UpdateAccountSettingsRequest(Mapping):
        pass
    
    class UpdateAccountSettingsResponse(Mapping):
        pass
    
    class AccountSettings(Mapping):
        pass
    
    class UpdateAppInstanceRequest(Mapping):
        pass
    
    class UpdateAppInstanceResponse(Mapping):
        pass
    
    class UpdateAppInstanceUserRequest(Mapping):
        pass
    
    class UpdateAppInstanceUserResponse(Mapping):
        pass
    
    class UpdateBotRequest(Mapping):
        pass
    
    class UpdateBotResponse(Mapping):
        pass
    
    class UpdateChannelRequest(Mapping):
        pass
    
    class UpdateChannelResponse(Mapping):
        pass
    
    class UpdateChannelMessageRequest(Mapping):
        pass
    
    class UpdateChannelMessageResponse(Mapping):
        pass
    
    class UpdateChannelReadMarkerRequest(Mapping):
        pass
    
    class UpdateChannelReadMarkerResponse(Mapping):
        pass
    
    class UpdateGlobalSettingsRequest(Mapping):
        pass
    
    class BusinessCallingSettings(Mapping):
        pass
    
    class VoiceConnectorSettings(Mapping):
        pass
    
    class UpdatePhoneNumberRequest(Mapping):
        pass
    
    class UpdatePhoneNumberResponse(Mapping):
        pass
    
    class UpdatePhoneNumberSettingsRequest(Mapping):
        pass
    
    class UpdateProxySessionRequest(Mapping):
        pass
    
    class UpdateProxySessionResponse(Mapping):
        pass
    
    class UpdateRoomRequest(Mapping):
        pass
    
    class UpdateRoomResponse(Mapping):
        pass
    
    class UpdateRoomMembershipRequest(Mapping):
        pass
    
    class UpdateRoomMembershipResponse(Mapping):
        pass
    
    class UpdateSipMediaApplicationRequest(Mapping):
        pass
    
    class UpdateSipMediaApplicationResponse(Mapping):
        pass
    
    class UpdateSipMediaApplicationCallRequest(Mapping):
        pass
    
    class UpdateSipMediaApplicationCallResponse(Mapping):
        pass
    
    class SMAUpdateCallArgumentsMap(object):
        pass
    
    class UpdateSipRuleRequest(Mapping):
        pass
    
    class UpdateSipRuleResponse(Mapping):
        pass
    
    class UpdateUserRequest(Mapping):
        pass
    
    class UpdateUserResponse(Mapping):
        pass
    
    class AlexaForBusinessMetadata(Mapping):
        pass
    
    class UpdateUserSettingsRequest(Mapping):
        pass
    
    class UserSettings(Mapping):
        pass
    
    class UpdateVoiceConnectorRequest(Mapping):
        pass
    
    class UpdateVoiceConnectorResponse(Mapping):
        pass
    
    class UpdateVoiceConnectorGroupRequest(Mapping):
        pass
    
    class UpdateVoiceConnectorGroupResponse(Mapping):
        pass
    
    def associate_phone_number_with_user(self, E164PhoneNumber: str, UserId: str, AccountId: str) -> AssociatePhoneNumberWithUserResponse:
        r"""Associates a phone number with the specified Amazon Chime user.

        :param self:
        :param E164PhoneNumber:  The phone number, in E.164 format.<br/>UserId:  The user ID.<br/>AccountId:  The Amazon Chime account ID.<br/>
        :return:         """
        pass

    def associate_phone_numbers_with_voice_connector(self, E164PhoneNumbers: List[E164PhoneNumber], VoiceConnectorId: str, ForceAssociate: NullableBoolean=None) -> AssociatePhoneNumbersWithVoiceConnectorResponse:
        r"""Associates phone numbers with the specified Amazon Chime Voice Connector.

        :param self:
        :param ForceAssociate:  If true, associates the provided phone numbers with the provided Amazon Chime Voice Connector and removes any previously existing associations. If false, does not associate any phone numbers that have previously existing associations.<br/>E164PhoneNumbers:  List of phone numbers, in E.164 format.<br/>VoiceConnectorId:  The Amazon Chime Voice Connector ID.<br/>
        :return: PhoneNumberErrors:  If the action fails for one or more of the phone numbers in the request, a list of the phone numbers is returned, along with error codes and error messages.<br/>        """
        pass

    def associate_phone_numbers_with_voice_connector_group(self, E164PhoneNumbers: List[E164PhoneNumber], VoiceConnectorGroupId: str, ForceAssociate: NullableBoolean=None) -> AssociatePhoneNumbersWithVoiceConnectorGroupResponse:
        r"""Associates phone numbers with the specified Amazon Chime Voice Connector group.

        :param self:
        :param ForceAssociate:  If true, associates the provided phone numbers with the provided Amazon Chime Voice Connector Group and removes any previously existing associations. If false, does not associate any phone numbers that have previously existing associations.<br/>E164PhoneNumbers:  List of phone numbers, in E.164 format.<br/>VoiceConnectorGroupId:  The Amazon Chime Voice Connector group ID.<br/>
        :return: PhoneNumberErrors:  If the action fails for one or more of the phone numbers in the request, a list of the phone numbers is returned, along with error codes and error messages.<br/>        """
        pass

    def associate_signin_delegate_groups_with_account(self, SigninDelegateGroups: List[SigninDelegateGroup], AccountId: str) -> AssociateSigninDelegateGroupsWithAccountResponse:
        r"""Associates the specified sign-in delegate groups with the specified Amazon Chime account.

        :param self:
        :param SigninDelegateGroups:  The sign-in delegate groups.<br/>AccountId:  The Amazon Chime account ID.<br/>
        :return:         """
        pass

    def batch_create_attendee(self, Attendees: List[CreateAttendeeRequestItem], MeetingId: str) -> BatchCreateAttendeeResponse:
        r""" Creates up to 100 new attendees for an active Amazon Chime SDK meeting. For more information about the Amazon Chime SDK, see <a href="https://docs.aws.amazon.com/chime/latest/dg/meetings-sdk.html">Using the Amazon Chime SDK</a> in the <i>Amazon Chime Developer Guide</i>. 

        :param self:
        :param Attendees:  The request containing the attendees to create.<br/>MeetingId:  The Amazon Chime SDK meeting ID.<br/>
        :return: Errors:  If the action fails for one or more of the attendees in the request, a list of the attendees is returned, along with error codes and error messages.<br/>Attendees:  The attendee information, including attendees IDs and join tokens.<br/>        """
        pass

    def batch_create_channel_membership(self, MemberArns: List[ChimeArn], ChannelArn: str, Type: str=None, ChimeBearer: str=None) -> BatchCreateChannelMembershipResponse:
        r"""Adds a specified number of users to a channel. 

        :param self:
        :param ChimeBearer:  The <code>AppInstanceUserArn</code> of the user that makes the API call.<br/>MemberArns:  The ARNs of the members you want to add to the channel.<br/>Type:  The membership type of a user, <code>DEFAULT</code> or <code>HIDDEN</code>. Default members are always returned as part of <code>ListChannelMemberships</code>. Hidden members are only returned if the type filter in <code>ListChannelMemberships</code> equals <code>HIDDEN</code>. Otherwise hidden members are not returned. This is only supported by moderators.<br/>ChannelArn:  The ARN of the channel to which you're adding users.<br/>
        :return: Errors:  If the action fails for one or more of the memberships in the request, a list of the memberships is returned, along with error codes and error messages.<br/>BatchChannelMemberships:  The list of channel memberships in the response.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ChannelArn</i> The ARN of the channel to which you're adding users.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Members</i> The users successfully added to the request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The membership types set for the channel users.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InvitedBy</i> The details of a user.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>InvitedBy</b>: The details of a user.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name in an Identity.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The ARN in an Identity.<br/>        """
        pass

    def batch_create_room_membership(self, MembershipItemList: List[MembershipItem], RoomId: str, AccountId: str) -> BatchCreateRoomMembershipResponse:
        r"""Adds up to 50 members to a chat room in an Amazon Chime Enterprise account. Members can be users or bots. The member role designates whether the member is a chat room administrator or a general chat room member.

        :param self:
        :param MembershipItemList:  The list of membership items.<br/>RoomId:  The room ID.<br/>AccountId:  The Amazon Chime account ID.<br/>
        :return: Errors:  If the action fails for one or more of the member IDs in the request, a list of the member IDs is returned, along with error codes and error messages.<br/>        """
        pass

    def batch_delete_phone_number(self, PhoneNumberIds: List[String]) -> BatchDeletePhoneNumberResponse:
        r""" Moves phone numbers into the <b>Deletion queue</b>. Phone numbers must be disassociated from any users or Amazon Chime Voice Connectors before they can be deleted.   Phone numbers remain in the <b>Deletion queue</b> for 7 days before they are deleted permanently. 

        :param self:
        :param PhoneNumberIds:  List of phone number IDs.<br/>
        :return: PhoneNumberErrors:  If the action fails for one or more of the phone numbers in the request, a list of the phone numbers is returned, along with error codes and error messages.<br/>        """
        pass

    def batch_suspend_user(self, UserIdList: List[NonEmptyString], AccountId: str) -> BatchSuspendUserResponse:
        r"""Suspends up to 50 users from a <code>Team</code> or <code>EnterpriseLWA</code> Amazon Chime account. For more information about different account types, see <a href="https://docs.aws.amazon.com/chime/latest/ag/manage-chime-account.html">Managing Your Amazon Chime Accounts</a> in the <i>Amazon Chime Administration Guide</i>. Users suspended from a <code>Team</code> account are disassociated from the account,but they can continue to use Amazon Chime as free users. To remove the suspension from suspended <code>Team</code> account users, invite them to the <code>Team</code> account again. You can use the <a>InviteUsers</a> action to do so. Users suspended from an <code>EnterpriseLWA</code> account are immediately signed out of Amazon Chime and can no longer sign in. To remove the suspension from suspended <code>EnterpriseLWA</code> account users, use the <a>BatchUnsuspendUser</a> action.  To sign out users without suspending them, use the <a>LogoutUser</a> action. 

        :param self:
        :param UserIdList:  The request containing the user IDs to suspend.<br/>AccountId:  The Amazon Chime account ID.<br/>
        :return: UserErrors:  If the <a>BatchSuspendUser</a> action fails for one or more of the user IDs in the request, a list of the user IDs is returned, along with error codes and error messages.<br/>        """
        pass

    def batch_unsuspend_user(self, UserIdList: List[NonEmptyString], AccountId: str) -> BatchUnsuspendUserResponse:
        r"""Removes the suspension from up to 50 previously suspended users for the specified Amazon Chime <code>EnterpriseLWA</code> account. Only users on <code>EnterpriseLWA</code> accounts can be unsuspended using this action. For more information about different account types, see <a href="https://docs.aws.amazon.com/chime/latest/ag/manage-chime-account.html"> Managing Your Amazon Chime Accounts </a> in the account types, in the <i>Amazon Chime Administration Guide</i>.   Previously suspended users who are unsuspended using this action are returned to <code>Registered</code> status. Users who are not previously suspended are ignored. 

        :param self:
        :param UserIdList:  The request containing the user IDs to unsuspend.<br/>AccountId:  The Amazon Chime account ID.<br/>
        :return: UserErrors:  If the <a>BatchUnsuspendUser</a> action fails for one or more of the user IDs in the request, a list of the user IDs is returned, along with error codes and error messages.<br/>        """
        pass

    def batch_update_phone_number(self, UpdatePhoneNumberRequestItems: List[UpdatePhoneNumberRequestItem]) -> BatchUpdatePhoneNumberResponse:
        r"""Updates phone number product types or calling names. You can update one attribute at a time for each <code>UpdatePhoneNumberRequestItem</code>. For example, you can update the product type or the calling name. For toll-free numbers, you cannot use the Amazon Chime Business Calling product type. For numbers outside the U.S., you must use the Amazon Chime SIP Media Application Dial-In product type. Updates to outbound calling names can take up to 72 hours to complete. Pending updates to outbound calling names must be complete before you can request another update.

        :param self:
        :param UpdatePhoneNumberRequestItems:  The request containing the phone number IDs and product types or calling names to update.<br/>
        :return: PhoneNumberErrors:  If the action fails for one or more of the phone numbers in the request, a list of the phone numbers is returned, along with error codes and error messages.<br/>        """
        pass

    def batch_update_user(self, UpdateUserRequestItems: List[UpdateUserRequestItem], AccountId: str) -> BatchUpdateUserResponse:
        r"""Updates user details within the <a>UpdateUserRequestItem</a> object for up to 20 users for the specified Amazon Chime account. Currently, only <code>LicenseType</code> updates are supported for this action.

        :param self:
        :param UpdateUserRequestItems:  The request containing the user IDs and details to update.<br/>AccountId:  The Amazon Chime account ID.<br/>
        :return: UserErrors:  If the <a>BatchUpdateUser</a> action fails for one or more of the user IDs in the request, a list of the user IDs is returned, along with error codes and error messages.<br/>        """
        pass

    def create_account(self, Name: str) -> CreateAccountResponse:
        r"""Creates an Amazon Chime account under the administrator's AWS account. Only <code>Team</code> account types are currently supported for this action. For more information about different account types, see <a href="https://docs.aws.amazon.com/chime/latest/ag/manage-chime-account.html">Managing Your Amazon Chime Accounts</a> in the <i>Amazon Chime Administration Guide</i>.

        :param self:
        :param Name:  The name of the Amazon Chime account.<br/>
        :return: Account:  The Amazon Chime account details.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SigninDelegateGroups</i> The sign-in delegate groups associated with the account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SupportedLicenses</i> Supported licenses for the Amazon Chime account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultLicense</i> The default license for the Amazon Chime account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTimestamp</i> The Amazon Chime account creation timestamp, in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccountType</i> The Amazon Chime account type. For more information about different account types, see <a href="https://docs.aws.amazon.com/chime/latest/ag/manage-chime-account.html">Managing Your Amazon Chime Accounts</a> in the <i>Amazon Chime Administration Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The Amazon Chime account name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccountId</i> The Amazon Chime account ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AwsAccountId</i> The AWS account ID.<br/>        """
        pass

    def create_app_instance(self, ClientRequestToken: str, Name: str, Metadata: str=None, Tags: List[Tag]=None) -> CreateAppInstanceResponse:
        r"""Creates an Amazon Chime SDK messaging <code>AppInstance</code> under an AWS account. Only SDK messaging customers use this API. <code>CreateAppInstance</code> supports idempotency behavior as described in the AWS API Standard.

        :param self:
        :param Tags:  Tags assigned to the <code>AppInstanceUser</code>.<br/>ClientRequestToken:  The <code>ClientRequestToken</code> of the <code>AppInstance</code>.<br/>Metadata:  The metadata of the <code>AppInstance</code>. Limited to a 1KB string in UTF-8.<br/>Name:  The name of the <code>AppInstance</code>.<br/>
        :return: AppInstanceArn:  The Amazon Resource Number (ARN) of the <code>AppInstance</code>.<br/>        """
        pass

    def create_app_instance_admin(self, AppInstanceArn: str, AppInstanceAdminArn: str) -> CreateAppInstanceAdminResponse:
        r"""Promotes an <code>AppInstanceUser</code> to an <code>AppInstanceAdmin</code>. The promoted user can perform the following actions.  <ul> <li>  <code>ChannelModerator</code> actions across all channels in the <code>AppInstance</code>. </li> <li>  <code>DeleteChannelMessage</code> actions. </li> </ul> Only an <code>AppInstanceUser</code> can be promoted to an <code>AppInstanceAdmin</code> role.

        :param self:
        :param AppInstanceArn:  The ARN of the <code>AppInstance</code>.<br/>AppInstanceAdminArn:  The ARN of the administrator of the current <code>AppInstance</code>.<br/>
        :return: AppInstanceArn:  The ARN of the of the admin for the <code>AppInstance</code>.<br/>AppInstanceAdmin:  The name and ARN of the admin for the <code>AppInstance</code>.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name in an Identity.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The ARN in an Identity.<br/>        """
        pass

    def create_app_instance_user(self, ClientRequestToken: str, Name: str, AppInstanceUserId: str, AppInstanceArn: str, Metadata: str=None, Tags: List[Tag]=None) -> CreateAppInstanceUserResponse:
        r"""Creates a user under an Amazon Chime <code>AppInstance</code>. The request consists of a unique <code>appInstanceUserId</code> and <code>Name</code> for that user.

        :param self:
        :param Tags:  Tags assigned to the <code>AppInstanceUser</code>.<br/>ClientRequestToken:  The token assigned to the user requesting an <code>AppInstance</code>.<br/>Metadata:  The request's metadata. Limited to a 1KB string in UTF-8.<br/>Name:  The user's name.<br/>AppInstanceUserId:  The user ID of the <code>AppInstance</code>.<br/>AppInstanceArn:  The ARN of the <code>AppInstance</code> request.<br/>
        :return: AppInstanceUserArn:  The user's ARN.<br/>        """
        pass

    def create_attendee(self, ExternalUserId: str, MeetingId: str, Tags: List[Tag]=None) -> CreateAttendeeResponse:
        r""" Creates a new attendee for an active Amazon Chime SDK meeting. For more information about the Amazon Chime SDK, see <a href="https://docs.aws.amazon.com/chime/latest/dg/meetings-sdk.html">Using the Amazon Chime SDK</a> in the <i>Amazon Chime Developer Guide</i>. 

        :param self:
        :param Tags:  The tag key-value pairs.<br/>ExternalUserId:  The Amazon Chime SDK external user ID. An idempotency token. Links the attendee to an identity managed by a builder application.<br/>MeetingId:  The Amazon Chime SDK meeting ID.<br/>
        :return: Attendee:  The attendee information, including attendee ID and join token.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JoinToken</i> The join token used by the Amazon Chime SDK attendee.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AttendeeId</i> The Amazon Chime SDK attendee ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExternalUserId</i> The Amazon Chime SDK external user ID. An idempotency token. Links the attendee to an identity managed by a builder application.<br/>        """
        pass

    def create_bot(self, DisplayName: str, AccountId: str, Domain: str=None) -> CreateBotResponse:
        r"""Creates a bot for an Amazon Chime Enterprise account.

        :param self:
        :param Domain:  The domain of the Amazon Chime Enterprise account.<br/>DisplayName:  The bot display name.<br/>AccountId:  The Amazon Chime account ID.<br/>
        :return: Bot:  The bot details.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityToken</i> The security token used to authenticate Amazon Chime with the outgoing event endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BotEmail</i> The bot email address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdatedTimestamp</i> The updated bot timestamp, in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTimestamp</i> The bot creation timestamp, in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Disabled</i> When true, the bot is stopped from running in your account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BotType</i> The bot type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DisplayName</i> The bot display name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserId</i> The unique ID for the bot user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BotId</i> The bot ID.<br/>        """
        pass

    def create_channel(self, ClientRequestToken: str, Name: str, AppInstanceArn: str, Mode: str=None, Privacy: str=None, Metadata: str=None, Tags: List[Tag]=None, ChimeBearer: str=None) -> CreateChannelResponse:
        r"""Creates a channel to which you can add users and send messages.  <b>Restriction</b>: You can't change a channel's privacy. <note> The <code>x-amz-chime-bearer</code> request header is mandatory. Use the <code>AppInstanceUserArn</code> of the user that makes the API call as the value in the header. </note>

        :param self:
        :param ChimeBearer:  The <code>AppInstanceUserArn</code> of the user that makes the API call.<br/>Tags:  The tags for the creation request.<br/>ClientRequestToken:  The client token for the request. An <code>Idempotency</code> token.<br/>Metadata:  The metadata of the creation request. Limited to 1KB and UTF-8.<br/>Privacy:  The channel's privacy level: <code>PUBLIC</code> or <code>PRIVATE</code>. Private channels aren't discoverable by users outside the channel. Public channels are discoverable by anyone in the <code>AppInstance</code>.<br/>Mode:  The channel mode: <code>UNRESTRICTED</code> or <code>RESTRICTED</code>. Administrators, moderators, and channel members can add themselves and other members to unrestricted channels. Only administrators and moderators can add members to restricted channels.<br/>Name:  The name of the channel.<br/>AppInstanceArn:  The ARN of the channel request.<br/>
        :return: ChannelArn:  The ARN of the channel.<br/>        """
        pass

    def create_channel_ban(self, MemberArn: str, ChannelArn: str, ChimeBearer: str=None) -> CreateChannelBanResponse:
        r"""Permanently bans a member from a channel. Moderators can't add banned members to a channel. To undo a ban, you first have to <code>DeleteChannelBan</code>, and then <code>CreateChannelMembership</code>. Bans are cleaned up when you delete users or channels. If you ban a user who is already part of a channel, that user is automatically kicked from the channel. <note> The <code>x-amz-chime-bearer</code> request header is mandatory. Use the <code>AppInstanceUserArn</code> of the user that makes the API call as the value in the header. </note>

        :param self:
        :param ChimeBearer:  The <code>AppInstanceUserArn</code> of the user that makes the API call.<br/>MemberArn:  The ARN of the member being banned.<br/>ChannelArn:  The ARN of the ban request.<br/>
        :return: Member:  The <code>ChannelArn</code> and <code>BannedIdentity</code> of the member in the ban response.:<br/>ChannelArn:  The ARN of the response to the ban request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name in an Identity.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The ARN in an Identity.<br/>        """
        pass

    def create_channel_membership(self, Type: str, MemberArn: str, ChannelArn: str, ChimeBearer: str=None) -> CreateChannelMembershipResponse:
        r"""Adds a user to a channel. The <code>InvitedBy</code> response field is derived from the request header. A channel member can: <ul> <li> List messages </li> <li> Send messages </li> <li> Receive messages </li> <li> Edit their own messages </li> <li> Leave the channel </li> </ul> Privacy settings impact this action as follows: <ul> <li> Public Channels: You do not need to be a member to list messages, but you must be a member to send messages. </li> <li> Private Channels: You must be a member to list or send messages. </li> </ul> <note> The <code>x-amz-chime-bearer</code> request header is mandatory. Use the <code>AppInstanceUserArn</code> of the user that makes the API call as the value in the header. </note>

        :param self:
        :param ChimeBearer:  The <code>AppInstanceUserArn</code> of the user that makes the API call.<br/>Type:  The membership type of a user, <code>DEFAULT</code> or <code>HIDDEN</code>. Default members are always returned as part of <code>ListChannelMemberships</code>. Hidden members are only returned if the type filter in <code>ListChannelMemberships</code> equals <code>HIDDEN</code>. Otherwise hidden members are not returned. This is only supported by moderators.<br/>MemberArn:  The ARN of the member you want to add to the channel.<br/>ChannelArn:  The ARN of the channel to which you're adding users.<br/>
        :return: Member:  The ARN and metadata of the member being added.:<br/>ChannelArn:  The ARN of the channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name in an Identity.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The ARN in an Identity.<br/>        """
        pass

    def create_channel_moderator(self, ChannelModeratorArn: str, ChannelArn: str, ChimeBearer: str=None) -> CreateChannelModeratorResponse:
        r"""Creates a new <code>ChannelModerator</code>. A channel moderator can: <ul> <li> Add and remove other members of the channel. </li> <li> Add and remove other moderators of the channel. </li> <li> Add and remove user bans for the channel. </li> <li> Redact messages in the channel. </li> <li> List messages in the channel. </li> </ul> <note> The <code>x-amz-chime-bearer</code> request header is mandatory. Use the <code>AppInstanceUserArn</code> of the user that makes the API call as the value in the header. </note>

        :param self:
        :param ChimeBearer:  The <code>AppInstanceUserArn</code> of the user that makes the API call.<br/>ChannelModeratorArn:  The ARN of the moderator.<br/>ChannelArn:  The ARN of the channel.<br/>
        :return: ChannelModerator:  The ARNs of the channel and the moderator.:<br/>ChannelArn:  The ARN of the channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name in an Identity.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The ARN in an Identity.<br/>        """
        pass

    def create_media_capture_pipeline(self, SinkArn: str, SinkType: str, SourceArn: str, SourceType: str, ClientRequestToken: str=None) -> CreateMediaCapturePipelineResponse:
        r"""Creates a media capture pipeline.

        :param self:
        :param ClientRequestToken:  The token assigned to the client making the pipeline request.<br/>SinkArn:  The ARN of the sink type.<br/>SinkType:  Destination type to which the media artifacts are saved. You must use an S3 bucket. <br/>SourceArn:  ARN of the source from which the media artifacts are captured.<br/>SourceType:  Source type from which the media artifacts will be captured. A Chime SDK Meeting is the only supported source.<br/>
        :return: MediaCapturePipeline:  A media capture pipeline object, the ID, source type, source ARN, sink type, and sink ARN of a media capture pipeline object.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdatedTimestamp</i> The time at which the capture pipeline was updated, in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTimestamp</i> The time at which the capture pipeline was created, in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SinkArn</i> ARN of the destination to which the media artifacts are saved.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SinkType</i> Destination type to which the media artifacts are saved. You must use an S3 Bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the media capture pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceArn</i> ARN of the source from which the media artifacts will be saved.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceType</i> Source type from which media artifacts are saved. You must use <code>ChimeMeeting</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MediaPipelineId</i> The ID of a media capture pipeline.<br/>        """
        pass

    def create_meeting(self, ClientRequestToken: str, ExternalMeetingId: str=None, MeetingHostId: str=None, MediaRegion: str=None, Tags: List[Tag]=None, NotificationsConfiguration: MeetingNotificationConfiguration=None) -> CreateMeetingResponse:
        r""" Creates a new Amazon Chime SDK meeting in the specified media Region with no initial attendees. For more information about specifying media Regions, see <a href="https://docs.aws.amazon.com/chime/latest/dg/chime-sdk-meetings-regions.html">Amazon Chime SDK Media Regions</a> in the <i>Amazon Chime Developer Guide</i> . For more information about the Amazon Chime SDK, see <a href="https://docs.aws.amazon.com/chime/latest/dg/meetings-sdk.html">Using the Amazon Chime SDK</a> in the <i>Amazon Chime Developer Guide</i> . 

        :param self:
        :param NotificationsConfiguration:  The configuration for resource targets to receive notifications when meeting and attendee events occur.:<br/>Tags:  The tag key-value pairs.<br/>MediaRegion:   The Region in which to create the meeting. Default: <code>us-east-1</code>.   Available values: <code>af-south-1</code> , <code>ap-northeast-1</code> , <code>ap-northeast-2</code> , <code>ap-south-1</code> , <code>ap-southeast-1</code> , <code>ap-southeast-2</code> , <code>ca-central-1</code> , <code>eu-central-1</code> , <code>eu-north-1</code> , <code>eu-south-1</code> , <code>eu-west-1</code> , <code>eu-west-2</code> , <code>eu-west-3</code> , <code>sa-east-1</code> , <code>us-east-1</code> , <code>us-east-2</code> , <code>us-west-1</code> , <code>us-west-2</code> . <br/>MeetingHostId:  Reserved.<br/>ExternalMeetingId:  The external meeting ID.<br/>ClientRequestToken:  The unique identifier for the client request. Use a different token for different meetings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SqsQueueArn</i> The SQS queue ARN.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnsTopicArn</i> The SNS topic ARN.<br/>
        :return: Meeting:   The meeting information, including the meeting ID and <code>MediaPlacement</code> . :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MediaRegion</i> The Region in which you create the meeting. Available values: <code>af-south-1</code>, <code>ap-northeast-1</code>, <code>ap-northeast-2</code>, <code>ap-south-1</code>, <code>ap-southeast-1</code>, <code>ap-southeast-2</code>, <code>ca-central-1</code>, <code>eu-central-1</code>, <code>eu-north-1</code>, <code>eu-south-1</code>, <code>eu-west-1</code>, <code>eu-west-2</code>, <code>eu-west-3</code>, <code>sa-east-1</code>, <code>us-east-1</code>, <code>us-east-2</code>, <code>us-west-1</code>, <code>us-west-2</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MediaPlacement</i> The media placement for the meeting.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>MediaPlacement</b>: The media placement for the meeting.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExternalMeetingId</i> The external meeting ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MeetingId</i> The Amazon Chime SDK meeting ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EventIngestionUrl</i> The event ingestion URL.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TurnControlUrl</i> The turn control URL.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SignalingUrl</i> The signaling URL.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ScreenViewingUrl</i> The screen viewing URL.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ScreenSharingUrl</i> The screen sharing URL.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ScreenDataUrl</i> The screen data URL.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AudioFallbackUrl</i> The audio fallback URL.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AudioHostUrl</i> The audio host URL.<br/>        """
        pass

    def create_meeting_dial_out(self, JoinToken: str, ToPhoneNumber: str, FromPhoneNumber: str, MeetingId: str) -> CreateMeetingDialOutResponse:
        r"""Uses the join token and call metadata in a meeting request (From number, To number, and so forth) to initiate an outbound call to a public switched telephone network (PSTN) and join them into a Chime meeting. Also ensures that the From number belongs to the customer. To play welcome audio or implement an interactive voice response (IVR), use the <code>CreateSipMediaApplicationCall</code> action with the corresponding SIP media application ID.

        :param self:
        :param JoinToken:  Token used by the Amazon Chime SDK attendee. Call the <a href="https://docs.aws.amazon.com/chime/latest/APIReference/API_CreateAttendee.html">CreateAttendee</a> action to get a join token.<br/>ToPhoneNumber:  Phone number called when inviting someone to a meeting.<br/>FromPhoneNumber:  Phone number used as the caller ID when the remote party receives a call.<br/>MeetingId:  The Amazon Chime SDK meeting ID.<br/>
        :return: TransactionId:  Unique ID that tracks API calls.<br/>        """
        pass

    def create_meeting_with_attendees(self, ClientRequestToken: str, ExternalMeetingId: str=None, MeetingHostId: str=None, MediaRegion: str=None, Tags: List[Tag]=None, NotificationsConfiguration: MeetingNotificationConfiguration=None, Attendees: List[CreateAttendeeRequestItem]=None) -> CreateMeetingWithAttendeesResponse:
        r""" Creates a new Amazon Chime SDK meeting in the specified media Region, with attendees. For more information about specifying media Regions, see <a href="https://docs.aws.amazon.com/chime/latest/dg/chime-sdk-meetings-regions.html">Amazon Chime SDK Media Regions</a> in the <i>Amazon Chime Developer Guide</i> . For more information about the Amazon Chime SDK, see <a href="https://docs.aws.amazon.com/chime/latest/dg/meetings-sdk.html">Using the Amazon Chime SDK</a> in the <i>Amazon Chime Developer Guide</i> . 

        :param self:
        :param Attendees:  The request containing the attendees to create.<br/>NotificationsConfiguration:   The resource target configurations for receiving Amazon Chime SDK meeting and attendee event notifications. The Amazon Chime SDK supports resource targets located in the US East (N. Virginia) AWS Region (<code>us-east-1</code>). :<br/>Tags:  The tag key-value pairs.<br/>MediaRegion:   The Region in which to create the meeting. Default: <code>us-east-1</code> .   Available values: <code>af-south-1</code> , <code>ap-northeast-1</code> , <code>ap-northeast-2</code> , <code>ap-south-1</code> , <code>ap-southeast-1</code> , <code>ap-southeast-2</code> , <code>ca-central-1</code> , <code>eu-central-1</code> , <code>eu-north-1</code> , <code>eu-south-1</code> , <code>eu-west-1</code> , <code>eu-west-2</code> , <code>eu-west-3</code> , <code>sa-east-1</code> , <code>us-east-1</code> , <code>us-east-2</code> , <code>us-west-1</code> , <code>us-west-2</code> . <br/>MeetingHostId:  Reserved.<br/>ExternalMeetingId:  The external meeting ID.<br/>ClientRequestToken:  The unique identifier for the client request. Use a different token for different meetings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SqsQueueArn</i> The SQS queue ARN.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnsTopicArn</i> The SNS topic ARN.<br/>
        :return: Errors:  If the action fails for one or more of the attendees in the request, a list of the attendees is returned, along with error codes and error messages.<br/>Attendees:  The attendee information, including attendees IDs and join tokens.<br/>Meeting:  A meeting created using the Amazon Chime SDK.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MediaRegion</i> The Region in which you create the meeting. Available values: <code>af-south-1</code>, <code>ap-northeast-1</code>, <code>ap-northeast-2</code>, <code>ap-south-1</code>, <code>ap-southeast-1</code>, <code>ap-southeast-2</code>, <code>ca-central-1</code>, <code>eu-central-1</code>, <code>eu-north-1</code>, <code>eu-south-1</code>, <code>eu-west-1</code>, <code>eu-west-2</code>, <code>eu-west-3</code>, <code>sa-east-1</code>, <code>us-east-1</code>, <code>us-east-2</code>, <code>us-west-1</code>, <code>us-west-2</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MediaPlacement</i> The media placement for the meeting.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>MediaPlacement</b>: The media placement for the meeting.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExternalMeetingId</i> The external meeting ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MeetingId</i> The Amazon Chime SDK meeting ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EventIngestionUrl</i> The event ingestion URL.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TurnControlUrl</i> The turn control URL.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SignalingUrl</i> The signaling URL.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ScreenViewingUrl</i> The screen viewing URL.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ScreenSharingUrl</i> The screen sharing URL.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ScreenDataUrl</i> The screen data URL.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AudioFallbackUrl</i> The audio fallback URL.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AudioHostUrl</i> The audio host URL.<br/>        """
        pass

    def create_phone_number_order(self, E164PhoneNumbers: List[E164PhoneNumber], ProductType: str) -> CreatePhoneNumberOrderResponse:
        r"""Creates an order for phone numbers to be provisioned. For toll-free numbers, you cannot use the Amazon Chime Business Calling product type. For numbers outside the U.S., you must use the Amazon Chime SIP Media Application Dial-In product type.

        :param self:
        :param E164PhoneNumbers:  List of phone numbers, in E.164 format.<br/>ProductType:  The phone number product type.<br/>
        :return: PhoneNumberOrder:  The phone number order details.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdatedTimestamp</i> The updated phone number order time stamp, in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTimestamp</i> The phone number order creation time stamp, in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OrderedPhoneNumbers</i> The ordered phone number details, such as the phone number in E.164 format and the phone number status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the phone number order.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProductType</i> The phone number order product type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PhoneNumberOrderId</i> The phone number order ID.<br/>        """
        pass

    def create_proxy_session(self, Capabilities: List[Capability], ParticipantPhoneNumbers: List[E164PhoneNumber], VoiceConnectorId: str, Name: str=None, ExpiryMinutes: int=None, NumberSelectionBehavior: str=None, GeoMatchLevel: str=None, GeoMatchParams: GeoMatchParams=None) -> CreateProxySessionResponse:
        r"""Creates a proxy session on the specified Amazon Chime Voice Connector for the specified participant phone numbers.

        :param self:
        :param GeoMatchParams:  The country and area code for the proxy phone number.:<br/>GeoMatchLevel:  The preference for matching the country or area code of the proxy phone number with that of the first participant.<br/>NumberSelectionBehavior:  The preference for proxy phone number reuse, or stickiness, between the same participants across sessions.<br/>Capabilities:  The proxy session capabilities.<br/>ExpiryMinutes:  The number of minutes allowed for the proxy session.<br/>Name:  The name of the proxy session.<br/>ParticipantPhoneNumbers:  The participant phone numbers.<br/>VoiceConnectorId:  The Amazon Chime voice connector ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AreaCode</i> The area code.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Country</i> The country.<br/>
        :return: ProxySession:  The proxy session details.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GeoMatchParams</i> The country and area code for the proxy phone number.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>GeoMatchParams</b>: The country and area code for the proxy phone number.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GeoMatchLevel</i> The preference for matching the country or area code of the proxy phone number with that of the first participant.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberSelectionBehavior</i> The preference for proxy phone number reuse, or stickiness, between the same participants across sessions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Participants</i> The proxy session participants.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndedTimestamp</i> The ended time stamp, in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdatedTimestamp</i> The updated time stamp, in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTimestamp</i> The created time stamp, in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Capabilities</i> The proxy session capabilities.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExpiryMinutes</i> The number of minutes allowed for the proxy session.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the proxy session.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the proxy session.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProxySessionId</i> The proxy session ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VoiceConnectorId</i> The Amazon Chime voice connector ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AreaCode</i> The area code.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Country</i> The country.<br/>        """
        pass

    def create_room(self, Name: str, AccountId: str, ClientRequestToken: str=None) -> CreateRoomResponse:
        r"""Creates a chat room for the specified Amazon Chime Enterprise account.

        :param self:
        :param ClientRequestToken:  The idempotency token for the request.<br/>Name:  The room name.<br/>AccountId:  The Amazon Chime account ID.<br/>
        :return: Room:  The room details.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdatedTimestamp</i> The room update timestamp, in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTimestamp</i> The room creation timestamp, in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedBy</i> The identifier of the room creator.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccountId</i> The Amazon Chime account ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The room name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoomId</i> The room ID.<br/>        """
        pass

    def create_room_membership(self, MemberId: str, RoomId: str, AccountId: str, Role: str=None) -> CreateRoomMembershipResponse:
        r"""Adds a member to a chat room in an Amazon Chime Enterprise account. A member can be either a user or a bot. The member role designates whether the member is a chat room administrator or a general chat room member.

        :param self:
        :param Role:  The role of the member.<br/>MemberId:  The Amazon Chime member ID (user ID or bot ID).<br/>RoomId:  The room ID.<br/>AccountId:  The Amazon Chime account ID.<br/>
        :return: RoomMembership:  The room membership details.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdatedTimestamp</i> The room membership update timestamp, in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InvitedBy</i> The identifier of the user that invited the room member.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Role</i> The membership role.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Member</i> The member details, such as email address, name, member ID, and member type.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Member</b>: The member details, such as email address, name, member ID, and member type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoomId</i> The room ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AccountId</i> The Amazon Chime account ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FullName</i> The member name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Email</i> The member email address.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MemberType</i> The member type.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MemberId</i> The member ID (user ID or bot ID).<br/>        """
        pass

    def create_sip_media_application(self, Endpoints: List[SipMediaApplicationEndpoint], Name: str, AwsRegion: str) -> CreateSipMediaApplicationResponse:
        r"""Creates a SIP media application.

        :param self:
        :param Endpoints:  List of endpoints (Lambda Amazon Resource Names) specified for the SIP media application. Currently, only one endpoint is supported.<br/>Name:  The SIP media application name.<br/>AwsRegion:  The AWS Region assigned to the SIP media application.<br/>
        :return: SipMediaApplication:  The SIP media application details.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdatedTimestamp</i> The SIP media application updated timestamp, in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTimestamp</i> The SIP media application creation timestamp, in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoints</i> List of endpoints for SIP media application. Currently, only one endpoint per SIP media application is permitted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the SIP media application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AwsRegion</i> The AWS Region in which the SIP media application is created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SipMediaApplicationId</i> The SIP media application ID.<br/>        """
        pass

    def create_sip_media_application_call(self, SipMediaApplicationId: str, ToPhoneNumber: str, FromPhoneNumber: str) -> CreateSipMediaApplicationCallResponse:
        r"""Creates an outbound call to a phone number from the phone number specified in the request, and it invokes the endpoint of the specified <code>sipMediaApplicationId</code>.

        :param self:
        :param SipMediaApplicationId:  The ID of the SIP media application.<br/>ToPhoneNumber:  The phone number that the service should call.<br/>FromPhoneNumber:  The phone number that a user calls from. This is a phone number in your Amazon Chime phone number inventory.<br/>
        :return: SipMediaApplicationCall:  The actual call.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransactionId</i> The transaction ID of a call.<br/>        """
        pass

    def create_sip_rule(self, TargetApplications: List[SipRuleTargetApplication], TriggerValue: str, TriggerType: str, Name: str, Disabled: NullableBoolean=None) -> CreateSipRuleResponse:
        r"""Creates a SIP rule which can be used to run a SIP media application as a target for a specific trigger type.

        :param self:
        :param TargetApplications:  List of SIP media applications with priority and AWS Region. Only one SIP application per AWS Region can be used.<br/>Disabled:  Enables or disables a rule. You must disable rules before you can delete them.<br/>TriggerValue:  If <code>TriggerType</code> is <code>RequestUriHostname</code>, the value can be the outbound host name of an Amazon Chime Voice Connector. If <code>TriggerType</code> is <code>ToPhoneNumber</code>, the value can be a customer-owned phone number in the E164 format. The <code>SipMediaApplication</code> specified in the <code>SipRule</code> is triggered if the request URI in an incoming SIP request matches the <code>RequestUriHostname</code>, or if the <code>To</code> header in the incoming SIP request matches the <code>ToPhoneNumber</code> value.<br/>TriggerType:  The type of trigger assigned to the SIP rule in <code>TriggerValue</code>, currently <code>RequestUriHostname</code> or <code>ToPhoneNumber</code>.<br/>Name:  The name of the SIP rule.<br/>
        :return: SipRule:  Returns the SIP rule information, including the rule ID, triggers, and target applications.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdatedTimestamp</i> The time at which the SIP rule was last updated, in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTimestamp</i> The time at which the SIP rule was created, in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetApplications</i> Target SIP media application and other details, such as priority and AWS Region, to be specified in the SIP rule. Only one SIP rule per AWS Region can be provided.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TriggerValue</i> If <code>TriggerType</code> is <code>RequestUriHostname</code>, then the value can be the outbound host name of the Amazon Chime Voice Connector. If <code>TriggerType</code> is <code>ToPhoneNumber</code>, then the value can be a customer-owned phone number in E164 format. <code>SipRule</code> is triggered when a SIP rule requests host name or <code>ToPhoneNumber</code> matches in the incoming SIP request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TriggerType</i> The type of trigger assigned to the SIP rule in <code>TriggerValue</code>, currently <code>RequestUriHostname</code> or <code>ToPhoneNumber</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Disabled</i> Indicates whether the SIP rule is enabled or disabled. You must disable a rule before you can delete it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the SIP rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SipRuleId</i> The SIP rule ID.<br/>        """
        pass

    def create_user(self, AccountId: str, Username: str=None, Email: str=None, UserType: str=None) -> CreateUserResponse:
        r"""Creates a user under the specified Amazon Chime account.

        :param self:
        :param UserType:  The user type.<br/>Email:  The user's email address.<br/>Username:  The user name.<br/>AccountId:  The Amazon Chime account ID.<br/>
        :return: User:  The user on the Amazon Chime account.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PersonalPIN</i> The user's personal meeting PIN.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AlexaForBusinessMetadata</i> The Alexa for Business metadata.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AlexaForBusinessMetadata</b>: The Alexa for Business metadata.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InvitedOn</i> Date and time when the user is invited to the Amazon Chime account, in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RegisteredOn</i> Date and time when the user is registered, in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserInvitationStatus</i> The user invite status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserRegistrationStatus</i> The user registration status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserType</i> The user type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LicenseType</i> The license type for the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DisplayName</i> The display name of the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PrimaryProvisionedNumber</i> The primary phone number associated with the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PrimaryEmail</i> The primary email address of the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccountId</i> The Amazon Chime account ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserId</i> The user ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AlexaForBusinessRoomArn</i> The ARN of the room resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IsAlexaForBusinessEnabled</i> Starts or stops Alexa for Business.<br/>        """
        pass

    def create_voice_connector(self, RequireEncryption: Boolean, Name: str, AwsRegion: str=None) -> CreateVoiceConnectorResponse:
        r"""Creates an Amazon Chime Voice Connector under the administrator's AWS account. You can choose to create an Amazon Chime Voice Connector in a specific AWS Region.  Enabling <a>CreateVoiceConnectorRequest$RequireEncryption</a> configures your Amazon Chime Voice Connector to use TLS transport for SIP signaling and Secure RTP (SRTP) for media. Inbound calls use TLS transport, and unencrypted outbound calls are blocked. 

        :param self:
        :param RequireEncryption:  When enabled, requires encryption for the Amazon Chime Voice Connector.<br/>AwsRegion:   The AWS Region in which the Amazon Chime Voice Connector is created. Default value: <code>us-east-1</code> . <br/>Name:  The name of the Amazon Chime Voice Connector.<br/>
        :return: VoiceConnector:  The Amazon Chime Voice Connector details.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdatedTimestamp</i> The updated Amazon Chime Voice Connector timestamp, in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTimestamp</i> The Amazon Chime Voice Connector creation timestamp, in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequireEncryption</i> Designates whether encryption is required for the Amazon Chime Voice Connector.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OutboundHostName</i> The outbound host name for the Amazon Chime Voice Connector.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the Amazon Chime Voice Connector.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AwsRegion</i>  The AWS Region in which the Amazon Chime Voice Connector is created. Default: <code>us-east-1</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VoiceConnectorId</i> The Amazon Chime Voice Connector ID.<br/>        """
        pass

    def create_voice_connector_group(self, Name: str, VoiceConnectorItems: List[VoiceConnectorItem]=None) -> CreateVoiceConnectorGroupResponse:
        r"""Creates an Amazon Chime Voice Connector group under the administrator's AWS account. You can associate Amazon Chime Voice Connectors with the Amazon Chime Voice Connector group by including <code>VoiceConnectorItems</code> in the request. You can include Amazon Chime Voice Connectors from different AWS Regions in your group. This creates a fault tolerant mechanism for fallback in case of availability events.

        :param self:
        :param VoiceConnectorItems:  The Amazon Chime Voice Connectors to route inbound calls to.<br/>Name:  The name of the Amazon Chime Voice Connector group.<br/>
        :return: VoiceConnectorGroup:  The Amazon Chime Voice Connector group details.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdatedTimestamp</i> The updated Amazon Chime Voice Connector group time stamp, in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTimestamp</i> The Amazon Chime Voice Connector group creation time stamp, in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VoiceConnectorItems</i> The Amazon Chime Voice Connectors to which to route inbound calls.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the Amazon Chime Voice Connector group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VoiceConnectorGroupId</i> The Amazon Chime Voice Connector group ID.<br/>        """
        pass

    def delete_account(self, AccountId: str) -> DeleteAccountResponse:
        r"""Deletes the specified Amazon Chime account. You must suspend all users before deleting <code>Team</code> account. You can use the <a>BatchSuspendUser</a> action to dodo. For <code>EnterpriseLWA</code> and <code>EnterpriseAD</code> accounts, you must release the claimed domains for your Amazon Chime account before deletion. As soon as you release the domain, all users under that account are suspended. Deleted accounts appear in your <code>Disabled</code> accounts list for 90 days. To restore deleted account from your <code>Disabled</code> accounts list, you must contact AWS Support. After 90 days, deleted accounts are permanently removed from your <code>Disabled</code> accounts list.

        :param self:
        :param AccountId:  The Amazon Chime account ID.<br/>
        :return:         """
        pass

    def delete_app_instance(self, AppInstanceArn: str):
        r"""Deletes an <code>AppInstance</code> and all associated data asynchronously.

        :param self:
        :param AppInstanceArn:  The ARN of the <code>AppInstance</code>.<br/>
        :return:         """
        pass

    def delete_app_instance_admin(self, AppInstanceArn: str, AppInstanceAdminArn: str):
        r"""Demotes an <code>AppInstanceAdmin</code> to an <code>AppInstanceUser</code>. This action does not delete the user.

        :param self:
        :param AppInstanceArn:  The ARN of the <code>AppInstance</code>.<br/>AppInstanceAdminArn:  The ARN of the <code>AppInstance</code>'s administrator.<br/>
        :return:         """
        pass

    def delete_app_instance_streaming_configurations(self, AppInstanceArn: str):
        r"""Deletes the streaming configurations of an <code>AppInstance</code>.

        :param self:
        :param AppInstanceArn:  The ARN of the streaming configurations being deleted.<br/>
        :return:         """
        pass

    def delete_app_instance_user(self, AppInstanceUserArn: str):
        r"""Deletes an <code>AppInstanceUser</code>.

        :param self:
        :param AppInstanceUserArn:  The ARN of the user request being deleted.<br/>
        :return:         """
        pass

    def delete_attendee(self, AttendeeId: str, MeetingId: str):
        r"""Deletes an attendee from the specified Amazon Chime SDK meeting and deletes their <code>JoinToken</code>. Attendees are automatically deleted when a Amazon Chime SDK meeting is deleted. For more information about the Amazon Chime SDK, see <a href="https://docs.aws.amazon.com/chime/latest/dg/meetings-sdk.html">Using the Amazon Chime SDK</a> in the <i>Amazon Chime Developer Guide</i>.

        :param self:
        :param AttendeeId:  The Amazon Chime SDK attendee ID.<br/>MeetingId:  The Amazon Chime SDK meeting ID.<br/>
        :return:         """
        pass

    def delete_channel(self, ChannelArn: str, ChimeBearer: str=None):
        r"""Immediately makes a channel and its memberships inaccessible and marks them for deletion. This is an irreversible process. <note> The <code>x-amz-chime-bearer</code> request header is mandatory. Use the <code>AppInstanceUserArn</code> of the user that makes the API call as the value in the header. </note>

        :param self:
        :param ChimeBearer:  The <code>AppInstanceUserArn</code> of the user that makes the API call.<br/>ChannelArn:  The ARN of the channel being deleted.<br/>
        :return:         """
        pass

    def delete_channel_ban(self, MemberArn: str, ChannelArn: str, ChimeBearer: str=None):
        r"""Removes a user from a channel's ban list. <note> The <code>x-amz-chime-bearer</code> request header is mandatory. Use the <code>AppInstanceUserArn</code> of the user that makes the API call as the value in the header. </note>

        :param self:
        :param ChimeBearer:  The <code>AppInstanceUserArn</code> of the user that makes the API call.<br/>MemberArn:  The ARN of the <code>AppInstanceUser</code> that you want to reinstate.<br/>ChannelArn:  The ARN of the channel from which the <code>AppInstanceUser</code> was banned.<br/>
        :return:         """
        pass

    def delete_channel_membership(self, MemberArn: str, ChannelArn: str, ChimeBearer: str=None):
        r"""Removes a member from a channel. <note> The <code>x-amz-chime-bearer</code> request header is mandatory. Use the <code>AppInstanceUserArn</code> of the user that makes the API call as the value in the header. </note>

        :param self:
        :param ChimeBearer:  The <code>AppInstanceUserArn</code> of the user that makes the API call.<br/>MemberArn:  The ARN of the member that you're removing from the channel.<br/>ChannelArn:  The ARN of the channel from which you want to remove the user.<br/>
        :return:         """
        pass

    def delete_channel_message(self, MessageId: str, ChannelArn: str, ChimeBearer: str=None):
        r"""Deletes a channel message. Only admins can perform this action. Deletion makes messages inaccessible immediately. A background process deletes any revisions created by <code>UpdateChannelMessage</code>. <note> The <code>x-amz-chime-bearer</code> request header is mandatory. Use the <code>AppInstanceUserArn</code> of the user that makes the API call as the value in the header. </note>

        :param self:
        :param ChimeBearer:  The <code>AppInstanceUserArn</code> of the user that makes the API call.<br/>MessageId:  The ID of the message being deleted.<br/>ChannelArn:  The ARN of the channel.<br/>
        :return:         """
        pass

    def delete_channel_moderator(self, ChannelModeratorArn: str, ChannelArn: str, ChimeBearer: str=None):
        r"""Deletes a channel moderator. <note> The <code>x-amz-chime-bearer</code> request header is mandatory. Use the <code>AppInstanceUserArn</code> of the user that makes the API call as the value in the header. </note>

        :param self:
        :param ChimeBearer:  The <code>AppInstanceUserArn</code> of the user that makes the API call.<br/>ChannelModeratorArn:  The ARN of the moderator being deleted.<br/>ChannelArn:  The ARN of the channel.<br/>
        :return:         """
        pass

    def delete_events_configuration(self, BotId: str, AccountId: str):
        r"""Deletes the events configuration that allows a bot to receive outgoing events.

        :param self:
        :param BotId:  The bot ID.<br/>AccountId:  The Amazon Chime account ID.<br/>
        :return:         """
        pass

    def delete_media_capture_pipeline(self, MediaPipelineId: str):
        r"""Deletes the media capture pipeline.

        :param self:
        :param MediaPipelineId:  The ID of the media capture pipeline being deleted. <br/>
        :return:         """
        pass

    def delete_meeting(self, MeetingId: str):
        r"""Deletes the specified Amazon Chime SDK meeting. The operation deletes all attendees, disconnects all clients, and prevents new clients from joining the meeting. For more information about the Amazon Chime SDK, see <a href="https://docs.aws.amazon.com/chime/latest/dg/meetings-sdk.html">Using the Amazon Chime SDK</a> in the <i>Amazon Chime Developer Guide</i>.

        :param self:
        :param MeetingId:  The Amazon Chime SDK meeting ID.<br/>
        :return:         """
        pass

    def delete_phone_number(self, PhoneNumberId: str):
        r"""Moves the specified phone number into the <b>Deletion queue</b>. A phone number must be disassociated from any users or Amazon Chime Voice Connectors before it can be deleted. Deleted phone numbers remain in the <b>Deletion queue</b> for 7 days before they are deleted permanently.

        :param self:
        :param PhoneNumberId:  The phone number ID.<br/>
        :return:         """
        pass

    def delete_proxy_session(self, ProxySessionId: str, VoiceConnectorId: str):
        r"""Deletes the specified proxy session from the specified Amazon Chime Voice Connector.

        :param self:
        :param ProxySessionId:  The proxy session ID.<br/>VoiceConnectorId:  The Amazon Chime voice connector ID.<br/>
        :return:         """
        pass

    def delete_room(self, RoomId: str, AccountId: str):
        r"""Deletes a chat room in an Amazon Chime Enterprise account.

        :param self:
        :param RoomId:  The chat room ID.<br/>AccountId:  The Amazon Chime account ID.<br/>
        :return:         """
        pass

    def delete_room_membership(self, MemberId: str, RoomId: str, AccountId: str):
        r"""Removes a member from a chat room in an Amazon Chime Enterprise account.

        :param self:
        :param MemberId:  The member ID (user ID or bot ID).<br/>RoomId:  The room ID.<br/>AccountId:  The Amazon Chime account ID.<br/>
        :return:         """
        pass

    def delete_sip_media_application(self, SipMediaApplicationId: str):
        r"""Deletes a SIP media application.

        :param self:
        :param SipMediaApplicationId:  The SIP media application ID.<br/>
        :return:         """
        pass

    def delete_sip_rule(self, SipRuleId: str):
        r"""Deletes a SIP rule. You must disable a SIP rule before you can delete it.

        :param self:
        :param SipRuleId:  The SIP rule ID.<br/>
        :return:         """
        pass

    def delete_voice_connector(self, VoiceConnectorId: str):
        r"""Deletes the specified Amazon Chime Voice Connector. Any phone numbers associated with the Amazon Chime Voice Connector must be disassociated from it before it can be deleted.

        :param self:
        :param VoiceConnectorId:  The Amazon Chime Voice Connector ID.<br/>
        :return:         """
        pass

    def delete_voice_connector_emergency_calling_configuration(self, VoiceConnectorId: str):
        r"""Deletes the emergency calling configuration details from the specified Amazon Chime Voice Connector.

        :param self:
        :param VoiceConnectorId:  The Amazon Chime Voice Connector ID.<br/>
        :return:         """
        pass

    def delete_voice_connector_group(self, VoiceConnectorGroupId: str):
        r"""Deletes the specified Amazon Chime Voice Connector group. Any <code>VoiceConnectorItems</code> and phone numbers associated with the group must be removed before it can be deleted.

        :param self:
        :param VoiceConnectorGroupId:  The Amazon Chime Voice Connector group ID.<br/>
        :return:         """
        pass

    def delete_voice_connector_origination(self, VoiceConnectorId: str):
        r"""Deletes the origination settings for the specified Amazon Chime Voice Connector. <note> If emergency calling is configured for the Amazon Chime Voice Connector, it must be deleted prior to deleting the origination settings. </note>

        :param self:
        :param VoiceConnectorId:  The Amazon Chime Voice Connector ID.<br/>
        :return:         """
        pass

    def delete_voice_connector_proxy(self, VoiceConnectorId: str):
        r"""Deletes the proxy configuration from the specified Amazon Chime Voice Connector.

        :param self:
        :param VoiceConnectorId:  The Amazon Chime Voice Connector ID.<br/>
        :return:         """
        pass

    def delete_voice_connector_streaming_configuration(self, VoiceConnectorId: str):
        r"""Deletes the streaming configuration for the specified Amazon Chime Voice Connector.

        :param self:
        :param VoiceConnectorId:  The Amazon Chime Voice Connector ID.<br/>
        :return:         """
        pass

    def delete_voice_connector_termination(self, VoiceConnectorId: str):
        r"""Deletes the termination settings for the specified Amazon Chime Voice Connector. <note> If emergency calling is configured for the Amazon Chime Voice Connector, it must be deleted prior to deleting the termination settings. </note>

        :param self:
        :param VoiceConnectorId:  The Amazon Chime Voice Connector ID.<br/>
        :return:         """
        pass

    def delete_voice_connector_termination_credentials(self, Usernames: List[SensitiveString], VoiceConnectorId: str):
        r"""Deletes the specified SIP credentials used by your equipment to authenticate during call termination.

        :param self:
        :param Usernames:  The RFC2617 compliant username associated with the SIP credentials, in US-ASCII format.<br/>VoiceConnectorId:  The Amazon Chime Voice Connector ID.<br/>
        :return:         """
        pass

    def describe_app_instance(self, AppInstanceArn: str) -> DescribeAppInstanceResponse:
        r"""Returns the full details of an <code>AppInstance</code>.

        :param self:
        :param AppInstanceArn:  The ARN of the <code>AppInstance</code>.<br/>
        :return: AppInstance:  The ARN, metadata, created and last-updated timestamps, and the name of the <code>AppInstance</code>. All timestamps use epoch milliseconds.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdatedTimestamp</i> The time an <code>AppInstance</code> was last updated. In epoch milliseconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTimestamp</i> The time at which an <code>AppInstance</code> was created. In epoch milliseconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Metadata</i> The metadata of an <code>AppInstance</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of an <code>AppInstance</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AppInstanceArn</i> The ARN of the messaging instance.<br/>        """
        pass

    def describe_app_instance_admin(self, AppInstanceArn: str, AppInstanceAdminArn: str) -> DescribeAppInstanceAdminResponse:
        r"""Returns the full details of an <code>AppInstanceAdmin</code>.

        :param self:
        :param AppInstanceArn:  The ARN of the <code>AppInstance</code>.<br/>AppInstanceAdminArn:  The ARN of the <code>AppInstanceAdmin</code>.<br/>
        :return: AppInstanceAdmin:  The ARN and name of the <code>AppInstanceUser</code>, the ARN of the <code>AppInstance</code>, and the created and last-updated timestamps. All timestamps use epoch milliseconds.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTimestamp</i> The time at which an administrator was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AppInstanceArn</i> The ARN of the <code>AppInstance</code> for which the user is an administrator.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Admin</i> The <code>AppInstanceAdmin</code> data.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Admin</b>: The <code>AppInstanceAdmin</code> data.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name in an Identity.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The ARN in an Identity.<br/>        """
        pass

    def describe_app_instance_user(self, AppInstanceUserArn: str) -> DescribeAppInstanceUserResponse:
        r""" Returns the full details of an <code>AppInstanceUser</code> . 

        :param self:
        :param AppInstanceUserArn:  The ARN of the <code>AppInstanceUser</code>.<br/>
        :return: AppInstanceUser:  The name of the <code>AppInstanceUser</code>.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdatedTimestamp</i> The time at which the <code>AppInstanceUser</code> was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Metadata</i> The metadata of the <code>AppInstanceUser</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTimestamp</i> The time at which the <code>AppInstanceUser</code> was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the <code>AppInstanceUser</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AppInstanceUserArn</i> The ARN of the <code>AppInstanceUser</code>.<br/>        """
        pass

    def describe_channel(self, ChannelArn: str, ChimeBearer: str=None) -> DescribeChannelResponse:
        r"""Returns the full details of a channel in an Amazon Chime <code>AppInstance</code>. <note> The <code>x-amz-chime-bearer</code> request header is mandatory. Use the <code>AppInstanceUserArn</code> of the user that makes the API call as the value in the header. </note>

        :param self:
        :param ChimeBearer:  The <code>AppInstanceUserArn</code> of the user that makes the API call.<br/>ChannelArn:  The ARN of the channel.<br/>
        :return: Channel:  The channel details.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdatedTimestamp</i> The time at which a channel was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastMessageTimestamp</i> The time at which a member sent the last message in the channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTimestamp</i> The time at which the <code>AppInstanceUser</code> created the channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedBy</i> The <code>AppInstanceUser</code> who created the channel.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CreatedBy</b>: The <code>AppInstanceUser</code> who created the channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Metadata</i> The channel's metadata.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Privacy</i> The channel's privacy setting.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Mode</i> The mode of the channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ChannelArn</i> The ARN of the channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name in an Identity.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The ARN in an Identity.<br/>        """
        pass

    def describe_channel_ban(self, MemberArn: str, ChannelArn: str, ChimeBearer: str=None) -> DescribeChannelBanResponse:
        r"""Returns the full details of a channel ban. <note> The <code>x-amz-chime-bearer</code> request header is mandatory. Use the <code>AppInstanceUserArn</code> of the user that makes the API call as the value in the header. </note>

        :param self:
        :param ChimeBearer:  The <code>AppInstanceUserArn</code> of the user that makes the API call.<br/>MemberArn:  The ARN of the member being banned.<br/>ChannelArn:  The ARN of the channel from which the user is banned.<br/>
        :return: ChannelBan:  The details of the ban.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedBy</i> The <code>AppInstanceUser</code> who created the ban.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CreatedBy</b>: The <code>AppInstanceUser</code> who created the ban.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTimestamp</i> The time at which the ban was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ChannelArn</i> The ARN of the channel from which a member is being banned.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Member</i> The member being banned from the channel.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Member</b>: The member being banned from the channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name in an Identity.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The ARN in an Identity.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name in an Identity.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The ARN in an Identity.<br/>        """
        pass

    def describe_channel_membership(self, MemberArn: str, ChannelArn: str, ChimeBearer: str=None) -> DescribeChannelMembershipResponse:
        r"""Returns the full details of a user's channel membership. <note> The <code>x-amz-chime-bearer</code> request header is mandatory. Use the <code>AppInstanceUserArn</code> of the user that makes the API call as the value in the header. </note>

        :param self:
        :param ChimeBearer:  The <code>AppInstanceUserArn</code> of the user that makes the API call.<br/>MemberArn:  The ARN of the member.<br/>ChannelArn:  The ARN of the channel.<br/>
        :return: ChannelMembership:  The details of the membership.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdatedTimestamp</i> The time at which a channel membership was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTimestamp</i> The time at which the channel membership was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ChannelArn</i> The ARN of the member's channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Member</i> The data of the channel member.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Member</b>: The data of the channel member.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The membership type set for the channel member.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InvitedBy</i> The identifier of the member who invited another member.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>InvitedBy</b>: The identifier of the member who invited another member.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name in an Identity.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The ARN in an Identity.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name in an Identity.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The ARN in an Identity.<br/>        """
        pass

    def describe_channel_membership_for_app_instance_user(self, AppInstanceUserArn: str, ChannelArn: str, ChimeBearer: str=None) -> DescribeChannelMembershipForAppInstanceUserResponse:
        r""" Returns the details of a channel based on the membership of the specified <code>AppInstanceUser</code>. <note> The <code>x-amz-chime-bearer</code> request header is mandatory. Use the <code>AppInstanceUserArn</code> of the user that makes the API call as the value in the header. </note>

        :param self:
        :param ChimeBearer:  The <code>AppInstanceUserArn</code> of the user that makes the API call.<br/>AppInstanceUserArn:  The ARN of the user in a channel.<br/>ChannelArn:  The ARN of the channel to which the user belongs.<br/>
        :return: ChannelMembership:  The channel to which a user belongs.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AppInstanceUserMembershipSummary</i> Returns the channel membership data for an <code>AppInstance</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AppInstanceUserMembershipSummary</b>: Returns the channel membership data for an <code>AppInstance</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ChannelSummary</i> Summary of the details of a <code>Channel</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ChannelSummary</b>: Summary of the details of a <code>Channel</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LastMessageTimestamp</i> The time at which the last message in a channel was sent.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Metadata</i> The metadata of the channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Privacy</i> The privacy setting of the channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Mode</i> The mode of the channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ChannelArn</i> The ARN of the channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadMarkerTimestamp</i> The time at which a message was last read.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of <code>ChannelMembership</code>.<br/>        """
        pass

    def describe_channel_moderated_by_app_instance_user(self, AppInstanceUserArn: str, ChannelArn: str, ChimeBearer: str=None) -> DescribeChannelModeratedByAppInstanceUserResponse:
        r"""Returns the full details of a channel moderated by the specified <code>AppInstanceUser</code>. <note> The <code>x-amz-chime-bearer</code> request header is mandatory. Use the <code>AppInstanceUserArn</code> of the user that makes the API call as the value in the header. </note>

        :param self:
        :param ChimeBearer:  The <code>AppInstanceUserArn</code> of the user that makes the API call.<br/>AppInstanceUserArn:  The ARN of the <code>AppInstanceUser</code> in the moderated channel.<br/>ChannelArn:  The ARN of the moderated channel.<br/>
        :return: Channel:  The moderated channel.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ChannelSummary</i> Summary of the details of a <code>Channel</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ChannelSummary</b>: Summary of the details of a <code>Channel</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LastMessageTimestamp</i> The time at which the last message in a channel was sent.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Metadata</i> The metadata of the channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Privacy</i> The privacy setting of the channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Mode</i> The mode of the channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ChannelArn</i> The ARN of the channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the channel.<br/>        """
        pass

    def describe_channel_moderator(self, ChannelModeratorArn: str, ChannelArn: str, ChimeBearer: str=None) -> DescribeChannelModeratorResponse:
        r"""Returns the full details of a single ChannelModerator. <note> The <code>x-amz-chime-bearer</code> request header is mandatory. Use the <code>AppInstanceUserArn</code> of the user that makes the API call as the value in the header. </note>

        :param self:
        :param ChimeBearer:  The <code>AppInstanceUserArn</code> of the user that makes the API call.<br/>ChannelModeratorArn:  The ARN of the channel moderator.<br/>ChannelArn:  The ARN of the channel.<br/>
        :return: ChannelModerator:  The details of the channel moderator.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedBy</i> The <code>AppInstanceUser</code> who created the moderator.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CreatedBy</b>: The <code>AppInstanceUser</code> who created the moderator.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTimestamp</i> The time at which the moderator was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ChannelArn</i> The ARN of the moderator's channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Moderator</i> The moderator's data.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Moderator</b>: The moderator's data.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name in an Identity.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The ARN in an Identity.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name in an Identity.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The ARN in an Identity.<br/>        """
        pass

    def disassociate_phone_number_from_user(self, UserId: str, AccountId: str) -> DisassociatePhoneNumberFromUserResponse:
        r"""Disassociates the primary provisioned phone number from the specified Amazon Chime user.

        :param self:
        :param UserId:  The user ID.<br/>AccountId:  The Amazon Chime account ID.<br/>
        :return:         """
        pass

    def disassociate_phone_numbers_from_voice_connector(self, E164PhoneNumbers: List[E164PhoneNumber], VoiceConnectorId: str) -> DisassociatePhoneNumbersFromVoiceConnectorResponse:
        r"""Disassociates the specified phone numbers from the specified Amazon Chime Voice Connector.

        :param self:
        :param E164PhoneNumbers:  List of phone numbers, in E.164 format.<br/>VoiceConnectorId:  The Amazon Chime Voice Connector ID.<br/>
        :return: PhoneNumberErrors:  If the action fails for one or more of the phone numbers in the request, a list of the phone numbers is returned, along with error codes and error messages.<br/>        """
        pass

    def disassociate_phone_numbers_from_voice_connector_group(self, E164PhoneNumbers: List[E164PhoneNumber], VoiceConnectorGroupId: str) -> DisassociatePhoneNumbersFromVoiceConnectorGroupResponse:
        r"""Disassociates the specified phone numbers from the specified Amazon Chime Voice Connector group.

        :param self:
        :param E164PhoneNumbers:  List of phone numbers, in E.164 format.<br/>VoiceConnectorGroupId:  The Amazon Chime Voice Connector group ID.<br/>
        :return: PhoneNumberErrors:  If the action fails for one or more of the phone numbers in the request, a list of the phone numbers is returned, along with error codes and error messages.<br/>        """
        pass

    def disassociate_signin_delegate_groups_from_account(self, GroupNames: List[String], AccountId: str) -> DisassociateSigninDelegateGroupsFromAccountResponse:
        r"""Disassociates the specified sign-in delegate groups from the specified Amazon Chime account.

        :param self:
        :param GroupNames:  The sign-in delegate group names.<br/>AccountId:  The Amazon Chime account ID.<br/>
        :return:         """
        pass

    def get_account(self, AccountId: str) -> GetAccountResponse:
        r"""Retrieves details for the specified Amazon Chime account, such as account type and supported licenses.

        :param self:
        :param AccountId:  The Amazon Chime account ID.<br/>
        :return: Account:  The Amazon Chime account details.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SigninDelegateGroups</i> The sign-in delegate groups associated with the account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SupportedLicenses</i> Supported licenses for the Amazon Chime account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultLicense</i> The default license for the Amazon Chime account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTimestamp</i> The Amazon Chime account creation timestamp, in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccountType</i> The Amazon Chime account type. For more information about different account types, see <a href="https://docs.aws.amazon.com/chime/latest/ag/manage-chime-account.html">Managing Your Amazon Chime Accounts</a> in the <i>Amazon Chime Administration Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The Amazon Chime account name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccountId</i> The Amazon Chime account ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AwsAccountId</i> The AWS account ID.<br/>        """
        pass

    def get_account_settings(self, AccountId: str) -> GetAccountSettingsResponse:
        r"""Retrieves account settings for the specified Amazon Chime account ID, such as remote control and dialout settings. For more information about these settings, see <a href="https://docs.aws.amazon.com/chime/latest/ag/policies.html">Use the Policies Page</a> in the <i>Amazon Chime Administration Guide</i>. 

        :param self:
        :param AccountId:  The Amazon Chime account ID.<br/>
        :return: AccountSettings:  The Amazon Chime account settings.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableDialOut</i> Setting that allows meeting participants to choose the <b>Call me at a phone number</b> option. For more information, see <a href="https://docs.aws.amazon.com/chime/latest/ug/chime-join-meeting.html">Join a Meeting without the Amazon Chime App</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DisableRemoteControl</i> Setting that stops or starts remote control of shared screens during meetings.<br/>        """
        pass

    def get_app_instance_retention_settings(self, AppInstanceArn: str) -> GetAppInstanceRetentionSettingsResponse:
        r"""Gets the retention settings for an <code>AppInstance</code>.

        :param self:
        :param AppInstanceArn:  The ARN of the <code>AppInstance</code>.<br/>
        :return: InitiateDeletionTimestamp:  The timestamp representing the time at which the specified items are retained, in Epoch Seconds.<br/>AppInstanceRetentionSettings:  The retention settings for the <code>AppInstance</code>.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ChannelRetentionSettings</i> The length of time in days to retain the messages in a channel.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ChannelRetentionSettings</b>: The length of time in days to retain the messages in a channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RetentionDays</i> The time in days to retain the messages in a channel.<br/>        """
        pass

    def get_app_instance_streaming_configurations(self, AppInstanceArn: str) -> GetAppInstanceStreamingConfigurationsResponse:
        r"""Gets the streaming settings for an <code>AppInstance</code>.

        :param self:
        :param AppInstanceArn:  The ARN of the <code>AppInstance</code>.<br/>
        :return: AppInstanceStreamingConfigurations:  The streaming settings.<br/>        """
        pass

    def get_attendee(self, AttendeeId: str, MeetingId: str) -> GetAttendeeResponse:
        r""" Gets the Amazon Chime SDK attendee details for a specified meeting ID and attendee ID. For more information about the Amazon Chime SDK, see <a href="https://docs.aws.amazon.com/chime/latest/dg/meetings-sdk.html">Using the Amazon Chime SDK</a> in the <i>Amazon Chime Developer Guide</i> . 

        :param self:
        :param AttendeeId:  The Amazon Chime SDK attendee ID.<br/>MeetingId:  The Amazon Chime SDK meeting ID.<br/>
        :return: Attendee:  The Amazon Chime SDK attendee information.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JoinToken</i> The join token used by the Amazon Chime SDK attendee.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AttendeeId</i> The Amazon Chime SDK attendee ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExternalUserId</i> The Amazon Chime SDK external user ID. An idempotency token. Links the attendee to an identity managed by a builder application.<br/>        """
        pass

    def get_bot(self, BotId: str, AccountId: str) -> GetBotResponse:
        r"""Retrieves details for the specified bot, such as bot email address, bot type, status, and display name.

        :param self:
        :param BotId:  The bot ID.<br/>AccountId:  The Amazon Chime account ID.<br/>
        :return: Bot:  The chat bot details.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityToken</i> The security token used to authenticate Amazon Chime with the outgoing event endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BotEmail</i> The bot email address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdatedTimestamp</i> The updated bot timestamp, in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTimestamp</i> The bot creation timestamp, in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Disabled</i> When true, the bot is stopped from running in your account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BotType</i> The bot type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DisplayName</i> The bot display name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserId</i> The unique ID for the bot user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BotId</i> The bot ID.<br/>        """
        pass

    def get_channel_message(self, MessageId: str, ChannelArn: str, ChimeBearer: str=None) -> GetChannelMessageResponse:
        r"""Gets the full details of a channel message. <note> The x-amz-chime-bearer request header is mandatory. Use the <code>AppInstanceUserArn</code> of the user that makes the API call as the value in the header. </note>

        :param self:
        :param ChimeBearer:  The <code>AppInstanceUserArn</code> of the user that makes the API call.<br/>MessageId:  The ID of the message.<br/>ChannelArn:  The ARN of the channel.<br/>
        :return: ChannelMessage:  The details of and content in the message.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Persistence</i> The persistence setting for a channel message.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Redacted</i> Hides the content of a message.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Sender</i> The message sender.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Sender</b>: The message sender.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdatedTimestamp</i> The time at which a message was updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastEditedTimestamp</i> The time at which a message was edited.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTimestamp</i> The time at which the message was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The message type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Metadata</i> The message metadata.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Content</i> The message content.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MessageId</i> The ID of a message.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ChannelArn</i> The ARN of the channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name in an Identity.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The ARN in an Identity.<br/>        """
        pass

    def get_events_configuration(self, BotId: str, AccountId: str) -> GetEventsConfigurationResponse:
        r"""Gets details for an events configuration that allows a bot to receive outgoing events, such as an HTTPS endpoint or Lambda function ARN.

        :param self:
        :param BotId:  The bot ID.<br/>AccountId:  The Amazon Chime account ID.<br/>
        :return: EventsConfiguration:  The events configuration details.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LambdaFunctionArn</i> Lambda function ARN that allows a bot to receive outgoing events.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OutboundEventsHTTPSEndpoint</i> HTTPS endpoint that allows a bot to receive outgoing events.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BotId</i> The bot ID.<br/>        """
        pass

    def get_global_settings(self) -> GetGlobalSettingsResponse:
        r"""Retrieves global settings for the administrator's AWS account, such as Amazon Chime Business Calling and Amazon Chime Voice Connector settings.

        :param self:
        :param 
        :return: VoiceConnector:  The Amazon Chime Voice Connector settings.:<br/>BusinessCalling:  The Amazon Chime Business Calling settings.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CdrBucket</i> The Amazon S3 bucket designated for call detail record storage.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CdrBucket</i> The Amazon S3 bucket designated for call detail record storage.<br/>        """
        pass

    def get_media_capture_pipeline(self, MediaPipelineId: str) -> GetMediaCapturePipelineResponse:
        r"""Gets an existing media capture pipeline.

        :param self:
        :param MediaPipelineId:  The ID of the pipeline that you want to get.<br/>
        :return: MediaCapturePipeline:  The media capture pipeline object.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdatedTimestamp</i> The time at which the capture pipeline was updated, in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTimestamp</i> The time at which the capture pipeline was created, in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SinkArn</i> ARN of the destination to which the media artifacts are saved.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SinkType</i> Destination type to which the media artifacts are saved. You must use an S3 Bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the media capture pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceArn</i> ARN of the source from which the media artifacts will be saved.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceType</i> Source type from which media artifacts are saved. You must use <code>ChimeMeeting</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MediaPipelineId</i> The ID of a media capture pipeline.<br/>        """
        pass

    def get_meeting(self, MeetingId: str) -> GetMeetingResponse:
        r""" Gets the Amazon Chime SDK meeting details for the specified meeting ID. For more information about the Amazon Chime SDK, see <a href="https://docs.aws.amazon.com/chime/latest/dg/meetings-sdk.html">Using the Amazon Chime SDK</a> in the <i>Amazon Chime Developer Guide</i> . 

        :param self:
        :param MeetingId:  The Amazon Chime SDK meeting ID.<br/>
        :return: Meeting:  The Amazon Chime SDK meeting information.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MediaRegion</i> The Region in which you create the meeting. Available values: <code>af-south-1</code>, <code>ap-northeast-1</code>, <code>ap-northeast-2</code>, <code>ap-south-1</code>, <code>ap-southeast-1</code>, <code>ap-southeast-2</code>, <code>ca-central-1</code>, <code>eu-central-1</code>, <code>eu-north-1</code>, <code>eu-south-1</code>, <code>eu-west-1</code>, <code>eu-west-2</code>, <code>eu-west-3</code>, <code>sa-east-1</code>, <code>us-east-1</code>, <code>us-east-2</code>, <code>us-west-1</code>, <code>us-west-2</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MediaPlacement</i> The media placement for the meeting.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>MediaPlacement</b>: The media placement for the meeting.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExternalMeetingId</i> The external meeting ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MeetingId</i> The Amazon Chime SDK meeting ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EventIngestionUrl</i> The event ingestion URL.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TurnControlUrl</i> The turn control URL.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SignalingUrl</i> The signaling URL.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ScreenViewingUrl</i> The screen viewing URL.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ScreenSharingUrl</i> The screen sharing URL.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ScreenDataUrl</i> The screen data URL.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AudioFallbackUrl</i> The audio fallback URL.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AudioHostUrl</i> The audio host URL.<br/>        """
        pass

    def get_messaging_session_endpoint(self) -> GetMessagingSessionEndpointResponse:
        r"""The details of the endpoint for the messaging session.

        :param self:
        :param 
        :return: Endpoint:  The endpoint returned in the response.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Url</i> The endpoint to which you establish a websocket connection.<br/>        """
        pass

    def get_phone_number(self, PhoneNumberId: str) -> GetPhoneNumberResponse:
        r"""Retrieves details for the specified phone number ID, such as associations, capabilities, and product type.

        :param self:
        :param PhoneNumberId:  The phone number ID.<br/>
        :return: PhoneNumber:  The phone number details.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeletionTimestamp</i> The deleted phone number timestamp, in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdatedTimestamp</i> The updated phone number timestamp, in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTimestamp</i> The phone number creation timestamp, in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CallingNameStatus</i> The outbound calling name status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CallingName</i> The outbound calling name associated with the phone number.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Associations</i> The phone number associations.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Capabilities</i> The phone number capabilities.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Capabilities</b>: The phone number capabilities.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The phone number status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProductType</i> The phone number product type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The phone number type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Country</i> The phone number country. Format: ISO 3166-1 alpha-2.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>E164PhoneNumber</i> The phone number, in E.164 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PhoneNumberId</i> The phone number ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OutboundMMS</i> Allows or denies outbound MMS messaging for the specified phone number.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InboundMMS</i> Allows or denies inbound MMS messaging for the specified phone number.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OutboundSMS</i> Allows or denies outbound SMS messaging for the specified phone number.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InboundSMS</i> Allows or denies inbound SMS messaging for the specified phone number.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OutboundCall</i> Allows or denies outbound calling for the specified phone number.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InboundCall</i> Allows or denies inbound calling for the specified phone number.<br/>        """
        pass

    def get_phone_number_order(self, PhoneNumberOrderId: str) -> GetPhoneNumberOrderResponse:
        r"""Retrieves details for the specified phone number order, such as the order creation timestamp, phone numbers in E.164 format, product type, and order status.

        :param self:
        :param PhoneNumberOrderId:  The ID for the phone number order.<br/>
        :return: PhoneNumberOrder:  The phone number order details.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdatedTimestamp</i> The updated phone number order time stamp, in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTimestamp</i> The phone number order creation time stamp, in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OrderedPhoneNumbers</i> The ordered phone number details, such as the phone number in E.164 format and the phone number status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the phone number order.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProductType</i> The phone number order product type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PhoneNumberOrderId</i> The phone number order ID.<br/>        """
        pass

    def get_phone_number_settings(self) -> GetPhoneNumberSettingsResponse:
        r"""Retrieves the phone number settings for the administrator's AWS account, such as the default outbound calling name.

        :param self:
        :param 
        :return: CallingNameUpdatedTimestamp:  The updated outbound calling name timestamp, in ISO 8601 format.<br/>CallingName:  The default outbound calling name for the account.<br/>        """
        pass

    def get_proxy_session(self, ProxySessionId: str, VoiceConnectorId: str) -> GetProxySessionResponse:
        r"""Gets the specified proxy session details for the specified Amazon Chime Voice Connector.

        :param self:
        :param ProxySessionId:  The proxy session ID.<br/>VoiceConnectorId:  The Amazon Chime voice connector ID.<br/>
        :return: ProxySession:  The proxy session details.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GeoMatchParams</i> The country and area code for the proxy phone number.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>GeoMatchParams</b>: The country and area code for the proxy phone number.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GeoMatchLevel</i> The preference for matching the country or area code of the proxy phone number with that of the first participant.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberSelectionBehavior</i> The preference for proxy phone number reuse, or stickiness, between the same participants across sessions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Participants</i> The proxy session participants.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndedTimestamp</i> The ended time stamp, in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdatedTimestamp</i> The updated time stamp, in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTimestamp</i> The created time stamp, in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Capabilities</i> The proxy session capabilities.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExpiryMinutes</i> The number of minutes allowed for the proxy session.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the proxy session.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the proxy session.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProxySessionId</i> The proxy session ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VoiceConnectorId</i> The Amazon Chime voice connector ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AreaCode</i> The area code.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Country</i> The country.<br/>        """
        pass

    def get_retention_settings(self, AccountId: str) -> GetRetentionSettingsResponse:
        r""" Gets the retention settings for the specified Amazon Chime Enterprise account. For more information about retention settings, see <a href="https://docs.aws.amazon.com/chime/latest/ag/chat-retention.html">Managing Chat Retention Policies</a> in the <i>Amazon Chime Administration Guide</i>. 

        :param self:
        :param AccountId:  The Amazon Chime account ID.<br/>
        :return: InitiateDeletionTimestamp:  The timestamp representing the time at which the specified items are permanently deleted, in ISO 8601 format.<br/>RetentionSettings:  The retention settings.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConversationRetentionSettings</i> The chat conversation retention settings.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ConversationRetentionSettings</b>: The chat conversation retention settings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoomRetentionSettings</i> The chat room retention settings.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RoomRetentionSettings</b>: The chat room retention settings.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RetentionDays</i> The number of days for which to retain chat-room messages.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RetentionDays</i> The number of days for which to retain conversation messages.<br/>        """
        pass

    def get_room(self, RoomId: str, AccountId: str) -> GetRoomResponse:
        r"""Retrieves room details, such as the room name, for a room in an Amazon Chime Enterprise account.

        :param self:
        :param RoomId:  The room ID.<br/>AccountId:  The Amazon Chime account ID.<br/>
        :return: Room:  The room details.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdatedTimestamp</i> The room update timestamp, in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTimestamp</i> The room creation timestamp, in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedBy</i> The identifier of the room creator.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccountId</i> The Amazon Chime account ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The room name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoomId</i> The room ID.<br/>        """
        pass

    def get_sip_media_application(self, SipMediaApplicationId: str) -> GetSipMediaApplicationResponse:
        r"""Retrieves the information for a SIP media application, including name, AWS Region, and endpoints.

        :param self:
        :param SipMediaApplicationId:  The SIP media application ID.<br/>
        :return: SipMediaApplication:  The SIP media application details.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdatedTimestamp</i> The SIP media application updated timestamp, in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTimestamp</i> The SIP media application creation timestamp, in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoints</i> List of endpoints for SIP media application. Currently, only one endpoint per SIP media application is permitted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the SIP media application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AwsRegion</i> The AWS Region in which the SIP media application is created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SipMediaApplicationId</i> The SIP media application ID.<br/>        """
        pass

    def get_sip_media_application_logging_configuration(self, SipMediaApplicationId: str) -> GetSipMediaApplicationLoggingConfigurationResponse:
        r"""Returns the logging configuration for the specified SIP media application.

        :param self:
        :param SipMediaApplicationId:  The SIP media application ID.<br/>
        :return: SipMediaApplicationLoggingConfiguration:  The actual logging configuration.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableSipMediaApplicationMessageLogs</i> Enables application message logs for the SIP media application.<br/>        """
        pass

    def get_sip_rule(self, SipRuleId: str) -> GetSipRuleResponse:
        r"""Retrieves the details of a SIP rule, such as the rule ID, name, triggers, and target endpoints.

        :param self:
        :param SipRuleId:  The SIP rule ID.<br/>
        :return: SipRule:  The SIP rule details.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdatedTimestamp</i> The time at which the SIP rule was last updated, in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTimestamp</i> The time at which the SIP rule was created, in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetApplications</i> Target SIP media application and other details, such as priority and AWS Region, to be specified in the SIP rule. Only one SIP rule per AWS Region can be provided.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TriggerValue</i> If <code>TriggerType</code> is <code>RequestUriHostname</code>, then the value can be the outbound host name of the Amazon Chime Voice Connector. If <code>TriggerType</code> is <code>ToPhoneNumber</code>, then the value can be a customer-owned phone number in E164 format. <code>SipRule</code> is triggered when a SIP rule requests host name or <code>ToPhoneNumber</code> matches in the incoming SIP request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TriggerType</i> The type of trigger assigned to the SIP rule in <code>TriggerValue</code>, currently <code>RequestUriHostname</code> or <code>ToPhoneNumber</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Disabled</i> Indicates whether the SIP rule is enabled or disabled. You must disable a rule before you can delete it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the SIP rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SipRuleId</i> The SIP rule ID.<br/>        """
        pass

    def get_user(self, UserId: str, AccountId: str) -> GetUserResponse:
        r"""Retrieves details for the specified user ID, such as primary email address, license type,and personal meeting PIN.  To retrieve user details with an email address instead of a user ID, use the <a>ListUsers</a> action, and then filter by email address. 

        :param self:
        :param UserId:  The user ID.<br/>AccountId:  The Amazon Chime account ID.<br/>
        :return: User:  The user details.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PersonalPIN</i> The user's personal meeting PIN.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AlexaForBusinessMetadata</i> The Alexa for Business metadata.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AlexaForBusinessMetadata</b>: The Alexa for Business metadata.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InvitedOn</i> Date and time when the user is invited to the Amazon Chime account, in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RegisteredOn</i> Date and time when the user is registered, in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserInvitationStatus</i> The user invite status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserRegistrationStatus</i> The user registration status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserType</i> The user type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LicenseType</i> The license type for the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DisplayName</i> The display name of the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PrimaryProvisionedNumber</i> The primary phone number associated with the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PrimaryEmail</i> The primary email address of the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccountId</i> The Amazon Chime account ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserId</i> The user ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AlexaForBusinessRoomArn</i> The ARN of the room resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IsAlexaForBusinessEnabled</i> Starts or stops Alexa for Business.<br/>        """
        pass

    def get_user_settings(self, UserId: str, AccountId: str) -> GetUserSettingsResponse:
        r"""Retrieves settings for the specified user ID, such as any associated phone number settings.

        :param self:
        :param UserId:  The user ID.<br/>AccountId:  The Amazon Chime account ID.<br/>
        :return: UserSettings:  The user settings.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Telephony</i> The telephony settings associated with the user.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Telephony</b>: The telephony settings associated with the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SMS</i> Allows or denies SMS messaging.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OutboundCalling</i> Allows or denies outbound calling.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InboundCalling</i> Allows or denies inbound calling.<br/>        """
        pass

    def get_voice_connector(self, VoiceConnectorId: str) -> GetVoiceConnectorResponse:
        r"""Retrieves details for the specified Amazon Chime Voice Connector, such as timestamps,name, outbound host, and encryption requirements.

        :param self:
        :param VoiceConnectorId:  The Amazon Chime Voice Connector ID.<br/>
        :return: VoiceConnector:  The Amazon Chime Voice Connector details.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdatedTimestamp</i> The updated Amazon Chime Voice Connector timestamp, in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTimestamp</i> The Amazon Chime Voice Connector creation timestamp, in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequireEncryption</i> Designates whether encryption is required for the Amazon Chime Voice Connector.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OutboundHostName</i> The outbound host name for the Amazon Chime Voice Connector.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the Amazon Chime Voice Connector.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AwsRegion</i>  The AWS Region in which the Amazon Chime Voice Connector is created. Default: <code>us-east-1</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VoiceConnectorId</i> The Amazon Chime Voice Connector ID.<br/>        """
        pass

    def get_voice_connector_emergency_calling_configuration(self, VoiceConnectorId: str) -> GetVoiceConnectorEmergencyCallingConfigurationResponse:
        r"""Gets the emergency calling configuration details for the specified Amazon Chime Voice Connector.

        :param self:
        :param VoiceConnectorId:  The Amazon Chime Voice Connector ID.<br/>
        :return: EmergencyCallingConfiguration:  The emergency calling configuration details.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DNIS</i> The Dialed Number Identification Service (DNIS) emergency calling configuration details.<br/>        """
        pass

    def get_voice_connector_group(self, VoiceConnectorGroupId: str) -> GetVoiceConnectorGroupResponse:
        r""" Retrieves details for the specified Amazon Chime Voice Connector group, such as timestamps,name, and associated <code>VoiceConnectorItems</code>.

        :param self:
        :param VoiceConnectorGroupId:  The Amazon Chime Voice Connector group ID.<br/>
        :return: VoiceConnectorGroup:  The Amazon Chime Voice Connector group details.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdatedTimestamp</i> The updated Amazon Chime Voice Connector group time stamp, in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTimestamp</i> The Amazon Chime Voice Connector group creation time stamp, in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VoiceConnectorItems</i> The Amazon Chime Voice Connectors to which to route inbound calls.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the Amazon Chime Voice Connector group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VoiceConnectorGroupId</i> The Amazon Chime Voice Connector group ID.<br/>        """
        pass

    def get_voice_connector_logging_configuration(self, VoiceConnectorId: str) -> GetVoiceConnectorLoggingConfigurationResponse:
        r"""Retrieves the logging configuration details for the specified Amazon Chime Voice Connector. Shows whether SIP message logs are enabled for sending to Amazon CloudWatch Logs.

        :param self:
        :param VoiceConnectorId:  The Amazon Chime Voice Connector ID.<br/>
        :return: LoggingConfiguration:  The logging configuration details.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableSIPLogs</i> When true, enables SIP message logs for sending to Amazon CloudWatch Logs.<br/>        """
        pass

    def get_voice_connector_origination(self, VoiceConnectorId: str) -> GetVoiceConnectorOriginationResponse:
        r"""Retrieves origination setting details for the specified Amazon Chime Voice Connector.

        :param self:
        :param VoiceConnectorId:  The Amazon Chime Voice Connector ID.<br/>
        :return: Origination:  The origination setting details.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Disabled</i> When origination settings are disabled, inbound calls are not enabled for your Amazon Chime Voice Connector.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Routes</i> The call distribution properties defined for your SIP hosts. Valid range: Minimum value of 1. Maximum value of 20.<br/>        """
        pass

    def get_voice_connector_proxy(self, VoiceConnectorId: str) -> GetVoiceConnectorProxyResponse:
        r"""Gets the proxy configuration details for the specified Amazon Chime Voice Connector.

        :param self:
        :param VoiceConnectorId:  The Amazon Chime voice connector ID.<br/>
        :return: Proxy:  The proxy configuration details.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PhoneNumberCountries</i> The countries for proxy phone numbers to be selected from.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FallBackPhoneNumber</i> The phone number to route calls to after a proxy session expires.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Disabled</i> When true, stops proxy sessions from being created on the specified Amazon Chime Voice Connector.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultSessionExpiryMinutes</i> The default number of minutes allowed for proxy sessions.<br/>        """
        pass

    def get_voice_connector_streaming_configuration(self, VoiceConnectorId: str) -> GetVoiceConnectorStreamingConfigurationResponse:
        r"""Retrieves the streaming configuration details for the specified Amazon Chime Voice Connector. Shows whether media streaming is enabled for sending to Amazon Kinesis. It also shows the retention period, in hours, for the Amazon Kinesis data.

        :param self:
        :param VoiceConnectorId:  The Amazon Chime Voice Connector ID.<br/>
        :return: StreamingConfiguration:  The streaming configuration details.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamingNotificationTargets</i> The streaming notification targets.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Disabled</i> When true, media streaming to Amazon Kinesis is turned off.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataRetentionInHours</i> The retention period, in hours, for the Amazon Kinesis data.<br/>        """
        pass

    def get_voice_connector_termination(self, VoiceConnectorId: str) -> GetVoiceConnectorTerminationResponse:
        r"""Retrieves termination setting details for the specified Amazon Chime Voice Connector.

        :param self:
        :param VoiceConnectorId:  The Amazon Chime Voice Connector ID.<br/>
        :return: Termination:  The termination setting details.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Disabled</i> When termination settings are disabled, outbound calls can not be made.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CidrAllowedList</i> The IP addresses allowed to make calls, in CIDR format. Required.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CallingRegions</i> The countries to which calls are allowed, in ISO 3166-1 alpha-2 format. Required.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultPhoneNumber</i> The default caller ID phone number.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CpsLimit</i> The limit on calls per second. Max value based on account service quota. Default value of 1.<br/>        """
        pass

    def get_voice_connector_termination_health(self, VoiceConnectorId: str) -> GetVoiceConnectorTerminationHealthResponse:
        r"""Retrieves information about the last time a SIP <code>OPTIONS</code> ping was received from your SIP infrastructure for the specified Amazon Chime Voice Connector.

        :param self:
        :param VoiceConnectorId:  The Amazon Chime Voice Connector ID.<br/>
        :return: TerminationHealth:  The termination health details.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Source</i> The source IP address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Timestamp</i> The timestamp, in ISO 8601 format.<br/>        """
        pass

    def invite_users(self, UserEmailList: List[EmailAddress], AccountId: str, UserType: str=None) -> InviteUsersResponse:
        r"""Sends email to a maximum of 50 users, inviting them to the specified Amazon Chime <code>Team</code> account. Only <code>Team</code> account types are currently supported for this action.

        :param self:
        :param UserType:  The user type.<br/>UserEmailList:  The user email addresses to which to send the email invitation.<br/>AccountId:  The Amazon Chime account ID.<br/>
        :return: Invites:  The email invitation details.<br/>        """
        pass

    def list_accounts(self, Name: str=None, UserEmail: str=None, NextToken: str=None, MaxResults: int=None) -> ListAccountsResponse:
        r"""Lists the Amazon Chime accounts under the administrator's AWS account. You can filter accounts by account name prefix. To find out which Amazon Chime account a user belongs to, you can filter by the user's email address, which returns one account result.

        :param self:
        :param MaxResults:  The maximum number of results to return in a single call. Defaults to 100.<br/>NextToken:  The token to use to retrieve the next page of results.<br/>UserEmail:  User email address with which to filter results.<br/>Name:  Amazon Chime account name prefix with which to filter results.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results.<br/>Accounts:  List of Amazon Chime accounts and account details.<br/>        """
        pass

    def list_app_instance_admins(self, AppInstanceArn: str, MaxResults: int=None, NextToken: str=None) -> ListAppInstanceAdminsResponse:
        r"""Returns a list of the administrators in the <code>AppInstance</code>.

        :param self:
        :param NextToken:  The token returned from previous API requests until the number of administrators is reached.<br/>MaxResults:  The maximum number of administrators that you want to return.<br/>AppInstanceArn:  The ARN of the <code>AppInstance</code>.<br/>
        :return: NextToken:  The token returned from previous API requests until the number of administrators is reached.<br/>AppInstanceAdmins:  The information for each administrator.<br/>AppInstanceArn:  The ARN of the <code>AppInstance</code>.<br/>        """
        pass

    def list_app_instance_users(self, AppInstanceArn: str, MaxResults: int=None, NextToken: str=None) -> ListAppInstanceUsersResponse:
        r""" List all <code>AppInstanceUsers</code> created under a single <code>AppInstance</code>. 

        :param self:
        :param NextToken:  The token passed by previous API calls until all requested users are returned.<br/>MaxResults:  The maximum number of requests that you want returned.<br/>AppInstanceArn:  The ARN of the <code>AppInstance</code>.<br/>
        :return: NextToken:  The token passed by previous API calls until all requested users are returned.<br/>AppInstanceUsers:  The information for each requested <code>AppInstanceUser</code>.<br/>AppInstanceArn:  The ARN of the <code>AppInstance</code>.<br/>        """
        pass

    def list_app_instances(self, MaxResults: int=None, NextToken: str=None) -> ListAppInstancesResponse:
        r"""Lists all Amazon Chime <code>AppInstance</code>s created under a single AWS account.

        :param self:
        :param NextToken:  The token passed by previous API requests until you reach the maximum number of <code>AppInstance</code>s.<br/>MaxResults:  The maximum number of <code>AppInstance</code>s that you want to return.<br/>
        :return: NextToken:  The token passed by previous API requests until the maximum number of <code>AppInstance</code>s is reached.<br/>AppInstances:  The information for each <code>AppInstance</code>.<br/>        """
        pass

    def list_attendee_tags(self, AttendeeId: str, MeetingId: str) -> ListAttendeeTagsResponse:
        r"""Lists the tags applied to an Amazon Chime SDK attendee resource.

        :param self:
        :param AttendeeId:  The Amazon Chime SDK attendee ID.<br/>MeetingId:  The Amazon Chime SDK meeting ID.<br/>
        :return: Tags:  A list of tag key-value pairs.<br/>        """
        pass

    def list_attendees(self, MeetingId: str, NextToken: str=None, MaxResults: int=None) -> ListAttendeesResponse:
        r""" Lists the attendees for the specified Amazon Chime SDK meeting. For more information about the Amazon Chime SDK, see <a href="https://docs.aws.amazon.com/chime/latest/dg/meetings-sdk.html">Using the Amazon Chime SDK</a> in the <i>Amazon Chime Developer Guide</i>. 

        :param self:
        :param MaxResults:  The maximum number of results to return in a single call.<br/>NextToken:  The token to use to retrieve the next page of results.<br/>MeetingId:  The Amazon Chime SDK meeting ID.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results.<br/>Attendees:  The Amazon Chime SDK attendee information.<br/>        """
        pass

    def list_bots(self, AccountId: str, MaxResults: int=None, NextToken: str=None) -> ListBotsResponse:
        r"""Lists the bots associated with the administrator's Amazon Chime Enterprise account ID.

        :param self:
        :param NextToken:  The token to use to retrieve the next page of results.<br/>MaxResults:  The maximum number of results to return in a single call. The default is 10.<br/>AccountId:  The Amazon Chime account ID.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results.<br/>Bots:  List of bots and bot details.<br/>        """
        pass

    def list_channel_bans(self, ChannelArn: str, MaxResults: int=None, NextToken: str=None, ChimeBearer: str=None) -> ListChannelBansResponse:
        r"""Lists all the users banned from a particular channel. <note> The <code>x-amz-chime-bearer</code> request header is mandatory. Use the <code>AppInstanceUserArn</code> of the user that makes the API call as the value in the header. </note>

        :param self:
        :param ChimeBearer:  The <code>AppInstanceUserArn</code> of the user that makes the API call.<br/>NextToken:  The token passed by previous API calls until all requested bans are returned.<br/>MaxResults:  The maximum number of bans that you want returned.<br/>ChannelArn:  The ARN of the channel.<br/>
        :return: ChannelBans:  The information for each requested ban.<br/>NextToken:  The token passed by previous API calls until all requested bans are returned.<br/>ChannelArn:  The ARN of the channel.<br/>        """
        pass

    def list_channel_memberships(self, ChannelArn: str, Type: str=None, MaxResults: int=None, NextToken: str=None, ChimeBearer: str=None) -> ListChannelMembershipsResponse:
        r"""Lists all channel memberships in a channel. <note> The <code>x-amz-chime-bearer</code> request header is mandatory. Use the <code>AppInstanceUserArn</code> of the user that makes the API call as the value in the header. </note>

        :param self:
        :param ChimeBearer:  The <code>AppInstanceUserArn</code> of the user that makes the API call.<br/>NextToken:  The token passed by previous API calls until all requested channel memberships are returned.<br/>MaxResults:  The maximum number of channel memberships that you want returned.<br/>Type:  The membership type of a user, <code>DEFAULT</code> or <code>HIDDEN</code>. Default members are always returned as part of <code>ListChannelMemberships</code>. Hidden members are only returned if the type filter in <code>ListChannelMemberships</code> equals <code>HIDDEN</code>. Otherwise hidden members are not returned.<br/>ChannelArn:  The maximum number of channel memberships that you want returned.<br/>
        :return: NextToken:  The token passed by previous API calls until all requested channel memberships are returned.<br/>ChannelMemberships:  The information for the requested channel memberships.<br/>ChannelArn:  The ARN of the channel.<br/>        """
        pass

    def list_channel_memberships_for_app_instance_user(self, AppInstanceUserArn: str=None, MaxResults: int=None, NextToken: str=None, ChimeBearer: str=None) -> ListChannelMembershipsForAppInstanceUserResponse:
        r""" Lists all channels that a particular <code>AppInstanceUser</code> is a part of. Only an <code>AppInstanceAdmin</code> can call the API with a user ARN that is not their own.  <note> The <code>x-amz-chime-bearer</code> request header is mandatory. Use the <code>AppInstanceUserArn</code> of the user that makes the API call as the value in the header. </note>

        :param self:
        :param ChimeBearer:  The <code>AppInstanceUserArn</code> of the user that makes the API call.<br/>NextToken:  The token returned from previous API requests until the number of channel memberships is reached.<br/>MaxResults:  The maximum number of users that you want returned.<br/>AppInstanceUserArn:  The ARN of the <code>AppInstanceUser</code>s<br/>
        :return: NextToken:  The token passed by previous API calls until all requested users are returned.<br/>ChannelMemberships:  The token passed by previous API calls until all requested users are returned.<br/>        """
        pass

    def list_channel_messages(self, ChannelArn: str, SortOrder: str=None, NotBefore: Timestamp=None, NotAfter: Timestamp=None, MaxResults: int=None, NextToken: str=None, ChimeBearer: str=None) -> ListChannelMessagesResponse:
        r"""List all the messages in a channel. Returns a paginated list of <code>ChannelMessages</code>. By default, sorted by creation timestamp in descending order. <note> Redacted messages appear in the results as empty, since they are only redacted, not deleted. Deleted messages do not appear in the results. This action always returns the latest version of an edited message. Also, the x-amz-chime-bearer request header is mandatory. Use the <code>AppInstanceUserArn</code> of the user that makes the API call as the value in the header. </note>

        :param self:
        :param ChimeBearer:  The <code>AppInstanceUserArn</code> of the user that makes the API call.<br/>NextToken:  The token passed by previous API calls until all requested messages are returned.<br/>MaxResults:  The maximum number of messages that you want returned.<br/>NotAfter:  The final or ending time stamp for your requested messages.<br/>NotBefore:  The initial or starting time stamp for your requested messages.<br/>SortOrder:  The order in which you want messages sorted. Default is Descending, based on time created.<br/>ChannelArn:  The ARN of the channel.<br/>
        :return: ChannelMessages:  The information about, and content of, each requested message.<br/>NextToken:  The token passed by previous API calls until all requested messages are returned.<br/>ChannelArn:  The ARN of the channel containing the requested messages.<br/>        """
        pass

    def list_channel_moderators(self, ChannelArn: str, MaxResults: int=None, NextToken: str=None, ChimeBearer: str=None) -> ListChannelModeratorsResponse:
        r"""Lists all the moderators for a channel. <note> The <code>x-amz-chime-bearer</code> request header is mandatory. Use the <code>AppInstanceUserArn</code> of the user that makes the API call as the value in the header. </note>

        :param self:
        :param ChimeBearer:  The <code>AppInstanceUserArn</code> of the user that makes the API call.<br/>NextToken:  The token passed by previous API calls until all requested moderators are returned.<br/>MaxResults:  The maximum number of moderators that you want returned.<br/>ChannelArn:  The ARN of the channel.<br/>
        :return: ChannelModerators:  The information about and names of each moderator.<br/>NextToken:  The token passed by previous API calls until all requested moderators are returned.<br/>ChannelArn:  The ARN of the channel.<br/>        """
        pass

    def list_channels(self, AppInstanceArn: str, Privacy: str=None, MaxResults: int=None, NextToken: str=None, ChimeBearer: str=None) -> ListChannelsResponse:
        r"""Lists all Channels created under a single Chime App as a paginated list. You can specify filters to narrow results. <p class="title"> <b>Functionality &amp; restrictions</b>  <ul> <li> Use privacy = <code>PUBLIC</code> to retrieve all public channels in the account. </li> <li> Only an <code>AppInstanceAdmin</code> can set privacy = <code>PRIVATE</code> to list the private channels in an account. </li> </ul> <note> The <code>x-amz-chime-bearer</code> request header is mandatory. Use the <code>AppInstanceUserArn</code> of the user that makes the API call as the value in the header. </note>

        :param self:
        :param ChimeBearer:  The <code>AppInstanceUserArn</code> of the user that makes the API call.<br/>NextToken:  The token passed by previous API calls until all requested channels are returned.<br/>MaxResults:  The maximum number of channels that you want to return.<br/>Privacy:  The privacy setting. <code>PUBLIC</code> retrieves all the public channels. <code>PRIVATE</code> retrieves private channels. Only an <code>AppInstanceAdmin</code> can retrieve private channels. <br/>AppInstanceArn:  The ARN of the <code>AppInstance</code>.<br/>
        :return: NextToken:  The token returned from previous API requests until the number of channels is reached.<br/>Channels:  The information about each channel.<br/>        """
        pass

    def list_channels_moderated_by_app_instance_user(self, AppInstanceUserArn: str=None, MaxResults: int=None, NextToken: str=None, ChimeBearer: str=None) -> ListChannelsModeratedByAppInstanceUserResponse:
        r"""A list of the channels moderated by an <code>AppInstanceUser</code>. <note> The <code>x-amz-chime-bearer</code> request header is mandatory. Use the <code>AppInstanceUserArn</code> of the user that makes the API call as the value in the header. </note>

        :param self:
        :param ChimeBearer:  The <code>AppInstanceUserArn</code> of the user that makes the API call.<br/>NextToken:  The token returned from previous API requests until the number of channels moderated by the user is reached.<br/>MaxResults:  The maximum number of channels in the request.<br/>AppInstanceUserArn:  The ARN of the user in the moderated channel.<br/>
        :return: NextToken:  The token returned from previous API requests until the number of channels moderated by the user is reached.<br/>Channels:  The moderated channels in the request.<br/>        """
        pass

    def list_media_capture_pipelines(self, NextToken: str=None, MaxResults: int=None) -> ListMediaCapturePipelinesResponse:
        r"""Returns a list of media capture pipelines.

        :param self:
        :param MaxResults:  The maximum number of results to return in a single call. Valid Range: 1 - 99.<br/>NextToken:  The token used to retrieve the next page of results.<br/>
        :return: NextToken:  The token used to retrieve the next page of results. <br/>MediaCapturePipelines:  The media capture pipeline objects in the list.<br/>        """
        pass

    def list_meeting_tags(self, MeetingId: str) -> ListMeetingTagsResponse:
        r"""Lists the tags applied to an Amazon Chime SDK meeting resource.

        :param self:
        :param MeetingId:  The Amazon Chime SDK meeting ID.<br/>
        :return: Tags:  A list of tag key-value pairs.<br/>        """
        pass

    def list_meetings(self, NextToken: str=None, MaxResults: int=None) -> ListMeetingsResponse:
        r""" Lists up to 100 active Amazon Chime SDK meetings. For more information about the Amazon Chime SDK, see <a href="https://docs.aws.amazon.com/chime/latest/dg/meetings-sdk.html">Using the Amazon Chime SDK</a> in the <i>Amazon Chime Developer Guide</i>.

        :param self:
        :param MaxResults:  The maximum number of results to return in a single call.<br/>NextToken:  The token to use to retrieve the next page of results.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results.<br/>Meetings:  The Amazon Chime SDK meeting information.<br/>        """
        pass

    def list_phone_number_orders(self, NextToken: str=None, MaxResults: int=None) -> ListPhoneNumberOrdersResponse:
        r"""Lists the phone number orders for the administrator's Amazon Chime account.

        :param self:
        :param MaxResults:  The maximum number of results to return in a single call.<br/>NextToken:  The token to use to retrieve the next page of results.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results.<br/>PhoneNumberOrders:  The phone number order details.<br/>        """
        pass

    def list_phone_numbers(self, Status: str=None, ProductType: str=None, FilterName: str=None, FilterValue: str=None, MaxResults: int=None, NextToken: str=None) -> ListPhoneNumbersResponse:
        r"""Lists the phone numbers for the specified Amazon Chime account, Amazon Chime user, Amazon Chime Voice Connector, or Amazon Chime Voice Connector group.

        :param self:
        :param NextToken:  The token to use to retrieve the next page of results.<br/>MaxResults:  The maximum number of results to return in a single call.<br/>FilterValue:  The value to use for the filter.<br/>FilterName:  The filter to use to limit the number of results.<br/>ProductType:  The phone number product type.<br/>Status:  The phone number status.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results.<br/>PhoneNumbers:  The phone number details.<br/>        """
        pass

    def list_proxy_sessions(self, VoiceConnectorId: str, Status: str=None, NextToken: str=None, MaxResults: int=None) -> ListProxySessionsResponse:
        r"""Lists the proxy sessions for the specified Amazon Chime Voice Connector.

        :param self:
        :param MaxResults:  The maximum number of results to return in a single call.<br/>NextToken:  The token to use to retrieve the next page of results.<br/>Status:  The proxy session status.<br/>VoiceConnectorId:  The Amazon Chime voice connector ID.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results.<br/>ProxySessions:  The proxy session details.<br/>        """
        pass

    def list_room_memberships(self, RoomId: str, AccountId: str, MaxResults: int=None, NextToken: str=None) -> ListRoomMembershipsResponse:
        r"""Lists the membership details for the specified room in an Amazon Chime Enterprise account, such as the members' IDs, email addresses, and names.

        :param self:
        :param NextToken:  The token to use to retrieve the next page of results.<br/>MaxResults:  The maximum number of results to return in a single call.<br/>RoomId:  The room ID.<br/>AccountId:  The Amazon Chime account ID.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results.<br/>RoomMemberships:  The room membership details.<br/>        """
        pass

    def list_rooms(self, AccountId: str, MemberId: str=None, MaxResults: int=None, NextToken: str=None) -> ListRoomsResponse:
        r"""Lists the room details for the specified Amazon Chime Enterprise account. Optionally, filter the results by a member ID (user ID or bot ID) to see a list of rooms that the member belongs to.

        :param self:
        :param NextToken:  The token to use to retrieve the next page of results.<br/>MaxResults:  The maximum number of results to return in a single call.<br/>MemberId:  The member ID (user ID or bot ID).<br/>AccountId:  The Amazon Chime account ID.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results.<br/>Rooms:  The room details.<br/>        """
        pass

    def list_sip_media_applications(self, MaxResults: int=None, NextToken: str=None) -> ListSipMediaApplicationsResponse:
        r"""Lists the SIP media applications under the administrator's AWS account.

        :param self:
        :param NextToken:  The token to use to retrieve the next page of results.<br/>MaxResults:  The maximum number of results to return in a single call. Defaults to 100.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results.<br/>SipMediaApplications:  List of SIP media applications and application details.<br/>        """
        pass

    def list_sip_rules(self, SipMediaApplicationId: str=None, MaxResults: int=None, NextToken: str=None) -> ListSipRulesResponse:
        r"""Lists the SIP rules under the administrator's AWS account.

        :param self:
        :param NextToken:  The token to use to retrieve the next page of results.<br/>MaxResults:  The maximum number of results to return in a single call. Defaults to 100.<br/>SipMediaApplicationId:  The SIP media application ID.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results.<br/>SipRules:  List of SIP rules and rule details.<br/>        """
        pass

    def list_supported_phone_number_countries(self, ProductType: str) -> ListSupportedPhoneNumberCountriesResponse:
        r"""Lists supported phone number countries.

        :param self:
        :param ProductType:  The phone number product type.<br/>
        :return: PhoneNumberCountries:  The supported phone number countries.<br/>        """
        pass

    def list_tags_for_resource(self, ResourceARN: str) -> ListTagsForResourceResponse:
        r"""Lists the tags applied to an Amazon Chime SDK meeting resource.

        :param self:
        :param ResourceARN:  The resource ARN.<br/>
        :return: Tags:  A list of tag-key value pairs.<br/>        """
        pass

    def list_users(self, AccountId: str, UserEmail: str=None, UserType: str=None, MaxResults: int=None, NextToken: str=None) -> ListUsersResponse:
        r"""Lists the users that belong to the specified Amazon Chime account. You can specify an email address to list only the user that the email address belongs to.

        :param self:
        :param NextToken:  The token to use to retrieve the next page of results.<br/>MaxResults:  The maximum number of results to return in a single call. Defaults to 100.<br/>UserType:  The user type.<br/>UserEmail:  Optional. The user email address used to filter results. Maximum 1.<br/>AccountId:  The Amazon Chime account ID.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results.<br/>Users:  List of users and user details.<br/>        """
        pass

    def list_voice_connector_groups(self, NextToken: str=None, MaxResults: int=None) -> ListVoiceConnectorGroupsResponse:
        r"""Lists the Amazon Chime Voice Connector groups for the administrator's AWS account.

        :param self:
        :param MaxResults:  The maximum number of results to return in a single call.<br/>NextToken:  The token to use to retrieve the next page of results.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results.<br/>VoiceConnectorGroups:  The details of the Amazon Chime Voice Connector groups.<br/>        """
        pass

    def list_voice_connector_termination_credentials(self, VoiceConnectorId: str) -> ListVoiceConnectorTerminationCredentialsResponse:
        r"""Lists the SIP credentials for the specified Amazon Chime Voice Connector.

        :param self:
        :param VoiceConnectorId:  The Amazon Chime Voice Connector ID.<br/>
        :return: Usernames:  A list of user names.<br/>        """
        pass

    def list_voice_connectors(self, NextToken: str=None, MaxResults: int=None) -> ListVoiceConnectorsResponse:
        r"""Lists the Amazon Chime Voice Connectors for the administrator's AWS account.

        :param self:
        :param MaxResults:  The maximum number of results to return in a single call.<br/>NextToken:  The token to use to retrieve the next page of results.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results.<br/>VoiceConnectors:  The details of the Amazon Chime Voice Connectors.<br/>        """
        pass

    def logout_user(self, UserId: str, AccountId: str) -> LogoutUserResponse:
        r"""Logs out the specified user from all of the devices they are currently logged into.

        :param self:
        :param UserId:  The user ID.<br/>AccountId:  The Amazon Chime account ID.<br/>
        :return:         """
        pass

    def put_app_instance_retention_settings(self, AppInstanceRetentionSettings: AppInstanceRetentionSettings, AppInstanceArn: str) -> PutAppInstanceRetentionSettingsResponse:
        r"""Sets the amount of time in days that a given <code>AppInstance</code> retains data.

        :param self:
        :param AppInstanceRetentionSettings:  The time in days to retain data. Data type: number.:<br/>AppInstanceArn:  The ARN of the <code>AppInstance</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ChannelRetentionSettings</i> The length of time in days to retain the messages in a channel.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ChannelRetentionSettings</b>: The length of time in days to retain the messages in a channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RetentionDays</i> The time in days to retain the messages in a channel.<br/>
        :return: InitiateDeletionTimestamp:  The time at which the API deletes data.<br/>AppInstanceRetentionSettings:  The time in days to retain data. Data type: number.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ChannelRetentionSettings</i> The length of time in days to retain the messages in a channel.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ChannelRetentionSettings</b>: The length of time in days to retain the messages in a channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RetentionDays</i> The time in days to retain the messages in a channel.<br/>        """
        pass

    def put_app_instance_streaming_configurations(self, AppInstanceStreamingConfigurations: List[AppInstanceStreamingConfiguration], AppInstanceArn: str) -> PutAppInstanceStreamingConfigurationsResponse:
        r"""The data streaming configurations of an <code>AppInstance</code>.

        :param self:
        :param AppInstanceStreamingConfigurations:  The streaming configurations set for an <code>AppInstance</code>.<br/>AppInstanceArn:  The ARN of the <code>AppInstance</code>.<br/>
        :return: AppInstanceStreamingConfigurations:  The streaming configurations of an <code>AppInstance</code>.<br/>        """
        pass

    def put_events_configuration(self, BotId: str, AccountId: str, OutboundEventsHTTPSEndpoint: str=None, LambdaFunctionArn: str=None) -> PutEventsConfigurationResponse:
        r"""Creates an events configuration that allows a bot to receive outgoing events sent by Amazon Chime. Choose either an HTTPS endpoint or a Lambda function ARN. For more information, see <a>Bot</a>.

        :param self:
        :param LambdaFunctionArn:  Lambda function ARN that allows the bot to receive outgoing events.<br/>OutboundEventsHTTPSEndpoint:  HTTPS endpoint that allows the bot to receive outgoing events.<br/>BotId:  The bot ID.<br/>AccountId:  The Amazon Chime account ID.<br/>
        :return: EventsConfiguration:  The configuration that allows a bot to receive outgoing events. Can be either an HTTPS endpoint or a Lambda function ARN.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LambdaFunctionArn</i> Lambda function ARN that allows a bot to receive outgoing events.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OutboundEventsHTTPSEndpoint</i> HTTPS endpoint that allows a bot to receive outgoing events.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BotId</i> The bot ID.<br/>        """
        pass

    def put_retention_settings(self, RetentionSettings: RetentionSettings, AccountId: str) -> PutRetentionSettingsResponse:
        r""" Puts retention settings for the specified Amazon Chime Enterprise account. We recommend using AWS CloudTrail to monitor usage of this API for your account. For more information, see <a href="https://docs.aws.amazon.com/chime/latest/ag/cloudtrail.html">Logging Amazon Chime API Calls with AWS CloudTrail</a> in the <i>Amazon Chime Administration Guide</i>.  To turn off existing retention settings, remove the number of days from the corresponding <b>RetentionDays</b> field in the <b>RetentionSettings</b> object. For more information about retention settings, see <a href="https://docs.aws.amazon.com/chime/latest/ag/chat-retention.html">Managing Chat Retention Policies</a> in the <i>Amazon Chime Administration Guide</i>.

        :param self:
        :param RetentionSettings:  The retention settings.:<br/>AccountId:  The Amazon Chime account ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConversationRetentionSettings</i> The chat conversation retention settings.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ConversationRetentionSettings</b>: The chat conversation retention settings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoomRetentionSettings</i> The chat room retention settings.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RoomRetentionSettings</b>: The chat room retention settings.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RetentionDays</i> The number of days for which to retain chat-room messages.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RetentionDays</i> The number of days for which to retain conversation messages.<br/>
        :return: InitiateDeletionTimestamp:  The timestamp representing the time at which the specified items are permanently deleted, in ISO 8601 format.<br/>RetentionSettings:  The retention settings.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConversationRetentionSettings</i> The chat conversation retention settings.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ConversationRetentionSettings</b>: The chat conversation retention settings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoomRetentionSettings</i> The chat room retention settings.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RoomRetentionSettings</b>: The chat room retention settings.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RetentionDays</i> The number of days for which to retain chat-room messages.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RetentionDays</i> The number of days for which to retain conversation messages.<br/>        """
        pass

    def put_sip_media_application_logging_configuration(self, SipMediaApplicationId: str, SipMediaApplicationLoggingConfiguration: SipMediaApplicationLoggingConfiguration=None) -> PutSipMediaApplicationLoggingConfigurationResponse:
        r"""Updates the logging configuration for the specified SIP media application.

        :param self:
        :param SipMediaApplicationLoggingConfiguration:  The actual logging configuration.:<br/>SipMediaApplicationId:  The SIP media application ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableSipMediaApplicationMessageLogs</i> Enables application message logs for the SIP media application.<br/>
        :return: SipMediaApplicationLoggingConfiguration:  Logging configuration of the SIP media application.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableSipMediaApplicationMessageLogs</i> Enables application message logs for the SIP media application.<br/>        """
        pass

    def put_voice_connector_emergency_calling_configuration(self, EmergencyCallingConfiguration: EmergencyCallingConfiguration, VoiceConnectorId: str) -> PutVoiceConnectorEmergencyCallingConfigurationResponse:
        r"""Puts emergency calling configuration details to the specified Amazon Chime Voice Connector, such as emergency phone numbers and calling countries. Origination and termination settings must be enabled for the Amazon Chime Voice Connector before emergency calling can be configured.

        :param self:
        :param EmergencyCallingConfiguration:  The emergency calling configuration details.:<br/>VoiceConnectorId:  The Amazon Chime Voice Connector ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DNIS</i> The Dialed Number Identification Service (DNIS) emergency calling configuration details.<br/>
        :return: EmergencyCallingConfiguration:  The emergency calling configuration details.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DNIS</i> The Dialed Number Identification Service (DNIS) emergency calling configuration details.<br/>        """
        pass

    def put_voice_connector_logging_configuration(self, LoggingConfiguration: LoggingConfiguration, VoiceConnectorId: str) -> PutVoiceConnectorLoggingConfigurationResponse:
        r"""Adds a logging configuration for the specified Amazon Chime Voice Connector. The logging configuration specifies whether SIP message logs are enabled for sending to Amazon CloudWatch Logs.

        :param self:
        :param LoggingConfiguration:  The logging configuration details to add.:<br/>VoiceConnectorId:  The Amazon Chime Voice Connector ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableSIPLogs</i> When true, enables SIP message logs for sending to Amazon CloudWatch Logs.<br/>
        :return: LoggingConfiguration:  The updated logging configuration details.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableSIPLogs</i> When true, enables SIP message logs for sending to Amazon CloudWatch Logs.<br/>        """
        pass

    def put_voice_connector_origination(self, Origination: Origination, VoiceConnectorId: str) -> PutVoiceConnectorOriginationResponse:
        r"""Adds origination settings for the specified Amazon Chime Voice Connector. <note> If emergency calling is configured for the Amazon Chime Voice Connector, it must be deleted prior to turning off origination settings. </note>

        :param self:
        :param Origination:  The origination setting details to add.:<br/>VoiceConnectorId:  The Amazon Chime Voice Connector ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Disabled</i> When origination settings are disabled, inbound calls are not enabled for your Amazon Chime Voice Connector.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Routes</i> The call distribution properties defined for your SIP hosts. Valid range: Minimum value of 1. Maximum value of 20.<br/>
        :return: Origination:  The updated origination setting details.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Disabled</i> When origination settings are disabled, inbound calls are not enabled for your Amazon Chime Voice Connector.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Routes</i> The call distribution properties defined for your SIP hosts. Valid range: Minimum value of 1. Maximum value of 20.<br/>        """
        pass

    def put_voice_connector_proxy(self, PhoneNumberPoolCountries: List[Country], DefaultSessionExpiryMinutes: int, VoiceConnectorId: str, FallBackPhoneNumber: str=None, Disabled: Boolean=None) -> PutVoiceConnectorProxyResponse:
        r"""Puts the specified proxy configuration to the specified Amazon Chime Voice Connector.

        :param self:
        :param Disabled:  When true, stops proxy sessions from being created on the specified Amazon Chime Voice Connector.<br/>FallBackPhoneNumber:  The phone number to route calls to after a proxy session expires.<br/>PhoneNumberPoolCountries:  The countries for proxy phone numbers to be selected from.<br/>DefaultSessionExpiryMinutes:  The default number of minutes allowed for proxy sessions.<br/>VoiceConnectorId:  The Amazon Chime voice connector ID.<br/>
        :return: Proxy:  The proxy configuration details.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PhoneNumberCountries</i> The countries for proxy phone numbers to be selected from.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FallBackPhoneNumber</i> The phone number to route calls to after a proxy session expires.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Disabled</i> When true, stops proxy sessions from being created on the specified Amazon Chime Voice Connector.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultSessionExpiryMinutes</i> The default number of minutes allowed for proxy sessions.<br/>        """
        pass

    def put_voice_connector_streaming_configuration(self, StreamingConfiguration: StreamingConfiguration, VoiceConnectorId: str) -> PutVoiceConnectorStreamingConfigurationResponse:
        r"""Adds a streaming configuration for the specified Amazon Chime Voice Connector. The streaming configuration specifies whether media streaming is enabled for sending to Indonesians. It also sets the retention period, in hours, for the Amazon Kinesis data.

        :param self:
        :param StreamingConfiguration:  The streaming configuration details to add.:<br/>VoiceConnectorId:  The Amazon Chime Voice Connector ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamingNotificationTargets</i> The streaming notification targets.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Disabled</i> When true, media streaming to Amazon Kinesis is turned off.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataRetentionInHours</i> The retention period, in hours, for the Amazon Kinesis data.<br/>
        :return: StreamingConfiguration:  The updated streaming configuration details.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamingNotificationTargets</i> The streaming notification targets.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Disabled</i> When true, media streaming to Amazon Kinesis is turned off.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataRetentionInHours</i> The retention period, in hours, for the Amazon Kinesis data.<br/>        """
        pass

    def put_voice_connector_termination(self, Termination: Termination, VoiceConnectorId: str) -> PutVoiceConnectorTerminationResponse:
        r"""Adds termination settings for the specified Amazon Chime Voice Connector. <note> If emergency calling is configured for the Amazon Chime Voice Connector, it must be deleted prior to turning off termination settings. </note>

        :param self:
        :param Termination:  The termination setting details to add.:<br/>VoiceConnectorId:  The Amazon Chime Voice Connector ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Disabled</i> When termination settings are disabled, outbound calls can not be made.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CidrAllowedList</i> The IP addresses allowed to make calls, in CIDR format. Required.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CallingRegions</i> The countries to which calls are allowed, in ISO 3166-1 alpha-2 format. Required.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultPhoneNumber</i> The default caller ID phone number.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CpsLimit</i> The limit on calls per second. Max value based on account service quota. Default value of 1.<br/>
        :return: Termination:  The updated termination setting details.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Disabled</i> When termination settings are disabled, outbound calls can not be made.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CidrAllowedList</i> The IP addresses allowed to make calls, in CIDR format. Required.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CallingRegions</i> The countries to which calls are allowed, in ISO 3166-1 alpha-2 format. Required.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultPhoneNumber</i> The default caller ID phone number.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CpsLimit</i> The limit on calls per second. Max value based on account service quota. Default value of 1.<br/>        """
        pass

    def put_voice_connector_termination_credentials(self, VoiceConnectorId: str, Credentials: List[Credential]=None):
        r"""Adds termination SIP credentials for the specified Amazon Chime Voice Connector.

        :param self:
        :param Credentials:  The termination SIP credentials.<br/>VoiceConnectorId:  The Amazon Chime Voice Connector ID.<br/>
        :return:         """
        pass

    def redact_channel_message(self, MessageId: str, ChannelArn: str, ChimeBearer: str=None) -> RedactChannelMessageResponse:
        r"""Redacts message content, but not metadata. The message exists in the back end, but the action returns null content, and the state shows as redacted. <note> The <code>x-amz-chime-bearer</code> request header is mandatory. Use the <code>AppInstanceUserArn</code> of the user that makes the API call as the value in the header. </note>

        :param self:
        :param ChimeBearer:  The <code>AppInstanceUserArn</code> of the user that makes the API call.<br/>MessageId:  The ID of the message being redacted.<br/>ChannelArn:  The ARN of the channel containing the messages that you want to redact.<br/>
        :return: MessageId:  The ID of the message being redacted.<br/>ChannelArn:  The ARN of the channel containing the messages that you want to redact.<br/>        """
        pass

    def redact_conversation_message(self, MessageId: str, ConversationId: str, AccountId: str) -> RedactConversationMessageResponse:
        r"""Redacts the specified message from the specified Amazon Chime conversation.

        :param self:
        :param MessageId:  The message ID.<br/>ConversationId:  The conversation ID.<br/>AccountId:  The Amazon Chime account ID.<br/>
        :return:         """
        pass

    def redact_room_message(self, MessageId: str, RoomId: str, AccountId: str) -> RedactRoomMessageResponse:
        r"""Redacts the specified message from the specified Amazon Chime channel.

        :param self:
        :param MessageId:  The message ID.<br/>RoomId:  The room ID.<br/>AccountId:  The Amazon Chime account ID.<br/>
        :return:         """
        pass

    def regenerate_security_token(self, BotId: str, AccountId: str) -> RegenerateSecurityTokenResponse:
        r"""Regenerates the security token for a bot.

        :param self:
        :param BotId:  The bot ID.<br/>AccountId:  The Amazon Chime account ID.<br/>
        :return: Bot:  A resource that allows Enterprise account administrators to configure an interface to receive events from Amazon Chime.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityToken</i> The security token used to authenticate Amazon Chime with the outgoing event endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BotEmail</i> The bot email address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdatedTimestamp</i> The updated bot timestamp, in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTimestamp</i> The bot creation timestamp, in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Disabled</i> When true, the bot is stopped from running in your account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BotType</i> The bot type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DisplayName</i> The bot display name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserId</i> The unique ID for the bot user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BotId</i> The bot ID.<br/>        """
        pass

    def reset_personal_pin(self, UserId: str, AccountId: str) -> ResetPersonalPINResponse:
        r"""Resets the personal meeting PIN for the specified user on an Amazon Chime account. Returns the <a>User</a> object with the updated personal meeting PIN.

        :param self:
        :param UserId:  The user ID.<br/>AccountId:  The Amazon Chime account ID.<br/>
        :return: User:  The user details and new personal meeting PIN.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PersonalPIN</i> The user's personal meeting PIN.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AlexaForBusinessMetadata</i> The Alexa for Business metadata.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AlexaForBusinessMetadata</b>: The Alexa for Business metadata.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InvitedOn</i> Date and time when the user is invited to the Amazon Chime account, in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RegisteredOn</i> Date and time when the user is registered, in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserInvitationStatus</i> The user invite status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserRegistrationStatus</i> The user registration status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserType</i> The user type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LicenseType</i> The license type for the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DisplayName</i> The display name of the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PrimaryProvisionedNumber</i> The primary phone number associated with the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PrimaryEmail</i> The primary email address of the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccountId</i> The Amazon Chime account ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserId</i> The user ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AlexaForBusinessRoomArn</i> The ARN of the room resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IsAlexaForBusinessEnabled</i> Starts or stops Alexa for Business.<br/>        """
        pass

    def restore_phone_number(self, PhoneNumberId: str) -> RestorePhoneNumberResponse:
        r"""Moves a phone number from the <b>Deletion queue</b> back into the phone number <b>Inventory</b>.

        :param self:
        :param PhoneNumberId:  The phone number.<br/>
        :return: PhoneNumber:  The phone number details.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeletionTimestamp</i> The deleted phone number timestamp, in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdatedTimestamp</i> The updated phone number timestamp, in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTimestamp</i> The phone number creation timestamp, in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CallingNameStatus</i> The outbound calling name status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CallingName</i> The outbound calling name associated with the phone number.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Associations</i> The phone number associations.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Capabilities</i> The phone number capabilities.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Capabilities</b>: The phone number capabilities.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The phone number status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProductType</i> The phone number product type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The phone number type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Country</i> The phone number country. Format: ISO 3166-1 alpha-2.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>E164PhoneNumber</i> The phone number, in E.164 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PhoneNumberId</i> The phone number ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OutboundMMS</i> Allows or denies outbound MMS messaging for the specified phone number.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InboundMMS</i> Allows or denies inbound MMS messaging for the specified phone number.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OutboundSMS</i> Allows or denies outbound SMS messaging for the specified phone number.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InboundSMS</i> Allows or denies inbound SMS messaging for the specified phone number.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OutboundCall</i> Allows or denies outbound calling for the specified phone number.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InboundCall</i> Allows or denies inbound calling for the specified phone number.<br/>        """
        pass

    def search_available_phone_numbers(self, AreaCode: str=None, City: str=None, Country: str=None, State: str=None, TollFreePrefix: str=None, PhoneNumberType: str=None, MaxResults: int=None, NextToken: str=None) -> SearchAvailablePhoneNumbersResponse:
        r"""Searches for phone numbers that can be ordered. For US numbers, provide at least one of the following search filters: <code>AreaCode</code>, <code>City</code>, <code>State</code>, or <code>TollFreePrefix</code>. If you provide <code>City</code>, you must also provide <code>State</code>. Numbers outside the US only support the <code>PhoneNumberType</code> filter, which you must use.

        :param self:
        :param NextToken:  The token used to retrieve the next page of results.<br/>MaxResults:  The maximum number of results to return in a single call.<br/>PhoneNumberType:  The phone number type used to filter results. Required for non-US numbers.<br/>TollFreePrefix:  The toll-free prefix that you use to filter results. Only applies to the US.<br/>State:  The state used to filter results. Required only if you provide <code>City</code>. Only applies to the US.<br/>Country:  The country used to filter results. Defaults to the US Format: ISO 3166-1 alpha-2.<br/>City:  The city used to filter results. Only applies to the US.<br/>AreaCode:  The area code used to filter results. Only applies to the US.<br/>
        :return: NextToken:  The token used to retrieve the next page of search results.<br/>E164PhoneNumbers:  List of phone numbers, in E.164 format.<br/>        """
        pass

    def send_channel_message(self, ClientRequestToken: str, Persistence: str, Type: str, Content: str, ChannelArn: str, Metadata: str=None, ChimeBearer: str=None) -> SendChannelMessageResponse:
        r"""Sends a message to a particular channel that the member is a part of. <note> The <code>x-amz-chime-bearer</code> request header is mandatory. Use the <code>AppInstanceUserArn</code> of the user that makes the API call as the value in the header. Also, <code>STANDARD</code> messages can contain 4KB of data and the 1KB of metadata. <code>CONTROL</code> messages can contain 30 bytes of data and no metadata. </note>

        :param self:
        :param ChimeBearer:  The <code>AppInstanceUserArn</code> of the user that makes the API call.<br/>ClientRequestToken:  The <code>Idempotency</code> token for each client request.<br/>Metadata:  The optional metadata for each message.<br/>Persistence:  Boolean that controls whether the message is persisted on the back end. Required.<br/>Type:  The type of message, <code>STANDARD</code> or <code>CONTROL</code>.<br/>Content:  The content of the message.<br/>ChannelArn:  The ARN of the channel.<br/>
        :return: MessageId:  The ID string assigned to each message.<br/>ChannelArn:  The ARN of the channel.<br/>        """
        pass

    def tag_attendee(self, Tags: List[Tag], AttendeeId: str, MeetingId: str):
        r"""Applies the specified tags to the specified Amazon Chime SDK attendee.

        :param self:
        :param Tags:  The tag key-value pairs.<br/>AttendeeId:  The Amazon Chime SDK attendee ID.<br/>MeetingId:  The Amazon Chime SDK meeting ID.<br/>
        :return:         """
        pass

    def tag_meeting(self, Tags: List[Tag], MeetingId: str):
        r"""Applies the specified tags to the specified Amazon Chime SDK meeting.

        :param self:
        :param Tags:  The tag key-value pairs.<br/>MeetingId:  The Amazon Chime SDK meeting ID.<br/>
        :return:         """
        pass

    def tag_resource(self, Tags: List[Tag], ResourceARN: str):
        r"""Applies the specified tags to the specified Amazon Chime SDK meeting resource.

        :param self:
        :param Tags:  The tag key-value pairs.<br/>ResourceARN:  The resource ARN.<br/>
        :return:         """
        pass

    def untag_attendee(self, TagKeys: List[TagKey], AttendeeId: str, MeetingId: str):
        r"""Untags the specified tags from the specified Amazon Chime SDK attendee.

        :param self:
        :param TagKeys:  The tag keys.<br/>AttendeeId:  The Amazon Chime SDK attendee ID.<br/>MeetingId:  The Amazon Chime SDK meeting ID.<br/>
        :return:         """
        pass

    def untag_meeting(self, TagKeys: List[TagKey], MeetingId: str):
        r"""Untags the specified tags from the specified Amazon Chime SDK meeting.

        :param self:
        :param TagKeys:  The tag keys.<br/>MeetingId:  The Amazon Chime SDK meeting ID.<br/>
        :return:         """
        pass

    def untag_resource(self, TagKeys: List[TagKey], ResourceARN: str):
        r"""Untags the specified tags from the specified Amazon Chime SDK meeting resource.

        :param self:
        :param TagKeys:  The tag keys.<br/>ResourceARN:  The resource ARN.<br/>
        :return:         """
        pass

    def update_account(self, AccountId: str, Name: str=None, DefaultLicense: str=None) -> UpdateAccountResponse:
        r"""Updates account details for the specified Amazon Chime account. Currently, only account name and default license updates are supported for this action.

        :param self:
        :param DefaultLicense:  The default license applied when you add users to an Amazon Chime account.<br/>Name:  The new name for the specified Amazon Chime account.<br/>AccountId:  The Amazon Chime account ID.<br/>
        :return: Account:  The updated Amazon Chime account details.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SigninDelegateGroups</i> The sign-in delegate groups associated with the account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SupportedLicenses</i> Supported licenses for the Amazon Chime account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultLicense</i> The default license for the Amazon Chime account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTimestamp</i> The Amazon Chime account creation timestamp, in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccountType</i> The Amazon Chime account type. For more information about different account types, see <a href="https://docs.aws.amazon.com/chime/latest/ag/manage-chime-account.html">Managing Your Amazon Chime Accounts</a> in the <i>Amazon Chime Administration Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The Amazon Chime account name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccountId</i> The Amazon Chime account ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AwsAccountId</i> The AWS account ID.<br/>        """
        pass

    def update_account_settings(self, AccountSettings: AccountSettings, AccountId: str) -> UpdateAccountSettingsResponse:
        r"""Updates the settings for the specified Amazon Chime account. You can update settings for remote control of shared screens, or for the dial-out option. For more information about these settings, see <a href="https://docs.aws.amazon.com/chime/latest/ag/policies.html">Use the Policies Page</a> in the <i>Amazon Chime Administration Guide</i>.

        :param self:
        :param AccountSettings:  The Amazon Chime account settings to update.:<br/>AccountId:  The Amazon Chime account ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableDialOut</i> Setting that allows meeting participants to choose the <b>Call me at a phone number</b> option. For more information, see <a href="https://docs.aws.amazon.com/chime/latest/ug/chime-join-meeting.html">Join a Meeting without the Amazon Chime App</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DisableRemoteControl</i> Setting that stops or starts remote control of shared screens during meetings.<br/>
        :return:         """
        pass

    def update_app_instance(self, Name: str, AppInstanceArn: str, Metadata: str=None) -> UpdateAppInstanceResponse:
        r"""Updates <code>AppInstance</code> metadata.

        :param self:
        :param Metadata:  The metadata that you want to change.<br/>Name:  The name that you want to change.<br/>AppInstanceArn:  The ARN of the <code>AppInstance</code>.<br/>
        :return: AppInstanceArn:  The ARN of the <code>AppInstance</code>.<br/>        """
        pass

    def update_app_instance_user(self, Name: str, AppInstanceUserArn: str, Metadata: str=None) -> UpdateAppInstanceUserResponse:
        r"""Updates the details of an <code>AppInstanceUser</code>. You can update names and metadata.

        :param self:
        :param Metadata:  The metadata of the <code>AppInstanceUser</code>.<br/>Name:  The name of the <code>AppInstanceUser</code>.<br/>AppInstanceUserArn:  The ARN of the <code>AppInstanceUser</code>.<br/>
        :return: AppInstanceUserArn:  The ARN of the <code>AppInstanceUser</code>.<br/>        """
        pass

    def update_bot(self, BotId: str, AccountId: str, Disabled: NullableBoolean=None) -> UpdateBotResponse:
        r"""Updates the status of the specified bot, such as starting or stopping the bot from running in your Amazon Chime Enterprise account.

        :param self:
        :param Disabled:  When true, stops the specified bot from running in your account.<br/>BotId:  The bot ID.<br/>AccountId:  The Amazon Chime account ID.<br/>
        :return: Bot:  The updated bot details.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityToken</i> The security token used to authenticate Amazon Chime with the outgoing event endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BotEmail</i> The bot email address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdatedTimestamp</i> The updated bot timestamp, in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTimestamp</i> The bot creation timestamp, in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Disabled</i> When true, the bot is stopped from running in your account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BotType</i> The bot type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DisplayName</i> The bot display name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserId</i> The unique ID for the bot user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BotId</i> The bot ID.<br/>        """
        pass

    def update_channel(self, Mode: str, Name: str, ChannelArn: str, Metadata: str=None, ChimeBearer: str=None) -> UpdateChannelResponse:
        r"""Update a channel's attributes.  <b>Restriction</b>: You can't change a channel's privacy.  <note> The <code>x-amz-chime-bearer</code> request header is mandatory. Use the <code>AppInstanceUserArn</code> of the user that makes the API call as the value in the header. </note>

        :param self:
        :param ChimeBearer:  The <code>AppInstanceUserArn</code> of the user that makes the API call.<br/>Metadata:  The metadata for the update request.<br/>Mode:  The mode of the update request.<br/>Name:  The name of the channel.<br/>ChannelArn:  The ARN of the channel.<br/>
        :return: ChannelArn:  The ARN of the channel.<br/>        """
        pass

    def update_channel_message(self, MessageId: str, ChannelArn: str, Content: str=None, Metadata: str=None, ChimeBearer: str=None) -> UpdateChannelMessageResponse:
        r"""Updates the content of a message. <note> The <code>x-amz-chime-bearer</code> request header is mandatory. Use the <code>AppInstanceUserArn</code> of the user that makes the API call as the value in the header. </note>

        :param self:
        :param ChimeBearer:  The <code>AppInstanceUserArn</code> of the user that makes the API call.<br/>Metadata:  The metadata of the message being updated.<br/>Content:  The content of the message being updated.<br/>MessageId:  The ID string of the message being updated.<br/>ChannelArn:  The ARN of the channel.<br/>
        :return: MessageId:  The ID string of the message being updated.<br/>ChannelArn:  The ARN of the channel.<br/>        """
        pass

    def update_channel_read_marker(self, ChannelArn: str, ChimeBearer: str=None) -> UpdateChannelReadMarkerResponse:
        r"""The details of the time when a user last read messages in a channel. <note> The <code>x-amz-chime-bearer</code> request header is mandatory. Use the <code>AppInstanceUserArn</code> of the user that makes the API call as the value in the header. </note>

        :param self:
        :param ChimeBearer:  The <code>AppInstanceUserArn</code> of the user that makes the API call.<br/>ChannelArn:  The ARN of the channel.<br/>
        :return: ChannelArn:  The ARN of the channel.<br/>        """
        pass

    def update_global_settings(self, VoiceConnector: VoiceConnectorSettings, BusinessCalling: BusinessCallingSettings):
        r"""Updates global settings for the administrator's AWS account, such as Amazon Chime Business Calling and Amazon Chime Voice Connector settings.

        :param self:
        :param VoiceConnector:  The Amazon Chime Voice Connector settings.:<br/>BusinessCalling:  The Amazon Chime Business Calling settings.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CdrBucket</i> The Amazon S3 bucket designated for call detail record storage.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CdrBucket</i> The Amazon S3 bucket designated for call detail record storage.<br/>
        :return:         """
        pass

    def update_phone_number(self, PhoneNumberId: str, ProductType: str=None, CallingName: str=None) -> UpdatePhoneNumberResponse:
        r"""Updates phone number details, such as product type or calling name, for the specified phone number ID. You can update one phone number detail at a time. For example, you can update either the product type or the calling name in one action. For toll-free numbers, you cannot use the Amazon Chime Business Calling product type. For numbers outside the U.S., you must use the Amazon Chime SIP Media Application Dial-In product type. Updates to outbound calling names can take 72 hours to complete. Pending updates to outbound calling names must be complete before you can request another update.

        :param self:
        :param CallingName:  The outbound calling name associated with the phone number.<br/>ProductType:  The product type.<br/>PhoneNumberId:  The phone number ID.<br/>
        :return: PhoneNumber:  The updated phone number details.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeletionTimestamp</i> The deleted phone number timestamp, in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdatedTimestamp</i> The updated phone number timestamp, in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTimestamp</i> The phone number creation timestamp, in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CallingNameStatus</i> The outbound calling name status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CallingName</i> The outbound calling name associated with the phone number.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Associations</i> The phone number associations.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Capabilities</i> The phone number capabilities.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Capabilities</b>: The phone number capabilities.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The phone number status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProductType</i> The phone number product type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The phone number type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Country</i> The phone number country. Format: ISO 3166-1 alpha-2.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>E164PhoneNumber</i> The phone number, in E.164 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PhoneNumberId</i> The phone number ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OutboundMMS</i> Allows or denies outbound MMS messaging for the specified phone number.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InboundMMS</i> Allows or denies inbound MMS messaging for the specified phone number.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OutboundSMS</i> Allows or denies outbound SMS messaging for the specified phone number.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InboundSMS</i> Allows or denies inbound SMS messaging for the specified phone number.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OutboundCall</i> Allows or denies outbound calling for the specified phone number.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InboundCall</i> Allows or denies inbound calling for the specified phone number.<br/>        """
        pass

    def update_phone_number_settings(self, CallingName: str):
        r"""Updates the phone number settings for the administrator's AWS account, such as the default outbound calling name. You can update the default outbound calling name once every seven days. Outbound calling names can take up to 72 hours to update.

        :param self:
        :param CallingName:  The default outbound calling name for the account.<br/>
        :return:         """
        pass

    def update_proxy_session(self, Capabilities: List[Capability], ProxySessionId: str, VoiceConnectorId: str, ExpiryMinutes: int=None) -> UpdateProxySessionResponse:
        r"""Updates the specified proxy session details, such as voice or SMS capabilities.

        :param self:
        :param ExpiryMinutes:  The number of minutes allowed for the proxy session.<br/>Capabilities:  The proxy session capabilities.<br/>ProxySessionId:  The proxy session ID.<br/>VoiceConnectorId:  The Amazon Chime voice connector ID.<br/>
        :return: ProxySession:  The proxy session details.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GeoMatchParams</i> The country and area code for the proxy phone number.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>GeoMatchParams</b>: The country and area code for the proxy phone number.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GeoMatchLevel</i> The preference for matching the country or area code of the proxy phone number with that of the first participant.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberSelectionBehavior</i> The preference for proxy phone number reuse, or stickiness, between the same participants across sessions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Participants</i> The proxy session participants.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndedTimestamp</i> The ended time stamp, in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdatedTimestamp</i> The updated time stamp, in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTimestamp</i> The created time stamp, in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Capabilities</i> The proxy session capabilities.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExpiryMinutes</i> The number of minutes allowed for the proxy session.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the proxy session.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the proxy session.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProxySessionId</i> The proxy session ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VoiceConnectorId</i> The Amazon Chime voice connector ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AreaCode</i> The area code.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Country</i> The country.<br/>        """
        pass

    def update_room(self, RoomId: str, AccountId: str, Name: str=None) -> UpdateRoomResponse:
        r"""Updates room details, such as the room name, for a room in an Amazon Chime Enterprise account.

        :param self:
        :param Name:  The room name.<br/>RoomId:  The room ID.<br/>AccountId:  The Amazon Chime account ID.<br/>
        :return: Room:  The room details.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdatedTimestamp</i> The room update timestamp, in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTimestamp</i> The room creation timestamp, in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedBy</i> The identifier of the room creator.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccountId</i> The Amazon Chime account ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The room name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoomId</i> The room ID.<br/>        """
        pass

    def update_room_membership(self, MemberId: str, RoomId: str, AccountId: str, Role: str=None) -> UpdateRoomMembershipResponse:
        r"""Updates room membership details, such as the member role, for a room in an Amazon Chime Enterprise account. The member role designates whether the member is a chat room administrator or a general chat room member. The member role can be updated only for user IDs.

        :param self:
        :param Role:  The role of the member.<br/>MemberId:  The member ID.<br/>RoomId:  The room ID.<br/>AccountId:  The Amazon Chime account ID.<br/>
        :return: RoomMembership:  The room membership details.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdatedTimestamp</i> The room membership update timestamp, in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InvitedBy</i> The identifier of the user that invited the room member.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Role</i> The membership role.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Member</i> The member details, such as email address, name, member ID, and member type.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Member</b>: The member details, such as email address, name, member ID, and member type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoomId</i> The room ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AccountId</i> The Amazon Chime account ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FullName</i> The member name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Email</i> The member email address.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MemberType</i> The member type.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MemberId</i> The member ID (user ID or bot ID).<br/>        """
        pass

    def update_sip_media_application(self, SipMediaApplicationId: str, Name: str=None, Endpoints: List[SipMediaApplicationEndpoint]=None) -> UpdateSipMediaApplicationResponse:
        r"""Updates the details of the specified SIP media application.

        :param self:
        :param Endpoints:  The new set of endpoints for the specified SIP media application.<br/>Name:  The new name for the specified SIP media application.<br/>SipMediaApplicationId:  The SIP media application ID.<br/>
        :return: SipMediaApplication:  The updated SIP media application details.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdatedTimestamp</i> The SIP media application updated timestamp, in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTimestamp</i> The SIP media application creation timestamp, in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoints</i> List of endpoints for SIP media application. Currently, only one endpoint per SIP media application is permitted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the SIP media application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AwsRegion</i> The AWS Region in which the SIP media application is created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SipMediaApplicationId</i> The SIP media application ID.<br/>        """
        pass

    def update_sip_media_application_call(self, Arguments: SMAUpdateCallArgumentsMap, TransactionId: str, SipMediaApplicationId: str) -> UpdateSipMediaApplicationCallResponse:
        r"""Allows you to trigger a Lambda function at any time while a call is active, and replace the current actions with new actions returned by the invocation.

        :param self:
        :param Arguments:  Arguments made available to the Lambda function as part of the <code>CALL_UPDATE_REQUESTED</code> event. Can contain 0-20 key-value pairs.<br/>TransactionId:  The ID of the call transaction.<br/>SipMediaApplicationId:  The ID of the SIP media application handling the call.<br/>
        :return: SipMediaApplicationCall:  A <code>Call</code> instance for a SIP media application.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransactionId</i> The transaction ID of a call.<br/>        """
        pass

    def update_sip_rule(self, Name: str, SipRuleId: str, Disabled: NullableBoolean=None, TargetApplications: List[SipRuleTargetApplication]=None) -> UpdateSipRuleResponse:
        r"""Updates the details of the specified SIP rule.

        :param self:
        :param TargetApplications:  The new value of the list of target applications.<br/>Disabled:  The new value specified to indicate whether the rule is disabled.<br/>Name:  The new name for the specified SIP rule.<br/>SipRuleId:  The SIP rule ID.<br/>
        :return: SipRule:  Updated SIP rule details.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdatedTimestamp</i> The time at which the SIP rule was last updated, in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTimestamp</i> The time at which the SIP rule was created, in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetApplications</i> Target SIP media application and other details, such as priority and AWS Region, to be specified in the SIP rule. Only one SIP rule per AWS Region can be provided.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TriggerValue</i> If <code>TriggerType</code> is <code>RequestUriHostname</code>, then the value can be the outbound host name of the Amazon Chime Voice Connector. If <code>TriggerType</code> is <code>ToPhoneNumber</code>, then the value can be a customer-owned phone number in E164 format. <code>SipRule</code> is triggered when a SIP rule requests host name or <code>ToPhoneNumber</code> matches in the incoming SIP request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TriggerType</i> The type of trigger assigned to the SIP rule in <code>TriggerValue</code>, currently <code>RequestUriHostname</code> or <code>ToPhoneNumber</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Disabled</i> Indicates whether the SIP rule is enabled or disabled. You must disable a rule before you can delete it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the SIP rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SipRuleId</i> The SIP rule ID.<br/>        """
        pass

    def update_user(self, UserId: str, AccountId: str, LicenseType: str=None, UserType: str=None, AlexaForBusinessMetadata: AlexaForBusinessMetadata=None) -> UpdateUserResponse:
        r"""Updates user details for a specified user ID. Currently, only <code>LicenseType</code> updates are supported for this action.

        :param self:
        :param AlexaForBusinessMetadata:  The Alexa for Business metadata.:<br/>UserType:  The user type.<br/>LicenseType:  The user license type to update. This must be a supported license type for the Amazon Chime account that the user belongs to.<br/>UserId:  The user ID.<br/>AccountId:  The Amazon Chime account ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AlexaForBusinessRoomArn</i> The ARN of the room resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsAlexaForBusinessEnabled</i> Starts or stops Alexa for Business.<br/>
        :return: User:  The updated user details.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PersonalPIN</i> The user's personal meeting PIN.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AlexaForBusinessMetadata</i> The Alexa for Business metadata.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AlexaForBusinessMetadata</b>: The Alexa for Business metadata.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InvitedOn</i> Date and time when the user is invited to the Amazon Chime account, in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RegisteredOn</i> Date and time when the user is registered, in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserInvitationStatus</i> The user invite status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserRegistrationStatus</i> The user registration status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserType</i> The user type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LicenseType</i> The license type for the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DisplayName</i> The display name of the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PrimaryProvisionedNumber</i> The primary phone number associated with the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PrimaryEmail</i> The primary email address of the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccountId</i> The Amazon Chime account ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserId</i> The user ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AlexaForBusinessRoomArn</i> The ARN of the room resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IsAlexaForBusinessEnabled</i> Starts or stops Alexa for Business.<br/>        """
        pass

    def update_user_settings(self, UserSettings: UserSettings, UserId: str, AccountId: str):
        r"""Updates the settings for the specified user, such as phone number settings.

        :param self:
        :param UserSettings:  The user settings to update.:<br/>UserId:  The user ID.<br/>AccountId:  The Amazon Chime account ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Telephony</i> The telephony settings associated with the user.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Telephony</b>: The telephony settings associated with the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SMS</i> Allows or denies SMS messaging.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OutboundCalling</i> Allows or denies outbound calling.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InboundCalling</i> Allows or denies inbound calling.<br/>
        :return:         """
        pass

    def update_voice_connector(self, RequireEncryption: Boolean, Name: str, VoiceConnectorId: str) -> UpdateVoiceConnectorResponse:
        r"""Updates details for the specified Amazon Chime Voice Connector.

        :param self:
        :param RequireEncryption:  When enabled, requires encryption for the Amazon Chime Voice Connector.<br/>Name:  The name of the Amazon Chime Voice Connector.<br/>VoiceConnectorId:  The Amazon Chime Voice Connector ID.<br/>
        :return: VoiceConnector:  The updated Amazon Chime Voice Connector details.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdatedTimestamp</i> The updated Amazon Chime Voice Connector timestamp, in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTimestamp</i> The Amazon Chime Voice Connector creation timestamp, in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequireEncryption</i> Designates whether encryption is required for the Amazon Chime Voice Connector.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OutboundHostName</i> The outbound host name for the Amazon Chime Voice Connector.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the Amazon Chime Voice Connector.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AwsRegion</i>  The AWS Region in which the Amazon Chime Voice Connector is created. Default: <code>us-east-1</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VoiceConnectorId</i> The Amazon Chime Voice Connector ID.<br/>        """
        pass

    def update_voice_connector_group(self, VoiceConnectorItems: List[VoiceConnectorItem], Name: str, VoiceConnectorGroupId: str) -> UpdateVoiceConnectorGroupResponse:
        r"""Updates details of the specified Amazon Chime Voice Connector group, such as the name and Amazon Chime Voice Connector priority ranking.

        :param self:
        :param VoiceConnectorItems:  The <code>VoiceConnectorItems</code> to associate with the group.<br/>Name:  The name of the Amazon Chime Voice Connector group.<br/>VoiceConnectorGroupId:  The Amazon Chime Voice Connector group ID.<br/>
        :return: VoiceConnectorGroup:  The updated Amazon Chime Voice Connector group details.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdatedTimestamp</i> The updated Amazon Chime Voice Connector group time stamp, in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTimestamp</i> The Amazon Chime Voice Connector group creation time stamp, in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VoiceConnectorItems</i> The Amazon Chime Voice Connectors to which to route inbound calls.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the Amazon Chime Voice Connector group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VoiceConnectorGroupId</i> The Amazon Chime Voice Connector group ID.<br/>        """
        pass





class Cloud9(BaseClient):
    r"""<fullname>Cloud9</fullname> Cloud9 is a collection of tools that you can use to code, build, run, test, debug, and release software in the cloud. For more information about Cloud9, see the <a href="https://docs.aws.amazon.com/cloud9/latest/user-guide">Cloud9 User Guide</a>. Cloud9 supports these operations: <ul> <li>  <code>CreateEnvironmentEC2</code>: Creates an Cloud9 development environment, launches an Amazon EC2 instance, and then connects from the instance to the environment. </li> <li>  <code>CreateEnvironmentMembership</code>: Adds an environment member to an environment. </li> <li>  <code>DeleteEnvironment</code>: Deletes an environment. If an Amazon EC2 instance is connected to the environment, also terminates the instance. </li> <li>  <code>DeleteEnvironmentMembership</code>: Deletes an environment member from an environment. </li> <li>  <code>DescribeEnvironmentMemberships</code>: Gets information about environment members for an environment. </li> <li>  <code>DescribeEnvironments</code>: Gets information about environments. </li> <li>  <code>DescribeEnvironmentStatus</code>: Gets status information for an environment. </li> <li>  <code>ListEnvironments</code>: Gets a list of environment identifiers. </li> <li>  <code>ListTagsForResource</code>: Gets the tags for an environment. </li> <li>  <code>TagResource</code>: Adds tags to an environment. </li> <li>  <code>UntagResource</code>: Removes tags from an environment. </li> <li>  <code>UpdateEnvironment</code>: Changes the settings of an existing environment. </li> <li>  <code>UpdateEnvironmentMembership</code>: Changes the settings of an existing environment member for an environment. </li> </ul>"""


    class DescribeEnvironmentMembershipsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_environment_memberships` for valid parameters"""
            pass
    class ListEnvironmentsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_environments` for valid parameters"""
            pass


    class CreateEnvironmentEC2Request(Mapping):
        pass
    
    class CreateEnvironmentEC2Result(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class CreateEnvironmentMembershipRequest(Mapping):
        pass
    
    class CreateEnvironmentMembershipResult(Mapping):
        pass
    
    class DeleteEnvironmentRequest(Mapping):
        pass
    
    class DeleteEnvironmentResult(Mapping):
        pass
    
    class DeleteEnvironmentMembershipRequest(Mapping):
        pass
    
    class DeleteEnvironmentMembershipResult(Mapping):
        pass
    
    class DescribeEnvironmentMembershipsRequest(Mapping):
        pass
    
    class DescribeEnvironmentMembershipsResult(Mapping):
        pass
    
    class Permissions(object):
        pass
    
    class DescribeEnvironmentStatusRequest(Mapping):
        pass
    
    class DescribeEnvironmentStatusResult(Mapping):
        pass
    
    class DescribeEnvironmentsRequest(Mapping):
        pass
    
    class DescribeEnvironmentsResult(Mapping):
        pass
    
    class EnvironmentId(object):
        pass
    
    class ListEnvironmentsRequest(Mapping):
        pass
    
    class ListEnvironmentsResult(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateEnvironmentRequest(Mapping):
        pass
    
    class UpdateEnvironmentResult(Mapping):
        pass
    
    class UpdateEnvironmentMembershipRequest(Mapping):
        pass
    
    class UpdateEnvironmentMembershipResult(Mapping):
        pass
    
    def create_environment_ec2(self, instanceType: str, name: str, description: str=None, clientRequestToken: str=None, subnetId: str=None, imageId: str=None, automaticStopTimeMinutes: int=None, ownerArn: str=None, tags: List[Tag]=None, connectionType: str=None) -> CreateEnvironmentEC2Result:
        r"""Creates an Cloud9 development environment, launches an Amazon Elastic Compute Cloud (Amazon EC2) instance, and then connects from the instance to the environment.

        :param self:
        :param connectionType:  The connection type used for connecting to an Amazon EC2 environment. Valid values are <code>CONNECT_SSH</code> (default) and <code>CONNECT_SSM</code> (connected through Amazon EC2 Systems Manager). For more information, see <a href="https://docs.aws.amazon.com/cloud9/latest/user-guide/ec2-ssm.html">Accessing no-ingress EC2 instances with Amazon EC2 Systems Manager</a> in the <i>Cloud9 User Guide</i>.<br/>tags:  An array of key-value pairs that will be associated with the new Cloud9 development environment.<br/>ownerArn:  The Amazon Resource Name (ARN) of the environment owner. This ARN can be the ARN of any IAM principal. If this value is not specified, the ARN defaults to this environment's creator.<br/>automaticStopTimeMinutes:  The number of minutes until the running instance is shut down after the environment has last been used.<br/>imageId:  The identifier for the Amazon Machine Image (AMI) that's used to create the EC2 instance. To choose an AMI for the instance, you must specify a valid AMI alias or a valid Amazon EC2 Systems Manager (SSM) path. The default AMI is used if the parameter isn't explicitly assigned a value in the request. Because Amazon Linux AMI has ended standard support as of December 31, 2020, we recommend you choose Amazon Linux 2, which includes long term support through 2023.  <b>AMI aliases </b>  <ul> <li>  <b>Amazon Linux (default): <code>amazonlinux-1-x86_64</code> </b>  </li> <li> Amazon Linux 2: <code>amazonlinux-2-x86_64</code>  </li> <li> Ubuntu 18.04: <code>ubuntu-18.04-x86_64</code>  </li> </ul>  <b>SSM paths</b>  <ul> <li>  <b>Amazon Linux (default): <code>resolve:ssm:/aws/service/cloud9/amis/amazonlinux-1-x86_64</code> </b>  </li> <li> Amazon Linux 2: <code>resolve:ssm:/aws/service/cloud9/amis/amazonlinux-2-x86_64</code>  </li> <li> Ubuntu 18.04: <code>resolve:ssm:/aws/service/cloud9/amis/ubuntu-18.04-x86_64</code>  </li> </ul><br/>subnetId:  The ID of the subnet in Amazon VPC that Cloud9 will use to communicate with the Amazon EC2 instance.<br/>instanceType:  The type of instance to connect to the environment (for example, <code>t2.micro</code>).<br/>clientRequestToken:  A unique, case-sensitive string that helps Cloud9 to ensure this operation completes no more than one time. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html">Client Tokens</a> in the <i>Amazon EC2 API Reference</i>.<br/>description:  The description of the environment to create.<br/>name:  The name of the environment to create. This name is visible to other IAM users in the same Amazon Web Services account.<br/>
        :return: environmentId:  The ID of the environment that was created.<br/>        """
        pass

    def create_environment_membership(self, permissions: str, userArn: str, environmentId: str) -> CreateEnvironmentMembershipResult:
        r"""Adds an environment member to an Cloud9 development environment.

        :param self:
        :param permissions:  The type of environment member permissions you want to associate with this environment member. Available values include: <ul> <li>  <code>read-only</code>: Has read-only access to the environment. </li> <li>  <code>read-write</code>: Has read-write access to the environment. </li> </ul><br/>userArn:  The Amazon Resource Name (ARN) of the environment member you want to add.<br/>environmentId:  The ID of the environment that contains the environment member you want to add.<br/>
        :return: membership:  Information about the environment member that was added.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastAccess</i> The time, expressed in epoch time format, when the environment member last opened the environment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>environmentId</i> The ID of the environment for the environment member.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>userArn</i> The Amazon Resource Name (ARN) of the environment member.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>userId</i> The user ID in Identity and Access Management (IAM) of the environment member.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>permissions</i> The type of environment member permissions associated with this environment member. Available values include: <ul> <li>  <code>owner</code>: Owns the environment. </li> <li>  <code>read-only</code>: Has read-only access to the environment. </li> <li>  <code>read-write</code>: Has read-write access to the environment. </li> </ul><br/>        """
        pass

    def delete_environment(self, environmentId: str) -> DeleteEnvironmentResult:
        r"""Deletes an Cloud9 development environment. If an Amazon EC2 instance is connected to the environment, also terminates the instance.

        :param self:
        :param environmentId:  The ID of the environment to delete.<br/>
        :return:         """
        pass

    def delete_environment_membership(self, userArn: str, environmentId: str) -> DeleteEnvironmentMembershipResult:
        r"""Deletes an environment member from an Cloud9 development environment.

        :param self:
        :param userArn:  The Amazon Resource Name (ARN) of the environment member to delete from the environment.<br/>environmentId:  The ID of the environment to delete the environment member from.<br/>
        :return:         """
        pass

    def describe_environment_memberships(self, userArn: str=None, environmentId: str=None, permissions: List[Permissions]=None, nextToken: str=None, maxResults: int=None) -> DescribeEnvironmentMembershipsResult:
        r"""Gets information about environment members for an Cloud9 development environment.

        :param self:
        :param maxResults:  The maximum number of environment members to get information about.<br/>nextToken:  During a previous call, if there are more than 25 items in the list, only the first 25 items are returned, along with a unique string called a <i>next token</i>. To get the next batch of items in the list, call this operation again, adding the next token to the call. To get all of the items in the list, keep calling this operation with each subsequent next token that is returned, until no more next tokens are returned.<br/>permissions:  The type of environment member permissions to get information about. Available values include: <ul> <li>  <code>owner</code>: Owns the environment. </li> <li>  <code>read-only</code>: Has read-only access to the environment. </li> <li>  <code>read-write</code>: Has read-write access to the environment. </li> </ul> If no value is specified, information about all environment members are returned.<br/>environmentId:  The ID of the environment to get environment member information about.<br/>userArn:  The Amazon Resource Name (ARN) of an individual environment member to get information about. If no value is specified, information about all environment members are returned.<br/>
        :return: nextToken:  If there are more than 25 items in the list, only the first 25 items are returned, along with a unique string called a <i>next token</i>. To get the next batch of items in the list, call this operation again, adding the next token to the call.<br/>memberships:  Information about the environment members for the environment.<br/>        """
        pass

    def describe_environment_status(self, environmentId: str) -> DescribeEnvironmentStatusResult:
        r"""Gets status information for an Cloud9 development environment.

        :param self:
        :param environmentId:  The ID of the environment to get status information about.<br/>
        :return: message:  Any informational message about the status of the environment.<br/>status:  The status of the environment. Available values include: <ul> <li>  <code>connecting</code>: The environment is connecting. </li> <li>  <code>creating</code>: The environment is being created. </li> <li>  <code>deleting</code>: The environment is being deleted. </li> <li>  <code>error</code>: The environment is in an error state. </li> <li>  <code>ready</code>: The environment is ready. </li> <li>  <code>stopped</code>: The environment is stopped. </li> <li>  <code>stopping</code>: The environment is stopping. </li> </ul><br/>        """
        pass

    def describe_environments(self, environmentIds: List[EnvironmentId]) -> DescribeEnvironmentsResult:
        r"""Gets information about Cloud9 development environments.

        :param self:
        :param environmentIds:  The IDs of individual environments to get information about.<br/>
        :return: environments:  Information about the environments that are returned.<br/>        """
        pass

    def list_environments(self, nextToken: str=None, maxResults: int=None) -> ListEnvironmentsResult:
        r"""Gets a list of Cloud9 development environment identifiers.

        :param self:
        :param maxResults:  The maximum number of environments to get identifiers for.<br/>nextToken:  During a previous call, if there are more than 25 items in the list, only the first 25 items are returned, along with a unique string called a <i>next token</i>. To get the next batch of items in the list, call this operation again, adding the next token to the call. To get all of the items in the list, keep calling this operation with each subsequent next token that is returned, until no more next tokens are returned.<br/>
        :return: environmentIds:  The list of environment identifiers.<br/>nextToken:  If there are more than 25 items in the list, only the first 25 items are returned, along with a unique string called a <i>next token</i>. To get the next batch of items in the list, call this operation again, adding the next token to the call.<br/>        """
        pass

    def list_tags_for_resource(self, ResourceARN: str) -> ListTagsForResourceResponse:
        r"""Gets a list of the tags associated with an Cloud9 development environment.

        :param self:
        :param ResourceARN:  The Amazon Resource Name (ARN) of the Cloud9 development environment to get the tags for.<br/>
        :return: Tags:  The list of tags associated with the Cloud9 development environment.<br/>        """
        pass

    def tag_resource(self, Tags: List[Tag], ResourceARN: str) -> TagResourceResponse:
        r"""Adds tags to an Cloud9 development environment. <important> Tags that you add to an Cloud9 environment by using this method will NOT be automatically propagated to underlying resources. </important>

        :param self:
        :param Tags:  The list of tags to add to the given Cloud9 development environment.<br/>ResourceARN:  The Amazon Resource Name (ARN) of the Cloud9 development environment to add tags to.<br/>
        :return:         """
        pass

    def untag_resource(self, TagKeys: List[TagKey], ResourceARN: str) -> UntagResourceResponse:
        r"""Removes tags from an Cloud9 development environment.

        :param self:
        :param TagKeys:  The tag names of the tags to remove from the given Cloud9 development environment.<br/>ResourceARN:  The Amazon Resource Name (ARN) of the Cloud9 development environment to remove tags from.<br/>
        :return:         """
        pass

    def update_environment(self, environmentId: str, name: str=None, description: str=None) -> UpdateEnvironmentResult:
        r"""Changes the settings of an existing Cloud9 development environment.

        :param self:
        :param description:  Any new or replacement description for the environment.<br/>name:  A replacement name for the environment.<br/>environmentId:  The ID of the environment to change settings.<br/>
        :return:         """
        pass

    def update_environment_membership(self, permissions: str, userArn: str, environmentId: str) -> UpdateEnvironmentMembershipResult:
        r"""Changes the settings of an existing environment member for an Cloud9 development environment.

        :param self:
        :param permissions:  The replacement type of environment member permissions you want to associate with this environment member. Available values include: <ul> <li>  <code>read-only</code>: Has read-only access to the environment. </li> <li>  <code>read-write</code>: Has read-write access to the environment. </li> </ul><br/>userArn:  The Amazon Resource Name (ARN) of the environment member whose settings you want to change.<br/>environmentId:  The ID of the environment for the environment member whose settings you want to change.<br/>
        :return: membership:  Information about the environment member whose settings were changed.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastAccess</i> The time, expressed in epoch time format, when the environment member last opened the environment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>environmentId</i> The ID of the environment for the environment member.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>userArn</i> The Amazon Resource Name (ARN) of the environment member.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>userId</i> The user ID in Identity and Access Management (IAM) of the environment member.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>permissions</i> The type of environment member permissions associated with this environment member. Available values include: <ul> <li>  <code>owner</code>: Owns the environment. </li> <li>  <code>read-only</code>: Has read-only access to the environment. </li> <li>  <code>read-write</code>: Has read-write access to the environment. </li> </ul><br/>        """
        pass





class CloudDirectory(BaseClient):
    r"""<fullname>Amazon Cloud Directory</fullname> Amazon Cloud Directory is a component of the AWS Directory Service that simplifies the development and management of cloud-scale web, mobile, and IoT applications. This guide describes the Cloud Directory operations that you can call programmatically and includes detailed information on data types and errors. For information about Cloud Directory features, see <a href="https://aws.amazon.com/directoryservice/">AWS Directory Service</a> and the <a href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/what_is_cloud_directory.html">Amazon Cloud Directory Developer Guide</a>."""


    class ListObjectParentPathsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_object_parent_paths` for valid parameters"""
            pass
    class ListFacetNamesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_facet_names` for valid parameters"""
            pass
    class ListPublishedSchemaArnsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_published_schema_arns` for valid parameters"""
            pass
    class ListDirectoriesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_directories` for valid parameters"""
            pass
    class ListDevelopmentSchemaArnsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_development_schema_arns` for valid parameters"""
            pass
    class ListTypedLinkFacetNamesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_typed_link_facet_names` for valid parameters"""
            pass
    class ListIndexPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_index` for valid parameters"""
            pass
    class ListFacetAttributesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_facet_attributes` for valid parameters"""
            pass
    class ListObjectPoliciesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_object_policies` for valid parameters"""
            pass
    class ListTagsForResourcePaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_tags_for_resource` for valid parameters"""
            pass
    class ListAttachedIndicesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_attached_indices` for valid parameters"""
            pass
    class LookupPolicyPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `lookup_policy` for valid parameters"""
            pass
    class ListPolicyAttachmentsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_policy_attachments` for valid parameters"""
            pass
    class ListObjectAttributesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_object_attributes` for valid parameters"""
            pass
    class ListAppliedSchemaArnsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_applied_schema_arns` for valid parameters"""
            pass
    class ListTypedLinkFacetAttributesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_typed_link_facet_attributes` for valid parameters"""
            pass
    class ListIncomingTypedLinksPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_incoming_typed_links` for valid parameters"""
            pass
    class ListManagedSchemaArnsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_managed_schema_arns` for valid parameters"""
            pass
    class ListOutgoingTypedLinksPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_outgoing_typed_links` for valid parameters"""
            pass


    class AddFacetToObjectRequest(Mapping):
        pass
    
    class AddFacetToObjectResponse(Mapping):
        pass
    
    class SchemaFacet(Mapping):
        pass
    
    class AttributeKeyAndValue(Mapping):
        pass
    
    class ObjectReference(Mapping):
        pass
    
    class ApplySchemaRequest(Mapping):
        pass
    
    class ApplySchemaResponse(Mapping):
        pass
    
    class AttachObjectRequest(Mapping):
        pass
    
    class AttachObjectResponse(Mapping):
        pass
    
    class AttachPolicyRequest(Mapping):
        pass
    
    class AttachPolicyResponse(Mapping):
        pass
    
    class AttachToIndexRequest(Mapping):
        pass
    
    class AttachToIndexResponse(Mapping):
        pass
    
    class AttachTypedLinkRequest(Mapping):
        pass
    
    class AttachTypedLinkResponse(Mapping):
        pass
    
    class TypedLinkSchemaAndFacetName(Mapping):
        pass
    
    class AttributeNameAndValue(Mapping):
        pass
    
    class BatchReadRequest(Mapping):
        pass
    
    class BatchReadResponse(Mapping):
        pass
    
    class BatchReadOperation(Mapping):
        pass
    
    class BatchWriteRequest(Mapping):
        pass
    
    class BatchWriteResponse(Mapping):
        pass
    
    class BatchWriteOperation(Mapping):
        pass
    
    class CreateDirectoryRequest(Mapping):
        pass
    
    class CreateDirectoryResponse(Mapping):
        pass
    
    class CreateFacetRequest(Mapping):
        pass
    
    class CreateFacetResponse(Mapping):
        pass
    
    class FacetAttribute(Mapping):
        pass
    
    class CreateIndexRequest(Mapping):
        pass
    
    class CreateIndexResponse(Mapping):
        pass
    
    class AttributeKey(Mapping):
        pass
    
    class Bool(object):
        pass
    
    class CreateObjectRequest(Mapping):
        pass
    
    class CreateObjectResponse(Mapping):
        pass
    
    class CreateSchemaRequest(Mapping):
        pass
    
    class CreateSchemaResponse(Mapping):
        pass
    
    class CreateTypedLinkFacetRequest(Mapping):
        pass
    
    class CreateTypedLinkFacetResponse(Mapping):
        pass
    
    class TypedLinkFacet(Mapping):
        pass
    
    class DeleteDirectoryRequest(Mapping):
        pass
    
    class DeleteDirectoryResponse(Mapping):
        pass
    
    class DeleteFacetRequest(Mapping):
        pass
    
    class DeleteFacetResponse(Mapping):
        pass
    
    class DeleteObjectRequest(Mapping):
        pass
    
    class DeleteObjectResponse(Mapping):
        pass
    
    class DeleteSchemaRequest(Mapping):
        pass
    
    class DeleteSchemaResponse(Mapping):
        pass
    
    class DeleteTypedLinkFacetRequest(Mapping):
        pass
    
    class DeleteTypedLinkFacetResponse(Mapping):
        pass
    
    class DetachFromIndexRequest(Mapping):
        pass
    
    class DetachFromIndexResponse(Mapping):
        pass
    
    class DetachObjectRequest(Mapping):
        pass
    
    class DetachObjectResponse(Mapping):
        pass
    
    class DetachPolicyRequest(Mapping):
        pass
    
    class DetachPolicyResponse(Mapping):
        pass
    
    class DetachTypedLinkRequest(Mapping):
        pass
    
    class TypedLinkSpecifier(Mapping):
        pass
    
    class DisableDirectoryRequest(Mapping):
        pass
    
    class DisableDirectoryResponse(Mapping):
        pass
    
    class EnableDirectoryRequest(Mapping):
        pass
    
    class EnableDirectoryResponse(Mapping):
        pass
    
    class GetAppliedSchemaVersionRequest(Mapping):
        pass
    
    class GetAppliedSchemaVersionResponse(Mapping):
        pass
    
    class GetDirectoryRequest(Mapping):
        pass
    
    class GetDirectoryResponse(Mapping):
        pass
    
    class GetFacetRequest(Mapping):
        pass
    
    class GetFacetResponse(Mapping):
        pass
    
    class GetLinkAttributesRequest(Mapping):
        pass
    
    class GetLinkAttributesResponse(Mapping):
        pass
    
    class AttributeName(object):
        pass
    
    class GetObjectAttributesRequest(Mapping):
        pass
    
    class GetObjectAttributesResponse(Mapping):
        pass
    
    class GetObjectInformationRequest(Mapping):
        pass
    
    class GetObjectInformationResponse(Mapping):
        pass
    
    class GetSchemaAsJsonRequest(Mapping):
        pass
    
    class GetSchemaAsJsonResponse(Mapping):
        pass
    
    class GetTypedLinkFacetInformationRequest(Mapping):
        pass
    
    class GetTypedLinkFacetInformationResponse(Mapping):
        pass
    
    class ListAppliedSchemaArnsRequest(Mapping):
        pass
    
    class ListAppliedSchemaArnsResponse(Mapping):
        pass
    
    class ListAttachedIndicesRequest(Mapping):
        pass
    
    class ListAttachedIndicesResponse(Mapping):
        pass
    
    class ListDevelopmentSchemaArnsRequest(Mapping):
        pass
    
    class ListDevelopmentSchemaArnsResponse(Mapping):
        pass
    
    class ListDirectoriesRequest(Mapping):
        pass
    
    class ListDirectoriesResponse(Mapping):
        pass
    
    class ListFacetAttributesRequest(Mapping):
        pass
    
    class ListFacetAttributesResponse(Mapping):
        pass
    
    class ListFacetNamesRequest(Mapping):
        pass
    
    class ListFacetNamesResponse(Mapping):
        pass
    
    class ListIncomingTypedLinksRequest(Mapping):
        pass
    
    class ListIncomingTypedLinksResponse(Mapping):
        pass
    
    class TypedLinkAttributeRange(Mapping):
        pass
    
    class ListIndexRequest(Mapping):
        pass
    
    class ListIndexResponse(Mapping):
        pass
    
    class ObjectAttributeRange(Mapping):
        pass
    
    class ListManagedSchemaArnsRequest(Mapping):
        pass
    
    class ListManagedSchemaArnsResponse(Mapping):
        pass
    
    class ListObjectAttributesRequest(Mapping):
        pass
    
    class ListObjectAttributesResponse(Mapping):
        pass
    
    class ListObjectChildrenRequest(Mapping):
        pass
    
    class ListObjectChildrenResponse(Mapping):
        pass
    
    class ListObjectParentPathsRequest(Mapping):
        pass
    
    class ListObjectParentPathsResponse(Mapping):
        pass
    
    class ListObjectParentsRequest(Mapping):
        pass
    
    class ListObjectParentsResponse(Mapping):
        pass
    
    class ListObjectPoliciesRequest(Mapping):
        pass
    
    class ListObjectPoliciesResponse(Mapping):
        pass
    
    class ListOutgoingTypedLinksRequest(Mapping):
        pass
    
    class ListOutgoingTypedLinksResponse(Mapping):
        pass
    
    class ListPolicyAttachmentsRequest(Mapping):
        pass
    
    class ListPolicyAttachmentsResponse(Mapping):
        pass
    
    class ListPublishedSchemaArnsRequest(Mapping):
        pass
    
    class ListPublishedSchemaArnsResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class ListTypedLinkFacetAttributesRequest(Mapping):
        pass
    
    class ListTypedLinkFacetAttributesResponse(Mapping):
        pass
    
    class ListTypedLinkFacetNamesRequest(Mapping):
        pass
    
    class ListTypedLinkFacetNamesResponse(Mapping):
        pass
    
    class LookupPolicyRequest(Mapping):
        pass
    
    class LookupPolicyResponse(Mapping):
        pass
    
    class PublishSchemaRequest(Mapping):
        pass
    
    class PublishSchemaResponse(Mapping):
        pass
    
    class PutSchemaFromJsonRequest(Mapping):
        pass
    
    class PutSchemaFromJsonResponse(Mapping):
        pass
    
    class RemoveFacetFromObjectRequest(Mapping):
        pass
    
    class RemoveFacetFromObjectResponse(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateFacetRequest(Mapping):
        pass
    
    class UpdateFacetResponse(Mapping):
        pass
    
    class FacetAttributeUpdate(Mapping):
        pass
    
    class UpdateLinkAttributesRequest(Mapping):
        pass
    
    class UpdateLinkAttributesResponse(Mapping):
        pass
    
    class LinkAttributeUpdate(Mapping):
        pass
    
    class UpdateObjectAttributesRequest(Mapping):
        pass
    
    class UpdateObjectAttributesResponse(Mapping):
        pass
    
    class ObjectAttributeUpdate(Mapping):
        pass
    
    class UpdateSchemaRequest(Mapping):
        pass
    
    class UpdateSchemaResponse(Mapping):
        pass
    
    class UpdateTypedLinkFacetRequest(Mapping):
        pass
    
    class UpdateTypedLinkFacetResponse(Mapping):
        pass
    
    class TypedLinkFacetAttributeUpdate(Mapping):
        pass
    
    class UpgradeAppliedSchemaRequest(Mapping):
        pass
    
    class UpgradeAppliedSchemaResponse(Mapping):
        pass
    
    class UpgradePublishedSchemaRequest(Mapping):
        pass
    
    class UpgradePublishedSchemaResponse(Mapping):
        pass
    
    def add_facet_to_object(self, ObjectReference: ObjectReference, SchemaFacet: SchemaFacet, DirectoryArn: str, ObjectAttributeList: List[AttributeKeyAndValue]=None) -> AddFacetToObjectResponse:
        r"""Adds a new <a>Facet</a> to an object. An object can have more than one facet applied on it.

        :param self:
        :param ObjectReference:  A reference to the object you are adding the specified facet to.:<br/>ObjectAttributeList:  Attributes on the facet that you are adding to the object.<br/>SchemaFacet:  Identifiers for the facet that you are adding to the object. See <a>SchemaFacet</a> for details.:<br/>DirectoryArn:  The Amazon Resource Name (ARN) that is associated with the <a>Directory</a> where the object resides. For more information, see <a>arns</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FacetName</i> The name of the facet.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SchemaArn</i> The ARN of the schema that contains the facet with no minor component. See <a>arns</a> and <a href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/schemas_inplaceschemaupgrade.html">In-Place Schema Upgrade</a> for a description of when to provide minor versions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Selector</i> A path selector supports easy selection of an object by the parent/child links leading to it from the directory root. Use the link names from each parent/child link to construct the path. Path selectors start with a slash (/) and link names are separated by slashes. For more information about paths, see <a href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_access_objects.html">Access Objects</a>. You can identify an object in one of the following ways: <ul> <li>  <i>$ObjectIdentifier</i> - An object identifier is an opaque string provided by Amazon Cloud Directory. When creating objects, the system will provide you with the identifier of the created object. An object’s identifier is immutable and no two objects will ever share the same object identifier </li> <li>  <i>/some/path</i> - Identifies the object based on path </li> <li>  <i>#SomeBatchReference</i> - Identifies the object in a batch call </li> </ul><br/>
        :return:         """
        pass

    def apply_schema(self, DirectoryArn: str, PublishedSchemaArn: str) -> ApplySchemaResponse:
        r"""Copies the input published schema, at the specified version, into the <a>Directory</a> with the same name and version as that of the published schema.

        :param self:
        :param DirectoryArn:  The Amazon Resource Name (ARN) that is associated with the <a>Directory</a> into which the schema is copied. For more information, see <a>arns</a>.<br/>PublishedSchemaArn:  Published schema Amazon Resource Name (ARN) that needs to be copied. For more information, see <a>arns</a>.<br/>
        :return: DirectoryArn:  The ARN that is associated with the <a>Directory</a>. For more information, see <a>arns</a>.<br/>AppliedSchemaArn:  The applied schema ARN that is associated with the copied schema in the <a>Directory</a>. You can use this ARN to describe the schema information applied on this directory. For more information, see <a>arns</a>.<br/>        """
        pass

    def attach_object(self, LinkName: str, ChildReference: ObjectReference, ParentReference: ObjectReference, DirectoryArn: str) -> AttachObjectResponse:
        r"""Attaches an existing object to another object. An object can be accessed in two ways: <ol> <li> Using the path </li> <li> Using <code>ObjectIdentifier</code>  </li> </ol>

        :param self:
        :param LinkName:  The link name with which the child object is attached to the parent.<br/>ChildReference:  The child object reference to be attached to the object.:<br/>ParentReference:  The parent object reference.:<br/>DirectoryArn:  Amazon Resource Name (ARN) that is associated with the <a>Directory</a> where both objects reside. For more information, see <a>arns</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Selector</i> A path selector supports easy selection of an object by the parent/child links leading to it from the directory root. Use the link names from each parent/child link to construct the path. Path selectors start with a slash (/) and link names are separated by slashes. For more information about paths, see <a href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_access_objects.html">Access Objects</a>. You can identify an object in one of the following ways: <ul> <li>  <i>$ObjectIdentifier</i> - An object identifier is an opaque string provided by Amazon Cloud Directory. When creating objects, the system will provide you with the identifier of the created object. An object’s identifier is immutable and no two objects will ever share the same object identifier </li> <li>  <i>/some/path</i> - Identifies the object based on path </li> <li>  <i>#SomeBatchReference</i> - Identifies the object in a batch call </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Selector</i> A path selector supports easy selection of an object by the parent/child links leading to it from the directory root. Use the link names from each parent/child link to construct the path. Path selectors start with a slash (/) and link names are separated by slashes. For more information about paths, see <a href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_access_objects.html">Access Objects</a>. You can identify an object in one of the following ways: <ul> <li>  <i>$ObjectIdentifier</i> - An object identifier is an opaque string provided by Amazon Cloud Directory. When creating objects, the system will provide you with the identifier of the created object. An object’s identifier is immutable and no two objects will ever share the same object identifier </li> <li>  <i>/some/path</i> - Identifies the object based on path </li> <li>  <i>#SomeBatchReference</i> - Identifies the object in a batch call </li> </ul><br/>
        :return: AttachedObjectIdentifier:  The attached <code>ObjectIdentifier</code>, which is the child <code>ObjectIdentifier</code>.<br/>        """
        pass

    def attach_policy(self, ObjectReference: ObjectReference, PolicyReference: ObjectReference, DirectoryArn: str) -> AttachPolicyResponse:
        r"""Attaches a policy object to a regular object. An object can have a limited number of attached policies.

        :param self:
        :param ObjectReference:  The reference that identifies the object to which the policy will be attached.:<br/>PolicyReference:  The reference that is associated with the policy object.:<br/>DirectoryArn:  The Amazon Resource Name (ARN) that is associated with the <a>Directory</a> where both objects reside. For more information, see <a>arns</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Selector</i> A path selector supports easy selection of an object by the parent/child links leading to it from the directory root. Use the link names from each parent/child link to construct the path. Path selectors start with a slash (/) and link names are separated by slashes. For more information about paths, see <a href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_access_objects.html">Access Objects</a>. You can identify an object in one of the following ways: <ul> <li>  <i>$ObjectIdentifier</i> - An object identifier is an opaque string provided by Amazon Cloud Directory. When creating objects, the system will provide you with the identifier of the created object. An object’s identifier is immutable and no two objects will ever share the same object identifier </li> <li>  <i>/some/path</i> - Identifies the object based on path </li> <li>  <i>#SomeBatchReference</i> - Identifies the object in a batch call </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Selector</i> A path selector supports easy selection of an object by the parent/child links leading to it from the directory root. Use the link names from each parent/child link to construct the path. Path selectors start with a slash (/) and link names are separated by slashes. For more information about paths, see <a href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_access_objects.html">Access Objects</a>. You can identify an object in one of the following ways: <ul> <li>  <i>$ObjectIdentifier</i> - An object identifier is an opaque string provided by Amazon Cloud Directory. When creating objects, the system will provide you with the identifier of the created object. An object’s identifier is immutable and no two objects will ever share the same object identifier </li> <li>  <i>/some/path</i> - Identifies the object based on path </li> <li>  <i>#SomeBatchReference</i> - Identifies the object in a batch call </li> </ul><br/>
        :return:         """
        pass

    def attach_to_index(self, TargetReference: ObjectReference, IndexReference: ObjectReference, DirectoryArn: str) -> AttachToIndexResponse:
        r"""Attaches the specified object to the specified index.

        :param self:
        :param TargetReference:  A reference to the object that you are attaching to the index.:<br/>IndexReference:  A reference to the index that you are attaching the object to.:<br/>DirectoryArn:  The Amazon Resource Name (ARN) of the directory where the object and index exist.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Selector</i> A path selector supports easy selection of an object by the parent/child links leading to it from the directory root. Use the link names from each parent/child link to construct the path. Path selectors start with a slash (/) and link names are separated by slashes. For more information about paths, see <a href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_access_objects.html">Access Objects</a>. You can identify an object in one of the following ways: <ul> <li>  <i>$ObjectIdentifier</i> - An object identifier is an opaque string provided by Amazon Cloud Directory. When creating objects, the system will provide you with the identifier of the created object. An object’s identifier is immutable and no two objects will ever share the same object identifier </li> <li>  <i>/some/path</i> - Identifies the object based on path </li> <li>  <i>#SomeBatchReference</i> - Identifies the object in a batch call </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Selector</i> A path selector supports easy selection of an object by the parent/child links leading to it from the directory root. Use the link names from each parent/child link to construct the path. Path selectors start with a slash (/) and link names are separated by slashes. For more information about paths, see <a href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_access_objects.html">Access Objects</a>. You can identify an object in one of the following ways: <ul> <li>  <i>$ObjectIdentifier</i> - An object identifier is an opaque string provided by Amazon Cloud Directory. When creating objects, the system will provide you with the identifier of the created object. An object’s identifier is immutable and no two objects will ever share the same object identifier </li> <li>  <i>/some/path</i> - Identifies the object based on path </li> <li>  <i>#SomeBatchReference</i> - Identifies the object in a batch call </li> </ul><br/>
        :return: AttachedObjectIdentifier:  The <code>ObjectIdentifier</code> of the object that was attached to the index.<br/>        """
        pass

    def attach_typed_link(self, Attributes: List[AttributeNameAndValue], TypedLinkFacet: TypedLinkSchemaAndFacetName, TargetObjectReference: ObjectReference, SourceObjectReference: ObjectReference, DirectoryArn: str) -> AttachTypedLinkResponse:
        r"""Attaches a typed link to a specified source and target object. For more information, see <a href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink">Typed Links</a>.

        :param self:
        :param Attributes:  A set of attributes that are associated with the typed link.<br/>TypedLinkFacet:  Identifies the typed link facet that is associated with the typed link.:<br/>TargetObjectReference:  Identifies the target object that the typed link will attach to.:<br/>SourceObjectReference:  Identifies the source object that the typed link will attach to.:<br/>DirectoryArn:  The Amazon Resource Name (ARN) of the directory where you want to attach the typed link.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Selector</i> A path selector supports easy selection of an object by the parent/child links leading to it from the directory root. Use the link names from each parent/child link to construct the path. Path selectors start with a slash (/) and link names are separated by slashes. For more information about paths, see <a href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_access_objects.html">Access Objects</a>. You can identify an object in one of the following ways: <ul> <li>  <i>$ObjectIdentifier</i> - An object identifier is an opaque string provided by Amazon Cloud Directory. When creating objects, the system will provide you with the identifier of the created object. An object’s identifier is immutable and no two objects will ever share the same object identifier </li> <li>  <i>/some/path</i> - Identifies the object based on path </li> <li>  <i>#SomeBatchReference</i> - Identifies the object in a batch call </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Selector</i> A path selector supports easy selection of an object by the parent/child links leading to it from the directory root. Use the link names from each parent/child link to construct the path. Path selectors start with a slash (/) and link names are separated by slashes. For more information about paths, see <a href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_access_objects.html">Access Objects</a>. You can identify an object in one of the following ways: <ul> <li>  <i>$ObjectIdentifier</i> - An object identifier is an opaque string provided by Amazon Cloud Directory. When creating objects, the system will provide you with the identifier of the created object. An object’s identifier is immutable and no two objects will ever share the same object identifier </li> <li>  <i>/some/path</i> - Identifies the object based on path </li> <li>  <i>#SomeBatchReference</i> - Identifies the object in a batch call </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TypedLinkName</i> The unique name of the typed link facet.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SchemaArn</i> The Amazon Resource Name (ARN) that is associated with the schema. For more information, see <a>arns</a>.<br/>
        :return: TypedLinkSpecifier:  Returns a typed link specifier as output.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IdentityAttributeValues</i> Identifies the attribute value to update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetObjectReference</i> Identifies the target object that the typed link will attach to.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TargetObjectReference</b>: Identifies the target object that the typed link will attach to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceObjectReference</i> Identifies the source object that the typed link will attach to.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SourceObjectReference</b>: Identifies the source object that the typed link will attach to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TypedLinkFacet</i> Identifies the typed link facet that is associated with the typed link.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TypedLinkFacet</b>: Identifies the typed link facet that is associated with the typed link.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TypedLinkName</i> The unique name of the typed link facet.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SchemaArn</i> The Amazon Resource Name (ARN) that is associated with the schema. For more information, see <a>arns</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Selector</i> A path selector supports easy selection of an object by the parent/child links leading to it from the directory root. Use the link names from each parent/child link to construct the path. Path selectors start with a slash (/) and link names are separated by slashes. For more information about paths, see <a href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_access_objects.html">Access Objects</a>. You can identify an object in one of the following ways: <ul> <li>  <i>$ObjectIdentifier</i> - An object identifier is an opaque string provided by Amazon Cloud Directory. When creating objects, the system will provide you with the identifier of the created object. An object’s identifier is immutable and no two objects will ever share the same object identifier </li> <li>  <i>/some/path</i> - Identifies the object based on path </li> <li>  <i>#SomeBatchReference</i> - Identifies the object in a batch call </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Selector</i> A path selector supports easy selection of an object by the parent/child links leading to it from the directory root. Use the link names from each parent/child link to construct the path. Path selectors start with a slash (/) and link names are separated by slashes. For more information about paths, see <a href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_access_objects.html">Access Objects</a>. You can identify an object in one of the following ways: <ul> <li>  <i>$ObjectIdentifier</i> - An object identifier is an opaque string provided by Amazon Cloud Directory. When creating objects, the system will provide you with the identifier of the created object. An object’s identifier is immutable and no two objects will ever share the same object identifier </li> <li>  <i>/some/path</i> - Identifies the object based on path </li> <li>  <i>#SomeBatchReference</i> - Identifies the object in a batch call </li> </ul><br/>        """
        pass

    def batch_read(self, Operations: List[BatchReadOperation], DirectoryArn: str, ConsistencyLevel: str=None) -> BatchReadResponse:
        r"""Performs all the read operations in a batch. 

        :param self:
        :param ConsistencyLevel:  Represents the manner and timing in which the successful write or update of an object is reflected in a subsequent read operation of that same object.<br/>Operations:  A list of operations that are part of the batch.<br/>DirectoryArn:  The Amazon Resource Name (ARN) that is associated with the <a>Directory</a>. For more information, see <a>arns</a>.<br/>
        :return: Responses:  A list of all the responses for each batch read.<br/>        """
        pass

    def batch_write(self, Operations: List[BatchWriteOperation], DirectoryArn: str) -> BatchWriteResponse:
        r"""Performs all the write operations in a batch. Either all the operations succeed or none.

        :param self:
        :param Operations:  A list of operations that are part of the batch.<br/>DirectoryArn:  The Amazon Resource Name (ARN) that is associated with the <a>Directory</a>. For more information, see <a>arns</a>.<br/>
        :return: Responses:  A list of all the responses for each batch write.<br/>        """
        pass

    def create_directory(self, SchemaArn: str, Name: str) -> CreateDirectoryResponse:
        r"""Creates a <a>Directory</a> by copying the published schema into the directory. A directory cannot be created without a schema. You can also quickly create a directory using a managed schema, called the <code>QuickStartSchema</code>. For more information, see <a href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/schemas_managed.html">Managed Schema</a> in the <i>Amazon Cloud Directory Developer Guide</i>.

        :param self:
        :param SchemaArn:  The Amazon Resource Name (ARN) of the published schema that will be copied into the data <a>Directory</a>. For more information, see <a>arns</a>.<br/>Name:  The name of the <a>Directory</a>. Should be unique per account, per region.<br/>
        :return: AppliedSchemaArn:  The ARN of the published schema in the <a>Directory</a>. Once a published schema is copied into the directory, it has its own ARN, which is referred to applied schema ARN. For more information, see <a>arns</a>.<br/>ObjectIdentifier:  The root object node of the created directory.<br/>Name:  The name of the <a>Directory</a>.<br/>DirectoryArn:  The ARN that is associated with the <a>Directory</a>. For more information, see <a>arns</a>.<br/>        """
        pass

    def create_facet(self, Name: str, SchemaArn: str, Attributes: List[FacetAttribute]=None, ObjectType: str=None, FacetStyle: str=None) -> CreateFacetResponse:
        r"""Creates a new <a>Facet</a> in a schema. Facet creation is allowed only in development or applied schemas.

        :param self:
        :param FacetStyle:  There are two different styles that you can define on any given facet, <code>Static</code> and <code>Dynamic</code>. For static facets, all attributes must be defined in the schema. For dynamic facets, attributes can be defined during data plane operations.<br/>ObjectType:  Specifies whether a given object created from this facet is of type node, leaf node, policy or index. <ul> <li> Node: Can have multiple children but one parent. </li> </ul> <ul> <li> Leaf node: Cannot have children but can have multiple parents. </li> </ul> <ul> <li> Policy: Allows you to store a policy document and policy type. For more information, see <a href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/key_concepts_directory.html#key_concepts_policies">Policies</a>. </li> </ul> <ul> <li> Index: Can be created with the Index API. </li> </ul><br/>Attributes:  The attributes that are associated with the <a>Facet</a>.<br/>Name:  The name of the <a>Facet</a>, which is unique for a given schema.<br/>SchemaArn:  The schema ARN in which the new <a>Facet</a> will be created. For more information, see <a>arns</a>.<br/>
        :return:         """
        pass

    def create_index(self, IsUnique: Bool, OrderedIndexedAttributeList: List[AttributeKey], DirectoryArn: str, ParentReference: ObjectReference=None, LinkName: str=None) -> CreateIndexResponse:
        r"""Creates an index object. See <a href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/indexing_search.html">Indexing and search</a> for more information.

        :param self:
        :param LinkName:  The name of the link between the parent object and the index object.<br/>ParentReference:  A reference to the parent object that contains the index object.:<br/>IsUnique:  Indicates whether the attribute that is being indexed has unique values or not.<br/>OrderedIndexedAttributeList:  Specifies the attributes that should be indexed on. Currently only a single attribute is supported.<br/>DirectoryArn:  The ARN of the directory where the index should be created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Selector</i> A path selector supports easy selection of an object by the parent/child links leading to it from the directory root. Use the link names from each parent/child link to construct the path. Path selectors start with a slash (/) and link names are separated by slashes. For more information about paths, see <a href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_access_objects.html">Access Objects</a>. You can identify an object in one of the following ways: <ul> <li>  <i>$ObjectIdentifier</i> - An object identifier is an opaque string provided by Amazon Cloud Directory. When creating objects, the system will provide you with the identifier of the created object. An object’s identifier is immutable and no two objects will ever share the same object identifier </li> <li>  <i>/some/path</i> - Identifies the object based on path </li> <li>  <i>#SomeBatchReference</i> - Identifies the object in a batch call </li> </ul><br/>
        :return: ObjectIdentifier:  The <code>ObjectIdentifier</code> of the index created by this operation.<br/>        """
        pass

    def create_object(self, SchemaFacets: List[SchemaFacet], DirectoryArn: str, ObjectAttributeList: List[AttributeKeyAndValue]=None, ParentReference: ObjectReference=None, LinkName: str=None) -> CreateObjectResponse:
        r"""Creates an object in a <a>Directory</a>. Additionally attaches the object to a parent, if a parent reference and <code>LinkName</code> is specified. An object is simply a collection of <a>Facet</a> attributes. You can also use this API call to create a policy object, if the facet from which you create the object is a policy facet. 

        :param self:
        :param LinkName:  The name of link that is used to attach this object to a parent.<br/>ParentReference:  If specified, the parent reference to which this object will be attached.:<br/>ObjectAttributeList:  The attribute map whose attribute ARN contains the key and attribute value as the map value.<br/>SchemaFacets:  A list of schema facets to be associated with the object. Do not provide minor version components. See <a>SchemaFacet</a> for details.<br/>DirectoryArn:  The Amazon Resource Name (ARN) that is associated with the <a>Directory</a> in which the object will be created. For more information, see <a>arns</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Selector</i> A path selector supports easy selection of an object by the parent/child links leading to it from the directory root. Use the link names from each parent/child link to construct the path. Path selectors start with a slash (/) and link names are separated by slashes. For more information about paths, see <a href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_access_objects.html">Access Objects</a>. You can identify an object in one of the following ways: <ul> <li>  <i>$ObjectIdentifier</i> - An object identifier is an opaque string provided by Amazon Cloud Directory. When creating objects, the system will provide you with the identifier of the created object. An object’s identifier is immutable and no two objects will ever share the same object identifier </li> <li>  <i>/some/path</i> - Identifies the object based on path </li> <li>  <i>#SomeBatchReference</i> - Identifies the object in a batch call </li> </ul><br/>
        :return: ObjectIdentifier:  The identifier that is associated with the object.<br/>        """
        pass

    def create_schema(self, Name: str) -> CreateSchemaResponse:
        r"""Creates a new schema in a development state. A schema can exist in three phases: <ul> <li>  <i>Development:</i> This is a mutable phase of the schema. All new schemas are in the development phase. Once the schema is finalized, it can be published. </li> <li>  <i>Published:</i> Published schemas are immutable and have a version associated with them. </li> <li>  <i>Applied:</i> Applied schemas are mutable in a way that allows you to add new schema facets. You can also add new, nonrequired attributes to existing schema facets. You can apply only published schemas to directories.  </li> </ul>

        :param self:
        :param Name:  The name that is associated with the schema. This is unique to each account and in each region.<br/>
        :return: SchemaArn:  The Amazon Resource Name (ARN) that is associated with the schema. For more information, see <a>arns</a>.<br/>        """
        pass

    def create_typed_link_facet(self, Facet: TypedLinkFacet, SchemaArn: str) -> CreateTypedLinkFacetResponse:
        r"""Creates a <a>TypedLinkFacet</a>. For more information, see <a href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink">Typed Links</a>.

        :param self:
        :param Facet:   <a>Facet</a> structure that is associated with the typed link facet.:<br/>SchemaArn:  The Amazon Resource Name (ARN) that is associated with the schema. For more information, see <a>arns</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IdentityAttributeOrder</i> The set of attributes that distinguish links made from this facet from each other, in the order of significance. Listing typed links can filter on the values of these attributes. See <a>ListOutgoingTypedLinks</a> and <a>ListIncomingTypedLinks</a> for details.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Attributes</i> A set of key-value pairs associated with the typed link. Typed link attributes are used when you have data values that are related to the link itself, and not to one of the two objects being linked. Identity attributes also serve to distinguish the link from others of the same type between the same objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The unique name of the typed link facet.<br/>
        :return:         """
        pass

    def delete_directory(self, DirectoryArn: str) -> DeleteDirectoryResponse:
        r"""Deletes a directory. Only disabled directories can be deleted. A deleted directory cannot be undone. Exercise extreme caution when deleting directories.

        :param self:
        :param DirectoryArn:  The ARN of the directory to delete.<br/>
        :return: DirectoryArn:  The ARN of the deleted directory.<br/>        """
        pass

    def delete_facet(self, Name: str, SchemaArn: str) -> DeleteFacetResponse:
        r"""Deletes a given <a>Facet</a>. All attributes and <a>Rule</a>s that are associated with the facet will be deleted. Only development schema facets are allowed deletion.

        :param self:
        :param Name:  The name of the facet to delete.<br/>SchemaArn:  The Amazon Resource Name (ARN) that is associated with the <a>Facet</a>. For more information, see <a>arns</a>.<br/>
        :return:         """
        pass

    def delete_object(self, ObjectReference: ObjectReference, DirectoryArn: str) -> DeleteObjectResponse:
        r"""Deletes an object and its associated attributes. Only objects with no children and no parents can be deleted. The maximum number of attributes that can be deleted during an object deletion is 30. For more information, see <a href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html">Amazon Cloud Directory Limits</a>.

        :param self:
        :param ObjectReference:  A reference that identifies the object.:<br/>DirectoryArn:  The Amazon Resource Name (ARN) that is associated with the <a>Directory</a> where the object resides. For more information, see <a>arns</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Selector</i> A path selector supports easy selection of an object by the parent/child links leading to it from the directory root. Use the link names from each parent/child link to construct the path. Path selectors start with a slash (/) and link names are separated by slashes. For more information about paths, see <a href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_access_objects.html">Access Objects</a>. You can identify an object in one of the following ways: <ul> <li>  <i>$ObjectIdentifier</i> - An object identifier is an opaque string provided by Amazon Cloud Directory. When creating objects, the system will provide you with the identifier of the created object. An object’s identifier is immutable and no two objects will ever share the same object identifier </li> <li>  <i>/some/path</i> - Identifies the object based on path </li> <li>  <i>#SomeBatchReference</i> - Identifies the object in a batch call </li> </ul><br/>
        :return:         """
        pass

    def delete_schema(self, SchemaArn: str) -> DeleteSchemaResponse:
        r"""Deletes a given schema. Schemas in a development and published state can only be deleted. 

        :param self:
        :param SchemaArn:  The Amazon Resource Name (ARN) of the development schema. For more information, see <a>arns</a>.<br/>
        :return: SchemaArn:  The input ARN that is returned as part of the response. For more information, see <a>arns</a>.<br/>        """
        pass

    def delete_typed_link_facet(self, Name: str, SchemaArn: str) -> DeleteTypedLinkFacetResponse:
        r"""Deletes a <a>TypedLinkFacet</a>. For more information, see <a href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink">Typed Links</a>.

        :param self:
        :param Name:  The unique name of the typed link facet.<br/>SchemaArn:  The Amazon Resource Name (ARN) that is associated with the schema. For more information, see <a>arns</a>.<br/>
        :return:         """
        pass

    def detach_from_index(self, TargetReference: ObjectReference, IndexReference: ObjectReference, DirectoryArn: str) -> DetachFromIndexResponse:
        r"""Detaches the specified object from the specified index.

        :param self:
        :param TargetReference:  A reference to the object being detached from the index.:<br/>IndexReference:  A reference to the index object.:<br/>DirectoryArn:  The Amazon Resource Name (ARN) of the directory the index and object exist in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Selector</i> A path selector supports easy selection of an object by the parent/child links leading to it from the directory root. Use the link names from each parent/child link to construct the path. Path selectors start with a slash (/) and link names are separated by slashes. For more information about paths, see <a href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_access_objects.html">Access Objects</a>. You can identify an object in one of the following ways: <ul> <li>  <i>$ObjectIdentifier</i> - An object identifier is an opaque string provided by Amazon Cloud Directory. When creating objects, the system will provide you with the identifier of the created object. An object’s identifier is immutable and no two objects will ever share the same object identifier </li> <li>  <i>/some/path</i> - Identifies the object based on path </li> <li>  <i>#SomeBatchReference</i> - Identifies the object in a batch call </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Selector</i> A path selector supports easy selection of an object by the parent/child links leading to it from the directory root. Use the link names from each parent/child link to construct the path. Path selectors start with a slash (/) and link names are separated by slashes. For more information about paths, see <a href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_access_objects.html">Access Objects</a>. You can identify an object in one of the following ways: <ul> <li>  <i>$ObjectIdentifier</i> - An object identifier is an opaque string provided by Amazon Cloud Directory. When creating objects, the system will provide you with the identifier of the created object. An object’s identifier is immutable and no two objects will ever share the same object identifier </li> <li>  <i>/some/path</i> - Identifies the object based on path </li> <li>  <i>#SomeBatchReference</i> - Identifies the object in a batch call </li> </ul><br/>
        :return: DetachedObjectIdentifier:  The <code>ObjectIdentifier</code> of the object that was detached from the index.<br/>        """
        pass

    def detach_object(self, LinkName: str, ParentReference: ObjectReference, DirectoryArn: str) -> DetachObjectResponse:
        r"""Detaches a given object from the parent object. The object that is to be detached from the parent is specified by the link name.

        :param self:
        :param LinkName:  The link name associated with the object that needs to be detached.<br/>ParentReference:  The parent reference from which the object with the specified link name is detached.:<br/>DirectoryArn:  The Amazon Resource Name (ARN) that is associated with the <a>Directory</a> where objects reside. For more information, see <a>arns</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Selector</i> A path selector supports easy selection of an object by the parent/child links leading to it from the directory root. Use the link names from each parent/child link to construct the path. Path selectors start with a slash (/) and link names are separated by slashes. For more information about paths, see <a href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_access_objects.html">Access Objects</a>. You can identify an object in one of the following ways: <ul> <li>  <i>$ObjectIdentifier</i> - An object identifier is an opaque string provided by Amazon Cloud Directory. When creating objects, the system will provide you with the identifier of the created object. An object’s identifier is immutable and no two objects will ever share the same object identifier </li> <li>  <i>/some/path</i> - Identifies the object based on path </li> <li>  <i>#SomeBatchReference</i> - Identifies the object in a batch call </li> </ul><br/>
        :return: DetachedObjectIdentifier:  The <code>ObjectIdentifier</code> that was detached from the object.<br/>        """
        pass

    def detach_policy(self, ObjectReference: ObjectReference, PolicyReference: ObjectReference, DirectoryArn: str) -> DetachPolicyResponse:
        r"""Detaches a policy from an object.

        :param self:
        :param ObjectReference:  Reference that identifies the object whose policy object will be detached.:<br/>PolicyReference:  Reference that identifies the policy object.:<br/>DirectoryArn:  The Amazon Resource Name (ARN) that is associated with the <a>Directory</a> where both objects reside. For more information, see <a>arns</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Selector</i> A path selector supports easy selection of an object by the parent/child links leading to it from the directory root. Use the link names from each parent/child link to construct the path. Path selectors start with a slash (/) and link names are separated by slashes. For more information about paths, see <a href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_access_objects.html">Access Objects</a>. You can identify an object in one of the following ways: <ul> <li>  <i>$ObjectIdentifier</i> - An object identifier is an opaque string provided by Amazon Cloud Directory. When creating objects, the system will provide you with the identifier of the created object. An object’s identifier is immutable and no two objects will ever share the same object identifier </li> <li>  <i>/some/path</i> - Identifies the object based on path </li> <li>  <i>#SomeBatchReference</i> - Identifies the object in a batch call </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Selector</i> A path selector supports easy selection of an object by the parent/child links leading to it from the directory root. Use the link names from each parent/child link to construct the path. Path selectors start with a slash (/) and link names are separated by slashes. For more information about paths, see <a href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_access_objects.html">Access Objects</a>. You can identify an object in one of the following ways: <ul> <li>  <i>$ObjectIdentifier</i> - An object identifier is an opaque string provided by Amazon Cloud Directory. When creating objects, the system will provide you with the identifier of the created object. An object’s identifier is immutable and no two objects will ever share the same object identifier </li> <li>  <i>/some/path</i> - Identifies the object based on path </li> <li>  <i>#SomeBatchReference</i> - Identifies the object in a batch call </li> </ul><br/>
        :return:         """
        pass

    def detach_typed_link(self, TypedLinkSpecifier: TypedLinkSpecifier, DirectoryArn: str):
        r"""Detaches a typed link from a specified source and target object. For more information, see <a href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink">Typed Links</a>.

        :param self:
        :param TypedLinkSpecifier:  Used to accept a typed link specifier as input.:<br/>DirectoryArn:  The Amazon Resource Name (ARN) of the directory where you want to detach the typed link.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IdentityAttributeValues</i> Identifies the attribute value to update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetObjectReference</i> Identifies the target object that the typed link will attach to.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TargetObjectReference</b>: Identifies the target object that the typed link will attach to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceObjectReference</i> Identifies the source object that the typed link will attach to.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SourceObjectReference</b>: Identifies the source object that the typed link will attach to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TypedLinkFacet</i> Identifies the typed link facet that is associated with the typed link.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TypedLinkFacet</b>: Identifies the typed link facet that is associated with the typed link.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TypedLinkName</i> The unique name of the typed link facet.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SchemaArn</i> The Amazon Resource Name (ARN) that is associated with the schema. For more information, see <a>arns</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Selector</i> A path selector supports easy selection of an object by the parent/child links leading to it from the directory root. Use the link names from each parent/child link to construct the path. Path selectors start with a slash (/) and link names are separated by slashes. For more information about paths, see <a href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_access_objects.html">Access Objects</a>. You can identify an object in one of the following ways: <ul> <li>  <i>$ObjectIdentifier</i> - An object identifier is an opaque string provided by Amazon Cloud Directory. When creating objects, the system will provide you with the identifier of the created object. An object’s identifier is immutable and no two objects will ever share the same object identifier </li> <li>  <i>/some/path</i> - Identifies the object based on path </li> <li>  <i>#SomeBatchReference</i> - Identifies the object in a batch call </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Selector</i> A path selector supports easy selection of an object by the parent/child links leading to it from the directory root. Use the link names from each parent/child link to construct the path. Path selectors start with a slash (/) and link names are separated by slashes. For more information about paths, see <a href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_access_objects.html">Access Objects</a>. You can identify an object in one of the following ways: <ul> <li>  <i>$ObjectIdentifier</i> - An object identifier is an opaque string provided by Amazon Cloud Directory. When creating objects, the system will provide you with the identifier of the created object. An object’s identifier is immutable and no two objects will ever share the same object identifier </li> <li>  <i>/some/path</i> - Identifies the object based on path </li> <li>  <i>#SomeBatchReference</i> - Identifies the object in a batch call </li> </ul><br/>
        :return:         """
        pass

    def disable_directory(self, DirectoryArn: str) -> DisableDirectoryResponse:
        r"""Disables the specified directory. Disabled directories cannot be read or written to. Only enabled directories can be disabled. Disabled directories may be reenabled.

        :param self:
        :param DirectoryArn:  The ARN of the directory to disable.<br/>
        :return: DirectoryArn:  The ARN of the directory that has been disabled.<br/>        """
        pass

    def enable_directory(self, DirectoryArn: str) -> EnableDirectoryResponse:
        r"""Enables the specified directory. Only disabled directories can be enabled. Once enabled, the directory can then be read and written to.

        :param self:
        :param DirectoryArn:  The ARN of the directory to enable.<br/>
        :return: DirectoryArn:  The ARN of the enabled directory.<br/>        """
        pass

    def get_applied_schema_version(self, SchemaArn: str) -> GetAppliedSchemaVersionResponse:
        r"""Returns current applied schema version ARN, including the minor version in use.

        :param self:
        :param SchemaArn:  The ARN of the applied schema.<br/>
        :return: AppliedSchemaArn:  Current applied schema ARN, including the minor version in use if one was provided.<br/>        """
        pass

    def get_directory(self, DirectoryArn: str) -> GetDirectoryResponse:
        r"""Retrieves metadata about a directory.

        :param self:
        :param DirectoryArn:  The ARN of the directory.<br/>
        :return: Directory:  Metadata about the directory.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDateTime</i> The date and time when the directory was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the directory. Can be either <code>Enabled</code>, <code>Disabled</code>, or <code>Deleted</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DirectoryArn</i> The Amazon Resource Name (ARN) that is associated with the directory. For more information, see <a>arns</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the directory.<br/>        """
        pass

    def get_facet(self, Name: str, SchemaArn: str) -> GetFacetResponse:
        r"""Gets details of the <a>Facet</a>, such as facet name, attributes, <a>Rule</a>s, or <code>ObjectType</code>. You can call this on all kinds of schema facets -- published, development, or applied.

        :param self:
        :param Name:  The name of the facet to retrieve.<br/>SchemaArn:  The Amazon Resource Name (ARN) that is associated with the <a>Facet</a>. For more information, see <a>arns</a>.<br/>
        :return: Facet:  The <a>Facet</a> structure that is associated with the facet.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FacetStyle</i> There are two different styles that you can define on any given facet, <code>Static</code> and <code>Dynamic</code>. For static facets, all attributes must be defined in the schema. For dynamic facets, attributes can be defined during data plane operations.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ObjectType</i> The object type that is associated with the facet. See <a>CreateFacetRequest$ObjectType</a> for more details.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the <a>Facet</a>.<br/>        """
        pass

    def get_link_attributes(self, AttributeNames: List[AttributeName], TypedLinkSpecifier: TypedLinkSpecifier, DirectoryArn: str, ConsistencyLevel: str=None) -> GetLinkAttributesResponse:
        r"""Retrieves attributes that are associated with a typed link.

        :param self:
        :param ConsistencyLevel:  The consistency level at which to retrieve the attributes on a typed link.<br/>AttributeNames:  A list of attribute names whose values will be retrieved.<br/>TypedLinkSpecifier:  Allows a typed link specifier to be accepted as input.:<br/>DirectoryArn:  The Amazon Resource Name (ARN) that is associated with the Directory where the typed link resides. For more information, see <a>arns</a> or <a href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink">Typed Links</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IdentityAttributeValues</i> Identifies the attribute value to update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetObjectReference</i> Identifies the target object that the typed link will attach to.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TargetObjectReference</b>: Identifies the target object that the typed link will attach to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceObjectReference</i> Identifies the source object that the typed link will attach to.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SourceObjectReference</b>: Identifies the source object that the typed link will attach to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TypedLinkFacet</i> Identifies the typed link facet that is associated with the typed link.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TypedLinkFacet</b>: Identifies the typed link facet that is associated with the typed link.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TypedLinkName</i> The unique name of the typed link facet.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SchemaArn</i> The Amazon Resource Name (ARN) that is associated with the schema. For more information, see <a>arns</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Selector</i> A path selector supports easy selection of an object by the parent/child links leading to it from the directory root. Use the link names from each parent/child link to construct the path. Path selectors start with a slash (/) and link names are separated by slashes. For more information about paths, see <a href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_access_objects.html">Access Objects</a>. You can identify an object in one of the following ways: <ul> <li>  <i>$ObjectIdentifier</i> - An object identifier is an opaque string provided by Amazon Cloud Directory. When creating objects, the system will provide you with the identifier of the created object. An object’s identifier is immutable and no two objects will ever share the same object identifier </li> <li>  <i>/some/path</i> - Identifies the object based on path </li> <li>  <i>#SomeBatchReference</i> - Identifies the object in a batch call </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Selector</i> A path selector supports easy selection of an object by the parent/child links leading to it from the directory root. Use the link names from each parent/child link to construct the path. Path selectors start with a slash (/) and link names are separated by slashes. For more information about paths, see <a href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_access_objects.html">Access Objects</a>. You can identify an object in one of the following ways: <ul> <li>  <i>$ObjectIdentifier</i> - An object identifier is an opaque string provided by Amazon Cloud Directory. When creating objects, the system will provide you with the identifier of the created object. An object’s identifier is immutable and no two objects will ever share the same object identifier </li> <li>  <i>/some/path</i> - Identifies the object based on path </li> <li>  <i>#SomeBatchReference</i> - Identifies the object in a batch call </li> </ul><br/>
        :return: Attributes:  The attributes that are associated with the typed link.<br/>        """
        pass

    def get_object_attributes(self, AttributeNames: List[AttributeName], SchemaFacet: SchemaFacet, ObjectReference: ObjectReference, DirectoryArn: str, ConsistencyLevel: str=None) -> GetObjectAttributesResponse:
        r"""Retrieves attributes within a facet that are associated with an object.

        :param self:
        :param AttributeNames:  List of attribute names whose values will be retrieved.<br/>SchemaFacet:  Identifier for the facet whose attributes will be retrieved. See <a>SchemaFacet</a> for details.:<br/>ConsistencyLevel:  The consistency level at which to retrieve the attributes on an object.<br/>ObjectReference:  Reference that identifies the object whose attributes will be retrieved.:<br/>DirectoryArn:  The Amazon Resource Name (ARN) that is associated with the <a>Directory</a> where the object resides.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Selector</i> A path selector supports easy selection of an object by the parent/child links leading to it from the directory root. Use the link names from each parent/child link to construct the path. Path selectors start with a slash (/) and link names are separated by slashes. For more information about paths, see <a href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_access_objects.html">Access Objects</a>. You can identify an object in one of the following ways: <ul> <li>  <i>$ObjectIdentifier</i> - An object identifier is an opaque string provided by Amazon Cloud Directory. When creating objects, the system will provide you with the identifier of the created object. An object’s identifier is immutable and no two objects will ever share the same object identifier </li> <li>  <i>/some/path</i> - Identifies the object based on path </li> <li>  <i>#SomeBatchReference</i> - Identifies the object in a batch call </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FacetName</i> The name of the facet.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SchemaArn</i> The ARN of the schema that contains the facet with no minor component. See <a>arns</a> and <a href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/schemas_inplaceschemaupgrade.html">In-Place Schema Upgrade</a> for a description of when to provide minor versions.<br/>
        :return: Attributes:  The attributes that are associated with the object.<br/>        """
        pass

    def get_object_information(self, ObjectReference: ObjectReference, DirectoryArn: str, ConsistencyLevel: str=None) -> GetObjectInformationResponse:
        r"""Retrieves metadata about an object.

        :param self:
        :param ConsistencyLevel:  The consistency level at which to retrieve the object information.<br/>ObjectReference:  A reference to the object.:<br/>DirectoryArn:  The ARN of the directory being retrieved.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Selector</i> A path selector supports easy selection of an object by the parent/child links leading to it from the directory root. Use the link names from each parent/child link to construct the path. Path selectors start with a slash (/) and link names are separated by slashes. For more information about paths, see <a href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_access_objects.html">Access Objects</a>. You can identify an object in one of the following ways: <ul> <li>  <i>$ObjectIdentifier</i> - An object identifier is an opaque string provided by Amazon Cloud Directory. When creating objects, the system will provide you with the identifier of the created object. An object’s identifier is immutable and no two objects will ever share the same object identifier </li> <li>  <i>/some/path</i> - Identifies the object based on path </li> <li>  <i>#SomeBatchReference</i> - Identifies the object in a batch call </li> </ul><br/>
        :return: ObjectIdentifier:  The <code>ObjectIdentifier</code> of the specified object.<br/>SchemaFacets:  The facets attached to the specified object. Although the response does not include minor version information, the most recently applied minor version of each Facet is in effect. See <a>GetAppliedSchemaVersion</a> for details.<br/>        """
        pass

    def get_schema_as_json(self, SchemaArn: str) -> GetSchemaAsJsonResponse:
        r"""Retrieves a JSON representation of the schema. See <a href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/schemas_jsonformat.html#schemas_json">JSON Schema Format</a> for more information.

        :param self:
        :param SchemaArn:  The ARN of the schema to retrieve.<br/>
        :return: Document:  The JSON representation of the schema document.<br/>Name:  The name of the retrieved schema.<br/>        """
        pass

    def get_typed_link_facet_information(self, Name: str, SchemaArn: str) -> GetTypedLinkFacetInformationResponse:
        r"""Returns the identity attribute order for a specific <a>TypedLinkFacet</a>. For more information, see <a href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink">Typed Links</a>.

        :param self:
        :param Name:  The unique name of the typed link facet.<br/>SchemaArn:  The Amazon Resource Name (ARN) that is associated with the schema. For more information, see <a>arns</a>.<br/>
        :return: IdentityAttributeOrder:  The order of identity attributes for the facet, from most significant to least significant. The ability to filter typed links considers the order that the attributes are defined on the typed link facet. When providing ranges to typed link selection, any inexact ranges must be specified at the end. Any attributes that do not have a range specified are presumed to match the entire range. Filters are interpreted in the order of the attributes on the typed link facet, not the order in which they are supplied to any API calls. For more information about identity attributes, see <a href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink">Typed Links</a>.<br/>        """
        pass

    def list_applied_schema_arns(self, DirectoryArn: str, SchemaArn: str=None, NextToken: str=None, MaxResults: int=None) -> ListAppliedSchemaArnsResponse:
        r"""Lists schema major versions applied to a directory. If <code>SchemaArn</code> is provided, lists the minor version.

        :param self:
        :param MaxResults:  The maximum number of results to retrieve.<br/>NextToken:  The pagination token.<br/>SchemaArn:  The response for <code>ListAppliedSchemaArns</code> when this parameter is used will list all minor version ARNs for a major version.<br/>DirectoryArn:  The ARN of the directory you are listing.<br/>
        :return: NextToken:  The pagination token.<br/>SchemaArns:  The ARNs of schemas that are applied to the directory.<br/>        """
        pass

    def list_attached_indices(self, TargetReference: ObjectReference, DirectoryArn: str, NextToken: str=None, MaxResults: int=None, ConsistencyLevel: str=None) -> ListAttachedIndicesResponse:
        r"""Lists indices attached to the specified object.

        :param self:
        :param ConsistencyLevel:  The consistency level to use for this operation.<br/>MaxResults:  The maximum number of results to retrieve.<br/>NextToken:  The pagination token.<br/>TargetReference:  A reference to the object that has indices attached.:<br/>DirectoryArn:  The ARN of the directory.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Selector</i> A path selector supports easy selection of an object by the parent/child links leading to it from the directory root. Use the link names from each parent/child link to construct the path. Path selectors start with a slash (/) and link names are separated by slashes. For more information about paths, see <a href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_access_objects.html">Access Objects</a>. You can identify an object in one of the following ways: <ul> <li>  <i>$ObjectIdentifier</i> - An object identifier is an opaque string provided by Amazon Cloud Directory. When creating objects, the system will provide you with the identifier of the created object. An object’s identifier is immutable and no two objects will ever share the same object identifier </li> <li>  <i>/some/path</i> - Identifies the object based on path </li> <li>  <i>#SomeBatchReference</i> - Identifies the object in a batch call </li> </ul><br/>
        :return: NextToken:  The pagination token.<br/>IndexAttachments:  The indices attached to the specified object.<br/>        """
        pass

    def list_development_schema_arns(self, NextToken: str=None, MaxResults: int=None) -> ListDevelopmentSchemaArnsResponse:
        r"""Retrieves each Amazon Resource Name (ARN) of schemas in the development state.

        :param self:
        :param MaxResults:  The maximum number of results to retrieve.<br/>NextToken:  The pagination token.<br/>
        :return: NextToken:  The pagination token.<br/>SchemaArns:  The ARNs of retrieved development schemas.<br/>        """
        pass

    def list_directories(self, NextToken: str=None, MaxResults: int=None, state: str=None) -> ListDirectoriesResponse:
        r"""Lists directories created within an account.

        :param self:
        :param state:  The state of the directories in the list. Can be either Enabled, Disabled, or Deleted.<br/>MaxResults:  The maximum number of results to retrieve.<br/>NextToken:  The pagination token.<br/>
        :return: NextToken:  The pagination token.<br/>Directories:  Lists all directories that are associated with your account in pagination fashion.<br/>        """
        pass

    def list_facet_attributes(self, Name: str, SchemaArn: str, NextToken: str=None, MaxResults: int=None) -> ListFacetAttributesResponse:
        r"""Retrieves attributes attached to the facet.

        :param self:
        :param MaxResults:  The maximum number of results to retrieve.<br/>NextToken:  The pagination token.<br/>Name:  The name of the facet whose attributes will be retrieved.<br/>SchemaArn:  The ARN of the schema where the facet resides.<br/>
        :return: NextToken:  The pagination token.<br/>Attributes:  The attributes attached to the facet.<br/>        """
        pass

    def list_facet_names(self, SchemaArn: str, NextToken: str=None, MaxResults: int=None) -> ListFacetNamesResponse:
        r"""Retrieves the names of facets that exist in a schema.

        :param self:
        :param MaxResults:  The maximum number of results to retrieve.<br/>NextToken:  The pagination token.<br/>SchemaArn:  The Amazon Resource Name (ARN) to retrieve facet names from.<br/>
        :return: NextToken:  The pagination token.<br/>FacetNames:  The names of facets that exist within the schema.<br/>        """
        pass

    def list_incoming_typed_links(self, ObjectReference: ObjectReference, DirectoryArn: str, FilterAttributeRanges: List[TypedLinkAttributeRange]=None, FilterTypedLink: TypedLinkSchemaAndFacetName=None, NextToken: str=None, MaxResults: int=None, ConsistencyLevel: str=None) -> ListIncomingTypedLinksResponse:
        r"""Returns a paginated list of all the incoming <a>TypedLinkSpecifier</a> information for an object. It also supports filtering by typed link facet and identity attributes. For more information, see <a href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink">Typed Links</a>.

        :param self:
        :param ConsistencyLevel:  The consistency level to execute the request at.<br/>MaxResults:  The maximum number of results to retrieve.<br/>NextToken:  The pagination token.<br/>FilterTypedLink:  Filters are interpreted in the order of the attributes on the typed link facet, not the order in which they are supplied to any API calls.:<br/>FilterAttributeRanges:  Provides range filters for multiple attributes. When providing ranges to typed link selection, any inexact ranges must be specified at the end. Any attributes that do not have a range specified are presumed to match the entire range.<br/>ObjectReference:  Reference that identifies the object whose attributes will be listed.:<br/>DirectoryArn:  The Amazon Resource Name (ARN) of the directory where you want to list the typed links.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Selector</i> A path selector supports easy selection of an object by the parent/child links leading to it from the directory root. Use the link names from each parent/child link to construct the path. Path selectors start with a slash (/) and link names are separated by slashes. For more information about paths, see <a href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_access_objects.html">Access Objects</a>. You can identify an object in one of the following ways: <ul> <li>  <i>$ObjectIdentifier</i> - An object identifier is an opaque string provided by Amazon Cloud Directory. When creating objects, the system will provide you with the identifier of the created object. An object’s identifier is immutable and no two objects will ever share the same object identifier </li> <li>  <i>/some/path</i> - Identifies the object based on path </li> <li>  <i>#SomeBatchReference</i> - Identifies the object in a batch call </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TypedLinkName</i> The unique name of the typed link facet.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SchemaArn</i> The Amazon Resource Name (ARN) that is associated with the schema. For more information, see <a>arns</a>.<br/>
        :return: NextToken:  The pagination token.<br/>LinkSpecifiers:  Returns one or more typed link specifiers as output.<br/>        """
        pass

    def list_index(self, IndexReference: ObjectReference, DirectoryArn: str, RangesOnIndexedValues: List[ObjectAttributeRange]=None, MaxResults: int=None, NextToken: str=None, ConsistencyLevel: str=None) -> ListIndexResponse:
        r"""Lists objects attached to the specified index.

        :param self:
        :param ConsistencyLevel:  The consistency level to execute the request at.<br/>NextToken:  The pagination token.<br/>MaxResults:  The maximum number of objects in a single page to retrieve from the index during a request. For more information, see <a href="http://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html">Amazon Cloud Directory Limits</a>.<br/>IndexReference:  The reference to the index to list.:<br/>RangesOnIndexedValues:  Specifies the ranges of indexed values that you want to query.<br/>DirectoryArn:  The ARN of the directory that the index exists in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Selector</i> A path selector supports easy selection of an object by the parent/child links leading to it from the directory root. Use the link names from each parent/child link to construct the path. Path selectors start with a slash (/) and link names are separated by slashes. For more information about paths, see <a href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_access_objects.html">Access Objects</a>. You can identify an object in one of the following ways: <ul> <li>  <i>$ObjectIdentifier</i> - An object identifier is an opaque string provided by Amazon Cloud Directory. When creating objects, the system will provide you with the identifier of the created object. An object’s identifier is immutable and no two objects will ever share the same object identifier </li> <li>  <i>/some/path</i> - Identifies the object based on path </li> <li>  <i>#SomeBatchReference</i> - Identifies the object in a batch call </li> </ul><br/>
        :return: NextToken:  The pagination token.<br/>IndexAttachments:  The objects and indexed values attached to the index.<br/>        """
        pass

    def list_managed_schema_arns(self, SchemaArn: str=None, NextToken: str=None, MaxResults: int=None) -> ListManagedSchemaArnsResponse:
        r"""Lists the major version families of each managed schema. If a major version ARN is provided as SchemaArn, the minor version revisions in that family are listed instead.

        :param self:
        :param MaxResults:  The maximum number of results to retrieve.<br/>NextToken:  The pagination token.<br/>SchemaArn:  The response for ListManagedSchemaArns. When this parameter is used, all minor version ARNs for a major version are listed.<br/>
        :return: NextToken:  The pagination token.<br/>SchemaArns:  The ARNs for all AWS managed schemas.<br/>        """
        pass

    def list_object_attributes(self, ObjectReference: ObjectReference, DirectoryArn: str, NextToken: str=None, MaxResults: int=None, ConsistencyLevel: str=None, FacetFilter: SchemaFacet=None) -> ListObjectAttributesResponse:
        r"""Lists all attributes that are associated with an object. 

        :param self:
        :param FacetFilter:  Used to filter the list of object attributes that are associated with a certain facet.:<br/>ConsistencyLevel:  Represents the manner and timing in which the successful write or update of an object is reflected in a subsequent read operation of that same object.<br/>MaxResults:  The maximum number of items to be retrieved in a single call. This is an approximate number.<br/>NextToken:  The pagination token.<br/>ObjectReference:  The reference that identifies the object whose attributes will be listed.:<br/>DirectoryArn:  The Amazon Resource Name (ARN) that is associated with the <a>Directory</a> where the object resides. For more information, see <a>arns</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Selector</i> A path selector supports easy selection of an object by the parent/child links leading to it from the directory root. Use the link names from each parent/child link to construct the path. Path selectors start with a slash (/) and link names are separated by slashes. For more information about paths, see <a href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_access_objects.html">Access Objects</a>. You can identify an object in one of the following ways: <ul> <li>  <i>$ObjectIdentifier</i> - An object identifier is an opaque string provided by Amazon Cloud Directory. When creating objects, the system will provide you with the identifier of the created object. An object’s identifier is immutable and no two objects will ever share the same object identifier </li> <li>  <i>/some/path</i> - Identifies the object based on path </li> <li>  <i>#SomeBatchReference</i> - Identifies the object in a batch call </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FacetName</i> The name of the facet.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SchemaArn</i> The ARN of the schema that contains the facet with no minor component. See <a>arns</a> and <a href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/schemas_inplaceschemaupgrade.html">In-Place Schema Upgrade</a> for a description of when to provide minor versions.<br/>
        :return: NextToken:  The pagination token.<br/>Attributes:  Attributes map that is associated with the object. <code>AttributeArn</code> is the key, and attribute value is the value.<br/>        """
        pass

    def list_object_children(self, ObjectReference: ObjectReference, DirectoryArn: str, NextToken: str=None, MaxResults: int=None, ConsistencyLevel: str=None) -> ListObjectChildrenResponse:
        r"""Returns a paginated list of child objects that are associated with a given object.

        :param self:
        :param ConsistencyLevel:  Represents the manner and timing in which the successful write or update of an object is reflected in a subsequent read operation of that same object.<br/>MaxResults:  The maximum number of items to be retrieved in a single call. This is an approximate number.<br/>NextToken:  The pagination token.<br/>ObjectReference:  The reference that identifies the object for which child objects are being listed.:<br/>DirectoryArn:  The Amazon Resource Name (ARN) that is associated with the <a>Directory</a> where the object resides. For more information, see <a>arns</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Selector</i> A path selector supports easy selection of an object by the parent/child links leading to it from the directory root. Use the link names from each parent/child link to construct the path. Path selectors start with a slash (/) and link names are separated by slashes. For more information about paths, see <a href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_access_objects.html">Access Objects</a>. You can identify an object in one of the following ways: <ul> <li>  <i>$ObjectIdentifier</i> - An object identifier is an opaque string provided by Amazon Cloud Directory. When creating objects, the system will provide you with the identifier of the created object. An object’s identifier is immutable and no two objects will ever share the same object identifier </li> <li>  <i>/some/path</i> - Identifies the object based on path </li> <li>  <i>#SomeBatchReference</i> - Identifies the object in a batch call </li> </ul><br/>
        :return: NextToken:  The pagination token.<br/>Children:  Children structure, which is a map with key as the <code>LinkName</code> and <code>ObjectIdentifier</code> as the value.<br/>        """
        pass

    def list_object_parent_paths(self, ObjectReference: ObjectReference, DirectoryArn: str, NextToken: str=None, MaxResults: int=None) -> ListObjectParentPathsResponse:
        r"""Retrieves all available parent paths for any object type such as node, leaf node, policy node, and index node objects. For more information about objects, see <a href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/key_concepts_directorystructure.html">Directory Structure</a>. Use this API to evaluate all parents for an object. The call returns all objects from the root of the directory up to the requested object. The API returns the number of paths based on user-defined <code>MaxResults</code>, in case there are multiple paths to the parent. The order of the paths and nodes returned is consistent among multiple API calls unless the objects are deleted or moved. Paths not leading to the directory root are ignored from the target object.

        :param self:
        :param MaxResults:  The maximum number of items to be retrieved in a single call. This is an approximate number.<br/>NextToken:  The pagination token.<br/>ObjectReference:  The reference that identifies the object whose parent paths are listed.:<br/>DirectoryArn:  The ARN of the directory to which the parent path applies.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Selector</i> A path selector supports easy selection of an object by the parent/child links leading to it from the directory root. Use the link names from each parent/child link to construct the path. Path selectors start with a slash (/) and link names are separated by slashes. For more information about paths, see <a href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_access_objects.html">Access Objects</a>. You can identify an object in one of the following ways: <ul> <li>  <i>$ObjectIdentifier</i> - An object identifier is an opaque string provided by Amazon Cloud Directory. When creating objects, the system will provide you with the identifier of the created object. An object’s identifier is immutable and no two objects will ever share the same object identifier </li> <li>  <i>/some/path</i> - Identifies the object based on path </li> <li>  <i>#SomeBatchReference</i> - Identifies the object in a batch call </li> </ul><br/>
        :return: NextToken:  The pagination token.<br/>PathToObjectIdentifiersList:  Returns the path to the <code>ObjectIdentifiers</code> that are associated with the directory.<br/>        """
        pass

    def list_object_parents(self, ObjectReference: ObjectReference, DirectoryArn: str, NextToken: str=None, MaxResults: int=None, ConsistencyLevel: str=None, IncludeAllLinksToEachParent: Bool=None) -> ListObjectParentsResponse:
        r"""Lists parent objects that are associated with a given object in pagination fashion.

        :param self:
        :param IncludeAllLinksToEachParent:  When set to True, returns all <a>ListObjectParentsResponse$ParentLinks</a>. There could be multiple links between a parent-child pair.<br/>ConsistencyLevel:  Represents the manner and timing in which the successful write or update of an object is reflected in a subsequent read operation of that same object.<br/>MaxResults:  The maximum number of items to be retrieved in a single call. This is an approximate number.<br/>NextToken:  The pagination token.<br/>ObjectReference:  The reference that identifies the object for which parent objects are being listed.:<br/>DirectoryArn:  The Amazon Resource Name (ARN) that is associated with the <a>Directory</a> where the object resides. For more information, see <a>arns</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Selector</i> A path selector supports easy selection of an object by the parent/child links leading to it from the directory root. Use the link names from each parent/child link to construct the path. Path selectors start with a slash (/) and link names are separated by slashes. For more information about paths, see <a href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_access_objects.html">Access Objects</a>. You can identify an object in one of the following ways: <ul> <li>  <i>$ObjectIdentifier</i> - An object identifier is an opaque string provided by Amazon Cloud Directory. When creating objects, the system will provide you with the identifier of the created object. An object’s identifier is immutable and no two objects will ever share the same object identifier </li> <li>  <i>/some/path</i> - Identifies the object based on path </li> <li>  <i>#SomeBatchReference</i> - Identifies the object in a batch call </li> </ul><br/>
        :return: ParentLinks:  Returns a list of parent reference and LinkName Tuples.<br/>NextToken:  The pagination token.<br/>Parents:  The parent structure, which is a map with key as the <code>ObjectIdentifier</code> and LinkName as the value.<br/>        """
        pass

    def list_object_policies(self, ObjectReference: ObjectReference, DirectoryArn: str, NextToken: str=None, MaxResults: int=None, ConsistencyLevel: str=None) -> ListObjectPoliciesResponse:
        r"""Returns policies attached to an object in pagination fashion.

        :param self:
        :param ConsistencyLevel:  Represents the manner and timing in which the successful write or update of an object is reflected in a subsequent read operation of that same object.<br/>MaxResults:  The maximum number of items to be retrieved in a single call. This is an approximate number.<br/>NextToken:  The pagination token.<br/>ObjectReference:  Reference that identifies the object for which policies will be listed.:<br/>DirectoryArn:  The Amazon Resource Name (ARN) that is associated with the <a>Directory</a> where objects reside. For more information, see <a>arns</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Selector</i> A path selector supports easy selection of an object by the parent/child links leading to it from the directory root. Use the link names from each parent/child link to construct the path. Path selectors start with a slash (/) and link names are separated by slashes. For more information about paths, see <a href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_access_objects.html">Access Objects</a>. You can identify an object in one of the following ways: <ul> <li>  <i>$ObjectIdentifier</i> - An object identifier is an opaque string provided by Amazon Cloud Directory. When creating objects, the system will provide you with the identifier of the created object. An object’s identifier is immutable and no two objects will ever share the same object identifier </li> <li>  <i>/some/path</i> - Identifies the object based on path </li> <li>  <i>#SomeBatchReference</i> - Identifies the object in a batch call </li> </ul><br/>
        :return: NextToken:  The pagination token.<br/>AttachedPolicyIds:  A list of policy <code>ObjectIdentifiers</code>, that are attached to the object.<br/>        """
        pass

    def list_outgoing_typed_links(self, ObjectReference: ObjectReference, DirectoryArn: str, FilterAttributeRanges: List[TypedLinkAttributeRange]=None, FilterTypedLink: TypedLinkSchemaAndFacetName=None, NextToken: str=None, MaxResults: int=None, ConsistencyLevel: str=None) -> ListOutgoingTypedLinksResponse:
        r"""Returns a paginated list of all the outgoing <a>TypedLinkSpecifier</a> information for an object. It also supports filtering by typed link facet and identity attributes. For more information, see <a href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink">Typed Links</a>.

        :param self:
        :param ConsistencyLevel:  The consistency level to execute the request at.<br/>MaxResults:  The maximum number of results to retrieve.<br/>NextToken:  The pagination token.<br/>FilterTypedLink:  Filters are interpreted in the order of the attributes defined on the typed link facet, not the order they are supplied to any API calls.:<br/>FilterAttributeRanges:  Provides range filters for multiple attributes. When providing ranges to typed link selection, any inexact ranges must be specified at the end. Any attributes that do not have a range specified are presumed to match the entire range.<br/>ObjectReference:  A reference that identifies the object whose attributes will be listed.:<br/>DirectoryArn:  The Amazon Resource Name (ARN) of the directory where you want to list the typed links.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Selector</i> A path selector supports easy selection of an object by the parent/child links leading to it from the directory root. Use the link names from each parent/child link to construct the path. Path selectors start with a slash (/) and link names are separated by slashes. For more information about paths, see <a href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_access_objects.html">Access Objects</a>. You can identify an object in one of the following ways: <ul> <li>  <i>$ObjectIdentifier</i> - An object identifier is an opaque string provided by Amazon Cloud Directory. When creating objects, the system will provide you with the identifier of the created object. An object’s identifier is immutable and no two objects will ever share the same object identifier </li> <li>  <i>/some/path</i> - Identifies the object based on path </li> <li>  <i>#SomeBatchReference</i> - Identifies the object in a batch call </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TypedLinkName</i> The unique name of the typed link facet.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SchemaArn</i> The Amazon Resource Name (ARN) that is associated with the schema. For more information, see <a>arns</a>.<br/>
        :return: NextToken:  The pagination token.<br/>TypedLinkSpecifiers:  Returns a typed link specifier as output.<br/>        """
        pass

    def list_policy_attachments(self, PolicyReference: ObjectReference, DirectoryArn: str, NextToken: str=None, MaxResults: int=None, ConsistencyLevel: str=None) -> ListPolicyAttachmentsResponse:
        r"""Returns all of the <code>ObjectIdentifiers</code> to which a given policy is attached.

        :param self:
        :param ConsistencyLevel:  Represents the manner and timing in which the successful write or update of an object is reflected in a subsequent read operation of that same object.<br/>MaxResults:  The maximum number of items to be retrieved in a single call. This is an approximate number.<br/>NextToken:  The pagination token.<br/>PolicyReference:  The reference that identifies the policy object.:<br/>DirectoryArn:  The Amazon Resource Name (ARN) that is associated with the <a>Directory</a> where objects reside. For more information, see <a>arns</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Selector</i> A path selector supports easy selection of an object by the parent/child links leading to it from the directory root. Use the link names from each parent/child link to construct the path. Path selectors start with a slash (/) and link names are separated by slashes. For more information about paths, see <a href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_access_objects.html">Access Objects</a>. You can identify an object in one of the following ways: <ul> <li>  <i>$ObjectIdentifier</i> - An object identifier is an opaque string provided by Amazon Cloud Directory. When creating objects, the system will provide you with the identifier of the created object. An object’s identifier is immutable and no two objects will ever share the same object identifier </li> <li>  <i>/some/path</i> - Identifies the object based on path </li> <li>  <i>#SomeBatchReference</i> - Identifies the object in a batch call </li> </ul><br/>
        :return: NextToken:  The pagination token.<br/>ObjectIdentifiers:  A list of <code>ObjectIdentifiers</code> to which the policy is attached.<br/>        """
        pass

    def list_published_schema_arns(self, SchemaArn: str=None, NextToken: str=None, MaxResults: int=None) -> ListPublishedSchemaArnsResponse:
        r"""Lists the major version families of each published schema. If a major version ARN is provided as <code>SchemaArn</code>, the minor version revisions in that family are listed instead.

        :param self:
        :param MaxResults:  The maximum number of results to retrieve.<br/>NextToken:  The pagination token.<br/>SchemaArn:  The response for <code>ListPublishedSchemaArns</code> when this parameter is used will list all minor version ARNs for a major version.<br/>
        :return: NextToken:  The pagination token.<br/>SchemaArns:  The ARNs of published schemas.<br/>        """
        pass

    def list_tags_for_resource(self, ResourceArn: str, NextToken: str=None, MaxResults: int=None) -> ListTagsForResourceResponse:
        r"""Returns tags for a resource. Tagging is currently supported only for directories with a limit of 50 tags per directory. All 50 tags are returned for a given directory with this API call.

        :param self:
        :param MaxResults:  The <code>MaxResults</code> parameter sets the maximum number of results returned in a single page. This is for future use and is not supported currently.<br/>NextToken:  The pagination token. This is for future use. Currently pagination is not supported for tagging.<br/>ResourceArn:  The Amazon Resource Name (ARN) of the resource. Tagging is only supported for directories.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is null when there are no more results to return.<br/>Tags:  A list of tag key value pairs that are associated with the response.<br/>        """
        pass

    def list_typed_link_facet_attributes(self, Name: str, SchemaArn: str, NextToken: str=None, MaxResults: int=None) -> ListTypedLinkFacetAttributesResponse:
        r"""Returns a paginated list of all attribute definitions for a particular <a>TypedLinkFacet</a>. For more information, see <a href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink">Typed Links</a>.

        :param self:
        :param MaxResults:  The maximum number of results to retrieve.<br/>NextToken:  The pagination token.<br/>Name:  The unique name of the typed link facet.<br/>SchemaArn:  The Amazon Resource Name (ARN) that is associated with the schema. For more information, see <a>arns</a>.<br/>
        :return: NextToken:  The pagination token.<br/>Attributes:  An ordered set of attributes associate with the typed link.<br/>        """
        pass

    def list_typed_link_facet_names(self, SchemaArn: str, NextToken: str=None, MaxResults: int=None) -> ListTypedLinkFacetNamesResponse:
        r"""Returns a paginated list of <code>TypedLink</code> facet names for a particular schema. For more information, see <a href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink">Typed Links</a>.

        :param self:
        :param MaxResults:  The maximum number of results to retrieve.<br/>NextToken:  The pagination token.<br/>SchemaArn:  The Amazon Resource Name (ARN) that is associated with the schema. For more information, see <a>arns</a>.<br/>
        :return: NextToken:  The pagination token.<br/>FacetNames:  The names of typed link facets that exist within the schema.<br/>        """
        pass

    def lookup_policy(self, ObjectReference: ObjectReference, DirectoryArn: str, NextToken: str=None, MaxResults: int=None) -> LookupPolicyResponse:
        r"""Lists all policies from the root of the <a>Directory</a> to the object specified. If there are no policies present, an empty list is returned. If policies are present, and if some objects don't have the policies attached, it returns the <code>ObjectIdentifier</code> for such objects. If policies are present, it returns <code>ObjectIdentifier</code>, <code>policyId</code>, and <code>policyType</code>. Paths that don't lead to the root from the target object are ignored. For more information, see <a href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/key_concepts_directory.html#key_concepts_policies">Policies</a>.

        :param self:
        :param MaxResults:  The maximum number of items to be retrieved in a single call. This is an approximate number.<br/>NextToken:  The token to request the next page of results.<br/>ObjectReference:  Reference that identifies the object whose policies will be looked up.:<br/>DirectoryArn:  The Amazon Resource Name (ARN) that is associated with the <a>Directory</a>. For more information, see <a>arns</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Selector</i> A path selector supports easy selection of an object by the parent/child links leading to it from the directory root. Use the link names from each parent/child link to construct the path. Path selectors start with a slash (/) and link names are separated by slashes. For more information about paths, see <a href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_access_objects.html">Access Objects</a>. You can identify an object in one of the following ways: <ul> <li>  <i>$ObjectIdentifier</i> - An object identifier is an opaque string provided by Amazon Cloud Directory. When creating objects, the system will provide you with the identifier of the created object. An object’s identifier is immutable and no two objects will ever share the same object identifier </li> <li>  <i>/some/path</i> - Identifies the object based on path </li> <li>  <i>#SomeBatchReference</i> - Identifies the object in a batch call </li> </ul><br/>
        :return: NextToken:  The pagination token.<br/>PolicyToPathList:  Provides list of path to policies. Policies contain <code>PolicyId</code>, <code>ObjectIdentifier</code>, and <code>PolicyType</code>. For more information, see <a href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/key_concepts_directory.html#key_concepts_policies">Policies</a>.<br/>        """
        pass

    def publish_schema(self, Version: str, DevelopmentSchemaArn: str, MinorVersion: str=None, Name: str=None) -> PublishSchemaResponse:
        r"""Publishes a development schema with a major version and a recommended minor version.

        :param self:
        :param Name:  The new name under which the schema will be published. If this is not provided, the development schema is considered.<br/>MinorVersion:  The minor version under which the schema will be published. This parameter is recommended. Schemas have both a major and minor version associated with them.<br/>Version:  The major version under which the schema will be published. Schemas have both a major and minor version associated with them.<br/>DevelopmentSchemaArn:  The Amazon Resource Name (ARN) that is associated with the development schema. For more information, see <a>arns</a>.<br/>
        :return: PublishedSchemaArn:  The ARN that is associated with the published schema. For more information, see <a>arns</a>.<br/>        """
        pass

    def put_schema_from_json(self, Document: str, SchemaArn: str) -> PutSchemaFromJsonResponse:
        r"""Allows a schema to be updated using JSON upload. Only available for development schemas. See <a href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/schemas_jsonformat.html#schemas_json">JSON Schema Format</a> for more information.

        :param self:
        :param Document:  The replacement JSON schema.<br/>SchemaArn:  The ARN of the schema to update.<br/>
        :return: Arn:  The ARN of the schema to update.<br/>        """
        pass

    def remove_facet_from_object(self, ObjectReference: ObjectReference, SchemaFacet: SchemaFacet, DirectoryArn: str) -> RemoveFacetFromObjectResponse:
        r"""Removes the specified facet from the specified object.

        :param self:
        :param ObjectReference:  A reference to the object to remove the facet from.:<br/>SchemaFacet:  The facet to remove. See <a>SchemaFacet</a> for details.:<br/>DirectoryArn:  The ARN of the directory in which the object resides.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FacetName</i> The name of the facet.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SchemaArn</i> The ARN of the schema that contains the facet with no minor component. See <a>arns</a> and <a href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/schemas_inplaceschemaupgrade.html">In-Place Schema Upgrade</a> for a description of when to provide minor versions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Selector</i> A path selector supports easy selection of an object by the parent/child links leading to it from the directory root. Use the link names from each parent/child link to construct the path. Path selectors start with a slash (/) and link names are separated by slashes. For more information about paths, see <a href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_access_objects.html">Access Objects</a>. You can identify an object in one of the following ways: <ul> <li>  <i>$ObjectIdentifier</i> - An object identifier is an opaque string provided by Amazon Cloud Directory. When creating objects, the system will provide you with the identifier of the created object. An object’s identifier is immutable and no two objects will ever share the same object identifier </li> <li>  <i>/some/path</i> - Identifies the object based on path </li> <li>  <i>#SomeBatchReference</i> - Identifies the object in a batch call </li> </ul><br/>
        :return:         """
        pass

    def tag_resource(self, Tags: List[Tag], ResourceArn: str) -> TagResourceResponse:
        r"""An API operation for adding tags to a resource.

        :param self:
        :param Tags:  A list of tag key-value pairs.<br/>ResourceArn:  The Amazon Resource Name (ARN) of the resource. Tagging is only supported for directories.<br/>
        :return:         """
        pass

    def untag_resource(self, TagKeys: List[TagKey], ResourceArn: str) -> UntagResourceResponse:
        r"""An API operation for removing tags from a resource.

        :param self:
        :param TagKeys:  Keys of the tag that need to be removed from the resource.<br/>ResourceArn:  The Amazon Resource Name (ARN) of the resource. Tagging is only supported for directories.<br/>
        :return:         """
        pass

    def update_facet(self, Name: str, SchemaArn: str, AttributeUpdates: List[FacetAttributeUpdate]=None, ObjectType: str=None) -> UpdateFacetResponse:
        r"""Does the following: <ol> <li> Adds new <code>Attributes</code>, <code>Rules</code>, or <code>ObjectTypes</code>. </li> <li> Updates existing <code>Attributes</code>, <code>Rules</code>, or <code>ObjectTypes</code>. </li> <li> Deletes existing <code>Attributes</code>, <code>Rules</code>, or <code>ObjectTypes</code>. </li> </ol>

        :param self:
        :param ObjectType:  The object type that is associated with the facet. See <a>CreateFacetRequest$ObjectType</a> for more details.<br/>AttributeUpdates:  List of attributes that need to be updated in a given schema <a>Facet</a>. Each attribute is followed by <code>AttributeAction</code>, which specifies the type of update operation to perform. <br/>Name:  The name of the facet.<br/>SchemaArn:  The Amazon Resource Name (ARN) that is associated with the <a>Facet</a>. For more information, see <a>arns</a>.<br/>
        :return:         """
        pass

    def update_link_attributes(self, AttributeUpdates: List[LinkAttributeUpdate], TypedLinkSpecifier: TypedLinkSpecifier, DirectoryArn: str) -> UpdateLinkAttributesResponse:
        r"""Updates a given typed link’s attributes. Attributes to be updated must not contribute to the typed link’s identity, as defined by its <code>IdentityAttributeOrder</code>.

        :param self:
        :param AttributeUpdates:  The attributes update structure.<br/>TypedLinkSpecifier:  Allows a typed link specifier to be accepted as input.:<br/>DirectoryArn:  The Amazon Resource Name (ARN) that is associated with the Directory where the updated typed link resides. For more information, see <a>arns</a> or <a href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink">Typed Links</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IdentityAttributeValues</i> Identifies the attribute value to update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetObjectReference</i> Identifies the target object that the typed link will attach to.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TargetObjectReference</b>: Identifies the target object that the typed link will attach to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceObjectReference</i> Identifies the source object that the typed link will attach to.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SourceObjectReference</b>: Identifies the source object that the typed link will attach to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TypedLinkFacet</i> Identifies the typed link facet that is associated with the typed link.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TypedLinkFacet</b>: Identifies the typed link facet that is associated with the typed link.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TypedLinkName</i> The unique name of the typed link facet.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SchemaArn</i> The Amazon Resource Name (ARN) that is associated with the schema. For more information, see <a>arns</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Selector</i> A path selector supports easy selection of an object by the parent/child links leading to it from the directory root. Use the link names from each parent/child link to construct the path. Path selectors start with a slash (/) and link names are separated by slashes. For more information about paths, see <a href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_access_objects.html">Access Objects</a>. You can identify an object in one of the following ways: <ul> <li>  <i>$ObjectIdentifier</i> - An object identifier is an opaque string provided by Amazon Cloud Directory. When creating objects, the system will provide you with the identifier of the created object. An object’s identifier is immutable and no two objects will ever share the same object identifier </li> <li>  <i>/some/path</i> - Identifies the object based on path </li> <li>  <i>#SomeBatchReference</i> - Identifies the object in a batch call </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Selector</i> A path selector supports easy selection of an object by the parent/child links leading to it from the directory root. Use the link names from each parent/child link to construct the path. Path selectors start with a slash (/) and link names are separated by slashes. For more information about paths, see <a href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_access_objects.html">Access Objects</a>. You can identify an object in one of the following ways: <ul> <li>  <i>$ObjectIdentifier</i> - An object identifier is an opaque string provided by Amazon Cloud Directory. When creating objects, the system will provide you with the identifier of the created object. An object’s identifier is immutable and no two objects will ever share the same object identifier </li> <li>  <i>/some/path</i> - Identifies the object based on path </li> <li>  <i>#SomeBatchReference</i> - Identifies the object in a batch call </li> </ul><br/>
        :return:         """
        pass

    def update_object_attributes(self, AttributeUpdates: List[ObjectAttributeUpdate], ObjectReference: ObjectReference, DirectoryArn: str) -> UpdateObjectAttributesResponse:
        r"""Updates a given object's attributes.

        :param self:
        :param AttributeUpdates:  The attributes update structure.<br/>ObjectReference:  The reference that identifies the object.:<br/>DirectoryArn:  The Amazon Resource Name (ARN) that is associated with the <a>Directory</a> where the object resides. For more information, see <a>arns</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Selector</i> A path selector supports easy selection of an object by the parent/child links leading to it from the directory root. Use the link names from each parent/child link to construct the path. Path selectors start with a slash (/) and link names are separated by slashes. For more information about paths, see <a href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_access_objects.html">Access Objects</a>. You can identify an object in one of the following ways: <ul> <li>  <i>$ObjectIdentifier</i> - An object identifier is an opaque string provided by Amazon Cloud Directory. When creating objects, the system will provide you with the identifier of the created object. An object’s identifier is immutable and no two objects will ever share the same object identifier </li> <li>  <i>/some/path</i> - Identifies the object based on path </li> <li>  <i>#SomeBatchReference</i> - Identifies the object in a batch call </li> </ul><br/>
        :return: ObjectIdentifier:  The <code>ObjectIdentifier</code> of the updated object.<br/>        """
        pass

    def update_schema(self, Name: str, SchemaArn: str) -> UpdateSchemaResponse:
        r"""Updates the schema name with a new name. Only development schema names can be updated.

        :param self:
        :param Name:  The name of the schema.<br/>SchemaArn:  The Amazon Resource Name (ARN) of the development schema. For more information, see <a>arns</a>.<br/>
        :return: SchemaArn:  The ARN that is associated with the updated schema. For more information, see <a>arns</a>.<br/>        """
        pass

    def update_typed_link_facet(self, IdentityAttributeOrder: List[AttributeName], AttributeUpdates: List[TypedLinkFacetAttributeUpdate], Name: str, SchemaArn: str) -> UpdateTypedLinkFacetResponse:
        r"""Updates a <a>TypedLinkFacet</a>. For more information, see <a href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink">Typed Links</a>.

        :param self:
        :param IdentityAttributeOrder:  The order of identity attributes for the facet, from most significant to least significant. The ability to filter typed links considers the order that the attributes are defined on the typed link facet. When providing ranges to a typed link selection, any inexact ranges must be specified at the end. Any attributes that do not have a range specified are presumed to match the entire range. Filters are interpreted in the order of the attributes on the typed link facet, not the order in which they are supplied to any API calls. For more information about identity attributes, see <a href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink">Typed Links</a>.<br/>AttributeUpdates:  Attributes update structure.<br/>Name:  The unique name of the typed link facet.<br/>SchemaArn:  The Amazon Resource Name (ARN) that is associated with the schema. For more information, see <a>arns</a>.<br/>
        :return:         """
        pass

    def upgrade_applied_schema(self, DirectoryArn: str, PublishedSchemaArn: str, DryRun: Bool=None) -> UpgradeAppliedSchemaResponse:
        r"""Upgrades a single directory in-place using the <code>PublishedSchemaArn</code> with schema updates found in <code>MinorVersion</code>. Backwards-compatible minor version upgrades are instantaneously available for readers on all objects in the directory. Note: This is a synchronous API call and upgrades only one schema on a given directory per call. To upgrade multiple directories from one schema, you would need to call this API on each directory.

        :param self:
        :param DryRun:  Used for testing whether the major version schemas are backward compatible or not. If schema compatibility fails, an exception would be thrown else the call would succeed but no changes will be saved. This parameter is optional.<br/>DirectoryArn:  The ARN for the directory to which the upgraded schema will be applied.<br/>PublishedSchemaArn:  The revision of the published schema to upgrade the directory to.<br/>
        :return: DirectoryArn:  The ARN of the directory that is returned as part of the response.<br/>UpgradedSchemaArn:  The ARN of the upgraded schema that is returned as part of the response.<br/>        """
        pass

    def upgrade_published_schema(self, MinorVersion: str, PublishedSchemaArn: str, DevelopmentSchemaArn: str, DryRun: Bool=None) -> UpgradePublishedSchemaResponse:
        r"""Upgrades a published schema under a new minor version revision using the current contents of <code>DevelopmentSchemaArn</code>.

        :param self:
        :param DryRun:  Used for testing whether the Development schema provided is backwards compatible, or not, with the publish schema provided by the user to be upgraded. If schema compatibility fails, an exception would be thrown else the call would succeed. This parameter is optional and defaults to false.<br/>MinorVersion:  Identifies the minor version of the published schema that will be created. This parameter is NOT optional.<br/>PublishedSchemaArn:  The ARN of the published schema to be upgraded.<br/>DevelopmentSchemaArn:  The ARN of the development schema with the changes used for the upgrade.<br/>
        :return: UpgradedSchemaArn:  The ARN of the upgraded schema that is returned as part of the response.<br/>        """
        pass





class CloudFormation(BaseClient):
    r"""<fullname>AWS CloudFormation</fullname> AWS CloudFormation allows you to create and manage AWS infrastructure deployments predictably and repeatedly. You can use AWS CloudFormation to leverage AWS products, such as Amazon Elastic Compute Cloud, Amazon Elastic Block Store, Amazon Simple Notification Service, Elastic Load Balancing, and Auto Scaling to build highly-reliable, highly scalable, cost-effective applications without creating or configuring the underlying AWS infrastructure. With AWS CloudFormation, you declare all of your resources and dependencies in a template file. The template defines a collection of resources as a single unit called a stack. AWS CloudFormation creates and deletes all member resources of the stack together and manages all dependencies between the resources for you. For more information about AWS CloudFormation, see the <a href="http://aws.amazon.com/cloudformation/">AWS CloudFormation Product Page</a>. Amazon CloudFormation makes use of other AWS products. If you need additional technical information about a specific AWS product, you can find the product's technical documentation at <a href="https://docs.aws.amazon.com/">docs.aws.amazon.com</a>."""

    class ChangeSetCreateCompleteWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_change_set` for valid parameters"""
            pass
    class StackCreateCompleteWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_stacks` for valid parameters"""
            pass
    class StackDeleteCompleteWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_stacks` for valid parameters"""
            pass
    class StackExistsWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_stacks` for valid parameters"""
            pass
    class StackImportCompleteWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_stacks` for valid parameters"""
            pass
    class StackRollbackCompleteWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_stacks` for valid parameters"""
            pass
    class StackUpdateCompleteWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_stacks` for valid parameters"""
            pass
    class TypeRegistrationCompleteWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_type_registration` for valid parameters"""
            pass


    class DescribeAccountLimitsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_account_limits` for valid parameters"""
            pass
    class DescribeChangeSetPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_change_set` for valid parameters"""
            pass
    class DescribeStackEventsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_stack_events` for valid parameters"""
            pass
    class DescribeStacksPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_stacks` for valid parameters"""
            pass
    class ListChangeSetsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_change_sets` for valid parameters"""
            pass
    class ListStackInstancesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_stack_instances` for valid parameters"""
            pass
    class ListStackResourcesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_stack_resources` for valid parameters"""
            pass
    class ListStacksPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_stacks` for valid parameters"""
            pass
    class ListStackSetOperationResultsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_stack_set_operation_results` for valid parameters"""
            pass
    class ListStackSetOperationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_stack_set_operations` for valid parameters"""
            pass
    class ListStackSetsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_stack_sets` for valid parameters"""
            pass
    class ListExportsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_exports` for valid parameters"""
            pass
    class ListImportsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_imports` for valid parameters"""
            pass
    class ListTypesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_types` for valid parameters"""
            pass


    class ActivateTypeInput(Mapping):
        pass
    
    class ActivateTypeOutput(Mapping):
        pass
    
    class AutoUpdate(object):
        pass
    
    class LoggingConfig(Mapping):
        pass
    
    class MajorVersion(object):
        pass
    
    class BatchDescribeTypeConfigurationsInput(Mapping):
        pass
    
    class BatchDescribeTypeConfigurationsOutput(Mapping):
        pass
    
    class TypeConfigurationIdentifier(Mapping):
        pass
    
    class CancelUpdateStackInput(Mapping):
        pass
    
    class ContinueUpdateRollbackInput(Mapping):
        pass
    
    class ContinueUpdateRollbackOutput(Mapping):
        pass
    
    class ResourceToSkip(object):
        pass
    
    class CreateChangeSetInput(Mapping):
        pass
    
    class CreateChangeSetOutput(Mapping):
        pass
    
    class UsePreviousTemplate(object):
        pass
    
    class Parameter(Mapping):
        pass
    
    class Capability(object):
        pass
    
    class ResourceType(object):
        pass
    
    class RollbackConfiguration(Mapping):
        pass
    
    class NotificationARN(object):
        pass
    
    class Tag(Mapping):
        pass
    
    class ResourceToImport(Mapping):
        pass
    
    class IncludeNestedStacks(object):
        pass
    
    class CreateStackInput(Mapping):
        pass
    
    class CreateStackOutput(Mapping):
        pass
    
    class DisableRollback(object):
        pass
    
    class EnableTerminationProtection(object):
        pass
    
    class CreateStackInstancesInput(Mapping):
        pass
    
    class CreateStackInstancesOutput(Mapping):
        pass
    
    class Account(object):
        pass
    
    class DeploymentTargets(Mapping):
        pass
    
    class Region(object):
        pass
    
    class StackSetOperationPreferences(Mapping):
        pass
    
    class CreateStackSetInput(Mapping):
        pass
    
    class CreateStackSetOutput(Mapping):
        pass
    
    class AutoDeployment(Mapping):
        pass
    
    class DeactivateTypeInput(Mapping):
        pass
    
    class DeactivateTypeOutput(Mapping):
        pass
    
    class DeleteChangeSetInput(Mapping):
        pass
    
    class DeleteChangeSetOutput(Mapping):
        pass
    
    class DeleteStackInput(Mapping):
        pass
    
    class LogicalResourceId(object):
        pass
    
    class DeleteStackInstancesInput(Mapping):
        pass
    
    class DeleteStackInstancesOutput(Mapping):
        pass
    
    class RetainStacks(object):
        pass
    
    class DeleteStackSetInput(Mapping):
        pass
    
    class DeleteStackSetOutput(Mapping):
        pass
    
    class DeregisterTypeInput(Mapping):
        pass
    
    class DeregisterTypeOutput(Mapping):
        pass
    
    class DescribeAccountLimitsInput(Mapping):
        pass
    
    class DescribeAccountLimitsOutput(Mapping):
        pass
    
    class DescribeChangeSetInput(Mapping):
        pass
    
    class DescribeChangeSetOutput(Mapping):
        pass
    
    class DescribePublisherInput(Mapping):
        pass
    
    class DescribePublisherOutput(Mapping):
        pass
    
    class DescribeStackDriftDetectionStatusInput(Mapping):
        pass
    
    class DescribeStackDriftDetectionStatusOutput(Mapping):
        pass
    
    class DescribeStackEventsInput(Mapping):
        pass
    
    class DescribeStackEventsOutput(Mapping):
        pass
    
    class DescribeStackInstanceInput(Mapping):
        pass
    
    class DescribeStackInstanceOutput(Mapping):
        pass
    
    class DescribeStackResourceInput(Mapping):
        pass
    
    class DescribeStackResourceOutput(Mapping):
        pass
    
    class DescribeStackResourceDriftsInput(Mapping):
        pass
    
    class DescribeStackResourceDriftsOutput(Mapping):
        pass
    
    class StackResourceDriftStatus(object):
        pass
    
    class DescribeStackResourcesInput(Mapping):
        pass
    
    class DescribeStackResourcesOutput(Mapping):
        pass
    
    class DescribeStackSetInput(Mapping):
        pass
    
    class DescribeStackSetOutput(Mapping):
        pass
    
    class DescribeStackSetOperationInput(Mapping):
        pass
    
    class DescribeStackSetOperationOutput(Mapping):
        pass
    
    class DescribeStacksInput(Mapping):
        pass
    
    class DescribeStacksOutput(Mapping):
        pass
    
    class DescribeTypeInput(Mapping):
        pass
    
    class DescribeTypeOutput(Mapping):
        pass
    
    class DescribeTypeRegistrationInput(Mapping):
        pass
    
    class DescribeTypeRegistrationOutput(Mapping):
        pass
    
    class DetectStackDriftInput(Mapping):
        pass
    
    class DetectStackDriftOutput(Mapping):
        pass
    
    class DetectStackResourceDriftInput(Mapping):
        pass
    
    class DetectStackResourceDriftOutput(Mapping):
        pass
    
    class DetectStackSetDriftInput(Mapping):
        pass
    
    class DetectStackSetDriftOutput(Mapping):
        pass
    
    class EstimateTemplateCostInput(Mapping):
        pass
    
    class EstimateTemplateCostOutput(Mapping):
        pass
    
    class ExecuteChangeSetInput(Mapping):
        pass
    
    class ExecuteChangeSetOutput(Mapping):
        pass
    
    class GetStackPolicyInput(Mapping):
        pass
    
    class GetStackPolicyOutput(Mapping):
        pass
    
    class GetTemplateInput(Mapping):
        pass
    
    class GetTemplateOutput(Mapping):
        pass
    
    class GetTemplateSummaryInput(Mapping):
        pass
    
    class GetTemplateSummaryOutput(Mapping):
        pass
    
    class ListChangeSetsInput(Mapping):
        pass
    
    class ListChangeSetsOutput(Mapping):
        pass
    
    class ListExportsInput(Mapping):
        pass
    
    class ListExportsOutput(Mapping):
        pass
    
    class ListImportsInput(Mapping):
        pass
    
    class ListImportsOutput(Mapping):
        pass
    
    class ListStackInstancesInput(Mapping):
        pass
    
    class ListStackInstancesOutput(Mapping):
        pass
    
    class StackInstanceFilter(Mapping):
        pass
    
    class ListStackResourcesInput(Mapping):
        pass
    
    class ListStackResourcesOutput(Mapping):
        pass
    
    class ListStackSetOperationResultsInput(Mapping):
        pass
    
    class ListStackSetOperationResultsOutput(Mapping):
        pass
    
    class ListStackSetOperationsInput(Mapping):
        pass
    
    class ListStackSetOperationsOutput(Mapping):
        pass
    
    class ListStackSetsInput(Mapping):
        pass
    
    class ListStackSetsOutput(Mapping):
        pass
    
    class ListStacksInput(Mapping):
        pass
    
    class ListStacksOutput(Mapping):
        pass
    
    class StackStatus(object):
        pass
    
    class ListTypeRegistrationsInput(Mapping):
        pass
    
    class ListTypeRegistrationsOutput(Mapping):
        pass
    
    class ListTypeVersionsInput(Mapping):
        pass
    
    class ListTypeVersionsOutput(Mapping):
        pass
    
    class ListTypesInput(Mapping):
        pass
    
    class ListTypesOutput(Mapping):
        pass
    
    class TypeFilters(Mapping):
        pass
    
    class PublishTypeInput(Mapping):
        pass
    
    class PublishTypeOutput(Mapping):
        pass
    
    class RecordHandlerProgressInput(Mapping):
        pass
    
    class RecordHandlerProgressOutput(Mapping):
        pass
    
    class RegisterPublisherInput(Mapping):
        pass
    
    class RegisterPublisherOutput(Mapping):
        pass
    
    class AcceptTermsAndConditions(object):
        pass
    
    class RegisterTypeInput(Mapping):
        pass
    
    class RegisterTypeOutput(Mapping):
        pass
    
    class SetStackPolicyInput(Mapping):
        pass
    
    class SetTypeConfigurationInput(Mapping):
        pass
    
    class SetTypeConfigurationOutput(Mapping):
        pass
    
    class SetTypeDefaultVersionInput(Mapping):
        pass
    
    class SetTypeDefaultVersionOutput(Mapping):
        pass
    
    class SignalResourceInput(Mapping):
        pass
    
    class StopStackSetOperationInput(Mapping):
        pass
    
    class StopStackSetOperationOutput(Mapping):
        pass
    
    class TestTypeInput(Mapping):
        pass
    
    class TestTypeOutput(Mapping):
        pass
    
    class UpdateStackInput(Mapping):
        pass
    
    class UpdateStackOutput(Mapping):
        pass
    
    class UpdateStackInstancesInput(Mapping):
        pass
    
    class UpdateStackInstancesOutput(Mapping):
        pass
    
    class UpdateStackSetInput(Mapping):
        pass
    
    class UpdateStackSetOutput(Mapping):
        pass
    
    class UpdateTerminationProtectionInput(Mapping):
        pass
    
    class UpdateTerminationProtectionOutput(Mapping):
        pass
    
    class ValidateTemplateInput(Mapping):
        pass
    
    class ValidateTemplateOutput(Mapping):
        pass
    
    def activate_type(self, Type: str=None, PublicTypeArn: str=None, PublisherId: str=None, TypeName: str=None, TypeNameAlias: str=None, AutoUpdate: AutoUpdate=None, LoggingConfig: LoggingConfig=None, ExecutionRoleArn: str=None, VersionBump: str=None, MajorVersion: MajorVersion=None) -> ActivateTypeOutput:
        r"""Activates a public third-party extension, making it available for use in stack templates. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-public.html">Using public extensions</a> in the <i>CloudFormation User Guide</i>. Once you have activated a public third-party extension in your account and region, use <a href="AWSCloudFormation/latest/APIReference/API_SetTypeConfiguration.html">SetTypeConfiguration</a> to specify configuration properties for the extension. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-register.html#registry-set-configuration">Configuring extensions at the account level</a> in the <i>CloudFormation User Guide</i>.

        :param self:
        :param MajorVersion:  The major version of this extension you want to activate, if multiple major versions are available. The default is the latest major version. CloudFormation uses the latest available <i>minor</i> version of the major version selected. You can specify <code>MajorVersion</code> or <code>VersionBump</code>, but not both.<br/>VersionBump:  Manually updates a previously-activated type to a new major or minor version, if available. You can also use this parameter to update the value of <code>AutoUpdate</code>. <ul> <li>  <code>MAJOR</code>: CloudFormation updates the extension to the newest major version, if one is available. </li> <li>  <code>MINOR</code>: CloudFormation updates the extension to the newest minor version, if one is available. </li> </ul><br/>ExecutionRoleArn:  The name of the IAM execution role to use to activate the extension.<br/>LoggingConfig:  Contains logging configuration information for an extension.:<br/>AutoUpdate:  Whether to automatically update the extension in this account and region when a new <i>minor</i> version is published by the extension publisher. Major versions released by the publisher must be manually updated. The default is <code>true</code>.<br/>TypeNameAlias:  An alias to assign to the public extension, in this account and region. If you specify an alias for the extension, CloudFormation treats the alias as the extension type name within this account and region. You must use the alias to refer to the extension in your templates, API calls, and CloudFormation console. An extension alias must be unique within a given account and region. You can activate the same public resource multiple times in the same account and region, using different type name aliases.<br/>TypeName:  The name of the extension. Conditional: You must specify <code>PublicTypeArn</code>, or <code>TypeName</code>, <code>Type</code>, and <code>PublisherId</code>.<br/>PublisherId:  The ID of the extension publisher. Conditional: You must specify <code>PublicTypeArn</code>, or <code>TypeName</code>, <code>Type</code>, and <code>PublisherId</code>.<br/>PublicTypeArn:  The Amazon Resource Number (ARN) of the public extension. Conditional: You must specify <code>PublicTypeArn</code>, or <code>TypeName</code>, <code>Type</code>, and <code>PublisherId</code>.<br/>Type:  The extension type. Conditional: You must specify <code>PublicTypeArn</code>, or <code>TypeName</code>, <code>Type</code>, and <code>PublisherId</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogGroupName</i> The Amazon CloudWatch log group to which CloudFormation sends error logging information when invoking the extension's handlers.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogRoleArn</i> The ARN of the role that CloudFormation should assume when sending log entries to CloudWatch logs.<br/>
        :return: Arn:  The Amazon Resource Number (ARN) of the activated extension, in this account and region.<br/>        """
        pass

    def batch_describe_type_configurations(self, TypeConfigurationIdentifiers: List[TypeConfigurationIdentifier]) -> BatchDescribeTypeConfigurationsOutput:
        r"""Returns configuration data for the specified CloudFormation extensions, from the CloudFormation registry for the account and region. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-register.html#registry-set-configuration">Configuring extensions at the account level</a> in the <i>CloudFormation User Guide</i>.

        :param self:
        :param TypeConfigurationIdentifiers:  The list of identifiers for the desired extension configurations.<br/>
        :return: TypeConfigurations:  A list of any of the specified extension configurations from the CloudFormation registry.<br/>UnprocessedTypeConfigurations:  A list of any of the specified extension configurations that CloudFormation could not process for any reason.<br/>Errors:  A list of information concerning any errors generated during the setting of the specified configurations.<br/>        """
        pass

    def cancel_update_stack(self, StackName: str, ClientRequestToken: str=None):
        r"""Cancels an update on the specified stack. If the call completes successfully, the stack rolls back the update and reverts to the previous stack configuration. <note> You can cancel only stacks that are in the UPDATE_IN_PROGRESS state. </note>

        :param self:
        :param ClientRequestToken:  A unique identifier for this <code>CancelUpdateStack</code> request. Specify this token if you plan to retry requests so that AWS CloudFormation knows that you're not attempting to cancel an update on a stack with the same name. You might retry <code>CancelUpdateStack</code> requests to ensure that AWS CloudFormation successfully received them.<br/>StackName:  The name or the unique stack ID that is associated with the stack.<br/>
        :return:         """
        pass

    def continue_update_rollback(self, StackName: str, RoleARN: str=None, ResourcesToSkip: List[ResourceToSkip]=None, ClientRequestToken: str=None) -> ContinueUpdateRollbackOutput:
        r"""For a specified stack that is in the <code>UPDATE_ROLLBACK_FAILED</code> state, continues rolling it back to the <code>UPDATE_ROLLBACK_COMPLETE</code> state. Depending on the cause of the failure, you can manually <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/troubleshooting.html#troubleshooting-errors-update-rollback-failed"> fix the error</a> and continue the rollback. By continuing the rollback, you can return your stack to a working state (the <code>UPDATE_ROLLBACK_COMPLETE</code> state), and then try to update the stack again. A stack goes into the <code>UPDATE_ROLLBACK_FAILED</code> state when AWS CloudFormation cannot roll back all changes after a failed stack update. For example, you might have a stack that is rolling back to an old database instance that was deleted outside of AWS CloudFormation. Because AWS CloudFormation doesn't know the database was deleted, it assumes that the database instance still exists and attempts to roll back to it, causing the update rollback to fail.

        :param self:
        :param ClientRequestToken:  A unique identifier for this <code>ContinueUpdateRollback</code> request. Specify this token if you plan to retry requests so that AWS CloudFormation knows that you're not attempting to continue the rollback to a stack with the same name. You might retry <code>ContinueUpdateRollback</code> requests to ensure that AWS CloudFormation successfully received them.<br/>ResourcesToSkip:  A list of the logical IDs of the resources that AWS CloudFormation skips during the continue update rollback operation. You can specify only resources that are in the <code>UPDATE_FAILED</code> state because a rollback failed. You can't specify resources that are in the <code>UPDATE_FAILED</code> state for other reasons, for example, because an update was cancelled. To check why a resource update failed, use the <a>DescribeStackResources</a> action, and view the resource status reason.  <important> Specify this property to skip rolling back resources that AWS CloudFormation can't successfully roll back. We recommend that you <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/troubleshooting.html#troubleshooting-errors-update-rollback-failed"> troubleshoot</a> resources before skipping them. AWS CloudFormation sets the status of the specified resources to <code>UPDATE_COMPLETE</code> and continues to roll back the stack. After the rollback is complete, the state of the skipped resources will be inconsistent with the state of the resources in the stack template. Before performing another stack update, you must update the stack or resources to be consistent with each other. If you don't, subsequent stack updates might fail, and the stack will become unrecoverable.  </important> Specify the minimum number of resources required to successfully roll back your stack. For example, a failed resource update might cause dependent resources to fail. In this case, it might not be necessary to skip the dependent resources.  To skip resources that are part of nested stacks, use the following format: <code>NestedStackName.ResourceLogicalID</code>. If you want to specify the logical ID of a stack resource (<code>Type: AWS::CloudFormation::Stack</code>) in the <code>ResourcesToSkip</code> list, then its corresponding embedded stack must be in one of the following states: <code>DELETE_IN_PROGRESS</code>, <code>DELETE_COMPLETE</code>, or <code>DELETE_FAILED</code>.  <note> Don't confuse a child stack's name with its corresponding logical ID defined in the parent stack. For an example of a continue update rollback operation with nested stacks, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-continueupdaterollback.html#nested-stacks">Using ResourcesToSkip to recover a nested stacks hierarchy</a>.  </note><br/>RoleARN:  The Amazon Resource Name (ARN) of an AWS Identity and Access Management (IAM) role that AWS CloudFormation assumes to roll back the stack. AWS CloudFormation uses the role's credentials to make calls on your behalf. AWS CloudFormation always uses this role for all future operations on the stack. As long as users have permission to operate on the stack, AWS CloudFormation uses this role even if the users don't have permission to pass it. Ensure that the role grants least privilege. If you don't specify a value, AWS CloudFormation uses the role that was previously associated with the stack. If no role is available, AWS CloudFormation uses a temporary session that is generated from your user credentials.<br/>StackName:  The name or the unique ID of the stack that you want to continue rolling back. <note> Don't specify the name of a nested stack (a stack that was created by using the <code>AWS::CloudFormation::Stack</code> resource). Instead, use this operation on the parent stack (the stack that contains the <code>AWS::CloudFormation::Stack</code> resource). </note><br/>
        :return:         """
        pass

    def create_change_set(self, ChangeSetName: str, StackName: str, TemplateBody: str=None, TemplateURL: str=None, UsePreviousTemplate: UsePreviousTemplate=None, Parameters: List[Parameter]=None, Capabilities: List[Capability]=None, ResourceTypes: List[ResourceType]=None, RoleARN: str=None, RollbackConfiguration: RollbackConfiguration=None, NotificationARNs: List[NotificationARN]=None, Tags: List[Tag]=None, ClientToken: str=None, Description: str=None, ChangeSetType: str=None, ResourcesToImport: List[ResourceToImport]=None, IncludeNestedStacks: IncludeNestedStacks=None) -> CreateChangeSetOutput:
        r"""Creates a list of changes that will be applied to a stack so that you can review the changes before executing them. You can create a change set for a stack that doesn't exist or an existing stack. If you create a change set for a stack that doesn't exist, the change set shows all of the resources that AWS CloudFormation will create. If you create a change set for an existing stack, AWS CloudFormation compares the stack's information with the information that you submit in the change set and lists the differences. Use change sets to understand which resources AWS CloudFormation will create or change, and how it will change resources in an existing stack, before you create or update a stack. To create a change set for a stack that doesn't exist, for the <code>ChangeSetType</code> parameter, specify <code>CREATE</code>. To create a change set for an existing stack, specify <code>UPDATE</code> for the <code>ChangeSetType</code> parameter. To create a change set for an import operation, specify <code>IMPORT</code> for the <code>ChangeSetType</code> parameter. After the <code>CreateChangeSet</code> call successfully completes, AWS CloudFormation starts creating the change set. To check the status of the change set or to review it, use the <a>DescribeChangeSet</a> action. When you are satisfied with the changes the change set will make, execute the change set by using the <a>ExecuteChangeSet</a> action. AWS CloudFormation doesn't make changes until you execute the change set. To create a change set for the entire stack hierachy, set <code>IncludeNestedStacks</code> to <code>True</code>.

        :param self:
        :param IncludeNestedStacks:  Creates a change set for the all nested stacks specified in the template. The default behavior of this action is set to <code>False</code>. To include nested sets in a change set, specify <code>True</code>.<br/>ResourcesToImport:  The resources to import into your stack.<br/>ChangeSetType:  The type of change set operation. To create a change set for a new stack, specify <code>CREATE</code>. To create a change set for an existing stack, specify <code>UPDATE</code>. To create a change set for an import operation, specify <code>IMPORT</code>. If you create a change set for a new stack, AWS Cloudformation creates a stack with a unique stack ID, but no template or resources. The stack will be in the <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-describing-stacks.html#d0e11995"> <code>REVIEW_IN_PROGRESS</code> </a> state until you execute the change set. By default, AWS CloudFormation specifies <code>UPDATE</code>. You can't use the <code>UPDATE</code> type to create a change set for a new stack or the <code>CREATE</code> type to create a change set for an existing stack.<br/>Description:  A description to help you identify this change set.<br/>ClientToken:  A unique identifier for this <code>CreateChangeSet</code> request. Specify this token if you plan to retry requests so that AWS CloudFormation knows that you're not attempting to create another change set with the same name. You might retry <code>CreateChangeSet</code> requests to ensure that AWS CloudFormation successfully received them.<br/>ChangeSetName:  The name of the change set. The name must be unique among all change sets that are associated with the specified stack. A change set name can contain only alphanumeric, case sensitive characters and hyphens. It must start with an alphabetic character and cannot exceed 128 characters.<br/>Tags:  Key-value pairs to associate with this stack. AWS CloudFormation also propagates these tags to resources in the stack. You can specify a maximum of 50 tags.<br/>NotificationARNs:  The Amazon Resource Names (ARNs) of Amazon Simple Notification Service (Amazon SNS) topics that AWS CloudFormation associates with the stack. To remove all associated notification topics, specify an empty list.<br/>RollbackConfiguration:  The rollback triggers for AWS CloudFormation to monitor during stack creation and updating operations, and for the specified monitoring period afterwards.:<br/>RoleARN:  The Amazon Resource Name (ARN) of an AWS Identity and Access Management (IAM) role that AWS CloudFormation assumes when executing the change set. AWS CloudFormation uses the role's credentials to make calls on your behalf. AWS CloudFormation uses this role for all future operations on the stack. As long as users have permission to operate on the stack, AWS CloudFormation uses this role even if the users don't have permission to pass it. Ensure that the role grants least privilege. If you don't specify a value, AWS CloudFormation uses the role that was previously associated with the stack. If no role is available, AWS CloudFormation uses a temporary session that is generated from your user credentials.<br/>ResourceTypes:  The template resource types that you have permissions to work with if you execute this change set, such as <code>AWS::EC2::Instance</code>, <code>AWS::EC2::*</code>, or <code>Custom::MyCustomInstance</code>. If the list of resource types doesn't include a resource type that you're updating, the stack update fails. By default, AWS CloudFormation grants permissions to all resource types. AWS Identity and Access Management (IAM) uses this parameter for condition keys in IAM policies for AWS CloudFormation. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html">Controlling Access with AWS Identity and Access Management</a> in the AWS CloudFormation User Guide.<br/>Capabilities:  In some cases, you must explicitly acknowledge that your stack template contains certain capabilities in order for AWS CloudFormation to create the stack. <ul> <li>  <code>CAPABILITY_IAM</code> and <code>CAPABILITY_NAMED_IAM</code>  Some stack templates might include resources that can affect permissions in your AWS account; for example, by creating new AWS Identity and Access Management (IAM) users. For those stacks, you must explicitly acknowledge this by specifying one of these capabilities. The following IAM resources require you to specify either the <code>CAPABILITY_IAM</code> or <code>CAPABILITY_NAMED_IAM</code> capability. <ul> <li> If you have IAM resources, you can specify either capability.  </li> <li> If you have IAM resources with custom names, you <i>must</i> specify <code>CAPABILITY_NAMED_IAM</code>.  </li> <li> If you don't specify either of these capabilities, AWS CloudFormation returns an <code>InsufficientCapabilities</code> error. </li> </ul> If your stack template contains these resources, we recommend that you review all permissions associated with them and edit their permissions if necessary. <ul> <li>  <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html"> AWS::IAM::AccessKey</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html"> AWS::IAM::Group</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html"> AWS::IAM::InstanceProfile</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html"> AWS::IAM::Policy</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html"> AWS::IAM::Role</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html"> AWS::IAM::User</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html"> AWS::IAM::UserToGroupAddition</a>  </li> </ul> For more information, see <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities">Acknowledging IAM Resources in AWS CloudFormation Templates</a>. </li> <li>  <code>CAPABILITY_AUTO_EXPAND</code>  Some template contain macros. Macros perform custom processing on templates; this can include simple actions like find-and-replace operations, all the way to extensive transformations of entire templates. Because of this, users typically create a change set from the processed template, so that they can review the changes resulting from the macros before actually creating the stack. If your stack template contains one or more macros, and you choose to create a stack directly from the processed template, without first reviewing the resulting changes in a change set, you must acknowledge this capability. This includes the <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/create-reusable-transform-function-snippets-and-add-to-your-template-with-aws-include-transform.html">AWS::Include</a> and <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-serverless.html">AWS::Serverless</a> transforms, which are macros hosted by AWS CloudFormation. <note> This capacity does not apply to creating change sets, and specifying it when creating change sets has no effect. If you want to create a stack from a stack template that contains macros <i>and</i> nested stacks, you must create or update the stack directly from the template using the <a>CreateStack</a> or <a>UpdateStack</a> action, and specifying this capability. </note> For more information on macros, see <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html">Using AWS CloudFormation Macros to Perform Custom Processing on Templates</a>. </li> </ul><br/>Parameters:  A list of <code>Parameter</code> structures that specify input parameters for the change set. For more information, see the <a>Parameter</a> data type.<br/>UsePreviousTemplate:  Whether to reuse the template that is associated with the stack to create the change set.<br/>TemplateURL:  The location of the file that contains the revised template. The URL must point to a template (max size: 460,800 bytes) that is located in an S3 bucket or a Systems Manager document. AWS CloudFormation generates the change set by comparing this template with the stack that you specified. Conditional: You must specify only <code>TemplateBody</code> or <code>TemplateURL</code>.<br/>TemplateBody:  A structure that contains the body of the revised template, with a minimum length of 1 byte and a maximum length of 51,200 bytes. AWS CloudFormation generates the change set by comparing this template with the template of the stack that you specified. Conditional: You must specify only <code>TemplateBody</code> or <code>TemplateURL</code>.<br/>StackName:  The name or the unique ID of the stack for which you are creating a change set. AWS CloudFormation generates the change set by comparing this stack's information with the information that you submit, such as a modified template or different parameter input values.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MonitoringTimeInMinutes</i> The amount of time, in minutes, during which CloudFormation should monitor all the rollback triggers after the stack creation or update operation deploys all necessary resources. The default is 0 minutes. If you specify a monitoring period but do not specify any rollback triggers, CloudFormation still waits the specified period of time before cleaning up old resources after update operations. You can use this monitoring period to perform any manual stack validation desired, and manually cancel the stack creation or update (using <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_CancelUpdateStack.html">CancelUpdateStack</a>, for example) as necessary. If you specify 0 for this parameter, CloudFormation still monitors the specified rollback triggers during stack creation and update operations. Then, for update operations, it begins disposing of old resources immediately once the operation completes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RollbackTriggers</i> The triggers to monitor during stack creation or update actions.  By default, AWS CloudFormation saves the rollback triggers specified for a stack and applies them to any subsequent update operations for the stack, unless you specify otherwise. If you do specify rollback triggers for this parameter, those triggers replace any list of triggers previously specified for the stack. This means: <ul> <li> To use the rollback triggers previously specified for this stack, if any, don't specify this parameter. </li> <li> To specify new or updated rollback triggers, you must specify <i>all</i> the triggers that you want used for this stack, even triggers you've specifed before (for example, when creating the stack or during a previous stack update). Any triggers that you don't include in the updated list of triggers are no longer applied to the stack. </li> <li> To remove all currently specified triggers, specify an empty list for this parameter. </li> </ul> If a specified trigger is missing, the entire stack operation fails and is rolled back. <br/>
        :return: StackId:  The unique ID of the stack.<br/>Id:  The Amazon Resource Name (ARN) of the change set.<br/>        """
        pass

    def create_stack(self, StackName: str, TemplateBody: str=None, TemplateURL: str=None, Parameters: List[Parameter]=None, DisableRollback: DisableRollback=None, RollbackConfiguration: RollbackConfiguration=None, TimeoutInMinutes: int=None, NotificationARNs: List[NotificationARN]=None, Capabilities: List[Capability]=None, ResourceTypes: List[ResourceType]=None, RoleARN: str=None, OnFailure: str=None, StackPolicyBody: str=None, StackPolicyURL: str=None, Tags: List[Tag]=None, ClientRequestToken: str=None, EnableTerminationProtection: EnableTerminationProtection=None) -> CreateStackOutput:
        r"""Creates a stack as specified in the template. After the call completes successfully, the stack creation starts. You can check the status of the stack via the <a>DescribeStacks</a> API.

        :param self:
        :param EnableTerminationProtection:  Whether to enable termination protection on the specified stack. If a user attempts to delete a stack with termination protection enabled, the operation fails and the stack remains unchanged. For more information, see <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-protect-stacks.html">Protecting a Stack From Being Deleted</a> in the <i>AWS CloudFormation User Guide</i>. Termination protection is disabled on stacks by default.   For <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html">nested stacks</a>, termination protection is set on the root stack and cannot be changed directly on the nested stack.<br/>ClientRequestToken:  A unique identifier for this <code>CreateStack</code> request. Specify this token if you plan to retry requests so that AWS CloudFormation knows that you're not attempting to create a stack with the same name. You might retry <code>CreateStack</code> requests to ensure that AWS CloudFormation successfully received them. All events triggered by a given stack operation are assigned the same client request token, which you can use to track operations. For example, if you execute a <code>CreateStack</code> operation with the token <code>token1</code>, then all the <code>StackEvents</code> generated by that operation will have <code>ClientRequestToken</code> set as <code>token1</code>. In the console, stack operations display the client request token on the Events tab. Stack operations that are initiated from the console use the token format <i>Console-StackOperation-ID</i>, which helps you easily identify the stack operation . For example, if you create a stack using the console, each stack event would be assigned the same token in the following format: <code>Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002</code>. <br/>Tags:  Key-value pairs to associate with this stack. AWS CloudFormation also propagates these tags to the resources created in the stack. A maximum number of 50 tags can be specified.<br/>StackPolicyURL:  Location of a file containing the stack policy. The URL must point to a policy (maximum size: 16 KB) located in an S3 bucket in the same Region as the stack. You can specify either the <code>StackPolicyBody</code> or the <code>StackPolicyURL</code> parameter, but not both.<br/>StackPolicyBody:  Structure containing the stack policy body. For more information, go to <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/protect-stack-resources.html"> Prevent Updates to Stack Resources</a> in the <i>AWS CloudFormation User Guide</i>. You can specify either the <code>StackPolicyBody</code> or the <code>StackPolicyURL</code> parameter, but not both.<br/>OnFailure:  Determines what action will be taken if stack creation fails. This must be one of: DO_NOTHING, ROLLBACK, or DELETE. You can specify either <code>OnFailure</code> or <code>DisableRollback</code>, but not both. Default: <code>ROLLBACK</code> <br/>RoleARN:  The Amazon Resource Name (ARN) of an AWS Identity and Access Management (IAM) role that AWS CloudFormation assumes to create the stack. AWS CloudFormation uses the role's credentials to make calls on your behalf. AWS CloudFormation always uses this role for all future operations on the stack. As long as users have permission to operate on the stack, AWS CloudFormation uses this role even if the users don't have permission to pass it. Ensure that the role grants least privilege. If you don't specify a value, AWS CloudFormation uses the role that was previously associated with the stack. If no role is available, AWS CloudFormation uses a temporary session that is generated from your user credentials.<br/>ResourceTypes:  The template resource types that you have permissions to work with for this create stack action, such as <code>AWS::EC2::Instance</code>, <code>AWS::EC2::*</code>, or <code>Custom::MyCustomInstance</code>. Use the following syntax to describe template resource types: <code>AWS::*</code> (for all AWS resource), <code>Custom::*</code> (for all custom resources), <code>Custom::<i>logical_ID</i> </code> (for a specific custom resource), <code>AWS::<i>service_name</i>::*</code> (for all resources of a particular AWS service), and <code>AWS::<i>service_name</i>::<i>resource_logical_ID</i> </code> (for a specific AWS resource). If the list of resource types doesn't include a resource that you're creating, the stack creation fails. By default, AWS CloudFormation grants permissions to all resource types. AWS Identity and Access Management (IAM) uses this parameter for AWS CloudFormation-specific condition keys in IAM policies. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html">Controlling Access with AWS Identity and Access Management</a>.<br/>Capabilities:  In some cases, you must explicitly acknowledge that your stack template contains certain capabilities in order for AWS CloudFormation to create the stack. <ul> <li>  <code>CAPABILITY_IAM</code> and <code>CAPABILITY_NAMED_IAM</code>  Some stack templates might include resources that can affect permissions in your AWS account; for example, by creating new AWS Identity and Access Management (IAM) users. For those stacks, you must explicitly acknowledge this by specifying one of these capabilities. The following IAM resources require you to specify either the <code>CAPABILITY_IAM</code> or <code>CAPABILITY_NAMED_IAM</code> capability. <ul> <li> If you have IAM resources, you can specify either capability.  </li> <li> If you have IAM resources with custom names, you <i>must</i> specify <code>CAPABILITY_NAMED_IAM</code>.  </li> <li> If you don't specify either of these capabilities, AWS CloudFormation returns an <code>InsufficientCapabilities</code> error. </li> </ul> If your stack template contains these resources, we recommend that you review all permissions associated with them and edit their permissions if necessary. <ul> <li>  <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html"> AWS::IAM::AccessKey</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html"> AWS::IAM::Group</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html"> AWS::IAM::InstanceProfile</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html"> AWS::IAM::Policy</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html"> AWS::IAM::Role</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html"> AWS::IAM::User</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html"> AWS::IAM::UserToGroupAddition</a>  </li> </ul> For more information, see <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities">Acknowledging IAM Resources in AWS CloudFormation Templates</a>. </li> <li>  <code>CAPABILITY_AUTO_EXPAND</code>  Some template contain macros. Macros perform custom processing on templates; this can include simple actions like find-and-replace operations, all the way to extensive transformations of entire templates. Because of this, users typically create a change set from the processed template, so that they can review the changes resulting from the macros before actually creating the stack. If your stack template contains one or more macros, and you choose to create a stack directly from the processed template, without first reviewing the resulting changes in a change set, you must acknowledge this capability. This includes the <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/create-reusable-transform-function-snippets-and-add-to-your-template-with-aws-include-transform.html">AWS::Include</a> and <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-serverless.html">AWS::Serverless</a> transforms, which are macros hosted by AWS CloudFormation. If you want to create a stack from a stack template that contains macros <i>and</i> nested stacks, you must create the stack directly from the template using this capability. <important> You should only create stacks directly from a stack template that contains macros if you know what processing the macro performs. Each macro relies on an underlying Lambda service function for processing stack templates. Be aware that the Lambda function owner can update the function operation without AWS CloudFormation being notified. </important> For more information, see <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html">Using AWS CloudFormation Macros to Perform Custom Processing on Templates</a>. </li> </ul><br/>NotificationARNs:  The Simple Notification Service (SNS) topic ARNs to publish stack related events. You can find your SNS topic ARNs using the SNS console or your Command Line Interface (CLI).<br/>TimeoutInMinutes:  The amount of time that can pass before the stack status becomes CREATE_FAILED; if <code>DisableRollback</code> is not set or is set to <code>false</code>, the stack will be rolled back.<br/>RollbackConfiguration:  The rollback triggers for AWS CloudFormation to monitor during stack creation and updating operations, and for the specified monitoring period afterwards.:<br/>DisableRollback:  Set to <code>true</code> to disable rollback of the stack if stack creation failed. You can specify either <code>DisableRollback</code> or <code>OnFailure</code>, but not both. Default: <code>false</code> <br/>Parameters:  A list of <code>Parameter</code> structures that specify input parameters for the stack. For more information, see the <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_Parameter.html">Parameter</a> data type.<br/>TemplateURL:  Location of file containing the template body. The URL must point to a template (max size: 460,800 bytes) that is located in an Amazon S3 bucket or a Systems Manager document. For more information, go to the <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html">Template Anatomy</a> in the AWS CloudFormation User Guide. Conditional: You must specify either the <code>TemplateBody</code> or the <code>TemplateURL</code> parameter, but not both.<br/>TemplateBody:  Structure containing the template body with a minimum length of 1 byte and a maximum length of 51,200 bytes. For more information, go to <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html">Template Anatomy</a> in the AWS CloudFormation User Guide. Conditional: You must specify either the <code>TemplateBody</code> or the <code>TemplateURL</code> parameter, but not both.<br/>StackName:  The name that is associated with the stack. The name must be unique in the Region in which you are creating the stack. <note> A stack name can contain only alphanumeric characters (case sensitive) and hyphens. It must start with an alphabetic character and cannot be longer than 128 characters. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MonitoringTimeInMinutes</i> The amount of time, in minutes, during which CloudFormation should monitor all the rollback triggers after the stack creation or update operation deploys all necessary resources. The default is 0 minutes. If you specify a monitoring period but do not specify any rollback triggers, CloudFormation still waits the specified period of time before cleaning up old resources after update operations. You can use this monitoring period to perform any manual stack validation desired, and manually cancel the stack creation or update (using <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_CancelUpdateStack.html">CancelUpdateStack</a>, for example) as necessary. If you specify 0 for this parameter, CloudFormation still monitors the specified rollback triggers during stack creation and update operations. Then, for update operations, it begins disposing of old resources immediately once the operation completes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RollbackTriggers</i> The triggers to monitor during stack creation or update actions.  By default, AWS CloudFormation saves the rollback triggers specified for a stack and applies them to any subsequent update operations for the stack, unless you specify otherwise. If you do specify rollback triggers for this parameter, those triggers replace any list of triggers previously specified for the stack. This means: <ul> <li> To use the rollback triggers previously specified for this stack, if any, don't specify this parameter. </li> <li> To specify new or updated rollback triggers, you must specify <i>all</i> the triggers that you want used for this stack, even triggers you've specifed before (for example, when creating the stack or during a previous stack update). Any triggers that you don't include in the updated list of triggers are no longer applied to the stack. </li> <li> To remove all currently specified triggers, specify an empty list for this parameter. </li> </ul> If a specified trigger is missing, the entire stack operation fails and is rolled back. <br/>
        :return: StackId:  Unique identifier of the stack.<br/>        """
        pass

    def create_stack_instances(self, Regions: List[Region], StackSetName: str, Accounts: List[Account]=None, DeploymentTargets: DeploymentTargets=None, ParameterOverrides: List[Parameter]=None, OperationPreferences: StackSetOperationPreferences=None, OperationId: str=None, CallAs: str=None) -> CreateStackInstancesOutput:
        r"""Creates stack instances for the specified accounts, within the specified Regions. A stack instance refers to a stack in a specific account and Region. You must specify at least one value for either <code>Accounts</code> or <code>DeploymentTargets</code>, and you must specify at least one value for <code>Regions</code>.

        :param self:
        :param CallAs:  [Service-managed permissions] Specifies whether you are acting as an account administrator in the organization's management account or as a delegated administrator in a member account. By default, <code>SELF</code> is specified. Use <code>SELF</code> for stack sets with self-managed permissions. <ul> <li> If you are signed in to the management account, specify <code>SELF</code>. </li> <li> If you are signed in to a delegated administrator account, specify <code>DELEGATED_ADMIN</code>. Your AWS account must be registered as a delegated administrator in the management account. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html">Register a delegated administrator</a> in the <i>AWS CloudFormation User Guide</i>. </li> </ul><br/>OperationId:  The unique identifier for this stack set operation.  The operation ID also functions as an idempotency token, to ensure that AWS CloudFormation performs the stack set operation only once, even if you retry the request multiple times. You might retry stack set operation requests to ensure that AWS CloudFormation successfully received them. If you don't specify an operation ID, the SDK generates one automatically.  Repeating this stack set operation with a new operation ID retries all stack instances whose status is <code>OUTDATED</code>. <br/>OperationPreferences:  Preferences for how AWS CloudFormation performs this stack set operation.:<br/>ParameterOverrides:  A list of stack set parameters whose values you want to override in the selected stack instances. Any overridden parameter values will be applied to all stack instances in the specified accounts and Regions. When specifying parameters and their values, be aware of how AWS CloudFormation sets parameter values during stack instance operations: <ul> <li> To override the current value for a parameter, include the parameter and specify its value. </li> <li> To leave a parameter set to its present value, you can do one of the following: <ul> <li> Do not include the parameter in the list. </li> <li> Include the parameter and specify <code>UsePreviousValue</code> as <code>true</code>. (You cannot specify both a value and set <code>UsePreviousValue</code> to <code>true</code>.) </li> </ul> </li> <li> To set all overridden parameter back to the values specified in the stack set, specify a parameter list but do not include any parameters. </li> <li> To leave all parameters set to their present values, do not specify this property at all. </li> </ul> During stack set updates, any parameter values overridden for a stack instance are not updated, but retain their overridden value. You can only override the parameter <i>values</i> that are specified in the stack set; to add or delete a parameter itself, use <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_UpdateStackSet.html">UpdateStackSet</a> to update the stack set template.<br/>Regions:  The names of one or more Regions where you want to create stack instances using the specified AWS account(s). <br/>DeploymentTargets:  [Service-managed permissions] The AWS Organizations accounts for which to create stack instances in the specified Regions. You can specify <code>Accounts</code> or <code>DeploymentTargets</code>, but not both.:<br/>Accounts:  [Self-managed permissions] The names of one or more AWS accounts that you want to create stack instances in the specified Region(s) for. You can specify <code>Accounts</code> or <code>DeploymentTargets</code>, but not both.<br/>StackSetName:  The name or unique ID of the stack set that you want to create stack instances from.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OrganizationalUnitIds</i> The organization root ID or organizational unit (OU) IDs to which StackSets deploys.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccountsUrl</i> Returns the value of the AccountsUrl property.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Accounts</i> The names of one or more AWS accounts for which you want to deploy stack set updates.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxConcurrentPercentage</i> The maximum percentage of accounts in which to perform this operation at one time. When calculating the number of accounts based on the specified percentage, AWS CloudFormation rounds down to the next whole number. This is true except in cases where rounding down would result is zero. In this case, CloudFormation sets the number as one instead. Note that this setting lets you specify the <i>maximum</i> for operations. For large deployments, under certain circumstances the actual number of accounts acted upon concurrently may be lower due to service throttling. Conditional: You must specify either <code>MaxConcurrentCount</code> or <code>MaxConcurrentPercentage</code>, but not both. By default, <code>1</code> is specified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxConcurrentCount</i> The maximum number of accounts in which to perform this operation at one time. This is dependent on the value of <code>FailureToleranceCount</code>. <code>MaxConcurrentCount</code> is at most one more than the <code>FailureToleranceCount</code>. Note that this setting lets you specify the <i>maximum</i> for operations. For large deployments, under certain circumstances the actual number of accounts acted upon concurrently may be lower due to service throttling. Conditional: You must specify either <code>MaxConcurrentCount</code> or <code>MaxConcurrentPercentage</code>, but not both. By default, <code>1</code> is specified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FailureTolerancePercentage</i> The percentage of accounts, per Region, for which this stack operation can fail before AWS CloudFormation stops the operation in that Region. If the operation is stopped in a Region, AWS CloudFormation doesn't attempt the operation in any subsequent Regions. When calculating the number of accounts based on the specified percentage, AWS CloudFormation rounds <i>down</i> to the next whole number. Conditional: You must specify either <code>FailureToleranceCount</code> or <code>FailureTolerancePercentage</code>, but not both. By default, <code>0</code> is specified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FailureToleranceCount</i> The number of accounts, per Region, for which this operation can fail before AWS CloudFormation stops the operation in that Region. If the operation is stopped in a Region, AWS CloudFormation doesn't attempt the operation in any subsequent Regions. Conditional: You must specify either <code>FailureToleranceCount</code> or <code>FailureTolerancePercentage</code> (but not both). By default, <code>0</code> is specified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RegionOrder</i> The order of the Regions in where you want to perform the stack operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RegionConcurrencyType</i> The concurrency type of deploying StackSets operations in regions, could be in parallel or one region at a time.<br/>
        :return: OperationId:  The unique identifier for this stack set operation.<br/>        """
        pass

    def create_stack_set(self, StackSetName: str, Description: str=None, TemplateBody: str=None, TemplateURL: str=None, Parameters: List[Parameter]=None, Capabilities: List[Capability]=None, Tags: List[Tag]=None, AdministrationRoleARN: str=None, ExecutionRoleName: str=None, PermissionModel: str=None, AutoDeployment: AutoDeployment=None, CallAs: str=None, ClientRequestToken: str=None) -> CreateStackSetOutput:
        r"""Creates a stack set.

        :param self:
        :param ClientRequestToken:  A unique identifier for this <code>CreateStackSet</code> request. Specify this token if you plan to retry requests so that AWS CloudFormation knows that you're not attempting to create another stack set with the same name. You might retry <code>CreateStackSet</code> requests to ensure that AWS CloudFormation successfully received them. If you don't specify an operation ID, the SDK generates one automatically. <br/>CallAs:  [Service-managed permissions] Specifies whether you are acting as an account administrator in the organization's management account or as a delegated administrator in a member account. By default, <code>SELF</code> is specified. Use <code>SELF</code> for stack sets with self-managed permissions. <ul> <li> To create a stack set with service-managed permissions while signed in to the management account, specify <code>SELF</code>. </li> <li> To create a stack set with service-managed permissions while signed in to a delegated administrator account, specify <code>DELEGATED_ADMIN</code>. Your AWS account must be registered as a delegated admin in the management account. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html">Register a delegated administrator</a> in the <i>AWS CloudFormation User Guide</i>. </li> </ul> Stack sets with service-managed permissions are created in the management account, including stack sets that are created by delegated administrators.<br/>AutoDeployment:  Describes whether StackSets automatically deploys to AWS Organizations accounts that are added to the target organization or organizational unit (OU). Specify only if <code>PermissionModel</code> is <code>SERVICE_MANAGED</code>.:<br/>PermissionModel:  Describes how the IAM roles required for stack set operations are created. By default, <code>SELF-MANAGED</code> is specified. <ul> <li> With <code>self-managed</code> permissions, you must create the administrator and execution roles required to deploy to target accounts. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-self-managed.html">Grant Self-Managed Stack Set Permissions</a>. </li> <li> With <code>service-managed</code> permissions, StackSets automatically creates the IAM roles required to deploy to accounts managed by AWS Organizations. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-service-managed.html">Grant Service-Managed Stack Set Permissions</a>. </li> </ul><br/>ExecutionRoleName:  The name of the IAM execution role to use to create the stack set. If you do not specify an execution role, AWS CloudFormation uses the <code>AWSCloudFormationStackSetExecutionRole</code> role for the stack set operation. Specify an IAM role only if you are using customized execution roles to control which stack resources users and groups can include in their stack sets. <br/>AdministrationRoleARN:  The Amazon Resource Number (ARN) of the IAM role to use to create this stack set.  Specify an IAM role only if you are using customized administrator roles to control which users or groups can manage specific stack sets within the same administrator account. For more information, see <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs.html">Prerequisites: Granting Permissions for Stack Set Operations</a> in the <i>AWS CloudFormation User Guide</i>.<br/>Tags:  The key-value pairs to associate with this stack set and the stacks created from it. AWS CloudFormation also propagates these tags to supported resources that are created in the stacks. A maximum number of 50 tags can be specified. If you specify tags as part of a <code>CreateStackSet</code> action, AWS CloudFormation checks to see if you have the required IAM permission to tag resources. If you don't, the entire <code>CreateStackSet</code> action fails with an <code>access denied</code> error, and the stack set is not created.<br/>Capabilities:  In some cases, you must explicitly acknowledge that your stack set template contains certain capabilities in order for AWS CloudFormation to create the stack set and related stack instances. <ul> <li>  <code>CAPABILITY_IAM</code> and <code>CAPABILITY_NAMED_IAM</code>  Some stack templates might include resources that can affect permissions in your AWS account; for example, by creating new AWS Identity and Access Management (IAM) users. For those stack sets, you must explicitly acknowledge this by specifying one of these capabilities. The following IAM resources require you to specify either the <code>CAPABILITY_IAM</code> or <code>CAPABILITY_NAMED_IAM</code> capability. <ul> <li> If you have IAM resources, you can specify either capability.  </li> <li> If you have IAM resources with custom names, you <i>must</i> specify <code>CAPABILITY_NAMED_IAM</code>.  </li> <li> If you don't specify either of these capabilities, AWS CloudFormation returns an <code>InsufficientCapabilities</code> error. </li> </ul> If your stack template contains these resources, we recommend that you review all permissions associated with them and edit their permissions if necessary. <ul> <li>  <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html"> AWS::IAM::AccessKey</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html"> AWS::IAM::Group</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html"> AWS::IAM::InstanceProfile</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html"> AWS::IAM::Policy</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html"> AWS::IAM::Role</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html"> AWS::IAM::User</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html"> AWS::IAM::UserToGroupAddition</a>  </li> </ul> For more information, see <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities">Acknowledging IAM Resources in AWS CloudFormation Templates</a>. </li> <li>  <code>CAPABILITY_AUTO_EXPAND</code>  Some templates reference macros. If your stack set template references one or more macros, you must create the stack set directly from the processed template, without first reviewing the resulting changes in a change set. To create the stack set directly, you must acknowledge this capability. For more information, see <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html">Using AWS CloudFormation Macros to Perform Custom Processing on Templates</a>. <important> Stack sets with service-managed permissions do not currently support the use of macros in templates. (This includes the <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/create-reusable-transform-function-snippets-and-add-to-your-template-with-aws-include-transform.html">AWS::Include</a> and <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-serverless.html">AWS::Serverless</a> transforms, which are macros hosted by AWS CloudFormation.) Even if you specify this capability for a stack set with service-managed permissions, if you reference a macro in your template the stack set operation will fail. </important> </li> </ul><br/>Parameters:  The input parameters for the stack set template. <br/>TemplateURL:  The location of the file that contains the template body. The URL must point to a template (maximum size: 460,800 bytes) that's located in an Amazon S3 bucket or a Systems Manager document. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html">Template Anatomy</a> in the AWS CloudFormation User Guide. Conditional: You must specify either the TemplateBody or the TemplateURL parameter, but not both.<br/>TemplateBody:  The structure that contains the template body, with a minimum length of 1 byte and a maximum length of 51,200 bytes. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html">Template Anatomy</a> in the AWS CloudFormation User Guide. Conditional: You must specify either the TemplateBody or the TemplateURL parameter, but not both.<br/>Description:  A description of the stack set. You can use the description to identify the stack set's purpose or other important information.<br/>StackSetName:  The name to associate with the stack set. The name must be unique in the Region where you create your stack set. <note> A stack name can contain only alphanumeric characters (case-sensitive) and hyphens. It must start with an alphabetic character and can't be longer than 128 characters. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RetainStacksOnAccountRemoval</i> If set to <code>true</code>, stack resources are retained when an account is removed from a target organization or OU. If set to <code>false</code>, stack resources are deleted. Specify only if <code>Enabled</code> is set to <code>True</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> If set to <code>true</code>, StackSets automatically deploys additional stack instances to AWS Organizations accounts that are added to a target organization or organizational unit (OU) in the specified Regions. If an account is removed from a target organization or OU, StackSets deletes stack instances from the account in the specified Regions.<br/>
        :return: StackSetId:  The ID of the stack set that you're creating.<br/>        """
        pass

    def deactivate_type(self, TypeName: str=None, Type: str=None, Arn: str=None) -> DeactivateTypeOutput:
        r"""Deactivates a public extension that was previously activated in this account and region. Once deactivated, an extension cannot be used in any CloudFormation operation. This includes stack update operations where the stack template includes the extension, even if no updates are being made to the extension. In addition, deactivated extensions are not automatically updated if a new version of the extension is released.

        :param self:
        :param Arn:  The Amazon Resource Name (ARN) for the extension, in this account and region. Conditional: You must specify either <code>Arn</code>, or <code>TypeName</code> and <code>Type</code>.<br/>Type:  The extension type. Conditional: You must specify either <code>Arn</code>, or <code>TypeName</code> and <code>Type</code>.<br/>TypeName:  The type name of the extension, in this account and region. If you specified a type name alias when enabling the extension, use the type name alias. Conditional: You must specify either <code>Arn</code>, or <code>TypeName</code> and <code>Type</code>.<br/>
        :return:         """
        pass

    def delete_change_set(self, ChangeSetName: str, StackName: str=None) -> DeleteChangeSetOutput:
        r"""Deletes the specified change set. Deleting change sets ensures that no one executes the wrong change set. If the call successfully completes, AWS CloudFormation successfully deleted the change set. If <code>IncludeNestedStacks</code> specifies <code>True</code> during the creation of the nested change set, then <code>DeleteChangeSet</code> will delete all change sets that belong to the stacks hierarchy and will also delete all change sets for nested stacks with the status of <code>REVIEW_IN_PROGRESS</code>.

        :param self:
        :param StackName:  If you specified the name of a change set to delete, specify the stack name or ID (ARN) that is associated with it.<br/>ChangeSetName:  The name or Amazon Resource Name (ARN) of the change set that you want to delete.<br/>
        :return:         """
        pass

    def delete_stack(self, StackName: str, RetainResources: List[LogicalResourceId]=None, RoleARN: str=None, ClientRequestToken: str=None):
        r"""Deletes a specified stack. Once the call completes successfully, stack deletion starts. Deleted stacks do not show up in the <a>DescribeStacks</a> API if the deletion has been completed successfully.

        :param self:
        :param ClientRequestToken:  A unique identifier for this <code>DeleteStack</code> request. Specify this token if you plan to retry requests so that AWS CloudFormation knows that you're not attempting to delete a stack with the same name. You might retry <code>DeleteStack</code> requests to ensure that AWS CloudFormation successfully received them. All events triggered by a given stack operation are assigned the same client request token, which you can use to track operations. For example, if you execute a <code>CreateStack</code> operation with the token <code>token1</code>, then all the <code>StackEvents</code> generated by that operation will have <code>ClientRequestToken</code> set as <code>token1</code>. In the console, stack operations display the client request token on the Events tab. Stack operations that are initiated from the console use the token format <i>Console-StackOperation-ID</i>, which helps you easily identify the stack operation . For example, if you create a stack using the console, each stack event would be assigned the same token in the following format: <code>Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002</code>. <br/>RoleARN:  The Amazon Resource Name (ARN) of an AWS Identity and Access Management (IAM) role that AWS CloudFormation assumes to delete the stack. AWS CloudFormation uses the role's credentials to make calls on your behalf. If you don't specify a value, AWS CloudFormation uses the role that was previously associated with the stack. If no role is available, AWS CloudFormation uses a temporary session that is generated from your user credentials.<br/>RetainResources:  For stacks in the <code>DELETE_FAILED</code> state, a list of resource logical IDs that are associated with the resources you want to retain. During deletion, AWS CloudFormation deletes the stack but does not delete the retained resources. Retaining resources is useful when you cannot delete a resource, such as a non-empty S3 bucket, but you want to delete the stack.<br/>StackName:  The name or the unique stack ID that is associated with the stack.<br/>
        :return:         """
        pass

    def delete_stack_instances(self, RetainStacks: RetainStacks, Regions: List[Region], StackSetName: str, Accounts: List[Account]=None, DeploymentTargets: DeploymentTargets=None, OperationPreferences: StackSetOperationPreferences=None, OperationId: str=None, CallAs: str=None) -> DeleteStackInstancesOutput:
        r"""Deletes stack instances for the specified accounts, in the specified Regions. 

        :param self:
        :param CallAs:  [Service-managed permissions] Specifies whether you are acting as an account administrator in the organization's management account or as a delegated administrator in a member account. By default, <code>SELF</code> is specified. Use <code>SELF</code> for stack sets with self-managed permissions. <ul> <li> If you are signed in to the management account, specify <code>SELF</code>. </li> <li> If you are signed in to a delegated administrator account, specify <code>DELEGATED_ADMIN</code>. Your AWS account must be registered as a delegated administrator in the management account. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html">Register a delegated administrator</a> in the <i>AWS CloudFormation User Guide</i>. </li> </ul><br/>OperationId:  The unique identifier for this stack set operation.  If you don't specify an operation ID, the SDK generates one automatically.  The operation ID also functions as an idempotency token, to ensure that AWS CloudFormation performs the stack set operation only once, even if you retry the request multiple times. You can retry stack set operation requests to ensure that AWS CloudFormation successfully received them. Repeating this stack set operation with a new operation ID retries all stack instances whose status is <code>OUTDATED</code>. <br/>RetainStacks:  Removes the stack instances from the specified stack set, but doesn't delete the stacks. You can't reassociate a retained stack or add an existing, saved stack to a new stack set. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html#stackset-ops-options">Stack set operation options</a>.<br/>OperationPreferences:  Preferences for how AWS CloudFormation performs this stack set operation.:<br/>Regions:  The Regions where you want to delete stack set instances. <br/>DeploymentTargets:  [Service-managed permissions] The AWS Organizations accounts from which to delete stack instances. You can specify <code>Accounts</code> or <code>DeploymentTargets</code>, but not both.:<br/>Accounts:  [Self-managed permissions] The names of the AWS accounts that you want to delete stack instances for. You can specify <code>Accounts</code> or <code>DeploymentTargets</code>, but not both.<br/>StackSetName:  The name or unique ID of the stack set that you want to delete stack instances for.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OrganizationalUnitIds</i> The organization root ID or organizational unit (OU) IDs to which StackSets deploys.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccountsUrl</i> Returns the value of the AccountsUrl property.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Accounts</i> The names of one or more AWS accounts for which you want to deploy stack set updates.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxConcurrentPercentage</i> The maximum percentage of accounts in which to perform this operation at one time. When calculating the number of accounts based on the specified percentage, AWS CloudFormation rounds down to the next whole number. This is true except in cases where rounding down would result is zero. In this case, CloudFormation sets the number as one instead. Note that this setting lets you specify the <i>maximum</i> for operations. For large deployments, under certain circumstances the actual number of accounts acted upon concurrently may be lower due to service throttling. Conditional: You must specify either <code>MaxConcurrentCount</code> or <code>MaxConcurrentPercentage</code>, but not both. By default, <code>1</code> is specified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxConcurrentCount</i> The maximum number of accounts in which to perform this operation at one time. This is dependent on the value of <code>FailureToleranceCount</code>. <code>MaxConcurrentCount</code> is at most one more than the <code>FailureToleranceCount</code>. Note that this setting lets you specify the <i>maximum</i> for operations. For large deployments, under certain circumstances the actual number of accounts acted upon concurrently may be lower due to service throttling. Conditional: You must specify either <code>MaxConcurrentCount</code> or <code>MaxConcurrentPercentage</code>, but not both. By default, <code>1</code> is specified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FailureTolerancePercentage</i> The percentage of accounts, per Region, for which this stack operation can fail before AWS CloudFormation stops the operation in that Region. If the operation is stopped in a Region, AWS CloudFormation doesn't attempt the operation in any subsequent Regions. When calculating the number of accounts based on the specified percentage, AWS CloudFormation rounds <i>down</i> to the next whole number. Conditional: You must specify either <code>FailureToleranceCount</code> or <code>FailureTolerancePercentage</code>, but not both. By default, <code>0</code> is specified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FailureToleranceCount</i> The number of accounts, per Region, for which this operation can fail before AWS CloudFormation stops the operation in that Region. If the operation is stopped in a Region, AWS CloudFormation doesn't attempt the operation in any subsequent Regions. Conditional: You must specify either <code>FailureToleranceCount</code> or <code>FailureTolerancePercentage</code> (but not both). By default, <code>0</code> is specified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RegionOrder</i> The order of the Regions in where you want to perform the stack operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RegionConcurrencyType</i> The concurrency type of deploying StackSets operations in regions, could be in parallel or one region at a time.<br/>
        :return: OperationId:  The unique identifier for this stack set operation.<br/>        """
        pass

    def delete_stack_set(self, StackSetName: str, CallAs: str=None) -> DeleteStackSetOutput:
        r"""Deletes a stack set. Before you can delete a stack set, all of its member stack instances must be deleted. For more information about how to do this, see <a>DeleteStackInstances</a>. 

        :param self:
        :param CallAs:  [Service-managed permissions] Specifies whether you are acting as an account administrator in the organization's management account or as a delegated administrator in a member account. By default, <code>SELF</code> is specified. Use <code>SELF</code> for stack sets with self-managed permissions. <ul> <li> If you are signed in to the management account, specify <code>SELF</code>. </li> <li> If you are signed in to a delegated administrator account, specify <code>DELEGATED_ADMIN</code>. Your AWS account must be registered as a delegated administrator in the management account. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html">Register a delegated administrator</a> in the <i>AWS CloudFormation User Guide</i>. </li> </ul><br/>StackSetName:  The name or unique ID of the stack set that you're deleting. You can obtain this value by running <a>ListStackSets</a>.<br/>
        :return:         """
        pass

    def deregister_type(self, Arn: str=None, Type: str=None, TypeName: str=None, VersionId: str=None) -> DeregisterTypeOutput:
        r"""Marks an extension or extension version as <code>DEPRECATED</code> in the CloudFormation registry, removing it from active use. Deprecated extensions or extension versions cannot be used in CloudFormation operations. To deregister an entire extension, you must individually deregister all active versions of that extension. If an extension has only a single active version, deregistering that version results in the extension itself being deregistered and marked as deprecated in the registry.  You cannot deregister the default version of an extension if there are other active version of that extension. If you do deregister the default version of an extension, the textensionype itself is deregistered as well and marked as deprecated.  To view the deprecation status of an extension or extension version, use <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DescribeType.html">DescribeType</a>.

        :param self:
        :param VersionId:  The ID of a specific version of the extension. The version ID is the value at the end of the Amazon Resource Name (ARN) assigned to the extension version when it is registered.<br/>TypeName:  The name of the extension. Conditional: You must specify either <code>TypeName</code> and <code>Type</code>, or <code>Arn</code>.<br/>Type:  The kind of extension. Conditional: You must specify either <code>TypeName</code> and <code>Type</code>, or <code>Arn</code>.<br/>Arn:  The Amazon Resource Name (ARN) of the extension. Conditional: You must specify either <code>TypeName</code> and <code>Type</code>, or <code>Arn</code>.<br/>
        :return:         """
        pass

    def describe_account_limits(self, NextToken: str=None) -> DescribeAccountLimitsOutput:
        r"""Retrieves your account's AWS CloudFormation limits, such as the maximum number of stacks that you can create in your account. For more information about account limits, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html">AWS CloudFormation Limits</a> in the <i>AWS CloudFormation User Guide</i>.

        :param self:
        :param NextToken:  A string that identifies the next page of limits that you want to retrieve.<br/>
        :return: NextToken:  If the output exceeds 1 MB in size, a string that identifies the next page of limits. If no additional page exists, this value is null.<br/>AccountLimits:  An account limit structure that contain a list of AWS CloudFormation account limits and their values.<br/>        """
        pass

    def describe_change_set(self, ChangeSetName: str, StackName: str=None, NextToken: str=None) -> DescribeChangeSetOutput:
        r"""Returns the inputs for the change set and a list of changes that AWS CloudFormation will make if you execute the change set. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-changesets.html">Updating Stacks Using Change Sets</a> in the AWS CloudFormation User Guide.

        :param self:
        :param NextToken:  A string (provided by the <a>DescribeChangeSet</a> response output) that identifies the next page of information that you want to retrieve.<br/>StackName:  If you specified the name of a change set, specify the stack name or ID (ARN) of the change set you want to describe.<br/>ChangeSetName:  The name or Amazon Resource Name (ARN) of the change set that you want to describe.<br/>
        :return: RootChangeSetId:  Specifies the change set ID of the root change set in the current nested change set hierarchy.<br/>ParentChangeSetId:  Specifies the change set ID of the parent change set in the current nested change set hierarchy.<br/>IncludeNestedStacks:  Verifies if <code>IncludeNestedStacks</code> is set to <code>True</code>.<br/>NextToken:  If the output exceeds 1 MB, a string that identifies the next page of changes. If there is no additional page, this value is null.<br/>Changes:  A list of <code>Change</code> structures that describes the resources AWS CloudFormation changes if you execute the change set.<br/>Tags:  If you execute the change set, the tags that will be associated with the stack.<br/>Capabilities:  If you execute the change set, the list of capabilities that were explicitly acknowledged when the change set was created.<br/>RollbackConfiguration:  The rollback triggers for AWS CloudFormation to monitor during stack creation and updating operations, and for the specified monitoring period afterwards.:<br/>NotificationARNs:  The ARNs of the Amazon Simple Notification Service (Amazon SNS) topics that will be associated with the stack if you execute the change set.<br/>StatusReason:  A description of the change set's status. For example, if your attempt to create a change set failed, AWS CloudFormation shows the error message.<br/>Status:  The current status of the change set, such as <code>CREATE_IN_PROGRESS</code>, <code>CREATE_COMPLETE</code>, or <code>FAILED</code>.<br/>ExecutionStatus:  If the change set execution status is <code>AVAILABLE</code>, you can execute the change set. If you can’t execute the change set, the status indicates why. For example, a change set might be in an <code>UNAVAILABLE</code> state because AWS CloudFormation is still creating it or in an <code>OBSOLETE</code> state because the stack was already updated.<br/>CreationTime:  The start time when the change set was created, in UTC.<br/>Parameters:  A list of <code>Parameter</code> structures that describes the input parameters and their values used to create the change set. For more information, see the <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_Parameter.html">Parameter</a> data type.<br/>Description:  Information about the change set.<br/>StackName:  The name of the stack that is associated with the change set.<br/>StackId:  The ARN of the stack that is associated with the change set.<br/>ChangeSetId:  The ARN of the change set.<br/>ChangeSetName:  The name of the change set.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MonitoringTimeInMinutes</i> The amount of time, in minutes, during which CloudFormation should monitor all the rollback triggers after the stack creation or update operation deploys all necessary resources. The default is 0 minutes. If you specify a monitoring period but do not specify any rollback triggers, CloudFormation still waits the specified period of time before cleaning up old resources after update operations. You can use this monitoring period to perform any manual stack validation desired, and manually cancel the stack creation or update (using <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_CancelUpdateStack.html">CancelUpdateStack</a>, for example) as necessary. If you specify 0 for this parameter, CloudFormation still monitors the specified rollback triggers during stack creation and update operations. Then, for update operations, it begins disposing of old resources immediately once the operation completes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RollbackTriggers</i> The triggers to monitor during stack creation or update actions.  By default, AWS CloudFormation saves the rollback triggers specified for a stack and applies them to any subsequent update operations for the stack, unless you specify otherwise. If you do specify rollback triggers for this parameter, those triggers replace any list of triggers previously specified for the stack. This means: <ul> <li> To use the rollback triggers previously specified for this stack, if any, don't specify this parameter. </li> <li> To specify new or updated rollback triggers, you must specify <i>all</i> the triggers that you want used for this stack, even triggers you've specifed before (for example, when creating the stack or during a previous stack update). Any triggers that you don't include in the updated list of triggers are no longer applied to the stack. </li> <li> To remove all currently specified triggers, specify an empty list for this parameter. </li> </ul> If a specified trigger is missing, the entire stack operation fails and is rolled back. <br/>        """
        pass

    def describe_publisher(self, PublisherId: str=None) -> DescribePublisherOutput:
        r"""Returns information about a CloudFormation extension publisher. If you do not supply a <code>PublisherId</code>, and you have registered as an extension publisher, <code>DescribePublisher</code> returns information about your own publisher account.  For more information on registering as a publisher, see: <ul> <li>  <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterPublisher.html">RegisterPublisher</a>  </li> <li>  <a href="https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/publish-extension.html">Publishing extensions to make them available for public use</a> in the <i>CloudFormation CLI User Guide</i>  </li> </ul>

        :param self:
        :param PublisherId:  The ID of the extension publisher. If you do not supply a <code>PublisherId</code>, and you have registered as an extension publisher, <code>DescribePublisher</code> returns information about your own publisher account.<br/>
        :return: PublisherProfile:  The URL to the publisher's profile with the identity provider.<br/>IdentityProvider:  The type of account used as the identity provider when registering this publisher with CloudFormation.<br/>PublisherStatus:  Whether the publisher is verified. Currently, all registered publishers are verified.<br/>PublisherId:  The ID of the extension publisher.<br/>        """
        pass

    def describe_stack_drift_detection_status(self, StackDriftDetectionId: str) -> DescribeStackDriftDetectionStatusOutput:
        r"""Returns information about a stack drift detection operation. A stack drift detection operation detects whether a stack's actual configuration differs, or has <i>drifted</i>, from it's expected configuration, as defined in the stack template and any values specified as template parameters. A stack is considered to have drifted if one or more of its resources have drifted. For more information on stack and resource drift, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html">Detecting Unregulated Configuration Changes to Stacks and Resources</a>. Use <a>DetectStackDrift</a> to initiate a stack drift detection operation. <code>DetectStackDrift</code> returns a <code>StackDriftDetectionId</code> you can use to monitor the progress of the operation using <code>DescribeStackDriftDetectionStatus</code>. Once the drift detection operation has completed, use <a>DescribeStackResourceDrifts</a> to return drift information about the stack and its resources.

        :param self:
        :param StackDriftDetectionId:  The ID of the drift detection results of this operation.  AWS CloudFormation generates new results, with a new drift detection ID, each time this operation is run. However, the number of drift results AWS CloudFormation retains for any given stack, and for how long, may vary. <br/>
        :return: Timestamp:  Time at which the stack drift detection operation was initiated.<br/>DriftedStackResourceCount:  Total number of stack resources that have drifted. This is NULL until the drift detection operation reaches a status of <code>DETECTION_COMPLETE</code>. This value will be 0 for stacks whose drift status is <code>IN_SYNC</code>.<br/>DetectionStatusReason:  The reason the stack drift detection operation has its current status.<br/>DetectionStatus:  The status of the stack drift detection operation. <ul> <li>  <code>DETECTION_COMPLETE</code>: The stack drift detection operation has successfully completed for all resources in the stack that support drift detection. (Resources that do not currently support stack detection remain unchecked.) If you specified logical resource IDs for AWS CloudFormation to use as a filter for the stack drift detection operation, only the resources with those logical IDs are checked for drift. </li> <li>  <code>DETECTION_FAILED</code>: The stack drift detection operation has failed for at least one resource in the stack. Results will be available for resources on which AWS CloudFormation successfully completed drift detection. </li> <li>  <code>DETECTION_IN_PROGRESS</code>: The stack drift detection operation is currently in progress. </li> </ul><br/>StackDriftStatus:  Status of the stack's actual configuration compared to its expected configuration.  <ul> <li>  <code>DRIFTED</code>: The stack differs from its expected template configuration. A stack is considered to have drifted if one or more of its resources have drifted. </li> <li>  <code>NOT_CHECKED</code>: AWS CloudFormation has not checked if the stack differs from its expected template configuration. </li> <li>  <code>IN_SYNC</code>: The stack's actual configuration matches its expected template configuration. </li> <li>  <code>UNKNOWN</code>: This value is reserved for future use. </li> </ul><br/>StackDriftDetectionId:  The ID of the drift detection results of this operation.  AWS CloudFormation generates new results, with a new drift detection ID, each time this operation is run. However, the number of reports AWS CloudFormation retains for any given stack, and for how long, may vary.<br/>StackId:  The ID of the stack.<br/>        """
        pass

    def describe_stack_events(self, StackName: str=None, NextToken: str=None) -> DescribeStackEventsOutput:
        r"""Returns all stack related events for a specified stack in reverse chronological order. For more information about a stack's event history, go to <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/concept-stack.html">Stacks</a> in the AWS CloudFormation User Guide. <note> You can list events for stacks that have failed to create or have been deleted by specifying the unique stack identifier (stack ID). </note>

        :param self:
        :param NextToken:  A string that identifies the next page of events that you want to retrieve.<br/>StackName:  The name or the unique stack ID that is associated with the stack, which are not always interchangeable: <ul> <li> Running stacks: You can specify either the stack's name or its unique stack ID. </li> <li> Deleted stacks: You must specify the unique stack ID. </li> </ul> Default: There is no default value.<br/>
        :return: NextToken:  If the output exceeds 1 MB in size, a string that identifies the next page of events. If no additional page exists, this value is null.<br/>StackEvents:  A list of <code>StackEvents</code> structures.<br/>        """
        pass

    def describe_stack_instance(self, StackInstanceRegion: str, StackInstanceAccount: str, StackSetName: str, CallAs: str=None) -> DescribeStackInstanceOutput:
        r"""Returns the stack instance that's associated with the specified stack set, AWS account, and Region. For a list of stack instances that are associated with a specific stack set, use <a>ListStackInstances</a>.

        :param self:
        :param CallAs:  [Service-managed permissions] Specifies whether you are acting as an account administrator in the organization's management account or as a delegated administrator in a member account. By default, <code>SELF</code> is specified. Use <code>SELF</code> for stack sets with self-managed permissions. <ul> <li> If you are signed in to the management account, specify <code>SELF</code>. </li> <li> If you are signed in to a delegated administrator account, specify <code>DELEGATED_ADMIN</code>. Your AWS account must be registered as a delegated administrator in the management account. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html">Register a delegated administrator</a> in the <i>AWS CloudFormation User Guide</i>. </li> </ul><br/>StackInstanceRegion:  The name of a Region that's associated with this stack instance.<br/>StackInstanceAccount:  The ID of an AWS account that's associated with this stack instance.<br/>StackSetName:  The name or the unique stack ID of the stack set that you want to get stack instance information for.<br/>
        :return: StackInstance:  The stack instance that matches the specified request parameters.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastDriftCheckTimestamp</i> Most recent time when CloudFormation performed a drift detection operation on the stack instance. This value will be <code>NULL</code> for any stack instance on which drift detection has not yet been performed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DriftStatus</i> Status of the stack instance's actual configuration compared to the expected template and parameter configuration of the stack set to which it belongs.  <ul> <li>  <code>DRIFTED</code>: The stack differs from the expected template and parameter configuration of the stack set to which it belongs. A stack instance is considered to have drifted if one or more of the resources in the associated stack have drifted. </li> <li>  <code>NOT_CHECKED</code>: AWS CloudFormation has not checked if the stack instance differs from its expected stack set configuration. </li> <li>  <code>IN_SYNC</code>: The stack instance's actual configuration matches its expected stack set configuration. </li> <li>  <code>UNKNOWN</code>: This value is reserved for future use. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OrganizationalUnitId</i> [Service-managed permissions] The organization root ID or organizational unit (OU) IDs that you specified for <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DeploymentTargets.html">DeploymentTargets</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusReason</i> The explanation for the specific status code that is assigned to this stack instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StackInstanceStatus</i> The detailed status of the stack instance.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StackInstanceStatus</b>: The detailed status of the stack instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the stack instance, in terms of its synchronization with its associated stack set. <ul> <li>  <code>INOPERABLE</code>: A <code>DeleteStackInstances</code> operation has failed and left the stack in an unstable state. Stacks in this state are excluded from further <code>UpdateStackSet</code> operations. You might need to perform a <code>DeleteStackInstances</code> operation, with <code>RetainStacks</code> set to <code>true</code>, to delete the stack instance, and then delete the stack manually. </li> <li>  <code>OUTDATED</code>: The stack isn't currently up to date with the stack set because: <ul> <li> The associated stack failed during a <code>CreateStackSet</code> or <code>UpdateStackSet</code> operation.  </li> <li> The stack was part of a <code>CreateStackSet</code> or <code>UpdateStackSet</code> operation that failed or was stopped before the stack was created or updated.  </li> </ul> </li> <li>  <code>CURRENT</code>: The stack is currently up to date with the stack set. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ParameterOverrides</i> A list of parameters from the stack set template whose values have been overridden in this stack instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StackId</i> The ID of the stack instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Account</i> [Self-managed permissions] The name of the AWS account that the stack instance is associated with.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Region</i> The name of the AWS Region that the stack instance is associated with.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StackSetId</i> The name or unique ID of the stack set that the stack instance is associated with.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DetailedStatus</i> <ul> <li>  <code>CANCELLED</code>: The operation in the specified account and Region has been cancelled. This is either because a user has stopped the stack set operation, or because the failure tolerance of the stack set operation has been exceeded. </li> <li>  <code>FAILED</code>: The operation in the specified account and Region failed. If the stack set operation fails in enough accounts within a Region, the failure tolerance for the stack set operation as a whole might be exceeded. </li> <li>  <code>INOPERABLE</code>: A <code>DeleteStackInstances</code> operation has failed and left the stack in an unstable state. Stacks in this state are excluded from further <code>UpdateStackSet</code> operations. You might need to perform a <code>DeleteStackInstances</code> operation, with <code>RetainStacks</code> set to <code>true</code>, to delete the stack instance, and then delete the stack manually. </li> <li>  <code>PENDING</code>: The operation in the specified account and Region has yet to start. </li> <li>  <code>RUNNING</code>: The operation in the specified account and Region is currently in progress. </li> <li>  <code>SUCCEEDED</code>: The operation in the specified account and Region completed successfully. </li> </ul><br/>        """
        pass

    def describe_stack_resource(self, LogicalResourceId: str, StackName: str) -> DescribeStackResourceOutput:
        r"""Returns a description of the specified resource in the specified stack. For deleted stacks, DescribeStackResource returns resource information for up to 90 days after the stack has been deleted.

        :param self:
        :param LogicalResourceId:  The logical name of the resource as specified in the template. Default: There is no default value.<br/>StackName:  The name or the unique stack ID that is associated with the stack, which are not always interchangeable: <ul> <li> Running stacks: You can specify either the stack's name or its unique stack ID. </li> <li> Deleted stacks: You must specify the unique stack ID. </li> </ul> Default: There is no default value.<br/>
        :return: StackResourceDetail:  A <code>StackResourceDetail</code> structure containing the description of the specified resource in the specified stack.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ModuleInfo</i> Contains information about the module from which the resource was created, if the resource was created from a module included in the stack template.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ModuleInfo</b>: Contains information about the module from which the resource was created, if the resource was created from a module included in the stack template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DriftInformation</i> Information about whether the resource's actual configuration differs, or has <i>drifted</i>, from its expected configuration, as defined in the stack template and any values specified as template parameters. For more information, see <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html">Detecting Unregulated Configuration Changes to Stacks and Resources</a>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DriftInformation</b>: Information about whether the resource's actual configuration differs, or has <i>drifted</i>, from its expected configuration, as defined in the stack template and any values specified as template parameters. For more information, see <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html">Detecting Unregulated Configuration Changes to Stacks and Resources</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Metadata</i> The content of the <code>Metadata</code> attribute declared for the resource. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html">Metadata Attribute</a> in the AWS CloudFormation User Guide.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> User defined description associated with the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceStatusReason</i> Success/failure message associated with the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceStatus</i> Current status of the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdatedTimestamp</i> Time the status was updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceType</i> Type of resource. ((For more information, go to <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html"> AWS Resource Types Reference</a> in the AWS CloudFormation User Guide.)<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PhysicalResourceId</i> The name or unique identifier that corresponds to a physical instance ID of a resource supported by AWS CloudFormation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogicalResourceId</i> The logical name of the resource specified in the template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StackId</i> Unique identifier of the stack.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StackName</i> The name associated with the stack.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LastCheckTimestamp</i> When AWS CloudFormation last checked if the resource had drifted from its expected configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StackResourceDriftStatus</i> Status of the resource's actual configuration compared to its expected configuration <ul> <li>  <code>DELETED</code>: The resource differs from its expected configuration in that it has been deleted. </li> <li>  <code>MODIFIED</code>: The resource differs from its expected configuration. </li> <li>  <code>NOT_CHECKED</code>: AWS CloudFormation has not checked if the resource differs from its expected configuration. Any resources that do not currently support drift detection have a status of <code>NOT_CHECKED</code>. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift-resource-list.html">Resources that Support Drift Detection</a>.  </li> <li>  <code>IN_SYNC</code>: The resources's actual configuration matches its expected configuration. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LogicalIdHierarchy</i> A concantenated list of the logical IDs of the module or modules containing the resource. Modules are listed starting with the inner-most nested module, and separated by <code>/</code>. In the following example, the resource was created from a module, <code>moduleA</code>, that is nested inside a parent module, <code>moduleB</code>.  <code>moduleA/moduleB</code>  For more information, see <a href="AWSCloudFormation/latest/UserGuide/modules.html#module-ref-resources">Referencing resources in a module</a> in the <i>CloudFormation User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TypeHierarchy</i> A concantenated list of the the module type or types containing the resource. Module types are listed starting with the inner-most nested module, and separated by <code>/</code>. In the following example, the resource was created from a module of type <code>AWS::First::Example::MODULE</code>, that is nested inside a parent module of type <code>AWS::Second::Example::MODULE</code>.  <code>AWS::First::Example::MODULE/AWS::Second::Example::MODULE</code> <br/>        """
        pass

    def describe_stack_resource_drifts(self, StackName: str, StackResourceDriftStatusFilters: List[StackResourceDriftStatus]=None, NextToken: str=None, MaxResults: int=None) -> DescribeStackResourceDriftsOutput:
        r"""Returns drift information for the resources that have been checked for drift in the specified stack. This includes actual and expected configuration values for resources where AWS CloudFormation detects configuration drift. For a given stack, there will be one <code>StackResourceDrift</code> for each stack resource that has been checked for drift. Resources that have not yet been checked for drift are not included. Resources that do not currently support drift detection are not checked, and so not included. For a list of resources that support drift detection, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift-resource-list.html">Resources that Support Drift Detection</a>. Use <a>DetectStackResourceDrift</a> to detect drift on individual resources, or <a>DetectStackDrift</a> to detect drift on all supported resources for a given stack.

        :param self:
        :param MaxResults:  The maximum number of results to be returned with a single call. If the number of available results exceeds this maximum, the response includes a <code>NextToken</code> value that you can assign to the <code>NextToken</code> request parameter to get the next set of results.<br/>NextToken:  A string that identifies the next page of stack resource drift results.<br/>StackResourceDriftStatusFilters:  The resource drift status values to use as filters for the resource drift results returned. <ul> <li>  <code>DELETED</code>: The resource differs from its expected template configuration in that the resource has been deleted. </li> <li>  <code>MODIFIED</code>: One or more resource properties differ from their expected template values. </li> <li>  <code>IN_SYNC</code>: The resources's actual configuration matches its expected template configuration. </li> <li>  <code>NOT_CHECKED</code>: AWS CloudFormation does not currently return this value. </li> </ul><br/>StackName:  The name of the stack for which you want drift information.<br/>
        :return: NextToken:  If the request doesn't return all of the remaining results, <code>NextToken</code> is set to a token. To retrieve the next set of results, call <code>DescribeStackResourceDrifts</code> again and assign that token to the request object's <code>NextToken</code> parameter. If the request returns all results, <code>NextToken</code> is set to <code>null</code>.<br/>StackResourceDrifts:  Drift information for the resources that have been checked for drift in the specified stack. This includes actual and expected configuration values for resources where AWS CloudFormation detects drift. For a given stack, there will be one <code>StackResourceDrift</code> for each stack resource that has been checked for drift. Resources that have not yet been checked for drift are not included. Resources that do not currently support drift detection are not checked, and so not included. For a list of resources that support drift detection, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift-resource-list.html">Resources that Support Drift Detection</a>.<br/>        """
        pass

    def describe_stack_resources(self, StackName: str=None, LogicalResourceId: str=None, PhysicalResourceId: str=None) -> DescribeStackResourcesOutput:
        r"""Returns AWS resource descriptions for running and deleted stacks. If <code>StackName</code> is specified, all the associated resources that are part of the stack are returned. If <code>PhysicalResourceId</code> is specified, the associated resources of the stack that the resource belongs to are returned. <note> Only the first 100 resources will be returned. If your stack has more resources than this, you should use <code>ListStackResources</code> instead. </note> For deleted stacks, <code>DescribeStackResources</code> returns resource information for up to 90 days after the stack has been deleted. You must specify either <code>StackName</code> or <code>PhysicalResourceId</code>, but not both. In addition, you can specify <code>LogicalResourceId</code> to filter the returned result. For more information about resources, the <code>LogicalResourceId</code> and <code>PhysicalResourceId</code>, go to the <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/">AWS CloudFormation User Guide</a>. <note> A <code>ValidationError</code> is returned if you specify both <code>StackName</code> and <code>PhysicalResourceId</code> in the same request. </note>

        :param self:
        :param PhysicalResourceId:  The name or unique identifier that corresponds to a physical instance ID of a resource supported by AWS CloudFormation. For example, for an Amazon Elastic Compute Cloud (EC2) instance, <code>PhysicalResourceId</code> corresponds to the <code>InstanceId</code>. You can pass the EC2 <code>InstanceId</code> to <code>DescribeStackResources</code> to find which stack the instance belongs to and what other resources are part of the stack. Required: Conditional. If you do not specify <code>PhysicalResourceId</code>, you must specify <code>StackName</code>. Default: There is no default value.<br/>LogicalResourceId:  The logical name of the resource as specified in the template. Default: There is no default value.<br/>StackName:  The name or the unique stack ID that is associated with the stack, which are not always interchangeable: <ul> <li> Running stacks: You can specify either the stack's name or its unique stack ID. </li> <li> Deleted stacks: You must specify the unique stack ID. </li> </ul> Default: There is no default value. Required: Conditional. If you do not specify <code>StackName</code>, you must specify <code>PhysicalResourceId</code>.<br/>
        :return: StackResources:  A list of <code>StackResource</code> structures.<br/>        """
        pass

    def describe_stack_set(self, StackSetName: str, CallAs: str=None) -> DescribeStackSetOutput:
        r"""Returns the description of the specified stack set. 

        :param self:
        :param CallAs:  [Service-managed permissions] Specifies whether you are acting as an account administrator in the organization's management account or as a delegated administrator in a member account. By default, <code>SELF</code> is specified. Use <code>SELF</code> for stack sets with self-managed permissions. <ul> <li> If you are signed in to the management account, specify <code>SELF</code>. </li> <li> If you are signed in to a delegated administrator account, specify <code>DELEGATED_ADMIN</code>. Your AWS account must be registered as a delegated administrator in the management account. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html">Register a delegated administrator</a> in the <i>AWS CloudFormation User Guide</i>. </li> </ul><br/>StackSetName:  The name or unique ID of the stack set whose description you want.<br/>
        :return: StackSet:  The specified stack set.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OrganizationalUnitIds</i> [Service-managed permissions] The organization root ID or organizational unit (OU) IDs that you specified for <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DeploymentTargets.html">DeploymentTargets</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PermissionModel</i> Describes how the IAM roles required for stack set operations are created. <ul> <li> With <code>self-managed</code> permissions, you must create the administrator and execution roles required to deploy to target accounts. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-self-managed.html">Grant Self-Managed Stack Set Permissions</a>. </li> <li> With <code>service-managed</code> permissions, StackSets automatically creates the IAM roles required to deploy to accounts managed by AWS Organizations. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-service-managed.html">Grant Service-Managed Stack Set Permissions</a>. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoDeployment</i> [Service-managed permissions] Describes whether StackSets automatically deploys to AWS Organizations accounts that are added to a target organization or organizational unit (OU).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AutoDeployment</b>: [Service-managed permissions] Describes whether StackSets automatically deploys to AWS Organizations accounts that are added to a target organization or organizational unit (OU).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StackSetDriftDetectionDetails</i> Detailed information about the drift status of the stack set. For stack sets, contains information about the last <i>completed</i> drift operation performed on the stack set. Information about drift operations currently in progress is not included.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StackSetDriftDetectionDetails</b>: Detailed information about the drift status of the stack set. For stack sets, contains information about the last <i>completed</i> drift operation performed on the stack set. Information about drift operations currently in progress is not included.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExecutionRoleName</i> The name of the IAM execution role used to create or update the stack set.  Use customized execution roles to control which stack resources users and groups can include in their stack sets. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdministrationRoleARN</i> The Amazon Resource Number (ARN) of the IAM role used to create or update the stack set. Use customized administrator roles to control which users or groups can manage specific stack sets within the same administrator account. For more information, see <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs.html">Prerequisites: Granting Permissions for Stack Set Operations</a> in the <i>AWS CloudFormation User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StackSetARN</i> The Amazon Resource Number (ARN) of the stack set.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> A list of tags that specify information about the stack set. A maximum number of 50 tags can be specified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Capabilities</i> The capabilities that are allowed in the stack set. Some stack set templates might include resources that can affect permissions in your AWS account—for example, by creating new AWS Identity and Access Management (IAM) users. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities">Acknowledging IAM Resources in AWS CloudFormation Templates.</a> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Parameters</i> A list of input parameters for a stack set.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TemplateBody</i> The structure that contains the body of the template that was used to create or update the stack set.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the stack set.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A description of the stack set that you specify when the stack set is created or updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StackSetId</i> The ID of the stack set.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StackSetName</i> The name that's associated with the stack set.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FailedStackInstancesCount</i> The number of stack instances for which the drift detection operation failed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InProgressStackInstancesCount</i> The number of stack instances that are currently being checked for drift.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InSyncStackInstancesCount</i> The number of stack instances which match the expected template and parameter configuration of the stack set.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DriftedStackInstancesCount</i> The number of stack instances that have drifted from the expected template and parameter configuration of the stack set. A stack instance is considered to have drifted if one or more of the resources in the associated stack do not match their expected configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalStackInstancesCount</i> The total number of stack instances belonging to this stack set.  The total number of stack instances is equal to the total of: <ul> <li> Stack instances that match the stack set configuration.  </li> <li> Stack instances that have drifted from the stack set configuration.  </li> <li> Stack instances where the drift detection operation has failed. </li> <li> Stack instances currently being checked for drift. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LastDriftCheckTimestamp</i> Most recent time when CloudFormation performed a drift detection operation on the stack set. This value will be <code>NULL</code> for any stack set on which drift detection has not yet been performed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DriftDetectionStatus</i> The status of the stack set drift detection operation. <ul> <li>  <code>COMPLETED</code>: The drift detection operation completed without failing on any stack instances. </li> <li>  <code>FAILED</code>: The drift detection operation exceeded the specified failure tolerance.  </li> <li>  <code>PARTIAL_SUCCESS</code>: The drift detection operation completed without exceeding the failure tolerance for the operation. </li> <li>  <code>IN_PROGRESS</code>: The drift detection operation is currently being performed. </li> <li>  <code>STOPPED</code>: The user has cancelled the drift detection operation. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DriftStatus</i> Status of the stack set's actual configuration compared to its expected template and parameter configuration. A stack set is considered to have drifted if one or more of its stack instances have drifted from their expected template and parameter configuration. <ul> <li>  <code>DRIFTED</code>: One or more of the stack instances belonging to the stack set stack differs from the expected template and parameter configuration. A stack instance is considered to have drifted if one or more of the resources in the associated stack have drifted. </li> <li>  <code>NOT_CHECKED</code>: AWS CloudFormation has not checked the stack set for drift. </li> <li>  <code>IN_SYNC</code>: All of the stack instances belonging to the stack set stack match from the expected template and parameter configuration. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RetainStacksOnAccountRemoval</i> If set to <code>true</code>, stack resources are retained when an account is removed from a target organization or OU. If set to <code>false</code>, stack resources are deleted. Specify only if <code>Enabled</code> is set to <code>True</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> If set to <code>true</code>, StackSets automatically deploys additional stack instances to AWS Organizations accounts that are added to a target organization or organizational unit (OU) in the specified Regions. If an account is removed from a target organization or OU, StackSets deletes stack instances from the account in the specified Regions.<br/>        """
        pass

    def describe_stack_set_operation(self, OperationId: str, StackSetName: str, CallAs: str=None) -> DescribeStackSetOperationOutput:
        r"""Returns the description of the specified stack set operation. 

        :param self:
        :param CallAs:  [Service-managed permissions] Specifies whether you are acting as an account administrator in the organization's management account or as a delegated administrator in a member account. By default, <code>SELF</code> is specified. Use <code>SELF</code> for stack sets with self-managed permissions. <ul> <li> If you are signed in to the management account, specify <code>SELF</code>. </li> <li> If you are signed in to a delegated administrator account, specify <code>DELEGATED_ADMIN</code>. Your AWS account must be registered as a delegated administrator in the management account. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html">Register a delegated administrator</a> in the <i>AWS CloudFormation User Guide</i>. </li> </ul><br/>OperationId:  The unique ID of the stack set operation. <br/>StackSetName:  The name or the unique stack ID of the stack set for the stack operation.<br/>
        :return: StackSetOperation:  The specified stack set operation.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StackSetDriftDetectionDetails</i> Detailed information about the drift status of the stack set. This includes information about drift operations currently being performed on the stack set. this information will only be present for stack set operations whose <code>Action</code> type is <code>DETECT_DRIFT</code>. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-drift.html">Detecting Unmanaged Changes in Stack Sets</a> in the AWS CloudFormation User Guide.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StackSetDriftDetectionDetails</b>: Detailed information about the drift status of the stack set. This includes information about drift operations currently being performed on the stack set. this information will only be present for stack set operations whose <code>Action</code> type is <code>DETECT_DRIFT</code>. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-drift.html">Detecting Unmanaged Changes in Stack Sets</a> in the AWS CloudFormation User Guide.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeploymentTargets</i> [Service-managed permissions] The AWS Organizations accounts affected by the stack operation.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DeploymentTargets</b>: [Service-managed permissions] The AWS Organizations accounts affected by the stack operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndTimestamp</i> The time at which the stack set operation ended, across all accounts and Regions specified. Note that this doesn't necessarily mean that the stack set operation was successful, or even attempted, in each account or Region.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTimestamp</i> The time at which the operation was initiated. Note that the creation times for the stack set operation might differ from the creation time of the individual stacks themselves. This is because AWS CloudFormation needs to perform preparatory work for the operation, such as dispatching the work to the requested Regions, before actually creating the first stacks.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExecutionRoleName</i> The name of the IAM execution role used to create or update the stack set. Use customized execution roles to control which stack resources users and groups can include in their stack sets. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdministrationRoleARN</i> The Amazon Resource Number (ARN) of the IAM role used to perform this stack set operation.  Use customized administrator roles to control which users or groups can manage specific stack sets within the same administrator account. For more information, see <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs.html">Define Permissions for Multiple Administrators</a> in the <i>AWS CloudFormation User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RetainStacks</i> For stack set operations of action type <code>DELETE</code>, specifies whether to remove the stack instances from the specified stack set, but doesn't delete the stacks. You can't reassociate a retained stack, or add an existing, saved stack to a new stack set.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OperationPreferences</i> The preferences for how AWS CloudFormation performs this stack set operation.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>OperationPreferences</b>: The preferences for how AWS CloudFormation performs this stack set operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the operation.  <ul> <li>  <code>FAILED</code>: The operation exceeded the specified failure tolerance. The failure tolerance value that you've set for an operation is applied for each Region during stack create and update operations. If the number of failed stacks within a Region exceeds the failure tolerance, the status of the operation in the Region is set to <code>FAILED</code>. This in turn sets the status of the operation as a whole to <code>FAILED</code>, and AWS CloudFormation cancels the operation in any remaining Regions. </li> <li>  <code>QUEUED</code>: [Service-managed permissions] For automatic deployments that require a sequence of operations, the operation is queued to be performed. For more information, see the <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html#stackset-status-codes">stack set operation status codes</a> in the AWS CloudFormation User Guide. </li> <li>  <code>RUNNING</code>: The operation is currently being performed. </li> <li>  <code>STOPPED</code>: The user has cancelled the operation. </li> <li>  <code>STOPPING</code>: The operation is in the process of stopping, at user request.  </li> <li>  <code>SUCCEEDED</code>: The operation completed creating or updating all the specified stacks without exceeding the failure tolerance for the operation. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Action</i> The type of stack set operation: <code>CREATE</code>, <code>UPDATE</code>, or <code>DELETE</code>. Create and delete operations affect only the specified stack set instances that are associated with the specified stack set. Update operations affect both the stack set itself, as well as <i>all</i> associated stack set instances.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StackSetId</i> The ID of the stack set.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OperationId</i> The unique ID of a stack set operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxConcurrentPercentage</i> The maximum percentage of accounts in which to perform this operation at one time. When calculating the number of accounts based on the specified percentage, AWS CloudFormation rounds down to the next whole number. This is true except in cases where rounding down would result is zero. In this case, CloudFormation sets the number as one instead. Note that this setting lets you specify the <i>maximum</i> for operations. For large deployments, under certain circumstances the actual number of accounts acted upon concurrently may be lower due to service throttling. Conditional: You must specify either <code>MaxConcurrentCount</code> or <code>MaxConcurrentPercentage</code>, but not both. By default, <code>1</code> is specified.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxConcurrentCount</i> The maximum number of accounts in which to perform this operation at one time. This is dependent on the value of <code>FailureToleranceCount</code>. <code>MaxConcurrentCount</code> is at most one more than the <code>FailureToleranceCount</code>. Note that this setting lets you specify the <i>maximum</i> for operations. For large deployments, under certain circumstances the actual number of accounts acted upon concurrently may be lower due to service throttling. Conditional: You must specify either <code>MaxConcurrentCount</code> or <code>MaxConcurrentPercentage</code>, but not both. By default, <code>1</code> is specified.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FailureTolerancePercentage</i> The percentage of accounts, per Region, for which this stack operation can fail before AWS CloudFormation stops the operation in that Region. If the operation is stopped in a Region, AWS CloudFormation doesn't attempt the operation in any subsequent Regions. When calculating the number of accounts based on the specified percentage, AWS CloudFormation rounds <i>down</i> to the next whole number. Conditional: You must specify either <code>FailureToleranceCount</code> or <code>FailureTolerancePercentage</code>, but not both. By default, <code>0</code> is specified.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FailureToleranceCount</i> The number of accounts, per Region, for which this operation can fail before AWS CloudFormation stops the operation in that Region. If the operation is stopped in a Region, AWS CloudFormation doesn't attempt the operation in any subsequent Regions. Conditional: You must specify either <code>FailureToleranceCount</code> or <code>FailureTolerancePercentage</code> (but not both). By default, <code>0</code> is specified.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RegionOrder</i> The order of the Regions in where you want to perform the stack operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RegionConcurrencyType</i> The concurrency type of deploying StackSets operations in regions, could be in parallel or one region at a time.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OrganizationalUnitIds</i> The organization root ID or organizational unit (OU) IDs to which StackSets deploys.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AccountsUrl</i> Returns the value of the AccountsUrl property.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Accounts</i> The names of one or more AWS accounts for which you want to deploy stack set updates.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FailedStackInstancesCount</i> The number of stack instances for which the drift detection operation failed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InProgressStackInstancesCount</i> The number of stack instances that are currently being checked for drift.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InSyncStackInstancesCount</i> The number of stack instances which match the expected template and parameter configuration of the stack set.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DriftedStackInstancesCount</i> The number of stack instances that have drifted from the expected template and parameter configuration of the stack set. A stack instance is considered to have drifted if one or more of the resources in the associated stack do not match their expected configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalStackInstancesCount</i> The total number of stack instances belonging to this stack set.  The total number of stack instances is equal to the total of: <ul> <li> Stack instances that match the stack set configuration.  </li> <li> Stack instances that have drifted from the stack set configuration.  </li> <li> Stack instances where the drift detection operation has failed. </li> <li> Stack instances currently being checked for drift. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LastDriftCheckTimestamp</i> Most recent time when CloudFormation performed a drift detection operation on the stack set. This value will be <code>NULL</code> for any stack set on which drift detection has not yet been performed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DriftDetectionStatus</i> The status of the stack set drift detection operation. <ul> <li>  <code>COMPLETED</code>: The drift detection operation completed without failing on any stack instances. </li> <li>  <code>FAILED</code>: The drift detection operation exceeded the specified failure tolerance.  </li> <li>  <code>PARTIAL_SUCCESS</code>: The drift detection operation completed without exceeding the failure tolerance for the operation. </li> <li>  <code>IN_PROGRESS</code>: The drift detection operation is currently being performed. </li> <li>  <code>STOPPED</code>: The user has cancelled the drift detection operation. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DriftStatus</i> Status of the stack set's actual configuration compared to its expected template and parameter configuration. A stack set is considered to have drifted if one or more of its stack instances have drifted from their expected template and parameter configuration. <ul> <li>  <code>DRIFTED</code>: One or more of the stack instances belonging to the stack set stack differs from the expected template and parameter configuration. A stack instance is considered to have drifted if one or more of the resources in the associated stack have drifted. </li> <li>  <code>NOT_CHECKED</code>: AWS CloudFormation has not checked the stack set for drift. </li> <li>  <code>IN_SYNC</code>: All of the stack instances belonging to the stack set stack match from the expected template and parameter configuration. </li> </ul><br/>        """
        pass

    def describe_stacks(self, StackName: str=None, NextToken: str=None) -> DescribeStacksOutput:
        r"""Returns the description for the specified stack; if no stack name was specified, then it returns the description for all the stacks created. <note> If the stack does not exist, an <code>AmazonCloudFormationException</code> is returned. </note>

        :param self:
        :param NextToken:  A string that identifies the next page of stacks that you want to retrieve.<br/>StackName:  The name or the unique stack ID that is associated with the stack, which are not always interchangeable: <ul> <li> Running stacks: You can specify either the stack's name or its unique stack ID. </li> <li> Deleted stacks: You must specify the unique stack ID. </li> </ul> Default: There is no default value.<br/>
        :return: NextToken:  If the output exceeds 1 MB in size, a string that identifies the next page of stacks. If no additional page exists, this value is null.<br/>Stacks:  A list of stack structures.<br/>        """
        pass

    def describe_type(self, Type: str=None, TypeName: str=None, Arn: str=None, VersionId: str=None, PublisherId: str=None, PublicVersionNumber: str=None) -> DescribeTypeOutput:
        r"""Returns detailed information about an extension that has been registered. If you specify a <code>VersionId</code>, <code>DescribeType</code> returns information about that specific extension version. Otherwise, it returns information about the default extension version.

        :param self:
        :param PublicVersionNumber:  The version number of a public third-party extension.<br/>PublisherId:  The publisher ID of the extension publisher. Extensions provided by Amazon are not assigned a publisher ID.<br/>VersionId:  The ID of a specific version of the extension. The version ID is the value at the end of the Amazon Resource Name (ARN) assigned to the extension version when it is registered. If you specify a <code>VersionId</code>, <code>DescribeType</code> returns information about that specific extension version. Otherwise, it returns information about the default extension version.<br/>Arn:  The Amazon Resource Name (ARN) of the extension. Conditional: You must specify either <code>TypeName</code> and <code>Type</code>, or <code>Arn</code>.<br/>TypeName:  The name of the extension. Conditional: You must specify either <code>TypeName</code> and <code>Type</code>, or <code>Arn</code>.<br/>Type:  The kind of extension.  Conditional: You must specify either <code>TypeName</code> and <code>Type</code>, or <code>Arn</code>.<br/>
        :return: AutoUpdate:  Whether CloudFormation automatically updates the extension in this account and region when a new <i>minor</i> version is published by the extension publisher. Major versions released by the publisher must be manually updated. For more information, see <a href="AWSCloudFormation/latest/UserGuide/registry-public.html#registry-public-enable">Activating public extensions for use in your account</a> in the <i>AWS CloudFormation User Guide</i>.<br/>IsActivated:  Whether or not the extension is activated in the account and region. This only applies to public third-party extensions. For all other extensions, CloudFormation returns <code>null</code>.<br/>LatestPublicVersion:  The latest version of a public extension <i>that is available</i> for use. This only applies if you specify a public extension, and you do not specify a version. For all other requests, CloudFormation returns <code>null</code>.<br/>PublicVersionNumber:  The version number of a public third-party extension. This applies only if you specify a public extension you have activated in your account, or specify a public extension without specifying a version. For all other extensions, CloudFormation returns <code>null</code>.<br/>OriginalTypeArn:  For public extensions that have been activated for this account and region, the Amazon Resource Name (ARN) of the public extension.<br/>OriginalTypeName:  For public extensions that have been activated for this account and region, the type name of the public extension. If you specified a <code>TypeNameAlias</code> when enabling the extension in this account and region, CloudFormation treats that alias as the extension's type name within the account and region, not the type name of the public extension. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-public.html#registry-public-enable-alias">Specifying aliases to refer to extensions</a> in the <i>CloudFormation User Guide</i>.<br/>PublisherId:  The publisher ID of the extension publisher. This applies only to public third-party extensions. For private registered extensions, and extensions provided by Amazon, CloudFormation returns <code>null</code>.<br/>ConfigurationSchema:  A JSON string that represent the current configuration data for the extension in this account and region. To set the configuration data for an extension, use <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_SetTypeConfiguration.html">SetTypeConfiguration</a>. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-register.html#registry-set-configuration">Configuring extensions at the account level</a> in the <i>CloudFormation User Guide</i>.<br/>TimeCreated:  When the specified private extension version was registered or activated in your account. <br/>LastUpdated:  When the specified extension version was registered. This applies only to: <ul> <li> Private extensions you have registered in your account. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html">RegisterType</a>. </li> <li> Public extensions you have activated in your account with auto-update specified. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ActivateType.html">ActivateType</a>. </li> </ul><br/>DocumentationUrl:  The URL of a page providing detailed documentation for this extension.<br/>SourceUrl:  The URL of the source code for the extension.<br/>Visibility:  The scope at which the extension is visible and usable in CloudFormation operations. Valid values include: <ul> <li>  <code>PRIVATE</code>: The extension is only visible and usable within the account in which it is registered. AWS CloudFormation marks any extensions you register as <code>PRIVATE</code>. </li> <li>  <code>PUBLIC</code>: The extension is publically visible and usable within any Amazon account. </li> </ul><br/>ExecutionRoleArn:  The Amazon Resource Name (ARN) of the IAM execution role used to register the extension. This applies only to private extensions you have registered in your account. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html">RegisterType</a>. <p/> If the registered extension calls any AWS APIs, you must create an <i> <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html">IAM execution role</a> </i> that includes the necessary permissions to call those AWS APIs, and provision that execution role in your account. CloudFormation then assumes that execution role to provide your extension with the appropriate credentials.<br/>RequiredActivatedTypes:  For extensions that are modules, the public third-party extensions that must be activated in your account in order for the module itself to be activated.<br/>LoggingConfig:  Contains logging configuration information for private extensions. This applies only to private extensions you have registered in your account. For public extensions, both those provided by Amazon and published by third parties, CloudFormation returns <code>null</code>. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html">RegisterType</a>.:<br/>DeprecatedStatus:  The deprecation status of the extension version. Valid values include: <ul> <li>  <code>LIVE</code>: The extension is activated or registered and can be used in CloudFormation operations, dependent on its provisioning behavior and visibility scope. </li> <li>  <code>DEPRECATED</code>: The extension has been deactivated or deregistered and can no longer be used in CloudFormation operations.  </li> </ul> For public third-party extensions, CloudFormation returns <code>null</code>.<br/>ProvisioningType:  For resource type extensions, the provisioning behavior of the resource type. AWS CloudFormation determines the provisioning type during registration, based on the types of handlers in the schema handler package submitted. Valid values include: <ul> <li>  <code>FULLY_MUTABLE</code>: The resource type includes an update handler to process updates to the type during stack update operations. </li> <li>  <code>IMMUTABLE</code>: The resource type does not include an update handler, so the type cannot be updated and must instead be replaced during stack update operations. </li> <li>  <code>NON_PROVISIONABLE</code>: The resource type does not include all of the following handlers, and therefore cannot actually be provisioned. <ul> <li> create </li> <li> read </li> <li> delete </li> </ul> </li> </ul><br/>Schema:  The schema that defines the extension. For more information on extension schemas, see <a href="https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-schema.html">Resource Provider Schema</a> in the <i>CloudFormation CLI User Guide</i>.<br/>Description:  The description of the extension.<br/>TypeTestsStatusDescription:  The description of the test status. To return the extension test status of a specifc extension version, you must specify <code>VersionId</code>.  This applies only to registered private extension versions. CloudFormation does not return this information for public extensions, whether or not they are activated in your account.<br/>TypeTestsStatus:  The contract test status of the registered extension version. To return the extension test status of a specifc extension version, you must specify <code>VersionId</code>.  This applies only to registered private extension versions. CloudFormation does not return this information for public extensions, whether or not they are activated in your account. <ul> <li>  <code>PASSED</code>: The extension has passed all its contract tests. An extension must have a test status of <code>PASSED</code> before it can be published. For more information, see <a href="https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-publish.html">Publishing extensions to make them available for public use</a> in the <i>CloudFormation Command Line Interface User Guide</i>. </li> <li>  <code>FAILED</code>: The extension has failed one or more contract tests. </li> <li>  <code>IN_PROGRESS</code>: Contract tests are currently being performed on the extension. </li> <li>  <code>NOT_TESTED</code>: Contract tests have not been performed on the extension. </li> </ul><br/>IsDefaultVersion:  Whether the specified extension version is set as the default version. This applies only to private extensions you have registered in your account, and extensions published by Amazon. For public third-party extensions, whether or not they are activated in your account, CloudFormation returns <code>null</code>.<br/>DefaultVersionId:  The ID of the default version of the extension. The default version is used when the extension version is not specified. This applies only to private extensions you have registered in your account. For public extensions, both those provided by Amazon and published by third parties, CloudFormation returns <code>null</code>. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html">RegisterType</a>. To set the default version of an extension, use <code> <a>SetTypeDefaultVersion</a> </code>. <br/>TypeName:  The name of the extension. If the extension is a public third-party type you have activated with a type name alias, CloudFormation returns the type name alias. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ActivateType.html">ActivateType</a>.<br/>Type:  The kind of extension. <br/>Arn:  The Amazon Resource Name (ARN) of the extension.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogGroupName</i> The Amazon CloudWatch log group to which CloudFormation sends error logging information when invoking the extension's handlers.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogRoleArn</i> The ARN of the role that CloudFormation should assume when sending log entries to CloudWatch logs.<br/>        """
        pass

    def describe_type_registration(self, RegistrationToken: str) -> DescribeTypeRegistrationOutput:
        r"""Returns information about an extension's registration, including its current status and type and version identifiers. When you initiate a registration request using <code> <a>RegisterType</a> </code>, you can then use <code> <a>DescribeTypeRegistration</a> </code> to monitor the progress of that registration request. Once the registration request has completed, use <code> <a>DescribeType</a> </code> to return detailed information about an extension.

        :param self:
        :param RegistrationToken:  The identifier for this registration request. This registration token is generated by CloudFormation when you initiate a registration request using <code> <a>RegisterType</a> </code>.<br/>
        :return: TypeVersionArn:  The Amazon Resource Name (ARN) of this specific version of the extension being registered. For registration requests with a <code>ProgressStatus</code> of other than <code>COMPLETE</code>, this will be <code>null</code>.<br/>TypeArn:  The Amazon Resource Name (ARN) of the extension being registered. For registration requests with a <code>ProgressStatus</code> of other than <code>COMPLETE</code>, this will be <code>null</code>.<br/>Description:  The description of the extension registration request.<br/>ProgressStatus:  The current status of the extension registration request.<br/>        """
        pass

    def detect_stack_drift(self, StackName: str, LogicalResourceIds: List[LogicalResourceId]=None) -> DetectStackDriftOutput:
        r"""Detects whether a stack's actual configuration differs, or has <i>drifted</i>, from it's expected configuration, as defined in the stack template and any values specified as template parameters. For each resource in the stack that supports drift detection, AWS CloudFormation compares the actual configuration of the resource with its expected template configuration. Only resource properties explicitly defined in the stack template are checked for drift. A stack is considered to have drifted if one or more of its resources differ from their expected template configurations. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html">Detecting Unregulated Configuration Changes to Stacks and Resources</a>. Use <code>DetectStackDrift</code> to detect drift on all supported resources for a given stack, or <a>DetectStackResourceDrift</a> to detect drift on individual resources. For a list of stack resources that currently support drift detection, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift-resource-list.html">Resources that Support Drift Detection</a>.  <code>DetectStackDrift</code> can take up to several minutes, depending on the number of resources contained within the stack. Use <a>DescribeStackDriftDetectionStatus</a> to monitor the progress of a detect stack drift operation. Once the drift detection operation has completed, use <a>DescribeStackResourceDrifts</a> to return drift information about the stack and its resources. When detecting drift on a stack, AWS CloudFormation does not detect drift on any nested stacks belonging to that stack. Perform <code>DetectStackDrift</code> directly on the nested stack itself.

        :param self:
        :param LogicalResourceIds:  The logical names of any resources you want to use as filters.<br/>StackName:  The name of the stack for which you want to detect drift. <br/>
        :return: StackDriftDetectionId:  The ID of the drift detection results of this operation.  AWS CloudFormation generates new results, with a new drift detection ID, each time this operation is run. However, the number of drift results AWS CloudFormation retains for any given stack, and for how long, may vary. <br/>        """
        pass

    def detect_stack_resource_drift(self, LogicalResourceId: str, StackName: str) -> DetectStackResourceDriftOutput:
        r"""Returns information about whether a resource's actual configuration differs, or has <i>drifted</i>, from it's expected configuration, as defined in the stack template and any values specified as template parameters. This information includes actual and expected property values for resources in which AWS CloudFormation detects drift. Only resource properties explicitly defined in the stack template are checked for drift. For more information about stack and resource drift, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html">Detecting Unregulated Configuration Changes to Stacks and Resources</a>. Use <code>DetectStackResourceDrift</code> to detect drift on individual resources, or <a>DetectStackDrift</a> to detect drift on all resources in a given stack that support drift detection. Resources that do not currently support drift detection cannot be checked. For a list of resources that support drift detection, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift-resource-list.html">Resources that Support Drift Detection</a>.

        :param self:
        :param LogicalResourceId:  The logical name of the resource for which to return drift information.<br/>StackName:  The name of the stack to which the resource belongs.<br/>
        :return: StackResourceDrift:  Information about whether the resource's actual configuration has drifted from its expected template configuration, including actual and expected property values and any differences detected.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ModuleInfo</i> Contains information about the module from which the resource was created, if the resource was created from a module included in the stack template.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ModuleInfo</b>: Contains information about the module from which the resource was created, if the resource was created from a module included in the stack template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Timestamp</i> Time at which AWS CloudFormation performed drift detection on the stack resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StackResourceDriftStatus</i> Status of the resource's actual configuration compared to its expected configuration <ul> <li>  <code>DELETED</code>: The resource differs from its expected template configuration because the resource has been deleted. </li> <li>  <code>MODIFIED</code>: One or more resource properties differ from their expected values (as defined in the stack template and any values specified as template parameters). </li> <li>  <code>IN_SYNC</code>: The resources's actual configuration matches its expected template configuration. </li> <li>  <code>NOT_CHECKED</code>: AWS CloudFormation does not currently return this value. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PropertyDifferences</i> A collection of the resource properties whose actual values differ from their expected values. These will be present only for resources whose <code>StackResourceDriftStatus</code> is <code>MODIFIED</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActualProperties</i> A JSON structure containing the actual property values of the stack resource. For resources whose <code>StackResourceDriftStatus</code> is <code>DELETED</code>, this structure will not be present. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExpectedProperties</i> A JSON structure containing the expected property values of the stack resource, as defined in the stack template and any values specified as template parameters.  For resources whose <code>StackResourceDriftStatus</code> is <code>DELETED</code>, this structure will not be present. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceType</i> The type of the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PhysicalResourceIdContext</i> Context information that enables AWS CloudFormation to uniquely identify a resource. AWS CloudFormation uses context key-value pairs in cases where a resource's logical and physical IDs are not enough to uniquely identify that resource. Each context key-value pair specifies a unique resource that contains the targeted resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PhysicalResourceId</i> The name or unique identifier that corresponds to a physical instance ID of a resource supported by AWS CloudFormation. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogicalResourceId</i> The logical name of the resource specified in the template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StackId</i> The ID of the stack.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LogicalIdHierarchy</i> A concantenated list of the logical IDs of the module or modules containing the resource. Modules are listed starting with the inner-most nested module, and separated by <code>/</code>. In the following example, the resource was created from a module, <code>moduleA</code>, that is nested inside a parent module, <code>moduleB</code>.  <code>moduleA/moduleB</code>  For more information, see <a href="AWSCloudFormation/latest/UserGuide/modules.html#module-ref-resources">Referencing resources in a module</a> in the <i>CloudFormation User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TypeHierarchy</i> A concantenated list of the the module type or types containing the resource. Module types are listed starting with the inner-most nested module, and separated by <code>/</code>. In the following example, the resource was created from a module of type <code>AWS::First::Example::MODULE</code>, that is nested inside a parent module of type <code>AWS::Second::Example::MODULE</code>.  <code>AWS::First::Example::MODULE/AWS::Second::Example::MODULE</code> <br/>        """
        pass

    def detect_stack_set_drift(self, StackSetName: str, OperationPreferences: StackSetOperationPreferences=None, OperationId: str=None, CallAs: str=None) -> DetectStackSetDriftOutput:
        r"""Detect drift on a stack set. When CloudFormation performs drift detection on a stack set, it performs drift detection on the stack associated with each stack instance in the stack set. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-drift.html">How CloudFormation Performs Drift Detection on a Stack Set</a>.  <code>DetectStackSetDrift</code> returns the <code>OperationId</code> of the stack set drift detection operation. Use this operation id with <code> <a>DescribeStackSetOperation</a> </code> to monitor the progress of the drift detection operation. The drift detection operation may take some time, depending on the number of stack instances included in the stack set, as well as the number of resources included in each stack. Once the operation has completed, use the following actions to return drift information: <ul> <li> Use <code> <a>DescribeStackSet</a> </code> to return detailed information about the stack set, including detailed information about the last <i>completed</i> drift operation performed on the stack set. (Information about drift operations that are in progress is not included.) </li> <li> Use <code> <a>ListStackInstances</a> </code> to return a list of stack instances belonging to the stack set, including the drift status and last drift time checked of each instance. </li> <li> Use <code> <a>DescribeStackInstance</a> </code> to return detailed information about a specific stack instance, including its drift status and last drift time checked. </li> </ul> For more information on performing a drift detection operation on a stack set, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-drift.html">Detecting Unmanaged Changes in Stack Sets</a>.  You can only run a single drift detection operation on a given stack set at one time.  To stop a drift detection stack set operation, use <code> <a>StopStackSetOperation</a> </code>.

        :param self:
        :param CallAs:  [Service-managed permissions] Specifies whether you are acting as an account administrator in the organization's management account or as a delegated administrator in a member account. By default, <code>SELF</code> is specified. Use <code>SELF</code> for stack sets with self-managed permissions. <ul> <li> If you are signed in to the management account, specify <code>SELF</code>. </li> <li> If you are signed in to a delegated administrator account, specify <code>DELEGATED_ADMIN</code>. Your AWS account must be registered as a delegated administrator in the management account. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html">Register a delegated administrator</a> in the <i>AWS CloudFormation User Guide</i>. </li> </ul><br/>OperationId:   <i>The ID of the stack set operation.</i> <br/>OperationPreferences:  The user-specified preferences for how AWS CloudFormation performs a stack set operation.  For more information on maximum concurrent accounts and failure tolerance, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html#stackset-ops-options">Stack set operation options</a>.:<br/>StackSetName:  The name of the stack set on which to perform the drift detection operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxConcurrentPercentage</i> The maximum percentage of accounts in which to perform this operation at one time. When calculating the number of accounts based on the specified percentage, AWS CloudFormation rounds down to the next whole number. This is true except in cases where rounding down would result is zero. In this case, CloudFormation sets the number as one instead. Note that this setting lets you specify the <i>maximum</i> for operations. For large deployments, under certain circumstances the actual number of accounts acted upon concurrently may be lower due to service throttling. Conditional: You must specify either <code>MaxConcurrentCount</code> or <code>MaxConcurrentPercentage</code>, but not both. By default, <code>1</code> is specified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxConcurrentCount</i> The maximum number of accounts in which to perform this operation at one time. This is dependent on the value of <code>FailureToleranceCount</code>. <code>MaxConcurrentCount</code> is at most one more than the <code>FailureToleranceCount</code>. Note that this setting lets you specify the <i>maximum</i> for operations. For large deployments, under certain circumstances the actual number of accounts acted upon concurrently may be lower due to service throttling. Conditional: You must specify either <code>MaxConcurrentCount</code> or <code>MaxConcurrentPercentage</code>, but not both. By default, <code>1</code> is specified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FailureTolerancePercentage</i> The percentage of accounts, per Region, for which this stack operation can fail before AWS CloudFormation stops the operation in that Region. If the operation is stopped in a Region, AWS CloudFormation doesn't attempt the operation in any subsequent Regions. When calculating the number of accounts based on the specified percentage, AWS CloudFormation rounds <i>down</i> to the next whole number. Conditional: You must specify either <code>FailureToleranceCount</code> or <code>FailureTolerancePercentage</code>, but not both. By default, <code>0</code> is specified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FailureToleranceCount</i> The number of accounts, per Region, for which this operation can fail before AWS CloudFormation stops the operation in that Region. If the operation is stopped in a Region, AWS CloudFormation doesn't attempt the operation in any subsequent Regions. Conditional: You must specify either <code>FailureToleranceCount</code> or <code>FailureTolerancePercentage</code> (but not both). By default, <code>0</code> is specified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RegionOrder</i> The order of the Regions in where you want to perform the stack operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RegionConcurrencyType</i> The concurrency type of deploying StackSets operations in regions, could be in parallel or one region at a time.<br/>
        :return: OperationId:  The ID of the drift detection stack set operation.  you can use this operation id with <code> <a>DescribeStackSetOperation</a> </code> to monitor the progress of the drift detection operation. <br/>        """
        pass

    def estimate_template_cost(self, TemplateBody: str=None, TemplateURL: str=None, Parameters: List[Parameter]=None) -> EstimateTemplateCostOutput:
        r"""Returns the estimated monthly cost of a template. The return value is an AWS Simple Monthly Calculator URL with a query string that describes the resources required to run the template.

        :param self:
        :param Parameters:  A list of <code>Parameter</code> structures that specify input parameters.<br/>TemplateURL:  Location of file containing the template body. The URL must point to a template that is located in an Amazon S3 bucket or a Systems Manager document. For more information, go to <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html">Template Anatomy</a> in the AWS CloudFormation User Guide. Conditional: You must pass <code>TemplateURL</code> or <code>TemplateBody</code>. If both are passed, only <code>TemplateBody</code> is used.<br/>TemplateBody:  Structure containing the template body with a minimum length of 1 byte and a maximum length of 51,200 bytes. (For more information, go to <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html">Template Anatomy</a> in the AWS CloudFormation User Guide.) Conditional: You must pass <code>TemplateBody</code> or <code>TemplateURL</code>. If both are passed, only <code>TemplateBody</code> is used.<br/>
        :return: Url:  An AWS Simple Monthly Calculator URL with a query string that describes the resources required to run the template.<br/>        """
        pass

    def execute_change_set(self, ChangeSetName: str, StackName: str=None, ClientRequestToken: str=None) -> ExecuteChangeSetOutput:
        r"""Updates a stack using the input information that was provided when the specified change set was created. After the call successfully completes, AWS CloudFormation starts updating the stack. Use the <a>DescribeStacks</a> action to view the status of the update. When you execute a change set, AWS CloudFormation deletes all other change sets associated with the stack because they aren't valid for the updated stack. If a stack policy is associated with the stack, AWS CloudFormation enforces the policy during the update. You can't specify a temporary stack policy that overrides the current policy. To create a change set for the entire stack hierachy, <code>IncludeNestedStacks</code> must have been set to <code>True</code>.

        :param self:
        :param ClientRequestToken:  A unique identifier for this <code>ExecuteChangeSet</code> request. Specify this token if you plan to retry requests so that AWS CloudFormation knows that you're not attempting to execute a change set to update a stack with the same name. You might retry <code>ExecuteChangeSet</code> requests to ensure that AWS CloudFormation successfully received them.<br/>StackName:  If you specified the name of a change set, specify the stack name or ID (ARN) that is associated with the change set you want to execute.<br/>ChangeSetName:  The name or ARN of the change set that you want use to update the specified stack.<br/>
        :return:         """
        pass

    def get_stack_policy(self, StackName: str) -> GetStackPolicyOutput:
        r"""Returns the stack policy for a specified stack. If a stack doesn't have a policy, a null value is returned.

        :param self:
        :param StackName:  The name or unique stack ID that is associated with the stack whose policy you want to get.<br/>
        :return: StackPolicyBody:  Structure containing the stack policy body. (For more information, go to <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/protect-stack-resources.html"> Prevent Updates to Stack Resources</a> in the AWS CloudFormation User Guide.)<br/>        """
        pass

    def get_template(self, StackName: str=None, ChangeSetName: str=None, TemplateStage: str=None) -> GetTemplateOutput:
        r"""Returns the template body for a specified stack. You can get the template for running or deleted stacks. For deleted stacks, GetTemplate returns the template for up to 90 days after the stack has been deleted. <note>  If the template does not exist, a <code>ValidationError</code> is returned.  </note>

        :param self:
        :param TemplateStage:  For templates that include transforms, the stage of the template that AWS CloudFormation returns. To get the user-submitted template, specify <code>Original</code>. To get the template after AWS CloudFormation has processed all transforms, specify <code>Processed</code>.  If the template doesn't include transforms, <code>Original</code> and <code>Processed</code> return the same template. By default, AWS CloudFormation specifies <code>Processed</code>.<br/>ChangeSetName:  The name or Amazon Resource Name (ARN) of a change set for which AWS CloudFormation returns the associated template. If you specify a name, you must also specify the <code>StackName</code>.<br/>StackName:  The name or the unique stack ID that is associated with the stack, which are not always interchangeable: <ul> <li> Running stacks: You can specify either the stack's name or its unique stack ID. </li> <li> Deleted stacks: You must specify the unique stack ID. </li> </ul> Default: There is no default value.<br/>
        :return: StagesAvailable:  The stage of the template that you can retrieve. For stacks, the <code>Original</code> and <code>Processed</code> templates are always available. For change sets, the <code>Original</code> template is always available. After AWS CloudFormation finishes creating the change set, the <code>Processed</code> template becomes available.<br/>TemplateBody:  Structure containing the template body. (For more information, go to <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html">Template Anatomy</a> in the AWS CloudFormation User Guide.) AWS CloudFormation returns the same template that was used when the stack was created.<br/>        """
        pass

    def get_template_summary(self, TemplateBody: str=None, TemplateURL: str=None, StackName: str=None, StackSetName: str=None, CallAs: str=None) -> GetTemplateSummaryOutput:
        r"""Returns information about a new or existing template. The <code>GetTemplateSummary</code> action is useful for viewing parameter information, such as default parameter values and parameter types, before you create or update a stack or stack set. You can use the <code>GetTemplateSummary</code> action when you submit a template, or you can get template information for a stack set, or a running or deleted stack. For deleted stacks, <code>GetTemplateSummary</code> returns the template information for up to 90 days after the stack has been deleted. If the template does not exist, a <code>ValidationError</code> is returned.

        :param self:
        :param CallAs:  [Service-managed permissions] Specifies whether you are acting as an account administrator in the organization's management account or as a delegated administrator in a member account. By default, <code>SELF</code> is specified. Use <code>SELF</code> for stack sets with self-managed permissions. <ul> <li> If you are signed in to the management account, specify <code>SELF</code>. </li> <li> If you are signed in to a delegated administrator account, specify <code>DELEGATED_ADMIN</code>. Your AWS account must be registered as a delegated administrator in the management account. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html">Register a delegated administrator</a> in the <i>AWS CloudFormation User Guide</i>. </li> </ul><br/>StackSetName:  The name or unique ID of the stack set from which the stack was created. Conditional: You must specify only one of the following parameters: <code>StackName</code>, <code>StackSetName</code>, <code>TemplateBody</code>, or <code>TemplateURL</code>.<br/>StackName:  The name or the stack ID that is associated with the stack, which are not always interchangeable. For running stacks, you can specify either the stack's name or its unique stack ID. For deleted stack, you must specify the unique stack ID. Conditional: You must specify only one of the following parameters: <code>StackName</code>, <code>StackSetName</code>, <code>TemplateBody</code>, or <code>TemplateURL</code>.<br/>TemplateURL:  Location of file containing the template body. The URL must point to a template (max size: 460,800 bytes) that is located in an Amazon S3 bucket or a Systems Manager document. For more information about templates, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html">Template Anatomy</a> in the AWS CloudFormation User Guide. Conditional: You must specify only one of the following parameters: <code>StackName</code>, <code>StackSetName</code>, <code>TemplateBody</code>, or <code>TemplateURL</code>.<br/>TemplateBody:  Structure containing the template body with a minimum length of 1 byte and a maximum length of 51,200 bytes. For more information about templates, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html">Template Anatomy</a> in the AWS CloudFormation User Guide. Conditional: You must specify only one of the following parameters: <code>StackName</code>, <code>StackSetName</code>, <code>TemplateBody</code>, or <code>TemplateURL</code>.<br/>
        :return: ResourceIdentifierSummaries:  A list of resource identifier summaries that describe the target resources of an import operation and the properties you can provide during the import to identify the target resources. For example, <code>BucketName</code> is a possible identifier property for an <code>AWS::S3::Bucket</code> resource. <br/>DeclaredTransforms:  A list of the transforms that are declared in the template.<br/>Metadata:  The value that is defined for the <code>Metadata</code> property of the template.<br/>Version:  The AWS template format version, which identifies the capabilities of the template.<br/>ResourceTypes:  A list of all the template resource types that are defined in the template, such as <code>AWS::EC2::Instance</code>, <code>AWS::Dynamo::Table</code>, and <code>Custom::MyCustomInstance</code>.<br/>CapabilitiesReason:  The list of resources that generated the values in the <code>Capabilities</code> response element.<br/>Capabilities:  The capabilities found within the template. If your template contains IAM resources, you must specify the CAPABILITY_IAM or CAPABILITY_NAMED_IAM value for this parameter when you use the <a>CreateStack</a> or <a>UpdateStack</a> actions with your template; otherwise, those actions return an InsufficientCapabilities error. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities">Acknowledging IAM Resources in AWS CloudFormation Templates</a>.<br/>Description:  The value that is defined in the <code>Description</code> property of the template.<br/>Parameters:  A list of parameter declarations that describe various properties for each parameter.<br/>        """
        pass

    def list_change_sets(self, StackName: str, NextToken: str=None) -> ListChangeSetsOutput:
        r"""Returns the ID and status of each active change set for a stack. For example, AWS CloudFormation lists change sets that are in the <code>CREATE_IN_PROGRESS</code> or <code>CREATE_PENDING</code> state.

        :param self:
        :param NextToken:  A string (provided by the <a>ListChangeSets</a> response output) that identifies the next page of change sets that you want to retrieve.<br/>StackName:  The name or the Amazon Resource Name (ARN) of the stack for which you want to list change sets.<br/>
        :return: NextToken:  If the output exceeds 1 MB, a string that identifies the next page of change sets. If there is no additional page, this value is null.<br/>Summaries:  A list of <code>ChangeSetSummary</code> structures that provides the ID and status of each change set for the specified stack.<br/>        """
        pass

    def list_exports(self, NextToken: str=None) -> ListExportsOutput:
        r"""Lists all exported output values in the account and Region in which you call this action. Use this action to see the exported output values that you can import into other stacks. To import values, use the <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-importvalue.html"> <code>Fn::ImportValue</code> </a> function.  For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-exports.html"> AWS CloudFormation Export Stack Output Values</a>.

        :param self:
        :param NextToken:  A string (provided by the <a>ListExports</a> response output) that identifies the next page of exported output values that you asked to retrieve.<br/>
        :return: NextToken:  If the output exceeds 100 exported output values, a string that identifies the next page of exports. If there is no additional page, this value is null.<br/>Exports:  The output for the <a>ListExports</a> action.<br/>        """
        pass

    def list_imports(self, ExportName: str, NextToken: str=None) -> ListImportsOutput:
        r"""Lists all stacks that are importing an exported output value. To modify or remove an exported output value, first use this action to see which stacks are using it. To see the exported output values in your account, see <a>ListExports</a>.  For more information about importing an exported output value, see the <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-importvalue.html"> <code>Fn::ImportValue</code> </a> function. 

        :param self:
        :param NextToken:  A string (provided by the <a>ListImports</a> response output) that identifies the next page of stacks that are importing the specified exported output value. <br/>ExportName:  The name of the exported output value. AWS CloudFormation returns the stack names that are importing this value. <br/>
        :return: NextToken:  A string that identifies the next page of exports. If there is no additional page, this value is null.<br/>Imports:  A list of stack names that are importing the specified exported output value. <br/>        """
        pass

    def list_stack_instances(self, StackSetName: str, NextToken: str=None, MaxResults: int=None, Filters: List[StackInstanceFilter]=None, StackInstanceAccount: str=None, StackInstanceRegion: str=None, CallAs: str=None) -> ListStackInstancesOutput:
        r"""Returns summary information about stack instances that are associated with the specified stack set. You can filter for stack instances that are associated with a specific AWS account name or Region, or that have a specific status.

        :param self:
        :param CallAs:  [Service-managed permissions] Specifies whether you are acting as an account administrator in the organization's management account or as a delegated administrator in a member account. By default, <code>SELF</code> is specified. Use <code>SELF</code> for stack sets with self-managed permissions. <ul> <li> If you are signed in to the management account, specify <code>SELF</code>. </li> <li> If you are signed in to a delegated administrator account, specify <code>DELEGATED_ADMIN</code>. Your AWS account must be registered as a delegated administrator in the management account. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html">Register a delegated administrator</a> in the <i>AWS CloudFormation User Guide</i>. </li> </ul><br/>StackInstanceRegion:  The name of the Region where you want to list stack instances. <br/>StackInstanceAccount:  The name of the AWS account that you want to list stack instances for.<br/>Filters:  The status that stack instances are filtered by.<br/>MaxResults:  The maximum number of results to be returned with a single call. If the number of available results exceeds this maximum, the response includes a <code>NextToken</code> value that you can assign to the <code>NextToken</code> request parameter to get the next set of results.<br/>NextToken:  If the previous request didn't return all of the remaining results, the response's <code>NextToken</code> parameter value is set to a token. To retrieve the next set of results, call <code>ListStackInstances</code> again and assign that token to the request object's <code>NextToken</code> parameter. If there are no remaining results, the previous response object's <code>NextToken</code> parameter is set to <code>null</code>.<br/>StackSetName:  The name or unique ID of the stack set that you want to list stack instances for.<br/>
        :return: NextToken:  If the request doesn't return all of the remaining results, <code>NextToken</code> is set to a token. To retrieve the next set of results, call <code>ListStackInstances</code> again and assign that token to the request object's <code>NextToken</code> parameter. If the request returns all results, <code>NextToken</code> is set to <code>null</code>.<br/>Summaries:  A list of <code>StackInstanceSummary</code> structures that contain information about the specified stack instances.<br/>        """
        pass

    def list_stack_resources(self, StackName: str, NextToken: str=None) -> ListStackResourcesOutput:
        r"""Returns descriptions of all resources of the specified stack. For deleted stacks, ListStackResources returns resource information for up to 90 days after the stack has been deleted.

        :param self:
        :param NextToken:  A string that identifies the next page of stack resources that you want to retrieve.<br/>StackName:  The name or the unique stack ID that is associated with the stack, which are not always interchangeable: <ul> <li> Running stacks: You can specify either the stack's name or its unique stack ID. </li> <li> Deleted stacks: You must specify the unique stack ID. </li> </ul> Default: There is no default value.<br/>
        :return: NextToken:  If the output exceeds 1 MB, a string that identifies the next page of stack resources. If no additional page exists, this value is null.<br/>StackResourceSummaries:  A list of <code>StackResourceSummary</code> structures.<br/>        """
        pass

    def list_stack_set_operation_results(self, OperationId: str, StackSetName: str, NextToken: str=None, MaxResults: int=None, CallAs: str=None) -> ListStackSetOperationResultsOutput:
        r"""Returns summary information about the results of a stack set operation. 

        :param self:
        :param CallAs:  [Service-managed permissions] Specifies whether you are acting as an account administrator in the organization's management account or as a delegated administrator in a member account. By default, <code>SELF</code> is specified. Use <code>SELF</code> for stack sets with self-managed permissions. <ul> <li> If you are signed in to the management account, specify <code>SELF</code>. </li> <li> If you are signed in to a delegated administrator account, specify <code>DELEGATED_ADMIN</code>. Your AWS account must be registered as a delegated administrator in the management account. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html">Register a delegated administrator</a> in the <i>AWS CloudFormation User Guide</i>. </li> </ul><br/>MaxResults:  The maximum number of results to be returned with a single call. If the number of available results exceeds this maximum, the response includes a <code>NextToken</code> value that you can assign to the <code>NextToken</code> request parameter to get the next set of results.<br/>NextToken:  If the previous request didn't return all of the remaining results, the response object's <code>NextToken</code> parameter value is set to a token. To retrieve the next set of results, call <code>ListStackSetOperationResults</code> again and assign that token to the request object's <code>NextToken</code> parameter. If there are no remaining results, the previous response object's <code>NextToken</code> parameter is set to <code>null</code>.<br/>OperationId:  The ID of the stack set operation.<br/>StackSetName:  The name or unique ID of the stack set that you want to get operation results for.<br/>
        :return: NextToken:  If the request doesn't return all results, <code>NextToken</code> is set to a token. To retrieve the next set of results, call <code>ListOperationResults</code> again and assign that token to the request object's <code>NextToken</code> parameter. If there are no remaining results, <code>NextToken</code> is set to <code>null</code>.<br/>Summaries:  A list of <code>StackSetOperationResultSummary</code> structures that contain information about the specified operation results, for accounts and Regions that are included in the operation.<br/>        """
        pass

    def list_stack_set_operations(self, StackSetName: str, NextToken: str=None, MaxResults: int=None, CallAs: str=None) -> ListStackSetOperationsOutput:
        r"""Returns summary information about operations performed on a stack set. 

        :param self:
        :param CallAs:  [Service-managed permissions] Specifies whether you are acting as an account administrator in the organization's management account or as a delegated administrator in a member account. By default, <code>SELF</code> is specified. Use <code>SELF</code> for stack sets with self-managed permissions. <ul> <li> If you are signed in to the management account, specify <code>SELF</code>. </li> <li> If you are signed in to a delegated administrator account, specify <code>DELEGATED_ADMIN</code>. Your AWS account must be registered as a delegated administrator in the management account. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html">Register a delegated administrator</a> in the <i>AWS CloudFormation User Guide</i>. </li> </ul><br/>MaxResults:  The maximum number of results to be returned with a single call. If the number of available results exceeds this maximum, the response includes a <code>NextToken</code> value that you can assign to the <code>NextToken</code> request parameter to get the next set of results.<br/>NextToken:  If the previous paginated request didn't return all of the remaining results, the response object's <code>NextToken</code> parameter value is set to a token. To retrieve the next set of results, call <code>ListStackSetOperations</code> again and assign that token to the request object's <code>NextToken</code> parameter. If there are no remaining results, the previous response object's <code>NextToken</code> parameter is set to <code>null</code>.<br/>StackSetName:  The name or unique ID of the stack set that you want to get operation summaries for.<br/>
        :return: NextToken:  If the request doesn't return all results, <code>NextToken</code> is set to a token. To retrieve the next set of results, call <code>ListOperationResults</code> again and assign that token to the request object's <code>NextToken</code> parameter. If there are no remaining results, <code>NextToken</code> is set to <code>null</code>.<br/>Summaries:  A list of <code>StackSetOperationSummary</code> structures that contain summary information about operations for the specified stack set.<br/>        """
        pass

    def list_stack_sets(self, NextToken: str=None, MaxResults: int=None, Status: str=None, CallAs: str=None) -> ListStackSetsOutput:
        r"""Returns summary information about stack sets that are associated with the user. <ul> <li> [Self-managed permissions] If you set the <code>CallAs</code> parameter to <code>SELF</code> while signed in to your AWS account, <code>ListStackSets</code> returns all self-managed stack sets in your AWS account. </li> <li> [Service-managed permissions] If you set the <code>CallAs</code> parameter to <code>SELF</code> while signed in to the organization's management account, <code>ListStackSets</code> returns all stack sets in the management account. </li> <li> [Service-managed permissions] If you set the <code>CallAs</code> parameter to <code>DELEGATED_ADMIN</code> while signed in to your member account, <code>ListStackSets</code> returns all stack sets with service-managed permissions in the management account. </li> </ul>

        :param self:
        :param CallAs:  [Service-managed permissions] Specifies whether you are acting as an account administrator in the management account or as a delegated administrator in a member account. By default, <code>SELF</code> is specified. Use <code>SELF</code> for stack sets with self-managed permissions. <ul> <li> If you are signed in to the management account, specify <code>SELF</code>. </li> <li> If you are signed in to a delegated administrator account, specify <code>DELEGATED_ADMIN</code>. Your AWS account must be registered as a delegated administrator in the management account. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html">Register a delegated administrator</a> in the <i>AWS CloudFormation User Guide</i>. </li> </ul><br/>Status:  The status of the stack sets that you want to get summary information about.<br/>MaxResults:  The maximum number of results to be returned with a single call. If the number of available results exceeds this maximum, the response includes a <code>NextToken</code> value that you can assign to the <code>NextToken</code> request parameter to get the next set of results.<br/>NextToken:  If the previous paginated request didn't return all of the remaining results, the response object's <code>NextToken</code> parameter value is set to a token. To retrieve the next set of results, call <code>ListStackSets</code> again and assign that token to the request object's <code>NextToken</code> parameter. If there are no remaining results, the previous response object's <code>NextToken</code> parameter is set to <code>null</code>.<br/>
        :return: NextToken:  If the request doesn't return all of the remaining results, <code>NextToken</code> is set to a token. To retrieve the next set of results, call <code>ListStackInstances</code> again and assign that token to the request object's <code>NextToken</code> parameter. If the request returns all results, <code>NextToken</code> is set to <code>null</code>.<br/>Summaries:  A list of <code>StackSetSummary</code> structures that contain information about the user's stack sets.<br/>        """
        pass

    def list_stacks(self, NextToken: str=None, StackStatusFilter: List[StackStatus]=None) -> ListStacksOutput:
        r"""Returns the summary information for stacks whose status matches the specified StackStatusFilter. Summary information for stacks that have been deleted is kept for 90 days after the stack is deleted. If no StackStatusFilter is specified, summary information for all stacks is returned (including existing stacks and stacks that have been deleted).

        :param self:
        :param StackStatusFilter:  Stack status to use as a filter. Specify one or more stack status codes to list only stacks with the specified status codes. For a complete list of stack status codes, see the <code>StackStatus</code> parameter of the <a>Stack</a> data type.<br/>NextToken:  A string that identifies the next page of stacks that you want to retrieve.<br/>
        :return: NextToken:  If the output exceeds 1 MB in size, a string that identifies the next page of stacks. If no additional page exists, this value is null.<br/>StackSummaries:  A list of <code>StackSummary</code> structures containing information about the specified stacks.<br/>        """
        pass

    def list_type_registrations(self, Type: str=None, TypeName: str=None, TypeArn: str=None, RegistrationStatusFilter: str=None, MaxResults: int=None, NextToken: str=None) -> ListTypeRegistrationsOutput:
        r"""Returns a list of registration tokens for the specified extension(s).

        :param self:
        :param NextToken:  If the previous paginated request didn't return all of the remaining results, the response object's <code>NextToken</code> parameter value is set to a token. To retrieve the next set of results, call this action again and assign that token to the request object's <code>NextToken</code> parameter. If there are no remaining results, the previous response object's <code>NextToken</code> parameter is set to <code>null</code>.<br/>MaxResults:  The maximum number of results to be returned with a single call. If the number of available results exceeds this maximum, the response includes a <code>NextToken</code> value that you can assign to the <code>NextToken</code> request parameter to get the next set of results.<br/>RegistrationStatusFilter:  The current status of the extension registration request. The default is <code>IN_PROGRESS</code>.<br/>TypeArn:  The Amazon Resource Name (ARN) of the extension. Conditional: You must specify either <code>TypeName</code> and <code>Type</code>, or <code>Arn</code>.<br/>TypeName:  The name of the extension. Conditional: You must specify either <code>TypeName</code> and <code>Type</code>, or <code>Arn</code>.<br/>Type:  The kind of extension. Conditional: You must specify either <code>TypeName</code> and <code>Type</code>, or <code>Arn</code>.<br/>
        :return: NextToken:  If the request doesn't return all of the remaining results, <code>NextToken</code> is set to a token. To retrieve the next set of results, call this action again and assign that token to the request object's <code>NextToken</code> parameter. If the request returns all results, <code>NextToken</code> is set to <code>null</code>.<br/>RegistrationTokenList:   A list of extension registration tokens. Use <code> <a>DescribeTypeRegistration</a> </code> to return detailed information about a type registration request.<br/>        """
        pass

    def list_type_versions(self, Type: str=None, TypeName: str=None, Arn: str=None, MaxResults: int=None, NextToken: str=None, DeprecatedStatus: str=None, PublisherId: str=None) -> ListTypeVersionsOutput:
        r"""Returns summary information about the versions of an extension.

        :param self:
        :param PublisherId:  The publisher ID of the extension publisher. Extensions published by Amazon are not assigned a publisher ID.<br/>DeprecatedStatus:  The deprecation status of the extension versions that you want to get summary information about. Valid values include: <ul> <li>  <code>LIVE</code>: The extension version is registered and can be used in CloudFormation operations, dependent on its provisioning behavior and visibility scope. </li> <li>  <code>DEPRECATED</code>: The extension version has been deregistered and can no longer be used in CloudFormation operations.  </li> </ul> The default is <code>LIVE</code>.<br/>NextToken:  If the previous paginated request didn't return all of the remaining results, the response object's <code>NextToken</code> parameter value is set to a token. To retrieve the next set of results, call this action again and assign that token to the request object's <code>NextToken</code> parameter. If there are no remaining results, the previous response object's <code>NextToken</code> parameter is set to <code>null</code>.<br/>MaxResults:  The maximum number of results to be returned with a single call. If the number of available results exceeds this maximum, the response includes a <code>NextToken</code> value that you can assign to the <code>NextToken</code> request parameter to get the next set of results.<br/>Arn:  The Amazon Resource Name (ARN) of the extension for which you want version summary information. Conditional: You must specify either <code>TypeName</code> and <code>Type</code>, or <code>Arn</code>.<br/>TypeName:  The name of the extension for which you want version summary information. Conditional: You must specify either <code>TypeName</code> and <code>Type</code>, or <code>Arn</code>.<br/>Type:  The kind of the extension. Conditional: You must specify either <code>TypeName</code> and <code>Type</code>, or <code>Arn</code>.<br/>
        :return: NextToken:  If the request doesn't return all of the remaining results, <code>NextToken</code> is set to a token. To retrieve the next set of results, call this action again and assign that token to the request object's <code>NextToken</code> parameter. If the request returns all results, <code>NextToken</code> is set to <code>null</code>.<br/>TypeVersionSummaries:  A list of <code>TypeVersionSummary</code> structures that contain information about the specified extension's versions.<br/>        """
        pass

    def list_types(self, Visibility: str=None, ProvisioningType: str=None, DeprecatedStatus: str=None, Type: str=None, Filters: TypeFilters=None, MaxResults: int=None, NextToken: str=None) -> ListTypesOutput:
        r"""Returns summary information about extension that have been registered with CloudFormation.

        :param self:
        :param NextToken:  If the previous paginated request didn't return all of the remaining results, the response object's <code>NextToken</code> parameter value is set to a token. To retrieve the next set of results, call this action again and assign that token to the request object's <code>NextToken</code> parameter. If there are no remaining results, the previous response object's <code>NextToken</code> parameter is set to <code>null</code>.<br/>MaxResults:  The maximum number of results to be returned with a single call. If the number of available results exceeds this maximum, the response includes a <code>NextToken</code> value that you can assign to the <code>NextToken</code> request parameter to get the next set of results.<br/>Filters:  Filter criteria to use in determining which extensions to return. If you specify a filter, CloudFormation ignores any specified <code>Visibility</code> value when returning the list of types.:<br/>Type:  The type of extension.<br/>DeprecatedStatus:  The deprecation status of the extension that you want to get summary information about. Valid values include: <ul> <li>  <code>LIVE</code>: The extension is registered for use in CloudFormation operations. </li> <li>  <code>DEPRECATED</code>: The extension has been deregistered and can no longer be used in CloudFormation operations.  </li> </ul><br/>ProvisioningType:  For resource types, the provisioning behavior of the resource type. AWS CloudFormation determines the provisioning type during registration, based on the types of handlers in the schema handler package submitted. Valid values include: <ul> <li>  <code>FULLY_MUTABLE</code>: The resource type includes an update handler to process updates to the type during stack update operations. </li> <li>  <code>IMMUTABLE</code>: The resource type does not include an update handler, so the type cannot be updated and must instead be replaced during stack update operations. </li> <li>  <code>NON_PROVISIONABLE</code>: The resource type does not include create, read, and delete handlers, and therefore cannot actually be provisioned. </li> </ul> The default is <code>FULLY_MUTABLE</code>.<br/>Visibility:  The scope at which the extensions are visible and usable in CloudFormation operations. Valid values include: <ul> <li>  <code>PRIVATE</code>: Extensions that are visible and usable within this account and region. This includes: <ul> <li> Private extensions you have registered in this account and region. </li> <li> Public extensions that you have activated in this account and region. </li> </ul> </li> <li>  <code>PUBLIC</code>: Extensions that are publicly visible and available to be activated within any Amazon account. This includes extensions from Amazon, as well as third-party publishers. </li> </ul> The default is <code>PRIVATE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TypeNamePrefix</i> A prefix to use as a filter for results.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PublisherId</i> The id of the publisher of the extension.  Extensions published by Amazon are not assigned a publisher ID. Use the <code>AWS-TYPES</code> category to specify a list of types published by Amazon.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Category</i> The category of extensions to return. <ul> <li>  <code>REGISTERED</code>: Private extensions that have been registered for this account and region. </li> <li>  <code>ACTIVATED</code>: Public extensions that have been activated for this account and region. </li> <li>  <code>THIRD-PARTY</code>: Extensions available for use from publishers other than Amazon. This includes: <ul> <li> Private extensions registered in the account. </li> <li> Public extensions from publishers other than Amazon, whether activated or not. </li> </ul> </li> <li>  <code>AWS-TYPES</code>: Extensions available for use from Amazon. </li> </ul><br/>
        :return: NextToken:  If the request doesn't return all of the remaining results, <code>NextToken</code> is set to a token. To retrieve the next set of results, call this action again and assign that token to the request object's <code>NextToken</code> parameter. If the request returns all results, <code>NextToken</code> is set to <code>null</code>.<br/>TypeSummaries:  A list of <code>TypeSummary</code> structures that contain information about the specified extensions.<br/>        """
        pass

    def publish_type(self, Type: str=None, Arn: str=None, TypeName: str=None, PublicVersionNumber: str=None) -> PublishTypeOutput:
        r"""Publishes the specified extension to the CloudFormation registry as a public extension in this region. Public extensions are available for use by all CloudFormation users. For more information on publishing extensions, see <a href="https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/publish-extension.html">Publishing extensions to make them available for public use</a> in the <i>CloudFormation CLI User Guide</i>. To publish an extension, you must be registered as a publisher with CloudFormation. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterPublisher.html">RegisterPublisher</a>.

        :param self:
        :param PublicVersionNumber:  The version number to assign to this version of the extension. Use the following format, and adhere to semantic versioning when assigning a version number to your extension:   <code>MAJOR.MINOR.PATCH</code>  For more information, see <a href="https://semver.org/">Semantic Versioning 2.0.0</a>. If you do not specify a version number, CloudFormation increments the version number by one minor version release.<br/>TypeName:  The name of the extension. Conditional: You must specify <code>Arn</code>, or <code>TypeName</code> and <code>Type</code>.<br/>Arn:  The Amazon Resource Number (ARN) of the extension. Conditional: You must specify <code>Arn</code>, or <code>TypeName</code> and <code>Type</code>.<br/>Type:  The type of the extension. Conditional: You must specify <code>Arn</code>, or <code>TypeName</code> and <code>Type</code>.<br/>
        :return: PublicTypeArn:  The Amazon Resource Number (ARN) assigned to the public extension upon publication.<br/>        """
        pass

    def record_handler_progress(self, OperationStatus: str, BearerToken: str, CurrentOperationStatus: str=None, StatusMessage: str=None, ErrorCode: str=None, ResourceModel: str=None, ClientRequestToken: str=None) -> RecordHandlerProgressOutput:
        r"""Reports progress of a resource handler to CloudFormation. Reserved for use by the <a href="https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html">CloudFormation CLI</a>. Do not use this API in your code.

        :param self:
        :param ClientRequestToken:  Reserved for use by the <a href="https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html">CloudFormation CLI</a>.<br/>ResourceModel:  Reserved for use by the <a href="https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html">CloudFormation CLI</a>.<br/>ErrorCode:  Reserved for use by the <a href="https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html">CloudFormation CLI</a>.<br/>StatusMessage:  Reserved for use by the <a href="https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html">CloudFormation CLI</a>.<br/>CurrentOperationStatus:  Reserved for use by the <a href="https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html">CloudFormation CLI</a>.<br/>OperationStatus:  Reserved for use by the <a href="https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html">CloudFormation CLI</a>.<br/>BearerToken:  Reserved for use by the <a href="https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html">CloudFormation CLI</a>.<br/>
        :return:         """
        pass

    def register_publisher(self, AcceptTermsAndConditions: AcceptTermsAndConditions=None, ConnectionArn: str=None) -> RegisterPublisherOutput:
        r"""Registers your account as a publisher of public extensions in the CloudFormation registry. Public extensions are available for use by all CloudFormation users. This publisher ID applies to your account in all AWS regions. For information on requirements for registering as a public extension publisher, see <a href="https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/publish-extension.html#publish-extension-prereqs">Registering your account to publish CloudFormation extensions</a> in the <i>CloudFormation CLI User Guide</i>. <p/>

        :param self:
        :param ConnectionArn:  If you are using a Bitbucket or GitHub account for identity verification, the Amazon Resource Name (ARN) for your connection to that account. For more information, see <a href="https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/publish-extension.html#publish-extension-prereqs">Registering your account to publish CloudFormation extensions</a> in the <i>CloudFormation CLI User Guide</i>.<br/>AcceptTermsAndConditions:  Whether you accept the terms and conditions for publishing extensions in the CloudFormation registry. You must accept the terms and conditions in order to register to publish public extensions to the CloudFormation registry. The default is <code>false</code>.<br/>
        :return: PublisherId:  The ID assigned this account by CloudFormation for publishing extensions.<br/>        """
        pass

    def register_type(self, SchemaHandlerPackage: str, TypeName: str, Type: str=None, LoggingConfig: LoggingConfig=None, ExecutionRoleArn: str=None, ClientRequestToken: str=None) -> RegisterTypeOutput:
        r"""Registers an extension with the CloudFormation service. Registering an extension makes it available for use in CloudFormation templates in your AWS account, and includes: <ul> <li> Validating the extension schema </li> <li> Determining which handlers, if any, have been specified for the extension </li> <li> Making the extension available for use in your account </li> </ul> For more information on how to develop extensions and ready them for registeration, see <a href="https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-types.html">Creating Resource Providers</a> in the <i>CloudFormation CLI User Guide</i>. You can have a maximum of 50 resource extension versions registered at a time. This maximum is per account and per region. Use <a href="AWSCloudFormation/latest/APIReference/API_DeregisterType.html">DeregisterType</a> to deregister specific extension versions if necessary. Once you have initiated a registration request using <code> <a>RegisterType</a> </code>, you can use <code> <a>DescribeTypeRegistration</a> </code> to monitor the progress of the registration request. Once you have registered a private extension in your account and region, use <a href="AWSCloudFormation/latest/APIReference/API_SetTypeConfiguration.html">SetTypeConfiguration</a> to specify configuration properties for the extension. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-register.html#registry-set-configuration">Configuring extensions at the account level</a> in the <i>CloudFormation User Guide</i>.

        :param self:
        :param ClientRequestToken:  A unique identifier that acts as an idempotency key for this registration request. Specifying a client request token prevents CloudFormation from generating more than one version of an extension from the same registeration request, even if the request is submitted multiple times. <br/>ExecutionRoleArn:  The Amazon Resource Name (ARN) of the IAM role for CloudFormation to assume when invoking the extension. For CloudFormation to assume the specified execution role, the role must contain a trust relationship with the CloudFormation service principle (<code>resources.cloudformation.amazonaws.com</code>). For more information on adding trust relationships, see <a href="IAM/latest/UserGuide/roles-managingrole-editing-console.html#roles-managingrole_edit-trust-policy">Modifying a role trust policy</a> in the <i>AWS Identity and Access Management User Guide</i>. If your extension calls AWS APIs in any of its handlers, you must create an <i> <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html">IAM execution role</a> </i> that includes the necessary permissions to call those AWS APIs, and provision that execution role in your account. When CloudFormation needs to invoke the resource type handler, CloudFormation assumes this execution role to create a temporary session token, which it then passes to the resource type handler, thereby supplying your resource type with the appropriate credentials.<br/>LoggingConfig:  Specifies logging configuration information for an extension.:<br/>SchemaHandlerPackage:  A url to the S3 bucket containing the extension project package that contains the neccessary files for the extension you want to register. For information on generating a schema handler package for the extension you want to register, see <a href="https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-cli-submit.html">submit</a> in the <i>CloudFormation CLI User Guide</i>. <note> The user registering the extension must be able to access the package in the S3 bucket. That is, the user needs to have <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a> permissions for the schema handler package. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazons3.html">Actions, Resources, and Condition Keys for Amazon S3</a> in the <i>AWS Identity and Access Management User Guide</i>. </note><br/>TypeName:  The name of the extension being registered. We recommend that extension names adhere to the following patterns:  <ul> <li> For resource types, <i>company_or_organization</i>::<i>service</i>::<i>type</i>. </li> <li> For modules, <i>company_or_organization</i>::<i>service</i>::<i>type</i>::MODULE. </li> </ul> <note> The following organization namespaces are reserved and cannot be used in your extension names: <ul> <li>  <code>Alexa</code>  </li> <li>  <code>AMZN</code>  </li> <li>  <code>Amazon</code>  </li> <li>  <code>AWS</code>  </li> <li>  <code>Custom</code>  </li> <li>  <code>Dev</code>  </li> </ul> </note><br/>Type:  The kind of extension.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogGroupName</i> The Amazon CloudWatch log group to which CloudFormation sends error logging information when invoking the extension's handlers.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogRoleArn</i> The ARN of the role that CloudFormation should assume when sending log entries to CloudWatch logs.<br/>
        :return: RegistrationToken:  The identifier for this registration request. Use this registration token when calling <code> <a>DescribeTypeRegistration</a> </code>, which returns information about the status and IDs of the extension registration. <br/>        """
        pass

    def set_stack_policy(self, StackName: str, StackPolicyBody: str=None, StackPolicyURL: str=None):
        r"""Sets a stack policy for a specified stack.

        :param self:
        :param StackPolicyURL:  Location of a file containing the stack policy. The URL must point to a policy (maximum size: 16 KB) located in an S3 bucket in the same Region as the stack. You can specify either the <code>StackPolicyBody</code> or the <code>StackPolicyURL</code> parameter, but not both.<br/>StackPolicyBody:  Structure containing the stack policy body. For more information, go to <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/protect-stack-resources.html"> Prevent Updates to Stack Resources</a> in the AWS CloudFormation User Guide. You can specify either the <code>StackPolicyBody</code> or the <code>StackPolicyURL</code> parameter, but not both.<br/>StackName:  The name or unique stack ID that you want to associate a policy with.<br/>
        :return:         """
        pass

    def set_type_configuration(self, Configuration: str, TypeArn: str=None, ConfigurationAlias: str=None, TypeName: str=None, Type: str=None) -> SetTypeConfigurationOutput:
        r"""Specifies the configuration data for a registered CloudFormation extension, in the given account and region. To view the current configuration data for an extension, refer to the <code>ConfigurationSchema</code> element of <a href="AWSCloudFormation/latest/APIReference/API_DescribeType.html">DescribeType</a>. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-register.html#registry-set-configuration">Configuring extensions at the account level</a> in the <i>CloudFormation User Guide</i>. <important> It is strongly recommended that you use dynamic references to restrict sensitive configuration definitions, such as third-party credentials. For more details on dynamic references, see <a href="https://docs.aws.amazon.com/">Using dynamic references to specify template values</a> in the <i>AWS CloudFormation User Guide</i>. </important>

        :param self:
        :param Type:  The type of extension. Conditional: You must specify <code>ConfigurationArn</code>, or <code>Type</code> and <code>TypeName</code>.<br/>TypeName:  The name of the extension. Conditional: You must specify <code>ConfigurationArn</code>, or <code>Type</code> and <code>TypeName</code>.<br/>ConfigurationAlias:  An alias by which to refer to this extension configuration data. Conditional: Specifying a configuration alias is required when setting a configuration for a resource type extension.<br/>Configuration:  The configuration data for the extension, in this account and region.  The configuration data must be formatted as JSON, and validate against the schema returned in the <code>ConfigurationSchema</code> response element of <a href="AWSCloudFormation/latest/APIReference/API_DescribeType.html">API_DescribeType</a>. For more information, see <a href="https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-model.html#resource-type-howto-configuration">Defining account-level configuration data for an extension</a> in the <i>CloudFormation CLI User Guide</i>.<br/>TypeArn:  The Amazon Resource Name (ARN) for the extension, in this account and region. For public extensions, this will be the ARN assigned when you <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ActivateType.html">activate the type</a> in this account and region. For private extensions, this will be the ARN assigned when you <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html">register the type</a> in this account and region.  Do not include the extension versions suffix at the end of the ARN. You can set the configuration for an extension, but not for a specific extension version.<br/>
        :return: ConfigurationArn:  The Amazon Resource Name (ARN) for the configuration data, in this account and region. Conditional: You must specify <code>ConfigurationArn</code>, or <code>Type</code> and <code>TypeName</code>.<br/>        """
        pass

    def set_type_default_version(self, Arn: str=None, Type: str=None, TypeName: str=None, VersionId: str=None) -> SetTypeDefaultVersionOutput:
        r"""Specify the default version of an extension. The default version of an extension will be used in CloudFormation operations.

        :param self:
        :param VersionId:  The ID of a specific version of the extension. The version ID is the value at the end of the Amazon Resource Name (ARN) assigned to the extension version when it is registered.<br/>TypeName:  The name of the extension. Conditional: You must specify either <code>TypeName</code> and <code>Type</code>, or <code>Arn</code>.<br/>Type:  The kind of extension. Conditional: You must specify either <code>TypeName</code> and <code>Type</code>, or <code>Arn</code>.<br/>Arn:  The Amazon Resource Name (ARN) of the extension for which you want version summary information. Conditional: You must specify either <code>TypeName</code> and <code>Type</code>, or <code>Arn</code>.<br/>
        :return:         """
        pass

    def signal_resource(self, Status: str, UniqueId: str, LogicalResourceId: str, StackName: str):
        r"""Sends a signal to the specified resource with a success or failure status. You can use the SignalResource API in conjunction with a creation policy or update policy. AWS CloudFormation doesn't proceed with a stack creation or update until resources receive the required number of signals or the timeout period is exceeded. The SignalResource API is useful in cases where you want to send signals from anywhere other than an Amazon EC2 instance.

        :param self:
        :param Status:  The status of the signal, which is either success or failure. A failure signal causes AWS CloudFormation to immediately fail the stack creation or update.<br/>UniqueId:  A unique ID of the signal. When you signal Amazon EC2 instances or Auto Scaling groups, specify the instance ID that you are signaling as the unique ID. If you send multiple signals to a single resource (such as signaling a wait condition), each signal requires a different unique ID.<br/>LogicalResourceId:  The logical ID of the resource that you want to signal. The logical ID is the name of the resource that given in the template.<br/>StackName:  The stack name or unique stack ID that includes the resource that you want to signal.<br/>
        :return:         """
        pass

    def stop_stack_set_operation(self, OperationId: str, StackSetName: str, CallAs: str=None) -> StopStackSetOperationOutput:
        r"""Stops an in-progress operation on a stack set and its associated stack instances. 

        :param self:
        :param CallAs:  [Service-managed permissions] Specifies whether you are acting as an account administrator in the organization's management account or as a delegated administrator in a member account. By default, <code>SELF</code> is specified. Use <code>SELF</code> for stack sets with self-managed permissions. <ul> <li> If you are signed in to the management account, specify <code>SELF</code>. </li> <li> If you are signed in to a delegated administrator account, specify <code>DELEGATED_ADMIN</code>. Your AWS account must be registered as a delegated administrator in the management account. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html">Register a delegated administrator</a> in the <i>AWS CloudFormation User Guide</i>. </li> </ul><br/>OperationId:  The ID of the stack operation. <br/>StackSetName:  The name or unique ID of the stack set that you want to stop the operation for.<br/>
        :return:         """
        pass

    def test_type(self, Arn: str=None, Type: str=None, TypeName: str=None, VersionId: str=None, LogDeliveryBucket: str=None) -> TestTypeOutput:
        r"""Tests a registered extension to make sure it meets all necessary requirements for being published in the CloudFormation registry. <ul> <li> For resource types, this includes passing all contracts tests defined for the type. </li> <li> For modules, this includes determining if the module's model meets all necessary requirements. </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/publish-extension.html#publish-extension-testing">Testing your public extension prior to publishing</a> in the <i>CloudFormation CLI User Guide</i>. If you do not specify a version, CloudFormation uses the default version of the extension in your account and region for testing. To perform testing, CloudFormation assumes the execution role specified when the test was registered. For more information, see <a href="AWSCloudFormation/latest/APIReference/API_RegisterType.html">RegisterType</a>. Once you've initiated testing on an extension using <code>TestType</code>, you can use <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DescribeType.html">DescribeType</a> to monitor the current test status and test status description for the extension. An extension must have a test status of <code>PASSED</code> before it can be published. For more information, see <a href="https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-publish.html">Publishing extensions to make them available for public use</a> in the <i>CloudFormation CLI User Guide</i>.

        :param self:
        :param LogDeliveryBucket:  The S3 bucket to which CloudFormation delivers the contract test execution logs. CloudFormation delivers the logs by the time contract testing has completed and the extension has been assigned a test type status of <code>PASSED</code> or <code>FAILED</code>. The user calling <code>TestType</code> must be able to access items in the specified S3 bucket. Specifically, the user needs the following permissions: <ul> <li> GetObject </li> <li> PutObject </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html">Actions, Resources, and Condition Keys for Amazon S3</a> in the <i>AWS Identity and Access Management User Guide</i>.<br/>VersionId:  The version of the extension to test. You can specify the version id with either <code>Arn</code>, or with <code>TypeName</code> and <code>Type</code>. If you do not specify a version, CloudFormation uses the default version of the extension in this account and region for testing.<br/>TypeName:  The name of the extension to test. Conditional: You must specify <code>Arn</code>, or <code>TypeName</code> and <code>Type</code>.<br/>Type:  The type of the extension to test. Conditional: You must specify <code>Arn</code>, or <code>TypeName</code> and <code>Type</code>.<br/>Arn:  The Amazon Resource Number (ARN) of the extension. Conditional: You must specify <code>Arn</code>, or <code>TypeName</code> and <code>Type</code>.<br/>
        :return: TypeVersionArn:  The Amazon Resource Number (ARN) of the extension.<br/>        """
        pass

    def update_stack(self, StackName: str, TemplateBody: str=None, TemplateURL: str=None, UsePreviousTemplate: UsePreviousTemplate=None, StackPolicyDuringUpdateBody: str=None, StackPolicyDuringUpdateURL: str=None, Parameters: List[Parameter]=None, Capabilities: List[Capability]=None, ResourceTypes: List[ResourceType]=None, RoleARN: str=None, RollbackConfiguration: RollbackConfiguration=None, StackPolicyBody: str=None, StackPolicyURL: str=None, NotificationARNs: List[NotificationARN]=None, Tags: List[Tag]=None, ClientRequestToken: str=None) -> UpdateStackOutput:
        r"""Updates a stack as specified in the template. After the call completes successfully, the stack update starts. You can check the status of the stack via the <a>DescribeStacks</a> action. To get a copy of the template for an existing stack, you can use the <a>GetTemplate</a> action. For more information about creating an update template, updating a stack, and monitoring the progress of the update, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks.html">Updating a Stack</a>.

        :param self:
        :param ClientRequestToken:  A unique identifier for this <code>UpdateStack</code> request. Specify this token if you plan to retry requests so that AWS CloudFormation knows that you're not attempting to update a stack with the same name. You might retry <code>UpdateStack</code> requests to ensure that AWS CloudFormation successfully received them. All events triggered by a given stack operation are assigned the same client request token, which you can use to track operations. For example, if you execute a <code>CreateStack</code> operation with the token <code>token1</code>, then all the <code>StackEvents</code> generated by that operation will have <code>ClientRequestToken</code> set as <code>token1</code>. In the console, stack operations display the client request token on the Events tab. Stack operations that are initiated from the console use the token format <i>Console-StackOperation-ID</i>, which helps you easily identify the stack operation . For example, if you create a stack using the console, each stack event would be assigned the same token in the following format: <code>Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002</code>. <br/>Tags:  Key-value pairs to associate with this stack. AWS CloudFormation also propagates these tags to supported resources in the stack. You can specify a maximum number of 50 tags. If you don't specify this parameter, AWS CloudFormation doesn't modify the stack's tags. If you specify an empty value, AWS CloudFormation removes all associated tags.<br/>NotificationARNs:  Amazon Simple Notification Service topic Amazon Resource Names (ARNs) that AWS CloudFormation associates with the stack. Specify an empty list to remove all notification topics.<br/>StackPolicyURL:  Location of a file containing the updated stack policy. The URL must point to a policy (max size: 16KB) located in an S3 bucket in the same Region as the stack. You can specify either the <code>StackPolicyBody</code> or the <code>StackPolicyURL</code> parameter, but not both. You might update the stack policy, for example, in order to protect a new resource that you created during a stack update. If you do not specify a stack policy, the current policy that is associated with the stack is unchanged.<br/>StackPolicyBody:  Structure containing a new stack policy body. You can specify either the <code>StackPolicyBody</code> or the <code>StackPolicyURL</code> parameter, but not both. You might update the stack policy, for example, in order to protect a new resource that you created during a stack update. If you do not specify a stack policy, the current policy that is associated with the stack is unchanged.<br/>RollbackConfiguration:  The rollback triggers for AWS CloudFormation to monitor during stack creation and updating operations, and for the specified monitoring period afterwards.:<br/>RoleARN:  The Amazon Resource Name (ARN) of an AWS Identity and Access Management (IAM) role that AWS CloudFormation assumes to update the stack. AWS CloudFormation uses the role's credentials to make calls on your behalf. AWS CloudFormation always uses this role for all future operations on the stack. As long as users have permission to operate on the stack, AWS CloudFormation uses this role even if the users don't have permission to pass it. Ensure that the role grants least privilege. If you don't specify a value, AWS CloudFormation uses the role that was previously associated with the stack. If no role is available, AWS CloudFormation uses a temporary session that is generated from your user credentials.<br/>ResourceTypes:  The template resource types that you have permissions to work with for this update stack action, such as <code>AWS::EC2::Instance</code>, <code>AWS::EC2::*</code>, or <code>Custom::MyCustomInstance</code>. If the list of resource types doesn't include a resource that you're updating, the stack update fails. By default, AWS CloudFormation grants permissions to all resource types. AWS Identity and Access Management (IAM) uses this parameter for AWS CloudFormation-specific condition keys in IAM policies. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html">Controlling Access with AWS Identity and Access Management</a>.<br/>Capabilities:  In some cases, you must explicitly acknowledge that your stack template contains certain capabilities in order for AWS CloudFormation to update the stack. <ul> <li>  <code>CAPABILITY_IAM</code> and <code>CAPABILITY_NAMED_IAM</code>  Some stack templates might include resources that can affect permissions in your AWS account; for example, by creating new AWS Identity and Access Management (IAM) users. For those stacks, you must explicitly acknowledge this by specifying one of these capabilities. The following IAM resources require you to specify either the <code>CAPABILITY_IAM</code> or <code>CAPABILITY_NAMED_IAM</code> capability. <ul> <li> If you have IAM resources, you can specify either capability.  </li> <li> If you have IAM resources with custom names, you <i>must</i> specify <code>CAPABILITY_NAMED_IAM</code>.  </li> <li> If you don't specify either of these capabilities, AWS CloudFormation returns an <code>InsufficientCapabilities</code> error. </li> </ul> If your stack template contains these resources, we recommend that you review all permissions associated with them and edit their permissions if necessary. <ul> <li>  <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html"> AWS::IAM::AccessKey</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html"> AWS::IAM::Group</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html"> AWS::IAM::InstanceProfile</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html"> AWS::IAM::Policy</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html"> AWS::IAM::Role</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html"> AWS::IAM::User</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html"> AWS::IAM::UserToGroupAddition</a>  </li> </ul> For more information, see <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities">Acknowledging IAM Resources in AWS CloudFormation Templates</a>. </li> <li>  <code>CAPABILITY_AUTO_EXPAND</code>  Some template contain macros. Macros perform custom processing on templates; this can include simple actions like find-and-replace operations, all the way to extensive transformations of entire templates. Because of this, users typically create a change set from the processed template, so that they can review the changes resulting from the macros before actually updating the stack. If your stack template contains one or more macros, and you choose to update a stack directly from the processed template, without first reviewing the resulting changes in a change set, you must acknowledge this capability. This includes the <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/create-reusable-transform-function-snippets-and-add-to-your-template-with-aws-include-transform.html">AWS::Include</a> and <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-serverless.html">AWS::Serverless</a> transforms, which are macros hosted by AWS CloudFormation. If you want to update a stack from a stack template that contains macros <i>and</i> nested stacks, you must update the stack directly from the template using this capability. <important> You should only update stacks directly from a stack template that contains macros if you know what processing the macro performs. Each macro relies on an underlying Lambda service function for processing stack templates. Be aware that the Lambda function owner can update the function operation without AWS CloudFormation being notified. </important> For more information, see <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html">Using AWS CloudFormation Macros to Perform Custom Processing on Templates</a>. </li> </ul><br/>Parameters:  A list of <code>Parameter</code> structures that specify input parameters for the stack. For more information, see the <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_Parameter.html">Parameter</a> data type.<br/>StackPolicyDuringUpdateURL:  Location of a file containing the temporary overriding stack policy. The URL must point to a policy (max size: 16KB) located in an S3 bucket in the same Region as the stack. You can specify either the <code>StackPolicyDuringUpdateBody</code> or the <code>StackPolicyDuringUpdateURL</code> parameter, but not both. If you want to update protected resources, specify a temporary overriding stack policy during this update. If you do not specify a stack policy, the current policy that is associated with the stack will be used.<br/>StackPolicyDuringUpdateBody:  Structure containing the temporary overriding stack policy body. You can specify either the <code>StackPolicyDuringUpdateBody</code> or the <code>StackPolicyDuringUpdateURL</code> parameter, but not both. If you want to update protected resources, specify a temporary overriding stack policy during this update. If you do not specify a stack policy, the current policy that is associated with the stack will be used.<br/>UsePreviousTemplate:  Reuse the existing template that is associated with the stack that you are updating. Conditional: You must specify only one of the following parameters: <code>TemplateBody</code>, <code>TemplateURL</code>, or set the <code>UsePreviousTemplate</code> to <code>true</code>.<br/>TemplateURL:  Location of file containing the template body. The URL must point to a template that is located in an Amazon S3 bucket or a Systems Manager document. For more information, go to <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html">Template Anatomy</a> in the AWS CloudFormation User Guide. Conditional: You must specify only one of the following parameters: <code>TemplateBody</code>, <code>TemplateURL</code>, or set the <code>UsePreviousTemplate</code> to <code>true</code>.<br/>TemplateBody:  Structure containing the template body with a minimum length of 1 byte and a maximum length of 51,200 bytes. (For more information, go to <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html">Template Anatomy</a> in the AWS CloudFormation User Guide.) Conditional: You must specify only one of the following parameters: <code>TemplateBody</code>, <code>TemplateURL</code>, or set the <code>UsePreviousTemplate</code> to <code>true</code>.<br/>StackName:  The name or unique stack ID of the stack to update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MonitoringTimeInMinutes</i> The amount of time, in minutes, during which CloudFormation should monitor all the rollback triggers after the stack creation or update operation deploys all necessary resources. The default is 0 minutes. If you specify a monitoring period but do not specify any rollback triggers, CloudFormation still waits the specified period of time before cleaning up old resources after update operations. You can use this monitoring period to perform any manual stack validation desired, and manually cancel the stack creation or update (using <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_CancelUpdateStack.html">CancelUpdateStack</a>, for example) as necessary. If you specify 0 for this parameter, CloudFormation still monitors the specified rollback triggers during stack creation and update operations. Then, for update operations, it begins disposing of old resources immediately once the operation completes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RollbackTriggers</i> The triggers to monitor during stack creation or update actions.  By default, AWS CloudFormation saves the rollback triggers specified for a stack and applies them to any subsequent update operations for the stack, unless you specify otherwise. If you do specify rollback triggers for this parameter, those triggers replace any list of triggers previously specified for the stack. This means: <ul> <li> To use the rollback triggers previously specified for this stack, if any, don't specify this parameter. </li> <li> To specify new or updated rollback triggers, you must specify <i>all</i> the triggers that you want used for this stack, even triggers you've specifed before (for example, when creating the stack or during a previous stack update). Any triggers that you don't include in the updated list of triggers are no longer applied to the stack. </li> <li> To remove all currently specified triggers, specify an empty list for this parameter. </li> </ul> If a specified trigger is missing, the entire stack operation fails and is rolled back. <br/>
        :return: StackId:  Unique identifier of the stack.<br/>        """
        pass

    def update_stack_instances(self, Regions: List[Region], StackSetName: str, Accounts: List[Account]=None, DeploymentTargets: DeploymentTargets=None, ParameterOverrides: List[Parameter]=None, OperationPreferences: StackSetOperationPreferences=None, OperationId: str=None, CallAs: str=None) -> UpdateStackInstancesOutput:
        r"""Updates the parameter values for stack instances for the specified accounts, within the specified Regions. A stack instance refers to a stack in a specific account and Region.  You can only update stack instances in Regions and accounts where they already exist; to create additional stack instances, use <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_CreateStackInstances.html">CreateStackInstances</a>.  During stack set updates, any parameters overridden for a stack instance are not updated, but retain their overridden value. You can only update the parameter <i>values</i> that are specified in the stack set; to add or delete a parameter itself, use <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_UpdateStackSet.html">UpdateStackSet</a> to update the stack set template. If you add a parameter to a template, before you can override the parameter value specified in the stack set you must first use <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_UpdateStackSet.html">UpdateStackSet</a> to update all stack instances with the updated template and parameter value specified in the stack set. Once a stack instance has been updated with the new parameter, you can then override the parameter value using <code>UpdateStackInstances</code>.

        :param self:
        :param CallAs:  [Service-managed permissions] Specifies whether you are acting as an account administrator in the organization's management account or as a delegated administrator in a member account. By default, <code>SELF</code> is specified. Use <code>SELF</code> for stack sets with self-managed permissions. <ul> <li> If you are signed in to the management account, specify <code>SELF</code>. </li> <li> If you are signed in to a delegated administrator account, specify <code>DELEGATED_ADMIN</code>. Your AWS account must be registered as a delegated administrator in the management account. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html">Register a delegated administrator</a> in the <i>AWS CloudFormation User Guide</i>. </li> </ul><br/>OperationId:  The unique identifier for this stack set operation.  The operation ID also functions as an idempotency token, to ensure that AWS CloudFormation performs the stack set operation only once, even if you retry the request multiple times. You might retry stack set operation requests to ensure that AWS CloudFormation successfully received them. If you don't specify an operation ID, the SDK generates one automatically. <br/>OperationPreferences:  Preferences for how AWS CloudFormation performs this stack set operation.:<br/>ParameterOverrides:   A list of input parameters whose values you want to update for the specified stack instances.  Any overridden parameter values will be applied to all stack instances in the specified accounts and Regions. When specifying parameters and their values, be aware of how AWS CloudFormation sets parameter values during stack instance update operations: <ul> <li> To override the current value for a parameter, include the parameter and specify its value. </li> <li> To leave a parameter set to its present value, you can do one of the following: <ul> <li> Do not include the parameter in the list. </li> <li> Include the parameter and specify <code>UsePreviousValue</code> as <code>true</code>. (You cannot specify both a value and set <code>UsePreviousValue</code> to <code>true</code>.) </li> </ul> </li> <li> To set all overridden parameter back to the values specified in the stack set, specify a parameter list but do not include any parameters. </li> <li> To leave all parameters set to their present values, do not specify this property at all. </li> </ul> During stack set updates, any parameter values overridden for a stack instance are not updated, but retain their overridden value. You can only override the parameter <i>values</i> that are specified in the stack set; to add or delete a parameter itself, use <code>UpdateStackSet</code> to update the stack set template. If you add a parameter to a template, before you can override the parameter value specified in the stack set you must first use <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_UpdateStackSet.html">UpdateStackSet</a> to update all stack instances with the updated template and parameter value specified in the stack set. Once a stack instance has been updated with the new parameter, you can then override the parameter value using <code>UpdateStackInstances</code>.<br/>Regions:  The names of one or more Regions in which you want to update parameter values for stack instances. The overridden parameter values will be applied to all stack instances in the specified accounts and Regions.<br/>DeploymentTargets:  [Service-managed permissions] The AWS Organizations accounts for which you want to update parameter values for stack instances. If your update targets OUs, the overridden parameter values only apply to the accounts that are currently in the target OUs and their child OUs. Accounts added to the target OUs and their child OUs in the future won't use the overridden values. You can specify <code>Accounts</code> or <code>DeploymentTargets</code>, but not both.:<br/>Accounts:  [Self-managed permissions] The names of one or more AWS accounts for which you want to update parameter values for stack instances. The overridden parameter values will be applied to all stack instances in the specified accounts and Regions. You can specify <code>Accounts</code> or <code>DeploymentTargets</code>, but not both.<br/>StackSetName:  The name or unique ID of the stack set associated with the stack instances.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OrganizationalUnitIds</i> The organization root ID or organizational unit (OU) IDs to which StackSets deploys.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccountsUrl</i> Returns the value of the AccountsUrl property.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Accounts</i> The names of one or more AWS accounts for which you want to deploy stack set updates.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxConcurrentPercentage</i> The maximum percentage of accounts in which to perform this operation at one time. When calculating the number of accounts based on the specified percentage, AWS CloudFormation rounds down to the next whole number. This is true except in cases where rounding down would result is zero. In this case, CloudFormation sets the number as one instead. Note that this setting lets you specify the <i>maximum</i> for operations. For large deployments, under certain circumstances the actual number of accounts acted upon concurrently may be lower due to service throttling. Conditional: You must specify either <code>MaxConcurrentCount</code> or <code>MaxConcurrentPercentage</code>, but not both. By default, <code>1</code> is specified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxConcurrentCount</i> The maximum number of accounts in which to perform this operation at one time. This is dependent on the value of <code>FailureToleranceCount</code>. <code>MaxConcurrentCount</code> is at most one more than the <code>FailureToleranceCount</code>. Note that this setting lets you specify the <i>maximum</i> for operations. For large deployments, under certain circumstances the actual number of accounts acted upon concurrently may be lower due to service throttling. Conditional: You must specify either <code>MaxConcurrentCount</code> or <code>MaxConcurrentPercentage</code>, but not both. By default, <code>1</code> is specified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FailureTolerancePercentage</i> The percentage of accounts, per Region, for which this stack operation can fail before AWS CloudFormation stops the operation in that Region. If the operation is stopped in a Region, AWS CloudFormation doesn't attempt the operation in any subsequent Regions. When calculating the number of accounts based on the specified percentage, AWS CloudFormation rounds <i>down</i> to the next whole number. Conditional: You must specify either <code>FailureToleranceCount</code> or <code>FailureTolerancePercentage</code>, but not both. By default, <code>0</code> is specified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FailureToleranceCount</i> The number of accounts, per Region, for which this operation can fail before AWS CloudFormation stops the operation in that Region. If the operation is stopped in a Region, AWS CloudFormation doesn't attempt the operation in any subsequent Regions. Conditional: You must specify either <code>FailureToleranceCount</code> or <code>FailureTolerancePercentage</code> (but not both). By default, <code>0</code> is specified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RegionOrder</i> The order of the Regions in where you want to perform the stack operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RegionConcurrencyType</i> The concurrency type of deploying StackSets operations in regions, could be in parallel or one region at a time.<br/>
        :return: OperationId:  The unique identifier for this stack set operation. <br/>        """
        pass

    def update_stack_set(self, StackSetName: str, Description: str=None, TemplateBody: str=None, TemplateURL: str=None, UsePreviousTemplate: UsePreviousTemplate=None, Parameters: List[Parameter]=None, Capabilities: List[Capability]=None, Tags: List[Tag]=None, OperationPreferences: StackSetOperationPreferences=None, AdministrationRoleARN: str=None, ExecutionRoleName: str=None, DeploymentTargets: DeploymentTargets=None, PermissionModel: str=None, AutoDeployment: AutoDeployment=None, OperationId: str=None, Accounts: List[Account]=None, Regions: List[Region]=None, CallAs: str=None) -> UpdateStackSetOutput:
        r"""Updates the stack set, and associated stack instances in the specified accounts and Regions. Even if the stack set operation created by updating the stack set fails (completely or partially, below or above a specified failure tolerance), the stack set is updated with your changes. Subsequent <a>CreateStackInstances</a> calls on the specified stack set use the updated stack set.

        :param self:
        :param CallAs:  [Service-managed permissions] Specifies whether you are acting as an account administrator in the organization's management account or as a delegated administrator in a member account. By default, <code>SELF</code> is specified. Use <code>SELF</code> for stack sets with self-managed permissions. <ul> <li> If you are signed in to the management account, specify <code>SELF</code>. </li> <li> If you are signed in to a delegated administrator account, specify <code>DELEGATED_ADMIN</code>. Your AWS account must be registered as a delegated administrator in the management account. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html">Register a delegated administrator</a> in the <i>AWS CloudFormation User Guide</i>. </li> </ul><br/>Regions:  The Regions in which to update associated stack instances. If you specify Regions, you must also specify accounts in which to update stack set instances. To update <i>all</i> the stack instances associated with this stack set, do not specify the <code>Accounts</code> or <code>Regions</code> properties. If the stack set update includes changes to the template (that is, if the <code>TemplateBody</code> or <code>TemplateURL</code> properties are specified), or the <code>Parameters</code> property, AWS CloudFormation marks all stack instances with a status of <code>OUTDATED</code> prior to updating the stack instances in the specified accounts and Regions. If the stack set update does not include changes to the template or parameters, AWS CloudFormation updates the stack instances in the specified accounts and Regions, while leaving all other stack instances with their existing stack instance status. <br/>Accounts:  [Self-managed permissions] The accounts in which to update associated stack instances. If you specify accounts, you must also specify the Regions in which to update stack set instances. To update <i>all</i> the stack instances associated with this stack set, do not specify the <code>Accounts</code> or <code>Regions</code> properties. If the stack set update includes changes to the template (that is, if the <code>TemplateBody</code> or <code>TemplateURL</code> properties are specified), or the <code>Parameters</code> property, AWS CloudFormation marks all stack instances with a status of <code>OUTDATED</code> prior to updating the stack instances in the specified accounts and Regions. If the stack set update does not include changes to the template or parameters, AWS CloudFormation updates the stack instances in the specified accounts and Regions, while leaving all other stack instances with their existing stack instance status. <br/>OperationId:  The unique ID for this stack set operation.  The operation ID also functions as an idempotency token, to ensure that AWS CloudFormation performs the stack set operation only once, even if you retry the request multiple times. You might retry stack set operation requests to ensure that AWS CloudFormation successfully received them. If you don't specify an operation ID, AWS CloudFormation generates one automatically. Repeating this stack set operation with a new operation ID retries all stack instances whose status is <code>OUTDATED</code>. <br/>AutoDeployment:  [Service-managed permissions] Describes whether StackSets automatically deploys to AWS Organizations accounts that are added to a target organization or organizational unit (OU). If you specify <code>AutoDeployment</code>, do not specify <code>DeploymentTargets</code> or <code>Regions</code>.:<br/>PermissionModel:  Describes how the IAM roles required for stack set operations are created. You cannot modify <code>PermissionModel</code> if there are stack instances associated with your stack set. <ul> <li> With <code>self-managed</code> permissions, you must create the administrator and execution roles required to deploy to target accounts. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-self-managed.html">Grant Self-Managed Stack Set Permissions</a>. </li> <li> With <code>service-managed</code> permissions, StackSets automatically creates the IAM roles required to deploy to accounts managed by AWS Organizations. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-service-managed.html">Grant Service-Managed Stack Set Permissions</a>. </li> </ul><br/>DeploymentTargets:  [Service-managed permissions] The AWS Organizations accounts in which to update associated stack instances. To update all the stack instances associated with this stack set, do not specify <code>DeploymentTargets</code> or <code>Regions</code>. If the stack set update includes changes to the template (that is, if <code>TemplateBody</code> or <code>TemplateURL</code> is specified), or the <code>Parameters</code>, AWS CloudFormation marks all stack instances with a status of <code>OUTDATED</code> prior to updating the stack instances in the specified accounts and Regions. If the stack set update does not include changes to the template or parameters, AWS CloudFormation updates the stack instances in the specified accounts and Regions, while leaving all other stack instances with their existing stack instance status.:<br/>ExecutionRoleName:  The name of the IAM execution role to use to update the stack set. If you do not specify an execution role, AWS CloudFormation uses the <code>AWSCloudFormationStackSetExecutionRole</code> role for the stack set operation. Specify an IAM role only if you are using customized execution roles to control which stack resources users and groups can include in their stack sets.   If you specify a customized execution role, AWS CloudFormation uses that role to update the stack. If you do not specify a customized execution role, AWS CloudFormation performs the update using the role previously associated with the stack set, so long as you have permissions to perform operations on the stack set.<br/>AdministrationRoleARN:  The Amazon Resource Number (ARN) of the IAM role to use to update this stack set. Specify an IAM role only if you are using customized administrator roles to control which users or groups can manage specific stack sets within the same administrator account. For more information, see <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs.html">Granting Permissions for Stack Set Operations</a> in the <i>AWS CloudFormation User Guide</i>. If you specified a customized administrator role when you created the stack set, you must specify a customized administrator role, even if it is the same customized administrator role used with this stack set previously.<br/>OperationPreferences:  Preferences for how AWS CloudFormation performs this stack set operation.:<br/>Tags:  The key-value pairs to associate with this stack set and the stacks created from it. AWS CloudFormation also propagates these tags to supported resources that are created in the stacks. You can specify a maximum number of 50 tags. If you specify tags for this parameter, those tags replace any list of tags that are currently associated with this stack set. This means: <ul> <li> If you don't specify this parameter, AWS CloudFormation doesn't modify the stack's tags.  </li> <li> If you specify <i>any</i> tags using this parameter, you must specify <i>all</i> the tags that you want associated with this stack set, even tags you've specifed before (for example, when creating the stack set or during a previous update of the stack set.). Any tags that you don't include in the updated list of tags are removed from the stack set, and therefore from the stacks and resources as well.  </li> <li> If you specify an empty value, AWS CloudFormation removes all currently associated tags. </li> </ul> If you specify new tags as part of an <code>UpdateStackSet</code> action, AWS CloudFormation checks to see if you have the required IAM permission to tag resources. If you omit tags that are currently associated with the stack set from the list of tags you specify, AWS CloudFormation assumes that you want to remove those tags from the stack set, and checks to see if you have permission to untag resources. If you don't have the necessary permission(s), the entire <code>UpdateStackSet</code> action fails with an <code>access denied</code> error, and the stack set is not updated.<br/>Capabilities:  In some cases, you must explicitly acknowledge that your stack template contains certain capabilities in order for AWS CloudFormation to update the stack set and its associated stack instances. <ul> <li>  <code>CAPABILITY_IAM</code> and <code>CAPABILITY_NAMED_IAM</code>  Some stack templates might include resources that can affect permissions in your AWS account; for example, by creating new AWS Identity and Access Management (IAM) users. For those stacks sets, you must explicitly acknowledge this by specifying one of these capabilities. The following IAM resources require you to specify either the <code>CAPABILITY_IAM</code> or <code>CAPABILITY_NAMED_IAM</code> capability. <ul> <li> If you have IAM resources, you can specify either capability.  </li> <li> If you have IAM resources with custom names, you <i>must</i> specify <code>CAPABILITY_NAMED_IAM</code>.  </li> <li> If you don't specify either of these capabilities, AWS CloudFormation returns an <code>InsufficientCapabilities</code> error. </li> </ul> If your stack template contains these resources, we recommend that you review all permissions associated with them and edit their permissions if necessary. <ul> <li>  <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html"> AWS::IAM::AccessKey</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html"> AWS::IAM::Group</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html"> AWS::IAM::InstanceProfile</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html"> AWS::IAM::Policy</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html"> AWS::IAM::Role</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html"> AWS::IAM::User</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html"> AWS::IAM::UserToGroupAddition</a>  </li> </ul> For more information, see <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities">Acknowledging IAM Resources in AWS CloudFormation Templates</a>. </li> <li>  <code>CAPABILITY_AUTO_EXPAND</code>  Some templates reference macros. If your stack set template references one or more macros, you must update the stack set directly from the processed template, without first reviewing the resulting changes in a change set. To update the stack set directly, you must acknowledge this capability. For more information, see <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html">Using AWS CloudFormation Macros to Perform Custom Processing on Templates</a>. <important> Stack sets with service-managed permissions do not currently support the use of macros in templates. (This includes the <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/create-reusable-transform-function-snippets-and-add-to-your-template-with-aws-include-transform.html">AWS::Include</a> and <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-serverless.html">AWS::Serverless</a> transforms, which are macros hosted by AWS CloudFormation.) Even if you specify this capability for a stack set with service-managed permissions, if you reference a macro in your template the stack set operation will fail. </important> </li> </ul><br/>Parameters:  A list of input parameters for the stack set template. <br/>UsePreviousTemplate:  Use the existing template that's associated with the stack set that you're updating. Conditional: You must specify only one of the following parameters: <code>TemplateBody</code> or <code>TemplateURL</code>—or set <code>UsePreviousTemplate</code> to true. <br/>TemplateURL:  The location of the file that contains the template body. The URL must point to a template (maximum size: 460,800 bytes) that is located in an Amazon S3 bucket or a Systems Manager document. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html">Template Anatomy</a> in the AWS CloudFormation User Guide. Conditional: You must specify only one of the following parameters: <code>TemplateBody</code> or <code>TemplateURL</code>—or set <code>UsePreviousTemplate</code> to true. <br/>TemplateBody:  The structure that contains the template body, with a minimum length of 1 byte and a maximum length of 51,200 bytes. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html">Template Anatomy</a> in the AWS CloudFormation User Guide. Conditional: You must specify only one of the following parameters: <code>TemplateBody</code> or <code>TemplateURL</code>—or set <code>UsePreviousTemplate</code> to true.<br/>Description:  A brief description of updates that you are making.<br/>StackSetName:  The name or unique ID of the stack set that you want to update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxConcurrentPercentage</i> The maximum percentage of accounts in which to perform this operation at one time. When calculating the number of accounts based on the specified percentage, AWS CloudFormation rounds down to the next whole number. This is true except in cases where rounding down would result is zero. In this case, CloudFormation sets the number as one instead. Note that this setting lets you specify the <i>maximum</i> for operations. For large deployments, under certain circumstances the actual number of accounts acted upon concurrently may be lower due to service throttling. Conditional: You must specify either <code>MaxConcurrentCount</code> or <code>MaxConcurrentPercentage</code>, but not both. By default, <code>1</code> is specified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxConcurrentCount</i> The maximum number of accounts in which to perform this operation at one time. This is dependent on the value of <code>FailureToleranceCount</code>. <code>MaxConcurrentCount</code> is at most one more than the <code>FailureToleranceCount</code>. Note that this setting lets you specify the <i>maximum</i> for operations. For large deployments, under certain circumstances the actual number of accounts acted upon concurrently may be lower due to service throttling. Conditional: You must specify either <code>MaxConcurrentCount</code> or <code>MaxConcurrentPercentage</code>, but not both. By default, <code>1</code> is specified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FailureTolerancePercentage</i> The percentage of accounts, per Region, for which this stack operation can fail before AWS CloudFormation stops the operation in that Region. If the operation is stopped in a Region, AWS CloudFormation doesn't attempt the operation in any subsequent Regions. When calculating the number of accounts based on the specified percentage, AWS CloudFormation rounds <i>down</i> to the next whole number. Conditional: You must specify either <code>FailureToleranceCount</code> or <code>FailureTolerancePercentage</code>, but not both. By default, <code>0</code> is specified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FailureToleranceCount</i> The number of accounts, per Region, for which this operation can fail before AWS CloudFormation stops the operation in that Region. If the operation is stopped in a Region, AWS CloudFormation doesn't attempt the operation in any subsequent Regions. Conditional: You must specify either <code>FailureToleranceCount</code> or <code>FailureTolerancePercentage</code> (but not both). By default, <code>0</code> is specified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RegionOrder</i> The order of the Regions in where you want to perform the stack operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RegionConcurrencyType</i> The concurrency type of deploying StackSets operations in regions, could be in parallel or one region at a time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OrganizationalUnitIds</i> The organization root ID or organizational unit (OU) IDs to which StackSets deploys.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccountsUrl</i> Returns the value of the AccountsUrl property.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Accounts</i> The names of one or more AWS accounts for which you want to deploy stack set updates.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RetainStacksOnAccountRemoval</i> If set to <code>true</code>, stack resources are retained when an account is removed from a target organization or OU. If set to <code>false</code>, stack resources are deleted. Specify only if <code>Enabled</code> is set to <code>True</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> If set to <code>true</code>, StackSets automatically deploys additional stack instances to AWS Organizations accounts that are added to a target organization or organizational unit (OU) in the specified Regions. If an account is removed from a target organization or OU, StackSets deletes stack instances from the account in the specified Regions.<br/>
        :return: OperationId:  The unique ID for this stack set operation.<br/>        """
        pass

    def update_termination_protection(self, StackName: str, EnableTerminationProtection: EnableTerminationProtection) -> UpdateTerminationProtectionOutput:
        r"""Updates termination protection for the specified stack. If a user attempts to delete a stack with termination protection enabled, the operation fails and the stack remains unchanged. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-protect-stacks.html">Protecting a Stack From Being Deleted</a> in the <i>AWS CloudFormation User Guide</i>.  For <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html">nested stacks</a>, termination protection is set on the root stack and cannot be changed directly on the nested stack.

        :param self:
        :param StackName:  The name or unique ID of the stack for which you want to set termination protection.<br/>EnableTerminationProtection:  Whether to enable termination protection on the specified stack.<br/>
        :return: StackId:  The unique ID of the stack.<br/>        """
        pass

    def validate_template(self, TemplateBody: str=None, TemplateURL: str=None) -> ValidateTemplateOutput:
        r"""Validates a specified template. AWS CloudFormation first checks if the template is valid JSON. If it isn't, AWS CloudFormation checks if the template is valid YAML. If both these checks fail, AWS CloudFormation returns a template validation error.

        :param self:
        :param TemplateURL:  Location of file containing the template body. The URL must point to a template (max size: 460,800 bytes) that is located in an Amazon S3 bucket or a Systems Manager document. For more information, go to <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html">Template Anatomy</a> in the AWS CloudFormation User Guide. Conditional: You must pass <code>TemplateURL</code> or <code>TemplateBody</code>. If both are passed, only <code>TemplateBody</code> is used.<br/>TemplateBody:  Structure containing the template body with a minimum length of 1 byte and a maximum length of 51,200 bytes. For more information, go to <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html">Template Anatomy</a> in the AWS CloudFormation User Guide. Conditional: You must pass <code>TemplateURL</code> or <code>TemplateBody</code>. If both are passed, only <code>TemplateBody</code> is used.<br/>
        :return: DeclaredTransforms:  A list of the transforms that are declared in the template.<br/>CapabilitiesReason:  The list of resources that generated the values in the <code>Capabilities</code> response element.<br/>Capabilities:  The capabilities found within the template. If your template contains IAM resources, you must specify the CAPABILITY_IAM or CAPABILITY_NAMED_IAM value for this parameter when you use the <a>CreateStack</a> or <a>UpdateStack</a> actions with your template; otherwise, those actions return an InsufficientCapabilities error. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities">Acknowledging IAM Resources in AWS CloudFormation Templates</a>.<br/>Description:  The description found within the template.<br/>Parameters:  A list of <code>TemplateParameter</code> structures.<br/>        """
        pass



    class CloudformationResource:
        
        class Event:
            r"""Creates a Event resource.::

  event = cloudformation.Event('id')

:type id: string
:param id: The Event's id identifier. This **must** be set.

:rtype: :py:class:`CloudFormation.Event`
:returns: A Event resource"""

            def __init__(self, id):
                pass
            
            class Timestamp(object):
                pass
        
            stack_id: str=None
            event_id: str=None
            stack_name: str=None
            logical_resource_id: str=None
            physical_resource_id: str=None
            resource_type: str=None
            timestamp: Timestamp=None
            resource_status: str=None
            resource_status_reason: str=None
            resource_properties: str=None
            client_request_token: str=None
            

        
        class Stack:
            r"""Creates a Stack resource.::

  stack = cloudformation.Stack('name')

:type name: string
:param name: The Stack's name identifier. This **must** be set.

:rtype: :py:class:`CloudFormation.Stack`
:returns: A Stack resource"""

            def __init__(self, name):
                pass
            
            class Output(Mapping):
                pass

            class EnableTerminationProtection(object):
                pass

            class LastUpdatedTime(object):
                pass

            class StackDriftInformation(Mapping):
                pass

            class RollbackConfiguration(Mapping):
                pass

            class NotificationARN(object):
                pass

            class Tag(Mapping):
                pass

            class DisableRollback(object):
                pass

            class Capability(object):
                pass

            class DeletionTime(object):
                pass

            class CreationTime(object):
                pass

            class Parameter(Mapping):
                pass
        
            stack_id: str=None
            stack_name: str=None
            change_set_id: str=None
            description: str=None
            parameters: List[Parameter]=None
            creation_time: CreationTime=None
            deletion_time: DeletionTime=None
            last_updated_time: LastUpdatedTime=None
            rollback_configuration: RollbackConfiguration=None
            stack_status: str=None
            stack_status_reason: str=None
            disable_rollback: DisableRollback=None
            notification_arns: List[NotificationARN]=None
            timeout_in_minutes: int=None
            capabilities: List[Capability]=None
            outputs: List[Output]=None
            role_arn: str=None
            tags: List[Tag]=None
            enable_termination_protection: EnableTerminationProtection=None
            parent_id: str=None
            root_id: str=None
            drift_information: StackDriftInformation=None
            
            def cancel_update(self, **kwargs):
                # type: (object) -> dict
                return {}

            def delete(self, **kwargs):
                # type: (object) -> dict
                return {}

            def update(self, **kwargs):
                # type: (object) -> dict
                return {}


        
        class StackResource:
            r"""Creates a StackResource resource.::

  stack_resource = cloudformation.StackResource('stack_name','logical_id')

:type stack_name: string
:param stack_name: The StackResource's stack_name identifier. This **must** be set.
:type logical_id: string
:param logical_id: The StackResource's logical_id identifier. This **must** be set.

:rtype: :py:class:`CloudFormation.StackResource`
:returns: A StackResource resource"""

            def __init__(self, stack_name, logical_id):
                pass
            
            class StackResourceDriftInformation(Mapping):
                pass

            class Timestamp(object):
                pass

            class ModuleInfo(Mapping):
                pass
        
            stack_name: str=None
            stack_id: str=None
            logical_resource_id: str=None
            physical_resource_id: str=None
            resource_type: str=None
            last_updated_timestamp: Timestamp=None
            resource_status: str=None
            resource_status_reason: str=None
            description: str=None
            metadata: str=None
            drift_information: StackResourceDriftInformation=None
            module_info: ModuleInfo=None
            

        
        class StackResourceSummary:
            r"""Creates a StackResourceSummary resource.::

  stack_resource_summary = cloudformation.StackResourceSummary('stack_name','logical_id')

:type stack_name: string
:param stack_name: The StackResourceSummary's stack_name identifier. This **must** be set.
:type logical_id: string
:param logical_id: The StackResourceSummary's logical_id identifier. This **must** be set.

:rtype: :py:class:`CloudFormation.StackResourceSummary`
:returns: A StackResourceSummary resource"""

            def __init__(self, stack_name, logical_id):
                pass
            
            class StackResourceDriftInformationSummary(Mapping):
                pass

            class ModuleInfo(Mapping):
                pass

            class Timestamp(object):
                pass
        
            logical_resource_id: str=None
            physical_resource_id: str=None
            resource_type: str=None
            last_updated_timestamp: Timestamp=None
            resource_status: str=None
            resource_status_reason: str=None
            drift_information: StackResourceDriftInformationSummary=None
            module_info: ModuleInfo=None
            

        def create_stack(self, **kwargs):
            # type: (object) -> Stack
            pass

        def get_available_subresources(self) -> List[str]:
            pass

        class StackResourceCollection(List[Stack], ResourceCollection):
            pass

        stacks: StackResourceCollection = None




class CloudFront(BaseClient):
    r"""<fullname>Amazon CloudFront</fullname> This is the <i>Amazon CloudFront API Reference</i>. This guide is for developers who need detailed information about CloudFront API actions, data types, and errors. For detailed information about CloudFront features, see the <i>Amazon CloudFront Developer Guide</i>."""

    class DistributionDeployedWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `get_distribution` for valid parameters"""
            pass
    class InvalidationCompletedWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `get_invalidation` for valid parameters"""
            pass
    class StreamingDistributionDeployedWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `get_streaming_distribution` for valid parameters"""
            pass


    class ListCloudFrontOriginAccessIdentitiesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_cloud_front_origin_access_identities` for valid parameters"""
            pass
    class ListDistributionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_distributions` for valid parameters"""
            pass
    class ListInvalidationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_invalidations` for valid parameters"""
            pass
    class ListStreamingDistributionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_streaming_distributions` for valid parameters"""
            pass


    class AssociateAliasRequest(Mapping):
        pass
    
    class CreateCachePolicyRequest(Mapping):
        pass
    
    class CreateCachePolicyResult(Mapping):
        pass
    
    class CachePolicyConfig(Mapping):
        pass
    
    class CreateCloudFrontOriginAccessIdentityRequest(Mapping):
        pass
    
    class CreateCloudFrontOriginAccessIdentityResult(Mapping):
        pass
    
    class CloudFrontOriginAccessIdentityConfig(Mapping):
        pass
    
    class CreateDistributionRequest(Mapping):
        pass
    
    class CreateDistributionResult(Mapping):
        pass
    
    class DistributionConfig(Mapping):
        pass
    
    class CreateDistributionWithTagsRequest(Mapping):
        pass
    
    class CreateDistributionWithTagsResult(Mapping):
        pass
    
    class DistributionConfigWithTags(Mapping):
        pass
    
    class CreateFieldLevelEncryptionConfigRequest(Mapping):
        pass
    
    class CreateFieldLevelEncryptionConfigResult(Mapping):
        pass
    
    class FieldLevelEncryptionConfig(Mapping):
        pass
    
    class CreateFieldLevelEncryptionProfileRequest(Mapping):
        pass
    
    class CreateFieldLevelEncryptionProfileResult(Mapping):
        pass
    
    class FieldLevelEncryptionProfileConfig(Mapping):
        pass
    
    class CreateFunctionRequest(Mapping):
        pass
    
    class CreateFunctionResult(Mapping):
        pass
    
    class FunctionConfig(Mapping):
        pass
    
    class FunctionBlob(object):
        pass
    
    class CreateInvalidationRequest(Mapping):
        pass
    
    class CreateInvalidationResult(Mapping):
        pass
    
    class InvalidationBatch(Mapping):
        pass
    
    class CreateKeyGroupRequest(Mapping):
        pass
    
    class CreateKeyGroupResult(Mapping):
        pass
    
    class KeyGroupConfig(Mapping):
        pass
    
    class CreateMonitoringSubscriptionRequest(Mapping):
        pass
    
    class CreateMonitoringSubscriptionResult(Mapping):
        pass
    
    class MonitoringSubscription(Mapping):
        pass
    
    class CreateOriginRequestPolicyRequest(Mapping):
        pass
    
    class CreateOriginRequestPolicyResult(Mapping):
        pass
    
    class OriginRequestPolicyConfig(Mapping):
        pass
    
    class CreatePublicKeyRequest(Mapping):
        pass
    
    class CreatePublicKeyResult(Mapping):
        pass
    
    class PublicKeyConfig(Mapping):
        pass
    
    class CreateRealtimeLogConfigRequest(Mapping):
        pass
    
    class CreateRealtimeLogConfigResult(Mapping):
        pass
    
    class EndPoint(Mapping):
        pass
    
    class string(object):
        pass
    
    class long(object):
        pass
    
    class CreateStreamingDistributionRequest(Mapping):
        pass
    
    class CreateStreamingDistributionResult(Mapping):
        pass
    
    class StreamingDistributionConfig(Mapping):
        pass
    
    class CreateStreamingDistributionWithTagsRequest(Mapping):
        pass
    
    class CreateStreamingDistributionWithTagsResult(Mapping):
        pass
    
    class StreamingDistributionConfigWithTags(Mapping):
        pass
    
    class DeleteCachePolicyRequest(Mapping):
        pass
    
    class DeleteCloudFrontOriginAccessIdentityRequest(Mapping):
        pass
    
    class DeleteDistributionRequest(Mapping):
        pass
    
    class DeleteFieldLevelEncryptionConfigRequest(Mapping):
        pass
    
    class DeleteFieldLevelEncryptionProfileRequest(Mapping):
        pass
    
    class DeleteFunctionRequest(Mapping):
        pass
    
    class DeleteKeyGroupRequest(Mapping):
        pass
    
    class DeleteMonitoringSubscriptionRequest(Mapping):
        pass
    
    class DeleteMonitoringSubscriptionResult(Mapping):
        pass
    
    class DeleteOriginRequestPolicyRequest(Mapping):
        pass
    
    class DeletePublicKeyRequest(Mapping):
        pass
    
    class DeleteRealtimeLogConfigRequest(Mapping):
        pass
    
    class DeleteStreamingDistributionRequest(Mapping):
        pass
    
    class DescribeFunctionRequest(Mapping):
        pass
    
    class DescribeFunctionResult(Mapping):
        pass
    
    class GetCachePolicyRequest(Mapping):
        pass
    
    class GetCachePolicyResult(Mapping):
        pass
    
    class GetCachePolicyConfigRequest(Mapping):
        pass
    
    class GetCachePolicyConfigResult(Mapping):
        pass
    
    class GetCloudFrontOriginAccessIdentityRequest(Mapping):
        pass
    
    class GetCloudFrontOriginAccessIdentityResult(Mapping):
        pass
    
    class GetCloudFrontOriginAccessIdentityConfigRequest(Mapping):
        pass
    
    class GetCloudFrontOriginAccessIdentityConfigResult(Mapping):
        pass
    
    class GetDistributionRequest(Mapping):
        pass
    
    class GetDistributionResult(Mapping):
        pass
    
    class GetDistributionConfigRequest(Mapping):
        pass
    
    class GetDistributionConfigResult(Mapping):
        pass
    
    class GetFieldLevelEncryptionRequest(Mapping):
        pass
    
    class GetFieldLevelEncryptionResult(Mapping):
        pass
    
    class GetFieldLevelEncryptionConfigRequest(Mapping):
        pass
    
    class GetFieldLevelEncryptionConfigResult(Mapping):
        pass
    
    class GetFieldLevelEncryptionProfileRequest(Mapping):
        pass
    
    class GetFieldLevelEncryptionProfileResult(Mapping):
        pass
    
    class GetFieldLevelEncryptionProfileConfigRequest(Mapping):
        pass
    
    class GetFieldLevelEncryptionProfileConfigResult(Mapping):
        pass
    
    class GetFunctionRequest(Mapping):
        pass
    
    class GetFunctionResult(Mapping):
        pass
    
    class GetInvalidationRequest(Mapping):
        pass
    
    class GetInvalidationResult(Mapping):
        pass
    
    class GetKeyGroupRequest(Mapping):
        pass
    
    class GetKeyGroupResult(Mapping):
        pass
    
    class GetKeyGroupConfigRequest(Mapping):
        pass
    
    class GetKeyGroupConfigResult(Mapping):
        pass
    
    class GetMonitoringSubscriptionRequest(Mapping):
        pass
    
    class GetMonitoringSubscriptionResult(Mapping):
        pass
    
    class GetOriginRequestPolicyRequest(Mapping):
        pass
    
    class GetOriginRequestPolicyResult(Mapping):
        pass
    
    class GetOriginRequestPolicyConfigRequest(Mapping):
        pass
    
    class GetOriginRequestPolicyConfigResult(Mapping):
        pass
    
    class GetPublicKeyRequest(Mapping):
        pass
    
    class GetPublicKeyResult(Mapping):
        pass
    
    class GetPublicKeyConfigRequest(Mapping):
        pass
    
    class GetPublicKeyConfigResult(Mapping):
        pass
    
    class GetRealtimeLogConfigRequest(Mapping):
        pass
    
    class GetRealtimeLogConfigResult(Mapping):
        pass
    
    class GetStreamingDistributionRequest(Mapping):
        pass
    
    class GetStreamingDistributionResult(Mapping):
        pass
    
    class GetStreamingDistributionConfigRequest(Mapping):
        pass
    
    class GetStreamingDistributionConfigResult(Mapping):
        pass
    
    class ListCachePoliciesRequest(Mapping):
        pass
    
    class ListCachePoliciesResult(Mapping):
        pass
    
    class ListCloudFrontOriginAccessIdentitiesRequest(Mapping):
        pass
    
    class ListCloudFrontOriginAccessIdentitiesResult(Mapping):
        pass
    
    class ListConflictingAliasesRequest(Mapping):
        pass
    
    class ListConflictingAliasesResult(Mapping):
        pass
    
    class ListDistributionsRequest(Mapping):
        pass
    
    class ListDistributionsResult(Mapping):
        pass
    
    class ListDistributionsByCachePolicyIdRequest(Mapping):
        pass
    
    class ListDistributionsByCachePolicyIdResult(Mapping):
        pass
    
    class ListDistributionsByKeyGroupRequest(Mapping):
        pass
    
    class ListDistributionsByKeyGroupResult(Mapping):
        pass
    
    class ListDistributionsByOriginRequestPolicyIdRequest(Mapping):
        pass
    
    class ListDistributionsByOriginRequestPolicyIdResult(Mapping):
        pass
    
    class ListDistributionsByRealtimeLogConfigRequest(Mapping):
        pass
    
    class ListDistributionsByRealtimeLogConfigResult(Mapping):
        pass
    
    class ListDistributionsByWebACLIdRequest(Mapping):
        pass
    
    class ListDistributionsByWebACLIdResult(Mapping):
        pass
    
    class ListFieldLevelEncryptionConfigsRequest(Mapping):
        pass
    
    class ListFieldLevelEncryptionConfigsResult(Mapping):
        pass
    
    class ListFieldLevelEncryptionProfilesRequest(Mapping):
        pass
    
    class ListFieldLevelEncryptionProfilesResult(Mapping):
        pass
    
    class ListFunctionsRequest(Mapping):
        pass
    
    class ListFunctionsResult(Mapping):
        pass
    
    class ListInvalidationsRequest(Mapping):
        pass
    
    class ListInvalidationsResult(Mapping):
        pass
    
    class ListKeyGroupsRequest(Mapping):
        pass
    
    class ListKeyGroupsResult(Mapping):
        pass
    
    class ListOriginRequestPoliciesRequest(Mapping):
        pass
    
    class ListOriginRequestPoliciesResult(Mapping):
        pass
    
    class ListPublicKeysRequest(Mapping):
        pass
    
    class ListPublicKeysResult(Mapping):
        pass
    
    class ListRealtimeLogConfigsRequest(Mapping):
        pass
    
    class ListRealtimeLogConfigsResult(Mapping):
        pass
    
    class ListStreamingDistributionsRequest(Mapping):
        pass
    
    class ListStreamingDistributionsResult(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResult(Mapping):
        pass
    
    class PublishFunctionRequest(Mapping):
        pass
    
    class PublishFunctionResult(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class Tags(Mapping):
        pass
    
    class TestFunctionRequest(Mapping):
        pass
    
    class TestFunctionResult(Mapping):
        pass
    
    class FunctionEventObject(object):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class TagKeys(Mapping):
        pass
    
    class UpdateCachePolicyRequest(Mapping):
        pass
    
    class UpdateCachePolicyResult(Mapping):
        pass
    
    class UpdateCloudFrontOriginAccessIdentityRequest(Mapping):
        pass
    
    class UpdateCloudFrontOriginAccessIdentityResult(Mapping):
        pass
    
    class UpdateDistributionRequest(Mapping):
        pass
    
    class UpdateDistributionResult(Mapping):
        pass
    
    class UpdateFieldLevelEncryptionConfigRequest(Mapping):
        pass
    
    class UpdateFieldLevelEncryptionConfigResult(Mapping):
        pass
    
    class UpdateFieldLevelEncryptionProfileRequest(Mapping):
        pass
    
    class UpdateFieldLevelEncryptionProfileResult(Mapping):
        pass
    
    class UpdateFunctionRequest(Mapping):
        pass
    
    class UpdateFunctionResult(Mapping):
        pass
    
    class UpdateKeyGroupRequest(Mapping):
        pass
    
    class UpdateKeyGroupResult(Mapping):
        pass
    
    class UpdateOriginRequestPolicyRequest(Mapping):
        pass
    
    class UpdateOriginRequestPolicyResult(Mapping):
        pass
    
    class UpdatePublicKeyRequest(Mapping):
        pass
    
    class UpdatePublicKeyResult(Mapping):
        pass
    
    class UpdateRealtimeLogConfigRequest(Mapping):
        pass
    
    class UpdateRealtimeLogConfigResult(Mapping):
        pass
    
    class UpdateStreamingDistributionRequest(Mapping):
        pass
    
    class UpdateStreamingDistributionResult(Mapping):
        pass
    
    def associate_alias(self, Alias: str, TargetDistributionId: str):
        r"""Associates an alias (also known as a CNAME or an alternate domain name) with a CloudFront distribution. With this operation you can move an alias that’s already in use on a CloudFront distribution to a different distribution in one step. This prevents the downtime that could occur if you first remove the alias from one distribution and then separately add the alias to another distribution. To use this operation to associate an alias with a distribution, you provide the alias and the ID of the target distribution for the alias. For more information, including how to set up the target distribution, prerequisites that you must complete, and other restrictions, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/CNAMEs.html#alternate-domain-names-move">Moving an alternate domain name to a different distribution</a> in the <i>Amazon CloudFront Developer Guide</i>.

        :param self:
        :param Alias:  The alias (also known as a CNAME) to add to the target distribution.<br/>TargetDistributionId:  The ID of the distribution that you’re associating the alias with.<br/>
        :return:         """
        pass

    def create_cache_policy(self, CachePolicyConfig: CachePolicyConfig) -> CreateCachePolicyResult:
        r"""Creates a cache policy. After you create a cache policy, you can attach it to one or more cache behaviors. When it’s attached to a cache behavior, the cache policy determines the following: <ul> <li> The values that CloudFront includes in the <i>cache key</i>. These values can include HTTP headers, cookies, and URL query strings. CloudFront uses the cache key to find an object in its cache that it can return to the viewer. </li> <li> The default, minimum, and maximum time to live (TTL) values that you want objects to stay in the CloudFront cache. </li> </ul> The headers, cookies, and query strings that are included in the cache key are automatically included in requests that CloudFront sends to the origin. CloudFront sends a request when it can’t find an object in its cache that matches the request’s cache key. If you want to send values to the origin but <i>not</i> include them in the cache key, use <code>OriginRequestPolicy</code>. For more information about cache policies, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html">Controlling the cache key</a> in the <i>Amazon CloudFront Developer Guide</i>.

        :param self:
        :param CachePolicyConfig:  A cache policy configuration.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ParametersInCacheKeyAndForwardedToOrigin</i> The HTTP headers, cookies, and URL query strings to include in the cache key. The values included in the cache key are automatically included in requests that CloudFront sends to the origin.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ParametersInCacheKeyAndForwardedToOrigin</b>: The HTTP headers, cookies, and URL query strings to include in the cache key. The values included in the cache key are automatically included in requests that CloudFront sends to the origin.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MinTTL</i> The minimum amount of time, in seconds, that you want objects to stay in the CloudFront cache before CloudFront sends another request to the origin to see if the object has been updated. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html">Managing How Long Content Stays in an Edge Cache (Expiration)</a> in the <i>Amazon CloudFront Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxTTL</i> The maximum amount of time, in seconds, that objects stay in the CloudFront cache before CloudFront sends another request to the origin to see if the object has been updated. CloudFront uses this value only when the origin sends <code>Cache-Control</code> or <code>Expires</code> headers with the object. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html">Managing How Long Content Stays in an Edge Cache (Expiration)</a> in the <i>Amazon CloudFront Developer Guide</i>. The default value for this field is 31536000 seconds (one year). If the value of <code>MinTTL</code> or <code>DefaultTTL</code> is more than 31536000 seconds, then the default value for this field is the same as the value of <code>DefaultTTL</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultTTL</i> The default amount of time, in seconds, that you want objects to stay in the CloudFront cache before CloudFront sends another request to the origin to see if the object has been updated. CloudFront uses this value as the object’s time to live (TTL) only when the origin does <i>not</i> send <code>Cache-Control</code> or <code>Expires</code> headers with the object. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html">Managing How Long Content Stays in an Edge Cache (Expiration)</a> in the <i>Amazon CloudFront Developer Guide</i>. The default value for this field is 86400 seconds (one day). If the value of <code>MinTTL</code> is more than 86400 seconds, then the default value for this field is the same as the value of <code>MinTTL</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A unique name to identify the cache policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Comment</i> A comment to describe the cache policy. The comment cannot be longer than 128 characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableAcceptEncodingBrotli</i> A flag that can affect whether the <code>Accept-Encoding</code> HTTP header is included in the cache key and included in requests that CloudFront sends to the origin. This field is related to the <code>EnableAcceptEncodingGzip</code> field. If one or both of these fields is <code>true</code> <i>and</i> the viewer request includes the <code>Accept-Encoding</code> header, then CloudFront does the following: <ul> <li> Normalizes the value of the viewer’s <code>Accept-Encoding</code> header </li> <li> Includes the normalized header in the cache key </li> <li> Includes the normalized header in the request to the origin, if a request is necessary </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-policy-compressed-objects">Compression support</a> in the <i>Amazon CloudFront Developer Guide</i>. If you set this value to <code>true</code>, and this cache behavior also has an origin request policy attached, do not include the <code>Accept-Encoding</code> header in the origin request policy. CloudFront always includes the <code>Accept-Encoding</code> header in origin requests when the value of this field is <code>true</code>, so including this header in an origin request policy has no effect. If both of these fields are <code>false</code>, then CloudFront treats the <code>Accept-Encoding</code> header the same as any other HTTP header in the viewer request. By default, it’s not included in the cache key and it’s not included in origin requests. In this case, you can manually add <code>Accept-Encoding</code> to the headers whitelist like any other HTTP header.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableAcceptEncodingGzip</i> A flag that can affect whether the <code>Accept-Encoding</code> HTTP header is included in the cache key and included in requests that CloudFront sends to the origin. This field is related to the <code>EnableAcceptEncodingBrotli</code> field. If one or both of these fields is <code>true</code> <i>and</i> the viewer request includes the <code>Accept-Encoding</code> header, then CloudFront does the following: <ul> <li> Normalizes the value of the viewer’s <code>Accept-Encoding</code> header </li> <li> Includes the normalized header in the cache key </li> <li> Includes the normalized header in the request to the origin, if a request is necessary </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-policy-compressed-objects">Compression support</a> in the <i>Amazon CloudFront Developer Guide</i>. If you set this value to <code>true</code>, and this cache behavior also has an origin request policy attached, do not include the <code>Accept-Encoding</code> header in the origin request policy. CloudFront always includes the <code>Accept-Encoding</code> header in origin requests when the value of this field is <code>true</code>, so including this header in an origin request policy has no effect. If both of these fields are <code>false</code>, then CloudFront treats the <code>Accept-Encoding</code> header the same as any other HTTP header in the viewer request. By default, it’s not included in the cache key and it’s not included in origin requests. In this case, you can manually add <code>Accept-Encoding</code> to the headers whitelist like any other HTTP header.<br/>An object that determines whether any HTTP headers (and if so, which headers) are included in the cache key and automatically included in requests that CloudFront sends to the origin.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>HeadersConfig</b>: An object that determines whether any HTTP headers (and if so, which headers) are included in the cache key and automatically included in requests that CloudFront sends to the origin.
        :return: ETag:  The current version of the cache policy.<br/>Location:  The fully qualified URI of the cache policy just created.<br/>CachePolicy:  A cache policy.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CachePolicyConfig</i> The cache policy configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CachePolicyConfig</b>: The cache policy configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedTime</i> The date and time when the cache policy was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The unique identifier for the cache policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MinTTL</i> The minimum amount of time, in seconds, that you want objects to stay in the CloudFront cache before CloudFront sends another request to the origin to see if the object has been updated. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html">Managing How Long Content Stays in an Edge Cache (Expiration)</a> in the <i>Amazon CloudFront Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxTTL</i> The maximum amount of time, in seconds, that objects stay in the CloudFront cache before CloudFront sends another request to the origin to see if the object has been updated. CloudFront uses this value only when the origin sends <code>Cache-Control</code> or <code>Expires</code> headers with the object. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html">Managing How Long Content Stays in an Edge Cache (Expiration)</a> in the <i>Amazon CloudFront Developer Guide</i>. The default value for this field is 31536000 seconds (one year). If the value of <code>MinTTL</code> or <code>DefaultTTL</code> is more than 31536000 seconds, then the default value for this field is the same as the value of <code>DefaultTTL</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultTTL</i> The default amount of time, in seconds, that you want objects to stay in the CloudFront cache before CloudFront sends another request to the origin to see if the object has been updated. CloudFront uses this value as the object’s time to live (TTL) only when the origin does <i>not</i> send <code>Cache-Control</code> or <code>Expires</code> headers with the object. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html">Managing How Long Content Stays in an Edge Cache (Expiration)</a> in the <i>Amazon CloudFront Developer Guide</i>. The default value for this field is 86400 seconds (one day). If the value of <code>MinTTL</code> is more than 86400 seconds, then the default value for this field is the same as the value of <code>MinTTL</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A unique name to identify the cache policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Comment</i> A comment to describe the cache policy. The comment cannot be longer than 128 characters.<br/>The HTTP headers, cookies, and URL query strings to include in the cache key. The values included in the cache key are automatically included in requests that CloudFront sends to the origin.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ParametersInCacheKeyAndForwardedToOrigin</b>: The HTTP headers, cookies, and URL query strings to include in the cache key. The values included in the cache key are automatically included in requests that CloudFront sends to the origin.        """
        pass

    def create_cloud_front_origin_access_identity(self, CloudFrontOriginAccessIdentityConfig: CloudFrontOriginAccessIdentityConfig) -> CreateCloudFrontOriginAccessIdentityResult:
        r"""Creates a new origin access identity. If you're using Amazon S3 for your origin, you can use an origin access identity to require users to access your content using a CloudFront URL instead of the Amazon S3 URL. For more information about how to use origin access identities, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html">Serving Private Content through CloudFront</a> in the <i>Amazon CloudFront Developer Guide</i>.

        :param self:
        :param CloudFrontOriginAccessIdentityConfig:  The current configuration information for the identity.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Comment</i> A comment to describe the origin access identity. The comment cannot be longer than 128 characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CallerReference</i> A unique value (for example, a date-time stamp) that ensures that the request can't be replayed. If the value of <code>CallerReference</code> is new (regardless of the content of the <code>CloudFrontOriginAccessIdentityConfig</code> object), a new origin access identity is created. If the <code>CallerReference</code> is a value already sent in a previous identity request, and the content of the <code>CloudFrontOriginAccessIdentityConfig</code> is identical to the original request (ignoring white space), the response includes the same information returned to the original request.  If the <code>CallerReference</code> is a value you already sent in a previous request to create an identity, but the content of the <code>CloudFrontOriginAccessIdentityConfig</code> is different from the original request, CloudFront returns a <code>CloudFrontOriginAccessIdentityAlreadyExists</code> error. <br/>
        :return: ETag:  The current version of the origin access identity created.<br/>Location:  The fully qualified URI of the new origin access identity just created.<br/>CloudFrontOriginAccessIdentity:  The origin access identity's information.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudFrontOriginAccessIdentityConfig</i> The current configuration information for the identity. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CloudFrontOriginAccessIdentityConfig</b>: The current configuration information for the identity. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3CanonicalUserId</i> The Amazon S3 canonical user ID for the origin access identity, used when giving the origin access identity read permission to an object in Amazon S3. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID for the origin access identity, for example, <code>E74FTE3AJFJ256A</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Comment</i> A comment to describe the origin access identity. The comment cannot be longer than 128 characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CallerReference</i> A unique value (for example, a date-time stamp) that ensures that the request can't be replayed. If the value of <code>CallerReference</code> is new (regardless of the content of the <code>CloudFrontOriginAccessIdentityConfig</code> object), a new origin access identity is created. If the <code>CallerReference</code> is a value already sent in a previous identity request, and the content of the <code>CloudFrontOriginAccessIdentityConfig</code> is identical to the original request (ignoring white space), the response includes the same information returned to the original request.  If the <code>CallerReference</code> is a value you already sent in a previous request to create an identity, but the content of the <code>CloudFrontOriginAccessIdentityConfig</code> is different from the original request, CloudFront returns a <code>CloudFrontOriginAccessIdentityAlreadyExists</code> error. <br/>        """
        pass

    def create_distribution(self, DistributionConfig: DistributionConfig) -> CreateDistributionResult:
        r"""Creates a new web distribution. You create a CloudFront distribution to tell CloudFront where you want content to be delivered from, and the details about how to track and manage content delivery. Send a <code>POST</code> request to the <code>/<i>CloudFront API version</i>/distribution</code>/<code>distribution ID</code> resource. <important> When you update a distribution, there are more required fields than when you create a distribution. When you update your distribution by using <a href="https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDistribution.html">UpdateDistribution</a>, follow the steps included in the documentation to get the current configuration and then make your updates. This helps to make sure that you include all of the required fields. To view a summary, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-overview-required-fields.html">Required Fields for Create Distribution and Update Distribution</a> in the <i>Amazon CloudFront Developer Guide</i>. </important>

        :param self:
        :param DistributionConfig:  The distribution's configuration information.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsIPV6Enabled</i> If you want CloudFront to respond to IPv6 DNS requests with an IPv6 address for your distribution, specify <code>true</code>. If you specify <code>false</code>, CloudFront responds to IPv6 DNS requests with the DNS response code <code>NOERROR</code> and with no IP addresses. This allows viewers to submit a second request, for an IPv4 address for your distribution.  In general, you should enable IPv6 if you have users on IPv6 networks who want to access your content. However, if you're using signed URLs or signed cookies to restrict access to your content, and if you're using a custom policy that includes the <code>IpAddress</code> parameter to restrict the IP addresses that can access your content, don't enable IPv6. If you want to restrict access to some content by IP address and not restrict access to other content (or restrict access but not by IP address), you can create two distributions. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-creating-signed-url-custom-policy.html">Creating a Signed URL Using a Custom Policy</a> in the <i>Amazon CloudFront Developer Guide</i>. If you're using an Route 53 Amazon Web Services Integration alias resource record set to route traffic to your CloudFront distribution, you need to create a second alias resource record set when both of the following are true: <ul> <li> You enable IPv6 for the distribution </li> <li> You're using alternate domain names in the URLs for your objects </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-to-cloudfront-distribution.html">Routing Traffic to an Amazon CloudFront Web Distribution by Using Your Domain Name</a> in the <i>Route 53 Amazon Web Services Integration Developer Guide</i>. If you created a CNAME resource record set, either with Route 53 Amazon Web Services Integration or with another DNS service, you don't need to make any changes. A CNAME record will route traffic to your distribution regardless of the IP address format of the viewer request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HttpVersion</i> (Optional) Specify the maximum HTTP version that you want viewers to use to communicate with CloudFront. The default value for new web distributions is http2. Viewers that don't support HTTP/2 automatically use an earlier HTTP version. For viewers and CloudFront to use HTTP/2, viewers must support TLS 1.2 or later, and must support Server Name Identification (SNI). In general, configuring CloudFront to communicate with viewers using HTTP/2 reduces latency. You can improve performance by optimizing for HTTP/2. For more information, do an Internet search for "http/2 optimization." <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WebACLId</i> A unique identifier that specifies the WAF web ACL, if any, to associate with this distribution. To specify a web ACL created using the latest version of WAF, use the ACL ARN, for example <code>arn:aws:wafv2:us-east-1:123456789012:global/webacl/ExampleWebACL/473e64fd-f30b-4765-81a0-62ad96dd167a</code>. To specify a web ACL created using WAF Classic, use the ACL ID, for example <code>473e64fd-f30b-4765-81a0-62ad96dd167a</code>. WAF is a web application firewall that lets you monitor the HTTP and HTTPS requests that are forwarded to CloudFront, and lets you control access to your content. Based on conditions that you specify, such as the IP addresses that requests originate from or the values of query strings, CloudFront responds to requests either with the requested content or with an HTTP 403 status code (Forbidden). You can also configure CloudFront to return a custom error page when a request is blocked. For more information about WAF, see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/what-is-aws-waf.html">WAF Developer Guide</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Restrictions</i> A complex type that identifies ways in which you want to restrict distribution of your content.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Restrictions</b>: A complex type that identifies ways in which you want to restrict distribution of your content.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ViewerCertificate</i> A complex type that determines the distribution’s SSL/TLS configuration for communicating with viewers.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ViewerCertificate</b>: A complex type that determines the distribution’s SSL/TLS configuration for communicating with viewers.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> From this field, you can enable or disable the selected distribution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PriceClass</i> The price class that corresponds with the maximum price that you want to pay for CloudFront service. If you specify <code>PriceClass_All</code>, CloudFront responds to requests for your objects from all CloudFront edge locations. If you specify a price class other than <code>PriceClass_All</code>, CloudFront serves your objects from the CloudFront edge location that has the lowest latency among the edge locations in your price class. Viewers who are in or near regions that are excluded from your specified price class may encounter slower performance. For more information about price classes, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PriceClass.html">Choosing the Price Class for a CloudFront Distribution</a> in the <i>Amazon CloudFront Developer Guide</i>. For information about CloudFront pricing, including how price classes (such as Price Class 100) map to CloudFront regions, see <a href="http://aws.amazon.com/cloudfront/pricing/">Amazon CloudFront Pricing</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Logging</i> A complex type that controls whether access logs are written for the distribution. For more information about logging, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/AccessLogs.html">Access Logs</a> in the <i>Amazon CloudFront Developer Guide</i>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Logging</b>: A complex type that controls whether access logs are written for the distribution. For more information about logging, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/AccessLogs.html">Access Logs</a> in the <i>Amazon CloudFront Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Comment</i> An optional comment to describe the distribution. The comment cannot be longer than 128 characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomErrorResponses</i> A complex type that controls the following: <ul> <li> Whether CloudFront replaces HTTP status codes in the 4xx and 5xx range with custom error messages before returning the response to the viewer. </li> <li> How long CloudFront caches HTTP status codes in the 4xx and 5xx range. </li> </ul> For more information about custom error pages, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/custom-error-pages.html">Customizing Error Responses</a> in the <i>Amazon CloudFront Developer Guide</i>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CustomErrorResponses</b>: A complex type that controls the following: <ul> <li> Whether CloudFront replaces HTTP status codes in the 4xx and 5xx range with custom error messages before returning the response to the viewer. </li> <li> How long CloudFront caches HTTP status codes in the 4xx and 5xx range. </li> </ul> For more information about custom error pages, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/custom-error-pages.html">Customizing Error Responses</a> in the <i>Amazon CloudFront Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheBehaviors</i> A complex type that contains zero or more <code>CacheBehavior</code> elements. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CacheBehaviors</b>: A complex type that contains zero or more <code>CacheBehavior</code> elements. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultCacheBehavior</i> A complex type that describes the default cache behavior if you don't specify a <code>CacheBehavior</code> element or if files don't match any of the values of <code>PathPattern</code> in <code>CacheBehavior</code> elements. You must create exactly one default cache behavior.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DefaultCacheBehavior</b>: A complex type that describes the default cache behavior if you don't specify a <code>CacheBehavior</code> element or if files don't match any of the values of <code>PathPattern</code> in <code>CacheBehavior</code> elements. You must create exactly one default cache behavior.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OriginGroups</i>  A complex type that contains information about origin groups for this distribution.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>OriginGroups</b>:  A complex type that contains information about origin groups for this distribution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Origins</i> A complex type that contains information about origins for this distribution. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Origins</b>: A complex type that contains information about origins for this distribution. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultRootObject</i> The object that you want CloudFront to request from your origin (for example, <code>index.html</code>) when a viewer requests the root URL for your distribution (<code>http://www.example.com</code>) instead of an object in your distribution (<code>http://www.example.com/product-description.html</code>). Specifying a default root object avoids exposing the contents of your distribution. Specify only the object name, for example, <code>index.html</code>. Don't add a <code>/</code> before the object name. If you don't want to specify a default root object when you create a distribution, include an empty <code>DefaultRootObject</code> element. To delete the default root object from an existing distribution, update the distribution configuration and include an empty <code>DefaultRootObject</code> element. To replace the default root object, update the distribution configuration and specify the new object. For more information about the default root object, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/DefaultRootObject.html">Creating a Default Root Object</a> in the <i>Amazon CloudFront Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Aliases</i> A complex type that contains information about CNAMEs (alternate domain names), if any, for this distribution.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Aliases</b>: A complex type that contains information about CNAMEs (alternate domain names), if any, for this distribution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CallerReference</i> A unique value (for example, a date-time stamp) that ensures that the request can't be replayed. If the value of <code>CallerReference</code> is new (regardless of the content of the <code>DistributionConfig</code> object), CloudFront creates a new distribution. If <code>CallerReference</code> is a value that you already sent in a previous request to create a distribution, CloudFront returns a <code>DistributionAlreadyExists</code> error.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Items</i> A complex type that contains the CNAME aliases, if any, that you want to associate with this distribution.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Quantity</i> The number of CNAME aliases, if any, that you want to associate with this distribution.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Items</i> A list of origins.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Quantity</i> The number of origins for this distribution.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Items</i> The items (origin groups) in a distribution.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Quantity</i> The number of origin groups.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetOriginId</i> The value of <code>ID</code> for the origin that you want CloudFront to route requests to when they use the default cache behavior.<br/><important> We recommend using <code>TrustedKeyGroups</code> instead of <code>TrustedSigners</code>. </important> A list of account IDs whose public keys CloudFront can use to validate signed URLs or signed cookies. When a cache behavior contains trusted signers, CloudFront requires signed URLs or signed cookies for all requests that match the cache behavior. The URLs or cookies must be signed with the private key of a CloudFront key pair in a trusted signer’s account. The signed URL or cookie contains information about which public key CloudFront should use to verify the signature. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html">Serving private content</a> in the <i>Amazon CloudFront Developer Guide</i>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TrustedSigners</b>: <important> We recommend using <code>TrustedKeyGroups</code> instead of <code>TrustedSigners</code>. </important> A list of account IDs whose public keys CloudFront can use to validate signed URLs or signed cookies. When a cache behavior contains trusted signers, CloudFront requires signed URLs or signed cookies for all requests that match the cache behavior. The URLs or cookies must be signed with the private key of a CloudFront key pair in a trusted signer’s account. The signed URL or cookie contains information about which public key CloudFront should use to verify the signature. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html">Serving private content</a> in the <i>Amazon CloudFront Developer Guide</i>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Items</i> Optional: A complex type that contains cache behaviors for this distribution. If <code>Quantity</code> is <code>0</code>, you can omit <code>Items</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Quantity</i> The number of cache behaviors for this distribution. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Items</i> A complex type that contains a <code>CustomErrorResponse</code> element for each HTTP status code for which you want to specify a custom error page and/or a caching duration. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Quantity</i> The number of HTTP status codes for which you want to specify a custom error page and/or a caching duration. If <code>Quantity</code> is <code>0</code>, you can omit <code>Items</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Prefix</i> An optional string that you want CloudFront to prefix to the access log <code>filenames</code> for this distribution, for example, <code>myprefix/</code>. If you want to enable logging, but you don't want to specify a prefix, you still must include an empty <code>Prefix</code> element in the <code>Logging</code> element.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i> The Amazon S3 bucket to store the access logs in, for example, <code>myawslogbucket.s3.amazonaws.com</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeCookies</i> Specifies whether you want CloudFront to include cookies in access logs, specify <code>true</code> for <code>IncludeCookies</code>. If you choose to include cookies in logs, CloudFront logs all cookies regardless of how you configure the cache behaviors for this distribution. If you don't want to include cookies when you create a distribution or if you want to disable include cookies for an existing distribution, specify <code>false</code> for <code>IncludeCookies</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specifies whether you want CloudFront to save access logs to an Amazon S3 bucket. If you don't want to enable logging when you create a distribution or if you want to disable logging for an existing distribution, specify <code>false</code> for <code>Enabled</code>, and specify empty <code>Bucket</code> and <code>Prefix</code> elements. If you specify <code>false</code> for <code>Enabled</code> but you specify values for <code>Bucket</code>, <code>prefix</code>, and <code>IncludeCookies</code>, the values are automatically deleted.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CertificateSource</i> This field is deprecated. Use one of the following fields instead: <ul> <li>  <code>ACMCertificateArn</code>  </li> <li>  <code>IAMCertificateId</code>  </li> <li>  <code>CloudFrontDefaultCertificate</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Certificate</i> This field is deprecated. Use one of the following fields instead: <ul> <li>  <code>ACMCertificateArn</code>  </li> <li>  <code>IAMCertificateId</code>  </li> <li>  <code>CloudFrontDefaultCertificate</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MinimumProtocolVersion</i> If the distribution uses <code>Aliases</code> (alternate domain names or CNAMEs), specify the security policy that you want CloudFront to use for HTTPS connections with viewers. The security policy determines two settings: <ul> <li> The minimum SSL/TLS protocol that CloudFront can use to communicate with viewers. </li> <li> The ciphers that CloudFront can use to encrypt the content that it returns to viewers. </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValues-security-policy">Security Policy</a> and <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/secure-connections-supported-viewer-protocols-ciphers.html#secure-connections-supported-ciphers">Supported Protocols and Ciphers Between Viewers and CloudFront</a> in the <i>Amazon CloudFront Developer Guide</i>. <note> On the CloudFront console, this setting is called <b>Security Policy</b>. </note> When you’re using SNI only (you set <code>SSLSupportMethod</code> to <code>sni-only</code>), you must specify <code>TLSv1</code> or higher. If the distribution uses the CloudFront domain name such as <code>d111111abcdef8.cloudfront.net</code> (you set <code>CloudFrontDefaultCertificate</code> to <code>true</code>), CloudFront automatically sets the security policy to <code>TLSv1</code> regardless of the value that you set here.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SSLSupportMethod</i> If the distribution uses <code>Aliases</code> (alternate domain names or CNAMEs), specify which viewers the distribution accepts HTTPS connections from. <ul> <li>  <code>sni-only</code> – The distribution accepts HTTPS connections from only viewers that support <a href="https://en.wikipedia.org/wiki/Server_Name_Indication">server name indication (SNI)</a>. This is recommended. Most browsers and clients support SNI. </li> <li>  <code>vip</code> – The distribution accepts HTTPS connections from all viewers including those that don’t support SNI. This is not recommended, and results in additional monthly charges from CloudFront. </li> <li>  <code>static-ip</code> - Do not specify this value unless your distribution has been enabled for this feature by the CloudFront team. If you have a use case that requires static IP addresses for a distribution, contact CloudFront through the <a href="https://console.aws.amazon.com/support/home">Amazon Web Services Support Center</a>. </li> </ul> If the distribution uses the CloudFront domain name such as <code>d111111abcdef8.cloudfront.net</code>, don’t set a value for this field.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ACMCertificateArn</i> If the distribution uses <code>Aliases</code> (alternate domain names or CNAMEs) and the SSL/TLS certificate is stored in <a href="https://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html">Certificate Manager (ACM)</a>, provide the Amazon Resource Name (ARN) of the ACM certificate. CloudFront only supports ACM certificates in the US East (N. Virginia) Region (<code>us-east-1</code>). If you specify an ACM certificate ARN, you must also specify values for <code>MinimumProtocolVersion</code> and <code>SSLSupportMethod</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IAMCertificateId</i> If the distribution uses <code>Aliases</code> (alternate domain names or CNAMEs) and the SSL/TLS certificate is stored in <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html">Identity and Access Management (IAM)</a>, provide the ID of the IAM certificate. If you specify an IAM certificate ID, you must also specify values for <code>MinimumProtocolVersion</code> and <code>SSLSupportMethod</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudFrontDefaultCertificate</i> If the distribution uses the CloudFront domain name such as <code>d111111abcdef8.cloudfront.net</code>, set this field to <code>true</code>. If the distribution uses <code>Aliases</code> (alternate domain names or CNAMEs), set this field to <code>false</code> and specify values for the following fields: <ul> <li>  <code>ACMCertificateArn</code> or <code>IAMCertificateId</code> (specify a value for one, not both) </li> <li>  <code>MinimumProtocolVersion</code>  </li> <li>  <code>SSLSupportMethod</code>  </li> </ul><br/>A complex type that controls the countries in which your content is distributed. CloudFront determines the location of your users using <code>MaxMind</code> GeoIP databases.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>GeoRestriction</b>: A complex type that controls the countries in which your content is distributed. CloudFront determines the location of your users using <code>MaxMind</code> GeoIP databases.
        :return: ETag:  The current version of the distribution created.<br/>Location:  The fully qualified URI of the new distribution resource just created.<br/>Distribution:  The distribution's information.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AliasICPRecordals</i> Amazon Web Services services in China customers must file for an Internet Content Provider (ICP) recordal if they want to serve content publicly on an alternate domain name, also known as a CNAME, that they've added to CloudFront. AliasICPRecordal provides the ICP recordal status for CNAMEs associated with distributions. For more information about ICP recordals, see <a href="https://docs.amazonaws.cn/en_us/aws/latest/userguide/accounts-and-credentials.html"> Signup, Accounts, and Credentials</a> in <i>Getting Started with Amazon Web Services services in China</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DistributionConfig</i> The current configuration information for the distribution. Send a <code>GET</code> request to the <code>/<i>CloudFront API version</i>/distribution ID/config</code> resource.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DistributionConfig</b>: The current configuration information for the distribution. Send a <code>GET</code> request to the <code>/<i>CloudFront API version</i>/distribution ID/config</code> resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActiveTrustedKeyGroups</i> CloudFront automatically adds this field to the response if you’ve configured a cache behavior in this distribution to serve private content using key groups. This field contains a list of key groups and the public keys in each key group that CloudFront can use to verify the signatures of signed URLs or signed cookies.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ActiveTrustedKeyGroups</b>: CloudFront automatically adds this field to the response if you’ve configured a cache behavior in this distribution to serve private content using key groups. This field contains a list of key groups and the public keys in each key group that CloudFront can use to verify the signatures of signed URLs or signed cookies.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActiveTrustedSigners</i> <important> We recommend using <code>TrustedKeyGroups</code> instead of <code>TrustedSigners</code>. </important> CloudFront automatically adds this field to the response if you’ve configured a cache behavior in this distribution to serve private content using trusted signers. This field contains a list of account IDs and the active CloudFront key pairs in each account that CloudFront can use to verify the signatures of signed URLs or signed cookies.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ActiveTrustedSigners</b>: <important> We recommend using <code>TrustedKeyGroups</code> instead of <code>TrustedSigners</code>. </important> CloudFront automatically adds this field to the response if you’ve configured a cache behavior in this distribution to serve private content using trusted signers. This field contains a list of account IDs and the active CloudFront key pairs in each account that CloudFront can use to verify the signatures of signed URLs or signed cookies.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainName</i> The domain name corresponding to the distribution, for example, <code>d111111abcdef8.cloudfront.net</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InProgressInvalidationBatches</i> The number of invalidation batches currently in progress. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedTime</i> The date and time the distribution was last modified. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> This response element indicates the current status of the distribution. When the status is <code>Deployed</code>, the distribution's information is fully propagated to all CloudFront edge locations. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ARN</i> The ARN (Amazon Resource Name) for the distribution. For example: <code>arn:aws:cloudfront::123456789012:distribution/EDFDVBD632BHDS5</code>, where <code>123456789012</code> is your account ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The identifier for the distribution. For example: <code>EDFDVBD632BHDS5</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Items</i> A list of accounts and the identifiers of active CloudFront key pairs in each account that CloudFront can use to verify the signatures of signed URLs and signed cookies.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Quantity</i> The number of accounts in the list.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> This field is <code>true</code> if any of the accounts in the list have active CloudFront key pairs that CloudFront can use to verify the signatures of signed URLs and signed cookies. If not, this field is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Items</i> A list of key groups, including the identifiers of the public keys in each key group that CloudFront can use to verify the signatures of signed URLs and signed cookies.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Quantity</i> The number of key groups in the list.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> This field is <code>true</code> if any of the key groups have public keys that CloudFront can use to verify the signatures of signed URLs and signed cookies. If not, this field is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CallerReference</i> A unique value (for example, a date-time stamp) that ensures that the request can't be replayed. If the value of <code>CallerReference</code> is new (regardless of the content of the <code>DistributionConfig</code> object), CloudFront creates a new distribution. If <code>CallerReference</code> is a value that you already sent in a previous request to create a distribution, CloudFront returns a <code>DistributionAlreadyExists</code> error.<br/>A complex type that contains information about CNAMEs (alternate domain names), if any, for this distribution.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Aliases</b>: A complex type that contains information about CNAMEs (alternate domain names), if any, for this distribution.        """
        pass

    def create_distribution_with_tags(self, DistributionConfigWithTags: DistributionConfigWithTags) -> CreateDistributionWithTagsResult:
        r"""Create a new distribution with tags.

        :param self:
        :param DistributionConfigWithTags:  The distribution's configuration information. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> A complex type that contains zero or more <code>Tag</code> elements.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Tags</b>: A complex type that contains zero or more <code>Tag</code> elements.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DistributionConfig</i> A distribution configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DistributionConfig</b>: A distribution configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CallerReference</i> A unique value (for example, a date-time stamp) that ensures that the request can't be replayed. If the value of <code>CallerReference</code> is new (regardless of the content of the <code>DistributionConfig</code> object), CloudFront creates a new distribution. If <code>CallerReference</code> is a value that you already sent in a previous request to create a distribution, CloudFront returns a <code>DistributionAlreadyExists</code> error.<br/>A complex type that contains information about CNAMEs (alternate domain names), if any, for this distribution.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Aliases</b>: A complex type that contains information about CNAMEs (alternate domain names), if any, for this distribution.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Items</i>  A complex type that contains <code>Tag</code> elements.<br/>
        :return: ETag:  The current version of the distribution created.<br/>Location:  The fully qualified URI of the new distribution resource just created.<br/>Distribution:  The distribution's information. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AliasICPRecordals</i> Amazon Web Services services in China customers must file for an Internet Content Provider (ICP) recordal if they want to serve content publicly on an alternate domain name, also known as a CNAME, that they've added to CloudFront. AliasICPRecordal provides the ICP recordal status for CNAMEs associated with distributions. For more information about ICP recordals, see <a href="https://docs.amazonaws.cn/en_us/aws/latest/userguide/accounts-and-credentials.html"> Signup, Accounts, and Credentials</a> in <i>Getting Started with Amazon Web Services services in China</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DistributionConfig</i> The current configuration information for the distribution. Send a <code>GET</code> request to the <code>/<i>CloudFront API version</i>/distribution ID/config</code> resource.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DistributionConfig</b>: The current configuration information for the distribution. Send a <code>GET</code> request to the <code>/<i>CloudFront API version</i>/distribution ID/config</code> resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActiveTrustedKeyGroups</i> CloudFront automatically adds this field to the response if you’ve configured a cache behavior in this distribution to serve private content using key groups. This field contains a list of key groups and the public keys in each key group that CloudFront can use to verify the signatures of signed URLs or signed cookies.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ActiveTrustedKeyGroups</b>: CloudFront automatically adds this field to the response if you’ve configured a cache behavior in this distribution to serve private content using key groups. This field contains a list of key groups and the public keys in each key group that CloudFront can use to verify the signatures of signed URLs or signed cookies.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActiveTrustedSigners</i> <important> We recommend using <code>TrustedKeyGroups</code> instead of <code>TrustedSigners</code>. </important> CloudFront automatically adds this field to the response if you’ve configured a cache behavior in this distribution to serve private content using trusted signers. This field contains a list of account IDs and the active CloudFront key pairs in each account that CloudFront can use to verify the signatures of signed URLs or signed cookies.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ActiveTrustedSigners</b>: <important> We recommend using <code>TrustedKeyGroups</code> instead of <code>TrustedSigners</code>. </important> CloudFront automatically adds this field to the response if you’ve configured a cache behavior in this distribution to serve private content using trusted signers. This field contains a list of account IDs and the active CloudFront key pairs in each account that CloudFront can use to verify the signatures of signed URLs or signed cookies.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainName</i> The domain name corresponding to the distribution, for example, <code>d111111abcdef8.cloudfront.net</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InProgressInvalidationBatches</i> The number of invalidation batches currently in progress. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedTime</i> The date and time the distribution was last modified. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> This response element indicates the current status of the distribution. When the status is <code>Deployed</code>, the distribution's information is fully propagated to all CloudFront edge locations. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ARN</i> The ARN (Amazon Resource Name) for the distribution. For example: <code>arn:aws:cloudfront::123456789012:distribution/EDFDVBD632BHDS5</code>, where <code>123456789012</code> is your account ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The identifier for the distribution. For example: <code>EDFDVBD632BHDS5</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Items</i> A list of accounts and the identifiers of active CloudFront key pairs in each account that CloudFront can use to verify the signatures of signed URLs and signed cookies.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Quantity</i> The number of accounts in the list.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> This field is <code>true</code> if any of the accounts in the list have active CloudFront key pairs that CloudFront can use to verify the signatures of signed URLs and signed cookies. If not, this field is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Items</i> A list of key groups, including the identifiers of the public keys in each key group that CloudFront can use to verify the signatures of signed URLs and signed cookies.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Quantity</i> The number of key groups in the list.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> This field is <code>true</code> if any of the key groups have public keys that CloudFront can use to verify the signatures of signed URLs and signed cookies. If not, this field is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CallerReference</i> A unique value (for example, a date-time stamp) that ensures that the request can't be replayed. If the value of <code>CallerReference</code> is new (regardless of the content of the <code>DistributionConfig</code> object), CloudFront creates a new distribution. If <code>CallerReference</code> is a value that you already sent in a previous request to create a distribution, CloudFront returns a <code>DistributionAlreadyExists</code> error.<br/>A complex type that contains information about CNAMEs (alternate domain names), if any, for this distribution.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Aliases</b>: A complex type that contains information about CNAMEs (alternate domain names), if any, for this distribution.        """
        pass

    def create_field_level_encryption_config(self, FieldLevelEncryptionConfig: FieldLevelEncryptionConfig) -> CreateFieldLevelEncryptionConfigResult:
        r"""Create a new field-level encryption configuration.

        :param self:
        :param FieldLevelEncryptionConfig:  The request to create a new field-level encryption configuration.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ContentTypeProfileConfig</i> A complex data type that specifies when to forward content if a content type isn't recognized and profiles to use as by default in a request if a query argument doesn't specify a profile to use.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ContentTypeProfileConfig</b>: A complex data type that specifies when to forward content if a content type isn't recognized and profiles to use as by default in a request if a query argument doesn't specify a profile to use.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>QueryArgProfileConfig</i> A complex data type that specifies when to forward content if a profile isn't found and the profile that can be provided as a query argument in a request.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>QueryArgProfileConfig</b>: A complex data type that specifies when to forward content if a profile isn't found and the profile that can be provided as a query argument in a request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Comment</i> An optional comment about the configuration. The comment cannot be longer than 128 characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CallerReference</i> A unique number that ensures the request can't be replayed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ForwardWhenQueryArgProfileIsUnknown</i> Flag to set if you want a request to be forwarded to the origin even if the profile specified by the field-level encryption query argument, fle-profile, is unknown.<br/>Profiles specified for query argument-profile mapping for field-level encryption.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>QueryArgProfiles</b>: Profiles specified for query argument-profile mapping for field-level encryption.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ForwardWhenContentTypeIsUnknown</i> The setting in a field-level encryption content type-profile mapping that specifies what to do when an unknown content type is provided for the profile. If true, content is forwarded without being encrypted when the content type is unknown. If false (the default), an error is returned when the content type is unknown. <br/>The configuration for a field-level encryption content type-profile. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ContentTypeProfiles</b>: The configuration for a field-level encryption content type-profile. 
        :return: ETag:  The current version of the field level encryption configuration. For example: <code>E2QWRUHAPOMQZL</code>.<br/>Location:  The fully qualified URI of the new configuration resource just created.<br/>FieldLevelEncryption:  Returned when you create a new field-level encryption configuration.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FieldLevelEncryptionConfig</i> A complex data type that includes the profile configurations specified for field-level encryption. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>FieldLevelEncryptionConfig</b>: A complex data type that includes the profile configurations specified for field-level encryption. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedTime</i> The last time the field-level encryption configuration was changed. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The configuration ID for a field-level encryption configuration which includes a set of profiles that specify certain selected data fields to be encrypted by specific public keys.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Comment</i> An optional comment about the configuration. The comment cannot be longer than 128 characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CallerReference</i> A unique number that ensures the request can't be replayed.<br/>A complex data type that specifies when to forward content if a profile isn't found and the profile that can be provided as a query argument in a request.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>QueryArgProfileConfig</b>: A complex data type that specifies when to forward content if a profile isn't found and the profile that can be provided as a query argument in a request.        """
        pass

    def create_field_level_encryption_profile(self, FieldLevelEncryptionProfileConfig: FieldLevelEncryptionProfileConfig) -> CreateFieldLevelEncryptionProfileResult:
        r"""Create a field-level encryption profile.

        :param self:
        :param FieldLevelEncryptionProfileConfig:  The request to create a field-level encryption profile.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EncryptionEntities</i> A complex data type of encryption entities for the field-level encryption profile that include the public key ID, provider, and field patterns for specifying which fields to encrypt with this key.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EncryptionEntities</b>: A complex data type of encryption entities for the field-level encryption profile that include the public key ID, provider, and field patterns for specifying which fields to encrypt with this key.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Comment</i> An optional comment for the field-level encryption profile. The comment cannot be longer than 128 characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CallerReference</i> A unique number that ensures that the request can't be replayed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> Profile name for the field-level encryption profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Items</i> An array of field patterns in a field-level encryption content type-profile mapping. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Quantity</i> Number of field pattern items in a field-level encryption content type-profile mapping. <br/>
        :return: ETag:  The current version of the field level encryption profile. For example: <code>E2QWRUHAPOMQZL</code>.<br/>Location:  The fully qualified URI of the new profile resource just created.<br/>FieldLevelEncryptionProfile:  Returned when you create a new field-level encryption profile.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FieldLevelEncryptionProfileConfig</i> A complex data type that includes the profile name and the encryption entities for the field-level encryption profile.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>FieldLevelEncryptionProfileConfig</b>: A complex data type that includes the profile name and the encryption entities for the field-level encryption profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedTime</i> The last time the field-level encryption profile was updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID for a field-level encryption profile configuration which includes a set of profiles that specify certain selected data fields to be encrypted by specific public keys.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Comment</i> An optional comment for the field-level encryption profile. The comment cannot be longer than 128 characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CallerReference</i> A unique number that ensures that the request can't be replayed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> Profile name for the field-level encryption profile.<br/>A complex data type of encryption entities for the field-level encryption profile that include the public key ID, provider, and field patterns for specifying which fields to encrypt with this key.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EncryptionEntities</b>: A complex data type of encryption entities for the field-level encryption profile that include the public key ID, provider, and field patterns for specifying which fields to encrypt with this key.        """
        pass

    def create_function(self, FunctionCode: FunctionBlob, FunctionConfig: FunctionConfig, Name: str) -> CreateFunctionResult:
        r"""Creates a CloudFront function. To create a function, you provide the function code and some configuration information about the function. The response contains an Amazon Resource Name (ARN) that uniquely identifies the function. When you create a function, it’s in the <code>DEVELOPMENT</code> stage. In this stage, you can test the function with <code>TestFunction</code>, and update it with <code>UpdateFunction</code>. When you’re ready to use your function with a CloudFront distribution, use <code>PublishFunction</code> to copy the function from the <code>DEVELOPMENT</code> stage to <code>LIVE</code>. When it’s live, you can attach the function to a distribution’s cache behavior, using the function’s ARN.

        :param self:
        :param FunctionCode:  The function code. For more information about writing a CloudFront function, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/writing-function-code.html">Writing function code for CloudFront Functions</a> in the <i>Amazon CloudFront Developer Guide</i>.<br/>FunctionConfig:  Configuration information about the function, including an optional comment and the function’s runtime.:<br/>Name:  A name to identify the function.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Runtime</i> The function’s runtime environment. The only valid value is <code>cloudfront-js-1.0</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Comment</i> A comment to describe the function.<br/>
        :return: ETag:  The version identifier for the current version of the CloudFront function.<br/>Location:  The URL of the CloudFront function. Use the URL to manage the function with the CloudFront API.<br/>FunctionSummary:  Contains configuration information and metadata about a CloudFront function.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FunctionMetadata</i> Contains metadata about a CloudFront function.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>FunctionMetadata</b>: Contains metadata about a CloudFront function.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FunctionConfig</i> Contains configuration information about a CloudFront function.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>FunctionConfig</b>: Contains configuration information about a CloudFront function.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the CloudFront function.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the CloudFront function.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Runtime</i> The function’s runtime environment. The only valid value is <code>cloudfront-js-1.0</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Comment</i> A comment to describe the function.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedTime</i> The date and time when the function was most recently updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTime</i> The date and time when the function was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Stage</i> The stage that the function is in, either <code>DEVELOPMENT</code> or <code>LIVE</code>. When a function is in the <code>DEVELOPMENT</code> stage, you can test the function with <code>TestFunction</code>, and update it with <code>UpdateFunction</code>. When a function is in the <code>LIVE</code> stage, you can attach the function to a distribution’s cache behavior, using the function’s ARN.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FunctionARN</i> The Amazon Resource Name (ARN) of the function. The ARN uniquely identifies the function.<br/>        """
        pass

    def create_invalidation(self, InvalidationBatch: InvalidationBatch, DistributionId: str) -> CreateInvalidationResult:
        r"""Create a new invalidation. 

        :param self:
        :param InvalidationBatch:  The batch information for the invalidation.:<br/>DistributionId:  The distribution's id.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CallerReference</i> A value that you specify to uniquely identify an invalidation request. CloudFront uses the value to prevent you from accidentally resubmitting an identical request. Whenever you create a new invalidation request, you must specify a new value for <code>CallerReference</code> and change other values in the request as applicable. One way to ensure that the value of <code>CallerReference</code> is unique is to use a <code>timestamp</code>, for example, <code>20120301090000</code>. If you make a second invalidation request with the same value for <code>CallerReference</code>, and if the rest of the request is the same, CloudFront doesn't create a new invalidation request. Instead, CloudFront returns information about the invalidation request that you previously created with the same <code>CallerReference</code>. If <code>CallerReference</code> is a value you already sent in a previous invalidation batch request but the content of any <code>Path</code> is different from the original request, CloudFront returns an <code>InvalidationBatchAlreadyExists</code> error.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Paths</i> A complex type that contains information about the objects that you want to invalidate. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Invalidation.html#invalidation-specifying-objects">Specifying the Objects to Invalidate</a> in the <i>Amazon CloudFront Developer Guide</i>. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Paths</b>: A complex type that contains information about the objects that you want to invalidate. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Invalidation.html#invalidation-specifying-objects">Specifying the Objects to Invalidate</a> in the <i>Amazon CloudFront Developer Guide</i>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Items</i> A complex type that contains a list of the paths that you want to invalidate.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Quantity</i> The number of invalidation paths specified for the objects that you want to invalidate.<br/>
        :return: Invalidation:  The invalidation's information.:<br/>Location:  The fully qualified URI of the distribution and invalidation batch request, including the <code>Invalidation ID</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InvalidationBatch</i> The current invalidation information for the batch request. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>InvalidationBatch</b>: The current invalidation information for the batch request. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreateTime</i> The date and time the invalidation request was first made. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the invalidation request. When the invalidation batch is finished, the status is <code>Completed</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The identifier for the invalidation request. For example: <code>IDFDVBD632BHDS5</code>.<br/>A complex type that contains information about the objects that you want to invalidate. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Invalidation.html#invalidation-specifying-objects">Specifying the Objects to Invalidate</a> in the <i>Amazon CloudFront Developer Guide</i>. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Paths</b>: A complex type that contains information about the objects that you want to invalidate. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Invalidation.html#invalidation-specifying-objects">Specifying the Objects to Invalidate</a> in the <i>Amazon CloudFront Developer Guide</i>.         """
        pass

    def create_key_group(self, KeyGroupConfig: KeyGroupConfig) -> CreateKeyGroupResult:
        r"""Creates a key group that you can use with <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html">CloudFront signed URLs and signed cookies</a>. To create a key group, you must specify at least one public key for the key group. After you create a key group, you can reference it from one or more cache behaviors. When you reference a key group in a cache behavior, CloudFront requires signed URLs or signed cookies for all requests that match the cache behavior. The URLs or cookies must be signed with a private key whose corresponding public key is in the key group. The signed URL or cookie contains information about which public key CloudFront should use to verify the signature. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html">Serving private content</a> in the <i>Amazon CloudFront Developer Guide</i>.

        :param self:
        :param KeyGroupConfig:  A key group configuration.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Comment</i> A comment to describe the key group. The comment cannot be longer than 128 characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Items</i> A list of the identifiers of the public keys in the key group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A name to identify the key group.<br/>
        :return: ETag:  The identifier for this version of the key group.<br/>Location:  The URL of the key group.<br/>KeyGroup:  The key group that was just created.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KeyGroupConfig</i> The key group configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>KeyGroupConfig</b>: The key group configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedTime</i> The date and time when the key group was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The identifier for the key group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Comment</i> A comment to describe the key group. The comment cannot be longer than 128 characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Items</i> A list of the identifiers of the public keys in the key group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A name to identify the key group.<br/>        """
        pass

    def create_monitoring_subscription(self, MonitoringSubscription: MonitoringSubscription, DistributionId: str) -> CreateMonitoringSubscriptionResult:
        r"""Enables additional CloudWatch metrics for the specified CloudFront distribution. The additional metrics incur an additional cost. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/viewing-cloudfront-metrics.html#monitoring-console.distributions-additional">Viewing additional CloudFront distribution metrics</a> in the <i>Amazon CloudFront Developer Guide</i>.

        :param self:
        :param MonitoringSubscription:  A monitoring subscription. This structure contains information about whether additional CloudWatch metrics are enabled for a given CloudFront distribution.:<br/>DistributionId:  The ID of the distribution that you are enabling metrics for.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RealtimeMetricsSubscriptionConfig</i> A subscription configuration for additional CloudWatch metrics.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RealtimeMetricsSubscriptionConfig</b>: A subscription configuration for additional CloudWatch metrics.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RealtimeMetricsSubscriptionStatus</i> A flag that indicates whether additional CloudWatch metrics are enabled for a given CloudFront distribution.<br/>
        :return: MonitoringSubscription:  A monitoring subscription. This structure contains information about whether additional CloudWatch metrics are enabled for a given CloudFront distribution.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RealtimeMetricsSubscriptionConfig</i> A subscription configuration for additional CloudWatch metrics.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RealtimeMetricsSubscriptionConfig</b>: A subscription configuration for additional CloudWatch metrics.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RealtimeMetricsSubscriptionStatus</i> A flag that indicates whether additional CloudWatch metrics are enabled for a given CloudFront distribution.<br/>        """
        pass

    def create_origin_request_policy(self, OriginRequestPolicyConfig: OriginRequestPolicyConfig) -> CreateOriginRequestPolicyResult:
        r"""Creates an origin request policy. After you create an origin request policy, you can attach it to one or more cache behaviors. When it’s attached to a cache behavior, the origin request policy determines the values that CloudFront includes in requests that it sends to the origin. Each request that CloudFront sends to the origin includes the following: <ul> <li> The request body and the URL path (without the domain name) from the viewer request. </li> <li> The headers that CloudFront automatically includes in every origin request, including <code>Host</code>, <code>User-Agent</code>, and <code>X-Amz-Cf-Id</code>. </li> <li> All HTTP headers, cookies, and URL query strings that are specified in the cache policy or the origin request policy. These can include items from the viewer request and, in the case of headers, additional ones that are added by CloudFront. </li> </ul> CloudFront sends a request when it can’t find a valid object in its cache that matches the request. If you want to send values to the origin and also include them in the cache key, use <code>CachePolicy</code>. For more information about origin request policies, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html">Controlling origin requests</a> in the <i>Amazon CloudFront Developer Guide</i>.

        :param self:
        :param OriginRequestPolicyConfig:  An origin request policy configuration.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>QueryStringsConfig</i> The URL query strings from viewer requests to include in origin requests.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>QueryStringsConfig</b>: The URL query strings from viewer requests to include in origin requests.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CookiesConfig</i> The cookies from viewer requests to include in origin requests.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CookiesConfig</b>: The cookies from viewer requests to include in origin requests.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HeadersConfig</i> The HTTP headers to include in origin requests. These can include headers from viewer requests and additional headers added by CloudFront.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>HeadersConfig</b>: The HTTP headers to include in origin requests. These can include headers from viewer requests and additional headers added by CloudFront.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A unique name to identify the origin request policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Comment</i> A comment to describe the origin request policy. The comment cannot be longer than 128 characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HeaderBehavior</i> Determines whether any HTTP headers are included in requests that CloudFront sends to the origin. Valid values are: <ul> <li>  <code>none</code> – HTTP headers are not included in requests that CloudFront sends to the origin. Even when this field is set to <code>none</code>, any headers that are listed in a <code>CachePolicy</code> <i>are</i> included in origin requests. </li> <li>  <code>whitelist</code> – The HTTP headers that are listed in the <code>Headers</code> type are included in requests that CloudFront sends to the origin. </li> <li>  <code>allViewer</code> – All HTTP headers in viewer requests are included in requests that CloudFront sends to the origin. </li> <li>  <code>allViewerAndWhitelistCloudFront</code> – All HTTP headers in viewer requests and the additional CloudFront headers that are listed in the <code>Headers</code> type are included in requests that CloudFront sends to the origin. The additional headers are added by CloudFront. </li> </ul><br/>Contains a list of HTTP header names.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Headers</b>: Contains a list of HTTP header names.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CookieBehavior</i> Determines whether cookies in viewer requests are included in requests that CloudFront sends to the origin. Valid values are: <ul> <li>  <code>none</code> – Cookies in viewer requests are not included in requests that CloudFront sends to the origin. Even when this field is set to <code>none</code>, any cookies that are listed in a <code>CachePolicy</code> <i>are</i> included in origin requests. </li> <li>  <code>whitelist</code> – The cookies in viewer requests that are listed in the <code>CookieNames</code> type are included in requests that CloudFront sends to the origin. </li> <li>  <code>all</code> – All cookies in viewer requests are included in requests that CloudFront sends to the origin. </li> </ul><br/>Contains a list of cookie names.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Cookies</b>: Contains a list of cookie names.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>QueryStringBehavior</i> Determines whether any URL query strings in viewer requests are included in requests that CloudFront sends to the origin. Valid values are: <ul> <li>  <code>none</code> – Query strings in viewer requests are not included in requests that CloudFront sends to the origin. Even when this field is set to <code>none</code>, any query strings that are listed in a <code>CachePolicy</code> <i>are</i> included in origin requests. </li> <li>  <code>whitelist</code> – The query strings in viewer requests that are listed in the <code>QueryStringNames</code> type are included in requests that CloudFront sends to the origin. </li> <li>  <code>all</code> – All query strings in viewer requests are included in requests that CloudFront sends to the origin. </li> </ul><br/>Contains a list of the query strings in viewer requests that are included in requests that CloudFront sends to the origin.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>QueryStrings</b>: Contains a list of the query strings in viewer requests that are included in requests that CloudFront sends to the origin.
        :return: ETag:  The current version of the origin request policy.<br/>Location:  The fully qualified URI of the origin request policy just created.<br/>OriginRequestPolicy:  An origin request policy.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OriginRequestPolicyConfig</i> The origin request policy configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>OriginRequestPolicyConfig</b>: The origin request policy configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedTime</i> The date and time when the origin request policy was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The unique identifier for the origin request policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A unique name to identify the origin request policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Comment</i> A comment to describe the origin request policy. The comment cannot be longer than 128 characters.<br/>The HTTP headers to include in origin requests. These can include headers from viewer requests and additional headers added by CloudFront.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>HeadersConfig</b>: The HTTP headers to include in origin requests. These can include headers from viewer requests and additional headers added by CloudFront.        """
        pass

    def create_public_key(self, PublicKeyConfig: PublicKeyConfig) -> CreatePublicKeyResult:
        r"""Uploads a public key to CloudFront that you can use with <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html">signed URLs and signed cookies</a>, or with <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/field-level-encryption.html">field-level encryption</a>.

        :param self:
        :param PublicKeyConfig:  A CloudFront public key configuration.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Comment</i> A comment to describe the public key. The comment cannot be longer than 128 characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EncodedKey</i> The public key that you can use with <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html">signed URLs and signed cookies</a>, or with <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/field-level-encryption.html">field-level encryption</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A name to help identify the public key.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CallerReference</i> A string included in the request to help make sure that the request can’t be replayed.<br/>
        :return: ETag:  The identifier for this version of the public key.<br/>Location:  The URL of the public key.<br/>PublicKey:  The public key.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PublicKeyConfig</i> Configuration information about a public key that you can use with <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html">signed URLs and signed cookies</a>, or with <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/field-level-encryption.html">field-level encryption</a>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PublicKeyConfig</b>: Configuration information about a public key that you can use with <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html">signed URLs and signed cookies</a>, or with <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/field-level-encryption.html">field-level encryption</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTime</i> The date and time when the public key was uploaded.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The identifier of the public key.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Comment</i> A comment to describe the public key. The comment cannot be longer than 128 characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EncodedKey</i> The public key that you can use with <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html">signed URLs and signed cookies</a>, or with <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/field-level-encryption.html">field-level encryption</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A name to help identify the public key.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CallerReference</i> A string included in the request to help make sure that the request can’t be replayed.<br/>        """
        pass

    def create_realtime_log_config(self, SamplingRate: long, Name: str, Fields: List[string], EndPoints: List[EndPoint]) -> CreateRealtimeLogConfigResult:
        r"""Creates a real-time log configuration. After you create a real-time log configuration, you can attach it to one or more cache behaviors to send real-time log data to the specified Amazon Kinesis data stream. For more information about real-time log configurations, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/real-time-logs.html">Real-time logs</a> in the <i>Amazon CloudFront Developer Guide</i>.

        :param self:
        :param SamplingRate:  The sampling rate for this real-time log configuration. The sampling rate determines the percentage of viewer requests that are represented in the real-time log data. You must provide an integer between 1 and 100, inclusive.<br/>Name:  A unique name to identify this real-time log configuration.<br/>Fields:  A list of fields to include in each real-time log record. For more information about fields, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/real-time-logs.html#understand-real-time-log-config-fields">Real-time log configuration fields</a> in the <i>Amazon CloudFront Developer Guide</i>.<br/>EndPoints:  Contains information about the Amazon Kinesis data stream where you are sending real-time log data.<br/>
        :return: RealtimeLogConfig:  A real-time log configuration.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Fields</i> A list of fields that are included in each real-time log record. In an API response, the fields are provided in the same order in which they are sent to the Amazon Kinesis data stream. For more information about fields, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/real-time-logs.html#understand-real-time-log-config-fields">Real-time log configuration fields</a> in the <i>Amazon CloudFront Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndPoints</i> Contains information about the Amazon Kinesis data stream where you are sending real-time log data for this real-time log configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SamplingRate</i> The sampling rate for this real-time log configuration. The sampling rate determines the percentage of viewer requests that are represented in the real-time log data. The sampling rate is an integer between 1 and 100, inclusive.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The unique name of this real-time log configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ARN</i> The Amazon Resource Name (ARN) of this real-time log configuration.<br/>        """
        pass

    def create_streaming_distribution(self, StreamingDistributionConfig: StreamingDistributionConfig) -> CreateStreamingDistributionResult:
        r"""This API is deprecated. Amazon CloudFront is deprecating real-time messaging protocol (RTMP) distributions on December 31, 2020. For more information, <a href="http://forums.aws.amazon.com/ann.jspa?annID=7356">read the announcement</a> on the Amazon CloudFront discussion forum.

        :param self:
        :param StreamingDistributionConfig:  The streaming distribution's configuration information.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Whether the streaming distribution is enabled to accept user requests for content.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PriceClass</i> A complex type that contains information about price class for this streaming distribution. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TrustedSigners</i> A complex type that specifies any accounts that you want to permit to create signed URLs for private content. If you want the distribution to use signed URLs, include this element; if you want the distribution to use public URLs, remove this element. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html">Serving Private Content through CloudFront</a> in the <i>Amazon CloudFront Developer Guide</i>. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TrustedSigners</b>: A complex type that specifies any accounts that you want to permit to create signed URLs for private content. If you want the distribution to use signed URLs, include this element; if you want the distribution to use public URLs, remove this element. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html">Serving Private Content through CloudFront</a> in the <i>Amazon CloudFront Developer Guide</i>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Logging</i> A complex type that controls whether access logs are written for the streaming distribution. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Logging</b>: A complex type that controls whether access logs are written for the streaming distribution. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Comment</i> Any comments you want to include about the streaming distribution. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Aliases</i> A complex type that contains information about CNAMEs (alternate domain names), if any, for this streaming distribution. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Aliases</b>: A complex type that contains information about CNAMEs (alternate domain names), if any, for this streaming distribution. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Origin</i> A complex type that contains information about the Amazon S3 bucket from which you want CloudFront to get your media files for distribution. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3Origin</b>: A complex type that contains information about the Amazon S3 bucket from which you want CloudFront to get your media files for distribution. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CallerReference</i> A unique value (for example, a date-time stamp) that ensures that the request can't be replayed. If the value of <code>CallerReference</code> is new (regardless of the content of the <code>StreamingDistributionConfig</code> object), CloudFront creates a new distribution. If <code>CallerReference</code> is a value that you already sent in a previous request to create a distribution, CloudFront returns a <code>DistributionAlreadyExists</code> error.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OriginAccessIdentity</i> The CloudFront origin access identity to associate with the distribution. Use an origin access identity to configure the distribution so that end users can only access objects in an Amazon S3 bucket through CloudFront. If you want end users to be able to access objects using either the CloudFront URL or the Amazon S3 URL, specify an empty <code>OriginAccessIdentity</code> element. To delete the origin access identity from an existing distribution, update the distribution configuration and include an empty <code>OriginAccessIdentity</code> element. To replace the origin access identity, update the distribution configuration and specify the new origin access identity. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-s3.html">Using an Origin Access Identity to Restrict Access to Your Amazon S3 Content</a> in the <i> Amazon CloudFront Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainName</i> The DNS name of the Amazon S3 origin. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Items</i> A complex type that contains the CNAME aliases, if any, that you want to associate with this distribution.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Quantity</i> The number of CNAME aliases, if any, that you want to associate with this distribution.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Prefix</i> An optional string that you want CloudFront to prefix to the access log filenames for this streaming distribution, for example, <code>myprefix/</code>. If you want to enable logging, but you don't want to specify a prefix, you still must include an empty <code>Prefix</code> element in the <code>Logging</code> element.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i> The Amazon S3 bucket to store the access logs in, for example, <code>myawslogbucket.s3.amazonaws.com</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specifies whether you want CloudFront to save access logs to an Amazon S3 bucket. If you don't want to enable logging when you create a streaming distribution or if you want to disable logging for an existing streaming distribution, specify <code>false</code> for <code>Enabled</code>, and specify <code>empty Bucket</code> and <code>Prefix</code> elements. If you specify <code>false</code> for <code>Enabled</code> but you specify values for <code>Bucket</code> and <code>Prefix</code>, the values are automatically deleted. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Items</i> A list of account identifiers.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Quantity</i> The number of accounts in the list.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> This field is <code>true</code> if any of the accounts have public keys that CloudFront can use to verify the signatures of signed URLs and signed cookies. If not, this field is <code>false</code>.<br/>
        :return: ETag:  The current version of the streaming distribution created.<br/>Location:  The fully qualified URI of the new streaming distribution resource just created.<br/>StreamingDistribution:  The streaming distribution's information.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamingDistributionConfig</i> The current configuration information for the RTMP distribution.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StreamingDistributionConfig</b>: The current configuration information for the RTMP distribution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActiveTrustedSigners</i> A complex type that lists the accounts, if any, that you included in the <code>TrustedSigners</code> complex type for this distribution. These are the accounts that you want to allow to create signed URLs for private content. The <code>Signer</code> complex type lists the account number of the trusted signer or <code>self</code> if the signer is the account that created the distribution. The <code>Signer</code> element also includes the IDs of any active CloudFront key pairs that are associated with the trusted signer's account. If no <code>KeyPairId</code> element appears for a <code>Signer</code>, that signer can't create signed URLs. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html">Serving Private Content through CloudFront</a> in the <i>Amazon CloudFront Developer Guide</i>. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ActiveTrustedSigners</b>: A complex type that lists the accounts, if any, that you included in the <code>TrustedSigners</code> complex type for this distribution. These are the accounts that you want to allow to create signed URLs for private content. The <code>Signer</code> complex type lists the account number of the trusted signer or <code>self</code> if the signer is the account that created the distribution. The <code>Signer</code> element also includes the IDs of any active CloudFront key pairs that are associated with the trusted signer's account. If no <code>KeyPairId</code> element appears for a <code>Signer</code>, that signer can't create signed URLs. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html">Serving Private Content through CloudFront</a> in the <i>Amazon CloudFront Developer Guide</i>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainName</i> The domain name that corresponds to the streaming distribution, for example, <code>s5c39gqb8ow64r.cloudfront.net</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedTime</i> The date and time that the distribution was last modified. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current status of the RTMP distribution. When the status is <code>Deployed</code>, the distribution's information is propagated to all CloudFront edge locations.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ARN</i> The ARN (Amazon Resource Name) for the distribution. For example: <code>arn:aws:cloudfront::123456789012:distribution/EDFDVBD632BHDS5</code>, where <code>123456789012</code> is your account ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The identifier for the RTMP distribution. For example: <code>EGTXBD79EXAMPLE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Items</i> A list of accounts and the identifiers of active CloudFront key pairs in each account that CloudFront can use to verify the signatures of signed URLs and signed cookies.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Quantity</i> The number of accounts in the list.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> This field is <code>true</code> if any of the accounts in the list have active CloudFront key pairs that CloudFront can use to verify the signatures of signed URLs and signed cookies. If not, this field is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CallerReference</i> A unique value (for example, a date-time stamp) that ensures that the request can't be replayed. If the value of <code>CallerReference</code> is new (regardless of the content of the <code>StreamingDistributionConfig</code> object), CloudFront creates a new distribution. If <code>CallerReference</code> is a value that you already sent in a previous request to create a distribution, CloudFront returns a <code>DistributionAlreadyExists</code> error.<br/>A complex type that contains information about the Amazon S3 bucket from which you want CloudFront to get your media files for distribution. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3Origin</b>: A complex type that contains information about the Amazon S3 bucket from which you want CloudFront to get your media files for distribution.         """
        pass

    def create_streaming_distribution_with_tags(self, StreamingDistributionConfigWithTags: StreamingDistributionConfigWithTags) -> CreateStreamingDistributionWithTagsResult:
        r"""This API is deprecated. Amazon CloudFront is deprecating real-time messaging protocol (RTMP) distributions on December 31, 2020. For more information, <a href="http://forums.aws.amazon.com/ann.jspa?annID=7356">read the announcement</a> on the Amazon CloudFront discussion forum.

        :param self:
        :param StreamingDistributionConfigWithTags:   The streaming distribution's configuration information. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> A complex type that contains zero or more <code>Tag</code> elements.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Tags</b>: A complex type that contains zero or more <code>Tag</code> elements.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamingDistributionConfig</i> A streaming distribution Configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StreamingDistributionConfig</b>: A streaming distribution Configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CallerReference</i> A unique value (for example, a date-time stamp) that ensures that the request can't be replayed. If the value of <code>CallerReference</code> is new (regardless of the content of the <code>StreamingDistributionConfig</code> object), CloudFront creates a new distribution. If <code>CallerReference</code> is a value that you already sent in a previous request to create a distribution, CloudFront returns a <code>DistributionAlreadyExists</code> error.<br/>A complex type that contains information about the Amazon S3 bucket from which you want CloudFront to get your media files for distribution. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3Origin</b>: A complex type that contains information about the Amazon S3 bucket from which you want CloudFront to get your media files for distribution. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Items</i>  A complex type that contains <code>Tag</code> elements.<br/>
        :return: ETag:  The current version of the distribution created.<br/>Location:  The fully qualified URI of the new streaming distribution resource just created.<br/>StreamingDistribution:  The streaming distribution's information. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamingDistributionConfig</i> The current configuration information for the RTMP distribution.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StreamingDistributionConfig</b>: The current configuration information for the RTMP distribution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActiveTrustedSigners</i> A complex type that lists the accounts, if any, that you included in the <code>TrustedSigners</code> complex type for this distribution. These are the accounts that you want to allow to create signed URLs for private content. The <code>Signer</code> complex type lists the account number of the trusted signer or <code>self</code> if the signer is the account that created the distribution. The <code>Signer</code> element also includes the IDs of any active CloudFront key pairs that are associated with the trusted signer's account. If no <code>KeyPairId</code> element appears for a <code>Signer</code>, that signer can't create signed URLs. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html">Serving Private Content through CloudFront</a> in the <i>Amazon CloudFront Developer Guide</i>. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ActiveTrustedSigners</b>: A complex type that lists the accounts, if any, that you included in the <code>TrustedSigners</code> complex type for this distribution. These are the accounts that you want to allow to create signed URLs for private content. The <code>Signer</code> complex type lists the account number of the trusted signer or <code>self</code> if the signer is the account that created the distribution. The <code>Signer</code> element also includes the IDs of any active CloudFront key pairs that are associated with the trusted signer's account. If no <code>KeyPairId</code> element appears for a <code>Signer</code>, that signer can't create signed URLs. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html">Serving Private Content through CloudFront</a> in the <i>Amazon CloudFront Developer Guide</i>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainName</i> The domain name that corresponds to the streaming distribution, for example, <code>s5c39gqb8ow64r.cloudfront.net</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedTime</i> The date and time that the distribution was last modified. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current status of the RTMP distribution. When the status is <code>Deployed</code>, the distribution's information is propagated to all CloudFront edge locations.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ARN</i> The ARN (Amazon Resource Name) for the distribution. For example: <code>arn:aws:cloudfront::123456789012:distribution/EDFDVBD632BHDS5</code>, where <code>123456789012</code> is your account ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The identifier for the RTMP distribution. For example: <code>EGTXBD79EXAMPLE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Items</i> A list of accounts and the identifiers of active CloudFront key pairs in each account that CloudFront can use to verify the signatures of signed URLs and signed cookies.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Quantity</i> The number of accounts in the list.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> This field is <code>true</code> if any of the accounts in the list have active CloudFront key pairs that CloudFront can use to verify the signatures of signed URLs and signed cookies. If not, this field is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CallerReference</i> A unique value (for example, a date-time stamp) that ensures that the request can't be replayed. If the value of <code>CallerReference</code> is new (regardless of the content of the <code>StreamingDistributionConfig</code> object), CloudFront creates a new distribution. If <code>CallerReference</code> is a value that you already sent in a previous request to create a distribution, CloudFront returns a <code>DistributionAlreadyExists</code> error.<br/>A complex type that contains information about the Amazon S3 bucket from which you want CloudFront to get your media files for distribution. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3Origin</b>: A complex type that contains information about the Amazon S3 bucket from which you want CloudFront to get your media files for distribution.         """
        pass

    def delete_cache_policy(self, Id: str, IfMatch: str=None):
        r"""Deletes a cache policy. You cannot delete a cache policy if it’s attached to a cache behavior. First update your distributions to remove the cache policy from all cache behaviors, then delete the cache policy. To delete a cache policy, you must provide the policy’s identifier and version. To get these values, you can use <code>ListCachePolicies</code> or <code>GetCachePolicy</code>.

        :param self:
        :param IfMatch:  The version of the cache policy that you are deleting. The version is the cache policy’s <code>ETag</code> value, which you can get using <code>ListCachePolicies</code>, <code>GetCachePolicy</code>, or <code>GetCachePolicyConfig</code>.<br/>Id:  The unique identifier for the cache policy that you are deleting. To get the identifier, you can use <code>ListCachePolicies</code>.<br/>
        :return:         """
        pass

    def delete_cloud_front_origin_access_identity(self, Id: str, IfMatch: str=None):
        r"""Delete an origin access identity. 

        :param self:
        :param IfMatch:  The value of the <code>ETag</code> header you received from a previous <code>GET</code> or <code>PUT</code> request. For example: <code>E2QWRUHAPOMQZL</code>.<br/>Id:  The origin access identity's ID.<br/>
        :return:         """
        pass

    def delete_distribution(self, Id: str, IfMatch: str=None):
        r"""Delete a distribution. 

        :param self:
        :param IfMatch:  The value of the <code>ETag</code> header that you received when you disabled the distribution. For example: <code>E2QWRUHAPOMQZL</code>. <br/>Id:  The distribution ID. <br/>
        :return:         """
        pass

    def delete_field_level_encryption_config(self, Id: str, IfMatch: str=None):
        r"""Remove a field-level encryption configuration.

        :param self:
        :param IfMatch:  The value of the <code>ETag</code> header that you received when retrieving the configuration identity to delete. For example: <code>E2QWRUHAPOMQZL</code>.<br/>Id:  The ID of the configuration you want to delete from CloudFront.<br/>
        :return:         """
        pass

    def delete_field_level_encryption_profile(self, Id: str, IfMatch: str=None):
        r"""Remove a field-level encryption profile.

        :param self:
        :param IfMatch:  The value of the <code>ETag</code> header that you received when retrieving the profile to delete. For example: <code>E2QWRUHAPOMQZL</code>.<br/>Id:  Request the ID of the profile you want to delete from CloudFront.<br/>
        :return:         """
        pass

    def delete_function(self, IfMatch: str, Name: str):
        r"""Deletes a CloudFront function. You cannot delete a function if it’s associated with a cache behavior. First, update your distributions to remove the function association from all cache behaviors, then delete the function. To delete a function, you must provide the function’s name and version (<code>ETag</code> value). To get these values, you can use <code>ListFunctions</code> and <code>DescribeFunction</code>.

        :param self:
        :param IfMatch:  The current version (<code>ETag</code> value) of the function that you are deleting, which you can get using <code>DescribeFunction</code>.<br/>Name:  The name of the function that you are deleting.<br/>
        :return:         """
        pass

    def delete_key_group(self, Id: str, IfMatch: str=None):
        r"""Deletes a key group. You cannot delete a key group that is referenced in a cache behavior. First update your distributions to remove the key group from all cache behaviors, then delete the key group. To delete a key group, you must provide the key group’s identifier and version. To get these values, use <code>ListKeyGroups</code> followed by <code>GetKeyGroup</code> or <code>GetKeyGroupConfig</code>.

        :param self:
        :param IfMatch:  The version of the key group that you are deleting. The version is the key group’s <code>ETag</code> value. To get the <code>ETag</code>, use <code>GetKeyGroup</code> or <code>GetKeyGroupConfig</code>.<br/>Id:  The identifier of the key group that you are deleting. To get the identifier, use <code>ListKeyGroups</code>.<br/>
        :return:         """
        pass

    def delete_monitoring_subscription(self, DistributionId: str) -> DeleteMonitoringSubscriptionResult:
        r"""Disables additional CloudWatch metrics for the specified CloudFront distribution.

        :param self:
        :param DistributionId:  The ID of the distribution that you are disabling metrics for.<br/>
        :return:         """
        pass

    def delete_origin_request_policy(self, Id: str, IfMatch: str=None):
        r"""Deletes an origin request policy. You cannot delete an origin request policy if it’s attached to any cache behaviors. First update your distributions to remove the origin request policy from all cache behaviors, then delete the origin request policy. To delete an origin request policy, you must provide the policy’s identifier and version. To get the identifier, you can use <code>ListOriginRequestPolicies</code> or <code>GetOriginRequestPolicy</code>.

        :param self:
        :param IfMatch:  The version of the origin request policy that you are deleting. The version is the origin request policy’s <code>ETag</code> value, which you can get using <code>ListOriginRequestPolicies</code>, <code>GetOriginRequestPolicy</code>, or <code>GetOriginRequestPolicyConfig</code>.<br/>Id:  The unique identifier for the origin request policy that you are deleting. To get the identifier, you can use <code>ListOriginRequestPolicies</code>.<br/>
        :return:         """
        pass

    def delete_public_key(self, Id: str, IfMatch: str=None):
        r"""Remove a public key you previously added to CloudFront.

        :param self:
        :param IfMatch:  The value of the <code>ETag</code> header that you received when retrieving the public key identity to delete. For example: <code>E2QWRUHAPOMQZL</code>.<br/>Id:  The ID of the public key you want to remove from CloudFront.<br/>
        :return:         """
        pass

    def delete_realtime_log_config(self, Name: str=None, ARN: str=None):
        r"""Deletes a real-time log configuration. You cannot delete a real-time log configuration if it’s attached to a cache behavior. First update your distributions to remove the real-time log configuration from all cache behaviors, then delete the real-time log configuration. To delete a real-time log configuration, you can provide the configuration’s name or its Amazon Resource Name (ARN). You must provide at least one. If you provide both, CloudFront uses the name to identify the real-time log configuration to delete.

        :param self:
        :param ARN:  The Amazon Resource Name (ARN) of the real-time log configuration to delete.<br/>Name:  The name of the real-time log configuration to delete.<br/>
        :return:         """
        pass

    def delete_streaming_distribution(self, Id: str, IfMatch: str=None):
        r"""Delete a streaming distribution. To delete an RTMP distribution using the CloudFront API, perform the following steps.  <b>To delete an RTMP distribution using the CloudFront API</b>: <ol> <li> Disable the RTMP distribution. </li> <li> Submit a <code>GET Streaming Distribution Config</code> request to get the current configuration and the <code>Etag</code> header for the distribution.  </li> <li> Update the XML document that was returned in the response to your <code>GET Streaming Distribution Config</code> request to change the value of <code>Enabled</code> to <code>false</code>. </li> <li> Submit a <code>PUT Streaming Distribution Config</code> request to update the configuration for your distribution. In the request body, include the XML document that you updated in Step 3. Then set the value of the HTTP <code>If-Match</code> header to the value of the <code>ETag</code> header that CloudFront returned when you submitted the <code>GET Streaming Distribution Config</code> request in Step 2. </li> <li> Review the response to the <code>PUT Streaming Distribution Config</code> request to confirm that the distribution was successfully disabled. </li> <li> Submit a <code>GET Streaming Distribution Config</code> request to confirm that your changes have propagated. When propagation is complete, the value of <code>Status</code> is <code>Deployed</code>. </li> <li> Submit a <code>DELETE Streaming Distribution</code> request. Set the value of the HTTP <code>If-Match</code> header to the value of the <code>ETag</code> header that CloudFront returned when you submitted the <code>GET Streaming Distribution Config</code> request in Step 2. </li> <li> Review the response to your <code>DELETE Streaming Distribution</code> request to confirm that the distribution was successfully deleted. </li> </ol> For information about deleting a distribution using the CloudFront console, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/HowToDeleteDistribution.html">Deleting a Distribution</a> in the <i>Amazon CloudFront Developer Guide</i>.

        :param self:
        :param IfMatch:  The value of the <code>ETag</code> header that you received when you disabled the streaming distribution. For example: <code>E2QWRUHAPOMQZL</code>.<br/>Id:  The distribution ID. <br/>
        :return:         """
        pass

    def describe_function(self, Name: str, Stage: str=None) -> DescribeFunctionResult:
        r"""Gets configuration information and metadata about a CloudFront function, but not the function’s code. To get a function’s code, use <code>GetFunction</code>. To get configuration information and metadata about a function, you must provide the function’s name and stage. To get these values, you can use <code>ListFunctions</code>.

        :param self:
        :param Stage:  The function’s stage, either <code>DEVELOPMENT</code> or <code>LIVE</code>.<br/>Name:  The name of the function that you are getting information about.<br/>
        :return: ETag:  The version identifier for the current version of the CloudFront function.<br/>FunctionSummary:  Contains configuration information and metadata about a CloudFront function.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FunctionMetadata</i> Contains metadata about a CloudFront function.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>FunctionMetadata</b>: Contains metadata about a CloudFront function.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FunctionConfig</i> Contains configuration information about a CloudFront function.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>FunctionConfig</b>: Contains configuration information about a CloudFront function.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the CloudFront function.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the CloudFront function.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Runtime</i> The function’s runtime environment. The only valid value is <code>cloudfront-js-1.0</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Comment</i> A comment to describe the function.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedTime</i> The date and time when the function was most recently updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTime</i> The date and time when the function was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Stage</i> The stage that the function is in, either <code>DEVELOPMENT</code> or <code>LIVE</code>. When a function is in the <code>DEVELOPMENT</code> stage, you can test the function with <code>TestFunction</code>, and update it with <code>UpdateFunction</code>. When a function is in the <code>LIVE</code> stage, you can attach the function to a distribution’s cache behavior, using the function’s ARN.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FunctionARN</i> The Amazon Resource Name (ARN) of the function. The ARN uniquely identifies the function.<br/>        """
        pass

    def get_cache_policy(self, Id: str) -> GetCachePolicyResult:
        r"""Gets a cache policy, including the following metadata: <ul> <li> The policy’s identifier. </li> <li> The date and time when the policy was last modified. </li> </ul> To get a cache policy, you must provide the policy’s identifier. If the cache policy is attached to a distribution’s cache behavior, you can get the policy’s identifier using <code>ListDistributions</code> or <code>GetDistribution</code>. If the cache policy is not attached to a cache behavior, you can get the identifier using <code>ListCachePolicies</code>.

        :param self:
        :param Id:  The unique identifier for the cache policy. If the cache policy is attached to a distribution’s cache behavior, you can get the policy’s identifier using <code>ListDistributions</code> or <code>GetDistribution</code>. If the cache policy is not attached to a cache behavior, you can get the identifier using <code>ListCachePolicies</code>.<br/>
        :return: ETag:  The current version of the cache policy.<br/>CachePolicy:  The cache policy.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CachePolicyConfig</i> The cache policy configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CachePolicyConfig</b>: The cache policy configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedTime</i> The date and time when the cache policy was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The unique identifier for the cache policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MinTTL</i> The minimum amount of time, in seconds, that you want objects to stay in the CloudFront cache before CloudFront sends another request to the origin to see if the object has been updated. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html">Managing How Long Content Stays in an Edge Cache (Expiration)</a> in the <i>Amazon CloudFront Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxTTL</i> The maximum amount of time, in seconds, that objects stay in the CloudFront cache before CloudFront sends another request to the origin to see if the object has been updated. CloudFront uses this value only when the origin sends <code>Cache-Control</code> or <code>Expires</code> headers with the object. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html">Managing How Long Content Stays in an Edge Cache (Expiration)</a> in the <i>Amazon CloudFront Developer Guide</i>. The default value for this field is 31536000 seconds (one year). If the value of <code>MinTTL</code> or <code>DefaultTTL</code> is more than 31536000 seconds, then the default value for this field is the same as the value of <code>DefaultTTL</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultTTL</i> The default amount of time, in seconds, that you want objects to stay in the CloudFront cache before CloudFront sends another request to the origin to see if the object has been updated. CloudFront uses this value as the object’s time to live (TTL) only when the origin does <i>not</i> send <code>Cache-Control</code> or <code>Expires</code> headers with the object. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html">Managing How Long Content Stays in an Edge Cache (Expiration)</a> in the <i>Amazon CloudFront Developer Guide</i>. The default value for this field is 86400 seconds (one day). If the value of <code>MinTTL</code> is more than 86400 seconds, then the default value for this field is the same as the value of <code>MinTTL</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A unique name to identify the cache policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Comment</i> A comment to describe the cache policy. The comment cannot be longer than 128 characters.<br/>The HTTP headers, cookies, and URL query strings to include in the cache key. The values included in the cache key are automatically included in requests that CloudFront sends to the origin.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ParametersInCacheKeyAndForwardedToOrigin</b>: The HTTP headers, cookies, and URL query strings to include in the cache key. The values included in the cache key are automatically included in requests that CloudFront sends to the origin.        """
        pass

    def get_cache_policy_config(self, Id: str) -> GetCachePolicyConfigResult:
        r"""Gets a cache policy configuration. To get a cache policy configuration, you must provide the policy’s identifier. If the cache policy is attached to a distribution’s cache behavior, you can get the policy’s identifier using <code>ListDistributions</code> or <code>GetDistribution</code>. If the cache policy is not attached to a cache behavior, you can get the identifier using <code>ListCachePolicies</code>.

        :param self:
        :param Id:  The unique identifier for the cache policy. If the cache policy is attached to a distribution’s cache behavior, you can get the policy’s identifier using <code>ListDistributions</code> or <code>GetDistribution</code>. If the cache policy is not attached to a cache behavior, you can get the identifier using <code>ListCachePolicies</code>.<br/>
        :return: ETag:  The current version of the cache policy.<br/>CachePolicyConfig:  The cache policy configuration.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ParametersInCacheKeyAndForwardedToOrigin</i> The HTTP headers, cookies, and URL query strings to include in the cache key. The values included in the cache key are automatically included in requests that CloudFront sends to the origin.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ParametersInCacheKeyAndForwardedToOrigin</b>: The HTTP headers, cookies, and URL query strings to include in the cache key. The values included in the cache key are automatically included in requests that CloudFront sends to the origin.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MinTTL</i> The minimum amount of time, in seconds, that you want objects to stay in the CloudFront cache before CloudFront sends another request to the origin to see if the object has been updated. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html">Managing How Long Content Stays in an Edge Cache (Expiration)</a> in the <i>Amazon CloudFront Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxTTL</i> The maximum amount of time, in seconds, that objects stay in the CloudFront cache before CloudFront sends another request to the origin to see if the object has been updated. CloudFront uses this value only when the origin sends <code>Cache-Control</code> or <code>Expires</code> headers with the object. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html">Managing How Long Content Stays in an Edge Cache (Expiration)</a> in the <i>Amazon CloudFront Developer Guide</i>. The default value for this field is 31536000 seconds (one year). If the value of <code>MinTTL</code> or <code>DefaultTTL</code> is more than 31536000 seconds, then the default value for this field is the same as the value of <code>DefaultTTL</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultTTL</i> The default amount of time, in seconds, that you want objects to stay in the CloudFront cache before CloudFront sends another request to the origin to see if the object has been updated. CloudFront uses this value as the object’s time to live (TTL) only when the origin does <i>not</i> send <code>Cache-Control</code> or <code>Expires</code> headers with the object. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html">Managing How Long Content Stays in an Edge Cache (Expiration)</a> in the <i>Amazon CloudFront Developer Guide</i>. The default value for this field is 86400 seconds (one day). If the value of <code>MinTTL</code> is more than 86400 seconds, then the default value for this field is the same as the value of <code>MinTTL</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A unique name to identify the cache policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Comment</i> A comment to describe the cache policy. The comment cannot be longer than 128 characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableAcceptEncodingBrotli</i> A flag that can affect whether the <code>Accept-Encoding</code> HTTP header is included in the cache key and included in requests that CloudFront sends to the origin. This field is related to the <code>EnableAcceptEncodingGzip</code> field. If one or both of these fields is <code>true</code> <i>and</i> the viewer request includes the <code>Accept-Encoding</code> header, then CloudFront does the following: <ul> <li> Normalizes the value of the viewer’s <code>Accept-Encoding</code> header </li> <li> Includes the normalized header in the cache key </li> <li> Includes the normalized header in the request to the origin, if a request is necessary </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-policy-compressed-objects">Compression support</a> in the <i>Amazon CloudFront Developer Guide</i>. If you set this value to <code>true</code>, and this cache behavior also has an origin request policy attached, do not include the <code>Accept-Encoding</code> header in the origin request policy. CloudFront always includes the <code>Accept-Encoding</code> header in origin requests when the value of this field is <code>true</code>, so including this header in an origin request policy has no effect. If both of these fields are <code>false</code>, then CloudFront treats the <code>Accept-Encoding</code> header the same as any other HTTP header in the viewer request. By default, it’s not included in the cache key and it’s not included in origin requests. In this case, you can manually add <code>Accept-Encoding</code> to the headers whitelist like any other HTTP header.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableAcceptEncodingGzip</i> A flag that can affect whether the <code>Accept-Encoding</code> HTTP header is included in the cache key and included in requests that CloudFront sends to the origin. This field is related to the <code>EnableAcceptEncodingBrotli</code> field. If one or both of these fields is <code>true</code> <i>and</i> the viewer request includes the <code>Accept-Encoding</code> header, then CloudFront does the following: <ul> <li> Normalizes the value of the viewer’s <code>Accept-Encoding</code> header </li> <li> Includes the normalized header in the cache key </li> <li> Includes the normalized header in the request to the origin, if a request is necessary </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-policy-compressed-objects">Compression support</a> in the <i>Amazon CloudFront Developer Guide</i>. If you set this value to <code>true</code>, and this cache behavior also has an origin request policy attached, do not include the <code>Accept-Encoding</code> header in the origin request policy. CloudFront always includes the <code>Accept-Encoding</code> header in origin requests when the value of this field is <code>true</code>, so including this header in an origin request policy has no effect. If both of these fields are <code>false</code>, then CloudFront treats the <code>Accept-Encoding</code> header the same as any other HTTP header in the viewer request. By default, it’s not included in the cache key and it’s not included in origin requests. In this case, you can manually add <code>Accept-Encoding</code> to the headers whitelist like any other HTTP header.<br/>An object that determines whether any HTTP headers (and if so, which headers) are included in the cache key and automatically included in requests that CloudFront sends to the origin.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>HeadersConfig</b>: An object that determines whether any HTTP headers (and if so, which headers) are included in the cache key and automatically included in requests that CloudFront sends to the origin.        """
        pass

    def get_cloud_front_origin_access_identity(self, Id: str) -> GetCloudFrontOriginAccessIdentityResult:
        r"""Get the information about an origin access identity. 

        :param self:
        :param Id:  The identity's ID.<br/>
        :return: ETag:  The current version of the origin access identity's information. For example: <code>E2QWRUHAPOMQZL</code>.<br/>CloudFrontOriginAccessIdentity:  The origin access identity's information.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudFrontOriginAccessIdentityConfig</i> The current configuration information for the identity. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CloudFrontOriginAccessIdentityConfig</b>: The current configuration information for the identity. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3CanonicalUserId</i> The Amazon S3 canonical user ID for the origin access identity, used when giving the origin access identity read permission to an object in Amazon S3. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID for the origin access identity, for example, <code>E74FTE3AJFJ256A</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Comment</i> A comment to describe the origin access identity. The comment cannot be longer than 128 characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CallerReference</i> A unique value (for example, a date-time stamp) that ensures that the request can't be replayed. If the value of <code>CallerReference</code> is new (regardless of the content of the <code>CloudFrontOriginAccessIdentityConfig</code> object), a new origin access identity is created. If the <code>CallerReference</code> is a value already sent in a previous identity request, and the content of the <code>CloudFrontOriginAccessIdentityConfig</code> is identical to the original request (ignoring white space), the response includes the same information returned to the original request.  If the <code>CallerReference</code> is a value you already sent in a previous request to create an identity, but the content of the <code>CloudFrontOriginAccessIdentityConfig</code> is different from the original request, CloudFront returns a <code>CloudFrontOriginAccessIdentityAlreadyExists</code> error. <br/>        """
        pass

    def get_cloud_front_origin_access_identity_config(self, Id: str) -> GetCloudFrontOriginAccessIdentityConfigResult:
        r"""Get the configuration information about an origin access identity. 

        :param self:
        :param Id:  The identity's ID. <br/>
        :return: ETag:  The current version of the configuration. For example: <code>E2QWRUHAPOMQZL</code>.<br/>CloudFrontOriginAccessIdentityConfig:  The origin access identity's configuration information. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Comment</i> A comment to describe the origin access identity. The comment cannot be longer than 128 characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CallerReference</i> A unique value (for example, a date-time stamp) that ensures that the request can't be replayed. If the value of <code>CallerReference</code> is new (regardless of the content of the <code>CloudFrontOriginAccessIdentityConfig</code> object), a new origin access identity is created. If the <code>CallerReference</code> is a value already sent in a previous identity request, and the content of the <code>CloudFrontOriginAccessIdentityConfig</code> is identical to the original request (ignoring white space), the response includes the same information returned to the original request.  If the <code>CallerReference</code> is a value you already sent in a previous request to create an identity, but the content of the <code>CloudFrontOriginAccessIdentityConfig</code> is different from the original request, CloudFront returns a <code>CloudFrontOriginAccessIdentityAlreadyExists</code> error. <br/>        """
        pass

    def get_distribution(self, Id: str) -> GetDistributionResult:
        r"""Get the information about a distribution.

        :param self:
        :param Id:  The distribution's ID. If the ID is empty, an empty distribution configuration is returned.<br/>
        :return: ETag:  The current version of the distribution's information. For example: <code>E2QWRUHAPOMQZL</code>.<br/>Distribution:  The distribution's information.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AliasICPRecordals</i> Amazon Web Services services in China customers must file for an Internet Content Provider (ICP) recordal if they want to serve content publicly on an alternate domain name, also known as a CNAME, that they've added to CloudFront. AliasICPRecordal provides the ICP recordal status for CNAMEs associated with distributions. For more information about ICP recordals, see <a href="https://docs.amazonaws.cn/en_us/aws/latest/userguide/accounts-and-credentials.html"> Signup, Accounts, and Credentials</a> in <i>Getting Started with Amazon Web Services services in China</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DistributionConfig</i> The current configuration information for the distribution. Send a <code>GET</code> request to the <code>/<i>CloudFront API version</i>/distribution ID/config</code> resource.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DistributionConfig</b>: The current configuration information for the distribution. Send a <code>GET</code> request to the <code>/<i>CloudFront API version</i>/distribution ID/config</code> resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActiveTrustedKeyGroups</i> CloudFront automatically adds this field to the response if you’ve configured a cache behavior in this distribution to serve private content using key groups. This field contains a list of key groups and the public keys in each key group that CloudFront can use to verify the signatures of signed URLs or signed cookies.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ActiveTrustedKeyGroups</b>: CloudFront automatically adds this field to the response if you’ve configured a cache behavior in this distribution to serve private content using key groups. This field contains a list of key groups and the public keys in each key group that CloudFront can use to verify the signatures of signed URLs or signed cookies.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActiveTrustedSigners</i> <important> We recommend using <code>TrustedKeyGroups</code> instead of <code>TrustedSigners</code>. </important> CloudFront automatically adds this field to the response if you’ve configured a cache behavior in this distribution to serve private content using trusted signers. This field contains a list of account IDs and the active CloudFront key pairs in each account that CloudFront can use to verify the signatures of signed URLs or signed cookies.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ActiveTrustedSigners</b>: <important> We recommend using <code>TrustedKeyGroups</code> instead of <code>TrustedSigners</code>. </important> CloudFront automatically adds this field to the response if you’ve configured a cache behavior in this distribution to serve private content using trusted signers. This field contains a list of account IDs and the active CloudFront key pairs in each account that CloudFront can use to verify the signatures of signed URLs or signed cookies.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainName</i> The domain name corresponding to the distribution, for example, <code>d111111abcdef8.cloudfront.net</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InProgressInvalidationBatches</i> The number of invalidation batches currently in progress. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedTime</i> The date and time the distribution was last modified. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> This response element indicates the current status of the distribution. When the status is <code>Deployed</code>, the distribution's information is fully propagated to all CloudFront edge locations. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ARN</i> The ARN (Amazon Resource Name) for the distribution. For example: <code>arn:aws:cloudfront::123456789012:distribution/EDFDVBD632BHDS5</code>, where <code>123456789012</code> is your account ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The identifier for the distribution. For example: <code>EDFDVBD632BHDS5</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Items</i> A list of accounts and the identifiers of active CloudFront key pairs in each account that CloudFront can use to verify the signatures of signed URLs and signed cookies.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Quantity</i> The number of accounts in the list.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> This field is <code>true</code> if any of the accounts in the list have active CloudFront key pairs that CloudFront can use to verify the signatures of signed URLs and signed cookies. If not, this field is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Items</i> A list of key groups, including the identifiers of the public keys in each key group that CloudFront can use to verify the signatures of signed URLs and signed cookies.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Quantity</i> The number of key groups in the list.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> This field is <code>true</code> if any of the key groups have public keys that CloudFront can use to verify the signatures of signed URLs and signed cookies. If not, this field is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CallerReference</i> A unique value (for example, a date-time stamp) that ensures that the request can't be replayed. If the value of <code>CallerReference</code> is new (regardless of the content of the <code>DistributionConfig</code> object), CloudFront creates a new distribution. If <code>CallerReference</code> is a value that you already sent in a previous request to create a distribution, CloudFront returns a <code>DistributionAlreadyExists</code> error.<br/>A complex type that contains information about CNAMEs (alternate domain names), if any, for this distribution.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Aliases</b>: A complex type that contains information about CNAMEs (alternate domain names), if any, for this distribution.        """
        pass

    def get_distribution_config(self, Id: str) -> GetDistributionConfigResult:
        r"""Get the configuration information about a distribution. 

        :param self:
        :param Id:  The distribution's ID. If the ID is empty, an empty distribution configuration is returned.<br/>
        :return: ETag:  The current version of the configuration. For example: <code>E2QWRUHAPOMQZL</code>.<br/>DistributionConfig:  The distribution's configuration information.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsIPV6Enabled</i> If you want CloudFront to respond to IPv6 DNS requests with an IPv6 address for your distribution, specify <code>true</code>. If you specify <code>false</code>, CloudFront responds to IPv6 DNS requests with the DNS response code <code>NOERROR</code> and with no IP addresses. This allows viewers to submit a second request, for an IPv4 address for your distribution.  In general, you should enable IPv6 if you have users on IPv6 networks who want to access your content. However, if you're using signed URLs or signed cookies to restrict access to your content, and if you're using a custom policy that includes the <code>IpAddress</code> parameter to restrict the IP addresses that can access your content, don't enable IPv6. If you want to restrict access to some content by IP address and not restrict access to other content (or restrict access but not by IP address), you can create two distributions. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-creating-signed-url-custom-policy.html">Creating a Signed URL Using a Custom Policy</a> in the <i>Amazon CloudFront Developer Guide</i>. If you're using an Route 53 Amazon Web Services Integration alias resource record set to route traffic to your CloudFront distribution, you need to create a second alias resource record set when both of the following are true: <ul> <li> You enable IPv6 for the distribution </li> <li> You're using alternate domain names in the URLs for your objects </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-to-cloudfront-distribution.html">Routing Traffic to an Amazon CloudFront Web Distribution by Using Your Domain Name</a> in the <i>Route 53 Amazon Web Services Integration Developer Guide</i>. If you created a CNAME resource record set, either with Route 53 Amazon Web Services Integration or with another DNS service, you don't need to make any changes. A CNAME record will route traffic to your distribution regardless of the IP address format of the viewer request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HttpVersion</i> (Optional) Specify the maximum HTTP version that you want viewers to use to communicate with CloudFront. The default value for new web distributions is http2. Viewers that don't support HTTP/2 automatically use an earlier HTTP version. For viewers and CloudFront to use HTTP/2, viewers must support TLS 1.2 or later, and must support Server Name Identification (SNI). In general, configuring CloudFront to communicate with viewers using HTTP/2 reduces latency. You can improve performance by optimizing for HTTP/2. For more information, do an Internet search for "http/2 optimization." <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WebACLId</i> A unique identifier that specifies the WAF web ACL, if any, to associate with this distribution. To specify a web ACL created using the latest version of WAF, use the ACL ARN, for example <code>arn:aws:wafv2:us-east-1:123456789012:global/webacl/ExampleWebACL/473e64fd-f30b-4765-81a0-62ad96dd167a</code>. To specify a web ACL created using WAF Classic, use the ACL ID, for example <code>473e64fd-f30b-4765-81a0-62ad96dd167a</code>. WAF is a web application firewall that lets you monitor the HTTP and HTTPS requests that are forwarded to CloudFront, and lets you control access to your content. Based on conditions that you specify, such as the IP addresses that requests originate from or the values of query strings, CloudFront responds to requests either with the requested content or with an HTTP 403 status code (Forbidden). You can also configure CloudFront to return a custom error page when a request is blocked. For more information about WAF, see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/what-is-aws-waf.html">WAF Developer Guide</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Restrictions</i> A complex type that identifies ways in which you want to restrict distribution of your content.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Restrictions</b>: A complex type that identifies ways in which you want to restrict distribution of your content.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ViewerCertificate</i> A complex type that determines the distribution’s SSL/TLS configuration for communicating with viewers.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ViewerCertificate</b>: A complex type that determines the distribution’s SSL/TLS configuration for communicating with viewers.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> From this field, you can enable or disable the selected distribution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PriceClass</i> The price class that corresponds with the maximum price that you want to pay for CloudFront service. If you specify <code>PriceClass_All</code>, CloudFront responds to requests for your objects from all CloudFront edge locations. If you specify a price class other than <code>PriceClass_All</code>, CloudFront serves your objects from the CloudFront edge location that has the lowest latency among the edge locations in your price class. Viewers who are in or near regions that are excluded from your specified price class may encounter slower performance. For more information about price classes, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PriceClass.html">Choosing the Price Class for a CloudFront Distribution</a> in the <i>Amazon CloudFront Developer Guide</i>. For information about CloudFront pricing, including how price classes (such as Price Class 100) map to CloudFront regions, see <a href="http://aws.amazon.com/cloudfront/pricing/">Amazon CloudFront Pricing</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Logging</i> A complex type that controls whether access logs are written for the distribution. For more information about logging, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/AccessLogs.html">Access Logs</a> in the <i>Amazon CloudFront Developer Guide</i>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Logging</b>: A complex type that controls whether access logs are written for the distribution. For more information about logging, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/AccessLogs.html">Access Logs</a> in the <i>Amazon CloudFront Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Comment</i> An optional comment to describe the distribution. The comment cannot be longer than 128 characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomErrorResponses</i> A complex type that controls the following: <ul> <li> Whether CloudFront replaces HTTP status codes in the 4xx and 5xx range with custom error messages before returning the response to the viewer. </li> <li> How long CloudFront caches HTTP status codes in the 4xx and 5xx range. </li> </ul> For more information about custom error pages, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/custom-error-pages.html">Customizing Error Responses</a> in the <i>Amazon CloudFront Developer Guide</i>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CustomErrorResponses</b>: A complex type that controls the following: <ul> <li> Whether CloudFront replaces HTTP status codes in the 4xx and 5xx range with custom error messages before returning the response to the viewer. </li> <li> How long CloudFront caches HTTP status codes in the 4xx and 5xx range. </li> </ul> For more information about custom error pages, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/custom-error-pages.html">Customizing Error Responses</a> in the <i>Amazon CloudFront Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheBehaviors</i> A complex type that contains zero or more <code>CacheBehavior</code> elements. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CacheBehaviors</b>: A complex type that contains zero or more <code>CacheBehavior</code> elements. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultCacheBehavior</i> A complex type that describes the default cache behavior if you don't specify a <code>CacheBehavior</code> element or if files don't match any of the values of <code>PathPattern</code> in <code>CacheBehavior</code> elements. You must create exactly one default cache behavior.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DefaultCacheBehavior</b>: A complex type that describes the default cache behavior if you don't specify a <code>CacheBehavior</code> element or if files don't match any of the values of <code>PathPattern</code> in <code>CacheBehavior</code> elements. You must create exactly one default cache behavior.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OriginGroups</i>  A complex type that contains information about origin groups for this distribution.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>OriginGroups</b>:  A complex type that contains information about origin groups for this distribution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Origins</i> A complex type that contains information about origins for this distribution. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Origins</b>: A complex type that contains information about origins for this distribution. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultRootObject</i> The object that you want CloudFront to request from your origin (for example, <code>index.html</code>) when a viewer requests the root URL for your distribution (<code>http://www.example.com</code>) instead of an object in your distribution (<code>http://www.example.com/product-description.html</code>). Specifying a default root object avoids exposing the contents of your distribution. Specify only the object name, for example, <code>index.html</code>. Don't add a <code>/</code> before the object name. If you don't want to specify a default root object when you create a distribution, include an empty <code>DefaultRootObject</code> element. To delete the default root object from an existing distribution, update the distribution configuration and include an empty <code>DefaultRootObject</code> element. To replace the default root object, update the distribution configuration and specify the new object. For more information about the default root object, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/DefaultRootObject.html">Creating a Default Root Object</a> in the <i>Amazon CloudFront Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Aliases</i> A complex type that contains information about CNAMEs (alternate domain names), if any, for this distribution.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Aliases</b>: A complex type that contains information about CNAMEs (alternate domain names), if any, for this distribution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CallerReference</i> A unique value (for example, a date-time stamp) that ensures that the request can't be replayed. If the value of <code>CallerReference</code> is new (regardless of the content of the <code>DistributionConfig</code> object), CloudFront creates a new distribution. If <code>CallerReference</code> is a value that you already sent in a previous request to create a distribution, CloudFront returns a <code>DistributionAlreadyExists</code> error.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Items</i> A complex type that contains the CNAME aliases, if any, that you want to associate with this distribution.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Quantity</i> The number of CNAME aliases, if any, that you want to associate with this distribution.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Items</i> A list of origins.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Quantity</i> The number of origins for this distribution.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Items</i> The items (origin groups) in a distribution.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Quantity</i> The number of origin groups.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetOriginId</i> The value of <code>ID</code> for the origin that you want CloudFront to route requests to when they use the default cache behavior.<br/><important> We recommend using <code>TrustedKeyGroups</code> instead of <code>TrustedSigners</code>. </important> A list of account IDs whose public keys CloudFront can use to validate signed URLs or signed cookies. When a cache behavior contains trusted signers, CloudFront requires signed URLs or signed cookies for all requests that match the cache behavior. The URLs or cookies must be signed with the private key of a CloudFront key pair in a trusted signer’s account. The signed URL or cookie contains information about which public key CloudFront should use to verify the signature. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html">Serving private content</a> in the <i>Amazon CloudFront Developer Guide</i>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TrustedSigners</b>: <important> We recommend using <code>TrustedKeyGroups</code> instead of <code>TrustedSigners</code>. </important> A list of account IDs whose public keys CloudFront can use to validate signed URLs or signed cookies. When a cache behavior contains trusted signers, CloudFront requires signed URLs or signed cookies for all requests that match the cache behavior. The URLs or cookies must be signed with the private key of a CloudFront key pair in a trusted signer’s account. The signed URL or cookie contains information about which public key CloudFront should use to verify the signature. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html">Serving private content</a> in the <i>Amazon CloudFront Developer Guide</i>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Items</i> Optional: A complex type that contains cache behaviors for this distribution. If <code>Quantity</code> is <code>0</code>, you can omit <code>Items</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Quantity</i> The number of cache behaviors for this distribution. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Items</i> A complex type that contains a <code>CustomErrorResponse</code> element for each HTTP status code for which you want to specify a custom error page and/or a caching duration. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Quantity</i> The number of HTTP status codes for which you want to specify a custom error page and/or a caching duration. If <code>Quantity</code> is <code>0</code>, you can omit <code>Items</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Prefix</i> An optional string that you want CloudFront to prefix to the access log <code>filenames</code> for this distribution, for example, <code>myprefix/</code>. If you want to enable logging, but you don't want to specify a prefix, you still must include an empty <code>Prefix</code> element in the <code>Logging</code> element.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i> The Amazon S3 bucket to store the access logs in, for example, <code>myawslogbucket.s3.amazonaws.com</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeCookies</i> Specifies whether you want CloudFront to include cookies in access logs, specify <code>true</code> for <code>IncludeCookies</code>. If you choose to include cookies in logs, CloudFront logs all cookies regardless of how you configure the cache behaviors for this distribution. If you don't want to include cookies when you create a distribution or if you want to disable include cookies for an existing distribution, specify <code>false</code> for <code>IncludeCookies</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specifies whether you want CloudFront to save access logs to an Amazon S3 bucket. If you don't want to enable logging when you create a distribution or if you want to disable logging for an existing distribution, specify <code>false</code> for <code>Enabled</code>, and specify empty <code>Bucket</code> and <code>Prefix</code> elements. If you specify <code>false</code> for <code>Enabled</code> but you specify values for <code>Bucket</code>, <code>prefix</code>, and <code>IncludeCookies</code>, the values are automatically deleted.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CertificateSource</i> This field is deprecated. Use one of the following fields instead: <ul> <li>  <code>ACMCertificateArn</code>  </li> <li>  <code>IAMCertificateId</code>  </li> <li>  <code>CloudFrontDefaultCertificate</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Certificate</i> This field is deprecated. Use one of the following fields instead: <ul> <li>  <code>ACMCertificateArn</code>  </li> <li>  <code>IAMCertificateId</code>  </li> <li>  <code>CloudFrontDefaultCertificate</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MinimumProtocolVersion</i> If the distribution uses <code>Aliases</code> (alternate domain names or CNAMEs), specify the security policy that you want CloudFront to use for HTTPS connections with viewers. The security policy determines two settings: <ul> <li> The minimum SSL/TLS protocol that CloudFront can use to communicate with viewers. </li> <li> The ciphers that CloudFront can use to encrypt the content that it returns to viewers. </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValues-security-policy">Security Policy</a> and <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/secure-connections-supported-viewer-protocols-ciphers.html#secure-connections-supported-ciphers">Supported Protocols and Ciphers Between Viewers and CloudFront</a> in the <i>Amazon CloudFront Developer Guide</i>. <note> On the CloudFront console, this setting is called <b>Security Policy</b>. </note> When you’re using SNI only (you set <code>SSLSupportMethod</code> to <code>sni-only</code>), you must specify <code>TLSv1</code> or higher. If the distribution uses the CloudFront domain name such as <code>d111111abcdef8.cloudfront.net</code> (you set <code>CloudFrontDefaultCertificate</code> to <code>true</code>), CloudFront automatically sets the security policy to <code>TLSv1</code> regardless of the value that you set here.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SSLSupportMethod</i> If the distribution uses <code>Aliases</code> (alternate domain names or CNAMEs), specify which viewers the distribution accepts HTTPS connections from. <ul> <li>  <code>sni-only</code> – The distribution accepts HTTPS connections from only viewers that support <a href="https://en.wikipedia.org/wiki/Server_Name_Indication">server name indication (SNI)</a>. This is recommended. Most browsers and clients support SNI. </li> <li>  <code>vip</code> – The distribution accepts HTTPS connections from all viewers including those that don’t support SNI. This is not recommended, and results in additional monthly charges from CloudFront. </li> <li>  <code>static-ip</code> - Do not specify this value unless your distribution has been enabled for this feature by the CloudFront team. If you have a use case that requires static IP addresses for a distribution, contact CloudFront through the <a href="https://console.aws.amazon.com/support/home">Amazon Web Services Support Center</a>. </li> </ul> If the distribution uses the CloudFront domain name such as <code>d111111abcdef8.cloudfront.net</code>, don’t set a value for this field.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ACMCertificateArn</i> If the distribution uses <code>Aliases</code> (alternate domain names or CNAMEs) and the SSL/TLS certificate is stored in <a href="https://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html">Certificate Manager (ACM)</a>, provide the Amazon Resource Name (ARN) of the ACM certificate. CloudFront only supports ACM certificates in the US East (N. Virginia) Region (<code>us-east-1</code>). If you specify an ACM certificate ARN, you must also specify values for <code>MinimumProtocolVersion</code> and <code>SSLSupportMethod</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IAMCertificateId</i> If the distribution uses <code>Aliases</code> (alternate domain names or CNAMEs) and the SSL/TLS certificate is stored in <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html">Identity and Access Management (IAM)</a>, provide the ID of the IAM certificate. If you specify an IAM certificate ID, you must also specify values for <code>MinimumProtocolVersion</code> and <code>SSLSupportMethod</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudFrontDefaultCertificate</i> If the distribution uses the CloudFront domain name such as <code>d111111abcdef8.cloudfront.net</code>, set this field to <code>true</code>. If the distribution uses <code>Aliases</code> (alternate domain names or CNAMEs), set this field to <code>false</code> and specify values for the following fields: <ul> <li>  <code>ACMCertificateArn</code> or <code>IAMCertificateId</code> (specify a value for one, not both) </li> <li>  <code>MinimumProtocolVersion</code>  </li> <li>  <code>SSLSupportMethod</code>  </li> </ul><br/>A complex type that controls the countries in which your content is distributed. CloudFront determines the location of your users using <code>MaxMind</code> GeoIP databases.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>GeoRestriction</b>: A complex type that controls the countries in which your content is distributed. CloudFront determines the location of your users using <code>MaxMind</code> GeoIP databases.        """
        pass

    def get_field_level_encryption(self, Id: str) -> GetFieldLevelEncryptionResult:
        r"""Get the field-level encryption configuration information.

        :param self:
        :param Id:  Request the ID for the field-level encryption configuration information.<br/>
        :return: ETag:  The current version of the field level encryption configuration. For example: <code>E2QWRUHAPOMQZL</code>.<br/>FieldLevelEncryption:  Return the field-level encryption configuration information.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FieldLevelEncryptionConfig</i> A complex data type that includes the profile configurations specified for field-level encryption. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>FieldLevelEncryptionConfig</b>: A complex data type that includes the profile configurations specified for field-level encryption. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedTime</i> The last time the field-level encryption configuration was changed. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The configuration ID for a field-level encryption configuration which includes a set of profiles that specify certain selected data fields to be encrypted by specific public keys.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Comment</i> An optional comment about the configuration. The comment cannot be longer than 128 characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CallerReference</i> A unique number that ensures the request can't be replayed.<br/>A complex data type that specifies when to forward content if a profile isn't found and the profile that can be provided as a query argument in a request.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>QueryArgProfileConfig</b>: A complex data type that specifies when to forward content if a profile isn't found and the profile that can be provided as a query argument in a request.        """
        pass

    def get_field_level_encryption_config(self, Id: str) -> GetFieldLevelEncryptionConfigResult:
        r"""Get the field-level encryption configuration information.

        :param self:
        :param Id:  Request the ID for the field-level encryption configuration information.<br/>
        :return: ETag:  The current version of the field level encryption configuration. For example: <code>E2QWRUHAPOMQZL</code>.<br/>FieldLevelEncryptionConfig:  Return the field-level encryption configuration information.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ContentTypeProfileConfig</i> A complex data type that specifies when to forward content if a content type isn't recognized and profiles to use as by default in a request if a query argument doesn't specify a profile to use.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ContentTypeProfileConfig</b>: A complex data type that specifies when to forward content if a content type isn't recognized and profiles to use as by default in a request if a query argument doesn't specify a profile to use.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>QueryArgProfileConfig</i> A complex data type that specifies when to forward content if a profile isn't found and the profile that can be provided as a query argument in a request.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>QueryArgProfileConfig</b>: A complex data type that specifies when to forward content if a profile isn't found and the profile that can be provided as a query argument in a request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Comment</i> An optional comment about the configuration. The comment cannot be longer than 128 characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CallerReference</i> A unique number that ensures the request can't be replayed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ForwardWhenQueryArgProfileIsUnknown</i> Flag to set if you want a request to be forwarded to the origin even if the profile specified by the field-level encryption query argument, fle-profile, is unknown.<br/>Profiles specified for query argument-profile mapping for field-level encryption.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>QueryArgProfiles</b>: Profiles specified for query argument-profile mapping for field-level encryption.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ForwardWhenContentTypeIsUnknown</i> The setting in a field-level encryption content type-profile mapping that specifies what to do when an unknown content type is provided for the profile. If true, content is forwarded without being encrypted when the content type is unknown. If false (the default), an error is returned when the content type is unknown. <br/>The configuration for a field-level encryption content type-profile. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ContentTypeProfiles</b>: The configuration for a field-level encryption content type-profile.         """
        pass

    def get_field_level_encryption_profile(self, Id: str) -> GetFieldLevelEncryptionProfileResult:
        r"""Get the field-level encryption profile information.

        :param self:
        :param Id:  Get the ID for the field-level encryption profile information.<br/>
        :return: ETag:  The current version of the field level encryption profile. For example: <code>E2QWRUHAPOMQZL</code>.<br/>FieldLevelEncryptionProfile:  Return the field-level encryption profile information.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FieldLevelEncryptionProfileConfig</i> A complex data type that includes the profile name and the encryption entities for the field-level encryption profile.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>FieldLevelEncryptionProfileConfig</b>: A complex data type that includes the profile name and the encryption entities for the field-level encryption profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedTime</i> The last time the field-level encryption profile was updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID for a field-level encryption profile configuration which includes a set of profiles that specify certain selected data fields to be encrypted by specific public keys.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Comment</i> An optional comment for the field-level encryption profile. The comment cannot be longer than 128 characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CallerReference</i> A unique number that ensures that the request can't be replayed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> Profile name for the field-level encryption profile.<br/>A complex data type of encryption entities for the field-level encryption profile that include the public key ID, provider, and field patterns for specifying which fields to encrypt with this key.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EncryptionEntities</b>: A complex data type of encryption entities for the field-level encryption profile that include the public key ID, provider, and field patterns for specifying which fields to encrypt with this key.        """
        pass

    def get_field_level_encryption_profile_config(self, Id: str) -> GetFieldLevelEncryptionProfileConfigResult:
        r"""Get the field-level encryption profile configuration information.

        :param self:
        :param Id:  Get the ID for the field-level encryption profile configuration information.<br/>
        :return: ETag:  The current version of the field-level encryption profile configuration result. For example: <code>E2QWRUHAPOMQZL</code>.<br/>FieldLevelEncryptionProfileConfig:  Return the field-level encryption profile configuration information.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EncryptionEntities</i> A complex data type of encryption entities for the field-level encryption profile that include the public key ID, provider, and field patterns for specifying which fields to encrypt with this key.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EncryptionEntities</b>: A complex data type of encryption entities for the field-level encryption profile that include the public key ID, provider, and field patterns for specifying which fields to encrypt with this key.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Comment</i> An optional comment for the field-level encryption profile. The comment cannot be longer than 128 characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CallerReference</i> A unique number that ensures that the request can't be replayed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> Profile name for the field-level encryption profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Items</i> An array of field patterns in a field-level encryption content type-profile mapping. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Quantity</i> Number of field pattern items in a field-level encryption content type-profile mapping. <br/>        """
        pass

    def get_function(self, Name: str, Stage: str=None) -> GetFunctionResult:
        r"""Gets the code of a CloudFront function. To get configuration information and metadata about a function, use <code>DescribeFunction</code>. To get a function’s code, you must provide the function’s name and stage. To get these values, you can use <code>ListFunctions</code>.

        :param self:
        :param Stage:  The function’s stage, either <code>DEVELOPMENT</code> or <code>LIVE</code>.<br/>Name:  The name of the function whose code you are getting.<br/>
        :return: ContentType:  The content type (media type) of the response.<br/>ETag:  The version identifier for the current version of the CloudFront function.<br/>FunctionCode:  The function code of a CloudFront function.<br/>        """
        pass

    def get_invalidation(self, Id: str, DistributionId: str) -> GetInvalidationResult:
        r"""Get the information about an invalidation. 

        :param self:
        :param Id:  The identifier for the invalidation request, for example, <code>IDFDVBD632BHDS5</code>.<br/>DistributionId:  The distribution's ID.<br/>
        :return: Invalidation:  The invalidation's information. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/InvalidationDatatype.html">Invalidation Complex Type</a>. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InvalidationBatch</i> The current invalidation information for the batch request. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>InvalidationBatch</b>: The current invalidation information for the batch request. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreateTime</i> The date and time the invalidation request was first made. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the invalidation request. When the invalidation batch is finished, the status is <code>Completed</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The identifier for the invalidation request. For example: <code>IDFDVBD632BHDS5</code>.<br/>A complex type that contains information about the objects that you want to invalidate. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Invalidation.html#invalidation-specifying-objects">Specifying the Objects to Invalidate</a> in the <i>Amazon CloudFront Developer Guide</i>. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Paths</b>: A complex type that contains information about the objects that you want to invalidate. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Invalidation.html#invalidation-specifying-objects">Specifying the Objects to Invalidate</a> in the <i>Amazon CloudFront Developer Guide</i>.         """
        pass

    def get_key_group(self, Id: str) -> GetKeyGroupResult:
        r"""Gets a key group, including the date and time when the key group was last modified. To get a key group, you must provide the key group’s identifier. If the key group is referenced in a distribution’s cache behavior, you can get the key group’s identifier using <code>ListDistributions</code> or <code>GetDistribution</code>. If the key group is not referenced in a cache behavior, you can get the identifier using <code>ListKeyGroups</code>.

        :param self:
        :param Id:  The identifier of the key group that you are getting. To get the identifier, use <code>ListKeyGroups</code>.<br/>
        :return: ETag:  The identifier for this version of the key group.<br/>KeyGroup:  The key group.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KeyGroupConfig</i> The key group configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>KeyGroupConfig</b>: The key group configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedTime</i> The date and time when the key group was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The identifier for the key group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Comment</i> A comment to describe the key group. The comment cannot be longer than 128 characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Items</i> A list of the identifiers of the public keys in the key group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A name to identify the key group.<br/>        """
        pass

    def get_key_group_config(self, Id: str) -> GetKeyGroupConfigResult:
        r"""Gets a key group configuration. To get a key group configuration, you must provide the key group’s identifier. If the key group is referenced in a distribution’s cache behavior, you can get the key group’s identifier using <code>ListDistributions</code> or <code>GetDistribution</code>. If the key group is not referenced in a cache behavior, you can get the identifier using <code>ListKeyGroups</code>.

        :param self:
        :param Id:  The identifier of the key group whose configuration you are getting. To get the identifier, use <code>ListKeyGroups</code>.<br/>
        :return: ETag:  The identifier for this version of the key group.<br/>KeyGroupConfig:  The key group configuration.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Comment</i> A comment to describe the key group. The comment cannot be longer than 128 characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Items</i> A list of the identifiers of the public keys in the key group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A name to identify the key group.<br/>        """
        pass

    def get_monitoring_subscription(self, DistributionId: str) -> GetMonitoringSubscriptionResult:
        r"""Gets information about whether additional CloudWatch metrics are enabled for the specified CloudFront distribution.

        :param self:
        :param DistributionId:  The ID of the distribution that you are getting metrics information for.<br/>
        :return: MonitoringSubscription:  A monitoring subscription. This structure contains information about whether additional CloudWatch metrics are enabled for a given CloudFront distribution.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RealtimeMetricsSubscriptionConfig</i> A subscription configuration for additional CloudWatch metrics.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RealtimeMetricsSubscriptionConfig</b>: A subscription configuration for additional CloudWatch metrics.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RealtimeMetricsSubscriptionStatus</i> A flag that indicates whether additional CloudWatch metrics are enabled for a given CloudFront distribution.<br/>        """
        pass

    def get_origin_request_policy(self, Id: str) -> GetOriginRequestPolicyResult:
        r"""Gets an origin request policy, including the following metadata: <ul> <li> The policy’s identifier. </li> <li> The date and time when the policy was last modified. </li> </ul> To get an origin request policy, you must provide the policy’s identifier. If the origin request policy is attached to a distribution’s cache behavior, you can get the policy’s identifier using <code>ListDistributions</code> or <code>GetDistribution</code>. If the origin request policy is not attached to a cache behavior, you can get the identifier using <code>ListOriginRequestPolicies</code>.

        :param self:
        :param Id:  The unique identifier for the origin request policy. If the origin request policy is attached to a distribution’s cache behavior, you can get the policy’s identifier using <code>ListDistributions</code> or <code>GetDistribution</code>. If the origin request policy is not attached to a cache behavior, you can get the identifier using <code>ListOriginRequestPolicies</code>.<br/>
        :return: ETag:  The current version of the origin request policy.<br/>OriginRequestPolicy:  The origin request policy.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OriginRequestPolicyConfig</i> The origin request policy configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>OriginRequestPolicyConfig</b>: The origin request policy configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedTime</i> The date and time when the origin request policy was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The unique identifier for the origin request policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A unique name to identify the origin request policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Comment</i> A comment to describe the origin request policy. The comment cannot be longer than 128 characters.<br/>The HTTP headers to include in origin requests. These can include headers from viewer requests and additional headers added by CloudFront.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>HeadersConfig</b>: The HTTP headers to include in origin requests. These can include headers from viewer requests and additional headers added by CloudFront.        """
        pass

    def get_origin_request_policy_config(self, Id: str) -> GetOriginRequestPolicyConfigResult:
        r"""Gets an origin request policy configuration. To get an origin request policy configuration, you must provide the policy’s identifier. If the origin request policy is attached to a distribution’s cache behavior, you can get the policy’s identifier using <code>ListDistributions</code> or <code>GetDistribution</code>. If the origin request policy is not attached to a cache behavior, you can get the identifier using <code>ListOriginRequestPolicies</code>.

        :param self:
        :param Id:  The unique identifier for the origin request policy. If the origin request policy is attached to a distribution’s cache behavior, you can get the policy’s identifier using <code>ListDistributions</code> or <code>GetDistribution</code>. If the origin request policy is not attached to a cache behavior, you can get the identifier using <code>ListOriginRequestPolicies</code>.<br/>
        :return: ETag:  The current version of the origin request policy.<br/>OriginRequestPolicyConfig:  The origin request policy configuration.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>QueryStringsConfig</i> The URL query strings from viewer requests to include in origin requests.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>QueryStringsConfig</b>: The URL query strings from viewer requests to include in origin requests.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CookiesConfig</i> The cookies from viewer requests to include in origin requests.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CookiesConfig</b>: The cookies from viewer requests to include in origin requests.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HeadersConfig</i> The HTTP headers to include in origin requests. These can include headers from viewer requests and additional headers added by CloudFront.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>HeadersConfig</b>: The HTTP headers to include in origin requests. These can include headers from viewer requests and additional headers added by CloudFront.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A unique name to identify the origin request policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Comment</i> A comment to describe the origin request policy. The comment cannot be longer than 128 characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HeaderBehavior</i> Determines whether any HTTP headers are included in requests that CloudFront sends to the origin. Valid values are: <ul> <li>  <code>none</code> – HTTP headers are not included in requests that CloudFront sends to the origin. Even when this field is set to <code>none</code>, any headers that are listed in a <code>CachePolicy</code> <i>are</i> included in origin requests. </li> <li>  <code>whitelist</code> – The HTTP headers that are listed in the <code>Headers</code> type are included in requests that CloudFront sends to the origin. </li> <li>  <code>allViewer</code> – All HTTP headers in viewer requests are included in requests that CloudFront sends to the origin. </li> <li>  <code>allViewerAndWhitelistCloudFront</code> – All HTTP headers in viewer requests and the additional CloudFront headers that are listed in the <code>Headers</code> type are included in requests that CloudFront sends to the origin. The additional headers are added by CloudFront. </li> </ul><br/>Contains a list of HTTP header names.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Headers</b>: Contains a list of HTTP header names.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CookieBehavior</i> Determines whether cookies in viewer requests are included in requests that CloudFront sends to the origin. Valid values are: <ul> <li>  <code>none</code> – Cookies in viewer requests are not included in requests that CloudFront sends to the origin. Even when this field is set to <code>none</code>, any cookies that are listed in a <code>CachePolicy</code> <i>are</i> included in origin requests. </li> <li>  <code>whitelist</code> – The cookies in viewer requests that are listed in the <code>CookieNames</code> type are included in requests that CloudFront sends to the origin. </li> <li>  <code>all</code> – All cookies in viewer requests are included in requests that CloudFront sends to the origin. </li> </ul><br/>Contains a list of cookie names.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Cookies</b>: Contains a list of cookie names.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>QueryStringBehavior</i> Determines whether any URL query strings in viewer requests are included in requests that CloudFront sends to the origin. Valid values are: <ul> <li>  <code>none</code> – Query strings in viewer requests are not included in requests that CloudFront sends to the origin. Even when this field is set to <code>none</code>, any query strings that are listed in a <code>CachePolicy</code> <i>are</i> included in origin requests. </li> <li>  <code>whitelist</code> – The query strings in viewer requests that are listed in the <code>QueryStringNames</code> type are included in requests that CloudFront sends to the origin. </li> <li>  <code>all</code> – All query strings in viewer requests are included in requests that CloudFront sends to the origin. </li> </ul><br/>Contains a list of the query strings in viewer requests that are included in requests that CloudFront sends to the origin.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>QueryStrings</b>: Contains a list of the query strings in viewer requests that are included in requests that CloudFront sends to the origin.        """
        pass

    def get_public_key(self, Id: str) -> GetPublicKeyResult:
        r"""Gets a public key.

        :param self:
        :param Id:  The identifier of the public key you are getting.<br/>
        :return: ETag:  The identifier for this version of the public key.<br/>PublicKey:  The public key.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PublicKeyConfig</i> Configuration information about a public key that you can use with <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html">signed URLs and signed cookies</a>, or with <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/field-level-encryption.html">field-level encryption</a>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PublicKeyConfig</b>: Configuration information about a public key that you can use with <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html">signed URLs and signed cookies</a>, or with <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/field-level-encryption.html">field-level encryption</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTime</i> The date and time when the public key was uploaded.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The identifier of the public key.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Comment</i> A comment to describe the public key. The comment cannot be longer than 128 characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EncodedKey</i> The public key that you can use with <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html">signed URLs and signed cookies</a>, or with <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/field-level-encryption.html">field-level encryption</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A name to help identify the public key.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CallerReference</i> A string included in the request to help make sure that the request can’t be replayed.<br/>        """
        pass

    def get_public_key_config(self, Id: str) -> GetPublicKeyConfigResult:
        r"""Gets a public key configuration.

        :param self:
        :param Id:  The identifier of the public key whose configuration you are getting.<br/>
        :return: ETag:  The identifier for this version of the public key configuration.<br/>PublicKeyConfig:  A public key configuration.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Comment</i> A comment to describe the public key. The comment cannot be longer than 128 characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EncodedKey</i> The public key that you can use with <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html">signed URLs and signed cookies</a>, or with <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/field-level-encryption.html">field-level encryption</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A name to help identify the public key.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CallerReference</i> A string included in the request to help make sure that the request can’t be replayed.<br/>        """
        pass

    def get_realtime_log_config(self, Name: str=None, ARN: str=None) -> GetRealtimeLogConfigResult:
        r"""Gets a real-time log configuration. To get a real-time log configuration, you can provide the configuration’s name or its Amazon Resource Name (ARN). You must provide at least one. If you provide both, CloudFront uses the name to identify the real-time log configuration to get.

        :param self:
        :param ARN:  The Amazon Resource Name (ARN) of the real-time log configuration to get.<br/>Name:  The name of the real-time log configuration to get.<br/>
        :return: RealtimeLogConfig:  A real-time log configuration.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Fields</i> A list of fields that are included in each real-time log record. In an API response, the fields are provided in the same order in which they are sent to the Amazon Kinesis data stream. For more information about fields, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/real-time-logs.html#understand-real-time-log-config-fields">Real-time log configuration fields</a> in the <i>Amazon CloudFront Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndPoints</i> Contains information about the Amazon Kinesis data stream where you are sending real-time log data for this real-time log configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SamplingRate</i> The sampling rate for this real-time log configuration. The sampling rate determines the percentage of viewer requests that are represented in the real-time log data. The sampling rate is an integer between 1 and 100, inclusive.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The unique name of this real-time log configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ARN</i> The Amazon Resource Name (ARN) of this real-time log configuration.<br/>        """
        pass

    def get_streaming_distribution(self, Id: str) -> GetStreamingDistributionResult:
        r"""Gets information about a specified RTMP distribution, including the distribution configuration.

        :param self:
        :param Id:  The streaming distribution's ID.<br/>
        :return: ETag:  The current version of the streaming distribution's information. For example: <code>E2QWRUHAPOMQZL</code>.<br/>StreamingDistribution:  The streaming distribution's information.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamingDistributionConfig</i> The current configuration information for the RTMP distribution.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StreamingDistributionConfig</b>: The current configuration information for the RTMP distribution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActiveTrustedSigners</i> A complex type that lists the accounts, if any, that you included in the <code>TrustedSigners</code> complex type for this distribution. These are the accounts that you want to allow to create signed URLs for private content. The <code>Signer</code> complex type lists the account number of the trusted signer or <code>self</code> if the signer is the account that created the distribution. The <code>Signer</code> element also includes the IDs of any active CloudFront key pairs that are associated with the trusted signer's account. If no <code>KeyPairId</code> element appears for a <code>Signer</code>, that signer can't create signed URLs. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html">Serving Private Content through CloudFront</a> in the <i>Amazon CloudFront Developer Guide</i>. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ActiveTrustedSigners</b>: A complex type that lists the accounts, if any, that you included in the <code>TrustedSigners</code> complex type for this distribution. These are the accounts that you want to allow to create signed URLs for private content. The <code>Signer</code> complex type lists the account number of the trusted signer or <code>self</code> if the signer is the account that created the distribution. The <code>Signer</code> element also includes the IDs of any active CloudFront key pairs that are associated with the trusted signer's account. If no <code>KeyPairId</code> element appears for a <code>Signer</code>, that signer can't create signed URLs. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html">Serving Private Content through CloudFront</a> in the <i>Amazon CloudFront Developer Guide</i>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainName</i> The domain name that corresponds to the streaming distribution, for example, <code>s5c39gqb8ow64r.cloudfront.net</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedTime</i> The date and time that the distribution was last modified. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current status of the RTMP distribution. When the status is <code>Deployed</code>, the distribution's information is propagated to all CloudFront edge locations.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ARN</i> The ARN (Amazon Resource Name) for the distribution. For example: <code>arn:aws:cloudfront::123456789012:distribution/EDFDVBD632BHDS5</code>, where <code>123456789012</code> is your account ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The identifier for the RTMP distribution. For example: <code>EGTXBD79EXAMPLE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Items</i> A list of accounts and the identifiers of active CloudFront key pairs in each account that CloudFront can use to verify the signatures of signed URLs and signed cookies.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Quantity</i> The number of accounts in the list.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> This field is <code>true</code> if any of the accounts in the list have active CloudFront key pairs that CloudFront can use to verify the signatures of signed URLs and signed cookies. If not, this field is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CallerReference</i> A unique value (for example, a date-time stamp) that ensures that the request can't be replayed. If the value of <code>CallerReference</code> is new (regardless of the content of the <code>StreamingDistributionConfig</code> object), CloudFront creates a new distribution. If <code>CallerReference</code> is a value that you already sent in a previous request to create a distribution, CloudFront returns a <code>DistributionAlreadyExists</code> error.<br/>A complex type that contains information about the Amazon S3 bucket from which you want CloudFront to get your media files for distribution. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3Origin</b>: A complex type that contains information about the Amazon S3 bucket from which you want CloudFront to get your media files for distribution.         """
        pass

    def get_streaming_distribution_config(self, Id: str) -> GetStreamingDistributionConfigResult:
        r"""Get the configuration information about a streaming distribution. 

        :param self:
        :param Id:  The streaming distribution's ID.<br/>
        :return: ETag:  The current version of the configuration. For example: <code>E2QWRUHAPOMQZL</code>. <br/>StreamingDistributionConfig:  The streaming distribution's configuration information.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Whether the streaming distribution is enabled to accept user requests for content.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PriceClass</i> A complex type that contains information about price class for this streaming distribution. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TrustedSigners</i> A complex type that specifies any accounts that you want to permit to create signed URLs for private content. If you want the distribution to use signed URLs, include this element; if you want the distribution to use public URLs, remove this element. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html">Serving Private Content through CloudFront</a> in the <i>Amazon CloudFront Developer Guide</i>. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TrustedSigners</b>: A complex type that specifies any accounts that you want to permit to create signed URLs for private content. If you want the distribution to use signed URLs, include this element; if you want the distribution to use public URLs, remove this element. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html">Serving Private Content through CloudFront</a> in the <i>Amazon CloudFront Developer Guide</i>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Logging</i> A complex type that controls whether access logs are written for the streaming distribution. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Logging</b>: A complex type that controls whether access logs are written for the streaming distribution. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Comment</i> Any comments you want to include about the streaming distribution. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Aliases</i> A complex type that contains information about CNAMEs (alternate domain names), if any, for this streaming distribution. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Aliases</b>: A complex type that contains information about CNAMEs (alternate domain names), if any, for this streaming distribution. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Origin</i> A complex type that contains information about the Amazon S3 bucket from which you want CloudFront to get your media files for distribution. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3Origin</b>: A complex type that contains information about the Amazon S3 bucket from which you want CloudFront to get your media files for distribution. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CallerReference</i> A unique value (for example, a date-time stamp) that ensures that the request can't be replayed. If the value of <code>CallerReference</code> is new (regardless of the content of the <code>StreamingDistributionConfig</code> object), CloudFront creates a new distribution. If <code>CallerReference</code> is a value that you already sent in a previous request to create a distribution, CloudFront returns a <code>DistributionAlreadyExists</code> error.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OriginAccessIdentity</i> The CloudFront origin access identity to associate with the distribution. Use an origin access identity to configure the distribution so that end users can only access objects in an Amazon S3 bucket through CloudFront. If you want end users to be able to access objects using either the CloudFront URL or the Amazon S3 URL, specify an empty <code>OriginAccessIdentity</code> element. To delete the origin access identity from an existing distribution, update the distribution configuration and include an empty <code>OriginAccessIdentity</code> element. To replace the origin access identity, update the distribution configuration and specify the new origin access identity. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-s3.html">Using an Origin Access Identity to Restrict Access to Your Amazon S3 Content</a> in the <i> Amazon CloudFront Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainName</i> The DNS name of the Amazon S3 origin. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Items</i> A complex type that contains the CNAME aliases, if any, that you want to associate with this distribution.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Quantity</i> The number of CNAME aliases, if any, that you want to associate with this distribution.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Prefix</i> An optional string that you want CloudFront to prefix to the access log filenames for this streaming distribution, for example, <code>myprefix/</code>. If you want to enable logging, but you don't want to specify a prefix, you still must include an empty <code>Prefix</code> element in the <code>Logging</code> element.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i> The Amazon S3 bucket to store the access logs in, for example, <code>myawslogbucket.s3.amazonaws.com</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specifies whether you want CloudFront to save access logs to an Amazon S3 bucket. If you don't want to enable logging when you create a streaming distribution or if you want to disable logging for an existing streaming distribution, specify <code>false</code> for <code>Enabled</code>, and specify <code>empty Bucket</code> and <code>Prefix</code> elements. If you specify <code>false</code> for <code>Enabled</code> but you specify values for <code>Bucket</code> and <code>Prefix</code>, the values are automatically deleted. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Items</i> A list of account identifiers.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Quantity</i> The number of accounts in the list.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> This field is <code>true</code> if any of the accounts have public keys that CloudFront can use to verify the signatures of signed URLs and signed cookies. If not, this field is <code>false</code>.<br/>        """
        pass

    def list_cache_policies(self, Type: str=None, Marker: str=None, MaxItems: str=None) -> ListCachePoliciesResult:
        r"""Gets a list of cache policies. You can optionally apply a filter to return only the managed policies created by Amazon Web Services, or only the custom policies created in your account. You can optionally specify the maximum number of items to receive in the response. If the total number of items in the list exceeds the maximum that you specify, or the default maximum, the response is paginated. To get the next page of items, send a subsequent request that specifies the <code>NextMarker</code> value from the current response as the <code>Marker</code> value in the subsequent request.

        :param self:
        :param MaxItems:  The maximum number of cache policies that you want in the response.<br/>Marker:  Use this field when paginating results to indicate where to begin in your list of cache policies. The response includes cache policies in the list that occur after the marker. To get the next page of the list, set this field’s value to the value of <code>NextMarker</code> from the current page’s response.<br/>Type:  A filter to return only the specified kinds of cache policies. Valid values are: <ul> <li>  <code>managed</code> – Returns only the managed policies created by Amazon Web Services. </li> <li>  <code>custom</code> – Returns only the custom policies created in your account. </li> </ul><br/>
        :return: CachePolicyList:  A list of cache policies.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Items</i> Contains the cache policies in the list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Quantity</i> The total number of cache policies returned in the response.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxItems</i> The maximum number of cache policies requested.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NextMarker</i> If there are more items in the list than are in this response, this element is present. It contains the value that you should use in the <code>Marker</code> field of a subsequent request to continue listing cache policies where you left off.<br/>        """
        pass

    def list_cloud_front_origin_access_identities(self, Marker: str=None, MaxItems: str=None) -> ListCloudFrontOriginAccessIdentitiesResult:
        r"""Lists origin access identities.

        :param self:
        :param MaxItems:  The maximum number of origin access identities you want in the response body. <br/>Marker:  Use this when paginating results to indicate where to begin in your list of origin access identities. The results include identities in the list that occur after the marker. To get the next page of results, set the <code>Marker</code> to the value of the <code>NextMarker</code> from the current page's response (which is also the ID of the last identity on that page).<br/>
        :return: CloudFrontOriginAccessIdentityList:  The <code>CloudFrontOriginAccessIdentityList</code> type. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Items</i> A complex type that contains one <code>CloudFrontOriginAccessIdentitySummary</code> element for each origin access identity that was created by the current account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Quantity</i> The number of CloudFront origin access identities that were created by the current account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsTruncated</i> A flag that indicates whether more origin access identities remain to be listed. If your results were truncated, you can make a follow-up pagination request using the <code>Marker</code> request parameter to retrieve more items in the list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxItems</i> The maximum number of origin access identities you want in the response body. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NextMarker</i> If <code>IsTruncated</code> is <code>true</code>, this element is present and contains the value you can use for the <code>Marker</code> request parameter to continue listing your origin access identities where they left off. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Marker</i> Use this when paginating results to indicate where to begin in your list of origin access identities. The results include identities in the list that occur after the marker. To get the next page of results, set the <code>Marker</code> to the value of the <code>NextMarker</code> from the current page's response (which is also the ID of the last identity on that page). <br/>        """
        pass

    def list_conflicting_aliases(self, Alias: str, DistributionId: str, Marker: str=None, MaxItems: int=None) -> ListConflictingAliasesResult:
        r"""Gets a list of aliases (also called CNAMEs or alternate domain names) that conflict or overlap with the provided alias, and the associated CloudFront distributions and Amazon Web Services accounts for each conflicting alias. In the returned list, the distribution and account IDs are partially hidden, which allows you to identify the distributions and accounts that you own, but helps to protect the information of ones that you don’t own. Use this operation to find aliases that are in use in CloudFront that conflict or overlap with the provided alias. For example, if you provide <code>www.example.com</code> as input, the returned list can include <code>www.example.com</code> and the overlapping wildcard alternate domain name (<code>*.example.com</code>), if they exist. If you provide <code>*.example.com</code> as input, the returned list can include <code>*.example.com</code> and any alternate domain names covered by that wildcard (for example, <code>www.example.com</code>, <code>test.example.com</code>, <code>dev.example.com</code>, and so on), if they exist. To list conflicting aliases, you provide the alias to search and the ID of a distribution in your account that has an attached SSL/TLS certificate that includes the provided alias. For more information, including how to set up the distribution and certificate, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/CNAMEs.html#alternate-domain-names-move">Moving an alternate domain name to a different distribution</a> in the <i>Amazon CloudFront Developer Guide</i>. You can optionally specify the maximum number of items to receive in the response. If the total number of items in the list exceeds the maximum that you specify, or the default maximum, the response is paginated. To get the next page of items, send a subsequent request that specifies the <code>NextMarker</code> value from the current response as the <code>Marker</code> value in the subsequent request.

        :param self:
        :param MaxItems:  The maximum number of conflicting aliases that you want in the response.<br/>Marker:  Use this field when paginating results to indicate where to begin in the list of conflicting aliases. The response includes conflicting aliases in the list that occur after the marker. To get the next page of the list, set this field’s value to the value of <code>NextMarker</code> from the current page’s response.<br/>Alias:  The alias (also called a CNAME) to search for conflicting aliases.<br/>DistributionId:  The ID of a distribution in your account that has an attached SSL/TLS certificate that includes the provided alias.<br/>
        :return: ConflictingAliasesList:  A list of conflicting aliases.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Items</i> Contains the conflicting aliases in the list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Quantity</i> The number of conflicting aliases returned in the response.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxItems</i> The maximum number of conflicting aliases requested.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NextMarker</i> If there are more items in the list than are in this response, this element is present. It contains the value that you should use in the <code>Marker</code> field of a subsequent request to continue listing conflicting aliases where you left off.<br/>        """
        pass

    def list_distributions(self, Marker: str=None, MaxItems: str=None) -> ListDistributionsResult:
        r"""List CloudFront distributions.

        :param self:
        :param MaxItems:  The maximum number of distributions you want in the response body.<br/>Marker:  Use this when paginating results to indicate where to begin in your list of distributions. The results include distributions in the list that occur after the marker. To get the next page of results, set the <code>Marker</code> to the value of the <code>NextMarker</code> from the current page's response (which is also the ID of the last distribution on that page).<br/>
        :return: DistributionList:  The <code>DistributionList</code> type. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Items</i> A complex type that contains one <code>DistributionSummary</code> element for each distribution that was created by the current account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Quantity</i> The number of distributions that were created by the current account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsTruncated</i> A flag that indicates whether more distributions remain to be listed. If your results were truncated, you can make a follow-up pagination request using the <code>Marker</code> request parameter to retrieve more distributions in the list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxItems</i> The value you provided for the <code>MaxItems</code> request parameter.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NextMarker</i> If <code>IsTruncated</code> is <code>true</code>, this element is present and contains the value you can use for the <code>Marker</code> request parameter to continue listing your distributions where they left off. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Marker</i> The value you provided for the <code>Marker</code> request parameter.<br/>        """
        pass

    def list_distributions_by_cache_policy_id(self, CachePolicyId: str, Marker: str=None, MaxItems: str=None) -> ListDistributionsByCachePolicyIdResult:
        r"""Gets a list of distribution IDs for distributions that have a cache behavior that’s associated with the specified cache policy. You can optionally specify the maximum number of items to receive in the response. If the total number of items in the list exceeds the maximum that you specify, or the default maximum, the response is paginated. To get the next page of items, send a subsequent request that specifies the <code>NextMarker</code> value from the current response as the <code>Marker</code> value in the subsequent request.

        :param self:
        :param CachePolicyId:  The ID of the cache policy whose associated distribution IDs you want to list.<br/>MaxItems:  The maximum number of distribution IDs that you want in the response.<br/>Marker:  Use this field when paginating results to indicate where to begin in your list of distribution IDs. The response includes distribution IDs in the list that occur after the marker. To get the next page of the list, set this field’s value to the value of <code>NextMarker</code> from the current page’s response.<br/>
        :return: DistributionIdList:  A list of distribution IDs.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Items</i> Contains the distribution IDs in the list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Quantity</i> The total number of distribution IDs returned in the response.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsTruncated</i> A flag that indicates whether more distribution IDs remain to be listed. If your results were truncated, you can make a subsequent request using the <code>Marker</code> request field to retrieve more distribution IDs in the list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxItems</i> The maximum number of distribution IDs requested.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NextMarker</i> Contains the value that you should use in the <code>Marker</code> field of a subsequent request to continue listing distribution IDs where you left off.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Marker</i> The value provided in the <code>Marker</code> request field.<br/>        """
        pass

    def list_distributions_by_key_group(self, KeyGroupId: str, Marker: str=None, MaxItems: str=None) -> ListDistributionsByKeyGroupResult:
        r"""Gets a list of distribution IDs for distributions that have a cache behavior that references the specified key group. You can optionally specify the maximum number of items to receive in the response. If the total number of items in the list exceeds the maximum that you specify, or the default maximum, the response is paginated. To get the next page of items, send a subsequent request that specifies the <code>NextMarker</code> value from the current response as the <code>Marker</code> value in the subsequent request.

        :param self:
        :param KeyGroupId:  The ID of the key group whose associated distribution IDs you are listing.<br/>MaxItems:  The maximum number of distribution IDs that you want in the response.<br/>Marker:  Use this field when paginating results to indicate where to begin in your list of distribution IDs. The response includes distribution IDs in the list that occur after the marker. To get the next page of the list, set this field’s value to the value of <code>NextMarker</code> from the current page’s response.<br/>
        :return: DistributionIdList:  A list of distribution IDs.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Items</i> Contains the distribution IDs in the list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Quantity</i> The total number of distribution IDs returned in the response.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsTruncated</i> A flag that indicates whether more distribution IDs remain to be listed. If your results were truncated, you can make a subsequent request using the <code>Marker</code> request field to retrieve more distribution IDs in the list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxItems</i> The maximum number of distribution IDs requested.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NextMarker</i> Contains the value that you should use in the <code>Marker</code> field of a subsequent request to continue listing distribution IDs where you left off.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Marker</i> The value provided in the <code>Marker</code> request field.<br/>        """
        pass

    def list_distributions_by_origin_request_policy_id(self, OriginRequestPolicyId: str, Marker: str=None, MaxItems: str=None) -> ListDistributionsByOriginRequestPolicyIdResult:
        r"""Gets a list of distribution IDs for distributions that have a cache behavior that’s associated with the specified origin request policy. You can optionally specify the maximum number of items to receive in the response. If the total number of items in the list exceeds the maximum that you specify, or the default maximum, the response is paginated. To get the next page of items, send a subsequent request that specifies the <code>NextMarker</code> value from the current response as the <code>Marker</code> value in the subsequent request.

        :param self:
        :param OriginRequestPolicyId:  The ID of the origin request policy whose associated distribution IDs you want to list.<br/>MaxItems:  The maximum number of distribution IDs that you want in the response.<br/>Marker:  Use this field when paginating results to indicate where to begin in your list of distribution IDs. The response includes distribution IDs in the list that occur after the marker. To get the next page of the list, set this field’s value to the value of <code>NextMarker</code> from the current page’s response.<br/>
        :return: DistributionIdList:  A list of distribution IDs.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Items</i> Contains the distribution IDs in the list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Quantity</i> The total number of distribution IDs returned in the response.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsTruncated</i> A flag that indicates whether more distribution IDs remain to be listed. If your results were truncated, you can make a subsequent request using the <code>Marker</code> request field to retrieve more distribution IDs in the list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxItems</i> The maximum number of distribution IDs requested.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NextMarker</i> Contains the value that you should use in the <code>Marker</code> field of a subsequent request to continue listing distribution IDs where you left off.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Marker</i> The value provided in the <code>Marker</code> request field.<br/>        """
        pass

    def list_distributions_by_realtime_log_config(self, Marker: str=None, MaxItems: str=None, RealtimeLogConfigName: str=None, RealtimeLogConfigArn: str=None) -> ListDistributionsByRealtimeLogConfigResult:
        r"""Gets a list of distributions that have a cache behavior that’s associated with the specified real-time log configuration. You can specify the real-time log configuration by its name or its Amazon Resource Name (ARN). You must provide at least one. If you provide both, CloudFront uses the name to identify the real-time log configuration to list distributions for. You can optionally specify the maximum number of items to receive in the response. If the total number of items in the list exceeds the maximum that you specify, or the default maximum, the response is paginated. To get the next page of items, send a subsequent request that specifies the <code>NextMarker</code> value from the current response as the <code>Marker</code> value in the subsequent request. 

        :param self:
        :param RealtimeLogConfigArn:  The Amazon Resource Name (ARN) of the real-time log configuration whose associated distributions you want to list.<br/>RealtimeLogConfigName:  The name of the real-time log configuration whose associated distributions you want to list.<br/>MaxItems:  The maximum number of distributions that you want in the response.<br/>Marker:  Use this field when paginating results to indicate where to begin in your list of distributions. The response includes distributions in the list that occur after the marker. To get the next page of the list, set this field’s value to the value of <code>NextMarker</code> from the current page’s response.<br/>
        :return: DistributionList:  A distribution list.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Items</i> A complex type that contains one <code>DistributionSummary</code> element for each distribution that was created by the current account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Quantity</i> The number of distributions that were created by the current account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsTruncated</i> A flag that indicates whether more distributions remain to be listed. If your results were truncated, you can make a follow-up pagination request using the <code>Marker</code> request parameter to retrieve more distributions in the list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxItems</i> The value you provided for the <code>MaxItems</code> request parameter.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NextMarker</i> If <code>IsTruncated</code> is <code>true</code>, this element is present and contains the value you can use for the <code>Marker</code> request parameter to continue listing your distributions where they left off. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Marker</i> The value you provided for the <code>Marker</code> request parameter.<br/>        """
        pass

    def list_distributions_by_web_acl_id(self, WebACLId: str, Marker: str=None, MaxItems: str=None) -> ListDistributionsByWebACLIdResult:
        r"""List the distributions that are associated with a specified WAF web ACL.

        :param self:
        :param WebACLId:  The ID of the WAF web ACL that you want to list the associated distributions. If you specify "null" for the ID, the request returns a list of the distributions that aren't associated with a web ACL.<br/>MaxItems:  The maximum number of distributions that you want CloudFront to return in the response body. The maximum and default values are both 100.<br/>Marker:  Use <code>Marker</code> and <code>MaxItems</code> to control pagination of results. If you have more than <code>MaxItems</code> distributions that satisfy the request, the response includes a <code>NextMarker</code> element. To get the next page of results, submit another request. For the value of <code>Marker</code>, specify the value of <code>NextMarker</code> from the last response. (For the first request, omit <code>Marker</code>.) <br/>
        :return: DistributionList:  The <code>DistributionList</code> type. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Items</i> A complex type that contains one <code>DistributionSummary</code> element for each distribution that was created by the current account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Quantity</i> The number of distributions that were created by the current account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsTruncated</i> A flag that indicates whether more distributions remain to be listed. If your results were truncated, you can make a follow-up pagination request using the <code>Marker</code> request parameter to retrieve more distributions in the list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxItems</i> The value you provided for the <code>MaxItems</code> request parameter.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NextMarker</i> If <code>IsTruncated</code> is <code>true</code>, this element is present and contains the value you can use for the <code>Marker</code> request parameter to continue listing your distributions where they left off. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Marker</i> The value you provided for the <code>Marker</code> request parameter.<br/>        """
        pass

    def list_field_level_encryption_configs(self, Marker: str=None, MaxItems: str=None) -> ListFieldLevelEncryptionConfigsResult:
        r"""List all field-level encryption configurations that have been created in CloudFront for this account.

        :param self:
        :param MaxItems:  The maximum number of field-level encryption configurations you want in the response body. <br/>Marker:  Use this when paginating results to indicate where to begin in your list of configurations. The results include configurations in the list that occur after the marker. To get the next page of results, set the <code>Marker</code> to the value of the <code>NextMarker</code> from the current page's response (which is also the ID of the last configuration on that page). <br/>
        :return: FieldLevelEncryptionList:  Returns a list of all field-level encryption configurations that have been created in CloudFront for this account.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Items</i> An array of field-level encryption items.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Quantity</i> The number of field-level encryption items.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxItems</i> The maximum number of elements you want in the response body. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NextMarker</i> If there are more elements to be listed, this element is present and contains the value that you can use for the <code>Marker</code> request parameter to continue listing your configurations where you left off.<br/>        """
        pass

    def list_field_level_encryption_profiles(self, Marker: str=None, MaxItems: str=None) -> ListFieldLevelEncryptionProfilesResult:
        r"""Request a list of field-level encryption profiles that have been created in CloudFront for this account.

        :param self:
        :param MaxItems:  The maximum number of field-level encryption profiles you want in the response body. <br/>Marker:  Use this when paginating results to indicate where to begin in your list of profiles. The results include profiles in the list that occur after the marker. To get the next page of results, set the <code>Marker</code> to the value of the <code>NextMarker</code> from the current page's response (which is also the ID of the last profile on that page). <br/>
        :return: FieldLevelEncryptionProfileList:  Returns a list of the field-level encryption profiles that have been created in CloudFront for this account.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Items</i> The field-level encryption profile items.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Quantity</i> The number of field-level encryption profiles.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxItems</i> The maximum number of field-level encryption profiles you want in the response body. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NextMarker</i> If there are more elements to be listed, this element is present and contains the value that you can use for the <code>Marker</code> request parameter to continue listing your profiles where you left off.<br/>        """
        pass

    def list_functions(self, Marker: str=None, MaxItems: str=None, Stage: str=None) -> ListFunctionsResult:
        r"""Gets a list of all CloudFront functions in your account. You can optionally apply a filter to return only the functions that are in the specified stage, either <code>DEVELOPMENT</code> or <code>LIVE</code>. You can optionally specify the maximum number of items to receive in the response. If the total number of items in the list exceeds the maximum that you specify, or the default maximum, the response is paginated. To get the next page of items, send a subsequent request that specifies the <code>NextMarker</code> value from the current response as the <code>Marker</code> value in the subsequent request.

        :param self:
        :param Stage:  An optional filter to return only the functions that are in the specified stage, either <code>DEVELOPMENT</code> or <code>LIVE</code>.<br/>MaxItems:  The maximum number of functions that you want in the response.<br/>Marker:  Use this field when paginating results to indicate where to begin in your list of functions. The response includes functions in the list that occur after the marker. To get the next page of the list, set this field’s value to the value of <code>NextMarker</code> from the current page’s response.<br/>
        :return: FunctionList:  A list of CloudFront functions.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Items</i> Contains the functions in the list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Quantity</i> The number of functions returned in the response.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxItems</i> The maximum number of functions requested.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NextMarker</i> If there are more items in the list than are in this response, this element is present. It contains the value that you should use in the <code>Marker</code> field of a subsequent request to continue listing functions where you left off.<br/>        """
        pass

    def list_invalidations(self, DistributionId: str, Marker: str=None, MaxItems: str=None) -> ListInvalidationsResult:
        r"""Lists invalidation batches. 

        :param self:
        :param MaxItems:  The maximum number of invalidation batches that you want in the response body.<br/>Marker:  Use this parameter when paginating results to indicate where to begin in your list of invalidation batches. Because the results are returned in decreasing order from most recent to oldest, the most recent results are on the first page, the second page will contain earlier results, and so on. To get the next page of results, set <code>Marker</code> to the value of the <code>NextMarker</code> from the current page's response. This value is the same as the ID of the last invalidation batch on that page. <br/>DistributionId:  The distribution's ID.<br/>
        :return: InvalidationList:  Information about invalidation batches. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Items</i> A complex type that contains one <code>InvalidationSummary</code> element for each invalidation batch created by the current account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Quantity</i> The number of invalidation batches that were created by the current account. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsTruncated</i> A flag that indicates whether more invalidation batch requests remain to be listed. If your results were truncated, you can make a follow-up pagination request using the <code>Marker</code> request parameter to retrieve more invalidation batches in the list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxItems</i> The value that you provided for the <code>MaxItems</code> request parameter.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NextMarker</i> If <code>IsTruncated</code> is <code>true</code>, this element is present and contains the value that you can use for the <code>Marker</code> request parameter to continue listing your invalidation batches where they left off.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Marker</i> The value that you provided for the <code>Marker</code> request parameter.<br/>        """
        pass

    def list_key_groups(self, Marker: str=None, MaxItems: str=None) -> ListKeyGroupsResult:
        r"""Gets a list of key groups. You can optionally specify the maximum number of items to receive in the response. If the total number of items in the list exceeds the maximum that you specify, or the default maximum, the response is paginated. To get the next page of items, send a subsequent request that specifies the <code>NextMarker</code> value from the current response as the <code>Marker</code> value in the subsequent request.

        :param self:
        :param MaxItems:  The maximum number of key groups that you want in the response.<br/>Marker:  Use this field when paginating results to indicate where to begin in your list of key groups. The response includes key groups in the list that occur after the marker. To get the next page of the list, set this field’s value to the value of <code>NextMarker</code> from the current page’s response.<br/>
        :return: KeyGroupList:  A list of key groups.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Items</i> A list of key groups.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Quantity</i> The number of key groups returned in the response.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxItems</i> The maximum number of key groups requested.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NextMarker</i> If there are more items in the list than are in this response, this element is present. It contains the value that you should use in the <code>Marker</code> field of a subsequent request to continue listing key groups.<br/>        """
        pass

    def list_origin_request_policies(self, Type: str=None, Marker: str=None, MaxItems: str=None) -> ListOriginRequestPoliciesResult:
        r"""Gets a list of origin request policies. You can optionally apply a filter to return only the managed policies created by Amazon Web Services, or only the custom policies created in your account. You can optionally specify the maximum number of items to receive in the response. If the total number of items in the list exceeds the maximum that you specify, or the default maximum, the response is paginated. To get the next page of items, send a subsequent request that specifies the <code>NextMarker</code> value from the current response as the <code>Marker</code> value in the subsequent request.

        :param self:
        :param MaxItems:  The maximum number of origin request policies that you want in the response.<br/>Marker:  Use this field when paginating results to indicate where to begin in your list of origin request policies. The response includes origin request policies in the list that occur after the marker. To get the next page of the list, set this field’s value to the value of <code>NextMarker</code> from the current page’s response.<br/>Type:  A filter to return only the specified kinds of origin request policies. Valid values are: <ul> <li>  <code>managed</code> – Returns only the managed policies created by Amazon Web Services. </li> <li>  <code>custom</code> – Returns only the custom policies created in your account. </li> </ul><br/>
        :return: OriginRequestPolicyList:  A list of origin request policies.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Items</i> Contains the origin request policies in the list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Quantity</i> The total number of origin request policies returned in the response.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxItems</i> The maximum number of origin request policies requested.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NextMarker</i> If there are more items in the list than are in this response, this element is present. It contains the value that you should use in the <code>Marker</code> field of a subsequent request to continue listing origin request policies where you left off.<br/>        """
        pass

    def list_public_keys(self, Marker: str=None, MaxItems: str=None) -> ListPublicKeysResult:
        r"""List all public keys that have been added to CloudFront for this account.

        :param self:
        :param MaxItems:  The maximum number of public keys you want in the response body. <br/>Marker:  Use this when paginating results to indicate where to begin in your list of public keys. The results include public keys in the list that occur after the marker. To get the next page of results, set the <code>Marker</code> to the value of the <code>NextMarker</code> from the current page's response (which is also the ID of the last public key on that page). <br/>
        :return: PublicKeyList:  Returns a list of all public keys that have been added to CloudFront for this account.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Items</i> A list of public keys.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Quantity</i> The number of public keys in the list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxItems</i> The maximum number of public keys you want in the response.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NextMarker</i> If there are more elements to be listed, this element is present and contains the value that you can use for the <code>Marker</code> request parameter to continue listing your public keys where you left off.<br/>        """
        pass

    def list_realtime_log_configs(self, MaxItems: str=None, Marker: str=None) -> ListRealtimeLogConfigsResult:
        r"""Gets a list of real-time log configurations. You can optionally specify the maximum number of items to receive in the response. If the total number of items in the list exceeds the maximum that you specify, or the default maximum, the response is paginated. To get the next page of items, send a subsequent request that specifies the <code>NextMarker</code> value from the current response as the <code>Marker</code> value in the subsequent request. 

        :param self:
        :param Marker:  Use this field when paginating results to indicate where to begin in your list of real-time log configurations. The response includes real-time log configurations in the list that occur after the marker. To get the next page of the list, set this field’s value to the value of <code>NextMarker</code> from the current page’s response.<br/>MaxItems:  The maximum number of real-time log configurations that you want in the response.<br/>
        :return: RealtimeLogConfigs:  A list of real-time log configurations.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NextMarker</i> If there are more items in the list than are in this response, this element is present. It contains the value that you should use in the <code>Marker</code> field of a subsequent request to continue listing real-time log configurations where you left off. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Marker</i> This parameter indicates where this list of real-time log configurations begins. This list includes real-time log configurations that occur after the marker.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsTruncated</i> A flag that indicates whether there are more real-time log configurations than are contained in this list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Items</i> Contains the list of real-time log configurations.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxItems</i> The maximum number of real-time log configurations requested.<br/>        """
        pass

    def list_streaming_distributions(self, Marker: str=None, MaxItems: str=None) -> ListStreamingDistributionsResult:
        r"""List streaming distributions. 

        :param self:
        :param MaxItems:  The value that you provided for the <code>MaxItems</code> request parameter.<br/>Marker:  The value that you provided for the <code>Marker</code> request parameter.<br/>
        :return: StreamingDistributionList:  The <code>StreamingDistributionList</code> type. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Items</i> A complex type that contains one <code>StreamingDistributionSummary</code> element for each distribution that was created by the current account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Quantity</i> The number of streaming distributions that were created by the current account. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsTruncated</i> A flag that indicates whether more streaming distributions remain to be listed. If your results were truncated, you can make a follow-up pagination request using the <code>Marker</code> request parameter to retrieve more distributions in the list. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxItems</i> The value you provided for the <code>MaxItems</code> request parameter. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NextMarker</i> If <code>IsTruncated</code> is <code>true</code>, this element is present and contains the value you can use for the <code>Marker</code> request parameter to continue listing your RTMP distributions where they left off. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Marker</i> The value you provided for the <code>Marker</code> request parameter. <br/>        """
        pass

    def list_tags_for_resource(self, Resource: str) -> ListTagsForResourceResult:
        r"""List tags for a CloudFront resource.

        :param self:
        :param Resource:   An ARN of a CloudFront resource.<br/>
        :return: Tags:   A complex type that contains zero or more <code>Tag</code> elements.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Items</i>  A complex type that contains <code>Tag</code> elements.<br/>        """
        pass

    def publish_function(self, IfMatch: str, Name: str) -> PublishFunctionResult:
        r"""Publishes a CloudFront function by copying the function code from the <code>DEVELOPMENT</code> stage to <code>LIVE</code>. This automatically updates all cache behaviors that are using this function to use the newly published copy in the <code>LIVE</code> stage. When a function is published to the <code>LIVE</code> stage, you can attach the function to a distribution’s cache behavior, using the function’s Amazon Resource Name (ARN). To publish a function, you must provide the function’s name and version (<code>ETag</code> value). To get these values, you can use <code>ListFunctions</code> and <code>DescribeFunction</code>.

        :param self:
        :param IfMatch:  The current version (<code>ETag</code> value) of the function that you are publishing, which you can get using <code>DescribeFunction</code>.<br/>Name:  The name of the function that you are publishing.<br/>
        :return: FunctionSummary:  Contains configuration information and metadata about a CloudFront function.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FunctionMetadata</i> Contains metadata about a CloudFront function.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>FunctionMetadata</b>: Contains metadata about a CloudFront function.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FunctionConfig</i> Contains configuration information about a CloudFront function.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>FunctionConfig</b>: Contains configuration information about a CloudFront function.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the CloudFront function.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the CloudFront function.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Runtime</i> The function’s runtime environment. The only valid value is <code>cloudfront-js-1.0</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Comment</i> A comment to describe the function.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedTime</i> The date and time when the function was most recently updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTime</i> The date and time when the function was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Stage</i> The stage that the function is in, either <code>DEVELOPMENT</code> or <code>LIVE</code>. When a function is in the <code>DEVELOPMENT</code> stage, you can test the function with <code>TestFunction</code>, and update it with <code>UpdateFunction</code>. When a function is in the <code>LIVE</code> stage, you can attach the function to a distribution’s cache behavior, using the function’s ARN.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FunctionARN</i> The Amazon Resource Name (ARN) of the function. The ARN uniquely identifies the function.<br/>        """
        pass

    def tag_resource(self, Tags: Tags, Resource: str):
        r"""Add tags to a CloudFront resource.

        :param self:
        :param Tags:   A complex type that contains zero or more <code>Tag</code> elements.:<br/>Resource:   An ARN of a CloudFront resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Items</i>  A complex type that contains <code>Tag</code> elements.<br/>
        :return:         """
        pass

    def test_function(self, EventObject: FunctionEventObject, IfMatch: str, Name: str, Stage: str=None) -> TestFunctionResult:
        r"""Tests a CloudFront function. To test a function, you provide an <i>event object</i> that represents an HTTP request or response that your CloudFront distribution could receive in production. CloudFront runs the function, passing it the event object that you provided, and returns the function’s result (the modified event object) in the response. The response also contains function logs and error messages, if any exist. For more information about testing functions, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/managing-functions.html#test-function">Testing functions</a> in the <i>Amazon CloudFront Developer Guide</i>. To test a function, you provide the function’s name and version (<code>ETag</code> value) along with the event object. To get the function’s name and version, you can use <code>ListFunctions</code> and <code>DescribeFunction</code>.

        :param self:
        :param EventObject:  The event object to test the function with. For more information about the structure of the event object, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/managing-functions.html#test-function">Testing functions</a> in the <i>Amazon CloudFront Developer Guide</i>.<br/>Stage:  The stage of the function that you are testing, either <code>DEVELOPMENT</code> or <code>LIVE</code>.<br/>IfMatch:  The current version (<code>ETag</code> value) of the function that you are testing, which you can get using <code>DescribeFunction</code>.<br/>Name:  The name of the function that you are testing.<br/>
        :return: TestResult:  An object that represents the result of running the function with the provided event object.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FunctionOutput</i> The event object returned by the function. For more information about the structure of the event object, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/functions-event-structure.html">Event object structure</a> in the <i>Amazon CloudFront Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FunctionErrorMessage</i> If the result of testing the function was an error, this field contains the error message.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FunctionExecutionLogs</i> Contains the log lines that the function wrote (if any) when running the test.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ComputeUtilization</i> The amount of time that the function took to run as a percentage of the maximum allowed time. For example, a compute utilization of 35 means that the function completed in 35% of the maximum allowed time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FunctionSummary</i> Contains configuration information and metadata about the CloudFront function that was tested.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>FunctionSummary</b>: Contains configuration information and metadata about the CloudFront function that was tested.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the CloudFront function.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the CloudFront function.<br/>Contains configuration information about a CloudFront function.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>FunctionConfig</b>: Contains configuration information about a CloudFront function.        """
        pass

    def untag_resource(self, TagKeys: TagKeys, Resource: str):
        r"""Remove tags from a CloudFront resource.

        :param self:
        :param TagKeys:   A complex type that contains zero or more <code>Tag</code> key elements.:<br/>Resource:   An ARN of a CloudFront resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Items</i>  A complex type that contains <code>Tag</code> key elements.<br/>
        :return:         """
        pass

    def update_cache_policy(self, Id: str, CachePolicyConfig: CachePolicyConfig, IfMatch: str=None) -> UpdateCachePolicyResult:
        r"""Updates a cache policy configuration. When you update a cache policy configuration, all the fields are updated with the values provided in the request. You cannot update some fields independent of others. To update a cache policy configuration: <ol> <li> Use <code>GetCachePolicyConfig</code> to get the current configuration. </li> <li> Locally modify the fields in the cache policy configuration that you want to update. </li> <li> Call <code>UpdateCachePolicy</code> by providing the entire cache policy configuration, including the fields that you modified and those that you didn’t. </li> </ol>

        :param self:
        :param IfMatch:  The version of the cache policy that you are updating. The version is returned in the cache policy’s <code>ETag</code> field in the response to <code>GetCachePolicyConfig</code>.<br/>Id:  The unique identifier for the cache policy that you are updating. The identifier is returned in a cache behavior’s <code>CachePolicyId</code> field in the response to <code>GetDistributionConfig</code>.<br/>CachePolicyConfig:  A cache policy configuration.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ParametersInCacheKeyAndForwardedToOrigin</i> The HTTP headers, cookies, and URL query strings to include in the cache key. The values included in the cache key are automatically included in requests that CloudFront sends to the origin.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ParametersInCacheKeyAndForwardedToOrigin</b>: The HTTP headers, cookies, and URL query strings to include in the cache key. The values included in the cache key are automatically included in requests that CloudFront sends to the origin.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MinTTL</i> The minimum amount of time, in seconds, that you want objects to stay in the CloudFront cache before CloudFront sends another request to the origin to see if the object has been updated. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html">Managing How Long Content Stays in an Edge Cache (Expiration)</a> in the <i>Amazon CloudFront Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxTTL</i> The maximum amount of time, in seconds, that objects stay in the CloudFront cache before CloudFront sends another request to the origin to see if the object has been updated. CloudFront uses this value only when the origin sends <code>Cache-Control</code> or <code>Expires</code> headers with the object. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html">Managing How Long Content Stays in an Edge Cache (Expiration)</a> in the <i>Amazon CloudFront Developer Guide</i>. The default value for this field is 31536000 seconds (one year). If the value of <code>MinTTL</code> or <code>DefaultTTL</code> is more than 31536000 seconds, then the default value for this field is the same as the value of <code>DefaultTTL</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultTTL</i> The default amount of time, in seconds, that you want objects to stay in the CloudFront cache before CloudFront sends another request to the origin to see if the object has been updated. CloudFront uses this value as the object’s time to live (TTL) only when the origin does <i>not</i> send <code>Cache-Control</code> or <code>Expires</code> headers with the object. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html">Managing How Long Content Stays in an Edge Cache (Expiration)</a> in the <i>Amazon CloudFront Developer Guide</i>. The default value for this field is 86400 seconds (one day). If the value of <code>MinTTL</code> is more than 86400 seconds, then the default value for this field is the same as the value of <code>MinTTL</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A unique name to identify the cache policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Comment</i> A comment to describe the cache policy. The comment cannot be longer than 128 characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableAcceptEncodingBrotli</i> A flag that can affect whether the <code>Accept-Encoding</code> HTTP header is included in the cache key and included in requests that CloudFront sends to the origin. This field is related to the <code>EnableAcceptEncodingGzip</code> field. If one or both of these fields is <code>true</code> <i>and</i> the viewer request includes the <code>Accept-Encoding</code> header, then CloudFront does the following: <ul> <li> Normalizes the value of the viewer’s <code>Accept-Encoding</code> header </li> <li> Includes the normalized header in the cache key </li> <li> Includes the normalized header in the request to the origin, if a request is necessary </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-policy-compressed-objects">Compression support</a> in the <i>Amazon CloudFront Developer Guide</i>. If you set this value to <code>true</code>, and this cache behavior also has an origin request policy attached, do not include the <code>Accept-Encoding</code> header in the origin request policy. CloudFront always includes the <code>Accept-Encoding</code> header in origin requests when the value of this field is <code>true</code>, so including this header in an origin request policy has no effect. If both of these fields are <code>false</code>, then CloudFront treats the <code>Accept-Encoding</code> header the same as any other HTTP header in the viewer request. By default, it’s not included in the cache key and it’s not included in origin requests. In this case, you can manually add <code>Accept-Encoding</code> to the headers whitelist like any other HTTP header.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableAcceptEncodingGzip</i> A flag that can affect whether the <code>Accept-Encoding</code> HTTP header is included in the cache key and included in requests that CloudFront sends to the origin. This field is related to the <code>EnableAcceptEncodingBrotli</code> field. If one or both of these fields is <code>true</code> <i>and</i> the viewer request includes the <code>Accept-Encoding</code> header, then CloudFront does the following: <ul> <li> Normalizes the value of the viewer’s <code>Accept-Encoding</code> header </li> <li> Includes the normalized header in the cache key </li> <li> Includes the normalized header in the request to the origin, if a request is necessary </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-policy-compressed-objects">Compression support</a> in the <i>Amazon CloudFront Developer Guide</i>. If you set this value to <code>true</code>, and this cache behavior also has an origin request policy attached, do not include the <code>Accept-Encoding</code> header in the origin request policy. CloudFront always includes the <code>Accept-Encoding</code> header in origin requests when the value of this field is <code>true</code>, so including this header in an origin request policy has no effect. If both of these fields are <code>false</code>, then CloudFront treats the <code>Accept-Encoding</code> header the same as any other HTTP header in the viewer request. By default, it’s not included in the cache key and it’s not included in origin requests. In this case, you can manually add <code>Accept-Encoding</code> to the headers whitelist like any other HTTP header.<br/>An object that determines whether any HTTP headers (and if so, which headers) are included in the cache key and automatically included in requests that CloudFront sends to the origin.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>HeadersConfig</b>: An object that determines whether any HTTP headers (and if so, which headers) are included in the cache key and automatically included in requests that CloudFront sends to the origin.
        :return: ETag:  The current version of the cache policy.<br/>CachePolicy:  A cache policy.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CachePolicyConfig</i> The cache policy configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CachePolicyConfig</b>: The cache policy configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedTime</i> The date and time when the cache policy was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The unique identifier for the cache policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MinTTL</i> The minimum amount of time, in seconds, that you want objects to stay in the CloudFront cache before CloudFront sends another request to the origin to see if the object has been updated. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html">Managing How Long Content Stays in an Edge Cache (Expiration)</a> in the <i>Amazon CloudFront Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxTTL</i> The maximum amount of time, in seconds, that objects stay in the CloudFront cache before CloudFront sends another request to the origin to see if the object has been updated. CloudFront uses this value only when the origin sends <code>Cache-Control</code> or <code>Expires</code> headers with the object. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html">Managing How Long Content Stays in an Edge Cache (Expiration)</a> in the <i>Amazon CloudFront Developer Guide</i>. The default value for this field is 31536000 seconds (one year). If the value of <code>MinTTL</code> or <code>DefaultTTL</code> is more than 31536000 seconds, then the default value for this field is the same as the value of <code>DefaultTTL</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultTTL</i> The default amount of time, in seconds, that you want objects to stay in the CloudFront cache before CloudFront sends another request to the origin to see if the object has been updated. CloudFront uses this value as the object’s time to live (TTL) only when the origin does <i>not</i> send <code>Cache-Control</code> or <code>Expires</code> headers with the object. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html">Managing How Long Content Stays in an Edge Cache (Expiration)</a> in the <i>Amazon CloudFront Developer Guide</i>. The default value for this field is 86400 seconds (one day). If the value of <code>MinTTL</code> is more than 86400 seconds, then the default value for this field is the same as the value of <code>MinTTL</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A unique name to identify the cache policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Comment</i> A comment to describe the cache policy. The comment cannot be longer than 128 characters.<br/>The HTTP headers, cookies, and URL query strings to include in the cache key. The values included in the cache key are automatically included in requests that CloudFront sends to the origin.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ParametersInCacheKeyAndForwardedToOrigin</b>: The HTTP headers, cookies, and URL query strings to include in the cache key. The values included in the cache key are automatically included in requests that CloudFront sends to the origin.        """
        pass

    def update_cloud_front_origin_access_identity(self, Id: str, CloudFrontOriginAccessIdentityConfig: CloudFrontOriginAccessIdentityConfig, IfMatch: str=None) -> UpdateCloudFrontOriginAccessIdentityResult:
        r"""Update an origin access identity. 

        :param self:
        :param IfMatch:  The value of the <code>ETag</code> header that you received when retrieving the identity's configuration. For example: <code>E2QWRUHAPOMQZL</code>.<br/>Id:  The identity's id.<br/>CloudFrontOriginAccessIdentityConfig:  The identity's configuration information.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Comment</i> A comment to describe the origin access identity. The comment cannot be longer than 128 characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CallerReference</i> A unique value (for example, a date-time stamp) that ensures that the request can't be replayed. If the value of <code>CallerReference</code> is new (regardless of the content of the <code>CloudFrontOriginAccessIdentityConfig</code> object), a new origin access identity is created. If the <code>CallerReference</code> is a value already sent in a previous identity request, and the content of the <code>CloudFrontOriginAccessIdentityConfig</code> is identical to the original request (ignoring white space), the response includes the same information returned to the original request.  If the <code>CallerReference</code> is a value you already sent in a previous request to create an identity, but the content of the <code>CloudFrontOriginAccessIdentityConfig</code> is different from the original request, CloudFront returns a <code>CloudFrontOriginAccessIdentityAlreadyExists</code> error. <br/>
        :return: ETag:  The current version of the configuration. For example: <code>E2QWRUHAPOMQZL</code>.<br/>CloudFrontOriginAccessIdentity:  The origin access identity's information.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudFrontOriginAccessIdentityConfig</i> The current configuration information for the identity. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CloudFrontOriginAccessIdentityConfig</b>: The current configuration information for the identity. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3CanonicalUserId</i> The Amazon S3 canonical user ID for the origin access identity, used when giving the origin access identity read permission to an object in Amazon S3. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID for the origin access identity, for example, <code>E74FTE3AJFJ256A</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Comment</i> A comment to describe the origin access identity. The comment cannot be longer than 128 characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CallerReference</i> A unique value (for example, a date-time stamp) that ensures that the request can't be replayed. If the value of <code>CallerReference</code> is new (regardless of the content of the <code>CloudFrontOriginAccessIdentityConfig</code> object), a new origin access identity is created. If the <code>CallerReference</code> is a value already sent in a previous identity request, and the content of the <code>CloudFrontOriginAccessIdentityConfig</code> is identical to the original request (ignoring white space), the response includes the same information returned to the original request.  If the <code>CallerReference</code> is a value you already sent in a previous request to create an identity, but the content of the <code>CloudFrontOriginAccessIdentityConfig</code> is different from the original request, CloudFront returns a <code>CloudFrontOriginAccessIdentityAlreadyExists</code> error. <br/>        """
        pass

    def update_distribution(self, Id: str, DistributionConfig: DistributionConfig, IfMatch: str=None) -> UpdateDistributionResult:
        r"""Updates the configuration for a web distribution.  <important> When you update a distribution, there are more required fields than when you create a distribution. When you update your distribution by using this API action, follow the steps here to get the current configuration and then make your updates, to make sure that you include all of the required fields. To view a summary, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-overview-required-fields.html">Required Fields for Create Distribution and Update Distribution</a> in the <i>Amazon CloudFront Developer Guide</i>. </important> The update process includes getting the current distribution configuration, updating the XML document that is returned to make your changes, and then submitting an <code>UpdateDistribution</code> request to make the updates. For information about updating a distribution using the CloudFront console instead, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-creating-console.html">Creating a Distribution</a> in the <i>Amazon CloudFront Developer Guide</i>.  <b>To update a web distribution using the CloudFront API</b>  <ol> <li> Submit a <a href="https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_GetDistributionConfig.html">GetDistributionConfig</a> request to get the current configuration and an <code>Etag</code> header for the distribution. <note> If you update the distribution again, you must get a new <code>Etag</code> header. </note> </li> <li> Update the XML document that was returned in the response to your <code>GetDistributionConfig</code> request to include your changes.  <important> When you edit the XML file, be aware of the following: <ul> <li> You must strip out the ETag parameter that is returned. </li> <li> Additional fields are required when you update a distribution. There may be fields included in the XML file for features that you haven't configured for your distribution. This is expected and required to successfully update the distribution. </li> <li> You can't change the value of <code>CallerReference</code>. If you try to change this value, CloudFront returns an <code>IllegalUpdate</code> error.  </li> <li> The new configuration replaces the existing configuration; the values that you specify in an <code>UpdateDistribution</code> request are not merged into your existing configuration. When you add, delete, or replace values in an element that allows multiple values (for example, <code>CNAME</code>), you must specify all of the values that you want to appear in the updated distribution. In addition, you must update the corresponding <code>Quantity</code> element. </li> </ul> </important> </li> <li> Submit an <code>UpdateDistribution</code> request to update the configuration for your distribution: <ul> <li> In the request body, include the XML document that you updated in Step 2. The request body must include an XML document with a <code>DistributionConfig</code> element. </li> <li> Set the value of the HTTP <code>If-Match</code> header to the value of the <code>ETag</code> header that CloudFront returned when you submitted the <code>GetDistributionConfig</code> request in Step 1. </li> </ul> </li> <li> Review the response to the <code>UpdateDistribution</code> request to confirm that the configuration was successfully updated. </li> <li> Optional: Submit a <a href="https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_GetDistribution.html">GetDistribution</a> request to confirm that your changes have propagated. When propagation is complete, the value of <code>Status</code> is <code>Deployed</code>. </li> </ol>

        :param self:
        :param IfMatch:  The value of the <code>ETag</code> header that you received when retrieving the distribution's configuration. For example: <code>E2QWRUHAPOMQZL</code>.<br/>Id:  The distribution's id.<br/>DistributionConfig:  The distribution's configuration information.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsIPV6Enabled</i> If you want CloudFront to respond to IPv6 DNS requests with an IPv6 address for your distribution, specify <code>true</code>. If you specify <code>false</code>, CloudFront responds to IPv6 DNS requests with the DNS response code <code>NOERROR</code> and with no IP addresses. This allows viewers to submit a second request, for an IPv4 address for your distribution.  In general, you should enable IPv6 if you have users on IPv6 networks who want to access your content. However, if you're using signed URLs or signed cookies to restrict access to your content, and if you're using a custom policy that includes the <code>IpAddress</code> parameter to restrict the IP addresses that can access your content, don't enable IPv6. If you want to restrict access to some content by IP address and not restrict access to other content (or restrict access but not by IP address), you can create two distributions. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-creating-signed-url-custom-policy.html">Creating a Signed URL Using a Custom Policy</a> in the <i>Amazon CloudFront Developer Guide</i>. If you're using an Route 53 Amazon Web Services Integration alias resource record set to route traffic to your CloudFront distribution, you need to create a second alias resource record set when both of the following are true: <ul> <li> You enable IPv6 for the distribution </li> <li> You're using alternate domain names in the URLs for your objects </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-to-cloudfront-distribution.html">Routing Traffic to an Amazon CloudFront Web Distribution by Using Your Domain Name</a> in the <i>Route 53 Amazon Web Services Integration Developer Guide</i>. If you created a CNAME resource record set, either with Route 53 Amazon Web Services Integration or with another DNS service, you don't need to make any changes. A CNAME record will route traffic to your distribution regardless of the IP address format of the viewer request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HttpVersion</i> (Optional) Specify the maximum HTTP version that you want viewers to use to communicate with CloudFront. The default value for new web distributions is http2. Viewers that don't support HTTP/2 automatically use an earlier HTTP version. For viewers and CloudFront to use HTTP/2, viewers must support TLS 1.2 or later, and must support Server Name Identification (SNI). In general, configuring CloudFront to communicate with viewers using HTTP/2 reduces latency. You can improve performance by optimizing for HTTP/2. For more information, do an Internet search for "http/2 optimization." <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WebACLId</i> A unique identifier that specifies the WAF web ACL, if any, to associate with this distribution. To specify a web ACL created using the latest version of WAF, use the ACL ARN, for example <code>arn:aws:wafv2:us-east-1:123456789012:global/webacl/ExampleWebACL/473e64fd-f30b-4765-81a0-62ad96dd167a</code>. To specify a web ACL created using WAF Classic, use the ACL ID, for example <code>473e64fd-f30b-4765-81a0-62ad96dd167a</code>. WAF is a web application firewall that lets you monitor the HTTP and HTTPS requests that are forwarded to CloudFront, and lets you control access to your content. Based on conditions that you specify, such as the IP addresses that requests originate from or the values of query strings, CloudFront responds to requests either with the requested content or with an HTTP 403 status code (Forbidden). You can also configure CloudFront to return a custom error page when a request is blocked. For more information about WAF, see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/what-is-aws-waf.html">WAF Developer Guide</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Restrictions</i> A complex type that identifies ways in which you want to restrict distribution of your content.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Restrictions</b>: A complex type that identifies ways in which you want to restrict distribution of your content.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ViewerCertificate</i> A complex type that determines the distribution’s SSL/TLS configuration for communicating with viewers.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ViewerCertificate</b>: A complex type that determines the distribution’s SSL/TLS configuration for communicating with viewers.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> From this field, you can enable or disable the selected distribution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PriceClass</i> The price class that corresponds with the maximum price that you want to pay for CloudFront service. If you specify <code>PriceClass_All</code>, CloudFront responds to requests for your objects from all CloudFront edge locations. If you specify a price class other than <code>PriceClass_All</code>, CloudFront serves your objects from the CloudFront edge location that has the lowest latency among the edge locations in your price class. Viewers who are in or near regions that are excluded from your specified price class may encounter slower performance. For more information about price classes, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PriceClass.html">Choosing the Price Class for a CloudFront Distribution</a> in the <i>Amazon CloudFront Developer Guide</i>. For information about CloudFront pricing, including how price classes (such as Price Class 100) map to CloudFront regions, see <a href="http://aws.amazon.com/cloudfront/pricing/">Amazon CloudFront Pricing</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Logging</i> A complex type that controls whether access logs are written for the distribution. For more information about logging, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/AccessLogs.html">Access Logs</a> in the <i>Amazon CloudFront Developer Guide</i>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Logging</b>: A complex type that controls whether access logs are written for the distribution. For more information about logging, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/AccessLogs.html">Access Logs</a> in the <i>Amazon CloudFront Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Comment</i> An optional comment to describe the distribution. The comment cannot be longer than 128 characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomErrorResponses</i> A complex type that controls the following: <ul> <li> Whether CloudFront replaces HTTP status codes in the 4xx and 5xx range with custom error messages before returning the response to the viewer. </li> <li> How long CloudFront caches HTTP status codes in the 4xx and 5xx range. </li> </ul> For more information about custom error pages, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/custom-error-pages.html">Customizing Error Responses</a> in the <i>Amazon CloudFront Developer Guide</i>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CustomErrorResponses</b>: A complex type that controls the following: <ul> <li> Whether CloudFront replaces HTTP status codes in the 4xx and 5xx range with custom error messages before returning the response to the viewer. </li> <li> How long CloudFront caches HTTP status codes in the 4xx and 5xx range. </li> </ul> For more information about custom error pages, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/custom-error-pages.html">Customizing Error Responses</a> in the <i>Amazon CloudFront Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheBehaviors</i> A complex type that contains zero or more <code>CacheBehavior</code> elements. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CacheBehaviors</b>: A complex type that contains zero or more <code>CacheBehavior</code> elements. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultCacheBehavior</i> A complex type that describes the default cache behavior if you don't specify a <code>CacheBehavior</code> element or if files don't match any of the values of <code>PathPattern</code> in <code>CacheBehavior</code> elements. You must create exactly one default cache behavior.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DefaultCacheBehavior</b>: A complex type that describes the default cache behavior if you don't specify a <code>CacheBehavior</code> element or if files don't match any of the values of <code>PathPattern</code> in <code>CacheBehavior</code> elements. You must create exactly one default cache behavior.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OriginGroups</i>  A complex type that contains information about origin groups for this distribution.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>OriginGroups</b>:  A complex type that contains information about origin groups for this distribution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Origins</i> A complex type that contains information about origins for this distribution. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Origins</b>: A complex type that contains information about origins for this distribution. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultRootObject</i> The object that you want CloudFront to request from your origin (for example, <code>index.html</code>) when a viewer requests the root URL for your distribution (<code>http://www.example.com</code>) instead of an object in your distribution (<code>http://www.example.com/product-description.html</code>). Specifying a default root object avoids exposing the contents of your distribution. Specify only the object name, for example, <code>index.html</code>. Don't add a <code>/</code> before the object name. If you don't want to specify a default root object when you create a distribution, include an empty <code>DefaultRootObject</code> element. To delete the default root object from an existing distribution, update the distribution configuration and include an empty <code>DefaultRootObject</code> element. To replace the default root object, update the distribution configuration and specify the new object. For more information about the default root object, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/DefaultRootObject.html">Creating a Default Root Object</a> in the <i>Amazon CloudFront Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Aliases</i> A complex type that contains information about CNAMEs (alternate domain names), if any, for this distribution.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Aliases</b>: A complex type that contains information about CNAMEs (alternate domain names), if any, for this distribution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CallerReference</i> A unique value (for example, a date-time stamp) that ensures that the request can't be replayed. If the value of <code>CallerReference</code> is new (regardless of the content of the <code>DistributionConfig</code> object), CloudFront creates a new distribution. If <code>CallerReference</code> is a value that you already sent in a previous request to create a distribution, CloudFront returns a <code>DistributionAlreadyExists</code> error.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Items</i> A complex type that contains the CNAME aliases, if any, that you want to associate with this distribution.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Quantity</i> The number of CNAME aliases, if any, that you want to associate with this distribution.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Items</i> A list of origins.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Quantity</i> The number of origins for this distribution.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Items</i> The items (origin groups) in a distribution.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Quantity</i> The number of origin groups.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetOriginId</i> The value of <code>ID</code> for the origin that you want CloudFront to route requests to when they use the default cache behavior.<br/><important> We recommend using <code>TrustedKeyGroups</code> instead of <code>TrustedSigners</code>. </important> A list of account IDs whose public keys CloudFront can use to validate signed URLs or signed cookies. When a cache behavior contains trusted signers, CloudFront requires signed URLs or signed cookies for all requests that match the cache behavior. The URLs or cookies must be signed with the private key of a CloudFront key pair in a trusted signer’s account. The signed URL or cookie contains information about which public key CloudFront should use to verify the signature. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html">Serving private content</a> in the <i>Amazon CloudFront Developer Guide</i>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TrustedSigners</b>: <important> We recommend using <code>TrustedKeyGroups</code> instead of <code>TrustedSigners</code>. </important> A list of account IDs whose public keys CloudFront can use to validate signed URLs or signed cookies. When a cache behavior contains trusted signers, CloudFront requires signed URLs or signed cookies for all requests that match the cache behavior. The URLs or cookies must be signed with the private key of a CloudFront key pair in a trusted signer’s account. The signed URL or cookie contains information about which public key CloudFront should use to verify the signature. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html">Serving private content</a> in the <i>Amazon CloudFront Developer Guide</i>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Items</i> Optional: A complex type that contains cache behaviors for this distribution. If <code>Quantity</code> is <code>0</code>, you can omit <code>Items</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Quantity</i> The number of cache behaviors for this distribution. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Items</i> A complex type that contains a <code>CustomErrorResponse</code> element for each HTTP status code for which you want to specify a custom error page and/or a caching duration. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Quantity</i> The number of HTTP status codes for which you want to specify a custom error page and/or a caching duration. If <code>Quantity</code> is <code>0</code>, you can omit <code>Items</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Prefix</i> An optional string that you want CloudFront to prefix to the access log <code>filenames</code> for this distribution, for example, <code>myprefix/</code>. If you want to enable logging, but you don't want to specify a prefix, you still must include an empty <code>Prefix</code> element in the <code>Logging</code> element.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i> The Amazon S3 bucket to store the access logs in, for example, <code>myawslogbucket.s3.amazonaws.com</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeCookies</i> Specifies whether you want CloudFront to include cookies in access logs, specify <code>true</code> for <code>IncludeCookies</code>. If you choose to include cookies in logs, CloudFront logs all cookies regardless of how you configure the cache behaviors for this distribution. If you don't want to include cookies when you create a distribution or if you want to disable include cookies for an existing distribution, specify <code>false</code> for <code>IncludeCookies</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specifies whether you want CloudFront to save access logs to an Amazon S3 bucket. If you don't want to enable logging when you create a distribution or if you want to disable logging for an existing distribution, specify <code>false</code> for <code>Enabled</code>, and specify empty <code>Bucket</code> and <code>Prefix</code> elements. If you specify <code>false</code> for <code>Enabled</code> but you specify values for <code>Bucket</code>, <code>prefix</code>, and <code>IncludeCookies</code>, the values are automatically deleted.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CertificateSource</i> This field is deprecated. Use one of the following fields instead: <ul> <li>  <code>ACMCertificateArn</code>  </li> <li>  <code>IAMCertificateId</code>  </li> <li>  <code>CloudFrontDefaultCertificate</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Certificate</i> This field is deprecated. Use one of the following fields instead: <ul> <li>  <code>ACMCertificateArn</code>  </li> <li>  <code>IAMCertificateId</code>  </li> <li>  <code>CloudFrontDefaultCertificate</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MinimumProtocolVersion</i> If the distribution uses <code>Aliases</code> (alternate domain names or CNAMEs), specify the security policy that you want CloudFront to use for HTTPS connections with viewers. The security policy determines two settings: <ul> <li> The minimum SSL/TLS protocol that CloudFront can use to communicate with viewers. </li> <li> The ciphers that CloudFront can use to encrypt the content that it returns to viewers. </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValues-security-policy">Security Policy</a> and <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/secure-connections-supported-viewer-protocols-ciphers.html#secure-connections-supported-ciphers">Supported Protocols and Ciphers Between Viewers and CloudFront</a> in the <i>Amazon CloudFront Developer Guide</i>. <note> On the CloudFront console, this setting is called <b>Security Policy</b>. </note> When you’re using SNI only (you set <code>SSLSupportMethod</code> to <code>sni-only</code>), you must specify <code>TLSv1</code> or higher. If the distribution uses the CloudFront domain name such as <code>d111111abcdef8.cloudfront.net</code> (you set <code>CloudFrontDefaultCertificate</code> to <code>true</code>), CloudFront automatically sets the security policy to <code>TLSv1</code> regardless of the value that you set here.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SSLSupportMethod</i> If the distribution uses <code>Aliases</code> (alternate domain names or CNAMEs), specify which viewers the distribution accepts HTTPS connections from. <ul> <li>  <code>sni-only</code> – The distribution accepts HTTPS connections from only viewers that support <a href="https://en.wikipedia.org/wiki/Server_Name_Indication">server name indication (SNI)</a>. This is recommended. Most browsers and clients support SNI. </li> <li>  <code>vip</code> – The distribution accepts HTTPS connections from all viewers including those that don’t support SNI. This is not recommended, and results in additional monthly charges from CloudFront. </li> <li>  <code>static-ip</code> - Do not specify this value unless your distribution has been enabled for this feature by the CloudFront team. If you have a use case that requires static IP addresses for a distribution, contact CloudFront through the <a href="https://console.aws.amazon.com/support/home">Amazon Web Services Support Center</a>. </li> </ul> If the distribution uses the CloudFront domain name such as <code>d111111abcdef8.cloudfront.net</code>, don’t set a value for this field.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ACMCertificateArn</i> If the distribution uses <code>Aliases</code> (alternate domain names or CNAMEs) and the SSL/TLS certificate is stored in <a href="https://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html">Certificate Manager (ACM)</a>, provide the Amazon Resource Name (ARN) of the ACM certificate. CloudFront only supports ACM certificates in the US East (N. Virginia) Region (<code>us-east-1</code>). If you specify an ACM certificate ARN, you must also specify values for <code>MinimumProtocolVersion</code> and <code>SSLSupportMethod</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IAMCertificateId</i> If the distribution uses <code>Aliases</code> (alternate domain names or CNAMEs) and the SSL/TLS certificate is stored in <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html">Identity and Access Management (IAM)</a>, provide the ID of the IAM certificate. If you specify an IAM certificate ID, you must also specify values for <code>MinimumProtocolVersion</code> and <code>SSLSupportMethod</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudFrontDefaultCertificate</i> If the distribution uses the CloudFront domain name such as <code>d111111abcdef8.cloudfront.net</code>, set this field to <code>true</code>. If the distribution uses <code>Aliases</code> (alternate domain names or CNAMEs), set this field to <code>false</code> and specify values for the following fields: <ul> <li>  <code>ACMCertificateArn</code> or <code>IAMCertificateId</code> (specify a value for one, not both) </li> <li>  <code>MinimumProtocolVersion</code>  </li> <li>  <code>SSLSupportMethod</code>  </li> </ul><br/>A complex type that controls the countries in which your content is distributed. CloudFront determines the location of your users using <code>MaxMind</code> GeoIP databases.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>GeoRestriction</b>: A complex type that controls the countries in which your content is distributed. CloudFront determines the location of your users using <code>MaxMind</code> GeoIP databases.
        :return: ETag:  The current version of the configuration. For example: <code>E2QWRUHAPOMQZL</code>.<br/>Distribution:  The distribution's information.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AliasICPRecordals</i> Amazon Web Services services in China customers must file for an Internet Content Provider (ICP) recordal if they want to serve content publicly on an alternate domain name, also known as a CNAME, that they've added to CloudFront. AliasICPRecordal provides the ICP recordal status for CNAMEs associated with distributions. For more information about ICP recordals, see <a href="https://docs.amazonaws.cn/en_us/aws/latest/userguide/accounts-and-credentials.html"> Signup, Accounts, and Credentials</a> in <i>Getting Started with Amazon Web Services services in China</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DistributionConfig</i> The current configuration information for the distribution. Send a <code>GET</code> request to the <code>/<i>CloudFront API version</i>/distribution ID/config</code> resource.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DistributionConfig</b>: The current configuration information for the distribution. Send a <code>GET</code> request to the <code>/<i>CloudFront API version</i>/distribution ID/config</code> resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActiveTrustedKeyGroups</i> CloudFront automatically adds this field to the response if you’ve configured a cache behavior in this distribution to serve private content using key groups. This field contains a list of key groups and the public keys in each key group that CloudFront can use to verify the signatures of signed URLs or signed cookies.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ActiveTrustedKeyGroups</b>: CloudFront automatically adds this field to the response if you’ve configured a cache behavior in this distribution to serve private content using key groups. This field contains a list of key groups and the public keys in each key group that CloudFront can use to verify the signatures of signed URLs or signed cookies.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActiveTrustedSigners</i> <important> We recommend using <code>TrustedKeyGroups</code> instead of <code>TrustedSigners</code>. </important> CloudFront automatically adds this field to the response if you’ve configured a cache behavior in this distribution to serve private content using trusted signers. This field contains a list of account IDs and the active CloudFront key pairs in each account that CloudFront can use to verify the signatures of signed URLs or signed cookies.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ActiveTrustedSigners</b>: <important> We recommend using <code>TrustedKeyGroups</code> instead of <code>TrustedSigners</code>. </important> CloudFront automatically adds this field to the response if you’ve configured a cache behavior in this distribution to serve private content using trusted signers. This field contains a list of account IDs and the active CloudFront key pairs in each account that CloudFront can use to verify the signatures of signed URLs or signed cookies.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainName</i> The domain name corresponding to the distribution, for example, <code>d111111abcdef8.cloudfront.net</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InProgressInvalidationBatches</i> The number of invalidation batches currently in progress. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedTime</i> The date and time the distribution was last modified. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> This response element indicates the current status of the distribution. When the status is <code>Deployed</code>, the distribution's information is fully propagated to all CloudFront edge locations. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ARN</i> The ARN (Amazon Resource Name) for the distribution. For example: <code>arn:aws:cloudfront::123456789012:distribution/EDFDVBD632BHDS5</code>, where <code>123456789012</code> is your account ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The identifier for the distribution. For example: <code>EDFDVBD632BHDS5</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Items</i> A list of accounts and the identifiers of active CloudFront key pairs in each account that CloudFront can use to verify the signatures of signed URLs and signed cookies.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Quantity</i> The number of accounts in the list.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> This field is <code>true</code> if any of the accounts in the list have active CloudFront key pairs that CloudFront can use to verify the signatures of signed URLs and signed cookies. If not, this field is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Items</i> A list of key groups, including the identifiers of the public keys in each key group that CloudFront can use to verify the signatures of signed URLs and signed cookies.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Quantity</i> The number of key groups in the list.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> This field is <code>true</code> if any of the key groups have public keys that CloudFront can use to verify the signatures of signed URLs and signed cookies. If not, this field is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CallerReference</i> A unique value (for example, a date-time stamp) that ensures that the request can't be replayed. If the value of <code>CallerReference</code> is new (regardless of the content of the <code>DistributionConfig</code> object), CloudFront creates a new distribution. If <code>CallerReference</code> is a value that you already sent in a previous request to create a distribution, CloudFront returns a <code>DistributionAlreadyExists</code> error.<br/>A complex type that contains information about CNAMEs (alternate domain names), if any, for this distribution.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Aliases</b>: A complex type that contains information about CNAMEs (alternate domain names), if any, for this distribution.        """
        pass

    def update_field_level_encryption_config(self, Id: str, FieldLevelEncryptionConfig: FieldLevelEncryptionConfig, IfMatch: str=None) -> UpdateFieldLevelEncryptionConfigResult:
        r"""Update a field-level encryption configuration. 

        :param self:
        :param IfMatch:  The value of the <code>ETag</code> header that you received when retrieving the configuration identity to update. For example: <code>E2QWRUHAPOMQZL</code>.<br/>Id:  The ID of the configuration you want to update.<br/>FieldLevelEncryptionConfig:  Request to update a field-level encryption configuration. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ContentTypeProfileConfig</i> A complex data type that specifies when to forward content if a content type isn't recognized and profiles to use as by default in a request if a query argument doesn't specify a profile to use.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ContentTypeProfileConfig</b>: A complex data type that specifies when to forward content if a content type isn't recognized and profiles to use as by default in a request if a query argument doesn't specify a profile to use.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>QueryArgProfileConfig</i> A complex data type that specifies when to forward content if a profile isn't found and the profile that can be provided as a query argument in a request.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>QueryArgProfileConfig</b>: A complex data type that specifies when to forward content if a profile isn't found and the profile that can be provided as a query argument in a request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Comment</i> An optional comment about the configuration. The comment cannot be longer than 128 characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CallerReference</i> A unique number that ensures the request can't be replayed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ForwardWhenQueryArgProfileIsUnknown</i> Flag to set if you want a request to be forwarded to the origin even if the profile specified by the field-level encryption query argument, fle-profile, is unknown.<br/>Profiles specified for query argument-profile mapping for field-level encryption.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>QueryArgProfiles</b>: Profiles specified for query argument-profile mapping for field-level encryption.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ForwardWhenContentTypeIsUnknown</i> The setting in a field-level encryption content type-profile mapping that specifies what to do when an unknown content type is provided for the profile. If true, content is forwarded without being encrypted when the content type is unknown. If false (the default), an error is returned when the content type is unknown. <br/>The configuration for a field-level encryption content type-profile. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ContentTypeProfiles</b>: The configuration for a field-level encryption content type-profile. 
        :return: ETag:  The value of the <code>ETag</code> header that you received when updating the configuration. For example: <code>E2QWRUHAPOMQZL</code>.<br/>FieldLevelEncryption:  Return the results of updating the configuration.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FieldLevelEncryptionConfig</i> A complex data type that includes the profile configurations specified for field-level encryption. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>FieldLevelEncryptionConfig</b>: A complex data type that includes the profile configurations specified for field-level encryption. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedTime</i> The last time the field-level encryption configuration was changed. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The configuration ID for a field-level encryption configuration which includes a set of profiles that specify certain selected data fields to be encrypted by specific public keys.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Comment</i> An optional comment about the configuration. The comment cannot be longer than 128 characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CallerReference</i> A unique number that ensures the request can't be replayed.<br/>A complex data type that specifies when to forward content if a profile isn't found and the profile that can be provided as a query argument in a request.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>QueryArgProfileConfig</b>: A complex data type that specifies when to forward content if a profile isn't found and the profile that can be provided as a query argument in a request.        """
        pass

    def update_field_level_encryption_profile(self, Id: str, FieldLevelEncryptionProfileConfig: FieldLevelEncryptionProfileConfig, IfMatch: str=None) -> UpdateFieldLevelEncryptionProfileResult:
        r"""Update a field-level encryption profile. 

        :param self:
        :param IfMatch:  The value of the <code>ETag</code> header that you received when retrieving the profile identity to update. For example: <code>E2QWRUHAPOMQZL</code>.<br/>Id:  The ID of the field-level encryption profile request. <br/>FieldLevelEncryptionProfileConfig:  Request to update a field-level encryption profile. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EncryptionEntities</i> A complex data type of encryption entities for the field-level encryption profile that include the public key ID, provider, and field patterns for specifying which fields to encrypt with this key.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EncryptionEntities</b>: A complex data type of encryption entities for the field-level encryption profile that include the public key ID, provider, and field patterns for specifying which fields to encrypt with this key.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Comment</i> An optional comment for the field-level encryption profile. The comment cannot be longer than 128 characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CallerReference</i> A unique number that ensures that the request can't be replayed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> Profile name for the field-level encryption profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Items</i> An array of field patterns in a field-level encryption content type-profile mapping. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Quantity</i> Number of field pattern items in a field-level encryption content type-profile mapping. <br/>
        :return: ETag:  The result of the field-level encryption profile request. <br/>FieldLevelEncryptionProfile:  Return the results of updating the profile.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FieldLevelEncryptionProfileConfig</i> A complex data type that includes the profile name and the encryption entities for the field-level encryption profile.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>FieldLevelEncryptionProfileConfig</b>: A complex data type that includes the profile name and the encryption entities for the field-level encryption profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedTime</i> The last time the field-level encryption profile was updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID for a field-level encryption profile configuration which includes a set of profiles that specify certain selected data fields to be encrypted by specific public keys.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Comment</i> An optional comment for the field-level encryption profile. The comment cannot be longer than 128 characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CallerReference</i> A unique number that ensures that the request can't be replayed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> Profile name for the field-level encryption profile.<br/>A complex data type of encryption entities for the field-level encryption profile that include the public key ID, provider, and field patterns for specifying which fields to encrypt with this key.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EncryptionEntities</b>: A complex data type of encryption entities for the field-level encryption profile that include the public key ID, provider, and field patterns for specifying which fields to encrypt with this key.        """
        pass

    def update_function(self, FunctionCode: FunctionBlob, FunctionConfig: FunctionConfig, IfMatch: str, Name: str) -> UpdateFunctionResult:
        r"""Updates a CloudFront function. You can update a function’s code or the comment that describes the function. You cannot update a function’s name. To update a function, you provide the function’s name and version (<code>ETag</code> value) along with the updated function code. To get the name and version, you can use <code>ListFunctions</code> and <code>DescribeFunction</code>.

        :param self:
        :param FunctionCode:  The function code. For more information about writing a CloudFront function, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/writing-function-code.html">Writing function code for CloudFront Functions</a> in the <i>Amazon CloudFront Developer Guide</i>.<br/>FunctionConfig:  Configuration information about the function.:<br/>IfMatch:  The current version (<code>ETag</code> value) of the function that you are updating, which you can get using <code>DescribeFunction</code>.<br/>Name:  The name of the function that you are updating.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Runtime</i> The function’s runtime environment. The only valid value is <code>cloudfront-js-1.0</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Comment</i> A comment to describe the function.<br/>
        :return: ETag:  The version identifier for the current version of the CloudFront function.<br/>FunctionSummary:  Contains configuration information and metadata about a CloudFront function.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FunctionMetadata</i> Contains metadata about a CloudFront function.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>FunctionMetadata</b>: Contains metadata about a CloudFront function.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FunctionConfig</i> Contains configuration information about a CloudFront function.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>FunctionConfig</b>: Contains configuration information about a CloudFront function.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the CloudFront function.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the CloudFront function.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Runtime</i> The function’s runtime environment. The only valid value is <code>cloudfront-js-1.0</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Comment</i> A comment to describe the function.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedTime</i> The date and time when the function was most recently updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTime</i> The date and time when the function was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Stage</i> The stage that the function is in, either <code>DEVELOPMENT</code> or <code>LIVE</code>. When a function is in the <code>DEVELOPMENT</code> stage, you can test the function with <code>TestFunction</code>, and update it with <code>UpdateFunction</code>. When a function is in the <code>LIVE</code> stage, you can attach the function to a distribution’s cache behavior, using the function’s ARN.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FunctionARN</i> The Amazon Resource Name (ARN) of the function. The ARN uniquely identifies the function.<br/>        """
        pass

    def update_key_group(self, Id: str, KeyGroupConfig: KeyGroupConfig, IfMatch: str=None) -> UpdateKeyGroupResult:
        r"""Updates a key group. When you update a key group, all the fields are updated with the values provided in the request. You cannot update some fields independent of others. To update a key group: <ol> <li> Get the current key group with <code>GetKeyGroup</code> or <code>GetKeyGroupConfig</code>. </li> <li> Locally modify the fields in the key group that you want to update. For example, add or remove public key IDs. </li> <li> Call <code>UpdateKeyGroup</code> with the entire key group object, including the fields that you modified and those that you didn’t. </li> </ol>

        :param self:
        :param IfMatch:  The version of the key group that you are updating. The version is the key group’s <code>ETag</code> value.<br/>Id:  The identifier of the key group that you are updating.<br/>KeyGroupConfig:  The key group configuration.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Comment</i> A comment to describe the key group. The comment cannot be longer than 128 characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Items</i> A list of the identifiers of the public keys in the key group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A name to identify the key group.<br/>
        :return: ETag:  The identifier for this version of the key group.<br/>KeyGroup:  The key group that was just updated.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KeyGroupConfig</i> The key group configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>KeyGroupConfig</b>: The key group configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedTime</i> The date and time when the key group was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The identifier for the key group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Comment</i> A comment to describe the key group. The comment cannot be longer than 128 characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Items</i> A list of the identifiers of the public keys in the key group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A name to identify the key group.<br/>        """
        pass

    def update_origin_request_policy(self, Id: str, OriginRequestPolicyConfig: OriginRequestPolicyConfig, IfMatch: str=None) -> UpdateOriginRequestPolicyResult:
        r"""Updates an origin request policy configuration. When you update an origin request policy configuration, all the fields are updated with the values provided in the request. You cannot update some fields independent of others. To update an origin request policy configuration: <ol> <li> Use <code>GetOriginRequestPolicyConfig</code> to get the current configuration. </li> <li> Locally modify the fields in the origin request policy configuration that you want to update. </li> <li> Call <code>UpdateOriginRequestPolicy</code> by providing the entire origin request policy configuration, including the fields that you modified and those that you didn’t. </li> </ol>

        :param self:
        :param IfMatch:  The version of the origin request policy that you are updating. The version is returned in the origin request policy’s <code>ETag</code> field in the response to <code>GetOriginRequestPolicyConfig</code>.<br/>Id:  The unique identifier for the origin request policy that you are updating. The identifier is returned in a cache behavior’s <code>OriginRequestPolicyId</code> field in the response to <code>GetDistributionConfig</code>.<br/>OriginRequestPolicyConfig:  An origin request policy configuration.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>QueryStringsConfig</i> The URL query strings from viewer requests to include in origin requests.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>QueryStringsConfig</b>: The URL query strings from viewer requests to include in origin requests.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CookiesConfig</i> The cookies from viewer requests to include in origin requests.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CookiesConfig</b>: The cookies from viewer requests to include in origin requests.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HeadersConfig</i> The HTTP headers to include in origin requests. These can include headers from viewer requests and additional headers added by CloudFront.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>HeadersConfig</b>: The HTTP headers to include in origin requests. These can include headers from viewer requests and additional headers added by CloudFront.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A unique name to identify the origin request policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Comment</i> A comment to describe the origin request policy. The comment cannot be longer than 128 characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HeaderBehavior</i> Determines whether any HTTP headers are included in requests that CloudFront sends to the origin. Valid values are: <ul> <li>  <code>none</code> – HTTP headers are not included in requests that CloudFront sends to the origin. Even when this field is set to <code>none</code>, any headers that are listed in a <code>CachePolicy</code> <i>are</i> included in origin requests. </li> <li>  <code>whitelist</code> – The HTTP headers that are listed in the <code>Headers</code> type are included in requests that CloudFront sends to the origin. </li> <li>  <code>allViewer</code> – All HTTP headers in viewer requests are included in requests that CloudFront sends to the origin. </li> <li>  <code>allViewerAndWhitelistCloudFront</code> – All HTTP headers in viewer requests and the additional CloudFront headers that are listed in the <code>Headers</code> type are included in requests that CloudFront sends to the origin. The additional headers are added by CloudFront. </li> </ul><br/>Contains a list of HTTP header names.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Headers</b>: Contains a list of HTTP header names.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CookieBehavior</i> Determines whether cookies in viewer requests are included in requests that CloudFront sends to the origin. Valid values are: <ul> <li>  <code>none</code> – Cookies in viewer requests are not included in requests that CloudFront sends to the origin. Even when this field is set to <code>none</code>, any cookies that are listed in a <code>CachePolicy</code> <i>are</i> included in origin requests. </li> <li>  <code>whitelist</code> – The cookies in viewer requests that are listed in the <code>CookieNames</code> type are included in requests that CloudFront sends to the origin. </li> <li>  <code>all</code> – All cookies in viewer requests are included in requests that CloudFront sends to the origin. </li> </ul><br/>Contains a list of cookie names.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Cookies</b>: Contains a list of cookie names.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>QueryStringBehavior</i> Determines whether any URL query strings in viewer requests are included in requests that CloudFront sends to the origin. Valid values are: <ul> <li>  <code>none</code> – Query strings in viewer requests are not included in requests that CloudFront sends to the origin. Even when this field is set to <code>none</code>, any query strings that are listed in a <code>CachePolicy</code> <i>are</i> included in origin requests. </li> <li>  <code>whitelist</code> – The query strings in viewer requests that are listed in the <code>QueryStringNames</code> type are included in requests that CloudFront sends to the origin. </li> <li>  <code>all</code> – All query strings in viewer requests are included in requests that CloudFront sends to the origin. </li> </ul><br/>Contains a list of the query strings in viewer requests that are included in requests that CloudFront sends to the origin.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>QueryStrings</b>: Contains a list of the query strings in viewer requests that are included in requests that CloudFront sends to the origin.
        :return: ETag:  The current version of the origin request policy.<br/>OriginRequestPolicy:  An origin request policy.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OriginRequestPolicyConfig</i> The origin request policy configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>OriginRequestPolicyConfig</b>: The origin request policy configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedTime</i> The date and time when the origin request policy was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The unique identifier for the origin request policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A unique name to identify the origin request policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Comment</i> A comment to describe the origin request policy. The comment cannot be longer than 128 characters.<br/>The HTTP headers to include in origin requests. These can include headers from viewer requests and additional headers added by CloudFront.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>HeadersConfig</b>: The HTTP headers to include in origin requests. These can include headers from viewer requests and additional headers added by CloudFront.        """
        pass

    def update_public_key(self, Id: str, PublicKeyConfig: PublicKeyConfig, IfMatch: str=None) -> UpdatePublicKeyResult:
        r"""Update public key information. Note that the only value you can change is the comment.

        :param self:
        :param IfMatch:  The value of the <code>ETag</code> header that you received when retrieving the public key to update. For example: <code>E2QWRUHAPOMQZL</code>.<br/>Id:  The identifier of the public key that you are updating.<br/>PublicKeyConfig:  A public key configuration.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Comment</i> A comment to describe the public key. The comment cannot be longer than 128 characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EncodedKey</i> The public key that you can use with <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html">signed URLs and signed cookies</a>, or with <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/field-level-encryption.html">field-level encryption</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A name to help identify the public key.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CallerReference</i> A string included in the request to help make sure that the request can’t be replayed.<br/>
        :return: ETag:  The identifier of the current version of the public key.<br/>PublicKey:  The public key.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PublicKeyConfig</i> Configuration information about a public key that you can use with <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html">signed URLs and signed cookies</a>, or with <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/field-level-encryption.html">field-level encryption</a>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PublicKeyConfig</b>: Configuration information about a public key that you can use with <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html">signed URLs and signed cookies</a>, or with <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/field-level-encryption.html">field-level encryption</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTime</i> The date and time when the public key was uploaded.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The identifier of the public key.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Comment</i> A comment to describe the public key. The comment cannot be longer than 128 characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EncodedKey</i> The public key that you can use with <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html">signed URLs and signed cookies</a>, or with <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/field-level-encryption.html">field-level encryption</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A name to help identify the public key.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CallerReference</i> A string included in the request to help make sure that the request can’t be replayed.<br/>        """
        pass

    def update_realtime_log_config(self, EndPoints: List[EndPoint]=None, Fields: List[string]=None, Name: str=None, ARN: str=None, SamplingRate: long=None) -> UpdateRealtimeLogConfigResult:
        r"""Updates a real-time log configuration. When you update a real-time log configuration, all the parameters are updated with the values provided in the request. You cannot update some parameters independent of others. To update a real-time log configuration: <ol> <li> Call <code>GetRealtimeLogConfig</code> to get the current real-time log configuration. </li> <li> Locally modify the parameters in the real-time log configuration that you want to update. </li> <li> Call this API (<code>UpdateRealtimeLogConfig</code>) by providing the entire real-time log configuration, including the parameters that you modified and those that you didn’t. </li> </ol> You cannot update a real-time log configuration’s <code>Name</code> or <code>ARN</code>.

        :param self:
        :param SamplingRate:  The sampling rate for this real-time log configuration. The sampling rate determines the percentage of viewer requests that are represented in the real-time log data. You must provide an integer between 1 and 100, inclusive.<br/>ARN:  The Amazon Resource Name (ARN) for this real-time log configuration.<br/>Name:  The name for this real-time log configuration.<br/>Fields:  A list of fields to include in each real-time log record. For more information about fields, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/real-time-logs.html#understand-real-time-log-config-fields">Real-time log configuration fields</a> in the <i>Amazon CloudFront Developer Guide</i>.<br/>EndPoints:  Contains information about the Amazon Kinesis data stream where you are sending real-time log data.<br/>
        :return: RealtimeLogConfig:  A real-time log configuration.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Fields</i> A list of fields that are included in each real-time log record. In an API response, the fields are provided in the same order in which they are sent to the Amazon Kinesis data stream. For more information about fields, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/real-time-logs.html#understand-real-time-log-config-fields">Real-time log configuration fields</a> in the <i>Amazon CloudFront Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndPoints</i> Contains information about the Amazon Kinesis data stream where you are sending real-time log data for this real-time log configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SamplingRate</i> The sampling rate for this real-time log configuration. The sampling rate determines the percentage of viewer requests that are represented in the real-time log data. The sampling rate is an integer between 1 and 100, inclusive.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The unique name of this real-time log configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ARN</i> The Amazon Resource Name (ARN) of this real-time log configuration.<br/>        """
        pass

    def update_streaming_distribution(self, Id: str, StreamingDistributionConfig: StreamingDistributionConfig, IfMatch: str=None) -> UpdateStreamingDistributionResult:
        r"""Update a streaming distribution. 

        :param self:
        :param IfMatch:  The value of the <code>ETag</code> header that you received when retrieving the streaming distribution's configuration. For example: <code>E2QWRUHAPOMQZL</code>.<br/>Id:  The streaming distribution's id.<br/>StreamingDistributionConfig:  The streaming distribution's configuration information.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Whether the streaming distribution is enabled to accept user requests for content.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PriceClass</i> A complex type that contains information about price class for this streaming distribution. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TrustedSigners</i> A complex type that specifies any accounts that you want to permit to create signed URLs for private content. If you want the distribution to use signed URLs, include this element; if you want the distribution to use public URLs, remove this element. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html">Serving Private Content through CloudFront</a> in the <i>Amazon CloudFront Developer Guide</i>. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TrustedSigners</b>: A complex type that specifies any accounts that you want to permit to create signed URLs for private content. If you want the distribution to use signed URLs, include this element; if you want the distribution to use public URLs, remove this element. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html">Serving Private Content through CloudFront</a> in the <i>Amazon CloudFront Developer Guide</i>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Logging</i> A complex type that controls whether access logs are written for the streaming distribution. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Logging</b>: A complex type that controls whether access logs are written for the streaming distribution. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Comment</i> Any comments you want to include about the streaming distribution. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Aliases</i> A complex type that contains information about CNAMEs (alternate domain names), if any, for this streaming distribution. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Aliases</b>: A complex type that contains information about CNAMEs (alternate domain names), if any, for this streaming distribution. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Origin</i> A complex type that contains information about the Amazon S3 bucket from which you want CloudFront to get your media files for distribution. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3Origin</b>: A complex type that contains information about the Amazon S3 bucket from which you want CloudFront to get your media files for distribution. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CallerReference</i> A unique value (for example, a date-time stamp) that ensures that the request can't be replayed. If the value of <code>CallerReference</code> is new (regardless of the content of the <code>StreamingDistributionConfig</code> object), CloudFront creates a new distribution. If <code>CallerReference</code> is a value that you already sent in a previous request to create a distribution, CloudFront returns a <code>DistributionAlreadyExists</code> error.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OriginAccessIdentity</i> The CloudFront origin access identity to associate with the distribution. Use an origin access identity to configure the distribution so that end users can only access objects in an Amazon S3 bucket through CloudFront. If you want end users to be able to access objects using either the CloudFront URL or the Amazon S3 URL, specify an empty <code>OriginAccessIdentity</code> element. To delete the origin access identity from an existing distribution, update the distribution configuration and include an empty <code>OriginAccessIdentity</code> element. To replace the origin access identity, update the distribution configuration and specify the new origin access identity. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-s3.html">Using an Origin Access Identity to Restrict Access to Your Amazon S3 Content</a> in the <i> Amazon CloudFront Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainName</i> The DNS name of the Amazon S3 origin. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Items</i> A complex type that contains the CNAME aliases, if any, that you want to associate with this distribution.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Quantity</i> The number of CNAME aliases, if any, that you want to associate with this distribution.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Prefix</i> An optional string that you want CloudFront to prefix to the access log filenames for this streaming distribution, for example, <code>myprefix/</code>. If you want to enable logging, but you don't want to specify a prefix, you still must include an empty <code>Prefix</code> element in the <code>Logging</code> element.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i> The Amazon S3 bucket to store the access logs in, for example, <code>myawslogbucket.s3.amazonaws.com</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specifies whether you want CloudFront to save access logs to an Amazon S3 bucket. If you don't want to enable logging when you create a streaming distribution or if you want to disable logging for an existing streaming distribution, specify <code>false</code> for <code>Enabled</code>, and specify <code>empty Bucket</code> and <code>Prefix</code> elements. If you specify <code>false</code> for <code>Enabled</code> but you specify values for <code>Bucket</code> and <code>Prefix</code>, the values are automatically deleted. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Items</i> A list of account identifiers.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Quantity</i> The number of accounts in the list.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> This field is <code>true</code> if any of the accounts have public keys that CloudFront can use to verify the signatures of signed URLs and signed cookies. If not, this field is <code>false</code>.<br/>
        :return: ETag:  The current version of the configuration. For example: <code>E2QWRUHAPOMQZL</code>.<br/>StreamingDistribution:  The streaming distribution's information.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamingDistributionConfig</i> The current configuration information for the RTMP distribution.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StreamingDistributionConfig</b>: The current configuration information for the RTMP distribution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActiveTrustedSigners</i> A complex type that lists the accounts, if any, that you included in the <code>TrustedSigners</code> complex type for this distribution. These are the accounts that you want to allow to create signed URLs for private content. The <code>Signer</code> complex type lists the account number of the trusted signer or <code>self</code> if the signer is the account that created the distribution. The <code>Signer</code> element also includes the IDs of any active CloudFront key pairs that are associated with the trusted signer's account. If no <code>KeyPairId</code> element appears for a <code>Signer</code>, that signer can't create signed URLs. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html">Serving Private Content through CloudFront</a> in the <i>Amazon CloudFront Developer Guide</i>. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ActiveTrustedSigners</b>: A complex type that lists the accounts, if any, that you included in the <code>TrustedSigners</code> complex type for this distribution. These are the accounts that you want to allow to create signed URLs for private content. The <code>Signer</code> complex type lists the account number of the trusted signer or <code>self</code> if the signer is the account that created the distribution. The <code>Signer</code> element also includes the IDs of any active CloudFront key pairs that are associated with the trusted signer's account. If no <code>KeyPairId</code> element appears for a <code>Signer</code>, that signer can't create signed URLs. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html">Serving Private Content through CloudFront</a> in the <i>Amazon CloudFront Developer Guide</i>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainName</i> The domain name that corresponds to the streaming distribution, for example, <code>s5c39gqb8ow64r.cloudfront.net</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedTime</i> The date and time that the distribution was last modified. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current status of the RTMP distribution. When the status is <code>Deployed</code>, the distribution's information is propagated to all CloudFront edge locations.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ARN</i> The ARN (Amazon Resource Name) for the distribution. For example: <code>arn:aws:cloudfront::123456789012:distribution/EDFDVBD632BHDS5</code>, where <code>123456789012</code> is your account ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The identifier for the RTMP distribution. For example: <code>EGTXBD79EXAMPLE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Items</i> A list of accounts and the identifiers of active CloudFront key pairs in each account that CloudFront can use to verify the signatures of signed URLs and signed cookies.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Quantity</i> The number of accounts in the list.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> This field is <code>true</code> if any of the accounts in the list have active CloudFront key pairs that CloudFront can use to verify the signatures of signed URLs and signed cookies. If not, this field is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CallerReference</i> A unique value (for example, a date-time stamp) that ensures that the request can't be replayed. If the value of <code>CallerReference</code> is new (regardless of the content of the <code>StreamingDistributionConfig</code> object), CloudFront creates a new distribution. If <code>CallerReference</code> is a value that you already sent in a previous request to create a distribution, CloudFront returns a <code>DistributionAlreadyExists</code> error.<br/>A complex type that contains information about the Amazon S3 bucket from which you want CloudFront to get your media files for distribution. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3Origin</b>: A complex type that contains information about the Amazon S3 bucket from which you want CloudFront to get your media files for distribution.         """
        pass





class CloudHSM(BaseClient):
    r"""<fullname>AWS CloudHSM Service</fullname> This is documentation for <b>AWS CloudHSM Classic</b>. For more information, see <a href="http://aws.amazon.com/cloudhsm/faqs-classic/">AWS CloudHSM Classic FAQs</a>, the <a href="https://docs.aws.amazon.com/cloudhsm/classic/userguide/">AWS CloudHSM Classic User Guide</a>, and the <a href="https://docs.aws.amazon.com/cloudhsm/classic/APIReference/">AWS CloudHSM Classic API Reference</a>.  <b>For information about the current version of AWS CloudHSM</b>, see <a href="http://aws.amazon.com/cloudhsm/">AWS CloudHSM</a>, the <a href="https://docs.aws.amazon.com/cloudhsm/latest/userguide/">AWS CloudHSM User Guide</a>, and the <a href="https://docs.aws.amazon.com/cloudhsm/latest/APIReference/">AWS CloudHSM API Reference</a>."""


    class ListHapgsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_hapgs` for valid parameters"""
            pass
    class ListHsmsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_hsms` for valid parameters"""
            pass
    class ListLunaClientsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_luna_clients` for valid parameters"""
            pass


    class AddTagsToResourceRequest(Mapping):
        pass
    
    class AddTagsToResourceResponse(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class CreateHapgRequest(Mapping):
        pass
    
    class CreateHapgResponse(Mapping):
        pass
    
    class CreateHsmRequest(Mapping):
        pass
    
    class CreateHsmResponse(Mapping):
        pass
    
    class CreateLunaClientRequest(Mapping):
        pass
    
    class CreateLunaClientResponse(Mapping):
        pass
    
    class DeleteHapgRequest(Mapping):
        pass
    
    class DeleteHapgResponse(Mapping):
        pass
    
    class DeleteHsmRequest(Mapping):
        pass
    
    class DeleteHsmResponse(Mapping):
        pass
    
    class DeleteLunaClientRequest(Mapping):
        pass
    
    class DeleteLunaClientResponse(Mapping):
        pass
    
    class DescribeHapgRequest(Mapping):
        pass
    
    class DescribeHapgResponse(Mapping):
        pass
    
    class DescribeHsmRequest(Mapping):
        pass
    
    class DescribeHsmResponse(Mapping):
        pass
    
    class DescribeLunaClientRequest(Mapping):
        pass
    
    class DescribeLunaClientResponse(Mapping):
        pass
    
    class GetConfigRequest(Mapping):
        pass
    
    class GetConfigResponse(Mapping):
        pass
    
    class HapgArn(object):
        pass
    
    class ListAvailableZonesRequest(Mapping):
        pass
    
    class ListAvailableZonesResponse(Mapping):
        pass
    
    class ListHapgsRequest(Mapping):
        pass
    
    class ListHapgsResponse(Mapping):
        pass
    
    class ListHsmsRequest(Mapping):
        pass
    
    class ListHsmsResponse(Mapping):
        pass
    
    class ListLunaClientsRequest(Mapping):
        pass
    
    class ListLunaClientsResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class ModifyHapgRequest(Mapping):
        pass
    
    class ModifyHapgResponse(Mapping):
        pass
    
    class PartitionSerial(object):
        pass
    
    class ModifyHsmRequest(Mapping):
        pass
    
    class ModifyHsmResponse(Mapping):
        pass
    
    class ModifyLunaClientRequest(Mapping):
        pass
    
    class ModifyLunaClientResponse(Mapping):
        pass
    
    class RemoveTagsFromResourceRequest(Mapping):
        pass
    
    class RemoveTagsFromResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    def add_tags_to_resource(self, TagList: List[Tag], ResourceArn: str) -> AddTagsToResourceResponse:
        r"""This is documentation for <b>AWS CloudHSM Classic</b>. For more information, see <a href="http://aws.amazon.com/cloudhsm/faqs-classic/">AWS CloudHSM Classic FAQs</a>, the <a href="https://docs.aws.amazon.com/cloudhsm/classic/userguide/">AWS CloudHSM Classic User Guide</a>, and the <a href="https://docs.aws.amazon.com/cloudhsm/classic/APIReference/">AWS CloudHSM Classic API Reference</a>.  <b>For information about the current version of AWS CloudHSM</b>, see <a href="http://aws.amazon.com/cloudhsm/">AWS CloudHSM</a>, the <a href="https://docs.aws.amazon.com/cloudhsm/latest/userguide/">AWS CloudHSM User Guide</a>, and the <a href="https://docs.aws.amazon.com/cloudhsm/latest/APIReference/">AWS CloudHSM API Reference</a>. Adds or overwrites one or more tags for the specified AWS CloudHSM resource. Each tag consists of a key and a value. Tag keys must be unique to each resource.

        :param self:
        :param TagList:  One or more tags.<br/>ResourceArn:  The Amazon Resource Name (ARN) of the AWS CloudHSM resource to tag.<br/>
        :return: Status:  The status of the operation.<br/>        """
        pass

    def create_hapg(self, Label: str) -> CreateHapgResponse:
        r"""This is documentation for <b>AWS CloudHSM Classic</b>. For more information, see <a href="http://aws.amazon.com/cloudhsm/faqs-classic/">AWS CloudHSM Classic FAQs</a>, the <a href="https://docs.aws.amazon.com/cloudhsm/classic/userguide/">AWS CloudHSM Classic User Guide</a>, and the <a href="https://docs.aws.amazon.com/cloudhsm/classic/APIReference/">AWS CloudHSM Classic API Reference</a>.  <b>For information about the current version of AWS CloudHSM</b>, see <a href="http://aws.amazon.com/cloudhsm/">AWS CloudHSM</a>, the <a href="https://docs.aws.amazon.com/cloudhsm/latest/userguide/">AWS CloudHSM User Guide</a>, and the <a href="https://docs.aws.amazon.com/cloudhsm/latest/APIReference/">AWS CloudHSM API Reference</a>. Creates a high-availability partition group. A high-availability partition group is a group of partitions that spans multiple physical HSMs.

        :param self:
        :param Label:  The label of the new high-availability partition group.<br/>
        :return: HapgArn:  The ARN of the high-availability partition group.<br/>        """
        pass

    def create_hsm(self, SubscriptionType: str, IamRoleArn: str, SshKey: str, SubnetId: str, EniIp: str=None, ExternalId: str=None, ClientToken: str=None, SyslogIp: str=None) -> CreateHsmResponse:
        r"""This is documentation for <b>AWS CloudHSM Classic</b>. For more information, see <a href="http://aws.amazon.com/cloudhsm/faqs-classic/">AWS CloudHSM Classic FAQs</a>, the <a href="https://docs.aws.amazon.com/cloudhsm/classic/userguide/">AWS CloudHSM Classic User Guide</a>, and the <a href="https://docs.aws.amazon.com/cloudhsm/classic/APIReference/">AWS CloudHSM Classic API Reference</a>.  <b>For information about the current version of AWS CloudHSM</b>, see <a href="http://aws.amazon.com/cloudhsm/">AWS CloudHSM</a>, the <a href="https://docs.aws.amazon.com/cloudhsm/latest/userguide/">AWS CloudHSM User Guide</a>, and the <a href="https://docs.aws.amazon.com/cloudhsm/latest/APIReference/">AWS CloudHSM API Reference</a>. Creates an uninitialized HSM instance. There is an upfront fee charged for each HSM instance that you create with the <code>CreateHsm</code> operation. If you accidentally provision an HSM and want to request a refund, delete the instance using the <a>DeleteHsm</a> operation, go to the <a href="https://console.aws.amazon.com/support/home">AWS Support Center</a>, create a new case, and select <b>Account and Billing Support</b>. <important> It can take up to 20 minutes to create and provision an HSM. You can monitor the status of the HSM with the <a>DescribeHsm</a> operation. The HSM is ready to be initialized when the status changes to <code>RUNNING</code>. </important>

        :param self:
        :param SyslogIp:  The IP address for the syslog monitoring server. The AWS CloudHSM service only supports one syslog monitoring server.<br/>ClientToken:  A user-defined token to ensure idempotence. Subsequent calls to this operation with the same token will be ignored.<br/>SubscriptionType:  Specifies the type of subscription for the HSM. <ul> <li>  <b>PRODUCTION</b> - The HSM is being used in a production environment. </li> <li>  <b>TRIAL</b> - The HSM is being used in a product trial. </li> </ul><br/>ExternalId:  The external ID from <code>IamRoleArn</code>, if present.<br/>IamRoleArn:  The ARN of an IAM role to enable the AWS CloudHSM service to allocate an ENI on your behalf.<br/>EniIp:  The IP address to assign to the HSM's ENI. If an IP address is not specified, an IP address will be randomly chosen from the CIDR range of the subnet.<br/>SshKey:  The SSH public key to install on the HSM.<br/>SubnetId:  The identifier of the subnet in your VPC in which to place the HSM.<br/>
        :return: HsmArn:  The ARN of the HSM.<br/>        """
        pass

    def create_luna_client(self, Certificate: str, Label: str=None) -> CreateLunaClientResponse:
        r"""This is documentation for <b>AWS CloudHSM Classic</b>. For more information, see <a href="http://aws.amazon.com/cloudhsm/faqs-classic/">AWS CloudHSM Classic FAQs</a>, the <a href="https://docs.aws.amazon.com/cloudhsm/classic/userguide/">AWS CloudHSM Classic User Guide</a>, and the <a href="https://docs.aws.amazon.com/cloudhsm/classic/APIReference/">AWS CloudHSM Classic API Reference</a>.  <b>For information about the current version of AWS CloudHSM</b>, see <a href="http://aws.amazon.com/cloudhsm/">AWS CloudHSM</a>, the <a href="https://docs.aws.amazon.com/cloudhsm/latest/userguide/">AWS CloudHSM User Guide</a>, and the <a href="https://docs.aws.amazon.com/cloudhsm/latest/APIReference/">AWS CloudHSM API Reference</a>. Creates an HSM client.

        :param self:
        :param Certificate:  The contents of a Base64-Encoded X.509 v3 certificate to be installed on the HSMs used by this client.<br/>Label:  The label for the client.<br/>
        :return: ClientArn:  The ARN of the client.<br/>        """
        pass

    def delete_hapg(self, HapgArn: str) -> DeleteHapgResponse:
        r"""This is documentation for <b>AWS CloudHSM Classic</b>. For more information, see <a href="http://aws.amazon.com/cloudhsm/faqs-classic/">AWS CloudHSM Classic FAQs</a>, the <a href="https://docs.aws.amazon.com/cloudhsm/classic/userguide/">AWS CloudHSM Classic User Guide</a>, and the <a href="https://docs.aws.amazon.com/cloudhsm/classic/APIReference/">AWS CloudHSM Classic API Reference</a>.  <b>For information about the current version of AWS CloudHSM</b>, see <a href="http://aws.amazon.com/cloudhsm/">AWS CloudHSM</a>, the <a href="https://docs.aws.amazon.com/cloudhsm/latest/userguide/">AWS CloudHSM User Guide</a>, and the <a href="https://docs.aws.amazon.com/cloudhsm/latest/APIReference/">AWS CloudHSM API Reference</a>. Deletes a high-availability partition group.

        :param self:
        :param HapgArn:  The ARN of the high-availability partition group to delete.<br/>
        :return: Status:  The status of the action.<br/>        """
        pass

    def delete_hsm(self, HsmArn: str) -> DeleteHsmResponse:
        r"""This is documentation for <b>AWS CloudHSM Classic</b>. For more information, see <a href="http://aws.amazon.com/cloudhsm/faqs-classic/">AWS CloudHSM Classic FAQs</a>, the <a href="https://docs.aws.amazon.com/cloudhsm/classic/userguide/">AWS CloudHSM Classic User Guide</a>, and the <a href="https://docs.aws.amazon.com/cloudhsm/classic/APIReference/">AWS CloudHSM Classic API Reference</a>.  <b>For information about the current version of AWS CloudHSM</b>, see <a href="http://aws.amazon.com/cloudhsm/">AWS CloudHSM</a>, the <a href="https://docs.aws.amazon.com/cloudhsm/latest/userguide/">AWS CloudHSM User Guide</a>, and the <a href="https://docs.aws.amazon.com/cloudhsm/latest/APIReference/">AWS CloudHSM API Reference</a>. Deletes an HSM. After completion, this operation cannot be undone and your key material cannot be recovered.

        :param self:
        :param HsmArn:  The ARN of the HSM to delete.<br/>
        :return: Status:  The status of the operation.<br/>        """
        pass

    def delete_luna_client(self, ClientArn: str) -> DeleteLunaClientResponse:
        r"""This is documentation for <b>AWS CloudHSM Classic</b>. For more information, see <a href="http://aws.amazon.com/cloudhsm/faqs-classic/">AWS CloudHSM Classic FAQs</a>, the <a href="https://docs.aws.amazon.com/cloudhsm/classic/userguide/">AWS CloudHSM Classic User Guide</a>, and the <a href="https://docs.aws.amazon.com/cloudhsm/classic/APIReference/">AWS CloudHSM Classic API Reference</a>.  <b>For information about the current version of AWS CloudHSM</b>, see <a href="http://aws.amazon.com/cloudhsm/">AWS CloudHSM</a>, the <a href="https://docs.aws.amazon.com/cloudhsm/latest/userguide/">AWS CloudHSM User Guide</a>, and the <a href="https://docs.aws.amazon.com/cloudhsm/latest/APIReference/">AWS CloudHSM API Reference</a>. Deletes a client.

        :param self:
        :param ClientArn:  The ARN of the client to delete.<br/>
        :return: Status:  The status of the action.<br/>        """
        pass

    def describe_hapg(self, HapgArn: str) -> DescribeHapgResponse:
        r"""This is documentation for <b>AWS CloudHSM Classic</b>. For more information, see <a href="http://aws.amazon.com/cloudhsm/faqs-classic/">AWS CloudHSM Classic FAQs</a>, the <a href="https://docs.aws.amazon.com/cloudhsm/classic/userguide/">AWS CloudHSM Classic User Guide</a>, and the <a href="https://docs.aws.amazon.com/cloudhsm/classic/APIReference/">AWS CloudHSM Classic API Reference</a>.  <b>For information about the current version of AWS CloudHSM</b>, see <a href="http://aws.amazon.com/cloudhsm/">AWS CloudHSM</a>, the <a href="https://docs.aws.amazon.com/cloudhsm/latest/userguide/">AWS CloudHSM User Guide</a>, and the <a href="https://docs.aws.amazon.com/cloudhsm/latest/APIReference/">AWS CloudHSM API Reference</a>. Retrieves information about a high-availability partition group.

        :param self:
        :param HapgArn:  The ARN of the high-availability partition group to describe.<br/>
        :return: State:  The state of the high-availability partition group.<br/>PartitionSerialList:  The list of partition serial numbers that belong to the high-availability partition group.<br/>LastModifiedTimestamp:  The date and time the high-availability partition group was last modified.<br/>Label:  The label for the high-availability partition group.<br/>HsmsPendingRegistration:  <p/><br/>HsmsPendingDeletion:  <p/><br/>HsmsLastActionFailed:  <p/><br/>HapgSerial:  The serial number of the high-availability partition group.<br/>HapgArn:  The ARN of the high-availability partition group.<br/>        """
        pass

    def describe_hsm(self, HsmArn: str=None, HsmSerialNumber: str=None) -> DescribeHsmResponse:
        r"""This is documentation for <b>AWS CloudHSM Classic</b>. For more information, see <a href="http://aws.amazon.com/cloudhsm/faqs-classic/">AWS CloudHSM Classic FAQs</a>, the <a href="https://docs.aws.amazon.com/cloudhsm/classic/userguide/">AWS CloudHSM Classic User Guide</a>, and the <a href="https://docs.aws.amazon.com/cloudhsm/classic/APIReference/">AWS CloudHSM Classic API Reference</a>.  <b>For information about the current version of AWS CloudHSM</b>, see <a href="http://aws.amazon.com/cloudhsm/">AWS CloudHSM</a>, the <a href="https://docs.aws.amazon.com/cloudhsm/latest/userguide/">AWS CloudHSM User Guide</a>, and the <a href="https://docs.aws.amazon.com/cloudhsm/latest/APIReference/">AWS CloudHSM API Reference</a>. Retrieves information about an HSM. You can identify the HSM by its ARN or its serial number.

        :param self:
        :param HsmSerialNumber:  The serial number of the HSM. Either the <code>HsmArn</code> or the <code>HsmSerialNumber</code> parameter must be specified.<br/>HsmArn:  The ARN of the HSM. Either the <code>HsmArn</code> or the <code>SerialNumber</code> parameter must be specified.<br/>
        :return: Partitions:  The list of partitions on the HSM.<br/>ServerCertLastUpdated:  The date and time that the server certificate was last updated.<br/>ServerCertUri:  The URI of the certificate server.<br/>SshKeyLastUpdated:  The date and time that the SSH key was last updated.<br/>SshPublicKey:  The public SSH key.<br/>SoftwareVersion:  The HSM software version.<br/>HsmType:  The HSM model type.<br/>VendorName:  The name of the HSM vendor.<br/>SerialNumber:  The serial number of the HSM.<br/>IamRoleArn:  The ARN of the IAM role assigned to the HSM.<br/>SubnetId:  The identifier of the subnet that the HSM is in.<br/>VpcId:  The identifier of the VPC that the HSM is in.<br/>SubscriptionEndDate:  The subscription end date.<br/>SubscriptionStartDate:  The subscription start date.<br/>SubscriptionType:  Specifies the type of subscription for the HSM. <ul> <li>  <b>PRODUCTION</b> - The HSM is being used in a production environment. </li> <li>  <b>TRIAL</b> - The HSM is being used in a product trial. </li> </ul><br/>EniIp:  The IP address assigned to the HSM's ENI.<br/>EniId:  The identifier of the elastic network interface (ENI) attached to the HSM.<br/>AvailabilityZone:  The Availability Zone that the HSM is in.<br/>StatusDetails:  Contains additional information about the status of the HSM.<br/>Status:  The status of the HSM.<br/>HsmArn:  The ARN of the HSM.<br/>        """
        pass

    def describe_luna_client(self, ClientArn: str=None, CertificateFingerprint: str=None) -> DescribeLunaClientResponse:
        r"""This is documentation for <b>AWS CloudHSM Classic</b>. For more information, see <a href="http://aws.amazon.com/cloudhsm/faqs-classic/">AWS CloudHSM Classic FAQs</a>, the <a href="https://docs.aws.amazon.com/cloudhsm/classic/userguide/">AWS CloudHSM Classic User Guide</a>, and the <a href="https://docs.aws.amazon.com/cloudhsm/classic/APIReference/">AWS CloudHSM Classic API Reference</a>.  <b>For information about the current version of AWS CloudHSM</b>, see <a href="http://aws.amazon.com/cloudhsm/">AWS CloudHSM</a>, the <a href="https://docs.aws.amazon.com/cloudhsm/latest/userguide/">AWS CloudHSM User Guide</a>, and the <a href="https://docs.aws.amazon.com/cloudhsm/latest/APIReference/">AWS CloudHSM API Reference</a>. Retrieves information about an HSM client.

        :param self:
        :param CertificateFingerprint:  The certificate fingerprint.<br/>ClientArn:  The ARN of the client.<br/>
        :return: Label:  The label of the client.<br/>LastModifiedTimestamp:  The date and time the client was last modified.<br/>CertificateFingerprint:  The certificate fingerprint.<br/>Certificate:  The certificate installed on the HSMs used by this client.<br/>ClientArn:  The ARN of the client.<br/>        """
        pass

    def get_config(self, HapgList: List[HapgArn], ClientVersion: str, ClientArn: str) -> GetConfigResponse:
        r"""This is documentation for <b>AWS CloudHSM Classic</b>. For more information, see <a href="http://aws.amazon.com/cloudhsm/faqs-classic/">AWS CloudHSM Classic FAQs</a>, the <a href="https://docs.aws.amazon.com/cloudhsm/classic/userguide/">AWS CloudHSM Classic User Guide</a>, and the <a href="https://docs.aws.amazon.com/cloudhsm/classic/APIReference/">AWS CloudHSM Classic API Reference</a>.  <b>For information about the current version of AWS CloudHSM</b>, see <a href="http://aws.amazon.com/cloudhsm/">AWS CloudHSM</a>, the <a href="https://docs.aws.amazon.com/cloudhsm/latest/userguide/">AWS CloudHSM User Guide</a>, and the <a href="https://docs.aws.amazon.com/cloudhsm/latest/APIReference/">AWS CloudHSM API Reference</a>. Gets the configuration files necessary to connect to all high availability partition groups the client is associated with.

        :param self:
        :param HapgList:  A list of ARNs that identify the high-availability partition groups that are associated with the client.<br/>ClientVersion:  The client version.<br/>ClientArn:  The ARN of the client.<br/>
        :return: ConfigCred:  The certificate file containing the server.pem files of the HSMs.<br/>ConfigFile:  The chrystoki.conf configuration file.<br/>ConfigType:  The type of credentials.<br/>        """
        pass

    def list_available_zones(self) -> ListAvailableZonesResponse:
        r"""This is documentation for <b>AWS CloudHSM Classic</b>. For more information, see <a href="http://aws.amazon.com/cloudhsm/faqs-classic/">AWS CloudHSM Classic FAQs</a>, the <a href="https://docs.aws.amazon.com/cloudhsm/classic/userguide/">AWS CloudHSM Classic User Guide</a>, and the <a href="https://docs.aws.amazon.com/cloudhsm/classic/APIReference/">AWS CloudHSM Classic API Reference</a>.  <b>For information about the current version of AWS CloudHSM</b>, see <a href="http://aws.amazon.com/cloudhsm/">AWS CloudHSM</a>, the <a href="https://docs.aws.amazon.com/cloudhsm/latest/userguide/">AWS CloudHSM User Guide</a>, and the <a href="https://docs.aws.amazon.com/cloudhsm/latest/APIReference/">AWS CloudHSM API Reference</a>. Lists the Availability Zones that have available AWS CloudHSM capacity.

        :param self:
        :param 
        :return: AZList:  The list of Availability Zones that have available AWS CloudHSM capacity.<br/>        """
        pass

    def list_hapgs(self, NextToken: str=None) -> ListHapgsResponse:
        r"""This is documentation for <b>AWS CloudHSM Classic</b>. For more information, see <a href="http://aws.amazon.com/cloudhsm/faqs-classic/">AWS CloudHSM Classic FAQs</a>, the <a href="https://docs.aws.amazon.com/cloudhsm/classic/userguide/">AWS CloudHSM Classic User Guide</a>, and the <a href="https://docs.aws.amazon.com/cloudhsm/classic/APIReference/">AWS CloudHSM Classic API Reference</a>.  <b>For information about the current version of AWS CloudHSM</b>, see <a href="http://aws.amazon.com/cloudhsm/">AWS CloudHSM</a>, the <a href="https://docs.aws.amazon.com/cloudhsm/latest/userguide/">AWS CloudHSM User Guide</a>, and the <a href="https://docs.aws.amazon.com/cloudhsm/latest/APIReference/">AWS CloudHSM API Reference</a>. Lists the high-availability partition groups for the account. This operation supports pagination with the use of the <code>NextToken</code> member. If more results are available, the <code>NextToken</code> member of the response contains a token that you pass in the next call to <code>ListHapgs</code> to retrieve the next set of items.

        :param self:
        :param NextToken:  The <code>NextToken</code> value from a previous call to <code>ListHapgs</code>. Pass null if this is the first call.<br/>
        :return: NextToken:  If not null, more results are available. Pass this value to <code>ListHapgs</code> to retrieve the next set of items.<br/>HapgList:  The list of high-availability partition groups.<br/>        """
        pass

    def list_hsms(self, NextToken: str=None) -> ListHsmsResponse:
        r"""This is documentation for <b>AWS CloudHSM Classic</b>. For more information, see <a href="http://aws.amazon.com/cloudhsm/faqs-classic/">AWS CloudHSM Classic FAQs</a>, the <a href="https://docs.aws.amazon.com/cloudhsm/classic/userguide/">AWS CloudHSM Classic User Guide</a>, and the <a href="https://docs.aws.amazon.com/cloudhsm/classic/APIReference/">AWS CloudHSM Classic API Reference</a>.  <b>For information about the current version of AWS CloudHSM</b>, see <a href="http://aws.amazon.com/cloudhsm/">AWS CloudHSM</a>, the <a href="https://docs.aws.amazon.com/cloudhsm/latest/userguide/">AWS CloudHSM User Guide</a>, and the <a href="https://docs.aws.amazon.com/cloudhsm/latest/APIReference/">AWS CloudHSM API Reference</a>. Retrieves the identifiers of all of the HSMs provisioned for the current customer. This operation supports pagination with the use of the <code>NextToken</code> member. If more results are available, the <code>NextToken</code> member of the response contains a token that you pass in the next call to <code>ListHsms</code> to retrieve the next set of items.

        :param self:
        :param NextToken:  The <code>NextToken</code> value from a previous call to <code>ListHsms</code>. Pass null if this is the first call.<br/>
        :return: NextToken:  If not null, more results are available. Pass this value to <code>ListHsms</code> to retrieve the next set of items.<br/>HsmList:  The list of ARNs that identify the HSMs.<br/>        """
        pass

    def list_luna_clients(self, NextToken: str=None) -> ListLunaClientsResponse:
        r"""This is documentation for <b>AWS CloudHSM Classic</b>. For more information, see <a href="http://aws.amazon.com/cloudhsm/faqs-classic/">AWS CloudHSM Classic FAQs</a>, the <a href="https://docs.aws.amazon.com/cloudhsm/classic/userguide/">AWS CloudHSM Classic User Guide</a>, and the <a href="https://docs.aws.amazon.com/cloudhsm/classic/APIReference/">AWS CloudHSM Classic API Reference</a>.  <b>For information about the current version of AWS CloudHSM</b>, see <a href="http://aws.amazon.com/cloudhsm/">AWS CloudHSM</a>, the <a href="https://docs.aws.amazon.com/cloudhsm/latest/userguide/">AWS CloudHSM User Guide</a>, and the <a href="https://docs.aws.amazon.com/cloudhsm/latest/APIReference/">AWS CloudHSM API Reference</a>. Lists all of the clients. This operation supports pagination with the use of the <code>NextToken</code> member. If more results are available, the <code>NextToken</code> member of the response contains a token that you pass in the next call to <code>ListLunaClients</code> to retrieve the next set of items.

        :param self:
        :param NextToken:  The <code>NextToken</code> value from a previous call to <code>ListLunaClients</code>. Pass null if this is the first call.<br/>
        :return: NextToken:  If not null, more results are available. Pass this to <code>ListLunaClients</code> to retrieve the next set of items.<br/>ClientList:  The list of clients.<br/>        """
        pass

    def list_tags_for_resource(self, ResourceArn: str) -> ListTagsForResourceResponse:
        r"""This is documentation for <b>AWS CloudHSM Classic</b>. For more information, see <a href="http://aws.amazon.com/cloudhsm/faqs-classic/">AWS CloudHSM Classic FAQs</a>, the <a href="https://docs.aws.amazon.com/cloudhsm/classic/userguide/">AWS CloudHSM Classic User Guide</a>, and the <a href="https://docs.aws.amazon.com/cloudhsm/classic/APIReference/">AWS CloudHSM Classic API Reference</a>.  <b>For information about the current version of AWS CloudHSM</b>, see <a href="http://aws.amazon.com/cloudhsm/">AWS CloudHSM</a>, the <a href="https://docs.aws.amazon.com/cloudhsm/latest/userguide/">AWS CloudHSM User Guide</a>, and the <a href="https://docs.aws.amazon.com/cloudhsm/latest/APIReference/">AWS CloudHSM API Reference</a>. Returns a list of all tags for the specified AWS CloudHSM resource.

        :param self:
        :param ResourceArn:  The Amazon Resource Name (ARN) of the AWS CloudHSM resource.<br/>
        :return: TagList:  One or more tags.<br/>        """
        pass

    def modify_hapg(self, HapgArn: str, Label: str=None, PartitionSerialList: List[PartitionSerial]=None) -> ModifyHapgResponse:
        r"""This is documentation for <b>AWS CloudHSM Classic</b>. For more information, see <a href="http://aws.amazon.com/cloudhsm/faqs-classic/">AWS CloudHSM Classic FAQs</a>, the <a href="https://docs.aws.amazon.com/cloudhsm/classic/userguide/">AWS CloudHSM Classic User Guide</a>, and the <a href="https://docs.aws.amazon.com/cloudhsm/classic/APIReference/">AWS CloudHSM Classic API Reference</a>.  <b>For information about the current version of AWS CloudHSM</b>, see <a href="http://aws.amazon.com/cloudhsm/">AWS CloudHSM</a>, the <a href="https://docs.aws.amazon.com/cloudhsm/latest/userguide/">AWS CloudHSM User Guide</a>, and the <a href="https://docs.aws.amazon.com/cloudhsm/latest/APIReference/">AWS CloudHSM API Reference</a>. Modifies an existing high-availability partition group.

        :param self:
        :param PartitionSerialList:  The list of partition serial numbers to make members of the high-availability partition group.<br/>Label:  The new label for the high-availability partition group.<br/>HapgArn:  The ARN of the high-availability partition group to modify.<br/>
        :return: HapgArn:  The ARN of the high-availability partition group.<br/>        """
        pass

    def modify_hsm(self, HsmArn: str, SubnetId: str=None, EniIp: str=None, IamRoleArn: str=None, ExternalId: str=None, SyslogIp: str=None) -> ModifyHsmResponse:
        r"""This is documentation for <b>AWS CloudHSM Classic</b>. For more information, see <a href="http://aws.amazon.com/cloudhsm/faqs-classic/">AWS CloudHSM Classic FAQs</a>, the <a href="https://docs.aws.amazon.com/cloudhsm/classic/userguide/">AWS CloudHSM Classic User Guide</a>, and the <a href="https://docs.aws.amazon.com/cloudhsm/classic/APIReference/">AWS CloudHSM Classic API Reference</a>.  <b>For information about the current version of AWS CloudHSM</b>, see <a href="http://aws.amazon.com/cloudhsm/">AWS CloudHSM</a>, the <a href="https://docs.aws.amazon.com/cloudhsm/latest/userguide/">AWS CloudHSM User Guide</a>, and the <a href="https://docs.aws.amazon.com/cloudhsm/latest/APIReference/">AWS CloudHSM API Reference</a>. Modifies an HSM. <important> This operation can result in the HSM being offline for up to 15 minutes while the AWS CloudHSM service is reconfigured. If you are modifying a production HSM, you should ensure that your AWS CloudHSM service is configured for high availability, and consider executing this operation during a maintenance window. </important>

        :param self:
        :param SyslogIp:  The new IP address for the syslog monitoring server. The AWS CloudHSM service only supports one syslog monitoring server.<br/>ExternalId:  The new external ID.<br/>IamRoleArn:  The new IAM role ARN.<br/>EniIp:  The new IP address for the elastic network interface (ENI) attached to the HSM. If the HSM is moved to a different subnet, and an IP address is not specified, an IP address will be randomly chosen from the CIDR range of the new subnet.<br/>SubnetId:  The new identifier of the subnet that the HSM is in. The new subnet must be in the same Availability Zone as the current subnet.<br/>HsmArn:  The ARN of the HSM to modify.<br/>
        :return: HsmArn:  The ARN of the HSM.<br/>        """
        pass

    def modify_luna_client(self, Certificate: str, ClientArn: str) -> ModifyLunaClientResponse:
        r"""This is documentation for <b>AWS CloudHSM Classic</b>. For more information, see <a href="http://aws.amazon.com/cloudhsm/faqs-classic/">AWS CloudHSM Classic FAQs</a>, the <a href="https://docs.aws.amazon.com/cloudhsm/classic/userguide/">AWS CloudHSM Classic User Guide</a>, and the <a href="https://docs.aws.amazon.com/cloudhsm/classic/APIReference/">AWS CloudHSM Classic API Reference</a>.  <b>For information about the current version of AWS CloudHSM</b>, see <a href="http://aws.amazon.com/cloudhsm/">AWS CloudHSM</a>, the <a href="https://docs.aws.amazon.com/cloudhsm/latest/userguide/">AWS CloudHSM User Guide</a>, and the <a href="https://docs.aws.amazon.com/cloudhsm/latest/APIReference/">AWS CloudHSM API Reference</a>. Modifies the certificate used by the client. This action can potentially start a workflow to install the new certificate on the client's HSMs.

        :param self:
        :param Certificate:  The new certificate for the client.<br/>ClientArn:  The ARN of the client.<br/>
        :return: ClientArn:  The ARN of the client.<br/>        """
        pass

    def remove_tags_from_resource(self, TagKeyList: List[TagKey], ResourceArn: str) -> RemoveTagsFromResourceResponse:
        r"""This is documentation for <b>AWS CloudHSM Classic</b>. For more information, see <a href="http://aws.amazon.com/cloudhsm/faqs-classic/">AWS CloudHSM Classic FAQs</a>, the <a href="https://docs.aws.amazon.com/cloudhsm/classic/userguide/">AWS CloudHSM Classic User Guide</a>, and the <a href="https://docs.aws.amazon.com/cloudhsm/classic/APIReference/">AWS CloudHSM Classic API Reference</a>.  <b>For information about the current version of AWS CloudHSM</b>, see <a href="http://aws.amazon.com/cloudhsm/">AWS CloudHSM</a>, the <a href="https://docs.aws.amazon.com/cloudhsm/latest/userguide/">AWS CloudHSM User Guide</a>, and the <a href="https://docs.aws.amazon.com/cloudhsm/latest/APIReference/">AWS CloudHSM API Reference</a>. Removes one or more tags from the specified AWS CloudHSM resource. To remove a tag, specify only the tag key to remove (not the value). To overwrite the value for an existing tag, use <a>AddTagsToResource</a>.

        :param self:
        :param TagKeyList:  The tag key or keys to remove. Specify only the tag key to remove (not the value). To overwrite the value for an existing tag, use <a>AddTagsToResource</a>.<br/>ResourceArn:  The Amazon Resource Name (ARN) of the AWS CloudHSM resource.<br/>
        :return: Status:  The status of the operation.<br/>        """
        pass





class CloudHSMV2(BaseClient):
    r"""For more information about AWS CloudHSM, see <a href="http://aws.amazon.com/cloudhsm/">AWS CloudHSM</a> and the <a href="https://docs.aws.amazon.com/cloudhsm/latest/userguide/">AWS CloudHSM User Guide</a>."""


    class DescribeBackupsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_backups` for valid parameters"""
            pass
    class DescribeClustersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_clusters` for valid parameters"""
            pass
    class ListTagsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_tags` for valid parameters"""
            pass


    class CopyBackupToRegionRequest(Mapping):
        pass
    
    class CopyBackupToRegionResponse(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class CreateClusterRequest(Mapping):
        pass
    
    class CreateClusterResponse(Mapping):
        pass
    
    class BackupRetentionPolicy(Mapping):
        pass
    
    class SubnetId(object):
        pass
    
    class CreateHsmRequest(Mapping):
        pass
    
    class CreateHsmResponse(Mapping):
        pass
    
    class DeleteBackupRequest(Mapping):
        pass
    
    class DeleteBackupResponse(Mapping):
        pass
    
    class DeleteClusterRequest(Mapping):
        pass
    
    class DeleteClusterResponse(Mapping):
        pass
    
    class DeleteHsmRequest(Mapping):
        pass
    
    class DeleteHsmResponse(Mapping):
        pass
    
    class DescribeBackupsRequest(Mapping):
        pass
    
    class DescribeBackupsResponse(Mapping):
        pass
    
    class Filters(object):
        pass
    
    class Boolean(object):
        pass
    
    class DescribeClustersRequest(Mapping):
        pass
    
    class DescribeClustersResponse(Mapping):
        pass
    
    class InitializeClusterRequest(Mapping):
        pass
    
    class InitializeClusterResponse(Mapping):
        pass
    
    class ListTagsRequest(Mapping):
        pass
    
    class ListTagsResponse(Mapping):
        pass
    
    class ModifyBackupAttributesRequest(Mapping):
        pass
    
    class ModifyBackupAttributesResponse(Mapping):
        pass
    
    class ModifyClusterRequest(Mapping):
        pass
    
    class ModifyClusterResponse(Mapping):
        pass
    
    class RestoreBackupRequest(Mapping):
        pass
    
    class RestoreBackupResponse(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    def copy_backup_to_region(self, BackupId: str, DestinationRegion: str, TagList: List[Tag]=None) -> CopyBackupToRegionResponse:
        r"""Copy an AWS CloudHSM cluster backup to a different region.

        :param self:
        :param TagList:  Tags to apply to the destination backup during creation. If you specify tags, only these tags will be applied to the destination backup. If you do not specify tags, the service copies tags from the source backup to the destination backup.<br/>BackupId:  The ID of the backup that will be copied to the destination region. <br/>DestinationRegion:  The AWS region that will contain your copied CloudHSM cluster backup.<br/>
        :return: DestinationBackup:  Information on the backup that will be copied to the destination region, including CreateTimestamp, SourceBackup, SourceCluster, and Source Region. CreateTimestamp of the destination backup will be the same as that of the source backup. You will need to use the <code>sourceBackupID</code> returned in this operation to use the <a>DescribeBackups</a> operation on the backup that will be copied to the destination region.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceCluster</i> The identifier (ID) of the cluster containing the source backup from which the new backup was copied.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceBackup</i> The identifier (ID) of the source backup from which the new backup was copied.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceRegion</i> The AWS region that contains the source backup from which the new backup was copied.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreateTimestamp</i> The date and time when both the source backup was created.<br/>        """
        pass

    def create_cluster(self, SubnetIds: List[SubnetId], HsmType: str, BackupRetentionPolicy: BackupRetentionPolicy=None, SourceBackupId: str=None, TagList: List[Tag]=None) -> CreateClusterResponse:
        r"""Creates a new AWS CloudHSM cluster.

        :param self:
        :param TagList:  Tags to apply to the CloudHSM cluster during creation.<br/>SubnetIds:  The identifiers (IDs) of the subnets where you are creating the cluster. You must specify at least one subnet. If you specify multiple subnets, they must meet the following criteria: <ul> <li> All subnets must be in the same virtual private cloud (VPC). </li> <li> You can specify only one subnet per Availability Zone. </li> </ul><br/>SourceBackupId:  The identifier (ID) of the cluster backup to restore. Use this value to restore the cluster from a backup instead of creating a new cluster. To find the backup ID, use <a>DescribeBackups</a>.<br/>HsmType:  The type of HSM to use in the cluster. Currently the only allowed value is <code>hsm1.medium</code>.<br/>BackupRetentionPolicy:  A policy that defines how the service retains backups.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Value</i> Use a value between 7 - 379.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of backup retention policy. For the <code>DAYS</code> type, the value is the number of days to retain backups.<br/>
        :return: Cluster:  Information about the cluster that was created.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TagList</i> The list of tags for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Certificates</i> Contains one or more certificates or a certificate signing request (CSR).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Certificates</b>: Contains one or more certificates or a certificate signing request (CSR).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The identifier (ID) of the virtual private cloud (VPC) that contains the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetMapping</i> A map from availability zone to the cluster’s subnet in that availability zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StateMessage</i> A description of the cluster's state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The cluster's state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceBackupId</i> The identifier (ID) of the backup used to create the cluster. This value exists only when the cluster was created from a backup.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroup</i> The identifier (ID) of the cluster's security group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreCoPassword</i> The default password for the cluster's Pre-Crypto Officer (PRECO) user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HsmType</i> The type of HSM that the cluster contains.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Hsms</i> Contains information about the HSMs in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreateTimestamp</i> The date and time when the cluster was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterId</i> The cluster's identifier (ID).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupRetentionPolicy</i> A policy that defines how the service retains backups.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>BackupRetentionPolicy</b>: A policy that defines how the service retains backups.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupPolicy</i> The cluster's backup policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Value</i> Use a value between 7 - 379.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of backup retention policy. For the <code>DAYS</code> type, the value is the number of days to retain backups.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterCertificate</i> The cluster certificate issued (signed) by the issuing certificate authority (CA) of the cluster's owner.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ManufacturerHardwareCertificate</i> The HSM hardware certificate issued (signed) by the hardware manufacturer.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AwsHardwareCertificate</i> The HSM hardware certificate issued (signed) by AWS CloudHSM.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HsmCertificate</i> The HSM certificate issued (signed) by the HSM hardware.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterCsr</i> The cluster's certificate signing request (CSR). The CSR exists only when the cluster's state is <code>UNINITIALIZED</code>.<br/>        """
        pass

    def create_hsm(self, AvailabilityZone: str, ClusterId: str, IpAddress: str=None) -> CreateHsmResponse:
        r"""Creates a new hardware security module (HSM) in the specified AWS CloudHSM cluster.

        :param self:
        :param IpAddress:  The HSM's IP address. If you specify an IP address, use an available address from the subnet that maps to the Availability Zone where you are creating the HSM. If you don't specify an IP address, one is chosen for you from that subnet.<br/>AvailabilityZone:  The Availability Zone where you are creating the HSM. To find the cluster's Availability Zones, use <a>DescribeClusters</a>.<br/>ClusterId:  The identifier (ID) of the HSM's cluster. To find the cluster ID, use <a>DescribeClusters</a>.<br/>
        :return: Hsm:  Information about the HSM that was created.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StateMessage</i> A description of the HSM's state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The HSM's state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HsmId</i> The HSM's identifier (ID).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EniIp</i> The IP address of the HSM's elastic network interface (ENI).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EniId</i> The identifier (ID) of the HSM's elastic network interface (ENI).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetId</i> The subnet that contains the HSM's elastic network interface (ENI).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterId</i> The identifier (ID) of the cluster that contains the HSM.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZone</i> The Availability Zone that contains the HSM.<br/>        """
        pass

    def delete_backup(self, BackupId: str) -> DeleteBackupResponse:
        r"""Deletes a specified AWS CloudHSM backup. A backup can be restored up to 7 days after the DeleteBackup request is made. For more information on restoring a backup, see <a>RestoreBackup</a>.

        :param self:
        :param BackupId:  The ID of the backup to be deleted. To find the ID of a backup, use the <a>DescribeBackups</a> operation.<br/>
        :return: Backup:  Information on the <code>Backup</code> object deleted.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TagList</i> The list of tags for the backup.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeleteTimestamp</i> The date and time when the backup will be permanently deleted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceCluster</i> The identifier (ID) of the cluster containing the source backup from which the new backup was copied.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceBackup</i> The identifier (ID) of the source backup from which the new backup was copied.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceRegion</i> The AWS Region that contains the source backup from which the new backup was copied.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NeverExpires</i> Specifies whether the service should exempt a backup from the retention policy for the cluster. <code>True</code> exempts a backup from the retention policy. <code>False</code> means the service applies the backup retention policy defined at the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CopyTimestamp</i> The date and time when the backup was copied from a source backup.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreateTimestamp</i> The date and time when the backup was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterId</i> The identifier (ID) of the cluster that was backed up.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupState</i> The state of the backup.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupId</i> The identifier (ID) of the backup.<br/>        """
        pass

    def delete_cluster(self, ClusterId: str) -> DeleteClusterResponse:
        r"""Deletes the specified AWS CloudHSM cluster. Before you can delete a cluster, you must delete all HSMs in the cluster. To see if the cluster contains any HSMs, use <a>DescribeClusters</a>. To delete an HSM, use <a>DeleteHsm</a>.

        :param self:
        :param ClusterId:  The identifier (ID) of the cluster that you are deleting. To find the cluster ID, use <a>DescribeClusters</a>.<br/>
        :return: Cluster:  Information about the cluster that was deleted.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TagList</i> The list of tags for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Certificates</i> Contains one or more certificates or a certificate signing request (CSR).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Certificates</b>: Contains one or more certificates or a certificate signing request (CSR).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The identifier (ID) of the virtual private cloud (VPC) that contains the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetMapping</i> A map from availability zone to the cluster’s subnet in that availability zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StateMessage</i> A description of the cluster's state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The cluster's state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceBackupId</i> The identifier (ID) of the backup used to create the cluster. This value exists only when the cluster was created from a backup.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroup</i> The identifier (ID) of the cluster's security group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreCoPassword</i> The default password for the cluster's Pre-Crypto Officer (PRECO) user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HsmType</i> The type of HSM that the cluster contains.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Hsms</i> Contains information about the HSMs in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreateTimestamp</i> The date and time when the cluster was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterId</i> The cluster's identifier (ID).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupRetentionPolicy</i> A policy that defines how the service retains backups.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>BackupRetentionPolicy</b>: A policy that defines how the service retains backups.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupPolicy</i> The cluster's backup policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Value</i> Use a value between 7 - 379.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of backup retention policy. For the <code>DAYS</code> type, the value is the number of days to retain backups.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterCertificate</i> The cluster certificate issued (signed) by the issuing certificate authority (CA) of the cluster's owner.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ManufacturerHardwareCertificate</i> The HSM hardware certificate issued (signed) by the hardware manufacturer.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AwsHardwareCertificate</i> The HSM hardware certificate issued (signed) by AWS CloudHSM.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HsmCertificate</i> The HSM certificate issued (signed) by the HSM hardware.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterCsr</i> The cluster's certificate signing request (CSR). The CSR exists only when the cluster's state is <code>UNINITIALIZED</code>.<br/>        """
        pass

    def delete_hsm(self, ClusterId: str, HsmId: str=None, EniId: str=None, EniIp: str=None) -> DeleteHsmResponse:
        r"""Deletes the specified HSM. To specify an HSM, you can use its identifier (ID), the IP address of the HSM's elastic network interface (ENI), or the ID of the HSM's ENI. You need to specify only one of these values. To find these values, use <a>DescribeClusters</a>.

        :param self:
        :param EniIp:  The IP address of the elastic network interface (ENI) of the HSM that you are deleting.<br/>EniId:  The identifier (ID) of the elastic network interface (ENI) of the HSM that you are deleting.<br/>HsmId:  The identifier (ID) of the HSM that you are deleting.<br/>ClusterId:  The identifier (ID) of the cluster that contains the HSM that you are deleting.<br/>
        :return: HsmId:  The identifier (ID) of the HSM that was deleted.<br/>        """
        pass

    def describe_backups(self, NextToken: str=None, MaxResults: int=None, Filters: Filters=None, SortAscending: Boolean=None) -> DescribeBackupsResponse:
        r"""Gets information about backups of AWS CloudHSM clusters. This is a paginated operation, which means that each response might contain only a subset of all the backups. When the response contains only a subset of backups, it includes a <code>NextToken</code> value. Use this value in a subsequent <code>DescribeBackups</code> request to get more backups. When you receive a response with no <code>NextToken</code> (or an empty or null value), that means there are no more backups to get.

        :param self:
        :param SortAscending:  Designates whether or not to sort the return backups by ascending chronological order of generation.<br/>Filters:  One or more filters to limit the items returned in the response. Use the <code>backupIds</code> filter to return only the specified backups. Specify backups by their backup identifier (ID). Use the <code>sourceBackupIds</code> filter to return only the backups created from a source backup. The <code>sourceBackupID</code> of a source backup is returned by the <a>CopyBackupToRegion</a> operation. Use the <code>clusterIds</code> filter to return only the backups for the specified clusters. Specify clusters by their cluster identifier (ID). Use the <code>states</code> filter to return only backups that match the specified state. Use the <code>neverExpires</code> filter to return backups filtered by the value in the <code>neverExpires</code> parameter. <code>True</code> returns all backups exempt from the backup retention policy. <code>False</code> returns all backups with a backup retention policy defined at the cluster.<br/>MaxResults:  The maximum number of backups to return in the response. When there are more backups than the number you specify, the response contains a <code>NextToken</code> value.<br/>NextToken:  The <code>NextToken</code> value that you received in the previous response. Use this value to get more backups.<br/>
        :return: NextToken:  An opaque string that indicates that the response contains only a subset of backups. Use this value in a subsequent <code>DescribeBackups</code> request to get more backups.<br/>Backups:  A list of backups.<br/>        """
        pass

    def describe_clusters(self, Filters: Filters=None, NextToken: str=None, MaxResults: int=None) -> DescribeClustersResponse:
        r"""Gets information about AWS CloudHSM clusters. This is a paginated operation, which means that each response might contain only a subset of all the clusters. When the response contains only a subset of clusters, it includes a <code>NextToken</code> value. Use this value in a subsequent <code>DescribeClusters</code> request to get more clusters. When you receive a response with no <code>NextToken</code> (or an empty or null value), that means there are no more clusters to get.

        :param self:
        :param MaxResults:  The maximum number of clusters to return in the response. When there are more clusters than the number you specify, the response contains a <code>NextToken</code> value.<br/>NextToken:  The <code>NextToken</code> value that you received in the previous response. Use this value to get more clusters.<br/>Filters:  One or more filters to limit the items returned in the response. Use the <code>clusterIds</code> filter to return only the specified clusters. Specify clusters by their cluster identifier (ID). Use the <code>vpcIds</code> filter to return only the clusters in the specified virtual private clouds (VPCs). Specify VPCs by their VPC identifier (ID). Use the <code>states</code> filter to return only clusters that match the specified state.<br/>
        :return: NextToken:  An opaque string that indicates that the response contains only a subset of clusters. Use this value in a subsequent <code>DescribeClusters</code> request to get more clusters.<br/>Clusters:  A list of clusters.<br/>        """
        pass

    def initialize_cluster(self, TrustAnchor: str, SignedCert: str, ClusterId: str) -> InitializeClusterResponse:
        r"""Claims an AWS CloudHSM cluster by submitting the cluster certificate issued by your issuing certificate authority (CA) and the CA's root certificate. Before you can claim a cluster, you must sign the cluster's certificate signing request (CSR) with your issuing CA. To get the cluster's CSR, use <a>DescribeClusters</a>.

        :param self:
        :param TrustAnchor:  The issuing certificate of the issuing certificate authority (CA) that issued (signed) the cluster certificate. You must use a self-signed certificate. The certificate used to sign the HSM CSR must be directly available, and thus must be the root certificate. The certificate must be in PEM format and can contain a maximum of 5000 characters.<br/>SignedCert:  The cluster certificate issued (signed) by your issuing certificate authority (CA). The certificate must be in PEM format and can contain a maximum of 5000 characters.<br/>ClusterId:  The identifier (ID) of the cluster that you are claiming. To find the cluster ID, use <a>DescribeClusters</a>.<br/>
        :return: StateMessage:  A description of the cluster's state.<br/>State:  The cluster's state.<br/>        """
        pass

    def list_tags(self, ResourceId: str, NextToken: str=None, MaxResults: int=None) -> ListTagsResponse:
        r"""Gets a list of tags for the specified AWS CloudHSM cluster. This is a paginated operation, which means that each response might contain only a subset of all the tags. When the response contains only a subset of tags, it includes a <code>NextToken</code> value. Use this value in a subsequent <code>ListTags</code> request to get more tags. When you receive a response with no <code>NextToken</code> (or an empty or null value), that means there are no more tags to get.

        :param self:
        :param MaxResults:  The maximum number of tags to return in the response. When there are more tags than the number you specify, the response contains a <code>NextToken</code> value.<br/>NextToken:  The <code>NextToken</code> value that you received in the previous response. Use this value to get more tags.<br/>ResourceId:  The cluster identifier (ID) for the cluster whose tags you are getting. To find the cluster ID, use <a>DescribeClusters</a>.<br/>
        :return: NextToken:  An opaque string that indicates that the response contains only a subset of tags. Use this value in a subsequent <code>ListTags</code> request to get more tags.<br/>TagList:  A list of tags.<br/>        """
        pass

    def modify_backup_attributes(self, NeverExpires: Boolean, BackupId: str) -> ModifyBackupAttributesResponse:
        r"""Modifies attributes for AWS CloudHSM backup.

        :param self:
        :param NeverExpires:  Specifies whether the service should exempt a backup from the retention policy for the cluster. <code>True</code> exempts a backup from the retention policy. <code>False</code> means the service applies the backup retention policy defined at the cluster.<br/>BackupId:  The identifier (ID) of the backup to modify. To find the ID of a backup, use the <a>DescribeBackups</a> operation.<br/>
        :return: Backup:  Contains information about a backup of an AWS CloudHSM cluster. All backup objects contain the <code>BackupId</code>, <code>BackupState</code>, <code>ClusterId</code>, and <code>CreateTimestamp</code> parameters. Backups that were copied into a destination region additionally contain the <code>CopyTimestamp</code>, <code>SourceBackup</code>, <code>SourceCluster</code>, and <code>SourceRegion</code> parameters. A backup that is pending deletion will include the <code>DeleteTimestamp</code> parameter.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TagList</i> The list of tags for the backup.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeleteTimestamp</i> The date and time when the backup will be permanently deleted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceCluster</i> The identifier (ID) of the cluster containing the source backup from which the new backup was copied.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceBackup</i> The identifier (ID) of the source backup from which the new backup was copied.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceRegion</i> The AWS Region that contains the source backup from which the new backup was copied.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NeverExpires</i> Specifies whether the service should exempt a backup from the retention policy for the cluster. <code>True</code> exempts a backup from the retention policy. <code>False</code> means the service applies the backup retention policy defined at the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CopyTimestamp</i> The date and time when the backup was copied from a source backup.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreateTimestamp</i> The date and time when the backup was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterId</i> The identifier (ID) of the cluster that was backed up.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupState</i> The state of the backup.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupId</i> The identifier (ID) of the backup.<br/>        """
        pass

    def modify_cluster(self, ClusterId: str, BackupRetentionPolicy: BackupRetentionPolicy) -> ModifyClusterResponse:
        r"""Modifies AWS CloudHSM cluster.

        :param self:
        :param ClusterId:  The identifier (ID) of the cluster that you want to modify. To find the cluster ID, use <a>DescribeClusters</a>.<br/>BackupRetentionPolicy:  A policy that defines how the service retains backups.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Value</i> Use a value between 7 - 379.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of backup retention policy. For the <code>DAYS</code> type, the value is the number of days to retain backups.<br/>
        :return: Cluster:  Contains information about an AWS CloudHSM cluster.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TagList</i> The list of tags for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Certificates</i> Contains one or more certificates or a certificate signing request (CSR).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Certificates</b>: Contains one or more certificates or a certificate signing request (CSR).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The identifier (ID) of the virtual private cloud (VPC) that contains the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetMapping</i> A map from availability zone to the cluster’s subnet in that availability zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StateMessage</i> A description of the cluster's state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The cluster's state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceBackupId</i> The identifier (ID) of the backup used to create the cluster. This value exists only when the cluster was created from a backup.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroup</i> The identifier (ID) of the cluster's security group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreCoPassword</i> The default password for the cluster's Pre-Crypto Officer (PRECO) user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HsmType</i> The type of HSM that the cluster contains.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Hsms</i> Contains information about the HSMs in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreateTimestamp</i> The date and time when the cluster was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterId</i> The cluster's identifier (ID).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupRetentionPolicy</i> A policy that defines how the service retains backups.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>BackupRetentionPolicy</b>: A policy that defines how the service retains backups.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupPolicy</i> The cluster's backup policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Value</i> Use a value between 7 - 379.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of backup retention policy. For the <code>DAYS</code> type, the value is the number of days to retain backups.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterCertificate</i> The cluster certificate issued (signed) by the issuing certificate authority (CA) of the cluster's owner.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ManufacturerHardwareCertificate</i> The HSM hardware certificate issued (signed) by the hardware manufacturer.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AwsHardwareCertificate</i> The HSM hardware certificate issued (signed) by AWS CloudHSM.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HsmCertificate</i> The HSM certificate issued (signed) by the HSM hardware.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterCsr</i> The cluster's certificate signing request (CSR). The CSR exists only when the cluster's state is <code>UNINITIALIZED</code>.<br/>        """
        pass

    def restore_backup(self, BackupId: str) -> RestoreBackupResponse:
        r"""Restores a specified AWS CloudHSM backup that is in the <code>PENDING_DELETION</code> state. For mor information on deleting a backup, see <a>DeleteBackup</a>.

        :param self:
        :param BackupId:  The ID of the backup to be restored. To find the ID of a backup, use the <a>DescribeBackups</a> operation.<br/>
        :return: Backup:  Information on the <code>Backup</code> object created.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TagList</i> The list of tags for the backup.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeleteTimestamp</i> The date and time when the backup will be permanently deleted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceCluster</i> The identifier (ID) of the cluster containing the source backup from which the new backup was copied.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceBackup</i> The identifier (ID) of the source backup from which the new backup was copied.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceRegion</i> The AWS Region that contains the source backup from which the new backup was copied.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NeverExpires</i> Specifies whether the service should exempt a backup from the retention policy for the cluster. <code>True</code> exempts a backup from the retention policy. <code>False</code> means the service applies the backup retention policy defined at the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CopyTimestamp</i> The date and time when the backup was copied from a source backup.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreateTimestamp</i> The date and time when the backup was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterId</i> The identifier (ID) of the cluster that was backed up.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupState</i> The state of the backup.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupId</i> The identifier (ID) of the backup.<br/>        """
        pass

    def tag_resource(self, TagList: List[Tag], ResourceId: str) -> TagResourceResponse:
        r"""Adds or overwrites one or more tags for the specified AWS CloudHSM cluster.

        :param self:
        :param TagList:  A list of one or more tags.<br/>ResourceId:  The cluster identifier (ID) for the cluster that you are tagging. To find the cluster ID, use <a>DescribeClusters</a>.<br/>
        :return:         """
        pass

    def untag_resource(self, TagKeyList: List[TagKey], ResourceId: str) -> UntagResourceResponse:
        r"""Removes the specified tag or tags from the specified AWS CloudHSM cluster.

        :param self:
        :param TagKeyList:  A list of one or more tag keys for the tags that you are removing. Specify only the tag keys, not the tag values.<br/>ResourceId:  The cluster identifier (ID) for the cluster whose tags you are removing. To find the cluster ID, use <a>DescribeClusters</a>.<br/>
        :return:         """
        pass





class CloudSearch(BaseClient):
    r"""<fullname>Amazon CloudSearch Configuration Service</fullname> You use the Amazon CloudSearch configuration service to create, configure, and manage search domains. Configuration service requests are submitted using the AWS Query protocol. AWS Query requests are HTTP or HTTPS requests submitted via HTTP GET or POST with a query parameter named Action. The endpoint for configuration service requests is region-specific: cloudsearch.<i>region</i>.amazonaws.com. For example, cloudsearch.us-east-1.amazonaws.com. For a current list of supported regions and endpoints, see <a href="http://docs.aws.amazon.com/general/latest/gr/rande.html#cloudsearch_region" target="_blank">Regions and Endpoints</a>."""




    class BuildSuggestersRequest(Mapping):
        pass
    
    class BuildSuggestersResponse(Mapping):
        pass
    
    class CreateDomainRequest(Mapping):
        pass
    
    class CreateDomainResponse(Mapping):
        pass
    
    class DefineAnalysisSchemeRequest(Mapping):
        pass
    
    class DefineAnalysisSchemeResponse(Mapping):
        pass
    
    class AnalysisScheme(Mapping):
        pass
    
    class DefineExpressionRequest(Mapping):
        pass
    
    class DefineExpressionResponse(Mapping):
        pass
    
    class Expression(Mapping):
        pass
    
    class DefineIndexFieldRequest(Mapping):
        pass
    
    class DefineIndexFieldResponse(Mapping):
        pass
    
    class IndexField(Mapping):
        pass
    
    class DefineSuggesterRequest(Mapping):
        pass
    
    class DefineSuggesterResponse(Mapping):
        pass
    
    class Suggester(Mapping):
        pass
    
    class DeleteAnalysisSchemeRequest(Mapping):
        pass
    
    class DeleteAnalysisSchemeResponse(Mapping):
        pass
    
    class DeleteDomainRequest(Mapping):
        pass
    
    class DeleteDomainResponse(Mapping):
        pass
    
    class DeleteExpressionRequest(Mapping):
        pass
    
    class DeleteExpressionResponse(Mapping):
        pass
    
    class DeleteIndexFieldRequest(Mapping):
        pass
    
    class DeleteIndexFieldResponse(Mapping):
        pass
    
    class DeleteSuggesterRequest(Mapping):
        pass
    
    class DeleteSuggesterResponse(Mapping):
        pass
    
    class DescribeAnalysisSchemesRequest(Mapping):
        pass
    
    class DescribeAnalysisSchemesResponse(Mapping):
        pass
    
    class StandardName(object):
        pass
    
    class Boolean(object):
        pass
    
    class DescribeAvailabilityOptionsRequest(Mapping):
        pass
    
    class DescribeAvailabilityOptionsResponse(Mapping):
        pass
    
    class DescribeDomainEndpointOptionsRequest(Mapping):
        pass
    
    class DescribeDomainEndpointOptionsResponse(Mapping):
        pass
    
    class DescribeDomainsRequest(Mapping):
        pass
    
    class DescribeDomainsResponse(Mapping):
        pass
    
    class DomainName(object):
        pass
    
    class DescribeExpressionsRequest(Mapping):
        pass
    
    class DescribeExpressionsResponse(Mapping):
        pass
    
    class DescribeIndexFieldsRequest(Mapping):
        pass
    
    class DescribeIndexFieldsResponse(Mapping):
        pass
    
    class DynamicFieldName(object):
        pass
    
    class DescribeScalingParametersRequest(Mapping):
        pass
    
    class DescribeScalingParametersResponse(Mapping):
        pass
    
    class DescribeServiceAccessPoliciesRequest(Mapping):
        pass
    
    class DescribeServiceAccessPoliciesResponse(Mapping):
        pass
    
    class DescribeSuggestersRequest(Mapping):
        pass
    
    class DescribeSuggestersResponse(Mapping):
        pass
    
    class IndexDocumentsRequest(Mapping):
        pass
    
    class IndexDocumentsResponse(Mapping):
        pass
    
    class ListDomainNamesResponse(Mapping):
        pass
    
    class UpdateAvailabilityOptionsRequest(Mapping):
        pass
    
    class UpdateAvailabilityOptionsResponse(Mapping):
        pass
    
    class UpdateDomainEndpointOptionsRequest(Mapping):
        pass
    
    class UpdateDomainEndpointOptionsResponse(Mapping):
        pass
    
    class DomainEndpointOptions(Mapping):
        pass
    
    class UpdateScalingParametersRequest(Mapping):
        pass
    
    class UpdateScalingParametersResponse(Mapping):
        pass
    
    class ScalingParameters(Mapping):
        pass
    
    class UpdateServiceAccessPoliciesRequest(Mapping):
        pass
    
    class UpdateServiceAccessPoliciesResponse(Mapping):
        pass
    
    def build_suggesters(self, DomainName: str) -> BuildSuggestersResponse:
        r"""Indexes the search suggestions. For more information, see <a href="http://docs.aws.amazon.com/cloudsearch/latest/developerguide/getting-suggestions.html#configuring-suggesters">Configuring Suggesters</a> in the <i>Amazon CloudSearch Developer Guide</i>.

        :param self:
        :param DomainName:  A string that represents the name of a domain. Domain names are unique across the domains owned by an account within an AWS region. Domain names start with a letter or number and can contain the following characters: a-z (lowercase), 0-9, and - (hyphen).<br/>
        :return: FieldNames:  A list of field names.<br/>        """
        pass

    def create_domain(self, DomainName: str) -> CreateDomainResponse:
        r"""Creates a new search domain. For more information, see <a href="http://docs.aws.amazon.com/cloudsearch/latest/developerguide/creating-domains.html" target="_blank">Creating a Search Domain</a> in the <i>Amazon CloudSearch Developer Guide</i>.

        :param self:
        :param DomainName:  A name for the domain you are creating. Allowed characters are a-z (lower-case letters), 0-9, and hyphen (-). Domain names must start with a letter or number and be at least 3 and no more than 28 characters long.<br/>
        :return: DomainStatus:  The current status of the search domain.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Limits</i> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Limits</b>: <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SearchInstanceCount</i> The number of search instances that are available to process search requests.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SearchPartitionCount</i> The number of partitions across which the search index is spread.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SearchInstanceType</i> The instance type that is being used to process search requests.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Processing</i> True if processing is being done to activate the current domain configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequiresIndexDocuments</i> True if <a>IndexDocuments</a> needs to be called to activate the current domain configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SearchService</i> The service endpoint for requesting search results from a search domain.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SearchService</b>: The service endpoint for requesting search results from a search domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DocService</i> The service endpoint for updating documents in a search domain.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DocService</b>: The service endpoint for updating documents in a search domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Deleted</i> True if the search domain has been deleted. The system must clean up resources dedicated to the search domain when <a>DeleteDomain</a> is called. Newly deleted search domains are returned from <a>DescribeDomains</a> with a true value for IsDeleted for several minutes until resource cleanup is complete.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Created</i> True if the search domain is created. It can take several minutes to initialize a domain when <a>CreateDomain</a> is called. Newly created search domains are returned from <a>DescribeDomains</a> with a false value for Created until domain creation is complete.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ARN</i> The Amazon Resource Name (ARN) of the search domain. See <a href="http://docs.aws.amazon.com/IAM/latest/UserGuide/index.html?Using_Identifiers.html" target="_blank">Identifiers for IAM Entities</a> in <i>Using AWS Identity and Access Management</i> for more information.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainName</i> A string that represents the name of a domain. Domain names are unique across the domains owned by an account within an AWS region. Domain names start with a letter or number and can contain the following characters: a-z (lowercase), 0-9, and - (hyphen).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainId</i> An internally generated unique identifier for a domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i> The endpoint to which service requests can be submitted. For example, <code>search-imdb-movies-oopcnjfn6ugofer3zx5iadxxca.eu-west-1.cloudsearch.amazonaws.com</code> or <code>doc-imdb-movies-oopcnjfn6ugofer3zx5iadxxca.eu-west-1.cloudsearch.amazonaws.com</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i> The endpoint to which service requests can be submitted. For example, <code>search-imdb-movies-oopcnjfn6ugofer3zx5iadxxca.eu-west-1.cloudsearch.amazonaws.com</code> or <code>doc-imdb-movies-oopcnjfn6ugofer3zx5iadxxca.eu-west-1.cloudsearch.amazonaws.com</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaximumPartitionCount</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaximumReplicationCount</i> <br/>        """
        pass

    def define_analysis_scheme(self, AnalysisScheme: AnalysisScheme, DomainName: str) -> DefineAnalysisSchemeResponse:
        r"""Configures an analysis scheme that can be applied to a <code>text</code> or <code>text-array</code> field to define language-specific text processing options. For more information, see <a href="http://docs.aws.amazon.com/cloudsearch/latest/developerguide/configuring-analysis-schemes.html" target="_blank">Configuring Analysis Schemes</a> in the <i>Amazon CloudSearch Developer Guide</i>.

        :param self:
        :param AnalysisScheme:  Configuration information for an analysis scheme. Each analysis scheme has a unique name and specifies the language of the text to be processed. The following options can be configured for an analysis scheme: <code>Synonyms</code>, <code>Stopwords</code>, <code>StemmingDictionary</code>, <code>JapaneseTokenizationDictionary</code> and <code>AlgorithmicStemming</code>.:<br/>DomainName:  A string that represents the name of a domain. Domain names are unique across the domains owned by an account within an AWS region. Domain names start with a letter or number and can contain the following characters: a-z (lowercase), 0-9, and - (hyphen).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AnalysisOptions</i> Synonyms, stopwords, and stemming options for an analysis scheme. Includes tokenization dictionary for Japanese.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AnalysisOptions</b>: Synonyms, stopwords, and stemming options for an analysis scheme. Includes tokenization dictionary for Japanese.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AnalysisSchemeLanguage</i> An <a href="http://tools.ietf.org/html/rfc4646" target="_blank">IETF RFC 4646</a> language code or <code>mul</code> for multiple languages.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AnalysisSchemeName</i> Names must begin with a letter and can contain the following characters: a-z (lowercase), 0-9, and _ (underscore).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AlgorithmicStemming</i> The level of algorithmic stemming to perform: <code>none</code>, <code>minimal</code>, <code>light</code>, or <code>full</code>. The available levels vary depending on the language. For more information, see <a href="http://docs.aws.amazon.com/cloudsearch/latest/developerguide/text-processing.html#text-processing-settings" target="_blank">Language Specific Text Processing Settings</a> in the <i>Amazon CloudSearch Developer Guide</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>JapaneseTokenizationDictionary</i> A JSON array that contains a collection of terms, tokens, readings and part of speech for Japanese Tokenizaiton. The Japanese tokenization dictionary enables you to override the default tokenization for selected terms. This is only valid for Japanese language fields.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StemmingDictionary</i> A JSON object that contains a collection of string:value pairs that each map a term to its stem. For example, <code>{"term1": "stem1", "term2": "stem2", "term3": "stem3"}</code>. The stemming dictionary is applied in addition to any algorithmic stemming. This enables you to override the results of the algorithmic stemming to correct specific cases of overstemming or understemming. The maximum size of a stemming dictionary is 500 KB.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Stopwords</i> A JSON array of terms to ignore during indexing and searching. For example, <code>["a", "an", "the", "of"]</code>. The stopwords dictionary must explicitly list each word you want to ignore. Wildcards and regular expressions are not supported. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Synonyms</i> A JSON object that defines synonym groups and aliases. A synonym group is an array of arrays, where each sub-array is a group of terms where each term in the group is considered a synonym of every other term in the group. The aliases value is an object that contains a collection of string:value pairs where the string specifies a term and the array of values specifies each of the aliases for that term. An alias is considered a synonym of the specified term, but the term is not considered a synonym of the alias. For more information about specifying synonyms, see <a href="http://docs.aws.amazon.com/cloudsearch/latest/developerguide/configuring-analysis-schemes.html#synonyms">Synonyms</a> in the <i>Amazon CloudSearch Developer Guide</i>.<br/>
        :return: AnalysisScheme:  The status and configuration of an <code>AnalysisScheme</code>.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of domain configuration option.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Status</b>: The status of domain configuration option.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Options</i> Configuration information for an analysis scheme. Each analysis scheme has a unique name and specifies the language of the text to be processed. The following options can be configured for an analysis scheme: <code>Synonyms</code>, <code>Stopwords</code>, <code>StemmingDictionary</code>, <code>JapaneseTokenizationDictionary</code> and <code>AlgorithmicStemming</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Options</b>: Configuration information for an analysis scheme. Each analysis scheme has a unique name and specifies the language of the text to be processed. The following options can be configured for an analysis scheme: <code>Synonyms</code>, <code>Stopwords</code>, <code>StemmingDictionary</code>, <code>JapaneseTokenizationDictionary</code> and <code>AlgorithmicStemming</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AnalysisSchemeLanguage</i> An <a href="http://tools.ietf.org/html/rfc4646" target="_blank">IETF RFC 4646</a> language code or <code>mul</code> for multiple languages.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AnalysisSchemeName</i> Names must begin with a letter and can contain the following characters: a-z (lowercase), 0-9, and _ (underscore).<br/>Synonyms, stopwords, and stemming options for an analysis scheme. Includes tokenization dictionary for Japanese.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AnalysisOptions</b>: Synonyms, stopwords, and stemming options for an analysis scheme. Includes tokenization dictionary for Japanese.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingDeletion</i> Indicates that the option will be deleted once processing is complete.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of processing a change to an option. Possible values:<ul> <li><code>RequiresIndexDocuments</code>: the option's latest value will not be deployed until <a>IndexDocuments</a> has been called and indexing is complete.</li> <li><code>Processing</code>: the option's latest value is in the process of being activated. </li> <li><code>Active</code>: the option's latest value is completely deployed.</li> <li><code>FailedToValidate</code>: the option value is not compatible with the domain's data and cannot be used to index the data. You must either modify the option value or update or remove the incompatible documents.</li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdateVersion</i> A unique integer that indicates when this option was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdateDate</i> A timestamp for when this option was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> A timestamp for when this option was created.<br/>        """
        pass

    def define_expression(self, Expression: Expression, DomainName: str) -> DefineExpressionResponse:
        r"""Configures an <code><a>Expression</a></code> for the search domain. Used to create new expressions and modify existing ones. If the expression exists, the new configuration replaces the old one. For more information, see <a href="http://docs.aws.amazon.com/cloudsearch/latest/developerguide/configuring-expressions.html" target="_blank">Configuring Expressions</a> in the <i>Amazon CloudSearch Developer Guide</i>.

        :param self:
        :param Expression:  A named expression that can be evaluated at search time. Can be used to sort the search results, define other expressions, or return computed information in the search results. :<br/>DomainName:  A string that represents the name of a domain. Domain names are unique across the domains owned by an account within an AWS region. Domain names start with a letter or number and can contain the following characters: a-z (lowercase), 0-9, and - (hyphen).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExpressionValue</i> The expression to evaluate for sorting while processing a search request. The <code>Expression</code> syntax is based on JavaScript expressions. For more information, see <a href="http://docs.aws.amazon.com/cloudsearch/latest/developerguide/configuring-expressions.html" target="_blank">Configuring Expressions</a> in the <i>Amazon CloudSearch Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExpressionName</i> Names must begin with a letter and can contain the following characters: a-z (lowercase), 0-9, and _ (underscore).<br/>
        :return: Expression:  The value of an <code>Expression</code> and its current status.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of domain configuration option.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Status</b>: The status of domain configuration option.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Options</i> The expression that is evaluated for sorting while processing a search request.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Options</b>: The expression that is evaluated for sorting while processing a search request.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ExpressionValue</i> The expression to evaluate for sorting while processing a search request. The <code>Expression</code> syntax is based on JavaScript expressions. For more information, see <a href="http://docs.aws.amazon.com/cloudsearch/latest/developerguide/configuring-expressions.html" target="_blank">Configuring Expressions</a> in the <i>Amazon CloudSearch Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ExpressionName</i> Names must begin with a letter and can contain the following characters: a-z (lowercase), 0-9, and _ (underscore).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingDeletion</i> Indicates that the option will be deleted once processing is complete.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of processing a change to an option. Possible values:<ul> <li><code>RequiresIndexDocuments</code>: the option's latest value will not be deployed until <a>IndexDocuments</a> has been called and indexing is complete.</li> <li><code>Processing</code>: the option's latest value is in the process of being activated. </li> <li><code>Active</code>: the option's latest value is completely deployed.</li> <li><code>FailedToValidate</code>: the option value is not compatible with the domain's data and cannot be used to index the data. You must either modify the option value or update or remove the incompatible documents.</li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdateVersion</i> A unique integer that indicates when this option was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdateDate</i> A timestamp for when this option was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> A timestamp for when this option was created.<br/>        """
        pass

    def define_index_field(self, IndexField: IndexField, DomainName: str) -> DefineIndexFieldResponse:
        r"""Configures an <code><a>IndexField</a></code> for the search domain. Used to create new fields and modify existing ones. You must specify the name of the domain you are configuring and an index field configuration. The index field configuration specifies a unique name, the index field type, and the options you want to configure for the field. The options you can specify depend on the <code><a>IndexFieldType</a></code>. If the field exists, the new configuration replaces the old one. For more information, see <a href="http://docs.aws.amazon.com/cloudsearch/latest/developerguide/configuring-index-fields.html" target="_blank">Configuring Index Fields</a> in the <i>Amazon CloudSearch Developer Guide</i>. 

        :param self:
        :param IndexField:  The index field and field options you want to configure. :<br/>DomainName:  A string that represents the name of a domain. Domain names are unique across the domains owned by an account within an AWS region. Domain names start with a letter or number and can contain the following characters: a-z (lowercase), 0-9, and - (hyphen).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DateArrayOptions</i> Options for a field that contains an array of dates. Present if <code>IndexFieldType</code> specifies the field is of type <code>date-array</code>. All options are enabled by default.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DateArrayOptions</b>: Options for a field that contains an array of dates. Present if <code>IndexFieldType</code> specifies the field is of type <code>date-array</code>. All options are enabled by default.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TextArrayOptions</i> Options for a field that contains an array of text strings. Present if <code>IndexFieldType</code> specifies the field is of type <code>text-array</code>. A <code>text-array</code> field is always searchable. All options are enabled by default.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TextArrayOptions</b>: Options for a field that contains an array of text strings. Present if <code>IndexFieldType</code> specifies the field is of type <code>text-array</code>. A <code>text-array</code> field is always searchable. All options are enabled by default.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LiteralArrayOptions</i> Options for a field that contains an array of literal strings. Present if <code>IndexFieldType</code> specifies the field is of type <code>literal-array</code>. All options are enabled by default.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>LiteralArrayOptions</b>: Options for a field that contains an array of literal strings. Present if <code>IndexFieldType</code> specifies the field is of type <code>literal-array</code>. All options are enabled by default.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DoubleArrayOptions</i> Options for a field that contains an array of double-precision 64-bit floating point values. Present if <code>IndexFieldType</code> specifies the field is of type <code>double-array</code>. All options are enabled by default.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DoubleArrayOptions</b>: Options for a field that contains an array of double-precision 64-bit floating point values. Present if <code>IndexFieldType</code> specifies the field is of type <code>double-array</code>. All options are enabled by default.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IntArrayOptions</i> Options for a field that contains an array of 64-bit signed integers. Present if <code>IndexFieldType</code> specifies the field is of type <code>int-array</code>. All options are enabled by default.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>IntArrayOptions</b>: Options for a field that contains an array of 64-bit signed integers. Present if <code>IndexFieldType</code> specifies the field is of type <code>int-array</code>. All options are enabled by default.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LatLonOptions</i> Options for a latlon field. A latlon field contains a location stored as a latitude and longitude value pair. Present if <code>IndexFieldType</code> specifies the field is of type <code>latlon</code>. All options are enabled by default.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>LatLonOptions</b>: Options for a latlon field. A latlon field contains a location stored as a latitude and longitude value pair. Present if <code>IndexFieldType</code> specifies the field is of type <code>latlon</code>. All options are enabled by default.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DateOptions</i> Options for a date field. Dates and times are specified in UTC (Coordinated Universal Time) according to IETF RFC3339: yyyy-mm-ddT00:00:00Z. Present if <code>IndexFieldType</code> specifies the field is of type <code>date</code>. All options are enabled by default.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DateOptions</b>: Options for a date field. Dates and times are specified in UTC (Coordinated Universal Time) according to IETF RFC3339: yyyy-mm-ddT00:00:00Z. Present if <code>IndexFieldType</code> specifies the field is of type <code>date</code>. All options are enabled by default.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TextOptions</i> Options for text field. Present if <code>IndexFieldType</code> specifies the field is of type <code>text</code>. A <code>text</code> field is always searchable. All options are enabled by default.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TextOptions</b>: Options for text field. Present if <code>IndexFieldType</code> specifies the field is of type <code>text</code>. A <code>text</code> field is always searchable. All options are enabled by default.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LiteralOptions</i> Options for literal field. Present if <code>IndexFieldType</code> specifies the field is of type <code>literal</code>. All options are enabled by default.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>LiteralOptions</b>: Options for literal field. Present if <code>IndexFieldType</code> specifies the field is of type <code>literal</code>. All options are enabled by default.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DoubleOptions</i> Options for a double-precision 64-bit floating point field. Present if <code>IndexFieldType</code> specifies the field is of type <code>double</code>. All options are enabled by default.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DoubleOptions</b>: Options for a double-precision 64-bit floating point field. Present if <code>IndexFieldType</code> specifies the field is of type <code>double</code>. All options are enabled by default.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IntOptions</i> Options for a 64-bit signed integer field. Present if <code>IndexFieldType</code> specifies the field is of type <code>int</code>. All options are enabled by default.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>IntOptions</b>: Options for a 64-bit signed integer field. Present if <code>IndexFieldType</code> specifies the field is of type <code>int</code>. All options are enabled by default.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IndexFieldType</i> The type of field. The valid options for a field depend on the field type. For more information about the supported field types, see <a href="http://docs.aws.amazon.com/cloudsearch/latest/developerguide/configuring-index-fields.html" target="_blank">Configuring Index Fields</a> in the <i>Amazon CloudSearch Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IndexFieldName</i> A string that represents the name of an index field. CloudSearch supports regular index fields as well as dynamic fields. A dynamic field's name defines a pattern that begins or ends with a wildcard. Any document fields that don't map to a regular index field but do match a dynamic field's pattern are configured with the dynamic field's indexing options.  Regular field names begin with a letter and can contain the following characters: a-z (lowercase), 0-9, and _ (underscore). Dynamic field names must begin or end with a wildcard (*). The wildcard can also be the only character in a dynamic field name. Multiple wildcards, and wildcards embedded within a string are not supported.  The name <code>score</code> is reserved and cannot be used as a field name. To reference a document's ID, you can use the name <code>_id</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SortEnabled</i> Whether the field can be used to sort the search results.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReturnEnabled</i> Whether the contents of the field can be returned in the search results.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SearchEnabled</i> Whether the contents of the field are searchable.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FacetEnabled</i> Whether facet information can be returned for the field.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceField</i> The name of the source field to map to the field. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultValue</i> A value to use for the field if the field isn't specified for a document. This can be important if you are using the field in an expression and that field is not present in every document.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SortEnabled</i> Whether the field can be used to sort the search results.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReturnEnabled</i> Whether the contents of the field can be returned in the search results.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SearchEnabled</i> Whether the contents of the field are searchable.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FacetEnabled</i> Whether facet information can be returned for the field.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceField</i> The name of the source field to map to the field. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultValue</i> A value to use for the field if the field isn't specified for a document. This can be important if you are using the field in an expression and that field is not present in every document.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SortEnabled</i> Whether the field can be used to sort the search results.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReturnEnabled</i> Whether the contents of the field can be returned in the search results.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SearchEnabled</i> Whether the contents of the field are searchable.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FacetEnabled</i> Whether facet information can be returned for the field.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceField</i> A string that represents the name of an index field. CloudSearch supports regular index fields as well as dynamic fields. A dynamic field's name defines a pattern that begins or ends with a wildcard. Any document fields that don't map to a regular index field but do match a dynamic field's pattern are configured with the dynamic field's indexing options.  Regular field names begin with a letter and can contain the following characters: a-z (lowercase), 0-9, and _ (underscore). Dynamic field names must begin or end with a wildcard (*). The wildcard can also be the only character in a dynamic field name. Multiple wildcards, and wildcards embedded within a string are not supported.  The name <code>score</code> is reserved and cannot be used as a field name. To reference a document's ID, you can use the name <code>_id</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultValue</i> A value to use for the field if the field isn't specified for a document.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AnalysisScheme</i> The name of an analysis scheme for a <code>text</code> field.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HighlightEnabled</i> Whether highlights can be returned for the field.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SortEnabled</i> Whether the field can be used to sort the search results.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReturnEnabled</i> Whether the contents of the field can be returned in the search results.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceField</i> A string that represents the name of an index field. CloudSearch supports regular index fields as well as dynamic fields. A dynamic field's name defines a pattern that begins or ends with a wildcard. Any document fields that don't map to a regular index field but do match a dynamic field's pattern are configured with the dynamic field's indexing options.  Regular field names begin with a letter and can contain the following characters: a-z (lowercase), 0-9, and _ (underscore). Dynamic field names must begin or end with a wildcard (*). The wildcard can also be the only character in a dynamic field name. Multiple wildcards, and wildcards embedded within a string are not supported.  The name <code>score</code> is reserved and cannot be used as a field name. To reference a document's ID, you can use the name <code>_id</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultValue</i> A value to use for the field if the field isn't specified for a document.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SortEnabled</i> Whether the field can be used to sort the search results.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReturnEnabled</i> Whether the contents of the field can be returned in the search results.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SearchEnabled</i> Whether the contents of the field are searchable.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FacetEnabled</i> Whether facet information can be returned for the field.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceField</i> A string that represents the name of an index field. CloudSearch supports regular index fields as well as dynamic fields. A dynamic field's name defines a pattern that begins or ends with a wildcard. Any document fields that don't map to a regular index field but do match a dynamic field's pattern are configured with the dynamic field's indexing options.  Regular field names begin with a letter and can contain the following characters: a-z (lowercase), 0-9, and _ (underscore). Dynamic field names must begin or end with a wildcard (*). The wildcard can also be the only character in a dynamic field name. Multiple wildcards, and wildcards embedded within a string are not supported.  The name <code>score</code> is reserved and cannot be used as a field name. To reference a document's ID, you can use the name <code>_id</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultValue</i> A value to use for the field if the field isn't specified for a document.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SortEnabled</i> Whether the field can be used to sort the search results.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReturnEnabled</i> Whether the contents of the field can be returned in the search results.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SearchEnabled</i> Whether the contents of the field are searchable.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FacetEnabled</i> Whether facet information can be returned for the field.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceField</i> A string that represents the name of an index field. CloudSearch supports regular index fields as well as dynamic fields. A dynamic field's name defines a pattern that begins or ends with a wildcard. Any document fields that don't map to a regular index field but do match a dynamic field's pattern are configured with the dynamic field's indexing options.  Regular field names begin with a letter and can contain the following characters: a-z (lowercase), 0-9, and _ (underscore). Dynamic field names must begin or end with a wildcard (*). The wildcard can also be the only character in a dynamic field name. Multiple wildcards, and wildcards embedded within a string are not supported.  The name <code>score</code> is reserved and cannot be used as a field name. To reference a document's ID, you can use the name <code>_id</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultValue</i> A value to use for the field if the field isn't specified for a document.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReturnEnabled</i> Whether the contents of the field can be returned in the search results.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SearchEnabled</i> Whether the contents of the field are searchable.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FacetEnabled</i> Whether facet information can be returned for the field.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceFields</i> A list of source fields to map to the field. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultValue</i> A value to use for the field if the field isn't specified for a document.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReturnEnabled</i> Whether the contents of the field can be returned in the search results.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SearchEnabled</i> Whether the contents of the field are searchable.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FacetEnabled</i> Whether facet information can be returned for the field.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceFields</i> A list of source fields to map to the field. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultValue</i> A value to use for the field if the field isn't specified for a document.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReturnEnabled</i> Whether the contents of the field can be returned in the search results.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SearchEnabled</i> Whether the contents of the field are searchable.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FacetEnabled</i> Whether facet information can be returned for the field.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceFields</i> A list of source fields to map to the field. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultValue</i> A value to use for the field if the field isn't specified for a document.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AnalysisScheme</i> The name of an analysis scheme for a <code>text-array</code> field.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HighlightEnabled</i> Whether highlights can be returned for the field.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReturnEnabled</i> Whether the contents of the field can be returned in the search results.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceFields</i> A list of source fields to map to the field. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultValue</i> A value to use for the field if the field isn't specified for a document.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReturnEnabled</i> Whether the contents of the field can be returned in the search results.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SearchEnabled</i> Whether the contents of the field are searchable.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FacetEnabled</i> Whether facet information can be returned for the field.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceFields</i> A list of source fields to map to the field. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultValue</i> A value to use for the field if the field isn't specified for a document.<br/>
        :return: IndexField:  The value of an <code>IndexField</code> and its current status.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of domain configuration option.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Status</b>: The status of domain configuration option.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Options</i> Configuration information for a field in the index, including its name, type, and options. The supported options depend on the <code><a>IndexFieldType</a></code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Options</b>: Configuration information for a field in the index, including its name, type, and options. The supported options depend on the <code><a>IndexFieldType</a></code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IndexFieldType</i> The type of field. The valid options for a field depend on the field type. For more information about the supported field types, see <a href="http://docs.aws.amazon.com/cloudsearch/latest/developerguide/configuring-index-fields.html" target="_blank">Configuring Index Fields</a> in the <i>Amazon CloudSearch Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IndexFieldName</i> A string that represents the name of an index field. CloudSearch supports regular index fields as well as dynamic fields. A dynamic field's name defines a pattern that begins or ends with a wildcard. Any document fields that don't map to a regular index field but do match a dynamic field's pattern are configured with the dynamic field's indexing options.  Regular field names begin with a letter and can contain the following characters: a-z (lowercase), 0-9, and _ (underscore). Dynamic field names must begin or end with a wildcard (*). The wildcard can also be the only character in a dynamic field name. Multiple wildcards, and wildcards embedded within a string are not supported.  The name <code>score</code> is reserved and cannot be used as a field name. To reference a document's ID, you can use the name <code>_id</code>. <br/>Options for a 64-bit signed integer field. Present if <code>IndexFieldType</code> specifies the field is of type <code>int</code>. All options are enabled by default.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>IntOptions</b>: Options for a 64-bit signed integer field. Present if <code>IndexFieldType</code> specifies the field is of type <code>int</code>. All options are enabled by default.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingDeletion</i> Indicates that the option will be deleted once processing is complete.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of processing a change to an option. Possible values:<ul> <li><code>RequiresIndexDocuments</code>: the option's latest value will not be deployed until <a>IndexDocuments</a> has been called and indexing is complete.</li> <li><code>Processing</code>: the option's latest value is in the process of being activated. </li> <li><code>Active</code>: the option's latest value is completely deployed.</li> <li><code>FailedToValidate</code>: the option value is not compatible with the domain's data and cannot be used to index the data. You must either modify the option value or update or remove the incompatible documents.</li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdateVersion</i> A unique integer that indicates when this option was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdateDate</i> A timestamp for when this option was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> A timestamp for when this option was created.<br/>        """
        pass

    def define_suggester(self, Suggester: Suggester, DomainName: str) -> DefineSuggesterResponse:
        r"""Configures a suggester for a domain. A suggester enables you to display possible matches before users finish typing their queries. When you configure a suggester, you must specify the name of the text field you want to search for possible matches and a unique name for the suggester. For more information, see <a href="http://docs.aws.amazon.com/cloudsearch/latest/developerguide/getting-suggestions.html" target="_blank">Getting Search Suggestions</a> in the <i>Amazon CloudSearch Developer Guide</i>.

        :param self:
        :param Suggester:  Configuration information for a search suggester. Each suggester has a unique name and specifies the text field you want to use for suggestions. The following options can be configured for a suggester: <code>FuzzyMatching</code>, <code>SortExpression</code>. :<br/>DomainName:  A string that represents the name of a domain. Domain names are unique across the domains owned by an account within an AWS region. Domain names start with a letter or number and can contain the following characters: a-z (lowercase), 0-9, and - (hyphen).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DocumentSuggesterOptions</i> Options for a search suggester.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DocumentSuggesterOptions</b>: Options for a search suggester.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SuggesterName</i> Names must begin with a letter and can contain the following characters: a-z (lowercase), 0-9, and _ (underscore).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SortExpression</i> An expression that computes a score for each suggestion to control how they are sorted. The scores are rounded to the nearest integer, with a floor of 0 and a ceiling of 2^31-1. A document's relevance score is not computed for suggestions, so sort expressions cannot reference the <code>_score</code> value. To sort suggestions using a numeric field or existing expression, simply specify the name of the field or expression. If no expression is configured for the suggester, the suggestions are sorted with the closest matches listed first.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FuzzyMatching</i> The level of fuzziness allowed when suggesting matches for a string: <code>none</code>, <code>low</code>, or <code>high</code>. With none, the specified string is treated as an exact prefix. With low, suggestions must differ from the specified string by no more than one character. With high, suggestions can differ by up to two characters. The default is none. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceField</i> The name of the index field you want to use for suggestions. <br/>
        :return: Suggester:  The value of a <code>Suggester</code> and its current status.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of domain configuration option.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Status</b>: The status of domain configuration option.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Options</i> Configuration information for a search suggester. Each suggester has a unique name and specifies the text field you want to use for suggestions. The following options can be configured for a suggester: <code>FuzzyMatching</code>, <code>SortExpression</code>. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Options</b>: Configuration information for a search suggester. Each suggester has a unique name and specifies the text field you want to use for suggestions. The following options can be configured for a suggester: <code>FuzzyMatching</code>, <code>SortExpression</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SuggesterName</i> Names must begin with a letter and can contain the following characters: a-z (lowercase), 0-9, and _ (underscore).<br/>Options for a search suggester.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DocumentSuggesterOptions</b>: Options for a search suggester.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingDeletion</i> Indicates that the option will be deleted once processing is complete.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of processing a change to an option. Possible values:<ul> <li><code>RequiresIndexDocuments</code>: the option's latest value will not be deployed until <a>IndexDocuments</a> has been called and indexing is complete.</li> <li><code>Processing</code>: the option's latest value is in the process of being activated. </li> <li><code>Active</code>: the option's latest value is completely deployed.</li> <li><code>FailedToValidate</code>: the option value is not compatible with the domain's data and cannot be used to index the data. You must either modify the option value or update or remove the incompatible documents.</li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdateVersion</i> A unique integer that indicates when this option was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdateDate</i> A timestamp for when this option was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> A timestamp for when this option was created.<br/>        """
        pass

    def delete_analysis_scheme(self, AnalysisSchemeName: str, DomainName: str) -> DeleteAnalysisSchemeResponse:
        r"""Deletes an analysis scheme. For more information, see <a href="http://docs.aws.amazon.com/cloudsearch/latest/developerguide/configuring-analysis-schemes.html" target="_blank">Configuring Analysis Schemes</a> in the <i>Amazon CloudSearch Developer Guide</i>. 

        :param self:
        :param AnalysisSchemeName:  The name of the analysis scheme you want to delete.<br/>DomainName:  A string that represents the name of a domain. Domain names are unique across the domains owned by an account within an AWS region. Domain names start with a letter or number and can contain the following characters: a-z (lowercase), 0-9, and - (hyphen).<br/>
        :return: AnalysisScheme:  The status of the analysis scheme being deleted.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of domain configuration option.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Status</b>: The status of domain configuration option.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Options</i> Configuration information for an analysis scheme. Each analysis scheme has a unique name and specifies the language of the text to be processed. The following options can be configured for an analysis scheme: <code>Synonyms</code>, <code>Stopwords</code>, <code>StemmingDictionary</code>, <code>JapaneseTokenizationDictionary</code> and <code>AlgorithmicStemming</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Options</b>: Configuration information for an analysis scheme. Each analysis scheme has a unique name and specifies the language of the text to be processed. The following options can be configured for an analysis scheme: <code>Synonyms</code>, <code>Stopwords</code>, <code>StemmingDictionary</code>, <code>JapaneseTokenizationDictionary</code> and <code>AlgorithmicStemming</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AnalysisSchemeLanguage</i> An <a href="http://tools.ietf.org/html/rfc4646" target="_blank">IETF RFC 4646</a> language code or <code>mul</code> for multiple languages.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AnalysisSchemeName</i> Names must begin with a letter and can contain the following characters: a-z (lowercase), 0-9, and _ (underscore).<br/>Synonyms, stopwords, and stemming options for an analysis scheme. Includes tokenization dictionary for Japanese.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AnalysisOptions</b>: Synonyms, stopwords, and stemming options for an analysis scheme. Includes tokenization dictionary for Japanese.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingDeletion</i> Indicates that the option will be deleted once processing is complete.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of processing a change to an option. Possible values:<ul> <li><code>RequiresIndexDocuments</code>: the option's latest value will not be deployed until <a>IndexDocuments</a> has been called and indexing is complete.</li> <li><code>Processing</code>: the option's latest value is in the process of being activated. </li> <li><code>Active</code>: the option's latest value is completely deployed.</li> <li><code>FailedToValidate</code>: the option value is not compatible with the domain's data and cannot be used to index the data. You must either modify the option value or update or remove the incompatible documents.</li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdateVersion</i> A unique integer that indicates when this option was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdateDate</i> A timestamp for when this option was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> A timestamp for when this option was created.<br/>        """
        pass

    def delete_domain(self, DomainName: str) -> DeleteDomainResponse:
        r"""Permanently deletes a search domain and all of its data. Once a domain has been deleted, it cannot be recovered. For more information, see <a href="http://docs.aws.amazon.com/cloudsearch/latest/developerguide/deleting-domains.html" target="_blank">Deleting a Search Domain</a> in the <i>Amazon CloudSearch Developer Guide</i>. 

        :param self:
        :param DomainName:  The name of the domain you want to permanently delete.<br/>
        :return: DomainStatus:  The current status of the search domain.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Limits</i> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Limits</b>: <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SearchInstanceCount</i> The number of search instances that are available to process search requests.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SearchPartitionCount</i> The number of partitions across which the search index is spread.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SearchInstanceType</i> The instance type that is being used to process search requests.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Processing</i> True if processing is being done to activate the current domain configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequiresIndexDocuments</i> True if <a>IndexDocuments</a> needs to be called to activate the current domain configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SearchService</i> The service endpoint for requesting search results from a search domain.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SearchService</b>: The service endpoint for requesting search results from a search domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DocService</i> The service endpoint for updating documents in a search domain.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DocService</b>: The service endpoint for updating documents in a search domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Deleted</i> True if the search domain has been deleted. The system must clean up resources dedicated to the search domain when <a>DeleteDomain</a> is called. Newly deleted search domains are returned from <a>DescribeDomains</a> with a true value for IsDeleted for several minutes until resource cleanup is complete.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Created</i> True if the search domain is created. It can take several minutes to initialize a domain when <a>CreateDomain</a> is called. Newly created search domains are returned from <a>DescribeDomains</a> with a false value for Created until domain creation is complete.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ARN</i> The Amazon Resource Name (ARN) of the search domain. See <a href="http://docs.aws.amazon.com/IAM/latest/UserGuide/index.html?Using_Identifiers.html" target="_blank">Identifiers for IAM Entities</a> in <i>Using AWS Identity and Access Management</i> for more information.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainName</i> A string that represents the name of a domain. Domain names are unique across the domains owned by an account within an AWS region. Domain names start with a letter or number and can contain the following characters: a-z (lowercase), 0-9, and - (hyphen).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainId</i> An internally generated unique identifier for a domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i> The endpoint to which service requests can be submitted. For example, <code>search-imdb-movies-oopcnjfn6ugofer3zx5iadxxca.eu-west-1.cloudsearch.amazonaws.com</code> or <code>doc-imdb-movies-oopcnjfn6ugofer3zx5iadxxca.eu-west-1.cloudsearch.amazonaws.com</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i> The endpoint to which service requests can be submitted. For example, <code>search-imdb-movies-oopcnjfn6ugofer3zx5iadxxca.eu-west-1.cloudsearch.amazonaws.com</code> or <code>doc-imdb-movies-oopcnjfn6ugofer3zx5iadxxca.eu-west-1.cloudsearch.amazonaws.com</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaximumPartitionCount</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaximumReplicationCount</i> <br/>        """
        pass

    def delete_expression(self, ExpressionName: str, DomainName: str) -> DeleteExpressionResponse:
        r"""Removes an <code><a>Expression</a></code> from the search domain. For more information, see <a href="http://docs.aws.amazon.com/cloudsearch/latest/developerguide/configuring-expressions.html" target="_blank">Configuring Expressions</a> in the <i>Amazon CloudSearch Developer Guide</i>.

        :param self:
        :param ExpressionName:  The name of the <code><a>Expression</a></code> to delete.<br/>DomainName:  A string that represents the name of a domain. Domain names are unique across the domains owned by an account within an AWS region. Domain names start with a letter or number and can contain the following characters: a-z (lowercase), 0-9, and - (hyphen).<br/>
        :return: Expression:  The status of the expression being deleted.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of domain configuration option.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Status</b>: The status of domain configuration option.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Options</i> The expression that is evaluated for sorting while processing a search request.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Options</b>: The expression that is evaluated for sorting while processing a search request.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ExpressionValue</i> The expression to evaluate for sorting while processing a search request. The <code>Expression</code> syntax is based on JavaScript expressions. For more information, see <a href="http://docs.aws.amazon.com/cloudsearch/latest/developerguide/configuring-expressions.html" target="_blank">Configuring Expressions</a> in the <i>Amazon CloudSearch Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ExpressionName</i> Names must begin with a letter and can contain the following characters: a-z (lowercase), 0-9, and _ (underscore).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingDeletion</i> Indicates that the option will be deleted once processing is complete.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of processing a change to an option. Possible values:<ul> <li><code>RequiresIndexDocuments</code>: the option's latest value will not be deployed until <a>IndexDocuments</a> has been called and indexing is complete.</li> <li><code>Processing</code>: the option's latest value is in the process of being activated. </li> <li><code>Active</code>: the option's latest value is completely deployed.</li> <li><code>FailedToValidate</code>: the option value is not compatible with the domain's data and cannot be used to index the data. You must either modify the option value or update or remove the incompatible documents.</li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdateVersion</i> A unique integer that indicates when this option was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdateDate</i> A timestamp for when this option was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> A timestamp for when this option was created.<br/>        """
        pass

    def delete_index_field(self, IndexFieldName: str, DomainName: str) -> DeleteIndexFieldResponse:
        r"""Removes an <code><a>IndexField</a></code> from the search domain. For more information, see <a href="http://docs.aws.amazon.com/cloudsearch/latest/developerguide/configuring-index-fields.html" target="_blank">Configuring Index Fields</a> in the <i>Amazon CloudSearch Developer Guide</i>.

        :param self:
        :param IndexFieldName:  The name of the index field your want to remove from the domain's indexing options.<br/>DomainName:  A string that represents the name of a domain. Domain names are unique across the domains owned by an account within an AWS region. Domain names start with a letter or number and can contain the following characters: a-z (lowercase), 0-9, and - (hyphen).<br/>
        :return: IndexField:  The status of the index field being deleted.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of domain configuration option.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Status</b>: The status of domain configuration option.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Options</i> Configuration information for a field in the index, including its name, type, and options. The supported options depend on the <code><a>IndexFieldType</a></code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Options</b>: Configuration information for a field in the index, including its name, type, and options. The supported options depend on the <code><a>IndexFieldType</a></code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IndexFieldType</i> The type of field. The valid options for a field depend on the field type. For more information about the supported field types, see <a href="http://docs.aws.amazon.com/cloudsearch/latest/developerguide/configuring-index-fields.html" target="_blank">Configuring Index Fields</a> in the <i>Amazon CloudSearch Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IndexFieldName</i> A string that represents the name of an index field. CloudSearch supports regular index fields as well as dynamic fields. A dynamic field's name defines a pattern that begins or ends with a wildcard. Any document fields that don't map to a regular index field but do match a dynamic field's pattern are configured with the dynamic field's indexing options.  Regular field names begin with a letter and can contain the following characters: a-z (lowercase), 0-9, and _ (underscore). Dynamic field names must begin or end with a wildcard (*). The wildcard can also be the only character in a dynamic field name. Multiple wildcards, and wildcards embedded within a string are not supported.  The name <code>score</code> is reserved and cannot be used as a field name. To reference a document's ID, you can use the name <code>_id</code>. <br/>Options for a 64-bit signed integer field. Present if <code>IndexFieldType</code> specifies the field is of type <code>int</code>. All options are enabled by default.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>IntOptions</b>: Options for a 64-bit signed integer field. Present if <code>IndexFieldType</code> specifies the field is of type <code>int</code>. All options are enabled by default.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingDeletion</i> Indicates that the option will be deleted once processing is complete.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of processing a change to an option. Possible values:<ul> <li><code>RequiresIndexDocuments</code>: the option's latest value will not be deployed until <a>IndexDocuments</a> has been called and indexing is complete.</li> <li><code>Processing</code>: the option's latest value is in the process of being activated. </li> <li><code>Active</code>: the option's latest value is completely deployed.</li> <li><code>FailedToValidate</code>: the option value is not compatible with the domain's data and cannot be used to index the data. You must either modify the option value or update or remove the incompatible documents.</li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdateVersion</i> A unique integer that indicates when this option was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdateDate</i> A timestamp for when this option was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> A timestamp for when this option was created.<br/>        """
        pass

    def delete_suggester(self, SuggesterName: str, DomainName: str) -> DeleteSuggesterResponse:
        r"""Deletes a suggester. For more information, see <a href="http://docs.aws.amazon.com/cloudsearch/latest/developerguide/getting-suggestions.html" target="_blank">Getting Search Suggestions</a> in the <i>Amazon CloudSearch Developer Guide</i>.

        :param self:
        :param SuggesterName:  Specifies the name of the suggester you want to delete.<br/>DomainName:  A string that represents the name of a domain. Domain names are unique across the domains owned by an account within an AWS region. Domain names start with a letter or number and can contain the following characters: a-z (lowercase), 0-9, and - (hyphen).<br/>
        :return: Suggester:  The status of the suggester being deleted.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of domain configuration option.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Status</b>: The status of domain configuration option.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Options</i> Configuration information for a search suggester. Each suggester has a unique name and specifies the text field you want to use for suggestions. The following options can be configured for a suggester: <code>FuzzyMatching</code>, <code>SortExpression</code>. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Options</b>: Configuration information for a search suggester. Each suggester has a unique name and specifies the text field you want to use for suggestions. The following options can be configured for a suggester: <code>FuzzyMatching</code>, <code>SortExpression</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SuggesterName</i> Names must begin with a letter and can contain the following characters: a-z (lowercase), 0-9, and _ (underscore).<br/>Options for a search suggester.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DocumentSuggesterOptions</b>: Options for a search suggester.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingDeletion</i> Indicates that the option will be deleted once processing is complete.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of processing a change to an option. Possible values:<ul> <li><code>RequiresIndexDocuments</code>: the option's latest value will not be deployed until <a>IndexDocuments</a> has been called and indexing is complete.</li> <li><code>Processing</code>: the option's latest value is in the process of being activated. </li> <li><code>Active</code>: the option's latest value is completely deployed.</li> <li><code>FailedToValidate</code>: the option value is not compatible with the domain's data and cannot be used to index the data. You must either modify the option value or update or remove the incompatible documents.</li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdateVersion</i> A unique integer that indicates when this option was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdateDate</i> A timestamp for when this option was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> A timestamp for when this option was created.<br/>        """
        pass

    def describe_analysis_schemes(self, DomainName: str, AnalysisSchemeNames: List[StandardName]=None, Deployed: Boolean=None) -> DescribeAnalysisSchemesResponse:
        r"""Gets the analysis schemes configured for a domain. An analysis scheme defines language-specific text processing options for a <code>text</code> field. Can be limited to specific analysis schemes by name. By default, shows all analysis schemes and includes any pending changes to the configuration. Set the <code>Deployed</code> option to <code>true</code> to show the active configuration and exclude pending changes. For more information, see <a href="http://docs.aws.amazon.com/cloudsearch/latest/developerguide/configuring-analysis-schemes.html" target="_blank">Configuring Analysis Schemes</a> in the <i>Amazon CloudSearch Developer Guide</i>.

        :param self:
        :param Deployed:  Whether to display the deployed configuration (<code>true</code>) or include any pending changes (<code>false</code>). Defaults to <code>false</code>.<br/>AnalysisSchemeNames:  The analysis schemes you want to describe.<br/>DomainName:  The name of the domain you want to describe.<br/>
        :return: AnalysisSchemes:  The analysis scheme descriptions.<br/>        """
        pass

    def describe_availability_options(self, DomainName: str, Deployed: Boolean=None) -> DescribeAvailabilityOptionsResponse:
        r"""Gets the availability options configured for a domain. By default, shows the configuration with any pending changes. Set the <code>Deployed</code> option to <code>true</code> to show the active configuration and exclude pending changes. For more information, see <a href="http://docs.aws.amazon.com/cloudsearch/latest/developerguide/configuring-availability-options.html" target="_blank">Configuring Availability Options</a> in the <i>Amazon CloudSearch Developer Guide</i>.

        :param self:
        :param Deployed:  Whether to display the deployed configuration (<code>true</code>) or include any pending changes (<code>false</code>). Defaults to <code>false</code>.<br/>DomainName:  The name of the domain you want to describe.<br/>
        :return: AvailabilityOptions:  The availability options configured for the domain. Indicates whether Multi-AZ is enabled for the domain. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of domain configuration option.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Status</b>: The status of domain configuration option.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Options</i> The availability options configured for the domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingDeletion</i> Indicates that the option will be deleted once processing is complete.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of processing a change to an option. Possible values:<ul> <li><code>RequiresIndexDocuments</code>: the option's latest value will not be deployed until <a>IndexDocuments</a> has been called and indexing is complete.</li> <li><code>Processing</code>: the option's latest value is in the process of being activated. </li> <li><code>Active</code>: the option's latest value is completely deployed.</li> <li><code>FailedToValidate</code>: the option value is not compatible with the domain's data and cannot be used to index the data. You must either modify the option value or update or remove the incompatible documents.</li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdateVersion</i> A unique integer that indicates when this option was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdateDate</i> A timestamp for when this option was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> A timestamp for when this option was created.<br/>        """
        pass

    def describe_domain_endpoint_options(self, DomainName: str, Deployed: Boolean=None) -> DescribeDomainEndpointOptionsResponse:
        r"""Returns the domain's endpoint options, specifically whether all requests to the domain must arrive over HTTPS. For more information, see <a href="http://docs.aws.amazon.com/cloudsearch/latest/developerguide/configuring-domain-endpoint-options.html" target="_blank">Configuring Domain Endpoint Options</a> in the <i>Amazon CloudSearch Developer Guide</i>.

        :param self:
        :param Deployed:  Whether to retrieve the latest configuration (which might be in a Processing state) or the current, active configuration. Defaults to <code>false</code>.<br/>DomainName:  A string that represents the name of a domain.<br/>
        :return: DomainEndpointOptions:  The status and configuration of a search domain's endpoint options.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the configured domain endpoint options.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Status</b>: The status of the configured domain endpoint options.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Options</i> The domain endpoint options configured for the domain.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Options</b>: The domain endpoint options configured for the domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TLSSecurityPolicy</i> The minimum required TLS version<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EnforceHTTPS</i> Whether the domain is HTTPS only enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingDeletion</i> Indicates that the option will be deleted once processing is complete.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of processing a change to an option. Possible values:<ul> <li><code>RequiresIndexDocuments</code>: the option's latest value will not be deployed until <a>IndexDocuments</a> has been called and indexing is complete.</li> <li><code>Processing</code>: the option's latest value is in the process of being activated. </li> <li><code>Active</code>: the option's latest value is completely deployed.</li> <li><code>FailedToValidate</code>: the option value is not compatible with the domain's data and cannot be used to index the data. You must either modify the option value or update or remove the incompatible documents.</li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdateVersion</i> A unique integer that indicates when this option was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdateDate</i> A timestamp for when this option was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> A timestamp for when this option was created.<br/>        """
        pass

    def describe_domains(self, DomainNames: List[DomainName]=None) -> DescribeDomainsResponse:
        r"""Gets information about the search domains owned by this account. Can be limited to specific domains. Shows all domains by default. To get the number of searchable documents in a domain, use the console or submit a <code>matchall</code> request to your domain's search endpoint: <code>q=matchall&amp;amp;q.parser=structured&amp;amp;size=0</code>. For more information, see <a href="http://docs.aws.amazon.com/cloudsearch/latest/developerguide/getting-domain-info.html" target="_blank">Getting Information about a Search Domain</a> in the <i>Amazon CloudSearch Developer Guide</i>.

        :param self:
        :param DomainNames:  The names of the domains you want to include in the response.<br/>
        :return: DomainStatusList:  A list that contains the status of each requested domain.<br/>        """
        pass

    def describe_expressions(self, DomainName: str, ExpressionNames: List[StandardName]=None, Deployed: Boolean=None) -> DescribeExpressionsResponse:
        r"""Gets the expressions configured for the search domain. Can be limited to specific expressions by name. By default, shows all expressions and includes any pending changes to the configuration. Set the <code>Deployed</code> option to <code>true</code> to show the active configuration and exclude pending changes. For more information, see <a href="http://docs.aws.amazon.com/cloudsearch/latest/developerguide/configuring-expressions.html" target="_blank">Configuring Expressions</a> in the <i>Amazon CloudSearch Developer Guide</i>.

        :param self:
        :param Deployed:  Whether to display the deployed configuration (<code>true</code>) or include any pending changes (<code>false</code>). Defaults to <code>false</code>.<br/>ExpressionNames:  Limits the <code><a>DescribeExpressions</a></code> response to the specified expressions. If not specified, all expressions are shown.<br/>DomainName:  The name of the domain you want to describe.<br/>
        :return: Expressions:  The expressions configured for the domain.<br/>        """
        pass

    def describe_index_fields(self, DomainName: str, FieldNames: List[DynamicFieldName]=None, Deployed: Boolean=None) -> DescribeIndexFieldsResponse:
        r"""Gets information about the index fields configured for the search domain. Can be limited to specific fields by name. By default, shows all fields and includes any pending changes to the configuration. Set the <code>Deployed</code> option to <code>true</code> to show the active configuration and exclude pending changes. For more information, see <a href="http://docs.aws.amazon.com/cloudsearch/latest/developerguide/getting-domain-info.html" target="_blank">Getting Domain Information</a> in the <i>Amazon CloudSearch Developer Guide</i>.

        :param self:
        :param Deployed:  Whether to display the deployed configuration (<code>true</code>) or include any pending changes (<code>false</code>). Defaults to <code>false</code>.<br/>FieldNames:  A list of the index fields you want to describe. If not specified, information is returned for all configured index fields.<br/>DomainName:  The name of the domain you want to describe.<br/>
        :return: IndexFields:  The index fields configured for the domain.<br/>        """
        pass

    def describe_scaling_parameters(self, DomainName: str) -> DescribeScalingParametersResponse:
        r"""Gets the scaling parameters configured for a domain. A domain's scaling parameters specify the desired search instance type and replication count. For more information, see <a href="http://docs.aws.amazon.com/cloudsearch/latest/developerguide/configuring-scaling-options.html" target="_blank">Configuring Scaling Options</a> in the <i>Amazon CloudSearch Developer Guide</i>.

        :param self:
        :param DomainName:  A string that represents the name of a domain. Domain names are unique across the domains owned by an account within an AWS region. Domain names start with a letter or number and can contain the following characters: a-z (lowercase), 0-9, and - (hyphen).<br/>
        :return: ScalingParameters:  The status and configuration of a search domain's scaling parameters. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of domain configuration option.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Status</b>: The status of domain configuration option.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Options</i> The desired instance type and desired number of replicas of each index partition.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Options</b>: The desired instance type and desired number of replicas of each index partition.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DesiredPartitionCount</i> The number of partitions you want to preconfigure for your domain. Only valid when you select <code>m2.2xlarge</code> as the desired instance type.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DesiredReplicationCount</i> The number of replicas you want to preconfigure for each index partition.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DesiredInstanceType</i> The instance type that you want to preconfigure for your domain. For example, <code>search.m1.small</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingDeletion</i> Indicates that the option will be deleted once processing is complete.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of processing a change to an option. Possible values:<ul> <li><code>RequiresIndexDocuments</code>: the option's latest value will not be deployed until <a>IndexDocuments</a> has been called and indexing is complete.</li> <li><code>Processing</code>: the option's latest value is in the process of being activated. </li> <li><code>Active</code>: the option's latest value is completely deployed.</li> <li><code>FailedToValidate</code>: the option value is not compatible with the domain's data and cannot be used to index the data. You must either modify the option value or update or remove the incompatible documents.</li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdateVersion</i> A unique integer that indicates when this option was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdateDate</i> A timestamp for when this option was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> A timestamp for when this option was created.<br/>        """
        pass

    def describe_service_access_policies(self, DomainName: str, Deployed: Boolean=None) -> DescribeServiceAccessPoliciesResponse:
        r"""Gets information about the access policies that control access to the domain's document and search endpoints. By default, shows the configuration with any pending changes. Set the <code>Deployed</code> option to <code>true</code> to show the active configuration and exclude pending changes. For more information, see <a href="http://docs.aws.amazon.com/cloudsearch/latest/developerguide/configuring-access.html" target="_blank">Configuring Access for a Search Domain</a> in the <i>Amazon CloudSearch Developer Guide</i>.

        :param self:
        :param Deployed:  Whether to display the deployed configuration (<code>true</code>) or include any pending changes (<code>false</code>). Defaults to <code>false</code>.<br/>DomainName:  The name of the domain you want to describe.<br/>
        :return: AccessPolicies:  The access rules configured for the domain specified in the request.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of domain configuration option.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Status</b>: The status of domain configuration option.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Options</i> Access rules for a domain's document or search service endpoints. For more information, see <a href="http://docs.aws.amazon.com/cloudsearch/latest/developerguide/configuring-access.html" target="_blank">Configuring Access for a Search Domain</a> in the <i>Amazon CloudSearch Developer Guide</i>. The maximum size of a policy document is 100 KB.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingDeletion</i> Indicates that the option will be deleted once processing is complete.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of processing a change to an option. Possible values:<ul> <li><code>RequiresIndexDocuments</code>: the option's latest value will not be deployed until <a>IndexDocuments</a> has been called and indexing is complete.</li> <li><code>Processing</code>: the option's latest value is in the process of being activated. </li> <li><code>Active</code>: the option's latest value is completely deployed.</li> <li><code>FailedToValidate</code>: the option value is not compatible with the domain's data and cannot be used to index the data. You must either modify the option value or update or remove the incompatible documents.</li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdateVersion</i> A unique integer that indicates when this option was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdateDate</i> A timestamp for when this option was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> A timestamp for when this option was created.<br/>        """
        pass

    def describe_suggesters(self, DomainName: str, SuggesterNames: List[StandardName]=None, Deployed: Boolean=None) -> DescribeSuggestersResponse:
        r"""Gets the suggesters configured for a domain. A suggester enables you to display possible matches before users finish typing their queries. Can be limited to specific suggesters by name. By default, shows all suggesters and includes any pending changes to the configuration. Set the <code>Deployed</code> option to <code>true</code> to show the active configuration and exclude pending changes. For more information, see <a href="http://docs.aws.amazon.com/cloudsearch/latest/developerguide/getting-suggestions.html" target="_blank">Getting Search Suggestions</a> in the <i>Amazon CloudSearch Developer Guide</i>.

        :param self:
        :param Deployed:  Whether to display the deployed configuration (<code>true</code>) or include any pending changes (<code>false</code>). Defaults to <code>false</code>.<br/>SuggesterNames:  The suggesters you want to describe.<br/>DomainName:  The name of the domain you want to describe.<br/>
        :return: Suggesters:  The suggesters configured for the domain specified in the request.<br/>        """
        pass

    def index_documents(self, DomainName: str) -> IndexDocumentsResponse:
        r"""Tells the search domain to start indexing its documents using the latest indexing options. This operation must be invoked to activate options whose <a>OptionStatus</a> is <code>RequiresIndexDocuments</code>.

        :param self:
        :param DomainName:  A string that represents the name of a domain. Domain names are unique across the domains owned by an account within an AWS region. Domain names start with a letter or number and can contain the following characters: a-z (lowercase), 0-9, and - (hyphen).<br/>
        :return: FieldNames:  The names of the fields that are currently being indexed.<br/>        """
        pass

    def list_domain_names(self) -> ListDomainNamesResponse:
        r"""Lists all search domains owned by an account.

        :param self:
        :param 
        :return: DomainNames:  The names of the search domains owned by an account.<br/>        """
        pass

    def update_availability_options(self, MultiAZ: Boolean, DomainName: str) -> UpdateAvailabilityOptionsResponse:
        r"""Configures the availability options for a domain. Enabling the Multi-AZ option expands an Amazon CloudSearch domain to an additional Availability Zone in the same Region to increase fault tolerance in the event of a service disruption. Changes to the Multi-AZ option can take about half an hour to become active. For more information, see <a href="http://docs.aws.amazon.com/cloudsearch/latest/developerguide/configuring-availability-options.html" target="_blank">Configuring Availability Options</a> in the <i>Amazon CloudSearch Developer Guide</i>.

        :param self:
        :param MultiAZ:  You expand an existing search domain to a second Availability Zone by setting the Multi-AZ option to true. Similarly, you can turn off the Multi-AZ option to downgrade the domain to a single Availability Zone by setting the Multi-AZ option to <code>false</code>. <br/>DomainName:  A string that represents the name of a domain. Domain names are unique across the domains owned by an account within an AWS region. Domain names start with a letter or number and can contain the following characters: a-z (lowercase), 0-9, and - (hyphen).<br/>
        :return: AvailabilityOptions:  The newly-configured availability options. Indicates whether Multi-AZ is enabled for the domain. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of domain configuration option.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Status</b>: The status of domain configuration option.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Options</i> The availability options configured for the domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingDeletion</i> Indicates that the option will be deleted once processing is complete.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of processing a change to an option. Possible values:<ul> <li><code>RequiresIndexDocuments</code>: the option's latest value will not be deployed until <a>IndexDocuments</a> has been called and indexing is complete.</li> <li><code>Processing</code>: the option's latest value is in the process of being activated. </li> <li><code>Active</code>: the option's latest value is completely deployed.</li> <li><code>FailedToValidate</code>: the option value is not compatible with the domain's data and cannot be used to index the data. You must either modify the option value or update or remove the incompatible documents.</li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdateVersion</i> A unique integer that indicates when this option was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdateDate</i> A timestamp for when this option was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> A timestamp for when this option was created.<br/>        """
        pass

    def update_domain_endpoint_options(self, DomainEndpointOptions: DomainEndpointOptions, DomainName: str) -> UpdateDomainEndpointOptionsResponse:
        r"""Updates the domain's endpoint options, specifically whether all requests to the domain must arrive over HTTPS. For more information, see <a href="http://docs.aws.amazon.com/cloudsearch/latest/developerguide/configuring-domain-endpoint-options.html" target="_blank">Configuring Domain Endpoint Options</a> in the <i>Amazon CloudSearch Developer Guide</i>.

        :param self:
        :param DomainEndpointOptions:  Whether to require that all requests to the domain arrive over HTTPS. We recommend Policy-Min-TLS-1-2-2019-07 for TLSSecurityPolicy. For compatibility with older clients, the default is Policy-Min-TLS-1-0-2019-07. :<br/>DomainName:  A string that represents the name of a domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TLSSecurityPolicy</i> The minimum required TLS version<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnforceHTTPS</i> Whether the domain is HTTPS only enabled.<br/>
        :return: DomainEndpointOptions:  The newly-configured domain endpoint options.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the configured domain endpoint options.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Status</b>: The status of the configured domain endpoint options.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Options</i> The domain endpoint options configured for the domain.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Options</b>: The domain endpoint options configured for the domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TLSSecurityPolicy</i> The minimum required TLS version<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EnforceHTTPS</i> Whether the domain is HTTPS only enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingDeletion</i> Indicates that the option will be deleted once processing is complete.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of processing a change to an option. Possible values:<ul> <li><code>RequiresIndexDocuments</code>: the option's latest value will not be deployed until <a>IndexDocuments</a> has been called and indexing is complete.</li> <li><code>Processing</code>: the option's latest value is in the process of being activated. </li> <li><code>Active</code>: the option's latest value is completely deployed.</li> <li><code>FailedToValidate</code>: the option value is not compatible with the domain's data and cannot be used to index the data. You must either modify the option value or update or remove the incompatible documents.</li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdateVersion</i> A unique integer that indicates when this option was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdateDate</i> A timestamp for when this option was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> A timestamp for when this option was created.<br/>        """
        pass

    def update_scaling_parameters(self, ScalingParameters: ScalingParameters, DomainName: str) -> UpdateScalingParametersResponse:
        r"""Configures scaling parameters for a domain. A domain's scaling parameters specify the desired search instance type and replication count. Amazon CloudSearch will still automatically scale your domain based on the volume of data and traffic, but not below the desired instance type and replication count. If the Multi-AZ option is enabled, these values control the resources used per Availability Zone. For more information, see <a href="http://docs.aws.amazon.com/cloudsearch/latest/developerguide/configuring-scaling-options.html" target="_blank">Configuring Scaling Options</a> in the <i>Amazon CloudSearch Developer Guide</i>. 

        :param self:
        :param ScalingParameters:  The desired instance type and desired number of replicas of each index partition.:<br/>DomainName:  A string that represents the name of a domain. Domain names are unique across the domains owned by an account within an AWS region. Domain names start with a letter or number and can contain the following characters: a-z (lowercase), 0-9, and - (hyphen).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DesiredPartitionCount</i> The number of partitions you want to preconfigure for your domain. Only valid when you select <code>m2.2xlarge</code> as the desired instance type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DesiredReplicationCount</i> The number of replicas you want to preconfigure for each index partition.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DesiredInstanceType</i> The instance type that you want to preconfigure for your domain. For example, <code>search.m1.small</code>.<br/>
        :return: ScalingParameters:  The status and configuration of a search domain's scaling parameters. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of domain configuration option.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Status</b>: The status of domain configuration option.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Options</i> The desired instance type and desired number of replicas of each index partition.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Options</b>: The desired instance type and desired number of replicas of each index partition.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DesiredPartitionCount</i> The number of partitions you want to preconfigure for your domain. Only valid when you select <code>m2.2xlarge</code> as the desired instance type.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DesiredReplicationCount</i> The number of replicas you want to preconfigure for each index partition.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DesiredInstanceType</i> The instance type that you want to preconfigure for your domain. For example, <code>search.m1.small</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingDeletion</i> Indicates that the option will be deleted once processing is complete.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of processing a change to an option. Possible values:<ul> <li><code>RequiresIndexDocuments</code>: the option's latest value will not be deployed until <a>IndexDocuments</a> has been called and indexing is complete.</li> <li><code>Processing</code>: the option's latest value is in the process of being activated. </li> <li><code>Active</code>: the option's latest value is completely deployed.</li> <li><code>FailedToValidate</code>: the option value is not compatible with the domain's data and cannot be used to index the data. You must either modify the option value or update or remove the incompatible documents.</li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdateVersion</i> A unique integer that indicates when this option was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdateDate</i> A timestamp for when this option was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> A timestamp for when this option was created.<br/>        """
        pass

    def update_service_access_policies(self, AccessPolicies: str, DomainName: str) -> UpdateServiceAccessPoliciesResponse:
        r"""Configures the access rules that control access to the domain's document and search endpoints. For more information, see <a href="http://docs.aws.amazon.com/cloudsearch/latest/developerguide/configuring-access.html" target="_blank"> Configuring Access for an Amazon CloudSearch Domain</a>.

        :param self:
        :param AccessPolicies:  The access rules you want to configure. These rules replace any existing rules. <br/>DomainName:  A string that represents the name of a domain. Domain names are unique across the domains owned by an account within an AWS region. Domain names start with a letter or number and can contain the following characters: a-z (lowercase), 0-9, and - (hyphen).<br/>
        :return: AccessPolicies:  The access rules configured for the domain.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of domain configuration option.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Status</b>: The status of domain configuration option.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Options</i> Access rules for a domain's document or search service endpoints. For more information, see <a href="http://docs.aws.amazon.com/cloudsearch/latest/developerguide/configuring-access.html" target="_blank">Configuring Access for a Search Domain</a> in the <i>Amazon CloudSearch Developer Guide</i>. The maximum size of a policy document is 100 KB.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingDeletion</i> Indicates that the option will be deleted once processing is complete.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of processing a change to an option. Possible values:<ul> <li><code>RequiresIndexDocuments</code>: the option's latest value will not be deployed until <a>IndexDocuments</a> has been called and indexing is complete.</li> <li><code>Processing</code>: the option's latest value is in the process of being activated. </li> <li><code>Active</code>: the option's latest value is completely deployed.</li> <li><code>FailedToValidate</code>: the option value is not compatible with the domain's data and cannot be used to index the data. You must either modify the option value or update or remove the incompatible documents.</li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdateVersion</i> A unique integer that indicates when this option was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdateDate</i> A timestamp for when this option was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> A timestamp for when this option was created.<br/>        """
        pass





class CloudSearchDomain(BaseClient):
    r"""You use the AmazonCloudSearch2013 API to upload documents to a search domain and search those documents.  The endpoints for submitting <code>UploadDocuments</code>, <code>Search</code>, and <code>Suggest</code> requests are domain-specific. To get the endpoints for your domain, use the Amazon CloudSearch configuration service <code>DescribeDomains</code> action. The domain endpoints are also displayed on the domain dashboard in the Amazon CloudSearch console. You submit suggest requests to the search endpoint.  For more information, see the <a href="http://docs.aws.amazon.com/cloudsearch/latest/developerguide">Amazon CloudSearch Developer Guide</a>."""



    class SearchRequest(Mapping):
        pass
    
    class SearchResponse(Mapping):
        pass
    
    class Partial(object):
        pass
    
    class Size(object):
        pass
    
    class Start(object):
        pass
    
    class SuggestRequest(Mapping):
        pass
    
    class SuggestResponse(Mapping):
        pass
    
    class SuggestionsSize(object):
        pass
    
    class UploadDocumentsRequest(Mapping):
        pass
    
    class UploadDocumentsResponse(Mapping):
        pass
    
    class Blob(object):
        pass
    
    def search(self, query: str, cursor: str=None, expr: str=None, facet: str=None, filterQuery: str=None, highlight: str=None, partial: Partial=None, queryOptions: str=None, queryParser: str=None, return_: str=None, size: Size=None, sort: str=None, start: Start=None, stats: str=None) -> SearchResponse:
        r"""Retrieves a list of documents that match the specified search criteria. How you specify the search criteria depends on which query parser you use. Amazon CloudSearch supports four query parsers: <ul> <li><code>simple</code>: search all <code>text</code> and <code>text-array</code> fields for the specified string. Search for phrases, individual terms, and prefixes. </li> <li><code>structured</code>: search specific fields, construct compound queries using Boolean operators, and use advanced features such as term boosting and proximity searching.</li> <li><code>lucene</code>: specify search criteria using the Apache Lucene query parser syntax.</li> <li><code>dismax</code>: specify search criteria using the simplified subset of the Apache Lucene query parser syntax defined by the DisMax query parser.</li> </ul> For more information, see <a href="http://docs.aws.amazon.com/cloudsearch/latest/developerguide/searching.html">Searching Your Data</a> in the <i>Amazon CloudSearch Developer Guide</i>. The endpoint for submitting <code>Search</code> requests is domain-specific. You submit search requests to a domain's search endpoint. To get the search endpoint for your domain, use the Amazon CloudSearch configuration service <code>DescribeDomains</code> action. A domain's endpoints are also displayed on the domain dashboard in the Amazon CloudSearch console. 

        :param self:
        :param stats:  Specifies one or more fields for which to get statistics information. Each specified field must be facet-enabled in the domain configuration. The fields are specified in JSON using the form: <code>{"FIELD-A":{},"FIELD-B":{}}</code> There are currently no options supported for statistics.<br/>start:  Specifies the offset of the first search hit you want to return. Note that the result set is zero-based; the first result is at index 0. You can specify either the <code>start</code> or <code>cursor</code> parameter in a request, they are mutually exclusive.  For more information, see <a href="http://docs.aws.amazon.com/cloudsearch/latest/developerguide/paginating-results.html">Paginating Results</a> in the <i>Amazon CloudSearch Developer Guide</i>.<br/>sort:  Specifies the fields or custom expressions to use to sort the search results. Multiple fields or expressions are specified as a comma-separated list. You must specify the sort direction (<code>asc</code> or <code>desc</code>) for each field; for example, <code>year desc,title asc</code>. To use a field to sort results, the field must be sort-enabled in the domain configuration. Array type fields cannot be used for sorting. If no <code>sort</code> parameter is specified, results are sorted by their default relevance scores in descending order: <code>_score desc</code>. You can also sort by document ID (<code>_id asc</code>) and version (<code>_version desc</code>). For more information, see <a href="http://docs.aws.amazon.com/cloudsearch/latest/developerguide/sorting-results.html">Sorting Results</a> in the <i>Amazon CloudSearch Developer Guide</i>.<br/>size:  Specifies the maximum number of search hits to include in the response. <br/>return:  Specifies the field and expression values to include in the response. Multiple fields or expressions are specified as a comma-separated list. By default, a search response includes all return enabled fields (<code>_all_fields</code>). To return only the document IDs for the matching documents, specify <code>_no_fields</code>. To retrieve the relevance score calculated for each document, specify <code>_score</code>. <br/>queryParser:  Specifies which query parser to use to process the request. If <code>queryParser</code> is not specified, Amazon CloudSearch uses the <code>simple</code> query parser.  Amazon CloudSearch supports four query parsers: <ul> <li> <code>simple</code>: perform simple searches of <code>text</code> and <code>text-array</code> fields. By default, the <code>simple</code> query parser searches all <code>text</code> and <code>text-array</code> fields. You can specify which fields to search by with the <code>queryOptions</code> parameter. If you prefix a search term with a plus sign (+) documents must contain the term to be considered a match. (This is the default, unless you configure the default operator with the <code>queryOptions</code> parameter.) You can use the <code>-</code> (NOT), <code>|</code> (OR), and <code>*</code> (wildcard) operators to exclude particular terms, find results that match any of the specified terms, or search for a prefix. To search for a phrase rather than individual terms, enclose the phrase in double quotes. For more information, see <a href="http://docs.aws.amazon.com/cloudsearch/latest/developerguide/searching-text.html">Searching for Text</a> in the <i>Amazon CloudSearch Developer Guide</i>. </li> <li> <code>structured</code>: perform advanced searches by combining multiple expressions to define the search criteria. You can also search within particular fields, search for values and ranges of values, and use advanced options such as term boosting, <code>matchall</code>, and <code>near</code>. For more information, see <a href="http://docs.aws.amazon.com/cloudsearch/latest/developerguide/searching-compound-queries.html">Constructing Compound Queries</a> in the <i>Amazon CloudSearch Developer Guide</i>. </li> <li> <code>lucene</code>: search using the Apache Lucene query parser syntax. For more information, see <a href="http://lucene.apache.org/core/4_6_0/queryparser/org/apache/lucene/queryparser/classic/package-summary.html#package_description">Apache Lucene Query Parser Syntax</a>. </li> <li> <code>dismax</code>: search using the simplified subset of the Apache Lucene query parser syntax defined by the DisMax query parser. For more information, see <a href="http://wiki.apache.org/solr/DisMaxQParserPlugin#Query_Syntax">DisMax Query Parser Syntax</a>. </li> </ul><br/>queryOptions:  Configures options for the query parser specified in the <code>queryParser</code> parameter. You specify the options in JSON using the following form <code>{"OPTION1":"VALUE1","OPTION2":VALUE2"..."OPTIONN":"VALUEN"}.</code> The options you can configure vary according to which parser you use: <ul> <li><code>defaultOperator</code>: The default operator used to combine individual terms in the search string. For example: <code>defaultOperator: 'or'</code>. For the <code>dismax</code> parser, you specify a percentage that represents the percentage of terms in the search string (rounded down) that must match, rather than a default operator. A value of <code>0%</code> is the equivalent to OR, and a value of <code>100%</code> is equivalent to AND. The percentage must be specified as a value in the range 0-100 followed by the percent (%) symbol. For example, <code>defaultOperator: 50%</code>. Valid values: <code>and</code>, <code>or</code>, a percentage in the range 0%-100% (<code>dismax</code>). Default: <code>and</code> (<code>simple</code>, <code>structured</code>, <code>lucene</code>) or <code>100</code> (<code>dismax</code>). Valid for: <code>simple</code>, <code>structured</code>, <code>lucene</code>, and <code>dismax</code>.</li> <li><code>fields</code>: An array of the fields to search when no fields are specified in a search. If no fields are specified in a search and this option is not specified, all text and text-array fields are searched. You can specify a weight for each field to control the relative importance of each field when Amazon CloudSearch calculates relevance scores. To specify a field weight, append a caret (<code>^</code>) symbol and the weight to the field name. For example, to boost the importance of the <code>title</code> field over the <code>description</code> field you could specify: <code>"fields":["title^5","description"]</code>. Valid values: The name of any configured field and an optional numeric value greater than zero. Default: All <code>text</code> and <code>text-array</code> fields. Valid for: <code>simple</code>, <code>structured</code>, <code>lucene</code>, and <code>dismax</code>.</li> <li><code>operators</code>: An array of the operators or special characters you want to disable for the simple query parser. If you disable the <code>and</code>, <code>or</code>, or <code>not</code> operators, the corresponding operators (<code>+</code>, <code>|</code>, <code>-</code>) have no special meaning and are dropped from the search string. Similarly, disabling <code>prefix</code> disables the wildcard operator (<code>*</code>) and disabling <code>phrase</code> disables the ability to search for phrases by enclosing phrases in double quotes. Disabling precedence disables the ability to control order of precedence using parentheses. Disabling <code>near</code> disables the ability to use the ~ operator to perform a sloppy phrase search. Disabling the <code>fuzzy</code> operator disables the ability to use the ~ operator to perform a fuzzy search. <code>escape</code> disables the ability to use a backslash (<code>\</code>) to escape special characters within the search string. Disabling whitespace is an advanced option that prevents the parser from tokenizing on whitespace, which can be useful for Vietnamese. (It prevents Vietnamese words from being split incorrectly.) For example, you could disable all operators other than the phrase operator to support just simple term and phrase queries: <code>"operators":["and","not","or", "prefix"]</code>. Valid values: <code>and</code>, <code>escape</code>, <code>fuzzy</code>, <code>near</code>, <code>not</code>, <code>or</code>, <code>phrase</code>, <code>precedence</code>, <code>prefix</code>, <code>whitespace</code>. Default: All operators and special characters are enabled. Valid for: <code>simple</code>.</li> <li><code>phraseFields</code>: An array of the <code>text</code> or <code>text-array</code> fields you want to use for phrase searches. When the terms in the search string appear in close proximity within a field, the field scores higher. You can specify a weight for each field to boost that score. The <code>phraseSlop</code> option controls how much the matches can deviate from the search string and still be boosted. To specify a field weight, append a caret (<code>^</code>) symbol and the weight to the field name. For example, to boost phrase matches in the <code>title</code> field over the <code>abstract</code> field, you could specify: <code>"phraseFields":["title^3", "plot"]</code> Valid values: The name of any <code>text</code> or <code>text-array</code> field and an optional numeric value greater than zero. Default: No fields. If you don't specify any fields with <code>phraseFields</code>, proximity scoring is disabled even if <code>phraseSlop</code> is specified. Valid for: <code>dismax</code>.</li> <li><code>phraseSlop</code>: An integer value that specifies how much matches can deviate from the search phrase and still be boosted according to the weights specified in the <code>phraseFields</code> option; for example, <code>phraseSlop: 2</code>. You must also specify <code>phraseFields</code> to enable proximity scoring. Valid values: positive integers. Default: 0. Valid for: <code>dismax</code>.</li> <li><code>explicitPhraseSlop</code>: An integer value that specifies how much a match can deviate from the search phrase when the phrase is enclosed in double quotes in the search string. (Phrases that exceed this proximity distance are not considered a match.) For example, to specify a slop of three for dismax phrase queries, you would specify <code>"explicitPhraseSlop":3</code>. Valid values: positive integers. Default: 0. Valid for: <code>dismax</code>.</li> <li><code>tieBreaker</code>: When a term in the search string is found in a document's field, a score is calculated for that field based on how common the word is in that field compared to other documents. If the term occurs in multiple fields within a document, by default only the highest scoring field contributes to the document's overall score. You can specify a <code>tieBreaker</code> value to enable the matches in lower-scoring fields to contribute to the document's score. That way, if two documents have the same max field score for a particular term, the score for the document that has matches in more fields will be higher. The formula for calculating the score with a tieBreaker is <code>(max field score) + (tieBreaker) * (sum of the scores for the rest of the matching fields)</code>. Set <code>tieBreaker</code> to 0 to disregard all but the highest scoring field (pure max): <code>"tieBreaker":0</code>. Set to 1 to sum the scores from all fields (pure sum): <code>"tieBreaker":1</code>. Valid values: 0.0 to 1.0. Default: 0.0. Valid for: <code>dismax</code>. </li> </ul><br/>query:  Specifies the search criteria for the request. How you specify the search criteria depends on the query parser used for the request and the parser options specified in the <code>queryOptions</code> parameter. By default, the <code>simple</code> query parser is used to process requests. To use the <code>structured</code>, <code>lucene</code>, or <code>dismax</code> query parser, you must also specify the <code>queryParser</code> parameter.  For more information about specifying search criteria, see <a href="http://docs.aws.amazon.com/cloudsearch/latest/developerguide/searching.html">Searching Your Data</a> in the <i>Amazon CloudSearch Developer Guide</i>.<br/>partial:  Enables partial results to be returned if one or more index partitions are unavailable. When your search index is partitioned across multiple search instances, by default Amazon CloudSearch only returns results if every partition can be queried. This means that the failure of a single search instance can result in 5xx (internal server) errors. When you enable partial results, Amazon CloudSearch returns whatever results are available and includes the percentage of documents searched in the search results (percent-searched). This enables you to more gracefully degrade your users' search experience. For example, rather than displaying no results, you could display the partial results and a message indicating that the results might be incomplete due to a temporary system outage.<br/>highlight:  Retrieves highlights for matches in the specified <code>text</code> or <code>text-array</code> fields. Each specified field must be highlight enabled in the domain configuration. The fields and options are specified in JSON using the form <code>{"FIELD":{"OPTION":VALUE,"OPTION:"STRING"},"FIELD":{"OPTION":VALUE,"OPTION":"STRING"}}</code>. You can specify the following highlight options: <ul> <li> <code>format</code>: specifies the format of the data in the text field: <code>text</code> or <code>html</code>. When data is returned as HTML, all non-alphanumeric characters are encoded. The default is <code>html</code>. </li> <li> <code>max_phrases</code>: specifies the maximum number of occurrences of the search term(s) you want to highlight. By default, the first occurrence is highlighted. </li> <li> <code>pre_tag</code>: specifies the string to prepend to an occurrence of a search term. The default for HTML highlights is <code>&amp;lt;em&amp;gt;</code>. The default for text highlights is <code>*</code>. </li> <li> <code>post_tag</code>: specifies the string to append to an occurrence of a search term. The default for HTML highlights is <code>&amp;lt;/em&amp;gt;</code>. The default for text highlights is <code>*</code>. </li> </ul> If no highlight options are specified for a field, the returned field text is treated as HTML and the first match is highlighted with emphasis tags: <code>&amp;lt;em&gt;search-term&amp;lt;/em&amp;gt;</code>. For example, the following request retrieves highlights for the <code>actors</code> and <code>title</code> fields.  <code>{ "actors": {}, "title": {"format": "text","max_phrases": 2,"pre_tag": "<b>","post_tag": "</b>"} }</code><br/>filterQuery:  Specifies a structured query that filters the results of a search without affecting how the results are scored and sorted. You use <code>filterQuery</code> in conjunction with the <code>query</code> parameter to filter the documents that match the constraints specified in the <code>query</code> parameter. Specifying a filter controls only which matching documents are included in the results, it has no effect on how they are scored and sorted. The <code>filterQuery</code> parameter supports the full structured query syntax.  For more information about using filters, see <a href="http://docs.aws.amazon.com/cloudsearch/latest/developerguide/filtering-results.html">Filtering Matching Documents</a> in the <i>Amazon CloudSearch Developer Guide</i>.<br/>facet:  Specifies one or more fields for which to get facet information, and options that control how the facet information is returned. Each specified field must be facet-enabled in the domain configuration. The fields and options are specified in JSON using the form <code>{"FIELD":{"OPTION":VALUE,"OPTION:"STRING"},"FIELD":{"OPTION":VALUE,"OPTION":"STRING"}}</code>. You can specify the following faceting options: <ul> <li> <code>buckets</code> specifies an array of the facet values or ranges to count. Ranges are specified using the same syntax that you use to search for a range of values. For more information, see <a href="http://docs.aws.amazon.com/cloudsearch/latest/developerguide/searching-ranges.html"> Searching for a Range of Values</a> in the <i>Amazon CloudSearch Developer Guide</i>. Buckets are returned in the order they are specified in the request. The <code>sort</code> and <code>size</code> options are not valid if you specify <code>buckets</code>. </li> <li> <code>size</code> specifies the maximum number of facets to include in the results. By default, Amazon CloudSearch returns counts for the top 10. The <code>size</code> parameter is only valid when you specify the <code>sort</code> option; it cannot be used in conjunction with <code>buckets</code>. </li> <li> <code>sort</code> specifies how you want to sort the facets in the results: <code>bucket</code> or <code>count</code>. Specify <code>bucket</code> to sort alphabetically or numerically by facet value (in ascending order). Specify <code>count</code> to sort by the facet counts computed for each facet value (in descending order). To retrieve facet counts for particular values or ranges of values, use the <code>buckets</code> option instead of <code>sort</code>.  </li> </ul> If no facet options are specified, facet counts are computed for all field values, the facets are sorted by facet count, and the top 10 facets are returned in the results. To count particular buckets of values, use the <code>buckets</code> option. For example, the following request uses the <code>buckets</code> option to calculate and return facet counts by decade. <code> {"year":{"buckets":["[1970,1979]","[1980,1989]","[1990,1999]","[2000,2009]","[2010,}"]}} </code> To sort facets by facet count, use the <code>count</code> option. For example, the following request sets the <code>sort</code> option to <code>count</code> to sort the facet values by facet count, with the facet values that have the most matching documents listed first. Setting the <code>size</code> option to 3 returns only the top three facet values. <code> {"year":{"sort":"count","size":3}} </code> To sort the facets by value, use the <code>bucket</code> option. For example, the following request sets the <code>sort</code> option to <code>bucket</code> to sort the facet values numerically by year, with earliest year listed first.  <code> {"year":{"sort":"bucket"}} </code> For more information, see <a href="http://docs.aws.amazon.com/cloudsearch/latest/developerguide/faceting.html">Getting and Using Facet Information</a> in the <i>Amazon CloudSearch Developer Guide</i>.<br/>expr:  Defines one or more numeric expressions that can be used to sort results or specify search or filter criteria. You can also specify expressions as return fields.  You specify the expressions in JSON using the form <code>{"EXPRESSIONNAME":"EXPRESSION"}</code>. You can define and use multiple expressions in a search request. For example: <code> {"expression1":"_score*rating", "expression2":"(1/rank)*year"} </code>  For information about the variables, operators, and functions you can use in expressions, see <a href="http://docs.aws.amazon.com/cloudsearch/latest/developerguide/configuring-expressions.html#writing-expressions">Writing Expressions</a> in the <i>Amazon CloudSearch Developer Guide</i>.<br/>cursor:  Retrieves a cursor value you can use to page through large result sets. Use the <code>size</code> parameter to control the number of hits to include in each response. You can specify either the <code>cursor</code> or <code>start</code> parameter in a request; they are mutually exclusive. To get the first cursor, set the cursor value to <code>initial</code>. In subsequent requests, specify the cursor value returned in the hits section of the response.  For more information, see <a href="http://docs.aws.amazon.com/cloudsearch/latest/developerguide/paginating-results.html">Paginating Results</a> in the <i>Amazon CloudSearch Developer Guide</i>.<br/>
        :return: stats:  The requested field statistics information.<br/>facets:  The requested facet information.<br/>hits:  The documents that match the search criteria.:<br/>status:  The status information returned for the search request.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>rid</i> The encrypted resource ID for the request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>timems</i> How long it took to process the request, in milliseconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>hit</i> A document that matches the search request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>cursor</i> A cursor that can be used to retrieve the next set of matching documents when you want to page through a large result set.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>start</i> The index of the first matching document.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>found</i> The total number of documents that match the search request.<br/>        """
        pass

    def suggest(self, suggester: str, query: str, size: SuggestionsSize=None) -> SuggestResponse:
        r"""Retrieves autocomplete suggestions for a partial query string. You can use suggestions enable you to display likely matches before users finish typing. In Amazon CloudSearch, suggestions are based on the contents of a particular text field. When you request suggestions, Amazon CloudSearch finds all of the documents whose values in the suggester field start with the specified query string. The beginning of the field must match the query string to be considered a match.  For more information about configuring suggesters and retrieving suggestions, see <a href="http://docs.aws.amazon.com/cloudsearch/latest/developerguide/getting-suggestions.html">Getting Suggestions</a> in the <i>Amazon CloudSearch Developer Guide</i>.  The endpoint for submitting <code>Suggest</code> requests is domain-specific. You submit suggest requests to a domain's search endpoint. To get the search endpoint for your domain, use the Amazon CloudSearch configuration service <code>DescribeDomains</code> action. A domain's endpoints are also displayed on the domain dashboard in the Amazon CloudSearch console. 

        :param self:
        :param size:  Specifies the maximum number of suggestions to return. <br/>suggester:  Specifies the name of the suggester to use to find suggested matches.<br/>query:  Specifies the string for which you want to get suggestions.<br/>
        :return: suggest:  Container for the matching search suggestion information.:<br/>status:  The status of a <code>SuggestRequest</code>. Contains the resource ID (<code>rid</code>) and how long it took to process the request (<code>timems</code>).:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>rid</i> The encrypted resource ID for the request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>timems</i> How long it took to process the request, in milliseconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>suggestions</i> The documents that match the query string.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>found</i> The number of documents that were found to match the query string.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>query</i> The query string specified in the suggest request.<br/>        """
        pass

    def upload_documents(self, contentType: str, documents: Blob) -> UploadDocumentsResponse:
        r"""Posts a batch of documents to a search domain for indexing. A document batch is a collection of add and delete operations that represent the documents you want to add, update, or delete from your domain. Batches can be described in either JSON or XML. Each item that you want Amazon CloudSearch to return as a search result (such as a product) is represented as a document. Every document has a unique ID and one or more fields that contain the data that you want to search and return in results. Individual documents cannot contain more than 1 MB of data. The entire batch cannot exceed 5 MB. To get the best possible upload performance, group add and delete operations in batches that are close the 5 MB limit. Submitting a large volume of single-document batches can overload a domain's document service.  The endpoint for submitting <code>UploadDocuments</code> requests is domain-specific. To get the document endpoint for your domain, use the Amazon CloudSearch configuration service <code>DescribeDomains</code> action. A domain's endpoints are also displayed on the domain dashboard in the Amazon CloudSearch console.  For more information about formatting your data for Amazon CloudSearch, see <a href="http://docs.aws.amazon.com/cloudsearch/latest/developerguide/preparing-data.html">Preparing Your Data</a> in the <i>Amazon CloudSearch Developer Guide</i>. For more information about uploading data for indexing, see <a href="http://docs.aws.amazon.com/cloudsearch/latest/developerguide/uploading-data.html">Uploading Data</a> in the <i>Amazon CloudSearch Developer Guide</i>. 

        :param self:
        :param contentType:  The format of the batch you are uploading. Amazon CloudSearch supports two document batch formats: <ul> <li>application/json</li> <li>application/xml</li> </ul><br/>documents:  A batch of documents formatted in JSON or HTML.<br/>
        :return: warnings:  Any warnings returned by the document service about the documents being uploaded.<br/>deletes:  The number of documents that were deleted from the search domain.<br/>adds:  The number of documents that were added to the search domain.<br/>status:  The status of an <code>UploadDocumentsRequest</code>.<br/>        """
        pass





class CloudTrail(BaseClient):
    r"""<fullname>AWS CloudTrail</fullname> This is the CloudTrail API Reference. It provides descriptions of actions, data types, common parameters, and common errors for CloudTrail. CloudTrail is a web service that records AWS API calls for your AWS account and delivers log files to an Amazon S3 bucket. The recorded information includes the identity of the user, the start time of the AWS API call, the source IP address, the request parameters, and the response elements returned by the service. <note> As an alternative to the API, you can use one of the AWS SDKs, which consist of libraries and sample code for various programming languages and platforms (Java, Ruby, .NET, iOS, Android, etc.). The SDKs provide a convenient way to create programmatic access to AWSCloudTrail. For example, the SDKs take care of cryptographically signing requests, managing errors, and retrying requests automatically. For information about the AWS SDKs, including how to download and install them, see the <a href="http://aws.amazon.com/tools/">Tools for Amazon Web Services page</a>. </note> See the <a href="https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html">AWS CloudTrail User Guide</a> for information about the data that is included with each AWS API call listed in the log files."""


    class LookupEventsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `lookup_events` for valid parameters"""
            pass
    class ListPublicKeysPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_public_keys` for valid parameters"""
            pass
    class ListTagsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_tags` for valid parameters"""
            pass
    class ListTrailsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_trails` for valid parameters"""
            pass


    class AddTagsRequest(Mapping):
        pass
    
    class AddTagsResponse(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class CreateTrailRequest(Mapping):
        pass
    
    class CreateTrailResponse(Mapping):
        pass
    
    class Boolean(object):
        pass
    
    class DeleteTrailRequest(Mapping):
        pass
    
    class DeleteTrailResponse(Mapping):
        pass
    
    class DescribeTrailsRequest(Mapping):
        pass
    
    class DescribeTrailsResponse(Mapping):
        pass
    
    class String(object):
        pass
    
    class GetEventSelectorsRequest(Mapping):
        pass
    
    class GetEventSelectorsResponse(Mapping):
        pass
    
    class GetInsightSelectorsRequest(Mapping):
        pass
    
    class GetInsightSelectorsResponse(Mapping):
        pass
    
    class GetTrailRequest(Mapping):
        pass
    
    class GetTrailResponse(Mapping):
        pass
    
    class GetTrailStatusRequest(Mapping):
        pass
    
    class GetTrailStatusResponse(Mapping):
        pass
    
    class ListPublicKeysRequest(Mapping):
        pass
    
    class ListPublicKeysResponse(Mapping):
        pass
    
    class Date(object):
        pass
    
    class ListTagsRequest(Mapping):
        pass
    
    class ListTagsResponse(Mapping):
        pass
    
    class ListTrailsRequest(Mapping):
        pass
    
    class ListTrailsResponse(Mapping):
        pass
    
    class LookupEventsRequest(Mapping):
        pass
    
    class LookupEventsResponse(Mapping):
        pass
    
    class LookupAttribute(Mapping):
        pass
    
    class PutEventSelectorsRequest(Mapping):
        pass
    
    class PutEventSelectorsResponse(Mapping):
        pass
    
    class EventSelector(Mapping):
        pass
    
    class AdvancedEventSelector(Mapping):
        pass
    
    class PutInsightSelectorsRequest(Mapping):
        pass
    
    class PutInsightSelectorsResponse(Mapping):
        pass
    
    class InsightSelector(Mapping):
        pass
    
    class RemoveTagsRequest(Mapping):
        pass
    
    class RemoveTagsResponse(Mapping):
        pass
    
    class StartLoggingRequest(Mapping):
        pass
    
    class StartLoggingResponse(Mapping):
        pass
    
    class StopLoggingRequest(Mapping):
        pass
    
    class StopLoggingResponse(Mapping):
        pass
    
    class UpdateTrailRequest(Mapping):
        pass
    
    class UpdateTrailResponse(Mapping):
        pass
    
    def add_tags(self, ResourceId: str, TagsList: List[Tag]=None) -> AddTagsResponse:
        r"""Adds one or more tags to a trail, up to a limit of 50. Overwrites an existing tag's value when a new value is specified for an existing tag key. Tag key names must be unique for a trail; you cannot have two keys with the same name but different values. If you specify a key without a value, the tag will be created with the specified key and a value of null. You can tag a trail that applies to all AWS Regions only from the Region in which the trail was created (also known as its home region).

        :param self:
        :param TagsList:  Contains a list of CloudTrail tags, up to a limit of 50<br/>ResourceId:  Specifies the ARN of the trail to which one or more tags will be added. The format of a trail ARN is:  <code>arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail</code> <br/>
        :return:         """
        pass

    def create_trail(self, S3BucketName: str, Name: str, S3KeyPrefix: str=None, SnsTopicName: str=None, IncludeGlobalServiceEvents: Boolean=None, IsMultiRegionTrail: Boolean=None, EnableLogFileValidation: Boolean=None, CloudWatchLogsLogGroupArn: str=None, CloudWatchLogsRoleArn: str=None, KmsKeyId: str=None, IsOrganizationTrail: Boolean=None, TagsList: List[Tag]=None) -> CreateTrailResponse:
        r"""Creates a trail that specifies the settings for delivery of log data to an Amazon S3 bucket. 

        :param self:
        :param TagsList:  A list of tags.<br/>IsOrganizationTrail:  Specifies whether the trail is created for all accounts in an organization in AWS Organizations, or only for the current AWS account. The default is false, and cannot be true unless the call is made on behalf of an AWS account that is the master account for an organization in AWS Organizations.<br/>KmsKeyId:  Specifies the KMS key ID to use to encrypt the logs delivered by CloudTrail. The value can be an alias name prefixed by "alias/", a fully specified ARN to an alias, a fully specified ARN to a key, or a globally unique identifier. Examples: <ul> <li> alias/MyAliasName </li> <li> arn:aws:kms:us-east-2:123456789012:alias/MyAliasName </li> <li> arn:aws:kms:us-east-2:123456789012:key/12345678-1234-1234-1234-123456789012 </li> <li> 12345678-1234-1234-1234-123456789012 </li> </ul><br/>CloudWatchLogsRoleArn:  Specifies the role for the CloudWatch Logs endpoint to assume to write to a user's log group.<br/>CloudWatchLogsLogGroupArn:  Specifies a log group name using an Amazon Resource Name (ARN), a unique identifier that represents the log group to which CloudTrail logs will be delivered. Not required unless you specify CloudWatchLogsRoleArn.<br/>EnableLogFileValidation:  Specifies whether log file integrity validation is enabled. The default is false. <note> When you disable log file integrity validation, the chain of digest files is broken after one hour. CloudTrail will not create digest files for log files that were delivered during a period in which log file integrity validation was disabled. For example, if you enable log file integrity validation at noon on January 1, disable it at noon on January 2, and re-enable it at noon on January 10, digest files will not be created for the log files delivered from noon on January 2 to noon on January 10. The same applies whenever you stop CloudTrail logging or delete a trail. </note><br/>IsMultiRegionTrail:  Specifies whether the trail is created in the current region or in all regions. The default is false, which creates a trail only in the region where you are signed in. As a best practice, consider creating trails that log events in all regions.<br/>IncludeGlobalServiceEvents:  Specifies whether the trail is publishing events from global services such as IAM to the log files.<br/>SnsTopicName:  Specifies the name of the Amazon SNS topic defined for notification of log file delivery. The maximum length is 256 characters.<br/>S3KeyPrefix:  Specifies the Amazon S3 key prefix that comes after the name of the bucket you have designated for log file delivery. For more information, see <a href="https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-find-log-files.html">Finding Your CloudTrail Log Files</a>. The maximum length is 200 characters.<br/>S3BucketName:  Specifies the name of the Amazon S3 bucket designated for publishing log files. See <a href="https://docs.aws.amazon.com/awscloudtrail/latest/userguide/create_trail_naming_policy.html">Amazon S3 Bucket Naming Requirements</a>.<br/>Name:  Specifies the name of the trail. The name must meet the following requirements: <ul> <li> Contain only ASCII letters (a-z, A-Z), numbers (0-9), periods (.), underscores (_), or dashes (-) </li> <li> Start with a letter or number, and end with a letter or number </li> <li> Be between 3 and 128 characters </li> <li> Have no adjacent periods, underscores or dashes. Names like <code>my-_namespace</code> and <code>my--namespace</code> are invalid. </li> <li> Not be in IP address format (for example, 192.168.5.4) </li> </ul><br/>
        :return: IsOrganizationTrail:  Specifies whether the trail is an organization trail.<br/>KmsKeyId:  Specifies the KMS key ID that encrypts the logs delivered by CloudTrail. The value is a fully specified ARN to a KMS key in the format:  <code>arn:aws:kms:us-east-2:123456789012:key/12345678-1234-1234-1234-123456789012</code> <br/>CloudWatchLogsRoleArn:  Specifies the role for the CloudWatch Logs endpoint to assume to write to a user's log group.<br/>CloudWatchLogsLogGroupArn:  Specifies the Amazon Resource Name (ARN) of the log group to which CloudTrail logs will be delivered.<br/>LogFileValidationEnabled:  Specifies whether log file integrity validation is enabled.<br/>TrailARN:  Specifies the ARN of the trail that was created. The format of a trail ARN is:  <code>arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail</code> <br/>IsMultiRegionTrail:  Specifies whether the trail exists in one region or in all regions.<br/>IncludeGlobalServiceEvents:  Specifies whether the trail is publishing events from global services such as IAM to the log files.<br/>SnsTopicARN:  Specifies the ARN of the Amazon SNS topic that CloudTrail uses to send notifications when log files are delivered. The format of a topic ARN is:  <code>arn:aws:sns:us-east-2:123456789012:MyTopic</code> <br/>SnsTopicName:  This field is no longer in use. Use SnsTopicARN.<br/>S3KeyPrefix:  Specifies the Amazon S3 key prefix that comes after the name of the bucket you have designated for log file delivery. For more information, see <a href="https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-find-log-files.html">Finding Your CloudTrail Log Files</a>.<br/>S3BucketName:  Specifies the name of the Amazon S3 bucket designated for publishing log files.<br/>Name:  Specifies the name of the trail.<br/>        """
        pass

    def delete_trail(self, Name: str) -> DeleteTrailResponse:
        r"""Deletes a trail. This operation must be called from the region in which the trail was created. <code>DeleteTrail</code> cannot be called on the shadow trails (replicated trails in other regions) of a trail that is enabled in all regions.

        :param self:
        :param Name:  Specifies the name or the CloudTrail ARN of the trail to be deleted. The format of a trail ARN is: <code>arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail</code> <br/>
        :return:         """
        pass

    def describe_trails(self, trailNameList: List[String]=None, includeShadowTrails: Boolean=None) -> DescribeTrailsResponse:
        r"""Retrieves settings for one or more trails associated with the current region for your account.

        :param self:
        :param includeShadowTrails:  Specifies whether to include shadow trails in the response. A shadow trail is the replication in a region of a trail that was created in a different region, or in the case of an organization trail, the replication of an organization trail in member accounts. If you do not include shadow trails, organization trails in a member account and region replication trails will not be returned. The default is true.<br/>trailNameList:  Specifies a list of trail names, trail ARNs, or both, of the trails to describe. The format of a trail ARN is:  <code>arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail</code>  If an empty list is specified, information for the trail in the current region is returned. <ul> <li> If an empty list is specified and <code>IncludeShadowTrails</code> is false, then information for all trails in the current region is returned. </li> <li> If an empty list is specified and IncludeShadowTrails is null or true, then information for all trails in the current region and any associated shadow trails in other regions is returned. </li> </ul> <note> If one or more trail names are specified, information is returned only if the names match the names of trails belonging only to the current region. To return information about a trail in another region, you must specify its trail ARN. </note><br/>
        :return: trailList:  The list of trail objects. Trail objects with string values are only returned if values for the objects exist in a trail's configuration. For example, <code>SNSTopicName</code> and <code>SNSTopicARN</code> are only returned in results if a trail is configured to send SNS notifications. Similarly, <code>KMSKeyId</code> only appears in results if a trail's log files are encrypted with AWS KMS-managed keys.<br/>        """
        pass

    def get_event_selectors(self, TrailName: str) -> GetEventSelectorsResponse:
        r"""Describes the settings for the event selectors that you configured for your trail. The information returned for your event selectors includes the following: <ul> <li> If your event selector includes read-only events, write-only events, or all events. This applies to both management events and data events. </li> <li> If your event selector includes management events. </li> <li> If your event selector includes data events, the resources on which you are logging data events. </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-management-and-data-events-with-cloudtrail.html">Logging Data and Management Events for Trails </a> in the <i>AWS CloudTrail User Guide</i>.

        :param self:
        :param TrailName:  Specifies the name of the trail or trail ARN. If you specify a trail name, the string must meet the following requirements: <ul> <li> Contain only ASCII letters (a-z, A-Z), numbers (0-9), periods (.), underscores (_), or dashes (-) </li> <li> Start with a letter or number, and end with a letter or number </li> <li> Be between 3 and 128 characters </li> <li> Have no adjacent periods, underscores or dashes. Names like <code>my-_namespace</code> and <code>my--namespace</code> are not valid. </li> <li> Not be in IP address format (for example, 192.168.5.4) </li> </ul> If you specify a trail ARN, it must be in the format:  <code>arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail</code> <br/>
        :return: AdvancedEventSelectors:   The advanced event selectors that are configured for the trail. <br/>EventSelectors:  The event selectors that are configured for the trail.<br/>TrailARN:  The specified trail ARN that has the event selectors.<br/>        """
        pass

    def get_insight_selectors(self, TrailName: str) -> GetInsightSelectorsResponse:
        r"""Describes the settings for the Insights event selectors that you configured for your trail. <code>GetInsightSelectors</code> shows if CloudTrail Insights event logging is enabled on the trail, and if it is, which insight types are enabled. If you run <code>GetInsightSelectors</code> on a trail that does not have Insights events enabled, the operation throws the exception <code>InsightNotEnabledException</code>  For more information, see <a href="https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-insights-events-with-cloudtrail.html">Logging CloudTrail Insights Events for Trails </a> in the <i>AWS CloudTrail User Guide</i>.

        :param self:
        :param TrailName:  Specifies the name of the trail or trail ARN. If you specify a trail name, the string must meet the following requirements: <ul> <li> Contain only ASCII letters (a-z, A-Z), numbers (0-9), periods (.), underscores (_), or dashes (-) </li> <li> Start with a letter or number, and end with a letter or number </li> <li> Be between 3 and 128 characters </li> <li> Have no adjacent periods, underscores or dashes. Names like <code>my-_namespace</code> and <code>my--namespace</code> are not valid. </li> <li> Not be in IP address format (for example, 192.168.5.4) </li> </ul> If you specify a trail ARN, it must be in the format:  <code>arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail</code> <br/>
        :return: InsightSelectors:  A JSON string that contains the insight types you want to log on a trail. In this release, only <code>ApiCallRateInsight</code> is supported as an insight type.<br/>TrailARN:  The Amazon Resource Name (ARN) of a trail for which you want to get Insights selectors.<br/>        """
        pass

    def get_trail(self, Name: str) -> GetTrailResponse:
        r"""Returns settings information for a specified trail.

        :param self:
        :param Name:  The name or the Amazon Resource Name (ARN) of the trail for which you want to retrieve settings information.<br/>
        :return: Trail:  The settings for a trail.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsOrganizationTrail</i> Specifies whether the trail is an organization trail.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HasInsightSelectors</i> Specifies whether a trail has insight types specified in an <code>InsightSelector</code> list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HasCustomEventSelectors</i> Specifies if the trail has custom event selectors.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> Specifies the KMS key ID that encrypts the logs delivered by CloudTrail. The value is a fully specified ARN to a KMS key in the format:  <code>arn:aws:kms:us-east-2:123456789012:key/12345678-1234-1234-1234-123456789012</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudWatchLogsRoleArn</i> Specifies the role for the CloudWatch Logs endpoint to assume to write to a user's log group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudWatchLogsLogGroupArn</i> Specifies an Amazon Resource Name (ARN), a unique identifier that represents the log group to which CloudTrail logs will be delivered.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogFileValidationEnabled</i> Specifies whether log file validation is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TrailARN</i> Specifies the ARN of the trail. The format of a trail ARN is:  <code>arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HomeRegion</i> The region in which the trail was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsMultiRegionTrail</i> Specifies whether the trail exists only in one region or exists in all regions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeGlobalServiceEvents</i> Set to <b>True</b> to include AWS API calls from AWS global services such as IAM. Otherwise, <b>False</b>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnsTopicARN</i> Specifies the ARN of the Amazon SNS topic that CloudTrail uses to send notifications when log files are delivered. The format of a topic ARN is:  <code>arn:aws:sns:us-east-2:123456789012:MyTopic</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnsTopicName</i> This field is no longer in use. Use SnsTopicARN.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3KeyPrefix</i> Specifies the Amazon S3 key prefix that comes after the name of the bucket you have designated for log file delivery. For more information, see <a href="https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-find-log-files.html">Finding Your CloudTrail Log Files</a>.The maximum length is 200 characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3BucketName</i> Name of the Amazon S3 bucket into which CloudTrail delivers your trail files. See <a href="https://docs.aws.amazon.com/awscloudtrail/latest/userguide/create_trail_naming_policy.html">Amazon S3 Bucket Naming Requirements</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> Name of the trail set by calling <a>CreateTrail</a>. The maximum length is 128 characters.<br/>        """
        pass

    def get_trail_status(self, Name: str) -> GetTrailStatusResponse:
        r"""Returns a JSON-formatted list of information about the specified trail. Fields include information on delivery errors, Amazon SNS and Amazon S3 errors, and start and stop logging times for each trail. This operation returns trail status from a single region. To return trail status from all regions, you must call the operation on each region.

        :param self:
        :param Name:  Specifies the name or the CloudTrail ARN of the trail for which you are requesting status. To get the status of a shadow trail (a replication of the trail in another region), you must specify its ARN. The format of a trail ARN is:  <code>arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail</code> <br/>
        :return: TimeLoggingStopped:  This field is no longer in use.<br/>TimeLoggingStarted:  This field is no longer in use.<br/>LatestDeliveryAttemptSucceeded:  This field is no longer in use.<br/>LatestNotificationAttemptSucceeded:  This field is no longer in use.<br/>LatestNotificationAttemptTime:  This field is no longer in use.<br/>LatestDeliveryAttemptTime:  This field is no longer in use.<br/>LatestDigestDeliveryError:  Displays any Amazon S3 error that CloudTrail encountered when attempting to deliver a digest file to the designated bucket. For more information see the topic <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html">Error Responses</a> in the Amazon S3 API Reference.  <note> This error occurs only when there is a problem with the destination S3 bucket and will not occur for timeouts. To resolve the issue, create a new bucket and call <code>UpdateTrail</code> to specify the new bucket, or fix the existing objects so that CloudTrail can again write to the bucket. </note><br/>LatestDigestDeliveryTime:  Specifies the date and time that CloudTrail last delivered a digest file to an account's Amazon S3 bucket.<br/>LatestCloudWatchLogsDeliveryTime:  Displays the most recent date and time when CloudTrail delivered logs to CloudWatch Logs.<br/>LatestCloudWatchLogsDeliveryError:  Displays any CloudWatch Logs error that CloudTrail encountered when attempting to deliver logs to CloudWatch Logs.<br/>StopLoggingTime:  Specifies the most recent date and time when CloudTrail stopped recording API calls for an AWS account.<br/>StartLoggingTime:  Specifies the most recent date and time when CloudTrail started recording API calls for an AWS account.<br/>LatestNotificationTime:  Specifies the date and time of the most recent Amazon SNS notification that CloudTrail has written a new log file to an account's Amazon S3 bucket.<br/>LatestDeliveryTime:  Specifies the date and time that CloudTrail last delivered log files to an account's Amazon S3 bucket.<br/>LatestNotificationError:  Displays any Amazon SNS error that CloudTrail encountered when attempting to send a notification. For more information about Amazon SNS errors, see the <a href="https://docs.aws.amazon.com/sns/latest/dg/welcome.html">Amazon SNS Developer Guide</a>. <br/>LatestDeliveryError:  Displays any Amazon S3 error that CloudTrail encountered when attempting to deliver log files to the designated bucket. For more information see the topic <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html">Error Responses</a> in the Amazon S3 API Reference.  <note> This error occurs only when there is a problem with the destination S3 bucket and will not occur for timeouts. To resolve the issue, create a new bucket and call <code>UpdateTrail</code> to specify the new bucket, or fix the existing objects so that CloudTrail can again write to the bucket. </note><br/>IsLogging:  Whether the CloudTrail is currently logging AWS API calls.<br/>        """
        pass

    def list_public_keys(self, StartTime: Date=None, EndTime: Date=None, NextToken: str=None) -> ListPublicKeysResponse:
        r"""Returns all public keys whose private keys were used to sign the digest files within the specified time range. The public key is needed to validate digest files that were signed with its corresponding private key. <note> CloudTrail uses different private/public key pairs per region. Each digest file is signed with a private key unique to its region. Therefore, when you validate a digest file from a particular region, you must look in the same region for its corresponding public key. </note>

        :param self:
        :param NextToken:  Reserved for future use.<br/>EndTime:  Optionally specifies, in UTC, the end of the time range to look up public keys for CloudTrail digest files. If not specified, the current time is used.<br/>StartTime:  Optionally specifies, in UTC, the start of the time range to look up public keys for CloudTrail digest files. If not specified, the current time is used, and the current public key is returned.<br/>
        :return: NextToken:  Reserved for future use.<br/>PublicKeyList:  Contains an array of PublicKey objects. <note> The returned public keys may have validity time ranges that overlap. </note><br/>        """
        pass

    def list_tags(self, ResourceIdList: List[String], NextToken: str=None) -> ListTagsResponse:
        r"""Lists the tags for the trail in the current region.

        :param self:
        :param NextToken:  Reserved for future use.<br/>ResourceIdList:  Specifies a list of trail ARNs whose tags will be listed. The list has a limit of 20 ARNs. The format of a trail ARN is:  <code>arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail</code> <br/>
        :return: NextToken:  Reserved for future use.<br/>ResourceTagList:  A list of resource tags.<br/>        """
        pass

    def list_trails(self, NextToken: str=None) -> ListTrailsResponse:
        r"""Lists trails that are in the current account.

        :param self:
        :param NextToken:  The token to use to get the next page of results after a previous API call. This token must be passed in with the same parameters that were specified in the the original call. For example, if the original call specified an AttributeKey of 'Username' with a value of 'root', the call with NextToken should include those same parameters.<br/>
        :return: NextToken:  The token to use to get the next page of results after a previous API call. If the token does not appear, there are no more results to return. The token must be passed in with the same parameters as the previous call. For example, if the original call specified an AttributeKey of 'Username' with a value of 'root', the call with NextToken should include those same parameters.<br/>Trails:  Returns the name, ARN, and home region of trails in the current account.<br/>        """
        pass

    def lookup_events(self, LookupAttributes: List[LookupAttribute]=None, StartTime: Date=None, EndTime: Date=None, EventCategory: str=None, MaxResults: int=None, NextToken: str=None) -> LookupEventsResponse:
        r"""Looks up <a href="https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-concepts.html#cloudtrail-concepts-management-events">management events</a> or <a href="https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-concepts.html#cloudtrail-concepts-insights-events">CloudTrail Insights events</a> that are captured by CloudTrail. You can look up events that occurred in a region within the last 90 days. Lookup supports the following attributes for management events: <ul> <li> AWS access key </li> <li> Event ID </li> <li> Event name </li> <li> Event source </li> <li> Read only </li> <li> Resource name </li> <li> Resource type </li> <li> User name </li> </ul> Lookup supports the following attributes for Insights events: <ul> <li> Event ID </li> <li> Event name </li> <li> Event source </li> </ul> All attributes are optional. The default number of results returned is 50, with a maximum of 50 possible. The response includes a token that you can use to get the next page of results. <important> The rate of lookup requests is limited to two per second, per account, per region. If this limit is exceeded, a throttling error occurs. </important>

        :param self:
        :param NextToken:  The token to use to get the next page of results after a previous API call. This token must be passed in with the same parameters that were specified in the the original call. For example, if the original call specified an AttributeKey of 'Username' with a value of 'root', the call with NextToken should include those same parameters.<br/>MaxResults:  The number of events to return. Possible values are 1 through 50. The default is 50.<br/>EventCategory:  Specifies the event category. If you do not specify an event category, events of the category are not returned in the response. For example, if you do not specify <code>insight</code> as the value of <code>EventCategory</code>, no Insights events are returned.<br/>EndTime:  Specifies that only events that occur before or at the specified time are returned. If the specified end time is before the specified start time, an error is returned.<br/>StartTime:  Specifies that only events that occur after or at the specified time are returned. If the specified start time is after the specified end time, an error is returned.<br/>LookupAttributes:  Contains a list of lookup attributes. Currently the list can contain only one item.<br/>
        :return: NextToken:  The token to use to get the next page of results after a previous API call. If the token does not appear, there are no more results to return. The token must be passed in with the same parameters as the previous call. For example, if the original call specified an AttributeKey of 'Username' with a value of 'root', the call with NextToken should include those same parameters.<br/>Events:  A list of events returned based on the lookup attributes specified and the CloudTrail event. The events list is sorted by time. The most recent event is listed first.<br/>        """
        pass

    def put_event_selectors(self, TrailName: str, EventSelectors: List[EventSelector]=None, AdvancedEventSelectors: List[AdvancedEventSelector]=None) -> PutEventSelectorsResponse:
        r"""Configures an event selector or advanced event selectors for your trail. Use event selectors or advanced event selectors to specify management and data event settings for your trail. By default, trails created without specific event selectors are configured to log all read and write management events, and no data events. When an event occurs in your account, CloudTrail evaluates the event selectors or advanced event selectors in all trails. For each trail, if the event matches any event selector, the trail processes and logs the event. If the event doesn't match any event selector, the trail doesn't log the event.  Example <ol> <li> You create an event selector for a trail and specify that you want write-only events. </li> <li> The EC2 <code>GetConsoleOutput</code> and <code>RunInstances</code> API operations occur in your account. </li> <li> CloudTrail evaluates whether the events match your event selectors. </li> <li> The <code>RunInstances</code> is a write-only event and it matches your event selector. The trail logs the event. </li> <li> The <code>GetConsoleOutput</code> is a read-only event that doesn't match your event selector. The trail doesn't log the event.  </li> </ol> The <code>PutEventSelectors</code> operation must be called from the region in which the trail was created; otherwise, an <code>InvalidHomeRegionException</code> exception is thrown. You can configure up to five event selectors for each trail. For more information, see <a href="https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-management-and-data-events-with-cloudtrail.html">Logging data and management events for trails </a> and <a href="https://docs.aws.amazon.com/awscloudtrail/latest/userguide/WhatIsCloudTrail-Limits.html">Quotas in AWS CloudTrail</a> in the <i>AWS CloudTrail User Guide</i>. You can add advanced event selectors, and conditions for your advanced event selectors, up to a maximum of 500 values for all conditions and selectors on a trail. You can use either <code>AdvancedEventSelectors</code> or <code>EventSelectors</code>, but not both. If you apply <code>AdvancedEventSelectors</code> to a trail, any existing <code>EventSelectors</code> are overwritten. For more information about advanced event selectors, see <a href="https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html">Logging data events for trails</a> in the <i>AWS CloudTrail User Guide</i>.

        :param self:
        :param AdvancedEventSelectors:   Specifies the settings for advanced event selectors. You can add advanced event selectors, and conditions for your advanced event selectors, up to a maximum of 500 values for all conditions and selectors on a trail. You can use either <code>AdvancedEventSelectors</code> or <code>EventSelectors</code>, but not both. If you apply <code>AdvancedEventSelectors</code> to a trail, any existing <code>EventSelectors</code> are overwritten. For more information about advanced event selectors, see <a href="https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html">Logging data events for trails</a> in the <i>AWS CloudTrail User Guide</i>. <br/>EventSelectors:  Specifies the settings for your event selectors. You can configure up to five event selectors for a trail. You can use either <code>EventSelectors</code> or <code>AdvancedEventSelectors</code> in a <code>PutEventSelectors</code> request, but not both. If you apply <code>EventSelectors</code> to a trail, any existing <code>AdvancedEventSelectors</code> are overwritten.<br/>TrailName:  Specifies the name of the trail or trail ARN. If you specify a trail name, the string must meet the following requirements: <ul> <li> Contain only ASCII letters (a-z, A-Z), numbers (0-9), periods (.), underscores (_), or dashes (-) </li> <li> Start with a letter or number, and end with a letter or number </li> <li> Be between 3 and 128 characters </li> <li> Have no adjacent periods, underscores or dashes. Names like <code>my-_namespace</code> and <code>my--namespace</code> are invalid. </li> <li> Not be in IP address format (for example, 192.168.5.4) </li> </ul> If you specify a trail ARN, it must be in the format:  <code>arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail</code> <br/>
        :return: AdvancedEventSelectors:  Specifies the advanced event selectors configured for your trail.<br/>EventSelectors:  Specifies the event selectors configured for your trail.<br/>TrailARN:  Specifies the ARN of the trail that was updated with event selectors. The format of a trail ARN is:  <code>arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail</code> <br/>        """
        pass

    def put_insight_selectors(self, InsightSelectors: List[InsightSelector], TrailName: str) -> PutInsightSelectorsResponse:
        r"""Lets you enable Insights event logging by specifying the Insights selectors that you want to enable on an existing trail. You also use <code>PutInsightSelectors</code> to turn off Insights event logging, by passing an empty list of insight types. In this release, only <code>ApiCallRateInsight</code> is supported as an Insights selector.

        :param self:
        :param InsightSelectors:  A JSON string that contains the insight types you want to log on a trail. In this release, only <code>ApiCallRateInsight</code> is supported as an insight type.<br/>TrailName:  The name of the CloudTrail trail for which you want to change or add Insights selectors.<br/>
        :return: InsightSelectors:  A JSON string that contains the insight types you want to log on a trail. In this release, only <code>ApiCallRateInsight</code> is supported as an insight type.<br/>TrailARN:  The Amazon Resource Name (ARN) of a trail for which you want to change or add Insights selectors.<br/>        """
        pass

    def remove_tags(self, ResourceId: str, TagsList: List[Tag]=None) -> RemoveTagsResponse:
        r"""Removes the specified tags from a trail.

        :param self:
        :param TagsList:  Specifies a list of tags to be removed.<br/>ResourceId:  Specifies the ARN of the trail from which tags should be removed. The format of a trail ARN is:  <code>arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail</code> <br/>
        :return:         """
        pass

    def start_logging(self, Name: str) -> StartLoggingResponse:
        r"""Starts the recording of AWS API calls and log file delivery for a trail. For a trail that is enabled in all regions, this operation must be called from the region in which the trail was created. This operation cannot be called on the shadow trails (replicated trails in other regions) of a trail that is enabled in all regions.

        :param self:
        :param Name:  Specifies the name or the CloudTrail ARN of the trail for which CloudTrail logs AWS API calls. The format of a trail ARN is:  <code>arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail</code> <br/>
        :return:         """
        pass

    def stop_logging(self, Name: str) -> StopLoggingResponse:
        r"""Suspends the recording of AWS API calls and log file delivery for the specified trail. Under most circumstances, there is no need to use this action. You can update a trail without stopping it first. This action is the only way to stop recording. For a trail enabled in all regions, this operation must be called from the region in which the trail was created, or an <code>InvalidHomeRegionException</code> will occur. This operation cannot be called on the shadow trails (replicated trails in other regions) of a trail enabled in all regions.

        :param self:
        :param Name:  Specifies the name or the CloudTrail ARN of the trail for which CloudTrail will stop logging AWS API calls. The format of a trail ARN is:  <code>arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail</code> <br/>
        :return:         """
        pass

    def update_trail(self, Name: str, S3BucketName: str=None, S3KeyPrefix: str=None, SnsTopicName: str=None, IncludeGlobalServiceEvents: Boolean=None, IsMultiRegionTrail: Boolean=None, EnableLogFileValidation: Boolean=None, CloudWatchLogsLogGroupArn: str=None, CloudWatchLogsRoleArn: str=None, KmsKeyId: str=None, IsOrganizationTrail: Boolean=None) -> UpdateTrailResponse:
        r"""Updates the settings that specify delivery of log files. Changes to a trail do not require stopping the CloudTrail service. Use this action to designate an existing bucket for log delivery. If the existing bucket has previously been a target for CloudTrail log files, an IAM policy exists for the bucket. <code>UpdateTrail</code> must be called from the region in which the trail was created; otherwise, an <code>InvalidHomeRegionException</code> is thrown.

        :param self:
        :param IsOrganizationTrail:  Specifies whether the trail is applied to all accounts in an organization in AWS Organizations, or only for the current AWS account. The default is false, and cannot be true unless the call is made on behalf of an AWS account that is the master account for an organization in AWS Organizations. If the trail is not an organization trail and this is set to true, the trail will be created in all AWS accounts that belong to the organization. If the trail is an organization trail and this is set to false, the trail will remain in the current AWS account but be deleted from all member accounts in the organization.<br/>KmsKeyId:  Specifies the KMS key ID to use to encrypt the logs delivered by CloudTrail. The value can be an alias name prefixed by "alias/", a fully specified ARN to an alias, a fully specified ARN to a key, or a globally unique identifier. Examples: <ul> <li> alias/MyAliasName </li> <li> arn:aws:kms:us-east-2:123456789012:alias/MyAliasName </li> <li> arn:aws:kms:us-east-2:123456789012:key/12345678-1234-1234-1234-123456789012 </li> <li> 12345678-1234-1234-1234-123456789012 </li> </ul><br/>CloudWatchLogsRoleArn:  Specifies the role for the CloudWatch Logs endpoint to assume to write to a user's log group.<br/>CloudWatchLogsLogGroupArn:  Specifies a log group name using an Amazon Resource Name (ARN), a unique identifier that represents the log group to which CloudTrail logs will be delivered. Not required unless you specify CloudWatchLogsRoleArn.<br/>EnableLogFileValidation:  Specifies whether log file validation is enabled. The default is false. <note> When you disable log file integrity validation, the chain of digest files is broken after one hour. CloudTrail will not create digest files for log files that were delivered during a period in which log file integrity validation was disabled. For example, if you enable log file integrity validation at noon on January 1, disable it at noon on January 2, and re-enable it at noon on January 10, digest files will not be created for the log files delivered from noon on January 2 to noon on January 10. The same applies whenever you stop CloudTrail logging or delete a trail. </note><br/>IsMultiRegionTrail:  Specifies whether the trail applies only to the current region or to all regions. The default is false. If the trail exists only in the current region and this value is set to true, shadow trails (replications of the trail) will be created in the other regions. If the trail exists in all regions and this value is set to false, the trail will remain in the region where it was created, and its shadow trails in other regions will be deleted. As a best practice, consider using trails that log events in all regions.<br/>IncludeGlobalServiceEvents:  Specifies whether the trail is publishing events from global services such as IAM to the log files.<br/>SnsTopicName:  Specifies the name of the Amazon SNS topic defined for notification of log file delivery. The maximum length is 256 characters.<br/>S3KeyPrefix:  Specifies the Amazon S3 key prefix that comes after the name of the bucket you have designated for log file delivery. For more information, see <a href="https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-find-log-files.html">Finding Your CloudTrail Log Files</a>. The maximum length is 200 characters.<br/>S3BucketName:  Specifies the name of the Amazon S3 bucket designated for publishing log files. See <a href="https://docs.aws.amazon.com/awscloudtrail/latest/userguide/create_trail_naming_policy.html">Amazon S3 Bucket Naming Requirements</a>.<br/>Name:  Specifies the name of the trail or trail ARN. If <code>Name</code> is a trail name, the string must meet the following requirements: <ul> <li> Contain only ASCII letters (a-z, A-Z), numbers (0-9), periods (.), underscores (_), or dashes (-) </li> <li> Start with a letter or number, and end with a letter or number </li> <li> Be between 3 and 128 characters </li> <li> Have no adjacent periods, underscores or dashes. Names like <code>my-_namespace</code> and <code>my--namespace</code> are invalid. </li> <li> Not be in IP address format (for example, 192.168.5.4) </li> </ul> If <code>Name</code> is a trail ARN, it must be in the format:  <code>arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail</code> <br/>
        :return: IsOrganizationTrail:  Specifies whether the trail is an organization trail.<br/>KmsKeyId:  Specifies the KMS key ID that encrypts the logs delivered by CloudTrail. The value is a fully specified ARN to a KMS key in the format:  <code>arn:aws:kms:us-east-2:123456789012:key/12345678-1234-1234-1234-123456789012</code> <br/>CloudWatchLogsRoleArn:  Specifies the role for the CloudWatch Logs endpoint to assume to write to a user's log group.<br/>CloudWatchLogsLogGroupArn:  Specifies the Amazon Resource Name (ARN) of the log group to which CloudTrail logs will be delivered.<br/>LogFileValidationEnabled:  Specifies whether log file integrity validation is enabled.<br/>TrailARN:  Specifies the ARN of the trail that was updated. The format of a trail ARN is:  <code>arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail</code> <br/>IsMultiRegionTrail:  Specifies whether the trail exists in one region or in all regions.<br/>IncludeGlobalServiceEvents:  Specifies whether the trail is publishing events from global services such as IAM to the log files.<br/>SnsTopicARN:  Specifies the ARN of the Amazon SNS topic that CloudTrail uses to send notifications when log files are delivered. The format of a topic ARN is:  <code>arn:aws:sns:us-east-2:123456789012:MyTopic</code> <br/>SnsTopicName:  This field is no longer in use. Use SnsTopicARN.<br/>S3KeyPrefix:  Specifies the Amazon S3 key prefix that comes after the name of the bucket you have designated for log file delivery. For more information, see <a href="https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-find-log-files.html">Finding Your CloudTrail Log Files</a>.<br/>S3BucketName:  Specifies the name of the Amazon S3 bucket designated for publishing log files.<br/>Name:  Specifies the name of the trail.<br/>        """
        pass





class CloudWatch(BaseClient):
    r"""Amazon CloudWatch monitors your Amazon Web Services (AWS) resources and the applications you run on AWS in real time. You can use CloudWatch to collect and track metrics, which are the variables you want to measure for your resources and applications. CloudWatch alarms send notifications or automatically change the resources you are monitoring based on rules that you define. For example, you can monitor the CPU usage and disk reads and writes of your Amazon EC2 instances. Then, use this data to determine whether you should launch additional instances to handle increased load. You can also use this data to stop under-used instances to save money. In addition to monitoring the built-in metrics that come with AWS, you can monitor your own custom metrics. With CloudWatch, you gain system-wide visibility into resource utilization, application performance, and operational health."""

    class AlarmExistsWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_alarms` for valid parameters"""
            pass
    class CompositeAlarmExistsWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_alarms` for valid parameters"""
            pass


    class DescribeAlarmHistoryPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_alarm_history` for valid parameters"""
            pass
    class DescribeAlarmsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_alarms` for valid parameters"""
            pass
    class ListDashboardsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_dashboards` for valid parameters"""
            pass
    class ListMetricsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_metrics` for valid parameters"""
            pass
    class GetMetricDataPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_metric_data` for valid parameters"""
            pass


    class DeleteAlarmsInput(Mapping):
        pass
    
    class AlarmName(object):
        pass
    
    class DeleteAnomalyDetectorInput(Mapping):
        pass
    
    class DeleteAnomalyDetectorOutput(Mapping):
        pass
    
    class Dimension(Mapping):
        pass
    
    class DeleteDashboardsInput(Mapping):
        pass
    
    class DeleteDashboardsOutput(Mapping):
        pass
    
    class DashboardName(object):
        pass
    
    class DeleteInsightRulesInput(Mapping):
        pass
    
    class DeleteInsightRulesOutput(Mapping):
        pass
    
    class InsightRuleName(object):
        pass
    
    class DeleteMetricStreamInput(Mapping):
        pass
    
    class DeleteMetricStreamOutput(Mapping):
        pass
    
    class DescribeAlarmHistoryInput(Mapping):
        pass
    
    class DescribeAlarmHistoryOutput(Mapping):
        pass
    
    class AlarmType(object):
        pass
    
    class Timestamp(object):
        pass
    
    class DescribeAlarmsInput(Mapping):
        pass
    
    class DescribeAlarmsOutput(Mapping):
        pass
    
    class DescribeAlarmsForMetricInput(Mapping):
        pass
    
    class DescribeAlarmsForMetricOutput(Mapping):
        pass
    
    class DescribeAnomalyDetectorsInput(Mapping):
        pass
    
    class DescribeAnomalyDetectorsOutput(Mapping):
        pass
    
    class DescribeInsightRulesInput(Mapping):
        pass
    
    class DescribeInsightRulesOutput(Mapping):
        pass
    
    class DisableAlarmActionsInput(Mapping):
        pass
    
    class DisableInsightRulesInput(Mapping):
        pass
    
    class DisableInsightRulesOutput(Mapping):
        pass
    
    class EnableAlarmActionsInput(Mapping):
        pass
    
    class EnableInsightRulesInput(Mapping):
        pass
    
    class EnableInsightRulesOutput(Mapping):
        pass
    
    class GetDashboardInput(Mapping):
        pass
    
    class GetDashboardOutput(Mapping):
        pass
    
    class GetInsightRuleReportInput(Mapping):
        pass
    
    class GetInsightRuleReportOutput(Mapping):
        pass
    
    class InsightRuleMetricName(object):
        pass
    
    class GetMetricDataInput(Mapping):
        pass
    
    class GetMetricDataOutput(Mapping):
        pass
    
    class MetricDataQuery(Mapping):
        pass
    
    class LabelOptions(Mapping):
        pass
    
    class GetMetricStatisticsInput(Mapping):
        pass
    
    class GetMetricStatisticsOutput(Mapping):
        pass
    
    class Statistic(object):
        pass
    
    class ExtendedStatistic(object):
        pass
    
    class GetMetricStreamInput(Mapping):
        pass
    
    class GetMetricStreamOutput(Mapping):
        pass
    
    class GetMetricWidgetImageInput(Mapping):
        pass
    
    class GetMetricWidgetImageOutput(Mapping):
        pass
    
    class ListDashboardsInput(Mapping):
        pass
    
    class ListDashboardsOutput(Mapping):
        pass
    
    class ListMetricStreamsInput(Mapping):
        pass
    
    class ListMetricStreamsOutput(Mapping):
        pass
    
    class ListMetricsInput(Mapping):
        pass
    
    class ListMetricsOutput(Mapping):
        pass
    
    class DimensionFilter(Mapping):
        pass
    
    class ListTagsForResourceInput(Mapping):
        pass
    
    class ListTagsForResourceOutput(Mapping):
        pass
    
    class PutAnomalyDetectorInput(Mapping):
        pass
    
    class PutAnomalyDetectorOutput(Mapping):
        pass
    
    class AnomalyDetectorConfiguration(Mapping):
        pass
    
    class PutCompositeAlarmInput(Mapping):
        pass
    
    class ActionsEnabled(object):
        pass
    
    class ResourceName(object):
        pass
    
    class Tag(Mapping):
        pass
    
    class PutDashboardInput(Mapping):
        pass
    
    class PutDashboardOutput(Mapping):
        pass
    
    class PutInsightRuleInput(Mapping):
        pass
    
    class PutInsightRuleOutput(Mapping):
        pass
    
    class PutMetricAlarmInput(Mapping):
        pass
    
    class Threshold(object):
        pass
    
    class PutMetricDataInput(Mapping):
        pass
    
    class MetricDatum(Mapping):
        pass
    
    class PutMetricStreamInput(Mapping):
        pass
    
    class PutMetricStreamOutput(Mapping):
        pass
    
    class MetricStreamFilter(Mapping):
        pass
    
    class SetAlarmStateInput(Mapping):
        pass
    
    class StartMetricStreamsInput(Mapping):
        pass
    
    class StartMetricStreamsOutput(Mapping):
        pass
    
    class MetricStreamName(object):
        pass
    
    class StopMetricStreamsInput(Mapping):
        pass
    
    class StopMetricStreamsOutput(Mapping):
        pass
    
    class TagResourceInput(Mapping):
        pass
    
    class TagResourceOutput(Mapping):
        pass
    
    class UntagResourceInput(Mapping):
        pass
    
    class UntagResourceOutput(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    def delete_alarms(self, AlarmNames: List[AlarmName]):
        r"""Deletes the specified alarms. You can delete up to 100 alarms in one operation. However, this total can include no more than one composite alarm. For example, you could delete 99 metric alarms and one composite alarms with one operation, but you can't delete two composite alarms with one operation.  In the event of an error, no alarms are deleted. <note> It is possible to create a loop or cycle of composite alarms, where composite alarm A depends on composite alarm B, and composite alarm B also depends on composite alarm A. In this scenario, you can't delete any composite alarm that is part of the cycle because there is always still a composite alarm that depends on that alarm that you want to delete. To get out of such a situation, you must break the cycle by changing the rule of one of the composite alarms in the cycle to remove a dependency that creates the cycle. The simplest change to make to break a cycle is to change the <code>AlarmRule</code> of one of the alarms to <code>False</code>.  Additionally, the evaluation of composite alarms stops if CloudWatch detects a cycle in the evaluation path.  </note>

        :param self:
        :param AlarmNames:  The alarms to be deleted.<br/>
        :return:         """
        pass

    def delete_anomaly_detector(self, Stat: str, MetricName: str, Namespace: str, Dimensions: List[Dimension]=None) -> DeleteAnomalyDetectorOutput:
        r"""Deletes the specified anomaly detection model from your account.

        :param self:
        :param Stat:  The statistic associated with the anomaly detection model to delete.<br/>Dimensions:  The metric dimensions associated with the anomaly detection model to delete.<br/>MetricName:  The metric name associated with the anomaly detection model to delete.<br/>Namespace:  The namespace associated with the anomaly detection model to delete.<br/>
        :return:         """
        pass

    def delete_dashboards(self, DashboardNames: List[DashboardName]) -> DeleteDashboardsOutput:
        r"""Deletes all dashboards that you specify. You can specify up to 100 dashboards to delete. If there is an error during this call, no dashboards are deleted.

        :param self:
        :param DashboardNames:  The dashboards to be deleted. This parameter is required.<br/>
        :return:         """
        pass

    def delete_insight_rules(self, RuleNames: List[InsightRuleName]) -> DeleteInsightRulesOutput:
        r"""Permanently deletes the specified Contributor Insights rules. If you create a rule, delete it, and then re-create it with the same name, historical data from the first time the rule was created might not be available.

        :param self:
        :param RuleNames:  An array of the rule names to delete. If you need to find out the names of your rules, use <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_DescribeInsightRules.html">DescribeInsightRules</a>.<br/>
        :return: Failures:  An array listing the rules that could not be deleted. You cannot delete built-in rules.<br/>        """
        pass

    def delete_metric_stream(self, Name: str) -> DeleteMetricStreamOutput:
        r"""Permanently deletes the metric stream that you specify.

        :param self:
        :param Name:  The name of the metric stream to delete.<br/>
        :return:         """
        pass

    def describe_alarm_history(self, AlarmName: str=None, AlarmTypes: List[AlarmType]=None, HistoryItemType: str=None, StartDate: Timestamp=None, EndDate: Timestamp=None, MaxRecords: int=None, NextToken: str=None, ScanBy: str=None) -> DescribeAlarmHistoryOutput:
        r"""Retrieves the history for the specified alarm. You can filter the results by date range or item type. If an alarm name is not specified, the histories for either all metric alarms or all composite alarms are returned. CloudWatch retains the history of an alarm even if you delete the alarm.

        :param self:
        :param ScanBy:  Specified whether to return the newest or oldest alarm history first. Specify <code>TimestampDescending</code> to have the newest event history returned first, and specify <code>TimestampAscending</code> to have the oldest history returned first.<br/>NextToken:  The token returned by a previous call to indicate that there is more data available.<br/>MaxRecords:  The maximum number of alarm history records to retrieve.<br/>EndDate:  The ending date to retrieve alarm history.<br/>StartDate:  The starting date to retrieve alarm history.<br/>HistoryItemType:  The type of alarm histories to retrieve.<br/>AlarmTypes:  Use this parameter to specify whether you want the operation to return metric alarms or composite alarms. If you omit this parameter, only metric alarms are returned.<br/>AlarmName:  The name of the alarm.<br/>
        :return: NextToken:  The token that marks the start of the next batch of returned results.<br/>AlarmHistoryItems:  The alarm histories, in JSON format.<br/>        """
        pass

    def describe_alarms(self, AlarmNames: List[AlarmName]=None, AlarmNamePrefix: str=None, AlarmTypes: List[AlarmType]=None, ChildrenOfAlarmName: str=None, ParentsOfAlarmName: str=None, StateValue: str=None, ActionPrefix: str=None, MaxRecords: int=None, NextToken: str=None) -> DescribeAlarmsOutput:
        r"""Retrieves the specified alarms. You can filter the results by specifying a prefix for the alarm name, the alarm state, or a prefix for any action.

        :param self:
        :param NextToken:  The token returned by a previous call to indicate that there is more data available.<br/>MaxRecords:  The maximum number of alarm descriptions to retrieve.<br/>ActionPrefix:  Use this parameter to filter the results of the operation to only those alarms that use a certain alarm action. For example, you could specify the ARN of an SNS topic to find all alarms that send notifications to that topic.<br/>StateValue:  Specify this parameter to receive information only about alarms that are currently in the state that you specify.<br/>ParentsOfAlarmName:  If you use this parameter and specify the name of a metric or composite alarm, the operation returns information about the "parent" alarms of the alarm you specify. These are the composite alarms that have <code>AlarmRule</code> parameters that reference the alarm named in <code>ParentsOfAlarmName</code>. Information about the alarm that you specify in <code>ParentsOfAlarmName</code> is not returned. If you specify <code>ParentsOfAlarmName</code>, you cannot specify any other parameters in the request except for <code>MaxRecords</code> and <code>NextToken</code>. If you do so, you receive a validation error. <note> Only the Alarm Name and ARN are returned by this operation when you use this parameter. To get complete information about these alarms, perform another <code>DescribeAlarms</code> operation and specify the parent alarm names in the <code>AlarmNames</code> parameter. </note><br/>ChildrenOfAlarmName:  If you use this parameter and specify the name of a composite alarm, the operation returns information about the "children" alarms of the alarm you specify. These are the metric alarms and composite alarms referenced in the <code>AlarmRule</code> field of the composite alarm that you specify in <code>ChildrenOfAlarmName</code>. Information about the composite alarm that you name in <code>ChildrenOfAlarmName</code> is not returned. If you specify <code>ChildrenOfAlarmName</code>, you cannot specify any other parameters in the request except for <code>MaxRecords</code> and <code>NextToken</code>. If you do so, you receive a validation error. <note> Only the <code>Alarm Name</code>, <code>ARN</code>, <code>StateValue</code> (OK/ALARM/INSUFFICIENT_DATA), and <code>StateUpdatedTimestamp</code> information are returned by this operation when you use this parameter. To get complete information about these alarms, perform another <code>DescribeAlarms</code> operation and specify the parent alarm names in the <code>AlarmNames</code> parameter. </note><br/>AlarmTypes:  Use this parameter to specify whether you want the operation to return metric alarms or composite alarms. If you omit this parameter, only metric alarms are returned.<br/>AlarmNamePrefix:  An alarm name prefix. If you specify this parameter, you receive information about all alarms that have names that start with this prefix. If this parameter is specified, you cannot specify <code>AlarmNames</code>.<br/>AlarmNames:  The names of the alarms to retrieve information about.<br/>
        :return: NextToken:  The token that marks the start of the next batch of returned results.<br/>MetricAlarms:  The information about any metric alarms returned by the operation.<br/>CompositeAlarms:  The information about any composite alarms returned by the operation.<br/>        """
        pass

    def describe_alarms_for_metric(self, Namespace: str, MetricName: str, Statistic: str=None, ExtendedStatistic: str=None, Dimensions: List[Dimension]=None, Period: int=None, Unit: str=None) -> DescribeAlarmsForMetricOutput:
        r"""Retrieves the alarms for the specified metric. To filter the results, specify a statistic, period, or unit. This operation retrieves only standard alarms that are based on the specified metric. It does not return alarms based on math expressions that use the specified metric, or composite alarms that use the specified metric.

        :param self:
        :param Unit:  The unit for the metric.<br/>Period:  The period, in seconds, over which the statistic is applied.<br/>Dimensions:  The dimensions associated with the metric. If the metric has any associated dimensions, you must specify them in order for the call to succeed.<br/>ExtendedStatistic:  The percentile statistic for the metric. Specify a value between p0.0 and p100.<br/>Statistic:  The statistic for the metric, other than percentiles. For percentile statistics, use <code>ExtendedStatistics</code>.<br/>Namespace:  The namespace of the metric.<br/>MetricName:  The name of the metric.<br/>
        :return: MetricAlarms:  The information for each alarm with the specified metric.<br/>        """
        pass

    def describe_anomaly_detectors(self, NextToken: str=None, MaxResults: int=None, Namespace: str=None, MetricName: str=None, Dimensions: List[Dimension]=None) -> DescribeAnomalyDetectorsOutput:
        r"""Lists the anomaly detection models that you have created in your account. You can list all models in your account or filter the results to only the models that are related to a certain namespace, metric name, or metric dimension.

        :param self:
        :param Dimensions:  Limits the results to only the anomaly detection models that are associated with the specified metric dimensions. If there are multiple metrics that have these dimensions and have anomaly detection models associated, they're all returned.<br/>MetricName:  Limits the results to only the anomaly detection models that are associated with the specified metric name. If there are multiple metrics with this name in different namespaces that have anomaly detection models, they're all returned.<br/>Namespace:  Limits the results to only the anomaly detection models that are associated with the specified namespace.<br/>MaxResults:  The maximum number of results to return in one operation. The maximum value that you can specify is 100. To retrieve the remaining results, make another call with the returned <code>NextToken</code> value. <br/>NextToken:  Use the token returned by the previous operation to request the next page of results.<br/>
        :return: NextToken:  A token that you can use in a subsequent operation to retrieve the next set of results.<br/>AnomalyDetectors:  The list of anomaly detection models returned by the operation.<br/>        """
        pass

    def describe_insight_rules(self, NextToken: str=None, MaxResults: int=None) -> DescribeInsightRulesOutput:
        r"""Returns a list of all the Contributor Insights rules in your account. For more information about Contributor Insights, see <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ContributorInsights.html">Using Contributor Insights to Analyze High-Cardinality Data</a>.

        :param self:
        :param MaxResults:  The maximum number of results to return in one operation. If you omit this parameter, the default of 500 is used.<br/>NextToken:  Include this value, if it was returned by the previous operation, to get the next set of rules.<br/>
        :return: InsightRules:  The rules returned by the operation.<br/>NextToken:  If this parameter is present, it is a token that marks the start of the next batch of returned results. <br/>        """
        pass

    def disable_alarm_actions(self, AlarmNames: List[AlarmName]):
        r"""Disables the actions for the specified alarms. When an alarm's actions are disabled, the alarm actions do not execute when the alarm state changes.

        :param self:
        :param AlarmNames:  The names of the alarms.<br/>
        :return:         """
        pass

    def disable_insight_rules(self, RuleNames: List[InsightRuleName]) -> DisableInsightRulesOutput:
        r"""Disables the specified Contributor Insights rules. When rules are disabled, they do not analyze log groups and do not incur costs.

        :param self:
        :param RuleNames:  An array of the rule names to disable. If you need to find out the names of your rules, use <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_DescribeInsightRules.html">DescribeInsightRules</a>.<br/>
        :return: Failures:  An array listing the rules that could not be disabled. You cannot disable built-in rules.<br/>        """
        pass

    def enable_alarm_actions(self, AlarmNames: List[AlarmName]):
        r"""Enables the actions for the specified alarms.

        :param self:
        :param AlarmNames:  The names of the alarms.<br/>
        :return:         """
        pass

    def enable_insight_rules(self, RuleNames: List[InsightRuleName]) -> EnableInsightRulesOutput:
        r"""Enables the specified Contributor Insights rules. When rules are enabled, they immediately begin analyzing log data.

        :param self:
        :param RuleNames:  An array of the rule names to enable. If you need to find out the names of your rules, use <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_DescribeInsightRules.html">DescribeInsightRules</a>.<br/>
        :return: Failures:  An array listing the rules that could not be enabled. You cannot disable or enable built-in rules.<br/>        """
        pass

    def get_dashboard(self, DashboardName: str) -> GetDashboardOutput:
        r"""Displays the details of the dashboard that you specify. To copy an existing dashboard, use <code>GetDashboard</code>, and then use the data returned within <code>DashboardBody</code> as the template for the new dashboard when you call <code>PutDashboard</code> to create the copy.

        :param self:
        :param DashboardName:  The name of the dashboard to be described.<br/>
        :return: DashboardName:  The name of the dashboard.<br/>DashboardBody:  The detailed information about the dashboard, including what widgets are included and their location on the dashboard. For more information about the <code>DashboardBody</code> syntax, see <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/CloudWatch-Dashboard-Body-Structure.html">Dashboard Body Structure and Syntax</a>. <br/>DashboardArn:  The Amazon Resource Name (ARN) of the dashboard.<br/>        """
        pass

    def get_insight_rule_report(self, Period: int, EndTime: Timestamp, StartTime: Timestamp, RuleName: str, MaxContributorCount: int=None, Metrics: List[InsightRuleMetricName]=None, OrderBy: str=None) -> GetInsightRuleReportOutput:
        r"""This operation returns the time series data collected by a Contributor Insights rule. The data includes the identity and number of contributors to the log group. You can also optionally return one or more statistics about each data point in the time series. These statistics can include the following: <ul> <li>  <code>UniqueContributors</code> -- the number of unique contributors for each data point. </li> <li>  <code>MaxContributorValue</code> -- the value of the top contributor for each data point. The identity of the contributor might change for each data point in the graph. If this rule aggregates by COUNT, the top contributor for each data point is the contributor with the most occurrences in that period. If the rule aggregates by SUM, the top contributor is the contributor with the highest sum in the log field specified by the rule's <code>Value</code>, during that period. </li> <li>  <code>SampleCount</code> -- the number of data points matched by the rule. </li> <li>  <code>Sum</code> -- the sum of the values from all contributors during the time period represented by that data point. </li> <li>  <code>Minimum</code> -- the minimum value from a single observation during the time period represented by that data point. </li> <li>  <code>Maximum</code> -- the maximum value from a single observation during the time period represented by that data point. </li> <li>  <code>Average</code> -- the average value from all contributors during the time period represented by that data point. </li> </ul>

        :param self:
        :param OrderBy:  Determines what statistic to use to rank the contributors. Valid values are SUM and MAXIMUM.<br/>Metrics:  Specifies which metrics to use for aggregation of contributor values for the report. You can specify one or more of the following metrics: <ul> <li>  <code>UniqueContributors</code> -- the number of unique contributors for each data point. </li> <li>  <code>MaxContributorValue</code> -- the value of the top contributor for each data point. The identity of the contributor might change for each data point in the graph. If this rule aggregates by COUNT, the top contributor for each data point is the contributor with the most occurrences in that period. If the rule aggregates by SUM, the top contributor is the contributor with the highest sum in the log field specified by the rule's <code>Value</code>, during that period. </li> <li>  <code>SampleCount</code> -- the number of data points matched by the rule. </li> <li>  <code>Sum</code> -- the sum of the values from all contributors during the time period represented by that data point. </li> <li>  <code>Minimum</code> -- the minimum value from a single observation during the time period represented by that data point. </li> <li>  <code>Maximum</code> -- the maximum value from a single observation during the time period represented by that data point. </li> <li>  <code>Average</code> -- the average value from all contributors during the time period represented by that data point. </li> </ul><br/>MaxContributorCount:  The maximum number of contributors to include in the report. The range is 1 to 100. If you omit this, the default of 10 is used.<br/>Period:  The period, in seconds, to use for the statistics in the <code>InsightRuleMetricDatapoint</code> results.<br/>EndTime:  The end time of the data to use in the report. When used in a raw HTTP Query API, it is formatted as <code>yyyy-MM-dd'T'HH:mm:ss</code>. For example, <code>2019-07-01T23:59:59</code>.<br/>StartTime:  The start time of the data to use in the report. When used in a raw HTTP Query API, it is formatted as <code>yyyy-MM-dd'T'HH:mm:ss</code>. For example, <code>2019-07-01T23:59:59</code>.<br/>RuleName:  The name of the rule that you want to see data from.<br/>
        :return: MetricDatapoints:  A time series of metric data points that matches the time period in the rule request.<br/>Contributors:  An array of the unique contributors found by this rule in this time period. If the rule contains multiple keys, each combination of values for the keys counts as a unique contributor.<br/>ApproximateUniqueCount:  An approximate count of the unique contributors found by this rule in this time period.<br/>AggregateValue:  The sum of the values from all individual contributors that match the rule.<br/>AggregationStatistic:  Specifies whether this rule aggregates contributor data by COUNT or SUM.<br/>KeyLabels:  An array of the strings used as the keys for this rule. The keys are the dimensions used to classify contributors. If the rule contains more than one key, then each unique combination of values for the keys is counted as a unique contributor.<br/>        """
        pass

    def get_metric_data(self, EndTime: Timestamp, StartTime: Timestamp, MetricDataQueries: List[MetricDataQuery], NextToken: str=None, ScanBy: str=None, MaxDatapoints: int=None, LabelOptions: LabelOptions=None) -> GetMetricDataOutput:
        r"""You can use the <code>GetMetricData</code> API to retrieve as many as 500 different metrics in a single request, with a total of as many as 100,800 data points. You can also optionally perform math expressions on the values of the returned statistics, to create new time series that represent new insights into your data. For example, using Lambda metrics, you could divide the Errors metric by the Invocations metric to get an error rate time series. For more information about metric math expressions, see <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html#metric-math-syntax">Metric Math Syntax and Functions</a> in the <i>Amazon CloudWatch User Guide</i>. Calls to the <code>GetMetricData</code> API have a different pricing structure than calls to <code>GetMetricStatistics</code>. For more information about pricing, see <a href="https://aws.amazon.com/cloudwatch/pricing/">Amazon CloudWatch Pricing</a>. Amazon CloudWatch retains metric data as follows: <ul> <li> Data points with a period of less than 60 seconds are available for 3 hours. These data points are high-resolution metrics and are available only for custom metrics that have been defined with a <code>StorageResolution</code> of 1. </li> <li> Data points with a period of 60 seconds (1-minute) are available for 15 days. </li> <li> Data points with a period of 300 seconds (5-minute) are available for 63 days. </li> <li> Data points with a period of 3600 seconds (1 hour) are available for 455 days (15 months). </li> </ul> Data points that are initially published with a shorter period are aggregated together for long-term storage. For example, if you collect data using a period of 1 minute, the data remains available for 15 days with 1-minute resolution. After 15 days, this data is still available, but is aggregated and retrievable only with a resolution of 5 minutes. After 63 days, the data is further aggregated and is available with a resolution of 1 hour. If you omit <code>Unit</code> in your request, all data that was collected with any unit is returned, along with the corresponding units that were specified when the data was reported to CloudWatch. If you specify a unit, the operation returns only data that was collected with that unit specified. If you specify a unit that does not match the data collected, the results of the operation are null. CloudWatch does not perform unit conversions.

        :param self:
        :param LabelOptions:  This structure includes the <code>Timezone</code> parameter, which you can use to specify your time zone so that the labels of returned data display the correct time for your time zone. :<br/>MaxDatapoints:  The maximum number of data points the request should return before paginating. If you omit this, the default of 100,800 is used.<br/>ScanBy:  The order in which data points should be returned. <code>TimestampDescending</code> returns the newest data first and paginates when the <code>MaxDatapoints</code> limit is reached. <code>TimestampAscending</code> returns the oldest data first and paginates when the <code>MaxDatapoints</code> limit is reached.<br/>NextToken:  Include this value, if it was returned by the previous <code>GetMetricData</code> operation, to get the next set of data points.<br/>EndTime:  The time stamp indicating the latest data to be returned. The value specified is exclusive; results include data points up to the specified time stamp. For better performance, specify <code>StartTime</code> and <code>EndTime</code> values that align with the value of the metric's <code>Period</code> and sync up with the beginning and end of an hour. For example, if the <code>Period</code> of a metric is 5 minutes, specifying 12:05 or 12:30 as <code>EndTime</code> can get a faster response from CloudWatch than setting 12:07 or 12:29 as the <code>EndTime</code>.<br/>StartTime:  The time stamp indicating the earliest data to be returned. The value specified is inclusive; results include data points with the specified time stamp.  CloudWatch rounds the specified time stamp as follows: <ul> <li> Start time less than 15 days ago - Round down to the nearest whole minute. For example, 12:32:34 is rounded down to 12:32:00. </li> <li> Start time between 15 and 63 days ago - Round down to the nearest 5-minute clock interval. For example, 12:32:34 is rounded down to 12:30:00. </li> <li> Start time greater than 63 days ago - Round down to the nearest 1-hour clock interval. For example, 12:32:34 is rounded down to 12:00:00. </li> </ul> If you set <code>Period</code> to 5, 10, or 30, the start time of your request is rounded down to the nearest time that corresponds to even 5-, 10-, or 30-second divisions of a minute. For example, if you make a query at (HH:mm:ss) 01:05:23 for the previous 10-second period, the start time of your request is rounded down and you receive data from 01:05:10 to 01:05:20. If you make a query at 15:07:17 for the previous 5 minutes of data, using a period of 5 seconds, you receive data timestamped between 15:02:15 and 15:07:15.  For better performance, specify <code>StartTime</code> and <code>EndTime</code> values that align with the value of the metric's <code>Period</code> and sync up with the beginning and end of an hour. For example, if the <code>Period</code> of a metric is 5 minutes, specifying 12:05 or 12:30 as <code>StartTime</code> can get a faster response from CloudWatch than setting 12:07 or 12:29 as the <code>StartTime</code>.<br/>MetricDataQueries:  The metric queries to be returned. A single <code>GetMetricData</code> call can include as many as 500 <code>MetricDataQuery</code> structures. Each of these structures can specify either a metric to retrieve, or a math expression to perform on retrieved data. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Timezone</i> The time zone to use for metric data return in this operation. The format is <code>+</code> or <code>-</code> followed by four digits. The first two digits indicate the number of hours ahead or behind of UTC, and the final two digits are the number of minutes. For example, +0130 indicates a time zone that is 1 hour and 30 minutes ahead of UTC. The default is +0000. <br/>
        :return: Messages:  Contains a message about this <code>GetMetricData</code> operation, if the operation results in such a message. An example of a message that might be returned is <code>Maximum number of allowed metrics exceeded</code>. If there is a message, as much of the operation as possible is still executed. A message appears here only if it is related to the global <code>GetMetricData</code> operation. Any message about a specific metric returned by the operation appears in the <code>MetricDataResult</code> object returned for that metric.<br/>NextToken:  A token that marks the next batch of returned results.<br/>MetricDataResults:  The metrics that are returned, including the metric name, namespace, and dimensions.<br/>        """
        pass

    def get_metric_statistics(self, Period: int, EndTime: Timestamp, StartTime: Timestamp, MetricName: str, Namespace: str, Dimensions: List[Dimension]=None, Statistics: List[Statistic]=None, ExtendedStatistics: List[ExtendedStatistic]=None, Unit: str=None) -> GetMetricStatisticsOutput:
        r"""Gets statistics for the specified metric. The maximum number of data points returned from a single call is 1,440. If you request more than 1,440 data points, CloudWatch returns an error. To reduce the number of data points, you can narrow the specified time range and make multiple requests across adjacent time ranges, or you can increase the specified period. Data points are not returned in chronological order. CloudWatch aggregates data points based on the length of the period that you specify. For example, if you request statistics with a one-hour period, CloudWatch aggregates all data points with time stamps that fall within each one-hour period. Therefore, the number of values aggregated by CloudWatch is larger than the number of data points returned. CloudWatch needs raw data points to calculate percentile statistics. If you publish data using a statistic set instead, you can only retrieve percentile statistics for this data if one of the following conditions is true: <ul> <li> The SampleCount value of the statistic set is 1. </li> <li> The Min and the Max values of the statistic set are equal. </li> </ul> Percentile statistics are not available for metrics when any of the metric values are negative numbers. Amazon CloudWatch retains metric data as follows: <ul> <li> Data points with a period of less than 60 seconds are available for 3 hours. These data points are high-resolution metrics and are available only for custom metrics that have been defined with a <code>StorageResolution</code> of 1. </li> <li> Data points with a period of 60 seconds (1-minute) are available for 15 days. </li> <li> Data points with a period of 300 seconds (5-minute) are available for 63 days. </li> <li> Data points with a period of 3600 seconds (1 hour) are available for 455 days (15 months). </li> </ul> Data points that are initially published with a shorter period are aggregated together for long-term storage. For example, if you collect data using a period of 1 minute, the data remains available for 15 days with 1-minute resolution. After 15 days, this data is still available, but is aggregated and retrievable only with a resolution of 5 minutes. After 63 days, the data is further aggregated and is available with a resolution of 1 hour. CloudWatch started retaining 5-minute and 1-hour metric data as of July 9, 2016. For information about metrics and dimensions supported by AWS services, see the <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CW_Support_For_AWS.html">Amazon CloudWatch Metrics and Dimensions Reference</a> in the <i>Amazon CloudWatch User Guide</i>.

        :param self:
        :param Unit:  The unit for a given metric. If you omit <code>Unit</code>, all data that was collected with any unit is returned, along with the corresponding units that were specified when the data was reported to CloudWatch. If you specify a unit, the operation returns only data that was collected with that unit specified. If you specify a unit that does not match the data collected, the results of the operation are null. CloudWatch does not perform unit conversions.<br/>ExtendedStatistics:  The percentile statistics. Specify values between p0.0 and p100. When calling <code>GetMetricStatistics</code>, you must specify either <code>Statistics</code> or <code>ExtendedStatistics</code>, but not both. Percentile statistics are not available for metrics when any of the metric values are negative numbers.<br/>Statistics:  The metric statistics, other than percentile. For percentile statistics, use <code>ExtendedStatistics</code>. When calling <code>GetMetricStatistics</code>, you must specify either <code>Statistics</code> or <code>ExtendedStatistics</code>, but not both.<br/>Period:  The granularity, in seconds, of the returned data points. For metrics with regular resolution, a period can be as short as one minute (60 seconds) and must be a multiple of 60. For high-resolution metrics that are collected at intervals of less than one minute, the period can be 1, 5, 10, 30, 60, or any multiple of 60. High-resolution metrics are those metrics stored by a <code>PutMetricData</code> call that includes a <code>StorageResolution</code> of 1 second. If the <code>StartTime</code> parameter specifies a time stamp that is greater than 3 hours ago, you must specify the period as follows or no data points in that time range is returned: <ul> <li> Start time between 3 hours and 15 days ago - Use a multiple of 60 seconds (1 minute). </li> <li> Start time between 15 and 63 days ago - Use a multiple of 300 seconds (5 minutes). </li> <li> Start time greater than 63 days ago - Use a multiple of 3600 seconds (1 hour). </li> </ul><br/>EndTime:  The time stamp that determines the last data point to return. The value specified is exclusive; results include data points up to the specified time stamp. In a raw HTTP query, the time stamp must be in ISO 8601 UTC format (for example, 2016-10-10T23:00:00Z).<br/>StartTime:  The time stamp that determines the first data point to return. Start times are evaluated relative to the time that CloudWatch receives the request. The value specified is inclusive; results include data points with the specified time stamp. In a raw HTTP query, the time stamp must be in ISO 8601 UTC format (for example, 2016-10-03T23:00:00Z). CloudWatch rounds the specified time stamp as follows: <ul> <li> Start time less than 15 days ago - Round down to the nearest whole minute. For example, 12:32:34 is rounded down to 12:32:00. </li> <li> Start time between 15 and 63 days ago - Round down to the nearest 5-minute clock interval. For example, 12:32:34 is rounded down to 12:30:00. </li> <li> Start time greater than 63 days ago - Round down to the nearest 1-hour clock interval. For example, 12:32:34 is rounded down to 12:00:00. </li> </ul> If you set <code>Period</code> to 5, 10, or 30, the start time of your request is rounded down to the nearest time that corresponds to even 5-, 10-, or 30-second divisions of a minute. For example, if you make a query at (HH:mm:ss) 01:05:23 for the previous 10-second period, the start time of your request is rounded down and you receive data from 01:05:10 to 01:05:20. If you make a query at 15:07:17 for the previous 5 minutes of data, using a period of 5 seconds, you receive data timestamped between 15:02:15 and 15:07:15. <br/>Dimensions:  The dimensions. If the metric contains multiple dimensions, you must include a value for each dimension. CloudWatch treats each unique combination of dimensions as a separate metric. If a specific combination of dimensions was not published, you can't retrieve statistics for it. You must specify the same dimensions that were used when the metrics were created. For an example, see <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#dimension-combinations">Dimension Combinations</a> in the <i>Amazon CloudWatch User Guide</i>. For more information about specifying dimensions, see <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/publishingMetrics.html">Publishing Metrics</a> in the <i>Amazon CloudWatch User Guide</i>.<br/>MetricName:  The name of the metric, with or without spaces.<br/>Namespace:  The namespace of the metric, with or without spaces.<br/>
        :return: Datapoints:  The data points for the specified metric.<br/>Label:  A label for the specified metric.<br/>        """
        pass

    def get_metric_stream(self, Name: str) -> GetMetricStreamOutput:
        r"""Returns information about the metric stream that you specify.

        :param self:
        :param Name:  The name of the metric stream to retrieve information about.<br/>
        :return: OutputFormat:  <p/><br/>LastUpdateDate:  The date of the most recent update to the metric stream's configuration.<br/>CreationDate:  The date that the metric stream was created.<br/>State:  The state of the metric stream. The possible values are <code>running</code> and <code>stopped</code>.<br/>RoleArn:  The ARN of the IAM role that is used by this metric stream.<br/>FirehoseArn:  The ARN of the Amazon Kinesis Firehose delivery stream that is used by this metric stream.<br/>ExcludeFilters:  If this array of metric namespaces is present, then these namespaces are the only metric namespaces that are not streamed by this metric stream. In this case, all other metric namespaces in the account are streamed by this metric stream.<br/>IncludeFilters:  If this array of metric namespaces is present, then these namespaces are the only metric namespaces that are streamed by this metric stream.<br/>Name:  The name of the metric stream.<br/>Arn:  The ARN of the metric stream.<br/>        """
        pass

    def get_metric_widget_image(self, MetricWidget: str, OutputFormat: str=None) -> GetMetricWidgetImageOutput:
        r"""You can use the <code>GetMetricWidgetImage</code> API to retrieve a snapshot graph of one or more Amazon CloudWatch metrics as a bitmap image. You can then embed this image into your services and products, such as wiki pages, reports, and documents. You could also retrieve images regularly, such as every minute, and create your own custom live dashboard. The graph you retrieve can include all CloudWatch metric graph features, including metric math and horizontal and vertical annotations. There is a limit of 20 transactions per second for this API. Each <code>GetMetricWidgetImage</code> action has the following limits: <ul> <li> As many as 100 metrics in the graph. </li> <li> Up to 100 KB uncompressed payload. </li> </ul>

        :param self:
        :param OutputFormat:  The format of the resulting image. Only PNG images are supported. The default is <code>png</code>. If you specify <code>png</code>, the API returns an HTTP response with the content-type set to <code>text/xml</code>. The image data is in a <code>MetricWidgetImage</code> field. For example:  <code> &lt;GetMetricWidgetImageResponse xmlns=&lt;URLstring&gt;&gt;</code>   <code> &lt;GetMetricWidgetImageResult&gt;</code>   <code> &lt;MetricWidgetImage&gt;</code>   <code> iVBORw0KGgoAAAANSUhEUgAAAlgAAAGQEAYAAAAip...</code>   <code> &lt;/MetricWidgetImage&gt;</code>   <code> &lt;/GetMetricWidgetImageResult&gt;</code>   <code> &lt;ResponseMetadata&gt;</code>   <code> &lt;RequestId&gt;6f0d4192-4d42-11e8-82c1-f539a07e0e3b&lt;/RequestId&gt;</code>   <code> &lt;/ResponseMetadata&gt;</code>   <code>&lt;/GetMetricWidgetImageResponse&gt;</code>  The <code>image/png</code> setting is intended only for custom HTTP requests. For most use cases, and all actions using an AWS SDK, you should use <code>png</code>. If you specify <code>image/png</code>, the HTTP response has a content-type set to <code>image/png</code>, and the body of the response is a PNG image. <br/>MetricWidget:  A JSON string that defines the bitmap graph to be retrieved. The string includes the metrics to include in the graph, statistics, annotations, title, axis limits, and so on. You can include only one <code>MetricWidget</code> parameter in each <code>GetMetricWidgetImage</code> call. For more information about the syntax of <code>MetricWidget</code> see <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/CloudWatch-Metric-Widget-Structure.html">GetMetricWidgetImage: Metric Widget Structure and Syntax</a>. If any metric on the graph could not load all the requested data points, an orange triangle with an exclamation point appears next to the graph legend.<br/>
        :return: MetricWidgetImage:  The image of the graph, in the output format specified. The output is base64-encoded.<br/>        """
        pass

    def list_dashboards(self, DashboardNamePrefix: str=None, NextToken: str=None) -> ListDashboardsOutput:
        r"""Returns a list of the dashboards for your account. If you include <code>DashboardNamePrefix</code>, only those dashboards with names starting with the prefix are listed. Otherwise, all dashboards in your account are listed.   <code>ListDashboards</code> returns up to 1000 results on one page. If there are more than 1000 dashboards, you can call <code>ListDashboards</code> again and include the value you received for <code>NextToken</code> in the first call, to receive the next 1000 results.

        :param self:
        :param NextToken:  The token returned by a previous call to indicate that there is more data available.<br/>DashboardNamePrefix:  If you specify this parameter, only the dashboards with names starting with the specified string are listed. The maximum length is 255, and valid characters are A-Z, a-z, 0-9, ".", "-", and "_". <br/>
        :return: NextToken:  The token that marks the start of the next batch of returned results.<br/>DashboardEntries:  The list of matching dashboards.<br/>        """
        pass

    def list_metric_streams(self, NextToken: str=None, MaxResults: int=None) -> ListMetricStreamsOutput:
        r"""Returns a list of metric streams in this account.

        :param self:
        :param MaxResults:  The maximum number of results to return in one operation.<br/>NextToken:  Include this value, if it was returned by the previous call, to get the next set of metric streams.<br/>
        :return: Entries:  The array of metric stream information.<br/>NextToken:  The token that marks the start of the next batch of returned results. You can use this token in a subsequent operation to get the next batch of results.<br/>        """
        pass

    def list_metrics(self, Namespace: str=None, MetricName: str=None, Dimensions: List[DimensionFilter]=None, NextToken: str=None, RecentlyActive: str=None) -> ListMetricsOutput:
        r"""List the specified metrics. You can use the returned metrics with <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_GetMetricData.html">GetMetricData</a> or <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_GetMetricStatistics.html">GetMetricStatistics</a> to obtain statistical data. Up to 500 results are returned for any one call. To retrieve additional results, use the returned token with subsequent calls. After you create a metric, allow up to 15 minutes before the metric appears. You can see statistics about the metric sooner by using <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_GetMetricData.html">GetMetricData</a> or <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_GetMetricStatistics.html">GetMetricStatistics</a>.  <code>ListMetrics</code> doesn't return information about metrics if those metrics haven't reported data in the past two weeks. To retrieve those metrics, use <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_GetMetricData.html">GetMetricData</a> or <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_GetMetricStatistics.html">GetMetricStatistics</a>.

        :param self:
        :param RecentlyActive:  To filter the results to show only metrics that have had data points published in the past three hours, specify this parameter with a value of <code>PT3H</code>. This is the only valid value for this parameter. The results that are returned are an approximation of the value you specify. There is a low probability that the returned results include metrics with last published data as much as 40 minutes more than the specified time interval.<br/>NextToken:  The token returned by a previous call to indicate that there is more data available.<br/>Dimensions:  The dimensions to filter against. Only the dimensions that match exactly will be returned.<br/>MetricName:  The name of the metric to filter against. Only the metrics with names that match exactly will be returned.<br/>Namespace:  The metric namespace to filter against. Only the namespace that matches exactly will be returned.<br/>
        :return: NextToken:  The token that marks the start of the next batch of returned results. <br/>Metrics:  The metrics that match your request. <br/>        """
        pass

    def list_tags_for_resource(self, ResourceARN: str) -> ListTagsForResourceOutput:
        r"""Displays the tags associated with a CloudWatch resource. Currently, alarms and Contributor Insights rules support tagging.

        :param self:
        :param ResourceARN:  The ARN of the CloudWatch resource that you want to view tags for. The ARN format of an alarm is <code>arn:aws:cloudwatch:<i>Region</i>:<i>account-id</i>:alarm:<i>alarm-name</i> </code>  The ARN format of a Contributor Insights rule is <code>arn:aws:cloudwatch:<i>Region</i>:<i>account-id</i>:insight-rule:<i>insight-rule-name</i> </code>  For more information about ARN format, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazoncloudwatch.html#amazoncloudwatch-resources-for-iam-policies"> Resource Types Defined by Amazon CloudWatch</a> in the <i>Amazon Web Services General Reference</i>.<br/>
        :return: Tags:  The list of tag keys and values associated with the resource you specified.<br/>        """
        pass

    def put_anomaly_detector(self, Stat: str, MetricName: str, Namespace: str, Dimensions: List[Dimension]=None, Configuration: AnomalyDetectorConfiguration=None) -> PutAnomalyDetectorOutput:
        r"""Creates an anomaly detection model for a CloudWatch metric. You can use the model to display a band of expected normal values when the metric is graphed. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Anomaly_Detection.html">CloudWatch Anomaly Detection</a>.

        :param self:
        :param Configuration:  The configuration specifies details about how the anomaly detection model is to be trained, including time ranges to exclude when training and updating the model. You can specify as many as 10 time ranges. The configuration can also include the time zone to use for the metric.:<br/>Stat:  The statistic to use for the metric and the anomaly detection model.<br/>Dimensions:  The metric dimensions to create the anomaly detection model for.<br/>MetricName:  The name of the metric to create the anomaly detection model for.<br/>Namespace:  The namespace of the metric to create the anomaly detection model for.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MetricTimezone</i> The time zone to use for the metric. This is useful to enable the model to automatically account for daylight savings time changes if the metric is sensitive to such time changes. To specify a time zone, use the name of the time zone as specified in the standard tz database. For more information, see <a href="https://en.wikipedia.org/wiki/Tz_database">tz database</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExcludedTimeRanges</i> An array of time ranges to exclude from use when the anomaly detection model is trained. Use this to make sure that events that could cause unusual values for the metric, such as deployments, aren't used when CloudWatch creates the model.<br/>
        :return:         """
        pass

    def put_composite_alarm(self, AlarmRule: str, AlarmName: str, ActionsEnabled: ActionsEnabled=None, AlarmActions: List[ResourceName]=None, AlarmDescription: str=None, InsufficientDataActions: List[ResourceName]=None, OKActions: List[ResourceName]=None, Tags: List[Tag]=None):
        r"""Creates or updates a <i>composite alarm</i>. When you create a composite alarm, you specify a rule expression for the alarm that takes into account the alarm states of other alarms that you have created. The composite alarm goes into ALARM state only if all conditions of the rule are met. The alarms specified in a composite alarm's rule expression can include metric alarms and other composite alarms. Using composite alarms can reduce alarm noise. You can create multiple metric alarms, and also create a composite alarm and set up alerts only for the composite alarm. For example, you could create a composite alarm that goes into ALARM state only when more than one of the underlying metric alarms are in ALARM state. Currently, the only alarm actions that can be taken by composite alarms are notifying SNS topics. <note> It is possible to create a loop or cycle of composite alarms, where composite alarm A depends on composite alarm B, and composite alarm B also depends on composite alarm A. In this scenario, you can't delete any composite alarm that is part of the cycle because there is always still a composite alarm that depends on that alarm that you want to delete. To get out of such a situation, you must break the cycle by changing the rule of one of the composite alarms in the cycle to remove a dependency that creates the cycle. The simplest change to make to break a cycle is to change the <code>AlarmRule</code> of one of the alarms to <code>False</code>.  Additionally, the evaluation of composite alarms stops if CloudWatch detects a cycle in the evaluation path.  </note> When this operation creates an alarm, the alarm state is immediately set to <code>INSUFFICIENT_DATA</code>. The alarm is then evaluated and its state is set appropriately. Any actions associated with the new state are then executed. For a composite alarm, this initial time after creation is the only time that the alarm can be in <code>INSUFFICIENT_DATA</code> state. When you update an existing alarm, its state is left unchanged, but the update completely overwrites the previous configuration of the alarm. If you are an IAM user, you must have <code>iam:CreateServiceLinkedRole</code> to create a composite alarm that has Systems Manager OpsItem actions.

        :param self:
        :param Tags:  A list of key-value pairs to associate with the composite alarm. You can associate as many as 50 tags with an alarm. Tags can help you organize and categorize your resources. You can also use them to scope user permissions, by granting a user permission to access or change only resources with certain tag values.<br/>OKActions:  The actions to execute when this alarm transitions to an <code>OK</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN). Valid Values: <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> <br/>InsufficientDataActions:  The actions to execute when this alarm transitions to the <code>INSUFFICIENT_DATA</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN). Valid Values: <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> <br/>AlarmRule:  An expression that specifies which other alarms are to be evaluated to determine this composite alarm's state. For each alarm that you reference, you designate a function that specifies whether that alarm needs to be in ALARM state, OK state, or INSUFFICIENT_DATA state. You can use operators (AND, OR and NOT) to combine multiple functions in a single expression. You can use parenthesis to logically group the functions in your expression. You can use either alarm names or ARNs to reference the other alarms that are to be evaluated. Functions can include the following: <ul> <li>  <code>ALARM("<i>alarm-name</i> or <i>alarm-ARN</i>")</code> is TRUE if the named alarm is in ALARM state. </li> <li>  <code>OK("<i>alarm-name</i> or <i>alarm-ARN</i>")</code> is TRUE if the named alarm is in OK state. </li> <li>  <code>INSUFFICIENT_DATA("<i>alarm-name</i> or <i>alarm-ARN</i>")</code> is TRUE if the named alarm is in INSUFFICIENT_DATA state. </li> <li>  <code>TRUE</code> always evaluates to TRUE. </li> <li>  <code>FALSE</code> always evaluates to FALSE. </li> </ul> TRUE and FALSE are useful for testing a complex <code>AlarmRule</code> structure, and for testing your alarm actions. Alarm names specified in <code>AlarmRule</code> can be surrounded with double-quotes ("), but do not have to be. The following are some examples of <code>AlarmRule</code>: <ul> <li>  <code>ALARM(CPUUtilizationTooHigh) AND ALARM(DiskReadOpsTooHigh)</code> specifies that the composite alarm goes into ALARM state only if both CPUUtilizationTooHigh and DiskReadOpsTooHigh alarms are in ALARM state. </li> <li>  <code>ALARM(CPUUtilizationTooHigh) AND NOT ALARM(DeploymentInProgress)</code> specifies that the alarm goes to ALARM state if CPUUtilizationTooHigh is in ALARM state and DeploymentInProgress is not in ALARM state. This example reduces alarm noise during a known deployment window. </li> <li>  <code>(ALARM(CPUUtilizationTooHigh) OR ALARM(DiskReadOpsTooHigh)) AND OK(NetworkOutTooHigh)</code> goes into ALARM state if CPUUtilizationTooHigh OR DiskReadOpsTooHigh is in ALARM state, and if NetworkOutTooHigh is in OK state. This provides another example of using a composite alarm to prevent noise. This rule ensures that you are not notified with an alarm action on high CPU or disk usage if a known network problem is also occurring. </li> </ul> The <code>AlarmRule</code> can specify as many as 100 "children" alarms. The <code>AlarmRule</code> expression can have as many as 500 elements. Elements are child alarms, TRUE or FALSE statements, and parentheses.<br/>AlarmName:  The name for the composite alarm. This name must be unique within the Region.<br/>AlarmDescription:  The description for the composite alarm.<br/>AlarmActions:  The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN). Valid Values: <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> | <code>arn:aws:ssm:<i>region</i>:<i>account-id</i>:opsitem:<i>severity</i> </code> <br/>ActionsEnabled:  Indicates whether actions should be executed during any changes to the alarm state of the composite alarm. The default is <code>TRUE</code>.<br/>
        :return:         """
        pass

    def put_dashboard(self, DashboardBody: str, DashboardName: str) -> PutDashboardOutput:
        r"""Creates a dashboard if it does not already exist, or updates an existing dashboard. If you update a dashboard, the entire contents are replaced with what you specify here. All dashboards in your account are global, not region-specific. A simple way to create a dashboard using <code>PutDashboard</code> is to copy an existing dashboard. To copy an existing dashboard using the console, you can load the dashboard and then use the View/edit source command in the Actions menu to display the JSON block for that dashboard. Another way to copy a dashboard is to use <code>GetDashboard</code>, and then use the data returned within <code>DashboardBody</code> as the template for the new dashboard when you call <code>PutDashboard</code>. When you create a dashboard with <code>PutDashboard</code>, a good practice is to add a text widget at the top of the dashboard with a message that the dashboard was created by script and should not be changed in the console. This message could also point console users to the location of the <code>DashboardBody</code> script or the CloudFormation template used to create the dashboard.

        :param self:
        :param DashboardBody:  The detailed information about the dashboard in JSON format, including the widgets to include and their location on the dashboard. This parameter is required. For more information about the syntax, see <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/CloudWatch-Dashboard-Body-Structure.html">Dashboard Body Structure and Syntax</a>.<br/>DashboardName:  The name of the dashboard. If a dashboard with this name already exists, this call modifies that dashboard, replacing its current contents. Otherwise, a new dashboard is created. The maximum length is 255, and valid characters are A-Z, a-z, 0-9, "-", and "_". This parameter is required.<br/>
        :return: DashboardValidationMessages:  If the input for <code>PutDashboard</code> was correct and the dashboard was successfully created or modified, this result is empty. If this result includes only warning messages, then the input was valid enough for the dashboard to be created or modified, but some elements of the dashboard might not render. If this result includes error messages, the input was not valid and the operation failed.<br/>        """
        pass

    def put_insight_rule(self, RuleDefinition: str, RuleName: str, RuleState: str=None, Tags: List[Tag]=None) -> PutInsightRuleOutput:
        r"""Creates a Contributor Insights rule. Rules evaluate log events in a CloudWatch Logs log group, enabling you to find contributor data for the log events in that log group. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ContributorInsights.html">Using Contributor Insights to Analyze High-Cardinality Data</a>. If you create a rule, delete it, and then re-create it with the same name, historical data from the first time the rule was created might not be available.

        :param self:
        :param Tags:  A list of key-value pairs to associate with the Contributor Insights rule. You can associate as many as 50 tags with a rule. Tags can help you organize and categorize your resources. You can also use them to scope user permissions, by granting a user permission to access or change only the resources that have certain tag values. To be able to associate tags with a rule, you must have the <code>cloudwatch:TagResource</code> permission in addition to the <code>cloudwatch:PutInsightRule</code> permission. If you are using this operation to update an existing Contributor Insights rule, any tags you specify in this parameter are ignored. To change the tags of an existing rule, use <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_TagResource.html">TagResource</a>.<br/>RuleDefinition:  The definition of the rule, as a JSON object. For details on the valid syntax, see <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ContributorInsights-RuleSyntax.html">Contributor Insights Rule Syntax</a>.<br/>RuleState:  The state of the rule. Valid values are ENABLED and DISABLED.<br/>RuleName:  A unique name for the rule.<br/>
        :return:         """
        pass

    def put_metric_alarm(self, ComparisonOperator: str, EvaluationPeriods: int, AlarmName: str, AlarmDescription: str=None, ActionsEnabled: ActionsEnabled=None, OKActions: List[ResourceName]=None, AlarmActions: List[ResourceName]=None, InsufficientDataActions: List[ResourceName]=None, MetricName: str=None, Namespace: str=None, Statistic: str=None, ExtendedStatistic: str=None, Dimensions: List[Dimension]=None, Period: int=None, Unit: str=None, DatapointsToAlarm: int=None, Threshold: Threshold=None, TreatMissingData: str=None, EvaluateLowSampleCountPercentile: str=None, Metrics: List[MetricDataQuery]=None, Tags: List[Tag]=None, ThresholdMetricId: str=None):
        r"""Creates or updates an alarm and associates it with the specified metric, metric math expression, or anomaly detection model. Alarms based on anomaly detection models cannot have Auto Scaling actions. When this operation creates an alarm, the alarm state is immediately set to <code>INSUFFICIENT_DATA</code>. The alarm is then evaluated and its state is set appropriately. Any actions associated with the new state are then executed. When you update an existing alarm, its state is left unchanged, but the update completely overwrites the previous configuration of the alarm. If you are an IAM user, you must have Amazon EC2 permissions for some alarm operations: <ul> <li> The <code>iam:CreateServiceLinkedRole</code> for all alarms with EC2 actions </li> <li> The <code>iam:CreateServiceLinkedRole</code> to create an alarm with Systems Manager OpsItem actions. </li> </ul> The first time you create an alarm in the AWS Management Console, the CLI, or by using the PutMetricAlarm API, CloudWatch creates the necessary service-linked role for you. The service-linked roles are called <code>AWSServiceRoleForCloudWatchEvents</code> and <code>AWSServiceRoleForCloudWatchAlarms_ActionSSM</code>. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role">AWS service-linked role</a>.

        :param self:
        :param ThresholdMetricId:  If this is an alarm based on an anomaly detection model, make this value match the ID of the <code>ANOMALY_DETECTION_BAND</code> function. For an example of how to use this parameter, see the <b>Anomaly Detection Model Alarm</b> example on this page. If your alarm uses this parameter, it cannot have Auto Scaling actions.<br/>Tags:  A list of key-value pairs to associate with the alarm. You can associate as many as 50 tags with an alarm. Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values. If you are using this operation to update an existing alarm, any tags you specify in this parameter are ignored. To change the tags of an existing alarm, use <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_TagResource.html">TagResource</a> or <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_UntagResource.html">UntagResource</a>.<br/>Metrics:  An array of <code>MetricDataQuery</code> structures that enable you to create an alarm based on the result of a metric math expression. For each <code>PutMetricAlarm</code> operation, you must specify either <code>MetricName</code> or a <code>Metrics</code> array. Each item in the <code>Metrics</code> array either retrieves a metric or performs a math expression. One item in the <code>Metrics</code> array is the expression that the alarm watches. You designate this expression by setting <code>ReturnData</code> to true for this object in the array. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDataQuery.html">MetricDataQuery</a>. If you use the <code>Metrics</code> parameter, you cannot include the <code>MetricName</code>, <code>Dimensions</code>, <code>Period</code>, <code>Namespace</code>, <code>Statistic</code>, or <code>ExtendedStatistic</code> parameters of <code>PutMetricAlarm</code> in the same operation. Instead, you retrieve the metrics you are using in your math expression as part of the <code>Metrics</code> array.<br/>EvaluateLowSampleCountPercentile:   Used only for alarms based on percentiles. If you specify <code>ignore</code>, the alarm state does not change during periods with too few data points to be statistically significant. If you specify <code>evaluate</code> or omit this parameter, the alarm is always evaluated and possibly changes state no matter how many data points are available. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#percentiles-with-low-samples">Percentile-Based CloudWatch Alarms and Low Data Samples</a>. Valid Values: <code>evaluate | ignore</code> <br/>TreatMissingData:   Sets how this alarm is to handle missing data points. If <code>TreatMissingData</code> is omitted, the default behavior of <code>missing</code> is used. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarms-and-missing-data">Configuring How CloudWatch Alarms Treats Missing Data</a>. Valid Values: <code>breaching | notBreaching | ignore | missing</code> <br/>ComparisonOperator:   The arithmetic operation to use when comparing the specified statistic and threshold. The specified statistic value is used as the first operand. The values <code>LessThanLowerOrGreaterThanUpperThreshold</code>, <code>LessThanLowerThreshold</code>, and <code>GreaterThanUpperThreshold</code> are used only for alarms based on anomaly detection models.<br/>Threshold:  The value against which the specified statistic is compared. This parameter is required for alarms based on static thresholds, but should not be used for alarms based on anomaly detection models.<br/>DatapointsToAlarm:  The number of data points that must be breaching to trigger the alarm. This is used only if you are setting an "M out of N" alarm. In that case, this value is the M. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarm-evaluation">Evaluating an Alarm</a> in the <i>Amazon CloudWatch User Guide</i>.<br/>EvaluationPeriods:  The number of periods over which data is compared to the specified threshold. If you are setting an alarm that requires that a number of consecutive data points be breaching to trigger the alarm, this value specifies that number. If you are setting an "M out of N" alarm, this value is the N. An alarm's total current evaluation period can be no longer than one day, so this number multiplied by <code>Period</code> cannot be more than 86,400 seconds.<br/>Unit:  The unit of measure for the statistic. For example, the units for the Amazon EC2 NetworkIn metric are Bytes because NetworkIn tracks the number of bytes that an instance receives on all network interfaces. You can also specify a unit when you create a custom metric. Units help provide conceptual meaning to your data. Metric data points that specify a unit of measure, such as Percent, are aggregated separately. If you don't specify <code>Unit</code>, CloudWatch retrieves all unit types that have been published for the metric and attempts to evaluate the alarm. Usually, metrics are published with only one unit, so the alarm works as intended. However, if the metric is published with multiple types of units and you don't specify a unit, the alarm's behavior is not defined and it behaves predictably. We recommend omitting <code>Unit</code> so that you don't inadvertently specify an incorrect unit that is not published for this metric. Doing so causes the alarm to be stuck in the <code>INSUFFICIENT DATA</code> state.<br/>Period:  The length, in seconds, used each time the metric specified in <code>MetricName</code> is evaluated. Valid values are 10, 30, and any multiple of 60.  <code>Period</code> is required for alarms based on static thresholds. If you are creating an alarm based on a metric math expression, you specify the period for each metric within the objects in the <code>Metrics</code> array. Be sure to specify 10 or 30 only for metrics that are stored by a <code>PutMetricData</code> call with a <code>StorageResolution</code> of 1. If you specify a period of 10 or 30 for a metric that does not have sub-minute resolution, the alarm still attempts to gather data at the period rate that you specify. In this case, it does not receive data for the attempts that do not correspond to a one-minute data resolution, and the alarm might often lapse into INSUFFICENT_DATA status. Specifying 10 or 30 also sets this alarm as a high-resolution alarm, which has a higher charge than other alarms. For more information about pricing, see <a href="https://aws.amazon.com/cloudwatch/pricing/">Amazon CloudWatch Pricing</a>. An alarm's total current evaluation period can be no longer than one day, so <code>Period</code> multiplied by <code>EvaluationPeriods</code> cannot be more than 86,400 seconds.<br/>Dimensions:  The dimensions for the metric specified in <code>MetricName</code>.<br/>ExtendedStatistic:  The percentile statistic for the metric specified in <code>MetricName</code>. Specify a value between p0.0 and p100. When you call <code>PutMetricAlarm</code> and specify a <code>MetricName</code>, you must specify either <code>Statistic</code> or <code>ExtendedStatistic,</code> but not both.<br/>Statistic:  The statistic for the metric specified in <code>MetricName</code>, other than percentile. For percentile statistics, use <code>ExtendedStatistic</code>. When you call <code>PutMetricAlarm</code> and specify a <code>MetricName</code>, you must specify either <code>Statistic</code> or <code>ExtendedStatistic,</code> but not both.<br/>Namespace:  The namespace for the metric associated specified in <code>MetricName</code>.<br/>MetricName:  The name for the metric associated with the alarm. For each <code>PutMetricAlarm</code> operation, you must specify either <code>MetricName</code> or a <code>Metrics</code> array. If you are creating an alarm based on a math expression, you cannot specify this parameter, or any of the <code>Dimensions</code>, <code>Period</code>, <code>Namespace</code>, <code>Statistic</code>, or <code>ExtendedStatistic</code> parameters. Instead, you specify all this information in the <code>Metrics</code> array.<br/>InsufficientDataActions:  The actions to execute when this alarm transitions to the <code>INSUFFICIENT_DATA</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN). Valid Values: <code>arn:aws:automate:<i>region</i>:ec2:stop</code> | <code>arn:aws:automate:<i>region</i>:ec2:terminate</code> | <code>arn:aws:automate:<i>region</i>:ec2:recover</code> | <code>arn:aws:automate:<i>region</i>:ec2:reboot</code> | <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> | <code>arn:aws:autoscaling:<i>region</i>:<i>account-id</i>:scalingPolicy:<i>policy-id</i>:autoScalingGroupName/<i>group-friendly-name</i>:policyName/<i>policy-friendly-name</i> </code>  Valid Values (for use with IAM roles): <code>&gt;arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Stop/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Terminate/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Reboot/1.0</code> <br/>AlarmActions:  The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN). Valid Values: <code>arn:aws:automate:<i>region</i>:ec2:stop</code> | <code>arn:aws:automate:<i>region</i>:ec2:terminate</code> | <code>arn:aws:automate:<i>region</i>:ec2:recover</code> | <code>arn:aws:automate:<i>region</i>:ec2:reboot</code> | <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> | <code>arn:aws:autoscaling:<i>region</i>:<i>account-id</i>:scalingPolicy:<i>policy-id</i>:autoScalingGroupName/<i>group-friendly-name</i>:policyName/<i>policy-friendly-name</i> </code> | <code>arn:aws:ssm:<i>region</i>:<i>account-id</i>:opsitem:<i>severity</i> </code>  Valid Values (for use with IAM roles): <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Stop/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Terminate/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Reboot/1.0</code> <br/>OKActions:  The actions to execute when this alarm transitions to an <code>OK</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN). Valid Values: <code>arn:aws:automate:<i>region</i>:ec2:stop</code> | <code>arn:aws:automate:<i>region</i>:ec2:terminate</code> | <code>arn:aws:automate:<i>region</i>:ec2:recover</code> | <code>arn:aws:automate:<i>region</i>:ec2:reboot</code> | <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> | <code>arn:aws:autoscaling:<i>region</i>:<i>account-id</i>:scalingPolicy:<i>policy-id</i>:autoScalingGroupName/<i>group-friendly-name</i>:policyName/<i>policy-friendly-name</i> </code>  Valid Values (for use with IAM roles): <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Stop/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Terminate/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Reboot/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Recover/1.0</code> <br/>ActionsEnabled:  Indicates whether actions should be executed during any changes to the alarm state. The default is <code>TRUE</code>.<br/>AlarmDescription:  The description for the alarm.<br/>AlarmName:  The name for the alarm. This name must be unique within the Region.<br/>
        :return:         """
        pass

    def put_metric_data(self, MetricData: List[MetricDatum], Namespace: str):
        r"""Publishes metric data points to Amazon CloudWatch. CloudWatch associates the data points with the specified metric. If the specified metric does not exist, CloudWatch creates the metric. When CloudWatch creates a metric, it can take up to fifteen minutes for the metric to appear in calls to <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_ListMetrics.html">ListMetrics</a>. You can publish either individual data points in the <code>Value</code> field, or arrays of values and the number of times each value occurred during the period by using the <code>Values</code> and <code>Counts</code> fields in the <code>MetricDatum</code> structure. Using the <code>Values</code> and <code>Counts</code> method enables you to publish up to 150 values per metric with one <code>PutMetricData</code> request, and supports retrieving percentile statistics on this data. Each <code>PutMetricData</code> request is limited to 40 KB in size for HTTP POST requests. You can send a payload compressed by gzip. Each request is also limited to no more than 20 different metrics. Although the <code>Value</code> parameter accepts numbers of type <code>Double</code>, CloudWatch rejects values that are either too small or too large. Values must be in the range of -2^360 to 2^360. In addition, special values (for example, NaN, +Infinity, -Infinity) are not supported. You can use up to 10 dimensions per metric to further clarify what data the metric collects. Each dimension consists of a Name and Value pair. For more information about specifying dimensions, see <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/publishingMetrics.html">Publishing Metrics</a> in the <i>Amazon CloudWatch User Guide</i>. You specify the time stamp to be associated with each data point. You can specify time stamps that are as much as two weeks before the current date, and as much as 2 hours after the current day and time. Data points with time stamps from 24 hours ago or longer can take at least 48 hours to become available for <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_GetMetricData.html">GetMetricData</a> or <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_GetMetricStatistics.html">GetMetricStatistics</a> from the time they are submitted. Data points with time stamps between 3 and 24 hours ago can take as much as 2 hours to become available for for <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_GetMetricData.html">GetMetricData</a> or <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_GetMetricStatistics.html">GetMetricStatistics</a>. CloudWatch needs raw data points to calculate percentile statistics. If you publish data using a statistic set instead, you can only retrieve percentile statistics for this data if one of the following conditions is true: <ul> <li> The <code>SampleCount</code> value of the statistic set is 1 and <code>Min</code>, <code>Max</code>, and <code>Sum</code> are all equal. </li> <li> The <code>Min</code> and <code>Max</code> are equal, and <code>Sum</code> is equal to <code>Min</code> multiplied by <code>SampleCount</code>. </li> </ul>

        :param self:
        :param MetricData:  The data for the metric. The array can include no more than 20 metrics per call.<br/>Namespace:  The namespace for the metric data. To avoid conflicts with AWS service namespaces, you should not specify a namespace that begins with <code>AWS/</code> <br/>
        :return:         """
        pass

    def put_metric_stream(self, OutputFormat: str, RoleArn: str, FirehoseArn: str, Name: str, IncludeFilters: List[MetricStreamFilter]=None, ExcludeFilters: List[MetricStreamFilter]=None, Tags: List[Tag]=None) -> PutMetricStreamOutput:
        r"""Creates or updates a metric stream. Metric streams can automatically stream CloudWatch metrics to AWS destinations including Amazon S3 and to many third-party solutions. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Metric-Streams.html"> Using Metric Streams</a>. To create a metric stream, you must be logged on to an account that has the <code>iam:PassRole</code> permission and either the <code>CloudWatchFullAccess</code> policy or the <code>cloudwatch:PutMetricStream</code> permission. When you create or update a metric stream, you choose one of the following: <ul> <li> Stream metrics from all metric namespaces in the account. </li> <li> Stream metrics from all metric namespaces in the account, except for the namespaces that you list in <code>ExcludeFilters</code>. </li> <li> Stream metrics from only the metric namespaces that you list in <code>IncludeFilters</code>. </li> </ul> When you use <code>PutMetricStream</code> to create a new metric stream, the stream is created in the <code>running</code> state. If you use it to update an existing stream, the state of the stream is not changed.

        :param self:
        :param Tags:  A list of key-value pairs to associate with the metric stream. You can associate as many as 50 tags with a metric stream. Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values.<br/>OutputFormat:  The output format for the stream. Valid values are <code>json</code> and <code>opentelemetry0.7</code>. For more information about metric stream output formats, see <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-metric-streams-formats.html"> Metric streams output formats</a>.<br/>RoleArn:  The ARN of an IAM role that this metric stream will use to access Amazon Kinesis Firehose resources. This IAM role must already exist and must be in the same account as the metric stream. This IAM role must include the following permissions: <ul> <li> firehose:PutRecord </li> <li> firehose:PutRecordBatch </li> </ul><br/>FirehoseArn:  The ARN of the Amazon Kinesis Firehose delivery stream to use for this metric stream. This Amazon Kinesis Firehose delivery stream must already exist and must be in the same account as the metric stream.<br/>ExcludeFilters:  If you specify this parameter, the stream sends metrics from all metric namespaces except for the namespaces that you specify here. You cannot include <code>ExcludeFilters</code> and <code>IncludeFilters</code> in the same operation.<br/>IncludeFilters:  If you specify this parameter, the stream sends only the metrics from the metric namespaces that you specify here. You cannot include <code>IncludeFilters</code> and <code>ExcludeFilters</code> in the same operation.<br/>Name:  If you are creating a new metric stream, this is the name for the new stream. The name must be different than the names of other metric streams in this account and Region. If you are updating a metric stream, specify the name of that stream here. Valid characters are A-Z, a-z, 0-9, "-" and "_".<br/>
        :return: Arn:  The ARN of the metric stream.<br/>        """
        pass

    def set_alarm_state(self, StateReason: str, StateValue: str, AlarmName: str, StateReasonData: str=None):
        r"""Temporarily sets the state of an alarm for testing purposes. When the updated state differs from the previous value, the action configured for the appropriate state is invoked. For example, if your alarm is configured to send an Amazon SNS message when an alarm is triggered, temporarily changing the alarm state to <code>ALARM</code> sends an SNS message. Metric alarms returns to their actual state quickly, often within seconds. Because the metric alarm state change happens quickly, it is typically only visible in the alarm's <b>History</b> tab in the Amazon CloudWatch console or through <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_DescribeAlarmHistory.html">DescribeAlarmHistory</a>. If you use <code>SetAlarmState</code> on a composite alarm, the composite alarm is not guaranteed to return to its actual state. It returns to its actual state only once any of its children alarms change state. It is also reevaluated if you update its configuration. If an alarm triggers EC2 Auto Scaling policies or application Auto Scaling policies, you must include information in the <code>StateReasonData</code> parameter to enable the policy to take the correct action.

        :param self:
        :param StateReasonData:  The reason that this alarm is set to this specific state, in JSON format. For SNS or EC2 alarm actions, this is just informational. But for EC2 Auto Scaling or application Auto Scaling alarm actions, the Auto Scaling policy uses the information in this field to take the correct action.<br/>StateReason:  The reason that this alarm is set to this specific state, in text format.<br/>StateValue:  The value of the state.<br/>AlarmName:  The name of the alarm.<br/>
        :return:         """
        pass

    def start_metric_streams(self, Names: List[MetricStreamName]) -> StartMetricStreamsOutput:
        r"""Starts the streaming of metrics for one or more of your metric streams.

        :param self:
        :param Names:  The array of the names of metric streams to start streaming. This is an "all or nothing" operation. If you do not have permission to access all of the metric streams that you list here, then none of the streams that you list in the operation will start streaming.<br/>
        :return:         """
        pass

    def stop_metric_streams(self, Names: List[MetricStreamName]) -> StopMetricStreamsOutput:
        r"""Stops the streaming of metrics for one or more of your metric streams.

        :param self:
        :param Names:  The array of the names of metric streams to stop streaming. This is an "all or nothing" operation. If you do not have permission to access all of the metric streams that you list here, then none of the streams that you list in the operation will stop streaming.<br/>
        :return:         """
        pass

    def tag_resource(self, Tags: List[Tag], ResourceARN: str) -> TagResourceOutput:
        r"""Assigns one or more tags (key-value pairs) to the specified CloudWatch resource. Currently, the only CloudWatch resources that can be tagged are alarms and Contributor Insights rules. Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values. Tags don't have any semantic meaning to AWS and are interpreted strictly as strings of characters. You can use the <code>TagResource</code> action with an alarm that already has tags. If you specify a new tag key for the alarm, this tag is appended to the list of tags associated with the alarm. If you specify a tag key that is already associated with the alarm, the new tag value that you specify replaces the previous value for that tag. You can associate as many as 50 tags with a CloudWatch resource.

        :param self:
        :param Tags:  The list of key-value pairs to associate with the alarm.<br/>ResourceARN:  The ARN of the CloudWatch resource that you're adding tags to. The ARN format of an alarm is <code>arn:aws:cloudwatch:<i>Region</i>:<i>account-id</i>:alarm:<i>alarm-name</i> </code>  The ARN format of a Contributor Insights rule is <code>arn:aws:cloudwatch:<i>Region</i>:<i>account-id</i>:insight-rule:<i>insight-rule-name</i> </code>  For more information about ARN format, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazoncloudwatch.html#amazoncloudwatch-resources-for-iam-policies"> Resource Types Defined by Amazon CloudWatch</a> in the <i>Amazon Web Services General Reference</i>.<br/>
        :return:         """
        pass

    def untag_resource(self, TagKeys: List[TagKey], ResourceARN: str) -> UntagResourceOutput:
        r"""Removes one or more tags from the specified resource.

        :param self:
        :param TagKeys:  The list of tag keys to remove from the resource.<br/>ResourceARN:  The ARN of the CloudWatch resource that you're removing tags from. The ARN format of an alarm is <code>arn:aws:cloudwatch:<i>Region</i>:<i>account-id</i>:alarm:<i>alarm-name</i> </code>  The ARN format of a Contributor Insights rule is <code>arn:aws:cloudwatch:<i>Region</i>:<i>account-id</i>:insight-rule:<i>insight-rule-name</i> </code>  For more information about ARN format, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazoncloudwatch.html#amazoncloudwatch-resources-for-iam-policies"> Resource Types Defined by Amazon CloudWatch</a> in the <i>Amazon Web Services General Reference</i>.<br/>
        :return:         """
        pass



    class CloudwatchResource:
        
        class Alarm:
            r"""Creates a Alarm resource.::

  alarm = cloudwatch.Alarm('name')

:type name: string
:param name: The Alarm's name identifier. This **must** be set.

:rtype: :py:class:`CloudWatch.Alarm`
:returns: A Alarm resource"""

            def __init__(self, name):
                pass
            
            class ResourceName(object):
                pass

            class MetricDataQuery(Mapping):
                pass

            class Dimension(Mapping):
                pass

            class Timestamp(object):
                pass

            class ActionsEnabled(object):
                pass

            class Threshold(object):
                pass
        
            alarm_name: str=None
            alarm_arn: str=None
            alarm_description: str=None
            alarm_configuration_updated_timestamp: Timestamp=None
            actions_enabled: ActionsEnabled=None
            ok_actions: List[ResourceName]=None
            alarm_actions: List[ResourceName]=None
            insufficient_data_actions: List[ResourceName]=None
            state_value: str=None
            state_reason: str=None
            state_reason_data: str=None
            state_updated_timestamp: Timestamp=None
            metric_name: str=None
            namespace: str=None
            statistic: str=None
            extended_statistic: str=None
            dimensions: List[Dimension]=None
            period: int=None
            unit: str=None
            evaluation_periods: int=None
            datapoints_to_alarm: int=None
            threshold: Threshold=None
            comparison_operator: str=None
            treat_missing_data: str=None
            evaluate_low_sample_count_percentile: str=None
            metrics: List[MetricDataQuery]=None
            threshold_metric_id: str=None
            
            def delete(self, **kwargs):
                # type: (object) -> dict
                return {}

            def describe_history(self, **kwargs):
                # type: (object) -> dict
                return {}

            def disable_actions(self, **kwargs):
                # type: (object) -> dict
                return {}

            def enable_actions(self, **kwargs):
                # type: (object) -> dict
                return {}

            def set_state(self, **kwargs):
                # type: (object) -> dict
                return {}


        
        class Metric:
            r"""Creates a Metric resource.::

  metric = cloudwatch.Metric('namespace','name')

:type namespace: string
:param namespace: The Metric's namespace identifier. This **must** be set.
:type name: string
:param name: The Metric's name identifier. This **must** be set.

:rtype: :py:class:`CloudWatch.Metric`
:returns: A Metric resource"""

            def __init__(self, namespace, name):
                pass
            
            class Dimension(Mapping):
                pass
        
            namespace: str=None
            metric_name: str=None
            dimensions: List[Dimension]=None
            
            def get_statistics(self, **kwargs):
                # type: (object) -> dict
                return {}

            def put_alarm(self, **kwargs):
                # type: (object) -> Alarm
                return Alarm()

            def put_data(self, **kwargs):
                # type: (object) -> dict
                return {}


        def get_available_subresources(self) -> List[str]:
            pass

        class AlarmResourceCollection(List[Alarm], ResourceCollection):
            pass

        alarms: AlarmResourceCollection = None
        class MetricResourceCollection(List[Metric], ResourceCollection):
            pass

        metrics: MetricResourceCollection = None




class CodeArtifact(BaseClient):
    r""" AWS CodeArtifact is a fully managed artifact repository compatible with language-native package managers and build tools such as npm, Apache Maven, and pip. You can use CodeArtifact to share packages with development teams and pull packages. Packages can be pulled from both public and CodeArtifact repositories. You can also create an upstream relationship between a CodeArtifact repository and another repository, which effectively merges their contents from the point of view of a package manager client.   <b>AWS CodeArtifact Components</b>  Use the information in this guide to help you work with the following CodeArtifact components: <ul> <li>  <b>Repository</b>: A CodeArtifact repository contains a set of <a href="https://docs.aws.amazon.com/codeartifact/latest/ug/welcome.html#welcome-concepts-package-version">package versions</a>, each of which maps to a set of assets, or files. Repositories are polyglot, so a single repository can contain packages of any supported type. Each repository exposes endpoints for fetching and publishing packages using tools like the <b> <code>npm</code> </b> CLI, the Maven CLI (<b> <code>mvn</code> </b>), and <b> <code>pip</code> </b>. </li> <li>  <b>Domain</b>: Repositories are aggregated into a higher-level entity known as a <i>domain</i>. All package assets and metadata are stored in the domain, but are consumed through repositories. A given package asset, such as a Maven JAR file, is stored once per domain, no matter how many repositories it's present in. All of the assets and metadata in a domain are encrypted with the same customer master key (CMK) stored in AWS Key Management Service (AWS KMS). Each repository is a member of a single domain and can't be moved to a different domain. The domain allows organizational policy to be applied across multiple repositories, such as which accounts can access repositories in the domain, and which public repositories can be used as sources of packages. Although an organization can have multiple domains, we recommend a single production domain that contains all published artifacts so that teams can find and share packages across their organization. </li> <li>  <b>Package</b>: A <i>package</i> is a bundle of software and the metadata required to resolve dependencies and install the software. CodeArtifact supports <a href="https://docs.aws.amazon.com/codeartifact/latest/ug/using-npm.html">npm</a>, <a href="https://docs.aws.amazon.com/codeartifact/latest/ug/using-python.html">PyPI</a>, and <a href="https://docs.aws.amazon.com/codeartifact/latest/ug/using-maven">Maven</a> package formats. In CodeArtifact, a package consists of: <ul> <li> A <i>name</i> (for example, <code>webpack</code> is the name of a popular npm package) </li> <li> An optional namespace (for example, <code>@types</code> in <code>@types/node</code>) </li> <li> A set of versions (for example, <code>1.0.0</code>, <code>1.0.1</code>, <code>1.0.2</code>, etc.) </li> <li>  Package-level metadata (for example, npm tags) </li> </ul> </li> <li>  <b>Package version</b>: A version of a package, such as <code>@types/node 12.6.9</code>. The version number format and semantics vary for different package formats. For example, npm package versions must conform to the <a href="https://semver.org/">Semantic Versioning specification</a>. In CodeArtifact, a package version consists of the version identifier, metadata at the package version level, and a set of assets. </li> <li>  <b>Upstream repository</b>: One repository is <i>upstream</i> of another when the package versions in it can be accessed from the repository endpoint of the downstream repository, effectively merging the contents of the two repositories from the point of view of a client. CodeArtifact allows creating an upstream relationship between two repositories. </li> <li>  <b>Asset</b>: An individual file stored in CodeArtifact associated with a package version, such as an npm <code>.tgz</code> file or Maven POM and JAR files. </li> </ul> CodeArtifact supports these operations: <ul> <li>  <code>AssociateExternalConnection</code>: Adds an existing external connection to a repository.  </li> <li>  <code>CopyPackageVersions</code>: Copies package versions from one repository to another repository in the same domain. </li> <li>  <code>CreateDomain</code>: Creates a domain </li> <li>  <code>CreateRepository</code>: Creates a CodeArtifact repository in a domain.  </li> <li>  <code>DeleteDomain</code>: Deletes a domain. You cannot delete a domain that contains repositories.  </li> <li>  <code>DeleteDomainPermissionsPolicy</code>: Deletes the resource policy that is set on a domain. </li> <li>  <code>DeletePackageVersions</code>: Deletes versions of a package. After a package has been deleted, it can be republished, but its assets and metadata cannot be restored because they have been permanently removed from storage. </li> <li>  <code>DeleteRepository</code>: Deletes a repository.  </li> <li>  <code>DeleteRepositoryPermissionsPolicy</code>: Deletes the resource policy that is set on a repository. </li> <li>  <code>DescribeDomain</code>: Returns a <code>DomainDescription</code> object that contains information about the requested domain. </li> <li>  <code>DescribePackageVersion</code>: Returns a <a href="https://docs.aws.amazon.com/codeartifact/latest/APIReference/API_PackageVersionDescription.html">PackageVersionDescription</a> object that contains details about a package version.  </li> <li>  <code>DescribeRepository</code>: Returns a <code>RepositoryDescription</code> object that contains detailed information about the requested repository.  </li> <li>  <code>DisposePackageVersions</code>: Disposes versions of a package. A package version with the status <code>Disposed</code> cannot be restored because they have been permanently removed from storage. </li> <li>  <code>DisassociateExternalConnection</code>: Removes an existing external connection from a repository.  </li> <li>  <code>GetAuthorizationToken</code>: Generates a temporary authorization token for accessing repositories in the domain. The token expires the authorization period has passed. The default authorization period is 12 hours and can be customized to any length with a maximum of 12 hours. </li> <li>  <code>GetDomainPermissionsPolicy</code>: Returns the policy of a resource that is attached to the specified domain.  </li> <li>  <code>GetPackageVersionAsset</code>: Returns the contents of an asset that is in a package version.  </li> <li>  <code>GetPackageVersionReadme</code>: Gets the readme file or descriptive text for a package version. </li> <li>  <code>GetRepositoryEndpoint</code>: Returns the endpoint of a repository for a specific package format. A repository has one endpoint for each package format:  <ul> <li>  <code>npm</code>  </li> <li>  <code>pypi</code>  </li> <li>  <code>maven</code>  </li> </ul> </li> <li>  <code>GetRepositoryPermissionsPolicy</code>: Returns the resource policy that is set on a repository.  </li> <li>  <code>ListDomains</code>: Returns a list of <code>DomainSummary</code> objects. Each returned <code>DomainSummary</code> object contains information about a domain. </li> <li>  <code>ListPackages</code>: Lists the packages in a repository. </li> <li>  <code>ListPackageVersionAssets</code>: Lists the assets for a given package version. </li> <li>  <code>ListPackageVersionDependencies</code>: Returns a list of the direct dependencies for a package version.  </li> <li>  <code>ListPackageVersions</code>: Returns a list of package versions for a specified package in a repository. </li> <li>  <code>ListRepositories</code>: Returns a list of repositories owned by the AWS account that called this method. </li> <li>  <code>ListRepositoriesInDomain</code>: Returns a list of the repositories in a domain. </li> <li>  <code>PutDomainPermissionsPolicy</code>: Attaches a resource policy to a domain. </li> <li>  <code>PutRepositoryPermissionsPolicy</code>: Sets the resource policy on a repository that specifies permissions to access it.  </li> <li>  <code>UpdatePackageVersionsStatus</code>: Updates the status of one or more versions of a package. </li> <li>  <code>UpdateRepository</code>: Updates the properties of a repository. </li> </ul>"""


    class ListDomainsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_domains` for valid parameters"""
            pass
    class ListPackageVersionAssetsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_package_version_assets` for valid parameters"""
            pass
    class ListPackageVersionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_package_versions` for valid parameters"""
            pass
    class ListPackagesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_packages` for valid parameters"""
            pass
    class ListRepositoriesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_repositories` for valid parameters"""
            pass
    class ListRepositoriesInDomainPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_repositories_in_domain` for valid parameters"""
            pass


    class AssociateExternalConnectionRequest(Mapping):
        pass
    
    class AssociateExternalConnectionResult(Mapping):
        pass
    
    class CopyPackageVersionsRequest(Mapping):
        pass
    
    class CopyPackageVersionsResult(Mapping):
        pass
    
    class PackageVersion(object):
        pass
    
    class PackageVersionRevisionMap(object):
        pass
    
    class BooleanOptional(object):
        pass
    
    class CreateDomainRequest(Mapping):
        pass
    
    class CreateDomainResult(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class CreateRepositoryRequest(Mapping):
        pass
    
    class CreateRepositoryResult(Mapping):
        pass
    
    class UpstreamRepository(Mapping):
        pass
    
    class DeleteDomainRequest(Mapping):
        pass
    
    class DeleteDomainResult(Mapping):
        pass
    
    class DeleteDomainPermissionsPolicyRequest(Mapping):
        pass
    
    class DeleteDomainPermissionsPolicyResult(Mapping):
        pass
    
    class DeletePackageVersionsRequest(Mapping):
        pass
    
    class DeletePackageVersionsResult(Mapping):
        pass
    
    class DeleteRepositoryRequest(Mapping):
        pass
    
    class DeleteRepositoryResult(Mapping):
        pass
    
    class DeleteRepositoryPermissionsPolicyRequest(Mapping):
        pass
    
    class DeleteRepositoryPermissionsPolicyResult(Mapping):
        pass
    
    class DescribeDomainRequest(Mapping):
        pass
    
    class DescribeDomainResult(Mapping):
        pass
    
    class DescribePackageVersionRequest(Mapping):
        pass
    
    class DescribePackageVersionResult(Mapping):
        pass
    
    class DescribeRepositoryRequest(Mapping):
        pass
    
    class DescribeRepositoryResult(Mapping):
        pass
    
    class DisassociateExternalConnectionRequest(Mapping):
        pass
    
    class DisassociateExternalConnectionResult(Mapping):
        pass
    
    class DisposePackageVersionsRequest(Mapping):
        pass
    
    class DisposePackageVersionsResult(Mapping):
        pass
    
    class GetAuthorizationTokenRequest(Mapping):
        pass
    
    class GetAuthorizationTokenResult(Mapping):
        pass
    
    class AuthorizationTokenDurationSeconds(object):
        pass
    
    class GetDomainPermissionsPolicyRequest(Mapping):
        pass
    
    class GetDomainPermissionsPolicyResult(Mapping):
        pass
    
    class GetPackageVersionAssetRequest(Mapping):
        pass
    
    class GetPackageVersionAssetResult(Mapping):
        pass
    
    class GetPackageVersionReadmeRequest(Mapping):
        pass
    
    class GetPackageVersionReadmeResult(Mapping):
        pass
    
    class GetRepositoryEndpointRequest(Mapping):
        pass
    
    class GetRepositoryEndpointResult(Mapping):
        pass
    
    class GetRepositoryPermissionsPolicyRequest(Mapping):
        pass
    
    class GetRepositoryPermissionsPolicyResult(Mapping):
        pass
    
    class ListDomainsRequest(Mapping):
        pass
    
    class ListDomainsResult(Mapping):
        pass
    
    class ListPackageVersionAssetsRequest(Mapping):
        pass
    
    class ListPackageVersionAssetsResult(Mapping):
        pass
    
    class ListPackageVersionDependenciesRequest(Mapping):
        pass
    
    class ListPackageVersionDependenciesResult(Mapping):
        pass
    
    class ListPackageVersionsRequest(Mapping):
        pass
    
    class ListPackageVersionsResult(Mapping):
        pass
    
    class ListPackagesRequest(Mapping):
        pass
    
    class ListPackagesResult(Mapping):
        pass
    
    class ListRepositoriesRequest(Mapping):
        pass
    
    class ListRepositoriesResult(Mapping):
        pass
    
    class ListRepositoriesInDomainRequest(Mapping):
        pass
    
    class ListRepositoriesInDomainResult(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResult(Mapping):
        pass
    
    class PutDomainPermissionsPolicyRequest(Mapping):
        pass
    
    class PutDomainPermissionsPolicyResult(Mapping):
        pass
    
    class PutRepositoryPermissionsPolicyRequest(Mapping):
        pass
    
    class PutRepositoryPermissionsPolicyResult(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResult(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResult(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdatePackageVersionsStatusRequest(Mapping):
        pass
    
    class UpdatePackageVersionsStatusResult(Mapping):
        pass
    
    class UpdateRepositoryRequest(Mapping):
        pass
    
    class UpdateRepositoryResult(Mapping):
        pass
    
    def associate_external_connection(self, externalConnection: str, repository: str, domain: str, domainOwner: str=None) -> AssociateExternalConnectionResult:
        r"""Adds an existing external connection to a repository. One external connection is allowed per repository. <note> A repository can have one or more upstream repositories, or an external connection. </note>

        :param self:
        :param externalConnection:   The name of the external connection to add to the repository. The following values are supported:  <ul> <li>  <code>public:npmjs</code> - for the npm public repository.  </li> <li>  <code>public:pypi</code> - for the Python Package Index.  </li> <li>  <code>public:maven-central</code> - for Maven Central.  </li> <li>  <code>public:maven-googleandroid</code> - for the Google Android repository.  </li> <li>  <code>public:maven-gradleplugins</code> - for the Gradle plugins repository.  </li> <li>  <code>public:maven-commonsware</code> - for the CommonsWare Android repository.  </li> </ul><br/>repository:   The name of the repository to which the external connection is added. <br/>domainOwner:   The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces. <br/>domain:  The name of the domain that contains the repository.<br/>
        :return: repository:   Information about the connected repository after processing the request. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>externalConnections</i>  An array of external connections associated with the repository. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>upstreams</i>  A list of upstream repositories to associate with the repository. The order of the upstream repositories in the list determines their priority order when AWS CodeArtifact looks for a requested package version. For more information, see <a href="https://docs.aws.amazon.com/codeartifact/latest/ug/repos-upstream.html">Working with upstream repositories</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i>  A text description of the repository. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i>  The Amazon Resource Name (ARN) of the repository. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>domainOwner</i>  The 12-digit account number of the AWS account that owns the domain that contains the repository. It does not include dashes or spaces. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>domainName</i>  The name of the domain that contains the repository. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>administratorAccount</i>  The 12-digit account number of the AWS account that manages the repository. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i>  The name of the repository. <br/>        """
        pass

    def copy_package_versions(self, package: str, format: str, destinationRepository: str, sourceRepository: str, domain: str, domainOwner: str=None, namespace: str=None, versions: List[PackageVersion]=None, versionRevisions: PackageVersionRevisionMap=None, allowOverwrite: BooleanOptional=None, includeFromUpstream: BooleanOptional=None) -> CopyPackageVersionsResult:
        r""" Copies package versions from one repository to another repository in the same domain.  <note>  You must specify <code>versions</code> or <code>versionRevisions</code>. You cannot specify both.  </note>

        :param self:
        :param includeFromUpstream:   Set to true to copy packages from repositories that are upstream from the source repository to the destination repository. The default setting is false. For more information, see <a href="https://docs.aws.amazon.com/codeartifact/latest/ug/repos-upstream.html">Working with upstream repositories</a>. <br/>allowOverwrite:   Set to true to overwrite a package version that already exists in the destination repository. If set to false and the package version already exists in the destination repository, the package version is returned in the <code>failedVersions</code> field of the response with an <code>ALREADY_EXISTS</code> error code. <br/>versionRevisions:   A list of key-value pairs. The keys are package versions and the values are package version revisions. A <code>CopyPackageVersion</code> operation succeeds if the specified versions in the source repository match the specified package version revision.  <note>  You must specify <code>versions</code> or <code>versionRevisions</code>. You cannot specify both.  </note><br/>versions:   The versions of the package to copy.  <note>  You must specify <code>versions</code> or <code>versionRevisions</code>. You cannot specify both.  </note><br/>package:   The name of the package that is copied. <br/>namespace:   The namespace of the package. The package component that specifies its namespace depends on its type. For example:  <ul> <li>  The namespace of a Maven package is its <code>groupId</code>.  </li> <li>  The namespace of an npm package is its <code>scope</code>.  </li> <li>  A Python package does not contain a corresponding component, so Python packages do not have a namespace.  </li> </ul><br/>format:   The format of the package that is copied. The valid package types are:  <ul> <li>  <code>npm</code>: A Node Package Manager (npm) package.  </li> <li>  <code>pypi</code>: A Python Package Index (PyPI) package.  </li> <li>  <code>maven</code>: A Maven package that contains compiled code in a distributable format, such as a JAR file.  </li> </ul><br/>destinationRepository:   The name of the repository into which package versions are copied. <br/>sourceRepository:   The name of the repository that contains the package versions to copy. <br/>domainOwner:   The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces. <br/>domain:   The name of the domain that contains the source and destination repositories. <br/>
        :return: failedVersions:   A map of package versions that failed to copy and their error codes. The possible error codes are in the <code>PackageVersionError</code> data type. They are:  <ul> <li>  <code>ALREADY_EXISTS</code>  </li> <li>  <code>MISMATCHED_REVISION</code>  </li> <li>  <code>MISMATCHED_STATUS</code>  </li> <li>  <code>NOT_ALLOWED</code>  </li> <li>  <code>NOT_FOUND</code>  </li> <li>  <code>SKIPPED</code>  </li> </ul><br/>successfulVersions:   A list of the package versions that were successfully copied to your repository. <br/>        """
        pass

    def create_domain(self, domain: str, encryptionKey: str=None, tags: List[Tag]=None) -> CreateDomainResult:
        r""" Creates a domain. CodeArtifact <i>domains</i> make it easier to manage multiple repositories across an organization. You can use a domain to apply permissions across many repositories owned by different AWS accounts. An asset is stored only once in a domain, even if it's in multiple repositories.  Although you can have multiple domains, we recommend a single production domain that contains all published artifacts so that your development teams can find and share packages. You can use a second pre-production domain to test changes to the production domain configuration. 

        :param self:
        :param tags:  One or more tag key-value pairs for the domain.<br/>encryptionKey:   The encryption key for the domain. This is used to encrypt content stored in a domain. An encryption key can be a key ID, a key Amazon Resource Name (ARN), a key alias, or a key alias ARN. To specify an <code>encryptionKey</code>, your IAM role must have <code>kms:DescribeKey</code> and <code>kms:CreateGrant</code> permissions on the encryption key that is used. For more information, see <a href="https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html#API_DescribeKey_RequestSyntax">DescribeKey</a> in the <i>AWS Key Management Service API Reference</i> and <a href="https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html">AWS KMS API Permissions Reference</a> in the <i>AWS Key Management Service Developer Guide</i>.  <important>  CodeArtifact supports only symmetric CMKs. Do not associate an asymmetric CMK with your domain. For more information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html">Using symmetric and asymmetric keys</a> in the <i>AWS Key Management Service Developer Guide</i>.  </important><br/>domain:   The name of the domain to create. All domain names in an AWS Region that are in the same AWS account must be unique. The domain name is used as the prefix in DNS hostnames. Do not use sensitive information in a domain name because it is publicly discoverable. <br/>
        :return: domain:   Contains information about the created domain after processing the request. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>s3BucketArn</i> The Amazon Resource Name (ARN) of the Amazon S3 bucket that is used to store package assets in the domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>assetSizeBytes</i>  The total size of all assets in the domain. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>repositoryCount</i>  The number of repositories in the domain. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>encryptionKey</i>  The ARN of an AWS Key Management Service (AWS KMS) key associated with a domain. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdTime</i>  A timestamp that represents the date and time the domain was created. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i>  The current status of a domain. The valid values are  <ul> <li>  <code>Active</code>  </li> <li>  <code>Deleted</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i>  The Amazon Resource Name (ARN) of the domain. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>owner</i>  The AWS account ID that owns the domain. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i>  The name of the domain. <br/>        """
        pass

    def create_repository(self, repository: str, domain: str, domainOwner: str=None, description: str=None, upstreams: List[UpstreamRepository]=None, tags: List[Tag]=None) -> CreateRepositoryResult:
        r""" Creates a repository. 

        :param self:
        :param tags:  One or more tag key-value pairs for the repository.<br/>upstreams:   A list of upstream repositories to associate with the repository. The order of the upstream repositories in the list determines their priority order when AWS CodeArtifact looks for a requested package version. For more information, see <a href="https://docs.aws.amazon.com/codeartifact/latest/ug/repos-upstream.html">Working with upstream repositories</a>. <br/>description:   A description of the created repository. <br/>repository:   The name of the repository to create. <br/>domainOwner:   The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces. <br/>domain:   The name of the domain that contains the created repository. <br/>
        :return: repository:   Information about the created repository after processing the request. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>externalConnections</i>  An array of external connections associated with the repository. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>upstreams</i>  A list of upstream repositories to associate with the repository. The order of the upstream repositories in the list determines their priority order when AWS CodeArtifact looks for a requested package version. For more information, see <a href="https://docs.aws.amazon.com/codeartifact/latest/ug/repos-upstream.html">Working with upstream repositories</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i>  A text description of the repository. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i>  The Amazon Resource Name (ARN) of the repository. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>domainOwner</i>  The 12-digit account number of the AWS account that owns the domain that contains the repository. It does not include dashes or spaces. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>domainName</i>  The name of the domain that contains the repository. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>administratorAccount</i>  The 12-digit account number of the AWS account that manages the repository. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i>  The name of the repository. <br/>        """
        pass

    def delete_domain(self, domain: str, domainOwner: str=None) -> DeleteDomainResult:
        r""" Deletes a domain. You cannot delete a domain that contains repositories. If you want to delete a domain with repositories, first delete its repositories. 

        :param self:
        :param domainOwner:   The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces. <br/>domain:   The name of the domain to delete. <br/>
        :return: domain:   Contains information about the deleted domain after processing the request. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>s3BucketArn</i> The Amazon Resource Name (ARN) of the Amazon S3 bucket that is used to store package assets in the domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>assetSizeBytes</i>  The total size of all assets in the domain. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>repositoryCount</i>  The number of repositories in the domain. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>encryptionKey</i>  The ARN of an AWS Key Management Service (AWS KMS) key associated with a domain. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdTime</i>  A timestamp that represents the date and time the domain was created. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i>  The current status of a domain. The valid values are  <ul> <li>  <code>Active</code>  </li> <li>  <code>Deleted</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i>  The Amazon Resource Name (ARN) of the domain. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>owner</i>  The AWS account ID that owns the domain. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i>  The name of the domain. <br/>        """
        pass

    def delete_domain_permissions_policy(self, domain: str, domainOwner: str=None, policyRevision: str=None) -> DeleteDomainPermissionsPolicyResult:
        r""" Deletes the resource policy set on a domain. 

        :param self:
        :param policyRevision:   The current revision of the resource policy to be deleted. This revision is used for optimistic locking, which prevents others from overwriting your changes to the domain's resource policy. <br/>domainOwner:   The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces. <br/>domain:   The name of the domain associated with the resource policy to be deleted. <br/>
        :return: policy:   Information about the deleted resource policy after processing the request. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>document</i>  The resource policy formatted in JSON. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>revision</i>  The current revision of the resource policy. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceArn</i>  The ARN of the resource associated with the resource policy <br/>        """
        pass

    def delete_package_versions(self, versions: List[PackageVersion], package: str, format: str, repository: str, domain: str, domainOwner: str=None, namespace: str=None, expectedStatus: str=None) -> DeletePackageVersionsResult:
        r""" Deletes one or more versions of a package. A deleted package version cannot be restored in your repository. If you want to remove a package version from your repository and be able to restore it later, set its status to <code>Archived</code>. Archived packages cannot be downloaded from a repository and don't show up with list package APIs (for example, <a href="https://docs.aws.amazon.com/codeartifact/latest/APIReference/API_ListPackageVersions.html">ListackageVersions</a>), but you can restore them using <a href="https://docs.aws.amazon.com/codeartifact/latest/APIReference/API_UpdatePackageVersionsStatus.html">UpdatePackageVersionsStatus</a>. 

        :param self:
        :param expectedStatus:   The expected status of the package version to delete. Valid values are:  <ul> <li>  <code>Published</code>  </li> <li>  <code>Unfinished</code>  </li> <li>  <code>Unlisted</code>  </li> <li>  <code>Archived</code>  </li> <li>  <code>Disposed</code>  </li> </ul><br/>versions:   An array of strings that specify the versions of the package to delete. <br/>package:   The name of the package with the versions to delete. <br/>namespace:   The namespace of the package. The package component that specifies its namespace depends on its type. For example:  <ul> <li>  The namespace of a Maven package is its <code>groupId</code>.  </li> <li>  The namespace of an npm package is its <code>scope</code>.  </li> <li>  A Python package does not contain a corresponding component, so Python packages do not have a namespace.  </li> </ul><br/>format:   The format of the package versions to delete. The valid values are:  <ul> <li>  <code>npm</code>  </li> <li>  <code>pypi</code>  </li> <li>  <code>maven</code>  </li> </ul><br/>repository:   The name of the repository that contains the package versions to delete. <br/>domainOwner:   The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces. <br/>domain:   The name of the domain that contains the package to delete. <br/>
        :return: failedVersions:   A <code>PackageVersionError</code> object that contains a map of errors codes for the deleted package that failed. The possible error codes are:  <ul> <li>  <code>ALREADY_EXISTS</code>  </li> <li>  <code>MISMATCHED_REVISION</code>  </li> <li>  <code>MISMATCHED_STATUS</code>  </li> <li>  <code>NOT_ALLOWED</code>  </li> <li>  <code>NOT_FOUND</code>  </li> <li>  <code>SKIPPED</code>  </li> </ul><br/>successfulVersions:   A list of the package versions that were successfully deleted. <br/>        """
        pass

    def delete_repository(self, repository: str, domain: str, domainOwner: str=None) -> DeleteRepositoryResult:
        r""" Deletes a repository. 

        :param self:
        :param repository:   The name of the repository to delete. <br/>domainOwner:   The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces. <br/>domain:   The name of the domain that contains the repository to delete. <br/>
        :return: repository:   Information about the deleted repository after processing the request. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>externalConnections</i>  An array of external connections associated with the repository. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>upstreams</i>  A list of upstream repositories to associate with the repository. The order of the upstream repositories in the list determines their priority order when AWS CodeArtifact looks for a requested package version. For more information, see <a href="https://docs.aws.amazon.com/codeartifact/latest/ug/repos-upstream.html">Working with upstream repositories</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i>  A text description of the repository. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i>  The Amazon Resource Name (ARN) of the repository. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>domainOwner</i>  The 12-digit account number of the AWS account that owns the domain that contains the repository. It does not include dashes or spaces. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>domainName</i>  The name of the domain that contains the repository. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>administratorAccount</i>  The 12-digit account number of the AWS account that manages the repository. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i>  The name of the repository. <br/>        """
        pass

    def delete_repository_permissions_policy(self, repository: str, domain: str, domainOwner: str=None, policyRevision: str=None) -> DeleteRepositoryPermissionsPolicyResult:
        r""" Deletes the resource policy that is set on a repository. After a resource policy is deleted, the permissions allowed and denied by the deleted policy are removed. The effect of deleting a resource policy might not be immediate.  <important>  Use <code>DeleteRepositoryPermissionsPolicy</code> with caution. After a policy is deleted, AWS users, roles, and accounts lose permissions to perform the repository actions granted by the deleted policy.  </important>

        :param self:
        :param policyRevision:   The revision of the repository's resource policy to be deleted. This revision is used for optimistic locking, which prevents others from accidentally overwriting your changes to the repository's resource policy. <br/>repository:   The name of the repository that is associated with the resource policy to be deleted <br/>domainOwner:   The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces. <br/>domain:   The name of the domain that contains the repository associated with the resource policy to be deleted. <br/>
        :return: policy:   Information about the deleted policy after processing the request. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>document</i>  The resource policy formatted in JSON. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>revision</i>  The current revision of the resource policy. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceArn</i>  The ARN of the resource associated with the resource policy <br/>        """
        pass

    def describe_domain(self, domain: str, domainOwner: str=None) -> DescribeDomainResult:
        r""" Returns a <a href="https://docs.aws.amazon.com/codeartifact/latest/APIReference/API_DomainDescription.html">DomainDescription</a> object that contains information about the requested domain. 

        :param self:
        :param domainOwner:   The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces. <br/>domain:   A string that specifies the name of the requested domain. <br/>
        :return: domain:   Information about a domain. A domain is a container for repositories. When you create a domain, it is empty until you add one or more repositories. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>s3BucketArn</i> The Amazon Resource Name (ARN) of the Amazon S3 bucket that is used to store package assets in the domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>assetSizeBytes</i>  The total size of all assets in the domain. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>repositoryCount</i>  The number of repositories in the domain. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>encryptionKey</i>  The ARN of an AWS Key Management Service (AWS KMS) key associated with a domain. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdTime</i>  A timestamp that represents the date and time the domain was created. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i>  The current status of a domain. The valid values are  <ul> <li>  <code>Active</code>  </li> <li>  <code>Deleted</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i>  The Amazon Resource Name (ARN) of the domain. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>owner</i>  The AWS account ID that owns the domain. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i>  The name of the domain. <br/>        """
        pass

    def describe_package_version(self, packageVersion: str, package: str, format: str, repository: str, domain: str, domainOwner: str=None, namespace: str=None) -> DescribePackageVersionResult:
        r""" Returns a <a href="https://docs.aws.amazon.com/codeartifact/latest/APIReference/API_PackageVersionDescription.html">PackageVersionDescription</a> object that contains information about the requested package version. 

        :param self:
        :param packageVersion:   A string that contains the package version (for example, <code>3.5.2</code>). <br/>package:   The name of the requested package version. <br/>namespace:   The namespace of the package. The package component that specifies its namespace depends on its type. For example:  <ul> <li>  The namespace of a Maven package is its <code>groupId</code>.  </li> <li>  The namespace of an npm package is its <code>scope</code>.  </li> <li>  A Python package does not contain a corresponding component, so Python packages do not have a namespace.  </li> </ul><br/>format:   A format that specifies the type of the requested package version. The valid values are:  <ul> <li>  <code>npm</code>  </li> <li>  <code>pypi</code>  </li> <li>  <code>maven</code>  </li> </ul><br/>repository:   The name of the repository that contains the package version. <br/>domainOwner:   The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces. <br/>domain:   The name of the domain that contains the repository that contains the package version. <br/>
        :return: packageVersion:   A <a href="https://docs.aws.amazon.com/codeartifact/latest/APIReference/API_PackageVersionDescription.html">PackageVersionDescription</a> object that contains information about the requested package version. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i>  A string that contains the status of the package version. It can be one of the following:  <ul> <li>  <code>Published</code>  </li> <li>  <code>Unfinished</code>  </li> <li>  <code>Unlisted</code>  </li> <li>  <code>Archived</code>  </li> <li>  <code>Disposed</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>revision</i>  The revision of the package version. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>licenses</i>  Information about licenses associated with the package version. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>publishedTime</i>  A timestamp that contains the date and time the package version was published. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>sourceCodeRepository</i>  The repository for the source code in the package version, or the source code used to build it. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>homePage</i>  The homepage associated with the package. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>summary</i>  A summary of the package version. The summary is extracted from the package. The information in and detail level of the summary depends on the package version's format. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i>  The version of the package. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>displayName</i>  The name of the package that is displayed. The <code>displayName</code> varies depending on the package version's format. For example, if an npm package is named <code>ui</code>, is in the namespace <code>vue</code>, and has the format <code>npm</code>, then the <code>displayName</code> is <code>@vue/ui</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>packageName</i>  The name of the requested package. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>namespace</i>  The namespace of the package. The package component that specifies its namespace depends on its type. For example:  <ul> <li>  The namespace of a Maven package is its <code>groupId</code>.  </li> <li>  The namespace of an npm package is its <code>scope</code>.  </li> <li>  A Python package does not contain a corresponding component, so Python packages do not have a namespace.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>format</i>  The format of the package version. The valid package formats are:  <ul> <li>  <code>npm</code>: A Node Package Manager (npm) package.  </li> <li>  <code>pypi</code>: A Python Package Index (PyPI) package.  </li> <li>  <code>maven</code>: A Maven package that contains compiled code in a distributable format, such as a JAR file.  </li> </ul><br/>        """
        pass

    def describe_repository(self, repository: str, domain: str, domainOwner: str=None) -> DescribeRepositoryResult:
        r""" Returns a <code>RepositoryDescription</code> object that contains detailed information about the requested repository. 

        :param self:
        :param repository:   A string that specifies the name of the requested repository. <br/>domainOwner:   The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces. <br/>domain:   The name of the domain that contains the repository to describe. <br/>
        :return: repository:   A <code>RepositoryDescription</code> object that contains the requested repository information. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>externalConnections</i>  An array of external connections associated with the repository. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>upstreams</i>  A list of upstream repositories to associate with the repository. The order of the upstream repositories in the list determines their priority order when AWS CodeArtifact looks for a requested package version. For more information, see <a href="https://docs.aws.amazon.com/codeartifact/latest/ug/repos-upstream.html">Working with upstream repositories</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i>  A text description of the repository. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i>  The Amazon Resource Name (ARN) of the repository. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>domainOwner</i>  The 12-digit account number of the AWS account that owns the domain that contains the repository. It does not include dashes or spaces. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>domainName</i>  The name of the domain that contains the repository. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>administratorAccount</i>  The 12-digit account number of the AWS account that manages the repository. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i>  The name of the repository. <br/>        """
        pass

    def disassociate_external_connection(self, externalConnection: str, repository: str, domain: str, domainOwner: str=None) -> DisassociateExternalConnectionResult:
        r""" Removes an existing external connection from a repository. 

        :param self:
        :param externalConnection:  The name of the external connection to be removed from the repository. <br/>repository:  The name of the repository from which the external connection will be removed. <br/>domainOwner:   The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces. <br/>domain:  The name of the domain that contains the repository from which to remove the external repository. <br/>
        :return: repository:   The repository associated with the removed external connection. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>externalConnections</i>  An array of external connections associated with the repository. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>upstreams</i>  A list of upstream repositories to associate with the repository. The order of the upstream repositories in the list determines their priority order when AWS CodeArtifact looks for a requested package version. For more information, see <a href="https://docs.aws.amazon.com/codeartifact/latest/ug/repos-upstream.html">Working with upstream repositories</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i>  A text description of the repository. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i>  The Amazon Resource Name (ARN) of the repository. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>domainOwner</i>  The 12-digit account number of the AWS account that owns the domain that contains the repository. It does not include dashes or spaces. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>domainName</i>  The name of the domain that contains the repository. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>administratorAccount</i>  The 12-digit account number of the AWS account that manages the repository. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i>  The name of the repository. <br/>        """
        pass

    def dispose_package_versions(self, versions: List[PackageVersion], package: str, format: str, repository: str, domain: str, domainOwner: str=None, namespace: str=None, versionRevisions: PackageVersionRevisionMap=None, expectedStatus: str=None) -> DisposePackageVersionsResult:
        r""" Deletes the assets in package versions and sets the package versions' status to <code>Disposed</code>. A disposed package version cannot be restored in your repository because its assets are deleted.   To view all disposed package versions in a repository, use <a href="https://docs.aws.amazon.com/codeartifact/latest/APIReference/API_ListPackageVersions.html">ListPackageVersions</a> and set the <a href="https://docs.aws.amazon.com/codeartifact/latest/APIReference/API_ListPackageVersions.html#API_ListPackageVersions_RequestSyntax">status</a> parameter to <code>Disposed</code>.   To view information about a disposed package version, use <a href="https://docs.aws.amazon.com/codeartifact/latest/APIReference/API_DescribePackageVersion.html">DescribePackageVersion</a>. 

        :param self:
        :param expectedStatus:   The expected status of the package version to dispose. Valid values are:  <ul> <li>  <code>Published</code>  </li> <li>  <code>Unfinished</code>  </li> <li>  <code>Unlisted</code>  </li> <li>  <code>Archived</code>  </li> <li>  <code>Disposed</code>  </li> </ul><br/>versionRevisions:   The revisions of the package versions you want to dispose. <br/>versions:   The versions of the package you want to dispose. <br/>package:   The name of the package with the versions you want to dispose. <br/>namespace:   The namespace of the package. The package component that specifies its namespace depends on its type. For example:  <ul> <li>  The namespace of a Maven package is its <code>groupId</code>.  </li> <li>  The namespace of an npm package is its <code>scope</code>.  </li> <li>  A Python package does not contain a corresponding component, so Python packages do not have a namespace.  </li> </ul><br/>format:   A format that specifies the type of package versions you want to dispose. The valid values are:  <ul> <li>  <code>npm</code>  </li> <li>  <code>pypi</code>  </li> <li>  <code>maven</code>  </li> </ul><br/>repository:   The name of the repository that contains the package versions you want to dispose. <br/>domainOwner:   The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces. <br/>domain:   The name of the domain that contains the repository you want to dispose. <br/>
        :return: failedVersions:   A <code>PackageVersionError</code> object that contains a map of errors codes for the disposed package versions that failed. The possible error codes are:  <ul> <li>  <code>ALREADY_EXISTS</code>  </li> <li>  <code>MISMATCHED_REVISION</code>  </li> <li>  <code>MISMATCHED_STATUS</code>  </li> <li>  <code>NOT_ALLOWED</code>  </li> <li>  <code>NOT_FOUND</code>  </li> <li>  <code>SKIPPED</code>  </li> </ul><br/>successfulVersions:   A list of the package versions that were successfully disposed. <br/>        """
        pass

    def get_authorization_token(self, domain: str, domainOwner: str=None, durationSeconds: AuthorizationTokenDurationSeconds=None) -> GetAuthorizationTokenResult:
        r""" Generates a temporary authorization token for accessing repositories in the domain. This API requires the <code>codeartifact:GetAuthorizationToken</code> and <code>sts:GetServiceBearerToken</code> permissions. For more information about authorization tokens, see <a href="https://docs.aws.amazon.com/codeartifact/latest/ug/tokens-authentication.html">AWS CodeArtifact authentication and tokens</a>.  <note> CodeArtifact authorization tokens are valid for a period of 12 hours when created with the <code>login</code> command. You can call <code>login</code> periodically to refresh the token. When you create an authorization token with the <code>GetAuthorizationToken</code> API, you can set a custom authorization period, up to a maximum of 12 hours, with the <code>durationSeconds</code> parameter. The authorization period begins after <code>login</code> or <code>GetAuthorizationToken</code> is called. If <code>login</code> or <code>GetAuthorizationToken</code> is called while assuming a role, the token lifetime is independent of the maximum session duration of the role. For example, if you call <code>sts assume-role</code> and specify a session duration of 15 minutes, then generate a CodeArtifact authorization token, the token will be valid for the full authorization period even though this is longer than the 15-minute session duration. See <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html">Using IAM Roles</a> for more information on controlling session duration.  </note>

        :param self:
        :param durationSeconds:  The time, in seconds, that the generated authorization token is valid. Valid values are <code>0</code> and any number between <code>900</code> (15 minutes) and <code>43200</code> (12 hours). A value of <code>0</code> will set the expiration of the authorization token to the same expiration of the user's role's temporary credentials.<br/>domainOwner:   The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces. <br/>domain:   The name of the domain that is in scope for the generated authorization token. <br/>
        :return: expiration:   A timestamp that specifies the date and time the authorization token expires. <br/>authorizationToken:   The returned authentication token. <br/>        """
        pass

    def get_domain_permissions_policy(self, domain: str, domainOwner: str=None) -> GetDomainPermissionsPolicyResult:
        r""" Returns the resource policy attached to the specified domain.  <note>  The policy is a resource-based policy, not an identity-based policy. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_identity-vs-resource.html">Identity-based policies and resource-based policies </a> in the <i>AWS Identity and Access Management User Guide</i>.  </note>

        :param self:
        :param domainOwner:   The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces. <br/>domain:   The name of the domain to which the resource policy is attached. <br/>
        :return: policy:   The returned resource policy. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>document</i>  The resource policy formatted in JSON. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>revision</i>  The current revision of the resource policy. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceArn</i>  The ARN of the resource associated with the resource policy <br/>        """
        pass

    def get_package_version_asset(self, asset: str, packageVersion: str, package: str, format: str, repository: str, domain: str, domainOwner: str=None, namespace: str=None, packageVersionRevision: str=None) -> GetPackageVersionAssetResult:
        r""" Returns an asset (or file) that is in a package. For example, for a Maven package version, use <code>GetPackageVersionAsset</code> to download a <code>JAR</code> file, a <code>POM</code> file, or any other assets in the package version. 

        :param self:
        :param packageVersionRevision:   The name of the package version revision that contains the requested asset. <br/>asset:   The name of the requested asset. <br/>packageVersion:   A string that contains the package version (for example, <code>3.5.2</code>). <br/>package:   The name of the package that contains the requested asset. <br/>namespace:   The namespace of the package. The package component that specifies its namespace depends on its type. For example:  <ul> <li>  The namespace of a Maven package is its <code>groupId</code>.  </li> <li>  The namespace of an npm package is its <code>scope</code>.  </li> <li>  A Python package does not contain a corresponding component, so Python packages do not have a namespace.  </li> </ul><br/>format:   A format that specifies the type of the package version with the requested asset file. The valid values are:  <ul> <li>  <code>npm</code>  </li> <li>  <code>pypi</code>  </li> <li>  <code>maven</code>  </li> </ul><br/>repository:   The repository that contains the package version with the requested asset. <br/>domainOwner:   The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces. <br/>domain:   The name of the domain that contains the repository that contains the package version with the requested asset. <br/>
        :return: packageVersionRevision:   The name of the package version revision that contains the downloaded asset. <br/>packageVersion:   A string that contains the package version (for example, <code>3.5.2</code>). <br/>assetName:   The name of the asset that is downloaded. <br/>asset:   The binary file, or asset, that is downloaded.<br/>        """
        pass

    def get_package_version_readme(self, packageVersion: str, package: str, format: str, repository: str, domain: str, domainOwner: str=None, namespace: str=None) -> GetPackageVersionReadmeResult:
        r""" Gets the readme file or descriptive text for a package version. For packages that do not contain a readme file, CodeArtifact extracts a description from a metadata file. For example, from the <code>&lt;description&gt;</code> element in the <code>pom.xml</code> file of a Maven package.   The returned text might contain formatting. For example, it might contain formatting for Markdown or reStructuredText. 

        :param self:
        :param packageVersion:   A string that contains the package version (for example, <code>3.5.2</code>). <br/>package:   The name of the package version that contains the requested readme file. <br/>namespace:   The namespace of the package. The package component that specifies its namespace depends on its type. For example:  <ul> <li>  The namespace of a Maven package is its <code>groupId</code>.  </li> <li>  The namespace of an npm package is its <code>scope</code>.  </li> <li>  A Python package does not contain a corresponding component, so Python packages do not have a namespace.  </li> </ul><br/>format:   A format that specifies the type of the package version with the requested readme file. The valid values are:  <ul> <li>  <code>npm</code>  </li> <li>  <code>pypi</code>  </li> <li>  <code>maven</code>  </li> </ul><br/>repository:   The repository that contains the package with the requested readme file. <br/>domainOwner:   The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces. <br/>domain:   The name of the domain that contains the repository that contains the package version with the requested readme file. <br/>
        :return: readme:   The text of the returned readme file. <br/>versionRevision:   The current revision associated with the package version. <br/>version:   The version of the package with the requested readme file. <br/>package:   The name of the package that contains the returned readme file. <br/>namespace:   The namespace of the package. The package component that specifies its namespace depends on its type. For example:  <ul> <li>  The namespace of a Maven package is its <code>groupId</code>.  </li> <li>  The namespace of an npm package is its <code>scope</code>.  </li> <li>  A Python package does not contain a corresponding component, so Python packages do not have a namespace.  </li> </ul><br/>format:   The format of the package with the requested readme file. Valid format types are:  <ul> <li>  <code>npm</code>  </li> <li>  <code>pypi</code>  </li> <li>  <code>maven</code>  </li> </ul><br/>        """
        pass

    def get_repository_endpoint(self, format: str, repository: str, domain: str, domainOwner: str=None) -> GetRepositoryEndpointResult:
        r""" Returns the endpoint of a repository for a specific package format. A repository has one endpoint for each package format:  <ul> <li>  <code>npm</code>  </li> <li>  <code>pypi</code>  </li> <li>  <code>maven</code>  </li> </ul>

        :param self:
        :param format:   Returns which endpoint of a repository to return. A repository has one endpoint for each package format:  <ul> <li>  <code>npm</code>  </li> <li>  <code>pypi</code>  </li> <li>  <code>maven</code>  </li> </ul><br/>repository:   The name of the repository. <br/>domainOwner:   The 12-digit account number of the AWS account that owns the domain that contains the repository. It does not include dashes or spaces. <br/>domain:   The name of the domain that contains the repository. <br/>
        :return: repositoryEndpoint:   A string that specifies the URL of the returned endpoint. <br/>        """
        pass

    def get_repository_permissions_policy(self, repository: str, domain: str, domainOwner: str=None) -> GetRepositoryPermissionsPolicyResult:
        r""" Returns the resource policy that is set on a repository. 

        :param self:
        :param repository:   The name of the repository whose associated resource policy is to be retrieved. <br/>domainOwner:   The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces. <br/>domain:   The name of the domain containing the repository whose associated resource policy is to be retrieved. <br/>
        :return: policy:   The returned resource policy. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>document</i>  The resource policy formatted in JSON. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>revision</i>  The current revision of the resource policy. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceArn</i>  The ARN of the resource associated with the resource policy <br/>        """
        pass

    def list_domains(self, maxResults: int=None, nextToken: str=None) -> ListDomainsResult:
        r""" Returns a list of <a href="https://docs.aws.amazon.com/codeartifact/latest/APIReference/API_PackageVersionDescription.html">DomainSummary</a> objects for all domains owned by the AWS account that makes this call. Each returned <code>DomainSummary</code> object contains information about a domain. 

        :param self:
        :param nextToken:   The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results. <br/>maxResults:   The maximum number of results to return per page. <br/>
        :return: nextToken:   The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results. <br/>domains:   The returned list of <a href="https://docs.aws.amazon.com/codeartifact/latest/APIReference/API_DomainSummary.html">DomainSummary</a> objects. <br/>        """
        pass

    def list_package_version_assets(self, packageVersion: str, package: str, format: str, repository: str, domain: str, domainOwner: str=None, namespace: str=None, maxResults: int=None, nextToken: str=None) -> ListPackageVersionAssetsResult:
        r""" Returns a list of <a href="https://docs.aws.amazon.com/codeartifact/latest/APIReference/API_AssetSummary.html">AssetSummary</a> objects for assets in a package version. 

        :param self:
        :param nextToken:   The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results. <br/>maxResults:   The maximum number of results to return per page. <br/>packageVersion:   A string that contains the package version (for example, <code>3.5.2</code>). <br/>package:   The name of the package that contains the returned package version assets. <br/>namespace:   The namespace of the package. The package component that specifies its namespace depends on its type. For example:  <ul> <li>  The namespace of a Maven package is its <code>groupId</code>.  </li> <li>  The namespace of an npm package is its <code>scope</code>.  </li> <li>  A Python package does not contain a corresponding component, so Python packages do not have a namespace.  </li> </ul><br/>format:   The format of the package that contains the returned package version assets. The valid package types are:  <ul> <li>  <code>npm</code>: A Node Package Manager (npm) package.  </li> <li>  <code>pypi</code>: A Python Package Index (PyPI) package.  </li> <li>  <code>maven</code>: A Maven package that contains compiled code in a distributable format, such as a JAR file.  </li> </ul><br/>repository:   The name of the repository that contains the package that contains the returned package version assets. <br/>domainOwner:   The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces. <br/>domain:   The name of the domain that contains the repository associated with the package version assets. <br/>
        :return: assets:   The returned list of <a href="https://docs.aws.amazon.com/codeartifact/latest/APIReference/API_AssetSummary.html">AssetSummary</a> objects. <br/>nextToken:   If there are additional results, this is the token for the next set of results. <br/>versionRevision:   The current revision associated with the package version. <br/>version:   The version of the package associated with the returned assets. <br/>package:   The name of the package that contains the returned package version assets. <br/>namespace:   The namespace of the package. The package component that specifies its namespace depends on its type. For example:  <ul> <li>  The namespace of a Maven package is its <code>groupId</code>.  </li> <li>  The namespace of an npm package is its <code>scope</code>.  </li> <li>  A Python package does not contain a corresponding component, so Python packages do not have a namespace.  </li> </ul><br/>format:   The format of the package that contains the returned package version assets. <br/>        """
        pass

    def list_package_version_dependencies(self, packageVersion: str, package: str, format: str, repository: str, domain: str, domainOwner: str=None, namespace: str=None, nextToken: str=None) -> ListPackageVersionDependenciesResult:
        r""" Returns the direct dependencies for a package version. The dependencies are returned as <a href="https://docs.aws.amazon.com/codeartifact/latest/APIReference/API_PackageDependency.html">PackageDependency</a> objects. CodeArtifact extracts the dependencies for a package version from the metadata file for the package format (for example, the <code>package.json</code> file for npm packages and the <code>pom.xml</code> file for Maven). Any package version dependencies that are not listed in the configuration file are not returned. 

        :param self:
        :param nextToken:   The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results. <br/>packageVersion:   A string that contains the package version (for example, <code>3.5.2</code>). <br/>package:   The name of the package versions' package. <br/>namespace:   The namespace of the package. The package component that specifies its namespace depends on its type. For example:  <ul> <li>  The namespace of a Maven package is its <code>groupId</code>.  </li> <li>  The namespace of an npm package is its <code>scope</code>.  </li> <li>  A Python package does not contain a corresponding component, so Python packages do not have a namespace.  </li> </ul><br/>format:   The format of the package with the requested dependencies. The valid package types are:  <ul> <li>  <code>npm</code>: A Node Package Manager (npm) package.  </li> <li>  <code>pypi</code>: A Python Package Index (PyPI) package.  </li> <li>  <code>maven</code>: A Maven package that contains compiled code in a distributable format, such as a JAR file.  </li> </ul><br/>repository:   The name of the repository that contains the requested package version. <br/>domainOwner:   The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces. <br/>domain:   The name of the domain that contains the repository that contains the requested package version dependencies. <br/>
        :return: dependencies:   The returned list of <a href="https://docs.aws.amazon.com/codeartifact/latest/APIReference/API_PackageDependency.html">PackageDependency</a> objects. <br/>nextToken:   The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results. <br/>versionRevision:   The current revision associated with the package version. <br/>version:   The version of the package that is specified in the request. <br/>package:   The name of the package that contains the returned package versions dependencies. <br/>namespace:   The namespace of the package. The package component that specifies its namespace depends on its type. For example:  <ul> <li>  The namespace of a Maven package is its <code>groupId</code>.  </li> <li>  The namespace of an npm package is its <code>scope</code>.  </li> <li>  A Python package does not contain a corresponding component, so Python packages do not have a namespace.  </li> </ul><br/>format:   A format that specifies the type of the package that contains the returned dependencies. The valid values are:  <ul> <li>  <code>npm</code>  </li> <li>  <code>pypi</code>  </li> <li>  <code>maven</code>  </li> </ul><br/>        """
        pass

    def list_package_versions(self, package: str, format: str, repository: str, domain: str, domainOwner: str=None, namespace: str=None, status: str=None, sortBy: str=None, maxResults: int=None, nextToken: str=None) -> ListPackageVersionsResult:
        r""" Returns a list of <a href="https://docs.aws.amazon.com/codeartifact/latest/APIReference/API_PackageVersionSummary.html">PackageVersionSummary</a> objects for package versions in a repository that match the request parameters. 

        :param self:
        :param nextToken:   The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results. <br/>maxResults:   The maximum number of results to return per page. <br/>sortBy:   How to sort the returned list of package versions. <br/>status:   A string that specifies the status of the package versions to include in the returned list. It can be one of the following:  <ul> <li>  <code>Published</code>  </li> <li>  <code>Unfinished</code>  </li> <li>  <code>Unlisted</code>  </li> <li>  <code>Archived</code>  </li> <li>  <code>Disposed</code>  </li> </ul><br/>package:   The name of the package for which you want to return a list of package versions. <br/>namespace:   The namespace of the package. The package component that specifies its namespace depends on its type. For example:  <ul> <li>  The namespace of a Maven package is its <code>groupId</code>.  </li> <li>  The namespace of an npm package is its <code>scope</code>.  </li> <li>  A Python package does not contain a corresponding component, so Python packages do not have a namespace.  </li> </ul><br/>format:   The format of the returned packages. The valid package types are:  <ul> <li>  <code>npm</code>: A Node Package Manager (npm) package.  </li> <li>  <code>pypi</code>: A Python Package Index (PyPI) package.  </li> <li>  <code>maven</code>: A Maven package that contains compiled code in a distributable format, such as a JAR file.  </li> </ul><br/>repository:   The name of the repository that contains the package. <br/>domainOwner:   The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces. <br/>domain:   The name of the domain that contains the repository that contains the returned package versions. <br/>
        :return: nextToken:   If there are additional results, this is the token for the next set of results. <br/>versions:   The returned list of <a href="https://docs.aws.amazon.com/codeartifact/latest/APIReference/API_PackageVersionSummary.html">PackageVersionSummary</a> objects. <br/>package:   The name of the package. <br/>namespace:   The namespace of the package. The package component that specifies its namespace depends on its type. For example:  <ul> <li>  The namespace of a Maven package is its <code>groupId</code>.  </li> <li>  The namespace of an npm package is its <code>scope</code>.  </li> <li>  A Python package does not contain a corresponding component, so Python packages do not have a namespace.  </li> </ul><br/>format:   A format of the package. Valid package format values are:  <ul> <li>  <code>npm</code>  </li> <li>  <code>pypi</code>  </li> <li>  <code>maven</code>  </li> </ul><br/>defaultDisplayVersion:   The default package version to display. This depends on the package format:  <ul> <li>  For Maven and PyPI packages, it's the most recently published package version.  </li> <li>  For npm packages, it's the version referenced by the <code>latest</code> tag. If the <code>latest</code> tag is not set, it's the most recently published package version.  </li> </ul><br/>        """
        pass

    def list_packages(self, repository: str, domain: str, domainOwner: str=None, format: str=None, namespace: str=None, packagePrefix: str=None, maxResults: int=None, nextToken: str=None) -> ListPackagesResult:
        r""" Returns a list of <a href="https://docs.aws.amazon.com/codeartifact/latest/APIReference/API_PackageSummary.html">PackageSummary</a> objects for packages in a repository that match the request parameters. 

        :param self:
        :param nextToken:   The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results. <br/>maxResults:   The maximum number of results to return per page. <br/>packagePrefix:   A prefix used to filter returned packages. Only packages with names that start with <code>packagePrefix</code> are returned. <br/>namespace:   The namespace of the package. The package component that specifies its namespace depends on its type. For example:  <ul> <li>  The namespace of a Maven package is its <code>groupId</code>.  </li> <li>  The namespace of an npm package is its <code>scope</code>.  </li> <li>  A Python package does not contain a corresponding component, so Python packages do not have a namespace.  </li> </ul><br/>format:   The format of the packages. The valid package types are:  <ul> <li>  <code>npm</code>: A Node Package Manager (npm) package.  </li> <li>  <code>pypi</code>: A Python Package Index (PyPI) package.  </li> <li>  <code>maven</code>: A Maven package that contains compiled code in a distributable format, such as a JAR file.  </li> </ul><br/>repository:   The name of the repository from which packages are to be listed. <br/>domainOwner:   The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces. <br/>domain:   The name of the domain that contains the repository that contains the requested list of packages. <br/>
        :return: nextToken:   If there are additional results, this is the token for the next set of results. <br/>packages:   The list of returned <a href="https://docs.aws.amazon.com/codeartifact/latest/APIReference/API_PackageSummary.html">PackageSummary</a> objects. <br/>        """
        pass

    def list_repositories(self, repositoryPrefix: str=None, maxResults: int=None, nextToken: str=None) -> ListRepositoriesResult:
        r""" Returns a list of <a href="https://docs.aws.amazon.com/codeartifact/latest/APIReference/API_RepositorySummary.html">RepositorySummary</a> objects. Each <code>RepositorySummary</code> contains information about a repository in the specified AWS account and that matches the input parameters. 

        :param self:
        :param nextToken:   The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results. <br/>maxResults:   The maximum number of results to return per page. <br/>repositoryPrefix:   A prefix used to filter returned repositories. Only repositories with names that start with <code>repositoryPrefix</code> are returned.<br/>
        :return: nextToken:   If there are additional results, this is the token for the next set of results. <br/>repositories:   The returned list of <a href="https://docs.aws.amazon.com/codeartifact/latest/APIReference/API_RepositorySummary.html">RepositorySummary</a> objects. <br/>        """
        pass

    def list_repositories_in_domain(self, domain: str, domainOwner: str=None, administratorAccount: str=None, repositoryPrefix: str=None, maxResults: int=None, nextToken: str=None) -> ListRepositoriesInDomainResult:
        r""" Returns a list of <a href="https://docs.aws.amazon.com/codeartifact/latest/APIReference/API_RepositorySummary.html">RepositorySummary</a> objects. Each <code>RepositorySummary</code> contains information about a repository in the specified domain and that matches the input parameters. 

        :param self:
        :param nextToken:   The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results. <br/>maxResults:   The maximum number of results to return per page. <br/>repositoryPrefix:   A prefix used to filter returned repositories. Only repositories with names that start with <code>repositoryPrefix</code> are returned. <br/>administratorAccount:   Filter the list of repositories to only include those that are managed by the AWS account ID. <br/>domainOwner:   The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces. <br/>domain:   The name of the domain that contains the returned list of repositories. <br/>
        :return: nextToken:   If there are additional results, this is the token for the next set of results. <br/>repositories:   The returned list of repositories. <br/>        """
        pass

    def list_tags_for_resource(self, resourceArn: str) -> ListTagsForResourceResult:
        r"""Gets information about AWS tags for a specified Amazon Resource Name (ARN) in AWS CodeArtifact.

        :param self:
        :param resourceArn:  The Amazon Resource Name (ARN) of the resource to get tags for.<br/>
        :return: tags:  A list of tag key and value pairs associated with the specified resource.<br/>        """
        pass

    def put_domain_permissions_policy(self, policyDocument: str, domain: str, domainOwner: str=None, policyRevision: str=None) -> PutDomainPermissionsPolicyResult:
        r""" Sets a resource policy on a domain that specifies permissions to access it.   When you call <code>PutDomainPermissionsPolicy</code>, the resource policy on the domain is ignored when evaluting permissions. This ensures that the owner of a domain cannot lock themselves out of the domain, which would prevent them from being able to update the resource policy. 

        :param self:
        :param policyDocument:   A valid displayable JSON Aspen policy string to be set as the access control resource policy on the provided domain. <br/>policyRevision:   The current revision of the resource policy to be set. This revision is used for optimistic locking, which prevents others from overwriting your changes to the domain's resource policy. <br/>domainOwner:   The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces. <br/>domain:   The name of the domain on which to set the resource policy. <br/>
        :return: policy:   The resource policy that was set after processing the request. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>document</i>  The resource policy formatted in JSON. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>revision</i>  The current revision of the resource policy. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceArn</i>  The ARN of the resource associated with the resource policy <br/>        """
        pass

    def put_repository_permissions_policy(self, policyDocument: str, repository: str, domain: str, domainOwner: str=None, policyRevision: str=None) -> PutRepositoryPermissionsPolicyResult:
        r""" Sets the resource policy on a repository that specifies permissions to access it.   When you call <code>PutRepositoryPermissionsPolicy</code>, the resource policy on the repository is ignored when evaluting permissions. This ensures that the owner of a repository cannot lock themselves out of the repository, which would prevent them from being able to update the resource policy. 

        :param self:
        :param policyDocument:   A valid displayable JSON Aspen policy string to be set as the access control resource policy on the provided repository. <br/>policyRevision:   Sets the revision of the resource policy that specifies permissions to access the repository. This revision is used for optimistic locking, which prevents others from overwriting your changes to the repository's resource policy. <br/>repository:   The name of the repository to set the resource policy on. <br/>domainOwner:   The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces. <br/>domain:   The name of the domain containing the repository to set the resource policy on. <br/>
        :return: policy:   The resource policy that was set after processing the request. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>document</i>  The resource policy formatted in JSON. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>revision</i>  The current revision of the resource policy. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceArn</i>  The ARN of the resource associated with the resource policy <br/>        """
        pass

    def tag_resource(self, tags: List[Tag], resourceArn: str) -> TagResourceResult:
        r"""Adds or updates tags for a resource in AWS CodeArtifact.

        :param self:
        :param tags:  The tags you want to modify or add to the resource.<br/>resourceArn:  The Amazon Resource Name (ARN) of the resource that you want to add or update tags for.<br/>
        :return:         """
        pass

    def untag_resource(self, tagKeys: List[TagKey], resourceArn: str) -> UntagResourceResult:
        r"""Removes tags from a resource in AWS CodeArtifact.

        :param self:
        :param tagKeys:  The tag key for each tag that you want to remove from the resource.<br/>resourceArn:  The Amazon Resource Name (ARN) of the resource that you want to remove tags from.<br/>
        :return:         """
        pass

    def update_package_versions_status(self, targetStatus: str, versions: List[PackageVersion], package: str, format: str, repository: str, domain: str, domainOwner: str=None, namespace: str=None, versionRevisions: PackageVersionRevisionMap=None, expectedStatus: str=None) -> UpdatePackageVersionsStatusResult:
        r""" Updates the status of one or more versions of a package. 

        :param self:
        :param targetStatus:   The status you want to change the package version status to. <br/>expectedStatus:   The package version’s expected status before it is updated. If <code>expectedStatus</code> is provided, the package version's status is updated only if its status at the time <code>UpdatePackageVersionsStatus</code> is called matches <code>expectedStatus</code>. <br/>versionRevisions:   A map of package versions and package version revisions. The map <code>key</code> is the package version (for example, <code>3.5.2</code>), and the map <code>value</code> is the package version revision. <br/>versions:   An array of strings that specify the versions of the package with the statuses to update. <br/>package:   The name of the package with the version statuses to update. <br/>namespace:   The namespace of the package. The package component that specifies its namespace depends on its type. For example:  <ul> <li>  The namespace of a Maven package is its <code>groupId</code>.  </li> <li>  The namespace of an npm package is its <code>scope</code>.  </li> <li>  A Python package does not contain a corresponding component, so Python packages do not have a namespace.  </li> </ul><br/>format:   A format that specifies the type of the package with the statuses to update. The valid values are:  <ul> <li>  <code>npm</code>  </li> <li>  <code>pypi</code>  </li> <li>  <code>maven</code>  </li> </ul><br/>repository:   The repository that contains the package versions with the status you want to update. <br/>domainOwner:   The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces. <br/>domain:   The name of the domain that contains the repository that contains the package versions with a status to be updated. <br/>
        :return: failedVersions:   A list of <code>SuccessfulPackageVersionInfo</code> objects, one for each package version with a status that successfully updated. <br/>successfulVersions:   A list of <code>PackageVersionError</code> objects, one for each package version with a status that failed to update. <br/>        """
        pass

    def update_repository(self, repository: str, domain: str, domainOwner: str=None, description: str=None, upstreams: List[UpstreamRepository]=None) -> UpdateRepositoryResult:
        r""" Update the properties of a repository. 

        :param self:
        :param upstreams:   A list of upstream repositories to associate with the repository. The order of the upstream repositories in the list determines their priority order when AWS CodeArtifact looks for a requested package version. For more information, see <a href="https://docs.aws.amazon.com/codeartifact/latest/ug/repos-upstream.html">Working with upstream repositories</a>. <br/>description:   An updated repository description. <br/>repository:   The name of the repository to update. <br/>domainOwner:   The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces. <br/>domain:   The name of the domain associated with the repository to update. <br/>
        :return: repository:   The updated repository. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>externalConnections</i>  An array of external connections associated with the repository. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>upstreams</i>  A list of upstream repositories to associate with the repository. The order of the upstream repositories in the list determines their priority order when AWS CodeArtifact looks for a requested package version. For more information, see <a href="https://docs.aws.amazon.com/codeartifact/latest/ug/repos-upstream.html">Working with upstream repositories</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i>  A text description of the repository. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i>  The Amazon Resource Name (ARN) of the repository. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>domainOwner</i>  The 12-digit account number of the AWS account that owns the domain that contains the repository. It does not include dashes or spaces. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>domainName</i>  The name of the domain that contains the repository. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>administratorAccount</i>  The 12-digit account number of the AWS account that manages the repository. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i>  The name of the repository. <br/>        """
        pass





class CodeBuild(BaseClient):
    r"""CodeBuild is a fully managed build service in the cloud. CodeBuild compiles your source code, runs unit tests, and produces artifacts that are ready to deploy. CodeBuild eliminates the need to provision, manage, and scale your own build servers. It provides prepackaged build environments for the most popular programming languages and build tools, such as Apache Maven, Gradle, and more. You can also fully customize build environments in CodeBuild to use your own build tools. CodeBuild scales automatically to meet peak build requests. You pay only for the build time you consume. For more information about CodeBuild, see the <i> <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html">CodeBuild User Guide</a>.</i> """


    class ListBuildsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_builds` for valid parameters"""
            pass
    class ListProjectsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_projects` for valid parameters"""
            pass
    class ListBuildsForProjectPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_builds_for_project` for valid parameters"""
            pass
    class DescribeTestCasesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_test_cases` for valid parameters"""
            pass
    class ListReportGroupsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_report_groups` for valid parameters"""
            pass
    class ListReportsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_reports` for valid parameters"""
            pass
    class ListReportsForReportGroupPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_reports_for_report_group` for valid parameters"""
            pass
    class ListSharedProjectsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_shared_projects` for valid parameters"""
            pass
    class ListSharedReportGroupsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_shared_report_groups` for valid parameters"""
            pass
    class DescribeCodeCoveragesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_code_coverages` for valid parameters"""
            pass
    class ListBuildBatchesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_build_batches` for valid parameters"""
            pass
    class ListBuildBatchesForProjectPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_build_batches_for_project` for valid parameters"""
            pass


    class BatchDeleteBuildsInput(Mapping):
        pass
    
    class BatchDeleteBuildsOutput(Mapping):
        pass
    
    class NonEmptyString(object):
        pass
    
    class BatchGetBuildBatchesInput(Mapping):
        pass
    
    class BatchGetBuildBatchesOutput(Mapping):
        pass
    
    class BatchGetBuildsInput(Mapping):
        pass
    
    class BatchGetBuildsOutput(Mapping):
        pass
    
    class BatchGetProjectsInput(Mapping):
        pass
    
    class BatchGetProjectsOutput(Mapping):
        pass
    
    class BatchGetReportGroupsInput(Mapping):
        pass
    
    class BatchGetReportGroupsOutput(Mapping):
        pass
    
    class BatchGetReportsInput(Mapping):
        pass
    
    class BatchGetReportsOutput(Mapping):
        pass
    
    class CreateProjectInput(Mapping):
        pass
    
    class CreateProjectOutput(Mapping):
        pass
    
    class ProjectSource(Mapping):
        pass
    
    class ProjectSourceVersion(Mapping):
        pass
    
    class ProjectArtifacts(Mapping):
        pass
    
    class ProjectCache(Mapping):
        pass
    
    class ProjectEnvironment(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class VpcConfig(Mapping):
        pass
    
    class WrapperBoolean(object):
        pass
    
    class LogsConfig(Mapping):
        pass
    
    class ProjectFileSystemLocation(Mapping):
        pass
    
    class ProjectBuildBatchConfig(Mapping):
        pass
    
    class CreateReportGroupInput(Mapping):
        pass
    
    class CreateReportGroupOutput(Mapping):
        pass
    
    class ReportExportConfig(Mapping):
        pass
    
    class CreateWebhookInput(Mapping):
        pass
    
    class CreateWebhookOutput(Mapping):
        pass
    
    class FilterGroup(object):
        pass
    
    class DeleteBuildBatchInput(Mapping):
        pass
    
    class DeleteBuildBatchOutput(Mapping):
        pass
    
    class DeleteProjectInput(Mapping):
        pass
    
    class DeleteProjectOutput(Mapping):
        pass
    
    class DeleteReportInput(Mapping):
        pass
    
    class DeleteReportOutput(Mapping):
        pass
    
    class DeleteReportGroupInput(Mapping):
        pass
    
    class DeleteReportGroupOutput(Mapping):
        pass
    
    class Boolean(object):
        pass
    
    class DeleteResourcePolicyInput(Mapping):
        pass
    
    class DeleteResourcePolicyOutput(Mapping):
        pass
    
    class DeleteSourceCredentialsInput(Mapping):
        pass
    
    class DeleteSourceCredentialsOutput(Mapping):
        pass
    
    class DeleteWebhookInput(Mapping):
        pass
    
    class DeleteWebhookOutput(Mapping):
        pass
    
    class DescribeCodeCoveragesInput(Mapping):
        pass
    
    class DescribeCodeCoveragesOutput(Mapping):
        pass
    
    class Percentage(object):
        pass
    
    class DescribeTestCasesInput(Mapping):
        pass
    
    class DescribeTestCasesOutput(Mapping):
        pass
    
    class TestCaseFilter(Mapping):
        pass
    
    class GetReportGroupTrendInput(Mapping):
        pass
    
    class GetReportGroupTrendOutput(Mapping):
        pass
    
    class GetResourcePolicyInput(Mapping):
        pass
    
    class GetResourcePolicyOutput(Mapping):
        pass
    
    class ImportSourceCredentialsInput(Mapping):
        pass
    
    class ImportSourceCredentialsOutput(Mapping):
        pass
    
    class InvalidateProjectCacheInput(Mapping):
        pass
    
    class InvalidateProjectCacheOutput(Mapping):
        pass
    
    class ListBuildBatchesInput(Mapping):
        pass
    
    class ListBuildBatchesOutput(Mapping):
        pass
    
    class BuildBatchFilter(Mapping):
        pass
    
    class ListBuildBatchesForProjectInput(Mapping):
        pass
    
    class ListBuildBatchesForProjectOutput(Mapping):
        pass
    
    class ListBuildsInput(Mapping):
        pass
    
    class ListBuildsOutput(Mapping):
        pass
    
    class ListBuildsForProjectInput(Mapping):
        pass
    
    class ListBuildsForProjectOutput(Mapping):
        pass
    
    class ListCuratedEnvironmentImagesInput(Mapping):
        pass
    
    class ListCuratedEnvironmentImagesOutput(Mapping):
        pass
    
    class ListProjectsInput(Mapping):
        pass
    
    class ListProjectsOutput(Mapping):
        pass
    
    class ListReportGroupsInput(Mapping):
        pass
    
    class ListReportGroupsOutput(Mapping):
        pass
    
    class ListReportsInput(Mapping):
        pass
    
    class ListReportsOutput(Mapping):
        pass
    
    class ReportFilter(Mapping):
        pass
    
    class ListReportsForReportGroupInput(Mapping):
        pass
    
    class ListReportsForReportGroupOutput(Mapping):
        pass
    
    class ListSharedProjectsInput(Mapping):
        pass
    
    class ListSharedProjectsOutput(Mapping):
        pass
    
    class ListSharedReportGroupsInput(Mapping):
        pass
    
    class ListSharedReportGroupsOutput(Mapping):
        pass
    
    class ListSourceCredentialsInput(Mapping):
        pass
    
    class ListSourceCredentialsOutput(Mapping):
        pass
    
    class PutResourcePolicyInput(Mapping):
        pass
    
    class PutResourcePolicyOutput(Mapping):
        pass
    
    class RetryBuildInput(Mapping):
        pass
    
    class RetryBuildOutput(Mapping):
        pass
    
    class RetryBuildBatchInput(Mapping):
        pass
    
    class RetryBuildBatchOutput(Mapping):
        pass
    
    class StartBuildInput(Mapping):
        pass
    
    class StartBuildOutput(Mapping):
        pass
    
    class EnvironmentVariable(Mapping):
        pass
    
    class SourceAuth(Mapping):
        pass
    
    class GitSubmodulesConfig(Mapping):
        pass
    
    class BuildStatusConfig(Mapping):
        pass
    
    class RegistryCredential(Mapping):
        pass
    
    class StartBuildBatchInput(Mapping):
        pass
    
    class StartBuildBatchOutput(Mapping):
        pass
    
    class StopBuildInput(Mapping):
        pass
    
    class StopBuildOutput(Mapping):
        pass
    
    class StopBuildBatchInput(Mapping):
        pass
    
    class StopBuildBatchOutput(Mapping):
        pass
    
    class UpdateProjectInput(Mapping):
        pass
    
    class UpdateProjectOutput(Mapping):
        pass
    
    class UpdateReportGroupInput(Mapping):
        pass
    
    class UpdateReportGroupOutput(Mapping):
        pass
    
    class UpdateWebhookInput(Mapping):
        pass
    
    class UpdateWebhookOutput(Mapping):
        pass
    
    def batch_delete_builds(self, ids: List[NonEmptyString]) -> BatchDeleteBuildsOutput:
        r"""Deletes one or more builds.

        :param self:
        :param ids:  The IDs of the builds to delete.<br/>
        :return: buildsNotDeleted:  Information about any builds that could not be successfully deleted.<br/>buildsDeleted:  The IDs of the builds that were successfully deleted.<br/>        """
        pass

    def batch_get_build_batches(self, ids: List[NonEmptyString]) -> BatchGetBuildBatchesOutput:
        r"""Retrieves information about one or more batch builds.

        :param self:
        :param ids:  An array that contains the batch build identifiers to retrieve.<br/>
        :return: buildBatchesNotFound:  An array that contains the identifiers of any batch builds that are not found.<br/>buildBatches:  An array of <code>BuildBatch</code> objects that represent the retrieved batch builds.<br/>        """
        pass

    def batch_get_builds(self, ids: List[NonEmptyString]) -> BatchGetBuildsOutput:
        r"""Gets information about one or more builds.

        :param self:
        :param ids:  The IDs of the builds.<br/>
        :return: buildsNotFound:  The IDs of builds for which information could not be found.<br/>builds:  Information about the requested builds.<br/>        """
        pass

    def batch_get_projects(self, names: List[NonEmptyString]) -> BatchGetProjectsOutput:
        r"""Gets information about one or more build projects.

        :param self:
        :param names:  The names or ARNs of the build projects. To get information about a project shared with your Amazon Web Services account, its ARN must be specified. You cannot specify a shared project using its name.<br/>
        :return: projectsNotFound:  The names of build projects for which information could not be found.<br/>projects:  Information about the requested build projects.<br/>        """
        pass

    def batch_get_report_groups(self, reportGroupArns: List[NonEmptyString]) -> BatchGetReportGroupsOutput:
        r""" Returns an array of report groups. 

        :param self:
        :param reportGroupArns:   An array of report group ARNs that identify the report groups to return. <br/>
        :return: reportGroupsNotFound:   An array of ARNs passed to <code>BatchGetReportGroups</code> that are not associated with a <code>ReportGroup</code>. <br/>reportGroups:   The array of report groups returned by <code>BatchGetReportGroups</code>. <br/>        """
        pass

    def batch_get_reports(self, reportArns: List[NonEmptyString]) -> BatchGetReportsOutput:
        r""" Returns an array of reports. 

        :param self:
        :param reportArns:   An array of ARNs that identify the <code>Report</code> objects to return. <br/>
        :return: reportsNotFound:   An array of ARNs passed to <code>BatchGetReportGroups</code> that are not associated with a <code>Report</code>. <br/>reports:   The array of <code>Report</code> objects returned by <code>BatchGetReports</code>. <br/>        """
        pass

    def create_project(self, serviceRole: str, environment: ProjectEnvironment, artifacts: ProjectArtifacts, source: ProjectSource, name: str, description: str=None, secondarySources: List[ProjectSource]=None, sourceVersion: str=None, secondarySourceVersions: List[ProjectSourceVersion]=None, secondaryArtifacts: List[ProjectArtifacts]=None, cache: ProjectCache=None, timeoutInMinutes: int=None, queuedTimeoutInMinutes: int=None, encryptionKey: str=None, tags: List[Tag]=None, vpcConfig: VpcConfig=None, badgeEnabled: WrapperBoolean=None, logsConfig: LogsConfig=None, fileSystemLocations: List[ProjectFileSystemLocation]=None, buildBatchConfig: ProjectBuildBatchConfig=None, concurrentBuildLimit: int=None) -> CreateProjectOutput:
        r"""Creates a build project.

        :param self:
        :param concurrentBuildLimit:  The maximum number of concurrent builds that are allowed for this project. New builds are only started if the current number of builds is less than or equal to this limit. If the current build count meets this limit, new builds are throttled and are not run.<br/>buildBatchConfig:  A <a>ProjectBuildBatchConfig</a> object that defines the batch build options for the project.:<br/>fileSystemLocations:   An array of <code>ProjectFileSystemLocation</code> objects for a CodeBuild build project. A <code>ProjectFileSystemLocation</code> object specifies the <code>identifier</code>, <code>location</code>, <code>mountOptions</code>, <code>mountPoint</code>, and <code>type</code> of a file system created using Amazon Elastic File System. <br/>logsConfig:  Information about logs for the build project. These can be logs in CloudWatch Logs, logs uploaded to a specified S3 bucket, or both. :<br/>badgeEnabled:  Set this to true to generate a publicly accessible URL for your project's build badge.<br/>vpcConfig:  VpcConfig enables CodeBuild to access resources in an Amazon VPC.:<br/>tags:  A list of tag key and value pairs associated with this build project. These tags are available for use by Amazon Web Services services that support CodeBuild build project tags.<br/>encryptionKey:  The Key Management Service customer master key (CMK) to be used for encrypting the build output artifacts. <note> You can use a cross-account KMS key to encrypt the build output artifacts if your service role has permission to that key.  </note> You can specify either the Amazon Resource Name (ARN) of the CMK or, if available, the CMK's alias (using the format <code>alias/&lt;alias-name&gt;</code>). <br/>queuedTimeoutInMinutes:  The number of minutes a build is allowed to be queued before it times out. <br/>timeoutInMinutes:  How long, in minutes, from 5 to 480 (8 hours), for CodeBuild to wait before it times out any build that has not been marked as completed. The default is 60 minutes.<br/>serviceRole:  The ARN of the Identity and Access Management role that enables CodeBuild to interact with dependent Amazon Web Services services on behalf of the Amazon Web Services account.<br/>environment:  Information about the build environment for the build project.:<br/>cache:  Stores recently used information so that it can be quickly accessed at a later time.:<br/>secondaryArtifacts:  An array of <code>ProjectArtifacts</code> objects. <br/>artifacts:  Information about the build output artifacts for the build project.:<br/>secondarySourceVersions:  An array of <code>ProjectSourceVersion</code> objects. If <code>secondarySourceVersions</code> is specified at the build level, then they take precedence over these <code>secondarySourceVersions</code> (at the project level). <br/>sourceVersion:  A version of the build input to be built for this project. If not specified, the latest version is used. If specified, it must be one of:  <ul> <li> For CodeCommit: the commit ID, branch, or Git tag to use. </li> <li> For GitHub: the commit ID, pull request ID, branch name, or tag name that corresponds to the version of the source code you want to build. If a pull request ID is specified, it must use the format <code>pr/pull-request-ID</code> (for example <code>pr/25</code>). If a branch name is specified, the branch's HEAD commit ID is used. If not specified, the default branch's HEAD commit ID is used. </li> <li> For Bitbucket: the commit ID, branch name, or tag name that corresponds to the version of the source code you want to build. If a branch name is specified, the branch's HEAD commit ID is used. If not specified, the default branch's HEAD commit ID is used. </li> <li> For Amazon S3: the version ID of the object that represents the build input ZIP file to use. </li> </ul> If <code>sourceVersion</code> is specified at the build level, then that version takes precedence over this <code>sourceVersion</code> (at the project level).  For more information, see <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/sample-source-version.html">Source Version Sample with CodeBuild</a> in the <i>CodeBuild User Guide</i>. <br/>secondarySources:  An array of <code>ProjectSource</code> objects. <br/>source:  Information about the build input source code for the build project.:<br/>description:  A description that makes the build project easy to identify.<br/>name:  The name of the build project.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>sourceIdentifier</i> An identifier for this project source. The identifier can only contain alphanumeric characters and underscores, and must be less than 128 characters in length. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>insecureSsl</i> Enable this flag to ignore SSL warnings while connecting to the project source code.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>buildStatusConfig</i> Contains information that defines how the build project reports the build status to the source provider. This option is only used when the source provider is <code>GITHUB</code>, <code>GITHUB_ENTERPRISE</code>, or <code>BITBUCKET</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>buildStatusConfig</b>: Contains information that defines how the build project reports the build status to the source provider. This option is only used when the source provider is <code>GITHUB</code>, <code>GITHUB_ENTERPRISE</code>, or <code>BITBUCKET</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>reportBuildStatus</i>  Set to true to report the status of a build's start and finish to your source provider. This option is valid only when your source provider is GitHub, GitHub Enterprise, or Bitbucket. If this is set and you use a different source provider, an <code>invalidInputException</code> is thrown.  To be able to report the build status to the source provider, the user associated with the source provider must have write access to the repo. If the user does not have write access, the build status cannot be updated. For more information, see <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/access-tokens.html">Source provider access</a> in the <i>CodeBuild User Guide</i>. <note>  The status of a build triggered by a webhook is always reported to your source provider.  </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>auth</i> Information about the authorization settings for CodeBuild to access the source code to be built. This information is for the CodeBuild console's use only. Your code should not get or set this information directly.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>auth</b>: Information about the authorization settings for CodeBuild to access the source code to be built. This information is for the CodeBuild console's use only. Your code should not get or set this information directly.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>buildspec</i> The buildspec file declaration to use for the builds in this build project.  If this value is set, it can be either an inline buildspec definition, the path to an alternate buildspec file relative to the value of the built-in <code>CODEBUILD_SRC_DIR</code> environment variable, or the path to an S3 bucket. The bucket must be in the same Region as the build project. Specify the buildspec file using its ARN (for example, <code>arn:aws:s3:::my-codebuild-sample2/buildspec.yml</code>). If this value is not provided or is set to an empty string, the source code must contain a buildspec file in its root directory. For more information, see <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html#build-spec-ref-name-storage">Buildspec File Name and Storage Location</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>gitSubmodulesConfig</i>  Information about the Git submodules configuration for the build project. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>gitSubmodulesConfig</b>:  Information about the Git submodules configuration for the build project. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>gitCloneDepth</i> Information about the Git clone depth for the build project.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i> Information about the location of the source code to be built. Valid values include: <ul> <li> For source code settings that are specified in the source action of a pipeline in CodePipeline, <code>location</code> should not be specified. If it is specified, CodePipeline ignores it. This is because CodePipeline uses the settings in a pipeline's source action instead of this value. </li> <li> For source code in an CodeCommit repository, the HTTPS clone URL to the repository that contains the source code and the buildspec file (for example, <code>https://git-codecommit.&lt;region-ID&gt;.amazonaws.com/v1/repos/&lt;repo-name&gt;</code>). </li> <li> For source code in an Amazon S3 input bucket, one of the following.  <ul> <li> The path to the ZIP file that contains the source code (for example, <code>&lt;bucket-name&gt;/&lt;path&gt;/&lt;object-name&gt;.zip</code>).  </li> <li> The path to the folder that contains the source code (for example, <code>&lt;bucket-name&gt;/&lt;path-to-source-code&gt;/&lt;folder&gt;/</code>).  </li> </ul> </li> <li> For source code in a GitHub repository, the HTTPS clone URL to the repository that contains the source and the buildspec file. You must connect your account to your GitHub account. Use the CodeBuild console to start creating a build project. When you use the console to connect (or reconnect) with GitHub, on the GitHub <b>Authorize application</b> page, for <b>Organization access</b>, choose <b>Request access</b> next to each repository you want to allow CodeBuild to have access to, and then choose <b>Authorize application</b>. (After you have connected to your GitHub account, you do not need to finish creating the build project. You can leave the CodeBuild console.) To instruct CodeBuild to use this connection, in the <code>source</code> object, set the <code>auth</code> object's <code>type</code> value to <code>OAUTH</code>. </li> <li> For source code in a Bitbucket repository, the HTTPS clone URL to the repository that contains the source and the buildspec file. You must connect your Amazon Web Services account to your Bitbucket account. Use the CodeBuild console to start creating a build project. When you use the console to connect (or reconnect) with Bitbucket, on the Bitbucket <b>Confirm access to your account</b> page, choose <b>Grant access</b>. (After you have connected to your Bitbucket account, you do not need to finish creating the build project. You can leave the CodeBuild console.) To instruct CodeBuild to use this connection, in the <code>source</code> object, set the <code>auth</code> object's <code>type</code> value to <code>OAUTH</code>. </li> </ul>  If you specify <code>CODEPIPELINE</code> for the <code>Type</code> property, don't specify this property. For all of the other types, you must specify <code>Location</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of repository that contains the source code to be built. Valid values include: <ul> <li>  <code>BITBUCKET</code>: The source code is in a Bitbucket repository. </li> <li>  <code>CODECOMMIT</code>: The source code is in an CodeCommit repository. </li> <li>  <code>CODEPIPELINE</code>: The source code settings are specified in the source action of a pipeline in CodePipeline. </li> <li>  <code>GITHUB</code>: The source code is in a GitHub or GitHub Enterprise Cloud repository. </li> <li>  <code>GITHUB_ENTERPRISE</code>: The source code is in a GitHub Enterprise Server repository. </li> <li>  <code>NO_SOURCE</code>: The project does not have input source code. </li> <li>  <code>S3</code>: The source code is in an Amazon S3 bucket. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>fetchSubmodules</i>  Set to true to fetch Git submodules for your CodeBuild build project. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>resource</i> The resource value that applies to the specified authorization type.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> <note>  This data type is deprecated and is no longer accurate or used.  </note> The authorization type to use. The only valid value is <code>OAUTH</code>, which represents the OAuth authorization type.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>targetUrl</i> Specifies the target url of the build status CodeBuild sends to the source provider. The usage of this parameter depends on the source provider. <dl> <dt>Bitbucket</dt> <dd> This parameter is used for the <code>url</code> parameter in the Bitbucket commit status. For more information, see <a href="https://developer.atlassian.com/bitbucket/api/2/reference/resource/repositories/%7Bworkspace%7D/%7Brepo_slug%7D/commit/%7Bnode%7D/statuses/build">build</a> in the Bitbucket API documentation. </dd> <dt>GitHub/GitHub Enterprise Server</dt> <dd> This parameter is used for the <code>target_url</code> parameter in the GitHub commit status. For more information, see <a href="https://developer.github.com/v3/repos/statuses/#create-a-commit-status">Create a commit status</a> in the GitHub developer guide. </dd> </dl><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>context</i> Specifies the context of the build status CodeBuild sends to the source provider. The usage of this parameter depends on the source provider. <dl> <dt>Bitbucket</dt> <dd> This parameter is used for the <code>name</code> parameter in the Bitbucket commit status. For more information, see <a href="https://developer.atlassian.com/bitbucket/api/2/reference/resource/repositories/%7Bworkspace%7D/%7Brepo_slug%7D/commit/%7Bnode%7D/statuses/build">build</a> in the Bitbucket API documentation. </dd> <dt>GitHub/GitHub Enterprise Server</dt> <dd> This parameter is used for the <code>context</code> parameter in the GitHub commit status. For more information, see <a href="https://developer.github.com/v3/repos/statuses/#create-a-commit-status">Create a commit status</a> in the GitHub developer guide. </dd> </dl><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>artifactIdentifier</i>  An identifier for this artifact definition. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>encryptionDisabled</i>  Set to true if you do not want your output artifacts encrypted. This option is valid only if your artifacts type is Amazon S3. If this is set with another artifacts type, an invalidInputException is thrown. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>overrideArtifactName</i>  If this flag is set, a name specified in the buildspec file overrides the artifact name. The name specified in a buildspec file is calculated at build time and uses the Shell Command Language. For example, you can append a date and time to your artifact name so that it is always unique. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>packaging</i> The type of build output artifact to create: <ul> <li> If <code>type</code> is set to <code>CODEPIPELINE</code>, CodePipeline ignores this value if specified. This is because CodePipeline manages its build output artifacts instead of CodeBuild. </li> <li> If <code>type</code> is set to <code>NO_ARTIFACTS</code>, this value is ignored if specified, because no build output is produced. </li> <li> If <code>type</code> is set to <code>S3</code>, valid values include: <ul> <li>  <code>NONE</code>: CodeBuild creates in the output bucket a folder that contains the build output. This is the default if <code>packaging</code> is not specified. </li> <li>  <code>ZIP</code>: CodeBuild creates in the output bucket a ZIP file that contains the build output. </li> </ul> </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> Along with <code>path</code> and <code>namespaceType</code>, the pattern that CodeBuild uses to name and store the output artifact: <ul> <li> If <code>type</code> is set to <code>CODEPIPELINE</code>, CodePipeline ignores this value if specified. This is because CodePipeline manages its build output names instead of CodeBuild. </li> <li> If <code>type</code> is set to <code>NO_ARTIFACTS</code>, this value is ignored if specified, because no build output is produced. </li> <li> If <code>type</code> is set to <code>S3</code>, this is the name of the output artifact object. If you set the name to be a forward slash ("/"), the artifact is stored in the root of the output bucket. </li> </ul> For example: <ul> <li>  If <code>path</code> is set to <code>MyArtifacts</code>, <code>namespaceType</code> is set to <code>BUILD_ID</code>, and <code>name</code> is set to <code>MyArtifact.zip</code>, then the output artifact is stored in <code>MyArtifacts/&lt;build-ID&gt;/MyArtifact.zip</code>.  </li> <li>  If <code>path</code> is empty, <code>namespaceType</code> is set to <code>NONE</code>, and <code>name</code> is set to "<code>/</code>", the output artifact is stored in the root of the output bucket.  </li> <li>  If <code>path</code> is set to <code>MyArtifacts</code>, <code>namespaceType</code> is set to <code>BUILD_ID</code>, and <code>name</code> is set to "<code>/</code>", the output artifact is stored in <code>MyArtifacts/&lt;build-ID&gt;</code>.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>namespaceType</i> Along with <code>path</code> and <code>name</code>, the pattern that CodeBuild uses to determine the name and location to store the output artifact: <ul> <li> If <code>type</code> is set to <code>CODEPIPELINE</code>, CodePipeline ignores this value if specified. This is because CodePipeline manages its build output names instead of CodeBuild. </li> <li> If <code>type</code> is set to <code>NO_ARTIFACTS</code>, this value is ignored if specified, because no build output is produced. </li> <li> If <code>type</code> is set to <code>S3</code>, valid values include: <ul> <li>  <code>BUILD_ID</code>: Include the build ID in the location of the build output artifact. </li> <li>  <code>NONE</code>: Do not include the build ID. This is the default if <code>namespaceType</code> is not specified. </li> </ul> </li> </ul> For example, if <code>path</code> is set to <code>MyArtifacts</code>, <code>namespaceType</code> is set to <code>BUILD_ID</code>, and <code>name</code> is set to <code>MyArtifact.zip</code>, the output artifact is stored in <code>MyArtifacts/&lt;build-ID&gt;/MyArtifact.zip</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>path</i> Along with <code>namespaceType</code> and <code>name</code>, the pattern that CodeBuild uses to name and store the output artifact: <ul> <li> If <code>type</code> is set to <code>CODEPIPELINE</code>, CodePipeline ignores this value if specified. This is because CodePipeline manages its build output names instead of CodeBuild. </li> <li> If <code>type</code> is set to <code>NO_ARTIFACTS</code>, this value is ignored if specified, because no build output is produced. </li> <li> If <code>type</code> is set to <code>S3</code>, this is the path to the output artifact. If <code>path</code> is not specified, <code>path</code> is not used. </li> </ul> For example, if <code>path</code> is set to <code>MyArtifacts</code>, <code>namespaceType</code> is set to <code>NONE</code>, and <code>name</code> is set to <code>MyArtifact.zip</code>, the output artifact is stored in the output bucket at <code>MyArtifacts/MyArtifact.zip</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i> Information about the build output artifact location: <ul> <li> If <code>type</code> is set to <code>CODEPIPELINE</code>, CodePipeline ignores this value if specified. This is because CodePipeline manages its build output locations instead of CodeBuild. </li> <li> If <code>type</code> is set to <code>NO_ARTIFACTS</code>, this value is ignored if specified, because no build output is produced. </li> <li> If <code>type</code> is set to <code>S3</code>, this is the name of the output bucket. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of build output artifact. Valid values include: <ul> <li>  <code>CODEPIPELINE</code>: The build project has build output generated through CodePipeline.  <note> The <code>CODEPIPELINE</code> type is not supported for <code>secondaryArtifacts</code>. </note> </li> <li>  <code>NO_ARTIFACTS</code>: The build project does not produce any build output. </li> <li>  <code>S3</code>: The build project stores build output in Amazon S3. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>modes</i> An array of strings that specify the local cache modes. You can use one or more local cache modes at the same time. This is only used for <code>LOCAL</code> cache types. Possible values are: <dl> <dt>LOCAL_SOURCE_CACHE</dt> <dd> Caches Git metadata for primary and secondary sources. After the cache is created, subsequent builds pull only the change between commits. This mode is a good choice for projects with a clean working directory and a source that is a large Git repository. If you choose this option and your project does not use a Git repository (GitHub, GitHub Enterprise, or Bitbucket), the option is ignored.  </dd> <dt>LOCAL_DOCKER_LAYER_CACHE</dt> <dd> Caches existing Docker layers. This mode is a good choice for projects that build or pull large Docker images. It can prevent the performance issues caused by pulling large Docker images down from the network.  <note> <ul> <li> You can use a Docker layer cache in the Linux environment only.  </li> <li> The <code>privileged</code> flag must be set so that your project has the required Docker permissions.  </li> <li> You should consider the security implications before you use a Docker layer cache.  </li> </ul> </note> </dd> <dt>LOCAL_CUSTOM_CACHE</dt> <dd> Caches directories you specify in the buildspec file. This mode is a good choice if your build scenario is not suited to one of the other three local cache modes. If you use a custom cache:  <ul> <li> Only directories can be specified for caching. You cannot specify individual files.  </li> <li> Symlinks are used to reference cached directories.  </li> <li> Cached directories are linked to your build before it downloads its project sources. Cached items are overridden if a source item has the same name. Directories are specified using cache paths in the buildspec file.  </li> </ul> </dd> </dl><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i> Information about the cache location:  <ul> <li>  <code>NO_CACHE</code> or <code>LOCAL</code>: This value is ignored. </li> <li>  <code>S3</code>: This is the S3 bucket name/prefix. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of cache used by the build project. Valid values include: <ul> <li>  <code>NO_CACHE</code>: The build project does not use any cache. </li> <li>  <code>S3</code>: The build project reads and writes from and to S3. </li> <li>  <code>LOCAL</code>: The build project stores a cache locally on a build host that is only available to that build host. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>imagePullCredentialsType</i>  The type of credentials CodeBuild uses to pull images in your build. There are two valid values:  <ul> <li>  <code>CODEBUILD</code> specifies that CodeBuild uses its own credentials. This requires that you modify your ECR repository policy to trust CodeBuild service principal.  </li> <li>  <code>SERVICE_ROLE</code> specifies that CodeBuild uses your build project's service role.  </li> </ul>  When you use a cross-account or private registry image, you must use SERVICE_ROLE credentials. When you use an CodeBuild curated image, you must use CODEBUILD credentials. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>registryCredential</i>  The credentials for access to a private registry.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>registryCredential</b>:  The credentials for access to a private registry.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>certificate</i> The ARN of the Amazon S3 bucket, path prefix, and object key that contains the PEM-encoded certificate for the build project. For more information, see <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/create-project-cli.html#cli.environment.certificate">certificate</a> in the <i>CodeBuild User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>privilegedMode</i> Enables running the Docker daemon inside a Docker container. Set to true only if the build project is used to build Docker images. Otherwise, a build that attempts to interact with the Docker daemon fails. The default setting is <code>false</code>. You can initialize the Docker daemon during the install phase of your build by adding one of the following sets of commands to the install phase of your buildspec file: If the operating system's base image is Ubuntu Linux:  <code>- nohup /usr/local/bin/dockerd --host=unix:///var/run/docker.sock --host=tcp://0.0.0.0:2375 --storage-driver=overlay&amp;</code>   <code>- timeout 15 sh -c "until docker info; do echo .; sleep 1; done"</code>  If the operating system's base image is Alpine Linux and the previous command does not work, add the <code>-t</code> argument to <code>timeout</code>:  <code>- nohup /usr/local/bin/dockerd --host=unix:///var/run/docker.sock --host=tcp://0.0.0.0:2375 --storage-driver=overlay&amp;</code>   <code>- timeout -t 15 sh -c "until docker info; do echo .; sleep 1; done"</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>environmentVariables</i> A set of environment variables to make available to builds for this build project.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>computeType</i> Information about the compute resources the build project uses. Available values include: <ul> <li>  <code>BUILD_GENERAL1_SMALL</code>: Use up to 3 GB memory and 2 vCPUs for builds. </li> <li>  <code>BUILD_GENERAL1_MEDIUM</code>: Use up to 7 GB memory and 4 vCPUs for builds. </li> <li>  <code>BUILD_GENERAL1_LARGE</code>: Use up to 16 GB memory and 8 vCPUs for builds, depending on your environment type. </li> <li>  <code>BUILD_GENERAL1_2XLARGE</code>: Use up to 145 GB memory, 72 vCPUs, and 824 GB of SSD storage for builds. This compute type supports Docker images up to 100 GB uncompressed. </li> </ul>  If you use <code>BUILD_GENERAL1_LARGE</code>:  <ul> <li>  For environment type <code>LINUX_CONTAINER</code>, you can use up to 15 GB memory and 8 vCPUs for builds.  </li> <li>  For environment type <code>LINUX_GPU_CONTAINER</code>, you can use up to 255 GB memory, 32 vCPUs, and 4 NVIDIA Tesla V100 GPUs for builds. </li> <li>  For environment type <code>ARM_CONTAINER</code>, you can use up to 16 GB memory and 8 vCPUs on ARM-based processors for builds. </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html">Build Environment Compute Types</a> in the <i>CodeBuild User Guide.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>image</i> The image tag or image digest that identifies the Docker image to use for this build project. Use the following formats: <ul> <li> For an image tag: <code>&lt;registry&gt;/&lt;repository&gt;:&lt;tag&gt;</code>. For example, in the Docker repository that CodeBuild uses to manage its Docker images, this would be <code>aws/codebuild/standard:4.0</code>.  </li> <li> For an image digest: <code>&lt;registry&gt;/&lt;repository&gt;@&lt;digest&gt;</code>. For example, to specify an image with the digest "sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf," use <code>&lt;registry&gt;/&lt;repository&gt;@sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf</code>. </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-available.html">Docker images provided by CodeBuild</a> in the <i>CodeBuild user guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of build environment to use for related builds. <ul> <li> The environment type <code>ARM_CONTAINER</code> is available only in regions US East (N. Virginia), US East (Ohio), US West (Oregon), EU (Ireland), Asia Pacific (Mumbai), Asia Pacific (Tokyo), Asia Pacific (Sydney), and EU (Frankfurt). </li> <li> The environment type <code>LINUX_CONTAINER</code> with compute type <code>build.general1.2xlarge</code> is available only in regions US East (N. Virginia), US East (Ohio), US West (Oregon), Canada (Central), EU (Ireland), EU (London), EU (Frankfurt), Asia Pacific (Tokyo), Asia Pacific (Seoul), Asia Pacific (Singapore), Asia Pacific (Sydney), China (Beijing), and China (Ningxia). </li> <li> The environment type <code>LINUX_GPU_CONTAINER</code> is available only in regions US East (N. Virginia), US East (Ohio), US West (Oregon), Canada (Central), EU (Ireland), EU (London), EU (Frankfurt), Asia Pacific (Tokyo), Asia Pacific (Seoul), Asia Pacific (Singapore), Asia Pacific (Sydney) , China (Beijing), and China (Ningxia). </li> </ul> <ul> <li> The environment types <code>WINDOWS_CONTAINER</code> and <code>WINDOWS_SERVER_2019_CONTAINER</code> are available only in regions US East (N. Virginia), US East (Ohio), US West (Oregon), and EU (Ireland). </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html">Build environment compute types</a> in the <i>CodeBuild user guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>credentialProvider</i>  The service that created the credentials to access a private Docker registry. The valid value, SECRETS_MANAGER, is for Secrets Manager. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>credential</i>  The Amazon Resource Name (ARN) or name of credentials created using Secrets Manager.  <note>  The <code>credential</code> can use the name of the credentials only if they exist in your current Region.  </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>securityGroupIds</i> A list of one or more security groups IDs in your Amazon VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>subnets</i> A list of one or more subnet IDs in your Amazon VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>vpcId</i> The ID of the Amazon VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>s3Logs</i>  Information about logs built to an S3 bucket for a build project. S3 logs are not enabled by default. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>s3Logs</b>:  Information about logs built to an S3 bucket for a build project. S3 logs are not enabled by default. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>cloudWatchLogs</i>  Information about CloudWatch Logs for a build project. CloudWatch Logs are enabled by default. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>cloudWatchLogs</b>:  Information about CloudWatch Logs for a build project. CloudWatch Logs are enabled by default. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>streamName</i>  The prefix of the stream name of the CloudWatch Logs. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html">Working with Log Groups and Log Streams</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>groupName</i>  The group name of the logs in CloudWatch Logs. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html">Working with Log Groups and Log Streams</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current status of the logs in CloudWatch Logs for a build project. Valid values are: <ul> <li>  <code>ENABLED</code>: CloudWatch Logs are enabled for this build project. </li> <li>  <code>DISABLED</code>: CloudWatch Logs are not enabled for this build project. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>encryptionDisabled</i>  Set to true if you do not want your S3 build log output encrypted. By default S3 build logs are encrypted. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i>  The ARN of an S3 bucket and the path prefix for S3 logs. If your Amazon S3 bucket name is <code>my-bucket</code>, and your path prefix is <code>build-log</code>, then acceptable formats are <code>my-bucket/build-log</code> or <code>arn:aws:s3:::my-bucket/build-log</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current status of the S3 build logs. Valid values are: <ul> <li>  <code>ENABLED</code>: S3 build logs are enabled for this build project. </li> <li>  <code>DISABLED</code>: S3 build logs are not enabled for this build project. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>timeoutInMins</i> Specifies the maximum amount of time, in minutes, that the batch build must be completed in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>restrictions</i> A <code>BatchRestrictions</code> object that specifies the restrictions for the batch build.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>restrictions</b>: A <code>BatchRestrictions</code> object that specifies the restrictions for the batch build.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>combineArtifacts</i> Specifies if the build artifacts for the batch build should be combined into a single artifact location.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>serviceRole</i> Specifies the service role ARN for the batch build project.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>computeTypesAllowed</i> An array of strings that specify the compute types that are allowed for the batch build. See <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html">Build environment compute types</a> in the <i>CodeBuild User Guide</i> for these values. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>maximumBuildsAllowed</i> Specifies the maximum number of builds allowed.<br/>
        :return: project:  Information about the build project that was created.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>concurrentBuildLimit</i> The maximum number of concurrent builds that are allowed for this project. New builds are only started if the current number of builds is less than or equal to this limit. If the current build count meets this limit, new builds are throttled and are not run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>buildBatchConfig</i> A <a>ProjectBuildBatchConfig</a> object that defines the batch build options for the project.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>buildBatchConfig</b>: A <a>ProjectBuildBatchConfig</a> object that defines the batch build options for the project.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>fileSystemLocations</i>  An array of <code>ProjectFileSystemLocation</code> objects for a CodeBuild build project. A <code>ProjectFileSystemLocation</code> object specifies the <code>identifier</code>, <code>location</code>, <code>mountOptions</code>, <code>mountPoint</code>, and <code>type</code> of a file system created using Amazon Elastic File System. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>logsConfig</i> Information about logs for the build project. A project can create logs in CloudWatch Logs, an S3 bucket, or both. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>logsConfig</b>: Information about logs for the build project. A project can create logs in CloudWatch Logs, an S3 bucket, or both. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>badge</i> Information about the build badge for the build project.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>badge</b>: Information about the build badge for the build project.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>vpcConfig</i> Information about the VPC configuration that CodeBuild accesses.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>vpcConfig</b>: Information about the VPC configuration that CodeBuild accesses.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>webhook</i> Information about a webhook that connects repository events to a build project in CodeBuild.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>webhook</b>: Information about a webhook that connects repository events to a build project in CodeBuild.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastModified</i> When the build project's settings were last modified, expressed in Unix time format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>created</i> When the build project was created, expressed in Unix time format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> A list of tag key and value pairs associated with this build project. These tags are available for use by Amazon Web Services services that support CodeBuild build project tags.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>encryptionKey</i> The Key Management Service customer master key (CMK) to be used for encrypting the build output artifacts. <note> You can use a cross-account KMS key to encrypt the build output artifacts if your service role has permission to that key.  </note> You can specify either the Amazon Resource Name (ARN) of the CMK or, if available, the CMK's alias (using the format <code>alias/&lt;alias-name&gt;</code>). If you don't specify a value, CodeBuild uses the managed CMK for Amazon Simple Storage Service (Amazon S3). <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>queuedTimeoutInMinutes</i> The number of minutes a build is allowed to be queued before it times out. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>timeoutInMinutes</i> How long, in minutes, from 5 to 480 (8 hours), for CodeBuild to wait before timing out any related build that did not get marked as completed. The default is 60 minutes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>serviceRole</i> The ARN of the Identity and Access Management role that enables CodeBuild to interact with dependent Amazon Web Services services on behalf of the Amazon Web Services account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>environment</i> Information about the build environment for this build project.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>environment</b>: Information about the build environment for this build project.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>cache</i> Information about the cache for the build project.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>cache</b>: Information about the cache for the build project.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>secondaryArtifacts</i> An array of <code>ProjectArtifacts</code> objects. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>artifacts</i> Information about the build output artifacts for the build project.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>artifacts</b>: Information about the build output artifacts for the build project.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>secondarySourceVersions</i> An array of <code>ProjectSourceVersion</code> objects. If <code>secondarySourceVersions</code> is specified at the build level, then they take over these <code>secondarySourceVersions</code> (at the project level). <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>sourceVersion</i> A version of the build input to be built for this project. If not specified, the latest version is used. If specified, it must be one of: <ul> <li> For CodeCommit: the commit ID, branch, or Git tag to use. </li> <li> For GitHub: the commit ID, pull request ID, branch name, or tag name that corresponds to the version of the source code you want to build. If a pull request ID is specified, it must use the format <code>pr/pull-request-ID</code> (for example <code>pr/25</code>). If a branch name is specified, the branch's HEAD commit ID is used. If not specified, the default branch's HEAD commit ID is used. </li> <li> For Bitbucket: the commit ID, branch name, or tag name that corresponds to the version of the source code you want to build. If a branch name is specified, the branch's HEAD commit ID is used. If not specified, the default branch's HEAD commit ID is used. </li> <li> For Amazon S3: the version ID of the object that represents the build input ZIP file to use. </li> </ul> If <code>sourceVersion</code> is specified at the build level, then that version takes precedence over this <code>sourceVersion</code> (at the project level).  For more information, see <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/sample-source-version.html">Source Version Sample with CodeBuild</a> in the <i>CodeBuild User Guide</i>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>secondarySources</i> An array of <code>ProjectSource</code> objects. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>source</i> Information about the build input source code for this build project.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>source</b>: Information about the build input source code for this build project.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> A description that makes the build project easy to identify.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the build project.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the build project.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>gitCloneDepth</i> Information about the Git clone depth for the build project.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i> Information about the location of the source code to be built. Valid values include: <ul> <li> For source code settings that are specified in the source action of a pipeline in CodePipeline, <code>location</code> should not be specified. If it is specified, CodePipeline ignores it. This is because CodePipeline uses the settings in a pipeline's source action instead of this value. </li> <li> For source code in an CodeCommit repository, the HTTPS clone URL to the repository that contains the source code and the buildspec file (for example, <code>https://git-codecommit.&lt;region-ID&gt;.amazonaws.com/v1/repos/&lt;repo-name&gt;</code>). </li> <li> For source code in an Amazon S3 input bucket, one of the following.  <ul> <li> The path to the ZIP file that contains the source code (for example, <code>&lt;bucket-name&gt;/&lt;path&gt;/&lt;object-name&gt;.zip</code>).  </li> <li> The path to the folder that contains the source code (for example, <code>&lt;bucket-name&gt;/&lt;path-to-source-code&gt;/&lt;folder&gt;/</code>).  </li> </ul> </li> <li> For source code in a GitHub repository, the HTTPS clone URL to the repository that contains the source and the buildspec file. You must connect your account to your GitHub account. Use the CodeBuild console to start creating a build project. When you use the console to connect (or reconnect) with GitHub, on the GitHub <b>Authorize application</b> page, for <b>Organization access</b>, choose <b>Request access</b> next to each repository you want to allow CodeBuild to have access to, and then choose <b>Authorize application</b>. (After you have connected to your GitHub account, you do not need to finish creating the build project. You can leave the CodeBuild console.) To instruct CodeBuild to use this connection, in the <code>source</code> object, set the <code>auth</code> object's <code>type</code> value to <code>OAUTH</code>. </li> <li> For source code in a Bitbucket repository, the HTTPS clone URL to the repository that contains the source and the buildspec file. You must connect your Amazon Web Services account to your Bitbucket account. Use the CodeBuild console to start creating a build project. When you use the console to connect (or reconnect) with Bitbucket, on the Bitbucket <b>Confirm access to your account</b> page, choose <b>Grant access</b>. (After you have connected to your Bitbucket account, you do not need to finish creating the build project. You can leave the CodeBuild console.) To instruct CodeBuild to use this connection, in the <code>source</code> object, set the <code>auth</code> object's <code>type</code> value to <code>OAUTH</code>. </li> </ul>  If you specify <code>CODEPIPELINE</code> for the <code>Type</code> property, don't specify this property. For all of the other types, you must specify <code>Location</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of repository that contains the source code to be built. Valid values include: <ul> <li>  <code>BITBUCKET</code>: The source code is in a Bitbucket repository. </li> <li>  <code>CODECOMMIT</code>: The source code is in an CodeCommit repository. </li> <li>  <code>CODEPIPELINE</code>: The source code settings are specified in the source action of a pipeline in CodePipeline. </li> <li>  <code>GITHUB</code>: The source code is in a GitHub or GitHub Enterprise Cloud repository. </li> <li>  <code>GITHUB_ENTERPRISE</code>: The source code is in a GitHub Enterprise Server repository. </li> <li>  <code>NO_SOURCE</code>: The project does not have input source code. </li> <li>  <code>S3</code>: The source code is in an Amazon S3 bucket. </li> </ul><br/> Information about the Git submodules configuration for the build project. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>gitSubmodulesConfig</b>:  Information about the Git submodules configuration for the build project. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>artifactIdentifier</i>  An identifier for this artifact definition. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>encryptionDisabled</i>  Set to true if you do not want your output artifacts encrypted. This option is valid only if your artifacts type is Amazon S3. If this is set with another artifacts type, an invalidInputException is thrown. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>overrideArtifactName</i>  If this flag is set, a name specified in the buildspec file overrides the artifact name. The name specified in a buildspec file is calculated at build time and uses the Shell Command Language. For example, you can append a date and time to your artifact name so that it is always unique. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>packaging</i> The type of build output artifact to create: <ul> <li> If <code>type</code> is set to <code>CODEPIPELINE</code>, CodePipeline ignores this value if specified. This is because CodePipeline manages its build output artifacts instead of CodeBuild. </li> <li> If <code>type</code> is set to <code>NO_ARTIFACTS</code>, this value is ignored if specified, because no build output is produced. </li> <li> If <code>type</code> is set to <code>S3</code>, valid values include: <ul> <li>  <code>NONE</code>: CodeBuild creates in the output bucket a folder that contains the build output. This is the default if <code>packaging</code> is not specified. </li> <li>  <code>ZIP</code>: CodeBuild creates in the output bucket a ZIP file that contains the build output. </li> </ul> </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> Along with <code>path</code> and <code>namespaceType</code>, the pattern that CodeBuild uses to name and store the output artifact: <ul> <li> If <code>type</code> is set to <code>CODEPIPELINE</code>, CodePipeline ignores this value if specified. This is because CodePipeline manages its build output names instead of CodeBuild. </li> <li> If <code>type</code> is set to <code>NO_ARTIFACTS</code>, this value is ignored if specified, because no build output is produced. </li> <li> If <code>type</code> is set to <code>S3</code>, this is the name of the output artifact object. If you set the name to be a forward slash ("/"), the artifact is stored in the root of the output bucket. </li> </ul> For example: <ul> <li>  If <code>path</code> is set to <code>MyArtifacts</code>, <code>namespaceType</code> is set to <code>BUILD_ID</code>, and <code>name</code> is set to <code>MyArtifact.zip</code>, then the output artifact is stored in <code>MyArtifacts/&lt;build-ID&gt;/MyArtifact.zip</code>.  </li> <li>  If <code>path</code> is empty, <code>namespaceType</code> is set to <code>NONE</code>, and <code>name</code> is set to "<code>/</code>", the output artifact is stored in the root of the output bucket.  </li> <li>  If <code>path</code> is set to <code>MyArtifacts</code>, <code>namespaceType</code> is set to <code>BUILD_ID</code>, and <code>name</code> is set to "<code>/</code>", the output artifact is stored in <code>MyArtifacts/&lt;build-ID&gt;</code>.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>namespaceType</i> Along with <code>path</code> and <code>name</code>, the pattern that CodeBuild uses to determine the name and location to store the output artifact: <ul> <li> If <code>type</code> is set to <code>CODEPIPELINE</code>, CodePipeline ignores this value if specified. This is because CodePipeline manages its build output names instead of CodeBuild. </li> <li> If <code>type</code> is set to <code>NO_ARTIFACTS</code>, this value is ignored if specified, because no build output is produced. </li> <li> If <code>type</code> is set to <code>S3</code>, valid values include: <ul> <li>  <code>BUILD_ID</code>: Include the build ID in the location of the build output artifact. </li> <li>  <code>NONE</code>: Do not include the build ID. This is the default if <code>namespaceType</code> is not specified. </li> </ul> </li> </ul> For example, if <code>path</code> is set to <code>MyArtifacts</code>, <code>namespaceType</code> is set to <code>BUILD_ID</code>, and <code>name</code> is set to <code>MyArtifact.zip</code>, the output artifact is stored in <code>MyArtifacts/&lt;build-ID&gt;/MyArtifact.zip</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>path</i> Along with <code>namespaceType</code> and <code>name</code>, the pattern that CodeBuild uses to name and store the output artifact: <ul> <li> If <code>type</code> is set to <code>CODEPIPELINE</code>, CodePipeline ignores this value if specified. This is because CodePipeline manages its build output names instead of CodeBuild. </li> <li> If <code>type</code> is set to <code>NO_ARTIFACTS</code>, this value is ignored if specified, because no build output is produced. </li> <li> If <code>type</code> is set to <code>S3</code>, this is the path to the output artifact. If <code>path</code> is not specified, <code>path</code> is not used. </li> </ul> For example, if <code>path</code> is set to <code>MyArtifacts</code>, <code>namespaceType</code> is set to <code>NONE</code>, and <code>name</code> is set to <code>MyArtifact.zip</code>, the output artifact is stored in the output bucket at <code>MyArtifacts/MyArtifact.zip</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i> Information about the build output artifact location: <ul> <li> If <code>type</code> is set to <code>CODEPIPELINE</code>, CodePipeline ignores this value if specified. This is because CodePipeline manages its build output locations instead of CodeBuild. </li> <li> If <code>type</code> is set to <code>NO_ARTIFACTS</code>, this value is ignored if specified, because no build output is produced. </li> <li> If <code>type</code> is set to <code>S3</code>, this is the name of the output bucket. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of build output artifact. Valid values include: <ul> <li>  <code>CODEPIPELINE</code>: The build project has build output generated through CodePipeline.  <note> The <code>CODEPIPELINE</code> type is not supported for <code>secondaryArtifacts</code>. </note> </li> <li>  <code>NO_ARTIFACTS</code>: The build project does not produce any build output. </li> <li>  <code>S3</code>: The build project stores build output in Amazon S3. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>modes</i> An array of strings that specify the local cache modes. You can use one or more local cache modes at the same time. This is only used for <code>LOCAL</code> cache types. Possible values are: <dl> <dt>LOCAL_SOURCE_CACHE</dt> <dd> Caches Git metadata for primary and secondary sources. After the cache is created, subsequent builds pull only the change between commits. This mode is a good choice for projects with a clean working directory and a source that is a large Git repository. If you choose this option and your project does not use a Git repository (GitHub, GitHub Enterprise, or Bitbucket), the option is ignored.  </dd> <dt>LOCAL_DOCKER_LAYER_CACHE</dt> <dd> Caches existing Docker layers. This mode is a good choice for projects that build or pull large Docker images. It can prevent the performance issues caused by pulling large Docker images down from the network.  <note> <ul> <li> You can use a Docker layer cache in the Linux environment only.  </li> <li> The <code>privileged</code> flag must be set so that your project has the required Docker permissions.  </li> <li> You should consider the security implications before you use a Docker layer cache.  </li> </ul> </note> </dd> <dt>LOCAL_CUSTOM_CACHE</dt> <dd> Caches directories you specify in the buildspec file. This mode is a good choice if your build scenario is not suited to one of the other three local cache modes. If you use a custom cache:  <ul> <li> Only directories can be specified for caching. You cannot specify individual files.  </li> <li> Symlinks are used to reference cached directories.  </li> <li> Cached directories are linked to your build before it downloads its project sources. Cached items are overridden if a source item has the same name. Directories are specified using cache paths in the buildspec file.  </li> </ul> </dd> </dl><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i> Information about the cache location:  <ul> <li>  <code>NO_CACHE</code> or <code>LOCAL</code>: This value is ignored. </li> <li>  <code>S3</code>: This is the S3 bucket name/prefix. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of cache used by the build project. Valid values include: <ul> <li>  <code>NO_CACHE</code>: The build project does not use any cache. </li> <li>  <code>S3</code>: The build project reads and writes from and to S3. </li> <li>  <code>LOCAL</code>: The build project stores a cache locally on a build host that is only available to that build host. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>certificate</i> The ARN of the Amazon S3 bucket, path prefix, and object key that contains the PEM-encoded certificate for the build project. For more information, see <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/create-project-cli.html#cli.environment.certificate">certificate</a> in the <i>CodeBuild User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>privilegedMode</i> Enables running the Docker daemon inside a Docker container. Set to true only if the build project is used to build Docker images. Otherwise, a build that attempts to interact with the Docker daemon fails. The default setting is <code>false</code>. You can initialize the Docker daemon during the install phase of your build by adding one of the following sets of commands to the install phase of your buildspec file: If the operating system's base image is Ubuntu Linux:  <code>- nohup /usr/local/bin/dockerd --host=unix:///var/run/docker.sock --host=tcp://0.0.0.0:2375 --storage-driver=overlay&amp;</code>   <code>- timeout 15 sh -c "until docker info; do echo .; sleep 1; done"</code>  If the operating system's base image is Alpine Linux and the previous command does not work, add the <code>-t</code> argument to <code>timeout</code>:  <code>- nohup /usr/local/bin/dockerd --host=unix:///var/run/docker.sock --host=tcp://0.0.0.0:2375 --storage-driver=overlay&amp;</code>   <code>- timeout -t 15 sh -c "until docker info; do echo .; sleep 1; done"</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>environmentVariables</i> A set of environment variables to make available to builds for this build project.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>computeType</i> Information about the compute resources the build project uses. Available values include: <ul> <li>  <code>BUILD_GENERAL1_SMALL</code>: Use up to 3 GB memory and 2 vCPUs for builds. </li> <li>  <code>BUILD_GENERAL1_MEDIUM</code>: Use up to 7 GB memory and 4 vCPUs for builds. </li> <li>  <code>BUILD_GENERAL1_LARGE</code>: Use up to 16 GB memory and 8 vCPUs for builds, depending on your environment type. </li> <li>  <code>BUILD_GENERAL1_2XLARGE</code>: Use up to 145 GB memory, 72 vCPUs, and 824 GB of SSD storage for builds. This compute type supports Docker images up to 100 GB uncompressed. </li> </ul>  If you use <code>BUILD_GENERAL1_LARGE</code>:  <ul> <li>  For environment type <code>LINUX_CONTAINER</code>, you can use up to 15 GB memory and 8 vCPUs for builds.  </li> <li>  For environment type <code>LINUX_GPU_CONTAINER</code>, you can use up to 255 GB memory, 32 vCPUs, and 4 NVIDIA Tesla V100 GPUs for builds. </li> <li>  For environment type <code>ARM_CONTAINER</code>, you can use up to 16 GB memory and 8 vCPUs on ARM-based processors for builds. </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html">Build Environment Compute Types</a> in the <i>CodeBuild User Guide.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>image</i> The image tag or image digest that identifies the Docker image to use for this build project. Use the following formats: <ul> <li> For an image tag: <code>&lt;registry&gt;/&lt;repository&gt;:&lt;tag&gt;</code>. For example, in the Docker repository that CodeBuild uses to manage its Docker images, this would be <code>aws/codebuild/standard:4.0</code>.  </li> <li> For an image digest: <code>&lt;registry&gt;/&lt;repository&gt;@&lt;digest&gt;</code>. For example, to specify an image with the digest "sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf," use <code>&lt;registry&gt;/&lt;repository&gt;@sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf</code>. </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-available.html">Docker images provided by CodeBuild</a> in the <i>CodeBuild user guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of build environment to use for related builds. <ul> <li> The environment type <code>ARM_CONTAINER</code> is available only in regions US East (N. Virginia), US East (Ohio), US West (Oregon), EU (Ireland), Asia Pacific (Mumbai), Asia Pacific (Tokyo), Asia Pacific (Sydney), and EU (Frankfurt). </li> <li> The environment type <code>LINUX_CONTAINER</code> with compute type <code>build.general1.2xlarge</code> is available only in regions US East (N. Virginia), US East (Ohio), US West (Oregon), Canada (Central), EU (Ireland), EU (London), EU (Frankfurt), Asia Pacific (Tokyo), Asia Pacific (Seoul), Asia Pacific (Singapore), Asia Pacific (Sydney), China (Beijing), and China (Ningxia). </li> <li> The environment type <code>LINUX_GPU_CONTAINER</code> is available only in regions US East (N. Virginia), US East (Ohio), US West (Oregon), Canada (Central), EU (Ireland), EU (London), EU (Frankfurt), Asia Pacific (Tokyo), Asia Pacific (Seoul), Asia Pacific (Singapore), Asia Pacific (Sydney) , China (Beijing), and China (Ningxia). </li> </ul> <ul> <li> The environment types <code>WINDOWS_CONTAINER</code> and <code>WINDOWS_SERVER_2019_CONTAINER</code> are available only in regions US East (N. Virginia), US East (Ohio), US West (Oregon), and EU (Ireland). </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html">Build environment compute types</a> in the <i>CodeBuild user guide</i>.<br/> The credentials for access to a private registry.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>registryCredential</b>:  The credentials for access to a private registry.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>lastModifiedSecret</i> A timestamp that indicates the last time a repository's secret token was modified. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>buildType</i> Specifies the type of build this webhook will trigger.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>filterGroups</i> An array of arrays of <code>WebhookFilter</code> objects used to determine which webhooks are triggered. At least one <code>WebhookFilter</code> in the array must specify <code>EVENT</code> as its <code>type</code>.  For a build to be triggered, at least one filter group in the <code>filterGroups</code> array must pass. For a filter group to pass, each of its filters must pass. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>branchFilter</i> A regular expression used to determine which repository branches are built when a webhook is triggered. If the name of a branch matches the regular expression, then it is built. If <code>branchFilter</code> is empty, then all branches are built. <note> It is recommended that you use <code>filterGroups</code> instead of <code>branchFilter</code>.  </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>secret</i> The secret token of the associated repository.  <note> A Bitbucket webhook does not support <code>secret</code>.  </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>payloadUrl</i> The CodeBuild endpoint where webhook events are sent.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>url</i> The URL to the webhook.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>securityGroupIds</i> A list of one or more security groups IDs in your Amazon VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>subnets</i> A list of one or more subnet IDs in your Amazon VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>vpcId</i> The ID of the Amazon VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>badgeRequestUrl</i> The publicly-accessible URL through which you can access the build badge for your project. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>badgeEnabled</i> Set this to true to generate a publicly accessible URL for your project's build badge.<br/> Information about CloudWatch Logs for a build project. CloudWatch Logs are enabled by default. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>cloudWatchLogs</b>:  Information about CloudWatch Logs for a build project. CloudWatch Logs are enabled by default. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>combineArtifacts</i> Specifies if the build artifacts for the batch build should be combined into a single artifact location.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>serviceRole</i> Specifies the service role ARN for the batch build project.<br/>A <code>BatchRestrictions</code> object that specifies the restrictions for the batch build.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>restrictions</b>: A <code>BatchRestrictions</code> object that specifies the restrictions for the batch build.        """
        pass

    def create_report_group(self, exportConfig: ReportExportConfig, type: str, name: str, tags: List[Tag]=None) -> CreateReportGroupOutput:
        r""" Creates a report group. A report group contains a collection of reports. 

        :param self:
        :param tags:   A list of tag key and value pairs associated with this report group.  These tags are available for use by Amazon Web Services services that support CodeBuild report group tags.<br/>exportConfig:   A <code>ReportExportConfig</code> object that contains information about where the report group test results are exported. :<br/>type:   The type of report group. <br/>name:   The name of the report group. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>s3Destination</i>  A <code>S3ReportExportConfig</code> object that contains information about the S3 bucket where the run of a report is exported. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>s3Destination</b>:  A <code>S3ReportExportConfig</code> object that contains information about the S3 bucket where the run of a report is exported. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>exportConfigType</i>  The export configuration type. Valid values are:  <ul> <li>  <code>S3</code>: The report results are exported to an S3 bucket.  </li> <li>  <code>NO_EXPORT</code>: The report results are not exported.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>encryptionDisabled</i>  A boolean value that specifies if the results of a report are encrypted. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>encryptionKey</i>  The encryption key for the report's encrypted raw data. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>packaging</i>  The type of build output artifact to create. Valid values include:  <ul> <li>  <code>NONE</code>: CodeBuild creates the raw data in the output bucket. This is the default if packaging is not specified.  </li> <li>  <code>ZIP</code>: CodeBuild creates a ZIP file with the raw data in the output bucket.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>path</i>  The path to the exported report's raw data results. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>bucketOwner</i> The Amazon Web Services account identifier of the owner of the Amazon S3 bucket. This allows report data to be exported to an Amazon S3 bucket that is owned by an account other than the account running the build.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>bucket</i>  The name of the S3 bucket where the raw data of a report are exported. <br/>
        :return: reportGroup:   Information about the report group that was created. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the report group. This property is read-only. This can be one of the following values: <dl> <dt>ACTIVE</dt> <dd> The report group is active. </dd> <dt>DELETING</dt> <dd> The report group is in the process of being deleted. </dd> </dl><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> A list of tag key and value pairs associated with this report group.  These tags are available for use by Amazon Web Services services that support CodeBuild report group tags.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastModified</i> The date and time this <code>ReportGroup</code> was last modified. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>created</i> The date and time this <code>ReportGroup</code> was created. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>exportConfig</i> Information about the destination where the raw data of this <code>ReportGroup</code> is exported. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>exportConfig</b>: Information about the destination where the raw data of this <code>ReportGroup</code> is exported. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of the <code>ReportGroup</code>. This can be one of the following values: <dl> <dt>CODE_COVERAGE</dt> <dd> The report group contains code coverage reports. </dd> <dt>TEST</dt> <dd> The report group contains test reports. </dd> </dl><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the <code>ReportGroup</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The ARN of the <code>ReportGroup</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>exportConfigType</i>  The export configuration type. Valid values are:  <ul> <li>  <code>S3</code>: The report results are exported to an S3 bucket.  </li> <li>  <code>NO_EXPORT</code>: The report results are not exported.  </li> </ul><br/> A <code>S3ReportExportConfig</code> object that contains information about the S3 bucket where the run of a report is exported. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>s3Destination</b>:  A <code>S3ReportExportConfig</code> object that contains information about the S3 bucket where the run of a report is exported.         """
        pass

    def create_webhook(self, projectName: str, branchFilter: str=None, filterGroups: List[FilterGroup]=None, buildType: str=None) -> CreateWebhookOutput:
        r"""For an existing CodeBuild build project that has its source code stored in a GitHub or Bitbucket repository, enables CodeBuild to start rebuilding the source code every time a code change is pushed to the repository. <important> If you enable webhooks for an CodeBuild project, and the project is used as a build step in CodePipeline, then two identical builds are created for each commit. One build is triggered through webhooks, and one through CodePipeline. Because billing is on a per-build basis, you are billed for both builds. Therefore, if you are using CodePipeline, we recommend that you disable webhooks in CodeBuild. In the CodeBuild console, clear the Webhook box. For more information, see step 5 in <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/change-project.html#change-project-console">Change a Build Project's Settings</a>. </important>

        :param self:
        :param buildType:  Specifies the type of build this webhook will trigger.<br/>filterGroups:  An array of arrays of <code>WebhookFilter</code> objects used to determine which webhooks are triggered. At least one <code>WebhookFilter</code> in the array must specify <code>EVENT</code> as its <code>type</code>.  For a build to be triggered, at least one filter group in the <code>filterGroups</code> array must pass. For a filter group to pass, each of its filters must pass. <br/>branchFilter:  A regular expression used to determine which repository branches are built when a webhook is triggered. If the name of a branch matches the regular expression, then it is built. If <code>branchFilter</code> is empty, then all branches are built. <note> It is recommended that you use <code>filterGroups</code> instead of <code>branchFilter</code>.  </note><br/>projectName:  The name of the CodeBuild project.<br/>
        :return: webhook:  Information about a webhook that connects repository events to a build project in CodeBuild.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastModifiedSecret</i> A timestamp that indicates the last time a repository's secret token was modified. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>buildType</i> Specifies the type of build this webhook will trigger.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>filterGroups</i> An array of arrays of <code>WebhookFilter</code> objects used to determine which webhooks are triggered. At least one <code>WebhookFilter</code> in the array must specify <code>EVENT</code> as its <code>type</code>.  For a build to be triggered, at least one filter group in the <code>filterGroups</code> array must pass. For a filter group to pass, each of its filters must pass. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>branchFilter</i> A regular expression used to determine which repository branches are built when a webhook is triggered. If the name of a branch matches the regular expression, then it is built. If <code>branchFilter</code> is empty, then all branches are built. <note> It is recommended that you use <code>filterGroups</code> instead of <code>branchFilter</code>.  </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>secret</i> The secret token of the associated repository.  <note> A Bitbucket webhook does not support <code>secret</code>.  </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>payloadUrl</i> The CodeBuild endpoint where webhook events are sent.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>url</i> The URL to the webhook.<br/>        """
        pass

    def delete_build_batch(self, id: str) -> DeleteBuildBatchOutput:
        r"""Deletes a batch build.

        :param self:
        :param id:  The identifier of the batch build to delete.<br/>
        :return: buildsNotDeleted:  An array of <code>BuildNotDeleted</code> objects that specify the builds that could not be deleted.<br/>buildsDeleted:  An array of strings that contain the identifiers of the builds that were deleted.<br/>statusCode:  The status code.<br/>        """
        pass

    def delete_project(self, name: str) -> DeleteProjectOutput:
        r""" Deletes a build project. When you delete a project, its builds are not deleted. 

        :param self:
        :param name:  The name of the build project.<br/>
        :return:         """
        pass

    def delete_report(self, arn: str) -> DeleteReportOutput:
        r""" Deletes a report. 

        :param self:
        :param arn:   The ARN of the report to delete. <br/>
        :return:         """
        pass

    def delete_report_group(self, arn: str, deleteReports: Boolean=None) -> DeleteReportGroupOutput:
        r"""Deletes a report group. Before you delete a report group, you must delete its reports. 

        :param self:
        :param deleteReports:  If <code>true</code>, deletes any reports that belong to a report group before deleting the report group.  If <code>false</code>, you must delete any reports in the report group. Use <a href="https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ListReportsForReportGroup.html">ListReportsForReportGroup</a> to get the reports in a report group. Use <a href="https://docs.aws.amazon.com/codebuild/latest/APIReference/API_DeleteReport.html">DeleteReport</a> to delete the reports. If you call <code>DeleteReportGroup</code> for a report group that contains one or more reports, an exception is thrown. <br/>arn:  The ARN of the report group to delete. <br/>
        :return:         """
        pass

    def delete_resource_policy(self, resourceArn: str) -> DeleteResourcePolicyOutput:
        r""" Deletes a resource policy that is identified by its resource ARN. 

        :param self:
        :param resourceArn:   The ARN of the resource that is associated with the resource policy. <br/>
        :return:         """
        pass

    def delete_source_credentials(self, arn: str) -> DeleteSourceCredentialsOutput:
        r""" Deletes a set of GitHub, GitHub Enterprise, or Bitbucket source credentials. 

        :param self:
        :param arn:   The Amazon Resource Name (ARN) of the token.<br/>
        :return: arn:   The Amazon Resource Name (ARN) of the token. <br/>        """
        pass

    def delete_webhook(self, projectName: str) -> DeleteWebhookOutput:
        r"""For an existing CodeBuild build project that has its source code stored in a GitHub or Bitbucket repository, stops CodeBuild from rebuilding the source code every time a code change is pushed to the repository.

        :param self:
        :param projectName:  The name of the CodeBuild project.<br/>
        :return:         """
        pass

    def describe_code_coverages(self, reportArn: str, nextToken: str=None, maxResults: int=None, sortOrder: str=None, sortBy: str=None, minLineCoveragePercentage: Percentage=None, maxLineCoveragePercentage: Percentage=None) -> DescribeCodeCoveragesOutput:
        r"""Retrieves one or more code coverage reports.

        :param self:
        :param maxLineCoveragePercentage:  The maximum line coverage percentage to report.<br/>minLineCoveragePercentage:  The minimum line coverage percentage to report.<br/>sortBy:  Specifies how the results are sorted. Possible values are: <dl> <dt>FILE_PATH</dt> <dd> The results are sorted by file path. </dd> <dt>LINE_COVERAGE_PERCENTAGE</dt> <dd> The results are sorted by the percentage of lines that are covered. </dd> </dl><br/>sortOrder:  Specifies if the results are sorted in ascending or descending order.<br/>maxResults:  The maximum number of results to return.<br/>nextToken:  The <code>nextToken</code> value returned from a previous call to <code>DescribeCodeCoverages</code>. This specifies the next item to return. To return the beginning of the list, exclude this parameter.<br/>reportArn:   The ARN of the report for which test cases are returned. <br/>
        :return: codeCoverages:  An array of <code>CodeCoverage</code> objects that contain the results.<br/>nextToken:  If there are more items to return, this contains a token that is passed to a subsequent call to <code>DescribeCodeCoverages</code> to retrieve the next set of items.<br/>        """
        pass

    def describe_test_cases(self, reportArn: str, nextToken: str=None, maxResults: int=None, filter: TestCaseFilter=None) -> DescribeTestCasesOutput:
        r""" Returns a list of details about test cases for a report. 

        :param self:
        :param filter:   A <code>TestCaseFilter</code> object used to filter the returned reports. :<br/>maxResults:   The maximum number of paginated test cases returned per response. Use <code>nextToken</code> to iterate pages in the list of returned <code>TestCase</code> objects. The default value is 100. <br/>nextToken:   During a previous call, the maximum number of items that can be returned is the value specified in <code>maxResults</code>. If there more items in the list, then a unique string called a <i>nextToken</i> is returned. To get the next batch of items in the list, call this operation again, adding the next token to the call. To get all of the items in the list, keep calling this operation with each subsequent next token that is returned, until no more next tokens are returned. <br/>reportArn:   The ARN of the report for which test cases are returned. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>keyword</i> A keyword that is used to filter on the <code>name</code> or the <code>prefix</code> of the test cases. Only test cases where the keyword is a substring of the <code>name</code> or the <code>prefix</code> will be returned.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status used to filter test cases. A <code>TestCaseFilter</code> can have one status. Valid values are: <ul> <li>  <code>SUCCEEDED</code>  </li> <li>  <code>FAILED</code>  </li> <li>  <code>ERROR</code>  </li> <li>  <code>SKIPPED</code>  </li> <li>  <code>UNKNOWN</code>  </li> </ul><br/>
        :return: testCases:   The returned list of test cases. <br/>nextToken:   During a previous call, the maximum number of items that can be returned is the value specified in <code>maxResults</code>. If there more items in the list, then a unique string called a <i>nextToken</i> is returned. To get the next batch of items in the list, call this operation again, adding the next token to the call. To get all of the items in the list, keep calling this operation with each subsequent next token that is returned, until no more next tokens are returned. <br/>        """
        pass

    def get_report_group_trend(self, trendField: str, reportGroupArn: str, numOfReports: int=None) -> GetReportGroupTrendOutput:
        r"""Analyzes and accumulates test report values for the specified test reports.

        :param self:
        :param trendField:  The test report value to accumulate. This must be one of the following values: <dl> <dt>Test reports:</dt> <dd> <dl> <dt>DURATION</dt> <dd> Accumulate the test run times for the specified reports. </dd> <dt>PASS_RATE</dt> <dd> Accumulate the percentage of tests that passed for the specified test reports. </dd> <dt>TOTAL</dt> <dd> Accumulate the total number of tests for the specified test reports. </dd> </dl> </dd> </dl> <dl> <dt>Code coverage reports:</dt> <dd> <dl> <dt>BRANCH_COVERAGE</dt> <dd> Accumulate the branch coverage percentages for the specified test reports. </dd> <dt>BRANCHES_COVERED</dt> <dd> Accumulate the branches covered values for the specified test reports. </dd> <dt>BRANCHES_MISSED</dt> <dd> Accumulate the branches missed values for the specified test reports. </dd> <dt>LINE_COVERAGE</dt> <dd> Accumulate the line coverage percentages for the specified test reports. </dd> <dt>LINES_COVERED</dt> <dd> Accumulate the lines covered values for the specified test reports. </dd> <dt>LINES_MISSED</dt> <dd> Accumulate the lines not covered values for the specified test reports. </dd> </dl> </dd> </dl><br/>numOfReports:  The number of reports to analyze. This operation always retrieves the most recent reports. If this parameter is omitted, the most recent 100 reports are analyzed.<br/>reportGroupArn:  The ARN of the report group that contains the reports to analyze.<br/>
        :return: rawData:  An array that contains the raw data for each report.<br/>stats:  Contains the accumulated trend data.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>min</i> Contains the minimum value analyzed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>max</i> Contains the maximum value analyzed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>average</i> Contains the average of all values analyzed.<br/>        """
        pass

    def get_resource_policy(self, resourceArn: str) -> GetResourcePolicyOutput:
        r""" Gets a resource policy that is identified by its resource ARN. 

        :param self:
        :param resourceArn:   The ARN of the resource that is associated with the resource policy. <br/>
        :return: policy:   The resource policy for the resource identified by the input ARN parameter. <br/>        """
        pass

    def import_source_credentials(self, authType: str, serverType: str, token: str, username: str=None, shouldOverwrite: WrapperBoolean=None) -> ImportSourceCredentialsOutput:
        r""" Imports the source repository credentials for an CodeBuild project that has its source code stored in a GitHub, GitHub Enterprise, or Bitbucket repository. 

        :param self:
        :param shouldOverwrite:   Set to <code>false</code> to prevent overwriting the repository source credentials. Set to <code>true</code> to overwrite the repository source credentials. The default value is <code>true</code>. <br/>authType:   The type of authentication used to connect to a GitHub, GitHub Enterprise, or Bitbucket repository. An OAUTH connection is not supported by the API and must be created using the CodeBuild console. <br/>serverType:   The source provider used for this project. <br/>token:   For GitHub or GitHub Enterprise, this is the personal access token. For Bitbucket, this is the app password. <br/>username:   The Bitbucket username when the <code>authType</code> is BASIC_AUTH. This parameter is not valid for other types of source providers or connections. <br/>
        :return: arn:   The Amazon Resource Name (ARN) of the token. <br/>        """
        pass

    def invalidate_project_cache(self, projectName: str) -> InvalidateProjectCacheOutput:
        r"""Resets the cache for a project.

        :param self:
        :param projectName:  The name of the CodeBuild build project that the cache is reset for.<br/>
        :return:         """
        pass

    def list_build_batches(self, filter: BuildBatchFilter=None, maxResults: int=None, sortOrder: str=None, nextToken: str=None) -> ListBuildBatchesOutput:
        r"""Retrieves the identifiers of your build batches in the current region.

        :param self:
        :param nextToken:  The <code>nextToken</code> value returned from a previous call to <code>ListBuildBatches</code>. This specifies the next item to return. To return the beginning of the list, exclude this parameter.<br/>sortOrder:  Specifies the sort order of the returned items. Valid values include: <ul> <li>  <code>ASCENDING</code>: List the batch build identifiers in ascending order by identifier. </li> <li>  <code>DESCENDING</code>: List the batch build identifiers in descending order by identifier. </li> </ul><br/>maxResults:  The maximum number of results to return.<br/>filter:  A <code>BuildBatchFilter</code> object that specifies the filters for the search.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the batch builds to retrieve. Only batch builds that have this status will be retrieved.<br/>
        :return: nextToken:  If there are more items to return, this contains a token that is passed to a subsequent call to <code>ListBuildBatches</code> to retrieve the next set of items.<br/>ids:  An array of strings that contains the batch build identifiers.<br/>        """
        pass

    def list_build_batches_for_project(self, projectName: str=None, filter: BuildBatchFilter=None, maxResults: int=None, sortOrder: str=None, nextToken: str=None) -> ListBuildBatchesForProjectOutput:
        r"""Retrieves the identifiers of the build batches for a specific project.

        :param self:
        :param nextToken:  The <code>nextToken</code> value returned from a previous call to <code>ListBuildBatchesForProject</code>. This specifies the next item to return. To return the beginning of the list, exclude this parameter.<br/>sortOrder:  Specifies the sort order of the returned items. Valid values include: <ul> <li>  <code>ASCENDING</code>: List the batch build identifiers in ascending order by identifier. </li> <li>  <code>DESCENDING</code>: List the batch build identifiers in descending order by identifier. </li> </ul><br/>maxResults:  The maximum number of results to return.<br/>filter:  A <code>BuildBatchFilter</code> object that specifies the filters for the search.:<br/>projectName:  The name of the project.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the batch builds to retrieve. Only batch builds that have this status will be retrieved.<br/>
        :return: nextToken:  If there are more items to return, this contains a token that is passed to a subsequent call to <code>ListBuildBatchesForProject</code> to retrieve the next set of items.<br/>ids:  An array of strings that contains the batch build identifiers.<br/>        """
        pass

    def list_builds(self, sortOrder: str=None, nextToken: str=None) -> ListBuildsOutput:
        r"""Gets a list of build IDs, with each build ID representing a single build.

        :param self:
        :param nextToken:  During a previous call, if there are more than 100 items in the list, only the first 100 items are returned, along with a unique string called a <i>nextToken</i>. To get the next batch of items in the list, call this operation again, adding the next token to the call. To get all of the items in the list, keep calling this operation with each subsequent next token that is returned, until no more next tokens are returned.<br/>sortOrder:  The order to list build IDs. Valid values include: <ul> <li>  <code>ASCENDING</code>: List the build IDs in ascending order by build ID. </li> <li>  <code>DESCENDING</code>: List the build IDs in descending order by build ID. </li> </ul><br/>
        :return: nextToken:  If there are more than 100 items in the list, only the first 100 items are returned, along with a unique string called a <i>nextToken</i>. To get the next batch of items in the list, call this operation again, adding the next token to the call.<br/>ids:  A list of build IDs, with each build ID representing a single build.<br/>        """
        pass

    def list_builds_for_project(self, projectName: str, sortOrder: str=None, nextToken: str=None) -> ListBuildsForProjectOutput:
        r"""Gets a list of build identifiers for the specified build project, with each build identifier representing a single build.

        :param self:
        :param nextToken:  During a previous call, if there are more than 100 items in the list, only the first 100 items are returned, along with a unique string called a <i>nextToken</i>. To get the next batch of items in the list, call this operation again, adding the next token to the call. To get all of the items in the list, keep calling this operation with each subsequent next token that is returned, until no more next tokens are returned.<br/>sortOrder:  The order to list results in. The results are sorted by build number, not the build identifier. Valid values include: <ul> <li>  <code>ASCENDING</code>: List the build IDs in ascending order by build ID. </li> <li>  <code>DESCENDING</code>: List the build IDs in descending order by build ID. </li> </ul> If the project has more than 100 builds, setting the sort order will result in an error. <br/>projectName:  The name of the CodeBuild project.<br/>
        :return: nextToken:  If there are more than 100 items in the list, only the first 100 items are returned, along with a unique string called a <i>nextToken</i>. To get the next batch of items in the list, call this operation again, adding the next token to the call.<br/>ids:  A list of build IDs for the specified build project, with each build ID representing a single build.<br/>        """
        pass

    def list_curated_environment_images(self) -> ListCuratedEnvironmentImagesOutput:
        r"""Gets information about Docker images that are managed by CodeBuild.

        :param self:
        :param 
        :return: platforms:  Information about supported platforms for Docker images that are managed by CodeBuild.<br/>        """
        pass

    def list_projects(self, sortBy: str=None, sortOrder: str=None, nextToken: str=None) -> ListProjectsOutput:
        r"""Gets a list of build project names, with each build project name representing a single build project.

        :param self:
        :param nextToken:  During a previous call, if there are more than 100 items in the list, only the first 100 items are returned, along with a unique string called a <i>nextToken</i>. To get the next batch of items in the list, call this operation again, adding the next token to the call. To get all of the items in the list, keep calling this operation with each subsequent next token that is returned, until no more next tokens are returned.<br/>sortOrder:  The order in which to list build projects. Valid values include: <ul> <li>  <code>ASCENDING</code>: List in ascending order. </li> <li>  <code>DESCENDING</code>: List in descending order. </li> </ul> Use <code>sortBy</code> to specify the criterion to be used to list build project names.<br/>sortBy:  The criterion to be used to list build project names. Valid values include: <ul> <li>  <code>CREATED_TIME</code>: List based on when each build project was created. </li> <li>  <code>LAST_MODIFIED_TIME</code>: List based on when information about each build project was last changed. </li> <li>  <code>NAME</code>: List based on each build project's name. </li> </ul> Use <code>sortOrder</code> to specify in what order to list the build project names based on the preceding criteria.<br/>
        :return: projects:  The list of build project names, with each build project name representing a single build project.<br/>nextToken:  If there are more than 100 items in the list, only the first 100 items are returned, along with a unique string called a <i>nextToken</i>. To get the next batch of items in the list, call this operation again, adding the next token to the call.<br/>        """
        pass

    def list_report_groups(self, sortOrder: str=None, sortBy: str=None, nextToken: str=None, maxResults: int=None) -> ListReportGroupsOutput:
        r""" Gets a list ARNs for the report groups in the current Amazon Web Services account. 

        :param self:
        :param maxResults:   The maximum number of paginated report groups returned per response. Use <code>nextToken</code> to iterate pages in the list of returned <code>ReportGroup</code> objects. The default value is 100. <br/>nextToken:   During a previous call, the maximum number of items that can be returned is the value specified in <code>maxResults</code>. If there more items in the list, then a unique string called a <i>nextToken</i> is returned. To get the next batch of items in the list, call this operation again, adding the next token to the call. To get all of the items in the list, keep calling this operation with each subsequent next token that is returned, until no more next tokens are returned. <br/>sortBy:   The criterion to be used to list build report groups. Valid values include:  <ul> <li>  <code>CREATED_TIME</code>: List based on when each report group was created. </li> <li>  <code>LAST_MODIFIED_TIME</code>: List based on when each report group was last changed. </li> <li>  <code>NAME</code>: List based on each report group's name. </li> </ul><br/>sortOrder:   Used to specify the order to sort the list of returned report groups. Valid values are <code>ASCENDING</code> and <code>DESCENDING</code>. <br/>
        :return: reportGroups:   The list of ARNs for the report groups in the current Amazon Web Services account. <br/>nextToken:   During a previous call, the maximum number of items that can be returned is the value specified in <code>maxResults</code>. If there more items in the list, then a unique string called a <i>nextToken</i> is returned. To get the next batch of items in the list, call this operation again, adding the next token to the call. To get all of the items in the list, keep calling this operation with each subsequent next token that is returned, until no more next tokens are returned. <br/>        """
        pass

    def list_reports(self, sortOrder: str=None, nextToken: str=None, maxResults: int=None, filter: ReportFilter=None) -> ListReportsOutput:
        r""" Returns a list of ARNs for the reports in the current Amazon Web Services account. 

        :param self:
        :param filter:   A <code>ReportFilter</code> object used to filter the returned reports. :<br/>maxResults:   The maximum number of paginated reports returned per response. Use <code>nextToken</code> to iterate pages in the list of returned <code>Report</code> objects. The default value is 100. <br/>nextToken:   During a previous call, the maximum number of items that can be returned is the value specified in <code>maxResults</code>. If there more items in the list, then a unique string called a <i>nextToken</i> is returned. To get the next batch of items in the list, call this operation again, adding the next token to the call. To get all of the items in the list, keep calling this operation with each subsequent next token that is returned, until no more next tokens are returned. <br/>sortOrder:   Specifies the sort order for the list of returned reports. Valid values are:  <ul> <li>  <code>ASCENDING</code>: return reports in chronological order based on their creation date.  </li> <li>  <code>DESCENDING</code>: return reports in the reverse chronological order based on their creation date.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i>  The status used to filter reports. You can filter using one status only. <br/>
        :return: reports:   The list of returned ARNs for the reports in the current Amazon Web Services account. <br/>nextToken:   During a previous call, the maximum number of items that can be returned is the value specified in <code>maxResults</code>. If there more items in the list, then a unique string called a <i>nextToken</i> is returned. To get the next batch of items in the list, call this operation again, adding the next token to the call. To get all of the items in the list, keep calling this operation with each subsequent next token that is returned, until no more next tokens are returned. <br/>        """
        pass

    def list_reports_for_report_group(self, reportGroupArn: str, nextToken: str=None, sortOrder: str=None, maxResults: int=None, filter: ReportFilter=None) -> ListReportsForReportGroupOutput:
        r""" Returns a list of ARNs for the reports that belong to a <code>ReportGroup</code>. 

        :param self:
        :param filter:   A <code>ReportFilter</code> object used to filter the returned reports. :<br/>maxResults:   The maximum number of paginated reports in this report group returned per response. Use <code>nextToken</code> to iterate pages in the list of returned <code>Report</code> objects. The default value is 100. <br/>sortOrder:   Use to specify whether the results are returned in ascending or descending order. <br/>nextToken:   During a previous call, the maximum number of items that can be returned is the value specified in <code>maxResults</code>. If there more items in the list, then a unique string called a <i>nextToken</i> is returned. To get the next batch of items in the list, call this operation again, adding the next token to the call. To get all of the items in the list, keep calling this operation with each subsequent next token that is returned, until no more next tokens are returned. <br/>reportGroupArn:   The ARN of the report group for which you want to return report ARNs. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i>  The status used to filter reports. You can filter using one status only. <br/>
        :return: reports:   The list of report ARNs. <br/>nextToken:   During a previous call, the maximum number of items that can be returned is the value specified in <code>maxResults</code>. If there more items in the list, then a unique string called a <i>nextToken</i> is returned. To get the next batch of items in the list, call this operation again, adding the next token to the call. To get all of the items in the list, keep calling this operation with each subsequent next token that is returned, until no more next tokens are returned. <br/>        """
        pass

    def list_shared_projects(self, sortBy: str=None, sortOrder: str=None, maxResults: int=None, nextToken: str=None) -> ListSharedProjectsOutput:
        r""" Gets a list of projects that are shared with other Amazon Web Services accounts or users. 

        :param self:
        :param nextToken:   During a previous call, the maximum number of items that can be returned is the value specified in <code>maxResults</code>. If there more items in the list, then a unique string called a <i>nextToken</i> is returned. To get the next batch of items in the list, call this operation again, adding the next token to the call. To get all of the items in the list, keep calling this operation with each subsequent next token that is returned, until no more next tokens are returned. <br/>maxResults:   The maximum number of paginated shared build projects returned per response. Use <code>nextToken</code> to iterate pages in the list of returned <code>Project</code> objects. The default value is 100. <br/>sortOrder:  The order in which to list shared build projects. Valid values include: <ul> <li>  <code>ASCENDING</code>: List in ascending order. </li> <li>  <code>DESCENDING</code>: List in descending order. </li> </ul><br/>sortBy:   The criterion to be used to list build projects shared with the current Amazon Web Services account or user. Valid values include:  <ul> <li>  <code>ARN</code>: List based on the ARN.  </li> <li>  <code>MODIFIED_TIME</code>: List based on when information about the shared project was last changed.  </li> </ul><br/>
        :return: projects:   The list of ARNs for the build projects shared with the current Amazon Web Services account or user. <br/>nextToken:   During a previous call, the maximum number of items that can be returned is the value specified in <code>maxResults</code>. If there more items in the list, then a unique string called a <i>nextToken</i> is returned. To get the next batch of items in the list, call this operation again, adding the next token to the call. To get all of the items in the list, keep calling this operation with each subsequent next token that is returned, until no more next tokens are returned. <br/>        """
        pass

    def list_shared_report_groups(self, sortOrder: str=None, sortBy: str=None, nextToken: str=None, maxResults: int=None) -> ListSharedReportGroupsOutput:
        r""" Gets a list of report groups that are shared with other Amazon Web Services accounts or users. 

        :param self:
        :param maxResults:   The maximum number of paginated shared report groups per response. Use <code>nextToken</code> to iterate pages in the list of returned <code>ReportGroup</code> objects. The default value is 100. <br/>nextToken:   During a previous call, the maximum number of items that can be returned is the value specified in <code>maxResults</code>. If there more items in the list, then a unique string called a <i>nextToken</i> is returned. To get the next batch of items in the list, call this operation again, adding the next token to the call. To get all of the items in the list, keep calling this operation with each subsequent next token that is returned, until no more next tokens are returned. <br/>sortBy:   The criterion to be used to list report groups shared with the current Amazon Web Services account or user. Valid values include:  <ul> <li>  <code>ARN</code>: List based on the ARN.  </li> <li>  <code>MODIFIED_TIME</code>: List based on when information about the shared report group was last changed.  </li> </ul><br/>sortOrder:  The order in which to list shared report groups. Valid values include: <ul> <li>  <code>ASCENDING</code>: List in ascending order. </li> <li>  <code>DESCENDING</code>: List in descending order. </li> </ul><br/>
        :return: reportGroups:   The list of ARNs for the report groups shared with the current Amazon Web Services account or user. <br/>nextToken:   During a previous call, the maximum number of items that can be returned is the value specified in <code>maxResults</code>. If there more items in the list, then a unique string called a <i>nextToken</i> is returned. To get the next batch of items in the list, call this operation again, adding the next token to the call. To get all of the items in the list, keep calling this operation with each subsequent next token that is returned, until no more next tokens are returned. <br/>        """
        pass

    def list_source_credentials(self) -> ListSourceCredentialsOutput:
        r""" Returns a list of <code>SourceCredentialsInfo</code> objects. 

        :param self:
        :param 
        :return: sourceCredentialsInfos:   A list of <code>SourceCredentialsInfo</code> objects. Each <code>SourceCredentialsInfo</code> object includes the authentication type, token ARN, and type of source provider for one set of credentials. <br/>        """
        pass

    def put_resource_policy(self, resourceArn: str, policy: str) -> PutResourcePolicyOutput:
        r""" Stores a resource policy for the ARN of a <code>Project</code> or <code>ReportGroup</code> object. 

        :param self:
        :param resourceArn:   The ARN of the <code>Project</code> or <code>ReportGroup</code> resource you want to associate with a resource policy. <br/>policy:   A JSON-formatted resource policy. For more information, see <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/project-sharing.html#project-sharing-share">Sharing a Project</a> and <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/report-groups-sharing.html#report-groups-sharing-share">Sharing a Report Group</a> in the <i>CodeBuild User Guide</i>. <br/>
        :return: resourceArn:   The ARN of the <code>Project</code> or <code>ReportGroup</code> resource that is associated with a resource policy. <br/>        """
        pass

    def retry_build(self, id: str=None, idempotencyToken: str=None) -> RetryBuildOutput:
        r"""Restarts a build.

        :param self:
        :param idempotencyToken:  A unique, case sensitive identifier you provide to ensure the idempotency of the <code>RetryBuild</code> request. The token is included in the <code>RetryBuild</code> request and is valid for five minutes. If you repeat the <code>RetryBuild</code> request with the same token, but change a parameter, CodeBuild returns a parameter mismatch error.<br/>id:  Specifies the identifier of the build to restart.<br/>
        :return: build:  Information about a build.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>buildBatchArn</i> The ARN of the batch build that this build is a member of, if applicable.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>debugSession</i> Contains information about the debug session for this build.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>debugSession</b>: Contains information about the debug session for this build.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>fileSystemLocations</i>  An array of <code>ProjectFileSystemLocation</code> objects for a CodeBuild build project. A <code>ProjectFileSystemLocation</code> object specifies the <code>identifier</code>, <code>location</code>, <code>mountOptions</code>, <code>mountPoint</code>, and <code>type</code> of a file system created using Amazon Elastic File System. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>reportArns</i>  An array of the ARNs associated with this build's reports. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>exportedEnvironmentVariables</i> A list of exported environment variables for this build. Exported environment variables are used in conjunction with CodePipeline to export environment variables from the current build stage to subsequent stages in the pipeline. For more information, see <a href="https://docs.aws.amazon.com/codepipeline/latest/userguide/actions-variables.html">Working with variables</a> in the <i>CodePipeline User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>encryptionKey</i> The Key Management Service customer master key (CMK) to be used for encrypting the build output artifacts. <note>  You can use a cross-account KMS key to encrypt the build output artifacts if your service role has permission to that key.  </note> You can specify either the Amazon Resource Name (ARN) of the CMK or, if available, the CMK's alias (using the format <code>alias/&lt;alias-name&gt;</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>networkInterface</i> Describes a network interface.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>networkInterface</b>: Describes a network interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>vpcConfig</i> If your CodeBuild project accesses resources in an Amazon VPC, you provide this parameter that identifies the VPC ID and the list of security group IDs and subnet IDs. The security groups and subnets must belong to the same VPC. You must provide at least one security group and one subnet ID.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>vpcConfig</b>: If your CodeBuild project accesses resources in an Amazon VPC, you provide this parameter that identifies the VPC ID and the list of security group IDs and subnet IDs. The security groups and subnets must belong to the same VPC. You must provide at least one security group and one subnet ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>initiator</i> The entity that started the build. Valid values include: <ul> <li> If CodePipeline started the build, the pipeline's name (for example, <code>codepipeline/my-demo-pipeline</code>). </li> <li> If an Identity and Access Management user started the build, the user's name (for example, <code>MyUserName</code>). </li> <li> If the Jenkins plugin for CodeBuild started the build, the string <code>CodeBuild-Jenkins-Plugin</code>. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>buildComplete</i> Whether the build is complete. True if complete; otherwise, false.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>queuedTimeoutInMinutes</i>  The number of minutes a build is allowed to be queued before it times out. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>timeoutInMinutes</i> How long, in minutes, for CodeBuild to wait before timing out this build if it does not get marked as completed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>logs</i> Information about the build's logs in CloudWatch Logs.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>logs</b>: Information about the build's logs in CloudWatch Logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>serviceRole</i> The name of a service role used for this build.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>environment</i> Information about the build environment for this build.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>environment</b>: Information about the build environment for this build.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>cache</i> Information about the cache for the build.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>cache</b>: Information about the cache for the build.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>secondaryArtifacts</i>  An array of <code>ProjectArtifacts</code> objects. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>artifacts</i> Information about the output artifacts for the build.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>artifacts</b>: Information about the output artifacts for the build.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>secondarySourceVersions</i>  An array of <code>ProjectSourceVersion</code> objects. Each <code>ProjectSourceVersion</code> must be one of:  <ul> <li> For CodeCommit: the commit ID, branch, or Git tag to use. </li> <li> For GitHub: the commit ID, pull request ID, branch name, or tag name that corresponds to the version of the source code you want to build. If a pull request ID is specified, it must use the format <code>pr/pull-request-ID</code> (for example, <code>pr/25</code>). If a branch name is specified, the branch's HEAD commit ID is used. If not specified, the default branch's HEAD commit ID is used. </li> <li> For Bitbucket: the commit ID, branch name, or tag name that corresponds to the version of the source code you want to build. If a branch name is specified, the branch's HEAD commit ID is used. If not specified, the default branch's HEAD commit ID is used. </li> <li> For Amazon S3: the version ID of the object that represents the build input ZIP file to use. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>secondarySources</i>  An array of <code>ProjectSource</code> objects. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>source</i> Information about the source code to be built.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>source</b>: Information about the source code to be built.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>phases</i> Information about all previous build phases that are complete and information about any current build phase that is not yet complete.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>projectName</i> The name of the CodeBuild project.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resolvedSourceVersion</i>  An identifier for the version of this build's source code.  <ul> <li>  For CodeCommit, GitHub, GitHub Enterprise, and BitBucket, the commit ID.  </li> <li>  For CodePipeline, the source revision provided by CodePipeline.  </li> <li>  For Amazon S3, this does not apply.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>sourceVersion</i> Any version identifier for the version of the source code to be built. If <code>sourceVersion</code> is specified at the project level, then this <code>sourceVersion</code> (at the build level) takes precedence.   For more information, see <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/sample-source-version.html">Source Version Sample with CodeBuild</a> in the <i>CodeBuild User Guide</i>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>buildStatus</i> The current status of the build. Valid values include: <ul> <li>  <code>FAILED</code>: The build failed. </li> <li>  <code>FAULT</code>: The build faulted. </li> <li>  <code>IN_PROGRESS</code>: The build is still in progress. </li> <li>  <code>STOPPED</code>: The build stopped. </li> <li>  <code>SUCCEEDED</code>: The build succeeded. </li> <li>  <code>TIMED_OUT</code>: The build timed out. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>currentPhase</i> The current build phase.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>endTime</i> When the build process ended, expressed in Unix time format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>startTime</i> When the build process started, expressed in Unix time format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>buildNumber</i> The number of the build. For each project, the <code>buildNumber</code> of its first build is <code>1</code>. The <code>buildNumber</code> of each subsequent build is incremented by <code>1</code>. If a build is deleted, the <code>buildNumber</code> of other builds does not change.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the build.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The unique ID for the build.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>gitCloneDepth</i> Information about the Git clone depth for the build project.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i> Information about the location of the source code to be built. Valid values include: <ul> <li> For source code settings that are specified in the source action of a pipeline in CodePipeline, <code>location</code> should not be specified. If it is specified, CodePipeline ignores it. This is because CodePipeline uses the settings in a pipeline's source action instead of this value. </li> <li> For source code in an CodeCommit repository, the HTTPS clone URL to the repository that contains the source code and the buildspec file (for example, <code>https://git-codecommit.&lt;region-ID&gt;.amazonaws.com/v1/repos/&lt;repo-name&gt;</code>). </li> <li> For source code in an Amazon S3 input bucket, one of the following.  <ul> <li> The path to the ZIP file that contains the source code (for example, <code>&lt;bucket-name&gt;/&lt;path&gt;/&lt;object-name&gt;.zip</code>).  </li> <li> The path to the folder that contains the source code (for example, <code>&lt;bucket-name&gt;/&lt;path-to-source-code&gt;/&lt;folder&gt;/</code>).  </li> </ul> </li> <li> For source code in a GitHub repository, the HTTPS clone URL to the repository that contains the source and the buildspec file. You must connect your account to your GitHub account. Use the CodeBuild console to start creating a build project. When you use the console to connect (or reconnect) with GitHub, on the GitHub <b>Authorize application</b> page, for <b>Organization access</b>, choose <b>Request access</b> next to each repository you want to allow CodeBuild to have access to, and then choose <b>Authorize application</b>. (After you have connected to your GitHub account, you do not need to finish creating the build project. You can leave the CodeBuild console.) To instruct CodeBuild to use this connection, in the <code>source</code> object, set the <code>auth</code> object's <code>type</code> value to <code>OAUTH</code>. </li> <li> For source code in a Bitbucket repository, the HTTPS clone URL to the repository that contains the source and the buildspec file. You must connect your Amazon Web Services account to your Bitbucket account. Use the CodeBuild console to start creating a build project. When you use the console to connect (or reconnect) with Bitbucket, on the Bitbucket <b>Confirm access to your account</b> page, choose <b>Grant access</b>. (After you have connected to your Bitbucket account, you do not need to finish creating the build project. You can leave the CodeBuild console.) To instruct CodeBuild to use this connection, in the <code>source</code> object, set the <code>auth</code> object's <code>type</code> value to <code>OAUTH</code>. </li> </ul>  If you specify <code>CODEPIPELINE</code> for the <code>Type</code> property, don't specify this property. For all of the other types, you must specify <code>Location</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of repository that contains the source code to be built. Valid values include: <ul> <li>  <code>BITBUCKET</code>: The source code is in a Bitbucket repository. </li> <li>  <code>CODECOMMIT</code>: The source code is in an CodeCommit repository. </li> <li>  <code>CODEPIPELINE</code>: The source code settings are specified in the source action of a pipeline in CodePipeline. </li> <li>  <code>GITHUB</code>: The source code is in a GitHub or GitHub Enterprise Cloud repository. </li> <li>  <code>GITHUB_ENTERPRISE</code>: The source code is in a GitHub Enterprise Server repository. </li> <li>  <code>NO_SOURCE</code>: The project does not have input source code. </li> <li>  <code>S3</code>: The source code is in an Amazon S3 bucket. </li> </ul><br/> Information about the Git submodules configuration for the build project. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>gitSubmodulesConfig</b>:  Information about the Git submodules configuration for the build project. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>artifactIdentifier</i>  An identifier for this artifact definition. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>encryptionDisabled</i>  Information that tells you if encryption for build artifacts is disabled. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>overrideArtifactName</i>  If this flag is set, a name specified in the buildspec file overrides the artifact name. The name specified in a buildspec file is calculated at build time and uses the Shell Command Language. For example, you can append a date and time to your artifact name so that it is always unique. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>md5sum</i> The MD5 hash of the build artifact. You can use this hash along with a checksum tool to confirm file integrity and authenticity. <note> This value is available only if the build project's <code>packaging</code> value is set to <code>ZIP</code>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>sha256sum</i> The SHA-256 hash of the build artifact. You can use this hash along with a checksum tool to confirm file integrity and authenticity. <note> This value is available only if the build project's <code>packaging</code> value is set to <code>ZIP</code>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i> Information about the location of the build artifacts.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>modes</i> An array of strings that specify the local cache modes. You can use one or more local cache modes at the same time. This is only used for <code>LOCAL</code> cache types. Possible values are: <dl> <dt>LOCAL_SOURCE_CACHE</dt> <dd> Caches Git metadata for primary and secondary sources. After the cache is created, subsequent builds pull only the change between commits. This mode is a good choice for projects with a clean working directory and a source that is a large Git repository. If you choose this option and your project does not use a Git repository (GitHub, GitHub Enterprise, or Bitbucket), the option is ignored.  </dd> <dt>LOCAL_DOCKER_LAYER_CACHE</dt> <dd> Caches existing Docker layers. This mode is a good choice for projects that build or pull large Docker images. It can prevent the performance issues caused by pulling large Docker images down from the network.  <note> <ul> <li> You can use a Docker layer cache in the Linux environment only.  </li> <li> The <code>privileged</code> flag must be set so that your project has the required Docker permissions.  </li> <li> You should consider the security implications before you use a Docker layer cache.  </li> </ul> </note> </dd> <dt>LOCAL_CUSTOM_CACHE</dt> <dd> Caches directories you specify in the buildspec file. This mode is a good choice if your build scenario is not suited to one of the other three local cache modes. If you use a custom cache:  <ul> <li> Only directories can be specified for caching. You cannot specify individual files.  </li> <li> Symlinks are used to reference cached directories.  </li> <li> Cached directories are linked to your build before it downloads its project sources. Cached items are overridden if a source item has the same name. Directories are specified using cache paths in the buildspec file.  </li> </ul> </dd> </dl><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i> Information about the cache location:  <ul> <li>  <code>NO_CACHE</code> or <code>LOCAL</code>: This value is ignored. </li> <li>  <code>S3</code>: This is the S3 bucket name/prefix. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of cache used by the build project. Valid values include: <ul> <li>  <code>NO_CACHE</code>: The build project does not use any cache. </li> <li>  <code>S3</code>: The build project reads and writes from and to S3. </li> <li>  <code>LOCAL</code>: The build project stores a cache locally on a build host that is only available to that build host. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>certificate</i> The ARN of the Amazon S3 bucket, path prefix, and object key that contains the PEM-encoded certificate for the build project. For more information, see <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/create-project-cli.html#cli.environment.certificate">certificate</a> in the <i>CodeBuild User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>privilegedMode</i> Enables running the Docker daemon inside a Docker container. Set to true only if the build project is used to build Docker images. Otherwise, a build that attempts to interact with the Docker daemon fails. The default setting is <code>false</code>. You can initialize the Docker daemon during the install phase of your build by adding one of the following sets of commands to the install phase of your buildspec file: If the operating system's base image is Ubuntu Linux:  <code>- nohup /usr/local/bin/dockerd --host=unix:///var/run/docker.sock --host=tcp://0.0.0.0:2375 --storage-driver=overlay&amp;</code>   <code>- timeout 15 sh -c "until docker info; do echo .; sleep 1; done"</code>  If the operating system's base image is Alpine Linux and the previous command does not work, add the <code>-t</code> argument to <code>timeout</code>:  <code>- nohup /usr/local/bin/dockerd --host=unix:///var/run/docker.sock --host=tcp://0.0.0.0:2375 --storage-driver=overlay&amp;</code>   <code>- timeout -t 15 sh -c "until docker info; do echo .; sleep 1; done"</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>environmentVariables</i> A set of environment variables to make available to builds for this build project.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>computeType</i> Information about the compute resources the build project uses. Available values include: <ul> <li>  <code>BUILD_GENERAL1_SMALL</code>: Use up to 3 GB memory and 2 vCPUs for builds. </li> <li>  <code>BUILD_GENERAL1_MEDIUM</code>: Use up to 7 GB memory and 4 vCPUs for builds. </li> <li>  <code>BUILD_GENERAL1_LARGE</code>: Use up to 16 GB memory and 8 vCPUs for builds, depending on your environment type. </li> <li>  <code>BUILD_GENERAL1_2XLARGE</code>: Use up to 145 GB memory, 72 vCPUs, and 824 GB of SSD storage for builds. This compute type supports Docker images up to 100 GB uncompressed. </li> </ul>  If you use <code>BUILD_GENERAL1_LARGE</code>:  <ul> <li>  For environment type <code>LINUX_CONTAINER</code>, you can use up to 15 GB memory and 8 vCPUs for builds.  </li> <li>  For environment type <code>LINUX_GPU_CONTAINER</code>, you can use up to 255 GB memory, 32 vCPUs, and 4 NVIDIA Tesla V100 GPUs for builds. </li> <li>  For environment type <code>ARM_CONTAINER</code>, you can use up to 16 GB memory and 8 vCPUs on ARM-based processors for builds. </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html">Build Environment Compute Types</a> in the <i>CodeBuild User Guide.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>image</i> The image tag or image digest that identifies the Docker image to use for this build project. Use the following formats: <ul> <li> For an image tag: <code>&lt;registry&gt;/&lt;repository&gt;:&lt;tag&gt;</code>. For example, in the Docker repository that CodeBuild uses to manage its Docker images, this would be <code>aws/codebuild/standard:4.0</code>.  </li> <li> For an image digest: <code>&lt;registry&gt;/&lt;repository&gt;@&lt;digest&gt;</code>. For example, to specify an image with the digest "sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf," use <code>&lt;registry&gt;/&lt;repository&gt;@sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf</code>. </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-available.html">Docker images provided by CodeBuild</a> in the <i>CodeBuild user guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of build environment to use for related builds. <ul> <li> The environment type <code>ARM_CONTAINER</code> is available only in regions US East (N. Virginia), US East (Ohio), US West (Oregon), EU (Ireland), Asia Pacific (Mumbai), Asia Pacific (Tokyo), Asia Pacific (Sydney), and EU (Frankfurt). </li> <li> The environment type <code>LINUX_CONTAINER</code> with compute type <code>build.general1.2xlarge</code> is available only in regions US East (N. Virginia), US East (Ohio), US West (Oregon), Canada (Central), EU (Ireland), EU (London), EU (Frankfurt), Asia Pacific (Tokyo), Asia Pacific (Seoul), Asia Pacific (Singapore), Asia Pacific (Sydney), China (Beijing), and China (Ningxia). </li> <li> The environment type <code>LINUX_GPU_CONTAINER</code> is available only in regions US East (N. Virginia), US East (Ohio), US West (Oregon), Canada (Central), EU (Ireland), EU (London), EU (Frankfurt), Asia Pacific (Tokyo), Asia Pacific (Seoul), Asia Pacific (Singapore), Asia Pacific (Sydney) , China (Beijing), and China (Ningxia). </li> </ul> <ul> <li> The environment types <code>WINDOWS_CONTAINER</code> and <code>WINDOWS_SERVER_2019_CONTAINER</code> are available only in regions US East (N. Virginia), US East (Ohio), US West (Oregon), and EU (Ireland). </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html">Build environment compute types</a> in the <i>CodeBuild user guide</i>.<br/> The credentials for access to a private registry.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>registryCredential</b>:  The credentials for access to a private registry.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>s3LogsArn</i>  The ARN of S3 logs for a build project. Its format is <code>arn:${Partition}:s3:::${BucketName}/${ObjectName}</code>. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazons3.html#amazons3-resources-for-iam-policies">Resources Defined by Amazon S3</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>cloudWatchLogsArn</i>  The ARN of CloudWatch Logs for a build project. Its format is <code>arn:${Partition}:logs:${Region}:${Account}:log-group:${LogGroupName}:log-stream:${LogStreamName}</code>. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazoncloudwatchlogs.html#amazoncloudwatchlogs-resources-for-iam-policies">Resources Defined by CloudWatch Logs</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>s3DeepLink</i>  The URL to a build log in an S3 bucket. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>deepLink</i> The URL to an individual build log in CloudWatch Logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>streamName</i> The name of the CloudWatch Logs stream for the build logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>groupName</i> The name of the CloudWatch Logs group for the build logs.<br/> Information about CloudWatch Logs for a build project. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>cloudWatchLogs</b>:  Information about CloudWatch Logs for a build project. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>securityGroupIds</i> A list of one or more security groups IDs in your Amazon VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>subnets</i> A list of one or more subnet IDs in your Amazon VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>vpcId</i> The ID of the Amazon VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>networkInterfaceId</i> The ID of the network interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>subnetId</i> The ID of the subnet.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>sessionTarget</i> Contains the identifier of the Session Manager session used for the build. To work with the paused build, you open this session to examine, control, and resume the build.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>sessionEnabled</i> Specifies if session debugging is enabled for this build.<br/>        """
        pass

    def retry_build_batch(self, id: str=None, idempotencyToken: str=None, retryType: str=None) -> RetryBuildBatchOutput:
        r"""Restarts a failed batch build. Only batch builds that have failed can be retried.

        :param self:
        :param retryType:  Specifies the type of retry to perform.<br/>idempotencyToken:  A unique, case sensitive identifier you provide to ensure the idempotency of the <code>RetryBuildBatch</code> request. The token is included in the <code>RetryBuildBatch</code> request and is valid for five minutes. If you repeat the <code>RetryBuildBatch</code> request with the same token, but change a parameter, CodeBuild returns a parameter mismatch error.<br/>id:  Specifies the identifier of the batch build to restart.<br/>
        :return: buildBatch:  Contains information about a batch build.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>debugSessionEnabled</i> Specifies if session debugging is enabled for this batch build. For more information, see <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/session-manager.html">Viewing a running build in Session Manager</a>. Batch session debugging is not supported for matrix batch builds.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>buildGroups</i> An array of <code>BuildGroup</code> objects that define the build groups for the batch build.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>buildBatchConfig</i> Contains configuration information about a batch build project.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>buildBatchConfig</b>: Contains configuration information about a batch build project.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>fileSystemLocations</i> An array of <code>ProjectFileSystemLocation</code> objects for the batch build project. A <code>ProjectFileSystemLocation</code> object specifies the <code>identifier</code>, <code>location</code>, <code>mountOptions</code>, <code>mountPoint</code>, and <code>type</code> of a file system created using Amazon Elastic File System. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>buildBatchNumber</i> The number of the batch build. For each project, the <code>buildBatchNumber</code> of its first batch build is <code>1</code>. The <code>buildBatchNumber</code> of each subsequent batch build is incremented by <code>1</code>. If a batch build is deleted, the <code>buildBatchNumber</code> of other batch builds does not change.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>encryptionKey</i> The Key Management Service customer master key (CMK) to be used for encrypting the batch build output artifacts. <note> You can use a cross-account KMS key to encrypt the build output artifacts if your service role has permission to that key.  </note> You can specify either the Amazon Resource Name (ARN) of the CMK or, if available, the CMK's alias (using the format <code>alias/&lt;alias-name&gt;</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>vpcConfig</i> Information about the VPC configuration that CodeBuild accesses.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>vpcConfig</b>: Information about the VPC configuration that CodeBuild accesses.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>initiator</i> The entity that started the batch build. Valid values include: <ul> <li> If CodePipeline started the build, the pipeline's name (for example, <code>codepipeline/my-demo-pipeline</code>). </li> <li> If an Identity and Access Management user started the build, the user's name. </li> <li> If the Jenkins plugin for CodeBuild started the build, the string <code>CodeBuild-Jenkins-Plugin</code>. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>complete</i> Indicates if the batch build is complete.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>queuedTimeoutInMinutes</i> Specifies the amount of time, in minutes, that the batch build is allowed to be queued before it times out.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>buildTimeoutInMinutes</i> Specifies the maximum amount of time, in minutes, that the build in a batch must be completed in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>logConfig</i>  Information about logs for a build project. These can be logs in CloudWatch Logs, built in a specified S3 bucket, or both. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>logConfig</b>:  Information about logs for a build project. These can be logs in CloudWatch Logs, built in a specified S3 bucket, or both. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>serviceRole</i> The name of a service role used for builds in the batch.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>environment</i> Information about the build environment of the build project.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>environment</b>: Information about the build environment of the build project.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>cache</i> Information about the cache for the build project.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>cache</b>: Information about the cache for the build project.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>secondaryArtifacts</i> An array of <code>BuildArtifacts</code> objects the define the build artifacts for this batch build.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>artifacts</i> A <code>BuildArtifacts</code> object the defines the build artifacts for this batch build.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>artifacts</b>: A <code>BuildArtifacts</code> object the defines the build artifacts for this batch build.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>secondarySourceVersions</i> An array of <code>ProjectSourceVersion</code> objects. Each <code>ProjectSourceVersion</code> must be one of:  <ul> <li> For CodeCommit: the commit ID, branch, or Git tag to use. </li> <li> For GitHub: the commit ID, pull request ID, branch name, or tag name that corresponds to the version of the source code you want to build. If a pull request ID is specified, it must use the format <code>pr/pull-request-ID</code> (for example, <code>pr/25</code>). If a branch name is specified, the branch's HEAD commit ID is used. If not specified, the default branch's HEAD commit ID is used. </li> <li> For Bitbucket: the commit ID, branch name, or tag name that corresponds to the version of the source code you want to build. If a branch name is specified, the branch's HEAD commit ID is used. If not specified, the default branch's HEAD commit ID is used. </li> <li> For Amazon S3: the version ID of the object that represents the build input ZIP file to use. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>secondarySources</i> An array of <code>ProjectSource</code> objects that define the sources for the batch build.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>source</i> Information about the build input source code for the build project.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>source</b>: Information about the build input source code for the build project.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>phases</i> An array of <code>BuildBatchPhase</code> objects the specify the phases of the batch build.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>projectName</i> The name of the batch build project.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resolvedSourceVersion</i> The identifier of the resolved version of this batch build's source code. <ul> <li> For CodeCommit, GitHub, GitHub Enterprise, and BitBucket, the commit ID. </li> <li> For CodePipeline, the source revision provided by CodePipeline. </li> <li> For Amazon S3, this does not apply. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>sourceVersion</i> The identifier of the version of the source code to be built.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>buildBatchStatus</i> The status of the batch build.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>currentPhase</i> The current phase of the batch build.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>endTime</i> The date and time that the batch build ended.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>startTime</i> The date and time that the batch build started.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The ARN of the batch build.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The identifier of the batch build.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>gitCloneDepth</i> Information about the Git clone depth for the build project.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i> Information about the location of the source code to be built. Valid values include: <ul> <li> For source code settings that are specified in the source action of a pipeline in CodePipeline, <code>location</code> should not be specified. If it is specified, CodePipeline ignores it. This is because CodePipeline uses the settings in a pipeline's source action instead of this value. </li> <li> For source code in an CodeCommit repository, the HTTPS clone URL to the repository that contains the source code and the buildspec file (for example, <code>https://git-codecommit.&lt;region-ID&gt;.amazonaws.com/v1/repos/&lt;repo-name&gt;</code>). </li> <li> For source code in an Amazon S3 input bucket, one of the following.  <ul> <li> The path to the ZIP file that contains the source code (for example, <code>&lt;bucket-name&gt;/&lt;path&gt;/&lt;object-name&gt;.zip</code>).  </li> <li> The path to the folder that contains the source code (for example, <code>&lt;bucket-name&gt;/&lt;path-to-source-code&gt;/&lt;folder&gt;/</code>).  </li> </ul> </li> <li> For source code in a GitHub repository, the HTTPS clone URL to the repository that contains the source and the buildspec file. You must connect your account to your GitHub account. Use the CodeBuild console to start creating a build project. When you use the console to connect (or reconnect) with GitHub, on the GitHub <b>Authorize application</b> page, for <b>Organization access</b>, choose <b>Request access</b> next to each repository you want to allow CodeBuild to have access to, and then choose <b>Authorize application</b>. (After you have connected to your GitHub account, you do not need to finish creating the build project. You can leave the CodeBuild console.) To instruct CodeBuild to use this connection, in the <code>source</code> object, set the <code>auth</code> object's <code>type</code> value to <code>OAUTH</code>. </li> <li> For source code in a Bitbucket repository, the HTTPS clone URL to the repository that contains the source and the buildspec file. You must connect your Amazon Web Services account to your Bitbucket account. Use the CodeBuild console to start creating a build project. When you use the console to connect (or reconnect) with Bitbucket, on the Bitbucket <b>Confirm access to your account</b> page, choose <b>Grant access</b>. (After you have connected to your Bitbucket account, you do not need to finish creating the build project. You can leave the CodeBuild console.) To instruct CodeBuild to use this connection, in the <code>source</code> object, set the <code>auth</code> object's <code>type</code> value to <code>OAUTH</code>. </li> </ul>  If you specify <code>CODEPIPELINE</code> for the <code>Type</code> property, don't specify this property. For all of the other types, you must specify <code>Location</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of repository that contains the source code to be built. Valid values include: <ul> <li>  <code>BITBUCKET</code>: The source code is in a Bitbucket repository. </li> <li>  <code>CODECOMMIT</code>: The source code is in an CodeCommit repository. </li> <li>  <code>CODEPIPELINE</code>: The source code settings are specified in the source action of a pipeline in CodePipeline. </li> <li>  <code>GITHUB</code>: The source code is in a GitHub or GitHub Enterprise Cloud repository. </li> <li>  <code>GITHUB_ENTERPRISE</code>: The source code is in a GitHub Enterprise Server repository. </li> <li>  <code>NO_SOURCE</code>: The project does not have input source code. </li> <li>  <code>S3</code>: The source code is in an Amazon S3 bucket. </li> </ul><br/> Information about the Git submodules configuration for the build project. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>gitSubmodulesConfig</b>:  Information about the Git submodules configuration for the build project. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>artifactIdentifier</i>  An identifier for this artifact definition. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>encryptionDisabled</i>  Information that tells you if encryption for build artifacts is disabled. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>overrideArtifactName</i>  If this flag is set, a name specified in the buildspec file overrides the artifact name. The name specified in a buildspec file is calculated at build time and uses the Shell Command Language. For example, you can append a date and time to your artifact name so that it is always unique. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>md5sum</i> The MD5 hash of the build artifact. You can use this hash along with a checksum tool to confirm file integrity and authenticity. <note> This value is available only if the build project's <code>packaging</code> value is set to <code>ZIP</code>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>sha256sum</i> The SHA-256 hash of the build artifact. You can use this hash along with a checksum tool to confirm file integrity and authenticity. <note> This value is available only if the build project's <code>packaging</code> value is set to <code>ZIP</code>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i> Information about the location of the build artifacts.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>modes</i> An array of strings that specify the local cache modes. You can use one or more local cache modes at the same time. This is only used for <code>LOCAL</code> cache types. Possible values are: <dl> <dt>LOCAL_SOURCE_CACHE</dt> <dd> Caches Git metadata for primary and secondary sources. After the cache is created, subsequent builds pull only the change between commits. This mode is a good choice for projects with a clean working directory and a source that is a large Git repository. If you choose this option and your project does not use a Git repository (GitHub, GitHub Enterprise, or Bitbucket), the option is ignored.  </dd> <dt>LOCAL_DOCKER_LAYER_CACHE</dt> <dd> Caches existing Docker layers. This mode is a good choice for projects that build or pull large Docker images. It can prevent the performance issues caused by pulling large Docker images down from the network.  <note> <ul> <li> You can use a Docker layer cache in the Linux environment only.  </li> <li> The <code>privileged</code> flag must be set so that your project has the required Docker permissions.  </li> <li> You should consider the security implications before you use a Docker layer cache.  </li> </ul> </note> </dd> <dt>LOCAL_CUSTOM_CACHE</dt> <dd> Caches directories you specify in the buildspec file. This mode is a good choice if your build scenario is not suited to one of the other three local cache modes. If you use a custom cache:  <ul> <li> Only directories can be specified for caching. You cannot specify individual files.  </li> <li> Symlinks are used to reference cached directories.  </li> <li> Cached directories are linked to your build before it downloads its project sources. Cached items are overridden if a source item has the same name. Directories are specified using cache paths in the buildspec file.  </li> </ul> </dd> </dl><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i> Information about the cache location:  <ul> <li>  <code>NO_CACHE</code> or <code>LOCAL</code>: This value is ignored. </li> <li>  <code>S3</code>: This is the S3 bucket name/prefix. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of cache used by the build project. Valid values include: <ul> <li>  <code>NO_CACHE</code>: The build project does not use any cache. </li> <li>  <code>S3</code>: The build project reads and writes from and to S3. </li> <li>  <code>LOCAL</code>: The build project stores a cache locally on a build host that is only available to that build host. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>certificate</i> The ARN of the Amazon S3 bucket, path prefix, and object key that contains the PEM-encoded certificate for the build project. For more information, see <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/create-project-cli.html#cli.environment.certificate">certificate</a> in the <i>CodeBuild User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>privilegedMode</i> Enables running the Docker daemon inside a Docker container. Set to true only if the build project is used to build Docker images. Otherwise, a build that attempts to interact with the Docker daemon fails. The default setting is <code>false</code>. You can initialize the Docker daemon during the install phase of your build by adding one of the following sets of commands to the install phase of your buildspec file: If the operating system's base image is Ubuntu Linux:  <code>- nohup /usr/local/bin/dockerd --host=unix:///var/run/docker.sock --host=tcp://0.0.0.0:2375 --storage-driver=overlay&amp;</code>   <code>- timeout 15 sh -c "until docker info; do echo .; sleep 1; done"</code>  If the operating system's base image is Alpine Linux and the previous command does not work, add the <code>-t</code> argument to <code>timeout</code>:  <code>- nohup /usr/local/bin/dockerd --host=unix:///var/run/docker.sock --host=tcp://0.0.0.0:2375 --storage-driver=overlay&amp;</code>   <code>- timeout -t 15 sh -c "until docker info; do echo .; sleep 1; done"</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>environmentVariables</i> A set of environment variables to make available to builds for this build project.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>computeType</i> Information about the compute resources the build project uses. Available values include: <ul> <li>  <code>BUILD_GENERAL1_SMALL</code>: Use up to 3 GB memory and 2 vCPUs for builds. </li> <li>  <code>BUILD_GENERAL1_MEDIUM</code>: Use up to 7 GB memory and 4 vCPUs for builds. </li> <li>  <code>BUILD_GENERAL1_LARGE</code>: Use up to 16 GB memory and 8 vCPUs for builds, depending on your environment type. </li> <li>  <code>BUILD_GENERAL1_2XLARGE</code>: Use up to 145 GB memory, 72 vCPUs, and 824 GB of SSD storage for builds. This compute type supports Docker images up to 100 GB uncompressed. </li> </ul>  If you use <code>BUILD_GENERAL1_LARGE</code>:  <ul> <li>  For environment type <code>LINUX_CONTAINER</code>, you can use up to 15 GB memory and 8 vCPUs for builds.  </li> <li>  For environment type <code>LINUX_GPU_CONTAINER</code>, you can use up to 255 GB memory, 32 vCPUs, and 4 NVIDIA Tesla V100 GPUs for builds. </li> <li>  For environment type <code>ARM_CONTAINER</code>, you can use up to 16 GB memory and 8 vCPUs on ARM-based processors for builds. </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html">Build Environment Compute Types</a> in the <i>CodeBuild User Guide.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>image</i> The image tag or image digest that identifies the Docker image to use for this build project. Use the following formats: <ul> <li> For an image tag: <code>&lt;registry&gt;/&lt;repository&gt;:&lt;tag&gt;</code>. For example, in the Docker repository that CodeBuild uses to manage its Docker images, this would be <code>aws/codebuild/standard:4.0</code>.  </li> <li> For an image digest: <code>&lt;registry&gt;/&lt;repository&gt;@&lt;digest&gt;</code>. For example, to specify an image with the digest "sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf," use <code>&lt;registry&gt;/&lt;repository&gt;@sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf</code>. </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-available.html">Docker images provided by CodeBuild</a> in the <i>CodeBuild user guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of build environment to use for related builds. <ul> <li> The environment type <code>ARM_CONTAINER</code> is available only in regions US East (N. Virginia), US East (Ohio), US West (Oregon), EU (Ireland), Asia Pacific (Mumbai), Asia Pacific (Tokyo), Asia Pacific (Sydney), and EU (Frankfurt). </li> <li> The environment type <code>LINUX_CONTAINER</code> with compute type <code>build.general1.2xlarge</code> is available only in regions US East (N. Virginia), US East (Ohio), US West (Oregon), Canada (Central), EU (Ireland), EU (London), EU (Frankfurt), Asia Pacific (Tokyo), Asia Pacific (Seoul), Asia Pacific (Singapore), Asia Pacific (Sydney), China (Beijing), and China (Ningxia). </li> <li> The environment type <code>LINUX_GPU_CONTAINER</code> is available only in regions US East (N. Virginia), US East (Ohio), US West (Oregon), Canada (Central), EU (Ireland), EU (London), EU (Frankfurt), Asia Pacific (Tokyo), Asia Pacific (Seoul), Asia Pacific (Singapore), Asia Pacific (Sydney) , China (Beijing), and China (Ningxia). </li> </ul> <ul> <li> The environment types <code>WINDOWS_CONTAINER</code> and <code>WINDOWS_SERVER_2019_CONTAINER</code> are available only in regions US East (N. Virginia), US East (Ohio), US West (Oregon), and EU (Ireland). </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html">Build environment compute types</a> in the <i>CodeBuild user guide</i>.<br/> The credentials for access to a private registry.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>registryCredential</b>:  The credentials for access to a private registry. Information about CloudWatch Logs for a build project. CloudWatch Logs are enabled by default. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>cloudWatchLogs</b>:  Information about CloudWatch Logs for a build project. CloudWatch Logs are enabled by default. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>securityGroupIds</i> A list of one or more security groups IDs in your Amazon VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>subnets</i> A list of one or more subnet IDs in your Amazon VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>vpcId</i> The ID of the Amazon VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>combineArtifacts</i> Specifies if the build artifacts for the batch build should be combined into a single artifact location.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>serviceRole</i> Specifies the service role ARN for the batch build project.<br/>A <code>BatchRestrictions</code> object that specifies the restrictions for the batch build.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>restrictions</b>: A <code>BatchRestrictions</code> object that specifies the restrictions for the batch build.        """
        pass

    def start_build(self, projectName: str, secondarySourcesOverride: List[ProjectSource]=None, secondarySourcesVersionOverride: List[ProjectSourceVersion]=None, sourceVersion: str=None, artifactsOverride: ProjectArtifacts=None, secondaryArtifactsOverride: List[ProjectArtifacts]=None, environmentVariablesOverride: List[EnvironmentVariable]=None, sourceTypeOverride: str=None, sourceLocationOverride: str=None, sourceAuthOverride: SourceAuth=None, gitCloneDepthOverride: int=None, gitSubmodulesConfigOverride: GitSubmodulesConfig=None, buildspecOverride: str=None, insecureSslOverride: WrapperBoolean=None, reportBuildStatusOverride: WrapperBoolean=None, buildStatusConfigOverride: BuildStatusConfig=None, environmentTypeOverride: str=None, imageOverride: str=None, computeTypeOverride: str=None, certificateOverride: str=None, cacheOverride: ProjectCache=None, serviceRoleOverride: str=None, privilegedModeOverride: WrapperBoolean=None, timeoutInMinutesOverride: int=None, queuedTimeoutInMinutesOverride: int=None, encryptionKeyOverride: str=None, idempotencyToken: str=None, logsConfigOverride: LogsConfig=None, registryCredentialOverride: RegistryCredential=None, imagePullCredentialsTypeOverride: str=None, debugSessionEnabled: WrapperBoolean=None) -> StartBuildOutput:
        r"""Starts running a build.

        :param self:
        :param debugSessionEnabled:  Specifies if session debugging is enabled for this build. For more information, see <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/session-manager.html">Viewing a running build in Session Manager</a>.<br/>imagePullCredentialsTypeOverride:  The type of credentials CodeBuild uses to pull images in your build. There are two valid values:  <dl> <dt>CODEBUILD</dt> <dd> Specifies that CodeBuild uses its own credentials. This requires that you modify your ECR repository policy to trust CodeBuild's service principal. </dd> <dt>SERVICE_ROLE</dt> <dd> Specifies that CodeBuild uses your build project's service role.  </dd> </dl> When using a cross-account or private registry image, you must use <code>SERVICE_ROLE</code> credentials. When using an CodeBuild curated image, you must use <code>CODEBUILD</code> credentials. <br/>registryCredentialOverride:   The credentials for access to a private registry. :<br/>logsConfigOverride:   Log settings for this build that override the log settings defined in the build project. :<br/>idempotencyToken:  A unique, case sensitive identifier you provide to ensure the idempotency of the StartBuild request. The token is included in the StartBuild request and is valid for 5 minutes. If you repeat the StartBuild request with the same token, but change a parameter, CodeBuild returns a parameter mismatch error. <br/>encryptionKeyOverride:  The Key Management Service customer master key (CMK) that overrides the one specified in the build project. The CMK key encrypts the build output artifacts. <note>  You can use a cross-account KMS key to encrypt the build output artifacts if your service role has permission to that key.  </note> You can specify either the Amazon Resource Name (ARN) of the CMK or, if available, the CMK's alias (using the format <code>alias/&lt;alias-name&gt;</code>).<br/>queuedTimeoutInMinutesOverride:   The number of minutes a build is allowed to be queued before it times out. <br/>timeoutInMinutesOverride:  The number of build timeout minutes, from 5 to 480 (8 hours), that overrides, for this build only, the latest setting already defined in the build project.<br/>privilegedModeOverride:  Enable this flag to override privileged mode in the build project.<br/>serviceRoleOverride:  The name of a service role for this build that overrides the one specified in the build project.<br/>cacheOverride:  A ProjectCache object specified for this build that overrides the one defined in the build project.:<br/>certificateOverride:  The name of a certificate for this build that overrides the one specified in the build project.<br/>computeTypeOverride:  The name of a compute type for this build that overrides the one specified in the build project.<br/>imageOverride:  The name of an image for this build that overrides the one specified in the build project.<br/>environmentTypeOverride:  A container type for this build that overrides the one specified in the build project.<br/>buildStatusConfigOverride:  Contains information that defines how the build project reports the build status to the source provider. This option is only used when the source provider is <code>GITHUB</code>, <code>GITHUB_ENTERPRISE</code>, or <code>BITBUCKET</code>.:<br/>reportBuildStatusOverride:   Set to true to report to your source provider the status of a build's start and completion. If you use this option with a source provider other than GitHub, GitHub Enterprise, or Bitbucket, an <code>invalidInputException</code> is thrown.  To be able to report the build status to the source provider, the user associated with the source provider must have write access to the repo. If the user does not have write access, the build status cannot be updated. For more information, see <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/access-tokens.html">Source provider access</a> in the <i>CodeBuild User Guide</i>. <note>  The status of a build triggered by a webhook is always reported to your source provider.  </note><br/>insecureSslOverride:  Enable this flag to override the insecure SSL setting that is specified in the build project. The insecure SSL setting determines whether to ignore SSL warnings while connecting to the project source code. This override applies only if the build's source is GitHub Enterprise.<br/>buildspecOverride:  A buildspec file declaration that overrides, for this build only, the latest one already defined in the build project.  If this value is set, it can be either an inline buildspec definition, the path to an alternate buildspec file relative to the value of the built-in <code>CODEBUILD_SRC_DIR</code> environment variable, or the path to an S3 bucket. The bucket must be in the same Region as the build project. Specify the buildspec file using its ARN (for example, <code>arn:aws:s3:::my-codebuild-sample2/buildspec.yml</code>). If this value is not provided or is set to an empty string, the source code must contain a buildspec file in its root directory. For more information, see <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html#build-spec-ref-name-storage">Buildspec File Name and Storage Location</a>. <br/>gitSubmodulesConfigOverride:   Information about the Git submodules configuration for this build of an CodeBuild build project. :<br/>gitCloneDepthOverride:  The user-defined depth of history, with a minimum value of 0, that overrides, for this build only, any previous depth of history defined in the build project.<br/>sourceAuthOverride:  An authorization type for this build that overrides the one defined in the build project. This override applies only if the build project's source is BitBucket or GitHub.:<br/>sourceLocationOverride:  A location that overrides, for this build, the source location for the one defined in the build project.<br/>sourceTypeOverride:  A source input type, for this build, that overrides the source input defined in the build project.<br/>environmentVariablesOverride:  A set of environment variables that overrides, for this build only, the latest ones already defined in the build project.<br/>secondaryArtifactsOverride:   An array of <code>ProjectArtifacts</code> objects. <br/>artifactsOverride:  Build output artifact settings that override, for this build only, the latest ones already defined in the build project.:<br/>sourceVersion:  The version of the build input to be built, for this build only. If not specified, the latest version is used. If specified, the contents depends on the source provider: <dl> <dt>CodeCommit</dt> <dd> The commit ID, branch, or Git tag to use. </dd> <dt>GitHub</dt> <dd> The commit ID, pull request ID, branch name, or tag name that corresponds to the version of the source code you want to build. If a pull request ID is specified, it must use the format <code>pr/pull-request-ID</code> (for example <code>pr/25</code>). If a branch name is specified, the branch's HEAD commit ID is used. If not specified, the default branch's HEAD commit ID is used. </dd> <dt>Bitbucket</dt> <dd> The commit ID, branch name, or tag name that corresponds to the version of the source code you want to build. If a branch name is specified, the branch's HEAD commit ID is used. If not specified, the default branch's HEAD commit ID is used. </dd> <dt>Amazon S3</dt> <dd> The version ID of the object that represents the build input ZIP file to use. </dd> </dl> If <code>sourceVersion</code> is specified at the project level, then this <code>sourceVersion</code> (at the build level) takes precedence.  For more information, see <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/sample-source-version.html">Source Version Sample with CodeBuild</a> in the <i>CodeBuild User Guide</i>. <br/>secondarySourcesVersionOverride:   An array of <code>ProjectSourceVersion</code> objects that specify one or more versions of the project's secondary sources to be used for this build only. <br/>secondarySourcesOverride:   An array of <code>ProjectSource</code> objects. <br/>projectName:  The name of the CodeBuild build project to start running a build.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>artifactIdentifier</i>  An identifier for this artifact definition. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>encryptionDisabled</i>  Set to true if you do not want your output artifacts encrypted. This option is valid only if your artifacts type is Amazon S3. If this is set with another artifacts type, an invalidInputException is thrown. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>overrideArtifactName</i>  If this flag is set, a name specified in the buildspec file overrides the artifact name. The name specified in a buildspec file is calculated at build time and uses the Shell Command Language. For example, you can append a date and time to your artifact name so that it is always unique. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>packaging</i> The type of build output artifact to create: <ul> <li> If <code>type</code> is set to <code>CODEPIPELINE</code>, CodePipeline ignores this value if specified. This is because CodePipeline manages its build output artifacts instead of CodeBuild. </li> <li> If <code>type</code> is set to <code>NO_ARTIFACTS</code>, this value is ignored if specified, because no build output is produced. </li> <li> If <code>type</code> is set to <code>S3</code>, valid values include: <ul> <li>  <code>NONE</code>: CodeBuild creates in the output bucket a folder that contains the build output. This is the default if <code>packaging</code> is not specified. </li> <li>  <code>ZIP</code>: CodeBuild creates in the output bucket a ZIP file that contains the build output. </li> </ul> </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> Along with <code>path</code> and <code>namespaceType</code>, the pattern that CodeBuild uses to name and store the output artifact: <ul> <li> If <code>type</code> is set to <code>CODEPIPELINE</code>, CodePipeline ignores this value if specified. This is because CodePipeline manages its build output names instead of CodeBuild. </li> <li> If <code>type</code> is set to <code>NO_ARTIFACTS</code>, this value is ignored if specified, because no build output is produced. </li> <li> If <code>type</code> is set to <code>S3</code>, this is the name of the output artifact object. If you set the name to be a forward slash ("/"), the artifact is stored in the root of the output bucket. </li> </ul> For example: <ul> <li>  If <code>path</code> is set to <code>MyArtifacts</code>, <code>namespaceType</code> is set to <code>BUILD_ID</code>, and <code>name</code> is set to <code>MyArtifact.zip</code>, then the output artifact is stored in <code>MyArtifacts/&lt;build-ID&gt;/MyArtifact.zip</code>.  </li> <li>  If <code>path</code> is empty, <code>namespaceType</code> is set to <code>NONE</code>, and <code>name</code> is set to "<code>/</code>", the output artifact is stored in the root of the output bucket.  </li> <li>  If <code>path</code> is set to <code>MyArtifacts</code>, <code>namespaceType</code> is set to <code>BUILD_ID</code>, and <code>name</code> is set to "<code>/</code>", the output artifact is stored in <code>MyArtifacts/&lt;build-ID&gt;</code>.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>namespaceType</i> Along with <code>path</code> and <code>name</code>, the pattern that CodeBuild uses to determine the name and location to store the output artifact: <ul> <li> If <code>type</code> is set to <code>CODEPIPELINE</code>, CodePipeline ignores this value if specified. This is because CodePipeline manages its build output names instead of CodeBuild. </li> <li> If <code>type</code> is set to <code>NO_ARTIFACTS</code>, this value is ignored if specified, because no build output is produced. </li> <li> If <code>type</code> is set to <code>S3</code>, valid values include: <ul> <li>  <code>BUILD_ID</code>: Include the build ID in the location of the build output artifact. </li> <li>  <code>NONE</code>: Do not include the build ID. This is the default if <code>namespaceType</code> is not specified. </li> </ul> </li> </ul> For example, if <code>path</code> is set to <code>MyArtifacts</code>, <code>namespaceType</code> is set to <code>BUILD_ID</code>, and <code>name</code> is set to <code>MyArtifact.zip</code>, the output artifact is stored in <code>MyArtifacts/&lt;build-ID&gt;/MyArtifact.zip</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>path</i> Along with <code>namespaceType</code> and <code>name</code>, the pattern that CodeBuild uses to name and store the output artifact: <ul> <li> If <code>type</code> is set to <code>CODEPIPELINE</code>, CodePipeline ignores this value if specified. This is because CodePipeline manages its build output names instead of CodeBuild. </li> <li> If <code>type</code> is set to <code>NO_ARTIFACTS</code>, this value is ignored if specified, because no build output is produced. </li> <li> If <code>type</code> is set to <code>S3</code>, this is the path to the output artifact. If <code>path</code> is not specified, <code>path</code> is not used. </li> </ul> For example, if <code>path</code> is set to <code>MyArtifacts</code>, <code>namespaceType</code> is set to <code>NONE</code>, and <code>name</code> is set to <code>MyArtifact.zip</code>, the output artifact is stored in the output bucket at <code>MyArtifacts/MyArtifact.zip</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i> Information about the build output artifact location: <ul> <li> If <code>type</code> is set to <code>CODEPIPELINE</code>, CodePipeline ignores this value if specified. This is because CodePipeline manages its build output locations instead of CodeBuild. </li> <li> If <code>type</code> is set to <code>NO_ARTIFACTS</code>, this value is ignored if specified, because no build output is produced. </li> <li> If <code>type</code> is set to <code>S3</code>, this is the name of the output bucket. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of build output artifact. Valid values include: <ul> <li>  <code>CODEPIPELINE</code>: The build project has build output generated through CodePipeline.  <note> The <code>CODEPIPELINE</code> type is not supported for <code>secondaryArtifacts</code>. </note> </li> <li>  <code>NO_ARTIFACTS</code>: The build project does not produce any build output. </li> <li>  <code>S3</code>: The build project stores build output in Amazon S3. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resource</i> The resource value that applies to the specified authorization type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> <note>  This data type is deprecated and is no longer accurate or used.  </note> The authorization type to use. The only valid value is <code>OAUTH</code>, which represents the OAuth authorization type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>fetchSubmodules</i>  Set to true to fetch Git submodules for your CodeBuild build project. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>targetUrl</i> Specifies the target url of the build status CodeBuild sends to the source provider. The usage of this parameter depends on the source provider. <dl> <dt>Bitbucket</dt> <dd> This parameter is used for the <code>url</code> parameter in the Bitbucket commit status. For more information, see <a href="https://developer.atlassian.com/bitbucket/api/2/reference/resource/repositories/%7Bworkspace%7D/%7Brepo_slug%7D/commit/%7Bnode%7D/statuses/build">build</a> in the Bitbucket API documentation. </dd> <dt>GitHub/GitHub Enterprise Server</dt> <dd> This parameter is used for the <code>target_url</code> parameter in the GitHub commit status. For more information, see <a href="https://developer.github.com/v3/repos/statuses/#create-a-commit-status">Create a commit status</a> in the GitHub developer guide. </dd> </dl><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>context</i> Specifies the context of the build status CodeBuild sends to the source provider. The usage of this parameter depends on the source provider. <dl> <dt>Bitbucket</dt> <dd> This parameter is used for the <code>name</code> parameter in the Bitbucket commit status. For more information, see <a href="https://developer.atlassian.com/bitbucket/api/2/reference/resource/repositories/%7Bworkspace%7D/%7Brepo_slug%7D/commit/%7Bnode%7D/statuses/build">build</a> in the Bitbucket API documentation. </dd> <dt>GitHub/GitHub Enterprise Server</dt> <dd> This parameter is used for the <code>context</code> parameter in the GitHub commit status. For more information, see <a href="https://developer.github.com/v3/repos/statuses/#create-a-commit-status">Create a commit status</a> in the GitHub developer guide. </dd> </dl><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>modes</i> An array of strings that specify the local cache modes. You can use one or more local cache modes at the same time. This is only used for <code>LOCAL</code> cache types. Possible values are: <dl> <dt>LOCAL_SOURCE_CACHE</dt> <dd> Caches Git metadata for primary and secondary sources. After the cache is created, subsequent builds pull only the change between commits. This mode is a good choice for projects with a clean working directory and a source that is a large Git repository. If you choose this option and your project does not use a Git repository (GitHub, GitHub Enterprise, or Bitbucket), the option is ignored.  </dd> <dt>LOCAL_DOCKER_LAYER_CACHE</dt> <dd> Caches existing Docker layers. This mode is a good choice for projects that build or pull large Docker images. It can prevent the performance issues caused by pulling large Docker images down from the network.  <note> <ul> <li> You can use a Docker layer cache in the Linux environment only.  </li> <li> The <code>privileged</code> flag must be set so that your project has the required Docker permissions.  </li> <li> You should consider the security implications before you use a Docker layer cache.  </li> </ul> </note> </dd> <dt>LOCAL_CUSTOM_CACHE</dt> <dd> Caches directories you specify in the buildspec file. This mode is a good choice if your build scenario is not suited to one of the other three local cache modes. If you use a custom cache:  <ul> <li> Only directories can be specified for caching. You cannot specify individual files.  </li> <li> Symlinks are used to reference cached directories.  </li> <li> Cached directories are linked to your build before it downloads its project sources. Cached items are overridden if a source item has the same name. Directories are specified using cache paths in the buildspec file.  </li> </ul> </dd> </dl><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i> Information about the cache location:  <ul> <li>  <code>NO_CACHE</code> or <code>LOCAL</code>: This value is ignored. </li> <li>  <code>S3</code>: This is the S3 bucket name/prefix. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of cache used by the build project. Valid values include: <ul> <li>  <code>NO_CACHE</code>: The build project does not use any cache. </li> <li>  <code>S3</code>: The build project reads and writes from and to S3. </li> <li>  <code>LOCAL</code>: The build project stores a cache locally on a build host that is only available to that build host. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>s3Logs</i>  Information about logs built to an S3 bucket for a build project. S3 logs are not enabled by default. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>s3Logs</b>:  Information about logs built to an S3 bucket for a build project. S3 logs are not enabled by default. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>cloudWatchLogs</i>  Information about CloudWatch Logs for a build project. CloudWatch Logs are enabled by default. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>cloudWatchLogs</b>:  Information about CloudWatch Logs for a build project. CloudWatch Logs are enabled by default. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>streamName</i>  The prefix of the stream name of the CloudWatch Logs. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html">Working with Log Groups and Log Streams</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>groupName</i>  The group name of the logs in CloudWatch Logs. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html">Working with Log Groups and Log Streams</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current status of the logs in CloudWatch Logs for a build project. Valid values are: <ul> <li>  <code>ENABLED</code>: CloudWatch Logs are enabled for this build project. </li> <li>  <code>DISABLED</code>: CloudWatch Logs are not enabled for this build project. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>encryptionDisabled</i>  Set to true if you do not want your S3 build log output encrypted. By default S3 build logs are encrypted. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i>  The ARN of an S3 bucket and the path prefix for S3 logs. If your Amazon S3 bucket name is <code>my-bucket</code>, and your path prefix is <code>build-log</code>, then acceptable formats are <code>my-bucket/build-log</code> or <code>arn:aws:s3:::my-bucket/build-log</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current status of the S3 build logs. Valid values are: <ul> <li>  <code>ENABLED</code>: S3 build logs are enabled for this build project. </li> <li>  <code>DISABLED</code>: S3 build logs are not enabled for this build project. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>credentialProvider</i>  The service that created the credentials to access a private Docker registry. The valid value, SECRETS_MANAGER, is for Secrets Manager. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>credential</i>  The Amazon Resource Name (ARN) or name of credentials created using Secrets Manager.  <note>  The <code>credential</code> can use the name of the credentials only if they exist in your current Region.  </note><br/>
        :return: build:  Information about the build to be run.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>buildBatchArn</i> The ARN of the batch build that this build is a member of, if applicable.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>debugSession</i> Contains information about the debug session for this build.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>debugSession</b>: Contains information about the debug session for this build.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>fileSystemLocations</i>  An array of <code>ProjectFileSystemLocation</code> objects for a CodeBuild build project. A <code>ProjectFileSystemLocation</code> object specifies the <code>identifier</code>, <code>location</code>, <code>mountOptions</code>, <code>mountPoint</code>, and <code>type</code> of a file system created using Amazon Elastic File System. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>reportArns</i>  An array of the ARNs associated with this build's reports. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>exportedEnvironmentVariables</i> A list of exported environment variables for this build. Exported environment variables are used in conjunction with CodePipeline to export environment variables from the current build stage to subsequent stages in the pipeline. For more information, see <a href="https://docs.aws.amazon.com/codepipeline/latest/userguide/actions-variables.html">Working with variables</a> in the <i>CodePipeline User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>encryptionKey</i> The Key Management Service customer master key (CMK) to be used for encrypting the build output artifacts. <note>  You can use a cross-account KMS key to encrypt the build output artifacts if your service role has permission to that key.  </note> You can specify either the Amazon Resource Name (ARN) of the CMK or, if available, the CMK's alias (using the format <code>alias/&lt;alias-name&gt;</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>networkInterface</i> Describes a network interface.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>networkInterface</b>: Describes a network interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>vpcConfig</i> If your CodeBuild project accesses resources in an Amazon VPC, you provide this parameter that identifies the VPC ID and the list of security group IDs and subnet IDs. The security groups and subnets must belong to the same VPC. You must provide at least one security group and one subnet ID.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>vpcConfig</b>: If your CodeBuild project accesses resources in an Amazon VPC, you provide this parameter that identifies the VPC ID and the list of security group IDs and subnet IDs. The security groups and subnets must belong to the same VPC. You must provide at least one security group and one subnet ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>initiator</i> The entity that started the build. Valid values include: <ul> <li> If CodePipeline started the build, the pipeline's name (for example, <code>codepipeline/my-demo-pipeline</code>). </li> <li> If an Identity and Access Management user started the build, the user's name (for example, <code>MyUserName</code>). </li> <li> If the Jenkins plugin for CodeBuild started the build, the string <code>CodeBuild-Jenkins-Plugin</code>. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>buildComplete</i> Whether the build is complete. True if complete; otherwise, false.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>queuedTimeoutInMinutes</i>  The number of minutes a build is allowed to be queued before it times out. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>timeoutInMinutes</i> How long, in minutes, for CodeBuild to wait before timing out this build if it does not get marked as completed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>logs</i> Information about the build's logs in CloudWatch Logs.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>logs</b>: Information about the build's logs in CloudWatch Logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>serviceRole</i> The name of a service role used for this build.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>environment</i> Information about the build environment for this build.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>environment</b>: Information about the build environment for this build.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>cache</i> Information about the cache for the build.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>cache</b>: Information about the cache for the build.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>secondaryArtifacts</i>  An array of <code>ProjectArtifacts</code> objects. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>artifacts</i> Information about the output artifacts for the build.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>artifacts</b>: Information about the output artifacts for the build.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>secondarySourceVersions</i>  An array of <code>ProjectSourceVersion</code> objects. Each <code>ProjectSourceVersion</code> must be one of:  <ul> <li> For CodeCommit: the commit ID, branch, or Git tag to use. </li> <li> For GitHub: the commit ID, pull request ID, branch name, or tag name that corresponds to the version of the source code you want to build. If a pull request ID is specified, it must use the format <code>pr/pull-request-ID</code> (for example, <code>pr/25</code>). If a branch name is specified, the branch's HEAD commit ID is used. If not specified, the default branch's HEAD commit ID is used. </li> <li> For Bitbucket: the commit ID, branch name, or tag name that corresponds to the version of the source code you want to build. If a branch name is specified, the branch's HEAD commit ID is used. If not specified, the default branch's HEAD commit ID is used. </li> <li> For Amazon S3: the version ID of the object that represents the build input ZIP file to use. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>secondarySources</i>  An array of <code>ProjectSource</code> objects. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>source</i> Information about the source code to be built.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>source</b>: Information about the source code to be built.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>phases</i> Information about all previous build phases that are complete and information about any current build phase that is not yet complete.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>projectName</i> The name of the CodeBuild project.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resolvedSourceVersion</i>  An identifier for the version of this build's source code.  <ul> <li>  For CodeCommit, GitHub, GitHub Enterprise, and BitBucket, the commit ID.  </li> <li>  For CodePipeline, the source revision provided by CodePipeline.  </li> <li>  For Amazon S3, this does not apply.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>sourceVersion</i> Any version identifier for the version of the source code to be built. If <code>sourceVersion</code> is specified at the project level, then this <code>sourceVersion</code> (at the build level) takes precedence.   For more information, see <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/sample-source-version.html">Source Version Sample with CodeBuild</a> in the <i>CodeBuild User Guide</i>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>buildStatus</i> The current status of the build. Valid values include: <ul> <li>  <code>FAILED</code>: The build failed. </li> <li>  <code>FAULT</code>: The build faulted. </li> <li>  <code>IN_PROGRESS</code>: The build is still in progress. </li> <li>  <code>STOPPED</code>: The build stopped. </li> <li>  <code>SUCCEEDED</code>: The build succeeded. </li> <li>  <code>TIMED_OUT</code>: The build timed out. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>currentPhase</i> The current build phase.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>endTime</i> When the build process ended, expressed in Unix time format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>startTime</i> When the build process started, expressed in Unix time format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>buildNumber</i> The number of the build. For each project, the <code>buildNumber</code> of its first build is <code>1</code>. The <code>buildNumber</code> of each subsequent build is incremented by <code>1</code>. If a build is deleted, the <code>buildNumber</code> of other builds does not change.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the build.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The unique ID for the build.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>gitCloneDepth</i> Information about the Git clone depth for the build project.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i> Information about the location of the source code to be built. Valid values include: <ul> <li> For source code settings that are specified in the source action of a pipeline in CodePipeline, <code>location</code> should not be specified. If it is specified, CodePipeline ignores it. This is because CodePipeline uses the settings in a pipeline's source action instead of this value. </li> <li> For source code in an CodeCommit repository, the HTTPS clone URL to the repository that contains the source code and the buildspec file (for example, <code>https://git-codecommit.&lt;region-ID&gt;.amazonaws.com/v1/repos/&lt;repo-name&gt;</code>). </li> <li> For source code in an Amazon S3 input bucket, one of the following.  <ul> <li> The path to the ZIP file that contains the source code (for example, <code>&lt;bucket-name&gt;/&lt;path&gt;/&lt;object-name&gt;.zip</code>).  </li> <li> The path to the folder that contains the source code (for example, <code>&lt;bucket-name&gt;/&lt;path-to-source-code&gt;/&lt;folder&gt;/</code>).  </li> </ul> </li> <li> For source code in a GitHub repository, the HTTPS clone URL to the repository that contains the source and the buildspec file. You must connect your account to your GitHub account. Use the CodeBuild console to start creating a build project. When you use the console to connect (or reconnect) with GitHub, on the GitHub <b>Authorize application</b> page, for <b>Organization access</b>, choose <b>Request access</b> next to each repository you want to allow CodeBuild to have access to, and then choose <b>Authorize application</b>. (After you have connected to your GitHub account, you do not need to finish creating the build project. You can leave the CodeBuild console.) To instruct CodeBuild to use this connection, in the <code>source</code> object, set the <code>auth</code> object's <code>type</code> value to <code>OAUTH</code>. </li> <li> For source code in a Bitbucket repository, the HTTPS clone URL to the repository that contains the source and the buildspec file. You must connect your Amazon Web Services account to your Bitbucket account. Use the CodeBuild console to start creating a build project. When you use the console to connect (or reconnect) with Bitbucket, on the Bitbucket <b>Confirm access to your account</b> page, choose <b>Grant access</b>. (After you have connected to your Bitbucket account, you do not need to finish creating the build project. You can leave the CodeBuild console.) To instruct CodeBuild to use this connection, in the <code>source</code> object, set the <code>auth</code> object's <code>type</code> value to <code>OAUTH</code>. </li> </ul>  If you specify <code>CODEPIPELINE</code> for the <code>Type</code> property, don't specify this property. For all of the other types, you must specify <code>Location</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of repository that contains the source code to be built. Valid values include: <ul> <li>  <code>BITBUCKET</code>: The source code is in a Bitbucket repository. </li> <li>  <code>CODECOMMIT</code>: The source code is in an CodeCommit repository. </li> <li>  <code>CODEPIPELINE</code>: The source code settings are specified in the source action of a pipeline in CodePipeline. </li> <li>  <code>GITHUB</code>: The source code is in a GitHub or GitHub Enterprise Cloud repository. </li> <li>  <code>GITHUB_ENTERPRISE</code>: The source code is in a GitHub Enterprise Server repository. </li> <li>  <code>NO_SOURCE</code>: The project does not have input source code. </li> <li>  <code>S3</code>: The source code is in an Amazon S3 bucket. </li> </ul><br/> Information about the Git submodules configuration for the build project. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>gitSubmodulesConfig</b>:  Information about the Git submodules configuration for the build project. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>artifactIdentifier</i>  An identifier for this artifact definition. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>encryptionDisabled</i>  Information that tells you if encryption for build artifacts is disabled. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>overrideArtifactName</i>  If this flag is set, a name specified in the buildspec file overrides the artifact name. The name specified in a buildspec file is calculated at build time and uses the Shell Command Language. For example, you can append a date and time to your artifact name so that it is always unique. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>md5sum</i> The MD5 hash of the build artifact. You can use this hash along with a checksum tool to confirm file integrity and authenticity. <note> This value is available only if the build project's <code>packaging</code> value is set to <code>ZIP</code>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>sha256sum</i> The SHA-256 hash of the build artifact. You can use this hash along with a checksum tool to confirm file integrity and authenticity. <note> This value is available only if the build project's <code>packaging</code> value is set to <code>ZIP</code>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i> Information about the location of the build artifacts.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>modes</i> An array of strings that specify the local cache modes. You can use one or more local cache modes at the same time. This is only used for <code>LOCAL</code> cache types. Possible values are: <dl> <dt>LOCAL_SOURCE_CACHE</dt> <dd> Caches Git metadata for primary and secondary sources. After the cache is created, subsequent builds pull only the change between commits. This mode is a good choice for projects with a clean working directory and a source that is a large Git repository. If you choose this option and your project does not use a Git repository (GitHub, GitHub Enterprise, or Bitbucket), the option is ignored.  </dd> <dt>LOCAL_DOCKER_LAYER_CACHE</dt> <dd> Caches existing Docker layers. This mode is a good choice for projects that build or pull large Docker images. It can prevent the performance issues caused by pulling large Docker images down from the network.  <note> <ul> <li> You can use a Docker layer cache in the Linux environment only.  </li> <li> The <code>privileged</code> flag must be set so that your project has the required Docker permissions.  </li> <li> You should consider the security implications before you use a Docker layer cache.  </li> </ul> </note> </dd> <dt>LOCAL_CUSTOM_CACHE</dt> <dd> Caches directories you specify in the buildspec file. This mode is a good choice if your build scenario is not suited to one of the other three local cache modes. If you use a custom cache:  <ul> <li> Only directories can be specified for caching. You cannot specify individual files.  </li> <li> Symlinks are used to reference cached directories.  </li> <li> Cached directories are linked to your build before it downloads its project sources. Cached items are overridden if a source item has the same name. Directories are specified using cache paths in the buildspec file.  </li> </ul> </dd> </dl><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i> Information about the cache location:  <ul> <li>  <code>NO_CACHE</code> or <code>LOCAL</code>: This value is ignored. </li> <li>  <code>S3</code>: This is the S3 bucket name/prefix. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of cache used by the build project. Valid values include: <ul> <li>  <code>NO_CACHE</code>: The build project does not use any cache. </li> <li>  <code>S3</code>: The build project reads and writes from and to S3. </li> <li>  <code>LOCAL</code>: The build project stores a cache locally on a build host that is only available to that build host. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>certificate</i> The ARN of the Amazon S3 bucket, path prefix, and object key that contains the PEM-encoded certificate for the build project. For more information, see <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/create-project-cli.html#cli.environment.certificate">certificate</a> in the <i>CodeBuild User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>privilegedMode</i> Enables running the Docker daemon inside a Docker container. Set to true only if the build project is used to build Docker images. Otherwise, a build that attempts to interact with the Docker daemon fails. The default setting is <code>false</code>. You can initialize the Docker daemon during the install phase of your build by adding one of the following sets of commands to the install phase of your buildspec file: If the operating system's base image is Ubuntu Linux:  <code>- nohup /usr/local/bin/dockerd --host=unix:///var/run/docker.sock --host=tcp://0.0.0.0:2375 --storage-driver=overlay&amp;</code>   <code>- timeout 15 sh -c "until docker info; do echo .; sleep 1; done"</code>  If the operating system's base image is Alpine Linux and the previous command does not work, add the <code>-t</code> argument to <code>timeout</code>:  <code>- nohup /usr/local/bin/dockerd --host=unix:///var/run/docker.sock --host=tcp://0.0.0.0:2375 --storage-driver=overlay&amp;</code>   <code>- timeout -t 15 sh -c "until docker info; do echo .; sleep 1; done"</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>environmentVariables</i> A set of environment variables to make available to builds for this build project.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>computeType</i> Information about the compute resources the build project uses. Available values include: <ul> <li>  <code>BUILD_GENERAL1_SMALL</code>: Use up to 3 GB memory and 2 vCPUs for builds. </li> <li>  <code>BUILD_GENERAL1_MEDIUM</code>: Use up to 7 GB memory and 4 vCPUs for builds. </li> <li>  <code>BUILD_GENERAL1_LARGE</code>: Use up to 16 GB memory and 8 vCPUs for builds, depending on your environment type. </li> <li>  <code>BUILD_GENERAL1_2XLARGE</code>: Use up to 145 GB memory, 72 vCPUs, and 824 GB of SSD storage for builds. This compute type supports Docker images up to 100 GB uncompressed. </li> </ul>  If you use <code>BUILD_GENERAL1_LARGE</code>:  <ul> <li>  For environment type <code>LINUX_CONTAINER</code>, you can use up to 15 GB memory and 8 vCPUs for builds.  </li> <li>  For environment type <code>LINUX_GPU_CONTAINER</code>, you can use up to 255 GB memory, 32 vCPUs, and 4 NVIDIA Tesla V100 GPUs for builds. </li> <li>  For environment type <code>ARM_CONTAINER</code>, you can use up to 16 GB memory and 8 vCPUs on ARM-based processors for builds. </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html">Build Environment Compute Types</a> in the <i>CodeBuild User Guide.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>image</i> The image tag or image digest that identifies the Docker image to use for this build project. Use the following formats: <ul> <li> For an image tag: <code>&lt;registry&gt;/&lt;repository&gt;:&lt;tag&gt;</code>. For example, in the Docker repository that CodeBuild uses to manage its Docker images, this would be <code>aws/codebuild/standard:4.0</code>.  </li> <li> For an image digest: <code>&lt;registry&gt;/&lt;repository&gt;@&lt;digest&gt;</code>. For example, to specify an image with the digest "sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf," use <code>&lt;registry&gt;/&lt;repository&gt;@sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf</code>. </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-available.html">Docker images provided by CodeBuild</a> in the <i>CodeBuild user guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of build environment to use for related builds. <ul> <li> The environment type <code>ARM_CONTAINER</code> is available only in regions US East (N. Virginia), US East (Ohio), US West (Oregon), EU (Ireland), Asia Pacific (Mumbai), Asia Pacific (Tokyo), Asia Pacific (Sydney), and EU (Frankfurt). </li> <li> The environment type <code>LINUX_CONTAINER</code> with compute type <code>build.general1.2xlarge</code> is available only in regions US East (N. Virginia), US East (Ohio), US West (Oregon), Canada (Central), EU (Ireland), EU (London), EU (Frankfurt), Asia Pacific (Tokyo), Asia Pacific (Seoul), Asia Pacific (Singapore), Asia Pacific (Sydney), China (Beijing), and China (Ningxia). </li> <li> The environment type <code>LINUX_GPU_CONTAINER</code> is available only in regions US East (N. Virginia), US East (Ohio), US West (Oregon), Canada (Central), EU (Ireland), EU (London), EU (Frankfurt), Asia Pacific (Tokyo), Asia Pacific (Seoul), Asia Pacific (Singapore), Asia Pacific (Sydney) , China (Beijing), and China (Ningxia). </li> </ul> <ul> <li> The environment types <code>WINDOWS_CONTAINER</code> and <code>WINDOWS_SERVER_2019_CONTAINER</code> are available only in regions US East (N. Virginia), US East (Ohio), US West (Oregon), and EU (Ireland). </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html">Build environment compute types</a> in the <i>CodeBuild user guide</i>.<br/> The credentials for access to a private registry.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>registryCredential</b>:  The credentials for access to a private registry.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>s3LogsArn</i>  The ARN of S3 logs for a build project. Its format is <code>arn:${Partition}:s3:::${BucketName}/${ObjectName}</code>. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazons3.html#amazons3-resources-for-iam-policies">Resources Defined by Amazon S3</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>cloudWatchLogsArn</i>  The ARN of CloudWatch Logs for a build project. Its format is <code>arn:${Partition}:logs:${Region}:${Account}:log-group:${LogGroupName}:log-stream:${LogStreamName}</code>. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazoncloudwatchlogs.html#amazoncloudwatchlogs-resources-for-iam-policies">Resources Defined by CloudWatch Logs</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>s3DeepLink</i>  The URL to a build log in an S3 bucket. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>deepLink</i> The URL to an individual build log in CloudWatch Logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>streamName</i> The name of the CloudWatch Logs stream for the build logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>groupName</i> The name of the CloudWatch Logs group for the build logs.<br/> Information about CloudWatch Logs for a build project. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>cloudWatchLogs</b>:  Information about CloudWatch Logs for a build project. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>securityGroupIds</i> A list of one or more security groups IDs in your Amazon VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>subnets</i> A list of one or more subnet IDs in your Amazon VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>vpcId</i> The ID of the Amazon VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>networkInterfaceId</i> The ID of the network interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>subnetId</i> The ID of the subnet.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>sessionTarget</i> Contains the identifier of the Session Manager session used for the build. To work with the paused build, you open this session to examine, control, and resume the build.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>sessionEnabled</i> Specifies if session debugging is enabled for this build.<br/>        """
        pass

    def start_build_batch(self, projectName: str, secondarySourcesOverride: List[ProjectSource]=None, secondarySourcesVersionOverride: List[ProjectSourceVersion]=None, sourceVersion: str=None, artifactsOverride: ProjectArtifacts=None, secondaryArtifactsOverride: List[ProjectArtifacts]=None, environmentVariablesOverride: List[EnvironmentVariable]=None, sourceTypeOverride: str=None, sourceLocationOverride: str=None, sourceAuthOverride: SourceAuth=None, gitCloneDepthOverride: int=None, gitSubmodulesConfigOverride: GitSubmodulesConfig=None, buildspecOverride: str=None, insecureSslOverride: WrapperBoolean=None, reportBuildBatchStatusOverride: WrapperBoolean=None, environmentTypeOverride: str=None, imageOverride: str=None, computeTypeOverride: str=None, certificateOverride: str=None, cacheOverride: ProjectCache=None, serviceRoleOverride: str=None, privilegedModeOverride: WrapperBoolean=None, buildTimeoutInMinutesOverride: int=None, queuedTimeoutInMinutesOverride: int=None, encryptionKeyOverride: str=None, idempotencyToken: str=None, logsConfigOverride: LogsConfig=None, registryCredentialOverride: RegistryCredential=None, imagePullCredentialsTypeOverride: str=None, buildBatchConfigOverride: ProjectBuildBatchConfig=None, debugSessionEnabled: WrapperBoolean=None) -> StartBuildBatchOutput:
        r"""Starts a batch build for a project.

        :param self:
        :param debugSessionEnabled:  Specifies if session debugging is enabled for this batch build. For more information, see <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/session-manager.html">Viewing a running build in Session Manager</a>. Batch session debugging is not supported for matrix batch builds.<br/>buildBatchConfigOverride:  A <code>BuildBatchConfigOverride</code> object that contains batch build configuration overrides.:<br/>imagePullCredentialsTypeOverride:  The type of credentials CodeBuild uses to pull images in your batch build. There are two valid values:  <dl> <dt>CODEBUILD</dt> <dd> Specifies that CodeBuild uses its own credentials. This requires that you modify your ECR repository policy to trust CodeBuild's service principal. </dd> <dt>SERVICE_ROLE</dt> <dd> Specifies that CodeBuild uses your build project's service role.  </dd> </dl> When using a cross-account or private registry image, you must use <code>SERVICE_ROLE</code> credentials. When using an CodeBuild curated image, you must use <code>CODEBUILD</code> credentials. <br/>registryCredentialOverride:  A <code>RegistryCredential</code> object that overrides credentials for access to a private registry.:<br/>logsConfigOverride:  A <code>LogsConfig</code> object that override the log settings defined in the batch build project.:<br/>idempotencyToken:  A unique, case sensitive identifier you provide to ensure the idempotency of the <code>StartBuildBatch</code> request. The token is included in the <code>StartBuildBatch</code> request and is valid for five minutes. If you repeat the <code>StartBuildBatch</code> request with the same token, but change a parameter, CodeBuild returns a parameter mismatch error.<br/>encryptionKeyOverride:  The Key Management Service customer master key (CMK) that overrides the one specified in the batch build project. The CMK key encrypts the build output artifacts. <note> You can use a cross-account KMS key to encrypt the build output artifacts if your service role has permission to that key.  </note> You can specify either the Amazon Resource Name (ARN) of the CMK or, if available, the CMK's alias (using the format <code>alias/&lt;alias-name&gt;</code>).<br/>queuedTimeoutInMinutesOverride:  The number of minutes a batch build is allowed to be queued before it times out.<br/>buildTimeoutInMinutesOverride:  Overrides the build timeout specified in the batch build project.<br/>privilegedModeOverride:  Enable this flag to override privileged mode in the batch build project.<br/>serviceRoleOverride:  The name of a service role for this batch build that overrides the one specified in the batch build project.<br/>cacheOverride:  A <code>ProjectCache</code> object that specifies cache overrides.:<br/>certificateOverride:  The name of a certificate for this batch build that overrides the one specified in the batch build project.<br/>computeTypeOverride:  The name of a compute type for this batch build that overrides the one specified in the batch build project.<br/>imageOverride:  The name of an image for this batch build that overrides the one specified in the batch build project.<br/>environmentTypeOverride:  A container type for this batch build that overrides the one specified in the batch build project.<br/>reportBuildBatchStatusOverride:  Set to <code>true</code> to report to your source provider the status of a batch build's start and completion. If you use this option with a source provider other than GitHub, GitHub Enterprise, or Bitbucket, an <code>invalidInputException</code> is thrown.  <note> The status of a build triggered by a webhook is always reported to your source provider.  </note><br/>insecureSslOverride:  Enable this flag to override the insecure SSL setting that is specified in the batch build project. The insecure SSL setting determines whether to ignore SSL warnings while connecting to the project source code. This override applies only if the build's source is GitHub Enterprise.<br/>buildspecOverride:  A buildspec file declaration that overrides, for this build only, the latest one already defined in the build project. If this value is set, it can be either an inline buildspec definition, the path to an alternate buildspec file relative to the value of the built-in <code>CODEBUILD_SRC_DIR</code> environment variable, or the path to an S3 bucket. The bucket must be in the same Region as the build project. Specify the buildspec file using its ARN (for example, <code>arn:aws:s3:::my-codebuild-sample2/buildspec.yml</code>). If this value is not provided or is set to an empty string, the source code must contain a buildspec file in its root directory. For more information, see <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html#build-spec-ref-name-storage">Buildspec File Name and Storage Location</a>. <br/>gitSubmodulesConfigOverride:  A <code>GitSubmodulesConfig</code> object that overrides the Git submodules configuration for this batch build.:<br/>gitCloneDepthOverride:  The user-defined depth of history, with a minimum value of 0, that overrides, for this batch build only, any previous depth of history defined in the batch build project.<br/>sourceAuthOverride:  A <code>SourceAuth</code> object that overrides the one defined in the batch build project. This override applies only if the build project's source is BitBucket or GitHub.:<br/>sourceLocationOverride:  A location that overrides, for this batch build, the source location defined in the batch build project.<br/>sourceTypeOverride:  The source input type that overrides the source input defined in the batch build project.<br/>environmentVariablesOverride:  An array of <code>EnvironmentVariable</code> objects that override, or add to, the environment variables defined in the batch build project.<br/>secondaryArtifactsOverride:  An array of <code>ProjectArtifacts</code> objects that override the secondary artifacts defined in the batch build project.<br/>artifactsOverride:  An array of <code>ProjectArtifacts</code> objects that contains information about the build output artifact overrides for the build project.:<br/>sourceVersion:  The version of the batch build input to be built, for this build only. If not specified, the latest version is used. If specified, the contents depends on the source provider: <dl> <dt>CodeCommit</dt> <dd> The commit ID, branch, or Git tag to use. </dd> <dt>GitHub</dt> <dd> The commit ID, pull request ID, branch name, or tag name that corresponds to the version of the source code you want to build. If a pull request ID is specified, it must use the format <code>pr/pull-request-ID</code> (for example <code>pr/25</code>). If a branch name is specified, the branch's HEAD commit ID is used. If not specified, the default branch's HEAD commit ID is used. </dd> <dt>Bitbucket</dt> <dd> The commit ID, branch name, or tag name that corresponds to the version of the source code you want to build. If a branch name is specified, the branch's HEAD commit ID is used. If not specified, the default branch's HEAD commit ID is used. </dd> <dt>Amazon S3</dt> <dd> The version ID of the object that represents the build input ZIP file to use. </dd> </dl> If <code>sourceVersion</code> is specified at the project level, then this <code>sourceVersion</code> (at the build level) takes precedence.  For more information, see <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/sample-source-version.html">Source Version Sample with CodeBuild</a> in the <i>CodeBuild User Guide</i>. <br/>secondarySourcesVersionOverride:  An array of <code>ProjectSourceVersion</code> objects that override the secondary source versions in the batch build project.<br/>secondarySourcesOverride:  An array of <code>ProjectSource</code> objects that override the secondary sources defined in the batch build project.<br/>projectName:  The name of the project.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>artifactIdentifier</i>  An identifier for this artifact definition. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>encryptionDisabled</i>  Set to true if you do not want your output artifacts encrypted. This option is valid only if your artifacts type is Amazon S3. If this is set with another artifacts type, an invalidInputException is thrown. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>overrideArtifactName</i>  If this flag is set, a name specified in the buildspec file overrides the artifact name. The name specified in a buildspec file is calculated at build time and uses the Shell Command Language. For example, you can append a date and time to your artifact name so that it is always unique. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>packaging</i> The type of build output artifact to create: <ul> <li> If <code>type</code> is set to <code>CODEPIPELINE</code>, CodePipeline ignores this value if specified. This is because CodePipeline manages its build output artifacts instead of CodeBuild. </li> <li> If <code>type</code> is set to <code>NO_ARTIFACTS</code>, this value is ignored if specified, because no build output is produced. </li> <li> If <code>type</code> is set to <code>S3</code>, valid values include: <ul> <li>  <code>NONE</code>: CodeBuild creates in the output bucket a folder that contains the build output. This is the default if <code>packaging</code> is not specified. </li> <li>  <code>ZIP</code>: CodeBuild creates in the output bucket a ZIP file that contains the build output. </li> </ul> </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> Along with <code>path</code> and <code>namespaceType</code>, the pattern that CodeBuild uses to name and store the output artifact: <ul> <li> If <code>type</code> is set to <code>CODEPIPELINE</code>, CodePipeline ignores this value if specified. This is because CodePipeline manages its build output names instead of CodeBuild. </li> <li> If <code>type</code> is set to <code>NO_ARTIFACTS</code>, this value is ignored if specified, because no build output is produced. </li> <li> If <code>type</code> is set to <code>S3</code>, this is the name of the output artifact object. If you set the name to be a forward slash ("/"), the artifact is stored in the root of the output bucket. </li> </ul> For example: <ul> <li>  If <code>path</code> is set to <code>MyArtifacts</code>, <code>namespaceType</code> is set to <code>BUILD_ID</code>, and <code>name</code> is set to <code>MyArtifact.zip</code>, then the output artifact is stored in <code>MyArtifacts/&lt;build-ID&gt;/MyArtifact.zip</code>.  </li> <li>  If <code>path</code> is empty, <code>namespaceType</code> is set to <code>NONE</code>, and <code>name</code> is set to "<code>/</code>", the output artifact is stored in the root of the output bucket.  </li> <li>  If <code>path</code> is set to <code>MyArtifacts</code>, <code>namespaceType</code> is set to <code>BUILD_ID</code>, and <code>name</code> is set to "<code>/</code>", the output artifact is stored in <code>MyArtifacts/&lt;build-ID&gt;</code>.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>namespaceType</i> Along with <code>path</code> and <code>name</code>, the pattern that CodeBuild uses to determine the name and location to store the output artifact: <ul> <li> If <code>type</code> is set to <code>CODEPIPELINE</code>, CodePipeline ignores this value if specified. This is because CodePipeline manages its build output names instead of CodeBuild. </li> <li> If <code>type</code> is set to <code>NO_ARTIFACTS</code>, this value is ignored if specified, because no build output is produced. </li> <li> If <code>type</code> is set to <code>S3</code>, valid values include: <ul> <li>  <code>BUILD_ID</code>: Include the build ID in the location of the build output artifact. </li> <li>  <code>NONE</code>: Do not include the build ID. This is the default if <code>namespaceType</code> is not specified. </li> </ul> </li> </ul> For example, if <code>path</code> is set to <code>MyArtifacts</code>, <code>namespaceType</code> is set to <code>BUILD_ID</code>, and <code>name</code> is set to <code>MyArtifact.zip</code>, the output artifact is stored in <code>MyArtifacts/&lt;build-ID&gt;/MyArtifact.zip</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>path</i> Along with <code>namespaceType</code> and <code>name</code>, the pattern that CodeBuild uses to name and store the output artifact: <ul> <li> If <code>type</code> is set to <code>CODEPIPELINE</code>, CodePipeline ignores this value if specified. This is because CodePipeline manages its build output names instead of CodeBuild. </li> <li> If <code>type</code> is set to <code>NO_ARTIFACTS</code>, this value is ignored if specified, because no build output is produced. </li> <li> If <code>type</code> is set to <code>S3</code>, this is the path to the output artifact. If <code>path</code> is not specified, <code>path</code> is not used. </li> </ul> For example, if <code>path</code> is set to <code>MyArtifacts</code>, <code>namespaceType</code> is set to <code>NONE</code>, and <code>name</code> is set to <code>MyArtifact.zip</code>, the output artifact is stored in the output bucket at <code>MyArtifacts/MyArtifact.zip</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i> Information about the build output artifact location: <ul> <li> If <code>type</code> is set to <code>CODEPIPELINE</code>, CodePipeline ignores this value if specified. This is because CodePipeline manages its build output locations instead of CodeBuild. </li> <li> If <code>type</code> is set to <code>NO_ARTIFACTS</code>, this value is ignored if specified, because no build output is produced. </li> <li> If <code>type</code> is set to <code>S3</code>, this is the name of the output bucket. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of build output artifact. Valid values include: <ul> <li>  <code>CODEPIPELINE</code>: The build project has build output generated through CodePipeline.  <note> The <code>CODEPIPELINE</code> type is not supported for <code>secondaryArtifacts</code>. </note> </li> <li>  <code>NO_ARTIFACTS</code>: The build project does not produce any build output. </li> <li>  <code>S3</code>: The build project stores build output in Amazon S3. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resource</i> The resource value that applies to the specified authorization type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> <note>  This data type is deprecated and is no longer accurate or used.  </note> The authorization type to use. The only valid value is <code>OAUTH</code>, which represents the OAuth authorization type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>fetchSubmodules</i>  Set to true to fetch Git submodules for your CodeBuild build project. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>modes</i> An array of strings that specify the local cache modes. You can use one or more local cache modes at the same time. This is only used for <code>LOCAL</code> cache types. Possible values are: <dl> <dt>LOCAL_SOURCE_CACHE</dt> <dd> Caches Git metadata for primary and secondary sources. After the cache is created, subsequent builds pull only the change between commits. This mode is a good choice for projects with a clean working directory and a source that is a large Git repository. If you choose this option and your project does not use a Git repository (GitHub, GitHub Enterprise, or Bitbucket), the option is ignored.  </dd> <dt>LOCAL_DOCKER_LAYER_CACHE</dt> <dd> Caches existing Docker layers. This mode is a good choice for projects that build or pull large Docker images. It can prevent the performance issues caused by pulling large Docker images down from the network.  <note> <ul> <li> You can use a Docker layer cache in the Linux environment only.  </li> <li> The <code>privileged</code> flag must be set so that your project has the required Docker permissions.  </li> <li> You should consider the security implications before you use a Docker layer cache.  </li> </ul> </note> </dd> <dt>LOCAL_CUSTOM_CACHE</dt> <dd> Caches directories you specify in the buildspec file. This mode is a good choice if your build scenario is not suited to one of the other three local cache modes. If you use a custom cache:  <ul> <li> Only directories can be specified for caching. You cannot specify individual files.  </li> <li> Symlinks are used to reference cached directories.  </li> <li> Cached directories are linked to your build before it downloads its project sources. Cached items are overridden if a source item has the same name. Directories are specified using cache paths in the buildspec file.  </li> </ul> </dd> </dl><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i> Information about the cache location:  <ul> <li>  <code>NO_CACHE</code> or <code>LOCAL</code>: This value is ignored. </li> <li>  <code>S3</code>: This is the S3 bucket name/prefix. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of cache used by the build project. Valid values include: <ul> <li>  <code>NO_CACHE</code>: The build project does not use any cache. </li> <li>  <code>S3</code>: The build project reads and writes from and to S3. </li> <li>  <code>LOCAL</code>: The build project stores a cache locally on a build host that is only available to that build host. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>s3Logs</i>  Information about logs built to an S3 bucket for a build project. S3 logs are not enabled by default. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>s3Logs</b>:  Information about logs built to an S3 bucket for a build project. S3 logs are not enabled by default. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>cloudWatchLogs</i>  Information about CloudWatch Logs for a build project. CloudWatch Logs are enabled by default. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>cloudWatchLogs</b>:  Information about CloudWatch Logs for a build project. CloudWatch Logs are enabled by default. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>streamName</i>  The prefix of the stream name of the CloudWatch Logs. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html">Working with Log Groups and Log Streams</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>groupName</i>  The group name of the logs in CloudWatch Logs. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html">Working with Log Groups and Log Streams</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current status of the logs in CloudWatch Logs for a build project. Valid values are: <ul> <li>  <code>ENABLED</code>: CloudWatch Logs are enabled for this build project. </li> <li>  <code>DISABLED</code>: CloudWatch Logs are not enabled for this build project. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>encryptionDisabled</i>  Set to true if you do not want your S3 build log output encrypted. By default S3 build logs are encrypted. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i>  The ARN of an S3 bucket and the path prefix for S3 logs. If your Amazon S3 bucket name is <code>my-bucket</code>, and your path prefix is <code>build-log</code>, then acceptable formats are <code>my-bucket/build-log</code> or <code>arn:aws:s3:::my-bucket/build-log</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current status of the S3 build logs. Valid values are: <ul> <li>  <code>ENABLED</code>: S3 build logs are enabled for this build project. </li> <li>  <code>DISABLED</code>: S3 build logs are not enabled for this build project. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>credentialProvider</i>  The service that created the credentials to access a private Docker registry. The valid value, SECRETS_MANAGER, is for Secrets Manager. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>credential</i>  The Amazon Resource Name (ARN) or name of credentials created using Secrets Manager.  <note>  The <code>credential</code> can use the name of the credentials only if they exist in your current Region.  </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>timeoutInMins</i> Specifies the maximum amount of time, in minutes, that the batch build must be completed in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>restrictions</i> A <code>BatchRestrictions</code> object that specifies the restrictions for the batch build.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>restrictions</b>: A <code>BatchRestrictions</code> object that specifies the restrictions for the batch build.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>combineArtifacts</i> Specifies if the build artifacts for the batch build should be combined into a single artifact location.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>serviceRole</i> Specifies the service role ARN for the batch build project.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>computeTypesAllowed</i> An array of strings that specify the compute types that are allowed for the batch build. See <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html">Build environment compute types</a> in the <i>CodeBuild User Guide</i> for these values. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>maximumBuildsAllowed</i> Specifies the maximum number of builds allowed.<br/>
        :return: buildBatch:  A <code>BuildBatch</code> object that contains information about the batch build.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>debugSessionEnabled</i> Specifies if session debugging is enabled for this batch build. For more information, see <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/session-manager.html">Viewing a running build in Session Manager</a>. Batch session debugging is not supported for matrix batch builds.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>buildGroups</i> An array of <code>BuildGroup</code> objects that define the build groups for the batch build.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>buildBatchConfig</i> Contains configuration information about a batch build project.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>buildBatchConfig</b>: Contains configuration information about a batch build project.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>fileSystemLocations</i> An array of <code>ProjectFileSystemLocation</code> objects for the batch build project. A <code>ProjectFileSystemLocation</code> object specifies the <code>identifier</code>, <code>location</code>, <code>mountOptions</code>, <code>mountPoint</code>, and <code>type</code> of a file system created using Amazon Elastic File System. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>buildBatchNumber</i> The number of the batch build. For each project, the <code>buildBatchNumber</code> of its first batch build is <code>1</code>. The <code>buildBatchNumber</code> of each subsequent batch build is incremented by <code>1</code>. If a batch build is deleted, the <code>buildBatchNumber</code> of other batch builds does not change.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>encryptionKey</i> The Key Management Service customer master key (CMK) to be used for encrypting the batch build output artifacts. <note> You can use a cross-account KMS key to encrypt the build output artifacts if your service role has permission to that key.  </note> You can specify either the Amazon Resource Name (ARN) of the CMK or, if available, the CMK's alias (using the format <code>alias/&lt;alias-name&gt;</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>vpcConfig</i> Information about the VPC configuration that CodeBuild accesses.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>vpcConfig</b>: Information about the VPC configuration that CodeBuild accesses.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>initiator</i> The entity that started the batch build. Valid values include: <ul> <li> If CodePipeline started the build, the pipeline's name (for example, <code>codepipeline/my-demo-pipeline</code>). </li> <li> If an Identity and Access Management user started the build, the user's name. </li> <li> If the Jenkins plugin for CodeBuild started the build, the string <code>CodeBuild-Jenkins-Plugin</code>. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>complete</i> Indicates if the batch build is complete.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>queuedTimeoutInMinutes</i> Specifies the amount of time, in minutes, that the batch build is allowed to be queued before it times out.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>buildTimeoutInMinutes</i> Specifies the maximum amount of time, in minutes, that the build in a batch must be completed in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>logConfig</i>  Information about logs for a build project. These can be logs in CloudWatch Logs, built in a specified S3 bucket, or both. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>logConfig</b>:  Information about logs for a build project. These can be logs in CloudWatch Logs, built in a specified S3 bucket, or both. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>serviceRole</i> The name of a service role used for builds in the batch.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>environment</i> Information about the build environment of the build project.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>environment</b>: Information about the build environment of the build project.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>cache</i> Information about the cache for the build project.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>cache</b>: Information about the cache for the build project.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>secondaryArtifacts</i> An array of <code>BuildArtifacts</code> objects the define the build artifacts for this batch build.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>artifacts</i> A <code>BuildArtifacts</code> object the defines the build artifacts for this batch build.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>artifacts</b>: A <code>BuildArtifacts</code> object the defines the build artifacts for this batch build.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>secondarySourceVersions</i> An array of <code>ProjectSourceVersion</code> objects. Each <code>ProjectSourceVersion</code> must be one of:  <ul> <li> For CodeCommit: the commit ID, branch, or Git tag to use. </li> <li> For GitHub: the commit ID, pull request ID, branch name, or tag name that corresponds to the version of the source code you want to build. If a pull request ID is specified, it must use the format <code>pr/pull-request-ID</code> (for example, <code>pr/25</code>). If a branch name is specified, the branch's HEAD commit ID is used. If not specified, the default branch's HEAD commit ID is used. </li> <li> For Bitbucket: the commit ID, branch name, or tag name that corresponds to the version of the source code you want to build. If a branch name is specified, the branch's HEAD commit ID is used. If not specified, the default branch's HEAD commit ID is used. </li> <li> For Amazon S3: the version ID of the object that represents the build input ZIP file to use. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>secondarySources</i> An array of <code>ProjectSource</code> objects that define the sources for the batch build.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>source</i> Information about the build input source code for the build project.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>source</b>: Information about the build input source code for the build project.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>phases</i> An array of <code>BuildBatchPhase</code> objects the specify the phases of the batch build.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>projectName</i> The name of the batch build project.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resolvedSourceVersion</i> The identifier of the resolved version of this batch build's source code. <ul> <li> For CodeCommit, GitHub, GitHub Enterprise, and BitBucket, the commit ID. </li> <li> For CodePipeline, the source revision provided by CodePipeline. </li> <li> For Amazon S3, this does not apply. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>sourceVersion</i> The identifier of the version of the source code to be built.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>buildBatchStatus</i> The status of the batch build.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>currentPhase</i> The current phase of the batch build.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>endTime</i> The date and time that the batch build ended.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>startTime</i> The date and time that the batch build started.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The ARN of the batch build.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The identifier of the batch build.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>gitCloneDepth</i> Information about the Git clone depth for the build project.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i> Information about the location of the source code to be built. Valid values include: <ul> <li> For source code settings that are specified in the source action of a pipeline in CodePipeline, <code>location</code> should not be specified. If it is specified, CodePipeline ignores it. This is because CodePipeline uses the settings in a pipeline's source action instead of this value. </li> <li> For source code in an CodeCommit repository, the HTTPS clone URL to the repository that contains the source code and the buildspec file (for example, <code>https://git-codecommit.&lt;region-ID&gt;.amazonaws.com/v1/repos/&lt;repo-name&gt;</code>). </li> <li> For source code in an Amazon S3 input bucket, one of the following.  <ul> <li> The path to the ZIP file that contains the source code (for example, <code>&lt;bucket-name&gt;/&lt;path&gt;/&lt;object-name&gt;.zip</code>).  </li> <li> The path to the folder that contains the source code (for example, <code>&lt;bucket-name&gt;/&lt;path-to-source-code&gt;/&lt;folder&gt;/</code>).  </li> </ul> </li> <li> For source code in a GitHub repository, the HTTPS clone URL to the repository that contains the source and the buildspec file. You must connect your account to your GitHub account. Use the CodeBuild console to start creating a build project. When you use the console to connect (or reconnect) with GitHub, on the GitHub <b>Authorize application</b> page, for <b>Organization access</b>, choose <b>Request access</b> next to each repository you want to allow CodeBuild to have access to, and then choose <b>Authorize application</b>. (After you have connected to your GitHub account, you do not need to finish creating the build project. You can leave the CodeBuild console.) To instruct CodeBuild to use this connection, in the <code>source</code> object, set the <code>auth</code> object's <code>type</code> value to <code>OAUTH</code>. </li> <li> For source code in a Bitbucket repository, the HTTPS clone URL to the repository that contains the source and the buildspec file. You must connect your Amazon Web Services account to your Bitbucket account. Use the CodeBuild console to start creating a build project. When you use the console to connect (or reconnect) with Bitbucket, on the Bitbucket <b>Confirm access to your account</b> page, choose <b>Grant access</b>. (After you have connected to your Bitbucket account, you do not need to finish creating the build project. You can leave the CodeBuild console.) To instruct CodeBuild to use this connection, in the <code>source</code> object, set the <code>auth</code> object's <code>type</code> value to <code>OAUTH</code>. </li> </ul>  If you specify <code>CODEPIPELINE</code> for the <code>Type</code> property, don't specify this property. For all of the other types, you must specify <code>Location</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of repository that contains the source code to be built. Valid values include: <ul> <li>  <code>BITBUCKET</code>: The source code is in a Bitbucket repository. </li> <li>  <code>CODECOMMIT</code>: The source code is in an CodeCommit repository. </li> <li>  <code>CODEPIPELINE</code>: The source code settings are specified in the source action of a pipeline in CodePipeline. </li> <li>  <code>GITHUB</code>: The source code is in a GitHub or GitHub Enterprise Cloud repository. </li> <li>  <code>GITHUB_ENTERPRISE</code>: The source code is in a GitHub Enterprise Server repository. </li> <li>  <code>NO_SOURCE</code>: The project does not have input source code. </li> <li>  <code>S3</code>: The source code is in an Amazon S3 bucket. </li> </ul><br/> Information about the Git submodules configuration for the build project. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>gitSubmodulesConfig</b>:  Information about the Git submodules configuration for the build project. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>artifactIdentifier</i>  An identifier for this artifact definition. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>encryptionDisabled</i>  Information that tells you if encryption for build artifacts is disabled. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>overrideArtifactName</i>  If this flag is set, a name specified in the buildspec file overrides the artifact name. The name specified in a buildspec file is calculated at build time and uses the Shell Command Language. For example, you can append a date and time to your artifact name so that it is always unique. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>md5sum</i> The MD5 hash of the build artifact. You can use this hash along with a checksum tool to confirm file integrity and authenticity. <note> This value is available only if the build project's <code>packaging</code> value is set to <code>ZIP</code>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>sha256sum</i> The SHA-256 hash of the build artifact. You can use this hash along with a checksum tool to confirm file integrity and authenticity. <note> This value is available only if the build project's <code>packaging</code> value is set to <code>ZIP</code>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i> Information about the location of the build artifacts.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>modes</i> An array of strings that specify the local cache modes. You can use one or more local cache modes at the same time. This is only used for <code>LOCAL</code> cache types. Possible values are: <dl> <dt>LOCAL_SOURCE_CACHE</dt> <dd> Caches Git metadata for primary and secondary sources. After the cache is created, subsequent builds pull only the change between commits. This mode is a good choice for projects with a clean working directory and a source that is a large Git repository. If you choose this option and your project does not use a Git repository (GitHub, GitHub Enterprise, or Bitbucket), the option is ignored.  </dd> <dt>LOCAL_DOCKER_LAYER_CACHE</dt> <dd> Caches existing Docker layers. This mode is a good choice for projects that build or pull large Docker images. It can prevent the performance issues caused by pulling large Docker images down from the network.  <note> <ul> <li> You can use a Docker layer cache in the Linux environment only.  </li> <li> The <code>privileged</code> flag must be set so that your project has the required Docker permissions.  </li> <li> You should consider the security implications before you use a Docker layer cache.  </li> </ul> </note> </dd> <dt>LOCAL_CUSTOM_CACHE</dt> <dd> Caches directories you specify in the buildspec file. This mode is a good choice if your build scenario is not suited to one of the other three local cache modes. If you use a custom cache:  <ul> <li> Only directories can be specified for caching. You cannot specify individual files.  </li> <li> Symlinks are used to reference cached directories.  </li> <li> Cached directories are linked to your build before it downloads its project sources. Cached items are overridden if a source item has the same name. Directories are specified using cache paths in the buildspec file.  </li> </ul> </dd> </dl><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i> Information about the cache location:  <ul> <li>  <code>NO_CACHE</code> or <code>LOCAL</code>: This value is ignored. </li> <li>  <code>S3</code>: This is the S3 bucket name/prefix. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of cache used by the build project. Valid values include: <ul> <li>  <code>NO_CACHE</code>: The build project does not use any cache. </li> <li>  <code>S3</code>: The build project reads and writes from and to S3. </li> <li>  <code>LOCAL</code>: The build project stores a cache locally on a build host that is only available to that build host. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>certificate</i> The ARN of the Amazon S3 bucket, path prefix, and object key that contains the PEM-encoded certificate for the build project. For more information, see <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/create-project-cli.html#cli.environment.certificate">certificate</a> in the <i>CodeBuild User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>privilegedMode</i> Enables running the Docker daemon inside a Docker container. Set to true only if the build project is used to build Docker images. Otherwise, a build that attempts to interact with the Docker daemon fails. The default setting is <code>false</code>. You can initialize the Docker daemon during the install phase of your build by adding one of the following sets of commands to the install phase of your buildspec file: If the operating system's base image is Ubuntu Linux:  <code>- nohup /usr/local/bin/dockerd --host=unix:///var/run/docker.sock --host=tcp://0.0.0.0:2375 --storage-driver=overlay&amp;</code>   <code>- timeout 15 sh -c "until docker info; do echo .; sleep 1; done"</code>  If the operating system's base image is Alpine Linux and the previous command does not work, add the <code>-t</code> argument to <code>timeout</code>:  <code>- nohup /usr/local/bin/dockerd --host=unix:///var/run/docker.sock --host=tcp://0.0.0.0:2375 --storage-driver=overlay&amp;</code>   <code>- timeout -t 15 sh -c "until docker info; do echo .; sleep 1; done"</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>environmentVariables</i> A set of environment variables to make available to builds for this build project.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>computeType</i> Information about the compute resources the build project uses. Available values include: <ul> <li>  <code>BUILD_GENERAL1_SMALL</code>: Use up to 3 GB memory and 2 vCPUs for builds. </li> <li>  <code>BUILD_GENERAL1_MEDIUM</code>: Use up to 7 GB memory and 4 vCPUs for builds. </li> <li>  <code>BUILD_GENERAL1_LARGE</code>: Use up to 16 GB memory and 8 vCPUs for builds, depending on your environment type. </li> <li>  <code>BUILD_GENERAL1_2XLARGE</code>: Use up to 145 GB memory, 72 vCPUs, and 824 GB of SSD storage for builds. This compute type supports Docker images up to 100 GB uncompressed. </li> </ul>  If you use <code>BUILD_GENERAL1_LARGE</code>:  <ul> <li>  For environment type <code>LINUX_CONTAINER</code>, you can use up to 15 GB memory and 8 vCPUs for builds.  </li> <li>  For environment type <code>LINUX_GPU_CONTAINER</code>, you can use up to 255 GB memory, 32 vCPUs, and 4 NVIDIA Tesla V100 GPUs for builds. </li> <li>  For environment type <code>ARM_CONTAINER</code>, you can use up to 16 GB memory and 8 vCPUs on ARM-based processors for builds. </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html">Build Environment Compute Types</a> in the <i>CodeBuild User Guide.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>image</i> The image tag or image digest that identifies the Docker image to use for this build project. Use the following formats: <ul> <li> For an image tag: <code>&lt;registry&gt;/&lt;repository&gt;:&lt;tag&gt;</code>. For example, in the Docker repository that CodeBuild uses to manage its Docker images, this would be <code>aws/codebuild/standard:4.0</code>.  </li> <li> For an image digest: <code>&lt;registry&gt;/&lt;repository&gt;@&lt;digest&gt;</code>. For example, to specify an image with the digest "sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf," use <code>&lt;registry&gt;/&lt;repository&gt;@sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf</code>. </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-available.html">Docker images provided by CodeBuild</a> in the <i>CodeBuild user guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of build environment to use for related builds. <ul> <li> The environment type <code>ARM_CONTAINER</code> is available only in regions US East (N. Virginia), US East (Ohio), US West (Oregon), EU (Ireland), Asia Pacific (Mumbai), Asia Pacific (Tokyo), Asia Pacific (Sydney), and EU (Frankfurt). </li> <li> The environment type <code>LINUX_CONTAINER</code> with compute type <code>build.general1.2xlarge</code> is available only in regions US East (N. Virginia), US East (Ohio), US West (Oregon), Canada (Central), EU (Ireland), EU (London), EU (Frankfurt), Asia Pacific (Tokyo), Asia Pacific (Seoul), Asia Pacific (Singapore), Asia Pacific (Sydney), China (Beijing), and China (Ningxia). </li> <li> The environment type <code>LINUX_GPU_CONTAINER</code> is available only in regions US East (N. Virginia), US East (Ohio), US West (Oregon), Canada (Central), EU (Ireland), EU (London), EU (Frankfurt), Asia Pacific (Tokyo), Asia Pacific (Seoul), Asia Pacific (Singapore), Asia Pacific (Sydney) , China (Beijing), and China (Ningxia). </li> </ul> <ul> <li> The environment types <code>WINDOWS_CONTAINER</code> and <code>WINDOWS_SERVER_2019_CONTAINER</code> are available only in regions US East (N. Virginia), US East (Ohio), US West (Oregon), and EU (Ireland). </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html">Build environment compute types</a> in the <i>CodeBuild user guide</i>.<br/> The credentials for access to a private registry.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>registryCredential</b>:  The credentials for access to a private registry. Information about CloudWatch Logs for a build project. CloudWatch Logs are enabled by default. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>cloudWatchLogs</b>:  Information about CloudWatch Logs for a build project. CloudWatch Logs are enabled by default. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>securityGroupIds</i> A list of one or more security groups IDs in your Amazon VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>subnets</i> A list of one or more subnet IDs in your Amazon VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>vpcId</i> The ID of the Amazon VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>combineArtifacts</i> Specifies if the build artifacts for the batch build should be combined into a single artifact location.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>serviceRole</i> Specifies the service role ARN for the batch build project.<br/>A <code>BatchRestrictions</code> object that specifies the restrictions for the batch build.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>restrictions</b>: A <code>BatchRestrictions</code> object that specifies the restrictions for the batch build.        """
        pass

    def stop_build(self, id: str) -> StopBuildOutput:
        r"""Attempts to stop running a build.

        :param self:
        :param id:  The ID of the build.<br/>
        :return: build:  Information about the build.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>buildBatchArn</i> The ARN of the batch build that this build is a member of, if applicable.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>debugSession</i> Contains information about the debug session for this build.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>debugSession</b>: Contains information about the debug session for this build.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>fileSystemLocations</i>  An array of <code>ProjectFileSystemLocation</code> objects for a CodeBuild build project. A <code>ProjectFileSystemLocation</code> object specifies the <code>identifier</code>, <code>location</code>, <code>mountOptions</code>, <code>mountPoint</code>, and <code>type</code> of a file system created using Amazon Elastic File System. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>reportArns</i>  An array of the ARNs associated with this build's reports. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>exportedEnvironmentVariables</i> A list of exported environment variables for this build. Exported environment variables are used in conjunction with CodePipeline to export environment variables from the current build stage to subsequent stages in the pipeline. For more information, see <a href="https://docs.aws.amazon.com/codepipeline/latest/userguide/actions-variables.html">Working with variables</a> in the <i>CodePipeline User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>encryptionKey</i> The Key Management Service customer master key (CMK) to be used for encrypting the build output artifacts. <note>  You can use a cross-account KMS key to encrypt the build output artifacts if your service role has permission to that key.  </note> You can specify either the Amazon Resource Name (ARN) of the CMK or, if available, the CMK's alias (using the format <code>alias/&lt;alias-name&gt;</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>networkInterface</i> Describes a network interface.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>networkInterface</b>: Describes a network interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>vpcConfig</i> If your CodeBuild project accesses resources in an Amazon VPC, you provide this parameter that identifies the VPC ID and the list of security group IDs and subnet IDs. The security groups and subnets must belong to the same VPC. You must provide at least one security group and one subnet ID.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>vpcConfig</b>: If your CodeBuild project accesses resources in an Amazon VPC, you provide this parameter that identifies the VPC ID and the list of security group IDs and subnet IDs. The security groups and subnets must belong to the same VPC. You must provide at least one security group and one subnet ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>initiator</i> The entity that started the build. Valid values include: <ul> <li> If CodePipeline started the build, the pipeline's name (for example, <code>codepipeline/my-demo-pipeline</code>). </li> <li> If an Identity and Access Management user started the build, the user's name (for example, <code>MyUserName</code>). </li> <li> If the Jenkins plugin for CodeBuild started the build, the string <code>CodeBuild-Jenkins-Plugin</code>. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>buildComplete</i> Whether the build is complete. True if complete; otherwise, false.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>queuedTimeoutInMinutes</i>  The number of minutes a build is allowed to be queued before it times out. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>timeoutInMinutes</i> How long, in minutes, for CodeBuild to wait before timing out this build if it does not get marked as completed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>logs</i> Information about the build's logs in CloudWatch Logs.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>logs</b>: Information about the build's logs in CloudWatch Logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>serviceRole</i> The name of a service role used for this build.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>environment</i> Information about the build environment for this build.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>environment</b>: Information about the build environment for this build.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>cache</i> Information about the cache for the build.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>cache</b>: Information about the cache for the build.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>secondaryArtifacts</i>  An array of <code>ProjectArtifacts</code> objects. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>artifacts</i> Information about the output artifacts for the build.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>artifacts</b>: Information about the output artifacts for the build.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>secondarySourceVersions</i>  An array of <code>ProjectSourceVersion</code> objects. Each <code>ProjectSourceVersion</code> must be one of:  <ul> <li> For CodeCommit: the commit ID, branch, or Git tag to use. </li> <li> For GitHub: the commit ID, pull request ID, branch name, or tag name that corresponds to the version of the source code you want to build. If a pull request ID is specified, it must use the format <code>pr/pull-request-ID</code> (for example, <code>pr/25</code>). If a branch name is specified, the branch's HEAD commit ID is used. If not specified, the default branch's HEAD commit ID is used. </li> <li> For Bitbucket: the commit ID, branch name, or tag name that corresponds to the version of the source code you want to build. If a branch name is specified, the branch's HEAD commit ID is used. If not specified, the default branch's HEAD commit ID is used. </li> <li> For Amazon S3: the version ID of the object that represents the build input ZIP file to use. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>secondarySources</i>  An array of <code>ProjectSource</code> objects. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>source</i> Information about the source code to be built.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>source</b>: Information about the source code to be built.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>phases</i> Information about all previous build phases that are complete and information about any current build phase that is not yet complete.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>projectName</i> The name of the CodeBuild project.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resolvedSourceVersion</i>  An identifier for the version of this build's source code.  <ul> <li>  For CodeCommit, GitHub, GitHub Enterprise, and BitBucket, the commit ID.  </li> <li>  For CodePipeline, the source revision provided by CodePipeline.  </li> <li>  For Amazon S3, this does not apply.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>sourceVersion</i> Any version identifier for the version of the source code to be built. If <code>sourceVersion</code> is specified at the project level, then this <code>sourceVersion</code> (at the build level) takes precedence.   For more information, see <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/sample-source-version.html">Source Version Sample with CodeBuild</a> in the <i>CodeBuild User Guide</i>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>buildStatus</i> The current status of the build. Valid values include: <ul> <li>  <code>FAILED</code>: The build failed. </li> <li>  <code>FAULT</code>: The build faulted. </li> <li>  <code>IN_PROGRESS</code>: The build is still in progress. </li> <li>  <code>STOPPED</code>: The build stopped. </li> <li>  <code>SUCCEEDED</code>: The build succeeded. </li> <li>  <code>TIMED_OUT</code>: The build timed out. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>currentPhase</i> The current build phase.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>endTime</i> When the build process ended, expressed in Unix time format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>startTime</i> When the build process started, expressed in Unix time format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>buildNumber</i> The number of the build. For each project, the <code>buildNumber</code> of its first build is <code>1</code>. The <code>buildNumber</code> of each subsequent build is incremented by <code>1</code>. If a build is deleted, the <code>buildNumber</code> of other builds does not change.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the build.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The unique ID for the build.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>gitCloneDepth</i> Information about the Git clone depth for the build project.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i> Information about the location of the source code to be built. Valid values include: <ul> <li> For source code settings that are specified in the source action of a pipeline in CodePipeline, <code>location</code> should not be specified. If it is specified, CodePipeline ignores it. This is because CodePipeline uses the settings in a pipeline's source action instead of this value. </li> <li> For source code in an CodeCommit repository, the HTTPS clone URL to the repository that contains the source code and the buildspec file (for example, <code>https://git-codecommit.&lt;region-ID&gt;.amazonaws.com/v1/repos/&lt;repo-name&gt;</code>). </li> <li> For source code in an Amazon S3 input bucket, one of the following.  <ul> <li> The path to the ZIP file that contains the source code (for example, <code>&lt;bucket-name&gt;/&lt;path&gt;/&lt;object-name&gt;.zip</code>).  </li> <li> The path to the folder that contains the source code (for example, <code>&lt;bucket-name&gt;/&lt;path-to-source-code&gt;/&lt;folder&gt;/</code>).  </li> </ul> </li> <li> For source code in a GitHub repository, the HTTPS clone URL to the repository that contains the source and the buildspec file. You must connect your account to your GitHub account. Use the CodeBuild console to start creating a build project. When you use the console to connect (or reconnect) with GitHub, on the GitHub <b>Authorize application</b> page, for <b>Organization access</b>, choose <b>Request access</b> next to each repository you want to allow CodeBuild to have access to, and then choose <b>Authorize application</b>. (After you have connected to your GitHub account, you do not need to finish creating the build project. You can leave the CodeBuild console.) To instruct CodeBuild to use this connection, in the <code>source</code> object, set the <code>auth</code> object's <code>type</code> value to <code>OAUTH</code>. </li> <li> For source code in a Bitbucket repository, the HTTPS clone URL to the repository that contains the source and the buildspec file. You must connect your Amazon Web Services account to your Bitbucket account. Use the CodeBuild console to start creating a build project. When you use the console to connect (or reconnect) with Bitbucket, on the Bitbucket <b>Confirm access to your account</b> page, choose <b>Grant access</b>. (After you have connected to your Bitbucket account, you do not need to finish creating the build project. You can leave the CodeBuild console.) To instruct CodeBuild to use this connection, in the <code>source</code> object, set the <code>auth</code> object's <code>type</code> value to <code>OAUTH</code>. </li> </ul>  If you specify <code>CODEPIPELINE</code> for the <code>Type</code> property, don't specify this property. For all of the other types, you must specify <code>Location</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of repository that contains the source code to be built. Valid values include: <ul> <li>  <code>BITBUCKET</code>: The source code is in a Bitbucket repository. </li> <li>  <code>CODECOMMIT</code>: The source code is in an CodeCommit repository. </li> <li>  <code>CODEPIPELINE</code>: The source code settings are specified in the source action of a pipeline in CodePipeline. </li> <li>  <code>GITHUB</code>: The source code is in a GitHub or GitHub Enterprise Cloud repository. </li> <li>  <code>GITHUB_ENTERPRISE</code>: The source code is in a GitHub Enterprise Server repository. </li> <li>  <code>NO_SOURCE</code>: The project does not have input source code. </li> <li>  <code>S3</code>: The source code is in an Amazon S3 bucket. </li> </ul><br/> Information about the Git submodules configuration for the build project. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>gitSubmodulesConfig</b>:  Information about the Git submodules configuration for the build project. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>artifactIdentifier</i>  An identifier for this artifact definition. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>encryptionDisabled</i>  Information that tells you if encryption for build artifacts is disabled. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>overrideArtifactName</i>  If this flag is set, a name specified in the buildspec file overrides the artifact name. The name specified in a buildspec file is calculated at build time and uses the Shell Command Language. For example, you can append a date and time to your artifact name so that it is always unique. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>md5sum</i> The MD5 hash of the build artifact. You can use this hash along with a checksum tool to confirm file integrity and authenticity. <note> This value is available only if the build project's <code>packaging</code> value is set to <code>ZIP</code>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>sha256sum</i> The SHA-256 hash of the build artifact. You can use this hash along with a checksum tool to confirm file integrity and authenticity. <note> This value is available only if the build project's <code>packaging</code> value is set to <code>ZIP</code>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i> Information about the location of the build artifacts.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>modes</i> An array of strings that specify the local cache modes. You can use one or more local cache modes at the same time. This is only used for <code>LOCAL</code> cache types. Possible values are: <dl> <dt>LOCAL_SOURCE_CACHE</dt> <dd> Caches Git metadata for primary and secondary sources. After the cache is created, subsequent builds pull only the change between commits. This mode is a good choice for projects with a clean working directory and a source that is a large Git repository. If you choose this option and your project does not use a Git repository (GitHub, GitHub Enterprise, or Bitbucket), the option is ignored.  </dd> <dt>LOCAL_DOCKER_LAYER_CACHE</dt> <dd> Caches existing Docker layers. This mode is a good choice for projects that build or pull large Docker images. It can prevent the performance issues caused by pulling large Docker images down from the network.  <note> <ul> <li> You can use a Docker layer cache in the Linux environment only.  </li> <li> The <code>privileged</code> flag must be set so that your project has the required Docker permissions.  </li> <li> You should consider the security implications before you use a Docker layer cache.  </li> </ul> </note> </dd> <dt>LOCAL_CUSTOM_CACHE</dt> <dd> Caches directories you specify in the buildspec file. This mode is a good choice if your build scenario is not suited to one of the other three local cache modes. If you use a custom cache:  <ul> <li> Only directories can be specified for caching. You cannot specify individual files.  </li> <li> Symlinks are used to reference cached directories.  </li> <li> Cached directories are linked to your build before it downloads its project sources. Cached items are overridden if a source item has the same name. Directories are specified using cache paths in the buildspec file.  </li> </ul> </dd> </dl><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i> Information about the cache location:  <ul> <li>  <code>NO_CACHE</code> or <code>LOCAL</code>: This value is ignored. </li> <li>  <code>S3</code>: This is the S3 bucket name/prefix. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of cache used by the build project. Valid values include: <ul> <li>  <code>NO_CACHE</code>: The build project does not use any cache. </li> <li>  <code>S3</code>: The build project reads and writes from and to S3. </li> <li>  <code>LOCAL</code>: The build project stores a cache locally on a build host that is only available to that build host. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>certificate</i> The ARN of the Amazon S3 bucket, path prefix, and object key that contains the PEM-encoded certificate for the build project. For more information, see <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/create-project-cli.html#cli.environment.certificate">certificate</a> in the <i>CodeBuild User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>privilegedMode</i> Enables running the Docker daemon inside a Docker container. Set to true only if the build project is used to build Docker images. Otherwise, a build that attempts to interact with the Docker daemon fails. The default setting is <code>false</code>. You can initialize the Docker daemon during the install phase of your build by adding one of the following sets of commands to the install phase of your buildspec file: If the operating system's base image is Ubuntu Linux:  <code>- nohup /usr/local/bin/dockerd --host=unix:///var/run/docker.sock --host=tcp://0.0.0.0:2375 --storage-driver=overlay&amp;</code>   <code>- timeout 15 sh -c "until docker info; do echo .; sleep 1; done"</code>  If the operating system's base image is Alpine Linux and the previous command does not work, add the <code>-t</code> argument to <code>timeout</code>:  <code>- nohup /usr/local/bin/dockerd --host=unix:///var/run/docker.sock --host=tcp://0.0.0.0:2375 --storage-driver=overlay&amp;</code>   <code>- timeout -t 15 sh -c "until docker info; do echo .; sleep 1; done"</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>environmentVariables</i> A set of environment variables to make available to builds for this build project.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>computeType</i> Information about the compute resources the build project uses. Available values include: <ul> <li>  <code>BUILD_GENERAL1_SMALL</code>: Use up to 3 GB memory and 2 vCPUs for builds. </li> <li>  <code>BUILD_GENERAL1_MEDIUM</code>: Use up to 7 GB memory and 4 vCPUs for builds. </li> <li>  <code>BUILD_GENERAL1_LARGE</code>: Use up to 16 GB memory and 8 vCPUs for builds, depending on your environment type. </li> <li>  <code>BUILD_GENERAL1_2XLARGE</code>: Use up to 145 GB memory, 72 vCPUs, and 824 GB of SSD storage for builds. This compute type supports Docker images up to 100 GB uncompressed. </li> </ul>  If you use <code>BUILD_GENERAL1_LARGE</code>:  <ul> <li>  For environment type <code>LINUX_CONTAINER</code>, you can use up to 15 GB memory and 8 vCPUs for builds.  </li> <li>  For environment type <code>LINUX_GPU_CONTAINER</code>, you can use up to 255 GB memory, 32 vCPUs, and 4 NVIDIA Tesla V100 GPUs for builds. </li> <li>  For environment type <code>ARM_CONTAINER</code>, you can use up to 16 GB memory and 8 vCPUs on ARM-based processors for builds. </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html">Build Environment Compute Types</a> in the <i>CodeBuild User Guide.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>image</i> The image tag or image digest that identifies the Docker image to use for this build project. Use the following formats: <ul> <li> For an image tag: <code>&lt;registry&gt;/&lt;repository&gt;:&lt;tag&gt;</code>. For example, in the Docker repository that CodeBuild uses to manage its Docker images, this would be <code>aws/codebuild/standard:4.0</code>.  </li> <li> For an image digest: <code>&lt;registry&gt;/&lt;repository&gt;@&lt;digest&gt;</code>. For example, to specify an image with the digest "sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf," use <code>&lt;registry&gt;/&lt;repository&gt;@sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf</code>. </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-available.html">Docker images provided by CodeBuild</a> in the <i>CodeBuild user guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of build environment to use for related builds. <ul> <li> The environment type <code>ARM_CONTAINER</code> is available only in regions US East (N. Virginia), US East (Ohio), US West (Oregon), EU (Ireland), Asia Pacific (Mumbai), Asia Pacific (Tokyo), Asia Pacific (Sydney), and EU (Frankfurt). </li> <li> The environment type <code>LINUX_CONTAINER</code> with compute type <code>build.general1.2xlarge</code> is available only in regions US East (N. Virginia), US East (Ohio), US West (Oregon), Canada (Central), EU (Ireland), EU (London), EU (Frankfurt), Asia Pacific (Tokyo), Asia Pacific (Seoul), Asia Pacific (Singapore), Asia Pacific (Sydney), China (Beijing), and China (Ningxia). </li> <li> The environment type <code>LINUX_GPU_CONTAINER</code> is available only in regions US East (N. Virginia), US East (Ohio), US West (Oregon), Canada (Central), EU (Ireland), EU (London), EU (Frankfurt), Asia Pacific (Tokyo), Asia Pacific (Seoul), Asia Pacific (Singapore), Asia Pacific (Sydney) , China (Beijing), and China (Ningxia). </li> </ul> <ul> <li> The environment types <code>WINDOWS_CONTAINER</code> and <code>WINDOWS_SERVER_2019_CONTAINER</code> are available only in regions US East (N. Virginia), US East (Ohio), US West (Oregon), and EU (Ireland). </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html">Build environment compute types</a> in the <i>CodeBuild user guide</i>.<br/> The credentials for access to a private registry.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>registryCredential</b>:  The credentials for access to a private registry.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>s3LogsArn</i>  The ARN of S3 logs for a build project. Its format is <code>arn:${Partition}:s3:::${BucketName}/${ObjectName}</code>. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazons3.html#amazons3-resources-for-iam-policies">Resources Defined by Amazon S3</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>cloudWatchLogsArn</i>  The ARN of CloudWatch Logs for a build project. Its format is <code>arn:${Partition}:logs:${Region}:${Account}:log-group:${LogGroupName}:log-stream:${LogStreamName}</code>. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazoncloudwatchlogs.html#amazoncloudwatchlogs-resources-for-iam-policies">Resources Defined by CloudWatch Logs</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>s3DeepLink</i>  The URL to a build log in an S3 bucket. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>deepLink</i> The URL to an individual build log in CloudWatch Logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>streamName</i> The name of the CloudWatch Logs stream for the build logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>groupName</i> The name of the CloudWatch Logs group for the build logs.<br/> Information about CloudWatch Logs for a build project. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>cloudWatchLogs</b>:  Information about CloudWatch Logs for a build project. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>securityGroupIds</i> A list of one or more security groups IDs in your Amazon VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>subnets</i> A list of one or more subnet IDs in your Amazon VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>vpcId</i> The ID of the Amazon VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>networkInterfaceId</i> The ID of the network interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>subnetId</i> The ID of the subnet.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>sessionTarget</i> Contains the identifier of the Session Manager session used for the build. To work with the paused build, you open this session to examine, control, and resume the build.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>sessionEnabled</i> Specifies if session debugging is enabled for this build.<br/>        """
        pass

    def stop_build_batch(self, id: str) -> StopBuildBatchOutput:
        r"""Stops a running batch build.

        :param self:
        :param id:  The identifier of the batch build to stop.<br/>
        :return: buildBatch:  Contains information about a batch build.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>debugSessionEnabled</i> Specifies if session debugging is enabled for this batch build. For more information, see <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/session-manager.html">Viewing a running build in Session Manager</a>. Batch session debugging is not supported for matrix batch builds.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>buildGroups</i> An array of <code>BuildGroup</code> objects that define the build groups for the batch build.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>buildBatchConfig</i> Contains configuration information about a batch build project.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>buildBatchConfig</b>: Contains configuration information about a batch build project.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>fileSystemLocations</i> An array of <code>ProjectFileSystemLocation</code> objects for the batch build project. A <code>ProjectFileSystemLocation</code> object specifies the <code>identifier</code>, <code>location</code>, <code>mountOptions</code>, <code>mountPoint</code>, and <code>type</code> of a file system created using Amazon Elastic File System. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>buildBatchNumber</i> The number of the batch build. For each project, the <code>buildBatchNumber</code> of its first batch build is <code>1</code>. The <code>buildBatchNumber</code> of each subsequent batch build is incremented by <code>1</code>. If a batch build is deleted, the <code>buildBatchNumber</code> of other batch builds does not change.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>encryptionKey</i> The Key Management Service customer master key (CMK) to be used for encrypting the batch build output artifacts. <note> You can use a cross-account KMS key to encrypt the build output artifacts if your service role has permission to that key.  </note> You can specify either the Amazon Resource Name (ARN) of the CMK or, if available, the CMK's alias (using the format <code>alias/&lt;alias-name&gt;</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>vpcConfig</i> Information about the VPC configuration that CodeBuild accesses.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>vpcConfig</b>: Information about the VPC configuration that CodeBuild accesses.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>initiator</i> The entity that started the batch build. Valid values include: <ul> <li> If CodePipeline started the build, the pipeline's name (for example, <code>codepipeline/my-demo-pipeline</code>). </li> <li> If an Identity and Access Management user started the build, the user's name. </li> <li> If the Jenkins plugin for CodeBuild started the build, the string <code>CodeBuild-Jenkins-Plugin</code>. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>complete</i> Indicates if the batch build is complete.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>queuedTimeoutInMinutes</i> Specifies the amount of time, in minutes, that the batch build is allowed to be queued before it times out.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>buildTimeoutInMinutes</i> Specifies the maximum amount of time, in minutes, that the build in a batch must be completed in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>logConfig</i>  Information about logs for a build project. These can be logs in CloudWatch Logs, built in a specified S3 bucket, or both. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>logConfig</b>:  Information about logs for a build project. These can be logs in CloudWatch Logs, built in a specified S3 bucket, or both. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>serviceRole</i> The name of a service role used for builds in the batch.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>environment</i> Information about the build environment of the build project.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>environment</b>: Information about the build environment of the build project.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>cache</i> Information about the cache for the build project.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>cache</b>: Information about the cache for the build project.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>secondaryArtifacts</i> An array of <code>BuildArtifacts</code> objects the define the build artifacts for this batch build.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>artifacts</i> A <code>BuildArtifacts</code> object the defines the build artifacts for this batch build.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>artifacts</b>: A <code>BuildArtifacts</code> object the defines the build artifacts for this batch build.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>secondarySourceVersions</i> An array of <code>ProjectSourceVersion</code> objects. Each <code>ProjectSourceVersion</code> must be one of:  <ul> <li> For CodeCommit: the commit ID, branch, or Git tag to use. </li> <li> For GitHub: the commit ID, pull request ID, branch name, or tag name that corresponds to the version of the source code you want to build. If a pull request ID is specified, it must use the format <code>pr/pull-request-ID</code> (for example, <code>pr/25</code>). If a branch name is specified, the branch's HEAD commit ID is used. If not specified, the default branch's HEAD commit ID is used. </li> <li> For Bitbucket: the commit ID, branch name, or tag name that corresponds to the version of the source code you want to build. If a branch name is specified, the branch's HEAD commit ID is used. If not specified, the default branch's HEAD commit ID is used. </li> <li> For Amazon S3: the version ID of the object that represents the build input ZIP file to use. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>secondarySources</i> An array of <code>ProjectSource</code> objects that define the sources for the batch build.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>source</i> Information about the build input source code for the build project.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>source</b>: Information about the build input source code for the build project.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>phases</i> An array of <code>BuildBatchPhase</code> objects the specify the phases of the batch build.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>projectName</i> The name of the batch build project.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resolvedSourceVersion</i> The identifier of the resolved version of this batch build's source code. <ul> <li> For CodeCommit, GitHub, GitHub Enterprise, and BitBucket, the commit ID. </li> <li> For CodePipeline, the source revision provided by CodePipeline. </li> <li> For Amazon S3, this does not apply. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>sourceVersion</i> The identifier of the version of the source code to be built.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>buildBatchStatus</i> The status of the batch build.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>currentPhase</i> The current phase of the batch build.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>endTime</i> The date and time that the batch build ended.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>startTime</i> The date and time that the batch build started.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The ARN of the batch build.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The identifier of the batch build.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>gitCloneDepth</i> Information about the Git clone depth for the build project.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i> Information about the location of the source code to be built. Valid values include: <ul> <li> For source code settings that are specified in the source action of a pipeline in CodePipeline, <code>location</code> should not be specified. If it is specified, CodePipeline ignores it. This is because CodePipeline uses the settings in a pipeline's source action instead of this value. </li> <li> For source code in an CodeCommit repository, the HTTPS clone URL to the repository that contains the source code and the buildspec file (for example, <code>https://git-codecommit.&lt;region-ID&gt;.amazonaws.com/v1/repos/&lt;repo-name&gt;</code>). </li> <li> For source code in an Amazon S3 input bucket, one of the following.  <ul> <li> The path to the ZIP file that contains the source code (for example, <code>&lt;bucket-name&gt;/&lt;path&gt;/&lt;object-name&gt;.zip</code>).  </li> <li> The path to the folder that contains the source code (for example, <code>&lt;bucket-name&gt;/&lt;path-to-source-code&gt;/&lt;folder&gt;/</code>).  </li> </ul> </li> <li> For source code in a GitHub repository, the HTTPS clone URL to the repository that contains the source and the buildspec file. You must connect your account to your GitHub account. Use the CodeBuild console to start creating a build project. When you use the console to connect (or reconnect) with GitHub, on the GitHub <b>Authorize application</b> page, for <b>Organization access</b>, choose <b>Request access</b> next to each repository you want to allow CodeBuild to have access to, and then choose <b>Authorize application</b>. (After you have connected to your GitHub account, you do not need to finish creating the build project. You can leave the CodeBuild console.) To instruct CodeBuild to use this connection, in the <code>source</code> object, set the <code>auth</code> object's <code>type</code> value to <code>OAUTH</code>. </li> <li> For source code in a Bitbucket repository, the HTTPS clone URL to the repository that contains the source and the buildspec file. You must connect your Amazon Web Services account to your Bitbucket account. Use the CodeBuild console to start creating a build project. When you use the console to connect (or reconnect) with Bitbucket, on the Bitbucket <b>Confirm access to your account</b> page, choose <b>Grant access</b>. (After you have connected to your Bitbucket account, you do not need to finish creating the build project. You can leave the CodeBuild console.) To instruct CodeBuild to use this connection, in the <code>source</code> object, set the <code>auth</code> object's <code>type</code> value to <code>OAUTH</code>. </li> </ul>  If you specify <code>CODEPIPELINE</code> for the <code>Type</code> property, don't specify this property. For all of the other types, you must specify <code>Location</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of repository that contains the source code to be built. Valid values include: <ul> <li>  <code>BITBUCKET</code>: The source code is in a Bitbucket repository. </li> <li>  <code>CODECOMMIT</code>: The source code is in an CodeCommit repository. </li> <li>  <code>CODEPIPELINE</code>: The source code settings are specified in the source action of a pipeline in CodePipeline. </li> <li>  <code>GITHUB</code>: The source code is in a GitHub or GitHub Enterprise Cloud repository. </li> <li>  <code>GITHUB_ENTERPRISE</code>: The source code is in a GitHub Enterprise Server repository. </li> <li>  <code>NO_SOURCE</code>: The project does not have input source code. </li> <li>  <code>S3</code>: The source code is in an Amazon S3 bucket. </li> </ul><br/> Information about the Git submodules configuration for the build project. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>gitSubmodulesConfig</b>:  Information about the Git submodules configuration for the build project. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>artifactIdentifier</i>  An identifier for this artifact definition. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>encryptionDisabled</i>  Information that tells you if encryption for build artifacts is disabled. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>overrideArtifactName</i>  If this flag is set, a name specified in the buildspec file overrides the artifact name. The name specified in a buildspec file is calculated at build time and uses the Shell Command Language. For example, you can append a date and time to your artifact name so that it is always unique. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>md5sum</i> The MD5 hash of the build artifact. You can use this hash along with a checksum tool to confirm file integrity and authenticity. <note> This value is available only if the build project's <code>packaging</code> value is set to <code>ZIP</code>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>sha256sum</i> The SHA-256 hash of the build artifact. You can use this hash along with a checksum tool to confirm file integrity and authenticity. <note> This value is available only if the build project's <code>packaging</code> value is set to <code>ZIP</code>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i> Information about the location of the build artifacts.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>modes</i> An array of strings that specify the local cache modes. You can use one or more local cache modes at the same time. This is only used for <code>LOCAL</code> cache types. Possible values are: <dl> <dt>LOCAL_SOURCE_CACHE</dt> <dd> Caches Git metadata for primary and secondary sources. After the cache is created, subsequent builds pull only the change between commits. This mode is a good choice for projects with a clean working directory and a source that is a large Git repository. If you choose this option and your project does not use a Git repository (GitHub, GitHub Enterprise, or Bitbucket), the option is ignored.  </dd> <dt>LOCAL_DOCKER_LAYER_CACHE</dt> <dd> Caches existing Docker layers. This mode is a good choice for projects that build or pull large Docker images. It can prevent the performance issues caused by pulling large Docker images down from the network.  <note> <ul> <li> You can use a Docker layer cache in the Linux environment only.  </li> <li> The <code>privileged</code> flag must be set so that your project has the required Docker permissions.  </li> <li> You should consider the security implications before you use a Docker layer cache.  </li> </ul> </note> </dd> <dt>LOCAL_CUSTOM_CACHE</dt> <dd> Caches directories you specify in the buildspec file. This mode is a good choice if your build scenario is not suited to one of the other three local cache modes. If you use a custom cache:  <ul> <li> Only directories can be specified for caching. You cannot specify individual files.  </li> <li> Symlinks are used to reference cached directories.  </li> <li> Cached directories are linked to your build before it downloads its project sources. Cached items are overridden if a source item has the same name. Directories are specified using cache paths in the buildspec file.  </li> </ul> </dd> </dl><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i> Information about the cache location:  <ul> <li>  <code>NO_CACHE</code> or <code>LOCAL</code>: This value is ignored. </li> <li>  <code>S3</code>: This is the S3 bucket name/prefix. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of cache used by the build project. Valid values include: <ul> <li>  <code>NO_CACHE</code>: The build project does not use any cache. </li> <li>  <code>S3</code>: The build project reads and writes from and to S3. </li> <li>  <code>LOCAL</code>: The build project stores a cache locally on a build host that is only available to that build host. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>certificate</i> The ARN of the Amazon S3 bucket, path prefix, and object key that contains the PEM-encoded certificate for the build project. For more information, see <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/create-project-cli.html#cli.environment.certificate">certificate</a> in the <i>CodeBuild User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>privilegedMode</i> Enables running the Docker daemon inside a Docker container. Set to true only if the build project is used to build Docker images. Otherwise, a build that attempts to interact with the Docker daemon fails. The default setting is <code>false</code>. You can initialize the Docker daemon during the install phase of your build by adding one of the following sets of commands to the install phase of your buildspec file: If the operating system's base image is Ubuntu Linux:  <code>- nohup /usr/local/bin/dockerd --host=unix:///var/run/docker.sock --host=tcp://0.0.0.0:2375 --storage-driver=overlay&amp;</code>   <code>- timeout 15 sh -c "until docker info; do echo .; sleep 1; done"</code>  If the operating system's base image is Alpine Linux and the previous command does not work, add the <code>-t</code> argument to <code>timeout</code>:  <code>- nohup /usr/local/bin/dockerd --host=unix:///var/run/docker.sock --host=tcp://0.0.0.0:2375 --storage-driver=overlay&amp;</code>   <code>- timeout -t 15 sh -c "until docker info; do echo .; sleep 1; done"</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>environmentVariables</i> A set of environment variables to make available to builds for this build project.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>computeType</i> Information about the compute resources the build project uses. Available values include: <ul> <li>  <code>BUILD_GENERAL1_SMALL</code>: Use up to 3 GB memory and 2 vCPUs for builds. </li> <li>  <code>BUILD_GENERAL1_MEDIUM</code>: Use up to 7 GB memory and 4 vCPUs for builds. </li> <li>  <code>BUILD_GENERAL1_LARGE</code>: Use up to 16 GB memory and 8 vCPUs for builds, depending on your environment type. </li> <li>  <code>BUILD_GENERAL1_2XLARGE</code>: Use up to 145 GB memory, 72 vCPUs, and 824 GB of SSD storage for builds. This compute type supports Docker images up to 100 GB uncompressed. </li> </ul>  If you use <code>BUILD_GENERAL1_LARGE</code>:  <ul> <li>  For environment type <code>LINUX_CONTAINER</code>, you can use up to 15 GB memory and 8 vCPUs for builds.  </li> <li>  For environment type <code>LINUX_GPU_CONTAINER</code>, you can use up to 255 GB memory, 32 vCPUs, and 4 NVIDIA Tesla V100 GPUs for builds. </li> <li>  For environment type <code>ARM_CONTAINER</code>, you can use up to 16 GB memory and 8 vCPUs on ARM-based processors for builds. </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html">Build Environment Compute Types</a> in the <i>CodeBuild User Guide.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>image</i> The image tag or image digest that identifies the Docker image to use for this build project. Use the following formats: <ul> <li> For an image tag: <code>&lt;registry&gt;/&lt;repository&gt;:&lt;tag&gt;</code>. For example, in the Docker repository that CodeBuild uses to manage its Docker images, this would be <code>aws/codebuild/standard:4.0</code>.  </li> <li> For an image digest: <code>&lt;registry&gt;/&lt;repository&gt;@&lt;digest&gt;</code>. For example, to specify an image with the digest "sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf," use <code>&lt;registry&gt;/&lt;repository&gt;@sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf</code>. </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-available.html">Docker images provided by CodeBuild</a> in the <i>CodeBuild user guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of build environment to use for related builds. <ul> <li> The environment type <code>ARM_CONTAINER</code> is available only in regions US East (N. Virginia), US East (Ohio), US West (Oregon), EU (Ireland), Asia Pacific (Mumbai), Asia Pacific (Tokyo), Asia Pacific (Sydney), and EU (Frankfurt). </li> <li> The environment type <code>LINUX_CONTAINER</code> with compute type <code>build.general1.2xlarge</code> is available only in regions US East (N. Virginia), US East (Ohio), US West (Oregon), Canada (Central), EU (Ireland), EU (London), EU (Frankfurt), Asia Pacific (Tokyo), Asia Pacific (Seoul), Asia Pacific (Singapore), Asia Pacific (Sydney), China (Beijing), and China (Ningxia). </li> <li> The environment type <code>LINUX_GPU_CONTAINER</code> is available only in regions US East (N. Virginia), US East (Ohio), US West (Oregon), Canada (Central), EU (Ireland), EU (London), EU (Frankfurt), Asia Pacific (Tokyo), Asia Pacific (Seoul), Asia Pacific (Singapore), Asia Pacific (Sydney) , China (Beijing), and China (Ningxia). </li> </ul> <ul> <li> The environment types <code>WINDOWS_CONTAINER</code> and <code>WINDOWS_SERVER_2019_CONTAINER</code> are available only in regions US East (N. Virginia), US East (Ohio), US West (Oregon), and EU (Ireland). </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html">Build environment compute types</a> in the <i>CodeBuild user guide</i>.<br/> The credentials for access to a private registry.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>registryCredential</b>:  The credentials for access to a private registry. Information about CloudWatch Logs for a build project. CloudWatch Logs are enabled by default. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>cloudWatchLogs</b>:  Information about CloudWatch Logs for a build project. CloudWatch Logs are enabled by default. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>securityGroupIds</i> A list of one or more security groups IDs in your Amazon VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>subnets</i> A list of one or more subnet IDs in your Amazon VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>vpcId</i> The ID of the Amazon VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>combineArtifacts</i> Specifies if the build artifacts for the batch build should be combined into a single artifact location.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>serviceRole</i> Specifies the service role ARN for the batch build project.<br/>A <code>BatchRestrictions</code> object that specifies the restrictions for the batch build.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>restrictions</b>: A <code>BatchRestrictions</code> object that specifies the restrictions for the batch build.        """
        pass

    def update_project(self, name: str, description: str=None, source: ProjectSource=None, secondarySources: List[ProjectSource]=None, sourceVersion: str=None, secondarySourceVersions: List[ProjectSourceVersion]=None, artifacts: ProjectArtifacts=None, secondaryArtifacts: List[ProjectArtifacts]=None, cache: ProjectCache=None, environment: ProjectEnvironment=None, serviceRole: str=None, timeoutInMinutes: int=None, queuedTimeoutInMinutes: int=None, encryptionKey: str=None, tags: List[Tag]=None, vpcConfig: VpcConfig=None, badgeEnabled: WrapperBoolean=None, logsConfig: LogsConfig=None, fileSystemLocations: List[ProjectFileSystemLocation]=None, buildBatchConfig: ProjectBuildBatchConfig=None, concurrentBuildLimit: int=None) -> UpdateProjectOutput:
        r"""Changes the settings of a build project.

        :param self:
        :param concurrentBuildLimit:  The maximum number of concurrent builds that are allowed for this project. New builds are only started if the current number of builds is less than or equal to this limit. If the current build count meets this limit, new builds are throttled and are not run. To remove this limit, set this value to -1.<br/>buildBatchConfig:  Contains configuration information about a batch build project.:<br/>fileSystemLocations:   An array of <code>ProjectFileSystemLocation</code> objects for a CodeBuild build project. A <code>ProjectFileSystemLocation</code> object specifies the <code>identifier</code>, <code>location</code>, <code>mountOptions</code>, <code>mountPoint</code>, and <code>type</code> of a file system created using Amazon Elastic File System. <br/>logsConfig:   Information about logs for the build project. A project can create logs in CloudWatch Logs, logs in an S3 bucket, or both. :<br/>badgeEnabled:  Set this to true to generate a publicly accessible URL for your project's build badge.<br/>vpcConfig:  VpcConfig enables CodeBuild to access resources in an Amazon VPC.:<br/>tags:  An updated list of tag key and value pairs associated with this build project. These tags are available for use by Amazon Web Services services that support CodeBuild build project tags.<br/>encryptionKey:  The Key Management Service customer master key (CMK) to be used for encrypting the build output artifacts. <note>  You can use a cross-account KMS key to encrypt the build output artifacts if your service role has permission to that key.  </note> You can specify either the Amazon Resource Name (ARN) of the CMK or, if available, the CMK's alias (using the format <code>alias/&lt;alias-name&gt;</code>). <br/>queuedTimeoutInMinutes:   The number of minutes a build is allowed to be queued before it times out. <br/>timeoutInMinutes:  The replacement value in minutes, from 5 to 480 (8 hours), for CodeBuild to wait before timing out any related build that did not get marked as completed.<br/>serviceRole:  The replacement ARN of the Identity and Access Management role that enables CodeBuild to interact with dependent Amazon Web Services services on behalf of the Amazon Web Services account.<br/>environment:  Information to be changed about the build environment for the build project.:<br/>cache:  Stores recently used information so that it can be quickly accessed at a later time.:<br/>secondaryArtifacts:   An array of <code>ProjectSource</code> objects. <br/>artifacts:  Information to be changed about the build output artifacts for the build project.:<br/>secondarySourceVersions:   An array of <code>ProjectSourceVersion</code> objects. If <code>secondarySourceVersions</code> is specified at the build level, then they take over these <code>secondarySourceVersions</code> (at the project level). <br/>sourceVersion:   A version of the build input to be built for this project. If not specified, the latest version is used. If specified, it must be one of:  <ul> <li> For CodeCommit: the commit ID, branch, or Git tag to use. </li> <li> For GitHub: the commit ID, pull request ID, branch name, or tag name that corresponds to the version of the source code you want to build. If a pull request ID is specified, it must use the format <code>pr/pull-request-ID</code> (for example <code>pr/25</code>). If a branch name is specified, the branch's HEAD commit ID is used. If not specified, the default branch's HEAD commit ID is used. </li> <li> For Bitbucket: the commit ID, branch name, or tag name that corresponds to the version of the source code you want to build. If a branch name is specified, the branch's HEAD commit ID is used. If not specified, the default branch's HEAD commit ID is used. </li> <li> For Amazon S3: the version ID of the object that represents the build input ZIP file to use. </li> </ul>  If <code>sourceVersion</code> is specified at the build level, then that version takes precedence over this <code>sourceVersion</code> (at the project level).   For more information, see <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/sample-source-version.html">Source Version Sample with CodeBuild</a> in the <i>CodeBuild User Guide</i>. <br/>secondarySources:   An array of <code>ProjectSource</code> objects. <br/>source:  Information to be changed about the build input source code for the build project.:<br/>description:  A new or replacement description of the build project.<br/>name:  The name of the build project. <note> You cannot change a build project's name. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>sourceIdentifier</i> An identifier for this project source. The identifier can only contain alphanumeric characters and underscores, and must be less than 128 characters in length. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>insecureSsl</i> Enable this flag to ignore SSL warnings while connecting to the project source code.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>buildStatusConfig</i> Contains information that defines how the build project reports the build status to the source provider. This option is only used when the source provider is <code>GITHUB</code>, <code>GITHUB_ENTERPRISE</code>, or <code>BITBUCKET</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>buildStatusConfig</b>: Contains information that defines how the build project reports the build status to the source provider. This option is only used when the source provider is <code>GITHUB</code>, <code>GITHUB_ENTERPRISE</code>, or <code>BITBUCKET</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>reportBuildStatus</i>  Set to true to report the status of a build's start and finish to your source provider. This option is valid only when your source provider is GitHub, GitHub Enterprise, or Bitbucket. If this is set and you use a different source provider, an <code>invalidInputException</code> is thrown.  To be able to report the build status to the source provider, the user associated with the source provider must have write access to the repo. If the user does not have write access, the build status cannot be updated. For more information, see <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/access-tokens.html">Source provider access</a> in the <i>CodeBuild User Guide</i>. <note>  The status of a build triggered by a webhook is always reported to your source provider.  </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>auth</i> Information about the authorization settings for CodeBuild to access the source code to be built. This information is for the CodeBuild console's use only. Your code should not get or set this information directly.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>auth</b>: Information about the authorization settings for CodeBuild to access the source code to be built. This information is for the CodeBuild console's use only. Your code should not get or set this information directly.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>buildspec</i> The buildspec file declaration to use for the builds in this build project.  If this value is set, it can be either an inline buildspec definition, the path to an alternate buildspec file relative to the value of the built-in <code>CODEBUILD_SRC_DIR</code> environment variable, or the path to an S3 bucket. The bucket must be in the same Region as the build project. Specify the buildspec file using its ARN (for example, <code>arn:aws:s3:::my-codebuild-sample2/buildspec.yml</code>). If this value is not provided or is set to an empty string, the source code must contain a buildspec file in its root directory. For more information, see <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html#build-spec-ref-name-storage">Buildspec File Name and Storage Location</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>gitSubmodulesConfig</i>  Information about the Git submodules configuration for the build project. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>gitSubmodulesConfig</b>:  Information about the Git submodules configuration for the build project. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>gitCloneDepth</i> Information about the Git clone depth for the build project.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i> Information about the location of the source code to be built. Valid values include: <ul> <li> For source code settings that are specified in the source action of a pipeline in CodePipeline, <code>location</code> should not be specified. If it is specified, CodePipeline ignores it. This is because CodePipeline uses the settings in a pipeline's source action instead of this value. </li> <li> For source code in an CodeCommit repository, the HTTPS clone URL to the repository that contains the source code and the buildspec file (for example, <code>https://git-codecommit.&lt;region-ID&gt;.amazonaws.com/v1/repos/&lt;repo-name&gt;</code>). </li> <li> For source code in an Amazon S3 input bucket, one of the following.  <ul> <li> The path to the ZIP file that contains the source code (for example, <code>&lt;bucket-name&gt;/&lt;path&gt;/&lt;object-name&gt;.zip</code>).  </li> <li> The path to the folder that contains the source code (for example, <code>&lt;bucket-name&gt;/&lt;path-to-source-code&gt;/&lt;folder&gt;/</code>).  </li> </ul> </li> <li> For source code in a GitHub repository, the HTTPS clone URL to the repository that contains the source and the buildspec file. You must connect your account to your GitHub account. Use the CodeBuild console to start creating a build project. When you use the console to connect (or reconnect) with GitHub, on the GitHub <b>Authorize application</b> page, for <b>Organization access</b>, choose <b>Request access</b> next to each repository you want to allow CodeBuild to have access to, and then choose <b>Authorize application</b>. (After you have connected to your GitHub account, you do not need to finish creating the build project. You can leave the CodeBuild console.) To instruct CodeBuild to use this connection, in the <code>source</code> object, set the <code>auth</code> object's <code>type</code> value to <code>OAUTH</code>. </li> <li> For source code in a Bitbucket repository, the HTTPS clone URL to the repository that contains the source and the buildspec file. You must connect your Amazon Web Services account to your Bitbucket account. Use the CodeBuild console to start creating a build project. When you use the console to connect (or reconnect) with Bitbucket, on the Bitbucket <b>Confirm access to your account</b> page, choose <b>Grant access</b>. (After you have connected to your Bitbucket account, you do not need to finish creating the build project. You can leave the CodeBuild console.) To instruct CodeBuild to use this connection, in the <code>source</code> object, set the <code>auth</code> object's <code>type</code> value to <code>OAUTH</code>. </li> </ul>  If you specify <code>CODEPIPELINE</code> for the <code>Type</code> property, don't specify this property. For all of the other types, you must specify <code>Location</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of repository that contains the source code to be built. Valid values include: <ul> <li>  <code>BITBUCKET</code>: The source code is in a Bitbucket repository. </li> <li>  <code>CODECOMMIT</code>: The source code is in an CodeCommit repository. </li> <li>  <code>CODEPIPELINE</code>: The source code settings are specified in the source action of a pipeline in CodePipeline. </li> <li>  <code>GITHUB</code>: The source code is in a GitHub or GitHub Enterprise Cloud repository. </li> <li>  <code>GITHUB_ENTERPRISE</code>: The source code is in a GitHub Enterprise Server repository. </li> <li>  <code>NO_SOURCE</code>: The project does not have input source code. </li> <li>  <code>S3</code>: The source code is in an Amazon S3 bucket. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>fetchSubmodules</i>  Set to true to fetch Git submodules for your CodeBuild build project. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>resource</i> The resource value that applies to the specified authorization type.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> <note>  This data type is deprecated and is no longer accurate or used.  </note> The authorization type to use. The only valid value is <code>OAUTH</code>, which represents the OAuth authorization type.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>targetUrl</i> Specifies the target url of the build status CodeBuild sends to the source provider. The usage of this parameter depends on the source provider. <dl> <dt>Bitbucket</dt> <dd> This parameter is used for the <code>url</code> parameter in the Bitbucket commit status. For more information, see <a href="https://developer.atlassian.com/bitbucket/api/2/reference/resource/repositories/%7Bworkspace%7D/%7Brepo_slug%7D/commit/%7Bnode%7D/statuses/build">build</a> in the Bitbucket API documentation. </dd> <dt>GitHub/GitHub Enterprise Server</dt> <dd> This parameter is used for the <code>target_url</code> parameter in the GitHub commit status. For more information, see <a href="https://developer.github.com/v3/repos/statuses/#create-a-commit-status">Create a commit status</a> in the GitHub developer guide. </dd> </dl><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>context</i> Specifies the context of the build status CodeBuild sends to the source provider. The usage of this parameter depends on the source provider. <dl> <dt>Bitbucket</dt> <dd> This parameter is used for the <code>name</code> parameter in the Bitbucket commit status. For more information, see <a href="https://developer.atlassian.com/bitbucket/api/2/reference/resource/repositories/%7Bworkspace%7D/%7Brepo_slug%7D/commit/%7Bnode%7D/statuses/build">build</a> in the Bitbucket API documentation. </dd> <dt>GitHub/GitHub Enterprise Server</dt> <dd> This parameter is used for the <code>context</code> parameter in the GitHub commit status. For more information, see <a href="https://developer.github.com/v3/repos/statuses/#create-a-commit-status">Create a commit status</a> in the GitHub developer guide. </dd> </dl><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>artifactIdentifier</i>  An identifier for this artifact definition. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>encryptionDisabled</i>  Set to true if you do not want your output artifacts encrypted. This option is valid only if your artifacts type is Amazon S3. If this is set with another artifacts type, an invalidInputException is thrown. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>overrideArtifactName</i>  If this flag is set, a name specified in the buildspec file overrides the artifact name. The name specified in a buildspec file is calculated at build time and uses the Shell Command Language. For example, you can append a date and time to your artifact name so that it is always unique. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>packaging</i> The type of build output artifact to create: <ul> <li> If <code>type</code> is set to <code>CODEPIPELINE</code>, CodePipeline ignores this value if specified. This is because CodePipeline manages its build output artifacts instead of CodeBuild. </li> <li> If <code>type</code> is set to <code>NO_ARTIFACTS</code>, this value is ignored if specified, because no build output is produced. </li> <li> If <code>type</code> is set to <code>S3</code>, valid values include: <ul> <li>  <code>NONE</code>: CodeBuild creates in the output bucket a folder that contains the build output. This is the default if <code>packaging</code> is not specified. </li> <li>  <code>ZIP</code>: CodeBuild creates in the output bucket a ZIP file that contains the build output. </li> </ul> </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> Along with <code>path</code> and <code>namespaceType</code>, the pattern that CodeBuild uses to name and store the output artifact: <ul> <li> If <code>type</code> is set to <code>CODEPIPELINE</code>, CodePipeline ignores this value if specified. This is because CodePipeline manages its build output names instead of CodeBuild. </li> <li> If <code>type</code> is set to <code>NO_ARTIFACTS</code>, this value is ignored if specified, because no build output is produced. </li> <li> If <code>type</code> is set to <code>S3</code>, this is the name of the output artifact object. If you set the name to be a forward slash ("/"), the artifact is stored in the root of the output bucket. </li> </ul> For example: <ul> <li>  If <code>path</code> is set to <code>MyArtifacts</code>, <code>namespaceType</code> is set to <code>BUILD_ID</code>, and <code>name</code> is set to <code>MyArtifact.zip</code>, then the output artifact is stored in <code>MyArtifacts/&lt;build-ID&gt;/MyArtifact.zip</code>.  </li> <li>  If <code>path</code> is empty, <code>namespaceType</code> is set to <code>NONE</code>, and <code>name</code> is set to "<code>/</code>", the output artifact is stored in the root of the output bucket.  </li> <li>  If <code>path</code> is set to <code>MyArtifacts</code>, <code>namespaceType</code> is set to <code>BUILD_ID</code>, and <code>name</code> is set to "<code>/</code>", the output artifact is stored in <code>MyArtifacts/&lt;build-ID&gt;</code>.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>namespaceType</i> Along with <code>path</code> and <code>name</code>, the pattern that CodeBuild uses to determine the name and location to store the output artifact: <ul> <li> If <code>type</code> is set to <code>CODEPIPELINE</code>, CodePipeline ignores this value if specified. This is because CodePipeline manages its build output names instead of CodeBuild. </li> <li> If <code>type</code> is set to <code>NO_ARTIFACTS</code>, this value is ignored if specified, because no build output is produced. </li> <li> If <code>type</code> is set to <code>S3</code>, valid values include: <ul> <li>  <code>BUILD_ID</code>: Include the build ID in the location of the build output artifact. </li> <li>  <code>NONE</code>: Do not include the build ID. This is the default if <code>namespaceType</code> is not specified. </li> </ul> </li> </ul> For example, if <code>path</code> is set to <code>MyArtifacts</code>, <code>namespaceType</code> is set to <code>BUILD_ID</code>, and <code>name</code> is set to <code>MyArtifact.zip</code>, the output artifact is stored in <code>MyArtifacts/&lt;build-ID&gt;/MyArtifact.zip</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>path</i> Along with <code>namespaceType</code> and <code>name</code>, the pattern that CodeBuild uses to name and store the output artifact: <ul> <li> If <code>type</code> is set to <code>CODEPIPELINE</code>, CodePipeline ignores this value if specified. This is because CodePipeline manages its build output names instead of CodeBuild. </li> <li> If <code>type</code> is set to <code>NO_ARTIFACTS</code>, this value is ignored if specified, because no build output is produced. </li> <li> If <code>type</code> is set to <code>S3</code>, this is the path to the output artifact. If <code>path</code> is not specified, <code>path</code> is not used. </li> </ul> For example, if <code>path</code> is set to <code>MyArtifacts</code>, <code>namespaceType</code> is set to <code>NONE</code>, and <code>name</code> is set to <code>MyArtifact.zip</code>, the output artifact is stored in the output bucket at <code>MyArtifacts/MyArtifact.zip</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i> Information about the build output artifact location: <ul> <li> If <code>type</code> is set to <code>CODEPIPELINE</code>, CodePipeline ignores this value if specified. This is because CodePipeline manages its build output locations instead of CodeBuild. </li> <li> If <code>type</code> is set to <code>NO_ARTIFACTS</code>, this value is ignored if specified, because no build output is produced. </li> <li> If <code>type</code> is set to <code>S3</code>, this is the name of the output bucket. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of build output artifact. Valid values include: <ul> <li>  <code>CODEPIPELINE</code>: The build project has build output generated through CodePipeline.  <note> The <code>CODEPIPELINE</code> type is not supported for <code>secondaryArtifacts</code>. </note> </li> <li>  <code>NO_ARTIFACTS</code>: The build project does not produce any build output. </li> <li>  <code>S3</code>: The build project stores build output in Amazon S3. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>modes</i> An array of strings that specify the local cache modes. You can use one or more local cache modes at the same time. This is only used for <code>LOCAL</code> cache types. Possible values are: <dl> <dt>LOCAL_SOURCE_CACHE</dt> <dd> Caches Git metadata for primary and secondary sources. After the cache is created, subsequent builds pull only the change between commits. This mode is a good choice for projects with a clean working directory and a source that is a large Git repository. If you choose this option and your project does not use a Git repository (GitHub, GitHub Enterprise, or Bitbucket), the option is ignored.  </dd> <dt>LOCAL_DOCKER_LAYER_CACHE</dt> <dd> Caches existing Docker layers. This mode is a good choice for projects that build or pull large Docker images. It can prevent the performance issues caused by pulling large Docker images down from the network.  <note> <ul> <li> You can use a Docker layer cache in the Linux environment only.  </li> <li> The <code>privileged</code> flag must be set so that your project has the required Docker permissions.  </li> <li> You should consider the security implications before you use a Docker layer cache.  </li> </ul> </note> </dd> <dt>LOCAL_CUSTOM_CACHE</dt> <dd> Caches directories you specify in the buildspec file. This mode is a good choice if your build scenario is not suited to one of the other three local cache modes. If you use a custom cache:  <ul> <li> Only directories can be specified for caching. You cannot specify individual files.  </li> <li> Symlinks are used to reference cached directories.  </li> <li> Cached directories are linked to your build before it downloads its project sources. Cached items are overridden if a source item has the same name. Directories are specified using cache paths in the buildspec file.  </li> </ul> </dd> </dl><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i> Information about the cache location:  <ul> <li>  <code>NO_CACHE</code> or <code>LOCAL</code>: This value is ignored. </li> <li>  <code>S3</code>: This is the S3 bucket name/prefix. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of cache used by the build project. Valid values include: <ul> <li>  <code>NO_CACHE</code>: The build project does not use any cache. </li> <li>  <code>S3</code>: The build project reads and writes from and to S3. </li> <li>  <code>LOCAL</code>: The build project stores a cache locally on a build host that is only available to that build host. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>imagePullCredentialsType</i>  The type of credentials CodeBuild uses to pull images in your build. There are two valid values:  <ul> <li>  <code>CODEBUILD</code> specifies that CodeBuild uses its own credentials. This requires that you modify your ECR repository policy to trust CodeBuild service principal.  </li> <li>  <code>SERVICE_ROLE</code> specifies that CodeBuild uses your build project's service role.  </li> </ul>  When you use a cross-account or private registry image, you must use SERVICE_ROLE credentials. When you use an CodeBuild curated image, you must use CODEBUILD credentials. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>registryCredential</i>  The credentials for access to a private registry.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>registryCredential</b>:  The credentials for access to a private registry.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>certificate</i> The ARN of the Amazon S3 bucket, path prefix, and object key that contains the PEM-encoded certificate for the build project. For more information, see <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/create-project-cli.html#cli.environment.certificate">certificate</a> in the <i>CodeBuild User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>privilegedMode</i> Enables running the Docker daemon inside a Docker container. Set to true only if the build project is used to build Docker images. Otherwise, a build that attempts to interact with the Docker daemon fails. The default setting is <code>false</code>. You can initialize the Docker daemon during the install phase of your build by adding one of the following sets of commands to the install phase of your buildspec file: If the operating system's base image is Ubuntu Linux:  <code>- nohup /usr/local/bin/dockerd --host=unix:///var/run/docker.sock --host=tcp://0.0.0.0:2375 --storage-driver=overlay&amp;</code>   <code>- timeout 15 sh -c "until docker info; do echo .; sleep 1; done"</code>  If the operating system's base image is Alpine Linux and the previous command does not work, add the <code>-t</code> argument to <code>timeout</code>:  <code>- nohup /usr/local/bin/dockerd --host=unix:///var/run/docker.sock --host=tcp://0.0.0.0:2375 --storage-driver=overlay&amp;</code>   <code>- timeout -t 15 sh -c "until docker info; do echo .; sleep 1; done"</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>environmentVariables</i> A set of environment variables to make available to builds for this build project.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>computeType</i> Information about the compute resources the build project uses. Available values include: <ul> <li>  <code>BUILD_GENERAL1_SMALL</code>: Use up to 3 GB memory and 2 vCPUs for builds. </li> <li>  <code>BUILD_GENERAL1_MEDIUM</code>: Use up to 7 GB memory and 4 vCPUs for builds. </li> <li>  <code>BUILD_GENERAL1_LARGE</code>: Use up to 16 GB memory and 8 vCPUs for builds, depending on your environment type. </li> <li>  <code>BUILD_GENERAL1_2XLARGE</code>: Use up to 145 GB memory, 72 vCPUs, and 824 GB of SSD storage for builds. This compute type supports Docker images up to 100 GB uncompressed. </li> </ul>  If you use <code>BUILD_GENERAL1_LARGE</code>:  <ul> <li>  For environment type <code>LINUX_CONTAINER</code>, you can use up to 15 GB memory and 8 vCPUs for builds.  </li> <li>  For environment type <code>LINUX_GPU_CONTAINER</code>, you can use up to 255 GB memory, 32 vCPUs, and 4 NVIDIA Tesla V100 GPUs for builds. </li> <li>  For environment type <code>ARM_CONTAINER</code>, you can use up to 16 GB memory and 8 vCPUs on ARM-based processors for builds. </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html">Build Environment Compute Types</a> in the <i>CodeBuild User Guide.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>image</i> The image tag or image digest that identifies the Docker image to use for this build project. Use the following formats: <ul> <li> For an image tag: <code>&lt;registry&gt;/&lt;repository&gt;:&lt;tag&gt;</code>. For example, in the Docker repository that CodeBuild uses to manage its Docker images, this would be <code>aws/codebuild/standard:4.0</code>.  </li> <li> For an image digest: <code>&lt;registry&gt;/&lt;repository&gt;@&lt;digest&gt;</code>. For example, to specify an image with the digest "sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf," use <code>&lt;registry&gt;/&lt;repository&gt;@sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf</code>. </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-available.html">Docker images provided by CodeBuild</a> in the <i>CodeBuild user guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of build environment to use for related builds. <ul> <li> The environment type <code>ARM_CONTAINER</code> is available only in regions US East (N. Virginia), US East (Ohio), US West (Oregon), EU (Ireland), Asia Pacific (Mumbai), Asia Pacific (Tokyo), Asia Pacific (Sydney), and EU (Frankfurt). </li> <li> The environment type <code>LINUX_CONTAINER</code> with compute type <code>build.general1.2xlarge</code> is available only in regions US East (N. Virginia), US East (Ohio), US West (Oregon), Canada (Central), EU (Ireland), EU (London), EU (Frankfurt), Asia Pacific (Tokyo), Asia Pacific (Seoul), Asia Pacific (Singapore), Asia Pacific (Sydney), China (Beijing), and China (Ningxia). </li> <li> The environment type <code>LINUX_GPU_CONTAINER</code> is available only in regions US East (N. Virginia), US East (Ohio), US West (Oregon), Canada (Central), EU (Ireland), EU (London), EU (Frankfurt), Asia Pacific (Tokyo), Asia Pacific (Seoul), Asia Pacific (Singapore), Asia Pacific (Sydney) , China (Beijing), and China (Ningxia). </li> </ul> <ul> <li> The environment types <code>WINDOWS_CONTAINER</code> and <code>WINDOWS_SERVER_2019_CONTAINER</code> are available only in regions US East (N. Virginia), US East (Ohio), US West (Oregon), and EU (Ireland). </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html">Build environment compute types</a> in the <i>CodeBuild user guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>credentialProvider</i>  The service that created the credentials to access a private Docker registry. The valid value, SECRETS_MANAGER, is for Secrets Manager. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>credential</i>  The Amazon Resource Name (ARN) or name of credentials created using Secrets Manager.  <note>  The <code>credential</code> can use the name of the credentials only if they exist in your current Region.  </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>securityGroupIds</i> A list of one or more security groups IDs in your Amazon VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>subnets</i> A list of one or more subnet IDs in your Amazon VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>vpcId</i> The ID of the Amazon VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>s3Logs</i>  Information about logs built to an S3 bucket for a build project. S3 logs are not enabled by default. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>s3Logs</b>:  Information about logs built to an S3 bucket for a build project. S3 logs are not enabled by default. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>cloudWatchLogs</i>  Information about CloudWatch Logs for a build project. CloudWatch Logs are enabled by default. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>cloudWatchLogs</b>:  Information about CloudWatch Logs for a build project. CloudWatch Logs are enabled by default. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>streamName</i>  The prefix of the stream name of the CloudWatch Logs. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html">Working with Log Groups and Log Streams</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>groupName</i>  The group name of the logs in CloudWatch Logs. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html">Working with Log Groups and Log Streams</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current status of the logs in CloudWatch Logs for a build project. Valid values are: <ul> <li>  <code>ENABLED</code>: CloudWatch Logs are enabled for this build project. </li> <li>  <code>DISABLED</code>: CloudWatch Logs are not enabled for this build project. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>encryptionDisabled</i>  Set to true if you do not want your S3 build log output encrypted. By default S3 build logs are encrypted. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i>  The ARN of an S3 bucket and the path prefix for S3 logs. If your Amazon S3 bucket name is <code>my-bucket</code>, and your path prefix is <code>build-log</code>, then acceptable formats are <code>my-bucket/build-log</code> or <code>arn:aws:s3:::my-bucket/build-log</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current status of the S3 build logs. Valid values are: <ul> <li>  <code>ENABLED</code>: S3 build logs are enabled for this build project. </li> <li>  <code>DISABLED</code>: S3 build logs are not enabled for this build project. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>timeoutInMins</i> Specifies the maximum amount of time, in minutes, that the batch build must be completed in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>restrictions</i> A <code>BatchRestrictions</code> object that specifies the restrictions for the batch build.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>restrictions</b>: A <code>BatchRestrictions</code> object that specifies the restrictions for the batch build.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>combineArtifacts</i> Specifies if the build artifacts for the batch build should be combined into a single artifact location.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>serviceRole</i> Specifies the service role ARN for the batch build project.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>computeTypesAllowed</i> An array of strings that specify the compute types that are allowed for the batch build. See <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html">Build environment compute types</a> in the <i>CodeBuild User Guide</i> for these values. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>maximumBuildsAllowed</i> Specifies the maximum number of builds allowed.<br/>
        :return: project:  Information about the build project that was changed.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>concurrentBuildLimit</i> The maximum number of concurrent builds that are allowed for this project. New builds are only started if the current number of builds is less than or equal to this limit. If the current build count meets this limit, new builds are throttled and are not run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>buildBatchConfig</i> A <a>ProjectBuildBatchConfig</a> object that defines the batch build options for the project.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>buildBatchConfig</b>: A <a>ProjectBuildBatchConfig</a> object that defines the batch build options for the project.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>fileSystemLocations</i>  An array of <code>ProjectFileSystemLocation</code> objects for a CodeBuild build project. A <code>ProjectFileSystemLocation</code> object specifies the <code>identifier</code>, <code>location</code>, <code>mountOptions</code>, <code>mountPoint</code>, and <code>type</code> of a file system created using Amazon Elastic File System. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>logsConfig</i> Information about logs for the build project. A project can create logs in CloudWatch Logs, an S3 bucket, or both. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>logsConfig</b>: Information about logs for the build project. A project can create logs in CloudWatch Logs, an S3 bucket, or both. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>badge</i> Information about the build badge for the build project.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>badge</b>: Information about the build badge for the build project.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>vpcConfig</i> Information about the VPC configuration that CodeBuild accesses.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>vpcConfig</b>: Information about the VPC configuration that CodeBuild accesses.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>webhook</i> Information about a webhook that connects repository events to a build project in CodeBuild.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>webhook</b>: Information about a webhook that connects repository events to a build project in CodeBuild.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastModified</i> When the build project's settings were last modified, expressed in Unix time format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>created</i> When the build project was created, expressed in Unix time format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> A list of tag key and value pairs associated with this build project. These tags are available for use by Amazon Web Services services that support CodeBuild build project tags.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>encryptionKey</i> The Key Management Service customer master key (CMK) to be used for encrypting the build output artifacts. <note> You can use a cross-account KMS key to encrypt the build output artifacts if your service role has permission to that key.  </note> You can specify either the Amazon Resource Name (ARN) of the CMK or, if available, the CMK's alias (using the format <code>alias/&lt;alias-name&gt;</code>). If you don't specify a value, CodeBuild uses the managed CMK for Amazon Simple Storage Service (Amazon S3). <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>queuedTimeoutInMinutes</i> The number of minutes a build is allowed to be queued before it times out. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>timeoutInMinutes</i> How long, in minutes, from 5 to 480 (8 hours), for CodeBuild to wait before timing out any related build that did not get marked as completed. The default is 60 minutes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>serviceRole</i> The ARN of the Identity and Access Management role that enables CodeBuild to interact with dependent Amazon Web Services services on behalf of the Amazon Web Services account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>environment</i> Information about the build environment for this build project.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>environment</b>: Information about the build environment for this build project.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>cache</i> Information about the cache for the build project.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>cache</b>: Information about the cache for the build project.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>secondaryArtifacts</i> An array of <code>ProjectArtifacts</code> objects. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>artifacts</i> Information about the build output artifacts for the build project.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>artifacts</b>: Information about the build output artifacts for the build project.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>secondarySourceVersions</i> An array of <code>ProjectSourceVersion</code> objects. If <code>secondarySourceVersions</code> is specified at the build level, then they take over these <code>secondarySourceVersions</code> (at the project level). <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>sourceVersion</i> A version of the build input to be built for this project. If not specified, the latest version is used. If specified, it must be one of: <ul> <li> For CodeCommit: the commit ID, branch, or Git tag to use. </li> <li> For GitHub: the commit ID, pull request ID, branch name, or tag name that corresponds to the version of the source code you want to build. If a pull request ID is specified, it must use the format <code>pr/pull-request-ID</code> (for example <code>pr/25</code>). If a branch name is specified, the branch's HEAD commit ID is used. If not specified, the default branch's HEAD commit ID is used. </li> <li> For Bitbucket: the commit ID, branch name, or tag name that corresponds to the version of the source code you want to build. If a branch name is specified, the branch's HEAD commit ID is used. If not specified, the default branch's HEAD commit ID is used. </li> <li> For Amazon S3: the version ID of the object that represents the build input ZIP file to use. </li> </ul> If <code>sourceVersion</code> is specified at the build level, then that version takes precedence over this <code>sourceVersion</code> (at the project level).  For more information, see <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/sample-source-version.html">Source Version Sample with CodeBuild</a> in the <i>CodeBuild User Guide</i>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>secondarySources</i> An array of <code>ProjectSource</code> objects. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>source</i> Information about the build input source code for this build project.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>source</b>: Information about the build input source code for this build project.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> A description that makes the build project easy to identify.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the build project.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the build project.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>gitCloneDepth</i> Information about the Git clone depth for the build project.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i> Information about the location of the source code to be built. Valid values include: <ul> <li> For source code settings that are specified in the source action of a pipeline in CodePipeline, <code>location</code> should not be specified. If it is specified, CodePipeline ignores it. This is because CodePipeline uses the settings in a pipeline's source action instead of this value. </li> <li> For source code in an CodeCommit repository, the HTTPS clone URL to the repository that contains the source code and the buildspec file (for example, <code>https://git-codecommit.&lt;region-ID&gt;.amazonaws.com/v1/repos/&lt;repo-name&gt;</code>). </li> <li> For source code in an Amazon S3 input bucket, one of the following.  <ul> <li> The path to the ZIP file that contains the source code (for example, <code>&lt;bucket-name&gt;/&lt;path&gt;/&lt;object-name&gt;.zip</code>).  </li> <li> The path to the folder that contains the source code (for example, <code>&lt;bucket-name&gt;/&lt;path-to-source-code&gt;/&lt;folder&gt;/</code>).  </li> </ul> </li> <li> For source code in a GitHub repository, the HTTPS clone URL to the repository that contains the source and the buildspec file. You must connect your account to your GitHub account. Use the CodeBuild console to start creating a build project. When you use the console to connect (or reconnect) with GitHub, on the GitHub <b>Authorize application</b> page, for <b>Organization access</b>, choose <b>Request access</b> next to each repository you want to allow CodeBuild to have access to, and then choose <b>Authorize application</b>. (After you have connected to your GitHub account, you do not need to finish creating the build project. You can leave the CodeBuild console.) To instruct CodeBuild to use this connection, in the <code>source</code> object, set the <code>auth</code> object's <code>type</code> value to <code>OAUTH</code>. </li> <li> For source code in a Bitbucket repository, the HTTPS clone URL to the repository that contains the source and the buildspec file. You must connect your Amazon Web Services account to your Bitbucket account. Use the CodeBuild console to start creating a build project. When you use the console to connect (or reconnect) with Bitbucket, on the Bitbucket <b>Confirm access to your account</b> page, choose <b>Grant access</b>. (After you have connected to your Bitbucket account, you do not need to finish creating the build project. You can leave the CodeBuild console.) To instruct CodeBuild to use this connection, in the <code>source</code> object, set the <code>auth</code> object's <code>type</code> value to <code>OAUTH</code>. </li> </ul>  If you specify <code>CODEPIPELINE</code> for the <code>Type</code> property, don't specify this property. For all of the other types, you must specify <code>Location</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of repository that contains the source code to be built. Valid values include: <ul> <li>  <code>BITBUCKET</code>: The source code is in a Bitbucket repository. </li> <li>  <code>CODECOMMIT</code>: The source code is in an CodeCommit repository. </li> <li>  <code>CODEPIPELINE</code>: The source code settings are specified in the source action of a pipeline in CodePipeline. </li> <li>  <code>GITHUB</code>: The source code is in a GitHub or GitHub Enterprise Cloud repository. </li> <li>  <code>GITHUB_ENTERPRISE</code>: The source code is in a GitHub Enterprise Server repository. </li> <li>  <code>NO_SOURCE</code>: The project does not have input source code. </li> <li>  <code>S3</code>: The source code is in an Amazon S3 bucket. </li> </ul><br/> Information about the Git submodules configuration for the build project. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>gitSubmodulesConfig</b>:  Information about the Git submodules configuration for the build project. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>artifactIdentifier</i>  An identifier for this artifact definition. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>encryptionDisabled</i>  Set to true if you do not want your output artifacts encrypted. This option is valid only if your artifacts type is Amazon S3. If this is set with another artifacts type, an invalidInputException is thrown. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>overrideArtifactName</i>  If this flag is set, a name specified in the buildspec file overrides the artifact name. The name specified in a buildspec file is calculated at build time and uses the Shell Command Language. For example, you can append a date and time to your artifact name so that it is always unique. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>packaging</i> The type of build output artifact to create: <ul> <li> If <code>type</code> is set to <code>CODEPIPELINE</code>, CodePipeline ignores this value if specified. This is because CodePipeline manages its build output artifacts instead of CodeBuild. </li> <li> If <code>type</code> is set to <code>NO_ARTIFACTS</code>, this value is ignored if specified, because no build output is produced. </li> <li> If <code>type</code> is set to <code>S3</code>, valid values include: <ul> <li>  <code>NONE</code>: CodeBuild creates in the output bucket a folder that contains the build output. This is the default if <code>packaging</code> is not specified. </li> <li>  <code>ZIP</code>: CodeBuild creates in the output bucket a ZIP file that contains the build output. </li> </ul> </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> Along with <code>path</code> and <code>namespaceType</code>, the pattern that CodeBuild uses to name and store the output artifact: <ul> <li> If <code>type</code> is set to <code>CODEPIPELINE</code>, CodePipeline ignores this value if specified. This is because CodePipeline manages its build output names instead of CodeBuild. </li> <li> If <code>type</code> is set to <code>NO_ARTIFACTS</code>, this value is ignored if specified, because no build output is produced. </li> <li> If <code>type</code> is set to <code>S3</code>, this is the name of the output artifact object. If you set the name to be a forward slash ("/"), the artifact is stored in the root of the output bucket. </li> </ul> For example: <ul> <li>  If <code>path</code> is set to <code>MyArtifacts</code>, <code>namespaceType</code> is set to <code>BUILD_ID</code>, and <code>name</code> is set to <code>MyArtifact.zip</code>, then the output artifact is stored in <code>MyArtifacts/&lt;build-ID&gt;/MyArtifact.zip</code>.  </li> <li>  If <code>path</code> is empty, <code>namespaceType</code> is set to <code>NONE</code>, and <code>name</code> is set to "<code>/</code>", the output artifact is stored in the root of the output bucket.  </li> <li>  If <code>path</code> is set to <code>MyArtifacts</code>, <code>namespaceType</code> is set to <code>BUILD_ID</code>, and <code>name</code> is set to "<code>/</code>", the output artifact is stored in <code>MyArtifacts/&lt;build-ID&gt;</code>.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>namespaceType</i> Along with <code>path</code> and <code>name</code>, the pattern that CodeBuild uses to determine the name and location to store the output artifact: <ul> <li> If <code>type</code> is set to <code>CODEPIPELINE</code>, CodePipeline ignores this value if specified. This is because CodePipeline manages its build output names instead of CodeBuild. </li> <li> If <code>type</code> is set to <code>NO_ARTIFACTS</code>, this value is ignored if specified, because no build output is produced. </li> <li> If <code>type</code> is set to <code>S3</code>, valid values include: <ul> <li>  <code>BUILD_ID</code>: Include the build ID in the location of the build output artifact. </li> <li>  <code>NONE</code>: Do not include the build ID. This is the default if <code>namespaceType</code> is not specified. </li> </ul> </li> </ul> For example, if <code>path</code> is set to <code>MyArtifacts</code>, <code>namespaceType</code> is set to <code>BUILD_ID</code>, and <code>name</code> is set to <code>MyArtifact.zip</code>, the output artifact is stored in <code>MyArtifacts/&lt;build-ID&gt;/MyArtifact.zip</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>path</i> Along with <code>namespaceType</code> and <code>name</code>, the pattern that CodeBuild uses to name and store the output artifact: <ul> <li> If <code>type</code> is set to <code>CODEPIPELINE</code>, CodePipeline ignores this value if specified. This is because CodePipeline manages its build output names instead of CodeBuild. </li> <li> If <code>type</code> is set to <code>NO_ARTIFACTS</code>, this value is ignored if specified, because no build output is produced. </li> <li> If <code>type</code> is set to <code>S3</code>, this is the path to the output artifact. If <code>path</code> is not specified, <code>path</code> is not used. </li> </ul> For example, if <code>path</code> is set to <code>MyArtifacts</code>, <code>namespaceType</code> is set to <code>NONE</code>, and <code>name</code> is set to <code>MyArtifact.zip</code>, the output artifact is stored in the output bucket at <code>MyArtifacts/MyArtifact.zip</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i> Information about the build output artifact location: <ul> <li> If <code>type</code> is set to <code>CODEPIPELINE</code>, CodePipeline ignores this value if specified. This is because CodePipeline manages its build output locations instead of CodeBuild. </li> <li> If <code>type</code> is set to <code>NO_ARTIFACTS</code>, this value is ignored if specified, because no build output is produced. </li> <li> If <code>type</code> is set to <code>S3</code>, this is the name of the output bucket. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of build output artifact. Valid values include: <ul> <li>  <code>CODEPIPELINE</code>: The build project has build output generated through CodePipeline.  <note> The <code>CODEPIPELINE</code> type is not supported for <code>secondaryArtifacts</code>. </note> </li> <li>  <code>NO_ARTIFACTS</code>: The build project does not produce any build output. </li> <li>  <code>S3</code>: The build project stores build output in Amazon S3. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>modes</i> An array of strings that specify the local cache modes. You can use one or more local cache modes at the same time. This is only used for <code>LOCAL</code> cache types. Possible values are: <dl> <dt>LOCAL_SOURCE_CACHE</dt> <dd> Caches Git metadata for primary and secondary sources. After the cache is created, subsequent builds pull only the change between commits. This mode is a good choice for projects with a clean working directory and a source that is a large Git repository. If you choose this option and your project does not use a Git repository (GitHub, GitHub Enterprise, or Bitbucket), the option is ignored.  </dd> <dt>LOCAL_DOCKER_LAYER_CACHE</dt> <dd> Caches existing Docker layers. This mode is a good choice for projects that build or pull large Docker images. It can prevent the performance issues caused by pulling large Docker images down from the network.  <note> <ul> <li> You can use a Docker layer cache in the Linux environment only.  </li> <li> The <code>privileged</code> flag must be set so that your project has the required Docker permissions.  </li> <li> You should consider the security implications before you use a Docker layer cache.  </li> </ul> </note> </dd> <dt>LOCAL_CUSTOM_CACHE</dt> <dd> Caches directories you specify in the buildspec file. This mode is a good choice if your build scenario is not suited to one of the other three local cache modes. If you use a custom cache:  <ul> <li> Only directories can be specified for caching. You cannot specify individual files.  </li> <li> Symlinks are used to reference cached directories.  </li> <li> Cached directories are linked to your build before it downloads its project sources. Cached items are overridden if a source item has the same name. Directories are specified using cache paths in the buildspec file.  </li> </ul> </dd> </dl><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i> Information about the cache location:  <ul> <li>  <code>NO_CACHE</code> or <code>LOCAL</code>: This value is ignored. </li> <li>  <code>S3</code>: This is the S3 bucket name/prefix. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of cache used by the build project. Valid values include: <ul> <li>  <code>NO_CACHE</code>: The build project does not use any cache. </li> <li>  <code>S3</code>: The build project reads and writes from and to S3. </li> <li>  <code>LOCAL</code>: The build project stores a cache locally on a build host that is only available to that build host. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>certificate</i> The ARN of the Amazon S3 bucket, path prefix, and object key that contains the PEM-encoded certificate for the build project. For more information, see <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/create-project-cli.html#cli.environment.certificate">certificate</a> in the <i>CodeBuild User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>privilegedMode</i> Enables running the Docker daemon inside a Docker container. Set to true only if the build project is used to build Docker images. Otherwise, a build that attempts to interact with the Docker daemon fails. The default setting is <code>false</code>. You can initialize the Docker daemon during the install phase of your build by adding one of the following sets of commands to the install phase of your buildspec file: If the operating system's base image is Ubuntu Linux:  <code>- nohup /usr/local/bin/dockerd --host=unix:///var/run/docker.sock --host=tcp://0.0.0.0:2375 --storage-driver=overlay&amp;</code>   <code>- timeout 15 sh -c "until docker info; do echo .; sleep 1; done"</code>  If the operating system's base image is Alpine Linux and the previous command does not work, add the <code>-t</code> argument to <code>timeout</code>:  <code>- nohup /usr/local/bin/dockerd --host=unix:///var/run/docker.sock --host=tcp://0.0.0.0:2375 --storage-driver=overlay&amp;</code>   <code>- timeout -t 15 sh -c "until docker info; do echo .; sleep 1; done"</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>environmentVariables</i> A set of environment variables to make available to builds for this build project.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>computeType</i> Information about the compute resources the build project uses. Available values include: <ul> <li>  <code>BUILD_GENERAL1_SMALL</code>: Use up to 3 GB memory and 2 vCPUs for builds. </li> <li>  <code>BUILD_GENERAL1_MEDIUM</code>: Use up to 7 GB memory and 4 vCPUs for builds. </li> <li>  <code>BUILD_GENERAL1_LARGE</code>: Use up to 16 GB memory and 8 vCPUs for builds, depending on your environment type. </li> <li>  <code>BUILD_GENERAL1_2XLARGE</code>: Use up to 145 GB memory, 72 vCPUs, and 824 GB of SSD storage for builds. This compute type supports Docker images up to 100 GB uncompressed. </li> </ul>  If you use <code>BUILD_GENERAL1_LARGE</code>:  <ul> <li>  For environment type <code>LINUX_CONTAINER</code>, you can use up to 15 GB memory and 8 vCPUs for builds.  </li> <li>  For environment type <code>LINUX_GPU_CONTAINER</code>, you can use up to 255 GB memory, 32 vCPUs, and 4 NVIDIA Tesla V100 GPUs for builds. </li> <li>  For environment type <code>ARM_CONTAINER</code>, you can use up to 16 GB memory and 8 vCPUs on ARM-based processors for builds. </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html">Build Environment Compute Types</a> in the <i>CodeBuild User Guide.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>image</i> The image tag or image digest that identifies the Docker image to use for this build project. Use the following formats: <ul> <li> For an image tag: <code>&lt;registry&gt;/&lt;repository&gt;:&lt;tag&gt;</code>. For example, in the Docker repository that CodeBuild uses to manage its Docker images, this would be <code>aws/codebuild/standard:4.0</code>.  </li> <li> For an image digest: <code>&lt;registry&gt;/&lt;repository&gt;@&lt;digest&gt;</code>. For example, to specify an image with the digest "sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf," use <code>&lt;registry&gt;/&lt;repository&gt;@sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf</code>. </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-available.html">Docker images provided by CodeBuild</a> in the <i>CodeBuild user guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of build environment to use for related builds. <ul> <li> The environment type <code>ARM_CONTAINER</code> is available only in regions US East (N. Virginia), US East (Ohio), US West (Oregon), EU (Ireland), Asia Pacific (Mumbai), Asia Pacific (Tokyo), Asia Pacific (Sydney), and EU (Frankfurt). </li> <li> The environment type <code>LINUX_CONTAINER</code> with compute type <code>build.general1.2xlarge</code> is available only in regions US East (N. Virginia), US East (Ohio), US West (Oregon), Canada (Central), EU (Ireland), EU (London), EU (Frankfurt), Asia Pacific (Tokyo), Asia Pacific (Seoul), Asia Pacific (Singapore), Asia Pacific (Sydney), China (Beijing), and China (Ningxia). </li> <li> The environment type <code>LINUX_GPU_CONTAINER</code> is available only in regions US East (N. Virginia), US East (Ohio), US West (Oregon), Canada (Central), EU (Ireland), EU (London), EU (Frankfurt), Asia Pacific (Tokyo), Asia Pacific (Seoul), Asia Pacific (Singapore), Asia Pacific (Sydney) , China (Beijing), and China (Ningxia). </li> </ul> <ul> <li> The environment types <code>WINDOWS_CONTAINER</code> and <code>WINDOWS_SERVER_2019_CONTAINER</code> are available only in regions US East (N. Virginia), US East (Ohio), US West (Oregon), and EU (Ireland). </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html">Build environment compute types</a> in the <i>CodeBuild user guide</i>.<br/> The credentials for access to a private registry.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>registryCredential</b>:  The credentials for access to a private registry.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>lastModifiedSecret</i> A timestamp that indicates the last time a repository's secret token was modified. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>buildType</i> Specifies the type of build this webhook will trigger.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>filterGroups</i> An array of arrays of <code>WebhookFilter</code> objects used to determine which webhooks are triggered. At least one <code>WebhookFilter</code> in the array must specify <code>EVENT</code> as its <code>type</code>.  For a build to be triggered, at least one filter group in the <code>filterGroups</code> array must pass. For a filter group to pass, each of its filters must pass. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>branchFilter</i> A regular expression used to determine which repository branches are built when a webhook is triggered. If the name of a branch matches the regular expression, then it is built. If <code>branchFilter</code> is empty, then all branches are built. <note> It is recommended that you use <code>filterGroups</code> instead of <code>branchFilter</code>.  </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>secret</i> The secret token of the associated repository.  <note> A Bitbucket webhook does not support <code>secret</code>.  </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>payloadUrl</i> The CodeBuild endpoint where webhook events are sent.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>url</i> The URL to the webhook.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>securityGroupIds</i> A list of one or more security groups IDs in your Amazon VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>subnets</i> A list of one or more subnet IDs in your Amazon VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>vpcId</i> The ID of the Amazon VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>badgeRequestUrl</i> The publicly-accessible URL through which you can access the build badge for your project. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>badgeEnabled</i> Set this to true to generate a publicly accessible URL for your project's build badge.<br/> Information about CloudWatch Logs for a build project. CloudWatch Logs are enabled by default. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>cloudWatchLogs</b>:  Information about CloudWatch Logs for a build project. CloudWatch Logs are enabled by default. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>combineArtifacts</i> Specifies if the build artifacts for the batch build should be combined into a single artifact location.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>serviceRole</i> Specifies the service role ARN for the batch build project.<br/>A <code>BatchRestrictions</code> object that specifies the restrictions for the batch build.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>restrictions</b>: A <code>BatchRestrictions</code> object that specifies the restrictions for the batch build.        """
        pass

    def update_report_group(self, arn: str, exportConfig: ReportExportConfig=None, tags: List[Tag]=None) -> UpdateReportGroupOutput:
        r""" Updates a report group. 

        :param self:
        :param tags:   An updated list of tag key and value pairs associated with this report group.  These tags are available for use by Amazon Web Services services that support CodeBuild report group tags.<br/>exportConfig:   Used to specify an updated export type. Valid values are:  <ul> <li>  <code>S3</code>: The report results are exported to an S3 bucket.  </li> <li>  <code>NO_EXPORT</code>: The report results are not exported.  </li> </ul>:<br/>arn:   The ARN of the report group to update. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>s3Destination</i>  A <code>S3ReportExportConfig</code> object that contains information about the S3 bucket where the run of a report is exported. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>s3Destination</b>:  A <code>S3ReportExportConfig</code> object that contains information about the S3 bucket where the run of a report is exported. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>exportConfigType</i>  The export configuration type. Valid values are:  <ul> <li>  <code>S3</code>: The report results are exported to an S3 bucket.  </li> <li>  <code>NO_EXPORT</code>: The report results are not exported.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>encryptionDisabled</i>  A boolean value that specifies if the results of a report are encrypted. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>encryptionKey</i>  The encryption key for the report's encrypted raw data. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>packaging</i>  The type of build output artifact to create. Valid values include:  <ul> <li>  <code>NONE</code>: CodeBuild creates the raw data in the output bucket. This is the default if packaging is not specified.  </li> <li>  <code>ZIP</code>: CodeBuild creates a ZIP file with the raw data in the output bucket.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>path</i>  The path to the exported report's raw data results. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>bucketOwner</i> The Amazon Web Services account identifier of the owner of the Amazon S3 bucket. This allows report data to be exported to an Amazon S3 bucket that is owned by an account other than the account running the build.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>bucket</i>  The name of the S3 bucket where the raw data of a report are exported. <br/>
        :return: reportGroup:   Information about the updated report group. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the report group. This property is read-only. This can be one of the following values: <dl> <dt>ACTIVE</dt> <dd> The report group is active. </dd> <dt>DELETING</dt> <dd> The report group is in the process of being deleted. </dd> </dl><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> A list of tag key and value pairs associated with this report group.  These tags are available for use by Amazon Web Services services that support CodeBuild report group tags.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastModified</i> The date and time this <code>ReportGroup</code> was last modified. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>created</i> The date and time this <code>ReportGroup</code> was created. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>exportConfig</i> Information about the destination where the raw data of this <code>ReportGroup</code> is exported. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>exportConfig</b>: Information about the destination where the raw data of this <code>ReportGroup</code> is exported. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of the <code>ReportGroup</code>. This can be one of the following values: <dl> <dt>CODE_COVERAGE</dt> <dd> The report group contains code coverage reports. </dd> <dt>TEST</dt> <dd> The report group contains test reports. </dd> </dl><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the <code>ReportGroup</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The ARN of the <code>ReportGroup</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>exportConfigType</i>  The export configuration type. Valid values are:  <ul> <li>  <code>S3</code>: The report results are exported to an S3 bucket.  </li> <li>  <code>NO_EXPORT</code>: The report results are not exported.  </li> </ul><br/> A <code>S3ReportExportConfig</code> object that contains information about the S3 bucket where the run of a report is exported. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>s3Destination</b>:  A <code>S3ReportExportConfig</code> object that contains information about the S3 bucket where the run of a report is exported.         """
        pass

    def update_webhook(self, projectName: str, branchFilter: str=None, rotateSecret: Boolean=None, filterGroups: List[FilterGroup]=None, buildType: str=None) -> UpdateWebhookOutput:
        r""" Updates the webhook associated with an CodeBuild build project.  <note>  If you use Bitbucket for your repository, <code>rotateSecret</code> is ignored.  </note>

        :param self:
        :param buildType:  Specifies the type of build this webhook will trigger.<br/>filterGroups:   An array of arrays of <code>WebhookFilter</code> objects used to determine if a webhook event can trigger a build. A filter group must contain at least one <code>EVENT</code> <code>WebhookFilter</code>. <br/>rotateSecret:   A boolean value that specifies whether the associated GitHub repository's secret token should be updated. If you use Bitbucket for your repository, <code>rotateSecret</code> is ignored. <br/>branchFilter:  A regular expression used to determine which repository branches are built when a webhook is triggered. If the name of a branch matches the regular expression, then it is built. If <code>branchFilter</code> is empty, then all branches are built. <note>  It is recommended that you use <code>filterGroups</code> instead of <code>branchFilter</code>.  </note><br/>projectName:  The name of the CodeBuild project.<br/>
        :return: webhook:   Information about a repository's webhook that is associated with a project in CodeBuild. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastModifiedSecret</i> A timestamp that indicates the last time a repository's secret token was modified. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>buildType</i> Specifies the type of build this webhook will trigger.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>filterGroups</i> An array of arrays of <code>WebhookFilter</code> objects used to determine which webhooks are triggered. At least one <code>WebhookFilter</code> in the array must specify <code>EVENT</code> as its <code>type</code>.  For a build to be triggered, at least one filter group in the <code>filterGroups</code> array must pass. For a filter group to pass, each of its filters must pass. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>branchFilter</i> A regular expression used to determine which repository branches are built when a webhook is triggered. If the name of a branch matches the regular expression, then it is built. If <code>branchFilter</code> is empty, then all branches are built. <note> It is recommended that you use <code>filterGroups</code> instead of <code>branchFilter</code>.  </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>secret</i> The secret token of the associated repository.  <note> A Bitbucket webhook does not support <code>secret</code>.  </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>payloadUrl</i> The CodeBuild endpoint where webhook events are sent.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>url</i> The URL to the webhook.<br/>        """
        pass





class CodeCommit(BaseClient):
    r"""<fullname>AWS CodeCommit</fullname> This is the <i>AWS CodeCommit API Reference</i>. This reference provides descriptions of the operations and data types for AWS CodeCommit API along with usage examples. You can use the AWS CodeCommit API to work with the following objects: Repositories, by calling the following: <ul> <li>  <a>BatchGetRepositories</a>, which returns information about one or more repositories associated with your AWS account. </li> <li>  <a>CreateRepository</a>, which creates an AWS CodeCommit repository. </li> <li>  <a>DeleteRepository</a>, which deletes an AWS CodeCommit repository. </li> <li>  <a>GetRepository</a>, which returns information about a specified repository. </li> <li>  <a>ListRepositories</a>, which lists all AWS CodeCommit repositories associated with your AWS account. </li> <li>  <a>UpdateRepositoryDescription</a>, which sets or updates the description of the repository. </li> <li>  <a>UpdateRepositoryName</a>, which changes the name of the repository. If you change the name of a repository, no other users of that repository can access it until you send them the new HTTPS or SSH URL to use. </li> </ul> Branches, by calling the following: <ul> <li>  <a>CreateBranch</a>, which creates a branch in a specified repository. </li> <li>  <a>DeleteBranch</a>, which deletes the specified branch in a repository unless it is the default branch. </li> <li>  <a>GetBranch</a>, which returns information about a specified branch. </li> <li>  <a>ListBranches</a>, which lists all branches for a specified repository. </li> <li>  <a>UpdateDefaultBranch</a>, which changes the default branch for a repository. </li> </ul> Files, by calling the following: <ul> <li>  <a>DeleteFile</a>, which deletes the content of a specified file from a specified branch. </li> <li>  <a>GetBlob</a>, which returns the base-64 encoded content of an individual Git blob object in a repository. </li> <li>  <a>GetFile</a>, which returns the base-64 encoded content of a specified file. </li> <li>  <a>GetFolder</a>, which returns the contents of a specified folder or directory. </li> <li>  <a>PutFile</a>, which adds or modifies a single file in a specified repository and branch. </li> </ul> Commits, by calling the following: <ul> <li>  <a>BatchGetCommits</a>, which returns information about one or more commits in a repository. </li> <li>  <a>CreateCommit</a>, which creates a commit for changes to a repository. </li> <li>  <a>GetCommit</a>, which returns information about a commit, including commit messages and author and committer information. </li> <li>  <a>GetDifferences</a>, which returns information about the differences in a valid commit specifier (such as a branch, tag, HEAD, commit ID, or other fully qualified reference). </li> </ul> Merges, by calling the following: <ul> <li>  <a>BatchDescribeMergeConflicts</a>, which returns information about conflicts in a merge between commits in a repository. </li> <li>  <a>CreateUnreferencedMergeCommit</a>, which creates an unreferenced commit between two branches or commits for the purpose of comparing them and identifying any potential conflicts. </li> <li>  <a>DescribeMergeConflicts</a>, which returns information about merge conflicts between the base, source, and destination versions of a file in a potential merge. </li> <li>  <a>GetMergeCommit</a>, which returns information about the merge between a source and destination commit.  </li> <li>  <a>GetMergeConflicts</a>, which returns information about merge conflicts between the source and destination branch in a pull request. </li> <li>  <a>GetMergeOptions</a>, which returns information about the available merge options between two branches or commit specifiers. </li> <li>  <a>MergeBranchesByFastForward</a>, which merges two branches using the fast-forward merge option. </li> <li>  <a>MergeBranchesBySquash</a>, which merges two branches using the squash merge option. </li> <li>  <a>MergeBranchesByThreeWay</a>, which merges two branches using the three-way merge option. </li> </ul> Pull requests, by calling the following: <ul> <li>  <a>CreatePullRequest</a>, which creates a pull request in a specified repository. </li> <li>  <a>CreatePullRequestApprovalRule</a>, which creates an approval rule for a specified pull request. </li> <li>  <a>DeletePullRequestApprovalRule</a>, which deletes an approval rule for a specified pull request. </li> <li>  <a>DescribePullRequestEvents</a>, which returns information about one or more pull request events. </li> <li>  <a>EvaluatePullRequestApprovalRules</a>, which evaluates whether a pull request has met all the conditions specified in its associated approval rules. </li> <li>  <a>GetCommentsForPullRequest</a>, which returns information about comments on a specified pull request. </li> <li>  <a>GetPullRequest</a>, which returns information about a specified pull request. </li> <li>  <a>GetPullRequestApprovalStates</a>, which returns information about the approval states for a specified pull request. </li> <li>  <a>GetPullRequestOverrideState</a>, which returns information about whether approval rules have been set aside (overriden) for a pull request, and if so, the Amazon Resource Name (ARN) of the user or identity that overrode the rules and their requirements for the pull request. </li> <li>  <a>ListPullRequests</a>, which lists all pull requests for a repository. </li> <li>  <a>MergePullRequestByFastForward</a>, which merges the source destination branch of a pull request into the specified destination branch for that pull request using the fast-forward merge option. </li> <li>  <a>MergePullRequestBySquash</a>, which merges the source destination branch of a pull request into the specified destination branch for that pull request using the squash merge option. </li> <li>  <a>MergePullRequestByThreeWay</a>. which merges the source destination branch of a pull request into the specified destination branch for that pull request using the three-way merge option. </li> <li>  <a>OverridePullRequestApprovalRules</a>, which sets aside all approval rule requirements for a pull request. </li> <li>  <a>PostCommentForPullRequest</a>, which posts a comment to a pull request at the specified line, file, or request. </li> <li>  <a>UpdatePullRequestApprovalRuleContent</a>, which updates the structure of an approval rule for a pull request. </li> <li>  <a>UpdatePullRequestApprovalState</a>, which updates the state of an approval on a pull request. </li> <li>  <a>UpdatePullRequestDescription</a>, which updates the description of a pull request. </li> <li>  <a>UpdatePullRequestStatus</a>, which updates the status of a pull request. </li> <li>  <a>UpdatePullRequestTitle</a>, which updates the title of a pull request. </li> </ul> Approval rule templates, by calling the following: <ul> <li>  <a>AssociateApprovalRuleTemplateWithRepository</a>, which associates a template with a specified repository. After the template is associated with a repository, AWS CodeCommit creates approval rules that match the template conditions on every pull request created in the specified repository. </li> <li>  <a>BatchAssociateApprovalRuleTemplateWithRepositories</a>, which associates a template with one or more specified repositories. After the template is associated with a repository, AWS CodeCommit creates approval rules that match the template conditions on every pull request created in the specified repositories. </li> <li>  <a>BatchDisassociateApprovalRuleTemplateFromRepositories</a>, which removes the association between a template and specified repositories so that approval rules based on the template are not automatically created when pull requests are created in those repositories. </li> <li>  <a>CreateApprovalRuleTemplate</a>, which creates a template for approval rules that can then be associated with one or more repositories in your AWS account. </li> <li>  <a>DeleteApprovalRuleTemplate</a>, which deletes the specified template. It does not remove approval rules on pull requests already created with the template. </li> <li>  <a>DisassociateApprovalRuleTemplateFromRepository</a>, which removes the association between a template and a repository so that approval rules based on the template are not automatically created when pull requests are created in the specified repository. </li> <li>  <a>GetApprovalRuleTemplate</a>, which returns information about an approval rule template. </li> <li>  <a>ListApprovalRuleTemplates</a>, which lists all approval rule templates in the AWS Region in your AWS account. </li> <li>  <a>ListAssociatedApprovalRuleTemplatesForRepository</a>, which lists all approval rule templates that are associated with a specified repository. </li> <li>  <a>ListRepositoriesForApprovalRuleTemplate</a>, which lists all repositories associated with the specified approval rule template. </li> <li>  <a>UpdateApprovalRuleTemplateDescription</a>, which updates the description of an approval rule template. </li> <li>  <a>UpdateApprovalRuleTemplateName</a>, which updates the name of an approval rule template. </li> <li>  <a>UpdateApprovalRuleTemplateContent</a>, which updates the content of an approval rule template. </li> </ul> Comments in a repository, by calling the following: <ul> <li>  <a>DeleteCommentContent</a>, which deletes the content of a comment on a commit in a repository. </li> <li>  <a>GetComment</a>, which returns information about a comment on a commit. </li> <li>  <a>GetCommentReactions</a>, which returns information about emoji reactions to comments. </li> <li>  <a>GetCommentsForComparedCommit</a>, which returns information about comments on the comparison between two commit specifiers in a repository. </li> <li>  <a>PostCommentForComparedCommit</a>, which creates a comment on the comparison between two commit specifiers in a repository. </li> <li>  <a>PostCommentReply</a>, which creates a reply to a comment. </li> <li>  <a>PutCommentReaction</a>, which creates or updates an emoji reaction to a comment. </li> <li>  <a>UpdateComment</a>, which updates the content of a comment on a commit in a repository. </li> </ul> Tags used to tag resources in AWS CodeCommit (not Git tags), by calling the following: <ul> <li>  <a>ListTagsForResource</a>, which gets information about AWS tags for a specified Amazon Resource Name (ARN) in AWS CodeCommit. </li> <li>  <a>TagResource</a>, which adds or updates tags for a resource in AWS CodeCommit. </li> <li>  <a>UntagResource</a>, which removes tags for a resource in AWS CodeCommit. </li> </ul> Triggers, by calling the following: <ul> <li>  <a>GetRepositoryTriggers</a>, which returns information about triggers configured for a repository. </li> <li>  <a>PutRepositoryTriggers</a>, which replaces all triggers for a repository and can be used to create or delete triggers. </li> <li>  <a>TestRepositoryTriggers</a>, which tests the functionality of a repository trigger by sending data to the trigger target. </li> </ul> For information about how to use AWS CodeCommit, see the <a href="https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html">AWS CodeCommit User Guide</a>."""


    class ListBranchesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_branches` for valid parameters"""
            pass
    class ListRepositoriesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_repositories` for valid parameters"""
            pass
    class GetCommentsForComparedCommitPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_comments_for_compared_commit` for valid parameters"""
            pass
    class DescribePullRequestEventsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_pull_request_events` for valid parameters"""
            pass
    class GetCommentsForPullRequestPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_comments_for_pull_request` for valid parameters"""
            pass
    class ListPullRequestsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_pull_requests` for valid parameters"""
            pass
    class GetDifferencesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_differences` for valid parameters"""
            pass


    class AssociateApprovalRuleTemplateWithRepositoryInput(Mapping):
        pass
    
    class BatchAssociateApprovalRuleTemplateWithRepositoriesInput(Mapping):
        pass
    
    class BatchAssociateApprovalRuleTemplateWithRepositoriesOutput(Mapping):
        pass
    
    class RepositoryName(object):
        pass
    
    class BatchDescribeMergeConflictsInput(Mapping):
        pass
    
    class BatchDescribeMergeConflictsOutput(Mapping):
        pass
    
    class Path(object):
        pass
    
    class BatchDisassociateApprovalRuleTemplateFromRepositoriesInput(Mapping):
        pass
    
    class BatchDisassociateApprovalRuleTemplateFromRepositoriesOutput(Mapping):
        pass
    
    class BatchGetCommitsInput(Mapping):
        pass
    
    class BatchGetCommitsOutput(Mapping):
        pass
    
    class ObjectId(object):
        pass
    
    class BatchGetRepositoriesInput(Mapping):
        pass
    
    class BatchGetRepositoriesOutput(Mapping):
        pass
    
    class CreateApprovalRuleTemplateInput(Mapping):
        pass
    
    class CreateApprovalRuleTemplateOutput(Mapping):
        pass
    
    class CreateBranchInput(Mapping):
        pass
    
    class CreateCommitInput(Mapping):
        pass
    
    class CreateCommitOutput(Mapping):
        pass
    
    class KeepEmptyFolders(object):
        pass
    
    class PutFileEntry(Mapping):
        pass
    
    class DeleteFileEntry(Mapping):
        pass
    
    class SetFileModeEntry(Mapping):
        pass
    
    class CreatePullRequestInput(Mapping):
        pass
    
    class CreatePullRequestOutput(Mapping):
        pass
    
    class Target(Mapping):
        pass
    
    class CreatePullRequestApprovalRuleInput(Mapping):
        pass
    
    class CreatePullRequestApprovalRuleOutput(Mapping):
        pass
    
    class CreateRepositoryInput(Mapping):
        pass
    
    class CreateRepositoryOutput(Mapping):
        pass
    
    class TagsMap(object):
        pass
    
    class CreateUnreferencedMergeCommitInput(Mapping):
        pass
    
    class CreateUnreferencedMergeCommitOutput(Mapping):
        pass
    
    class ConflictResolution(Mapping):
        pass
    
    class DeleteApprovalRuleTemplateInput(Mapping):
        pass
    
    class DeleteApprovalRuleTemplateOutput(Mapping):
        pass
    
    class DeleteBranchInput(Mapping):
        pass
    
    class DeleteBranchOutput(Mapping):
        pass
    
    class DeleteCommentContentInput(Mapping):
        pass
    
    class DeleteCommentContentOutput(Mapping):
        pass
    
    class DeleteFileInput(Mapping):
        pass
    
    class DeleteFileOutput(Mapping):
        pass
    
    class DeletePullRequestApprovalRuleInput(Mapping):
        pass
    
    class DeletePullRequestApprovalRuleOutput(Mapping):
        pass
    
    class DeleteRepositoryInput(Mapping):
        pass
    
    class DeleteRepositoryOutput(Mapping):
        pass
    
    class DescribeMergeConflictsInput(Mapping):
        pass
    
    class DescribeMergeConflictsOutput(Mapping):
        pass
    
    class DescribePullRequestEventsInput(Mapping):
        pass
    
    class DescribePullRequestEventsOutput(Mapping):
        pass
    
    class DisassociateApprovalRuleTemplateFromRepositoryInput(Mapping):
        pass
    
    class EvaluatePullRequestApprovalRulesInput(Mapping):
        pass
    
    class EvaluatePullRequestApprovalRulesOutput(Mapping):
        pass
    
    class GetApprovalRuleTemplateInput(Mapping):
        pass
    
    class GetApprovalRuleTemplateOutput(Mapping):
        pass
    
    class GetBlobInput(Mapping):
        pass
    
    class GetBlobOutput(Mapping):
        pass
    
    class GetBranchInput(Mapping):
        pass
    
    class GetBranchOutput(Mapping):
        pass
    
    class GetCommentInput(Mapping):
        pass
    
    class GetCommentOutput(Mapping):
        pass
    
    class GetCommentReactionsInput(Mapping):
        pass
    
    class GetCommentReactionsOutput(Mapping):
        pass
    
    class GetCommentsForComparedCommitInput(Mapping):
        pass
    
    class GetCommentsForComparedCommitOutput(Mapping):
        pass
    
    class GetCommentsForPullRequestInput(Mapping):
        pass
    
    class GetCommentsForPullRequestOutput(Mapping):
        pass
    
    class GetCommitInput(Mapping):
        pass
    
    class GetCommitOutput(Mapping):
        pass
    
    class GetDifferencesInput(Mapping):
        pass
    
    class GetDifferencesOutput(Mapping):
        pass
    
    class GetFileInput(Mapping):
        pass
    
    class GetFileOutput(Mapping):
        pass
    
    class GetFolderInput(Mapping):
        pass
    
    class GetFolderOutput(Mapping):
        pass
    
    class GetMergeCommitInput(Mapping):
        pass
    
    class GetMergeCommitOutput(Mapping):
        pass
    
    class GetMergeConflictsInput(Mapping):
        pass
    
    class GetMergeConflictsOutput(Mapping):
        pass
    
    class GetMergeOptionsInput(Mapping):
        pass
    
    class GetMergeOptionsOutput(Mapping):
        pass
    
    class GetPullRequestInput(Mapping):
        pass
    
    class GetPullRequestOutput(Mapping):
        pass
    
    class GetPullRequestApprovalStatesInput(Mapping):
        pass
    
    class GetPullRequestApprovalStatesOutput(Mapping):
        pass
    
    class GetPullRequestOverrideStateInput(Mapping):
        pass
    
    class GetPullRequestOverrideStateOutput(Mapping):
        pass
    
    class GetRepositoryInput(Mapping):
        pass
    
    class GetRepositoryOutput(Mapping):
        pass
    
    class GetRepositoryTriggersInput(Mapping):
        pass
    
    class GetRepositoryTriggersOutput(Mapping):
        pass
    
    class ListApprovalRuleTemplatesInput(Mapping):
        pass
    
    class ListApprovalRuleTemplatesOutput(Mapping):
        pass
    
    class ListAssociatedApprovalRuleTemplatesForRepositoryInput(Mapping):
        pass
    
    class ListAssociatedApprovalRuleTemplatesForRepositoryOutput(Mapping):
        pass
    
    class ListBranchesInput(Mapping):
        pass
    
    class ListBranchesOutput(Mapping):
        pass
    
    class ListPullRequestsInput(Mapping):
        pass
    
    class ListPullRequestsOutput(Mapping):
        pass
    
    class ListRepositoriesInput(Mapping):
        pass
    
    class ListRepositoriesOutput(Mapping):
        pass
    
    class ListRepositoriesForApprovalRuleTemplateInput(Mapping):
        pass
    
    class ListRepositoriesForApprovalRuleTemplateOutput(Mapping):
        pass
    
    class ListTagsForResourceInput(Mapping):
        pass
    
    class ListTagsForResourceOutput(Mapping):
        pass
    
    class MergeBranchesByFastForwardInput(Mapping):
        pass
    
    class MergeBranchesByFastForwardOutput(Mapping):
        pass
    
    class MergeBranchesBySquashInput(Mapping):
        pass
    
    class MergeBranchesBySquashOutput(Mapping):
        pass
    
    class MergeBranchesByThreeWayInput(Mapping):
        pass
    
    class MergeBranchesByThreeWayOutput(Mapping):
        pass
    
    class MergePullRequestByFastForwardInput(Mapping):
        pass
    
    class MergePullRequestByFastForwardOutput(Mapping):
        pass
    
    class MergePullRequestBySquashInput(Mapping):
        pass
    
    class MergePullRequestBySquashOutput(Mapping):
        pass
    
    class MergePullRequestByThreeWayInput(Mapping):
        pass
    
    class MergePullRequestByThreeWayOutput(Mapping):
        pass
    
    class OverridePullRequestApprovalRulesInput(Mapping):
        pass
    
    class PostCommentForComparedCommitInput(Mapping):
        pass
    
    class PostCommentForComparedCommitOutput(Mapping):
        pass
    
    class Location(Mapping):
        pass
    
    class PostCommentForPullRequestInput(Mapping):
        pass
    
    class PostCommentForPullRequestOutput(Mapping):
        pass
    
    class PostCommentReplyInput(Mapping):
        pass
    
    class PostCommentReplyOutput(Mapping):
        pass
    
    class PutCommentReactionInput(Mapping):
        pass
    
    class PutFileInput(Mapping):
        pass
    
    class PutFileOutput(Mapping):
        pass
    
    class FileContent(object):
        pass
    
    class PutRepositoryTriggersInput(Mapping):
        pass
    
    class PutRepositoryTriggersOutput(Mapping):
        pass
    
    class RepositoryTrigger(Mapping):
        pass
    
    class TagResourceInput(Mapping):
        pass
    
    class TestRepositoryTriggersInput(Mapping):
        pass
    
    class TestRepositoryTriggersOutput(Mapping):
        pass
    
    class UntagResourceInput(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateApprovalRuleTemplateContentInput(Mapping):
        pass
    
    class UpdateApprovalRuleTemplateContentOutput(Mapping):
        pass
    
    class UpdateApprovalRuleTemplateDescriptionInput(Mapping):
        pass
    
    class UpdateApprovalRuleTemplateDescriptionOutput(Mapping):
        pass
    
    class UpdateApprovalRuleTemplateNameInput(Mapping):
        pass
    
    class UpdateApprovalRuleTemplateNameOutput(Mapping):
        pass
    
    class UpdateCommentInput(Mapping):
        pass
    
    class UpdateCommentOutput(Mapping):
        pass
    
    class UpdateDefaultBranchInput(Mapping):
        pass
    
    class UpdatePullRequestApprovalRuleContentInput(Mapping):
        pass
    
    class UpdatePullRequestApprovalRuleContentOutput(Mapping):
        pass
    
    class UpdatePullRequestApprovalStateInput(Mapping):
        pass
    
    class UpdatePullRequestDescriptionInput(Mapping):
        pass
    
    class UpdatePullRequestDescriptionOutput(Mapping):
        pass
    
    class UpdatePullRequestStatusInput(Mapping):
        pass
    
    class UpdatePullRequestStatusOutput(Mapping):
        pass
    
    class UpdatePullRequestTitleInput(Mapping):
        pass
    
    class UpdatePullRequestTitleOutput(Mapping):
        pass
    
    class UpdateRepositoryDescriptionInput(Mapping):
        pass
    
    class UpdateRepositoryNameInput(Mapping):
        pass
    
    def associate_approval_rule_template_with_repository(self, repositoryName: str, approvalRuleTemplateName: str):
        r"""Creates an association between an approval rule template and a specified repository. Then, the next time a pull request is created in the repository where the destination reference (if specified) matches the destination reference (branch) for the pull request, an approval rule that matches the template conditions is automatically created for that pull request. If no destination references are specified in the template, an approval rule that matches the template contents is created for all pull requests in that repository.

        :param self:
        :param repositoryName:  The name of the repository that you want to associate with the template.<br/>approvalRuleTemplateName:  The name for the approval rule template. <br/>
        :return:         """
        pass

    def batch_associate_approval_rule_template_with_repositories(self, repositoryNames: List[RepositoryName], approvalRuleTemplateName: str) -> BatchAssociateApprovalRuleTemplateWithRepositoriesOutput:
        r"""Creates an association between an approval rule template and one or more specified repositories. 

        :param self:
        :param repositoryNames:  The names of the repositories you want to associate with the template. <note> The length constraint limit is for each string in the array. The array itself can be empty. </note><br/>approvalRuleTemplateName:  The name of the template you want to associate with one or more repositories.<br/>
        :return: errors:  A list of any errors that might have occurred while attempting to create the association between the template and the repositories.<br/>associatedRepositoryNames:  A list of names of the repositories that have been associated with the template.<br/>        """
        pass

    def batch_describe_merge_conflicts(self, mergeOption: str, sourceCommitSpecifier: str, destinationCommitSpecifier: str, repositoryName: str, maxMergeHunks: int=None, maxConflictFiles: int=None, filePaths: List[Path]=None, conflictDetailLevel: str=None, conflictResolutionStrategy: str=None, nextToken: str=None) -> BatchDescribeMergeConflictsOutput:
        r"""Returns information about one or more merge conflicts in the attempted merge of two commit specifiers using the squash or three-way merge strategy.

        :param self:
        :param nextToken:  An enumeration token that, when provided in a request, returns the next batch of the results.<br/>conflictResolutionStrategy:  Specifies which branch to use when resolving conflicts, or whether to attempt automatically merging two versions of a file. The default is NONE, which requires any conflicts to be resolved manually before the merge operation is successful.<br/>conflictDetailLevel:  The level of conflict detail to use. If unspecified, the default FILE_LEVEL is used, which returns a not-mergeable result if the same file has differences in both branches. If LINE_LEVEL is specified, a conflict is considered not mergeable if the same file in both branches has differences on the same line.<br/>filePaths:  The path of the target files used to describe the conflicts. If not specified, the default is all conflict files.<br/>maxConflictFiles:  The maximum number of files to include in the output.<br/>maxMergeHunks:  The maximum number of merge hunks to include in the output.<br/>mergeOption:  The merge option or strategy you want to use to merge the code.<br/>sourceCommitSpecifier:  The branch, tag, HEAD, or other fully qualified reference used to identify a commit (for example, a branch name or a full commit ID).<br/>destinationCommitSpecifier:  The branch, tag, HEAD, or other fully qualified reference used to identify a commit (for example, a branch name or a full commit ID).<br/>repositoryName:  The name of the repository that contains the merge conflicts you want to review.<br/>
        :return: baseCommitId:  The commit ID of the merge base.<br/>sourceCommitId:  The commit ID of the source commit specifier that was used in the merge evaluation.<br/>destinationCommitId:  The commit ID of the destination commit specifier that was used in the merge evaluation.<br/>errors:  A list of any errors returned while describing the merge conflicts for each file.<br/>nextToken:  An enumeration token that can be used in a request to return the next batch of the results.<br/>conflicts:  A list of conflicts for each file, including the conflict metadata and the hunks of the differences between the files.<br/>        """
        pass

    def batch_disassociate_approval_rule_template_from_repositories(self, repositoryNames: List[RepositoryName], approvalRuleTemplateName: str) -> BatchDisassociateApprovalRuleTemplateFromRepositoriesOutput:
        r"""Removes the association between an approval rule template and one or more specified repositories. 

        :param self:
        :param repositoryNames:  The repository names that you want to disassociate from the approval rule template. <note> The length constraint limit is for each string in the array. The array itself can be empty. </note><br/>approvalRuleTemplateName:  The name of the template that you want to disassociate from one or more repositories.<br/>
        :return: errors:  A list of any errors that might have occurred while attempting to remove the association between the template and the repositories.<br/>disassociatedRepositoryNames:  A list of repository names that have had their association with the template removed.<br/>        """
        pass

    def batch_get_commits(self, repositoryName: str, commitIds: List[ObjectId]) -> BatchGetCommitsOutput:
        r"""Returns information about the contents of one or more commits in a repository.

        :param self:
        :param repositoryName:  The name of the repository that contains the commits.<br/>commitIds:  The full commit IDs of the commits to get information about. <note> You must supply the full SHA IDs of each commit. You cannot use shortened SHA IDs. </note><br/>
        :return: errors:  Returns any commit IDs for which information could not be found. For example, if one of the commit IDs was a shortened SHA ID or that commit was not found in the specified repository, the ID returns an error object with more information.<br/>commits:  An array of commit data type objects, each of which contains information about a specified commit.<br/>        """
        pass

    def batch_get_repositories(self, repositoryNames: List[RepositoryName]) -> BatchGetRepositoriesOutput:
        r"""Returns information about one or more repositories. <note> The description field for a repository accepts all HTML characters and all valid Unicode characters. Applications that do not HTML-encode the description and display it in a webpage can expose users to potentially malicious code. Make sure that you HTML-encode the description field in any application that uses this API to display the repository description on a webpage. </note>

        :param self:
        :param repositoryNames:  The names of the repositories to get information about. <note> The length constraint limit is for each string in the array. The array itself can be empty. </note><br/>
        :return: repositoriesNotFound:  Returns a list of repository names for which information could not be found.<br/>repositories:  A list of repositories returned by the batch get repositories operation.<br/>        """
        pass

    def create_approval_rule_template(self, approvalRuleTemplateContent: str, approvalRuleTemplateName: str, approvalRuleTemplateDescription: str=None) -> CreateApprovalRuleTemplateOutput:
        r"""Creates a template for approval rules that can then be associated with one or more repositories in your AWS account. When you associate a template with a repository, AWS CodeCommit creates an approval rule that matches the conditions of the template for all pull requests that meet the conditions of the template. For more information, see <a>AssociateApprovalRuleTemplateWithRepository</a>.

        :param self:
        :param approvalRuleTemplateDescription:  The description of the approval rule template. Consider providing a description that explains what this template does and when it might be appropriate to associate it with repositories.<br/>approvalRuleTemplateContent:  The content of the approval rule that is created on pull requests in associated repositories. If you specify one or more destination references (branches), approval rules are created in an associated repository only if their destination references (branches) match those specified in the template. <note> When you create the content of the approval rule template, you can specify approvers in an approval pool in one of two ways: <ul> <li>  <b>CodeCommitApprovers</b>: This option only requires an AWS account and a resource. It can be used for both IAM users and federated access users whose name matches the provided resource name. This is a very powerful option that offers a great deal of flexibility. For example, if you specify the AWS account <i>123456789012</i> and <i>Mary_Major</i>, all of the following are counted as approvals coming from that user: <ul> <li> An IAM user in the account (arn:aws:iam::<i>123456789012</i>:user/<i>Mary_Major</i>) </li> <li> A federated user identified in IAM as Mary_Major (arn:aws:sts::<i>123456789012</i>:federated-user/<i>Mary_Major</i>) </li> </ul> This option does not recognize an active session of someone assuming the role of CodeCommitReview with a role session name of <i>Mary_Major</i> (arn:aws:sts::<i>123456789012</i>:assumed-role/CodeCommitReview/<i>Mary_Major</i>) unless you include a wildcard (*Mary_Major). </li> <li>  <b>Fully qualified ARN</b>: This option allows you to specify the fully qualified Amazon Resource Name (ARN) of the IAM user or role.  </li> </ul> For more information about IAM ARNs, wildcards, and formats, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html">IAM Identifiers</a> in the <i>IAM User Guide</i>. </note><br/>approvalRuleTemplateName:  The name of the approval rule template. Provide descriptive names, because this name is applied to the approval rules created automatically in associated repositories.<br/>
        :return: approvalRuleTemplate:  The content and structure of the created approval rule template.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastModifiedUser</i> The Amazon Resource Name (ARN) of the user who made the most recent changes to the approval rule template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationDate</i> The date the approval rule template was created, in timestamp format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastModifiedDate</i> The date the approval rule template was most recently changed, in timestamp format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ruleContentSha256</i> The SHA-256 hash signature for the content of the approval rule template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>approvalRuleTemplateContent</i> The content of the approval rule template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>approvalRuleTemplateDescription</i> The description of the approval rule template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>approvalRuleTemplateName</i> The name of the approval rule template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>approvalRuleTemplateId</i> The system-generated ID of the approval rule template.<br/>        """
        pass

    def create_branch(self, commitId: str, branchName: str, repositoryName: str):
        r"""Creates a branch in a repository and points the branch to a commit. <note> Calling the create branch operation does not set a repository's default branch. To do this, call the update default branch operation. </note>

        :param self:
        :param commitId:  The ID of the commit to point the new branch to.<br/>branchName:  The name of the new branch to create.<br/>repositoryName:  The name of the repository in which you want to create the new branch.<br/>
        :return:         """
        pass

    def create_commit(self, branchName: str, repositoryName: str, parentCommitId: str=None, authorName: str=None, email: str=None, commitMessage: str=None, keepEmptyFolders: KeepEmptyFolders=None, putFiles: List[PutFileEntry]=None, deleteFiles: List[DeleteFileEntry]=None, setFileModes: List[SetFileModeEntry]=None) -> CreateCommitOutput:
        r"""Creates a commit for a repository on the tip of a specified branch.

        :param self:
        :param setFileModes:  The file modes to update for files in this commit.<br/>deleteFiles:  The files to delete in this commit. These files still exist in earlier commits.<br/>putFiles:  The files to add or update in this commit.<br/>keepEmptyFolders:  If the commit contains deletions, whether to keep a folder or folder structure if the changes leave the folders empty. If true, a ..gitkeep file is created for empty folders. The default is false.<br/>commitMessage:  The commit message you want to include in the commit. Commit messages are limited to 256 KB. If no message is specified, a default message is used.<br/>email:  The email address of the person who created the commit.<br/>authorName:  The name of the author who created the commit. This information is used as both the author and committer for the commit.<br/>parentCommitId:  The ID of the commit that is the parent of the commit you create. Not required if this is an empty repository.<br/>branchName:  The name of the branch where you create the commit.<br/>repositoryName:  The name of the repository where you create the commit.<br/>
        :return: filesDeleted:  The files deleted as part of the committed file changes.<br/>filesUpdated:  The files updated as part of the commited file changes.<br/>filesAdded:  The files added as part of the committed file changes.<br/>treeId:  The full SHA-1 pointer of the tree information for the commit that contains the commited file changes.<br/>commitId:  The full commit ID of the commit that contains your committed file changes.<br/>        """
        pass

    def create_pull_request(self, targets: List[Target], title: str, description: str=None, clientRequestToken: str=None) -> CreatePullRequestOutput:
        r"""Creates a pull request in the specified repository.

        :param self:
        :param clientRequestToken:  A unique, client-generated idempotency token that, when provided in a request, ensures the request cannot be repeated with a changed parameter. If a request is received with the same parameters and a token is included, the request returns information about the initial request that used that token. <note> The AWS SDKs prepopulate client request tokens. If you are using an AWS SDK, an idempotency token is created for you. </note><br/>targets:  The targets for the pull request, including the source of the code to be reviewed (the source branch) and the destination where the creator of the pull request intends the code to be merged after the pull request is closed (the destination branch).<br/>description:  A description of the pull request.<br/>title:  The title of the pull request. This title is used to identify the pull request to other users in the repository.<br/>
        :return: pullRequest:  Information about the newly created pull request.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>approvalRules</i> The approval rules applied to the pull request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>revisionId</i> The system-generated revision ID for the pull request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>clientRequestToken</i> A unique, client-generated idempotency token that, when provided in a request, ensures the request cannot be repeated with a changed parameter. If a request is received with the same parameters and a token is included, the request returns information about the initial request that used that token.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>pullRequestTargets</i> The targets of the pull request, including the source branch and destination branch for the pull request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>authorArn</i> The Amazon Resource Name (ARN) of the user who created the pull request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>pullRequestStatus</i> The status of the pull request. Pull request status can only change from <code>OPEN</code> to <code>CLOSED</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationDate</i> The date and time the pull request was originally created, in timestamp format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastActivityDate</i> The day and time of the last user or system activity on the pull request, in timestamp format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> The user-defined description of the pull request. This description can be used to clarify what should be reviewed and other details of the request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>title</i> The user-defined title of the pull request. This title is displayed in the list of pull requests to other repository users.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>pullRequestId</i> The system-generated ID of the pull request. <br/>        """
        pass

    def create_pull_request_approval_rule(self, approvalRuleContent: str, approvalRuleName: str, pullRequestId: str) -> CreatePullRequestApprovalRuleOutput:
        r"""Creates an approval rule for a pull request.

        :param self:
        :param approvalRuleContent:  The content of the approval rule, including the number of approvals needed and the structure of an approval pool defined for approvals, if any. For more information about approval pools, see the AWS CodeCommit User Guide. <note> When you create the content of the approval rule, you can specify approvers in an approval pool in one of two ways: <ul> <li>  <b>CodeCommitApprovers</b>: This option only requires an AWS account and a resource. It can be used for both IAM users and federated access users whose name matches the provided resource name. This is a very powerful option that offers a great deal of flexibility. For example, if you specify the AWS account <i>123456789012</i> and <i>Mary_Major</i>, all of the following would be counted as approvals coming from that user: <ul> <li> An IAM user in the account (arn:aws:iam::<i>123456789012</i>:user/<i>Mary_Major</i>) </li> <li> A federated user identified in IAM as Mary_Major (arn:aws:sts::<i>123456789012</i>:federated-user/<i>Mary_Major</i>) </li> </ul> This option does not recognize an active session of someone assuming the role of CodeCommitReview with a role session name of <i>Mary_Major</i> (arn:aws:sts::<i>123456789012</i>:assumed-role/CodeCommitReview/<i>Mary_Major</i>) unless you include a wildcard (*Mary_Major). </li> <li>  <b>Fully qualified ARN</b>: This option allows you to specify the fully qualified Amazon Resource Name (ARN) of the IAM user or role.  </li> </ul> For more information about IAM ARNs, wildcards, and formats, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html">IAM Identifiers</a> in the <i>IAM User Guide</i>. </note><br/>approvalRuleName:  The name for the approval rule.<br/>pullRequestId:  The system-generated ID of the pull request for which you want to create the approval rule.<br/>
        :return: approvalRule:  Information about the created approval rule.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>originApprovalRuleTemplate</i> The approval rule template used to create the rule.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>originApprovalRuleTemplate</b>: The approval rule template used to create the rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastModifiedUser</i> The Amazon Resource Name (ARN) of the user who made the most recent changes to the approval rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationDate</i> The date the approval rule was created, in timestamp format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastModifiedDate</i> The date the approval rule was most recently changed, in timestamp format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ruleContentSha256</i> The SHA-256 hash signature for the content of the approval rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>approvalRuleContent</i> The content of the approval rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>approvalRuleName</i> The name of the approval rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>approvalRuleId</i> The system-generated ID of the approval rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>approvalRuleTemplateName</i> The name of the template that created the approval rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>approvalRuleTemplateId</i> The ID of the template that created the approval rule.<br/>        """
        pass

    def create_repository(self, repositoryName: str, repositoryDescription: str=None, tags: TagsMap=None) -> CreateRepositoryOutput:
        r"""Creates a new, empty repository.

        :param self:
        :param tags:  One or more tag key-value pairs to use when tagging this repository.<br/>repositoryDescription:  A comment or description about the new repository. <note> The description field for a repository accepts all HTML characters and all valid Unicode characters. Applications that do not HTML-encode the description and display it in a webpage can expose users to potentially malicious code. Make sure that you HTML-encode the description field in any application that uses this API to display the repository description on a webpage. </note><br/>repositoryName:  The name of the new repository to be created. <note> The repository name must be unique across the calling AWS account. Repository names are limited to 100 alphanumeric, dash, and underscore characters, and cannot include certain characters. For more information about the limits on repository names, see <a href="https://docs.aws.amazon.com/codecommit/latest/userguide/limits.html">Limits</a> in the <i>AWS CodeCommit User Guide</i>. The suffix .git is prohibited. </note><br/>
        :return: repositoryMetadata:  Information about the newly created repository.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the repository.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>cloneUrlSsh</i> The URL to use for cloning the repository over SSH.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>cloneUrlHttp</i> The URL to use for cloning the repository over HTTPS.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationDate</i> The date and time the repository was created, in timestamp format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastModifiedDate</i> The date and time the repository was last modified, in timestamp format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>defaultBranch</i> The repository's default branch name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>repositoryDescription</i> A comment or description about the repository.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>repositoryName</i> The repository's name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>repositoryId</i> The ID of the repository.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>accountId</i> The ID of the AWS account associated with the repository.<br/>        """
        pass

    def create_unreferenced_merge_commit(self, mergeOption: str, destinationCommitSpecifier: str, sourceCommitSpecifier: str, repositoryName: str, conflictDetailLevel: str=None, conflictResolutionStrategy: str=None, authorName: str=None, email: str=None, commitMessage: str=None, keepEmptyFolders: KeepEmptyFolders=None, conflictResolution: ConflictResolution=None) -> CreateUnreferencedMergeCommitOutput:
        r"""Creates an unreferenced commit that represents the result of merging two branches using a specified merge strategy. This can help you determine the outcome of a potential merge. This API cannot be used with the fast-forward merge strategy because that strategy does not create a merge commit. <note> This unreferenced merge commit can only be accessed using the GetCommit API or through git commands such as git fetch. To retrieve this commit, you must specify its commit ID or otherwise reference it. </note>

        :param self:
        :param conflictResolution:  If AUTOMERGE is the conflict resolution strategy, a list of inputs to use when resolving conflicts during a merge.:<br/>keepEmptyFolders:  If the commit contains deletions, whether to keep a folder or folder structure if the changes leave the folders empty. If this is specified as true, a .gitkeep file is created for empty folders. The default is false.<br/>commitMessage:  The commit message for the unreferenced commit.<br/>email:  The email address for the person who created the unreferenced commit.<br/>authorName:  The name of the author who created the unreferenced commit. This information is used as both the author and committer for the commit.<br/>conflictResolutionStrategy:  Specifies which branch to use when resolving conflicts, or whether to attempt automatically merging two versions of a file. The default is NONE, which requires any conflicts to be resolved manually before the merge operation is successful.<br/>conflictDetailLevel:  The level of conflict detail to use. If unspecified, the default FILE_LEVEL is used, which returns a not-mergeable result if the same file has differences in both branches. If LINE_LEVEL is specified, a conflict is considered not mergeable if the same file in both branches has differences on the same line.<br/>mergeOption:  The merge option or strategy you want to use to merge the code.<br/>destinationCommitSpecifier:  The branch, tag, HEAD, or other fully qualified reference used to identify a commit (for example, a branch name or a full commit ID).<br/>sourceCommitSpecifier:  The branch, tag, HEAD, or other fully qualified reference used to identify a commit (for example, a branch name or a full commit ID).<br/>repositoryName:  The name of the repository where you want to create the unreferenced merge commit.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>setFileModes</i> File modes that are set as part of the merge conflict resolution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deleteFiles</i> Files to be deleted as part of the merge conflict resolution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>replaceContents</i> Files to have content replaced as part of the merge conflict resolution.<br/>
        :return: treeId:  The full SHA-1 pointer of the tree information for the commit that contains the merge results.<br/>commitId:  The full commit ID of the commit that contains your merge results.<br/>        """
        pass

    def delete_approval_rule_template(self, approvalRuleTemplateName: str) -> DeleteApprovalRuleTemplateOutput:
        r"""Deletes a specified approval rule template. Deleting a template does not remove approval rules on pull requests already created with the template.

        :param self:
        :param approvalRuleTemplateName:  The name of the approval rule template to delete.<br/>
        :return: approvalRuleTemplateId:  The system-generated ID of the deleted approval rule template. If the template has been previously deleted, the only response is a 200 OK.<br/>        """
        pass

    def delete_branch(self, branchName: str, repositoryName: str) -> DeleteBranchOutput:
        r"""Deletes a branch from a repository, unless that branch is the default branch for the repository. 

        :param self:
        :param branchName:  The name of the branch to delete.<br/>repositoryName:  The name of the repository that contains the branch to be deleted.<br/>
        :return: deletedBranch:  Information about the branch deleted by the operation, including the branch name and the commit ID that was the tip of the branch.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>commitId</i> The ID of the last commit made to the branch.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>branchName</i> The name of the branch.<br/>        """
        pass

    def delete_comment_content(self, commentId: str) -> DeleteCommentContentOutput:
        r"""Deletes the content of a comment made on a change, file, or commit in a repository.

        :param self:
        :param commentId:  The unique, system-generated ID of the comment. To get this ID, use <a>GetCommentsForComparedCommit</a> or <a>GetCommentsForPullRequest</a>.<br/>
        :return: comment:  Information about the comment you just deleted.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>reactionCounts</i> A string to integer map that represents the number of individual users who have responded to a comment with the specified reactions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>callerReactions</i> The emoji reactions to a comment, if any, submitted by the user whose credentials are associated with the call to the API.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>clientRequestToken</i> A unique, client-generated idempotency token that, when provided in a request, ensures the request cannot be repeated with a changed parameter. If a request is received with the same parameters and a token is included, the request returns information about the initial request that used that token.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deleted</i> A Boolean value indicating whether the comment has been deleted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>authorArn</i> The Amazon Resource Name (ARN) of the person who posted the comment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastModifiedDate</i> The date and time the comment was most recently modified, in timestamp format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationDate</i> The date and time the comment was created, in timestamp format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>inReplyTo</i> The ID of the comment for which this comment is a reply, if any.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>content</i> The content of the comment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>commentId</i> The system-generated comment ID.<br/>        """
        pass

    def delete_file(self, parentCommitId: str, filePath: str, branchName: str, repositoryName: str, keepEmptyFolders: KeepEmptyFolders=None, commitMessage: str=None, name: str=None, email: str=None) -> DeleteFileOutput:
        r"""Deletes a specified file from a specified branch. A commit is created on the branch that contains the revision. The file still exists in the commits earlier to the commit that contains the deletion.

        :param self:
        :param email:  The email address for the commit that deletes the file. If no email address is specified, the email address is left blank.<br/>name:  The name of the author of the commit that deletes the file. If no name is specified, the user's ARN is used as the author name and committer name.<br/>commitMessage:  The commit message you want to include as part of deleting the file. Commit messages are limited to 256 KB. If no message is specified, a default message is used.<br/>keepEmptyFolders:  If a file is the only object in the folder or directory, specifies whether to delete the folder or directory that contains the file. By default, empty folders are deleted. This includes empty folders that are part of the directory structure. For example, if the path to a file is dir1/dir2/dir3/dir4, and dir2 and dir3 are empty, deleting the last file in dir4 also deletes the empty folders dir4, dir3, and dir2.<br/>parentCommitId:  The ID of the commit that is the tip of the branch where you want to create the commit that deletes the file. This must be the HEAD commit for the branch. The commit that deletes the file is created from this commit ID.<br/>filePath:  The fully qualified path to the file that to be deleted, including the full name and extension of that file. For example, /examples/file.md is a fully qualified path to a file named file.md in a folder named examples.<br/>branchName:  The name of the branch where the commit that deletes the file is made.<br/>repositoryName:  The name of the repository that contains the file to delete.<br/>
        :return: filePath:  The fully qualified path to the file to be deleted, including the full name and extension of that file.<br/>treeId:  The full SHA-1 pointer of the tree information for the commit that contains the delete file change.<br/>blobId:  The blob ID removed from the tree as part of deleting the file.<br/>commitId:  The full commit ID of the commit that contains the change that deletes the file.<br/>        """
        pass

    def delete_pull_request_approval_rule(self, approvalRuleName: str, pullRequestId: str) -> DeletePullRequestApprovalRuleOutput:
        r"""Deletes an approval rule from a specified pull request. Approval rules can be deleted from a pull request only if the pull request is open, and if the approval rule was created specifically for a pull request and not generated from an approval rule template associated with the repository where the pull request was created. You cannot delete an approval rule from a merged or closed pull request.

        :param self:
        :param approvalRuleName:  The name of the approval rule you want to delete.<br/>pullRequestId:  The system-generated ID of the pull request that contains the approval rule you want to delete.<br/>
        :return: approvalRuleId:  The ID of the deleted approval rule.  <note> If the approval rule was deleted in an earlier API call, the response is 200 OK without content. </note><br/>        """
        pass

    def delete_repository(self, repositoryName: str) -> DeleteRepositoryOutput:
        r"""Deletes a repository. If a specified repository was already deleted, a null repository ID is returned. <important> Deleting a repository also deletes all associated objects and metadata. After a repository is deleted, all future push calls to the deleted repository fail. </important>

        :param self:
        :param repositoryName:  The name of the repository to delete.<br/>
        :return: repositoryId:  The ID of the repository that was deleted.<br/>        """
        pass

    def describe_merge_conflicts(self, filePath: str, mergeOption: str, sourceCommitSpecifier: str, destinationCommitSpecifier: str, repositoryName: str, maxMergeHunks: int=None, conflictDetailLevel: str=None, conflictResolutionStrategy: str=None, nextToken: str=None) -> DescribeMergeConflictsOutput:
        r"""Returns information about one or more merge conflicts in the attempted merge of two commit specifiers using the squash or three-way merge strategy. If the merge option for the attempted merge is specified as FAST_FORWARD_MERGE, an exception is thrown.

        :param self:
        :param nextToken:  An enumeration token that, when provided in a request, returns the next batch of the results.<br/>conflictResolutionStrategy:  Specifies which branch to use when resolving conflicts, or whether to attempt automatically merging two versions of a file. The default is NONE, which requires any conflicts to be resolved manually before the merge operation is successful.<br/>conflictDetailLevel:  The level of conflict detail to use. If unspecified, the default FILE_LEVEL is used, which returns a not-mergeable result if the same file has differences in both branches. If LINE_LEVEL is specified, a conflict is considered not mergeable if the same file in both branches has differences on the same line.<br/>filePath:  The path of the target files used to describe the conflicts. <br/>maxMergeHunks:  The maximum number of merge hunks to include in the output.<br/>mergeOption:  The merge option or strategy you want to use to merge the code.<br/>sourceCommitSpecifier:  The branch, tag, HEAD, or other fully qualified reference used to identify a commit (for example, a branch name or a full commit ID).<br/>destinationCommitSpecifier:  The branch, tag, HEAD, or other fully qualified reference used to identify a commit (for example, a branch name or a full commit ID).<br/>repositoryName:  The name of the repository where you want to get information about a merge conflict.<br/>
        :return: baseCommitId:  The commit ID of the merge base.<br/>sourceCommitId:  The commit ID of the source commit specifier that was used in the merge evaluation.<br/>destinationCommitId:  The commit ID of the destination commit specifier that was used in the merge evaluation.<br/>nextToken:  An enumeration token that can be used in a request to return the next batch of the results.<br/>mergeHunks:  A list of merge hunks of the differences between the files or lines.<br/>conflictMetadata:  Contains metadata about the conflicts found in the merge.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>mergeOperations</i> Whether an add, modify, or delete operation caused the conflict between the source and destination of the merge.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>mergeOperations</b>: Whether an add, modify, or delete operation caused the conflict between the source and destination of the merge.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>objectTypeConflict</i> A boolean value (true or false) indicating whether there are conflicts between the branches in the object type of a file, folder, or submodule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>fileModeConflict</i> A boolean value indicating whether there are conflicts in the file mode of a file.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>contentConflict</i> A boolean value indicating whether there are conflicts in the content of a file.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>isBinaryFile</i> A boolean value (true or false) indicating whether the file is binary or textual in the source, destination, and base of the merge.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>isBinaryFile</b>: A boolean value (true or false) indicating whether the file is binary or textual in the source, destination, and base of the merge.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>numberOfConflicts</i> The number of conflicts, including both hunk conflicts and metadata conflicts.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>objectTypes</i> Information about any object type conflicts in a merge operation.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>objectTypes</b>: Information about any object type conflicts in a merge operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>fileModes</i> The file modes of the file in the source, destination, and base of the merge.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>fileModes</b>: The file modes of the file in the source, destination, and base of the merge.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>fileSizes</i> The file sizes of the file in the source, destination, and base of the merge.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>fileSizes</b>: The file sizes of the file in the source, destination, and base of the merge.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>filePath</i> The path of the file that contains conflicts.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>base</i> The size of a file in the base of a merge or pull request.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>destination</i> The size of a file in the destination of a merge or pull request.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>source</i> The size of a file in the source of a merge or pull request.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>base</i> The file mode of a file in the base of a merge or pull request.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>destination</i> The file mode of a file in the destination of a merge or pull request.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>source</i> The file mode of a file in the source of a merge or pull request.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>base</i> The type of the object in the base commit of the merge.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>destination</i> The type of the object in the destination branch.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>source</i> The type of the object in the source branch.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>base</i> The binary or non-binary status of a file in the base of a merge or pull request.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>destination</i> The binary or non-binary status of a file in the destination of a merge or pull request.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>source</i> The binary or non-binary status of file in the source of a merge or pull request.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>destination</i> The operation on a file in the destination of a merge or pull request.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>source</i> The operation (add, modify, or delete) on a file in the source of a merge or pull request.<br/>        """
        pass

    def describe_pull_request_events(self, pullRequestId: str, pullRequestEventType: str=None, actorArn: str=None, nextToken: str=None, maxResults: int=None) -> DescribePullRequestEventsOutput:
        r"""Returns information about one or more pull request events.

        :param self:
        :param maxResults:  A non-zero, non-negative integer used to limit the number of returned results. The default is 100 events, which is also the maximum number of events that can be returned in a result.<br/>nextToken:  An enumeration token that, when provided in a request, returns the next batch of the results.<br/>actorArn:  The Amazon Resource Name (ARN) of the user whose actions resulted in the event. Examples include updating the pull request with more commits or changing the status of a pull request.<br/>pullRequestEventType:  Optional. The pull request event type about which you want to return information.<br/>pullRequestId:  The system-generated ID of the pull request. To get this ID, use <a>ListPullRequests</a>.<br/>
        :return: nextToken:  An enumeration token that can be used in a request to return the next batch of the results.<br/>pullRequestEvents:  Information about the pull request events.<br/>        """
        pass

    def disassociate_approval_rule_template_from_repository(self, repositoryName: str, approvalRuleTemplateName: str):
        r"""Removes the association between a template and a repository so that approval rules based on the template are not automatically created when pull requests are created in the specified repository. This does not delete any approval rules previously created for pull requests through the template association.

        :param self:
        :param repositoryName:  The name of the repository you want to disassociate from the template.<br/>approvalRuleTemplateName:  The name of the approval rule template to disassociate from a specified repository.<br/>
        :return:         """
        pass

    def evaluate_pull_request_approval_rules(self, revisionId: str, pullRequestId: str) -> EvaluatePullRequestApprovalRulesOutput:
        r"""Evaluates whether a pull request has met all the conditions specified in its associated approval rules.

        :param self:
        :param revisionId:  The system-generated ID for the pull request revision. To retrieve the most recent revision ID for a pull request, use <a>GetPullRequest</a>.<br/>pullRequestId:  The system-generated ID of the pull request you want to evaluate.<br/>
        :return: evaluation:  The result of the evaluation, including the names of the rules whose conditions have been met (if any), the names of the rules whose conditions have not been met (if any), whether the pull request is in the approved state, and whether the pull request approval rule has been set aside by an override. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>approvalRulesNotSatisfied</i> The names of the approval rules that have not had their conditions met.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>approvalRulesSatisfied</i> The names of the approval rules that have had their conditions met.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>overridden</i> Whether the approval rule requirements for the pull request have been overridden and no longer need to be met.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>approved</i> Whether the state of the pull request is approved.<br/>        """
        pass

    def get_approval_rule_template(self, approvalRuleTemplateName: str) -> GetApprovalRuleTemplateOutput:
        r"""Returns information about a specified approval rule template.

        :param self:
        :param approvalRuleTemplateName:  The name of the approval rule template for which you want to get information.<br/>
        :return: approvalRuleTemplate:  The content and structure of the approval rule template.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastModifiedUser</i> The Amazon Resource Name (ARN) of the user who made the most recent changes to the approval rule template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationDate</i> The date the approval rule template was created, in timestamp format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastModifiedDate</i> The date the approval rule template was most recently changed, in timestamp format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ruleContentSha256</i> The SHA-256 hash signature for the content of the approval rule template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>approvalRuleTemplateContent</i> The content of the approval rule template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>approvalRuleTemplateDescription</i> The description of the approval rule template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>approvalRuleTemplateName</i> The name of the approval rule template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>approvalRuleTemplateId</i> The system-generated ID of the approval rule template.<br/>        """
        pass

    def get_blob(self, blobId: str, repositoryName: str) -> GetBlobOutput:
        r"""Returns the base-64 encoded content of an individual blob in a repository.

        :param self:
        :param blobId:  The ID of the blob, which is its SHA-1 pointer.<br/>repositoryName:  The name of the repository that contains the blob.<br/>
        :return: content:  The content of the blob, usually a file.<br/>        """
        pass

    def get_branch(self, repositoryName: str=None, branchName: str=None) -> GetBranchOutput:
        r"""Returns information about a repository branch, including its name and the last commit ID.

        :param self:
        :param branchName:  The name of the branch for which you want to retrieve information.<br/>repositoryName:  The name of the repository that contains the branch for which you want to retrieve information.<br/>
        :return: branch:  The name of the branch.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>commitId</i> The ID of the last commit made to the branch.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>branchName</i> The name of the branch.<br/>        """
        pass

    def get_comment(self, commentId: str) -> GetCommentOutput:
        r"""Returns the content of a comment made on a change, file, or commit in a repository.  <note> Reaction counts might include numbers from user identities who were deleted after the reaction was made. For a count of reactions from active identities, use GetCommentReactions. </note>

        :param self:
        :param commentId:  The unique, system-generated ID of the comment. To get this ID, use <a>GetCommentsForComparedCommit</a> or <a>GetCommentsForPullRequest</a>.<br/>
        :return: comment:  The contents of the comment.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>reactionCounts</i> A string to integer map that represents the number of individual users who have responded to a comment with the specified reactions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>callerReactions</i> The emoji reactions to a comment, if any, submitted by the user whose credentials are associated with the call to the API.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>clientRequestToken</i> A unique, client-generated idempotency token that, when provided in a request, ensures the request cannot be repeated with a changed parameter. If a request is received with the same parameters and a token is included, the request returns information about the initial request that used that token.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deleted</i> A Boolean value indicating whether the comment has been deleted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>authorArn</i> The Amazon Resource Name (ARN) of the person who posted the comment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastModifiedDate</i> The date and time the comment was most recently modified, in timestamp format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationDate</i> The date and time the comment was created, in timestamp format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>inReplyTo</i> The ID of the comment for which this comment is a reply, if any.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>content</i> The content of the comment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>commentId</i> The system-generated comment ID.<br/>        """
        pass

    def get_comment_reactions(self, commentId: str, reactionUserArn: str=None, nextToken: str=None, maxResults: int=None) -> GetCommentReactionsOutput:
        r"""Returns information about reactions to a specified comment ID. Reactions from users who have been deleted will not be included in the count.

        :param self:
        :param maxResults:  A non-zero, non-negative integer used to limit the number of returned results. The default is the same as the allowed maximum, 1,000.<br/>nextToken:  An enumeration token that, when provided in a request, returns the next batch of the results. <br/>reactionUserArn:  Optional. The Amazon Resource Name (ARN) of the user or identity for which you want to get reaction information.<br/>commentId:  The ID of the comment for which you want to get reactions information.<br/>
        :return: nextToken:  An enumeration token that can be used in a request to return the next batch of the results.<br/>reactionsForComment:  An array of reactions to the specified comment.<br/>        """
        pass

    def get_comments_for_compared_commit(self, afterCommitId: str, repositoryName: str, beforeCommitId: str=None, nextToken: str=None, maxResults: int=None) -> GetCommentsForComparedCommitOutput:
        r"""Returns information about comments made on the comparison between two commits. <note> Reaction counts might include numbers from user identities who were deleted after the reaction was made. For a count of reactions from active identities, use GetCommentReactions. </note>

        :param self:
        :param maxResults:  A non-zero, non-negative integer used to limit the number of returned results. The default is 100 comments, but you can configure up to 500.<br/>nextToken:  An enumeration token that when provided in a request, returns the next batch of the results. <br/>afterCommitId:  To establish the directionality of the comparison, the full commit ID of the after commit.<br/>beforeCommitId:  To establish the directionality of the comparison, the full commit ID of the before commit.<br/>repositoryName:  The name of the repository where you want to compare commits.<br/>
        :return: nextToken:  An enumeration token that can be used in a request to return the next batch of the results.<br/>commentsForComparedCommitData:  A list of comment objects on the compared commit.<br/>        """
        pass

    def get_comments_for_pull_request(self, pullRequestId: str, repositoryName: str=None, beforeCommitId: str=None, afterCommitId: str=None, nextToken: str=None, maxResults: int=None) -> GetCommentsForPullRequestOutput:
        r"""Returns comments made on a pull request. <note> Reaction counts might include numbers from user identities who were deleted after the reaction was made. For a count of reactions from active identities, use GetCommentReactions. </note>

        :param self:
        :param maxResults:  A non-zero, non-negative integer used to limit the number of returned results. The default is 100 comments. You can return up to 500 comments with a single request.<br/>nextToken:  An enumeration token that, when provided in a request, returns the next batch of the results.<br/>afterCommitId:  The full commit ID of the commit in the source branch that was the tip of the branch at the time the comment was made.<br/>beforeCommitId:  The full commit ID of the commit in the destination branch that was the tip of the branch at the time the pull request was created.<br/>repositoryName:  The name of the repository that contains the pull request.<br/>pullRequestId:  The system-generated ID of the pull request. To get this ID, use <a>ListPullRequests</a>.<br/>
        :return: nextToken:  An enumeration token that can be used in a request to return the next batch of the results.<br/>commentsForPullRequestData:  An array of comment objects on the pull request.<br/>        """
        pass

    def get_commit(self, commitId: str, repositoryName: str) -> GetCommitOutput:
        r"""Returns information about a commit, including commit message and committer information.

        :param self:
        :param commitId:  The commit ID. Commit IDs are the full SHA ID of the commit.<br/>repositoryName:  The name of the repository to which the commit was made.<br/>
        :return: commit:  A commit data type object that contains information about the specified commit.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>additionalData</i> Any other data associated with the specified commit.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>committer</i> Information about the person who committed the specified commit, also known as the committer. Information includes the date in timestamp format with GMT offset, the name of the committer, and the email address for the committer, as configured in Git. For more information about the difference between an author and a committer in Git, see <a href="http://git-scm.com/book/ch2-3.html">Viewing the Commit History</a> in Pro Git by Scott Chacon and Ben Straub.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>committer</b>: Information about the person who committed the specified commit, also known as the committer. Information includes the date in timestamp format with GMT offset, the name of the committer, and the email address for the committer, as configured in Git. For more information about the difference between an author and a committer in Git, see <a href="http://git-scm.com/book/ch2-3.html">Viewing the Commit History</a> in Pro Git by Scott Chacon and Ben Straub.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>author</i> Information about the author of the specified commit. Information includes the date in timestamp format with GMT offset, the name of the author, and the email address for the author, as configured in Git.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>author</b>: Information about the author of the specified commit. Information includes the date in timestamp format with GMT offset, the name of the author, and the email address for the author, as configured in Git.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>message</i> The commit message associated with the specified commit.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>parents</i> A list of parent commits for the specified commit. Each parent commit ID is the full commit ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>treeId</i> Tree information for the specified commit.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>commitId</i> The full SHA ID of the specified commit. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>date</i> The date when the specified commit was commited, in timestamp format with GMT offset.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>email</i> The email address associated with the user who made the commit, if any.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the user who made the specified commit.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>date</i> The date when the specified commit was commited, in timestamp format with GMT offset.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>email</i> The email address associated with the user who made the commit, if any.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the user who made the specified commit.<br/>        """
        pass

    def get_differences(self, afterCommitSpecifier: str, repositoryName: str, beforeCommitSpecifier: str=None, beforePath: str=None, afterPath: str=None, MaxResults: int=None, NextToken: str=None) -> GetDifferencesOutput:
        r"""Returns information about the differences in a valid commit specifier (such as a branch, tag, HEAD, commit ID, or other fully qualified reference). Results can be limited to a specified path.

        :param self:
        :param NextToken:  An enumeration token that, when provided in a request, returns the next batch of the results.<br/>MaxResults:  A non-zero, non-negative integer used to limit the number of returned results.<br/>afterPath:  The file path in which to check differences. Limits the results to this path. Can also be used to specify the changed name of a directory or folder, if it has changed. If not specified, differences are shown for all paths.<br/>beforePath:  The file path in which to check for differences. Limits the results to this path. Can also be used to specify the previous name of a directory or folder. If <code>beforePath</code> and <code>afterPath</code> are not specified, differences are shown for all paths.<br/>afterCommitSpecifier:  The branch, tag, HEAD, or other fully qualified reference used to identify a commit.<br/>beforeCommitSpecifier:  The branch, tag, HEAD, or other fully qualified reference used to identify a commit (for example, the full commit ID). Optional. If not specified, all changes before the <code>afterCommitSpecifier</code> value are shown. If you do not use <code>beforeCommitSpecifier</code> in your request, consider limiting the results with <code>maxResults</code>.<br/>repositoryName:  The name of the repository where you want to get differences.<br/>
        :return: NextToken:  An enumeration token that can be used in a request to return the next batch of the results.<br/>differences:  A data type object that contains information about the differences, including whether the difference is added, modified, or deleted (A, D, M).<br/>        """
        pass

    def get_file(self, filePath: str, repositoryName: str, commitSpecifier: str=None) -> GetFileOutput:
        r"""Returns the base-64 encoded contents of a specified file and its metadata.

        :param self:
        :param filePath:  The fully qualified path to the file, including the full name and extension of the file. For example, /examples/file.md is the fully qualified path to a file named file.md in a folder named examples.<br/>commitSpecifier:  The fully quaified reference that identifies the commit that contains the file. For example, you can specify a full commit ID, a tag, a branch name, or a reference such as refs/heads/master. If none is provided, the head commit is used.<br/>repositoryName:  The name of the repository that contains the file.<br/>
        :return: fileContent:  The base-64 encoded binary data object that represents the content of the file.<br/>fileSize:  The size of the contents of the file, in bytes.<br/>fileMode:  The extrapolated file mode permissions of the blob. Valid values include strings such as EXECUTABLE and not numeric values. <note> The file mode permissions returned by this API are not the standard file mode permission values, such as 100644, but rather extrapolated values. See the supported return values. </note><br/>filePath:  The fully qualified path to the specified file. Returns the name and extension of the file.<br/>blobId:  The blob ID of the object that represents the file content.<br/>commitId:  The full commit ID of the commit that contains the content returned by GetFile.<br/>        """
        pass

    def get_folder(self, folderPath: str, repositoryName: str, commitSpecifier: str=None) -> GetFolderOutput:
        r"""Returns the contents of a specified folder in a repository.

        :param self:
        :param folderPath:  The fully qualified path to the folder whose contents are returned, including the folder name. For example, /examples is a fully-qualified path to a folder named examples that was created off of the root directory (/) of a repository. <br/>commitSpecifier:  A fully qualified reference used to identify a commit that contains the version of the folder's content to return. A fully qualified reference can be a commit ID, branch name, tag, or reference such as HEAD. If no specifier is provided, the folder content is returned as it exists in the HEAD commit.<br/>repositoryName:  The name of the repository.<br/>
        :return: subModules:  The list of submodules in the specified folder, if any.<br/>symbolicLinks:  The list of symbolic links to other files and folders in the specified folder, if any.<br/>files:  The list of files in the specified folder, if any.<br/>subFolders:  The list of folders that exist under the specified folder, if any.<br/>treeId:  The full SHA-1 pointer of the tree information for the commit that contains the folder.<br/>folderPath:  The fully qualified path of the folder whose contents are returned.<br/>commitId:  The full commit ID used as a reference for the returned version of the folder content.<br/>        """
        pass

    def get_merge_commit(self, destinationCommitSpecifier: str, sourceCommitSpecifier: str, repositoryName: str, conflictDetailLevel: str=None, conflictResolutionStrategy: str=None) -> GetMergeCommitOutput:
        r"""Returns information about a specified merge commit.

        :param self:
        :param conflictResolutionStrategy:  Specifies which branch to use when resolving conflicts, or whether to attempt automatically merging two versions of a file. The default is NONE, which requires any conflicts to be resolved manually before the merge operation is successful.<br/>conflictDetailLevel:  The level of conflict detail to use. If unspecified, the default FILE_LEVEL is used, which returns a not-mergeable result if the same file has differences in both branches. If LINE_LEVEL is specified, a conflict is considered not mergeable if the same file in both branches has differences on the same line.<br/>destinationCommitSpecifier:  The branch, tag, HEAD, or other fully qualified reference used to identify a commit (for example, a branch name or a full commit ID).<br/>sourceCommitSpecifier:  The branch, tag, HEAD, or other fully qualified reference used to identify a commit (for example, a branch name or a full commit ID).<br/>repositoryName:  The name of the repository that contains the merge commit about which you want to get information.<br/>
        :return: mergedCommitId:  The commit ID for the merge commit created when the source branch was merged into the destination branch. If the fast-forward merge strategy was used, there is no merge commit.<br/>baseCommitId:  The commit ID of the merge base.<br/>destinationCommitId:  The commit ID of the destination commit specifier that was used in the merge evaluation.<br/>sourceCommitId:  The commit ID of the source commit specifier that was used in the merge evaluation.<br/>        """
        pass

    def get_merge_conflicts(self, mergeOption: str, sourceCommitSpecifier: str, destinationCommitSpecifier: str, repositoryName: str, conflictDetailLevel: str=None, maxConflictFiles: int=None, conflictResolutionStrategy: str=None, nextToken: str=None) -> GetMergeConflictsOutput:
        r"""Returns information about merge conflicts between the before and after commit IDs for a pull request in a repository.

        :param self:
        :param nextToken:  An enumeration token that, when provided in a request, returns the next batch of the results.<br/>conflictResolutionStrategy:  Specifies which branch to use when resolving conflicts, or whether to attempt automatically merging two versions of a file. The default is NONE, which requires any conflicts to be resolved manually before the merge operation is successful.<br/>maxConflictFiles:  The maximum number of files to include in the output.<br/>conflictDetailLevel:  The level of conflict detail to use. If unspecified, the default FILE_LEVEL is used, which returns a not-mergeable result if the same file has differences in both branches. If LINE_LEVEL is specified, a conflict is considered not mergeable if the same file in both branches has differences on the same line.<br/>mergeOption:  The merge option or strategy you want to use to merge the code. <br/>sourceCommitSpecifier:  The branch, tag, HEAD, or other fully qualified reference used to identify a commit (for example, a branch name or a full commit ID).<br/>destinationCommitSpecifier:  The branch, tag, HEAD, or other fully qualified reference used to identify a commit (for example, a branch name or a full commit ID).<br/>repositoryName:  The name of the repository where the pull request was created.<br/>
        :return: nextToken:  An enumeration token that can be used in a request to return the next batch of the results.<br/>conflictMetadataList:  A list of metadata for any conflicting files. If the specified merge strategy is FAST_FORWARD_MERGE, this list is always empty.<br/>baseCommitId:  The commit ID of the merge base.<br/>sourceCommitId:  The commit ID of the source commit specifier that was used in the merge evaluation.<br/>destinationCommitId:  The commit ID of the destination commit specifier that was used in the merge evaluation.<br/>mergeable:  A Boolean value that indicates whether the code is mergeable by the specified merge option.<br/>        """
        pass

    def get_merge_options(self, destinationCommitSpecifier: str, sourceCommitSpecifier: str, repositoryName: str, conflictDetailLevel: str=None, conflictResolutionStrategy: str=None) -> GetMergeOptionsOutput:
        r"""Returns information about the merge options available for merging two specified branches. For details about why a merge option is not available, use GetMergeConflicts or DescribeMergeConflicts.

        :param self:
        :param conflictResolutionStrategy:  Specifies which branch to use when resolving conflicts, or whether to attempt automatically merging two versions of a file. The default is NONE, which requires any conflicts to be resolved manually before the merge operation is successful.<br/>conflictDetailLevel:  The level of conflict detail to use. If unspecified, the default FILE_LEVEL is used, which returns a not-mergeable result if the same file has differences in both branches. If LINE_LEVEL is specified, a conflict is considered not mergeable if the same file in both branches has differences on the same line.<br/>destinationCommitSpecifier:  The branch, tag, HEAD, or other fully qualified reference used to identify a commit (for example, a branch name or a full commit ID).<br/>sourceCommitSpecifier:  The branch, tag, HEAD, or other fully qualified reference used to identify a commit (for example, a branch name or a full commit ID).<br/>repositoryName:  The name of the repository that contains the commits about which you want to get merge options.<br/>
        :return: baseCommitId:  The commit ID of the merge base.<br/>destinationCommitId:  The commit ID of the destination commit specifier that was used in the merge evaluation.<br/>sourceCommitId:  The commit ID of the source commit specifier that was used in the merge evaluation.<br/>mergeOptions:  The merge option or strategy used to merge the code.<br/>        """
        pass

    def get_pull_request(self, pullRequestId: str) -> GetPullRequestOutput:
        r"""Gets information about a pull request in a specified repository.

        :param self:
        :param pullRequestId:  The system-generated ID of the pull request. To get this ID, use <a>ListPullRequests</a>.<br/>
        :return: pullRequest:  Information about the specified pull request.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>approvalRules</i> The approval rules applied to the pull request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>revisionId</i> The system-generated revision ID for the pull request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>clientRequestToken</i> A unique, client-generated idempotency token that, when provided in a request, ensures the request cannot be repeated with a changed parameter. If a request is received with the same parameters and a token is included, the request returns information about the initial request that used that token.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>pullRequestTargets</i> The targets of the pull request, including the source branch and destination branch for the pull request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>authorArn</i> The Amazon Resource Name (ARN) of the user who created the pull request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>pullRequestStatus</i> The status of the pull request. Pull request status can only change from <code>OPEN</code> to <code>CLOSED</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationDate</i> The date and time the pull request was originally created, in timestamp format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastActivityDate</i> The day and time of the last user or system activity on the pull request, in timestamp format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> The user-defined description of the pull request. This description can be used to clarify what should be reviewed and other details of the request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>title</i> The user-defined title of the pull request. This title is displayed in the list of pull requests to other repository users.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>pullRequestId</i> The system-generated ID of the pull request. <br/>        """
        pass

    def get_pull_request_approval_states(self, revisionId: str, pullRequestId: str) -> GetPullRequestApprovalStatesOutput:
        r"""Gets information about the approval states for a specified pull request. Approval states only apply to pull requests that have one or more approval rules applied to them.

        :param self:
        :param revisionId:  The system-generated ID for the pull request revision.<br/>pullRequestId:  The system-generated ID for the pull request.<br/>
        :return: approvals:  Information about users who have approved the pull request.<br/>        """
        pass

    def get_pull_request_override_state(self, revisionId: str, pullRequestId: str) -> GetPullRequestOverrideStateOutput:
        r"""Returns information about whether approval rules have been set aside (overridden) for a pull request, and if so, the Amazon Resource Name (ARN) of the user or identity that overrode the rules and their requirements for the pull request.

        :param self:
        :param revisionId:  The system-generated ID of the revision for the pull request. To retrieve the most recent revision ID, use <a>GetPullRequest</a>.<br/>pullRequestId:  The ID of the pull request for which you want to get information about whether approval rules have been set aside (overridden).<br/>
        :return: overrider:  The Amazon Resource Name (ARN) of the user or identity that overrode the rules and their requirements for the pull request.<br/>overridden:  A Boolean value that indicates whether a pull request has had its rules set aside (TRUE) or whether all approval rules still apply (FALSE).<br/>        """
        pass

    def get_repository(self, repositoryName: str) -> GetRepositoryOutput:
        r"""Returns information about a repository. <note> The description field for a repository accepts all HTML characters and all valid Unicode characters. Applications that do not HTML-encode the description and display it in a webpage can expose users to potentially malicious code. Make sure that you HTML-encode the description field in any application that uses this API to display the repository description on a webpage. </note>

        :param self:
        :param repositoryName:  The name of the repository to get information about.<br/>
        :return: repositoryMetadata:  Information about the repository.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the repository.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>cloneUrlSsh</i> The URL to use for cloning the repository over SSH.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>cloneUrlHttp</i> The URL to use for cloning the repository over HTTPS.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationDate</i> The date and time the repository was created, in timestamp format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastModifiedDate</i> The date and time the repository was last modified, in timestamp format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>defaultBranch</i> The repository's default branch name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>repositoryDescription</i> A comment or description about the repository.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>repositoryName</i> The repository's name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>repositoryId</i> The ID of the repository.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>accountId</i> The ID of the AWS account associated with the repository.<br/>        """
        pass

    def get_repository_triggers(self, repositoryName: str) -> GetRepositoryTriggersOutput:
        r"""Gets information about triggers configured for a repository.

        :param self:
        :param repositoryName:  The name of the repository for which the trigger is configured.<br/>
        :return: triggers:  The JSON block of configuration information for each trigger.<br/>configurationId:  The system-generated unique ID for the trigger.<br/>        """
        pass

    def list_approval_rule_templates(self, nextToken: str=None, maxResults: int=None) -> ListApprovalRuleTemplatesOutput:
        r"""Lists all approval rule templates in the specified AWS Region in your AWS account. If an AWS Region is not specified, the AWS Region where you are signed in is used.

        :param self:
        :param maxResults:  A non-zero, non-negative integer used to limit the number of returned results.<br/>nextToken:  An enumeration token that, when provided in a request, returns the next batch of the results.<br/>
        :return: nextToken:  An enumeration token that allows the operation to batch the next results of the operation.<br/>approvalRuleTemplateNames:  The names of all the approval rule templates found in the AWS Region for your AWS account.<br/>        """
        pass

    def list_associated_approval_rule_templates_for_repository(self, repositoryName: str, nextToken: str=None, maxResults: int=None) -> ListAssociatedApprovalRuleTemplatesForRepositoryOutput:
        r"""Lists all approval rule templates that are associated with a specified repository.

        :param self:
        :param maxResults:  A non-zero, non-negative integer used to limit the number of returned results.<br/>nextToken:  An enumeration token that, when provided in a request, returns the next batch of the results.<br/>repositoryName:  The name of the repository for which you want to list all associated approval rule templates.<br/>
        :return: nextToken:  An enumeration token that allows the operation to batch the next results of the operation.<br/>approvalRuleTemplateNames:  The names of all approval rule templates associated with the repository.<br/>        """
        pass

    def list_branches(self, repositoryName: str, nextToken: str=None) -> ListBranchesOutput:
        r"""Gets information about one or more branches in a repository.

        :param self:
        :param nextToken:  An enumeration token that allows the operation to batch the results.<br/>repositoryName:  The name of the repository that contains the branches.<br/>
        :return: nextToken:  An enumeration token that returns the batch of the results.<br/>branches:  The list of branch names.<br/>        """
        pass

    def list_pull_requests(self, repositoryName: str, authorArn: str=None, pullRequestStatus: str=None, nextToken: str=None, maxResults: int=None) -> ListPullRequestsOutput:
        r"""Returns a list of pull requests for a specified repository. The return list can be refined by pull request status or pull request author ARN.

        :param self:
        :param maxResults:  A non-zero, non-negative integer used to limit the number of returned results.<br/>nextToken:  An enumeration token that, when provided in a request, returns the next batch of the results.<br/>pullRequestStatus:  Optional. The status of the pull request. If used, this refines the results to the pull requests that match the specified status.<br/>authorArn:  Optional. The Amazon Resource Name (ARN) of the user who created the pull request. If used, this filters the results to pull requests created by that user.<br/>repositoryName:  The name of the repository for which you want to list pull requests.<br/>
        :return: nextToken:  An enumeration token that allows the operation to batch the next results of the operation.<br/>pullRequestIds:  The system-generated IDs of the pull requests.<br/>        """
        pass

    def list_repositories(self, nextToken: str=None, sortBy: str=None, order: str=None) -> ListRepositoriesOutput:
        r"""Gets information about one or more repositories.

        :param self:
        :param order:  The order in which to sort the results of a list repositories operation.<br/>sortBy:  The criteria used to sort the results of a list repositories operation.<br/>nextToken:  An enumeration token that allows the operation to batch the results of the operation. Batch sizes are 1,000 for list repository operations. When the client sends the token back to AWS CodeCommit, another page of 1,000 records is retrieved.<br/>
        :return: nextToken:  An enumeration token that allows the operation to batch the results of the operation. Batch sizes are 1,000 for list repository operations. When the client sends the token back to AWS CodeCommit, another page of 1,000 records is retrieved.<br/>repositories:  Lists the repositories called by the list repositories operation.<br/>        """
        pass

    def list_repositories_for_approval_rule_template(self, approvalRuleTemplateName: str, nextToken: str=None, maxResults: int=None) -> ListRepositoriesForApprovalRuleTemplateOutput:
        r"""Lists all repositories associated with the specified approval rule template.

        :param self:
        :param maxResults:  A non-zero, non-negative integer used to limit the number of returned results.<br/>nextToken:  An enumeration token that, when provided in a request, returns the next batch of the results.<br/>approvalRuleTemplateName:  The name of the approval rule template for which you want to list repositories that are associated with that template.<br/>
        :return: nextToken:  An enumeration token that allows the operation to batch the next results of the operation.<br/>repositoryNames:  A list of repository names that are associated with the specified approval rule template.<br/>        """
        pass

    def list_tags_for_resource(self, resourceArn: str, nextToken: str=None) -> ListTagsForResourceOutput:
        r"""Gets information about AWS tags for a specified Amazon Resource Name (ARN) in AWS CodeCommit. For a list of valid resources in AWS CodeCommit, see <a href="https://docs.aws.amazon.com/codecommit/latest/userguide/auth-and-access-control-iam-access-control-identity-based.html#arn-formats">CodeCommit Resources and Operations</a> in the<i> AWS CodeCommit User Guide</i>.

        :param self:
        :param nextToken:  An enumeration token that, when provided in a request, returns the next batch of the results.<br/>resourceArn:  The Amazon Resource Name (ARN) of the resource for which you want to get information about tags, if any.<br/>
        :return: nextToken:  An enumeration token that allows the operation to batch the next results of the operation.<br/>tags:  A list of tag key and value pairs associated with the specified resource.<br/>        """
        pass

    def merge_branches_by_fast_forward(self, destinationCommitSpecifier: str, sourceCommitSpecifier: str, repositoryName: str, targetBranch: str=None) -> MergeBranchesByFastForwardOutput:
        r"""Merges two branches using the fast-forward merge strategy.

        :param self:
        :param targetBranch:  The branch where the merge is applied.<br/>destinationCommitSpecifier:  The branch, tag, HEAD, or other fully qualified reference used to identify a commit (for example, a branch name or a full commit ID).<br/>sourceCommitSpecifier:  The branch, tag, HEAD, or other fully qualified reference used to identify a commit (for example, a branch name or a full commit ID).<br/>repositoryName:  The name of the repository where you want to merge two branches.<br/>
        :return: treeId:  The tree ID of the merge in the destination or target branch.<br/>commitId:  The commit ID of the merge in the destination or target branch.<br/>        """
        pass

    def merge_branches_by_squash(self, destinationCommitSpecifier: str, sourceCommitSpecifier: str, repositoryName: str, targetBranch: str=None, conflictDetailLevel: str=None, conflictResolutionStrategy: str=None, authorName: str=None, email: str=None, commitMessage: str=None, keepEmptyFolders: KeepEmptyFolders=None, conflictResolution: ConflictResolution=None) -> MergeBranchesBySquashOutput:
        r"""Merges two branches using the squash merge strategy.

        :param self:
        :param conflictResolution:  If AUTOMERGE is the conflict resolution strategy, a list of inputs to use when resolving conflicts during a merge.:<br/>keepEmptyFolders:  If the commit contains deletions, whether to keep a folder or folder structure if the changes leave the folders empty. If this is specified as true, a .gitkeep file is created for empty folders. The default is false.<br/>commitMessage:  The commit message for the merge.<br/>email:  The email address of the person merging the branches. This information is used in the commit information for the merge.<br/>authorName:  The name of the author who created the commit. This information is used as both the author and committer for the commit.<br/>conflictResolutionStrategy:  Specifies which branch to use when resolving conflicts, or whether to attempt automatically merging two versions of a file. The default is NONE, which requires any conflicts to be resolved manually before the merge operation is successful.<br/>conflictDetailLevel:  The level of conflict detail to use. If unspecified, the default FILE_LEVEL is used, which returns a not-mergeable result if the same file has differences in both branches. If LINE_LEVEL is specified, a conflict is considered not mergeable if the same file in both branches has differences on the same line.<br/>targetBranch:  The branch where the merge is applied. <br/>destinationCommitSpecifier:  The branch, tag, HEAD, or other fully qualified reference used to identify a commit (for example, a branch name or a full commit ID).<br/>sourceCommitSpecifier:  The branch, tag, HEAD, or other fully qualified reference used to identify a commit (for example, a branch name or a full commit ID).<br/>repositoryName:  The name of the repository where you want to merge two branches.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>setFileModes</i> File modes that are set as part of the merge conflict resolution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deleteFiles</i> Files to be deleted as part of the merge conflict resolution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>replaceContents</i> Files to have content replaced as part of the merge conflict resolution.<br/>
        :return: treeId:  The tree ID of the merge in the destination or target branch.<br/>commitId:  The commit ID of the merge in the destination or target branch.<br/>        """
        pass

    def merge_branches_by_three_way(self, destinationCommitSpecifier: str, sourceCommitSpecifier: str, repositoryName: str, targetBranch: str=None, conflictDetailLevel: str=None, conflictResolutionStrategy: str=None, authorName: str=None, email: str=None, commitMessage: str=None, keepEmptyFolders: KeepEmptyFolders=None, conflictResolution: ConflictResolution=None) -> MergeBranchesByThreeWayOutput:
        r"""Merges two specified branches using the three-way merge strategy.

        :param self:
        :param conflictResolution:  If AUTOMERGE is the conflict resolution strategy, a list of inputs to use when resolving conflicts during a merge.:<br/>keepEmptyFolders:  If the commit contains deletions, whether to keep a folder or folder structure if the changes leave the folders empty. If true, a .gitkeep file is created for empty folders. The default is false.<br/>commitMessage:  The commit message to include in the commit information for the merge.<br/>email:  The email address of the person merging the branches. This information is used in the commit information for the merge.<br/>authorName:  The name of the author who created the commit. This information is used as both the author and committer for the commit.<br/>conflictResolutionStrategy:  Specifies which branch to use when resolving conflicts, or whether to attempt automatically merging two versions of a file. The default is NONE, which requires any conflicts to be resolved manually before the merge operation is successful.<br/>conflictDetailLevel:  The level of conflict detail to use. If unspecified, the default FILE_LEVEL is used, which returns a not-mergeable result if the same file has differences in both branches. If LINE_LEVEL is specified, a conflict is considered not mergeable if the same file in both branches has differences on the same line.<br/>targetBranch:  The branch where the merge is applied. <br/>destinationCommitSpecifier:  The branch, tag, HEAD, or other fully qualified reference used to identify a commit (for example, a branch name or a full commit ID).<br/>sourceCommitSpecifier:  The branch, tag, HEAD, or other fully qualified reference used to identify a commit (for example, a branch name or a full commit ID).<br/>repositoryName:  The name of the repository where you want to merge two branches.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>setFileModes</i> File modes that are set as part of the merge conflict resolution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deleteFiles</i> Files to be deleted as part of the merge conflict resolution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>replaceContents</i> Files to have content replaced as part of the merge conflict resolution.<br/>
        :return: treeId:  The tree ID of the merge in the destination or target branch.<br/>commitId:  The commit ID of the merge in the destination or target branch.<br/>        """
        pass

    def merge_pull_request_by_fast_forward(self, repositoryName: str, pullRequestId: str, sourceCommitId: str=None) -> MergePullRequestByFastForwardOutput:
        r"""Attempts to merge the source commit of a pull request into the specified destination branch for that pull request at the specified commit using the fast-forward merge strategy. If the merge is successful, it closes the pull request.

        :param self:
        :param sourceCommitId:  The full commit ID of the original or updated commit in the pull request source branch. Pass this value if you want an exception thrown if the current commit ID of the tip of the source branch does not match this commit ID.<br/>repositoryName:  The name of the repository where the pull request was created.<br/>pullRequestId:  The system-generated ID of the pull request. To get this ID, use <a>ListPullRequests</a>.<br/>
        :return: pullRequest:  Information about the specified pull request, including the merge.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>approvalRules</i> The approval rules applied to the pull request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>revisionId</i> The system-generated revision ID for the pull request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>clientRequestToken</i> A unique, client-generated idempotency token that, when provided in a request, ensures the request cannot be repeated with a changed parameter. If a request is received with the same parameters and a token is included, the request returns information about the initial request that used that token.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>pullRequestTargets</i> The targets of the pull request, including the source branch and destination branch for the pull request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>authorArn</i> The Amazon Resource Name (ARN) of the user who created the pull request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>pullRequestStatus</i> The status of the pull request. Pull request status can only change from <code>OPEN</code> to <code>CLOSED</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationDate</i> The date and time the pull request was originally created, in timestamp format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastActivityDate</i> The day and time of the last user or system activity on the pull request, in timestamp format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> The user-defined description of the pull request. This description can be used to clarify what should be reviewed and other details of the request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>title</i> The user-defined title of the pull request. This title is displayed in the list of pull requests to other repository users.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>pullRequestId</i> The system-generated ID of the pull request. <br/>        """
        pass

    def merge_pull_request_by_squash(self, repositoryName: str, pullRequestId: str, sourceCommitId: str=None, conflictDetailLevel: str=None, conflictResolutionStrategy: str=None, commitMessage: str=None, authorName: str=None, email: str=None, keepEmptyFolders: KeepEmptyFolders=None, conflictResolution: ConflictResolution=None) -> MergePullRequestBySquashOutput:
        r"""Attempts to merge the source commit of a pull request into the specified destination branch for that pull request at the specified commit using the squash merge strategy. If the merge is successful, it closes the pull request.

        :param self:
        :param conflictResolution:  If AUTOMERGE is the conflict resolution strategy, a list of inputs to use when resolving conflicts during a merge.:<br/>keepEmptyFolders:  If the commit contains deletions, whether to keep a folder or folder structure if the changes leave the folders empty. If true, a .gitkeep file is created for empty folders. The default is false.<br/>email:  The email address of the person merging the branches. This information is used in the commit information for the merge.<br/>authorName:  The name of the author who created the commit. This information is used as both the author and committer for the commit.<br/>commitMessage:  The commit message to include in the commit information for the merge.<br/>conflictResolutionStrategy:  Specifies which branch to use when resolving conflicts, or whether to attempt automatically merging two versions of a file. The default is NONE, which requires any conflicts to be resolved manually before the merge operation is successful.<br/>conflictDetailLevel:  The level of conflict detail to use. If unspecified, the default FILE_LEVEL is used, which returns a not-mergeable result if the same file has differences in both branches. If LINE_LEVEL is specified, a conflict is considered not mergeable if the same file in both branches has differences on the same line.<br/>sourceCommitId:  The full commit ID of the original or updated commit in the pull request source branch. Pass this value if you want an exception thrown if the current commit ID of the tip of the source branch does not match this commit ID.<br/>repositoryName:  The name of the repository where the pull request was created.<br/>pullRequestId:  The system-generated ID of the pull request. To get this ID, use <a>ListPullRequests</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>setFileModes</i> File modes that are set as part of the merge conflict resolution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deleteFiles</i> Files to be deleted as part of the merge conflict resolution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>replaceContents</i> Files to have content replaced as part of the merge conflict resolution.<br/>
        :return: pullRequest:  Returns information about a pull request.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>approvalRules</i> The approval rules applied to the pull request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>revisionId</i> The system-generated revision ID for the pull request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>clientRequestToken</i> A unique, client-generated idempotency token that, when provided in a request, ensures the request cannot be repeated with a changed parameter. If a request is received with the same parameters and a token is included, the request returns information about the initial request that used that token.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>pullRequestTargets</i> The targets of the pull request, including the source branch and destination branch for the pull request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>authorArn</i> The Amazon Resource Name (ARN) of the user who created the pull request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>pullRequestStatus</i> The status of the pull request. Pull request status can only change from <code>OPEN</code> to <code>CLOSED</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationDate</i> The date and time the pull request was originally created, in timestamp format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastActivityDate</i> The day and time of the last user or system activity on the pull request, in timestamp format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> The user-defined description of the pull request. This description can be used to clarify what should be reviewed and other details of the request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>title</i> The user-defined title of the pull request. This title is displayed in the list of pull requests to other repository users.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>pullRequestId</i> The system-generated ID of the pull request. <br/>        """
        pass

    def merge_pull_request_by_three_way(self, repositoryName: str, pullRequestId: str, sourceCommitId: str=None, conflictDetailLevel: str=None, conflictResolutionStrategy: str=None, commitMessage: str=None, authorName: str=None, email: str=None, keepEmptyFolders: KeepEmptyFolders=None, conflictResolution: ConflictResolution=None) -> MergePullRequestByThreeWayOutput:
        r"""Attempts to merge the source commit of a pull request into the specified destination branch for that pull request at the specified commit using the three-way merge strategy. If the merge is successful, it closes the pull request.

        :param self:
        :param conflictResolution:  If AUTOMERGE is the conflict resolution strategy, a list of inputs to use when resolving conflicts during a merge.:<br/>keepEmptyFolders:  If the commit contains deletions, whether to keep a folder or folder structure if the changes leave the folders empty. If true, a .gitkeep file is created for empty folders. The default is false.<br/>email:  The email address of the person merging the branches. This information is used in the commit information for the merge.<br/>authorName:  The name of the author who created the commit. This information is used as both the author and committer for the commit.<br/>commitMessage:  The commit message to include in the commit information for the merge.<br/>conflictResolutionStrategy:  Specifies which branch to use when resolving conflicts, or whether to attempt automatically merging two versions of a file. The default is NONE, which requires any conflicts to be resolved manually before the merge operation is successful.<br/>conflictDetailLevel:  The level of conflict detail to use. If unspecified, the default FILE_LEVEL is used, which returns a not-mergeable result if the same file has differences in both branches. If LINE_LEVEL is specified, a conflict is considered not mergeable if the same file in both branches has differences on the same line.<br/>sourceCommitId:  The full commit ID of the original or updated commit in the pull request source branch. Pass this value if you want an exception thrown if the current commit ID of the tip of the source branch does not match this commit ID.<br/>repositoryName:  The name of the repository where the pull request was created.<br/>pullRequestId:  The system-generated ID of the pull request. To get this ID, use <a>ListPullRequests</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>setFileModes</i> File modes that are set as part of the merge conflict resolution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deleteFiles</i> Files to be deleted as part of the merge conflict resolution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>replaceContents</i> Files to have content replaced as part of the merge conflict resolution.<br/>
        :return: pullRequest:  Returns information about a pull request.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>approvalRules</i> The approval rules applied to the pull request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>revisionId</i> The system-generated revision ID for the pull request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>clientRequestToken</i> A unique, client-generated idempotency token that, when provided in a request, ensures the request cannot be repeated with a changed parameter. If a request is received with the same parameters and a token is included, the request returns information about the initial request that used that token.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>pullRequestTargets</i> The targets of the pull request, including the source branch and destination branch for the pull request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>authorArn</i> The Amazon Resource Name (ARN) of the user who created the pull request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>pullRequestStatus</i> The status of the pull request. Pull request status can only change from <code>OPEN</code> to <code>CLOSED</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationDate</i> The date and time the pull request was originally created, in timestamp format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastActivityDate</i> The day and time of the last user or system activity on the pull request, in timestamp format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> The user-defined description of the pull request. This description can be used to clarify what should be reviewed and other details of the request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>title</i> The user-defined title of the pull request. This title is displayed in the list of pull requests to other repository users.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>pullRequestId</i> The system-generated ID of the pull request. <br/>        """
        pass

    def override_pull_request_approval_rules(self, overrideStatus: str, revisionId: str, pullRequestId: str):
        r"""Sets aside (overrides) all approval rule requirements for a specified pull request.

        :param self:
        :param overrideStatus:  Whether you want to set aside approval rule requirements for the pull request (OVERRIDE) or revoke a previous override and apply approval rule requirements (REVOKE). REVOKE status is not stored.<br/>revisionId:  The system-generated ID of the most recent revision of the pull request. You cannot override approval rules for anything but the most recent revision of a pull request. To get the revision ID, use GetPullRequest.<br/>pullRequestId:  The system-generated ID of the pull request for which you want to override all approval rule requirements. To get this information, use <a>GetPullRequest</a>.<br/>
        :return:         """
        pass

    def post_comment_for_compared_commit(self, content: str, afterCommitId: str, repositoryName: str, beforeCommitId: str=None, location: Location=None, clientRequestToken: str=None) -> PostCommentForComparedCommitOutput:
        r"""Posts a comment on the comparison between two commits.

        :param self:
        :param clientRequestToken:  A unique, client-generated idempotency token that, when provided in a request, ensures the request cannot be repeated with a changed parameter. If a request is received with the same parameters and a token is included, the request returns information about the initial request that used that token.<br/>content:  The content of the comment you want to make.<br/>location:  The location of the comparison where you want to comment.:<br/>afterCommitId:  To establish the directionality of the comparison, the full commit ID of the after commit.<br/>beforeCommitId:  To establish the directionality of the comparison, the full commit ID of the before commit. Required for commenting on any commit unless that commit is the initial commit.<br/>repositoryName:  The name of the repository where you want to post a comment on the comparison between commits.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>relativeFileVersion</i> In a comparison of commits or a pull request, whether the change is in the before or after of that comparison.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>filePosition</i> The position of a change in a compared file, in line number format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>filePath</i> The name of the file being compared, including its extension and subdirectory, if any.<br/>
        :return: comment:  The content of the comment you posted.:<br/>location:  The location of the comment in the comparison between the two commits.:<br/>afterBlobId:  In the directionality you established, the blob ID of the after blob.<br/>beforeBlobId:  In the directionality you established, the blob ID of the before blob.<br/>afterCommitId:  In the directionality you established, the full commit ID of the after commit.<br/>beforeCommitId:  In the directionality you established, the full commit ID of the before commit.<br/>repositoryName:  The name of the repository where you posted a comment on the comparison between commits.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>relativeFileVersion</i> In a comparison of commits or a pull request, whether the change is in the before or after of that comparison.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>filePosition</i> The position of a change in a compared file, in line number format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>filePath</i> The name of the file being compared, including its extension and subdirectory, if any.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>reactionCounts</i> A string to integer map that represents the number of individual users who have responded to a comment with the specified reactions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>callerReactions</i> The emoji reactions to a comment, if any, submitted by the user whose credentials are associated with the call to the API.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>clientRequestToken</i> A unique, client-generated idempotency token that, when provided in a request, ensures the request cannot be repeated with a changed parameter. If a request is received with the same parameters and a token is included, the request returns information about the initial request that used that token.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deleted</i> A Boolean value indicating whether the comment has been deleted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>authorArn</i> The Amazon Resource Name (ARN) of the person who posted the comment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastModifiedDate</i> The date and time the comment was most recently modified, in timestamp format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationDate</i> The date and time the comment was created, in timestamp format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>inReplyTo</i> The ID of the comment for which this comment is a reply, if any.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>content</i> The content of the comment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>commentId</i> The system-generated comment ID.<br/>        """
        pass

    def post_comment_for_pull_request(self, content: str, afterCommitId: str, beforeCommitId: str, repositoryName: str, pullRequestId: str, location: Location=None, clientRequestToken: str=None) -> PostCommentForPullRequestOutput:
        r"""Posts a comment on a pull request.

        :param self:
        :param clientRequestToken:  A unique, client-generated idempotency token that, when provided in a request, ensures the request cannot be repeated with a changed parameter. If a request is received with the same parameters and a token is included, the request returns information about the initial request that used that token.<br/>content:  The content of your comment on the change.<br/>location:  The location of the change where you want to post your comment. If no location is provided, the comment is posted as a general comment on the pull request difference between the before commit ID and the after commit ID.:<br/>afterCommitId:  The full commit ID of the commit in the source branch that is the current tip of the branch for the pull request when you post the comment.<br/>beforeCommitId:  The full commit ID of the commit in the destination branch that was the tip of the branch at the time the pull request was created.<br/>repositoryName:  The name of the repository where you want to post a comment on a pull request.<br/>pullRequestId:  The system-generated ID of the pull request. To get this ID, use <a>ListPullRequests</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>relativeFileVersion</i> In a comparison of commits or a pull request, whether the change is in the before or after of that comparison.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>filePosition</i> The position of a change in a compared file, in line number format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>filePath</i> The name of the file being compared, including its extension and subdirectory, if any.<br/>
        :return: comment:  The content of the comment you posted.:<br/>location:  The location of the change where you posted your comment.:<br/>afterBlobId:  In the directionality of the pull request, the blob ID of the after blob.<br/>beforeBlobId:  In the directionality of the pull request, the blob ID of the before blob.<br/>afterCommitId:  The full commit ID of the commit in the destination branch where the pull request is merged.<br/>beforeCommitId:  The full commit ID of the commit in the source branch used to create the pull request, or in the case of an updated pull request, the full commit ID of the commit used to update the pull request.<br/>pullRequestId:  The system-generated ID of the pull request. <br/>repositoryName:  The name of the repository where you posted a comment on a pull request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>relativeFileVersion</i> In a comparison of commits or a pull request, whether the change is in the before or after of that comparison.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>filePosition</i> The position of a change in a compared file, in line number format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>filePath</i> The name of the file being compared, including its extension and subdirectory, if any.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>reactionCounts</i> A string to integer map that represents the number of individual users who have responded to a comment with the specified reactions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>callerReactions</i> The emoji reactions to a comment, if any, submitted by the user whose credentials are associated with the call to the API.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>clientRequestToken</i> A unique, client-generated idempotency token that, when provided in a request, ensures the request cannot be repeated with a changed parameter. If a request is received with the same parameters and a token is included, the request returns information about the initial request that used that token.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deleted</i> A Boolean value indicating whether the comment has been deleted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>authorArn</i> The Amazon Resource Name (ARN) of the person who posted the comment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastModifiedDate</i> The date and time the comment was most recently modified, in timestamp format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationDate</i> The date and time the comment was created, in timestamp format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>inReplyTo</i> The ID of the comment for which this comment is a reply, if any.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>content</i> The content of the comment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>commentId</i> The system-generated comment ID.<br/>        """
        pass

    def post_comment_reply(self, content: str, inReplyTo: str, clientRequestToken: str=None) -> PostCommentReplyOutput:
        r"""Posts a comment in reply to an existing comment on a comparison between commits or a pull request.

        :param self:
        :param content:  The contents of your reply to a comment.<br/>clientRequestToken:  A unique, client-generated idempotency token that, when provided in a request, ensures the request cannot be repeated with a changed parameter. If a request is received with the same parameters and a token is included, the request returns information about the initial request that used that token.<br/>inReplyTo:  The system-generated ID of the comment to which you want to reply. To get this ID, use <a>GetCommentsForComparedCommit</a> or <a>GetCommentsForPullRequest</a>.<br/>
        :return: comment:  Information about the reply to a comment.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>reactionCounts</i> A string to integer map that represents the number of individual users who have responded to a comment with the specified reactions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>callerReactions</i> The emoji reactions to a comment, if any, submitted by the user whose credentials are associated with the call to the API.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>clientRequestToken</i> A unique, client-generated idempotency token that, when provided in a request, ensures the request cannot be repeated with a changed parameter. If a request is received with the same parameters and a token is included, the request returns information about the initial request that used that token.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deleted</i> A Boolean value indicating whether the comment has been deleted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>authorArn</i> The Amazon Resource Name (ARN) of the person who posted the comment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastModifiedDate</i> The date and time the comment was most recently modified, in timestamp format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationDate</i> The date and time the comment was created, in timestamp format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>inReplyTo</i> The ID of the comment for which this comment is a reply, if any.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>content</i> The content of the comment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>commentId</i> The system-generated comment ID.<br/>        """
        pass

    def put_comment_reaction(self, reactionValue: str, commentId: str):
        r"""Adds or updates a reaction to a specified comment for the user whose identity is used to make the request. You can only add or update a reaction for yourself. You cannot add, modify, or delete a reaction for another user.

        :param self:
        :param reactionValue:  The emoji reaction you want to add or update. To remove a reaction, provide a value of blank or null. You can also provide the value of none. For information about emoji reaction values supported in AWS CodeCommit, see the <a href="https://docs.aws.amazon.com/codecommit/latest/userguide/how-to-commit-comment.html#emoji-reaction-table">AWS CodeCommit User Guide</a>.<br/>commentId:  The ID of the comment to which you want to add or update a reaction.<br/>
        :return:         """
        pass

    def put_file(self, filePath: str, fileContent: FileContent, branchName: str, repositoryName: str, fileMode: str=None, parentCommitId: str=None, commitMessage: str=None, name: str=None, email: str=None) -> PutFileOutput:
        r"""Adds or updates a file in a branch in an AWS CodeCommit repository, and generates a commit for the addition in the specified branch.

        :param self:
        :param email:  An email address for the person adding or updating the file.<br/>name:  The name of the person adding or updating the file. Although it is optional, a name makes the commit history for your repository more useful.<br/>commitMessage:  A message about why this file was added or updated. Although it is optional, a message makes the commit history for your repository more useful.<br/>parentCommitId:  The full commit ID of the head commit in the branch where you want to add or update the file. If this is an empty repository, no commit ID is required. If this is not an empty repository, a commit ID is required.  The commit ID must match the ID of the head commit at the time of the operation. Otherwise, an error occurs, and the file is not added or updated.<br/>fileMode:  The file mode permissions of the blob. Valid file mode permissions are listed here.<br/>filePath:  The name of the file you want to add or update, including the relative path to the file in the repository. <note> If the path does not currently exist in the repository, the path is created as part of adding the file. </note><br/>fileContent:  The content of the file, in binary object format. <br/>branchName:  The name of the branch where you want to add or update the file. If this is an empty repository, this branch is created.<br/>repositoryName:  The name of the repository where you want to add or update the file.<br/>
        :return: treeId:  The full SHA-1 pointer of the tree information for the commit that contains this file change.<br/>blobId:  The ID of the blob, which is its SHA-1 pointer.<br/>commitId:  The full SHA ID of the commit that contains this file change.<br/>        """
        pass

    def put_repository_triggers(self, triggers: List[RepositoryTrigger], repositoryName: str) -> PutRepositoryTriggersOutput:
        r"""Replaces all triggers for a repository. Used to create or delete triggers.

        :param self:
        :param triggers:  The JSON block of configuration information for each trigger.<br/>repositoryName:  The name of the repository where you want to create or update the trigger.<br/>
        :return: configurationId:  The system-generated unique ID for the create or update operation.<br/>        """
        pass

    def tag_resource(self, tags: TagsMap, resourceArn: str):
        r"""Adds or updates tags for a resource in AWS CodeCommit. For a list of valid resources in AWS CodeCommit, see <a href="https://docs.aws.amazon.com/codecommit/latest/userguide/auth-and-access-control-iam-access-control-identity-based.html#arn-formats">CodeCommit Resources and Operations</a> in the <i>AWS CodeCommit User Guide</i>.

        :param self:
        :param tags:  The key-value pair to use when tagging this repository.<br/>resourceArn:  The Amazon Resource Name (ARN) of the resource to which you want to add or update tags.<br/>
        :return:         """
        pass

    def test_repository_triggers(self, triggers: List[RepositoryTrigger], repositoryName: str) -> TestRepositoryTriggersOutput:
        r"""Tests the functionality of repository triggers by sending information to the trigger target. If real data is available in the repository, the test sends data from the last commit. If no data is available, sample data is generated.

        :param self:
        :param triggers:  The list of triggers to test.<br/>repositoryName:  The name of the repository in which to test the triggers.<br/>
        :return: failedExecutions:  The list of triggers that were not tested. This list provides the names of the triggers that could not be tested, separated by commas.<br/>successfulExecutions:  The list of triggers that were successfully tested. This list provides the names of the triggers that were successfully tested, separated by commas.<br/>        """
        pass

    def untag_resource(self, tagKeys: List[TagKey], resourceArn: str):
        r"""Removes tags for a resource in AWS CodeCommit. For a list of valid resources in AWS CodeCommit, see <a href="https://docs.aws.amazon.com/codecommit/latest/userguide/auth-and-access-control-iam-access-control-identity-based.html#arn-formats">CodeCommit Resources and Operations</a> in the <i>AWS CodeCommit User Guide</i>.

        :param self:
        :param tagKeys:  The tag key for each tag that you want to remove from the resource.<br/>resourceArn:  The Amazon Resource Name (ARN) of the resource to which you want to remove tags.<br/>
        :return:         """
        pass

    def update_approval_rule_template_content(self, newRuleContent: str, approvalRuleTemplateName: str, existingRuleContentSha256: str=None) -> UpdateApprovalRuleTemplateContentOutput:
        r"""Updates the content of an approval rule template. You can change the number of required approvals, the membership of the approval rule, and whether an approval pool is defined.

        :param self:
        :param existingRuleContentSha256:  The SHA-256 hash signature for the content of the approval rule. You can retrieve this information by using <a>GetPullRequest</a>.<br/>newRuleContent:  The content that replaces the existing content of the rule. Content statements must be complete. You cannot provide only the changes.<br/>approvalRuleTemplateName:  The name of the approval rule template where you want to update the content of the rule. <br/>
        :return: approvalRuleTemplate:  Returns information about an approval rule template.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastModifiedUser</i> The Amazon Resource Name (ARN) of the user who made the most recent changes to the approval rule template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationDate</i> The date the approval rule template was created, in timestamp format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastModifiedDate</i> The date the approval rule template was most recently changed, in timestamp format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ruleContentSha256</i> The SHA-256 hash signature for the content of the approval rule template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>approvalRuleTemplateContent</i> The content of the approval rule template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>approvalRuleTemplateDescription</i> The description of the approval rule template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>approvalRuleTemplateName</i> The name of the approval rule template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>approvalRuleTemplateId</i> The system-generated ID of the approval rule template.<br/>        """
        pass

    def update_approval_rule_template_description(self, approvalRuleTemplateDescription: str, approvalRuleTemplateName: str) -> UpdateApprovalRuleTemplateDescriptionOutput:
        r"""Updates the description for a specified approval rule template.

        :param self:
        :param approvalRuleTemplateDescription:  The updated description of the approval rule template.<br/>approvalRuleTemplateName:  The name of the template for which you want to update the description.<br/>
        :return: approvalRuleTemplate:  The structure and content of the updated approval rule template.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastModifiedUser</i> The Amazon Resource Name (ARN) of the user who made the most recent changes to the approval rule template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationDate</i> The date the approval rule template was created, in timestamp format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastModifiedDate</i> The date the approval rule template was most recently changed, in timestamp format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ruleContentSha256</i> The SHA-256 hash signature for the content of the approval rule template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>approvalRuleTemplateContent</i> The content of the approval rule template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>approvalRuleTemplateDescription</i> The description of the approval rule template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>approvalRuleTemplateName</i> The name of the approval rule template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>approvalRuleTemplateId</i> The system-generated ID of the approval rule template.<br/>        """
        pass

    def update_approval_rule_template_name(self, newApprovalRuleTemplateName: str, oldApprovalRuleTemplateName: str) -> UpdateApprovalRuleTemplateNameOutput:
        r"""Updates the name of a specified approval rule template.

        :param self:
        :param newApprovalRuleTemplateName:  The new name you want to apply to the approval rule template.<br/>oldApprovalRuleTemplateName:  The current name of the approval rule template.<br/>
        :return: approvalRuleTemplate:  The structure and content of the updated approval rule template.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastModifiedUser</i> The Amazon Resource Name (ARN) of the user who made the most recent changes to the approval rule template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationDate</i> The date the approval rule template was created, in timestamp format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastModifiedDate</i> The date the approval rule template was most recently changed, in timestamp format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ruleContentSha256</i> The SHA-256 hash signature for the content of the approval rule template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>approvalRuleTemplateContent</i> The content of the approval rule template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>approvalRuleTemplateDescription</i> The description of the approval rule template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>approvalRuleTemplateName</i> The name of the approval rule template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>approvalRuleTemplateId</i> The system-generated ID of the approval rule template.<br/>        """
        pass

    def update_comment(self, content: str, commentId: str) -> UpdateCommentOutput:
        r"""Replaces the contents of a comment.

        :param self:
        :param content:  The updated content to replace the existing content of the comment.<br/>commentId:  The system-generated ID of the comment you want to update. To get this ID, use <a>GetCommentsForComparedCommit</a> or <a>GetCommentsForPullRequest</a>.<br/>
        :return: comment:  Information about the updated comment.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>reactionCounts</i> A string to integer map that represents the number of individual users who have responded to a comment with the specified reactions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>callerReactions</i> The emoji reactions to a comment, if any, submitted by the user whose credentials are associated with the call to the API.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>clientRequestToken</i> A unique, client-generated idempotency token that, when provided in a request, ensures the request cannot be repeated with a changed parameter. If a request is received with the same parameters and a token is included, the request returns information about the initial request that used that token.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deleted</i> A Boolean value indicating whether the comment has been deleted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>authorArn</i> The Amazon Resource Name (ARN) of the person who posted the comment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastModifiedDate</i> The date and time the comment was most recently modified, in timestamp format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationDate</i> The date and time the comment was created, in timestamp format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>inReplyTo</i> The ID of the comment for which this comment is a reply, if any.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>content</i> The content of the comment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>commentId</i> The system-generated comment ID.<br/>        """
        pass

    def update_default_branch(self, defaultBranchName: str, repositoryName: str):
        r"""Sets or changes the default branch name for the specified repository. <note> If you use this operation to change the default branch name to the current default branch name, a success message is returned even though the default branch did not change. </note>

        :param self:
        :param defaultBranchName:  The name of the branch to set as the default.<br/>repositoryName:  The name of the repository to set or change the default branch for.<br/>
        :return:         """
        pass

    def update_pull_request_approval_rule_content(self, newRuleContent: str, approvalRuleName: str, pullRequestId: str, existingRuleContentSha256: str=None) -> UpdatePullRequestApprovalRuleContentOutput:
        r"""Updates the structure of an approval rule created specifically for a pull request. For example, you can change the number of required approvers and the approval pool for approvers. 

        :param self:
        :param newRuleContent:  The updated content for the approval rule. <note> When you update the content of the approval rule, you can specify approvers in an approval pool in one of two ways: <ul> <li>  <b>CodeCommitApprovers</b>: This option only requires an AWS account and a resource. It can be used for both IAM users and federated access users whose name matches the provided resource name. This is a very powerful option that offers a great deal of flexibility. For example, if you specify the AWS account <i>123456789012</i> and <i>Mary_Major</i>, all of the following are counted as approvals coming from that user: <ul> <li> An IAM user in the account (arn:aws:iam::<i>123456789012</i>:user/<i>Mary_Major</i>) </li> <li> A federated user identified in IAM as Mary_Major (arn:aws:sts::<i>123456789012</i>:federated-user/<i>Mary_Major</i>) </li> </ul> This option does not recognize an active session of someone assuming the role of CodeCommitReview with a role session name of <i>Mary_Major</i> (arn:aws:sts::<i>123456789012</i>:assumed-role/CodeCommitReview/<i>Mary_Major</i>) unless you include a wildcard (*Mary_Major). </li> <li>  <b>Fully qualified ARN</b>: This option allows you to specify the fully qualified Amazon Resource Name (ARN) of the IAM user or role.  </li> </ul> For more information about IAM ARNs, wildcards, and formats, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html">IAM Identifiers</a> in the <i>IAM User Guide</i>. </note><br/>existingRuleContentSha256:  The SHA-256 hash signature for the content of the approval rule. You can retrieve this information by using <a>GetPullRequest</a>.<br/>approvalRuleName:  The name of the approval rule you want to update.<br/>pullRequestId:  The system-generated ID of the pull request.<br/>
        :return: approvalRule:  Information about the updated approval rule.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>originApprovalRuleTemplate</i> The approval rule template used to create the rule.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>originApprovalRuleTemplate</b>: The approval rule template used to create the rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastModifiedUser</i> The Amazon Resource Name (ARN) of the user who made the most recent changes to the approval rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationDate</i> The date the approval rule was created, in timestamp format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastModifiedDate</i> The date the approval rule was most recently changed, in timestamp format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ruleContentSha256</i> The SHA-256 hash signature for the content of the approval rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>approvalRuleContent</i> The content of the approval rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>approvalRuleName</i> The name of the approval rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>approvalRuleId</i> The system-generated ID of the approval rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>approvalRuleTemplateName</i> The name of the template that created the approval rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>approvalRuleTemplateId</i> The ID of the template that created the approval rule.<br/>        """
        pass

    def update_pull_request_approval_state(self, approvalState: str, revisionId: str, pullRequestId: str):
        r"""Updates the state of a user's approval on a pull request. The user is derived from the signed-in account when the request is made.

        :param self:
        :param approvalState:  The approval state to associate with the user on the pull request.<br/>revisionId:  The system-generated ID of the revision.<br/>pullRequestId:  The system-generated ID of the pull request.<br/>
        :return:         """
        pass

    def update_pull_request_description(self, description: str, pullRequestId: str) -> UpdatePullRequestDescriptionOutput:
        r"""Replaces the contents of the description of a pull request.

        :param self:
        :param description:  The updated content of the description for the pull request. This content replaces the existing description.<br/>pullRequestId:  The system-generated ID of the pull request. To get this ID, use <a>ListPullRequests</a>.<br/>
        :return: pullRequest:  Information about the updated pull request.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>approvalRules</i> The approval rules applied to the pull request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>revisionId</i> The system-generated revision ID for the pull request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>clientRequestToken</i> A unique, client-generated idempotency token that, when provided in a request, ensures the request cannot be repeated with a changed parameter. If a request is received with the same parameters and a token is included, the request returns information about the initial request that used that token.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>pullRequestTargets</i> The targets of the pull request, including the source branch and destination branch for the pull request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>authorArn</i> The Amazon Resource Name (ARN) of the user who created the pull request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>pullRequestStatus</i> The status of the pull request. Pull request status can only change from <code>OPEN</code> to <code>CLOSED</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationDate</i> The date and time the pull request was originally created, in timestamp format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastActivityDate</i> The day and time of the last user or system activity on the pull request, in timestamp format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> The user-defined description of the pull request. This description can be used to clarify what should be reviewed and other details of the request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>title</i> The user-defined title of the pull request. This title is displayed in the list of pull requests to other repository users.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>pullRequestId</i> The system-generated ID of the pull request. <br/>        """
        pass

    def update_pull_request_status(self, pullRequestStatus: str, pullRequestId: str) -> UpdatePullRequestStatusOutput:
        r"""Updates the status of a pull request. 

        :param self:
        :param pullRequestStatus:  The status of the pull request. The only valid operations are to update the status from <code>OPEN</code> to <code>OPEN</code>, <code>OPEN</code> to <code>CLOSED</code> or from <code>CLOSED</code> to <code>CLOSED</code>.<br/>pullRequestId:  The system-generated ID of the pull request. To get this ID, use <a>ListPullRequests</a>.<br/>
        :return: pullRequest:  Information about the pull request.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>approvalRules</i> The approval rules applied to the pull request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>revisionId</i> The system-generated revision ID for the pull request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>clientRequestToken</i> A unique, client-generated idempotency token that, when provided in a request, ensures the request cannot be repeated with a changed parameter. If a request is received with the same parameters and a token is included, the request returns information about the initial request that used that token.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>pullRequestTargets</i> The targets of the pull request, including the source branch and destination branch for the pull request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>authorArn</i> The Amazon Resource Name (ARN) of the user who created the pull request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>pullRequestStatus</i> The status of the pull request. Pull request status can only change from <code>OPEN</code> to <code>CLOSED</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationDate</i> The date and time the pull request was originally created, in timestamp format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastActivityDate</i> The day and time of the last user or system activity on the pull request, in timestamp format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> The user-defined description of the pull request. This description can be used to clarify what should be reviewed and other details of the request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>title</i> The user-defined title of the pull request. This title is displayed in the list of pull requests to other repository users.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>pullRequestId</i> The system-generated ID of the pull request. <br/>        """
        pass

    def update_pull_request_title(self, title: str, pullRequestId: str) -> UpdatePullRequestTitleOutput:
        r"""Replaces the title of a pull request.

        :param self:
        :param title:  The updated title of the pull request. This replaces the existing title.<br/>pullRequestId:  The system-generated ID of the pull request. To get this ID, use <a>ListPullRequests</a>.<br/>
        :return: pullRequest:  Information about the updated pull request.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>approvalRules</i> The approval rules applied to the pull request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>revisionId</i> The system-generated revision ID for the pull request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>clientRequestToken</i> A unique, client-generated idempotency token that, when provided in a request, ensures the request cannot be repeated with a changed parameter. If a request is received with the same parameters and a token is included, the request returns information about the initial request that used that token.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>pullRequestTargets</i> The targets of the pull request, including the source branch and destination branch for the pull request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>authorArn</i> The Amazon Resource Name (ARN) of the user who created the pull request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>pullRequestStatus</i> The status of the pull request. Pull request status can only change from <code>OPEN</code> to <code>CLOSED</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationDate</i> The date and time the pull request was originally created, in timestamp format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastActivityDate</i> The day and time of the last user or system activity on the pull request, in timestamp format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> The user-defined description of the pull request. This description can be used to clarify what should be reviewed and other details of the request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>title</i> The user-defined title of the pull request. This title is displayed in the list of pull requests to other repository users.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>pullRequestId</i> The system-generated ID of the pull request. <br/>        """
        pass

    def update_repository_description(self, repositoryName: str, repositoryDescription: str=None):
        r"""Sets or changes the comment or description for a repository. <note> The description field for a repository accepts all HTML characters and all valid Unicode characters. Applications that do not HTML-encode the description and display it in a webpage can expose users to potentially malicious code. Make sure that you HTML-encode the description field in any application that uses this API to display the repository description on a webpage. </note>

        :param self:
        :param repositoryDescription:  The new comment or description for the specified repository. Repository descriptions are limited to 1,000 characters.<br/>repositoryName:  The name of the repository to set or change the comment or description for.<br/>
        :return:         """
        pass

    def update_repository_name(self, newName: str, oldName: str):
        r"""Renames a repository. The repository name must be unique across the calling AWS account. Repository names are limited to 100 alphanumeric, dash, and underscore characters, and cannot include certain characters. The suffix .git is prohibited. For more information about the limits on repository names, see <a href="https://docs.aws.amazon.com/codecommit/latest/userguide/limits.html">Limits</a> in the AWS CodeCommit User Guide.

        :param self:
        :param newName:  The new name for the repository.<br/>oldName:  The current name of the repository.<br/>
        :return:         """
        pass





class CodeDeploy(BaseClient):
    r"""<fullname>AWS CodeDeploy</fullname> AWS CodeDeploy is a deployment service that automates application deployments to Amazon EC2 instances, on-premises instances running in your own facility, serverless AWS Lambda functions, or applications in an Amazon ECS service. You can deploy a nearly unlimited variety of application content, such as an updated Lambda function, updated applications in an Amazon ECS service, code, web and configuration files, executables, packages, scripts, multimedia files, and so on. AWS CodeDeploy can deploy application content stored in Amazon S3 buckets, GitHub repositories, or Bitbucket repositories. You do not need to make changes to your existing code before you can use AWS CodeDeploy. AWS CodeDeploy makes it easier for you to rapidly release new features, helps you avoid downtime during application deployment, and handles the complexity of updating your applications, without many of the risks associated with error-prone manual deployments.  <b>AWS CodeDeploy Components</b>  Use the information in this guide to help you work with the following AWS CodeDeploy components: <ul> <li>  <b>Application</b>: A name that uniquely identifies the application you want to deploy. AWS CodeDeploy uses this name, which functions as a container, to ensure the correct combination of revision, deployment configuration, and deployment group are referenced during a deployment. </li> <li>  <b>Deployment group</b>: A set of individual instances, CodeDeploy Lambda deployment configuration settings, or an Amazon ECS service and network details. A Lambda deployment group specifies how to route traffic to a new version of a Lambda function. An Amazon ECS deployment group specifies the service created in Amazon ECS to deploy, a load balancer, and a listener to reroute production traffic to an updated containerized application. An EC2/On-premises deployment group contains individually tagged instances, Amazon EC2 instances in Amazon EC2 Auto Scaling groups, or both. All deployment groups can specify optional trigger, alarm, and rollback settings. </li> <li>  <b>Deployment configuration</b>: A set of deployment rules and deployment success and failure conditions used by AWS CodeDeploy during a deployment. </li> <li>  <b>Deployment</b>: The process and the components used when updating a Lambda function, a containerized application in an Amazon ECS service, or of installing content on one or more instances.  </li> <li>  <b>Application revisions</b>: For an AWS Lambda deployment, this is an AppSpec file that specifies the Lambda function to be updated and one or more functions to validate deployment lifecycle events. For an Amazon ECS deployment, this is an AppSpec file that specifies the Amazon ECS task definition, container, and port where production traffic is rerouted. For an EC2/On-premises deployment, this is an archive file that contains source content—source code, webpages, executable files, and deployment scripts—along with an AppSpec file. Revisions are stored in Amazon S3 buckets or GitHub repositories. For Amazon S3, a revision is uniquely identified by its Amazon S3 object key and its ETag, version, or both. For GitHub, a revision is uniquely identified by its commit ID. </li> </ul> This guide also contains information to help you get details about the instances in your deployments, to make on-premises instances available for AWS CodeDeploy deployments, to get details about a Lambda function deployment, and to get details about Amazon ECS service deployments.  <b>AWS CodeDeploy Information Resources</b>  <ul> <li>  <a href="https://docs.aws.amazon.com/codedeploy/latest/userguide">AWS CodeDeploy User Guide</a>  </li> <li>  <a href="https://docs.aws.amazon.com/codedeploy/latest/APIReference/">AWS CodeDeploy API Reference Guide</a>  </li> <li>  <a href="https://docs.aws.amazon.com/cli/latest/reference/deploy/index.html">AWS CLI Reference for AWS CodeDeploy</a>  </li> <li>  <a href="https://forums.aws.amazon.com/forum.jspa?forumID=179">AWS CodeDeploy Developer Forum</a>  </li> </ul>"""

    class DeploymentSuccessfulWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `get_deployment` for valid parameters"""
            pass


    class ListApplicationRevisionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_application_revisions` for valid parameters"""
            pass
    class ListApplicationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_applications` for valid parameters"""
            pass
    class ListDeploymentConfigsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_deployment_configs` for valid parameters"""
            pass
    class ListDeploymentGroupsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_deployment_groups` for valid parameters"""
            pass
    class ListDeploymentInstancesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_deployment_instances` for valid parameters"""
            pass
    class ListDeploymentsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_deployments` for valid parameters"""
            pass
    class ListDeploymentTargetsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_deployment_targets` for valid parameters"""
            pass
    class ListGitHubAccountTokenNamesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_git_hub_account_token_names` for valid parameters"""
            pass
    class ListOnPremisesInstancesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_on_premises_instances` for valid parameters"""
            pass


    class AddTagsToOnPremisesInstancesInput(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class InstanceName(object):
        pass
    
    class BatchGetApplicationRevisionsInput(Mapping):
        pass
    
    class BatchGetApplicationRevisionsOutput(Mapping):
        pass
    
    class RevisionLocation(Mapping):
        pass
    
    class BatchGetApplicationsInput(Mapping):
        pass
    
    class BatchGetApplicationsOutput(Mapping):
        pass
    
    class ApplicationName(object):
        pass
    
    class BatchGetDeploymentGroupsInput(Mapping):
        pass
    
    class BatchGetDeploymentGroupsOutput(Mapping):
        pass
    
    class DeploymentGroupName(object):
        pass
    
    class BatchGetDeploymentInstancesInput(Mapping):
        pass
    
    class BatchGetDeploymentInstancesOutput(Mapping):
        pass
    
    class InstanceId(object):
        pass
    
    class BatchGetDeploymentTargetsInput(Mapping):
        pass
    
    class BatchGetDeploymentTargetsOutput(Mapping):
        pass
    
    class TargetId(object):
        pass
    
    class BatchGetDeploymentsInput(Mapping):
        pass
    
    class BatchGetDeploymentsOutput(Mapping):
        pass
    
    class DeploymentId(object):
        pass
    
    class BatchGetOnPremisesInstancesInput(Mapping):
        pass
    
    class BatchGetOnPremisesInstancesOutput(Mapping):
        pass
    
    class ContinueDeploymentInput(Mapping):
        pass
    
    class CreateApplicationInput(Mapping):
        pass
    
    class CreateApplicationOutput(Mapping):
        pass
    
    class CreateDeploymentInput(Mapping):
        pass
    
    class CreateDeploymentOutput(Mapping):
        pass
    
    class Boolean(object):
        pass
    
    class TargetInstances(Mapping):
        pass
    
    class AutoRollbackConfiguration(Mapping):
        pass
    
    class CreateDeploymentConfigInput(Mapping):
        pass
    
    class CreateDeploymentConfigOutput(Mapping):
        pass
    
    class MinimumHealthyHosts(Mapping):
        pass
    
    class TrafficRoutingConfig(Mapping):
        pass
    
    class CreateDeploymentGroupInput(Mapping):
        pass
    
    class CreateDeploymentGroupOutput(Mapping):
        pass
    
    class EC2TagFilter(Mapping):
        pass
    
    class TagFilter(Mapping):
        pass
    
    class AutoScalingGroupName(object):
        pass
    
    class TriggerConfig(Mapping):
        pass
    
    class AlarmConfiguration(Mapping):
        pass
    
    class DeploymentStyle(Mapping):
        pass
    
    class BlueGreenDeploymentConfiguration(Mapping):
        pass
    
    class LoadBalancerInfo(Mapping):
        pass
    
    class EC2TagSet(Mapping):
        pass
    
    class ECSService(Mapping):
        pass
    
    class OnPremisesTagSet(Mapping):
        pass
    
    class DeleteApplicationInput(Mapping):
        pass
    
    class DeleteDeploymentConfigInput(Mapping):
        pass
    
    class DeleteDeploymentGroupInput(Mapping):
        pass
    
    class DeleteDeploymentGroupOutput(Mapping):
        pass
    
    class DeleteGitHubAccountTokenInput(Mapping):
        pass
    
    class DeleteGitHubAccountTokenOutput(Mapping):
        pass
    
    class DeleteResourcesByExternalIdInput(Mapping):
        pass
    
    class DeleteResourcesByExternalIdOutput(Mapping):
        pass
    
    class DeregisterOnPremisesInstanceInput(Mapping):
        pass
    
    class GetApplicationInput(Mapping):
        pass
    
    class GetApplicationOutput(Mapping):
        pass
    
    class GetApplicationRevisionInput(Mapping):
        pass
    
    class GetApplicationRevisionOutput(Mapping):
        pass
    
    class GetDeploymentInput(Mapping):
        pass
    
    class GetDeploymentOutput(Mapping):
        pass
    
    class GetDeploymentConfigInput(Mapping):
        pass
    
    class GetDeploymentConfigOutput(Mapping):
        pass
    
    class GetDeploymentGroupInput(Mapping):
        pass
    
    class GetDeploymentGroupOutput(Mapping):
        pass
    
    class GetDeploymentInstanceInput(Mapping):
        pass
    
    class GetDeploymentInstanceOutput(Mapping):
        pass
    
    class GetDeploymentTargetInput(Mapping):
        pass
    
    class GetDeploymentTargetOutput(Mapping):
        pass
    
    class GetOnPremisesInstanceInput(Mapping):
        pass
    
    class GetOnPremisesInstanceOutput(Mapping):
        pass
    
    class ListApplicationRevisionsInput(Mapping):
        pass
    
    class ListApplicationRevisionsOutput(Mapping):
        pass
    
    class ListApplicationsInput(Mapping):
        pass
    
    class ListApplicationsOutput(Mapping):
        pass
    
    class ListDeploymentConfigsInput(Mapping):
        pass
    
    class ListDeploymentConfigsOutput(Mapping):
        pass
    
    class ListDeploymentGroupsInput(Mapping):
        pass
    
    class ListDeploymentGroupsOutput(Mapping):
        pass
    
    class ListDeploymentInstancesInput(Mapping):
        pass
    
    class ListDeploymentInstancesOutput(Mapping):
        pass
    
    class InstanceStatus(object):
        pass
    
    class InstanceType(object):
        pass
    
    class ListDeploymentTargetsInput(Mapping):
        pass
    
    class ListDeploymentTargetsOutput(Mapping):
        pass
    
    class TargetFilters(object):
        pass
    
    class ListDeploymentsInput(Mapping):
        pass
    
    class ListDeploymentsOutput(Mapping):
        pass
    
    class DeploymentStatus(object):
        pass
    
    class TimeRange(Mapping):
        pass
    
    class ListGitHubAccountTokenNamesInput(Mapping):
        pass
    
    class ListGitHubAccountTokenNamesOutput(Mapping):
        pass
    
    class ListOnPremisesInstancesInput(Mapping):
        pass
    
    class ListOnPremisesInstancesOutput(Mapping):
        pass
    
    class ListTagsForResourceInput(Mapping):
        pass
    
    class ListTagsForResourceOutput(Mapping):
        pass
    
    class PutLifecycleEventHookExecutionStatusInput(Mapping):
        pass
    
    class PutLifecycleEventHookExecutionStatusOutput(Mapping):
        pass
    
    class RegisterApplicationRevisionInput(Mapping):
        pass
    
    class RegisterOnPremisesInstanceInput(Mapping):
        pass
    
    class RemoveTagsFromOnPremisesInstancesInput(Mapping):
        pass
    
    class SkipWaitTimeForInstanceTerminationInput(Mapping):
        pass
    
    class StopDeploymentInput(Mapping):
        pass
    
    class StopDeploymentOutput(Mapping):
        pass
    
    class NullableBoolean(object):
        pass
    
    class TagResourceInput(Mapping):
        pass
    
    class TagResourceOutput(Mapping):
        pass
    
    class UntagResourceInput(Mapping):
        pass
    
    class UntagResourceOutput(Mapping):
        pass
    
    class Key(object):
        pass
    
    class UpdateApplicationInput(Mapping):
        pass
    
    class UpdateDeploymentGroupInput(Mapping):
        pass
    
    class UpdateDeploymentGroupOutput(Mapping):
        pass
    
    def add_tags_to_on_premises_instances(self, instanceNames: List[InstanceName], tags: List[Tag]):
        r"""Adds tags to on-premises instances.

        :param self:
        :param instanceNames:  The names of the on-premises instances to which to add tags.<br/>tags:  The tag key-value pairs to add to the on-premises instances. Keys and values are both required. Keys cannot be null or empty strings. Value-only tags are not allowed.<br/>
        :return:         """
        pass

    def batch_get_application_revisions(self, revisions: List[RevisionLocation], applicationName: str) -> BatchGetApplicationRevisionsOutput:
        r"""Gets information about one or more application revisions. The maximum number of application revisions that can be returned is 25.

        :param self:
        :param revisions:  An array of <code>RevisionLocation</code> objects that specify information to get about the application revisions, including type and location. The maximum number of <code>RevisionLocation</code> objects you can specify is 25.<br/>applicationName:  The name of an AWS CodeDeploy application about which to get revision information.<br/>
        :return: revisions:  Additional information about the revisions, including the type and location.<br/>errorMessage:  Information about errors that might have occurred during the API call.<br/>applicationName:  The name of the application that corresponds to the revisions.<br/>        """
        pass

    def batch_get_applications(self, applicationNames: List[ApplicationName]) -> BatchGetApplicationsOutput:
        r"""Gets information about one or more applications. The maximum number of applications that can be returned is 100.

        :param self:
        :param applicationNames:  A list of application names separated by spaces. The maximum number of application names you can specify is 100.<br/>
        :return: applicationsInfo:  Information about the applications.<br/>        """
        pass

    def batch_get_deployment_groups(self, deploymentGroupNames: List[DeploymentGroupName], applicationName: str) -> BatchGetDeploymentGroupsOutput:
        r"""Gets information about one or more deployment groups.

        :param self:
        :param deploymentGroupNames:  The names of the deployment groups.<br/>applicationName:  The name of an AWS CodeDeploy application associated with the applicable IAM user or AWS account.<br/>
        :return: errorMessage:  Information about errors that might have occurred during the API call.<br/>deploymentGroupsInfo:  Information about the deployment groups.<br/>        """
        pass

    def batch_get_deployment_instances(self, instanceIds: List[InstanceId], deploymentId: str) -> BatchGetDeploymentInstancesOutput:
        r"""<note>  This method works, but is deprecated. Use <code>BatchGetDeploymentTargets</code> instead.  </note>  Returns an array of one or more instances associated with a deployment. This method works with EC2/On-premises and AWS Lambda compute platforms. The newer <code>BatchGetDeploymentTargets</code> works with all compute platforms. The maximum number of instances that can be returned is 25.

        :param self:
        :param instanceIds:  The unique IDs of instances used in the deployment. The maximum number of instance IDs you can specify is 25.<br/>deploymentId:   The unique ID of a deployment. <br/>
        :return: errorMessage:  Information about errors that might have occurred during the API call.<br/>instancesSummary:  Information about the instance.<br/>        """
        pass

    def batch_get_deployment_targets(self, deploymentId: str=None, targetIds: List[TargetId]=None) -> BatchGetDeploymentTargetsOutput:
        r""" Returns an array of one or more targets associated with a deployment. This method works with all compute types and should be used instead of the deprecated <code>BatchGetDeploymentInstances</code>. The maximum number of targets that can be returned is 25.  The type of targets returned depends on the deployment's compute platform or deployment method:  <ul> <li>  <b>EC2/On-premises</b>: Information about EC2 instance targets.  </li> <li>  <b>AWS Lambda</b>: Information about Lambda functions targets.  </li> <li>  <b>Amazon ECS</b>: Information about Amazon ECS service targets.  </li> <li>  <b>CloudFormation</b>: Information about targets of blue/green deployments initiated by a CloudFormation stack update. </li> </ul>

        :param self:
        :param targetIds:   The unique IDs of the deployment targets. The compute platform of the deployment determines the type of the targets and their formats. The maximum number of deployment target IDs you can specify is 25. <ul> <li>  For deployments that use the EC2/On-premises compute platform, the target IDs are EC2 or on-premises instances IDs, and their target type is <code>instanceTarget</code>.  </li> <li>  For deployments that use the AWS Lambda compute platform, the target IDs are the names of Lambda functions, and their target type is <code>instanceTarget</code>.  </li> <li>  For deployments that use the Amazon ECS compute platform, the target IDs are pairs of Amazon ECS clusters and services specified using the format <code>&lt;clustername&gt;:&lt;servicename&gt;</code>. Their target type is <code>ecsTarget</code>.  </li> <li>  For deployments that are deployed with AWS CloudFormation, the target IDs are CloudFormation stack IDs. Their target type is <code>cloudFormationTarget</code>.  </li> </ul><br/>deploymentId:   The unique ID of a deployment. <br/>
        :return: deploymentTargets:   A list of target objects for a deployment. Each target object contains details about the target, such as its status and lifecycle events. The type of the target objects depends on the deployment' compute platform.  <ul> <li>  <b>EC2/On-premises</b>: Each target object is an EC2 or on-premises instance.  </li> <li>  <b>AWS Lambda</b>: The target object is a specific version of an AWS Lambda function.  </li> <li>  <b>Amazon ECS</b>: The target object is an Amazon ECS service.  </li> <li>  <b>CloudFormation</b>: The target object is an AWS CloudFormation blue/green deployment.  </li> </ul><br/>        """
        pass

    def batch_get_deployments(self, deploymentIds: List[DeploymentId]) -> BatchGetDeploymentsOutput:
        r"""Gets information about one or more deployments. The maximum number of deployments that can be returned is 25.

        :param self:
        :param deploymentIds:   A list of deployment IDs, separated by spaces. The maximum number of deployment IDs you can specify is 25.<br/>
        :return: deploymentsInfo:   Information about the deployments. <br/>        """
        pass

    def batch_get_on_premises_instances(self, instanceNames: List[InstanceName]) -> BatchGetOnPremisesInstancesOutput:
        r"""Gets information about one or more on-premises instances. The maximum number of on-premises instances that can be returned is 25.

        :param self:
        :param instanceNames:  The names of the on-premises instances about which to get information. The maximum number of instance names you can specify is 25.<br/>
        :return: instanceInfos:  Information about the on-premises instances.<br/>        """
        pass

    def continue_deployment(self, deploymentId: str=None, deploymentWaitType: str=None):
        r"""For a blue/green deployment, starts the process of rerouting traffic from instances in the original environment to instances in the replacement environment without waiting for a specified wait time to elapse. (Traffic rerouting, which is achieved by registering instances in the replacement environment with the load balancer, can start as soon as all instances have a status of Ready.) 

        :param self:
        :param deploymentWaitType:   The status of the deployment's waiting period. <code>READY_WAIT</code> indicates that the deployment is ready to start shifting traffic. <code>TERMINATION_WAIT</code> indicates that the traffic is shifted, but the original target is not terminated. <br/>deploymentId:   The unique ID of a blue/green deployment for which you want to start rerouting traffic to the replacement environment. <br/>
        :return:         """
        pass

    def create_application(self, applicationName: str, computePlatform: str=None, tags: List[Tag]=None) -> CreateApplicationOutput:
        r"""Creates an application.

        :param self:
        :param tags:   The metadata that you apply to CodeDeploy applications to help you organize and categorize them. Each tag consists of a key and an optional value, both of which you define. <br/>computePlatform:   The destination platform type for the deployment (<code>Lambda</code>, <code>Server</code>, or <code>ECS</code>).<br/>applicationName:  The name of the application. This name must be unique with the applicable IAM user or AWS account.<br/>
        :return: applicationId:  A unique application ID.<br/>        """
        pass

    def create_deployment(self, applicationName: str, deploymentGroupName: str=None, revision: RevisionLocation=None, deploymentConfigName: str=None, description: str=None, ignoreApplicationStopFailures: Boolean=None, targetInstances: TargetInstances=None, autoRollbackConfiguration: AutoRollbackConfiguration=None, updateOutdatedInstancesOnly: Boolean=None, fileExistsBehavior: str=None) -> CreateDeploymentOutput:
        r"""Deploys an application revision through the specified deployment group.

        :param self:
        :param fileExistsBehavior:  Information about how AWS CodeDeploy handles files that already exist in a deployment target location but weren't part of the previous successful deployment. The <code>fileExistsBehavior</code> parameter takes any of the following values: <ul> <li> DISALLOW: The deployment fails. This is also the default behavior if no option is specified. </li> <li> OVERWRITE: The version of the file from the application revision currently being deployed replaces the version already on the instance. </li> <li> RETAIN: The version of the file already on the instance is kept and used as part of the new deployment. </li> </ul><br/>updateOutdatedInstancesOnly:   Indicates whether to deploy to all instances or only to instances that are not running the latest application revision. <br/>autoRollbackConfiguration:  Configuration information for an automatic rollback that is added when a deployment is created.:<br/>targetInstances:   Information about the instances that belong to the replacement environment in a blue/green deployment. :<br/>ignoreApplicationStopFailures:   If true, then if an <code>ApplicationStop</code>, <code>BeforeBlockTraffic</code>, or <code>AfterBlockTraffic</code> deployment lifecycle event to an instance fails, then the deployment continues to the next deployment lifecycle event. For example, if <code>ApplicationStop</code> fails, the deployment continues with <code>DownloadBundle</code>. If <code>BeforeBlockTraffic</code> fails, the deployment continues with <code>BlockTraffic</code>. If <code>AfterBlockTraffic</code> fails, the deployment continues with <code>ApplicationStop</code>.   If false or not specified, then if a lifecycle event fails during a deployment to an instance, that deployment fails. If deployment to that instance is part of an overall deployment and the number of healthy hosts is not less than the minimum number of healthy hosts, then a deployment to the next instance is attempted.   During a deployment, the AWS CodeDeploy agent runs the scripts specified for <code>ApplicationStop</code>, <code>BeforeBlockTraffic</code>, and <code>AfterBlockTraffic</code> in the AppSpec file from the previous successful deployment. (All other scripts are run from the AppSpec file in the current deployment.) If one of these scripts contains an error and does not run successfully, the deployment can fail.   If the cause of the failure is a script from the last successful deployment that will never run successfully, create a new deployment and use <code>ignoreApplicationStopFailures</code> to specify that the <code>ApplicationStop</code>, <code>BeforeBlockTraffic</code>, and <code>AfterBlockTraffic</code> failures should be ignored. <br/>description:  A comment about the deployment.<br/>deploymentConfigName:  The name of a deployment configuration associated with the IAM user or AWS account. If not specified, the value configured in the deployment group is used as the default. If the deployment group does not have a deployment configuration associated with it, <code>CodeDeployDefault</code>.<code>OneAtATime</code> is used by default.<br/>revision:   The type and location of the revision to deploy. :<br/>deploymentGroupName:  The name of the deployment group.<br/>applicationName:  The name of an AWS CodeDeploy application associated with the IAM user or AWS account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>appSpecContent</i>  The content of an AppSpec file for an AWS Lambda or Amazon ECS deployment. The content is formatted as JSON or YAML and stored as a RawString. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>appSpecContent</b>:  The content of an AppSpec file for an AWS Lambda or Amazon ECS deployment. The content is formatted as JSON or YAML and stored as a RawString. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>string</i> Information about the location of an AWS Lambda deployment revision stored as a RawString.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>string</b>: Information about the location of an AWS Lambda deployment revision stored as a RawString.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>gitHubLocation</i> Information about the location of application artifacts stored in GitHub.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>gitHubLocation</b>: Information about the location of application artifacts stored in GitHub.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>s3Location</i> Information about the location of a revision stored in Amazon S3. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>s3Location</b>: Information about the location of a revision stored in Amazon S3. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>revisionType</i> The type of application revision: <ul> <li> S3: An application revision stored in Amazon S3. </li> <li> GitHub: An application revision stored in GitHub (EC2/On-premises deployments only). </li> <li> String: A YAML-formatted or JSON-formatted string (AWS Lambda deployments only). </li> <li> AppSpecContent: An <code>AppSpecContent</code> object that contains the contents of an AppSpec file for an AWS Lambda or Amazon ECS deployment. The content is formatted as JSON or YAML stored as a RawString. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>eTag</i> The ETag of the Amazon S3 object that represents the bundled artifacts for the application revision. If the ETag is not specified as an input parameter, ETag validation of the object is skipped.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> A specific version of the Amazon S3 object that represents the bundled artifacts for the application revision. If the version is not specified, the system uses the most recent version by default.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>bundleType</i> The file type of the application revision. Must be one of the following: <ul> <li>  <code>tar</code>: A tar archive file. </li> <li>  <code>tgz</code>: A compressed tar archive file. </li> <li>  <code>zip</code>: A zip archive file. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>key</i> The name of the Amazon S3 object that represents the bundled artifacts for the application revision.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>bucket</i> The name of the Amazon S3 bucket where the application revision is stored.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>commitId</i> The SHA1 commit ID of the GitHub commit that represents the bundled artifacts for the application revision.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>repository</i> The GitHub account and repository pair that stores a reference to the commit that represents the bundled artifacts for the application revision.  Specified as account/repository.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>sha256</i> The SHA256 hash value of the revision content.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>content</i> The YAML-formatted or JSON-formatted revision string. It includes information about which Lambda function to update and optional Lambda functions that validate deployment lifecycle events.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>sha256</i>  The SHA256 hash value of the revision content. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>content</i>  The YAML-formatted or JSON-formatted revision string.   For an AWS Lambda deployment, the content includes a Lambda function name, the alias for its original version, and the alias for its replacement version. The deployment shifts traffic from the original version of the Lambda function to the replacement version.   For an Amazon ECS deployment, the content includes the task name, information about the load balancer that serves traffic to the container, and more.   For both types of deployments, the content can specify Lambda functions that run at specified hooks, such as <code>BeforeInstall</code>, during a deployment. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ec2TagSet</i> Information about the groups of EC2 instance tags that an instance must be identified by in order for it to be included in the replacement environment for a blue/green deployment. Cannot be used in the same call as <code>tagFilters</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ec2TagSet</b>: Information about the groups of EC2 instance tags that an instance must be identified by in order for it to be included in the replacement environment for a blue/green deployment. Cannot be used in the same call as <code>tagFilters</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>autoScalingGroups</i> The names of one or more Auto Scaling groups to identify a replacement environment for a blue/green deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tagFilters</i> The tag filter key, type, and value used to identify Amazon EC2 instances in a replacement environment for a blue/green deployment. Cannot be used in the same call as <code>ec2TagSet</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ec2TagSetList</i> A list that contains other lists of EC2 instance tag groups. For an instance to be included in the deployment group, it must be identified by all of the tag groups in the list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>events</i> The event type or types that trigger a rollback.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>enabled</i> Indicates whether a defined automatic rollback configuration is currently enabled.<br/>
        :return: deploymentId:   The unique ID of a deployment. <br/>        """
        pass

    def create_deployment_config(self, deploymentConfigName: str, minimumHealthyHosts: MinimumHealthyHosts=None, trafficRoutingConfig: TrafficRoutingConfig=None, computePlatform: str=None) -> CreateDeploymentConfigOutput:
        r""" Creates a deployment configuration. 

        :param self:
        :param computePlatform:  The destination platform type for the deployment (<code>Lambda</code>, <code>Server</code>, or <code>ECS</code>).<br/>trafficRoutingConfig:  The configuration that specifies how the deployment traffic is routed.:<br/>minimumHealthyHosts:  The minimum number of healthy instances that should be available at any time during the deployment. There are two parameters expected in the input: type and value. The type parameter takes either of the following values: <ul> <li> HOST_COUNT: The value parameter represents the minimum number of healthy instances as an absolute value. </li> <li> FLEET_PERCENT: The value parameter represents the minimum number of healthy instances as a percentage of the total number of instances in the deployment. If you specify FLEET_PERCENT, at the start of the deployment, AWS CodeDeploy converts the percentage to the equivalent number of instances and rounds up fractional instances. </li> </ul> The value parameter takes an integer. For example, to set a minimum of 95% healthy instance, specify a type of FLEET_PERCENT and a value of 95.:<br/>deploymentConfigName:  The name of the deployment configuration to create.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>value</i> The minimum healthy instance value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The minimum healthy instance type: <ul> <li>  <code>HOST_COUNT</code>: The minimum number of healthy instances as an absolute value. </li> <li>  <code>FLEET_PERCENT</code>: The minimum number of healthy instances as a percentage of the total number of instances in the deployment. </li> </ul> In an example of nine instances, if a HOST_COUNT of six is specified, deploy to up to three instances at a time. The deployment is successful if six or more instances are deployed to successfully. Otherwise, the deployment fails. If a FLEET_PERCENT of 40 is specified, deploy to up to five instances at a time. The deployment is successful if four or more instances are deployed to successfully. Otherwise, the deployment fails. <note> In a call to the <code>GetDeploymentConfig</code>, CodeDeployDefault.OneAtATime returns a minimum healthy instance type of MOST_CONCURRENCY and a value of 1. This means a deployment to only one instance at a time. (You cannot set the type to MOST_CONCURRENCY, only to HOST_COUNT or FLEET_PERCENT.) In addition, with CodeDeployDefault.OneAtATime, AWS CodeDeploy attempts to ensure that all instances but one are kept in a healthy state during the deployment. Although this allows one instance at a time to be taken offline for a new deployment, it also means that if the deployment to the last instance fails, the overall deployment is still successful. </note> For more information, see <a href="https://docs.aws.amazon.com/codedeploy/latest/userguide/instances-health.html">AWS CodeDeploy Instance Health</a> in the <i>AWS CodeDeploy User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>timeBasedLinear</i> A configuration that shifts traffic from one version of a Lambda function or ECS task set to another in equal increments, with an equal number of minutes between each increment. The original and target Lambda function versions or ECS task sets are specified in the deployment's AppSpec file.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>timeBasedLinear</b>: A configuration that shifts traffic from one version of a Lambda function or ECS task set to another in equal increments, with an equal number of minutes between each increment. The original and target Lambda function versions or ECS task sets are specified in the deployment's AppSpec file.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>timeBasedCanary</i> A configuration that shifts traffic from one version of a Lambda function or ECS task set to another in two increments. The original and target Lambda function versions or ECS task sets are specified in the deployment's AppSpec file.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>timeBasedCanary</b>: A configuration that shifts traffic from one version of a Lambda function or ECS task set to another in two increments. The original and target Lambda function versions or ECS task sets are specified in the deployment's AppSpec file.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of traffic shifting (<code>TimeBasedCanary</code> or <code>TimeBasedLinear</code>) used by a deployment configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>canaryInterval</i> The number of minutes between the first and second traffic shifts of a <code>TimeBasedCanary</code> deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>canaryPercentage</i> The percentage of traffic to shift in the first increment of a <code>TimeBasedCanary</code> deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>linearInterval</i> The number of minutes between each incremental traffic shift of a <code>TimeBasedLinear</code> deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>linearPercentage</i> The percentage of traffic that is shifted at the start of each increment of a <code>TimeBasedLinear</code> deployment.<br/>
        :return: deploymentConfigId:  A unique deployment configuration ID.<br/>        """
        pass

    def create_deployment_group(self, serviceRoleArn: str, deploymentGroupName: str, applicationName: str, deploymentConfigName: str=None, ec2TagFilters: List[EC2TagFilter]=None, onPremisesInstanceTagFilters: List[TagFilter]=None, autoScalingGroups: List[AutoScalingGroupName]=None, triggerConfigurations: List[TriggerConfig]=None, alarmConfiguration: AlarmConfiguration=None, autoRollbackConfiguration: AutoRollbackConfiguration=None, outdatedInstancesStrategy: str=None, deploymentStyle: DeploymentStyle=None, blueGreenDeploymentConfiguration: BlueGreenDeploymentConfiguration=None, loadBalancerInfo: LoadBalancerInfo=None, ec2TagSet: EC2TagSet=None, ecsServices: List[ECSService]=None, onPremisesTagSet: OnPremisesTagSet=None, tags: List[Tag]=None) -> CreateDeploymentGroupOutput:
        r"""Creates a deployment group to which application revisions are deployed.

        :param self:
        :param tags:   The metadata that you apply to CodeDeploy deployment groups to help you organize and categorize them. Each tag consists of a key and an optional value, both of which you define. <br/>onPremisesTagSet:  Information about groups of tags applied to on-premises instances. The deployment group includes only on-premises instances identified by all of the tag groups. Cannot be used in the same call as <code>onPremisesInstanceTagFilters</code>.:<br/>ecsServices:   The target Amazon ECS services in the deployment group. This applies only to deployment groups that use the Amazon ECS compute platform. A target Amazon ECS service is specified as an Amazon ECS cluster and service name pair using the format <code>&lt;clustername&gt;:&lt;servicename&gt;</code>. <br/>ec2TagSet:  Information about groups of tags applied to EC2 instances. The deployment group includes only EC2 instances identified by all the tag groups. Cannot be used in the same call as <code>ec2TagFilters</code>.:<br/>loadBalancerInfo:  Information about the load balancer used in a deployment.:<br/>blueGreenDeploymentConfiguration:  Information about blue/green deployment options for a deployment group.:<br/>deploymentStyle:  Information about the type of deployment, in-place or blue/green, that you want to run and whether to route deployment traffic behind a load balancer.:<br/>outdatedInstancesStrategy:  Indicates what happens when new EC2 instances are launched mid-deployment and do not receive the deployed application revision. If this option is set to <code>UPDATE</code> or is unspecified, CodeDeploy initiates one or more 'auto-update outdated instances' deployments to apply the deployed application revision to the new EC2 instances. If this option is set to <code>IGNORE</code>, CodeDeploy does not initiate a deployment to update the new EC2 instances. This may result in instances having different revisions.<br/>autoRollbackConfiguration:  Configuration information for an automatic rollback that is added when a deployment group is created.:<br/>alarmConfiguration:  Information to add about Amazon CloudWatch alarms when the deployment group is created.:<br/>triggerConfigurations:  Information about triggers to create when the deployment group is created. For examples, see <a href="https://docs.aws.amazon.com/codedeploy/latest/userguide/how-to-notify-sns.html">Create a Trigger for an AWS CodeDeploy Event</a> in the <i>AWS CodeDeploy User Guide</i>.<br/>serviceRoleArn:  A service role Amazon Resource Name (ARN) that allows AWS CodeDeploy to act on the user's behalf when interacting with AWS services.<br/>autoScalingGroups:  A list of associated Amazon EC2 Auto Scaling groups.<br/>onPremisesInstanceTagFilters:  The on-premises instance tags on which to filter. The deployment group includes on-premises instances with any of the specified tags. Cannot be used in the same call as <code>OnPremisesTagSet</code>.<br/>ec2TagFilters:  The Amazon EC2 tags on which to filter. The deployment group includes EC2 instances with any of the specified tags. Cannot be used in the same call as ec2TagSet.<br/>deploymentConfigName:  If specified, the deployment configuration name can be either one of the predefined configurations provided with AWS CodeDeploy or a custom deployment configuration that you create by calling the create deployment configuration operation.  <code>CodeDeployDefault.OneAtATime</code> is the default deployment configuration. It is used if a configuration isn't specified for the deployment or deployment group. For more information about the predefined deployment configurations in AWS CodeDeploy, see <a href="https://docs.aws.amazon.com/codedeploy/latest/userguide/deployment-configurations.html">Working with Deployment Configurations in CodeDeploy</a> in the <i>AWS CodeDeploy User Guide</i>.<br/>deploymentGroupName:  The name of a new deployment group for the specified application.<br/>applicationName:  The name of an AWS CodeDeploy application associated with the IAM user or AWS account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>alarms</i> A list of alarms configured for the deployment group. A maximum of 10 alarms can be added to a deployment group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ignorePollAlarmFailure</i> Indicates whether a deployment should continue if information about the current state of alarms cannot be retrieved from Amazon CloudWatch. The default value is false. <ul> <li>  <code>true</code>: The deployment proceeds even if alarm status information can't be retrieved from Amazon CloudWatch. </li> <li>  <code>false</code>: The deployment stops if alarm status information can't be retrieved from Amazon CloudWatch. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>enabled</i> Indicates whether the alarm configuration is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>events</i> The event type or types that trigger a rollback.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>enabled</i> Indicates whether a defined automatic rollback configuration is currently enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deploymentOption</i> Indicates whether to route deployment traffic behind a load balancer.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deploymentType</i> Indicates whether to run an in-place deployment or a blue/green deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>greenFleetProvisioningOption</i> Information about how instances are provisioned for a replacement environment in a blue/green deployment.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>greenFleetProvisioningOption</b>: Information about how instances are provisioned for a replacement environment in a blue/green deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deploymentReadyOption</i> Information about the action to take when newly provisioned instances are ready to receive traffic in a blue/green deployment.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>deploymentReadyOption</b>: Information about the action to take when newly provisioned instances are ready to receive traffic in a blue/green deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>terminateBlueInstancesOnDeploymentSuccess</i> Information about whether to terminate instances in the original fleet during a blue/green deployment.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>terminateBlueInstancesOnDeploymentSuccess</b>: Information about whether to terminate instances in the original fleet during a blue/green deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>terminationWaitTimeInMinutes</i> For an Amazon EC2 deployment, the number of minutes to wait after a successful blue/green deployment before terminating instances from the original environment.  For an Amazon ECS deployment, the number of minutes before deleting the original (blue) task set. During an Amazon ECS deployment, CodeDeploy shifts traffic from the original (blue) task set to a replacement (green) task set.   The maximum setting is 2880 minutes (2 days). <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>action</i> The action to take on instances in the original environment after a successful blue/green deployment. <ul> <li>  <code>TERMINATE</code>: Instances are terminated after a specified wait time. </li> <li>  <code>KEEP_ALIVE</code>: Instances are left running after they are deregistered from the load balancer and removed from the deployment group. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>waitTimeInMinutes</i> The number of minutes to wait before the status of a blue/green deployment is changed to Stopped if rerouting is not started manually. Applies only to the <code>STOP_DEPLOYMENT</code> option for <code>actionOnTimeout</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>actionOnTimeout</i> Information about when to reroute traffic from an original environment to a replacement environment in a blue/green deployment. <ul> <li> CONTINUE_DEPLOYMENT: Register new instances with the load balancer immediately after the new application revision is installed on the instances in the replacement environment. </li> <li> STOP_DEPLOYMENT: Do not register new instances with a load balancer unless traffic rerouting is started using <a>ContinueDeployment</a>. If traffic rerouting is not started before the end of the specified wait period, the deployment status is changed to Stopped. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>action</i> The method used to add instances to a replacement environment. <ul> <li>  <code>DISCOVER_EXISTING</code>: Use instances that already exist or will be created manually. </li> <li>  <code>COPY_AUTO_SCALING_GROUP</code>: Use settings from a specified Auto Scaling group to define and create instances in a new Auto Scaling group. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>targetGroupPairInfoList</i>  The target group pair information. This is an array of <code>TargeGroupPairInfo</code> objects with a maximum size of one. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>targetGroupInfoList</i> An array that contains information about the target group to use for load balancing in a deployment. In Elastic Load Balancing, target groups are used with Application Load Balancers. <note>  Adding more than one target group to the array is not supported.  </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>elbInfoList</i> An array that contains information about the load balancer to use for load balancing in a deployment. In Elastic Load Balancing, load balancers are used with Classic Load Balancers. <note>  Adding more than one load balancer to the array is not supported.  </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ec2TagSetList</i> A list that contains other lists of EC2 instance tag groups. For an instance to be included in the deployment group, it must be identified by all of the tag groups in the list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>onPremisesTagSetList</i> A list that contains other lists of on-premises instance tag groups. For an instance to be included in the deployment group, it must be identified by all of the tag groups in the list.<br/>
        :return: deploymentGroupId:  A unique deployment group ID.<br/>        """
        pass

    def delete_application(self, applicationName: str):
        r"""Deletes an application.

        :param self:
        :param applicationName:  The name of an AWS CodeDeploy application associated with the IAM user or AWS account.<br/>
        :return:         """
        pass

    def delete_deployment_config(self, deploymentConfigName: str):
        r"""Deletes a deployment configuration. <note> A deployment configuration cannot be deleted if it is currently in use. Predefined configurations cannot be deleted. </note>

        :param self:
        :param deploymentConfigName:  The name of a deployment configuration associated with the IAM user or AWS account.<br/>
        :return:         """
        pass

    def delete_deployment_group(self, deploymentGroupName: str, applicationName: str) -> DeleteDeploymentGroupOutput:
        r"""Deletes a deployment group.

        :param self:
        :param deploymentGroupName:  The name of a deployment group for the specified application.<br/>applicationName:  The name of an AWS CodeDeploy application associated with the IAM user or AWS account.<br/>
        :return: hooksNotCleanedUp:  If the output contains no data, and the corresponding deployment group contained at least one Auto Scaling group, AWS CodeDeploy successfully removed all corresponding Auto Scaling lifecycle event hooks from the Amazon EC2 instances in the Auto Scaling group. If the output contains data, AWS CodeDeploy could not remove some Auto Scaling lifecycle event hooks from the Amazon EC2 instances in the Auto Scaling group.<br/>        """
        pass

    def delete_git_hub_account_token(self, tokenName: str=None) -> DeleteGitHubAccountTokenOutput:
        r"""Deletes a GitHub account connection.

        :param self:
        :param tokenName:  The name of the GitHub account connection to delete.<br/>
        :return: tokenName:  The name of the GitHub account connection that was deleted.<br/>        """
        pass

    def delete_resources_by_external_id(self, externalId: str=None) -> DeleteResourcesByExternalIdOutput:
        r"""Deletes resources linked to an external ID.

        :param self:
        :param externalId:  The unique ID of an external resource (for example, a CloudFormation stack ID) that is linked to one or more CodeDeploy resources.<br/>
        :return:         """
        pass

    def deregister_on_premises_instance(self, instanceName: str):
        r"""Deregisters an on-premises instance.

        :param self:
        :param instanceName:  The name of the on-premises instance to deregister.<br/>
        :return:         """
        pass

    def get_application(self, applicationName: str) -> GetApplicationOutput:
        r"""Gets information about an application.

        :param self:
        :param applicationName:  The name of an AWS CodeDeploy application associated with the IAM user or AWS account.<br/>
        :return: application:  Information about the application.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>computePlatform</i> The destination platform type for deployment of the application (<code>Lambda</code> or <code>Server</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>gitHubAccountName</i> The name for a connection to a GitHub account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>linkedToGitHub</i> True if the user has authenticated with GitHub for the specified application. Otherwise, false.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createTime</i> The time at which the application was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>applicationName</i> The application name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>applicationId</i> The application ID.<br/>        """
        pass

    def get_application_revision(self, revision: RevisionLocation, applicationName: str) -> GetApplicationRevisionOutput:
        r"""Gets information about an application revision.

        :param self:
        :param revision:  Information about the application revision to get, including type and location.:<br/>applicationName:  The name of the application that corresponds to the revision.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>appSpecContent</i>  The content of an AppSpec file for an AWS Lambda or Amazon ECS deployment. The content is formatted as JSON or YAML and stored as a RawString. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>appSpecContent</b>:  The content of an AppSpec file for an AWS Lambda or Amazon ECS deployment. The content is formatted as JSON or YAML and stored as a RawString. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>string</i> Information about the location of an AWS Lambda deployment revision stored as a RawString.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>string</b>: Information about the location of an AWS Lambda deployment revision stored as a RawString.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>gitHubLocation</i> Information about the location of application artifacts stored in GitHub.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>gitHubLocation</b>: Information about the location of application artifacts stored in GitHub.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>s3Location</i> Information about the location of a revision stored in Amazon S3. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>s3Location</b>: Information about the location of a revision stored in Amazon S3. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>revisionType</i> The type of application revision: <ul> <li> S3: An application revision stored in Amazon S3. </li> <li> GitHub: An application revision stored in GitHub (EC2/On-premises deployments only). </li> <li> String: A YAML-formatted or JSON-formatted string (AWS Lambda deployments only). </li> <li> AppSpecContent: An <code>AppSpecContent</code> object that contains the contents of an AppSpec file for an AWS Lambda or Amazon ECS deployment. The content is formatted as JSON or YAML stored as a RawString. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>eTag</i> The ETag of the Amazon S3 object that represents the bundled artifacts for the application revision. If the ETag is not specified as an input parameter, ETag validation of the object is skipped.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> A specific version of the Amazon S3 object that represents the bundled artifacts for the application revision. If the version is not specified, the system uses the most recent version by default.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>bundleType</i> The file type of the application revision. Must be one of the following: <ul> <li>  <code>tar</code>: A tar archive file. </li> <li>  <code>tgz</code>: A compressed tar archive file. </li> <li>  <code>zip</code>: A zip archive file. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>key</i> The name of the Amazon S3 object that represents the bundled artifacts for the application revision.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>bucket</i> The name of the Amazon S3 bucket where the application revision is stored.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>commitId</i> The SHA1 commit ID of the GitHub commit that represents the bundled artifacts for the application revision.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>repository</i> The GitHub account and repository pair that stores a reference to the commit that represents the bundled artifacts for the application revision.  Specified as account/repository.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>sha256</i> The SHA256 hash value of the revision content.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>content</i> The YAML-formatted or JSON-formatted revision string. It includes information about which Lambda function to update and optional Lambda functions that validate deployment lifecycle events.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>sha256</i>  The SHA256 hash value of the revision content. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>content</i>  The YAML-formatted or JSON-formatted revision string.   For an AWS Lambda deployment, the content includes a Lambda function name, the alias for its original version, and the alias for its replacement version. The deployment shifts traffic from the original version of the Lambda function to the replacement version.   For an Amazon ECS deployment, the content includes the task name, information about the load balancer that serves traffic to the container, and more.   For both types of deployments, the content can specify Lambda functions that run at specified hooks, such as <code>BeforeInstall</code>, during a deployment. <br/>
        :return: revisionInfo:  General information about the revision.:<br/>revision:  Additional information about the revision, including type and location.:<br/>applicationName:  The name of the application that corresponds to the revision.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>appSpecContent</i>  The content of an AppSpec file for an AWS Lambda or Amazon ECS deployment. The content is formatted as JSON or YAML and stored as a RawString. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>appSpecContent</b>:  The content of an AppSpec file for an AWS Lambda or Amazon ECS deployment. The content is formatted as JSON or YAML and stored as a RawString. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>string</i> Information about the location of an AWS Lambda deployment revision stored as a RawString.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>string</b>: Information about the location of an AWS Lambda deployment revision stored as a RawString.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>gitHubLocation</i> Information about the location of application artifacts stored in GitHub.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>gitHubLocation</b>: Information about the location of application artifacts stored in GitHub.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>s3Location</i> Information about the location of a revision stored in Amazon S3. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>s3Location</b>: Information about the location of a revision stored in Amazon S3. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>revisionType</i> The type of application revision: <ul> <li> S3: An application revision stored in Amazon S3. </li> <li> GitHub: An application revision stored in GitHub (EC2/On-premises deployments only). </li> <li> String: A YAML-formatted or JSON-formatted string (AWS Lambda deployments only). </li> <li> AppSpecContent: An <code>AppSpecContent</code> object that contains the contents of an AppSpec file for an AWS Lambda or Amazon ECS deployment. The content is formatted as JSON or YAML stored as a RawString. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>eTag</i> The ETag of the Amazon S3 object that represents the bundled artifacts for the application revision. If the ETag is not specified as an input parameter, ETag validation of the object is skipped.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> A specific version of the Amazon S3 object that represents the bundled artifacts for the application revision. If the version is not specified, the system uses the most recent version by default.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>bundleType</i> The file type of the application revision. Must be one of the following: <ul> <li>  <code>tar</code>: A tar archive file. </li> <li>  <code>tgz</code>: A compressed tar archive file. </li> <li>  <code>zip</code>: A zip archive file. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>key</i> The name of the Amazon S3 object that represents the bundled artifacts for the application revision.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>bucket</i> The name of the Amazon S3 bucket where the application revision is stored.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>commitId</i> The SHA1 commit ID of the GitHub commit that represents the bundled artifacts for the application revision.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>repository</i> The GitHub account and repository pair that stores a reference to the commit that represents the bundled artifacts for the application revision.  Specified as account/repository.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>sha256</i> The SHA256 hash value of the revision content.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>content</i> The YAML-formatted or JSON-formatted revision string. It includes information about which Lambda function to update and optional Lambda functions that validate deployment lifecycle events.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>sha256</i>  The SHA256 hash value of the revision content. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>content</i>  The YAML-formatted or JSON-formatted revision string.   For an AWS Lambda deployment, the content includes a Lambda function name, the alias for its original version, and the alias for its replacement version. The deployment shifts traffic from the original version of the Lambda function to the replacement version.   For an Amazon ECS deployment, the content includes the task name, information about the load balancer that serves traffic to the container, and more.   For both types of deployments, the content can specify Lambda functions that run at specified hooks, such as <code>BeforeInstall</code>, during a deployment. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>registerTime</i> When the revision was registered with AWS CodeDeploy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUsedTime</i> When the revision was last used by AWS CodeDeploy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>firstUsedTime</i> When the revision was first used by AWS CodeDeploy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deploymentGroups</i> The deployment groups for which this is the current target revision.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> A comment about the revision.<br/>        """
        pass

    def get_deployment(self, deploymentId: str) -> GetDeploymentOutput:
        r"""Gets information about a deployment. <note>  The <code>content</code> property of the <code>appSpecContent</code> object in the returned revision is always null. Use <code>GetApplicationRevision</code> and the <code>sha256</code> property of the returned <code>appSpecContent</code> object to get the content of the deployment’s AppSpec file.  </note>

        :param self:
        :param deploymentId:   The unique ID of a deployment associated with the IAM user or AWS account. <br/>
        :return: deploymentInfo:  Information about the deployment.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>relatedDeployments</i> Information about deployments related to the specified deployment.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>relatedDeployments</b>: Information about deployments related to the specified deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>externalId</i> The unique ID for an external resource (for example, a CloudFormation stack ID) that is linked to this deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>computePlatform</i> The destination platform type for the deployment (<code>Lambda</code>, <code>Server</code>, or <code>ECS</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deploymentStatusMessages</i> Messages that contain information about the status of a deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>fileExistsBehavior</i> Information about how AWS CodeDeploy handles files that already exist in a deployment target location but weren't part of the previous successful deployment. <ul> <li>  <code>DISALLOW</code>: The deployment fails. This is also the default behavior if no option is specified. </li> <li>  <code>OVERWRITE</code>: The version of the file from the application revision currently being deployed replaces the version already on the instance. </li> <li>  <code>RETAIN</code>: The version of the file already on the instance is kept and used as part of the new deployment. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>additionalDeploymentStatusInfo</i> Provides information about the results of a deployment, such as whether instances in the original environment in a blue/green deployment were not terminated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>loadBalancerInfo</i> Information about the load balancer used in the deployment.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>loadBalancerInfo</b>: Information about the load balancer used in the deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>blueGreenDeploymentConfiguration</i> Information about blue/green deployment options for this deployment.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>blueGreenDeploymentConfiguration</b>: Information about blue/green deployment options for this deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>instanceTerminationWaitTimeStarted</i> Indicates whether the wait period set for the termination of instances in the original environment has started. Status is 'false' if the KEEP_ALIVE option is specified. Otherwise, 'true' as soon as the termination wait period starts.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>targetInstances</i> Information about the instances that belong to the replacement environment in a blue/green deployment.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>targetInstances</b>: Information about the instances that belong to the replacement environment in a blue/green deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deploymentStyle</i> Information about the type of deployment, either in-place or blue/green, you want to run and whether to route deployment traffic behind a load balancer.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>deploymentStyle</b>: Information about the type of deployment, either in-place or blue/green, you want to run and whether to route deployment traffic behind a load balancer.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>rollbackInfo</i> Information about a deployment rollback.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>rollbackInfo</b>: Information about a deployment rollback.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>updateOutdatedInstancesOnly</i> Indicates whether only instances that are not running the latest application revision are to be deployed to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>autoRollbackConfiguration</i> Information about the automatic rollback configuration associated with the deployment.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>autoRollbackConfiguration</b>: Information about the automatic rollback configuration associated with the deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ignoreApplicationStopFailures</i>  If true, then if an <code>ApplicationStop</code>, <code>BeforeBlockTraffic</code>, or <code>AfterBlockTraffic</code> deployment lifecycle event to an instance fails, then the deployment continues to the next deployment lifecycle event. For example, if <code>ApplicationStop</code> fails, the deployment continues with DownloadBundle. If <code>BeforeBlockTraffic</code> fails, the deployment continues with <code>BlockTraffic</code>. If <code>AfterBlockTraffic</code> fails, the deployment continues with <code>ApplicationStop</code>.   If false or not specified, then if a lifecycle event fails during a deployment to an instance, that deployment fails. If deployment to that instance is part of an overall deployment and the number of healthy hosts is not less than the minimum number of healthy hosts, then a deployment to the next instance is attempted.   During a deployment, the AWS CodeDeploy agent runs the scripts specified for <code>ApplicationStop</code>, <code>BeforeBlockTraffic</code>, and <code>AfterBlockTraffic</code> in the AppSpec file from the previous successful deployment. (All other scripts are run from the AppSpec file in the current deployment.) If one of these scripts contains an error and does not run successfully, the deployment can fail.   If the cause of the failure is a script from the last successful deployment that will never run successfully, create a new deployment and use <code>ignoreApplicationStopFailures</code> to specify that the <code>ApplicationStop</code>, <code>BeforeBlockTraffic</code>, and <code>AfterBlockTraffic</code> failures should be ignored. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creator</i> The means by which the deployment was created: <ul> <li>  <code>user</code>: A user created the deployment. </li> <li>  <code>autoscaling</code>: Amazon EC2 Auto Scaling created the deployment. </li> <li>  <code>codeDeployRollback</code>: A rollback process created the deployment. </li> <li>  <code>CodeDeployAutoUpdate</code>: An auto-update process created the deployment when it detected outdated EC2 instances. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> A comment about the deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deploymentOverview</i> A summary of the deployment status of the instances in the deployment.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>deploymentOverview</b>: A summary of the deployment status of the instances in the deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>completeTime</i> A timestamp that indicates when the deployment was complete.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>startTime</i> A timestamp that indicates when the deployment was deployed to the deployment group. In some cases, the reported value of the start time might be later than the complete time. This is due to differences in the clock settings of backend servers that participate in the deployment process.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createTime</i> A timestamp that indicates when the deployment was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>errorInformation</i> Information about any error associated with this deployment.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>errorInformation</b>: Information about any error associated with this deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current state of the deployment as a whole.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>revision</i> Information about the location of stored application artifacts and the service from which to retrieve them.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>revision</b>: Information about the location of stored application artifacts and the service from which to retrieve them.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>previousRevision</i> Information about the application revision that was deployed to the deployment group before the most recent successful deployment.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>previousRevision</b>: Information about the application revision that was deployed to the deployment group before the most recent successful deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deploymentId</i>  The unique ID of a deployment. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deploymentConfigName</i>  The deployment configuration name. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deploymentGroupName</i>  The deployment group name. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>applicationName</i> The application name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>revisionType</i> The type of application revision: <ul> <li> S3: An application revision stored in Amazon S3. </li> <li> GitHub: An application revision stored in GitHub (EC2/On-premises deployments only). </li> <li> String: A YAML-formatted or JSON-formatted string (AWS Lambda deployments only). </li> <li> AppSpecContent: An <code>AppSpecContent</code> object that contains the contents of an AppSpec file for an AWS Lambda or Amazon ECS deployment. The content is formatted as JSON or YAML stored as a RawString. </li> </ul><br/>Information about the location of a revision stored in Amazon S3. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>s3Location</b>: Information about the location of a revision stored in Amazon S3. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>revisionType</i> The type of application revision: <ul> <li> S3: An application revision stored in Amazon S3. </li> <li> GitHub: An application revision stored in GitHub (EC2/On-premises deployments only). </li> <li> String: A YAML-formatted or JSON-formatted string (AWS Lambda deployments only). </li> <li> AppSpecContent: An <code>AppSpecContent</code> object that contains the contents of an AppSpec file for an AWS Lambda or Amazon ECS deployment. The content is formatted as JSON or YAML stored as a RawString. </li> </ul><br/>Information about the location of a revision stored in Amazon S3. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>s3Location</b>: Information about the location of a revision stored in Amazon S3. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>message</i> An accompanying error message.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>code</i> For more information, see <a href="https://docs.aws.amazon.com/codedeploy/latest/userguide/error-codes.html">Error Codes for AWS CodeDeploy</a> in the <a href="https://docs.aws.amazon.com/codedeploy/latest/userguide">AWS CodeDeploy User Guide</a>. The error code: <ul> <li> APPLICATION_MISSING: The application was missing. This error code is most likely raised if the application is deleted after the deployment is created, but before it is started. </li> <li> DEPLOYMENT_GROUP_MISSING: The deployment group was missing. This error code is most likely raised if the deployment group is deleted after the deployment is created, but before it is started. </li> <li> HEALTH_CONSTRAINTS: The deployment failed on too many instances to be successfully deployed within the instance health constraints specified. </li> <li> HEALTH_CONSTRAINTS_INVALID: The revision cannot be successfully deployed within the instance health constraints specified. </li> <li> IAM_ROLE_MISSING: The service role cannot be accessed. </li> <li> IAM_ROLE_PERMISSIONS: The service role does not have the correct permissions. </li> <li> INTERNAL_ERROR: There was an internal error. </li> <li> NO_EC2_SUBSCRIPTION: The calling account is not subscribed to Amazon EC2. </li> <li> NO_INSTANCES: No instances were specified, or no instances can be found. </li> <li> OVER_MAX_INSTANCES: The maximum number of instances was exceeded. </li> <li> THROTTLED: The operation was throttled because the calling account exceeded the throttling limits of one or more AWS services. </li> <li> TIMEOUT: The deployment has timed out. </li> <li> REVISION_MISSING: The revision ID was missing. This error code is most likely raised if the revision is deleted after the deployment is created, but before it is started. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Ready</i> The number of instances in a replacement environment ready to receive traffic in a blue/green deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Skipped</i> The number of instances in the deployment in a skipped state.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Failed</i> The number of instances in the deployment in a failed state.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Succeeded</i> The number of instances in the deployment to which revisions have been successfully deployed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InProgress</i> The number of instances in which the deployment is in progress.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Pending</i> The number of instances in the deployment in a pending state.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>events</i> The event type or types that trigger a rollback.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>enabled</i> Indicates whether a defined automatic rollback configuration is currently enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>rollbackMessage</i> Information that describes the status of a deployment rollback (for example, whether the deployment can't be rolled back, is in progress, failed, or succeeded). <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>rollbackTriggeringDeploymentId</i> The deployment ID of the deployment that was underway and triggered a rollback deployment because it failed or was stopped.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>rollbackDeploymentId</i> The ID of the deployment rollback.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>deploymentOption</i> Indicates whether to route deployment traffic behind a load balancer.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>deploymentType</i> Indicates whether to run an in-place deployment or a blue/green deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>autoScalingGroups</i> The names of one or more Auto Scaling groups to identify a replacement environment for a blue/green deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>tagFilters</i> The tag filter key, type, and value used to identify Amazon EC2 instances in a replacement environment for a blue/green deployment. Cannot be used in the same call as <code>ec2TagSet</code>.<br/>Information about the groups of EC2 instance tags that an instance must be identified by in order for it to be included in the replacement environment for a blue/green deployment. Cannot be used in the same call as <code>tagFilters</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ec2TagSet</b>: Information about the groups of EC2 instance tags that an instance must be identified by in order for it to be included in the replacement environment for a blue/green deployment. Cannot be used in the same call as <code>tagFilters</code>.Information about whether to terminate instances in the original fleet during a blue/green deployment.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>terminateBlueInstancesOnDeploymentSuccess</b>: Information about whether to terminate instances in the original fleet during a blue/green deployment.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>targetGroupPairInfoList</i>  The target group pair information. This is an array of <code>TargeGroupPairInfo</code> objects with a maximum size of one. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>targetGroupInfoList</i> An array that contains information about the target group to use for load balancing in a deployment. In Elastic Load Balancing, target groups are used with Application Load Balancers. <note>  Adding more than one target group to the array is not supported.  </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>elbInfoList</i> An array that contains information about the load balancer to use for load balancing in a deployment. In Elastic Load Balancing, load balancers are used with Classic Load Balancers. <note>  Adding more than one load balancer to the array is not supported.  </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>autoUpdateOutdatedInstancesDeploymentIds</i> The deployment IDs of 'auto-update outdated instances' deployments triggered by this deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>autoUpdateOutdatedInstancesRootDeploymentId</i> The deployment ID of the root deployment that triggered this deployment.<br/>        """
        pass

    def get_deployment_config(self, deploymentConfigName: str) -> GetDeploymentConfigOutput:
        r"""Gets information about a deployment configuration.

        :param self:
        :param deploymentConfigName:  The name of a deployment configuration associated with the IAM user or AWS account.<br/>
        :return: deploymentConfigInfo:  Information about the deployment configuration.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>trafficRoutingConfig</i> The configuration that specifies how the deployment traffic is routed. Used for deployments with a Lambda or ECS compute platform only.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>trafficRoutingConfig</b>: The configuration that specifies how the deployment traffic is routed. Used for deployments with a Lambda or ECS compute platform only.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>computePlatform</i> The destination platform type for the deployment (<code>Lambda</code>, <code>Server</code>, or <code>ECS</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createTime</i> The time at which the deployment configuration was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>minimumHealthyHosts</i> Information about the number or percentage of minimum healthy instance.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>minimumHealthyHosts</b>: Information about the number or percentage of minimum healthy instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deploymentConfigName</i> The deployment configuration name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deploymentConfigId</i> The deployment configuration ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>value</i> The minimum healthy instance value.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The minimum healthy instance type: <ul> <li>  <code>HOST_COUNT</code>: The minimum number of healthy instances as an absolute value. </li> <li>  <code>FLEET_PERCENT</code>: The minimum number of healthy instances as a percentage of the total number of instances in the deployment. </li> </ul> In an example of nine instances, if a HOST_COUNT of six is specified, deploy to up to three instances at a time. The deployment is successful if six or more instances are deployed to successfully. Otherwise, the deployment fails. If a FLEET_PERCENT of 40 is specified, deploy to up to five instances at a time. The deployment is successful if four or more instances are deployed to successfully. Otherwise, the deployment fails. <note> In a call to the <code>GetDeploymentConfig</code>, CodeDeployDefault.OneAtATime returns a minimum healthy instance type of MOST_CONCURRENCY and a value of 1. This means a deployment to only one instance at a time. (You cannot set the type to MOST_CONCURRENCY, only to HOST_COUNT or FLEET_PERCENT.) In addition, with CodeDeployDefault.OneAtATime, AWS CodeDeploy attempts to ensure that all instances but one are kept in a healthy state during the deployment. Although this allows one instance at a time to be taken offline for a new deployment, it also means that if the deployment to the last instance fails, the overall deployment is still successful. </note> For more information, see <a href="https://docs.aws.amazon.com/codedeploy/latest/userguide/instances-health.html">AWS CodeDeploy Instance Health</a> in the <i>AWS CodeDeploy User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of traffic shifting (<code>TimeBasedCanary</code> or <code>TimeBasedLinear</code>) used by a deployment configuration.<br/>A configuration that shifts traffic from one version of a Lambda function or ECS task set to another in two increments. The original and target Lambda function versions or ECS task sets are specified in the deployment's AppSpec file.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>timeBasedCanary</b>: A configuration that shifts traffic from one version of a Lambda function or ECS task set to another in two increments. The original and target Lambda function versions or ECS task sets are specified in the deployment's AppSpec file.        """
        pass

    def get_deployment_group(self, deploymentGroupName: str, applicationName: str) -> GetDeploymentGroupOutput:
        r"""Gets information about a deployment group.

        :param self:
        :param deploymentGroupName:  The name of a deployment group for the specified application.<br/>applicationName:  The name of an AWS CodeDeploy application associated with the IAM user or AWS account.<br/>
        :return: deploymentGroupInfo:  Information about the deployment group.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ecsServices</i>  The target Amazon ECS services in the deployment group. This applies only to deployment groups that use the Amazon ECS compute platform. A target Amazon ECS service is specified as an Amazon ECS cluster and service name pair using the format <code>&lt;clustername&gt;:&lt;servicename&gt;</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>computePlatform</i> The destination platform type for the deployment (<code>Lambda</code>, <code>Server</code>, or <code>ECS</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>onPremisesTagSet</i> Information about groups of tags applied to an on-premises instance. The deployment group includes only on-premises instances identified by all the tag groups. Cannot be used in the same call as onPremisesInstanceTagFilters.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>onPremisesTagSet</b>: Information about groups of tags applied to an on-premises instance. The deployment group includes only on-premises instances identified by all the tag groups. Cannot be used in the same call as onPremisesInstanceTagFilters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ec2TagSet</i> Information about groups of tags applied to an EC2 instance. The deployment group includes only EC2 instances identified by all of the tag groups. Cannot be used in the same call as ec2TagFilters.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ec2TagSet</b>: Information about groups of tags applied to an EC2 instance. The deployment group includes only EC2 instances identified by all of the tag groups. Cannot be used in the same call as ec2TagFilters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastAttemptedDeployment</i> Information about the most recent attempted deployment to the deployment group.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>lastAttemptedDeployment</b>: Information about the most recent attempted deployment to the deployment group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastSuccessfulDeployment</i> Information about the most recent successful deployment to the deployment group.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>lastSuccessfulDeployment</b>: Information about the most recent successful deployment to the deployment group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>loadBalancerInfo</i> Information about the load balancer to use in a deployment.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>loadBalancerInfo</b>: Information about the load balancer to use in a deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>blueGreenDeploymentConfiguration</i> Information about blue/green deployment options for a deployment group.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>blueGreenDeploymentConfiguration</b>: Information about blue/green deployment options for a deployment group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>outdatedInstancesStrategy</i> Indicates what happens when new EC2 instances are launched mid-deployment and do not receive the deployed application revision. If this option is set to <code>UPDATE</code> or is unspecified, CodeDeploy initiates one or more 'auto-update outdated instances' deployments to apply the deployed application revision to the new EC2 instances. If this option is set to <code>IGNORE</code>, CodeDeploy does not initiate a deployment to update the new EC2 instances. This may result in instances having different revisions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deploymentStyle</i> Information about the type of deployment, either in-place or blue/green, you want to run and whether to route deployment traffic behind a load balancer.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>deploymentStyle</b>: Information about the type of deployment, either in-place or blue/green, you want to run and whether to route deployment traffic behind a load balancer.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>autoRollbackConfiguration</i> Information about the automatic rollback configuration associated with the deployment group.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>autoRollbackConfiguration</b>: Information about the automatic rollback configuration associated with the deployment group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>alarmConfiguration</i> A list of alarms associated with the deployment group.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>alarmConfiguration</b>: A list of alarms associated with the deployment group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>triggerConfigurations</i> Information about triggers associated with the deployment group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>targetRevision</i> Information about the deployment group's target revision, including type and location.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>targetRevision</b>: Information about the deployment group's target revision, including type and location.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>serviceRoleArn</i> A service role Amazon Resource Name (ARN) that grants CodeDeploy permission to make calls to AWS services on your behalf. For more information, see <a href="https://docs.aws.amazon.com/codedeploy/latest/userguide/getting-started-create-service-role.html">Create a Service Role for AWS CodeDeploy</a> in the <i>AWS CodeDeploy User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>autoScalingGroups</i> A list of associated Auto Scaling groups.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>onPremisesInstanceTagFilters</i> The on-premises instance tags on which to filter. The deployment group includes on-premises instances with any of the specified tags.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ec2TagFilters</i> The Amazon EC2 tags on which to filter. The deployment group includes EC2 instances with any of the specified tags.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deploymentConfigName</i> The deployment configuration name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deploymentGroupName</i> The deployment group name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deploymentGroupId</i> The deployment group ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>applicationName</i> The application name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>revisionType</i> The type of application revision: <ul> <li> S3: An application revision stored in Amazon S3. </li> <li> GitHub: An application revision stored in GitHub (EC2/On-premises deployments only). </li> <li> String: A YAML-formatted or JSON-formatted string (AWS Lambda deployments only). </li> <li> AppSpecContent: An <code>AppSpecContent</code> object that contains the contents of an AppSpec file for an AWS Lambda or Amazon ECS deployment. The content is formatted as JSON or YAML stored as a RawString. </li> </ul><br/>Information about the location of a revision stored in Amazon S3. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>s3Location</b>: Information about the location of a revision stored in Amazon S3. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>alarms</i> A list of alarms configured for the deployment group. A maximum of 10 alarms can be added to a deployment group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ignorePollAlarmFailure</i> Indicates whether a deployment should continue if information about the current state of alarms cannot be retrieved from Amazon CloudWatch. The default value is false. <ul> <li>  <code>true</code>: The deployment proceeds even if alarm status information can't be retrieved from Amazon CloudWatch. </li> <li>  <code>false</code>: The deployment stops if alarm status information can't be retrieved from Amazon CloudWatch. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>enabled</i> Indicates whether the alarm configuration is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>events</i> The event type or types that trigger a rollback.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>enabled</i> Indicates whether a defined automatic rollback configuration is currently enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>deploymentOption</i> Indicates whether to route deployment traffic behind a load balancer.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>deploymentType</i> Indicates whether to run an in-place deployment or a blue/green deployment.<br/>Information about whether to terminate instances in the original fleet during a blue/green deployment.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>terminateBlueInstancesOnDeploymentSuccess</b>: Information about whether to terminate instances in the original fleet during a blue/green deployment.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>targetGroupPairInfoList</i>  The target group pair information. This is an array of <code>TargeGroupPairInfo</code> objects with a maximum size of one. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>targetGroupInfoList</i> An array that contains information about the target group to use for load balancing in a deployment. In Elastic Load Balancing, target groups are used with Application Load Balancers. <note>  Adding more than one target group to the array is not supported.  </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>elbInfoList</i> An array that contains information about the load balancer to use for load balancing in a deployment. In Elastic Load Balancing, load balancers are used with Classic Load Balancers. <note>  Adding more than one load balancer to the array is not supported.  </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>createTime</i> A timestamp that indicates when the most recent deployment to the deployment group started.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>endTime</i> A timestamp that indicates when the most recent deployment to the deployment group was complete.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the most recent deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>deploymentId</i>  The unique ID of a deployment. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>createTime</i> A timestamp that indicates when the most recent deployment to the deployment group started.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>endTime</i> A timestamp that indicates when the most recent deployment to the deployment group was complete.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the most recent deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>deploymentId</i>  The unique ID of a deployment. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ec2TagSetList</i> A list that contains other lists of EC2 instance tag groups. For an instance to be included in the deployment group, it must be identified by all of the tag groups in the list.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>onPremisesTagSetList</i> A list that contains other lists of on-premises instance tag groups. For an instance to be included in the deployment group, it must be identified by all of the tag groups in the list.<br/>        """
        pass

    def get_deployment_instance(self, instanceId: str, deploymentId: str) -> GetDeploymentInstanceOutput:
        r"""Gets information about an instance as part of a deployment.

        :param self:
        :param instanceId:   The unique ID of an instance in the deployment group. <br/>deploymentId:   The unique ID of a deployment. <br/>
        :return: instanceSummary:   Information about the instance. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>instanceType</i> Information about which environment an instance belongs to in a blue/green deployment. <ul> <li> BLUE: The instance is part of the original environment. </li> <li> GREEN: The instance is part of the replacement environment. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lifecycleEvents</i> A list of lifecycle events for this instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedAt</i> A timestamp that indicates when the instance information was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The deployment status for this instance: <ul> <li>  <code>Pending</code>: The deployment is pending for this instance. </li> <li>  <code>In Progress</code>: The deployment is in progress for this instance. </li> <li>  <code>Succeeded</code>: The deployment has succeeded for this instance. </li> <li>  <code>Failed</code>: The deployment has failed for this instance. </li> <li>  <code>Skipped</code>: The deployment has been skipped for this instance. </li> <li>  <code>Unknown</code>: The deployment status is unknown for this instance. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>instanceId</i> The instance ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deploymentId</i>  The unique ID of a deployment. <br/>        """
        pass

    def get_deployment_target(self, deploymentId: str=None, targetId: str=None) -> GetDeploymentTargetOutput:
        r""" Returns information about a deployment target. 

        :param self:
        :param targetId:   The unique ID of a deployment target. <br/>deploymentId:   The unique ID of a deployment. <br/>
        :return: deploymentTarget:   A deployment target that contains information about a deployment such as its status, lifecycle events, and when it was last updated. It also contains metadata about the deployment target. The deployment target metadata depends on the deployment target's type (<code>instanceTarget</code>, <code>lambdaTarget</code>, or <code>ecsTarget</code>). :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>cloudFormationTarget</i>  Information about the target to be updated by an AWS CloudFormation blue/green deployment. This target type is used for all deployments initiated by a CloudFormation stack update.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>cloudFormationTarget</b>:  Information about the target to be updated by an AWS CloudFormation blue/green deployment. This target type is used for all deployments initiated by a CloudFormation stack update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ecsTarget</i>  Information about the target for a deployment that uses the Amazon ECS compute platform. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ecsTarget</b>:  Information about the target for a deployment that uses the Amazon ECS compute platform. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lambdaTarget</i>  Information about the target for a deployment that uses the AWS Lambda compute platform. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>lambdaTarget</b>:  Information about the target for a deployment that uses the AWS Lambda compute platform. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>instanceTarget</i>  Information about the target for a deployment that uses the EC2/On-premises compute platform. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>instanceTarget</b>:  Information about the target for a deployment that uses the EC2/On-premises compute platform. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deploymentTargetType</i> The deployment type that is specific to the deployment's compute platform or deployments initiated by a CloudFormation stack update.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>instanceLabel</i>  A label that identifies whether the instance is an original target (<code>BLUE</code>) or a replacement target (<code>GREEN</code>). <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>lifecycleEvents</i>  The lifecycle events of the deployment to this target instance. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedAt</i>  The date and time when the target instance was updated by a deployment. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i>  The status an EC2/On-premises deployment's target instance. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>targetArn</i>  The Amazon Resource Name (ARN) of the target. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>targetId</i>  The unique ID of a deployment target that has a type of <code>instanceTarget</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>deploymentId</i>  The unique ID of a deployment. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>lifecycleEvents</i>  The lifecycle events of the deployment to this target Lambda function. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedAt</i>  The date and time when the target Lambda function was updated by a deployment. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i>  The status an AWS Lambda deployment's target Lambda function. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>targetArn</i>  The Amazon Resource Name (ARN) of the target. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>targetId</i>  The unique ID of a deployment target that has a type of <code>lambdaTarget</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>deploymentId</i>  The unique ID of a deployment. <br/> A <code>LambdaFunctionInfo</code> object that describes a target Lambda function. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>lambdaFunctionInfo</b>:  A <code>LambdaFunctionInfo</code> object that describes a target Lambda function. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>taskSetsInfo</i>  The <code>ECSTaskSet</code> objects associated with the ECS target. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i>  The status an Amazon ECS deployment's target ECS application. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>lifecycleEvents</i>  The lifecycle events of the deployment to this target Amazon ECS application. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedAt</i>  The date and time when the target Amazon ECS application was updated by a deployment. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>targetArn</i>  The Amazon Resource Name (ARN) of the target. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>targetId</i>  The unique ID of a deployment target that has a type of <code>ecsTarget</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>deploymentId</i>  The unique ID of a deployment. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>targetVersionWeight</i> The percentage of production traffic that the target version of an AWS CloudFormation blue/green deployment receives.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceType</i> The resource type for the AWS CloudFormation blue/green deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i>  The status of an AWS CloudFormation blue/green deployment's target application. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>lifecycleEvents</i>  The lifecycle events of the AWS CloudFormation blue/green deployment to this target application. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedAt</i>  The date and time when the target application was updated by an AWS CloudFormation blue/green deployment. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>targetId</i>  The unique ID of a deployment target that has a type of <code>CloudFormationTarget</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>deploymentId</i> The unique ID of an AWS CloudFormation blue/green deployment.<br/>        """
        pass

    def get_on_premises_instance(self, instanceName: str) -> GetOnPremisesInstanceOutput:
        r""" Gets information about an on-premises instance. 

        :param self:
        :param instanceName:   The name of the on-premises instance about which to get information. <br/>
        :return: instanceInfo:   Information about the on-premises instance. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The tags currently associated with the on-premises instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deregisterTime</i> If the on-premises instance was deregistered, the time at which the on-premises instance was deregistered.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>registerTime</i> The time at which the on-premises instance was registered.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>instanceArn</i> The ARN of the on-premises instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>iamUserArn</i> The IAM user ARN associated with the on-premises instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>iamSessionArn</i> The ARN of the IAM session associated with the on-premises instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>instanceName</i> The name of the on-premises instance.<br/>        """
        pass

    def list_application_revisions(self, applicationName: str, sortBy: str=None, sortOrder: str=None, s3Bucket: str=None, s3KeyPrefix: str=None, deployed: str=None, nextToken: str=None) -> ListApplicationRevisionsOutput:
        r"""Lists information about revisions for an application.

        :param self:
        :param nextToken:  An identifier returned from the previous <code>ListApplicationRevisions</code> call. It can be used to return the next set of applications in the list.<br/>deployed:   Whether to list revisions based on whether the revision is the target revision of a deployment group:  <ul> <li>  <code>include</code>: List revisions that are target revisions of a deployment group. </li> <li>  <code>exclude</code>: Do not list revisions that are target revisions of a deployment group. </li> <li>  <code>ignore</code>: List all revisions. </li> </ul><br/>s3KeyPrefix:   A key prefix for the set of Amazon S3 objects to limit the search for revisions. <br/>s3Bucket:   An Amazon S3 bucket name to limit the search for revisions.   If set to null, all of the user's buckets are searched. <br/>sortOrder:   The order in which to sort the list results:  <ul> <li>  <code>ascending</code>: ascending order. </li> <li>  <code>descending</code>: descending order. </li> </ul> If not specified, the results are sorted in ascending order. If set to null, the results are sorted in an arbitrary order.<br/>sortBy:  The column name to use to sort the list results: <ul> <li>  <code>registerTime</code>: Sort by the time the revisions were registered with AWS CodeDeploy. </li> <li>  <code>firstUsedTime</code>: Sort by the time the revisions were first used in a deployment. </li> <li>  <code>lastUsedTime</code>: Sort by the time the revisions were last used in a deployment. </li> </ul>  If not specified or set to null, the results are returned in an arbitrary order. <br/>applicationName:   The name of an AWS CodeDeploy application associated with the IAM user or AWS account. <br/>
        :return: nextToken:  If a large amount of information is returned, an identifier is also returned. It can be used in a subsequent list application revisions call to return the next set of application revisions in the list.<br/>revisions:  A list of locations that contain the matching revisions.<br/>        """
        pass

    def list_applications(self, nextToken: str=None) -> ListApplicationsOutput:
        r"""Lists the applications registered with the IAM user or AWS account.

        :param self:
        :param nextToken:  An identifier returned from the previous list applications call. It can be used to return the next set of applications in the list.<br/>
        :return: nextToken:  If a large amount of information is returned, an identifier is also returned. It can be used in a subsequent list applications call to return the next set of applications in the list.<br/>applications:  A list of application names.<br/>        """
        pass

    def list_deployment_configs(self, nextToken: str=None) -> ListDeploymentConfigsOutput:
        r"""Lists the deployment configurations with the IAM user or AWS account.

        :param self:
        :param nextToken:  An identifier returned from the previous <code>ListDeploymentConfigs</code> call. It can be used to return the next set of deployment configurations in the list. <br/>
        :return: nextToken:  If a large amount of information is returned, an identifier is also returned. It can be used in a subsequent list deployment configurations call to return the next set of deployment configurations in the list.<br/>deploymentConfigsList:  A list of deployment configurations, including built-in configurations such as <code>CodeDeployDefault.OneAtATime</code>.<br/>        """
        pass

    def list_deployment_groups(self, applicationName: str, nextToken: str=None) -> ListDeploymentGroupsOutput:
        r"""Lists the deployment groups for an application registered with the IAM user or AWS account.

        :param self:
        :param nextToken:  An identifier returned from the previous list deployment groups call. It can be used to return the next set of deployment groups in the list.<br/>applicationName:  The name of an AWS CodeDeploy application associated with the IAM user or AWS account.<br/>
        :return: nextToken:  If a large amount of information is returned, an identifier is also returned. It can be used in a subsequent list deployment groups call to return the next set of deployment groups in the list.<br/>deploymentGroups:  A list of deployment group names.<br/>applicationName:  The application name.<br/>        """
        pass

    def list_deployment_instances(self, deploymentId: str, nextToken: str=None, instanceStatusFilter: List[InstanceStatus]=None, instanceTypeFilter: List[InstanceType]=None) -> ListDeploymentInstancesOutput:
        r"""<note>  The newer <code>BatchGetDeploymentTargets</code> should be used instead because it works with all compute types. <code>ListDeploymentInstances</code> throws an exception if it is used with a compute platform other than EC2/On-premises or AWS Lambda.  </note>  Lists the instance for a deployment associated with the IAM user or AWS account. 

        :param self:
        :param instanceTypeFilter:  The set of instances in a blue/green deployment, either those in the original environment ("BLUE") or those in the replacement environment ("GREEN"), for which you want to view instance information.<br/>instanceStatusFilter:  A subset of instances to list by status: <ul> <li>  <code>Pending</code>: Include those instances with pending deployments. </li> <li>  <code>InProgress</code>: Include those instances where deployments are still in progress. </li> <li>  <code>Succeeded</code>: Include those instances with successful deployments. </li> <li>  <code>Failed</code>: Include those instances with failed deployments. </li> <li>  <code>Skipped</code>: Include those instances with skipped deployments. </li> <li>  <code>Unknown</code>: Include those instances with deployments in an unknown state. </li> </ul><br/>nextToken:  An identifier returned from the previous list deployment instances call. It can be used to return the next set of deployment instances in the list.<br/>deploymentId:   The unique ID of a deployment. <br/>
        :return: nextToken:  If a large amount of information is returned, an identifier is also returned. It can be used in a subsequent list deployment instances call to return the next set of deployment instances in the list.<br/>instancesList:  A list of instance IDs.<br/>        """
        pass

    def list_deployment_targets(self, deploymentId: str=None, nextToken: str=None, targetFilters: TargetFilters=None) -> ListDeploymentTargetsOutput:
        r""" Returns an array of target IDs that are associated a deployment. 

        :param self:
        :param targetFilters:   A key used to filter the returned targets. The two valid values are: <ul> <li>  <code>TargetStatus</code> - A <code>TargetStatus</code> filter string can be <code>Failed</code>, <code>InProgress</code>, <code>Pending</code>, <code>Ready</code>, <code>Skipped</code>, <code>Succeeded</code>, or <code>Unknown</code>.  </li> <li>  <code>ServerInstanceLabel</code> - A <code>ServerInstanceLabel</code> filter string can be <code>Blue</code> or <code>Green</code>.  </li> </ul><br/>nextToken:   A token identifier returned from the previous <code>ListDeploymentTargets</code> call. It can be used to return the next set of deployment targets in the list. <br/>deploymentId:   The unique ID of a deployment. <br/>
        :return: nextToken:   If a large amount of information is returned, a token identifier is also returned. It can be used in a subsequent <code>ListDeploymentTargets</code> call to return the next set of deployment targets in the list. <br/>targetIds:   The unique IDs of deployment targets. <br/>        """
        pass

    def list_deployments(self, applicationName: str=None, deploymentGroupName: str=None, externalId: str=None, includeOnlyStatuses: List[DeploymentStatus]=None, createTimeRange: TimeRange=None, nextToken: str=None) -> ListDeploymentsOutput:
        r"""Lists the deployments in a deployment group for an application registered with the IAM user or AWS account.

        :param self:
        :param nextToken:  An identifier returned from the previous list deployments call. It can be used to return the next set of deployments in the list.<br/>createTimeRange:  A time range (start and end) for returning a subset of the list of deployments.:<br/>includeOnlyStatuses:  A subset of deployments to list by status: <ul> <li>  <code>Created</code>: Include created deployments in the resulting list. </li> <li>  <code>Queued</code>: Include queued deployments in the resulting list. </li> <li>  <code>In Progress</code>: Include in-progress deployments in the resulting list. </li> <li>  <code>Succeeded</code>: Include successful deployments in the resulting list. </li> <li>  <code>Failed</code>: Include failed deployments in the resulting list. </li> <li>  <code>Stopped</code>: Include stopped deployments in the resulting list. </li> </ul><br/>externalId:  The unique ID of an external resource for returning deployments linked to the external resource.<br/>deploymentGroupName:  The name of a deployment group for the specified application. <note> If <code>deploymentGroupName</code> is specified, then <code>applicationName</code> must be specified. If it is not specified, then <code>applicationName</code> must not be specified.  </note><br/>applicationName:  The name of an AWS CodeDeploy application associated with the IAM user or AWS account. <note> If <code>applicationName</code> is specified, then <code>deploymentGroupName</code> must be specified. If it is not specified, then <code>deploymentGroupName</code> must not be specified.  </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>end</i> The end time of the time range. <note> Specify null to leave the end time open-ended. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>start</i> The start time of the time range. <note> Specify null to leave the start time open-ended. </note><br/>
        :return: nextToken:  If a large amount of information is returned, an identifier is also returned. It can be used in a subsequent list deployments call to return the next set of deployments in the list.<br/>deployments:  A list of deployment IDs.<br/>        """
        pass

    def list_git_hub_account_token_names(self, nextToken: str=None) -> ListGitHubAccountTokenNamesOutput:
        r"""Lists the names of stored connections to GitHub accounts.

        :param self:
        :param nextToken:  An identifier returned from the previous <code>ListGitHubAccountTokenNames</code> call. It can be used to return the next set of names in the list. <br/>
        :return: nextToken:  If a large amount of information is returned, an identifier is also returned. It can be used in a subsequent <code>ListGitHubAccountTokenNames</code> call to return the next set of names in the list. <br/>tokenNameList:  A list of names of connections to GitHub accounts.<br/>        """
        pass

    def list_on_premises_instances(self, registrationStatus: str=None, tagFilters: List[TagFilter]=None, nextToken: str=None) -> ListOnPremisesInstancesOutput:
        r"""Gets a list of names for one or more on-premises instances. Unless otherwise specified, both registered and deregistered on-premises instance names are listed. To list only registered or deregistered on-premises instance names, use the registration status parameter.

        :param self:
        :param nextToken:  An identifier returned from the previous list on-premises instances call. It can be used to return the next set of on-premises instances in the list.<br/>tagFilters:  The on-premises instance tags that are used to restrict the on-premises instance names returned.<br/>registrationStatus:  The registration status of the on-premises instances: <ul> <li>  <code>Deregistered</code>: Include deregistered on-premises instances in the resulting list. </li> <li>  <code>Registered</code>: Include registered on-premises instances in the resulting list. </li> </ul><br/>
        :return: nextToken:  If a large amount of information is returned, an identifier is also returned. It can be used in a subsequent list on-premises instances call to return the next set of on-premises instances in the list.<br/>instanceNames:  The list of matching on-premises instance names.<br/>        """
        pass

    def list_tags_for_resource(self, ResourceArn: str, NextToken: str=None) -> ListTagsForResourceOutput:
        r""" Returns a list of tags for the resource identified by a specified Amazon Resource Name (ARN). Tags are used to organize and categorize your CodeDeploy resources. 

        :param self:
        :param NextToken:  An identifier returned from the previous <code>ListTagsForResource</code> call. It can be used to return the next set of applications in the list.<br/>ResourceArn:   The ARN of a CodeDeploy resource. <code>ListTagsForResource</code> returns all the tags associated with the resource that is identified by the <code>ResourceArn</code>. <br/>
        :return: NextToken:  If a large amount of information is returned, an identifier is also returned. It can be used in a subsequent list application revisions call to return the next set of application revisions in the list.<br/>Tags:   A list of tags returned by <code>ListTagsForResource</code>. The tags are associated with the resource identified by the input <code>ResourceArn</code> parameter. <br/>        """
        pass

    def put_lifecycle_event_hook_execution_status(self, deploymentId: str=None, lifecycleEventHookExecutionId: str=None, status: str=None) -> PutLifecycleEventHookExecutionStatusOutput:
        r""" Sets the result of a Lambda validation function. The function validates lifecycle hooks during a deployment that uses the AWS Lambda or Amazon ECS compute platform. For AWS Lambda deployments, the available lifecycle hooks are <code>BeforeAllowTraffic</code> and <code>AfterAllowTraffic</code>. For Amazon ECS deployments, the available lifecycle hooks are <code>BeforeInstall</code>, <code>AfterInstall</code>, <code>AfterAllowTestTraffic</code>, <code>BeforeAllowTraffic</code>, and <code>AfterAllowTraffic</code>. Lambda validation functions return <code>Succeeded</code> or <code>Failed</code>. For more information, see <a href="https://docs.aws.amazon.com/codedeploy/latest/userguide/reference-appspec-file-structure-hooks.html#appspec-hooks-lambda">AppSpec 'hooks' Section for an AWS Lambda Deployment </a> and <a href="https://docs.aws.amazon.com/codedeploy/latest/userguide/reference-appspec-file-structure-hooks.html#appspec-hooks-ecs">AppSpec 'hooks' Section for an Amazon ECS Deployment</a>.

        :param self:
        :param status:  The result of a Lambda function that validates a deployment lifecycle event. <code>Succeeded</code> and <code>Failed</code> are the only valid values for <code>status</code>.<br/>lifecycleEventHookExecutionId:   The execution ID of a deployment's lifecycle hook. A deployment lifecycle hook is specified in the <code>hooks</code> section of the AppSpec file. <br/>deploymentId:   The unique ID of a deployment. Pass this ID to a Lambda function that validates a deployment lifecycle event. <br/>
        :return: lifecycleEventHookExecutionId:  The execution ID of the lifecycle event hook. A hook is specified in the <code>hooks</code> section of the deployment's AppSpec file.<br/>        """
        pass

    def register_application_revision(self, revision: RevisionLocation, applicationName: str, description: str=None):
        r"""Registers with AWS CodeDeploy a revision for the specified application.

        :param self:
        :param revision:  Information about the application revision to register, including type and location.:<br/>description:  A comment about the revision.<br/>applicationName:  The name of an AWS CodeDeploy application associated with the IAM user or AWS account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>appSpecContent</i>  The content of an AppSpec file for an AWS Lambda or Amazon ECS deployment. The content is formatted as JSON or YAML and stored as a RawString. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>appSpecContent</b>:  The content of an AppSpec file for an AWS Lambda or Amazon ECS deployment. The content is formatted as JSON or YAML and stored as a RawString. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>string</i> Information about the location of an AWS Lambda deployment revision stored as a RawString.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>string</b>: Information about the location of an AWS Lambda deployment revision stored as a RawString.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>gitHubLocation</i> Information about the location of application artifacts stored in GitHub.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>gitHubLocation</b>: Information about the location of application artifacts stored in GitHub.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>s3Location</i> Information about the location of a revision stored in Amazon S3. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>s3Location</b>: Information about the location of a revision stored in Amazon S3. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>revisionType</i> The type of application revision: <ul> <li> S3: An application revision stored in Amazon S3. </li> <li> GitHub: An application revision stored in GitHub (EC2/On-premises deployments only). </li> <li> String: A YAML-formatted or JSON-formatted string (AWS Lambda deployments only). </li> <li> AppSpecContent: An <code>AppSpecContent</code> object that contains the contents of an AppSpec file for an AWS Lambda or Amazon ECS deployment. The content is formatted as JSON or YAML stored as a RawString. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>eTag</i> The ETag of the Amazon S3 object that represents the bundled artifacts for the application revision. If the ETag is not specified as an input parameter, ETag validation of the object is skipped.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> A specific version of the Amazon S3 object that represents the bundled artifacts for the application revision. If the version is not specified, the system uses the most recent version by default.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>bundleType</i> The file type of the application revision. Must be one of the following: <ul> <li>  <code>tar</code>: A tar archive file. </li> <li>  <code>tgz</code>: A compressed tar archive file. </li> <li>  <code>zip</code>: A zip archive file. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>key</i> The name of the Amazon S3 object that represents the bundled artifacts for the application revision.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>bucket</i> The name of the Amazon S3 bucket where the application revision is stored.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>commitId</i> The SHA1 commit ID of the GitHub commit that represents the bundled artifacts for the application revision.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>repository</i> The GitHub account and repository pair that stores a reference to the commit that represents the bundled artifacts for the application revision.  Specified as account/repository.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>sha256</i> The SHA256 hash value of the revision content.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>content</i> The YAML-formatted or JSON-formatted revision string. It includes information about which Lambda function to update and optional Lambda functions that validate deployment lifecycle events.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>sha256</i>  The SHA256 hash value of the revision content. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>content</i>  The YAML-formatted or JSON-formatted revision string.   For an AWS Lambda deployment, the content includes a Lambda function name, the alias for its original version, and the alias for its replacement version. The deployment shifts traffic from the original version of the Lambda function to the replacement version.   For an Amazon ECS deployment, the content includes the task name, information about the load balancer that serves traffic to the container, and more.   For both types of deployments, the content can specify Lambda functions that run at specified hooks, such as <code>BeforeInstall</code>, during a deployment. <br/>
        :return:         """
        pass

    def register_on_premises_instance(self, instanceName: str, iamSessionArn: str=None, iamUserArn: str=None):
        r"""Registers an on-premises instance. <note> Only one IAM ARN (an IAM session ARN or IAM user ARN) is supported in the request. You cannot use both. </note>

        :param self:
        :param iamUserArn:  The ARN of the IAM user to associate with the on-premises instance.<br/>iamSessionArn:  The ARN of the IAM session to associate with the on-premises instance.<br/>instanceName:  The name of the on-premises instance to register.<br/>
        :return:         """
        pass

    def remove_tags_from_on_premises_instances(self, instanceNames: List[InstanceName], tags: List[Tag]):
        r"""Removes one or more tags from one or more on-premises instances.

        :param self:
        :param instanceNames:  The names of the on-premises instances from which to remove tags.<br/>tags:  The tag key-value pairs to remove from the on-premises instances.<br/>
        :return:         """
        pass

    def skip_wait_time_for_instance_termination(self, deploymentId: str=None):
        r"""In a blue/green deployment, overrides any specified wait time and starts terminating instances immediately after the traffic routing is complete.

        :param self:
        :param deploymentId:   The unique ID of a blue/green deployment for which you want to skip the instance termination wait time. <br/>
        :return:         """
        pass

    def stop_deployment(self, deploymentId: str, autoRollbackEnabled: NullableBoolean=None) -> StopDeploymentOutput:
        r"""Attempts to stop an ongoing deployment.

        :param self:
        :param autoRollbackEnabled:   Indicates, when a deployment is stopped, whether instances that have been updated should be rolled back to the previous version of the application revision. <br/>deploymentId:   The unique ID of a deployment. <br/>
        :return: statusMessage:  An accompanying status message.<br/>status:  The status of the stop deployment operation: <ul> <li> Pending: The stop operation is pending. </li> <li> Succeeded: The stop operation was successful. </li> </ul><br/>        """
        pass

    def tag_resource(self, Tags: List[Tag], ResourceArn: str) -> TagResourceOutput:
        r""" Associates the list of tags in the input <code>Tags</code> parameter with the resource identified by the <code>ResourceArn</code> input parameter. 

        :param self:
        :param Tags:   A list of tags that <code>TagResource</code> associates with a resource. The resource is identified by the <code>ResourceArn</code> input parameter. <br/>ResourceArn:   The ARN of a resource, such as a CodeDeploy application or deployment group. <br/>
        :return:         """
        pass

    def untag_resource(self, TagKeys: List[Key], ResourceArn: str) -> UntagResourceOutput:
        r""" Disassociates a resource from a list of tags. The resource is identified by the <code>ResourceArn</code> input parameter. The tags are identified by the list of keys in the <code>TagKeys</code> input parameter. 

        :param self:
        :param TagKeys:   A list of keys of <code>Tag</code> objects. The <code>Tag</code> objects identified by the keys are disassociated from the resource specified by the <code>ResourceArn</code> input parameter. <br/>ResourceArn:   The Amazon Resource Name (ARN) that specifies from which resource to disassociate the tags with the keys in the <code>TagKeys</code> input parameter. <br/>
        :return:         """
        pass

    def update_application(self, applicationName: str=None, newApplicationName: str=None):
        r"""Changes the name of an application.

        :param self:
        :param newApplicationName:  The new name to give the application.<br/>applicationName:  The current name of the application you want to change.<br/>
        :return:         """
        pass

    def update_deployment_group(self, currentDeploymentGroupName: str, applicationName: str, newDeploymentGroupName: str=None, deploymentConfigName: str=None, ec2TagFilters: List[EC2TagFilter]=None, onPremisesInstanceTagFilters: List[TagFilter]=None, autoScalingGroups: List[AutoScalingGroupName]=None, serviceRoleArn: str=None, triggerConfigurations: List[TriggerConfig]=None, alarmConfiguration: AlarmConfiguration=None, autoRollbackConfiguration: AutoRollbackConfiguration=None, outdatedInstancesStrategy: str=None, deploymentStyle: DeploymentStyle=None, blueGreenDeploymentConfiguration: BlueGreenDeploymentConfiguration=None, loadBalancerInfo: LoadBalancerInfo=None, ec2TagSet: EC2TagSet=None, ecsServices: List[ECSService]=None, onPremisesTagSet: OnPremisesTagSet=None) -> UpdateDeploymentGroupOutput:
        r"""Changes information about a deployment group.

        :param self:
        :param onPremisesTagSet:  Information about an on-premises instance tag set. The deployment group includes only on-premises instances identified by all the tag groups.:<br/>ecsServices:   The target Amazon ECS services in the deployment group. This applies only to deployment groups that use the Amazon ECS compute platform. A target Amazon ECS service is specified as an Amazon ECS cluster and service name pair using the format <code>&lt;clustername&gt;:&lt;servicename&gt;</code>. <br/>ec2TagSet:  Information about groups of tags applied to on-premises instances. The deployment group includes only EC2 instances identified by all the tag groups.:<br/>loadBalancerInfo:  Information about the load balancer used in a deployment.:<br/>blueGreenDeploymentConfiguration:  Information about blue/green deployment options for a deployment group.:<br/>deploymentStyle:  Information about the type of deployment, either in-place or blue/green, you want to run and whether to route deployment traffic behind a load balancer.:<br/>outdatedInstancesStrategy:  Indicates what happens when new EC2 instances are launched mid-deployment and do not receive the deployed application revision. If this option is set to <code>UPDATE</code> or is unspecified, CodeDeploy initiates one or more 'auto-update outdated instances' deployments to apply the deployed application revision to the new EC2 instances. If this option is set to <code>IGNORE</code>, CodeDeploy does not initiate a deployment to update the new EC2 instances. This may result in instances having different revisions.<br/>autoRollbackConfiguration:  Information for an automatic rollback configuration that is added or changed when a deployment group is updated.:<br/>alarmConfiguration:  Information to add or change about Amazon CloudWatch alarms when the deployment group is updated.:<br/>triggerConfigurations:  Information about triggers to change when the deployment group is updated. For examples, see <a href="https://docs.aws.amazon.com/codedeploy/latest/userguide/how-to-notify-edit.html">Edit a Trigger in a CodeDeploy Deployment Group</a> in the <i>AWS CodeDeploy User Guide</i>.<br/>serviceRoleArn:  A replacement ARN for the service role, if you want to change it.<br/>autoScalingGroups:  The replacement list of Auto Scaling groups to be included in the deployment group, if you want to change them. To keep the Auto Scaling groups, enter their names. To remove Auto Scaling groups, do not enter any Auto Scaling group names.<br/>onPremisesInstanceTagFilters:  The replacement set of on-premises instance tags on which to filter, if you want to change them. To keep the existing tags, enter their names. To remove tags, do not enter any tag names.<br/>ec2TagFilters:  The replacement set of Amazon EC2 tags on which to filter, if you want to change them. To keep the existing tags, enter their names. To remove tags, do not enter any tag names.<br/>deploymentConfigName:  The replacement deployment configuration name to use, if you want to change it.<br/>newDeploymentGroupName:  The new name of the deployment group, if you want to change it.<br/>currentDeploymentGroupName:  The current name of the deployment group.<br/>applicationName:  The application name that corresponds to the deployment group to update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>alarms</i> A list of alarms configured for the deployment group. A maximum of 10 alarms can be added to a deployment group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ignorePollAlarmFailure</i> Indicates whether a deployment should continue if information about the current state of alarms cannot be retrieved from Amazon CloudWatch. The default value is false. <ul> <li>  <code>true</code>: The deployment proceeds even if alarm status information can't be retrieved from Amazon CloudWatch. </li> <li>  <code>false</code>: The deployment stops if alarm status information can't be retrieved from Amazon CloudWatch. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>enabled</i> Indicates whether the alarm configuration is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>events</i> The event type or types that trigger a rollback.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>enabled</i> Indicates whether a defined automatic rollback configuration is currently enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deploymentOption</i> Indicates whether to route deployment traffic behind a load balancer.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deploymentType</i> Indicates whether to run an in-place deployment or a blue/green deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>greenFleetProvisioningOption</i> Information about how instances are provisioned for a replacement environment in a blue/green deployment.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>greenFleetProvisioningOption</b>: Information about how instances are provisioned for a replacement environment in a blue/green deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deploymentReadyOption</i> Information about the action to take when newly provisioned instances are ready to receive traffic in a blue/green deployment.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>deploymentReadyOption</b>: Information about the action to take when newly provisioned instances are ready to receive traffic in a blue/green deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>terminateBlueInstancesOnDeploymentSuccess</i> Information about whether to terminate instances in the original fleet during a blue/green deployment.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>terminateBlueInstancesOnDeploymentSuccess</b>: Information about whether to terminate instances in the original fleet during a blue/green deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>terminationWaitTimeInMinutes</i> For an Amazon EC2 deployment, the number of minutes to wait after a successful blue/green deployment before terminating instances from the original environment.  For an Amazon ECS deployment, the number of minutes before deleting the original (blue) task set. During an Amazon ECS deployment, CodeDeploy shifts traffic from the original (blue) task set to a replacement (green) task set.   The maximum setting is 2880 minutes (2 days). <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>action</i> The action to take on instances in the original environment after a successful blue/green deployment. <ul> <li>  <code>TERMINATE</code>: Instances are terminated after a specified wait time. </li> <li>  <code>KEEP_ALIVE</code>: Instances are left running after they are deregistered from the load balancer and removed from the deployment group. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>waitTimeInMinutes</i> The number of minutes to wait before the status of a blue/green deployment is changed to Stopped if rerouting is not started manually. Applies only to the <code>STOP_DEPLOYMENT</code> option for <code>actionOnTimeout</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>actionOnTimeout</i> Information about when to reroute traffic from an original environment to a replacement environment in a blue/green deployment. <ul> <li> CONTINUE_DEPLOYMENT: Register new instances with the load balancer immediately after the new application revision is installed on the instances in the replacement environment. </li> <li> STOP_DEPLOYMENT: Do not register new instances with a load balancer unless traffic rerouting is started using <a>ContinueDeployment</a>. If traffic rerouting is not started before the end of the specified wait period, the deployment status is changed to Stopped. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>action</i> The method used to add instances to a replacement environment. <ul> <li>  <code>DISCOVER_EXISTING</code>: Use instances that already exist or will be created manually. </li> <li>  <code>COPY_AUTO_SCALING_GROUP</code>: Use settings from a specified Auto Scaling group to define and create instances in a new Auto Scaling group. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>targetGroupPairInfoList</i>  The target group pair information. This is an array of <code>TargeGroupPairInfo</code> objects with a maximum size of one. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>targetGroupInfoList</i> An array that contains information about the target group to use for load balancing in a deployment. In Elastic Load Balancing, target groups are used with Application Load Balancers. <note>  Adding more than one target group to the array is not supported.  </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>elbInfoList</i> An array that contains information about the load balancer to use for load balancing in a deployment. In Elastic Load Balancing, load balancers are used with Classic Load Balancers. <note>  Adding more than one load balancer to the array is not supported.  </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ec2TagSetList</i> A list that contains other lists of EC2 instance tag groups. For an instance to be included in the deployment group, it must be identified by all of the tag groups in the list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>onPremisesTagSetList</i> A list that contains other lists of on-premises instance tag groups. For an instance to be included in the deployment group, it must be identified by all of the tag groups in the list.<br/>
        :return: hooksNotCleanedUp:  If the output contains no data, and the corresponding deployment group contained at least one Auto Scaling group, AWS CodeDeploy successfully removed all corresponding Auto Scaling lifecycle event hooks from the AWS account. If the output contains data, AWS CodeDeploy could not remove some Auto Scaling lifecycle event hooks from the AWS account.<br/>        """
        pass





class CodeGuruReviewer(BaseClient):
    r"""This section provides documentation for the Amazon CodeGuru Reviewer API operations. CodeGuru Reviewer is a service that uses program analysis and machine learning to detect potential defects that are difficult for developers to find and recommends fixes in your Java and Python code. By proactively detecting and providing recommendations for addressing code defects and implementing best practices, CodeGuru Reviewer improves the overall quality and maintainability of your code base during the code review stage. For more information about CodeGuru Reviewer, see the <i> <a href="https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/welcome.html">Amazon CodeGuru Reviewer User Guide</a>.</i>   To improve the security of your CodeGuru Reviewer API calls, you can establish a private connection between your VPC and CodeGuru Reviewer by creating an <i>interface VPC endpoint</i>. For more information, see <a href="https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/vpc-interface-endpoints.html">CodeGuru Reviewer and interface VPC endpoints (AWS PrivateLink)</a> in the <i>Amazon CodeGuru Reviewer User Guide</i>. """

    class CodeReviewCompletedWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_code_review` for valid parameters"""
            pass
    class RepositoryAssociationSucceededWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_repository_association` for valid parameters"""
            pass


    class ListRepositoryAssociationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_repository_associations` for valid parameters"""
            pass


    class AssociateRepositoryRequest(Mapping):
        pass
    
    class AssociateRepositoryResponse(Mapping):
        pass
    
    class Repository(Mapping):
        pass
    
    class TagMap(object):
        pass
    
    class KMSKeyDetails(Mapping):
        pass
    
    class CreateCodeReviewRequest(Mapping):
        pass
    
    class CreateCodeReviewResponse(Mapping):
        pass
    
    class CodeReviewType(Mapping):
        pass
    
    class DescribeCodeReviewRequest(Mapping):
        pass
    
    class DescribeCodeReviewResponse(Mapping):
        pass
    
    class DescribeRecommendationFeedbackRequest(Mapping):
        pass
    
    class DescribeRecommendationFeedbackResponse(Mapping):
        pass
    
    class DescribeRepositoryAssociationRequest(Mapping):
        pass
    
    class DescribeRepositoryAssociationResponse(Mapping):
        pass
    
    class DisassociateRepositoryRequest(Mapping):
        pass
    
    class DisassociateRepositoryResponse(Mapping):
        pass
    
    class ListCodeReviewsRequest(Mapping):
        pass
    
    class ListCodeReviewsResponse(Mapping):
        pass
    
    class ProviderType(object):
        pass
    
    class JobState(object):
        pass
    
    class Name(object):
        pass
    
    class ListRecommendationFeedbackRequest(Mapping):
        pass
    
    class ListRecommendationFeedbackResponse(Mapping):
        pass
    
    class UserId(object):
        pass
    
    class RecommendationId(object):
        pass
    
    class ListRecommendationsRequest(Mapping):
        pass
    
    class ListRecommendationsResponse(Mapping):
        pass
    
    class ListRepositoryAssociationsRequest(Mapping):
        pass
    
    class ListRepositoryAssociationsResponse(Mapping):
        pass
    
    class RepositoryAssociationState(object):
        pass
    
    class Owner(object):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class PutRecommendationFeedbackRequest(Mapping):
        pass
    
    class PutRecommendationFeedbackResponse(Mapping):
        pass
    
    class Reaction(object):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    def associate_repository(self, Repository: Repository, ClientRequestToken: str=None, Tags: TagMap=None, KMSKeyDetails: KMSKeyDetails=None) -> AssociateRepositoryResponse:
        r""" Use to associate an AWS CodeCommit repository or a repostory managed by AWS CodeStar Connections with Amazon CodeGuru Reviewer. When you associate a repository, CodeGuru Reviewer reviews source code changes in the repository's pull requests and provides automatic recommendations. You can view recommendations using the CodeGuru Reviewer console. For more information, see <a href="https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/recommendations.html">Recommendations in Amazon CodeGuru Reviewer</a> in the <i>Amazon CodeGuru Reviewer User Guide.</i>  If you associate a CodeCommit or S3 repository, it must be in the same AWS Region and AWS account where its CodeGuru Reviewer code reviews are configured. Bitbucket and GitHub Enterprise Server repositories are managed by AWS CodeStar Connections to connect to CodeGuru Reviewer. For more information, see <a href="https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/getting-started-associate-repository.html">Associate a repository</a> in the <i>Amazon CodeGuru Reviewer User Guide.</i>  <note>  You cannot use the CodeGuru Reviewer SDK or the AWS CLI to associate a GitHub repository with Amazon CodeGuru Reviewer. To associate a GitHub repository, use the console. For more information, see <a href="https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/getting-started-with-guru.html">Getting started with CodeGuru Reviewer</a> in the <i>CodeGuru Reviewer User Guide.</i>  </note>

        :param self:
        :param KMSKeyDetails:  A <code>KMSKeyDetails</code> object that contains: <ul> <li> The encryption option for this repository association. It is either owned by AWS Key Management Service (KMS) (<code>AWS_OWNED_CMK</code>) or customer managed (<code>CUSTOMER_MANAGED_CMK</code>). </li> <li> The ID of the AWS KMS key that is associated with this respository association. </li> </ul>:<br/>Tags:   An array of key-value pairs used to tag an associated repository. A tag is a custom attribute label with two parts:  <ul> <li> A <i>tag key</i> (for example, <code>CostCenter</code>, <code>Environment</code>, <code>Project</code>, or <code>Secret</code>). Tag keys are case sensitive. </li> <li> An optional field known as a <i>tag value</i> (for example, <code>111122223333</code>, <code>Production</code>, or a team name). Omitting the tag value is the same as using an empty string. Like tag keys, tag values are case sensitive. </li> </ul><br/>ClientRequestToken:  Amazon CodeGuru Reviewer uses this value to prevent the accidental creation of duplicate repository associations if there are failures and retries. <br/>Repository:  The repository to associate.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Bucket</i>  Information about a repository in an S3 bucket. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3Bucket</b>:  Information about a repository in an S3 bucket. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GitHubEnterpriseServer</i>  Information about a GitHub Enterprise Server repository. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>GitHubEnterpriseServer</b>:  Information about a GitHub Enterprise Server repository. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Bitbucket</i>  Information about a Bitbucket repository. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Bitbucket</b>:  Information about a Bitbucket repository. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CodeCommit</i> Information about an AWS CodeCommit repository.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CodeCommit</b>: Information about an AWS CodeCommit repository.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the AWS CodeCommit repository. For more information, see <a href="https://docs.aws.amazon.com/codecommit/latest/APIReference/API_GetRepository.html#CodeCommit-GetRepository-request-repositoryName">repositoryName</a> in the <i>AWS CodeCommit API Reference</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Owner</i>  The owner of the repository. For a GitHub, GitHub Enterprise, or Bitbucket repository, this is the username for the account that owns the repository. For an S3 repository, this can be the username or AWS account ID. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ConnectionArn</i>  The Amazon Resource Name (ARN) of an AWS CodeStar Connections connection. Its format is <code>arn:aws:codestar-connections:region-id:aws-account_id:connection/connection-id</code>. For more information, see <a href="https://docs.aws.amazon.com/codestar-connections/latest/APIReference/API_Connection.html"> <code>Connection</code> </a> in the <i>AWS CodeStar Connections API Reference</i>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i>  The name of the third party source repository. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Owner</i>  The owner of the repository. For a GitHub, GitHub Enterprise, or Bitbucket repository, this is the username for the account that owns the repository. For an S3 repository, this can be the username or AWS account ID. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ConnectionArn</i>  The Amazon Resource Name (ARN) of an AWS CodeStar Connections connection. Its format is <code>arn:aws:codestar-connections:region-id:aws-account_id:connection/connection-id</code>. For more information, see <a href="https://docs.aws.amazon.com/codestar-connections/latest/APIReference/API_Connection.html"> <code>Connection</code> </a> in the <i>AWS CodeStar Connections API Reference</i>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i>  The name of the third party source repository. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BucketName</i> The name of the S3 bucket used for associating a new S3 repository. It must begin with <code>codeguru-reviewer-</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i>  The name of the repository in the S3 bucket. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EncryptionOption</i> The encryption option for a repository association. It is either owned by AWS Key Management Service (KMS) (<code>AWS_OWNED_CMK</code>) or customer managed (<code>CUSTOMER_MANAGED_CMK</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KMSKeyId</i> The ID of the AWS KMS key that is associated with a respository association.<br/>
        :return: Tags:   An array of key-value pairs used to tag an associated repository. A tag is a custom attribute label with two parts:  <ul> <li> A <i>tag key</i> (for example, <code>CostCenter</code>, <code>Environment</code>, <code>Project</code>, or <code>Secret</code>). Tag keys are case sensitive. </li> <li> An optional field known as a <i>tag value</i> (for example, <code>111122223333</code>, <code>Production</code>, or a team name). Omitting the tag value is the same as using an empty string. Like tag keys, tag values are case sensitive. </li> </ul><br/>RepositoryAssociation:  Information about the repository association.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3RepositoryDetails</i>  Specifies the name of an S3 bucket and a <code>CodeArtifacts</code> object that contains the S3 object keys for a source code .zip file and for a build artifacts .zip file that contains .jar or .class files. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3RepositoryDetails</b>:  Specifies the name of an S3 bucket and a <code>CodeArtifacts</code> object that contains the S3 object keys for a source code .zip file and for a build artifacts .zip file that contains .jar or .class files. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KMSKeyDetails</i> A <code>KMSKeyDetails</code> object that contains: <ul> <li> The encryption option for this repository association. It is either owned by AWS Key Management Service (KMS) (<code>AWS_OWNED_CMK</code>) or customer managed (<code>CUSTOMER_MANAGED_CMK</code>). </li> <li> The ID of the AWS KMS key that is associated with this respository association. </li> </ul>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>KMSKeyDetails</b>: A <code>KMSKeyDetails</code> object that contains: <ul> <li> The encryption option for this repository association. It is either owned by AWS Key Management Service (KMS) (<code>AWS_OWNED_CMK</code>) or customer managed (<code>CUSTOMER_MANAGED_CMK</code>). </li> <li> The ID of the AWS KMS key that is associated with this respository association. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTimeStamp</i> The time, in milliseconds since the epoch, when the repository association was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdatedTimeStamp</i> The time, in milliseconds since the epoch, when the repository association was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StateReason</i> A description of why the repository association is in the current state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the repository association. The valid repository association states are: <ul> <li>  <b>Associated</b>: The repository association is complete.  </li> <li>  <b>Associating</b>: CodeGuru Reviewer is:  <ul> <li>  Setting up pull request notifications. This is required for pull requests to trigger a CodeGuru Reviewer review.  <note>  If your repository <code>ProviderType</code> is <code>GitHub</code>, <code>GitHub Enterprise Server</code>, or <code>Bitbucket</code>, CodeGuru Reviewer creates webhooks in your repository to trigger CodeGuru Reviewer reviews. If you delete these webhooks, reviews of code in your repository cannot be triggered.  </note> </li> <li>  Setting up source code access. This is required for CodeGuru Reviewer to securely clone code in your repository.  </li> </ul> </li> <li>  <b>Failed</b>: The repository failed to associate or disassociate.  </li> <li>  <b>Disassociating</b>: CodeGuru Reviewer is removing the repository's pull request notifications and source code access.  </li> <li>  <b>Disassociated</b>: CodeGuru Reviewer successfully disassociated the repository. You can create a new association with this repository if you want to review source code in it later. You can control access to code reviews created in an associated repository with tags after it has been disassociated. For more information, see <a href="https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/auth-and-access-control-using-tags.html">Using tags to control access to associated repositories</a> in the <i>Amazon CodeGuru Reviewer User Guide</i>.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProviderType</i> The provider type of the repository association.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Owner</i> The owner of the repository. For an AWS CodeCommit repository, this is the AWS account ID of the account that owns the repository. For a GitHub, GitHub Enterprise Server, or Bitbucket repository, this is the username for the account that owns the repository. For an S3 repository, it can be the username or AWS account ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the repository.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConnectionArn</i>  The Amazon Resource Name (ARN) of an AWS CodeStar Connections connection. Its format is <code>arn:aws:codestar-connections:region-id:aws-account_id:connection/connection-id</code>. For more information, see <a href="https://docs.aws.amazon.com/codestar-connections/latest/APIReference/API_Connection.html"> <code>Connection</code> </a> in the <i>AWS CodeStar Connections API Reference</i>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociationArn</i> The Amazon Resource Name (ARN) identifying the repository association.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociationId</i> The ID of the repository association.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EncryptionOption</i> The encryption option for a repository association. It is either owned by AWS Key Management Service (KMS) (<code>AWS_OWNED_CMK</code>) or customer managed (<code>CUSTOMER_MANAGED_CMK</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KMSKeyId</i> The ID of the AWS KMS key that is associated with a respository association.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BucketName</i> The name of the S3 bucket used for associating a new S3 repository. It must begin with <code>codeguru-reviewer-</code>. <br/> A <code>CodeArtifacts</code> object. The <code>CodeArtifacts</code> object includes the S3 object key for a source code .zip file and for a build artifacts .zip file that contains .jar or .class files. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CodeArtifacts</b>:  A <code>CodeArtifacts</code> object. The <code>CodeArtifacts</code> object includes the S3 object key for a source code .zip file and for a build artifacts .zip file that contains .jar or .class files.         """
        pass

    def create_code_review(self, Type: CodeReviewType, RepositoryAssociationArn: str, Name: str, ClientRequestToken: str=None) -> CreateCodeReviewResponse:
        r""" Use to create a code review with a <a href="https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_CodeReviewType.html"> <code>CodeReviewType</code> </a> of <code>RepositoryAnalysis</code>. This type of code review analyzes all code under a specified branch in an associated repository. <code>PullRequest</code> code reviews are automatically triggered by a pull request. 

        :param self:
        :param ClientRequestToken:   Amazon CodeGuru Reviewer uses this value to prevent the accidental creation of duplicate code reviews if there are failures and retries. <br/>Type:   The type of code review to create. This is specified using a <a href="https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_CodeReviewType.html"> <code>CodeReviewType</code> </a> object. You can create a code review only of type <code>RepositoryAnalysis</code>. :<br/>RepositoryAssociationArn:   The Amazon Resource Name (ARN) of the <a href="https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_RepositoryAssociation.html"> <code>RepositoryAssociation</code> </a> object. You can retrieve this ARN by calling <a href="https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_ListRepositoryAssociations.html"> <code>ListRepositoryAssociations</code> </a>.   A code review can only be created on an associated repository. This is the ARN of the associated repository. <br/>Name:   The name of the code review. The name of each code review in your AWS account must be unique. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AnalysisTypes</i> They types of analysis performed during a repository analysis or a pull request review. You can specify either <code>Security</code>, <code>CodeQuality</code>, or both.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RepositoryAnalysis</i>  A code review that analyzes all code under a specified branch in an associated repository. The associated repository is specified using its ARN in <a href="https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_CreateCodeReview"> <code>CreateCodeReview</code> </a>. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RepositoryAnalysis</b>:  A code review that analyzes all code under a specified branch in an associated repository. The associated repository is specified using its ARN in <a href="https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_CreateCodeReview"> <code>CreateCodeReview</code> </a>. <br/> A <a href="https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_SourceCodeType"> <code>SourceCodeType</code> </a> that specifies the tip of a branch in an associated repository. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RepositoryHead</b>:  A <a href="https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_SourceCodeType"> <code>SourceCodeType</code> </a> that specifies the tip of a branch in an associated repository. 
        :return: CodeReview:   Information about a code review. A code review belongs to the associated repository that contains the reviewed code. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AnalysisTypes</i> They types of analysis performed during a repository analysis or a pull request review. You can specify either <code>Security</code>, <code>CodeQuality</code>, or both.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Metrics</i>  The statistics from the code review. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Metrics</b>:  The statistics from the code review. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociationArn</i>  The Amazon Resource Name (ARN) of the <a href="https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_RepositoryAssociation.html"> <code>RepositoryAssociation</code> </a> that contains the reviewed source code. You can retrieve associated repository ARNs by calling <a href="https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_ListRepositoryAssociations.html"> <code>ListRepositoryAssociations</code> </a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceCodeType</i>  The type of the source code for the code review. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SourceCodeType</b>:  The type of the source code for the code review. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PullRequestId</i>  The pull request ID for the code review. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i>  The type of code review. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdatedTimeStamp</i>  The time, in milliseconds since the epoch, when the code review was last updated. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTimeStamp</i>  The time, in milliseconds since the epoch, when the code review was created. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StateReason</i>  The reason for the state of the code review. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The valid code review states are: <ul> <li>  <code>Completed</code>: The code review is complete.  </li> <li>  <code>Pending</code>: The code review started and has not completed or failed.  </li> <li>  <code>Failed</code>: The code review failed.  </li> <li>  <code>Deleting</code>: The code review is being deleted.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProviderType</i>  The type of repository that contains the reviewed code (for example, GitHub or Bitbucket). <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Owner</i> The owner of the repository. For an AWS CodeCommit repository, this is the AWS account ID of the account that owns the repository. For a GitHub, GitHub Enterprise Server, or Bitbucket repository, this is the username for the account that owns the repository. For an S3 repository, it can be the username or AWS account ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RepositoryName</i>  The name of the repository. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CodeReviewArn</i> The Amazon Resource Name (ARN) of the <a href="https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_CodeReview.html"> <code>CodeReview</code> </a> object. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i>  The name of the code review. <br/> A <a href="https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_SourceCodeType"> <code>SourceCodeType</code> </a> that specifies a commit diff created by a pull request on an associated repository. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CommitDiff</b>:  A <a href="https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_SourceCodeType"> <code>SourceCodeType</code> </a> that specifies a commit diff created by a pull request on an associated repository. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FindingsCount</i>  Total number of recommendations found in the code review. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MeteredLinesOfCodeCount</i>  Lines of code metered in the code review. For the initial code review pull request and all subsequent revisions, this includes all lines of code in the files added to the pull request. In subsequent revisions, for files that already existed in the pull request, this includes only the changed lines of code. In both cases, this does not include non-code lines such as comments and import statements. For example, if you submit a pull request containing 5 files, each with 500 lines of code, and in a subsequent revision you added a new file with 200 lines of code, and also modified a total of 25 lines across the initial 5 files, <code>MeteredLinesOfCodeCount</code> includes the first 5 files (5 * 500 = 2,500 lines), the new file (200 lines) and the 25 changed lines of code for a total of 2,725 lines of code. <br/>        """
        pass

    def describe_code_review(self, CodeReviewArn: str) -> DescribeCodeReviewResponse:
        r""" Returns the metadata associated with the code review along with its status.

        :param self:
        :param CodeReviewArn:  The Amazon Resource Name (ARN) of the <a href="https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_CodeReview.html"> <code>CodeReview</code> </a> object. <br/>
        :return: CodeReview:   Information about the code review. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AnalysisTypes</i> They types of analysis performed during a repository analysis or a pull request review. You can specify either <code>Security</code>, <code>CodeQuality</code>, or both.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Metrics</i>  The statistics from the code review. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Metrics</b>:  The statistics from the code review. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociationArn</i>  The Amazon Resource Name (ARN) of the <a href="https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_RepositoryAssociation.html"> <code>RepositoryAssociation</code> </a> that contains the reviewed source code. You can retrieve associated repository ARNs by calling <a href="https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_ListRepositoryAssociations.html"> <code>ListRepositoryAssociations</code> </a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceCodeType</i>  The type of the source code for the code review. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SourceCodeType</b>:  The type of the source code for the code review. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PullRequestId</i>  The pull request ID for the code review. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i>  The type of code review. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdatedTimeStamp</i>  The time, in milliseconds since the epoch, when the code review was last updated. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTimeStamp</i>  The time, in milliseconds since the epoch, when the code review was created. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StateReason</i>  The reason for the state of the code review. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The valid code review states are: <ul> <li>  <code>Completed</code>: The code review is complete.  </li> <li>  <code>Pending</code>: The code review started and has not completed or failed.  </li> <li>  <code>Failed</code>: The code review failed.  </li> <li>  <code>Deleting</code>: The code review is being deleted.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProviderType</i>  The type of repository that contains the reviewed code (for example, GitHub or Bitbucket). <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Owner</i> The owner of the repository. For an AWS CodeCommit repository, this is the AWS account ID of the account that owns the repository. For a GitHub, GitHub Enterprise Server, or Bitbucket repository, this is the username for the account that owns the repository. For an S3 repository, it can be the username or AWS account ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RepositoryName</i>  The name of the repository. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CodeReviewArn</i> The Amazon Resource Name (ARN) of the <a href="https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_CodeReview.html"> <code>CodeReview</code> </a> object. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i>  The name of the code review. <br/> A <a href="https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_SourceCodeType"> <code>SourceCodeType</code> </a> that specifies a commit diff created by a pull request on an associated repository. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CommitDiff</b>:  A <a href="https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_SourceCodeType"> <code>SourceCodeType</code> </a> that specifies a commit diff created by a pull request on an associated repository. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FindingsCount</i>  Total number of recommendations found in the code review. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MeteredLinesOfCodeCount</i>  Lines of code metered in the code review. For the initial code review pull request and all subsequent revisions, this includes all lines of code in the files added to the pull request. In subsequent revisions, for files that already existed in the pull request, this includes only the changed lines of code. In both cases, this does not include non-code lines such as comments and import statements. For example, if you submit a pull request containing 5 files, each with 500 lines of code, and in a subsequent revision you added a new file with 200 lines of code, and also modified a total of 25 lines across the initial 5 files, <code>MeteredLinesOfCodeCount</code> includes the first 5 files (5 * 500 = 2,500 lines), the new file (200 lines) and the 25 changed lines of code for a total of 2,725 lines of code. <br/>        """
        pass

    def describe_recommendation_feedback(self, RecommendationId: str, CodeReviewArn: str, UserId: str=None) -> DescribeRecommendationFeedbackResponse:
        r""" Describes the customer feedback for a CodeGuru Reviewer recommendation. 

        :param self:
        :param UserId:   Optional parameter to describe the feedback for a given user. If this is not supplied, it defaults to the user making the request.   The <code>UserId</code> is an IAM principal that can be specified as an AWS account ID or an Amazon Resource Name (ARN). For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#Principal_specifying"> Specifying a Principal</a> in the <i>AWS Identity and Access Management User Guide</i>. <br/>RecommendationId:   The recommendation ID that can be used to track the provided recommendations and then to collect the feedback. <br/>CodeReviewArn:  The Amazon Resource Name (ARN) of the <a href="https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_CodeReview.html"> <code>CodeReview</code> </a> object. <br/>
        :return: RecommendationFeedback:   The recommendation feedback given by the user. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdatedTimeStamp</i>  The time at which the feedback was last updated. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTimeStamp</i>  The time at which the feedback was created. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserId</i>  The ID of the user that made the API call.   The <code>UserId</code> is an IAM principal that can be specified as an AWS account ID or an Amazon Resource Name (ARN). For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#Principal_specifying"> Specifying a Principal</a> in the <i>AWS Identity and Access Management User Guide</i>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Reactions</i>  List for storing reactions. Reactions are utf-8 text code for emojis. You can send an empty list to clear off all your feedback. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecommendationId</i>  The recommendation ID that can be used to track the provided recommendations. Later on it can be used to collect the feedback. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CodeReviewArn</i> The Amazon Resource Name (ARN) of the <a href="https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_CodeReview.html"> <code>CodeReview</code> </a> object. <br/>        """
        pass

    def describe_repository_association(self, AssociationArn: str) -> DescribeRepositoryAssociationResponse:
        r""" Returns a <a href="https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_RepositoryAssociation.html"> <code>RepositoryAssociation</code> </a> object that contains information about the requested repository association. 

        :param self:
        :param AssociationArn:   The Amazon Resource Name (ARN) of the <a href="https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_RepositoryAssociation.html"> <code>RepositoryAssociation</code> </a> object. You can retrieve this ARN by calling <a href="https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_ListRepositoryAssociations.html"> <code>ListRepositoryAssociations</code> </a>. <br/>
        :return: Tags:   An array of key-value pairs used to tag an associated repository. A tag is a custom attribute label with two parts:  <ul> <li> A <i>tag key</i> (for example, <code>CostCenter</code>, <code>Environment</code>, <code>Project</code>, or <code>Secret</code>). Tag keys are case sensitive. </li> <li> An optional field known as a <i>tag value</i> (for example, <code>111122223333</code>, <code>Production</code>, or a team name). Omitting the tag value is the same as using an empty string. Like tag keys, tag values are case sensitive. </li> </ul><br/>RepositoryAssociation:  Information about the repository association.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3RepositoryDetails</i>  Specifies the name of an S3 bucket and a <code>CodeArtifacts</code> object that contains the S3 object keys for a source code .zip file and for a build artifacts .zip file that contains .jar or .class files. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3RepositoryDetails</b>:  Specifies the name of an S3 bucket and a <code>CodeArtifacts</code> object that contains the S3 object keys for a source code .zip file and for a build artifacts .zip file that contains .jar or .class files. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KMSKeyDetails</i> A <code>KMSKeyDetails</code> object that contains: <ul> <li> The encryption option for this repository association. It is either owned by AWS Key Management Service (KMS) (<code>AWS_OWNED_CMK</code>) or customer managed (<code>CUSTOMER_MANAGED_CMK</code>). </li> <li> The ID of the AWS KMS key that is associated with this respository association. </li> </ul>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>KMSKeyDetails</b>: A <code>KMSKeyDetails</code> object that contains: <ul> <li> The encryption option for this repository association. It is either owned by AWS Key Management Service (KMS) (<code>AWS_OWNED_CMK</code>) or customer managed (<code>CUSTOMER_MANAGED_CMK</code>). </li> <li> The ID of the AWS KMS key that is associated with this respository association. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTimeStamp</i> The time, in milliseconds since the epoch, when the repository association was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdatedTimeStamp</i> The time, in milliseconds since the epoch, when the repository association was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StateReason</i> A description of why the repository association is in the current state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the repository association. The valid repository association states are: <ul> <li>  <b>Associated</b>: The repository association is complete.  </li> <li>  <b>Associating</b>: CodeGuru Reviewer is:  <ul> <li>  Setting up pull request notifications. This is required for pull requests to trigger a CodeGuru Reviewer review.  <note>  If your repository <code>ProviderType</code> is <code>GitHub</code>, <code>GitHub Enterprise Server</code>, or <code>Bitbucket</code>, CodeGuru Reviewer creates webhooks in your repository to trigger CodeGuru Reviewer reviews. If you delete these webhooks, reviews of code in your repository cannot be triggered.  </note> </li> <li>  Setting up source code access. This is required for CodeGuru Reviewer to securely clone code in your repository.  </li> </ul> </li> <li>  <b>Failed</b>: The repository failed to associate or disassociate.  </li> <li>  <b>Disassociating</b>: CodeGuru Reviewer is removing the repository's pull request notifications and source code access.  </li> <li>  <b>Disassociated</b>: CodeGuru Reviewer successfully disassociated the repository. You can create a new association with this repository if you want to review source code in it later. You can control access to code reviews created in an associated repository with tags after it has been disassociated. For more information, see <a href="https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/auth-and-access-control-using-tags.html">Using tags to control access to associated repositories</a> in the <i>Amazon CodeGuru Reviewer User Guide</i>.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProviderType</i> The provider type of the repository association.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Owner</i> The owner of the repository. For an AWS CodeCommit repository, this is the AWS account ID of the account that owns the repository. For a GitHub, GitHub Enterprise Server, or Bitbucket repository, this is the username for the account that owns the repository. For an S3 repository, it can be the username or AWS account ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the repository.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConnectionArn</i>  The Amazon Resource Name (ARN) of an AWS CodeStar Connections connection. Its format is <code>arn:aws:codestar-connections:region-id:aws-account_id:connection/connection-id</code>. For more information, see <a href="https://docs.aws.amazon.com/codestar-connections/latest/APIReference/API_Connection.html"> <code>Connection</code> </a> in the <i>AWS CodeStar Connections API Reference</i>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociationArn</i> The Amazon Resource Name (ARN) identifying the repository association.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociationId</i> The ID of the repository association.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EncryptionOption</i> The encryption option for a repository association. It is either owned by AWS Key Management Service (KMS) (<code>AWS_OWNED_CMK</code>) or customer managed (<code>CUSTOMER_MANAGED_CMK</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KMSKeyId</i> The ID of the AWS KMS key that is associated with a respository association.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BucketName</i> The name of the S3 bucket used for associating a new S3 repository. It must begin with <code>codeguru-reviewer-</code>. <br/> A <code>CodeArtifacts</code> object. The <code>CodeArtifacts</code> object includes the S3 object key for a source code .zip file and for a build artifacts .zip file that contains .jar or .class files. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CodeArtifacts</b>:  A <code>CodeArtifacts</code> object. The <code>CodeArtifacts</code> object includes the S3 object key for a source code .zip file and for a build artifacts .zip file that contains .jar or .class files.         """
        pass

    def disassociate_repository(self, AssociationArn: str) -> DisassociateRepositoryResponse:
        r"""Removes the association between Amazon CodeGuru Reviewer and a repository.

        :param self:
        :param AssociationArn:   The Amazon Resource Name (ARN) of the <a href="https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_RepositoryAssociation.html"> <code>RepositoryAssociation</code> </a> object. You can retrieve this ARN by calling <a href="https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_ListRepositoryAssociations.html"> <code>ListRepositoryAssociations</code> </a>. <br/>
        :return: Tags:   An array of key-value pairs used to tag an associated repository. A tag is a custom attribute label with two parts:  <ul> <li> A <i>tag key</i> (for example, <code>CostCenter</code>, <code>Environment</code>, <code>Project</code>, or <code>Secret</code>). Tag keys are case sensitive. </li> <li> An optional field known as a <i>tag value</i> (for example, <code>111122223333</code>, <code>Production</code>, or a team name). Omitting the tag value is the same as using an empty string. Like tag keys, tag values are case sensitive. </li> </ul><br/>RepositoryAssociation:  Information about the disassociated repository.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3RepositoryDetails</i>  Specifies the name of an S3 bucket and a <code>CodeArtifacts</code> object that contains the S3 object keys for a source code .zip file and for a build artifacts .zip file that contains .jar or .class files. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3RepositoryDetails</b>:  Specifies the name of an S3 bucket and a <code>CodeArtifacts</code> object that contains the S3 object keys for a source code .zip file and for a build artifacts .zip file that contains .jar or .class files. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KMSKeyDetails</i> A <code>KMSKeyDetails</code> object that contains: <ul> <li> The encryption option for this repository association. It is either owned by AWS Key Management Service (KMS) (<code>AWS_OWNED_CMK</code>) or customer managed (<code>CUSTOMER_MANAGED_CMK</code>). </li> <li> The ID of the AWS KMS key that is associated with this respository association. </li> </ul>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>KMSKeyDetails</b>: A <code>KMSKeyDetails</code> object that contains: <ul> <li> The encryption option for this repository association. It is either owned by AWS Key Management Service (KMS) (<code>AWS_OWNED_CMK</code>) or customer managed (<code>CUSTOMER_MANAGED_CMK</code>). </li> <li> The ID of the AWS KMS key that is associated with this respository association. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTimeStamp</i> The time, in milliseconds since the epoch, when the repository association was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdatedTimeStamp</i> The time, in milliseconds since the epoch, when the repository association was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StateReason</i> A description of why the repository association is in the current state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the repository association. The valid repository association states are: <ul> <li>  <b>Associated</b>: The repository association is complete.  </li> <li>  <b>Associating</b>: CodeGuru Reviewer is:  <ul> <li>  Setting up pull request notifications. This is required for pull requests to trigger a CodeGuru Reviewer review.  <note>  If your repository <code>ProviderType</code> is <code>GitHub</code>, <code>GitHub Enterprise Server</code>, or <code>Bitbucket</code>, CodeGuru Reviewer creates webhooks in your repository to trigger CodeGuru Reviewer reviews. If you delete these webhooks, reviews of code in your repository cannot be triggered.  </note> </li> <li>  Setting up source code access. This is required for CodeGuru Reviewer to securely clone code in your repository.  </li> </ul> </li> <li>  <b>Failed</b>: The repository failed to associate or disassociate.  </li> <li>  <b>Disassociating</b>: CodeGuru Reviewer is removing the repository's pull request notifications and source code access.  </li> <li>  <b>Disassociated</b>: CodeGuru Reviewer successfully disassociated the repository. You can create a new association with this repository if you want to review source code in it later. You can control access to code reviews created in an associated repository with tags after it has been disassociated. For more information, see <a href="https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/auth-and-access-control-using-tags.html">Using tags to control access to associated repositories</a> in the <i>Amazon CodeGuru Reviewer User Guide</i>.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProviderType</i> The provider type of the repository association.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Owner</i> The owner of the repository. For an AWS CodeCommit repository, this is the AWS account ID of the account that owns the repository. For a GitHub, GitHub Enterprise Server, or Bitbucket repository, this is the username for the account that owns the repository. For an S3 repository, it can be the username or AWS account ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the repository.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConnectionArn</i>  The Amazon Resource Name (ARN) of an AWS CodeStar Connections connection. Its format is <code>arn:aws:codestar-connections:region-id:aws-account_id:connection/connection-id</code>. For more information, see <a href="https://docs.aws.amazon.com/codestar-connections/latest/APIReference/API_Connection.html"> <code>Connection</code> </a> in the <i>AWS CodeStar Connections API Reference</i>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociationArn</i> The Amazon Resource Name (ARN) identifying the repository association.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociationId</i> The ID of the repository association.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EncryptionOption</i> The encryption option for a repository association. It is either owned by AWS Key Management Service (KMS) (<code>AWS_OWNED_CMK</code>) or customer managed (<code>CUSTOMER_MANAGED_CMK</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KMSKeyId</i> The ID of the AWS KMS key that is associated with a respository association.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BucketName</i> The name of the S3 bucket used for associating a new S3 repository. It must begin with <code>codeguru-reviewer-</code>. <br/> A <code>CodeArtifacts</code> object. The <code>CodeArtifacts</code> object includes the S3 object key for a source code .zip file and for a build artifacts .zip file that contains .jar or .class files. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CodeArtifacts</b>:  A <code>CodeArtifacts</code> object. The <code>CodeArtifacts</code> object includes the S3 object key for a source code .zip file and for a build artifacts .zip file that contains .jar or .class files.         """
        pass

    def list_code_reviews(self, Type: str, ProviderTypes: List[ProviderType]=None, States: List[JobState]=None, RepositoryNames: List[Name]=None, MaxResults: int=None, NextToken: str=None) -> ListCodeReviewsResponse:
        r""" Lists all the code reviews that the customer has created in the past 90 days. 

        :param self:
        :param NextToken:   If nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. <br/>MaxResults:   The maximum number of results that are returned per call. The default is 100. <br/>Type:   The type of code reviews to list in the response. <br/>RepositoryNames:   List of repository names for filtering that needs to be applied before displaying the result. <br/>States:   List of states for filtering that needs to be applied before displaying the result. For example, <code>states=[Pending]</code> lists code reviews in the Pending state.  The valid code review states are: <ul> <li>  <code>Completed</code>: The code review is complete.  </li> <li>  <code>Pending</code>: The code review started and has not completed or failed.  </li> <li>  <code>Failed</code>: The code review failed.  </li> <li>  <code>Deleting</code>: The code review is being deleted.  </li> </ul><br/>ProviderTypes:   List of provider types for filtering that needs to be applied before displaying the result. For example, <code>providerTypes=[GitHub]</code> lists code reviews from GitHub. <br/>
        :return: NextToken:   Pagination token. <br/>CodeReviewSummaries:   A list of code reviews that meet the criteria of the request. <br/>        """
        pass

    def list_recommendation_feedback(self, CodeReviewArn: str, NextToken: str=None, MaxResults: int=None, UserIds: List[UserId]=None, RecommendationIds: List[RecommendationId]=None) -> ListRecommendationFeedbackResponse:
        r""" Returns a list of <a href="https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_RecommendationFeedbackSummary.html"> <code>RecommendationFeedbackSummary</code> </a> objects that contain customer recommendation feedback for all CodeGuru Reviewer users. 

        :param self:
        :param RecommendationIds:   Used to query the recommendation feedback for a given recommendation. <br/>UserIds:   An AWS user's account ID or Amazon Resource Name (ARN). Use this ID to query the recommendation feedback for a code review from that user.   The <code>UserId</code> is an IAM principal that can be specified as an AWS account ID or an Amazon Resource Name (ARN). For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#Principal_specifying"> Specifying a Principal</a> in the <i>AWS Identity and Access Management User Guide</i>. <br/>CodeReviewArn:  The Amazon Resource Name (ARN) of the <a href="https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_CodeReview.html"> <code>CodeReview</code> </a> object. <br/>MaxResults:   The maximum number of results that are returned per call. The default is 100. <br/>NextToken:   If <code>nextToken</code> is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. <br/>
        :return: NextToken:   If nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. <br/>RecommendationFeedbackSummaries:   Recommendation feedback summaries corresponding to the code review ARN. <br/>        """
        pass

    def list_recommendations(self, CodeReviewArn: str, NextToken: str=None, MaxResults: int=None) -> ListRecommendationsResponse:
        r""" Returns the list of all recommendations for a completed code review. 

        :param self:
        :param CodeReviewArn:  The Amazon Resource Name (ARN) of the <a href="https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_CodeReview.html"> <code>CodeReview</code> </a> object. <br/>MaxResults:   The maximum number of results that are returned per call. The default is 100. <br/>NextToken:   Pagination token. <br/>
        :return: NextToken:   Pagination token. <br/>RecommendationSummaries:   List of recommendations for the requested code review. <br/>        """
        pass

    def list_repository_associations(self, ProviderTypes: List[ProviderType]=None, States: List[RepositoryAssociationState]=None, Names: List[Name]=None, Owners: List[Owner]=None, MaxResults: int=None, NextToken: str=None) -> ListRepositoryAssociationsResponse:
        r""" Returns a list of <a href="https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_RepositoryAssociationSummary.html"> <code>RepositoryAssociationSummary</code> </a> objects that contain summary information about a repository association. You can filter the returned list by <a href="https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_RepositoryAssociationSummary.html#reviewer-Type-RepositoryAssociationSummary-ProviderType"> <code>ProviderType</code> </a>, <a href="https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_RepositoryAssociationSummary.html#reviewer-Type-RepositoryAssociationSummary-Name"> <code>Name</code> </a>, <a href="https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_RepositoryAssociationSummary.html#reviewer-Type-RepositoryAssociationSummary-State"> <code>State</code> </a>, and <a href="https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_RepositoryAssociationSummary.html#reviewer-Type-RepositoryAssociationSummary-Owner"> <code>Owner</code> </a>. 

        :param self:
        :param NextToken:  The <code>nextToken</code> value returned from a previous paginated <code>ListRepositoryAssociations</code> request where <code>maxResults</code> was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the <code>nextToken</code> value.  <note> Treat this token as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes. </note><br/>MaxResults:  The maximum number of repository association results returned by <code>ListRepositoryAssociations</code> in paginated output. When this parameter is used, <code>ListRepositoryAssociations</code> only returns <code>maxResults</code> results in a single page with a <code>nextToken</code> response element. The remaining results of the initial request can be seen by sending another <code>ListRepositoryAssociations</code> request with the returned <code>nextToken</code> value. This value can be between 1 and 100. If this parameter is not used, <code>ListRepositoryAssociations</code> returns up to 100 results and a <code>nextToken</code> value if applicable. <br/>Owners:  List of owners to use as a filter. For AWS CodeCommit, it is the name of the CodeCommit account that was used to associate the repository. For other repository source providers, such as Bitbucket and GitHub Enterprise Server, this is name of the account that was used to associate the repository. <br/>Names:  List of repository names to use as a filter.<br/>States:  List of repository association states to use as a filter. The valid repository association states are: <ul> <li>  <b>Associated</b>: The repository association is complete.  </li> <li>  <b>Associating</b>: CodeGuru Reviewer is:  <ul> <li>  Setting up pull request notifications. This is required for pull requests to trigger a CodeGuru Reviewer review.  <note>  If your repository <code>ProviderType</code> is <code>GitHub</code>, <code>GitHub Enterprise Server</code>, or <code>Bitbucket</code>, CodeGuru Reviewer creates webhooks in your repository to trigger CodeGuru Reviewer reviews. If you delete these webhooks, reviews of code in your repository cannot be triggered.  </note> </li> <li>  Setting up source code access. This is required for CodeGuru Reviewer to securely clone code in your repository.  </li> </ul> </li> <li>  <b>Failed</b>: The repository failed to associate or disassociate.  </li> <li>  <b>Disassociating</b>: CodeGuru Reviewer is removing the repository's pull request notifications and source code access.  </li> <li>  <b>Disassociated</b>: CodeGuru Reviewer successfully disassociated the repository. You can create a new association with this repository if you want to review source code in it later. You can control access to code reviews created in an associated repository with tags after it has been disassociated. For more information, see <a href="https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/auth-and-access-control-using-tags.html">Using tags to control access to associated repositories</a> in the <i>Amazon CodeGuru Reviewer User Guide</i>.  </li> </ul><br/>ProviderTypes:  List of provider types to use as a filter.<br/>
        :return: NextToken:  The <code>nextToken</code> value to include in a future <code>ListRecommendations</code> request. When the results of a <code>ListRecommendations</code> request exceed <code>maxResults</code>, this value can be used to retrieve the next page of results. This value is <code>null</code> when there are no more results to return. <br/>RepositoryAssociationSummaries:  A list of repository associations that meet the criteria of the request.<br/>        """
        pass

    def list_tags_for_resource(self, resourceArn: str) -> ListTagsForResourceResponse:
        r"""Returns the list of tags associated with an associated repository resource.

        :param self:
        :param resourceArn:   The Amazon Resource Name (ARN) of the <a href="https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_RepositoryAssociation.html"> <code>RepositoryAssociation</code> </a> object. You can retrieve this ARN by calling <a href="https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_ListRepositoryAssociations.html"> <code>ListRepositoryAssociations</code> </a>. <br/>
        :return: Tags:   An array of key-value pairs used to tag an associated repository. A tag is a custom attribute label with two parts:  <ul> <li> A <i>tag key</i> (for example, <code>CostCenter</code>, <code>Environment</code>, <code>Project</code>, or <code>Secret</code>). Tag keys are case sensitive. </li> <li> An optional field known as a <i>tag value</i> (for example, <code>111122223333</code>, <code>Production</code>, or a team name). Omitting the tag value is the same as using an empty string. Like tag keys, tag values are case sensitive. </li> </ul><br/>        """
        pass

    def put_recommendation_feedback(self, Reactions: List[Reaction], RecommendationId: str, CodeReviewArn: str) -> PutRecommendationFeedbackResponse:
        r""" Stores customer feedback for a CodeGuru Reviewer recommendation. When this API is called again with different reactions the previous feedback is overwritten. 

        :param self:
        :param Reactions:   List for storing reactions. Reactions are utf-8 text code for emojis. If you send an empty list it clears all your feedback. <br/>RecommendationId:   The recommendation ID that can be used to track the provided recommendations and then to collect the feedback. <br/>CodeReviewArn:  The Amazon Resource Name (ARN) of the <a href="https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_CodeReview.html"> <code>CodeReview</code> </a> object. <br/>
        :return:         """
        pass

    def tag_resource(self, Tags: TagMap, resourceArn: str) -> TagResourceResponse:
        r"""Adds one or more tags to an associated repository.

        :param self:
        :param Tags:   An array of key-value pairs used to tag an associated repository. A tag is a custom attribute label with two parts:  <ul> <li> A <i>tag key</i> (for example, <code>CostCenter</code>, <code>Environment</code>, <code>Project</code>, or <code>Secret</code>). Tag keys are case sensitive. </li> <li> An optional field known as a <i>tag value</i> (for example, <code>111122223333</code>, <code>Production</code>, or a team name). Omitting the tag value is the same as using an empty string. Like tag keys, tag values are case sensitive. </li> </ul><br/>resourceArn:   The Amazon Resource Name (ARN) of the <a href="https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_RepositoryAssociation.html"> <code>RepositoryAssociation</code> </a> object. You can retrieve this ARN by calling <a href="https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_ListRepositoryAssociations.html"> <code>ListRepositoryAssociations</code> </a>. <br/>
        :return:         """
        pass

    def untag_resource(self, TagKeys: List[TagKey], resourceArn: str) -> UntagResourceResponse:
        r"""Removes a tag from an associated repository.

        :param self:
        :param TagKeys:  A list of the keys for each tag you want to remove from an associated repository.<br/>resourceArn:   The Amazon Resource Name (ARN) of the <a href="https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_RepositoryAssociation.html"> <code>RepositoryAssociation</code> </a> object. You can retrieve this ARN by calling <a href="https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_ListRepositoryAssociations.html"> <code>ListRepositoryAssociations</code> </a>. <br/>
        :return:         """
        pass





class CodeGuruProfiler(BaseClient):
    r""" This section provides documentation for the Amazon CodeGuru Profiler API operations.   Amazon CodeGuru Profiler collects runtime performance data from your live applications, and provides recommendations that can help you fine-tune your application performance. Using machine learning algorithms, CodeGuru Profiler can help you find your most expensive lines of code and suggest ways you can improve efficiency and remove CPU bottlenecks.   Amazon CodeGuru Profiler provides different visualizations of profiling data to help you identify what code is running on the CPU, see how much time is consumed, and suggest ways to reduce CPU utilization.  <note> Amazon CodeGuru Profiler currently supports applications written in all Java virtual machine (JVM) languages and Python. While CodeGuru Profiler supports both visualizations and recommendations for applications written in Java, it can also generate visualizations and a subset of recommendations for applications written in other JVM languages and Python. </note>  For more information, see <a href="https://docs.aws.amazon.com/codeguru/latest/profiler-ug/what-is-codeguru-profiler.html">What is Amazon CodeGuru Profiler</a> in the <i>Amazon CodeGuru Profiler User Guide</i>. """


    class ListProfileTimesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_profile_times` for valid parameters"""
            pass


    class AddNotificationChannelsRequest(Mapping):
        pass
    
    class AddNotificationChannelsResponse(Mapping):
        pass
    
    class Channel(Mapping):
        pass
    
    class BatchGetFrameMetricDataRequest(Mapping):
        pass
    
    class BatchGetFrameMetricDataResponse(Mapping):
        pass
    
    class Timestamp(object):
        pass
    
    class FrameMetric(Mapping):
        pass
    
    class ConfigureAgentRequest(Mapping):
        pass
    
    class ConfigureAgentResponse(Mapping):
        pass
    
    class Metadata(object):
        pass
    
    class CreateProfilingGroupRequest(Mapping):
        pass
    
    class CreateProfilingGroupResponse(Mapping):
        pass
    
    class AgentOrchestrationConfig(Mapping):
        pass
    
    class TagsMap(object):
        pass
    
    class DeleteProfilingGroupRequest(Mapping):
        pass
    
    class DeleteProfilingGroupResponse(Mapping):
        pass
    
    class DescribeProfilingGroupRequest(Mapping):
        pass
    
    class DescribeProfilingGroupResponse(Mapping):
        pass
    
    class GetFindingsReportAccountSummaryRequest(Mapping):
        pass
    
    class GetFindingsReportAccountSummaryResponse(Mapping):
        pass
    
    class Boolean(object):
        pass
    
    class GetNotificationConfigurationRequest(Mapping):
        pass
    
    class GetNotificationConfigurationResponse(Mapping):
        pass
    
    class GetPolicyRequest(Mapping):
        pass
    
    class GetPolicyResponse(Mapping):
        pass
    
    class GetProfileRequest(Mapping):
        pass
    
    class GetProfileResponse(Mapping):
        pass
    
    class GetRecommendationsRequest(Mapping):
        pass
    
    class GetRecommendationsResponse(Mapping):
        pass
    
    class ListFindingsReportsRequest(Mapping):
        pass
    
    class ListFindingsReportsResponse(Mapping):
        pass
    
    class ListProfileTimesRequest(Mapping):
        pass
    
    class ListProfileTimesResponse(Mapping):
        pass
    
    class ListProfilingGroupsRequest(Mapping):
        pass
    
    class ListProfilingGroupsResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class PostAgentProfileRequest(Mapping):
        pass
    
    class PostAgentProfileResponse(Mapping):
        pass
    
    class AgentProfile(object):
        pass
    
    class PutPermissionRequest(Mapping):
        pass
    
    class PutPermissionResponse(Mapping):
        pass
    
    class Principal(object):
        pass
    
    class RemoveNotificationChannelRequest(Mapping):
        pass
    
    class RemoveNotificationChannelResponse(Mapping):
        pass
    
    class RemovePermissionRequest(Mapping):
        pass
    
    class RemovePermissionResponse(Mapping):
        pass
    
    class SubmitFeedbackRequest(Mapping):
        pass
    
    class SubmitFeedbackResponse(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class String(object):
        pass
    
    class UpdateProfilingGroupRequest(Mapping):
        pass
    
    class UpdateProfilingGroupResponse(Mapping):
        pass
    
    def add_notification_channels(self, profilingGroupName: str, channels: List[Channel]) -> AddNotificationChannelsResponse:
        r"""Add up to 2 anomaly notifications channels for a profiling group.

        :param self:
        :param profilingGroupName:  The name of the profiling group that we are setting up notifications for.<br/>channels:  One or 2 channels to report to when anomalies are detected.<br/>
        :return: notificationConfiguration:  The new notification configuration for this profiling group.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>channels</i> List of up to two channels to be used for sending notifications for events detected from the application profile.<br/>        """
        pass

    def batch_get_frame_metric_data(self, profilingGroupName: str, endTime: Timestamp=None, frameMetrics: List[FrameMetric]=None, period: str=None, startTime: Timestamp=None, targetResolution: str=None) -> BatchGetFrameMetricDataResponse:
        r""" Returns the time series of values for a requested list of frame metrics from a time period.

        :param self:
        :param targetResolution:  The requested resolution of time steps for the returned time series of values. If the requested target resolution is not available due to data not being retained we provide a best effort result by falling back to the most granular available resolution after the target resolution. There are 3 valid values.  <ul> <li>  <code>P1D</code> — 1 day  </li> <li>  <code>PT1H</code> — 1 hour  </li> <li>  <code>PT5M</code> — 5 minutes  </li> </ul><br/>startTime:   The start time of the time period for the frame metrics used to return the time series values. This is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC. <br/>profilingGroupName:   The name of the profiling group associated with the the frame metrics used to return the time series values. <br/>period:   The duration of the frame metrics used to return the time series values. Specify using the ISO 8601 format. The maximum period duration is one day (<code>PT24H</code> or <code>P1D</code>). <br/>frameMetrics:   The details of the metrics that are used to request a time series of values. The metric includes the name of the frame, the aggregation type to calculate the metric value for the frame, and the thread states to use to get the count for the metric value of the frame.<br/>endTime:   The end time of the time period for the returned time series values. This is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC. <br/>
        :return: unprocessedEndTimes:  List of instances which remained unprocessed. This will create a missing time step in the list of end times.<br/>startTime:   The start time of the time period for the returned time series values. This is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC. <br/>resolution:  Resolution or granularity of the profile data used to generate the time series. This is the value used to jump through time steps in a time series. There are 3 valid values.  <ul> <li>  <code>P1D</code> — 1 day  </li> <li>  <code>PT1H</code> — 1 hour  </li> <li>  <code>PT5M</code> — 5 minutes  </li> </ul><br/>frameMetricData:  Details of the metrics to request a time series of values. The metric includes the name of the frame, the aggregation type to calculate the metric value for the frame, and the thread states to use to get the count for the metric value of the frame.<br/>endTimes:   List of instances, or time steps, in the time series. For example, if the <code>period</code> is one day (<code>PT24H)</code>), and the <code>resolution</code> is five minutes (<code>PT5M</code>), then there are 288 <code>endTimes</code> in the list that are each five minutes appart. <br/>endTime:   The end time of the time period for the returned time series values. This is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC. <br/>        """
        pass

    def configure_agent(self, profilingGroupName: str, fleetInstanceId: str=None, metadata: Metadata=None) -> ConfigureAgentResponse:
        r""" Used by profiler agents to report their current state and to receive remote configuration updates. For example, <code>ConfigureAgent</code> can be used to tell an agent whether to profile or not and for how long to return profiling data. 

        :param self:
        :param profilingGroupName:   The name of the profiling group for which the configured agent is collecting profiling data. <br/>metadata:   Metadata captured about the compute platform the agent is running on. It includes information about sampling and reporting. The valid fields are: <ul> <li>  <code>COMPUTE_PLATFORM</code> - The compute platform on which the agent is running  </li> <li>  <code>AGENT_ID</code> - The ID for an agent instance.  </li> <li>  <code>AWS_REQUEST_ID</code> - The AWS request ID of a Lambda invocation.  </li> <li>  <code>EXECUTION_ENVIRONMENT</code> - The execution environment a Lambda function is running on.  </li> <li>  <code>LAMBDA_FUNCTION_ARN</code> - The Amazon Resource Name (ARN) that is used to invoke a Lambda function.  </li> <li>  <code>LAMBDA_MEMORY_LIMIT_IN_MB</code> - The memory allocated to a Lambda function.  </li> <li>  <code>LAMBDA_REMAINING_TIME_IN_MILLISECONDS</code> - The time in milliseconds before execution of a Lambda function times out.  </li> <li>  <code>LAMBDA_TIME_GAP_BETWEEN_INVOKES_IN_MILLISECONDS</code> - The time in milliseconds between two invocations of a Lambda function.  </li> <li>  <code>LAMBDA_PREVIOUS_EXECUTION_TIME_IN_MILLISECONDS</code> - The time in milliseconds for the previous Lambda invocation.  </li> </ul><br/>fleetInstanceId:   A universally unique identifier (UUID) for a profiling instance. For example, if the profiling instance is an Amazon EC2 instance, it is the instance ID. If it is an AWS Fargate container, it is the container's task ID. <br/>
        :return: configuration:   An <a href="https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_AgentConfiguration.html"> <code>AgentConfiguration</code> </a> object that specifies if an agent profiles or not and for how long to return profiling data. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>shouldProfile</i>  A <code>Boolean</code> that specifies whether the profiling agent collects profiling data or not. Set to <code>true</code> to enable profiling. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>periodInSeconds</i>  How long a profiling agent should send profiling data using <a href="https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ConfigureAgent.html"> <code>ConfigureAgent</code> </a>. For example, if this is set to 300, the profiling agent calls <a href="https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ConfigureAgent.html"> <code>ConfigureAgent</code> </a> every 5 minutes to submit the profiled data collected during that period. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>agentParameters</i>  Parameters used by the profiler. The valid parameters are:  <ul> <li>  <code>MaxStackDepth</code> - The maximum depth of the stacks in the code that is represented in the profile. For example, if CodeGuru Profiler finds a method <code>A</code>, which calls method <code>B</code>, which calls method <code>C</code>, which calls method <code>D</code>, then the depth is 4. If the <code>maxDepth</code> is set to 2, then the profiler evaluates <code>A</code> and <code>B</code>.  </li> <li>  <code>MemoryUsageLimitPercent</code> - The percentage of memory that is used by the profiler. </li> <li>  <code>MinimumTimeForReportingInMilliseconds</code> - The minimum time in milliseconds between sending reports.  </li> <li>  <code>ReportingIntervalInMilliseconds</code> - The reporting interval in milliseconds used to report profiles.  </li> <li>  <code>SamplingIntervalInMilliseconds</code> - The sampling interval in milliseconds that is used to profile samples.  </li> </ul><br/>        """
        pass

    def create_profiling_group(self, profilingGroupName: str, clientToken: str, agentOrchestrationConfig: AgentOrchestrationConfig=None, computePlatform: str=None, tags: TagsMap=None) -> CreateProfilingGroupResponse:
        r"""Creates a profiling group.

        :param self:
        :param tags:   A list of tags to add to the created profiling group. <br/>profilingGroupName:  The name of the profiling group to create.<br/>computePlatform:   The compute platform of the profiling group. Use <code>AWSLambda</code> if your application runs on AWS Lambda. Use <code>Default</code> if your application runs on a compute platform that is not AWS Lambda, such an Amazon EC2 instance, an on-premises server, or a different platform. If not specified, <code>Default</code> is used. <br/>clientToken:   Amazon CodeGuru Profiler uses this universally unique identifier (UUID) to prevent the accidental creation of duplicate profiling groups if there are failures and retries. <br/>agentOrchestrationConfig:   Specifies whether profiling is enabled or disabled for the created profiling group. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>profilingEnabled</i>  A <code>Boolean</code> that specifies whether the profiling agent collects profiling data or not. Set to <code>true</code> to enable profiling. <br/>
        :return: profilingGroup:   The returned <a href="https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ProfilingGroupDescription.html"> <code>ProfilingGroupDescription</code> </a> object that contains information about the created profiling group. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>updatedAt</i>  The date and time when the profiling group was last updated. Specify using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i>  A list of the tags that belong to this profiling group. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>profilingStatus</i>  A <a href="https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ProfilingStatus.html"> <code>ProfilingStatus</code> </a> object that includes information about the last time a profile agent pinged back, the last time a profile was received, and the aggregation period and start time for the most recent aggregated profile. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>profilingStatus</b>:  A <a href="https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ProfilingStatus.html"> <code>ProfilingStatus</code> </a> object that includes information about the last time a profile agent pinged back, the last time a profile was received, and the aggregation period and start time for the most recent aggregated profile. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the profiling group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The time when the profiling group was created. Specify using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>computePlatform</i>  The compute platform of the profiling group. If it is set to <code>AWSLambda</code>, then the profiled application runs on AWS Lambda. If it is set to <code>Default</code>, then the profiled application runs on a compute platform that is not AWS Lambda, such an Amazon EC2 instance, an on-premises server, or a different platform. The default is <code>Default</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) identifying the profiling group resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>agentOrchestrationConfig</i>  An <a href="https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_AgentOrchestrationConfig.html"> <code>AgentOrchestrationConfig</code> </a> object that indicates if the profiling group is enabled for profiled or not. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>agentOrchestrationConfig</b>:  An <a href="https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_AgentOrchestrationConfig.html"> <code>AgentOrchestrationConfig</code> </a> object that indicates if the profiling group is enabled for profiled or not. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>profilingEnabled</i>  A <code>Boolean</code> that specifies whether the profiling agent collects profiling data or not. Set to <code>true</code> to enable profiling. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>latestAgentProfileReportedAt</i> The date and time when the most recent profile was received. Specify using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>latestAgentOrchestratedAt</i> The date and time when the profiling agent most recently pinged back. Specify using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC.<br/> An <a href="https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_AggregatedProfileTime.html"> <code>AggregatedProfileTime</code> </a> object that contains the aggregation period and start time for an aggregated profile. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>latestAggregatedProfile</b>:  An <a href="https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_AggregatedProfileTime.html"> <code>AggregatedProfileTime</code> </a> object that contains the aggregation period and start time for an aggregated profile.         """
        pass

    def delete_profiling_group(self, profilingGroupName: str) -> DeleteProfilingGroupResponse:
        r"""Deletes a profiling group.

        :param self:
        :param profilingGroupName:  The name of the profiling group to delete.<br/>
        :return:         """
        pass

    def describe_profiling_group(self, profilingGroupName: str) -> DescribeProfilingGroupResponse:
        r""" Returns a <a href="https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ProfilingGroupDescription.html"> <code>ProfilingGroupDescription</code> </a> object that contains information about the requested profiling group. 

        :param self:
        :param profilingGroupName:   The name of the profiling group to get information about. <br/>
        :return: profilingGroup:   The returned <a href="https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ProfilingGroupDescription.html"> <code>ProfilingGroupDescription</code> </a> object that contains information about the requested profiling group. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>updatedAt</i>  The date and time when the profiling group was last updated. Specify using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i>  A list of the tags that belong to this profiling group. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>profilingStatus</i>  A <a href="https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ProfilingStatus.html"> <code>ProfilingStatus</code> </a> object that includes information about the last time a profile agent pinged back, the last time a profile was received, and the aggregation period and start time for the most recent aggregated profile. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>profilingStatus</b>:  A <a href="https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ProfilingStatus.html"> <code>ProfilingStatus</code> </a> object that includes information about the last time a profile agent pinged back, the last time a profile was received, and the aggregation period and start time for the most recent aggregated profile. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the profiling group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The time when the profiling group was created. Specify using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>computePlatform</i>  The compute platform of the profiling group. If it is set to <code>AWSLambda</code>, then the profiled application runs on AWS Lambda. If it is set to <code>Default</code>, then the profiled application runs on a compute platform that is not AWS Lambda, such an Amazon EC2 instance, an on-premises server, or a different platform. The default is <code>Default</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) identifying the profiling group resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>agentOrchestrationConfig</i>  An <a href="https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_AgentOrchestrationConfig.html"> <code>AgentOrchestrationConfig</code> </a> object that indicates if the profiling group is enabled for profiled or not. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>agentOrchestrationConfig</b>:  An <a href="https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_AgentOrchestrationConfig.html"> <code>AgentOrchestrationConfig</code> </a> object that indicates if the profiling group is enabled for profiled or not. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>profilingEnabled</i>  A <code>Boolean</code> that specifies whether the profiling agent collects profiling data or not. Set to <code>true</code> to enable profiling. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>latestAgentProfileReportedAt</i> The date and time when the most recent profile was received. Specify using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>latestAgentOrchestratedAt</i> The date and time when the profiling agent most recently pinged back. Specify using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC.<br/> An <a href="https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_AggregatedProfileTime.html"> <code>AggregatedProfileTime</code> </a> object that contains the aggregation period and start time for an aggregated profile. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>latestAggregatedProfile</b>:  An <a href="https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_AggregatedProfileTime.html"> <code>AggregatedProfileTime</code> </a> object that contains the aggregation period and start time for an aggregated profile.         """
        pass

    def get_findings_report_account_summary(self, dailyReportsOnly: Boolean=None, maxResults: int=None, nextToken: str=None) -> GetFindingsReportAccountSummaryResponse:
        r""" Returns a list of <a href="https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_FindingsReportSummary.html"> <code>FindingsReportSummary</code> </a> objects that contain analysis results for all profiling groups in your AWS account. 

        :param self:
        :param nextToken:  The <code>nextToken</code> value returned from a previous paginated <code>GetFindingsReportAccountSummary</code> request where <code>maxResults</code> was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the <code>nextToken</code> value.  <note> This token should be treated as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes. </note><br/>maxResults:  The maximum number of results returned by <code> GetFindingsReportAccountSummary</code> in paginated output. When this parameter is used, <code>GetFindingsReportAccountSummary</code> only returns <code>maxResults</code> results in a single page along with a <code>nextToken</code> response element. The remaining results of the initial request can be seen by sending another <code>GetFindingsReportAccountSummary</code> request with the returned <code>nextToken</code> value.<br/>dailyReportsOnly:  A <code>Boolean</code> value indicating whether to only return reports from daily profiles. If set to <code>True</code>, only analysis data from daily profiles is returned. If set to <code>False</code>, analysis data is returned from smaller time windows (for example, one hour).<br/>
        :return: reportSummaries:  The return list of <a href="https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_FindingsReportSummary.html"> <code>FindingsReportSummary</code> </a> objects taht contain summaries of analysis results for all profiling groups in your AWS account.<br/>nextToken:  The <code>nextToken</code> value to include in a future <code>GetFindingsReportAccountSummary</code> request. When the results of a <code>GetFindingsReportAccountSummary</code> request exceed <code>maxResults</code>, this value can be used to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>        """
        pass

    def get_notification_configuration(self, profilingGroupName: str) -> GetNotificationConfigurationResponse:
        r"""Get the current configuration for anomaly notifications for a profiling group.

        :param self:
        :param profilingGroupName:  The name of the profiling group we want to get the notification configuration for.<br/>
        :return: notificationConfiguration:  The current notification configuration for this profiling group.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>channels</i> List of up to two channels to be used for sending notifications for events detected from the application profile.<br/>        """
        pass

    def get_policy(self, profilingGroupName: str) -> GetPolicyResponse:
        r""" Returns the JSON-formatted resource-based policy on a profiling group. 

        :param self:
        :param profilingGroupName:  The name of the profiling group.<br/>
        :return: revisionId:  A unique identifier for the current revision of the returned policy.<br/>policy:  The JSON-formatted resource-based policy attached to the <code>ProfilingGroup</code>.<br/>        """
        pass

    def get_profile(self, profilingGroupName: str, accept: str=None, endTime: Timestamp=None, maxDepth: int=None, period: str=None, startTime: Timestamp=None) -> GetProfileResponse:
        r""" Gets the aggregated profile of a profiling group for a specified time range. Amazon CodeGuru Profiler collects posted agent profiles for a profiling group into aggregated profiles.  <pre><code> &lt;note&gt; &lt;p&gt; Because aggregated profiles expire over time &lt;code&gt;GetProfile&lt;/code&gt; is not idempotent. &lt;/p&gt; &lt;/note&gt; &lt;p&gt; Specify the time range for the requested aggregated profile using 1 or 2 of the following parameters: &lt;code&gt;startTime&lt;/code&gt;, &lt;code&gt;endTime&lt;/code&gt;, &lt;code&gt;period&lt;/code&gt;. The maximum time range allowed is 7 days. If you specify all 3 parameters, an exception is thrown. If you specify only &lt;code&gt;period&lt;/code&gt;, the latest aggregated profile is returned. &lt;/p&gt; &lt;p&gt; Aggregated profiles are available with aggregation periods of 5 minutes, 1 hour, and 1 day, aligned to UTC. The aggregation period of an aggregated profile determines how long it is retained. For more information, see &lt;a href=&quot;https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_AggregatedProfileTime.html&quot;&gt; &lt;code&gt;AggregatedProfileTime&lt;/code&gt; &lt;/a&gt;. The aggregated profile's aggregation period determines how long it is retained by CodeGuru Profiler. &lt;/p&gt; &lt;ul&gt; &lt;li&gt; &lt;p&gt; If the aggregation period is 5 minutes, the aggregated profile is retained for 15 days. &lt;/p&gt; &lt;/li&gt; &lt;li&gt; &lt;p&gt; If the aggregation period is 1 hour, the aggregated profile is retained for 60 days. &lt;/p&gt; &lt;/li&gt; &lt;li&gt; &lt;p&gt; If the aggregation period is 1 day, the aggregated profile is retained for 3 years. &lt;/p&gt; &lt;/li&gt; &lt;/ul&gt; &lt;p&gt;There are two use cases for calling &lt;code&gt;GetProfile&lt;/code&gt;.&lt;/p&gt; &lt;ol&gt; &lt;li&gt; &lt;p&gt; If you want to return an aggregated profile that already exists, use &lt;a href=&quot;https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ListProfileTimes.html&quot;&gt; &lt;code&gt;ListProfileTimes&lt;/code&gt; &lt;/a&gt; to view the time ranges of existing aggregated profiles. Use them in a &lt;code&gt;GetProfile&lt;/code&gt; request to return a specific, existing aggregated profile. &lt;/p&gt; &lt;/li&gt; &lt;li&gt; &lt;p&gt; If you want to return an aggregated profile for a time range that doesn't align with an existing aggregated profile, then CodeGuru Profiler makes a best effort to combine existing aggregated profiles from the requested time range and return them as one aggregated profile. &lt;/p&gt; &lt;p&gt; If aggregated profiles do not exist for the full time range requested, then aggregated profiles for a smaller time range are returned. For example, if the requested time range is from 00:00 to 00:20, and the existing aggregated profiles are from 00:15 and 00:25, then the aggregated profiles from 00:15 to 00:20 are returned. &lt;/p&gt; &lt;/li&gt; &lt;/ol&gt; </code></pre>

        :param self:
        :param startTime:  The start time of the profile to get. Specify using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC. <pre><code> &lt;p&gt; If you specify &lt;code&gt;startTime&lt;/code&gt;, then you must also specify &lt;code&gt;period&lt;/code&gt; or &lt;code&gt;endTime&lt;/code&gt;, but not both. &lt;/p&gt; </code></pre><br/>profilingGroupName:  The name of the profiling group to get.<br/>period:   Used with <code>startTime</code> or <code>endTime</code> to specify the time range for the returned aggregated profile. Specify using the ISO 8601 format. For example, <code>P1DT1H1M1S</code>.  <pre><code> &lt;p&gt; To get the latest aggregated profile, specify only &lt;code&gt;period&lt;/code&gt;. &lt;/p&gt; </code></pre><br/>maxDepth:   The maximum depth of the stacks in the code that is represented in the aggregated profile. For example, if CodeGuru Profiler finds a method <code>A</code>, which calls method <code>B</code>, which calls method <code>C</code>, which calls method <code>D</code>, then the depth is 4. If the <code>maxDepth</code> is set to 2, then the aggregated profile contains representations of methods <code>A</code> and <code>B</code>. <br/>endTime:   The end time of the requested profile. Specify using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC.   If you specify <code>endTime</code>, then you must also specify <code>period</code> or <code>startTime</code>, but not both. <br/>accept:   The format of the returned profiling data. The format maps to the <code>Accept</code> and <code>Content-Type</code> headers of the HTTP request. You can specify one of the following: or the default .  <pre><code> &lt;ul&gt; &lt;li&gt; &lt;p&gt; &lt;code&gt;application/json&lt;/code&gt; — standard JSON format &lt;/p&gt; &lt;/li&gt; &lt;li&gt; &lt;p&gt; &lt;code&gt;application/x-amzn-ion&lt;/code&gt; — the Amazon Ion data format. For more information, see &lt;a href=&quot;http://amzn.github.io/ion-docs/&quot;&gt;Amazon Ion&lt;/a&gt;. &lt;/p&gt; &lt;/li&gt; &lt;/ul&gt; </code></pre><br/>
        :return: profile:  Information about the profile.<br/>contentType:  The content type of the profile in the payload. It is either <code>application/json</code> or the default <code>application/x-amzn-ion</code>.<br/>contentEncoding:  The content encoding of the profile.<br/>        """
        pass

    def get_recommendations(self, startTime: Timestamp, profilingGroupName: str, endTime: Timestamp, locale: str=None) -> GetRecommendationsResponse:
        r""" Returns a list of <a href="https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_Recommendation.html"> <code>Recommendation</code> </a> objects that contain recommendations for a profiling group for a given time period. A list of <a href="https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_Anomaly.html"> <code>Anomaly</code> </a> objects that contains details about anomalies detected in the profiling group for the same time period is also returned. 

        :param self:
        :param startTime:   The end time of the profile to get analysis data about. You must specify <code>startTime</code> and <code>endTime</code>. This is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC. <br/>profilingGroupName:   The name of the profiling group to get analysis data about. <br/>locale:   The language used to provide analysis. Specify using a string that is one of the following <code>BCP 47</code> language codes.  <ul> <li>  <code>de-DE</code> - German, Germany  </li> <li>  <code>en-GB</code> - English, United Kingdom  </li> <li>  <code>en-US</code> - English, United States  </li> <li>  <code>es-ES</code> - Spanish, Spain  </li> <li>  <code>fr-FR</code> - French, France  </li> <li>  <code>it-IT</code> - Italian, Italy  </li> <li>  <code>ja-JP</code> - Japanese, Japan  </li> <li>  <code>ko-KR</code> - Korean, Republic of Korea  </li> <li>  <code>pt-BR</code> - Portugese, Brazil  </li> <li>  <code>zh-CN</code> - Chinese, China  </li> <li>  <code>zh-TW</code> - Chinese, Taiwan  </li> </ul><br/>endTime:   The start time of the profile to get analysis data about. You must specify <code>startTime</code> and <code>endTime</code>. This is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC. <br/>
        :return: recommendations:  The list of recommendations that the analysis found for this profile.<br/>profilingGroupName:  The name of the profiling group the analysis data is about.<br/>profileStartTime:   The start time of the profile the analysis data is about. This is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC. <br/>profileEndTime:   The end time of the profile the analysis data is about. This is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC. <br/>anomalies:   The list of anomalies that the analysis has found for this profile. <br/>        """
        pass

    def list_findings_reports(self, startTime: Timestamp, profilingGroupName: str, endTime: Timestamp, dailyReportsOnly: Boolean=None, maxResults: int=None, nextToken: str=None) -> ListFindingsReportsResponse:
        r"""List the available reports for a given profiling group and time range.

        :param self:
        :param startTime:   The start time of the profile to get analysis data about. You must specify <code>startTime</code> and <code>endTime</code>. This is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC. <br/>profilingGroupName:  The name of the profiling group from which to search for analysis data.<br/>nextToken:  The <code>nextToken</code> value returned from a previous paginated <code>ListFindingsReportsRequest</code> request where <code>maxResults</code> was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the <code>nextToken</code> value.  <note> This token should be treated as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes. </note><br/>maxResults:  The maximum number of report results returned by <code>ListFindingsReports</code> in paginated output. When this parameter is used, <code>ListFindingsReports</code> only returns <code>maxResults</code> results in a single page along with a <code>nextToken</code> response element. The remaining results of the initial request can be seen by sending another <code>ListFindingsReports</code> request with the returned <code>nextToken</code> value.<br/>endTime:   The end time of the profile to get analysis data about. You must specify <code>startTime</code> and <code>endTime</code>. This is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC. <br/>dailyReportsOnly:  A <code>Boolean</code> value indicating whether to only return reports from daily profiles. If set to <code>True</code>, only analysis data from daily profiles is returned. If set to <code>False</code>, analysis data is returned from smaller time windows (for example, one hour).<br/>
        :return: nextToken:  The <code>nextToken</code> value to include in a future <code>ListFindingsReports</code> request. When the results of a <code>ListFindingsReports</code> request exceed <code>maxResults</code>, this value can be used to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>findingsReportSummaries:  The list of analysis results summaries.<br/>        """
        pass

    def list_profile_times(self, startTime: Timestamp, profilingGroupName: str, period: str, endTime: Timestamp, maxResults: int=None, nextToken: str=None, orderBy: str=None) -> ListProfileTimesResponse:
        r"""Lists the start times of the available aggregated profiles of a profiling group for an aggregation period within the specified time range.

        :param self:
        :param startTime:  The start time of the time range from which to list the profiles.<br/>profilingGroupName:  The name of the profiling group.<br/>period:   The aggregation period. This specifies the period during which an aggregation profile collects posted agent profiles for a profiling group. There are 3 valid values.  <ul> <li>  <code>P1D</code> — 1 day  </li> <li>  <code>PT1H</code> — 1 hour  </li> <li>  <code>PT5M</code> — 5 minutes  </li> </ul><br/>orderBy:  The order (ascending or descending by start time of the profile) to use when listing profiles. Defaults to <code>TIMESTAMP_DESCENDING</code>. <br/>nextToken:  The <code>nextToken</code> value returned from a previous paginated <code>ListProfileTimes</code> request where <code>maxResults</code> was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the <code>nextToken</code> value.  <note> This token should be treated as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes. </note><br/>maxResults:  The maximum number of profile time results returned by <code>ListProfileTimes</code> in paginated output. When this parameter is used, <code>ListProfileTimes</code> only returns <code>maxResults</code> results in a single page with a <code>nextToken</code> response element. The remaining results of the initial request can be seen by sending another <code>ListProfileTimes</code> request with the returned <code>nextToken</code> value. <br/>endTime:  The end time of the time range from which to list the profiles.<br/>
        :return: profileTimes:  The list of start times of the available profiles for the aggregation period in the specified time range. <br/>nextToken:  The <code>nextToken</code> value to include in a future <code>ListProfileTimes</code> request. When the results of a <code>ListProfileTimes</code> request exceed <code>maxResults</code>, this value can be used to retrieve the next page of results. This value is <code>null</code> when there are no more results to return. <br/>        """
        pass

    def list_profiling_groups(self, includeDescription: Boolean=None, maxResults: int=None, nextToken: str=None) -> ListProfilingGroupsResponse:
        r""" Returns a list of profiling groups. The profiling groups are returned as <a href="https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ProfilingGroupDescription.html"> <code>ProfilingGroupDescription</code> </a> objects. 

        :param self:
        :param nextToken:  The <code>nextToken</code> value returned from a previous paginated <code>ListProfilingGroups</code> request where <code>maxResults</code> was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the <code>nextToken</code> value.  <note> This token should be treated as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes. </note><br/>maxResults:  The maximum number of profiling groups results returned by <code>ListProfilingGroups</code> in paginated output. When this parameter is used, <code>ListProfilingGroups</code> only returns <code>maxResults</code> results in a single page along with a <code>nextToken</code> response element. The remaining results of the initial request can be seen by sending another <code>ListProfilingGroups</code> request with the returned <code>nextToken</code> value. <br/>includeDescription:  A <code>Boolean</code> value indicating whether to include a description. If <code>true</code>, then a list of <a href="https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ProfilingGroupDescription.html"> <code>ProfilingGroupDescription</code> </a> objects that contain detailed information about profiling groups is returned. If <code>false</code>, then a list of profiling group names is returned.<br/>
        :return: profilingGroups:   A returned list <a href="https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ProfilingGroupDescription.html"> <code>ProfilingGroupDescription</code> </a> objects. A list of <a href="https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ProfilingGroupDescription.html"> <code>ProfilingGroupDescription</code> </a> objects is returned only if <code>includeDescription</code> is <code>true</code>, otherwise a list of profiling group names is returned. <br/>profilingGroupNames:   A returned list of profiling group names. A list of the names is returned only if <code>includeDescription</code> is <code>false</code>, otherwise a list of <a href="https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ProfilingGroupDescription.html"> <code>ProfilingGroupDescription</code> </a> objects is returned. <br/>nextToken:  The <code>nextToken</code> value to include in a future <code>ListProfilingGroups</code> request. When the results of a <code>ListProfilingGroups</code> request exceed <code>maxResults</code>, this value can be used to retrieve the next page of results. This value is <code>null</code> when there are no more results to return. <br/>        """
        pass

    def list_tags_for_resource(self, resourceArn: str) -> ListTagsForResourceResponse:
        r""" Returns a list of the tags that are assigned to a specified resource. 

        :param self:
        :param resourceArn:   The Amazon Resource Name (ARN) of the resource that contains the tags to return. <br/>
        :return: tags:   The list of tags assigned to the specified resource. This is the list of tags returned in the response. <br/>        """
        pass

    def post_agent_profile(self, profilingGroupName: str, contentType: str, agentProfile: AgentProfile, profileToken: str=None) -> PostAgentProfileResponse:
        r""" Submits profiling data to an aggregated profile of a profiling group. To get an aggregated profile that is created with this profiling data, use <a href="https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_GetProfile.html"> <code>GetProfile</code> </a>. 

        :param self:
        :param profilingGroupName:   The name of the profiling group with the aggregated profile that receives the submitted profiling data. <br/>profileToken:   Amazon CodeGuru Profiler uses this universally unique identifier (UUID) to prevent the accidental submission of duplicate profiling data if there are failures and retries. <br/>contentType:   The format of the submitted profiling data. The format maps to the <code>Accept</code> and <code>Content-Type</code> headers of the HTTP request. You can specify one of the following: or the default .  <pre><code> &lt;ul&gt; &lt;li&gt; &lt;p&gt; &lt;code&gt;application/json&lt;/code&gt; — standard JSON format &lt;/p&gt; &lt;/li&gt; &lt;li&gt; &lt;p&gt; &lt;code&gt;application/x-amzn-ion&lt;/code&gt; — the Amazon Ion data format. For more information, see &lt;a href=&quot;http://amzn.github.io/ion-docs/&quot;&gt;Amazon Ion&lt;/a&gt;. &lt;/p&gt; &lt;/li&gt; &lt;/ul&gt; </code></pre><br/>agentProfile:   The submitted profiling data. <br/>
        :return:         """
        pass

    def put_permission(self, profilingGroupName: str, principals: List[Principal], actionGroup: str, revisionId: str=None) -> PutPermissionResponse:
        r""" Adds permissions to a profiling group's resource-based policy that are provided using an action group. If a profiling group doesn't have a resource-based policy, one is created for it using the permissions in the action group and the roles and users in the <code>principals</code> parameter.  <pre><code> &lt;p&gt; The one supported action group that can be added is &lt;code&gt;agentPermission&lt;/code&gt; which grants &lt;code&gt;ConfigureAgent&lt;/code&gt; and &lt;code&gt;PostAgent&lt;/code&gt; permissions. For more information, see &lt;a href=&quot;https://docs.aws.amazon.com/codeguru/latest/profiler-ug/resource-based-policies.html&quot;&gt;Resource-based policies in CodeGuru Profiler&lt;/a&gt; in the &lt;i&gt;Amazon CodeGuru Profiler User Guide&lt;/i&gt;, &lt;a href=&quot;https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ConfigureAgent.html&quot;&gt; &lt;code&gt;ConfigureAgent&lt;/code&gt; &lt;/a&gt;, and &lt;a href=&quot;https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_PostAgentProfile.html&quot;&gt; &lt;code&gt;PostAgentProfile&lt;/code&gt; &lt;/a&gt;. &lt;/p&gt; &lt;p&gt; The first time you call &lt;code&gt;PutPermission&lt;/code&gt; on a profiling group, do not specify a &lt;code&gt;revisionId&lt;/code&gt; because it doesn't have a resource-based policy. Subsequent calls must provide a &lt;code&gt;revisionId&lt;/code&gt; to specify which revision of the resource-based policy to add the permissions to. &lt;/p&gt; &lt;p&gt; The response contains the profiling group's JSON-formatted resource policy. &lt;/p&gt; </code></pre>

        :param self:
        :param revisionId:   A universally unique identifier (UUID) for the revision of the policy you are adding to the profiling group. Do not specify this when you add permissions to a profiling group for the first time. If a policy already exists on the profiling group, you must specify the <code>revisionId</code>. <br/>profilingGroupName:  The name of the profiling group to grant access to.<br/>principals:   A list ARNs for the roles and users you want to grant access to the profiling group. Wildcards are not are supported in the ARNs. <br/>actionGroup:   Specifies an action group that contains permissions to add to a profiling group resource. One action group is supported, <code>agentPermissions</code>, which grants permission to perform actions required by the profiling agent, <code>ConfigureAgent</code> and <code>PostAgentProfile</code> permissions. <br/>
        :return: revisionId:   A universally unique identifier (UUID) for the revision of the resource-based policy that includes the added permissions. The JSON-formatted policy is in the <code>policy</code> element of the response. <br/>policy:   The JSON-formatted resource-based policy on the profiling group that includes the added permissions. <br/>        """
        pass

    def remove_notification_channel(self, profilingGroupName: str, channelId: str) -> RemoveNotificationChannelResponse:
        r"""Remove one anomaly notifications channel for a profiling group.

        :param self:
        :param profilingGroupName:  The name of the profiling group we want to change notification configuration for.<br/>channelId:  The id of the channel that we want to stop receiving notifications.<br/>
        :return: notificationConfiguration:  The new notification configuration for this profiling group.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>channels</i> List of up to two channels to be used for sending notifications for events detected from the application profile.<br/>        """
        pass

    def remove_permission(self, revisionId: str, profilingGroupName: str, actionGroup: str) -> RemovePermissionResponse:
        r""" Removes permissions from a profiling group's resource-based policy that are provided using an action group. The one supported action group that can be removed is <code>agentPermission</code> which grants <code>ConfigureAgent</code> and <code>PostAgent</code> permissions. For more information, see <a href="https://docs.aws.amazon.com/codeguru/latest/profiler-ug/resource-based-policies.html">Resource-based policies in CodeGuru Profiler</a> in the <i>Amazon CodeGuru Profiler User Guide</i>, <a href="https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ConfigureAgent.html"> <code>ConfigureAgent</code> </a>, and <a href="https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_PostAgentProfile.html"> <code>PostAgentProfile</code> </a>. 

        :param self:
        :param revisionId:   A universally unique identifier (UUID) for the revision of the resource-based policy from which you want to remove permissions. <br/>profilingGroupName:  The name of the profiling group.<br/>actionGroup:   Specifies an action group that contains the permissions to remove from a profiling group's resource-based policy. One action group is supported, <code>agentPermissions</code>, which grants <code>ConfigureAgent</code> and <code>PostAgentProfile</code> permissions. <br/>
        :return: revisionId:   A universally unique identifier (UUID) for the revision of the resource-based policy after the specified permissions were removed. The updated JSON-formatted policy is in the <code>policy</code> element of the response. <br/>policy:   The JSON-formatted resource-based policy on the profiling group after the specified permissions were removed. <br/>        """
        pass

    def submit_feedback(self, type: str, profilingGroupName: str, anomalyInstanceId: str, comment: str=None) -> SubmitFeedbackResponse:
        r"""Sends feedback to CodeGuru Profiler about whether the anomaly detected by the analysis is useful or not.

        :param self:
        :param type:   The feedback tpye. Thee are two valid values, <code>Positive</code> and <code>Negative</code>. <br/>profilingGroupName:  The name of the profiling group that is associated with the analysis data.<br/>comment:  Optional feedback about this anomaly.<br/>anomalyInstanceId:  The universally unique identifier (UUID) of the <a href="https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_AnomalyInstance.html"> <code>AnomalyInstance</code> </a> object that is included in the analysis data.<br/>
        :return:         """
        pass

    def tag_resource(self, tags: TagsMap, resourceArn: str) -> TagResourceResponse:
        r""" Use to assign one or more tags to a resource. 

        :param self:
        :param tags:   The list of tags that are added to the specified resource. <br/>resourceArn:   The Amazon Resource Name (ARN) of the resource that the tags are added to. <br/>
        :return:         """
        pass

    def untag_resource(self, tagKeys: List[String], resourceArn: str) -> UntagResourceResponse:
        r""" Use to remove one or more tags from a resource. 

        :param self:
        :param tagKeys:   A list of tag keys. Existing tags of resources with keys in this list are removed from the specified resource. <br/>resourceArn:   The Amazon Resource Name (ARN) of the resource that contains the tags to remove. <br/>
        :return:         """
        pass

    def update_profiling_group(self, profilingGroupName: str, agentOrchestrationConfig: AgentOrchestrationConfig) -> UpdateProfilingGroupResponse:
        r"""Updates a profiling group.

        :param self:
        :param profilingGroupName:  The name of the profiling group to update.<br/>agentOrchestrationConfig:   Specifies whether profiling is enabled or disabled for a profiling group. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>profilingEnabled</i>  A <code>Boolean</code> that specifies whether the profiling agent collects profiling data or not. Set to <code>true</code> to enable profiling. <br/>
        :return: profilingGroup:   A <a href="https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ProfilingGroupDescription.html"> <code>ProfilingGroupDescription</code> </a> that contains information about the returned updated profiling group. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>updatedAt</i>  The date and time when the profiling group was last updated. Specify using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i>  A list of the tags that belong to this profiling group. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>profilingStatus</i>  A <a href="https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ProfilingStatus.html"> <code>ProfilingStatus</code> </a> object that includes information about the last time a profile agent pinged back, the last time a profile was received, and the aggregation period and start time for the most recent aggregated profile. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>profilingStatus</b>:  A <a href="https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ProfilingStatus.html"> <code>ProfilingStatus</code> </a> object that includes information about the last time a profile agent pinged back, the last time a profile was received, and the aggregation period and start time for the most recent aggregated profile. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the profiling group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The time when the profiling group was created. Specify using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>computePlatform</i>  The compute platform of the profiling group. If it is set to <code>AWSLambda</code>, then the profiled application runs on AWS Lambda. If it is set to <code>Default</code>, then the profiled application runs on a compute platform that is not AWS Lambda, such an Amazon EC2 instance, an on-premises server, or a different platform. The default is <code>Default</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) identifying the profiling group resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>agentOrchestrationConfig</i>  An <a href="https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_AgentOrchestrationConfig.html"> <code>AgentOrchestrationConfig</code> </a> object that indicates if the profiling group is enabled for profiled or not. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>agentOrchestrationConfig</b>:  An <a href="https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_AgentOrchestrationConfig.html"> <code>AgentOrchestrationConfig</code> </a> object that indicates if the profiling group is enabled for profiled or not. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>profilingEnabled</i>  A <code>Boolean</code> that specifies whether the profiling agent collects profiling data or not. Set to <code>true</code> to enable profiling. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>latestAgentProfileReportedAt</i> The date and time when the most recent profile was received. Specify using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>latestAgentOrchestratedAt</i> The date and time when the profiling agent most recently pinged back. Specify using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC.<br/> An <a href="https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_AggregatedProfileTime.html"> <code>AggregatedProfileTime</code> </a> object that contains the aggregation period and start time for an aggregated profile. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>latestAggregatedProfile</b>:  An <a href="https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_AggregatedProfileTime.html"> <code>AggregatedProfileTime</code> </a> object that contains the aggregation period and start time for an aggregated profile.         """
        pass





class CodePipeline(BaseClient):
    r"""<fullname>AWS CodePipeline</fullname>  <b>Overview</b>  This is the AWS CodePipeline API Reference. This guide provides descriptions of the actions and data types for AWS CodePipeline. Some functionality for your pipeline can only be configured through the API. For more information, see the <a href="https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html">AWS CodePipeline User Guide</a>. You can use the AWS CodePipeline API to work with pipelines, stages, actions, and transitions.  <i>Pipelines</i> are models of automated release processes. Each pipeline is uniquely named, and consists of stages, actions, and transitions.  You can work with pipelines by calling: <ul> <li>  <a>CreatePipeline</a>, which creates a uniquely named pipeline. </li> <li>  <a>DeletePipeline</a>, which deletes the specified pipeline. </li> <li>  <a>GetPipeline</a>, which returns information about the pipeline structure and pipeline metadata, including the pipeline Amazon Resource Name (ARN). </li> <li>  <a>GetPipelineExecution</a>, which returns information about a specific execution of a pipeline. </li> <li>  <a>GetPipelineState</a>, which returns information about the current state of the stages and actions of a pipeline. </li> <li>  <a>ListActionExecutions</a>, which returns action-level details for past executions. The details include full stage and action-level details, including individual action duration, status, any errors that occurred during the execution, and input and output artifact location details. </li> <li>  <a>ListPipelines</a>, which gets a summary of all of the pipelines associated with your account. </li> <li>  <a>ListPipelineExecutions</a>, which gets a summary of the most recent executions for a pipeline. </li> <li>  <a>StartPipelineExecution</a>, which runs the most recent revision of an artifact through the pipeline. </li> <li>  <a>StopPipelineExecution</a>, which stops the specified pipeline execution from continuing through the pipeline. </li> <li>  <a>UpdatePipeline</a>, which updates a pipeline with edits or changes to the structure of the pipeline. </li> </ul> Pipelines include <i>stages</i>. Each stage contains one or more actions that must complete before the next stage begins. A stage results in success or failure. If a stage fails, the pipeline stops at that stage and remains stopped until either a new version of an artifact appears in the source location, or a user takes action to rerun the most recent artifact through the pipeline. You can call <a>GetPipelineState</a>, which displays the status of a pipeline, including the status of stages in the pipeline, or <a>GetPipeline</a>, which returns the entire structure of the pipeline, including the stages of that pipeline. For more information about the structure of stages and actions, see <a href="https://docs.aws.amazon.com/codepipeline/latest/userguide/pipeline-structure.html">AWS CodePipeline Pipeline Structure Reference</a>. Pipeline stages include <i>actions</i> that are categorized into categories such as source or build actions performed in a stage of a pipeline. For example, you can use a source action to import artifacts into a pipeline from a source such as Amazon S3. Like stages, you do not work with actions directly in most cases, but you do define and interact with actions when working with pipeline operations such as <a>CreatePipeline</a> and <a>GetPipelineState</a>. Valid action categories are: <ul> <li> Source </li> <li> Build </li> <li> Test </li> <li> Deploy </li> <li> Approval </li> <li> Invoke </li> </ul> Pipelines also include <i>transitions</i>, which allow the transition of artifacts from one stage to the next in a pipeline after the actions in one stage complete. You can work with transitions by calling: <ul> <li>  <a>DisableStageTransition</a>, which prevents artifacts from transitioning to the next stage in a pipeline. </li> <li>  <a>EnableStageTransition</a>, which enables transition of artifacts between stages in a pipeline.  </li> </ul>  <b>Using the API to integrate with AWS CodePipeline</b>  For third-party integrators or developers who want to create their own integrations with AWS CodePipeline, the expected sequence varies from the standard API user. To integrate with AWS CodePipeline, developers need to work with the following items:  <b>Jobs</b>, which are instances of an action. For example, a job for a source action might import a revision of an artifact from a source.  You can work with jobs by calling: <ul> <li>  <a>AcknowledgeJob</a>, which confirms whether a job worker has received the specified job. </li> <li>  <a>GetJobDetails</a>, which returns the details of a job. </li> <li>  <a>PollForJobs</a>, which determines whether there are any jobs to act on. </li> <li>  <a>PutJobFailureResult</a>, which provides details of a job failure.  </li> <li>  <a>PutJobSuccessResult</a>, which provides details of a job success. </li> </ul>  <b>Third party jobs</b>, which are instances of an action created by a partner action and integrated into AWS CodePipeline. Partner actions are created by members of the AWS Partner Network. You can work with third party jobs by calling: <ul> <li>  <a>AcknowledgeThirdPartyJob</a>, which confirms whether a job worker has received the specified job. </li> <li>  <a>GetThirdPartyJobDetails</a>, which requests the details of a job for a partner action. </li> <li>  <a>PollForThirdPartyJobs</a>, which determines whether there are any jobs to act on.  </li> <li>  <a>PutThirdPartyJobFailureResult</a>, which provides details of a job failure. </li> <li>  <a>PutThirdPartyJobSuccessResult</a>, which provides details of a job success. </li> </ul>"""


    class ListActionTypesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_action_types` for valid parameters"""
            pass
    class ListPipelineExecutionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_pipeline_executions` for valid parameters"""
            pass
    class ListPipelinesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_pipelines` for valid parameters"""
            pass
    class ListWebhooksPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_webhooks` for valid parameters"""
            pass
    class ListActionExecutionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_action_executions` for valid parameters"""
            pass
    class ListTagsForResourcePaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_tags_for_resource` for valid parameters"""
            pass


    class AcknowledgeJobInput(Mapping):
        pass
    
    class AcknowledgeJobOutput(Mapping):
        pass
    
    class AcknowledgeThirdPartyJobInput(Mapping):
        pass
    
    class AcknowledgeThirdPartyJobOutput(Mapping):
        pass
    
    class CreateCustomActionTypeInput(Mapping):
        pass
    
    class CreateCustomActionTypeOutput(Mapping):
        pass
    
    class ActionTypeSettings(Mapping):
        pass
    
    class ActionConfigurationProperty(Mapping):
        pass
    
    class ArtifactDetails(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class CreatePipelineInput(Mapping):
        pass
    
    class CreatePipelineOutput(Mapping):
        pass
    
    class PipelineDeclaration(Mapping):
        pass
    
    class DeleteCustomActionTypeInput(Mapping):
        pass
    
    class DeletePipelineInput(Mapping):
        pass
    
    class DeleteWebhookInput(Mapping):
        pass
    
    class DeleteWebhookOutput(Mapping):
        pass
    
    class DeregisterWebhookWithThirdPartyInput(Mapping):
        pass
    
    class DeregisterWebhookWithThirdPartyOutput(Mapping):
        pass
    
    class DisableStageTransitionInput(Mapping):
        pass
    
    class EnableStageTransitionInput(Mapping):
        pass
    
    class GetActionTypeInput(Mapping):
        pass
    
    class GetActionTypeOutput(Mapping):
        pass
    
    class GetJobDetailsInput(Mapping):
        pass
    
    class GetJobDetailsOutput(Mapping):
        pass
    
    class GetPipelineInput(Mapping):
        pass
    
    class GetPipelineOutput(Mapping):
        pass
    
    class GetPipelineExecutionInput(Mapping):
        pass
    
    class GetPipelineExecutionOutput(Mapping):
        pass
    
    class GetPipelineStateInput(Mapping):
        pass
    
    class GetPipelineStateOutput(Mapping):
        pass
    
    class GetThirdPartyJobDetailsInput(Mapping):
        pass
    
    class GetThirdPartyJobDetailsOutput(Mapping):
        pass
    
    class ListActionExecutionsInput(Mapping):
        pass
    
    class ListActionExecutionsOutput(Mapping):
        pass
    
    class ActionExecutionFilter(Mapping):
        pass
    
    class ListActionTypesInput(Mapping):
        pass
    
    class ListActionTypesOutput(Mapping):
        pass
    
    class ListPipelineExecutionsInput(Mapping):
        pass
    
    class ListPipelineExecutionsOutput(Mapping):
        pass
    
    class ListPipelinesInput(Mapping):
        pass
    
    class ListPipelinesOutput(Mapping):
        pass
    
    class ListTagsForResourceInput(Mapping):
        pass
    
    class ListTagsForResourceOutput(Mapping):
        pass
    
    class ListWebhooksInput(Mapping):
        pass
    
    class ListWebhooksOutput(Mapping):
        pass
    
    class PollForJobsInput(Mapping):
        pass
    
    class PollForJobsOutput(Mapping):
        pass
    
    class ActionTypeId(Mapping):
        pass
    
    class QueryParamMap(object):
        pass
    
    class PollForThirdPartyJobsInput(Mapping):
        pass
    
    class PollForThirdPartyJobsOutput(Mapping):
        pass
    
    class PutActionRevisionInput(Mapping):
        pass
    
    class PutActionRevisionOutput(Mapping):
        pass
    
    class ActionRevision(Mapping):
        pass
    
    class PutApprovalResultInput(Mapping):
        pass
    
    class PutApprovalResultOutput(Mapping):
        pass
    
    class ApprovalResult(Mapping):
        pass
    
    class PutJobFailureResultInput(Mapping):
        pass
    
    class FailureDetails(Mapping):
        pass
    
    class PutJobSuccessResultInput(Mapping):
        pass
    
    class CurrentRevision(Mapping):
        pass
    
    class ExecutionDetails(Mapping):
        pass
    
    class OutputVariablesMap(object):
        pass
    
    class PutThirdPartyJobFailureResultInput(Mapping):
        pass
    
    class PutThirdPartyJobSuccessResultInput(Mapping):
        pass
    
    class PutWebhookInput(Mapping):
        pass
    
    class PutWebhookOutput(Mapping):
        pass
    
    class WebhookDefinition(Mapping):
        pass
    
    class RegisterWebhookWithThirdPartyInput(Mapping):
        pass
    
    class RegisterWebhookWithThirdPartyOutput(Mapping):
        pass
    
    class RetryStageExecutionInput(Mapping):
        pass
    
    class RetryStageExecutionOutput(Mapping):
        pass
    
    class StartPipelineExecutionInput(Mapping):
        pass
    
    class StartPipelineExecutionOutput(Mapping):
        pass
    
    class StopPipelineExecutionInput(Mapping):
        pass
    
    class StopPipelineExecutionOutput(Mapping):
        pass
    
    class Boolean(object):
        pass
    
    class TagResourceInput(Mapping):
        pass
    
    class TagResourceOutput(Mapping):
        pass
    
    class UntagResourceInput(Mapping):
        pass
    
    class UntagResourceOutput(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateActionTypeInput(Mapping):
        pass
    
    class ActionTypeDeclaration(Mapping):
        pass
    
    class UpdatePipelineInput(Mapping):
        pass
    
    class UpdatePipelineOutput(Mapping):
        pass
    
    def acknowledge_job(self, nonce: str, jobId: str) -> AcknowledgeJobOutput:
        r"""Returns information about a specified job and whether that job has been received by the job worker. Used for custom actions only.

        :param self:
        :param nonce:  A system-generated random number that AWS CodePipeline uses to ensure that the job is being worked on by only one job worker. Get this number from the response of the <a>PollForJobs</a> request that returned this job.<br/>jobId:  The unique system-generated ID of the job for which you want to confirm receipt.<br/>
        :return: status:  Whether the job worker has received the specified job.<br/>        """
        pass

    def acknowledge_third_party_job(self, clientToken: str, nonce: str, jobId: str) -> AcknowledgeThirdPartyJobOutput:
        r"""Confirms a job worker has received the specified job. Used for partner actions only.

        :param self:
        :param clientToken:  The clientToken portion of the clientId and clientToken pair used to verify that the calling entity is allowed access to the job and its details.<br/>nonce:  A system-generated random number that AWS CodePipeline uses to ensure that the job is being worked on by only one job worker. Get this number from the response to a <a>GetThirdPartyJobDetails</a> request.<br/>jobId:  The unique system-generated ID of the job.<br/>
        :return: status:  The status information for the third party job, if any.<br/>        """
        pass

    def create_custom_action_type(self, outputArtifactDetails: ArtifactDetails, inputArtifactDetails: ArtifactDetails, version: str, provider: str, category: str, settings: ActionTypeSettings=None, configurationProperties: List[ActionConfigurationProperty]=None, tags: List[Tag]=None) -> CreateCustomActionTypeOutput:
        r"""Creates a new custom action that can be used in all pipelines associated with the AWS account. Only used for custom actions.

        :param self:
        :param tags:  The tags for the custom action.<br/>outputArtifactDetails:  The details of the output artifact of the action, such as its commit ID.:<br/>inputArtifactDetails:  The details of the input artifact for the action, such as its commit ID.:<br/>configurationProperties:  The configuration properties for the custom action. <note> You can refer to a name in the configuration properties of the custom action within the URL templates by following the format of {Config:name}, as long as the configuration property is both required and not secret. For more information, see <a href="https://docs.aws.amazon.com/codepipeline/latest/userguide/how-to-create-custom-action.html">Create a Custom Action for a Pipeline</a>. </note><br/>settings:  URLs that provide users information about this custom action.:<br/>version:  The version identifier of the custom action.<br/>provider:  The provider of the service used in the custom action, such as AWS CodeDeploy.<br/>category:  The category of the custom action, such as a build action or a test action.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>revisionUrlTemplate</i> The URL returned to the AWS CodePipeline console that contains a link to the page where customers can update or change the configuration of the external action.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>executionUrlTemplate</i> The URL returned to the AWS CodePipeline console that contains a link to the top-level landing page for the external system, such as the console page for AWS CodeDeploy. This link is shown on the pipeline view page in the AWS CodePipeline console and provides a link to the execution entity of the external action.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>entityUrlTemplate</i> The URL returned to the AWS CodePipeline console that provides a deep link to the resources of the external system, such as the configuration page for an AWS CodeDeploy deployment group. This link is provided as part of the action display in the pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>thirdPartyConfigurationUrl</i> The URL of a sign-up page where users can sign up for an external service and perform initial configuration of the action provided by that service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>maximumCount</i> The maximum number of artifacts allowed for the action type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>minimumCount</i> The minimum number of artifacts allowed for the action type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>maximumCount</i> The maximum number of artifacts allowed for the action type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>minimumCount</i> The minimum number of artifacts allowed for the action type.<br/>
        :return: tags:  Specifies the tags applied to the custom action.<br/>actionType:  Returns information about the details of an action type.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>outputArtifactDetails</i> The details of the output artifact of the action, such as its commit ID.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>outputArtifactDetails</b>: The details of the output artifact of the action, such as its commit ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>inputArtifactDetails</i> The details of the input artifact for the action, such as its commit ID.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>inputArtifactDetails</b>: The details of the input artifact for the action, such as its commit ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>actionConfigurationProperties</i> The configuration properties for the action type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>settings</i> The settings for the action type.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>settings</b>: The settings for the action type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> Represents information about an action type.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>id</b>: Represents information about an action type.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> A string that describes the action version.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>provider</i> The provider of the service being called by the action. Valid providers are determined by the action category. For example, an action in the Deploy category type might have a provider of AWS CodeDeploy, which would be specified as CodeDeploy. For more information, see <a href="https://docs.aws.amazon.com/codepipeline/latest/userguide/reference-pipeline-structure.html#actions-valid-providers">Valid Action Types and Providers in CodePipeline</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>owner</i> The creator of the action being called. There are three valid values for the <code>Owner</code> field in the action category section within your pipeline structure: <code>AWS</code>, <code>ThirdParty</code>, and <code>Custom</code>. For more information, see <a href="https://docs.aws.amazon.com/codepipeline/latest/userguide/reference-pipeline-structure.html#actions-valid-providers">Valid Action Types and Providers in CodePipeline</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>category</i> A category defines what kind of action can be taken in the stage, and constrains the provider type for the action. Valid categories are limited to one of the following values.  <ul> <li> Source </li> <li> Build </li> <li> Test </li> <li> Deploy </li> <li> Invoke </li> <li> Approval </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>revisionUrlTemplate</i> The URL returned to the AWS CodePipeline console that contains a link to the page where customers can update or change the configuration of the external action.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>executionUrlTemplate</i> The URL returned to the AWS CodePipeline console that contains a link to the top-level landing page for the external system, such as the console page for AWS CodeDeploy. This link is shown on the pipeline view page in the AWS CodePipeline console and provides a link to the execution entity of the external action.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>entityUrlTemplate</i> The URL returned to the AWS CodePipeline console that provides a deep link to the resources of the external system, such as the configuration page for an AWS CodeDeploy deployment group. This link is provided as part of the action display in the pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>thirdPartyConfigurationUrl</i> The URL of a sign-up page where users can sign up for an external service and perform initial configuration of the action provided by that service.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>maximumCount</i> The maximum number of artifacts allowed for the action type.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>minimumCount</i> The minimum number of artifacts allowed for the action type.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>maximumCount</i> The maximum number of artifacts allowed for the action type.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>minimumCount</i> The minimum number of artifacts allowed for the action type.<br/>        """
        pass

    def create_pipeline(self, pipeline: PipelineDeclaration, tags: List[Tag]=None) -> CreatePipelineOutput:
        r"""Creates a pipeline. <note> In the pipeline structure, you must include either <code>artifactStore</code> or <code>artifactStores</code> in your pipeline, but you cannot use both. If you create a cross-region action in your pipeline, you must use <code>artifactStores</code>. </note>

        :param self:
        :param tags:  The tags for the pipeline.<br/>pipeline:  Represents the structure of actions and stages to be performed in the pipeline. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The version number of the pipeline. A new pipeline always has a version number of 1. This number is incremented when a pipeline is updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>stages</i> The stage in which to perform the action.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>artifactStores</i> A mapping of <code>artifactStore</code> objects and their corresponding AWS Regions. There must be an artifact store for the pipeline Region and for each cross-region action in the pipeline. <note> You must include either <code>artifactStore</code> or <code>artifactStores</code> in your pipeline, but you cannot use both. If you create a cross-region action in your pipeline, you must use <code>artifactStores</code>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>artifactStore</i> Represents information about the S3 bucket where artifacts are stored for the pipeline. <note> You must include either <code>artifactStore</code> or <code>artifactStores</code> in your pipeline, but you cannot use both. If you create a cross-region action in your pipeline, you must use <code>artifactStores</code>. </note>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>artifactStore</b>: Represents information about the S3 bucket where artifacts are stored for the pipeline. <note> You must include either <code>artifactStore</code> or <code>artifactStores</code> in your pipeline, but you cannot use both. If you create a cross-region action in your pipeline, you must use <code>artifactStores</code>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>roleArn</i> The Amazon Resource Name (ARN) for AWS CodePipeline to use to either perform actions with no <code>actionRoleArn</code>, or to use to assume roles for actions with an <code>actionRoleArn</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i> The S3 bucket used for storing the artifacts for a pipeline. You can specify the name of an S3 bucket but not a folder in the bucket. A folder to contain the pipeline artifacts is created for you based on the name of the pipeline. You can use any S3 bucket in the same AWS Region as the pipeline to store your pipeline artifacts.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of the artifact store, such as S3.<br/>The encryption key used to encrypt the data in the artifact store, such as an AWS Key Management Service (AWS KMS) key. If this is undefined, the default key for Amazon S3 is used.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>encryptionKey</b>: The encryption key used to encrypt the data in the artifact store, such as an AWS Key Management Service (AWS KMS) key. If this is undefined, the default key for Amazon S3 is used.
        :return: tags:  Specifies the tags applied to the pipeline.<br/>pipeline:  Represents the structure of actions and stages to be performed in the pipeline. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The version number of the pipeline. A new pipeline always has a version number of 1. This number is incremented when a pipeline is updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>stages</i> The stage in which to perform the action.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>artifactStores</i> A mapping of <code>artifactStore</code> objects and their corresponding AWS Regions. There must be an artifact store for the pipeline Region and for each cross-region action in the pipeline. <note> You must include either <code>artifactStore</code> or <code>artifactStores</code> in your pipeline, but you cannot use both. If you create a cross-region action in your pipeline, you must use <code>artifactStores</code>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>artifactStore</i> Represents information about the S3 bucket where artifacts are stored for the pipeline. <note> You must include either <code>artifactStore</code> or <code>artifactStores</code> in your pipeline, but you cannot use both. If you create a cross-region action in your pipeline, you must use <code>artifactStores</code>. </note>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>artifactStore</b>: Represents information about the S3 bucket where artifacts are stored for the pipeline. <note> You must include either <code>artifactStore</code> or <code>artifactStores</code> in your pipeline, but you cannot use both. If you create a cross-region action in your pipeline, you must use <code>artifactStores</code>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>roleArn</i> The Amazon Resource Name (ARN) for AWS CodePipeline to use to either perform actions with no <code>actionRoleArn</code>, or to use to assume roles for actions with an <code>actionRoleArn</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i> The S3 bucket used for storing the artifacts for a pipeline. You can specify the name of an S3 bucket but not a folder in the bucket. A folder to contain the pipeline artifacts is created for you based on the name of the pipeline. You can use any S3 bucket in the same AWS Region as the pipeline to store your pipeline artifacts.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of the artifact store, such as S3.<br/>The encryption key used to encrypt the data in the artifact store, such as an AWS Key Management Service (AWS KMS) key. If this is undefined, the default key for Amazon S3 is used.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>encryptionKey</b>: The encryption key used to encrypt the data in the artifact store, such as an AWS Key Management Service (AWS KMS) key. If this is undefined, the default key for Amazon S3 is used.        """
        pass

    def delete_custom_action_type(self, version: str, provider: str, category: str):
        r"""Marks a custom action as deleted. <code>PollForJobs</code> for the custom action fails after the action is marked for deletion. Used for custom actions only. <important> To re-create a custom action after it has been deleted you must use a string in the version field that has never been used before. This string can be an incremented version number, for example. To restore a deleted custom action, use a JSON file that is identical to the deleted action, including the original string in the version field. </important>

        :param self:
        :param version:  The version of the custom action to delete.<br/>provider:  The provider of the service used in the custom action, such as AWS CodeDeploy.<br/>category:  The category of the custom action that you want to delete, such as source or deploy.<br/>
        :return:         """
        pass

    def delete_pipeline(self, name: str):
        r"""Deletes the specified pipeline.

        :param self:
        :param name:  The name of the pipeline to be deleted.<br/>
        :return:         """
        pass

    def delete_webhook(self, name: str) -> DeleteWebhookOutput:
        r"""Deletes a previously created webhook by name. Deleting the webhook stops AWS CodePipeline from starting a pipeline every time an external event occurs. The API returns successfully when trying to delete a webhook that is already deleted. If a deleted webhook is re-created by calling PutWebhook with the same name, it will have a different URL.

        :param self:
        :param name:  The name of the webhook you want to delete.<br/>
        :return:         """
        pass

    def deregister_webhook_with_third_party(self, webhookName: str=None) -> DeregisterWebhookWithThirdPartyOutput:
        r"""Removes the connection between the webhook that was created by CodePipeline and the external tool with events to be detected. Currently supported only for webhooks that target an action type of GitHub.

        :param self:
        :param webhookName:  The name of the webhook you want to deregister.<br/>
        :return:         """
        pass

    def disable_stage_transition(self, reason: str, transitionType: str, stageName: str, pipelineName: str):
        r"""Prevents artifacts in a pipeline from transitioning to the next stage in the pipeline.

        :param self:
        :param reason:  The reason given to the user that a stage is disabled, such as waiting for manual approval or manual tests. This message is displayed in the pipeline console UI.<br/>transitionType:  Specifies whether artifacts are prevented from transitioning into the stage and being processed by the actions in that stage (inbound), or prevented from transitioning from the stage after they have been processed by the actions in that stage (outbound).<br/>stageName:  The name of the stage where you want to disable the inbound or outbound transition of artifacts.<br/>pipelineName:  The name of the pipeline in which you want to disable the flow of artifacts from one stage to another.<br/>
        :return:         """
        pass

    def enable_stage_transition(self, transitionType: str, stageName: str, pipelineName: str):
        r"""Enables artifacts in a pipeline to transition to a stage in a pipeline.

        :param self:
        :param transitionType:  Specifies whether artifacts are allowed to enter the stage and be processed by the actions in that stage (inbound) or whether already processed artifacts are allowed to transition to the next stage (outbound).<br/>stageName:  The name of the stage where you want to enable the transition of artifacts, either into the stage (inbound) or from that stage to the next stage (outbound).<br/>pipelineName:  The name of the pipeline in which you want to enable the flow of artifacts from one stage to another.<br/>
        :return:         """
        pass

    def get_action_type(self, version: str, provider: str, owner: str, category: str) -> GetActionTypeOutput:
        r"""Returns information about an action type created for an external provider, where the action is to be used by customers of the external provider. The action can be created with any supported integration model.

        :param self:
        :param version:  A string that describes the action type version.<br/>provider:  The provider of the action type being called. The provider name is specified when the action type is created.<br/>owner:  The creator of an action type that was created with any supported integration model. There are two valid values: <code>AWS</code> and <code>ThirdParty</code>.<br/>category:  Defines what kind of action can be taken in the stage. The following are the valid values: <ul> <li>  <code>Source</code>  </li> <li>  <code>Build</code>  </li> <li>  <code>Test</code>  </li> <li>  <code>Deploy</code>  </li> <li>  <code>Approval</code>  </li> <li>  <code>Invoke</code>  </li> </ul><br/>
        :return: actionType:  The action type information for the requested action type, such as the action type ID.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>urls</i> The links associated with the action type to be updated.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>urls</b>: The links associated with the action type to be updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>properties</i> The properties of the action type to be updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>permissions</i> Details identifying the accounts with permissions to use the action type.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>permissions</b>: Details identifying the accounts with permissions to use the action type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>outputArtifactDetails</i> Details for the output artifacts, such as a built application, that are the result of the action. For example, the minimum and maximum number of output artifacts allowed.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>outputArtifactDetails</b>: Details for the output artifacts, such as a built application, that are the result of the action. For example, the minimum and maximum number of output artifacts allowed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>inputArtifactDetails</i> Details for the artifacts, such as application files, to be worked on by the action. For example, the minimum and maximum number of input artifacts allowed.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>inputArtifactDetails</b>: Details for the artifacts, such as application files, to be worked on by the action. For example, the minimum and maximum number of input artifacts allowed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The action category, owner, provider, and version of the action type to be updated.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>id</b>: The action category, owner, provider, and version of the action type to be updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>executor</i> Information about the executor for an action type that was created with any supported integration model.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>executor</b>: Information about the executor for an action type that was created with any supported integration model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> The description for the action type to be updated.<br/>The action configuration properties for the action type. These properties are specified in the action definition when the action type is created.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>configuration</b>: The action configuration properties for the action type. These properties are specified in the action definition when the action type is created.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> A string that describes the action type version.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>provider</i> The provider of the action type being called. The provider name is supplied when the action type is created.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>owner</i> The creator of the action type being called: <code>AWS</code> or <code>ThirdParty</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>category</i> Defines what kind of action can be taken in the stage, one of the following: <ul> <li>  <code>Source</code>  </li> <li>  <code>Build</code>  </li> <li>  <code>Test</code>  </li> <li>  <code>Deploy</code>  </li> <li>  <code>Approval</code>  </li> <li>  <code>Invoke</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>maximumCount</i> The maximum number of artifacts that can be used with the actiontype. For example, you should specify a minimum and maximum of zero input artifacts for an action type with a category of <code>source</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>minimumCount</i> The minimum number of artifacts that can be used with the action type. For example, you should specify a minimum and maximum of zero input artifacts for an action type with a category of <code>source</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>maximumCount</i> The maximum number of artifacts that can be used with the actiontype. For example, you should specify a minimum and maximum of zero input artifacts for an action type with a category of <code>source</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>minimumCount</i> The minimum number of artifacts that can be used with the action type. For example, you should specify a minimum and maximum of zero input artifacts for an action type with a category of <code>source</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>allowedAccounts</i> A list of AWS account IDs with access to use the action type in their pipelines.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>revisionUrlTemplate</i> The URL returned to the CodePipeline console that contains a link to the page where customers can update or change the configuration of the external action.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>executionUrlTemplate</i> The link to an execution page for the action type in progress. For example, for a CodeDeploy action, this link is shown on the pipeline view page in the CodePipeline console, and it links to a CodeDeploy status page.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>entityUrlTemplate</i> The URL returned to the CodePipeline console that provides a deep link to the resources of the external system, such as a status page. This link is provided as part of the action display in the pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>configurationUrl</i> The URL returned to the CodePipeline console that contains a link to the page where customers can configure the external action.<br/>        """
        pass

    def get_job_details(self, jobId: str) -> GetJobDetailsOutput:
        r"""Returns information about a job. Used for custom actions only. <important> When this API is called, AWS CodePipeline returns temporary credentials for the S3 bucket used to store artifacts for the pipeline, if the action requires access to that S3 bucket for input or output artifacts. This API also returns any secret values defined for the action. </important>

        :param self:
        :param jobId:  The unique system-generated ID for the job.<br/>
        :return: jobDetails:  The details of the job. <note> If AWSSessionCredentials is used, a long-running job can call <code>GetJobDetails</code> again to obtain new credentials. </note>:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>accountId</i> The AWS account ID associated with the job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>data</i> Represents other information about a job required for a job worker to complete the job. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>data</b>: Represents other information about a job required for a job worker to complete the job. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The unique system-generated ID of the job.<br/>Represents information about an action type.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>actionTypeId</b>: Represents information about an action type.        """
        pass

    def get_pipeline(self, name: str, version: int=None) -> GetPipelineOutput:
        r"""Returns the metadata, structure, stages, and actions of a pipeline. Can be used to return the entire structure of a pipeline in JSON format, which can then be modified and used to update the pipeline structure with <a>UpdatePipeline</a>.

        :param self:
        :param version:  The version number of the pipeline. If you do not specify a version, defaults to the current version.<br/>name:  The name of the pipeline for which you want to get information. Pipeline names must be unique under an AWS user account.<br/>
        :return: metadata:  Represents the pipeline metadata information returned as part of the output of a <code>GetPipeline</code> action.:<br/>pipeline:  Represents the structure of actions and stages to be performed in the pipeline. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The version number of the pipeline. A new pipeline always has a version number of 1. This number is incremented when a pipeline is updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>stages</i> The stage in which to perform the action.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>artifactStores</i> A mapping of <code>artifactStore</code> objects and their corresponding AWS Regions. There must be an artifact store for the pipeline Region and for each cross-region action in the pipeline. <note> You must include either <code>artifactStore</code> or <code>artifactStores</code> in your pipeline, but you cannot use both. If you create a cross-region action in your pipeline, you must use <code>artifactStores</code>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>artifactStore</i> Represents information about the S3 bucket where artifacts are stored for the pipeline. <note> You must include either <code>artifactStore</code> or <code>artifactStores</code> in your pipeline, but you cannot use both. If you create a cross-region action in your pipeline, you must use <code>artifactStores</code>. </note>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>artifactStore</b>: Represents information about the S3 bucket where artifacts are stored for the pipeline. <note> You must include either <code>artifactStore</code> or <code>artifactStores</code> in your pipeline, but you cannot use both. If you create a cross-region action in your pipeline, you must use <code>artifactStores</code>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>roleArn</i> The Amazon Resource Name (ARN) for AWS CodePipeline to use to either perform actions with no <code>actionRoleArn</code>, or to use to assume roles for actions with an <code>actionRoleArn</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i> The S3 bucket used for storing the artifacts for a pipeline. You can specify the name of an S3 bucket but not a folder in the bucket. A folder to contain the pipeline artifacts is created for you based on the name of the pipeline. You can use any S3 bucket in the same AWS Region as the pipeline to store your pipeline artifacts.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of the artifact store, such as S3.<br/>The encryption key used to encrypt the data in the artifact store, such as an AWS Key Management Service (AWS KMS) key. If this is undefined, the default key for Amazon S3 is used.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>encryptionKey</b>: The encryption key used to encrypt the data in the artifact store, such as an AWS Key Management Service (AWS KMS) key. If this is undefined, the default key for Amazon S3 is used.&nbsp;&nbsp;&nbsp;&nbsp; <i>updated</i> The date and time the pipeline was last updated, in timestamp format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>created</i> The date and time the pipeline was created, in timestamp format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>pipelineArn</i> The Amazon Resource Name (ARN) of the pipeline.<br/>        """
        pass

    def get_pipeline_execution(self, pipelineExecutionId: str, pipelineName: str) -> GetPipelineExecutionOutput:
        r"""Returns information about an execution of a pipeline, including details about artifacts, the pipeline execution ID, and the name, version, and status of the pipeline.

        :param self:
        :param pipelineExecutionId:  The ID of the pipeline execution about which you want to get execution details.<br/>pipelineName:  The name of the pipeline about which you want to get execution details.<br/>
        :return: pipelineExecution:  Represents information about the execution of a pipeline.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>artifactRevisions</i> A list of <code>ArtifactRevision</code> objects included in a pipeline execution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusSummary</i> A summary that contains a description of the pipeline execution status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the pipeline execution. <ul> <li> Cancelled: The pipeline’s definition was updated before the pipeline execution could be completed. </li> <li> InProgress: The pipeline execution is currently running. </li> <li> Stopped: The pipeline execution was manually stopped. For more information, see <a href="https://docs.aws.amazon.com/codepipeline/latest/userguide/concepts.html#concepts-executions-stopped">Stopped Executions</a>. </li> <li> Stopping: The pipeline execution received a request to be manually stopped. Depending on the selected stop mode, the execution is either completing or abandoning in-progress actions. For more information, see <a href="https://docs.aws.amazon.com/codepipeline/latest/userguide/concepts.html#concepts-executions-stopped">Stopped Executions</a>. </li> <li> Succeeded: The pipeline execution was completed successfully.  </li> <li> Superseded: While this pipeline execution was waiting for the next stage to be completed, a newer pipeline execution advanced and continued through the pipeline instead. For more information, see <a href="https://docs.aws.amazon.com/codepipeline/latest/userguide/concepts.html#concepts-superseded">Superseded Executions</a>. </li> <li> Failed: The pipeline execution was not completed successfully. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>pipelineExecutionId</i> The ID of the pipeline execution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>pipelineVersion</i> The version number of the pipeline with the specified pipeline execution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>pipelineName</i> The name of the pipeline with the specified pipeline execution.<br/>        """
        pass

    def get_pipeline_state(self, name: str) -> GetPipelineStateOutput:
        r"""Returns information about the state of a pipeline, including the stages and actions. <note> Values returned in the <code>revisionId</code> and <code>revisionUrl</code> fields indicate the source revision information, such as the commit ID, for the current state. </note>

        :param self:
        :param name:  The name of the pipeline about which you want to get information.<br/>
        :return: updated:  The date and time the pipeline was last updated, in timestamp format.<br/>created:  The date and time the pipeline was created, in timestamp format.<br/>stageStates:  A list of the pipeline stage output information, including stage name, state, most recent run details, whether the stage is disabled, and other data.<br/>pipelineVersion:  The version number of the pipeline. <note> A newly created pipeline is always assigned a version number of <code>1</code>. </note><br/>pipelineName:  The name of the pipeline for which you want to get the state.<br/>        """
        pass

    def get_third_party_job_details(self, clientToken: str, jobId: str) -> GetThirdPartyJobDetailsOutput:
        r"""Requests the details of a job for a third party action. Used for partner actions only. <important> When this API is called, AWS CodePipeline returns temporary credentials for the S3 bucket used to store artifacts for the pipeline, if the action requires access to that S3 bucket for input or output artifacts. This API also returns any secret values defined for the action. </important>

        :param self:
        :param clientToken:  The clientToken portion of the clientId and clientToken pair used to verify that the calling entity is allowed access to the job and its details.<br/>jobId:  The unique system-generated ID used for identifying the job.<br/>
        :return: jobDetails:  The details of the job, including any protected values defined for the job.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>nonce</i> A system-generated random number that AWS CodePipeline uses to ensure that the job is being worked on by only one job worker. Use this number in an <a>AcknowledgeThirdPartyJob</a> request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>data</i> The data to be returned by the third party job worker.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>data</b>: The data to be returned by the third party job worker.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The identifier used to identify the job details in AWS CodePipeline.<br/>Represents information about an action type.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>actionTypeId</b>: Represents information about an action type.        """
        pass

    def list_action_executions(self, pipelineName: str, filter: ActionExecutionFilter=None, maxResults: int=None, nextToken: str=None) -> ListActionExecutionsOutput:
        r"""Lists the action executions that have occurred in a pipeline.

        :param self:
        :param nextToken:  The token that was returned from the previous <code>ListActionExecutions</code> call, which can be used to return the next set of action executions in the list.<br/>maxResults:  The maximum number of results to return in a single call. To retrieve the remaining results, make another call with the returned nextToken value. Action execution history is retained for up to 12 months, based on action execution start times. Default value is 100.  <note> Detailed execution history is available for executions run on or after February 21, 2019. </note><br/>filter:  Input information used to filter action execution history.:<br/>pipelineName:   The name of the pipeline for which you want to list action execution history.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>pipelineExecutionId</i> The pipeline execution ID used to filter action execution history.<br/>
        :return: nextToken:  If the amount of returned information is significantly large, an identifier is also returned and can be used in a subsequent <code>ListActionExecutions</code> call to return the next set of action executions in the list.<br/>actionExecutionDetails:  The details for a list of recent executions, such as action execution ID.<br/>        """
        pass

    def list_action_types(self, actionOwnerFilter: str=None, nextToken: str=None, regionFilter: str=None) -> ListActionTypesOutput:
        r"""Gets a summary of all AWS CodePipeline action types associated with your account.

        :param self:
        :param regionFilter:  The Region to filter on for the list of action types.<br/>nextToken:  An identifier that was returned from the previous list action types call, which can be used to return the next set of action types in the list.<br/>actionOwnerFilter:  Filters the list of action types to those created by a specified entity.<br/>
        :return: nextToken:  If the amount of returned information is significantly large, an identifier is also returned. It can be used in a subsequent list action types call to return the next set of action types in the list.<br/>actionTypes:  Provides details of the action types.<br/>        """
        pass

    def list_pipeline_executions(self, pipelineName: str, maxResults: int=None, nextToken: str=None) -> ListPipelineExecutionsOutput:
        r"""Gets a summary of the most recent executions for a pipeline.

        :param self:
        :param nextToken:  The token that was returned from the previous <code>ListPipelineExecutions</code> call, which can be used to return the next set of pipeline executions in the list.<br/>maxResults:  The maximum number of results to return in a single call. To retrieve the remaining results, make another call with the returned nextToken value. Pipeline history is limited to the most recent 12 months, based on pipeline execution start times. Default value is 100.<br/>pipelineName:  The name of the pipeline for which you want to get execution summary information.<br/>
        :return: nextToken:  A token that can be used in the next <code>ListPipelineExecutions</code> call. To view all items in the list, continue to call this operation with each subsequent token until no more nextToken values are returned.<br/>pipelineExecutionSummaries:  A list of executions in the history of a pipeline.<br/>        """
        pass

    def list_pipelines(self, nextToken: str=None, maxResults: int=None) -> ListPipelinesOutput:
        r"""Gets a summary of all of the pipelines associated with your account.

        :param self:
        :param maxResults:  The maximum number of pipelines to return in a single call. To retrieve the remaining pipelines, make another call with the returned nextToken value. The minimum value you can specify is 1. The maximum accepted value is 1000.<br/>nextToken:  An identifier that was returned from the previous list pipelines call. It can be used to return the next set of pipelines in the list.<br/>
        :return: nextToken:  If the amount of returned information is significantly large, an identifier is also returned. It can be used in a subsequent list pipelines call to return the next set of pipelines in the list.<br/>pipelines:  The list of pipelines.<br/>        """
        pass

    def list_tags_for_resource(self, resourceArn: str, nextToken: str=None, maxResults: int=None) -> ListTagsForResourceOutput:
        r"""Gets the set of key-value pairs (metadata) that are used to manage the resource.

        :param self:
        :param maxResults:  The maximum number of results to return in a single call.<br/>nextToken:  The token that was returned from the previous API call, which would be used to return the next page of the list. The ListTagsforResource call lists all available tags in one call and does not use pagination.<br/>resourceArn:  The Amazon Resource Name (ARN) of the resource to get tags for.<br/>
        :return: nextToken:  If the amount of returned information is significantly large, an identifier is also returned and can be used in a subsequent API call to return the next page of the list. The ListTagsforResource call lists all available tags in one call and does not use pagination.<br/>tags:  The tags for the resource.<br/>        """
        pass

    def list_webhooks(self, NextToken: str=None, MaxResults: int=None) -> ListWebhooksOutput:
        r"""Gets a listing of all the webhooks in this AWS Region for this account. The output lists all webhooks and includes the webhook URL and ARN and the configuration for each webhook.

        :param self:
        :param MaxResults:  The maximum number of results to return in a single call. To retrieve the remaining results, make another call with the returned nextToken value.<br/>NextToken:  The token that was returned from the previous ListWebhooks call, which can be used to return the next set of webhooks in the list.<br/>
        :return: NextToken:  If the amount of returned information is significantly large, an identifier is also returned and can be used in a subsequent ListWebhooks call to return the next set of webhooks in the list. <br/>webhooks:  The JSON detail returned for each webhook in the list output for the ListWebhooks call.<br/>        """
        pass

    def poll_for_jobs(self, actionTypeId: ActionTypeId, maxBatchSize: int=None, queryParam: QueryParamMap=None) -> PollForJobsOutput:
        r"""Returns information about any jobs for AWS CodePipeline to act on. <code>PollForJobs</code> is valid only for action types with "Custom" in the owner field. If the action type contains "AWS" or "ThirdParty" in the owner field, the <code>PollForJobs</code> action returns an error. <important> When this API is called, AWS CodePipeline returns temporary credentials for the S3 bucket used to store artifacts for the pipeline, if the action requires access to that S3 bucket for input or output artifacts. This API also returns any secret values defined for the action. </important>

        :param self:
        :param queryParam:  A map of property names and values. For an action type with no queryable properties, this value must be null or an empty map. For an action type with a queryable property, you must supply that property as a key in the map. Only jobs whose action configuration matches the mapped value are returned.<br/>maxBatchSize:  The maximum number of jobs to return in a poll for jobs call.<br/>actionTypeId:  Represents information about an action type.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> A string that describes the action version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>provider</i> The provider of the service being called by the action. Valid providers are determined by the action category. For example, an action in the Deploy category type might have a provider of AWS CodeDeploy, which would be specified as CodeDeploy. For more information, see <a href="https://docs.aws.amazon.com/codepipeline/latest/userguide/reference-pipeline-structure.html#actions-valid-providers">Valid Action Types and Providers in CodePipeline</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>owner</i> The creator of the action being called. There are three valid values for the <code>Owner</code> field in the action category section within your pipeline structure: <code>AWS</code>, <code>ThirdParty</code>, and <code>Custom</code>. For more information, see <a href="https://docs.aws.amazon.com/codepipeline/latest/userguide/reference-pipeline-structure.html#actions-valid-providers">Valid Action Types and Providers in CodePipeline</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>category</i> A category defines what kind of action can be taken in the stage, and constrains the provider type for the action. Valid categories are limited to one of the following values.  <ul> <li> Source </li> <li> Build </li> <li> Test </li> <li> Deploy </li> <li> Invoke </li> <li> Approval </li> </ul><br/>
        :return: jobs:  Information about the jobs to take action on.<br/>        """
        pass

    def poll_for_third_party_jobs(self, actionTypeId: ActionTypeId, maxBatchSize: int=None) -> PollForThirdPartyJobsOutput:
        r"""Determines whether there are any third party jobs for a job worker to act on. Used for partner actions only. <important> When this API is called, AWS CodePipeline returns temporary credentials for the S3 bucket used to store artifacts for the pipeline, if the action requires access to that S3 bucket for input or output artifacts. </important>

        :param self:
        :param maxBatchSize:  The maximum number of jobs to return in a poll for jobs call.<br/>actionTypeId:  Represents information about an action type.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> A string that describes the action version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>provider</i> The provider of the service being called by the action. Valid providers are determined by the action category. For example, an action in the Deploy category type might have a provider of AWS CodeDeploy, which would be specified as CodeDeploy. For more information, see <a href="https://docs.aws.amazon.com/codepipeline/latest/userguide/reference-pipeline-structure.html#actions-valid-providers">Valid Action Types and Providers in CodePipeline</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>owner</i> The creator of the action being called. There are three valid values for the <code>Owner</code> field in the action category section within your pipeline structure: <code>AWS</code>, <code>ThirdParty</code>, and <code>Custom</code>. For more information, see <a href="https://docs.aws.amazon.com/codepipeline/latest/userguide/reference-pipeline-structure.html#actions-valid-providers">Valid Action Types and Providers in CodePipeline</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>category</i> A category defines what kind of action can be taken in the stage, and constrains the provider type for the action. Valid categories are limited to one of the following values.  <ul> <li> Source </li> <li> Build </li> <li> Test </li> <li> Deploy </li> <li> Invoke </li> <li> Approval </li> </ul><br/>
        :return: jobs:  Information about the jobs to take action on.<br/>        """
        pass

    def put_action_revision(self, actionRevision: ActionRevision, actionName: str, stageName: str, pipelineName: str) -> PutActionRevisionOutput:
        r"""Provides information to AWS CodePipeline about new revisions to a source.

        :param self:
        :param actionRevision:  Represents information about the version (or revision) of an action.:<br/>actionName:  The name of the action that processes the revision.<br/>stageName:  The name of the stage that contains the action that acts on the revision.<br/>pipelineName:  The name of the pipeline that starts processing the revision to the source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>created</i> The date and time when the most recent version of the action was created, in timestamp format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>revisionChangeId</i> The unique identifier of the change that set the state to this revision (for example, a deployment ID or timestamp).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>revisionId</i> The system-generated unique ID that identifies the revision number of the action.<br/>
        :return: pipelineExecutionId:  The ID of the current workflow state of the pipeline.<br/>newRevision:  Indicates whether the artifact revision was previously used in an execution of the specified pipeline.<br/>        """
        pass

    def put_approval_result(self, token: str, result: ApprovalResult, actionName: str, stageName: str, pipelineName: str) -> PutApprovalResultOutput:
        r"""Provides the response to a manual approval request to AWS CodePipeline. Valid responses include Approved and Rejected.

        :param self:
        :param token:  The system-generated token used to identify a unique approval request. The token for each open approval request can be obtained using the <a>GetPipelineState</a> action. It is used to validate that the approval request corresponding to this token is still valid.<br/>result:  Represents information about the result of the approval request.:<br/>actionName:  The name of the action for which approval is requested.<br/>stageName:  The name of the stage that contains the action.<br/>pipelineName:  The name of the pipeline that contains the action. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The response submitted by a reviewer assigned to an approval action request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>summary</i> The summary of the current status of the approval request.<br/>
        :return: approvedAt:  The timestamp showing when the approval or rejection was submitted.<br/>        """
        pass

    def put_job_failure_result(self, failureDetails: FailureDetails, jobId: str):
        r"""Represents the failure of a job as returned to the pipeline by a job worker. Used for custom actions only.

        :param self:
        :param failureDetails:  The details about the failure of a job.:<br/>jobId:  The unique system-generated ID of the job that failed. This is the same ID returned from <code>PollForJobs</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>externalExecutionId</i> The external ID of the run of the action that failed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>message</i> The message about the failure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of the failure.<br/>
        :return:         """
        pass

    def put_job_success_result(self, jobId: str, currentRevision: CurrentRevision=None, continuationToken: str=None, executionDetails: ExecutionDetails=None, outputVariables: OutputVariablesMap=None):
        r"""Represents the success of a job as returned to the pipeline by a job worker. Used for custom actions only.

        :param self:
        :param outputVariables:  Key-value pairs produced as output by a job worker that can be made available to a downstream action configuration. <code>outputVariables</code> can be included only when there is no continuation token on the request.<br/>executionDetails:  The execution details of the successful job, such as the actions taken by the job worker.:<br/>continuationToken:  A token generated by a job worker, such as an AWS CodeDeploy deployment ID, that a successful job provides to identify a custom action in progress. Future jobs use this token to identify the running instance of the action. It can be reused to return more information about the progress of the custom action. When the action is complete, no continuation token should be supplied.<br/>currentRevision:  The ID of the current revision of the artifact successfully worked on by the job.:<br/>jobId:  The unique system-generated ID of the job that succeeded. This is the same ID returned from <code>PollForJobs</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>revisionSummary</i> The summary of the most recent revision of the artifact.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>created</i> The date and time when the most recent revision of the artifact was created, in timestamp format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>changeIdentifier</i> The change identifier for the current revision.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>revision</i> The revision ID of the current version of an artifact.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>percentComplete</i> The percentage of work completed on the action, represented on a scale of 0 to 100 percent.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>externalExecutionId</i> The system-generated unique ID of this action used to identify this job worker in any external systems, such as AWS CodeDeploy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>summary</i> The summary of the current status of the actions.<br/>
        :return:         """
        pass

    def put_third_party_job_failure_result(self, failureDetails: FailureDetails, clientToken: str, jobId: str):
        r"""Represents the failure of a third party job as returned to the pipeline by a job worker. Used for partner actions only.

        :param self:
        :param failureDetails:  Represents information about failure details.:<br/>clientToken:  The clientToken portion of the clientId and clientToken pair used to verify that the calling entity is allowed access to the job and its details.<br/>jobId:  The ID of the job that failed. This is the same ID returned from <code>PollForThirdPartyJobs</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>externalExecutionId</i> The external ID of the run of the action that failed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>message</i> The message about the failure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of the failure.<br/>
        :return:         """
        pass

    def put_third_party_job_success_result(self, clientToken: str, jobId: str, currentRevision: CurrentRevision=None, continuationToken: str=None, executionDetails: ExecutionDetails=None):
        r"""Represents the success of a third party job as returned to the pipeline by a job worker. Used for partner actions only.

        :param self:
        :param executionDetails:  The details of the actions taken and results produced on an artifact as it passes through stages in the pipeline. :<br/>continuationToken:  A token generated by a job worker, such as an AWS CodeDeploy deployment ID, that a successful job provides to identify a partner action in progress. Future jobs use this token to identify the running instance of the action. It can be reused to return more information about the progress of the partner action. When the action is complete, no continuation token should be supplied.<br/>currentRevision:  Represents information about a current revision.:<br/>clientToken:  The clientToken portion of the clientId and clientToken pair used to verify that the calling entity is allowed access to the job and its details.<br/>jobId:  The ID of the job that successfully completed. This is the same ID returned from <code>PollForThirdPartyJobs</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>revisionSummary</i> The summary of the most recent revision of the artifact.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>created</i> The date and time when the most recent revision of the artifact was created, in timestamp format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>changeIdentifier</i> The change identifier for the current revision.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>revision</i> The revision ID of the current version of an artifact.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>percentComplete</i> The percentage of work completed on the action, represented on a scale of 0 to 100 percent.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>externalExecutionId</i> The system-generated unique ID of this action used to identify this job worker in any external systems, such as AWS CodeDeploy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>summary</i> The summary of the current status of the actions.<br/>
        :return:         """
        pass

    def put_webhook(self, webhook: WebhookDefinition, tags: List[Tag]=None) -> PutWebhookOutput:
        r"""Defines a webhook and returns a unique webhook URL generated by CodePipeline. This URL can be supplied to third party source hosting providers to call every time there's a code change. When CodePipeline receives a POST request on this URL, the pipeline defined in the webhook is started as long as the POST request satisfied the authentication and filtering requirements supplied when defining the webhook. RegisterWebhookWithThirdParty and DeregisterWebhookWithThirdParty APIs can be used to automatically configure supported third parties to call the generated webhook URL.

        :param self:
        :param tags:  The tags for the webhook.<br/>webhook:  The detail provided in an input file to create the webhook, such as the webhook name, the pipeline name, and the action name. Give the webhook a unique name that helps you identify it. You might name the webhook after the pipeline and action it targets so that you can easily recognize what it's used for later.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>authenticationConfiguration</i> Properties that configure the authentication applied to incoming webhook trigger requests. The required properties depend on the authentication type. For GITHUB_HMAC, only the <code>SecretToken </code>property must be set. For IP, only the <code>AllowedIPRange </code>property must be set to a valid CIDR range. For UNAUTHENTICATED, no properties can be set.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>authenticationConfiguration</b>: Properties that configure the authentication applied to incoming webhook trigger requests. The required properties depend on the authentication type. For GITHUB_HMAC, only the <code>SecretToken </code>property must be set. For IP, only the <code>AllowedIPRange </code>property must be set to a valid CIDR range. For UNAUTHENTICATED, no properties can be set.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>authentication</i> Supported options are GITHUB_HMAC, IP, and UNAUTHENTICATED. <ul> <li> For information about the authentication scheme implemented by GITHUB_HMAC, see <a href="https://developer.github.com/webhooks/securing/">Securing your webhooks</a> on the GitHub Developer website. </li> <li>  IP rejects webhooks trigger requests unless they originate from an IP address in the IP range whitelisted in the authentication configuration. </li> <li>  UNAUTHENTICATED accepts all webhook trigger requests regardless of origin. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>filters</i> A list of rules applied to the body/payload sent in the POST request to a webhook URL. All defined rules must pass for the request to be accepted and the pipeline started.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>targetAction</i> The name of the action in a pipeline you want to connect to the webhook. The action must be from the source (first) stage of the pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>targetPipeline</i> The name of the pipeline you want to connect to the webhook.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the webhook.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretToken</i> The property used to configure GitHub authentication. For GITHUB_HMAC, only the <code>SecretToken</code> property must be set.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowedIPRange</i> The property used to configure acceptance of webhooks in an IP address range. For IP, only the <code>AllowedIPRange</code> property must be set. This property must be set to a valid CIDR range.<br/>
        :return: webhook:  The detail returned from creating the webhook, such as the webhook name, webhook URL, and webhook ARN.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> Specifies the tags applied to the webhook.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the webhook.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastTriggered</i> The date and time a webhook was last successfully triggered, in timestamp format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>errorCode</i> The number code of the error.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>errorMessage</i> The text of the error message about the webhook.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>url</i> A unique URL generated by CodePipeline. When a POST request is made to this URL, the defined pipeline is started as long as the body of the post request satisfies the defined authentication and filtering conditions. Deleting and re-creating a webhook makes the old URL invalid and generates a new one.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>definition</i> The detail returned for each webhook, such as the webhook authentication type and filter rules.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>definition</b>: The detail returned for each webhook, such as the webhook authentication type and filter rules.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>authentication</i> Supported options are GITHUB_HMAC, IP, and UNAUTHENTICATED. <ul> <li> For information about the authentication scheme implemented by GITHUB_HMAC, see <a href="https://developer.github.com/webhooks/securing/">Securing your webhooks</a> on the GitHub Developer website. </li> <li>  IP rejects webhooks trigger requests unless they originate from an IP address in the IP range whitelisted in the authentication configuration. </li> <li>  UNAUTHENTICATED accepts all webhook trigger requests regardless of origin. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>filters</i> A list of rules applied to the body/payload sent in the POST request to a webhook URL. All defined rules must pass for the request to be accepted and the pipeline started.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>targetAction</i> The name of the action in a pipeline you want to connect to the webhook. The action must be from the source (first) stage of the pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>targetPipeline</i> The name of the pipeline you want to connect to the webhook.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the webhook.<br/>Properties that configure the authentication applied to incoming webhook trigger requests. The required properties depend on the authentication type. For GITHUB_HMAC, only the <code>SecretToken </code>property must be set. For IP, only the <code>AllowedIPRange </code>property must be set to a valid CIDR range. For UNAUTHENTICATED, no properties can be set.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>authenticationConfiguration</b>: Properties that configure the authentication applied to incoming webhook trigger requests. The required properties depend on the authentication type. For GITHUB_HMAC, only the <code>SecretToken </code>property must be set. For IP, only the <code>AllowedIPRange </code>property must be set to a valid CIDR range. For UNAUTHENTICATED, no properties can be set.        """
        pass

    def register_webhook_with_third_party(self, webhookName: str=None) -> RegisterWebhookWithThirdPartyOutput:
        r"""Configures a connection between the webhook that was created and the external tool with events to be detected.

        :param self:
        :param webhookName:  The name of an existing webhook created with PutWebhook to register with a supported third party. <br/>
        :return:         """
        pass

    def retry_stage_execution(self, retryMode: str, pipelineExecutionId: str, stageName: str, pipelineName: str) -> RetryStageExecutionOutput:
        r"""Resumes the pipeline execution by retrying the last failed actions in a stage. You can retry a stage immediately if any of the actions in the stage fail. When you retry, all actions that are still in progress continue working, and failed actions are triggered again.

        :param self:
        :param retryMode:  The scope of the retry attempt. Currently, the only supported value is FAILED_ACTIONS.<br/>pipelineExecutionId:  The ID of the pipeline execution in the failed stage to be retried. Use the <a>GetPipelineState</a> action to retrieve the current pipelineExecutionId of the failed stage<br/>stageName:  The name of the failed stage to be retried.<br/>pipelineName:  The name of the pipeline that contains the failed stage.<br/>
        :return: pipelineExecutionId:  The ID of the current workflow execution in the failed stage.<br/>        """
        pass

    def start_pipeline_execution(self, name: str, clientRequestToken: str=None) -> StartPipelineExecutionOutput:
        r"""Starts the specified pipeline. Specifically, it begins processing the latest commit to the source location specified as part of the pipeline.

        :param self:
        :param clientRequestToken:  The system-generated unique ID used to identify a unique execution request.<br/>name:  The name of the pipeline to start.<br/>
        :return: pipelineExecutionId:  The unique system-generated ID of the pipeline execution that was started.<br/>        """
        pass

    def stop_pipeline_execution(self, pipelineExecutionId: str, pipelineName: str, abandon: Boolean=None, reason: str=None) -> StopPipelineExecutionOutput:
        r"""Stops the specified pipeline execution. You choose to either stop the pipeline execution by completing in-progress actions without starting subsequent actions, or by abandoning in-progress actions. While completing or abandoning in-progress actions, the pipeline execution is in a <code>Stopping</code> state. After all in-progress actions are completed or abandoned, the pipeline execution is in a <code>Stopped</code> state.

        :param self:
        :param reason:  Use this option to enter comments, such as the reason the pipeline was stopped.<br/>abandon:  Use this option to stop the pipeline execution by abandoning, rather than finishing, in-progress actions. <note> This option can lead to failed or out-of-sequence tasks. </note><br/>pipelineExecutionId:  The ID of the pipeline execution to be stopped in the current stage. Use the <code>GetPipelineState</code> action to retrieve the current pipelineExecutionId.<br/>pipelineName:  The name of the pipeline to stop.<br/>
        :return: pipelineExecutionId:  The unique system-generated ID of the pipeline execution that was stopped.<br/>        """
        pass

    def tag_resource(self, tags: List[Tag], resourceArn: str) -> TagResourceOutput:
        r"""Adds to or modifies the tags of the given resource. Tags are metadata that can be used to manage a resource. 

        :param self:
        :param tags:  The tags you want to modify or add to the resource.<br/>resourceArn:  The Amazon Resource Name (ARN) of the resource you want to add tags to.<br/>
        :return:         """
        pass

    def untag_resource(self, tagKeys: List[TagKey], resourceArn: str) -> UntagResourceOutput:
        r"""Removes tags from an AWS resource.

        :param self:
        :param tagKeys:  The list of keys for the tags to be removed from the resource.<br/>resourceArn:   The Amazon Resource Name (ARN) of the resource to remove tags from.<br/>
        :return:         """
        pass

    def update_action_type(self, actionType: ActionTypeDeclaration):
        r"""Updates an action type that was created with any supported integration model, where the action type is to be used by customers of the action type provider. Use a JSON file with the action definition and <code>UpdateActionType</code> to provide the full structure.

        :param self:
        :param actionType:  The action type definition for the action type to be updated.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>urls</i> The links associated with the action type to be updated.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>urls</b>: The links associated with the action type to be updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>properties</i> The properties of the action type to be updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>permissions</i> Details identifying the accounts with permissions to use the action type.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>permissions</b>: Details identifying the accounts with permissions to use the action type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>outputArtifactDetails</i> Details for the output artifacts, such as a built application, that are the result of the action. For example, the minimum and maximum number of output artifacts allowed.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>outputArtifactDetails</b>: Details for the output artifacts, such as a built application, that are the result of the action. For example, the minimum and maximum number of output artifacts allowed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>inputArtifactDetails</i> Details for the artifacts, such as application files, to be worked on by the action. For example, the minimum and maximum number of input artifacts allowed.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>inputArtifactDetails</b>: Details for the artifacts, such as application files, to be worked on by the action. For example, the minimum and maximum number of input artifacts allowed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The action category, owner, provider, and version of the action type to be updated.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>id</b>: The action category, owner, provider, and version of the action type to be updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>executor</i> Information about the executor for an action type that was created with any supported integration model.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>executor</b>: Information about the executor for an action type that was created with any supported integration model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> The description for the action type to be updated.<br/>The action configuration properties for the action type. These properties are specified in the action definition when the action type is created.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>configuration</b>: The action configuration properties for the action type. These properties are specified in the action definition when the action type is created.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> A string that describes the action type version.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>provider</i> The provider of the action type being called. The provider name is supplied when the action type is created.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>owner</i> The creator of the action type being called: <code>AWS</code> or <code>ThirdParty</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>category</i> Defines what kind of action can be taken in the stage, one of the following: <ul> <li>  <code>Source</code>  </li> <li>  <code>Build</code>  </li> <li>  <code>Test</code>  </li> <li>  <code>Deploy</code>  </li> <li>  <code>Approval</code>  </li> <li>  <code>Invoke</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>maximumCount</i> The maximum number of artifacts that can be used with the actiontype. For example, you should specify a minimum and maximum of zero input artifacts for an action type with a category of <code>source</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>minimumCount</i> The minimum number of artifacts that can be used with the action type. For example, you should specify a minimum and maximum of zero input artifacts for an action type with a category of <code>source</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>maximumCount</i> The maximum number of artifacts that can be used with the actiontype. For example, you should specify a minimum and maximum of zero input artifacts for an action type with a category of <code>source</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>minimumCount</i> The minimum number of artifacts that can be used with the action type. For example, you should specify a minimum and maximum of zero input artifacts for an action type with a category of <code>source</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>allowedAccounts</i> A list of AWS account IDs with access to use the action type in their pipelines.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>revisionUrlTemplate</i> The URL returned to the CodePipeline console that contains a link to the page where customers can update or change the configuration of the external action.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>executionUrlTemplate</i> The link to an execution page for the action type in progress. For example, for a CodeDeploy action, this link is shown on the pipeline view page in the CodePipeline console, and it links to a CodeDeploy status page.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>entityUrlTemplate</i> The URL returned to the CodePipeline console that provides a deep link to the resources of the external system, such as a status page. This link is provided as part of the action display in the pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>configurationUrl</i> The URL returned to the CodePipeline console that contains a link to the page where customers can configure the external action.<br/>
        :return:         """
        pass

    def update_pipeline(self, pipeline: PipelineDeclaration) -> UpdatePipelineOutput:
        r"""Updates a specified pipeline with edits or changes to its structure. Use a JSON file with the pipeline structure and <code>UpdatePipeline</code> to provide the full structure of the pipeline. Updating the pipeline increases the version number of the pipeline by 1.

        :param self:
        :param pipeline:  The name of the pipeline to be updated.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The version number of the pipeline. A new pipeline always has a version number of 1. This number is incremented when a pipeline is updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>stages</i> The stage in which to perform the action.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>artifactStores</i> A mapping of <code>artifactStore</code> objects and their corresponding AWS Regions. There must be an artifact store for the pipeline Region and for each cross-region action in the pipeline. <note> You must include either <code>artifactStore</code> or <code>artifactStores</code> in your pipeline, but you cannot use both. If you create a cross-region action in your pipeline, you must use <code>artifactStores</code>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>artifactStore</i> Represents information about the S3 bucket where artifacts are stored for the pipeline. <note> You must include either <code>artifactStore</code> or <code>artifactStores</code> in your pipeline, but you cannot use both. If you create a cross-region action in your pipeline, you must use <code>artifactStores</code>. </note>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>artifactStore</b>: Represents information about the S3 bucket where artifacts are stored for the pipeline. <note> You must include either <code>artifactStore</code> or <code>artifactStores</code> in your pipeline, but you cannot use both. If you create a cross-region action in your pipeline, you must use <code>artifactStores</code>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>roleArn</i> The Amazon Resource Name (ARN) for AWS CodePipeline to use to either perform actions with no <code>actionRoleArn</code>, or to use to assume roles for actions with an <code>actionRoleArn</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i> The S3 bucket used for storing the artifacts for a pipeline. You can specify the name of an S3 bucket but not a folder in the bucket. A folder to contain the pipeline artifacts is created for you based on the name of the pipeline. You can use any S3 bucket in the same AWS Region as the pipeline to store your pipeline artifacts.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of the artifact store, such as S3.<br/>The encryption key used to encrypt the data in the artifact store, such as an AWS Key Management Service (AWS KMS) key. If this is undefined, the default key for Amazon S3 is used.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>encryptionKey</b>: The encryption key used to encrypt the data in the artifact store, such as an AWS Key Management Service (AWS KMS) key. If this is undefined, the default key for Amazon S3 is used.
        :return: pipeline:  The structure of the updated pipeline.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The version number of the pipeline. A new pipeline always has a version number of 1. This number is incremented when a pipeline is updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>stages</i> The stage in which to perform the action.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>artifactStores</i> A mapping of <code>artifactStore</code> objects and their corresponding AWS Regions. There must be an artifact store for the pipeline Region and for each cross-region action in the pipeline. <note> You must include either <code>artifactStore</code> or <code>artifactStores</code> in your pipeline, but you cannot use both. If you create a cross-region action in your pipeline, you must use <code>artifactStores</code>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>artifactStore</i> Represents information about the S3 bucket where artifacts are stored for the pipeline. <note> You must include either <code>artifactStore</code> or <code>artifactStores</code> in your pipeline, but you cannot use both. If you create a cross-region action in your pipeline, you must use <code>artifactStores</code>. </note>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>artifactStore</b>: Represents information about the S3 bucket where artifacts are stored for the pipeline. <note> You must include either <code>artifactStore</code> or <code>artifactStores</code> in your pipeline, but you cannot use both. If you create a cross-region action in your pipeline, you must use <code>artifactStores</code>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>roleArn</i> The Amazon Resource Name (ARN) for AWS CodePipeline to use to either perform actions with no <code>actionRoleArn</code>, or to use to assume roles for actions with an <code>actionRoleArn</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i> The S3 bucket used for storing the artifacts for a pipeline. You can specify the name of an S3 bucket but not a folder in the bucket. A folder to contain the pipeline artifacts is created for you based on the name of the pipeline. You can use any S3 bucket in the same AWS Region as the pipeline to store your pipeline artifacts.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of the artifact store, such as S3.<br/>The encryption key used to encrypt the data in the artifact store, such as an AWS Key Management Service (AWS KMS) key. If this is undefined, the default key for Amazon S3 is used.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>encryptionKey</b>: The encryption key used to encrypt the data in the artifact store, such as an AWS Key Management Service (AWS KMS) key. If this is undefined, the default key for Amazon S3 is used.        """
        pass





class CodeStar(BaseClient):
    r"""<fullname>AWS CodeStar</fullname> This is the API reference for AWS CodeStar. This reference provides descriptions of the operations and data types for the AWS CodeStar API along with usage examples. You can use the AWS CodeStar API to work with: Projects and their resources, by calling the following: <ul> <li>  <code>DeleteProject</code>, which deletes a project. </li> <li>  <code>DescribeProject</code>, which lists the attributes of a project. </li> <li>  <code>ListProjects</code>, which lists all projects associated with your AWS account. </li> <li>  <code>ListResources</code>, which lists the resources associated with a project. </li> <li>  <code>ListTagsForProject</code>, which lists the tags associated with a project. </li> <li>  <code>TagProject</code>, which adds tags to a project. </li> <li>  <code>UntagProject</code>, which removes tags from a project. </li> <li>  <code>UpdateProject</code>, which updates the attributes of a project. </li> </ul> Teams and team members, by calling the following: <ul> <li>  <code>AssociateTeamMember</code>, which adds an IAM user to the team for a project. </li> <li>  <code>DisassociateTeamMember</code>, which removes an IAM user from the team for a project. </li> <li>  <code>ListTeamMembers</code>, which lists all the IAM users in the team for a project, including their roles and attributes. </li> <li>  <code>UpdateTeamMember</code>, which updates a team member's attributes in a project. </li> </ul> Users, by calling the following: <ul> <li>  <code>CreateUserProfile</code>, which creates a user profile that contains data associated with the user across all projects. </li> <li>  <code>DeleteUserProfile</code>, which deletes all user profile information across all projects. </li> <li>  <code>DescribeUserProfile</code>, which describes the profile of a user. </li> <li>  <code>ListUserProfiles</code>, which lists all user profiles. </li> <li>  <code>UpdateUserProfile</code>, which updates the profile for a user. </li> </ul>"""


    class ListProjectsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_projects` for valid parameters"""
            pass
    class ListResourcesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_resources` for valid parameters"""
            pass
    class ListTeamMembersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_team_members` for valid parameters"""
            pass
    class ListUserProfilesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_user_profiles` for valid parameters"""
            pass


    class AssociateTeamMemberRequest(Mapping):
        pass
    
    class AssociateTeamMemberResult(Mapping):
        pass
    
    class RemoteAccessAllowed(object):
        pass
    
    class CreateProjectRequest(Mapping):
        pass
    
    class CreateProjectResult(Mapping):
        pass
    
    class Code(Mapping):
        pass
    
    class Toolchain(Mapping):
        pass
    
    class Tags(object):
        pass
    
    class CreateUserProfileRequest(Mapping):
        pass
    
    class CreateUserProfileResult(Mapping):
        pass
    
    class DeleteProjectRequest(Mapping):
        pass
    
    class DeleteProjectResult(Mapping):
        pass
    
    class DeleteStack(object):
        pass
    
    class DeleteUserProfileRequest(Mapping):
        pass
    
    class DeleteUserProfileResult(Mapping):
        pass
    
    class DescribeProjectRequest(Mapping):
        pass
    
    class DescribeProjectResult(Mapping):
        pass
    
    class DescribeUserProfileRequest(Mapping):
        pass
    
    class DescribeUserProfileResult(Mapping):
        pass
    
    class DisassociateTeamMemberRequest(Mapping):
        pass
    
    class DisassociateTeamMemberResult(Mapping):
        pass
    
    class ListProjectsRequest(Mapping):
        pass
    
    class ListProjectsResult(Mapping):
        pass
    
    class ListResourcesRequest(Mapping):
        pass
    
    class ListResourcesResult(Mapping):
        pass
    
    class ListTagsForProjectRequest(Mapping):
        pass
    
    class ListTagsForProjectResult(Mapping):
        pass
    
    class ListTeamMembersRequest(Mapping):
        pass
    
    class ListTeamMembersResult(Mapping):
        pass
    
    class ListUserProfilesRequest(Mapping):
        pass
    
    class ListUserProfilesResult(Mapping):
        pass
    
    class TagProjectRequest(Mapping):
        pass
    
    class TagProjectResult(Mapping):
        pass
    
    class UntagProjectRequest(Mapping):
        pass
    
    class UntagProjectResult(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateProjectRequest(Mapping):
        pass
    
    class UpdateProjectResult(Mapping):
        pass
    
    class UpdateTeamMemberRequest(Mapping):
        pass
    
    class UpdateTeamMemberResult(Mapping):
        pass
    
    class UpdateUserProfileRequest(Mapping):
        pass
    
    class UpdateUserProfileResult(Mapping):
        pass
    
    def associate_team_member(self, projectRole: str, userArn: str, projectId: str, clientRequestToken: str=None, remoteAccessAllowed: RemoteAccessAllowed=None) -> AssociateTeamMemberResult:
        r"""Adds an IAM user to the team for an AWS CodeStar project.

        :param self:
        :param remoteAccessAllowed:  Whether the team member is allowed to use an SSH public/private key pair to remotely access project resources, for example Amazon EC2 instances.<br/>projectRole:  The AWS CodeStar project role that will apply to this user. This role determines what actions a user can take in an AWS CodeStar project.<br/>userArn:  The Amazon Resource Name (ARN) for the IAM user you want to add to the AWS CodeStar project.<br/>clientRequestToken:  A user- or system-generated token that identifies the entity that requested the team member association to the project. This token can be used to repeat the request.<br/>projectId:  The ID of the project to which you will add the IAM user.<br/>
        :return: clientRequestToken:  The user- or system-generated token from the initial request that can be used to repeat the request.<br/>        """
        pass

    def create_project(self, id: str, name: str, description: str=None, clientRequestToken: str=None, sourceCode: List[Code]=None, toolchain: Toolchain=None, tags: Tags=None) -> CreateProjectResult:
        r"""Creates a project, including project resources. This action creates a project based on a submitted project request. A set of source code files and a toolchain template file can be included with the project request. If these are not provided, an empty project is created.

        :param self:
        :param tags:  The tags created for the project.<br/>toolchain:  The name of the toolchain template file submitted with the project request. If this parameter is specified, the request must also include the sourceCode parameter.:<br/>sourceCode:  A list of the Code objects submitted with the project request. If this parameter is specified, the request must also include the toolchain parameter.<br/>clientRequestToken:  A user- or system-generated token that identifies the entity that requested project creation. This token can be used to repeat the request.<br/>description:  The description of the project, if any.<br/>id:  The ID of the project to be created in AWS CodeStar.<br/>name:  The display name for the project to be created in AWS CodeStar.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>stackParameters</i> The list of parameter overrides to be passed into the toolchain template during stack provisioning, if any.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>roleArn</i> The service role ARN for AWS CodeStar to use for the toolchain template during stack provisioning.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>source</i> The Amazon S3 location where the toolchain template file provided with the project request is stored. AWS CodeStar retrieves the file during project creation.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>source</b>: The Amazon S3 location where the toolchain template file provided with the project request is stored. AWS CodeStar retrieves the file during project creation.<br/>The Amazon S3 bucket where the toolchain template file provided with the project request is stored.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>s3</b>: The Amazon S3 bucket where the toolchain template file provided with the project request is stored.
        :return: projectTemplateId:  Reserved for future use.<br/>clientRequestToken:  A user- or system-generated token that identifies the entity that requested project creation.<br/>arn:  The Amazon Resource Name (ARN) of the created project.<br/>id:  The ID of the project.<br/>        """
        pass

    def create_user_profile(self, emailAddress: str, displayName: str, userArn: str, sshPublicKey: str=None) -> CreateUserProfileResult:
        r"""Creates a profile for a user that includes user preferences, such as the display name and email address assocciated with the user, in AWS CodeStar. The user profile is not project-specific. Information in the user profile is displayed wherever the user's information appears to other users in AWS CodeStar.

        :param self:
        :param sshPublicKey:  The SSH public key associated with the user in AWS CodeStar. If a project owner allows the user remote access to project resources, this public key will be used along with the user's private key for SSH access.<br/>emailAddress:  The email address that will be displayed as part of the user's profile in AWS CodeStar.<br/>displayName:  The name that will be displayed as the friendly name for the user in AWS CodeStar. <br/>userArn:  The Amazon Resource Name (ARN) of the user in IAM.<br/>
        :return: lastModifiedTimestamp:  The date the user profile was last modified, in timestamp format.<br/>createdTimestamp:  The date the user profile was created, in timestamp format.<br/>sshPublicKey:  The SSH public key associated with the user in AWS CodeStar. This is the public portion of the public/private keypair the user can use to access project resources if a project owner allows the user remote access to those resources.<br/>emailAddress:  The email address that is displayed as part of the user's profile in AWS CodeStar.<br/>displayName:  The name that is displayed as the friendly name for the user in AWS CodeStar.<br/>userArn:  The Amazon Resource Name (ARN) of the user in IAM.<br/>        """
        pass

    def delete_project(self, id: str, clientRequestToken: str=None, deleteStack: DeleteStack=None) -> DeleteProjectResult:
        r"""Deletes a project, including project resources. Does not delete users associated with the project, but does delete the IAM roles that allowed access to the project.

        :param self:
        :param deleteStack:  Whether to send a delete request for the primary stack in AWS CloudFormation originally used to generate the project and its resources. This option will delete all AWS resources for the project (except for any buckets in Amazon S3) as well as deleting the project itself. Recommended for most use cases.<br/>clientRequestToken:  A user- or system-generated token that identifies the entity that requested project deletion. This token can be used to repeat the request. <br/>id:  The ID of the project to be deleted in AWS CodeStar.<br/>
        :return: projectArn:  The Amazon Resource Name (ARN) of the deleted project.<br/>stackId:  The ID of the primary stack in AWS CloudFormation that will be deleted as part of deleting the project and its resources.<br/>        """
        pass

    def delete_user_profile(self, userArn: str) -> DeleteUserProfileResult:
        r"""Deletes a user profile in AWS CodeStar, including all personal preference data associated with that profile, such as display name and email address. It does not delete the history of that user, for example the history of commits made by that user.

        :param self:
        :param userArn:  The Amazon Resource Name (ARN) of the user to delete from AWS CodeStar.<br/>
        :return: userArn:  The Amazon Resource Name (ARN) of the user deleted from AWS CodeStar.<br/>        """
        pass

    def describe_project(self, id: str) -> DescribeProjectResult:
        r"""Describes a project and its resources.

        :param self:
        :param id:  The ID of the project.<br/>
        :return: status:  The project creation or deletion status.:<br/>projectTemplateId:  The ID for the AWS CodeStar project template used to create the project.<br/>stackId:  The ID of the primary stack in AWS CloudFormation used to generate resources for the project.<br/>createdTimeStamp:  The date and time the project was created, in timestamp format.<br/>clientRequestToken:  A user- or system-generated token that identifies the entity that requested project creation. <br/>description:  The description of the project, if any.<br/>arn:  The Amazon Resource Name (ARN) for the project.<br/>id:  The ID of the project.<br/>name:  The display name for the project.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>reason</i> In the case of a project creation or deletion failure, a reason for the failure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>state</i> The phase of completion for a project creation or deletion.<br/>        """
        pass

    def describe_user_profile(self, userArn: str) -> DescribeUserProfileResult:
        r"""Describes a user in AWS CodeStar and the user attributes across all projects.

        :param self:
        :param userArn:  The Amazon Resource Name (ARN) of the user.<br/>
        :return: lastModifiedTimestamp:  The date and time when the user profile was last modified, in timestamp format.<br/>createdTimestamp:  The date and time when the user profile was created in AWS CodeStar, in timestamp format.<br/>sshPublicKey:  The SSH public key associated with the user. This SSH public key is associated with the user profile, and can be used in conjunction with the associated private key for access to project resources, such as Amazon EC2 instances, if a project owner grants remote access to those resources.<br/>emailAddress:  The email address for the user. Optional.<br/>displayName:  The display name shown for the user in AWS CodeStar projects. For example, this could be set to both first and last name ("Mary Major") or a single name ("Mary"). The display name is also used to generate the initial icon associated with the user in AWS CodeStar projects. If spaces are included in the display name, the first character that appears after the space will be used as the second character in the user initial icon. The initial icon displays a maximum of two characters, so a display name with more than one space (for example "Mary Jane Major") would generate an initial icon using the first character and the first character after the space ("MJ", not "MM").<br/>userArn:  The Amazon Resource Name (ARN) of the user.<br/>        """
        pass

    def disassociate_team_member(self, userArn: str, projectId: str) -> DisassociateTeamMemberResult:
        r"""Removes a user from a project. Removing a user from a project also removes the IAM policies from that user that allowed access to the project and its resources. Disassociating a team member does not remove that user's profile from AWS CodeStar. It does not remove the user from IAM.

        :param self:
        :param userArn:  The Amazon Resource Name (ARN) of the IAM user or group whom you want to remove from the project.<br/>projectId:  The ID of the AWS CodeStar project from which you want to remove a team member.<br/>
        :return:         """
        pass

    def list_projects(self, nextToken: str=None, maxResults: int=None) -> ListProjectsResult:
        r"""Lists all projects in AWS CodeStar associated with your AWS account.

        :param self:
        :param maxResults:  The maximum amount of data that can be contained in a single set of results.<br/>nextToken:  The continuation token to be used to return the next set of results, if the results cannot be returned in one response.<br/>
        :return: nextToken:  The continuation token to use when requesting the next set of results, if there are more results to be returned.<br/>projects:  A list of projects.<br/>        """
        pass

    def list_resources(self, projectId: str, nextToken: str=None, maxResults: int=None) -> ListResourcesResult:
        r"""Lists resources associated with a project in AWS CodeStar.

        :param self:
        :param maxResults:  The maximum amount of data that can be contained in a single set of results.<br/>nextToken:  The continuation token for the next set of results, if the results cannot be returned in one response.<br/>projectId:  The ID of the project.<br/>
        :return: nextToken:  The continuation token to use when requesting the next set of results, if there are more results to be returned.<br/>resources:  An array of resources associated with the project. <br/>        """
        pass

    def list_tags_for_project(self, id: str, nextToken: str=None, maxResults: int=None) -> ListTagsForProjectResult:
        r"""Gets the tags for a project.

        :param self:
        :param maxResults:  Reserved for future use.<br/>nextToken:  Reserved for future use.<br/>id:  The ID of the project to get tags for.<br/>
        :return: nextToken:  Reserved for future use.<br/>tags:  The tags for the project.<br/>        """
        pass

    def list_team_members(self, projectId: str, nextToken: str=None, maxResults: int=None) -> ListTeamMembersResult:
        r"""Lists all team members associated with a project.

        :param self:
        :param maxResults:  The maximum number of team members you want returned in a response.<br/>nextToken:  The continuation token for the next set of results, if the results cannot be returned in one response.<br/>projectId:  The ID of the project for which you want to list team members.<br/>
        :return: nextToken:  The continuation token to use when requesting the next set of results, if there are more results to be returned.<br/>teamMembers:  A list of team member objects for the project.<br/>        """
        pass

    def list_user_profiles(self, nextToken: str=None, maxResults: int=None) -> ListUserProfilesResult:
        r"""Lists all the user profiles configured for your AWS account in AWS CodeStar.

        :param self:
        :param maxResults:  The maximum number of results to return in a response.<br/>nextToken:  The continuation token for the next set of results, if the results cannot be returned in one response.<br/>
        :return: nextToken:  The continuation token to use when requesting the next set of results, if there are more results to be returned.<br/>userProfiles:  All the user profiles configured in AWS CodeStar for an AWS account.<br/>        """
        pass

    def tag_project(self, tags: Tags, id: str) -> TagProjectResult:
        r"""Adds tags to a project.

        :param self:
        :param tags:  The tags you want to add to the project.<br/>id:  The ID of the project you want to add a tag to.<br/>
        :return: tags:  The tags for the project.<br/>        """
        pass

    def untag_project(self, tags: List[TagKey], id: str) -> UntagProjectResult:
        r"""Removes tags from a project.

        :param self:
        :param tags:  The tags to remove from the project.<br/>id:  The ID of the project to remove tags from.<br/>
        :return:         """
        pass

    def update_project(self, id: str, name: str=None, description: str=None) -> UpdateProjectResult:
        r"""Updates a project in AWS CodeStar.

        :param self:
        :param description:  The description of the project, if any.<br/>name:  The name of the project you want to update.<br/>id:  The ID of the project you want to update.<br/>
        :return:         """
        pass

    def update_team_member(self, userArn: str, projectId: str, projectRole: str=None, remoteAccessAllowed: RemoteAccessAllowed=None) -> UpdateTeamMemberResult:
        r"""Updates a team member's attributes in an AWS CodeStar project. For example, you can change a team member's role in the project, or change whether they have remote access to project resources.

        :param self:
        :param remoteAccessAllowed:  Whether a team member is allowed to remotely access project resources using the SSH public key associated with the user's profile. Even if this is set to True, the user must associate a public key with their profile before the user can access resources.<br/>projectRole:  The role assigned to the user in the project. Project roles have different levels of access. For more information, see <a href="http://docs.aws.amazon.com/codestar/latest/userguide/working-with-teams.html">Working with Teams</a> in the <i>AWS CodeStar User Guide</i>.<br/>userArn:  The Amazon Resource Name (ARN) of the user for whom you want to change team membership attributes.<br/>projectId:  The ID of the project.<br/>
        :return: remoteAccessAllowed:  Whether a team member is allowed to remotely access project resources using the SSH public key associated with the user's profile.<br/>projectRole:  The project role granted to the user.<br/>userArn:  The Amazon Resource Name (ARN) of the user whose team membership attributes were updated.<br/>        """
        pass

    def update_user_profile(self, userArn: str, displayName: str=None, emailAddress: str=None, sshPublicKey: str=None) -> UpdateUserProfileResult:
        r"""Updates a user's profile in AWS CodeStar. The user profile is not project-specific. Information in the user profile is displayed wherever the user's information appears to other users in AWS CodeStar. 

        :param self:
        :param sshPublicKey:  The SSH public key associated with the user in AWS CodeStar. If a project owner allows the user remote access to project resources, this public key will be used along with the user's private key for SSH access.<br/>emailAddress:  The email address that is displayed as part of the user's profile in AWS CodeStar.<br/>displayName:  The name that is displayed as the friendly name for the user in AWS CodeStar.<br/>userArn:  The name that will be displayed as the friendly name for the user in AWS CodeStar.<br/>
        :return: lastModifiedTimestamp:  The date the user profile was last modified, in timestamp format.<br/>createdTimestamp:  The date the user profile was created, in timestamp format.<br/>sshPublicKey:  The SSH public key associated with the user in AWS CodeStar. This is the public portion of the public/private keypair the user can use to access project resources if a project owner allows the user remote access to those resources.<br/>emailAddress:  The email address that is displayed as part of the user's profile in AWS CodeStar.<br/>displayName:  The name that is displayed as the friendly name for the user in AWS CodeStar.<br/>userArn:  The Amazon Resource Name (ARN) of the user in IAM.<br/>        """
        pass





class CodeStarconnections(BaseClient):
    r"""<fullname>AWS CodeStar Connections</fullname> This AWS CodeStar Connections API Reference provides descriptions and usage examples of the operations and data types for the AWS CodeStar Connections API. You can use the connections API to work with connections and installations.  <i>Connections</i> are configurations that you use to connect AWS resources to external code repositories. Each connection is a resource that can be given to services such as CodePipeline to connect to a third-party repository such as Bitbucket. For example, you can add the connection in CodePipeline so that it triggers your pipeline when a code change is made to your third-party code repository. Each connection is named and associated with a unique ARN that is used to reference the connection. When you create a connection, the console initiates a third-party connection handshake. <i>Installations</i> are the apps that are used to conduct this handshake. For example, the installation for the Bitbucket provider type is the Bitbucket app. When you create a connection, you can choose an existing installation or create one. When you want to create a connection to an installed provider type such as GitHub Enterprise Server, you create a <i>host</i> for your connections. You can work with connections by calling: <ul> <li>  <a>CreateConnection</a>, which creates a uniquely named connection that can be referenced by services such as CodePipeline. </li> <li>  <a>DeleteConnection</a>, which deletes the specified connection. </li> <li>  <a>GetConnection</a>, which returns information about the connection, including the connection status. </li> <li>  <a>ListConnections</a>, which lists the connections associated with your account. </li> </ul> You can work with hosts by calling: <ul> <li>  <a>CreateHost</a>, which creates a host that represents the infrastructure where your provider is installed. </li> <li>  <a>DeleteHost</a>, which deletes the specified host. </li> <li>  <a>GetHost</a>, which returns information about the host, including the setup status. </li> <li>  <a>ListHosts</a>, which lists the hosts associated with your account. </li> </ul> You can work with tags in AWS CodeStar Connections by calling the following: <ul> <li>  <a>ListTagsForResource</a>, which gets information about AWS tags for a specified Amazon Resource Name (ARN) in AWS CodeStar Connections. </li> <li>  <a>TagResource</a>, which adds or updates tags for a resource in AWS CodeStar Connections. </li> <li>  <a>UntagResource</a>, which removes tags for a resource in AWS CodeStar Connections. </li> </ul> For information about how to use AWS CodeStar Connections, see the <a href="https://docs.aws.amazon.com/dtconsole/latest/userguide/welcome-connections.html">Developer Tools User Guide</a>."""




    class CreateConnectionInput(Mapping):
        pass
    
    class CreateConnectionOutput(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class CreateHostInput(Mapping):
        pass
    
    class CreateHostOutput(Mapping):
        pass
    
    class VpcConfiguration(Mapping):
        pass
    
    class DeleteConnectionInput(Mapping):
        pass
    
    class DeleteConnectionOutput(Mapping):
        pass
    
    class DeleteHostInput(Mapping):
        pass
    
    class DeleteHostOutput(Mapping):
        pass
    
    class GetConnectionInput(Mapping):
        pass
    
    class GetConnectionOutput(Mapping):
        pass
    
    class GetHostInput(Mapping):
        pass
    
    class GetHostOutput(Mapping):
        pass
    
    class ListConnectionsInput(Mapping):
        pass
    
    class ListConnectionsOutput(Mapping):
        pass
    
    class ListHostsInput(Mapping):
        pass
    
    class ListHostsOutput(Mapping):
        pass
    
    class ListTagsForResourceInput(Mapping):
        pass
    
    class ListTagsForResourceOutput(Mapping):
        pass
    
    class TagResourceInput(Mapping):
        pass
    
    class TagResourceOutput(Mapping):
        pass
    
    class UntagResourceInput(Mapping):
        pass
    
    class UntagResourceOutput(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateHostInput(Mapping):
        pass
    
    class UpdateHostOutput(Mapping):
        pass
    
    def create_connection(self, ConnectionName: str, ProviderType: str=None, Tags: List[Tag]=None, HostArn: str=None) -> CreateConnectionOutput:
        r"""Creates a connection that can then be given to other AWS services like CodePipeline so that it can access third-party code repositories. The connection is in pending status until the third-party connection handshake is completed from the console.

        :param self:
        :param HostArn:  The Amazon Resource Name (ARN) of the host associated with the connection to be created.<br/>Tags:  The key-value pair to use when tagging the resource.<br/>ConnectionName:  The name of the connection to be created. The name must be unique in the calling AWS account.<br/>ProviderType:  The name of the external provider where your third-party code repository is configured.<br/>
        :return: Tags:  Specifies the tags applied to the resource.<br/>ConnectionArn:  The Amazon Resource Name (ARN) of the connection to be created. The ARN is used as the connection reference when the connection is shared between AWS services. <note> The ARN is never reused if the connection is deleted. </note><br/>        """
        pass

    def create_host(self, ProviderEndpoint: str, ProviderType: str, Name: str, VpcConfiguration: VpcConfiguration=None, Tags: List[Tag]=None) -> CreateHostOutput:
        r"""Creates a resource that represents the infrastructure where a third-party provider is installed. The host is used when you create connections to an installed third-party provider type, such as GitHub Enterprise Server. You create one host for all connections to that provider. <note> A host created through the CLI or the SDK is in `PENDING` status by default. You can make its status `AVAILABLE` by setting up the host in the console. </note>

        :param self:
        :param Tags:  <br/>VpcConfiguration:  The VPC configuration to be provisioned for the host. A VPC must be configured and the infrastructure to be represented by the host must already be connected to the VPC.:<br/>ProviderEndpoint:  The endpoint of the infrastructure to be represented by the host after it is created.<br/>ProviderType:  The name of the installed provider to be associated with your connection. The host resource represents the infrastructure where your provider type is installed. The valid provider type is GitHub Enterprise Server.<br/>Name:  The name of the host to be created. The name must be unique in the calling AWS account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TlsCertificate</i> The value of the Transport Layer Security (TLS) certificate associated with the infrastructure where your provider type is installed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> The ID of the security group or security groups associated with the Amazon VPC connected to the infrastructure where your provider type is installed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetIds</i> The ID of the subnet or subnets associated with the Amazon VPC connected to the infrastructure where your provider type is installed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The ID of the Amazon VPC connected to the infrastructure where your provider type is installed.<br/>
        :return: Tags:  <br/>HostArn:  The Amazon Resource Name (ARN) of the host to be created.<br/>        """
        pass

    def delete_connection(self, ConnectionArn: str) -> DeleteConnectionOutput:
        r"""The connection to be deleted.

        :param self:
        :param ConnectionArn:  The Amazon Resource Name (ARN) of the connection to be deleted. <note> The ARN is never reused if the connection is deleted. </note><br/>
        :return:         """
        pass

    def delete_host(self, HostArn: str) -> DeleteHostOutput:
        r"""The host to be deleted. Before you delete a host, all connections associated to the host must be deleted. <note> A host cannot be deleted if it is in the VPC_CONFIG_INITIALIZING or VPC_CONFIG_DELETING state. </note>

        :param self:
        :param HostArn:  The Amazon Resource Name (ARN) of the host to be deleted.<br/>
        :return:         """
        pass

    def get_connection(self, ConnectionArn: str) -> GetConnectionOutput:
        r"""Returns the connection ARN and details such as status, owner, and provider type.

        :param self:
        :param ConnectionArn:  The Amazon Resource Name (ARN) of a connection.<br/>
        :return: Connection:  The connection details, such as status, owner, and provider type.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HostArn</i> The Amazon Resource Name (ARN) of the host associated with the connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConnectionStatus</i> The current status of the connection. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerAccountId</i> The identifier of the external provider where your third-party code repository is configured. For Bitbucket, this is the account ID of the owner of the Bitbucket repository.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProviderType</i> The name of the external provider where your third-party code repository is configured.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConnectionArn</i> The Amazon Resource Name (ARN) of the connection. The ARN is used as the connection reference when the connection is shared between AWS services. <note> The ARN is never reused if the connection is deleted. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConnectionName</i> The name of the connection. Connection names must be unique in an AWS user account.<br/>        """
        pass

    def get_host(self, HostArn: str) -> GetHostOutput:
        r"""Returns the host ARN and details such as status, provider type, endpoint, and, if applicable, the VPC configuration.

        :param self:
        :param HostArn:  The Amazon Resource Name (ARN) of the requested host.<br/>
        :return: VpcConfiguration:  The VPC configuration of the requested host.:<br/>ProviderEndpoint:  The endpoint of the infrastructure represented by the requested host.<br/>ProviderType:  The provider type of the requested host, such as GitHub Enterprise Server.<br/>Status:  The status of the requested host.<br/>Name:  The name of the requested host.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TlsCertificate</i> The value of the Transport Layer Security (TLS) certificate associated with the infrastructure where your provider type is installed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> The ID of the security group or security groups associated with the Amazon VPC connected to the infrastructure where your provider type is installed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetIds</i> The ID of the subnet or subnets associated with the Amazon VPC connected to the infrastructure where your provider type is installed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The ID of the Amazon VPC connected to the infrastructure where your provider type is installed.<br/>        """
        pass

    def list_connections(self, ProviderTypeFilter: str=None, HostArnFilter: str=None, MaxResults: int=None, NextToken: str=None) -> ListConnectionsOutput:
        r"""Lists the connections associated with your account.

        :param self:
        :param NextToken:  The token that was returned from the previous <code>ListConnections</code> call, which can be used to return the next set of connections in the list.<br/>MaxResults:  The maximum number of results to return in a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.<br/>HostArnFilter:  Filters the list of connections to those associated with a specified host.<br/>ProviderTypeFilter:  Filters the list of connections to those associated with a specified provider, such as Bitbucket.<br/>
        :return: NextToken:  A token that can be used in the next <code>ListConnections</code> call. To view all items in the list, continue to call this operation with each subsequent token until no more <code>nextToken</code> values are returned.<br/>Connections:  A list of connections and the details for each connection, such as status, owner, and provider type.<br/>        """
        pass

    def list_hosts(self, MaxResults: int=None, NextToken: str=None) -> ListHostsOutput:
        r"""Lists the hosts associated with your account.

        :param self:
        :param NextToken:  The token that was returned from the previous <code>ListHosts</code> call, which can be used to return the next set of hosts in the list.<br/>MaxResults:  The maximum number of results to return in a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.<br/>
        :return: NextToken:  A token that can be used in the next <code>ListHosts</code> call. To view all items in the list, continue to call this operation with each subsequent token until no more <code>nextToken</code> values are returned.<br/>Hosts:  A list of hosts and the details for each host, such as status, endpoint, and provider type.<br/>        """
        pass

    def list_tags_for_resource(self, ResourceArn: str) -> ListTagsForResourceOutput:
        r"""Gets the set of key-value pairs (metadata) that are used to manage the resource.

        :param self:
        :param ResourceArn:  The Amazon Resource Name (ARN) of the resource for which you want to get information about tags, if any.<br/>
        :return: Tags:  A list of tag key and value pairs associated with the specified resource.<br/>        """
        pass

    def tag_resource(self, Tags: List[Tag], ResourceArn: str) -> TagResourceOutput:
        r"""Adds to or modifies the tags of the given resource. Tags are metadata that can be used to manage a resource.

        :param self:
        :param Tags:  The tags you want to modify or add to the resource.<br/>ResourceArn:  The Amazon Resource Name (ARN) of the resource to which you want to add or update tags.<br/>
        :return:         """
        pass

    def untag_resource(self, TagKeys: List[TagKey], ResourceArn: str) -> UntagResourceOutput:
        r"""Removes tags from an AWS resource.

        :param self:
        :param TagKeys:  The list of keys for the tags to be removed from the resource.<br/>ResourceArn:  The Amazon Resource Name (ARN) of the resource to remove tags from.<br/>
        :return:         """
        pass

    def update_host(self, HostArn: str, ProviderEndpoint: str=None, VpcConfiguration: VpcConfiguration=None) -> UpdateHostOutput:
        r"""Updates a specified host with the provided configurations.

        :param self:
        :param VpcConfiguration:  The VPC configuration of the host to be updated. A VPC must be configured and the infrastructure to be represented by the host must already be connected to the VPC.:<br/>ProviderEndpoint:  The URL or endpoint of the host to be updated.<br/>HostArn:  The Amazon Resource Name (ARN) of the host to be updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TlsCertificate</i> The value of the Transport Layer Security (TLS) certificate associated with the infrastructure where your provider type is installed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> The ID of the security group or security groups associated with the Amazon VPC connected to the infrastructure where your provider type is installed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetIds</i> The ID of the subnet or subnets associated with the Amazon VPC connected to the infrastructure where your provider type is installed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The ID of the Amazon VPC connected to the infrastructure where your provider type is installed.<br/>
        :return:         """
        pass





class CodeStarNotifications(BaseClient):
    r"""This AWS CodeStar Notifications API Reference provides descriptions and usage examples of the operations and data types for the AWS CodeStar Notifications API. You can use the AWS CodeStar Notifications API to work with the following objects: Notification rules, by calling the following:  <ul> <li>  <a>CreateNotificationRule</a>, which creates a notification rule for a resource in your account.  </li> <li>  <a>DeleteNotificationRule</a>, which deletes a notification rule.  </li> <li>  <a>DescribeNotificationRule</a>, which provides information about a notification rule.  </li> <li>  <a>ListNotificationRules</a>, which lists the notification rules associated with your account.  </li> <li>  <a>UpdateNotificationRule</a>, which changes the name, events, or targets associated with a notification rule.  </li> <li>  <a>Subscribe</a>, which subscribes a target to a notification rule.  </li> <li>  <a>Unsubscribe</a>, which removes a target from a notification rule.  </li> </ul> Targets, by calling the following:  <ul> <li>  <a>DeleteTarget</a>, which removes a notification rule target (SNS topic) from a notification rule.  </li> <li>  <a>ListTargets</a>, which lists the targets associated with a notification rule.  </li> </ul> Events, by calling the following:  <ul> <li>  <a>ListEventTypes</a>, which lists the event types you can include in a notification rule.  </li> </ul> Tags, by calling the following:  <ul> <li>  <a>ListTagsForResource</a>, which lists the tags already associated with a notification rule in your account.  </li> <li>  <a>TagResource</a>, which associates a tag you provide with a notification rule in your account.  </li> <li>  <a>UntagResource</a>, which removes a tag from a notification rule in your account.  </li> </ul>  For information about how to use AWS CodeStar Notifications, see link in the CodeStarNotifications User Guide. """


    class ListEventTypesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_event_types` for valid parameters"""
            pass
    class ListNotificationRulesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_notification_rules` for valid parameters"""
            pass
    class ListTargetsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_targets` for valid parameters"""
            pass


    class CreateNotificationRuleRequest(Mapping):
        pass
    
    class CreateNotificationRuleResult(Mapping):
        pass
    
    class EventTypeId(object):
        pass
    
    class Target(Mapping):
        pass
    
    class Tags(object):
        pass
    
    class DeleteNotificationRuleRequest(Mapping):
        pass
    
    class DeleteNotificationRuleResult(Mapping):
        pass
    
    class DeleteTargetRequest(Mapping):
        pass
    
    class DeleteTargetResult(Mapping):
        pass
    
    class ForceUnsubscribeAll(object):
        pass
    
    class DescribeNotificationRuleRequest(Mapping):
        pass
    
    class DescribeNotificationRuleResult(Mapping):
        pass
    
    class ListEventTypesRequest(Mapping):
        pass
    
    class ListEventTypesResult(Mapping):
        pass
    
    class ListEventTypesFilter(Mapping):
        pass
    
    class ListNotificationRulesRequest(Mapping):
        pass
    
    class ListNotificationRulesResult(Mapping):
        pass
    
    class ListNotificationRulesFilter(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResult(Mapping):
        pass
    
    class ListTargetsRequest(Mapping):
        pass
    
    class ListTargetsResult(Mapping):
        pass
    
    class ListTargetsFilter(Mapping):
        pass
    
    class SubscribeRequest(Mapping):
        pass
    
    class SubscribeResult(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResult(Mapping):
        pass
    
    class UnsubscribeRequest(Mapping):
        pass
    
    class UnsubscribeResult(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResult(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateNotificationRuleRequest(Mapping):
        pass
    
    class UpdateNotificationRuleResult(Mapping):
        pass
    
    def create_notification_rule(self, DetailType: str, Targets: List[Target], Resource: str, EventTypeIds: List[EventTypeId], Name: str, ClientRequestToken: str=None, Tags: Tags=None, Status: str=None) -> CreateNotificationRuleResult:
        r"""Creates a notification rule for a resource. The rule specifies the events you want notifications about and the targets (such as SNS topics) where you want to receive them.

        :param self:
        :param Status:  The status of the notification rule. The default value is ENABLED. If the status is set to DISABLED, notifications aren't sent for the notification rule.<br/>Tags:  A list of tags to apply to this notification rule. Key names cannot start with "aws". <br/>ClientRequestToken:  A unique, client-generated idempotency token that, when provided in a request, ensures the request cannot be repeated with a changed parameter. If a request with the same parameters is received and a token is included, the request returns information about the initial request that used that token. <note> The AWS SDKs prepopulate client request tokens. If you are using an AWS SDK, an idempotency token is created for you. </note><br/>DetailType:  The level of detail to include in the notifications for this resource. BASIC will include only the contents of the event as it would appear in AWS CloudWatch. FULL will include any supplemental information provided by AWS CodeStar Notifications and/or the service for the resource for which the notification is created.<br/>Targets:  A list of Amazon Resource Names (ARNs) of SNS topics to associate with the notification rule.<br/>Resource:  The Amazon Resource Name (ARN) of the resource to associate with the notification rule. Supported resources include pipelines in AWS CodePipeline, repositories in AWS CodeCommit, and build projects in AWS CodeBuild.<br/>EventTypeIds:  A list of event types associated with this notification rule. For a list of allowed events, see <a>EventTypeSummary</a>.<br/>Name:  The name for the notification rule. Notifictaion rule names must be unique in your AWS account.<br/>
        :return: Arn:  The Amazon Resource Name (ARN) of the notification rule.<br/>        """
        pass

    def delete_notification_rule(self, Arn: str) -> DeleteNotificationRuleResult:
        r"""Deletes a notification rule for a resource.

        :param self:
        :param Arn:  The Amazon Resource Name (ARN) of the notification rule you want to delete.<br/>
        :return: Arn:  The Amazon Resource Name (ARN) of the deleted notification rule.<br/>        """
        pass

    def delete_target(self, TargetAddress: str, ForceUnsubscribeAll: ForceUnsubscribeAll=None) -> DeleteTargetResult:
        r"""Deletes a specified target for notifications.

        :param self:
        :param ForceUnsubscribeAll:  A Boolean value that can be used to delete all associations with this SNS topic. The default value is FALSE. If set to TRUE, all associations between that target and every notification rule in your AWS account are deleted.<br/>TargetAddress:  The Amazon Resource Name (ARN) of the SNS topic to delete.<br/>
        :return:         """
        pass

    def describe_notification_rule(self, Arn: str) -> DescribeNotificationRuleResult:
        r"""Returns information about a specified notification rule.

        :param self:
        :param Arn:  The Amazon Resource Name (ARN) of the notification rule.<br/>
        :return: Tags:  The tags associated with the notification rule.<br/>LastModifiedTimestamp:  The date and time the notification rule was most recently updated, in timestamp format.<br/>CreatedTimestamp:  The date and time the notification rule was created, in timestamp format.<br/>Status:  The status of the notification rule. Valid statuses are on (sending notifications) or off (not sending notifications).<br/>CreatedBy:  The name or email alias of the person who created the notification rule.<br/>DetailType:  The level of detail included in the notifications for this resource. BASIC will include only the contents of the event as it would appear in AWS CloudWatch. FULL will include any supplemental information provided by AWS CodeStar Notifications and/or the service for the resource for which the notification is created.<br/>Targets:  A list of the SNS topics associated with the notification rule.<br/>Resource:  The Amazon Resource Name (ARN) of the resource associated with the notification rule.<br/>EventTypes:  A list of the event types associated with the notification rule.<br/>Name:  The name of the notification rule.<br/>Arn:  The Amazon Resource Name (ARN) of the notification rule.<br/>        """
        pass

    def list_event_types(self, Filters: List[ListEventTypesFilter]=None, NextToken: str=None, MaxResults: int=None) -> ListEventTypesResult:
        r"""Returns information about the event types available for configuring notifications.

        :param self:
        :param MaxResults:  A non-negative integer used to limit the number of returned results. The default number is 50. The maximum number of results that can be returned is 100.<br/>NextToken:  An enumeration token that, when provided in a request, returns the next batch of the results.<br/>Filters:  The filters to use to return information by service or resource type.<br/>
        :return: NextToken:  An enumeration token that can be used in a request to return the next batch of the results.<br/>EventTypes:  Information about each event, including service name, resource type, event ID, and event name.<br/>        """
        pass

    def list_notification_rules(self, Filters: List[ListNotificationRulesFilter]=None, NextToken: str=None, MaxResults: int=None) -> ListNotificationRulesResult:
        r"""Returns a list of the notification rules for an AWS account.

        :param self:
        :param MaxResults:  A non-negative integer used to limit the number of returned results. The maximum number of results that can be returned is 100.<br/>NextToken:  An enumeration token that, when provided in a request, returns the next batch of the results.<br/>Filters:  The filters to use to return information by service or resource type. For valid values, see <a>ListNotificationRulesFilter</a>. <note> A filter with the same name can appear more than once when used with OR statements. Filters with different names should be applied with AND statements. </note><br/>
        :return: NotificationRules:  The list of notification rules for the AWS account, by Amazon Resource Name (ARN) and ID. <br/>NextToken:  An enumeration token that can be used in a request to return the next batch of the results.<br/>        """
        pass

    def list_tags_for_resource(self, Arn: str) -> ListTagsForResourceResult:
        r"""Returns a list of the tags associated with a notification rule.

        :param self:
        :param Arn:  The Amazon Resource Name (ARN) for the notification rule.<br/>
        :return: Tags:  The tags associated with the notification rule.<br/>        """
        pass

    def list_targets(self, Filters: List[ListTargetsFilter]=None, NextToken: str=None, MaxResults: int=None) -> ListTargetsResult:
        r"""Returns a list of the notification rule targets for an AWS account.

        :param self:
        :param MaxResults:  A non-negative integer used to limit the number of returned results. The maximum number of results that can be returned is 100.<br/>NextToken:  An enumeration token that, when provided in a request, returns the next batch of the results.<br/>Filters:  The filters to use to return information by service or resource type. Valid filters include target type, target address, and target status. <note> A filter with the same name can appear more than once when used with OR statements. Filters with different names should be applied with AND statements. </note><br/>
        :return: NextToken:  An enumeration token that can be used in a request to return the next batch of results.<br/>Targets:  The list of notification rule targets. <br/>        """
        pass

    def subscribe(self, Target: Target, Arn: str, ClientRequestToken: str=None) -> SubscribeResult:
        r"""Creates an association between a notification rule and an SNS topic so that the associated target can receive notifications when the events described in the rule are triggered.

        :param self:
        :param ClientRequestToken:  An enumeration token that, when provided in a request, returns the next batch of the results.<br/>Target:  Information about the SNS topics associated with a notification rule.:<br/>Arn:  The Amazon Resource Name (ARN) of the notification rule for which you want to create the association.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetAddress</i> The Amazon Resource Name (ARN) of the SNS topic.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetType</i> The target type. Can be an Amazon SNS topic.<br/>
        :return: Arn:  The Amazon Resource Name (ARN) of the notification rule for which you have created assocations.<br/>        """
        pass

    def tag_resource(self, Tags: Tags, Arn: str) -> TagResourceResult:
        r"""Associates a set of provided tags with a notification rule.

        :param self:
        :param Tags:  The list of tags to associate with the resource. Tag key names cannot start with "aws".<br/>Arn:  The Amazon Resource Name (ARN) of the notification rule to tag.<br/>
        :return: Tags:  The list of tags associated with the resource.<br/>        """
        pass

    def unsubscribe(self, TargetAddress: str, Arn: str) -> UnsubscribeResult:
        r"""Removes an association between a notification rule and an Amazon SNS topic so that subscribers to that topic stop receiving notifications when the events described in the rule are triggered.

        :param self:
        :param TargetAddress:  The ARN of the SNS topic to unsubscribe from the notification rule.<br/>Arn:  The Amazon Resource Name (ARN) of the notification rule.<br/>
        :return: Arn:  The Amazon Resource Name (ARN) of the the notification rule from which you have removed a subscription.<br/>        """
        pass

    def untag_resource(self, TagKeys: List[TagKey], Arn: str) -> UntagResourceResult:
        r"""Removes the association between one or more provided tags and a notification rule.

        :param self:
        :param TagKeys:  The key names of the tags to remove.<br/>Arn:  The Amazon Resource Name (ARN) of the notification rule from which to remove the tags.<br/>
        :return:         """
        pass

    def update_notification_rule(self, Arn: str, Name: str=None, Status: str=None, EventTypeIds: List[EventTypeId]=None, Targets: List[Target]=None, DetailType: str=None) -> UpdateNotificationRuleResult:
        r"""Updates a notification rule for a resource. You can change the events that trigger the notification rule, the status of the rule, and the targets that receive the notifications. <note> To add or remove tags for a notification rule, you must use <a>TagResource</a> and <a>UntagResource</a>. </note>

        :param self:
        :param DetailType:  The level of detail to include in the notifications for this resource. BASIC will include only the contents of the event as it would appear in AWS CloudWatch. FULL will include any supplemental information provided by AWS CodeStar Notifications and/or the service for the resource for which the notification is created.<br/>Targets:  The address and type of the targets to receive notifications from this notification rule.<br/>EventTypeIds:  A list of event types associated with this notification rule.<br/>Status:  The status of the notification rule. Valid statuses include enabled (sending notifications) or disabled (not sending notifications).<br/>Name:  The name of the notification rule.<br/>Arn:  The Amazon Resource Name (ARN) of the notification rule.<br/>
        :return:         """
        pass





class CognitoIdentity(BaseClient):
    r"""<fullname>Amazon Cognito Federated Identities</fullname> Amazon Cognito Federated Identities is a web service that delivers scoped temporary credentials to mobile devices and other untrusted environments. It uniquely identifies a device and supplies the user with a consistent identity over the lifetime of an application. Using Amazon Cognito Federated Identities, you can enable authentication with one or more third-party identity providers (Facebook, Google, or Login with Amazon) or an Amazon Cognito user pool, and you can also choose to support unauthenticated access from your app. Cognito delivers a unique identifier for each user and acts as an OpenID token provider trusted by AWS Security Token Service (STS) to access temporary, limited-privilege AWS credentials. For a description of the authentication flow from the Amazon Cognito Developer Guide see <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/authentication-flow.html">Authentication Flow</a>. For more information see <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-identity.html">Amazon Cognito Federated Identities</a>."""


    class ListIdentityPoolsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_identity_pools` for valid parameters"""
            pass


    class CreateIdentityPoolInput(Mapping):
        pass
    
    class IdentityPool(Mapping):
        pass
    
    class IdentityPoolUnauthenticated(object):
        pass
    
    class ClassicFlow(object):
        pass
    
    class IdentityProviders(object):
        pass
    
    class ARNString(object):
        pass
    
    class CognitoIdentityProvider(Mapping):
        pass
    
    class IdentityPoolTagsType(object):
        pass
    
    class DeleteIdentitiesInput(Mapping):
        pass
    
    class DeleteIdentitiesResponse(Mapping):
        pass
    
    class IdentityId(object):
        pass
    
    class DeleteIdentityPoolInput(Mapping):
        pass
    
    class DescribeIdentityInput(Mapping):
        pass
    
    class IdentityDescription(Mapping):
        pass
    
    class DescribeIdentityPoolInput(Mapping):
        pass
    
    class GetCredentialsForIdentityInput(Mapping):
        pass
    
    class GetCredentialsForIdentityResponse(Mapping):
        pass
    
    class LoginsMap(object):
        pass
    
    class GetIdInput(Mapping):
        pass
    
    class GetIdResponse(Mapping):
        pass
    
    class GetIdentityPoolRolesInput(Mapping):
        pass
    
    class GetIdentityPoolRolesResponse(Mapping):
        pass
    
    class GetOpenIdTokenInput(Mapping):
        pass
    
    class GetOpenIdTokenResponse(Mapping):
        pass
    
    class GetOpenIdTokenForDeveloperIdentityInput(Mapping):
        pass
    
    class GetOpenIdTokenForDeveloperIdentityResponse(Mapping):
        pass
    
    class PrincipalTags(object):
        pass
    
    class TokenDuration(object):
        pass
    
    class GetPrincipalTagAttributeMapInput(Mapping):
        pass
    
    class GetPrincipalTagAttributeMapResponse(Mapping):
        pass
    
    class ListIdentitiesInput(Mapping):
        pass
    
    class ListIdentitiesResponse(Mapping):
        pass
    
    class HideDisabled(object):
        pass
    
    class ListIdentityPoolsInput(Mapping):
        pass
    
    class ListIdentityPoolsResponse(Mapping):
        pass
    
    class ListTagsForResourceInput(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class LookupDeveloperIdentityInput(Mapping):
        pass
    
    class LookupDeveloperIdentityResponse(Mapping):
        pass
    
    class MergeDeveloperIdentitiesInput(Mapping):
        pass
    
    class MergeDeveloperIdentitiesResponse(Mapping):
        pass
    
    class SetIdentityPoolRolesInput(Mapping):
        pass
    
    class RolesMap(object):
        pass
    
    class RoleMappingMap(object):
        pass
    
    class SetPrincipalTagAttributeMapInput(Mapping):
        pass
    
    class SetPrincipalTagAttributeMapResponse(Mapping):
        pass
    
    class UseDefaults(object):
        pass
    
    class TagResourceInput(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UnlinkDeveloperIdentityInput(Mapping):
        pass
    
    class UnlinkIdentityInput(Mapping):
        pass
    
    class IdentityProviderName(object):
        pass
    
    class UntagResourceInput(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKeysType(object):
        pass
    
    def create_identity_pool(self, AllowUnauthenticatedIdentities: IdentityPoolUnauthenticated, IdentityPoolName: str, AllowClassicFlow: ClassicFlow=None, SupportedLoginProviders: IdentityProviders=None, DeveloperProviderName: str=None, OpenIdConnectProviderARNs: List[ARNString]=None, CognitoIdentityProviders: List[CognitoIdentityProvider]=None, SamlProviderARNs: List[ARNString]=None, IdentityPoolTags: IdentityPoolTagsType=None) -> IdentityPool:
        r"""Creates a new identity pool. The identity pool is a store of user identity information that is specific to your AWS account. The keys for <code>SupportedLoginProviders</code> are as follows: <ul> <li> Facebook: <code>graph.facebook.com</code>  </li> <li> Google: <code>accounts.google.com</code>  </li> <li> Amazon: <code>www.amazon.com</code>  </li> <li> Twitter: <code>api.twitter.com</code>  </li> <li> Digits: <code>www.digits.com</code>  </li> </ul> You must use AWS Developer credentials to call this API.

        :param self:
        :param IdentityPoolTags:  Tags to assign to the identity pool. A tag is a label that you can apply to identity pools to categorize and manage them in different ways, such as by purpose, owner, environment, or other criteria.<br/>SamlProviderARNs:  An array of Amazon Resource Names (ARNs) of the SAML provider for your identity pool.<br/>CognitoIdentityProviders:  An array of Amazon Cognito user pools and their client IDs.<br/>OpenIdConnectProviderARNs:  The Amazon Resource Names (ARN) of the OpenID Connect providers.<br/>DeveloperProviderName:  The "domain" by which Cognito will refer to your users. This name acts as a placeholder that allows your backend and the Cognito service to communicate about the developer provider. For the <code>DeveloperProviderName</code>, you can use letters as well as period (<code>.</code>), underscore (<code>_</code>), and dash (<code>-</code>). Once you have set a developer provider name, you cannot change it. Please take care in setting this parameter.<br/>SupportedLoginProviders:  Optional key:value pairs mapping provider names to provider app IDs.<br/>AllowClassicFlow:  Enables or disables the Basic (Classic) authentication flow. For more information, see <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/authentication-flow.html">Identity Pools (Federated Identities) Authentication Flow</a> in the <i>Amazon Cognito Developer Guide</i>.<br/>AllowUnauthenticatedIdentities:  TRUE if the identity pool supports unauthenticated logins.<br/>IdentityPoolName:  A string that you provide.<br/>
        :return: IdentityPoolTags:  The tags that are assigned to the identity pool. A tag is a label that you can apply to identity pools to categorize and manage them in different ways, such as by purpose, owner, environment, or other criteria.<br/>SamlProviderARNs:  An array of Amazon Resource Names (ARNs) of the SAML provider for your identity pool.<br/>CognitoIdentityProviders:  A list representing an Amazon Cognito user pool and its client ID.<br/>OpenIdConnectProviderARNs:  The ARNs of the OpenID Connect providers.<br/>DeveloperProviderName:  The "domain" by which Cognito will refer to your users.<br/>SupportedLoginProviders:  Optional key:value pairs mapping provider names to provider app IDs.<br/>AllowClassicFlow:  Enables or disables the Basic (Classic) authentication flow. For more information, see <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/authentication-flow.html">Identity Pools (Federated Identities) Authentication Flow</a> in the <i>Amazon Cognito Developer Guide</i>.<br/>AllowUnauthenticatedIdentities:  TRUE if the identity pool supports unauthenticated logins.<br/>IdentityPoolName:  A string that you provide.<br/>IdentityPoolId:  An identity pool ID in the format REGION:GUID.<br/>        """
        pass

    def delete_identities(self, IdentityIdsToDelete: List[IdentityId]) -> DeleteIdentitiesResponse:
        r"""Deletes identities from an identity pool. You can specify a list of 1-60 identities that you want to delete. You must use AWS Developer credentials to call this API.

        :param self:
        :param IdentityIdsToDelete:  A list of 1-60 identities that you want to delete.<br/>
        :return: UnprocessedIdentityIds:  An array of UnprocessedIdentityId objects, each of which contains an ErrorCode and IdentityId.<br/>        """
        pass

    def delete_identity_pool(self, IdentityPoolId: str):
        r"""Deletes an identity pool. Once a pool is deleted, users will not be able to authenticate with the pool. You must use AWS Developer credentials to call this API.

        :param self:
        :param IdentityPoolId:  An identity pool ID in the format REGION:GUID.<br/>
        :return:         """
        pass

    def describe_identity(self, IdentityId: str) -> IdentityDescription:
        r"""Returns metadata related to the given identity, including when the identity was created and any associated linked logins. You must use AWS Developer credentials to call this API.

        :param self:
        :param IdentityId:  A unique identifier in the format REGION:GUID.<br/>
        :return: LastModifiedDate:  Date on which the identity was last modified.<br/>CreationDate:  Date on which the identity was created.<br/>Logins:  The provider names.<br/>IdentityId:  A unique identifier in the format REGION:GUID.<br/>        """
        pass

    def describe_identity_pool(self, IdentityPoolId: str) -> IdentityPool:
        r"""Gets details about a particular identity pool, including the pool name, ID description, creation date, and current number of users. You must use AWS Developer credentials to call this API.

        :param self:
        :param IdentityPoolId:  An identity pool ID in the format REGION:GUID.<br/>
        :return: IdentityPoolTags:  The tags that are assigned to the identity pool. A tag is a label that you can apply to identity pools to categorize and manage them in different ways, such as by purpose, owner, environment, or other criteria.<br/>SamlProviderARNs:  An array of Amazon Resource Names (ARNs) of the SAML provider for your identity pool.<br/>CognitoIdentityProviders:  A list representing an Amazon Cognito user pool and its client ID.<br/>OpenIdConnectProviderARNs:  The ARNs of the OpenID Connect providers.<br/>DeveloperProviderName:  The "domain" by which Cognito will refer to your users.<br/>SupportedLoginProviders:  Optional key:value pairs mapping provider names to provider app IDs.<br/>AllowClassicFlow:  Enables or disables the Basic (Classic) authentication flow. For more information, see <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/authentication-flow.html">Identity Pools (Federated Identities) Authentication Flow</a> in the <i>Amazon Cognito Developer Guide</i>.<br/>AllowUnauthenticatedIdentities:  TRUE if the identity pool supports unauthenticated logins.<br/>IdentityPoolName:  A string that you provide.<br/>IdentityPoolId:  An identity pool ID in the format REGION:GUID.<br/>        """
        pass

    def get_credentials_for_identity(self, IdentityId: str, Logins: LoginsMap=None, CustomRoleArn: str=None) -> GetCredentialsForIdentityResponse:
        r"""Returns credentials for the provided identity ID. Any provided logins will be validated against supported login providers. If the token is for cognito-identity.amazonaws.com, it will be passed through to AWS Security Token Service with the appropriate role for the token. This is a public API. You do not need any credentials to call this API.

        :param self:
        :param CustomRoleArn:  The Amazon Resource Name (ARN) of the role to be assumed when multiple roles were received in the token from the identity provider. For example, a SAML-based identity provider. This parameter is optional for identity providers that do not support role customization.<br/>Logins:  A set of optional name-value pairs that map provider names to provider tokens. The name-value pair will follow the syntax "provider_name": "provider_user_identifier". Logins should not be specified when trying to get credentials for an unauthenticated identity. The Logins parameter is required when using identities associated with external identity providers such as Facebook. For examples of <code>Logins</code> maps, see the code examples in the <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/external-identity-providers.html">External Identity Providers</a> section of the Amazon Cognito Developer Guide.<br/>IdentityId:  A unique identifier in the format REGION:GUID.<br/>
        :return: Credentials:  Credentials for the provided identity ID.:<br/>IdentityId:  A unique identifier in the format REGION:GUID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Expiration</i> The date at which these credentials will expire.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SessionToken</i> The Session Token portion of the credentials<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretKey</i> The Secret Access Key portion of the credentials<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccessKeyId</i> The Access Key portion of the credentials.<br/>        """
        pass

    def get_id(self, IdentityPoolId: str, AccountId: str=None, Logins: LoginsMap=None) -> GetIdResponse:
        r"""Generates (or retrieves) a Cognito ID. Supplying multiple logins will create an implicit linked account. This is a public API. You do not need any credentials to call this API.

        :param self:
        :param Logins:  A set of optional name-value pairs that map provider names to provider tokens. The available provider names for <code>Logins</code> are as follows: <ul> <li> Facebook: <code>graph.facebook.com</code>  </li> <li> Amazon Cognito user pool: <code>cognito-idp.&lt;region&gt;.amazonaws.com/&lt;YOUR_USER_POOL_ID&gt;</code>, for example, <code>cognito-idp.us-east-1.amazonaws.com/us-east-1_123456789</code>.  </li> <li> Google: <code>accounts.google.com</code>  </li> <li> Amazon: <code>www.amazon.com</code>  </li> <li> Twitter: <code>api.twitter.com</code>  </li> <li> Digits: <code>www.digits.com</code>  </li> </ul><br/>IdentityPoolId:  An identity pool ID in the format REGION:GUID.<br/>AccountId:  A standard AWS account ID (9+ digits).<br/>
        :return: IdentityId:  A unique identifier in the format REGION:GUID.<br/>        """
        pass

    def get_identity_pool_roles(self, IdentityPoolId: str) -> GetIdentityPoolRolesResponse:
        r"""Gets the roles for an identity pool. You must use AWS Developer credentials to call this API.

        :param self:
        :param IdentityPoolId:  An identity pool ID in the format REGION:GUID.<br/>
        :return: RoleMappings:  How users for a specific identity provider are to mapped to roles. This is a String-to-<a>RoleMapping</a> object map. The string identifies the identity provider, for example, "graph.facebook.com" or "cognito-idp.us-east-1.amazonaws.com/us-east-1_abcdefghi:app_client_id".<br/>Roles:  The map of roles associated with this pool. Currently only authenticated and unauthenticated roles are supported.<br/>IdentityPoolId:  An identity pool ID in the format REGION:GUID.<br/>        """
        pass

    def get_open_id_token(self, IdentityId: str, Logins: LoginsMap=None) -> GetOpenIdTokenResponse:
        r"""Gets an OpenID token, using a known Cognito ID. This known Cognito ID is returned by <a>GetId</a>. You can optionally add additional logins for the identity. Supplying multiple logins creates an implicit link. The OpenID token is valid for 10 minutes. This is a public API. You do not need any credentials to call this API.

        :param self:
        :param Logins:  A set of optional name-value pairs that map provider names to provider tokens. When using graph.facebook.com and www.amazon.com, supply the access_token returned from the provider's authflow. For accounts.google.com, an Amazon Cognito user pool provider, or any other OpenID Connect provider, always include the <code>id_token</code>.<br/>IdentityId:  A unique identifier in the format REGION:GUID.<br/>
        :return: Token:  An OpenID token, valid for 10 minutes.<br/>IdentityId:  A unique identifier in the format REGION:GUID. Note that the IdentityId returned may not match the one passed on input.<br/>        """
        pass

    def get_open_id_token_for_developer_identity(self, Logins: LoginsMap, IdentityPoolId: str, IdentityId: str=None, PrincipalTags: PrincipalTags=None, TokenDuration: TokenDuration=None) -> GetOpenIdTokenForDeveloperIdentityResponse:
        r"""Registers (or retrieves) a Cognito <code>IdentityId</code> and an OpenID Connect token for a user authenticated by your backend authentication process. Supplying multiple logins will create an implicit linked account. You can only specify one developer provider as part of the <code>Logins</code> map, which is linked to the identity pool. The developer provider is the "domain" by which Cognito will refer to your users. You can use <code>GetOpenIdTokenForDeveloperIdentity</code> to create a new identity and to link new logins (that is, user credentials issued by a public provider or developer provider) to an existing identity. When you want to create a new identity, the <code>IdentityId</code> should be null. When you want to associate a new login with an existing authenticated/unauthenticated identity, you can do so by providing the existing <code>IdentityId</code>. This API will create the identity in the specified <code>IdentityPoolId</code>. You must use AWS Developer credentials to call this API.

        :param self:
        :param TokenDuration:  The expiration time of the token, in seconds. You can specify a custom expiration time for the token so that you can cache it. If you don't provide an expiration time, the token is valid for 15 minutes. You can exchange the token with Amazon STS for temporary AWS credentials, which are valid for a maximum of one hour. The maximum token duration you can set is 24 hours. You should take care in setting the expiration time for a token, as there are significant security implications: an attacker could use a leaked token to access your AWS resources for the token's duration. <note> Please provide for a small grace period, usually no more than 5 minutes, to account for clock skew. </note><br/>PrincipalTags:  Use this operation to configure attribute mappings for custom providers. <br/>Logins:  A set of optional name-value pairs that map provider names to provider tokens. Each name-value pair represents a user from a public provider or developer provider. If the user is from a developer provider, the name-value pair will follow the syntax <code>"developer_provider_name": "developer_user_identifier"</code>. The developer provider is the "domain" by which Cognito will refer to your users; you provided this domain while creating/updating the identity pool. The developer user identifier is an identifier from your backend that uniquely identifies a user. When you create an identity pool, you can specify the supported logins.<br/>IdentityId:  A unique identifier in the format REGION:GUID.<br/>IdentityPoolId:  An identity pool ID in the format REGION:GUID.<br/>
        :return: Token:  An OpenID token.<br/>IdentityId:  A unique identifier in the format REGION:GUID.<br/>        """
        pass

    def get_principal_tag_attribute_map(self, IdentityProviderName: str, IdentityPoolId: str) -> GetPrincipalTagAttributeMapResponse:
        r"""Use <code>GetPrincipalTagAttributeMap</code> to list all mappings between <code>PrincipalTags</code> and user attributes.

        :param self:
        :param IdentityProviderName:  You can use this operation to get the provider name.<br/>IdentityPoolId:  You can use this operation to get the ID of the Identity Pool you setup attribute mappings for.<br/>
        :return: PrincipalTags:  You can use this operation to add principal tags. The <code>PrincipalTags</code>operation enables you to reference user attributes in your IAM permissions policy.<br/>UseDefaults:  You can use this operation to list <br/>IdentityProviderName:  You can use this operation to get the provider name.<br/>IdentityPoolId:  You can use this operation to get the ID of the Identity Pool you setup attribute mappings for.<br/>        """
        pass

    def list_identities(self, MaxResults: int, IdentityPoolId: str, NextToken: str=None, HideDisabled: HideDisabled=None) -> ListIdentitiesResponse:
        r"""Lists the identities in an identity pool. You must use AWS Developer credentials to call this API.

        :param self:
        :param HideDisabled:  An optional boolean parameter that allows you to hide disabled identities. If omitted, the ListIdentities API will include disabled identities in the response.<br/>NextToken:  A pagination token.<br/>MaxResults:  The maximum number of identities to return.<br/>IdentityPoolId:  An identity pool ID in the format REGION:GUID.<br/>
        :return: NextToken:  A pagination token.<br/>Identities:  An object containing a set of identities and associated mappings.<br/>IdentityPoolId:  An identity pool ID in the format REGION:GUID.<br/>        """
        pass

    def list_identity_pools(self, MaxResults: int, NextToken: str=None) -> ListIdentityPoolsResponse:
        r"""Lists all of the Cognito identity pools registered for your account. You must use AWS Developer credentials to call this API.

        :param self:
        :param NextToken:  A pagination token.<br/>MaxResults:  The maximum number of identities to return.<br/>
        :return: NextToken:  A pagination token.<br/>IdentityPools:  The identity pools returned by the ListIdentityPools action.<br/>        """
        pass

    def list_tags_for_resource(self, ResourceArn: str) -> ListTagsForResourceResponse:
        r"""Lists the tags that are assigned to an Amazon Cognito identity pool. A tag is a label that you can apply to identity pools to categorize and manage them in different ways, such as by purpose, owner, environment, or other criteria. You can use this action up to 10 times per second, per account.

        :param self:
        :param ResourceArn:  The Amazon Resource Name (ARN) of the identity pool that the tags are assigned to.<br/>
        :return: Tags:  The tags that are assigned to the identity pool.<br/>        """
        pass

    def lookup_developer_identity(self, IdentityPoolId: str, IdentityId: str=None, DeveloperUserIdentifier: str=None, MaxResults: int=None, NextToken: str=None) -> LookupDeveloperIdentityResponse:
        r"""Retrieves the <code>IdentityID</code> associated with a <code>DeveloperUserIdentifier</code> or the list of <code>DeveloperUserIdentifier</code> values associated with an <code>IdentityId</code> for an existing identity. Either <code>IdentityID</code> or <code>DeveloperUserIdentifier</code> must not be null. If you supply only one of these values, the other value will be searched in the database and returned as a part of the response. If you supply both, <code>DeveloperUserIdentifier</code> will be matched against <code>IdentityID</code>. If the values are verified against the database, the response returns both values and is the same as the request. Otherwise a <code>ResourceConflictException</code> is thrown.  <code>LookupDeveloperIdentity</code> is intended for low-throughput control plane operations: for example, to enable customer service to locate an identity ID by username. If you are using it for higher-volume operations such as user authentication, your requests are likely to be throttled. <a>GetOpenIdTokenForDeveloperIdentity</a> is a better option for higher-volume operations for user authentication. You must use AWS Developer credentials to call this API.

        :param self:
        :param NextToken:  A pagination token. The first call you make will have <code>NextToken</code> set to null. After that the service will return <code>NextToken</code> values as needed. For example, let's say you make a request with <code>MaxResults</code> set to 10, and there are 20 matches in the database. The service will return a pagination token as a part of the response. This token can be used to call the API again and get results starting from the 11th match.<br/>MaxResults:  The maximum number of identities to return.<br/>DeveloperUserIdentifier:  A unique ID used by your backend authentication process to identify a user. Typically, a developer identity provider would issue many developer user identifiers, in keeping with the number of users.<br/>IdentityId:  A unique identifier in the format REGION:GUID.<br/>IdentityPoolId:  An identity pool ID in the format REGION:GUID.<br/>
        :return: NextToken:  A pagination token. The first call you make will have <code>NextToken</code> set to null. After that the service will return <code>NextToken</code> values as needed. For example, let's say you make a request with <code>MaxResults</code> set to 10, and there are 20 matches in the database. The service will return a pagination token as a part of the response. This token can be used to call the API again and get results starting from the 11th match.<br/>DeveloperUserIdentifierList:  This is the list of developer user identifiers associated with an identity ID. Cognito supports the association of multiple developer user identifiers with an identity ID.<br/>IdentityId:  A unique identifier in the format REGION:GUID.<br/>        """
        pass

    def merge_developer_identities(self, IdentityPoolId: str, DeveloperProviderName: str, DestinationUserIdentifier: str, SourceUserIdentifier: str) -> MergeDeveloperIdentitiesResponse:
        r"""Merges two users having different <code>IdentityId</code>s, existing in the same identity pool, and identified by the same developer provider. You can use this action to request that discrete users be merged and identified as a single user in the Cognito environment. Cognito associates the given source user (<code>SourceUserIdentifier</code>) with the <code>IdentityId</code> of the <code>DestinationUserIdentifier</code>. Only developer-authenticated users can be merged. If the users to be merged are associated with the same public provider, but as two different users, an exception will be thrown. The number of linked logins is limited to 20. So, the number of linked logins for the source user, <code>SourceUserIdentifier</code>, and the destination user, <code>DestinationUserIdentifier</code>, together should not be larger than 20. Otherwise, an exception will be thrown. You must use AWS Developer credentials to call this API.

        :param self:
        :param IdentityPoolId:  An identity pool ID in the format REGION:GUID.<br/>DeveloperProviderName:  The "domain" by which Cognito will refer to your users. This is a (pseudo) domain name that you provide while creating an identity pool. This name acts as a placeholder that allows your backend and the Cognito service to communicate about the developer provider. For the <code>DeveloperProviderName</code>, you can use letters as well as period (.), underscore (_), and dash (-).<br/>DestinationUserIdentifier:  User identifier for the destination user. The value should be a <code>DeveloperUserIdentifier</code>.<br/>SourceUserIdentifier:  User identifier for the source user. The value should be a <code>DeveloperUserIdentifier</code>.<br/>
        :return: IdentityId:  A unique identifier in the format REGION:GUID.<br/>        """
        pass

    def set_identity_pool_roles(self, Roles: RolesMap, IdentityPoolId: str, RoleMappings: RoleMappingMap=None):
        r"""Sets the roles for an identity pool. These roles are used when making calls to <a>GetCredentialsForIdentity</a> action. You must use AWS Developer credentials to call this API.

        :param self:
        :param RoleMappings:  How users for a specific identity provider are to mapped to roles. This is a string to <a>RoleMapping</a> object map. The string identifies the identity provider, for example, "graph.facebook.com" or "cognito-idp.us-east-1.amazonaws.com/us-east-1_abcdefghi:app_client_id". Up to 25 rules can be specified per identity provider.<br/>Roles:  The map of roles associated with this pool. For a given role, the key will be either "authenticated" or "unauthenticated" and the value will be the Role ARN.<br/>IdentityPoolId:  An identity pool ID in the format REGION:GUID.<br/>
        :return:         """
        pass

    def set_principal_tag_attribute_map(self, IdentityProviderName: str, IdentityPoolId: str, UseDefaults: UseDefaults=None, PrincipalTags: PrincipalTags=None) -> SetPrincipalTagAttributeMapResponse:
        r"""You can use this operation to use default (username and clientID) attribute or custom attribute mappings.

        :param self:
        :param PrincipalTags:  You can use this operation to add principal tags.<br/>UseDefaults:  You can use this operation to use default (username and clientID) attribute mappings.<br/>IdentityProviderName:  The provider name you want to use for attribute mappings.<br/>IdentityPoolId:  The ID of the Identity Pool you want to set attribute mappings for.<br/>
        :return: PrincipalTags:  You can use this operation to add principal tags. The <code>PrincipalTags</code>operation enables you to reference user attributes in your IAM permissions policy.<br/>UseDefaults:  You can use this operation to select default (username and clientID) attribute mappings.<br/>IdentityProviderName:  The provider name you want to use for attribute mappings.<br/>IdentityPoolId:  The ID of the Identity Pool you want to set attribute mappings for.<br/>        """
        pass

    def tag_resource(self, Tags: IdentityPoolTagsType, ResourceArn: str) -> TagResourceResponse:
        r"""Assigns a set of tags to the specified Amazon Cognito identity pool. A tag is a label that you can use to categorize and manage identity pools in different ways, such as by purpose, owner, environment, or other criteria. Each tag consists of a key and value, both of which you define. A key is a general category for more specific values. For example, if you have two versions of an identity pool, one for testing and another for production, you might assign an <code>Environment</code> tag key to both identity pools. The value of this key might be <code>Test</code> for one identity pool and <code>Production</code> for the other. Tags are useful for cost tracking and access control. You can activate your tags so that they appear on the Billing and Cost Management console, where you can track the costs associated with your identity pools. In an IAM policy, you can constrain permissions for identity pools based on specific tags or tag values. You can use this action up to 5 times per second, per account. An identity pool can have as many as 50 tags.

        :param self:
        :param Tags:  The tags to assign to the identity pool.<br/>ResourceArn:  The Amazon Resource Name (ARN) of the identity pool.<br/>
        :return:         """
        pass

    def unlink_developer_identity(self, DeveloperUserIdentifier: str, DeveloperProviderName: str, IdentityPoolId: str, IdentityId: str):
        r"""Unlinks a <code>DeveloperUserIdentifier</code> from an existing identity. Unlinked developer users will be considered new identities next time they are seen. If, for a given Cognito identity, you remove all federated identities as well as the developer user identifier, the Cognito identity becomes inaccessible. You must use AWS Developer credentials to call this API.

        :param self:
        :param DeveloperUserIdentifier:  A unique ID used by your backend authentication process to identify a user.<br/>DeveloperProviderName:  The "domain" by which Cognito will refer to your users.<br/>IdentityPoolId:  An identity pool ID in the format REGION:GUID.<br/>IdentityId:  A unique identifier in the format REGION:GUID.<br/>
        :return:         """
        pass

    def unlink_identity(self, LoginsToRemove: List[IdentityProviderName], Logins: LoginsMap, IdentityId: str):
        r"""Unlinks a federated identity from an existing account. Unlinked logins will be considered new identities next time they are seen. Removing the last linked login will make this identity inaccessible. This is a public API. You do not need any credentials to call this API.

        :param self:
        :param LoginsToRemove:  Provider names to unlink from this identity.<br/>Logins:  A set of optional name-value pairs that map provider names to provider tokens.<br/>IdentityId:  A unique identifier in the format REGION:GUID.<br/>
        :return:         """
        pass

    def untag_resource(self, TagKeys: List[TagKeysType], ResourceArn: str) -> UntagResourceResponse:
        r"""Removes the specified tags from the specified Amazon Cognito identity pool. You can use this action up to 5 times per second, per account

        :param self:
        :param TagKeys:  The keys of the tags to remove from the user pool.<br/>ResourceArn:  The Amazon Resource Name (ARN) of the identity pool.<br/>
        :return:         """
        pass

    def update_identity_pool(self, AllowUnauthenticatedIdentities: IdentityPoolUnauthenticated, IdentityPoolName: str, IdentityPoolId: str, AllowClassicFlow: ClassicFlow=None, SupportedLoginProviders: IdentityProviders=None, DeveloperProviderName: str=None, OpenIdConnectProviderARNs: List[ARNString]=None, CognitoIdentityProviders: List[CognitoIdentityProvider]=None, SamlProviderARNs: List[ARNString]=None, IdentityPoolTags: IdentityPoolTagsType=None) -> IdentityPool:
        r"""Updates an identity pool. You must use AWS Developer credentials to call this API.

        :param self:
        :param IdentityPoolTags:  The tags that are assigned to the identity pool. A tag is a label that you can apply to identity pools to categorize and manage them in different ways, such as by purpose, owner, environment, or other criteria.<br/>SamlProviderARNs:  An array of Amazon Resource Names (ARNs) of the SAML provider for your identity pool.<br/>CognitoIdentityProviders:  A list representing an Amazon Cognito user pool and its client ID.<br/>OpenIdConnectProviderARNs:  The ARNs of the OpenID Connect providers.<br/>DeveloperProviderName:  The "domain" by which Cognito will refer to your users.<br/>SupportedLoginProviders:  Optional key:value pairs mapping provider names to provider app IDs.<br/>AllowClassicFlow:  Enables or disables the Basic (Classic) authentication flow. For more information, see <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/authentication-flow.html">Identity Pools (Federated Identities) Authentication Flow</a> in the <i>Amazon Cognito Developer Guide</i>.<br/>AllowUnauthenticatedIdentities:  TRUE if the identity pool supports unauthenticated logins.<br/>IdentityPoolName:  A string that you provide.<br/>IdentityPoolId:  An identity pool ID in the format REGION:GUID.<br/>
        :return: IdentityPoolTags:  The tags that are assigned to the identity pool. A tag is a label that you can apply to identity pools to categorize and manage them in different ways, such as by purpose, owner, environment, or other criteria.<br/>SamlProviderARNs:  An array of Amazon Resource Names (ARNs) of the SAML provider for your identity pool.<br/>CognitoIdentityProviders:  A list representing an Amazon Cognito user pool and its client ID.<br/>OpenIdConnectProviderARNs:  The ARNs of the OpenID Connect providers.<br/>DeveloperProviderName:  The "domain" by which Cognito will refer to your users.<br/>SupportedLoginProviders:  Optional key:value pairs mapping provider names to provider app IDs.<br/>AllowClassicFlow:  Enables or disables the Basic (Classic) authentication flow. For more information, see <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/authentication-flow.html">Identity Pools (Federated Identities) Authentication Flow</a> in the <i>Amazon Cognito Developer Guide</i>.<br/>AllowUnauthenticatedIdentities:  TRUE if the identity pool supports unauthenticated logins.<br/>IdentityPoolName:  A string that you provide.<br/>IdentityPoolId:  An identity pool ID in the format REGION:GUID.<br/>        """
        pass





class CognitoIdentityProvider(BaseClient):
    r"""Using the Amazon Cognito User Pools API, you can create a user pool to manage directories and users. You can authenticate a user to obtain tokens related to user identity and access policies. This API reference provides information about user pools in Amazon Cognito User Pools. For more information, see the <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/what-is-amazon-cognito.html">Amazon Cognito Documentation</a>."""


    class AdminListGroupsForUserPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `admin_list_groups_for_user` for valid parameters"""
            pass
    class AdminListUserAuthEventsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `admin_list_user_auth_events` for valid parameters"""
            pass
    class ListGroupsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_groups` for valid parameters"""
            pass
    class ListIdentityProvidersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_identity_providers` for valid parameters"""
            pass
    class ListResourceServersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_resource_servers` for valid parameters"""
            pass
    class ListUserPoolClientsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_user_pool_clients` for valid parameters"""
            pass
    class ListUserPoolsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_user_pools` for valid parameters"""
            pass
    class ListUsersInGroupPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_users_in_group` for valid parameters"""
            pass
    class ListUsersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_users` for valid parameters"""
            pass


    class AddCustomAttributesRequest(Mapping):
        pass
    
    class AddCustomAttributesResponse(Mapping):
        pass
    
    class SchemaAttributeType(Mapping):
        pass
    
    class AdminAddUserToGroupRequest(Mapping):
        pass
    
    class AdminConfirmSignUpRequest(Mapping):
        pass
    
    class AdminConfirmSignUpResponse(Mapping):
        pass
    
    class ClientMetadataType(object):
        pass
    
    class AdminCreateUserRequest(Mapping):
        pass
    
    class AdminCreateUserResponse(Mapping):
        pass
    
    class AttributeType(Mapping):
        pass
    
    class ForceAliasCreation(object):
        pass
    
    class DeliveryMediumType(object):
        pass
    
    class AdminDeleteUserRequest(Mapping):
        pass
    
    class AdminDeleteUserAttributesRequest(Mapping):
        pass
    
    class AdminDeleteUserAttributesResponse(Mapping):
        pass
    
    class AttributeNameType(object):
        pass
    
    class AdminDisableProviderForUserRequest(Mapping):
        pass
    
    class AdminDisableProviderForUserResponse(Mapping):
        pass
    
    class ProviderUserIdentifierType(Mapping):
        pass
    
    class AdminDisableUserRequest(Mapping):
        pass
    
    class AdminDisableUserResponse(Mapping):
        pass
    
    class AdminEnableUserRequest(Mapping):
        pass
    
    class AdminEnableUserResponse(Mapping):
        pass
    
    class AdminForgetDeviceRequest(Mapping):
        pass
    
    class AdminGetDeviceRequest(Mapping):
        pass
    
    class AdminGetDeviceResponse(Mapping):
        pass
    
    class AdminGetUserRequest(Mapping):
        pass
    
    class AdminGetUserResponse(Mapping):
        pass
    
    class AdminInitiateAuthRequest(Mapping):
        pass
    
    class AdminInitiateAuthResponse(Mapping):
        pass
    
    class AuthParametersType(object):
        pass
    
    class AnalyticsMetadataType(Mapping):
        pass
    
    class ContextDataType(Mapping):
        pass
    
    class AdminLinkProviderForUserRequest(Mapping):
        pass
    
    class AdminLinkProviderForUserResponse(Mapping):
        pass
    
    class AdminListDevicesRequest(Mapping):
        pass
    
    class AdminListDevicesResponse(Mapping):
        pass
    
    class AdminListGroupsForUserRequest(Mapping):
        pass
    
    class AdminListGroupsForUserResponse(Mapping):
        pass
    
    class AdminListUserAuthEventsRequest(Mapping):
        pass
    
    class AdminListUserAuthEventsResponse(Mapping):
        pass
    
    class AdminRemoveUserFromGroupRequest(Mapping):
        pass
    
    class AdminResetUserPasswordRequest(Mapping):
        pass
    
    class AdminResetUserPasswordResponse(Mapping):
        pass
    
    class AdminRespondToAuthChallengeRequest(Mapping):
        pass
    
    class AdminRespondToAuthChallengeResponse(Mapping):
        pass
    
    class ChallengeResponsesType(object):
        pass
    
    class AdminSetUserMFAPreferenceRequest(Mapping):
        pass
    
    class AdminSetUserMFAPreferenceResponse(Mapping):
        pass
    
    class SMSMfaSettingsType(Mapping):
        pass
    
    class SoftwareTokenMfaSettingsType(Mapping):
        pass
    
    class AdminSetUserPasswordRequest(Mapping):
        pass
    
    class AdminSetUserPasswordResponse(Mapping):
        pass
    
    class BooleanType(object):
        pass
    
    class AdminSetUserSettingsRequest(Mapping):
        pass
    
    class AdminSetUserSettingsResponse(Mapping):
        pass
    
    class MFAOptionType(Mapping):
        pass
    
    class AdminUpdateAuthEventFeedbackRequest(Mapping):
        pass
    
    class AdminUpdateAuthEventFeedbackResponse(Mapping):
        pass
    
    class AdminUpdateDeviceStatusRequest(Mapping):
        pass
    
    class AdminUpdateDeviceStatusResponse(Mapping):
        pass
    
    class AdminUpdateUserAttributesRequest(Mapping):
        pass
    
    class AdminUpdateUserAttributesResponse(Mapping):
        pass
    
    class AdminUserGlobalSignOutRequest(Mapping):
        pass
    
    class AdminUserGlobalSignOutResponse(Mapping):
        pass
    
    class AssociateSoftwareTokenRequest(Mapping):
        pass
    
    class AssociateSoftwareTokenResponse(Mapping):
        pass
    
    class ChangePasswordRequest(Mapping):
        pass
    
    class ChangePasswordResponse(Mapping):
        pass
    
    class ConfirmDeviceRequest(Mapping):
        pass
    
    class ConfirmDeviceResponse(Mapping):
        pass
    
    class DeviceSecretVerifierConfigType(Mapping):
        pass
    
    class ConfirmForgotPasswordRequest(Mapping):
        pass
    
    class ConfirmForgotPasswordResponse(Mapping):
        pass
    
    class UserContextDataType(Mapping):
        pass
    
    class ConfirmSignUpRequest(Mapping):
        pass
    
    class ConfirmSignUpResponse(Mapping):
        pass
    
    class CreateGroupRequest(Mapping):
        pass
    
    class CreateGroupResponse(Mapping):
        pass
    
    class CreateIdentityProviderRequest(Mapping):
        pass
    
    class CreateIdentityProviderResponse(Mapping):
        pass
    
    class ProviderDetailsType(object):
        pass
    
    class AttributeMappingType(object):
        pass
    
    class IdpIdentifierType(object):
        pass
    
    class CreateResourceServerRequest(Mapping):
        pass
    
    class CreateResourceServerResponse(Mapping):
        pass
    
    class ResourceServerScopeType(Mapping):
        pass
    
    class CreateUserImportJobRequest(Mapping):
        pass
    
    class CreateUserImportJobResponse(Mapping):
        pass
    
    class CreateUserPoolRequest(Mapping):
        pass
    
    class CreateUserPoolResponse(Mapping):
        pass
    
    class UserPoolPolicyType(Mapping):
        pass
    
    class LambdaConfigType(Mapping):
        pass
    
    class VerifiedAttributeType(object):
        pass
    
    class AliasAttributeType(object):
        pass
    
    class UsernameAttributeType(object):
        pass
    
    class VerificationMessageTemplateType(Mapping):
        pass
    
    class DeviceConfigurationType(Mapping):
        pass
    
    class EmailConfigurationType(Mapping):
        pass
    
    class SmsConfigurationType(Mapping):
        pass
    
    class UserPoolTagsType(object):
        pass
    
    class AdminCreateUserConfigType(Mapping):
        pass
    
    class UserPoolAddOnsType(Mapping):
        pass
    
    class UsernameConfigurationType(Mapping):
        pass
    
    class AccountRecoverySettingType(Mapping):
        pass
    
    class CreateUserPoolClientRequest(Mapping):
        pass
    
    class CreateUserPoolClientResponse(Mapping):
        pass
    
    class GenerateSecret(object):
        pass
    
    class TokenValidityUnitsType(Mapping):
        pass
    
    class ClientPermissionType(object):
        pass
    
    class ExplicitAuthFlowsType(object):
        pass
    
    class ProviderNameType(object):
        pass
    
    class RedirectUrlType(object):
        pass
    
    class OAuthFlowType(object):
        pass
    
    class ScopeType(object):
        pass
    
    class AnalyticsConfigurationType(Mapping):
        pass
    
    class WrappedBooleanType(object):
        pass
    
    class CreateUserPoolDomainRequest(Mapping):
        pass
    
    class CreateUserPoolDomainResponse(Mapping):
        pass
    
    class CustomDomainConfigType(Mapping):
        pass
    
    class DeleteGroupRequest(Mapping):
        pass
    
    class DeleteIdentityProviderRequest(Mapping):
        pass
    
    class DeleteResourceServerRequest(Mapping):
        pass
    
    class DeleteUserRequest(Mapping):
        pass
    
    class DeleteUserAttributesRequest(Mapping):
        pass
    
    class DeleteUserAttributesResponse(Mapping):
        pass
    
    class DeleteUserPoolRequest(Mapping):
        pass
    
    class DeleteUserPoolClientRequest(Mapping):
        pass
    
    class DeleteUserPoolDomainRequest(Mapping):
        pass
    
    class DeleteUserPoolDomainResponse(Mapping):
        pass
    
    class DescribeIdentityProviderRequest(Mapping):
        pass
    
    class DescribeIdentityProviderResponse(Mapping):
        pass
    
    class DescribeResourceServerRequest(Mapping):
        pass
    
    class DescribeResourceServerResponse(Mapping):
        pass
    
    class DescribeRiskConfigurationRequest(Mapping):
        pass
    
    class DescribeRiskConfigurationResponse(Mapping):
        pass
    
    class DescribeUserImportJobRequest(Mapping):
        pass
    
    class DescribeUserImportJobResponse(Mapping):
        pass
    
    class DescribeUserPoolRequest(Mapping):
        pass
    
    class DescribeUserPoolResponse(Mapping):
        pass
    
    class DescribeUserPoolClientRequest(Mapping):
        pass
    
    class DescribeUserPoolClientResponse(Mapping):
        pass
    
    class DescribeUserPoolDomainRequest(Mapping):
        pass
    
    class DescribeUserPoolDomainResponse(Mapping):
        pass
    
    class ForgetDeviceRequest(Mapping):
        pass
    
    class ForgotPasswordRequest(Mapping):
        pass
    
    class ForgotPasswordResponse(Mapping):
        pass
    
    class GetCSVHeaderRequest(Mapping):
        pass
    
    class GetCSVHeaderResponse(Mapping):
        pass
    
    class GetDeviceRequest(Mapping):
        pass
    
    class GetDeviceResponse(Mapping):
        pass
    
    class GetGroupRequest(Mapping):
        pass
    
    class GetGroupResponse(Mapping):
        pass
    
    class GetIdentityProviderByIdentifierRequest(Mapping):
        pass
    
    class GetIdentityProviderByIdentifierResponse(Mapping):
        pass
    
    class GetSigningCertificateRequest(Mapping):
        pass
    
    class GetSigningCertificateResponse(Mapping):
        pass
    
    class GetUICustomizationRequest(Mapping):
        pass
    
    class GetUICustomizationResponse(Mapping):
        pass
    
    class GetUserRequest(Mapping):
        pass
    
    class GetUserResponse(Mapping):
        pass
    
    class GetUserAttributeVerificationCodeRequest(Mapping):
        pass
    
    class GetUserAttributeVerificationCodeResponse(Mapping):
        pass
    
    class GetUserPoolMfaConfigRequest(Mapping):
        pass
    
    class GetUserPoolMfaConfigResponse(Mapping):
        pass
    
    class GlobalSignOutRequest(Mapping):
        pass
    
    class GlobalSignOutResponse(Mapping):
        pass
    
    class InitiateAuthRequest(Mapping):
        pass
    
    class InitiateAuthResponse(Mapping):
        pass
    
    class ListDevicesRequest(Mapping):
        pass
    
    class ListDevicesResponse(Mapping):
        pass
    
    class ListGroupsRequest(Mapping):
        pass
    
    class ListGroupsResponse(Mapping):
        pass
    
    class ListIdentityProvidersRequest(Mapping):
        pass
    
    class ListIdentityProvidersResponse(Mapping):
        pass
    
    class ListResourceServersRequest(Mapping):
        pass
    
    class ListResourceServersResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class ListUserImportJobsRequest(Mapping):
        pass
    
    class ListUserImportJobsResponse(Mapping):
        pass
    
    class ListUserPoolClientsRequest(Mapping):
        pass
    
    class ListUserPoolClientsResponse(Mapping):
        pass
    
    class ListUserPoolsRequest(Mapping):
        pass
    
    class ListUserPoolsResponse(Mapping):
        pass
    
    class ListUsersRequest(Mapping):
        pass
    
    class ListUsersResponse(Mapping):
        pass
    
    class ListUsersInGroupRequest(Mapping):
        pass
    
    class ListUsersInGroupResponse(Mapping):
        pass
    
    class ResendConfirmationCodeRequest(Mapping):
        pass
    
    class ResendConfirmationCodeResponse(Mapping):
        pass
    
    class RespondToAuthChallengeRequest(Mapping):
        pass
    
    class RespondToAuthChallengeResponse(Mapping):
        pass
    
    class RevokeTokenRequest(Mapping):
        pass
    
    class RevokeTokenResponse(Mapping):
        pass
    
    class SetRiskConfigurationRequest(Mapping):
        pass
    
    class SetRiskConfigurationResponse(Mapping):
        pass
    
    class CompromisedCredentialsRiskConfigurationType(Mapping):
        pass
    
    class AccountTakeoverRiskConfigurationType(Mapping):
        pass
    
    class RiskExceptionConfigurationType(Mapping):
        pass
    
    class SetUICustomizationRequest(Mapping):
        pass
    
    class SetUICustomizationResponse(Mapping):
        pass
    
    class ImageFileType(object):
        pass
    
    class SetUserMFAPreferenceRequest(Mapping):
        pass
    
    class SetUserMFAPreferenceResponse(Mapping):
        pass
    
    class SetUserPoolMfaConfigRequest(Mapping):
        pass
    
    class SetUserPoolMfaConfigResponse(Mapping):
        pass
    
    class SmsMfaConfigType(Mapping):
        pass
    
    class SoftwareTokenMfaConfigType(Mapping):
        pass
    
    class SetUserSettingsRequest(Mapping):
        pass
    
    class SetUserSettingsResponse(Mapping):
        pass
    
    class SignUpRequest(Mapping):
        pass
    
    class SignUpResponse(Mapping):
        pass
    
    class StartUserImportJobRequest(Mapping):
        pass
    
    class StartUserImportJobResponse(Mapping):
        pass
    
    class StopUserImportJobRequest(Mapping):
        pass
    
    class StopUserImportJobResponse(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKeysType(object):
        pass
    
    class UpdateAuthEventFeedbackRequest(Mapping):
        pass
    
    class UpdateAuthEventFeedbackResponse(Mapping):
        pass
    
    class UpdateDeviceStatusRequest(Mapping):
        pass
    
    class UpdateDeviceStatusResponse(Mapping):
        pass
    
    class UpdateGroupRequest(Mapping):
        pass
    
    class UpdateGroupResponse(Mapping):
        pass
    
    class UpdateIdentityProviderRequest(Mapping):
        pass
    
    class UpdateIdentityProviderResponse(Mapping):
        pass
    
    class UpdateResourceServerRequest(Mapping):
        pass
    
    class UpdateResourceServerResponse(Mapping):
        pass
    
    class UpdateUserAttributesRequest(Mapping):
        pass
    
    class UpdateUserAttributesResponse(Mapping):
        pass
    
    class UpdateUserPoolRequest(Mapping):
        pass
    
    class UpdateUserPoolResponse(Mapping):
        pass
    
    class UpdateUserPoolClientRequest(Mapping):
        pass
    
    class UpdateUserPoolClientResponse(Mapping):
        pass
    
    class UpdateUserPoolDomainRequest(Mapping):
        pass
    
    class UpdateUserPoolDomainResponse(Mapping):
        pass
    
    class VerifySoftwareTokenRequest(Mapping):
        pass
    
    class VerifySoftwareTokenResponse(Mapping):
        pass
    
    class VerifyUserAttributeRequest(Mapping):
        pass
    
    class VerifyUserAttributeResponse(Mapping):
        pass
    
    def add_custom_attributes(self, CustomAttributes: List[SchemaAttributeType], UserPoolId: str) -> AddCustomAttributesResponse:
        r"""Adds additional user attributes to the user pool schema.

        :param self:
        :param CustomAttributes:  An array of custom attributes, such as Mutable and Name.<br/>UserPoolId:  The user pool ID for the user pool where you want to add custom attributes.<br/>
        :return:         """
        pass

    def admin_add_user_to_group(self, GroupName: str, Username: str, UserPoolId: str):
        r"""Adds the specified user to the specified group. Calling this action requires developer credentials.

        :param self:
        :param GroupName:  The group name.<br/>Username:  The username for the user.<br/>UserPoolId:  The user pool ID for the user pool.<br/>
        :return:         """
        pass

    def admin_confirm_sign_up(self, Username: str, UserPoolId: str, ClientMetadata: ClientMetadataType=None) -> AdminConfirmSignUpResponse:
        r"""Confirms user registration as an admin without using a confirmation code. Works on any user. Calling this action requires developer credentials.

        :param self:
        :param ClientMetadata:  A map of custom key-value pairs that you can provide as input for any custom workflows that this action triggers.  If your user pool configuration includes triggers, the AdminConfirmSignUp API action invokes the AWS Lambda function that is specified for the <i>post confirmation</i> trigger. When Amazon Cognito invokes this function, it passes a JSON payload, which the function receives as input. In this payload, the <code>clientMetadata</code> attribute provides the data that you assigned to the ClientMetadata parameter in your AdminConfirmSignUp request. In your function code in AWS Lambda, you can process the ClientMetadata value to enhance your workflow for your specific needs. For more information, see <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools-working-with-aws-lambda-triggers.html">Customizing User Pool Workflows with Lambda Triggers</a> in the <i>Amazon Cognito Developer Guide</i>. <note> Take the following limitations into consideration when you use the ClientMetadata parameter: <ul> <li> Amazon Cognito does not store the ClientMetadata value. This data is available only to AWS Lambda triggers that are assigned to a user pool to support custom workflows. If your user pool configuration does not include triggers, the ClientMetadata parameter serves no purpose. </li> <li> Amazon Cognito does not validate the ClientMetadata value. </li> <li> Amazon Cognito does not encrypt the the ClientMetadata value, so don't use it to provide sensitive information. </li> </ul> </note><br/>Username:  The user name for which you want to confirm user registration.<br/>UserPoolId:  The user pool ID for which you want to confirm user registration.<br/>
        :return:         """
        pass

    def admin_create_user(self, Username: str, UserPoolId: str, UserAttributes: List[AttributeType]=None, ValidationData: List[AttributeType]=None, TemporaryPassword: str=None, ForceAliasCreation: ForceAliasCreation=None, MessageAction: str=None, DesiredDeliveryMediums: List[DeliveryMediumType]=None, ClientMetadata: ClientMetadataType=None) -> AdminCreateUserResponse:
        r"""Creates a new user in the specified user pool. If <code>MessageAction</code> is not set, the default is to send a welcome message via email or phone (SMS). <note> This action might generate an SMS text message. Starting June 1, 2021, U.S. telecom carriers require that you register an origination phone number before you can send SMS messages to U.S. phone numbers. If you use SMS text messages in Amazon Cognito, you must register a phone number with <a href="https://console.aws.amazon.com/pinpoint/home/">Amazon Pinpoint</a>. Cognito will use the the registered number automatically. Otherwise, Cognito users that must receive SMS messages might be unable to sign up, activate their accounts, or sign in. If you have never used SMS text messages with Amazon Cognito or any other AWS service, Amazon SNS might place your account in SMS sandbox. In <i> <a href="https://docs.aws.amazon.com/sns/latest/dg/sns-sms-sandbox.html">sandbox mode</a> </i>, you’ll have limitations, such as sending messages to only verified phone numbers. After testing in the sandbox environment, you can move out of the SMS sandbox and into production. For more information, see <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools-sms-userpool-settings.html"> SMS message settings for Cognito User Pools</a> in the <i>Amazon Cognito Developer Guide</i>.  </note> This message is based on a template that you configured in your call to create or update a user pool. This template includes your custom sign-up instructions and placeholders for user name and temporary password. Alternatively, you can call <code>AdminCreateUser</code> with “SUPPRESS” for the <code>MessageAction</code> parameter, and Amazon Cognito will not send any email.  In either case, the user will be in the <code>FORCE_CHANGE_PASSWORD</code> state until they sign in and change their password.  <code>AdminCreateUser</code> requires developer credentials.

        :param self:
        :param ClientMetadata:  A map of custom key-value pairs that you can provide as input for any custom workflows that this action triggers.  You create custom workflows by assigning AWS Lambda functions to user pool triggers. When you use the AdminCreateUser API action, Amazon Cognito invokes the function that is assigned to the <i>pre sign-up</i> trigger. When Amazon Cognito invokes this function, it passes a JSON payload, which the function receives as input. This payload contains a <code>clientMetadata</code> attribute, which provides the data that you assigned to the ClientMetadata parameter in your AdminCreateUser request. In your function code in AWS Lambda, you can process the <code>clientMetadata</code> value to enhance your workflow for your specific needs. For more information, see <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools-working-with-aws-lambda-triggers.html">Customizing User Pool Workflows with Lambda Triggers</a> in the <i>Amazon Cognito Developer Guide</i>. <note> Take the following limitations into consideration when you use the ClientMetadata parameter: <ul> <li> Amazon Cognito does not store the ClientMetadata value. This data is available only to AWS Lambda triggers that are assigned to a user pool to support custom workflows. If your user pool configuration does not include triggers, the ClientMetadata parameter serves no purpose. </li> <li> Amazon Cognito does not validate the ClientMetadata value. </li> <li> Amazon Cognito does not encrypt the the ClientMetadata value, so don't use it to provide sensitive information. </li> </ul> </note><br/>DesiredDeliveryMediums:  Specify <code>"EMAIL"</code> if email will be used to send the welcome message. Specify <code>"SMS"</code> if the phone number will be used. The default value is <code>"SMS"</code>. More than one value can be specified.<br/>MessageAction:  Set to <code>"RESEND"</code> to resend the invitation message to a user that already exists and reset the expiration limit on the user's account. Set to <code>"SUPPRESS"</code> to suppress sending the message. Only one value can be specified.<br/>ForceAliasCreation:  This parameter is only used if the <code>phone_number_verified</code> or <code>email_verified</code> attribute is set to <code>True</code>. Otherwise, it is ignored. If this parameter is set to <code>True</code> and the phone number or email address specified in the UserAttributes parameter already exists as an alias with a different user, the API call will migrate the alias from the previous user to the newly created user. The previous user will no longer be able to log in using that alias. If this parameter is set to <code>False</code>, the API throws an <code>AliasExistsException</code> error if the alias already exists. The default value is <code>False</code>.<br/>TemporaryPassword:  The user's temporary password. This password must conform to the password policy that you specified when you created the user pool. The temporary password is valid only once. To complete the Admin Create User flow, the user must enter the temporary password in the sign-in page along with a new password to be used in all future sign-ins. This parameter is not required. If you do not specify a value, Amazon Cognito generates one for you. The temporary password can only be used until the user account expiration limit that you specified when you created the user pool. To reset the account after that time limit, you must call <code>AdminCreateUser</code> again, specifying <code>"RESEND"</code> for the <code>MessageAction</code> parameter.<br/>ValidationData:  The user's validation data. This is an array of name-value pairs that contain user attributes and attribute values that you can use for custom validation, such as restricting the types of user accounts that can be registered. For example, you might choose to allow or disallow user sign-up based on the user's domain. To configure custom validation, you must create a Pre Sign-up Lambda trigger for the user pool as described in the Amazon Cognito Developer Guide. The Lambda trigger receives the validation data and uses it in the validation process. The user's validation data is not persisted.<br/>UserAttributes:  An array of name-value pairs that contain user attributes and attribute values to be set for the user to be created. You can create a user without specifying any attributes other than <code>Username</code>. However, any attributes that you specify as required (when creating a user pool or in the <b>Attributes</b> tab of the console) must be supplied either by you (in your call to <code>AdminCreateUser</code>) or by the user (when he or she signs up in response to your welcome message). For custom attributes, you must prepend the <code>custom:</code> prefix to the attribute name. To send a message inviting the user to sign up, you must specify the user's email address or phone number. This can be done in your call to AdminCreateUser or in the <b>Users</b> tab of the Amazon Cognito console for managing your user pools. In your call to <code>AdminCreateUser</code>, you can set the <code>email_verified</code> attribute to <code>True</code>, and you can set the <code>phone_number_verified</code> attribute to <code>True</code>. (You can also do this by calling <a href="https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminUpdateUserAttributes.html">AdminUpdateUserAttributes</a>.) <ul> <li>  <b>email</b>: The email address of the user to whom the message that contains the code and username will be sent. Required if the <code>email_verified</code> attribute is set to <code>True</code>, or if <code>"EMAIL"</code> is specified in the <code>DesiredDeliveryMediums</code> parameter. </li> <li>  <b>phone_number</b>: The phone number of the user to whom the message that contains the code and username will be sent. Required if the <code>phone_number_verified</code> attribute is set to <code>True</code>, or if <code>"SMS"</code> is specified in the <code>DesiredDeliveryMediums</code> parameter. </li> </ul><br/>Username:  The username for the user. Must be unique within the user pool. Must be a UTF-8 string between 1 and 128 characters. After the user is created, the username cannot be changed.<br/>UserPoolId:  The user pool ID for the user pool where the user will be created.<br/>
        :return: User:  The newly created user.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MFAOptions</i> The MFA options for the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserStatus</i> The user status. Can be one of the following: <ul> <li> UNCONFIRMED - User has been created but not confirmed. </li> <li> CONFIRMED - User has been confirmed. </li> <li> ARCHIVED - User is no longer active. </li> <li> COMPROMISED - User is disabled due to a potential security threat. </li> <li> UNKNOWN - User status is not known. </li> <li> RESET_REQUIRED - User is confirmed, but the user must request a code and reset his or her password before he or she can sign in. </li> <li> FORCE_CHANGE_PASSWORD - The user is confirmed and the user can sign in using a temporary password, but on first sign-in, the user must change his or her password to a new value before doing anything else.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specifies whether the user is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserLastModifiedDate</i> The last modified date of the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserCreateDate</i> The creation date of the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Attributes</i> A container with information about the user type attributes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Username</i> The user name of the user you wish to describe.<br/>        """
        pass

    def admin_delete_user(self, Username: str, UserPoolId: str):
        r"""Deletes a user as an administrator. Works on any user. Calling this action requires developer credentials.

        :param self:
        :param Username:  The user name of the user you wish to delete.<br/>UserPoolId:  The user pool ID for the user pool where you want to delete the user.<br/>
        :return:         """
        pass

    def admin_delete_user_attributes(self, UserAttributeNames: List[AttributeNameType], Username: str, UserPoolId: str) -> AdminDeleteUserAttributesResponse:
        r"""Deletes the user attributes in a user pool as an administrator. Works on any user. Calling this action requires developer credentials.

        :param self:
        :param UserAttributeNames:  An array of strings representing the user attribute names you wish to delete. For custom attributes, you must prepend the <code>custom:</code> prefix to the attribute name.<br/>Username:  The user name of the user from which you would like to delete attributes.<br/>UserPoolId:  The user pool ID for the user pool where you want to delete user attributes.<br/>
        :return:         """
        pass

    def admin_disable_provider_for_user(self, User: ProviderUserIdentifierType, UserPoolId: str) -> AdminDisableProviderForUserResponse:
        r"""Disables the user from signing in with the specified external (SAML or social) identity provider. If the user to disable is a Cognito User Pools native username + password user, they are not permitted to use their password to sign-in. If the user to disable is a linked external IdP user, any link between that user and an existing user is removed. The next time the external user (no longer attached to the previously linked <code>DestinationUser</code>) signs in, they must create a new user account. See <a href="https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminLinkProviderForUser.html">AdminLinkProviderForUser</a>. This action is enabled only for admin access and requires developer credentials. The <code>ProviderName</code> must match the value specified when creating an IdP for the pool.  To disable a native username + password user, the <code>ProviderName</code> value must be <code>Cognito</code> and the <code>ProviderAttributeName</code> must be <code>Cognito_Subject</code>, with the <code>ProviderAttributeValue</code> being the name that is used in the user pool for the user. The <code>ProviderAttributeName</code> must always be <code>Cognito_Subject</code> for social identity providers. The <code>ProviderAttributeValue</code> must always be the exact subject that was used when the user was originally linked as a source user. For de-linking a SAML identity, there are two scenarios. If the linked identity has not yet been used to sign-in, the <code>ProviderAttributeName</code> and <code>ProviderAttributeValue</code> must be the same values that were used for the <code>SourceUser</code> when the identities were originally linked using <code> AdminLinkProviderForUser</code> call. (If the linking was done with <code>ProviderAttributeName</code> set to <code>Cognito_Subject</code>, the same applies here). However, if the user has already signed in, the <code>ProviderAttributeName</code> must be <code>Cognito_Subject</code> and <code>ProviderAttributeValue</code> must be the subject of the SAML assertion.

        :param self:
        :param User:  The user to be disabled.:<br/>UserPoolId:  The user pool ID for the user pool.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProviderAttributeValue</i> The value of the provider attribute to link to, for example, <code>xxxxx_account</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProviderAttributeName</i> The name of the provider attribute to link to, for example, <code>NameID</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProviderName</i> The name of the provider, for example, Facebook, Google, or Login with Amazon.<br/>
        :return:         """
        pass

    def admin_disable_user(self, Username: str, UserPoolId: str) -> AdminDisableUserResponse:
        r"""Disables the specified user. Calling this action requires developer credentials.

        :param self:
        :param Username:  The user name of the user you wish to disable.<br/>UserPoolId:  The user pool ID for the user pool where you want to disable the user.<br/>
        :return:         """
        pass

    def admin_enable_user(self, Username: str, UserPoolId: str) -> AdminEnableUserResponse:
        r"""Enables the specified user as an administrator. Works on any user. Calling this action requires developer credentials.

        :param self:
        :param Username:  The user name of the user you wish to enable.<br/>UserPoolId:  The user pool ID for the user pool where you want to enable the user.<br/>
        :return:         """
        pass

    def admin_forget_device(self, DeviceKey: str, Username: str, UserPoolId: str):
        r"""Forgets the device, as an administrator. Calling this action requires developer credentials.

        :param self:
        :param DeviceKey:  The device key.<br/>Username:  The user name.<br/>UserPoolId:  The user pool ID.<br/>
        :return:         """
        pass

    def admin_get_device(self, Username: str, UserPoolId: str, DeviceKey: str) -> AdminGetDeviceResponse:
        r"""Gets the device, as an administrator. Calling this action requires developer credentials.

        :param self:
        :param Username:  The user name.<br/>UserPoolId:  The user pool ID.<br/>DeviceKey:  The device key.<br/>
        :return: Device:  The device.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeviceLastAuthenticatedDate</i> The date in which the device was last authenticated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeviceLastModifiedDate</i> The last modified date of the device.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeviceCreateDate</i> The creation date of the device.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeviceAttributes</i> The device attributes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeviceKey</i> The device key.<br/>        """
        pass

    def admin_get_user(self, Username: str, UserPoolId: str) -> AdminGetUserResponse:
        r"""Gets the specified user by user name in a user pool as an administrator. Works on any user. Calling this action requires developer credentials.

        :param self:
        :param Username:  The user name of the user you wish to retrieve.<br/>UserPoolId:  The user pool ID for the user pool where you want to get information about the user.<br/>
        :return: UserMFASettingList:  The MFA options that are enabled for the user. The possible values in this list are <code>SMS_MFA</code> and <code>SOFTWARE_TOKEN_MFA</code>.<br/>PreferredMfaSetting:  The user's preferred MFA setting.<br/>MFAOptions:   <i>This response parameter is no longer supported.</i> It provides information only about SMS MFA configurations. It doesn't provide information about TOTP software token MFA configurations. To look up information about either type of MFA configuration, use UserMFASettingList instead.<br/>UserStatus:  The user status. Can be one of the following: <ul> <li> UNCONFIRMED - User has been created but not confirmed. </li> <li> CONFIRMED - User has been confirmed. </li> <li> ARCHIVED - User is no longer active. </li> <li> COMPROMISED - User is disabled due to a potential security threat. </li> <li> UNKNOWN - User status is not known. </li> <li> RESET_REQUIRED - User is confirmed, but the user must request a code and reset his or her password before he or she can sign in. </li> <li> FORCE_CHANGE_PASSWORD - The user is confirmed and the user can sign in using a temporary password, but on first sign-in, the user must change his or her password to a new value before doing anything else.  </li> </ul><br/>Enabled:  Indicates that the status is enabled.<br/>UserLastModifiedDate:  The date the user was last modified.<br/>UserCreateDate:  The date the user was created.<br/>UserAttributes:  An array of name-value pairs representing user attributes.<br/>Username:  The user name of the user about whom you are receiving information.<br/>        """
        pass

    def admin_initiate_auth(self, AuthFlow: str, ClientId: str, UserPoolId: str, AuthParameters: AuthParametersType=None, ClientMetadata: ClientMetadataType=None, AnalyticsMetadata: AnalyticsMetadataType=None, ContextData: ContextDataType=None) -> AdminInitiateAuthResponse:
        r"""Initiates the authentication flow, as an administrator. <note> This action might generate an SMS text message. Starting June 1, 2021, U.S. telecom carriers require that you register an origination phone number before you can send SMS messages to U.S. phone numbers. If you use SMS text messages in Amazon Cognito, you must register a phone number with <a href="https://console.aws.amazon.com/pinpoint/home/">Amazon Pinpoint</a>. Cognito will use the the registered number automatically. Otherwise, Cognito users that must receive SMS messages might be unable to sign up, activate their accounts, or sign in. If you have never used SMS text messages with Amazon Cognito or any other AWS service, Amazon SNS might place your account in SMS sandbox. In <i> <a href="https://docs.aws.amazon.com/sns/latest/dg/sns-sms-sandbox.html">sandbox mode</a> </i>, you’ll have limitations, such as sending messages to only verified phone numbers. After testing in the sandbox environment, you can move out of the SMS sandbox and into production. For more information, see <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools-sms-userpool-settings.html"> SMS message settings for Cognito User Pools</a> in the <i>Amazon Cognito Developer Guide</i>.  </note> Calling this action requires developer credentials.

        :param self:
        :param ContextData:  Contextual data such as the user's device fingerprint, IP address, or location used for evaluating the risk of an unexpected event by Amazon Cognito advanced security.:<br/>AnalyticsMetadata:  The analytics metadata for collecting Amazon Pinpoint metrics for <code>AdminInitiateAuth</code> calls.:<br/>ClientMetadata:  A map of custom key-value pairs that you can provide as input for certain custom workflows that this action triggers. You create custom workflows by assigning AWS Lambda functions to user pool triggers. When you use the AdminInitiateAuth API action, Amazon Cognito invokes the AWS Lambda functions that are specified for various triggers. The ClientMetadata value is passed as input to the functions for only the following triggers: <ul> <li> Pre signup </li> <li> Pre authentication </li> <li> User migration </li> </ul> When Amazon Cognito invokes the functions for these triggers, it passes a JSON payload, which the function receives as input. This payload contains a <code>validationData</code> attribute, which provides the data that you assigned to the ClientMetadata parameter in your AdminInitiateAuth request. In your function code in AWS Lambda, you can process the <code>validationData</code> value to enhance your workflow for your specific needs. When you use the AdminInitiateAuth API action, Amazon Cognito also invokes the functions for the following triggers, but it does not provide the ClientMetadata value as input: <ul> <li> Post authentication </li> <li> Custom message </li> <li> Pre token generation </li> <li> Create auth challenge </li> <li> Define auth challenge </li> <li> Verify auth challenge </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools-working-with-aws-lambda-triggers.html">Customizing User Pool Workflows with Lambda Triggers</a> in the <i>Amazon Cognito Developer Guide</i>. <note> Take the following limitations into consideration when you use the ClientMetadata parameter: <ul> <li> Amazon Cognito does not store the ClientMetadata value. This data is available only to AWS Lambda triggers that are assigned to a user pool to support custom workflows. If your user pool configuration does not include triggers, the ClientMetadata parameter serves no purpose. </li> <li> Amazon Cognito does not validate the ClientMetadata value. </li> <li> Amazon Cognito does not encrypt the the ClientMetadata value, so don't use it to provide sensitive information. </li> </ul> </note><br/>AuthParameters:  The authentication parameters. These are inputs corresponding to the <code>AuthFlow</code> that you are invoking. The required values depend on the value of <code>AuthFlow</code>: <ul> <li> For <code>USER_SRP_AUTH</code>: <code>USERNAME</code> (required), <code>SRP_A</code> (required), <code>SECRET_HASH</code> (required if the app client is configured with a client secret), <code>DEVICE_KEY</code>. </li> <li> For <code>REFRESH_TOKEN_AUTH/REFRESH_TOKEN</code>: <code>REFRESH_TOKEN</code> (required), <code>SECRET_HASH</code> (required if the app client is configured with a client secret), <code>DEVICE_KEY</code>. </li> <li> For <code>ADMIN_NO_SRP_AUTH</code>: <code>USERNAME</code> (required), <code>SECRET_HASH</code> (if app client is configured with client secret), <code>PASSWORD</code> (required), <code>DEVICE_KEY</code>. </li> <li> For <code>CUSTOM_AUTH</code>: <code>USERNAME</code> (required), <code>SECRET_HASH</code> (if app client is configured with client secret), <code>DEVICE_KEY</code>. To start the authentication flow with password verification, include <code>ChallengeName: SRP_A</code> and <code>SRP_A: (The SRP_A Value)</code>. </li> </ul><br/>AuthFlow:  The authentication flow for this call to execute. The API action will depend on this value. For example: <ul> <li>  <code>REFRESH_TOKEN_AUTH</code> will take in a valid refresh token and return new tokens. </li> <li>  <code>USER_SRP_AUTH</code> will take in <code>USERNAME</code> and <code>SRP_A</code> and return the SRP variables to be used for next challenge execution. </li> <li>  <code>USER_PASSWORD_AUTH</code> will take in <code>USERNAME</code> and <code>PASSWORD</code> and return the next challenge or tokens. </li> </ul> Valid values include: <ul> <li>  <code>USER_SRP_AUTH</code>: Authentication flow for the Secure Remote Password (SRP) protocol. </li> <li>  <code>REFRESH_TOKEN_AUTH</code>/<code>REFRESH_TOKEN</code>: Authentication flow for refreshing the access token and ID token by supplying a valid refresh token. </li> <li>  <code>CUSTOM_AUTH</code>: Custom authentication flow. </li> <li>  <code>ADMIN_NO_SRP_AUTH</code>: Non-SRP authentication flow; you can pass in the USERNAME and PASSWORD directly if the flow is enabled for calling the app client. </li> <li>  <code>USER_PASSWORD_AUTH</code>: Non-SRP authentication flow; USERNAME and PASSWORD are passed directly. If a user migration Lambda trigger is set, this flow will invoke the user migration Lambda if the USERNAME is not found in the user pool.  </li> <li>  <code>ADMIN_USER_PASSWORD_AUTH</code>: Admin-based user password authentication. This replaces the <code>ADMIN_NO_SRP_AUTH</code> authentication flow. In this flow, Cognito receives the password in the request instead of using the SRP process to verify passwords. </li> </ul><br/>ClientId:  The app client ID.<br/>UserPoolId:  The ID of the Amazon Cognito user pool.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AnalyticsEndpointId</i> The endpoint ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EncodedData</i> Encoded data containing device fingerprinting details, collected using the Amazon Cognito context data collection library.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HttpHeaders</i> HttpHeaders received on your server in same order.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerPath</i> Your server path where this API is invoked. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerName</i> Your server endpoint where this API is invoked.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IpAddress</i> Source IP address of your user.<br/>
        :return: AuthenticationResult:  The result of the authentication response. This is only returned if the caller does not need to pass another challenge. If the caller does need to pass another challenge before it gets tokens, <code>ChallengeName</code>, <code>ChallengeParameters</code>, and <code>Session</code> are returned.:<br/>ChallengeParameters:  The challenge parameters. These are returned to you in the <code>AdminInitiateAuth</code> response if you need to pass another challenge. The responses in this parameter should be used to compute inputs to the next call (<code>AdminRespondToAuthChallenge</code>). All challenges require <code>USERNAME</code> and <code>SECRET_HASH</code> (if applicable). The value of the <code>USER_ID_FOR_SRP</code> attribute will be the user's actual username, not an alias (such as email address or phone number), even if you specified an alias in your call to <code>AdminInitiateAuth</code>. This is because, in the <code>AdminRespondToAuthChallenge</code> API <code>ChallengeResponses</code>, the <code>USERNAME</code> attribute cannot be an alias.<br/>Session:  The session which should be passed both ways in challenge-response calls to the service. If <code>AdminInitiateAuth</code> or <code>AdminRespondToAuthChallenge</code> API call determines that the caller needs to go through another challenge, they return a session with other challenge parameters. This session should be passed as it is to the next <code>AdminRespondToAuthChallenge</code> API call.<br/>ChallengeName:  The name of the challenge which you are responding to with this call. This is returned to you in the <code>AdminInitiateAuth</code> response if you need to pass another challenge. <ul> <li>  <code>MFA_SETUP</code>: If MFA is required, users who do not have at least one of the MFA methods set up are presented with an <code>MFA_SETUP</code> challenge. The user must set up at least one MFA type to continue to authenticate. </li> <li>  <code>SELECT_MFA_TYPE</code>: Selects the MFA type. Valid MFA options are <code>SMS_MFA</code> for text SMS MFA, and <code>SOFTWARE_TOKEN_MFA</code> for TOTP software token MFA. </li> <li>  <code>SMS_MFA</code>: Next challenge is to supply an <code>SMS_MFA_CODE</code>, delivered via SMS. </li> <li>  <code>PASSWORD_VERIFIER</code>: Next challenge is to supply <code>PASSWORD_CLAIM_SIGNATURE</code>, <code>PASSWORD_CLAIM_SECRET_BLOCK</code>, and <code>TIMESTAMP</code> after the client-side SRP calculations. </li> <li>  <code>CUSTOM_CHALLENGE</code>: This is returned if your custom authentication flow determines that the user should pass another challenge before tokens are issued. </li> <li>  <code>DEVICE_SRP_AUTH</code>: If device tracking was enabled on your user pool and the previous challenges were passed, this challenge is returned so that Amazon Cognito can start tracking this device. </li> <li>  <code>DEVICE_PASSWORD_VERIFIER</code>: Similar to <code>PASSWORD_VERIFIER</code>, but for devices only. </li> <li>  <code>ADMIN_NO_SRP_AUTH</code>: This is returned if you need to authenticate with <code>USERNAME</code> and <code>PASSWORD</code> directly. An app client must be enabled to use this flow. </li> <li>  <code>NEW_PASSWORD_REQUIRED</code>: For users who are required to change their passwords after successful first login. This challenge should be passed with <code>NEW_PASSWORD</code> and any other required attributes. </li> <li>  <code>MFA_SETUP</code>: For users who are required to setup an MFA factor before they can sign-in. The MFA types enabled for the user pool will be listed in the challenge parameters <code>MFA_CAN_SETUP</code> value.   To setup software token MFA, use the session returned here from <code>InitiateAuth</code> as an input to <code>AssociateSoftwareToken</code>, and use the session returned by <code>VerifySoftwareToken</code> as an input to <code>RespondToAuthChallenge</code> with challenge name <code>MFA_SETUP</code> to complete sign-in. To setup SMS MFA, users will need help from an administrator to add a phone number to their account and then call <code>InitiateAuth</code> again to restart sign-in. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NewDeviceMetadata</i> The new device metadata from an authentication result.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>NewDeviceMetadata</b>: The new device metadata from an authentication result.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IdToken</i> The ID token.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RefreshToken</i> The refresh token.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TokenType</i> The token type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExpiresIn</i> The expiration period of the authentication result in seconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccessToken</i> The access token.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DeviceGroupKey</i> The device group key.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DeviceKey</i> The device key.<br/>        """
        pass

    def admin_link_provider_for_user(self, SourceUser: ProviderUserIdentifierType, DestinationUser: ProviderUserIdentifierType, UserPoolId: str) -> AdminLinkProviderForUserResponse:
        r"""Links an existing user account in a user pool (<code>DestinationUser</code>) to an identity from an external identity provider (<code>SourceUser</code>) based on a specified attribute name and value from the external identity provider. This allows you to create a link from the existing user account to an external federated user identity that has not yet been used to sign in, so that the federated user identity can be used to sign in as the existing user account.   For example, if there is an existing user with a username and password, this API links that user to a federated user identity, so that when the federated user identity is used, the user signs in as the existing user account.  <note> The maximum number of federated identities linked to a user is 5. </note> <important> Because this API allows a user with an external federated identity to sign in as an existing user in the user pool, it is critical that it only be used with external identity providers and provider attributes that have been trusted by the application owner. </important> This action is enabled only for admin access and requires developer credentials.

        :param self:
        :param SourceUser:  An external identity provider account for a user who does not currently exist yet in the user pool. This user must be a federated user (for example, a SAML or Facebook user), not another native user. If the <code>SourceUser</code> is a federated social identity provider user (Facebook, Google, or Login with Amazon), you must set the <code>ProviderAttributeName</code> to <code>Cognito_Subject</code>. For social identity providers, the <code>ProviderName</code> will be <code>Facebook</code>, <code>Google</code>, or <code>LoginWithAmazon</code>, and Cognito will automatically parse the Facebook, Google, and Login with Amazon tokens for <code>id</code>, <code>sub</code>, and <code>user_id</code>, respectively. The <code>ProviderAttributeValue</code> for the user must be the same value as the <code>id</code>, <code>sub</code>, or <code>user_id</code> value found in the social identity provider token. <p/> For SAML, the <code>ProviderAttributeName</code> can be any value that matches a claim in the SAML assertion. If you wish to link SAML users based on the subject of the SAML assertion, you should map the subject to a claim through the SAML identity provider and submit that claim name as the <code>ProviderAttributeName</code>. If you set <code>ProviderAttributeName</code> to <code>Cognito_Subject</code>, Cognito will automatically parse the default unique identifier found in the subject from the SAML token.:<br/>DestinationUser:  The existing user in the user pool to be linked to the external identity provider user account. Can be a native (Username + Password) Cognito User Pools user or a federated user (for example, a SAML or Facebook user). If the user doesn't exist, an exception is thrown. This is the user that is returned when the new user (with the linked identity provider attribute) signs in. For a native username + password user, the <code>ProviderAttributeValue</code> for the <code>DestinationUser</code> should be the username in the user pool. For a federated user, it should be the provider-specific <code>user_id</code>. The <code>ProviderAttributeName</code> of the <code>DestinationUser</code> is ignored. The <code>ProviderName</code> should be set to <code>Cognito</code> for users in Cognito user pools.:<br/>UserPoolId:  The user pool ID for the user pool.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProviderAttributeValue</i> The value of the provider attribute to link to, for example, <code>xxxxx_account</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProviderAttributeName</i> The name of the provider attribute to link to, for example, <code>NameID</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProviderName</i> The name of the provider, for example, Facebook, Google, or Login with Amazon.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProviderAttributeValue</i> The value of the provider attribute to link to, for example, <code>xxxxx_account</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProviderAttributeName</i> The name of the provider attribute to link to, for example, <code>NameID</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProviderName</i> The name of the provider, for example, Facebook, Google, or Login with Amazon.<br/>
        :return:         """
        pass

    def admin_list_devices(self, Username: str, UserPoolId: str, Limit: int=None, PaginationToken: str=None) -> AdminListDevicesResponse:
        r"""Lists devices, as an administrator. Calling this action requires developer credentials.

        :param self:
        :param PaginationToken:  The pagination token.<br/>Limit:  The limit of the devices request.<br/>Username:  The user name.<br/>UserPoolId:  The user pool ID.<br/>
        :return: PaginationToken:  The pagination token.<br/>Devices:  The devices in the list of devices response.<br/>        """
        pass

    def admin_list_groups_for_user(self, UserPoolId: str, Username: str, Limit: int=None, NextToken: str=None) -> AdminListGroupsForUserResponse:
        r"""Lists the groups that the user belongs to. Calling this action requires developer credentials.

        :param self:
        :param NextToken:  An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.<br/>Limit:  The limit of the request to list groups.<br/>UserPoolId:  The user pool ID for the user pool.<br/>Username:  The username for the user.<br/>
        :return: NextToken:  An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.<br/>Groups:  The groups that the user belongs to.<br/>        """
        pass

    def admin_list_user_auth_events(self, Username: str, UserPoolId: str, MaxResults: int=None, NextToken: str=None) -> AdminListUserAuthEventsResponse:
        r"""Lists a history of user activity and any risks detected as part of Amazon Cognito advanced security.

        :param self:
        :param NextToken:  A pagination token.<br/>MaxResults:  The maximum number of authentication events to return.<br/>Username:  The user pool username or an alias.<br/>UserPoolId:  The user pool ID.<br/>
        :return: NextToken:  A pagination token.<br/>AuthEvents:  The response object. It includes the <code>EventID</code>, <code>EventType</code>, <code>CreationDate</code>, <code>EventRisk</code>, and <code>EventResponse</code>.<br/>        """
        pass

    def admin_remove_user_from_group(self, GroupName: str, Username: str, UserPoolId: str):
        r"""Removes the specified user from the specified group. Calling this action requires developer credentials.

        :param self:
        :param GroupName:  The group name.<br/>Username:  The username for the user.<br/>UserPoolId:  The user pool ID for the user pool.<br/>
        :return:         """
        pass

    def admin_reset_user_password(self, Username: str, UserPoolId: str, ClientMetadata: ClientMetadataType=None) -> AdminResetUserPasswordResponse:
        r"""Resets the specified user's password in a user pool as an administrator. Works on any user. When a developer calls this API, the current password is invalidated, so it must be changed. If a user tries to sign in after the API is called, the app will get a PasswordResetRequiredException exception back and should direct the user down the flow to reset the password, which is the same as the forgot password flow. In addition, if the user pool has phone verification selected and a verified phone number exists for the user, or if email verification is selected and a verified email exists for the user, calling this API will also result in sending a message to the end user with the code to change their password. <note> This action might generate an SMS text message. Starting June 1, 2021, U.S. telecom carriers require that you register an origination phone number before you can send SMS messages to U.S. phone numbers. If you use SMS text messages in Amazon Cognito, you must register a phone number with <a href="https://console.aws.amazon.com/pinpoint/home/">Amazon Pinpoint</a>. Cognito will use the the registered number automatically. Otherwise, Cognito users that must receive SMS messages might be unable to sign up, activate their accounts, or sign in. If you have never used SMS text messages with Amazon Cognito or any other AWS service, Amazon SNS might place your account in SMS sandbox. In <i> <a href="https://docs.aws.amazon.com/sns/latest/dg/sns-sms-sandbox.html">sandbox mode</a> </i>, you’ll have limitations, such as sending messages to only verified phone numbers. After testing in the sandbox environment, you can move out of the SMS sandbox and into production. For more information, see <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools-sms-userpool-settings.html"> SMS message settings for Cognito User Pools</a> in the <i>Amazon Cognito Developer Guide</i>.  </note> Calling this action requires developer credentials.

        :param self:
        :param ClientMetadata:  A map of custom key-value pairs that you can provide as input for any custom workflows that this action triggers.  You create custom workflows by assigning AWS Lambda functions to user pool triggers. When you use the AdminResetUserPassword API action, Amazon Cognito invokes the function that is assigned to the <i>custom message</i> trigger. When Amazon Cognito invokes this function, it passes a JSON payload, which the function receives as input. This payload contains a <code>clientMetadata</code> attribute, which provides the data that you assigned to the ClientMetadata parameter in your AdminResetUserPassword request. In your function code in AWS Lambda, you can process the <code>clientMetadata</code> value to enhance your workflow for your specific needs. For more information, see <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools-working-with-aws-lambda-triggers.html">Customizing User Pool Workflows with Lambda Triggers</a> in the <i>Amazon Cognito Developer Guide</i>. <note> Take the following limitations into consideration when you use the ClientMetadata parameter: <ul> <li> Amazon Cognito does not store the ClientMetadata value. This data is available only to AWS Lambda triggers that are assigned to a user pool to support custom workflows. If your user pool configuration does not include triggers, the ClientMetadata parameter serves no purpose. </li> <li> Amazon Cognito does not validate the ClientMetadata value. </li> <li> Amazon Cognito does not encrypt the the ClientMetadata value, so don't use it to provide sensitive information. </li> </ul> </note><br/>Username:  The user name of the user whose password you wish to reset.<br/>UserPoolId:  The user pool ID for the user pool where you want to reset the user's password.<br/>
        :return:         """
        pass

    def admin_respond_to_auth_challenge(self, ChallengeName: str, ClientId: str, UserPoolId: str, ChallengeResponses: ChallengeResponsesType=None, Session: str=None, AnalyticsMetadata: AnalyticsMetadataType=None, ContextData: ContextDataType=None, ClientMetadata: ClientMetadataType=None) -> AdminRespondToAuthChallengeResponse:
        r"""Responds to an authentication challenge, as an administrator. <note> This action might generate an SMS text message. Starting June 1, 2021, U.S. telecom carriers require that you register an origination phone number before you can send SMS messages to U.S. phone numbers. If you use SMS text messages in Amazon Cognito, you must register a phone number with <a href="https://console.aws.amazon.com/pinpoint/home/">Amazon Pinpoint</a>. Cognito will use the the registered number automatically. Otherwise, Cognito users that must receive SMS messages might be unable to sign up, activate their accounts, or sign in. If you have never used SMS text messages with Amazon Cognito or any other AWS service, Amazon SNS might place your account in SMS sandbox. In <i> <a href="https://docs.aws.amazon.com/sns/latest/dg/sns-sms-sandbox.html">sandbox mode</a> </i>, you’ll have limitations, such as sending messages to only verified phone numbers. After testing in the sandbox environment, you can move out of the SMS sandbox and into production. For more information, see <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools-sms-userpool-settings.html"> SMS message settings for Cognito User Pools</a> in the <i>Amazon Cognito Developer Guide</i>.  </note> Calling this action requires developer credentials.

        :param self:
        :param ClientMetadata:  A map of custom key-value pairs that you can provide as input for any custom workflows that this action triggers.  You create custom workflows by assigning AWS Lambda functions to user pool triggers. When you use the AdminRespondToAuthChallenge API action, Amazon Cognito invokes any functions that are assigned to the following triggers: <i>pre sign-up</i>, <i>custom message</i>, <i>post authentication</i>, <i>user migration</i>, <i>pre token generation</i>, <i>define auth challenge</i>, <i>create auth challenge</i>, and <i>verify auth challenge response</i>. When Amazon Cognito invokes any of these functions, it passes a JSON payload, which the function receives as input. This payload contains a <code>clientMetadata</code> attribute, which provides the data that you assigned to the ClientMetadata parameter in your AdminRespondToAuthChallenge request. In your function code in AWS Lambda, you can process the <code>clientMetadata</code> value to enhance your workflow for your specific needs. For more information, see <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools-working-with-aws-lambda-triggers.html">Customizing User Pool Workflows with Lambda Triggers</a> in the <i>Amazon Cognito Developer Guide</i>. <note> Take the following limitations into consideration when you use the ClientMetadata parameter: <ul> <li> Amazon Cognito does not store the ClientMetadata value. This data is available only to AWS Lambda triggers that are assigned to a user pool to support custom workflows. If your user pool configuration does not include triggers, the ClientMetadata parameter serves no purpose. </li> <li> Amazon Cognito does not validate the ClientMetadata value. </li> <li> Amazon Cognito does not encrypt the the ClientMetadata value, so don't use it to provide sensitive information. </li> </ul> </note><br/>ContextData:  Contextual data such as the user's device fingerprint, IP address, or location used for evaluating the risk of an unexpected event by Amazon Cognito advanced security.:<br/>AnalyticsMetadata:  The analytics metadata for collecting Amazon Pinpoint metrics for <code>AdminRespondToAuthChallenge</code> calls.:<br/>Session:  The session which should be passed both ways in challenge-response calls to the service. If <code>InitiateAuth</code> or <code>RespondToAuthChallenge</code> API call determines that the caller needs to go through another challenge, they return a session with other challenge parameters. This session should be passed as it is to the next <code>RespondToAuthChallenge</code> API call.<br/>ChallengeResponses:  The challenge responses. These are inputs corresponding to the value of <code>ChallengeName</code>, for example: <ul> <li>  <code>SMS_MFA</code>: <code>SMS_MFA_CODE</code>, <code>USERNAME</code>, <code>SECRET_HASH</code> (if app client is configured with client secret). </li> <li>  <code>PASSWORD_VERIFIER</code>: <code>PASSWORD_CLAIM_SIGNATURE</code>, <code>PASSWORD_CLAIM_SECRET_BLOCK</code>, <code>TIMESTAMP</code>, <code>USERNAME</code>, <code>SECRET_HASH</code> (if app client is configured with client secret). </li> <li>  <code>ADMIN_NO_SRP_AUTH</code>: <code>PASSWORD</code>, <code>USERNAME</code>, <code>SECRET_HASH</code> (if app client is configured with client secret).  </li> <li>  <code>NEW_PASSWORD_REQUIRED</code>: <code>NEW_PASSWORD</code>, any other required attributes, <code>USERNAME</code>, <code>SECRET_HASH</code> (if app client is configured with client secret).  </li> <li>  <code>MFA_SETUP</code> requires <code>USERNAME</code>, plus you need to use the session value returned by <code>VerifySoftwareToken</code> in the <code>Session</code> parameter. </li> </ul> The value of the <code>USERNAME</code> attribute must be the user's actual username, not an alias (such as email address or phone number). To make this easier, the <code>AdminInitiateAuth</code> response includes the actual username value in the <code>USERNAMEUSER_ID_FOR_SRP</code> attribute, even if you specified an alias in your call to <code>AdminInitiateAuth</code>.<br/>ChallengeName:  The challenge name. For more information, see <a href="https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminInitiateAuth.html">AdminInitiateAuth</a>.<br/>ClientId:  The app client ID.<br/>UserPoolId:  The ID of the Amazon Cognito user pool.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AnalyticsEndpointId</i> The endpoint ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EncodedData</i> Encoded data containing device fingerprinting details, collected using the Amazon Cognito context data collection library.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HttpHeaders</i> HttpHeaders received on your server in same order.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerPath</i> Your server path where this API is invoked. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerName</i> Your server endpoint where this API is invoked.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IpAddress</i> Source IP address of your user.<br/>
        :return: AuthenticationResult:  The result returned by the server in response to the authentication request.:<br/>ChallengeParameters:  The challenge parameters. For more information, see <a href="https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminInitiateAuth.html">AdminInitiateAuth</a>.<br/>Session:  The session which should be passed both ways in challenge-response calls to the service. If the caller needs to go through another challenge, they return a session with other challenge parameters. This session should be passed as it is to the next <code>RespondToAuthChallenge</code> API call.<br/>ChallengeName:  The name of the challenge. For more information, see <a href="https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminInitiateAuth.html">AdminInitiateAuth</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NewDeviceMetadata</i> The new device metadata from an authentication result.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>NewDeviceMetadata</b>: The new device metadata from an authentication result.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IdToken</i> The ID token.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RefreshToken</i> The refresh token.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TokenType</i> The token type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExpiresIn</i> The expiration period of the authentication result in seconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccessToken</i> The access token.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DeviceGroupKey</i> The device group key.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DeviceKey</i> The device key.<br/>        """
        pass

    def admin_set_user_mfa_preference(self, UserPoolId: str, Username: str, SMSMfaSettings: SMSMfaSettingsType=None, SoftwareTokenMfaSettings: SoftwareTokenMfaSettingsType=None) -> AdminSetUserMFAPreferenceResponse:
        r"""Sets the user's multi-factor authentication (MFA) preference, including which MFA options are enabled and if any are preferred. Only one factor can be set as preferred. The preferred MFA factor will be used to authenticate a user if multiple factors are enabled. If multiple options are enabled and no preference is set, a challenge to choose an MFA option will be returned during sign in.

        :param self:
        :param UserPoolId:  The user pool ID.<br/>Username:  The user pool username or alias.<br/>SoftwareTokenMfaSettings:  The time-based one-time password software token MFA settings.:<br/>SMSMfaSettings:  The SMS text message MFA settings.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMfa</i> Specifies whether SMS is the preferred MFA method.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specifies whether SMS text message MFA is enabled. If an MFA type is enabled for a user, the user will be prompted for MFA during all sign in attempts, unless device tracking is turned on and the device has been trusted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMfa</i> Specifies whether software token MFA is the preferred MFA method.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specifies whether software token MFA is enabled. If an MFA type is enabled for a user, the user will be prompted for MFA during all sign in attempts, unless device tracking is turned on and the device has been trusted.<br/>
        :return:         """
        pass

    def admin_set_user_password(self, Password: str, Username: str, UserPoolId: str, Permanent: BooleanType=None) -> AdminSetUserPasswordResponse:
        r"""Sets the specified user's password in a user pool as an administrator. Works on any user.  The password can be temporary or permanent. If it is temporary, the user status will be placed into the <code>FORCE_CHANGE_PASSWORD</code> state. When the user next tries to sign in, the InitiateAuth/AdminInitiateAuth response will contain the <code>NEW_PASSWORD_REQUIRED</code> challenge. If the user does not sign in before it expires, the user will not be able to sign in and their password will need to be reset by an administrator.  Once the user has set a new password, or the password is permanent, the user status will be set to <code>Confirmed</code>.

        :param self:
        :param Permanent:   <code>True</code> if the password is permanent, <code>False</code> if it is temporary.<br/>Password:  The password for the user.<br/>Username:  The user name of the user whose password you wish to set.<br/>UserPoolId:  The user pool ID for the user pool where you want to set the user's password.<br/>
        :return:         """
        pass

    def admin_set_user_settings(self, MFAOptions: List[MFAOptionType], Username: str, UserPoolId: str) -> AdminSetUserSettingsResponse:
        r""" <i>This action is no longer supported.</i> You can use it to configure only SMS MFA. You can't use it to configure TOTP software token MFA. To configure either type of MFA, use <a href="https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminSetUserMFAPreference.html">AdminSetUserMFAPreference</a> instead.

        :param self:
        :param MFAOptions:  You can use this parameter only to set an SMS configuration that uses SMS for delivery.<br/>Username:  The user name of the user that you are setting options for.<br/>UserPoolId:  The ID of the user pool that contains the user that you are setting options for.<br/>
        :return:         """
        pass

    def admin_update_auth_event_feedback(self, FeedbackValue: str, EventId: str, Username: str, UserPoolId: str) -> AdminUpdateAuthEventFeedbackResponse:
        r"""Provides feedback for an authentication event as to whether it was from a valid user. This feedback is used for improving the risk evaluation decision for the user pool as part of Amazon Cognito advanced security.

        :param self:
        :param FeedbackValue:  The authentication event feedback value.<br/>EventId:  The authentication event ID.<br/>Username:  The user pool username.<br/>UserPoolId:  The user pool ID.<br/>
        :return:         """
        pass

    def admin_update_device_status(self, DeviceKey: str, Username: str, UserPoolId: str, DeviceRememberedStatus: str=None) -> AdminUpdateDeviceStatusResponse:
        r"""Updates the device status as an administrator. Calling this action requires developer credentials.

        :param self:
        :param DeviceRememberedStatus:  The status indicating whether a device has been remembered or not.<br/>DeviceKey:  The device key.<br/>Username:  The user name.<br/>UserPoolId:  The user pool ID.<br/>
        :return:         """
        pass

    def admin_update_user_attributes(self, UserAttributes: List[AttributeType], Username: str, UserPoolId: str, ClientMetadata: ClientMetadataType=None) -> AdminUpdateUserAttributesResponse:
        r"""Updates the specified user's attributes, including developer attributes, as an administrator. Works on any user. For custom attributes, you must prepend the <code>custom:</code> prefix to the attribute name. In addition to updating user attributes, this API can also be used to mark phone and email as verified. <note> This action might generate an SMS text message. Starting June 1, 2021, U.S. telecom carriers require that you register an origination phone number before you can send SMS messages to U.S. phone numbers. If you use SMS text messages in Amazon Cognito, you must register a phone number with <a href="https://console.aws.amazon.com/pinpoint/home/">Amazon Pinpoint</a>. Cognito will use the the registered number automatically. Otherwise, Cognito users that must receive SMS messages might be unable to sign up, activate their accounts, or sign in. If you have never used SMS text messages with Amazon Cognito or any other AWS service, Amazon SNS might place your account in SMS sandbox. In <i> <a href="https://docs.aws.amazon.com/sns/latest/dg/sns-sms-sandbox.html">sandbox mode</a> </i>, you’ll have limitations, such as sending messages to only verified phone numbers. After testing in the sandbox environment, you can move out of the SMS sandbox and into production. For more information, see <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools-sms-userpool-settings.html"> SMS message settings for Cognito User Pools</a> in the <i>Amazon Cognito Developer Guide</i>.  </note> Calling this action requires developer credentials.

        :param self:
        :param ClientMetadata:  A map of custom key-value pairs that you can provide as input for any custom workflows that this action triggers.  You create custom workflows by assigning AWS Lambda functions to user pool triggers. When you use the AdminUpdateUserAttributes API action, Amazon Cognito invokes the function that is assigned to the <i>custom message</i> trigger. When Amazon Cognito invokes this function, it passes a JSON payload, which the function receives as input. This payload contains a <code>clientMetadata</code> attribute, which provides the data that you assigned to the ClientMetadata parameter in your AdminUpdateUserAttributes request. In your function code in AWS Lambda, you can process the <code>clientMetadata</code> value to enhance your workflow for your specific needs. For more information, see <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools-working-with-aws-lambda-triggers.html">Customizing User Pool Workflows with Lambda Triggers</a> in the <i>Amazon Cognito Developer Guide</i>. <note> Take the following limitations into consideration when you use the ClientMetadata parameter: <ul> <li> Amazon Cognito does not store the ClientMetadata value. This data is available only to AWS Lambda triggers that are assigned to a user pool to support custom workflows. If your user pool configuration does not include triggers, the ClientMetadata parameter serves no purpose. </li> <li> Amazon Cognito does not validate the ClientMetadata value. </li> <li> Amazon Cognito does not encrypt the the ClientMetadata value, so don't use it to provide sensitive information. </li> </ul> </note><br/>UserAttributes:  An array of name-value pairs representing user attributes. For custom attributes, you must prepend the <code>custom:</code> prefix to the attribute name.<br/>Username:  The user name of the user for whom you want to update user attributes.<br/>UserPoolId:  The user pool ID for the user pool where you want to update user attributes.<br/>
        :return:         """
        pass

    def admin_user_global_sign_out(self, Username: str, UserPoolId: str) -> AdminUserGlobalSignOutResponse:
        r"""Signs out users from all devices, as an administrator. It also invalidates all refresh tokens issued to a user. The user's current access and Id tokens remain valid until their expiry. Access and Id tokens expire one hour after they are issued. Calling this action requires developer credentials.

        :param self:
        :param Username:  The user name.<br/>UserPoolId:  The user pool ID.<br/>
        :return:         """
        pass

    def associate_software_token(self, AccessToken: str=None, Session: str=None) -> AssociateSoftwareTokenResponse:
        r"""Returns a unique generated shared secret key code for the user account. The request takes an access token or a session string, but not both. <note> Calling AssociateSoftwareToken immediately disassociates the existing software token from the user account. If the user doesn't subsequently verify the software token, their account is essentially set up to authenticate without MFA. If MFA config is set to Optional at the user pool level, the user can then login without MFA. However, if MFA is set to Required for the user pool, the user will be asked to setup a new software token MFA during sign in. </note>

        :param self:
        :param Session:  The session which should be passed both ways in challenge-response calls to the service. This allows authentication of the user as part of the MFA setup process.<br/>AccessToken:  The access token.<br/>
        :return: Session:  The session which should be passed both ways in challenge-response calls to the service. This allows authentication of the user as part of the MFA setup process.<br/>SecretCode:  A unique generated shared secret code that is used in the TOTP algorithm to generate a one time code.<br/>        """
        pass

    def change_password(self, AccessToken: str, ProposedPassword: str, PreviousPassword: str) -> ChangePasswordResponse:
        r"""Changes the password for a specified user in a user pool.

        :param self:
        :param AccessToken:  The access token.<br/>ProposedPassword:  The new password.<br/>PreviousPassword:  The old password.<br/>
        :return:         """
        pass

    def confirm_device(self, DeviceKey: str, AccessToken: str, DeviceSecretVerifierConfig: DeviceSecretVerifierConfigType=None, DeviceName: str=None) -> ConfirmDeviceResponse:
        r"""Confirms tracking of the device. This API call is the call that begins device tracking.

        :param self:
        :param DeviceName:  The device name.<br/>DeviceSecretVerifierConfig:  The configuration of the device secret verifier.:<br/>DeviceKey:  The device key.<br/>AccessToken:  The access token.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Salt</i> The salt.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PasswordVerifier</i> The password verifier.<br/>
        :return: UserConfirmationNecessary:  Indicates whether the user confirmation is necessary to confirm the device response.<br/>        """
        pass

    def confirm_forgot_password(self, Password: str, ConfirmationCode: str, Username: str, ClientId: str, SecretHash: str=None, AnalyticsMetadata: AnalyticsMetadataType=None, UserContextData: UserContextDataType=None, ClientMetadata: ClientMetadataType=None) -> ConfirmForgotPasswordResponse:
        r"""Allows a user to enter a confirmation code to reset a forgotten password.

        :param self:
        :param ClientMetadata:  A map of custom key-value pairs that you can provide as input for any custom workflows that this action triggers.  You create custom workflows by assigning AWS Lambda functions to user pool triggers. When you use the ConfirmForgotPassword API action, Amazon Cognito invokes the function that is assigned to the <i>post confirmation</i> trigger. When Amazon Cognito invokes this function, it passes a JSON payload, which the function receives as input. This payload contains a <code>clientMetadata</code> attribute, which provides the data that you assigned to the ClientMetadata parameter in your ConfirmForgotPassword request. In your function code in AWS Lambda, you can process the <code>clientMetadata</code> value to enhance your workflow for your specific needs. For more information, see <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools-working-with-aws-lambda-triggers.html">Customizing User Pool Workflows with Lambda Triggers</a> in the <i>Amazon Cognito Developer Guide</i>. <note> Take the following limitations into consideration when you use the ClientMetadata parameter: <ul> <li> Amazon Cognito does not store the ClientMetadata value. This data is available only to AWS Lambda triggers that are assigned to a user pool to support custom workflows. If your user pool configuration does not include triggers, the ClientMetadata parameter serves no purpose. </li> <li> Amazon Cognito does not validate the ClientMetadata value. </li> <li> Amazon Cognito does not encrypt the the ClientMetadata value, so don't use it to provide sensitive information. </li> </ul> </note><br/>UserContextData:  Contextual data such as the user's device fingerprint, IP address, or location used for evaluating the risk of an unexpected event by Amazon Cognito advanced security.:<br/>AnalyticsMetadata:  The Amazon Pinpoint analytics metadata for collecting metrics for <code>ConfirmForgotPassword</code> calls.:<br/>Password:  The password sent by a user's request to retrieve a forgotten password.<br/>ConfirmationCode:  The confirmation code sent by a user's request to retrieve a forgotten password. For more information, see <a href="https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ForgotPassword.html">ForgotPassword</a>.<br/>Username:  The user name of the user for whom you want to enter a code to retrieve a forgotten password.<br/>SecretHash:  A keyed-hash message authentication code (HMAC) calculated using the secret key of a user pool client and username plus the client ID in the message.<br/>ClientId:  The app client ID of the app associated with the user pool.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AnalyticsEndpointId</i> The endpoint ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EncodedData</i> Contextual data such as the user's device fingerprint, IP address, or location used for evaluating the risk of an unexpected event by Amazon Cognito advanced security.<br/>
        :return:         """
        pass

    def confirm_sign_up(self, ConfirmationCode: str, Username: str, ClientId: str, SecretHash: str=None, ForceAliasCreation: ForceAliasCreation=None, AnalyticsMetadata: AnalyticsMetadataType=None, UserContextData: UserContextDataType=None, ClientMetadata: ClientMetadataType=None) -> ConfirmSignUpResponse:
        r"""Confirms registration of a user and handles the existing alias from a previous user.

        :param self:
        :param ClientMetadata:  A map of custom key-value pairs that you can provide as input for any custom workflows that this action triggers.  You create custom workflows by assigning AWS Lambda functions to user pool triggers. When you use the ConfirmSignUp API action, Amazon Cognito invokes the function that is assigned to the <i>post confirmation</i> trigger. When Amazon Cognito invokes this function, it passes a JSON payload, which the function receives as input. This payload contains a <code>clientMetadata</code> attribute, which provides the data that you assigned to the ClientMetadata parameter in your ConfirmSignUp request. In your function code in AWS Lambda, you can process the <code>clientMetadata</code> value to enhance your workflow for your specific needs. For more information, see <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools-working-with-aws-lambda-triggers.html">Customizing User Pool Workflows with Lambda Triggers</a> in the <i>Amazon Cognito Developer Guide</i>. <note> Take the following limitations into consideration when you use the ClientMetadata parameter: <ul> <li> Amazon Cognito does not store the ClientMetadata value. This data is available only to AWS Lambda triggers that are assigned to a user pool to support custom workflows. If your user pool configuration does not include triggers, the ClientMetadata parameter serves no purpose. </li> <li> Amazon Cognito does not validate the ClientMetadata value. </li> <li> Amazon Cognito does not encrypt the the ClientMetadata value, so don't use it to provide sensitive information. </li> </ul> </note><br/>UserContextData:  Contextual data such as the user's device fingerprint, IP address, or location used for evaluating the risk of an unexpected event by Amazon Cognito advanced security.:<br/>AnalyticsMetadata:  The Amazon Pinpoint analytics metadata for collecting metrics for <code>ConfirmSignUp</code> calls.:<br/>ForceAliasCreation:  Boolean to be specified to force user confirmation irrespective of existing alias. By default set to <code>False</code>. If this parameter is set to <code>True</code> and the phone number/email used for sign up confirmation already exists as an alias with a different user, the API call will migrate the alias from the previous user to the newly created user being confirmed. If set to <code>False</code>, the API will throw an <b>AliasExistsException</b> error.<br/>ConfirmationCode:  The confirmation code sent by a user's request to confirm registration.<br/>Username:  The user name of the user whose registration you wish to confirm.<br/>SecretHash:  A keyed-hash message authentication code (HMAC) calculated using the secret key of a user pool client and username plus the client ID in the message.<br/>ClientId:  The ID of the app client associated with the user pool.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AnalyticsEndpointId</i> The endpoint ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EncodedData</i> Contextual data such as the user's device fingerprint, IP address, or location used for evaluating the risk of an unexpected event by Amazon Cognito advanced security.<br/>
        :return:         """
        pass

    def create_group(self, UserPoolId: str, GroupName: str, Description: str=None, RoleArn: str=None, Precedence: int=None) -> CreateGroupResponse:
        r"""Creates a new group in the specified user pool. Calling this action requires developer credentials.

        :param self:
        :param Precedence:  A nonnegative integer value that specifies the precedence of this group relative to the other groups that a user can belong to in the user pool. Zero is the highest precedence value. Groups with lower <code>Precedence</code> values take precedence over groups with higher or null <code>Precedence</code> values. If a user belongs to two or more groups, it is the group with the lowest precedence value whose role ARN will be used in the <code>cognito:roles</code> and <code>cognito:preferred_role</code> claims in the user's tokens. Two groups can have the same <code>Precedence</code> value. If this happens, neither group takes precedence over the other. If two groups with the same <code>Precedence</code> have the same role ARN, that role is used in the <code>cognito:preferred_role</code> claim in tokens for users in each group. If the two groups have different role ARNs, the <code>cognito:preferred_role</code> claim is not set in users' tokens. The default <code>Precedence</code> value is null.<br/>RoleArn:  The role ARN for the group.<br/>Description:  A string containing the description of the group.<br/>UserPoolId:  The user pool ID for the user pool.<br/>GroupName:  The name of the group. Must be unique.<br/>
        :return: Group:  The group object for the group.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date the group was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> The date the group was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Precedence</i> A nonnegative integer value that specifies the precedence of this group relative to the other groups that a user can belong to in the user pool. If a user belongs to two or more groups, it is the group with the highest precedence whose role ARN will be used in the <code>cognito:roles</code> and <code>cognito:preferred_role</code> claims in the user's tokens. Groups with higher <code>Precedence</code> values take precedence over groups with lower <code>Precedence</code> values or with null <code>Precedence</code> values. Two groups can have the same <code>Precedence</code> value. If this happens, neither group takes precedence over the other. If two groups with the same <code>Precedence</code> have the same role ARN, that role is used in the <code>cognito:preferred_role</code> claim in tokens for users in each group. If the two groups have different role ARNs, the <code>cognito:preferred_role</code> claim is not set in users' tokens. The default <code>Precedence</code> value is null.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The role ARN for the group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A string containing the description of the group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserPoolId</i> The user pool ID for the user pool.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GroupName</i> The name of the group.<br/>        """
        pass

    def create_identity_provider(self, ProviderDetails: ProviderDetailsType, ProviderType: str, ProviderName: str, UserPoolId: str, AttributeMapping: AttributeMappingType=None, IdpIdentifiers: List[IdpIdentifierType]=None) -> CreateIdentityProviderResponse:
        r"""Creates an identity provider for a user pool.

        :param self:
        :param IdpIdentifiers:  A list of identity provider identifiers.<br/>AttributeMapping:  A mapping of identity provider attributes to standard and custom user pool attributes.<br/>ProviderDetails:  The identity provider details. The following list describes the provider detail keys for each identity provider type. <ul> <li> For Google and Login with Amazon: <ul> <li> client_id </li> <li> client_secret </li> <li> authorize_scopes </li> </ul> </li> <li> For Facebook: <ul> <li> client_id </li> <li> client_secret </li> <li> authorize_scopes </li> <li> api_version </li> </ul> </li> <li> For Sign in with Apple: <ul> <li> client_id </li> <li> team_id </li> <li> key_id </li> <li> private_key </li> <li> authorize_scopes </li> </ul> </li> <li> For OIDC providers: <ul> <li> client_id </li> <li> client_secret </li> <li> attributes_request_method </li> <li> oidc_issuer </li> <li> authorize_scopes </li> <li> authorize_url <i>if not available from discovery URL specified by oidc_issuer key</i>  </li> <li> token_url <i>if not available from discovery URL specified by oidc_issuer key</i>  </li> <li> attributes_url <i>if not available from discovery URL specified by oidc_issuer key</i>  </li> <li> jwks_uri <i>if not available from discovery URL specified by oidc_issuer key</i>  </li> </ul> </li> <li> For SAML providers: <ul> <li> MetadataFile OR MetadataURL </li> <li> IDPSignout <i>optional</i>  </li> </ul> </li> </ul><br/>ProviderType:  The identity provider type.<br/>ProviderName:  The identity provider name.<br/>UserPoolId:  The user pool ID.<br/>
        :return: IdentityProvider:  The newly created identity provider object.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date the identity provider was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> The date the identity provider was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IdpIdentifiers</i> A list of identity provider identifiers.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AttributeMapping</i> A mapping of identity provider attributes to standard and custom user pool attributes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProviderDetails</i> The identity provider details. The following list describes the provider detail keys for each identity provider type. <ul> <li> For Google and Login with Amazon: <ul> <li> client_id </li> <li> client_secret </li> <li> authorize_scopes </li> </ul> </li> <li> For Facebook: <ul> <li> client_id </li> <li> client_secret </li> <li> authorize_scopes </li> <li> api_version </li> </ul> </li> <li> For Sign in with Apple: <ul> <li> client_id </li> <li> team_id </li> <li> key_id </li> <li> private_key </li> <li> authorize_scopes </li> </ul> </li> <li> For OIDC providers: <ul> <li> client_id </li> <li> client_secret </li> <li> attributes_request_method </li> <li> oidc_issuer </li> <li> authorize_scopes </li> <li> authorize_url <i>if not available from discovery URL specified by oidc_issuer key</i>  </li> <li> token_url <i>if not available from discovery URL specified by oidc_issuer key</i>  </li> <li> attributes_url <i>if not available from discovery URL specified by oidc_issuer key</i>  </li> <li> jwks_uri <i>if not available from discovery URL specified by oidc_issuer key</i>  </li> </ul> </li> <li> For SAML providers: <ul> <li> MetadataFile OR MetadataURL </li> <li> IDPSignOut <i>optional</i>  </li> </ul> </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProviderType</i> The identity provider type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProviderName</i> The identity provider name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserPoolId</i> The user pool ID.<br/>        """
        pass

    def create_resource_server(self, Name: str, Identifier: str, UserPoolId: str, Scopes: List[ResourceServerScopeType]=None) -> CreateResourceServerResponse:
        r"""Creates a new OAuth2.0 resource server and defines custom scopes in it.

        :param self:
        :param Scopes:  A list of scopes. Each scope is map, where the keys are <code>name</code> and <code>description</code>.<br/>Name:  A friendly name for the resource server.<br/>Identifier:  A unique resource server identifier for the resource server. This could be an HTTPS endpoint where the resource server is located. For example, <code>https://my-weather-api.example.com</code>.<br/>UserPoolId:  The user pool ID for the user pool.<br/>
        :return: ResourceServer:  The newly created resource server.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Scopes</i> A list of scopes that are defined for the resource server.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the resource server.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Identifier</i> The identifier for the resource server.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserPoolId</i> The user pool ID for the user pool that hosts the resource server.<br/>        """
        pass

    def create_user_import_job(self, CloudWatchLogsRoleArn: str, UserPoolId: str, JobName: str) -> CreateUserImportJobResponse:
        r"""Creates the user import job.

        :param self:
        :param CloudWatchLogsRoleArn:  The role ARN for the Amazon CloudWatch Logging role for the user import job.<br/>UserPoolId:  The user pool ID for the user pool that the users are being imported into.<br/>JobName:  The job name for the user import job.<br/>
        :return: UserImportJob:  The job object that represents the user import job.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CompletionMessage</i> The message returned when the user import job is completed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FailedUsers</i> The number of users that could not be imported.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SkippedUsers</i> The number of users that were skipped.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImportedUsers</i> The number of users that were successfully imported.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudWatchLogsRoleArn</i> The role ARN for the Amazon CloudWatch Logging role for the user import job. For more information, see "Creating the CloudWatch Logs IAM Role" in the Amazon Cognito Developer Guide.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the user import job. One of the following: <ul> <li>  <code>Created</code> - The job was created but not started. </li> <li>  <code>Pending</code> - A transition state. You have started the job, but it has not begun importing users yet. </li> <li>  <code>InProgress</code> - The job has started, and users are being imported. </li> <li>  <code>Stopping</code> - You have stopped the job, but the job has not stopped importing users yet. </li> <li>  <code>Stopped</code> - You have stopped the job, and the job has stopped importing users. </li> <li>  <code>Succeeded</code> - The job has completed successfully. </li> <li>  <code>Failed</code> - The job has stopped due to an error. </li> <li>  <code>Expired</code> - You created a job, but did not start the job within 24-48 hours. All data associated with the job was deleted, and the job cannot be started. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CompletionDate</i> The date when the user import job was completed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StartDate</i> The date when the user import job was started.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date the user import job was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreSignedUrl</i> The pre-signed URL to be used to upload the <code>.csv</code> file.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserPoolId</i> The user pool ID for the user pool that the users are being imported into.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobId</i> The job ID for the user import job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobName</i> The job name for the user import job.<br/>        """
        pass

    def create_user_pool(self, PoolName: str, Policies: UserPoolPolicyType=None, LambdaConfig: LambdaConfigType=None, AutoVerifiedAttributes: List[VerifiedAttributeType]=None, AliasAttributes: List[AliasAttributeType]=None, UsernameAttributes: List[UsernameAttributeType]=None, SmsVerificationMessage: str=None, EmailVerificationMessage: str=None, EmailVerificationSubject: str=None, VerificationMessageTemplate: VerificationMessageTemplateType=None, SmsAuthenticationMessage: str=None, MfaConfiguration: str=None, DeviceConfiguration: DeviceConfigurationType=None, EmailConfiguration: EmailConfigurationType=None, SmsConfiguration: SmsConfigurationType=None, UserPoolTags: UserPoolTagsType=None, AdminCreateUserConfig: AdminCreateUserConfigType=None, Schema: List[SchemaAttributeType]=None, UserPoolAddOns: UserPoolAddOnsType=None, UsernameConfiguration: UsernameConfigurationType=None, AccountRecoverySetting: AccountRecoverySettingType=None) -> CreateUserPoolResponse:
        r"""Creates a new Amazon Cognito user pool and sets the password policy for the pool. <note> This action might generate an SMS text message. Starting June 1, 2021, U.S. telecom carriers require that you register an origination phone number before you can send SMS messages to U.S. phone numbers. If you use SMS text messages in Amazon Cognito, you must register a phone number with <a href="https://console.aws.amazon.com/pinpoint/home/">Amazon Pinpoint</a>. Cognito will use the the registered number automatically. Otherwise, Cognito users that must receive SMS messages might be unable to sign up, activate their accounts, or sign in. If you have never used SMS text messages with Amazon Cognito or any other AWS service, Amazon SNS might place your account in SMS sandbox. In <i> <a href="https://docs.aws.amazon.com/sns/latest/dg/sns-sms-sandbox.html">sandbox mode</a> </i>, you’ll have limitations, such as sending messages to only verified phone numbers. After testing in the sandbox environment, you can move out of the SMS sandbox and into production. For more information, see <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools-sms-userpool-settings.html"> SMS message settings for Cognito User Pools</a> in the <i>Amazon Cognito Developer Guide</i>.  </note>

        :param self:
        :param AccountRecoverySetting:  Use this setting to define which verified available method a user can use to recover their password when they call <code>ForgotPassword</code>. It allows you to define a preferred method when a user has more than one method available. With this setting, SMS does not qualify for a valid password recovery mechanism if the user also has SMS MFA enabled. In the absence of this setting, Cognito uses the legacy behavior to determine the recovery method where SMS is preferred over email.:<br/>UsernameConfiguration:  You can choose to set case sensitivity on the username input for the selected sign-in option. For example, when this is set to <code>False</code>, users will be able to sign in using either "username" or "Username". This configuration is immutable once it has been set. For more information, see <a href="https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UsernameConfigurationType.html">UsernameConfigurationType</a>.:<br/>UserPoolAddOns:  Used to enable advanced security risk detection. Set the key <code>AdvancedSecurityMode</code> to the value "AUDIT".:<br/>Schema:  An array of schema attributes for the new user pool. These attributes can be standard or custom attributes.<br/>AdminCreateUserConfig:  The configuration for <code>AdminCreateUser</code> requests.:<br/>UserPoolTags:  The tag keys and values to assign to the user pool. A tag is a label that you can use to categorize and manage user pools in different ways, such as by purpose, owner, environment, or other criteria.<br/>SmsConfiguration:  The SMS configuration.:<br/>EmailConfiguration:  The email configuration.:<br/>DeviceConfiguration:  The device configuration.:<br/>MfaConfiguration:  Specifies MFA configuration details.<br/>SmsAuthenticationMessage:  A string representing the SMS authentication message.<br/>VerificationMessageTemplate:  The template for the verification message that the user sees when the app requests permission to access the user's information.:<br/>EmailVerificationSubject:  A string representing the email verification subject. EmailVerificationSubject is allowed only if <a href="https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_EmailConfigurationType.html#CognitoUserPools-Type-EmailConfigurationType-EmailSendingAccount">EmailSendingAccount</a> is DEVELOPER. <br/>EmailVerificationMessage:  A string representing the email verification message. EmailVerificationMessage is allowed only if <a href="https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_EmailConfigurationType.html#CognitoUserPools-Type-EmailConfigurationType-EmailSendingAccount">EmailSendingAccount</a> is DEVELOPER. <br/>SmsVerificationMessage:  A string representing the SMS verification message.<br/>UsernameAttributes:  Specifies whether email addresses or phone numbers can be specified as usernames when a user signs up.<br/>AliasAttributes:  Attributes supported as an alias for this user pool. Possible values: <b>phone_number</b>, <b>email</b>, or <b>preferred_username</b>.<br/>AutoVerifiedAttributes:  The attributes to be auto-verified. Possible values: <b>email</b>, <b>phone_number</b>.<br/>LambdaConfig:  The Lambda trigger configuration information for the new user pool. <note> In a push model, event sources (such as Amazon S3 and custom applications) need permission to invoke a function. So you will need to make an extra call to add permission for these event sources to invoke your Lambda function. <p/> For more information on using the Lambda API to add permission, see <a href="https://docs.aws.amazon.com/lambda/latest/dg/API_AddPermission.html"> AddPermission </a>.  For adding permission using the AWS CLI, see <a href="https://docs.aws.amazon.com/cli/latest/reference/lambda/add-permission.html"> add-permission </a>. </note>:<br/>Policies:  The policies associated with the new user pool.:<br/>PoolName:  A string used to name the user pool.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PasswordPolicy</i> The password policy.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PasswordPolicy</b>: The password policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TemporaryPasswordValidityDays</i> In the password policy you have set, refers to the number of days a temporary password is valid. If the user does not sign-in during this time, their password will need to be reset by an administrator. <note> When you set <code>TemporaryPasswordValidityDays</code> for a user pool, you will no longer be able to set the deprecated <code>UnusedAccountValidityDays</code> value for that user pool. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RequireSymbols</i> In the password policy that you have set, refers to whether you have required users to use at least one symbol in their password.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RequireNumbers</i> In the password policy that you have set, refers to whether you have required users to use at least one number in their password.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RequireLowercase</i> In the password policy that you have set, refers to whether you have required users to use at least one lowercase letter in their password.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RequireUppercase</i> In the password policy that you have set, refers to whether you have required users to use at least one uppercase letter in their password.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MinimumLength</i> The minimum length of the password policy that you have set. Cannot be less than 6.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KMSKeyID</i> The Amazon Resource Name of Key Management Service <a href="/kms/latest/developerguide/concepts.html#master_keys">Customer master keys</a> . Amazon Cognito uses the key to encrypt codes and temporary passwords sent to <code>CustomEmailSender</code> and <code>CustomSMSSender</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomEmailSender</i> A custom email sender AWS Lambda trigger.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CustomEmailSender</b>: A custom email sender AWS Lambda trigger.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomSMSSender</i> A custom SMS sender AWS Lambda trigger.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CustomSMSSender</b>: A custom SMS sender AWS Lambda trigger.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserMigration</i> The user migration Lambda config type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreTokenGeneration</i> A Lambda trigger that is invoked before token generation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VerifyAuthChallengeResponse</i> Verifies the authentication challenge response.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreateAuthChallenge</i> Creates an authentication challenge.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefineAuthChallenge</i> Defines the authentication challenge.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PostAuthentication</i> A post-authentication AWS Lambda trigger.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreAuthentication</i> A pre-authentication AWS Lambda trigger.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PostConfirmation</i> A post-confirmation AWS Lambda trigger.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomMessage</i> A custom Message AWS Lambda trigger.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreSignUp</i> A pre-registration AWS Lambda trigger.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LambdaArn</i> The Lambda Amazon Resource Name of the Lambda function that Amazon Cognito triggers to send SMS notifications to users.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LambdaVersion</i> The Lambda version represents the signature of the "request" attribute in the "event" information Amazon Cognito passes to your custom SMS Lambda function. The only supported value is <code>V1_0</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LambdaArn</i> The Lambda Amazon Resource Name of the Lambda function that Amazon Cognito triggers to send email notifications to users.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LambdaVersion</i> The Lambda version represents the signature of the "request" attribute in the "event" information Amazon Cognito passes to your custom email Lambda function. The only supported value is <code>V1_0</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultEmailOption</i> The default email option.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EmailSubjectByLink</i> The subject line for the email message template for sending a confirmation link to the user. EmailSubjectByLink is allowed only <a href="https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_EmailConfigurationType.html#CognitoUserPools-Type-EmailConfigurationType-EmailSendingAccount"> EmailSendingAccount</a> is DEVELOPER.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EmailMessageByLink</i> The email message template for sending a confirmation link to the user. EmailMessageByLink is allowed only if <a href="https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_EmailConfigurationType.html#CognitoUserPools-Type-EmailConfigurationType-EmailSendingAccount"> EmailSendingAccount</a> is DEVELOPER.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EmailSubject</i> The subject line for the email message template. EmailSubject is allowed only if <a href="https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_EmailConfigurationType.html#CognitoUserPools-Type-EmailConfigurationType-EmailSendingAccount">EmailSendingAccount</a> is DEVELOPER. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EmailMessage</i> The email message template. EmailMessage is allowed only if <a href="https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_EmailConfigurationType.html#CognitoUserPools-Type-EmailConfigurationType-EmailSendingAccount"> EmailSendingAccount</a> is DEVELOPER. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SmsMessage</i> The SMS message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeviceOnlyRememberedOnUserPrompt</i> If true, a device is only remembered on user prompt.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ChallengeRequiredOnNewDevice</i> Indicates whether a challenge is required on a new device. Only applicable to a new device.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConfigurationSet</i> The set of configuration rules that can be applied to emails sent using Amazon SES. A configuration set is applied to an email by including a reference to the configuration set in the headers of the email. Once applied, all of the rules in that configuration set are applied to the email. Configuration sets can be used to apply the following types of rules to emails:  <ul> <li> Event publishing – Amazon SES can track the number of send, delivery, open, click, bounce, and complaint events for each email sent. Use event publishing to send information about these events to other AWS services such as SNS and CloudWatch. </li> <li> IP pool management – When leasing dedicated IP addresses with Amazon SES, you can create groups of IP addresses, called dedicated IP pools. You can then associate the dedicated IP pools with configuration sets. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>From</i> Identifies either the sender’s email address or the sender’s name with their email address. For example, <code>testuser@example.com</code> or <code>Test User &lt;testuser@example.com&gt;</code>. This address will appear before the body of the email.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EmailSendingAccount</i> Specifies whether Amazon Cognito emails your users by using its built-in email functionality or your Amazon SES email configuration. Specify one of the following values: <dl> <dt>COGNITO_DEFAULT</dt> <dd> When Amazon Cognito emails your users, it uses its built-in email functionality. When you use the default option, Amazon Cognito allows only a limited number of emails each day for your user pool. For typical production environments, the default email limit is below the required delivery volume. To achieve a higher delivery volume, specify DEVELOPER to use your Amazon SES email configuration. To look up the email delivery limit for the default option, see <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/limits.html">Limits in Amazon Cognito</a> in the <i>Amazon Cognito Developer Guide</i>. The default FROM address is no-reply@verificationemail.com. To customize the FROM address, provide the ARN of an Amazon SES verified email address for the <code>SourceArn</code> parameter.  If EmailSendingAccount is COGNITO_DEFAULT, the following parameters aren't allowed: <ul> <li> EmailVerificationMessage </li> <li> EmailVerificationSubject </li> <li> InviteMessageTemplate.EmailMessage </li> <li> InviteMessageTemplate.EmailSubject </li> <li> VerificationMessageTemplate.EmailMessage </li> <li> VerificationMessageTemplate.EmailMessageByLink </li> <li> VerificationMessageTemplate.EmailSubject, </li> <li> VerificationMessageTemplate.EmailSubjectByLink </li> </ul> <note> DEVELOPER EmailSendingAccount is required. </note> </dd> <dt>DEVELOPER</dt> <dd> When Amazon Cognito emails your users, it uses your Amazon SES configuration. Amazon Cognito calls Amazon SES on your behalf to send email from your verified email address. When you use this option, the email delivery limits are the same limits that apply to your Amazon SES verified email address in your AWS account. If you use this option, you must provide the ARN of an Amazon SES verified email address for the <code>SourceArn</code> parameter. Before Amazon Cognito can email your users, it requires additional permissions to call Amazon SES on your behalf. When you update your user pool with this option, Amazon Cognito creates a <i>service-linked role</i>, which is a type of IAM role, in your AWS account. This role contains the permissions that allow Amazon Cognito to access Amazon SES and send email messages with your address. For more information about the service-linked role that Amazon Cognito creates, see <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/using-service-linked-roles.html">Using Service-Linked Roles for Amazon Cognito</a> in the <i>Amazon Cognito Developer Guide</i>. </dd> </dl><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplyToEmailAddress</i> The destination to which the receiver of the email should reply to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceArn</i> The Amazon Resource Name (ARN) of a verified email address in Amazon SES. This email address is used in one of the following ways, depending on the value that you specify for the <code>EmailSendingAccount</code> parameter: <ul> <li> If you specify <code>COGNITO_DEFAULT</code>, Amazon Cognito uses this address as the custom FROM address when it emails your users by using its built-in email account. </li> <li> If you specify <code>DEVELOPER</code>, Amazon Cognito emails your users with this address by calling Amazon SES on your behalf. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExternalId</i> The external ID is a value that we recommend you use to add security to your IAM role which is used to call Amazon SNS to send SMS messages for your user pool. If you provide an <code>ExternalId</code>, the Cognito User Pool will include it when attempting to assume your IAM role, so that you can set your roles trust policy to require the <code>ExternalID</code>. If you use the Cognito Management Console to create a role for SMS MFA, Cognito will create a role with the required permissions and a trust policy that demonstrates use of the <code>ExternalId</code>. For more information about the <code>ExternalId</code> of a role, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html">How to use an external ID when granting access to your AWS resources to a third party</a> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnsCallerArn</i> The Amazon Resource Name (ARN) of the Amazon Simple Notification Service (SNS) caller. This is the ARN of the IAM role in your AWS account which Cognito will use to send SMS messages. SMS messages are subject to a <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-email-phone-verification.html">spending limit</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InviteMessageTemplate</i> The message template to be used for the welcome message to new users. See also <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-settings-message-customizations.html#cognito-user-pool-settings-user-invitation-message-customization">Customizing User Invitation Messages</a>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>InviteMessageTemplate</b>: The message template to be used for the welcome message to new users. See also <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-settings-message-customizations.html#cognito-user-pool-settings-user-invitation-message-customization">Customizing User Invitation Messages</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UnusedAccountValidityDays</i> The user account expiration limit, in days, after which the account is no longer usable. To reset the account after that time limit, you must call <code>AdminCreateUser</code> again, specifying <code>"RESEND"</code> for the <code>MessageAction</code> parameter. The default value for this parameter is 7.  <note> If you set a value for <code>TemporaryPasswordValidityDays</code> in <code>PasswordPolicy</code>, that value will be used and <code>UnusedAccountValidityDays</code> will be deprecated for that user pool.  </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowAdminCreateUserOnly</i> Set to <code>True</code> if only the administrator is allowed to create user profiles. Set to <code>False</code> if users can sign themselves up via an app.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EmailSubject</i> The subject line for email messages. EmailSubject is allowed only if <a href="https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_EmailConfigurationType.html#CognitoUserPools-Type-EmailConfigurationType-EmailSendingAccount">EmailSendingAccount</a> is DEVELOPER. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EmailMessage</i> The message template for email messages. EmailMessage is allowed only if <a href="https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_EmailConfigurationType.html#CognitoUserPools-Type-EmailConfigurationType-EmailSendingAccount">EmailSendingAccount</a> is DEVELOPER. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SMSMessage</i> The message template for SMS messages.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdvancedSecurityMode</i> The advanced security mode.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CaseSensitive</i> Specifies whether username case sensitivity will be applied for all users in the user pool through Cognito APIs. Valid values include: <ul> <li>  <b> <code>True</code> </b>: Enables case sensitivity for all username input. When this option is set to <code>True</code>, users must sign in using the exact capitalization of their given username. For example, “UserName”. This is the default value. </li> <li>  <b> <code>False</code> </b>: Enables case insensitivity for all username input. For example, when this option is set to <code>False</code>, users will be able to sign in using either "username" or "Username". This option also enables both <code>preferred_username</code> and <code>email</code> alias to be case insensitive, in addition to the <code>username</code> attribute. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecoveryMechanisms</i> The list of <code>RecoveryOptionTypes</code>.<br/>
        :return: UserPool:  A container for the user pool details.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccountRecoverySetting</i> Use this setting to define which verified available method a user can use to recover their password when they call <code>ForgotPassword</code>. It allows you to define a preferred method when a user has more than one method available. With this setting, SMS does not qualify for a valid password recovery mechanism if the user also has SMS MFA enabled. In the absence of this setting, Cognito uses the legacy behavior to determine the recovery method where SMS is preferred over email.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AccountRecoverySetting</b>: Use this setting to define which verified available method a user can use to recover their password when they call <code>ForgotPassword</code>. It allows you to define a preferred method when a user has more than one method available. With this setting, SMS does not qualify for a valid password recovery mechanism if the user also has SMS MFA enabled. In the absence of this setting, Cognito uses the legacy behavior to determine the recovery method where SMS is preferred over email.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) for the user pool.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UsernameConfiguration</i> You can choose to enable case sensitivity on the username input for the selected sign-in option. For example, when this is set to <code>False</code>, users will be able to sign in using either "username" or "Username". This configuration is immutable once it has been set. For more information, see <a href="https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UsernameConfigurationType.html">UsernameConfigurationType</a>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>UsernameConfiguration</b>: You can choose to enable case sensitivity on the username input for the selected sign-in option. For example, when this is set to <code>False</code>, users will be able to sign in using either "username" or "Username". This configuration is immutable once it has been set. For more information, see <a href="https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UsernameConfigurationType.html">UsernameConfigurationType</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserPoolAddOns</i> The user pool add-ons.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>UserPoolAddOns</b>: The user pool add-ons.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdminCreateUserConfig</i> The configuration for <code>AdminCreateUser</code> requests.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AdminCreateUserConfig</b>: The configuration for <code>AdminCreateUser</code> requests.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomDomain</i> A custom domain name that you provide to Amazon Cognito. This parameter applies only if you use a custom domain to host the sign-up and sign-in pages for your application. For example: <code>auth.example.com</code>. For more information about adding a custom domain to your user pool, see <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-add-custom-domain.html">Using Your Own Domain for the Hosted UI</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Domain</i> Holds the domain prefix if the user pool has a domain associated with it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EmailConfigurationFailure</i> The reason why the email configuration cannot send the messages to your users.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SmsConfigurationFailure</i> The reason why the SMS configuration cannot send the messages to your users. This message might include comma-separated values to describe why your SMS configuration can't send messages to user pool end users. <ul> <li> InvalidSmsRoleAccessPolicyException - The IAM role which Cognito uses to send SMS messages is not properly configured. For more information, see <a href="https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SmsConfigurationType.html">SmsConfigurationType</a>. </li> <li> SNSSandbox - The AWS account is in SNS Sandbox and messages won’t reach unverified end users. This parameter won’t get populated with SNSSandbox if the IAM user creating the user pool doesn’t have SNS permissions. To learn how to move your AWS account out of the sandbox, see <a href="https://docs.aws.amazon.com/sns/latest/dg/sns-sms-sandbox-moving-to-production.html">Moving out of the SMS sandbox</a>. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserPoolTags</i> The tags that are assigned to the user pool. A tag is a label that you can apply to user pools to categorize and manage them in different ways, such as by purpose, owner, environment, or other criteria.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SmsConfiguration</i> The SMS configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SmsConfiguration</b>: The SMS configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EmailConfiguration</i> The email configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EmailConfiguration</b>: The email configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EstimatedNumberOfUsers</i> A number estimating the size of the user pool.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeviceConfiguration</i> The device configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DeviceConfiguration</b>: The device configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MfaConfiguration</i> Can be one of the following values: <ul> <li>  <code>OFF</code> - MFA tokens are not required and cannot be specified during user registration. </li> <li>  <code>ON</code> - MFA tokens are required for all user registrations. You can only specify required when you are initially creating a user pool. </li> <li>  <code>OPTIONAL</code> - Users have the option when registering to create an MFA token. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SmsAuthenticationMessage</i> The contents of the SMS authentication message.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VerificationMessageTemplate</i> The template for verification messages.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>VerificationMessageTemplate</b>: The template for verification messages.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EmailVerificationSubject</i> The subject of the email verification message.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EmailVerificationMessage</i> The contents of the email verification message.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SmsVerificationMessage</i> The contents of the SMS verification message.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UsernameAttributes</i> Specifies whether email addresses or phone numbers can be specified as usernames when a user signs up.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AliasAttributes</i> Specifies the attributes that are aliased in a user pool.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoVerifiedAttributes</i> Specifies the attributes that are auto-verified in a user pool.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SchemaAttributes</i> A container with the schema attributes of a user pool.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date the user pool was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> The date the user pool was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of a user pool.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LambdaConfig</i> The AWS Lambda triggers associated with the user pool.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>LambdaConfig</b>: The AWS Lambda triggers associated with the user pool.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Policies</i> The policies associated with the user pool.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Policies</b>: The policies associated with the user pool.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the user pool.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID of the user pool.<br/>The password policy.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PasswordPolicy</b>: The password policy.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UserMigration</i> The user migration Lambda config type.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PreTokenGeneration</i> A Lambda trigger that is invoked before token generation.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VerifyAuthChallengeResponse</i> Verifies the authentication challenge response.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CreateAuthChallenge</i> Creates an authentication challenge.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DefineAuthChallenge</i> Defines the authentication challenge.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PostAuthentication</i> A post-authentication AWS Lambda trigger.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PreAuthentication</i> A pre-authentication AWS Lambda trigger.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PostConfirmation</i> A post-confirmation AWS Lambda trigger.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomMessage</i> A custom Message AWS Lambda trigger.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PreSignUp</i> A pre-registration AWS Lambda trigger.<br/>A custom SMS sender AWS Lambda trigger.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CustomSMSSender</b>: A custom SMS sender AWS Lambda trigger.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultEmailOption</i> The default email option.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EmailSubjectByLink</i> The subject line for the email message template for sending a confirmation link to the user. EmailSubjectByLink is allowed only <a href="https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_EmailConfigurationType.html#CognitoUserPools-Type-EmailConfigurationType-EmailSendingAccount"> EmailSendingAccount</a> is DEVELOPER.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EmailMessageByLink</i> The email message template for sending a confirmation link to the user. EmailMessageByLink is allowed only if <a href="https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_EmailConfigurationType.html#CognitoUserPools-Type-EmailConfigurationType-EmailSendingAccount"> EmailSendingAccount</a> is DEVELOPER.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EmailSubject</i> The subject line for the email message template. EmailSubject is allowed only if <a href="https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_EmailConfigurationType.html#CognitoUserPools-Type-EmailConfigurationType-EmailSendingAccount">EmailSendingAccount</a> is DEVELOPER. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EmailMessage</i> The email message template. EmailMessage is allowed only if <a href="https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_EmailConfigurationType.html#CognitoUserPools-Type-EmailConfigurationType-EmailSendingAccount"> EmailSendingAccount</a> is DEVELOPER. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SmsMessage</i> The SMS message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DeviceOnlyRememberedOnUserPrompt</i> If true, a device is only remembered on user prompt.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ChallengeRequiredOnNewDevice</i> Indicates whether a challenge is required on a new device. Only applicable to a new device.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ConfigurationSet</i> The set of configuration rules that can be applied to emails sent using Amazon SES. A configuration set is applied to an email by including a reference to the configuration set in the headers of the email. Once applied, all of the rules in that configuration set are applied to the email. Configuration sets can be used to apply the following types of rules to emails:  <ul> <li> Event publishing – Amazon SES can track the number of send, delivery, open, click, bounce, and complaint events for each email sent. Use event publishing to send information about these events to other AWS services such as SNS and CloudWatch. </li> <li> IP pool management – When leasing dedicated IP addresses with Amazon SES, you can create groups of IP addresses, called dedicated IP pools. You can then associate the dedicated IP pools with configuration sets. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>From</i> Identifies either the sender’s email address or the sender’s name with their email address. For example, <code>testuser@example.com</code> or <code>Test User &lt;testuser@example.com&gt;</code>. This address will appear before the body of the email.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EmailSendingAccount</i> Specifies whether Amazon Cognito emails your users by using its built-in email functionality or your Amazon SES email configuration. Specify one of the following values: <dl> <dt>COGNITO_DEFAULT</dt> <dd> When Amazon Cognito emails your users, it uses its built-in email functionality. When you use the default option, Amazon Cognito allows only a limited number of emails each day for your user pool. For typical production environments, the default email limit is below the required delivery volume. To achieve a higher delivery volume, specify DEVELOPER to use your Amazon SES email configuration. To look up the email delivery limit for the default option, see <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/limits.html">Limits in Amazon Cognito</a> in the <i>Amazon Cognito Developer Guide</i>. The default FROM address is no-reply@verificationemail.com. To customize the FROM address, provide the ARN of an Amazon SES verified email address for the <code>SourceArn</code> parameter.  If EmailSendingAccount is COGNITO_DEFAULT, the following parameters aren't allowed: <ul> <li> EmailVerificationMessage </li> <li> EmailVerificationSubject </li> <li> InviteMessageTemplate.EmailMessage </li> <li> InviteMessageTemplate.EmailSubject </li> <li> VerificationMessageTemplate.EmailMessage </li> <li> VerificationMessageTemplate.EmailMessageByLink </li> <li> VerificationMessageTemplate.EmailSubject, </li> <li> VerificationMessageTemplate.EmailSubjectByLink </li> </ul> <note> DEVELOPER EmailSendingAccount is required. </note> </dd> <dt>DEVELOPER</dt> <dd> When Amazon Cognito emails your users, it uses your Amazon SES configuration. Amazon Cognito calls Amazon SES on your behalf to send email from your verified email address. When you use this option, the email delivery limits are the same limits that apply to your Amazon SES verified email address in your AWS account. If you use this option, you must provide the ARN of an Amazon SES verified email address for the <code>SourceArn</code> parameter. Before Amazon Cognito can email your users, it requires additional permissions to call Amazon SES on your behalf. When you update your user pool with this option, Amazon Cognito creates a <i>service-linked role</i>, which is a type of IAM role, in your AWS account. This role contains the permissions that allow Amazon Cognito to access Amazon SES and send email messages with your address. For more information about the service-linked role that Amazon Cognito creates, see <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/using-service-linked-roles.html">Using Service-Linked Roles for Amazon Cognito</a> in the <i>Amazon Cognito Developer Guide</i>. </dd> </dl><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplyToEmailAddress</i> The destination to which the receiver of the email should reply to.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceArn</i> The Amazon Resource Name (ARN) of a verified email address in Amazon SES. This email address is used in one of the following ways, depending on the value that you specify for the <code>EmailSendingAccount</code> parameter: <ul> <li> If you specify <code>COGNITO_DEFAULT</code>, Amazon Cognito uses this address as the custom FROM address when it emails your users by using its built-in email account. </li> <li> If you specify <code>DEVELOPER</code>, Amazon Cognito emails your users with this address by calling Amazon SES on your behalf. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ExternalId</i> The external ID is a value that we recommend you use to add security to your IAM role which is used to call Amazon SNS to send SMS messages for your user pool. If you provide an <code>ExternalId</code>, the Cognito User Pool will include it when attempting to assume your IAM role, so that you can set your roles trust policy to require the <code>ExternalID</code>. If you use the Cognito Management Console to create a role for SMS MFA, Cognito will create a role with the required permissions and a trust policy that demonstrates use of the <code>ExternalId</code>. For more information about the <code>ExternalId</code> of a role, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html">How to use an external ID when granting access to your AWS resources to a third party</a> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SnsCallerArn</i> The Amazon Resource Name (ARN) of the Amazon Simple Notification Service (SNS) caller. This is the ARN of the IAM role in your AWS account which Cognito will use to send SMS messages. SMS messages are subject to a <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-email-phone-verification.html">spending limit</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UnusedAccountValidityDays</i> The user account expiration limit, in days, after which the account is no longer usable. To reset the account after that time limit, you must call <code>AdminCreateUser</code> again, specifying <code>"RESEND"</code> for the <code>MessageAction</code> parameter. The default value for this parameter is 7.  <note> If you set a value for <code>TemporaryPasswordValidityDays</code> in <code>PasswordPolicy</code>, that value will be used and <code>UnusedAccountValidityDays</code> will be deprecated for that user pool.  </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowAdminCreateUserOnly</i> Set to <code>True</code> if only the administrator is allowed to create user profiles. Set to <code>False</code> if users can sign themselves up via an app.<br/>The message template to be used for the welcome message to new users. See also <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-settings-message-customizations.html#cognito-user-pool-settings-user-invitation-message-customization">Customizing User Invitation Messages</a>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>InviteMessageTemplate</b>: The message template to be used for the welcome message to new users. See also <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-settings-message-customizations.html#cognito-user-pool-settings-user-invitation-message-customization">Customizing User Invitation Messages</a>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AdvancedSecurityMode</i> The advanced security mode.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CaseSensitive</i> Specifies whether username case sensitivity will be applied for all users in the user pool through Cognito APIs. Valid values include: <ul> <li>  <b> <code>True</code> </b>: Enables case sensitivity for all username input. When this option is set to <code>True</code>, users must sign in using the exact capitalization of their given username. For example, “UserName”. This is the default value. </li> <li>  <b> <code>False</code> </b>: Enables case insensitivity for all username input. For example, when this option is set to <code>False</code>, users will be able to sign in using either "username" or "Username". This option also enables both <code>preferred_username</code> and <code>email</code> alias to be case insensitive, in addition to the <code>username</code> attribute. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RecoveryMechanisms</i> The list of <code>RecoveryOptionTypes</code>.<br/>        """
        pass

    def create_user_pool_client(self, ClientName: str, UserPoolId: str, GenerateSecret: GenerateSecret=None, RefreshTokenValidity: int=None, AccessTokenValidity: int=None, IdTokenValidity: int=None, TokenValidityUnits: TokenValidityUnitsType=None, ReadAttributes: List[ClientPermissionType]=None, WriteAttributes: List[ClientPermissionType]=None, ExplicitAuthFlows: List[ExplicitAuthFlowsType]=None, SupportedIdentityProviders: List[ProviderNameType]=None, CallbackURLs: List[RedirectUrlType]=None, LogoutURLs: List[RedirectUrlType]=None, DefaultRedirectURI: str=None, AllowedOAuthFlows: List[OAuthFlowType]=None, AllowedOAuthScopes: List[ScopeType]=None, AllowedOAuthFlowsUserPoolClient: BooleanType=None, AnalyticsConfiguration: AnalyticsConfigurationType=None, PreventUserExistenceErrors: str=None, EnableTokenRevocation: WrappedBooleanType=None) -> CreateUserPoolClientResponse:
        r"""Creates the user pool client. When you create a new user pool client, token revocation is automatically enabled. For more information about revoking tokens, see <a href="https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_RevokeToken.html">RevokeToken</a>.

        :param self:
        :param EnableTokenRevocation:  Enables or disables token revocation. For more information about revoking tokens, see <a href="https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_RevokeToken.html">RevokeToken</a>. If you don't include this parameter, token revocation is automatically enabled for the new user pool client.<br/>PreventUserExistenceErrors:  Use this setting to choose which errors and responses are returned by Cognito APIs during authentication, account confirmation, and password recovery when the user does not exist in the user pool. When set to <code>ENABLED</code> and the user does not exist, authentication returns an error indicating either the username or password was incorrect, and account confirmation and password recovery return a response indicating a code was sent to a simulated destination. When set to <code>LEGACY</code>, those APIs will return a <code>UserNotFoundException</code> exception if the user does not exist in the user pool. Valid values include: <ul> <li>  <code>ENABLED</code> - This prevents user existence-related errors. </li> <li>  <code>LEGACY</code> - This represents the old behavior of Cognito where user existence related errors are not prevented. </li> </ul> <note> After February 15th 2020, the value of <code>PreventUserExistenceErrors</code> will default to <code>ENABLED</code> for newly created user pool clients if no value is provided. </note><br/>AnalyticsConfiguration:  The Amazon Pinpoint analytics configuration for collecting metrics for this user pool. <note> In regions where Pinpoint is not available, Cognito User Pools only supports sending events to Amazon Pinpoint projects in us-east-1. In regions where Pinpoint is available, Cognito User Pools will support sending events to Amazon Pinpoint projects within that same region.  </note>:<br/>AllowedOAuthFlowsUserPoolClient:  Set to true if the client is allowed to follow the OAuth protocol when interacting with Cognito user pools.<br/>AllowedOAuthScopes:  The allowed OAuth scopes. Possible values provided by OAuth are: <code>phone</code>, <code>email</code>, <code>openid</code>, and <code>profile</code>. Possible values provided by AWS are: <code>aws.cognito.signin.user.admin</code>. Custom scopes created in Resource Servers are also supported.<br/>AllowedOAuthFlows:  The allowed OAuth flows. Set to <code>code</code> to initiate a code grant flow, which provides an authorization code as the response. This code can be exchanged for access tokens with the token endpoint. Set to <code>implicit</code> to specify that the client should get the access token (and, optionally, ID token, based on scopes) directly. Set to <code>client_credentials</code> to specify that the client should get the access token (and, optionally, ID token, based on scopes) from the token endpoint using a combination of client and client_secret.<br/>DefaultRedirectURI:  The default redirect URI. Must be in the <code>CallbackURLs</code> list. A redirect URI must: <ul> <li> Be an absolute URI. </li> <li> Be registered with the authorization server. </li> <li> Not include a fragment component. </li> </ul> See <a href="https://tools.ietf.org/html/rfc6749#section-3.1.2">OAuth 2.0 - Redirection Endpoint</a>. Amazon Cognito requires HTTPS over HTTP except for http://localhost for testing purposes only. App callback URLs such as myapp://example are also supported.<br/>LogoutURLs:  A list of allowed logout URLs for the identity providers.<br/>CallbackURLs:  A list of allowed redirect (callback) URLs for the identity providers. A redirect URI must: <ul> <li> Be an absolute URI. </li> <li> Be registered with the authorization server. </li> <li> Not include a fragment component. </li> </ul> See <a href="https://tools.ietf.org/html/rfc6749#section-3.1.2">OAuth 2.0 - Redirection Endpoint</a>. Amazon Cognito requires HTTPS over HTTP except for http://localhost for testing purposes only. App callback URLs such as myapp://example are also supported.<br/>SupportedIdentityProviders:  A list of provider names for the identity providers that are supported on this client. The following are supported: <code>COGNITO</code>, <code>Facebook</code>, <code>Google</code> and <code>LoginWithAmazon</code>.<br/>ExplicitAuthFlows:  The authentication flows that are supported by the user pool clients. Flow names without the <code>ALLOW_</code> prefix are deprecated in favor of new names with the <code>ALLOW_</code> prefix. Note that values with <code>ALLOW_</code> prefix cannot be used along with values without <code>ALLOW_</code> prefix. Valid values include: <ul> <li>  <code>ALLOW_ADMIN_USER_PASSWORD_AUTH</code>: Enable admin based user password authentication flow <code>ADMIN_USER_PASSWORD_AUTH</code>. This setting replaces the <code>ADMIN_NO_SRP_AUTH</code> setting. With this authentication flow, Cognito receives the password in the request instead of using the SRP (Secure Remote Password protocol) protocol to verify passwords. </li> <li>  <code>ALLOW_CUSTOM_AUTH</code>: Enable Lambda trigger based authentication. </li> <li>  <code>ALLOW_USER_PASSWORD_AUTH</code>: Enable user password-based authentication. In this flow, Cognito receives the password in the request instead of using the SRP protocol to verify passwords. </li> <li>  <code>ALLOW_USER_SRP_AUTH</code>: Enable SRP based authentication. </li> <li>  <code>ALLOW_REFRESH_TOKEN_AUTH</code>: Enable authflow to refresh tokens. </li> </ul><br/>WriteAttributes:  The user pool attributes that the app client can write to. If your app client allows users to sign in through an identity provider, this array must include all attributes that are mapped to identity provider attributes. Amazon Cognito updates mapped attributes when users sign in to your application through an identity provider. If your app client lacks write access to a mapped attribute, Amazon Cognito throws an error when it attempts to update the attribute. For more information, see <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-specifying-attribute-mapping.html">Specifying Identity Provider Attribute Mappings for Your User Pool</a>.<br/>ReadAttributes:  The read attributes.<br/>TokenValidityUnits:  The units in which the validity times are represented in. Default for RefreshToken is days, and default for ID and access tokens are hours.:<br/>IdTokenValidity:  The time limit, between 5 minutes and 1 day, after which the ID token is no longer valid and cannot be used. This value will be overridden if you have entered a value in TokenValidityUnits.<br/>AccessTokenValidity:  The time limit, between 5 minutes and 1 day, after which the access token is no longer valid and cannot be used. This value will be overridden if you have entered a value in TokenValidityUnits.<br/>RefreshTokenValidity:  The time limit, in days, after which the refresh token is no longer valid and cannot be used.<br/>GenerateSecret:  Boolean to specify whether you want to generate a secret for the user pool client being created.<br/>ClientName:  The client name for the user pool client you would like to create.<br/>UserPoolId:  The user pool ID for the user pool where you want to create a user pool client.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RefreshToken</i> A time unit in “seconds”, “minutes”, “hours” or “days” for the value in RefreshTokenValidity, defaults to days.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IdToken</i> A time unit in “seconds”, “minutes”, “hours” or “days” for the value in IdTokenValidity, defaults to hours.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccessToken</i>  A time unit in “seconds”, “minutes”, “hours” or “days” for the value in AccessTokenValidity, defaults to hours.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserDataShared</i> If <code>UserDataShared</code> is <code>true</code>, Amazon Cognito will include user data in the events it publishes to Amazon Pinpoint analytics.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExternalId</i> The external ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The ARN of an IAM role that authorizes Amazon Cognito to publish events to Amazon Pinpoint analytics.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationArn</i> The Amazon Resource Name (ARN) of an Amazon Pinpoint project. You can use the Amazon Pinpoint project for Pinpoint integration with the chosen User Pool Client. Amazon Cognito publishes events to the pinpoint project declared by the app ARN.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationId</i> The application ID for an Amazon Pinpoint application.<br/>
        :return: UserPoolClient:  The user pool client that was just created.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableTokenRevocation</i> Indicates whether token revocation is enabled for the user pool client. When you create a new user pool client, token revocation is enabled by default. For more information about revoking tokens, see <a href="https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_RevokeToken.html">RevokeToken</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreventUserExistenceErrors</i> Use this setting to choose which errors and responses are returned by Cognito APIs during authentication, account confirmation, and password recovery when the user does not exist in the user pool. When set to <code>ENABLED</code> and the user does not exist, authentication returns an error indicating either the username or password was incorrect, and account confirmation and password recovery return a response indicating a code was sent to a simulated destination. When set to <code>LEGACY</code>, those APIs will return a <code>UserNotFoundException</code> exception if the user does not exist in the user pool. Valid values include: <ul> <li>  <code>ENABLED</code> - This prevents user existence-related errors. </li> <li>  <code>LEGACY</code> - This represents the old behavior of Cognito where user existence related errors are not prevented. </li> </ul> <note> After February 15th 2020, the value of <code>PreventUserExistenceErrors</code> will default to <code>ENABLED</code> for newly created user pool clients if no value is provided. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AnalyticsConfiguration</i> The Amazon Pinpoint analytics configuration for the user pool client. <note> Cognito User Pools only supports sending events to Amazon Pinpoint projects in the US East (N. Virginia) us-east-1 Region, regardless of the region in which the user pool resides. </note>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AnalyticsConfiguration</b>: The Amazon Pinpoint analytics configuration for the user pool client. <note> Cognito User Pools only supports sending events to Amazon Pinpoint projects in the US East (N. Virginia) us-east-1 Region, regardless of the region in which the user pool resides. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowedOAuthFlowsUserPoolClient</i> Set to true if the client is allowed to follow the OAuth protocol when interacting with Cognito user pools.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowedOAuthScopes</i> The allowed OAuth scopes. Possible values provided by OAuth are: <code>phone</code>, <code>email</code>, <code>openid</code>, and <code>profile</code>. Possible values provided by AWS are: <code>aws.cognito.signin.user.admin</code>. Custom scopes created in Resource Servers are also supported.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowedOAuthFlows</i> The allowed OAuth flows. Set to <code>code</code> to initiate a code grant flow, which provides an authorization code as the response. This code can be exchanged for access tokens with the token endpoint. Set to <code>implicit</code> to specify that the client should get the access token (and, optionally, ID token, based on scopes) directly. Set to <code>client_credentials</code> to specify that the client should get the access token (and, optionally, ID token, based on scopes) from the token endpoint using a combination of client and client_secret.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultRedirectURI</i> The default redirect URI. Must be in the <code>CallbackURLs</code> list. A redirect URI must: <ul> <li> Be an absolute URI. </li> <li> Be registered with the authorization server. </li> <li> Not include a fragment component. </li> </ul> See <a href="https://tools.ietf.org/html/rfc6749#section-3.1.2">OAuth 2.0 - Redirection Endpoint</a>. Amazon Cognito requires HTTPS over HTTP except for http://localhost for testing purposes only. App callback URLs such as myapp://example are also supported.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogoutURLs</i> A list of allowed logout URLs for the identity providers.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CallbackURLs</i> A list of allowed redirect (callback) URLs for the identity providers. A redirect URI must: <ul> <li> Be an absolute URI. </li> <li> Be registered with the authorization server. </li> <li> Not include a fragment component. </li> </ul> See <a href="https://tools.ietf.org/html/rfc6749#section-3.1.2">OAuth 2.0 - Redirection Endpoint</a>. Amazon Cognito requires HTTPS over HTTP except for http://localhost for testing purposes only. App callback URLs such as myapp://example are also supported.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SupportedIdentityProviders</i> A list of provider names for the identity providers that are supported on this client.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExplicitAuthFlows</i> The authentication flows that are supported by the user pool clients. Flow names without the <code>ALLOW_</code> prefix are deprecated in favor of new names with the <code>ALLOW_</code> prefix. Note that values with <code>ALLOW_</code> prefix cannot be used along with values without <code>ALLOW_</code> prefix. Valid values include: <ul> <li>  <code>ALLOW_ADMIN_USER_PASSWORD_AUTH</code>: Enable admin based user password authentication flow <code>ADMIN_USER_PASSWORD_AUTH</code>. This setting replaces the <code>ADMIN_NO_SRP_AUTH</code> setting. With this authentication flow, Cognito receives the password in the request instead of using the SRP (Secure Remote Password protocol) protocol to verify passwords. </li> <li>  <code>ALLOW_CUSTOM_AUTH</code>: Enable Lambda trigger based authentication. </li> <li>  <code>ALLOW_USER_PASSWORD_AUTH</code>: Enable user password-based authentication. In this flow, Cognito receives the password in the request instead of using the SRP protocol to verify passwords. </li> <li>  <code>ALLOW_USER_SRP_AUTH</code>: Enable SRP based authentication. </li> <li>  <code>ALLOW_REFRESH_TOKEN_AUTH</code>: Enable authflow to refresh tokens. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WriteAttributes</i> The writeable attributes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadAttributes</i> The Read-only attributes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TokenValidityUnits</i> The time units used to specify the token validity times of their respective token.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TokenValidityUnits</b>: The time units used to specify the token validity times of their respective token.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IdTokenValidity</i> The time limit, specified by tokenValidityUnits, defaulting to hours, after which the refresh token is no longer valid and cannot be used.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccessTokenValidity</i> The time limit, specified by tokenValidityUnits, defaulting to hours, after which the access token is no longer valid and cannot be used.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RefreshTokenValidity</i> The time limit, in days, after which the refresh token is no longer valid and cannot be used.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date the user pool client was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> The date the user pool client was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClientSecret</i> The client secret from the user pool request of the client type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClientId</i> The ID of the client associated with the user pool.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClientName</i> The client name from the user pool request of the client type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserPoolId</i> The user pool ID for the user pool client.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RefreshToken</i> A time unit in “seconds”, “minutes”, “hours” or “days” for the value in RefreshTokenValidity, defaults to days.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IdToken</i> A time unit in “seconds”, “minutes”, “hours” or “days” for the value in IdTokenValidity, defaults to hours.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AccessToken</i>  A time unit in “seconds”, “minutes”, “hours” or “days” for the value in AccessTokenValidity, defaults to hours.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UserDataShared</i> If <code>UserDataShared</code> is <code>true</code>, Amazon Cognito will include user data in the events it publishes to Amazon Pinpoint analytics.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ExternalId</i> The external ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The ARN of an IAM role that authorizes Amazon Cognito to publish events to Amazon Pinpoint analytics.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationArn</i> The Amazon Resource Name (ARN) of an Amazon Pinpoint project. You can use the Amazon Pinpoint project for Pinpoint integration with the chosen User Pool Client. Amazon Cognito publishes events to the pinpoint project declared by the app ARN.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationId</i> The application ID for an Amazon Pinpoint application.<br/>        """
        pass

    def create_user_pool_domain(self, UserPoolId: str, Domain: str, CustomDomainConfig: CustomDomainConfigType=None) -> CreateUserPoolDomainResponse:
        r"""Creates a new domain for a user pool.

        :param self:
        :param CustomDomainConfig:  The configuration for a custom domain that hosts the sign-up and sign-in webpages for your application. Provide this parameter only if you want to use a custom domain for your user pool. Otherwise, you can exclude this parameter and use the Amazon Cognito hosted domain instead. For more information about the hosted domain and custom domains, see <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-assign-domain.html">Configuring a User Pool Domain</a>.:<br/>UserPoolId:  The user pool ID.<br/>Domain:  The domain string.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CertificateArn</i> The Amazon Resource Name (ARN) of an AWS Certificate Manager SSL certificate. You use this certificate for the subdomain of your custom domain.<br/>
        :return: CloudFrontDomain:  The Amazon CloudFront endpoint that you use as the target of the alias that you set up with your Domain Name Service (DNS) provider.<br/>        """
        pass

    def delete_group(self, UserPoolId: str, GroupName: str):
        r"""Deletes a group. Calling this action requires developer credentials.

        :param self:
        :param UserPoolId:  The user pool ID for the user pool.<br/>GroupName:  The name of the group.<br/>
        :return:         """
        pass

    def delete_identity_provider(self, ProviderName: str, UserPoolId: str):
        r"""Deletes an identity provider for a user pool.

        :param self:
        :param ProviderName:  The identity provider name.<br/>UserPoolId:  The user pool ID.<br/>
        :return:         """
        pass

    def delete_resource_server(self, Identifier: str, UserPoolId: str):
        r"""Deletes a resource server.

        :param self:
        :param Identifier:  The identifier for the resource server.<br/>UserPoolId:  The user pool ID for the user pool that hosts the resource server.<br/>
        :return:         """
        pass

    def delete_user(self, AccessToken: str):
        r"""Allows a user to delete himself or herself.

        :param self:
        :param AccessToken:  The access token from a request to delete a user.<br/>
        :return:         """
        pass

    def delete_user_attributes(self, AccessToken: str, UserAttributeNames: List[AttributeNameType]) -> DeleteUserAttributesResponse:
        r"""Deletes the attributes for a user.

        :param self:
        :param AccessToken:  The access token used in the request to delete user attributes.<br/>UserAttributeNames:  An array of strings representing the user attribute names you wish to delete. For custom attributes, you must prepend the <code>custom:</code> prefix to the attribute name.<br/>
        :return:         """
        pass

    def delete_user_pool(self, UserPoolId: str):
        r"""Deletes the specified Amazon Cognito user pool.

        :param self:
        :param UserPoolId:  The user pool ID for the user pool you want to delete.<br/>
        :return:         """
        pass

    def delete_user_pool_client(self, ClientId: str, UserPoolId: str):
        r"""Allows the developer to delete the user pool client.

        :param self:
        :param ClientId:  The app client ID of the app associated with the user pool.<br/>UserPoolId:  The user pool ID for the user pool where you want to delete the client.<br/>
        :return:         """
        pass

    def delete_user_pool_domain(self, UserPoolId: str, Domain: str) -> DeleteUserPoolDomainResponse:
        r"""Deletes a domain for a user pool.

        :param self:
        :param UserPoolId:  The user pool ID.<br/>Domain:  The domain string.<br/>
        :return:         """
        pass

    def describe_identity_provider(self, ProviderName: str, UserPoolId: str) -> DescribeIdentityProviderResponse:
        r"""Gets information about a specific identity provider.

        :param self:
        :param ProviderName:  The identity provider name.<br/>UserPoolId:  The user pool ID.<br/>
        :return: IdentityProvider:  The identity provider that was deleted.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date the identity provider was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> The date the identity provider was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IdpIdentifiers</i> A list of identity provider identifiers.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AttributeMapping</i> A mapping of identity provider attributes to standard and custom user pool attributes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProviderDetails</i> The identity provider details. The following list describes the provider detail keys for each identity provider type. <ul> <li> For Google and Login with Amazon: <ul> <li> client_id </li> <li> client_secret </li> <li> authorize_scopes </li> </ul> </li> <li> For Facebook: <ul> <li> client_id </li> <li> client_secret </li> <li> authorize_scopes </li> <li> api_version </li> </ul> </li> <li> For Sign in with Apple: <ul> <li> client_id </li> <li> team_id </li> <li> key_id </li> <li> private_key </li> <li> authorize_scopes </li> </ul> </li> <li> For OIDC providers: <ul> <li> client_id </li> <li> client_secret </li> <li> attributes_request_method </li> <li> oidc_issuer </li> <li> authorize_scopes </li> <li> authorize_url <i>if not available from discovery URL specified by oidc_issuer key</i>  </li> <li> token_url <i>if not available from discovery URL specified by oidc_issuer key</i>  </li> <li> attributes_url <i>if not available from discovery URL specified by oidc_issuer key</i>  </li> <li> jwks_uri <i>if not available from discovery URL specified by oidc_issuer key</i>  </li> </ul> </li> <li> For SAML providers: <ul> <li> MetadataFile OR MetadataURL </li> <li> IDPSignOut <i>optional</i>  </li> </ul> </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProviderType</i> The identity provider type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProviderName</i> The identity provider name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserPoolId</i> The user pool ID.<br/>        """
        pass

    def describe_resource_server(self, Identifier: str, UserPoolId: str) -> DescribeResourceServerResponse:
        r"""Describes a resource server.

        :param self:
        :param Identifier:  The identifier for the resource server<br/>UserPoolId:  The user pool ID for the user pool that hosts the resource server.<br/>
        :return: ResourceServer:  The resource server.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Scopes</i> A list of scopes that are defined for the resource server.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the resource server.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Identifier</i> The identifier for the resource server.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserPoolId</i> The user pool ID for the user pool that hosts the resource server.<br/>        """
        pass

    def describe_risk_configuration(self, UserPoolId: str, ClientId: str=None) -> DescribeRiskConfigurationResponse:
        r"""Describes the risk configuration.

        :param self:
        :param ClientId:  The app client ID.<br/>UserPoolId:  The user pool ID.<br/>
        :return: RiskConfiguration:  The risk configuration.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> The last modified date.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RiskExceptionConfiguration</i> The configuration to override the risk decision.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RiskExceptionConfiguration</b>: The configuration to override the risk decision.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccountTakeoverRiskConfiguration</i> The account takeover risk configuration object including the <code>NotifyConfiguration</code> object and <code>Actions</code> to take in the case of an account takeover.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AccountTakeoverRiskConfiguration</b>: The account takeover risk configuration object including the <code>NotifyConfiguration</code> object and <code>Actions</code> to take in the case of an account takeover.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CompromisedCredentialsRiskConfiguration</i> The compromised credentials risk configuration object including the <code>EventFilter</code> and the <code>EventAction</code> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CompromisedCredentialsRiskConfiguration</b>: The compromised credentials risk configuration object including the <code>EventFilter</code> and the <code>EventAction</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClientId</i> The app client ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserPoolId</i> The user pool ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EventFilter</i> Perform the action for these events. The default is to perform all events if no event filter is specified.<br/>The compromised credentials risk configuration actions.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Actions</b>: The compromised credentials risk configuration actions.The notify configuration used to construct email notifications.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>NotifyConfiguration</b>: The notify configuration used to construct email notifications.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SkippedIPRangeList</i> Risk detection is not performed on the IP addresses in the range list. The IP range is in CIDR notation.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BlockedIPRangeList</i> Overrides the risk decision to always block the pre-authentication requests. The IP range is in CIDR notation: a compact representation of an IP address and its associated routing prefix.<br/>        """
        pass

    def describe_user_import_job(self, JobId: str, UserPoolId: str) -> DescribeUserImportJobResponse:
        r"""Describes the user import job.

        :param self:
        :param JobId:  The job ID for the user import job.<br/>UserPoolId:  The user pool ID for the user pool that the users are being imported into.<br/>
        :return: UserImportJob:  The job object that represents the user import job.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CompletionMessage</i> The message returned when the user import job is completed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FailedUsers</i> The number of users that could not be imported.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SkippedUsers</i> The number of users that were skipped.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImportedUsers</i> The number of users that were successfully imported.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudWatchLogsRoleArn</i> The role ARN for the Amazon CloudWatch Logging role for the user import job. For more information, see "Creating the CloudWatch Logs IAM Role" in the Amazon Cognito Developer Guide.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the user import job. One of the following: <ul> <li>  <code>Created</code> - The job was created but not started. </li> <li>  <code>Pending</code> - A transition state. You have started the job, but it has not begun importing users yet. </li> <li>  <code>InProgress</code> - The job has started, and users are being imported. </li> <li>  <code>Stopping</code> - You have stopped the job, but the job has not stopped importing users yet. </li> <li>  <code>Stopped</code> - You have stopped the job, and the job has stopped importing users. </li> <li>  <code>Succeeded</code> - The job has completed successfully. </li> <li>  <code>Failed</code> - The job has stopped due to an error. </li> <li>  <code>Expired</code> - You created a job, but did not start the job within 24-48 hours. All data associated with the job was deleted, and the job cannot be started. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CompletionDate</i> The date when the user import job was completed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StartDate</i> The date when the user import job was started.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date the user import job was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreSignedUrl</i> The pre-signed URL to be used to upload the <code>.csv</code> file.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserPoolId</i> The user pool ID for the user pool that the users are being imported into.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobId</i> The job ID for the user import job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobName</i> The job name for the user import job.<br/>        """
        pass

    def describe_user_pool(self, UserPoolId: str) -> DescribeUserPoolResponse:
        r"""Returns the configuration information and metadata of the specified user pool.

        :param self:
        :param UserPoolId:  The user pool ID for the user pool you want to describe.<br/>
        :return: UserPool:  The container of metadata returned by the server to describe the pool.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccountRecoverySetting</i> Use this setting to define which verified available method a user can use to recover their password when they call <code>ForgotPassword</code>. It allows you to define a preferred method when a user has more than one method available. With this setting, SMS does not qualify for a valid password recovery mechanism if the user also has SMS MFA enabled. In the absence of this setting, Cognito uses the legacy behavior to determine the recovery method where SMS is preferred over email.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AccountRecoverySetting</b>: Use this setting to define which verified available method a user can use to recover their password when they call <code>ForgotPassword</code>. It allows you to define a preferred method when a user has more than one method available. With this setting, SMS does not qualify for a valid password recovery mechanism if the user also has SMS MFA enabled. In the absence of this setting, Cognito uses the legacy behavior to determine the recovery method where SMS is preferred over email.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) for the user pool.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UsernameConfiguration</i> You can choose to enable case sensitivity on the username input for the selected sign-in option. For example, when this is set to <code>False</code>, users will be able to sign in using either "username" or "Username". This configuration is immutable once it has been set. For more information, see <a href="https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UsernameConfigurationType.html">UsernameConfigurationType</a>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>UsernameConfiguration</b>: You can choose to enable case sensitivity on the username input for the selected sign-in option. For example, when this is set to <code>False</code>, users will be able to sign in using either "username" or "Username". This configuration is immutable once it has been set. For more information, see <a href="https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UsernameConfigurationType.html">UsernameConfigurationType</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserPoolAddOns</i> The user pool add-ons.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>UserPoolAddOns</b>: The user pool add-ons.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdminCreateUserConfig</i> The configuration for <code>AdminCreateUser</code> requests.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AdminCreateUserConfig</b>: The configuration for <code>AdminCreateUser</code> requests.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomDomain</i> A custom domain name that you provide to Amazon Cognito. This parameter applies only if you use a custom domain to host the sign-up and sign-in pages for your application. For example: <code>auth.example.com</code>. For more information about adding a custom domain to your user pool, see <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-add-custom-domain.html">Using Your Own Domain for the Hosted UI</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Domain</i> Holds the domain prefix if the user pool has a domain associated with it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EmailConfigurationFailure</i> The reason why the email configuration cannot send the messages to your users.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SmsConfigurationFailure</i> The reason why the SMS configuration cannot send the messages to your users. This message might include comma-separated values to describe why your SMS configuration can't send messages to user pool end users. <ul> <li> InvalidSmsRoleAccessPolicyException - The IAM role which Cognito uses to send SMS messages is not properly configured. For more information, see <a href="https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SmsConfigurationType.html">SmsConfigurationType</a>. </li> <li> SNSSandbox - The AWS account is in SNS Sandbox and messages won’t reach unverified end users. This parameter won’t get populated with SNSSandbox if the IAM user creating the user pool doesn’t have SNS permissions. To learn how to move your AWS account out of the sandbox, see <a href="https://docs.aws.amazon.com/sns/latest/dg/sns-sms-sandbox-moving-to-production.html">Moving out of the SMS sandbox</a>. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserPoolTags</i> The tags that are assigned to the user pool. A tag is a label that you can apply to user pools to categorize and manage them in different ways, such as by purpose, owner, environment, or other criteria.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SmsConfiguration</i> The SMS configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SmsConfiguration</b>: The SMS configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EmailConfiguration</i> The email configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EmailConfiguration</b>: The email configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EstimatedNumberOfUsers</i> A number estimating the size of the user pool.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeviceConfiguration</i> The device configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DeviceConfiguration</b>: The device configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MfaConfiguration</i> Can be one of the following values: <ul> <li>  <code>OFF</code> - MFA tokens are not required and cannot be specified during user registration. </li> <li>  <code>ON</code> - MFA tokens are required for all user registrations. You can only specify required when you are initially creating a user pool. </li> <li>  <code>OPTIONAL</code> - Users have the option when registering to create an MFA token. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SmsAuthenticationMessage</i> The contents of the SMS authentication message.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VerificationMessageTemplate</i> The template for verification messages.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>VerificationMessageTemplate</b>: The template for verification messages.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EmailVerificationSubject</i> The subject of the email verification message.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EmailVerificationMessage</i> The contents of the email verification message.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SmsVerificationMessage</i> The contents of the SMS verification message.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UsernameAttributes</i> Specifies whether email addresses or phone numbers can be specified as usernames when a user signs up.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AliasAttributes</i> Specifies the attributes that are aliased in a user pool.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoVerifiedAttributes</i> Specifies the attributes that are auto-verified in a user pool.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SchemaAttributes</i> A container with the schema attributes of a user pool.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date the user pool was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> The date the user pool was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of a user pool.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LambdaConfig</i> The AWS Lambda triggers associated with the user pool.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>LambdaConfig</b>: The AWS Lambda triggers associated with the user pool.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Policies</i> The policies associated with the user pool.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Policies</b>: The policies associated with the user pool.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the user pool.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID of the user pool.<br/>The password policy.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PasswordPolicy</b>: The password policy.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UserMigration</i> The user migration Lambda config type.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PreTokenGeneration</i> A Lambda trigger that is invoked before token generation.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VerifyAuthChallengeResponse</i> Verifies the authentication challenge response.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CreateAuthChallenge</i> Creates an authentication challenge.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DefineAuthChallenge</i> Defines the authentication challenge.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PostAuthentication</i> A post-authentication AWS Lambda trigger.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PreAuthentication</i> A pre-authentication AWS Lambda trigger.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PostConfirmation</i> A post-confirmation AWS Lambda trigger.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomMessage</i> A custom Message AWS Lambda trigger.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PreSignUp</i> A pre-registration AWS Lambda trigger.<br/>A custom SMS sender AWS Lambda trigger.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CustomSMSSender</b>: A custom SMS sender AWS Lambda trigger.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultEmailOption</i> The default email option.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EmailSubjectByLink</i> The subject line for the email message template for sending a confirmation link to the user. EmailSubjectByLink is allowed only <a href="https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_EmailConfigurationType.html#CognitoUserPools-Type-EmailConfigurationType-EmailSendingAccount"> EmailSendingAccount</a> is DEVELOPER.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EmailMessageByLink</i> The email message template for sending a confirmation link to the user. EmailMessageByLink is allowed only if <a href="https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_EmailConfigurationType.html#CognitoUserPools-Type-EmailConfigurationType-EmailSendingAccount"> EmailSendingAccount</a> is DEVELOPER.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EmailSubject</i> The subject line for the email message template. EmailSubject is allowed only if <a href="https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_EmailConfigurationType.html#CognitoUserPools-Type-EmailConfigurationType-EmailSendingAccount">EmailSendingAccount</a> is DEVELOPER. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EmailMessage</i> The email message template. EmailMessage is allowed only if <a href="https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_EmailConfigurationType.html#CognitoUserPools-Type-EmailConfigurationType-EmailSendingAccount"> EmailSendingAccount</a> is DEVELOPER. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SmsMessage</i> The SMS message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DeviceOnlyRememberedOnUserPrompt</i> If true, a device is only remembered on user prompt.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ChallengeRequiredOnNewDevice</i> Indicates whether a challenge is required on a new device. Only applicable to a new device.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ConfigurationSet</i> The set of configuration rules that can be applied to emails sent using Amazon SES. A configuration set is applied to an email by including a reference to the configuration set in the headers of the email. Once applied, all of the rules in that configuration set are applied to the email. Configuration sets can be used to apply the following types of rules to emails:  <ul> <li> Event publishing – Amazon SES can track the number of send, delivery, open, click, bounce, and complaint events for each email sent. Use event publishing to send information about these events to other AWS services such as SNS and CloudWatch. </li> <li> IP pool management – When leasing dedicated IP addresses with Amazon SES, you can create groups of IP addresses, called dedicated IP pools. You can then associate the dedicated IP pools with configuration sets. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>From</i> Identifies either the sender’s email address or the sender’s name with their email address. For example, <code>testuser@example.com</code> or <code>Test User &lt;testuser@example.com&gt;</code>. This address will appear before the body of the email.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EmailSendingAccount</i> Specifies whether Amazon Cognito emails your users by using its built-in email functionality or your Amazon SES email configuration. Specify one of the following values: <dl> <dt>COGNITO_DEFAULT</dt> <dd> When Amazon Cognito emails your users, it uses its built-in email functionality. When you use the default option, Amazon Cognito allows only a limited number of emails each day for your user pool. For typical production environments, the default email limit is below the required delivery volume. To achieve a higher delivery volume, specify DEVELOPER to use your Amazon SES email configuration. To look up the email delivery limit for the default option, see <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/limits.html">Limits in Amazon Cognito</a> in the <i>Amazon Cognito Developer Guide</i>. The default FROM address is no-reply@verificationemail.com. To customize the FROM address, provide the ARN of an Amazon SES verified email address for the <code>SourceArn</code> parameter.  If EmailSendingAccount is COGNITO_DEFAULT, the following parameters aren't allowed: <ul> <li> EmailVerificationMessage </li> <li> EmailVerificationSubject </li> <li> InviteMessageTemplate.EmailMessage </li> <li> InviteMessageTemplate.EmailSubject </li> <li> VerificationMessageTemplate.EmailMessage </li> <li> VerificationMessageTemplate.EmailMessageByLink </li> <li> VerificationMessageTemplate.EmailSubject, </li> <li> VerificationMessageTemplate.EmailSubjectByLink </li> </ul> <note> DEVELOPER EmailSendingAccount is required. </note> </dd> <dt>DEVELOPER</dt> <dd> When Amazon Cognito emails your users, it uses your Amazon SES configuration. Amazon Cognito calls Amazon SES on your behalf to send email from your verified email address. When you use this option, the email delivery limits are the same limits that apply to your Amazon SES verified email address in your AWS account. If you use this option, you must provide the ARN of an Amazon SES verified email address for the <code>SourceArn</code> parameter. Before Amazon Cognito can email your users, it requires additional permissions to call Amazon SES on your behalf. When you update your user pool with this option, Amazon Cognito creates a <i>service-linked role</i>, which is a type of IAM role, in your AWS account. This role contains the permissions that allow Amazon Cognito to access Amazon SES and send email messages with your address. For more information about the service-linked role that Amazon Cognito creates, see <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/using-service-linked-roles.html">Using Service-Linked Roles for Amazon Cognito</a> in the <i>Amazon Cognito Developer Guide</i>. </dd> </dl><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplyToEmailAddress</i> The destination to which the receiver of the email should reply to.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceArn</i> The Amazon Resource Name (ARN) of a verified email address in Amazon SES. This email address is used in one of the following ways, depending on the value that you specify for the <code>EmailSendingAccount</code> parameter: <ul> <li> If you specify <code>COGNITO_DEFAULT</code>, Amazon Cognito uses this address as the custom FROM address when it emails your users by using its built-in email account. </li> <li> If you specify <code>DEVELOPER</code>, Amazon Cognito emails your users with this address by calling Amazon SES on your behalf. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ExternalId</i> The external ID is a value that we recommend you use to add security to your IAM role which is used to call Amazon SNS to send SMS messages for your user pool. If you provide an <code>ExternalId</code>, the Cognito User Pool will include it when attempting to assume your IAM role, so that you can set your roles trust policy to require the <code>ExternalID</code>. If you use the Cognito Management Console to create a role for SMS MFA, Cognito will create a role with the required permissions and a trust policy that demonstrates use of the <code>ExternalId</code>. For more information about the <code>ExternalId</code> of a role, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html">How to use an external ID when granting access to your AWS resources to a third party</a> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SnsCallerArn</i> The Amazon Resource Name (ARN) of the Amazon Simple Notification Service (SNS) caller. This is the ARN of the IAM role in your AWS account which Cognito will use to send SMS messages. SMS messages are subject to a <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-email-phone-verification.html">spending limit</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UnusedAccountValidityDays</i> The user account expiration limit, in days, after which the account is no longer usable. To reset the account after that time limit, you must call <code>AdminCreateUser</code> again, specifying <code>"RESEND"</code> for the <code>MessageAction</code> parameter. The default value for this parameter is 7.  <note> If you set a value for <code>TemporaryPasswordValidityDays</code> in <code>PasswordPolicy</code>, that value will be used and <code>UnusedAccountValidityDays</code> will be deprecated for that user pool.  </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowAdminCreateUserOnly</i> Set to <code>True</code> if only the administrator is allowed to create user profiles. Set to <code>False</code> if users can sign themselves up via an app.<br/>The message template to be used for the welcome message to new users. See also <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-settings-message-customizations.html#cognito-user-pool-settings-user-invitation-message-customization">Customizing User Invitation Messages</a>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>InviteMessageTemplate</b>: The message template to be used for the welcome message to new users. See also <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-settings-message-customizations.html#cognito-user-pool-settings-user-invitation-message-customization">Customizing User Invitation Messages</a>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AdvancedSecurityMode</i> The advanced security mode.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CaseSensitive</i> Specifies whether username case sensitivity will be applied for all users in the user pool through Cognito APIs. Valid values include: <ul> <li>  <b> <code>True</code> </b>: Enables case sensitivity for all username input. When this option is set to <code>True</code>, users must sign in using the exact capitalization of their given username. For example, “UserName”. This is the default value. </li> <li>  <b> <code>False</code> </b>: Enables case insensitivity for all username input. For example, when this option is set to <code>False</code>, users will be able to sign in using either "username" or "Username". This option also enables both <code>preferred_username</code> and <code>email</code> alias to be case insensitive, in addition to the <code>username</code> attribute. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RecoveryMechanisms</i> The list of <code>RecoveryOptionTypes</code>.<br/>        """
        pass

    def describe_user_pool_client(self, ClientId: str, UserPoolId: str) -> DescribeUserPoolClientResponse:
        r"""Client method for returning the configuration information and metadata of the specified user pool app client.

        :param self:
        :param ClientId:  The app client ID of the app associated with the user pool.<br/>UserPoolId:  The user pool ID for the user pool you want to describe.<br/>
        :return: UserPoolClient:  The user pool client from a server response to describe the user pool client.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableTokenRevocation</i> Indicates whether token revocation is enabled for the user pool client. When you create a new user pool client, token revocation is enabled by default. For more information about revoking tokens, see <a href="https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_RevokeToken.html">RevokeToken</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreventUserExistenceErrors</i> Use this setting to choose which errors and responses are returned by Cognito APIs during authentication, account confirmation, and password recovery when the user does not exist in the user pool. When set to <code>ENABLED</code> and the user does not exist, authentication returns an error indicating either the username or password was incorrect, and account confirmation and password recovery return a response indicating a code was sent to a simulated destination. When set to <code>LEGACY</code>, those APIs will return a <code>UserNotFoundException</code> exception if the user does not exist in the user pool. Valid values include: <ul> <li>  <code>ENABLED</code> - This prevents user existence-related errors. </li> <li>  <code>LEGACY</code> - This represents the old behavior of Cognito where user existence related errors are not prevented. </li> </ul> <note> After February 15th 2020, the value of <code>PreventUserExistenceErrors</code> will default to <code>ENABLED</code> for newly created user pool clients if no value is provided. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AnalyticsConfiguration</i> The Amazon Pinpoint analytics configuration for the user pool client. <note> Cognito User Pools only supports sending events to Amazon Pinpoint projects in the US East (N. Virginia) us-east-1 Region, regardless of the region in which the user pool resides. </note>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AnalyticsConfiguration</b>: The Amazon Pinpoint analytics configuration for the user pool client. <note> Cognito User Pools only supports sending events to Amazon Pinpoint projects in the US East (N. Virginia) us-east-1 Region, regardless of the region in which the user pool resides. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowedOAuthFlowsUserPoolClient</i> Set to true if the client is allowed to follow the OAuth protocol when interacting with Cognito user pools.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowedOAuthScopes</i> The allowed OAuth scopes. Possible values provided by OAuth are: <code>phone</code>, <code>email</code>, <code>openid</code>, and <code>profile</code>. Possible values provided by AWS are: <code>aws.cognito.signin.user.admin</code>. Custom scopes created in Resource Servers are also supported.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowedOAuthFlows</i> The allowed OAuth flows. Set to <code>code</code> to initiate a code grant flow, which provides an authorization code as the response. This code can be exchanged for access tokens with the token endpoint. Set to <code>implicit</code> to specify that the client should get the access token (and, optionally, ID token, based on scopes) directly. Set to <code>client_credentials</code> to specify that the client should get the access token (and, optionally, ID token, based on scopes) from the token endpoint using a combination of client and client_secret.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultRedirectURI</i> The default redirect URI. Must be in the <code>CallbackURLs</code> list. A redirect URI must: <ul> <li> Be an absolute URI. </li> <li> Be registered with the authorization server. </li> <li> Not include a fragment component. </li> </ul> See <a href="https://tools.ietf.org/html/rfc6749#section-3.1.2">OAuth 2.0 - Redirection Endpoint</a>. Amazon Cognito requires HTTPS over HTTP except for http://localhost for testing purposes only. App callback URLs such as myapp://example are also supported.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogoutURLs</i> A list of allowed logout URLs for the identity providers.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CallbackURLs</i> A list of allowed redirect (callback) URLs for the identity providers. A redirect URI must: <ul> <li> Be an absolute URI. </li> <li> Be registered with the authorization server. </li> <li> Not include a fragment component. </li> </ul> See <a href="https://tools.ietf.org/html/rfc6749#section-3.1.2">OAuth 2.0 - Redirection Endpoint</a>. Amazon Cognito requires HTTPS over HTTP except for http://localhost for testing purposes only. App callback URLs such as myapp://example are also supported.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SupportedIdentityProviders</i> A list of provider names for the identity providers that are supported on this client.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExplicitAuthFlows</i> The authentication flows that are supported by the user pool clients. Flow names without the <code>ALLOW_</code> prefix are deprecated in favor of new names with the <code>ALLOW_</code> prefix. Note that values with <code>ALLOW_</code> prefix cannot be used along with values without <code>ALLOW_</code> prefix. Valid values include: <ul> <li>  <code>ALLOW_ADMIN_USER_PASSWORD_AUTH</code>: Enable admin based user password authentication flow <code>ADMIN_USER_PASSWORD_AUTH</code>. This setting replaces the <code>ADMIN_NO_SRP_AUTH</code> setting. With this authentication flow, Cognito receives the password in the request instead of using the SRP (Secure Remote Password protocol) protocol to verify passwords. </li> <li>  <code>ALLOW_CUSTOM_AUTH</code>: Enable Lambda trigger based authentication. </li> <li>  <code>ALLOW_USER_PASSWORD_AUTH</code>: Enable user password-based authentication. In this flow, Cognito receives the password in the request instead of using the SRP protocol to verify passwords. </li> <li>  <code>ALLOW_USER_SRP_AUTH</code>: Enable SRP based authentication. </li> <li>  <code>ALLOW_REFRESH_TOKEN_AUTH</code>: Enable authflow to refresh tokens. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WriteAttributes</i> The writeable attributes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadAttributes</i> The Read-only attributes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TokenValidityUnits</i> The time units used to specify the token validity times of their respective token.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TokenValidityUnits</b>: The time units used to specify the token validity times of their respective token.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IdTokenValidity</i> The time limit, specified by tokenValidityUnits, defaulting to hours, after which the refresh token is no longer valid and cannot be used.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccessTokenValidity</i> The time limit, specified by tokenValidityUnits, defaulting to hours, after which the access token is no longer valid and cannot be used.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RefreshTokenValidity</i> The time limit, in days, after which the refresh token is no longer valid and cannot be used.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date the user pool client was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> The date the user pool client was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClientSecret</i> The client secret from the user pool request of the client type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClientId</i> The ID of the client associated with the user pool.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClientName</i> The client name from the user pool request of the client type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserPoolId</i> The user pool ID for the user pool client.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RefreshToken</i> A time unit in “seconds”, “minutes”, “hours” or “days” for the value in RefreshTokenValidity, defaults to days.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IdToken</i> A time unit in “seconds”, “minutes”, “hours” or “days” for the value in IdTokenValidity, defaults to hours.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AccessToken</i>  A time unit in “seconds”, “minutes”, “hours” or “days” for the value in AccessTokenValidity, defaults to hours.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UserDataShared</i> If <code>UserDataShared</code> is <code>true</code>, Amazon Cognito will include user data in the events it publishes to Amazon Pinpoint analytics.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ExternalId</i> The external ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The ARN of an IAM role that authorizes Amazon Cognito to publish events to Amazon Pinpoint analytics.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationArn</i> The Amazon Resource Name (ARN) of an Amazon Pinpoint project. You can use the Amazon Pinpoint project for Pinpoint integration with the chosen User Pool Client. Amazon Cognito publishes events to the pinpoint project declared by the app ARN.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationId</i> The application ID for an Amazon Pinpoint application.<br/>        """
        pass

    def describe_user_pool_domain(self, Domain: str) -> DescribeUserPoolDomainResponse:
        r"""Gets information about a domain.

        :param self:
        :param Domain:  The domain string.<br/>
        :return: DomainDescription:  A domain description object containing information about the domain.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomDomainConfig</i> The configuration for a custom domain that hosts the sign-up and sign-in webpages for your application.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CustomDomainConfig</b>: The configuration for a custom domain that hosts the sign-up and sign-in webpages for your application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The domain status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The app version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudFrontDistribution</i> The ARN of the CloudFront distribution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Bucket</i> The S3 bucket where the static files for this domain are stored.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Domain</i> The domain string.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AWSAccountId</i> The AWS account ID for the user pool owner.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserPoolId</i> The user pool ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CertificateArn</i> The Amazon Resource Name (ARN) of an AWS Certificate Manager SSL certificate. You use this certificate for the subdomain of your custom domain.<br/>        """
        pass

    def forget_device(self, DeviceKey: str, AccessToken: str=None):
        r"""Forgets the specified device.

        :param self:
        :param DeviceKey:  The device key.<br/>AccessToken:  The access token for the forgotten device request.<br/>
        :return:         """
        pass

    def forgot_password(self, Username: str, ClientId: str, SecretHash: str=None, UserContextData: UserContextDataType=None, AnalyticsMetadata: AnalyticsMetadataType=None, ClientMetadata: ClientMetadataType=None) -> ForgotPasswordResponse:
        r"""Calling this API causes a message to be sent to the end user with a confirmation code that is required to change the user's password. For the <code>Username</code> parameter, you can use the username or user alias. The method used to send the confirmation code is sent according to the specified AccountRecoverySetting. For more information, see <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/how-to-recover-a-user-account.html">Recovering User Accounts</a> in the <i>Amazon Cognito Developer Guide</i>. If neither a verified phone number nor a verified email exists, an <code>InvalidParameterException</code> is thrown. To use the confirmation code for resetting the password, call <a href="https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ConfirmForgotPassword.html">ConfirmForgotPassword</a>. <note> This action might generate an SMS text message. Starting June 1, 2021, U.S. telecom carriers require that you register an origination phone number before you can send SMS messages to U.S. phone numbers. If you use SMS text messages in Amazon Cognito, you must register a phone number with <a href="https://console.aws.amazon.com/pinpoint/home/">Amazon Pinpoint</a>. Cognito will use the the registered number automatically. Otherwise, Cognito users that must receive SMS messages might be unable to sign up, activate their accounts, or sign in. If you have never used SMS text messages with Amazon Cognito or any other AWS service, Amazon SNS might place your account in SMS sandbox. In <i> <a href="https://docs.aws.amazon.com/sns/latest/dg/sns-sms-sandbox.html">sandbox mode</a> </i>, you’ll have limitations, such as sending messages to only verified phone numbers. After testing in the sandbox environment, you can move out of the SMS sandbox and into production. For more information, see <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools-sms-userpool-settings.html"> SMS message settings for Cognito User Pools</a> in the <i>Amazon Cognito Developer Guide</i>.  </note>

        :param self:
        :param ClientMetadata:  A map of custom key-value pairs that you can provide as input for any custom workflows that this action triggers.  You create custom workflows by assigning AWS Lambda functions to user pool triggers. When you use the ForgotPassword API action, Amazon Cognito invokes any functions that are assigned to the following triggers: <i>pre sign-up</i>, <i>custom message</i>, and <i>user migration</i>. When Amazon Cognito invokes any of these functions, it passes a JSON payload, which the function receives as input. This payload contains a <code>clientMetadata</code> attribute, which provides the data that you assigned to the ClientMetadata parameter in your ForgotPassword request. In your function code in AWS Lambda, you can process the <code>clientMetadata</code> value to enhance your workflow for your specific needs. For more information, see <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools-working-with-aws-lambda-triggers.html">Customizing User Pool Workflows with Lambda Triggers</a> in the <i>Amazon Cognito Developer Guide</i>. <note> Take the following limitations into consideration when you use the ClientMetadata parameter: <ul> <li> Amazon Cognito does not store the ClientMetadata value. This data is available only to AWS Lambda triggers that are assigned to a user pool to support custom workflows. If your user pool configuration does not include triggers, the ClientMetadata parameter serves no purpose. </li> <li> Amazon Cognito does not validate the ClientMetadata value. </li> <li> Amazon Cognito does not encrypt the the ClientMetadata value, so don't use it to provide sensitive information. </li> </ul> </note><br/>AnalyticsMetadata:  The Amazon Pinpoint analytics metadata for collecting metrics for <code>ForgotPassword</code> calls.:<br/>Username:  The user name of the user for whom you want to enter a code to reset a forgotten password.<br/>UserContextData:  Contextual data such as the user's device fingerprint, IP address, or location used for evaluating the risk of an unexpected event by Amazon Cognito advanced security.:<br/>SecretHash:  A keyed-hash message authentication code (HMAC) calculated using the secret key of a user pool client and username plus the client ID in the message.<br/>ClientId:  The ID of the client associated with the user pool.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EncodedData</i> Contextual data such as the user's device fingerprint, IP address, or location used for evaluating the risk of an unexpected event by Amazon Cognito advanced security.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AnalyticsEndpointId</i> The endpoint ID.<br/>
        :return: CodeDeliveryDetails:  The code delivery details returned by the server in response to the request to reset a password.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AttributeName</i> The attribute name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeliveryMedium</i> The delivery medium (email message or phone number).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Destination</i> The destination for the code delivery details.<br/>        """
        pass

    def get_csv_header(self, UserPoolId: str) -> GetCSVHeaderResponse:
        r"""Gets the header information for the .csv file to be used as input for the user import job.

        :param self:
        :param UserPoolId:  The user pool ID for the user pool that the users are to be imported into.<br/>
        :return: CSVHeader:  The header information for the .csv file for the user import job.<br/>UserPoolId:  The user pool ID for the user pool that the users are to be imported into.<br/>        """
        pass

    def get_device(self, DeviceKey: str, AccessToken: str=None) -> GetDeviceResponse:
        r"""Gets the device.

        :param self:
        :param AccessToken:  The access token.<br/>DeviceKey:  The device key.<br/>
        :return: Device:  The device.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeviceLastAuthenticatedDate</i> The date in which the device was last authenticated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeviceLastModifiedDate</i> The last modified date of the device.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeviceCreateDate</i> The creation date of the device.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeviceAttributes</i> The device attributes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeviceKey</i> The device key.<br/>        """
        pass

    def get_group(self, UserPoolId: str, GroupName: str) -> GetGroupResponse:
        r"""Gets a group. Calling this action requires developer credentials.

        :param self:
        :param UserPoolId:  The user pool ID for the user pool.<br/>GroupName:  The name of the group.<br/>
        :return: Group:  The group object for the group.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date the group was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> The date the group was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Precedence</i> A nonnegative integer value that specifies the precedence of this group relative to the other groups that a user can belong to in the user pool. If a user belongs to two or more groups, it is the group with the highest precedence whose role ARN will be used in the <code>cognito:roles</code> and <code>cognito:preferred_role</code> claims in the user's tokens. Groups with higher <code>Precedence</code> values take precedence over groups with lower <code>Precedence</code> values or with null <code>Precedence</code> values. Two groups can have the same <code>Precedence</code> value. If this happens, neither group takes precedence over the other. If two groups with the same <code>Precedence</code> have the same role ARN, that role is used in the <code>cognito:preferred_role</code> claim in tokens for users in each group. If the two groups have different role ARNs, the <code>cognito:preferred_role</code> claim is not set in users' tokens. The default <code>Precedence</code> value is null.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The role ARN for the group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A string containing the description of the group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserPoolId</i> The user pool ID for the user pool.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GroupName</i> The name of the group.<br/>        """
        pass

    def get_identity_provider_by_identifier(self, IdpIdentifier: str, UserPoolId: str) -> GetIdentityProviderByIdentifierResponse:
        r"""Gets the specified identity provider.

        :param self:
        :param IdpIdentifier:  The identity provider ID.<br/>UserPoolId:  The user pool ID.<br/>
        :return: IdentityProvider:  The identity provider object.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date the identity provider was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> The date the identity provider was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IdpIdentifiers</i> A list of identity provider identifiers.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AttributeMapping</i> A mapping of identity provider attributes to standard and custom user pool attributes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProviderDetails</i> The identity provider details. The following list describes the provider detail keys for each identity provider type. <ul> <li> For Google and Login with Amazon: <ul> <li> client_id </li> <li> client_secret </li> <li> authorize_scopes </li> </ul> </li> <li> For Facebook: <ul> <li> client_id </li> <li> client_secret </li> <li> authorize_scopes </li> <li> api_version </li> </ul> </li> <li> For Sign in with Apple: <ul> <li> client_id </li> <li> team_id </li> <li> key_id </li> <li> private_key </li> <li> authorize_scopes </li> </ul> </li> <li> For OIDC providers: <ul> <li> client_id </li> <li> client_secret </li> <li> attributes_request_method </li> <li> oidc_issuer </li> <li> authorize_scopes </li> <li> authorize_url <i>if not available from discovery URL specified by oidc_issuer key</i>  </li> <li> token_url <i>if not available from discovery URL specified by oidc_issuer key</i>  </li> <li> attributes_url <i>if not available from discovery URL specified by oidc_issuer key</i>  </li> <li> jwks_uri <i>if not available from discovery URL specified by oidc_issuer key</i>  </li> </ul> </li> <li> For SAML providers: <ul> <li> MetadataFile OR MetadataURL </li> <li> IDPSignOut <i>optional</i>  </li> </ul> </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProviderType</i> The identity provider type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProviderName</i> The identity provider name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserPoolId</i> The user pool ID.<br/>        """
        pass

    def get_signing_certificate(self, UserPoolId: str) -> GetSigningCertificateResponse:
        r"""This method takes a user pool ID, and returns the signing certificate.

        :param self:
        :param UserPoolId:  The user pool ID.<br/>
        :return: Certificate:  The signing certificate.<br/>        """
        pass

    def get_ui_customization(self, UserPoolId: str, ClientId: str=None) -> GetUICustomizationResponse:
        r"""Gets the UI Customization information for a particular app client's app UI, if there is something set. If nothing is set for the particular client, but there is an existing pool level customization (app <code>clientId</code> will be <code>ALL</code>), then that is returned. If nothing is present, then an empty shape is returned.

        :param self:
        :param ClientId:  The client ID for the client app.<br/>UserPoolId:  The user pool ID for the user pool.<br/>
        :return: UICustomization:  The UI customization information.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The creation date for the UI customization.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> The last-modified date for the UI customization.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CSSVersion</i> The CSS version number.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CSS</i> The CSS values in the UI customization.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImageUrl</i> The logo image for the UI customization.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClientId</i> The client ID for the client app.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserPoolId</i> The user pool ID for the user pool.<br/>        """
        pass

    def get_user(self, AccessToken: str) -> GetUserResponse:
        r"""Gets the user attributes and metadata for a user.

        :param self:
        :param AccessToken:  The access token returned by the server response to get information about the user.<br/>
        :return: UserMFASettingList:  The MFA options that are enabled for the user. The possible values in this list are <code>SMS_MFA</code> and <code>SOFTWARE_TOKEN_MFA</code>.<br/>PreferredMfaSetting:  The user's preferred MFA setting.<br/>MFAOptions:   <i>This response parameter is no longer supported.</i> It provides information only about SMS MFA configurations. It doesn't provide information about TOTP software token MFA configurations. To look up information about either type of MFA configuration, use UserMFASettingList instead.<br/>UserAttributes:  An array of name-value pairs representing user attributes. For custom attributes, you must prepend the <code>custom:</code> prefix to the attribute name.<br/>Username:  The user name of the user you wish to retrieve from the get user request.<br/>        """
        pass

    def get_user_attribute_verification_code(self, AttributeName: str, AccessToken: str, ClientMetadata: ClientMetadataType=None) -> GetUserAttributeVerificationCodeResponse:
        r"""Gets the user attribute verification code for the specified attribute name. <note> This action might generate an SMS text message. Starting June 1, 2021, U.S. telecom carriers require that you register an origination phone number before you can send SMS messages to U.S. phone numbers. If you use SMS text messages in Amazon Cognito, you must register a phone number with <a href="https://console.aws.amazon.com/pinpoint/home/">Amazon Pinpoint</a>. Cognito will use the the registered number automatically. Otherwise, Cognito users that must receive SMS messages might be unable to sign up, activate their accounts, or sign in. If you have never used SMS text messages with Amazon Cognito or any other AWS service, Amazon SNS might place your account in SMS sandbox. In <i> <a href="https://docs.aws.amazon.com/sns/latest/dg/sns-sms-sandbox.html">sandbox mode</a> </i>, you’ll have limitations, such as sending messages to only verified phone numbers. After testing in the sandbox environment, you can move out of the SMS sandbox and into production. For more information, see <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools-sms-userpool-settings.html"> SMS message settings for Cognito User Pools</a> in the <i>Amazon Cognito Developer Guide</i>.  </note>

        :param self:
        :param ClientMetadata:  A map of custom key-value pairs that you can provide as input for any custom workflows that this action triggers.  You create custom workflows by assigning AWS Lambda functions to user pool triggers. When you use the GetUserAttributeVerificationCode API action, Amazon Cognito invokes the function that is assigned to the <i>custom message</i> trigger. When Amazon Cognito invokes this function, it passes a JSON payload, which the function receives as input. This payload contains a <code>clientMetadata</code> attribute, which provides the data that you assigned to the ClientMetadata parameter in your GetUserAttributeVerificationCode request. In your function code in AWS Lambda, you can process the <code>clientMetadata</code> value to enhance your workflow for your specific needs. For more information, see <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools-working-with-aws-lambda-triggers.html">Customizing User Pool Workflows with Lambda Triggers</a> in the <i>Amazon Cognito Developer Guide</i>. <note> Take the following limitations into consideration when you use the ClientMetadata parameter: <ul> <li> Amazon Cognito does not store the ClientMetadata value. This data is available only to AWS Lambda triggers that are assigned to a user pool to support custom workflows. If your user pool configuration does not include triggers, the ClientMetadata parameter serves no purpose. </li> <li> Amazon Cognito does not validate the ClientMetadata value. </li> <li> Amazon Cognito does not encrypt the the ClientMetadata value, so don't use it to provide sensitive information. </li> </ul> </note><br/>AttributeName:  The attribute name returned by the server response to get the user attribute verification code.<br/>AccessToken:  The access token returned by the server response to get the user attribute verification code.<br/>
        :return: CodeDeliveryDetails:  The code delivery details returned by the server in response to the request to get the user attribute verification code.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AttributeName</i> The attribute name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeliveryMedium</i> The delivery medium (email message or phone number).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Destination</i> The destination for the code delivery details.<br/>        """
        pass

    def get_user_pool_mfa_config(self, UserPoolId: str) -> GetUserPoolMfaConfigResponse:
        r"""Gets the user pool multi-factor authentication (MFA) configuration.

        :param self:
        :param UserPoolId:  The user pool ID.<br/>
        :return: MfaConfiguration:  The multi-factor (MFA) configuration. Valid values include: <ul> <li>  <code>OFF</code> MFA will not be used for any users. </li> <li>  <code>ON</code> MFA is required for all users to sign in. </li> <li>  <code>OPTIONAL</code> MFA will be required only for individual users who have an MFA factor enabled. </li> </ul><br/>SoftwareTokenMfaConfiguration:  The software token multi-factor (MFA) configuration.:<br/>SmsMfaConfiguration:  The SMS text message multi-factor (MFA) configuration.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SmsConfiguration</i> The SMS configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SmsConfiguration</b>: The SMS configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SmsAuthenticationMessage</i> The SMS authentication message that will be sent to users with the code they need to sign in. The message must contain the ‘{####}’ placeholder, which will be replaced with the code. If the message is not included, and default message will be used.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ExternalId</i> The external ID is a value that we recommend you use to add security to your IAM role which is used to call Amazon SNS to send SMS messages for your user pool. If you provide an <code>ExternalId</code>, the Cognito User Pool will include it when attempting to assume your IAM role, so that you can set your roles trust policy to require the <code>ExternalID</code>. If you use the Cognito Management Console to create a role for SMS MFA, Cognito will create a role with the required permissions and a trust policy that demonstrates use of the <code>ExternalId</code>. For more information about the <code>ExternalId</code> of a role, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html">How to use an external ID when granting access to your AWS resources to a third party</a> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SnsCallerArn</i> The Amazon Resource Name (ARN) of the Amazon Simple Notification Service (SNS) caller. This is the ARN of the IAM role in your AWS account which Cognito will use to send SMS messages. SMS messages are subject to a <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-email-phone-verification.html">spending limit</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specifies whether software token MFA is enabled.<br/>        """
        pass

    def global_sign_out(self, AccessToken: str) -> GlobalSignOutResponse:
        r"""Signs out users from all devices. It also invalidates all refresh tokens issued to a user. The user's current access and Id tokens remain valid until their expiry. Access and Id tokens expire one hour after they are issued.

        :param self:
        :param AccessToken:  The access token.<br/>
        :return:         """
        pass

    def initiate_auth(self, ClientId: str, AuthFlow: str, AuthParameters: AuthParametersType=None, ClientMetadata: ClientMetadataType=None, AnalyticsMetadata: AnalyticsMetadataType=None, UserContextData: UserContextDataType=None) -> InitiateAuthResponse:
        r"""Initiates the authentication flow. <note> This action might generate an SMS text message. Starting June 1, 2021, U.S. telecom carriers require that you register an origination phone number before you can send SMS messages to U.S. phone numbers. If you use SMS text messages in Amazon Cognito, you must register a phone number with <a href="https://console.aws.amazon.com/pinpoint/home/">Amazon Pinpoint</a>. Cognito will use the the registered number automatically. Otherwise, Cognito users that must receive SMS messages might be unable to sign up, activate their accounts, or sign in. If you have never used SMS text messages with Amazon Cognito or any other AWS service, Amazon SNS might place your account in SMS sandbox. In <i> <a href="https://docs.aws.amazon.com/sns/latest/dg/sns-sms-sandbox.html">sandbox mode</a> </i>, you’ll have limitations, such as sending messages to only verified phone numbers. After testing in the sandbox environment, you can move out of the SMS sandbox and into production. For more information, see <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools-sms-userpool-settings.html"> SMS message settings for Cognito User Pools</a> in the <i>Amazon Cognito Developer Guide</i>.  </note>

        :param self:
        :param UserContextData:  Contextual data such as the user's device fingerprint, IP address, or location used for evaluating the risk of an unexpected event by Amazon Cognito advanced security.:<br/>AnalyticsMetadata:  The Amazon Pinpoint analytics metadata for collecting metrics for <code>InitiateAuth</code> calls.:<br/>ClientId:  The app client ID.<br/>ClientMetadata:  A map of custom key-value pairs that you can provide as input for certain custom workflows that this action triggers. You create custom workflows by assigning AWS Lambda functions to user pool triggers. When you use the InitiateAuth API action, Amazon Cognito invokes the AWS Lambda functions that are specified for various triggers. The ClientMetadata value is passed as input to the functions for only the following triggers: <ul> <li> Pre signup </li> <li> Pre authentication </li> <li> User migration </li> </ul> When Amazon Cognito invokes the functions for these triggers, it passes a JSON payload, which the function receives as input. This payload contains a <code>validationData</code> attribute, which provides the data that you assigned to the ClientMetadata parameter in your InitiateAuth request. In your function code in AWS Lambda, you can process the <code>validationData</code> value to enhance your workflow for your specific needs. When you use the InitiateAuth API action, Amazon Cognito also invokes the functions for the following triggers, but it does not provide the ClientMetadata value as input: <ul> <li> Post authentication </li> <li> Custom message </li> <li> Pre token generation </li> <li> Create auth challenge </li> <li> Define auth challenge </li> <li> Verify auth challenge </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools-working-with-aws-lambda-triggers.html">Customizing User Pool Workflows with Lambda Triggers</a> in the <i>Amazon Cognito Developer Guide</i>. <note> Take the following limitations into consideration when you use the ClientMetadata parameter: <ul> <li> Amazon Cognito does not store the ClientMetadata value. This data is available only to AWS Lambda triggers that are assigned to a user pool to support custom workflows. If your user pool configuration does not include triggers, the ClientMetadata parameter serves no purpose. </li> <li> Amazon Cognito does not validate the ClientMetadata value. </li> <li> Amazon Cognito does not encrypt the the ClientMetadata value, so don't use it to provide sensitive information. </li> </ul> </note><br/>AuthParameters:  The authentication parameters. These are inputs corresponding to the <code>AuthFlow</code> that you are invoking. The required values depend on the value of <code>AuthFlow</code>: <ul> <li> For <code>USER_SRP_AUTH</code>: <code>USERNAME</code> (required), <code>SRP_A</code> (required), <code>SECRET_HASH</code> (required if the app client is configured with a client secret), <code>DEVICE_KEY</code>. </li> <li> For <code>REFRESH_TOKEN_AUTH/REFRESH_TOKEN</code>: <code>REFRESH_TOKEN</code> (required), <code>SECRET_HASH</code> (required if the app client is configured with a client secret), <code>DEVICE_KEY</code>. </li> <li> For <code>CUSTOM_AUTH</code>: <code>USERNAME</code> (required), <code>SECRET_HASH</code> (if app client is configured with client secret), <code>DEVICE_KEY</code>. To start the authentication flow with password verification, include <code>ChallengeName: SRP_A</code> and <code>SRP_A: (The SRP_A Value)</code>. </li> </ul><br/>AuthFlow:  The authentication flow for this call to execute. The API action will depend on this value. For example:  <ul> <li>  <code>REFRESH_TOKEN_AUTH</code> will take in a valid refresh token and return new tokens. </li> <li>  <code>USER_SRP_AUTH</code> will take in <code>USERNAME</code> and <code>SRP_A</code> and return the SRP variables to be used for next challenge execution. </li> <li>  <code>USER_PASSWORD_AUTH</code> will take in <code>USERNAME</code> and <code>PASSWORD</code> and return the next challenge or tokens. </li> </ul> Valid values include: <ul> <li>  <code>USER_SRP_AUTH</code>: Authentication flow for the Secure Remote Password (SRP) protocol. </li> <li>  <code>REFRESH_TOKEN_AUTH</code>/<code>REFRESH_TOKEN</code>: Authentication flow for refreshing the access token and ID token by supplying a valid refresh token. </li> <li>  <code>CUSTOM_AUTH</code>: Custom authentication flow. </li> <li>  <code>USER_PASSWORD_AUTH</code>: Non-SRP authentication flow; USERNAME and PASSWORD are passed directly. If a user migration Lambda trigger is set, this flow will invoke the user migration Lambda if the USERNAME is not found in the user pool.  </li> <li>  <code>ADMIN_USER_PASSWORD_AUTH</code>: Admin-based user password authentication. This replaces the <code>ADMIN_NO_SRP_AUTH</code> authentication flow. In this flow, Cognito receives the password in the request instead of using the SRP process to verify passwords. </li> </ul>  <code>ADMIN_NO_SRP_AUTH</code> is not a valid value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AnalyticsEndpointId</i> The endpoint ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EncodedData</i> Contextual data such as the user's device fingerprint, IP address, or location used for evaluating the risk of an unexpected event by Amazon Cognito advanced security.<br/>
        :return: AuthenticationResult:  The result of the authentication response. This is only returned if the caller does not need to pass another challenge. If the caller does need to pass another challenge before it gets tokens, <code>ChallengeName</code>, <code>ChallengeParameters</code>, and <code>Session</code> are returned.:<br/>ChallengeParameters:  The challenge parameters. These are returned to you in the <code>InitiateAuth</code> response if you need to pass another challenge. The responses in this parameter should be used to compute inputs to the next call (<code>RespondToAuthChallenge</code>).  All challenges require <code>USERNAME</code> and <code>SECRET_HASH</code> (if applicable).<br/>Session:  The session which should be passed both ways in challenge-response calls to the service. If the caller needs to go through another challenge, they return a session with other challenge parameters. This session should be passed as it is to the next <code>RespondToAuthChallenge</code> API call.<br/>ChallengeName:  The name of the challenge which you are responding to with this call. This is returned to you in the <code>AdminInitiateAuth</code> response if you need to pass another challenge. Valid values include the following. Note that all of these challenges require <code>USERNAME</code> and <code>SECRET_HASH</code> (if applicable) in the parameters. <ul> <li>  <code>SMS_MFA</code>: Next challenge is to supply an <code>SMS_MFA_CODE</code>, delivered via SMS. </li> <li>  <code>PASSWORD_VERIFIER</code>: Next challenge is to supply <code>PASSWORD_CLAIM_SIGNATURE</code>, <code>PASSWORD_CLAIM_SECRET_BLOCK</code>, and <code>TIMESTAMP</code> after the client-side SRP calculations. </li> <li>  <code>CUSTOM_CHALLENGE</code>: This is returned if your custom authentication flow determines that the user should pass another challenge before tokens are issued. </li> <li>  <code>DEVICE_SRP_AUTH</code>: If device tracking was enabled on your user pool and the previous challenges were passed, this challenge is returned so that Amazon Cognito can start tracking this device. </li> <li>  <code>DEVICE_PASSWORD_VERIFIER</code>: Similar to <code>PASSWORD_VERIFIER</code>, but for devices only. </li> <li>  <code>NEW_PASSWORD_REQUIRED</code>: For users who are required to change their passwords after successful first login. This challenge should be passed with <code>NEW_PASSWORD</code> and any other required attributes. </li> <li>  <code>MFA_SETUP</code>: For users who are required to setup an MFA factor before they can sign-in. The MFA types enabled for the user pool will be listed in the challenge parameters <code>MFA_CAN_SETUP</code> value.   To setup software token MFA, use the session returned here from <code>InitiateAuth</code> as an input to <code>AssociateSoftwareToken</code>, and use the session returned by <code>VerifySoftwareToken</code> as an input to <code>RespondToAuthChallenge</code> with challenge name <code>MFA_SETUP</code> to complete sign-in. To setup SMS MFA, users will need help from an administrator to add a phone number to their account and then call <code>InitiateAuth</code> again to restart sign-in. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NewDeviceMetadata</i> The new device metadata from an authentication result.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>NewDeviceMetadata</b>: The new device metadata from an authentication result.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IdToken</i> The ID token.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RefreshToken</i> The refresh token.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TokenType</i> The token type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExpiresIn</i> The expiration period of the authentication result in seconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccessToken</i> The access token.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DeviceGroupKey</i> The device group key.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DeviceKey</i> The device key.<br/>        """
        pass

    def list_devices(self, AccessToken: str, Limit: int=None, PaginationToken: str=None) -> ListDevicesResponse:
        r"""Lists the devices.

        :param self:
        :param PaginationToken:  The pagination token for the list request.<br/>Limit:  The limit of the device request.<br/>AccessToken:  The access tokens for the request to list devices.<br/>
        :return: PaginationToken:  The pagination token for the list device response.<br/>Devices:  The devices returned in the list devices response.<br/>        """
        pass

    def list_groups(self, UserPoolId: str, Limit: int=None, NextToken: str=None) -> ListGroupsResponse:
        r"""Lists the groups associated with a user pool. Calling this action requires developer credentials.

        :param self:
        :param NextToken:  An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.<br/>Limit:  The limit of the request to list groups.<br/>UserPoolId:  The user pool ID for the user pool.<br/>
        :return: NextToken:  An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.<br/>Groups:  The group objects for the groups.<br/>        """
        pass

    def list_identity_providers(self, UserPoolId: str, MaxResults: int=None, NextToken: str=None) -> ListIdentityProvidersResponse:
        r"""Lists information about all identity providers for a user pool.

        :param self:
        :param NextToken:  A pagination token.<br/>MaxResults:  The maximum number of identity providers to return.<br/>UserPoolId:  The user pool ID.<br/>
        :return: NextToken:  A pagination token.<br/>Providers:  A list of identity provider objects.<br/>        """
        pass

    def list_resource_servers(self, UserPoolId: str, MaxResults: int=None, NextToken: str=None) -> ListResourceServersResponse:
        r"""Lists the resource servers for a user pool.

        :param self:
        :param NextToken:  A pagination token.<br/>MaxResults:  The maximum number of resource servers to return.<br/>UserPoolId:  The user pool ID for the user pool.<br/>
        :return: NextToken:  A pagination token.<br/>ResourceServers:  The resource servers.<br/>        """
        pass

    def list_tags_for_resource(self, ResourceArn: str) -> ListTagsForResourceResponse:
        r"""Lists the tags that are assigned to an Amazon Cognito user pool. A tag is a label that you can apply to user pools to categorize and manage them in different ways, such as by purpose, owner, environment, or other criteria. You can use this action up to 10 times per second, per account.

        :param self:
        :param ResourceArn:  The Amazon Resource Name (ARN) of the user pool that the tags are assigned to.<br/>
        :return: Tags:  The tags that are assigned to the user pool.<br/>        """
        pass

    def list_user_import_jobs(self, MaxResults: int, UserPoolId: str, PaginationToken: str=None) -> ListUserImportJobsResponse:
        r"""Lists the user import jobs.

        :param self:
        :param PaginationToken:  An identifier that was returned from the previous call to <code>ListUserImportJobs</code>, which can be used to return the next set of import jobs in the list.<br/>MaxResults:  The maximum number of import jobs you want the request to return.<br/>UserPoolId:  The user pool ID for the user pool that the users are being imported into.<br/>
        :return: PaginationToken:  An identifier that can be used to return the next set of user import jobs in the list.<br/>UserImportJobs:  The user import jobs.<br/>        """
        pass

    def list_user_pool_clients(self, UserPoolId: str, MaxResults: int=None, NextToken: str=None) -> ListUserPoolClientsResponse:
        r"""Lists the clients that have been created for the specified user pool.

        :param self:
        :param NextToken:  An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.<br/>MaxResults:  The maximum number of results you want the request to return when listing the user pool clients.<br/>UserPoolId:  The user pool ID for the user pool where you want to list user pool clients.<br/>
        :return: NextToken:  An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.<br/>UserPoolClients:  The user pool clients in the response that lists user pool clients.<br/>        """
        pass

    def list_user_pools(self, MaxResults: int, NextToken: str=None) -> ListUserPoolsResponse:
        r"""Lists the user pools associated with an AWS account.

        :param self:
        :param MaxResults:  The maximum number of results you want the request to return when listing the user pools.<br/>NextToken:  An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.<br/>
        :return: NextToken:  An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.<br/>UserPools:  The user pools from the response to list users.<br/>        """
        pass

    def list_users(self, UserPoolId: str, AttributesToGet: List[AttributeNameType]=None, Limit: int=None, PaginationToken: str=None, Filter: str=None) -> ListUsersResponse:
        r"""Lists the users in the Amazon Cognito user pool.

        :param self:
        :param Filter:  A filter string of the form "<i>AttributeName</i> <i>Filter-Type</i> "<i>AttributeValue</i>"". Quotation marks within the filter string must be escaped using the backslash (\) character. For example, "<code>family_name</code> = \"Reddy\"". <ul> <li>  <i>AttributeName</i>: The name of the attribute to search for. You can only search for one attribute at a time. </li> <li>  <i>Filter-Type</i>: For an exact match, use =, for example, "<code>given_name</code> = \"Jon\"". For a prefix ("starts with") match, use ^=, for example, "<code>given_name</code> ^= \"Jon\"".  </li> <li>  <i>AttributeValue</i>: The attribute value that must be matched for each user. </li> </ul> If the filter string is empty, <code>ListUsers</code> returns all users in the user pool. You can only search for the following standard attributes: <ul> <li>  <code>username</code> (case-sensitive) </li> <li>  <code>email</code>  </li> <li>  <code>phone_number</code>  </li> <li>  <code>name</code>  </li> <li>  <code>given_name</code>  </li> <li>  <code>family_name</code>  </li> <li>  <code>preferred_username</code>  </li> <li>  <code>cognito:user_status</code> (called <b>Status</b> in the Console) (case-insensitive) </li> <li>  <code>status (called <b>Enabled</b> in the Console) (case-sensitive)</code>  </li> <li>  <code>sub</code>  </li> </ul> Custom attributes are not searchable. For more information, see <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/how-to-manage-user-accounts.html#cognito-user-pools-searching-for-users-using-listusers-api">Searching for Users Using the ListUsers API</a> and <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/how-to-manage-user-accounts.html#cognito-user-pools-searching-for-users-listusers-api-examples">Examples of Using the ListUsers API</a> in the <i>Amazon Cognito Developer Guide</i>.<br/>PaginationToken:  An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.<br/>Limit:  Maximum number of users to be returned.<br/>AttributesToGet:  An array of strings, where each string is the name of a user attribute to be returned for each user in the search results. If the array is null, all attributes are returned.<br/>UserPoolId:  The user pool ID for the user pool on which the search should be performed.<br/>
        :return: PaginationToken:  An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.<br/>Users:  The users returned in the request to list users.<br/>        """
        pass

    def list_users_in_group(self, GroupName: str, UserPoolId: str, Limit: int=None, NextToken: str=None) -> ListUsersInGroupResponse:
        r"""Lists the users in the specified group. Calling this action requires developer credentials.

        :param self:
        :param NextToken:  An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.<br/>Limit:  The limit of the request to list users.<br/>GroupName:  The name of the group.<br/>UserPoolId:  The user pool ID for the user pool.<br/>
        :return: NextToken:  An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.<br/>Users:  The users returned in the request to list users.<br/>        """
        pass

    def resend_confirmation_code(self, Username: str, ClientId: str, SecretHash: str=None, UserContextData: UserContextDataType=None, AnalyticsMetadata: AnalyticsMetadataType=None, ClientMetadata: ClientMetadataType=None) -> ResendConfirmationCodeResponse:
        r"""Resends the confirmation (for confirmation of registration) to a specific user in the user pool. <note> This action might generate an SMS text message. Starting June 1, 2021, U.S. telecom carriers require that you register an origination phone number before you can send SMS messages to U.S. phone numbers. If you use SMS text messages in Amazon Cognito, you must register a phone number with <a href="https://console.aws.amazon.com/pinpoint/home/">Amazon Pinpoint</a>. Cognito will use the the registered number automatically. Otherwise, Cognito users that must receive SMS messages might be unable to sign up, activate their accounts, or sign in. If you have never used SMS text messages with Amazon Cognito or any other AWS service, Amazon SNS might place your account in SMS sandbox. In <i> <a href="https://docs.aws.amazon.com/sns/latest/dg/sns-sms-sandbox.html">sandbox mode</a> </i>, you’ll have limitations, such as sending messages to only verified phone numbers. After testing in the sandbox environment, you can move out of the SMS sandbox and into production. For more information, see <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools-sms-userpool-settings.html"> SMS message settings for Cognito User Pools</a> in the <i>Amazon Cognito Developer Guide</i>.  </note>

        :param self:
        :param ClientMetadata:  A map of custom key-value pairs that you can provide as input for any custom workflows that this action triggers.  You create custom workflows by assigning AWS Lambda functions to user pool triggers. When you use the ResendConfirmationCode API action, Amazon Cognito invokes the function that is assigned to the <i>custom message</i> trigger. When Amazon Cognito invokes this function, it passes a JSON payload, which the function receives as input. This payload contains a <code>clientMetadata</code> attribute, which provides the data that you assigned to the ClientMetadata parameter in your ResendConfirmationCode request. In your function code in AWS Lambda, you can process the <code>clientMetadata</code> value to enhance your workflow for your specific needs. For more information, see <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools-working-with-aws-lambda-triggers.html">Customizing User Pool Workflows with Lambda Triggers</a> in the <i>Amazon Cognito Developer Guide</i>. <note> Take the following limitations into consideration when you use the ClientMetadata parameter: <ul> <li> Amazon Cognito does not store the ClientMetadata value. This data is available only to AWS Lambda triggers that are assigned to a user pool to support custom workflows. If your user pool configuration does not include triggers, the ClientMetadata parameter serves no purpose. </li> <li> Amazon Cognito does not validate the ClientMetadata value. </li> <li> Amazon Cognito does not encrypt the the ClientMetadata value, so don't use it to provide sensitive information. </li> </ul> </note><br/>AnalyticsMetadata:  The Amazon Pinpoint analytics metadata for collecting metrics for <code>ResendConfirmationCode</code> calls.:<br/>Username:  The user name of the user to whom you wish to resend a confirmation code.<br/>UserContextData:  Contextual data such as the user's device fingerprint, IP address, or location used for evaluating the risk of an unexpected event by Amazon Cognito advanced security.:<br/>SecretHash:  A keyed-hash message authentication code (HMAC) calculated using the secret key of a user pool client and username plus the client ID in the message.<br/>ClientId:  The ID of the client associated with the user pool.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EncodedData</i> Contextual data such as the user's device fingerprint, IP address, or location used for evaluating the risk of an unexpected event by Amazon Cognito advanced security.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AnalyticsEndpointId</i> The endpoint ID.<br/>
        :return: CodeDeliveryDetails:  The code delivery details returned by the server in response to the request to resend the confirmation code.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AttributeName</i> The attribute name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeliveryMedium</i> The delivery medium (email message or phone number).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Destination</i> The destination for the code delivery details.<br/>        """
        pass

    def respond_to_auth_challenge(self, ChallengeName: str, ClientId: str, Session: str=None, ChallengeResponses: ChallengeResponsesType=None, AnalyticsMetadata: AnalyticsMetadataType=None, UserContextData: UserContextDataType=None, ClientMetadata: ClientMetadataType=None) -> RespondToAuthChallengeResponse:
        r"""Responds to the authentication challenge. <note> This action might generate an SMS text message. Starting June 1, 2021, U.S. telecom carriers require that you register an origination phone number before you can send SMS messages to U.S. phone numbers. If you use SMS text messages in Amazon Cognito, you must register a phone number with <a href="https://console.aws.amazon.com/pinpoint/home/">Amazon Pinpoint</a>. Cognito will use the the registered number automatically. Otherwise, Cognito users that must receive SMS messages might be unable to sign up, activate their accounts, or sign in. If you have never used SMS text messages with Amazon Cognito or any other AWS service, Amazon SNS might place your account in SMS sandbox. In <i> <a href="https://docs.aws.amazon.com/sns/latest/dg/sns-sms-sandbox.html">sandbox mode</a> </i>, you’ll have limitations, such as sending messages to only verified phone numbers. After testing in the sandbox environment, you can move out of the SMS sandbox and into production. For more information, see <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools-sms-userpool-settings.html"> SMS message settings for Cognito User Pools</a> in the <i>Amazon Cognito Developer Guide</i>.  </note>

        :param self:
        :param ClientMetadata:  A map of custom key-value pairs that you can provide as input for any custom workflows that this action triggers.  You create custom workflows by assigning AWS Lambda functions to user pool triggers. When you use the RespondToAuthChallenge API action, Amazon Cognito invokes any functions that are assigned to the following triggers: <i>post authentication</i>, <i>pre token generation</i>, <i>define auth challenge</i>, <i>create auth challenge</i>, and <i>verify auth challenge</i>. When Amazon Cognito invokes any of these functions, it passes a JSON payload, which the function receives as input. This payload contains a <code>clientMetadata</code> attribute, which provides the data that you assigned to the ClientMetadata parameter in your RespondToAuthChallenge request. In your function code in AWS Lambda, you can process the <code>clientMetadata</code> value to enhance your workflow for your specific needs. For more information, see <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools-working-with-aws-lambda-triggers.html">Customizing User Pool Workflows with Lambda Triggers</a> in the <i>Amazon Cognito Developer Guide</i>. <note> Take the following limitations into consideration when you use the ClientMetadata parameter: <ul> <li> Amazon Cognito does not store the ClientMetadata value. This data is available only to AWS Lambda triggers that are assigned to a user pool to support custom workflows. If your user pool configuration does not include triggers, the ClientMetadata parameter serves no purpose. </li> <li> Amazon Cognito does not validate the ClientMetadata value. </li> <li> Amazon Cognito does not encrypt the the ClientMetadata value, so don't use it to provide sensitive information. </li> </ul> </note><br/>UserContextData:  Contextual data such as the user's device fingerprint, IP address, or location used for evaluating the risk of an unexpected event by Amazon Cognito advanced security.:<br/>AnalyticsMetadata:  The Amazon Pinpoint analytics metadata for collecting metrics for <code>RespondToAuthChallenge</code> calls.:<br/>ChallengeResponses:  The challenge responses. These are inputs corresponding to the value of <code>ChallengeName</code>, for example: <note>  <code>SECRET_HASH</code> (if app client is configured with client secret) applies to all inputs below (including <code>SOFTWARE_TOKEN_MFA</code>). </note> <ul> <li>  <code>SMS_MFA</code>: <code>SMS_MFA_CODE</code>, <code>USERNAME</code>. </li> <li>  <code>PASSWORD_VERIFIER</code>: <code>PASSWORD_CLAIM_SIGNATURE</code>, <code>PASSWORD_CLAIM_SECRET_BLOCK</code>, <code>TIMESTAMP</code>, <code>USERNAME</code>. </li> <li>  <code>NEW_PASSWORD_REQUIRED</code>: <code>NEW_PASSWORD</code>, any other required attributes, <code>USERNAME</code>.  </li> <li>  <code>SOFTWARE_TOKEN_MFA</code>: <code>USERNAME</code> and <code>SOFTWARE_TOKEN_MFA_CODE</code> are required attributes. </li> <li>  <code>DEVICE_SRP_AUTH</code> requires <code>USERNAME</code>, <code>DEVICE_KEY</code>, <code>SRP_A</code> (and <code>SECRET_HASH</code>). </li> <li>  <code>DEVICE_PASSWORD_VERIFIER</code> requires everything that <code>PASSWORD_VERIFIER</code> requires plus <code>DEVICE_KEY</code>. </li> <li>  <code>MFA_SETUP</code> requires <code>USERNAME</code>, plus you need to use the session value returned by <code>VerifySoftwareToken</code> in the <code>Session</code> parameter. </li> </ul><br/>Session:  The session which should be passed both ways in challenge-response calls to the service. If <code>InitiateAuth</code> or <code>RespondToAuthChallenge</code> API call determines that the caller needs to go through another challenge, they return a session with other challenge parameters. This session should be passed as it is to the next <code>RespondToAuthChallenge</code> API call.<br/>ChallengeName:  The challenge name. For more information, see <a href="https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html">InitiateAuth</a>.  <code>ADMIN_NO_SRP_AUTH</code> is not a valid value.<br/>ClientId:  The app client ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AnalyticsEndpointId</i> The endpoint ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EncodedData</i> Contextual data such as the user's device fingerprint, IP address, or location used for evaluating the risk of an unexpected event by Amazon Cognito advanced security.<br/>
        :return: AuthenticationResult:  The result returned by the server in response to the request to respond to the authentication challenge.:<br/>ChallengeParameters:  The challenge parameters. For more information, see <a href="https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html">InitiateAuth</a>.<br/>Session:  The session which should be passed both ways in challenge-response calls to the service. If the caller needs to go through another challenge, they return a session with other challenge parameters. This session should be passed as it is to the next <code>RespondToAuthChallenge</code> API call.<br/>ChallengeName:  The challenge name. For more information, see <a href="https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html">InitiateAuth</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NewDeviceMetadata</i> The new device metadata from an authentication result.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>NewDeviceMetadata</b>: The new device metadata from an authentication result.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IdToken</i> The ID token.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RefreshToken</i> The refresh token.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TokenType</i> The token type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExpiresIn</i> The expiration period of the authentication result in seconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccessToken</i> The access token.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DeviceGroupKey</i> The device group key.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DeviceKey</i> The device key.<br/>        """
        pass

    def revoke_token(self, ClientId: str, Token: str, ClientSecret: str=None) -> RevokeTokenResponse:
        r"""Revokes all of the access tokens generated by the specified refresh token. After the token is revoked, you can not use the revoked token to access Cognito authenticated APIs.

        :param self:
        :param ClientSecret:  The secret for the client ID. This is required only if the client ID has a secret.<br/>ClientId:  The client ID for the token that you want to revoke.<br/>Token:  The token that you want to revoke.<br/>
        :return:         """
        pass

    def set_risk_configuration(self, UserPoolId: str, ClientId: str=None, CompromisedCredentialsRiskConfiguration: CompromisedCredentialsRiskConfigurationType=None, AccountTakeoverRiskConfiguration: AccountTakeoverRiskConfigurationType=None, RiskExceptionConfiguration: RiskExceptionConfigurationType=None) -> SetRiskConfigurationResponse:
        r"""Configures actions on detected risks. To delete the risk configuration for <code>UserPoolId</code> or <code>ClientId</code>, pass null values for all four configuration types. To enable Amazon Cognito advanced security features, update the user pool to include the <code>UserPoolAddOns</code> key<code>AdvancedSecurityMode</code>.

        :param self:
        :param RiskExceptionConfiguration:  The configuration to override the risk decision.:<br/>AccountTakeoverRiskConfiguration:  The account takeover risk configuration.:<br/>CompromisedCredentialsRiskConfiguration:  The compromised credentials risk configuration.:<br/>ClientId:  The app client ID. If <code>ClientId</code> is null, then the risk configuration is mapped to <code>userPoolId</code>. When the client ID is null, the same risk configuration is applied to all the clients in the userPool. Otherwise, <code>ClientId</code> is mapped to the client. When the client ID is not null, the user pool configuration is overridden and the risk configuration for the client is used instead.<br/>UserPoolId:  The user pool ID. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Actions</i> The compromised credentials risk configuration actions.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Actions</b>: The compromised credentials risk configuration actions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EventFilter</i> Perform the action for these events. The default is to perform all events if no event filter is specified.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EventAction</i> The event action.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Actions</i> Account takeover risk configuration actions&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Actions</b>: Account takeover risk configuration actions<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NotifyConfiguration</i> The notify configuration used to construct email notifications.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>NotifyConfiguration</b>: The notify configuration used to construct email notifications.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceArn</i> The Amazon Resource Name (ARN) of the identity that is associated with the sending authorization policy. It permits Amazon Cognito to send for the email address specified in the <code>From</code> parameter.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplyTo</i> The destination to which the receiver of an email should reply to.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>From</i> The email address that is sending the email. It must be either individually verified with Amazon SES, or from a domain that has been verified with Amazon SES.<br/>Email template used when a detected risk event is blocked.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>BlockEmail</b>: Email template used when a detected risk event is blocked.Action to take for a low risk.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>LowAction</b>: Action to take for a low risk.&nbsp;&nbsp;&nbsp;&nbsp; <i>SkippedIPRangeList</i> Risk detection is not performed on the IP addresses in the range list. The IP range is in CIDR notation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BlockedIPRangeList</i> Overrides the risk decision to always block the pre-authentication requests. The IP range is in CIDR notation: a compact representation of an IP address and its associated routing prefix.<br/>
        :return: RiskConfiguration:  The risk configuration.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> The last modified date.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RiskExceptionConfiguration</i> The configuration to override the risk decision.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RiskExceptionConfiguration</b>: The configuration to override the risk decision.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccountTakeoverRiskConfiguration</i> The account takeover risk configuration object including the <code>NotifyConfiguration</code> object and <code>Actions</code> to take in the case of an account takeover.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AccountTakeoverRiskConfiguration</b>: The account takeover risk configuration object including the <code>NotifyConfiguration</code> object and <code>Actions</code> to take in the case of an account takeover.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CompromisedCredentialsRiskConfiguration</i> The compromised credentials risk configuration object including the <code>EventFilter</code> and the <code>EventAction</code> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CompromisedCredentialsRiskConfiguration</b>: The compromised credentials risk configuration object including the <code>EventFilter</code> and the <code>EventAction</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClientId</i> The app client ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserPoolId</i> The user pool ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EventFilter</i> Perform the action for these events. The default is to perform all events if no event filter is specified.<br/>The compromised credentials risk configuration actions.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Actions</b>: The compromised credentials risk configuration actions.The notify configuration used to construct email notifications.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>NotifyConfiguration</b>: The notify configuration used to construct email notifications.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SkippedIPRangeList</i> Risk detection is not performed on the IP addresses in the range list. The IP range is in CIDR notation.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BlockedIPRangeList</i> Overrides the risk decision to always block the pre-authentication requests. The IP range is in CIDR notation: a compact representation of an IP address and its associated routing prefix.<br/>        """
        pass

    def set_ui_customization(self, UserPoolId: str, ClientId: str=None, CSS: str=None, ImageFile: ImageFileType=None) -> SetUICustomizationResponse:
        r"""Sets the UI customization information for a user pool's built-in app UI. You can specify app UI customization settings for a single client (with a specific <code>clientId</code>) or for all clients (by setting the <code>clientId</code> to <code>ALL</code>). If you specify <code>ALL</code>, the default configuration will be used for every client that has no UI customization set previously. If you specify UI customization settings for a particular client, it will no longer fall back to the <code>ALL</code> configuration.  <note> To use this API, your user pool must have a domain associated with it. Otherwise, there is no place to host the app's pages, and the service will throw an error. </note>

        :param self:
        :param ImageFile:  The uploaded logo image for the UI customization.<br/>CSS:  The CSS values in the UI customization.<br/>ClientId:  The client ID for the client app.<br/>UserPoolId:  The user pool ID for the user pool.<br/>
        :return: UICustomization:  The UI customization information.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The creation date for the UI customization.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> The last-modified date for the UI customization.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CSSVersion</i> The CSS version number.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CSS</i> The CSS values in the UI customization.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImageUrl</i> The logo image for the UI customization.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClientId</i> The client ID for the client app.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserPoolId</i> The user pool ID for the user pool.<br/>        """
        pass

    def set_user_mfa_preference(self, AccessToken: str, SMSMfaSettings: SMSMfaSettingsType=None, SoftwareTokenMfaSettings: SoftwareTokenMfaSettingsType=None) -> SetUserMFAPreferenceResponse:
        r"""Set the user's multi-factor authentication (MFA) method preference, including which MFA factors are enabled and if any are preferred. Only one factor can be set as preferred. The preferred MFA factor will be used to authenticate a user if multiple factors are enabled. If multiple options are enabled and no preference is set, a challenge to choose an MFA option will be returned during sign in. If an MFA type is enabled for a user, the user will be prompted for MFA during all sign in attempts, unless device tracking is turned on and the device has been trusted. If you would like MFA to be applied selectively based on the assessed risk level of sign in attempts, disable MFA for users and turn on Adaptive Authentication for the user pool.

        :param self:
        :param AccessToken:  The access token for the user.<br/>SoftwareTokenMfaSettings:  The time-based one-time password software token MFA settings.:<br/>SMSMfaSettings:  The SMS text message multi-factor authentication (MFA) settings.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMfa</i> Specifies whether SMS is the preferred MFA method.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specifies whether SMS text message MFA is enabled. If an MFA type is enabled for a user, the user will be prompted for MFA during all sign in attempts, unless device tracking is turned on and the device has been trusted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMfa</i> Specifies whether software token MFA is the preferred MFA method.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specifies whether software token MFA is enabled. If an MFA type is enabled for a user, the user will be prompted for MFA during all sign in attempts, unless device tracking is turned on and the device has been trusted.<br/>
        :return:         """
        pass

    def set_user_pool_mfa_config(self, UserPoolId: str, SmsMfaConfiguration: SmsMfaConfigType=None, SoftwareTokenMfaConfiguration: SoftwareTokenMfaConfigType=None, MfaConfiguration: str=None) -> SetUserPoolMfaConfigResponse:
        r"""Set the user pool multi-factor authentication (MFA) configuration. <note> This action might generate an SMS text message. Starting June 1, 2021, U.S. telecom carriers require that you register an origination phone number before you can send SMS messages to U.S. phone numbers. If you use SMS text messages in Amazon Cognito, you must register a phone number with <a href="https://console.aws.amazon.com/pinpoint/home/">Amazon Pinpoint</a>. Cognito will use the the registered number automatically. Otherwise, Cognito users that must receive SMS messages might be unable to sign up, activate their accounts, or sign in. If you have never used SMS text messages with Amazon Cognito or any other AWS service, Amazon SNS might place your account in SMS sandbox. In <i> <a href="https://docs.aws.amazon.com/sns/latest/dg/sns-sms-sandbox.html">sandbox mode</a> </i>, you’ll have limitations, such as sending messages to only verified phone numbers. After testing in the sandbox environment, you can move out of the SMS sandbox and into production. For more information, see <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools-sms-userpool-settings.html"> SMS message settings for Cognito User Pools</a> in the <i>Amazon Cognito Developer Guide</i>.  </note>

        :param self:
        :param MfaConfiguration:  The MFA configuration. Users who don't have an MFA factor set up won't be able to sign-in if you set the MfaConfiguration value to ‘ON’. See <a href="cognito/latest/developerguide/user-pool-settings-mfa.html">Adding Multi-Factor Authentication (MFA) to a User Pool</a> to learn more. Valid values include: <ul> <li>  <code>OFF</code> MFA will not be used for any users. </li> <li>  <code>ON</code> MFA is required for all users to sign in. </li> <li>  <code>OPTIONAL</code> MFA will be required only for individual users who have an MFA factor enabled. </li> </ul><br/>SoftwareTokenMfaConfiguration:  The software token MFA configuration.:<br/>SmsMfaConfiguration:  The SMS text message MFA configuration.:<br/>UserPoolId:  The user pool ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SmsConfiguration</i> The SMS configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SmsConfiguration</b>: The SMS configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SmsAuthenticationMessage</i> The SMS authentication message that will be sent to users with the code they need to sign in. The message must contain the ‘{####}’ placeholder, which will be replaced with the code. If the message is not included, and default message will be used.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ExternalId</i> The external ID is a value that we recommend you use to add security to your IAM role which is used to call Amazon SNS to send SMS messages for your user pool. If you provide an <code>ExternalId</code>, the Cognito User Pool will include it when attempting to assume your IAM role, so that you can set your roles trust policy to require the <code>ExternalID</code>. If you use the Cognito Management Console to create a role for SMS MFA, Cognito will create a role with the required permissions and a trust policy that demonstrates use of the <code>ExternalId</code>. For more information about the <code>ExternalId</code> of a role, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html">How to use an external ID when granting access to your AWS resources to a third party</a> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SnsCallerArn</i> The Amazon Resource Name (ARN) of the Amazon Simple Notification Service (SNS) caller. This is the ARN of the IAM role in your AWS account which Cognito will use to send SMS messages. SMS messages are subject to a <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-email-phone-verification.html">spending limit</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specifies whether software token MFA is enabled.<br/>
        :return: MfaConfiguration:  The MFA configuration. Valid values include: <ul> <li>  <code>OFF</code> MFA will not be used for any users. </li> <li>  <code>ON</code> MFA is required for all users to sign in. </li> <li>  <code>OPTIONAL</code> MFA will be required only for individual users who have an MFA factor enabled. </li> </ul><br/>SoftwareTokenMfaConfiguration:  The software token MFA configuration.:<br/>SmsMfaConfiguration:  The SMS text message MFA configuration.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SmsConfiguration</i> The SMS configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SmsConfiguration</b>: The SMS configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SmsAuthenticationMessage</i> The SMS authentication message that will be sent to users with the code they need to sign in. The message must contain the ‘{####}’ placeholder, which will be replaced with the code. If the message is not included, and default message will be used.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ExternalId</i> The external ID is a value that we recommend you use to add security to your IAM role which is used to call Amazon SNS to send SMS messages for your user pool. If you provide an <code>ExternalId</code>, the Cognito User Pool will include it when attempting to assume your IAM role, so that you can set your roles trust policy to require the <code>ExternalID</code>. If you use the Cognito Management Console to create a role for SMS MFA, Cognito will create a role with the required permissions and a trust policy that demonstrates use of the <code>ExternalId</code>. For more information about the <code>ExternalId</code> of a role, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html">How to use an external ID when granting access to your AWS resources to a third party</a> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SnsCallerArn</i> The Amazon Resource Name (ARN) of the Amazon Simple Notification Service (SNS) caller. This is the ARN of the IAM role in your AWS account which Cognito will use to send SMS messages. SMS messages are subject to a <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-email-phone-verification.html">spending limit</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specifies whether software token MFA is enabled.<br/>        """
        pass

    def set_user_settings(self, MFAOptions: List[MFAOptionType], AccessToken: str) -> SetUserSettingsResponse:
        r""" <i>This action is no longer supported.</i> You can use it to configure only SMS MFA. You can't use it to configure TOTP software token MFA. To configure either type of MFA, use <a href="https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SetUserMFAPreference.html">SetUserMFAPreference</a> instead.

        :param self:
        :param MFAOptions:  You can use this parameter only to set an SMS configuration that uses SMS for delivery.<br/>AccessToken:  The access token for the set user settings request.<br/>
        :return:         """
        pass

    def sign_up(self, Password: str, Username: str, ClientId: str, SecretHash: str=None, UserAttributes: List[AttributeType]=None, ValidationData: List[AttributeType]=None, AnalyticsMetadata: AnalyticsMetadataType=None, UserContextData: UserContextDataType=None, ClientMetadata: ClientMetadataType=None) -> SignUpResponse:
        r"""Registers the user in the specified user pool and creates a user name, password, and user attributes. <note> This action might generate an SMS text message. Starting June 1, 2021, U.S. telecom carriers require that you register an origination phone number before you can send SMS messages to U.S. phone numbers. If you use SMS text messages in Amazon Cognito, you must register a phone number with <a href="https://console.aws.amazon.com/pinpoint/home/">Amazon Pinpoint</a>. Cognito will use the the registered number automatically. Otherwise, Cognito users that must receive SMS messages might be unable to sign up, activate their accounts, or sign in. If you have never used SMS text messages with Amazon Cognito or any other AWS service, Amazon SNS might place your account in SMS sandbox. In <i> <a href="https://docs.aws.amazon.com/sns/latest/dg/sns-sms-sandbox.html">sandbox mode</a> </i>, you’ll have limitations, such as sending messages to only verified phone numbers. After testing in the sandbox environment, you can move out of the SMS sandbox and into production. For more information, see <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools-sms-userpool-settings.html"> SMS message settings for Cognito User Pools</a> in the <i>Amazon Cognito Developer Guide</i>.  </note>

        :param self:
        :param ClientMetadata:  A map of custom key-value pairs that you can provide as input for any custom workflows that this action triggers.  You create custom workflows by assigning AWS Lambda functions to user pool triggers. When you use the SignUp API action, Amazon Cognito invokes any functions that are assigned to the following triggers: <i>pre sign-up</i>, <i>custom message</i>, and <i>post confirmation</i>. When Amazon Cognito invokes any of these functions, it passes a JSON payload, which the function receives as input. This payload contains a <code>clientMetadata</code> attribute, which provides the data that you assigned to the ClientMetadata parameter in your SignUp request. In your function code in AWS Lambda, you can process the <code>clientMetadata</code> value to enhance your workflow for your specific needs. For more information, see <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools-working-with-aws-lambda-triggers.html">Customizing User Pool Workflows with Lambda Triggers</a> in the <i>Amazon Cognito Developer Guide</i>. <note> Take the following limitations into consideration when you use the ClientMetadata parameter: <ul> <li> Amazon Cognito does not store the ClientMetadata value. This data is available only to AWS Lambda triggers that are assigned to a user pool to support custom workflows. If your user pool configuration does not include triggers, the ClientMetadata parameter serves no purpose. </li> <li> Amazon Cognito does not validate the ClientMetadata value. </li> <li> Amazon Cognito does not encrypt the the ClientMetadata value, so don't use it to provide sensitive information. </li> </ul> </note><br/>UserContextData:  Contextual data such as the user's device fingerprint, IP address, or location used for evaluating the risk of an unexpected event by Amazon Cognito advanced security.:<br/>AnalyticsMetadata:  The Amazon Pinpoint analytics metadata for collecting metrics for <code>SignUp</code> calls.:<br/>ValidationData:  The validation data in the request to register a user.<br/>UserAttributes:  An array of name-value pairs representing user attributes. For custom attributes, you must prepend the <code>custom:</code> prefix to the attribute name.<br/>Password:  The password of the user you wish to register.<br/>Username:  The user name of the user you wish to register.<br/>SecretHash:  A keyed-hash message authentication code (HMAC) calculated using the secret key of a user pool client and username plus the client ID in the message.<br/>ClientId:  The ID of the client associated with the user pool.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AnalyticsEndpointId</i> The endpoint ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EncodedData</i> Contextual data such as the user's device fingerprint, IP address, or location used for evaluating the risk of an unexpected event by Amazon Cognito advanced security.<br/>
        :return: UserSub:  The UUID of the authenticated user. This is not the same as <code>username</code>.<br/>CodeDeliveryDetails:  The code delivery details returned by the server response to the user registration request.:<br/>UserConfirmed:  A response from the server indicating that a user registration has been confirmed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AttributeName</i> The attribute name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeliveryMedium</i> The delivery medium (email message or phone number).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Destination</i> The destination for the code delivery details.<br/>        """
        pass

    def start_user_import_job(self, JobId: str, UserPoolId: str) -> StartUserImportJobResponse:
        r"""Starts the user import.

        :param self:
        :param JobId:  The job ID for the user import job.<br/>UserPoolId:  The user pool ID for the user pool that the users are being imported into.<br/>
        :return: UserImportJob:  The job object that represents the user import job.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CompletionMessage</i> The message returned when the user import job is completed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FailedUsers</i> The number of users that could not be imported.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SkippedUsers</i> The number of users that were skipped.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImportedUsers</i> The number of users that were successfully imported.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudWatchLogsRoleArn</i> The role ARN for the Amazon CloudWatch Logging role for the user import job. For more information, see "Creating the CloudWatch Logs IAM Role" in the Amazon Cognito Developer Guide.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the user import job. One of the following: <ul> <li>  <code>Created</code> - The job was created but not started. </li> <li>  <code>Pending</code> - A transition state. You have started the job, but it has not begun importing users yet. </li> <li>  <code>InProgress</code> - The job has started, and users are being imported. </li> <li>  <code>Stopping</code> - You have stopped the job, but the job has not stopped importing users yet. </li> <li>  <code>Stopped</code> - You have stopped the job, and the job has stopped importing users. </li> <li>  <code>Succeeded</code> - The job has completed successfully. </li> <li>  <code>Failed</code> - The job has stopped due to an error. </li> <li>  <code>Expired</code> - You created a job, but did not start the job within 24-48 hours. All data associated with the job was deleted, and the job cannot be started. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CompletionDate</i> The date when the user import job was completed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StartDate</i> The date when the user import job was started.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date the user import job was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreSignedUrl</i> The pre-signed URL to be used to upload the <code>.csv</code> file.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserPoolId</i> The user pool ID for the user pool that the users are being imported into.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobId</i> The job ID for the user import job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobName</i> The job name for the user import job.<br/>        """
        pass

    def stop_user_import_job(self, JobId: str, UserPoolId: str) -> StopUserImportJobResponse:
        r"""Stops the user import job.

        :param self:
        :param JobId:  The job ID for the user import job.<br/>UserPoolId:  The user pool ID for the user pool that the users are being imported into.<br/>
        :return: UserImportJob:  The job object that represents the user import job.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CompletionMessage</i> The message returned when the user import job is completed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FailedUsers</i> The number of users that could not be imported.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SkippedUsers</i> The number of users that were skipped.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImportedUsers</i> The number of users that were successfully imported.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudWatchLogsRoleArn</i> The role ARN for the Amazon CloudWatch Logging role for the user import job. For more information, see "Creating the CloudWatch Logs IAM Role" in the Amazon Cognito Developer Guide.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the user import job. One of the following: <ul> <li>  <code>Created</code> - The job was created but not started. </li> <li>  <code>Pending</code> - A transition state. You have started the job, but it has not begun importing users yet. </li> <li>  <code>InProgress</code> - The job has started, and users are being imported. </li> <li>  <code>Stopping</code> - You have stopped the job, but the job has not stopped importing users yet. </li> <li>  <code>Stopped</code> - You have stopped the job, and the job has stopped importing users. </li> <li>  <code>Succeeded</code> - The job has completed successfully. </li> <li>  <code>Failed</code> - The job has stopped due to an error. </li> <li>  <code>Expired</code> - You created a job, but did not start the job within 24-48 hours. All data associated with the job was deleted, and the job cannot be started. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CompletionDate</i> The date when the user import job was completed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StartDate</i> The date when the user import job was started.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date the user import job was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreSignedUrl</i> The pre-signed URL to be used to upload the <code>.csv</code> file.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserPoolId</i> The user pool ID for the user pool that the users are being imported into.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobId</i> The job ID for the user import job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobName</i> The job name for the user import job.<br/>        """
        pass

    def tag_resource(self, Tags: UserPoolTagsType, ResourceArn: str) -> TagResourceResponse:
        r"""Assigns a set of tags to an Amazon Cognito user pool. A tag is a label that you can use to categorize and manage user pools in different ways, such as by purpose, owner, environment, or other criteria. Each tag consists of a key and value, both of which you define. A key is a general category for more specific values. For example, if you have two versions of a user pool, one for testing and another for production, you might assign an <code>Environment</code> tag key to both user pools. The value of this key might be <code>Test</code> for one user pool and <code>Production</code> for the other. Tags are useful for cost tracking and access control. You can activate your tags so that they appear on the Billing and Cost Management console, where you can track the costs associated with your user pools. In an IAM policy, you can constrain permissions for user pools based on specific tags or tag values. You can use this action up to 5 times per second, per account. A user pool can have as many as 50 tags.

        :param self:
        :param Tags:  The tags to assign to the user pool.<br/>ResourceArn:  The Amazon Resource Name (ARN) of the user pool to assign the tags to.<br/>
        :return:         """
        pass

    def untag_resource(self, TagKeys: List[TagKeysType], ResourceArn: str) -> UntagResourceResponse:
        r"""Removes the specified tags from an Amazon Cognito user pool. You can use this action up to 5 times per second, per account

        :param self:
        :param TagKeys:  The keys of the tags to remove from the user pool.<br/>ResourceArn:  The Amazon Resource Name (ARN) of the user pool that the tags are assigned to.<br/>
        :return:         """
        pass

    def update_auth_event_feedback(self, FeedbackValue: str, FeedbackToken: str, EventId: str, Username: str, UserPoolId: str) -> UpdateAuthEventFeedbackResponse:
        r"""Provides the feedback for an authentication event whether it was from a valid user or not. This feedback is used for improving the risk evaluation decision for the user pool as part of Amazon Cognito advanced security.

        :param self:
        :param FeedbackValue:  The authentication event feedback value.<br/>FeedbackToken:  The feedback token.<br/>EventId:  The event ID.<br/>Username:  The user pool username.<br/>UserPoolId:  The user pool ID.<br/>
        :return:         """
        pass

    def update_device_status(self, DeviceKey: str, AccessToken: str, DeviceRememberedStatus: str=None) -> UpdateDeviceStatusResponse:
        r"""Updates the device status.

        :param self:
        :param DeviceRememberedStatus:  The status of whether a device is remembered.<br/>DeviceKey:  The device key.<br/>AccessToken:  The access token.<br/>
        :return:         """
        pass

    def update_group(self, UserPoolId: str, GroupName: str, Description: str=None, RoleArn: str=None, Precedence: int=None) -> UpdateGroupResponse:
        r"""Updates the specified group with the specified attributes. Calling this action requires developer credentials. <important> If you don't provide a value for an attribute, it will be set to the default value. </important>

        :param self:
        :param Precedence:  The new precedence value for the group. For more information about this parameter, see <a href="https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateGroup.html">CreateGroup</a>.<br/>RoleArn:  The new role ARN for the group. This is used for setting the <code>cognito:roles</code> and <code>cognito:preferred_role</code> claims in the token.<br/>Description:  A string containing the new description of the group.<br/>UserPoolId:  The user pool ID for the user pool.<br/>GroupName:  The name of the group.<br/>
        :return: Group:  The group object for the group.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date the group was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> The date the group was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Precedence</i> A nonnegative integer value that specifies the precedence of this group relative to the other groups that a user can belong to in the user pool. If a user belongs to two or more groups, it is the group with the highest precedence whose role ARN will be used in the <code>cognito:roles</code> and <code>cognito:preferred_role</code> claims in the user's tokens. Groups with higher <code>Precedence</code> values take precedence over groups with lower <code>Precedence</code> values or with null <code>Precedence</code> values. Two groups can have the same <code>Precedence</code> value. If this happens, neither group takes precedence over the other. If two groups with the same <code>Precedence</code> have the same role ARN, that role is used in the <code>cognito:preferred_role</code> claim in tokens for users in each group. If the two groups have different role ARNs, the <code>cognito:preferred_role</code> claim is not set in users' tokens. The default <code>Precedence</code> value is null.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The role ARN for the group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A string containing the description of the group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserPoolId</i> The user pool ID for the user pool.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GroupName</i> The name of the group.<br/>        """
        pass

    def update_identity_provider(self, ProviderName: str, UserPoolId: str, ProviderDetails: ProviderDetailsType=None, AttributeMapping: AttributeMappingType=None, IdpIdentifiers: List[IdpIdentifierType]=None) -> UpdateIdentityProviderResponse:
        r"""Updates identity provider information for a user pool.

        :param self:
        :param IdpIdentifiers:  A list of identity provider identifiers.<br/>AttributeMapping:  The identity provider attribute mapping to be changed.<br/>ProviderDetails:  The identity provider details to be updated, such as <code>MetadataURL</code> and <code>MetadataFile</code>.<br/>ProviderName:  The identity provider name.<br/>UserPoolId:  The user pool ID.<br/>
        :return: IdentityProvider:  The identity provider object.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date the identity provider was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> The date the identity provider was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IdpIdentifiers</i> A list of identity provider identifiers.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AttributeMapping</i> A mapping of identity provider attributes to standard and custom user pool attributes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProviderDetails</i> The identity provider details. The following list describes the provider detail keys for each identity provider type. <ul> <li> For Google and Login with Amazon: <ul> <li> client_id </li> <li> client_secret </li> <li> authorize_scopes </li> </ul> </li> <li> For Facebook: <ul> <li> client_id </li> <li> client_secret </li> <li> authorize_scopes </li> <li> api_version </li> </ul> </li> <li> For Sign in with Apple: <ul> <li> client_id </li> <li> team_id </li> <li> key_id </li> <li> private_key </li> <li> authorize_scopes </li> </ul> </li> <li> For OIDC providers: <ul> <li> client_id </li> <li> client_secret </li> <li> attributes_request_method </li> <li> oidc_issuer </li> <li> authorize_scopes </li> <li> authorize_url <i>if not available from discovery URL specified by oidc_issuer key</i>  </li> <li> token_url <i>if not available from discovery URL specified by oidc_issuer key</i>  </li> <li> attributes_url <i>if not available from discovery URL specified by oidc_issuer key</i>  </li> <li> jwks_uri <i>if not available from discovery URL specified by oidc_issuer key</i>  </li> </ul> </li> <li> For SAML providers: <ul> <li> MetadataFile OR MetadataURL </li> <li> IDPSignOut <i>optional</i>  </li> </ul> </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProviderType</i> The identity provider type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProviderName</i> The identity provider name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserPoolId</i> The user pool ID.<br/>        """
        pass

    def update_resource_server(self, Name: str, Identifier: str, UserPoolId: str, Scopes: List[ResourceServerScopeType]=None) -> UpdateResourceServerResponse:
        r"""Updates the name and scopes of resource server. All other fields are read-only. <important> If you don't provide a value for an attribute, it will be set to the default value. </important>

        :param self:
        :param Scopes:  The scope values to be set for the resource server.<br/>Name:  The name of the resource server.<br/>Identifier:  The identifier for the resource server.<br/>UserPoolId:  The user pool ID for the user pool.<br/>
        :return: ResourceServer:  The resource server.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Scopes</i> A list of scopes that are defined for the resource server.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the resource server.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Identifier</i> The identifier for the resource server.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserPoolId</i> The user pool ID for the user pool that hosts the resource server.<br/>        """
        pass

    def update_user_attributes(self, AccessToken: str, UserAttributes: List[AttributeType], ClientMetadata: ClientMetadataType=None) -> UpdateUserAttributesResponse:
        r"""Allows a user to update a specific attribute (one at a time). <note> This action might generate an SMS text message. Starting June 1, 2021, U.S. telecom carriers require that you register an origination phone number before you can send SMS messages to U.S. phone numbers. If you use SMS text messages in Amazon Cognito, you must register a phone number with <a href="https://console.aws.amazon.com/pinpoint/home/">Amazon Pinpoint</a>. Cognito will use the the registered number automatically. Otherwise, Cognito users that must receive SMS messages might be unable to sign up, activate their accounts, or sign in. If you have never used SMS text messages with Amazon Cognito or any other AWS service, Amazon SNS might place your account in SMS sandbox. In <i> <a href="https://docs.aws.amazon.com/sns/latest/dg/sns-sms-sandbox.html">sandbox mode</a> </i>, you’ll have limitations, such as sending messages to only verified phone numbers. After testing in the sandbox environment, you can move out of the SMS sandbox and into production. For more information, see <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools-sms-userpool-settings.html"> SMS message settings for Cognito User Pools</a> in the <i>Amazon Cognito Developer Guide</i>.  </note>

        :param self:
        :param ClientMetadata:  A map of custom key-value pairs that you can provide as input for any custom workflows that this action triggers.  You create custom workflows by assigning AWS Lambda functions to user pool triggers. When you use the UpdateUserAttributes API action, Amazon Cognito invokes the function that is assigned to the <i>custom message</i> trigger. When Amazon Cognito invokes this function, it passes a JSON payload, which the function receives as input. This payload contains a <code>clientMetadata</code> attribute, which provides the data that you assigned to the ClientMetadata parameter in your UpdateUserAttributes request. In your function code in AWS Lambda, you can process the <code>clientMetadata</code> value to enhance your workflow for your specific needs. For more information, see <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools-working-with-aws-lambda-triggers.html">Customizing User Pool Workflows with Lambda Triggers</a> in the <i>Amazon Cognito Developer Guide</i>. <note> Take the following limitations into consideration when you use the ClientMetadata parameter: <ul> <li> Amazon Cognito does not store the ClientMetadata value. This data is available only to AWS Lambda triggers that are assigned to a user pool to support custom workflows. If your user pool configuration does not include triggers, the ClientMetadata parameter serves no purpose. </li> <li> Amazon Cognito does not validate the ClientMetadata value. </li> <li> Amazon Cognito does not encrypt the the ClientMetadata value, so don't use it to provide sensitive information. </li> </ul> </note><br/>AccessToken:  The access token for the request to update user attributes.<br/>UserAttributes:  An array of name-value pairs representing user attributes. For custom attributes, you must prepend the <code>custom:</code> prefix to the attribute name.<br/>
        :return: CodeDeliveryDetailsList:  The code delivery details list from the server for the request to update user attributes.<br/>        """
        pass

    def update_user_pool(self, UserPoolId: str, Policies: UserPoolPolicyType=None, LambdaConfig: LambdaConfigType=None, AutoVerifiedAttributes: List[VerifiedAttributeType]=None, SmsVerificationMessage: str=None, EmailVerificationMessage: str=None, EmailVerificationSubject: str=None, VerificationMessageTemplate: VerificationMessageTemplateType=None, SmsAuthenticationMessage: str=None, MfaConfiguration: str=None, DeviceConfiguration: DeviceConfigurationType=None, EmailConfiguration: EmailConfigurationType=None, SmsConfiguration: SmsConfigurationType=None, UserPoolTags: UserPoolTagsType=None, AdminCreateUserConfig: AdminCreateUserConfigType=None, UserPoolAddOns: UserPoolAddOnsType=None, AccountRecoverySetting: AccountRecoverySettingType=None) -> UpdateUserPoolResponse:
        r"""Updates the specified user pool with the specified attributes. You can get a list of the current user pool settings using <a href="https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_DescribeUserPool.html">DescribeUserPool</a>. If you don't provide a value for an attribute, it will be set to the default value. <note> This action might generate an SMS text message. Starting June 1, 2021, U.S. telecom carriers require that you register an origination phone number before you can send SMS messages to U.S. phone numbers. If you use SMS text messages in Amazon Cognito, you must register a phone number with <a href="https://console.aws.amazon.com/pinpoint/home/">Amazon Pinpoint</a>. Cognito will use the the registered number automatically. Otherwise, Cognito users that must receive SMS messages might be unable to sign up, activate their accounts, or sign in. If you have never used SMS text messages with Amazon Cognito or any other AWS service, Amazon SNS might place your account in SMS sandbox. In <i> <a href="https://docs.aws.amazon.com/sns/latest/dg/sns-sms-sandbox.html">sandbox mode</a> </i>, you’ll have limitations, such as sending messages to only verified phone numbers. After testing in the sandbox environment, you can move out of the SMS sandbox and into production. For more information, see <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools-sms-userpool-settings.html"> SMS message settings for Cognito User Pools</a> in the <i>Amazon Cognito Developer Guide</i>.  </note>

        :param self:
        :param AccountRecoverySetting:  Use this setting to define which verified available method a user can use to recover their password when they call <code>ForgotPassword</code>. It allows you to define a preferred method when a user has more than one method available. With this setting, SMS does not qualify for a valid password recovery mechanism if the user also has SMS MFA enabled. In the absence of this setting, Cognito uses the legacy behavior to determine the recovery method where SMS is preferred over email.:<br/>UserPoolAddOns:  Used to enable advanced security risk detection. Set the key <code>AdvancedSecurityMode</code> to the value "AUDIT".:<br/>AdminCreateUserConfig:  The configuration for <code>AdminCreateUser</code> requests.:<br/>UserPoolTags:  The tag keys and values to assign to the user pool. A tag is a label that you can use to categorize and manage user pools in different ways, such as by purpose, owner, environment, or other criteria.<br/>SmsConfiguration:  SMS configuration.:<br/>EmailConfiguration:  Email configuration.:<br/>DeviceConfiguration:  Device configuration.:<br/>MfaConfiguration:  Can be one of the following values: <ul> <li>  <code>OFF</code> - MFA tokens are not required and cannot be specified during user registration. </li> <li>  <code>ON</code> - MFA tokens are required for all user registrations. You can only specify ON when you are initially creating a user pool. You can use the <a href="https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SetUserPoolMfaConfig.html">SetUserPoolMfaConfig</a> API operation to turn MFA "ON" for existing user pools.  </li> <li>  <code>OPTIONAL</code> - Users have the option when registering to create an MFA token. </li> </ul><br/>SmsAuthenticationMessage:  The contents of the SMS authentication message.<br/>VerificationMessageTemplate:  The template for verification messages.:<br/>EmailVerificationSubject:  The subject of the email verification message.<br/>EmailVerificationMessage:  The contents of the email verification message.<br/>SmsVerificationMessage:  A container with information about the SMS verification message.<br/>AutoVerifiedAttributes:  The attributes that are automatically verified when the Amazon Cognito service makes a request to update user pools.<br/>LambdaConfig:  The AWS Lambda configuration information from the request to update the user pool.:<br/>Policies:  A container with the policies you wish to update in a user pool.:<br/>UserPoolId:  The user pool ID for the user pool you want to update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PasswordPolicy</i> The password policy.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PasswordPolicy</b>: The password policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TemporaryPasswordValidityDays</i> In the password policy you have set, refers to the number of days a temporary password is valid. If the user does not sign-in during this time, their password will need to be reset by an administrator. <note> When you set <code>TemporaryPasswordValidityDays</code> for a user pool, you will no longer be able to set the deprecated <code>UnusedAccountValidityDays</code> value for that user pool. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RequireSymbols</i> In the password policy that you have set, refers to whether you have required users to use at least one symbol in their password.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RequireNumbers</i> In the password policy that you have set, refers to whether you have required users to use at least one number in their password.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RequireLowercase</i> In the password policy that you have set, refers to whether you have required users to use at least one lowercase letter in their password.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RequireUppercase</i> In the password policy that you have set, refers to whether you have required users to use at least one uppercase letter in their password.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MinimumLength</i> The minimum length of the password policy that you have set. Cannot be less than 6.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KMSKeyID</i> The Amazon Resource Name of Key Management Service <a href="/kms/latest/developerguide/concepts.html#master_keys">Customer master keys</a> . Amazon Cognito uses the key to encrypt codes and temporary passwords sent to <code>CustomEmailSender</code> and <code>CustomSMSSender</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomEmailSender</i> A custom email sender AWS Lambda trigger.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CustomEmailSender</b>: A custom email sender AWS Lambda trigger.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomSMSSender</i> A custom SMS sender AWS Lambda trigger.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CustomSMSSender</b>: A custom SMS sender AWS Lambda trigger.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserMigration</i> The user migration Lambda config type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreTokenGeneration</i> A Lambda trigger that is invoked before token generation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VerifyAuthChallengeResponse</i> Verifies the authentication challenge response.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreateAuthChallenge</i> Creates an authentication challenge.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefineAuthChallenge</i> Defines the authentication challenge.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PostAuthentication</i> A post-authentication AWS Lambda trigger.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreAuthentication</i> A pre-authentication AWS Lambda trigger.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PostConfirmation</i> A post-confirmation AWS Lambda trigger.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomMessage</i> A custom Message AWS Lambda trigger.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreSignUp</i> A pre-registration AWS Lambda trigger.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LambdaArn</i> The Lambda Amazon Resource Name of the Lambda function that Amazon Cognito triggers to send SMS notifications to users.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LambdaVersion</i> The Lambda version represents the signature of the "request" attribute in the "event" information Amazon Cognito passes to your custom SMS Lambda function. The only supported value is <code>V1_0</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LambdaArn</i> The Lambda Amazon Resource Name of the Lambda function that Amazon Cognito triggers to send email notifications to users.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LambdaVersion</i> The Lambda version represents the signature of the "request" attribute in the "event" information Amazon Cognito passes to your custom email Lambda function. The only supported value is <code>V1_0</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultEmailOption</i> The default email option.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EmailSubjectByLink</i> The subject line for the email message template for sending a confirmation link to the user. EmailSubjectByLink is allowed only <a href="https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_EmailConfigurationType.html#CognitoUserPools-Type-EmailConfigurationType-EmailSendingAccount"> EmailSendingAccount</a> is DEVELOPER.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EmailMessageByLink</i> The email message template for sending a confirmation link to the user. EmailMessageByLink is allowed only if <a href="https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_EmailConfigurationType.html#CognitoUserPools-Type-EmailConfigurationType-EmailSendingAccount"> EmailSendingAccount</a> is DEVELOPER.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EmailSubject</i> The subject line for the email message template. EmailSubject is allowed only if <a href="https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_EmailConfigurationType.html#CognitoUserPools-Type-EmailConfigurationType-EmailSendingAccount">EmailSendingAccount</a> is DEVELOPER. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EmailMessage</i> The email message template. EmailMessage is allowed only if <a href="https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_EmailConfigurationType.html#CognitoUserPools-Type-EmailConfigurationType-EmailSendingAccount"> EmailSendingAccount</a> is DEVELOPER. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SmsMessage</i> The SMS message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeviceOnlyRememberedOnUserPrompt</i> If true, a device is only remembered on user prompt.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ChallengeRequiredOnNewDevice</i> Indicates whether a challenge is required on a new device. Only applicable to a new device.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConfigurationSet</i> The set of configuration rules that can be applied to emails sent using Amazon SES. A configuration set is applied to an email by including a reference to the configuration set in the headers of the email. Once applied, all of the rules in that configuration set are applied to the email. Configuration sets can be used to apply the following types of rules to emails:  <ul> <li> Event publishing – Amazon SES can track the number of send, delivery, open, click, bounce, and complaint events for each email sent. Use event publishing to send information about these events to other AWS services such as SNS and CloudWatch. </li> <li> IP pool management – When leasing dedicated IP addresses with Amazon SES, you can create groups of IP addresses, called dedicated IP pools. You can then associate the dedicated IP pools with configuration sets. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>From</i> Identifies either the sender’s email address or the sender’s name with their email address. For example, <code>testuser@example.com</code> or <code>Test User &lt;testuser@example.com&gt;</code>. This address will appear before the body of the email.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EmailSendingAccount</i> Specifies whether Amazon Cognito emails your users by using its built-in email functionality or your Amazon SES email configuration. Specify one of the following values: <dl> <dt>COGNITO_DEFAULT</dt> <dd> When Amazon Cognito emails your users, it uses its built-in email functionality. When you use the default option, Amazon Cognito allows only a limited number of emails each day for your user pool. For typical production environments, the default email limit is below the required delivery volume. To achieve a higher delivery volume, specify DEVELOPER to use your Amazon SES email configuration. To look up the email delivery limit for the default option, see <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/limits.html">Limits in Amazon Cognito</a> in the <i>Amazon Cognito Developer Guide</i>. The default FROM address is no-reply@verificationemail.com. To customize the FROM address, provide the ARN of an Amazon SES verified email address for the <code>SourceArn</code> parameter.  If EmailSendingAccount is COGNITO_DEFAULT, the following parameters aren't allowed: <ul> <li> EmailVerificationMessage </li> <li> EmailVerificationSubject </li> <li> InviteMessageTemplate.EmailMessage </li> <li> InviteMessageTemplate.EmailSubject </li> <li> VerificationMessageTemplate.EmailMessage </li> <li> VerificationMessageTemplate.EmailMessageByLink </li> <li> VerificationMessageTemplate.EmailSubject, </li> <li> VerificationMessageTemplate.EmailSubjectByLink </li> </ul> <note> DEVELOPER EmailSendingAccount is required. </note> </dd> <dt>DEVELOPER</dt> <dd> When Amazon Cognito emails your users, it uses your Amazon SES configuration. Amazon Cognito calls Amazon SES on your behalf to send email from your verified email address. When you use this option, the email delivery limits are the same limits that apply to your Amazon SES verified email address in your AWS account. If you use this option, you must provide the ARN of an Amazon SES verified email address for the <code>SourceArn</code> parameter. Before Amazon Cognito can email your users, it requires additional permissions to call Amazon SES on your behalf. When you update your user pool with this option, Amazon Cognito creates a <i>service-linked role</i>, which is a type of IAM role, in your AWS account. This role contains the permissions that allow Amazon Cognito to access Amazon SES and send email messages with your address. For more information about the service-linked role that Amazon Cognito creates, see <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/using-service-linked-roles.html">Using Service-Linked Roles for Amazon Cognito</a> in the <i>Amazon Cognito Developer Guide</i>. </dd> </dl><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplyToEmailAddress</i> The destination to which the receiver of the email should reply to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceArn</i> The Amazon Resource Name (ARN) of a verified email address in Amazon SES. This email address is used in one of the following ways, depending on the value that you specify for the <code>EmailSendingAccount</code> parameter: <ul> <li> If you specify <code>COGNITO_DEFAULT</code>, Amazon Cognito uses this address as the custom FROM address when it emails your users by using its built-in email account. </li> <li> If you specify <code>DEVELOPER</code>, Amazon Cognito emails your users with this address by calling Amazon SES on your behalf. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExternalId</i> The external ID is a value that we recommend you use to add security to your IAM role which is used to call Amazon SNS to send SMS messages for your user pool. If you provide an <code>ExternalId</code>, the Cognito User Pool will include it when attempting to assume your IAM role, so that you can set your roles trust policy to require the <code>ExternalID</code>. If you use the Cognito Management Console to create a role for SMS MFA, Cognito will create a role with the required permissions and a trust policy that demonstrates use of the <code>ExternalId</code>. For more information about the <code>ExternalId</code> of a role, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html">How to use an external ID when granting access to your AWS resources to a third party</a> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnsCallerArn</i> The Amazon Resource Name (ARN) of the Amazon Simple Notification Service (SNS) caller. This is the ARN of the IAM role in your AWS account which Cognito will use to send SMS messages. SMS messages are subject to a <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-email-phone-verification.html">spending limit</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InviteMessageTemplate</i> The message template to be used for the welcome message to new users. See also <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-settings-message-customizations.html#cognito-user-pool-settings-user-invitation-message-customization">Customizing User Invitation Messages</a>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>InviteMessageTemplate</b>: The message template to be used for the welcome message to new users. See also <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-settings-message-customizations.html#cognito-user-pool-settings-user-invitation-message-customization">Customizing User Invitation Messages</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UnusedAccountValidityDays</i> The user account expiration limit, in days, after which the account is no longer usable. To reset the account after that time limit, you must call <code>AdminCreateUser</code> again, specifying <code>"RESEND"</code> for the <code>MessageAction</code> parameter. The default value for this parameter is 7.  <note> If you set a value for <code>TemporaryPasswordValidityDays</code> in <code>PasswordPolicy</code>, that value will be used and <code>UnusedAccountValidityDays</code> will be deprecated for that user pool.  </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowAdminCreateUserOnly</i> Set to <code>True</code> if only the administrator is allowed to create user profiles. Set to <code>False</code> if users can sign themselves up via an app.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EmailSubject</i> The subject line for email messages. EmailSubject is allowed only if <a href="https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_EmailConfigurationType.html#CognitoUserPools-Type-EmailConfigurationType-EmailSendingAccount">EmailSendingAccount</a> is DEVELOPER. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EmailMessage</i> The message template for email messages. EmailMessage is allowed only if <a href="https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_EmailConfigurationType.html#CognitoUserPools-Type-EmailConfigurationType-EmailSendingAccount">EmailSendingAccount</a> is DEVELOPER. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SMSMessage</i> The message template for SMS messages.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdvancedSecurityMode</i> The advanced security mode.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecoveryMechanisms</i> The list of <code>RecoveryOptionTypes</code>.<br/>
        :return:         """
        pass

    def update_user_pool_client(self, ClientId: str, UserPoolId: str, ClientName: str=None, RefreshTokenValidity: int=None, AccessTokenValidity: int=None, IdTokenValidity: int=None, TokenValidityUnits: TokenValidityUnitsType=None, ReadAttributes: List[ClientPermissionType]=None, WriteAttributes: List[ClientPermissionType]=None, ExplicitAuthFlows: List[ExplicitAuthFlowsType]=None, SupportedIdentityProviders: List[ProviderNameType]=None, CallbackURLs: List[RedirectUrlType]=None, LogoutURLs: List[RedirectUrlType]=None, DefaultRedirectURI: str=None, AllowedOAuthFlows: List[OAuthFlowType]=None, AllowedOAuthScopes: List[ScopeType]=None, AllowedOAuthFlowsUserPoolClient: BooleanType=None, AnalyticsConfiguration: AnalyticsConfigurationType=None, PreventUserExistenceErrors: str=None, EnableTokenRevocation: WrappedBooleanType=None) -> UpdateUserPoolClientResponse:
        r"""Updates the specified user pool app client with the specified attributes. You can get a list of the current user pool app client settings using <a href="https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_DescribeUserPoolClient.html">DescribeUserPoolClient</a>. <important> If you don't provide a value for an attribute, it will be set to the default value. </important> You can also use this operation to enable token revocation for user pool clients. For more information about revoking tokens, see <a href="https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_RevokeToken.html">RevokeToken</a>.

        :param self:
        :param EnableTokenRevocation:  Enables or disables token revocation. For more information about revoking tokens, see <a href="https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_RevokeToken.html">RevokeToken</a>.<br/>PreventUserExistenceErrors:  Use this setting to choose which errors and responses are returned by Cognito APIs during authentication, account confirmation, and password recovery when the user does not exist in the user pool. When set to <code>ENABLED</code> and the user does not exist, authentication returns an error indicating either the username or password was incorrect, and account confirmation and password recovery return a response indicating a code was sent to a simulated destination. When set to <code>LEGACY</code>, those APIs will return a <code>UserNotFoundException</code> exception if the user does not exist in the user pool. Valid values include: <ul> <li>  <code>ENABLED</code> - This prevents user existence-related errors. </li> <li>  <code>LEGACY</code> - This represents the old behavior of Cognito where user existence related errors are not prevented. </li> </ul> <note> After February 15th 2020, the value of <code>PreventUserExistenceErrors</code> will default to <code>ENABLED</code> for newly created user pool clients if no value is provided. </note><br/>AnalyticsConfiguration:  The Amazon Pinpoint analytics configuration for collecting metrics for this user pool. <note> In regions where Pinpoint is not available, Cognito User Pools only supports sending events to Amazon Pinpoint projects in us-east-1. In regions where Pinpoint is available, Cognito User Pools will support sending events to Amazon Pinpoint projects within that same region.  </note>:<br/>AllowedOAuthFlowsUserPoolClient:  Set to true if the client is allowed to follow the OAuth protocol when interacting with Cognito user pools.<br/>AllowedOAuthScopes:  The allowed OAuth scopes. Possible values provided by OAuth are: <code>phone</code>, <code>email</code>, <code>openid</code>, and <code>profile</code>. Possible values provided by AWS are: <code>aws.cognito.signin.user.admin</code>. Custom scopes created in Resource Servers are also supported.<br/>AllowedOAuthFlows:  The allowed OAuth flows. Set to <code>code</code> to initiate a code grant flow, which provides an authorization code as the response. This code can be exchanged for access tokens with the token endpoint. Set to <code>implicit</code> to specify that the client should get the access token (and, optionally, ID token, based on scopes) directly. Set to <code>client_credentials</code> to specify that the client should get the access token (and, optionally, ID token, based on scopes) from the token endpoint using a combination of client and client_secret.<br/>DefaultRedirectURI:  The default redirect URI. Must be in the <code>CallbackURLs</code> list. A redirect URI must: <ul> <li> Be an absolute URI. </li> <li> Be registered with the authorization server. </li> <li> Not include a fragment component. </li> </ul> See <a href="https://tools.ietf.org/html/rfc6749#section-3.1.2">OAuth 2.0 - Redirection Endpoint</a>. Amazon Cognito requires HTTPS over HTTP except for http://localhost for testing purposes only. App callback URLs such as myapp://example are also supported.<br/>LogoutURLs:  A list of allowed logout URLs for the identity providers.<br/>CallbackURLs:  A list of allowed redirect (callback) URLs for the identity providers. A redirect URI must: <ul> <li> Be an absolute URI. </li> <li> Be registered with the authorization server. </li> <li> Not include a fragment component. </li> </ul> See <a href="https://tools.ietf.org/html/rfc6749#section-3.1.2">OAuth 2.0 - Redirection Endpoint</a>. Amazon Cognito requires HTTPS over HTTP except for http://localhost for testing purposes only. App callback URLs such as myapp://example are also supported.<br/>SupportedIdentityProviders:  A list of provider names for the identity providers that are supported on this client.<br/>ExplicitAuthFlows:  The authentication flows that are supported by the user pool clients. Flow names without the <code>ALLOW_</code> prefix are deprecated in favor of new names with the <code>ALLOW_</code> prefix. Note that values with <code>ALLOW_</code> prefix cannot be used along with values without <code>ALLOW_</code> prefix. Valid values include: <ul> <li>  <code>ALLOW_ADMIN_USER_PASSWORD_AUTH</code>: Enable admin based user password authentication flow <code>ADMIN_USER_PASSWORD_AUTH</code>. This setting replaces the <code>ADMIN_NO_SRP_AUTH</code> setting. With this authentication flow, Cognito receives the password in the request instead of using the SRP (Secure Remote Password protocol) protocol to verify passwords. </li> <li>  <code>ALLOW_CUSTOM_AUTH</code>: Enable Lambda trigger based authentication. </li> <li>  <code>ALLOW_USER_PASSWORD_AUTH</code>: Enable user password-based authentication. In this flow, Cognito receives the password in the request instead of using the SRP protocol to verify passwords. </li> <li>  <code>ALLOW_USER_SRP_AUTH</code>: Enable SRP based authentication. </li> <li>  <code>ALLOW_REFRESH_TOKEN_AUTH</code>: Enable authflow to refresh tokens. </li> </ul><br/>WriteAttributes:  The writeable attributes of the user pool.<br/>ReadAttributes:  The read-only attributes of the user pool.<br/>TokenValidityUnits:  The units in which the validity times are represented in. Default for RefreshToken is days, and default for ID and access tokens are hours.:<br/>IdTokenValidity:  The time limit, after which the ID token is no longer valid and cannot be used.<br/>AccessTokenValidity:  The time limit, after which the access token is no longer valid and cannot be used.<br/>RefreshTokenValidity:  The time limit, in days, after which the refresh token is no longer valid and cannot be used.<br/>ClientName:  The client name from the update user pool client request.<br/>ClientId:  The ID of the client associated with the user pool.<br/>UserPoolId:  The user pool ID for the user pool where you want to update the user pool client.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RefreshToken</i> A time unit in “seconds”, “minutes”, “hours” or “days” for the value in RefreshTokenValidity, defaults to days.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IdToken</i> A time unit in “seconds”, “minutes”, “hours” or “days” for the value in IdTokenValidity, defaults to hours.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccessToken</i>  A time unit in “seconds”, “minutes”, “hours” or “days” for the value in AccessTokenValidity, defaults to hours.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserDataShared</i> If <code>UserDataShared</code> is <code>true</code>, Amazon Cognito will include user data in the events it publishes to Amazon Pinpoint analytics.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExternalId</i> The external ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The ARN of an IAM role that authorizes Amazon Cognito to publish events to Amazon Pinpoint analytics.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationArn</i> The Amazon Resource Name (ARN) of an Amazon Pinpoint project. You can use the Amazon Pinpoint project for Pinpoint integration with the chosen User Pool Client. Amazon Cognito publishes events to the pinpoint project declared by the app ARN.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationId</i> The application ID for an Amazon Pinpoint application.<br/>
        :return: UserPoolClient:  The user pool client value from the response from the server when an update user pool client request is made.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableTokenRevocation</i> Indicates whether token revocation is enabled for the user pool client. When you create a new user pool client, token revocation is enabled by default. For more information about revoking tokens, see <a href="https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_RevokeToken.html">RevokeToken</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreventUserExistenceErrors</i> Use this setting to choose which errors and responses are returned by Cognito APIs during authentication, account confirmation, and password recovery when the user does not exist in the user pool. When set to <code>ENABLED</code> and the user does not exist, authentication returns an error indicating either the username or password was incorrect, and account confirmation and password recovery return a response indicating a code was sent to a simulated destination. When set to <code>LEGACY</code>, those APIs will return a <code>UserNotFoundException</code> exception if the user does not exist in the user pool. Valid values include: <ul> <li>  <code>ENABLED</code> - This prevents user existence-related errors. </li> <li>  <code>LEGACY</code> - This represents the old behavior of Cognito where user existence related errors are not prevented. </li> </ul> <note> After February 15th 2020, the value of <code>PreventUserExistenceErrors</code> will default to <code>ENABLED</code> for newly created user pool clients if no value is provided. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AnalyticsConfiguration</i> The Amazon Pinpoint analytics configuration for the user pool client. <note> Cognito User Pools only supports sending events to Amazon Pinpoint projects in the US East (N. Virginia) us-east-1 Region, regardless of the region in which the user pool resides. </note>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AnalyticsConfiguration</b>: The Amazon Pinpoint analytics configuration for the user pool client. <note> Cognito User Pools only supports sending events to Amazon Pinpoint projects in the US East (N. Virginia) us-east-1 Region, regardless of the region in which the user pool resides. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowedOAuthFlowsUserPoolClient</i> Set to true if the client is allowed to follow the OAuth protocol when interacting with Cognito user pools.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowedOAuthScopes</i> The allowed OAuth scopes. Possible values provided by OAuth are: <code>phone</code>, <code>email</code>, <code>openid</code>, and <code>profile</code>. Possible values provided by AWS are: <code>aws.cognito.signin.user.admin</code>. Custom scopes created in Resource Servers are also supported.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowedOAuthFlows</i> The allowed OAuth flows. Set to <code>code</code> to initiate a code grant flow, which provides an authorization code as the response. This code can be exchanged for access tokens with the token endpoint. Set to <code>implicit</code> to specify that the client should get the access token (and, optionally, ID token, based on scopes) directly. Set to <code>client_credentials</code> to specify that the client should get the access token (and, optionally, ID token, based on scopes) from the token endpoint using a combination of client and client_secret.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultRedirectURI</i> The default redirect URI. Must be in the <code>CallbackURLs</code> list. A redirect URI must: <ul> <li> Be an absolute URI. </li> <li> Be registered with the authorization server. </li> <li> Not include a fragment component. </li> </ul> See <a href="https://tools.ietf.org/html/rfc6749#section-3.1.2">OAuth 2.0 - Redirection Endpoint</a>. Amazon Cognito requires HTTPS over HTTP except for http://localhost for testing purposes only. App callback URLs such as myapp://example are also supported.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogoutURLs</i> A list of allowed logout URLs for the identity providers.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CallbackURLs</i> A list of allowed redirect (callback) URLs for the identity providers. A redirect URI must: <ul> <li> Be an absolute URI. </li> <li> Be registered with the authorization server. </li> <li> Not include a fragment component. </li> </ul> See <a href="https://tools.ietf.org/html/rfc6749#section-3.1.2">OAuth 2.0 - Redirection Endpoint</a>. Amazon Cognito requires HTTPS over HTTP except for http://localhost for testing purposes only. App callback URLs such as myapp://example are also supported.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SupportedIdentityProviders</i> A list of provider names for the identity providers that are supported on this client.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExplicitAuthFlows</i> The authentication flows that are supported by the user pool clients. Flow names without the <code>ALLOW_</code> prefix are deprecated in favor of new names with the <code>ALLOW_</code> prefix. Note that values with <code>ALLOW_</code> prefix cannot be used along with values without <code>ALLOW_</code> prefix. Valid values include: <ul> <li>  <code>ALLOW_ADMIN_USER_PASSWORD_AUTH</code>: Enable admin based user password authentication flow <code>ADMIN_USER_PASSWORD_AUTH</code>. This setting replaces the <code>ADMIN_NO_SRP_AUTH</code> setting. With this authentication flow, Cognito receives the password in the request instead of using the SRP (Secure Remote Password protocol) protocol to verify passwords. </li> <li>  <code>ALLOW_CUSTOM_AUTH</code>: Enable Lambda trigger based authentication. </li> <li>  <code>ALLOW_USER_PASSWORD_AUTH</code>: Enable user password-based authentication. In this flow, Cognito receives the password in the request instead of using the SRP protocol to verify passwords. </li> <li>  <code>ALLOW_USER_SRP_AUTH</code>: Enable SRP based authentication. </li> <li>  <code>ALLOW_REFRESH_TOKEN_AUTH</code>: Enable authflow to refresh tokens. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WriteAttributes</i> The writeable attributes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadAttributes</i> The Read-only attributes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TokenValidityUnits</i> The time units used to specify the token validity times of their respective token.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TokenValidityUnits</b>: The time units used to specify the token validity times of their respective token.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IdTokenValidity</i> The time limit, specified by tokenValidityUnits, defaulting to hours, after which the refresh token is no longer valid and cannot be used.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccessTokenValidity</i> The time limit, specified by tokenValidityUnits, defaulting to hours, after which the access token is no longer valid and cannot be used.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RefreshTokenValidity</i> The time limit, in days, after which the refresh token is no longer valid and cannot be used.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date the user pool client was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> The date the user pool client was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClientSecret</i> The client secret from the user pool request of the client type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClientId</i> The ID of the client associated with the user pool.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClientName</i> The client name from the user pool request of the client type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserPoolId</i> The user pool ID for the user pool client.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RefreshToken</i> A time unit in “seconds”, “minutes”, “hours” or “days” for the value in RefreshTokenValidity, defaults to days.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IdToken</i> A time unit in “seconds”, “minutes”, “hours” or “days” for the value in IdTokenValidity, defaults to hours.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AccessToken</i>  A time unit in “seconds”, “minutes”, “hours” or “days” for the value in AccessTokenValidity, defaults to hours.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UserDataShared</i> If <code>UserDataShared</code> is <code>true</code>, Amazon Cognito will include user data in the events it publishes to Amazon Pinpoint analytics.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ExternalId</i> The external ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The ARN of an IAM role that authorizes Amazon Cognito to publish events to Amazon Pinpoint analytics.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationArn</i> The Amazon Resource Name (ARN) of an Amazon Pinpoint project. You can use the Amazon Pinpoint project for Pinpoint integration with the chosen User Pool Client. Amazon Cognito publishes events to the pinpoint project declared by the app ARN.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationId</i> The application ID for an Amazon Pinpoint application.<br/>        """
        pass

    def update_user_pool_domain(self, CustomDomainConfig: CustomDomainConfigType, UserPoolId: str, Domain: str) -> UpdateUserPoolDomainResponse:
        r"""Updates the Secure Sockets Layer (SSL) certificate for the custom domain for your user pool. You can use this operation to provide the Amazon Resource Name (ARN) of a new certificate to Amazon Cognito. You cannot use it to change the domain for a user pool. A custom domain is used to host the Amazon Cognito hosted UI, which provides sign-up and sign-in pages for your application. When you set up a custom domain, you provide a certificate that you manage with AWS Certificate Manager (ACM). When necessary, you can use this operation to change the certificate that you applied to your custom domain. Usually, this is unnecessary following routine certificate renewal with ACM. When you renew your existing certificate in ACM, the ARN for your certificate remains the same, and your custom domain uses the new certificate automatically. However, if you replace your existing certificate with a new one, ACM gives the new certificate a new ARN. To apply the new certificate to your custom domain, you must provide this ARN to Amazon Cognito. When you add your new certificate in ACM, you must choose US East (N. Virginia) as the AWS Region. After you submit your request, Amazon Cognito requires up to 1 hour to distribute your new certificate to your custom domain. For more information about adding a custom domain to your user pool, see <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-add-custom-domain.html">Using Your Own Domain for the Hosted UI</a>.

        :param self:
        :param CustomDomainConfig:  The configuration for a custom domain that hosts the sign-up and sign-in pages for your application. Use this object to specify an SSL certificate that is managed by ACM.:<br/>UserPoolId:  The ID of the user pool that is associated with the custom domain that you are updating the certificate for.<br/>Domain:  The domain name for the custom domain that hosts the sign-up and sign-in pages for your application. For example: <code>auth.example.com</code>.  This string can include only lowercase letters, numbers, and hyphens. Do not use a hyphen for the first or last character. Use periods to separate subdomain names.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CertificateArn</i> The Amazon Resource Name (ARN) of an AWS Certificate Manager SSL certificate. You use this certificate for the subdomain of your custom domain.<br/>
        :return: CloudFrontDomain:  The Amazon CloudFront endpoint that Amazon Cognito set up when you added the custom domain to your user pool.<br/>        """
        pass

    def verify_software_token(self, UserCode: str, AccessToken: str=None, Session: str=None, FriendlyDeviceName: str=None) -> VerifySoftwareTokenResponse:
        r"""Use this API to register a user's entered TOTP code and mark the user's software token MFA status as "verified" if successful. The request takes an access token or a session string, but not both.

        :param self:
        :param FriendlyDeviceName:  The friendly device name.<br/>UserCode:  The one time password computed using the secret code returned by <a href="https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AssociateSoftwareToken.html">AssociateSoftwareToken"</a>.<br/>Session:  The session which should be passed both ways in challenge-response calls to the service.<br/>AccessToken:  The access token.<br/>
        :return: Session:  The session which should be passed both ways in challenge-response calls to the service.<br/>Status:  The status of the verify software token.<br/>        """
        pass

    def verify_user_attribute(self, Code: str, AttributeName: str, AccessToken: str) -> VerifyUserAttributeResponse:
        r"""Verifies the specified user attributes in the user pool.

        :param self:
        :param Code:  The verification code in the request to verify user attributes.<br/>AttributeName:  The attribute name in the request to verify user attributes.<br/>AccessToken:  Represents the access token of the request to verify user attributes.<br/>
        :return:         """
        pass





class CognitoSync(BaseClient):
    r"""<fullname>Amazon Cognito Sync</fullname> Amazon Cognito Sync provides an AWS service and client library that enable cross-device syncing of application-related user data. High-level client libraries are available for both iOS and Android. You can use these libraries to persist data locally so that it's available even if the device is offline. Developer credentials don't need to be stored on the mobile device to access the service. You can use Amazon Cognito to obtain a normalized user ID and credentials. User data is persisted in a dataset that can store up to 1 MB of key-value pairs, and you can have up to 20 datasets per user identity. With Amazon Cognito Sync, the data stored for each identity is accessible only to credentials assigned to that identity. In order to use the Cognito Sync service, you need to make API calls using credentials retrieved with <a href="http://docs.aws.amazon.com/cognitoidentity/latest/APIReference/Welcome.html">Amazon Cognito Identity service</a>. If you want to use Cognito Sync in an Android or iOS application, you will probably want to make API calls via the AWS Mobile SDK. To learn more, see the <a href="http://docs.aws.amazon.com/mobile/sdkforandroid/developerguide/cognito-sync.html">Developer Guide for Android</a> and the <a href="http://docs.aws.amazon.com/mobile/sdkforios/developerguide/cognito-sync.html">Developer Guide for iOS</a>."""




    class BulkPublishRequest(Mapping):
        pass
    
    class BulkPublishResponse(Mapping):
        pass
    
    class DeleteDatasetRequest(Mapping):
        pass
    
    class DeleteDatasetResponse(Mapping):
        pass
    
    class DescribeDatasetRequest(Mapping):
        pass
    
    class DescribeDatasetResponse(Mapping):
        pass
    
    class DescribeIdentityPoolUsageRequest(Mapping):
        pass
    
    class DescribeIdentityPoolUsageResponse(Mapping):
        pass
    
    class DescribeIdentityUsageRequest(Mapping):
        pass
    
    class DescribeIdentityUsageResponse(Mapping):
        pass
    
    class GetBulkPublishDetailsRequest(Mapping):
        pass
    
    class GetBulkPublishDetailsResponse(Mapping):
        pass
    
    class GetCognitoEventsRequest(Mapping):
        pass
    
    class GetCognitoEventsResponse(Mapping):
        pass
    
    class GetIdentityPoolConfigurationRequest(Mapping):
        pass
    
    class GetIdentityPoolConfigurationResponse(Mapping):
        pass
    
    class ListDatasetsRequest(Mapping):
        pass
    
    class ListDatasetsResponse(Mapping):
        pass
    
    class ListIdentityPoolUsageRequest(Mapping):
        pass
    
    class ListIdentityPoolUsageResponse(Mapping):
        pass
    
    class ListRecordsRequest(Mapping):
        pass
    
    class ListRecordsResponse(Mapping):
        pass
    
    class Long(object):
        pass
    
    class RegisterDeviceRequest(Mapping):
        pass
    
    class RegisterDeviceResponse(Mapping):
        pass
    
    class SetCognitoEventsRequest(Mapping):
        pass
    
    class Events(object):
        pass
    
    class SetIdentityPoolConfigurationRequest(Mapping):
        pass
    
    class SetIdentityPoolConfigurationResponse(Mapping):
        pass
    
    class PushSync(Mapping):
        pass
    
    class CognitoStreams(Mapping):
        pass
    
    class SubscribeToDatasetRequest(Mapping):
        pass
    
    class SubscribeToDatasetResponse(Mapping):
        pass
    
    class UnsubscribeFromDatasetRequest(Mapping):
        pass
    
    class UnsubscribeFromDatasetResponse(Mapping):
        pass
    
    class UpdateRecordsRequest(Mapping):
        pass
    
    class UpdateRecordsResponse(Mapping):
        pass
    
    class RecordPatch(Mapping):
        pass
    
    def bulk_publish(self, IdentityPoolId: str) -> BulkPublishResponse:
        r"""Initiates a bulk publish of all existing datasets for an Identity Pool to the configured stream. Customers are limited to one successful bulk publish per 24 hours. Bulk publish is an asynchronous request, customers can see the status of the request via the GetBulkPublishDetails operation.This API can only be called with developer credentials. You cannot call this API with the temporary user credentials provided by Cognito Identity.

        :param self:
        :param IdentityPoolId:  A name-spaced GUID (for example, us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito. GUID generation is unique within a region.<br/>
        :return: IdentityPoolId:  A name-spaced GUID (for example, us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito. GUID generation is unique within a region.<br/>        """
        pass

    def delete_dataset(self, DatasetName: str, IdentityId: str, IdentityPoolId: str) -> DeleteDatasetResponse:
        r"""Deletes the specific dataset. The dataset will be deleted permanently, and the action can't be undone. Datasets that this dataset was merged with will no longer report the merge. Any subsequent operation on this dataset will result in a ResourceNotFoundException. This API can be called with temporary user credentials provided by Cognito Identity or with developer credentials.

        :param self:
        :param DatasetName:  A string of up to 128 characters. Allowed characters are a-z, A-Z, 0-9, '_' (underscore), '-' (dash), and '.' (dot).<br/>IdentityId:  A name-spaced GUID (for example, us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito. GUID generation is unique within a region.<br/>IdentityPoolId:  A name-spaced GUID (for example, us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito. GUID generation is unique within a region.<br/>
        :return: Dataset:  A collection of data for an identity pool. An identity pool can have multiple datasets. A dataset is per identity and can be general or associated with a particular entity in an application (like a saved game). Datasets are automatically created if they don't exist. Data is synced by dataset, and a dataset can hold up to 1MB of key-value pairs.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NumRecords</i> Number of records in this dataset.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataStorage</i> Total size in bytes of the records in this dataset.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedBy</i> The device that made the last change to this dataset.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> Date when the dataset was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> Date on which the dataset was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatasetName</i> A string of up to 128 characters. Allowed characters are a-z, A-Z, 0-9, '_' (underscore), '-' (dash), and '.' (dot).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IdentityId</i> A name-spaced GUID (for example, us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito. GUID generation is unique within a region.<br/>        """
        pass

    def describe_dataset(self, DatasetName: str, IdentityId: str, IdentityPoolId: str) -> DescribeDatasetResponse:
        r"""Gets meta data about a dataset by identity and dataset name. With Amazon Cognito Sync, each identity has access only to its own data. Thus, the credentials used to make this API call need to have access to the identity data. This API can be called with temporary user credentials provided by Cognito Identity or with developer credentials. You should use Cognito Identity credentials to make this API call.

        :param self:
        :param DatasetName:  A string of up to 128 characters. Allowed characters are a-z, A-Z, 0-9, '_' (underscore), '-' (dash), and '.' (dot).<br/>IdentityId:  A name-spaced GUID (for example, us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito. GUID generation is unique within a region.<br/>IdentityPoolId:  A name-spaced GUID (for example, us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito. GUID generation is unique within a region.<br/>
        :return: Dataset:  Meta data for a collection of data for an identity. An identity can have multiple datasets. A dataset can be general or associated with a particular entity in an application (like a saved game). Datasets are automatically created if they don't exist. Data is synced by dataset, and a dataset can hold up to 1MB of key-value pairs.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NumRecords</i> Number of records in this dataset.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataStorage</i> Total size in bytes of the records in this dataset.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedBy</i> The device that made the last change to this dataset.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> Date when the dataset was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> Date on which the dataset was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatasetName</i> A string of up to 128 characters. Allowed characters are a-z, A-Z, 0-9, '_' (underscore), '-' (dash), and '.' (dot).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IdentityId</i> A name-spaced GUID (for example, us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito. GUID generation is unique within a region.<br/>        """
        pass

    def describe_identity_pool_usage(self, IdentityPoolId: str) -> DescribeIdentityPoolUsageResponse:
        r"""Gets usage details (for example, data storage) about a particular identity pool. This API can only be called with developer credentials. You cannot call this API with the temporary user credentials provided by Cognito Identity.

        :param self:
        :param IdentityPoolId:  A name-spaced GUID (for example, us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito. GUID generation is unique within a region.<br/>
        :return: IdentityPoolUsage:  Information about the usage of the identity pool.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> Date on which the identity pool was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataStorage</i> Data storage information for the identity pool.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SyncSessionsCount</i> Number of sync sessions for the identity pool.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IdentityPoolId</i> A name-spaced GUID (for example, us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito. GUID generation is unique within a region.<br/>        """
        pass

    def describe_identity_usage(self, IdentityId: str, IdentityPoolId: str) -> DescribeIdentityUsageResponse:
        r"""Gets usage information for an identity, including number of datasets and data usage. This API can be called with temporary user credentials provided by Cognito Identity or with developer credentials.

        :param self:
        :param IdentityId:  A name-spaced GUID (for example, us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito. GUID generation is unique within a region.<br/>IdentityPoolId:  A name-spaced GUID (for example, us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito. GUID generation is unique within a region.<br/>
        :return: IdentityUsage:  Usage information for the identity.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataStorage</i> Total data storage for this identity.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatasetCount</i> Number of datasets for the identity.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> Date on which the identity was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IdentityPoolId</i> A name-spaced GUID (for example, us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito. GUID generation is unique within a region.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IdentityId</i> A name-spaced GUID (for example, us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito. GUID generation is unique within a region.<br/>        """
        pass

    def get_bulk_publish_details(self, IdentityPoolId: str) -> GetBulkPublishDetailsResponse:
        r"""Get the status of the last BulkPublish operation for an identity pool.This API can only be called with developer credentials. You cannot call this API with the temporary user credentials provided by Cognito Identity.

        :param self:
        :param IdentityPoolId:  A name-spaced GUID (for example, us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito. GUID generation is unique within a region.<br/>
        :return: FailureMessage:  If BulkPublishStatus is FAILED this field will contain the error message that caused the bulk publish to fail.<br/>BulkPublishStatus:  Status of the last bulk publish operation, valid values are: NOT_STARTED - No bulk publish has been requested for this identity pool IN_PROGRESS - Data is being published to the configured stream SUCCEEDED - All data for the identity pool has been published to the configured stream FAILED - Some portion of the data has failed to publish, check FailureMessage for the cause.<br/>BulkPublishCompleteTime:  If BulkPublishStatus is SUCCEEDED, the time the last bulk publish operation completed.<br/>BulkPublishStartTime:  The date/time at which the last bulk publish was initiated.<br/>IdentityPoolId:  A name-spaced GUID (for example, us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito. GUID generation is unique within a region.<br/>        """
        pass

    def get_cognito_events(self, IdentityPoolId: str) -> GetCognitoEventsResponse:
        r"""Gets the events and the corresponding Lambda functions associated with an identity pool.This API can only be called with developer credentials. You cannot call this API with the temporary user credentials provided by Cognito Identity.

        :param self:
        :param IdentityPoolId:  The Cognito Identity Pool ID for the request<br/>
        :return: Events:  The Cognito Events returned from the GetCognitoEvents request<br/>        """
        pass

    def get_identity_pool_configuration(self, IdentityPoolId: str) -> GetIdentityPoolConfigurationResponse:
        r"""Gets the configuration settings of an identity pool.This API can only be called with developer credentials. You cannot call this API with the temporary user credentials provided by Cognito Identity.

        :param self:
        :param IdentityPoolId:  A name-spaced GUID (for example, us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito. This is the ID of the pool for which to return a configuration.<br/>
        :return: CognitoStreams:  Options to apply to this identity pool for Amazon Cognito streams.:<br/>PushSync:  Options to apply to this identity pool for push synchronization.:<br/>IdentityPoolId:  A name-spaced GUID (for example, us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> A role configured to allow Cognito to call SNS on behalf of the developer.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationArns</i> List of SNS platform application ARNs that could be used by clients.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamingStatus</i> Status of the Cognito streams. Valid values are: ENABLED - Streaming of updates to identity pool is enabled. DISABLED - Streaming of updates to identity pool is disabled. Bulk publish will also fail if StreamingStatus is DISABLED.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The ARN of the role Amazon Cognito can assume in order to publish to the stream. This role must grant access to Amazon Cognito (cognito-sync) to invoke PutRecord on your Cognito stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamName</i> The name of the Cognito stream to receive updates. This stream must be in the developers account and in the same region as the identity pool.<br/>        """
        pass

    def list_datasets(self, IdentityId: str, IdentityPoolId: str, NextToken: str=None, MaxResults: int=None) -> ListDatasetsResponse:
        r"""Lists datasets for an identity. With Amazon Cognito Sync, each identity has access only to its own data. Thus, the credentials used to make this API call need to have access to the identity data. ListDatasets can be called with temporary user credentials provided by Cognito Identity or with developer credentials. You should use the Cognito Identity credentials to make this API call.

        :param self:
        :param MaxResults:  The maximum number of results to be returned.<br/>NextToken:  A pagination token for obtaining the next page of results.<br/>IdentityId:  A name-spaced GUID (for example, us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito. GUID generation is unique within a region.<br/>IdentityPoolId:  A name-spaced GUID (for example, us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito. GUID generation is unique within a region.<br/>
        :return: NextToken:  A pagination token for obtaining the next page of results.<br/>Count:  Number of datasets returned.<br/>Datasets:  A set of datasets.<br/>        """
        pass

    def list_identity_pool_usage(self, NextToken: str=None, MaxResults: int=None) -> ListIdentityPoolUsageResponse:
        r"""Gets a list of identity pools registered with Cognito. ListIdentityPoolUsage can only be called with developer credentials. You cannot make this API call with the temporary user credentials provided by Cognito Identity.

        :param self:
        :param MaxResults:  The maximum number of results to be returned.<br/>NextToken:  A pagination token for obtaining the next page of results.<br/>
        :return: NextToken:  A pagination token for obtaining the next page of results.<br/>Count:  Total number of identities for the identity pool.<br/>MaxResults:  The maximum number of results to be returned.<br/>IdentityPoolUsages:  Usage information for the identity pools.<br/>        """
        pass

    def list_records(self, DatasetName: str, IdentityId: str, IdentityPoolId: str, LastSyncCount: Long=None, NextToken: str=None, MaxResults: int=None, SyncSessionToken: str=None) -> ListRecordsResponse:
        r"""Gets paginated records, optionally changed after a particular sync count for a dataset and identity. With Amazon Cognito Sync, each identity has access only to its own data. Thus, the credentials used to make this API call need to have access to the identity data. ListRecords can be called with temporary user credentials provided by Cognito Identity or with developer credentials. You should use Cognito Identity credentials to make this API call.

        :param self:
        :param SyncSessionToken:  A token containing a session ID, identity ID, and expiration.<br/>MaxResults:  The maximum number of results to be returned.<br/>NextToken:  A pagination token for obtaining the next page of results.<br/>LastSyncCount:  The last server sync count for this record.<br/>DatasetName:  A string of up to 128 characters. Allowed characters are a-z, A-Z, 0-9, '_' (underscore), '-' (dash), and '.' (dot).<br/>IdentityId:  A name-spaced GUID (for example, us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito. GUID generation is unique within a region.<br/>IdentityPoolId:  A name-spaced GUID (for example, us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito. GUID generation is unique within a region.<br/>
        :return: SyncSessionToken:  A token containing a session ID, identity ID, and expiration.<br/>DatasetDeletedAfterRequestedSyncCount:  A boolean value specifying whether to delete the dataset locally.<br/>DatasetExists:  Indicates whether the dataset exists.<br/>MergedDatasetNames:  Names of merged datasets.<br/>LastModifiedBy:  The user/device that made the last change to this record.<br/>DatasetSyncCount:  Server sync count for this dataset.<br/>Count:  Total number of records.<br/>NextToken:  A pagination token for obtaining the next page of results.<br/>Records:  A list of all records.<br/>        """
        pass

    def register_device(self, Token: str, Platform: str, IdentityId: str, IdentityPoolId: str) -> RegisterDeviceResponse:
        r"""Registers a device to receive push sync notifications.This API can only be called with temporary credentials provided by Cognito Identity. You cannot call this API with developer credentials.

        :param self:
        :param Token:  The push token.<br/>Platform:  The SNS platform type (e.g. GCM, SDM, APNS, APNS_SANDBOX).<br/>IdentityId:  The unique ID for this identity.<br/>IdentityPoolId:  A name-spaced GUID (for example, us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito. Here, the ID of the pool that the identity belongs to.<br/>
        :return: DeviceId:  The unique ID generated for this device by Cognito.<br/>        """
        pass

    def set_cognito_events(self, Events: Events, IdentityPoolId: str):
        r"""Sets the AWS Lambda function for a given event type for an identity pool. This request only updates the key/value pair specified. Other key/values pairs are not updated. To remove a key value pair, pass a empty value for the particular key.This API can only be called with developer credentials. You cannot call this API with the temporary user credentials provided by Cognito Identity.

        :param self:
        :param Events:  The events to configure<br/>IdentityPoolId:  The Cognito Identity Pool to use when configuring Cognito Events<br/>
        :return:         """
        pass

    def set_identity_pool_configuration(self, IdentityPoolId: str, PushSync: PushSync=None, CognitoStreams: CognitoStreams=None) -> SetIdentityPoolConfigurationResponse:
        r"""Sets the necessary configuration for push sync.This API can only be called with developer credentials. You cannot call this API with the temporary user credentials provided by Cognito Identity.

        :param self:
        :param CognitoStreams:  Options to apply to this identity pool for Amazon Cognito streams.:<br/>PushSync:  Options to apply to this identity pool for push synchronization.:<br/>IdentityPoolId:  A name-spaced GUID (for example, us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito. This is the ID of the pool to modify.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> A role configured to allow Cognito to call SNS on behalf of the developer.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationArns</i> List of SNS platform application ARNs that could be used by clients.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamingStatus</i> Status of the Cognito streams. Valid values are: ENABLED - Streaming of updates to identity pool is enabled. DISABLED - Streaming of updates to identity pool is disabled. Bulk publish will also fail if StreamingStatus is DISABLED.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The ARN of the role Amazon Cognito can assume in order to publish to the stream. This role must grant access to Amazon Cognito (cognito-sync) to invoke PutRecord on your Cognito stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamName</i> The name of the Cognito stream to receive updates. This stream must be in the developers account and in the same region as the identity pool.<br/>
        :return: CognitoStreams:  Options to apply to this identity pool for Amazon Cognito streams.:<br/>PushSync:  Options to apply to this identity pool for push synchronization.:<br/>IdentityPoolId:  A name-spaced GUID (for example, us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> A role configured to allow Cognito to call SNS on behalf of the developer.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationArns</i> List of SNS platform application ARNs that could be used by clients.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamingStatus</i> Status of the Cognito streams. Valid values are: ENABLED - Streaming of updates to identity pool is enabled. DISABLED - Streaming of updates to identity pool is disabled. Bulk publish will also fail if StreamingStatus is DISABLED.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The ARN of the role Amazon Cognito can assume in order to publish to the stream. This role must grant access to Amazon Cognito (cognito-sync) to invoke PutRecord on your Cognito stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamName</i> The name of the Cognito stream to receive updates. This stream must be in the developers account and in the same region as the identity pool.<br/>        """
        pass

    def subscribe_to_dataset(self, DeviceId: str, DatasetName: str, IdentityId: str, IdentityPoolId: str) -> SubscribeToDatasetResponse:
        r"""Subscribes to receive notifications when a dataset is modified by another device.This API can only be called with temporary credentials provided by Cognito Identity. You cannot call this API with developer credentials.

        :param self:
        :param DeviceId:  The unique ID generated for this device by Cognito.<br/>DatasetName:  The name of the dataset to subcribe to.<br/>IdentityId:  Unique ID for this identity.<br/>IdentityPoolId:  A name-spaced GUID (for example, us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito. The ID of the pool to which the identity belongs.<br/>
        :return:         """
        pass

    def unsubscribe_from_dataset(self, DeviceId: str, DatasetName: str, IdentityId: str, IdentityPoolId: str) -> UnsubscribeFromDatasetResponse:
        r"""Unsubscribes from receiving notifications when a dataset is modified by another device.This API can only be called with temporary credentials provided by Cognito Identity. You cannot call this API with developer credentials.

        :param self:
        :param DeviceId:  The unique ID generated for this device by Cognito.<br/>DatasetName:  The name of the dataset from which to unsubcribe.<br/>IdentityId:  Unique ID for this identity.<br/>IdentityPoolId:  A name-spaced GUID (for example, us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito. The ID of the pool to which this identity belongs.<br/>
        :return:         """
        pass

    def update_records(self, SyncSessionToken: str, DatasetName: str, IdentityId: str, IdentityPoolId: str, DeviceId: str=None, RecordPatches: List[RecordPatch]=None, ClientContext: str=None) -> UpdateRecordsResponse:
        r"""Posts updates to records and adds and deletes records for a dataset and user. The sync count in the record patch is your last known sync count for that record. The server will reject an UpdateRecords request with a ResourceConflictException if you try to patch a record with a new value but a stale sync count.For example, if the sync count on the server is 5 for a key called highScore and you try and submit a new highScore with sync count of 4, the request will be rejected. To obtain the current sync count for a record, call ListRecords. On a successful update of the record, the response returns the new sync count for that record. You should present that sync count the next time you try to update that same record. When the record does not exist, specify the sync count as 0. This API can be called with temporary user credentials provided by Cognito Identity or with developer credentials.

        :param self:
        :param ClientContext:  Intended to supply a device ID that will populate the lastModifiedBy field referenced in other methods. The ClientContext field is not yet implemented.<br/>SyncSessionToken:  The SyncSessionToken returned by a previous call to ListRecords for this dataset and identity.<br/>RecordPatches:  A list of patch operations.<br/>DeviceId:  The unique ID generated for this device by Cognito.<br/>DatasetName:  A string of up to 128 characters. Allowed characters are a-z, A-Z, 0-9, '_' (underscore), '-' (dash), and '.' (dot).<br/>IdentityId:  A name-spaced GUID (for example, us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito. GUID generation is unique within a region.<br/>IdentityPoolId:  A name-spaced GUID (for example, us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon Cognito. GUID generation is unique within a region.<br/>
        :return: Records:  A list of records that have been updated.<br/>        """
        pass





class Comprehend(BaseClient):
    r"""Amazon Comprehend is an AWS service for gaining insight into the content of documents. Use these actions to determine the topics contained in your documents, the topics they discuss, the predominant sentiment expressed in them, the predominant language used, and more."""


    class ListTopicsDetectionJobsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_topics_detection_jobs` for valid parameters"""
            pass
    class ListDocumentClassificationJobsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_document_classification_jobs` for valid parameters"""
            pass
    class ListDocumentClassifiersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_document_classifiers` for valid parameters"""
            pass
    class ListDominantLanguageDetectionJobsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_dominant_language_detection_jobs` for valid parameters"""
            pass
    class ListEntitiesDetectionJobsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_entities_detection_jobs` for valid parameters"""
            pass
    class ListEntityRecognizersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_entity_recognizers` for valid parameters"""
            pass
    class ListKeyPhrasesDetectionJobsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_key_phrases_detection_jobs` for valid parameters"""
            pass
    class ListSentimentDetectionJobsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_sentiment_detection_jobs` for valid parameters"""
            pass


    class BatchDetectDominantLanguageRequest(Mapping):
        pass
    
    class BatchDetectDominantLanguageResponse(Mapping):
        pass
    
    class CustomerInputString(object):
        pass
    
    class BatchDetectEntitiesRequest(Mapping):
        pass
    
    class BatchDetectEntitiesResponse(Mapping):
        pass
    
    class BatchDetectKeyPhrasesRequest(Mapping):
        pass
    
    class BatchDetectKeyPhrasesResponse(Mapping):
        pass
    
    class BatchDetectSentimentRequest(Mapping):
        pass
    
    class BatchDetectSentimentResponse(Mapping):
        pass
    
    class BatchDetectSyntaxRequest(Mapping):
        pass
    
    class BatchDetectSyntaxResponse(Mapping):
        pass
    
    class ClassifyDocumentRequest(Mapping):
        pass
    
    class ClassifyDocumentResponse(Mapping):
        pass
    
    class ContainsPiiEntitiesRequest(Mapping):
        pass
    
    class ContainsPiiEntitiesResponse(Mapping):
        pass
    
    class CreateDocumentClassifierRequest(Mapping):
        pass
    
    class CreateDocumentClassifierResponse(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class DocumentClassifierInputDataConfig(Mapping):
        pass
    
    class DocumentClassifierOutputDataConfig(Mapping):
        pass
    
    class VpcConfig(Mapping):
        pass
    
    class CreateEndpointRequest(Mapping):
        pass
    
    class CreateEndpointResponse(Mapping):
        pass
    
    class CreateEntityRecognizerRequest(Mapping):
        pass
    
    class CreateEntityRecognizerResponse(Mapping):
        pass
    
    class EntityRecognizerInputDataConfig(Mapping):
        pass
    
    class DeleteDocumentClassifierRequest(Mapping):
        pass
    
    class DeleteDocumentClassifierResponse(Mapping):
        pass
    
    class DeleteEndpointRequest(Mapping):
        pass
    
    class DeleteEndpointResponse(Mapping):
        pass
    
    class DeleteEntityRecognizerRequest(Mapping):
        pass
    
    class DeleteEntityRecognizerResponse(Mapping):
        pass
    
    class DescribeDocumentClassificationJobRequest(Mapping):
        pass
    
    class DescribeDocumentClassificationJobResponse(Mapping):
        pass
    
    class DescribeDocumentClassifierRequest(Mapping):
        pass
    
    class DescribeDocumentClassifierResponse(Mapping):
        pass
    
    class DescribeDominantLanguageDetectionJobRequest(Mapping):
        pass
    
    class DescribeDominantLanguageDetectionJobResponse(Mapping):
        pass
    
    class DescribeEndpointRequest(Mapping):
        pass
    
    class DescribeEndpointResponse(Mapping):
        pass
    
    class DescribeEntitiesDetectionJobRequest(Mapping):
        pass
    
    class DescribeEntitiesDetectionJobResponse(Mapping):
        pass
    
    class DescribeEntityRecognizerRequest(Mapping):
        pass
    
    class DescribeEntityRecognizerResponse(Mapping):
        pass
    
    class DescribeEventsDetectionJobRequest(Mapping):
        pass
    
    class DescribeEventsDetectionJobResponse(Mapping):
        pass
    
    class DescribeKeyPhrasesDetectionJobRequest(Mapping):
        pass
    
    class DescribeKeyPhrasesDetectionJobResponse(Mapping):
        pass
    
    class DescribePiiEntitiesDetectionJobRequest(Mapping):
        pass
    
    class DescribePiiEntitiesDetectionJobResponse(Mapping):
        pass
    
    class DescribeSentimentDetectionJobRequest(Mapping):
        pass
    
    class DescribeSentimentDetectionJobResponse(Mapping):
        pass
    
    class DescribeTopicsDetectionJobRequest(Mapping):
        pass
    
    class DescribeTopicsDetectionJobResponse(Mapping):
        pass
    
    class DetectDominantLanguageRequest(Mapping):
        pass
    
    class DetectDominantLanguageResponse(Mapping):
        pass
    
    class DetectEntitiesRequest(Mapping):
        pass
    
    class DetectEntitiesResponse(Mapping):
        pass
    
    class DetectKeyPhrasesRequest(Mapping):
        pass
    
    class DetectKeyPhrasesResponse(Mapping):
        pass
    
    class DetectPiiEntitiesRequest(Mapping):
        pass
    
    class DetectPiiEntitiesResponse(Mapping):
        pass
    
    class DetectSentimentRequest(Mapping):
        pass
    
    class DetectSentimentResponse(Mapping):
        pass
    
    class DetectSyntaxRequest(Mapping):
        pass
    
    class DetectSyntaxResponse(Mapping):
        pass
    
    class ListDocumentClassificationJobsRequest(Mapping):
        pass
    
    class ListDocumentClassificationJobsResponse(Mapping):
        pass
    
    class DocumentClassificationJobFilter(Mapping):
        pass
    
    class ListDocumentClassifiersRequest(Mapping):
        pass
    
    class ListDocumentClassifiersResponse(Mapping):
        pass
    
    class DocumentClassifierFilter(Mapping):
        pass
    
    class ListDominantLanguageDetectionJobsRequest(Mapping):
        pass
    
    class ListDominantLanguageDetectionJobsResponse(Mapping):
        pass
    
    class DominantLanguageDetectionJobFilter(Mapping):
        pass
    
    class ListEndpointsRequest(Mapping):
        pass
    
    class ListEndpointsResponse(Mapping):
        pass
    
    class EndpointFilter(Mapping):
        pass
    
    class ListEntitiesDetectionJobsRequest(Mapping):
        pass
    
    class ListEntitiesDetectionJobsResponse(Mapping):
        pass
    
    class EntitiesDetectionJobFilter(Mapping):
        pass
    
    class ListEntityRecognizersRequest(Mapping):
        pass
    
    class ListEntityRecognizersResponse(Mapping):
        pass
    
    class EntityRecognizerFilter(Mapping):
        pass
    
    class ListEventsDetectionJobsRequest(Mapping):
        pass
    
    class ListEventsDetectionJobsResponse(Mapping):
        pass
    
    class EventsDetectionJobFilter(Mapping):
        pass
    
    class ListKeyPhrasesDetectionJobsRequest(Mapping):
        pass
    
    class ListKeyPhrasesDetectionJobsResponse(Mapping):
        pass
    
    class KeyPhrasesDetectionJobFilter(Mapping):
        pass
    
    class ListPiiEntitiesDetectionJobsRequest(Mapping):
        pass
    
    class ListPiiEntitiesDetectionJobsResponse(Mapping):
        pass
    
    class PiiEntitiesDetectionJobFilter(Mapping):
        pass
    
    class ListSentimentDetectionJobsRequest(Mapping):
        pass
    
    class ListSentimentDetectionJobsResponse(Mapping):
        pass
    
    class SentimentDetectionJobFilter(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class ListTopicsDetectionJobsRequest(Mapping):
        pass
    
    class ListTopicsDetectionJobsResponse(Mapping):
        pass
    
    class TopicsDetectionJobFilter(Mapping):
        pass
    
    class StartDocumentClassificationJobRequest(Mapping):
        pass
    
    class StartDocumentClassificationJobResponse(Mapping):
        pass
    
    class InputDataConfig(Mapping):
        pass
    
    class OutputDataConfig(Mapping):
        pass
    
    class StartDominantLanguageDetectionJobRequest(Mapping):
        pass
    
    class StartDominantLanguageDetectionJobResponse(Mapping):
        pass
    
    class StartEntitiesDetectionJobRequest(Mapping):
        pass
    
    class StartEntitiesDetectionJobResponse(Mapping):
        pass
    
    class StartEventsDetectionJobRequest(Mapping):
        pass
    
    class StartEventsDetectionJobResponse(Mapping):
        pass
    
    class EventTypeString(object):
        pass
    
    class StartKeyPhrasesDetectionJobRequest(Mapping):
        pass
    
    class StartKeyPhrasesDetectionJobResponse(Mapping):
        pass
    
    class StartPiiEntitiesDetectionJobRequest(Mapping):
        pass
    
    class StartPiiEntitiesDetectionJobResponse(Mapping):
        pass
    
    class RedactionConfig(Mapping):
        pass
    
    class StartSentimentDetectionJobRequest(Mapping):
        pass
    
    class StartSentimentDetectionJobResponse(Mapping):
        pass
    
    class StartTopicsDetectionJobRequest(Mapping):
        pass
    
    class StartTopicsDetectionJobResponse(Mapping):
        pass
    
    class StopDominantLanguageDetectionJobRequest(Mapping):
        pass
    
    class StopDominantLanguageDetectionJobResponse(Mapping):
        pass
    
    class StopEntitiesDetectionJobRequest(Mapping):
        pass
    
    class StopEntitiesDetectionJobResponse(Mapping):
        pass
    
    class StopEventsDetectionJobRequest(Mapping):
        pass
    
    class StopEventsDetectionJobResponse(Mapping):
        pass
    
    class StopKeyPhrasesDetectionJobRequest(Mapping):
        pass
    
    class StopKeyPhrasesDetectionJobResponse(Mapping):
        pass
    
    class StopPiiEntitiesDetectionJobRequest(Mapping):
        pass
    
    class StopPiiEntitiesDetectionJobResponse(Mapping):
        pass
    
    class StopSentimentDetectionJobRequest(Mapping):
        pass
    
    class StopSentimentDetectionJobResponse(Mapping):
        pass
    
    class StopTrainingDocumentClassifierRequest(Mapping):
        pass
    
    class StopTrainingDocumentClassifierResponse(Mapping):
        pass
    
    class StopTrainingEntityRecognizerRequest(Mapping):
        pass
    
    class StopTrainingEntityRecognizerResponse(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateEndpointRequest(Mapping):
        pass
    
    class UpdateEndpointResponse(Mapping):
        pass
    
    def batch_detect_dominant_language(self, TextList: List[CustomerInputString]) -> BatchDetectDominantLanguageResponse:
        r"""Determines the dominant language of the input text for a batch of documents. For a list of languages that Amazon Comprehend can detect, see <a href="https://docs.aws.amazon.com/comprehend/latest/dg/how-languages.html">Amazon Comprehend Supported Languages</a>. 

        :param self:
        :param TextList:  A list containing the text of the input documents. The list can contain a maximum of 25 documents. Each document should contain at least 20 characters and must contain fewer than 5,000 bytes of UTF-8 encoded characters.<br/>
        :return: ErrorList:  A list containing one object for each document that contained an error. The results are sorted in ascending order by the <code>Index</code> field and match the order of the documents in the input list. If there are no errors in the batch, the <code>ErrorList</code> is empty.<br/>ResultList:  A list of objects containing the results of the operation. The results are sorted in ascending order by the <code>Index</code> field and match the order of the documents in the input list. If all of the documents contain an error, the <code>ResultList</code> is empty.<br/>        """
        pass

    def batch_detect_entities(self, LanguageCode: str, TextList: List[CustomerInputString]) -> BatchDetectEntitiesResponse:
        r"""Inspects the text of a batch of documents for named entities and returns information about them. For more information about named entities, see <a>how-entities</a> 

        :param self:
        :param LanguageCode:  The language of the input documents. You can specify any of the primary languages supported by Amazon Comprehend. All documents must be in the same language.<br/>TextList:  A list containing the text of the input documents. The list can contain a maximum of 25 documents. Each document must contain fewer than 5,000 bytes of UTF-8 encoded characters.<br/>
        :return: ErrorList:  A list containing one object for each document that contained an error. The results are sorted in ascending order by the <code>Index</code> field and match the order of the documents in the input list. If there are no errors in the batch, the <code>ErrorList</code> is empty.<br/>ResultList:  A list of objects containing the results of the operation. The results are sorted in ascending order by the <code>Index</code> field and match the order of the documents in the input list. If all of the documents contain an error, the <code>ResultList</code> is empty.<br/>        """
        pass

    def batch_detect_key_phrases(self, LanguageCode: str, TextList: List[CustomerInputString]) -> BatchDetectKeyPhrasesResponse:
        r"""Detects the key noun phrases found in a batch of documents.

        :param self:
        :param LanguageCode:  The language of the input documents. You can specify any of the primary languages supported by Amazon Comprehend. All documents must be in the same language.<br/>TextList:  A list containing the text of the input documents. The list can contain a maximum of 25 documents. Each document must contain fewer that 5,000 bytes of UTF-8 encoded characters.<br/>
        :return: ErrorList:  A list containing one object for each document that contained an error. The results are sorted in ascending order by the <code>Index</code> field and match the order of the documents in the input list. If there are no errors in the batch, the <code>ErrorList</code> is empty.<br/>ResultList:  A list of objects containing the results of the operation. The results are sorted in ascending order by the <code>Index</code> field and match the order of the documents in the input list. If all of the documents contain an error, the <code>ResultList</code> is empty.<br/>        """
        pass

    def batch_detect_sentiment(self, LanguageCode: str, TextList: List[CustomerInputString]) -> BatchDetectSentimentResponse:
        r"""Inspects a batch of documents and returns an inference of the prevailing sentiment, <code>POSITIVE</code>, <code>NEUTRAL</code>, <code>MIXED</code>, or <code>NEGATIVE</code>, in each one.

        :param self:
        :param LanguageCode:  The language of the input documents. You can specify any of the primary languages supported by Amazon Comprehend. All documents must be in the same language.<br/>TextList:  A list containing the text of the input documents. The list can contain a maximum of 25 documents. Each document must contain fewer that 5,000 bytes of UTF-8 encoded characters.<br/>
        :return: ErrorList:  A list containing one object for each document that contained an error. The results are sorted in ascending order by the <code>Index</code> field and match the order of the documents in the input list. If there are no errors in the batch, the <code>ErrorList</code> is empty.<br/>ResultList:  A list of objects containing the results of the operation. The results are sorted in ascending order by the <code>Index</code> field and match the order of the documents in the input list. If all of the documents contain an error, the <code>ResultList</code> is empty.<br/>        """
        pass

    def batch_detect_syntax(self, LanguageCode: str, TextList: List[CustomerInputString]) -> BatchDetectSyntaxResponse:
        r"""Inspects the text of a batch of documents for the syntax and part of speech of the words in the document and returns information about them. For more information, see <a>how-syntax</a>.

        :param self:
        :param LanguageCode:  The language of the input documents. You can specify any of the following languages supported by Amazon Comprehend: German ("de"), English ("en"), Spanish ("es"), French ("fr"), Italian ("it"), or Portuguese ("pt"). All documents must be in the same language.<br/>TextList:  A list containing the text of the input documents. The list can contain a maximum of 25 documents. Each document must contain fewer that 5,000 bytes of UTF-8 encoded characters.<br/>
        :return: ErrorList:  A list containing one object for each document that contained an error. The results are sorted in ascending order by the <code>Index</code> field and match the order of the documents in the input list. If there are no errors in the batch, the <code>ErrorList</code> is empty.<br/>ResultList:  A list of objects containing the results of the operation. The results are sorted in ascending order by the <code>Index</code> field and match the order of the documents in the input list. If all of the documents contain an error, the <code>ResultList</code> is empty.<br/>        """
        pass

    def classify_document(self, EndpointArn: str, Text: str) -> ClassifyDocumentResponse:
        r"""Creates a new document classification request to analyze a single document in real-time, using a previously created and trained custom model and an endpoint.

        :param self:
        :param EndpointArn:  The Amazon Resource Number (ARN) of the endpoint.<br/>Text:  The document text to be analyzed.<br/>
        :return: Labels:  The labels used the document being analyzed. These are used for multi-label trained models. Individual labels represent different categories that are related in some manner and are not mutually exclusive. For example, a movie can be just an action movie, or it can be an action movie, a science fiction movie, and a comedy, all at the same time. <br/>Classes:  The classes used by the document being analyzed. These are used for multi-class trained models. Individual classes are mutually exclusive and each document is expected to have only a single class assigned to it. For example, an animal can be a dog or a cat, but not both at the same time. <br/>        """
        pass

    def contains_pii_entities(self, LanguageCode: str, Text: str) -> ContainsPiiEntitiesResponse:
        r"""Analyzes input text for the presence of personally identifiable information (PII) and returns the labels of identified PII entity types such as name, address, bank account number, or phone number.

        :param self:
        :param LanguageCode:  The language of the input documents.<br/>Text:  Creates a new document classification request to analyze a single document in real-time, returning personally identifiable information (PII) entity labels.<br/>
        :return: Labels:  The labels used in the document being analyzed. Individual labels represent personally identifiable information (PII) entity types.<br/>        """
        pass

    def create_document_classifier(self, LanguageCode: str, InputDataConfig: DocumentClassifierInputDataConfig, DataAccessRoleArn: str, DocumentClassifierName: str, Tags: List[Tag]=None, OutputDataConfig: DocumentClassifierOutputDataConfig=None, ClientRequestToken: str=None, VolumeKmsKeyId: str=None, VpcConfig: VpcConfig=None, Mode: str=None, ModelKmsKeyId: str=None) -> CreateDocumentClassifierResponse:
        r"""Creates a new document classifier that you can use to categorize documents. To create a classifier, you provide a set of training documents that labeled with the categories that you want to use. After the classifier is trained you can use it to categorize a set of labeled documents into the categories. For more information, see <a>how-document-classification</a>.

        :param self:
        :param ModelKmsKeyId:  ID for the AWS Key Management Service (KMS) key that Amazon Comprehend uses to encrypt trained custom models. The ModelKmsKeyId can be either of the following formats: <ul> <li> KMS Key ID: <code>"1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> <li> Amazon Resource Name (ARN) of a KMS Key: <code>"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> </ul><br/>Mode:  Indicates the mode in which the classifier will be trained. The classifier can be trained in multi-class mode, which identifies one and only one class for each document, or multi-label mode, which identifies one or more labels for each document. In multi-label mode, multiple labels for an individual document are separated by a delimiter. The default delimiter between labels is a pipe (|).<br/>VpcConfig:  Configuration parameters for an optional private Virtual Private Cloud (VPC) containing the resources you are using for your custom classifier. For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html">Amazon VPC</a>. :<br/>VolumeKmsKeyId:  ID for the AWS Key Management Service (KMS) key that Amazon Comprehend uses to encrypt data on the storage volume attached to the ML compute instance(s) that process the analysis job. The VolumeKmsKeyId can be either of the following formats: <ul> <li> KMS Key ID: <code>"1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> <li> Amazon Resource Name (ARN) of a KMS Key: <code>"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> </ul><br/>LanguageCode:  The language of the input documents. You can specify any of the following languages supported by Amazon Comprehend: German ("de"), English ("en"), Spanish ("es"), French ("fr"), Italian ("it"), or Portuguese ("pt"). All documents must be in the same language.<br/>ClientRequestToken:  A unique identifier for the request. If you don't set the client request token, Amazon Comprehend generates one.<br/>OutputDataConfig:  Enables the addition of output results configuration parameters for custom classifier jobs.:<br/>InputDataConfig:  Specifies the format and location of the input data for the job.:<br/>Tags:  Tags to be associated with the document classifier being created. A tag is a key-value pair that adds as a metadata to a resource used by Amazon Comprehend. For example, a tag with "Sales" as the key might be added to a resource to indicate its use by the sales department. <br/>DataAccessRoleArn:  The Amazon Resource Name (ARN) of the AWS Identity and Management (IAM) role that grants Amazon Comprehend read access to your input data.<br/>DocumentClassifierName:  The name of the document classifier.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AugmentedManifests</i> A list of augmented manifest files that provide training data for your custom model. An augmented manifest file is a labeled dataset that is produced by Amazon SageMaker Ground Truth. This parameter is required if you set <code>DataFormat</code> to <code>AUGMENTED_MANIFEST</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LabelDelimiter</i> Indicates the delimiter used to separate each label for training a multi-label classifier. The default delimiter between labels is a pipe (|). You can use a different character as a delimiter (if it's an allowed character) by specifying it under Delimiter for labels. If the training documents use a delimiter other than the default or the delimiter you specify, the labels on that line will be combined to make a single unique label, such as LABELLABELLABEL.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Uri</i> The Amazon S3 URI for the input data. The S3 bucket must be in the same region as the API endpoint that you are calling. The URI can point to a single input file or it can provide the prefix for a collection of input files. For example, if you use the URI <code>S3://bucketName/prefix</code>, if the prefix is a single file, Amazon Comprehend uses that file as input. If more than one file begins with the prefix, Amazon Comprehend uses all of them as input. This parameter is required if you set <code>DataFormat</code> to <code>COMPREHEND_CSV</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataFormat</i> The format of your training data: <ul> <li>  <code>COMPREHEND_CSV</code>: A two-column CSV file, where labels are provided in the first column, and documents are provided in the second. If you use this value, you must provide the <code>S3Uri</code> parameter in your request. </li> <li>  <code>AUGMENTED_MANIFEST</code>: A labeled dataset that is produced by Amazon SageMaker Ground Truth. This file is in JSON lines format. Each line is a complete JSON object that contains a training document and its associated labels.  If you use this value, you must provide the <code>AugmentedManifests</code> parameter in your request. </li> </ul> If you don't specify a value, Amazon Comprehend uses <code>COMPREHEND_CSV</code> as the default.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> ID for the AWS Key Management Service (KMS) key that Amazon Comprehend uses to encrypt the output results from an analysis job. The KmsKeyId can be one of the following formats: <ul> <li> KMS Key ID: <code>"1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> <li> Amazon Resource Name (ARN) of a KMS Key: <code>"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> <li> KMS Key Alias: <code>"alias/ExampleAlias"</code>  </li> <li> ARN of a KMS Key Alias: <code>"arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias"</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Uri</i> When you use the <code>OutputDataConfig</code> object while creating a custom classifier, you specify the Amazon S3 location where you want to write the confusion matrix. The URI must be in the same region as the API endpoint that you are calling. The location is used as the prefix for the actual location of this output file. When the custom classifier job is finished, the service creates the output file in a directory specific to the job. The <code>S3Uri</code> field contains the location of the output file, called <code>output.tar.gz</code>. It is a compressed archive that contains the confusion matrix.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Subnets</i> The ID for each subnet being used in your private VPC. This subnet is a subset of the a range of IPv4 addresses used by the VPC and is specific to a given availability zone in the VPC’s region. This ID number is preceded by "subnet-", for instance: "subnet-04ccf456919e69055". For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html">VPCs and Subnets</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> The ID number for a security group on an instance of your private VPC. Security groups on your VPC function serve as a virtual firewall to control inbound and outbound traffic and provides security for the resources that you’ll be accessing on the VPC. This ID number is preceded by "sg-", for instance: "sg-03b388029b0a285ea". For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html">Security Groups for your VPC</a>. <br/>
        :return: DocumentClassifierArn:  The Amazon Resource Name (ARN) that identifies the document classifier.<br/>        """
        pass

    def create_endpoint(self, DesiredInferenceUnits: int, ModelArn: str, EndpointName: str, ClientRequestToken: str=None, Tags: List[Tag]=None, DataAccessRoleArn: str=None) -> CreateEndpointResponse:
        r"""Creates a model-specific endpoint for synchronous inference for a previously trained custom model 

        :param self:
        :param DataAccessRoleArn:  The Amazon Resource Name (ARN) of the AWS identity and Access Management (IAM) role that grants Amazon Comprehend read access to trained custom models encrypted with a customer managed key (ModelKmsKeyId).<br/>Tags:  Tags associated with the endpoint being created. A tag is a key-value pair that adds metadata to the endpoint. For example, a tag with "Sales" as the key might be added to an endpoint to indicate its use by the sales department. <br/>ClientRequestToken:  An idempotency token provided by the customer. If this token matches a previous endpoint creation request, Amazon Comprehend will not return a <code>ResourceInUseException</code>. <br/>DesiredInferenceUnits:   The desired number of inference units to be used by the model using this endpoint. Each inference unit represents of a throughput of 100 characters per second.<br/>ModelArn:  The Amazon Resource Number (ARN) of the model to which the endpoint will be attached.<br/>EndpointName:  This is the descriptive suffix that becomes part of the <code>EndpointArn</code> used for all subsequent requests to this resource. <br/>
        :return: EndpointArn:  The Amazon Resource Number (ARN) of the endpoint being created.<br/>        """
        pass

    def create_entity_recognizer(self, LanguageCode: str, InputDataConfig: EntityRecognizerInputDataConfig, DataAccessRoleArn: str, RecognizerName: str, Tags: List[Tag]=None, ClientRequestToken: str=None, VolumeKmsKeyId: str=None, VpcConfig: VpcConfig=None, ModelKmsKeyId: str=None) -> CreateEntityRecognizerResponse:
        r"""Creates an entity recognizer using submitted files. After your <code>CreateEntityRecognizer</code> request is submitted, you can check job status using the API. 

        :param self:
        :param ModelKmsKeyId:  ID for the AWS Key Management Service (KMS) key that Amazon Comprehend uses to encrypt trained custom models. The ModelKmsKeyId can be either of the following formats <ul> <li> KMS Key ID: <code>"1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> <li> Amazon Resource Name (ARN) of a KMS Key: <code>"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> </ul><br/>VpcConfig:  Configuration parameters for an optional private Virtual Private Cloud (VPC) containing the resources you are using for your custom entity recognizer. For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html">Amazon VPC</a>. :<br/>VolumeKmsKeyId:  ID for the AWS Key Management Service (KMS) key that Amazon Comprehend uses to encrypt data on the storage volume attached to the ML compute instance(s) that process the analysis job. The VolumeKmsKeyId can be either of the following formats: <ul> <li> KMS Key ID: <code>"1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> <li> Amazon Resource Name (ARN) of a KMS Key: <code>"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> </ul><br/>LanguageCode:   You can specify any of the following languages supported by Amazon Comprehend: English ("en"), Spanish ("es"), French ("fr"), Italian ("it"), German ("de"), or Portuguese ("pt"). All documents must be in the same language.<br/>ClientRequestToken:   A unique identifier for the request. If you don't set the client request token, Amazon Comprehend generates one.<br/>InputDataConfig:  Specifies the format and location of the input data. The S3 bucket containing the input data must be located in the same region as the entity recognizer being created. :<br/>Tags:  Tags to be associated with the entity recognizer being created. A tag is a key-value pair that adds as a metadata to a resource used by Amazon Comprehend. For example, a tag with "Sales" as the key might be added to a resource to indicate its use by the sales department. <br/>DataAccessRoleArn:  The Amazon Resource Name (ARN) of the AWS Identity and Management (IAM) role that grants Amazon Comprehend read access to your input data.<br/>RecognizerName:  The name given to the newly created recognizer. Recognizer names can be a maximum of 256 characters. Alphanumeric characters, hyphens (-) and underscores (_) are allowed. The name must be unique in the account/region.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AugmentedManifests</i> A list of augmented manifest files that provide training data for your custom model. An augmented manifest file is a labeled dataset that is produced by Amazon SageMaker Ground Truth. This parameter is required if you set <code>DataFormat</code> to <code>AUGMENTED_MANIFEST</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EntityList</i> The S3 location of the CSV file that has the entity list for your custom entity recognizer.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EntityList</b>: The S3 location of the CSV file that has the entity list for your custom entity recognizer.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Annotations</i> The S3 location of the CSV file that annotates your training documents.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Annotations</b>: The S3 location of the CSV file that annotates your training documents.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Documents</i> The S3 location of the folder that contains the training documents for your custom entity recognizer. This parameter is required if you set <code>DataFormat</code> to <code>COMPREHEND_CSV</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Documents</b>: The S3 location of the folder that contains the training documents for your custom entity recognizer. This parameter is required if you set <code>DataFormat</code> to <code>COMPREHEND_CSV</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EntityTypes</i> The entity types in the labeled training data that Amazon Comprehend uses to train the custom entity recognizer. Any entity types that you don't specify are ignored. A maximum of 25 entity types can be used at one time to train an entity recognizer. Entity types must not contain the following invalid characters: \n (line break), \\n (escaped line break), \r (carriage return), \\r (escaped carriage return), \t (tab), \\t (escaped tab), space, and , (comma). <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataFormat</i> The format of your training data: <ul> <li>  <code>COMPREHEND_CSV</code>: A CSV file that supplements your training documents. The CSV file contains information about the custom entities that your trained model will detect. The required format of the file depends on whether you are providing annotations or an entity list. If you use this value, you must provide your CSV file by using either the <code>Annotations</code> or <code>EntityList</code> parameters. You must provide your training documents by using the <code>Documents</code> parameter. </li> <li>  <code>AUGMENTED_MANIFEST</code>: A labeled dataset that is produced by Amazon SageMaker Ground Truth. This file is in JSON lines format. Each line is a complete JSON object that contains a training document and its labels. Each label annotates a named entity in the training document.  If you use this value, you must provide the <code>AugmentedManifests</code> parameter in your request. </li> </ul> If you don't specify a value, Amazon Comprehend uses <code>COMPREHEND_CSV</code> as the default.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Uri</i>  Specifies the Amazon S3 location where the training documents for an entity recognizer are located. The URI must be in the same region as the API endpoint that you are calling.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Uri</i>  Specifies the Amazon S3 location where the annotations for an entity recognizer are located. The URI must be in the same region as the API endpoint that you are calling.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Uri</i> Specifies the Amazon S3 location where the entity list is located. The URI must be in the same region as the API endpoint that you are calling.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Subnets</i> The ID for each subnet being used in your private VPC. This subnet is a subset of the a range of IPv4 addresses used by the VPC and is specific to a given availability zone in the VPC’s region. This ID number is preceded by "subnet-", for instance: "subnet-04ccf456919e69055". For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html">VPCs and Subnets</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> The ID number for a security group on an instance of your private VPC. Security groups on your VPC function serve as a virtual firewall to control inbound and outbound traffic and provides security for the resources that you’ll be accessing on the VPC. This ID number is preceded by "sg-", for instance: "sg-03b388029b0a285ea". For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html">Security Groups for your VPC</a>. <br/>
        :return: EntityRecognizerArn:  The Amazon Resource Name (ARN) that identifies the entity recognizer.<br/>        """
        pass

    def delete_document_classifier(self, DocumentClassifierArn: str) -> DeleteDocumentClassifierResponse:
        r"""Deletes a previously created document classifier Only those classifiers that are in terminated states (IN_ERROR, TRAINED) will be deleted. If an active inference job is using the model, a <code>ResourceInUseException</code> will be returned. This is an asynchronous action that puts the classifier into a DELETING state, and it is then removed by a background job. Once removed, the classifier disappears from your account and is no longer available for use. 

        :param self:
        :param DocumentClassifierArn:  The Amazon Resource Name (ARN) that identifies the document classifier. <br/>
        :return:         """
        pass

    def delete_endpoint(self, EndpointArn: str) -> DeleteEndpointResponse:
        r"""Deletes a model-specific endpoint for a previously-trained custom model. All endpoints must be deleted in order for the model to be deleted.

        :param self:
        :param EndpointArn:  The Amazon Resource Number (ARN) of the endpoint being deleted.<br/>
        :return:         """
        pass

    def delete_entity_recognizer(self, EntityRecognizerArn: str) -> DeleteEntityRecognizerResponse:
        r"""Deletes an entity recognizer. Only those recognizers that are in terminated states (IN_ERROR, TRAINED) will be deleted. If an active inference job is using the model, a <code>ResourceInUseException</code> will be returned. This is an asynchronous action that puts the recognizer into a DELETING state, and it is then removed by a background job. Once removed, the recognizer disappears from your account and is no longer available for use. 

        :param self:
        :param EntityRecognizerArn:  The Amazon Resource Name (ARN) that identifies the entity recognizer.<br/>
        :return:         """
        pass

    def describe_document_classification_job(self, JobId: str) -> DescribeDocumentClassificationJobResponse:
        r"""Gets the properties associated with a document classification job. Use this operation to get the status of a classification job.

        :param self:
        :param JobId:  The identifier that Amazon Comprehend generated for the job. The operation returns this identifier in its response.<br/>
        :return: DocumentClassificationJobProperties:  An object that describes the properties associated with the document classification job.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcConfig</i>  Configuration parameters for a private Virtual Private Cloud (VPC) containing the resources you are using for your document classification job. For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html">Amazon VPC</a>. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>VpcConfig</b>:  Configuration parameters for a private Virtual Private Cloud (VPC) containing the resources you are using for your document classification job. For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html">Amazon VPC</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VolumeKmsKeyId</i> ID for the AWS Key Management Service (KMS) key that Amazon Comprehend uses to encrypt data on the storage volume attached to the ML compute instance(s) that process the analysis job. The VolumeKmsKeyId can be either of the following formats: <ul> <li> KMS Key ID: <code>"1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> <li> Amazon Resource Name (ARN) of a KMS Key: <code>"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataAccessRoleArn</i> The Amazon Resource Name (ARN) of the AWS identity and Access Management (IAM) role that grants Amazon Comprehend read access to your input data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OutputDataConfig</i> The output data configuration that you supplied when you created the document classification job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>OutputDataConfig</b>: The output data configuration that you supplied when you created the document classification job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InputDataConfig</i> The input data configuration that you supplied when you created the document classification job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>InputDataConfig</b>: The input data configuration that you supplied when you created the document classification job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DocumentClassifierArn</i> The Amazon Resource Name (ARN) that identifies the document classifier. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndTime</i> The time that the document classification job completed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubmitTime</i> The time that the document classification job was submitted for processing.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> A description of the status of the job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobStatus</i> The current status of the document classification job. If the status is <code>FAILED</code>, the <code>Message</code> field shows the reason for the failure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobName</i> The name that you assigned to the document classification job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobId</i> The identifier assigned to the document classification job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InputFormat</i> Specifies how the text in an input file should be processed: <ul> <li>  <code>ONE_DOC_PER_FILE</code> - Each file is considered a separate document. Use this option when you are processing large documents, such as newspaper articles or scientific papers. </li> <li>  <code>ONE_DOC_PER_LINE</code> - Each line in a file is considered a separate document. Use this option when you are processing many short documents, such as text messages. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Uri</i> The Amazon S3 URI for the input data. The URI must be in same region as the API endpoint that you are calling. The URI can point to a single input file or it can provide the prefix for a collection of data files.  For example, if you use the URI <code>S3://bucketName/prefix</code>, if the prefix is a single file, Amazon Comprehend uses that file as input. If more than one file begins with the prefix, Amazon Comprehend uses all of them as input.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> ID for the AWS Key Management Service (KMS) key that Amazon Comprehend uses to encrypt the output results from an analysis job. The KmsKeyId can be one of the following formats: <ul> <li> KMS Key ID: <code>"1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> <li> Amazon Resource Name (ARN) of a KMS Key: <code>"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> <li> KMS Key Alias: <code>"alias/ExampleAlias"</code>  </li> <li> ARN of a KMS Key Alias: <code>"arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias"</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Uri</i> When you use the <code>OutputDataConfig</code> object with asynchronous operations, you specify the Amazon S3 location where you want to write the output data. The URI must be in the same region as the API endpoint that you are calling. The location is used as the prefix for the actual location of the output file. When the topic detection job is finished, the service creates an output file in a directory specific to the job. The <code>S3Uri</code> field contains the location of the output file, called <code>output.tar.gz</code>. It is a compressed archive that contains the ouput of the operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Subnets</i> The ID for each subnet being used in your private VPC. This subnet is a subset of the a range of IPv4 addresses used by the VPC and is specific to a given availability zone in the VPC’s region. This ID number is preceded by "subnet-", for instance: "subnet-04ccf456919e69055". For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html">VPCs and Subnets</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> The ID number for a security group on an instance of your private VPC. Security groups on your VPC function serve as a virtual firewall to control inbound and outbound traffic and provides security for the resources that you’ll be accessing on the VPC. This ID number is preceded by "sg-", for instance: "sg-03b388029b0a285ea". For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html">Security Groups for your VPC</a>. <br/>        """
        pass

    def describe_document_classifier(self, DocumentClassifierArn: str) -> DescribeDocumentClassifierResponse:
        r"""Gets the properties associated with a document classifier.

        :param self:
        :param DocumentClassifierArn:  The Amazon Resource Name (ARN) that identifies the document classifier. The operation returns this identifier in its response.<br/>
        :return: DocumentClassifierProperties:  An object that contains the properties associated with a document classifier.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ModelKmsKeyId</i> ID for the AWS Key Management Service (KMS) key that Amazon Comprehend uses to encrypt trained custom models. The ModelKmsKeyId can be either of the following formats: <ul> <li> KMS Key ID: <code>"1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> <li> Amazon Resource Name (ARN) of a KMS Key: <code>"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Mode</i> Indicates the mode in which the specific classifier was trained. This also indicates the format of input documents and the format of the confusion matrix. Each classifier can only be trained in one mode and this cannot be changed once the classifier is trained.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcConfig</i>  Configuration parameters for a private Virtual Private Cloud (VPC) containing the resources you are using for your custom classifier. For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html">Amazon VPC</a>. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>VpcConfig</b>:  Configuration parameters for a private Virtual Private Cloud (VPC) containing the resources you are using for your custom classifier. For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html">Amazon VPC</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VolumeKmsKeyId</i> ID for the AWS Key Management Service (KMS) key that Amazon Comprehend uses to encrypt data on the storage volume attached to the ML compute instance(s) that process the analysis job. The VolumeKmsKeyId can be either of the following formats: <ul> <li> KMS Key ID: <code>"1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> <li> Amazon Resource Name (ARN) of a KMS Key: <code>"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataAccessRoleArn</i> The Amazon Resource Name (ARN) of the AWS Identity and Management (IAM) role that grants Amazon Comprehend read access to your input data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClassifierMetadata</i> Information about the document classifier, including the number of documents used for training the classifier, the number of documents used for test the classifier, and an accuracy rating.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ClassifierMetadata</b>: Information about the document classifier, including the number of documents used for training the classifier, the number of documents used for test the classifier, and an accuracy rating.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OutputDataConfig</i>  Provides output results configuration parameters for custom classifier jobs.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>OutputDataConfig</b>:  Provides output results configuration parameters for custom classifier jobs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InputDataConfig</i> The input data configuration that you supplied when you created the document classifier for training.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>InputDataConfig</b>: The input data configuration that you supplied when you created the document classifier for training.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TrainingEndTime</i> The time that training of the document classifier was completed. Indicates the time when the training completes on documentation classifiers. You are billed for the time interval between this time and the value of TrainingStartTime.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TrainingStartTime</i> Indicates the time when the training starts on documentation classifiers. You are billed for the time interval between this time and the value of TrainingEndTime. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndTime</i> The time that training the document classifier completed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubmitTime</i> The time that the document classifier was submitted for training.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> Additional information about the status of the classifier.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the document classifier. If the status is <code>TRAINED</code> the classifier is ready to use. If the status is <code>FAILED</code> you can see additional information about why the classifier wasn't trained in the <code>Message</code> field.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LanguageCode</i> The language code for the language of the documents that the classifier was trained on.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DocumentClassifierArn</i> The Amazon Resource Name (ARN) that identifies the document classifier.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AugmentedManifests</i> A list of augmented manifest files that provide training data for your custom model. An augmented manifest file is a labeled dataset that is produced by Amazon SageMaker Ground Truth. This parameter is required if you set <code>DataFormat</code> to <code>AUGMENTED_MANIFEST</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LabelDelimiter</i> Indicates the delimiter used to separate each label for training a multi-label classifier. The default delimiter between labels is a pipe (|). You can use a different character as a delimiter (if it's an allowed character) by specifying it under Delimiter for labels. If the training documents use a delimiter other than the default or the delimiter you specify, the labels on that line will be combined to make a single unique label, such as LABELLABELLABEL.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Uri</i> The Amazon S3 URI for the input data. The S3 bucket must be in the same region as the API endpoint that you are calling. The URI can point to a single input file or it can provide the prefix for a collection of input files. For example, if you use the URI <code>S3://bucketName/prefix</code>, if the prefix is a single file, Amazon Comprehend uses that file as input. If more than one file begins with the prefix, Amazon Comprehend uses all of them as input. This parameter is required if you set <code>DataFormat</code> to <code>COMPREHEND_CSV</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DataFormat</i> The format of your training data: <ul> <li>  <code>COMPREHEND_CSV</code>: A two-column CSV file, where labels are provided in the first column, and documents are provided in the second. If you use this value, you must provide the <code>S3Uri</code> parameter in your request. </li> <li>  <code>AUGMENTED_MANIFEST</code>: A labeled dataset that is produced by Amazon SageMaker Ground Truth. This file is in JSON lines format. Each line is a complete JSON object that contains a training document and its associated labels.  If you use this value, you must provide the <code>AugmentedManifests</code> parameter in your request. </li> </ul> If you don't specify a value, Amazon Comprehend uses <code>COMPREHEND_CSV</code> as the default.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> ID for the AWS Key Management Service (KMS) key that Amazon Comprehend uses to encrypt the output results from an analysis job. The KmsKeyId can be one of the following formats: <ul> <li> KMS Key ID: <code>"1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> <li> Amazon Resource Name (ARN) of a KMS Key: <code>"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> <li> KMS Key Alias: <code>"alias/ExampleAlias"</code>  </li> <li> ARN of a KMS Key Alias: <code>"arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias"</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Uri</i> When you use the <code>OutputDataConfig</code> object while creating a custom classifier, you specify the Amazon S3 location where you want to write the confusion matrix. The URI must be in the same region as the API endpoint that you are calling. The location is used as the prefix for the actual location of this output file. When the custom classifier job is finished, the service creates the output file in a directory specific to the job. The <code>S3Uri</code> field contains the location of the output file, called <code>output.tar.gz</code>. It is a compressed archive that contains the confusion matrix.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberOfTestDocuments</i> The number of documents in the input data that were used to test the classifier. Typically this is 10 to 20 percent of the input documents, up to 10,000 documents.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberOfTrainedDocuments</i> The number of documents in the input data that were used to train the classifier. Typically this is 80 to 90 percent of the input documents.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberOfLabels</i> The number of labels in the input data. <br/> Describes the result metrics for the test data associated with an documentation classifier.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EvaluationMetrics</b>:  Describes the result metrics for the test data associated with an documentation classifier.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Subnets</i> The ID for each subnet being used in your private VPC. This subnet is a subset of the a range of IPv4 addresses used by the VPC and is specific to a given availability zone in the VPC’s region. This ID number is preceded by "subnet-", for instance: "subnet-04ccf456919e69055". For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html">VPCs and Subnets</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> The ID number for a security group on an instance of your private VPC. Security groups on your VPC function serve as a virtual firewall to control inbound and outbound traffic and provides security for the resources that you’ll be accessing on the VPC. This ID number is preceded by "sg-", for instance: "sg-03b388029b0a285ea". For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html">Security Groups for your VPC</a>. <br/>        """
        pass

    def describe_dominant_language_detection_job(self, JobId: str) -> DescribeDominantLanguageDetectionJobResponse:
        r"""Gets the properties associated with a dominant language detection job. Use this operation to get the status of a detection job.

        :param self:
        :param JobId:  The identifier that Amazon Comprehend generated for the job. The operation returns this identifier in its response.<br/>
        :return: DominantLanguageDetectionJobProperties:  An object that contains the properties associated with a dominant language detection job.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcConfig</i>  Configuration parameters for a private Virtual Private Cloud (VPC) containing the resources you are using for your dominant language detection job. For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html">Amazon VPC</a>. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>VpcConfig</b>:  Configuration parameters for a private Virtual Private Cloud (VPC) containing the resources you are using for your dominant language detection job. For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html">Amazon VPC</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VolumeKmsKeyId</i> ID for the AWS Key Management Service (KMS) key that Amazon Comprehend uses to encrypt data on the storage volume attached to the ML compute instance(s) that process the analysis job. The VolumeKmsKeyId can be either of the following formats: <ul> <li> KMS Key ID: <code>"1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> <li> Amazon Resource Name (ARN) of a KMS Key: <code>"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataAccessRoleArn</i> The Amazon Resource Name (ARN) that gives Amazon Comprehend read access to your input data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OutputDataConfig</i> The output data configuration that you supplied when you created the dominant language detection job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>OutputDataConfig</b>: The output data configuration that you supplied when you created the dominant language detection job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InputDataConfig</i> The input data configuration that you supplied when you created the dominant language detection job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>InputDataConfig</b>: The input data configuration that you supplied when you created the dominant language detection job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndTime</i> The time that the dominant language detection job completed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubmitTime</i> The time that the dominant language detection job was submitted for processing.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> A description for the status of a job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobStatus</i> The current status of the dominant language detection job. If the status is <code>FAILED</code>, the <code>Message</code> field shows the reason for the failure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobName</i> The name that you assigned to the dominant language detection job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobId</i> The identifier assigned to the dominant language detection job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InputFormat</i> Specifies how the text in an input file should be processed: <ul> <li>  <code>ONE_DOC_PER_FILE</code> - Each file is considered a separate document. Use this option when you are processing large documents, such as newspaper articles or scientific papers. </li> <li>  <code>ONE_DOC_PER_LINE</code> - Each line in a file is considered a separate document. Use this option when you are processing many short documents, such as text messages. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Uri</i> The Amazon S3 URI for the input data. The URI must be in same region as the API endpoint that you are calling. The URI can point to a single input file or it can provide the prefix for a collection of data files.  For example, if you use the URI <code>S3://bucketName/prefix</code>, if the prefix is a single file, Amazon Comprehend uses that file as input. If more than one file begins with the prefix, Amazon Comprehend uses all of them as input.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> ID for the AWS Key Management Service (KMS) key that Amazon Comprehend uses to encrypt the output results from an analysis job. The KmsKeyId can be one of the following formats: <ul> <li> KMS Key ID: <code>"1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> <li> Amazon Resource Name (ARN) of a KMS Key: <code>"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> <li> KMS Key Alias: <code>"alias/ExampleAlias"</code>  </li> <li> ARN of a KMS Key Alias: <code>"arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias"</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Uri</i> When you use the <code>OutputDataConfig</code> object with asynchronous operations, you specify the Amazon S3 location where you want to write the output data. The URI must be in the same region as the API endpoint that you are calling. The location is used as the prefix for the actual location of the output file. When the topic detection job is finished, the service creates an output file in a directory specific to the job. The <code>S3Uri</code> field contains the location of the output file, called <code>output.tar.gz</code>. It is a compressed archive that contains the ouput of the operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Subnets</i> The ID for each subnet being used in your private VPC. This subnet is a subset of the a range of IPv4 addresses used by the VPC and is specific to a given availability zone in the VPC’s region. This ID number is preceded by "subnet-", for instance: "subnet-04ccf456919e69055". For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html">VPCs and Subnets</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> The ID number for a security group on an instance of your private VPC. Security groups on your VPC function serve as a virtual firewall to control inbound and outbound traffic and provides security for the resources that you’ll be accessing on the VPC. This ID number is preceded by "sg-", for instance: "sg-03b388029b0a285ea". For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html">Security Groups for your VPC</a>. <br/>        """
        pass

    def describe_endpoint(self, EndpointArn: str) -> DescribeEndpointResponse:
        r"""Gets the properties associated with a specific endpoint. Use this operation to get the status of an endpoint.

        :param self:
        :param EndpointArn:  The Amazon Resource Number (ARN) of the endpoint being described.<br/>
        :return: EndpointProperties:  Describes information associated with the specific endpoint.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataAccessRoleArn</i> The Amazon Resource Name (ARN) of the AWS identity and Access Management (IAM) role that grants Amazon Comprehend read access to trained custom models encrypted with a customer managed key (ModelKmsKeyId).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedTime</i> The date and time that the endpoint was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The creation date and time of the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CurrentInferenceUnits</i> The number of inference units currently used by the model using this endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DesiredInferenceUnits</i> The desired number of inference units to be used by the model using this endpoint. Each inference unit represents of a throughput of 100 characters per second.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ModelArn</i> The Amazon Resource Number (ARN) of the model to which the endpoint is attached.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> Specifies a reason for failure in cases of <code>Failed</code> status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Specifies the status of the endpoint. Because the endpoint updates and creation are asynchronous, so customers will need to wait for the endpoint to be <code>Ready</code> status before making inference requests.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointArn</i> The Amazon Resource Number (ARN) of the endpoint.<br/>        """
        pass

    def describe_entities_detection_job(self, JobId: str) -> DescribeEntitiesDetectionJobResponse:
        r"""Gets the properties associated with an entities detection job. Use this operation to get the status of a detection job.

        :param self:
        :param JobId:  The identifier that Amazon Comprehend generated for the job. The operation returns this identifier in its response.<br/>
        :return: EntitiesDetectionJobProperties:  An object that contains the properties associated with an entities detection job.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcConfig</i>  Configuration parameters for a private Virtual Private Cloud (VPC) containing the resources you are using for your entity detection job. For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html">Amazon VPC</a>. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>VpcConfig</b>:  Configuration parameters for a private Virtual Private Cloud (VPC) containing the resources you are using for your entity detection job. For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html">Amazon VPC</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VolumeKmsKeyId</i> ID for the AWS Key Management Service (KMS) key that Amazon Comprehend uses to encrypt data on the storage volume attached to the ML compute instance(s) that process the analysis job. The VolumeKmsKeyId can be either of the following formats: <ul> <li> KMS Key ID: <code>"1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> <li> Amazon Resource Name (ARN) of a KMS Key: <code>"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataAccessRoleArn</i> The Amazon Resource Name (ARN) that gives Amazon Comprehend read access to your input data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LanguageCode</i> The language code of the input documents.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OutputDataConfig</i> The output data configuration that you supplied when you created the entities detection job. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>OutputDataConfig</b>: The output data configuration that you supplied when you created the entities detection job. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InputDataConfig</i> The input data configuration that you supplied when you created the entities detection job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>InputDataConfig</b>: The input data configuration that you supplied when you created the entities detection job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EntityRecognizerArn</i> The Amazon Resource Name (ARN) that identifies the entity recognizer.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndTime</i> The time that the entities detection job completed<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubmitTime</i> The time that the entities detection job was submitted for processing.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> A description of the status of a job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobStatus</i> The current status of the entities detection job. If the status is <code>FAILED</code>, the <code>Message</code> field shows the reason for the failure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobName</i> The name that you assigned the entities detection job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobId</i> The identifier assigned to the entities detection job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InputFormat</i> Specifies how the text in an input file should be processed: <ul> <li>  <code>ONE_DOC_PER_FILE</code> - Each file is considered a separate document. Use this option when you are processing large documents, such as newspaper articles or scientific papers. </li> <li>  <code>ONE_DOC_PER_LINE</code> - Each line in a file is considered a separate document. Use this option when you are processing many short documents, such as text messages. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Uri</i> The Amazon S3 URI for the input data. The URI must be in same region as the API endpoint that you are calling. The URI can point to a single input file or it can provide the prefix for a collection of data files.  For example, if you use the URI <code>S3://bucketName/prefix</code>, if the prefix is a single file, Amazon Comprehend uses that file as input. If more than one file begins with the prefix, Amazon Comprehend uses all of them as input.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> ID for the AWS Key Management Service (KMS) key that Amazon Comprehend uses to encrypt the output results from an analysis job. The KmsKeyId can be one of the following formats: <ul> <li> KMS Key ID: <code>"1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> <li> Amazon Resource Name (ARN) of a KMS Key: <code>"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> <li> KMS Key Alias: <code>"alias/ExampleAlias"</code>  </li> <li> ARN of a KMS Key Alias: <code>"arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias"</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Uri</i> When you use the <code>OutputDataConfig</code> object with asynchronous operations, you specify the Amazon S3 location where you want to write the output data. The URI must be in the same region as the API endpoint that you are calling. The location is used as the prefix for the actual location of the output file. When the topic detection job is finished, the service creates an output file in a directory specific to the job. The <code>S3Uri</code> field contains the location of the output file, called <code>output.tar.gz</code>. It is a compressed archive that contains the ouput of the operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Subnets</i> The ID for each subnet being used in your private VPC. This subnet is a subset of the a range of IPv4 addresses used by the VPC and is specific to a given availability zone in the VPC’s region. This ID number is preceded by "subnet-", for instance: "subnet-04ccf456919e69055". For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html">VPCs and Subnets</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> The ID number for a security group on an instance of your private VPC. Security groups on your VPC function serve as a virtual firewall to control inbound and outbound traffic and provides security for the resources that you’ll be accessing on the VPC. This ID number is preceded by "sg-", for instance: "sg-03b388029b0a285ea". For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html">Security Groups for your VPC</a>. <br/>        """
        pass

    def describe_entity_recognizer(self, EntityRecognizerArn: str) -> DescribeEntityRecognizerResponse:
        r"""Provides details about an entity recognizer including status, S3 buckets containing training data, recognizer metadata, metrics, and so on.

        :param self:
        :param EntityRecognizerArn:  The Amazon Resource Name (ARN) that identifies the entity recognizer.<br/>
        :return: EntityRecognizerProperties:  Describes information associated with an entity recognizer.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ModelKmsKeyId</i> ID for the AWS Key Management Service (KMS) key that Amazon Comprehend uses to encrypt trained custom models. The ModelKmsKeyId can be either of the following formats:  <ul> <li> KMS Key ID: <code>"1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> <li> Amazon Resource Name (ARN) of a KMS Key: <code>"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcConfig</i>  Configuration parameters for a private Virtual Private Cloud (VPC) containing the resources you are using for your custom entity recognizer. For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html">Amazon VPC</a>. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>VpcConfig</b>:  Configuration parameters for a private Virtual Private Cloud (VPC) containing the resources you are using for your custom entity recognizer. For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html">Amazon VPC</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VolumeKmsKeyId</i> ID for the AWS Key Management Service (KMS) key that Amazon Comprehend uses to encrypt data on the storage volume attached to the ML compute instance(s) that process the analysis job. The VolumeKmsKeyId can be either of the following formats: <ul> <li> KMS Key ID: <code>"1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> <li> Amazon Resource Name (ARN) of a KMS Key: <code>"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataAccessRoleArn</i>  The Amazon Resource Name (ARN) of the AWS Identity and Management (IAM) role that grants Amazon Comprehend read access to your input data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecognizerMetadata</i>  Provides information about an entity recognizer.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RecognizerMetadata</b>:  Provides information about an entity recognizer.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InputDataConfig</i> The input data properties of an entity recognizer.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>InputDataConfig</b>: The input data properties of an entity recognizer.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TrainingEndTime</i> The time that training of the entity recognizer was completed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TrainingStartTime</i> The time that training of the entity recognizer started.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndTime</i> The time that the recognizer creation completed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubmitTime</i> The time that the recognizer was submitted for processing.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i>  A description of the status of the recognizer.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Provides the status of the entity recognizer.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LanguageCode</i>  The language of the input documents. All documents must be in the same language. Only English ("en") is currently supported.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EntityRecognizerArn</i> The Amazon Resource Name (ARN) that identifies the entity recognizer.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EntityTypes</i> The entity types in the labeled training data that Amazon Comprehend uses to train the custom entity recognizer. Any entity types that you don't specify are ignored. A maximum of 25 entity types can be used at one time to train an entity recognizer. Entity types must not contain the following invalid characters: \n (line break), \\n (escaped line break), \r (carriage return), \\r (escaped carriage return), \t (tab), \\t (escaped tab), space, and , (comma). <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DataFormat</i> The format of your training data: <ul> <li>  <code>COMPREHEND_CSV</code>: A CSV file that supplements your training documents. The CSV file contains information about the custom entities that your trained model will detect. The required format of the file depends on whether you are providing annotations or an entity list. If you use this value, you must provide your CSV file by using either the <code>Annotations</code> or <code>EntityList</code> parameters. You must provide your training documents by using the <code>Documents</code> parameter. </li> <li>  <code>AUGMENTED_MANIFEST</code>: A labeled dataset that is produced by Amazon SageMaker Ground Truth. This file is in JSON lines format. Each line is a complete JSON object that contains a training document and its labels. Each label annotates a named entity in the training document.  If you use this value, you must provide the <code>AugmentedManifests</code> parameter in your request. </li> </ul> If you don't specify a value, Amazon Comprehend uses <code>COMPREHEND_CSV</code> as the default.<br/>The S3 location of the folder that contains the training documents for your custom entity recognizer. This parameter is required if you set <code>DataFormat</code> to <code>COMPREHEND_CSV</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Documents</b>: The S3 location of the folder that contains the training documents for your custom entity recognizer. This parameter is required if you set <code>DataFormat</code> to <code>COMPREHEND_CSV</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberOfTestDocuments</i>  The number of documents in the input data that were used to test the entity recognizer. Typically this is 10 to 20 percent of the input documents.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberOfTrainedDocuments</i>  The number of documents in the input data that were used to train the entity recognizer. Typically this is 80 to 90 percent of the input documents.<br/>Detailed information about the accuracy of an entity recognizer.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EvaluationMetrics</b>: Detailed information about the accuracy of an entity recognizer.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Subnets</i> The ID for each subnet being used in your private VPC. This subnet is a subset of the a range of IPv4 addresses used by the VPC and is specific to a given availability zone in the VPC’s region. This ID number is preceded by "subnet-", for instance: "subnet-04ccf456919e69055". For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html">VPCs and Subnets</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> The ID number for a security group on an instance of your private VPC. Security groups on your VPC function serve as a virtual firewall to control inbound and outbound traffic and provides security for the resources that you’ll be accessing on the VPC. This ID number is preceded by "sg-", for instance: "sg-03b388029b0a285ea". For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html">Security Groups for your VPC</a>. <br/>        """
        pass

    def describe_events_detection_job(self, JobId: str) -> DescribeEventsDetectionJobResponse:
        r"""Gets the status and details of an events detection job.

        :param self:
        :param JobId:  The identifier of the events detection job.<br/>
        :return: EventsDetectionJobProperties:  An object that contains the properties associated with an event detection job.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetEventTypes</i> The types of events that are detected by the job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataAccessRoleArn</i> The Amazon Resource Name (ARN) of the AWS Identify and Access Management (IAM) role that grants Amazon Comprehend read access to your input data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LanguageCode</i> The language code of the input documents.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OutputDataConfig</i> The output data configuration that you supplied when you created the events detection job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>OutputDataConfig</b>: The output data configuration that you supplied when you created the events detection job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InputDataConfig</i> The input data configuration that you supplied when you created the events detection job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>InputDataConfig</b>: The input data configuration that you supplied when you created the events detection job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndTime</i> The time that the events detection job completed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubmitTime</i> The time that the events detection job was submitted for processing.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> A description of the status of the events detection job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobStatus</i> The current status of the events detection job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobName</i> The name you assigned the events detection job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobId</i> The identifier assigned to the events detection job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InputFormat</i> Specifies how the text in an input file should be processed: <ul> <li>  <code>ONE_DOC_PER_FILE</code> - Each file is considered a separate document. Use this option when you are processing large documents, such as newspaper articles or scientific papers. </li> <li>  <code>ONE_DOC_PER_LINE</code> - Each line in a file is considered a separate document. Use this option when you are processing many short documents, such as text messages. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Uri</i> The Amazon S3 URI for the input data. The URI must be in same region as the API endpoint that you are calling. The URI can point to a single input file or it can provide the prefix for a collection of data files.  For example, if you use the URI <code>S3://bucketName/prefix</code>, if the prefix is a single file, Amazon Comprehend uses that file as input. If more than one file begins with the prefix, Amazon Comprehend uses all of them as input.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> ID for the AWS Key Management Service (KMS) key that Amazon Comprehend uses to encrypt the output results from an analysis job. The KmsKeyId can be one of the following formats: <ul> <li> KMS Key ID: <code>"1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> <li> Amazon Resource Name (ARN) of a KMS Key: <code>"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> <li> KMS Key Alias: <code>"alias/ExampleAlias"</code>  </li> <li> ARN of a KMS Key Alias: <code>"arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias"</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Uri</i> When you use the <code>OutputDataConfig</code> object with asynchronous operations, you specify the Amazon S3 location where you want to write the output data. The URI must be in the same region as the API endpoint that you are calling. The location is used as the prefix for the actual location of the output file. When the topic detection job is finished, the service creates an output file in a directory specific to the job. The <code>S3Uri</code> field contains the location of the output file, called <code>output.tar.gz</code>. It is a compressed archive that contains the ouput of the operation.<br/>        """
        pass

    def describe_key_phrases_detection_job(self, JobId: str) -> DescribeKeyPhrasesDetectionJobResponse:
        r"""Gets the properties associated with a key phrases detection job. Use this operation to get the status of a detection job.

        :param self:
        :param JobId:  The identifier that Amazon Comprehend generated for the job. The operation returns this identifier in its response.<br/>
        :return: KeyPhrasesDetectionJobProperties:  An object that contains the properties associated with a key phrases detection job. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcConfig</i>  Configuration parameters for a private Virtual Private Cloud (VPC) containing the resources you are using for your key phrases detection job. For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html">Amazon VPC</a>. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>VpcConfig</b>:  Configuration parameters for a private Virtual Private Cloud (VPC) containing the resources you are using for your key phrases detection job. For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html">Amazon VPC</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VolumeKmsKeyId</i> ID for the AWS Key Management Service (KMS) key that Amazon Comprehend uses to encrypt data on the storage volume attached to the ML compute instance(s) that process the analysis job. The VolumeKmsKeyId can be either of the following formats: <ul> <li> KMS Key ID: <code>"1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> <li> Amazon Resource Name (ARN) of a KMS Key: <code>"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataAccessRoleArn</i> The Amazon Resource Name (ARN) that gives Amazon Comprehend read access to your input data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LanguageCode</i> The language code of the input documents.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OutputDataConfig</i> The output data configuration that you supplied when you created the key phrases detection job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>OutputDataConfig</b>: The output data configuration that you supplied when you created the key phrases detection job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InputDataConfig</i> The input data configuration that you supplied when you created the key phrases detection job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>InputDataConfig</b>: The input data configuration that you supplied when you created the key phrases detection job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndTime</i> The time that the key phrases detection job completed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubmitTime</i> The time that the key phrases detection job was submitted for processing.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> A description of the status of a job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobStatus</i> The current status of the key phrases detection job. If the status is <code>FAILED</code>, the <code>Message</code> field shows the reason for the failure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobName</i> The name that you assigned the key phrases detection job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobId</i> The identifier assigned to the key phrases detection job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InputFormat</i> Specifies how the text in an input file should be processed: <ul> <li>  <code>ONE_DOC_PER_FILE</code> - Each file is considered a separate document. Use this option when you are processing large documents, such as newspaper articles or scientific papers. </li> <li>  <code>ONE_DOC_PER_LINE</code> - Each line in a file is considered a separate document. Use this option when you are processing many short documents, such as text messages. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Uri</i> The Amazon S3 URI for the input data. The URI must be in same region as the API endpoint that you are calling. The URI can point to a single input file or it can provide the prefix for a collection of data files.  For example, if you use the URI <code>S3://bucketName/prefix</code>, if the prefix is a single file, Amazon Comprehend uses that file as input. If more than one file begins with the prefix, Amazon Comprehend uses all of them as input.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> ID for the AWS Key Management Service (KMS) key that Amazon Comprehend uses to encrypt the output results from an analysis job. The KmsKeyId can be one of the following formats: <ul> <li> KMS Key ID: <code>"1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> <li> Amazon Resource Name (ARN) of a KMS Key: <code>"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> <li> KMS Key Alias: <code>"alias/ExampleAlias"</code>  </li> <li> ARN of a KMS Key Alias: <code>"arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias"</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Uri</i> When you use the <code>OutputDataConfig</code> object with asynchronous operations, you specify the Amazon S3 location where you want to write the output data. The URI must be in the same region as the API endpoint that you are calling. The location is used as the prefix for the actual location of the output file. When the topic detection job is finished, the service creates an output file in a directory specific to the job. The <code>S3Uri</code> field contains the location of the output file, called <code>output.tar.gz</code>. It is a compressed archive that contains the ouput of the operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Subnets</i> The ID for each subnet being used in your private VPC. This subnet is a subset of the a range of IPv4 addresses used by the VPC and is specific to a given availability zone in the VPC’s region. This ID number is preceded by "subnet-", for instance: "subnet-04ccf456919e69055". For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html">VPCs and Subnets</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> The ID number for a security group on an instance of your private VPC. Security groups on your VPC function serve as a virtual firewall to control inbound and outbound traffic and provides security for the resources that you’ll be accessing on the VPC. This ID number is preceded by "sg-", for instance: "sg-03b388029b0a285ea". For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html">Security Groups for your VPC</a>. <br/>        """
        pass

    def describe_pii_entities_detection_job(self, JobId: str) -> DescribePiiEntitiesDetectionJobResponse:
        r"""Gets the properties associated with a PII entities detection job. For example, you can use this operation to get the job status.

        :param self:
        :param JobId:  The identifier that Amazon Comprehend generated for the job. The operation returns this identifier in its response.<br/>
        :return: PiiEntitiesDetectionJobProperties:  Provides information about a PII entities detection job.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Mode</i> Specifies whether the output provides the locations (offsets) of PII entities or a file in which PII entities are redacted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataAccessRoleArn</i> The Amazon Resource Name (ARN) that gives Amazon Comprehend read access to your input data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LanguageCode</i> The language code of the input documents<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RedactionConfig</i> Provides configuration parameters for PII entity redaction. This parameter is required if you set the <code>Mode</code> parameter to <code>ONLY_REDACTION</code>. In that case, you must provide a <code>RedactionConfig</code> definition that includes the <code>PiiEntityTypes</code> parameter.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RedactionConfig</b>: Provides configuration parameters for PII entity redaction. This parameter is required if you set the <code>Mode</code> parameter to <code>ONLY_REDACTION</code>. In that case, you must provide a <code>RedactionConfig</code> definition that includes the <code>PiiEntityTypes</code> parameter.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OutputDataConfig</i> The output data configuration that you supplied when you created the PII entities detection job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>OutputDataConfig</b>: The output data configuration that you supplied when you created the PII entities detection job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InputDataConfig</i> The input properties for a PII entities detection job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>InputDataConfig</b>: The input properties for a PII entities detection job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndTime</i> The time that the PII entities detection job completed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubmitTime</i> The time that the PII entities detection job was submitted for processing.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> A description of the status of a job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobStatus</i> The current status of the PII entities detection job. If the status is <code>FAILED</code>, the <code>Message</code> field shows the reason for the failure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobName</i> The name that you assigned the PII entities detection job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobId</i> The identifier assigned to the PII entities detection job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InputFormat</i> Specifies how the text in an input file should be processed: <ul> <li>  <code>ONE_DOC_PER_FILE</code> - Each file is considered a separate document. Use this option when you are processing large documents, such as newspaper articles or scientific papers. </li> <li>  <code>ONE_DOC_PER_LINE</code> - Each line in a file is considered a separate document. Use this option when you are processing many short documents, such as text messages. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Uri</i> The Amazon S3 URI for the input data. The URI must be in same region as the API endpoint that you are calling. The URI can point to a single input file or it can provide the prefix for a collection of data files.  For example, if you use the URI <code>S3://bucketName/prefix</code>, if the prefix is a single file, Amazon Comprehend uses that file as input. If more than one file begins with the prefix, Amazon Comprehend uses all of them as input.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> ID for the AWS Key Management Service (KMS) key that Amazon Comprehend uses to encrypt the output results from an analysis job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Uri</i> When you use the <code>PiiOutputDataConfig</code> object with asynchronous operations, you specify the Amazon S3 location where you want to write the output data. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaskCharacter</i> A character that replaces each character in the redacted PII entity.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaskMode</i> Specifies whether the PII entity is redacted with the mask character or the entity type.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PiiEntityTypes</i> An array of the types of PII entities that Amazon Comprehend detects in the input text for your request.<br/>        """
        pass

    def describe_sentiment_detection_job(self, JobId: str) -> DescribeSentimentDetectionJobResponse:
        r"""Gets the properties associated with a sentiment detection job. Use this operation to get the status of a detection job.

        :param self:
        :param JobId:  The identifier that Amazon Comprehend generated for the job. The operation returns this identifier in its response.<br/>
        :return: SentimentDetectionJobProperties:  An object that contains the properties associated with a sentiment detection job.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcConfig</i>  Configuration parameters for a private Virtual Private Cloud (VPC) containing the resources you are using for your sentiment detection job. For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html">Amazon VPC</a>. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>VpcConfig</b>:  Configuration parameters for a private Virtual Private Cloud (VPC) containing the resources you are using for your sentiment detection job. For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html">Amazon VPC</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VolumeKmsKeyId</i> ID for the AWS Key Management Service (KMS) key that Amazon Comprehend uses to encrypt data on the storage volume attached to the ML compute instance(s) that process the analysis job. The VolumeKmsKeyId can be either of the following formats: <ul> <li> KMS Key ID: <code>"1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> <li> Amazon Resource Name (ARN) of a KMS Key: <code>"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataAccessRoleArn</i> The Amazon Resource Name (ARN) that gives Amazon Comprehend read access to your input data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LanguageCode</i> The language code of the input documents.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OutputDataConfig</i> The output data configuration that you supplied when you created the sentiment detection job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>OutputDataConfig</b>: The output data configuration that you supplied when you created the sentiment detection job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InputDataConfig</i> The input data configuration that you supplied when you created the sentiment detection job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>InputDataConfig</b>: The input data configuration that you supplied when you created the sentiment detection job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndTime</i> The time that the sentiment detection job ended.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubmitTime</i> The time that the sentiment detection job was submitted for processing.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> A description of the status of a job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobStatus</i> The current status of the sentiment detection job. If the status is <code>FAILED</code>, the <code>Messages</code> field shows the reason for the failure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobName</i> The name that you assigned to the sentiment detection job<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobId</i> The identifier assigned to the sentiment detection job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InputFormat</i> Specifies how the text in an input file should be processed: <ul> <li>  <code>ONE_DOC_PER_FILE</code> - Each file is considered a separate document. Use this option when you are processing large documents, such as newspaper articles or scientific papers. </li> <li>  <code>ONE_DOC_PER_LINE</code> - Each line in a file is considered a separate document. Use this option when you are processing many short documents, such as text messages. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Uri</i> The Amazon S3 URI for the input data. The URI must be in same region as the API endpoint that you are calling. The URI can point to a single input file or it can provide the prefix for a collection of data files.  For example, if you use the URI <code>S3://bucketName/prefix</code>, if the prefix is a single file, Amazon Comprehend uses that file as input. If more than one file begins with the prefix, Amazon Comprehend uses all of them as input.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> ID for the AWS Key Management Service (KMS) key that Amazon Comprehend uses to encrypt the output results from an analysis job. The KmsKeyId can be one of the following formats: <ul> <li> KMS Key ID: <code>"1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> <li> Amazon Resource Name (ARN) of a KMS Key: <code>"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> <li> KMS Key Alias: <code>"alias/ExampleAlias"</code>  </li> <li> ARN of a KMS Key Alias: <code>"arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias"</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Uri</i> When you use the <code>OutputDataConfig</code> object with asynchronous operations, you specify the Amazon S3 location where you want to write the output data. The URI must be in the same region as the API endpoint that you are calling. The location is used as the prefix for the actual location of the output file. When the topic detection job is finished, the service creates an output file in a directory specific to the job. The <code>S3Uri</code> field contains the location of the output file, called <code>output.tar.gz</code>. It is a compressed archive that contains the ouput of the operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Subnets</i> The ID for each subnet being used in your private VPC. This subnet is a subset of the a range of IPv4 addresses used by the VPC and is specific to a given availability zone in the VPC’s region. This ID number is preceded by "subnet-", for instance: "subnet-04ccf456919e69055". For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html">VPCs and Subnets</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> The ID number for a security group on an instance of your private VPC. Security groups on your VPC function serve as a virtual firewall to control inbound and outbound traffic and provides security for the resources that you’ll be accessing on the VPC. This ID number is preceded by "sg-", for instance: "sg-03b388029b0a285ea". For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html">Security Groups for your VPC</a>. <br/>        """
        pass

    def describe_topics_detection_job(self, JobId: str) -> DescribeTopicsDetectionJobResponse:
        r"""Gets the properties associated with a topic detection job. Use this operation to get the status of a detection job.

        :param self:
        :param JobId:  The identifier assigned by the user to the detection job.<br/>
        :return: TopicsDetectionJobProperties:  The list of properties for the requested job.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcConfig</i> Configuration parameters for a private Virtual Private Cloud (VPC) containing the resources you are using for your topic detection job. For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html">Amazon VPC</a>. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>VpcConfig</b>: Configuration parameters for a private Virtual Private Cloud (VPC) containing the resources you are using for your topic detection job. For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html">Amazon VPC</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VolumeKmsKeyId</i> ID for the AWS Key Management Service (KMS) key that Amazon Comprehend uses to encrypt data on the storage volume attached to the ML compute instance(s) that process the analysis job. The VolumeKmsKeyId can be either of the following formats: <ul> <li> KMS Key ID: <code>"1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> <li> Amazon Resource Name (ARN) of a KMS Key: <code>"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataAccessRoleArn</i> The Amazon Resource Name (ARN) of the AWS Identity and Management (IAM) role that grants Amazon Comprehend read access to your job data. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberOfTopics</i> The number of topics to detect supplied when you created the topic detection job. The default is 10. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OutputDataConfig</i> The output data configuration supplied when you created the topic detection job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>OutputDataConfig</b>: The output data configuration supplied when you created the topic detection job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InputDataConfig</i> The input data configuration supplied when you created the topic detection job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>InputDataConfig</b>: The input data configuration supplied when you created the topic detection job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndTime</i> The time that the topic detection job was completed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubmitTime</i> The time that the topic detection job was submitted for processing.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> A description for the status of a job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobStatus</i> The current status of the topic detection job. If the status is <code>Failed</code>, the reason for the failure is shown in the <code>Message</code> field.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobName</i> The name of the topic detection job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobId</i> The identifier assigned to the topic detection job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InputFormat</i> Specifies how the text in an input file should be processed: <ul> <li>  <code>ONE_DOC_PER_FILE</code> - Each file is considered a separate document. Use this option when you are processing large documents, such as newspaper articles or scientific papers. </li> <li>  <code>ONE_DOC_PER_LINE</code> - Each line in a file is considered a separate document. Use this option when you are processing many short documents, such as text messages. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Uri</i> The Amazon S3 URI for the input data. The URI must be in same region as the API endpoint that you are calling. The URI can point to a single input file or it can provide the prefix for a collection of data files.  For example, if you use the URI <code>S3://bucketName/prefix</code>, if the prefix is a single file, Amazon Comprehend uses that file as input. If more than one file begins with the prefix, Amazon Comprehend uses all of them as input.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> ID for the AWS Key Management Service (KMS) key that Amazon Comprehend uses to encrypt the output results from an analysis job. The KmsKeyId can be one of the following formats: <ul> <li> KMS Key ID: <code>"1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> <li> Amazon Resource Name (ARN) of a KMS Key: <code>"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> <li> KMS Key Alias: <code>"alias/ExampleAlias"</code>  </li> <li> ARN of a KMS Key Alias: <code>"arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias"</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Uri</i> When you use the <code>OutputDataConfig</code> object with asynchronous operations, you specify the Amazon S3 location where you want to write the output data. The URI must be in the same region as the API endpoint that you are calling. The location is used as the prefix for the actual location of the output file. When the topic detection job is finished, the service creates an output file in a directory specific to the job. The <code>S3Uri</code> field contains the location of the output file, called <code>output.tar.gz</code>. It is a compressed archive that contains the ouput of the operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Subnets</i> The ID for each subnet being used in your private VPC. This subnet is a subset of the a range of IPv4 addresses used by the VPC and is specific to a given availability zone in the VPC’s region. This ID number is preceded by "subnet-", for instance: "subnet-04ccf456919e69055". For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html">VPCs and Subnets</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> The ID number for a security group on an instance of your private VPC. Security groups on your VPC function serve as a virtual firewall to control inbound and outbound traffic and provides security for the resources that you’ll be accessing on the VPC. This ID number is preceded by "sg-", for instance: "sg-03b388029b0a285ea". For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html">Security Groups for your VPC</a>. <br/>        """
        pass

    def detect_dominant_language(self, Text: str) -> DetectDominantLanguageResponse:
        r"""Determines the dominant language of the input text. For a list of languages that Amazon Comprehend can detect, see <a href="https://docs.aws.amazon.com/comprehend/latest/dg/how-languages.html">Amazon Comprehend Supported Languages</a>. 

        :param self:
        :param Text:  A UTF-8 text string. Each string should contain at least 20 characters and must contain fewer that 5,000 bytes of UTF-8 encoded characters.<br/>
        :return: Languages:  The languages that Amazon Comprehend detected in the input text. For each language, the response returns the RFC 5646 language code and the level of confidence that Amazon Comprehend has in the accuracy of its inference. For more information about RFC 5646, see <a href="https://tools.ietf.org/html/rfc5646">Tags for Identifying Languages</a> on the <i>IETF Tools</i> web site.<br/>        """
        pass

    def detect_entities(self, Text: str, LanguageCode: str=None, EndpointArn: str=None) -> DetectEntitiesResponse:
        r"""Inspects text for named entities, and returns information about them. For more information, about named entities, see <a>how-entities</a>. 

        :param self:
        :param EndpointArn:  The Amazon Resource Name of an endpoint that is associated with a custom entity recognition model. Provide an endpoint if you want to detect entities by using your own custom model instead of the default model that is used by Amazon Comprehend. If you specify an endpoint, Amazon Comprehend uses the language of your custom model, and it ignores any language code that you provide in your request.<br/>LanguageCode:  The language of the input documents. You can specify any of the primary languages supported by Amazon Comprehend. All documents must be in the same language. If your request includes the endpoint for a custom entity recognition model, Amazon Comprehend uses the language of your custom model, and it ignores any language code that you specify here.<br/>Text:  A UTF-8 text string. Each string must contain fewer that 5,000 bytes of UTF-8 encoded characters.<br/>
        :return: Entities:  A collection of entities identified in the input text. For each entity, the response provides the entity text, entity type, where the entity text begins and ends, and the level of confidence that Amazon Comprehend has in the detection.  If your request uses a custom entity recognition model, Amazon Comprehend detects the entities that the model is trained to recognize. Otherwise, it detects the default entity types. For a list of default entity types, see <a>how-entities</a>.<br/>        """
        pass

    def detect_key_phrases(self, LanguageCode: str, Text: str) -> DetectKeyPhrasesResponse:
        r"""Detects the key noun phrases found in the text. 

        :param self:
        :param LanguageCode:  The language of the input documents. You can specify any of the primary languages supported by Amazon Comprehend. All documents must be in the same language.<br/>Text:  A UTF-8 text string. Each string must contain fewer that 5,000 bytes of UTF-8 encoded characters.<br/>
        :return: KeyPhrases:  A collection of key phrases that Amazon Comprehend identified in the input text. For each key phrase, the response provides the text of the key phrase, where the key phrase begins and ends, and the level of confidence that Amazon Comprehend has in the accuracy of the detection. <br/>        """
        pass

    def detect_pii_entities(self, LanguageCode: str, Text: str) -> DetectPiiEntitiesResponse:
        r"""Inspects the input text for entities that contain personally identifiable information (PII) and returns information about them.

        :param self:
        :param LanguageCode:  The language of the input documents.<br/>Text:  A UTF-8 text string. Each string must contain fewer that 5,000 bytes of UTF-8 encoded characters.<br/>
        :return: Entities:  A collection of PII entities identified in the input text. For each entity, the response provides the entity type, where the entity text begins and ends, and the level of confidence that Amazon Comprehend has in the detection.<br/>        """
        pass

    def detect_sentiment(self, LanguageCode: str, Text: str) -> DetectSentimentResponse:
        r"""Inspects text and returns an inference of the prevailing sentiment (<code>POSITIVE</code>, <code>NEUTRAL</code>, <code>MIXED</code>, or <code>NEGATIVE</code>). 

        :param self:
        :param LanguageCode:  The language of the input documents. You can specify any of the primary languages supported by Amazon Comprehend. All documents must be in the same language.<br/>Text:  A UTF-8 text string. Each string must contain fewer that 5,000 bytes of UTF-8 encoded characters.<br/>
        :return: SentimentScore:  An object that lists the sentiments, and their corresponding confidence levels.:<br/>Sentiment:  The inferred sentiment that Amazon Comprehend has the highest level of confidence in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Mixed</i> The level of confidence that Amazon Comprehend has in the accuracy of its detection of the <code>MIXED</code> sentiment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Neutral</i> The level of confidence that Amazon Comprehend has in the accuracy of its detection of the <code>NEUTRAL</code> sentiment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Negative</i> The level of confidence that Amazon Comprehend has in the accuracy of its detection of the <code>NEGATIVE</code> sentiment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Positive</i> The level of confidence that Amazon Comprehend has in the accuracy of its detection of the <code>POSITIVE</code> sentiment.<br/>        """
        pass

    def detect_syntax(self, LanguageCode: str, Text: str) -> DetectSyntaxResponse:
        r"""Inspects text for syntax and the part of speech of words in the document. For more information, <a>how-syntax</a>.

        :param self:
        :param LanguageCode:  The language code of the input documents. You can specify any of the following languages supported by Amazon Comprehend: German ("de"), English ("en"), Spanish ("es"), French ("fr"), Italian ("it"), or Portuguese ("pt").<br/>Text:  A UTF-8 string. Each string must contain fewer that 5,000 bytes of UTF encoded characters.<br/>
        :return: SyntaxTokens:  A collection of syntax tokens describing the text. For each token, the response provides the text, the token type, where the text begins and ends, and the level of confidence that Amazon Comprehend has that the token is correct. For a list of token types, see <a>how-syntax</a>.<br/>        """
        pass

    def list_document_classification_jobs(self, Filter: DocumentClassificationJobFilter=None, NextToken: str=None, MaxResults: int=None) -> ListDocumentClassificationJobsResponse:
        r"""Gets a list of the documentation classification jobs that you have submitted.

        :param self:
        :param MaxResults:  The maximum number of results to return in each page. The default is 100.<br/>NextToken:  Identifies the next page of results to return.<br/>Filter:  Filters the jobs that are returned. You can filter jobs on their names, status, or the date and time that they were submitted. You can only set one filter at a time.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubmitTimeAfter</i> Filters the list of jobs based on the time that the job was submitted for processing. Returns only jobs submitted after the specified time. Jobs are returned in descending order, newest to oldest.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubmitTimeBefore</i> Filters the list of jobs based on the time that the job was submitted for processing. Returns only jobs submitted before the specified time. Jobs are returned in ascending order, oldest to newest.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobStatus</i> Filters the list based on job status. Returns only jobs with the specified status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobName</i> Filters on the name of the job.<br/>
        :return: NextToken:  Identifies the next page of results to return.<br/>DocumentClassificationJobPropertiesList:  A list containing the properties of each job returned.<br/>        """
        pass

    def list_document_classifiers(self, Filter: DocumentClassifierFilter=None, NextToken: str=None, MaxResults: int=None) -> ListDocumentClassifiersResponse:
        r"""Gets a list of the document classifiers that you have created.

        :param self:
        :param MaxResults:  The maximum number of results to return in each page. The default is 100.<br/>NextToken:  Identifies the next page of results to return.<br/>Filter:  Filters the jobs that are returned. You can filter jobs on their name, status, or the date and time that they were submitted. You can only set one filter at a time.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubmitTimeAfter</i> Filters the list of classifiers based on the time that the classifier was submitted for processing. Returns only classifiers submitted after the specified time. Classifiers are returned in descending order, newest to oldest.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubmitTimeBefore</i> Filters the list of classifiers based on the time that the classifier was submitted for processing. Returns only classifiers submitted before the specified time. Classifiers are returned in ascending order, oldest to newest.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Filters the list of classifiers based on status.<br/>
        :return: NextToken:  Identifies the next page of results to return.<br/>DocumentClassifierPropertiesList:  A list containing the properties of each job returned.<br/>        """
        pass

    def list_dominant_language_detection_jobs(self, Filter: DominantLanguageDetectionJobFilter=None, NextToken: str=None, MaxResults: int=None) -> ListDominantLanguageDetectionJobsResponse:
        r"""Gets a list of the dominant language detection jobs that you have submitted.

        :param self:
        :param MaxResults:  The maximum number of results to return in each page. The default is 100.<br/>NextToken:  Identifies the next page of results to return.<br/>Filter:  Filters that jobs that are returned. You can filter jobs on their name, status, or the date and time that they were submitted. You can only set one filter at a time.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubmitTimeAfter</i> Filters the list of jobs based on the time that the job was submitted for processing. Returns only jobs submitted after the specified time. Jobs are returned in descending order, newest to oldest.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubmitTimeBefore</i> Filters the list of jobs based on the time that the job was submitted for processing. Returns only jobs submitted before the specified time. Jobs are returned in ascending order, oldest to newest.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobStatus</i> Filters the list of jobs based on job status. Returns only jobs with the specified status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobName</i> Filters on the name of the job.<br/>
        :return: NextToken:  Identifies the next page of results to return.<br/>DominantLanguageDetectionJobPropertiesList:  A list containing the properties of each job that is returned.<br/>        """
        pass

    def list_endpoints(self, Filter: EndpointFilter=None, NextToken: str=None, MaxResults: int=None) -> ListEndpointsResponse:
        r"""Gets a list of all existing endpoints that you've created.

        :param self:
        :param MaxResults:  The maximum number of results to return in each page. The default is 100.<br/>NextToken:  Identifies the next page of results to return.<br/>Filter:  Filters the endpoints that are returned. You can filter endpoints on their name, model, status, or the date and time that they were created. You can only set one filter at a time. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTimeAfter</i> Specifies a date after which the returned endpoint or endpoints were created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTimeBefore</i> Specifies a date before which the returned endpoint or endpoints were created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Specifies the status of the endpoint being returned. Possible values are: Creating, Ready, Updating, Deleting, Failed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ModelArn</i> The Amazon Resource Number (ARN) of the model to which the endpoint is attached.<br/>
        :return: NextToken:  Identifies the next page of results to return.<br/>EndpointPropertiesList:  Displays a list of endpoint properties being retrieved by the service in response to the request.<br/>        """
        pass

    def list_entities_detection_jobs(self, Filter: EntitiesDetectionJobFilter=None, NextToken: str=None, MaxResults: int=None) -> ListEntitiesDetectionJobsResponse:
        r"""Gets a list of the entity detection jobs that you have submitted.

        :param self:
        :param MaxResults:  The maximum number of results to return in each page. The default is 100.<br/>NextToken:  Identifies the next page of results to return.<br/>Filter:  Filters the jobs that are returned. You can filter jobs on their name, status, or the date and time that they were submitted. You can only set one filter at a time.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubmitTimeAfter</i> Filters the list of jobs based on the time that the job was submitted for processing. Returns only jobs submitted after the specified time. Jobs are returned in descending order, newest to oldest.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubmitTimeBefore</i> Filters the list of jobs based on the time that the job was submitted for processing. Returns only jobs submitted before the specified time. Jobs are returned in ascending order, oldest to newest.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobStatus</i> Filters the list of jobs based on job status. Returns only jobs with the specified status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobName</i> Filters on the name of the job.<br/>
        :return: NextToken:  Identifies the next page of results to return.<br/>EntitiesDetectionJobPropertiesList:  A list containing the properties of each job that is returned.<br/>        """
        pass

    def list_entity_recognizers(self, Filter: EntityRecognizerFilter=None, NextToken: str=None, MaxResults: int=None) -> ListEntityRecognizersResponse:
        r"""Gets a list of the properties of all entity recognizers that you created, including recognizers currently in training. Allows you to filter the list of recognizers based on criteria such as status and submission time. This call returns up to 500 entity recognizers in the list, with a default number of 100 recognizers in the list. The results of this list are not in any particular order. Please get the list and sort locally if needed.

        :param self:
        :param MaxResults:   The maximum number of results to return on each page. The default is 100.<br/>NextToken:  Identifies the next page of results to return.<br/>Filter:  Filters the list of entities returned. You can filter on <code>Status</code>, <code>SubmitTimeBefore</code>, or <code>SubmitTimeAfter</code>. You can only set one filter at a time.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubmitTimeAfter</i> Filters the list of entities based on the time that the list was submitted for processing. Returns only jobs submitted after the specified time. Jobs are returned in ascending order, oldest to newest.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubmitTimeBefore</i> Filters the list of entities based on the time that the list was submitted for processing. Returns only jobs submitted before the specified time. Jobs are returned in descending order, newest to oldest.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of an entity recognizer.<br/>
        :return: NextToken:  Identifies the next page of results to return.<br/>EntityRecognizerPropertiesList:  The list of properties of an entity recognizer.<br/>        """
        pass

    def list_events_detection_jobs(self, Filter: EventsDetectionJobFilter=None, NextToken: str=None, MaxResults: int=None) -> ListEventsDetectionJobsResponse:
        r"""Gets a list of the events detection jobs that you have submitted.

        :param self:
        :param MaxResults:  The maximum number of results to return in each page.<br/>NextToken:  Identifies the next page of results to return.<br/>Filter:  Filters the jobs that are returned. You can filter jobs on their name, status, or the date and time that they were submitted. You can only set one filter at a time.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubmitTimeAfter</i> Filters the list of jobs based on the time that the job was submitted for processing. Returns only jobs submitted after the specified time. Jobs are returned in descending order, newest to oldest.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubmitTimeBefore</i> Filters the list of jobs based on the time that the job was submitted for processing. Returns only jobs submitted before the specified time. Jobs are returned in ascending order, oldest to newest.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobStatus</i> Filters the list of jobs based on job status. Returns only jobs with the specified status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobName</i> Filters on the name of the events detection job.<br/>
        :return: NextToken:  Identifies the next page of results to return.<br/>EventsDetectionJobPropertiesList:  A list containing the properties of each job that is returned.<br/>        """
        pass

    def list_key_phrases_detection_jobs(self, Filter: KeyPhrasesDetectionJobFilter=None, NextToken: str=None, MaxResults: int=None) -> ListKeyPhrasesDetectionJobsResponse:
        r"""Get a list of key phrase detection jobs that you have submitted.

        :param self:
        :param MaxResults:  The maximum number of results to return in each page. The default is 100.<br/>NextToken:  Identifies the next page of results to return.<br/>Filter:  Filters the jobs that are returned. You can filter jobs on their name, status, or the date and time that they were submitted. You can only set one filter at a time.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubmitTimeAfter</i> Filters the list of jobs based on the time that the job was submitted for processing. Returns only jobs submitted after the specified time. Jobs are returned in descending order, newest to oldest.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubmitTimeBefore</i> Filters the list of jobs based on the time that the job was submitted for processing. Returns only jobs submitted before the specified time. Jobs are returned in ascending order, oldest to newest.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobStatus</i> Filters the list of jobs based on job status. Returns only jobs with the specified status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobName</i> Filters on the name of the job.<br/>
        :return: NextToken:  Identifies the next page of results to return.<br/>KeyPhrasesDetectionJobPropertiesList:  A list containing the properties of each job that is returned.<br/>        """
        pass

    def list_pii_entities_detection_jobs(self, Filter: PiiEntitiesDetectionJobFilter=None, NextToken: str=None, MaxResults: int=None) -> ListPiiEntitiesDetectionJobsResponse:
        r"""Gets a list of the PII entity detection jobs that you have submitted.

        :param self:
        :param MaxResults:  The maximum number of results to return in each page.<br/>NextToken:  Identifies the next page of results to return.<br/>Filter:  Filters the jobs that are returned. You can filter jobs on their name, status, or the date and time that they were submitted. You can only set one filter at a time.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubmitTimeAfter</i> Filters the list of jobs based on the time that the job was submitted for processing. Returns only jobs submitted after the specified time. Jobs are returned in descending order, newest to oldest.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubmitTimeBefore</i> Filters the list of jobs based on the time that the job was submitted for processing. Returns only jobs submitted before the specified time. Jobs are returned in ascending order, oldest to newest.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobStatus</i> Filters the list of jobs based on job status. Returns only jobs with the specified status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobName</i> Filters on the name of the job.<br/>
        :return: NextToken:  Identifies the next page of results to return.<br/>PiiEntitiesDetectionJobPropertiesList:  A list containing the properties of each job that is returned.<br/>        """
        pass

    def list_sentiment_detection_jobs(self, Filter: SentimentDetectionJobFilter=None, NextToken: str=None, MaxResults: int=None) -> ListSentimentDetectionJobsResponse:
        r"""Gets a list of sentiment detection jobs that you have submitted.

        :param self:
        :param MaxResults:  The maximum number of results to return in each page. The default is 100.<br/>NextToken:  Identifies the next page of results to return.<br/>Filter:  Filters the jobs that are returned. You can filter jobs on their name, status, or the date and time that they were submitted. You can only set one filter at a time.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubmitTimeAfter</i> Filters the list of jobs based on the time that the job was submitted for processing. Returns only jobs submitted after the specified time. Jobs are returned in descending order, newest to oldest.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubmitTimeBefore</i> Filters the list of jobs based on the time that the job was submitted for processing. Returns only jobs submitted before the specified time. Jobs are returned in ascending order, oldest to newest.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobStatus</i> Filters the list of jobs based on job status. Returns only jobs with the specified status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobName</i> Filters on the name of the job.<br/>
        :return: NextToken:  Identifies the next page of results to return.<br/>SentimentDetectionJobPropertiesList:  A list containing the properties of each job that is returned.<br/>        """
        pass

    def list_tags_for_resource(self, ResourceArn: str) -> ListTagsForResourceResponse:
        r"""Lists all tags associated with a given Amazon Comprehend resource. 

        :param self:
        :param ResourceArn:  The Amazon Resource Name (ARN) of the given Amazon Comprehend resource you are querying. <br/>
        :return: Tags:  Tags associated with the Amazon Comprehend resource being queried. A tag is a key-value pair that adds as a metadata to a resource used by Amazon Comprehend. For example, a tag with "Sales" as the key might be added to a resource to indicate its use by the sales department. <br/>ResourceArn:  The Amazon Resource Name (ARN) of the given Amazon Comprehend resource you are querying.<br/>        """
        pass

    def list_topics_detection_jobs(self, Filter: TopicsDetectionJobFilter=None, NextToken: str=None, MaxResults: int=None) -> ListTopicsDetectionJobsResponse:
        r"""Gets a list of the topic detection jobs that you have submitted.

        :param self:
        :param MaxResults:  The maximum number of results to return in each page. The default is 100.<br/>NextToken:  Identifies the next page of results to return.<br/>Filter:  Filters the jobs that are returned. Jobs can be filtered on their name, status, or the date and time that they were submitted. You can set only one filter at a time.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubmitTimeAfter</i> Filters the list of jobs based on the time that the job was submitted for processing. Only returns jobs submitted after the specified time. Jobs are returned in ascending order, oldest to newest.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubmitTimeBefore</i> Filters the list of jobs based on the time that the job was submitted for processing. Only returns jobs submitted before the specified time. Jobs are returned in descending order, newest to oldest.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobStatus</i> Filters the list of topic detection jobs based on job status. Returns only jobs with the specified status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobName</i> <p/><br/>
        :return: NextToken:  Identifies the next page of results to return.<br/>TopicsDetectionJobPropertiesList:  A list containing the properties of each job that is returned.<br/>        """
        pass

    def start_document_classification_job(self, DataAccessRoleArn: str, OutputDataConfig: OutputDataConfig, InputDataConfig: InputDataConfig, DocumentClassifierArn: str, JobName: str=None, ClientRequestToken: str=None, VolumeKmsKeyId: str=None, VpcConfig: VpcConfig=None) -> StartDocumentClassificationJobResponse:
        r"""Starts an asynchronous document classification job. Use the operation to track the progress of the job.

        :param self:
        :param VpcConfig:  Configuration parameters for an optional private Virtual Private Cloud (VPC) containing the resources you are using for your document classification job. For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html">Amazon VPC</a>. :<br/>VolumeKmsKeyId:  ID for the AWS Key Management Service (KMS) key that Amazon Comprehend uses to encrypt data on the storage volume attached to the ML compute instance(s) that process the analysis job. The VolumeKmsKeyId can be either of the following formats: <ul> <li> KMS Key ID: <code>"1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> <li> Amazon Resource Name (ARN) of a KMS Key: <code>"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> </ul><br/>ClientRequestToken:  A unique identifier for the request. If you do not set the client request token, Amazon Comprehend generates one.<br/>DataAccessRoleArn:  The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that grants Amazon Comprehend read access to your input data.<br/>OutputDataConfig:  Specifies where to send the output files.:<br/>InputDataConfig:  Specifies the format and location of the input data for the job.:<br/>DocumentClassifierArn:  The Amazon Resource Name (ARN) of the document classifier to use to process the job.<br/>JobName:  The identifier of the job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InputFormat</i> Specifies how the text in an input file should be processed: <ul> <li>  <code>ONE_DOC_PER_FILE</code> - Each file is considered a separate document. Use this option when you are processing large documents, such as newspaper articles or scientific papers. </li> <li>  <code>ONE_DOC_PER_LINE</code> - Each line in a file is considered a separate document. Use this option when you are processing many short documents, such as text messages. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Uri</i> The Amazon S3 URI for the input data. The URI must be in same region as the API endpoint that you are calling. The URI can point to a single input file or it can provide the prefix for a collection of data files.  For example, if you use the URI <code>S3://bucketName/prefix</code>, if the prefix is a single file, Amazon Comprehend uses that file as input. If more than one file begins with the prefix, Amazon Comprehend uses all of them as input.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> ID for the AWS Key Management Service (KMS) key that Amazon Comprehend uses to encrypt the output results from an analysis job. The KmsKeyId can be one of the following formats: <ul> <li> KMS Key ID: <code>"1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> <li> Amazon Resource Name (ARN) of a KMS Key: <code>"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> <li> KMS Key Alias: <code>"alias/ExampleAlias"</code>  </li> <li> ARN of a KMS Key Alias: <code>"arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias"</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Uri</i> When you use the <code>OutputDataConfig</code> object with asynchronous operations, you specify the Amazon S3 location where you want to write the output data. The URI must be in the same region as the API endpoint that you are calling. The location is used as the prefix for the actual location of the output file. When the topic detection job is finished, the service creates an output file in a directory specific to the job. The <code>S3Uri</code> field contains the location of the output file, called <code>output.tar.gz</code>. It is a compressed archive that contains the ouput of the operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Subnets</i> The ID for each subnet being used in your private VPC. This subnet is a subset of the a range of IPv4 addresses used by the VPC and is specific to a given availability zone in the VPC’s region. This ID number is preceded by "subnet-", for instance: "subnet-04ccf456919e69055". For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html">VPCs and Subnets</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> The ID number for a security group on an instance of your private VPC. Security groups on your VPC function serve as a virtual firewall to control inbound and outbound traffic and provides security for the resources that you’ll be accessing on the VPC. This ID number is preceded by "sg-", for instance: "sg-03b388029b0a285ea". For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html">Security Groups for your VPC</a>. <br/>
        :return: JobStatus:  The status of the job: <ul> <li> SUBMITTED - The job has been received and queued for processing. </li> <li> IN_PROGRESS - Amazon Comprehend is processing the job. </li> <li> COMPLETED - The job was successfully completed and the output is available. </li> <li> FAILED - The job did not complete. For details, use the operation. </li> <li> STOP_REQUESTED - Amazon Comprehend has received a stop request for the job and is processing the request. </li> <li> STOPPED - The job was successfully stopped without completing. </li> </ul><br/>JobId:  The identifier generated for the job. To get the status of the job, use this identifier with the operation.<br/>        """
        pass

    def start_dominant_language_detection_job(self, DataAccessRoleArn: str, OutputDataConfig: OutputDataConfig, InputDataConfig: InputDataConfig, JobName: str=None, ClientRequestToken: str=None, VolumeKmsKeyId: str=None, VpcConfig: VpcConfig=None) -> StartDominantLanguageDetectionJobResponse:
        r"""Starts an asynchronous dominant language detection job for a collection of documents. Use the operation to track the status of a job.

        :param self:
        :param VpcConfig:  Configuration parameters for an optional private Virtual Private Cloud (VPC) containing the resources you are using for your dominant language detection job. For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html">Amazon VPC</a>. :<br/>VolumeKmsKeyId:  ID for the AWS Key Management Service (KMS) key that Amazon Comprehend uses to encrypt data on the storage volume attached to the ML compute instance(s) that process the analysis job. The VolumeKmsKeyId can be either of the following formats: <ul> <li> KMS Key ID: <code>"1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> <li> Amazon Resource Name (ARN) of a KMS Key: <code>"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> </ul><br/>ClientRequestToken:  A unique identifier for the request. If you do not set the client request token, Amazon Comprehend generates one.<br/>JobName:  An identifier for the job.<br/>DataAccessRoleArn:  The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that grants Amazon Comprehend read access to your input data. For more information, see <a href="https://docs.aws.amazon.com/comprehend/latest/dg/access-control-managing-permissions.html#auth-role-permissions">https://docs.aws.amazon.com/comprehend/latest/dg/access-control-managing-permissions.html#auth-role-permissions</a>.<br/>OutputDataConfig:  Specifies where to send the output files.:<br/>InputDataConfig:  Specifies the format and location of the input data for the job.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InputFormat</i> Specifies how the text in an input file should be processed: <ul> <li>  <code>ONE_DOC_PER_FILE</code> - Each file is considered a separate document. Use this option when you are processing large documents, such as newspaper articles or scientific papers. </li> <li>  <code>ONE_DOC_PER_LINE</code> - Each line in a file is considered a separate document. Use this option when you are processing many short documents, such as text messages. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Uri</i> The Amazon S3 URI for the input data. The URI must be in same region as the API endpoint that you are calling. The URI can point to a single input file or it can provide the prefix for a collection of data files.  For example, if you use the URI <code>S3://bucketName/prefix</code>, if the prefix is a single file, Amazon Comprehend uses that file as input. If more than one file begins with the prefix, Amazon Comprehend uses all of them as input.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> ID for the AWS Key Management Service (KMS) key that Amazon Comprehend uses to encrypt the output results from an analysis job. The KmsKeyId can be one of the following formats: <ul> <li> KMS Key ID: <code>"1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> <li> Amazon Resource Name (ARN) of a KMS Key: <code>"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> <li> KMS Key Alias: <code>"alias/ExampleAlias"</code>  </li> <li> ARN of a KMS Key Alias: <code>"arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias"</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Uri</i> When you use the <code>OutputDataConfig</code> object with asynchronous operations, you specify the Amazon S3 location where you want to write the output data. The URI must be in the same region as the API endpoint that you are calling. The location is used as the prefix for the actual location of the output file. When the topic detection job is finished, the service creates an output file in a directory specific to the job. The <code>S3Uri</code> field contains the location of the output file, called <code>output.tar.gz</code>. It is a compressed archive that contains the ouput of the operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Subnets</i> The ID for each subnet being used in your private VPC. This subnet is a subset of the a range of IPv4 addresses used by the VPC and is specific to a given availability zone in the VPC’s region. This ID number is preceded by "subnet-", for instance: "subnet-04ccf456919e69055". For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html">VPCs and Subnets</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> The ID number for a security group on an instance of your private VPC. Security groups on your VPC function serve as a virtual firewall to control inbound and outbound traffic and provides security for the resources that you’ll be accessing on the VPC. This ID number is preceded by "sg-", for instance: "sg-03b388029b0a285ea". For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html">Security Groups for your VPC</a>. <br/>
        :return: JobStatus:  The status of the job.  <ul> <li> SUBMITTED - The job has been received and is queued for processing. </li> <li> IN_PROGRESS - Amazon Comprehend is processing the job. </li> <li> COMPLETED - The job was successfully completed and the output is available. </li> <li> FAILED - The job did not complete. To get details, use the operation. </li> </ul><br/>JobId:  The identifier generated for the job. To get the status of a job, use this identifier with the operation.<br/>        """
        pass

    def start_entities_detection_job(self, LanguageCode: str, DataAccessRoleArn: str, OutputDataConfig: OutputDataConfig, InputDataConfig: InputDataConfig, JobName: str=None, EntityRecognizerArn: str=None, ClientRequestToken: str=None, VolumeKmsKeyId: str=None, VpcConfig: VpcConfig=None) -> StartEntitiesDetectionJobResponse:
        r"""Starts an asynchronous entity detection job for a collection of documents. Use the operation to track the status of a job. This API can be used for either standard entity detection or custom entity recognition. In order to be used for custom entity recognition, the optional <code>EntityRecognizerArn</code> must be used in order to provide access to the recognizer being used to detect the custom entity.

        :param self:
        :param VpcConfig:  Configuration parameters for an optional private Virtual Private Cloud (VPC) containing the resources you are using for your entity detection job. For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html">Amazon VPC</a>. :<br/>VolumeKmsKeyId:  ID for the AWS Key Management Service (KMS) key that Amazon Comprehend uses to encrypt data on the storage volume attached to the ML compute instance(s) that process the analysis job. The VolumeKmsKeyId can be either of the following formats: <ul> <li> KMS Key ID: <code>"1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> <li> Amazon Resource Name (ARN) of a KMS Key: <code>"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> </ul><br/>ClientRequestToken:  A unique identifier for the request. If you don't set the client request token, Amazon Comprehend generates one.<br/>LanguageCode:  The language of the input documents. All documents must be in the same language. You can specify any of the languages supported by Amazon Comprehend. If custom entities recognition is used, this parameter is ignored and the language used for training the model is used instead.<br/>EntityRecognizerArn:  The Amazon Resource Name (ARN) that identifies the specific entity recognizer to be used by the <code>StartEntitiesDetectionJob</code>. This ARN is optional and is only used for a custom entity recognition job.<br/>JobName:  The identifier of the job.<br/>DataAccessRoleArn:  The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that grants Amazon Comprehend read access to your input data. For more information, see <a href="https://docs.aws.amazon.com/comprehend/latest/dg/access-control-managing-permissions.html#auth-role-permissions">https://docs.aws.amazon.com/comprehend/latest/dg/access-control-managing-permissions.html#auth-role-permissions</a>.<br/>OutputDataConfig:  Specifies where to send the output files.:<br/>InputDataConfig:  Specifies the format and location of the input data for the job.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InputFormat</i> Specifies how the text in an input file should be processed: <ul> <li>  <code>ONE_DOC_PER_FILE</code> - Each file is considered a separate document. Use this option when you are processing large documents, such as newspaper articles or scientific papers. </li> <li>  <code>ONE_DOC_PER_LINE</code> - Each line in a file is considered a separate document. Use this option when you are processing many short documents, such as text messages. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Uri</i> The Amazon S3 URI for the input data. The URI must be in same region as the API endpoint that you are calling. The URI can point to a single input file or it can provide the prefix for a collection of data files.  For example, if you use the URI <code>S3://bucketName/prefix</code>, if the prefix is a single file, Amazon Comprehend uses that file as input. If more than one file begins with the prefix, Amazon Comprehend uses all of them as input.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> ID for the AWS Key Management Service (KMS) key that Amazon Comprehend uses to encrypt the output results from an analysis job. The KmsKeyId can be one of the following formats: <ul> <li> KMS Key ID: <code>"1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> <li> Amazon Resource Name (ARN) of a KMS Key: <code>"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> <li> KMS Key Alias: <code>"alias/ExampleAlias"</code>  </li> <li> ARN of a KMS Key Alias: <code>"arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias"</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Uri</i> When you use the <code>OutputDataConfig</code> object with asynchronous operations, you specify the Amazon S3 location where you want to write the output data. The URI must be in the same region as the API endpoint that you are calling. The location is used as the prefix for the actual location of the output file. When the topic detection job is finished, the service creates an output file in a directory specific to the job. The <code>S3Uri</code> field contains the location of the output file, called <code>output.tar.gz</code>. It is a compressed archive that contains the ouput of the operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Subnets</i> The ID for each subnet being used in your private VPC. This subnet is a subset of the a range of IPv4 addresses used by the VPC and is specific to a given availability zone in the VPC’s region. This ID number is preceded by "subnet-", for instance: "subnet-04ccf456919e69055". For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html">VPCs and Subnets</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> The ID number for a security group on an instance of your private VPC. Security groups on your VPC function serve as a virtual firewall to control inbound and outbound traffic and provides security for the resources that you’ll be accessing on the VPC. This ID number is preceded by "sg-", for instance: "sg-03b388029b0a285ea". For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html">Security Groups for your VPC</a>. <br/>
        :return: JobStatus:  The status of the job.  <ul> <li> SUBMITTED - The job has been received and is queued for processing. </li> <li> IN_PROGRESS - Amazon Comprehend is processing the job. </li> <li> COMPLETED - The job was successfully completed and the output is available. </li> <li> FAILED - The job did not complete. To get details, use the operation. </li> <li> STOP_REQUESTED - Amazon Comprehend has received a stop request for the job and is processing the request. </li> <li> STOPPED - The job was successfully stopped without completing. </li> </ul><br/>JobId:  The identifier generated for the job. To get the status of job, use this identifier with the operation.<br/>        """
        pass

    def start_events_detection_job(self, TargetEventTypes: List[EventTypeString], LanguageCode: str, DataAccessRoleArn: str, OutputDataConfig: OutputDataConfig, InputDataConfig: InputDataConfig, JobName: str=None, ClientRequestToken: str=None) -> StartEventsDetectionJobResponse:
        r"""Starts an asynchronous event detection job for a collection of documents.

        :param self:
        :param TargetEventTypes:  The types of events to detect in the input documents.<br/>ClientRequestToken:  An unique identifier for the request. If you don't set the client request token, Amazon Comprehend generates one.<br/>LanguageCode:  The language code of the input documents.<br/>JobName:  The identifier of the events detection job.<br/>DataAccessRoleArn:  The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that grants Amazon Comprehend read access to your input data.<br/>OutputDataConfig:  Specifies where to send the output files.:<br/>InputDataConfig:  Specifies the format and location of the input data for the job.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InputFormat</i> Specifies how the text in an input file should be processed: <ul> <li>  <code>ONE_DOC_PER_FILE</code> - Each file is considered a separate document. Use this option when you are processing large documents, such as newspaper articles or scientific papers. </li> <li>  <code>ONE_DOC_PER_LINE</code> - Each line in a file is considered a separate document. Use this option when you are processing many short documents, such as text messages. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Uri</i> The Amazon S3 URI for the input data. The URI must be in same region as the API endpoint that you are calling. The URI can point to a single input file or it can provide the prefix for a collection of data files.  For example, if you use the URI <code>S3://bucketName/prefix</code>, if the prefix is a single file, Amazon Comprehend uses that file as input. If more than one file begins with the prefix, Amazon Comprehend uses all of them as input.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> ID for the AWS Key Management Service (KMS) key that Amazon Comprehend uses to encrypt the output results from an analysis job. The KmsKeyId can be one of the following formats: <ul> <li> KMS Key ID: <code>"1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> <li> Amazon Resource Name (ARN) of a KMS Key: <code>"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> <li> KMS Key Alias: <code>"alias/ExampleAlias"</code>  </li> <li> ARN of a KMS Key Alias: <code>"arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias"</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Uri</i> When you use the <code>OutputDataConfig</code> object with asynchronous operations, you specify the Amazon S3 location where you want to write the output data. The URI must be in the same region as the API endpoint that you are calling. The location is used as the prefix for the actual location of the output file. When the topic detection job is finished, the service creates an output file in a directory specific to the job. The <code>S3Uri</code> field contains the location of the output file, called <code>output.tar.gz</code>. It is a compressed archive that contains the ouput of the operation.<br/>
        :return: JobStatus:  The status of the events detection job.<br/>JobId:  An unique identifier for the request. If you don't set the client request token, Amazon Comprehend generates one.<br/>        """
        pass

    def start_key_phrases_detection_job(self, LanguageCode: str, DataAccessRoleArn: str, OutputDataConfig: OutputDataConfig, InputDataConfig: InputDataConfig, JobName: str=None, ClientRequestToken: str=None, VolumeKmsKeyId: str=None, VpcConfig: VpcConfig=None) -> StartKeyPhrasesDetectionJobResponse:
        r"""Starts an asynchronous key phrase detection job for a collection of documents. Use the operation to track the status of a job.

        :param self:
        :param VpcConfig:   Configuration parameters for an optional private Virtual Private Cloud (VPC) containing the resources you are using for your key phrases detection job. For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html">Amazon VPC</a>. :<br/>VolumeKmsKeyId:  ID for the AWS Key Management Service (KMS) key that Amazon Comprehend uses to encrypt data on the storage volume attached to the ML compute instance(s) that process the analysis job. The VolumeKmsKeyId can be either of the following formats: <ul> <li> KMS Key ID: <code>"1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> <li> Amazon Resource Name (ARN) of a KMS Key: <code>"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> </ul><br/>ClientRequestToken:  A unique identifier for the request. If you don't set the client request token, Amazon Comprehend generates one.<br/>LanguageCode:  The language of the input documents. You can specify any of the primary languages supported by Amazon Comprehend. All documents must be in the same language.<br/>JobName:  The identifier of the job.<br/>DataAccessRoleArn:  The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that grants Amazon Comprehend read access to your input data. For more information, see <a href="https://docs.aws.amazon.com/comprehend/latest/dg/access-control-managing-permissions.html#auth-role-permissions">https://docs.aws.amazon.com/comprehend/latest/dg/access-control-managing-permissions.html#auth-role-permissions</a>.<br/>OutputDataConfig:  Specifies where to send the output files.:<br/>InputDataConfig:  Specifies the format and location of the input data for the job.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InputFormat</i> Specifies how the text in an input file should be processed: <ul> <li>  <code>ONE_DOC_PER_FILE</code> - Each file is considered a separate document. Use this option when you are processing large documents, such as newspaper articles or scientific papers. </li> <li>  <code>ONE_DOC_PER_LINE</code> - Each line in a file is considered a separate document. Use this option when you are processing many short documents, such as text messages. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Uri</i> The Amazon S3 URI for the input data. The URI must be in same region as the API endpoint that you are calling. The URI can point to a single input file or it can provide the prefix for a collection of data files.  For example, if you use the URI <code>S3://bucketName/prefix</code>, if the prefix is a single file, Amazon Comprehend uses that file as input. If more than one file begins with the prefix, Amazon Comprehend uses all of them as input.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> ID for the AWS Key Management Service (KMS) key that Amazon Comprehend uses to encrypt the output results from an analysis job. The KmsKeyId can be one of the following formats: <ul> <li> KMS Key ID: <code>"1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> <li> Amazon Resource Name (ARN) of a KMS Key: <code>"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> <li> KMS Key Alias: <code>"alias/ExampleAlias"</code>  </li> <li> ARN of a KMS Key Alias: <code>"arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias"</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Uri</i> When you use the <code>OutputDataConfig</code> object with asynchronous operations, you specify the Amazon S3 location where you want to write the output data. The URI must be in the same region as the API endpoint that you are calling. The location is used as the prefix for the actual location of the output file. When the topic detection job is finished, the service creates an output file in a directory specific to the job. The <code>S3Uri</code> field contains the location of the output file, called <code>output.tar.gz</code>. It is a compressed archive that contains the ouput of the operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Subnets</i> The ID for each subnet being used in your private VPC. This subnet is a subset of the a range of IPv4 addresses used by the VPC and is specific to a given availability zone in the VPC’s region. This ID number is preceded by "subnet-", for instance: "subnet-04ccf456919e69055". For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html">VPCs and Subnets</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> The ID number for a security group on an instance of your private VPC. Security groups on your VPC function serve as a virtual firewall to control inbound and outbound traffic and provides security for the resources that you’ll be accessing on the VPC. This ID number is preceded by "sg-", for instance: "sg-03b388029b0a285ea". For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html">Security Groups for your VPC</a>. <br/>
        :return: JobStatus:  The status of the job.  <ul> <li> SUBMITTED - The job has been received and is queued for processing. </li> <li> IN_PROGRESS - Amazon Comprehend is processing the job. </li> <li> COMPLETED - The job was successfully completed and the output is available. </li> <li> FAILED - The job did not complete. To get details, use the operation. </li> </ul><br/>JobId:  The identifier generated for the job. To get the status of a job, use this identifier with the operation.<br/>        """
        pass

    def start_pii_entities_detection_job(self, LanguageCode: str, DataAccessRoleArn: str, Mode: str, OutputDataConfig: OutputDataConfig, InputDataConfig: InputDataConfig, RedactionConfig: RedactionConfig=None, JobName: str=None, ClientRequestToken: str=None) -> StartPiiEntitiesDetectionJobResponse:
        r"""Starts an asynchronous PII entity detection job for a collection of documents.

        :param self:
        :param ClientRequestToken:  A unique identifier for the request. If you don't set the client request token, Amazon Comprehend generates one.<br/>LanguageCode:  The language of the input documents.<br/>JobName:  The identifier of the job.<br/>DataAccessRoleArn:  The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that grants Amazon Comprehend read access to your input data.<br/>RedactionConfig:  Provides configuration parameters for PII entity redaction. This parameter is required if you set the <code>Mode</code> parameter to <code>ONLY_REDACTION</code>. In that case, you must provide a <code>RedactionConfig</code> definition that includes the <code>PiiEntityTypes</code> parameter.:<br/>Mode:  Specifies whether the output provides the locations (offsets) of PII entities or a file in which PII entities are redacted.<br/>OutputDataConfig:  Provides conﬁguration parameters for the output of PII entity detection jobs.:<br/>InputDataConfig:  The input properties for a PII entities detection job.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InputFormat</i> Specifies how the text in an input file should be processed: <ul> <li>  <code>ONE_DOC_PER_FILE</code> - Each file is considered a separate document. Use this option when you are processing large documents, such as newspaper articles or scientific papers. </li> <li>  <code>ONE_DOC_PER_LINE</code> - Each line in a file is considered a separate document. Use this option when you are processing many short documents, such as text messages. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Uri</i> The Amazon S3 URI for the input data. The URI must be in same region as the API endpoint that you are calling. The URI can point to a single input file or it can provide the prefix for a collection of data files.  For example, if you use the URI <code>S3://bucketName/prefix</code>, if the prefix is a single file, Amazon Comprehend uses that file as input. If more than one file begins with the prefix, Amazon Comprehend uses all of them as input.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> ID for the AWS Key Management Service (KMS) key that Amazon Comprehend uses to encrypt the output results from an analysis job. The KmsKeyId can be one of the following formats: <ul> <li> KMS Key ID: <code>"1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> <li> Amazon Resource Name (ARN) of a KMS Key: <code>"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> <li> KMS Key Alias: <code>"alias/ExampleAlias"</code>  </li> <li> ARN of a KMS Key Alias: <code>"arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias"</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Uri</i> When you use the <code>OutputDataConfig</code> object with asynchronous operations, you specify the Amazon S3 location where you want to write the output data. The URI must be in the same region as the API endpoint that you are calling. The location is used as the prefix for the actual location of the output file. When the topic detection job is finished, the service creates an output file in a directory specific to the job. The <code>S3Uri</code> field contains the location of the output file, called <code>output.tar.gz</code>. It is a compressed archive that contains the ouput of the operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaskCharacter</i> A character that replaces each character in the redacted PII entity.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaskMode</i> Specifies whether the PII entity is redacted with the mask character or the entity type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PiiEntityTypes</i> An array of the types of PII entities that Amazon Comprehend detects in the input text for your request.<br/>
        :return: JobStatus:  The status of the job.<br/>JobId:  The identifier generated for the job.<br/>        """
        pass

    def start_sentiment_detection_job(self, LanguageCode: str, DataAccessRoleArn: str, OutputDataConfig: OutputDataConfig, InputDataConfig: InputDataConfig, JobName: str=None, ClientRequestToken: str=None, VolumeKmsKeyId: str=None, VpcConfig: VpcConfig=None) -> StartSentimentDetectionJobResponse:
        r"""Starts an asynchronous sentiment detection job for a collection of documents. use the operation to track the status of a job.

        :param self:
        :param VpcConfig:  Configuration parameters for an optional private Virtual Private Cloud (VPC) containing the resources you are using for your sentiment detection job. For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html">Amazon VPC</a>. :<br/>VolumeKmsKeyId:  ID for the AWS Key Management Service (KMS) key that Amazon Comprehend uses to encrypt data on the storage volume attached to the ML compute instance(s) that process the analysis job. The VolumeKmsKeyId can be either of the following formats: <ul> <li> KMS Key ID: <code>"1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> <li> Amazon Resource Name (ARN) of a KMS Key: <code>"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> </ul><br/>ClientRequestToken:  A unique identifier for the request. If you don't set the client request token, Amazon Comprehend generates one.<br/>LanguageCode:  The language of the input documents. You can specify any of the primary languages supported by Amazon Comprehend. All documents must be in the same language.<br/>JobName:  The identifier of the job.<br/>DataAccessRoleArn:  The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that grants Amazon Comprehend read access to your input data. For more information, see <a href="https://docs.aws.amazon.com/comprehend/latest/dg/access-control-managing-permissions.html#auth-role-permissions">https://docs.aws.amazon.com/comprehend/latest/dg/access-control-managing-permissions.html#auth-role-permissions</a>.<br/>OutputDataConfig:  Specifies where to send the output files. :<br/>InputDataConfig:  Specifies the format and location of the input data for the job.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InputFormat</i> Specifies how the text in an input file should be processed: <ul> <li>  <code>ONE_DOC_PER_FILE</code> - Each file is considered a separate document. Use this option when you are processing large documents, such as newspaper articles or scientific papers. </li> <li>  <code>ONE_DOC_PER_LINE</code> - Each line in a file is considered a separate document. Use this option when you are processing many short documents, such as text messages. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Uri</i> The Amazon S3 URI for the input data. The URI must be in same region as the API endpoint that you are calling. The URI can point to a single input file or it can provide the prefix for a collection of data files.  For example, if you use the URI <code>S3://bucketName/prefix</code>, if the prefix is a single file, Amazon Comprehend uses that file as input. If more than one file begins with the prefix, Amazon Comprehend uses all of them as input.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> ID for the AWS Key Management Service (KMS) key that Amazon Comprehend uses to encrypt the output results from an analysis job. The KmsKeyId can be one of the following formats: <ul> <li> KMS Key ID: <code>"1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> <li> Amazon Resource Name (ARN) of a KMS Key: <code>"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> <li> KMS Key Alias: <code>"alias/ExampleAlias"</code>  </li> <li> ARN of a KMS Key Alias: <code>"arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias"</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Uri</i> When you use the <code>OutputDataConfig</code> object with asynchronous operations, you specify the Amazon S3 location where you want to write the output data. The URI must be in the same region as the API endpoint that you are calling. The location is used as the prefix for the actual location of the output file. When the topic detection job is finished, the service creates an output file in a directory specific to the job. The <code>S3Uri</code> field contains the location of the output file, called <code>output.tar.gz</code>. It is a compressed archive that contains the ouput of the operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Subnets</i> The ID for each subnet being used in your private VPC. This subnet is a subset of the a range of IPv4 addresses used by the VPC and is specific to a given availability zone in the VPC’s region. This ID number is preceded by "subnet-", for instance: "subnet-04ccf456919e69055". For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html">VPCs and Subnets</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> The ID number for a security group on an instance of your private VPC. Security groups on your VPC function serve as a virtual firewall to control inbound and outbound traffic and provides security for the resources that you’ll be accessing on the VPC. This ID number is preceded by "sg-", for instance: "sg-03b388029b0a285ea". For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html">Security Groups for your VPC</a>. <br/>
        :return: JobStatus:  The status of the job.  <ul> <li> SUBMITTED - The job has been received and is queued for processing. </li> <li> IN_PROGRESS - Amazon Comprehend is processing the job. </li> <li> COMPLETED - The job was successfully completed and the output is available. </li> <li> FAILED - The job did not complete. To get details, use the operation. </li> </ul><br/>JobId:  The identifier generated for the job. To get the status of a job, use this identifier with the operation.<br/>        """
        pass

    def start_topics_detection_job(self, DataAccessRoleArn: str, OutputDataConfig: OutputDataConfig, InputDataConfig: InputDataConfig, JobName: str=None, NumberOfTopics: int=None, ClientRequestToken: str=None, VolumeKmsKeyId: str=None, VpcConfig: VpcConfig=None) -> StartTopicsDetectionJobResponse:
        r"""Starts an asynchronous topic detection job. Use the <code>DescribeTopicDetectionJob</code> operation to track the status of a job.

        :param self:
        :param VpcConfig:  Configuration parameters for an optional private Virtual Private Cloud (VPC) containing the resources you are using for your topic detection job. For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html">Amazon VPC</a>. :<br/>VolumeKmsKeyId:  ID for the AWS Key Management Service (KMS) key that Amazon Comprehend uses to encrypt data on the storage volume attached to the ML compute instance(s) that process the analysis job. The VolumeKmsKeyId can be either of the following formats: <ul> <li> KMS Key ID: <code>"1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> <li> Amazon Resource Name (ARN) of a KMS Key: <code>"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> </ul><br/>ClientRequestToken:  A unique identifier for the request. If you do not set the client request token, Amazon Comprehend generates one.<br/>NumberOfTopics:  The number of topics to detect.<br/>JobName:  The identifier of the job.<br/>DataAccessRoleArn:  The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that grants Amazon Comprehend read access to your input data. For more information, see <a href="https://docs.aws.amazon.com/comprehend/latest/dg/access-control-managing-permissions.html#auth-role-permissions">https://docs.aws.amazon.com/comprehend/latest/dg/access-control-managing-permissions.html#auth-role-permissions</a>.<br/>OutputDataConfig:  Specifies where to send the output files. The output is a compressed archive with two files, <code>topic-terms.csv</code> that lists the terms associated with each topic, and <code>doc-topics.csv</code> that lists the documents associated with each topic:<br/>InputDataConfig:  Specifies the format and location of the input data for the job.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InputFormat</i> Specifies how the text in an input file should be processed: <ul> <li>  <code>ONE_DOC_PER_FILE</code> - Each file is considered a separate document. Use this option when you are processing large documents, such as newspaper articles or scientific papers. </li> <li>  <code>ONE_DOC_PER_LINE</code> - Each line in a file is considered a separate document. Use this option when you are processing many short documents, such as text messages. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Uri</i> The Amazon S3 URI for the input data. The URI must be in same region as the API endpoint that you are calling. The URI can point to a single input file or it can provide the prefix for a collection of data files.  For example, if you use the URI <code>S3://bucketName/prefix</code>, if the prefix is a single file, Amazon Comprehend uses that file as input. If more than one file begins with the prefix, Amazon Comprehend uses all of them as input.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> ID for the AWS Key Management Service (KMS) key that Amazon Comprehend uses to encrypt the output results from an analysis job. The KmsKeyId can be one of the following formats: <ul> <li> KMS Key ID: <code>"1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> <li> Amazon Resource Name (ARN) of a KMS Key: <code>"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> <li> KMS Key Alias: <code>"alias/ExampleAlias"</code>  </li> <li> ARN of a KMS Key Alias: <code>"arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias"</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Uri</i> When you use the <code>OutputDataConfig</code> object with asynchronous operations, you specify the Amazon S3 location where you want to write the output data. The URI must be in the same region as the API endpoint that you are calling. The location is used as the prefix for the actual location of the output file. When the topic detection job is finished, the service creates an output file in a directory specific to the job. The <code>S3Uri</code> field contains the location of the output file, called <code>output.tar.gz</code>. It is a compressed archive that contains the ouput of the operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Subnets</i> The ID for each subnet being used in your private VPC. This subnet is a subset of the a range of IPv4 addresses used by the VPC and is specific to a given availability zone in the VPC’s region. This ID number is preceded by "subnet-", for instance: "subnet-04ccf456919e69055". For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html">VPCs and Subnets</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> The ID number for a security group on an instance of your private VPC. Security groups on your VPC function serve as a virtual firewall to control inbound and outbound traffic and provides security for the resources that you’ll be accessing on the VPC. This ID number is preceded by "sg-", for instance: "sg-03b388029b0a285ea". For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html">Security Groups for your VPC</a>. <br/>
        :return: JobStatus:  The status of the job:  <ul> <li> SUBMITTED - The job has been received and is queued for processing. </li> <li> IN_PROGRESS - Amazon Comprehend is processing the job. </li> <li> COMPLETED - The job was successfully completed and the output is available. </li> <li> FAILED - The job did not complete. To get details, use the <code>DescribeTopicDetectionJob</code> operation. </li> </ul><br/>JobId:  The identifier generated for the job. To get the status of the job, use this identifier with the <code>DescribeTopicDetectionJob</code> operation.<br/>        """
        pass

    def stop_dominant_language_detection_job(self, JobId: str) -> StopDominantLanguageDetectionJobResponse:
        r"""Stops a dominant language detection job in progress. If the job state is <code>IN_PROGRESS</code> the job is marked for termination and put into the <code>STOP_REQUESTED</code> state. If the job completes before it can be stopped, it is put into the <code>COMPLETED</code> state; otherwise the job is stopped and put into the <code>STOPPED</code> state. If the job is in the <code>COMPLETED</code> or <code>FAILED</code> state when you call the <code>StopDominantLanguageDetectionJob</code> operation, the operation returns a 400 Internal Request Exception.  When a job is stopped, any documents already processed are written to the output location.

        :param self:
        :param JobId:  The identifier of the dominant language detection job to stop.<br/>
        :return: JobStatus:  Either <code>STOP_REQUESTED</code> if the job is currently running, or <code>STOPPED</code> if the job was previously stopped with the <code>StopDominantLanguageDetectionJob</code> operation.<br/>JobId:  The identifier of the dominant language detection job to stop.<br/>        """
        pass

    def stop_entities_detection_job(self, JobId: str) -> StopEntitiesDetectionJobResponse:
        r"""Stops an entities detection job in progress. If the job state is <code>IN_PROGRESS</code> the job is marked for termination and put into the <code>STOP_REQUESTED</code> state. If the job completes before it can be stopped, it is put into the <code>COMPLETED</code> state; otherwise the job is stopped and put into the <code>STOPPED</code> state. If the job is in the <code>COMPLETED</code> or <code>FAILED</code> state when you call the <code>StopDominantLanguageDetectionJob</code> operation, the operation returns a 400 Internal Request Exception.  When a job is stopped, any documents already processed are written to the output location.

        :param self:
        :param JobId:  The identifier of the entities detection job to stop.<br/>
        :return: JobStatus:  Either <code>STOP_REQUESTED</code> if the job is currently running, or <code>STOPPED</code> if the job was previously stopped with the <code>StopEntitiesDetectionJob</code> operation.<br/>JobId:  The identifier of the entities detection job to stop.<br/>        """
        pass

    def stop_events_detection_job(self, JobId: str) -> StopEventsDetectionJobResponse:
        r"""Stops an events detection job in progress.

        :param self:
        :param JobId:  The identifier of the events detection job to stop.<br/>
        :return: JobStatus:  The status of the events detection job.<br/>JobId:  The identifier of the events detection job to stop.<br/>        """
        pass

    def stop_key_phrases_detection_job(self, JobId: str) -> StopKeyPhrasesDetectionJobResponse:
        r"""Stops a key phrases detection job in progress. If the job state is <code>IN_PROGRESS</code> the job is marked for termination and put into the <code>STOP_REQUESTED</code> state. If the job completes before it can be stopped, it is put into the <code>COMPLETED</code> state; otherwise the job is stopped and put into the <code>STOPPED</code> state. If the job is in the <code>COMPLETED</code> or <code>FAILED</code> state when you call the <code>StopDominantLanguageDetectionJob</code> operation, the operation returns a 400 Internal Request Exception.  When a job is stopped, any documents already processed are written to the output location.

        :param self:
        :param JobId:  The identifier of the key phrases detection job to stop.<br/>
        :return: JobStatus:  Either <code>STOP_REQUESTED</code> if the job is currently running, or <code>STOPPED</code> if the job was previously stopped with the <code>StopKeyPhrasesDetectionJob</code> operation.<br/>JobId:  The identifier of the key phrases detection job to stop.<br/>        """
        pass

    def stop_pii_entities_detection_job(self, JobId: str) -> StopPiiEntitiesDetectionJobResponse:
        r"""Stops a PII entities detection job in progress.

        :param self:
        :param JobId:  The identifier of the PII entities detection job to stop.<br/>
        :return: JobStatus:  The status of the PII entities detection job.<br/>JobId:  The identifier of the PII entities detection job to stop.<br/>        """
        pass

    def stop_sentiment_detection_job(self, JobId: str) -> StopSentimentDetectionJobResponse:
        r"""Stops a sentiment detection job in progress. If the job state is <code>IN_PROGRESS</code> the job is marked for termination and put into the <code>STOP_REQUESTED</code> state. If the job completes before it can be stopped, it is put into the <code>COMPLETED</code> state; otherwise the job is be stopped and put into the <code>STOPPED</code> state. If the job is in the <code>COMPLETED</code> or <code>FAILED</code> state when you call the <code>StopDominantLanguageDetectionJob</code> operation, the operation returns a 400 Internal Request Exception.  When a job is stopped, any documents already processed are written to the output location.

        :param self:
        :param JobId:  The identifier of the sentiment detection job to stop.<br/>
        :return: JobStatus:  Either <code>STOP_REQUESTED</code> if the job is currently running, or <code>STOPPED</code> if the job was previously stopped with the <code>StopSentimentDetectionJob</code> operation.<br/>JobId:  The identifier of the sentiment detection job to stop.<br/>        """
        pass

    def stop_training_document_classifier(self, DocumentClassifierArn: str) -> StopTrainingDocumentClassifierResponse:
        r"""Stops a document classifier training job while in progress. If the training job state is <code>TRAINING</code>, the job is marked for termination and put into the <code>STOP_REQUESTED</code> state. If the training job completes before it can be stopped, it is put into the <code>TRAINED</code>; otherwise the training job is stopped and put into the <code>STOPPED</code> state and the service sends back an HTTP 200 response with an empty HTTP body. 

        :param self:
        :param DocumentClassifierArn:  The Amazon Resource Name (ARN) that identifies the document classifier currently being trained.<br/>
        :return:         """
        pass

    def stop_training_entity_recognizer(self, EntityRecognizerArn: str) -> StopTrainingEntityRecognizerResponse:
        r"""Stops an entity recognizer training job while in progress. If the training job state is <code>TRAINING</code>, the job is marked for termination and put into the <code>STOP_REQUESTED</code> state. If the training job completes before it can be stopped, it is put into the <code>TRAINED</code>; otherwise the training job is stopped and putted into the <code>STOPPED</code> state and the service sends back an HTTP 200 response with an empty HTTP body.

        :param self:
        :param EntityRecognizerArn:  The Amazon Resource Name (ARN) that identifies the entity recognizer currently being trained.<br/>
        :return:         """
        pass

    def tag_resource(self, Tags: List[Tag], ResourceArn: str) -> TagResourceResponse:
        r"""Associates a specific tag with an Amazon Comprehend resource. A tag is a key-value pair that adds as a metadata to a resource used by Amazon Comprehend. For example, a tag with "Sales" as the key might be added to a resource to indicate its use by the sales department. 

        :param self:
        :param Tags:  Tags being associated with a specific Amazon Comprehend resource. There can be a maximum of 50 tags (both existing and pending) associated with a specific resource. <br/>ResourceArn:  The Amazon Resource Name (ARN) of the given Amazon Comprehend resource to which you want to associate the tags. <br/>
        :return:         """
        pass

    def untag_resource(self, TagKeys: List[TagKey], ResourceArn: str) -> UntagResourceResponse:
        r"""Removes a specific tag associated with an Amazon Comprehend resource. 

        :param self:
        :param TagKeys:  The initial part of a key-value pair that forms a tag being removed from a given resource. For example, a tag with "Sales" as the key might be added to a resource to indicate its use by the sales department. Keys must be unique and cannot be duplicated for a particular resource. <br/>ResourceArn:   The Amazon Resource Name (ARN) of the given Amazon Comprehend resource from which you want to remove the tags. <br/>
        :return:         """
        pass

    def update_endpoint(self, DesiredInferenceUnits: int, EndpointArn: str) -> UpdateEndpointResponse:
        r"""Updates information about the specified endpoint.

        :param self:
        :param DesiredInferenceUnits:   The desired number of inference units to be used by the model using this endpoint. Each inference unit represents of a throughput of 100 characters per second.<br/>EndpointArn:  The Amazon Resource Number (ARN) of the endpoint being updated.<br/>
        :return:         """
        pass





class ComprehendMedical(BaseClient):
    r""" Amazon Comprehend Medical extracts structured information from unstructured clinical text. Use these actions to gain insight in your documents. """




    class DescribeEntitiesDetectionV2JobRequest(Mapping):
        pass
    
    class DescribeEntitiesDetectionV2JobResponse(Mapping):
        pass
    
    class DescribeICD10CMInferenceJobRequest(Mapping):
        pass
    
    class DescribeICD10CMInferenceJobResponse(Mapping):
        pass
    
    class DescribePHIDetectionJobRequest(Mapping):
        pass
    
    class DescribePHIDetectionJobResponse(Mapping):
        pass
    
    class DescribeRxNormInferenceJobRequest(Mapping):
        pass
    
    class DescribeRxNormInferenceJobResponse(Mapping):
        pass
    
    class DetectEntitiesRequest(Mapping):
        pass
    
    class DetectEntitiesResponse(Mapping):
        pass
    
    class DetectEntitiesV2Request(Mapping):
        pass
    
    class DetectEntitiesV2Response(Mapping):
        pass
    
    class DetectPHIRequest(Mapping):
        pass
    
    class DetectPHIResponse(Mapping):
        pass
    
    class InferICD10CMRequest(Mapping):
        pass
    
    class InferICD10CMResponse(Mapping):
        pass
    
    class InferRxNormRequest(Mapping):
        pass
    
    class InferRxNormResponse(Mapping):
        pass
    
    class ListEntitiesDetectionV2JobsRequest(Mapping):
        pass
    
    class ListEntitiesDetectionV2JobsResponse(Mapping):
        pass
    
    class ComprehendMedicalAsyncJobFilter(Mapping):
        pass
    
    class ListICD10CMInferenceJobsRequest(Mapping):
        pass
    
    class ListICD10CMInferenceJobsResponse(Mapping):
        pass
    
    class ListPHIDetectionJobsRequest(Mapping):
        pass
    
    class ListPHIDetectionJobsResponse(Mapping):
        pass
    
    class ListRxNormInferenceJobsRequest(Mapping):
        pass
    
    class ListRxNormInferenceJobsResponse(Mapping):
        pass
    
    class StartEntitiesDetectionV2JobRequest(Mapping):
        pass
    
    class StartEntitiesDetectionV2JobResponse(Mapping):
        pass
    
    class InputDataConfig(Mapping):
        pass
    
    class OutputDataConfig(Mapping):
        pass
    
    class StartICD10CMInferenceJobRequest(Mapping):
        pass
    
    class StartICD10CMInferenceJobResponse(Mapping):
        pass
    
    class StartPHIDetectionJobRequest(Mapping):
        pass
    
    class StartPHIDetectionJobResponse(Mapping):
        pass
    
    class StartRxNormInferenceJobRequest(Mapping):
        pass
    
    class StartRxNormInferenceJobResponse(Mapping):
        pass
    
    class StopEntitiesDetectionV2JobRequest(Mapping):
        pass
    
    class StopEntitiesDetectionV2JobResponse(Mapping):
        pass
    
    class StopICD10CMInferenceJobRequest(Mapping):
        pass
    
    class StopICD10CMInferenceJobResponse(Mapping):
        pass
    
    class StopPHIDetectionJobRequest(Mapping):
        pass
    
    class StopPHIDetectionJobResponse(Mapping):
        pass
    
    class StopRxNormInferenceJobRequest(Mapping):
        pass
    
    class StopRxNormInferenceJobResponse(Mapping):
        pass
    
    def describe_entities_detection_v2_job(self, JobId: str) -> DescribeEntitiesDetectionV2JobResponse:
        r"""Gets the properties associated with a medical entities detection job. Use this operation to get the status of a detection job.

        :param self:
        :param JobId:  The identifier that Amazon Comprehend Medical generated for the job. The <code>StartEntitiesDetectionV2Job</code> operation returns this identifier in its response.<br/>
        :return: ComprehendMedicalAsyncJobProperties:  An object that contains the properties associated with a detection job.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ModelVersion</i> The version of the model used to analyze the documents. The version number looks like X.X.X. You can use this information to track the model used for a particular batch of documents.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KMSKey</i> The AWS Key Management Service key, if any, used to encrypt the output files. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ManifestFilePath</i> The path to the file that describes the results of a batch job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataAccessRoleArn</i> The Amazon Resource Name (ARN) that gives Amazon Comprehend Medical read access to your input data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LanguageCode</i> The language code of the input documents.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OutputDataConfig</i> The output data configuration that you supplied when you created the detection job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>OutputDataConfig</b>: The output data configuration that you supplied when you created the detection job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InputDataConfig</i> The input data configuration that you supplied when you created the detection job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>InputDataConfig</b>: The input data configuration that you supplied when you created the detection job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExpirationTime</i> The date and time that job metadata is deleted from the server. Output files in your S3 bucket will not be deleted. After the metadata is deleted, the job will no longer appear in the results of the <code>ListEntitiesDetectionV2Job</code> or the <code>ListPHIDetectionJobs</code> operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndTime</i> The time that the detection job completed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubmitTime</i> The time that the detection job was submitted for processing.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> A description of the status of a job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobStatus</i> The current status of the detection job. If the status is <code>FAILED</code>, the <code>Message</code> field shows the reason for the failure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobName</i> The name that you assigned to the detection job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobId</i> The identifier assigned to the detection job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Key</i> The path to the input data files in the S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Bucket</i> The URI of the S3 bucket that contains the input data. The bucket must be in the same region as the API endpoint that you are calling. Each file in the document collection must be less than 40 KB. You can store a maximum of 30 GB in the bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Key</i> The path to the output data files in the S3 bucket. Amazon Comprehend Medical creates an output directory using the job ID so that the output from one job does not overwrite the output of another.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Bucket</i> When you use the <code>OutputDataConfig</code> object with asynchronous operations, you specify the Amazon S3 location where you want to write the output data. The URI must be in the same region as the API endpoint that you are calling. The location is used as the prefix for the actual location of the output.<br/>        """
        pass

    def describe_icd10_cm_inference_job(self, JobId: str) -> DescribeICD10CMInferenceJobResponse:
        r"""Gets the properties associated with an InferICD10CM job. Use this operation to get the status of an inference job.

        :param self:
        :param JobId:  The identifier that Amazon Comprehend Medical generated for the job. <code>The StartICD10CMInferenceJob</code> operation returns this identifier in its response.<br/>
        :return: ComprehendMedicalAsyncJobProperties:  An object that contains the properties associated with a detection job.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ModelVersion</i> The version of the model used to analyze the documents. The version number looks like X.X.X. You can use this information to track the model used for a particular batch of documents.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KMSKey</i> The AWS Key Management Service key, if any, used to encrypt the output files. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ManifestFilePath</i> The path to the file that describes the results of a batch job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataAccessRoleArn</i> The Amazon Resource Name (ARN) that gives Amazon Comprehend Medical read access to your input data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LanguageCode</i> The language code of the input documents.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OutputDataConfig</i> The output data configuration that you supplied when you created the detection job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>OutputDataConfig</b>: The output data configuration that you supplied when you created the detection job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InputDataConfig</i> The input data configuration that you supplied when you created the detection job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>InputDataConfig</b>: The input data configuration that you supplied when you created the detection job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExpirationTime</i> The date and time that job metadata is deleted from the server. Output files in your S3 bucket will not be deleted. After the metadata is deleted, the job will no longer appear in the results of the <code>ListEntitiesDetectionV2Job</code> or the <code>ListPHIDetectionJobs</code> operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndTime</i> The time that the detection job completed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubmitTime</i> The time that the detection job was submitted for processing.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> A description of the status of a job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobStatus</i> The current status of the detection job. If the status is <code>FAILED</code>, the <code>Message</code> field shows the reason for the failure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobName</i> The name that you assigned to the detection job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobId</i> The identifier assigned to the detection job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Key</i> The path to the input data files in the S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Bucket</i> The URI of the S3 bucket that contains the input data. The bucket must be in the same region as the API endpoint that you are calling. Each file in the document collection must be less than 40 KB. You can store a maximum of 30 GB in the bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Key</i> The path to the output data files in the S3 bucket. Amazon Comprehend Medical creates an output directory using the job ID so that the output from one job does not overwrite the output of another.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Bucket</i> When you use the <code>OutputDataConfig</code> object with asynchronous operations, you specify the Amazon S3 location where you want to write the output data. The URI must be in the same region as the API endpoint that you are calling. The location is used as the prefix for the actual location of the output.<br/>        """
        pass

    def describe_phi_detection_job(self, JobId: str) -> DescribePHIDetectionJobResponse:
        r"""Gets the properties associated with a protected health information (PHI) detection job. Use this operation to get the status of a detection job.

        :param self:
        :param JobId:  The identifier that Amazon Comprehend Medical generated for the job. The <code>StartPHIDetectionJob</code> operation returns this identifier in its response.<br/>
        :return: ComprehendMedicalAsyncJobProperties:  An object that contains the properties associated with a detection job.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ModelVersion</i> The version of the model used to analyze the documents. The version number looks like X.X.X. You can use this information to track the model used for a particular batch of documents.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KMSKey</i> The AWS Key Management Service key, if any, used to encrypt the output files. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ManifestFilePath</i> The path to the file that describes the results of a batch job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataAccessRoleArn</i> The Amazon Resource Name (ARN) that gives Amazon Comprehend Medical read access to your input data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LanguageCode</i> The language code of the input documents.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OutputDataConfig</i> The output data configuration that you supplied when you created the detection job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>OutputDataConfig</b>: The output data configuration that you supplied when you created the detection job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InputDataConfig</i> The input data configuration that you supplied when you created the detection job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>InputDataConfig</b>: The input data configuration that you supplied when you created the detection job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExpirationTime</i> The date and time that job metadata is deleted from the server. Output files in your S3 bucket will not be deleted. After the metadata is deleted, the job will no longer appear in the results of the <code>ListEntitiesDetectionV2Job</code> or the <code>ListPHIDetectionJobs</code> operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndTime</i> The time that the detection job completed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubmitTime</i> The time that the detection job was submitted for processing.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> A description of the status of a job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobStatus</i> The current status of the detection job. If the status is <code>FAILED</code>, the <code>Message</code> field shows the reason for the failure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobName</i> The name that you assigned to the detection job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobId</i> The identifier assigned to the detection job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Key</i> The path to the input data files in the S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Bucket</i> The URI of the S3 bucket that contains the input data. The bucket must be in the same region as the API endpoint that you are calling. Each file in the document collection must be less than 40 KB. You can store a maximum of 30 GB in the bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Key</i> The path to the output data files in the S3 bucket. Amazon Comprehend Medical creates an output directory using the job ID so that the output from one job does not overwrite the output of another.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Bucket</i> When you use the <code>OutputDataConfig</code> object with asynchronous operations, you specify the Amazon S3 location where you want to write the output data. The URI must be in the same region as the API endpoint that you are calling. The location is used as the prefix for the actual location of the output.<br/>        """
        pass

    def describe_rx_norm_inference_job(self, JobId: str) -> DescribeRxNormInferenceJobResponse:
        r"""Gets the properties associated with an InferRxNorm job. Use this operation to get the status of an inference job.

        :param self:
        :param JobId:  The identifier that Amazon Comprehend Medical generated for the job. The StartRxNormInferenceJob operation returns this identifier in its response.<br/>
        :return: ComprehendMedicalAsyncJobProperties:  An object that contains the properties associated with a detection job.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ModelVersion</i> The version of the model used to analyze the documents. The version number looks like X.X.X. You can use this information to track the model used for a particular batch of documents.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KMSKey</i> The AWS Key Management Service key, if any, used to encrypt the output files. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ManifestFilePath</i> The path to the file that describes the results of a batch job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataAccessRoleArn</i> The Amazon Resource Name (ARN) that gives Amazon Comprehend Medical read access to your input data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LanguageCode</i> The language code of the input documents.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OutputDataConfig</i> The output data configuration that you supplied when you created the detection job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>OutputDataConfig</b>: The output data configuration that you supplied when you created the detection job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InputDataConfig</i> The input data configuration that you supplied when you created the detection job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>InputDataConfig</b>: The input data configuration that you supplied when you created the detection job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExpirationTime</i> The date and time that job metadata is deleted from the server. Output files in your S3 bucket will not be deleted. After the metadata is deleted, the job will no longer appear in the results of the <code>ListEntitiesDetectionV2Job</code> or the <code>ListPHIDetectionJobs</code> operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndTime</i> The time that the detection job completed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubmitTime</i> The time that the detection job was submitted for processing.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> A description of the status of a job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobStatus</i> The current status of the detection job. If the status is <code>FAILED</code>, the <code>Message</code> field shows the reason for the failure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobName</i> The name that you assigned to the detection job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobId</i> The identifier assigned to the detection job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Key</i> The path to the input data files in the S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Bucket</i> The URI of the S3 bucket that contains the input data. The bucket must be in the same region as the API endpoint that you are calling. Each file in the document collection must be less than 40 KB. You can store a maximum of 30 GB in the bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Key</i> The path to the output data files in the S3 bucket. Amazon Comprehend Medical creates an output directory using the job ID so that the output from one job does not overwrite the output of another.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Bucket</i> When you use the <code>OutputDataConfig</code> object with asynchronous operations, you specify the Amazon S3 location where you want to write the output data. The URI must be in the same region as the API endpoint that you are calling. The location is used as the prefix for the actual location of the output.<br/>        """
        pass

    def detect_entities(self, Text: str) -> DetectEntitiesResponse:
        r"""The <code>DetectEntities</code> operation is deprecated. You should use the <a>DetectEntitiesV2</a> operation instead.  Inspects the clinical text for a variety of medical entities and returns specific information about them such as entity category, location, and confidence score on that information .

        :param self:
        :param Text:   A UTF-8 text string containing the clinical content being examined for entities. Each string must contain fewer than 20,000 bytes of characters.<br/>
        :return: ModelVersion:  The version of the model used to analyze the documents. The version number looks like X.X.X. You can use this information to track the model used for a particular batch of documents.<br/>PaginationToken:   If the result of the previous request to <code>DetectEntities</code> was truncated, include the <code>PaginationToken</code> to fetch the next page of entities.<br/>UnmappedAttributes:   Attributes extracted from the input text that we were unable to relate to an entity.<br/>Entities:   The collection of medical entities extracted from the input text and their associated information. For each entity, the response provides the entity text, the entity category, where the entity text begins and ends, and the level of confidence that Amazon Comprehend Medical has in the detection and analysis. Attributes and traits of the entity are also returned.<br/>        """
        pass

    def detect_entities_v2(self, Text: str) -> DetectEntitiesV2Response:
        r"""Inspects the clinical text for a variety of medical entities and returns specific information about them such as entity category, location, and confidence score on that information. Amazon Comprehend Medical only detects medical entities in English language texts. The <code>DetectEntitiesV2</code> operation replaces the <a>DetectEntities</a> operation. This new action uses a different model for determining the entities in your medical text and changes the way that some entities are returned in the output. You should use the <code>DetectEntitiesV2</code> operation in all new applications. The <code>DetectEntitiesV2</code> operation returns the <code>Acuity</code> and <code>Direction</code> entities as attributes instead of types. 

        :param self:
        :param Text:  A UTF-8 string containing the clinical content being examined for entities. Each string must contain fewer than 20,000 bytes of characters.<br/>
        :return: ModelVersion:  The version of the model used to analyze the documents. The version number looks like X.X.X. You can use this information to track the model used for a particular batch of documents.<br/>PaginationToken:  If the result to the <code>DetectEntitiesV2</code> operation was truncated, include the <code>PaginationToken</code> to fetch the next page of entities.<br/>UnmappedAttributes:  Attributes extracted from the input text that couldn't be related to an entity.<br/>Entities:  The collection of medical entities extracted from the input text and their associated information. For each entity, the response provides the entity text, the entity category, where the entity text begins and ends, and the level of confidence in the detection and analysis. Attributes and traits of the entity are also returned.<br/>        """
        pass

    def detect_phi(self, Text: str) -> DetectPHIResponse:
        r""" Inspects the clinical text for protected health information (PHI) entities and returns the entity category, location, and confidence score for each entity. Amazon Comprehend Medical only detects entities in English language texts.

        :param self:
        :param Text:   A UTF-8 text string containing the clinical content being examined for PHI entities. Each string must contain fewer than 20,000 bytes of characters.<br/>
        :return: ModelVersion:  The version of the model used to analyze the documents. The version number looks like X.X.X. You can use this information to track the model used for a particular batch of documents.<br/>PaginationToken:   If the result of the previous request to <code>DetectPHI</code> was truncated, include the <code>PaginationToken</code> to fetch the next page of PHI entities. <br/>Entities:   The collection of PHI entities extracted from the input text and their associated information. For each entity, the response provides the entity text, the entity category, where the entity text begins and ends, and the level of confidence that Amazon Comprehend Medical has in its detection. <br/>        """
        pass

    def infer_icd10_cm(self, Text: str) -> InferICD10CMResponse:
        r"""InferICD10CM detects medical conditions as entities listed in a patient record and links those entities to normalized concept identifiers in the ICD-10-CM knowledge base from the Centers for Disease Control. Amazon Comprehend Medical only detects medical entities in English language texts. 

        :param self:
        :param Text:  The input text used for analysis. The input for InferICD10CM is a string from 1 to 10000 characters.<br/>
        :return: ModelVersion:  The version of the model used to analyze the documents, in the format <i>n</i>.<i>n</i>.<i>n</i> You can use this information to track the model used for a particular batch of documents.<br/>PaginationToken:  If the result of the previous request to <code>InferICD10CM</code> was truncated, include the <code>PaginationToken</code> to fetch the next page of medical condition entities. <br/>Entities:  The medical conditions detected in the text linked to ICD-10-CM concepts. If the action is successful, the service sends back an HTTP 200 response, as well as the entities detected.<br/>        """
        pass

    def infer_rx_norm(self, Text: str) -> InferRxNormResponse:
        r"""InferRxNorm detects medications as entities listed in a patient record and links to the normalized concept identifiers in the RxNorm database from the National Library of Medicine. Amazon Comprehend Medical only detects medical entities in English language texts. 

        :param self:
        :param Text:  The input text used for analysis. The input for InferRxNorm is a string from 1 to 10000 characters.<br/>
        :return: ModelVersion:  The version of the model used to analyze the documents, in the format <i>n</i>.<i>n</i>.<i>n</i> You can use this information to track the model used for a particular batch of documents.<br/>PaginationToken:  If the result of the previous request to <code>InferRxNorm</code> was truncated, include the <code>PaginationToken</code> to fetch the next page of medication entities.<br/>Entities:  The medication entities detected in the text linked to RxNorm concepts. If the action is successful, the service sends back an HTTP 200 response, as well as the entities detected.<br/>        """
        pass

    def list_entities_detection_v2_jobs(self, Filter: ComprehendMedicalAsyncJobFilter=None, NextToken: str=None, MaxResults: int=None) -> ListEntitiesDetectionV2JobsResponse:
        r"""Gets a list of medical entity detection jobs that you have submitted.

        :param self:
        :param MaxResults:  The maximum number of results to return in each page. The default is 100.<br/>NextToken:  Identifies the next page of results to return.<br/>Filter:  Filters the jobs that are returned. You can filter jobs based on their names, status, or the date and time that they were submitted. You can only set one filter at a time.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubmitTimeAfter</i> Filters the list of jobs based on the time that the job was submitted for processing. Returns only jobs submitted after the specified time. Jobs are returned in descending order, newest to oldest.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubmitTimeBefore</i> Filters the list of jobs based on the time that the job was submitted for processing. Returns only jobs submitted before the specified time. Jobs are returned in ascending order, oldest to newest.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobStatus</i> Filters the list of jobs based on job status. Returns only jobs with the specified status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobName</i> Filters on the name of the job.<br/>
        :return: NextToken:  Identifies the next page of results to return.<br/>ComprehendMedicalAsyncJobPropertiesList:  A list containing the properties of each job returned.<br/>        """
        pass

    def list_icd10_cm_inference_jobs(self, Filter: ComprehendMedicalAsyncJobFilter=None, NextToken: str=None, MaxResults: int=None) -> ListICD10CMInferenceJobsResponse:
        r"""Gets a list of InferICD10CM jobs that you have submitted.

        :param self:
        :param MaxResults:  The maximum number of results to return in each page. The default is 100.<br/>NextToken:  Identifies the next page of results to return.<br/>Filter:  Filters the jobs that are returned. You can filter jobs based on their names, status, or the date and time that they were submitted. You can only set one filter at a time.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubmitTimeAfter</i> Filters the list of jobs based on the time that the job was submitted for processing. Returns only jobs submitted after the specified time. Jobs are returned in descending order, newest to oldest.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubmitTimeBefore</i> Filters the list of jobs based on the time that the job was submitted for processing. Returns only jobs submitted before the specified time. Jobs are returned in ascending order, oldest to newest.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobStatus</i> Filters the list of jobs based on job status. Returns only jobs with the specified status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobName</i> Filters on the name of the job.<br/>
        :return: NextToken:  Identifies the next page of results to return.<br/>ComprehendMedicalAsyncJobPropertiesList:  A list containing the properties of each job that is returned.<br/>        """
        pass

    def list_phi_detection_jobs(self, Filter: ComprehendMedicalAsyncJobFilter=None, NextToken: str=None, MaxResults: int=None) -> ListPHIDetectionJobsResponse:
        r"""Gets a list of protected health information (PHI) detection jobs that you have submitted.

        :param self:
        :param MaxResults:  The maximum number of results to return in each page. The default is 100.<br/>NextToken:  Identifies the next page of results to return.<br/>Filter:  Filters the jobs that are returned. You can filter jobs based on their names, status, or the date and time that they were submitted. You can only set one filter at a time.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubmitTimeAfter</i> Filters the list of jobs based on the time that the job was submitted for processing. Returns only jobs submitted after the specified time. Jobs are returned in descending order, newest to oldest.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubmitTimeBefore</i> Filters the list of jobs based on the time that the job was submitted for processing. Returns only jobs submitted before the specified time. Jobs are returned in ascending order, oldest to newest.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobStatus</i> Filters the list of jobs based on job status. Returns only jobs with the specified status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobName</i> Filters on the name of the job.<br/>
        :return: NextToken:  Identifies the next page of results to return.<br/>ComprehendMedicalAsyncJobPropertiesList:  A list containing the properties of each job returned.<br/>        """
        pass

    def list_rx_norm_inference_jobs(self, Filter: ComprehendMedicalAsyncJobFilter=None, NextToken: str=None, MaxResults: int=None) -> ListRxNormInferenceJobsResponse:
        r"""Gets a list of InferRxNorm jobs that you have submitted.

        :param self:
        :param MaxResults:  Identifies the next page of results to return.<br/>NextToken:  Identifies the next page of results to return.<br/>Filter:  Filters the jobs that are returned. You can filter jobs based on their names, status, or the date and time that they were submitted. You can only set one filter at a time.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubmitTimeAfter</i> Filters the list of jobs based on the time that the job was submitted for processing. Returns only jobs submitted after the specified time. Jobs are returned in descending order, newest to oldest.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubmitTimeBefore</i> Filters the list of jobs based on the time that the job was submitted for processing. Returns only jobs submitted before the specified time. Jobs are returned in ascending order, oldest to newest.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobStatus</i> Filters the list of jobs based on job status. Returns only jobs with the specified status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobName</i> Filters on the name of the job.<br/>
        :return: NextToken:  Identifies the next page of results to return.<br/>ComprehendMedicalAsyncJobPropertiesList:  The maximum number of results to return in each page. The default is 100.<br/>        """
        pass

    def start_entities_detection_v2_job(self, LanguageCode: str, DataAccessRoleArn: str, OutputDataConfig: OutputDataConfig, InputDataConfig: InputDataConfig, JobName: str=None, ClientRequestToken: str=None, KMSKey: str=None) -> StartEntitiesDetectionV2JobResponse:
        r"""Starts an asynchronous medical entity detection job for a collection of documents. Use the <code>DescribeEntitiesDetectionV2Job</code> operation to track the status of a job.

        :param self:
        :param LanguageCode:  The language of the input documents. All documents must be in the same language.<br/>KMSKey:  An AWS Key Management Service key to encrypt your output files. If you do not specify a key, the files are written in plain text.<br/>ClientRequestToken:  A unique identifier for the request. If you don't set the client request token, Amazon Comprehend Medical generates one.<br/>JobName:  The identifier of the job.<br/>DataAccessRoleArn:  The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that grants Amazon Comprehend Medical read access to your input data. For more information, see <a href="https://docs.aws.amazon.com/comprehend/latest/dg/access-control-managing-permissions-med.html#auth-role-permissions-med"> Role-Based Permissions Required for Asynchronous Operations</a>.<br/>OutputDataConfig:  Specifies where to send the output files.:<br/>InputDataConfig:  Specifies the format and location of the input data for the job.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Key</i> The path to the input data files in the S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Bucket</i> The URI of the S3 bucket that contains the input data. The bucket must be in the same region as the API endpoint that you are calling. Each file in the document collection must be less than 40 KB. You can store a maximum of 30 GB in the bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Key</i> The path to the output data files in the S3 bucket. Amazon Comprehend Medical creates an output directory using the job ID so that the output from one job does not overwrite the output of another.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Bucket</i> When you use the <code>OutputDataConfig</code> object with asynchronous operations, you specify the Amazon S3 location where you want to write the output data. The URI must be in the same region as the API endpoint that you are calling. The location is used as the prefix for the actual location of the output.<br/>
        :return: JobId:  The identifier generated for the job. To get the status of a job, use this identifier with the <code>DescribeEntitiesDetectionV2Job</code> operation.<br/>        """
        pass

    def start_icd10_cm_inference_job(self, LanguageCode: str, DataAccessRoleArn: str, OutputDataConfig: OutputDataConfig, InputDataConfig: InputDataConfig, JobName: str=None, ClientRequestToken: str=None, KMSKey: str=None) -> StartICD10CMInferenceJobResponse:
        r"""Starts an asynchronous job to detect medical conditions and link them to the ICD-10-CM ontology. Use the <code>DescribeICD10CMInferenceJob</code> operation to track the status of a job.

        :param self:
        :param LanguageCode:  The language of the input documents. All documents must be in the same language.<br/>KMSKey:  An AWS Key Management Service key to encrypt your output files. If you do not specify a key, the files are written in plain text.<br/>ClientRequestToken:  A unique identifier for the request. If you don't set the client request token, Amazon Comprehend Medical generates one.<br/>JobName:  The identifier of the job.<br/>DataAccessRoleArn:  The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that grants Amazon Comprehend Medical read access to your input data. For more information, see <a href="https://docs.aws.amazon.com/comprehend/latest/dg/access-control-managing-permissions-med.html#auth-role-permissions-med"> Role-Based Permissions Required for Asynchronous Operations</a>.<br/>OutputDataConfig:  Specifies where to send the output files.:<br/>InputDataConfig:  Specifies the format and location of the input data for the job.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Key</i> The path to the input data files in the S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Bucket</i> The URI of the S3 bucket that contains the input data. The bucket must be in the same region as the API endpoint that you are calling. Each file in the document collection must be less than 40 KB. You can store a maximum of 30 GB in the bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Key</i> The path to the output data files in the S3 bucket. Amazon Comprehend Medical creates an output directory using the job ID so that the output from one job does not overwrite the output of another.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Bucket</i> When you use the <code>OutputDataConfig</code> object with asynchronous operations, you specify the Amazon S3 location where you want to write the output data. The URI must be in the same region as the API endpoint that you are calling. The location is used as the prefix for the actual location of the output.<br/>
        :return: JobId:  The identifier generated for the job. To get the status of a job, use this identifier with the <code>StartICD10CMInferenceJob</code> operation.<br/>        """
        pass

    def start_phi_detection_job(self, LanguageCode: str, DataAccessRoleArn: str, OutputDataConfig: OutputDataConfig, InputDataConfig: InputDataConfig, JobName: str=None, ClientRequestToken: str=None, KMSKey: str=None) -> StartPHIDetectionJobResponse:
        r"""Starts an asynchronous job to detect protected health information (PHI). Use the <code>DescribePHIDetectionJob</code> operation to track the status of a job.

        :param self:
        :param LanguageCode:  The language of the input documents. All documents must be in the same language.<br/>KMSKey:  An AWS Key Management Service key to encrypt your output files. If you do not specify a key, the files are written in plain text.<br/>ClientRequestToken:  A unique identifier for the request. If you don't set the client request token, Amazon Comprehend Medical generates one.<br/>JobName:  The identifier of the job.<br/>DataAccessRoleArn:  The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that grants Amazon Comprehend Medical read access to your input data. For more information, see <a href="https://docs.aws.amazon.com/comprehend/latest/dg/access-control-managing-permissions-med.html#auth-role-permissions-med"> Role-Based Permissions Required for Asynchronous Operations</a>.<br/>OutputDataConfig:  Specifies where to send the output files.:<br/>InputDataConfig:  Specifies the format and location of the input data for the job.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Key</i> The path to the input data files in the S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Bucket</i> The URI of the S3 bucket that contains the input data. The bucket must be in the same region as the API endpoint that you are calling. Each file in the document collection must be less than 40 KB. You can store a maximum of 30 GB in the bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Key</i> The path to the output data files in the S3 bucket. Amazon Comprehend Medical creates an output directory using the job ID so that the output from one job does not overwrite the output of another.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Bucket</i> When you use the <code>OutputDataConfig</code> object with asynchronous operations, you specify the Amazon S3 location where you want to write the output data. The URI must be in the same region as the API endpoint that you are calling. The location is used as the prefix for the actual location of the output.<br/>
        :return: JobId:  The identifier generated for the job. To get the status of a job, use this identifier with the <code>DescribePHIDetectionJob</code> operation.<br/>        """
        pass

    def start_rx_norm_inference_job(self, LanguageCode: str, DataAccessRoleArn: str, OutputDataConfig: OutputDataConfig, InputDataConfig: InputDataConfig, JobName: str=None, ClientRequestToken: str=None, KMSKey: str=None) -> StartRxNormInferenceJobResponse:
        r"""Starts an asynchronous job to detect medication entities and link them to the RxNorm ontology. Use the <code>DescribeRxNormInferenceJob</code> operation to track the status of a job.

        :param self:
        :param LanguageCode:  The language of the input documents. All documents must be in the same language.<br/>KMSKey:  An AWS Key Management Service key to encrypt your output files. If you do not specify a key, the files are written in plain text.<br/>ClientRequestToken:  A unique identifier for the request. If you don't set the client request token, Amazon Comprehend Medical generates one.<br/>JobName:  The identifier of the job.<br/>DataAccessRoleArn:  The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that grants Amazon Comprehend Medical read access to your input data. For more information, see <a href="https://docs.aws.amazon.com/comprehend/latest/dg/access-control-managing-permissions-med.html#auth-role-permissions-med"> Role-Based Permissions Required for Asynchronous Operations</a>.<br/>OutputDataConfig:  Specifies where to send the output files.:<br/>InputDataConfig:  Specifies the format and location of the input data for the job.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Key</i> The path to the input data files in the S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Bucket</i> The URI of the S3 bucket that contains the input data. The bucket must be in the same region as the API endpoint that you are calling. Each file in the document collection must be less than 40 KB. You can store a maximum of 30 GB in the bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Key</i> The path to the output data files in the S3 bucket. Amazon Comprehend Medical creates an output directory using the job ID so that the output from one job does not overwrite the output of another.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Bucket</i> When you use the <code>OutputDataConfig</code> object with asynchronous operations, you specify the Amazon S3 location where you want to write the output data. The URI must be in the same region as the API endpoint that you are calling. The location is used as the prefix for the actual location of the output.<br/>
        :return: JobId:  The identifier of the job.<br/>        """
        pass

    def stop_entities_detection_v2_job(self, JobId: str) -> StopEntitiesDetectionV2JobResponse:
        r"""Stops a medical entities detection job in progress.

        :param self:
        :param JobId:  The identifier of the medical entities job to stop.<br/>
        :return: JobId:  The identifier of the medical entities detection job that was stopped.<br/>        """
        pass

    def stop_icd10_cm_inference_job(self, JobId: str) -> StopICD10CMInferenceJobResponse:
        r"""Stops an InferICD10CM inference job in progress.

        :param self:
        :param JobId:  The identifier of the job.<br/>
        :return: JobId:  The identifier generated for the job. To get the status of job, use this identifier with the <code>DescribeICD10CMInferenceJob</code> operation.<br/>        """
        pass

    def stop_phi_detection_job(self, JobId: str) -> StopPHIDetectionJobResponse:
        r"""Stops a protected health information (PHI) detection job in progress.

        :param self:
        :param JobId:  The identifier of the PHI detection job to stop.<br/>
        :return: JobId:  The identifier of the PHI detection job that was stopped.<br/>        """
        pass

    def stop_rx_norm_inference_job(self, JobId: str) -> StopRxNormInferenceJobResponse:
        r"""Stops an InferRxNorm inference job in progress.

        :param self:
        :param JobId:  The identifier of the job.<br/>
        :return: JobId:  The identifier generated for the job. To get the status of job, use this identifier with the <code>DescribeRxNormInferenceJob</code> operation.<br/>        """
        pass





class ComputeOptimizer(BaseClient):
    r"""AWS Compute Optimizer is a service that analyzes the configuration and utilization metrics of your AWS compute resources, such as EC2 instances, Auto Scaling groups, AWS Lambda functions, and Amazon EBS volumes. It reports whether your resources are optimal, and generates optimization recommendations to reduce the cost and improve the performance of your workloads. Compute Optimizer also provides recent utilization metric data, as well as projected utilization metric data for the recommendations, which you can use to evaluate which recommendation provides the best price-performance trade-off. The analysis of your usage patterns can help you decide when to move or resize your running resources, and still meet your performance and capacity requirements. For more information about Compute Optimizer, including the required permissions to use the service, see the <a href="https://docs.aws.amazon.com/compute-optimizer/latest/ug/">AWS Compute Optimizer User Guide</a>."""




    class DescribeRecommendationExportJobsRequest(Mapping):
        pass
    
    class DescribeRecommendationExportJobsResponse(Mapping):
        pass
    
    class JobId(object):
        pass
    
    class JobFilter(Mapping):
        pass
    
    class ExportAutoScalingGroupRecommendationsRequest(Mapping):
        pass
    
    class ExportAutoScalingGroupRecommendationsResponse(Mapping):
        pass
    
    class AccountId(object):
        pass
    
    class Filter(Mapping):
        pass
    
    class ExportableAutoScalingGroupField(object):
        pass
    
    class S3DestinationConfig(Mapping):
        pass
    
    class IncludeMemberAccounts(object):
        pass
    
    class ExportEBSVolumeRecommendationsRequest(Mapping):
        pass
    
    class ExportEBSVolumeRecommendationsResponse(Mapping):
        pass
    
    class EBSFilter(Mapping):
        pass
    
    class ExportableVolumeField(object):
        pass
    
    class ExportEC2InstanceRecommendationsRequest(Mapping):
        pass
    
    class ExportEC2InstanceRecommendationsResponse(Mapping):
        pass
    
    class ExportableInstanceField(object):
        pass
    
    class ExportLambdaFunctionRecommendationsRequest(Mapping):
        pass
    
    class ExportLambdaFunctionRecommendationsResponse(Mapping):
        pass
    
    class LambdaFunctionRecommendationFilter(Mapping):
        pass
    
    class ExportableLambdaFunctionField(object):
        pass
    
    class GetAutoScalingGroupRecommendationsRequest(Mapping):
        pass
    
    class GetAutoScalingGroupRecommendationsResponse(Mapping):
        pass
    
    class AutoScalingGroupArn(object):
        pass
    
    class GetEBSVolumeRecommendationsRequest(Mapping):
        pass
    
    class GetEBSVolumeRecommendationsResponse(Mapping):
        pass
    
    class VolumeArn(object):
        pass
    
    class GetEC2InstanceRecommendationsRequest(Mapping):
        pass
    
    class GetEC2InstanceRecommendationsResponse(Mapping):
        pass
    
    class InstanceArn(object):
        pass
    
    class GetEC2RecommendationProjectedMetricsRequest(Mapping):
        pass
    
    class GetEC2RecommendationProjectedMetricsResponse(Mapping):
        pass
    
    class Timestamp(object):
        pass
    
    class GetEnrollmentStatusRequest(Mapping):
        pass
    
    class GetEnrollmentStatusResponse(Mapping):
        pass
    
    class GetLambdaFunctionRecommendationsRequest(Mapping):
        pass
    
    class GetLambdaFunctionRecommendationsResponse(Mapping):
        pass
    
    class FunctionArn(object):
        pass
    
    class GetRecommendationSummariesRequest(Mapping):
        pass
    
    class GetRecommendationSummariesResponse(Mapping):
        pass
    
    class UpdateEnrollmentStatusRequest(Mapping):
        pass
    
    class UpdateEnrollmentStatusResponse(Mapping):
        pass
    
    def describe_recommendation_export_jobs(self, jobIds: List[JobId]=None, filters: List[JobFilter]=None, nextToken: str=None, maxResults: int=None) -> DescribeRecommendationExportJobsResponse:
        r"""Describes recommendation export jobs created in the last seven days. Use the <code>ExportAutoScalingGroupRecommendations</code> or <code>ExportEC2InstanceRecommendations</code> actions to request an export of your recommendations. Then use the <code>DescribeRecommendationExportJobs</code> action to view your export jobs.

        :param self:
        :param maxResults:  The maximum number of export jobs to return with a single request. To retrieve the remaining results, make another request with the returned <code>NextToken</code> value.<br/>nextToken:  The token to advance to the next page of export jobs.<br/>filters:  An array of objects that describe a filter to return a more specific list of export jobs.<br/>jobIds:  The identification numbers of the export jobs to return. An export job ID is returned when you create an export using the <code>ExportAutoScalingGroupRecommendations</code> or <code>ExportEC2InstanceRecommendations</code> actions. All export jobs created in the last seven days are returned if this parameter is omitted.<br/>
        :return: nextToken:  The token to use to advance to the next page of export jobs. This value is null when there are no more pages of export jobs to return.<br/>recommendationExportJobs:  An array of objects that describe recommendation export jobs.<br/>        """
        pass

    def export_auto_scaling_group_recommendations(self, s3DestinationConfig: S3DestinationConfig, accountIds: List[AccountId]=None, filters: List[Filter]=None, fieldsToExport: List[ExportableAutoScalingGroupField]=None, fileFormat: str=None, includeMemberAccounts: IncludeMemberAccounts=None) -> ExportAutoScalingGroupRecommendationsResponse:
        r"""Exports optimization recommendations for Auto Scaling groups. Recommendations are exported in a comma-separated values (.csv) file, and its metadata in a JavaScript Object Notation (.json) file, to an existing Amazon Simple Storage Service (Amazon S3) bucket that you specify. For more information, see <a href="https://docs.aws.amazon.com/compute-optimizer/latest/ug/exporting-recommendations.html">Exporting Recommendations</a> in the <i>Compute Optimizer User Guide</i>. You can have only one Auto Scaling group export job in progress per AWS Region.

        :param self:
        :param includeMemberAccounts:  Indicates whether to include recommendations for resources in all member accounts of the organization if your account is the management account of an organization. The member accounts must also be opted in to Compute Optimizer, and trusted access for Compute Optimizer must be enabled in the organization account. For more information, see <a href="https://docs.aws.amazon.com/compute-optimizer/latest/ug/security-iam.html#trusted-service-access">Compute Optimizer and AWS Organizations trusted access</a> in the <i>AWS Compute Optimizer User Guide</i>. Recommendations for member accounts of the organization are not included in the export file if this parameter is omitted. This parameter cannot be specified together with the account IDs parameter. The parameters are mutually exclusive. Recommendations for member accounts are not included in the export if this parameter, or the account IDs parameter, is omitted.<br/>fileFormat:  The format of the export file. The only export file format currently supported is <code>Csv</code>.<br/>s3DestinationConfig:  An object to specify the destination Amazon Simple Storage Service (Amazon S3) bucket name and key prefix for the export job. You must create the destination Amazon S3 bucket for your recommendations export before you create the export job. Compute Optimizer does not create the S3 bucket for you. After you create the S3 bucket, ensure that it has the required permission policy to allow Compute Optimizer to write the export file to it. If you plan to specify an object prefix when you create the export job, you must include the object prefix in the policy that you add to the S3 bucket. For more information, see <a href="https://docs.aws.amazon.com/compute-optimizer/latest/ug/create-s3-bucket-policy-for-compute-optimizer.html">Amazon S3 Bucket Policy for Compute Optimizer</a> in the <i>Compute Optimizer user guide</i>.:<br/>fieldsToExport:  The recommendations data to include in the export file. For more information about the fields that can be exported, see <a href="https://docs.aws.amazon.com/compute-optimizer/latest/ug/exporting-recommendations.html#exported-files">Exported files</a> in the <i>Compute Optimizer User Guide</i>.<br/>filters:  An array of objects that describe a filter to export a more specific set of Auto Scaling group recommendations.<br/>accountIds:  The IDs of the AWS accounts for which to export Auto Scaling group recommendations. If your account is the management account of an organization, use this parameter to specify the member account for which you want to export recommendations. This parameter cannot be specified together with the include member accounts parameter. The parameters are mutually exclusive. Recommendations for member accounts are not included in the export if this parameter, or the include member accounts parameter, is omitted. You can specify multiple account IDs per request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>keyPrefix</i> The Amazon S3 bucket prefix for an export job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>bucket</i> The name of the Amazon S3 bucket to use as the destination for an export job.<br/>
        :return: s3Destination:  An object that describes the destination Amazon S3 bucket of a recommendations export file.:<br/>jobId:  The identification number of the export job. Use the <code>DescribeRecommendationExportJobs</code> action, and specify the job ID to view the status of an export job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>metadataKey</i> The Amazon S3 bucket key of a metadata file. The key uniquely identifies the object, or metadata file, in the S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>key</i> The Amazon S3 bucket key of an export file. The key uniquely identifies the object, or export file, in the S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>bucket</i> The name of the Amazon S3 bucket used as the destination of an export file.<br/>        """
        pass

    def export_ebs_volume_recommendations(self, s3DestinationConfig: S3DestinationConfig, accountIds: List[AccountId]=None, filters: List[EBSFilter]=None, fieldsToExport: List[ExportableVolumeField]=None, fileFormat: str=None, includeMemberAccounts: IncludeMemberAccounts=None) -> ExportEBSVolumeRecommendationsResponse:
        r"""Exports optimization recommendations for Amazon EBS volumes. Recommendations are exported in a comma-separated values (.csv) file, and its metadata in a JavaScript Object Notation (.json) file, to an existing Amazon Simple Storage Service (Amazon S3) bucket that you specify. For more information, see <a href="https://docs.aws.amazon.com/compute-optimizer/latest/ug/exporting-recommendations.html">Exporting Recommendations</a> in the <i>Compute Optimizer User Guide</i>. You can have only one Amazon EBS volume export job in progress per AWS Region.

        :param self:
        :param includeMemberAccounts:  Indicates whether to include recommendations for resources in all member accounts of the organization if your account is the management account of an organization. The member accounts must also be opted in to Compute Optimizer, and trusted access for Compute Optimizer must be enabled in the organization account. For more information, see <a href="https://docs.aws.amazon.com/compute-optimizer/latest/ug/security-iam.html#trusted-service-access">Compute Optimizer and AWS Organizations trusted access</a> in the <i>AWS Compute Optimizer User Guide</i>. Recommendations for member accounts of the organization are not included in the export file if this parameter is omitted. This parameter cannot be specified together with the account IDs parameter. The parameters are mutually exclusive. Recommendations for member accounts are not included in the export if this parameter, or the account IDs parameter, is omitted.<br/>fileFormat:  The format of the export file. The only export file format currently supported is <code>Csv</code>.<br/>s3DestinationConfig:  Describes the destination Amazon Simple Storage Service (Amazon S3) bucket name and key prefix for a recommendations export job. You must create the destination Amazon S3 bucket for your recommendations export before you create the export job. Compute Optimizer does not create the S3 bucket for you. After you create the S3 bucket, ensure that it has the required permission policy to allow Compute Optimizer to write the export file to it. If you plan to specify an object prefix when you create the export job, you must include the object prefix in the policy that you add to the S3 bucket. For more information, see <a href="https://docs.aws.amazon.com/compute-optimizer/latest/ug/create-s3-bucket-policy-for-compute-optimizer.html">Amazon S3 Bucket Policy for Compute Optimizer</a> in the <i>Compute Optimizer user guide</i>.:<br/>fieldsToExport:  The recommendations data to include in the export file. For more information about the fields that can be exported, see <a href="https://docs.aws.amazon.com/compute-optimizer/latest/ug/exporting-recommendations.html#exported-files">Exported files</a> in the <i>Compute Optimizer User Guide</i>.<br/>filters:  An array of objects that describe a filter to export a more specific set of Amazon EBS volume recommendations.<br/>accountIds:  The IDs of the AWS accounts for which to export Amazon EBS volume recommendations. If your account is the management account of an organization, use this parameter to specify the member account for which you want to export recommendations. This parameter cannot be specified together with the include member accounts parameter. The parameters are mutually exclusive. Recommendations for member accounts are not included in the export if this parameter, or the include member accounts parameter, is omitted. You can specify multiple account IDs per request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>keyPrefix</i> The Amazon S3 bucket prefix for an export job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>bucket</i> The name of the Amazon S3 bucket to use as the destination for an export job.<br/>
        :return: s3Destination:  Describes the destination Amazon Simple Storage Service (Amazon S3) bucket name and object keys of a recommendations export file, and its associated metadata file.:<br/>jobId:  The identification number of the export job. Use the <code>DescribeRecommendationExportJobs</code> action, and specify the job ID to view the status of an export job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>metadataKey</i> The Amazon S3 bucket key of a metadata file. The key uniquely identifies the object, or metadata file, in the S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>key</i> The Amazon S3 bucket key of an export file. The key uniquely identifies the object, or export file, in the S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>bucket</i> The name of the Amazon S3 bucket used as the destination of an export file.<br/>        """
        pass

    def export_ec2_instance_recommendations(self, s3DestinationConfig: S3DestinationConfig, accountIds: List[AccountId]=None, filters: List[Filter]=None, fieldsToExport: List[ExportableInstanceField]=None, fileFormat: str=None, includeMemberAccounts: IncludeMemberAccounts=None) -> ExportEC2InstanceRecommendationsResponse:
        r"""Exports optimization recommendations for Amazon EC2 instances. Recommendations are exported in a comma-separated values (.csv) file, and its metadata in a JavaScript Object Notation (.json) file, to an existing Amazon Simple Storage Service (Amazon S3) bucket that you specify. For more information, see <a href="https://docs.aws.amazon.com/compute-optimizer/latest/ug/exporting-recommendations.html">Exporting Recommendations</a> in the <i>Compute Optimizer User Guide</i>. You can have only one Amazon EC2 instance export job in progress per AWS Region.

        :param self:
        :param includeMemberAccounts:  Indicates whether to include recommendations for resources in all member accounts of the organization if your account is the management account of an organization. The member accounts must also be opted in to Compute Optimizer, and trusted access for Compute Optimizer must be enabled in the organization account. For more information, see <a href="https://docs.aws.amazon.com/compute-optimizer/latest/ug/security-iam.html#trusted-service-access">Compute Optimizer and AWS Organizations trusted access</a> in the <i>AWS Compute Optimizer User Guide</i>. Recommendations for member accounts of the organization are not included in the export file if this parameter is omitted. Recommendations for member accounts are not included in the export if this parameter, or the account IDs parameter, is omitted.<br/>fileFormat:  The format of the export file. The only export file format currently supported is <code>Csv</code>.<br/>s3DestinationConfig:  An object to specify the destination Amazon Simple Storage Service (Amazon S3) bucket name and key prefix for the export job. You must create the destination Amazon S3 bucket for your recommendations export before you create the export job. Compute Optimizer does not create the S3 bucket for you. After you create the S3 bucket, ensure that it has the required permission policy to allow Compute Optimizer to write the export file to it. If you plan to specify an object prefix when you create the export job, you must include the object prefix in the policy that you add to the S3 bucket. For more information, see <a href="https://docs.aws.amazon.com/compute-optimizer/latest/ug/create-s3-bucket-policy-for-compute-optimizer.html">Amazon S3 Bucket Policy for Compute Optimizer</a> in the <i>Compute Optimizer user guide</i>.:<br/>fieldsToExport:  The recommendations data to include in the export file. For more information about the fields that can be exported, see <a href="https://docs.aws.amazon.com/compute-optimizer/latest/ug/exporting-recommendations.html#exported-files">Exported files</a> in the <i>Compute Optimizer User Guide</i>.<br/>filters:  An array of objects that describe a filter to export a more specific set of instance recommendations.<br/>accountIds:  The IDs of the AWS accounts for which to export instance recommendations. If your account is the management account of an organization, use this parameter to specify the member account for which you want to export recommendations. This parameter cannot be specified together with the include member accounts parameter. The parameters are mutually exclusive. Recommendations for member accounts are not included in the export if this parameter, or the include member accounts parameter, is omitted. You can specify multiple account IDs per request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>keyPrefix</i> The Amazon S3 bucket prefix for an export job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>bucket</i> The name of the Amazon S3 bucket to use as the destination for an export job.<br/>
        :return: s3Destination:  An object that describes the destination Amazon S3 bucket of a recommendations export file.:<br/>jobId:  The identification number of the export job. Use the <code>DescribeRecommendationExportJobs</code> action, and specify the job ID to view the status of an export job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>metadataKey</i> The Amazon S3 bucket key of a metadata file. The key uniquely identifies the object, or metadata file, in the S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>key</i> The Amazon S3 bucket key of an export file. The key uniquely identifies the object, or export file, in the S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>bucket</i> The name of the Amazon S3 bucket used as the destination of an export file.<br/>        """
        pass

    def export_lambda_function_recommendations(self, s3DestinationConfig: S3DestinationConfig, accountIds: List[AccountId]=None, filters: List[LambdaFunctionRecommendationFilter]=None, fieldsToExport: List[ExportableLambdaFunctionField]=None, fileFormat: str=None, includeMemberAccounts: IncludeMemberAccounts=None) -> ExportLambdaFunctionRecommendationsResponse:
        r"""Exports optimization recommendations for AWS Lambda functions. Recommendations are exported in a comma-separated values (.csv) file, and its metadata in a JavaScript Object Notation (.json) file, to an existing Amazon Simple Storage Service (Amazon S3) bucket that you specify. For more information, see <a href="https://docs.aws.amazon.com/compute-optimizer/latest/ug/exporting-recommendations.html">Exporting Recommendations</a> in the <i>Compute Optimizer User Guide</i>. You can have only one Lambda function export job in progress per AWS Region.

        :param self:
        :param includeMemberAccounts:  Indicates whether to include recommendations for resources in all member accounts of the organization if your account is the management account of an organization. The member accounts must also be opted in to Compute Optimizer, and trusted access for Compute Optimizer must be enabled in the organization account. For more information, see <a href="https://docs.aws.amazon.com/compute-optimizer/latest/ug/security-iam.html#trusted-service-access">Compute Optimizer and AWS Organizations trusted access</a> in the <i>AWS Compute Optimizer User Guide</i>. Recommendations for member accounts of the organization are not included in the export file if this parameter is omitted. This parameter cannot be specified together with the account IDs parameter. The parameters are mutually exclusive. Recommendations for member accounts are not included in the export if this parameter, or the account IDs parameter, is omitted.<br/>fileFormat:  The format of the export file. The only export file format currently supported is <code>Csv</code>.<br/>s3DestinationConfig:  Describes the destination Amazon Simple Storage Service (Amazon S3) bucket name and key prefix for a recommendations export job. You must create the destination Amazon S3 bucket for your recommendations export before you create the export job. Compute Optimizer does not create the S3 bucket for you. After you create the S3 bucket, ensure that it has the required permission policy to allow Compute Optimizer to write the export file to it. If you plan to specify an object prefix when you create the export job, you must include the object prefix in the policy that you add to the S3 bucket. For more information, see <a href="https://docs.aws.amazon.com/compute-optimizer/latest/ug/create-s3-bucket-policy-for-compute-optimizer.html">Amazon S3 Bucket Policy for Compute Optimizer</a> in the <i>Compute Optimizer user guide</i>.:<br/>fieldsToExport:  The recommendations data to include in the export file. For more information about the fields that can be exported, see <a href="https://docs.aws.amazon.com/compute-optimizer/latest/ug/exporting-recommendations.html#exported-files">Exported files</a> in the <i>Compute Optimizer User Guide</i>.<br/>filters:  An array of objects that describe a filter to export a more specific set of Lambda function recommendations.<br/>accountIds:  The IDs of the AWS accounts for which to export Lambda function recommendations. If your account is the management account of an organization, use this parameter to specify the member account for which you want to export recommendations. This parameter cannot be specified together with the include member accounts parameter. The parameters are mutually exclusive. Recommendations for member accounts are not included in the export if this parameter, or the include member accounts parameter, is omitted. You can specify multiple account IDs per request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>keyPrefix</i> The Amazon S3 bucket prefix for an export job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>bucket</i> The name of the Amazon S3 bucket to use as the destination for an export job.<br/>
        :return: s3Destination:  Describes the destination Amazon Simple Storage Service (Amazon S3) bucket name and object keys of a recommendations export file, and its associated metadata file.:<br/>jobId:  The identification number of the export job. Use the <code>DescribeRecommendationExportJobs</code> action, and specify the job ID to view the status of an export job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>metadataKey</i> The Amazon S3 bucket key of a metadata file. The key uniquely identifies the object, or metadata file, in the S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>key</i> The Amazon S3 bucket key of an export file. The key uniquely identifies the object, or export file, in the S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>bucket</i> The name of the Amazon S3 bucket used as the destination of an export file.<br/>        """
        pass

    def get_auto_scaling_group_recommendations(self, accountIds: List[AccountId]=None, autoScalingGroupArns: List[AutoScalingGroupArn]=None, nextToken: str=None, maxResults: int=None, filters: List[Filter]=None) -> GetAutoScalingGroupRecommendationsResponse:
        r"""Returns Auto Scaling group recommendations. AWS Compute Optimizer generates recommendations for Amazon EC2 Auto Scaling groups that meet a specific set of requirements. For more information, see the <a href="https://docs.aws.amazon.com/compute-optimizer/latest/ug/requirements.html">Supported resources and requirements</a> in the <i>AWS Compute Optimizer User Guide</i>.

        :param self:
        :param filters:  An array of objects that describe a filter that returns a more specific list of Auto Scaling group recommendations.<br/>maxResults:  The maximum number of Auto Scaling group recommendations to return with a single request. To retrieve the remaining results, make another request with the returned <code>NextToken</code> value.<br/>nextToken:  The token to advance to the next page of Auto Scaling group recommendations.<br/>autoScalingGroupArns:  The Amazon Resource Name (ARN) of the Auto Scaling groups for which to return recommendations.<br/>accountIds:  The ID of the AWS account for which to return Auto Scaling group recommendations. If your account is the management account of an organization, use this parameter to specify the member account for which you want to return Auto Scaling group recommendations. Only one account ID can be specified per request.<br/>
        :return: errors:  An array of objects that describe errors of the request. For example, an error is returned if you request recommendations for an unsupported Auto Scaling group.<br/>autoScalingGroupRecommendations:  An array of objects that describe Auto Scaling group recommendations.<br/>nextToken:  The token to use to advance to the next page of Auto Scaling group recommendations. This value is null when there are no more pages of Auto Scaling group recommendations to return.<br/>        """
        pass

    def get_ebs_volume_recommendations(self, volumeArns: List[VolumeArn]=None, nextToken: str=None, maxResults: int=None, filters: List[EBSFilter]=None, accountIds: List[AccountId]=None) -> GetEBSVolumeRecommendationsResponse:
        r"""Returns Amazon Elastic Block Store (Amazon EBS) volume recommendations. AWS Compute Optimizer generates recommendations for Amazon EBS volumes that meet a specific set of requirements. For more information, see the <a href="https://docs.aws.amazon.com/compute-optimizer/latest/ug/requirements.html">Supported resources and requirements</a> in the <i>AWS Compute Optimizer User Guide</i>.

        :param self:
        :param accountIds:  The ID of the AWS account for which to return volume recommendations. If your account is the management account of an organization, use this parameter to specify the member account for which you want to return volume recommendations. Only one account ID can be specified per request.<br/>filters:  An array of objects that describe a filter that returns a more specific list of volume recommendations.<br/>maxResults:  The maximum number of volume recommendations to return with a single request. To retrieve the remaining results, make another request with the returned <code>NextToken</code> value.<br/>nextToken:  The token to advance to the next page of volume recommendations.<br/>volumeArns:  The Amazon Resource Name (ARN) of the volumes for which to return recommendations.<br/>
        :return: errors:  An array of objects that describe errors of the request. For example, an error is returned if you request recommendations for an unsupported volume.<br/>volumeRecommendations:  An array of objects that describe volume recommendations.<br/>nextToken:  The token to use to advance to the next page of volume recommendations. This value is null when there are no more pages of volume recommendations to return.<br/>        """
        pass

    def get_ec2_instance_recommendations(self, instanceArns: List[InstanceArn]=None, nextToken: str=None, maxResults: int=None, filters: List[Filter]=None, accountIds: List[AccountId]=None) -> GetEC2InstanceRecommendationsResponse:
        r"""Returns Amazon EC2 instance recommendations. AWS Compute Optimizer generates recommendations for Amazon Elastic Compute Cloud (Amazon EC2) instances that meet a specific set of requirements. For more information, see the <a href="https://docs.aws.amazon.com/compute-optimizer/latest/ug/requirements.html">Supported resources and requirements</a> in the <i>AWS Compute Optimizer User Guide</i>.

        :param self:
        :param accountIds:  The ID of the AWS account for which to return instance recommendations. If your account is the management account of an organization, use this parameter to specify the member account for which you want to return instance recommendations. Only one account ID can be specified per request.<br/>filters:  An array of objects that describe a filter that returns a more specific list of instance recommendations.<br/>maxResults:  The maximum number of instance recommendations to return with a single request. To retrieve the remaining results, make another request with the returned <code>NextToken</code> value.<br/>nextToken:  The token to advance to the next page of instance recommendations.<br/>instanceArns:  The Amazon Resource Name (ARN) of the instances for which to return recommendations.<br/>
        :return: errors:  An array of objects that describe errors of the request. For example, an error is returned if you request recommendations for an instance of an unsupported instance family.<br/>instanceRecommendations:  An array of objects that describe instance recommendations.<br/>nextToken:  The token to use to advance to the next page of instance recommendations. This value is null when there are no more pages of instance recommendations to return.<br/>        """
        pass

    def get_ec2_recommendation_projected_metrics(self, endTime: Timestamp, startTime: Timestamp, period: int, stat: str, instanceArn: str) -> GetEC2RecommendationProjectedMetricsResponse:
        r"""Returns the projected utilization metrics of Amazon EC2 instance recommendations. <note> The <code>Cpu</code> and <code>Memory</code> metrics are the only projected utilization metrics returned when you run this action. Additionally, the <code>Memory</code> metric is returned only for resources that have the unified CloudWatch agent installed on them. For more information, see <a href="https://docs.aws.amazon.com/compute-optimizer/latest/ug/metrics.html#cw-agent">Enabling Memory Utilization with the CloudWatch Agent</a>. </note>

        :param self:
        :param endTime:  The time stamp of the last projected metrics data point to return.<br/>startTime:  The time stamp of the first projected metrics data point to return.<br/>period:  The granularity, in seconds, of the projected metrics data points.<br/>stat:  The statistic of the projected metrics.<br/>instanceArn:  The Amazon Resource Name (ARN) of the instances for which to return recommendation projected metrics.<br/>
        :return: recommendedOptionProjectedMetrics:  An array of objects that describe a projected metrics.<br/>        """
        pass

    def get_enrollment_status(self) -> GetEnrollmentStatusResponse:
        r"""Returns the enrollment (opt in) status of an account to the AWS Compute Optimizer service. If the account is the management account of an organization, this action also confirms the enrollment status of member accounts within the organization.

        :param self:
        :param 
        :return: memberAccountsEnrolled:  Confirms the enrollment status of member accounts within the organization, if the account is a management account of an organization.<br/>statusReason:  The reason for the enrollment status of the account. For example, an account might show a status of <code>Pending</code> because member accounts of an organization require more time to be enrolled in the service.<br/>status:  The enrollment status of the account.<br/>        """
        pass

    def get_lambda_function_recommendations(self, functionArns: List[FunctionArn]=None, accountIds: List[AccountId]=None, filters: List[LambdaFunctionRecommendationFilter]=None, nextToken: str=None, maxResults: int=None) -> GetLambdaFunctionRecommendationsResponse:
        r"""Returns AWS Lambda function recommendations. AWS Compute Optimizer generates recommendations for functions that meet a specific set of requirements. For more information, see the <a href="https://docs.aws.amazon.com/compute-optimizer/latest/ug/requirements.html">Supported resources and requirements</a> in the <i>AWS Compute Optimizer User Guide</i>.

        :param self:
        :param maxResults:  The maximum number of function recommendations to return with a single request. To retrieve the remaining results, make another request with the returned <code>NextToken</code> value.<br/>nextToken:  The token to advance to the next page of function recommendations.<br/>filters:  An array of objects that describe a filter that returns a more specific list of function recommendations.<br/>accountIds:  The ID of the AWS account for which to return function recommendations. If your account is the management account of an organization, use this parameter to specify the member account for which you want to return function recommendations. Only one account ID can be specified per request.<br/>functionArns:  The Amazon Resource Name (ARN) of the functions for which to return recommendations. You can specify a qualified or unqualified ARN. If you specify an unqualified ARN without a function version suffix, Compute Optimizer will return recommendations for the latest (<code>$LATEST</code>) version of the function. If you specify a qualified ARN with a version suffix, Compute Optimizer will return recommendations for the specified function version. For more information about using function versions, see <a href="https://docs.aws.amazon.com/lambda/latest/dg/configuration-versions.html#versioning-versions-using">Using versions</a> in the <i>AWS Lambda Developer Guide</i>.<br/>
        :return: lambdaFunctionRecommendations:  An array of objects that describe function recommendations.<br/>nextToken:  The token to use to advance to the next page of function recommendations. This value is null when there are no more pages of function recommendations to return.<br/>        """
        pass

    def get_recommendation_summaries(self, accountIds: List[AccountId]=None, nextToken: str=None, maxResults: int=None) -> GetRecommendationSummariesResponse:
        r"""Returns the optimization findings for an account. It returns the number of: <ul> <li> Amazon EC2 instances in an account that are <code>Underprovisioned</code>, <code>Overprovisioned</code>, or <code>Optimized</code>. </li> <li> Auto Scaling groups in an account that are <code>NotOptimized</code>, or <code>Optimized</code>. </li> <li> Amazon EBS volumes in an account that are <code>NotOptimized</code>, or <code>Optimized</code>. </li> <li> Lambda functions in an account that are <code>NotOptimized</code>, or <code>Optimized</code>. </li> </ul>

        :param self:
        :param maxResults:  The maximum number of recommendation summaries to return with a single request. To retrieve the remaining results, make another request with the returned <code>NextToken</code> value.<br/>nextToken:  The token to advance to the next page of recommendation summaries.<br/>accountIds:  The ID of the AWS account for which to return recommendation summaries. If your account is the management account of an organization, use this parameter to specify the member account for which you want to return recommendation summaries. Only one account ID can be specified per request.<br/>
        :return: recommendationSummaries:  An array of objects that summarize a recommendation.<br/>nextToken:  The token to use to advance to the next page of recommendation summaries. This value is null when there are no more pages of recommendation summaries to return.<br/>        """
        pass

    def update_enrollment_status(self, status: str, includeMemberAccounts: IncludeMemberAccounts=None) -> UpdateEnrollmentStatusResponse:
        r"""Updates the enrollment (opt in and opt out) status of an account to the AWS Compute Optimizer service. If the account is a management account of an organization, this action can also be used to enroll member accounts within the organization. You must have the appropriate permissions to opt in to Compute Optimizer, to view its recommendations, and to opt out. For more information, see <a href="https://docs.aws.amazon.com/compute-optimizer/latest/ug/security-iam.html">Controlling access with AWS Identity and Access Management</a> in the <i>AWS Compute Optimizer User Guide</i>. When you opt in, Compute Optimizer automatically creates a Service-Linked Role in your account to access its data. For more information, see <a href="https://docs.aws.amazon.com/compute-optimizer/latest/ug/using-service-linked-roles.html">Using Service-Linked Roles for AWS Compute Optimizer</a> in the <i>AWS Compute Optimizer User Guide</i>.

        :param self:
        :param includeMemberAccounts:  Indicates whether to enroll member accounts of the organization if the account is the management account of an organization.<br/>status:  The new enrollment status of the account. The following status options are available: <ul> <li>  <code>Active</code> - Opts in your account to the Compute Optimizer service. Compute Optimizer begins analyzing the configuration and utilization metrics of your AWS resources after you opt in. For more information, see <a href="https://docs.aws.amazon.com/compute-optimizer/latest/ug/metrics.html">Metrics analyzed by AWS Compute Optimizer</a> in the <i>AWS Compute Optimizer User Guide</i>. </li> <li>  <code>Inactive</code> - Opts out your account from the Compute Optimizer service. Your account's recommendations and related metrics data will be deleted from Compute Optimizer after you opt out. </li> </ul> <note> The <code>Pending</code> and <code>Failed</code> options cannot be used to update the enrollment status of an account. They are returned in the response of a request to update the enrollment status of an account. </note><br/>
        :return: statusReason:  The reason for the enrollment status of the account. For example, an account might show a status of <code>Pending</code> because member accounts of an organization require more time to be enrolled in the service.<br/>status:  The enrollment status of the account.<br/>        """
        pass





class ConfigService(BaseClient):
    r"""<fullname>AWS Config</fullname> AWS Config provides a way to keep track of the configurations of all the AWS resources associated with your AWS account. You can use AWS Config to get the current and historical configurations of each AWS resource and also to get information about the relationship between the resources. An AWS resource can be an Amazon Compute Cloud (Amazon EC2) instance, an Elastic Block Store (EBS) volume, an elastic network Interface (ENI), or a security group. For a complete list of resources currently supported by AWS Config, see <a href="https://docs.aws.amazon.com/config/latest/developerguide/resource-config-reference.html#supported-resources">Supported AWS Resources</a>. You can access and manage AWS Config through the AWS Management Console, the AWS Command Line Interface (AWS CLI), the AWS Config API, or the AWS SDKs for AWS Config. This reference guide contains documentation for the AWS Config API and the AWS CLI commands that you can use to manage AWS Config. The AWS Config API uses the Signature Version 4 protocol for signing requests. For more information about how to sign a request with this protocol, see <a href="https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html">Signature Version 4 Signing Process</a>. For detailed information about AWS Config features and their associated actions or commands, as well as how to work with AWS Management Console, see <a href="https://docs.aws.amazon.com/config/latest/developerguide/WhatIsConfig.html">What Is AWS Config</a> in the <i>AWS Config Developer Guide</i>."""


    class DescribeComplianceByConfigRulePaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_compliance_by_config_rule` for valid parameters"""
            pass
    class DescribeComplianceByResourcePaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_compliance_by_resource` for valid parameters"""
            pass
    class DescribeConfigRulesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_config_rules` for valid parameters"""
            pass
    class GetComplianceDetailsByConfigRulePaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_compliance_details_by_config_rule` for valid parameters"""
            pass
    class GetComplianceDetailsByResourcePaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_compliance_details_by_resource` for valid parameters"""
            pass
    class GetResourceConfigHistoryPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_resource_config_history` for valid parameters"""
            pass
    class ListDiscoveredResourcesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_discovered_resources` for valid parameters"""
            pass
    class DescribeAggregateComplianceByConfigRulesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_aggregate_compliance_by_config_rules` for valid parameters"""
            pass
    class DescribeAggregationAuthorizationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_aggregation_authorizations` for valid parameters"""
            pass
    class DescribeConfigRuleEvaluationStatusPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_config_rule_evaluation_status` for valid parameters"""
            pass
    class DescribeConfigurationAggregatorSourcesStatusPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_configuration_aggregator_sources_status` for valid parameters"""
            pass
    class DescribeConfigurationAggregatorsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_configuration_aggregators` for valid parameters"""
            pass
    class DescribePendingAggregationRequestsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_pending_aggregation_requests` for valid parameters"""
            pass
    class DescribeRetentionConfigurationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_retention_configurations` for valid parameters"""
            pass
    class GetAggregateComplianceDetailsByConfigRulePaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_aggregate_compliance_details_by_config_rule` for valid parameters"""
            pass
    class ListAggregateDiscoveredResourcesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_aggregate_discovered_resources` for valid parameters"""
            pass
    class DescribeRemediationExecutionStatusPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_remediation_execution_status` for valid parameters"""
            pass
    class DescribeAggregateComplianceByConformancePacksPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_aggregate_compliance_by_conformance_packs` for valid parameters"""
            pass
    class DescribeConformancePackStatusPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_conformance_pack_status` for valid parameters"""
            pass
    class DescribeConformancePacksPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_conformance_packs` for valid parameters"""
            pass
    class DescribeOrganizationConfigRuleStatusesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_organization_config_rule_statuses` for valid parameters"""
            pass
    class DescribeOrganizationConfigRulesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_organization_config_rules` for valid parameters"""
            pass
    class DescribeOrganizationConformancePackStatusesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_organization_conformance_pack_statuses` for valid parameters"""
            pass
    class DescribeOrganizationConformancePacksPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_organization_conformance_packs` for valid parameters"""
            pass
    class GetConformancePackComplianceSummaryPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_conformance_pack_compliance_summary` for valid parameters"""
            pass
    class GetOrganizationConfigRuleDetailedStatusPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_organization_config_rule_detailed_status` for valid parameters"""
            pass
    class GetOrganizationConformancePackDetailedStatusPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_organization_conformance_pack_detailed_status` for valid parameters"""
            pass
    class ListTagsForResourcePaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_tags_for_resource` for valid parameters"""
            pass
    class SelectAggregateResourceConfigPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `select_aggregate_resource_config` for valid parameters"""
            pass
    class SelectResourceConfigPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `select_resource_config` for valid parameters"""
            pass


    class BatchGetAggregateResourceConfigRequest(Mapping):
        pass
    
    class BatchGetAggregateResourceConfigResponse(Mapping):
        pass
    
    class AggregateResourceIdentifier(Mapping):
        pass
    
    class BatchGetResourceConfigRequest(Mapping):
        pass
    
    class BatchGetResourceConfigResponse(Mapping):
        pass
    
    class ResourceKey(Mapping):
        pass
    
    class DeleteAggregationAuthorizationRequest(Mapping):
        pass
    
    class DeleteConfigRuleRequest(Mapping):
        pass
    
    class DeleteConfigurationAggregatorRequest(Mapping):
        pass
    
    class DeleteConfigurationRecorderRequest(Mapping):
        pass
    
    class DeleteConformancePackRequest(Mapping):
        pass
    
    class DeleteDeliveryChannelRequest(Mapping):
        pass
    
    class DeleteEvaluationResultsRequest(Mapping):
        pass
    
    class DeleteEvaluationResultsResponse(Mapping):
        pass
    
    class DeleteOrganizationConfigRuleRequest(Mapping):
        pass
    
    class DeleteOrganizationConformancePackRequest(Mapping):
        pass
    
    class DeletePendingAggregationRequestRequest(Mapping):
        pass
    
    class DeleteRemediationConfigurationRequest(Mapping):
        pass
    
    class DeleteRemediationConfigurationResponse(Mapping):
        pass
    
    class DeleteRemediationExceptionsRequest(Mapping):
        pass
    
    class DeleteRemediationExceptionsResponse(Mapping):
        pass
    
    class RemediationExceptionResourceKey(Mapping):
        pass
    
    class DeleteResourceConfigRequest(Mapping):
        pass
    
    class DeleteRetentionConfigurationRequest(Mapping):
        pass
    
    class DeleteStoredQueryRequest(Mapping):
        pass
    
    class DeleteStoredQueryResponse(Mapping):
        pass
    
    class DeliverConfigSnapshotRequest(Mapping):
        pass
    
    class DeliverConfigSnapshotResponse(Mapping):
        pass
    
    class DescribeAggregateComplianceByConfigRulesRequest(Mapping):
        pass
    
    class DescribeAggregateComplianceByConfigRulesResponse(Mapping):
        pass
    
    class ConfigRuleComplianceFilters(Mapping):
        pass
    
    class DescribeAggregateComplianceByConformancePacksRequest(Mapping):
        pass
    
    class DescribeAggregateComplianceByConformancePacksResponse(Mapping):
        pass
    
    class AggregateConformancePackComplianceFilters(Mapping):
        pass
    
    class DescribeAggregationAuthorizationsRequest(Mapping):
        pass
    
    class DescribeAggregationAuthorizationsResponse(Mapping):
        pass
    
    class DescribeComplianceByConfigRuleRequest(Mapping):
        pass
    
    class DescribeComplianceByConfigRuleResponse(Mapping):
        pass
    
    class ConfigRuleName(object):
        pass
    
    class ComplianceType(object):
        pass
    
    class DescribeComplianceByResourceRequest(Mapping):
        pass
    
    class DescribeComplianceByResourceResponse(Mapping):
        pass
    
    class DescribeConfigRuleEvaluationStatusRequest(Mapping):
        pass
    
    class DescribeConfigRuleEvaluationStatusResponse(Mapping):
        pass
    
    class DescribeConfigRulesRequest(Mapping):
        pass
    
    class DescribeConfigRulesResponse(Mapping):
        pass
    
    class DescribeConfigurationAggregatorSourcesStatusRequest(Mapping):
        pass
    
    class DescribeConfigurationAggregatorSourcesStatusResponse(Mapping):
        pass
    
    class AggregatedSourceStatusType(object):
        pass
    
    class DescribeConfigurationAggregatorsRequest(Mapping):
        pass
    
    class DescribeConfigurationAggregatorsResponse(Mapping):
        pass
    
    class ConfigurationAggregatorName(object):
        pass
    
    class DescribeConfigurationRecorderStatusRequest(Mapping):
        pass
    
    class DescribeConfigurationRecorderStatusResponse(Mapping):
        pass
    
    class RecorderName(object):
        pass
    
    class DescribeConfigurationRecordersRequest(Mapping):
        pass
    
    class DescribeConfigurationRecordersResponse(Mapping):
        pass
    
    class DescribeConformancePackComplianceRequest(Mapping):
        pass
    
    class DescribeConformancePackComplianceResponse(Mapping):
        pass
    
    class ConformancePackComplianceFilters(Mapping):
        pass
    
    class DescribeConformancePackStatusRequest(Mapping):
        pass
    
    class DescribeConformancePackStatusResponse(Mapping):
        pass
    
    class ConformancePackName(object):
        pass
    
    class DescribeConformancePacksRequest(Mapping):
        pass
    
    class DescribeConformancePacksResponse(Mapping):
        pass
    
    class DescribeDeliveryChannelStatusRequest(Mapping):
        pass
    
    class DescribeDeliveryChannelStatusResponse(Mapping):
        pass
    
    class ChannelName(object):
        pass
    
    class DescribeDeliveryChannelsRequest(Mapping):
        pass
    
    class DescribeDeliveryChannelsResponse(Mapping):
        pass
    
    class DescribeOrganizationConfigRuleStatusesRequest(Mapping):
        pass
    
    class DescribeOrganizationConfigRuleStatusesResponse(Mapping):
        pass
    
    class StringWithCharLimit64(object):
        pass
    
    class DescribeOrganizationConfigRulesRequest(Mapping):
        pass
    
    class DescribeOrganizationConfigRulesResponse(Mapping):
        pass
    
    class DescribeOrganizationConformancePackStatusesRequest(Mapping):
        pass
    
    class DescribeOrganizationConformancePackStatusesResponse(Mapping):
        pass
    
    class OrganizationConformancePackName(object):
        pass
    
    class DescribeOrganizationConformancePacksRequest(Mapping):
        pass
    
    class DescribeOrganizationConformancePacksResponse(Mapping):
        pass
    
    class DescribePendingAggregationRequestsRequest(Mapping):
        pass
    
    class DescribePendingAggregationRequestsResponse(Mapping):
        pass
    
    class DescribeRemediationConfigurationsRequest(Mapping):
        pass
    
    class DescribeRemediationConfigurationsResponse(Mapping):
        pass
    
    class DescribeRemediationExceptionsRequest(Mapping):
        pass
    
    class DescribeRemediationExceptionsResponse(Mapping):
        pass
    
    class DescribeRemediationExecutionStatusRequest(Mapping):
        pass
    
    class DescribeRemediationExecutionStatusResponse(Mapping):
        pass
    
    class DescribeRetentionConfigurationsRequest(Mapping):
        pass
    
    class DescribeRetentionConfigurationsResponse(Mapping):
        pass
    
    class RetentionConfigurationName(object):
        pass
    
    class GetAggregateComplianceDetailsByConfigRuleRequest(Mapping):
        pass
    
    class GetAggregateComplianceDetailsByConfigRuleResponse(Mapping):
        pass
    
    class GetAggregateConfigRuleComplianceSummaryRequest(Mapping):
        pass
    
    class GetAggregateConfigRuleComplianceSummaryResponse(Mapping):
        pass
    
    class ConfigRuleComplianceSummaryFilters(Mapping):
        pass
    
    class GetAggregateConformancePackComplianceSummaryRequest(Mapping):
        pass
    
    class GetAggregateConformancePackComplianceSummaryResponse(Mapping):
        pass
    
    class AggregateConformancePackComplianceSummaryFilters(Mapping):
        pass
    
    class GetAggregateDiscoveredResourceCountsRequest(Mapping):
        pass
    
    class GetAggregateDiscoveredResourceCountsResponse(Mapping):
        pass
    
    class ResourceCountFilters(Mapping):
        pass
    
    class GetAggregateResourceConfigRequest(Mapping):
        pass
    
    class GetAggregateResourceConfigResponse(Mapping):
        pass
    
    class GetComplianceDetailsByConfigRuleRequest(Mapping):
        pass
    
    class GetComplianceDetailsByConfigRuleResponse(Mapping):
        pass
    
    class GetComplianceDetailsByResourceRequest(Mapping):
        pass
    
    class GetComplianceDetailsByResourceResponse(Mapping):
        pass
    
    class GetComplianceSummaryByConfigRuleResponse(Mapping):
        pass
    
    class GetComplianceSummaryByResourceTypeRequest(Mapping):
        pass
    
    class GetComplianceSummaryByResourceTypeResponse(Mapping):
        pass
    
    class StringWithCharLimit256(object):
        pass
    
    class GetConformancePackComplianceDetailsRequest(Mapping):
        pass
    
    class GetConformancePackComplianceDetailsResponse(Mapping):
        pass
    
    class ConformancePackEvaluationFilters(Mapping):
        pass
    
    class GetConformancePackComplianceSummaryRequest(Mapping):
        pass
    
    class GetConformancePackComplianceSummaryResponse(Mapping):
        pass
    
    class GetDiscoveredResourceCountsRequest(Mapping):
        pass
    
    class GetDiscoveredResourceCountsResponse(Mapping):
        pass
    
    class GetOrganizationConfigRuleDetailedStatusRequest(Mapping):
        pass
    
    class GetOrganizationConfigRuleDetailedStatusResponse(Mapping):
        pass
    
    class StatusDetailFilters(Mapping):
        pass
    
    class GetOrganizationConformancePackDetailedStatusRequest(Mapping):
        pass
    
    class GetOrganizationConformancePackDetailedStatusResponse(Mapping):
        pass
    
    class OrganizationResourceDetailedStatusFilters(Mapping):
        pass
    
    class GetResourceConfigHistoryRequest(Mapping):
        pass
    
    class GetResourceConfigHistoryResponse(Mapping):
        pass
    
    class LaterTime(object):
        pass
    
    class EarlierTime(object):
        pass
    
    class GetStoredQueryRequest(Mapping):
        pass
    
    class GetStoredQueryResponse(Mapping):
        pass
    
    class ListAggregateDiscoveredResourcesRequest(Mapping):
        pass
    
    class ListAggregateDiscoveredResourcesResponse(Mapping):
        pass
    
    class ResourceFilters(Mapping):
        pass
    
    class ListDiscoveredResourcesRequest(Mapping):
        pass
    
    class ListDiscoveredResourcesResponse(Mapping):
        pass
    
    class ResourceId(object):
        pass
    
    class Boolean(object):
        pass
    
    class ListStoredQueriesRequest(Mapping):
        pass
    
    class ListStoredQueriesResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class PutAggregationAuthorizationRequest(Mapping):
        pass
    
    class PutAggregationAuthorizationResponse(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class PutConfigRuleRequest(Mapping):
        pass
    
    class ConfigRule(Mapping):
        pass
    
    class PutConfigurationAggregatorRequest(Mapping):
        pass
    
    class PutConfigurationAggregatorResponse(Mapping):
        pass
    
    class AccountAggregationSource(Mapping):
        pass
    
    class OrganizationAggregationSource(Mapping):
        pass
    
    class PutConfigurationRecorderRequest(Mapping):
        pass
    
    class ConfigurationRecorder(Mapping):
        pass
    
    class PutConformancePackRequest(Mapping):
        pass
    
    class PutConformancePackResponse(Mapping):
        pass
    
    class ConformancePackInputParameter(Mapping):
        pass
    
    class PutDeliveryChannelRequest(Mapping):
        pass
    
    class DeliveryChannel(Mapping):
        pass
    
    class PutEvaluationsRequest(Mapping):
        pass
    
    class PutEvaluationsResponse(Mapping):
        pass
    
    class Evaluation(Mapping):
        pass
    
    class PutExternalEvaluationRequest(Mapping):
        pass
    
    class PutExternalEvaluationResponse(Mapping):
        pass
    
    class ExternalEvaluation(Mapping):
        pass
    
    class PutOrganizationConfigRuleRequest(Mapping):
        pass
    
    class PutOrganizationConfigRuleResponse(Mapping):
        pass
    
    class OrganizationManagedRuleMetadata(Mapping):
        pass
    
    class OrganizationCustomRuleMetadata(Mapping):
        pass
    
    class AccountId(object):
        pass
    
    class PutOrganizationConformancePackRequest(Mapping):
        pass
    
    class PutOrganizationConformancePackResponse(Mapping):
        pass
    
    class PutRemediationConfigurationsRequest(Mapping):
        pass
    
    class PutRemediationConfigurationsResponse(Mapping):
        pass
    
    class RemediationConfiguration(Mapping):
        pass
    
    class PutRemediationExceptionsRequest(Mapping):
        pass
    
    class PutRemediationExceptionsResponse(Mapping):
        pass
    
    class Date(object):
        pass
    
    class PutResourceConfigRequest(Mapping):
        pass
    
    class Tags(object):
        pass
    
    class PutRetentionConfigurationRequest(Mapping):
        pass
    
    class PutRetentionConfigurationResponse(Mapping):
        pass
    
    class PutStoredQueryRequest(Mapping):
        pass
    
    class PutStoredQueryResponse(Mapping):
        pass
    
    class StoredQuery(Mapping):
        pass
    
    class SelectAggregateResourceConfigRequest(Mapping):
        pass
    
    class SelectAggregateResourceConfigResponse(Mapping):
        pass
    
    class SelectResourceConfigRequest(Mapping):
        pass
    
    class SelectResourceConfigResponse(Mapping):
        pass
    
    class StartConfigRulesEvaluationRequest(Mapping):
        pass
    
    class StartConfigRulesEvaluationResponse(Mapping):
        pass
    
    class StartConfigurationRecorderRequest(Mapping):
        pass
    
    class StartRemediationExecutionRequest(Mapping):
        pass
    
    class StartRemediationExecutionResponse(Mapping):
        pass
    
    class StopConfigurationRecorderRequest(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    def batch_get_aggregate_resource_config(self, ResourceIdentifiers: List[AggregateResourceIdentifier], ConfigurationAggregatorName: str) -> BatchGetAggregateResourceConfigResponse:
        r"""Returns the current configuration items for resources that are present in your AWS Config aggregator. The operation also returns a list of resources that are not processed in the current request. If there are no unprocessed resources, the operation returns an empty <code>unprocessedResourceIdentifiers</code> list.  <note> <ul> <li> The API does not return results for deleted resources. </li> <li>  The API does not return tags and relationships. </li> </ul> </note>

        :param self:
        :param ResourceIdentifiers:  A list of aggregate ResourceIdentifiers objects. <br/>ConfigurationAggregatorName:  The name of the configuration aggregator.<br/>
        :return: UnprocessedResourceIdentifiers:  A list of resource identifiers that were not processed with current scope. The list is empty if all the resources are processed.<br/>BaseConfigurationItems:  A list that contains the current configuration of one or more resources.<br/>        """
        pass

    def batch_get_resource_config(self, resourceKeys: List[ResourceKey]) -> BatchGetResourceConfigResponse:
        r"""Returns the current configuration for one or more requested resources. The operation also returns a list of resources that are not processed in the current request. If there are no unprocessed resources, the operation returns an empty unprocessedResourceKeys list.  <note> <ul> <li> The API does not return results for deleted resources. </li> <li>  The API does not return any tags for the requested resources. This information is filtered out of the supplementaryConfiguration section of the API response. </li> </ul> </note>

        :param self:
        :param resourceKeys:  A list of resource keys to be processed with the current request. Each element in the list consists of the resource type and resource ID.<br/>
        :return: unprocessedResourceKeys:  A list of resource keys that were not processed with the current response. The unprocessesResourceKeys value is in the same form as ResourceKeys, so the value can be directly provided to a subsequent BatchGetResourceConfig operation. If there are no unprocessed resource keys, the response contains an empty unprocessedResourceKeys list. <br/>baseConfigurationItems:  A list that contains the current configuration of one or more resources.<br/>        """
        pass

    def delete_aggregation_authorization(self, AuthorizedAwsRegion: str, AuthorizedAccountId: str):
        r"""Deletes the authorization granted to the specified configuration aggregator account in a specified region.

        :param self:
        :param AuthorizedAwsRegion:  The region authorized to collect aggregated data.<br/>AuthorizedAccountId:  The 12-digit account ID of the account authorized to aggregate data.<br/>
        :return:         """
        pass

    def delete_config_rule(self, ConfigRuleName: str):
        r"""Deletes the specified AWS Config rule and all of its evaluation results. AWS Config sets the state of a rule to <code>DELETING</code> until the deletion is complete. You cannot update a rule while it is in this state. If you make a <code>PutConfigRule</code> or <code>DeleteConfigRule</code> request for the rule, you will receive a <code>ResourceInUseException</code>. You can check the state of a rule by using the <code>DescribeConfigRules</code> request.

        :param self:
        :param ConfigRuleName:  The name of the AWS Config rule that you want to delete.<br/>
        :return:         """
        pass

    def delete_configuration_aggregator(self, ConfigurationAggregatorName: str):
        r"""Deletes the specified configuration aggregator and the aggregated data associated with the aggregator.

        :param self:
        :param ConfigurationAggregatorName:  The name of the configuration aggregator.<br/>
        :return:         """
        pass

    def delete_configuration_recorder(self, ConfigurationRecorderName: str):
        r"""Deletes the configuration recorder. After the configuration recorder is deleted, AWS Config will not record resource configuration changes until you create a new configuration recorder. This action does not delete the configuration information that was previously recorded. You will be able to access the previously recorded information by using the <code>GetResourceConfigHistory</code> action, but you will not be able to access this information in the AWS Config console until you create a new configuration recorder.

        :param self:
        :param ConfigurationRecorderName:  The name of the configuration recorder to be deleted. You can retrieve the name of your configuration recorder by using the <code>DescribeConfigurationRecorders</code> action.<br/>
        :return:         """
        pass

    def delete_conformance_pack(self, ConformancePackName: str):
        r"""Deletes the specified conformance pack and all the AWS Config rules, remediation actions, and all evaluation results within that conformance pack. AWS Config sets the conformance pack to <code>DELETE_IN_PROGRESS</code> until the deletion is complete. You cannot update a conformance pack while it is in this state.

        :param self:
        :param ConformancePackName:  Name of the conformance pack you want to delete.<br/>
        :return:         """
        pass

    def delete_delivery_channel(self, DeliveryChannelName: str):
        r"""Deletes the delivery channel. Before you can delete the delivery channel, you must stop the configuration recorder by using the <a>StopConfigurationRecorder</a> action.

        :param self:
        :param DeliveryChannelName:  The name of the delivery channel to delete.<br/>
        :return:         """
        pass

    def delete_evaluation_results(self, ConfigRuleName: str) -> DeleteEvaluationResultsResponse:
        r"""Deletes the evaluation results for the specified AWS Config rule. You can specify one AWS Config rule per request. After you delete the evaluation results, you can call the <a>StartConfigRulesEvaluation</a> API to start evaluating your AWS resources against the rule.

        :param self:
        :param ConfigRuleName:  The name of the AWS Config rule for which you want to delete the evaluation results.<br/>
        :return:         """
        pass

    def delete_organization_config_rule(self, OrganizationConfigRuleName: str):
        r"""Deletes the specified organization config rule and all of its evaluation results from all member accounts in that organization.  Only a master account and a delegated administrator account can delete an organization config rule. When calling this API with a delegated administrator, you must ensure AWS Organizations <code>ListDelegatedAdministrator</code> permissions are added. AWS Config sets the state of a rule to DELETE_IN_PROGRESS until the deletion is complete. You cannot update a rule while it is in this state.

        :param self:
        :param OrganizationConfigRuleName:  The name of organization config rule that you want to delete.<br/>
        :return:         """
        pass

    def delete_organization_conformance_pack(self, OrganizationConformancePackName: str):
        r"""Deletes the specified organization conformance pack and all of the config rules and remediation actions from all member accounts in that organization.   Only a master account or a delegated administrator account can delete an organization conformance pack. When calling this API with a delegated administrator, you must ensure AWS Organizations <code>ListDelegatedAdministrator</code> permissions are added. AWS Config sets the state of a conformance pack to DELETE_IN_PROGRESS until the deletion is complete. You cannot update a conformance pack while it is in this state. 

        :param self:
        :param OrganizationConformancePackName:  The name of organization conformance pack that you want to delete.<br/>
        :return:         """
        pass

    def delete_pending_aggregation_request(self, RequesterAwsRegion: str, RequesterAccountId: str):
        r"""Deletes pending authorization requests for a specified aggregator account in a specified region.

        :param self:
        :param RequesterAwsRegion:  The region requesting to aggregate data.<br/>RequesterAccountId:  The 12-digit account ID of the account requesting to aggregate data.<br/>
        :return:         """
        pass

    def delete_remediation_configuration(self, ConfigRuleName: str, ResourceType: str=None) -> DeleteRemediationConfigurationResponse:
        r"""Deletes the remediation configuration.

        :param self:
        :param ResourceType:  The type of a resource.<br/>ConfigRuleName:  The name of the AWS Config rule for which you want to delete remediation configuration.<br/>
        :return:         """
        pass

    def delete_remediation_exceptions(self, ResourceKeys: List[RemediationExceptionResourceKey], ConfigRuleName: str) -> DeleteRemediationExceptionsResponse:
        r"""Deletes one or more remediation exceptions mentioned in the resource keys. <note> AWS Config generates a remediation exception when a problem occurs executing a remediation action to a specific resource. Remediation exceptions blocks auto-remediation until the exception is cleared. </note>

        :param self:
        :param ResourceKeys:  An exception list of resource exception keys to be processed with the current request. AWS Config adds exception for each resource key. For example, AWS Config adds 3 exceptions for 3 resource keys. <br/>ConfigRuleName:  The name of the AWS Config rule for which you want to delete remediation exception configuration.<br/>
        :return: FailedBatches:  Returns a list of failed delete remediation exceptions batch objects. Each object in the batch consists of a list of failed items and failure messages.<br/>        """
        pass

    def delete_resource_config(self, ResourceId: str, ResourceType: str):
        r"""Records the configuration state for a custom resource that has been deleted. This API records a new ConfigurationItem with a ResourceDeleted status. You can retrieve the ConfigurationItems recorded for this resource in your AWS Config History. 

        :param self:
        :param ResourceId:  Unique identifier of the resource.<br/>ResourceType:  The type of the resource.<br/>
        :return:         """
        pass

    def delete_retention_configuration(self, RetentionConfigurationName: str):
        r"""Deletes the retention configuration.

        :param self:
        :param RetentionConfigurationName:  The name of the retention configuration to delete.<br/>
        :return:         """
        pass

    def delete_stored_query(self, QueryName: str) -> DeleteStoredQueryResponse:
        r"""Deletes the stored query for a single AWS account and a single AWS Region.

        :param self:
        :param QueryName:  The name of the query that you want to delete.<br/>
        :return:         """
        pass

    def deliver_config_snapshot(self, deliveryChannelName: str) -> DeliverConfigSnapshotResponse:
        r"""Schedules delivery of a configuration snapshot to the Amazon S3 bucket in the specified delivery channel. After the delivery has started, AWS Config sends the following notifications using an Amazon SNS topic that you have specified. <ul> <li> Notification of the start of the delivery. </li> <li> Notification of the completion of the delivery, if the delivery was successfully completed. </li> <li> Notification of delivery failure, if the delivery failed. </li> </ul>

        :param self:
        :param deliveryChannelName:  The name of the delivery channel through which the snapshot is delivered.<br/>
        :return: configSnapshotId:  The ID of the snapshot that is being created.<br/>        """
        pass

    def describe_aggregate_compliance_by_config_rules(self, ConfigurationAggregatorName: str, Filters: ConfigRuleComplianceFilters=None, Limit: int=None, NextToken: str=None) -> DescribeAggregateComplianceByConfigRulesResponse:
        r"""Returns a list of compliant and noncompliant rules with the number of resources for compliant and noncompliant rules.  <note> The results can return an empty result page, but if you have a <code>nextToken</code>, the results are displayed on the next page. </note>

        :param self:
        :param NextToken:  The <code>nextToken</code> string returned on a previous page that you use to get the next page of results in a paginated response.<br/>Limit:  The maximum number of evaluation results returned on each page. The default is maximum. If you specify 0, AWS Config uses the default.<br/>Filters:  Filters the results by ConfigRuleComplianceFilters object. :<br/>ConfigurationAggregatorName:  The name of the configuration aggregator.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AwsRegion</i> The source region where the data is aggregated. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccountId</i> The 12-digit account ID of the source account. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ComplianceType</i> The rule compliance status. For the <code>ConfigRuleComplianceFilters</code> data type, AWS Config supports only <code>COMPLIANT</code> and <code>NON_COMPLIANT</code>. AWS Config does not support the <code>NOT_APPLICABLE</code> and the <code>INSUFFICIENT_DATA</code> values.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConfigRuleName</i> The name of the AWS Config rule.<br/>
        :return: NextToken:  The <code>nextToken</code> string returned on a previous page that you use to get the next page of results in a paginated response.<br/>AggregateComplianceByConfigRules:  Returns a list of AggregateComplianceByConfigRule object.<br/>        """
        pass

    def describe_aggregate_compliance_by_conformance_packs(self, ConfigurationAggregatorName: str, Filters: AggregateConformancePackComplianceFilters=None, Limit: int=None, NextToken: str=None) -> DescribeAggregateComplianceByConformancePacksResponse:
        r"""Returns a list of the conformance packs and their associated compliance status with the count of compliant and noncompliant AWS Config rules within each conformance pack. Also returns the total rule count which includes compliant rules, noncompliant rules, and rules that cannot be evaluated due to insufficient data. <note> The results can return an empty result page, but if you have a <code>nextToken</code>, the results are displayed on the next page. </note>

        :param self:
        :param NextToken:  The <code>nextToken</code> string returned on a previous page that you use to get the next page of results in a paginated response.<br/>Limit:  The maximum number of conformance packs compliance details returned on each page. The default is maximum. If you specify 0, AWS Config uses the default. <br/>Filters:  Filters the result by <code>AggregateConformancePackComplianceFilters</code> object.:<br/>ConfigurationAggregatorName:  The name of the configuration aggregator.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AwsRegion</i> The source AWS Region from where the data is aggregated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccountId</i> The 12-digit AWS account ID of the source account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ComplianceType</i> The compliance status of the conformance pack.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConformancePackName</i> The name of the conformance pack.<br/>
        :return: NextToken:  The <code>nextToken</code> string returned on a previous page that you use to get the next page of results in a paginated response.<br/>AggregateComplianceByConformancePacks:  Returns the <code>AggregateComplianceByConformancePack</code> object.<br/>        """
        pass

    def describe_aggregation_authorizations(self, Limit: int=None, NextToken: str=None) -> DescribeAggregationAuthorizationsResponse:
        r"""Returns a list of authorizations granted to various aggregator accounts and regions.

        :param self:
        :param NextToken:  The <code>nextToken</code> string returned on a previous page that you use to get the next page of results in a paginated response.<br/>Limit:  The maximum number of AggregationAuthorizations returned on each page. The default is maximum. If you specify 0, AWS Config uses the default.<br/>
        :return: NextToken:  The <code>nextToken</code> string returned on a previous page that you use to get the next page of results in a paginated response.<br/>AggregationAuthorizations:  Returns a list of authorizations granted to various aggregator accounts and regions.<br/>        """
        pass

    def describe_compliance_by_config_rule(self, ConfigRuleNames: List[ConfigRuleName]=None, ComplianceTypes: List[ComplianceType]=None, NextToken: str=None) -> DescribeComplianceByConfigRuleResponse:
        r"""Indicates whether the specified AWS Config rules are compliant. If a rule is noncompliant, this action returns the number of AWS resources that do not comply with the rule. A rule is compliant if all of the evaluated resources comply with it. It is noncompliant if any of these resources do not comply. If AWS Config has no current evaluation results for the rule, it returns <code>INSUFFICIENT_DATA</code>. This result might indicate one of the following conditions: <ul> <li> AWS Config has never invoked an evaluation for the rule. To check whether it has, use the <code>DescribeConfigRuleEvaluationStatus</code> action to get the <code>LastSuccessfulInvocationTime</code> and <code>LastFailedInvocationTime</code>. </li> <li> The rule's AWS Lambda function is failing to send evaluation results to AWS Config. Verify that the role you assigned to your configuration recorder includes the <code>config:PutEvaluations</code> permission. If the rule is a custom rule, verify that the AWS Lambda execution role includes the <code>config:PutEvaluations</code> permission. </li> <li> The rule's AWS Lambda function has returned <code>NOT_APPLICABLE</code> for all evaluation results. This can occur if the resources were deleted or removed from the rule's scope. </li> </ul>

        :param self:
        :param NextToken:  The <code>nextToken</code> string returned on a previous page that you use to get the next page of results in a paginated response.<br/>ComplianceTypes:  Filters the results by compliance. The allowed values are <code>COMPLIANT</code> and <code>NON_COMPLIANT</code>.<br/>ConfigRuleNames:  Specify one or more AWS Config rule names to filter the results by rule.<br/>
        :return: NextToken:  The string that you use in a subsequent request to get the next page of results in a paginated response.<br/>ComplianceByConfigRules:  Indicates whether each of the specified AWS Config rules is compliant.<br/>        """
        pass

    def describe_compliance_by_resource(self, ResourceType: str=None, ResourceId: str=None, ComplianceTypes: List[ComplianceType]=None, Limit: int=None, NextToken: str=None) -> DescribeComplianceByResourceResponse:
        r"""Indicates whether the specified AWS resources are compliant. If a resource is noncompliant, this action returns the number of AWS Config rules that the resource does not comply with. A resource is compliant if it complies with all the AWS Config rules that evaluate it. It is noncompliant if it does not comply with one or more of these rules. If AWS Config has no current evaluation results for the resource, it returns <code>INSUFFICIENT_DATA</code>. This result might indicate one of the following conditions about the rules that evaluate the resource: <ul> <li> AWS Config has never invoked an evaluation for the rule. To check whether it has, use the <code>DescribeConfigRuleEvaluationStatus</code> action to get the <code>LastSuccessfulInvocationTime</code> and <code>LastFailedInvocationTime</code>. </li> <li> The rule's AWS Lambda function is failing to send evaluation results to AWS Config. Verify that the role that you assigned to your configuration recorder includes the <code>config:PutEvaluations</code> permission. If the rule is a custom rule, verify that the AWS Lambda execution role includes the <code>config:PutEvaluations</code> permission. </li> <li> The rule's AWS Lambda function has returned <code>NOT_APPLICABLE</code> for all evaluation results. This can occur if the resources were deleted or removed from the rule's scope. </li> </ul>

        :param self:
        :param NextToken:  The <code>nextToken</code> string returned on a previous page that you use to get the next page of results in a paginated response.<br/>Limit:  The maximum number of evaluation results returned on each page. The default is 10. You cannot specify a number greater than 100. If you specify 0, AWS Config uses the default.<br/>ComplianceTypes:  Filters the results by compliance. The allowed values are <code>COMPLIANT</code>, <code>NON_COMPLIANT</code>, and <code>INSUFFICIENT_DATA</code>.<br/>ResourceId:  The ID of the AWS resource for which you want compliance information. You can specify only one resource ID. If you specify a resource ID, you must also specify a type for <code>ResourceType</code>.<br/>ResourceType:  The types of AWS resources for which you want compliance information (for example, <code>AWS::EC2::Instance</code>). For this action, you can specify that the resource type is an AWS account by specifying <code>AWS::::Account</code>.<br/>
        :return: NextToken:  The string that you use in a subsequent request to get the next page of results in a paginated response.<br/>ComplianceByResources:  Indicates whether the specified AWS resource complies with all of the AWS Config rules that evaluate it.<br/>        """
        pass

    def describe_config_rule_evaluation_status(self, ConfigRuleNames: List[ConfigRuleName]=None, NextToken: str=None, Limit: int=None) -> DescribeConfigRuleEvaluationStatusResponse:
        r"""Returns status information for each of your AWS managed Config rules. The status includes information such as the last time AWS Config invoked the rule, the last time AWS Config failed to invoke the rule, and the related error for the last failure.

        :param self:
        :param Limit:  The number of rule evaluation results that you want returned. This parameter is required if the rule limit for your account is more than the default of 150 rules. For information about requesting a rule limit increase, see <a href="http://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html#limits_config">AWS Config Limits</a> in the <i>AWS General Reference Guide</i>.<br/>NextToken:  The <code>nextToken</code> string returned on a previous page that you use to get the next page of results in a paginated response.<br/>ConfigRuleNames:  The name of the AWS managed Config rules for which you want status information. If you do not specify any names, AWS Config returns status information for all AWS managed Config rules that you use.<br/>
        :return: NextToken:  The string that you use in a subsequent request to get the next page of results in a paginated response.<br/>ConfigRulesEvaluationStatus:  Status information about your AWS managed Config rules.<br/>        """
        pass

    def describe_config_rules(self, ConfigRuleNames: List[ConfigRuleName]=None, NextToken: str=None) -> DescribeConfigRulesResponse:
        r"""Returns details about your AWS Config rules.

        :param self:
        :param NextToken:  The <code>nextToken</code> string returned on a previous page that you use to get the next page of results in a paginated response.<br/>ConfigRuleNames:  The names of the AWS Config rules for which you want details. If you do not specify any names, AWS Config returns details for all your rules.<br/>
        :return: NextToken:  The string that you use in a subsequent request to get the next page of results in a paginated response.<br/>ConfigRules:  The details about your AWS Config rules.<br/>        """
        pass

    def describe_configuration_aggregator_sources_status(self, ConfigurationAggregatorName: str, UpdateStatus: List[AggregatedSourceStatusType]=None, NextToken: str=None, Limit: int=None) -> DescribeConfigurationAggregatorSourcesStatusResponse:
        r"""Returns status information for sources within an aggregator. The status includes information about the last time AWS Config verified authorization between the source account and an aggregator account. In case of a failure, the status contains the related error code or message. 

        :param self:
        :param Limit:  The maximum number of AggregatorSourceStatus returned on each page. The default is maximum. If you specify 0, AWS Config uses the default.<br/>NextToken:  The <code>nextToken</code> string returned on a previous page that you use to get the next page of results in a paginated response.<br/>UpdateStatus:  Filters the status type. <ul> <li> Valid value FAILED indicates errors while moving data. </li> <li> Valid value SUCCEEDED indicates the data was successfully moved. </li> <li> Valid value OUTDATED indicates the data is not the most recent. </li> </ul><br/>ConfigurationAggregatorName:  The name of the configuration aggregator.<br/>
        :return: NextToken:  The <code>nextToken</code> string returned on a previous page that you use to get the next page of results in a paginated response.<br/>AggregatedSourceStatusList:  Returns an AggregatedSourceStatus object. <br/>        """
        pass

    def describe_configuration_aggregators(self, ConfigurationAggregatorNames: List[ConfigurationAggregatorName]=None, NextToken: str=None, Limit: int=None) -> DescribeConfigurationAggregatorsResponse:
        r"""Returns the details of one or more configuration aggregators. If the configuration aggregator is not specified, this action returns the details for all the configuration aggregators associated with the account. 

        :param self:
        :param Limit:  The maximum number of configuration aggregators returned on each page. The default is maximum. If you specify 0, AWS Config uses the default.<br/>NextToken:  The <code>nextToken</code> string returned on a previous page that you use to get the next page of results in a paginated response.<br/>ConfigurationAggregatorNames:  The name of the configuration aggregators.<br/>
        :return: NextToken:  The <code>nextToken</code> string returned on a previous page that you use to get the next page of results in a paginated response.<br/>ConfigurationAggregators:  Returns a ConfigurationAggregators object.<br/>        """
        pass

    def describe_configuration_recorder_status(self, ConfigurationRecorderNames: List[RecorderName]=None) -> DescribeConfigurationRecorderStatusResponse:
        r"""Returns the current status of the specified configuration recorder. If a configuration recorder is not specified, this action returns the status of all configuration recorders associated with the account. <note> Currently, you can specify only one configuration recorder per region in your account. </note>

        :param self:
        :param ConfigurationRecorderNames:  The name(s) of the configuration recorder. If the name is not specified, the action returns the current status of all the configuration recorders associated with the account.<br/>
        :return: ConfigurationRecordersStatus:  A list that contains status of the specified recorders.<br/>        """
        pass

    def describe_configuration_recorders(self, ConfigurationRecorderNames: List[RecorderName]=None) -> DescribeConfigurationRecordersResponse:
        r"""Returns the details for the specified configuration recorders. If the configuration recorder is not specified, this action returns the details for all configuration recorders associated with the account. <note> Currently, you can specify only one configuration recorder per region in your account. </note>

        :param self:
        :param ConfigurationRecorderNames:  A list of configuration recorder names.<br/>
        :return: ConfigurationRecorders:  A list that contains the descriptions of the specified configuration recorders.<br/>        """
        pass

    def describe_conformance_pack_compliance(self, ConformancePackName: str, Filters: ConformancePackComplianceFilters=None, Limit: int=None, NextToken: str=None) -> DescribeConformancePackComplianceResponse:
        r"""Returns compliance details for each rule in that conformance pack. <note> You must provide exact rule names. </note>

        :param self:
        :param NextToken:  The <code>nextToken</code> string returned in a previous request that you use to request the next page of results in a paginated response.<br/>Limit:  The maximum number of AWS Config rules within a conformance pack are returned on each page.<br/>Filters:  A <code>ConformancePackComplianceFilters</code> object.:<br/>ConformancePackName:  Name of the conformance pack.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ComplianceType</i> Filters the results by compliance. The allowed values are <code>COMPLIANT</code> and <code>NON_COMPLIANT</code>. <code>INSUFFICIENT_DATA</code> is not supported.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConfigRuleNames</i> Filters the results by AWS Config rule names.<br/>
        :return: NextToken:  The <code>nextToken</code> string returned in a previous request that you use to request the next page of results in a paginated response.<br/>ConformancePackRuleComplianceList:  Returns a list of <code>ConformancePackRuleCompliance</code> objects.<br/>ConformancePackName:  Name of the conformance pack.<br/>        """
        pass

    def describe_conformance_pack_status(self, ConformancePackNames: List[ConformancePackName]=None, Limit: int=None, NextToken: str=None) -> DescribeConformancePackStatusResponse:
        r"""Provides one or more conformance packs deployment status. <note> If there are no conformance packs then you will see an empty result. </note>

        :param self:
        :param NextToken:  The <code>nextToken</code> string returned in a previous request that you use to request the next page of results in a paginated response.<br/>Limit:  The maximum number of conformance packs status returned on each page.<br/>ConformancePackNames:  Comma-separated list of conformance pack names.<br/>
        :return: NextToken:  The <code>nextToken</code> string returned in a previous request that you use to request the next page of results in a paginated response.<br/>ConformancePackStatusDetails:  A list of <code>ConformancePackStatusDetail</code> objects.<br/>        """
        pass

    def describe_conformance_packs(self, ConformancePackNames: List[ConformancePackName]=None, Limit: int=None, NextToken: str=None) -> DescribeConformancePacksResponse:
        r"""Returns a list of one or more conformance packs.

        :param self:
        :param NextToken:  The <code>nextToken</code> string returned in a previous request that you use to request the next page of results in a paginated response.<br/>Limit:  The maximum number of conformance packs returned on each page.<br/>ConformancePackNames:  Comma-separated list of conformance pack names for which you want details. If you do not specify any names, AWS Config returns details for all your conformance packs. <br/>
        :return: NextToken:  The <code>nextToken</code> string returned in a previous request that you use to request the next page of results in a paginated response.<br/>ConformancePackDetails:  Returns a list of <code>ConformancePackDetail</code> objects.<br/>        """
        pass

    def describe_delivery_channel_status(self, DeliveryChannelNames: List[ChannelName]=None) -> DescribeDeliveryChannelStatusResponse:
        r"""Returns the current status of the specified delivery channel. If a delivery channel is not specified, this action returns the current status of all delivery channels associated with the account. <note> Currently, you can specify only one delivery channel per region in your account. </note>

        :param self:
        :param DeliveryChannelNames:  A list of delivery channel names.<br/>
        :return: DeliveryChannelsStatus:  A list that contains the status of a specified delivery channel.<br/>        """
        pass

    def describe_delivery_channels(self, DeliveryChannelNames: List[ChannelName]=None) -> DescribeDeliveryChannelsResponse:
        r"""Returns details about the specified delivery channel. If a delivery channel is not specified, this action returns the details of all delivery channels associated with the account. <note> Currently, you can specify only one delivery channel per region in your account. </note>

        :param self:
        :param DeliveryChannelNames:  A list of delivery channel names.<br/>
        :return: DeliveryChannels:  A list that contains the descriptions of the specified delivery channel.<br/>        """
        pass

    def describe_organization_config_rule_statuses(self, OrganizationConfigRuleNames: List[StringWithCharLimit64]=None, Limit: int=None, NextToken: str=None) -> DescribeOrganizationConfigRuleStatusesResponse:
        r"""Provides organization config rule deployment status for an organization. <note> The status is not considered successful until organization config rule is successfully deployed in all the member accounts with an exception of excluded accounts. When you specify the limit and the next token, you receive a paginated response. Limit and next token are not applicable if you specify organization config rule names. It is only applicable, when you request all the organization config rules. </note>

        :param self:
        :param NextToken:  The <code>nextToken</code> string returned on a previous page that you use to get the next page of results in a paginated response. <br/>Limit:  The maximum number of <code>OrganizationConfigRuleStatuses</code> returned on each page. If you do no specify a number, AWS Config uses the default. The default is 100.<br/>OrganizationConfigRuleNames:  The names of organization config rules for which you want status details. If you do not specify any names, AWS Config returns details for all your organization AWS Confg rules.<br/>
        :return: NextToken:  The <code>nextToken</code> string returned on a previous page that you use to get the next page of results in a paginated response. <br/>OrganizationConfigRuleStatuses:  A list of <code>OrganizationConfigRuleStatus</code> objects.<br/>        """
        pass

    def describe_organization_config_rules(self, OrganizationConfigRuleNames: List[StringWithCharLimit64]=None, Limit: int=None, NextToken: str=None) -> DescribeOrganizationConfigRulesResponse:
        r"""Returns a list of organization config rules.  <note> When you specify the limit and the next token, you receive a paginated response. Limit and next token are not applicable if you specify organization config rule names. It is only applicable, when you request all the organization config rules. </note>

        :param self:
        :param NextToken:  The <code>nextToken</code> string returned on a previous page that you use to get the next page of results in a paginated response. <br/>Limit:  The maximum number of organization config rules returned on each page. If you do no specify a number, AWS Config uses the default. The default is 100.<br/>OrganizationConfigRuleNames:  The names of organization config rules for which you want details. If you do not specify any names, AWS Config returns details for all your organization config rules.<br/>
        :return: NextToken:  The <code>nextToken</code> string returned on a previous page that you use to get the next page of results in a paginated response. <br/>OrganizationConfigRules:  Returns a list of <code>OrganizationConfigRule</code> objects.<br/>        """
        pass

    def describe_organization_conformance_pack_statuses(self, OrganizationConformancePackNames: List[OrganizationConformancePackName]=None, Limit: int=None, NextToken: str=None) -> DescribeOrganizationConformancePackStatusesResponse:
        r"""Provides organization conformance pack deployment status for an organization.  <note> The status is not considered successful until organization conformance pack is successfully deployed in all the member accounts with an exception of excluded accounts. When you specify the limit and the next token, you receive a paginated response. Limit and next token are not applicable if you specify organization conformance pack names. They are only applicable, when you request all the organization conformance packs. </note>

        :param self:
        :param NextToken:  The nextToken string returned on a previous page that you use to get the next page of results in a paginated response. <br/>Limit:  The maximum number of OrganizationConformancePackStatuses returned on each page. If you do no specify a number, AWS Config uses the default. The default is 100. <br/>OrganizationConformancePackNames:  The names of organization conformance packs for which you want status details. If you do not specify any names, AWS Config returns details for all your organization conformance packs. <br/>
        :return: NextToken:  The nextToken string returned on a previous page that you use to get the next page of results in a paginated response. <br/>OrganizationConformancePackStatuses:  A list of <code>OrganizationConformancePackStatus</code> objects. <br/>        """
        pass

    def describe_organization_conformance_packs(self, OrganizationConformancePackNames: List[OrganizationConformancePackName]=None, Limit: int=None, NextToken: str=None) -> DescribeOrganizationConformancePacksResponse:
        r"""Returns a list of organization conformance packs.  <note> When you specify the limit and the next token, you receive a paginated response.  Limit and next token are not applicable if you specify organization conformance packs names. They are only applicable, when you request all the organization conformance packs.  </note>

        :param self:
        :param NextToken:  The nextToken string returned on a previous page that you use to get the next page of results in a paginated response.<br/>Limit:  The maximum number of organization config packs returned on each page. If you do no specify a number, AWS Config uses the default. The default is 100.<br/>OrganizationConformancePackNames:  The name that you assign to an organization conformance pack.<br/>
        :return: NextToken:  The nextToken string returned on a previous page that you use to get the next page of results in a paginated response.<br/>OrganizationConformancePacks:  Returns a list of OrganizationConformancePacks objects.<br/>        """
        pass

    def describe_pending_aggregation_requests(self, Limit: int=None, NextToken: str=None) -> DescribePendingAggregationRequestsResponse:
        r"""Returns a list of all pending aggregation requests.

        :param self:
        :param NextToken:  The <code>nextToken</code> string returned on a previous page that you use to get the next page of results in a paginated response.<br/>Limit:  The maximum number of evaluation results returned on each page. The default is maximum. If you specify 0, AWS Config uses the default.<br/>
        :return: NextToken:  The <code>nextToken</code> string returned on a previous page that you use to get the next page of results in a paginated response.<br/>PendingAggregationRequests:  Returns a PendingAggregationRequests object.<br/>        """
        pass

    def describe_remediation_configurations(self, ConfigRuleNames: List[ConfigRuleName]) -> DescribeRemediationConfigurationsResponse:
        r"""Returns the details of one or more remediation configurations.

        :param self:
        :param ConfigRuleNames:  A list of AWS Config rule names of remediation configurations for which you want details. <br/>
        :return: RemediationConfigurations:  Returns a remediation configuration object.<br/>        """
        pass

    def describe_remediation_exceptions(self, ConfigRuleName: str, ResourceKeys: List[RemediationExceptionResourceKey]=None, Limit: int=None, NextToken: str=None) -> DescribeRemediationExceptionsResponse:
        r"""Returns the details of one or more remediation exceptions. A detailed view of a remediation exception for a set of resources that includes an explanation of an exception and the time when the exception will be deleted. When you specify the limit and the next token, you receive a paginated response.  <note> AWS Config generates a remediation exception when a problem occurs executing a remediation action to a specific resource. Remediation exceptions blocks auto-remediation until the exception is cleared. When you specify the limit and the next token, you receive a paginated response.  Limit and next token are not applicable if you request resources in batch. It is only applicable, when you request all resources. </note>

        :param self:
        :param NextToken:  The <code>nextToken</code> string returned in a previous request that you use to request the next page of results in a paginated response.<br/>Limit:  The maximum number of RemediationExceptionResourceKey returned on each page. The default is 25. If you specify 0, AWS Config uses the default.<br/>ResourceKeys:  An exception list of resource exception keys to be processed with the current request. AWS Config adds exception for each resource key. For example, AWS Config adds 3 exceptions for 3 resource keys. <br/>ConfigRuleName:  The name of the AWS Config rule.<br/>
        :return: NextToken:  The <code>nextToken</code> string returned in a previous request that you use to request the next page of results in a paginated response.<br/>RemediationExceptions:  Returns a list of remediation exception objects.<br/>        """
        pass

    def describe_remediation_execution_status(self, ConfigRuleName: str, ResourceKeys: List[ResourceKey]=None, Limit: int=None, NextToken: str=None) -> DescribeRemediationExecutionStatusResponse:
        r"""Provides a detailed view of a Remediation Execution for a set of resources including state, timestamps for when steps for the remediation execution occur, and any error messages for steps that have failed. When you specify the limit and the next token, you receive a paginated response.

        :param self:
        :param NextToken:  The <code>nextToken</code> string returned on a previous page that you use to get the next page of results in a paginated response.<br/>Limit:  The maximum number of RemediationExecutionStatuses returned on each page. The default is maximum. If you specify 0, AWS Config uses the default. <br/>ResourceKeys:  A list of resource keys to be processed with the current request. Each element in the list consists of the resource type and resource ID. <br/>ConfigRuleName:  A list of AWS Config rule names.<br/>
        :return: NextToken:  The <code>nextToken</code> string returned on a previous page that you use to get the next page of results in a paginated response.<br/>RemediationExecutionStatuses:  Returns a list of remediation execution statuses objects.<br/>        """
        pass

    def describe_retention_configurations(self, RetentionConfigurationNames: List[RetentionConfigurationName]=None, NextToken: str=None) -> DescribeRetentionConfigurationsResponse:
        r"""Returns the details of one or more retention configurations. If the retention configuration name is not specified, this action returns the details for all the retention configurations for that account. <note> Currently, AWS Config supports only one retention configuration per region in your account. </note>

        :param self:
        :param NextToken:  The <code>nextToken</code> string returned on a previous page that you use to get the next page of results in a paginated response. <br/>RetentionConfigurationNames:  A list of names of retention configurations for which you want details. If you do not specify a name, AWS Config returns details for all the retention configurations for that account. <note> Currently, AWS Config supports only one retention configuration per region in your account. </note><br/>
        :return: NextToken:  The <code>nextToken</code> string returned on a previous page that you use to get the next page of results in a paginated response. <br/>RetentionConfigurations:  Returns a retention configuration object.<br/>        """
        pass

    def get_aggregate_compliance_details_by_config_rule(self, AwsRegion: str, AccountId: str, ConfigRuleName: str, ConfigurationAggregatorName: str, ComplianceType: str=None, Limit: int=None, NextToken: str=None) -> GetAggregateComplianceDetailsByConfigRuleResponse:
        r"""Returns the evaluation results for the specified AWS Config rule for a specific resource in a rule. The results indicate which AWS resources were evaluated by the rule, when each resource was last evaluated, and whether each resource complies with the rule.  <note> The results can return an empty result page. But if you have a <code>nextToken</code>, the results are displayed on the next page. </note>

        :param self:
        :param NextToken:  The <code>nextToken</code> string returned on a previous page that you use to get the next page of results in a paginated response.<br/>Limit:  The maximum number of evaluation results returned on each page. The default is 50. You cannot specify a number greater than 100. If you specify 0, AWS Config uses the default.<br/>ComplianceType:  The resource compliance status. <note> For the <code>GetAggregateComplianceDetailsByConfigRuleRequest</code> data type, AWS Config supports only the <code>COMPLIANT</code> and <code>NON_COMPLIANT</code>. AWS Config does not support the <code>NOT_APPLICABLE</code> and <code>INSUFFICIENT_DATA</code> values. </note><br/>AwsRegion:  The source region from where the data is aggregated.<br/>AccountId:  The 12-digit account ID of the source account.<br/>ConfigRuleName:  The name of the AWS Config rule for which you want compliance information.<br/>ConfigurationAggregatorName:  The name of the configuration aggregator.<br/>
        :return: NextToken:  The <code>nextToken</code> string returned on a previous page that you use to get the next page of results in a paginated response.<br/>AggregateEvaluationResults:  Returns an AggregateEvaluationResults object.<br/>        """
        pass

    def get_aggregate_config_rule_compliance_summary(self, ConfigurationAggregatorName: str, Filters: ConfigRuleComplianceSummaryFilters=None, GroupByKey: str=None, Limit: int=None, NextToken: str=None) -> GetAggregateConfigRuleComplianceSummaryResponse:
        r"""Returns the number of compliant and noncompliant rules for one or more accounts and regions in an aggregator. <note> The results can return an empty result page, but if you have a nextToken, the results are displayed on the next page. </note>

        :param self:
        :param NextToken:  The <code>nextToken</code> string returned on a previous page that you use to get the next page of results in a paginated response.<br/>Limit:  The maximum number of evaluation results returned on each page. The default is 1000. You cannot specify a number greater than 1000. If you specify 0, AWS Config uses the default.<br/>GroupByKey:  Groups the result based on ACCOUNT_ID or AWS_REGION.<br/>Filters:  Filters the results based on the ConfigRuleComplianceSummaryFilters object.:<br/>ConfigurationAggregatorName:  The name of the configuration aggregator.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AwsRegion</i> The source region where the data is aggregated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccountId</i> The 12-digit account ID of the source account.<br/>
        :return: NextToken:  The <code>nextToken</code> string returned on a previous page that you use to get the next page of results in a paginated response.<br/>AggregateComplianceCounts:  Returns a list of AggregateComplianceCounts object.<br/>GroupByKey:  Groups the result based on ACCOUNT_ID or AWS_REGION.<br/>        """
        pass

    def get_aggregate_conformance_pack_compliance_summary(self, ConfigurationAggregatorName: str, Filters: AggregateConformancePackComplianceSummaryFilters=None, GroupByKey: str=None, Limit: int=None, NextToken: str=None) -> GetAggregateConformancePackComplianceSummaryResponse:
        r"""Returns the count of compliant and noncompliant conformance packs across all AWS Accounts and AWS Regions in an aggregator. You can filter based on AWS Account ID or AWS Region. <note> The results can return an empty result page, but if you have a nextToken, the results are displayed on the next page. </note>

        :param self:
        :param NextToken:  The <code>nextToken</code> string returned on a previous page that you use to get the next page of results in a paginated response.<br/>Limit:  The maximum number of results returned on each page. The default is maximum. If you specify 0, AWS Config uses the default.<br/>GroupByKey:  Groups the result based on AWS Account ID or AWS Region.<br/>Filters:  Filters the results based on the <code>AggregateConformancePackComplianceSummaryFilters</code> object.:<br/>ConfigurationAggregatorName:  The name of the configuration aggregator.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AwsRegion</i> The source AWS Region from where the data is aggregated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccountId</i> The 12-digit AWS account ID of the source account.<br/>
        :return: NextToken:  The <code>nextToken</code> string returned on a previous page that you use to get the next page of results in a paginated response.<br/>GroupByKey:  Groups the result based on AWS Account ID or AWS Region.<br/>AggregateConformancePackComplianceSummaries:  Returns a list of <code>AggregateConformancePackComplianceSummary</code> object.<br/>        """
        pass

    def get_aggregate_discovered_resource_counts(self, ConfigurationAggregatorName: str, Filters: ResourceCountFilters=None, GroupByKey: str=None, Limit: int=None, NextToken: str=None) -> GetAggregateDiscoveredResourceCountsResponse:
        r"""Returns the resource counts across accounts and regions that are present in your AWS Config aggregator. You can request the resource counts by providing filters and GroupByKey. For example, if the input contains accountID 12345678910 and region us-east-1 in filters, the API returns the count of resources in account ID 12345678910 and region us-east-1. If the input contains ACCOUNT_ID as a GroupByKey, the API returns resource counts for all source accounts that are present in your aggregator.

        :param self:
        :param NextToken:  The <code>nextToken</code> string returned on a previous page that you use to get the next page of results in a paginated response. <br/>Limit:  The maximum number of <a>GroupedResourceCount</a> objects returned on each page. The default is 1000. You cannot specify a number greater than 1000. If you specify 0, AWS Config uses the default.<br/>GroupByKey:  The key to group the resource counts.<br/>Filters:  Filters the results based on the <code>ResourceCountFilters</code> object.:<br/>ConfigurationAggregatorName:  The name of the configuration aggregator.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Region</i> The region where the account is located.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccountId</i> The 12-digit ID of the account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceType</i> The type of the AWS resource.<br/>
        :return: NextToken:  The <code>nextToken</code> string returned on a previous page that you use to get the next page of results in a paginated response.<br/>GroupedResourceCounts:  Returns a list of GroupedResourceCount objects.<br/>GroupByKey:  The key passed into the request object. If <code>GroupByKey</code> is not provided, the result will be empty.<br/>TotalDiscoveredResources:  The total number of resources that are present in an aggregator with the filters that you provide.<br/>        """
        pass

    def get_aggregate_resource_config(self, ResourceIdentifier: AggregateResourceIdentifier, ConfigurationAggregatorName: str) -> GetAggregateResourceConfigResponse:
        r"""Returns configuration item that is aggregated for your specific resource in a specific source account and region.

        :param self:
        :param ResourceIdentifier:  An object that identifies aggregate resource.:<br/>ConfigurationAggregatorName:  The name of the configuration aggregator.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceName</i> The name of the AWS resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceType</i> The type of the AWS resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceId</i> The ID of the AWS resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceRegion</i> The source region where data is aggregated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceAccountId</i> The 12-digit account ID of the source account.<br/>
        :return: ConfigurationItem:  Returns a <code>ConfigurationItem</code> object.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>supplementaryConfiguration</i> Configuration attributes that AWS Config returns for certain resource types to supplement the information returned for the <code>configuration</code> parameter.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>configuration</i> The description of the resource configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>relationships</i> A list of related AWS resources.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>relatedEvents</i> A list of CloudTrail event IDs. A populated field indicates that the current configuration was initiated by the events recorded in the CloudTrail log. For more information about CloudTrail, see <a href="https://docs.aws.amazon.com/awscloudtrail/latest/userguide/what_is_cloud_trail_top_level.html">What Is AWS CloudTrail</a>. An empty field indicates that the current configuration was not initiated by any event. As of Version 1.3, the relatedEvents field is empty. You can access the <a href="https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_LookupEvents.html">LookupEvents API</a> in the <i>AWS CloudTrail API Reference</i> to retrieve the events for the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> A mapping of key value tags associated with the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceCreationTime</i> The time stamp when the resource was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>availabilityZone</i> The Availability Zone associated with the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>awsRegion</i> The region where the resource resides.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceName</i> The custom name of the resource, if available.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceId</i> The ID of the resource (for example, <code>sg-xxxxxx</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceType</i> The type of AWS resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> Amazon Resource Name (ARN) associated with the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>configurationItemMD5Hash</i> Unique MD5 hash that represents the configuration item's state. You can use MD5 hash to compare the states of two or more configuration items that are associated with the same resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>configurationStateId</i> An identifier that indicates the ordering of the configuration items of a resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>configurationItemStatus</i> The configuration item status. The valid values are: <ul> <li> OK – The resource configuration has been updated </li> <li> ResourceDiscovered – The resource was newly discovered </li> <li> ResourceNotRecorded – The resource was discovered but its configuration was not recorded since the recorder excludes the recording of resources of this type </li> <li> ResourceDeleted – The resource was deleted </li> <li> ResourceDeletedNotRecorded – The resource was deleted but its configuration was not recorded since the recorder excludes the recording of resources of this type </li> </ul> <note> The CIs do not incur any cost. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>configurationItemCaptureTime</i> The time when the configuration recording was initiated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>accountId</i> The 12-digit AWS account ID associated with the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The version number of the resource configuration.<br/>        """
        pass

    def get_compliance_details_by_config_rule(self, ConfigRuleName: str, ComplianceTypes: List[ComplianceType]=None, Limit: int=None, NextToken: str=None) -> GetComplianceDetailsByConfigRuleResponse:
        r"""Returns the evaluation results for the specified AWS Config rule. The results indicate which AWS resources were evaluated by the rule, when each resource was last evaluated, and whether each resource complies with the rule.

        :param self:
        :param NextToken:  The <code>nextToken</code> string returned on a previous page that you use to get the next page of results in a paginated response.<br/>Limit:  The maximum number of evaluation results returned on each page. The default is 10. You cannot specify a number greater than 100. If you specify 0, AWS Config uses the default.<br/>ComplianceTypes:  Filters the results by compliance. The allowed values are <code>COMPLIANT</code>, <code>NON_COMPLIANT</code>, and <code>NOT_APPLICABLE</code>.<br/>ConfigRuleName:  The name of the AWS Config rule for which you want compliance information.<br/>
        :return: NextToken:  The string that you use in a subsequent request to get the next page of results in a paginated response.<br/>EvaluationResults:  Indicates whether the AWS resource complies with the specified AWS Config rule.<br/>        """
        pass

    def get_compliance_details_by_resource(self, ResourceId: str, ResourceType: str, ComplianceTypes: List[ComplianceType]=None, NextToken: str=None) -> GetComplianceDetailsByResourceResponse:
        r"""Returns the evaluation results for the specified AWS resource. The results indicate which AWS Config rules were used to evaluate the resource, when each rule was last used, and whether the resource complies with each rule.

        :param self:
        :param NextToken:  The <code>nextToken</code> string returned on a previous page that you use to get the next page of results in a paginated response.<br/>ComplianceTypes:  Filters the results by compliance. The allowed values are <code>COMPLIANT</code>, <code>NON_COMPLIANT</code>, and <code>NOT_APPLICABLE</code>.<br/>ResourceId:  The ID of the AWS resource for which you want compliance information.<br/>ResourceType:  The type of the AWS resource for which you want compliance information.<br/>
        :return: NextToken:  The string that you use in a subsequent request to get the next page of results in a paginated response.<br/>EvaluationResults:  Indicates whether the specified AWS resource complies each AWS Config rule.<br/>        """
        pass

    def get_compliance_summary_by_config_rule(self) -> GetComplianceSummaryByConfigRuleResponse:
        r"""Returns the number of AWS Config rules that are compliant and noncompliant, up to a maximum of 25 for each.

        :param self:
        :param 
        :return: ComplianceSummary:  The number of AWS Config rules that are compliant and the number that are noncompliant, up to a maximum of 25 for each.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ComplianceSummaryTimestamp</i> The time that AWS Config created the compliance summary.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NonCompliantResourceCount</i> The number of AWS Config rules or AWS resources that are noncompliant, up to a maximum of 25 for rules and 100 for resources.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>NonCompliantResourceCount</b>: The number of AWS Config rules or AWS resources that are noncompliant, up to a maximum of 25 for rules and 100 for resources.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CompliantResourceCount</i> The number of AWS Config rules or AWS resources that are compliant, up to a maximum of 25 for rules and 100 for resources.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CompliantResourceCount</b>: The number of AWS Config rules or AWS resources that are compliant, up to a maximum of 25 for rules and 100 for resources.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CapExceeded</i> Indicates whether the maximum count is reached.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CappedCount</i> The number of AWS resources or AWS Config rules responsible for the current compliance of the item.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CapExceeded</i> Indicates whether the maximum count is reached.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CappedCount</i> The number of AWS resources or AWS Config rules responsible for the current compliance of the item.<br/>        """
        pass

    def get_compliance_summary_by_resource_type(self, ResourceTypes: List[StringWithCharLimit256]=None) -> GetComplianceSummaryByResourceTypeResponse:
        r"""Returns the number of resources that are compliant and the number that are noncompliant. You can specify one or more resource types to get these numbers for each resource type. The maximum number returned is 100.

        :param self:
        :param ResourceTypes:  Specify one or more resource types to get the number of resources that are compliant and the number that are noncompliant for each resource type. For this request, you can specify an AWS resource type such as <code>AWS::EC2::Instance</code>. You can specify that the resource type is an AWS account by specifying <code>AWS::::Account</code>.<br/>
        :return: ComplianceSummariesByResourceType:  The number of resources that are compliant and the number that are noncompliant. If one or more resource types were provided with the request, the numbers are returned for each resource type. The maximum number returned is 100.<br/>        """
        pass

    def get_conformance_pack_compliance_details(self, ConformancePackName: str, Filters: ConformancePackEvaluationFilters=None, Limit: int=None, NextToken: str=None) -> GetConformancePackComplianceDetailsResponse:
        r"""Returns compliance details of a conformance pack for all AWS resources that are monitered by conformance pack.

        :param self:
        :param NextToken:  The <code>nextToken</code> string returned in a previous request that you use to request the next page of results in a paginated response.<br/>Limit:  The maximum number of evaluation results returned on each page. If you do no specify a number, AWS Config uses the default. The default is 100.<br/>Filters:  A <code>ConformancePackEvaluationFilters</code> object.:<br/>ConformancePackName:  Name of the conformance pack.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceIds</i> Filters the results by resource IDs. <note> This is valid only when you provide resource type. If there is no resource type, you will see an error. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceType</i> Filters the results by the resource type (for example, <code>"AWS::EC2::Instance"</code>). <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ComplianceType</i> Filters the results by compliance. The allowed values are <code>COMPLIANT</code> and <code>NON_COMPLIANT</code>. <code>INSUFFICIENT_DATA</code> is not supported.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConfigRuleNames</i> Filters the results by AWS Config rule names.<br/>
        :return: NextToken:  The <code>nextToken</code> string returned in a previous request that you use to request the next page of results in a paginated response.<br/>ConformancePackRuleEvaluationResults:  Returns a list of <code>ConformancePackEvaluationResult</code> objects.<br/>ConformancePackName:  Name of the conformance pack.<br/>        """
        pass

    def get_conformance_pack_compliance_summary(self, ConformancePackNames: List[ConformancePackName], Limit: int=None, NextToken: str=None) -> GetConformancePackComplianceSummaryResponse:
        r"""Returns compliance details for the conformance pack based on the cumulative compliance results of all the rules in that conformance pack.

        :param self:
        :param NextToken:  The nextToken string returned on a previous page that you use to get the next page of results in a paginated response.<br/>Limit:  The maximum number of conformance packs returned on each page.<br/>ConformancePackNames:  Names of conformance packs.<br/>
        :return: NextToken:  The nextToken string returned on a previous page that you use to get the next page of results in a paginated response.<br/>ConformancePackComplianceSummaryList:  A list of <code>ConformancePackComplianceSummary</code> objects. <br/>        """
        pass

    def get_discovered_resource_counts(self, resourceTypes: List[StringWithCharLimit256]=None, limit: int=None, nextToken: str=None) -> GetDiscoveredResourceCountsResponse:
        r"""Returns the resource types, the number of each resource type, and the total number of resources that AWS Config is recording in this region for your AWS account.  <p class="title"> <b>Example</b>  <ol> <li> AWS Config is recording three resource types in the US East (Ohio) Region for your account: 25 EC2 instances, 20 IAM users, and 15 S3 buckets. </li> <li> You make a call to the <code>GetDiscoveredResourceCounts</code> action and specify that you want all resource types.  </li> <li> AWS Config returns the following: <ul> <li> The resource types (EC2 instances, IAM users, and S3 buckets). </li> <li> The number of each resource type (25, 20, and 15). </li> <li> The total number of all resources (60). </li> </ul> </li> </ol> The response is paginated. By default, AWS Config lists 100 <a>ResourceCount</a> objects on each page. You can customize this number with the <code>limit</code> parameter. The response includes a <code>nextToken</code> string. To get the next page of results, run the request again and specify the string for the <code>nextToken</code> parameter. <note> If you make a call to the <a>GetDiscoveredResourceCounts</a> action, you might not immediately receive resource counts in the following situations: <ul> <li> You are a new AWS Config customer. </li> <li> You just enabled resource recording. </li> </ul> It might take a few minutes for AWS Config to record and count your resources. Wait a few minutes and then retry the <a>GetDiscoveredResourceCounts</a> action.  </note>

        :param self:
        :param nextToken:  The <code>nextToken</code> string returned on a previous page that you use to get the next page of results in a paginated response.<br/>limit:  The maximum number of <a>ResourceCount</a> objects returned on each page. The default is 100. You cannot specify a number greater than 100. If you specify 0, AWS Config uses the default.<br/>resourceTypes:  The comma-separated list that specifies the resource types that you want AWS Config to return (for example, <code>"AWS::EC2::Instance"</code>, <code>"AWS::IAM::User"</code>). If a value for <code>resourceTypes</code> is not specified, AWS Config returns all resource types that AWS Config is recording in the region for your account. <note> If the configuration recorder is turned off, AWS Config returns an empty list of <a>ResourceCount</a> objects. If the configuration recorder is not recording a specific resource type (for example, S3 buckets), that resource type is not returned in the list of <a>ResourceCount</a> objects. </note><br/>
        :return: nextToken:  The string that you use in a subsequent request to get the next page of results in a paginated response.<br/>resourceCounts:  The list of <code>ResourceCount</code> objects. Each object is listed in descending order by the number of resources.<br/>totalDiscoveredResources:  The total number of resources that AWS Config is recording in the region for your account. If you specify resource types in the request, AWS Config returns only the total number of resources for those resource types. <p class="title"> <b>Example</b>  <ol> <li> AWS Config is recording three resource types in the US East (Ohio) Region for your account: 25 EC2 instances, 20 IAM users, and 15 S3 buckets, for a total of 60 resources. </li> <li> You make a call to the <code>GetDiscoveredResourceCounts</code> action and specify the resource type, <code>"AWS::EC2::Instances"</code>, in the request. </li> <li> AWS Config returns 25 for <code>totalDiscoveredResources</code>. </li> </ol><br/>        """
        pass

    def get_organization_config_rule_detailed_status(self, OrganizationConfigRuleName: str, Filters: StatusDetailFilters=None, Limit: int=None, NextToken: str=None) -> GetOrganizationConfigRuleDetailedStatusResponse:
        r"""Returns detailed status for each member account within an organization for a given organization config rule.

        :param self:
        :param NextToken:  The <code>nextToken</code> string returned on a previous page that you use to get the next page of results in a paginated response. <br/>Limit:  The maximum number of <code>OrganizationConfigRuleDetailedStatus</code> returned on each page. If you do not specify a number, AWS Config uses the default. The default is 100.<br/>Filters:  A <code>StatusDetailFilters</code> object.:<br/>OrganizationConfigRuleName:  The name of organization config rule for which you want status details for member accounts.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MemberAccountRuleStatus</i> Indicates deployment status for config rule in the member account. When master account calls <code>PutOrganizationConfigRule</code> action for the first time, config rule status is created in the member account. When master account calls <code>PutOrganizationConfigRule</code> action for the second time, config rule status is updated in the member account. Config rule status is deleted when the master account deletes <code>OrganizationConfigRule</code> and disables service access for <code>config-multiaccountsetup.amazonaws.com</code>.  AWS Config sets the state of the rule to: <ul> <li>  <code>CREATE_SUCCESSFUL</code> when config rule has been created in the member account. </li> <li>  <code>CREATE_IN_PROGRESS</code> when config rule is being created in the member account. </li> <li>  <code>CREATE_FAILED</code> when config rule creation has failed in the member account. </li> <li>  <code>DELETE_FAILED</code> when config rule deletion has failed in the member account. </li> <li>  <code>DELETE_IN_PROGRESS</code> when config rule is being deleted in the member account. </li> <li>  <code>DELETE_SUCCESSFUL</code> when config rule has been deleted in the member account. </li> <li>  <code>UPDATE_SUCCESSFUL</code> when config rule has been updated in the member account. </li> <li>  <code>UPDATE_IN_PROGRESS</code> when config rule is being updated in the member account. </li> <li>  <code>UPDATE_FAILED</code> when config rule deletion has failed in the member account. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccountId</i> The 12-digit account ID of the member account within an organization.<br/>
        :return: NextToken:  The <code>nextToken</code> string returned on a previous page that you use to get the next page of results in a paginated response. <br/>OrganizationConfigRuleDetailedStatus:  A list of <code>MemberAccountStatus</code> objects.<br/>        """
        pass

    def get_organization_conformance_pack_detailed_status(self, OrganizationConformancePackName: str, Filters: OrganizationResourceDetailedStatusFilters=None, Limit: int=None, NextToken: str=None) -> GetOrganizationConformancePackDetailedStatusResponse:
        r"""Returns detailed status for each member account within an organization for a given organization conformance pack.

        :param self:
        :param NextToken:  The nextToken string returned on a previous page that you use to get the next page of results in a paginated response. <br/>Limit:  The maximum number of <code>OrganizationConformancePackDetailedStatuses</code> returned on each page. If you do not specify a number, AWS Config uses the default. The default is 100. <br/>Filters:  An <code>OrganizationResourceDetailedStatusFilters</code> object.:<br/>OrganizationConformancePackName:  The name of organization conformance pack for which you want status details for member accounts.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Indicates deployment status for conformance pack in a member account. When master account calls <code>PutOrganizationConformancePack</code> action for the first time, conformance pack status is created in the member account. When master account calls <code>PutOrganizationConformancePack</code> action for the second time, conformance pack status is updated in the member account. Conformance pack status is deleted when the master account deletes <code>OrganizationConformancePack</code> and disables service access for <code>config-multiaccountsetup.amazonaws.com</code>.   AWS Config sets the state of the conformance pack to: <ul> <li>  <code>CREATE_SUCCESSFUL</code> when conformance pack has been created in the member account.  </li> <li>  <code>CREATE_IN_PROGRESS</code> when conformance pack is being created in the member account. </li> <li>  <code>CREATE_FAILED</code> when conformance pack creation has failed in the member account. </li> <li>  <code>DELETE_FAILED</code> when conformance pack deletion has failed in the member account. </li> <li>  <code>DELETE_IN_PROGRESS</code> when conformance pack is being deleted in the member account. </li> <li>  <code>DELETE_SUCCESSFUL</code> when conformance pack has been deleted in the member account.  </li> <li>  <code>UPDATE_SUCCESSFUL</code> when conformance pack has been updated in the member account. </li> <li>  <code>UPDATE_IN_PROGRESS</code> when conformance pack is being updated in the member account. </li> <li>  <code>UPDATE_FAILED</code> when conformance pack deletion has failed in the member account. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccountId</i> The 12-digit account ID of the member account within an organization.<br/>
        :return: NextToken:  The nextToken string returned on a previous page that you use to get the next page of results in a paginated response. <br/>OrganizationConformancePackDetailedStatuses:  A list of <code>OrganizationConformancePackDetailedStatus</code> objects. <br/>        """
        pass

    def get_resource_config_history(self, resourceId: str, resourceType: str, laterTime: LaterTime=None, earlierTime: EarlierTime=None, chronologicalOrder: str=None, limit: int=None, nextToken: str=None) -> GetResourceConfigHistoryResponse:
        r"""Returns a list of configuration items for the specified resource. The list contains details about each state of the resource during the specified time interval. If you specified a retention period to retain your <code>ConfigurationItems</code> between a minimum of 30 days and a maximum of 7 years (2557 days), AWS Config returns the <code>ConfigurationItems</code> for the specified retention period.  The response is paginated. By default, AWS Config returns a limit of 10 configuration items per page. You can customize this number with the <code>limit</code> parameter. The response includes a <code>nextToken</code> string. To get the next page of results, run the request again and specify the string for the <code>nextToken</code> parameter. <note> Each call to the API is limited to span a duration of seven days. It is likely that the number of records returned is smaller than the specified <code>limit</code>. In such cases, you can make another call, using the <code>nextToken</code>. </note>

        :param self:
        :param nextToken:  The <code>nextToken</code> string returned on a previous page that you use to get the next page of results in a paginated response.<br/>limit:  The maximum number of configuration items returned on each page. The default is 10. You cannot specify a number greater than 100. If you specify 0, AWS Config uses the default.<br/>chronologicalOrder:  The chronological order for configuration items listed. By default, the results are listed in reverse chronological order.<br/>earlierTime:  The time stamp that indicates an earlier time. If not specified, the action returns paginated results that contain configuration items that start when the first configuration item was recorded.<br/>laterTime:  The time stamp that indicates a later time. If not specified, current time is taken.<br/>resourceId:  The ID of the resource (for example., <code>sg-xxxxxx</code>).<br/>resourceType:  The resource type.<br/>
        :return: nextToken:  The string that you use in a subsequent request to get the next page of results in a paginated response.<br/>configurationItems:  A list that contains the configuration history of one or more resources.<br/>        """
        pass

    def get_stored_query(self, QueryName: str) -> GetStoredQueryResponse:
        r"""Returns the details of a specific stored query.

        :param self:
        :param QueryName:  The name of the query.<br/>
        :return: StoredQuery:  Returns a <code>StoredQuery</code> object.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Expression</i> The expression of the query. For example, <code>SELECT resourceId, resourceType, supplementaryConfiguration.BucketVersioningConfiguration.status WHERE resourceType = 'AWS::S3::Bucket' AND supplementaryConfiguration.BucketVersioningConfiguration.status = 'Off'.</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A unique description for the query.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>QueryName</i> The name of the query.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>QueryArn</i> Amazon Resource Name (ARN) of the query. For example, arn:partition:service:region:account-id:resource-type/resource-name/resource-id.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>QueryId</i> The ID of the query.<br/>        """
        pass

    def list_aggregate_discovered_resources(self, ResourceType: str, ConfigurationAggregatorName: str, Filters: ResourceFilters=None, Limit: int=None, NextToken: str=None) -> ListAggregateDiscoveredResourcesResponse:
        r"""Accepts a resource type and returns a list of resource identifiers that are aggregated for a specific resource type across accounts and regions. A resource identifier includes the resource type, ID, (if available) the custom resource name, source account, and source region. You can narrow the results to include only resources that have specific resource IDs, or a resource name, or source account ID, or source region. For example, if the input consists of accountID 12345678910 and the region is us-east-1 for resource type <code>AWS::EC2::Instance</code> then the API returns all the EC2 instance identifiers of accountID 12345678910 and region us-east-1.

        :param self:
        :param NextToken:  The <code>nextToken</code> string returned on a previous page that you use to get the next page of results in a paginated response.<br/>Limit:  The maximum number of resource identifiers returned on each page. You cannot specify a number greater than 100. If you specify 0, AWS Config uses the default.<br/>Filters:  Filters the results based on the <code>ResourceFilters</code> object.:<br/>ResourceType:  The type of resources that you want AWS Config to list in the response.<br/>ConfigurationAggregatorName:  The name of the configuration aggregator. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Region</i> The source region.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceName</i> The name of the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceId</i> The ID of the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccountId</i> The 12-digit source account ID.<br/>
        :return: NextToken:  The <code>nextToken</code> string returned on a previous page that you use to get the next page of results in a paginated response.<br/>ResourceIdentifiers:  Returns a list of <code>ResourceIdentifiers</code> objects.<br/>        """
        pass

    def list_discovered_resources(self, resourceType: str, resourceIds: List[ResourceId]=None, resourceName: str=None, limit: int=None, includeDeletedResources: Boolean=None, nextToken: str=None) -> ListDiscoveredResourcesResponse:
        r"""Accepts a resource type and returns a list of resource identifiers for the resources of that type. A resource identifier includes the resource type, ID, and (if available) the custom resource name. The results consist of resources that AWS Config has discovered, including those that AWS Config is not currently recording. You can narrow the results to include only resources that have specific resource IDs or a resource name. <note> You can specify either resource IDs or a resource name, but not both, in the same request. </note> The response is paginated. By default, AWS Config lists 100 resource identifiers on each page. You can customize this number with the <code>limit</code> parameter. The response includes a <code>nextToken</code> string. To get the next page of results, run the request again and specify the string for the <code>nextToken</code> parameter.

        :param self:
        :param nextToken:  The <code>nextToken</code> string returned on a previous page that you use to get the next page of results in a paginated response.<br/>includeDeletedResources:  Specifies whether AWS Config includes deleted resources in the results. By default, deleted resources are not included.<br/>limit:  The maximum number of resource identifiers returned on each page. The default is 100. You cannot specify a number greater than 100. If you specify 0, AWS Config uses the default.<br/>resourceName:  The custom name of only those resources that you want AWS Config to list in the response. If you do not specify this parameter, AWS Config lists all resources of the specified type that it has discovered.<br/>resourceIds:  The IDs of only those resources that you want AWS Config to list in the response. If you do not specify this parameter, AWS Config lists all resources of the specified type that it has discovered.<br/>resourceType:  The type of resources that you want AWS Config to list in the response.<br/>
        :return: nextToken:  The string that you use in a subsequent request to get the next page of results in a paginated response.<br/>resourceIdentifiers:  The details that identify a resource that is discovered by AWS Config, including the resource type, ID, and (if available) the custom resource name.<br/>        """
        pass

    def list_stored_queries(self, NextToken: str=None, MaxResults: int=None) -> ListStoredQueriesResponse:
        r"""Lists the stored queries for a single AWS account and a single AWS Region. The default is 100. 

        :param self:
        :param MaxResults:  The maximum number of results to be returned with a single call.<br/>NextToken:  The nextToken string returned in a previous request that you use to request the next page of results in a paginated response.<br/>
        :return: NextToken:  If the previous paginated request didn't return all of the remaining results, the response object's <code>NextToken</code> parameter value is set to a token. To retrieve the next set of results, call this action again and assign that token to the request object's <code>NextToken</code> parameter. If there are no remaining results, the previous response object's <code>NextToken</code> parameter is set to <code>null</code>. <br/>StoredQueryMetadata:  A list of <code>StoredQueryMetadata</code> objects.<br/>        """
        pass

    def list_tags_for_resource(self, ResourceArn: str, Limit: int=None, NextToken: str=None) -> ListTagsForResourceResponse:
        r"""List the tags for AWS Config resource.

        :param self:
        :param NextToken:  The <code>nextToken</code> string returned on a previous page that you use to get the next page of results in a paginated response. <br/>Limit:  The maximum number of tags returned on each page. The limit maximum is 50. You cannot specify a number greater than 50. If you specify 0, AWS Config uses the default. <br/>ResourceArn:  The Amazon Resource Name (ARN) that identifies the resource for which to list the tags. Currently, the supported resources are <code>ConfigRule</code>, <code>ConfigurationAggregator</code> and <code>AggregatorAuthorization</code>.<br/>
        :return: NextToken:  The <code>nextToken</code> string returned on a previous page that you use to get the next page of results in a paginated response. <br/>Tags:  The tags for the resource.<br/>        """
        pass

    def put_aggregation_authorization(self, AuthorizedAwsRegion: str, AuthorizedAccountId: str, Tags: List[Tag]=None) -> PutAggregationAuthorizationResponse:
        r"""Authorizes the aggregator account and region to collect data from the source account and region. 

        :param self:
        :param Tags:  An array of tag object.<br/>AuthorizedAwsRegion:  The region authorized to collect aggregated data.<br/>AuthorizedAccountId:  The 12-digit account ID of the account authorized to aggregate data.<br/>
        :return: AggregationAuthorization:  Returns an AggregationAuthorization object. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The time stamp when the aggregation authorization was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AuthorizedAwsRegion</i> The region authorized to collect aggregated data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AuthorizedAccountId</i> The 12-digit account ID of the account authorized to aggregate data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AggregationAuthorizationArn</i> The Amazon Resource Name (ARN) of the aggregation object.<br/>        """
        pass

    def put_config_rule(self, ConfigRule: ConfigRule, Tags: List[Tag]=None):
        r"""Adds or updates an AWS Config rule for evaluating whether your AWS resources comply with your desired configurations. You can use this action for custom AWS Config rules and AWS managed Config rules. A custom AWS Config rule is a rule that you develop and maintain. An AWS managed Config rule is a customizable, predefined rule that AWS Config provides. If you are adding a new custom AWS Config rule, you must first create the AWS Lambda function that the rule invokes to evaluate your resources. When you use the <code>PutConfigRule</code> action to add the rule to AWS Config, you must specify the Amazon Resource Name (ARN) that AWS Lambda assigns to the function. Specify the ARN for the <code>SourceIdentifier</code> key. This key is part of the <code>Source</code> object, which is part of the <code>ConfigRule</code> object.  If you are adding an AWS managed Config rule, specify the rule's identifier for the <code>SourceIdentifier</code> key. To reference AWS managed Config rule identifiers, see <a href="https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config_use-managed-rules.html">About AWS Managed Config Rules</a>. For any new rule that you add, specify the <code>ConfigRuleName</code> in the <code>ConfigRule</code> object. Do not specify the <code>ConfigRuleArn</code> or the <code>ConfigRuleId</code>. These values are generated by AWS Config for new rules. If you are updating a rule that you added previously, you can specify the rule by <code>ConfigRuleName</code>, <code>ConfigRuleId</code>, or <code>ConfigRuleArn</code> in the <code>ConfigRule</code> data type that you use in this request. The maximum number of rules that AWS Config supports is 150. For information about requesting a rule limit increase, see <a href="http://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html#limits_config">AWS Config Limits</a> in the <i>AWS General Reference Guide</i>. For more information about developing and using AWS Config rules, see <a href="https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config.html">Evaluating AWS Resource Configurations with AWS Config</a> in the <i>AWS Config Developer Guide</i>.

        :param self:
        :param Tags:  An array of tag object.<br/>ConfigRule:  The rule that you want to add to your account.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedBy</i> Service principal name of the service that created the rule. <note> The field is populated only if the service linked rule is created by a service. The field is empty if you create your own rule. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConfigRuleState</i> Indicates whether the AWS Config rule is active or is currently being deleted by AWS Config. It can also indicate the evaluation status for the AWS Config rule. AWS Config sets the state of the rule to <code>EVALUATING</code> temporarily after you use the <code>StartConfigRulesEvaluation</code> request to evaluate your resources against the AWS Config rule. AWS Config sets the state of the rule to <code>DELETING_RESULTS</code> temporarily after you use the <code>DeleteEvaluationResults</code> request to delete the current evaluation results for the AWS Config rule. AWS Config temporarily sets the state of a rule to <code>DELETING</code> after you use the <code>DeleteConfigRule</code> request to delete the rule. After AWS Config deletes the rule, the rule and all of its evaluations are erased and are no longer available.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaximumExecutionFrequency</i> The maximum frequency with which AWS Config runs evaluations for a rule. You can specify a value for <code>MaximumExecutionFrequency</code> when: <ul> <li> You are using an AWS managed rule that is triggered at a periodic frequency. </li> <li> Your custom rule is triggered when AWS Config delivers the configuration snapshot. For more information, see <a>ConfigSnapshotDeliveryProperties</a>. </li> </ul> <note> By default, rules with a periodic trigger are evaluated every 24 hours. To change the frequency, specify a valid value for the <code>MaximumExecutionFrequency</code> parameter. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InputParameters</i> A string, in JSON format, that is passed to the AWS Config rule Lambda function.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Source</i> Provides the rule owner (AWS or customer), the rule identifier, and the notifications that cause the function to evaluate your AWS resources.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Source</b>: Provides the rule owner (AWS or customer), the rule identifier, and the notifications that cause the function to evaluate your AWS resources.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Scope</i> Defines which resources can trigger an evaluation for the rule. The scope can include one or more resource types, a combination of one resource type and one resource ID, or a combination of a tag key and value. Specify a scope to constrain the resources that can trigger an evaluation for the rule. If you do not specify a scope, evaluations are triggered when any resource in the recording group changes. <note> The scope can be empty.  </note>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Scope</b>: Defines which resources can trigger an evaluation for the rule. The scope can include one or more resource types, a combination of one resource type and one resource ID, or a combination of a tag key and value. Specify a scope to constrain the resources that can trigger an evaluation for the rule. If you do not specify a scope, evaluations are triggered when any resource in the recording group changes. <note> The scope can be empty.  </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description that you provide for the AWS Config rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConfigRuleId</i> The ID of the AWS Config rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConfigRuleArn</i> The Amazon Resource Name (ARN) of the AWS Config rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConfigRuleName</i> The name that you assign to the AWS Config rule. The name is required if you are adding a new rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ComplianceResourceId</i> The ID of the only AWS resource that you want to trigger an evaluation for the rule. If you specify a resource ID, you must specify one resource type for <code>ComplianceResourceTypes</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TagValue</i> The tag value applied to only those AWS resources that you want to trigger an evaluation for the rule. If you specify a value for <code>TagValue</code>, you must also specify a value for <code>TagKey</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TagKey</i> The tag key that is applied to only those AWS resources that you want to trigger an evaluation for the rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ComplianceResourceTypes</i> The resource types of only those AWS resources that you want to trigger an evaluation for the rule. You can only specify one type if you also specify a resource ID for <code>ComplianceResourceId</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceDetails</i> Provides the source and type of the event that causes AWS Config to evaluate your AWS resources.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceIdentifier</i> For AWS Config managed rules, a predefined identifier from a list. For example, <code>IAM_PASSWORD_POLICY</code> is a managed rule. To reference a managed rule, see <a href="https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config_use-managed-rules.html">Using AWS Managed Config Rules</a>. For custom rules, the identifier is the Amazon Resource Name (ARN) of the rule's AWS Lambda function, such as <code>arn:aws:lambda:us-east-2:123456789012:function:custom_rule_name</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Owner</i> Indicates whether AWS or the customer owns and manages the AWS Config rule.<br/>
        :return:         """
        pass

    def put_configuration_aggregator(self, ConfigurationAggregatorName: str, AccountAggregationSources: List[AccountAggregationSource]=None, OrganizationAggregationSource: OrganizationAggregationSource=None, Tags: List[Tag]=None) -> PutConfigurationAggregatorResponse:
        r"""Creates and updates the configuration aggregator with the selected source accounts and regions. The source account can be individual account(s) or an organization.  <code>accountIds</code> that are passed will be replaced with existing accounts. If you want to add additional accounts into the aggregator, call <code>DescribeAggregator</code> to get the previous accounts and then append new ones. <note> AWS Config should be enabled in source accounts and regions you want to aggregate. If your source type is an organization, you must be signed in to the management account or a registered delegated administrator and all the features must be enabled in your organization. If the caller is a management account, AWS Config calls <code>EnableAwsServiceAccess</code> API to enable integration between AWS Config and AWS Organizations. If the caller is a registered delegated administrator, AWS Config calls <code>ListDelegatedAdministrators</code> API to verify whether the caller is a valid delegated administrator. To register a delegated administrator, see <a href="https://docs.aws.amazon.com/config/latest/developerguide/set-up-aggregator-cli.html#register-a-delegated-administrator-cli">Register a Delegated Administrator</a> in the AWS Config developer guide.  </note>

        :param self:
        :param Tags:  An array of tag object.<br/>OrganizationAggregationSource:  An OrganizationAggregationSource object.:<br/>AccountAggregationSources:  A list of AccountAggregationSource object. <br/>ConfigurationAggregatorName:  The name of the configuration aggregator.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllAwsRegions</i> If true, aggregate existing AWS Config regions and future regions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AwsRegions</i> The source regions being aggregated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> ARN of the IAM role used to retrieve AWS Organization details associated with the aggregator account.<br/>
        :return: ConfigurationAggregator:  Returns a ConfigurationAggregator object.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedBy</i> AWS service that created the configuration aggregator.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdatedTime</i> The time of the last update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The time stamp when the configuration aggregator was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OrganizationAggregationSource</i> Provides an organization and list of regions to be aggregated.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>OrganizationAggregationSource</b>: Provides an organization and list of regions to be aggregated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccountAggregationSources</i> Provides a list of source accounts and regions to be aggregated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConfigurationAggregatorArn</i> The Amazon Resource Name (ARN) of the aggregator.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConfigurationAggregatorName</i> The name of the aggregator.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AllAwsRegions</i> If true, aggregate existing AWS Config regions and future regions.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AwsRegions</i> The source regions being aggregated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> ARN of the IAM role used to retrieve AWS Organization details associated with the aggregator account.<br/>        """
        pass

    def put_configuration_recorder(self, ConfigurationRecorder: ConfigurationRecorder):
        r"""Creates a new configuration recorder to record the selected resource configurations. You can use this action to change the role <code>roleARN</code> or the <code>recordingGroup</code> of an existing recorder. To change the role, call the action on the existing configuration recorder and specify a role. <note> Currently, you can specify only one configuration recorder per region in your account. If <code>ConfigurationRecorder</code> does not have the <b>recordingGroup</b> parameter specified, the default is to record all supported resource types. </note>

        :param self:
        :param ConfigurationRecorder:  The configuration recorder object that records each configuration change made to the resources.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>recordingGroup</i> Specifies the types of AWS resources for which AWS Config records configuration changes.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>recordingGroup</b>: Specifies the types of AWS resources for which AWS Config records configuration changes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>roleARN</i> Amazon Resource Name (ARN) of the IAM role used to describe the AWS resources associated with the account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the recorder. By default, AWS Config automatically assigns the name "default" when creating the configuration recorder. You cannot change the assigned name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceTypes</i> A comma-separated list that specifies the types of AWS resources for which AWS Config records configuration changes (for example, <code>AWS::EC2::Instance</code> or <code>AWS::CloudTrail::Trail</code>). To record all configuration changes, you must set the <code>allSupported</code> option to <code>true</code>. If you set this option to <code>false</code>, when AWS Config adds support for a new type of resource, it will not record resources of that type unless you manually add that type to your recording group. For a list of valid <code>resourceTypes</code> values, see the <b>resourceType Value</b> column in <a href="https://docs.aws.amazon.com/config/latest/developerguide/resource-config-reference.html#supported-resources">Supported AWS Resource Types</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>includeGlobalResourceTypes</i> Specifies whether AWS Config includes all supported types of global resources (for example, IAM resources) with the resources that it records. Before you can set this option to <code>true</code>, you must set the <code>allSupported</code> option to <code>true</code>. If you set this option to <code>true</code>, when AWS Config adds support for a new type of global resource, it starts recording resources of that type automatically. The configuration details for any global resource are the same in all regions. To prevent duplicate configuration items, you should consider customizing AWS Config in only one region to record global resources.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>allSupported</i> Specifies whether AWS Config records configuration changes for every supported type of regional resource. If you set this option to <code>true</code>, when AWS Config adds support for a new type of regional resource, it starts recording resources of that type automatically. If you set this option to <code>true</code>, you cannot enumerate a list of <code>resourceTypes</code>.<br/>
        :return:         """
        pass

    def put_conformance_pack(self, ConformancePackName: str, TemplateS3Uri: str=None, TemplateBody: str=None, DeliveryS3Bucket: str=None, DeliveryS3KeyPrefix: str=None, ConformancePackInputParameters: List[ConformancePackInputParameter]=None) -> PutConformancePackResponse:
        r"""Creates or updates a conformance pack. A conformance pack is a collection of AWS Config rules that can be easily deployed in an account and a region and across AWS Organization. This API creates a service linked role <code>AWSServiceRoleForConfigConforms</code> in your account. The service linked role is created only when the role does not exist in your account.  <note> You must specify either the <code>TemplateS3Uri</code> or the <code>TemplateBody</code> parameter, but not both. If you provide both AWS Config uses the <code>TemplateS3Uri</code> parameter and ignores the <code>TemplateBody</code> parameter. </note>

        :param self:
        :param ConformancePackInputParameters:  A list of <code>ConformancePackInputParameter</code> objects.<br/>DeliveryS3KeyPrefix:  The prefix for the Amazon S3 bucket.  <note> This field is optional. </note><br/>DeliveryS3Bucket:  Amazon S3 bucket where AWS Config stores conformance pack templates. <note> This field is optional. </note><br/>TemplateBody:  A string containing full conformance pack template body. Structure containing the template body with a minimum length of 1 byte and a maximum length of 51,200 bytes. <note> You can only use a YAML template with one resource type, that is, config rule and a remediation action.  </note><br/>TemplateS3Uri:  Location of file containing the template body (<code>s3://bucketname/prefix</code>). The uri must point to the conformance pack template (max size: 300 KB) that is located in an Amazon S3 bucket in the same region as the conformance pack.  <note> You must have access to read Amazon S3 bucket. </note><br/>ConformancePackName:  Name of the conformance pack you want to create.<br/>
        :return: ConformancePackArn:  ARN of the conformance pack.<br/>        """
        pass

    def put_delivery_channel(self, DeliveryChannel: DeliveryChannel):
        r"""Creates a delivery channel object to deliver configuration information to an Amazon S3 bucket and Amazon SNS topic. Before you can create a delivery channel, you must create a configuration recorder. You can use this action to change the Amazon S3 bucket or an Amazon SNS topic of the existing delivery channel. To change the Amazon S3 bucket or an Amazon SNS topic, call this action and specify the changed values for the S3 bucket and the SNS topic. If you specify a different value for either the S3 bucket or the SNS topic, this action will keep the existing value for the parameter that is not changed. <note> You can have only one delivery channel per region in your account. </note>

        :param self:
        :param DeliveryChannel:  The configuration delivery channel object that delivers the configuration information to an Amazon S3 bucket and to an Amazon SNS topic.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>configSnapshotDeliveryProperties</i> The options for how often AWS Config delivers configuration snapshots to the Amazon S3 bucket.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>configSnapshotDeliveryProperties</b>: The options for how often AWS Config delivers configuration snapshots to the Amazon S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>snsTopicARN</i> The Amazon Resource Name (ARN) of the Amazon SNS topic to which AWS Config sends notifications about configuration changes. If you choose a topic from another account, the topic must have policies that grant access permissions to AWS Config. For more information, see <a href="https://docs.aws.amazon.com/config/latest/developerguide/sns-topic-policy.html">Permissions for the Amazon SNS Topic</a> in the AWS Config Developer Guide.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>s3KmsKeyArn</i> The Amazon Resource Name (ARN) of the AWS Key Management Service (KMS) customer managed key (CMK) used to encrypt objects delivered by AWS Config. Must belong to the same Region as the destination S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>s3KeyPrefix</i> The prefix for the specified Amazon S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>s3BucketName</i> The name of the Amazon S3 bucket to which AWS Config delivers configuration snapshots and configuration history files. If you specify a bucket that belongs to another AWS account, that bucket must have policies that grant access permissions to AWS Config. For more information, see <a href="https://docs.aws.amazon.com/config/latest/developerguide/s3-bucket-policy.html">Permissions for the Amazon S3 Bucket</a> in the AWS Config Developer Guide.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the delivery channel. By default, AWS Config assigns the name "default" when creating the delivery channel. To change the delivery channel name, you must use the DeleteDeliveryChannel action to delete your current delivery channel, and then you must use the PutDeliveryChannel command to create a delivery channel that has the desired name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>deliveryFrequency</i> The frequency with which AWS Config delivers configuration snapshots.<br/>
        :return:         """
        pass

    def put_evaluations(self, ResultToken: str, Evaluations: List[Evaluation]=None, TestMode: Boolean=None) -> PutEvaluationsResponse:
        r"""Used by an AWS Lambda function to deliver evaluation results to AWS Config. This action is required in every AWS Lambda function that is invoked by an AWS Config rule.

        :param self:
        :param TestMode:  Use this parameter to specify a test run for <code>PutEvaluations</code>. You can verify whether your AWS Lambda function will deliver evaluation results to AWS Config. No updates occur to your existing evaluations, and evaluation results are not sent to AWS Config. <note> When <code>TestMode</code> is <code>true</code>, <code>PutEvaluations</code> doesn't require a valid value for the <code>ResultToken</code> parameter, but the value cannot be null. </note><br/>ResultToken:  An encrypted token that associates an evaluation with an AWS Config rule. Identifies the rule and the event that triggered the evaluation.<br/>Evaluations:  The assessments that the AWS Lambda function performs. Each evaluation identifies an AWS resource and indicates whether it complies with the AWS Config rule that invokes the AWS Lambda function.<br/>
        :return: FailedEvaluations:  Requests that failed because of a client or server error.<br/>        """
        pass

    def put_external_evaluation(self, ExternalEvaluation: ExternalEvaluation, ConfigRuleName: str) -> PutExternalEvaluationResponse:
        r"""Add or updates the evaluations for process checks. This API checks if the rule is a process check when the name of the AWS Config rule is provided.

        :param self:
        :param ExternalEvaluation:  An <code>ExternalEvaluation</code> object that provides details about compliance.:<br/>ConfigRuleName:  The name of the AWS Config rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OrderingTimestamp</i> The time when the compliance was recorded. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Annotation</i> Supplementary information about the reason of compliance. For example, this task was completed on a specific date.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ComplianceType</i> The compliance of the AWS resource. The valid values are <code>COMPLIANT, NON_COMPLIANT, </code> and <code>NOT_APPLICABLE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ComplianceResourceId</i> The evaluated compliance resource ID. AWS Config accepts only AWS account ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ComplianceResourceType</i> The evaluated compliance resource type. AWS Config accepts <code>AWS::::Account</code> resource type.<br/>
        :return:         """
        pass

    def put_organization_config_rule(self, OrganizationConfigRuleName: str, OrganizationManagedRuleMetadata: OrganizationManagedRuleMetadata=None, OrganizationCustomRuleMetadata: OrganizationCustomRuleMetadata=None, ExcludedAccounts: List[AccountId]=None) -> PutOrganizationConfigRuleResponse:
        r"""Adds or updates organization config rule for your entire organization evaluating whether your AWS resources comply with your desired configurations.  Only a master account and a delegated administrator can create or update an organization config rule. When calling this API with a delegated administrator, you must ensure AWS Organizations <code>ListDelegatedAdministrator</code> permissions are added.  This API enables organization service access through the <code>EnableAWSServiceAccess</code> action and creates a service linked role <code>AWSServiceRoleForConfigMultiAccountSetup</code> in the master or delegated administrator account of your organization. The service linked role is created only when the role does not exist in the caller account. AWS Config verifies the existence of role with <code>GetRole</code> action. To use this API with delegated administrator, register a delegated administrator by calling AWS Organization <code>register-delegated-administrator</code> for <code>config-multiaccountsetup.amazonaws.com</code>.  You can use this action to create both custom AWS Config rules and AWS managed Config rules. If you are adding a new custom AWS Config rule, you must first create AWS Lambda function in the master account or a delegated administrator that the rule invokes to evaluate your resources. When you use the <code>PutOrganizationConfigRule</code> action to add the rule to AWS Config, you must specify the Amazon Resource Name (ARN) that AWS Lambda assigns to the function. If you are adding an AWS managed Config rule, specify the rule's identifier for the <code>RuleIdentifier</code> key. The maximum number of organization config rules that AWS Config supports is 150 and 3 delegated administrator per organization.  <note> Prerequisite: Ensure you call <code>EnableAllFeatures</code> API to enable all features in an organization. Specify either <code>OrganizationCustomRuleMetadata</code> or <code>OrganizationManagedRuleMetadata</code>. </note>

        :param self:
        :param ExcludedAccounts:  A comma-separated list of accounts that you want to exclude from an organization config rule.<br/>OrganizationCustomRuleMetadata:  An <code>OrganizationCustomRuleMetadata</code> object.:<br/>OrganizationManagedRuleMetadata:  An <code>OrganizationManagedRuleMetadata</code> object. :<br/>OrganizationConfigRuleName:  The name that you assign to an organization config rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TagValueScope</i> The optional part of a key-value pair that make up a tag. A value acts as a descriptor within a tag category (key).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TagKeyScope</i> One part of a key-value pair that make up a tag. A key is a general label that acts like a category for more specific tag values. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceIdScope</i> The ID of the AWS resource that was evaluated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceTypesScope</i> The type of the AWS resource that was evaluated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaximumExecutionFrequency</i> The maximum frequency with which AWS Config runs evaluations for a rule. You are using an AWS managed rule that is triggered at a periodic frequency. <note> By default, rules with a periodic trigger are evaluated every 24 hours. To change the frequency, specify a valid value for the <code>MaximumExecutionFrequency</code> parameter. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InputParameters</i> A string, in JSON format, that is passed to organization config rule Lambda function.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RuleIdentifier</i> For organization config managed rules, a predefined identifier from a list. For example, <code>IAM_PASSWORD_POLICY</code> is a managed rule. To reference a managed rule, see <a href="https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config_use-managed-rules.html">Using AWS Managed Config Rules</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description that you provide for organization config rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TagValueScope</i> The optional part of a key-value pair that make up a tag. A value acts as a descriptor within a tag category (key). <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TagKeyScope</i> One part of a key-value pair that make up a tag. A key is a general label that acts like a category for more specific tag values. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceIdScope</i> The ID of the AWS resource that was evaluated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceTypesScope</i> The type of the AWS resource that was evaluated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaximumExecutionFrequency</i> The maximum frequency with which AWS Config runs evaluations for a rule. Your custom rule is triggered when AWS Config delivers the configuration snapshot. For more information, see <a>ConfigSnapshotDeliveryProperties</a>. <note> By default, rules with a periodic trigger are evaluated every 24 hours. To change the frequency, specify a valid value for the <code>MaximumExecutionFrequency</code> parameter. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InputParameters</i> A string, in JSON format, that is passed to organization config rule Lambda function.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OrganizationConfigRuleTriggerTypes</i> The type of notification that triggers AWS Config to run an evaluation for a rule. You can specify the following notification types: <ul> <li>  <code>ConfigurationItemChangeNotification</code> - Triggers an evaluation when AWS Config delivers a configuration item as a result of a resource change. </li> <li>  <code>OversizedConfigurationItemChangeNotification</code> - Triggers an evaluation when AWS Config delivers an oversized configuration item. AWS Config may generate this notification type when a resource changes and the notification exceeds the maximum size allowed by Amazon SNS. </li> <li>  <code>ScheduledNotification</code> - Triggers a periodic evaluation at the frequency specified for <code>MaximumExecutionFrequency</code>. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LambdaFunctionArn</i> The lambda function ARN.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description that you provide for organization config rule.<br/>
        :return: OrganizationConfigRuleArn:  The Amazon Resource Name (ARN) of an organization config rule.<br/>        """
        pass

    def put_organization_conformance_pack(self, OrganizationConformancePackName: str, TemplateS3Uri: str=None, TemplateBody: str=None, DeliveryS3Bucket: str=None, DeliveryS3KeyPrefix: str=None, ConformancePackInputParameters: List[ConformancePackInputParameter]=None, ExcludedAccounts: List[AccountId]=None) -> PutOrganizationConformancePackResponse:
        r"""Deploys conformance packs across member accounts in an AWS Organization. Only a master account and a delegated administrator can call this API. When calling this API with a delegated administrator, you must ensure AWS Organizations <code>ListDelegatedAdministrator</code> permissions are added. This API enables organization service access for <code>config-multiaccountsetup.amazonaws.com</code> through the <code>EnableAWSServiceAccess</code> action and creates a service linked role <code>AWSServiceRoleForConfigMultiAccountSetup</code> in the master or delegated administrator account of your organization. The service linked role is created only when the role does not exist in the caller account. To use this API with delegated administrator, register a delegated administrator by calling AWS Organization <code>register-delegate-admin</code> for <code>config-multiaccountsetup.amazonaws.com</code>. <note> Prerequisite: Ensure you call <code>EnableAllFeatures</code> API to enable all features in an organization. You must specify either the <code>TemplateS3Uri</code> or the <code>TemplateBody</code> parameter, but not both. If you provide both AWS Config uses the <code>TemplateS3Uri</code> parameter and ignores the <code>TemplateBody</code> parameter. AWS Config sets the state of a conformance pack to CREATE_IN_PROGRESS and UPDATE_IN_PROGRESS until the conformance pack is created or updated. You cannot update a conformance pack while it is in this state. You can create 50 conformance packs with 25 AWS Config rules in each pack and 3 delegated administrator per organization.  </note>

        :param self:
        :param ExcludedAccounts:  A list of AWS accounts to be excluded from an organization conformance pack while deploying a conformance pack.<br/>ConformancePackInputParameters:  A list of <code>ConformancePackInputParameter</code> objects.<br/>DeliveryS3KeyPrefix:  The prefix for the Amazon S3 bucket. <note> This field is optional. </note><br/>DeliveryS3Bucket:  Amazon S3 bucket where AWS Config stores conformance pack templates. <note> This field is optional. If used, it must be prefixed with <code>awsconfigconforms</code>. </note><br/>TemplateBody:  A string containing full conformance pack template body. Structure containing the template body with a minimum length of 1 byte and a maximum length of 51,200 bytes.<br/>TemplateS3Uri:  Location of file containing the template body. The uri must point to the conformance pack template (max size: 300 KB). <note> You must have access to read Amazon S3 bucket. </note><br/>OrganizationConformancePackName:  Name of the organization conformance pack you want to create.<br/>
        :return: OrganizationConformancePackArn:  ARN of the organization conformance pack.<br/>        """
        pass

    def put_remediation_configurations(self, RemediationConfigurations: List[RemediationConfiguration]) -> PutRemediationConfigurationsResponse:
        r"""Adds or updates the remediation configuration with a specific AWS Config rule with the selected target or action. The API creates the <code>RemediationConfiguration</code> object for the AWS Config rule. The AWS Config rule must already exist for you to add a remediation configuration. The target (SSM document) must exist and have permissions to use the target.  <note> If you make backward incompatible changes to the SSM document, you must call this again to ensure the remediations can run. This API does not support adding remediation configurations for service-linked AWS Config Rules such as Organization Config rules, the rules deployed by conformance packs, and rules deployed by AWS Security Hub. </note>

        :param self:
        :param RemediationConfigurations:  A list of remediation configuration objects.<br/>
        :return: FailedBatches:  Returns a list of failed remediation batch objects.<br/>        """
        pass

    def put_remediation_exceptions(self, ResourceKeys: List[RemediationExceptionResourceKey], ConfigRuleName: str, Message: str=None, ExpirationTime: Date=None) -> PutRemediationExceptionsResponse:
        r"""A remediation exception is when a specific resource is no longer considered for auto-remediation. This API adds a new exception or updates an existing exception for a specific resource with a specific AWS Config rule.  <note> AWS Config generates a remediation exception when a problem occurs executing a remediation action to a specific resource. Remediation exceptions blocks auto-remediation until the exception is cleared. </note>

        :param self:
        :param ExpirationTime:  The exception is automatically deleted after the expiration date.<br/>Message:  The message contains an explanation of the exception.<br/>ResourceKeys:  An exception list of resource exception keys to be processed with the current request. AWS Config adds exception for each resource key. For example, AWS Config adds 3 exceptions for 3 resource keys. <br/>ConfigRuleName:  The name of the AWS Config rule for which you want to create remediation exception.<br/>
        :return: FailedBatches:  Returns a list of failed remediation exceptions batch objects. Each object in the batch consists of a list of failed items and failure messages.<br/>        """
        pass

    def put_resource_config(self, Configuration: str, ResourceId: str, SchemaVersionId: str, ResourceType: str, ResourceName: str=None, Tags: Tags=None):
        r"""Records the configuration state for the resource provided in the request. The configuration state of a resource is represented in AWS Config as Configuration Items. Once this API records the configuration item, you can retrieve the list of configuration items for the custom resource type using existing AWS Config APIs.  <note> The custom resource type must be registered with AWS CloudFormation. This API accepts the configuration item registered with AWS CloudFormation. When you call this API, AWS Config only stores configuration state of the resource provided in the request. This API does not change or remediate the configuration of the resource.  Write-only schema properites are not recorded as part of the published configuration item. </note>

        :param self:
        :param Tags:  Tags associated with the resource.<br/>Configuration:  The configuration object of the resource in valid JSON format. It must match the schema registered with AWS CloudFormation. <note> The configuration JSON must not exceed 64 KB. </note><br/>ResourceName:  Name of the resource.<br/>ResourceId:  Unique identifier of the resource.<br/>SchemaVersionId:  Version of the schema registered for the ResourceType in AWS CloudFormation.<br/>ResourceType:  The type of the resource. The custom resource type must be registered with AWS CloudFormation.  <note> You cannot use the organization names “aws”, “amzn”, “amazon”, “alexa”, “custom” with custom resource types. It is the first part of the ResourceType up to the first ::. </note><br/>
        :return:         """
        pass

    def put_retention_configuration(self, RetentionPeriodInDays: int) -> PutRetentionConfigurationResponse:
        r"""Creates and updates the retention configuration with details about retention period (number of days) that AWS Config stores your historical information. The API creates the <code>RetentionConfiguration</code> object and names the object as <b>default</b>. When you have a <code>RetentionConfiguration</code> object named <b>default</b>, calling the API modifies the default object.  <note> Currently, AWS Config supports only one retention configuration per region in your account. </note>

        :param self:
        :param RetentionPeriodInDays:  Number of days AWS Config stores your historical information. <note> Currently, only applicable to the configuration item history. </note><br/>
        :return: RetentionConfiguration:  Returns a retention configuration object.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RetentionPeriodInDays</i> Number of days AWS Config stores your historical information. <note> Currently, only applicable to the configuration item history. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the retention configuration object.<br/>        """
        pass

    def put_stored_query(self, StoredQuery: StoredQuery, Tags: List[Tag]=None) -> PutStoredQueryResponse:
        r"""Saves a new query or updates an existing saved query. The <code>QueryName</code> must be unique for a single AWS account and a single AWS Region. You can create upto 300 queries in a single AWS account and a single AWS Region.

        :param self:
        :param Tags:  A list of <code>Tags</code> object.<br/>StoredQuery:  A list of <code>StoredQuery</code> objects. The mandatory fields are <code>QueryName</code> and <code>Expression</code>. <note> When you are creating a query, you must provide a query name and an expression. When you are updating a query, you must provide a query name but updating the description is optional. </note>:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Expression</i> The expression of the query. For example, <code>SELECT resourceId, resourceType, supplementaryConfiguration.BucketVersioningConfiguration.status WHERE resourceType = 'AWS::S3::Bucket' AND supplementaryConfiguration.BucketVersioningConfiguration.status = 'Off'.</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A unique description for the query.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>QueryName</i> The name of the query.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>QueryArn</i> Amazon Resource Name (ARN) of the query. For example, arn:partition:service:region:account-id:resource-type/resource-name/resource-id.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>QueryId</i> The ID of the query.<br/>
        :return: QueryArn:  Amazon Resource Name (ARN) of the query. For example, arn:partition:service:region:account-id:resource-type/resource-name/resource-id.<br/>        """
        pass

    def select_aggregate_resource_config(self, ConfigurationAggregatorName: str, Expression: str, Limit: int=None, MaxResults: int=None, NextToken: str=None) -> SelectAggregateResourceConfigResponse:
        r"""Accepts a structured query language (SQL) SELECT command and an aggregator to query configuration state of AWS resources across multiple accounts and regions, performs the corresponding search, and returns resource configurations matching the properties. For more information about query components, see the <a href="https://docs.aws.amazon.com/config/latest/developerguide/query-components.html"> <b>Query Components</b> </a> section in the AWS Config Developer Guide.

        :param self:
        :param NextToken:  The nextToken string returned in a previous request that you use to request the next page of results in a paginated response. <br/>MaxResults:  The maximum number of query results returned on each page. AWS Config also allows the Limit request parameter.<br/>Limit:  The maximum number of query results returned on each page. <br/>ConfigurationAggregatorName:  The name of the configuration aggregator.<br/>Expression:  The SQL query SELECT command. <br/>
        :return: NextToken:  The nextToken string returned in a previous request that you use to request the next page of results in a paginated response. <br/>QueryInfo:  Details about the query.:<br/>Results:  Returns the results for the SQL query.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SelectFields</i> Returns a <code>FieldInfo</code> object.<br/>        """
        pass

    def select_resource_config(self, Expression: str, Limit: int=None, NextToken: str=None) -> SelectResourceConfigResponse:
        r"""Accepts a structured query language (SQL) <code>SELECT</code> command, performs the corresponding search, and returns resource configurations matching the properties. For more information about query components, see the <a href="https://docs.aws.amazon.com/config/latest/developerguide/query-components.html"> <b>Query Components</b> </a> section in the AWS Config Developer Guide.

        :param self:
        :param NextToken:  The <code>nextToken</code> string returned in a previous request that you use to request the next page of results in a paginated response. <br/>Limit:  The maximum number of query results returned on each page. <br/>Expression:  The SQL query <code>SELECT</code> command.<br/>
        :return: NextToken:  The <code>nextToken</code> string returned in a previous request that you use to request the next page of results in a paginated response. <br/>QueryInfo:  Returns the <code>QueryInfo</code> object.:<br/>Results:  Returns the results for the SQL query.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SelectFields</i> Returns a <code>FieldInfo</code> object.<br/>        """
        pass

    def start_config_rules_evaluation(self, ConfigRuleNames: List[ConfigRuleName]=None) -> StartConfigRulesEvaluationResponse:
        r"""Runs an on-demand evaluation for the specified AWS Config rules against the last known configuration state of the resources. Use <code>StartConfigRulesEvaluation</code> when you want to test that a rule you updated is working as expected. <code>StartConfigRulesEvaluation</code> does not re-record the latest configuration state for your resources. It re-runs an evaluation against the last known state of your resources.  You can specify up to 25 AWS Config rules per request.  An existing <code>StartConfigRulesEvaluation</code> call for the specified rules must complete before you can call the API again. If you chose to have AWS Config stream to an Amazon SNS topic, you will receive a <code>ConfigRuleEvaluationStarted</code> notification when the evaluation starts. <note> You don't need to call the <code>StartConfigRulesEvaluation</code> API to run an evaluation for a new rule. When you create a rule, AWS Config evaluates your resources against the rule automatically.  </note> The <code>StartConfigRulesEvaluation</code> API is useful if you want to run on-demand evaluations, such as the following example: <ol> <li> You have a custom rule that evaluates your IAM resources every 24 hours. </li> <li> You update your Lambda function to add additional conditions to your rule. </li> <li> Instead of waiting for the next periodic evaluation, you call the <code>StartConfigRulesEvaluation</code> API. </li> <li> AWS Config invokes your Lambda function and evaluates your IAM resources. </li> <li> Your custom rule will still run periodic evaluations every 24 hours. </li> </ol>

        :param self:
        :param ConfigRuleNames:  The list of names of AWS Config rules that you want to run evaluations for.<br/>
        :return:         """
        pass

    def start_configuration_recorder(self, ConfigurationRecorderName: str):
        r"""Starts recording configurations of the AWS resources you have selected to record in your AWS account. You must have created at least one delivery channel to successfully start the configuration recorder.

        :param self:
        :param ConfigurationRecorderName:  The name of the recorder object that records each configuration change made to the resources.<br/>
        :return:         """
        pass

    def start_remediation_execution(self, ResourceKeys: List[ResourceKey], ConfigRuleName: str) -> StartRemediationExecutionResponse:
        r"""Runs an on-demand remediation for the specified AWS Config rules against the last known remediation configuration. It runs an execution against the current state of your resources. Remediation execution is asynchronous. You can specify up to 100 resource keys per request. An existing StartRemediationExecution call for the specified resource keys must complete before you can call the API again.

        :param self:
        :param ResourceKeys:  A list of resource keys to be processed with the current request. Each element in the list consists of the resource type and resource ID. <br/>ConfigRuleName:  The list of names of AWS Config rules that you want to run remediation execution for.<br/>
        :return: FailedItems:  For resources that have failed to start execution, the API returns a resource key object.<br/>FailureMessage:  Returns a failure message. For example, the resource is already compliant.<br/>        """
        pass

    def stop_configuration_recorder(self, ConfigurationRecorderName: str):
        r"""Stops recording configurations of the AWS resources you have selected to record in your AWS account.

        :param self:
        :param ConfigurationRecorderName:  The name of the recorder object that records each configuration change made to the resources.<br/>
        :return:         """
        pass

    def tag_resource(self, Tags: List[Tag], ResourceArn: str):
        r"""Associates the specified tags to a resource with the specified resourceArn. If existing tags on a resource are not specified in the request parameters, they are not changed. When a resource is deleted, the tags associated with that resource are deleted as well.

        :param self:
        :param Tags:  An array of tag object.<br/>ResourceArn:  The Amazon Resource Name (ARN) that identifies the resource for which to list the tags. Currently, the supported resources are <code>ConfigRule</code>, <code>ConfigurationAggregator</code> and <code>AggregatorAuthorization</code>.<br/>
        :return:         """
        pass

    def untag_resource(self, TagKeys: List[TagKey], ResourceArn: str):
        r"""Deletes specified tags from a resource.

        :param self:
        :param TagKeys:  The keys of the tags to be removed.<br/>ResourceArn:  The Amazon Resource Name (ARN) that identifies the resource for which to list the tags. Currently, the supported resources are <code>ConfigRule</code>, <code>ConfigurationAggregator</code> and <code>AggregatorAuthorization</code>.<br/>
        :return:         """
        pass





class Connect(BaseClient):
    r"""Amazon Connect is a cloud-based contact center solution that you use to set up and manage a customer contact center and provide reliable customer engagement at any scale. Amazon Connect provides metrics and real-time reporting that enable you to optimize contact routing. You can also resolve customer issues more efficiently by getting customers in touch with the appropriate agents. There are limits to the number of Amazon Connect resources that you can create. There are also limits to the number of requests that you can make per second. For more information, see <a href="https://docs.aws.amazon.com/connect/latest/adminguide/amazon-connect-service-limits.html">Amazon Connect Service Quotas</a> in the <i>Amazon Connect Administrator Guide</i>. You can connect programmatically to an AWS service by using an endpoint. For a list of Amazon Connect endpoints, see <a href="https://docs.aws.amazon.com/general/latest/gr/connect_region.html">Amazon Connect Endpoints</a>. <note> Working with contact flows? Check out the <a href="https://docs.aws.amazon.com/connect/latest/adminguide/flow-language.html">Amazon Connect Flow language</a>. </note>"""


    class GetMetricDataPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_metric_data` for valid parameters"""
            pass
    class ListRoutingProfilesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_routing_profiles` for valid parameters"""
            pass
    class ListSecurityProfilesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_security_profiles` for valid parameters"""
            pass
    class ListUserHierarchyGroupsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_user_hierarchy_groups` for valid parameters"""
            pass
    class ListUsersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_users` for valid parameters"""
            pass
    class ListContactFlowsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_contact_flows` for valid parameters"""
            pass
    class ListHoursOfOperationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_hours_of_operations` for valid parameters"""
            pass
    class ListPhoneNumbersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_phone_numbers` for valid parameters"""
            pass
    class ListQueuesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_queues` for valid parameters"""
            pass
    class ListPromptsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_prompts` for valid parameters"""
            pass
    class ListRoutingProfileQueuesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_routing_profile_queues` for valid parameters"""
            pass
    class ListApprovedOriginsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_approved_origins` for valid parameters"""
            pass
    class ListInstanceAttributesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_instance_attributes` for valid parameters"""
            pass
    class ListInstanceStorageConfigsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_instance_storage_configs` for valid parameters"""
            pass
    class ListInstancesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_instances` for valid parameters"""
            pass
    class ListLambdaFunctionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_lambda_functions` for valid parameters"""
            pass
    class ListLexBotsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_lex_bots` for valid parameters"""
            pass
    class ListSecurityKeysPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_security_keys` for valid parameters"""
            pass
    class ListIntegrationAssociationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_integration_associations` for valid parameters"""
            pass
    class ListUseCasesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_use_cases` for valid parameters"""
            pass
    class ListQuickConnectsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_quick_connects` for valid parameters"""
            pass
    class ListQueueQuickConnectsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_queue_quick_connects` for valid parameters"""
            pass
    class ListBotsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_bots` for valid parameters"""
            pass


    class AssociateApprovedOriginRequest(Mapping):
        pass
    
    class AssociateBotRequest(Mapping):
        pass
    
    class LexBot(Mapping):
        pass
    
    class LexV2Bot(Mapping):
        pass
    
    class AssociateInstanceStorageConfigRequest(Mapping):
        pass
    
    class AssociateInstanceStorageConfigResponse(Mapping):
        pass
    
    class InstanceStorageConfig(Mapping):
        pass
    
    class AssociateLambdaFunctionRequest(Mapping):
        pass
    
    class AssociateLexBotRequest(Mapping):
        pass
    
    class AssociateQueueQuickConnectsRequest(Mapping):
        pass
    
    class QuickConnectId(object):
        pass
    
    class AssociateRoutingProfileQueuesRequest(Mapping):
        pass
    
    class RoutingProfileQueueConfig(Mapping):
        pass
    
    class AssociateSecurityKeyRequest(Mapping):
        pass
    
    class AssociateSecurityKeyResponse(Mapping):
        pass
    
    class CreateContactFlowRequest(Mapping):
        pass
    
    class CreateContactFlowResponse(Mapping):
        pass
    
    class TagMap(object):
        pass
    
    class CreateInstanceRequest(Mapping):
        pass
    
    class CreateInstanceResponse(Mapping):
        pass
    
    class InboundCallsEnabled(object):
        pass
    
    class OutboundCallsEnabled(object):
        pass
    
    class CreateIntegrationAssociationRequest(Mapping):
        pass
    
    class CreateIntegrationAssociationResponse(Mapping):
        pass
    
    class CreateQueueRequest(Mapping):
        pass
    
    class CreateQueueResponse(Mapping):
        pass
    
    class OutboundCallerConfig(Mapping):
        pass
    
    class CreateQuickConnectRequest(Mapping):
        pass
    
    class CreateQuickConnectResponse(Mapping):
        pass
    
    class QuickConnectConfig(Mapping):
        pass
    
    class CreateRoutingProfileRequest(Mapping):
        pass
    
    class CreateRoutingProfileResponse(Mapping):
        pass
    
    class MediaConcurrency(Mapping):
        pass
    
    class CreateUseCaseRequest(Mapping):
        pass
    
    class CreateUseCaseResponse(Mapping):
        pass
    
    class CreateUserRequest(Mapping):
        pass
    
    class CreateUserResponse(Mapping):
        pass
    
    class UserIdentityInfo(Mapping):
        pass
    
    class UserPhoneConfig(Mapping):
        pass
    
    class SecurityProfileId(object):
        pass
    
    class CreateUserHierarchyGroupRequest(Mapping):
        pass
    
    class CreateUserHierarchyGroupResponse(Mapping):
        pass
    
    class DeleteInstanceRequest(Mapping):
        pass
    
    class DeleteIntegrationAssociationRequest(Mapping):
        pass
    
    class DeleteQuickConnectRequest(Mapping):
        pass
    
    class DeleteUseCaseRequest(Mapping):
        pass
    
    class DeleteUserRequest(Mapping):
        pass
    
    class DeleteUserHierarchyGroupRequest(Mapping):
        pass
    
    class DescribeContactFlowRequest(Mapping):
        pass
    
    class DescribeContactFlowResponse(Mapping):
        pass
    
    class DescribeHoursOfOperationRequest(Mapping):
        pass
    
    class DescribeHoursOfOperationResponse(Mapping):
        pass
    
    class DescribeInstanceRequest(Mapping):
        pass
    
    class DescribeInstanceResponse(Mapping):
        pass
    
    class DescribeInstanceAttributeRequest(Mapping):
        pass
    
    class DescribeInstanceAttributeResponse(Mapping):
        pass
    
    class DescribeInstanceStorageConfigRequest(Mapping):
        pass
    
    class DescribeInstanceStorageConfigResponse(Mapping):
        pass
    
    class DescribeQueueRequest(Mapping):
        pass
    
    class DescribeQueueResponse(Mapping):
        pass
    
    class DescribeQuickConnectRequest(Mapping):
        pass
    
    class DescribeQuickConnectResponse(Mapping):
        pass
    
    class DescribeRoutingProfileRequest(Mapping):
        pass
    
    class DescribeRoutingProfileResponse(Mapping):
        pass
    
    class DescribeUserRequest(Mapping):
        pass
    
    class DescribeUserResponse(Mapping):
        pass
    
    class DescribeUserHierarchyGroupRequest(Mapping):
        pass
    
    class DescribeUserHierarchyGroupResponse(Mapping):
        pass
    
    class DescribeUserHierarchyStructureRequest(Mapping):
        pass
    
    class DescribeUserHierarchyStructureResponse(Mapping):
        pass
    
    class DisassociateApprovedOriginRequest(Mapping):
        pass
    
    class DisassociateBotRequest(Mapping):
        pass
    
    class DisassociateInstanceStorageConfigRequest(Mapping):
        pass
    
    class DisassociateLambdaFunctionRequest(Mapping):
        pass
    
    class DisassociateLexBotRequest(Mapping):
        pass
    
    class DisassociateQueueQuickConnectsRequest(Mapping):
        pass
    
    class DisassociateRoutingProfileQueuesRequest(Mapping):
        pass
    
    class RoutingProfileQueueReference(Mapping):
        pass
    
    class DisassociateSecurityKeyRequest(Mapping):
        pass
    
    class GetContactAttributesRequest(Mapping):
        pass
    
    class GetContactAttributesResponse(Mapping):
        pass
    
    class GetCurrentMetricDataRequest(Mapping):
        pass
    
    class GetCurrentMetricDataResponse(Mapping):
        pass
    
    class Filters(Mapping):
        pass
    
    class Grouping(object):
        pass
    
    class CurrentMetric(Mapping):
        pass
    
    class GetFederationTokenRequest(Mapping):
        pass
    
    class GetFederationTokenResponse(Mapping):
        pass
    
    class GetMetricDataRequest(Mapping):
        pass
    
    class GetMetricDataResponse(Mapping):
        pass
    
    class timestamp(object):
        pass
    
    class HistoricalMetric(Mapping):
        pass
    
    class ListApprovedOriginsRequest(Mapping):
        pass
    
    class ListApprovedOriginsResponse(Mapping):
        pass
    
    class ListBotsRequest(Mapping):
        pass
    
    class ListBotsResponse(Mapping):
        pass
    
    class ListContactFlowsRequest(Mapping):
        pass
    
    class ListContactFlowsResponse(Mapping):
        pass
    
    class ContactFlowType(object):
        pass
    
    class ListHoursOfOperationsRequest(Mapping):
        pass
    
    class ListHoursOfOperationsResponse(Mapping):
        pass
    
    class ListInstanceAttributesRequest(Mapping):
        pass
    
    class ListInstanceAttributesResponse(Mapping):
        pass
    
    class ListInstanceStorageConfigsRequest(Mapping):
        pass
    
    class ListInstanceStorageConfigsResponse(Mapping):
        pass
    
    class ListInstancesRequest(Mapping):
        pass
    
    class ListInstancesResponse(Mapping):
        pass
    
    class ListIntegrationAssociationsRequest(Mapping):
        pass
    
    class ListIntegrationAssociationsResponse(Mapping):
        pass
    
    class ListLambdaFunctionsRequest(Mapping):
        pass
    
    class ListLambdaFunctionsResponse(Mapping):
        pass
    
    class ListLexBotsRequest(Mapping):
        pass
    
    class ListLexBotsResponse(Mapping):
        pass
    
    class ListPhoneNumbersRequest(Mapping):
        pass
    
    class ListPhoneNumbersResponse(Mapping):
        pass
    
    class PhoneNumberType(object):
        pass
    
    class PhoneNumberCountryCode(object):
        pass
    
    class ListPromptsRequest(Mapping):
        pass
    
    class ListPromptsResponse(Mapping):
        pass
    
    class ListQueueQuickConnectsRequest(Mapping):
        pass
    
    class ListQueueQuickConnectsResponse(Mapping):
        pass
    
    class ListQueuesRequest(Mapping):
        pass
    
    class ListQueuesResponse(Mapping):
        pass
    
    class QueueType(object):
        pass
    
    class ListQuickConnectsRequest(Mapping):
        pass
    
    class ListQuickConnectsResponse(Mapping):
        pass
    
    class QuickConnectType(object):
        pass
    
    class ListRoutingProfileQueuesRequest(Mapping):
        pass
    
    class ListRoutingProfileQueuesResponse(Mapping):
        pass
    
    class ListRoutingProfilesRequest(Mapping):
        pass
    
    class ListRoutingProfilesResponse(Mapping):
        pass
    
    class ListSecurityKeysRequest(Mapping):
        pass
    
    class ListSecurityKeysResponse(Mapping):
        pass
    
    class ListSecurityProfilesRequest(Mapping):
        pass
    
    class ListSecurityProfilesResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class ListUseCasesRequest(Mapping):
        pass
    
    class ListUseCasesResponse(Mapping):
        pass
    
    class ListUserHierarchyGroupsRequest(Mapping):
        pass
    
    class ListUserHierarchyGroupsResponse(Mapping):
        pass
    
    class ListUsersRequest(Mapping):
        pass
    
    class ListUsersResponse(Mapping):
        pass
    
    class ResumeContactRecordingRequest(Mapping):
        pass
    
    class ResumeContactRecordingResponse(Mapping):
        pass
    
    class StartChatContactRequest(Mapping):
        pass
    
    class StartChatContactResponse(Mapping):
        pass
    
    class Attributes(object):
        pass
    
    class ParticipantDetails(Mapping):
        pass
    
    class ChatMessage(Mapping):
        pass
    
    class StartContactRecordingRequest(Mapping):
        pass
    
    class StartContactRecordingResponse(Mapping):
        pass
    
    class VoiceRecordingConfiguration(Mapping):
        pass
    
    class StartOutboundVoiceContactRequest(Mapping):
        pass
    
    class StartOutboundVoiceContactResponse(Mapping):
        pass
    
    class StartTaskContactRequest(Mapping):
        pass
    
    class StartTaskContactResponse(Mapping):
        pass
    
    class ContactReferences(object):
        pass
    
    class StopContactRequest(Mapping):
        pass
    
    class StopContactResponse(Mapping):
        pass
    
    class StopContactRecordingRequest(Mapping):
        pass
    
    class StopContactRecordingResponse(Mapping):
        pass
    
    class SuspendContactRecordingRequest(Mapping):
        pass
    
    class SuspendContactRecordingResponse(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateContactAttributesRequest(Mapping):
        pass
    
    class UpdateContactAttributesResponse(Mapping):
        pass
    
    class UpdateContactFlowContentRequest(Mapping):
        pass
    
    class UpdateContactFlowNameRequest(Mapping):
        pass
    
    class UpdateInstanceAttributeRequest(Mapping):
        pass
    
    class UpdateInstanceStorageConfigRequest(Mapping):
        pass
    
    class UpdateQueueHoursOfOperationRequest(Mapping):
        pass
    
    class UpdateQueueMaxContactsRequest(Mapping):
        pass
    
    class UpdateQueueNameRequest(Mapping):
        pass
    
    class UpdateQueueOutboundCallerConfigRequest(Mapping):
        pass
    
    class UpdateQueueStatusRequest(Mapping):
        pass
    
    class UpdateQuickConnectConfigRequest(Mapping):
        pass
    
    class UpdateQuickConnectNameRequest(Mapping):
        pass
    
    class UpdateRoutingProfileConcurrencyRequest(Mapping):
        pass
    
    class UpdateRoutingProfileDefaultOutboundQueueRequest(Mapping):
        pass
    
    class UpdateRoutingProfileNameRequest(Mapping):
        pass
    
    class UpdateRoutingProfileQueuesRequest(Mapping):
        pass
    
    class UpdateUserHierarchyRequest(Mapping):
        pass
    
    class UpdateUserHierarchyGroupNameRequest(Mapping):
        pass
    
    class UpdateUserHierarchyStructureRequest(Mapping):
        pass
    
    class HierarchyStructureUpdate(Mapping):
        pass
    
    class UpdateUserIdentityInfoRequest(Mapping):
        pass
    
    class UpdateUserPhoneConfigRequest(Mapping):
        pass
    
    class UpdateUserRoutingProfileRequest(Mapping):
        pass
    
    class UpdateUserSecurityProfilesRequest(Mapping):
        pass
    
    def associate_approved_origin(self, Origin: str, InstanceId: str):
        r"""This API is in preview release for Amazon Connect and is subject to change. Associates an approved origin to an Amazon Connect instance.

        :param self:
        :param Origin:  The domain to add to your allow list.<br/>InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>
        :return:         """
        pass

    def associate_bot(self, InstanceId: str, LexBot: LexBot=None, LexV2Bot: LexV2Bot=None):
        r"""This API is in preview release for Amazon Connect and is subject to change. Allows the specified Amazon Connect instance to access the specified Amazon Lex or Amazon Lex V2 bot.

        :param self:
        :param LexV2Bot:  The Amazon Lex V2 bot to associate with the instance.:<br/>LexBot:  Configuration information of an Amazon Lex bot.:<br/>InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LexRegion</i> The Region that the Amazon Lex bot was created in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the Amazon Lex bot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AliasArn</i> The Amazon Resource Name (ARN) of the Amazon Lex V2 bot.<br/>
        :return:         """
        pass

    def associate_instance_storage_config(self, StorageConfig: InstanceStorageConfig, ResourceType: str, InstanceId: str) -> AssociateInstanceStorageConfigResponse:
        r"""This API is in preview release for Amazon Connect and is subject to change. Associates a storage resource type for the first time. You can only associate one type of storage configuration in a single call. This means, for example, that you can't define an instance with multiple S3 buckets for storing chat transcripts. This API does not create a resource that doesn't exist. It only associates it to the instance. Ensure that the resource being specified in the storage configuration, like an S3 bucket, exists when being used for association.

        :param self:
        :param StorageConfig:  A valid storage type.:<br/>ResourceType:  A valid resource type.<br/>InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KinesisFirehoseConfig</i> The configuration of the Kinesis Firehose delivery stream.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>KinesisFirehoseConfig</b>: The configuration of the Kinesis Firehose delivery stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KinesisStreamConfig</i> The configuration of the Kinesis data stream.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>KinesisStreamConfig</b>: The configuration of the Kinesis data stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KinesisVideoStreamConfig</i> The configuration of the Kinesis video stream.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>KinesisVideoStreamConfig</b>: The configuration of the Kinesis video stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Config</i> The S3 bucket configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3Config</b>: The S3 bucket configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageType</i> A valid storage type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociationId</i> The existing association identifier that uniquely identifies the resource type and storage config for the given instance ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BucketPrefix</i> The S3 bucket prefix.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BucketName</i> The S3 bucket name.<br/>The Amazon S3 encryption configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EncryptionConfig</b>: The Amazon S3 encryption configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RetentionPeriodHours</i> The number of hours data is retained in the stream. Kinesis Video Streams retains the data in a data store that is associated with the stream. The default value is 0, indicating that the stream does not persist data.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Prefix</i> The prefix of the video stream.<br/>The encryption configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EncryptionConfig</b>: The encryption configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamArn</i> The Amazon Resource Name (ARN) of the data stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FirehoseArn</i> The Amazon Resource Name (ARN) of the delivery stream.<br/>
        :return: AssociationId:  The existing association identifier that uniquely identifies the resource type and storage config for the given instance ID.<br/>        """
        pass

    def associate_lambda_function(self, FunctionArn: str, InstanceId: str):
        r"""This API is in preview release for Amazon Connect and is subject to change. Allows the specified Amazon Connect instance to access the specified Lambda function.

        :param self:
        :param FunctionArn:  The Amazon Resource Name (ARN) for the Lambda function being associated. Maximum number of characters allowed is 140.<br/>InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>
        :return:         """
        pass

    def associate_lex_bot(self, LexBot: LexBot, InstanceId: str):
        r"""This API is in preview release for Amazon Connect and is subject to change. Allows the specified Amazon Connect instance to access the specified Amazon Lex bot.

        :param self:
        :param LexBot:  The Amazon Lex bot to associate with the instance.:<br/>InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LexRegion</i> The Region that the Amazon Lex bot was created in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the Amazon Lex bot.<br/>
        :return:         """
        pass

    def associate_queue_quick_connects(self, QuickConnectIds: List[QuickConnectId], QueueId: str, InstanceId: str):
        r"""This API is in preview release for Amazon Connect and is subject to change. Associates a set of quick connects with a queue.

        :param self:
        :param QuickConnectIds:  The quick connects to associate with this queue.<br/>QueueId:  The identifier for the queue.<br/>InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>
        :return:         """
        pass

    def associate_routing_profile_queues(self, QueueConfigs: List[RoutingProfileQueueConfig], RoutingProfileId: str, InstanceId: str):
        r"""Associates a set of queues with a routing profile.

        :param self:
        :param QueueConfigs:  The queues to associate with this routing profile.<br/>RoutingProfileId:  The identifier of the routing profile.<br/>InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>
        :return:         """
        pass

    def associate_security_key(self, Key: str, InstanceId: str) -> AssociateSecurityKeyResponse:
        r"""This API is in preview release for Amazon Connect and is subject to change. Associates a security key to the instance.

        :param self:
        :param Key:  A valid security key in PEM format.<br/>InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>
        :return: AssociationId:  The existing association identifier that uniquely identifies the resource type and storage config for the given instance ID.<br/>        """
        pass

    def create_contact_flow(self, Content: str, Type: str, Name: str, InstanceId: str, Description: str=None, Tags: TagMap=None) -> CreateContactFlowResponse:
        r"""Creates a contact flow for the specified Amazon Connect instance. You can also create and update contact flows using the <a href="https://docs.aws.amazon.com/connect/latest/adminguide/flow-language.html">Amazon Connect Flow language</a>.

        :param self:
        :param Tags:  One or more tags.<br/>Content:  The content of the contact flow. <br/>Description:  The description of the contact flow. <br/>Type:  The type of the contact flow. For descriptions of the available types, see <a href="https://docs.aws.amazon.com/connect/latest/adminguide/create-contact-flow.html#contact-flow-types">Choose a Contact Flow Type</a> in the <i>Amazon Connect Administrator Guide</i>.<br/>Name:  The name of the contact flow.<br/>InstanceId:  The identifier of the Amazon Connect instance.<br/>
        :return: ContactFlowArn:  The Amazon Resource Name (ARN) of the contact flow.<br/>ContactFlowId:  The identifier of the contact flow.<br/>        """
        pass

    def create_instance(self, OutboundCallsEnabled: OutboundCallsEnabled, InboundCallsEnabled: InboundCallsEnabled, IdentityManagementType: str, ClientToken: str=None, InstanceAlias: str=None, DirectoryId: str=None) -> CreateInstanceResponse:
        r"""This API is in preview release for Amazon Connect and is subject to change. Initiates an Amazon Connect instance with all the supported channels enabled. It does not attach any storage, such as Amazon Simple Storage Service (Amazon S3) or Amazon Kinesis. It also does not allow for any configurations on features, such as Contact Lens for Amazon Connect.  Amazon Connect enforces a limit on the total number of instances that you can create or delete in 30 days. If you exceed this limit, you will get an error message indicating there has been an excessive number of attempts at creating or deleting instances. You must wait 30 days before you can restart creating and deleting instances in your account.

        :param self:
        :param OutboundCallsEnabled:  Your contact center allows outbound calls.<br/>InboundCallsEnabled:  Your contact center handles incoming contacts.<br/>DirectoryId:  The identifier for the directory.<br/>InstanceAlias:  The name for your instance.<br/>IdentityManagementType:  The type of identity management for your Amazon Connect users.<br/>ClientToken:  The idempotency token.<br/>
        :return: Arn:  The Amazon Resource Name (ARN) of the instance.<br/>Id:  The identifier for the instance.<br/>        """
        pass

    def create_integration_association(self, SourceType: str, SourceApplicationName: str, SourceApplicationUrl: str, IntegrationArn: str, IntegrationType: str, InstanceId: str, Tags: TagMap=None) -> CreateIntegrationAssociationResponse:
        r"""Create an AppIntegration association with an Amazon Connect instance.

        :param self:
        :param Tags:  One or more tags.<br/>SourceType:  The type of the data source.<br/>SourceApplicationName:  The name of the external application.<br/>SourceApplicationUrl:  The URL for the external application.<br/>IntegrationArn:  The Amazon Resource Name (ARN) of the integration.<br/>IntegrationType:  The type of information to be ingested.<br/>InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>
        :return: IntegrationAssociationArn:  The Amazon Resource Name (ARN) for the association.<br/>IntegrationAssociationId:  The identifier for the association.<br/>        """
        pass

    def create_queue(self, HoursOfOperationId: str, Name: str, InstanceId: str, Description: str=None, OutboundCallerConfig: OutboundCallerConfig=None, MaxContacts: int=None, QuickConnectIds: List[QuickConnectId]=None, Tags: TagMap=None) -> CreateQueueResponse:
        r"""This API is in preview release for Amazon Connect and is subject to change. Creates a new queue for the specified Amazon Connect instance.

        :param self:
        :param Tags:  One or more tags.<br/>QuickConnectIds:  The quick connects available to agents who are working the queue.<br/>MaxContacts:  The maximum number of contacts that can be in the queue before it is considered full.<br/>HoursOfOperationId:  The identifier for the hours of operation.<br/>OutboundCallerConfig:  The outbound caller ID name, number, and outbound whisper flow.:<br/>Description:  The description of the queue.<br/>Name:  The name of the queue.<br/>InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OutboundFlowId</i> The outbound whisper flow to be used during an outbound call.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OutboundCallerIdNumberId</i> The caller ID number.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OutboundCallerIdName</i> The caller ID name.<br/>
        :return: QueueId:  The identifier for the queue.<br/>QueueArn:  The Amazon Resource Name (ARN) of the queue.<br/>        """
        pass

    def create_quick_connect(self, QuickConnectConfig: QuickConnectConfig, Name: str, InstanceId: str, Description: str=None, Tags: TagMap=None) -> CreateQuickConnectResponse:
        r"""Creates a quick connect for the specified Amazon Connect instance.

        :param self:
        :param Tags:  One or more tags.<br/>QuickConnectConfig:  Configuration settings for the quick connect.:<br/>Description:  The description of the quick connect.<br/>Name:  The name of the quick connect.<br/>InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PhoneConfig</i> The phone configuration. This is required only if QuickConnectType is PHONE_NUMBER.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PhoneConfig</b>: The phone configuration. This is required only if QuickConnectType is PHONE_NUMBER.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>QueueConfig</i> The queue configuration. This is required only if QuickConnectType is QUEUE.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>QueueConfig</b>: The queue configuration. This is required only if QuickConnectType is QUEUE.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserConfig</i> The user configuration. This is required only if QuickConnectType is USER.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>UserConfig</b>: The user configuration. This is required only if QuickConnectType is USER.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>QuickConnectType</i> The type of quick connect. In the Amazon Connect console, when you create a quick connect, you are prompted to assign one of the following types: Agent (USER), External (PHONE_NUMBER), or Queue (QUEUE). <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ContactFlowId</i> The identifier of the contact flow.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UserId</i> The identifier of the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ContactFlowId</i> The identifier of the contact flow.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>QueueId</i> The identifier for the queue.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PhoneNumber</i> The phone number in E.164 format.<br/>
        :return: QuickConnectId:  The identifier for the quick connect. <br/>QuickConnectARN:  The Amazon Resource Name (ARN) for the quick connect. <br/>        """
        pass

    def create_routing_profile(self, MediaConcurrencies: List[MediaConcurrency], DefaultOutboundQueueId: str, Description: str, Name: str, InstanceId: str, QueueConfigs: List[RoutingProfileQueueConfig]=None, Tags: TagMap=None) -> CreateRoutingProfileResponse:
        r"""Creates a new routing profile.

        :param self:
        :param Tags:  One or more tags.<br/>MediaConcurrencies:  The channels that agents can handle in the Contact Control Panel (CCP) for this routing profile.<br/>QueueConfigs:  The inbound queues associated with the routing profile. If no queue is added, the agent can make only outbound calls.<br/>DefaultOutboundQueueId:  The default outbound queue for the routing profile.<br/>Description:  Description of the routing profile. Must not be more than 250 characters.<br/>Name:  The name of the routing profile. Must not be more than 127 characters.<br/>InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>
        :return: RoutingProfileId:  The identifier of the routing profile.<br/>RoutingProfileArn:  The Amazon Resource Name (ARN) of the routing profile.<br/>        """
        pass

    def create_use_case(self, UseCaseType: str, IntegrationAssociationId: str, InstanceId: str, Tags: TagMap=None) -> CreateUseCaseResponse:
        r"""Creates a use case for an AppIntegration association.

        :param self:
        :param Tags:  One or more tags.<br/>UseCaseType:  The type of use case to associate to the AppIntegration association. Each AppIntegration association can have only one of each use case type.<br/>IntegrationAssociationId:  The identifier for the AppIntegration association.<br/>InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>
        :return: UseCaseArn:  The Amazon Resource Name (ARN) for the use case.<br/>UseCaseId:  The identifier of the use case.<br/>        """
        pass

    def create_user(self, InstanceId: str, RoutingProfileId: str, SecurityProfileIds: List[SecurityProfileId], PhoneConfig: UserPhoneConfig, Username: str, Password: str=None, IdentityInfo: UserIdentityInfo=None, DirectoryUserId: str=None, HierarchyGroupId: str=None, Tags: TagMap=None) -> CreateUserResponse:
        r"""Creates a user account for the specified Amazon Connect instance. For information about how to create user accounts using the Amazon Connect console, see <a href="https://docs.aws.amazon.com/connect/latest/adminguide/user-management.html">Add Users</a> in the <i>Amazon Connect Administrator Guide</i>.

        :param self:
        :param Tags:  One or more tags.<br/>InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>HierarchyGroupId:  The identifier of the hierarchy group for the user.<br/>RoutingProfileId:  The identifier of the routing profile for the user.<br/>SecurityProfileIds:  The identifier of the security profile for the user.<br/>DirectoryUserId:  The identifier of the user account in the directory used for identity management. If Amazon Connect cannot access the directory, you can specify this identifier to authenticate users. If you include the identifier, we assume that Amazon Connect cannot access the directory. Otherwise, the identity information is used to authenticate users from your directory. This parameter is required if you are using an existing directory for identity management in Amazon Connect when Amazon Connect cannot access your directory to authenticate users. If you are using SAML for identity management and include this parameter, an error is returned.<br/>PhoneConfig:  The phone settings for the user.:<br/>IdentityInfo:  The information about the identity of the user.:<br/>Password:  The password for the user account. A password is required if you are using Amazon Connect for identity management. Otherwise, it is an error to include a password.<br/>Username:  The user name for the account. For instances not using SAML for identity management, the user name can include up to 20 characters. If you are using SAML for identity management, the user name can include up to 64 characters from [a-zA-Z0-9_-.\@]+.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Email</i> The email address. If you are using SAML for identity management and include this parameter, an error is returned.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastName</i> The last name. This is required if you are using Amazon Connect or SAML for identity management.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FirstName</i> The first name. This is required if you are using Amazon Connect or SAML for identity management.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeskPhoneNumber</i> The phone number for the user's desk phone.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AfterContactWorkTimeLimit</i> The After Call Work (ACW) timeout setting, in seconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoAccept</i> The Auto accept setting.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PhoneType</i> The phone type.<br/>
        :return: UserArn:  The Amazon Resource Name (ARN) of the user account.<br/>UserId:  The identifier of the user account.<br/>        """
        pass

    def create_user_hierarchy_group(self, InstanceId: str, Name: str, ParentGroupId: str=None) -> CreateUserHierarchyGroupResponse:
        r"""Creates a new user hierarchy group.

        :param self:
        :param InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>ParentGroupId:  The identifier for the parent hierarchy group. The user hierarchy is created at level one if the parent group ID is null.<br/>Name:  The name of the user hierarchy group. Must not be more than 100 characters.<br/>
        :return: HierarchyGroupArn:  The Amazon Resource Name (ARN) of the hierarchy group. <br/>HierarchyGroupId:  The identifier of the hierarchy group.<br/>        """
        pass

    def delete_instance(self, InstanceId: str):
        r"""This API is in preview release for Amazon Connect and is subject to change. Deletes the Amazon Connect instance. Amazon Connect enforces a limit on the total number of instances that you can create or delete in 30 days. If you exceed this limit, you will get an error message indicating there has been an excessive number of attempts at creating or deleting instances. You must wait 30 days before you can restart creating and deleting instances in your account.

        :param self:
        :param InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>
        :return:         """
        pass

    def delete_integration_association(self, IntegrationAssociationId: str, InstanceId: str):
        r"""Deletes an AppIntegration association from an Amazon Connect instance. The association must not have any use cases associated with it.

        :param self:
        :param IntegrationAssociationId:  The identifier for the AppIntegration association.<br/>InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>
        :return:         """
        pass

    def delete_quick_connect(self, QuickConnectId: str, InstanceId: str):
        r"""Deletes a quick connect.

        :param self:
        :param QuickConnectId:  The identifier for the quick connect.<br/>InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>
        :return:         """
        pass

    def delete_use_case(self, UseCaseId: str, IntegrationAssociationId: str, InstanceId: str):
        r"""Deletes a use case from an AppIntegration association.

        :param self:
        :param UseCaseId:  The identifier for the use case.<br/>IntegrationAssociationId:  The identifier for the AppIntegration association.<br/>InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>
        :return:         """
        pass

    def delete_user(self, UserId: str, InstanceId: str):
        r"""Deletes a user account from the specified Amazon Connect instance. For information about what happens to a user's data when their account is deleted, see <a href="https://docs.aws.amazon.com/connect/latest/adminguide/delete-users.html">Delete Users from Your Amazon Connect Instance</a> in the <i>Amazon Connect Administrator Guide</i>.

        :param self:
        :param UserId:  The identifier of the user.<br/>InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>
        :return:         """
        pass

    def delete_user_hierarchy_group(self, InstanceId: str, HierarchyGroupId: str):
        r"""Deletes an existing user hierarchy group. It must not be associated with any agents or have any active child groups.

        :param self:
        :param InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>HierarchyGroupId:  The identifier of the hierarchy group.<br/>
        :return:         """
        pass

    def describe_contact_flow(self, ContactFlowId: str, InstanceId: str) -> DescribeContactFlowResponse:
        r"""Describes the specified contact flow. You can also create and update contact flows using the <a href="https://docs.aws.amazon.com/connect/latest/adminguide/flow-language.html">Amazon Connect Flow language</a>.

        :param self:
        :param ContactFlowId:  The identifier of the contact flow.<br/>InstanceId:  The identifier of the Amazon Connect instance.<br/>
        :return: ContactFlow:  Information about the contact flow.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> One or more tags.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Content</i> The content of the contact flow.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the contact flow.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of the contact flow. For descriptions of the available types, see <a href="https://docs.aws.amazon.com/connect/latest/adminguide/create-contact-flow.html#contact-flow-types">Choose a Contact Flow Type</a> in the <i>Amazon Connect Administrator Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the contact flow.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The identifier of the contact flow.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the contact flow.<br/>        """
        pass

    def describe_hours_of_operation(self, HoursOfOperationId: str, InstanceId: str) -> DescribeHoursOfOperationResponse:
        r"""This API is in preview release for Amazon Connect and is subject to change. Describes the hours of operation.

        :param self:
        :param HoursOfOperationId:  The identifier for the hours of operation.<br/>InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>
        :return: HoursOfOperation:  The hours of operation.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> One or more tags.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Config</i> Configuration information for the hours of operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TimeZone</i> The time zone for the hours of operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description for the hours of operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name for the hours of operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HoursOfOperationArn</i> The Amazon Resource Name (ARN) for the hours of operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HoursOfOperationId</i> The identifier for the hours of operation.<br/>        """
        pass

    def describe_instance(self, InstanceId: str) -> DescribeInstanceResponse:
        r"""This API is in preview release for Amazon Connect and is subject to change. Returns the current state of the specified instance identifier. It tracks the instance while it is being created and returns an error status, if applicable.  If an instance is not created successfully, the instance status reason field returns details relevant to the reason. The instance in a failed state is returned only for 24 hours after the CreateInstance API was invoked.

        :param self:
        :param InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>
        :return: Instance:  The name of the instance.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OutboundCallsEnabled</i> Whether outbound calls are enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InboundCallsEnabled</i> Whether inbound calls are enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusReason</i> Relevant details why the instance was not successfully created. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StatusReason</b>: Relevant details why the instance was not successfully created. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceStatus</i> The state of the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceRole</i> The service role of the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTime</i> When the instance was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceAlias</i> The alias of instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IdentityManagementType</i> The identity management type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> The message.<br/>        """
        pass

    def describe_instance_attribute(self, AttributeType: str, InstanceId: str) -> DescribeInstanceAttributeResponse:
        r"""This API is in preview release for Amazon Connect and is subject to change. Describes the specified instance attribute.

        :param self:
        :param AttributeType:  The type of attribute.<br/>InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>
        :return: Attribute:  The type of attribute.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Value</i> The value of the attribute.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AttributeType</i> The type of attribute.<br/>        """
        pass

    def describe_instance_storage_config(self, ResourceType: str, AssociationId: str, InstanceId: str) -> DescribeInstanceStorageConfigResponse:
        r"""This API is in preview release for Amazon Connect and is subject to change. Retrieves the current storage configurations for the specified resource type, association ID, and instance ID.

        :param self:
        :param ResourceType:  A valid resource type.<br/>AssociationId:  The existing association identifier that uniquely identifies the resource type and storage config for the given instance ID.<br/>InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>
        :return: StorageConfig:  A valid storage type.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KinesisFirehoseConfig</i> The configuration of the Kinesis Firehose delivery stream.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>KinesisFirehoseConfig</b>: The configuration of the Kinesis Firehose delivery stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KinesisStreamConfig</i> The configuration of the Kinesis data stream.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>KinesisStreamConfig</b>: The configuration of the Kinesis data stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KinesisVideoStreamConfig</i> The configuration of the Kinesis video stream.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>KinesisVideoStreamConfig</b>: The configuration of the Kinesis video stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Config</i> The S3 bucket configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3Config</b>: The S3 bucket configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageType</i> A valid storage type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociationId</i> The existing association identifier that uniquely identifies the resource type and storage config for the given instance ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BucketPrefix</i> The S3 bucket prefix.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BucketName</i> The S3 bucket name.<br/>The Amazon S3 encryption configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EncryptionConfig</b>: The Amazon S3 encryption configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RetentionPeriodHours</i> The number of hours data is retained in the stream. Kinesis Video Streams retains the data in a data store that is associated with the stream. The default value is 0, indicating that the stream does not persist data.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Prefix</i> The prefix of the video stream.<br/>The encryption configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EncryptionConfig</b>: The encryption configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamArn</i> The Amazon Resource Name (ARN) of the data stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FirehoseArn</i> The Amazon Resource Name (ARN) of the delivery stream.<br/>        """
        pass

    def describe_queue(self, QueueId: str, InstanceId: str) -> DescribeQueueResponse:
        r"""This API is in preview release for Amazon Connect and is subject to change. Describes the specified queue.

        :param self:
        :param QueueId:  The identifier for the queue.<br/>InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>
        :return: Queue:  The name of the queue.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> One or more tags.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the queue.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxContacts</i> The maximum number of contacts that can be in the queue before it is considered full.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HoursOfOperationId</i> The identifier for the hours of operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OutboundCallerConfig</i> The outbound caller ID name, number, and outbound whisper flow.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>OutboundCallerConfig</b>: The outbound caller ID name, number, and outbound whisper flow.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the queue.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>QueueId</i> The identifier for the queue.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>QueueArn</i> The Amazon Resource Name (ARN) for the queue.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the queue.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OutboundFlowId</i> The outbound whisper flow to be used during an outbound call.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OutboundCallerIdNumberId</i> The caller ID number.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OutboundCallerIdName</i> The caller ID name.<br/>        """
        pass

    def describe_quick_connect(self, QuickConnectId: str, InstanceId: str) -> DescribeQuickConnectResponse:
        r"""Describes the quick connect.

        :param self:
        :param QuickConnectId:  The identifier for the quick connect.<br/>InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>
        :return: QuickConnect:  Information about the quick connect.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> One or more tags.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>QuickConnectConfig</i> Contains information about the quick connect.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>QuickConnectConfig</b>: Contains information about the quick connect.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the quick connect.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>QuickConnectId</i> The identifier for the quick connect.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>QuickConnectARN</i> The Amazon Resource Name (ARN) of the quick connect.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>QuickConnectType</i> The type of quick connect. In the Amazon Connect console, when you create a quick connect, you are prompted to assign one of the following types: Agent (USER), External (PHONE_NUMBER), or Queue (QUEUE). <br/>The user configuration. This is required only if QuickConnectType is USER.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>UserConfig</b>: The user configuration. This is required only if QuickConnectType is USER.        """
        pass

    def describe_routing_profile(self, RoutingProfileId: str, InstanceId: str) -> DescribeRoutingProfileResponse:
        r"""Describes the specified routing profile.

        :param self:
        :param RoutingProfileId:  The identifier of the routing profile.<br/>InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>
        :return: RoutingProfile:  The routing profile.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> One or more tags.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultOutboundQueueId</i> The identifier of the default outbound queue for this routing profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MediaConcurrencies</i> The channels agents can handle in the Contact Control Panel (CCP) for this routing profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the routing profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoutingProfileId</i> The identifier of the routing profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoutingProfileArn</i> The Amazon Resource Name (ARN) of the routing profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the routing profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceId</i> The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>        """
        pass

    def describe_user(self, InstanceId: str, UserId: str) -> DescribeUserResponse:
        r"""Describes the specified user account. You can find the instance ID in the console (it’s the final part of the ARN). The console does not display the user IDs. Instead, list the users and note the IDs provided in the output.

        :param self:
        :param InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>UserId:  The identifier of the user account.<br/>
        :return: User:  Information about the user account and configuration settings.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The tags.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HierarchyGroupId</i> The identifier of the hierarchy group for the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoutingProfileId</i> The identifier of the routing profile for the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityProfileIds</i> The identifiers of the security profiles for the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DirectoryUserId</i> The identifier of the user account in the directory used for identity management.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PhoneConfig</i> Information about the phone configuration for the user.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PhoneConfig</b>: Information about the phone configuration for the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IdentityInfo</i> Information about the user identity.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>IdentityInfo</b>: Information about the user identity.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Username</i> The user name assigned to the user account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the user account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The identifier of the user account.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Email</i> The email address. If you are using SAML for identity management and include this parameter, an error is returned.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LastName</i> The last name. This is required if you are using Amazon Connect or SAML for identity management.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FirstName</i> The first name. This is required if you are using Amazon Connect or SAML for identity management.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DeskPhoneNumber</i> The phone number for the user's desk phone.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AfterContactWorkTimeLimit</i> The After Call Work (ACW) timeout setting, in seconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoAccept</i> The Auto accept setting.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PhoneType</i> The phone type.<br/>        """
        pass

    def describe_user_hierarchy_group(self, InstanceId: str, HierarchyGroupId: str) -> DescribeUserHierarchyGroupResponse:
        r"""Describes the specified hierarchy group.

        :param self:
        :param InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>HierarchyGroupId:  The identifier of the hierarchy group.<br/>
        :return: HierarchyGroup:  Information about the hierarchy group.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HierarchyPath</i> Information about the levels in the hierarchy group.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>HierarchyPath</b>: Information about the levels in the hierarchy group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LevelId</i> The identifier of the level in the hierarchy group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the hierarchy group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the hierarchy group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The identifier of the hierarchy group.<br/>Information about level one.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>LevelOne</b>: Information about level one.        """
        pass

    def describe_user_hierarchy_structure(self, InstanceId: str) -> DescribeUserHierarchyStructureResponse:
        r"""Describes the hierarchy structure of the specified Amazon Connect instance.

        :param self:
        :param InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>
        :return: HierarchyStructure:  Information about the hierarchy structure.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LevelFive</i> Information about level five.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>LevelFive</b>: Information about level five.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LevelFour</i> Information about level four.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>LevelFour</b>: Information about level four.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LevelThree</i> Information about level three.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>LevelThree</b>: Information about level three.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LevelTwo</i> Information about level two.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>LevelTwo</b>: Information about level two.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LevelOne</i> Information about level one.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>LevelOne</b>: Information about level one.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the hierarchy level.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the hierarchy level.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The identifier of the hierarchy level.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the hierarchy level.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the hierarchy level.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The identifier of the hierarchy level.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the hierarchy level.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the hierarchy level.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The identifier of the hierarchy level.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the hierarchy level.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the hierarchy level.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The identifier of the hierarchy level.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the hierarchy level.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the hierarchy level.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The identifier of the hierarchy level.<br/>        """
        pass

    def disassociate_approved_origin(self, Origin: str, InstanceId: str):
        r"""This API is in preview release for Amazon Connect and is subject to change. Revokes access to integrated applications from Amazon Connect.

        :param self:
        :param Origin:  The domain URL of the integrated application.<br/>InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>
        :return:         """
        pass

    def disassociate_bot(self, InstanceId: str, LexBot: LexBot=None, LexV2Bot: LexV2Bot=None):
        r"""This API is in preview release for Amazon Connect and is subject to change. Revokes authorization from the specified instance to access the specified Amazon Lex or Amazon Lex V2 bot. 

        :param self:
        :param LexV2Bot:  The Amazon Lex V2 bot to disassociate from the instance.:<br/>LexBot:  Configuration information of an Amazon Lex bot.:<br/>InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LexRegion</i> The Region that the Amazon Lex bot was created in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the Amazon Lex bot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AliasArn</i> The Amazon Resource Name (ARN) of the Amazon Lex V2 bot.<br/>
        :return:         """
        pass

    def disassociate_instance_storage_config(self, ResourceType: str, AssociationId: str, InstanceId: str):
        r"""This API is in preview release for Amazon Connect and is subject to change. Removes the storage type configurations for the specified resource type and association ID.

        :param self:
        :param ResourceType:  A valid resource type.<br/>AssociationId:  The existing association identifier that uniquely identifies the resource type and storage config for the given instance ID.<br/>InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>
        :return:         """
        pass

    def disassociate_lambda_function(self, FunctionArn: str, InstanceId: str):
        r"""This API is in preview release for Amazon Connect and is subject to change. Remove the Lambda function from the dropdown options available in the relevant contact flow blocks.

        :param self:
        :param FunctionArn:  The Amazon Resource Name (ARN) of the Lambda function being disassociated.<br/>InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance..<br/>
        :return:         """
        pass

    def disassociate_lex_bot(self, LexRegion: str, BotName: str, InstanceId: str):
        r"""This API is in preview release for Amazon Connect and is subject to change. Revokes authorization from the specified instance to access the specified Amazon Lex bot.

        :param self:
        :param LexRegion:  The Region in which the Amazon Lex bot has been created.<br/>BotName:  The name of the Amazon Lex bot. Maximum character limit of 50.<br/>InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>
        :return:         """
        pass

    def disassociate_queue_quick_connects(self, QuickConnectIds: List[QuickConnectId], QueueId: str, InstanceId: str):
        r"""This API is in preview release for Amazon Connect and is subject to change. Disassociates a set of quick connects from a queue.

        :param self:
        :param QuickConnectIds:  The quick connects to disassociate from the queue.<br/>QueueId:  The identifier for the queue.<br/>InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>
        :return:         """
        pass

    def disassociate_routing_profile_queues(self, QueueReferences: List[RoutingProfileQueueReference], RoutingProfileId: str, InstanceId: str):
        r"""Disassociates a set of queues from a routing profile.

        :param self:
        :param QueueReferences:  The queues to disassociate from this routing profile.<br/>RoutingProfileId:  The identifier of the routing profile.<br/>InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>
        :return:         """
        pass

    def disassociate_security_key(self, AssociationId: str, InstanceId: str):
        r"""This API is in preview release for Amazon Connect and is subject to change. Deletes the specified security key.

        :param self:
        :param AssociationId:  The existing association identifier that uniquely identifies the resource type and storage config for the given instance ID.<br/>InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>
        :return:         """
        pass

    def get_contact_attributes(self, InitialContactId: str, InstanceId: str) -> GetContactAttributesResponse:
        r"""Retrieves the contact attributes for the specified contact.

        :param self:
        :param InitialContactId:  The identifier of the initial contact.<br/>InstanceId:  The identifier of the Amazon Connect instance.<br/>
        :return: Attributes:  Information about the attributes.<br/>        """
        pass

    def get_current_metric_data(self, CurrentMetrics: List[CurrentMetric], Filters: Filters, InstanceId: str, Groupings: List[Grouping]=None, NextToken: str=None, MaxResults: int=None) -> GetCurrentMetricDataResponse:
        r"""Gets the real-time metric data from the specified Amazon Connect instance. For a description of each metric, see <a href="https://docs.aws.amazon.com/connect/latest/adminguide/real-time-metrics-definitions.html">Real-time Metrics Definitions</a> in the <i>Amazon Connect Administrator Guide</i>.

        :param self:
        :param MaxResults:  The maximum number of results to return per page.<br/>NextToken:  The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results. The token expires after 5 minutes from the time it is created. Subsequent requests that use the token must use the same request parameters as the request that generated the token.<br/>CurrentMetrics:  The metrics to retrieve. Specify the name and unit for each metric. The following metrics are available. For a description of all the metrics, see <a href="https://docs.aws.amazon.com/connect/latest/adminguide/real-time-metrics-definitions.html">Real-time Metrics Definitions</a> in the <i>Amazon Connect Administrator Guide</i>. <dl> <dt>AGENTS_AFTER_CONTACT_WORK</dt> <dd> Unit: COUNT Name in real-time metrics report: <a href="https://docs.aws.amazon.com/connect/latest/adminguide/real-time-metrics-definitions.html#aftercallwork-real-time">ACW</a>  </dd> <dt>AGENTS_AVAILABLE</dt> <dd> Unit: COUNT Name in real-time metrics report: <a href="https://docs.aws.amazon.com/connect/latest/adminguide/real-time-metrics-definitions.html#available-real-time">Available</a>  </dd> <dt>AGENTS_ERROR</dt> <dd> Unit: COUNT Name in real-time metrics report: <a href="https://docs.aws.amazon.com/connect/latest/adminguide/real-time-metrics-definitions.html#error-real-time">Error</a>  </dd> <dt>AGENTS_NON_PRODUCTIVE</dt> <dd> Unit: COUNT Name in real-time metrics report: <a href="https://docs.aws.amazon.com/connect/latest/adminguide/real-time-metrics-definitions.html#non-productive-time-real-time">NPT (Non-Productive Time)</a>  </dd> <dt>AGENTS_ON_CALL</dt> <dd> Unit: COUNT Name in real-time metrics report: <a href="https://docs.aws.amazon.com/connect/latest/adminguide/real-time-metrics-definitions.html#on-call-real-time">On contact</a>  </dd> <dt>AGENTS_ON_CONTACT</dt> <dd> Unit: COUNT Name in real-time metrics report: <a href="https://docs.aws.amazon.com/connect/latest/adminguide/real-time-metrics-definitions.html#on-call-real-time">On contact</a>  </dd> <dt>AGENTS_ONLINE</dt> <dd> Unit: COUNT Name in real-time metrics report: <a href="https://docs.aws.amazon.com/connect/latest/adminguide/real-time-metrics-definitions.html#online-real-time">Online</a>  </dd> <dt>AGENTS_STAFFED</dt> <dd> Unit: COUNT Name in real-time metrics report: <a href="https://docs.aws.amazon.com/connect/latest/adminguide/real-time-metrics-definitions.html#staffed-real-time">Staffed</a>  </dd> <dt>CONTACTS_IN_QUEUE</dt> <dd> Unit: COUNT Name in real-time metrics report: <a href="https://docs.aws.amazon.com/connect/latest/adminguide/real-time-metrics-definitions.html#in-queue-real-time">In queue</a>  </dd> <dt>CONTACTS_SCHEDULED</dt> <dd> Unit: COUNT Name in real-time metrics report: <a href="https://docs.aws.amazon.com/connect/latest/adminguide/real-time-metrics-definitions.html#scheduled-real-time">Scheduled</a>  </dd> <dt>OLDEST_CONTACT_AGE</dt> <dd> Unit: SECONDS When you use groupings, Unit says SECONDS but the Value is returned in MILLISECONDS. For example, if you get a response like this:  <code>{ "Metric": { "Name": "OLDEST_CONTACT_AGE", "Unit": "SECONDS" }, "Value": 24113.0 </code>} The actual OLDEST_CONTACT_AGE is 24 seconds. Name in real-time metrics report: <a href="https://docs.aws.amazon.com/connect/latest/adminguide/real-time-metrics-definitions.html#oldest-real-time">Oldest</a>  </dd> <dt>SLOTS_ACTIVE</dt> <dd> Unit: COUNT Name in real-time metrics report: <a href="https://docs.aws.amazon.com/connect/latest/adminguide/real-time-metrics-definitions.html#active-real-time">Active</a>  </dd> <dt>SLOTS_AVAILABLE</dt> <dd> Unit: COUNT Name in real-time metrics report: <a href="https://docs.aws.amazon.com/connect/latest/adminguide/real-time-metrics-definitions.html#availability-real-time">Availability</a>  </dd> </dl><br/>Groupings:  The grouping applied to the metrics returned. For example, when grouped by <code>QUEUE</code>, the metrics returned apply to each queue rather than aggregated for all queues. If you group by <code>CHANNEL</code>, you should include a Channels filter. VOICE, CHAT, and TASK channels are supported. If no <code>Grouping</code> is included in the request, a summary of metrics is returned.<br/>Filters:  The queues, up to 100, or channels, to use to filter the metrics returned. Metric data is retrieved only for the resources associated with the queues or channels included in the filter. You can include both queue IDs and queue ARNs in the same request. VOICE, CHAT, and TASK channels are supported.:<br/>InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Channels</i> The channel to use to filter the metrics.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Queues</i> The queues to use to filter the metrics. You can specify up to 100 queues per request.<br/>
        :return: DataSnapshotTime:  The time at which the metrics were retrieved and cached for pagination.<br/>MetricResults:  Information about the real-time metrics.<br/>NextToken:  If there are additional results, this is the token for the next set of results. The token expires after 5 minutes from the time it is created. Subsequent requests that use the token must use the same request parameters as the request that generated the token.<br/>        """
        pass

    def get_federation_token(self, InstanceId: str) -> GetFederationTokenResponse:
        r"""Retrieves a token for federation. <note> This API doesn't support root users. If you try to invoke GetFederationToken with root credentials, an error message similar to the following one appears:   <code>Provided identity: Principal: .... User: .... cannot be used for federation with Amazon Connect</code>  </note>

        :param self:
        :param InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>
        :return: Credentials:  The credentials to use for federation.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RefreshTokenExpiration</i> Renews the expiration timer for a generated token.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RefreshToken</i> Renews a token generated for a user to access the Amazon Connect instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccessTokenExpiration</i> A token generated with an expiration time for the session a user is logged in to Amazon Connect.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccessToken</i> An access token generated for a federated user to access Amazon Connect.<br/>        """
        pass

    def get_metric_data(self, HistoricalMetrics: List[HistoricalMetric], Filters: Filters, EndTime: timestamp, StartTime: timestamp, InstanceId: str, Groupings: List[Grouping]=None, NextToken: str=None, MaxResults: int=None) -> GetMetricDataResponse:
        r"""Gets historical metric data from the specified Amazon Connect instance. For a description of each historical metric, see <a href="https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html">Historical Metrics Definitions</a> in the <i>Amazon Connect Administrator Guide</i>.

        :param self:
        :param MaxResults:  The maximum number of results to return per page.<br/>NextToken:  The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.<br/>HistoricalMetrics:  The metrics to retrieve. Specify the name, unit, and statistic for each metric. The following historical metrics are available. For a description of each metric, see <a href="https://docs.aws.amazon.com/connect/latest/adminguide/historical-metrics-definitions.html">Historical Metrics Definitions</a> in the <i>Amazon Connect Administrator Guide</i>. <note> This API does not support a contacts incoming metric (there's no CONTACTS_INCOMING metric missing from the documented list).  </note> <dl> <dt>ABANDON_TIME</dt> <dd> Unit: SECONDS Statistic: AVG </dd> <dt>AFTER_CONTACT_WORK_TIME</dt> <dd> Unit: SECONDS Statistic: AVG </dd> <dt>API_CONTACTS_HANDLED</dt> <dd> Unit: COUNT Statistic: SUM </dd> <dt>CALLBACK_CONTACTS_HANDLED</dt> <dd> Unit: COUNT Statistic: SUM </dd> <dt>CONTACTS_ABANDONED</dt> <dd> Unit: COUNT Statistic: SUM </dd> <dt>CONTACTS_AGENT_HUNG_UP_FIRST</dt> <dd> Unit: COUNT Statistic: SUM </dd> <dt>CONTACTS_CONSULTED</dt> <dd> Unit: COUNT Statistic: SUM </dd> <dt>CONTACTS_HANDLED</dt> <dd> Unit: COUNT Statistic: SUM </dd> <dt>CONTACTS_HANDLED_INCOMING</dt> <dd> Unit: COUNT Statistic: SUM </dd> <dt>CONTACTS_HANDLED_OUTBOUND</dt> <dd> Unit: COUNT Statistic: SUM </dd> <dt>CONTACTS_HOLD_ABANDONS</dt> <dd> Unit: COUNT Statistic: SUM </dd> <dt>CONTACTS_MISSED</dt> <dd> Unit: COUNT Statistic: SUM </dd> <dt>CONTACTS_QUEUED</dt> <dd> Unit: COUNT Statistic: SUM </dd> <dt>CONTACTS_TRANSFERRED_IN</dt> <dd> Unit: COUNT Statistic: SUM </dd> <dt>CONTACTS_TRANSFERRED_IN_FROM_QUEUE</dt> <dd> Unit: COUNT Statistic: SUM </dd> <dt>CONTACTS_TRANSFERRED_OUT</dt> <dd> Unit: COUNT Statistic: SUM </dd> <dt>CONTACTS_TRANSFERRED_OUT_FROM_QUEUE</dt> <dd> Unit: COUNT Statistic: SUM </dd> <dt>HANDLE_TIME</dt> <dd> Unit: SECONDS Statistic: AVG </dd> <dt>HOLD_TIME</dt> <dd> Unit: SECONDS Statistic: AVG </dd> <dt>INTERACTION_AND_HOLD_TIME</dt> <dd> Unit: SECONDS Statistic: AVG </dd> <dt>INTERACTION_TIME</dt> <dd> Unit: SECONDS Statistic: AVG </dd> <dt>OCCUPANCY</dt> <dd> Unit: PERCENT Statistic: AVG </dd> <dt>QUEUE_ANSWER_TIME</dt> <dd> Unit: SECONDS Statistic: AVG </dd> <dt>QUEUED_TIME</dt> <dd> Unit: SECONDS Statistic: MAX </dd> <dt>SERVICE_LEVEL</dt> <dd> You can include up to 20 SERVICE_LEVEL metrics in a request. Unit: PERCENT Statistic: AVG Threshold: For <code>ThresholdValue</code>, enter any whole number from 1 to 604800 (inclusive), in seconds. For <code>Comparison</code>, you must enter <code>LT</code> (for "Less than").  </dd> </dl><br/>Groupings:  The grouping applied to the metrics returned. For example, when results are grouped by queue, the metrics returned are grouped by queue. The values returned apply to the metrics for each queue rather than aggregated for all queues. If no grouping is specified, a summary of metrics for all queues is returned.<br/>Filters:  The queues, up to 100, or channels, to use to filter the metrics returned. Metric data is retrieved only for the resources associated with the queues or channels included in the filter. You can include both queue IDs and queue ARNs in the same request. VOICE, CHAT, and TASK channels are supported. <note> To filter by <code>Queues</code>, enter the queue ID/ARN, not the name of the queue. </note>:<br/>EndTime:  The timestamp, in UNIX Epoch time format, at which to end the reporting interval for the retrieval of historical metrics data. The time must be specified using an interval of 5 minutes, such as 11:00, 11:05, 11:10, and must be later than the start time timestamp. The time range between the start and end time must be less than 24 hours.<br/>StartTime:  The timestamp, in UNIX Epoch time format, at which to start the reporting interval for the retrieval of historical metrics data. The time must be specified using a multiple of 5 minutes, such as 10:05, 10:10, 10:15. The start time cannot be earlier than 24 hours before the time of the request. Historical metrics are available only for 24 hours.<br/>InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Channels</i> The channel to use to filter the metrics.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Queues</i> The queues to use to filter the metrics. You can specify up to 100 queues per request.<br/>
        :return: MetricResults:  Information about the historical metrics. If no grouping is specified, a summary of metric data is returned.<br/>NextToken:  If there are additional results, this is the token for the next set of results. The token expires after 5 minutes from the time it is created. Subsequent requests that use the token must use the same request parameters as the request that generated the token.<br/>        """
        pass

    def list_approved_origins(self, InstanceId: str, NextToken: str=None, MaxResults: int=None) -> ListApprovedOriginsResponse:
        r"""This API is in preview release for Amazon Connect and is subject to change. Returns a paginated list of all approved origins associated with the instance.

        :param self:
        :param MaxResults:  The maximum number of results to return per page.<br/>NextToken:  The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.<br/>InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>
        :return: NextToken:  If there are additional results, this is the token for the next set of results.<br/>Origins:  The approved origins.<br/>        """
        pass

    def list_bots(self, LexVersion: str, InstanceId: str, NextToken: str=None, MaxResults: int=None) -> ListBotsResponse:
        r"""This API is in preview release for Amazon Connect and is subject to change. For the specified version of Amazon Lex, returns a paginated list of all the Amazon Lex bots currently associated with the instance. 

        :param self:
        :param LexVersion:  The version of Amazon Lex or Amazon Lex V2.<br/>MaxResults:  The maximum number of results to return per page.<br/>NextToken:  The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.<br/>InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>
        :return: NextToken:  If there are additional results, this is the token for the next set of results.<br/>LexBots:  The names and Regions of the Amazon Lex or Amazon Lex V2 bots associated with the specified instance.<br/>        """
        pass

    def list_contact_flows(self, InstanceId: str, ContactFlowTypes: List[ContactFlowType]=None, NextToken: str=None, MaxResults: int=None) -> ListContactFlowsResponse:
        r"""Provides information about the contact flows for the specified Amazon Connect instance. You can also create and update contact flows using the <a href="https://docs.aws.amazon.com/connect/latest/adminguide/flow-language.html">Amazon Connect Flow language</a>. For more information about contact flows, see <a href="https://docs.aws.amazon.com/connect/latest/adminguide/concepts-contact-flows.html">Contact Flows</a> in the <i>Amazon Connect Administrator Guide</i>.

        :param self:
        :param MaxResults:  The maximum number of results to return per page.<br/>NextToken:  The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.<br/>ContactFlowTypes:  The type of contact flow.<br/>InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>
        :return: NextToken:  If there are additional results, this is the token for the next set of results.<br/>ContactFlowSummaryList:  Information about the contact flows.<br/>        """
        pass

    def list_hours_of_operations(self, InstanceId: str, NextToken: str=None, MaxResults: int=None) -> ListHoursOfOperationsResponse:
        r"""Provides information about the hours of operation for the specified Amazon Connect instance. For more information about hours of operation, see <a href="https://docs.aws.amazon.com/connect/latest/adminguide/set-hours-operation.html">Set the Hours of Operation for a Queue</a> in the <i>Amazon Connect Administrator Guide</i>.

        :param self:
        :param MaxResults:  The maximum number of results to return per page.<br/>NextToken:  The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.<br/>InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>
        :return: NextToken:  If there are additional results, this is the token for the next set of results.<br/>HoursOfOperationSummaryList:  Information about the hours of operation.<br/>        """
        pass

    def list_instance_attributes(self, InstanceId: str, NextToken: str=None, MaxResults: int=None) -> ListInstanceAttributesResponse:
        r"""This API is in preview release for Amazon Connect and is subject to change. Returns a paginated list of all attribute types for the given instance.

        :param self:
        :param MaxResults:  The maximum number of results to return per page.<br/>NextToken:  The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.<br/>InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>
        :return: NextToken:  If there are additional results, this is the token for the next set of results.<br/>Attributes:  The attribute types.<br/>        """
        pass

    def list_instance_storage_configs(self, ResourceType: str, InstanceId: str, NextToken: str=None, MaxResults: int=None) -> ListInstanceStorageConfigsResponse:
        r"""This API is in preview release for Amazon Connect and is subject to change. Returns a paginated list of storage configs for the identified instance and resource type.

        :param self:
        :param MaxResults:  The maximum number of results to return per page.<br/>NextToken:  The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.<br/>ResourceType:  A valid resource type.<br/>InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>
        :return: NextToken:  If there are additional results, this is the token for the next set of results.<br/>StorageConfigs:  A valid storage type.<br/>        """
        pass

    def list_instances(self, NextToken: str=None, MaxResults: int=None) -> ListInstancesResponse:
        r"""This API is in preview release for Amazon Connect and is subject to change. Return a list of instances which are in active state, creation-in-progress state, and failed state. Instances that aren't successfully created (they are in a failed state) are returned only for 24 hours after the CreateInstance API was invoked.

        :param self:
        :param MaxResults:  The maximum number of results to return per page.<br/>NextToken:  The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.<br/>
        :return: NextToken:  If there are additional results, this is the token for the next set of results.<br/>InstanceSummaryList:  Information about the instances.<br/>        """
        pass

    def list_integration_associations(self, InstanceId: str, NextToken: str=None, MaxResults: int=None) -> ListIntegrationAssociationsResponse:
        r"""Provides summary information about the AppIntegration associations for the specified Amazon Connect instance.

        :param self:
        :param MaxResults:  The maximum number of results to return per page.<br/>NextToken:  The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.<br/>InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>
        :return: NextToken:  If there are additional results, this is the token for the next set of results.<br/>IntegrationAssociationSummaryList:  The AppIntegration associations.<br/>        """
        pass

    def list_lambda_functions(self, InstanceId: str, NextToken: str=None, MaxResults: int=None) -> ListLambdaFunctionsResponse:
        r"""This API is in preview release for Amazon Connect and is subject to change. Returns a paginated list of all Lambda functions that display in the dropdown options in the relevant contact flow blocks.

        :param self:
        :param MaxResults:  The maximum number of results to return per page.<br/>NextToken:  The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.<br/>InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>
        :return: NextToken:  If there are additional results, this is the token for the next set of results.<br/>LambdaFunctions:  The Lambdafunction ARNs associated with the specified instance.<br/>        """
        pass

    def list_lex_bots(self, InstanceId: str, NextToken: str=None, MaxResults: int=None) -> ListLexBotsResponse:
        r"""This API is in preview release for Amazon Connect and is subject to change. Returns a paginated list of all the Amazon Lex bots currently associated with the instance.

        :param self:
        :param MaxResults:  The maximum number of results to return per page.<br/>NextToken:  The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.<br/>InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>
        :return: NextToken:  If there are additional results, this is the token for the next set of results.<br/>LexBots:  The names and Regions of the Amazon Lex bots associated with the specified instance.<br/>        """
        pass

    def list_phone_numbers(self, InstanceId: str, PhoneNumberTypes: List[PhoneNumberType]=None, PhoneNumberCountryCodes: List[PhoneNumberCountryCode]=None, NextToken: str=None, MaxResults: int=None) -> ListPhoneNumbersResponse:
        r"""Provides information about the phone numbers for the specified Amazon Connect instance.  For more information about phone numbers, see <a href="https://docs.aws.amazon.com/connect/latest/adminguide/contact-center-phone-number.html">Set Up Phone Numbers for Your Contact Center</a> in the <i>Amazon Connect Administrator Guide</i>.

        :param self:
        :param MaxResults:  The maximum number of results to return per page.<br/>NextToken:  The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.<br/>PhoneNumberCountryCodes:  The ISO country code.<br/>PhoneNumberTypes:  The type of phone number.<br/>InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>
        :return: NextToken:  If there are additional results, this is the token for the next set of results.<br/>PhoneNumberSummaryList:  Information about the phone numbers.<br/>        """
        pass

    def list_prompts(self, InstanceId: str, NextToken: str=None, MaxResults: int=None) -> ListPromptsResponse:
        r"""Provides information about the prompts for the specified Amazon Connect instance.

        :param self:
        :param MaxResults:  The maximum number of results to return per page.<br/>NextToken:  The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.<br/>InstanceId:  The identifier of the Amazon Connect instance.<br/>
        :return: NextToken:  If there are additional results, this is the token for the next set of results.<br/>PromptSummaryList:  Information about the prompts.<br/>        """
        pass

    def list_queue_quick_connects(self, QueueId: str, InstanceId: str, NextToken: str=None, MaxResults: int=None) -> ListQueueQuickConnectsResponse:
        r"""This API is in preview release for Amazon Connect and is subject to change. Lists the quick connects associated with a queue.

        :param self:
        :param MaxResults:  The maximum number of results to return per page.<br/>NextToken:  The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.<br/>QueueId:  The identifier for the queue.<br/>InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>
        :return: QuickConnectSummaryList:  Information about the quick connects.<br/>NextToken:  If there are additional results, this is the token for the next set of results.<br/>        """
        pass

    def list_queues(self, InstanceId: str, QueueTypes: List[QueueType]=None, NextToken: str=None, MaxResults: int=None) -> ListQueuesResponse:
        r"""Provides information about the queues for the specified Amazon Connect instance. If you do not specify a <code>QueueTypes</code> parameter, both standard and agent queues are returned. This might cause an unexpected truncation of results if you have more than 1000 agents and you limit the number of results of the API call in code. For more information about queues, see <a href="https://docs.aws.amazon.com/connect/latest/adminguide/concepts-queues-standard-and-agent.html">Queues: Standard and Agent</a> in the <i>Amazon Connect Administrator Guide</i>.

        :param self:
        :param MaxResults:  The maximum number of results to return per page.<br/>NextToken:  The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.<br/>QueueTypes:  The type of queue.<br/>InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>
        :return: NextToken:  If there are additional results, this is the token for the next set of results.<br/>QueueSummaryList:  Information about the queues.<br/>        """
        pass

    def list_quick_connects(self, InstanceId: str, NextToken: str=None, MaxResults: int=None, QuickConnectTypes: List[QuickConnectType]=None) -> ListQuickConnectsResponse:
        r"""Provides information about the quick connects for the specified Amazon Connect instance. 

        :param self:
        :param QuickConnectTypes:  The type of quick connect. In the Amazon Connect console, when you create a quick connect, you are prompted to assign one of the following types: Agent (USER), External (PHONE_NUMBER), or Queue (QUEUE).<br/>MaxResults:  The maximum number of results to return per page.<br/>NextToken:  The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.<br/>InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>
        :return: NextToken:  If there are additional results, this is the token for the next set of results.<br/>QuickConnectSummaryList:  Information about the quick connects.<br/>        """
        pass

    def list_routing_profile_queues(self, RoutingProfileId: str, InstanceId: str, NextToken: str=None, MaxResults: int=None) -> ListRoutingProfileQueuesResponse:
        r"""Lists the queues associated with a routing profile.

        :param self:
        :param MaxResults:  The maximum number of results to return per page.<br/>NextToken:  The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.<br/>RoutingProfileId:  The identifier of the routing profile.<br/>InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>
        :return: RoutingProfileQueueConfigSummaryList:  Information about the routing profiles.<br/>NextToken:  If there are additional results, this is the token for the next set of results.<br/>        """
        pass

    def list_routing_profiles(self, InstanceId: str, NextToken: str=None, MaxResults: int=None) -> ListRoutingProfilesResponse:
        r"""Provides summary information about the routing profiles for the specified Amazon Connect instance. For more information about routing profiles, see <a href="https://docs.aws.amazon.com/connect/latest/adminguide/concepts-routing.html">Routing Profiles</a> and <a href="https://docs.aws.amazon.com/connect/latest/adminguide/routing-profiles.html">Create a Routing Profile</a> in the <i>Amazon Connect Administrator Guide</i>.

        :param self:
        :param MaxResults:  The maximum number of results to return per page.<br/>NextToken:  The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.<br/>InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>
        :return: NextToken:  If there are additional results, this is the token for the next set of results.<br/>RoutingProfileSummaryList:  Information about the routing profiles.<br/>        """
        pass

    def list_security_keys(self, InstanceId: str, NextToken: str=None, MaxResults: int=None) -> ListSecurityKeysResponse:
        r"""This API is in preview release for Amazon Connect and is subject to change. Returns a paginated list of all security keys associated with the instance.

        :param self:
        :param MaxResults:  The maximum number of results to return per page.<br/>NextToken:  The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.<br/>InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>
        :return: NextToken:  If there are additional results, this is the token for the next set of results.<br/>SecurityKeys:  The security keys.<br/>        """
        pass

    def list_security_profiles(self, InstanceId: str, NextToken: str=None, MaxResults: int=None) -> ListSecurityProfilesResponse:
        r"""Provides summary information about the security profiles for the specified Amazon Connect instance. For more information about security profiles, see <a href="https://docs.aws.amazon.com/connect/latest/adminguide/connect-security-profiles.html">Security Profiles</a> in the <i>Amazon Connect Administrator Guide</i>.

        :param self:
        :param MaxResults:  The maximum number of results to return per page.<br/>NextToken:  The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.<br/>InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>
        :return: NextToken:  If there are additional results, this is the token for the next set of results.<br/>SecurityProfileSummaryList:  Information about the security profiles.<br/>        """
        pass

    def list_tags_for_resource(self, resourceArn: str) -> ListTagsForResourceResponse:
        r"""Lists the tags for the specified resource. For sample policies that use tags, see <a href="https://docs.aws.amazon.com/connect/latest/adminguide/security_iam_id-based-policy-examples.html">Amazon Connect Identity-Based Policy Examples</a> in the <i>Amazon Connect Administrator Guide</i>.

        :param self:
        :param resourceArn:  The Amazon Resource Name (ARN) of the resource.<br/>
        :return: tags:  Information about the tags.<br/>        """
        pass

    def list_use_cases(self, IntegrationAssociationId: str, InstanceId: str, NextToken: str=None, MaxResults: int=None) -> ListUseCasesResponse:
        r"""Lists the use cases. 

        :param self:
        :param MaxResults:  The maximum number of results to return per page.<br/>NextToken:  The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.<br/>IntegrationAssociationId:  The identifier for the integration association.<br/>InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>
        :return: NextToken:  If there are additional results, this is the token for the next set of results.<br/>UseCaseSummaryList:  The use cases.<br/>        """
        pass

    def list_user_hierarchy_groups(self, InstanceId: str, NextToken: str=None, MaxResults: int=None) -> ListUserHierarchyGroupsResponse:
        r"""Provides summary information about the hierarchy groups for the specified Amazon Connect instance. For more information about agent hierarchies, see <a href="https://docs.aws.amazon.com/connect/latest/adminguide/agent-hierarchy.html">Set Up Agent Hierarchies</a> in the <i>Amazon Connect Administrator Guide</i>.

        :param self:
        :param MaxResults:  The maximum number of results to return per page.<br/>NextToken:  The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.<br/>InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>
        :return: NextToken:  If there are additional results, this is the token for the next set of results.<br/>UserHierarchyGroupSummaryList:  Information about the hierarchy groups.<br/>        """
        pass

    def list_users(self, InstanceId: str, NextToken: str=None, MaxResults: int=None) -> ListUsersResponse:
        r"""Provides summary information about the users for the specified Amazon Connect instance.

        :param self:
        :param MaxResults:  The maximum number of results to return per page.<br/>NextToken:  The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.<br/>InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>
        :return: NextToken:  If there are additional results, this is the token for the next set of results.<br/>UserSummaryList:  Information about the users.<br/>        """
        pass

    def resume_contact_recording(self, InitialContactId: str, ContactId: str, InstanceId: str) -> ResumeContactRecordingResponse:
        r"""When a contact is being recorded, and the recording has been suspended using SuspendContactRecording, this API resumes recording the call. Only voice recordings are supported at this time.

        :param self:
        :param InitialContactId:  The identifier of the contact. This is the identifier of the contact associated with the first interaction with the contact center.<br/>ContactId:  The identifier of the contact.<br/>InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>
        :return:         """
        pass

    def start_chat_contact(self, ParticipantDetails: ParticipantDetails, ContactFlowId: str, InstanceId: str, Attributes: Attributes=None, InitialMessage: ChatMessage=None, ClientToken: str=None) -> StartChatContactResponse:
        r"""Initiates a contact flow to start a new chat for the customer. Response of this API provides a token required to obtain credentials from the <a href="https://docs.aws.amazon.com/connect-participant/latest/APIReference/API_CreateParticipantConnection.html">CreateParticipantConnection</a> API in the Amazon Connect Participant Service. When a new chat contact is successfully created, clients must subscribe to the participant’s connection for the created chat within 5 minutes. This is achieved by invoking <a href="https://docs.aws.amazon.com/connect-participant/latest/APIReference/API_CreateParticipantConnection.html">CreateParticipantConnection</a> with WEBSOCKET and CONNECTION_CREDENTIALS.  A 429 error occurs in two situations: <ul> <li> API rate limit is exceeded. API TPS throttling returns a <code>TooManyRequests</code> exception. </li> <li> The <a href="https://docs.aws.amazon.com/connect/latest/adminguide/amazon-connect-service-limits.html">quota for concurrent active chats</a> is exceeded. Active chat throttling returns a <code>LimitExceededException</code>. </li> </ul> For more information about chat, see <a href="https://docs.aws.amazon.com/connect/latest/adminguide/chat.html">Chat</a> in the <i>Amazon Connect Administrator Guide</i>.

        :param self:
        :param ClientToken:  A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.<br/>InitialMessage:  The initial message to be sent to the newly created chat.:<br/>ParticipantDetails:  Information identifying the participant.:<br/>Attributes:  A custom key-value pair using an attribute map. The attributes are standard Amazon Connect attributes. They can be accessed in contact flows just like any other contact attributes.  There can be up to 32,768 UTF-8 bytes across all key-value pairs per contact. Attribute keys can include only alphanumeric, dash, and underscore characters.<br/>ContactFlowId:  The identifier of the contact flow for initiating the chat. To see the ContactFlowId in the Amazon Connect console user interface, on the navigation menu go to <b>Routing</b>, <b>Contact Flows</b>. Choose the contact flow. On the contact flow page, under the name of the contact flow, choose <b>Show additional flow information</b>. The ContactFlowId is the last part of the ARN, shown here in bold:  arn:aws:connect:us-west-2:xxxxxxxxxxxx:instance/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/contact-flow/<b>846ec553-a005-41c0-8341-xxxxxxxxxxxx</b> <br/>InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DisplayName</i> Display name of the participant.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Content</i> The content of the chat message.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ContentType</i> The type of the content. Supported types are text and plain.<br/>
        :return: ParticipantToken:  The token used by the chat participant to call <a href="https://docs.aws.amazon.com/connect-participant/latest/APIReference/API_CreateParticipantConnection.html">CreateParticipantConnection</a>. The participant token is valid for the lifetime of a chat participant.<br/>ParticipantId:  The identifier for a chat participant. The participantId for a chat participant is the same throughout the chat lifecycle.<br/>ContactId:  The identifier of this contact within the Amazon Connect instance. <br/>        """
        pass

    def start_contact_recording(self, VoiceRecordingConfiguration: VoiceRecordingConfiguration, InitialContactId: str, ContactId: str, InstanceId: str) -> StartContactRecordingResponse:
        r"""Starts recording the contact when the agent joins the call. StartContactRecording is a one-time action. For example, if you use StopContactRecording to stop recording an ongoing call, you can't use StartContactRecording to restart it. For scenarios where the recording has started and you want to suspend and resume it, such as when collecting sensitive information (for example, a credit card number), use SuspendContactRecording and ResumeContactRecording. You can use this API to override the recording behavior configured in the <a href="https://docs.aws.amazon.com/connect/latest/adminguide/set-recording-behavior.html">Set recording behavior</a> block. Only voice recordings are supported at this time.

        :param self:
        :param VoiceRecordingConfiguration:  The person being recorded.:<br/>InitialContactId:  The identifier of the contact. This is the identifier of the contact associated with the first interaction with the contact center.<br/>ContactId:  The identifier of the contact.<br/>InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VoiceRecordingTrack</i> Identifies which track is being recorded.<br/>
        :return:         """
        pass

    def start_outbound_voice_contact(self, InstanceId: str, ContactFlowId: str, DestinationPhoneNumber: str, ClientToken: str=None, SourcePhoneNumber: str=None, QueueId: str=None, Attributes: Attributes=None) -> StartOutboundVoiceContactResponse:
        r"""Places an outbound call to a contact, and then initiates the contact flow. It performs the actions in the contact flow that's specified (in <code>ContactFlowId</code>). Agents do not initiate the outbound API, which means that they do not dial the contact. If the contact flow places an outbound call to a contact, and then puts the contact in queue, the call is then routed to the agent, like any other inbound case. There is a 60-second dialing timeout for this operation. If the call is not connected after 60 seconds, it fails. <note> UK numbers with a 447 prefix are not allowed by default. Before you can dial these UK mobile numbers, you must submit a service quota increase request. For more information, see <a href="https://docs.aws.amazon.com/connect/latest/adminguide/amazon-connect-service-limits.html">Amazon Connect Service Quotas</a> in the <i>Amazon Connect Administrator Guide</i>.  </note>

        :param self:
        :param Attributes:  A custom key-value pair using an attribute map. The attributes are standard Amazon Connect attributes, and can be accessed in contact flows just like any other contact attributes. There can be up to 32,768 UTF-8 bytes across all key-value pairs per contact. Attribute keys can include only alphanumeric, dash, and underscore characters.<br/>QueueId:  The queue for the call. If you specify a queue, the phone displayed for caller ID is the phone number specified in the queue. If you do not specify a queue, the queue defined in the contact flow is used. If you do not specify a queue, you must specify a source phone number.<br/>SourcePhoneNumber:  The phone number associated with the Amazon Connect instance, in E.164 format. If you do not specify a source phone number, you must specify a queue.<br/>ClientToken:  A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. The token is valid for 7 days after creation. If a contact is already started, the contact ID is returned. <br/>InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>ContactFlowId:  The identifier of the contact flow for the outbound call. To see the ContactFlowId in the Amazon Connect console user interface, on the navigation menu go to <b>Routing</b>, <b>Contact Flows</b>. Choose the contact flow. On the contact flow page, under the name of the contact flow, choose <b>Show additional flow information</b>. The ContactFlowId is the last part of the ARN, shown here in bold:  arn:aws:connect:us-west-2:xxxxxxxxxxxx:instance/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/contact-flow/<b>846ec553-a005-41c0-8341-xxxxxxxxxxxx</b> <br/>DestinationPhoneNumber:  The phone number of the customer, in E.164 format.<br/>
        :return: ContactId:  The identifier of this contact within the Amazon Connect instance.<br/>        """
        pass

    def start_task_contact(self, Name: str, ContactFlowId: str, InstanceId: str, PreviousContactId: str=None, Attributes: Attributes=None, References: ContactReferences=None, Description: str=None, ClientToken: str=None) -> StartTaskContactResponse:
        r"""Initiates a contact flow to start a new task.

        :param self:
        :param ClientToken:  A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.<br/>Description:  A description of the task that is shown to an agent in the Contact Control Panel (CCP).<br/>References:  A formatted URL that is shown to an agent in the Contact Control Panel (CCP).<br/>Name:  The name of a task that is shown to an agent in the Contact Control Panel (CCP).<br/>Attributes:  A custom key-value pair using an attribute map. The attributes are standard Amazon Connect attributes, and can be accessed in contact flows just like any other contact attributes. There can be up to 32,768 UTF-8 bytes across all key-value pairs per contact. Attribute keys can include only alphanumeric, dash, and underscore characters.<br/>ContactFlowId:  The identifier of the contact flow for initiating the tasks. To see the ContactFlowId in the Amazon Connect console user interface, on the navigation menu go to <b>Routing</b>, <b>Contact Flows</b>. Choose the contact flow. On the contact flow page, under the name of the contact flow, choose <b>Show additional flow information</b>. The ContactFlowId is the last part of the ARN, shown here in bold:  arn:aws:connect:us-west-2:xxxxxxxxxxxx:instance/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/contact-flow/<b>846ec553-a005-41c0-8341-xxxxxxxxxxxx</b> <br/>PreviousContactId:  The identifier of the previous chat, voice, or task contact. <br/>InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>
        :return: ContactId:  The identifier of this contact within the Amazon Connect instance.<br/>        """
        pass

    def stop_contact(self, InstanceId: str, ContactId: str) -> StopContactResponse:
        r"""Ends the specified contact.

        :param self:
        :param InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>ContactId:  The ID of the contact.<br/>
        :return:         """
        pass

    def stop_contact_recording(self, InitialContactId: str, ContactId: str, InstanceId: str) -> StopContactRecordingResponse:
        r"""Stops recording a call when a contact is being recorded. StopContactRecording is a one-time action. If you use StopContactRecording to stop recording an ongoing call, you can't use StartContactRecording to restart it. For scenarios where the recording has started and you want to suspend it for sensitive information (for example, to collect a credit card number), and then restart it, use SuspendContactRecording and ResumeContactRecording. Only voice recordings are supported at this time.

        :param self:
        :param InitialContactId:  The identifier of the contact. This is the identifier of the contact associated with the first interaction with the contact center.<br/>ContactId:  The identifier of the contact.<br/>InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>
        :return:         """
        pass

    def suspend_contact_recording(self, InitialContactId: str, ContactId: str, InstanceId: str) -> SuspendContactRecordingResponse:
        r"""When a contact is being recorded, this API suspends recording the call. For example, you might suspend the call recording while collecting sensitive information, such as a credit card number. Then use ResumeContactRecording to restart recording.  The period of time that the recording is suspended is filled with silence in the final recording.  Only voice recordings are supported at this time.

        :param self:
        :param InitialContactId:  The identifier of the contact. This is the identifier of the contact associated with the first interaction with the contact center.<br/>ContactId:  The identifier of the contact.<br/>InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>
        :return:         """
        pass

    def tag_resource(self, tags: TagMap, resourceArn: str):
        r"""Adds the specified tags to the specified resource. The supported resource types are users, routing profiles, queues, quick connects, and contact flows. For sample policies that use tags, see <a href="https://docs.aws.amazon.com/connect/latest/adminguide/security_iam_id-based-policy-examples.html">Amazon Connect Identity-Based Policy Examples</a> in the <i>Amazon Connect Administrator Guide</i>.

        :param self:
        :param tags:  One or more tags. For example, { "tags": {"key1":"value1", "key2":"value2"} }.<br/>resourceArn:  The Amazon Resource Name (ARN) of the resource.<br/>
        :return:         """
        pass

    def untag_resource(self, tagKeys: List[TagKey], resourceArn: str):
        r"""Removes the specified tags from the specified resource.

        :param self:
        :param tagKeys:  The tag keys.<br/>resourceArn:  The Amazon Resource Name (ARN) of the resource.<br/>
        :return:         """
        pass

    def update_contact_attributes(self, Attributes: Attributes, InstanceId: str, InitialContactId: str) -> UpdateContactAttributesResponse:
        r"""Creates or updates user-defined contact attributes associated with the specified contact. You can create or update user-defined attributes for both ongoing and completed contacts. For example, while the call is active, you can update the customer's name or the reason the customer called. You can add notes about steps that the agent took during the call that display to the next agent that takes the call. You can also update attributes for a contact using data from your CRM application and save the data with the contact in Amazon Connect. You could also flag calls for additional analysis, such as legal review or to identify abusive callers. Contact attributes are available in Amazon Connect for 24 months, and are then deleted. For information about CTR retention and the maximum size of the CTR attributes section, see <a href="https://docs.aws.amazon.com/connect/latest/adminguide/amazon-connect-service-limits.html#feature-limits">Feature specifications</a> in the <i>Amazon Connect Administrator Guide</i>.   <b>Important:</b> You cannot use the operation to update attributes for contacts that occurred prior to the release of the API, which was September 12, 2018. You can update attributes only for contacts that started after the release of the API. If you attempt to update attributes for a contact that occurred prior to the release of the API, a 400 error is returned. This applies also to queued callbacks that were initiated prior to the release of the API but are still active in your instance.

        :param self:
        :param Attributes:  The Amazon Connect attributes. These attributes can be accessed in contact flows just like any other contact attributes. You can have up to 32,768 UTF-8 bytes across all attributes for a contact. Attribute keys can include only alphanumeric, dash, and underscore characters.<br/>InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>InitialContactId:  The identifier of the contact. This is the identifier of the contact associated with the first interaction with the contact center.<br/>
        :return:         """
        pass

    def update_contact_flow_content(self, Content: str, ContactFlowId: str, InstanceId: str):
        r"""Updates the specified contact flow. You can also create and update contact flows using the <a href="https://docs.aws.amazon.com/connect/latest/adminguide/flow-language.html">Amazon Connect Flow language</a>.

        :param self:
        :param Content:  The JSON string that represents contact flow’s content. For an example, see <a href="https://docs.aws.amazon.com/connect/latest/adminguide/flow-language-example.html">Example contact flow in Amazon Connect Flow language</a> in the <i>Amazon Connect Administrator Guide</i>. <br/>ContactFlowId:  The identifier of the contact flow.<br/>InstanceId:  The identifier of the Amazon Connect instance.<br/>
        :return:         """
        pass

    def update_contact_flow_name(self, ContactFlowId: str, InstanceId: str, Name: str=None, Description: str=None):
        r"""The name of the contact flow. You can also create and update contact flows using the <a href="https://docs.aws.amazon.com/connect/latest/adminguide/flow-language.html">Amazon Connect Flow language</a>.

        :param self:
        :param Description:  The description of the contact flow.<br/>Name:  The name of the contact flow.<br/>ContactFlowId:  The identifier of the contact flow.<br/>InstanceId:  The identifier of the Amazon Connect instance.<br/>
        :return:         """
        pass

    def update_instance_attribute(self, Value: str, AttributeType: str, InstanceId: str):
        r"""This API is in preview release for Amazon Connect and is subject to change. Updates the value for the specified attribute type.

        :param self:
        :param Value:  The value for the attribute. Maximum character limit is 100. <br/>AttributeType:  The type of attribute.<br/>InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>
        :return:         """
        pass

    def update_instance_storage_config(self, StorageConfig: InstanceStorageConfig, ResourceType: str, AssociationId: str, InstanceId: str):
        r"""This API is in preview release for Amazon Connect and is subject to change. Updates an existing configuration for a resource type. This API is idempotent.

        :param self:
        :param StorageConfig:  The storage configuration for the instance.:<br/>ResourceType:  A valid resource type.<br/>AssociationId:  The existing association identifier that uniquely identifies the resource type and storage config for the given instance ID.<br/>InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KinesisFirehoseConfig</i> The configuration of the Kinesis Firehose delivery stream.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>KinesisFirehoseConfig</b>: The configuration of the Kinesis Firehose delivery stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KinesisStreamConfig</i> The configuration of the Kinesis data stream.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>KinesisStreamConfig</b>: The configuration of the Kinesis data stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KinesisVideoStreamConfig</i> The configuration of the Kinesis video stream.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>KinesisVideoStreamConfig</b>: The configuration of the Kinesis video stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Config</i> The S3 bucket configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3Config</b>: The S3 bucket configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageType</i> A valid storage type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociationId</i> The existing association identifier that uniquely identifies the resource type and storage config for the given instance ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BucketPrefix</i> The S3 bucket prefix.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BucketName</i> The S3 bucket name.<br/>The Amazon S3 encryption configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EncryptionConfig</b>: The Amazon S3 encryption configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RetentionPeriodHours</i> The number of hours data is retained in the stream. Kinesis Video Streams retains the data in a data store that is associated with the stream. The default value is 0, indicating that the stream does not persist data.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Prefix</i> The prefix of the video stream.<br/>The encryption configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EncryptionConfig</b>: The encryption configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamArn</i> The Amazon Resource Name (ARN) of the data stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FirehoseArn</i> The Amazon Resource Name (ARN) of the delivery stream.<br/>
        :return:         """
        pass

    def update_queue_hours_of_operation(self, HoursOfOperationId: str, QueueId: str, InstanceId: str):
        r"""This API is in preview release for Amazon Connect and is subject to change. Updates the hours of operation for the specified queue.

        :param self:
        :param HoursOfOperationId:  The identifier for the hours of operation.<br/>QueueId:  The identifier for the queue.<br/>InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>
        :return:         """
        pass

    def update_queue_max_contacts(self, QueueId: str, InstanceId: str, MaxContacts: int=None):
        r"""This API is in preview release for Amazon Connect and is subject to change. Updates the maximum number of contacts allowed in a queue before it is considered full.

        :param self:
        :param MaxContacts:  The maximum number of contacts that can be in the queue before it is considered full.<br/>QueueId:  The identifier for the queue.<br/>InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>
        :return:         """
        pass

    def update_queue_name(self, QueueId: str, InstanceId: str, Name: str=None, Description: str=None):
        r"""This API is in preview release for Amazon Connect and is subject to change. Updates the name and description of a queue. At least <code>Name</code> or <code>Description</code> must be provided.

        :param self:
        :param Description:  The description of the queue.<br/>Name:  The name of the queue.<br/>QueueId:  The identifier for the queue.<br/>InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>
        :return:         """
        pass

    def update_queue_outbound_caller_config(self, OutboundCallerConfig: OutboundCallerConfig, QueueId: str, InstanceId: str):
        r"""This API is in preview release for Amazon Connect and is subject to change. Updates the outbound caller ID name, number, and outbound whisper flow for a specified queue.

        :param self:
        :param OutboundCallerConfig:  The outbound caller ID name, number, and outbound whisper flow.:<br/>QueueId:  The identifier for the queue.<br/>InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OutboundFlowId</i> The outbound whisper flow to be used during an outbound call.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OutboundCallerIdNumberId</i> The caller ID number.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OutboundCallerIdName</i> The caller ID name.<br/>
        :return:         """
        pass

    def update_queue_status(self, Status: str, QueueId: str, InstanceId: str):
        r"""This API is in preview release for Amazon Connect and is subject to change. Updates the status of the queue.

        :param self:
        :param Status:  The status of the queue.<br/>QueueId:  The identifier for the queue.<br/>InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>
        :return:         """
        pass

    def update_quick_connect_config(self, QuickConnectConfig: QuickConnectConfig, QuickConnectId: str, InstanceId: str):
        r"""Updates the configuration settings for the specified quick connect.

        :param self:
        :param QuickConnectConfig:  Information about the configuration settings for the quick connect.:<br/>QuickConnectId:  The identifier for the quick connect.<br/>InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PhoneConfig</i> The phone configuration. This is required only if QuickConnectType is PHONE_NUMBER.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PhoneConfig</b>: The phone configuration. This is required only if QuickConnectType is PHONE_NUMBER.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>QueueConfig</i> The queue configuration. This is required only if QuickConnectType is QUEUE.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>QueueConfig</b>: The queue configuration. This is required only if QuickConnectType is QUEUE.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserConfig</i> The user configuration. This is required only if QuickConnectType is USER.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>UserConfig</b>: The user configuration. This is required only if QuickConnectType is USER.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>QuickConnectType</i> The type of quick connect. In the Amazon Connect console, when you create a quick connect, you are prompted to assign one of the following types: Agent (USER), External (PHONE_NUMBER), or Queue (QUEUE). <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ContactFlowId</i> The identifier of the contact flow.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UserId</i> The identifier of the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ContactFlowId</i> The identifier of the contact flow.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>QueueId</i> The identifier for the queue.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PhoneNumber</i> The phone number in E.164 format.<br/>
        :return:         """
        pass

    def update_quick_connect_name(self, QuickConnectId: str, InstanceId: str, Name: str=None, Description: str=None):
        r"""Updates the name and description of a quick connect. The request accepts the following data in JSON format. At least <code>Name</code> or <code>Description</code> must be provided.

        :param self:
        :param Description:  The description of the quick connect.<br/>Name:  The name of the quick connect.<br/>QuickConnectId:  The identifier for the quick connect.<br/>InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>
        :return:         """
        pass

    def update_routing_profile_concurrency(self, MediaConcurrencies: List[MediaConcurrency], RoutingProfileId: str, InstanceId: str):
        r"""Updates the channels that agents can handle in the Contact Control Panel (CCP) for a routing profile.

        :param self:
        :param MediaConcurrencies:  The channels that agents can handle in the Contact Control Panel (CCP).<br/>RoutingProfileId:  The identifier of the routing profile.<br/>InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>
        :return:         """
        pass

    def update_routing_profile_default_outbound_queue(self, DefaultOutboundQueueId: str, RoutingProfileId: str, InstanceId: str):
        r"""Updates the default outbound queue of a routing profile.

        :param self:
        :param DefaultOutboundQueueId:  The identifier for the default outbound queue.<br/>RoutingProfileId:  The identifier of the routing profile.<br/>InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>
        :return:         """
        pass

    def update_routing_profile_name(self, RoutingProfileId: str, InstanceId: str, Name: str=None, Description: str=None):
        r"""Updates the name and description of a routing profile. The request accepts the following data in JSON format. At least <code>Name</code> or <code>Description</code> must be provided.

        :param self:
        :param Description:  The description of the routing profile. Must not be more than 250 characters.<br/>Name:  The name of the routing profile. Must not be more than 127 characters.<br/>RoutingProfileId:  The identifier of the routing profile.<br/>InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>
        :return:         """
        pass

    def update_routing_profile_queues(self, QueueConfigs: List[RoutingProfileQueueConfig], RoutingProfileId: str, InstanceId: str):
        r"""Updates the properties associated with a set of queues for a routing profile.

        :param self:
        :param QueueConfigs:  The queues to be updated for this routing profile. Queues must first be associated to the routing profile. You can do this using AssociateRoutingProfileQueues.<br/>RoutingProfileId:  The identifier of the routing profile.<br/>InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>
        :return:         """
        pass

    def update_user_hierarchy(self, InstanceId: str, UserId: str, HierarchyGroupId: str=None):
        r"""Assigns the specified hierarchy group to the specified user.

        :param self:
        :param InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>UserId:  The identifier of the user account.<br/>HierarchyGroupId:  The identifier of the hierarchy group.<br/>
        :return:         """
        pass

    def update_user_hierarchy_group_name(self, InstanceId: str, HierarchyGroupId: str, Name: str):
        r"""Updates the name of the user hierarchy group. 

        :param self:
        :param InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>HierarchyGroupId:  The identifier of the hierarchy group.<br/>Name:  The name of the hierarchy group. Must not be more than 100 characters.<br/>
        :return:         """
        pass

    def update_user_hierarchy_structure(self, InstanceId: str, HierarchyStructure: HierarchyStructureUpdate):
        r"""Updates the user hierarchy structure: add, remove, and rename user hierarchy levels.

        :param self:
        :param InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>HierarchyStructure:  The hierarchy levels to update.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LevelFive</i> The update for level five.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>LevelFive</b>: The update for level five.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LevelFour</i> The update for level four.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>LevelFour</b>: The update for level four.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LevelThree</i> The update for level three.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>LevelThree</b>: The update for level three.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LevelTwo</i> The update for level two.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>LevelTwo</b>: The update for level two.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LevelOne</i> The update for level one.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>LevelOne</b>: The update for level one.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the user hierarchy level. Must not be more than 50 characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the user hierarchy level. Must not be more than 50 characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the user hierarchy level. Must not be more than 50 characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the user hierarchy level. Must not be more than 50 characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the user hierarchy level. Must not be more than 50 characters.<br/>
        :return:         """
        pass

    def update_user_identity_info(self, InstanceId: str, UserId: str, IdentityInfo: UserIdentityInfo):
        r"""Updates the identity information for the specified user. <important> We strongly recommend limiting who has the ability to invoke <code>UpdateUserIdentityInfo</code>. Someone with that ability can change the login credentials of other users by changing their email address. This poses a security risk to your organization. They can change the email address of a user to the attacker's email address, and then reset the password through email. For more information, see <a href="https://docs.aws.amazon.com/connect/latest/adminguide/security-profile-best-practices.html">Best Practices for Security Profiles</a> in the <i>Amazon Connect Administrator Guide</i>. </important>

        :param self:
        :param InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>UserId:  The identifier of the user account.<br/>IdentityInfo:  The identity information for the user.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Email</i> The email address. If you are using SAML for identity management and include this parameter, an error is returned.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastName</i> The last name. This is required if you are using Amazon Connect or SAML for identity management.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FirstName</i> The first name. This is required if you are using Amazon Connect or SAML for identity management.<br/>
        :return:         """
        pass

    def update_user_phone_config(self, InstanceId: str, UserId: str, PhoneConfig: UserPhoneConfig):
        r"""Updates the phone configuration settings for the specified user.

        :param self:
        :param InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>UserId:  The identifier of the user account.<br/>PhoneConfig:  Information about phone configuration settings for the user.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeskPhoneNumber</i> The phone number for the user's desk phone.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AfterContactWorkTimeLimit</i> The After Call Work (ACW) timeout setting, in seconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoAccept</i> The Auto accept setting.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PhoneType</i> The phone type.<br/>
        :return:         """
        pass

    def update_user_routing_profile(self, InstanceId: str, UserId: str, RoutingProfileId: str):
        r"""Assigns the specified routing profile to the specified user.

        :param self:
        :param InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>UserId:  The identifier of the user account.<br/>RoutingProfileId:  The identifier of the routing profile for the user.<br/>
        :return:         """
        pass

    def update_user_security_profiles(self, InstanceId: str, UserId: str, SecurityProfileIds: List[SecurityProfileId]):
        r"""Assigns the specified security profiles to the specified user.

        :param self:
        :param InstanceId:  The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.<br/>UserId:  The identifier of the user account.<br/>SecurityProfileIds:  The identifiers of the security profiles for the user.<br/>
        :return:         """
        pass





class ConnectContactLens(BaseClient):
    r"""Contact Lens for Amazon Connect enables you to analyze conversations between customer and agents, by using speech transcription, natural language processing, and intelligent search capabilities. It performs sentiment analysis, detects issues, and enables you to automatically categorize contacts. Contact Lens for Amazon Connect provides both real-time and post-call analytics of customer-agent conversations. For more information, see <a href="https://docs.aws.amazon.com/connect/latest/adminguide/analyze-conversations.html">Analyze conversations using Contact Lens</a> in the <i>Amazon Connect Administrator Guide</i>. """




    class ListRealtimeContactAnalysisSegmentsRequest(Mapping):
        pass
    
    class ListRealtimeContactAnalysisSegmentsResponse(Mapping):
        pass
    
    def list_realtime_contact_analysis_segments(self, ContactId: str, InstanceId: str, MaxResults: int=None, NextToken: str=None) -> ListRealtimeContactAnalysisSegmentsResponse:
        r"""Provides a list of analysis segments for a real-time analysis session.

        :param self:
        :param NextToken:  The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.<br/>MaxResults:  The maximimum number of results to return per page.<br/>ContactId:  The identifier of the contact.<br/>InstanceId:  The identifier of the Amazon Connect instance.<br/>
        :return: NextToken:  If there are additional results, this is the token for the next set of results. If response includes <code>nextToken</code> there are two possible scenarios: <ul> <li> There are more segments so another call is required to get them. </li> <li> There are no more segments at this time, but more may be available later (real-time analysis is in progress) so the client should call the operation again to get new segments. </li> </ul> If response does not include <code>nextToken</code>, the analysis is completed (successfully or failed) and there are no more segments to retrieve.<br/>Segments:  An analyzed transcript or category.<br/>        """
        pass





class ConnectParticipant(BaseClient):
    r"""Amazon Connect is a cloud-based contact center solution that makes it easy to set up and manage a customer contact center and provide reliable customer engagement at any scale. Amazon Connect enables customer contacts through voice or chat. The APIs described here are used by chat participants, such as agents and customers."""




    class CompleteAttachmentUploadRequest(Mapping):
        pass
    
    class CompleteAttachmentUploadResponse(Mapping):
        pass
    
    class ArtifactId(object):
        pass
    
    class CreateParticipantConnectionRequest(Mapping):
        pass
    
    class CreateParticipantConnectionResponse(Mapping):
        pass
    
    class ConnectionType(object):
        pass
    
    class DisconnectParticipantRequest(Mapping):
        pass
    
    class DisconnectParticipantResponse(Mapping):
        pass
    
    class GetAttachmentRequest(Mapping):
        pass
    
    class GetAttachmentResponse(Mapping):
        pass
    
    class GetTranscriptRequest(Mapping):
        pass
    
    class GetTranscriptResponse(Mapping):
        pass
    
    class StartPosition(Mapping):
        pass
    
    class SendEventRequest(Mapping):
        pass
    
    class SendEventResponse(Mapping):
        pass
    
    class SendMessageRequest(Mapping):
        pass
    
    class SendMessageResponse(Mapping):
        pass
    
    class StartAttachmentUploadRequest(Mapping):
        pass
    
    class StartAttachmentUploadResponse(Mapping):
        pass
    
    class AttachmentSizeInBytes(object):
        pass
    
    def complete_attachment_upload(self, ConnectionToken: str, ClientToken: str, AttachmentIds: List[ArtifactId]) -> CompleteAttachmentUploadResponse:
        r"""Allows you to confirm that the attachment has been uploaded using the pre-signed URL provided in StartAttachmentUpload API. 

        :param self:
        :param ConnectionToken:  The authentication token associated with the participant's connection.<br/>ClientToken:  A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.<br/>AttachmentIds:  A list of unique identifiers for the attachments.<br/>
        :return:         """
        pass

    def create_participant_connection(self, ParticipantToken: str, Type: List[ConnectionType]) -> CreateParticipantConnectionResponse:
        r"""Creates the participant's connection. Note that ParticipantToken is used for invoking this API instead of ConnectionToken. The participant token is valid for the lifetime of the participant – until they are part of a contact. The response URL for <code>WEBSOCKET</code> Type has a connect expiry timeout of 100s. Clients must manually connect to the returned websocket URL and subscribe to the desired topic.  For chat, you need to publish the following on the established websocket connection:  <code>{"topic":"aws/subscribe","content":{"topics":["aws/chat"]}}</code>  Upon websocket URL expiry, as specified in the response ConnectionExpiry parameter, clients need to call this API again to obtain a new websocket URL and perform the same steps as before. <note> The Amazon Connect Participant Service APIs do not use <a href="https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html">Signature Version 4 authentication</a>. </note>

        :param self:
        :param ParticipantToken:  This is a header parameter. The Participant Token as obtained from <a href="https://docs.aws.amazon.com/connect/latest/APIReference/API_StartChatContact.html">StartChatContact</a> API response.<br/>Type:  Type of connection information required.<br/>
        :return: ConnectionCredentials:  Creates the participant's connection credentials. The authentication token associated with the participant's connection.:<br/>Websocket:  Creates the participant's websocket connection.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConnectionExpiry</i> The URL expiration timestamp in ISO date format. It's specified in ISO 8601 format: yyyy-MM-ddThh:mm:ss.SSSZ. For example, 2019-11-08T02:41:28.172Z.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Url</i> The URL of the websocket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Expiry</i> The expiration of the token. It's specified in ISO 8601 format: yyyy-MM-ddThh:mm:ss.SSSZ. For example, 2019-11-08T02:41:28.172Z.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConnectionToken</i> The connection token.<br/>        """
        pass

    def disconnect_participant(self, ConnectionToken: str, ClientToken: str=None) -> DisconnectParticipantResponse:
        r"""Disconnects a participant. Note that ConnectionToken is used for invoking this API instead of ParticipantToken. The Amazon Connect Participant Service APIs do not use <a href="https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html">Signature Version 4 authentication</a>.

        :param self:
        :param ConnectionToken:  The authentication token associated with the participant's connection.<br/>ClientToken:  A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.<br/>
        :return:         """
        pass

    def get_attachment(self, ConnectionToken: str, AttachmentId: str) -> GetAttachmentResponse:
        r"""Provides a pre-signed URL for download of a completed attachment. This is an asynchronous API for use with active contacts.

        :param self:
        :param ConnectionToken:  The authentication token associated with the participant's connection.<br/>AttachmentId:  A unique identifier for the attachment.<br/>
        :return: UrlExpiry:  The expiration time of the URL in ISO timestamp. It's specified in ISO 8601 format: yyyy-MM-ddThh:mm:ss.SSSZ. For example, 2019-11-08T02:41:28.172Z.<br/>Url:  The pre-signed URL using which file would be downloaded from Amazon S3 by the API caller.<br/>        """
        pass

    def get_transcript(self, ConnectionToken: str, ContactId: str=None, MaxResults: int=None, NextToken: str=None, ScanDirection: str=None, SortOrder: str=None, StartPosition: StartPosition=None) -> GetTranscriptResponse:
        r"""Retrieves a transcript of the session, including details about any attachments. Note that ConnectionToken is used for invoking this API instead of ParticipantToken. The Amazon Connect Participant Service APIs do not use <a href="https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html">Signature Version 4 authentication</a>.

        :param self:
        :param ConnectionToken:  The authentication token associated with the participant's connection.<br/>StartPosition:  A filtering option for where to start.:<br/>SortOrder:  The sort order for the records. Default: DESCENDING.<br/>ScanDirection:  The direction from StartPosition from which to retrieve message. Default: BACKWARD when no StartPosition is provided, FORWARD with StartPosition. <br/>NextToken:  The pagination token. Use the value returned previously in the next subsequent request to retrieve the next set of results.<br/>MaxResults:  The maximum number of results to return in the page. Default: 10. <br/>ContactId:  The contactId from the current contact chain for which transcript is needed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MostRecent</i> The start position of the most recent message where you want to start. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AbsoluteTime</i> The time in ISO format where to start. It's specified in ISO 8601 format: yyyy-MM-ddThh:mm:ss.SSSZ. For example, 2019-11-08T02:41:28.172Z.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID of the message or event where to start. <br/>
        :return: NextToken:  The pagination token. Use the value returned previously in the next subsequent request to retrieve the next set of results.<br/>Transcript:  The list of messages in the session.<br/>InitialContactId:  The initial contact ID for the contact. <br/>        """
        pass

    def send_event(self, ConnectionToken: str, ContentType: str, Content: str=None, ClientToken: str=None) -> SendEventResponse:
        r"""Sends an event. Note that ConnectionToken is used for invoking this API instead of ParticipantToken. The Amazon Connect Participant Service APIs do not use <a href="https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html">Signature Version 4 authentication</a>.

        :param self:
        :param ConnectionToken:  The authentication token associated with the participant's connection.<br/>ClientToken:  A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.<br/>Content:  The content of the event to be sent (for example, message text). This is not yet supported.<br/>ContentType:  The content type of the request. Supported types are: <ul> <li> application/vnd.amazonaws.connect.event.typing </li> <li> application/vnd.amazonaws.connect.event.connection.acknowledged </li> </ul><br/>
        :return: AbsoluteTime:  The time when the event was sent. It's specified in ISO 8601 format: yyyy-MM-ddThh:mm:ss.SSSZ. For example, 2019-11-08T02:41:28.172Z.<br/>Id:  The ID of the response.<br/>        """
        pass

    def send_message(self, ConnectionToken: str, Content: str, ContentType: str, ClientToken: str=None) -> SendMessageResponse:
        r"""Sends a message. Note that ConnectionToken is used for invoking this API instead of ParticipantToken. <note> The Amazon Connect Participant Service APIs do not use <a href="https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html">Signature Version 4 authentication</a>. </note>

        :param self:
        :param ConnectionToken:  The authentication token associated with the connection.<br/>ClientToken:  A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.<br/>Content:  The content of the message.<br/>ContentType:  The type of the content. Supported types are text/plain.<br/>
        :return: AbsoluteTime:  The time when the message was sent. It's specified in ISO 8601 format: yyyy-MM-ddThh:mm:ss.SSSZ. For example, 2019-11-08T02:41:28.172Z.<br/>Id:  The ID of the message.<br/>        """
        pass

    def start_attachment_upload(self, ConnectionToken: str, ClientToken: str, AttachmentName: str, AttachmentSizeInBytes: AttachmentSizeInBytes, ContentType: str) -> StartAttachmentUploadResponse:
        r"""Provides a pre-signed Amazon S3 URL in response for uploading the file directly to S3.

        :param self:
        :param ConnectionToken:  The authentication token associated with the participant's connection.<br/>ClientToken:  A unique case sensitive identifier to support idempotency of request.<br/>AttachmentName:  A case-sensitive name of the attachment being uploaded.<br/>AttachmentSizeInBytes:  The size of the attachment in bytes.<br/>ContentType:  Describes the MIME file type of the attachment. For a list of supported file types, see <a href="https://docs.aws.amazon.com/connect/latest/adminguide/amazon-connect-service-limits.html#feature-limits">Feature specifications</a> in the <i>Amazon Connect Administrator Guide</i>.<br/>
        :return: UploadMetadata:  Fields to be used while uploading the attachment.:<br/>AttachmentId:  A unique identifier for the attachment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HeadersToInclude</i> The headers to be provided while uploading the file to the URL.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UrlExpiry</i> The expiration time of the URL in ISO timestamp. It's specified in ISO 8601 format: yyyy-MM-ddThh:mm:ss.SSSZ. For example, 2019-11-08T02:41:28.172Z.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Url</i> The pre-signed URL using which file would be downloaded from Amazon S3 by the API caller.<br/>        """
        pass





class CostandUsageReportService(BaseClient):
    r"""The AWS Cost and Usage Report API enables you to programmatically create, query, and delete AWS Cost and Usage report definitions. AWS Cost and Usage reports track the monthly AWS costs and usage associated with your AWS account. The report contains line items for each unique combination of AWS product, usage type, and operation that your AWS account uses. You can configure the AWS Cost and Usage report to show only the data that you want, using the AWS Cost and Usage API. Service Endpoint The AWS Cost and Usage Report API provides the following endpoint: <ul> <li> cur.us-east-1.amazonaws.com </li> </ul>"""


    class DescribeReportDefinitionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_report_definitions` for valid parameters"""
            pass


    class DeleteReportDefinitionRequest(Mapping):
        pass
    
    class DeleteReportDefinitionResponse(Mapping):
        pass
    
    class DescribeReportDefinitionsRequest(Mapping):
        pass
    
    class DescribeReportDefinitionsResponse(Mapping):
        pass
    
    class ModifyReportDefinitionRequest(Mapping):
        pass
    
    class ModifyReportDefinitionResponse(Mapping):
        pass
    
    class ReportDefinition(Mapping):
        pass
    
    class PutReportDefinitionRequest(Mapping):
        pass
    
    class PutReportDefinitionResponse(Mapping):
        pass
    
    def delete_report_definition(self, ReportName: str=None) -> DeleteReportDefinitionResponse:
        r"""Deletes the specified report.

        :param self:
        :param ReportName:  The name of the report that you want to delete. The name must be unique, is case sensitive, and can't include spaces.<br/>
        :return: ResponseMessage:  Whether the deletion was successful or not.<br/>        """
        pass

    def describe_report_definitions(self, MaxResults: int=None, NextToken: str=None) -> DescribeReportDefinitionsResponse:
        r"""Lists the AWS Cost and Usage reports available to this account.

        :param self:
        :param NextToken:  A generic string.<br/>MaxResults:  The maximum number of results that AWS returns for the operation.<br/>
        :return: NextToken:  A generic string.<br/>ReportDefinitions:  A list of AWS Cost and Usage reports owned by the account.<br/>        """
        pass

    def modify_report_definition(self, ReportDefinition: ReportDefinition, ReportName: str) -> ModifyReportDefinitionResponse:
        r"""Allows you to programatically update your report preferences.

        :param self:
        :param ReportDefinition:  The definition of AWS Cost and Usage Report. You can specify the report name, time unit, report format, compression format, S3 bucket, additional artifacts, and schema elements in the definition. :<br/>ReportName:  The name of the report that you want to create. The name must be unique, is case sensitive, and can't include spaces. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BillingViewArn</i>  The Amazon resource name of the billing view. You can get this value by using the billing view service public APIs. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReportVersioning</i> Whether you want Amazon Web Services to overwrite the previous version of each report or to deliver the report in addition to the previous versions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RefreshClosedReports</i> Whether you want Amazon Web Services to update your reports after they have been finalized if Amazon Web Services detects charges related to previous months. These charges can include refunds, credits, or support fees.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdditionalArtifacts</i> A list of manifests that you want Amazon Web Services to create for this report.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Region</i> The region of the S3 bucket that AWS delivers the report into.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Prefix</i> The prefix that AWS adds to the report name when AWS delivers the report. Your prefix can't include spaces.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Bucket</i> The S3 bucket where AWS delivers the report.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdditionalSchemaElements</i> A list of strings that indicate additional content that Amazon Web Services includes in the report, such as individual resource IDs. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Compression</i> The compression format that AWS uses for the report.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Format</i> The format that AWS saves the report in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TimeUnit</i> The length of time covered by the report. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReportName</i> The name of the report that you want to create. The name must be unique, is case sensitive, and can't include spaces. <br/>
        :return:         """
        pass

    def put_report_definition(self, ReportDefinition: ReportDefinition) -> PutReportDefinitionResponse:
        r"""Creates a new report using the description that you provide.

        :param self:
        :param ReportDefinition:  Represents the output of the PutReportDefinition operation. The content consists of the detailed metadata and data file information. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BillingViewArn</i>  The Amazon resource name of the billing view. You can get this value by using the billing view service public APIs. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReportVersioning</i> Whether you want Amazon Web Services to overwrite the previous version of each report or to deliver the report in addition to the previous versions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RefreshClosedReports</i> Whether you want Amazon Web Services to update your reports after they have been finalized if Amazon Web Services detects charges related to previous months. These charges can include refunds, credits, or support fees.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdditionalArtifacts</i> A list of manifests that you want Amazon Web Services to create for this report.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Region</i> The region of the S3 bucket that AWS delivers the report into.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Prefix</i> The prefix that AWS adds to the report name when AWS delivers the report. Your prefix can't include spaces.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Bucket</i> The S3 bucket where AWS delivers the report.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdditionalSchemaElements</i> A list of strings that indicate additional content that Amazon Web Services includes in the report, such as individual resource IDs. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Compression</i> The compression format that AWS uses for the report.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Format</i> The format that AWS saves the report in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TimeUnit</i> The length of time covered by the report. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReportName</i> The name of the report that you want to create. The name must be unique, is case sensitive, and can't include spaces. <br/>
        :return:         """
        pass





class CustomerProfiles(BaseClient):
    r"""<fullname>Amazon Connect Customer Profiles</fullname> Welcome to the Amazon Connect Customer Profiles API Reference. This guide provides information about the Amazon Connect Customer Profiles API, including supported operations, data types, parameters, and schemas. Amazon Connect Customer Profiles is a unified customer profile for your contact center that has pre-built connectors powered by AppFlow that make it easy to combine customer information from third party applications, such as Salesforce (CRM), ServiceNow (ITSM), and your enterprise resource planning (ERP), with contact history from your Amazon Connect contact center. If you're new to Amazon Connect , you might find it helpful to also review the <a href="https://docs.aws.amazon.com/connect/latest/adminguide/what-is-amazon-connect.html">Amazon Connect Administrator Guide</a>."""




    class AddProfileKeyRequest(Mapping):
        pass
    
    class AddProfileKeyResponse(Mapping):
        pass
    
    class string1To255(object):
        pass
    
    class CreateDomainRequest(Mapping):
        pass
    
    class CreateDomainResponse(Mapping):
        pass
    
    class MatchingRequest(Mapping):
        pass
    
    class TagMap(object):
        pass
    
    class CreateProfileRequest(Mapping):
        pass
    
    class CreateProfileResponse(Mapping):
        pass
    
    class Address(Mapping):
        pass
    
    class Attributes(object):
        pass
    
    class DeleteDomainRequest(Mapping):
        pass
    
    class DeleteDomainResponse(Mapping):
        pass
    
    class DeleteIntegrationRequest(Mapping):
        pass
    
    class DeleteIntegrationResponse(Mapping):
        pass
    
    class DeleteProfileRequest(Mapping):
        pass
    
    class DeleteProfileResponse(Mapping):
        pass
    
    class DeleteProfileKeyRequest(Mapping):
        pass
    
    class DeleteProfileKeyResponse(Mapping):
        pass
    
    class DeleteProfileObjectRequest(Mapping):
        pass
    
    class DeleteProfileObjectResponse(Mapping):
        pass
    
    class DeleteProfileObjectTypeRequest(Mapping):
        pass
    
    class DeleteProfileObjectTypeResponse(Mapping):
        pass
    
    class GetDomainRequest(Mapping):
        pass
    
    class GetDomainResponse(Mapping):
        pass
    
    class GetIntegrationRequest(Mapping):
        pass
    
    class GetIntegrationResponse(Mapping):
        pass
    
    class GetMatchesRequest(Mapping):
        pass
    
    class GetMatchesResponse(Mapping):
        pass
    
    class GetProfileObjectTypeRequest(Mapping):
        pass
    
    class GetProfileObjectTypeResponse(Mapping):
        pass
    
    class GetProfileObjectTypeTemplateRequest(Mapping):
        pass
    
    class GetProfileObjectTypeTemplateResponse(Mapping):
        pass
    
    class ListAccountIntegrationsRequest(Mapping):
        pass
    
    class ListAccountIntegrationsResponse(Mapping):
        pass
    
    class ListDomainsRequest(Mapping):
        pass
    
    class ListDomainsResponse(Mapping):
        pass
    
    class ListIntegrationsRequest(Mapping):
        pass
    
    class ListIntegrationsResponse(Mapping):
        pass
    
    class ListProfileObjectTypeTemplatesRequest(Mapping):
        pass
    
    class ListProfileObjectTypeTemplatesResponse(Mapping):
        pass
    
    class ListProfileObjectTypesRequest(Mapping):
        pass
    
    class ListProfileObjectTypesResponse(Mapping):
        pass
    
    class ListProfileObjectsRequest(Mapping):
        pass
    
    class ListProfileObjectsResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class MergeProfilesRequest(Mapping):
        pass
    
    class MergeProfilesResponse(Mapping):
        pass
    
    class uuid(object):
        pass
    
    class FieldSourceProfileIds(Mapping):
        pass
    
    class PutIntegrationRequest(Mapping):
        pass
    
    class PutIntegrationResponse(Mapping):
        pass
    
    class FlowDefinition(Mapping):
        pass
    
    class PutProfileObjectRequest(Mapping):
        pass
    
    class PutProfileObjectResponse(Mapping):
        pass
    
    class PutProfileObjectTypeRequest(Mapping):
        pass
    
    class PutProfileObjectTypeResponse(Mapping):
        pass
    
    class boolean(object):
        pass
    
    class FieldMap(object):
        pass
    
    class KeyMap(object):
        pass
    
    class SearchProfilesRequest(Mapping):
        pass
    
    class SearchProfilesResponse(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateDomainRequest(Mapping):
        pass
    
    class UpdateDomainResponse(Mapping):
        pass
    
    class UpdateProfileRequest(Mapping):
        pass
    
    class UpdateProfileResponse(Mapping):
        pass
    
    class UpdateAddress(Mapping):
        pass
    
    class UpdateAttributes(object):
        pass
    
    def add_profile_key(self, DomainName: str, Values: List[string1To255], KeyName: str, ProfileId: str) -> AddProfileKeyResponse:
        r"""Associates a new key value with a specific profile, such as a Contact Trace Record (CTR) ContactId. A profile object can have a single unique key and any number of additional keys that can be used to identify the profile that it belongs to.

        :param self:
        :param DomainName:  The unique name of the domain.<br/>Values:  A list of key values.<br/>KeyName:  A searchable identifier of a customer profile.<br/>ProfileId:  The unique identifier of a customer profile.<br/>
        :return: Values:  A list of key values.<br/>KeyName:  A searchable identifier of a customer profile.<br/>        """
        pass

    def create_domain(self, DefaultExpirationDays: int, DomainName: str, DefaultEncryptionKey: str=None, DeadLetterQueueUrl: str=None, Matching: MatchingRequest=None, Tags: TagMap=None) -> CreateDomainResponse:
        r"""Creates a domain, which is a container for all customer data, such as customer profile attributes, object types, profile keys, and encryption keys. You can create multiple domains, and each domain can have multiple third-party integrations. Each Amazon Connect instance can be associated with only one domain. Multiple Amazon Connect instances can be associated with one domain.

        :param self:
        :param Tags:  The tags used to organize, track, or control access for this resource.<br/>Matching:  The process of matching duplicate profiles. This process runs every Saturday at 12AM.:<br/>DeadLetterQueueUrl:  The URL of the SQS dead letter queue, which is used for reporting errors associated with ingesting data from third party applications. You must set up a policy on the DeadLetterQueue for the SendMessage operation to enable Amazon Connect Customer Profiles to send messages to the DeadLetterQueue.<br/>DefaultEncryptionKey:  The default encryption key, which is an AWS managed key, is used when no specific type of encryption key is specified. It is used to encrypt all data before it is placed in permanent or semi-permanent storage.<br/>DefaultExpirationDays:  The default number of days until the data within the domain expires.<br/>DomainName:  The unique name of the domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> The flag that enables the matching process of duplicate profiles.<br/>
        :return: Tags:  The tags used to organize, track, or control access for this resource.<br/>LastUpdatedAt:  The timestamp of when the domain was most recently edited.<br/>CreatedAt:  The timestamp of when the domain was created.<br/>Matching:  The process of matching duplicate profiles. This process runs every Saturday at 12AM.:<br/>DeadLetterQueueUrl:  The URL of the SQS dead letter queue, which is used for reporting errors associated with ingesting data from third party applications.<br/>DefaultEncryptionKey:  The default encryption key, which is an AWS managed key, is used when no specific type of encryption key is specified. It is used to encrypt all data before it is placed in permanent or semi-permanent storage.<br/>DefaultExpirationDays:  The default number of days until the data within the domain expires.<br/>DomainName:  The unique name of the domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> The flag that enables the matching process of duplicate profiles.<br/>        """
        pass

    def create_profile(self, DomainName: str, AccountNumber: str=None, AdditionalInformation: str=None, PartyType: str=None, BusinessName: str=None, FirstName: str=None, MiddleName: str=None, LastName: str=None, BirthDate: str=None, Gender: str=None, PhoneNumber: str=None, MobilePhoneNumber: str=None, HomePhoneNumber: str=None, BusinessPhoneNumber: str=None, EmailAddress: str=None, PersonalEmailAddress: str=None, BusinessEmailAddress: str=None, Address: Address=None, ShippingAddress: Address=None, MailingAddress: Address=None, BillingAddress: Address=None, Attributes: Attributes=None) -> CreateProfileResponse:
        r"""Creates a standard profile. A standard profile represents the following attributes for a customer profile in a domain.

        :param self:
        :param Attributes:  A key value pair of attributes of a customer profile.<br/>BillingAddress:  The customer’s billing address.:<br/>MailingAddress:  The customer’s mailing address.:<br/>ShippingAddress:  The customer’s shipping address.:<br/>Address:  A generic address associated with the customer that is not mailing, shipping, or billing.:<br/>BusinessEmailAddress:  The customer’s business email address.<br/>PersonalEmailAddress:  The customer’s personal email address.<br/>EmailAddress:  The customer’s email address, which has not been specified as a personal or business address. <br/>BusinessPhoneNumber:  The customer’s business phone number.<br/>HomePhoneNumber:  The customer’s home phone number.<br/>MobilePhoneNumber:  The customer’s mobile phone number.<br/>PhoneNumber:  The customer’s phone number, which has not been specified as a mobile, home, or business number. <br/>Gender:  The gender with which the customer identifies. <br/>BirthDate:  The customer’s birth date. <br/>LastName:  The customer’s last name.<br/>MiddleName:  The customer’s middle name.<br/>FirstName:  The customer’s first name.<br/>BusinessName:  The name of the customer’s business.<br/>PartyType:  The type of profile used to describe the customer.<br/>AdditionalInformation:  Any additional information relevant to the customer’s profile.<br/>AccountNumber:  A unique account number that you have given to the customer.<br/>DomainName:  The unique name of the domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PostalCode</i> The postal code of a customer address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Country</i> The country in which a customer lives.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Province</i> The province in which a customer lives.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state in which a customer lives.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>County</i> The county in which a customer lives.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>City</i> The city in which a customer lives.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Address4</i> The fourth line of a customer address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Address3</i> The third line of a customer address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Address2</i> The second line of a customer address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Address1</i> The first line of a customer address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PostalCode</i> The postal code of a customer address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Country</i> The country in which a customer lives.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Province</i> The province in which a customer lives.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state in which a customer lives.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>County</i> The county in which a customer lives.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>City</i> The city in which a customer lives.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Address4</i> The fourth line of a customer address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Address3</i> The third line of a customer address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Address2</i> The second line of a customer address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Address1</i> The first line of a customer address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PostalCode</i> The postal code of a customer address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Country</i> The country in which a customer lives.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Province</i> The province in which a customer lives.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state in which a customer lives.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>County</i> The county in which a customer lives.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>City</i> The city in which a customer lives.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Address4</i> The fourth line of a customer address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Address3</i> The third line of a customer address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Address2</i> The second line of a customer address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Address1</i> The first line of a customer address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PostalCode</i> The postal code of a customer address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Country</i> The country in which a customer lives.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Province</i> The province in which a customer lives.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state in which a customer lives.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>County</i> The county in which a customer lives.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>City</i> The city in which a customer lives.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Address4</i> The fourth line of a customer address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Address3</i> The third line of a customer address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Address2</i> The second line of a customer address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Address1</i> The first line of a customer address.<br/>
        :return: ProfileId:  The unique identifier of a customer profile.<br/>        """
        pass

    def delete_domain(self, DomainName: str) -> DeleteDomainResponse:
        r"""Deletes a specific domain and all of its customer data, such as customer profile attributes and their related objects.

        :param self:
        :param DomainName:  The unique name of the domain.<br/>
        :return: Message:  A message that indicates the delete request is done.<br/>        """
        pass

    def delete_integration(self, Uri: str, DomainName: str) -> DeleteIntegrationResponse:
        r"""Removes an integration from a specific domain.

        :param self:
        :param Uri:  The URI of the S3 bucket or any other type of data source.<br/>DomainName:  The unique name of the domain.<br/>
        :return: Message:  A message that indicates the delete request is done.<br/>        """
        pass

    def delete_profile(self, DomainName: str, ProfileId: str) -> DeleteProfileResponse:
        r"""Deletes the standard customer profile and all data pertaining to the profile.

        :param self:
        :param DomainName:  The unique name of the domain.<br/>ProfileId:  The unique identifier of a customer profile.<br/>
        :return: Message:  A message that indicates the delete request is done.<br/>        """
        pass

    def delete_profile_key(self, DomainName: str, Values: List[string1To255], KeyName: str, ProfileId: str) -> DeleteProfileKeyResponse:
        r"""Removes a searchable key from a customer profile.

        :param self:
        :param DomainName:  The unique name of the domain.<br/>Values:  A list of key values.<br/>KeyName:  A searchable identifier of a customer profile.<br/>ProfileId:  The unique identifier of a customer profile.<br/>
        :return: Message:  A message that indicates the delete request is done.<br/>        """
        pass

    def delete_profile_object(self, DomainName: str, ObjectTypeName: str, ProfileObjectUniqueKey: str, ProfileId: str) -> DeleteProfileObjectResponse:
        r"""Removes an object associated with a profile of a given ProfileObjectType.

        :param self:
        :param DomainName:  The unique name of the domain.<br/>ObjectTypeName:  The name of the profile object type.<br/>ProfileObjectUniqueKey:  The unique identifier of the profile object generated by the service.<br/>ProfileId:  The unique identifier of a customer profile.<br/>
        :return: Message:  A message that indicates the delete request is done.<br/>        """
        pass

    def delete_profile_object_type(self, ObjectTypeName: str, DomainName: str) -> DeleteProfileObjectTypeResponse:
        r"""Removes a ProfileObjectType from a specific domain as well as removes all the ProfileObjects of that type. It also disables integrations from this specific ProfileObjectType. In addition, it scrubs all of the fields of the standard profile that were populated from this ProfileObjectType.

        :param self:
        :param ObjectTypeName:  The name of the profile object type.<br/>DomainName:  The unique name of the domain.<br/>
        :return: Message:  A message that indicates the delete request is done.<br/>        """
        pass

    def get_domain(self, DomainName: str) -> GetDomainResponse:
        r"""Returns information about a specific domain.

        :param self:
        :param DomainName:  The unique name of the domain.<br/>
        :return: Tags:  The tags used to organize, track, or control access for this resource.<br/>LastUpdatedAt:  The timestamp of when the domain was most recently edited.<br/>CreatedAt:  The timestamp of when the domain was created.<br/>Matching:  The process of matching duplicate profiles. This process runs every Saturday at 12AM.:<br/>Stats:  Usage-specific statistics about the domain.:<br/>DeadLetterQueueUrl:  The URL of the SQS dead letter queue, which is used for reporting errors associated with ingesting data from third party applications.<br/>DefaultEncryptionKey:  The default encryption key, which is an AWS managed key, is used when no specific type of encryption key is specified. It is used to encrypt all data before it is placed in permanent or semi-permanent storage.<br/>DefaultExpirationDays:  The default number of days until the data within the domain expires.<br/>DomainName:  The unique name of the domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalSize</i> The total size, in bytes, of all objects in the domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ObjectCount</i> The total number of objects in domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MeteringProfileCount</i> The number of profiles that you are currently paying for in the domain. If you have more than 100 objects associated with a single profile, that profile counts as two profiles. If you have more than 200 objects, that profile counts as three, and so on.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProfileCount</i> The total number of profiles currently in the domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> The flag that enables the matching process of duplicate profiles.<br/>        """
        pass

    def get_integration(self, Uri: str, DomainName: str) -> GetIntegrationResponse:
        r"""Returns an integration for a domain.

        :param self:
        :param Uri:  The URI of the S3 bucket or any other type of data source.<br/>DomainName:  The unique name of the domain.<br/>
        :return: Tags:  The tags used to organize, track, or control access for this resource.<br/>LastUpdatedAt:  The timestamp of when the domain was most recently edited.<br/>CreatedAt:  The timestamp of when the domain was created.<br/>ObjectTypeName:  The name of the profile object type.<br/>Uri:  The URI of the S3 bucket or any other type of data source.<br/>DomainName:  The unique name of the domain.<br/>        """
        pass

    def get_matches(self, DomainName: str, NextToken: str=None, MaxResults: int=None) -> GetMatchesResponse:
        r"""This API is in preview release for Amazon Connect and subject to change. Before calling this API, use <a href="https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_CreateDomain.html">CreateDomain</a> or <a href="https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_UpdateDomain.html">UpdateDomain</a> to enable identity resolution: set <code>Matching</code> to true. GetMatches returns potentially matching profiles, based on the results of the latest run of a machine learning process.  <important> Amazon Connect runs a batch process every Saturday at 12AM UTC to identify matching profiles. The results are returned up to seven days after the Saturday run. </important> Amazon Connect uses the following profile attributes to identify matches: <ul> <li> PhoneNumber </li> <li> HomePhoneNumber </li> <li> BusinessPhoneNumber </li> <li> MobilePhoneNumber </li> <li> EmailAddress </li> <li> PersonalEmailAddress </li> <li> BusinessEmailAddress </li> <li> FullName </li> <li> BusinessName </li> </ul>

        :param self:
        :param DomainName:  The unique name of the domain.<br/>MaxResults:  The maximum number of results to return per page.<br/>NextToken:  The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.<br/>
        :return: Matches:  The list of matched profiles for this instance.<br/>PotentialMatches:  The number of potential matches found.<br/>MatchGenerationDate:  The timestamp this version of Match Result generated.<br/>NextToken:  If there are additional results, this is the token for the next set of results.<br/>        """
        pass

    def get_profile_object_type(self, ObjectTypeName: str, DomainName: str) -> GetProfileObjectTypeResponse:
        r"""Returns the object types for a specific domain.

        :param self:
        :param ObjectTypeName:  The name of the profile object type.<br/>DomainName:  The unique name of the domain.<br/>
        :return: Tags:  The tags used to organize, track, or control access for this resource.<br/>LastUpdatedAt:  The timestamp of when the domain was most recently edited.<br/>CreatedAt:  The timestamp of when the domain was created.<br/>Keys:  A list of unique keys that can be used to map data to the profile.<br/>Fields:  A map of the name and ObjectType field.<br/>AllowProfileCreation:  Indicates whether a profile should be created when data is received if one doesn’t exist for an object of this type. The default is <code>FALSE</code>. If the AllowProfileCreation flag is set to <code>FALSE</code>, then the service tries to fetch a standard profile and associate this object with the profile. If it is set to <code>TRUE</code>, and if no match is found, then the service creates a new standard profile.<br/>EncryptionKey:  The customer-provided key to encrypt the profile object that will be created in this profile object type.<br/>ExpirationDays:  The number of days until the data in the object expires.<br/>TemplateId:  A unique identifier for the object template.<br/>Description:  The description of the profile object type.<br/>ObjectTypeName:  The name of the profile object type.<br/>        """
        pass

    def get_profile_object_type_template(self, TemplateId: str) -> GetProfileObjectTypeTemplateResponse:
        r"""Returns the template information for a specific object type. A template is a predefined ProfileObjectType, such as “Salesforce-Account” or “Salesforce-Contact.” When a user sends a ProfileObject, using the PutProfileObject API, with an ObjectTypeName that matches one of the TemplateIds, it uses the mappings from the template.

        :param self:
        :param TemplateId:  A unique identifier for the object template.<br/>
        :return: Keys:  A list of unique keys that can be used to map data to the profile.<br/>Fields:  A map of the name and ObjectType field.<br/>AllowProfileCreation:  Indicates whether a profile should be created when data is received if one doesn’t exist for an object of this type. The default is <code>FALSE</code>. If the AllowProfileCreation flag is set to <code>FALSE</code>, then the service tries to fetch a standard profile and associate this object with the profile. If it is set to <code>TRUE</code>, and if no match is found, then the service creates a new standard profile.<br/>SourceObject:  The source of the object template.<br/>SourceName:  The name of the source of the object template.<br/>TemplateId:  A unique identifier for the object template.<br/>        """
        pass

    def list_account_integrations(self, Uri: str, NextToken: str=None, MaxResults: int=None) -> ListAccountIntegrationsResponse:
        r"""Lists all of the integrations associated to a specific URI in the AWS account.

        :param self:
        :param MaxResults:  The maximum number of objects returned per page.<br/>NextToken:  The pagination token from the previous ListAccountIntegrations API call.<br/>Uri:  The URI of the S3 bucket or any other type of data source.<br/>
        :return: NextToken:  The pagination token from the previous ListAccountIntegrations API call.<br/>Items:  The list of ListAccountIntegration instances.<br/>        """
        pass

    def list_domains(self, NextToken: str=None, MaxResults: int=None) -> ListDomainsResponse:
        r"""Returns a list of all the domains for an AWS account that have been created.

        :param self:
        :param MaxResults:  The maximum number of objects returned per page.<br/>NextToken:  The pagination token from the previous ListDomain API call.<br/>
        :return: NextToken:  The pagination token from the previous ListDomains API call.<br/>Items:  The list of ListDomains instances.<br/>        """
        pass

    def list_integrations(self, DomainName: str, NextToken: str=None, MaxResults: int=None) -> ListIntegrationsResponse:
        r"""Lists all of the integrations in your domain.

        :param self:
        :param MaxResults:  The maximum number of objects returned per page.<br/>NextToken:  The pagination token from the previous ListIntegrations API call.<br/>DomainName:  The unique name of the domain.<br/>
        :return: NextToken:  The pagination token from the previous ListIntegrations API call.<br/>Items:  The list of ListIntegrations instances.<br/>        """
        pass

    def list_profile_object_type_templates(self, NextToken: str=None, MaxResults: int=None) -> ListProfileObjectTypeTemplatesResponse:
        r"""Lists all of the template information for object types.

        :param self:
        :param MaxResults:  The maximum number of objects returned per page.<br/>NextToken:  The pagination token from the previous ListObjectTypeTemplates API call.<br/>
        :return: NextToken:  The pagination token from the previous ListObjectTypeTemplates API call. <br/>Items:  The list of ListProfileObjectType template instances.<br/>        """
        pass

    def list_profile_object_types(self, DomainName: str, NextToken: str=None, MaxResults: int=None) -> ListProfileObjectTypesResponse:
        r"""Lists all of the templates available within the service.

        :param self:
        :param MaxResults:  The maximum number of objects returned per page.<br/>NextToken:  Identifies the next page of results to return.<br/>DomainName:  The unique name of the domain.<br/>
        :return: NextToken:  Identifies the next page of results to return.<br/>Items:  The list of ListProfileObjectTypes instances.<br/>        """
        pass

    def list_profile_objects(self, ProfileId: str, ObjectTypeName: str, DomainName: str, NextToken: str=None, MaxResults: int=None) -> ListProfileObjectsResponse:
        r"""Returns a list of objects associated with a profile of a given ProfileObjectType.

        :param self:
        :param ProfileId:  The unique identifier of a customer profile.<br/>ObjectTypeName:  The name of the profile object type.<br/>DomainName:  The unique name of the domain.<br/>MaxResults:  The maximum number of objects returned per page.<br/>NextToken:  The pagination token from the previous call to ListProfileObjects.<br/>
        :return: NextToken:  The pagination token from the previous call to ListProfileObjects.<br/>Items:  The list of ListProfileObject instances.<br/>        """
        pass

    def list_tags_for_resource(self, resourceArn: str) -> ListTagsForResourceResponse:
        r"""Displays the tags associated with an Amazon Connect Customer Profiles resource. In Connect Customer Profiles, domains, profile object types, and integrations can be tagged.

        :param self:
        :param resourceArn:  The ARN of the resource for which you want to view tags.<br/>
        :return: tags:  The tags used to organize, track, or control access for this resource.<br/>        """
        pass

    def merge_profiles(self, ProfileIdsToBeMerged: List[uuid], MainProfileId: str, DomainName: str, FieldSourceProfileIds: FieldSourceProfileIds=None) -> MergeProfilesResponse:
        r"""This API is in preview release for Amazon Connect and subject to change. Runs an AWS Lambda job that does the following: <ol> <li> All the profileKeys in the <code>ProfileToBeMerged</code> will be moved to the main profile. </li> <li> All the objects in the <code>ProfileToBeMerged</code> will be moved to the main profile. </li> <li> All the <code>ProfileToBeMerged</code> will be deleted at the end. </li> <li> All the profileKeys in the <code>ProfileIdsToBeMerged</code> will be moved to the main profile. </li> <li> Standard fields are merged as follows: <ol> <li> Fields are always "union"-ed if there are no conflicts in standard fields or attributeKeys. </li> <li> When there are conflicting fields: <ol> <li> If no <code>SourceProfileIds</code> entry is specified, the main Profile value is always taken.  </li> <li> If a <code>SourceProfileIds</code> entry is specified, the specified profileId is always taken, even if it is a NULL value. </li> </ol> </li> </ol> </li> </ol> You can use MergeProfiles together with <a href="https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_GetMatches.html">GetMatches</a>, which returns potentially matching profiles, or use it with the results of another matching system. After profiles have been merged, they cannot be separated (unmerged).

        :param self:
        :param FieldSourceProfileIds:  The identifiers of the fields in the profile that has the information you want to apply to the merge. For example, say you want to merge EmailAddress from Profile1 into MainProfile. This would be the identifier of the EmailAddress field in Profile1. :<br/>ProfileIdsToBeMerged:  The identifier of the profile to be merged into MainProfileId.<br/>MainProfileId:  The identifier of the profile to be taken.<br/>DomainName:  The unique name of the domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Attributes</i> A unique identifier for the attributes field to be merged.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BillingAddress</i> A unique identifier for the billing type field to be merged.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MailingAddress</i> A unique identifier for the mailing address field to be merged.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ShippingAddress</i> A unique identifier for the shipping address field to be merged.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Address</i> A unique identifier for the party type field to be merged.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BusinessEmailAddress</i> A unique identifier for the party type field to be merged.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PersonalEmailAddress</i> A unique identifier for the personal email address field to be merged.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EmailAddress</i> A unique identifier for the email address field to be merged.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BusinessPhoneNumber</i> A unique identifier for the business phone number field to be merged.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HomePhoneNumber</i> A unique identifier for the home phone number field to be merged.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MobilePhoneNumber</i> A unique identifier for the mobile phone number field to be merged.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PhoneNumber</i> A unique identifier for the phone number field to be merged.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Gender</i> A unique identifier for the gender field to be merged.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BirthDate</i> A unique identifier for the birthdate field to be merged.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastName</i> A unique identifier for the last name field to be merged.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MiddleName</i> A unique identifier for the middle name field to be merged.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FirstName</i> A unique identifier for the first name field to be merged.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BusinessName</i> A unique identifier for the business name field to be merged.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PartyType</i> A unique identifier for the party type field to be merged.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdditionalInformation</i> A unique identifier for the additional information field to be merged.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccountNumber</i> A unique identifier for the account number field to be merged. <br/>
        :return: Message:  A message that indicates the merge request is complete.<br/>        """
        pass

    def put_integration(self, ObjectTypeName: str, DomainName: str, Uri: str=None, Tags: TagMap=None, FlowDefinition: FlowDefinition=None) -> PutIntegrationResponse:
        r"""Adds an integration between the service and a third-party service, which includes Amazon AppFlow and Amazon Connect. An integration can belong to only one domain.

        :param self:
        :param FlowDefinition:  The configuration that controls how Customer Profiles retrieves data from the source.:<br/>Tags:  The tags used to organize, track, or control access for this resource.<br/>ObjectTypeName:  The name of the profile object type.<br/>Uri:  The URI of the S3 bucket or any other type of data source.<br/>DomainName:  The unique name of the domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TriggerConfig</i> The trigger settings that determine how and when the flow runs.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TriggerConfig</b>: The trigger settings that determine how and when the flow runs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tasks</i> A list of tasks that Customer Profiles performs while transferring the data in the flow run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceFlowConfig</i> The configuration that controls how Customer Profiles retrieves data from the source.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SourceFlowConfig</b>: The configuration that controls how Customer Profiles retrieves data from the source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsArn</i> The Amazon Resource Name of the AWS Key Management Service (KMS) key you provide for encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FlowName</i> The specified name of the flow. Use underscores (_) or hyphens (-) only. Spaces are not allowed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A description of the flow you want to create.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ConnectorType</i> The type of connector, such as Salesforce, Marketo, and so on.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ConnectorProfileName</i> The name of the AppFlow connector profile. This name must be unique for each connector profile in the AWS account.<br/>Defines the configuration for a scheduled incremental data pull. If a valid configuration is provided, the fields specified in the configuration are used when querying for the incremental data pull.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>IncrementalPullConfig</b>: Defines the configuration for a scheduled incremental data pull. If a valid configuration is provided, the fields specified in the configuration are used when querying for the incremental data pull.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TriggerType</i> Specifies the type of flow trigger. It can be OnDemand, Scheduled, or Event.<br/>Specifies the configuration details of a schedule-triggered flow that you define. Currently, these settings only apply to the Scheduled trigger type.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TriggerProperties</b>: Specifies the configuration details of a schedule-triggered flow that you define. Currently, these settings only apply to the Scheduled trigger type.
        :return: Tags:  The tags used to organize, track, or control access for this resource.<br/>LastUpdatedAt:  The timestamp of when the domain was most recently edited.<br/>CreatedAt:  The timestamp of when the domain was created.<br/>ObjectTypeName:  The name of the profile object type.<br/>Uri:  The URI of the S3 bucket or any other type of data source.<br/>DomainName:  The unique name of the domain.<br/>        """
        pass

    def put_profile_object(self, DomainName: str, Object: str, ObjectTypeName: str) -> PutProfileObjectResponse:
        r"""Adds additional objects to customer profiles of a given ObjectType. When adding a specific profile object, like a Contact Trace Record (CTR), an inferred profile can get created if it is not mapped to an existing profile. The resulting profile will only have a phone number populated in the standard ProfileObject. Any additional CTRs with the same phone number will be mapped to the same inferred profile. When a ProfileObject is created and if a ProfileObjectType already exists for the ProfileObject, it will provide data to a standard profile depending on the ProfileObjectType definition. PutProfileObject needs an ObjectType, which can be created using PutProfileObjectType.

        :param self:
        :param DomainName:  The unique name of the domain.<br/>Object:  A string that is serialized from a JSON object.<br/>ObjectTypeName:  The name of the profile object type.<br/>
        :return: ProfileObjectUniqueKey:  The unique identifier of the profile object generated by the service.<br/>        """
        pass

    def put_profile_object_type(self, Description: str, ObjectTypeName: str, DomainName: str, TemplateId: str=None, ExpirationDays: int=None, EncryptionKey: str=None, AllowProfileCreation: boolean=None, Fields: FieldMap=None, Keys: KeyMap=None, Tags: TagMap=None) -> PutProfileObjectTypeResponse:
        r"""Defines a ProfileObjectType.

        :param self:
        :param Tags:  The tags used to organize, track, or control access for this resource.<br/>Keys:  A list of unique keys that can be used to map data to the profile.<br/>Fields:  A map of the name and ObjectType field.<br/>AllowProfileCreation:  Indicates whether a profile should be created when data is received if one doesn’t exist for an object of this type. The default is <code>FALSE</code>. If the AllowProfileCreation flag is set to <code>FALSE</code>, then the service tries to fetch a standard profile and associate this object with the profile. If it is set to <code>TRUE</code>, and if no match is found, then the service creates a new standard profile.<br/>EncryptionKey:  The customer-provided key to encrypt the profile object that will be created in this profile object type.<br/>ExpirationDays:  The number of days until the data in the object expires.<br/>TemplateId:  A unique identifier for the object template.<br/>Description:  Description of the profile object type.<br/>ObjectTypeName:  The name of the profile object type.<br/>DomainName:  The unique name of the domain.<br/>
        :return: Tags:  The tags used to organize, track, or control access for this resource.<br/>LastUpdatedAt:  The timestamp of when the domain was most recently edited.<br/>CreatedAt:  The timestamp of when the domain was created.<br/>Keys:  A list of unique keys that can be used to map data to the profile.<br/>Fields:  A map of the name and ObjectType field.<br/>AllowProfileCreation:  Indicates whether a profile should be created when data is received if one doesn’t exist for an object of this type. The default is <code>FALSE</code>. If the AllowProfileCreation flag is set to <code>FALSE</code>, then the service tries to fetch a standard profile and associate this object with the profile. If it is set to <code>TRUE</code>, and if no match is found, then the service creates a new standard profile.<br/>EncryptionKey:  The customer-provided key to encrypt the profile object that will be created in this profile object type.<br/>ExpirationDays:  The number of days until the data in the object expires.<br/>TemplateId:  A unique identifier for the object template.<br/>Description:  Description of the profile object type.<br/>ObjectTypeName:  The name of the profile object type.<br/>        """
        pass

    def search_profiles(self, Values: List[string1To255], KeyName: str, DomainName: str, NextToken: str=None, MaxResults: int=None) -> SearchProfilesResponse:
        r"""Searches for profiles within a specific domain name using name, phone number, email address, account number, or a custom defined index.

        :param self:
        :param Values:  A list of key values.<br/>KeyName:  A searchable identifier of a customer profile. The predefined keys you can use to search include: _account, _profileId, _fullName, _phone, _email, _ctrContactId, _marketoLeadId, _salesforceAccountId, _salesforceContactId, _zendeskUserId, _zendeskExternalId, _serviceNowSystemId.<br/>DomainName:  The unique name of the domain.<br/>MaxResults:  The maximum number of objects returned per page.<br/>NextToken:  The pagination token from the previous SearchProfiles API call.<br/>
        :return: NextToken:  The pagination token from the previous SearchProfiles API call.<br/>Items:  The list of SearchProfiles instances.<br/>        """
        pass

    def tag_resource(self, tags: TagMap, resourceArn: str) -> TagResourceResponse:
        r"""Assigns one or more tags (key-value pairs) to the specified Amazon Connect Customer Profiles resource. Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values. In Connect Customer Profiles, domains, profile object types, and integrations can be tagged. Tags don't have any semantic meaning to AWS and are interpreted strictly as strings of characters. You can use the TagResource action with a resource that already has tags. If you specify a new tag key, this tag is appended to the list of tags associated with the resource. If you specify a tag key that is already associated with the resource, the new tag value that you specify replaces the previous value for that tag. You can associate as many as 50 tags with a resource.

        :param self:
        :param tags:  The tags used to organize, track, or control access for this resource.<br/>resourceArn:  The ARN of the resource that you're adding tags to.<br/>
        :return:         """
        pass

    def untag_resource(self, tagKeys: List[TagKey], resourceArn: str) -> UntagResourceResponse:
        r"""Removes one or more tags from the specified Amazon Connect Customer Profiles resource. In Connect Customer Profiles, domains, profile object types, and integrations can be tagged.

        :param self:
        :param tagKeys:  The list of tag keys to remove from the resource.<br/>resourceArn:  The ARN of the resource from which you are removing tags.<br/>
        :return:         """
        pass

    def update_domain(self, DomainName: str, DefaultExpirationDays: int=None, DefaultEncryptionKey: str=None, DeadLetterQueueUrl: str=None, Matching: MatchingRequest=None, Tags: TagMap=None) -> UpdateDomainResponse:
        r"""Updates the properties of a domain, including creating or selecting a dead letter queue or an encryption key. After a domain is created, the name can’t be changed.

        :param self:
        :param Tags:  The tags used to organize, track, or control access for this resource.<br/>Matching:  The process of matching duplicate profiles. This process runs every Saturday at 12AM.:<br/>DeadLetterQueueUrl:  The URL of the SQS dead letter queue, which is used for reporting errors associated with ingesting data from third party applications. If specified as an empty string, it will clear any existing value. You must set up a policy on the DeadLetterQueue for the SendMessage operation to enable Amazon Connect Customer Profiles to send messages to the DeadLetterQueue.<br/>DefaultEncryptionKey:  The default encryption key, which is an AWS managed key, is used when no specific type of encryption key is specified. It is used to encrypt all data before it is placed in permanent or semi-permanent storage. If specified as an empty string, it will clear any existing value.<br/>DefaultExpirationDays:  The default number of days until the data within the domain expires.<br/>DomainName:  The unique name of the domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> The flag that enables the matching process of duplicate profiles.<br/>
        :return: Tags:  The tags used to organize, track, or control access for this resource.<br/>LastUpdatedAt:  The timestamp of when the domain was most recently edited.<br/>CreatedAt:  The timestamp of when the domain was created.<br/>Matching:  The process of matching duplicate profiles. This process runs every Saturday at 12AM.:<br/>DeadLetterQueueUrl:  The URL of the SQS dead letter queue, which is used for reporting errors associated with ingesting data from third party applications.<br/>DefaultEncryptionKey:  The default encryption key, which is an AWS managed key, is used when no specific type of encryption key is specified. It is used to encrypt all data before it is placed in permanent or semi-permanent storage.<br/>DefaultExpirationDays:  The default number of days until the data within the domain expires.<br/>DomainName:  The unique name of the domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> The flag that enables the matching process of duplicate profiles.<br/>        """
        pass

    def update_profile(self, ProfileId: str, DomainName: str, AdditionalInformation: str=None, AccountNumber: str=None, PartyType: str=None, BusinessName: str=None, FirstName: str=None, MiddleName: str=None, LastName: str=None, BirthDate: str=None, Gender: str=None, PhoneNumber: str=None, MobilePhoneNumber: str=None, HomePhoneNumber: str=None, BusinessPhoneNumber: str=None, EmailAddress: str=None, PersonalEmailAddress: str=None, BusinessEmailAddress: str=None, Address: UpdateAddress=None, ShippingAddress: UpdateAddress=None, MailingAddress: UpdateAddress=None, BillingAddress: UpdateAddress=None, Attributes: UpdateAttributes=None) -> UpdateProfileResponse:
        r"""Updates the properties of a profile. The ProfileId is required for updating a customer profile. When calling the UpdateProfile API, specifying an empty string value means that any existing value will be removed. Not specifying a string value means that any value already there will be kept.

        :param self:
        :param Attributes:  A key value pair of attributes of a customer profile.<br/>BillingAddress:  The customer’s billing address.:<br/>MailingAddress:  The customer’s mailing address.:<br/>ShippingAddress:  The customer’s shipping address.:<br/>Address:  A generic address associated with the customer that is not mailing, shipping, or billing.:<br/>BusinessEmailAddress:  The customer’s business email address.<br/>PersonalEmailAddress:  The customer’s personal email address.<br/>EmailAddress:  The customer’s email address, which has not been specified as a personal or business address. <br/>BusinessPhoneNumber:  The customer’s business phone number.<br/>HomePhoneNumber:  The customer’s home phone number.<br/>MobilePhoneNumber:  The customer’s mobile phone number.<br/>PhoneNumber:  The customer’s phone number, which has not been specified as a mobile, home, or business number. <br/>Gender:  The gender with which the customer identifies. <br/>BirthDate:  The customer’s birth date. <br/>LastName:  The customer’s last name.<br/>MiddleName:  The customer’s middle name.<br/>FirstName:  The customer’s first name.<br/>BusinessName:  The name of the customer’s business.<br/>PartyType:  The type of profile used to describe the customer.<br/>AccountNumber:  A unique account number that you have given to the customer.<br/>AdditionalInformation:  Any additional information relevant to the customer’s profile.<br/>ProfileId:  The unique identifier of a customer profile.<br/>DomainName:  The unique name of the domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PostalCode</i> The postal code of a customer address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Country</i> The country in which a customer lives.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Province</i> The province in which a customer lives.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state in which a customer lives.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>County</i> The county in which a customer lives.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>City</i> The city in which a customer lives.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Address4</i> The fourth line of a customer address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Address3</i> The third line of a customer address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Address2</i> The second line of a customer address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Address1</i> The first line of a customer address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PostalCode</i> The postal code of a customer address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Country</i> The country in which a customer lives.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Province</i> The province in which a customer lives.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state in which a customer lives.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>County</i> The county in which a customer lives.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>City</i> The city in which a customer lives.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Address4</i> The fourth line of a customer address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Address3</i> The third line of a customer address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Address2</i> The second line of a customer address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Address1</i> The first line of a customer address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PostalCode</i> The postal code of a customer address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Country</i> The country in which a customer lives.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Province</i> The province in which a customer lives.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state in which a customer lives.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>County</i> The county in which a customer lives.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>City</i> The city in which a customer lives.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Address4</i> The fourth line of a customer address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Address3</i> The third line of a customer address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Address2</i> The second line of a customer address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Address1</i> The first line of a customer address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PostalCode</i> The postal code of a customer address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Country</i> The country in which a customer lives.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Province</i> The province in which a customer lives.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state in which a customer lives.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>County</i> The county in which a customer lives.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>City</i> The city in which a customer lives.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Address4</i> The fourth line of a customer address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Address3</i> The third line of a customer address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Address2</i> The second line of a customer address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Address1</i> The first line of a customer address.<br/>
        :return: ProfileId:  The unique identifier of a customer profile.<br/>        """
        pass





class GlueDataBrew(BaseClient):
    r"""Glue DataBrew is a visual, cloud-scale data-preparation service. DataBrew simplifies data preparation tasks, targeting data issues that are hard to spot and time-consuming to fix. DataBrew empowers users of all technical levels to visualize the data and perform one-click data transformations, with no coding required."""


    class ListDatasetsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_datasets` for valid parameters"""
            pass
    class ListJobRunsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_job_runs` for valid parameters"""
            pass
    class ListJobsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_jobs` for valid parameters"""
            pass
    class ListProjectsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_projects` for valid parameters"""
            pass
    class ListRecipeVersionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_recipe_versions` for valid parameters"""
            pass
    class ListRecipesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_recipes` for valid parameters"""
            pass
    class ListSchedulesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_schedules` for valid parameters"""
            pass


    class BatchDeleteRecipeVersionRequest(Mapping):
        pass
    
    class BatchDeleteRecipeVersionResponse(Mapping):
        pass
    
    class RecipeVersion(object):
        pass
    
    class CreateDatasetRequest(Mapping):
        pass
    
    class CreateDatasetResponse(Mapping):
        pass
    
    class FormatOptions(Mapping):
        pass
    
    class Input(Mapping):
        pass
    
    class PathOptions(Mapping):
        pass
    
    class TagMap(object):
        pass
    
    class CreateProfileJobRequest(Mapping):
        pass
    
    class CreateProfileJobResponse(Mapping):
        pass
    
    class S3Location(Mapping):
        pass
    
    class JobSample(Mapping):
        pass
    
    class CreateProjectRequest(Mapping):
        pass
    
    class CreateProjectResponse(Mapping):
        pass
    
    class Sample(Mapping):
        pass
    
    class CreateRecipeRequest(Mapping):
        pass
    
    class CreateRecipeResponse(Mapping):
        pass
    
    class RecipeStep(Mapping):
        pass
    
    class CreateRecipeJobRequest(Mapping):
        pass
    
    class CreateRecipeJobResponse(Mapping):
        pass
    
    class Output(Mapping):
        pass
    
    class DataCatalogOutput(Mapping):
        pass
    
    class RecipeReference(Mapping):
        pass
    
    class CreateScheduleRequest(Mapping):
        pass
    
    class CreateScheduleResponse(Mapping):
        pass
    
    class JobName(object):
        pass
    
    class DeleteDatasetRequest(Mapping):
        pass
    
    class DeleteDatasetResponse(Mapping):
        pass
    
    class DeleteJobRequest(Mapping):
        pass
    
    class DeleteJobResponse(Mapping):
        pass
    
    class DeleteProjectRequest(Mapping):
        pass
    
    class DeleteProjectResponse(Mapping):
        pass
    
    class DeleteRecipeVersionRequest(Mapping):
        pass
    
    class DeleteRecipeVersionResponse(Mapping):
        pass
    
    class DeleteScheduleRequest(Mapping):
        pass
    
    class DeleteScheduleResponse(Mapping):
        pass
    
    class DescribeDatasetRequest(Mapping):
        pass
    
    class DescribeDatasetResponse(Mapping):
        pass
    
    class DescribeJobRequest(Mapping):
        pass
    
    class DescribeJobResponse(Mapping):
        pass
    
    class DescribeJobRunRequest(Mapping):
        pass
    
    class DescribeJobRunResponse(Mapping):
        pass
    
    class DescribeProjectRequest(Mapping):
        pass
    
    class DescribeProjectResponse(Mapping):
        pass
    
    class DescribeRecipeRequest(Mapping):
        pass
    
    class DescribeRecipeResponse(Mapping):
        pass
    
    class DescribeScheduleRequest(Mapping):
        pass
    
    class DescribeScheduleResponse(Mapping):
        pass
    
    class ListDatasetsRequest(Mapping):
        pass
    
    class ListDatasetsResponse(Mapping):
        pass
    
    class ListJobRunsRequest(Mapping):
        pass
    
    class ListJobRunsResponse(Mapping):
        pass
    
    class ListJobsRequest(Mapping):
        pass
    
    class ListJobsResponse(Mapping):
        pass
    
    class ListProjectsRequest(Mapping):
        pass
    
    class ListProjectsResponse(Mapping):
        pass
    
    class ListRecipeVersionsRequest(Mapping):
        pass
    
    class ListRecipeVersionsResponse(Mapping):
        pass
    
    class ListRecipesRequest(Mapping):
        pass
    
    class ListRecipesResponse(Mapping):
        pass
    
    class ListSchedulesRequest(Mapping):
        pass
    
    class ListSchedulesResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class PublishRecipeRequest(Mapping):
        pass
    
    class PublishRecipeResponse(Mapping):
        pass
    
    class SendProjectSessionActionRequest(Mapping):
        pass
    
    class SendProjectSessionActionResponse(Mapping):
        pass
    
    class Preview(object):
        pass
    
    class ViewFrame(Mapping):
        pass
    
    class StartJobRunRequest(Mapping):
        pass
    
    class StartJobRunResponse(Mapping):
        pass
    
    class StartProjectSessionRequest(Mapping):
        pass
    
    class StartProjectSessionResponse(Mapping):
        pass
    
    class AssumeControl(object):
        pass
    
    class StopJobRunRequest(Mapping):
        pass
    
    class StopJobRunResponse(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateDatasetRequest(Mapping):
        pass
    
    class UpdateDatasetResponse(Mapping):
        pass
    
    class UpdateProfileJobRequest(Mapping):
        pass
    
    class UpdateProfileJobResponse(Mapping):
        pass
    
    class UpdateProjectRequest(Mapping):
        pass
    
    class UpdateProjectResponse(Mapping):
        pass
    
    class UpdateRecipeRequest(Mapping):
        pass
    
    class UpdateRecipeResponse(Mapping):
        pass
    
    class UpdateRecipeJobRequest(Mapping):
        pass
    
    class UpdateRecipeJobResponse(Mapping):
        pass
    
    class UpdateScheduleRequest(Mapping):
        pass
    
    class UpdateScheduleResponse(Mapping):
        pass
    
    def batch_delete_recipe_version(self, RecipeVersions: List[RecipeVersion], Name: str) -> BatchDeleteRecipeVersionResponse:
        r"""Deletes one or more versions of a recipe at a time. The entire request will be rejected if: <ul> <li> The recipe does not exist. </li> <li> There is an invalid version identifier in the list of versions. </li> <li> The version list is empty. </li> <li> The version list size exceeds 50. </li> <li> The version list contains duplicate entries. </li> </ul> The request will complete successfully, but with partial failures, if: <ul> <li> A version does not exist. </li> <li> A version is being used by a job. </li> <li> You specify <code>LATEST_WORKING</code>, but it's being used by a project. </li> <li> The version fails to be deleted. </li> </ul> The <code>LATEST_WORKING</code> version will only be deleted if the recipe has no other versions. If you try to delete <code>LATEST_WORKING</code> while other versions exist (or if they can't be deleted), then <code>LATEST_WORKING</code> will be listed as partial failure in the response.

        :param self:
        :param RecipeVersions:  An array of version identifiers, for the recipe versions to be deleted. You can specify numeric versions (<code>X.Y</code>) or <code>LATEST_WORKING</code>. <code>LATEST_PUBLISHED</code> is not supported.<br/>Name:  The name of the recipe whose versions are to be deleted.<br/>
        :return: Errors:  Errors, if any, that occurred while attempting to delete the recipe versions.<br/>Name:  The name of the recipe that was modified.<br/>        """
        pass

    def create_dataset(self, Input: Input, Name: str, Format: str=None, FormatOptions: FormatOptions=None, PathOptions: PathOptions=None, Tags: TagMap=None) -> CreateDatasetResponse:
        r"""Creates a new DataBrew dataset.

        :param self:
        :param Tags:  Metadata tags to apply to this dataset.<br/>PathOptions:  A set of options that defines how DataBrew interprets an Amazon S3 path of the dataset.:<br/>Input:  Represents information on how DataBrew can find data, in either the Glue Data Catalog or Amazon S3.:<br/>FormatOptions:  Represents a set of options that define the structure of either comma-separated value (CSV), Excel, or JSON input.:<br/>Format:  The file format of a dataset that is created from an Amazon S3 file or folder.<br/>Name:  The name of the dataset to be created. Valid characters are alphanumeric (A-Z, a-z, 0-9), hyphen (-), period (.), and space.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Csv</i> Options that define how CSV input is to be interpreted by DataBrew.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Csv</b>: Options that define how CSV input is to be interpreted by DataBrew.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Excel</i> Options that define how Excel input is to be interpreted by DataBrew.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Excel</b>: Options that define how Excel input is to be interpreted by DataBrew.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Json</i> Options that define how JSON input is to be interpreted by DataBrew.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Json</b>: Options that define how JSON input is to be interpreted by DataBrew.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiLine</i> A value that specifies whether JSON input contains embedded new line characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HeaderRow</i> A variable that specifies whether the first row in the file is parsed as the header. If this value is false, column names are auto-generated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SheetIndexes</i> One or more sheet numbers in the Excel file that will be included in the dataset.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SheetNames</i> One or more named sheets in the Excel file that will be included in the dataset.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HeaderRow</i> A variable that specifies whether the first row in the file is parsed as the header. If this value is false, column names are auto-generated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Delimiter</i> A single character that specifies the delimiter being used in the CSV file.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseInputDefinition</i> Connection information for dataset input files stored in a database.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DatabaseInputDefinition</b>: Connection information for dataset input files stored in a database.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataCatalogInputDefinition</i> The Glue Data Catalog parameters for the data.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DataCatalogInputDefinition</b>: The Glue Data Catalog parameters for the data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3InputDefinition</i> The Amazon S3 location where the data is stored.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3InputDefinition</b>: The Amazon S3 location where the data is stored.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The unique name of the object in the bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i> The Amazon S3 bucket name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TableName</i> The name of a database table in the Data Catalog. This table corresponds to a DataBrew dataset.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> The name of a database in the Data Catalog.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CatalogId</i> The unique identifier of the Amazon Web Services account that holds the Data Catalog that stores the data.<br/>Represents an Amazon location where DataBrew can store intermediate results.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TempDirectory</b>: Represents an Amazon location where DataBrew can store intermediate results.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseTableName</i> The table within the target database.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>GlueConnectionName</i> The Glue Connection that stores the connection information for the target database.<br/>Represents an Amazon S3 location (bucket name and object key) where DataBrew can read input data, or write output from a job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TempDirectory</b>: Represents an Amazon S3 location (bucket name and object key) where DataBrew can read input data, or write output from a job.&nbsp;&nbsp;&nbsp;&nbsp; <i>Parameters</i> A structure that maps names of parameters used in the Amazon S3 path of a dataset to their definitions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FilesLimit</i> If provided, this structure imposes a limit on a number of files that should be selected.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>FilesLimit</b>: If provided, this structure imposes a limit on a number of files that should be selected.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDateCondition</i> If provided, this structure defines a date range for matching Amazon S3 objects based on their LastModifiedDate attribute in Amazon S3.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>LastModifiedDateCondition</b>: If provided, this structure defines a date range for matching Amazon S3 objects based on their LastModifiedDate attribute in Amazon S3.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ValuesMap</i> The map of substitution variable names to their values used in this filter expression.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Expression</i> The expression which includes condition names followed by substitution variables, possibly grouped and combined with other conditions. For example, "(starts_with :prefix1 or starts_with :prefix2) and (ends_with :suffix1 or ends_with :suffix2)". Substitution variables should start with ':' symbol.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Order</i> A criteria to use for Amazon S3 files sorting before their selection. By default uses DESCENDING order, i.e. most recent files are selected first. Anotherpossible value is ASCENDING.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OrderedBy</i> A criteria to use for Amazon S3 files sorting before their selection. By default uses LAST_MODIFIED_DATE as a sorting criteria. Currently it's the only allowed value.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxFiles</i> The number of Amazon S3 files to select.<br/>
        :return: Name:  The name of the dataset that you created.<br/>        """
        pass

    def create_profile_job(self, RoleArn: str, OutputLocation: S3Location, Name: str, DatasetName: str, EncryptionKeyArn: str=None, EncryptionMode: str=None, LogSubscription: str=None, MaxCapacity: int=None, MaxRetries: int=None, Tags: TagMap=None, Timeout: int=None, JobSample: JobSample=None) -> CreateProfileJobResponse:
        r"""Creates a new job to analyze a dataset and create its data profile.

        :param self:
        :param JobSample:  Sample configuration for profile jobs only. Determines the number of rows on which the profile job will be executed. If a JobSample value is not provided, the default value will be used. The default value is CUSTOM_ROWS for the mode parameter and 20000 for the size parameter.:<br/>Timeout:  The job's timeout in minutes. A job that attempts to run longer than this timeout period ends with a status of <code>TIMEOUT</code>.<br/>Tags:  Metadata tags to apply to this job.<br/>RoleArn:  The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role to be assumed when DataBrew runs the job.<br/>OutputLocation:  Represents an Amazon S3 location (bucket name and object key) where DataBrew can read input data, or write output from a job.:<br/>MaxRetries:  The maximum number of times to retry the job after a job run fails.<br/>MaxCapacity:  The maximum number of nodes that DataBrew can use when the job processes data.<br/>LogSubscription:  Enables or disables Amazon CloudWatch logging for the job. If logging is enabled, CloudWatch writes one log stream for each job run.<br/>Name:  The name of the job to be created. Valid characters are alphanumeric (A-Z, a-z, 0-9), hyphen (-), period (.), and space.<br/>EncryptionMode:  The encryption mode for the job, which can be one of the following: <ul> <li>  <code>SSE-KMS</code> - <code>SSE-KMS</code> - Server-side encryption with KMS-managed keys. </li> <li>  <code>SSE-S3</code> - Server-side encryption with keys managed by Amazon S3. </li> </ul><br/>EncryptionKeyArn:  The Amazon Resource Name (ARN) of an encryption key that is used to protect the job.<br/>DatasetName:  The name of the dataset that this job is to act upon.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The unique name of the object in the bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i> The Amazon S3 bucket name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Size</i> The <code>Size</code> parameter is only required when the mode is CUSTOM_ROWS. The profile job is run on the specified number of rows. The maximum value for size is Long.MAX_VALUE. Long.MAX_VALUE = 9223372036854775807<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Mode</i> A value that determines whether the profile job is run on the entire dataset or a specified number of rows. This value must be one of the following: <ul> <li> FULL_DATASET - The profile job is run on the entire dataset. </li> <li> CUSTOM_ROWS - The profile job is run on the number of rows specified in the <code>Size</code> parameter. </li> </ul><br/>
        :return: Name:  The name of the job that was created.<br/>        """
        pass

    def create_project(self, RoleArn: str, RecipeName: str, Name: str, DatasetName: str, Sample: Sample=None, Tags: TagMap=None) -> CreateProjectResponse:
        r"""Creates a new DataBrew project.

        :param self:
        :param Tags:  Metadata tags to apply to this project.<br/>RoleArn:  The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role to be assumed for this request.<br/>Sample:  Represents the sample size and sampling type for DataBrew to use for interactive data analysis.:<br/>RecipeName:  The name of an existing recipe to associate with the project.<br/>Name:  A unique name for the new project. Valid characters are alphanumeric (A-Z, a-z, 0-9), hyphen (-), period (.), and space.<br/>DatasetName:  The name of an existing dataset to associate this project with.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The way in which DataBrew obtains rows from a dataset.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Size</i> The number of rows in the sample.<br/>
        :return: Name:  The name of the project that you created.<br/>        """
        pass

    def create_recipe(self, Steps: List[RecipeStep], Name: str, Description: str=None, Tags: TagMap=None) -> CreateRecipeResponse:
        r"""Creates a new DataBrew recipe.

        :param self:
        :param Tags:  Metadata tags to apply to this recipe.<br/>Steps:  An array containing the steps to be performed by the recipe. Each recipe step consists of one recipe action and (optionally) an array of condition expressions.<br/>Name:  A unique name for the recipe. Valid characters are alphanumeric (A-Z, a-z, 0-9), hyphen (-), period (.), and space.<br/>Description:  A description for the recipe.<br/>
        :return: Name:  The name of the recipe that you created.<br/>        """
        pass

    def create_recipe_job(self, RoleArn: str, Name: str, DatasetName: str=None, EncryptionKeyArn: str=None, EncryptionMode: str=None, LogSubscription: str=None, MaxCapacity: int=None, MaxRetries: int=None, Outputs: List[Output]=None, DataCatalogOutputs: List[DataCatalogOutput]=None, ProjectName: str=None, RecipeReference: RecipeReference=None, Tags: TagMap=None, Timeout: int=None) -> CreateRecipeJobResponse:
        r"""Creates a new job to transform input data, using steps defined in an existing Glue DataBrew recipe

        :param self:
        :param Timeout:  The job's timeout in minutes. A job that attempts to run longer than this timeout period ends with a status of <code>TIMEOUT</code>.<br/>Tags:  Metadata tags to apply to this job.<br/>RoleArn:  The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role to be assumed when DataBrew runs the job.<br/>RecipeReference:  Represents the name and version of a DataBrew recipe.:<br/>ProjectName:  Either the name of an existing project, or a combination of a recipe and a dataset to associate with the recipe.<br/>DataCatalogOutputs:  One or more artifacts that represent the AWS Glue Data Catalog output from running the job.<br/>Outputs:  One or more artifacts that represent the output from running the job.<br/>MaxRetries:  The maximum number of times to retry the job after a job run fails.<br/>MaxCapacity:  The maximum number of nodes that DataBrew can consume when the job processes data.<br/>LogSubscription:  Enables or disables Amazon CloudWatch logging for the job. If logging is enabled, CloudWatch writes one log stream for each job run.<br/>Name:  A unique name for the job. Valid characters are alphanumeric (A-Z, a-z, 0-9), hyphen (-), period (.), and space.<br/>EncryptionMode:  The encryption mode for the job, which can be one of the following: <ul> <li>  <code>SSE-KMS</code> - Server-side encryption with keys managed by KMS. </li> <li>  <code>SSE-S3</code> - Server-side encryption with keys managed by Amazon S3. </li> </ul><br/>EncryptionKeyArn:  The Amazon Resource Name (ARN) of an encryption key that is used to protect the job.<br/>DatasetName:  The name of the dataset that this job processes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecipeVersion</i> The identifier for the version for the recipe. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the recipe.<br/>
        :return: Name:  The name of the job that you created.<br/>        """
        pass

    def create_schedule(self, Name: str, CronExpression: str, JobNames: List[JobName]=None, Tags: TagMap=None) -> CreateScheduleResponse:
        r"""Creates a new schedule for one or more DataBrew jobs. Jobs can be run at a specific date and time, or at regular intervals.

        :param self:
        :param Name:  A unique name for the schedule. Valid characters are alphanumeric (A-Z, a-z, 0-9), hyphen (-), period (.), and space.<br/>Tags:  Metadata tags to apply to this schedule.<br/>CronExpression:  The date or dates and time or times when the jobs are to be run. For more information, see <a href="https://docs.aws.amazon.com/databrew/latest/dg/jobs.cron.html">Cron expressions</a> in the <i>Glue DataBrew Developer Guide</i>.<br/>JobNames:  The name or names of one or more jobs to be run.<br/>
        :return: Name:  The name of the schedule that was created.<br/>        """
        pass

    def delete_dataset(self, Name: str) -> DeleteDatasetResponse:
        r"""Deletes a dataset from DataBrew.

        :param self:
        :param Name:  The name of the dataset to be deleted.<br/>
        :return: Name:  The name of the dataset that you deleted.<br/>        """
        pass

    def delete_job(self, Name: str) -> DeleteJobResponse:
        r"""Deletes the specified DataBrew job.

        :param self:
        :param Name:  The name of the job to be deleted.<br/>
        :return: Name:  The name of the job that you deleted.<br/>        """
        pass

    def delete_project(self, Name: str) -> DeleteProjectResponse:
        r"""Deletes an existing DataBrew project.

        :param self:
        :param Name:  The name of the project to be deleted.<br/>
        :return: Name:  The name of the project that you deleted.<br/>        """
        pass

    def delete_recipe_version(self, RecipeVersion: str, Name: str) -> DeleteRecipeVersionResponse:
        r"""Deletes a single version of a DataBrew recipe.

        :param self:
        :param RecipeVersion:  The version of the recipe to be deleted. You can specify a numeric versions (<code>X.Y</code>) or <code>LATEST_WORKING</code>. <code>LATEST_PUBLISHED</code> is not supported.<br/>Name:  The name of the recipe.<br/>
        :return: RecipeVersion:  The version of the recipe that was deleted.<br/>Name:  The name of the recipe that was deleted.<br/>        """
        pass

    def delete_schedule(self, Name: str) -> DeleteScheduleResponse:
        r"""Deletes the specified DataBrew schedule.

        :param self:
        :param Name:  The name of the schedule to be deleted.<br/>
        :return: Name:  The name of the schedule that was deleted.<br/>        """
        pass

    def describe_dataset(self, Name: str) -> DescribeDatasetResponse:
        r"""Returns the definition of a specific DataBrew dataset.

        :param self:
        :param Name:  The name of the dataset to be described.<br/>
        :return: ResourceArn:  The Amazon Resource Name (ARN) of the dataset.<br/>Tags:  Metadata tags associated with this dataset.<br/>PathOptions:  A set of options that defines how DataBrew interprets an Amazon S3 path of the dataset.:<br/>Source:  The location of the data for this dataset, Amazon S3 or the Glue Data Catalog.<br/>LastModifiedBy:  The identifier (user name) of the user who last modified the dataset.<br/>LastModifiedDate:  The date and time that the dataset was last modified.<br/>Input:  Represents information on how DataBrew can find data, in either the Glue Data Catalog or Amazon S3.:<br/>FormatOptions:  Represents a set of options that define the structure of either comma-separated value (CSV), Excel, or JSON input.:<br/>Format:  The file format of a dataset that is created from an Amazon S3 file or folder.<br/>Name:  The name of the dataset.<br/>CreateDate:  The date and time that the dataset was created.<br/>CreatedBy:  The identifier (user name) of the user who created the dataset.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Csv</i> Options that define how CSV input is to be interpreted by DataBrew.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Csv</b>: Options that define how CSV input is to be interpreted by DataBrew.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Excel</i> Options that define how Excel input is to be interpreted by DataBrew.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Excel</b>: Options that define how Excel input is to be interpreted by DataBrew.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Json</i> Options that define how JSON input is to be interpreted by DataBrew.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Json</b>: Options that define how JSON input is to be interpreted by DataBrew.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiLine</i> A value that specifies whether JSON input contains embedded new line characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HeaderRow</i> A variable that specifies whether the first row in the file is parsed as the header. If this value is false, column names are auto-generated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SheetIndexes</i> One or more sheet numbers in the Excel file that will be included in the dataset.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SheetNames</i> One or more named sheets in the Excel file that will be included in the dataset.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HeaderRow</i> A variable that specifies whether the first row in the file is parsed as the header. If this value is false, column names are auto-generated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Delimiter</i> A single character that specifies the delimiter being used in the CSV file.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseInputDefinition</i> Connection information for dataset input files stored in a database.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DatabaseInputDefinition</b>: Connection information for dataset input files stored in a database.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataCatalogInputDefinition</i> The Glue Data Catalog parameters for the data.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DataCatalogInputDefinition</b>: The Glue Data Catalog parameters for the data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3InputDefinition</i> The Amazon S3 location where the data is stored.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3InputDefinition</b>: The Amazon S3 location where the data is stored.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The unique name of the object in the bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i> The Amazon S3 bucket name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TableName</i> The name of a database table in the Data Catalog. This table corresponds to a DataBrew dataset.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> The name of a database in the Data Catalog.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CatalogId</i> The unique identifier of the Amazon Web Services account that holds the Data Catalog that stores the data.<br/>Represents an Amazon location where DataBrew can store intermediate results.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TempDirectory</b>: Represents an Amazon location where DataBrew can store intermediate results.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseTableName</i> The table within the target database.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>GlueConnectionName</i> The Glue Connection that stores the connection information for the target database.<br/>Represents an Amazon S3 location (bucket name and object key) where DataBrew can read input data, or write output from a job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TempDirectory</b>: Represents an Amazon S3 location (bucket name and object key) where DataBrew can read input data, or write output from a job.&nbsp;&nbsp;&nbsp;&nbsp; <i>Parameters</i> A structure that maps names of parameters used in the Amazon S3 path of a dataset to their definitions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FilesLimit</i> If provided, this structure imposes a limit on a number of files that should be selected.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>FilesLimit</b>: If provided, this structure imposes a limit on a number of files that should be selected.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDateCondition</i> If provided, this structure defines a date range for matching Amazon S3 objects based on their LastModifiedDate attribute in Amazon S3.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>LastModifiedDateCondition</b>: If provided, this structure defines a date range for matching Amazon S3 objects based on their LastModifiedDate attribute in Amazon S3.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ValuesMap</i> The map of substitution variable names to their values used in this filter expression.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Expression</i> The expression which includes condition names followed by substitution variables, possibly grouped and combined with other conditions. For example, "(starts_with :prefix1 or starts_with :prefix2) and (ends_with :suffix1 or ends_with :suffix2)". Substitution variables should start with ':' symbol.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Order</i> A criteria to use for Amazon S3 files sorting before their selection. By default uses DESCENDING order, i.e. most recent files are selected first. Anotherpossible value is ASCENDING.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OrderedBy</i> A criteria to use for Amazon S3 files sorting before their selection. By default uses LAST_MODIFIED_DATE as a sorting criteria. Currently it's the only allowed value.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxFiles</i> The number of Amazon S3 files to select.<br/>        """
        pass

    def describe_job(self, Name: str) -> DescribeJobResponse:
        r"""Returns the definition of a specific DataBrew job.

        :param self:
        :param Name:  The name of the job to be described.<br/>
        :return: JobSample:  Sample configuration for profile jobs only. Determines the number of rows on which the profile job will be executed.:<br/>Timeout:  The job's timeout in minutes. A job that attempts to run longer than this timeout period ends with a status of <code>TIMEOUT</code>.<br/>Tags:  Metadata tags associated with this job.<br/>RoleArn:  The ARN of the Identity and Access Management (IAM) role to be assumed when DataBrew runs the job.<br/>ResourceArn:  The Amazon Resource Name (ARN) of the job.<br/>RecipeReference:  Represents the name and version of a DataBrew recipe.:<br/>ProjectName:  The DataBrew project associated with this job.<br/>DataCatalogOutputs:  One or more artifacts that represent the AWS Glue Data Catalog output from running the job.<br/>Outputs:  One or more artifacts that represent the output from running the job.<br/>MaxRetries:  The maximum number of times to retry the job after a job run fails.<br/>MaxCapacity:  The maximum number of compute nodes that DataBrew can consume when the job processes data.<br/>LogSubscription:  Indicates whether Amazon CloudWatch logging is enabled for this job.<br/>LastModifiedDate:  The date and time that the job was last modified.<br/>LastModifiedBy:  The identifier (user name) of the user who last modified the job.<br/>Type:  The job type, which must be one of the following: <ul> <li>  <code>PROFILE</code> - The job analyzes the dataset to determine its size, data types, data distribution, and more. </li> <li>  <code>RECIPE</code> - The job applies one or more transformations to a dataset. </li> </ul><br/>Name:  The name of the job.<br/>EncryptionMode:  The encryption mode for the job, which can be one of the following: <ul> <li>  <code>SSE-KMS</code> - Server-side encryption with keys managed by KMS. </li> <li>  <code>SSE-S3</code> - Server-side encryption with keys managed by Amazon S3. </li> </ul><br/>EncryptionKeyArn:  The Amazon Resource Name (ARN) of an encryption key that is used to protect the job.<br/>DatasetName:  The dataset that the job acts upon.<br/>CreatedBy:  The identifier (user name) of the user associated with the creation of the job.<br/>CreateDate:  The date and time that the job was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecipeVersion</i> The identifier for the version for the recipe. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the recipe.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Size</i> The <code>Size</code> parameter is only required when the mode is CUSTOM_ROWS. The profile job is run on the specified number of rows. The maximum value for size is Long.MAX_VALUE. Long.MAX_VALUE = 9223372036854775807<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Mode</i> A value that determines whether the profile job is run on the entire dataset or a specified number of rows. This value must be one of the following: <ul> <li> FULL_DATASET - The profile job is run on the entire dataset. </li> <li> CUSTOM_ROWS - The profile job is run on the number of rows specified in the <code>Size</code> parameter. </li> </ul><br/>        """
        pass

    def describe_job_run(self, RunId: str, Name: str) -> DescribeJobRunResponse:
        r"""Represents one run of a DataBrew job.

        :param self:
        :param RunId:  The unique identifier of the job run.<br/>Name:  The name of the job being processed during this run.<br/>
        :return: JobSample:  Sample configuration for profile jobs only. Determines the number of rows on which the profile job will be executed. If a JobSample value is not provided, the default value will be used. The default value is CUSTOM_ROWS for the mode parameter and 20000 for the size parameter.:<br/>StartedOn:  The date and time when the job run began.<br/>StartedBy:  The Amazon Resource Name (ARN) of the user who started the job run.<br/>RecipeReference:  Represents the name and version of a DataBrew recipe.:<br/>DataCatalogOutputs:  One or more artifacts that represent the AWS Glue Data Catalog output from running the job.<br/>Outputs:  One or more output artifacts from a job run.<br/>LogGroupName:  The name of an Amazon CloudWatch log group, where the job writes diagnostic messages when it runs.<br/>LogSubscription:  The current status of Amazon CloudWatch logging for the job run.<br/>State:  The current state of the job run entity itself.<br/>RunId:  The unique identifier of the job run.<br/>JobName:  The name of the job being processed during this run.<br/>ExecutionTime:  The amount of time, in seconds, during which the job run consumed resources.<br/>ErrorMessage:  A message indicating an error (if any) that was encountered when the job ran.<br/>DatasetName:  The name of the dataset for the job to process.<br/>CompletedOn:  The date and time when the job completed processing.<br/>Attempt:  The number of times that DataBrew has attempted to run the job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecipeVersion</i> The identifier for the version for the recipe. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the recipe.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Size</i> The <code>Size</code> parameter is only required when the mode is CUSTOM_ROWS. The profile job is run on the specified number of rows. The maximum value for size is Long.MAX_VALUE. Long.MAX_VALUE = 9223372036854775807<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Mode</i> A value that determines whether the profile job is run on the entire dataset or a specified number of rows. This value must be one of the following: <ul> <li> FULL_DATASET - The profile job is run on the entire dataset. </li> <li> CUSTOM_ROWS - The profile job is run on the number of rows specified in the <code>Size</code> parameter. </li> </ul><br/>        """
        pass

    def describe_project(self, Name: str) -> DescribeProjectResponse:
        r"""Returns the definition of a specific DataBrew project.

        :param self:
        :param Name:  The name of the project to be described.<br/>
        :return: OpenDate:  The date and time when the project was opened. <br/>OpenedBy:  The identifier (user name) of the user that opened the project for use. <br/>SessionStatus:  Describes the current state of the session: <ul> <li>  <code>PROVISIONING</code> - allocating resources for the session. </li> <li>  <code>INITIALIZING</code> - getting the session ready for first use. </li> <li>  <code>ASSIGNED</code> - the session is ready for use. </li> </ul><br/>Tags:  Metadata tags associated with this project.<br/>RoleArn:  The ARN of the Identity and Access Management (IAM) role to be assumed when DataBrew runs the job.<br/>Sample:  Represents the sample size and sampling type for DataBrew to use for interactive data analysis.:<br/>ResourceArn:  The Amazon Resource Name (ARN) of the project.<br/>RecipeName:  The recipe associated with this job.<br/>Name:  The name of the project.<br/>LastModifiedBy:  The identifier (user name) of the user who last modified the project.<br/>LastModifiedDate:  The date and time that the project was last modified.<br/>DatasetName:  The dataset associated with the project.<br/>CreatedBy:  The identifier (user name) of the user who created the project.<br/>CreateDate:  The date and time that the project was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The way in which DataBrew obtains rows from a dataset.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Size</i> The number of rows in the sample.<br/>        """
        pass

    def describe_recipe(self, Name: str, RecipeVersion: str=None) -> DescribeRecipeResponse:
        r"""Returns the definition of a specific DataBrew recipe corresponding to a particular version.

        :param self:
        :param RecipeVersion:  The recipe version identifier. If this parameter isn't specified, then the latest published version is returned.<br/>Name:  The name of the recipe to be described.<br/>
        :return: RecipeVersion:  The recipe version identifier.<br/>ResourceArn:  The ARN of the recipe.<br/>Tags:  Metadata tags associated with this project.<br/>Steps:  One or more steps to be performed by the recipe. Each step consists of an action, and the conditions under which the action should succeed.<br/>Name:  The name of the recipe.<br/>Description:  The description of the recipe.<br/>PublishedDate:  The date and time when the recipe was last published.<br/>PublishedBy:  The identifier (user name) of the user who last published the recipe.<br/>ProjectName:  The name of the project associated with this recipe.<br/>LastModifiedDate:  The date and time that the recipe was last modified.<br/>LastModifiedBy:  The identifier (user name) of the user who last modified the recipe.<br/>CreateDate:  The date and time that the recipe was created.<br/>CreatedBy:  The identifier (user name) of the user who created the recipe.<br/>        """
        pass

    def describe_schedule(self, Name: str) -> DescribeScheduleResponse:
        r"""Returns the definition of a specific DataBrew schedule.

        :param self:
        :param Name:  The name of the schedule to be described.<br/>
        :return: Name:  The name of the schedule.<br/>Tags:  Metadata tags associated with this schedule.<br/>CronExpression:  The date or dates and time or times when the jobs are to be run for the schedule. For more information, see <a href="https://docs.aws.amazon.com/databrew/latest/dg/jobs.cron.html">Cron expressions</a> in the <i>Glue DataBrew Developer Guide</i>.<br/>ResourceArn:  The Amazon Resource Name (ARN) of the schedule.<br/>LastModifiedDate:  The date and time that the schedule was last modified.<br/>LastModifiedBy:  The identifier (user name) of the user who last modified the schedule.<br/>JobNames:  The name or names of one or more jobs to be run by using the schedule.<br/>CreatedBy:  The identifier (user name) of the user who created the schedule. <br/>CreateDate:  The date and time that the schedule was created.<br/>        """
        pass

    def list_datasets(self, MaxResults: int=None, NextToken: str=None) -> ListDatasetsResponse:
        r"""Lists all of the DataBrew datasets.

        :param self:
        :param NextToken:  The token returned by a previous call to retrieve the next set of results.<br/>MaxResults:  The maximum number of results to return in this request. <br/>
        :return: NextToken:  A token that you can use in a subsequent call to retrieve the next set of results.<br/>Datasets:  A list of datasets that are defined.<br/>        """
        pass

    def list_job_runs(self, Name: str, MaxResults: int=None, NextToken: str=None) -> ListJobRunsResponse:
        r"""Lists all of the previous runs of a particular DataBrew job.

        :param self:
        :param NextToken:  The token returned by a previous call to retrieve the next set of results.<br/>MaxResults:  The maximum number of results to return in this request. <br/>Name:  The name of the job.<br/>
        :return: NextToken:  A token that you can use in a subsequent call to retrieve the next set of results.<br/>JobRuns:  A list of job runs that have occurred for the specified job.<br/>        """
        pass

    def list_jobs(self, DatasetName: str=None, MaxResults: int=None, NextToken: str=None, ProjectName: str=None) -> ListJobsResponse:
        r"""Lists all of the DataBrew jobs that are defined.

        :param self:
        :param ProjectName:  The name of a project. Using this parameter indicates to return only those jobs that are associated with the specified project.<br/>NextToken:  A token generated by DataBrew that specifies where to continue pagination if a previous request was truncated. To get the next set of pages, pass in the NextToken value from the response object of the previous page call. <br/>MaxResults:  The maximum number of results to return in this request. <br/>DatasetName:  The name of a dataset. Using this parameter indicates to return only those jobs that act on the specified dataset.<br/>
        :return: NextToken:  A token that you can use in a subsequent call to retrieve the next set of results.<br/>Jobs:  A list of jobs that are defined.<br/>        """
        pass

    def list_projects(self, NextToken: str=None, MaxResults: int=None) -> ListProjectsResponse:
        r"""Lists all of the DataBrew projects that are defined.

        :param self:
        :param MaxResults:  The maximum number of results to return in this request. <br/>NextToken:  The token returned by a previous call to retrieve the next set of results.<br/>
        :return: NextToken:  A token that you can use in a subsequent call to retrieve the next set of results.<br/>Projects:  A list of projects that are defined .<br/>        """
        pass

    def list_recipe_versions(self, Name: str, MaxResults: int=None, NextToken: str=None) -> ListRecipeVersionsResponse:
        r"""Lists the versions of a particular DataBrew recipe, except for <code>LATEST_WORKING</code>.

        :param self:
        :param Name:  The name of the recipe for which to return version information.<br/>NextToken:  The token returned by a previous call to retrieve the next set of results.<br/>MaxResults:  The maximum number of results to return in this request. <br/>
        :return: Recipes:  A list of versions for the specified recipe.<br/>NextToken:  A token that you can use in a subsequent call to retrieve the next set of results.<br/>        """
        pass

    def list_recipes(self, MaxResults: int=None, NextToken: str=None, RecipeVersion: str=None) -> ListRecipesResponse:
        r"""Lists all of the DataBrew recipes that are defined.

        :param self:
        :param RecipeVersion:  Return only those recipes with a version identifier of <code>LATEST_WORKING</code> or <code>LATEST_PUBLISHED</code>. If <code>RecipeVersion</code> is omitted, <code>ListRecipes</code> returns all of the <code>LATEST_PUBLISHED</code> recipe versions. Valid values: <code>LATEST_WORKING</code> | <code>LATEST_PUBLISHED</code> <br/>NextToken:  The token returned by a previous call to retrieve the next set of results.<br/>MaxResults:  The maximum number of results to return in this request. <br/>
        :return: NextToken:  A token that you can use in a subsequent call to retrieve the next set of results.<br/>Recipes:  A list of recipes that are defined.<br/>        """
        pass

    def list_schedules(self, JobName: str=None, MaxResults: int=None, NextToken: str=None) -> ListSchedulesResponse:
        r"""Lists the DataBrew schedules that are defined.

        :param self:
        :param NextToken:  The token returned by a previous call to retrieve the next set of results.<br/>MaxResults:  The maximum number of results to return in this request. <br/>JobName:  The name of the job that these schedules apply to.<br/>
        :return: NextToken:  A token that you can use in a subsequent call to retrieve the next set of results.<br/>Schedules:  A list of schedules that are defined.<br/>        """
        pass

    def list_tags_for_resource(self, ResourceArn: str) -> ListTagsForResourceResponse:
        r"""Lists all the tags for a DataBrew resource. 

        :param self:
        :param ResourceArn:  The Amazon Resource Name (ARN) string that uniquely identifies the DataBrew resource. <br/>
        :return: Tags:  A list of tags associated with the DataBrew resource.<br/>        """
        pass

    def publish_recipe(self, Name: str, Description: str=None) -> PublishRecipeResponse:
        r"""Publishes a new version of a DataBrew recipe.

        :param self:
        :param Name:  The name of the recipe to be published.<br/>Description:  A description of the recipe to be published, for this version of the recipe.<br/>
        :return: Name:  The name of the recipe that you published.<br/>        """
        pass

    def send_project_session_action(self, Name: str, Preview: Preview=None, RecipeStep: RecipeStep=None, StepIndex: int=None, ClientSessionId: str=None, ViewFrame: ViewFrame=None) -> SendProjectSessionActionResponse:
        r"""Performs a recipe step within an interactive DataBrew session that's currently open.

        :param self:
        :param ViewFrame:  Represents the data being transformed during an action.:<br/>ClientSessionId:  A unique identifier for an interactive session that's currently open and ready for work. The action will be performed on this session.<br/>StepIndex:  The index from which to preview a step. This index is used to preview the result of steps that have already been applied, so that the resulting view frame is from earlier in the view frame stack.<br/>RecipeStep:  Represents a single step from a DataBrew recipe to be performed.:<br/>Name:  The name of the project to apply the action to.<br/>Preview:  If true, the result of the recipe step will be returned, but not applied.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConditionExpressions</i> One or more conditions that must be met for the recipe step to succeed. <note> All of the conditions in the array must be met. In other words, all of the conditions must be combined using a logical AND operation. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Action</i> The particular action to be performed in the recipe step.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Action</b>: The particular action to be performed in the recipe step.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Parameters</i> Contextual parameters for the transformation.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Operation</i> The name of a valid DataBrew transformation to be performed on the data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HiddenColumns</i> A list of columns to hide in the view frame.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ColumnRange</i> The number of columns to include in the view frame, beginning with the <code>StartColumnIndex</code> value and ignoring any columns in the <code>HiddenColumns</code> list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StartColumnIndex</i> The starting index for the range of columns to return in the view frame.<br/>
        :return: ActionId:  A unique identifier for the action that was performed.<br/>Name:  The name of the project that was affected by the action.<br/>Result:  A message indicating the result of performing the action.<br/>        """
        pass

    def start_job_run(self, Name: str) -> StartJobRunResponse:
        r"""Runs a DataBrew job.

        :param self:
        :param Name:  The name of the job to be run.<br/>
        :return: RunId:  A system-generated identifier for this particular job run.<br/>        """
        pass

    def start_project_session(self, Name: str, AssumeControl: AssumeControl=None) -> StartProjectSessionResponse:
        r"""Creates an interactive session, enabling you to manipulate data in a DataBrew project.

        :param self:
        :param AssumeControl:  A value that, if true, enables you to take control of a session, even if a different client is currently accessing the project.<br/>Name:  The name of the project to act upon.<br/>
        :return: ClientSessionId:  A system-generated identifier for the session.<br/>Name:  The name of the project to be acted upon.<br/>        """
        pass

    def stop_job_run(self, RunId: str, Name: str) -> StopJobRunResponse:
        r"""Stops a particular run of a job.

        :param self:
        :param RunId:  The ID of the job run to be stopped.<br/>Name:  The name of the job to be stopped.<br/>
        :return: RunId:  The ID of the job run that you stopped.<br/>        """
        pass

    def tag_resource(self, Tags: TagMap, ResourceArn: str) -> TagResourceResponse:
        r"""Adds metadata tags to a DataBrew resource, such as a dataset, project, recipe, job, or schedule.

        :param self:
        :param Tags:  One or more tags to be assigned to the resource.<br/>ResourceArn:  The DataBrew resource to which tags should be added. The value for this parameter is an Amazon Resource Name (ARN). For DataBrew, you can tag a dataset, a job, a project, or a recipe.<br/>
        :return:         """
        pass

    def untag_resource(self, TagKeys: List[TagKey], ResourceArn: str) -> UntagResourceResponse:
        r"""Removes metadata tags from a DataBrew resource.

        :param self:
        :param TagKeys:  The tag keys (names) of one or more tags to be removed.<br/>ResourceArn:  A DataBrew resource from which you want to remove a tag or tags. The value for this parameter is an Amazon Resource Name (ARN). <br/>
        :return:         """
        pass

    def update_dataset(self, Input: Input, Name: str, Format: str=None, FormatOptions: FormatOptions=None, PathOptions: PathOptions=None) -> UpdateDatasetResponse:
        r"""Modifies the definition of an existing DataBrew dataset.

        :param self:
        :param PathOptions:  A set of options that defines how DataBrew interprets an Amazon S3 path of the dataset.:<br/>Input:  Represents information on how DataBrew can find data, in either the Glue Data Catalog or Amazon S3.:<br/>FormatOptions:  Represents a set of options that define the structure of either comma-separated value (CSV), Excel, or JSON input.:<br/>Format:  The file format of a dataset that is created from an Amazon S3 file or folder.<br/>Name:  The name of the dataset to be updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Csv</i> Options that define how CSV input is to be interpreted by DataBrew.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Csv</b>: Options that define how CSV input is to be interpreted by DataBrew.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Excel</i> Options that define how Excel input is to be interpreted by DataBrew.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Excel</b>: Options that define how Excel input is to be interpreted by DataBrew.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Json</i> Options that define how JSON input is to be interpreted by DataBrew.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Json</b>: Options that define how JSON input is to be interpreted by DataBrew.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiLine</i> A value that specifies whether JSON input contains embedded new line characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HeaderRow</i> A variable that specifies whether the first row in the file is parsed as the header. If this value is false, column names are auto-generated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SheetIndexes</i> One or more sheet numbers in the Excel file that will be included in the dataset.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SheetNames</i> One or more named sheets in the Excel file that will be included in the dataset.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HeaderRow</i> A variable that specifies whether the first row in the file is parsed as the header. If this value is false, column names are auto-generated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Delimiter</i> A single character that specifies the delimiter being used in the CSV file.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseInputDefinition</i> Connection information for dataset input files stored in a database.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DatabaseInputDefinition</b>: Connection information for dataset input files stored in a database.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataCatalogInputDefinition</i> The Glue Data Catalog parameters for the data.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DataCatalogInputDefinition</b>: The Glue Data Catalog parameters for the data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3InputDefinition</i> The Amazon S3 location where the data is stored.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3InputDefinition</b>: The Amazon S3 location where the data is stored.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The unique name of the object in the bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i> The Amazon S3 bucket name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TableName</i> The name of a database table in the Data Catalog. This table corresponds to a DataBrew dataset.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> The name of a database in the Data Catalog.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CatalogId</i> The unique identifier of the Amazon Web Services account that holds the Data Catalog that stores the data.<br/>Represents an Amazon location where DataBrew can store intermediate results.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TempDirectory</b>: Represents an Amazon location where DataBrew can store intermediate results.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseTableName</i> The table within the target database.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>GlueConnectionName</i> The Glue Connection that stores the connection information for the target database.<br/>Represents an Amazon S3 location (bucket name and object key) where DataBrew can read input data, or write output from a job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TempDirectory</b>: Represents an Amazon S3 location (bucket name and object key) where DataBrew can read input data, or write output from a job.&nbsp;&nbsp;&nbsp;&nbsp; <i>Parameters</i> A structure that maps names of parameters used in the Amazon S3 path of a dataset to their definitions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FilesLimit</i> If provided, this structure imposes a limit on a number of files that should be selected.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>FilesLimit</b>: If provided, this structure imposes a limit on a number of files that should be selected.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDateCondition</i> If provided, this structure defines a date range for matching Amazon S3 objects based on their LastModifiedDate attribute in Amazon S3.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>LastModifiedDateCondition</b>: If provided, this structure defines a date range for matching Amazon S3 objects based on their LastModifiedDate attribute in Amazon S3.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ValuesMap</i> The map of substitution variable names to their values used in this filter expression.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Expression</i> The expression which includes condition names followed by substitution variables, possibly grouped and combined with other conditions. For example, "(starts_with :prefix1 or starts_with :prefix2) and (ends_with :suffix1 or ends_with :suffix2)". Substitution variables should start with ':' symbol.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Order</i> A criteria to use for Amazon S3 files sorting before their selection. By default uses DESCENDING order, i.e. most recent files are selected first. Anotherpossible value is ASCENDING.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OrderedBy</i> A criteria to use for Amazon S3 files sorting before their selection. By default uses LAST_MODIFIED_DATE as a sorting criteria. Currently it's the only allowed value.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxFiles</i> The number of Amazon S3 files to select.<br/>
        :return: Name:  The name of the dataset that you updated.<br/>        """
        pass

    def update_profile_job(self, RoleArn: str, OutputLocation: S3Location, Name: str, EncryptionKeyArn: str=None, EncryptionMode: str=None, LogSubscription: str=None, MaxCapacity: int=None, MaxRetries: int=None, Timeout: int=None, JobSample: JobSample=None) -> UpdateProfileJobResponse:
        r"""Modifies the definition of an existing profile job.

        :param self:
        :param JobSample:  Sample configuration for Profile Jobs only. Determines the number of rows on which the Profile job will be executed. If a JobSample value is not provided for profile jobs, the default value will be used. The default value is CUSTOM_ROWS for the mode parameter and 20000 for the size parameter.:<br/>Timeout:  The job's timeout in minutes. A job that attempts to run longer than this timeout period ends with a status of <code>TIMEOUT</code>.<br/>RoleArn:  The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role to be assumed when DataBrew runs the job.<br/>OutputLocation:  Represents an Amazon S3 location (bucket name and object key) where DataBrew can read input data, or write output from a job.:<br/>MaxRetries:  The maximum number of times to retry the job after a job run fails.<br/>MaxCapacity:  The maximum number of compute nodes that DataBrew can use when the job processes data.<br/>LogSubscription:  Enables or disables Amazon CloudWatch logging for the job. If logging is enabled, CloudWatch writes one log stream for each job run.<br/>Name:  The name of the job to be updated.<br/>EncryptionMode:  The encryption mode for the job, which can be one of the following: <ul> <li>  <code>SSE-KMS</code> - Server-side encryption with keys managed by KMS. </li> <li>  <code>SSE-S3</code> - Server-side encryption with keys managed by Amazon S3. </li> </ul><br/>EncryptionKeyArn:  The Amazon Resource Name (ARN) of an encryption key that is used to protect the job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The unique name of the object in the bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i> The Amazon S3 bucket name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Size</i> The <code>Size</code> parameter is only required when the mode is CUSTOM_ROWS. The profile job is run on the specified number of rows. The maximum value for size is Long.MAX_VALUE. Long.MAX_VALUE = 9223372036854775807<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Mode</i> A value that determines whether the profile job is run on the entire dataset or a specified number of rows. This value must be one of the following: <ul> <li> FULL_DATASET - The profile job is run on the entire dataset. </li> <li> CUSTOM_ROWS - The profile job is run on the number of rows specified in the <code>Size</code> parameter. </li> </ul><br/>
        :return: Name:  The name of the job that was updated.<br/>        """
        pass

    def update_project(self, Name: str, RoleArn: str, Sample: Sample=None) -> UpdateProjectResponse:
        r"""Modifies the definition of an existing DataBrew project.

        :param self:
        :param Name:  The name of the project to be updated.<br/>RoleArn:  The Amazon Resource Name (ARN) of the IAM role to be assumed for this request.<br/>Sample:  Represents the sample size and sampling type for DataBrew to use for interactive data analysis.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The way in which DataBrew obtains rows from a dataset.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Size</i> The number of rows in the sample.<br/>
        :return: Name:  The name of the project that you updated.<br/>LastModifiedDate:  The date and time that the project was last modified.<br/>        """
        pass

    def update_recipe(self, Name: str, Description: str=None, Steps: List[RecipeStep]=None) -> UpdateRecipeResponse:
        r"""Modifies the definition of the <code>LATEST_WORKING</code> version of a DataBrew recipe.

        :param self:
        :param Steps:  One or more steps to be performed by the recipe. Each step consists of an action, and the conditions under which the action should succeed.<br/>Name:  The name of the recipe to be updated.<br/>Description:  A description of the recipe.<br/>
        :return: Name:  The name of the recipe that was updated.<br/>        """
        pass

    def update_recipe_job(self, RoleArn: str, Name: str, EncryptionKeyArn: str=None, EncryptionMode: str=None, LogSubscription: str=None, MaxCapacity: int=None, MaxRetries: int=None, Outputs: List[Output]=None, DataCatalogOutputs: List[DataCatalogOutput]=None, Timeout: int=None) -> UpdateRecipeJobResponse:
        r"""Modifies the definition of an existing DataBrew recipe job.

        :param self:
        :param Timeout:  The job's timeout in minutes. A job that attempts to run longer than this timeout period ends with a status of <code>TIMEOUT</code>.<br/>RoleArn:  The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role to be assumed when DataBrew runs the job.<br/>DataCatalogOutputs:  One or more artifacts that represent the AWS Glue Data Catalog output from running the job.<br/>Outputs:  One or more artifacts that represent the output from running the job. <br/>MaxRetries:  The maximum number of times to retry the job after a job run fails.<br/>MaxCapacity:  The maximum number of nodes that DataBrew can consume when the job processes data.<br/>LogSubscription:  Enables or disables Amazon CloudWatch logging for the job. If logging is enabled, CloudWatch writes one log stream for each job run.<br/>Name:  The name of the job to update.<br/>EncryptionMode:  The encryption mode for the job, which can be one of the following: <ul> <li>  <code>SSE-KMS</code> - Server-side encryption with keys managed by KMS. </li> <li>  <code>SSE-S3</code> - Server-side encryption with keys managed by Amazon S3. </li> </ul><br/>EncryptionKeyArn:  The Amazon Resource Name (ARN) of an encryption key that is used to protect the job.<br/>
        :return: Name:  The name of the job that you updated.<br/>        """
        pass

    def update_schedule(self, Name: str, CronExpression: str, JobNames: List[JobName]=None) -> UpdateScheduleResponse:
        r"""Modifies the definition of an existing DataBrew schedule.

        :param self:
        :param Name:  The name of the schedule to update.<br/>CronExpression:  The date or dates and time or times when the jobs are to be run. For more information, see <a href="https://docs.aws.amazon.com/databrew/latest/dg/jobs.cron.html">Cron expressions</a> in the <i>Glue DataBrew Developer Guide</i>.<br/>JobNames:  The name or names of one or more jobs to be run for this schedule.<br/>
        :return: Name:  The name of the schedule that was updated.<br/>        """
        pass





class DataExchange(BaseClient):
    r"""AWS Data Exchange is a service that makes it easy for AWS customers to exchange data in the cloud. You can use the AWS Data Exchange APIs to create, update, manage, and access file-based data set in the AWS Cloud.As a subscriber, you can view and access the data sets that you have an entitlement to through a subscription. You can use the APIS to download or copy your entitled data sets to Amazon S3 for use across a variety of AWS analytics and machine learning services.As a provider, you can create and manage your data sets that you would like to publish to a product. Being able to package and provide your data sets into products requires a few steps to determine eligibility. For more information, visit the AWS Data Exchange User Guide.A data set is a collection of data that can be changed or updated over time. Data sets can be updated using revisions, which represent a new version or incremental change to a data set.  A revision contains one or more assets. An asset in AWS Data Exchange is a piece of data that can be stored as an Amazon S3 object. The asset can be a structured data file, an image file, or some other data file. Jobs are asynchronous import or export operations used to create or copy assets."""


    class ListDataSetRevisionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_data_set_revisions` for valid parameters"""
            pass
    class ListDataSetsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_data_sets` for valid parameters"""
            pass
    class ListJobsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_jobs` for valid parameters"""
            pass
    class ListRevisionAssetsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_revision_assets` for valid parameters"""
            pass


    class CancelJobRequest(Mapping):
        pass
    
    class CreateDataSetRequest(Mapping):
        pass
    
    class CreateDataSetResponse(Mapping):
        pass
    
    class MapOf__string(object):
        pass
    
    class CreateJobRequest(Mapping):
        pass
    
    class CreateJobResponse(Mapping):
        pass
    
    class RequestDetails(Mapping):
        pass
    
    class CreateRevisionRequest(Mapping):
        pass
    
    class CreateRevisionResponse(Mapping):
        pass
    
    class DeleteAssetRequest(Mapping):
        pass
    
    class DeleteDataSetRequest(Mapping):
        pass
    
    class DeleteRevisionRequest(Mapping):
        pass
    
    class GetAssetRequest(Mapping):
        pass
    
    class GetAssetResponse(Mapping):
        pass
    
    class GetDataSetRequest(Mapping):
        pass
    
    class GetDataSetResponse(Mapping):
        pass
    
    class GetJobRequest(Mapping):
        pass
    
    class GetJobResponse(Mapping):
        pass
    
    class GetRevisionRequest(Mapping):
        pass
    
    class GetRevisionResponse(Mapping):
        pass
    
    class ListDataSetRevisionsRequest(Mapping):
        pass
    
    class ListDataSetRevisionsResponse(Mapping):
        pass
    
    class ListDataSetsRequest(Mapping):
        pass
    
    class ListDataSetsResponse(Mapping):
        pass
    
    class ListJobsRequest(Mapping):
        pass
    
    class ListJobsResponse(Mapping):
        pass
    
    class ListRevisionAssetsRequest(Mapping):
        pass
    
    class ListRevisionAssetsResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class StartJobRequest(Mapping):
        pass
    
    class StartJobResponse(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class __string(object):
        pass
    
    class UpdateAssetRequest(Mapping):
        pass
    
    class UpdateAssetResponse(Mapping):
        pass
    
    class UpdateDataSetRequest(Mapping):
        pass
    
    class UpdateDataSetResponse(Mapping):
        pass
    
    class UpdateRevisionRequest(Mapping):
        pass
    
    class UpdateRevisionResponse(Mapping):
        pass
    
    class __boolean(object):
        pass
    
    def cancel_job(self, JobId: str):
        r"""This operation cancels a job. Jobs can be cancelled only when they are in the WAITING state.

        :param self:
        :param JobId:  The unique identifier for a job.<br/>
        :return:         """
        pass

    def create_data_set(self, Name: str, Description: str, AssetType: str, Tags: MapOf__string=None) -> CreateDataSetResponse:
        r"""This operation creates a data set.

        :param self:
        :param Tags:  A data set tag is an optional label that you can assign to a data set when you create it. Each tag consists of a key and an optional value, both of which you define. When you use tagging, you can also use tag-based access control in IAM policies to control access to these data sets and revisions.<br/>Name:  The name of the data set.<br/>Description:  A description for the data set. This value can be up to 16,348 characters long.<br/>AssetType:  The type of file your data is stored in. Currently, the supported asset type is S3_SNAPSHOT.<br/>
        :return: UpdatedAt:  The date and time that the data set was last updated, in ISO 8601 format.<br/>Tags:  The tags for the data set.<br/>SourceId:  The data set ID of the owned data set corresponding to the entitled data set being viewed. This parameter is returned when a data set owner is viewing the entitled copy of its owned data set.<br/>OriginDetails:  If the origin of this data set is ENTITLED, includes the details for the product on AWS Marketplace.:<br/>Origin:  A property that defines the data set as OWNED by the account (for providers) or ENTITLED to the account (for subscribers).<br/>Name:  The name of the data set.<br/>Id:  The unique identifier for the data set.<br/>Description:  The description for the data set.<br/>CreatedAt:  The date and time that the data set was created, in ISO 8601 format.<br/>AssetType:  The type of file your data is stored in. Currently, the supported asset type is S3_SNAPSHOT.<br/>Arn:  The ARN for the data set.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProductId</i> <br/>        """
        pass

    def create_job(self, Type: str, Details: RequestDetails) -> CreateJobResponse:
        r"""This operation creates a job.

        :param self:
        :param Type:  The type of job to be created.<br/>Details:  The details for the CreateJob request.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImportAssetsFromS3</i> Details about the import from Amazon S3 request.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ImportAssetsFromS3</b>: Details about the import from Amazon S3 request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImportAssetFromSignedUrl</i> Details about the import from signed URL request.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ImportAssetFromSignedUrl</b>: Details about the import from signed URL request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExportRevisionsToS3</i> Details about the export to Amazon S3 request.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ExportRevisionsToS3</b>: Details about the export to Amazon S3 request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExportAssetsToS3</i> Details about the export to Amazon S3 request.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ExportAssetsToS3</b>: Details about the export to Amazon S3 request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExportAssetToSignedUrl</i> Details about the export to signed URL request.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ExportAssetToSignedUrl</b>: Details about the export to signed URL request.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RevisionId</i> The unique identifier for the revision associated with this export request.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DataSetId</i> The unique identifier for the data set associated with this export job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AssetId</i> The unique identifier for the asset that is exported to a signed URL.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DataSetId</i> The unique identifier for the data set associated with this export job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AssetDestinations</i> The destination for the asset.<br/>Encryption configuration for the export job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Encryption</b>: Encryption configuration for the export job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DataSetId</i> The unique identifier for the data set associated with this export job.<br/>Encryption configuration for the export job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Encryption</b>: Encryption configuration for the export job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RevisionId</i> The unique identifier for the revision associated with this import request.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Md5Hash</i> The Base64-encoded Md5 hash for the asset, used to ensure the integrity of the file at that location.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DataSetId</i> The unique identifier for the data set associated with this import job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AssetName</i> The name of the asset. When importing from Amazon S3, the S3 object key is used as the asset name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RevisionId</i> The unique identifier for the revision associated with this import request.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DataSetId</i> The unique identifier for the data set associated with this import job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AssetSources</i> Is a list of S3 bucket and object key pairs.<br/>
        :return: UpdatedAt:  The date and time that the job was last updated, in ISO 8601 format.<br/>Type:  The job type.<br/>State:  The state of the job.<br/>Id:  The unique identifier for the job.<br/>Errors:  The errors associated with jobs.<br/>Details:  Details about the job.:<br/>CreatedAt:  The date and time that the job was created, in ISO 8601 format.<br/>Arn:  The ARN for the job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImportAssetsFromS3</i> Details for the import from Amazon S3 response.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ImportAssetsFromS3</b>: Details for the import from Amazon S3 response.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImportAssetFromSignedUrl</i> Details for the import from signed URL response.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ImportAssetFromSignedUrl</b>: Details for the import from signed URL response.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExportRevisionsToS3</i> Details for the export revisions to Amazon S3 response.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ExportRevisionsToS3</b>: Details for the export revisions to Amazon S3 response.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExportAssetsToS3</i> Details for the export to Amazon S3 response.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ExportAssetsToS3</b>: Details for the export to Amazon S3 response.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExportAssetToSignedUrl</i> Details for the export to signed URL response.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ExportAssetToSignedUrl</b>: Details for the export to signed URL response.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SignedUrlExpiresAt</i> The date and time that the signed URL expires, in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SignedUrl</i> The signed URL for the export request.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RevisionId</i> The unique identifier for the revision associated with this export response.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DataSetId</i> The unique identifier for the data set associated with this export job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AssetId</i> The unique identifier for the asset associated with this export job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DataSetId</i> The unique identifier for the data set associated with this export job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AssetDestinations</i> The destination in Amazon S3 where the asset is exported.<br/>Encryption configuration of the export job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Encryption</b>: Encryption configuration of the export job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DataSetId</i> The unique identifier for the data set associated with this export job.<br/>Encryption configuration of the export job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Encryption</b>: Encryption configuration of the export job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SignedUrlExpiresAt</i> The time and date at which the signed URL expires, in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SignedUrl</i> The signed URL.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RevisionId</i> The unique identifier for the revision associated with this import response.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Md5Hash</i> The Base64-encoded Md5 hash for the asset, used to ensure the integrity of the file at that location.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DataSetId</i> The unique identifier for the data set associated with this import job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AssetName</i> The name for the asset associated with this import response.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RevisionId</i> The unique identifier for the revision associated with this import response.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DataSetId</i> The unique identifier for the data set associated with this import job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AssetSources</i> Is a list of Amazon S3 bucket and object key pairs.<br/>        """
        pass

    def create_revision(self, DataSetId: str, Comment: str=None, Tags: MapOf__string=None) -> CreateRevisionResponse:
        r"""This operation creates a revision for a data set.

        :param self:
        :param Tags:  A revision tag is an optional label that you can assign to a revision when you create it. Each tag consists of a key and an optional value, both of which you define. When you use tagging, you can also use tag-based access control in IAM policies to control access to these data sets and revisions.<br/>DataSetId:  The unique identifier for a data set.<br/>Comment:  An optional comment about the revision.<br/>
        :return: UpdatedAt:  The date and time that the revision was last updated, in ISO 8601 format.<br/>Tags:  The tags for the revision.<br/>SourceId:  The revision ID of the owned revision corresponding to the entitled revision being viewed. This parameter is returned when a revision owner is viewing the entitled copy of its owned revision.<br/>Id:  The unique identifier for the revision.<br/>Finalized:  To publish a revision to a data set in a product, the revision must first be finalized. Finalizing a revision tells AWS Data Exchange that your changes to the assets in the revision are complete. After it's in this read-only state, you can publish the revision to your products. Finalized revisions can be published through the AWS Data Exchange console or the AWS Marketplace Catalog API, using the StartChangeSet AWS Marketplace Catalog API action. When using the API, revisions are uniquely identified by their ARN.<br/>DataSetId:  The unique identifier for the data set associated with this revision.<br/>CreatedAt:  The date and time that the revision was created, in ISO 8601 format.<br/>Comment:  An optional comment about the revision.<br/>Arn:  The ARN for the revision<br/>        """
        pass

    def delete_asset(self, RevisionId: str, DataSetId: str, AssetId: str):
        r"""This operation deletes an asset.

        :param self:
        :param RevisionId:  The unique identifier for a revision.<br/>DataSetId:  The unique identifier for a data set.<br/>AssetId:  The unique identifier for an asset.<br/>
        :return:         """
        pass

    def delete_data_set(self, DataSetId: str):
        r"""This operation deletes a data set.

        :param self:
        :param DataSetId:  The unique identifier for a data set.<br/>
        :return:         """
        pass

    def delete_revision(self, RevisionId: str, DataSetId: str):
        r"""This operation deletes a revision.

        :param self:
        :param RevisionId:  The unique identifier for a revision.<br/>DataSetId:  The unique identifier for a data set.<br/>
        :return:         """
        pass

    def get_asset(self, RevisionId: str, DataSetId: str, AssetId: str) -> GetAssetResponse:
        r"""This operation returns information about an asset.

        :param self:
        :param RevisionId:  The unique identifier for a revision.<br/>DataSetId:  The unique identifier for a data set.<br/>AssetId:  The unique identifier for an asset.<br/>
        :return: UpdatedAt:  The date and time that the asset was last updated, in ISO 8601 format.<br/>SourceId:  The asset ID of the owned asset corresponding to the entitled asset being viewed. This parameter is returned when an asset owner is viewing the entitled copy of its owned asset.<br/>RevisionId:  The unique identifier for the revision associated with this asset.<br/>Name:  The name of the asset When importing from Amazon S3, the S3 object key is used as the asset name. When exporting to Amazon S3, the asset name is used as default target S3 object key.<br/>Id:  The unique identifier for the asset.<br/>DataSetId:  The unique identifier for the data set associated with this asset.<br/>CreatedAt:  The date and time that the asset was created, in ISO 8601 format.<br/>AssetType:  The type of file your data is stored in. Currently, the supported asset type is S3_SNAPSHOT.<br/>AssetDetails:  Information about the asset, including its size.:<br/>Arn:  The ARN for the asset.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3SnapshotAsset</i> The S3 object that is the asset.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3SnapshotAsset</b>: The S3 object that is the asset.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Size</i> The size of the S3 object that is the object.<br/>        """
        pass

    def get_data_set(self, DataSetId: str) -> GetDataSetResponse:
        r"""This operation returns information about a data set.

        :param self:
        :param DataSetId:  The unique identifier for a data set.<br/>
        :return: UpdatedAt:  The date and time that the data set was last updated, in ISO 8601 format.<br/>Tags:  The tags for the data set.<br/>SourceId:  The data set ID of the owned data set corresponding to the entitled data set being viewed. This parameter is returned when a data set owner is viewing the entitled copy of its owned data set.<br/>OriginDetails:  If the origin of this data set is ENTITLED, includes the details for the product on AWS Marketplace.:<br/>Origin:  A property that defines the data set as OWNED by the account (for providers) or ENTITLED to the account (for subscribers).<br/>Name:  The name of the data set.<br/>Id:  The unique identifier for the data set.<br/>Description:  The description for the data set.<br/>CreatedAt:  The date and time that the data set was created, in ISO 8601 format.<br/>AssetType:  The type of file your data is stored in. Currently, the supported asset type is S3_SNAPSHOT.<br/>Arn:  The ARN for the data set.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProductId</i> <br/>        """
        pass

    def get_job(self, JobId: str) -> GetJobResponse:
        r"""This operation returns information about a job.

        :param self:
        :param JobId:  The unique identifier for a job.<br/>
        :return: UpdatedAt:  The date and time that the job was last updated, in ISO 8601 format.<br/>Type:  The job type.<br/>State:  The state of the job.<br/>Id:  The unique identifier for the job.<br/>Errors:  The errors associated with jobs.<br/>Details:  Details about the job.:<br/>CreatedAt:  The date and time that the job was created, in ISO 8601 format.<br/>Arn:  The ARN for the job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImportAssetsFromS3</i> Details for the import from Amazon S3 response.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ImportAssetsFromS3</b>: Details for the import from Amazon S3 response.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImportAssetFromSignedUrl</i> Details for the import from signed URL response.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ImportAssetFromSignedUrl</b>: Details for the import from signed URL response.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExportRevisionsToS3</i> Details for the export revisions to Amazon S3 response.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ExportRevisionsToS3</b>: Details for the export revisions to Amazon S3 response.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExportAssetsToS3</i> Details for the export to Amazon S3 response.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ExportAssetsToS3</b>: Details for the export to Amazon S3 response.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExportAssetToSignedUrl</i> Details for the export to signed URL response.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ExportAssetToSignedUrl</b>: Details for the export to signed URL response.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SignedUrlExpiresAt</i> The date and time that the signed URL expires, in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SignedUrl</i> The signed URL for the export request.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RevisionId</i> The unique identifier for the revision associated with this export response.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DataSetId</i> The unique identifier for the data set associated with this export job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AssetId</i> The unique identifier for the asset associated with this export job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DataSetId</i> The unique identifier for the data set associated with this export job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AssetDestinations</i> The destination in Amazon S3 where the asset is exported.<br/>Encryption configuration of the export job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Encryption</b>: Encryption configuration of the export job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DataSetId</i> The unique identifier for the data set associated with this export job.<br/>Encryption configuration of the export job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Encryption</b>: Encryption configuration of the export job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SignedUrlExpiresAt</i> The time and date at which the signed URL expires, in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SignedUrl</i> The signed URL.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RevisionId</i> The unique identifier for the revision associated with this import response.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Md5Hash</i> The Base64-encoded Md5 hash for the asset, used to ensure the integrity of the file at that location.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DataSetId</i> The unique identifier for the data set associated with this import job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AssetName</i> The name for the asset associated with this import response.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RevisionId</i> The unique identifier for the revision associated with this import response.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DataSetId</i> The unique identifier for the data set associated with this import job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AssetSources</i> Is a list of Amazon S3 bucket and object key pairs.<br/>        """
        pass

    def get_revision(self, RevisionId: str, DataSetId: str) -> GetRevisionResponse:
        r"""This operation returns information about a revision.

        :param self:
        :param RevisionId:  The unique identifier for a revision.<br/>DataSetId:  The unique identifier for a data set.<br/>
        :return: UpdatedAt:  The date and time that the revision was last updated, in ISO 8601 format.<br/>Tags:  The tags for the revision.<br/>SourceId:  The revision ID of the owned revision corresponding to the entitled revision being viewed. This parameter is returned when a revision owner is viewing the entitled copy of its owned revision.<br/>Id:  The unique identifier for the revision.<br/>Finalized:  To publish a revision to a data set in a product, the revision must first be finalized. Finalizing a revision tells AWS Data Exchange that your changes to the assets in the revision are complete. After it's in this read-only state, you can publish the revision to your products. Finalized revisions can be published through the AWS Data Exchange console or the AWS Marketplace Catalog API, using the StartChangeSet AWS Marketplace Catalog API action. When using the API, revisions are uniquely identified by their ARN.<br/>DataSetId:  The unique identifier for the data set associated with this revision.<br/>CreatedAt:  The date and time that the revision was created, in ISO 8601 format.<br/>Comment:  An optional comment about the revision.<br/>Arn:  The ARN for the revision<br/>        """
        pass

    def list_data_set_revisions(self, DataSetId: str, MaxResults: int=None, NextToken: str=None) -> ListDataSetRevisionsResponse:
        r"""This operation lists a data set's revisions sorted by CreatedAt in descending order.

        :param self:
        :param NextToken:  The token value retrieved from a previous call to access the next page of results.<br/>MaxResults:  The maximum number of results returned by a single call.<br/>DataSetId:  The unique identifier for a data set.<br/>
        :return: Revisions:  The asset objects listed by the request.<br/>NextToken:  The token value retrieved from a previous call to access the next page of results.<br/>        """
        pass

    def list_data_sets(self, MaxResults: int=None, NextToken: str=None, Origin: str=None) -> ListDataSetsResponse:
        r"""This operation lists your data sets. When listing by origin OWNED, results are sorted by CreatedAt in descending order. When listing by origin ENTITLED, there is no order and the maxResults parameter is ignored.

        :param self:
        :param Origin:  A property that defines the data set as OWNED by the account (for providers) or ENTITLED to the account (for subscribers).<br/>NextToken:  The token value retrieved from a previous call to access the next page of results.<br/>MaxResults:  The maximum number of results returned by a single call.<br/>
        :return: NextToken:  The token value retrieved from a previous call to access the next page of results.<br/>DataSets:  The data set objects listed by the request.<br/>        """
        pass

    def list_jobs(self, DataSetId: str=None, MaxResults: int=None, NextToken: str=None, RevisionId: str=None) -> ListJobsResponse:
        r"""This operation lists your jobs sorted by CreatedAt in descending order.

        :param self:
        :param RevisionId:  The unique identifier for a revision.<br/>NextToken:  The token value retrieved from a previous call to access the next page of results.<br/>MaxResults:  The maximum number of results returned by a single call.<br/>DataSetId:  The unique identifier for a data set.<br/>
        :return: NextToken:  The token value retrieved from a previous call to access the next page of results.<br/>Jobs:  The jobs listed by the request.<br/>        """
        pass

    def list_revision_assets(self, RevisionId: str, DataSetId: str, MaxResults: int=None, NextToken: str=None) -> ListRevisionAssetsResponse:
        r"""This operation lists a revision's assets sorted alphabetically in descending order.

        :param self:
        :param RevisionId:  The unique identifier for a revision.<br/>NextToken:  The token value retrieved from a previous call to access the next page of results.<br/>MaxResults:  The maximum number of results returned by a single call.<br/>DataSetId:  The unique identifier for a data set.<br/>
        :return: NextToken:  The token value retrieved from a previous call to access the next page of results.<br/>Assets:  The asset objects listed by the request.<br/>        """
        pass

    def list_tags_for_resource(self, ResourceArn: str) -> ListTagsForResourceResponse:
        r"""This operation lists the tags on the resource.

        :param self:
        :param ResourceArn:  An Amazon Resource Name (ARN) that uniquely identifies an AWS resource.<br/>
        :return: Tags:  A label that consists of a customer-defined key and an optional value.<br/>        """
        pass

    def start_job(self, JobId: str) -> StartJobResponse:
        r"""This operation starts a job.

        :param self:
        :param JobId:  The unique identifier for a job.<br/>
        :return:         """
        pass

    def tag_resource(self, Tags: MapOf__string, ResourceArn: str):
        r"""This operation tags a resource.

        :param self:
        :param Tags:  A label that consists of a customer-defined key and an optional value.<br/>ResourceArn:  An Amazon Resource Name (ARN) that uniquely identifies an AWS resource.<br/>
        :return:         """
        pass

    def untag_resource(self, TagKeys: List[__string], ResourceArn: str):
        r"""This operation removes one or more tags from a resource.

        :param self:
        :param TagKeys:  The key tags.<br/>ResourceArn:  An Amazon Resource Name (ARN) that uniquely identifies an AWS resource.<br/>
        :return:         """
        pass

    def update_asset(self, RevisionId: str, Name: str, DataSetId: str, AssetId: str) -> UpdateAssetResponse:
        r"""This operation updates an asset.

        :param self:
        :param RevisionId:  The unique identifier for a revision.<br/>Name:  The name of the asset. When importing from Amazon S3, the S3 object key is used as the asset name. When exporting to Amazon S3, the asset name is used as default target S3 object key.<br/>DataSetId:  The unique identifier for a data set.<br/>AssetId:  The unique identifier for an asset.<br/>
        :return: UpdatedAt:  The date and time that the asset was last updated, in ISO 8601 format.<br/>SourceId:  The asset ID of the owned asset corresponding to the entitled asset being viewed. This parameter is returned when an asset owner is viewing the entitled copy of its owned asset.<br/>RevisionId:  The unique identifier for the revision associated with this asset.<br/>Name:  The name of the asset When importing from Amazon S3, the S3 object key is used as the asset name. When exporting to Amazon S3, the asset name is used as default target S3 object key.<br/>Id:  The unique identifier for the asset.<br/>DataSetId:  The unique identifier for the data set associated with this asset.<br/>CreatedAt:  The date and time that the asset was created, in ISO 8601 format.<br/>AssetType:  The type of file your data is stored in. Currently, the supported asset type is S3_SNAPSHOT.<br/>AssetDetails:  Information about the asset, including its size.:<br/>Arn:  The ARN for the asset.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3SnapshotAsset</i> The S3 object that is the asset.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3SnapshotAsset</b>: The S3 object that is the asset.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Size</i> The size of the S3 object that is the object.<br/>        """
        pass

    def update_data_set(self, DataSetId: str, Description: str=None, Name: str=None) -> UpdateDataSetResponse:
        r"""This operation updates a data set.

        :param self:
        :param Name:  The name of the data set.<br/>Description:  The description for the data set.<br/>DataSetId:  The unique identifier for a data set.<br/>
        :return: UpdatedAt:  The date and time that the data set was last updated, in ISO 8601 format.<br/>SourceId:  The data set ID of the owned data set corresponding to the entitled data set being viewed. This parameter is returned when a data set owner is viewing the entitled copy of its owned data set.<br/>OriginDetails:  If the origin of this data set is ENTITLED, includes the details for the product on AWS Marketplace.:<br/>Origin:  A property that defines the data set as OWNED by the account (for providers) or ENTITLED to the account (for subscribers).<br/>Name:  The name of the data set.<br/>Id:  The unique identifier for the data set.<br/>Description:  The description for the data set.<br/>CreatedAt:  The date and time that the data set was created, in ISO 8601 format.<br/>AssetType:  The type of file your data is stored in. Currently, the supported asset type is S3_SNAPSHOT.<br/>Arn:  The ARN for the data set.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProductId</i> <br/>        """
        pass

    def update_revision(self, RevisionId: str, DataSetId: str, Comment: str=None, Finalized: __boolean=None) -> UpdateRevisionResponse:
        r"""This operation updates a revision.

        :param self:
        :param RevisionId:  The unique identifier for a revision.<br/>Finalized:  Finalizing a revision tells AWS Data Exchange that your changes to the assets in the revision are complete. After it's in this read-only state, you can publish the revision to your products.<br/>DataSetId:  The unique identifier for a data set.<br/>Comment:  An optional comment about the revision.<br/>
        :return: UpdatedAt:  The date and time that the revision was last updated, in ISO 8601 format.<br/>SourceId:  The revision ID of the owned revision corresponding to the entitled revision being viewed. This parameter is returned when a revision owner is viewing the entitled copy of its owned revision.<br/>Id:  The unique identifier for the revision.<br/>Finalized:  To publish a revision to a data set in a product, the revision must first be finalized. Finalizing a revision tells AWS Data Exchange that changes to the assets in the revision are complete. After it's in this read-only state, you can publish the revision to your products. Finalized revisions can be published through the AWS Data Exchange console or the AWS Marketplace Catalog API, using the StartChangeSet AWS Marketplace Catalog API action. When using the API, revisions are uniquely identified by their ARN.<br/>DataSetId:  The unique identifier for the data set associated with this revision.<br/>CreatedAt:  The date and time that the revision was created, in ISO 8601 format.<br/>Comment:  An optional comment about the revision.<br/>Arn:  The ARN for the revision.<br/>        """
        pass





class DataPipeline(BaseClient):
    r"""AWS Data Pipeline configures and manages a data-driven workflow called a pipeline. AWS Data Pipeline handles the details of scheduling and ensuring that data dependencies are met so that your application can focus on processing the data. AWS Data Pipeline provides a JAR implementation of a task runner called AWS Data Pipeline Task Runner. AWS Data Pipeline Task Runner provides logic for common data management scenarios, such as performing database queries and running data analysis using Amazon Elastic MapReduce (Amazon EMR). You can use AWS Data Pipeline Task Runner as your task runner, or you can write your own task runner to provide custom data management. AWS Data Pipeline implements two main sets of functionality. Use the first set to create a pipeline and define data sources, schedules, dependencies, and the transforms to be performed on the data. Use the second set in your task runner application to receive the next task ready for processing. The logic for performing the task, such as querying the data, running data analysis, or converting the data from one format to another, is contained within the task runner. The task runner performs the task assigned to it by the web service, reporting progress to the web service as it does so. When the task is done, the task runner reports the final success or failure of the task to the web service."""


    class ListPipelinesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_pipelines` for valid parameters"""
            pass
    class DescribeObjectsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_objects` for valid parameters"""
            pass
    class QueryObjectsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `query_objects` for valid parameters"""
            pass


    class ActivatePipelineInput(Mapping):
        pass
    
    class ActivatePipelineOutput(Mapping):
        pass
    
    class ParameterValue(Mapping):
        pass
    
    class timestamp(object):
        pass
    
    class AddTagsInput(Mapping):
        pass
    
    class AddTagsOutput(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class CreatePipelineInput(Mapping):
        pass
    
    class CreatePipelineOutput(Mapping):
        pass
    
    class DeactivatePipelineInput(Mapping):
        pass
    
    class DeactivatePipelineOutput(Mapping):
        pass
    
    class cancelActive(object):
        pass
    
    class DeletePipelineInput(Mapping):
        pass
    
    class DescribeObjectsInput(Mapping):
        pass
    
    class DescribeObjectsOutput(Mapping):
        pass
    
    class id(object):
        pass
    
    class boolean(object):
        pass
    
    class DescribePipelinesInput(Mapping):
        pass
    
    class DescribePipelinesOutput(Mapping):
        pass
    
    class EvaluateExpressionInput(Mapping):
        pass
    
    class EvaluateExpressionOutput(Mapping):
        pass
    
    class GetPipelineDefinitionInput(Mapping):
        pass
    
    class GetPipelineDefinitionOutput(Mapping):
        pass
    
    class ListPipelinesInput(Mapping):
        pass
    
    class ListPipelinesOutput(Mapping):
        pass
    
    class PollForTaskInput(Mapping):
        pass
    
    class PollForTaskOutput(Mapping):
        pass
    
    class InstanceIdentity(Mapping):
        pass
    
    class PutPipelineDefinitionInput(Mapping):
        pass
    
    class PutPipelineDefinitionOutput(Mapping):
        pass
    
    class PipelineObject(Mapping):
        pass
    
    class ParameterObject(Mapping):
        pass
    
    class QueryObjectsInput(Mapping):
        pass
    
    class QueryObjectsOutput(Mapping):
        pass
    
    class Query(Mapping):
        pass
    
    class RemoveTagsInput(Mapping):
        pass
    
    class RemoveTagsOutput(Mapping):
        pass
    
    class string(object):
        pass
    
    class ReportTaskProgressInput(Mapping):
        pass
    
    class ReportTaskProgressOutput(Mapping):
        pass
    
    class Field(Mapping):
        pass
    
    class ReportTaskRunnerHeartbeatInput(Mapping):
        pass
    
    class ReportTaskRunnerHeartbeatOutput(Mapping):
        pass
    
    class SetStatusInput(Mapping):
        pass
    
    class SetTaskStatusInput(Mapping):
        pass
    
    class SetTaskStatusOutput(Mapping):
        pass
    
    class ValidatePipelineDefinitionInput(Mapping):
        pass
    
    class ValidatePipelineDefinitionOutput(Mapping):
        pass
    
    def activate_pipeline(self, pipelineId: str, parameterValues: List[ParameterValue]=None, startTimestamp: timestamp=None) -> ActivatePipelineOutput:
        r"""Validates the specified pipeline and starts processing pipeline tasks. If the pipeline does not pass validation, activation fails. If you need to pause the pipeline to investigate an issue with a component, such as a data source or script, call <a>DeactivatePipeline</a>. To activate a finished pipeline, modify the end date for the pipeline and then activate it.

        :param self:
        :param startTimestamp:  The date and time to resume the pipeline. By default, the pipeline resumes from the last completed execution.<br/>parameterValues:  A list of parameter values to pass to the pipeline at activation.<br/>pipelineId:  The ID of the pipeline.<br/>
        :return:         """
        pass

    def add_tags(self, tags: List[Tag], pipelineId: str) -> AddTagsOutput:
        r"""Adds or modifies tags for the specified pipeline.

        :param self:
        :param tags:  The tags to add, as key/value pairs.<br/>pipelineId:  The ID of the pipeline.<br/>
        :return:         """
        pass

    def create_pipeline(self, uniqueId: str, name: str, description: str=None, tags: List[Tag]=None) -> CreatePipelineOutput:
        r"""Creates a new, empty pipeline. Use <a>PutPipelineDefinition</a> to populate the pipeline.

        :param self:
        :param tags:  A list of tags to associate with the pipeline at creation. Tags let you control access to pipelines. For more information, see <a href="http://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-control-access.html">Controlling User Access to Pipelines</a> in the <i>AWS Data Pipeline Developer Guide</i>.<br/>description:  The description for the pipeline.<br/>uniqueId:  A unique identifier. This identifier is not the same as the pipeline identifier assigned by AWS Data Pipeline. You are responsible for defining the format and ensuring the uniqueness of this identifier. You use this parameter to ensure idempotency during repeated calls to <code>CreatePipeline</code>. For example, if the first call to <code>CreatePipeline</code> does not succeed, you can pass in the same unique identifier and pipeline name combination on a subsequent call to <code>CreatePipeline</code>. <code>CreatePipeline</code> ensures that if a pipeline already exists with the same name and unique identifier, a new pipeline is not created. Instead, you'll receive the pipeline identifier from the previous attempt. The uniqueness of the name and unique identifier combination is scoped to the AWS account or IAM user credentials.<br/>name:  The name for the pipeline. You can use the same name for multiple pipelines associated with your AWS account, because AWS Data Pipeline assigns each pipeline a unique pipeline identifier.<br/>
        :return: pipelineId:  The ID that AWS Data Pipeline assigns the newly created pipeline. For example, <code>df-06372391ZG65EXAMPLE</code>.<br/>        """
        pass

    def deactivate_pipeline(self, pipelineId: str, cancelActive: cancelActive=None) -> DeactivatePipelineOutput:
        r"""Deactivates the specified running pipeline. The pipeline is set to the <code>DEACTIVATING</code> state until the deactivation process completes. To resume a deactivated pipeline, use <a>ActivatePipeline</a>. By default, the pipeline resumes from the last completed execution. Optionally, you can specify the date and time to resume the pipeline.

        :param self:
        :param cancelActive:  Indicates whether to cancel any running objects. The default is true, which sets the state of any running objects to <code>CANCELED</code>. If this value is false, the pipeline is deactivated after all running objects finish.<br/>pipelineId:  The ID of the pipeline.<br/>
        :return:         """
        pass

    def delete_pipeline(self, pipelineId: str):
        r"""Deletes a pipeline, its pipeline definition, and its run history. AWS Data Pipeline attempts to cancel instances associated with the pipeline that are currently being processed by task runners. Deleting a pipeline cannot be undone. You cannot query or restore a deleted pipeline. To temporarily pause a pipeline instead of deleting it, call <a>SetStatus</a> with the status set to <code>PAUSE</code> on individual components. Components that are paused by <a>SetStatus</a> can be resumed.

        :param self:
        :param pipelineId:  The ID of the pipeline.<br/>
        :return:         """
        pass

    def describe_objects(self, objectIds: List[id], pipelineId: str, evaluateExpressions: boolean=None, marker: str=None) -> DescribeObjectsOutput:
        r"""Gets the object definitions for a set of objects associated with the pipeline. Object definitions are composed of a set of fields that define the properties of the object.

        :param self:
        :param marker:  The starting point for the results to be returned. For the first call, this value should be empty. As long as there are more results, continue to call <code>DescribeObjects</code> with the marker value from the previous call to retrieve the next set of results.<br/>evaluateExpressions:  Indicates whether any expressions in the object should be evaluated when the object descriptions are returned.<br/>objectIds:  The IDs of the pipeline objects that contain the definitions to be described. You can pass as many as 25 identifiers in a single call to <code>DescribeObjects</code>.<br/>pipelineId:  The ID of the pipeline that contains the object definitions.<br/>
        :return: hasMoreResults:  Indicates whether there are more results to return.<br/>marker:  The starting point for the next page of results. To view the next page of results, call <code>DescribeObjects</code> again with this marker value. If the value is null, there are no more results.<br/>pipelineObjects:  An array of object definitions.<br/>        """
        pass

    def describe_pipelines(self, pipelineIds: List[id]) -> DescribePipelinesOutput:
        r"""Retrieves metadata about one or more pipelines. The information retrieved includes the name of the pipeline, the pipeline identifier, its current state, and the user account that owns the pipeline. Using account credentials, you can retrieve metadata about pipelines that you or your IAM users have created. If you are using an IAM user account, you can retrieve metadata about only those pipelines for which you have read permissions. To retrieve the full pipeline definition instead of metadata about the pipeline, call <a>GetPipelineDefinition</a>.

        :param self:
        :param pipelineIds:  The IDs of the pipelines to describe. You can pass as many as 25 identifiers in a single call. To obtain pipeline IDs, call <a>ListPipelines</a>.<br/>
        :return: pipelineDescriptionList:  An array of descriptions for the specified pipelines.<br/>        """
        pass

    def evaluate_expression(self, expression: str, objectId: str, pipelineId: str) -> EvaluateExpressionOutput:
        r"""Task runners call <code>EvaluateExpression</code> to evaluate a string in the context of the specified object. For example, a task runner can evaluate SQL queries stored in Amazon S3.

        :param self:
        :param expression:  The expression to evaluate.<br/>objectId:  The ID of the object.<br/>pipelineId:  The ID of the pipeline.<br/>
        :return: evaluatedExpression:  The evaluated expression.<br/>        """
        pass

    def get_pipeline_definition(self, pipelineId: str, version: str=None) -> GetPipelineDefinitionOutput:
        r"""Gets the definition of the specified pipeline. You can call <code>GetPipelineDefinition</code> to retrieve the pipeline definition that you provided using <a>PutPipelineDefinition</a>.

        :param self:
        :param version:  The version of the pipeline definition to retrieve. Set this parameter to <code>latest</code> (default) to use the last definition saved to the pipeline or <code>active</code> to use the last definition that was activated.<br/>pipelineId:  The ID of the pipeline.<br/>
        :return: parameterValues:  The parameter values used in the pipeline definition.<br/>parameterObjects:  The parameter objects used in the pipeline definition.<br/>pipelineObjects:  The objects defined in the pipeline.<br/>        """
        pass

    def list_pipelines(self, marker: str=None) -> ListPipelinesOutput:
        r"""Lists the pipeline identifiers for all active pipelines that you have permission to access.

        :param self:
        :param marker:  The starting point for the results to be returned. For the first call, this value should be empty. As long as there are more results, continue to call <code>ListPipelines</code> with the marker value from the previous call to retrieve the next set of results.<br/>
        :return: hasMoreResults:  Indicates whether there are more results that can be obtained by a subsequent call.<br/>marker:  The starting point for the next page of results. To view the next page of results, call <code>ListPipelinesOutput</code> again with this marker value. If the value is null, there are no more results.<br/>pipelineIdList:  The pipeline identifiers. If you require additional information about the pipelines, you can use these identifiers to call <a>DescribePipelines</a> and <a>GetPipelineDefinition</a>.<br/>        """
        pass

    def poll_for_task(self, workerGroup: str, hostname: str=None, instanceIdentity: InstanceIdentity=None) -> PollForTaskOutput:
        r"""Task runners call <code>PollForTask</code> to receive a task to perform from AWS Data Pipeline. The task runner specifies which tasks it can perform by setting a value for the <code>workerGroup</code> parameter. The task returned can come from any of the pipelines that match the <code>workerGroup</code> value passed in by the task runner and that was launched using the IAM user credentials specified by the task runner. If tasks are ready in the work queue, <code>PollForTask</code> returns a response immediately. If no tasks are available in the queue, <code>PollForTask</code> uses long-polling and holds on to a poll connection for up to a 90 seconds, during which time the first newly scheduled task is handed to the task runner. To accomodate this, set the socket timeout in your task runner to 90 seconds. The task runner should not call <code>PollForTask</code> again on the same <code>workerGroup</code> until it receives a response, and this can take up to 90 seconds. 

        :param self:
        :param instanceIdentity:  Identity information for the EC2 instance that is hosting the task runner. You can get this value from the instance using <code>http://169.254.169.254/latest/meta-data/instance-id</code>. For more information, see <a href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AESDG-chapter-instancedata.html">Instance Metadata</a> in the <i>Amazon Elastic Compute Cloud User Guide.</i> Passing in this value proves that your task runner is running on an EC2 instance, and ensures the proper AWS Data Pipeline service charges are applied to your pipeline.:<br/>hostname:  The public DNS name of the calling task runner.<br/>workerGroup:  The type of task the task runner is configured to accept and process. The worker group is set as a field on objects in the pipeline when they are created. You can only specify a single value for <code>workerGroup</code> in the call to <code>PollForTask</code>. There are no wildcard values permitted in <code>workerGroup</code>; the string must be an exact, case-sensitive, match.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>signature</i> A signature which can be used to verify the accuracy and authenticity of the information provided in the instance identity document.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>document</i> A description of an EC2 instance that is generated when the instance is launched and exposed to the instance via the instance metadata service in the form of a JSON representation of an object.<br/>
        :return: taskObject:  The information needed to complete the task that is being assigned to the task runner. One of the fields returned in this object is <code>taskId</code>, which contains an identifier for the task being assigned. The calling task runner uses <code>taskId</code> in subsequent calls to <a>ReportTaskProgress</a> and <a>SetTaskStatus</a>.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>objects</i> Connection information for the location where the task runner will publish the output of the task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>attemptId</i> The ID of the pipeline task attempt object. AWS Data Pipeline uses this value to track how many times a task is attempted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>pipelineId</i> The ID of the pipeline that provided the task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>taskId</i> An internal identifier for the task. This ID is passed to the <a>SetTaskStatus</a> and <a>ReportTaskProgress</a> actions.<br/>        """
        pass

    def put_pipeline_definition(self, pipelineObjects: List[PipelineObject], pipelineId: str, parameterObjects: List[ParameterObject]=None, parameterValues: List[ParameterValue]=None) -> PutPipelineDefinitionOutput:
        r"""Adds tasks, schedules, and preconditions to the specified pipeline. You can use <code>PutPipelineDefinition</code> to populate a new pipeline.  <code>PutPipelineDefinition</code> also validates the configuration as it adds it to the pipeline. Changes to the pipeline are saved unless one of the following three validation errors exists in the pipeline.  <ol> <li>An object is missing a name or identifier field.</li> <li>A string or reference field is empty.</li> <li>The number of objects in the pipeline exceeds the maximum allowed objects.</li> <li>The pipeline is in a FINISHED state.</li> </ol>  Pipeline object definitions are passed to the <code>PutPipelineDefinition</code> action and returned by the <a>GetPipelineDefinition</a> action. 

        :param self:
        :param parameterValues:  The parameter values used with the pipeline.<br/>parameterObjects:  The parameter objects used with the pipeline.<br/>pipelineObjects:  The objects that define the pipeline. These objects overwrite the existing pipeline definition.<br/>pipelineId:  The ID of the pipeline.<br/>
        :return: errored:  Indicates whether there were validation errors, and the pipeline definition is stored but cannot be activated until you correct the pipeline and call <code>PutPipelineDefinition</code> to commit the corrected pipeline.<br/>validationWarnings:  The validation warnings that are associated with the objects defined in <code>pipelineObjects</code>.<br/>validationErrors:  The validation errors that are associated with the objects defined in <code>pipelineObjects</code>.<br/>        """
        pass

    def query_objects(self, sphere: str, pipelineId: str, query: Query=None, marker: str=None, limit: int=None) -> QueryObjectsOutput:
        r"""Queries the specified pipeline for the names of objects that match the specified set of conditions.

        :param self:
        :param limit:  The maximum number of object names that <code>QueryObjects</code> will return in a single call. The default value is 100. <br/>marker:  The starting point for the results to be returned. For the first call, this value should be empty. As long as there are more results, continue to call <code>QueryObjects</code> with the marker value from the previous call to retrieve the next set of results.<br/>sphere:  Indicates whether the query applies to components or instances. The possible values are: <code>COMPONENT</code>, <code>INSTANCE</code>, and <code>ATTEMPT</code>.<br/>query:  The query that defines the objects to be returned. The <code>Query</code> object can contain a maximum of ten selectors. The conditions in the query are limited to top-level String fields in the object. These filters can be applied to components, instances, and attempts.:<br/>pipelineId:  The ID of the pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>selectors</i> List of selectors that define the query. An object must satisfy all of the selectors to match the query.<br/>
        :return: hasMoreResults:  Indicates whether there are more results that can be obtained by a subsequent call.<br/>marker:  The starting point for the next page of results. To view the next page of results, call <code>QueryObjects</code> again with this marker value. If the value is null, there are no more results.<br/>ids:  The identifiers that match the query selectors.<br/>        """
        pass

    def remove_tags(self, tagKeys: List[string], pipelineId: str) -> RemoveTagsOutput:
        r"""Removes existing tags from the specified pipeline.

        :param self:
        :param tagKeys:  The keys of the tags to remove.<br/>pipelineId:  The ID of the pipeline.<br/>
        :return:         """
        pass

    def report_task_progress(self, taskId: str, fields: List[Field]=None) -> ReportTaskProgressOutput:
        r"""Task runners call <code>ReportTaskProgress</code> when assigned a task to acknowledge that it has the task. If the web service does not receive this acknowledgement within 2 minutes, it assigns the task in a subsequent <a>PollForTask</a> call. After this initial acknowledgement, the task runner only needs to report progress every 15 minutes to maintain its ownership of the task. You can change this reporting time from 15 minutes by specifying a <code>reportProgressTimeout</code> field in your pipeline. If a task runner does not report its status after 5 minutes, AWS Data Pipeline assumes that the task runner is unable to process the task and reassigns the task in a subsequent response to <a>PollForTask</a>. Task runners should call <code>ReportTaskProgress</code> every 60 seconds.

        :param self:
        :param fields:  Key-value pairs that define the properties of the ReportTaskProgressInput object.<br/>taskId:  The ID of the task assigned to the task runner. This value is provided in the response for <a>PollForTask</a>.<br/>
        :return: canceled:  If true, the calling task runner should cancel processing of the task. The task runner does not need to call <a>SetTaskStatus</a> for canceled tasks.<br/>        """
        pass

    def report_task_runner_heartbeat(self, taskrunnerId: str, workerGroup: str=None, hostname: str=None) -> ReportTaskRunnerHeartbeatOutput:
        r"""Task runners call <code>ReportTaskRunnerHeartbeat</code> every 15 minutes to indicate that they are operational. If the AWS Data Pipeline Task Runner is launched on a resource managed by AWS Data Pipeline, the web service can use this call to detect when the task runner application has failed and restart a new instance.

        :param self:
        :param hostname:  The public DNS name of the task runner.<br/>workerGroup:  The type of task the task runner is configured to accept and process. The worker group is set as a field on objects in the pipeline when they are created. You can only specify a single value for <code>workerGroup</code>. There are no wildcard values permitted in <code>workerGroup</code>; the string must be an exact, case-sensitive, match.<br/>taskrunnerId:  The ID of the task runner. This value should be unique across your AWS account. In the case of AWS Data Pipeline Task Runner launched on a resource managed by AWS Data Pipeline, the web service provides a unique identifier when it launches the application. If you have written a custom task runner, you should assign a unique identifier for the task runner.<br/>
        :return: terminate:  Indicates whether the calling task runner should terminate.<br/>        """
        pass

    def set_status(self, status: str, objectIds: List[id], pipelineId: str):
        r"""Requests that the status of the specified physical or logical pipeline objects be updated in the specified pipeline. This update might not occur immediately, but is eventually consistent. The status that can be set depends on the type of object (for example, DataNode or Activity). You cannot perform this operation on <code>FINISHED</code> pipelines and attempting to do so returns <code>InvalidRequestException</code>.

        :param self:
        :param status:  The status to be set on all the objects specified in <code>objectIds</code>. For components, use <code>PAUSE</code> or <code>RESUME</code>. For instances, use <code>TRY_CANCEL</code>, <code>RERUN</code>, or <code>MARK_FINISHED</code>.<br/>objectIds:  The IDs of the objects. The corresponding objects can be either physical or components, but not a mix of both types.<br/>pipelineId:  The ID of the pipeline that contains the objects.<br/>
        :return:         """
        pass

    def set_task_status(self, taskStatus: str, taskId: str, errorId: str=None, errorMessage: str=None, errorStackTrace: str=None) -> SetTaskStatusOutput:
        r"""Task runners call <code>SetTaskStatus</code> to notify AWS Data Pipeline that a task is completed and provide information about the final status. A task runner makes this call regardless of whether the task was sucessful. A task runner does not need to call <code>SetTaskStatus</code> for tasks that are canceled by the web service during a call to <a>ReportTaskProgress</a>.

        :param self:
        :param errorStackTrace:  If an error occurred during the task, this value specifies the stack trace associated with the error. This value is set on the physical attempt object. It is used to display error information to the user. The web service does not parse this value.<br/>errorMessage:  If an error occurred during the task, this value specifies a text description of the error. This value is set on the physical attempt object. It is used to display error information to the user. The web service does not parse this value.<br/>errorId:  If an error occurred during the task, this value specifies the error code. This value is set on the physical attempt object. It is used to display error information to the user. It should not start with string "Service_" which is reserved by the system.<br/>taskStatus:  If <code>FINISHED</code>, the task successfully completed. If <code>FAILED</code>, the task ended unsuccessfully. Preconditions use false.<br/>taskId:  The ID of the task assigned to the task runner. This value is provided in the response for <a>PollForTask</a>.<br/>
        :return:         """
        pass

    def validate_pipeline_definition(self, pipelineObjects: List[PipelineObject], pipelineId: str, parameterObjects: List[ParameterObject]=None, parameterValues: List[ParameterValue]=None) -> ValidatePipelineDefinitionOutput:
        r"""Validates the specified pipeline definition to ensure that it is well formed and can be run without error.

        :param self:
        :param parameterValues:  The parameter values used with the pipeline.<br/>parameterObjects:  The parameter objects used with the pipeline.<br/>pipelineObjects:  The objects that define the pipeline changes to validate against the pipeline.<br/>pipelineId:  The ID of the pipeline.<br/>
        :return: errored:  Indicates whether there were validation errors.<br/>validationWarnings:  Any validation warnings that were found.<br/>validationErrors:  Any validation errors that were found.<br/>        """
        pass





class DataSync(BaseClient):
    r"""<fullname>AWS DataSync</fullname> AWS DataSync is a managed data transfer service that makes it simpler for you to automate moving data between on-premises storage and Amazon Simple Storage Service (Amazon S3) or Amazon Elastic File System (Amazon EFS).  This API interface reference for AWS DataSync contains documentation for a programming interface that you can use to manage AWS DataSync."""


    class ListAgentsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_agents` for valid parameters"""
            pass
    class ListLocationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_locations` for valid parameters"""
            pass
    class ListTagsForResourcePaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_tags_for_resource` for valid parameters"""
            pass
    class ListTaskExecutionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_task_executions` for valid parameters"""
            pass
    class ListTasksPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_tasks` for valid parameters"""
            pass


    class CancelTaskExecutionRequest(Mapping):
        pass
    
    class CancelTaskExecutionResponse(Mapping):
        pass
    
    class CreateAgentRequest(Mapping):
        pass
    
    class CreateAgentResponse(Mapping):
        pass
    
    class TagListEntry(Mapping):
        pass
    
    class Ec2SubnetArn(object):
        pass
    
    class Ec2SecurityGroupArn(object):
        pass
    
    class CreateLocationEfsRequest(Mapping):
        pass
    
    class CreateLocationEfsResponse(Mapping):
        pass
    
    class Ec2Config(Mapping):
        pass
    
    class CreateLocationFsxWindowsRequest(Mapping):
        pass
    
    class CreateLocationFsxWindowsResponse(Mapping):
        pass
    
    class CreateLocationNfsRequest(Mapping):
        pass
    
    class CreateLocationNfsResponse(Mapping):
        pass
    
    class OnPremConfig(Mapping):
        pass
    
    class NfsMountOptions(Mapping):
        pass
    
    class CreateLocationObjectStorageRequest(Mapping):
        pass
    
    class CreateLocationObjectStorageResponse(Mapping):
        pass
    
    class AgentArn(object):
        pass
    
    class CreateLocationS3Request(Mapping):
        pass
    
    class CreateLocationS3Response(Mapping):
        pass
    
    class S3Config(Mapping):
        pass
    
    class CreateLocationSmbRequest(Mapping):
        pass
    
    class CreateLocationSmbResponse(Mapping):
        pass
    
    class SmbMountOptions(Mapping):
        pass
    
    class CreateTaskRequest(Mapping):
        pass
    
    class CreateTaskResponse(Mapping):
        pass
    
    class Options(Mapping):
        pass
    
    class FilterRule(Mapping):
        pass
    
    class TaskSchedule(Mapping):
        pass
    
    class DeleteAgentRequest(Mapping):
        pass
    
    class DeleteAgentResponse(Mapping):
        pass
    
    class DeleteLocationRequest(Mapping):
        pass
    
    class DeleteLocationResponse(Mapping):
        pass
    
    class DeleteTaskRequest(Mapping):
        pass
    
    class DeleteTaskResponse(Mapping):
        pass
    
    class DescribeAgentRequest(Mapping):
        pass
    
    class DescribeAgentResponse(Mapping):
        pass
    
    class DescribeLocationEfsRequest(Mapping):
        pass
    
    class DescribeLocationEfsResponse(Mapping):
        pass
    
    class DescribeLocationFsxWindowsRequest(Mapping):
        pass
    
    class DescribeLocationFsxWindowsResponse(Mapping):
        pass
    
    class DescribeLocationNfsRequest(Mapping):
        pass
    
    class DescribeLocationNfsResponse(Mapping):
        pass
    
    class DescribeLocationObjectStorageRequest(Mapping):
        pass
    
    class DescribeLocationObjectStorageResponse(Mapping):
        pass
    
    class DescribeLocationS3Request(Mapping):
        pass
    
    class DescribeLocationS3Response(Mapping):
        pass
    
    class DescribeLocationSmbRequest(Mapping):
        pass
    
    class DescribeLocationSmbResponse(Mapping):
        pass
    
    class DescribeTaskRequest(Mapping):
        pass
    
    class DescribeTaskResponse(Mapping):
        pass
    
    class DescribeTaskExecutionRequest(Mapping):
        pass
    
    class DescribeTaskExecutionResponse(Mapping):
        pass
    
    class ListAgentsRequest(Mapping):
        pass
    
    class ListAgentsResponse(Mapping):
        pass
    
    class ListLocationsRequest(Mapping):
        pass
    
    class ListLocationsResponse(Mapping):
        pass
    
    class LocationFilter(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class ListTaskExecutionsRequest(Mapping):
        pass
    
    class ListTaskExecutionsResponse(Mapping):
        pass
    
    class ListTasksRequest(Mapping):
        pass
    
    class ListTasksResponse(Mapping):
        pass
    
    class TaskFilter(Mapping):
        pass
    
    class StartTaskExecutionRequest(Mapping):
        pass
    
    class StartTaskExecutionResponse(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateAgentRequest(Mapping):
        pass
    
    class UpdateAgentResponse(Mapping):
        pass
    
    class UpdateLocationNfsRequest(Mapping):
        pass
    
    class UpdateLocationNfsResponse(Mapping):
        pass
    
    class UpdateLocationObjectStorageRequest(Mapping):
        pass
    
    class UpdateLocationObjectStorageResponse(Mapping):
        pass
    
    class UpdateLocationSmbRequest(Mapping):
        pass
    
    class UpdateLocationSmbResponse(Mapping):
        pass
    
    class UpdateTaskRequest(Mapping):
        pass
    
    class UpdateTaskResponse(Mapping):
        pass
    
    class UpdateTaskExecutionRequest(Mapping):
        pass
    
    class UpdateTaskExecutionResponse(Mapping):
        pass
    
    def cancel_task_execution(self, TaskExecutionArn: str) -> CancelTaskExecutionResponse:
        r"""Cancels execution of a task.  When you cancel a task execution, the transfer of some files is abruptly interrupted. The contents of files that are transferred to the destination might be incomplete or inconsistent with the source files. However, if you start a new task execution on the same task and you allow the task execution to complete, file content on the destination is complete and consistent. This applies to other unexpected failures that interrupt a task execution. In all of these cases, AWS DataSync successfully complete the transfer when you start the next task execution.

        :param self:
        :param TaskExecutionArn:  The Amazon Resource Name (ARN) of the task execution to cancel.<br/>
        :return:         """
        pass

    def create_agent(self, ActivationKey: str, AgentName: str=None, Tags: List[TagListEntry]=None, VpcEndpointId: str=None, SubnetArns: List[Ec2SubnetArn]=None, SecurityGroupArns: List[Ec2SecurityGroupArn]=None) -> CreateAgentResponse:
        r"""Activates an AWS DataSync agent that you have deployed on your host. The activation process associates your agent with your account. In the activation process, you specify information such as the AWS Region that you want to activate the agent in. You activate the agent in the AWS Region where your target locations (in Amazon S3 or Amazon EFS) reside. Your tasks are created in this AWS Region. You can activate the agent in a VPC (virtual private cloud) or provide the agent access to a VPC endpoint so you can run tasks without going over the public internet. You can use an agent for more than one location. If a task uses multiple agents, all of them need to have status AVAILABLE for the task to run. If you use multiple agents for a source location, the status of all the agents must be AVAILABLE for the task to run.  Agents are automatically updated by AWS on a regular basis, using a mechanism that ensures minimal interruption to your tasks. <p/>

        :param self:
        :param SecurityGroupArns:  The ARNs of the security groups used to protect your data transfer task subnets. See <a href="https://docs.aws.amazon.com/datasync/latest/userguide/API_Ec2Config.html#DataSync-Type-Ec2Config-SecurityGroupArns">SecurityGroupArns</a>.<br/>SubnetArns:  The Amazon Resource Names (ARNs) of the subnets in which DataSync will create elastic network interfaces for each data transfer task. The agent that runs a task must be private. When you start a task that is associated with an agent created in a VPC, or one that has access to an IP address in a VPC, then the task is also private. In this case, DataSync creates four network interfaces for each task in your subnet. For a data transfer to work, the agent must be able to route to all these four network interfaces.<br/>VpcEndpointId:  The ID of the VPC (virtual private cloud) endpoint that the agent has access to. This is the client-side VPC endpoint, also called a PrivateLink. If you don't have a PrivateLink VPC endpoint, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/endpoint-service.html#create-endpoint-service">Creating a VPC Endpoint Service Configuration</a> in the Amazon VPC User Guide. VPC endpoint ID looks like this: <code>vpce-01234d5aff67890e1</code>.<br/>Tags:  The key-value pair that represents the tag that you want to associate with the agent. The value can be an empty string. This value helps you manage, filter, and search for your agents. <note> Valid characters for key and value are letters, spaces, and numbers representable in UTF-8 format, and the following special characters: + - = . _ : / @.  </note><br/>AgentName:  The name you configured for your agent. This value is a text reference that is used to identify the agent in the console.<br/>ActivationKey:  Your agent activation key. You can get the activation key either by sending an HTTP GET request with redirects that enable you to get the agent IP address (port 80). Alternatively, you can get it from the AWS DataSync console. The redirect URL returned in the response provides you the activation key for your agent in the query string parameter <code>activationKey</code>. It might also include other activation-related parameters; however, these are merely defaults. The arguments you pass to this API call determine the actual configuration of your agent. For more information, see Activating an Agent in the <i>AWS DataSync User Guide.</i> <br/>
        :return: AgentArn:  The Amazon Resource Name (ARN) of the agent. Use the <code>ListAgents</code> operation to return a list of agents for your account and AWS Region.<br/>        """
        pass

    def create_location_efs(self, Ec2Config: Ec2Config, EfsFilesystemArn: str, Subdirectory: str=None, Tags: List[TagListEntry]=None) -> CreateLocationEfsResponse:
        r"""Creates an endpoint for an Amazon EFS file system.

        :param self:
        :param Tags:  The key-value pair that represents a tag that you want to add to the resource. The value can be an empty string. This value helps you manage, filter, and search for your resources. We recommend that you create a name tag for your location.<br/>Ec2Config:  The subnet and security group that the Amazon EFS file system uses. The security group that you provide needs to be able to communicate with the security group on the mount target in the subnet specified. The exact relationship between security group M (of the mount target) and security group S (which you provide for DataSync to use at this stage) is as follows:  <ul> <li>  Security group M (which you associate with the mount target) must allow inbound access for the Transmission Control Protocol (TCP) on the NFS port (2049) from security group S. You can enable inbound connections either by IP address (CIDR range) or security group.  </li> <li> Security group S (provided to DataSync to access EFS) should have a rule that enables outbound connections to the NFS port on one of the file system’s mount targets. You can enable outbound connections either by IP address (CIDR range) or security group. For information about security groups and mount targets, see Security Groups for Amazon EC2 Instances and Mount Targets in the <i>Amazon EFS User Guide.</i>  </li> </ul>:<br/>EfsFilesystemArn:  The Amazon Resource Name (ARN) for the Amazon EFS file system.<br/>Subdirectory:  A subdirectory in the location’s path. This subdirectory in the EFS file system is used to read data from the EFS source location or write data to the EFS destination. By default, AWS DataSync uses the root directory. <note>  <code>Subdirectory</code> must be specified with forward slashes. For example, <code>/path/to/folder</code>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupArns</i> The Amazon Resource Names (ARNs) of the security groups that are configured for the Amazon EC2 resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetArn</i> The ARN of the subnet and the security group that DataSync uses to access the target EFS file system.<br/>
        :return: LocationArn:  The Amazon Resource Name (ARN) of the Amazon EFS file system location that is created.<br/>        """
        pass

    def create_location_fsx_windows(self, Password: str, User: str, SecurityGroupArns: List[Ec2SecurityGroupArn], FsxFilesystemArn: str, Subdirectory: str=None, Tags: List[TagListEntry]=None, Domain: str=None) -> CreateLocationFsxWindowsResponse:
        r"""Creates an endpoint for an Amazon FSx for Windows File Server file system.

        :param self:
        :param Password:  The password of the user who has the permissions to access files and folders in the FSx for Windows File Server file system.<br/>Domain:  The name of the Windows domain that the FSx for Windows File Server belongs to.<br/>User:  The user who has the permissions to access files and folders in the FSx for Windows File Server file system. For information about choosing a user name that ensures sufficient permissions to files, folders, and metadata, see <a href="create-fsx-location.html#FSxWuser">user</a>.<br/>Tags:  The key-value pair that represents a tag that you want to add to the resource. The value can be an empty string. This value helps you manage, filter, and search for your resources. We recommend that you create a name tag for your location.<br/>SecurityGroupArns:  The Amazon Resource Names (ARNs) of the security groups that are to use to configure the FSx for Windows File Server file system.<br/>FsxFilesystemArn:  The Amazon Resource Name (ARN) for the FSx for Windows File Server file system.<br/>Subdirectory:  A subdirectory in the location’s path. This subdirectory in the Amazon FSx for Windows File Server file system is used to read data from the Amazon FSx for Windows File Server source location or write data to the FSx for Windows File Server destination.<br/>
        :return: LocationArn:  The Amazon Resource Name (ARN) of the FSx for Windows File Server file system location that is created.<br/>        """
        pass

    def create_location_nfs(self, OnPremConfig: OnPremConfig, ServerHostname: str, Subdirectory: str, MountOptions: NfsMountOptions=None, Tags: List[TagListEntry]=None) -> CreateLocationNfsResponse:
        r"""Defines a file system on a Network File System (NFS) server that can be read from or written to.

        :param self:
        :param Tags:  The key-value pair that represents the tag that you want to add to the location. The value can be an empty string. We recommend using tags to name your resources.<br/>MountOptions:  The NFS mount options that DataSync can use to mount your NFS share.:<br/>OnPremConfig:  Contains a list of Amazon Resource Names (ARNs) of agents that are used to connect to an NFS server.  If you are copying data to or from your AWS Snowcone device, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/create-nfs-location.html#nfs-on-snowcone">NFS Server on AWS Snowcone</a> for more information.:<br/>ServerHostname:  The name of the NFS server. This value is the IP address or Domain Name Service (DNS) name of the NFS server. An agent that is installed on-premises uses this host name to mount the NFS server in a network.  If you are copying data to or from your AWS Snowcone device, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/create-nfs-location.html#nfs-on-snowcone">NFS Server on AWS Snowcone</a> for more information. <note> This name must either be DNS-compliant or must be an IP version 4 (IPv4) address. </note><br/>Subdirectory:  The subdirectory in the NFS file system that is used to read data from the NFS source location or write data to the NFS destination. The NFS path should be a path that's exported by the NFS server, or a subdirectory of that path. The path should be such that it can be mounted by other NFS clients in your network.  To see all the paths exported by your NFS server, run "<code>showmount -e nfs-server-name</code>" from an NFS client that has access to your server. You can specify any directory that appears in the results, and any subdirectory of that directory. Ensure that the NFS export is accessible without Kerberos authentication.  To transfer all the data in the folder you specified, DataSync needs to have permissions to read all the data. To ensure this, either configure the NFS export with <code>no_root_squash,</code> or ensure that the permissions for all of the files that you want DataSync allow read access for all users. Doing either enables the agent to read the files. For the agent to access directories, you must additionally enable all execute access. If you are copying data to or from your AWS Snowcone device, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/create-nfs-location.html#nfs-on-snowcone">NFS Server on AWS Snowcone</a> for more information. For information about NFS export configuration, see 18.7. The /etc/exports Configuration File in the Red Hat Enterprise Linux documentation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AgentArns</i> ARNs of the agents to use for an NFS location.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The specific NFS version that you want DataSync to use to mount your NFS share. If the server refuses to use the version specified, the sync will fail. If you don't specify a version, DataSync defaults to <code>AUTOMATIC</code>. That is, DataSync automatically selects a version based on negotiation with the NFS server. You can specify the following NFS versions: <ul> <li>  <b> <a href="https://tools.ietf.org/html/rfc1813">NFSv3</a> </b> - stateless protocol version that allows for asynchronous writes on the server. </li> <li>  <b> <a href="https://tools.ietf.org/html/rfc3530">NFSv4.0</a> </b> - stateful, firewall-friendly protocol version that supports delegations and pseudo filesystems. </li> <li>  <b> <a href="https://tools.ietf.org/html/rfc5661">NFSv4.1</a> </b> - stateful protocol version that supports sessions, directory delegations, and parallel data processing. Version 4.1 also includes all features available in version 4.0. </li> </ul><br/>
        :return: LocationArn:  The Amazon Resource Name (ARN) of the source NFS file system location that is created.<br/>        """
        pass

    def create_location_object_storage(self, AgentArns: List[AgentArn], BucketName: str, ServerHostname: str, ServerPort: int=None, ServerProtocol: str=None, Subdirectory: str=None, AccessKey: str=None, SecretKey: str=None, Tags: List[TagListEntry]=None) -> CreateLocationObjectStorageResponse:
        r"""Creates an endpoint for a self-managed object storage bucket. For more information about self-managed object storage locations, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/create-object-location.html">Creating a location for object storage</a>.

        :param self:
        :param Tags:  The key-value pair that represents the tag that you want to add to the location. The value can be an empty string. We recommend using tags to name your resources.<br/>AgentArns:  The Amazon Resource Name (ARN) of the agents associated with the self-managed object storage server location.<br/>SecretKey:  Optional. The secret key is used if credentials are required to access the self-managed object storage server. If your object storage requires a user name and password to authenticate, use <code>AccessKey</code> and <code>SecretKey</code> to provide the user name and password, respectively.<br/>AccessKey:  Optional. The access key is used if credentials are required to access the self-managed object storage server. If your object storage requires a user name and password to authenticate, use <code>AccessKey</code> and <code>SecretKey</code> to provide the user name and password, respectively.<br/>BucketName:  The bucket on the self-managed object storage server that is used to read data from.<br/>Subdirectory:  The subdirectory in the self-managed object storage server that is used to read data from.<br/>ServerProtocol:  The protocol that the object storage server uses to communicate. Valid values are HTTP or HTTPS.<br/>ServerPort:  The port that your self-managed object storage server accepts inbound network traffic on. The server port is set by default to TCP 80 (HTTP) or TCP 443 (HTTPS). You can specify a custom port if your self-managed object storage server requires one.<br/>ServerHostname:  The name of the self-managed object storage server. This value is the IP address or Domain Name Service (DNS) name of the object storage server. An agent uses this host name to mount the object storage server in a network. <br/>
        :return: LocationArn:  The Amazon Resource Name (ARN) of the agents associated with the self-managed object storage server location.<br/>        """
        pass

    def create_location_s3(self, S3Config: S3Config, S3BucketArn: str, Subdirectory: str=None, S3StorageClass: str=None, AgentArns: List[AgentArn]=None, Tags: List[TagListEntry]=None) -> CreateLocationS3Response:
        r"""Creates an endpoint for an Amazon S3 bucket. For more information, see https://docs.aws.amazon.com/datasync/latest/userguide/create-locations-cli.html#create-location-s3-cli in the <i>AWS DataSync User Guide</i>.

        :param self:
        :param Tags:  The key-value pair that represents the tag that you want to add to the location. The value can be an empty string. We recommend using tags to name your resources.<br/>AgentArns:  If you are using DataSync on an AWS Outpost, specify the Amazon Resource Names (ARNs) of the DataSync agents deployed on your Outpost. For more information about launching a DataSync agent on an AWS Outpost, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/deploy-agents.html#outposts-agent">Deploy your DataSync agent on AWS Outposts</a>.<br/>S3Config:  The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that is used to access an Amazon S3 bucket. For detailed information about using such a role, see Creating a Location for Amazon S3 in the <i>AWS DataSync User Guide</i>.:<br/>S3StorageClass:  The Amazon S3 storage class that you want to store your files in when this location is used as a task destination. For buckets in AWS Regions, the storage class defaults to Standard. For buckets on AWS Outposts, the storage class defaults to AWS S3 Outposts. For more information about S3 storage classes, see <a href="http://aws.amazon.com/s3/storage-classes/">Amazon S3 Storage Classes</a>. Some storage classes have behaviors that can affect your S3 storage cost. For detailed information, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/create-s3-location.html#using-storage-classes">Considerations when working with S3 storage classes in DataSync</a>.<br/>S3BucketArn:  The ARN of the Amazon S3 bucket. If the bucket is on an AWS Outpost, this must be an access point ARN.<br/>Subdirectory:  A subdirectory in the Amazon S3 bucket. This subdirectory in Amazon S3 is used to read data from the S3 source location or write data to the S3 destination.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BucketAccessRoleArn</i> The Amazon S3 bucket to access. This bucket is used as a parameter in the <a href="https://docs.aws.amazon.com/datasync/latest/userguide/API_CreateLocationS3.html">CreateLocationS3</a> operation. <br/>
        :return: LocationArn:  The Amazon Resource Name (ARN) of the source Amazon S3 bucket location that is created.<br/>        """
        pass

    def create_location_smb(self, AgentArns: List[AgentArn], Password: str, User: str, ServerHostname: str, Subdirectory: str, Domain: str=None, MountOptions: SmbMountOptions=None, Tags: List[TagListEntry]=None) -> CreateLocationSmbResponse:
        r"""Defines a file system on a Server Message Block (SMB) server that can be read from or written to.

        :param self:
        :param Tags:  The key-value pair that represents the tag that you want to add to the location. The value can be an empty string. We recommend using tags to name your resources.<br/>MountOptions:  The mount options used by DataSync to access the SMB server.:<br/>AgentArns:  The Amazon Resource Names (ARNs) of agents to use for a Simple Message Block (SMB) location. <br/>Password:  The password of the user who can mount the share, has the permissions to access files and folders in the SMB share.<br/>Domain:  The name of the Windows domain that the SMB server belongs to.<br/>User:  The user who can mount the share, has the permissions to access files and folders in the SMB share. For information about choosing a user name that ensures sufficient permissions to files, folders, and metadata, see <a href="create-smb-location.html#SMBuser">user</a>.<br/>ServerHostname:  The name of the SMB server. This value is the IP address or Domain Name Service (DNS) name of the SMB server. An agent that is installed on-premises uses this hostname to mount the SMB server in a network. <note> This name must either be DNS-compliant or must be an IP version 4 (IPv4) address. </note><br/>Subdirectory:  The subdirectory in the SMB file system that is used to read data from the SMB source location or write data to the SMB destination. The SMB path should be a path that's exported by the SMB server, or a subdirectory of that path. The path should be such that it can be mounted by other SMB clients in your network. <note>  <code>Subdirectory</code> must be specified with forward slashes. For example, <code>/path/to/folder</code>. </note> To transfer all the data in the folder you specified, DataSync needs to have permissions to mount the SMB share, as well as to access all the data in that share. To ensure this, either ensure that the user/password specified belongs to the user who can mount the share, and who has the appropriate permissions for all of the files and directories that you want DataSync to access, or use credentials of a member of the Backup Operators group to mount the share. Doing either enables the agent to access the data. For the agent to access directories, you must additionally enable all execute access.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The specific SMB version that you want DataSync to use to mount your SMB share. If you don't specify a version, DataSync defaults to <code>AUTOMATIC</code>. That is, DataSync automatically selects a version based on negotiation with the SMB server.<br/>
        :return: LocationArn:  The Amazon Resource Name (ARN) of the source SMB file system location that is created.<br/>        """
        pass

    def create_task(self, DestinationLocationArn: str, SourceLocationArn: str, CloudWatchLogGroupArn: str=None, Name: str=None, Options: Options=None, Excludes: List[FilterRule]=None, Schedule: TaskSchedule=None, Tags: List[TagListEntry]=None) -> CreateTaskResponse:
        r"""Creates a task. A task includes a source location and a destination location, and a configuration that specifies how data is transferred. A task always transfers data from the source location to the destination location. The configuration specifies options such as task scheduling, bandwidth limits, etc. A task is the complete definition of a data transfer. When you create a task that transfers data between AWS services in different AWS Regions, one of the two locations that you specify must reside in the Region where DataSync is being used. The other location must be specified in a different Region. You can transfer data between commercial AWS Regions except for China, or between AWS GovCloud (US-East and US-West) Regions. <important> When you use DataSync to copy files or objects between AWS Regions, you pay for data transfer between Regions. This is billed as data transfer OUT from your source Region to your destination Region. For more information, see <a href="http://aws.amazon.com/ec2/pricing/on-demand/#Data_Transfer">Data Transfer pricing</a>.  </important>

        :param self:
        :param Tags:  The key-value pair that represents the tag that you want to add to the resource. The value can be an empty string. <br/>Schedule:  Specifies a schedule used to periodically transfer files from a source to a destination location. The schedule should be specified in UTC time. For more information, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/task-scheduling.html">Scheduling your task</a>.:<br/>Excludes:  A list of filter rules that determines which files to exclude from a task. The list should contain a single filter string that consists of the patterns to exclude. The patterns are delimited by "|" (that is, a pipe), for example, <code>"/folder1|/folder2"</code>.   <br/>Options:  The set of configuration options that control the behavior of a single execution of the task that occurs when you call <code>StartTaskExecution</code>. You can configure these options to preserve metadata such as user ID (UID) and group ID (GID), file permissions, data integrity verification, and so on. For each individual task execution, you can override these options by specifying the <code>OverrideOptions</code> before starting the task execution. For more information, see the <a href="https://docs.aws.amazon.com/datasync/latest/userguide/API_StartTaskExecution.html">StartTaskExecution</a> operation. :<br/>Name:  The name of a task. This value is a text reference that is used to identify the task in the console. <br/>CloudWatchLogGroupArn:  The Amazon Resource Name (ARN) of the Amazon CloudWatch log group that is used to monitor and log events in the task. <br/>DestinationLocationArn:  The Amazon Resource Name (ARN) of an AWS storage resource's location. <br/>SourceLocationArn:  The Amazon Resource Name (ARN) of the source location for the task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityDescriptorCopyFlags</i> A value that determines which components of the SMB security descriptor are copied from source to destination objects.  This value is only used for transfers between SMB and Amazon FSx for Windows File Server locations, or between two Amazon FSx for Windows File Server locations. For more information about how DataSync handles metadata, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/special-files.html">How DataSync Handles Metadata and Special Files</a>.  Default value: OWNER_DACL.  <b>OWNER_DACL</b>: For each copied object, DataSync copies the following metadata: <ul> <li> Object owner. </li> <li> NTFS discretionary access control lists (DACLs), which determine whether to grant access to an object. </li> </ul> When choosing this option, DataSync does NOT copy the NTFS system access control lists (SACLs), which are used by administrators to log attempts to access a secured object.  <b>OWNER_DACL_SACL</b>: For each copied object, DataSync copies the following metadata: <ul> <li> Object owner. </li> <li> NTFS discretionary access control lists (DACLs), which determine whether to grant access to an object. </li> <li> NTFS system access control lists (SACLs), which are used by administrators to log attempts to access a secured object. </li> </ul> Copying SACLs requires granting additional permissions to the Windows user that DataSync uses to access your SMB location. For information about choosing a user that ensures sufficient permissions to files, folders, and metadata, see <a href="create-smb-location.html#SMBuser">user</a>.  <b>NONE</b>: None of the SMB security descriptor components are copied. Destination objects are owned by the user that was provided for accessing the destination location. DACLs and SACLs are set based on the destination server’s configuration. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransferMode</i> A value that determines whether DataSync transfers only the data and metadata that differ between the source and the destination location, or whether DataSync transfers all the content from the source, without comparing to the destination location.  CHANGED: DataSync copies only data or metadata that is new or different content from the source location to the destination location. ALL: DataSync copies all source location content to the destination, without comparing to existing content on the destination.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogLevel</i> A value that determines the type of logs that DataSync publishes to a log stream in the Amazon CloudWatch log group that you provide. For more information about providing a log group for DataSync, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/API_CreateTask.html#DataSync-CreateTask-request-CloudWatchLogGroupArn">CloudWatchLogGroupArn</a>. If set to <code>OFF</code>, no logs are published. <code>BASIC</code> publishes logs on errors for individual files transferred, and <code>TRANSFER</code> publishes logs for every file or object that is transferred and integrity checked.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TaskQueueing</i> A value that determines whether tasks should be queued before executing the tasks. If set to <code>ENABLED</code>, the tasks will be queued. The default is <code>ENABLED</code>. If you use the same agent to run multiple tasks, you can enable the tasks to run in series. For more information, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/run-task.html#queue-task-execution">Queueing task executions</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BytesPerSecond</i> A value that limits the bandwidth used by AWS DataSync. For example, if you want AWS DataSync to use a maximum of 1 MB, set this value to <code>1048576</code> (<code>=1024*1024</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PosixPermissions</i> A value that determines which users or groups can access a file for a specific purpose such as reading, writing, or execution of the file. This option should only be set for NFS, EFS, and S3 locations. For more information about what metadata is copied by DataSync, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/special-files.html#metadata-copied">Metadata Copied by DataSync</a>.  Default value: PRESERVE. PRESERVE: Preserve POSIX-style permissions (recommended). NONE: Ignore permissions.  <note> AWS DataSync can preserve extant permissions of a source location. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreserveDevices</i> A value that determines whether AWS DataSync should preserve the metadata of block and character devices in the source file system, and re-create the files with that device name and metadata on the destination. DataSync does not copy the contents of such devices, only the name and metadata.  <note> AWS DataSync can't sync the actual contents of such devices, because they are nonterminal and don't return an end-of-file (EOF) marker. </note> Default value: NONE. NONE: Ignore special devices (recommended).  PRESERVE: Preserve character and block device metadata. This option isn't currently supported for Amazon EFS. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreserveDeletedFiles</i> A value that specifies whether files in the destination that don't exist in the source file system should be preserved. This option can affect your storage cost. If your task deletes objects, you might incur minimum storage duration charges for certain storage classes. For detailed information, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/create-s3-location.html#using-storage-classes">Considerations when working with Amazon S3 storage classes in DataSync </a> in the <i>AWS DataSync User Guide</i>. Default value: PRESERVE. PRESERVE: Ignore such destination files (recommended).  REMOVE: Delete destination files that aren’t present in the source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Gid</i> The POSIX group ID (GID) of the file's owners. This option should only be set for NFS, EFS, and S3 locations. For more information about what metadata is copied by DataSync, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/special-files.html#metadata-copied">Metadata Copied by DataSync</a>.  Default value: INT_VALUE. This preserves the integer value of the ID. INT_VALUE: Preserve the integer value of user ID (UID) and GID (recommended). NONE: Ignore UID and GID. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Uid</i> The POSIX user ID (UID) of the file's owner. This option should only be set for NFS, EFS, and S3 locations. To learn more about what metadata is copied by DataSync, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/special-files.html#metadata-copied">Metadata Copied by DataSync</a>. Default value: INT_VALUE. This preserves the integer value of the ID. INT_VALUE: Preserve the integer value of UID and group ID (GID) (recommended). NONE: Ignore UID and GID. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Mtime</i> A value that indicates the last time that a file was modified (that is, a file was written to) before the PREPARING phase. This option is required for cases when you need to run the same task more than one time.  Default value: PRESERVE.  PRESERVE: Preserve original <code>Mtime</code> (recommended)  NONE: Ignore <code>Mtime</code>.  <note> If <code>Mtime</code> is set to PRESERVE, <code>Atime</code> must be set to BEST_EFFORT. If <code>Mtime</code> is set to NONE, <code>Atime</code> must also be set to NONE.  </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Atime</i> A file metadata value that shows the last time a file was accessed (that is, when the file was read or written to). If you set <code>Atime</code> to BEST_EFFORT, DataSync attempts to preserve the original <code>Atime</code> attribute on all source files (that is, the version before the PREPARING phase). However, <code>Atime</code>'s behavior is not fully standard across platforms, so AWS DataSync can only do this on a best-effort basis.  Default value: BEST_EFFORT. BEST_EFFORT: Attempt to preserve the per-file <code>Atime</code> value (recommended). NONE: Ignore <code>Atime</code>. <note> If <code>Atime</code> is set to BEST_EFFORT, <code>Mtime</code> must be set to PRESERVE.  If <code>Atime</code> is set to NONE, <code>Mtime</code> must also be NONE.  </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OverwriteMode</i> A value that determines whether files at the destination should be overwritten or preserved when copying files. If set to <code>NEVER</code> a destination file will not be replaced by a source file, even if the destination file differs from the source file. If you modify files in the destination and you sync the files, you can use this value to protect against overwriting those changes.  Some storage classes have specific behaviors that can affect your S3 storage cost. For detailed information, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/create-s3-location.html#using-storage-classes">Considerations when working with Amazon S3 storage classes in DataSync </a> in the <i>AWS DataSync User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VerifyMode</i> A value that determines whether a data integrity verification should be performed at the end of a task execution after all data and metadata have been transferred. For more information, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/create-task.html">Configure task settings</a>.  Default value: POINT_IN_TIME_CONSISTENT. ONLY_FILES_TRANSFERRED (recommended): Perform verification only on files that were transferred.  POINT_IN_TIME_CONSISTENT: Scan the entire source and entire destination at the end of the transfer to verify that source and destination are fully synchronized. This option isn't supported when transferring to S3 Glacier or S3 Glacier Deep Archive storage classes. NONE: No additional verification is done at the end of the transfer, but all data transmissions are integrity-checked with checksum verification during the transfer.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ScheduleExpression</i> A cron expression that specifies when AWS DataSync initiates a scheduled transfer from a source to a destination location. <br/>
        :return: TaskArn:  The Amazon Resource Name (ARN) of the task.<br/>        """
        pass

    def delete_agent(self, AgentArn: str) -> DeleteAgentResponse:
        r"""Deletes an agent. To specify which agent to delete, use the Amazon Resource Name (ARN) of the agent in your request. The operation disassociates the agent from your AWS account. However, it doesn't delete the agent virtual machine (VM) from your on-premises environment.

        :param self:
        :param AgentArn:  The Amazon Resource Name (ARN) of the agent to delete. Use the <code>ListAgents</code> operation to return a list of agents for your account and AWS Region.<br/>
        :return:         """
        pass

    def delete_location(self, LocationArn: str) -> DeleteLocationResponse:
        r"""Deletes the configuration of a location used by AWS DataSync. 

        :param self:
        :param LocationArn:  The Amazon Resource Name (ARN) of the location to delete.<br/>
        :return:         """
        pass

    def delete_task(self, TaskArn: str) -> DeleteTaskResponse:
        r"""Deletes a task.

        :param self:
        :param TaskArn:  The Amazon Resource Name (ARN) of the task to delete.<br/>
        :return:         """
        pass

    def describe_agent(self, AgentArn: str) -> DescribeAgentResponse:
        r"""Returns metadata such as the name, the network interfaces, and the status (that is, whether the agent is running or not) for an agent. To specify which agent to describe, use the Amazon Resource Name (ARN) of the agent in your request. 

        :param self:
        :param AgentArn:  The Amazon Resource Name (ARN) of the agent to describe.<br/>
        :return: PrivateLinkConfig:  The subnet and the security group that DataSync used to access a VPC endpoint.:<br/>EndpointType:  The type of endpoint that your agent is connected to. If the endpoint is a VPC endpoint, the agent is not accessible over the public internet. <br/>CreationTime:  The time that the agent was activated (that is, created in your account).<br/>LastConnectionTime:  The time that the agent last connected to DataSync.<br/>Status:  The status of the agent. If the status is ONLINE, then the agent is configured properly and is available to use. The Running status is the normal running status for an agent. If the status is OFFLINE, the agent's VM is turned off or the agent is in an unhealthy state. When the issue that caused the unhealthy state is resolved, the agent returns to ONLINE status.<br/>Name:  The name of the agent.<br/>AgentArn:  The Amazon Resource Name (ARN) of the agent.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupArns</i> The Amazon Resource Names (ARNs) of the security groups that are configured for the EC2 resource that hosts an agent activated in a VPC or an agent that has access to a VPC endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetArns</i> The Amazon Resource Names (ARNs) of the subnets that are configured for an agent activated in a VPC or an agent that has access to a VPC endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PrivateLinkEndpoint</i> The private endpoint that is configured for an agent that has access to IP addresses in a <a href="https://docs.aws.amazon.com/vpc/latest/userguide/endpoint-service.html">PrivateLink</a>. An agent that is configured with this endpoint will not be accessible over the public internet.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcEndpointId</i> The ID of the VPC endpoint that is configured for an agent. An agent that is configured with a VPC endpoint will not be accessible over the public internet.<br/>        """
        pass

    def describe_location_efs(self, LocationArn: str) -> DescribeLocationEfsResponse:
        r"""Returns metadata, such as the path information about an Amazon EFS location.

        :param self:
        :param LocationArn:  The Amazon Resource Name (ARN) of the EFS location to describe.<br/>
        :return: CreationTime:  The time that the EFS location was created.<br/>Ec2Config:  The subnet and the security group that DataSync uses to access target EFS file system. The subnet must have at least one mount target for that file system. The security group that you provide needs to be able to communicate with the security group on the mount target in the subnet specified. :<br/>LocationUri:  The URL of the EFS location that was described.<br/>LocationArn:  The Amazon Resource Name (ARN) of the EFS location that was described.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupArns</i> The Amazon Resource Names (ARNs) of the security groups that are configured for the Amazon EC2 resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetArn</i> The ARN of the subnet and the security group that DataSync uses to access the target EFS file system.<br/>        """
        pass

    def describe_location_fsx_windows(self, LocationArn: str) -> DescribeLocationFsxWindowsResponse:
        r"""Returns metadata, such as the path information about an Amazon FSx for Windows File Server location.

        :param self:
        :param LocationArn:  The Amazon Resource Name (ARN) of the FSx for Windows File Server location to describe.<br/>
        :return: Domain:  The name of the Windows domain that the FSx for Windows File Server belongs to.<br/>User:  The user who has the permissions to access files and folders in the FSx for Windows File Server file system.<br/>CreationTime:  The time that the FSx for Windows File Server location was created.<br/>SecurityGroupArns:  The Amazon Resource Names (ARNs) of the security groups that are configured for the FSx for Windows File Server file system.<br/>LocationUri:  The URL of the FSx for Windows File Server location that was described.<br/>LocationArn:  The Amazon Resource Name (ARN) of the FSx for Windows File Server location that was described.<br/>        """
        pass

    def describe_location_nfs(self, LocationArn: str) -> DescribeLocationNfsResponse:
        r"""Returns metadata, such as the path information, about an NFS location.

        :param self:
        :param LocationArn:  The Amazon Resource Name (ARN) of the NFS location to describe.<br/>
        :return: CreationTime:  The time that the NFS location was created.<br/>MountOptions:  The NFS mount options that DataSync used to mount your NFS share.:<br/>OnPremConfig:  A list of Amazon Resource Names (ARNs) of agents to use for a Network File System (NFS) location.:<br/>LocationUri:  The URL of the source NFS location that was described.<br/>LocationArn:  The Amazon Resource Name (ARN) of the NFS location that was described.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AgentArns</i> ARNs of the agents to use for an NFS location.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The specific NFS version that you want DataSync to use to mount your NFS share. If the server refuses to use the version specified, the sync will fail. If you don't specify a version, DataSync defaults to <code>AUTOMATIC</code>. That is, DataSync automatically selects a version based on negotiation with the NFS server. You can specify the following NFS versions: <ul> <li>  <b> <a href="https://tools.ietf.org/html/rfc1813">NFSv3</a> </b> - stateless protocol version that allows for asynchronous writes on the server. </li> <li>  <b> <a href="https://tools.ietf.org/html/rfc3530">NFSv4.0</a> </b> - stateful, firewall-friendly protocol version that supports delegations and pseudo filesystems. </li> <li>  <b> <a href="https://tools.ietf.org/html/rfc5661">NFSv4.1</a> </b> - stateful protocol version that supports sessions, directory delegations, and parallel data processing. Version 4.1 also includes all features available in version 4.0. </li> </ul><br/>        """
        pass

    def describe_location_object_storage(self, LocationArn: str) -> DescribeLocationObjectStorageResponse:
        r"""Returns metadata about a self-managed object storage server location. For more information about self-managed object storage locations, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/create-object-location.html">Creating a location for object storage</a>.

        :param self:
        :param LocationArn:  The Amazon Resource Name (ARN) of the self-managed object storage server location that was described.<br/>
        :return: CreationTime:  The time that the self-managed object storage server agent was created.<br/>AgentArns:  The Amazon Resource Name (ARN) of the agents associated with the self-managed object storage server location.<br/>ServerProtocol:  The protocol that the object storage server uses to communicate. Valid values are HTTP or HTTPS.<br/>ServerPort:  The port that your self-managed object storage server accepts inbound network traffic on. The server port is set by default to TCP 80 (HTTP) or TCP 443 (HTTPS).<br/>AccessKey:  Optional. The access key is used if credentials are required to access the self-managed object storage server. If your object storage requires a user name and password to authenticate, use <code>AccessKey</code> and <code>SecretKey</code> to provide the user name and password, respectively.<br/>LocationUri:  The URL of the source self-managed object storage server location that was described.<br/>LocationArn:  The Amazon Resource Name (ARN) of the self-managed object storage server location to describe.<br/>        """
        pass

    def describe_location_s3(self, LocationArn: str) -> DescribeLocationS3Response:
        r"""Returns metadata, such as bucket name, about an Amazon S3 bucket location.

        :param self:
        :param LocationArn:  The Amazon Resource Name (ARN) of the Amazon S3 bucket location to describe.<br/>
        :return: CreationTime:  The time that the Amazon S3 bucket location was created.<br/>AgentArns:  If you are using DataSync on an AWS Outpost, the Amazon Resource Name (ARNs) of the EC2 agents deployed on your Outpost. For more information about launching a DataSync agent on an AWS Outpost, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/deploy-agents.html#outposts-agent">Deploy your DataSync agent on AWS Outposts</a>.<br/>S3Config:  The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that is used to access an Amazon S3 bucket. For detailed information about using such a role, see Creating a Location for Amazon S3 in the <i>AWS DataSync User Guide</i>.:<br/>S3StorageClass:  The Amazon S3 storage class that you chose to store your files in when this location is used as a task destination. For more information about S3 storage classes, see <a href="http://aws.amazon.com/s3/storage-classes/">Amazon S3 Storage Classes</a>. Some storage classes have behaviors that can affect your S3 storage cost. For detailed information, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/create-s3-location.html#using-storage-classes">Considerations when working with S3 storage classes in DataSync</a>.<br/>LocationUri:  The URL of the Amazon S3 location that was described.<br/>LocationArn:  The Amazon Resource Name (ARN) of the Amazon S3 bucket or access point.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BucketAccessRoleArn</i> The Amazon S3 bucket to access. This bucket is used as a parameter in the <a href="https://docs.aws.amazon.com/datasync/latest/userguide/API_CreateLocationS3.html">CreateLocationS3</a> operation. <br/>        """
        pass

    def describe_location_smb(self, LocationArn: str) -> DescribeLocationSmbResponse:
        r"""Returns metadata, such as the path and user information about an SMB location.

        :param self:
        :param LocationArn:  The Amazon Resource Name (ARN) of the SMB location to describe.<br/>
        :return: CreationTime:  The time that the SMB location was created.<br/>MountOptions:  The mount options that are available for DataSync to use to access an SMB location.:<br/>Domain:  The name of the Windows domain that the SMB server belongs to.<br/>User:  The user who can mount the share, has the permissions to access files and folders in the SMB share.<br/>AgentArns:  The Amazon Resource Name (ARN) of the source SMB file system location that is created.<br/>LocationUri:  The URL of the source SMB location that was described.<br/>LocationArn:  The Amazon Resource Name (ARN) of the SMB location that was described.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The specific SMB version that you want DataSync to use to mount your SMB share. If you don't specify a version, DataSync defaults to <code>AUTOMATIC</code>. That is, DataSync automatically selects a version based on negotiation with the SMB server.<br/>        """
        pass

    def describe_task(self, TaskArn: str) -> DescribeTaskResponse:
        r"""Returns metadata about a task.

        :param self:
        :param TaskArn:  The Amazon Resource Name (ARN) of the task to describe.<br/>
        :return: CreationTime:  The time that the task was created.<br/>ErrorDetail:  Detailed description of an error that was encountered during the task execution. You can use this information to help troubleshoot issues. <br/>ErrorCode:  Errors that AWS DataSync encountered during execution of the task. You can use this error code to help troubleshoot issues.<br/>Schedule:  The schedule used to periodically transfer files from a source to a destination location.:<br/>Excludes:  A list of filter rules that determines which files to exclude from a task. The list should contain a single filter string that consists of the patterns to exclude. The patterns are delimited by "|" (that is, a pipe), for example: <code>"/folder1|/folder2"</code>   <br/>Options:  The set of configuration options that control the behavior of a single execution of the task that occurs when you call <code>StartTaskExecution</code>. You can configure these options to preserve metadata such as user ID (UID) and group (GID), file permissions, data integrity verification, and so on. For each individual task execution, you can override these options by specifying the overriding <code>OverrideOptions</code> value to <a href="https://docs.aws.amazon.com/datasync/latest/userguide/API_StartTaskExecution.html">StartTaskExecution</a> operation. :<br/>DestinationNetworkInterfaceArns:  The Amazon Resource Name (ARN) of the destination ENIs (Elastic Network Interface) that was created for your subnet.<br/>SourceNetworkInterfaceArns:  The Amazon Resource Name (ARN) of the source ENIs (Elastic Network Interface) that was created for your subnet.<br/>CloudWatchLogGroupArn:  The Amazon Resource Name (ARN) of the Amazon CloudWatch log group that was used to monitor and log events in the task. For more information on these groups, see Working with Log Groups and Log Streams in the <i>Amazon CloudWatch User Guide</i>.<br/>DestinationLocationArn:  The Amazon Resource Name (ARN) of the AWS storage resource's location.<br/>SourceLocationArn:  The Amazon Resource Name (ARN) of the source file system's location.<br/>CurrentTaskExecutionArn:  The Amazon Resource Name (ARN) of the task execution that is syncing files.<br/>Name:  The name of the task that was described.<br/>Status:  The status of the task that was described. For detailed information about task execution statuses, see Understanding Task Statuses in the <i>AWS DataSync User Guide</i>.<br/>TaskArn:  The Amazon Resource Name (ARN) of the task that was described.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityDescriptorCopyFlags</i> A value that determines which components of the SMB security descriptor are copied from source to destination objects.  This value is only used for transfers between SMB and Amazon FSx for Windows File Server locations, or between two Amazon FSx for Windows File Server locations. For more information about how DataSync handles metadata, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/special-files.html">How DataSync Handles Metadata and Special Files</a>.  Default value: OWNER_DACL.  <b>OWNER_DACL</b>: For each copied object, DataSync copies the following metadata: <ul> <li> Object owner. </li> <li> NTFS discretionary access control lists (DACLs), which determine whether to grant access to an object. </li> </ul> When choosing this option, DataSync does NOT copy the NTFS system access control lists (SACLs), which are used by administrators to log attempts to access a secured object.  <b>OWNER_DACL_SACL</b>: For each copied object, DataSync copies the following metadata: <ul> <li> Object owner. </li> <li> NTFS discretionary access control lists (DACLs), which determine whether to grant access to an object. </li> <li> NTFS system access control lists (SACLs), which are used by administrators to log attempts to access a secured object. </li> </ul> Copying SACLs requires granting additional permissions to the Windows user that DataSync uses to access your SMB location. For information about choosing a user that ensures sufficient permissions to files, folders, and metadata, see <a href="create-smb-location.html#SMBuser">user</a>.  <b>NONE</b>: None of the SMB security descriptor components are copied. Destination objects are owned by the user that was provided for accessing the destination location. DACLs and SACLs are set based on the destination server’s configuration. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransferMode</i> A value that determines whether DataSync transfers only the data and metadata that differ between the source and the destination location, or whether DataSync transfers all the content from the source, without comparing to the destination location.  CHANGED: DataSync copies only data or metadata that is new or different content from the source location to the destination location. ALL: DataSync copies all source location content to the destination, without comparing to existing content on the destination.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogLevel</i> A value that determines the type of logs that DataSync publishes to a log stream in the Amazon CloudWatch log group that you provide. For more information about providing a log group for DataSync, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/API_CreateTask.html#DataSync-CreateTask-request-CloudWatchLogGroupArn">CloudWatchLogGroupArn</a>. If set to <code>OFF</code>, no logs are published. <code>BASIC</code> publishes logs on errors for individual files transferred, and <code>TRANSFER</code> publishes logs for every file or object that is transferred and integrity checked.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TaskQueueing</i> A value that determines whether tasks should be queued before executing the tasks. If set to <code>ENABLED</code>, the tasks will be queued. The default is <code>ENABLED</code>. If you use the same agent to run multiple tasks, you can enable the tasks to run in series. For more information, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/run-task.html#queue-task-execution">Queueing task executions</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BytesPerSecond</i> A value that limits the bandwidth used by AWS DataSync. For example, if you want AWS DataSync to use a maximum of 1 MB, set this value to <code>1048576</code> (<code>=1024*1024</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PosixPermissions</i> A value that determines which users or groups can access a file for a specific purpose such as reading, writing, or execution of the file. This option should only be set for NFS, EFS, and S3 locations. For more information about what metadata is copied by DataSync, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/special-files.html#metadata-copied">Metadata Copied by DataSync</a>.  Default value: PRESERVE. PRESERVE: Preserve POSIX-style permissions (recommended). NONE: Ignore permissions.  <note> AWS DataSync can preserve extant permissions of a source location. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreserveDevices</i> A value that determines whether AWS DataSync should preserve the metadata of block and character devices in the source file system, and re-create the files with that device name and metadata on the destination. DataSync does not copy the contents of such devices, only the name and metadata.  <note> AWS DataSync can't sync the actual contents of such devices, because they are nonterminal and don't return an end-of-file (EOF) marker. </note> Default value: NONE. NONE: Ignore special devices (recommended).  PRESERVE: Preserve character and block device metadata. This option isn't currently supported for Amazon EFS. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreserveDeletedFiles</i> A value that specifies whether files in the destination that don't exist in the source file system should be preserved. This option can affect your storage cost. If your task deletes objects, you might incur minimum storage duration charges for certain storage classes. For detailed information, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/create-s3-location.html#using-storage-classes">Considerations when working with Amazon S3 storage classes in DataSync </a> in the <i>AWS DataSync User Guide</i>. Default value: PRESERVE. PRESERVE: Ignore such destination files (recommended).  REMOVE: Delete destination files that aren’t present in the source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Gid</i> The POSIX group ID (GID) of the file's owners. This option should only be set for NFS, EFS, and S3 locations. For more information about what metadata is copied by DataSync, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/special-files.html#metadata-copied">Metadata Copied by DataSync</a>.  Default value: INT_VALUE. This preserves the integer value of the ID. INT_VALUE: Preserve the integer value of user ID (UID) and GID (recommended). NONE: Ignore UID and GID. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Uid</i> The POSIX user ID (UID) of the file's owner. This option should only be set for NFS, EFS, and S3 locations. To learn more about what metadata is copied by DataSync, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/special-files.html#metadata-copied">Metadata Copied by DataSync</a>. Default value: INT_VALUE. This preserves the integer value of the ID. INT_VALUE: Preserve the integer value of UID and group ID (GID) (recommended). NONE: Ignore UID and GID. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Mtime</i> A value that indicates the last time that a file was modified (that is, a file was written to) before the PREPARING phase. This option is required for cases when you need to run the same task more than one time.  Default value: PRESERVE.  PRESERVE: Preserve original <code>Mtime</code> (recommended)  NONE: Ignore <code>Mtime</code>.  <note> If <code>Mtime</code> is set to PRESERVE, <code>Atime</code> must be set to BEST_EFFORT. If <code>Mtime</code> is set to NONE, <code>Atime</code> must also be set to NONE.  </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Atime</i> A file metadata value that shows the last time a file was accessed (that is, when the file was read or written to). If you set <code>Atime</code> to BEST_EFFORT, DataSync attempts to preserve the original <code>Atime</code> attribute on all source files (that is, the version before the PREPARING phase). However, <code>Atime</code>'s behavior is not fully standard across platforms, so AWS DataSync can only do this on a best-effort basis.  Default value: BEST_EFFORT. BEST_EFFORT: Attempt to preserve the per-file <code>Atime</code> value (recommended). NONE: Ignore <code>Atime</code>. <note> If <code>Atime</code> is set to BEST_EFFORT, <code>Mtime</code> must be set to PRESERVE.  If <code>Atime</code> is set to NONE, <code>Mtime</code> must also be NONE.  </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OverwriteMode</i> A value that determines whether files at the destination should be overwritten or preserved when copying files. If set to <code>NEVER</code> a destination file will not be replaced by a source file, even if the destination file differs from the source file. If you modify files in the destination and you sync the files, you can use this value to protect against overwriting those changes.  Some storage classes have specific behaviors that can affect your S3 storage cost. For detailed information, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/create-s3-location.html#using-storage-classes">Considerations when working with Amazon S3 storage classes in DataSync </a> in the <i>AWS DataSync User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VerifyMode</i> A value that determines whether a data integrity verification should be performed at the end of a task execution after all data and metadata have been transferred. For more information, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/create-task.html">Configure task settings</a>.  Default value: POINT_IN_TIME_CONSISTENT. ONLY_FILES_TRANSFERRED (recommended): Perform verification only on files that were transferred.  POINT_IN_TIME_CONSISTENT: Scan the entire source and entire destination at the end of the transfer to verify that source and destination are fully synchronized. This option isn't supported when transferring to S3 Glacier or S3 Glacier Deep Archive storage classes. NONE: No additional verification is done at the end of the transfer, but all data transmissions are integrity-checked with checksum verification during the transfer.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ScheduleExpression</i> A cron expression that specifies when AWS DataSync initiates a scheduled transfer from a source to a destination location. <br/>        """
        pass

    def describe_task_execution(self, TaskExecutionArn: str) -> DescribeTaskExecutionResponse:
        r"""Returns detailed metadata about a task that is being executed.

        :param self:
        :param TaskExecutionArn:  The Amazon Resource Name (ARN) of the task that is being executed.<br/>
        :return: Result:  The result of the task execution.:<br/>BytesTransferred:  The physical number of bytes transferred over the network.<br/>BytesWritten:  The number of logical bytes written to the destination AWS storage resource.<br/>FilesTransferred:  The actual number of files that was transferred over the network. This value is calculated and updated on an ongoing basis during the TRANSFERRING phase. It's updated periodically when each file is read from the source and sent over the network.  If failures occur during a transfer, this value can be less than <code>EstimatedFilesToTransfer</code>. This value can also be greater than <code>EstimatedFilesTransferred</code> in some cases. This element is implementation-specific for some location types, so don't use it as an indicator for a correct file number or to monitor your task execution.<br/>EstimatedBytesToTransfer:  The estimated physical number of bytes that is to be transferred over the network.<br/>EstimatedFilesToTransfer:  The expected number of files that is to be transferred over the network. This value is calculated during the PREPARING phase, before the TRANSFERRING phase. This value is the expected number of files to be transferred. It's calculated based on comparing the content of the source and destination locations and finding the delta that needs to be transferred. <br/>StartTime:  The time that the task execution was started.<br/>Includes:  A list of filter rules that determines which files to include when running a task. The list should contain a single filter string that consists of the patterns to include. The patterns are delimited by "|" (that is, a pipe), for example: <code>"/folder1|/folder2"</code>   <br/>Excludes:  A list of filter rules that determines which files to exclude from a task. The list should contain a single filter string that consists of the patterns to exclude. The patterns are delimited by "|" (that is, a pipe), for example: <code>"/folder1|/folder2"</code>   <br/>Options:  Represents the options that are available to control the behavior of a <a href="https://docs.aws.amazon.com/datasync/latest/userguide/API_StartTaskExecution.html">StartTaskExecution</a> operation. Behavior includes preserving metadata such as user ID (UID), group ID (GID), and file permissions, and also overwriting files in the destination, data integrity verification, and so on. A task has a set of default options associated with it. If you don't specify an option in <a href="https://docs.aws.amazon.com/datasync/latest/userguide/API_StartTaskExecution.html">StartTaskExecution</a>, the default value is used. You can override the defaults options on each task execution by specifying an overriding <code>Options</code> value to <a href="https://docs.aws.amazon.com/datasync/latest/userguide/API_StartTaskExecution.html">StartTaskExecution</a>.:<br/>Status:  The status of the task execution.  For detailed information about task execution statuses, see Understanding Task Statuses in the <i>AWS DataSync User Guide.</i> <br/>TaskExecutionArn:  The Amazon Resource Name (ARN) of the task execution that was described. <code>TaskExecutionArn</code> is hierarchical and includes <code>TaskArn</code> for the task that was executed.  For example, a <code>TaskExecution</code> value with the ARN <code>arn:aws:datasync:us-east-1:111222333444:task/task-0208075f79cedf4a2/execution/exec-08ef1e88ec491019b</code> executed the task with the ARN <code>arn:aws:datasync:us-east-1:111222333444:task/task-0208075f79cedf4a2</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityDescriptorCopyFlags</i> A value that determines which components of the SMB security descriptor are copied from source to destination objects.  This value is only used for transfers between SMB and Amazon FSx for Windows File Server locations, or between two Amazon FSx for Windows File Server locations. For more information about how DataSync handles metadata, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/special-files.html">How DataSync Handles Metadata and Special Files</a>.  Default value: OWNER_DACL.  <b>OWNER_DACL</b>: For each copied object, DataSync copies the following metadata: <ul> <li> Object owner. </li> <li> NTFS discretionary access control lists (DACLs), which determine whether to grant access to an object. </li> </ul> When choosing this option, DataSync does NOT copy the NTFS system access control lists (SACLs), which are used by administrators to log attempts to access a secured object.  <b>OWNER_DACL_SACL</b>: For each copied object, DataSync copies the following metadata: <ul> <li> Object owner. </li> <li> NTFS discretionary access control lists (DACLs), which determine whether to grant access to an object. </li> <li> NTFS system access control lists (SACLs), which are used by administrators to log attempts to access a secured object. </li> </ul> Copying SACLs requires granting additional permissions to the Windows user that DataSync uses to access your SMB location. For information about choosing a user that ensures sufficient permissions to files, folders, and metadata, see <a href="create-smb-location.html#SMBuser">user</a>.  <b>NONE</b>: None of the SMB security descriptor components are copied. Destination objects are owned by the user that was provided for accessing the destination location. DACLs and SACLs are set based on the destination server’s configuration. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransferMode</i> A value that determines whether DataSync transfers only the data and metadata that differ between the source and the destination location, or whether DataSync transfers all the content from the source, without comparing to the destination location.  CHANGED: DataSync copies only data or metadata that is new or different content from the source location to the destination location. ALL: DataSync copies all source location content to the destination, without comparing to existing content on the destination.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogLevel</i> A value that determines the type of logs that DataSync publishes to a log stream in the Amazon CloudWatch log group that you provide. For more information about providing a log group for DataSync, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/API_CreateTask.html#DataSync-CreateTask-request-CloudWatchLogGroupArn">CloudWatchLogGroupArn</a>. If set to <code>OFF</code>, no logs are published. <code>BASIC</code> publishes logs on errors for individual files transferred, and <code>TRANSFER</code> publishes logs for every file or object that is transferred and integrity checked.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TaskQueueing</i> A value that determines whether tasks should be queued before executing the tasks. If set to <code>ENABLED</code>, the tasks will be queued. The default is <code>ENABLED</code>. If you use the same agent to run multiple tasks, you can enable the tasks to run in series. For more information, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/run-task.html#queue-task-execution">Queueing task executions</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BytesPerSecond</i> A value that limits the bandwidth used by AWS DataSync. For example, if you want AWS DataSync to use a maximum of 1 MB, set this value to <code>1048576</code> (<code>=1024*1024</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PosixPermissions</i> A value that determines which users or groups can access a file for a specific purpose such as reading, writing, or execution of the file. This option should only be set for NFS, EFS, and S3 locations. For more information about what metadata is copied by DataSync, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/special-files.html#metadata-copied">Metadata Copied by DataSync</a>.  Default value: PRESERVE. PRESERVE: Preserve POSIX-style permissions (recommended). NONE: Ignore permissions.  <note> AWS DataSync can preserve extant permissions of a source location. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreserveDevices</i> A value that determines whether AWS DataSync should preserve the metadata of block and character devices in the source file system, and re-create the files with that device name and metadata on the destination. DataSync does not copy the contents of such devices, only the name and metadata.  <note> AWS DataSync can't sync the actual contents of such devices, because they are nonterminal and don't return an end-of-file (EOF) marker. </note> Default value: NONE. NONE: Ignore special devices (recommended).  PRESERVE: Preserve character and block device metadata. This option isn't currently supported for Amazon EFS. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreserveDeletedFiles</i> A value that specifies whether files in the destination that don't exist in the source file system should be preserved. This option can affect your storage cost. If your task deletes objects, you might incur minimum storage duration charges for certain storage classes. For detailed information, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/create-s3-location.html#using-storage-classes">Considerations when working with Amazon S3 storage classes in DataSync </a> in the <i>AWS DataSync User Guide</i>. Default value: PRESERVE. PRESERVE: Ignore such destination files (recommended).  REMOVE: Delete destination files that aren’t present in the source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Gid</i> The POSIX group ID (GID) of the file's owners. This option should only be set for NFS, EFS, and S3 locations. For more information about what metadata is copied by DataSync, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/special-files.html#metadata-copied">Metadata Copied by DataSync</a>.  Default value: INT_VALUE. This preserves the integer value of the ID. INT_VALUE: Preserve the integer value of user ID (UID) and GID (recommended). NONE: Ignore UID and GID. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Uid</i> The POSIX user ID (UID) of the file's owner. This option should only be set for NFS, EFS, and S3 locations. To learn more about what metadata is copied by DataSync, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/special-files.html#metadata-copied">Metadata Copied by DataSync</a>. Default value: INT_VALUE. This preserves the integer value of the ID. INT_VALUE: Preserve the integer value of UID and group ID (GID) (recommended). NONE: Ignore UID and GID. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Mtime</i> A value that indicates the last time that a file was modified (that is, a file was written to) before the PREPARING phase. This option is required for cases when you need to run the same task more than one time.  Default value: PRESERVE.  PRESERVE: Preserve original <code>Mtime</code> (recommended)  NONE: Ignore <code>Mtime</code>.  <note> If <code>Mtime</code> is set to PRESERVE, <code>Atime</code> must be set to BEST_EFFORT. If <code>Mtime</code> is set to NONE, <code>Atime</code> must also be set to NONE.  </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Atime</i> A file metadata value that shows the last time a file was accessed (that is, when the file was read or written to). If you set <code>Atime</code> to BEST_EFFORT, DataSync attempts to preserve the original <code>Atime</code> attribute on all source files (that is, the version before the PREPARING phase). However, <code>Atime</code>'s behavior is not fully standard across platforms, so AWS DataSync can only do this on a best-effort basis.  Default value: BEST_EFFORT. BEST_EFFORT: Attempt to preserve the per-file <code>Atime</code> value (recommended). NONE: Ignore <code>Atime</code>. <note> If <code>Atime</code> is set to BEST_EFFORT, <code>Mtime</code> must be set to PRESERVE.  If <code>Atime</code> is set to NONE, <code>Mtime</code> must also be NONE.  </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OverwriteMode</i> A value that determines whether files at the destination should be overwritten or preserved when copying files. If set to <code>NEVER</code> a destination file will not be replaced by a source file, even if the destination file differs from the source file. If you modify files in the destination and you sync the files, you can use this value to protect against overwriting those changes.  Some storage classes have specific behaviors that can affect your S3 storage cost. For detailed information, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/create-s3-location.html#using-storage-classes">Considerations when working with Amazon S3 storage classes in DataSync </a> in the <i>AWS DataSync User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VerifyMode</i> A value that determines whether a data integrity verification should be performed at the end of a task execution after all data and metadata have been transferred. For more information, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/create-task.html">Configure task settings</a>.  Default value: POINT_IN_TIME_CONSISTENT. ONLY_FILES_TRANSFERRED (recommended): Perform verification only on files that were transferred.  POINT_IN_TIME_CONSISTENT: Scan the entire source and entire destination at the end of the transfer to verify that source and destination are fully synchronized. This option isn't supported when transferring to S3 Glacier or S3 Glacier Deep Archive storage classes. NONE: No additional verification is done at the end of the transfer, but all data transmissions are integrity-checked with checksum verification during the transfer.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorDetail</i> Detailed description of an error that was encountered during the task execution. You can use this information to help troubleshoot issues. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorCode</i> Errors that AWS DataSync encountered during execution of the task. You can use this error code to help troubleshoot issues.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VerifyStatus</i> The status of the VERIFYING phase.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VerifyDuration</i> The total time in milliseconds that AWS DataSync spent in the VERIFYING phase.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransferStatus</i> The status of the TRANSFERRING phase.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransferDuration</i> The total time in milliseconds that AWS DataSync spent in the TRANSFERRING phase.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalDuration</i> The total time in milliseconds that AWS DataSync took to transfer the file from the source to the destination location.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PrepareStatus</i> The status of the PREPARING phase.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PrepareDuration</i> The total time in milliseconds that AWS DataSync spent in the PREPARING phase. <br/>        """
        pass

    def list_agents(self, MaxResults: int=None, NextToken: str=None) -> ListAgentsResponse:
        r"""Returns a list of agents owned by an AWS account in the AWS Region specified in the request. The returned list is ordered by agent Amazon Resource Name (ARN). By default, this operation returns a maximum of 100 agents. This operation supports pagination that enables you to optionally reduce the number of agents returned in a response. If you have more agents than are returned in a response (that is, the response returns only a truncated list of your agents), the response contains a marker that you can specify in your next request to fetch the next page of agents.

        :param self:
        :param NextToken:  An opaque string that indicates the position at which to begin the next list of agents.<br/>MaxResults:  The maximum number of agents to list.<br/>
        :return: NextToken:  An opaque string that indicates the position at which to begin returning the next list of agents.<br/>Agents:  A list of agents in your account.<br/>        """
        pass

    def list_locations(self, MaxResults: int=None, NextToken: str=None, Filters: List[LocationFilter]=None) -> ListLocationsResponse:
        r"""Returns a list of source and destination locations. If you have more locations than are returned in a response (that is, the response returns only a truncated list of your agents), the response contains a token that you can specify in your next request to fetch the next page of locations.

        :param self:
        :param Filters:  You can use API filters to narrow down the list of resources returned by <code>ListLocations</code>. For example, to retrieve all tasks on a specific source location, you can use <code>ListLocations</code> with filter name <code>LocationType S3</code> and <code>Operator Equals</code>.<br/>NextToken:  An opaque string that indicates the position at which to begin the next list of locations.<br/>MaxResults:  The maximum number of locations to return.<br/>
        :return: NextToken:  An opaque string that indicates the position at which to begin returning the next list of locations.<br/>Locations:  An array that contains a list of locations.<br/>        """
        pass

    def list_tags_for_resource(self, ResourceArn: str, MaxResults: int=None, NextToken: str=None) -> ListTagsForResourceResponse:
        r"""Returns all the tags associated with a specified resource. 

        :param self:
        :param NextToken:  An opaque string that indicates the position at which to begin the next list of locations.<br/>MaxResults:  The maximum number of locations to return.<br/>ResourceArn:  The Amazon Resource Name (ARN) of the resource whose tags to list.<br/>
        :return: NextToken:  An opaque string that indicates the position at which to begin returning the next list of resource tags.<br/>Tags:  Array of resource tags.<br/>        """
        pass

    def list_task_executions(self, TaskArn: str=None, MaxResults: int=None, NextToken: str=None) -> ListTaskExecutionsResponse:
        r"""Returns a list of executed tasks.

        :param self:
        :param NextToken:  An opaque string that indicates the position at which to begin the next list of the executed tasks.<br/>MaxResults:  The maximum number of executed tasks to list.<br/>TaskArn:  The Amazon Resource Name (ARN) of the task whose tasks you want to list.<br/>
        :return: NextToken:  An opaque string that indicates the position at which to begin returning the next list of executed tasks.<br/>TaskExecutions:  A list of executed tasks.<br/>        """
        pass

    def list_tasks(self, MaxResults: int=None, NextToken: str=None, Filters: List[TaskFilter]=None) -> ListTasksResponse:
        r"""Returns a list of all the tasks.

        :param self:
        :param Filters:  You can use API filters to narrow down the list of resources returned by <code>ListTasks</code>. For example, to retrieve all tasks on a specific source location, you can use <code>ListTasks</code> with filter name <code>LocationId</code> and <code>Operator Equals</code> with the ARN for the location.<br/>NextToken:  An opaque string that indicates the position at which to begin the next list of tasks.<br/>MaxResults:  The maximum number of tasks to return.<br/>
        :return: NextToken:  An opaque string that indicates the position at which to begin returning the next list of tasks.<br/>Tasks:  A list of all the tasks that are returned.<br/>        """
        pass

    def start_task_execution(self, TaskArn: str, OverrideOptions: Options=None, Includes: List[FilterRule]=None) -> StartTaskExecutionResponse:
        r"""Starts a specific invocation of a task. A <code>TaskExecution</code> value represents an individual run of a task. Each task can have at most one <code>TaskExecution</code> at a time.  <code>TaskExecution</code> has the following transition phases: INITIALIZING | PREPARING | TRANSFERRING | VERIFYING | SUCCESS/FAILURE.  For detailed information, see the Task Execution section in the Components and Terminology topic in the <i>AWS DataSync User Guide</i>.

        :param self:
        :param Includes:  A list of filter rules that determines which files to include when running a task. The pattern should contain a single filter string that consists of the patterns to include. The patterns are delimited by "|" (that is, a pipe). For example: <code>"/folder1|/folder2"</code>   <br/>OverrideOptions:  Represents the options that are available to control the behavior of a <a href="https://docs.aws.amazon.com/datasync/latest/userguide/API_StartTaskExecution.html">StartTaskExecution</a> operation. Behavior includes preserving metadata such as user ID (UID), group ID (GID), and file permissions, and also overwriting files in the destination, data integrity verification, and so on. A task has a set of default options associated with it. If you don't specify an option in <a href="https://docs.aws.amazon.com/datasync/latest/userguide/API_StartTaskExecution.html">StartTaskExecution</a>, the default value is used. You can override the defaults options on each task execution by specifying an overriding <code>Options</code> value to <a href="https://docs.aws.amazon.com/datasync/latest/userguide/API_StartTaskExecution.html">StartTaskExecution</a>.:<br/>TaskArn:  The Amazon Resource Name (ARN) of the task to start.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityDescriptorCopyFlags</i> A value that determines which components of the SMB security descriptor are copied from source to destination objects.  This value is only used for transfers between SMB and Amazon FSx for Windows File Server locations, or between two Amazon FSx for Windows File Server locations. For more information about how DataSync handles metadata, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/special-files.html">How DataSync Handles Metadata and Special Files</a>.  Default value: OWNER_DACL.  <b>OWNER_DACL</b>: For each copied object, DataSync copies the following metadata: <ul> <li> Object owner. </li> <li> NTFS discretionary access control lists (DACLs), which determine whether to grant access to an object. </li> </ul> When choosing this option, DataSync does NOT copy the NTFS system access control lists (SACLs), which are used by administrators to log attempts to access a secured object.  <b>OWNER_DACL_SACL</b>: For each copied object, DataSync copies the following metadata: <ul> <li> Object owner. </li> <li> NTFS discretionary access control lists (DACLs), which determine whether to grant access to an object. </li> <li> NTFS system access control lists (SACLs), which are used by administrators to log attempts to access a secured object. </li> </ul> Copying SACLs requires granting additional permissions to the Windows user that DataSync uses to access your SMB location. For information about choosing a user that ensures sufficient permissions to files, folders, and metadata, see <a href="create-smb-location.html#SMBuser">user</a>.  <b>NONE</b>: None of the SMB security descriptor components are copied. Destination objects are owned by the user that was provided for accessing the destination location. DACLs and SACLs are set based on the destination server’s configuration. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransferMode</i> A value that determines whether DataSync transfers only the data and metadata that differ between the source and the destination location, or whether DataSync transfers all the content from the source, without comparing to the destination location.  CHANGED: DataSync copies only data or metadata that is new or different content from the source location to the destination location. ALL: DataSync copies all source location content to the destination, without comparing to existing content on the destination.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogLevel</i> A value that determines the type of logs that DataSync publishes to a log stream in the Amazon CloudWatch log group that you provide. For more information about providing a log group for DataSync, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/API_CreateTask.html#DataSync-CreateTask-request-CloudWatchLogGroupArn">CloudWatchLogGroupArn</a>. If set to <code>OFF</code>, no logs are published. <code>BASIC</code> publishes logs on errors for individual files transferred, and <code>TRANSFER</code> publishes logs for every file or object that is transferred and integrity checked.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TaskQueueing</i> A value that determines whether tasks should be queued before executing the tasks. If set to <code>ENABLED</code>, the tasks will be queued. The default is <code>ENABLED</code>. If you use the same agent to run multiple tasks, you can enable the tasks to run in series. For more information, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/run-task.html#queue-task-execution">Queueing task executions</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BytesPerSecond</i> A value that limits the bandwidth used by AWS DataSync. For example, if you want AWS DataSync to use a maximum of 1 MB, set this value to <code>1048576</code> (<code>=1024*1024</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PosixPermissions</i> A value that determines which users or groups can access a file for a specific purpose such as reading, writing, or execution of the file. This option should only be set for NFS, EFS, and S3 locations. For more information about what metadata is copied by DataSync, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/special-files.html#metadata-copied">Metadata Copied by DataSync</a>.  Default value: PRESERVE. PRESERVE: Preserve POSIX-style permissions (recommended). NONE: Ignore permissions.  <note> AWS DataSync can preserve extant permissions of a source location. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreserveDevices</i> A value that determines whether AWS DataSync should preserve the metadata of block and character devices in the source file system, and re-create the files with that device name and metadata on the destination. DataSync does not copy the contents of such devices, only the name and metadata.  <note> AWS DataSync can't sync the actual contents of such devices, because they are nonterminal and don't return an end-of-file (EOF) marker. </note> Default value: NONE. NONE: Ignore special devices (recommended).  PRESERVE: Preserve character and block device metadata. This option isn't currently supported for Amazon EFS. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreserveDeletedFiles</i> A value that specifies whether files in the destination that don't exist in the source file system should be preserved. This option can affect your storage cost. If your task deletes objects, you might incur minimum storage duration charges for certain storage classes. For detailed information, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/create-s3-location.html#using-storage-classes">Considerations when working with Amazon S3 storage classes in DataSync </a> in the <i>AWS DataSync User Guide</i>. Default value: PRESERVE. PRESERVE: Ignore such destination files (recommended).  REMOVE: Delete destination files that aren’t present in the source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Gid</i> The POSIX group ID (GID) of the file's owners. This option should only be set for NFS, EFS, and S3 locations. For more information about what metadata is copied by DataSync, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/special-files.html#metadata-copied">Metadata Copied by DataSync</a>.  Default value: INT_VALUE. This preserves the integer value of the ID. INT_VALUE: Preserve the integer value of user ID (UID) and GID (recommended). NONE: Ignore UID and GID. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Uid</i> The POSIX user ID (UID) of the file's owner. This option should only be set for NFS, EFS, and S3 locations. To learn more about what metadata is copied by DataSync, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/special-files.html#metadata-copied">Metadata Copied by DataSync</a>. Default value: INT_VALUE. This preserves the integer value of the ID. INT_VALUE: Preserve the integer value of UID and group ID (GID) (recommended). NONE: Ignore UID and GID. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Mtime</i> A value that indicates the last time that a file was modified (that is, a file was written to) before the PREPARING phase. This option is required for cases when you need to run the same task more than one time.  Default value: PRESERVE.  PRESERVE: Preserve original <code>Mtime</code> (recommended)  NONE: Ignore <code>Mtime</code>.  <note> If <code>Mtime</code> is set to PRESERVE, <code>Atime</code> must be set to BEST_EFFORT. If <code>Mtime</code> is set to NONE, <code>Atime</code> must also be set to NONE.  </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Atime</i> A file metadata value that shows the last time a file was accessed (that is, when the file was read or written to). If you set <code>Atime</code> to BEST_EFFORT, DataSync attempts to preserve the original <code>Atime</code> attribute on all source files (that is, the version before the PREPARING phase). However, <code>Atime</code>'s behavior is not fully standard across platforms, so AWS DataSync can only do this on a best-effort basis.  Default value: BEST_EFFORT. BEST_EFFORT: Attempt to preserve the per-file <code>Atime</code> value (recommended). NONE: Ignore <code>Atime</code>. <note> If <code>Atime</code> is set to BEST_EFFORT, <code>Mtime</code> must be set to PRESERVE.  If <code>Atime</code> is set to NONE, <code>Mtime</code> must also be NONE.  </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OverwriteMode</i> A value that determines whether files at the destination should be overwritten or preserved when copying files. If set to <code>NEVER</code> a destination file will not be replaced by a source file, even if the destination file differs from the source file. If you modify files in the destination and you sync the files, you can use this value to protect against overwriting those changes.  Some storage classes have specific behaviors that can affect your S3 storage cost. For detailed information, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/create-s3-location.html#using-storage-classes">Considerations when working with Amazon S3 storage classes in DataSync </a> in the <i>AWS DataSync User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VerifyMode</i> A value that determines whether a data integrity verification should be performed at the end of a task execution after all data and metadata have been transferred. For more information, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/create-task.html">Configure task settings</a>.  Default value: POINT_IN_TIME_CONSISTENT. ONLY_FILES_TRANSFERRED (recommended): Perform verification only on files that were transferred.  POINT_IN_TIME_CONSISTENT: Scan the entire source and entire destination at the end of the transfer to verify that source and destination are fully synchronized. This option isn't supported when transferring to S3 Glacier or S3 Glacier Deep Archive storage classes. NONE: No additional verification is done at the end of the transfer, but all data transmissions are integrity-checked with checksum verification during the transfer.<br/>
        :return: TaskExecutionArn:  The Amazon Resource Name (ARN) of the specific task execution that was started.<br/>        """
        pass

    def tag_resource(self, Tags: List[TagListEntry], ResourceArn: str) -> TagResourceResponse:
        r"""Applies a key-value pair to an AWS resource.

        :param self:
        :param Tags:  The tags to apply.<br/>ResourceArn:  The Amazon Resource Name (ARN) of the resource to apply the tag to.<br/>
        :return:         """
        pass

    def untag_resource(self, Keys: List[TagKey], ResourceArn: str) -> UntagResourceResponse:
        r"""Removes a tag from an AWS resource.

        :param self:
        :param Keys:  The keys in the key-value pair in the tag to remove.<br/>ResourceArn:  The Amazon Resource Name (ARN) of the resource to remove the tag from.<br/>
        :return:         """
        pass

    def update_agent(self, AgentArn: str, Name: str=None) -> UpdateAgentResponse:
        r"""Updates the name of an agent.

        :param self:
        :param Name:  The name that you want to use to configure the agent.<br/>AgentArn:  The Amazon Resource Name (ARN) of the agent to update.<br/>
        :return:         """
        pass

    def update_location_nfs(self, LocationArn: str, Subdirectory: str=None, OnPremConfig: OnPremConfig=None, MountOptions: NfsMountOptions=None) -> UpdateLocationNfsResponse:
        r"""Updates some of the parameters of a previously created location for Network File System (NFS) access. For information about creating an NFS location, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/create-nfs-location.html">Creating a location for NFS</a>.

        :param self:
        :param MountOptions:  Represents the mount options that are available for DataSync to access an NFS location.:<br/>OnPremConfig:  A list of Amazon Resource Names (ARNs) of agents to use for a Network File System (NFS) location.:<br/>Subdirectory:  The subdirectory in the NFS file system that is used to read data from the NFS source location or write data to the NFS destination. The NFS path should be a path that's exported by the NFS server, or a subdirectory of that path. The path should be such that it can be mounted by other NFS clients in your network. To see all the paths exported by your NFS server, run "<code>showmount -e nfs-server-name</code>" from an NFS client that has access to your server. You can specify any directory that appears in the results, and any subdirectory of that directory. Ensure that the NFS export is accessible without Kerberos authentication.  To transfer all the data in the folder that you specified, DataSync must have permissions to read all the data. To ensure this, either configure the NFS export with <code>no_root_squash</code>, or ensure that the files you want DataSync to access have permissions that allow read access for all users. Doing either option enables the agent to read the files. For the agent to access directories, you must additionally enable all execute access. If you are copying data to or from your AWS Snowcone device, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/create-nfs-location.html#nfs-on-snowcone">NFS Server on AWS Snowcone</a> for more information. For information about NFS export configuration, see 18.7. The /etc/exports Configuration File in the Red Hat Enterprise Linux documentation.<br/>LocationArn:  The Amazon Resource Name (ARN) of the NFS location to update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AgentArns</i> ARNs of the agents to use for an NFS location.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The specific NFS version that you want DataSync to use to mount your NFS share. If the server refuses to use the version specified, the sync will fail. If you don't specify a version, DataSync defaults to <code>AUTOMATIC</code>. That is, DataSync automatically selects a version based on negotiation with the NFS server. You can specify the following NFS versions: <ul> <li>  <b> <a href="https://tools.ietf.org/html/rfc1813">NFSv3</a> </b> - stateless protocol version that allows for asynchronous writes on the server. </li> <li>  <b> <a href="https://tools.ietf.org/html/rfc3530">NFSv4.0</a> </b> - stateful, firewall-friendly protocol version that supports delegations and pseudo filesystems. </li> <li>  <b> <a href="https://tools.ietf.org/html/rfc5661">NFSv4.1</a> </b> - stateful protocol version that supports sessions, directory delegations, and parallel data processing. Version 4.1 also includes all features available in version 4.0. </li> </ul><br/>
        :return:         """
        pass

    def update_location_object_storage(self, LocationArn: str, ServerPort: int=None, ServerProtocol: str=None, Subdirectory: str=None, AccessKey: str=None, SecretKey: str=None, AgentArns: List[AgentArn]=None) -> UpdateLocationObjectStorageResponse:
        r"""Updates some of the parameters of a previously created location for self-managed object storage server access. For information about creating a self-managed object storage location, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/create-object-location.html">Creating a location for object storage</a>.

        :param self:
        :param AgentArns:  The Amazon Resource Name (ARN) of the agents associated with the self-managed object storage server location.<br/>SecretKey:  Optional. The secret key is used if credentials are required to access the self-managed object storage server. If your object storage requires a user name and password to authenticate, use <code>AccessKey</code> and <code>SecretKey</code> to provide the user name and password, respectively.<br/>AccessKey:  Optional. The access key is used if credentials are required to access the self-managed object storage server. If your object storage requires a user name and password to authenticate, use <code>AccessKey</code> and <code>SecretKey</code> to provide the user name and password, respectively.<br/>Subdirectory:  The subdirectory in the self-managed object storage server that is used to read data from.<br/>ServerProtocol:  The protocol that the object storage server uses to communicate. Valid values are <code>HTTP</code> or <code>HTTPS</code>.<br/>ServerPort:  The port that your self-managed object storage server accepts inbound network traffic on. The server port is set by default to TCP 80 (HTTP) or TCP 443 (HTTPS). You can specify a custom port if your self-managed object storage server requires one.<br/>LocationArn:  The Amazon Resource Name (ARN) of the self-managed object storage server location to be updated.<br/>
        :return:         """
        pass

    def update_location_smb(self, LocationArn: str, Subdirectory: str=None, User: str=None, Domain: str=None, Password: str=None, AgentArns: List[AgentArn]=None, MountOptions: SmbMountOptions=None) -> UpdateLocationSmbResponse:
        r"""Updates some of the parameters of a previously created location for Server Message Block (SMB) file system access. For information about creating an SMB location, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/create-smb-location.html">Creating a location for SMB</a>.

        :param self:
        :param MountOptions:  Represents the mount options that are available for DataSync to access an SMB location.:<br/>AgentArns:  The Amazon Resource Names (ARNs) of agents to use for a Simple Message Block (SMB) location.<br/>Password:  The password of the user who can mount the share has the permissions to access files and folders in the SMB share.<br/>Domain:  The name of the Windows domain that the SMB server belongs to.<br/>User:  The user who can mount the share has the permissions to access files and folders in the SMB share.<br/>Subdirectory:  The subdirectory in the SMB file system that is used to read data from the SMB source location or write data to the SMB destination. The SMB path should be a path that's exported by the SMB server, or a subdirectory of that path. The path should be such that it can be mounted by other SMB clients in your network. <note>  <code>Subdirectory</code> must be specified with forward slashes. For example, <code>/path/to/folder</code>. </note> To transfer all the data in the folder that you specified, DataSync must have permissions to mount the SMB share and to access all the data in that share. To ensure this, do either of the following: <ul> <li> Ensure that the user/password specified belongs to the user who can mount the share and who has the appropriate permissions for all of the files and directories that you want DataSync to access. </li> <li> Use credentials of a member of the Backup Operators group to mount the share.  </li> </ul> Doing either of these options enables the agent to access the data. For the agent to access directories, you must also enable all execute access.<br/>LocationArn:  The Amazon Resource Name (ARN) of the SMB location to update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The specific SMB version that you want DataSync to use to mount your SMB share. If you don't specify a version, DataSync defaults to <code>AUTOMATIC</code>. That is, DataSync automatically selects a version based on negotiation with the SMB server.<br/>
        :return:         """
        pass

    def update_task(self, TaskArn: str, Options: Options=None, Excludes: List[FilterRule]=None, Schedule: TaskSchedule=None, Name: str=None, CloudWatchLogGroupArn: str=None) -> UpdateTaskResponse:
        r"""Updates the metadata associated with a task.

        :param self:
        :param CloudWatchLogGroupArn:  The Amazon Resource Name (ARN) of the resource name of the CloudWatch LogGroup.<br/>Name:  The name of the task to update.<br/>Schedule:  Specifies a schedule used to periodically transfer files from a source to a destination location. You can configure your task to execute hourly, daily, weekly or on specific days of the week. You control when in the day or hour you want the task to execute. The time you specify is UTC time. For more information, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/task-scheduling.html">Scheduling your task</a>.:<br/>Excludes:  A list of filter rules that determines which files to exclude from a task. The list should contain a single filter string that consists of the patterns to exclude. The patterns are delimited by "|" (that is, a pipe), for example: <code>"/folder1|/folder2"</code>   <br/>Options:  Represents the options that are available to control the behavior of a <a href="https://docs.aws.amazon.com/datasync/latest/userguide/API_StartTaskExecution.html">StartTaskExecution</a> operation. Behavior includes preserving metadata such as user ID (UID), group ID (GID), and file permissions, and also overwriting files in the destination, data integrity verification, and so on. A task has a set of default options associated with it. If you don't specify an option in <a href="https://docs.aws.amazon.com/datasync/latest/userguide/API_StartTaskExecution.html">StartTaskExecution</a>, the default value is used. You can override the defaults options on each task execution by specifying an overriding <code>Options</code> value to <a href="https://docs.aws.amazon.com/datasync/latest/userguide/API_StartTaskExecution.html">StartTaskExecution</a>.:<br/>TaskArn:  The Amazon Resource Name (ARN) of the resource name of the task to update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityDescriptorCopyFlags</i> A value that determines which components of the SMB security descriptor are copied from source to destination objects.  This value is only used for transfers between SMB and Amazon FSx for Windows File Server locations, or between two Amazon FSx for Windows File Server locations. For more information about how DataSync handles metadata, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/special-files.html">How DataSync Handles Metadata and Special Files</a>.  Default value: OWNER_DACL.  <b>OWNER_DACL</b>: For each copied object, DataSync copies the following metadata: <ul> <li> Object owner. </li> <li> NTFS discretionary access control lists (DACLs), which determine whether to grant access to an object. </li> </ul> When choosing this option, DataSync does NOT copy the NTFS system access control lists (SACLs), which are used by administrators to log attempts to access a secured object.  <b>OWNER_DACL_SACL</b>: For each copied object, DataSync copies the following metadata: <ul> <li> Object owner. </li> <li> NTFS discretionary access control lists (DACLs), which determine whether to grant access to an object. </li> <li> NTFS system access control lists (SACLs), which are used by administrators to log attempts to access a secured object. </li> </ul> Copying SACLs requires granting additional permissions to the Windows user that DataSync uses to access your SMB location. For information about choosing a user that ensures sufficient permissions to files, folders, and metadata, see <a href="create-smb-location.html#SMBuser">user</a>.  <b>NONE</b>: None of the SMB security descriptor components are copied. Destination objects are owned by the user that was provided for accessing the destination location. DACLs and SACLs are set based on the destination server’s configuration. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransferMode</i> A value that determines whether DataSync transfers only the data and metadata that differ between the source and the destination location, or whether DataSync transfers all the content from the source, without comparing to the destination location.  CHANGED: DataSync copies only data or metadata that is new or different content from the source location to the destination location. ALL: DataSync copies all source location content to the destination, without comparing to existing content on the destination.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogLevel</i> A value that determines the type of logs that DataSync publishes to a log stream in the Amazon CloudWatch log group that you provide. For more information about providing a log group for DataSync, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/API_CreateTask.html#DataSync-CreateTask-request-CloudWatchLogGroupArn">CloudWatchLogGroupArn</a>. If set to <code>OFF</code>, no logs are published. <code>BASIC</code> publishes logs on errors for individual files transferred, and <code>TRANSFER</code> publishes logs for every file or object that is transferred and integrity checked.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TaskQueueing</i> A value that determines whether tasks should be queued before executing the tasks. If set to <code>ENABLED</code>, the tasks will be queued. The default is <code>ENABLED</code>. If you use the same agent to run multiple tasks, you can enable the tasks to run in series. For more information, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/run-task.html#queue-task-execution">Queueing task executions</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BytesPerSecond</i> A value that limits the bandwidth used by AWS DataSync. For example, if you want AWS DataSync to use a maximum of 1 MB, set this value to <code>1048576</code> (<code>=1024*1024</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PosixPermissions</i> A value that determines which users or groups can access a file for a specific purpose such as reading, writing, or execution of the file. This option should only be set for NFS, EFS, and S3 locations. For more information about what metadata is copied by DataSync, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/special-files.html#metadata-copied">Metadata Copied by DataSync</a>.  Default value: PRESERVE. PRESERVE: Preserve POSIX-style permissions (recommended). NONE: Ignore permissions.  <note> AWS DataSync can preserve extant permissions of a source location. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreserveDevices</i> A value that determines whether AWS DataSync should preserve the metadata of block and character devices in the source file system, and re-create the files with that device name and metadata on the destination. DataSync does not copy the contents of such devices, only the name and metadata.  <note> AWS DataSync can't sync the actual contents of such devices, because they are nonterminal and don't return an end-of-file (EOF) marker. </note> Default value: NONE. NONE: Ignore special devices (recommended).  PRESERVE: Preserve character and block device metadata. This option isn't currently supported for Amazon EFS. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreserveDeletedFiles</i> A value that specifies whether files in the destination that don't exist in the source file system should be preserved. This option can affect your storage cost. If your task deletes objects, you might incur minimum storage duration charges for certain storage classes. For detailed information, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/create-s3-location.html#using-storage-classes">Considerations when working with Amazon S3 storage classes in DataSync </a> in the <i>AWS DataSync User Guide</i>. Default value: PRESERVE. PRESERVE: Ignore such destination files (recommended).  REMOVE: Delete destination files that aren’t present in the source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Gid</i> The POSIX group ID (GID) of the file's owners. This option should only be set for NFS, EFS, and S3 locations. For more information about what metadata is copied by DataSync, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/special-files.html#metadata-copied">Metadata Copied by DataSync</a>.  Default value: INT_VALUE. This preserves the integer value of the ID. INT_VALUE: Preserve the integer value of user ID (UID) and GID (recommended). NONE: Ignore UID and GID. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Uid</i> The POSIX user ID (UID) of the file's owner. This option should only be set for NFS, EFS, and S3 locations. To learn more about what metadata is copied by DataSync, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/special-files.html#metadata-copied">Metadata Copied by DataSync</a>. Default value: INT_VALUE. This preserves the integer value of the ID. INT_VALUE: Preserve the integer value of UID and group ID (GID) (recommended). NONE: Ignore UID and GID. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Mtime</i> A value that indicates the last time that a file was modified (that is, a file was written to) before the PREPARING phase. This option is required for cases when you need to run the same task more than one time.  Default value: PRESERVE.  PRESERVE: Preserve original <code>Mtime</code> (recommended)  NONE: Ignore <code>Mtime</code>.  <note> If <code>Mtime</code> is set to PRESERVE, <code>Atime</code> must be set to BEST_EFFORT. If <code>Mtime</code> is set to NONE, <code>Atime</code> must also be set to NONE.  </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Atime</i> A file metadata value that shows the last time a file was accessed (that is, when the file was read or written to). If you set <code>Atime</code> to BEST_EFFORT, DataSync attempts to preserve the original <code>Atime</code> attribute on all source files (that is, the version before the PREPARING phase). However, <code>Atime</code>'s behavior is not fully standard across platforms, so AWS DataSync can only do this on a best-effort basis.  Default value: BEST_EFFORT. BEST_EFFORT: Attempt to preserve the per-file <code>Atime</code> value (recommended). NONE: Ignore <code>Atime</code>. <note> If <code>Atime</code> is set to BEST_EFFORT, <code>Mtime</code> must be set to PRESERVE.  If <code>Atime</code> is set to NONE, <code>Mtime</code> must also be NONE.  </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OverwriteMode</i> A value that determines whether files at the destination should be overwritten or preserved when copying files. If set to <code>NEVER</code> a destination file will not be replaced by a source file, even if the destination file differs from the source file. If you modify files in the destination and you sync the files, you can use this value to protect against overwriting those changes.  Some storage classes have specific behaviors that can affect your S3 storage cost. For detailed information, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/create-s3-location.html#using-storage-classes">Considerations when working with Amazon S3 storage classes in DataSync </a> in the <i>AWS DataSync User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VerifyMode</i> A value that determines whether a data integrity verification should be performed at the end of a task execution after all data and metadata have been transferred. For more information, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/create-task.html">Configure task settings</a>.  Default value: POINT_IN_TIME_CONSISTENT. ONLY_FILES_TRANSFERRED (recommended): Perform verification only on files that were transferred.  POINT_IN_TIME_CONSISTENT: Scan the entire source and entire destination at the end of the transfer to verify that source and destination are fully synchronized. This option isn't supported when transferring to S3 Glacier or S3 Glacier Deep Archive storage classes. NONE: No additional verification is done at the end of the transfer, but all data transmissions are integrity-checked with checksum verification during the transfer.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ScheduleExpression</i> A cron expression that specifies when AWS DataSync initiates a scheduled transfer from a source to a destination location. <br/>
        :return:         """
        pass

    def update_task_execution(self, Options: Options, TaskExecutionArn: str) -> UpdateTaskExecutionResponse:
        r"""Updates execution of a task. You can modify bandwidth throttling for a task execution that is running or queued. For more information, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/working-with-task-executions.html#adjust-bandwidth-throttling">Adjusting Bandwidth Throttling for a Task Execution</a>. <note> The only <code>Option</code> that can be modified by <code>UpdateTaskExecution</code> is <code> <a href="https://docs.aws.amazon.com/datasync/latest/userguide/API_Options.html#DataSync-Type-Options-BytesPerSecond">BytesPerSecond</a> </code>. </note>

        :param self:
        :param Options:  Represents the options that are available to control the behavior of a <a href="https://docs.aws.amazon.com/datasync/latest/userguide/API_StartTaskExecution.html">StartTaskExecution</a> operation. Behavior includes preserving metadata such as user ID (UID), group ID (GID), and file permissions, and also overwriting files in the destination, data integrity verification, and so on. A task has a set of default options associated with it. If you don't specify an option in <a href="https://docs.aws.amazon.com/datasync/latest/userguide/API_StartTaskExecution.html">StartTaskExecution</a>, the default value is used. You can override the defaults options on each task execution by specifying an overriding <code>Options</code> value to <a href="https://docs.aws.amazon.com/datasync/latest/userguide/API_StartTaskExecution.html">StartTaskExecution</a>.:<br/>TaskExecutionArn:  The Amazon Resource Name (ARN) of the specific task execution that is being updated. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityDescriptorCopyFlags</i> A value that determines which components of the SMB security descriptor are copied from source to destination objects.  This value is only used for transfers between SMB and Amazon FSx for Windows File Server locations, or between two Amazon FSx for Windows File Server locations. For more information about how DataSync handles metadata, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/special-files.html">How DataSync Handles Metadata and Special Files</a>.  Default value: OWNER_DACL.  <b>OWNER_DACL</b>: For each copied object, DataSync copies the following metadata: <ul> <li> Object owner. </li> <li> NTFS discretionary access control lists (DACLs), which determine whether to grant access to an object. </li> </ul> When choosing this option, DataSync does NOT copy the NTFS system access control lists (SACLs), which are used by administrators to log attempts to access a secured object.  <b>OWNER_DACL_SACL</b>: For each copied object, DataSync copies the following metadata: <ul> <li> Object owner. </li> <li> NTFS discretionary access control lists (DACLs), which determine whether to grant access to an object. </li> <li> NTFS system access control lists (SACLs), which are used by administrators to log attempts to access a secured object. </li> </ul> Copying SACLs requires granting additional permissions to the Windows user that DataSync uses to access your SMB location. For information about choosing a user that ensures sufficient permissions to files, folders, and metadata, see <a href="create-smb-location.html#SMBuser">user</a>.  <b>NONE</b>: None of the SMB security descriptor components are copied. Destination objects are owned by the user that was provided for accessing the destination location. DACLs and SACLs are set based on the destination server’s configuration. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransferMode</i> A value that determines whether DataSync transfers only the data and metadata that differ between the source and the destination location, or whether DataSync transfers all the content from the source, without comparing to the destination location.  CHANGED: DataSync copies only data or metadata that is new or different content from the source location to the destination location. ALL: DataSync copies all source location content to the destination, without comparing to existing content on the destination.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogLevel</i> A value that determines the type of logs that DataSync publishes to a log stream in the Amazon CloudWatch log group that you provide. For more information about providing a log group for DataSync, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/API_CreateTask.html#DataSync-CreateTask-request-CloudWatchLogGroupArn">CloudWatchLogGroupArn</a>. If set to <code>OFF</code>, no logs are published. <code>BASIC</code> publishes logs on errors for individual files transferred, and <code>TRANSFER</code> publishes logs for every file or object that is transferred and integrity checked.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TaskQueueing</i> A value that determines whether tasks should be queued before executing the tasks. If set to <code>ENABLED</code>, the tasks will be queued. The default is <code>ENABLED</code>. If you use the same agent to run multiple tasks, you can enable the tasks to run in series. For more information, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/run-task.html#queue-task-execution">Queueing task executions</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BytesPerSecond</i> A value that limits the bandwidth used by AWS DataSync. For example, if you want AWS DataSync to use a maximum of 1 MB, set this value to <code>1048576</code> (<code>=1024*1024</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PosixPermissions</i> A value that determines which users or groups can access a file for a specific purpose such as reading, writing, or execution of the file. This option should only be set for NFS, EFS, and S3 locations. For more information about what metadata is copied by DataSync, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/special-files.html#metadata-copied">Metadata Copied by DataSync</a>.  Default value: PRESERVE. PRESERVE: Preserve POSIX-style permissions (recommended). NONE: Ignore permissions.  <note> AWS DataSync can preserve extant permissions of a source location. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreserveDevices</i> A value that determines whether AWS DataSync should preserve the metadata of block and character devices in the source file system, and re-create the files with that device name and metadata on the destination. DataSync does not copy the contents of such devices, only the name and metadata.  <note> AWS DataSync can't sync the actual contents of such devices, because they are nonterminal and don't return an end-of-file (EOF) marker. </note> Default value: NONE. NONE: Ignore special devices (recommended).  PRESERVE: Preserve character and block device metadata. This option isn't currently supported for Amazon EFS. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreserveDeletedFiles</i> A value that specifies whether files in the destination that don't exist in the source file system should be preserved. This option can affect your storage cost. If your task deletes objects, you might incur minimum storage duration charges for certain storage classes. For detailed information, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/create-s3-location.html#using-storage-classes">Considerations when working with Amazon S3 storage classes in DataSync </a> in the <i>AWS DataSync User Guide</i>. Default value: PRESERVE. PRESERVE: Ignore such destination files (recommended).  REMOVE: Delete destination files that aren’t present in the source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Gid</i> The POSIX group ID (GID) of the file's owners. This option should only be set for NFS, EFS, and S3 locations. For more information about what metadata is copied by DataSync, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/special-files.html#metadata-copied">Metadata Copied by DataSync</a>.  Default value: INT_VALUE. This preserves the integer value of the ID. INT_VALUE: Preserve the integer value of user ID (UID) and GID (recommended). NONE: Ignore UID and GID. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Uid</i> The POSIX user ID (UID) of the file's owner. This option should only be set for NFS, EFS, and S3 locations. To learn more about what metadata is copied by DataSync, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/special-files.html#metadata-copied">Metadata Copied by DataSync</a>. Default value: INT_VALUE. This preserves the integer value of the ID. INT_VALUE: Preserve the integer value of UID and group ID (GID) (recommended). NONE: Ignore UID and GID. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Mtime</i> A value that indicates the last time that a file was modified (that is, a file was written to) before the PREPARING phase. This option is required for cases when you need to run the same task more than one time.  Default value: PRESERVE.  PRESERVE: Preserve original <code>Mtime</code> (recommended)  NONE: Ignore <code>Mtime</code>.  <note> If <code>Mtime</code> is set to PRESERVE, <code>Atime</code> must be set to BEST_EFFORT. If <code>Mtime</code> is set to NONE, <code>Atime</code> must also be set to NONE.  </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Atime</i> A file metadata value that shows the last time a file was accessed (that is, when the file was read or written to). If you set <code>Atime</code> to BEST_EFFORT, DataSync attempts to preserve the original <code>Atime</code> attribute on all source files (that is, the version before the PREPARING phase). However, <code>Atime</code>'s behavior is not fully standard across platforms, so AWS DataSync can only do this on a best-effort basis.  Default value: BEST_EFFORT. BEST_EFFORT: Attempt to preserve the per-file <code>Atime</code> value (recommended). NONE: Ignore <code>Atime</code>. <note> If <code>Atime</code> is set to BEST_EFFORT, <code>Mtime</code> must be set to PRESERVE.  If <code>Atime</code> is set to NONE, <code>Mtime</code> must also be NONE.  </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OverwriteMode</i> A value that determines whether files at the destination should be overwritten or preserved when copying files. If set to <code>NEVER</code> a destination file will not be replaced by a source file, even if the destination file differs from the source file. If you modify files in the destination and you sync the files, you can use this value to protect against overwriting those changes.  Some storage classes have specific behaviors that can affect your S3 storage cost. For detailed information, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/create-s3-location.html#using-storage-classes">Considerations when working with Amazon S3 storage classes in DataSync </a> in the <i>AWS DataSync User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VerifyMode</i> A value that determines whether a data integrity verification should be performed at the end of a task execution after all data and metadata have been transferred. For more information, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/create-task.html">Configure task settings</a>.  Default value: POINT_IN_TIME_CONSISTENT. ONLY_FILES_TRANSFERRED (recommended): Perform verification only on files that were transferred.  POINT_IN_TIME_CONSISTENT: Scan the entire source and entire destination at the end of the transfer to verify that source and destination are fully synchronized. This option isn't supported when transferring to S3 Glacier or S3 Glacier Deep Archive storage classes. NONE: No additional verification is done at the end of the transfer, but all data transmissions are integrity-checked with checksum verification during the transfer.<br/>
        :return:         """
        pass





class DAX(BaseClient):
    r"""DAX is a managed caching service engineered for Amazon DynamoDB. DAX dramatically speeds up database reads by caching frequently-accessed data from DynamoDB, so applications can access that data with sub-millisecond latency. You can create a DAX cluster easily, using the AWS Management Console. With a few simple modifications to your code, your application can begin taking advantage of the DAX cluster and realize significant improvements in read performance."""


    class DescribeClustersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_clusters` for valid parameters"""
            pass
    class DescribeDefaultParametersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_default_parameters` for valid parameters"""
            pass
    class DescribeEventsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_events` for valid parameters"""
            pass
    class DescribeParameterGroupsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_parameter_groups` for valid parameters"""
            pass
    class DescribeParametersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_parameters` for valid parameters"""
            pass
    class DescribeSubnetGroupsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_subnet_groups` for valid parameters"""
            pass
    class ListTagsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_tags` for valid parameters"""
            pass


    class CreateClusterRequest(Mapping):
        pass
    
    class CreateClusterResponse(Mapping):
        pass
    
    class String(object):
        pass
    
    class Tag(Mapping):
        pass
    
    class SSESpecification(Mapping):
        pass
    
    class CreateParameterGroupRequest(Mapping):
        pass
    
    class CreateParameterGroupResponse(Mapping):
        pass
    
    class CreateSubnetGroupRequest(Mapping):
        pass
    
    class CreateSubnetGroupResponse(Mapping):
        pass
    
    class DecreaseReplicationFactorRequest(Mapping):
        pass
    
    class DecreaseReplicationFactorResponse(Mapping):
        pass
    
    class DeleteClusterRequest(Mapping):
        pass
    
    class DeleteClusterResponse(Mapping):
        pass
    
    class DeleteParameterGroupRequest(Mapping):
        pass
    
    class DeleteParameterGroupResponse(Mapping):
        pass
    
    class DeleteSubnetGroupRequest(Mapping):
        pass
    
    class DeleteSubnetGroupResponse(Mapping):
        pass
    
    class DescribeClustersRequest(Mapping):
        pass
    
    class DescribeClustersResponse(Mapping):
        pass
    
    class DescribeDefaultParametersRequest(Mapping):
        pass
    
    class DescribeDefaultParametersResponse(Mapping):
        pass
    
    class DescribeEventsRequest(Mapping):
        pass
    
    class DescribeEventsResponse(Mapping):
        pass
    
    class TStamp(object):
        pass
    
    class DescribeParameterGroupsRequest(Mapping):
        pass
    
    class DescribeParameterGroupsResponse(Mapping):
        pass
    
    class DescribeParametersRequest(Mapping):
        pass
    
    class DescribeParametersResponse(Mapping):
        pass
    
    class DescribeSubnetGroupsRequest(Mapping):
        pass
    
    class DescribeSubnetGroupsResponse(Mapping):
        pass
    
    class IncreaseReplicationFactorRequest(Mapping):
        pass
    
    class IncreaseReplicationFactorResponse(Mapping):
        pass
    
    class ListTagsRequest(Mapping):
        pass
    
    class ListTagsResponse(Mapping):
        pass
    
    class RebootNodeRequest(Mapping):
        pass
    
    class RebootNodeResponse(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class UpdateClusterRequest(Mapping):
        pass
    
    class UpdateClusterResponse(Mapping):
        pass
    
    class UpdateParameterGroupRequest(Mapping):
        pass
    
    class UpdateParameterGroupResponse(Mapping):
        pass
    
    class ParameterNameValue(Mapping):
        pass
    
    class UpdateSubnetGroupRequest(Mapping):
        pass
    
    class UpdateSubnetGroupResponse(Mapping):
        pass
    
    def create_cluster(self, IamRoleArn: str, ReplicationFactor: int, NodeType: str, ClusterName: str, Description: str=None, AvailabilityZones: List[String]=None, SubnetGroupName: str=None, SecurityGroupIds: List[String]=None, PreferredMaintenanceWindow: str=None, NotificationTopicArn: str=None, ParameterGroupName: str=None, Tags: List[Tag]=None, SSESpecification: SSESpecification=None, ClusterEndpointEncryptionType: str=None) -> CreateClusterResponse:
        r"""Creates a DAX cluster. All nodes in the cluster run the same DAX caching software.

        :param self:
        :param ClusterEndpointEncryptionType:  The type of encryption the cluster's endpoint should support. Values are: <ul> <li>  <code>NONE</code> for no encryption </li> <li>  <code>TLS</code> for Transport Layer Security </li> </ul><br/>SSESpecification:  Represents the settings used to enable server-side encryption on the cluster.:<br/>Tags:  A set of tags to associate with the DAX cluster. <br/>ParameterGroupName:  The parameter group to be associated with the DAX cluster.<br/>IamRoleArn:  A valid Amazon Resource Name (ARN) that identifies an IAM role. At runtime, DAX will assume this role and use the role's permissions to access DynamoDB on your behalf.<br/>NotificationTopicArn:  The Amazon Resource Name (ARN) of the Amazon SNS topic to which notifications will be sent. <note> The Amazon SNS topic owner must be same as the DAX cluster owner. </note><br/>PreferredMaintenanceWindow:  Specifies the weekly time range during which maintenance on the DAX cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period. Valid values for <code>ddd</code> are: <ul> <li>  <code>sun</code>  </li> <li>  <code>mon</code>  </li> <li>  <code>tue</code>  </li> <li>  <code>wed</code>  </li> <li>  <code>thu</code>  </li> <li>  <code>fri</code>  </li> <li>  <code>sat</code>  </li> </ul> Example: <code>sun:05:00-sun:09:00</code>  <note> If you don't specify a preferred maintenance window when you create or modify a cache cluster, DAX assigns a 60-minute maintenance window on a randomly selected day of the week. </note><br/>SecurityGroupIds:  A list of security group IDs to be assigned to each node in the DAX cluster. (Each of the security group ID is system-generated.) If this parameter is not specified, DAX assigns the default VPC security group to each node.<br/>SubnetGroupName:  The name of the subnet group to be used for the replication group. <important> DAX clusters can only run in an Amazon VPC environment. All of the subnets that you specify in a subnet group must exist in the same VPC. </important><br/>AvailabilityZones:  The Availability Zones (AZs) in which the cluster nodes will reside after the cluster has been created or updated. If provided, the length of this list must equal the <code>ReplicationFactor</code> parameter. If you omit this parameter, DAX will spread the nodes across Availability Zones for the highest availability.<br/>ReplicationFactor:  The number of nodes in the DAX cluster. A replication factor of 1 will create a single-node cluster, without any read replicas. For additional fault tolerance, you can create a multiple node cluster with one or more read replicas. To do this, set <code>ReplicationFactor</code> to a number between 3 (one primary and two read replicas) and 10 (one primary and nine read replicas). <code>If the AvailabilityZones</code> parameter is provided, its length must equal the <code>ReplicationFactor</code>. <note> AWS recommends that you have at least two read replicas per cluster. </note><br/>Description:  A description of the cluster.<br/>NodeType:  The compute and memory capacity of the nodes in the cluster.<br/>ClusterName:  The cluster identifier. This parameter is stored as a lowercase string.  <b>Constraints:</b>  <ul> <li> A name must contain from 1 to 20 alphanumeric characters or hyphens. </li> <li> The first character must be a letter. </li> <li> A name cannot end with a hyphen or contain two consecutive hyphens. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Indicates whether server-side encryption is enabled (true) or disabled (false) on the cluster.<br/>
        :return: Cluster:  A description of the DAX cluster that you have created.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterEndpointEncryptionType</i> The type of encryption supported by the cluster's endpoint. Values are: <ul> <li>  <code>NONE</code> for no encryption  <code>TLS</code> for Transport Layer Security </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SSEDescription</i> The description of the server-side encryption status on the specified DAX cluster.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SSEDescription</b>: The description of the server-side encryption status on the specified DAX cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ParameterGroup</i> The parameter group being used by nodes in the cluster.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ParameterGroup</b>: The parameter group being used by nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IamRoleArn</i> A valid Amazon Resource Name (ARN) that identifies an IAM role. At runtime, DAX will assume this role and use the role's permissions to access DynamoDB on your behalf.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroups</i> A list of security groups, and the status of each, for the nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetGroup</i> The subnet group where the DAX cluster is running.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NotificationConfiguration</i> Describes a notification topic and its status. Notification topics are used for publishing DAX events to subscribers using Amazon Simple Notification Service (SNS).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>NotificationConfiguration</b>: Describes a notification topic and its status. Notification topics are used for publishing DAX events to subscribers using Amazon Simple Notification Service (SNS).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i> A range of time when maintenance of DAX cluster software will be performed. For example: <code>sun:01:00-sun:09:00</code>. Cluster maintenance normally takes less than 30 minutes, and is performed automatically within the maintenance window.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Nodes</i> A list of nodes that are currently in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NodeIdsToRemove</i> A list of nodes to be removed from the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterDiscoveryEndpoint</i> The endpoint for this DAX cluster, consisting of a DNS name, a port number, and a URL. Applications should use the URL to configure the DAX client to find their cluster.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ClusterDiscoveryEndpoint</b>: The endpoint for this DAX cluster, consisting of a DNS name, a port number, and a URL. Applications should use the URL to configure the DAX client to find their cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current status of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NodeType</i> The node type for the nodes in the cluster. (All nodes in a DAX cluster are of the same type.)<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActiveNodes</i> The number of nodes in the cluster that are active (i.e., capable of serving requests).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalNodes</i> The total number of nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterArn</i> The Amazon Resource Name (ARN) that uniquely identifies the cluster. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterName</i> The name of the DAX cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>URL</i> The URL that applications should use to connect to the endpoint. The default ports are 8111 for the "dax" protocol and 9111 for the "daxs" protocol.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> The port number that applications should use to connect to the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Address</i> The DNS hostname of the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TopicStatus</i> The current state of the topic. A value of “active” means that notifications will be sent to the topic. A value of “inactive” means that notifications will not be sent to the topic.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TopicArn</i> The Amazon Resource Name (ARN) that identifies the topic. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NodeIdsToReboot</i> The node IDs of one or more nodes to be rebooted.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ParameterApplyStatus</i> The status of parameter updates. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ParameterGroupName</i> The name of the parameter group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current state of server-side encryption: <ul> <li>  <code>ENABLING</code> - Server-side encryption is being enabled. </li> <li>  <code>ENABLED</code> - Server-side encryption is enabled. </li> <li>  <code>DISABLING</code> - Server-side encryption is being disabled. </li> <li>  <code>DISABLED</code> - Server-side encryption is disabled. </li> </ul><br/>        """
        pass

    def create_parameter_group(self, ParameterGroupName: str, Description: str=None) -> CreateParameterGroupResponse:
        r"""Creates a new parameter group. A parameter group is a collection of parameters that you apply to all of the nodes in a DAX cluster.

        :param self:
        :param Description:  A description of the parameter group.<br/>ParameterGroupName:  The name of the parameter group to apply to all of the clusters in this replication group.<br/>
        :return: ParameterGroup:  Represents the output of a <i>CreateParameterGroup</i> action.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A description of the parameter group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ParameterGroupName</i> The name of the parameter group.<br/>        """
        pass

    def create_subnet_group(self, SubnetIds: List[String], SubnetGroupName: str, Description: str=None) -> CreateSubnetGroupResponse:
        r"""Creates a new subnet group.

        :param self:
        :param SubnetIds:  A list of VPC subnet IDs for the subnet group.<br/>Description:  A description for the subnet group<br/>SubnetGroupName:  A name for the subnet group. This value is stored as a lowercase string. <br/>
        :return: SubnetGroup:  Represents the output of a <i>CreateSubnetGroup</i> operation.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Subnets</i> A list of subnets associated with the subnet group. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The Amazon Virtual Private Cloud identifier (VPC ID) of the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetGroupName</i> The name of the subnet group.<br/>        """
        pass

    def decrease_replication_factor(self, NewReplicationFactor: int, ClusterName: str, AvailabilityZones: List[String]=None, NodeIdsToRemove: List[String]=None) -> DecreaseReplicationFactorResponse:
        r"""Removes one or more nodes from a DAX cluster. <note> You cannot use <code>DecreaseReplicationFactor</code> to remove the last node in a DAX cluster. If you need to do this, use <code>DeleteCluster</code> instead. </note>

        :param self:
        :param NodeIdsToRemove:  The unique identifiers of the nodes to be removed from the cluster.<br/>AvailabilityZones:  The Availability Zone(s) from which to remove nodes.<br/>NewReplicationFactor:  The new number of nodes for the DAX cluster.<br/>ClusterName:  The name of the DAX cluster from which you want to remove nodes.<br/>
        :return: Cluster:  A description of the DAX cluster, after you have decreased its replication factor.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterEndpointEncryptionType</i> The type of encryption supported by the cluster's endpoint. Values are: <ul> <li>  <code>NONE</code> for no encryption  <code>TLS</code> for Transport Layer Security </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SSEDescription</i> The description of the server-side encryption status on the specified DAX cluster.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SSEDescription</b>: The description of the server-side encryption status on the specified DAX cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ParameterGroup</i> The parameter group being used by nodes in the cluster.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ParameterGroup</b>: The parameter group being used by nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IamRoleArn</i> A valid Amazon Resource Name (ARN) that identifies an IAM role. At runtime, DAX will assume this role and use the role's permissions to access DynamoDB on your behalf.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroups</i> A list of security groups, and the status of each, for the nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetGroup</i> The subnet group where the DAX cluster is running.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NotificationConfiguration</i> Describes a notification topic and its status. Notification topics are used for publishing DAX events to subscribers using Amazon Simple Notification Service (SNS).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>NotificationConfiguration</b>: Describes a notification topic and its status. Notification topics are used for publishing DAX events to subscribers using Amazon Simple Notification Service (SNS).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i> A range of time when maintenance of DAX cluster software will be performed. For example: <code>sun:01:00-sun:09:00</code>. Cluster maintenance normally takes less than 30 minutes, and is performed automatically within the maintenance window.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Nodes</i> A list of nodes that are currently in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NodeIdsToRemove</i> A list of nodes to be removed from the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterDiscoveryEndpoint</i> The endpoint for this DAX cluster, consisting of a DNS name, a port number, and a URL. Applications should use the URL to configure the DAX client to find their cluster.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ClusterDiscoveryEndpoint</b>: The endpoint for this DAX cluster, consisting of a DNS name, a port number, and a URL. Applications should use the URL to configure the DAX client to find their cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current status of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NodeType</i> The node type for the nodes in the cluster. (All nodes in a DAX cluster are of the same type.)<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActiveNodes</i> The number of nodes in the cluster that are active (i.e., capable of serving requests).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalNodes</i> The total number of nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterArn</i> The Amazon Resource Name (ARN) that uniquely identifies the cluster. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterName</i> The name of the DAX cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>URL</i> The URL that applications should use to connect to the endpoint. The default ports are 8111 for the "dax" protocol and 9111 for the "daxs" protocol.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> The port number that applications should use to connect to the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Address</i> The DNS hostname of the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TopicStatus</i> The current state of the topic. A value of “active” means that notifications will be sent to the topic. A value of “inactive” means that notifications will not be sent to the topic.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TopicArn</i> The Amazon Resource Name (ARN) that identifies the topic. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NodeIdsToReboot</i> The node IDs of one or more nodes to be rebooted.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ParameterApplyStatus</i> The status of parameter updates. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ParameterGroupName</i> The name of the parameter group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current state of server-side encryption: <ul> <li>  <code>ENABLING</code> - Server-side encryption is being enabled. </li> <li>  <code>ENABLED</code> - Server-side encryption is enabled. </li> <li>  <code>DISABLING</code> - Server-side encryption is being disabled. </li> <li>  <code>DISABLED</code> - Server-side encryption is disabled. </li> </ul><br/>        """
        pass

    def delete_cluster(self, ClusterName: str) -> DeleteClusterResponse:
        r"""Deletes a previously provisioned DAX cluster. <i>DeleteCluster</i> deletes all associated nodes, node endpoints and the DAX cluster itself. When you receive a successful response from this action, DAX immediately begins deleting the cluster; you cannot cancel or revert this action.

        :param self:
        :param ClusterName:  The name of the cluster to be deleted.<br/>
        :return: Cluster:  A description of the DAX cluster that is being deleted.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterEndpointEncryptionType</i> The type of encryption supported by the cluster's endpoint. Values are: <ul> <li>  <code>NONE</code> for no encryption  <code>TLS</code> for Transport Layer Security </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SSEDescription</i> The description of the server-side encryption status on the specified DAX cluster.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SSEDescription</b>: The description of the server-side encryption status on the specified DAX cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ParameterGroup</i> The parameter group being used by nodes in the cluster.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ParameterGroup</b>: The parameter group being used by nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IamRoleArn</i> A valid Amazon Resource Name (ARN) that identifies an IAM role. At runtime, DAX will assume this role and use the role's permissions to access DynamoDB on your behalf.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroups</i> A list of security groups, and the status of each, for the nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetGroup</i> The subnet group where the DAX cluster is running.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NotificationConfiguration</i> Describes a notification topic and its status. Notification topics are used for publishing DAX events to subscribers using Amazon Simple Notification Service (SNS).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>NotificationConfiguration</b>: Describes a notification topic and its status. Notification topics are used for publishing DAX events to subscribers using Amazon Simple Notification Service (SNS).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i> A range of time when maintenance of DAX cluster software will be performed. For example: <code>sun:01:00-sun:09:00</code>. Cluster maintenance normally takes less than 30 minutes, and is performed automatically within the maintenance window.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Nodes</i> A list of nodes that are currently in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NodeIdsToRemove</i> A list of nodes to be removed from the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterDiscoveryEndpoint</i> The endpoint for this DAX cluster, consisting of a DNS name, a port number, and a URL. Applications should use the URL to configure the DAX client to find their cluster.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ClusterDiscoveryEndpoint</b>: The endpoint for this DAX cluster, consisting of a DNS name, a port number, and a URL. Applications should use the URL to configure the DAX client to find their cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current status of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NodeType</i> The node type for the nodes in the cluster. (All nodes in a DAX cluster are of the same type.)<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActiveNodes</i> The number of nodes in the cluster that are active (i.e., capable of serving requests).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalNodes</i> The total number of nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterArn</i> The Amazon Resource Name (ARN) that uniquely identifies the cluster. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterName</i> The name of the DAX cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>URL</i> The URL that applications should use to connect to the endpoint. The default ports are 8111 for the "dax" protocol and 9111 for the "daxs" protocol.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> The port number that applications should use to connect to the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Address</i> The DNS hostname of the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TopicStatus</i> The current state of the topic. A value of “active” means that notifications will be sent to the topic. A value of “inactive” means that notifications will not be sent to the topic.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TopicArn</i> The Amazon Resource Name (ARN) that identifies the topic. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NodeIdsToReboot</i> The node IDs of one or more nodes to be rebooted.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ParameterApplyStatus</i> The status of parameter updates. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ParameterGroupName</i> The name of the parameter group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current state of server-side encryption: <ul> <li>  <code>ENABLING</code> - Server-side encryption is being enabled. </li> <li>  <code>ENABLED</code> - Server-side encryption is enabled. </li> <li>  <code>DISABLING</code> - Server-side encryption is being disabled. </li> <li>  <code>DISABLED</code> - Server-side encryption is disabled. </li> </ul><br/>        """
        pass

    def delete_parameter_group(self, ParameterGroupName: str) -> DeleteParameterGroupResponse:
        r"""Deletes the specified parameter group. You cannot delete a parameter group if it is associated with any DAX clusters.

        :param self:
        :param ParameterGroupName:  The name of the parameter group to delete.<br/>
        :return: DeletionMessage:  A user-specified message for this action (i.e., a reason for deleting the parameter group).<br/>        """
        pass

    def delete_subnet_group(self, SubnetGroupName: str) -> DeleteSubnetGroupResponse:
        r"""Deletes a subnet group. <note> You cannot delete a subnet group if it is associated with any DAX clusters. </note>

        :param self:
        :param SubnetGroupName:  The name of the subnet group to delete.<br/>
        :return: DeletionMessage:  A user-specified message for this action (i.e., a reason for deleting the subnet group).<br/>        """
        pass

    def describe_clusters(self, ClusterNames: List[String]=None, MaxResults: int=None, NextToken: str=None) -> DescribeClustersResponse:
        r"""Returns information about all provisioned DAX clusters if no cluster identifier is specified, or about a specific DAX cluster if a cluster identifier is supplied. If the cluster is in the CREATING state, only cluster level information will be displayed until all of the nodes are successfully provisioned. If the cluster is in the DELETING state, only cluster level information will be displayed. If nodes are currently being added to the DAX cluster, node endpoint information and creation time for the additional nodes will not be displayed until they are completely provisioned. When the DAX cluster state is <i>available</i>, the cluster is ready for use. If nodes are currently being removed from the DAX cluster, no endpoint information for the removed nodes is displayed.

        :param self:
        :param NextToken:  An optional token returned from a prior request. Use this token for pagination of results from this action. If this parameter is specified, the response includes only results beyond the token, up to the value specified by <code>MaxResults</code>.<br/>MaxResults:  The maximum number of results to include in the response. If more results exist than the specified <code>MaxResults</code> value, a token is included in the response so that the remaining results can be retrieved. The value for <code>MaxResults</code> must be between 20 and 100.<br/>ClusterNames:  The names of the DAX clusters being described.<br/>
        :return: Clusters:  The descriptions of your DAX clusters, in response to a <i>DescribeClusters</i> request.<br/>NextToken:  Provides an identifier to allow retrieval of paginated results.<br/>        """
        pass

    def describe_default_parameters(self, MaxResults: int=None, NextToken: str=None) -> DescribeDefaultParametersResponse:
        r"""Returns the default system parameter information for the DAX caching software.

        :param self:
        :param NextToken:  An optional token returned from a prior request. Use this token for pagination of results from this action. If this parameter is specified, the response includes only results beyond the token, up to the value specified by <code>MaxResults</code>.<br/>MaxResults:  The maximum number of results to include in the response. If more results exist than the specified <code>MaxResults</code> value, a token is included in the response so that the remaining results can be retrieved. The value for <code>MaxResults</code> must be between 20 and 100.<br/>
        :return: Parameters:  A list of parameters. Each element in the list represents one parameter.<br/>NextToken:  Provides an identifier to allow retrieval of paginated results.<br/>        """
        pass

    def describe_events(self, SourceName: str=None, SourceType: str=None, StartTime: TStamp=None, EndTime: TStamp=None, Duration: int=None, MaxResults: int=None, NextToken: str=None) -> DescribeEventsResponse:
        r"""Returns events related to DAX clusters and parameter groups. You can obtain events specific to a particular DAX cluster or parameter group by providing the name as a parameter. By default, only the events occurring within the last 24 hours are returned; however, you can retrieve up to 14 days' worth of events if necessary.

        :param self:
        :param NextToken:  An optional token returned from a prior request. Use this token for pagination of results from this action. If this parameter is specified, the response includes only results beyond the token, up to the value specified by <code>MaxResults</code>.<br/>MaxResults:  The maximum number of results to include in the response. If more results exist than the specified <code>MaxResults</code> value, a token is included in the response so that the remaining results can be retrieved. The value for <code>MaxResults</code> must be between 20 and 100.<br/>Duration:  The number of minutes' worth of events to retrieve.<br/>EndTime:  The end of the time interval for which to retrieve events, specified in ISO 8601 format.<br/>StartTime:  The beginning of the time interval to retrieve events for, specified in ISO 8601 format.<br/>SourceType:  The event source to retrieve events for. If no value is specified, all events are returned.<br/>SourceName:  The identifier of the event source for which events will be returned. If not specified, then all sources are included in the response.<br/>
        :return: Events:  An array of events. Each element in the array represents one event.<br/>NextToken:  Provides an identifier to allow retrieval of paginated results.<br/>        """
        pass

    def describe_parameter_groups(self, ParameterGroupNames: List[String]=None, MaxResults: int=None, NextToken: str=None) -> DescribeParameterGroupsResponse:
        r"""Returns a list of parameter group descriptions. If a parameter group name is specified, the list will contain only the descriptions for that group.

        :param self:
        :param NextToken:  An optional token returned from a prior request. Use this token for pagination of results from this action. If this parameter is specified, the response includes only results beyond the token, up to the value specified by <code>MaxResults</code>.<br/>MaxResults:  The maximum number of results to include in the response. If more results exist than the specified <code>MaxResults</code> value, a token is included in the response so that the remaining results can be retrieved. The value for <code>MaxResults</code> must be between 20 and 100.<br/>ParameterGroupNames:  The names of the parameter groups.<br/>
        :return: ParameterGroups:  An array of parameter groups. Each element in the array represents one parameter group.<br/>NextToken:  Provides an identifier to allow retrieval of paginated results.<br/>        """
        pass

    def describe_parameters(self, ParameterGroupName: str, Source: str=None, MaxResults: int=None, NextToken: str=None) -> DescribeParametersResponse:
        r"""Returns the detailed parameter list for a particular parameter group.

        :param self:
        :param NextToken:  An optional token returned from a prior request. Use this token for pagination of results from this action. If this parameter is specified, the response includes only results beyond the token, up to the value specified by <code>MaxResults</code>.<br/>MaxResults:  The maximum number of results to include in the response. If more results exist than the specified <code>MaxResults</code> value, a token is included in the response so that the remaining results can be retrieved. The value for <code>MaxResults</code> must be between 20 and 100.<br/>Source:  How the parameter is defined. For example, <code>system</code> denotes a system-defined parameter.<br/>ParameterGroupName:  The name of the parameter group.<br/>
        :return: Parameters:  A list of parameters within a parameter group. Each element in the list represents one parameter.<br/>NextToken:  Provides an identifier to allow retrieval of paginated results.<br/>        """
        pass

    def describe_subnet_groups(self, SubnetGroupNames: List[String]=None, MaxResults: int=None, NextToken: str=None) -> DescribeSubnetGroupsResponse:
        r"""Returns a list of subnet group descriptions. If a subnet group name is specified, the list will contain only the description of that group.

        :param self:
        :param NextToken:  An optional token returned from a prior request. Use this token for pagination of results from this action. If this parameter is specified, the response includes only results beyond the token, up to the value specified by <code>MaxResults</code>.<br/>MaxResults:  The maximum number of results to include in the response. If more results exist than the specified <code>MaxResults</code> value, a token is included in the response so that the remaining results can be retrieved. The value for <code>MaxResults</code> must be between 20 and 100.<br/>SubnetGroupNames:  The name of the subnet group.<br/>
        :return: SubnetGroups:  An array of subnet groups. Each element in the array represents a single subnet group.<br/>NextToken:  Provides an identifier to allow retrieval of paginated results.<br/>        """
        pass

    def increase_replication_factor(self, NewReplicationFactor: int, ClusterName: str, AvailabilityZones: List[String]=None) -> IncreaseReplicationFactorResponse:
        r"""Adds one or more nodes to a DAX cluster.

        :param self:
        :param AvailabilityZones:  The Availability Zones (AZs) in which the cluster nodes will be created. All nodes belonging to the cluster are placed in these Availability Zones. Use this parameter if you want to distribute the nodes across multiple AZs.<br/>NewReplicationFactor:  The new number of nodes for the DAX cluster.<br/>ClusterName:  The name of the DAX cluster that will receive additional nodes.<br/>
        :return: Cluster:  A description of the DAX cluster. with its new replication factor.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterEndpointEncryptionType</i> The type of encryption supported by the cluster's endpoint. Values are: <ul> <li>  <code>NONE</code> for no encryption  <code>TLS</code> for Transport Layer Security </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SSEDescription</i> The description of the server-side encryption status on the specified DAX cluster.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SSEDescription</b>: The description of the server-side encryption status on the specified DAX cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ParameterGroup</i> The parameter group being used by nodes in the cluster.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ParameterGroup</b>: The parameter group being used by nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IamRoleArn</i> A valid Amazon Resource Name (ARN) that identifies an IAM role. At runtime, DAX will assume this role and use the role's permissions to access DynamoDB on your behalf.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroups</i> A list of security groups, and the status of each, for the nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetGroup</i> The subnet group where the DAX cluster is running.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NotificationConfiguration</i> Describes a notification topic and its status. Notification topics are used for publishing DAX events to subscribers using Amazon Simple Notification Service (SNS).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>NotificationConfiguration</b>: Describes a notification topic and its status. Notification topics are used for publishing DAX events to subscribers using Amazon Simple Notification Service (SNS).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i> A range of time when maintenance of DAX cluster software will be performed. For example: <code>sun:01:00-sun:09:00</code>. Cluster maintenance normally takes less than 30 minutes, and is performed automatically within the maintenance window.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Nodes</i> A list of nodes that are currently in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NodeIdsToRemove</i> A list of nodes to be removed from the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterDiscoveryEndpoint</i> The endpoint for this DAX cluster, consisting of a DNS name, a port number, and a URL. Applications should use the URL to configure the DAX client to find their cluster.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ClusterDiscoveryEndpoint</b>: The endpoint for this DAX cluster, consisting of a DNS name, a port number, and a URL. Applications should use the URL to configure the DAX client to find their cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current status of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NodeType</i> The node type for the nodes in the cluster. (All nodes in a DAX cluster are of the same type.)<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActiveNodes</i> The number of nodes in the cluster that are active (i.e., capable of serving requests).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalNodes</i> The total number of nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterArn</i> The Amazon Resource Name (ARN) that uniquely identifies the cluster. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterName</i> The name of the DAX cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>URL</i> The URL that applications should use to connect to the endpoint. The default ports are 8111 for the "dax" protocol and 9111 for the "daxs" protocol.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> The port number that applications should use to connect to the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Address</i> The DNS hostname of the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TopicStatus</i> The current state of the topic. A value of “active” means that notifications will be sent to the topic. A value of “inactive” means that notifications will not be sent to the topic.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TopicArn</i> The Amazon Resource Name (ARN) that identifies the topic. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NodeIdsToReboot</i> The node IDs of one or more nodes to be rebooted.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ParameterApplyStatus</i> The status of parameter updates. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ParameterGroupName</i> The name of the parameter group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current state of server-side encryption: <ul> <li>  <code>ENABLING</code> - Server-side encryption is being enabled. </li> <li>  <code>ENABLED</code> - Server-side encryption is enabled. </li> <li>  <code>DISABLING</code> - Server-side encryption is being disabled. </li> <li>  <code>DISABLED</code> - Server-side encryption is disabled. </li> </ul><br/>        """
        pass

    def list_tags(self, ResourceName: str, NextToken: str=None) -> ListTagsResponse:
        r"""List all of the tags for a DAX cluster. You can call <code>ListTags</code> up to 10 times per second, per account.

        :param self:
        :param NextToken:  An optional token returned from a prior request. Use this token for pagination of results from this action. If this parameter is specified, the response includes only results beyond the token.<br/>ResourceName:  The name of the DAX resource to which the tags belong.<br/>
        :return: NextToken:  If this value is present, there are additional results to be displayed. To retrieve them, call <code>ListTags</code> again, with <code>NextToken</code> set to this value.<br/>Tags:  A list of tags currently associated with the DAX cluster.<br/>        """
        pass

    def reboot_node(self, NodeId: str, ClusterName: str) -> RebootNodeResponse:
        r"""Reboots a single node of a DAX cluster. The reboot action takes place as soon as possible. During the reboot, the node status is set to REBOOTING. <note>  <code>RebootNode</code> restarts the DAX engine process and does not remove the contents of the cache.  </note>

        :param self:
        :param NodeId:  The system-assigned ID of the node to be rebooted.<br/>ClusterName:  The name of the DAX cluster containing the node to be rebooted.<br/>
        :return: Cluster:  A description of the DAX cluster after a node has been rebooted.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterEndpointEncryptionType</i> The type of encryption supported by the cluster's endpoint. Values are: <ul> <li>  <code>NONE</code> for no encryption  <code>TLS</code> for Transport Layer Security </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SSEDescription</i> The description of the server-side encryption status on the specified DAX cluster.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SSEDescription</b>: The description of the server-side encryption status on the specified DAX cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ParameterGroup</i> The parameter group being used by nodes in the cluster.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ParameterGroup</b>: The parameter group being used by nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IamRoleArn</i> A valid Amazon Resource Name (ARN) that identifies an IAM role. At runtime, DAX will assume this role and use the role's permissions to access DynamoDB on your behalf.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroups</i> A list of security groups, and the status of each, for the nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetGroup</i> The subnet group where the DAX cluster is running.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NotificationConfiguration</i> Describes a notification topic and its status. Notification topics are used for publishing DAX events to subscribers using Amazon Simple Notification Service (SNS).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>NotificationConfiguration</b>: Describes a notification topic and its status. Notification topics are used for publishing DAX events to subscribers using Amazon Simple Notification Service (SNS).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i> A range of time when maintenance of DAX cluster software will be performed. For example: <code>sun:01:00-sun:09:00</code>. Cluster maintenance normally takes less than 30 minutes, and is performed automatically within the maintenance window.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Nodes</i> A list of nodes that are currently in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NodeIdsToRemove</i> A list of nodes to be removed from the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterDiscoveryEndpoint</i> The endpoint for this DAX cluster, consisting of a DNS name, a port number, and a URL. Applications should use the URL to configure the DAX client to find their cluster.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ClusterDiscoveryEndpoint</b>: The endpoint for this DAX cluster, consisting of a DNS name, a port number, and a URL. Applications should use the URL to configure the DAX client to find their cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current status of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NodeType</i> The node type for the nodes in the cluster. (All nodes in a DAX cluster are of the same type.)<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActiveNodes</i> The number of nodes in the cluster that are active (i.e., capable of serving requests).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalNodes</i> The total number of nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterArn</i> The Amazon Resource Name (ARN) that uniquely identifies the cluster. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterName</i> The name of the DAX cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>URL</i> The URL that applications should use to connect to the endpoint. The default ports are 8111 for the "dax" protocol and 9111 for the "daxs" protocol.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> The port number that applications should use to connect to the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Address</i> The DNS hostname of the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TopicStatus</i> The current state of the topic. A value of “active” means that notifications will be sent to the topic. A value of “inactive” means that notifications will not be sent to the topic.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TopicArn</i> The Amazon Resource Name (ARN) that identifies the topic. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NodeIdsToReboot</i> The node IDs of one or more nodes to be rebooted.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ParameterApplyStatus</i> The status of parameter updates. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ParameterGroupName</i> The name of the parameter group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current state of server-side encryption: <ul> <li>  <code>ENABLING</code> - Server-side encryption is being enabled. </li> <li>  <code>ENABLED</code> - Server-side encryption is enabled. </li> <li>  <code>DISABLING</code> - Server-side encryption is being disabled. </li> <li>  <code>DISABLED</code> - Server-side encryption is disabled. </li> </ul><br/>        """
        pass

    def tag_resource(self, Tags: List[Tag], ResourceName: str) -> TagResourceResponse:
        r"""Associates a set of tags with a DAX resource. You can call <code>TagResource</code> up to 5 times per second, per account. 

        :param self:
        :param Tags:  The tags to be assigned to the DAX resource. <br/>ResourceName:  The name of the DAX resource to which tags should be added.<br/>
        :return: Tags:  The list of tags that are associated with the DAX resource.<br/>        """
        pass

    def untag_resource(self, TagKeys: List[String], ResourceName: str) -> UntagResourceResponse:
        r"""Removes the association of tags from a DAX resource. You can call <code>UntagResource</code> up to 5 times per second, per account. 

        :param self:
        :param TagKeys:  A list of tag keys. If the DAX cluster has any tags with these keys, then the tags are removed from the cluster.<br/>ResourceName:  The name of the DAX resource from which the tags should be removed.<br/>
        :return: Tags:  The tag keys that have been removed from the cluster.<br/>        """
        pass

    def update_cluster(self, ClusterName: str, Description: str=None, PreferredMaintenanceWindow: str=None, NotificationTopicArn: str=None, NotificationTopicStatus: str=None, ParameterGroupName: str=None, SecurityGroupIds: List[String]=None) -> UpdateClusterResponse:
        r"""Modifies the settings for a DAX cluster. You can use this action to change one or more cluster configuration parameters by specifying the parameters and the new values.

        :param self:
        :param SecurityGroupIds:  A list of user-specified security group IDs to be assigned to each node in the DAX cluster. If this parameter is not specified, DAX assigns the default VPC security group to each node.<br/>ParameterGroupName:  The name of a parameter group for this cluster.<br/>NotificationTopicStatus:  The current state of the topic. A value of “active” means that notifications will be sent to the topic. A value of “inactive” means that notifications will not be sent to the topic.<br/>NotificationTopicArn:  The Amazon Resource Name (ARN) that identifies the topic.<br/>PreferredMaintenanceWindow:  A range of time when maintenance of DAX cluster software will be performed. For example: <code>sun:01:00-sun:09:00</code>. Cluster maintenance normally takes less than 30 minutes, and is performed automatically within the maintenance window.<br/>Description:  A description of the changes being made to the cluster.<br/>ClusterName:  The name of the DAX cluster to be modified.<br/>
        :return: Cluster:  A description of the DAX cluster, after it has been modified.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterEndpointEncryptionType</i> The type of encryption supported by the cluster's endpoint. Values are: <ul> <li>  <code>NONE</code> for no encryption  <code>TLS</code> for Transport Layer Security </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SSEDescription</i> The description of the server-side encryption status on the specified DAX cluster.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SSEDescription</b>: The description of the server-side encryption status on the specified DAX cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ParameterGroup</i> The parameter group being used by nodes in the cluster.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ParameterGroup</b>: The parameter group being used by nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IamRoleArn</i> A valid Amazon Resource Name (ARN) that identifies an IAM role. At runtime, DAX will assume this role and use the role's permissions to access DynamoDB on your behalf.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroups</i> A list of security groups, and the status of each, for the nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetGroup</i> The subnet group where the DAX cluster is running.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NotificationConfiguration</i> Describes a notification topic and its status. Notification topics are used for publishing DAX events to subscribers using Amazon Simple Notification Service (SNS).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>NotificationConfiguration</b>: Describes a notification topic and its status. Notification topics are used for publishing DAX events to subscribers using Amazon Simple Notification Service (SNS).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i> A range of time when maintenance of DAX cluster software will be performed. For example: <code>sun:01:00-sun:09:00</code>. Cluster maintenance normally takes less than 30 minutes, and is performed automatically within the maintenance window.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Nodes</i> A list of nodes that are currently in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NodeIdsToRemove</i> A list of nodes to be removed from the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterDiscoveryEndpoint</i> The endpoint for this DAX cluster, consisting of a DNS name, a port number, and a URL. Applications should use the URL to configure the DAX client to find their cluster.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ClusterDiscoveryEndpoint</b>: The endpoint for this DAX cluster, consisting of a DNS name, a port number, and a URL. Applications should use the URL to configure the DAX client to find their cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current status of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NodeType</i> The node type for the nodes in the cluster. (All nodes in a DAX cluster are of the same type.)<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActiveNodes</i> The number of nodes in the cluster that are active (i.e., capable of serving requests).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalNodes</i> The total number of nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterArn</i> The Amazon Resource Name (ARN) that uniquely identifies the cluster. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterName</i> The name of the DAX cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>URL</i> The URL that applications should use to connect to the endpoint. The default ports are 8111 for the "dax" protocol and 9111 for the "daxs" protocol.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> The port number that applications should use to connect to the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Address</i> The DNS hostname of the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TopicStatus</i> The current state of the topic. A value of “active” means that notifications will be sent to the topic. A value of “inactive” means that notifications will not be sent to the topic.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TopicArn</i> The Amazon Resource Name (ARN) that identifies the topic. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NodeIdsToReboot</i> The node IDs of one or more nodes to be rebooted.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ParameterApplyStatus</i> The status of parameter updates. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ParameterGroupName</i> The name of the parameter group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current state of server-side encryption: <ul> <li>  <code>ENABLING</code> - Server-side encryption is being enabled. </li> <li>  <code>ENABLED</code> - Server-side encryption is enabled. </li> <li>  <code>DISABLING</code> - Server-side encryption is being disabled. </li> <li>  <code>DISABLED</code> - Server-side encryption is disabled. </li> </ul><br/>        """
        pass

    def update_parameter_group(self, ParameterNameValues: List[ParameterNameValue], ParameterGroupName: str) -> UpdateParameterGroupResponse:
        r"""Modifies the parameters of a parameter group. You can modify up to 20 parameters in a single request by submitting a list parameter name and value pairs.

        :param self:
        :param ParameterNameValues:  An array of name-value pairs for the parameters in the group. Each element in the array represents a single parameter. <note>  <code>record-ttl-millis</code> and <code>query-ttl-millis</code> are the only supported parameter names. For more details, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DAX.cluster-management.html#DAX.cluster-management.custom-settings.ttl">Configuring TTL Settings</a>. </note><br/>ParameterGroupName:  The name of the parameter group.<br/>
        :return: ParameterGroup:  The parameter group that has been modified.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A description of the parameter group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ParameterGroupName</i> The name of the parameter group.<br/>        """
        pass

    def update_subnet_group(self, SubnetGroupName: str, Description: str=None, SubnetIds: List[String]=None) -> UpdateSubnetGroupResponse:
        r"""Modifies an existing subnet group.

        :param self:
        :param SubnetIds:  A list of subnet IDs in the subnet group.<br/>Description:  A description of the subnet group.<br/>SubnetGroupName:  The name of the subnet group.<br/>
        :return: SubnetGroup:  The subnet group that has been modified.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Subnets</i> A list of subnets associated with the subnet group. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The Amazon Virtual Private Cloud identifier (VPC ID) of the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetGroupName</i> The name of the subnet group.<br/>        """
        pass





class Detective(BaseClient):
    r"""Detective uses machine learning and purpose-built visualizations to help you analyze and investigate security issues across your Amazon Web Services (AWS) workloads. Detective automatically extracts time-based events such as login attempts, API calls, and network traffic from AWS CloudTrail and Amazon Virtual Private Cloud (Amazon VPC) flow logs. It also extracts findings detected by Amazon GuardDuty. The Detective API primarily supports the creation and management of behavior graphs. A behavior graph contains the extracted data from a set of member accounts, and is created and managed by an administrator account. Every behavior graph is specific to a Region. You can only use the API to manage graphs that belong to the Region that is associated with the currently selected endpoint. A Detective administrator account can use the Detective API to do the following: <ul> <li> Enable and disable Detective. Enabling Detective creates a new behavior graph. </li> <li> View the list of member accounts in a behavior graph. </li> <li> Add member accounts to a behavior graph. </li> <li> Remove member accounts from a behavior graph. </li> </ul> A member account can use the Detective API to do the following: <ul> <li> View the list of behavior graphs that they are invited to. </li> <li> Accept an invitation to contribute to a behavior graph. </li> <li> Decline an invitation to contribute to a behavior graph. </li> <li> Remove their account from a behavior graph. </li> </ul> All API actions are logged as CloudTrail events. See <a href="https://docs.aws.amazon.com/detective/latest/adminguide/logging-using-cloudtrail.html">Logging Detective API Calls with CloudTrail</a>. <note> We replaced the term "master account" with the term "administrator account." An administrator account is used to centrally manage multiple accounts. In the case of Detective, the administrator account manages the accounts in their behavior graph. </note>"""




    class AcceptInvitationRequest(Mapping):
        pass
    
    class CreateGraphRequest(Mapping):
        pass
    
    class CreateGraphResponse(Mapping):
        pass
    
    class TagMap(object):
        pass
    
    class CreateMembersRequest(Mapping):
        pass
    
    class CreateMembersResponse(Mapping):
        pass
    
    class Boolean(object):
        pass
    
    class Account(Mapping):
        pass
    
    class DeleteGraphRequest(Mapping):
        pass
    
    class DeleteMembersRequest(Mapping):
        pass
    
    class DeleteMembersResponse(Mapping):
        pass
    
    class AccountId(object):
        pass
    
    class DisassociateMembershipRequest(Mapping):
        pass
    
    class GetMembersRequest(Mapping):
        pass
    
    class GetMembersResponse(Mapping):
        pass
    
    class ListGraphsRequest(Mapping):
        pass
    
    class ListGraphsResponse(Mapping):
        pass
    
    class ListInvitationsRequest(Mapping):
        pass
    
    class ListInvitationsResponse(Mapping):
        pass
    
    class ListMembersRequest(Mapping):
        pass
    
    class ListMembersResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class RejectInvitationRequest(Mapping):
        pass
    
    class StartMonitoringMemberRequest(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    def accept_invitation(self, GraphArn: str):
        r"""Accepts an invitation for the member account to contribute data to a behavior graph. This operation can only be called by an invited member account.  The request provides the ARN of behavior graph. The member account status in the graph must be <code>INVITED</code>.

        :param self:
        :param GraphArn:  The ARN of the behavior graph that the member account is accepting the invitation for. The member account status in the behavior graph must be <code>INVITED</code>.<br/>
        :return:         """
        pass

    def create_graph(self, Tags: TagMap=None) -> CreateGraphResponse:
        r"""Creates a new behavior graph for the calling account, and sets that account as the administrator account. This operation is called by the account that is enabling Detective. Before you try to enable Detective, make sure that your account has been enrolled in Amazon GuardDuty for at least 48 hours. If you do not meet this requirement, you cannot enable Detective. If you do meet the GuardDuty prerequisite, then when you make the request to enable Detective, it checks whether your data volume is within the Detective quota. If it exceeds the quota, then you cannot enable Detective.  The operation also enables Detective for the calling account in the currently selected Region. It returns the ARN of the new behavior graph.  <code>CreateGraph</code> triggers a process to create the corresponding data tables for the new behavior graph. An account can only be the administrator account for one behavior graph within a Region. If the same account calls <code>CreateGraph</code> with the same administrator account, it always returns the same behavior graph ARN. It does not create a new behavior graph.

        :param self:
        :param Tags:  The tags to assign to the new behavior graph. You can add up to 50 tags. For each tag, you provide the tag key and the tag value. Each tag key can contain up to 128 characters. Each tag value can contain up to 256 characters.<br/>
        :return: GraphArn:  The ARN of the new behavior graph.<br/>        """
        pass

    def create_members(self, Accounts: List[Account], GraphArn: str, Message: str=None, DisableEmailNotification: Boolean=None) -> CreateMembersResponse:
        r"""Sends a request to invite the specified AWS accounts to be member accounts in the behavior graph. This operation can only be called by the administrator account for a behavior graph.   <code>CreateMembers</code> verifies the accounts and then invites the verified accounts. The administrator can optionally specify to not send invitation emails to the member accounts. This would be used when the administrator manages their member accounts centrally. The request provides the behavior graph ARN and the list of accounts to invite. The response separates the requested accounts into two lists: <ul> <li> The accounts that <code>CreateMembers</code> was able to start the verification for. This list includes member accounts that are being verified, that have passed verification and are to be invited, and that have failed verification. </li> <li> The accounts that <code>CreateMembers</code> was unable to process. This list includes accounts that were already invited to be member accounts in the behavior graph. </li> </ul>

        :param self:
        :param Accounts:  The list of AWS accounts to invite to become member accounts in the behavior graph. You can invite up to 50 accounts at a time. For each invited account, the account list contains the account identifier and the AWS account root user email address.<br/>DisableEmailNotification:  if set to <code>true</code>, then the member accounts do not receive email notifications. By default, this is set to <code>false</code>, and the member accounts receive email notifications.<br/>Message:  Customized message text to include in the invitation email message to the invited member accounts.<br/>GraphArn:  The ARN of the behavior graph to invite the member accounts to contribute their data to.<br/>
        :return: UnprocessedAccounts:  The list of accounts for which Detective was unable to process the invitation request. For each account, the list provides the reason why the request could not be processed. The list includes accounts that are already member accounts in the behavior graph.<br/>Members:  The set of member account invitation requests that Detective was able to process. This includes accounts that are being verified, that failed verification, and that passed verification and are being sent an invitation.<br/>        """
        pass

    def delete_graph(self, GraphArn: str):
        r"""Disables the specified behavior graph and queues it to be deleted. This operation removes the graph from each member account's list of behavior graphs.  <code>DeleteGraph</code> can only be called by the administrator account for a behavior graph.

        :param self:
        :param GraphArn:  The ARN of the behavior graph to disable.<br/>
        :return:         """
        pass

    def delete_members(self, AccountIds: List[AccountId], GraphArn: str) -> DeleteMembersResponse:
        r"""Deletes one or more member accounts from the administrator account's behavior graph. This operation can only be called by a Detective administrator account. That account cannot use <code>DeleteMembers</code> to delete their own account from the behavior graph. To disable a behavior graph, the administrator account uses the <code>DeleteGraph</code> API method.

        :param self:
        :param AccountIds:  The list of AWS account identifiers for the member accounts to delete from the behavior graph. You can delete up to 50 member accounts at a time.<br/>GraphArn:  The ARN of the behavior graph to delete members from.<br/>
        :return: UnprocessedAccounts:  The list of member accounts that Detective was not able to delete from the behavior graph. For each member account, provides the reason that the deletion could not be processed.<br/>AccountIds:  The list of AWS account identifiers for the member accounts that Detective successfully deleted from the behavior graph.<br/>        """
        pass

    def disassociate_membership(self, GraphArn: str):
        r"""Removes the member account from the specified behavior graph. This operation can only be called by a member account that has the <code>ENABLED</code> status.

        :param self:
        :param GraphArn:  The ARN of the behavior graph to remove the member account from. The member account's member status in the behavior graph must be <code>ENABLED</code>.<br/>
        :return:         """
        pass

    def get_members(self, AccountIds: List[AccountId], GraphArn: str) -> GetMembersResponse:
        r"""Returns the membership details for specified member accounts for a behavior graph.

        :param self:
        :param AccountIds:  The list of AWS account identifiers for the member account for which to return member details. You can request details for up to 50 member accounts at a time. You cannot use <code>GetMembers</code> to retrieve information about member accounts that were removed from the behavior graph.<br/>GraphArn:  The ARN of the behavior graph for which to request the member details.<br/>
        :return: UnprocessedAccounts:  The requested member accounts for which Detective was unable to return member details. For each account, provides the reason why the request could not be processed.<br/>MemberDetails:  The member account details that Detective is returning in response to the request.<br/>        """
        pass

    def list_graphs(self, NextToken: str=None, MaxResults: int=None) -> ListGraphsResponse:
        r"""Returns the list of behavior graphs that the calling account is an administrator account of. This operation can only be called by an administrator account. Because an account can currently only be the administrator of one behavior graph within a Region, the results always contain a single behavior graph.

        :param self:
        :param MaxResults:  The maximum number of graphs to return at a time. The total must be less than the overall limit on the number of results to return, which is currently 200.<br/>NextToken:  For requests to get the next page of results, the pagination token that was returned with the previous set of results. The initial request does not include a pagination token.<br/>
        :return: NextToken:  If there are more behavior graphs remaining in the results, then this is the pagination token to use to request the next page of behavior graphs.<br/>GraphList:  A list of behavior graphs that the account is an administrator account for.<br/>        """
        pass

    def list_invitations(self, NextToken: str=None, MaxResults: int=None) -> ListInvitationsResponse:
        r"""Retrieves the list of open and accepted behavior graph invitations for the member account. This operation can only be called by a member account. Open invitations are invitations that the member account has not responded to. The results do not include behavior graphs for which the member account declined the invitation. The results also do not include behavior graphs that the member account resigned from or was removed from.

        :param self:
        :param MaxResults:  The maximum number of behavior graph invitations to return in the response. The total must be less than the overall limit on the number of results to return, which is currently 200.<br/>NextToken:  For requests to retrieve the next page of results, the pagination token that was returned with the previous page of results. The initial request does not include a pagination token.<br/>
        :return: NextToken:  If there are more behavior graphs remaining in the results, then this is the pagination token to use to request the next page of behavior graphs.<br/>Invitations:  The list of behavior graphs for which the member account has open or accepted invitations.<br/>        """
        pass

    def list_members(self, GraphArn: str, NextToken: str=None, MaxResults: int=None) -> ListMembersResponse:
        r"""Retrieves the list of member accounts for a behavior graph. Does not return member accounts that were removed from the behavior graph.

        :param self:
        :param MaxResults:  The maximum number of member accounts to include in the response. The total must be less than the overall limit on the number of results to return, which is currently 200.<br/>NextToken:  For requests to retrieve the next page of member account results, the pagination token that was returned with the previous page of results. The initial request does not include a pagination token.<br/>GraphArn:  The ARN of the behavior graph for which to retrieve the list of member accounts.<br/>
        :return: NextToken:  If there are more member accounts remaining in the results, then this is the pagination token to use to request the next page of member accounts.<br/>MemberDetails:  The list of member accounts in the behavior graph. The results include member accounts that did not pass verification and member accounts that have not yet accepted the invitation to the behavior graph. The results do not include member accounts that were removed from the behavior graph.<br/>        """
        pass

    def list_tags_for_resource(self, ResourceArn: str) -> ListTagsForResourceResponse:
        r"""Returns the tag values that are assigned to a behavior graph.

        :param self:
        :param ResourceArn:  The ARN of the behavior graph for which to retrieve the tag values.<br/>
        :return: Tags:  The tag values that are assigned to the behavior graph. The request returns up to 50 tag values.<br/>        """
        pass

    def reject_invitation(self, GraphArn: str):
        r"""Rejects an invitation to contribute the account data to a behavior graph. This operation must be called by a member account that has the <code>INVITED</code> status.

        :param self:
        :param GraphArn:  The ARN of the behavior graph to reject the invitation to. The member account's current member status in the behavior graph must be <code>INVITED</code>.<br/>
        :return:         """
        pass

    def start_monitoring_member(self, AccountId: str, GraphArn: str):
        r"""Sends a request to enable data ingest for a member account that has a status of <code>ACCEPTED_BUT_DISABLED</code>. For valid member accounts, the status is updated as follows. <ul> <li> If Detective enabled the member account, then the new status is <code>ENABLED</code>. </li> <li> If Detective cannot enable the member account, the status remains <code>ACCEPTED_BUT_DISABLED</code>.  </li> </ul>

        :param self:
        :param AccountId:  The account ID of the member account to try to enable. The account must be an invited member account with a status of <code>ACCEPTED_BUT_DISABLED</code>. <br/>GraphArn:  The ARN of the behavior graph.<br/>
        :return:         """
        pass

    def tag_resource(self, Tags: TagMap, ResourceArn: str) -> TagResourceResponse:
        r"""Applies tag values to a behavior graph.

        :param self:
        :param Tags:  The tags to assign to the behavior graph. You can add up to 50 tags. For each tag, you provide the tag key and the tag value. Each tag key can contain up to 128 characters. Each tag value can contain up to 256 characters.<br/>ResourceArn:  The ARN of the behavior graph to assign the tags to.<br/>
        :return:         """
        pass

    def untag_resource(self, TagKeys: List[TagKey], ResourceArn: str) -> UntagResourceResponse:
        r"""Removes tags from a behavior graph.

        :param self:
        :param TagKeys:  The tag keys of the tags to remove from the behavior graph. You can remove up to 50 tags at a time.<br/>ResourceArn:  The ARN of the behavior graph to remove the tags from.<br/>
        :return:         """
        pass





class DeviceFarm(BaseClient):
    r"""Welcome to the AWS Device Farm API documentation, which contains APIs for: <ul> <li> Testing on desktop browsers  Device Farm makes it possible for you to test your web applications on desktop browsers using Selenium. The APIs for desktop browser testing contain <code>TestGrid</code> in their names. For more information, see <a href="https://docs.aws.amazon.com/devicefarm/latest/testgrid/">Testing Web Applications on Selenium with Device Farm</a>. </li> <li> Testing on real mobile devices Device Farm makes it possible for you to test apps on physical phones, tablets, and other devices in the cloud. For more information, see the <a href="https://docs.aws.amazon.com/devicefarm/latest/developerguide/">Device Farm Developer Guide</a>. </li> </ul>"""


    class ListArtifactsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_artifacts` for valid parameters"""
            pass
    class ListDevicePoolsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_device_pools` for valid parameters"""
            pass
    class ListDevicesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_devices` for valid parameters"""
            pass
    class ListJobsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_jobs` for valid parameters"""
            pass
    class ListProjectsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_projects` for valid parameters"""
            pass
    class ListRunsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_runs` for valid parameters"""
            pass
    class ListSamplesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_samples` for valid parameters"""
            pass
    class ListSuitesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_suites` for valid parameters"""
            pass
    class ListTestsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_tests` for valid parameters"""
            pass
    class ListUniqueProblemsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_unique_problems` for valid parameters"""
            pass
    class ListUploadsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_uploads` for valid parameters"""
            pass
    class GetOfferingStatusPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_offering_status` for valid parameters"""
            pass
    class ListOfferingTransactionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_offering_transactions` for valid parameters"""
            pass
    class ListOfferingsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_offerings` for valid parameters"""
            pass
    class ListDeviceInstancesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_device_instances` for valid parameters"""
            pass
    class ListInstanceProfilesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_instance_profiles` for valid parameters"""
            pass
    class ListNetworkProfilesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_network_profiles` for valid parameters"""
            pass
    class ListOfferingPromotionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_offering_promotions` for valid parameters"""
            pass
    class ListRemoteAccessSessionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_remote_access_sessions` for valid parameters"""
            pass
    class ListVPCEConfigurationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_vpce_configurations` for valid parameters"""
            pass


    class CreateDevicePoolRequest(Mapping):
        pass
    
    class CreateDevicePoolResult(Mapping):
        pass
    
    class Rule(Mapping):
        pass
    
    class CreateInstanceProfileRequest(Mapping):
        pass
    
    class CreateInstanceProfileResult(Mapping):
        pass
    
    class Boolean(object):
        pass
    
    class String(object):
        pass
    
    class CreateNetworkProfileRequest(Mapping):
        pass
    
    class CreateNetworkProfileResult(Mapping):
        pass
    
    class Long(object):
        pass
    
    class CreateProjectRequest(Mapping):
        pass
    
    class CreateProjectResult(Mapping):
        pass
    
    class CreateRemoteAccessSessionRequest(Mapping):
        pass
    
    class CreateRemoteAccessSessionResult(Mapping):
        pass
    
    class CreateRemoteAccessSessionConfiguration(Mapping):
        pass
    
    class CreateTestGridProjectRequest(Mapping):
        pass
    
    class CreateTestGridProjectResult(Mapping):
        pass
    
    class TestGridVpcConfig(Mapping):
        pass
    
    class CreateTestGridUrlRequest(Mapping):
        pass
    
    class CreateTestGridUrlResult(Mapping):
        pass
    
    class CreateUploadRequest(Mapping):
        pass
    
    class CreateUploadResult(Mapping):
        pass
    
    class CreateVPCEConfigurationRequest(Mapping):
        pass
    
    class CreateVPCEConfigurationResult(Mapping):
        pass
    
    class DeleteDevicePoolRequest(Mapping):
        pass
    
    class DeleteDevicePoolResult(Mapping):
        pass
    
    class DeleteInstanceProfileRequest(Mapping):
        pass
    
    class DeleteInstanceProfileResult(Mapping):
        pass
    
    class DeleteNetworkProfileRequest(Mapping):
        pass
    
    class DeleteNetworkProfileResult(Mapping):
        pass
    
    class DeleteProjectRequest(Mapping):
        pass
    
    class DeleteProjectResult(Mapping):
        pass
    
    class DeleteRemoteAccessSessionRequest(Mapping):
        pass
    
    class DeleteRemoteAccessSessionResult(Mapping):
        pass
    
    class DeleteRunRequest(Mapping):
        pass
    
    class DeleteRunResult(Mapping):
        pass
    
    class DeleteTestGridProjectRequest(Mapping):
        pass
    
    class DeleteTestGridProjectResult(Mapping):
        pass
    
    class DeleteUploadRequest(Mapping):
        pass
    
    class DeleteUploadResult(Mapping):
        pass
    
    class DeleteVPCEConfigurationRequest(Mapping):
        pass
    
    class DeleteVPCEConfigurationResult(Mapping):
        pass
    
    class GetAccountSettingsRequest(Mapping):
        pass
    
    class GetAccountSettingsResult(Mapping):
        pass
    
    class GetDeviceRequest(Mapping):
        pass
    
    class GetDeviceResult(Mapping):
        pass
    
    class GetDeviceInstanceRequest(Mapping):
        pass
    
    class GetDeviceInstanceResult(Mapping):
        pass
    
    class GetDevicePoolRequest(Mapping):
        pass
    
    class GetDevicePoolResult(Mapping):
        pass
    
    class GetDevicePoolCompatibilityRequest(Mapping):
        pass
    
    class GetDevicePoolCompatibilityResult(Mapping):
        pass
    
    class ScheduleRunTest(Mapping):
        pass
    
    class ScheduleRunConfiguration(Mapping):
        pass
    
    class GetInstanceProfileRequest(Mapping):
        pass
    
    class GetInstanceProfileResult(Mapping):
        pass
    
    class GetJobRequest(Mapping):
        pass
    
    class GetJobResult(Mapping):
        pass
    
    class GetNetworkProfileRequest(Mapping):
        pass
    
    class GetNetworkProfileResult(Mapping):
        pass
    
    class GetOfferingStatusRequest(Mapping):
        pass
    
    class GetOfferingStatusResult(Mapping):
        pass
    
    class GetProjectRequest(Mapping):
        pass
    
    class GetProjectResult(Mapping):
        pass
    
    class GetRemoteAccessSessionRequest(Mapping):
        pass
    
    class GetRemoteAccessSessionResult(Mapping):
        pass
    
    class GetRunRequest(Mapping):
        pass
    
    class GetRunResult(Mapping):
        pass
    
    class GetSuiteRequest(Mapping):
        pass
    
    class GetSuiteResult(Mapping):
        pass
    
    class GetTestRequest(Mapping):
        pass
    
    class GetTestResult(Mapping):
        pass
    
    class GetTestGridProjectRequest(Mapping):
        pass
    
    class GetTestGridProjectResult(Mapping):
        pass
    
    class GetTestGridSessionRequest(Mapping):
        pass
    
    class GetTestGridSessionResult(Mapping):
        pass
    
    class GetUploadRequest(Mapping):
        pass
    
    class GetUploadResult(Mapping):
        pass
    
    class GetVPCEConfigurationRequest(Mapping):
        pass
    
    class GetVPCEConfigurationResult(Mapping):
        pass
    
    class InstallToRemoteAccessSessionRequest(Mapping):
        pass
    
    class InstallToRemoteAccessSessionResult(Mapping):
        pass
    
    class ListArtifactsRequest(Mapping):
        pass
    
    class ListArtifactsResult(Mapping):
        pass
    
    class ListDeviceInstancesRequest(Mapping):
        pass
    
    class ListDeviceInstancesResult(Mapping):
        pass
    
    class ListDevicePoolsRequest(Mapping):
        pass
    
    class ListDevicePoolsResult(Mapping):
        pass
    
    class ListDevicesRequest(Mapping):
        pass
    
    class ListDevicesResult(Mapping):
        pass
    
    class DeviceFilter(Mapping):
        pass
    
    class ListInstanceProfilesRequest(Mapping):
        pass
    
    class ListInstanceProfilesResult(Mapping):
        pass
    
    class ListJobsRequest(Mapping):
        pass
    
    class ListJobsResult(Mapping):
        pass
    
    class ListNetworkProfilesRequest(Mapping):
        pass
    
    class ListNetworkProfilesResult(Mapping):
        pass
    
    class ListOfferingPromotionsRequest(Mapping):
        pass
    
    class ListOfferingPromotionsResult(Mapping):
        pass
    
    class ListOfferingTransactionsRequest(Mapping):
        pass
    
    class ListOfferingTransactionsResult(Mapping):
        pass
    
    class ListOfferingsRequest(Mapping):
        pass
    
    class ListOfferingsResult(Mapping):
        pass
    
    class ListProjectsRequest(Mapping):
        pass
    
    class ListProjectsResult(Mapping):
        pass
    
    class ListRemoteAccessSessionsRequest(Mapping):
        pass
    
    class ListRemoteAccessSessionsResult(Mapping):
        pass
    
    class ListRunsRequest(Mapping):
        pass
    
    class ListRunsResult(Mapping):
        pass
    
    class ListSamplesRequest(Mapping):
        pass
    
    class ListSamplesResult(Mapping):
        pass
    
    class ListSuitesRequest(Mapping):
        pass
    
    class ListSuitesResult(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class ListTestGridProjectsRequest(Mapping):
        pass
    
    class ListTestGridProjectsResult(Mapping):
        pass
    
    class ListTestGridSessionActionsRequest(Mapping):
        pass
    
    class ListTestGridSessionActionsResult(Mapping):
        pass
    
    class ListTestGridSessionArtifactsRequest(Mapping):
        pass
    
    class ListTestGridSessionArtifactsResult(Mapping):
        pass
    
    class ListTestGridSessionsRequest(Mapping):
        pass
    
    class ListTestGridSessionsResult(Mapping):
        pass
    
    class DateTime(object):
        pass
    
    class ListTestsRequest(Mapping):
        pass
    
    class ListTestsResult(Mapping):
        pass
    
    class ListUniqueProblemsRequest(Mapping):
        pass
    
    class ListUniqueProblemsResult(Mapping):
        pass
    
    class ListUploadsRequest(Mapping):
        pass
    
    class ListUploadsResult(Mapping):
        pass
    
    class ListVPCEConfigurationsRequest(Mapping):
        pass
    
    class ListVPCEConfigurationsResult(Mapping):
        pass
    
    class PurchaseOfferingRequest(Mapping):
        pass
    
    class PurchaseOfferingResult(Mapping):
        pass
    
    class RenewOfferingRequest(Mapping):
        pass
    
    class RenewOfferingResult(Mapping):
        pass
    
    class ScheduleRunRequest(Mapping):
        pass
    
    class ScheduleRunResult(Mapping):
        pass
    
    class DeviceSelectionConfiguration(Mapping):
        pass
    
    class ExecutionConfiguration(Mapping):
        pass
    
    class StopJobRequest(Mapping):
        pass
    
    class StopJobResult(Mapping):
        pass
    
    class StopRemoteAccessSessionRequest(Mapping):
        pass
    
    class StopRemoteAccessSessionResult(Mapping):
        pass
    
    class StopRunRequest(Mapping):
        pass
    
    class StopRunResult(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateDeviceInstanceRequest(Mapping):
        pass
    
    class UpdateDeviceInstanceResult(Mapping):
        pass
    
    class UpdateDevicePoolRequest(Mapping):
        pass
    
    class UpdateDevicePoolResult(Mapping):
        pass
    
    class UpdateInstanceProfileRequest(Mapping):
        pass
    
    class UpdateInstanceProfileResult(Mapping):
        pass
    
    class UpdateNetworkProfileRequest(Mapping):
        pass
    
    class UpdateNetworkProfileResult(Mapping):
        pass
    
    class UpdateProjectRequest(Mapping):
        pass
    
    class UpdateProjectResult(Mapping):
        pass
    
    class UpdateTestGridProjectRequest(Mapping):
        pass
    
    class UpdateTestGridProjectResult(Mapping):
        pass
    
    class UpdateUploadRequest(Mapping):
        pass
    
    class UpdateUploadResult(Mapping):
        pass
    
    class UpdateVPCEConfigurationRequest(Mapping):
        pass
    
    class UpdateVPCEConfigurationResult(Mapping):
        pass
    
    def create_device_pool(self, rules: List[Rule], name: str, projectArn: str, description: str=None, maxDevices: int=None) -> CreateDevicePoolResult:
        r"""Creates a device pool.

        :param self:
        :param maxDevices:  The number of devices that Device Farm can add to your device pool. Device Farm adds devices that are available and meet the criteria that you assign for the <code>rules</code> parameter. Depending on how many devices meet these constraints, your device pool might contain fewer devices than the value for this parameter. By specifying the maximum number of devices, you can control the costs that you incur by running tests.<br/>rules:  The device pool's rules.<br/>description:  The device pool's description.<br/>name:  The device pool's name.<br/>projectArn:  The ARN of the project for the device pool.<br/>
        :return: devicePool:  The newly created device pool.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>maxDevices</i> The number of devices that Device Farm can add to your device pool. Device Farm adds devices that are available and meet the criteria that you assign for the <code>rules</code> parameter. Depending on how many devices meet these constraints, your device pool might contain fewer devices than the value for this parameter. By specifying the maximum number of devices, you can control the costs that you incur by running tests.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>rules</i> Information about the device pool's rules.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The device pool's type. Allowed values include: <ul> <li> CURATED: A device pool that is created and managed by AWS Device Farm. </li> <li> PRIVATE: A device pool that is created and managed by the device pool developer. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> The device pool's description.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The device pool's name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The device pool's ARN.<br/>        """
        pass

    def create_instance_profile(self, name: str, description: str=None, packageCleanup: Boolean=None, excludeAppPackagesFromCleanup: List[String]=None, rebootAfterUse: Boolean=None) -> CreateInstanceProfileResult:
        r"""Creates a profile that can be applied to one or more private fleet device instances.

        :param self:
        :param rebootAfterUse:  When set to <code>true</code>, Device Farm reboots the instance after a test run. The default value is <code>true</code>.<br/>excludeAppPackagesFromCleanup:  An array of strings that specifies the list of app packages that should not be cleaned up from the device after a test run. The list of packages is considered only if you set <code>packageCleanup</code> to <code>true</code>.<br/>packageCleanup:  When set to <code>true</code>, Device Farm removes app packages after a test run. The default value is <code>false</code> for private devices.<br/>description:  The description of your instance profile.<br/>name:  The name of your instance profile.<br/>
        :return: instanceProfile:  An object that contains information about your instance profile.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> The description of the instance profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the instance profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>rebootAfterUse</i> When set to <code>true</code>, Device Farm reboots the instance after a test run. The default value is <code>true</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>excludeAppPackagesFromCleanup</i> An array of strings containing the list of app packages that should not be cleaned up from the device after a test run completes. The list of packages is considered only if you set <code>packageCleanup</code> to <code>true</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>packageCleanup</i> When set to <code>true</code>, Device Farm removes app packages after a test run. The default value is <code>false</code> for private devices.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the instance profile.<br/>        """
        pass

    def create_network_profile(self, name: str, projectArn: str, description: str=None, type: str=None, uplinkBandwidthBits: Long=None, downlinkBandwidthBits: Long=None, uplinkDelayMs: Long=None, downlinkDelayMs: Long=None, uplinkJitterMs: Long=None, downlinkJitterMs: Long=None, uplinkLossPercent: int=None, downlinkLossPercent: int=None) -> CreateNetworkProfileResult:
        r"""Creates a network profile.

        :param self:
        :param downlinkLossPercent:  Proportion of received packets that fail to arrive from 0 to 100 percent.<br/>uplinkLossPercent:  Proportion of transmitted packets that fail to arrive from 0 to 100 percent.<br/>downlinkJitterMs:  Time variation in the delay of received packets in milliseconds as an integer from 0 to 2000.<br/>uplinkJitterMs:  Time variation in the delay of received packets in milliseconds as an integer from 0 to 2000.<br/>downlinkDelayMs:  Delay time for all packets to destination in milliseconds as an integer from 0 to 2000.<br/>uplinkDelayMs:  Delay time for all packets to destination in milliseconds as an integer from 0 to 2000.<br/>downlinkBandwidthBits:  The data throughput rate in bits per second, as an integer from 0 to 104857600.<br/>uplinkBandwidthBits:  The data throughput rate in bits per second, as an integer from 0 to 104857600.<br/>type:  The type of network profile to create. Valid values are listed here.<br/>description:  The description of the network profile.<br/>name:  The name for the new network profile.<br/>projectArn:  The Amazon Resource Name (ARN) of the project for which you want to create a network profile.<br/>
        :return: networkProfile:  The network profile that is returned by the create network profile request.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>downlinkLossPercent</i> Proportion of received packets that fail to arrive from 0 to 100 percent.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>uplinkLossPercent</i> Proportion of transmitted packets that fail to arrive from 0 to 100 percent.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>downlinkJitterMs</i> Time variation in the delay of received packets in milliseconds as an integer from 0 to 2000.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>uplinkJitterMs</i> Time variation in the delay of received packets in milliseconds as an integer from 0 to 2000.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>downlinkDelayMs</i> Delay time for all packets to destination in milliseconds as an integer from 0 to 2000.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>uplinkDelayMs</i> Delay time for all packets to destination in milliseconds as an integer from 0 to 2000.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>downlinkBandwidthBits</i> The data throughput rate in bits per second, as an integer from 0 to 104857600.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>uplinkBandwidthBits</i> The data throughput rate in bits per second, as an integer from 0 to 104857600.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of network profile. Valid values are listed here.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> The description of the network profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the network profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the network profile.<br/>        """
        pass

    def create_project(self, name: str, defaultJobTimeoutMinutes: int=None) -> CreateProjectResult:
        r"""Creates a project.

        :param self:
        :param defaultJobTimeoutMinutes:  Sets the execution timeout value (in minutes) for a project. All test runs in this project use the specified execution timeout value unless overridden when scheduling a run.<br/>name:  The project's name.<br/>
        :return: project:  The newly created project.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>created</i> When the project was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>defaultJobTimeoutMinutes</i> The default number of minutes (at the project level) a test run executes before it times out. The default value is 150 minutes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The project's name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The project's ARN.<br/>        """
        pass

    def create_remote_access_session(self, deviceArn: str, projectArn: str, instanceArn: str=None, sshPublicKey: str=None, remoteDebugEnabled: Boolean=None, remoteRecordEnabled: Boolean=None, remoteRecordAppArn: str=None, name: str=None, clientId: str=None, configuration: CreateRemoteAccessSessionConfiguration=None, interactionMode: str=None, skipAppResign: Boolean=None) -> CreateRemoteAccessSessionResult:
        r"""Specifies and starts a remote access session.

        :param self:
        :param skipAppResign:  When set to <code>true</code>, for private devices, Device Farm does not sign your app again. For public devices, Device Farm always signs your apps again. For more information on how Device Farm modifies your uploads during tests, see <a href="https://aws.amazon.com/device-farm/faq/">Do you modify my app?</a> <br/>interactionMode:  The interaction mode of the remote access session. Valid values are: <ul> <li> INTERACTIVE: You can interact with the iOS device by viewing, touching, and rotating the screen. You cannot run XCUITest framework-based tests in this mode. </li> <li> NO_VIDEO: You are connected to the device, but cannot interact with it or view the screen. This mode has the fastest test execution speed. You can run XCUITest framework-based tests in this mode. </li> <li> VIDEO_ONLY: You can view the screen, but cannot touch or rotate it. You can run XCUITest framework-based tests and watch the screen in this mode. </li> </ul><br/>configuration:  The configuration information for the remote access session request.:<br/>clientId:  Unique identifier for the client. If you want access to multiple devices on the same client, you should pass the same <code>clientId</code> value in each call to <code>CreateRemoteAccessSession</code>. This identifier is required only if <code>remoteDebugEnabled</code> is set to <code>true</code>. Remote debugging is <a href="https://docs.aws.amazon.com/devicefarm/latest/developerguide/history.html">no longer supported</a>.<br/>name:  The name of the remote access session to create.<br/>remoteRecordAppArn:  The Amazon Resource Name (ARN) for the app to be recorded in the remote access session.<br/>remoteRecordEnabled:  Set to <code>true</code> to enable remote recording for the remote access session.<br/>remoteDebugEnabled:  Set to <code>true</code> if you want to access devices remotely for debugging in your remote access session. Remote debugging is <a href="https://docs.aws.amazon.com/devicefarm/latest/developerguide/history.html">no longer supported</a>.<br/>sshPublicKey:  Ignored. The public key of the <code>ssh</code> key pair you want to use for connecting to remote devices in your remote debugging session. This key is required only if <code>remoteDebugEnabled</code> is set to <code>true</code>. Remote debugging is <a href="https://docs.aws.amazon.com/devicefarm/latest/developerguide/history.html">no longer supported</a>.<br/>instanceArn:  The Amazon Resource Name (ARN) of the device instance for which you want to create a remote access session.<br/>deviceArn:  The ARN of the device for which you want to create a remote access session.<br/>projectArn:  The Amazon Resource Name (ARN) of the project for which you want to create a remote access session.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>vpceConfigurationArns</i> An array of ARNs included in the VPC endpoint configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>billingMethod</i> The billing method for the remote access session.<br/>
        :return: remoteAccessSession:  A container that describes the remote access session when the request to create a remote access session is sent.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>skipAppResign</i> When set to <code>true</code>, for private devices, Device Farm does not sign your app again. For public devices, Device Farm always signs your apps again. For more information about how Device Farm re-signs your apps, see <a href="https://aws.amazon.com/device-farm/faq/">Do you modify my app?</a> in the <i>AWS Device Farm FAQs</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>interactionMode</i> The interaction mode of the remote access session. Valid values are: <ul> <li> INTERACTIVE: You can interact with the iOS device by viewing, touching, and rotating the screen. You cannot run XCUITest framework-based tests in this mode. </li> <li> NO_VIDEO: You are connected to the device, but cannot interact with it or view the screen. This mode has the fastest test execution speed. You can run XCUITest framework-based tests in this mode. </li> <li> VIDEO_ONLY: You can view the screen, but cannot touch or rotate it. You can run XCUITest framework-based tests and watch the screen in this mode. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deviceUdid</i> Unique device identifier for the remote device. Only returned if remote debugging is enabled for the remote access session. Remote debugging is <a href="https://docs.aws.amazon.com/devicefarm/latest/developerguide/history.html">no longer supported</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>endpoint</i> The endpoint for the remote access sesssion.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deviceMinutes</i> The number of minutes a device is used in a remote access session (including setup and teardown minutes).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>deviceMinutes</b>: The number of minutes a device is used in a remote access session (including setup and teardown minutes).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>billingMethod</i> The billing method of the remote access session. Possible values include <code>METERED</code> or <code>UNMETERED</code>. For more information about metered devices, see <a href="https://docs.aws.amazon.com/devicefarm/latest/developerguide/welcome.html#welcome-terminology">AWS Device Farm terminology</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>clientId</i> Unique identifier of your client for the remote access session. Only returned if remote debugging is enabled for the remote access session. Remote debugging is <a href="https://docs.aws.amazon.com/devicefarm/latest/developerguide/history.html">no longer supported</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>hostAddress</i> IP address of the EC2 host where you need to connect to remotely debug devices. Only returned if remote debugging is enabled for the remote access session. Remote debugging is <a href="https://docs.aws.amazon.com/devicefarm/latest/developerguide/history.html">no longer supported</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>remoteRecordAppArn</i> The ARN for the app to be recorded in the remote access session.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>remoteRecordEnabled</i> This flag is set to <code>true</code> if remote recording is enabled for the remote access session.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>remoteDebugEnabled</i> This flag is set to <code>true</code> if remote debugging is enabled for the remote access session. Remote debugging is <a href="https://docs.aws.amazon.com/devicefarm/latest/developerguide/history.html">no longer supported</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>instanceArn</i> The ARN of the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>device</i> The device (phone or tablet) used in the remote access session.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>device</b>: The device (phone or tablet) used in the remote access session.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>stopped</i> The date and time the remote access session was stopped.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>started</i> The date and time the remote access session was started.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>message</i> A message about the remote access session.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>result</i> The result of the remote access session. Can be any of the following: <ul> <li> PENDING. </li> <li> PASSED. </li> <li> WARNED. </li> <li> FAILED. </li> <li> SKIPPED. </li> <li> ERRORED. </li> <li> STOPPED. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the remote access session. Can be any of the following: <ul> <li> PENDING. </li> <li> PENDING_CONCURRENCY. </li> <li> PENDING_DEVICE. </li> <li> PROCESSING. </li> <li> SCHEDULING. </li> <li> PREPARING. </li> <li> RUNNING. </li> <li> COMPLETED. </li> <li> STOPPING. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>created</i> The date and time the remote access session was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the remote access session.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the remote access session.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>os</i> The device's operating system type.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>platform</i> The device's platform. Allowed values include: <ul> <li> ANDROID </li> <li> IOS </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>formFactor</i> The device's form factor. Allowed values include: <ul> <li> PHONE </li> <li> TABLET </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>modelId</i> The device's model ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>model</i> The device's model name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>manufacturer</i> The device's manufacturer name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The device's display name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The device's ARN.<br/>Information about the device's CPU.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>cpu</b>: Information about the device's CPU.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>unmetered</i> When specified, represents only the sum of unmetered minutes used by the resource to run tests.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>metered</i> When specified, represents only the sum of metered minutes used by the resource to run tests.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>total</i> When specified, represents the total minutes used by the resource to run tests.<br/>        """
        pass

    def create_test_grid_project(self, name: str, description: str=None, vpcConfig: TestGridVpcConfig=None) -> CreateTestGridProjectResult:
        r"""Creates a Selenium testing project. Projects are used to track <a>TestGridSession</a> instances.

        :param self:
        :param vpcConfig:  The VPC security groups and subnets that are attached to a project.:<br/>description:  Human-readable description of the project.<br/>name:  Human-readable name of the Selenium testing project.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>vpcId</i> The ID of the Amazon VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>subnetIds</i> A list of VPC subnet IDs in your Amazon VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>securityGroupIds</i> A list of VPC security group IDs in your Amazon VPC.<br/>
        :return: testGridProject:  ARN of the Selenium testing project that was created.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>created</i> When the project was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>vpcConfig</i> The VPC security groups and subnets that are attached to a project.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>vpcConfig</b>: The VPC security groups and subnets that are attached to a project.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> A human-readable description for the project.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> A human-readable name for the project.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The ARN for the project.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>vpcId</i> The ID of the Amazon VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>subnetIds</i> A list of VPC subnet IDs in your Amazon VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>securityGroupIds</i> A list of VPC security group IDs in your Amazon VPC.<br/>        """
        pass

    def create_test_grid_url(self, expiresInSeconds: int, projectArn: str) -> CreateTestGridUrlResult:
        r"""Creates a signed, short-term URL that can be passed to a Selenium <code>RemoteWebDriver</code> constructor.

        :param self:
        :param expiresInSeconds:  Lifetime, in seconds, of the URL.<br/>projectArn:  ARN (from <a>CreateTestGridProject</a> or <a>ListTestGridProjects</a>) to associate with the short-term URL. <br/>
        :return: expires:  The number of seconds the URL from <a>CreateTestGridUrlResult$url</a> stays active.<br/>url:  A signed URL, expiring in <a>CreateTestGridUrlRequest$expiresInSeconds</a> seconds, to be passed to a <code>RemoteWebDriver</code>. <br/>        """
        pass

    def create_upload(self, type: str, name: str, projectArn: str, contentType: str=None) -> CreateUploadResult:
        r"""Uploads an app or test scripts.

        :param self:
        :param contentType:  The upload's content type (for example, <code>application/octet-stream</code>).<br/>type:  The upload's upload type. Must be one of the following values: <ul> <li> ANDROID_APP </li> <li> IOS_APP </li> <li> WEB_APP </li> <li> EXTERNAL_DATA </li> <li> APPIUM_JAVA_JUNIT_TEST_PACKAGE </li> <li> APPIUM_JAVA_TESTNG_TEST_PACKAGE </li> <li> APPIUM_PYTHON_TEST_PACKAGE </li> <li> APPIUM_NODE_TEST_PACKAGE </li> <li> APPIUM_RUBY_TEST_PACKAGE </li> <li> APPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE </li> <li> APPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE </li> <li> APPIUM_WEB_PYTHON_TEST_PACKAGE </li> <li> APPIUM_WEB_NODE_TEST_PACKAGE </li> <li> APPIUM_WEB_RUBY_TEST_PACKAGE </li> <li> CALABASH_TEST_PACKAGE </li> <li> INSTRUMENTATION_TEST_PACKAGE </li> <li> UIAUTOMATION_TEST_PACKAGE </li> <li> UIAUTOMATOR_TEST_PACKAGE </li> <li> XCTEST_TEST_PACKAGE </li> <li> XCTEST_UI_TEST_PACKAGE </li> <li> APPIUM_JAVA_JUNIT_TEST_SPEC </li> <li> APPIUM_JAVA_TESTNG_TEST_SPEC </li> <li> APPIUM_PYTHON_TEST_SPEC </li> <li> APPIUM_NODE_TEST_SPEC </li> <li> APPIUM_RUBY_TEST_SPEC </li> <li> APPIUM_WEB_JAVA_JUNIT_TEST_SPEC </li> <li> APPIUM_WEB_JAVA_TESTNG_TEST_SPEC </li> <li> APPIUM_WEB_PYTHON_TEST_SPEC </li> <li> APPIUM_WEB_NODE_TEST_SPEC </li> <li> APPIUM_WEB_RUBY_TEST_SPEC </li> <li> INSTRUMENTATION_TEST_SPEC </li> <li> XCTEST_UI_TEST_SPEC </li> </ul>  If you call <code>CreateUpload</code> with <code>WEB_APP</code> specified, AWS Device Farm throws an <code>ArgumentException</code> error.<br/>name:  The upload's file name. The name should not contain any forward slashes (<code>/</code>). If you are uploading an iOS app, the file name must end with the <code>.ipa</code> extension. If you are uploading an Android app, the file name must end with the <code>.apk</code> extension. For all others, the file name must end with the <code>.zip</code> file extension.<br/>projectArn:  The ARN of the project for the upload.<br/>
        :return: upload:  The newly created upload.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>category</i> The upload's category. Allowed values include: <ul> <li> CURATED: An upload managed by AWS Device Farm. </li> <li> PRIVATE: An upload managed by the AWS Device Farm customer. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>message</i> A message about the upload's result.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>contentType</i> The upload's content type (for example, <code>application/octet-stream</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>metadata</i> The upload's metadata. For example, for Android, this contains information that is parsed from the manifest and is displayed in the AWS Device Farm console after the associated app is uploaded.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>url</i> The presigned Amazon S3 URL that was used to store a file using a PUT request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The upload's status. Must be one of the following values: <ul> <li> FAILED </li> <li> INITIALIZED </li> <li> PROCESSING </li> <li> SUCCEEDED </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The upload's type. Must be one of the following values: <ul> <li> ANDROID_APP </li> <li> IOS_APP </li> <li> WEB_APP </li> <li> EXTERNAL_DATA </li> <li> APPIUM_JAVA_JUNIT_TEST_PACKAGE </li> <li> APPIUM_JAVA_TESTNG_TEST_PACKAGE </li> <li> APPIUM_PYTHON_TEST_PACKAGE </li> <li> APPIUM_NODE_TEST_PACKAGE </li> <li> APPIUM_RUBY_TEST_PACKAGE </li> <li> APPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE </li> <li> APPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE </li> <li> APPIUM_WEB_PYTHON_TEST_PACKAGE </li> <li> APPIUM_WEB_NODE_TEST_PACKAGE </li> <li> APPIUM_WEB_RUBY_TEST_PACKAGE </li> <li> CALABASH_TEST_PACKAGE </li> <li> INSTRUMENTATION_TEST_PACKAGE </li> <li> UIAUTOMATION_TEST_PACKAGE </li> <li> UIAUTOMATOR_TEST_PACKAGE </li> <li> XCTEST_TEST_PACKAGE </li> <li> XCTEST_UI_TEST_PACKAGE </li> <li> APPIUM_JAVA_JUNIT_TEST_SPEC </li> <li> APPIUM_JAVA_TESTNG_TEST_SPEC </li> <li> APPIUM_PYTHON_TEST_SPEC </li> <li> APPIUM_NODE_TEST_SPEC </li> <li> APPIUM_RUBY_TEST_SPEC </li> <li> APPIUM_WEB_JAVA_JUNIT_TEST_SPEC </li> <li> APPIUM_WEB_JAVA_TESTNG_TEST_SPEC </li> <li> APPIUM_WEB_PYTHON_TEST_SPEC </li> <li> APPIUM_WEB_NODE_TEST_SPEC </li> <li> APPIUM_WEB_RUBY_TEST_SPEC </li> <li> INSTRUMENTATION_TEST_SPEC </li> <li> XCTEST_UI_TEST_SPEC </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>created</i> When the upload was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The upload's file name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The upload's ARN.<br/>        """
        pass

    def create_vpce_configuration(self, serviceDnsName: str, vpceServiceName: str, vpceConfigurationName: str, vpceConfigurationDescription: str=None) -> CreateVPCEConfigurationResult:
        r"""Creates a configuration record in Device Farm for your Amazon Virtual Private Cloud (VPC) endpoint.

        :param self:
        :param vpceConfigurationDescription:  An optional description that provides details about your VPC endpoint configuration.<br/>serviceDnsName:  The DNS name of the service running in your VPC that you want Device Farm to test.<br/>vpceServiceName:  The name of the VPC endpoint service running in your AWS account that you want Device Farm to test.<br/>vpceConfigurationName:  The friendly name you give to your VPC endpoint configuration, to manage your configurations more easily.<br/>
        :return: vpceConfiguration:  An object that contains information about your VPC endpoint configuration.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>vpceConfigurationDescription</i> An optional description that provides details about your VPC endpoint configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>serviceDnsName</i> The DNS name that maps to the private IP address of the service you want to access.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>vpceServiceName</i> The name of the VPC endpoint service running in your AWS account that you want Device Farm to test.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>vpceConfigurationName</i> The friendly name you give to your VPC endpoint configuration to manage your configurations more easily.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the VPC endpoint configuration.<br/>        """
        pass

    def delete_device_pool(self, arn: str) -> DeleteDevicePoolResult:
        r"""Deletes a device pool given the pool ARN. Does not allow deletion of curated pools owned by the system.

        :param self:
        :param arn:  Represents the Amazon Resource Name (ARN) of the Device Farm device pool to delete.<br/>
        :return:         """
        pass

    def delete_instance_profile(self, arn: str) -> DeleteInstanceProfileResult:
        r"""Deletes a profile that can be applied to one or more private device instances.

        :param self:
        :param arn:  The Amazon Resource Name (ARN) of the instance profile you are requesting to delete.<br/>
        :return:         """
        pass

    def delete_network_profile(self, arn: str) -> DeleteNetworkProfileResult:
        r"""Deletes a network profile.

        :param self:
        :param arn:  The ARN of the network profile to delete.<br/>
        :return:         """
        pass

    def delete_project(self, arn: str) -> DeleteProjectResult:
        r"""Deletes an AWS Device Farm project, given the project ARN.  Deleting this resource does not stop an in-progress run.

        :param self:
        :param arn:  Represents the Amazon Resource Name (ARN) of the Device Farm project to delete.<br/>
        :return:         """
        pass

    def delete_remote_access_session(self, arn: str) -> DeleteRemoteAccessSessionResult:
        r"""Deletes a completed remote access session and its results.

        :param self:
        :param arn:  The Amazon Resource Name (ARN) of the session for which you want to delete remote access.<br/>
        :return:         """
        pass

    def delete_run(self, arn: str) -> DeleteRunResult:
        r"""Deletes the run, given the run ARN.  Deleting this resource does not stop an in-progress run.

        :param self:
        :param arn:  The Amazon Resource Name (ARN) for the run to delete.<br/>
        :return:         """
        pass

    def delete_test_grid_project(self, projectArn: str) -> DeleteTestGridProjectResult:
        r""" Deletes a Selenium testing project and all content generated under it.  <important> You cannot undo this operation. </important> <note> You cannot delete a project if it has active sessions. </note>

        :param self:
        :param projectArn:  The ARN of the project to delete, from <a>CreateTestGridProject</a> or <a>ListTestGridProjects</a>.<br/>
        :return:         """
        pass

    def delete_upload(self, arn: str) -> DeleteUploadResult:
        r"""Deletes an upload given the upload ARN.

        :param self:
        :param arn:  Represents the Amazon Resource Name (ARN) of the Device Farm upload to delete.<br/>
        :return:         """
        pass

    def delete_vpce_configuration(self, arn: str) -> DeleteVPCEConfigurationResult:
        r"""Deletes a configuration for your Amazon Virtual Private Cloud (VPC) endpoint.

        :param self:
        :param arn:  The Amazon Resource Name (ARN) of the VPC endpoint configuration you want to delete.<br/>
        :return:         """
        pass

    def get_account_settings(self) -> GetAccountSettingsResult:
        r"""Returns the number of unmetered iOS or unmetered Android devices that have been purchased by the account.

        :param self:
        :param 
        :return: accountSettings:  The account settings.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>skipAppResign</i> When set to <code>true</code>, for private devices, Device Farm does not sign your app again. For public devices, Device Farm always signs your apps again. For more information about how Device Farm re-signs your apps, see <a href="https://aws.amazon.com/device-farm/faq/">Do you modify my app?</a> in the <i>AWS Device Farm FAQs</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>defaultJobTimeoutMinutes</i> The default number of minutes (at the account level) a test run executes before it times out. The default value is 150 minutes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>maxSlots</i> The maximum number of device slots that the AWS account can purchase. Each maximum is expressed as an <code>offering-id:number</code> pair, where the <code>offering-id</code> represents one of the IDs returned by the <code>ListOfferings</code> command.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>trialMinutes</i> Information about an AWS account's usage of free trial device minutes.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>trialMinutes</b>: Information about an AWS account's usage of free trial device minutes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>maxJobTimeoutMinutes</i> The maximum number of minutes a test run executes before it times out.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>unmeteredRemoteAccessDevices</i> Returns the unmetered remote access devices you have purchased or want to purchase.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>unmeteredDevices</i> Returns the unmetered devices you have purchased or want to purchase.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>awsAccountNumber</i> The AWS account number specified in the <code>AccountSettings</code> container.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>remaining</i> The number of free trial minutes remaining in the account.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>total</i> The total number of free trial minutes that the account started with.<br/>        """
        pass

    def get_device(self, arn: str) -> GetDeviceResult:
        r"""Gets information about a unique device type.

        :param self:
        :param arn:  The device type's ARN.<br/>
        :return: device:  An object that contains information about the requested device.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>availability</i> Indicates how likely a device is available for a test run. Currently available in the <a>ListDevices</a> and GetDevice API methods.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>instances</i> The instances that belong to this device.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>fleetName</i> The name of the fleet to which this device belongs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>fleetType</i> The type of fleet to which this device belongs. Possible values are PRIVATE and PUBLIC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>remoteDebugEnabled</i> This flag is set to <code>true</code> if remote debugging is enabled for the device. Remote debugging is <a href="https://docs.aws.amazon.com/devicefarm/latest/developerguide/history.html">no longer supported</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>remoteAccessEnabled</i> Specifies whether remote access has been enabled for the specified device.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>radio</i> The device's radio.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>carrier</i> The device's carrier.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>image</i> The device's image name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>memory</i> The device's total memory size, expressed in bytes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>heapSize</i> The device's heap size, expressed in bytes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resolution</i> The resolution of the device.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>resolution</b>: The resolution of the device.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>cpu</i> Information about the device's CPU.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>cpu</b>: Information about the device's CPU.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>os</i> The device's operating system type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>platform</i> The device's platform. Allowed values include: <ul> <li> ANDROID </li> <li> IOS </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>formFactor</i> The device's form factor. Allowed values include: <ul> <li> PHONE </li> <li> TABLET </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>modelId</i> The device's model ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>model</i> The device's model name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>manufacturer</i> The device's manufacturer name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The device's display name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The device's ARN.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>clock</i> The clock speed of the device's CPU, expressed in hertz (Hz). For example, a 1.2 GHz CPU is expressed as 1200000000.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>architecture</i> The CPU's architecture (for example, x86 or ARM).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>frequency</i> The CPU's frequency.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>height</i> The screen resolution's height, expressed in pixels.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>width</i> The screen resolution's width, expressed in pixels.<br/>        """
        pass

    def get_device_instance(self, arn: str) -> GetDeviceInstanceResult:
        r"""Returns information about a device instance that belongs to a private device fleet.

        :param self:
        :param arn:  The Amazon Resource Name (ARN) of the instance you're requesting information about.<br/>
        :return: deviceInstance:  An object that contains information about your device instance.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>instanceProfile</i> A object that contains information about the instance profile.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>instanceProfile</b>: A object that contains information about the instance profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>udid</i> Unique device identifier for the device instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the device instance. Valid values are listed here.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>labels</i> An array of strings that describe the device instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deviceArn</i> The ARN of the device.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the device instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> The description of the instance profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the instance profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>rebootAfterUse</i> When set to <code>true</code>, Device Farm reboots the instance after a test run. The default value is <code>true</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>excludeAppPackagesFromCleanup</i> An array of strings containing the list of app packages that should not be cleaned up from the device after a test run completes. The list of packages is considered only if you set <code>packageCleanup</code> to <code>true</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>packageCleanup</i> When set to <code>true</code>, Device Farm removes app packages after a test run. The default value is <code>false</code> for private devices.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the instance profile.<br/>        """
        pass

    def get_device_pool(self, arn: str) -> GetDevicePoolResult:
        r"""Gets information about a device pool.

        :param self:
        :param arn:  The device pool's ARN.<br/>
        :return: devicePool:  An object that contains information about the requested device pool.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>maxDevices</i> The number of devices that Device Farm can add to your device pool. Device Farm adds devices that are available and meet the criteria that you assign for the <code>rules</code> parameter. Depending on how many devices meet these constraints, your device pool might contain fewer devices than the value for this parameter. By specifying the maximum number of devices, you can control the costs that you incur by running tests.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>rules</i> Information about the device pool's rules.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The device pool's type. Allowed values include: <ul> <li> CURATED: A device pool that is created and managed by AWS Device Farm. </li> <li> PRIVATE: A device pool that is created and managed by the device pool developer. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> The device pool's description.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The device pool's name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The device pool's ARN.<br/>        """
        pass

    def get_device_pool_compatibility(self, devicePoolArn: str, appArn: str=None, testType: str=None, test: ScheduleRunTest=None, configuration: ScheduleRunConfiguration=None) -> GetDevicePoolCompatibilityResult:
        r"""Gets information about compatibility with a device pool.

        :param self:
        :param configuration:  An object that contains information about the settings for a run.:<br/>test:  Information about the uploaded test to be run against the device pool.:<br/>testType:  The test type for the specified device pool. Allowed values include the following: <ul> <li> BUILTIN_FUZZ. </li> <li> BUILTIN_EXPLORER. For Android, an app explorer that traverses an Android app, interacting with it and capturing screenshots at the same time. </li> <li> APPIUM_JAVA_JUNIT. </li> <li> APPIUM_JAVA_TESTNG. </li> <li> APPIUM_PYTHON. </li> <li> APPIUM_NODE. </li> <li> APPIUM_RUBY. </li> <li> APPIUM_WEB_JAVA_JUNIT. </li> <li> APPIUM_WEB_JAVA_TESTNG. </li> <li> APPIUM_WEB_PYTHON. </li> <li> APPIUM_WEB_NODE. </li> <li> APPIUM_WEB_RUBY. </li> <li> CALABASH. </li> <li> INSTRUMENTATION. </li> <li> UIAUTOMATION. </li> <li> UIAUTOMATOR. </li> <li> XCTEST. </li> <li> XCTEST_UI. </li> </ul><br/>appArn:  The ARN of the app that is associated with the specified device pool.<br/>devicePoolArn:  The device pool's ARN.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>parameters</i> The test's parameters, such as test framework parameters and fixture settings. Parameters are represented by name-value pairs of strings. For all tests: <ul> <li>  <code>app_performance_monitoring</code>: Performance monitoring is enabled by default. Set this parameter to false to disable it. </li> </ul> For Calabash tests: <ul> <li> profile: A cucumber profile (for example, <code>my_profile_name</code>). </li> <li> tags: You can limit execution to features or scenarios that have (or don't have) certain tags (for example, @smoke or @smoke,~@wip). </li> </ul> For Appium tests (all types): <ul> <li> appium_version: The Appium version. Currently supported values are 1.6.5 (and later), latest, and default. <ul> <li> latest runs the latest Appium version supported by Device Farm (1.9.1). </li> <li> For default, Device Farm selects a compatible version of Appium for the device. The current behavior is to run 1.7.2 on Android devices and iOS 9 and earlier and 1.7.2 for iOS 10 and later. </li> <li> This behavior is subject to change. </li> </ul> </li> </ul> For fuzz tests (Android only): <ul> <li> event_count: The number of events, between 1 and 10000, that the UI fuzz test should perform. </li> <li> throttle: The time, in ms, between 0 and 1000, that the UI fuzz test should wait between events. </li> <li> seed: A seed to use for randomizing the UI fuzz test. Using the same seed value between tests ensures identical event sequences. </li> </ul> For Explorer tests: <ul> <li> username: A user name to use if the Explorer encounters a login form. If not supplied, no user name is inserted. </li> <li> password: A password to use if the Explorer encounters a login form. If not supplied, no password is inserted. </li> </ul> For Instrumentation: <ul> <li> filter: A test filter string. Examples: <ul> <li> Running a single test case: <code>com.android.abc.Test1</code>  </li> <li> Running a single test: <code>com.android.abc.Test1#smoke</code>  </li> <li> Running multiple tests: <code>com.android.abc.Test1,com.android.abc.Test2</code>  </li> </ul> </li> </ul> For XCTest and XCTestUI: <ul> <li> filter: A test filter string. Examples: <ul> <li> Running a single test class: <code>LoginTests</code>  </li> <li> Running a multiple test classes: <code>LoginTests,SmokeTests</code>  </li> <li> Running a single test: <code>LoginTests/testValid</code>  </li> <li> Running multiple tests: <code>LoginTests/testValid,LoginTests/testInvalid</code>  </li> </ul> </li> </ul> For UIAutomator: <ul> <li> filter: A test filter string. Examples: <ul> <li> Running a single test case: <code>com.android.abc.Test1</code>  </li> <li> Running a single test: <code>com.android.abc.Test1#smoke</code>  </li> <li> Running multiple tests: <code>com.android.abc.Test1,com.android.abc.Test2</code>  </li> </ul> </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>filter</i> The test's filter.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>testSpecArn</i> The ARN of the YAML-formatted test specification.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>testPackageArn</i> The ARN of the uploaded test to be run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The test's type. Must be one of the following values: <ul> <li> BUILTIN_FUZZ </li> <li> BUILTIN_EXPLORER. For Android, an app explorer that traverses an Android app, interacting with it and capturing screenshots at the same time. </li> <li> APPIUM_JAVA_JUNIT </li> <li> APPIUM_JAVA_TESTNG </li> <li> APPIUM_PYTHON </li> <li> APPIUM_NODE </li> <li> APPIUM_RUBY </li> <li> APPIUM_WEB_JAVA_JUNIT </li> <li> APPIUM_WEB_JAVA_TESTNG </li> <li> APPIUM_WEB_PYTHON </li> <li> APPIUM_WEB_NODE </li> <li> APPIUM_WEB_RUBY </li> <li> CALABASH </li> <li> INSTRUMENTATION </li> <li> UIAUTOMATION </li> <li> UIAUTOMATOR </li> <li> XCTEST </li> <li> XCTEST_UI </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>billingMethod</i> Specifies the billing method for a test run: <code>metered</code> or <code>unmetered</code>. If the parameter is not specified, the default value is <code>metered</code>. <note> If you have purchased unmetered device slots, you must set this parameter to <code>unmetered</code> to make use of them. Otherwise, your run counts against your metered time. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>auxiliaryApps</i> A list of upload ARNs for app packages to be installed with your app.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>radios</i> Information about the radio states for the run.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>radios</b>: Information about the radio states for the run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>customerArtifactPaths</i> Input <code>CustomerArtifactPaths</code> object for the scheduled run configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>customerArtifactPaths</b>: Input <code>CustomerArtifactPaths</code> object for the scheduled run configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>vpceConfigurationArns</i> An array of ARNs for your VPC endpoint configurations.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i> Information about the location that is used for the run.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>location</b>: Information about the location that is used for the run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>locale</i> Information about the locale that is used for the run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>networkProfileArn</i> Reserved for internal use.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>extraDataPackageArn</i> The ARN of the extra data for the run. The extra data is a .zip file that AWS Device Farm extracts to external data for Android or the app's sandbox for iOS.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>longitude</i> The longitude.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>latitude</i> The latitude.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>deviceHostPaths</i> Comma-separated list of paths in the test execution environment where the artifacts generated by the customer's tests are pulled from.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>androidPaths</i> Comma-separated list of paths on the Android device where the artifacts generated by the customer's tests are pulled from.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>iosPaths</i> Comma-separated list of paths on the iOS device where the artifacts generated by the customer's tests are pulled from.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>gps</i> True if GPS is enabled at the beginning of the test. Otherwise, false.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>nfc</i> True if NFC is enabled at the beginning of the test. Otherwise, false.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>bluetooth</i> True if Bluetooth is enabled at the beginning of the test. Otherwise, false.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>wifi</i> True if Wi-Fi is enabled at the beginning of the test. Otherwise, false.<br/>
        :return: incompatibleDevices:  Information about incompatible devices.<br/>compatibleDevices:  Information about compatible devices.<br/>        """
        pass

    def get_instance_profile(self, arn: str) -> GetInstanceProfileResult:
        r"""Returns information about the specified instance profile.

        :param self:
        :param arn:  The Amazon Resource Name (ARN) of an instance profile.<br/>
        :return: instanceProfile:  An object that contains information about an instance profile.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> The description of the instance profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the instance profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>rebootAfterUse</i> When set to <code>true</code>, Device Farm reboots the instance after a test run. The default value is <code>true</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>excludeAppPackagesFromCleanup</i> An array of strings containing the list of app packages that should not be cleaned up from the device after a test run completes. The list of packages is considered only if you set <code>packageCleanup</code> to <code>true</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>packageCleanup</i> When set to <code>true</code>, Device Farm removes app packages after a test run. The default value is <code>false</code> for private devices.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the instance profile.<br/>        """
        pass

    def get_job(self, arn: str) -> GetJobResult:
        r"""Gets information about a job.

        :param self:
        :param arn:  The job's ARN.<br/>
        :return: job:  An object that contains information about the requested job.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>videoCapture</i> This value is set to true if video capture is enabled. Otherwise, it is set to false.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>videoEndpoint</i> The endpoint for streaming device video.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deviceMinutes</i> Represents the total (metered or unmetered) minutes used by the job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>deviceMinutes</b>: Represents the total (metered or unmetered) minutes used by the job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>instanceArn</i> The ARN of the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>device</i> The device (phone or tablet).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>device</b>: The device (phone or tablet).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>message</i> A message about the job's result.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>counters</i> The job's result counters.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>counters</b>: The job's result counters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>stopped</i> The job's stop time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>started</i> The job's start time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>result</i> The job's result. Allowed values include: <ul> <li> PENDING </li> <li> PASSED </li> <li> WARNED </li> <li> FAILED </li> <li> SKIPPED </li> <li> ERRORED </li> <li> STOPPED </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The job's status. Allowed values include: <ul> <li> PENDING </li> <li> PENDING_CONCURRENCY </li> <li> PENDING_DEVICE </li> <li> PROCESSING </li> <li> SCHEDULING </li> <li> PREPARING </li> <li> RUNNING </li> <li> COMPLETED </li> <li> STOPPING </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>created</i> When the job was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The job's type. Allowed values include the following: <ul> <li> BUILTIN_FUZZ </li> <li> BUILTIN_EXPLORER. For Android, an app explorer that traverses an Android app, interacting with it and capturing screenshots at the same time. </li> <li> APPIUM_JAVA_JUNIT </li> <li> APPIUM_JAVA_TESTNG </li> <li> APPIUM_PYTHON </li> <li> APPIUM_NODE </li> <li> APPIUM_RUBY </li> <li> APPIUM_WEB_JAVA_JUNIT </li> <li> APPIUM_WEB_JAVA_TESTNG </li> <li> APPIUM_WEB_PYTHON </li> <li> APPIUM_WEB_NODE </li> <li> APPIUM_WEB_RUBY </li> <li> CALABASH </li> <li> INSTRUMENTATION </li> <li> UIAUTOMATION </li> <li> UIAUTOMATOR </li> <li> XCTEST </li> <li> XCTEST_UI </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The job's name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The job's ARN.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>skipped</i> The number of skipped entities.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>stopped</i> The number of stopped entities.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>errored</i> The number of errored entities.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>warned</i> The number of warned entities.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>failed</i> The number of failed entities.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>passed</i> The number of passed entities.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>total</i> The total number of entities.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>os</i> The device's operating system type.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>platform</i> The device's platform. Allowed values include: <ul> <li> ANDROID </li> <li> IOS </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>formFactor</i> The device's form factor. Allowed values include: <ul> <li> PHONE </li> <li> TABLET </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>modelId</i> The device's model ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>model</i> The device's model name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>manufacturer</i> The device's manufacturer name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The device's display name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The device's ARN.<br/>Information about the device's CPU.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>cpu</b>: Information about the device's CPU.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>unmetered</i> When specified, represents only the sum of unmetered minutes used by the resource to run tests.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>metered</i> When specified, represents only the sum of metered minutes used by the resource to run tests.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>total</i> When specified, represents the total minutes used by the resource to run tests.<br/>        """
        pass

    def get_network_profile(self, arn: str) -> GetNetworkProfileResult:
        r"""Returns information about a network profile.

        :param self:
        :param arn:  The ARN of the network profile to return information about.<br/>
        :return: networkProfile:  The network profile.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>downlinkLossPercent</i> Proportion of received packets that fail to arrive from 0 to 100 percent.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>uplinkLossPercent</i> Proportion of transmitted packets that fail to arrive from 0 to 100 percent.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>downlinkJitterMs</i> Time variation in the delay of received packets in milliseconds as an integer from 0 to 2000.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>uplinkJitterMs</i> Time variation in the delay of received packets in milliseconds as an integer from 0 to 2000.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>downlinkDelayMs</i> Delay time for all packets to destination in milliseconds as an integer from 0 to 2000.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>uplinkDelayMs</i> Delay time for all packets to destination in milliseconds as an integer from 0 to 2000.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>downlinkBandwidthBits</i> The data throughput rate in bits per second, as an integer from 0 to 104857600.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>uplinkBandwidthBits</i> The data throughput rate in bits per second, as an integer from 0 to 104857600.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of network profile. Valid values are listed here.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> The description of the network profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the network profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the network profile.<br/>        """
        pass

    def get_offering_status(self, nextToken: str=None) -> GetOfferingStatusResult:
        r"""Gets the current status and future status of all offerings purchased by an AWS account. The response indicates how many offerings are currently available and the offerings that will be available in the next period. The API returns a <code>NotEligible</code> error if the user is not permitted to invoke the operation. If you must be able to invoke this operation, contact <a href="mailto:aws-devicefarm-support@amazon.com">aws-devicefarm-support@amazon.com</a>.

        :param self:
        :param nextToken:  An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.<br/>
        :return: nextToken:  An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.<br/>nextPeriod:  When specified, gets the offering status for the next period.<br/>current:  When specified, gets the offering status for the current period.<br/>        """
        pass

    def get_project(self, arn: str) -> GetProjectResult:
        r"""Gets information about a project.

        :param self:
        :param arn:  The project's ARN.<br/>
        :return: project:  The project to get information about.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>created</i> When the project was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>defaultJobTimeoutMinutes</i> The default number of minutes (at the project level) a test run executes before it times out. The default value is 150 minutes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The project's name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The project's ARN.<br/>        """
        pass

    def get_remote_access_session(self, arn: str) -> GetRemoteAccessSessionResult:
        r"""Returns a link to a currently running remote access session.

        :param self:
        :param arn:  The Amazon Resource Name (ARN) of the remote access session about which you want to get session information.<br/>
        :return: remoteAccessSession:  A container that lists detailed information about the remote access session.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>skipAppResign</i> When set to <code>true</code>, for private devices, Device Farm does not sign your app again. For public devices, Device Farm always signs your apps again. For more information about how Device Farm re-signs your apps, see <a href="https://aws.amazon.com/device-farm/faq/">Do you modify my app?</a> in the <i>AWS Device Farm FAQs</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>interactionMode</i> The interaction mode of the remote access session. Valid values are: <ul> <li> INTERACTIVE: You can interact with the iOS device by viewing, touching, and rotating the screen. You cannot run XCUITest framework-based tests in this mode. </li> <li> NO_VIDEO: You are connected to the device, but cannot interact with it or view the screen. This mode has the fastest test execution speed. You can run XCUITest framework-based tests in this mode. </li> <li> VIDEO_ONLY: You can view the screen, but cannot touch or rotate it. You can run XCUITest framework-based tests and watch the screen in this mode. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deviceUdid</i> Unique device identifier for the remote device. Only returned if remote debugging is enabled for the remote access session. Remote debugging is <a href="https://docs.aws.amazon.com/devicefarm/latest/developerguide/history.html">no longer supported</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>endpoint</i> The endpoint for the remote access sesssion.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deviceMinutes</i> The number of minutes a device is used in a remote access session (including setup and teardown minutes).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>deviceMinutes</b>: The number of minutes a device is used in a remote access session (including setup and teardown minutes).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>billingMethod</i> The billing method of the remote access session. Possible values include <code>METERED</code> or <code>UNMETERED</code>. For more information about metered devices, see <a href="https://docs.aws.amazon.com/devicefarm/latest/developerguide/welcome.html#welcome-terminology">AWS Device Farm terminology</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>clientId</i> Unique identifier of your client for the remote access session. Only returned if remote debugging is enabled for the remote access session. Remote debugging is <a href="https://docs.aws.amazon.com/devicefarm/latest/developerguide/history.html">no longer supported</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>hostAddress</i> IP address of the EC2 host where you need to connect to remotely debug devices. Only returned if remote debugging is enabled for the remote access session. Remote debugging is <a href="https://docs.aws.amazon.com/devicefarm/latest/developerguide/history.html">no longer supported</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>remoteRecordAppArn</i> The ARN for the app to be recorded in the remote access session.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>remoteRecordEnabled</i> This flag is set to <code>true</code> if remote recording is enabled for the remote access session.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>remoteDebugEnabled</i> This flag is set to <code>true</code> if remote debugging is enabled for the remote access session. Remote debugging is <a href="https://docs.aws.amazon.com/devicefarm/latest/developerguide/history.html">no longer supported</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>instanceArn</i> The ARN of the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>device</i> The device (phone or tablet) used in the remote access session.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>device</b>: The device (phone or tablet) used in the remote access session.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>stopped</i> The date and time the remote access session was stopped.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>started</i> The date and time the remote access session was started.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>message</i> A message about the remote access session.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>result</i> The result of the remote access session. Can be any of the following: <ul> <li> PENDING. </li> <li> PASSED. </li> <li> WARNED. </li> <li> FAILED. </li> <li> SKIPPED. </li> <li> ERRORED. </li> <li> STOPPED. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the remote access session. Can be any of the following: <ul> <li> PENDING. </li> <li> PENDING_CONCURRENCY. </li> <li> PENDING_DEVICE. </li> <li> PROCESSING. </li> <li> SCHEDULING. </li> <li> PREPARING. </li> <li> RUNNING. </li> <li> COMPLETED. </li> <li> STOPPING. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>created</i> The date and time the remote access session was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the remote access session.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the remote access session.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>os</i> The device's operating system type.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>platform</i> The device's platform. Allowed values include: <ul> <li> ANDROID </li> <li> IOS </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>formFactor</i> The device's form factor. Allowed values include: <ul> <li> PHONE </li> <li> TABLET </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>modelId</i> The device's model ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>model</i> The device's model name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>manufacturer</i> The device's manufacturer name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The device's display name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The device's ARN.<br/>Information about the device's CPU.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>cpu</b>: Information about the device's CPU.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>unmetered</i> When specified, represents only the sum of unmetered minutes used by the resource to run tests.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>metered</i> When specified, represents only the sum of metered minutes used by the resource to run tests.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>total</i> When specified, represents the total minutes used by the resource to run tests.<br/>        """
        pass

    def get_run(self, arn: str) -> GetRunResult:
        r"""Gets information about a run.

        :param self:
        :param arn:  The run's ARN.<br/>
        :return: run:  The run to get results from.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deviceSelectionResult</i> The results of a device filter used to select the devices for a test run.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>deviceSelectionResult</b>: The results of a device filter used to select the devices for a test run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>testSpecArn</i> The ARN of the YAML-formatted test specification for the run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>skipAppResign</i> When set to <code>true</code>, for private devices, Device Farm does not sign your app again. For public devices, Device Farm always signs your apps again. For more information about how Device Farm re-signs your apps, see <a href="https://aws.amazon.com/device-farm/faq/">Do you modify my app?</a> in the <i>AWS Device Farm FAQs</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>webUrl</i> The Device Farm console URL for the recording of the run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>customerArtifactPaths</i> Output <code>CustomerArtifactPaths</code> object for the test run.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>customerArtifactPaths</b>: Output <code>CustomerArtifactPaths</code> object for the test run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i> Information about the location that is used for the run.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>location</b>: Information about the location that is used for the run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>radios</i> Information about the radio states for the run.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>radios</b>: Information about the radio states for the run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>locale</i> Information about the locale that is used for the run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>devicePoolArn</i> The ARN of the device pool for the run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>jobTimeoutMinutes</i> The number of minutes the job executes before it times out.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>eventCount</i> For fuzz tests, this is the number of events, between 1 and 10000, that the UI fuzz test should perform.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>appUpload</i> An app to upload or that has been uploaded.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>seed</i> For fuzz tests, this is a seed to use for randomizing the UI fuzz test. Using the same seed value between tests ensures identical event sequences.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resultCode</i> Supporting field for the result field. Set only if <code>result</code> is <code>SKIPPED</code>. <code>PARSING_FAILED</code> if the result is skipped because of test package parsing failure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>parsingResultUrl</i> Read-only URL for an object in an S3 bucket where you can get the parsing results of the test package. If the test package doesn't parse, the reason why it doesn't parse appears in the file that this URL points to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>networkProfile</i> The network profile being used for a test run.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>networkProfile</b>: The network profile being used for a test run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deviceMinutes</i> Represents the total (metered or unmetered) minutes used by the test run.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>deviceMinutes</b>: Represents the total (metered or unmetered) minutes used by the test run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>billingMethod</i> Specifies the billing method for a test run: <code>metered</code> or <code>unmetered</code>. If the parameter is not specified, the default value is <code>metered</code>. <note> If you have unmetered device slots, you must set this to <code>unmetered</code> to use them. Otherwise, the run is counted toward metered device minutes. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>completedJobs</i> The total number of completed jobs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>totalJobs</i> The total number of jobs for the run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>message</i> A message about the run's result.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>counters</i> The run's result counters.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>counters</b>: The run's result counters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>stopped</i> The run's stop time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>started</i> The run's start time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>result</i> The run's result. Allowed values include: <ul> <li> PENDING </li> <li> PASSED </li> <li> WARNED </li> <li> FAILED </li> <li> SKIPPED </li> <li> ERRORED </li> <li> STOPPED </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The run's status. Allowed values include: <ul> <li> PENDING </li> <li> PENDING_CONCURRENCY </li> <li> PENDING_DEVICE </li> <li> PROCESSING </li> <li> SCHEDULING </li> <li> PREPARING </li> <li> RUNNING </li> <li> COMPLETED </li> <li> STOPPING </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>created</i> When the run was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>platform</i> The run's platform. Allowed values include: <ul> <li> ANDROID </li> <li> IOS </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The run's type. Must be one of the following values: <ul> <li> BUILTIN_FUZZ </li> <li> BUILTIN_EXPLORER <note> For Android, an app explorer that traverses an Android app, interacting with it and capturing screenshots at the same time. </note> </li> <li> APPIUM_JAVA_JUNIT </li> <li> APPIUM_JAVA_TESTNG </li> <li> APPIUM_PYTHON </li> <li> APPIUM_NODE </li> <li> APPIUM_RUBY </li> <li> APPIUM_WEB_JAVA_JUNIT </li> <li> APPIUM_WEB_JAVA_TESTNG </li> <li> APPIUM_WEB_PYTHON </li> <li> APPIUM_WEB_NODE </li> <li> APPIUM_WEB_RUBY </li> <li> CALABASH </li> <li> INSTRUMENTATION </li> <li> UIAUTOMATION </li> <li> UIAUTOMATOR </li> <li> XCTEST </li> <li> XCTEST_UI </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The run's name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The run's ARN.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>skipped</i> The number of skipped entities.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>stopped</i> The number of stopped entities.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>errored</i> The number of errored entities.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>warned</i> The number of warned entities.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>failed</i> The number of failed entities.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>passed</i> The number of passed entities.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>total</i> The total number of entities.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>unmetered</i> When specified, represents only the sum of unmetered minutes used by the resource to run tests.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>metered</i> When specified, represents only the sum of metered minutes used by the resource to run tests.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>total</i> When specified, represents the total minutes used by the resource to run tests.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>downlinkLossPercent</i> Proportion of received packets that fail to arrive from 0 to 100 percent.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>uplinkLossPercent</i> Proportion of transmitted packets that fail to arrive from 0 to 100 percent.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>downlinkJitterMs</i> Time variation in the delay of received packets in milliseconds as an integer from 0 to 2000.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>uplinkJitterMs</i> Time variation in the delay of received packets in milliseconds as an integer from 0 to 2000.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>downlinkDelayMs</i> Delay time for all packets to destination in milliseconds as an integer from 0 to 2000.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>uplinkDelayMs</i> Delay time for all packets to destination in milliseconds as an integer from 0 to 2000.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>downlinkBandwidthBits</i> The data throughput rate in bits per second, as an integer from 0 to 104857600.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>uplinkBandwidthBits</i> The data throughput rate in bits per second, as an integer from 0 to 104857600.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of network profile. Valid values are listed here.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> The description of the network profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the network profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the network profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>gps</i> True if GPS is enabled at the beginning of the test. Otherwise, false.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>nfc</i> True if NFC is enabled at the beginning of the test. Otherwise, false.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>bluetooth</i> True if Bluetooth is enabled at the beginning of the test. Otherwise, false.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>wifi</i> True if Wi-Fi is enabled at the beginning of the test. Otherwise, false.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>longitude</i> The longitude.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>latitude</i> The latitude.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>deviceHostPaths</i> Comma-separated list of paths in the test execution environment where the artifacts generated by the customer's tests are pulled from.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>androidPaths</i> Comma-separated list of paths on the Android device where the artifacts generated by the customer's tests are pulled from.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>iosPaths</i> Comma-separated list of paths on the iOS device where the artifacts generated by the customer's tests are pulled from.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>maxDevices</i> The maximum number of devices to be selected by a device filter and included in a test run.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>matchedDevicesCount</i> The number of devices that matched the device filter selection criteria.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>filters</i> The filters in a device selection result.<br/>        """
        pass

    def get_suite(self, arn: str) -> GetSuiteResult:
        r"""Gets information about a suite.

        :param self:
        :param arn:  The suite's ARN.<br/>
        :return: suite:  A collection of one or more tests.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deviceMinutes</i> Represents the total (metered or unmetered) minutes used by the test suite.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>deviceMinutes</b>: Represents the total (metered or unmetered) minutes used by the test suite.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>message</i> A message about the suite's result.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>counters</i> The suite's result counters.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>counters</b>: The suite's result counters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>stopped</i> The suite's stop time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>started</i> The suite's start time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>result</i> The suite's result. Allowed values include: <ul> <li> PENDING </li> <li> PASSED </li> <li> WARNED </li> <li> FAILED </li> <li> SKIPPED </li> <li> ERRORED </li> <li> STOPPED </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The suite's status. Allowed values include: <ul> <li> PENDING </li> <li> PENDING_CONCURRENCY </li> <li> PENDING_DEVICE </li> <li> PROCESSING </li> <li> SCHEDULING </li> <li> PREPARING </li> <li> RUNNING </li> <li> COMPLETED </li> <li> STOPPING </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>created</i> When the suite was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The suite's type. Must be one of the following values: <ul> <li> BUILTIN_FUZZ </li> <li> BUILTIN_EXPLORER  <note> Only available for Android; an app explorer that traverses an Android app, interacting with it and capturing screenshots at the same time. </note> </li> <li> APPIUM_JAVA_JUNIT </li> <li> APPIUM_JAVA_TESTNG </li> <li> APPIUM_PYTHON </li> <li> APPIUM_NODE </li> <li> APPIUM_RUBY </li> <li> APPIUM_WEB_JAVA_JUNIT </li> <li> APPIUM_WEB_JAVA_TESTNG </li> <li> APPIUM_WEB_PYTHON </li> <li> APPIUM_WEB_NODE </li> <li> APPIUM_WEB_RUBY </li> <li> CALABASH </li> <li> INSTRUMENTATION </li> <li> UIAUTOMATION </li> <li> UIAUTOMATOR </li> <li> XCTEST </li> <li> XCTEST_UI </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The suite's name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The suite's ARN.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>skipped</i> The number of skipped entities.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>stopped</i> The number of stopped entities.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>errored</i> The number of errored entities.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>warned</i> The number of warned entities.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>failed</i> The number of failed entities.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>passed</i> The number of passed entities.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>total</i> The total number of entities.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>unmetered</i> When specified, represents only the sum of unmetered minutes used by the resource to run tests.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>metered</i> When specified, represents only the sum of metered minutes used by the resource to run tests.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>total</i> When specified, represents the total minutes used by the resource to run tests.<br/>        """
        pass

    def get_test(self, arn: str) -> GetTestResult:
        r"""Gets information about a test.

        :param self:
        :param arn:  The test's ARN.<br/>
        :return: test:  A test condition that is evaluated.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deviceMinutes</i> Represents the total (metered or unmetered) minutes used by the test.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>deviceMinutes</b>: Represents the total (metered or unmetered) minutes used by the test.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>message</i> A message about the test's result.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>counters</i> The test's result counters.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>counters</b>: The test's result counters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>stopped</i> The test's stop time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>started</i> The test's start time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>result</i> The test's result. Allowed values include: <ul> <li> PENDING </li> <li> PASSED </li> <li> WARNED </li> <li> FAILED </li> <li> SKIPPED </li> <li> ERRORED </li> <li> STOPPED </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The test's status. Allowed values include: <ul> <li> PENDING </li> <li> PENDING_CONCURRENCY </li> <li> PENDING_DEVICE </li> <li> PROCESSING </li> <li> SCHEDULING </li> <li> PREPARING </li> <li> RUNNING </li> <li> COMPLETED </li> <li> STOPPING </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>created</i> When the test was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The test's type. Must be one of the following values: <ul> <li> BUILTIN_FUZZ </li> <li> BUILTIN_EXPLORER <note> For Android, an app explorer that traverses an Android app, interacting with it and capturing screenshots at the same time. </note> </li> <li> APPIUM_JAVA_JUNIT </li> <li> APPIUM_JAVA_TESTNG </li> <li> APPIUM_PYTHON </li> <li> APPIUM_NODE </li> <li> APPIUM_RUBY </li> <li> APPIUM_WEB_JAVA_JUNIT </li> <li> APPIUM_WEB_JAVA_TESTNG </li> <li> APPIUM_WEB_PYTHON </li> <li> APPIUM_WEB_NODE </li> <li> APPIUM_WEB_RUBY </li> <li> CALABASH </li> <li> INSTRUMENTATION </li> <li> UIAUTOMATION </li> <li> UIAUTOMATOR </li> <li> XCTEST </li> <li> XCTEST_UI </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The test's name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The test's ARN.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>skipped</i> The number of skipped entities.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>stopped</i> The number of stopped entities.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>errored</i> The number of errored entities.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>warned</i> The number of warned entities.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>failed</i> The number of failed entities.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>passed</i> The number of passed entities.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>total</i> The total number of entities.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>unmetered</i> When specified, represents only the sum of unmetered minutes used by the resource to run tests.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>metered</i> When specified, represents only the sum of metered minutes used by the resource to run tests.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>total</i> When specified, represents the total minutes used by the resource to run tests.<br/>        """
        pass

    def get_test_grid_project(self, projectArn: str) -> GetTestGridProjectResult:
        r"""Retrieves information about a Selenium testing project.

        :param self:
        :param projectArn:  The ARN of the Selenium testing project, from either <a>CreateTestGridProject</a> or <a>ListTestGridProjects</a>.<br/>
        :return: testGridProject:  A <a>TestGridProject</a>.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>created</i> When the project was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>vpcConfig</i> The VPC security groups and subnets that are attached to a project.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>vpcConfig</b>: The VPC security groups and subnets that are attached to a project.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> A human-readable description for the project.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> A human-readable name for the project.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The ARN for the project.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>vpcId</i> The ID of the Amazon VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>subnetIds</i> A list of VPC subnet IDs in your Amazon VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>securityGroupIds</i> A list of VPC security group IDs in your Amazon VPC.<br/>        """
        pass

    def get_test_grid_session(self, projectArn: str=None, sessionId: str=None, sessionArn: str=None) -> GetTestGridSessionResult:
        r"""A session is an instance of a browser created through a <code>RemoteWebDriver</code> with the URL from <a>CreateTestGridUrlResult$url</a>. You can use the following to look up sessions: <ul> <li> The session ARN (<a>GetTestGridSessionRequest$sessionArn</a>). </li> <li> The project ARN and a session ID (<a>GetTestGridSessionRequest$projectArn</a> and <a>GetTestGridSessionRequest$sessionId</a>). </li> </ul> <p/>

        :param self:
        :param sessionArn:  An ARN that uniquely identifies a <a>TestGridSession</a>.<br/>sessionId:  An ID associated with this session.<br/>projectArn:  The ARN for the project that this session belongs to. See <a>CreateTestGridProject</a> and <a>ListTestGridProjects</a>.<br/>
        :return: testGridSession:  The <a>TestGridSession</a> that was requested.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>seleniumProperties</i> A JSON object of options and parameters passed to the Selenium WebDriver.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>billingMinutes</i> The number of billed minutes that were used for this session. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ended</i> The time the session ended.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>created</i> The time that the session was started.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The state of the session.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The ARN of the session.<br/>        """
        pass

    def get_upload(self, arn: str) -> GetUploadResult:
        r"""Gets information about an upload.

        :param self:
        :param arn:  The upload's ARN.<br/>
        :return: upload:  An app or a set of one or more tests to upload or that have been uploaded.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>category</i> The upload's category. Allowed values include: <ul> <li> CURATED: An upload managed by AWS Device Farm. </li> <li> PRIVATE: An upload managed by the AWS Device Farm customer. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>message</i> A message about the upload's result.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>contentType</i> The upload's content type (for example, <code>application/octet-stream</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>metadata</i> The upload's metadata. For example, for Android, this contains information that is parsed from the manifest and is displayed in the AWS Device Farm console after the associated app is uploaded.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>url</i> The presigned Amazon S3 URL that was used to store a file using a PUT request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The upload's status. Must be one of the following values: <ul> <li> FAILED </li> <li> INITIALIZED </li> <li> PROCESSING </li> <li> SUCCEEDED </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The upload's type. Must be one of the following values: <ul> <li> ANDROID_APP </li> <li> IOS_APP </li> <li> WEB_APP </li> <li> EXTERNAL_DATA </li> <li> APPIUM_JAVA_JUNIT_TEST_PACKAGE </li> <li> APPIUM_JAVA_TESTNG_TEST_PACKAGE </li> <li> APPIUM_PYTHON_TEST_PACKAGE </li> <li> APPIUM_NODE_TEST_PACKAGE </li> <li> APPIUM_RUBY_TEST_PACKAGE </li> <li> APPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE </li> <li> APPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE </li> <li> APPIUM_WEB_PYTHON_TEST_PACKAGE </li> <li> APPIUM_WEB_NODE_TEST_PACKAGE </li> <li> APPIUM_WEB_RUBY_TEST_PACKAGE </li> <li> CALABASH_TEST_PACKAGE </li> <li> INSTRUMENTATION_TEST_PACKAGE </li> <li> UIAUTOMATION_TEST_PACKAGE </li> <li> UIAUTOMATOR_TEST_PACKAGE </li> <li> XCTEST_TEST_PACKAGE </li> <li> XCTEST_UI_TEST_PACKAGE </li> <li> APPIUM_JAVA_JUNIT_TEST_SPEC </li> <li> APPIUM_JAVA_TESTNG_TEST_SPEC </li> <li> APPIUM_PYTHON_TEST_SPEC </li> <li> APPIUM_NODE_TEST_SPEC </li> <li> APPIUM_RUBY_TEST_SPEC </li> <li> APPIUM_WEB_JAVA_JUNIT_TEST_SPEC </li> <li> APPIUM_WEB_JAVA_TESTNG_TEST_SPEC </li> <li> APPIUM_WEB_PYTHON_TEST_SPEC </li> <li> APPIUM_WEB_NODE_TEST_SPEC </li> <li> APPIUM_WEB_RUBY_TEST_SPEC </li> <li> INSTRUMENTATION_TEST_SPEC </li> <li> XCTEST_UI_TEST_SPEC </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>created</i> When the upload was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The upload's file name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The upload's ARN.<br/>        """
        pass

    def get_vpce_configuration(self, arn: str) -> GetVPCEConfigurationResult:
        r"""Returns information about the configuration settings for your Amazon Virtual Private Cloud (VPC) endpoint.

        :param self:
        :param arn:  The Amazon Resource Name (ARN) of the VPC endpoint configuration you want to describe.<br/>
        :return: vpceConfiguration:  An object that contains information about your VPC endpoint configuration.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>vpceConfigurationDescription</i> An optional description that provides details about your VPC endpoint configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>serviceDnsName</i> The DNS name that maps to the private IP address of the service you want to access.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>vpceServiceName</i> The name of the VPC endpoint service running in your AWS account that you want Device Farm to test.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>vpceConfigurationName</i> The friendly name you give to your VPC endpoint configuration to manage your configurations more easily.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the VPC endpoint configuration.<br/>        """
        pass

    def install_to_remote_access_session(self, appArn: str, remoteAccessSessionArn: str) -> InstallToRemoteAccessSessionResult:
        r"""Installs an application to the device in a remote access session. For Android applications, the file must be in .apk format. For iOS applications, the file must be in .ipa format.

        :param self:
        :param appArn:  The ARN of the app about which you are requesting information.<br/>remoteAccessSessionArn:  The Amazon Resource Name (ARN) of the remote access session about which you are requesting information.<br/>
        :return: appUpload:  An app to upload or that has been uploaded.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>category</i> The upload's category. Allowed values include: <ul> <li> CURATED: An upload managed by AWS Device Farm. </li> <li> PRIVATE: An upload managed by the AWS Device Farm customer. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>message</i> A message about the upload's result.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>contentType</i> The upload's content type (for example, <code>application/octet-stream</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>metadata</i> The upload's metadata. For example, for Android, this contains information that is parsed from the manifest and is displayed in the AWS Device Farm console after the associated app is uploaded.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>url</i> The presigned Amazon S3 URL that was used to store a file using a PUT request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The upload's status. Must be one of the following values: <ul> <li> FAILED </li> <li> INITIALIZED </li> <li> PROCESSING </li> <li> SUCCEEDED </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The upload's type. Must be one of the following values: <ul> <li> ANDROID_APP </li> <li> IOS_APP </li> <li> WEB_APP </li> <li> EXTERNAL_DATA </li> <li> APPIUM_JAVA_JUNIT_TEST_PACKAGE </li> <li> APPIUM_JAVA_TESTNG_TEST_PACKAGE </li> <li> APPIUM_PYTHON_TEST_PACKAGE </li> <li> APPIUM_NODE_TEST_PACKAGE </li> <li> APPIUM_RUBY_TEST_PACKAGE </li> <li> APPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE </li> <li> APPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE </li> <li> APPIUM_WEB_PYTHON_TEST_PACKAGE </li> <li> APPIUM_WEB_NODE_TEST_PACKAGE </li> <li> APPIUM_WEB_RUBY_TEST_PACKAGE </li> <li> CALABASH_TEST_PACKAGE </li> <li> INSTRUMENTATION_TEST_PACKAGE </li> <li> UIAUTOMATION_TEST_PACKAGE </li> <li> UIAUTOMATOR_TEST_PACKAGE </li> <li> XCTEST_TEST_PACKAGE </li> <li> XCTEST_UI_TEST_PACKAGE </li> <li> APPIUM_JAVA_JUNIT_TEST_SPEC </li> <li> APPIUM_JAVA_TESTNG_TEST_SPEC </li> <li> APPIUM_PYTHON_TEST_SPEC </li> <li> APPIUM_NODE_TEST_SPEC </li> <li> APPIUM_RUBY_TEST_SPEC </li> <li> APPIUM_WEB_JAVA_JUNIT_TEST_SPEC </li> <li> APPIUM_WEB_JAVA_TESTNG_TEST_SPEC </li> <li> APPIUM_WEB_PYTHON_TEST_SPEC </li> <li> APPIUM_WEB_NODE_TEST_SPEC </li> <li> APPIUM_WEB_RUBY_TEST_SPEC </li> <li> INSTRUMENTATION_TEST_SPEC </li> <li> XCTEST_UI_TEST_SPEC </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>created</i> When the upload was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The upload's file name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The upload's ARN.<br/>        """
        pass

    def list_artifacts(self, type: str, arn: str, nextToken: str=None) -> ListArtifactsResult:
        r"""Gets information about artifacts.

        :param self:
        :param nextToken:  An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.<br/>type:  The artifacts' type. Allowed values include: <ul> <li> FILE </li> <li> LOG </li> <li> SCREENSHOT </li> </ul><br/>arn:  The run, job, suite, or test ARN.<br/>
        :return: nextToken:  If the number of items that are returned is significantly large, this is an identifier that is also returned. It can be used in a subsequent call to this operation to return the next set of items in the list.<br/>artifacts:  Information about the artifacts.<br/>        """
        pass

    def list_device_instances(self, maxResults: int=None, nextToken: str=None) -> ListDeviceInstancesResult:
        r"""Returns information about the private device instances associated with one or more AWS accounts.

        :param self:
        :param nextToken:  An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.<br/>maxResults:  An integer that specifies the maximum number of items you want to return in the API response.<br/>
        :return: nextToken:  An identifier that can be used in the next call to this operation to return the next set of items in the list.<br/>deviceInstances:  An object that contains information about your device instances.<br/>        """
        pass

    def list_device_pools(self, arn: str, type: str=None, nextToken: str=None) -> ListDevicePoolsResult:
        r"""Gets information about device pools.

        :param self:
        :param nextToken:  An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.<br/>type:  The device pools' type. Allowed values include: <ul> <li> CURATED: A device pool that is created and managed by AWS Device Farm. </li> <li> PRIVATE: A device pool that is created and managed by the device pool developer. </li> </ul><br/>arn:  The project ARN.<br/>
        :return: nextToken:  If the number of items that are returned is significantly large, this is an identifier that is also returned. It can be used in a subsequent call to this operation to return the next set of items in the list.<br/>devicePools:  Information about the device pools.<br/>        """
        pass

    def list_devices(self, arn: str=None, nextToken: str=None, filters: List[DeviceFilter]=None) -> ListDevicesResult:
        r"""Gets information about unique device types.

        :param self:
        :param filters:  Used to select a set of devices. A filter is made up of an attribute, an operator, and one or more values. <ul> <li> Attribute: The aspect of a device such as platform or model used as the selection criteria in a device filter. Allowed values include: <ul> <li> ARN: The Amazon Resource Name (ARN) of the device (for example, <code>arn:aws:devicefarm:us-west-2::device:12345Example</code>). </li> <li> PLATFORM: The device platform. Valid values are ANDROID or IOS. </li> <li> OS_VERSION: The operating system version (for example, 10.3.2). </li> <li> MODEL: The device model (for example, iPad 5th Gen). </li> <li> AVAILABILITY: The current availability of the device. Valid values are AVAILABLE, HIGHLY_AVAILABLE, BUSY, or TEMPORARY_NOT_AVAILABLE. </li> <li> FORM_FACTOR: The device form factor. Valid values are PHONE or TABLET. </li> <li> MANUFACTURER: The device manufacturer (for example, Apple). </li> <li> REMOTE_ACCESS_ENABLED: Whether the device is enabled for remote access. Valid values are TRUE or FALSE. </li> <li> REMOTE_DEBUG_ENABLED: Whether the device is enabled for remote debugging. Valid values are TRUE or FALSE. Because remote debugging is <a href="https://docs.aws.amazon.com/devicefarm/latest/developerguide/history.html">no longer supported</a>, this attribute is ignored. </li> <li> INSTANCE_ARN: The Amazon Resource Name (ARN) of the device instance. </li> <li> INSTANCE_LABELS: The label of the device instance. </li> <li> FLEET_TYPE: The fleet type. Valid values are PUBLIC or PRIVATE. </li> </ul> </li> <li> Operator: The filter operator. <ul> <li> The EQUALS operator is available for every attribute except INSTANCE_LABELS. </li> <li> The CONTAINS operator is available for the INSTANCE_LABELS and MODEL attributes. </li> <li> The IN and NOT_IN operators are available for the ARN, OS_VERSION, MODEL, MANUFACTURER, and INSTANCE_ARN attributes. </li> <li> The LESS_THAN, GREATER_THAN, LESS_THAN_OR_EQUALS, and GREATER_THAN_OR_EQUALS operators are also available for the OS_VERSION attribute. </li> </ul> </li> <li> Values: An array of one or more filter values. <ul> <li> The IN and NOT_IN operators take a values array that has one or more elements. </li> <li> The other operators require an array with a single element. </li> <li> In a request, the AVAILABILITY attribute takes the following values: AVAILABLE, HIGHLY_AVAILABLE, BUSY, or TEMPORARY_NOT_AVAILABLE. </li> </ul> </li> </ul><br/>nextToken:  An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.<br/>arn:  The Amazon Resource Name (ARN) of the project.<br/>
        :return: nextToken:  If the number of items that are returned is significantly large, this is an identifier that is also returned. It can be used in a subsequent call to this operation to return the next set of items in the list.<br/>devices:  Information about the devices.<br/>        """
        pass

    def list_instance_profiles(self, maxResults: int=None, nextToken: str=None) -> ListInstanceProfilesResult:
        r"""Returns information about all the instance profiles in an AWS account.

        :param self:
        :param nextToken:  An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.<br/>maxResults:  An integer that specifies the maximum number of items you want to return in the API response.<br/>
        :return: nextToken:  An identifier that can be used in the next call to this operation to return the next set of items in the list.<br/>instanceProfiles:  An object that contains information about your instance profiles.<br/>        """
        pass

    def list_jobs(self, arn: str, nextToken: str=None) -> ListJobsResult:
        r"""Gets information about jobs for a given test run.

        :param self:
        :param nextToken:  An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.<br/>arn:  The run's Amazon Resource Name (ARN).<br/>
        :return: nextToken:  If the number of items that are returned is significantly large, this is an identifier that is also returned. It can be used in a subsequent call to this operation to return the next set of items in the list.<br/>jobs:  Information about the jobs.<br/>        """
        pass

    def list_network_profiles(self, arn: str, type: str=None, nextToken: str=None) -> ListNetworkProfilesResult:
        r"""Returns the list of available network profiles.

        :param self:
        :param nextToken:  An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.<br/>type:  The type of network profile to return information about. Valid values are listed here.<br/>arn:  The Amazon Resource Name (ARN) of the project for which you want to list network profiles.<br/>
        :return: nextToken:  An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.<br/>networkProfiles:  A list of the available network profiles.<br/>        """
        pass

    def list_offering_promotions(self, nextToken: str=None) -> ListOfferingPromotionsResult:
        r"""Returns a list of offering promotions. Each offering promotion record contains the ID and description of the promotion. The API returns a <code>NotEligible</code> error if the caller is not permitted to invoke the operation. Contact <a href="mailto:aws-devicefarm-support@amazon.com">aws-devicefarm-support@amazon.com</a> if you must be able to invoke this operation.

        :param self:
        :param nextToken:  An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.<br/>
        :return: nextToken:  An identifier to be used in the next call to this operation, to return the next set of items in the list.<br/>offeringPromotions:  Information about the offering promotions.<br/>        """
        pass

    def list_offering_transactions(self, nextToken: str=None) -> ListOfferingTransactionsResult:
        r"""Returns a list of all historical purchases, renewals, and system renewal transactions for an AWS account. The list is paginated and ordered by a descending timestamp (most recent transactions are first). The API returns a <code>NotEligible</code> error if the user is not permitted to invoke the operation. If you must be able to invoke this operation, contact <a href="mailto:aws-devicefarm-support@amazon.com">aws-devicefarm-support@amazon.com</a>.

        :param self:
        :param nextToken:  An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.<br/>
        :return: nextToken:  An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.<br/>offeringTransactions:  The audit log of subscriptions you have purchased and modified through AWS Device Farm.<br/>        """
        pass

    def list_offerings(self, nextToken: str=None) -> ListOfferingsResult:
        r"""Returns a list of products or offerings that the user can manage through the API. Each offering record indicates the recurring price per unit and the frequency for that offering. The API returns a <code>NotEligible</code> error if the user is not permitted to invoke the operation. If you must be able to invoke this operation, contact <a href="mailto:aws-devicefarm-support@amazon.com">aws-devicefarm-support@amazon.com</a>.

        :param self:
        :param nextToken:  An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.<br/>
        :return: nextToken:  An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.<br/>offerings:  A value that represents the list offering results.<br/>        """
        pass

    def list_projects(self, arn: str=None, nextToken: str=None) -> ListProjectsResult:
        r"""Gets information about projects.

        :param self:
        :param nextToken:  An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.<br/>arn:  Optional. If no Amazon Resource Name (ARN) is specified, then AWS Device Farm returns a list of all projects for the AWS account. You can also specify a project ARN.<br/>
        :return: nextToken:  If the number of items that are returned is significantly large, this is an identifier that is also returned. It can be used in a subsequent call to this operation to return the next set of items in the list.<br/>projects:  Information about the projects.<br/>        """
        pass

    def list_remote_access_sessions(self, arn: str, nextToken: str=None) -> ListRemoteAccessSessionsResult:
        r"""Returns a list of all currently running remote access sessions.

        :param self:
        :param nextToken:  An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.<br/>arn:  The Amazon Resource Name (ARN) of the project about which you are requesting information.<br/>
        :return: nextToken:  An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.<br/>remoteAccessSessions:  A container that represents the metadata from the service about each remote access session you are requesting.<br/>        """
        pass

    def list_runs(self, arn: str, nextToken: str=None) -> ListRunsResult:
        r"""Gets information about runs, given an AWS Device Farm project ARN.

        :param self:
        :param nextToken:  An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.<br/>arn:  The Amazon Resource Name (ARN) of the project for which you want to list runs.<br/>
        :return: nextToken:  If the number of items that are returned is significantly large, this is an identifier that is also returned. It can be used in a subsequent call to this operation to return the next set of items in the list.<br/>runs:  Information about the runs.<br/>        """
        pass

    def list_samples(self, arn: str, nextToken: str=None) -> ListSamplesResult:
        r"""Gets information about samples, given an AWS Device Farm job ARN.

        :param self:
        :param nextToken:  An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.<br/>arn:  The Amazon Resource Name (ARN) of the job used to list samples.<br/>
        :return: nextToken:  If the number of items that are returned is significantly large, this is an identifier that is also returned. It can be used in a subsequent call to this operation to return the next set of items in the list.<br/>samples:  Information about the samples.<br/>        """
        pass

    def list_suites(self, arn: str, nextToken: str=None) -> ListSuitesResult:
        r"""Gets information about test suites for a given job.

        :param self:
        :param nextToken:  An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.<br/>arn:  The job's Amazon Resource Name (ARN).<br/>
        :return: nextToken:  If the number of items that are returned is significantly large, this is an identifier that is also returned. It can be used in a subsequent call to this operation to return the next set of items in the list.<br/>suites:  Information about the suites.<br/>        """
        pass

    def list_tags_for_resource(self, ResourceARN: str) -> ListTagsForResourceResponse:
        r"""List the tags for an AWS Device Farm resource.

        :param self:
        :param ResourceARN:  The Amazon Resource Name (ARN) of the resource or resources for which to list tags. You can associate tags with the following Device Farm resources: <code>PROJECT</code>, <code>RUN</code>, <code>NETWORK_PROFILE</code>, <code>INSTANCE_PROFILE</code>, <code>DEVICE_INSTANCE</code>, <code>SESSION</code>, <code>DEVICE_POOL</code>, <code>DEVICE</code>, and <code>VPCE_CONFIGURATION</code>.<br/>
        :return: Tags:  The tags to add to the resource. A tag is an array of key-value pairs. Tag keys can have a maximum character length of 128 characters. Tag values can have a maximum length of 256 characters.<br/>        """
        pass

    def list_test_grid_projects(self, maxResult: int=None, nextToken: str=None) -> ListTestGridProjectsResult:
        r"""Gets a list of all Selenium testing projects in your account.

        :param self:
        :param nextToken:  From a response, used to continue a paginated listing. <br/>maxResult:  Return no more than this number of results.<br/>
        :return: nextToken:  Used for pagination. Pass into <a>ListTestGridProjects</a> to get more results in a paginated request.<br/>testGridProjects:  The list of TestGridProjects, based on a <a>ListTestGridProjectsRequest</a>.<br/>        """
        pass

    def list_test_grid_session_actions(self, sessionArn: str, maxResult: int=None, nextToken: str=None) -> ListTestGridSessionActionsResult:
        r"""Returns a list of the actions taken in a <a>TestGridSession</a>.

        :param self:
        :param nextToken:  Pagination token.<br/>maxResult:  The maximum number of sessions to return per response.<br/>sessionArn:  The ARN of the session to retrieve.<br/>
        :return: nextToken:  Pagination token.<br/>actions:  The action taken by the session.<br/>        """
        pass

    def list_test_grid_session_artifacts(self, sessionArn: str, type: str=None, maxResult: int=None, nextToken: str=None) -> ListTestGridSessionArtifactsResult:
        r"""Retrieves a list of artifacts created during the session.

        :param self:
        :param nextToken:  Pagination token.<br/>maxResult:  The maximum number of results to be returned by a request.<br/>type:  Limit results to a specified type of artifact.<br/>sessionArn:  The ARN of a <a>TestGridSession</a>. <br/>
        :return: nextToken:  Pagination token.<br/>artifacts:  A list of test grid session artifacts for a <a>TestGridSession</a>.<br/>        """
        pass

    def list_test_grid_sessions(self, projectArn: str, status: str=None, creationTimeAfter: DateTime=None, creationTimeBefore: DateTime=None, endTimeAfter: DateTime=None, endTimeBefore: DateTime=None, maxResult: int=None, nextToken: str=None) -> ListTestGridSessionsResult:
        r"""Retrieves a list of sessions for a <a>TestGridProject</a>.

        :param self:
        :param nextToken:  Pagination token.<br/>maxResult:  Return only this many results at a time.<br/>endTimeBefore:  Return only sessions that ended before this time.<br/>endTimeAfter:  Return only sessions that ended after this time.<br/>creationTimeBefore:  Return only sessions created before this time.<br/>creationTimeAfter:  Return only sessions created after this time.<br/>status:  Return only sessions in this state.<br/>projectArn:  ARN of a <a>TestGridProject</a>.<br/>
        :return: nextToken:  Pagination token.<br/>testGridSessions:  The sessions that match the criteria in a <a>ListTestGridSessionsRequest</a>. <br/>        """
        pass

    def list_tests(self, arn: str, nextToken: str=None) -> ListTestsResult:
        r"""Gets information about tests in a given test suite.

        :param self:
        :param nextToken:  An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.<br/>arn:  The test suite's Amazon Resource Name (ARN).<br/>
        :return: nextToken:  If the number of items that are returned is significantly large, this is an identifier that is also returned. It can be used in a subsequent call to this operation to return the next set of items in the list.<br/>tests:  Information about the tests.<br/>        """
        pass

    def list_unique_problems(self, arn: str, nextToken: str=None) -> ListUniqueProblemsResult:
        r"""Gets information about unique problems, such as exceptions or crashes. Unique problems are defined as a single instance of an error across a run, job, or suite. For example, if a call in your application consistently raises an exception (<code>OutOfBoundsException in MyActivity.java:386</code>), <code>ListUniqueProblems</code> returns a single entry instead of many individual entries for that exception.

        :param self:
        :param nextToken:  An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.<br/>arn:  The unique problems' ARNs.<br/>
        :return: nextToken:  If the number of items that are returned is significantly large, this is an identifier that is also returned. It can be used in a subsequent call to this operation to return the next set of items in the list.<br/>uniqueProblems:  Information about the unique problems. Allowed values include: <ul> <li> PENDING </li> <li> PASSED </li> <li> WARNED </li> <li> FAILED </li> <li> SKIPPED </li> <li> ERRORED </li> <li> STOPPED </li> </ul><br/>        """
        pass

    def list_uploads(self, arn: str, type: str=None, nextToken: str=None) -> ListUploadsResult:
        r"""Gets information about uploads, given an AWS Device Farm project ARN.

        :param self:
        :param nextToken:  An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.<br/>type:  The type of upload. Must be one of the following values: <ul> <li> ANDROID_APP </li> <li> IOS_APP </li> <li> WEB_APP </li> <li> EXTERNAL_DATA </li> <li> APPIUM_JAVA_JUNIT_TEST_PACKAGE </li> <li> APPIUM_JAVA_TESTNG_TEST_PACKAGE </li> <li> APPIUM_PYTHON_TEST_PACKAGE </li> <li> APPIUM_NODE_TEST_PACKAGE </li> <li> APPIUM_RUBY_TEST_PACKAGE </li> <li> APPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE </li> <li> APPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE </li> <li> APPIUM_WEB_PYTHON_TEST_PACKAGE </li> <li> APPIUM_WEB_NODE_TEST_PACKAGE </li> <li> APPIUM_WEB_RUBY_TEST_PACKAGE </li> <li> CALABASH_TEST_PACKAGE </li> <li> INSTRUMENTATION_TEST_PACKAGE </li> <li> UIAUTOMATION_TEST_PACKAGE </li> <li> UIAUTOMATOR_TEST_PACKAGE </li> <li> XCTEST_TEST_PACKAGE </li> <li> XCTEST_UI_TEST_PACKAGE </li> <li> APPIUM_JAVA_JUNIT_TEST_SPEC </li> <li> APPIUM_JAVA_TESTNG_TEST_SPEC </li> <li> APPIUM_PYTHON_TEST_SPEC </li> <li> APPIUM_NODE_TEST_SPEC </li> <li>  APPIUM_RUBY_TEST_SPEC </li> <li> APPIUM_WEB_JAVA_JUNIT_TEST_SPEC </li> <li> APPIUM_WEB_JAVA_TESTNG_TEST_SPEC </li> <li> APPIUM_WEB_PYTHON_TEST_SPEC </li> <li> APPIUM_WEB_NODE_TEST_SPEC </li> <li> APPIUM_WEB_RUBY_TEST_SPEC </li> <li> INSTRUMENTATION_TEST_SPEC </li> <li> XCTEST_UI_TEST_SPEC </li> </ul><br/>arn:  The Amazon Resource Name (ARN) of the project for which you want to list uploads.<br/>
        :return: nextToken:  If the number of items that are returned is significantly large, this is an identifier that is also returned. It can be used in a subsequent call to this operation to return the next set of items in the list.<br/>uploads:  Information about the uploads.<br/>        """
        pass

    def list_vpce_configurations(self, maxResults: int=None, nextToken: str=None) -> ListVPCEConfigurationsResult:
        r"""Returns information about all Amazon Virtual Private Cloud (VPC) endpoint configurations in the AWS account.

        :param self:
        :param nextToken:  An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.<br/>maxResults:  An integer that specifies the maximum number of items you want to return in the API response.<br/>
        :return: nextToken:  An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.<br/>vpceConfigurations:  An array of <code>VPCEConfiguration</code> objects that contain information about your VPC endpoint configuration.<br/>        """
        pass

    def purchase_offering(self, quantity: int, offeringId: str, offeringPromotionId: str=None) -> PurchaseOfferingResult:
        r"""Immediately purchases offerings for an AWS account. Offerings renew with the latest total purchased quantity for an offering, unless the renewal was overridden. The API returns a <code>NotEligible</code> error if the user is not permitted to invoke the operation. If you must be able to invoke this operation, contact <a href="mailto:aws-devicefarm-support@amazon.com">aws-devicefarm-support@amazon.com</a>.

        :param self:
        :param offeringPromotionId:  The ID of the offering promotion to be applied to the purchase.<br/>quantity:  The number of device slots to purchase in an offering request.<br/>offeringId:  The ID of the offering.<br/>
        :return: offeringTransaction:  Represents the offering transaction for the purchase result.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>cost</i> The cost of an offering transaction.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>cost</b>: The cost of an offering transaction.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdOn</i> The date on which an offering transaction was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>offeringPromotionId</i> The ID that corresponds to a device offering promotion.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>transactionId</i> The transaction ID of the offering transaction.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>offeringStatus</i> The status of an offering transaction.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>offeringStatus</b>: The status of an offering transaction.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type specified for the offering status.<br/>Represents the metadata of an offering status.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>offering</b>: Represents the metadata of an offering status.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>currencyCode</i> The currency code of a monetary amount. For example, <code>USD</code> means U.S. dollars.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>amount</i> The numerical amount of an offering or transaction.<br/>        """
        pass

    def renew_offering(self, quantity: int, offeringId: str) -> RenewOfferingResult:
        r"""Explicitly sets the quantity of devices to renew for an offering, starting from the <code>effectiveDate</code> of the next period. The API returns a <code>NotEligible</code> error if the user is not permitted to invoke the operation. If you must be able to invoke this operation, contact <a href="mailto:aws-devicefarm-support@amazon.com">aws-devicefarm-support@amazon.com</a>.

        :param self:
        :param quantity:  The quantity requested in an offering renewal.<br/>offeringId:  The ID of a request to renew an offering.<br/>
        :return: offeringTransaction:  Represents the status of the offering transaction for the renewal.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>cost</i> The cost of an offering transaction.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>cost</b>: The cost of an offering transaction.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdOn</i> The date on which an offering transaction was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>offeringPromotionId</i> The ID that corresponds to a device offering promotion.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>transactionId</i> The transaction ID of the offering transaction.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>offeringStatus</i> The status of an offering transaction.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>offeringStatus</b>: The status of an offering transaction.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type specified for the offering status.<br/>Represents the metadata of an offering status.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>offering</b>: Represents the metadata of an offering status.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>currencyCode</i> The currency code of a monetary amount. For example, <code>USD</code> means U.S. dollars.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>amount</i> The numerical amount of an offering or transaction.<br/>        """
        pass

    def schedule_run(self, test: ScheduleRunTest, projectArn: str, appArn: str=None, devicePoolArn: str=None, deviceSelectionConfiguration: DeviceSelectionConfiguration=None, name: str=None, configuration: ScheduleRunConfiguration=None, executionConfiguration: ExecutionConfiguration=None) -> ScheduleRunResult:
        r"""Schedules a run.

        :param self:
        :param executionConfiguration:  Specifies configuration information about a test run, such as the execution timeout (in minutes).:<br/>configuration:  Information about the settings for the run to be scheduled.:<br/>test:  Information about the test for the run to be scheduled.:<br/>name:  The name for the run to be scheduled.<br/>deviceSelectionConfiguration:  The filter criteria used to dynamically select a set of devices for a test run and the maximum number of devices to be included in the run. Either <b> <code>devicePoolArn</code> </b> or <b> <code>deviceSelectionConfiguration</code> </b> is required in a request.:<br/>devicePoolArn:  The ARN of the device pool for the run to be scheduled.<br/>appArn:  The ARN of an application package to run tests against, created with <a>CreateUpload</a>. See <a>ListUploads</a>.<br/>projectArn:  The ARN of the project for the run to be scheduled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>maxDevices</i> The maximum number of devices to be included in a test run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>filters</i> Used to dynamically select a set of devices for a test run. A filter is made up of an attribute, an operator, and one or more values. <ul> <li>  <b>Attribute</b>  The aspect of a device such as platform or model used as the selection criteria in a device filter. Allowed values include: <ul> <li> ARN: The Amazon Resource Name (ARN) of the device (for example, <code>arn:aws:devicefarm:us-west-2::device:12345Example</code>). </li> <li> PLATFORM: The device platform. Valid values are ANDROID or IOS. </li> <li> OS_VERSION: The operating system version (for example, 10.3.2). </li> <li> MODEL: The device model (for example, iPad 5th Gen). </li> <li> AVAILABILITY: The current availability of the device. Valid values are AVAILABLE, HIGHLY_AVAILABLE, BUSY, or TEMPORARY_NOT_AVAILABLE. </li> <li> FORM_FACTOR: The device form factor. Valid values are PHONE or TABLET. </li> <li> MANUFACTURER: The device manufacturer (for example, Apple). </li> <li> REMOTE_ACCESS_ENABLED: Whether the device is enabled for remote access. Valid values are TRUE or FALSE. </li> <li> REMOTE_DEBUG_ENABLED: Whether the device is enabled for remote debugging. Valid values are TRUE or FALSE. Because remote debugging is <a href="https://docs.aws.amazon.com/devicefarm/latest/developerguide/history.html">no longer supported</a>, this filter is ignored. </li> <li> INSTANCE_ARN: The Amazon Resource Name (ARN) of the device instance. </li> <li> INSTANCE_LABELS: The label of the device instance. </li> <li> FLEET_TYPE: The fleet type. Valid values are PUBLIC or PRIVATE. </li> </ul> </li> <li>  <b>Operator</b>  The filter operator. <ul> <li> The EQUALS operator is available for every attribute except INSTANCE_LABELS. </li> <li> The CONTAINS operator is available for the INSTANCE_LABELS and MODEL attributes. </li> <li> The IN and NOT_IN operators are available for the ARN, OS_VERSION, MODEL, MANUFACTURER, and INSTANCE_ARN attributes. </li> <li> The LESS_THAN, GREATER_THAN, LESS_THAN_OR_EQUALS, and GREATER_THAN_OR_EQUALS operators are also available for the OS_VERSION attribute. </li> </ul> </li> <li>  <b>Values</b>  An array of one or more filter values. <p class="title"> <b>Operator Values</b>  <ul> <li> The IN and NOT_IN operators can take a values array that has more than one element. </li> <li> The other operators require an array with a single element. </li> </ul> <p class="title"> <b>Attribute Values</b>  <ul> <li> The PLATFORM attribute can be set to ANDROID or IOS. </li> <li> The AVAILABILITY attribute can be set to AVAILABLE, HIGHLY_AVAILABLE, BUSY, or TEMPORARY_NOT_AVAILABLE. </li> <li> The FORM_FACTOR attribute can be set to PHONE or TABLET. </li> <li> The FLEET_TYPE attribute can be set to PUBLIC or PRIVATE. </li> </ul> </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>parameters</i> The test's parameters, such as test framework parameters and fixture settings. Parameters are represented by name-value pairs of strings. For all tests: <ul> <li>  <code>app_performance_monitoring</code>: Performance monitoring is enabled by default. Set this parameter to false to disable it. </li> </ul> For Calabash tests: <ul> <li> profile: A cucumber profile (for example, <code>my_profile_name</code>). </li> <li> tags: You can limit execution to features or scenarios that have (or don't have) certain tags (for example, @smoke or @smoke,~@wip). </li> </ul> For Appium tests (all types): <ul> <li> appium_version: The Appium version. Currently supported values are 1.6.5 (and later), latest, and default. <ul> <li> latest runs the latest Appium version supported by Device Farm (1.9.1). </li> <li> For default, Device Farm selects a compatible version of Appium for the device. The current behavior is to run 1.7.2 on Android devices and iOS 9 and earlier and 1.7.2 for iOS 10 and later. </li> <li> This behavior is subject to change. </li> </ul> </li> </ul> For fuzz tests (Android only): <ul> <li> event_count: The number of events, between 1 and 10000, that the UI fuzz test should perform. </li> <li> throttle: The time, in ms, between 0 and 1000, that the UI fuzz test should wait between events. </li> <li> seed: A seed to use for randomizing the UI fuzz test. Using the same seed value between tests ensures identical event sequences. </li> </ul> For Explorer tests: <ul> <li> username: A user name to use if the Explorer encounters a login form. If not supplied, no user name is inserted. </li> <li> password: A password to use if the Explorer encounters a login form. If not supplied, no password is inserted. </li> </ul> For Instrumentation: <ul> <li> filter: A test filter string. Examples: <ul> <li> Running a single test case: <code>com.android.abc.Test1</code>  </li> <li> Running a single test: <code>com.android.abc.Test1#smoke</code>  </li> <li> Running multiple tests: <code>com.android.abc.Test1,com.android.abc.Test2</code>  </li> </ul> </li> </ul> For XCTest and XCTestUI: <ul> <li> filter: A test filter string. Examples: <ul> <li> Running a single test class: <code>LoginTests</code>  </li> <li> Running a multiple test classes: <code>LoginTests,SmokeTests</code>  </li> <li> Running a single test: <code>LoginTests/testValid</code>  </li> <li> Running multiple tests: <code>LoginTests/testValid,LoginTests/testInvalid</code>  </li> </ul> </li> </ul> For UIAutomator: <ul> <li> filter: A test filter string. Examples: <ul> <li> Running a single test case: <code>com.android.abc.Test1</code>  </li> <li> Running a single test: <code>com.android.abc.Test1#smoke</code>  </li> <li> Running multiple tests: <code>com.android.abc.Test1,com.android.abc.Test2</code>  </li> </ul> </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>filter</i> The test's filter.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>testSpecArn</i> The ARN of the YAML-formatted test specification.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>testPackageArn</i> The ARN of the uploaded test to be run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The test's type. Must be one of the following values: <ul> <li> BUILTIN_FUZZ </li> <li> BUILTIN_EXPLORER. For Android, an app explorer that traverses an Android app, interacting with it and capturing screenshots at the same time. </li> <li> APPIUM_JAVA_JUNIT </li> <li> APPIUM_JAVA_TESTNG </li> <li> APPIUM_PYTHON </li> <li> APPIUM_NODE </li> <li> APPIUM_RUBY </li> <li> APPIUM_WEB_JAVA_JUNIT </li> <li> APPIUM_WEB_JAVA_TESTNG </li> <li> APPIUM_WEB_PYTHON </li> <li> APPIUM_WEB_NODE </li> <li> APPIUM_WEB_RUBY </li> <li> CALABASH </li> <li> INSTRUMENTATION </li> <li> UIAUTOMATION </li> <li> UIAUTOMATOR </li> <li> XCTEST </li> <li> XCTEST_UI </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>billingMethod</i> Specifies the billing method for a test run: <code>metered</code> or <code>unmetered</code>. If the parameter is not specified, the default value is <code>metered</code>. <note> If you have purchased unmetered device slots, you must set this parameter to <code>unmetered</code> to make use of them. Otherwise, your run counts against your metered time. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>auxiliaryApps</i> A list of upload ARNs for app packages to be installed with your app.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>radios</i> Information about the radio states for the run.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>radios</b>: Information about the radio states for the run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>customerArtifactPaths</i> Input <code>CustomerArtifactPaths</code> object for the scheduled run configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>customerArtifactPaths</b>: Input <code>CustomerArtifactPaths</code> object for the scheduled run configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>vpceConfigurationArns</i> An array of ARNs for your VPC endpoint configurations.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i> Information about the location that is used for the run.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>location</b>: Information about the location that is used for the run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>locale</i> Information about the locale that is used for the run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>networkProfileArn</i> Reserved for internal use.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>extraDataPackageArn</i> The ARN of the extra data for the run. The extra data is a .zip file that AWS Device Farm extracts to external data for Android or the app's sandbox for iOS.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>longitude</i> The longitude.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>latitude</i> The latitude.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>deviceHostPaths</i> Comma-separated list of paths in the test execution environment where the artifacts generated by the customer's tests are pulled from.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>androidPaths</i> Comma-separated list of paths on the Android device where the artifacts generated by the customer's tests are pulled from.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>iosPaths</i> Comma-separated list of paths on the iOS device where the artifacts generated by the customer's tests are pulled from.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>gps</i> True if GPS is enabled at the beginning of the test. Otherwise, false.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>nfc</i> True if NFC is enabled at the beginning of the test. Otherwise, false.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>bluetooth</i> True if Bluetooth is enabled at the beginning of the test. Otherwise, false.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>wifi</i> True if Wi-Fi is enabled at the beginning of the test. Otherwise, false.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>skipAppResign</i> When set to <code>true</code>, for private devices, Device Farm does not sign your app again. For public devices, Device Farm always signs your apps again. For more information about how Device Farm re-signs your apps, see <a href="https://aws.amazon.com/device-farm/faq/">Do you modify my app?</a> in the <i>AWS Device Farm FAQs</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>videoCapture</i> Set to true to enable video capture. Otherwise, set to false. The default is true.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>appPackagesCleanup</i> True if app package cleanup is enabled at the beginning of the test. Otherwise, false.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>accountsCleanup</i> True if account cleanup is enabled at the beginning of the test. Otherwise, false.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>jobTimeoutMinutes</i> The number of minutes a test run executes before it times out.<br/>
        :return: run:  Information about the scheduled run.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deviceSelectionResult</i> The results of a device filter used to select the devices for a test run.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>deviceSelectionResult</b>: The results of a device filter used to select the devices for a test run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>testSpecArn</i> The ARN of the YAML-formatted test specification for the run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>skipAppResign</i> When set to <code>true</code>, for private devices, Device Farm does not sign your app again. For public devices, Device Farm always signs your apps again. For more information about how Device Farm re-signs your apps, see <a href="https://aws.amazon.com/device-farm/faq/">Do you modify my app?</a> in the <i>AWS Device Farm FAQs</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>webUrl</i> The Device Farm console URL for the recording of the run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>customerArtifactPaths</i> Output <code>CustomerArtifactPaths</code> object for the test run.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>customerArtifactPaths</b>: Output <code>CustomerArtifactPaths</code> object for the test run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i> Information about the location that is used for the run.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>location</b>: Information about the location that is used for the run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>radios</i> Information about the radio states for the run.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>radios</b>: Information about the radio states for the run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>locale</i> Information about the locale that is used for the run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>devicePoolArn</i> The ARN of the device pool for the run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>jobTimeoutMinutes</i> The number of minutes the job executes before it times out.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>eventCount</i> For fuzz tests, this is the number of events, between 1 and 10000, that the UI fuzz test should perform.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>appUpload</i> An app to upload or that has been uploaded.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>seed</i> For fuzz tests, this is a seed to use for randomizing the UI fuzz test. Using the same seed value between tests ensures identical event sequences.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resultCode</i> Supporting field for the result field. Set only if <code>result</code> is <code>SKIPPED</code>. <code>PARSING_FAILED</code> if the result is skipped because of test package parsing failure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>parsingResultUrl</i> Read-only URL for an object in an S3 bucket where you can get the parsing results of the test package. If the test package doesn't parse, the reason why it doesn't parse appears in the file that this URL points to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>networkProfile</i> The network profile being used for a test run.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>networkProfile</b>: The network profile being used for a test run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deviceMinutes</i> Represents the total (metered or unmetered) minutes used by the test run.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>deviceMinutes</b>: Represents the total (metered or unmetered) minutes used by the test run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>billingMethod</i> Specifies the billing method for a test run: <code>metered</code> or <code>unmetered</code>. If the parameter is not specified, the default value is <code>metered</code>. <note> If you have unmetered device slots, you must set this to <code>unmetered</code> to use them. Otherwise, the run is counted toward metered device minutes. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>completedJobs</i> The total number of completed jobs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>totalJobs</i> The total number of jobs for the run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>message</i> A message about the run's result.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>counters</i> The run's result counters.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>counters</b>: The run's result counters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>stopped</i> The run's stop time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>started</i> The run's start time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>result</i> The run's result. Allowed values include: <ul> <li> PENDING </li> <li> PASSED </li> <li> WARNED </li> <li> FAILED </li> <li> SKIPPED </li> <li> ERRORED </li> <li> STOPPED </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The run's status. Allowed values include: <ul> <li> PENDING </li> <li> PENDING_CONCURRENCY </li> <li> PENDING_DEVICE </li> <li> PROCESSING </li> <li> SCHEDULING </li> <li> PREPARING </li> <li> RUNNING </li> <li> COMPLETED </li> <li> STOPPING </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>created</i> When the run was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>platform</i> The run's platform. Allowed values include: <ul> <li> ANDROID </li> <li> IOS </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The run's type. Must be one of the following values: <ul> <li> BUILTIN_FUZZ </li> <li> BUILTIN_EXPLORER <note> For Android, an app explorer that traverses an Android app, interacting with it and capturing screenshots at the same time. </note> </li> <li> APPIUM_JAVA_JUNIT </li> <li> APPIUM_JAVA_TESTNG </li> <li> APPIUM_PYTHON </li> <li> APPIUM_NODE </li> <li> APPIUM_RUBY </li> <li> APPIUM_WEB_JAVA_JUNIT </li> <li> APPIUM_WEB_JAVA_TESTNG </li> <li> APPIUM_WEB_PYTHON </li> <li> APPIUM_WEB_NODE </li> <li> APPIUM_WEB_RUBY </li> <li> CALABASH </li> <li> INSTRUMENTATION </li> <li> UIAUTOMATION </li> <li> UIAUTOMATOR </li> <li> XCTEST </li> <li> XCTEST_UI </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The run's name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The run's ARN.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>skipped</i> The number of skipped entities.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>stopped</i> The number of stopped entities.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>errored</i> The number of errored entities.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>warned</i> The number of warned entities.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>failed</i> The number of failed entities.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>passed</i> The number of passed entities.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>total</i> The total number of entities.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>unmetered</i> When specified, represents only the sum of unmetered minutes used by the resource to run tests.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>metered</i> When specified, represents only the sum of metered minutes used by the resource to run tests.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>total</i> When specified, represents the total minutes used by the resource to run tests.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>downlinkLossPercent</i> Proportion of received packets that fail to arrive from 0 to 100 percent.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>uplinkLossPercent</i> Proportion of transmitted packets that fail to arrive from 0 to 100 percent.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>downlinkJitterMs</i> Time variation in the delay of received packets in milliseconds as an integer from 0 to 2000.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>uplinkJitterMs</i> Time variation in the delay of received packets in milliseconds as an integer from 0 to 2000.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>downlinkDelayMs</i> Delay time for all packets to destination in milliseconds as an integer from 0 to 2000.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>uplinkDelayMs</i> Delay time for all packets to destination in milliseconds as an integer from 0 to 2000.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>downlinkBandwidthBits</i> The data throughput rate in bits per second, as an integer from 0 to 104857600.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>uplinkBandwidthBits</i> The data throughput rate in bits per second, as an integer from 0 to 104857600.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of network profile. Valid values are listed here.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> The description of the network profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the network profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the network profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>gps</i> True if GPS is enabled at the beginning of the test. Otherwise, false.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>nfc</i> True if NFC is enabled at the beginning of the test. Otherwise, false.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>bluetooth</i> True if Bluetooth is enabled at the beginning of the test. Otherwise, false.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>wifi</i> True if Wi-Fi is enabled at the beginning of the test. Otherwise, false.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>longitude</i> The longitude.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>latitude</i> The latitude.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>deviceHostPaths</i> Comma-separated list of paths in the test execution environment where the artifacts generated by the customer's tests are pulled from.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>androidPaths</i> Comma-separated list of paths on the Android device where the artifacts generated by the customer's tests are pulled from.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>iosPaths</i> Comma-separated list of paths on the iOS device where the artifacts generated by the customer's tests are pulled from.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>maxDevices</i> The maximum number of devices to be selected by a device filter and included in a test run.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>matchedDevicesCount</i> The number of devices that matched the device filter selection criteria.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>filters</i> The filters in a device selection result.<br/>        """
        pass

    def stop_job(self, arn: str) -> StopJobResult:
        r"""Initiates a stop request for the current job. AWS Device Farm immediately stops the job on the device where tests have not started. You are not billed for this device. On the device where tests have started, setup suite and teardown suite tests run to completion on the device. You are billed for setup, teardown, and any tests that were in progress or already completed.

        :param self:
        :param arn:  Represents the Amazon Resource Name (ARN) of the Device Farm job to stop.<br/>
        :return: job:  The job that was stopped.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>videoCapture</i> This value is set to true if video capture is enabled. Otherwise, it is set to false.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>videoEndpoint</i> The endpoint for streaming device video.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deviceMinutes</i> Represents the total (metered or unmetered) minutes used by the job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>deviceMinutes</b>: Represents the total (metered or unmetered) minutes used by the job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>instanceArn</i> The ARN of the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>device</i> The device (phone or tablet).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>device</b>: The device (phone or tablet).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>message</i> A message about the job's result.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>counters</i> The job's result counters.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>counters</b>: The job's result counters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>stopped</i> The job's stop time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>started</i> The job's start time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>result</i> The job's result. Allowed values include: <ul> <li> PENDING </li> <li> PASSED </li> <li> WARNED </li> <li> FAILED </li> <li> SKIPPED </li> <li> ERRORED </li> <li> STOPPED </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The job's status. Allowed values include: <ul> <li> PENDING </li> <li> PENDING_CONCURRENCY </li> <li> PENDING_DEVICE </li> <li> PROCESSING </li> <li> SCHEDULING </li> <li> PREPARING </li> <li> RUNNING </li> <li> COMPLETED </li> <li> STOPPING </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>created</i> When the job was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The job's type. Allowed values include the following: <ul> <li> BUILTIN_FUZZ </li> <li> BUILTIN_EXPLORER. For Android, an app explorer that traverses an Android app, interacting with it and capturing screenshots at the same time. </li> <li> APPIUM_JAVA_JUNIT </li> <li> APPIUM_JAVA_TESTNG </li> <li> APPIUM_PYTHON </li> <li> APPIUM_NODE </li> <li> APPIUM_RUBY </li> <li> APPIUM_WEB_JAVA_JUNIT </li> <li> APPIUM_WEB_JAVA_TESTNG </li> <li> APPIUM_WEB_PYTHON </li> <li> APPIUM_WEB_NODE </li> <li> APPIUM_WEB_RUBY </li> <li> CALABASH </li> <li> INSTRUMENTATION </li> <li> UIAUTOMATION </li> <li> UIAUTOMATOR </li> <li> XCTEST </li> <li> XCTEST_UI </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The job's name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The job's ARN.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>skipped</i> The number of skipped entities.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>stopped</i> The number of stopped entities.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>errored</i> The number of errored entities.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>warned</i> The number of warned entities.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>failed</i> The number of failed entities.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>passed</i> The number of passed entities.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>total</i> The total number of entities.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>os</i> The device's operating system type.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>platform</i> The device's platform. Allowed values include: <ul> <li> ANDROID </li> <li> IOS </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>formFactor</i> The device's form factor. Allowed values include: <ul> <li> PHONE </li> <li> TABLET </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>modelId</i> The device's model ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>model</i> The device's model name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>manufacturer</i> The device's manufacturer name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The device's display name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The device's ARN.<br/>Information about the device's CPU.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>cpu</b>: Information about the device's CPU.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>unmetered</i> When specified, represents only the sum of unmetered minutes used by the resource to run tests.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>metered</i> When specified, represents only the sum of metered minutes used by the resource to run tests.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>total</i> When specified, represents the total minutes used by the resource to run tests.<br/>        """
        pass

    def stop_remote_access_session(self, arn: str) -> StopRemoteAccessSessionResult:
        r"""Ends a specified remote access session.

        :param self:
        :param arn:  The Amazon Resource Name (ARN) of the remote access session to stop.<br/>
        :return: remoteAccessSession:  A container that represents the metadata from the service about the remote access session you are stopping.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>skipAppResign</i> When set to <code>true</code>, for private devices, Device Farm does not sign your app again. For public devices, Device Farm always signs your apps again. For more information about how Device Farm re-signs your apps, see <a href="https://aws.amazon.com/device-farm/faq/">Do you modify my app?</a> in the <i>AWS Device Farm FAQs</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>interactionMode</i> The interaction mode of the remote access session. Valid values are: <ul> <li> INTERACTIVE: You can interact with the iOS device by viewing, touching, and rotating the screen. You cannot run XCUITest framework-based tests in this mode. </li> <li> NO_VIDEO: You are connected to the device, but cannot interact with it or view the screen. This mode has the fastest test execution speed. You can run XCUITest framework-based tests in this mode. </li> <li> VIDEO_ONLY: You can view the screen, but cannot touch or rotate it. You can run XCUITest framework-based tests and watch the screen in this mode. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deviceUdid</i> Unique device identifier for the remote device. Only returned if remote debugging is enabled for the remote access session. Remote debugging is <a href="https://docs.aws.amazon.com/devicefarm/latest/developerguide/history.html">no longer supported</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>endpoint</i> The endpoint for the remote access sesssion.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deviceMinutes</i> The number of minutes a device is used in a remote access session (including setup and teardown minutes).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>deviceMinutes</b>: The number of minutes a device is used in a remote access session (including setup and teardown minutes).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>billingMethod</i> The billing method of the remote access session. Possible values include <code>METERED</code> or <code>UNMETERED</code>. For more information about metered devices, see <a href="https://docs.aws.amazon.com/devicefarm/latest/developerguide/welcome.html#welcome-terminology">AWS Device Farm terminology</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>clientId</i> Unique identifier of your client for the remote access session. Only returned if remote debugging is enabled for the remote access session. Remote debugging is <a href="https://docs.aws.amazon.com/devicefarm/latest/developerguide/history.html">no longer supported</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>hostAddress</i> IP address of the EC2 host where you need to connect to remotely debug devices. Only returned if remote debugging is enabled for the remote access session. Remote debugging is <a href="https://docs.aws.amazon.com/devicefarm/latest/developerguide/history.html">no longer supported</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>remoteRecordAppArn</i> The ARN for the app to be recorded in the remote access session.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>remoteRecordEnabled</i> This flag is set to <code>true</code> if remote recording is enabled for the remote access session.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>remoteDebugEnabled</i> This flag is set to <code>true</code> if remote debugging is enabled for the remote access session. Remote debugging is <a href="https://docs.aws.amazon.com/devicefarm/latest/developerguide/history.html">no longer supported</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>instanceArn</i> The ARN of the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>device</i> The device (phone or tablet) used in the remote access session.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>device</b>: The device (phone or tablet) used in the remote access session.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>stopped</i> The date and time the remote access session was stopped.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>started</i> The date and time the remote access session was started.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>message</i> A message about the remote access session.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>result</i> The result of the remote access session. Can be any of the following: <ul> <li> PENDING. </li> <li> PASSED. </li> <li> WARNED. </li> <li> FAILED. </li> <li> SKIPPED. </li> <li> ERRORED. </li> <li> STOPPED. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the remote access session. Can be any of the following: <ul> <li> PENDING. </li> <li> PENDING_CONCURRENCY. </li> <li> PENDING_DEVICE. </li> <li> PROCESSING. </li> <li> SCHEDULING. </li> <li> PREPARING. </li> <li> RUNNING. </li> <li> COMPLETED. </li> <li> STOPPING. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>created</i> The date and time the remote access session was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the remote access session.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the remote access session.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>os</i> The device's operating system type.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>platform</i> The device's platform. Allowed values include: <ul> <li> ANDROID </li> <li> IOS </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>formFactor</i> The device's form factor. Allowed values include: <ul> <li> PHONE </li> <li> TABLET </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>modelId</i> The device's model ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>model</i> The device's model name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>manufacturer</i> The device's manufacturer name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The device's display name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The device's ARN.<br/>Information about the device's CPU.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>cpu</b>: Information about the device's CPU.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>unmetered</i> When specified, represents only the sum of unmetered minutes used by the resource to run tests.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>metered</i> When specified, represents only the sum of metered minutes used by the resource to run tests.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>total</i> When specified, represents the total minutes used by the resource to run tests.<br/>        """
        pass

    def stop_run(self, arn: str) -> StopRunResult:
        r"""Initiates a stop request for the current test run. AWS Device Farm immediately stops the run on devices where tests have not started. You are not billed for these devices. On devices where tests have started executing, setup suite and teardown suite tests run to completion on those devices. You are billed for setup, teardown, and any tests that were in progress or already completed.

        :param self:
        :param arn:  Represents the Amazon Resource Name (ARN) of the Device Farm run to stop.<br/>
        :return: run:  The run that was stopped.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deviceSelectionResult</i> The results of a device filter used to select the devices for a test run.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>deviceSelectionResult</b>: The results of a device filter used to select the devices for a test run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>testSpecArn</i> The ARN of the YAML-formatted test specification for the run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>skipAppResign</i> When set to <code>true</code>, for private devices, Device Farm does not sign your app again. For public devices, Device Farm always signs your apps again. For more information about how Device Farm re-signs your apps, see <a href="https://aws.amazon.com/device-farm/faq/">Do you modify my app?</a> in the <i>AWS Device Farm FAQs</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>webUrl</i> The Device Farm console URL for the recording of the run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>customerArtifactPaths</i> Output <code>CustomerArtifactPaths</code> object for the test run.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>customerArtifactPaths</b>: Output <code>CustomerArtifactPaths</code> object for the test run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i> Information about the location that is used for the run.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>location</b>: Information about the location that is used for the run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>radios</i> Information about the radio states for the run.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>radios</b>: Information about the radio states for the run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>locale</i> Information about the locale that is used for the run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>devicePoolArn</i> The ARN of the device pool for the run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>jobTimeoutMinutes</i> The number of minutes the job executes before it times out.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>eventCount</i> For fuzz tests, this is the number of events, between 1 and 10000, that the UI fuzz test should perform.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>appUpload</i> An app to upload or that has been uploaded.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>seed</i> For fuzz tests, this is a seed to use for randomizing the UI fuzz test. Using the same seed value between tests ensures identical event sequences.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resultCode</i> Supporting field for the result field. Set only if <code>result</code> is <code>SKIPPED</code>. <code>PARSING_FAILED</code> if the result is skipped because of test package parsing failure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>parsingResultUrl</i> Read-only URL for an object in an S3 bucket where you can get the parsing results of the test package. If the test package doesn't parse, the reason why it doesn't parse appears in the file that this URL points to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>networkProfile</i> The network profile being used for a test run.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>networkProfile</b>: The network profile being used for a test run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deviceMinutes</i> Represents the total (metered or unmetered) minutes used by the test run.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>deviceMinutes</b>: Represents the total (metered or unmetered) minutes used by the test run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>billingMethod</i> Specifies the billing method for a test run: <code>metered</code> or <code>unmetered</code>. If the parameter is not specified, the default value is <code>metered</code>. <note> If you have unmetered device slots, you must set this to <code>unmetered</code> to use them. Otherwise, the run is counted toward metered device minutes. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>completedJobs</i> The total number of completed jobs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>totalJobs</i> The total number of jobs for the run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>message</i> A message about the run's result.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>counters</i> The run's result counters.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>counters</b>: The run's result counters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>stopped</i> The run's stop time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>started</i> The run's start time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>result</i> The run's result. Allowed values include: <ul> <li> PENDING </li> <li> PASSED </li> <li> WARNED </li> <li> FAILED </li> <li> SKIPPED </li> <li> ERRORED </li> <li> STOPPED </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The run's status. Allowed values include: <ul> <li> PENDING </li> <li> PENDING_CONCURRENCY </li> <li> PENDING_DEVICE </li> <li> PROCESSING </li> <li> SCHEDULING </li> <li> PREPARING </li> <li> RUNNING </li> <li> COMPLETED </li> <li> STOPPING </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>created</i> When the run was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>platform</i> The run's platform. Allowed values include: <ul> <li> ANDROID </li> <li> IOS </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The run's type. Must be one of the following values: <ul> <li> BUILTIN_FUZZ </li> <li> BUILTIN_EXPLORER <note> For Android, an app explorer that traverses an Android app, interacting with it and capturing screenshots at the same time. </note> </li> <li> APPIUM_JAVA_JUNIT </li> <li> APPIUM_JAVA_TESTNG </li> <li> APPIUM_PYTHON </li> <li> APPIUM_NODE </li> <li> APPIUM_RUBY </li> <li> APPIUM_WEB_JAVA_JUNIT </li> <li> APPIUM_WEB_JAVA_TESTNG </li> <li> APPIUM_WEB_PYTHON </li> <li> APPIUM_WEB_NODE </li> <li> APPIUM_WEB_RUBY </li> <li> CALABASH </li> <li> INSTRUMENTATION </li> <li> UIAUTOMATION </li> <li> UIAUTOMATOR </li> <li> XCTEST </li> <li> XCTEST_UI </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The run's name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The run's ARN.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>skipped</i> The number of skipped entities.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>stopped</i> The number of stopped entities.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>errored</i> The number of errored entities.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>warned</i> The number of warned entities.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>failed</i> The number of failed entities.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>passed</i> The number of passed entities.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>total</i> The total number of entities.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>unmetered</i> When specified, represents only the sum of unmetered minutes used by the resource to run tests.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>metered</i> When specified, represents only the sum of metered minutes used by the resource to run tests.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>total</i> When specified, represents the total minutes used by the resource to run tests.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>downlinkLossPercent</i> Proportion of received packets that fail to arrive from 0 to 100 percent.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>uplinkLossPercent</i> Proportion of transmitted packets that fail to arrive from 0 to 100 percent.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>downlinkJitterMs</i> Time variation in the delay of received packets in milliseconds as an integer from 0 to 2000.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>uplinkJitterMs</i> Time variation in the delay of received packets in milliseconds as an integer from 0 to 2000.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>downlinkDelayMs</i> Delay time for all packets to destination in milliseconds as an integer from 0 to 2000.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>uplinkDelayMs</i> Delay time for all packets to destination in milliseconds as an integer from 0 to 2000.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>downlinkBandwidthBits</i> The data throughput rate in bits per second, as an integer from 0 to 104857600.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>uplinkBandwidthBits</i> The data throughput rate in bits per second, as an integer from 0 to 104857600.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of network profile. Valid values are listed here.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> The description of the network profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the network profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the network profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>gps</i> True if GPS is enabled at the beginning of the test. Otherwise, false.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>nfc</i> True if NFC is enabled at the beginning of the test. Otherwise, false.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>bluetooth</i> True if Bluetooth is enabled at the beginning of the test. Otherwise, false.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>wifi</i> True if Wi-Fi is enabled at the beginning of the test. Otherwise, false.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>longitude</i> The longitude.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>latitude</i> The latitude.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>deviceHostPaths</i> Comma-separated list of paths in the test execution environment where the artifacts generated by the customer's tests are pulled from.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>androidPaths</i> Comma-separated list of paths on the Android device where the artifacts generated by the customer's tests are pulled from.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>iosPaths</i> Comma-separated list of paths on the iOS device where the artifacts generated by the customer's tests are pulled from.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>maxDevices</i> The maximum number of devices to be selected by a device filter and included in a test run.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>matchedDevicesCount</i> The number of devices that matched the device filter selection criteria.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>filters</i> The filters in a device selection result.<br/>        """
        pass

    def tag_resource(self, Tags: List[Tag], ResourceARN: str) -> TagResourceResponse:
        r"""Associates the specified tags to a resource with the specified <code>resourceArn</code>. If existing tags on a resource are not specified in the request parameters, they are not changed. When a resource is deleted, the tags associated with that resource are also deleted.

        :param self:
        :param Tags:  The tags to add to the resource. A tag is an array of key-value pairs. Tag keys can have a maximum character length of 128 characters. Tag values can have a maximum length of 256 characters.<br/>ResourceARN:  The Amazon Resource Name (ARN) of the resource or resources to which to add tags. You can associate tags with the following Device Farm resources: <code>PROJECT</code>, <code>RUN</code>, <code>NETWORK_PROFILE</code>, <code>INSTANCE_PROFILE</code>, <code>DEVICE_INSTANCE</code>, <code>SESSION</code>, <code>DEVICE_POOL</code>, <code>DEVICE</code>, and <code>VPCE_CONFIGURATION</code>.<br/>
        :return:         """
        pass

    def untag_resource(self, TagKeys: List[TagKey], ResourceARN: str) -> UntagResourceResponse:
        r"""Deletes the specified tags from a resource.

        :param self:
        :param TagKeys:  The keys of the tags to be removed.<br/>ResourceARN:  The Amazon Resource Name (ARN) of the resource or resources from which to delete tags. You can associate tags with the following Device Farm resources: <code>PROJECT</code>, <code>RUN</code>, <code>NETWORK_PROFILE</code>, <code>INSTANCE_PROFILE</code>, <code>DEVICE_INSTANCE</code>, <code>SESSION</code>, <code>DEVICE_POOL</code>, <code>DEVICE</code>, and <code>VPCE_CONFIGURATION</code>.<br/>
        :return:         """
        pass

    def update_device_instance(self, arn: str, profileArn: str=None, labels: List[String]=None) -> UpdateDeviceInstanceResult:
        r"""Updates information about a private device instance.

        :param self:
        :param labels:  An array of strings that you want to associate with the device instance.<br/>profileArn:  The ARN of the profile that you want to associate with the device instance.<br/>arn:  The Amazon Resource Name (ARN) of the device instance.<br/>
        :return: deviceInstance:  An object that contains information about your device instance.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>instanceProfile</i> A object that contains information about the instance profile.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>instanceProfile</b>: A object that contains information about the instance profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>udid</i> Unique device identifier for the device instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the device instance. Valid values are listed here.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>labels</i> An array of strings that describe the device instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deviceArn</i> The ARN of the device.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the device instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> The description of the instance profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the instance profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>rebootAfterUse</i> When set to <code>true</code>, Device Farm reboots the instance after a test run. The default value is <code>true</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>excludeAppPackagesFromCleanup</i> An array of strings containing the list of app packages that should not be cleaned up from the device after a test run completes. The list of packages is considered only if you set <code>packageCleanup</code> to <code>true</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>packageCleanup</i> When set to <code>true</code>, Device Farm removes app packages after a test run. The default value is <code>false</code> for private devices.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the instance profile.<br/>        """
        pass

    def update_device_pool(self, arn: str, name: str=None, description: str=None, rules: List[Rule]=None, maxDevices: int=None, clearMaxDevices: Boolean=None) -> UpdateDevicePoolResult:
        r"""Modifies the name, description, and rules in a device pool given the attributes and the pool ARN. Rule updates are all-or-nothing, meaning they can only be updated as a whole (or not at all).

        :param self:
        :param clearMaxDevices:  Sets whether the <code>maxDevices</code> parameter applies to your device pool. If you set this parameter to <code>true</code>, the <code>maxDevices</code> parameter does not apply, and Device Farm does not limit the number of devices that it adds to your device pool. In this case, Device Farm adds all available devices that meet the criteria specified in the <code>rules</code> parameter. If you use this parameter in your request, you cannot use the <code>maxDevices</code> parameter in the same request.<br/>maxDevices:  The number of devices that Device Farm can add to your device pool. Device Farm adds devices that are available and that meet the criteria that you assign for the <code>rules</code> parameter. Depending on how many devices meet these constraints, your device pool might contain fewer devices than the value for this parameter. By specifying the maximum number of devices, you can control the costs that you incur by running tests. If you use this parameter in your request, you cannot use the <code>clearMaxDevices</code> parameter in the same request.<br/>rules:  Represents the rules to modify for the device pool. Updating rules is optional. If you update rules for your request, the update replaces the existing rules.<br/>description:  A description of the device pool to update.<br/>name:  A string that represents the name of the device pool to update.<br/>arn:  The Amazon Resource Name (ARN) of the Device Farm device pool to update.<br/>
        :return: devicePool:  The device pool you just updated.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>maxDevices</i> The number of devices that Device Farm can add to your device pool. Device Farm adds devices that are available and meet the criteria that you assign for the <code>rules</code> parameter. Depending on how many devices meet these constraints, your device pool might contain fewer devices than the value for this parameter. By specifying the maximum number of devices, you can control the costs that you incur by running tests.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>rules</i> Information about the device pool's rules.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The device pool's type. Allowed values include: <ul> <li> CURATED: A device pool that is created and managed by AWS Device Farm. </li> <li> PRIVATE: A device pool that is created and managed by the device pool developer. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> The device pool's description.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The device pool's name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The device pool's ARN.<br/>        """
        pass

    def update_instance_profile(self, arn: str, name: str=None, description: str=None, packageCleanup: Boolean=None, excludeAppPackagesFromCleanup: List[String]=None, rebootAfterUse: Boolean=None) -> UpdateInstanceProfileResult:
        r"""Updates information about an existing private device instance profile.

        :param self:
        :param rebootAfterUse:  The updated choice for whether you want to reboot the device after use. The default value is <code>true</code>.<br/>excludeAppPackagesFromCleanup:  An array of strings that specifies the list of app packages that should not be cleaned up from the device after a test run is over. The list of packages is only considered if you set <code>packageCleanup</code> to <code>true</code>.<br/>packageCleanup:  The updated choice for whether you want to specify package cleanup. The default value is <code>false</code> for private devices.<br/>description:  The updated description for your instance profile.<br/>name:  The updated name for your instance profile.<br/>arn:  The Amazon Resource Name (ARN) of the instance profile.<br/>
        :return: instanceProfile:  An object that contains information about your instance profile.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> The description of the instance profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the instance profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>rebootAfterUse</i> When set to <code>true</code>, Device Farm reboots the instance after a test run. The default value is <code>true</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>excludeAppPackagesFromCleanup</i> An array of strings containing the list of app packages that should not be cleaned up from the device after a test run completes. The list of packages is considered only if you set <code>packageCleanup</code> to <code>true</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>packageCleanup</i> When set to <code>true</code>, Device Farm removes app packages after a test run. The default value is <code>false</code> for private devices.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the instance profile.<br/>        """
        pass

    def update_network_profile(self, arn: str, name: str=None, description: str=None, type: str=None, uplinkBandwidthBits: Long=None, downlinkBandwidthBits: Long=None, uplinkDelayMs: Long=None, downlinkDelayMs: Long=None, uplinkJitterMs: Long=None, downlinkJitterMs: Long=None, uplinkLossPercent: int=None, downlinkLossPercent: int=None) -> UpdateNetworkProfileResult:
        r"""Updates the network profile.

        :param self:
        :param downlinkLossPercent:  Proportion of received packets that fail to arrive from 0 to 100 percent.<br/>uplinkLossPercent:  Proportion of transmitted packets that fail to arrive from 0 to 100 percent.<br/>downlinkJitterMs:  Time variation in the delay of received packets in milliseconds as an integer from 0 to 2000.<br/>uplinkJitterMs:  Time variation in the delay of received packets in milliseconds as an integer from 0 to 2000.<br/>downlinkDelayMs:  Delay time for all packets to destination in milliseconds as an integer from 0 to 2000.<br/>uplinkDelayMs:  Delay time for all packets to destination in milliseconds as an integer from 0 to 2000.<br/>downlinkBandwidthBits:  The data throughput rate in bits per second, as an integer from 0 to 104857600.<br/>uplinkBandwidthBits:  The data throughput rate in bits per second, as an integer from 0 to 104857600.<br/>type:  The type of network profile to return information about. Valid values are listed here.<br/>description:  The description of the network profile about which you are returning information.<br/>name:  The name of the network profile about which you are returning information.<br/>arn:  The Amazon Resource Name (ARN) of the project for which you want to update network profile settings.<br/>
        :return: networkProfile:  A list of the available network profiles.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>downlinkLossPercent</i> Proportion of received packets that fail to arrive from 0 to 100 percent.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>uplinkLossPercent</i> Proportion of transmitted packets that fail to arrive from 0 to 100 percent.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>downlinkJitterMs</i> Time variation in the delay of received packets in milliseconds as an integer from 0 to 2000.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>uplinkJitterMs</i> Time variation in the delay of received packets in milliseconds as an integer from 0 to 2000.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>downlinkDelayMs</i> Delay time for all packets to destination in milliseconds as an integer from 0 to 2000.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>uplinkDelayMs</i> Delay time for all packets to destination in milliseconds as an integer from 0 to 2000.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>downlinkBandwidthBits</i> The data throughput rate in bits per second, as an integer from 0 to 104857600.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>uplinkBandwidthBits</i> The data throughput rate in bits per second, as an integer from 0 to 104857600.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of network profile. Valid values are listed here.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> The description of the network profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the network profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the network profile.<br/>        """
        pass

    def update_project(self, arn: str, name: str=None, defaultJobTimeoutMinutes: int=None) -> UpdateProjectResult:
        r"""Modifies the specified project name, given the project ARN and a new name.

        :param self:
        :param defaultJobTimeoutMinutes:  The number of minutes a test run in the project executes before it times out.<br/>name:  A string that represents the new name of the project that you are updating.<br/>arn:  The Amazon Resource Name (ARN) of the project whose name to update.<br/>
        :return: project:  The project to update.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>created</i> When the project was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>defaultJobTimeoutMinutes</i> The default number of minutes (at the project level) a test run executes before it times out. The default value is 150 minutes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The project's name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The project's ARN.<br/>        """
        pass

    def update_test_grid_project(self, projectArn: str, name: str=None, description: str=None, vpcConfig: TestGridVpcConfig=None) -> UpdateTestGridProjectResult:
        r"""Change details of a project.

        :param self:
        :param vpcConfig:  The VPC security groups and subnets that are attached to a project.:<br/>description:  Human-readable description for the project.<br/>name:  Human-readable name for the project.<br/>projectArn:  ARN of the project to update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>vpcId</i> The ID of the Amazon VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>subnetIds</i> A list of VPC subnet IDs in your Amazon VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>securityGroupIds</i> A list of VPC security group IDs in your Amazon VPC.<br/>
        :return: testGridProject:  The project, including updated information.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>created</i> When the project was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>vpcConfig</i> The VPC security groups and subnets that are attached to a project.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>vpcConfig</b>: The VPC security groups and subnets that are attached to a project.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> A human-readable description for the project.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> A human-readable name for the project.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The ARN for the project.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>vpcId</i> The ID of the Amazon VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>subnetIds</i> A list of VPC subnet IDs in your Amazon VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>securityGroupIds</i> A list of VPC security group IDs in your Amazon VPC.<br/>        """
        pass

    def update_upload(self, arn: str, name: str=None, contentType: str=None, editContent: Boolean=None) -> UpdateUploadResult:
        r"""Updates an uploaded test spec.

        :param self:
        :param editContent:  Set to true if the YAML file has changed and must be updated. Otherwise, set to false.<br/>contentType:  The upload's content type (for example, <code>application/x-yaml</code>).<br/>name:  The upload's test spec file name. The name must not contain any forward slashes (/). The test spec file name must end with the <code>.yaml</code> or <code>.yml</code> file extension.<br/>arn:  The Amazon Resource Name (ARN) of the uploaded test spec.<br/>
        :return: upload:  A test spec uploaded to Device Farm.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>category</i> The upload's category. Allowed values include: <ul> <li> CURATED: An upload managed by AWS Device Farm. </li> <li> PRIVATE: An upload managed by the AWS Device Farm customer. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>message</i> A message about the upload's result.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>contentType</i> The upload's content type (for example, <code>application/octet-stream</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>metadata</i> The upload's metadata. For example, for Android, this contains information that is parsed from the manifest and is displayed in the AWS Device Farm console after the associated app is uploaded.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>url</i> The presigned Amazon S3 URL that was used to store a file using a PUT request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The upload's status. Must be one of the following values: <ul> <li> FAILED </li> <li> INITIALIZED </li> <li> PROCESSING </li> <li> SUCCEEDED </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The upload's type. Must be one of the following values: <ul> <li> ANDROID_APP </li> <li> IOS_APP </li> <li> WEB_APP </li> <li> EXTERNAL_DATA </li> <li> APPIUM_JAVA_JUNIT_TEST_PACKAGE </li> <li> APPIUM_JAVA_TESTNG_TEST_PACKAGE </li> <li> APPIUM_PYTHON_TEST_PACKAGE </li> <li> APPIUM_NODE_TEST_PACKAGE </li> <li> APPIUM_RUBY_TEST_PACKAGE </li> <li> APPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE </li> <li> APPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE </li> <li> APPIUM_WEB_PYTHON_TEST_PACKAGE </li> <li> APPIUM_WEB_NODE_TEST_PACKAGE </li> <li> APPIUM_WEB_RUBY_TEST_PACKAGE </li> <li> CALABASH_TEST_PACKAGE </li> <li> INSTRUMENTATION_TEST_PACKAGE </li> <li> UIAUTOMATION_TEST_PACKAGE </li> <li> UIAUTOMATOR_TEST_PACKAGE </li> <li> XCTEST_TEST_PACKAGE </li> <li> XCTEST_UI_TEST_PACKAGE </li> <li> APPIUM_JAVA_JUNIT_TEST_SPEC </li> <li> APPIUM_JAVA_TESTNG_TEST_SPEC </li> <li> APPIUM_PYTHON_TEST_SPEC </li> <li> APPIUM_NODE_TEST_SPEC </li> <li> APPIUM_RUBY_TEST_SPEC </li> <li> APPIUM_WEB_JAVA_JUNIT_TEST_SPEC </li> <li> APPIUM_WEB_JAVA_TESTNG_TEST_SPEC </li> <li> APPIUM_WEB_PYTHON_TEST_SPEC </li> <li> APPIUM_WEB_NODE_TEST_SPEC </li> <li> APPIUM_WEB_RUBY_TEST_SPEC </li> <li> INSTRUMENTATION_TEST_SPEC </li> <li> XCTEST_UI_TEST_SPEC </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>created</i> When the upload was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The upload's file name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The upload's ARN.<br/>        """
        pass

    def update_vpce_configuration(self, arn: str, vpceConfigurationName: str=None, vpceServiceName: str=None, serviceDnsName: str=None, vpceConfigurationDescription: str=None) -> UpdateVPCEConfigurationResult:
        r"""Updates information about an Amazon Virtual Private Cloud (VPC) endpoint configuration.

        :param self:
        :param vpceConfigurationDescription:  An optional description that provides details about your VPC endpoint configuration.<br/>serviceDnsName:  The DNS (domain) name used to connect to your private service in your VPC. The DNS name must not already be in use on the internet.<br/>vpceServiceName:  The name of the VPC endpoint service running in your AWS account that you want Device Farm to test.<br/>vpceConfigurationName:  The friendly name you give to your VPC endpoint configuration to manage your configurations more easily.<br/>arn:  The Amazon Resource Name (ARN) of the VPC endpoint configuration you want to update.<br/>
        :return: vpceConfiguration:  An object that contains information about your VPC endpoint configuration.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>vpceConfigurationDescription</i> An optional description that provides details about your VPC endpoint configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>serviceDnsName</i> The DNS name that maps to the private IP address of the service you want to access.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>vpceServiceName</i> The name of the VPC endpoint service running in your AWS account that you want Device Farm to test.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>vpceConfigurationName</i> The friendly name you give to your VPC endpoint configuration to manage your configurations more easily.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the VPC endpoint configuration.<br/>        """
        pass





class DevOpsGuru(BaseClient):
    r""" Amazon DevOps Guru is a fully managed service that helps you identify anomalous behavior in business critical operational applications. You specify the AWS resources that you want DevOps Guru to cover, then the Amazon CloudWatch metrics and AWS CloudTrail events related to those resources are analyzed. When anomalous behavior is detected, DevOps Guru creates an <i>insight</i> that includes recommendations, related events, and related metrics that can help you improve your operational applications. For more information, see <a href="https://docs.aws.amazon.com/devops-guru/latest/userguide/welcome.html">What is Amazon DevOps Guru</a>.   You can specify 1 or 2 Amazon Simple Notification Service topics so you are notified every time a new insight is created. You can also enable DevOps Guru to generate an OpsItem in AWS Systems Manager for each insight to help you manage and track your work addressing insights.   To learn about the DevOps Guru workflow, see <a href="https://docs.aws.amazon.com/devops-guru/latest/userguide/welcome.html#how-it-works">How DevOps Guru works</a>. To learn about DevOps Guru concepts, see <a href="https://docs.aws.amazon.com/devops-guru/latest/userguide/concepts.html">Concepts in DevOps Guru</a>. """


    class DescribeResourceCollectionHealthPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_resource_collection_health` for valid parameters"""
            pass
    class GetResourceCollectionPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_resource_collection` for valid parameters"""
            pass
    class ListAnomaliesForInsightPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_anomalies_for_insight` for valid parameters"""
            pass
    class ListEventsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_events` for valid parameters"""
            pass
    class ListInsightsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_insights` for valid parameters"""
            pass
    class ListNotificationChannelsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_notification_channels` for valid parameters"""
            pass
    class ListRecommendationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_recommendations` for valid parameters"""
            pass
    class SearchInsightsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `search_insights` for valid parameters"""
            pass
    class GetCostEstimationPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_cost_estimation` for valid parameters"""
            pass


    class AddNotificationChannelRequest(Mapping):
        pass
    
    class AddNotificationChannelResponse(Mapping):
        pass
    
    class NotificationChannelConfig(Mapping):
        pass
    
    class DescribeAccountHealthRequest(Mapping):
        pass
    
    class DescribeAccountHealthResponse(Mapping):
        pass
    
    class DescribeAccountOverviewRequest(Mapping):
        pass
    
    class DescribeAccountOverviewResponse(Mapping):
        pass
    
    class Timestamp(object):
        pass
    
    class DescribeAnomalyRequest(Mapping):
        pass
    
    class DescribeAnomalyResponse(Mapping):
        pass
    
    class DescribeFeedbackRequest(Mapping):
        pass
    
    class DescribeFeedbackResponse(Mapping):
        pass
    
    class DescribeInsightRequest(Mapping):
        pass
    
    class DescribeInsightResponse(Mapping):
        pass
    
    class DescribeResourceCollectionHealthRequest(Mapping):
        pass
    
    class DescribeResourceCollectionHealthResponse(Mapping):
        pass
    
    class DescribeServiceIntegrationRequest(Mapping):
        pass
    
    class DescribeServiceIntegrationResponse(Mapping):
        pass
    
    class GetCostEstimationRequest(Mapping):
        pass
    
    class GetCostEstimationResponse(Mapping):
        pass
    
    class GetResourceCollectionRequest(Mapping):
        pass
    
    class GetResourceCollectionResponse(Mapping):
        pass
    
    class ListAnomaliesForInsightRequest(Mapping):
        pass
    
    class ListAnomaliesForInsightResponse(Mapping):
        pass
    
    class StartTimeRange(Mapping):
        pass
    
    class ListEventsRequest(Mapping):
        pass
    
    class ListEventsResponse(Mapping):
        pass
    
    class ListEventsFilters(Mapping):
        pass
    
    class ListInsightsRequest(Mapping):
        pass
    
    class ListInsightsResponse(Mapping):
        pass
    
    class ListInsightsStatusFilter(Mapping):
        pass
    
    class ListNotificationChannelsRequest(Mapping):
        pass
    
    class ListNotificationChannelsResponse(Mapping):
        pass
    
    class ListRecommendationsRequest(Mapping):
        pass
    
    class ListRecommendationsResponse(Mapping):
        pass
    
    class PutFeedbackRequest(Mapping):
        pass
    
    class PutFeedbackResponse(Mapping):
        pass
    
    class InsightFeedback(Mapping):
        pass
    
    class RemoveNotificationChannelRequest(Mapping):
        pass
    
    class RemoveNotificationChannelResponse(Mapping):
        pass
    
    class SearchInsightsRequest(Mapping):
        pass
    
    class SearchInsightsResponse(Mapping):
        pass
    
    class SearchInsightsFilters(Mapping):
        pass
    
    class StartCostEstimationRequest(Mapping):
        pass
    
    class StartCostEstimationResponse(Mapping):
        pass
    
    class CostEstimationResourceCollectionFilter(Mapping):
        pass
    
    class UpdateResourceCollectionRequest(Mapping):
        pass
    
    class UpdateResourceCollectionResponse(Mapping):
        pass
    
    class UpdateResourceCollectionFilter(Mapping):
        pass
    
    class UpdateServiceIntegrationRequest(Mapping):
        pass
    
    class UpdateServiceIntegrationResponse(Mapping):
        pass
    
    class UpdateServiceIntegrationConfig(Mapping):
        pass
    
    def add_notification_channel(self, Config: NotificationChannelConfig) -> AddNotificationChannelResponse:
        r""" Adds a notification channel to DevOps Guru. A notification channel is used to notify you about important DevOps Guru events, such as when an insight is generated.  If you use an Amazon SNS topic in another account, you must attach a policy to it that grants DevOps Guru permission to it notifications. DevOps Guru adds the required policy on your behalf to send notifications using Amazon SNS in your account. For more information, see <a href="https://docs.aws.amazon.com/devops-guru/latest/userguide/sns-required-permissions.html">Permissions for cross account Amazon SNS topics</a>. If you use an Amazon SNS topic that is encrypted by an AWS Key Management Service customer-managed key (CMK), then you must add permissions to the CMK. For more information, see <a href="https://docs.aws.amazon.com/devops-guru/latest/userguide/sns-kms-permissions.html">Permissions for AWS KMS–encrypted Amazon SNS topics</a>.

        :param self:
        :param Config:   A <code>NotificationChannelConfig</code> object that specifies what type of notification channel to add. The one supported notification channel is Amazon Simple Notification Service (Amazon SNS). :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Sns</i>  Information about a notification channel configured in DevOps Guru to send notifications when insights are created.  If you use an Amazon SNS topic in another account, you must attach a policy to it that grants DevOps Guru permission to it notifications. DevOps Guru adds the required policy on your behalf to send notifications using Amazon SNS in your account. For more information, see <a href="https://docs.aws.amazon.com/devops-guru/latest/userguide/sns-required-permissions.html">Permissions for cross account Amazon SNS topics</a>. If you use an Amazon SNS topic that is encrypted by an AWS Key Management Service customer-managed key (CMK), then you must add permissions to the CMK. For more information, see <a href="https://docs.aws.amazon.com/devops-guru/latest/userguide/sns-kms-permissions.html">Permissions for AWS KMS–encrypted Amazon SNS topics</a>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Sns</b>:  Information about a notification channel configured in DevOps Guru to send notifications when insights are created.  If you use an Amazon SNS topic in another account, you must attach a policy to it that grants DevOps Guru permission to it notifications. DevOps Guru adds the required policy on your behalf to send notifications using Amazon SNS in your account. For more information, see <a href="https://docs.aws.amazon.com/devops-guru/latest/userguide/sns-required-permissions.html">Permissions for cross account Amazon SNS topics</a>. If you use an Amazon SNS topic that is encrypted by an AWS Key Management Service customer-managed key (CMK), then you must add permissions to the CMK. For more information, see <a href="https://docs.aws.amazon.com/devops-guru/latest/userguide/sns-kms-permissions.html">Permissions for AWS KMS–encrypted Amazon SNS topics</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TopicArn</i>  The Amazon Resource Name (ARN) of an Amazon Simple Notification Service topic. <br/>
        :return: Id:   The ID of the added notification channel. <br/>        """
        pass

    def describe_account_health(self) -> DescribeAccountHealthResponse:
        r""" Returns the number of open reactive insights, the number of open proactive insights, and the number of metrics analyzed in your AWS account. Use these numbers to gauge the health of operations in your AWS account. 

        :param self:
        :param 
        :return: ResourceHours:  The number of Amazon DevOps Guru resource analysis hours billed to the current AWS account in the last hour. <br/>MetricsAnalyzed:   An integer that specifies the number of metrics that have been analyzed in your AWS account. <br/>OpenProactiveInsights:   An integer that specifies the number of open proactive insights in your AWS account. <br/>OpenReactiveInsights:   An integer that specifies the number of open reactive insights in your AWS account. <br/>        """
        pass

    def describe_account_overview(self, FromTime: Timestamp, ToTime: Timestamp=None) -> DescribeAccountOverviewResponse:
        r""" For the time range passed in, returns the number of open reactive insight that were created, the number of open proactive insights that were created, and the Mean Time to Recover (MTTR) for all closed reactive insights. 

        :param self:
        :param ToTime:   The end of the time range passed in. The start time granularity is at the day level. The floor of the start time is used. Returned information occurred before this day. If this is not specified, then the current day is used. <br/>FromTime:   The start of the time range passed in. The start time granularity is at the day level. The floor of the start time is used. Returned information occurred after this day. <br/>
        :return: MeanTimeToRecoverInMilliseconds:   The Mean Time to Recover (MTTR) for all closed insights that were created during the time range passed in. <br/>ProactiveInsights:   An integer that specifies the number of open proactive insights in your AWS account that were created during the time range passed in. <br/>ReactiveInsights:   An integer that specifies the number of open reactive insights in your AWS account that were created during the time range passed in. <br/>        """
        pass

    def describe_anomaly(self, Id: str) -> DescribeAnomalyResponse:
        r""" Returns details about an anomaly that you specify using its ID. 

        :param self:
        :param Id:   The ID of the anomaly. <br/>
        :return: ReactiveAnomaly:   A <code>ProactiveAnomaly</code> object that represents the requested anomaly. :<br/>ProactiveAnomaly:   A <code>ReactiveAnomaly</code> object that represents the requested anomaly. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Limit</i>  A threshold that was exceeded by behavior in analyzed resources. Exceeding this threshold is related to the anomalous behavior that generated this anomaly. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceCollection</i>  A collection of AWS resources supported by DevOps Guru. The one type of AWS resource collection supported is AWS CloudFormation stacks. DevOps Guru can be configured to analyze only the AWS resources that are defined in the stacks. You can specify up to 500 AWS CloudFormation stacks. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ResourceCollection</b>:  A collection of AWS resources supported by DevOps Guru. The one type of AWS resource collection supported is AWS CloudFormation stacks. DevOps Guru can be configured to analyze only the AWS resources that are defined in the stacks. You can specify up to 500 AWS CloudFormation stacks. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociatedInsightId</i>  The ID of the insight that contains this anomaly. An insight is composed of related anomalies. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceDetails</i>  Details about the source of the analyzed operational data that triggered the anomaly. The one supported source is Amazon CloudWatch metrics. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SourceDetails</b>:  Details about the source of the analyzed operational data that triggered the anomaly. The one supported source is Amazon CloudWatch metrics. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PredictionTimeRange</i>  The time range during which anomalous behavior in a proactive anomaly or an insight is expected to occur. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PredictionTimeRange</b>:  The time range during which anomalous behavior in a proactive anomaly or an insight is expected to occur. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AnomalyReportedTimeRange</i>  A <code>AnomalyReportedTimeRange</code> object that specifies the time range between when the anomaly is opened and the time when it is closed. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AnomalyReportedTimeRange</b>:  A <code>AnomalyReportedTimeRange</code> object that specifies the time range between when the anomaly is opened and the time when it is closed. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AnomalyTimeRange</i>  A time range that specifies when the observed unusual behavior in an anomaly started and ended. This is different from <code>AnomalyReportedTimeRange</code>, which specifies the time range when DevOps Guru opens and then closes an anomaly. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AnomalyTimeRange</b>:  A time range that specifies when the observed unusual behavior in an anomaly started and ended. This is different from <code>AnomalyReportedTimeRange</code>, which specifies the time range when DevOps Guru opens and then closes an anomaly. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdateTime</i>  The time of the anomaly's most recent update. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i>  The status of a proactive anomaly. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Severity</i>  The severity of a proactive anomaly. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i>  The ID of a proactive anomaly. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EndTime</i>  The time when the anomalous behavior ended. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StartTime</i>  The time when the anomalous behavior started. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CloseTime</i>  The time when an anomaly is closed. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OpenTime</i>  The time when an anomaly is opened. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EndTime</i>  The time when the behavior in a proactive insight is expected to end. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StartTime</i>  The time range during which a metric limit is expected to be exceeded. This applies to proactive insights only. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudWatchMetrics</i>  An array of <code>CloudWatchMetricsDetail</code> object that contains information about the analyzed metrics that displayed anomalous behavior. <br/> An array of the names of AWS CloudFormation stacks. The stacks define AWS resources that DevOps Guru analyzes. You can specify up to 500 AWS CloudFormation stacks. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CloudFormation</b>:  An array of the names of AWS CloudFormation stacks. The stacks define AWS resources that DevOps Guru analyzes. You can specify up to 500 AWS CloudFormation stacks. &nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceCollection</i>  A collection of AWS resources supported by DevOps Guru. The one type of AWS resource collection supported is AWS CloudFormation stacks. DevOps Guru can be configured to analyze only the AWS resources that are defined in the stacks. You can specify up to 500 AWS CloudFormation stacks. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ResourceCollection</b>:  A collection of AWS resources supported by DevOps Guru. The one type of AWS resource collection supported is AWS CloudFormation stacks. DevOps Guru can be configured to analyze only the AWS resources that are defined in the stacks. You can specify up to 500 AWS CloudFormation stacks. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociatedInsightId</i>  The ID of the insight that contains this anomaly. An insight is composed of related anomalies. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceDetails</i>  Details about the source of the analyzed operational data that triggered the anomaly. The one supported source is Amazon CloudWatch metrics. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SourceDetails</b>:  Details about the source of the analyzed operational data that triggered the anomaly. The one supported source is Amazon CloudWatch metrics. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AnomalyReportedTimeRange</i>  A <code>AnomalyReportedTimeRange</code> object that specifies the time range between when the anomaly is opened and the time when it is closed. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AnomalyReportedTimeRange</b>:  A <code>AnomalyReportedTimeRange</code> object that specifies the time range between when the anomaly is opened and the time when it is closed. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AnomalyTimeRange</i>  A time range that specifies when the observed unusual behavior in an anomaly started and ended. This is different from <code>AnomalyReportedTimeRange</code>, which specifies the time range when DevOps Guru opens and then closes an anomaly. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AnomalyTimeRange</b>:  A time range that specifies when the observed unusual behavior in an anomaly started and ended. This is different from <code>AnomalyReportedTimeRange</code>, which specifies the time range when DevOps Guru opens and then closes an anomaly. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i>  The status of the anomaly. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Severity</i> The severity of the anomaly. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID of the reactive anomaly. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EndTime</i>  The time when the anomalous behavior ended. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StartTime</i>  The time when the anomalous behavior started. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CloseTime</i>  The time when an anomaly is closed. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OpenTime</i>  The time when an anomaly is opened. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudWatchMetrics</i>  An array of <code>CloudWatchMetricsDetail</code> object that contains information about the analyzed metrics that displayed anomalous behavior. <br/> An array of the names of AWS CloudFormation stacks. The stacks define AWS resources that DevOps Guru analyzes. You can specify up to 500 AWS CloudFormation stacks. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CloudFormation</b>:  An array of the names of AWS CloudFormation stacks. The stacks define AWS resources that DevOps Guru analyzes. You can specify up to 500 AWS CloudFormation stacks.         """
        pass

    def describe_feedback(self, InsightId: str=None) -> DescribeFeedbackResponse:
        r""" Returns the most recent feedback submitted in the current AWS account and Region. 

        :param self:
        :param InsightId:   The ID of the insight for which the feedback was provided. <br/>
        :return: InsightFeedback:   Information about insight feedback received from a customer. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Feedback</i>  The feedback provided by the customer. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i>  The insight feedback ID. <br/>        """
        pass

    def describe_insight(self, Id: str) -> DescribeInsightResponse:
        r""" Returns details about an insight that you specify using its ID. 

        :param self:
        :param Id:   The ID of the insight. <br/>
        :return: ReactiveInsight:   A <code>ReactiveInsight</code> object that represents the requested insight. :<br/>ProactiveInsight:   A <code>ProactiveInsight</code> object that represents the requested insight. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SsmOpsItemId</i>  The ID of the AWS System Manager OpsItem created for this insight. You must enable the creation of OpstItems insights before they are created for each insight. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceCollection</i>  A collection of AWS resources supported by DevOps Guru. The one type of AWS resource collection supported is AWS CloudFormation stacks. DevOps Guru can be configured to analyze only the AWS resources that are defined in the stacks. You can specify up to 500 AWS CloudFormation stacks. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ResourceCollection</b>:  A collection of AWS resources supported by DevOps Guru. The one type of AWS resource collection supported is AWS CloudFormation stacks. DevOps Guru can be configured to analyze only the AWS resources that are defined in the stacks. You can specify up to 500 AWS CloudFormation stacks. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PredictionTimeRange</i>  The time range during which anomalous behavior in a proactive anomaly or an insight is expected to occur. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PredictionTimeRange</b>:  The time range during which anomalous behavior in a proactive anomaly or an insight is expected to occur. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InsightTimeRange</i>  A time ranged that specifies when the observed behavior in an insight started and ended. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>InsightTimeRange</b>:  A time ranged that specifies when the observed behavior in an insight started and ended. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the proactive insight. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Severity</i> The severity of the proactive insight. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the proactive insight. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID of the proactive insight. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EndTime</i>  The time when the behavior described in an insight ended. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StartTime</i>  The time when the behavior described in an insight started. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EndTime</i>  The time when the behavior in a proactive insight is expected to end. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StartTime</i>  The time range during which a metric limit is expected to be exceeded. This applies to proactive insights only. <br/> An array of the names of AWS CloudFormation stacks. The stacks define AWS resources that DevOps Guru analyzes. You can specify up to 500 AWS CloudFormation stacks. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CloudFormation</b>:  An array of the names of AWS CloudFormation stacks. The stacks define AWS resources that DevOps Guru analyzes. You can specify up to 500 AWS CloudFormation stacks. &nbsp;&nbsp;&nbsp;&nbsp; <i>SsmOpsItemId</i>  The ID of the AWS System Manager OpsItem created for this insight. You must enable the creation of OpstItems insights before they are created for each insight. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceCollection</i>  A collection of AWS resources supported by DevOps Guru. The one type of AWS resource collection supported is AWS CloudFormation stacks. DevOps Guru can be configured to analyze only the AWS resources that are defined in the stacks. You can specify up to 500 AWS CloudFormation stacks. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ResourceCollection</b>:  A collection of AWS resources supported by DevOps Guru. The one type of AWS resource collection supported is AWS CloudFormation stacks. DevOps Guru can be configured to analyze only the AWS resources that are defined in the stacks. You can specify up to 500 AWS CloudFormation stacks. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InsightTimeRange</i>  A time ranged that specifies when the observed behavior in an insight started and ended. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>InsightTimeRange</b>:  A time ranged that specifies when the observed behavior in an insight started and ended. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i>  The status of a reactive insight. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Severity</i>  The severity of a reactive insight. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i>  The name of a reactive insight. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i>  The ID of a reactive insight. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EndTime</i>  The time when the behavior described in an insight ended. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StartTime</i>  The time when the behavior described in an insight started. <br/> An array of the names of AWS CloudFormation stacks. The stacks define AWS resources that DevOps Guru analyzes. You can specify up to 500 AWS CloudFormation stacks. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CloudFormation</b>:  An array of the names of AWS CloudFormation stacks. The stacks define AWS resources that DevOps Guru analyzes. You can specify up to 500 AWS CloudFormation stacks.         """
        pass

    def describe_resource_collection_health(self, ResourceCollectionType: str, NextToken: str=None) -> DescribeResourceCollectionHealthResponse:
        r""" Returns the number of open proactive insights, open reactive insights, and the Mean Time to Recover (MTTR) for all closed insights in resource collections in your account. You specify the type of AWS resources collection. The one type of AWS resource collection supported is AWS CloudFormation stacks. DevOps Guru can be configured to analyze only the AWS resources that are defined in the stacks. You can specify up to 500 AWS CloudFormation stacks. 

        :param self:
        :param NextToken:  The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page.<br/>ResourceCollectionType:   An AWS resource collection type. This type specifies how analyzed AWS resources are defined. The one type of AWS resource collection supported is AWS CloudFormation stacks. DevOps Guru can be configured to analyze only the AWS resources that are defined in the stacks. You can specify up to 500 AWS CloudFormation stacks. <br/>
        :return: NextToken:  The pagination token to use to retrieve the next page of results for this operation. If there are no more pages, this value is null.<br/>Service:  An array of <code>ServiceHealth</code> objects that describes the health of the AWS services associated with the resources in the collection.<br/>CloudFormation:   The returned <code>CloudFormationHealthOverview</code> object that contains an <code>InsightHealthOverview</code> object with the requested system health information. <br/>        """
        pass

    def describe_service_integration(self) -> DescribeServiceIntegrationResponse:
        r""" Returns the integration status of services that are integrated with DevOps Guru. The one service that can be integrated with DevOps Guru is AWS Systems Manager, which can be used to create an OpsItem for each generated insight. 

        :param self:
        :param 
        :return: ServiceIntegration:   Information about the integration of DevOps Guru with another AWS service, such as AWS Systems Manager. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OpsCenter</i>  Information about whether DevOps Guru is configured to create an OpsItem in AWS Systems Manager OpsCenter for each created insight. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>OpsCenter</b>:  Information about whether DevOps Guru is configured to create an OpsItem in AWS Systems Manager OpsCenter for each created insight. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OptInStatus</i>  Specifies if DevOps Guru is enabled to create an AWS Systems Manager OpsItem for each created insight. <br/>        """
        pass

    def get_cost_estimation(self, NextToken: str=None) -> GetCostEstimationResponse:
        r"""Returns an estimate of the monthly cost for DevOps Guru to analyze your AWS resources. For more information, see <a href="https://docs.aws.amazon.com/devops-guru/latest/userguide/cost-estimate.html">Estimate your Amazon DevOps Guru costs</a> and <a href="http://aws.amazon.com/devops-guru/pricing/">Amazon DevOps Guru pricing</a>.

        :param self:
        :param NextToken:  The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page.<br/>
        :return: NextToken:  The pagination token to use to retrieve the next page of results for this operation. If there are no more pages, this value is null.<br/>TotalCost:  The estimated monthly cost to analyze the AWS resources. This value is the sum of the estimated costs to analyze each resource in the <code>Costs</code> object in this response.<br/>TimeRange:  The start and end time of the cost estimation.:<br/>Costs:  An array of <code>ResourceCost</code> objects that each contains details about the monthly cost estimate to analyze one of your AWS resources.<br/>Status:  The status of creating this cost estimate. If it's still in progress, the status <code>ONGOING</code> is returned. If it is finished, the status <code>COMPLETED</code> is returned.<br/>ResourceCollection:  The collection of the AWS resources used to create your monthly DevOps Guru cost estimate.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudFormation</i> An object that specifies the CloudFormation stack that defines the AWS resources used to create a monthly estimate for DevOps Guru.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CloudFormation</b>: An object that specifies the CloudFormation stack that defines the AWS resources used to create a monthly estimate for DevOps Guru.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StackNames</i> An array of CloudFormation stack names. Its size is fixed at 1 item.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndTime</i> The end time of the cost estimation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StartTime</i> The start time of the cost estimation.<br/>        """
        pass

    def get_resource_collection(self, ResourceCollectionType: str, NextToken: str=None) -> GetResourceCollectionResponse:
        r""" Returns lists AWS resources that are of the specified resource collection type. The one type of AWS resource collection supported is AWS CloudFormation stacks. DevOps Guru can be configured to analyze only the AWS resources that are defined in the stacks. You can specify up to 500 AWS CloudFormation stacks. 

        :param self:
        :param NextToken:  The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page.<br/>ResourceCollectionType:   The type of AWS resource collections to return. The one valid value is <code>CLOUD_FORMATION</code> for AWS CloudFormation stacks. <br/>
        :return: NextToken:  The pagination token to use to retrieve the next page of results for this operation. If there are no more pages, this value is null.<br/>ResourceCollection:   The requested list of AWS resource collections. The one type of AWS resource collection supported is AWS CloudFormation stacks. DevOps Guru can be configured to analyze only the AWS resources that are defined in the stacks. You can specify up to 500 AWS CloudFormation stacks. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudFormation</i>  Information about AWS CloudFormation stacks. You can use up to 500 stacks to specify which AWS resources in your account to analyze. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacks.html">Stacks</a> in the <i>AWS CloudFormation User Guide</i>. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CloudFormation</b>:  Information about AWS CloudFormation stacks. You can use up to 500 stacks to specify which AWS resources in your account to analyze. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacks.html">Stacks</a> in the <i>AWS CloudFormation User Guide</i>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StackNames</i>  An array of CloudFormation stack names. <br/>        """
        pass

    def list_anomalies_for_insight(self, InsightId: str, StartTimeRange: StartTimeRange=None, MaxResults: int=None, NextToken: str=None) -> ListAnomaliesForInsightResponse:
        r""" Returns a list of the anomalies that belong to an insight that you specify using its ID. 

        :param self:
        :param NextToken:  The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page.<br/>MaxResults:  The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.<br/>StartTimeRange:   A time range used to specify when the requested anomalies started. All returned anomalies started during this time range. :<br/>InsightId:   The ID of the insight. The returned anomalies belong to this insight. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ToTime</i>  The end time of the time range. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FromTime</i>  The start time of the time range. <br/>
        :return: NextToken:  The pagination token to use to retrieve the next page of results for this operation. If there are no more pages, this value is null.<br/>ReactiveAnomalies:   An array of <code>ReactiveAnomalySummary</code> objects that represent the requested anomalies <br/>ProactiveAnomalies:   An array of <code>ProactiveAnomalySummary</code> objects that represent the requested anomalies <br/>        """
        pass

    def list_events(self, Filters: ListEventsFilters, MaxResults: int=None, NextToken: str=None) -> ListEventsResponse:
        r""" Returns a list of the events emitted by the resources that are evaluated by DevOps Guru. You can use filters to specify which events are returned. 

        :param self:
        :param NextToken:  The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page.<br/>MaxResults:  The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.<br/>Filters:   A <code>ListEventsFilters</code> object used to specify which events to return. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceCollection</i>  A collection of AWS resources supported by DevOps Guru. The one type of AWS resource collection supported is AWS CloudFormation stacks. DevOps Guru can be configured to analyze only the AWS resources that are defined in the stacks. You can specify up to 500 AWS CloudFormation stacks. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ResourceCollection</b>:  A collection of AWS resources supported by DevOps Guru. The one type of AWS resource collection supported is AWS CloudFormation stacks. DevOps Guru can be configured to analyze only the AWS resources that are defined in the stacks. You can specify up to 500 AWS CloudFormation stacks. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataSource</i>  The source, <code>AWS_CLOUD_TRAIL</code> or <code>AWS_CODE_DEPLOY</code>, of the events you want returned. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EventSource</i>  The AWS source that emitted the events you want to filter for. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EventClass</i>  The class of the events you want to filter for, such as an infrastructure change, a deployment, or a schema change. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EventTimeRange</i>  A time range during which you want the filtered events to have occurred. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EventTimeRange</b>:  A time range during which you want the filtered events to have occurred. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InsightId</i>  An ID of an insight that is related to the events you want to filter for. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ToTime</i>  The time when the event ended. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FromTime</i>  The time when the event started. <br/> An array of the names of AWS CloudFormation stacks. The stacks define AWS resources that DevOps Guru analyzes. You can specify up to 500 AWS CloudFormation stacks. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CloudFormation</b>:  An array of the names of AWS CloudFormation stacks. The stacks define AWS resources that DevOps Guru analyzes. You can specify up to 500 AWS CloudFormation stacks. 
        :return: NextToken:  The pagination token to use to retrieve the next page of results for this operation. If there are no more pages, this value is null.<br/>Events:   A list of the requested events. <br/>        """
        pass

    def list_insights(self, StatusFilter: ListInsightsStatusFilter, MaxResults: int=None, NextToken: str=None) -> ListInsightsResponse:
        r""" Returns a list of insights in your AWS account. You can specify which insights are returned by their start time and status (<code>ONGOING</code>, <code>CLOSED</code>, or <code>ANY</code>). 

        :param self:
        :param NextToken:  The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page.<br/>MaxResults:  The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.<br/>StatusFilter:   A filter used to filter the returned insights by their status. You can specify one status filter. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Any</i>  A <code>ListInsightsAnyStatusFilter</code> that specifies insights of any status that are either <code>REACTIVE</code> or <code>PROACTIVE</code>. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Any</b>:  A <code>ListInsightsAnyStatusFilter</code> that specifies insights of any status that are either <code>REACTIVE</code> or <code>PROACTIVE</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Closed</i>  A <code>ListInsightsClosedStatusFilter</code> that specifies closed insights that are either <code>REACTIVE</code> or <code>PROACTIVE</code>. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Closed</b>:  A <code>ListInsightsClosedStatusFilter</code> that specifies closed insights that are either <code>REACTIVE</code> or <code>PROACTIVE</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Ongoing</i>  A <code>ListInsightsAnyStatusFilter</code> that specifies ongoing insights that are either <code>REACTIVE</code> or <code>PROACTIVE</code>. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Ongoing</b>:  A <code>ListInsightsAnyStatusFilter</code> that specifies ongoing insights that are either <code>REACTIVE</code> or <code>PROACTIVE</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i>  Use to filter for either <code>REACTIVE</code> or <code>PROACTIVE</code> insights. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i>  Use to filter for either <code>REACTIVE</code> or <code>PROACTIVE</code> insights. <br/> A time range used to specify when the behavior of the filtered insights ended. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EndTimeRange</b>:  A time range used to specify when the behavior of the filtered insights ended. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i>  Use to filter for either <code>REACTIVE</code> or <code>PROACTIVE</code> insights. <br/> A time range used to specify when the behavior of the filtered insights started. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StartTimeRange</b>:  A time range used to specify when the behavior of the filtered insights started. 
        :return: NextToken:  The pagination token to use to retrieve the next page of results for this operation. If there are no more pages, this value is null.<br/>ReactiveInsights:   The returned list of reactive insights. <br/>ProactiveInsights:   The returned list of proactive insights. <br/>        """
        pass

    def list_notification_channels(self, NextToken: str=None) -> ListNotificationChannelsResponse:
        r""" Returns a list of notification channels configured for DevOps Guru. Each notification channel is used to notify you when DevOps Guru generates an insight that contains information about how to improve your operations. The one supported notification channel is Amazon Simple Notification Service (Amazon SNS). 

        :param self:
        :param NextToken:  The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page.<br/>
        :return: NextToken:  The pagination token to use to retrieve the next page of results for this operation. If there are no more pages, this value is null.<br/>Channels:   An array that contains the requested notification channels. <br/>        """
        pass

    def list_recommendations(self, InsightId: str, NextToken: str=None, Locale: str=None) -> ListRecommendationsResponse:
        r""" Returns a list of a specified insight's recommendations. Each recommendation includes a list of related metrics and a list of related events. 

        :param self:
        :param Locale:  A locale that specifies the language to use for recommendations.<br/>NextToken:  The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page.<br/>InsightId:   The ID of the requested insight. <br/>
        :return: NextToken:  The pagination token to use to retrieve the next page of results for this operation. If there are no more pages, this value is null.<br/>Recommendations:   An array of the requested recommendations. <br/>        """
        pass

    def put_feedback(self, InsightFeedback: InsightFeedback=None) -> PutFeedbackResponse:
        r""" Collects customer feedback about the specified insight. 

        :param self:
        :param InsightFeedback:   The feedback from customers is about the recommendations in this insight. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Feedback</i>  The feedback provided by the customer. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i>  The insight feedback ID. <br/>
        :return:         """
        pass

    def remove_notification_channel(self, Id: str) -> RemoveNotificationChannelResponse:
        r""" Removes a notification channel from DevOps Guru. A notification channel is used to notify you when DevOps Guru generates an insight that contains information about how to improve your operations. 

        :param self:
        :param Id:   The ID of the notification channel to be removed. <br/>
        :return:         """
        pass

    def search_insights(self, Type: str, StartTimeRange: StartTimeRange, Filters: SearchInsightsFilters=None, MaxResults: int=None, NextToken: str=None) -> SearchInsightsResponse:
        r""" Returns a list of insights in your AWS account. You can specify which insights are returned by their start time, one or more statuses (<code>ONGOING</code>, <code>CLOSED</code>, and <code>CLOSED</code>), one or more severities (<code>LOW</code>, <code>MEDIUM</code>, and <code>HIGH</code>), and type (<code>REACTIVE</code> or <code>PROACTIVE</code>).   Use the <code>Filters</code> parameter to specify status and severity search parameters. Use the <code>Type</code> parameter to specify <code>REACTIVE</code> or <code>PROACTIVE</code> in your search. 

        :param self:
        :param Type:   The type of insights you are searching for (<code>REACTIVE</code> or <code>PROACTIVE</code>). <br/>NextToken:  The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page.<br/>MaxResults:  The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.<br/>Filters:   A <code>SearchInsightsFilters</code> object that is used to set the severity and status filters on your insight search. :<br/>StartTimeRange:   The start of the time range passed in. Returned insights occurred after this time. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ToTime</i>  The end time of the time range. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FromTime</i>  The start time of the time range. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceCollection</i> A collection of the names of AWS services.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ServiceCollection</b>: A collection of the names of AWS services.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceCollection</i>  A collection of AWS resources supported by DevOps Guru. The one type of AWS resource collection supported is AWS CloudFormation stacks. DevOps Guru can be configured to analyze only the AWS resources that are defined in the stacks. You can specify up to 500 AWS CloudFormation stacks. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ResourceCollection</b>:  A collection of AWS resources supported by DevOps Guru. The one type of AWS resource collection supported is AWS CloudFormation stacks. DevOps Guru can be configured to analyze only the AWS resources that are defined in the stacks. You can specify up to 500 AWS CloudFormation stacks. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Statuses</i>  An array of status values used to search for insights. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Severities</i>  An array of severity values used to search for insights. <br/> An array of the names of AWS CloudFormation stacks. The stacks define AWS resources that DevOps Guru analyzes. You can specify up to 500 AWS CloudFormation stacks. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CloudFormation</b>:  An array of the names of AWS CloudFormation stacks. The stacks define AWS resources that DevOps Guru analyzes. You can specify up to 500 AWS CloudFormation stacks. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceNames</i> An array of strings that each specifies the name of an AWS service.<br/>
        :return: NextToken:  The pagination token to use to retrieve the next page of results for this operation. If there are no more pages, this value is null.<br/>ReactiveInsights:   The returned reactive insights. <br/>ProactiveInsights:   The returned proactive insights. <br/>        """
        pass

    def start_cost_estimation(self, ResourceCollection: CostEstimationResourceCollectionFilter, ClientToken: str=None) -> StartCostEstimationResponse:
        r"""Starts the creation of an estimate of the monthly cost to analyze your AWS resources.

        :param self:
        :param ClientToken:  The idempotency token used to identify each cost estimate request.<br/>ResourceCollection:  The collection of AWS resources used to create a monthly DevOps Guru cost estimate.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudFormation</i> An object that specifies the CloudFormation stack that defines the AWS resources used to create a monthly estimate for DevOps Guru.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CloudFormation</b>: An object that specifies the CloudFormation stack that defines the AWS resources used to create a monthly estimate for DevOps Guru.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StackNames</i> An array of CloudFormation stack names. Its size is fixed at 1 item.<br/>
        :return:         """
        pass

    def update_resource_collection(self, ResourceCollection: UpdateResourceCollectionFilter, Action: str) -> UpdateResourceCollectionResponse:
        r""" Updates the collection of resources that DevOps Guru analyzes. The one type of AWS resource collection supported is AWS CloudFormation stacks. DevOps Guru can be configured to analyze only the AWS resources that are defined in the stacks. You can specify up to 500 AWS CloudFormation stacks. This method also creates the IAM role required for you to use DevOps Guru. 

        :param self:
        :param ResourceCollection:   Contains information used to update a collection of AWS resources. :<br/>Action:   Specifies if the resource collection in the request is added or deleted to the resource collection. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudFormation</i>  An collection of AWS CloudFormation stacks. You can specify up to 500 AWS CloudFormation stacks. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CloudFormation</b>:  An collection of AWS CloudFormation stacks. You can specify up to 500 AWS CloudFormation stacks. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StackNames</i>  An array of the names of the AWS CloudFormation stacks to update. You can specify up to 500 AWS CloudFormation stacks. <br/>
        :return:         """
        pass

    def update_service_integration(self, ServiceIntegration: UpdateServiceIntegrationConfig) -> UpdateServiceIntegrationResponse:
        r""" Enables or disables integration with a service that can be integrated with DevOps Guru. The one service that can be integrated with DevOps Guru is AWS Systems Manager, which can be used to create an OpsItem for each generated insight. 

        :param self:
        :param ServiceIntegration:   An <code>IntegratedServiceConfig</code> object used to specify the integrated service you want to update, and whether you want to update it to enabled or disabled. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OpsCenter</i>  Information about whether DevOps Guru is configured to create an OpsItem in AWS Systems Manager OpsCenter for each created insight. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>OpsCenter</b>:  Information about whether DevOps Guru is configured to create an OpsItem in AWS Systems Manager OpsCenter for each created insight. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OptInStatus</i>  Specifies if DevOps Guru is enabled to create an AWS Systems Manager OpsItem for each created insight. <br/>
        :return:         """
        pass





class DirectConnect(BaseClient):
    r"""AWS Direct Connect links your internal network to an AWS Direct Connect location over a standard Ethernet fiber-optic cable. One end of the cable is connected to your router, the other to an AWS Direct Connect router. With this connection in place, you can create virtual interfaces directly to the AWS cloud (for example, to Amazon EC2 and Amazon S3) and to Amazon VPC, bypassing Internet service providers in your network path. A connection provides access to all AWS Regions except the China (Beijing) and (China) Ningxia Regions. AWS resources in the China Regions can only be accessed through locations associated with those Regions."""


    class DescribeDirectConnectGatewayAssociationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_direct_connect_gateway_associations` for valid parameters"""
            pass
    class DescribeDirectConnectGatewayAttachmentsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_direct_connect_gateway_attachments` for valid parameters"""
            pass
    class DescribeDirectConnectGatewaysPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_direct_connect_gateways` for valid parameters"""
            pass


    class AcceptDirectConnectGatewayAssociationProposalRequest(Mapping):
        pass
    
    class AcceptDirectConnectGatewayAssociationProposalResult(Mapping):
        pass
    
    class RouteFilterPrefix(Mapping):
        pass
    
    class AllocateConnectionOnInterconnectRequest(Mapping):
        pass
    
    class Connection(Mapping):
        pass
    
    class AllocateHostedConnectionRequest(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class AllocatePrivateVirtualInterfaceRequest(Mapping):
        pass
    
    class VirtualInterface(Mapping):
        pass
    
    class NewPrivateVirtualInterfaceAllocation(Mapping):
        pass
    
    class AllocatePublicVirtualInterfaceRequest(Mapping):
        pass
    
    class NewPublicVirtualInterfaceAllocation(Mapping):
        pass
    
    class AllocateTransitVirtualInterfaceRequest(Mapping):
        pass
    
    class AllocateTransitVirtualInterfaceResult(Mapping):
        pass
    
    class NewTransitVirtualInterfaceAllocation(Mapping):
        pass
    
    class AssociateConnectionWithLagRequest(Mapping):
        pass
    
    class AssociateHostedConnectionRequest(Mapping):
        pass
    
    class AssociateMacSecKeyRequest(Mapping):
        pass
    
    class AssociateMacSecKeyResponse(Mapping):
        pass
    
    class AssociateVirtualInterfaceRequest(Mapping):
        pass
    
    class ConfirmConnectionRequest(Mapping):
        pass
    
    class ConfirmConnectionResponse(Mapping):
        pass
    
    class ConfirmPrivateVirtualInterfaceRequest(Mapping):
        pass
    
    class ConfirmPrivateVirtualInterfaceResponse(Mapping):
        pass
    
    class ConfirmPublicVirtualInterfaceRequest(Mapping):
        pass
    
    class ConfirmPublicVirtualInterfaceResponse(Mapping):
        pass
    
    class ConfirmTransitVirtualInterfaceRequest(Mapping):
        pass
    
    class ConfirmTransitVirtualInterfaceResponse(Mapping):
        pass
    
    class CreateBGPPeerRequest(Mapping):
        pass
    
    class CreateBGPPeerResponse(Mapping):
        pass
    
    class NewBGPPeer(Mapping):
        pass
    
    class CreateConnectionRequest(Mapping):
        pass
    
    class RequestMACSec(object):
        pass
    
    class CreateDirectConnectGatewayRequest(Mapping):
        pass
    
    class CreateDirectConnectGatewayResult(Mapping):
        pass
    
    class LongAsn(object):
        pass
    
    class CreateDirectConnectGatewayAssociationRequest(Mapping):
        pass
    
    class CreateDirectConnectGatewayAssociationResult(Mapping):
        pass
    
    class CreateDirectConnectGatewayAssociationProposalRequest(Mapping):
        pass
    
    class CreateDirectConnectGatewayAssociationProposalResult(Mapping):
        pass
    
    class CreateInterconnectRequest(Mapping):
        pass
    
    class Interconnect(Mapping):
        pass
    
    class CreateLagRequest(Mapping):
        pass
    
    class Lag(Mapping):
        pass
    
    class CreatePrivateVirtualInterfaceRequest(Mapping):
        pass
    
    class NewPrivateVirtualInterface(Mapping):
        pass
    
    class CreatePublicVirtualInterfaceRequest(Mapping):
        pass
    
    class NewPublicVirtualInterface(Mapping):
        pass
    
    class CreateTransitVirtualInterfaceRequest(Mapping):
        pass
    
    class CreateTransitVirtualInterfaceResult(Mapping):
        pass
    
    class NewTransitVirtualInterface(Mapping):
        pass
    
    class DeleteBGPPeerRequest(Mapping):
        pass
    
    class DeleteBGPPeerResponse(Mapping):
        pass
    
    class DeleteConnectionRequest(Mapping):
        pass
    
    class DeleteDirectConnectGatewayRequest(Mapping):
        pass
    
    class DeleteDirectConnectGatewayResult(Mapping):
        pass
    
    class DeleteDirectConnectGatewayAssociationRequest(Mapping):
        pass
    
    class DeleteDirectConnectGatewayAssociationResult(Mapping):
        pass
    
    class DeleteDirectConnectGatewayAssociationProposalRequest(Mapping):
        pass
    
    class DeleteDirectConnectGatewayAssociationProposalResult(Mapping):
        pass
    
    class DeleteInterconnectRequest(Mapping):
        pass
    
    class DeleteInterconnectResponse(Mapping):
        pass
    
    class DeleteLagRequest(Mapping):
        pass
    
    class DeleteVirtualInterfaceRequest(Mapping):
        pass
    
    class DeleteVirtualInterfaceResponse(Mapping):
        pass
    
    class DescribeConnectionLoaRequest(Mapping):
        pass
    
    class DescribeConnectionLoaResponse(Mapping):
        pass
    
    class DescribeConnectionsRequest(Mapping):
        pass
    
    class Connections(Mapping):
        pass
    
    class DescribeConnectionsOnInterconnectRequest(Mapping):
        pass
    
    class DescribeDirectConnectGatewayAssociationProposalsRequest(Mapping):
        pass
    
    class DescribeDirectConnectGatewayAssociationProposalsResult(Mapping):
        pass
    
    class DescribeDirectConnectGatewayAssociationsRequest(Mapping):
        pass
    
    class DescribeDirectConnectGatewayAssociationsResult(Mapping):
        pass
    
    class DescribeDirectConnectGatewayAttachmentsRequest(Mapping):
        pass
    
    class DescribeDirectConnectGatewayAttachmentsResult(Mapping):
        pass
    
    class DescribeDirectConnectGatewaysRequest(Mapping):
        pass
    
    class DescribeDirectConnectGatewaysResult(Mapping):
        pass
    
    class DescribeHostedConnectionsRequest(Mapping):
        pass
    
    class DescribeInterconnectLoaRequest(Mapping):
        pass
    
    class DescribeInterconnectLoaResponse(Mapping):
        pass
    
    class DescribeInterconnectsRequest(Mapping):
        pass
    
    class Interconnects(Mapping):
        pass
    
    class DescribeLagsRequest(Mapping):
        pass
    
    class Lags(Mapping):
        pass
    
    class DescribeLoaRequest(Mapping):
        pass
    
    class Loa(Mapping):
        pass
    
    class Locations(Mapping):
        pass
    
    class DescribeTagsRequest(Mapping):
        pass
    
    class DescribeTagsResponse(Mapping):
        pass
    
    class ResourceArn(object):
        pass
    
    class VirtualGateways(Mapping):
        pass
    
    class DescribeVirtualInterfacesRequest(Mapping):
        pass
    
    class VirtualInterfaces(Mapping):
        pass
    
    class DisassociateConnectionFromLagRequest(Mapping):
        pass
    
    class DisassociateMacSecKeyRequest(Mapping):
        pass
    
    class DisassociateMacSecKeyResponse(Mapping):
        pass
    
    class ListVirtualInterfaceTestHistoryRequest(Mapping):
        pass
    
    class ListVirtualInterfaceTestHistoryResponse(Mapping):
        pass
    
    class BGPPeerId(object):
        pass
    
    class StartBgpFailoverTestRequest(Mapping):
        pass
    
    class StartBgpFailoverTestResponse(Mapping):
        pass
    
    class StopBgpFailoverTestRequest(Mapping):
        pass
    
    class StopBgpFailoverTestResponse(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateConnectionRequest(Mapping):
        pass
    
    class UpdateDirectConnectGatewayAssociationRequest(Mapping):
        pass
    
    class UpdateDirectConnectGatewayAssociationResult(Mapping):
        pass
    
    class UpdateLagRequest(Mapping):
        pass
    
    class UpdateVirtualInterfaceAttributesRequest(Mapping):
        pass
    
    def accept_direct_connect_gateway_association_proposal(self, associatedGatewayOwnerAccount: str, proposalId: str, directConnectGatewayId: str, overrideAllowedPrefixesToDirectConnectGateway: List[RouteFilterPrefix]=None) -> AcceptDirectConnectGatewayAssociationProposalResult:
        r"""Accepts a proposal request to attach a virtual private gateway or transit gateway to a Direct Connect gateway.

        :param self:
        :param overrideAllowedPrefixesToDirectConnectGateway:  Overrides the Amazon VPC prefixes advertised to the Direct Connect gateway. For information about how to set the prefixes, see <a href="https://docs.aws.amazon.com/directconnect/latest/UserGuide/multi-account-associate-vgw.html#allowed-prefixes">Allowed Prefixes</a> in the <i>AWS Direct Connect User Guide</i>.<br/>associatedGatewayOwnerAccount:  The ID of the AWS account that owns the virtual private gateway or transit gateway.<br/>proposalId:  The ID of the request proposal.<br/>directConnectGatewayId:  The ID of the Direct Connect gateway.<br/>
        :return: directConnectGatewayAssociation:  Information about an association between a Direct Connect gateway and a virtual private gateway or transit gateway.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>virtualGatewayOwnerAccount</i> The ID of the AWS account that owns the virtual private gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>virtualGatewayRegion</i> The AWS Region where the virtual private gateway is located.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>virtualGatewayId</i> The ID of the virtual private gateway. Applies only to private virtual interfaces.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>allowedPrefixesToDirectConnectGateway</i> The Amazon VPC prefixes to advertise to the Direct Connect gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>associationId</i> The ID of the Direct Connect gateway association.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>associatedGateway</i> Information about the associated gateway.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>associatedGateway</b>: Information about the associated gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>stateChangeError</i> The error message if the state of an object failed to advance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>associationState</i> The state of the association. The following are the possible values: <ul> <li>  <code>associating</code>: The initial state after calling <a>CreateDirectConnectGatewayAssociation</a>. </li> <li>  <code>associated</code>: The Direct Connect gateway and virtual private gateway or transit gateway are successfully associated and ready to pass traffic. </li> <li>  <code>disassociating</code>: The initial state after calling <a>DeleteDirectConnectGatewayAssociation</a>. </li> <li>  <code>disassociated</code>: The virtual private gateway or transit gateway is disassociated from the Direct Connect gateway. Traffic flow between the Direct Connect gateway and virtual private gateway or transit gateway is stopped. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>directConnectGatewayOwnerAccount</i> The ID of the AWS account that owns the associated gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>directConnectGatewayId</i> The ID of the Direct Connect gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>region</i> The Region where the associated gateway is located.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ownerAccount</i> The ID of the AWS account that owns the associated virtual private gateway or transit gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of associated gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The ID of the associated gateway.<br/>        """
        pass

    def allocate_connection_on_interconnect(self, vlan: int, interconnectId: str, ownerAccount: str, connectionName: str, bandwidth: str) -> Connection:
        r"""Deprecated. Use <a>AllocateHostedConnection</a> instead. Creates a hosted connection on an interconnect. Allocates a VLAN number and a specified amount of bandwidth for use by a hosted connection on the specified interconnect. <note> Intended for use by AWS Direct Connect Partners only. </note>

        :param self:
        :param vlan:  The dedicated VLAN provisioned to the connection.<br/>interconnectId:  The ID of the interconnect on which the connection will be provisioned.<br/>ownerAccount:  The ID of the AWS account of the customer for whom the connection will be provisioned.<br/>connectionName:  The name of the provisioned connection.<br/>bandwidth:  The bandwidth of the connection. The possible values are 50Mbps, 100Mbps, 200Mbps, 300Mbps, 400Mbps, 500Mbps, 1Gbps, 2Gbps, 5Gbps, and 10Gbps. Note that only those AWS Direct Connect Partners who have met specific requirements are allowed to create a 1Gbps, 2Gbps, 5Gbps or 10Gbps hosted connection.<br/>
        :return: macSecKeys:  The MAC Security (MACsec) security keys associated with the connection.<br/>encryptionMode:  The MAC Security (MACsec) connection encryption mode. The valid values are <code>no_encrypt</code>, <code>should_encrypt</code>, and <code>must_encrypt</code>.<br/>portEncryptionStatus:  The MAC Security (MACsec) port link status of the connection. The valid values are <code>Encryption Up</code>, which means that there is an active Connection Key Name, or <code>Encryption Down</code>.<br/>macSecCapable:  Indicates whether the connection supports MAC Security (MACsec).<br/>providerName:  The name of the service provider associated with the connection.<br/>tags:  The tags associated with the connection.<br/>hasLogicalRedundancy:  Indicates whether the connection supports a secondary BGP peer in the same address family (IPv4/IPv6).<br/>awsDeviceV2:  The Direct Connect endpoint on which the physical connection terminates.<br/>jumboFrameCapable:  Indicates whether jumbo frames (9001 MTU) are supported.<br/>awsDevice:  The Direct Connect endpoint on which the physical connection terminates.<br/>lagId:  The ID of the LAG.<br/>loaIssueTime:  The time of the most recent call to <a>DescribeLoa</a> for this connection.<br/>partnerName:  The name of the AWS Direct Connect service provider associated with the connection.<br/>vlan:  The ID of the VLAN.<br/>bandwidth:  The bandwidth of the connection.<br/>location:  The location of the connection.<br/>region:  The AWS Region where the connection is located.<br/>connectionState:  The state of the connection. The following are the possible values: <ul> <li>  <code>ordering</code>: The initial state of a hosted connection provisioned on an interconnect. The connection stays in the ordering state until the owner of the hosted connection confirms or declines the connection order. </li> <li>  <code>requested</code>: The initial state of a standard connection. The connection stays in the requested state until the Letter of Authorization (LOA) is sent to the customer. </li> <li>  <code>pending</code>: The connection has been approved and is being initialized. </li> <li>  <code>available</code>: The network link is up and the connection is ready for use. </li> <li>  <code>down</code>: The network link is down. </li> <li>  <code>deleting</code>: The connection is being deleted. </li> <li>  <code>deleted</code>: The connection has been deleted. </li> <li>  <code>rejected</code>: A hosted connection in the <code>ordering</code> state enters the <code>rejected</code> state if it is deleted by the customer. </li> <li>  <code>unknown</code>: The state of the connection is not available. </li> </ul><br/>connectionName:  The name of the connection.<br/>connectionId:  The ID of the connection.<br/>ownerAccount:  The ID of the AWS account that owns the connection.<br/>        """
        pass

    def allocate_hosted_connection(self, vlan: int, connectionName: str, bandwidth: str, ownerAccount: str, connectionId: str, tags: List[Tag]=None) -> Connection:
        r"""Creates a hosted connection on the specified interconnect or a link aggregation group (LAG) of interconnects. Allocates a VLAN number and a specified amount of capacity (bandwidth) for use by a hosted connection on the specified interconnect or LAG of interconnects. AWS polices the hosted connection for the specified capacity and the AWS Direct Connect Partner must also police the hosted connection for the specified capacity. <note> Intended for use by AWS Direct Connect Partners only. </note>

        :param self:
        :param tags:  The tags associated with the connection.<br/>vlan:  The dedicated VLAN provisioned to the hosted connection.<br/>connectionName:  The name of the hosted connection.<br/>bandwidth:  The bandwidth of the connection. The possible values are 50Mbps, 100Mbps, 200Mbps, 300Mbps, 400Mbps, 500Mbps, 1Gbps, 2Gbps, 5Gbps, and 10Gbps. Note that only those AWS Direct Connect Partners who have met specific requirements are allowed to create a 1Gbps, 2Gbps, 5Gbps or 10Gbps hosted connection. <br/>ownerAccount:  The ID of the AWS account ID of the customer for the connection.<br/>connectionId:  The ID of the interconnect or LAG.<br/>
        :return: macSecKeys:  The MAC Security (MACsec) security keys associated with the connection.<br/>encryptionMode:  The MAC Security (MACsec) connection encryption mode. The valid values are <code>no_encrypt</code>, <code>should_encrypt</code>, and <code>must_encrypt</code>.<br/>portEncryptionStatus:  The MAC Security (MACsec) port link status of the connection. The valid values are <code>Encryption Up</code>, which means that there is an active Connection Key Name, or <code>Encryption Down</code>.<br/>macSecCapable:  Indicates whether the connection supports MAC Security (MACsec).<br/>providerName:  The name of the service provider associated with the connection.<br/>tags:  The tags associated with the connection.<br/>hasLogicalRedundancy:  Indicates whether the connection supports a secondary BGP peer in the same address family (IPv4/IPv6).<br/>awsDeviceV2:  The Direct Connect endpoint on which the physical connection terminates.<br/>jumboFrameCapable:  Indicates whether jumbo frames (9001 MTU) are supported.<br/>awsDevice:  The Direct Connect endpoint on which the physical connection terminates.<br/>lagId:  The ID of the LAG.<br/>loaIssueTime:  The time of the most recent call to <a>DescribeLoa</a> for this connection.<br/>partnerName:  The name of the AWS Direct Connect service provider associated with the connection.<br/>vlan:  The ID of the VLAN.<br/>bandwidth:  The bandwidth of the connection.<br/>location:  The location of the connection.<br/>region:  The AWS Region where the connection is located.<br/>connectionState:  The state of the connection. The following are the possible values: <ul> <li>  <code>ordering</code>: The initial state of a hosted connection provisioned on an interconnect. The connection stays in the ordering state until the owner of the hosted connection confirms or declines the connection order. </li> <li>  <code>requested</code>: The initial state of a standard connection. The connection stays in the requested state until the Letter of Authorization (LOA) is sent to the customer. </li> <li>  <code>pending</code>: The connection has been approved and is being initialized. </li> <li>  <code>available</code>: The network link is up and the connection is ready for use. </li> <li>  <code>down</code>: The network link is down. </li> <li>  <code>deleting</code>: The connection is being deleted. </li> <li>  <code>deleted</code>: The connection has been deleted. </li> <li>  <code>rejected</code>: A hosted connection in the <code>ordering</code> state enters the <code>rejected</code> state if it is deleted by the customer. </li> <li>  <code>unknown</code>: The state of the connection is not available. </li> </ul><br/>connectionName:  The name of the connection.<br/>connectionId:  The ID of the connection.<br/>ownerAccount:  The ID of the AWS account that owns the connection.<br/>        """
        pass

    def allocate_private_virtual_interface(self, newPrivateVirtualInterfaceAllocation: NewPrivateVirtualInterfaceAllocation, ownerAccount: str, connectionId: str) -> VirtualInterface:
        r"""Provisions a private virtual interface to be owned by the specified AWS account. Virtual interfaces created using this action must be confirmed by the owner using <a>ConfirmPrivateVirtualInterface</a>. Until then, the virtual interface is in the <code>Confirming</code> state and is not available to handle traffic.

        :param self:
        :param newPrivateVirtualInterfaceAllocation:  Information about the private virtual interface.:<br/>ownerAccount:  The ID of the AWS account that owns the virtual private interface.<br/>connectionId:  The ID of the connection on which the private virtual interface is provisioned.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The tags associated with the private virtual interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>customerAddress</i> The IP address assigned to the customer interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>addressFamily</i> The address family for the BGP peer.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>amazonAddress</i> The IP address assigned to the Amazon interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>authKey</i> The authentication key for BGP configuration. This string has a minimum length of 6 characters and and a maximun lenth of 80 characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>mtu</i> The maximum transmission unit (MTU), in bytes. The supported values are 1500 and 9001. The default value is 1500.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>asn</i> The autonomous system (AS) number for Border Gateway Protocol (BGP) configuration. The valid values are 1-2147483647.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>vlan</i> The ID of the VLAN.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>virtualInterfaceName</i> The name of the virtual interface assigned by the customer network. The name has a maximum of 100 characters. The following are valid characters: a-z, 0-9 and a hyphen (-).<br/>
        :return: tags:  The tags associated with the virtual interface.<br/>awsDeviceV2:  The Direct Connect endpoint on which the virtual interface terminates.<br/>region:  The AWS Region where the virtual interface is located.<br/>bgpPeers:  The BGP peers configured on this virtual interface.<br/>routeFilterPrefixes:  The routes to be advertised to the AWS network in this Region. Applies to public virtual interfaces.<br/>directConnectGatewayId:  The ID of the Direct Connect gateway.<br/>virtualGatewayId:  The ID of the virtual private gateway. Applies only to private virtual interfaces.<br/>jumboFrameCapable:  Indicates whether jumbo frames (9001 MTU) are supported.<br/>mtu:  The maximum transmission unit (MTU), in bytes. The supported values are 1500 and 9001. The default value is 1500.<br/>customerRouterConfig:  The customer router configuration.<br/>virtualInterfaceState:  The state of the virtual interface. The following are the possible values: <ul> <li>  <code>confirming</code>: The creation of the virtual interface is pending confirmation from the virtual interface owner. If the owner of the virtual interface is different from the owner of the connection on which it is provisioned, then the virtual interface will remain in this state until it is confirmed by the virtual interface owner. </li> <li>  <code>verifying</code>: This state only applies to public virtual interfaces. Each public virtual interface needs validation before the virtual interface can be created. </li> <li>  <code>pending</code>: A virtual interface is in this state from the time that it is created until the virtual interface is ready to forward traffic. </li> <li>  <code>available</code>: A virtual interface that is able to forward traffic. </li> <li>  <code>down</code>: A virtual interface that is BGP down. </li> <li>  <code>deleting</code>: A virtual interface is in this state immediately after calling <a>DeleteVirtualInterface</a> until it can no longer forward traffic. </li> <li>  <code>deleted</code>: A virtual interface that cannot forward traffic. </li> <li>  <code>rejected</code>: The virtual interface owner has declined creation of the virtual interface. If a virtual interface in the <code>Confirming</code> state is deleted by the virtual interface owner, the virtual interface enters the <code>Rejected</code> state. </li> <li>  <code>unknown</code>: The state of the virtual interface is not available. </li> </ul><br/>addressFamily:  The address family for the BGP peer.<br/>customerAddress:  The IP address assigned to the customer interface.<br/>amazonAddress:  The IP address assigned to the Amazon interface.<br/>authKey:  The authentication key for BGP configuration. This string has a minimum length of 6 characters and and a maximun lenth of 80 characters.<br/>amazonSideAsn:  The autonomous system number (ASN) for the Amazon side of the connection.<br/>asn:  The autonomous system (AS) number for Border Gateway Protocol (BGP) configuration. The valid values are 1-2147483647.<br/>vlan:  The ID of the VLAN.<br/>virtualInterfaceName:  The name of the virtual interface assigned by the customer network. The name has a maximum of 100 characters. The following are valid characters: a-z, 0-9 and a hyphen (-).<br/>virtualInterfaceType:  The type of virtual interface. The possible values are <code>private</code> and <code>public</code>.<br/>connectionId:  The ID of the connection.<br/>location:  The location of the connection.<br/>virtualInterfaceId:  The ID of the virtual interface.<br/>ownerAccount:  The ID of the AWS account that owns the virtual interface.<br/>        """
        pass

    def allocate_public_virtual_interface(self, newPublicVirtualInterfaceAllocation: NewPublicVirtualInterfaceAllocation, ownerAccount: str, connectionId: str) -> VirtualInterface:
        r"""Provisions a public virtual interface to be owned by the specified AWS account. The owner of a connection calls this function to provision a public virtual interface to be owned by the specified AWS account. Virtual interfaces created using this function must be confirmed by the owner using <a>ConfirmPublicVirtualInterface</a>. Until this step has been completed, the virtual interface is in the <code>confirming</code> state and is not available to handle traffic. When creating an IPv6 public virtual interface, omit the Amazon address and customer address. IPv6 addresses are automatically assigned from the Amazon pool of IPv6 addresses; you cannot specify custom IPv6 addresses.

        :param self:
        :param newPublicVirtualInterfaceAllocation:  Information about the public virtual interface.:<br/>ownerAccount:  The ID of the AWS account that owns the public virtual interface.<br/>connectionId:  The ID of the connection on which the public virtual interface is provisioned.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The tags associated with the public virtual interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>routeFilterPrefixes</i> The routes to be advertised to the AWS network in this Region. Applies to public virtual interfaces.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>addressFamily</i> The address family for the BGP peer.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>customerAddress</i> The IP address assigned to the customer interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>amazonAddress</i> The IP address assigned to the Amazon interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>authKey</i> The authentication key for BGP configuration. This string has a minimum length of 6 characters and and a maximun lenth of 80 characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>asn</i> The autonomous system (AS) number for Border Gateway Protocol (BGP) configuration. The valid values are 1-2147483647.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>vlan</i> The ID of the VLAN.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>virtualInterfaceName</i> The name of the virtual interface assigned by the customer network. The name has a maximum of 100 characters. The following are valid characters: a-z, 0-9 and a hyphen (-).<br/>
        :return: tags:  The tags associated with the virtual interface.<br/>awsDeviceV2:  The Direct Connect endpoint on which the virtual interface terminates.<br/>region:  The AWS Region where the virtual interface is located.<br/>bgpPeers:  The BGP peers configured on this virtual interface.<br/>routeFilterPrefixes:  The routes to be advertised to the AWS network in this Region. Applies to public virtual interfaces.<br/>directConnectGatewayId:  The ID of the Direct Connect gateway.<br/>virtualGatewayId:  The ID of the virtual private gateway. Applies only to private virtual interfaces.<br/>jumboFrameCapable:  Indicates whether jumbo frames (9001 MTU) are supported.<br/>mtu:  The maximum transmission unit (MTU), in bytes. The supported values are 1500 and 9001. The default value is 1500.<br/>customerRouterConfig:  The customer router configuration.<br/>virtualInterfaceState:  The state of the virtual interface. The following are the possible values: <ul> <li>  <code>confirming</code>: The creation of the virtual interface is pending confirmation from the virtual interface owner. If the owner of the virtual interface is different from the owner of the connection on which it is provisioned, then the virtual interface will remain in this state until it is confirmed by the virtual interface owner. </li> <li>  <code>verifying</code>: This state only applies to public virtual interfaces. Each public virtual interface needs validation before the virtual interface can be created. </li> <li>  <code>pending</code>: A virtual interface is in this state from the time that it is created until the virtual interface is ready to forward traffic. </li> <li>  <code>available</code>: A virtual interface that is able to forward traffic. </li> <li>  <code>down</code>: A virtual interface that is BGP down. </li> <li>  <code>deleting</code>: A virtual interface is in this state immediately after calling <a>DeleteVirtualInterface</a> until it can no longer forward traffic. </li> <li>  <code>deleted</code>: A virtual interface that cannot forward traffic. </li> <li>  <code>rejected</code>: The virtual interface owner has declined creation of the virtual interface. If a virtual interface in the <code>Confirming</code> state is deleted by the virtual interface owner, the virtual interface enters the <code>Rejected</code> state. </li> <li>  <code>unknown</code>: The state of the virtual interface is not available. </li> </ul><br/>addressFamily:  The address family for the BGP peer.<br/>customerAddress:  The IP address assigned to the customer interface.<br/>amazonAddress:  The IP address assigned to the Amazon interface.<br/>authKey:  The authentication key for BGP configuration. This string has a minimum length of 6 characters and and a maximun lenth of 80 characters.<br/>amazonSideAsn:  The autonomous system number (ASN) for the Amazon side of the connection.<br/>asn:  The autonomous system (AS) number for Border Gateway Protocol (BGP) configuration. The valid values are 1-2147483647.<br/>vlan:  The ID of the VLAN.<br/>virtualInterfaceName:  The name of the virtual interface assigned by the customer network. The name has a maximum of 100 characters. The following are valid characters: a-z, 0-9 and a hyphen (-).<br/>virtualInterfaceType:  The type of virtual interface. The possible values are <code>private</code> and <code>public</code>.<br/>connectionId:  The ID of the connection.<br/>location:  The location of the connection.<br/>virtualInterfaceId:  The ID of the virtual interface.<br/>ownerAccount:  The ID of the AWS account that owns the virtual interface.<br/>        """
        pass

    def allocate_transit_virtual_interface(self, newTransitVirtualInterfaceAllocation: NewTransitVirtualInterfaceAllocation, ownerAccount: str, connectionId: str) -> AllocateTransitVirtualInterfaceResult:
        r"""Provisions a transit virtual interface to be owned by the specified AWS account. Use this type of interface to connect a transit gateway to your Direct Connect gateway. The owner of a connection provisions a transit virtual interface to be owned by the specified AWS account. After you create a transit virtual interface, it must be confirmed by the owner using <a>ConfirmTransitVirtualInterface</a>. Until this step has been completed, the transit virtual interface is in the <code>requested</code> state and is not available to handle traffic.

        :param self:
        :param newTransitVirtualInterfaceAllocation:  Information about the transit virtual interface.:<br/>ownerAccount:  The ID of the AWS account that owns the transit virtual interface.<br/>connectionId:  The ID of the connection on which the transit virtual interface is provisioned.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The tags associated with the transitive virtual interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>addressFamily</i> The address family for the BGP peer.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>customerAddress</i> The IP address assigned to the customer interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>amazonAddress</i> The IP address assigned to the Amazon interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>authKey</i> The authentication key for BGP configuration. This string has a minimum length of 6 characters and and a maximun lenth of 80 characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>mtu</i> The maximum transmission unit (MTU), in bytes. The supported values are 1500 and 9001. The default value is 1500. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>asn</i> The autonomous system (AS) number for Border Gateway Protocol (BGP) configuration. The valid values are 1-2147483647.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>vlan</i> The ID of the VLAN.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>virtualInterfaceName</i> The name of the virtual interface assigned by the customer network. The name has a maximum of 100 characters. The following are valid characters: a-z, 0-9 and a hyphen (-).<br/>
        :return: virtualInterface:  Information about a virtual interface.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The tags associated with the virtual interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>awsDeviceV2</i> The Direct Connect endpoint on which the virtual interface terminates.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>region</i> The AWS Region where the virtual interface is located.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>bgpPeers</i> The BGP peers configured on this virtual interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>routeFilterPrefixes</i> The routes to be advertised to the AWS network in this Region. Applies to public virtual interfaces.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>directConnectGatewayId</i> The ID of the Direct Connect gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>virtualGatewayId</i> The ID of the virtual private gateway. Applies only to private virtual interfaces.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>jumboFrameCapable</i> Indicates whether jumbo frames (9001 MTU) are supported.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>mtu</i> The maximum transmission unit (MTU), in bytes. The supported values are 1500 and 9001. The default value is 1500.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>customerRouterConfig</i> The customer router configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>virtualInterfaceState</i> The state of the virtual interface. The following are the possible values: <ul> <li>  <code>confirming</code>: The creation of the virtual interface is pending confirmation from the virtual interface owner. If the owner of the virtual interface is different from the owner of the connection on which it is provisioned, then the virtual interface will remain in this state until it is confirmed by the virtual interface owner. </li> <li>  <code>verifying</code>: This state only applies to public virtual interfaces. Each public virtual interface needs validation before the virtual interface can be created. </li> <li>  <code>pending</code>: A virtual interface is in this state from the time that it is created until the virtual interface is ready to forward traffic. </li> <li>  <code>available</code>: A virtual interface that is able to forward traffic. </li> <li>  <code>down</code>: A virtual interface that is BGP down. </li> <li>  <code>deleting</code>: A virtual interface is in this state immediately after calling <a>DeleteVirtualInterface</a> until it can no longer forward traffic. </li> <li>  <code>deleted</code>: A virtual interface that cannot forward traffic. </li> <li>  <code>rejected</code>: The virtual interface owner has declined creation of the virtual interface. If a virtual interface in the <code>Confirming</code> state is deleted by the virtual interface owner, the virtual interface enters the <code>Rejected</code> state. </li> <li>  <code>unknown</code>: The state of the virtual interface is not available. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>addressFamily</i> The address family for the BGP peer.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>customerAddress</i> The IP address assigned to the customer interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>amazonAddress</i> The IP address assigned to the Amazon interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>authKey</i> The authentication key for BGP configuration. This string has a minimum length of 6 characters and and a maximun lenth of 80 characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>amazonSideAsn</i> The autonomous system number (ASN) for the Amazon side of the connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>asn</i> The autonomous system (AS) number for Border Gateway Protocol (BGP) configuration. The valid values are 1-2147483647.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>vlan</i> The ID of the VLAN.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>virtualInterfaceName</i> The name of the virtual interface assigned by the customer network. The name has a maximum of 100 characters. The following are valid characters: a-z, 0-9 and a hyphen (-).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>virtualInterfaceType</i> The type of virtual interface. The possible values are <code>private</code> and <code>public</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>connectionId</i> The ID of the connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i> The location of the connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>virtualInterfaceId</i> The ID of the virtual interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ownerAccount</i> The ID of the AWS account that owns the virtual interface.<br/>        """
        pass

    def associate_connection_with_lag(self, lagId: str, connectionId: str) -> Connection:
        r"""Associates an existing connection with a link aggregation group (LAG). The connection is interrupted and re-established as a member of the LAG (connectivity to AWS is interrupted). The connection must be hosted on the same AWS Direct Connect endpoint as the LAG, and its bandwidth must match the bandwidth for the LAG. You can re-associate a connection that's currently associated with a different LAG; however, if removing the connection would cause the original LAG to fall below its setting for minimum number of operational connections, the request fails. Any virtual interfaces that are directly associated with the connection are automatically re-associated with the LAG. If the connection was originally associated with a different LAG, the virtual interfaces remain associated with the original LAG. For interconnects, any hosted connections are automatically re-associated with the LAG. If the interconnect was originally associated with a different LAG, the hosted connections remain associated with the original LAG.

        :param self:
        :param lagId:  The ID of the LAG with which to associate the connection.<br/>connectionId:  The ID of the connection.<br/>
        :return: macSecKeys:  The MAC Security (MACsec) security keys associated with the connection.<br/>encryptionMode:  The MAC Security (MACsec) connection encryption mode. The valid values are <code>no_encrypt</code>, <code>should_encrypt</code>, and <code>must_encrypt</code>.<br/>portEncryptionStatus:  The MAC Security (MACsec) port link status of the connection. The valid values are <code>Encryption Up</code>, which means that there is an active Connection Key Name, or <code>Encryption Down</code>.<br/>macSecCapable:  Indicates whether the connection supports MAC Security (MACsec).<br/>providerName:  The name of the service provider associated with the connection.<br/>tags:  The tags associated with the connection.<br/>hasLogicalRedundancy:  Indicates whether the connection supports a secondary BGP peer in the same address family (IPv4/IPv6).<br/>awsDeviceV2:  The Direct Connect endpoint on which the physical connection terminates.<br/>jumboFrameCapable:  Indicates whether jumbo frames (9001 MTU) are supported.<br/>awsDevice:  The Direct Connect endpoint on which the physical connection terminates.<br/>lagId:  The ID of the LAG.<br/>loaIssueTime:  The time of the most recent call to <a>DescribeLoa</a> for this connection.<br/>partnerName:  The name of the AWS Direct Connect service provider associated with the connection.<br/>vlan:  The ID of the VLAN.<br/>bandwidth:  The bandwidth of the connection.<br/>location:  The location of the connection.<br/>region:  The AWS Region where the connection is located.<br/>connectionState:  The state of the connection. The following are the possible values: <ul> <li>  <code>ordering</code>: The initial state of a hosted connection provisioned on an interconnect. The connection stays in the ordering state until the owner of the hosted connection confirms or declines the connection order. </li> <li>  <code>requested</code>: The initial state of a standard connection. The connection stays in the requested state until the Letter of Authorization (LOA) is sent to the customer. </li> <li>  <code>pending</code>: The connection has been approved and is being initialized. </li> <li>  <code>available</code>: The network link is up and the connection is ready for use. </li> <li>  <code>down</code>: The network link is down. </li> <li>  <code>deleting</code>: The connection is being deleted. </li> <li>  <code>deleted</code>: The connection has been deleted. </li> <li>  <code>rejected</code>: A hosted connection in the <code>ordering</code> state enters the <code>rejected</code> state if it is deleted by the customer. </li> <li>  <code>unknown</code>: The state of the connection is not available. </li> </ul><br/>connectionName:  The name of the connection.<br/>connectionId:  The ID of the connection.<br/>ownerAccount:  The ID of the AWS account that owns the connection.<br/>        """
        pass

    def associate_hosted_connection(self, parentConnectionId: str, connectionId: str) -> Connection:
        r"""Associates a hosted connection and its virtual interfaces with a link aggregation group (LAG) or interconnect. If the target interconnect or LAG has an existing hosted connection with a conflicting VLAN number or IP address, the operation fails. This action temporarily interrupts the hosted connection's connectivity to AWS as it is being migrated. <note> Intended for use by AWS Direct Connect Partners only. </note>

        :param self:
        :param parentConnectionId:  The ID of the interconnect or the LAG.<br/>connectionId:  The ID of the hosted connection.<br/>
        :return: macSecKeys:  The MAC Security (MACsec) security keys associated with the connection.<br/>encryptionMode:  The MAC Security (MACsec) connection encryption mode. The valid values are <code>no_encrypt</code>, <code>should_encrypt</code>, and <code>must_encrypt</code>.<br/>portEncryptionStatus:  The MAC Security (MACsec) port link status of the connection. The valid values are <code>Encryption Up</code>, which means that there is an active Connection Key Name, or <code>Encryption Down</code>.<br/>macSecCapable:  Indicates whether the connection supports MAC Security (MACsec).<br/>providerName:  The name of the service provider associated with the connection.<br/>tags:  The tags associated with the connection.<br/>hasLogicalRedundancy:  Indicates whether the connection supports a secondary BGP peer in the same address family (IPv4/IPv6).<br/>awsDeviceV2:  The Direct Connect endpoint on which the physical connection terminates.<br/>jumboFrameCapable:  Indicates whether jumbo frames (9001 MTU) are supported.<br/>awsDevice:  The Direct Connect endpoint on which the physical connection terminates.<br/>lagId:  The ID of the LAG.<br/>loaIssueTime:  The time of the most recent call to <a>DescribeLoa</a> for this connection.<br/>partnerName:  The name of the AWS Direct Connect service provider associated with the connection.<br/>vlan:  The ID of the VLAN.<br/>bandwidth:  The bandwidth of the connection.<br/>location:  The location of the connection.<br/>region:  The AWS Region where the connection is located.<br/>connectionState:  The state of the connection. The following are the possible values: <ul> <li>  <code>ordering</code>: The initial state of a hosted connection provisioned on an interconnect. The connection stays in the ordering state until the owner of the hosted connection confirms or declines the connection order. </li> <li>  <code>requested</code>: The initial state of a standard connection. The connection stays in the requested state until the Letter of Authorization (LOA) is sent to the customer. </li> <li>  <code>pending</code>: The connection has been approved and is being initialized. </li> <li>  <code>available</code>: The network link is up and the connection is ready for use. </li> <li>  <code>down</code>: The network link is down. </li> <li>  <code>deleting</code>: The connection is being deleted. </li> <li>  <code>deleted</code>: The connection has been deleted. </li> <li>  <code>rejected</code>: A hosted connection in the <code>ordering</code> state enters the <code>rejected</code> state if it is deleted by the customer. </li> <li>  <code>unknown</code>: The state of the connection is not available. </li> </ul><br/>connectionName:  The name of the connection.<br/>connectionId:  The ID of the connection.<br/>ownerAccount:  The ID of the AWS account that owns the connection.<br/>        """
        pass

    def associate_mac_sec_key(self, connectionId: str, secretARN: str=None, ckn: str=None, cak: str=None) -> AssociateMacSecKeyResponse:
        r"""Associates a MAC Security (MACsec) Connection Key Name (CKN)/ Connectivity Association Key (CAK) pair with an AWS Direct Connect dedicated connection. You must supply either the <code>secretARN,</code> or the CKN/CAK (<code>ckn</code> and <code>cak</code>) pair in the request. For information about MAC Security (MACsec) key considerations, see <a href="https://docs.aws.amazon.com/directconnect/latest/UserGuide/direct-connect-mac-sec-getting-started.html#mac-sec-key-consideration">MACsec pre-shared CKN/CAK key considerations </a> in the <i>AWS Direct Connect User Guide</i>.

        :param self:
        :param cak:  The MAC Security (MACsec) CAK to associate with the dedicated connection. You can create the CKN/CAK pair using an industry standard tool.  The valid values are 64 hexadecimal characters (0-9, A-E). If you use this request parameter, you must use the <code>ckn</code> request parameter and not use the <code>secretARN</code> request parameter.<br/>ckn:  The MAC Security (MACsec) CKN to associate with the dedicated connection. You can create the CKN/CAK pair using an industry standard tool.  The valid values are 64 hexadecimal characters (0-9, A-E). If you use this request parameter, you must use the <code>cak</code> request parameter and not use the <code>secretARN</code> request parameter.<br/>secretARN:  The Amazon Resource Name (ARN) of the MAC Security (MACsec) secret key to associate with the dedicated connection. You can use <a>DescribeConnections</a> or <a>DescribeLags</a> to retrieve the MAC Security (MACsec) secret key. If you use this request parameter, you do not use the <code>ckn</code> and <code>cak</code> request parameters.<br/>connectionId:  The ID of the dedicated connection (dxcon-xxxx), or the ID of the LAG (dxlag-xxxx). You can use <a>DescribeConnections</a> or <a>DescribeLags</a> to retrieve connection ID.<br/>
        :return: macSecKeys:  The MAC Security (MACsec) security keys associated with the dedicated connection.<br/>connectionId:  The ID of the dedicated connection (dxcon-xxxx), or the ID of the LAG (dxlag-xxxx).<br/>        """
        pass

    def associate_virtual_interface(self, connectionId: str, virtualInterfaceId: str) -> VirtualInterface:
        r"""Associates a virtual interface with a specified link aggregation group (LAG) or connection. Connectivity to AWS is temporarily interrupted as the virtual interface is being migrated. If the target connection or LAG has an associated virtual interface with a conflicting VLAN number or a conflicting IP address, the operation fails. Virtual interfaces associated with a hosted connection cannot be associated with a LAG; hosted connections must be migrated along with their virtual interfaces using <a>AssociateHostedConnection</a>. To reassociate a virtual interface to a new connection or LAG, the requester must own either the virtual interface itself or the connection to which the virtual interface is currently associated. Additionally, the requester must own the connection or LAG for the association.

        :param self:
        :param connectionId:  The ID of the LAG or connection.<br/>virtualInterfaceId:  The ID of the virtual interface.<br/>
        :return: tags:  The tags associated with the virtual interface.<br/>awsDeviceV2:  The Direct Connect endpoint on which the virtual interface terminates.<br/>region:  The AWS Region where the virtual interface is located.<br/>bgpPeers:  The BGP peers configured on this virtual interface.<br/>routeFilterPrefixes:  The routes to be advertised to the AWS network in this Region. Applies to public virtual interfaces.<br/>directConnectGatewayId:  The ID of the Direct Connect gateway.<br/>virtualGatewayId:  The ID of the virtual private gateway. Applies only to private virtual interfaces.<br/>jumboFrameCapable:  Indicates whether jumbo frames (9001 MTU) are supported.<br/>mtu:  The maximum transmission unit (MTU), in bytes. The supported values are 1500 and 9001. The default value is 1500.<br/>customerRouterConfig:  The customer router configuration.<br/>virtualInterfaceState:  The state of the virtual interface. The following are the possible values: <ul> <li>  <code>confirming</code>: The creation of the virtual interface is pending confirmation from the virtual interface owner. If the owner of the virtual interface is different from the owner of the connection on which it is provisioned, then the virtual interface will remain in this state until it is confirmed by the virtual interface owner. </li> <li>  <code>verifying</code>: This state only applies to public virtual interfaces. Each public virtual interface needs validation before the virtual interface can be created. </li> <li>  <code>pending</code>: A virtual interface is in this state from the time that it is created until the virtual interface is ready to forward traffic. </li> <li>  <code>available</code>: A virtual interface that is able to forward traffic. </li> <li>  <code>down</code>: A virtual interface that is BGP down. </li> <li>  <code>deleting</code>: A virtual interface is in this state immediately after calling <a>DeleteVirtualInterface</a> until it can no longer forward traffic. </li> <li>  <code>deleted</code>: A virtual interface that cannot forward traffic. </li> <li>  <code>rejected</code>: The virtual interface owner has declined creation of the virtual interface. If a virtual interface in the <code>Confirming</code> state is deleted by the virtual interface owner, the virtual interface enters the <code>Rejected</code> state. </li> <li>  <code>unknown</code>: The state of the virtual interface is not available. </li> </ul><br/>addressFamily:  The address family for the BGP peer.<br/>customerAddress:  The IP address assigned to the customer interface.<br/>amazonAddress:  The IP address assigned to the Amazon interface.<br/>authKey:  The authentication key for BGP configuration. This string has a minimum length of 6 characters and and a maximun lenth of 80 characters.<br/>amazonSideAsn:  The autonomous system number (ASN) for the Amazon side of the connection.<br/>asn:  The autonomous system (AS) number for Border Gateway Protocol (BGP) configuration. The valid values are 1-2147483647.<br/>vlan:  The ID of the VLAN.<br/>virtualInterfaceName:  The name of the virtual interface assigned by the customer network. The name has a maximum of 100 characters. The following are valid characters: a-z, 0-9 and a hyphen (-).<br/>virtualInterfaceType:  The type of virtual interface. The possible values are <code>private</code> and <code>public</code>.<br/>connectionId:  The ID of the connection.<br/>location:  The location of the connection.<br/>virtualInterfaceId:  The ID of the virtual interface.<br/>ownerAccount:  The ID of the AWS account that owns the virtual interface.<br/>        """
        pass

    def confirm_connection(self, connectionId: str) -> ConfirmConnectionResponse:
        r"""Confirms the creation of the specified hosted connection on an interconnect. Upon creation, the hosted connection is initially in the <code>Ordering</code> state, and remains in this state until the owner confirms creation of the hosted connection.

        :param self:
        :param connectionId:  The ID of the hosted connection.<br/>
        :return: connectionState:  The state of the connection. The following are the possible values: <ul> <li>  <code>ordering</code>: The initial state of a hosted connection provisioned on an interconnect. The connection stays in the ordering state until the owner of the hosted connection confirms or declines the connection order. </li> <li>  <code>requested</code>: The initial state of a standard connection. The connection stays in the requested state until the Letter of Authorization (LOA) is sent to the customer. </li> <li>  <code>pending</code>: The connection has been approved and is being initialized. </li> <li>  <code>available</code>: The network link is up and the connection is ready for use. </li> <li>  <code>down</code>: The network link is down. </li> <li>  <code>deleting</code>: The connection is being deleted. </li> <li>  <code>deleted</code>: The connection has been deleted. </li> <li>  <code>rejected</code>: A hosted connection in the <code>ordering</code> state enters the <code>rejected</code> state if it is deleted by the customer. </li> <li>  <code>unknown</code>: The state of the connection is not available. </li> </ul><br/>        """
        pass

    def confirm_private_virtual_interface(self, virtualInterfaceId: str, virtualGatewayId: str=None, directConnectGatewayId: str=None) -> ConfirmPrivateVirtualInterfaceResponse:
        r"""Accepts ownership of a private virtual interface created by another AWS account. After the virtual interface owner makes this call, the virtual interface is created and attached to the specified virtual private gateway or Direct Connect gateway, and is made available to handle traffic.

        :param self:
        :param directConnectGatewayId:  The ID of the Direct Connect gateway.<br/>virtualGatewayId:  The ID of the virtual private gateway.<br/>virtualInterfaceId:  The ID of the virtual interface.<br/>
        :return: virtualInterfaceState:  The state of the virtual interface. The following are the possible values: <ul> <li>  <code>confirming</code>: The creation of the virtual interface is pending confirmation from the virtual interface owner. If the owner of the virtual interface is different from the owner of the connection on which it is provisioned, then the virtual interface will remain in this state until it is confirmed by the virtual interface owner. </li> <li>  <code>verifying</code>: This state only applies to public virtual interfaces. Each public virtual interface needs validation before the virtual interface can be created. </li> <li>  <code>pending</code>: A virtual interface is in this state from the time that it is created until the virtual interface is ready to forward traffic. </li> <li>  <code>available</code>: A virtual interface that is able to forward traffic. </li> <li>  <code>down</code>: A virtual interface that is BGP down. </li> <li>  <code>deleting</code>: A virtual interface is in this state immediately after calling <a>DeleteVirtualInterface</a> until it can no longer forward traffic. </li> <li>  <code>deleted</code>: A virtual interface that cannot forward traffic. </li> <li>  <code>rejected</code>: The virtual interface owner has declined creation of the virtual interface. If a virtual interface in the <code>Confirming</code> state is deleted by the virtual interface owner, the virtual interface enters the <code>Rejected</code> state. </li> <li>  <code>unknown</code>: The state of the virtual interface is not available. </li> </ul><br/>        """
        pass

    def confirm_public_virtual_interface(self, virtualInterfaceId: str) -> ConfirmPublicVirtualInterfaceResponse:
        r"""Accepts ownership of a public virtual interface created by another AWS account. After the virtual interface owner makes this call, the specified virtual interface is created and made available to handle traffic.

        :param self:
        :param virtualInterfaceId:  The ID of the virtual interface.<br/>
        :return: virtualInterfaceState:  The state of the virtual interface. The following are the possible values: <ul> <li>  <code>confirming</code>: The creation of the virtual interface is pending confirmation from the virtual interface owner. If the owner of the virtual interface is different from the owner of the connection on which it is provisioned, then the virtual interface will remain in this state until it is confirmed by the virtual interface owner. </li> <li>  <code>verifying</code>: This state only applies to public virtual interfaces. Each public virtual interface needs validation before the virtual interface can be created. </li> <li>  <code>pending</code>: A virtual interface is in this state from the time that it is created until the virtual interface is ready to forward traffic. </li> <li>  <code>available</code>: A virtual interface that is able to forward traffic. </li> <li>  <code>down</code>: A virtual interface that is BGP down. </li> <li>  <code>deleting</code>: A virtual interface is in this state immediately after calling <a>DeleteVirtualInterface</a> until it can no longer forward traffic. </li> <li>  <code>deleted</code>: A virtual interface that cannot forward traffic. </li> <li>  <code>rejected</code>: The virtual interface owner has declined creation of the virtual interface. If a virtual interface in the <code>Confirming</code> state is deleted by the virtual interface owner, the virtual interface enters the <code>Rejected</code> state. </li> <li>  <code>unknown</code>: The state of the virtual interface is not available. </li> </ul><br/>        """
        pass

    def confirm_transit_virtual_interface(self, directConnectGatewayId: str, virtualInterfaceId: str) -> ConfirmTransitVirtualInterfaceResponse:
        r"""Accepts ownership of a transit virtual interface created by another AWS account.  After the owner of the transit virtual interface makes this call, the specified transit virtual interface is created and made available to handle traffic.

        :param self:
        :param directConnectGatewayId:  The ID of the Direct Connect gateway.<br/>virtualInterfaceId:  The ID of the virtual interface.<br/>
        :return: virtualInterfaceState:  The state of the virtual interface. The following are the possible values: <ul> <li>  <code>confirming</code>: The creation of the virtual interface is pending confirmation from the virtual interface owner. If the owner of the virtual interface is different from the owner of the connection on which it is provisioned, then the virtual interface will remain in this state until it is confirmed by the virtual interface owner. </li> <li>  <code>verifying</code>: This state only applies to public virtual interfaces. Each public virtual interface needs validation before the virtual interface can be created. </li> <li>  <code>pending</code>: A virtual interface is in this state from the time that it is created until the virtual interface is ready to forward traffic. </li> <li>  <code>available</code>: A virtual interface that is able to forward traffic. </li> <li>  <code>down</code>: A virtual interface that is BGP down. </li> <li>  <code>deleting</code>: A virtual interface is in this state immediately after calling <a>DeleteVirtualInterface</a> until it can no longer forward traffic. </li> <li>  <code>deleted</code>: A virtual interface that cannot forward traffic. </li> <li>  <code>rejected</code>: The virtual interface owner has declined creation of the virtual interface. If a virtual interface in the <code>Confirming</code> state is deleted by the virtual interface owner, the virtual interface enters the <code>Rejected</code> state. </li> <li>  <code>unknown</code>: The state of the virtual interface is not available. </li> </ul><br/>        """
        pass

    def create_bgp_peer(self, virtualInterfaceId: str=None, newBGPPeer: NewBGPPeer=None) -> CreateBGPPeerResponse:
        r"""Creates a BGP peer on the specified virtual interface. You must create a BGP peer for the corresponding address family (IPv4/IPv6) in order to access AWS resources that also use that address family. If logical redundancy is not supported by the connection, interconnect, or LAG, the BGP peer cannot be in the same address family as an existing BGP peer on the virtual interface. When creating a IPv6 BGP peer, omit the Amazon address and customer address. IPv6 addresses are automatically assigned from the Amazon pool of IPv6 addresses; you cannot specify custom IPv6 addresses. For a public virtual interface, the Autonomous System Number (ASN) must be private or already on the allow list for the virtual interface.

        :param self:
        :param newBGPPeer:  Information about the BGP peer.:<br/>virtualInterfaceId:  The ID of the virtual interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>customerAddress</i> The IP address assigned to the customer interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>amazonAddress</i> The IP address assigned to the Amazon interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>addressFamily</i> The address family for the BGP peer.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>authKey</i> The authentication key for BGP configuration. This string has a minimum length of 6 characters and and a maximun lenth of 80 characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>asn</i> The autonomous system (AS) number for Border Gateway Protocol (BGP) configuration.<br/>
        :return: virtualInterface:  The virtual interface.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The tags associated with the virtual interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>awsDeviceV2</i> The Direct Connect endpoint on which the virtual interface terminates.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>region</i> The AWS Region where the virtual interface is located.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>bgpPeers</i> The BGP peers configured on this virtual interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>routeFilterPrefixes</i> The routes to be advertised to the AWS network in this Region. Applies to public virtual interfaces.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>directConnectGatewayId</i> The ID of the Direct Connect gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>virtualGatewayId</i> The ID of the virtual private gateway. Applies only to private virtual interfaces.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>jumboFrameCapable</i> Indicates whether jumbo frames (9001 MTU) are supported.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>mtu</i> The maximum transmission unit (MTU), in bytes. The supported values are 1500 and 9001. The default value is 1500.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>customerRouterConfig</i> The customer router configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>virtualInterfaceState</i> The state of the virtual interface. The following are the possible values: <ul> <li>  <code>confirming</code>: The creation of the virtual interface is pending confirmation from the virtual interface owner. If the owner of the virtual interface is different from the owner of the connection on which it is provisioned, then the virtual interface will remain in this state until it is confirmed by the virtual interface owner. </li> <li>  <code>verifying</code>: This state only applies to public virtual interfaces. Each public virtual interface needs validation before the virtual interface can be created. </li> <li>  <code>pending</code>: A virtual interface is in this state from the time that it is created until the virtual interface is ready to forward traffic. </li> <li>  <code>available</code>: A virtual interface that is able to forward traffic. </li> <li>  <code>down</code>: A virtual interface that is BGP down. </li> <li>  <code>deleting</code>: A virtual interface is in this state immediately after calling <a>DeleteVirtualInterface</a> until it can no longer forward traffic. </li> <li>  <code>deleted</code>: A virtual interface that cannot forward traffic. </li> <li>  <code>rejected</code>: The virtual interface owner has declined creation of the virtual interface. If a virtual interface in the <code>Confirming</code> state is deleted by the virtual interface owner, the virtual interface enters the <code>Rejected</code> state. </li> <li>  <code>unknown</code>: The state of the virtual interface is not available. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>addressFamily</i> The address family for the BGP peer.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>customerAddress</i> The IP address assigned to the customer interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>amazonAddress</i> The IP address assigned to the Amazon interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>authKey</i> The authentication key for BGP configuration. This string has a minimum length of 6 characters and and a maximun lenth of 80 characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>amazonSideAsn</i> The autonomous system number (ASN) for the Amazon side of the connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>asn</i> The autonomous system (AS) number for Border Gateway Protocol (BGP) configuration. The valid values are 1-2147483647.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>vlan</i> The ID of the VLAN.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>virtualInterfaceName</i> The name of the virtual interface assigned by the customer network. The name has a maximum of 100 characters. The following are valid characters: a-z, 0-9 and a hyphen (-).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>virtualInterfaceType</i> The type of virtual interface. The possible values are <code>private</code> and <code>public</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>connectionId</i> The ID of the connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i> The location of the connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>virtualInterfaceId</i> The ID of the virtual interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ownerAccount</i> The ID of the AWS account that owns the virtual interface.<br/>        """
        pass

    def create_connection(self, connectionName: str, bandwidth: str, location: str, lagId: str=None, tags: List[Tag]=None, providerName: str=None, requestMACSec: RequestMACSec=None) -> Connection:
        r"""Creates a connection between a customer network and a specific AWS Direct Connect location. A connection links your internal network to an AWS Direct Connect location over a standard Ethernet fiber-optic cable. One end of the cable is connected to your router, the other to an AWS Direct Connect router. To find the locations for your Region, use <a>DescribeLocations</a>. You can automatically add the new connection to a link aggregation group (LAG) by specifying a LAG ID in the request. This ensures that the new connection is allocated on the same AWS Direct Connect endpoint that hosts the specified LAG. If there are no available ports on the endpoint, the request fails and no connection is created.

        :param self:
        :param requestMACSec:  Indicates whether you want the connection to support MAC Security (MACsec). MAC Security (MACsec) is only available on dedicated connections. For information about MAC Security (MACsec) prerequisties, see <a href="https://docs.aws.amazon.com/directconnect/latest/UserGuide/direct-connect-mac-sec-getting-started.html#mac-sec-prerequisites">MACsec prerequisties</a> in the <i>AWS Direct Connect User Guide</i>.<br/>providerName:  The name of the service provider associated with the requested connection.<br/>tags:  The tags to associate with the lag.<br/>lagId:  The ID of the LAG.<br/>connectionName:  The name of the connection.<br/>bandwidth:  The bandwidth of the connection.<br/>location:  The location of the connection.<br/>
        :return: macSecKeys:  The MAC Security (MACsec) security keys associated with the connection.<br/>encryptionMode:  The MAC Security (MACsec) connection encryption mode. The valid values are <code>no_encrypt</code>, <code>should_encrypt</code>, and <code>must_encrypt</code>.<br/>portEncryptionStatus:  The MAC Security (MACsec) port link status of the connection. The valid values are <code>Encryption Up</code>, which means that there is an active Connection Key Name, or <code>Encryption Down</code>.<br/>macSecCapable:  Indicates whether the connection supports MAC Security (MACsec).<br/>providerName:  The name of the service provider associated with the connection.<br/>tags:  The tags associated with the connection.<br/>hasLogicalRedundancy:  Indicates whether the connection supports a secondary BGP peer in the same address family (IPv4/IPv6).<br/>awsDeviceV2:  The Direct Connect endpoint on which the physical connection terminates.<br/>jumboFrameCapable:  Indicates whether jumbo frames (9001 MTU) are supported.<br/>awsDevice:  The Direct Connect endpoint on which the physical connection terminates.<br/>lagId:  The ID of the LAG.<br/>loaIssueTime:  The time of the most recent call to <a>DescribeLoa</a> for this connection.<br/>partnerName:  The name of the AWS Direct Connect service provider associated with the connection.<br/>vlan:  The ID of the VLAN.<br/>bandwidth:  The bandwidth of the connection.<br/>location:  The location of the connection.<br/>region:  The AWS Region where the connection is located.<br/>connectionState:  The state of the connection. The following are the possible values: <ul> <li>  <code>ordering</code>: The initial state of a hosted connection provisioned on an interconnect. The connection stays in the ordering state until the owner of the hosted connection confirms or declines the connection order. </li> <li>  <code>requested</code>: The initial state of a standard connection. The connection stays in the requested state until the Letter of Authorization (LOA) is sent to the customer. </li> <li>  <code>pending</code>: The connection has been approved and is being initialized. </li> <li>  <code>available</code>: The network link is up and the connection is ready for use. </li> <li>  <code>down</code>: The network link is down. </li> <li>  <code>deleting</code>: The connection is being deleted. </li> <li>  <code>deleted</code>: The connection has been deleted. </li> <li>  <code>rejected</code>: A hosted connection in the <code>ordering</code> state enters the <code>rejected</code> state if it is deleted by the customer. </li> <li>  <code>unknown</code>: The state of the connection is not available. </li> </ul><br/>connectionName:  The name of the connection.<br/>connectionId:  The ID of the connection.<br/>ownerAccount:  The ID of the AWS account that owns the connection.<br/>        """
        pass

    def create_direct_connect_gateway(self, directConnectGatewayName: str, amazonSideAsn: LongAsn=None) -> CreateDirectConnectGatewayResult:
        r"""Creates a Direct Connect gateway, which is an intermediate object that enables you to connect a set of virtual interfaces and virtual private gateways. A Direct Connect gateway is global and visible in any AWS Region after it is created. The virtual interfaces and virtual private gateways that are connected through a Direct Connect gateway can be in different AWS Regions. This enables you to connect to a VPC in any Region, regardless of the Region in which the virtual interfaces are located, and pass traffic between them.

        :param self:
        :param amazonSideAsn:  The autonomous system number (ASN) for Border Gateway Protocol (BGP) to be configured on the Amazon side of the connection. The ASN must be in the private range of 64,512 to 65,534 or 4,200,000,000 to 4,294,967,294. The default is 64512.<br/>directConnectGatewayName:  The name of the Direct Connect gateway.<br/>
        :return: directConnectGateway:  The Direct Connect gateway.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>stateChangeError</i> The error message if the state of an object failed to advance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>directConnectGatewayState</i> The state of the Direct Connect gateway. The following are the possible values: <ul> <li>  <code>pending</code>: The initial state after calling <a>CreateDirectConnectGateway</a>. </li> <li>  <code>available</code>: The Direct Connect gateway is ready for use. </li> <li>  <code>deleting</code>: The initial state after calling <a>DeleteDirectConnectGateway</a>. </li> <li>  <code>deleted</code>: The Direct Connect gateway is deleted and cannot pass traffic. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ownerAccount</i> The ID of the AWS account that owns the Direct Connect gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>amazonSideAsn</i> The autonomous system number (ASN) for the Amazon side of the connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>directConnectGatewayName</i> The name of the Direct Connect gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>directConnectGatewayId</i> The ID of the Direct Connect gateway.<br/>        """
        pass

    def create_direct_connect_gateway_association(self, directConnectGatewayId: str, gatewayId: str=None, addAllowedPrefixesToDirectConnectGateway: List[RouteFilterPrefix]=None, virtualGatewayId: str=None) -> CreateDirectConnectGatewayAssociationResult:
        r"""Creates an association between a Direct Connect gateway and a virtual private gateway. The virtual private gateway must be attached to a VPC and must not be associated with another Direct Connect gateway.

        :param self:
        :param virtualGatewayId:  The ID of the virtual private gateway.<br/>addAllowedPrefixesToDirectConnectGateway:  The Amazon VPC prefixes to advertise to the Direct Connect gateway This parameter is required when you create an association to a transit gateway. For information about how to set the prefixes, see <a href="https://docs.aws.amazon.com/directconnect/latest/UserGuide/multi-account-associate-vgw.html#allowed-prefixes">Allowed Prefixes</a> in the <i>AWS Direct Connect User Guide</i>.<br/>gatewayId:  The ID of the virtual private gateway or transit gateway.<br/>directConnectGatewayId:  The ID of the Direct Connect gateway.<br/>
        :return: directConnectGatewayAssociation:  The association to be created.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>virtualGatewayOwnerAccount</i> The ID of the AWS account that owns the virtual private gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>virtualGatewayRegion</i> The AWS Region where the virtual private gateway is located.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>virtualGatewayId</i> The ID of the virtual private gateway. Applies only to private virtual interfaces.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>allowedPrefixesToDirectConnectGateway</i> The Amazon VPC prefixes to advertise to the Direct Connect gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>associationId</i> The ID of the Direct Connect gateway association.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>associatedGateway</i> Information about the associated gateway.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>associatedGateway</b>: Information about the associated gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>stateChangeError</i> The error message if the state of an object failed to advance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>associationState</i> The state of the association. The following are the possible values: <ul> <li>  <code>associating</code>: The initial state after calling <a>CreateDirectConnectGatewayAssociation</a>. </li> <li>  <code>associated</code>: The Direct Connect gateway and virtual private gateway or transit gateway are successfully associated and ready to pass traffic. </li> <li>  <code>disassociating</code>: The initial state after calling <a>DeleteDirectConnectGatewayAssociation</a>. </li> <li>  <code>disassociated</code>: The virtual private gateway or transit gateway is disassociated from the Direct Connect gateway. Traffic flow between the Direct Connect gateway and virtual private gateway or transit gateway is stopped. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>directConnectGatewayOwnerAccount</i> The ID of the AWS account that owns the associated gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>directConnectGatewayId</i> The ID of the Direct Connect gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>region</i> The Region where the associated gateway is located.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ownerAccount</i> The ID of the AWS account that owns the associated virtual private gateway or transit gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of associated gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The ID of the associated gateway.<br/>        """
        pass

    def create_direct_connect_gateway_association_proposal(self, gatewayId: str, directConnectGatewayOwnerAccount: str, directConnectGatewayId: str, addAllowedPrefixesToDirectConnectGateway: List[RouteFilterPrefix]=None, removeAllowedPrefixesToDirectConnectGateway: List[RouteFilterPrefix]=None) -> CreateDirectConnectGatewayAssociationProposalResult:
        r"""Creates a proposal to associate the specified virtual private gateway or transit gateway with the specified Direct Connect gateway. You can associate a Direct Connect gateway and virtual private gateway or transit gateway that is owned by any AWS account. 

        :param self:
        :param removeAllowedPrefixesToDirectConnectGateway:  The Amazon VPC prefixes to no longer advertise to the Direct Connect gateway.<br/>addAllowedPrefixesToDirectConnectGateway:  The Amazon VPC prefixes to advertise to the Direct Connect gateway.<br/>gatewayId:  The ID of the virtual private gateway or transit gateway.<br/>directConnectGatewayOwnerAccount:  The ID of the AWS account that owns the Direct Connect gateway.<br/>directConnectGatewayId:  The ID of the Direct Connect gateway.<br/>
        :return: directConnectGatewayAssociationProposal:  Information about the Direct Connect gateway proposal.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>requestedAllowedPrefixesToDirectConnectGateway</i> The Amazon VPC prefixes to advertise to the Direct Connect gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>existingAllowedPrefixesToDirectConnectGateway</i> The existing Amazon VPC prefixes advertised to the Direct Connect gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>associatedGateway</i> Information about the associated gateway.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>associatedGateway</b>: Information about the associated gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>proposalState</i> The state of the proposal. The following are possible values: <ul> <li>  <code>accepted</code>: The proposal has been accepted. The Direct Connect gateway association is available to use in this state. </li> <li>  <code>deleted</code>: The proposal has been deleted by the owner that made the proposal. The Direct Connect gateway association cannot be used in this state. </li> <li>  <code>requested</code>: The proposal has been requested. The Direct Connect gateway association cannot be used in this state. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>directConnectGatewayOwnerAccount</i> The ID of the AWS account that owns the Direct Connect gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>directConnectGatewayId</i> The ID of the Direct Connect gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>proposalId</i> The ID of the association proposal.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>region</i> The Region where the associated gateway is located.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ownerAccount</i> The ID of the AWS account that owns the associated virtual private gateway or transit gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of associated gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The ID of the associated gateway.<br/>        """
        pass

    def create_interconnect(self, location: str, bandwidth: str, interconnectName: str, lagId: str=None, tags: List[Tag]=None, providerName: str=None) -> Interconnect:
        r"""Creates an interconnect between an AWS Direct Connect Partner's network and a specific AWS Direct Connect location. An interconnect is a connection that is capable of hosting other connections. The AWS Direct Connect partner can use an interconnect to provide AWS Direct Connect hosted connections to customers through their own network services. Like a standard connection, an interconnect links the partner's network to an AWS Direct Connect location over a standard Ethernet fiber-optic cable. One end is connected to the partner's router, the other to an AWS Direct Connect router. You can automatically add the new interconnect to a link aggregation group (LAG) by specifying a LAG ID in the request. This ensures that the new interconnect is allocated on the same AWS Direct Connect endpoint that hosts the specified LAG. If there are no available ports on the endpoint, the request fails and no interconnect is created. For each end customer, the AWS Direct Connect Partner provisions a connection on their interconnect by calling <a>AllocateHostedConnection</a>. The end customer can then connect to AWS resources by creating a virtual interface on their connection, using the VLAN assigned to them by the AWS Direct Connect Partner. <note> Intended for use by AWS Direct Connect Partners only. </note>

        :param self:
        :param providerName:  The name of the service provider associated with the interconnect.<br/>tags:  The tags to associate with the interconnect.<br/>lagId:  The ID of the LAG.<br/>location:  The location of the interconnect.<br/>bandwidth:  The port bandwidth, in Gbps. The possible values are 1 and 10.<br/>interconnectName:  The name of the interconnect.<br/>
        :return: providerName:  The name of the service provider associated with the interconnect.<br/>tags:  The tags associated with the interconnect.<br/>hasLogicalRedundancy:  Indicates whether the interconnect supports a secondary BGP in the same address family (IPv4/IPv6).<br/>awsDeviceV2:  The Direct Connect endpoint on which the physical connection terminates.<br/>jumboFrameCapable:  Indicates whether jumbo frames (9001 MTU) are supported.<br/>awsDevice:  The Direct Connect endpoint on which the physical connection terminates.<br/>lagId:  The ID of the LAG.<br/>loaIssueTime:  The time of the most recent call to <a>DescribeLoa</a> for this connection.<br/>bandwidth:  The bandwidth of the connection.<br/>location:  The location of the connection.<br/>region:  The AWS Region where the connection is located.<br/>interconnectState:  The state of the interconnect. The following are the possible values: <ul> <li>  <code>requested</code>: The initial state of an interconnect. The interconnect stays in the requested state until the Letter of Authorization (LOA) is sent to the customer. </li> <li>  <code>pending</code>: The interconnect is approved, and is being initialized. </li> <li>  <code>available</code>: The network link is up, and the interconnect is ready for use. </li> <li>  <code>down</code>: The network link is down. </li> <li>  <code>deleting</code>: The interconnect is being deleted. </li> <li>  <code>deleted</code>: The interconnect is deleted. </li> <li>  <code>unknown</code>: The state of the interconnect is not available. </li> </ul><br/>interconnectName:  The name of the interconnect.<br/>interconnectId:  The ID of the interconnect.<br/>        """
        pass

    def create_lag(self, lagName: str, connectionsBandwidth: str, location: str, numberOfConnections: int, connectionId: str=None, tags: List[Tag]=None, childConnectionTags: List[Tag]=None, providerName: str=None, requestMACSec: RequestMACSec=None) -> Lag:
        r"""Creates a link aggregation group (LAG) with the specified number of bundled physical dedicated connections between the customer network and a specific AWS Direct Connect location. A LAG is a logical interface that uses the Link Aggregation Control Protocol (LACP) to aggregate multiple interfaces, enabling you to treat them as a single interface. All connections in a LAG must use the same bandwidth (either 1Gbps or 10Gbps) and must terminate at the same AWS Direct Connect endpoint. You can have up to 10 dedicated connections per LAG. Regardless of this limit, if you request more connections for the LAG than AWS Direct Connect can allocate on a single endpoint, no LAG is created. You can specify an existing physical dedicated connection or interconnect to include in the LAG (which counts towards the total number of connections). Doing so interrupts the current physical dedicated connection, and re-establishes them as a member of the LAG. The LAG will be created on the same AWS Direct Connect endpoint to which the dedicated connection terminates. Any virtual interfaces associated with the dedicated connection are automatically disassociated and re-associated with the LAG. The connection ID does not change. If the AWS account used to create a LAG is a registered AWS Direct Connect Partner, the LAG is automatically enabled to host sub-connections. For a LAG owned by a partner, any associated virtual interfaces cannot be directly configured.

        :param self:
        :param requestMACSec:  Indicates whether the connection will support MAC Security (MACsec). <note> All connections in the LAG must be capable of supporting MAC Security (MACsec). For information about MAC Security (MACsec) prerequisties, see <a href="https://docs.aws.amazon.com/directconnect/latest/UserGuide/direct-connect-mac-sec-getting-started.html#mac-sec-prerequisites">MACsec prerequisties</a> in the <i>AWS Direct Connect User Guide</i>. </note><br/>providerName:  The name of the service provider associated with the LAG.<br/>childConnectionTags:  The tags to associate with the automtically created LAGs.<br/>tags:  The tags to associate with the LAG.<br/>connectionId:  The ID of an existing dedicated connection to migrate to the LAG.<br/>lagName:  The name of the LAG.<br/>connectionsBandwidth:  The bandwidth of the individual physical dedicated connections bundled by the LAG. The possible values are 1Gbps and 10Gbps. <br/>location:  The location for the LAG.<br/>numberOfConnections:  The number of physical dedicated connections initially provisioned and bundled by the LAG.<br/>
        :return: macSecKeys:  The MAC Security (MACsec) security keys associated with the LAG.<br/>encryptionMode:  The LAG MAC Security (MACsec) encryption mode. The valid values are <code>no_encrypt</code>, <code>should_encrypt</code>, and <code>must_encrypt</code>.<br/>macSecCapable:  Indicates whether the LAG supports MAC Security (MACsec).<br/>providerName:  The name of the service provider associated with the LAG.<br/>tags:  The tags associated with the LAG.<br/>hasLogicalRedundancy:  Indicates whether the LAG supports a secondary BGP peer in the same address family (IPv4/IPv6).<br/>jumboFrameCapable:  Indicates whether jumbo frames (9001 MTU) are supported.<br/>allowsHostedConnections:  Indicates whether the LAG can host other connections.<br/>connections:  The connections bundled by the LAG.<br/>awsDeviceV2:  The AWS Direct Connect endpoint that hosts the LAG.<br/>awsDevice:  The AWS Direct Connect endpoint that hosts the LAG.<br/>minimumLinks:  The minimum number of physical dedicated connections that must be operational for the LAG itself to be operational.<br/>region:  The AWS Region where the connection is located.<br/>location:  The location of the LAG.<br/>lagState:  The state of the LAG. The following are the possible values: <ul> <li>  <code>requested</code>: The initial state of a LAG. The LAG stays in the requested state until the Letter of Authorization (LOA) is available. </li> <li>  <code>pending</code>: The LAG has been approved and is being initialized. </li> <li>  <code>available</code>: The network link is established and the LAG is ready for use. </li> <li>  <code>down</code>: The network link is down. </li> <li>  <code>deleting</code>: The LAG is being deleted. </li> <li>  <code>deleted</code>: The LAG is deleted. </li> <li>  <code>unknown</code>: The state of the LAG is not available. </li> </ul><br/>lagName:  The name of the LAG.<br/>ownerAccount:  The ID of the AWS account that owns the LAG.<br/>lagId:  The ID of the LAG.<br/>numberOfConnections:  The number of physical dedicated connections bundled by the LAG, up to a maximum of 10.<br/>connectionsBandwidth:  The individual bandwidth of the physical connections bundled by the LAG. The possible values are 1Gbps and 10Gbps. <br/>        """
        pass

    def create_private_virtual_interface(self, newPrivateVirtualInterface: NewPrivateVirtualInterface, connectionId: str) -> VirtualInterface:
        r"""Creates a private virtual interface. A virtual interface is the VLAN that transports AWS Direct Connect traffic. A private virtual interface can be connected to either a Direct Connect gateway or a Virtual Private Gateway (VGW). Connecting the private virtual interface to a Direct Connect gateway enables the possibility for connecting to multiple VPCs, including VPCs in different AWS Regions. Connecting the private virtual interface to a VGW only provides access to a single VPC within the same Region. Setting the MTU of a virtual interface to 9001 (jumbo frames) can cause an update to the underlying physical connection if it wasn't updated to support jumbo frames. Updating the connection disrupts network connectivity for all virtual interfaces associated with the connection for up to 30 seconds. To check whether your connection supports jumbo frames, call <a>DescribeConnections</a>. To check whether your virtual interface supports jumbo frames, call <a>DescribeVirtualInterfaces</a>.

        :param self:
        :param newPrivateVirtualInterface:  Information about the private virtual interface.:<br/>connectionId:  The ID of the connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The tags associated with the private virtual interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>directConnectGatewayId</i> The ID of the Direct Connect gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>virtualGatewayId</i> The ID of the virtual private gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>addressFamily</i> The address family for the BGP peer.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>customerAddress</i> The IP address assigned to the customer interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>amazonAddress</i> The IP address assigned to the Amazon interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>authKey</i> The authentication key for BGP configuration. This string has a minimum length of 6 characters and and a maximun lenth of 80 characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>mtu</i> The maximum transmission unit (MTU), in bytes. The supported values are 1500 and 9001. The default value is 1500.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>asn</i> The autonomous system (AS) number for Border Gateway Protocol (BGP) configuration. The valid values are 1-2147483647.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>vlan</i> The ID of the VLAN.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>virtualInterfaceName</i> The name of the virtual interface assigned by the customer network. The name has a maximum of 100 characters. The following are valid characters: a-z, 0-9 and a hyphen (-).<br/>
        :return: tags:  The tags associated with the virtual interface.<br/>awsDeviceV2:  The Direct Connect endpoint on which the virtual interface terminates.<br/>region:  The AWS Region where the virtual interface is located.<br/>bgpPeers:  The BGP peers configured on this virtual interface.<br/>routeFilterPrefixes:  The routes to be advertised to the AWS network in this Region. Applies to public virtual interfaces.<br/>directConnectGatewayId:  The ID of the Direct Connect gateway.<br/>virtualGatewayId:  The ID of the virtual private gateway. Applies only to private virtual interfaces.<br/>jumboFrameCapable:  Indicates whether jumbo frames (9001 MTU) are supported.<br/>mtu:  The maximum transmission unit (MTU), in bytes. The supported values are 1500 and 9001. The default value is 1500.<br/>customerRouterConfig:  The customer router configuration.<br/>virtualInterfaceState:  The state of the virtual interface. The following are the possible values: <ul> <li>  <code>confirming</code>: The creation of the virtual interface is pending confirmation from the virtual interface owner. If the owner of the virtual interface is different from the owner of the connection on which it is provisioned, then the virtual interface will remain in this state until it is confirmed by the virtual interface owner. </li> <li>  <code>verifying</code>: This state only applies to public virtual interfaces. Each public virtual interface needs validation before the virtual interface can be created. </li> <li>  <code>pending</code>: A virtual interface is in this state from the time that it is created until the virtual interface is ready to forward traffic. </li> <li>  <code>available</code>: A virtual interface that is able to forward traffic. </li> <li>  <code>down</code>: A virtual interface that is BGP down. </li> <li>  <code>deleting</code>: A virtual interface is in this state immediately after calling <a>DeleteVirtualInterface</a> until it can no longer forward traffic. </li> <li>  <code>deleted</code>: A virtual interface that cannot forward traffic. </li> <li>  <code>rejected</code>: The virtual interface owner has declined creation of the virtual interface. If a virtual interface in the <code>Confirming</code> state is deleted by the virtual interface owner, the virtual interface enters the <code>Rejected</code> state. </li> <li>  <code>unknown</code>: The state of the virtual interface is not available. </li> </ul><br/>addressFamily:  The address family for the BGP peer.<br/>customerAddress:  The IP address assigned to the customer interface.<br/>amazonAddress:  The IP address assigned to the Amazon interface.<br/>authKey:  The authentication key for BGP configuration. This string has a minimum length of 6 characters and and a maximun lenth of 80 characters.<br/>amazonSideAsn:  The autonomous system number (ASN) for the Amazon side of the connection.<br/>asn:  The autonomous system (AS) number for Border Gateway Protocol (BGP) configuration. The valid values are 1-2147483647.<br/>vlan:  The ID of the VLAN.<br/>virtualInterfaceName:  The name of the virtual interface assigned by the customer network. The name has a maximum of 100 characters. The following are valid characters: a-z, 0-9 and a hyphen (-).<br/>virtualInterfaceType:  The type of virtual interface. The possible values are <code>private</code> and <code>public</code>.<br/>connectionId:  The ID of the connection.<br/>location:  The location of the connection.<br/>virtualInterfaceId:  The ID of the virtual interface.<br/>ownerAccount:  The ID of the AWS account that owns the virtual interface.<br/>        """
        pass

    def create_public_virtual_interface(self, newPublicVirtualInterface: NewPublicVirtualInterface, connectionId: str) -> VirtualInterface:
        r"""Creates a public virtual interface. A virtual interface is the VLAN that transports AWS Direct Connect traffic. A public virtual interface supports sending traffic to public services of AWS such as Amazon S3. When creating an IPv6 public virtual interface (<code>addressFamily</code> is <code>ipv6</code>), leave the <code>customer</code> and <code>amazon</code> address fields blank to use auto-assigned IPv6 space. Custom IPv6 addresses are not supported.

        :param self:
        :param newPublicVirtualInterface:  Information about the public virtual interface.:<br/>connectionId:  The ID of the connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The tags associated with the public virtual interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>routeFilterPrefixes</i> The routes to be advertised to the AWS network in this Region. Applies to public virtual interfaces.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>addressFamily</i> The address family for the BGP peer.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>customerAddress</i> The IP address assigned to the customer interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>amazonAddress</i> The IP address assigned to the Amazon interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>authKey</i> The authentication key for BGP configuration. This string has a minimum length of 6 characters and and a maximun lenth of 80 characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>asn</i> The autonomous system (AS) number for Border Gateway Protocol (BGP) configuration. The valid values are 1-2147483647.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>vlan</i> The ID of the VLAN.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>virtualInterfaceName</i> The name of the virtual interface assigned by the customer network. The name has a maximum of 100 characters. The following are valid characters: a-z, 0-9 and a hyphen (-).<br/>
        :return: tags:  The tags associated with the virtual interface.<br/>awsDeviceV2:  The Direct Connect endpoint on which the virtual interface terminates.<br/>region:  The AWS Region where the virtual interface is located.<br/>bgpPeers:  The BGP peers configured on this virtual interface.<br/>routeFilterPrefixes:  The routes to be advertised to the AWS network in this Region. Applies to public virtual interfaces.<br/>directConnectGatewayId:  The ID of the Direct Connect gateway.<br/>virtualGatewayId:  The ID of the virtual private gateway. Applies only to private virtual interfaces.<br/>jumboFrameCapable:  Indicates whether jumbo frames (9001 MTU) are supported.<br/>mtu:  The maximum transmission unit (MTU), in bytes. The supported values are 1500 and 9001. The default value is 1500.<br/>customerRouterConfig:  The customer router configuration.<br/>virtualInterfaceState:  The state of the virtual interface. The following are the possible values: <ul> <li>  <code>confirming</code>: The creation of the virtual interface is pending confirmation from the virtual interface owner. If the owner of the virtual interface is different from the owner of the connection on which it is provisioned, then the virtual interface will remain in this state until it is confirmed by the virtual interface owner. </li> <li>  <code>verifying</code>: This state only applies to public virtual interfaces. Each public virtual interface needs validation before the virtual interface can be created. </li> <li>  <code>pending</code>: A virtual interface is in this state from the time that it is created until the virtual interface is ready to forward traffic. </li> <li>  <code>available</code>: A virtual interface that is able to forward traffic. </li> <li>  <code>down</code>: A virtual interface that is BGP down. </li> <li>  <code>deleting</code>: A virtual interface is in this state immediately after calling <a>DeleteVirtualInterface</a> until it can no longer forward traffic. </li> <li>  <code>deleted</code>: A virtual interface that cannot forward traffic. </li> <li>  <code>rejected</code>: The virtual interface owner has declined creation of the virtual interface. If a virtual interface in the <code>Confirming</code> state is deleted by the virtual interface owner, the virtual interface enters the <code>Rejected</code> state. </li> <li>  <code>unknown</code>: The state of the virtual interface is not available. </li> </ul><br/>addressFamily:  The address family for the BGP peer.<br/>customerAddress:  The IP address assigned to the customer interface.<br/>amazonAddress:  The IP address assigned to the Amazon interface.<br/>authKey:  The authentication key for BGP configuration. This string has a minimum length of 6 characters and and a maximun lenth of 80 characters.<br/>amazonSideAsn:  The autonomous system number (ASN) for the Amazon side of the connection.<br/>asn:  The autonomous system (AS) number for Border Gateway Protocol (BGP) configuration. The valid values are 1-2147483647.<br/>vlan:  The ID of the VLAN.<br/>virtualInterfaceName:  The name of the virtual interface assigned by the customer network. The name has a maximum of 100 characters. The following are valid characters: a-z, 0-9 and a hyphen (-).<br/>virtualInterfaceType:  The type of virtual interface. The possible values are <code>private</code> and <code>public</code>.<br/>connectionId:  The ID of the connection.<br/>location:  The location of the connection.<br/>virtualInterfaceId:  The ID of the virtual interface.<br/>ownerAccount:  The ID of the AWS account that owns the virtual interface.<br/>        """
        pass

    def create_transit_virtual_interface(self, newTransitVirtualInterface: NewTransitVirtualInterface, connectionId: str) -> CreateTransitVirtualInterfaceResult:
        r"""Creates a transit virtual interface. A transit virtual interface should be used to access one or more transit gateways associated with Direct Connect gateways. A transit virtual interface enables the connection of multiple VPCs attached to a transit gateway to a Direct Connect gateway. <important> If you associate your transit gateway with one or more Direct Connect gateways, the Autonomous System Number (ASN) used by the transit gateway and the Direct Connect gateway must be different. For example, if you use the default ASN 64512 for both your the transit gateway and Direct Connect gateway, the association request fails. </important> Setting the MTU of a virtual interface to 8500 (jumbo frames) can cause an update to the underlying physical connection if it wasn't updated to support jumbo frames. Updating the connection disrupts network connectivity for all virtual interfaces associated with the connection for up to 30 seconds. To check whether your connection supports jumbo frames, call <a>DescribeConnections</a>. To check whether your virtual interface supports jumbo frames, call <a>DescribeVirtualInterfaces</a>.

        :param self:
        :param newTransitVirtualInterface:  Information about the transit virtual interface.:<br/>connectionId:  The ID of the connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The tags associated with the transitive virtual interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>directConnectGatewayId</i> The ID of the Direct Connect gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>addressFamily</i> The address family for the BGP peer.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>customerAddress</i> The IP address assigned to the customer interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>amazonAddress</i> The IP address assigned to the Amazon interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>authKey</i> The authentication key for BGP configuration. This string has a minimum length of 6 characters and and a maximun lenth of 80 characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>mtu</i> The maximum transmission unit (MTU), in bytes. The supported values are 1500 and 9001. The default value is 1500.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>asn</i> The autonomous system (AS) number for Border Gateway Protocol (BGP) configuration. The valid values are 1-2147483647.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>vlan</i> The ID of the VLAN.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>virtualInterfaceName</i> The name of the virtual interface assigned by the customer network. The name has a maximum of 100 characters. The following are valid characters: a-z, 0-9 and a hyphen (-).<br/>
        :return: virtualInterface:  Information about a virtual interface.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The tags associated with the virtual interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>awsDeviceV2</i> The Direct Connect endpoint on which the virtual interface terminates.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>region</i> The AWS Region where the virtual interface is located.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>bgpPeers</i> The BGP peers configured on this virtual interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>routeFilterPrefixes</i> The routes to be advertised to the AWS network in this Region. Applies to public virtual interfaces.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>directConnectGatewayId</i> The ID of the Direct Connect gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>virtualGatewayId</i> The ID of the virtual private gateway. Applies only to private virtual interfaces.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>jumboFrameCapable</i> Indicates whether jumbo frames (9001 MTU) are supported.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>mtu</i> The maximum transmission unit (MTU), in bytes. The supported values are 1500 and 9001. The default value is 1500.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>customerRouterConfig</i> The customer router configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>virtualInterfaceState</i> The state of the virtual interface. The following are the possible values: <ul> <li>  <code>confirming</code>: The creation of the virtual interface is pending confirmation from the virtual interface owner. If the owner of the virtual interface is different from the owner of the connection on which it is provisioned, then the virtual interface will remain in this state until it is confirmed by the virtual interface owner. </li> <li>  <code>verifying</code>: This state only applies to public virtual interfaces. Each public virtual interface needs validation before the virtual interface can be created. </li> <li>  <code>pending</code>: A virtual interface is in this state from the time that it is created until the virtual interface is ready to forward traffic. </li> <li>  <code>available</code>: A virtual interface that is able to forward traffic. </li> <li>  <code>down</code>: A virtual interface that is BGP down. </li> <li>  <code>deleting</code>: A virtual interface is in this state immediately after calling <a>DeleteVirtualInterface</a> until it can no longer forward traffic. </li> <li>  <code>deleted</code>: A virtual interface that cannot forward traffic. </li> <li>  <code>rejected</code>: The virtual interface owner has declined creation of the virtual interface. If a virtual interface in the <code>Confirming</code> state is deleted by the virtual interface owner, the virtual interface enters the <code>Rejected</code> state. </li> <li>  <code>unknown</code>: The state of the virtual interface is not available. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>addressFamily</i> The address family for the BGP peer.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>customerAddress</i> The IP address assigned to the customer interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>amazonAddress</i> The IP address assigned to the Amazon interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>authKey</i> The authentication key for BGP configuration. This string has a minimum length of 6 characters and and a maximun lenth of 80 characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>amazonSideAsn</i> The autonomous system number (ASN) for the Amazon side of the connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>asn</i> The autonomous system (AS) number for Border Gateway Protocol (BGP) configuration. The valid values are 1-2147483647.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>vlan</i> The ID of the VLAN.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>virtualInterfaceName</i> The name of the virtual interface assigned by the customer network. The name has a maximum of 100 characters. The following are valid characters: a-z, 0-9 and a hyphen (-).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>virtualInterfaceType</i> The type of virtual interface. The possible values are <code>private</code> and <code>public</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>connectionId</i> The ID of the connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i> The location of the connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>virtualInterfaceId</i> The ID of the virtual interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ownerAccount</i> The ID of the AWS account that owns the virtual interface.<br/>        """
        pass

    def delete_bgp_peer(self, virtualInterfaceId: str=None, asn: int=None, customerAddress: str=None, bgpPeerId: str=None) -> DeleteBGPPeerResponse:
        r"""Deletes the specified BGP peer on the specified virtual interface with the specified customer address and ASN. You cannot delete the last BGP peer from a virtual interface.

        :param self:
        :param bgpPeerId:  The ID of the BGP peer.<br/>customerAddress:  The IP address assigned to the customer interface.<br/>asn:  The autonomous system (AS) number for Border Gateway Protocol (BGP) configuration.<br/>virtualInterfaceId:  The ID of the virtual interface.<br/>
        :return: virtualInterface:  The virtual interface.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The tags associated with the virtual interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>awsDeviceV2</i> The Direct Connect endpoint on which the virtual interface terminates.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>region</i> The AWS Region where the virtual interface is located.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>bgpPeers</i> The BGP peers configured on this virtual interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>routeFilterPrefixes</i> The routes to be advertised to the AWS network in this Region. Applies to public virtual interfaces.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>directConnectGatewayId</i> The ID of the Direct Connect gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>virtualGatewayId</i> The ID of the virtual private gateway. Applies only to private virtual interfaces.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>jumboFrameCapable</i> Indicates whether jumbo frames (9001 MTU) are supported.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>mtu</i> The maximum transmission unit (MTU), in bytes. The supported values are 1500 and 9001. The default value is 1500.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>customerRouterConfig</i> The customer router configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>virtualInterfaceState</i> The state of the virtual interface. The following are the possible values: <ul> <li>  <code>confirming</code>: The creation of the virtual interface is pending confirmation from the virtual interface owner. If the owner of the virtual interface is different from the owner of the connection on which it is provisioned, then the virtual interface will remain in this state until it is confirmed by the virtual interface owner. </li> <li>  <code>verifying</code>: This state only applies to public virtual interfaces. Each public virtual interface needs validation before the virtual interface can be created. </li> <li>  <code>pending</code>: A virtual interface is in this state from the time that it is created until the virtual interface is ready to forward traffic. </li> <li>  <code>available</code>: A virtual interface that is able to forward traffic. </li> <li>  <code>down</code>: A virtual interface that is BGP down. </li> <li>  <code>deleting</code>: A virtual interface is in this state immediately after calling <a>DeleteVirtualInterface</a> until it can no longer forward traffic. </li> <li>  <code>deleted</code>: A virtual interface that cannot forward traffic. </li> <li>  <code>rejected</code>: The virtual interface owner has declined creation of the virtual interface. If a virtual interface in the <code>Confirming</code> state is deleted by the virtual interface owner, the virtual interface enters the <code>Rejected</code> state. </li> <li>  <code>unknown</code>: The state of the virtual interface is not available. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>addressFamily</i> The address family for the BGP peer.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>customerAddress</i> The IP address assigned to the customer interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>amazonAddress</i> The IP address assigned to the Amazon interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>authKey</i> The authentication key for BGP configuration. This string has a minimum length of 6 characters and and a maximun lenth of 80 characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>amazonSideAsn</i> The autonomous system number (ASN) for the Amazon side of the connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>asn</i> The autonomous system (AS) number for Border Gateway Protocol (BGP) configuration. The valid values are 1-2147483647.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>vlan</i> The ID of the VLAN.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>virtualInterfaceName</i> The name of the virtual interface assigned by the customer network. The name has a maximum of 100 characters. The following are valid characters: a-z, 0-9 and a hyphen (-).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>virtualInterfaceType</i> The type of virtual interface. The possible values are <code>private</code> and <code>public</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>connectionId</i> The ID of the connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i> The location of the connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>virtualInterfaceId</i> The ID of the virtual interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ownerAccount</i> The ID of the AWS account that owns the virtual interface.<br/>        """
        pass

    def delete_connection(self, connectionId: str) -> Connection:
        r"""Deletes the specified connection. Deleting a connection only stops the AWS Direct Connect port hour and data transfer charges. If you are partnering with any third parties to connect with the AWS Direct Connect location, you must cancel your service with them separately.

        :param self:
        :param connectionId:  The ID of the connection.<br/>
        :return: macSecKeys:  The MAC Security (MACsec) security keys associated with the connection.<br/>encryptionMode:  The MAC Security (MACsec) connection encryption mode. The valid values are <code>no_encrypt</code>, <code>should_encrypt</code>, and <code>must_encrypt</code>.<br/>portEncryptionStatus:  The MAC Security (MACsec) port link status of the connection. The valid values are <code>Encryption Up</code>, which means that there is an active Connection Key Name, or <code>Encryption Down</code>.<br/>macSecCapable:  Indicates whether the connection supports MAC Security (MACsec).<br/>providerName:  The name of the service provider associated with the connection.<br/>tags:  The tags associated with the connection.<br/>hasLogicalRedundancy:  Indicates whether the connection supports a secondary BGP peer in the same address family (IPv4/IPv6).<br/>awsDeviceV2:  The Direct Connect endpoint on which the physical connection terminates.<br/>jumboFrameCapable:  Indicates whether jumbo frames (9001 MTU) are supported.<br/>awsDevice:  The Direct Connect endpoint on which the physical connection terminates.<br/>lagId:  The ID of the LAG.<br/>loaIssueTime:  The time of the most recent call to <a>DescribeLoa</a> for this connection.<br/>partnerName:  The name of the AWS Direct Connect service provider associated with the connection.<br/>vlan:  The ID of the VLAN.<br/>bandwidth:  The bandwidth of the connection.<br/>location:  The location of the connection.<br/>region:  The AWS Region where the connection is located.<br/>connectionState:  The state of the connection. The following are the possible values: <ul> <li>  <code>ordering</code>: The initial state of a hosted connection provisioned on an interconnect. The connection stays in the ordering state until the owner of the hosted connection confirms or declines the connection order. </li> <li>  <code>requested</code>: The initial state of a standard connection. The connection stays in the requested state until the Letter of Authorization (LOA) is sent to the customer. </li> <li>  <code>pending</code>: The connection has been approved and is being initialized. </li> <li>  <code>available</code>: The network link is up and the connection is ready for use. </li> <li>  <code>down</code>: The network link is down. </li> <li>  <code>deleting</code>: The connection is being deleted. </li> <li>  <code>deleted</code>: The connection has been deleted. </li> <li>  <code>rejected</code>: A hosted connection in the <code>ordering</code> state enters the <code>rejected</code> state if it is deleted by the customer. </li> <li>  <code>unknown</code>: The state of the connection is not available. </li> </ul><br/>connectionName:  The name of the connection.<br/>connectionId:  The ID of the connection.<br/>ownerAccount:  The ID of the AWS account that owns the connection.<br/>        """
        pass

    def delete_direct_connect_gateway(self, directConnectGatewayId: str) -> DeleteDirectConnectGatewayResult:
        r"""Deletes the specified Direct Connect gateway. You must first delete all virtual interfaces that are attached to the Direct Connect gateway and disassociate all virtual private gateways associated with the Direct Connect gateway.

        :param self:
        :param directConnectGatewayId:  The ID of the Direct Connect gateway.<br/>
        :return: directConnectGateway:  The Direct Connect gateway.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>stateChangeError</i> The error message if the state of an object failed to advance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>directConnectGatewayState</i> The state of the Direct Connect gateway. The following are the possible values: <ul> <li>  <code>pending</code>: The initial state after calling <a>CreateDirectConnectGateway</a>. </li> <li>  <code>available</code>: The Direct Connect gateway is ready for use. </li> <li>  <code>deleting</code>: The initial state after calling <a>DeleteDirectConnectGateway</a>. </li> <li>  <code>deleted</code>: The Direct Connect gateway is deleted and cannot pass traffic. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ownerAccount</i> The ID of the AWS account that owns the Direct Connect gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>amazonSideAsn</i> The autonomous system number (ASN) for the Amazon side of the connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>directConnectGatewayName</i> The name of the Direct Connect gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>directConnectGatewayId</i> The ID of the Direct Connect gateway.<br/>        """
        pass

    def delete_direct_connect_gateway_association(self, associationId: str=None, directConnectGatewayId: str=None, virtualGatewayId: str=None) -> DeleteDirectConnectGatewayAssociationResult:
        r"""Deletes the association between the specified Direct Connect gateway and virtual private gateway. We recommend that you specify the <code>associationID</code> to delete the association. Alternatively, if you own virtual gateway and a Direct Connect gateway association, you can specify the <code>virtualGatewayId</code> and <code>directConnectGatewayId</code> to delete an association.

        :param self:
        :param virtualGatewayId:  The ID of the virtual private gateway.<br/>directConnectGatewayId:  The ID of the Direct Connect gateway.<br/>associationId:  The ID of the Direct Connect gateway association.<br/>
        :return: directConnectGatewayAssociation:  Information about the deleted association.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>virtualGatewayOwnerAccount</i> The ID of the AWS account that owns the virtual private gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>virtualGatewayRegion</i> The AWS Region where the virtual private gateway is located.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>virtualGatewayId</i> The ID of the virtual private gateway. Applies only to private virtual interfaces.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>allowedPrefixesToDirectConnectGateway</i> The Amazon VPC prefixes to advertise to the Direct Connect gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>associationId</i> The ID of the Direct Connect gateway association.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>associatedGateway</i> Information about the associated gateway.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>associatedGateway</b>: Information about the associated gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>stateChangeError</i> The error message if the state of an object failed to advance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>associationState</i> The state of the association. The following are the possible values: <ul> <li>  <code>associating</code>: The initial state after calling <a>CreateDirectConnectGatewayAssociation</a>. </li> <li>  <code>associated</code>: The Direct Connect gateway and virtual private gateway or transit gateway are successfully associated and ready to pass traffic. </li> <li>  <code>disassociating</code>: The initial state after calling <a>DeleteDirectConnectGatewayAssociation</a>. </li> <li>  <code>disassociated</code>: The virtual private gateway or transit gateway is disassociated from the Direct Connect gateway. Traffic flow between the Direct Connect gateway and virtual private gateway or transit gateway is stopped. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>directConnectGatewayOwnerAccount</i> The ID of the AWS account that owns the associated gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>directConnectGatewayId</i> The ID of the Direct Connect gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>region</i> The Region where the associated gateway is located.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ownerAccount</i> The ID of the AWS account that owns the associated virtual private gateway or transit gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of associated gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The ID of the associated gateway.<br/>        """
        pass

    def delete_direct_connect_gateway_association_proposal(self, proposalId: str) -> DeleteDirectConnectGatewayAssociationProposalResult:
        r"""Deletes the association proposal request between the specified Direct Connect gateway and virtual private gateway or transit gateway.

        :param self:
        :param proposalId:  The ID of the proposal.<br/>
        :return: directConnectGatewayAssociationProposal:  The ID of the associated gateway.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>requestedAllowedPrefixesToDirectConnectGateway</i> The Amazon VPC prefixes to advertise to the Direct Connect gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>existingAllowedPrefixesToDirectConnectGateway</i> The existing Amazon VPC prefixes advertised to the Direct Connect gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>associatedGateway</i> Information about the associated gateway.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>associatedGateway</b>: Information about the associated gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>proposalState</i> The state of the proposal. The following are possible values: <ul> <li>  <code>accepted</code>: The proposal has been accepted. The Direct Connect gateway association is available to use in this state. </li> <li>  <code>deleted</code>: The proposal has been deleted by the owner that made the proposal. The Direct Connect gateway association cannot be used in this state. </li> <li>  <code>requested</code>: The proposal has been requested. The Direct Connect gateway association cannot be used in this state. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>directConnectGatewayOwnerAccount</i> The ID of the AWS account that owns the Direct Connect gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>directConnectGatewayId</i> The ID of the Direct Connect gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>proposalId</i> The ID of the association proposal.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>region</i> The Region where the associated gateway is located.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ownerAccount</i> The ID of the AWS account that owns the associated virtual private gateway or transit gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of associated gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The ID of the associated gateway.<br/>        """
        pass

    def delete_interconnect(self, interconnectId: str) -> DeleteInterconnectResponse:
        r"""Deletes the specified interconnect. <note> Intended for use by AWS Direct Connect Partners only. </note>

        :param self:
        :param interconnectId:  The ID of the interconnect.<br/>
        :return: interconnectState:  The state of the interconnect. The following are the possible values: <ul> <li>  <code>requested</code>: The initial state of an interconnect. The interconnect stays in the requested state until the Letter of Authorization (LOA) is sent to the customer. </li> <li>  <code>pending</code>: The interconnect is approved, and is being initialized. </li> <li>  <code>available</code>: The network link is up, and the interconnect is ready for use. </li> <li>  <code>down</code>: The network link is down. </li> <li>  <code>deleting</code>: The interconnect is being deleted. </li> <li>  <code>deleted</code>: The interconnect is deleted. </li> <li>  <code>unknown</code>: The state of the interconnect is not available. </li> </ul><br/>        """
        pass

    def delete_lag(self, lagId: str) -> Lag:
        r"""Deletes the specified link aggregation group (LAG). You cannot delete a LAG if it has active virtual interfaces or hosted connections.

        :param self:
        :param lagId:  The ID of the LAG.<br/>
        :return: macSecKeys:  The MAC Security (MACsec) security keys associated with the LAG.<br/>encryptionMode:  The LAG MAC Security (MACsec) encryption mode. The valid values are <code>no_encrypt</code>, <code>should_encrypt</code>, and <code>must_encrypt</code>.<br/>macSecCapable:  Indicates whether the LAG supports MAC Security (MACsec).<br/>providerName:  The name of the service provider associated with the LAG.<br/>tags:  The tags associated with the LAG.<br/>hasLogicalRedundancy:  Indicates whether the LAG supports a secondary BGP peer in the same address family (IPv4/IPv6).<br/>jumboFrameCapable:  Indicates whether jumbo frames (9001 MTU) are supported.<br/>allowsHostedConnections:  Indicates whether the LAG can host other connections.<br/>connections:  The connections bundled by the LAG.<br/>awsDeviceV2:  The AWS Direct Connect endpoint that hosts the LAG.<br/>awsDevice:  The AWS Direct Connect endpoint that hosts the LAG.<br/>minimumLinks:  The minimum number of physical dedicated connections that must be operational for the LAG itself to be operational.<br/>region:  The AWS Region where the connection is located.<br/>location:  The location of the LAG.<br/>lagState:  The state of the LAG. The following are the possible values: <ul> <li>  <code>requested</code>: The initial state of a LAG. The LAG stays in the requested state until the Letter of Authorization (LOA) is available. </li> <li>  <code>pending</code>: The LAG has been approved and is being initialized. </li> <li>  <code>available</code>: The network link is established and the LAG is ready for use. </li> <li>  <code>down</code>: The network link is down. </li> <li>  <code>deleting</code>: The LAG is being deleted. </li> <li>  <code>deleted</code>: The LAG is deleted. </li> <li>  <code>unknown</code>: The state of the LAG is not available. </li> </ul><br/>lagName:  The name of the LAG.<br/>ownerAccount:  The ID of the AWS account that owns the LAG.<br/>lagId:  The ID of the LAG.<br/>numberOfConnections:  The number of physical dedicated connections bundled by the LAG, up to a maximum of 10.<br/>connectionsBandwidth:  The individual bandwidth of the physical connections bundled by the LAG. The possible values are 1Gbps and 10Gbps. <br/>        """
        pass

    def delete_virtual_interface(self, virtualInterfaceId: str) -> DeleteVirtualInterfaceResponse:
        r"""Deletes a virtual interface.

        :param self:
        :param virtualInterfaceId:  The ID of the virtual interface.<br/>
        :return: virtualInterfaceState:  The state of the virtual interface. The following are the possible values: <ul> <li>  <code>confirming</code>: The creation of the virtual interface is pending confirmation from the virtual interface owner. If the owner of the virtual interface is different from the owner of the connection on which it is provisioned, then the virtual interface will remain in this state until it is confirmed by the virtual interface owner. </li> <li>  <code>verifying</code>: This state only applies to public virtual interfaces. Each public virtual interface needs validation before the virtual interface can be created. </li> <li>  <code>pending</code>: A virtual interface is in this state from the time that it is created until the virtual interface is ready to forward traffic. </li> <li>  <code>available</code>: A virtual interface that is able to forward traffic. </li> <li>  <code>down</code>: A virtual interface that is BGP down. </li> <li>  <code>deleting</code>: A virtual interface is in this state immediately after calling <a>DeleteVirtualInterface</a> until it can no longer forward traffic. </li> <li>  <code>deleted</code>: A virtual interface that cannot forward traffic. </li> <li>  <code>rejected</code>: The virtual interface owner has declined creation of the virtual interface. If a virtual interface in the <code>Confirming</code> state is deleted by the virtual interface owner, the virtual interface enters the <code>Rejected</code> state. </li> <li>  <code>unknown</code>: The state of the virtual interface is not available. </li> </ul><br/>        """
        pass

    def describe_connection_loa(self, connectionId: str, providerName: str=None, loaContentType: str=None) -> DescribeConnectionLoaResponse:
        r"""Deprecated. Use <a>DescribeLoa</a> instead. Gets the LOA-CFA for a connection. The Letter of Authorization - Connecting Facility Assignment (LOA-CFA) is a document that your APN partner or service provider uses when establishing your cross connect to AWS at the colocation facility. For more information, see <a href="https://docs.aws.amazon.com/directconnect/latest/UserGuide/Colocation.html">Requesting Cross Connects at AWS Direct Connect Locations</a> in the <i>AWS Direct Connect User Guide</i>.

        :param self:
        :param loaContentType:  The standard media type for the LOA-CFA document. The only supported value is application/pdf.<br/>providerName:  The name of the APN partner or service provider who establishes connectivity on your behalf. If you specify this parameter, the LOA-CFA lists the provider name alongside your company name as the requester of the cross connect.<br/>connectionId:  The ID of the connection.<br/>
        :return: loa:  The Letter of Authorization - Connecting Facility Assignment (LOA-CFA).:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>loaContentType</i> The standard media type for the LOA-CFA document. The only supported value is application/pdf.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>loaContent</i> The binary contents of the LOA-CFA document.<br/>        """
        pass

    def describe_connections(self, connectionId: str=None) -> Connections:
        r"""Displays the specified connection or all connections in this Region.

        :param self:
        :param connectionId:  The ID of the connection.<br/>
        :return: connections:  The connections.<br/>        """
        pass

    def describe_connections_on_interconnect(self, interconnectId: str) -> Connections:
        r"""Deprecated. Use <a>DescribeHostedConnections</a> instead. Lists the connections that have been provisioned on the specified interconnect. <note> Intended for use by AWS Direct Connect Partners only. </note>

        :param self:
        :param interconnectId:  The ID of the interconnect.<br/>
        :return: connections:  The connections.<br/>        """
        pass

    def describe_direct_connect_gateway_association_proposals(self, directConnectGatewayId: str=None, proposalId: str=None, associatedGatewayId: str=None, maxResults: int=None, nextToken: str=None) -> DescribeDirectConnectGatewayAssociationProposalsResult:
        r"""Describes one or more association proposals for connection between a virtual private gateway or transit gateway and a Direct Connect gateway. 

        :param self:
        :param nextToken:  The token for the next page of results.<br/>maxResults:  The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value. If <code>MaxResults</code> is given a value larger than 100, only 100 results are returned.<br/>associatedGatewayId:  The ID of the associated gateway.<br/>proposalId:  The ID of the proposal.<br/>directConnectGatewayId:  The ID of the Direct Connect gateway.<br/>
        :return: nextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>directConnectGatewayAssociationProposals:  Describes the Direct Connect gateway association proposals.<br/>        """
        pass

    def describe_direct_connect_gateway_associations(self, associationId: str=None, associatedGatewayId: str=None, directConnectGatewayId: str=None, maxResults: int=None, nextToken: str=None, virtualGatewayId: str=None) -> DescribeDirectConnectGatewayAssociationsResult:
        r"""Lists the associations between your Direct Connect gateways and virtual private gateways and transit gateways. You must specify one of the following: <ul> <li> A Direct Connect gateway The response contains all virtual private gateways and transit gateways associated with the Direct Connect gateway. </li> <li> A virtual private gateway The response contains the Direct Connect gateway. </li> <li> A transit gateway The response contains the Direct Connect gateway. </li> <li> A Direct Connect gateway and a virtual private gateway The response contains the association between the Direct Connect gateway and virtual private gateway. </li> <li> A Direct Connect gateway and a transit gateway The response contains the association between the Direct Connect gateway and transit gateway. </li> </ul>

        :param self:
        :param virtualGatewayId:  The ID of the virtual private gateway or transit gateway.<br/>nextToken:  The token provided in the previous call to retrieve the next page.<br/>maxResults:  The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value. If <code>MaxResults</code> is given a value larger than 100, only 100 results are returned.<br/>directConnectGatewayId:  The ID of the Direct Connect gateway.<br/>associatedGatewayId:  The ID of the associated gateway.<br/>associationId:  The ID of the Direct Connect gateway association.<br/>
        :return: nextToken:  The token to retrieve the next page.<br/>directConnectGatewayAssociations:  Information about the associations.<br/>        """
        pass

    def describe_direct_connect_gateway_attachments(self, directConnectGatewayId: str=None, virtualInterfaceId: str=None, maxResults: int=None, nextToken: str=None) -> DescribeDirectConnectGatewayAttachmentsResult:
        r"""Lists the attachments between your Direct Connect gateways and virtual interfaces. You must specify a Direct Connect gateway, a virtual interface, or both. If you specify a Direct Connect gateway, the response contains all virtual interfaces attached to the Direct Connect gateway. If you specify a virtual interface, the response contains all Direct Connect gateways attached to the virtual interface. If you specify both, the response contains the attachment between the Direct Connect gateway and the virtual interface.

        :param self:
        :param nextToken:  The token provided in the previous call to retrieve the next page.<br/>maxResults:  The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value. If <code>MaxResults</code> is given a value larger than 100, only 100 results are returned.<br/>virtualInterfaceId:  The ID of the virtual interface.<br/>directConnectGatewayId:  The ID of the Direct Connect gateway.<br/>
        :return: nextToken:  The token to retrieve the next page.<br/>directConnectGatewayAttachments:  The attachments.<br/>        """
        pass

    def describe_direct_connect_gateways(self, directConnectGatewayId: str=None, maxResults: int=None, nextToken: str=None) -> DescribeDirectConnectGatewaysResult:
        r"""Lists all your Direct Connect gateways or only the specified Direct Connect gateway. Deleted Direct Connect gateways are not returned.

        :param self:
        :param nextToken:  The token provided in the previous call to retrieve the next page.<br/>maxResults:  The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value. If <code>MaxResults</code> is given a value larger than 100, only 100 results are returned.<br/>directConnectGatewayId:  The ID of the Direct Connect gateway.<br/>
        :return: nextToken:  The token to retrieve the next page.<br/>directConnectGateways:  The Direct Connect gateways.<br/>        """
        pass

    def describe_hosted_connections(self, connectionId: str) -> Connections:
        r"""Lists the hosted connections that have been provisioned on the specified interconnect or link aggregation group (LAG). <note> Intended for use by AWS Direct Connect Partners only. </note>

        :param self:
        :param connectionId:  The ID of the interconnect or LAG.<br/>
        :return: connections:  The connections.<br/>        """
        pass

    def describe_interconnect_loa(self, interconnectId: str, providerName: str=None, loaContentType: str=None) -> DescribeInterconnectLoaResponse:
        r"""Deprecated. Use <a>DescribeLoa</a> instead. Gets the LOA-CFA for the specified interconnect. The Letter of Authorization - Connecting Facility Assignment (LOA-CFA) is a document that is used when establishing your cross connect to AWS at the colocation facility. For more information, see <a href="https://docs.aws.amazon.com/directconnect/latest/UserGuide/Colocation.html">Requesting Cross Connects at AWS Direct Connect Locations</a> in the <i>AWS Direct Connect User Guide</i>.

        :param self:
        :param loaContentType:  The standard media type for the LOA-CFA document. The only supported value is application/pdf.<br/>providerName:  The name of the service provider who establishes connectivity on your behalf. If you supply this parameter, the LOA-CFA lists the provider name alongside your company name as the requester of the cross connect.<br/>interconnectId:  The ID of the interconnect.<br/>
        :return: loa:  The Letter of Authorization - Connecting Facility Assignment (LOA-CFA).:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>loaContentType</i> The standard media type for the LOA-CFA document. The only supported value is application/pdf.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>loaContent</i> The binary contents of the LOA-CFA document.<br/>        """
        pass

    def describe_interconnects(self, interconnectId: str=None) -> Interconnects:
        r"""Lists the interconnects owned by the AWS account or only the specified interconnect.

        :param self:
        :param interconnectId:  The ID of the interconnect.<br/>
        :return: interconnects:  The interconnects.<br/>        """
        pass

    def describe_lags(self, lagId: str=None) -> Lags:
        r"""Describes all your link aggregation groups (LAG) or the specified LAG.

        :param self:
        :param lagId:  The ID of the LAG.<br/>
        :return: lags:  The LAGs.<br/>        """
        pass

    def describe_loa(self, connectionId: str, providerName: str=None, loaContentType: str=None) -> Loa:
        r"""Gets the LOA-CFA for a connection, interconnect, or link aggregation group (LAG). The Letter of Authorization - Connecting Facility Assignment (LOA-CFA) is a document that is used when establishing your cross connect to AWS at the colocation facility. For more information, see <a href="https://docs.aws.amazon.com/directconnect/latest/UserGuide/Colocation.html">Requesting Cross Connects at AWS Direct Connect Locations</a> in the <i>AWS Direct Connect User Guide</i>.

        :param self:
        :param loaContentType:  The standard media type for the LOA-CFA document. The only supported value is application/pdf.<br/>providerName:  The name of the service provider who establishes connectivity on your behalf. If you specify this parameter, the LOA-CFA lists the provider name alongside your company name as the requester of the cross connect.<br/>connectionId:  The ID of a connection, LAG, or interconnect.<br/>
        :return: loaContentType:  The standard media type for the LOA-CFA document. The only supported value is application/pdf.<br/>loaContent:  The binary contents of the LOA-CFA document.<br/>        """
        pass

    def describe_locations(self) -> Locations:
        r"""Lists the AWS Direct Connect locations in the current AWS Region. These are the locations that can be selected when calling <a>CreateConnection</a> or <a>CreateInterconnect</a>.

        :param self:
        :param 
        :return: locations:  The locations.<br/>        """
        pass

    def describe_tags(self, resourceArns: List[ResourceArn]) -> DescribeTagsResponse:
        r"""Describes the tags associated with the specified AWS Direct Connect resources.

        :param self:
        :param resourceArns:  The Amazon Resource Names (ARNs) of the resources.<br/>
        :return: resourceTags:  Information about the tags.<br/>        """
        pass

    def describe_virtual_gateways(self) -> VirtualGateways:
        r"""Lists the virtual private gateways owned by the AWS account. You can create one or more AWS Direct Connect private virtual interfaces linked to a virtual private gateway.

        :param self:
        :param 
        :return: virtualGateways:  The virtual private gateways.<br/>        """
        pass

    def describe_virtual_interfaces(self, connectionId: str=None, virtualInterfaceId: str=None) -> VirtualInterfaces:
        r"""Displays all virtual interfaces for an AWS account. Virtual interfaces deleted fewer than 15 minutes before you make the request are also returned. If you specify a connection ID, only the virtual interfaces associated with the connection are returned. If you specify a virtual interface ID, then only a single virtual interface is returned. A virtual interface (VLAN) transmits the traffic between the AWS Direct Connect location and the customer network.

        :param self:
        :param virtualInterfaceId:  The ID of the virtual interface.<br/>connectionId:  The ID of the connection.<br/>
        :return: virtualInterfaces:  The virtual interfaces<br/>        """
        pass

    def disassociate_connection_from_lag(self, lagId: str, connectionId: str) -> Connection:
        r"""Disassociates a connection from a link aggregation group (LAG). The connection is interrupted and re-established as a standalone connection (the connection is not deleted; to delete the connection, use the <a>DeleteConnection</a> request). If the LAG has associated virtual interfaces or hosted connections, they remain associated with the LAG. A disassociated connection owned by an AWS Direct Connect Partner is automatically converted to an interconnect. If disassociating the connection would cause the LAG to fall below its setting for minimum number of operational connections, the request fails, except when it's the last member of the LAG. If all connections are disassociated, the LAG continues to exist as an empty LAG with no physical connections. 

        :param self:
        :param lagId:  The ID of the LAG.<br/>connectionId:  The ID of the connection.<br/>
        :return: macSecKeys:  The MAC Security (MACsec) security keys associated with the connection.<br/>encryptionMode:  The MAC Security (MACsec) connection encryption mode. The valid values are <code>no_encrypt</code>, <code>should_encrypt</code>, and <code>must_encrypt</code>.<br/>portEncryptionStatus:  The MAC Security (MACsec) port link status of the connection. The valid values are <code>Encryption Up</code>, which means that there is an active Connection Key Name, or <code>Encryption Down</code>.<br/>macSecCapable:  Indicates whether the connection supports MAC Security (MACsec).<br/>providerName:  The name of the service provider associated with the connection.<br/>tags:  The tags associated with the connection.<br/>hasLogicalRedundancy:  Indicates whether the connection supports a secondary BGP peer in the same address family (IPv4/IPv6).<br/>awsDeviceV2:  The Direct Connect endpoint on which the physical connection terminates.<br/>jumboFrameCapable:  Indicates whether jumbo frames (9001 MTU) are supported.<br/>awsDevice:  The Direct Connect endpoint on which the physical connection terminates.<br/>lagId:  The ID of the LAG.<br/>loaIssueTime:  The time of the most recent call to <a>DescribeLoa</a> for this connection.<br/>partnerName:  The name of the AWS Direct Connect service provider associated with the connection.<br/>vlan:  The ID of the VLAN.<br/>bandwidth:  The bandwidth of the connection.<br/>location:  The location of the connection.<br/>region:  The AWS Region where the connection is located.<br/>connectionState:  The state of the connection. The following are the possible values: <ul> <li>  <code>ordering</code>: The initial state of a hosted connection provisioned on an interconnect. The connection stays in the ordering state until the owner of the hosted connection confirms or declines the connection order. </li> <li>  <code>requested</code>: The initial state of a standard connection. The connection stays in the requested state until the Letter of Authorization (LOA) is sent to the customer. </li> <li>  <code>pending</code>: The connection has been approved and is being initialized. </li> <li>  <code>available</code>: The network link is up and the connection is ready for use. </li> <li>  <code>down</code>: The network link is down. </li> <li>  <code>deleting</code>: The connection is being deleted. </li> <li>  <code>deleted</code>: The connection has been deleted. </li> <li>  <code>rejected</code>: A hosted connection in the <code>ordering</code> state enters the <code>rejected</code> state if it is deleted by the customer. </li> <li>  <code>unknown</code>: The state of the connection is not available. </li> </ul><br/>connectionName:  The name of the connection.<br/>connectionId:  The ID of the connection.<br/>ownerAccount:  The ID of the AWS account that owns the connection.<br/>        """
        pass

    def disassociate_mac_sec_key(self, secretARN: str, connectionId: str) -> DisassociateMacSecKeyResponse:
        r"""Removes the association between a MAC Security (MACsec) security key and an AWS Direct Connect dedicated connection.

        :param self:
        :param secretARN:  The Amazon Resource Name (ARN) of the MAC Security (MACsec) secret key. You can use <a>DescribeConnections</a> to retrieve the ARN of the MAC Security (MACsec) secret key.<br/>connectionId:  The ID of the dedicated connection (dxcon-xxxx), or the ID of the LAG (dxlag-xxxx). You can use <a>DescribeConnections</a> or <a>DescribeLags</a> to retrieve connection ID.<br/>
        :return: macSecKeys:  The MAC Security (MACsec) security keys no longer associated with the dedicated connection.<br/>connectionId:  The ID of the dedicated connection (dxcon-xxxx), or the ID of the LAG (dxlag-xxxx).<br/>        """
        pass

    def list_virtual_interface_test_history(self, testId: str=None, virtualInterfaceId: str=None, bgpPeers: List[BGPPeerId]=None, status: str=None, maxResults: int=None, nextToken: str=None) -> ListVirtualInterfaceTestHistoryResponse:
        r"""Lists the virtual interface failover test history.

        :param self:
        :param nextToken:  The token for the next page of results.<br/>maxResults:  The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value. If <code>MaxResults</code> is given a value larger than 100, only 100 results are returned.<br/>status:  The status of the virtual interface failover test.<br/>bgpPeers:  The BGP peers that were placed in the DOWN state during the virtual interface failover test.<br/>virtualInterfaceId:  The ID of the virtual interface that was tested.<br/>testId:  The ID of the virtual interface failover test.<br/>
        :return: nextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>virtualInterfaceTestHistory:  The ID of the tested virtual interface.<br/>        """
        pass

    def start_bgp_failover_test(self, virtualInterfaceId: str, bgpPeers: List[BGPPeerId]=None, testDurationInMinutes: int=None) -> StartBgpFailoverTestResponse:
        r"""Starts the virtual interface failover test that verifies your configuration meets your resiliency requirements by placing the BGP peering session in the DOWN state. You can then send traffic to verify that there are no outages. You can run the test on public, private, transit, and hosted virtual interfaces. You can use <a href="https://docs.aws.amazon.com/directconnect/latest/APIReference/API_ListVirtualInterfaceTestHistory.html">ListVirtualInterfaceTestHistory</a> to view the virtual interface test history. If you need to stop the test before the test interval completes, use <a href="https://docs.aws.amazon.com/directconnect/latest/APIReference/API_StopBgpFailoverTest.html">StopBgpFailoverTest</a>.

        :param self:
        :param testDurationInMinutes:  The time in minutes that the virtual interface failover test will last. Maximum value: 180 minutes (3 hours). Default: 180 minutes (3 hours).<br/>bgpPeers:  The BGP peers to place in the DOWN state.<br/>virtualInterfaceId:  The ID of the virtual interface you want to test.<br/>
        :return: virtualInterfaceTest:  Information about the virtual interface failover test.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>endTime</i> The time that the virtual interface moves out of the DOWN state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>startTime</i> The time that the virtual interface moves to the DOWN state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>testDurationInMinutes</i> The time that the virtual interface failover test ran in minutes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ownerAccount</i> The owner ID of the tested virtual interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the virtual interface failover test.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>bgpPeers</i> The BGP peers that were put in the DOWN state as part of the virtual interface failover test.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>virtualInterfaceId</i> The ID of the tested virtual interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>testId</i> The ID of the virtual interface failover test.<br/>        """
        pass

    def stop_bgp_failover_test(self, virtualInterfaceId: str) -> StopBgpFailoverTestResponse:
        r"""Stops the virtual interface failover test.

        :param self:
        :param virtualInterfaceId:  The ID of the virtual interface you no longer want to test.<br/>
        :return: virtualInterfaceTest:  Information about the virtual interface failover test.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>endTime</i> The time that the virtual interface moves out of the DOWN state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>startTime</i> The time that the virtual interface moves to the DOWN state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>testDurationInMinutes</i> The time that the virtual interface failover test ran in minutes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ownerAccount</i> The owner ID of the tested virtual interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the virtual interface failover test.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>bgpPeers</i> The BGP peers that were put in the DOWN state as part of the virtual interface failover test.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>virtualInterfaceId</i> The ID of the tested virtual interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>testId</i> The ID of the virtual interface failover test.<br/>        """
        pass

    def tag_resource(self, tags: List[Tag], resourceArn: str) -> TagResourceResponse:
        r"""Adds the specified tags to the specified AWS Direct Connect resource. Each resource can have a maximum of 50 tags. Each tag consists of a key and an optional value. If a tag with the same key is already associated with the resource, this action updates its value.

        :param self:
        :param tags:  The tags to add.<br/>resourceArn:  The Amazon Resource Name (ARN) of the resource.<br/>
        :return:         """
        pass

    def untag_resource(self, tagKeys: List[TagKey], resourceArn: str) -> UntagResourceResponse:
        r"""Removes one or more tags from the specified AWS Direct Connect resource.

        :param self:
        :param tagKeys:  The tag keys of the tags to remove.<br/>resourceArn:  The Amazon Resource Name (ARN) of the resource.<br/>
        :return:         """
        pass

    def update_connection(self, connectionId: str, connectionName: str=None, encryptionMode: str=None) -> Connection:
        r"""Updates the AWS Direct Connect dedicated connection configuration. You can update the following parameters for a connection: <ul> <li> The connection name </li> <li> The connection's MAC Security (MACsec) encryption mode. </li> </ul>

        :param self:
        :param encryptionMode:  The connection MAC Security (MACsec) encryption mode. The valid values are <code>no_encrypt</code>, <code>should_encrypt</code>, and <code>must_encrypt</code>.<br/>connectionName:  The name of the connection.<br/>connectionId:  The ID of the dedicated connection. You can use <a>DescribeConnections</a> to retrieve the connection ID.<br/>
        :return: macSecKeys:  The MAC Security (MACsec) security keys associated with the connection.<br/>encryptionMode:  The MAC Security (MACsec) connection encryption mode. The valid values are <code>no_encrypt</code>, <code>should_encrypt</code>, and <code>must_encrypt</code>.<br/>portEncryptionStatus:  The MAC Security (MACsec) port link status of the connection. The valid values are <code>Encryption Up</code>, which means that there is an active Connection Key Name, or <code>Encryption Down</code>.<br/>macSecCapable:  Indicates whether the connection supports MAC Security (MACsec).<br/>providerName:  The name of the service provider associated with the connection.<br/>tags:  The tags associated with the connection.<br/>hasLogicalRedundancy:  Indicates whether the connection supports a secondary BGP peer in the same address family (IPv4/IPv6).<br/>awsDeviceV2:  The Direct Connect endpoint on which the physical connection terminates.<br/>jumboFrameCapable:  Indicates whether jumbo frames (9001 MTU) are supported.<br/>awsDevice:  The Direct Connect endpoint on which the physical connection terminates.<br/>lagId:  The ID of the LAG.<br/>loaIssueTime:  The time of the most recent call to <a>DescribeLoa</a> for this connection.<br/>partnerName:  The name of the AWS Direct Connect service provider associated with the connection.<br/>vlan:  The ID of the VLAN.<br/>bandwidth:  The bandwidth of the connection.<br/>location:  The location of the connection.<br/>region:  The AWS Region where the connection is located.<br/>connectionState:  The state of the connection. The following are the possible values: <ul> <li>  <code>ordering</code>: The initial state of a hosted connection provisioned on an interconnect. The connection stays in the ordering state until the owner of the hosted connection confirms or declines the connection order. </li> <li>  <code>requested</code>: The initial state of a standard connection. The connection stays in the requested state until the Letter of Authorization (LOA) is sent to the customer. </li> <li>  <code>pending</code>: The connection has been approved and is being initialized. </li> <li>  <code>available</code>: The network link is up and the connection is ready for use. </li> <li>  <code>down</code>: The network link is down. </li> <li>  <code>deleting</code>: The connection is being deleted. </li> <li>  <code>deleted</code>: The connection has been deleted. </li> <li>  <code>rejected</code>: A hosted connection in the <code>ordering</code> state enters the <code>rejected</code> state if it is deleted by the customer. </li> <li>  <code>unknown</code>: The state of the connection is not available. </li> </ul><br/>connectionName:  The name of the connection.<br/>connectionId:  The ID of the connection.<br/>ownerAccount:  The ID of the AWS account that owns the connection.<br/>        """
        pass

    def update_direct_connect_gateway_association(self, associationId: str=None, addAllowedPrefixesToDirectConnectGateway: List[RouteFilterPrefix]=None, removeAllowedPrefixesToDirectConnectGateway: List[RouteFilterPrefix]=None) -> UpdateDirectConnectGatewayAssociationResult:
        r"""Updates the specified attributes of the Direct Connect gateway association. Add or remove prefixes from the association.

        :param self:
        :param removeAllowedPrefixesToDirectConnectGateway:  The Amazon VPC prefixes to no longer advertise to the Direct Connect gateway.<br/>addAllowedPrefixesToDirectConnectGateway:  The Amazon VPC prefixes to advertise to the Direct Connect gateway.<br/>associationId:  The ID of the Direct Connect gateway association.<br/>
        :return: directConnectGatewayAssociation:  Information about an association between a Direct Connect gateway and a virtual private gateway or transit gateway.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>virtualGatewayOwnerAccount</i> The ID of the AWS account that owns the virtual private gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>virtualGatewayRegion</i> The AWS Region where the virtual private gateway is located.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>virtualGatewayId</i> The ID of the virtual private gateway. Applies only to private virtual interfaces.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>allowedPrefixesToDirectConnectGateway</i> The Amazon VPC prefixes to advertise to the Direct Connect gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>associationId</i> The ID of the Direct Connect gateway association.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>associatedGateway</i> Information about the associated gateway.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>associatedGateway</b>: Information about the associated gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>stateChangeError</i> The error message if the state of an object failed to advance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>associationState</i> The state of the association. The following are the possible values: <ul> <li>  <code>associating</code>: The initial state after calling <a>CreateDirectConnectGatewayAssociation</a>. </li> <li>  <code>associated</code>: The Direct Connect gateway and virtual private gateway or transit gateway are successfully associated and ready to pass traffic. </li> <li>  <code>disassociating</code>: The initial state after calling <a>DeleteDirectConnectGatewayAssociation</a>. </li> <li>  <code>disassociated</code>: The virtual private gateway or transit gateway is disassociated from the Direct Connect gateway. Traffic flow between the Direct Connect gateway and virtual private gateway or transit gateway is stopped. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>directConnectGatewayOwnerAccount</i> The ID of the AWS account that owns the associated gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>directConnectGatewayId</i> The ID of the Direct Connect gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>region</i> The Region where the associated gateway is located.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ownerAccount</i> The ID of the AWS account that owns the associated virtual private gateway or transit gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of associated gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The ID of the associated gateway.<br/>        """
        pass

    def update_lag(self, lagId: str, lagName: str=None, minimumLinks: int=None, encryptionMode: str=None) -> Lag:
        r"""Updates the attributes of the specified link aggregation group (LAG). You can update the following LAG attributes: <ul> <li> The name of the LAG. </li> <li> The value for the minimum number of connections that must be operational for the LAG itself to be operational.  </li> <li> The LAG's MACsec encryption mode. AWS assigns this value to each connection which is part of the LAG. </li> <li> The tags </li> </ul> <note> If you adjust the threshold value for the minimum number of operational connections, ensure that the new value does not cause the LAG to fall below the threshold and become non-operational. </note>

        :param self:
        :param encryptionMode:  The LAG MAC Security (MACsec) encryption mode. AWS applies the value to all connections which are part of the LAG.<br/>minimumLinks:  The minimum number of physical connections that must be operational for the LAG itself to be operational.<br/>lagName:  The name of the LAG.<br/>lagId:  The ID of the LAG.<br/>
        :return: macSecKeys:  The MAC Security (MACsec) security keys associated with the LAG.<br/>encryptionMode:  The LAG MAC Security (MACsec) encryption mode. The valid values are <code>no_encrypt</code>, <code>should_encrypt</code>, and <code>must_encrypt</code>.<br/>macSecCapable:  Indicates whether the LAG supports MAC Security (MACsec).<br/>providerName:  The name of the service provider associated with the LAG.<br/>tags:  The tags associated with the LAG.<br/>hasLogicalRedundancy:  Indicates whether the LAG supports a secondary BGP peer in the same address family (IPv4/IPv6).<br/>jumboFrameCapable:  Indicates whether jumbo frames (9001 MTU) are supported.<br/>allowsHostedConnections:  Indicates whether the LAG can host other connections.<br/>connections:  The connections bundled by the LAG.<br/>awsDeviceV2:  The AWS Direct Connect endpoint that hosts the LAG.<br/>awsDevice:  The AWS Direct Connect endpoint that hosts the LAG.<br/>minimumLinks:  The minimum number of physical dedicated connections that must be operational for the LAG itself to be operational.<br/>region:  The AWS Region where the connection is located.<br/>location:  The location of the LAG.<br/>lagState:  The state of the LAG. The following are the possible values: <ul> <li>  <code>requested</code>: The initial state of a LAG. The LAG stays in the requested state until the Letter of Authorization (LOA) is available. </li> <li>  <code>pending</code>: The LAG has been approved and is being initialized. </li> <li>  <code>available</code>: The network link is established and the LAG is ready for use. </li> <li>  <code>down</code>: The network link is down. </li> <li>  <code>deleting</code>: The LAG is being deleted. </li> <li>  <code>deleted</code>: The LAG is deleted. </li> <li>  <code>unknown</code>: The state of the LAG is not available. </li> </ul><br/>lagName:  The name of the LAG.<br/>ownerAccount:  The ID of the AWS account that owns the LAG.<br/>lagId:  The ID of the LAG.<br/>numberOfConnections:  The number of physical dedicated connections bundled by the LAG, up to a maximum of 10.<br/>connectionsBandwidth:  The individual bandwidth of the physical connections bundled by the LAG. The possible values are 1Gbps and 10Gbps. <br/>        """
        pass

    def update_virtual_interface_attributes(self, virtualInterfaceId: str, mtu: int=None) -> VirtualInterface:
        r"""Updates the specified attributes of the specified virtual private interface. Setting the MTU of a virtual interface to 9001 (jumbo frames) can cause an update to the underlying physical connection if it wasn't updated to support jumbo frames. Updating the connection disrupts network connectivity for all virtual interfaces associated with the connection for up to 30 seconds. To check whether your connection supports jumbo frames, call <a>DescribeConnections</a>. To check whether your virtual q interface supports jumbo frames, call <a>DescribeVirtualInterfaces</a>.

        :param self:
        :param mtu:  The maximum transmission unit (MTU), in bytes. The supported values are 1500 and 9001. The default value is 1500.<br/>virtualInterfaceId:  The ID of the virtual private interface.<br/>
        :return: tags:  The tags associated with the virtual interface.<br/>awsDeviceV2:  The Direct Connect endpoint on which the virtual interface terminates.<br/>region:  The AWS Region where the virtual interface is located.<br/>bgpPeers:  The BGP peers configured on this virtual interface.<br/>routeFilterPrefixes:  The routes to be advertised to the AWS network in this Region. Applies to public virtual interfaces.<br/>directConnectGatewayId:  The ID of the Direct Connect gateway.<br/>virtualGatewayId:  The ID of the virtual private gateway. Applies only to private virtual interfaces.<br/>jumboFrameCapable:  Indicates whether jumbo frames (9001 MTU) are supported.<br/>mtu:  The maximum transmission unit (MTU), in bytes. The supported values are 1500 and 9001. The default value is 1500.<br/>customerRouterConfig:  The customer router configuration.<br/>virtualInterfaceState:  The state of the virtual interface. The following are the possible values: <ul> <li>  <code>confirming</code>: The creation of the virtual interface is pending confirmation from the virtual interface owner. If the owner of the virtual interface is different from the owner of the connection on which it is provisioned, then the virtual interface will remain in this state until it is confirmed by the virtual interface owner. </li> <li>  <code>verifying</code>: This state only applies to public virtual interfaces. Each public virtual interface needs validation before the virtual interface can be created. </li> <li>  <code>pending</code>: A virtual interface is in this state from the time that it is created until the virtual interface is ready to forward traffic. </li> <li>  <code>available</code>: A virtual interface that is able to forward traffic. </li> <li>  <code>down</code>: A virtual interface that is BGP down. </li> <li>  <code>deleting</code>: A virtual interface is in this state immediately after calling <a>DeleteVirtualInterface</a> until it can no longer forward traffic. </li> <li>  <code>deleted</code>: A virtual interface that cannot forward traffic. </li> <li>  <code>rejected</code>: The virtual interface owner has declined creation of the virtual interface. If a virtual interface in the <code>Confirming</code> state is deleted by the virtual interface owner, the virtual interface enters the <code>Rejected</code> state. </li> <li>  <code>unknown</code>: The state of the virtual interface is not available. </li> </ul><br/>addressFamily:  The address family for the BGP peer.<br/>customerAddress:  The IP address assigned to the customer interface.<br/>amazonAddress:  The IP address assigned to the Amazon interface.<br/>authKey:  The authentication key for BGP configuration. This string has a minimum length of 6 characters and and a maximun lenth of 80 characters.<br/>amazonSideAsn:  The autonomous system number (ASN) for the Amazon side of the connection.<br/>asn:  The autonomous system (AS) number for Border Gateway Protocol (BGP) configuration. The valid values are 1-2147483647.<br/>vlan:  The ID of the VLAN.<br/>virtualInterfaceName:  The name of the virtual interface assigned by the customer network. The name has a maximum of 100 characters. The following are valid characters: a-z, 0-9 and a hyphen (-).<br/>virtualInterfaceType:  The type of virtual interface. The possible values are <code>private</code> and <code>public</code>.<br/>connectionId:  The ID of the connection.<br/>location:  The location of the connection.<br/>virtualInterfaceId:  The ID of the virtual interface.<br/>ownerAccount:  The ID of the AWS account that owns the virtual interface.<br/>        """
        pass





class ApplicationDiscoveryService(BaseClient):
    r"""<fullname>AWS Application Discovery Service</fullname> AWS Application Discovery Service helps you plan application migration projects. It automatically identifies servers, virtual machines (VMs), and network dependencies in your on-premises data centers. For more information, see the <a href="http://aws.amazon.com/application-discovery/faqs/">AWS Application Discovery Service FAQ</a>. Application Discovery Service offers three ways of performing discovery and collecting data about your on-premises servers: <ul> <li>  <b>Agentless discovery</b> is recommended for environments that use VMware vCenter Server. This mode doesn't require you to install an agent on each host. It does not work in non-VMware environments. <ul> <li> Agentless discovery gathers server information regardless of the operating systems, which minimizes the time required for initial on-premises infrastructure assessment. </li> <li> Agentless discovery doesn't collect information about network dependencies, only agent-based discovery collects that information. </li> </ul> </li> </ul> <ul> <li>  <b>Agent-based discovery</b> collects a richer set of data than agentless discovery by using the AWS Application Discovery Agent, which you install on one or more hosts in your data center. <ul> <li>  The agent captures infrastructure and application information, including an inventory of running processes, system performance information, resource utilization, and network dependencies. </li> <li> The information collected by agents is secured at rest and in transit to the Application Discovery Service database in the cloud.  </li> </ul> </li> </ul> <ul> <li>  <b>AWS Partner Network (APN) solutions</b> integrate with Application Discovery Service, enabling you to import details of your on-premises environment directly into Migration Hub without using the discovery connector or discovery agent. <ul> <li> Third-party application discovery tools can query AWS Application Discovery Service, and they can write to the Application Discovery Service database using the public API. </li> <li> In this way, you can import data into Migration Hub and view it, so that you can associate applications with servers and track migrations. </li> </ul> </li> </ul>  <b>Recommendations</b>  We recommend that you use agent-based discovery for non-VMware environments, and whenever you want to collect information about network dependencies. You can run agent-based and agentless discovery simultaneously. Use agentless discovery to complete the initial infrastructure assessment quickly, and then install agents on select hosts to collect additional information.  <b>Working With This Guide</b>  This API reference provides descriptions, syntax, and usage examples for each of the actions and data types for Application Discovery Service. The topic for each action shows the API request parameters and the response. Alternatively, you can use one of the AWS SDKs to access an API that is tailored to the programming language or platform that you're using. For more information, see <a href="http://aws.amazon.com/tools/#SDKs">AWS SDKs</a>. <note> <ul> <li> Remember that you must set your Migration Hub home region before you call any of these APIs. </li> <li> You must make API calls for write actions (create, notify, associate, disassociate, import, or put) while in your home region, or a <code>HomeRegionNotSetException</code> error is returned. </li> <li> API calls for read actions (list, describe, stop, and delete) are permitted outside of your home region. </li> <li> Although it is unlikely, the Migration Hub home region could change. If you call APIs outside the home region, an <code>InvalidInputException</code> is returned. </li> <li> You must call <code>GetHomeRegion</code> to obtain the latest Migration Hub home region. </li> </ul> </note> This guide is intended for use with the <a href="http://docs.aws.amazon.com/application-discovery/latest/userguide/">AWS Application Discovery Service User Guide</a>. <important> All data is handled according to the <a href="http://aws.amazon.com/privacy/">AWS Privacy Policy</a>. You can operate Application Discovery Service offline to inspect collected data before it is shared with the service. </important>"""


    class DescribeAgentsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_agents` for valid parameters"""
            pass
    class DescribeContinuousExportsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_continuous_exports` for valid parameters"""
            pass
    class DescribeExportConfigurationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_export_configurations` for valid parameters"""
            pass
    class DescribeExportTasksPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_export_tasks` for valid parameters"""
            pass
    class DescribeTagsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_tags` for valid parameters"""
            pass
    class ListConfigurationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_configurations` for valid parameters"""
            pass


    class AssociateConfigurationItemsToApplicationRequest(Mapping):
        pass
    
    class AssociateConfigurationItemsToApplicationResponse(Mapping):
        pass
    
    class ConfigurationId(object):
        pass
    
    class BatchDeleteImportDataRequest(Mapping):
        pass
    
    class BatchDeleteImportDataResponse(Mapping):
        pass
    
    class ImportTaskIdentifier(object):
        pass
    
    class CreateApplicationRequest(Mapping):
        pass
    
    class CreateApplicationResponse(Mapping):
        pass
    
    class CreateTagsRequest(Mapping):
        pass
    
    class CreateTagsResponse(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class DeleteApplicationsRequest(Mapping):
        pass
    
    class DeleteApplicationsResponse(Mapping):
        pass
    
    class ApplicationId(object):
        pass
    
    class DeleteTagsRequest(Mapping):
        pass
    
    class DeleteTagsResponse(Mapping):
        pass
    
    class DescribeAgentsRequest(Mapping):
        pass
    
    class DescribeAgentsResponse(Mapping):
        pass
    
    class AgentId(object):
        pass
    
    class Filter(Mapping):
        pass
    
    class DescribeConfigurationsRequest(Mapping):
        pass
    
    class DescribeConfigurationsResponse(Mapping):
        pass
    
    class DescribeContinuousExportsRequest(Mapping):
        pass
    
    class DescribeContinuousExportsResponse(Mapping):
        pass
    
    class ConfigurationsExportId(object):
        pass
    
    class DescribeExportConfigurationsRequest(Mapping):
        pass
    
    class DescribeExportConfigurationsResponse(Mapping):
        pass
    
    class DescribeExportTasksRequest(Mapping):
        pass
    
    class DescribeExportTasksResponse(Mapping):
        pass
    
    class ExportFilter(Mapping):
        pass
    
    class DescribeImportTasksRequest(Mapping):
        pass
    
    class DescribeImportTasksResponse(Mapping):
        pass
    
    class ImportTaskFilter(Mapping):
        pass
    
    class DescribeTagsRequest(Mapping):
        pass
    
    class DescribeTagsResponse(Mapping):
        pass
    
    class TagFilter(Mapping):
        pass
    
    class DisassociateConfigurationItemsFromApplicationRequest(Mapping):
        pass
    
    class DisassociateConfigurationItemsFromApplicationResponse(Mapping):
        pass
    
    class ExportConfigurationsResponse(Mapping):
        pass
    
    class GetDiscoverySummaryRequest(Mapping):
        pass
    
    class GetDiscoverySummaryResponse(Mapping):
        pass
    
    class ListConfigurationsRequest(Mapping):
        pass
    
    class ListConfigurationsResponse(Mapping):
        pass
    
    class OrderByElement(Mapping):
        pass
    
    class ListServerNeighborsRequest(Mapping):
        pass
    
    class ListServerNeighborsResponse(Mapping):
        pass
    
    class Boolean(object):
        pass
    
    class StartContinuousExportRequest(Mapping):
        pass
    
    class StartContinuousExportResponse(Mapping):
        pass
    
    class StartDataCollectionByAgentIdsRequest(Mapping):
        pass
    
    class StartDataCollectionByAgentIdsResponse(Mapping):
        pass
    
    class StartExportTaskRequest(Mapping):
        pass
    
    class StartExportTaskResponse(Mapping):
        pass
    
    class ExportDataFormat(object):
        pass
    
    class TimeStamp(object):
        pass
    
    class StartImportTaskRequest(Mapping):
        pass
    
    class StartImportTaskResponse(Mapping):
        pass
    
    class StopContinuousExportRequest(Mapping):
        pass
    
    class StopContinuousExportResponse(Mapping):
        pass
    
    class StopDataCollectionByAgentIdsRequest(Mapping):
        pass
    
    class StopDataCollectionByAgentIdsResponse(Mapping):
        pass
    
    class UpdateApplicationRequest(Mapping):
        pass
    
    class UpdateApplicationResponse(Mapping):
        pass
    
    def associate_configuration_items_to_application(self, configurationIds: List[ConfigurationId], applicationConfigurationId: str) -> AssociateConfigurationItemsToApplicationResponse:
        r"""Associates one or more configuration items with an application.

        :param self:
        :param configurationIds:  The ID of each configuration item to be associated with an application.<br/>applicationConfigurationId:  The configuration ID of an application with which items are to be associated.<br/>
        :return:         """
        pass

    def batch_delete_import_data(self, importTaskIds: List[ImportTaskIdentifier]) -> BatchDeleteImportDataResponse:
        r"""Deletes one or more import tasks, each identified by their import ID. Each import task has a number of records that can identify servers or applications.  AWS Application Discovery Service has built-in matching logic that will identify when discovered servers match existing entries that you've previously discovered, the information for the already-existing discovered server is updated. When you delete an import task that contains records that were used to match, the information in those matched records that comes from the deleted records will also be deleted.

        :param self:
        :param importTaskIds:  The IDs for the import tasks that you want to delete.<br/>
        :return: errors:  Error messages returned for each import task that you deleted as a response for this command.<br/>        """
        pass

    def create_application(self, name: str, description: str=None) -> CreateApplicationResponse:
        r"""Creates an application with the given name and description.

        :param self:
        :param description:  Description of the application to be created.<br/>name:  Name of the application to be created.<br/>
        :return: configurationId:  Configuration ID of an application to be created.<br/>        """
        pass

    def create_tags(self, tags: List[Tag], configurationIds: List[ConfigurationId]) -> CreateTagsResponse:
        r"""Creates one or more tags for configuration items. Tags are metadata that help you categorize IT assets. This API accepts a list of multiple configuration items.

        :param self:
        :param tags:  Tags that you want to associate with one or more configuration items. Specify the tags that you want to create in a <i>key</i>-<i>value</i> format. For example:  <code>{"key": "serverType", "value": "webServer"}</code> <br/>configurationIds:  A list of configuration items that you want to tag.<br/>
        :return:         """
        pass

    def delete_applications(self, configurationIds: List[ApplicationId]) -> DeleteApplicationsResponse:
        r"""Deletes a list of applications and their associations with configuration items.

        :param self:
        :param configurationIds:  Configuration ID of an application to be deleted.<br/>
        :return:         """
        pass

    def delete_tags(self, configurationIds: List[ConfigurationId], tags: List[Tag]=None) -> DeleteTagsResponse:
        r"""Deletes the association between configuration items and one or more tags. This API accepts a list of multiple configuration items.

        :param self:
        :param tags:  Tags that you want to delete from one or more configuration items. Specify the tags that you want to delete in a <i>key</i>-<i>value</i> format. For example:  <code>{"key": "serverType", "value": "webServer"}</code> <br/>configurationIds:  A list of configuration items with tags that you want to delete.<br/>
        :return:         """
        pass

    def describe_agents(self, agentIds: List[AgentId]=None, filters: List[Filter]=None, maxResults: int=None, nextToken: str=None) -> DescribeAgentsResponse:
        r"""Lists agents or connectors as specified by ID or other filters. All agents/connectors associated with your user account can be listed if you call <code>DescribeAgents</code> as is without passing any parameters.

        :param self:
        :param nextToken:  Token to retrieve the next set of results. For example, if you previously specified 100 IDs for <code>DescribeAgentsRequest$agentIds</code> but set <code>DescribeAgentsRequest$maxResults</code> to 10, you received a set of 10 results along with a token. Use that token in this query to get the next set of 10.<br/>maxResults:  The total number of agents/Connectors to return in a single page of output. The maximum value is 100.<br/>filters:  You can filter the request using various logical operators and a <i>key</i>-<i>value</i> format. For example:   <code>{"key": "collectionStatus", "value": "STARTED"}</code> <br/>agentIds:  The agent or the Connector IDs for which you want information. If you specify no IDs, the system returns information about all agents/Connectors associated with your AWS user account.<br/>
        :return: nextToken:  Token to retrieve the next set of results. For example, if you specified 100 IDs for <code>DescribeAgentsRequest$agentIds</code> but set <code>DescribeAgentsRequest$maxResults</code> to 10, you received a set of 10 results along with this token. Use this token in the next query to retrieve the next set of 10.<br/>agentsInfo:  Lists agents or the Connector by ID or lists all agents/Connectors associated with your user account if you did not specify an agent/Connector ID. The output includes agent/Connector IDs, IP addresses, media access control (MAC) addresses, agent/Connector health, host name where the agent/Connector resides, and the version number of each agent/Connector.<br/>        """
        pass

    def describe_configurations(self, configurationIds: List[ConfigurationId]) -> DescribeConfigurationsResponse:
        r"""Retrieves attributes for a list of configuration item IDs. <note> All of the supplied IDs must be for the same asset type from one of the following: <ul> <li> server </li> <li> application </li> <li> process </li> <li> connection </li> </ul> Output fields are specific to the asset type specified. For example, the output for a <i>server</i> configuration item includes a list of attributes about the server, such as host name, operating system, number of network cards, etc. For a complete list of outputs for each asset type, see <a href="https://docs.aws.amazon.com/application-discovery/latest/userguide/discovery-api-queries.html#DescribeConfigurations">Using the DescribeConfigurations Action</a> in the <i>AWS Application Discovery Service User Guide</i>. </note>

        :param self:
        :param configurationIds:  One or more configuration IDs.<br/>
        :return: configurations:  A key in the response map. The value is an array of data.<br/>        """
        pass

    def describe_continuous_exports(self, exportIds: List[ConfigurationsExportId]=None, maxResults: int=None, nextToken: str=None) -> DescribeContinuousExportsResponse:
        r"""Lists exports as specified by ID. All continuous exports associated with your user account can be listed if you call <code>DescribeContinuousExports</code> as is without passing any parameters.

        :param self:
        :param nextToken:  The token from the previous call to <code>DescribeExportTasks</code>.<br/>maxResults:  A number between 1 and 100 specifying the maximum number of continuous export descriptions returned.<br/>exportIds:  The unique IDs assigned to the exports.<br/>
        :return: nextToken:  The token from the previous call to <code>DescribeExportTasks</code>.<br/>descriptions:  A list of continuous export descriptions.<br/>        """
        pass

    def describe_export_configurations(self, exportIds: List[ConfigurationsExportId]=None, maxResults: int=None, nextToken: str=None) -> DescribeExportConfigurationsResponse:
        r""" <code>DescribeExportConfigurations</code> is deprecated. Use <a href="https://docs.aws.amazon.com/application-discovery/latest/APIReference/API_DescribeExportTasks.html">DescribeImportTasks</a>, instead.

        :param self:
        :param nextToken:  The token from the previous call to describe-export-tasks.<br/>maxResults:  A number between 1 and 100 specifying the maximum number of continuous export descriptions returned.<br/>exportIds:  A list of continuous export IDs to search for.<br/>
        :return: nextToken:  The token from the previous call to describe-export-tasks.<br/>exportsInfo:  <p/><br/>        """
        pass

    def describe_export_tasks(self, exportIds: List[ConfigurationsExportId]=None, filters: List[ExportFilter]=None, maxResults: int=None, nextToken: str=None) -> DescribeExportTasksResponse:
        r"""Retrieve status of one or more export tasks. You can retrieve the status of up to 100 export tasks.

        :param self:
        :param nextToken:  The <code>nextToken</code> value returned from a previous paginated <code>DescribeExportTasks</code> request where <code>maxResults</code> was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the <code>nextToken</code> value. This value is null when there are no more results to return.<br/>maxResults:  The maximum number of volume results returned by <code>DescribeExportTasks</code> in paginated output. When this parameter is used, <code>DescribeExportTasks</code> only returns <code>maxResults</code> results in a single page along with a <code>nextToken</code> response element.<br/>filters:  One or more filters. <ul> <li>  <code>AgentId</code> - ID of the agent whose collected data will be exported </li> </ul><br/>exportIds:  One or more unique identifiers used to query the status of an export request.<br/>
        :return: nextToken:  The <code>nextToken</code> value to include in a future <code>DescribeExportTasks</code> request. When the results of a <code>DescribeExportTasks</code> request exceed <code>maxResults</code>, this value can be used to retrieve the next page of results. This value is null when there are no more results to return.<br/>exportsInfo:  Contains one or more sets of export request details. When the status of a request is <code>SUCCEEDED</code>, the response includes a URL for an Amazon S3 bucket where you can view the data in a CSV file.<br/>        """
        pass

    def describe_import_tasks(self, filters: List[ImportTaskFilter]=None, maxResults: int=None, nextToken: str=None) -> DescribeImportTasksResponse:
        r"""Returns an array of import tasks for your account, including status information, times, IDs, the Amazon S3 Object URL for the import file, and more.

        :param self:
        :param nextToken:  The token to request a specific page of results.<br/>maxResults:  The maximum number of results that you want this request to return, up to 100.<br/>filters:  An array of name-value pairs that you provide to filter the results for the <code>DescribeImportTask</code> request to a specific subset of results. Currently, wildcard values aren't supported for filters.<br/>
        :return: tasks:  A returned array of import tasks that match any applied filters, up to the specified number of maximum results.<br/>nextToken:  The token to request the next page of results.<br/>        """
        pass

    def describe_tags(self, filters: List[TagFilter]=None, maxResults: int=None, nextToken: str=None) -> DescribeTagsResponse:
        r"""Retrieves a list of configuration items that have tags as specified by the key-value pairs, name and value, passed to the optional parameter <code>filters</code>. There are three valid tag filter names: <ul> <li> tagKey </li> <li> tagValue </li> <li> configurationId </li> </ul> Also, all configuration items associated with your user account that have tags can be listed if you call <code>DescribeTags</code> as is without passing any parameters.

        :param self:
        :param nextToken:  A token to start the list. Use this token to get the next set of results.<br/>maxResults:  The total number of items to return in a single page of output. The maximum value is 100.<br/>filters:  You can filter the list using a <i>key</i>-<i>value</i> format. You can separate these items by using logical operators. Allowed filters include <code>tagKey</code>, <code>tagValue</code>, and <code>configurationId</code>. <br/>
        :return: nextToken:  The call returns a token. Use this token to get the next set of results.<br/>tags:  Depending on the input, this is a list of configuration items tagged with a specific tag, or a list of tags for a specific configuration item.<br/>        """
        pass

    def disassociate_configuration_items_from_application(self, configurationIds: List[ConfigurationId], applicationConfigurationId: str) -> DisassociateConfigurationItemsFromApplicationResponse:
        r"""Disassociates one or more configuration items from an application.

        :param self:
        :param configurationIds:  Configuration ID of each item to be disassociated from an application.<br/>applicationConfigurationId:  Configuration ID of an application from which each item is disassociated.<br/>
        :return:         """
        pass

    def export_configurations(self) -> ExportConfigurationsResponse:
        r"""Deprecated. Use <code>StartExportTask</code> instead. Exports all discovered configuration data to an Amazon S3 bucket or an application that enables you to view and evaluate the data. Data includes tags and tag associations, processes, connections, servers, and system performance. This API returns an export ID that you can query using the <i>DescribeExportConfigurations</i> API. The system imposes a limit of two configuration exports in six hours.

        :param self:
        :param 
        :return: exportId:  A unique identifier that you can use to query the export status.<br/>        """
        pass

    def get_discovery_summary(self) -> GetDiscoverySummaryResponse:
        r"""Retrieves a short summary of discovered assets. This API operation takes no request parameters and is called as is at the command prompt as shown in the example.

        :param self:
        :param 
        :return: connectorSummary:  Details about discovered connectors, including connector status and health.:<br/>agentSummary:  Details about discovered agents, including agent status and health.:<br/>serversMappedtoTags:  The number of servers mapped to tags.<br/>serversMappedToApplications:  The number of servers mapped to applications.<br/>applications:  The number of applications discovered.<br/>servers:  The number of servers discovered.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>unknownAgents</i> Number of unknown discovery agents.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>totalAgents</i> Total number of discovery agents.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>unhealthyAgents</i> Number of unhealthy discovery agents.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>shutdownAgents</i> Number of discovery agents with status SHUTDOWN.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>blackListedAgents</i> Number of blacklisted discovery agents.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>healthyAgents</i> Number of healthy discovery agents<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>activeAgents</i> Number of active discovery agents.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>unknownConnectors</i> Number of unknown discovery connectors.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>totalConnectors</i> Total number of discovery connectors.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>unhealthyConnectors</i> Number of unhealthy discovery connectors.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>shutdownConnectors</i> Number of discovery connectors with status SHUTDOWN,<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>blackListedConnectors</i> Number of blacklisted discovery connectors.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>healthyConnectors</i> Number of healthy discovery connectors.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>activeConnectors</i> Number of active discovery connectors.<br/>        """
        pass

    def list_configurations(self, configurationType: str, filters: List[Filter]=None, maxResults: int=None, nextToken: str=None, orderBy: List[OrderByElement]=None) -> ListConfigurationsResponse:
        r"""Retrieves a list of configuration items as specified by the value passed to the required parameter <code>configurationType</code>. Optional filtering may be applied to refine search results.

        :param self:
        :param orderBy:  Certain filter criteria return output that can be sorted in ascending or descending order. For a list of output characteristics for each filter, see <a href="https://docs.aws.amazon.com/application-discovery/latest/userguide/discovery-api-queries.html#ListConfigurations">Using the ListConfigurations Action</a> in the <i>AWS Application Discovery Service User Guide</i>.<br/>nextToken:  Token to retrieve the next set of results. For example, if a previous call to ListConfigurations returned 100 items, but you set <code>ListConfigurationsRequest$maxResults</code> to 10, you received a set of 10 results along with a token. Use that token in this query to get the next set of 10.<br/>maxResults:  The total number of items to return. The maximum value is 100.<br/>filters:  You can filter the request using various logical operators and a <i>key</i>-<i>value</i> format. For example:   <code>{"key": "serverType", "value": "webServer"}</code>  For a complete list of filter options and guidance about using them with this action, see <a href="https://docs.aws.amazon.com/application-discovery/latest/userguide/discovery-api-queries.html#ListConfigurations">Using the ListConfigurations Action</a> in the <i>AWS Application Discovery Service User Guide</i>.<br/>configurationType:  A valid configuration identified by Application Discovery Service. <br/>
        :return: nextToken:  Token to retrieve the next set of results. For example, if your call to ListConfigurations returned 100 items, but you set <code>ListConfigurationsRequest$maxResults</code> to 10, you received a set of 10 results along with this token. Use this token in the next query to retrieve the next set of 10.<br/>configurations:  Returns configuration details, including the configuration ID, attribute names, and attribute values.<br/>        """
        pass

    def list_server_neighbors(self, configurationId: str, portInformationNeeded: Boolean=None, neighborConfigurationIds: List[ConfigurationId]=None, maxResults: int=None, nextToken: str=None) -> ListServerNeighborsResponse:
        r"""Retrieves a list of servers that are one network hop away from a specified server.

        :param self:
        :param nextToken:  Token to retrieve the next set of results. For example, if you previously specified 100 IDs for <code>ListServerNeighborsRequest$neighborConfigurationIds</code> but set <code>ListServerNeighborsRequest$maxResults</code> to 10, you received a set of 10 results along with a token. Use that token in this query to get the next set of 10.<br/>maxResults:  Maximum number of results to return in a single page of output.<br/>neighborConfigurationIds:  List of configuration IDs to test for one-hop-away.<br/>portInformationNeeded:  Flag to indicate if port and protocol information is needed as part of the response.<br/>configurationId:  Configuration ID of the server for which neighbors are being listed.<br/>
        :return: knownDependencyCount:  Count of distinct servers that are one hop away from the given server.<br/>nextToken:  Token to retrieve the next set of results. For example, if you specified 100 IDs for <code>ListServerNeighborsRequest$neighborConfigurationIds</code> but set <code>ListServerNeighborsRequest$maxResults</code> to 10, you received a set of 10 results along with this token. Use this token in the next query to retrieve the next set of 10.<br/>neighbors:  List of distinct servers that are one hop away from the given server.<br/>        """
        pass

    def start_continuous_export(self) -> StartContinuousExportResponse:
        r"""Start the continuous flow of agent's discovered data into Amazon Athena.

        :param self:
        :param 
        :return: schemaStorageConfig:  A dictionary which describes how the data is stored. <ul> <li>  <code>databaseName</code> - the name of the Glue database used to store the schema. </li> </ul><br/>dataSource:  The type of data collector used to gather this data (currently only offered for AGENT).<br/>startTime:  The timestamp representing when the continuous export was started.<br/>s3Bucket:  The name of the s3 bucket where the export data parquet files are stored.<br/>exportId:  The unique ID assigned to this export.<br/>        """
        pass

    def start_data_collection_by_agent_ids(self, agentIds: List[AgentId]) -> StartDataCollectionByAgentIdsResponse:
        r"""Instructs the specified agents or connectors to start collecting data.

        :param self:
        :param agentIds:  The IDs of the agents or connectors from which to start collecting data. If you send a request to an agent/connector ID that you do not have permission to contact, according to your AWS account, the service does not throw an exception. Instead, it returns the error in the <i>Description</i> field. If you send a request to multiple agents/connectors and you do not have permission to contact some of those agents/connectors, the system does not throw an exception. Instead, the system shows <code>Failed</code> in the <i>Description</i> field.<br/>
        :return: agentsConfigurationStatus:  Information about agents or the connector that were instructed to start collecting data. Information includes the agent/connector ID, a description of the operation performed, and whether the agent/connector configuration was updated.<br/>        """
        pass

    def start_export_task(self, exportDataFormat: List[ExportDataFormat]=None, filters: List[ExportFilter]=None, startTime: TimeStamp=None, endTime: TimeStamp=None) -> StartExportTaskResponse:
        r""" Begins the export of discovered data to an S3 bucket.  If you specify <code>agentIds</code> in a filter, the task exports up to 72 hours of detailed data collected by the identified Application Discovery Agent, including network, process, and performance details. A time range for exported agent data may be set by using <code>startTime</code> and <code>endTime</code>. Export of detailed agent data is limited to five concurrently running exports.   If you do not include an <code>agentIds</code> filter, summary data is exported that includes both AWS Agentless Discovery Connector data and summary data from AWS Discovery Agents. Export of summary data is limited to two exports per day. 

        :param self:
        :param endTime:  The end timestamp for exported data from the single Application Discovery Agent selected in the filters. If no value is specified, exported data includes the most recent data collected by the agent.<br/>startTime:  The start timestamp for exported data from the single Application Discovery Agent selected in the filters. If no value is specified, data is exported starting from the first data collected by the agent.<br/>filters:  If a filter is present, it selects the single <code>agentId</code> of the Application Discovery Agent for which data is exported. The <code>agentId</code> can be found in the results of the <code>DescribeAgents</code> API or CLI. If no filter is present, <code>startTime</code> and <code>endTime</code> are ignored and exported data includes both Agentless Discovery Connector data and summary data from Application Discovery agents. <br/>exportDataFormat:  The file format for the returned export data. Default value is <code>CSV</code>. <b>Note:</b> <i>The</i> <code>GRAPHML</code> <i>option has been deprecated.</i> <br/>
        :return: exportId:  A unique identifier used to query the status of an export request.<br/>        """
        pass

    def start_import_task(self, importUrl: str, name: str, clientRequestToken: str=None) -> StartImportTaskResponse:
        r"""Starts an import task, which allows you to import details of your on-premises environment directly into AWS Migration Hub without having to use the Application Discovery Service (ADS) tools such as the Discovery Connector or Discovery Agent. This gives you the option to perform migration assessment and planning directly from your imported data, including the ability to group your devices as applications and track their migration status. To start an import request, do this: <ol> <li> Download the specially formatted comma separated value (CSV) import template, which you can find here: <a href="https://s3-us-west-2.amazonaws.com/templates-7cffcf56-bd96-4b1c-b45b-a5b42f282e46/import_template.csv">https://s3-us-west-2.amazonaws.com/templates-7cffcf56-bd96-4b1c-b45b-a5b42f282e46/import_template.csv</a>. </li> <li> Fill out the template with your server and application data. </li> <li> Upload your import file to an Amazon S3 bucket, and make a note of it's Object URL. Your import file must be in the CSV format. </li> <li> Use the console or the <code>StartImportTask</code> command with the AWS CLI or one of the AWS SDKs to import the records from your file. </li> </ol> For more information, including step-by-step procedures, see <a href="https://docs.aws.amazon.com/application-discovery/latest/userguide/discovery-import.html">Migration Hub Import</a> in the <i>AWS Application Discovery Service User Guide</i>. <note> There are limits to the number of import tasks you can create (and delete) in an AWS account. For more information, see <a href="https://docs.aws.amazon.com/application-discovery/latest/userguide/ads_service_limits.html">AWS Application Discovery Service Limits</a> in the <i>AWS Application Discovery Service User Guide</i>. </note>

        :param self:
        :param importUrl:  The URL for your import file that you've uploaded to Amazon S3. <note> If you're using the AWS CLI, this URL is structured as follows: <code>s3://BucketName/ImportFileName.CSV</code>  </note><br/>name:  A descriptive name for this request. You can use this name to filter future requests related to this import task, such as identifying applications and servers that were included in this import task. We recommend that you use a meaningful name for each import task.<br/>clientRequestToken:  Optional. A unique token that you can provide to prevent the same import request from occurring more than once. If you don't provide a token, a token is automatically generated. Sending more than one <code>StartImportTask</code> request with the same client request token will return information about the original import task with that client request token.<br/>
        :return: task:  An array of information related to the import task request including status information, times, IDs, the Amazon S3 Object URL for the import file, and more. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>errorsAndFailedEntriesZip</i> A link to a compressed archive folder (in the ZIP format) that contains an error log and a file of failed records. You can use these two files to quickly identify records that failed, why they failed, and correct those records. Afterward, you can upload the corrected file to your Amazon S3 bucket and create another import task request. This field also includes authorization information so you can confirm the authenticity of the compressed archive before you download it. If some records failed to be imported we recommend that you correct the records in the failed entries file and then imports that failed entries file. This prevents you from having to correct and update the larger original file and attempt importing it again.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>applicationImportFailure</i> The total number of application records in the import file that failed to be imported.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>applicationImportSuccess</i> The total number of application records in the import file that were successfully imported.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>serverImportFailure</i> The total number of server records in the import file that failed to be imported.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>serverImportSuccess</i> The total number of server records in the import file that were successfully imported.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>importDeletedTime</i> The time that the import task request was deleted, presented in the Unix time stamp format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>importCompletionTime</i> The time that the import task request finished, presented in the Unix time stamp format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>importRequestTime</i> The time that the import task request was made, presented in the Unix time stamp format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the import task. An import can have the status of <code>IMPORT_COMPLETE</code> and still have some records fail to import from the overall request. More information can be found in the downloadable archive defined in the <code>errorsAndFailedEntriesZip</code> field, or in the Migration Hub management console.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>importUrl</i> The URL for your import file that you've uploaded to Amazon S3.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> A descriptive name for an import task. You can use this name to filter future requests related to this import task, such as identifying applications and servers that were included in this import task. We recommend that you use a meaningful name for each import task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>clientRequestToken</i> A unique token used to prevent the same import request from occurring more than once. If you didn't provide a token, a token was automatically generated when the import task request was sent.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>importTaskId</i> The unique ID for a specific import task. These IDs aren't globally unique, but they are unique within an AWS account.<br/>        """
        pass

    def stop_continuous_export(self, exportId: str) -> StopContinuousExportResponse:
        r"""Stop the continuous flow of agent's discovered data into Amazon Athena.

        :param self:
        :param exportId:  The unique ID assigned to this export.<br/>
        :return: stopTime:  Timestamp that represents when this continuous export was stopped.<br/>startTime:  Timestamp that represents when this continuous export started collecting data.<br/>        """
        pass

    def stop_data_collection_by_agent_ids(self, agentIds: List[AgentId]) -> StopDataCollectionByAgentIdsResponse:
        r"""Instructs the specified agents or connectors to stop collecting data.

        :param self:
        :param agentIds:  The IDs of the agents or connectors from which to stop collecting data.<br/>
        :return: agentsConfigurationStatus:  Information about the agents or connector that were instructed to stop collecting data. Information includes the agent/connector ID, a description of the operation performed, and whether the agent/connector configuration was updated.<br/>        """
        pass

    def update_application(self, configurationId: str, name: str=None, description: str=None) -> UpdateApplicationResponse:
        r"""Updates metadata about an application.

        :param self:
        :param description:  New description of the application to be updated.<br/>name:  New name of the application to be updated.<br/>configurationId:  Configuration ID of the application to be updated.<br/>
        :return:         """
        pass





class DLM(BaseClient):
    r"""<fullname>Amazon Data Lifecycle Manager</fullname> With Amazon Data Lifecycle Manager, you can manage the lifecycle of your AWS resources. You create lifecycle policies, which are used to automate operations on the specified resources. Amazon DLM supports Amazon EBS volumes and snapshots. For information about using Amazon DLM with Amazon EBS, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/snapshot-lifecycle.html">Automating the Amazon EBS Snapshot Lifecycle</a> in the <i>Amazon EC2 User Guide</i>."""




    class CreateLifecyclePolicyRequest(Mapping):
        pass
    
    class CreateLifecyclePolicyResponse(Mapping):
        pass
    
    class PolicyDetails(Mapping):
        pass
    
    class TagMap(object):
        pass
    
    class DeleteLifecyclePolicyRequest(Mapping):
        pass
    
    class DeleteLifecyclePolicyResponse(Mapping):
        pass
    
    class GetLifecyclePoliciesRequest(Mapping):
        pass
    
    class GetLifecyclePoliciesResponse(Mapping):
        pass
    
    class PolicyId(object):
        pass
    
    class ResourceTypeValues(object):
        pass
    
    class TagFilter(object):
        pass
    
    class GetLifecyclePolicyRequest(Mapping):
        pass
    
    class GetLifecyclePolicyResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateLifecyclePolicyRequest(Mapping):
        pass
    
    class UpdateLifecyclePolicyResponse(Mapping):
        pass
    
    def create_lifecycle_policy(self, PolicyDetails: PolicyDetails, State: str, Description: str, ExecutionRoleArn: str, Tags: TagMap=None) -> CreateLifecyclePolicyResponse:
        r"""Creates a policy to manage the lifecycle of the specified AWS resources. You can create up to 100 lifecycle policies.

        :param self:
        :param Tags:  The tags to apply to the lifecycle policy during creation.<br/>PolicyDetails:  The configuration details of the lifecycle policy.:<br/>State:  The desired activation state of the lifecycle policy after creation.<br/>Description:  A description of the lifecycle policy. The characters ^[0-9A-Za-z _-]+$ are supported.<br/>ExecutionRoleArn:  The Amazon Resource Name (ARN) of the IAM role used to run the operations specified by the lifecycle policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Actions</i> The actions to be performed when the event-based policy is triggered. You can specify only one action per policy. This parameter is required for event-based policies only. If you are creating a snapshot or AMI policy, omit this parameter.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EventSource</i> The event that triggers the event-based policy.  This parameter is required for event-based policies only. If you are creating a snapshot or AMI policy, omit this parameter.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EventSource</b>: The event that triggers the event-based policy.  This parameter is required for event-based policies only. If you are creating a snapshot or AMI policy, omit this parameter.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Parameters</i> A set of optional parameters for snapshot and AMI lifecycle policies.  This parameter is required for snapshot and AMI policies only. If you are creating an event-based policy, omit this parameter.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Parameters</b>: A set of optional parameters for snapshot and AMI lifecycle policies.  This parameter is required for snapshot and AMI policies only. If you are creating an event-based policy, omit this parameter.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Schedules</i> The schedules of policy-defined actions for snapshot and AMI lifecycle policies. A policy can have up to four schedules—one mandatory schedule and up to three optional schedules. This parameter is required for snapshot and AMI policies only. If you are creating an event-based policy, omit this parameter.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetTags</i> The single tag that identifies targeted resources for this policy. This parameter is required for snapshot and AMI policies only. If you are creating an event-based policy, omit this parameter.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceLocations</i> The location of the resources to backup. If the source resources are located in an AWS Region, specify <code>CLOUD</code>. If the source resources are located on an AWS Outpost in your account, specify <code>OUTPOST</code>.  If you specify <code>OUTPOST</code>, Amazon Data Lifecycle Manager backs up all resources of the specified type with matching target tags across all of the Outposts in your account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceTypes</i> The target resource type for snapshot and AMI lifecycle policies. Use <code>VOLUME </code>to create snapshots of individual volumes or use <code>INSTANCE</code> to create multi-volume snapshots from the volumes for an instance. This parameter is required for snapshot and AMI policies only. If you are creating an event-based policy, omit this parameter.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PolicyType</i> The valid target resource types and actions a policy can manage. Specify <code>EBS_SNAPSHOT_MANAGEMENT</code> to create a lifecycle policy that manages the lifecycle of Amazon EBS snapshots. Specify <code>IMAGE_MANAGEMENT</code> to create a lifecycle policy that manages the lifecycle of EBS-backed AMIs. Specify <code>EVENT_BASED_POLICY </code> to create an event-based policy that performs specific actions when a defined event occurs in your AWS account. The default is <code>EBS_SNAPSHOT_MANAGEMENT</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NoReboot</i> Applies to AMI lifecycle policies only. Indicates whether targeted instances are rebooted when the lifecycle policy runs. <code>true</code> indicates that targeted instances are not rebooted when the policy runs. <code>false</code> indicates that target instances are rebooted when the policy runs. The default is <code>true</code> (instances are not rebooted).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ExcludeBootVolume</i> [EBS Snapshot Management – Instance policies only] Indicates whether to exclude the root volume from snapshots created using <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateSnapshots.html">CreateSnapshots</a>. The default is false.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The source of the event. Currently only managed AWS CloudWatch Events rules are supported.<br/>Information about the event.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Parameters</b>: Information about the event.
        :return: PolicyId:  The identifier of the lifecycle policy.<br/>        """
        pass

    def delete_lifecycle_policy(self, PolicyId: str) -> DeleteLifecyclePolicyResponse:
        r"""Deletes the specified lifecycle policy and halts the automated operations that the policy specified.

        :param self:
        :param PolicyId:  The identifier of the lifecycle policy.<br/>
        :return:         """
        pass

    def get_lifecycle_policies(self, PolicyIds: List[PolicyId]=None, State: str=None, ResourceTypes: List[ResourceTypeValues]=None, TargetTags: List[TagFilter]=None, TagsToAdd: List[TagFilter]=None) -> GetLifecyclePoliciesResponse:
        r"""Gets summary information about all or the specified data lifecycle policies. To get complete information about a policy, use <a>GetLifecyclePolicy</a>.

        :param self:
        :param TagsToAdd:  The tags to add to objects created by the policy. Tags are strings in the format <code>key=value</code>. These user-defined tags are added in addition to the AWS-added lifecycle tags.<br/>TargetTags:  The target tag for a policy. Tags are strings in the format <code>key=value</code>.<br/>ResourceTypes:  The resource type.<br/>State:  The activation state.<br/>PolicyIds:  The identifiers of the data lifecycle policies.<br/>
        :return: Policies:  Summary information about the lifecycle policies.<br/>        """
        pass

    def get_lifecycle_policy(self, PolicyId: str) -> GetLifecyclePolicyResponse:
        r"""Gets detailed information about the specified lifecycle policy.

        :param self:
        :param PolicyId:  The identifier of the lifecycle policy.<br/>
        :return: Policy:  Detailed information about the lifecycle policy.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PolicyArn</i> The Amazon Resource Name (ARN) of the policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The tags.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PolicyDetails</i> The configuration of the lifecycle policy&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PolicyDetails</b>: The configuration of the lifecycle policy<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DateModified</i> The local date and time when the lifecycle policy was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DateCreated</i> The local date and time when the lifecycle policy was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExecutionRoleArn</i> The Amazon Resource Name (ARN) of the IAM role used to run the operations specified by the lifecycle policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusMessage</i> The description of the status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The activation state of the lifecycle policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the lifecycle policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PolicyId</i> The identifier of the lifecycle policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Schedules</i> The schedules of policy-defined actions for snapshot and AMI lifecycle policies. A policy can have up to four schedules—one mandatory schedule and up to three optional schedules. This parameter is required for snapshot and AMI policies only. If you are creating an event-based policy, omit this parameter.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetTags</i> The single tag that identifies targeted resources for this policy. This parameter is required for snapshot and AMI policies only. If you are creating an event-based policy, omit this parameter.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceLocations</i> The location of the resources to backup. If the source resources are located in an AWS Region, specify <code>CLOUD</code>. If the source resources are located on an AWS Outpost in your account, specify <code>OUTPOST</code>.  If you specify <code>OUTPOST</code>, Amazon Data Lifecycle Manager backs up all resources of the specified type with matching target tags across all of the Outposts in your account.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceTypes</i> The target resource type for snapshot and AMI lifecycle policies. Use <code>VOLUME </code>to create snapshots of individual volumes or use <code>INSTANCE</code> to create multi-volume snapshots from the volumes for an instance. This parameter is required for snapshot and AMI policies only. If you are creating an event-based policy, omit this parameter.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PolicyType</i> The valid target resource types and actions a policy can manage. Specify <code>EBS_SNAPSHOT_MANAGEMENT</code> to create a lifecycle policy that manages the lifecycle of Amazon EBS snapshots. Specify <code>IMAGE_MANAGEMENT</code> to create a lifecycle policy that manages the lifecycle of EBS-backed AMIs. Specify <code>EVENT_BASED_POLICY </code> to create an event-based policy that performs specific actions when a defined event occurs in your AWS account. The default is <code>EBS_SNAPSHOT_MANAGEMENT</code>.<br/>A set of optional parameters for snapshot and AMI lifecycle policies.  This parameter is required for snapshot and AMI policies only. If you are creating an event-based policy, omit this parameter.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Parameters</b>: A set of optional parameters for snapshot and AMI lifecycle policies.  This parameter is required for snapshot and AMI policies only. If you are creating an event-based policy, omit this parameter.        """
        pass

    def list_tags_for_resource(self, ResourceArn: str) -> ListTagsForResourceResponse:
        r"""Lists the tags for the specified resource.

        :param self:
        :param ResourceArn:  The Amazon Resource Name (ARN) of the resource.<br/>
        :return: Tags:  Information about the tags.<br/>        """
        pass

    def tag_resource(self, Tags: TagMap, ResourceArn: str) -> TagResourceResponse:
        r"""Adds the specified tags to the specified resource.

        :param self:
        :param Tags:  One or more tags.<br/>ResourceArn:  The Amazon Resource Name (ARN) of the resource.<br/>
        :return:         """
        pass

    def untag_resource(self, TagKeys: List[TagKey], ResourceArn: str) -> UntagResourceResponse:
        r"""Removes the specified tags from the specified resource.

        :param self:
        :param TagKeys:  The tag keys.<br/>ResourceArn:  The Amazon Resource Name (ARN) of the resource.<br/>
        :return:         """
        pass

    def update_lifecycle_policy(self, PolicyId: str, ExecutionRoleArn: str=None, State: str=None, Description: str=None, PolicyDetails: PolicyDetails=None) -> UpdateLifecyclePolicyResponse:
        r"""Updates the specified lifecycle policy.

        :param self:
        :param PolicyDetails:  The configuration of the lifecycle policy. You cannot update the policy type or the resource type.:<br/>Description:  A description of the lifecycle policy.<br/>State:  The desired activation state of the lifecycle policy after creation.<br/>ExecutionRoleArn:  The Amazon Resource Name (ARN) of the IAM role used to run the operations specified by the lifecycle policy.<br/>PolicyId:  The identifier of the lifecycle policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Actions</i> The actions to be performed when the event-based policy is triggered. You can specify only one action per policy. This parameter is required for event-based policies only. If you are creating a snapshot or AMI policy, omit this parameter.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EventSource</i> The event that triggers the event-based policy.  This parameter is required for event-based policies only. If you are creating a snapshot or AMI policy, omit this parameter.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EventSource</b>: The event that triggers the event-based policy.  This parameter is required for event-based policies only. If you are creating a snapshot or AMI policy, omit this parameter.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Parameters</i> A set of optional parameters for snapshot and AMI lifecycle policies.  This parameter is required for snapshot and AMI policies only. If you are creating an event-based policy, omit this parameter.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Parameters</b>: A set of optional parameters for snapshot and AMI lifecycle policies.  This parameter is required for snapshot and AMI policies only. If you are creating an event-based policy, omit this parameter.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Schedules</i> The schedules of policy-defined actions for snapshot and AMI lifecycle policies. A policy can have up to four schedules—one mandatory schedule and up to three optional schedules. This parameter is required for snapshot and AMI policies only. If you are creating an event-based policy, omit this parameter.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetTags</i> The single tag that identifies targeted resources for this policy. This parameter is required for snapshot and AMI policies only. If you are creating an event-based policy, omit this parameter.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceLocations</i> The location of the resources to backup. If the source resources are located in an AWS Region, specify <code>CLOUD</code>. If the source resources are located on an AWS Outpost in your account, specify <code>OUTPOST</code>.  If you specify <code>OUTPOST</code>, Amazon Data Lifecycle Manager backs up all resources of the specified type with matching target tags across all of the Outposts in your account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceTypes</i> The target resource type for snapshot and AMI lifecycle policies. Use <code>VOLUME </code>to create snapshots of individual volumes or use <code>INSTANCE</code> to create multi-volume snapshots from the volumes for an instance. This parameter is required for snapshot and AMI policies only. If you are creating an event-based policy, omit this parameter.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PolicyType</i> The valid target resource types and actions a policy can manage. Specify <code>EBS_SNAPSHOT_MANAGEMENT</code> to create a lifecycle policy that manages the lifecycle of Amazon EBS snapshots. Specify <code>IMAGE_MANAGEMENT</code> to create a lifecycle policy that manages the lifecycle of EBS-backed AMIs. Specify <code>EVENT_BASED_POLICY </code> to create an event-based policy that performs specific actions when a defined event occurs in your AWS account. The default is <code>EBS_SNAPSHOT_MANAGEMENT</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NoReboot</i> Applies to AMI lifecycle policies only. Indicates whether targeted instances are rebooted when the lifecycle policy runs. <code>true</code> indicates that targeted instances are not rebooted when the policy runs. <code>false</code> indicates that target instances are rebooted when the policy runs. The default is <code>true</code> (instances are not rebooted).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ExcludeBootVolume</i> [EBS Snapshot Management – Instance policies only] Indicates whether to exclude the root volume from snapshots created using <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateSnapshots.html">CreateSnapshots</a>. The default is false.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The source of the event. Currently only managed AWS CloudWatch Events rules are supported.<br/>Information about the event.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Parameters</b>: Information about the event.
        :return:         """
        pass





class DatabaseMigrationService(BaseClient):
    r"""<fullname>AWS Database Migration Service</fullname> AWS Database Migration Service (AWS DMS) can migrate your data to and from the most widely used commercial and open-source databases such as Oracle, PostgreSQL, Microsoft SQL Server, Amazon Redshift, MariaDB, Amazon Aurora, MySQL, and SAP Adaptive Server Enterprise (ASE). The service supports homogeneous migrations such as Oracle to Oracle, as well as heterogeneous migrations between different database platforms, such as Oracle to MySQL or SQL Server to PostgreSQL. For more information about AWS DMS, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html">What Is AWS Database Migration Service?</a> in the <i>AWS Database Migration User Guide.</i> """

    class EndpointDeletedWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_endpoints` for valid parameters"""
            pass
    class ReplicationInstanceAvailableWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_replication_instances` for valid parameters"""
            pass
    class ReplicationInstanceDeletedWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_replication_instances` for valid parameters"""
            pass
    class ReplicationTaskDeletedWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_replication_tasks` for valid parameters"""
            pass
    class ReplicationTaskReadyWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_replication_tasks` for valid parameters"""
            pass
    class ReplicationTaskRunningWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_replication_tasks` for valid parameters"""
            pass
    class ReplicationTaskStoppedWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_replication_tasks` for valid parameters"""
            pass
    class TestConnectionSucceedsWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_connections` for valid parameters"""
            pass


    class DescribeSchemasPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_schemas` for valid parameters"""
            pass
    class DescribeCertificatesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_certificates` for valid parameters"""
            pass
    class DescribeEndpointsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_endpoints` for valid parameters"""
            pass
    class DescribeEventSubscriptionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_event_subscriptions` for valid parameters"""
            pass
    class DescribeEndpointTypesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_endpoint_types` for valid parameters"""
            pass
    class DescribeReplicationInstancesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_replication_instances` for valid parameters"""
            pass
    class DescribeTableStatisticsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_table_statistics` for valid parameters"""
            pass
    class DescribeConnectionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_connections` for valid parameters"""
            pass
    class DescribeReplicationTaskAssessmentResultsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_replication_task_assessment_results` for valid parameters"""
            pass
    class DescribeEventsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_events` for valid parameters"""
            pass
    class DescribeOrderableReplicationInstancesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_orderable_replication_instances` for valid parameters"""
            pass
    class DescribeReplicationSubnetGroupsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_replication_subnet_groups` for valid parameters"""
            pass
    class DescribeReplicationTasksPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_replication_tasks` for valid parameters"""
            pass


    class AddTagsToResourceMessage(Mapping):
        pass
    
    class AddTagsToResourceResponse(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class ApplyPendingMaintenanceActionMessage(Mapping):
        pass
    
    class ApplyPendingMaintenanceActionResponse(Mapping):
        pass
    
    class CancelReplicationTaskAssessmentRunMessage(Mapping):
        pass
    
    class CancelReplicationTaskAssessmentRunResponse(Mapping):
        pass
    
    class CreateEndpointMessage(Mapping):
        pass
    
    class CreateEndpointResponse(Mapping):
        pass
    
    class DynamoDbSettings(Mapping):
        pass
    
    class S3Settings(Mapping):
        pass
    
    class DmsTransferSettings(Mapping):
        pass
    
    class MongoDbSettings(Mapping):
        pass
    
    class KinesisSettings(Mapping):
        pass
    
    class KafkaSettings(Mapping):
        pass
    
    class ElasticsearchSettings(Mapping):
        pass
    
    class NeptuneSettings(Mapping):
        pass
    
    class RedshiftSettings(Mapping):
        pass
    
    class PostgreSQLSettings(Mapping):
        pass
    
    class MySQLSettings(Mapping):
        pass
    
    class OracleSettings(Mapping):
        pass
    
    class SybaseSettings(Mapping):
        pass
    
    class MicrosoftSQLServerSettings(Mapping):
        pass
    
    class IBMDb2Settings(Mapping):
        pass
    
    class DocDbSettings(Mapping):
        pass
    
    class CreateEventSubscriptionMessage(Mapping):
        pass
    
    class CreateEventSubscriptionResponse(Mapping):
        pass
    
    class String(object):
        pass
    
    class BooleanOptional(object):
        pass
    
    class CreateReplicationInstanceMessage(Mapping):
        pass
    
    class CreateReplicationInstanceResponse(Mapping):
        pass
    
    class CreateReplicationSubnetGroupMessage(Mapping):
        pass
    
    class CreateReplicationSubnetGroupResponse(Mapping):
        pass
    
    class CreateReplicationTaskMessage(Mapping):
        pass
    
    class CreateReplicationTaskResponse(Mapping):
        pass
    
    class TStamp(object):
        pass
    
    class DeleteCertificateMessage(Mapping):
        pass
    
    class DeleteCertificateResponse(Mapping):
        pass
    
    class DeleteConnectionMessage(Mapping):
        pass
    
    class DeleteConnectionResponse(Mapping):
        pass
    
    class DeleteEndpointMessage(Mapping):
        pass
    
    class DeleteEndpointResponse(Mapping):
        pass
    
    class DeleteEventSubscriptionMessage(Mapping):
        pass
    
    class DeleteEventSubscriptionResponse(Mapping):
        pass
    
    class DeleteReplicationInstanceMessage(Mapping):
        pass
    
    class DeleteReplicationInstanceResponse(Mapping):
        pass
    
    class DeleteReplicationSubnetGroupMessage(Mapping):
        pass
    
    class DeleteReplicationSubnetGroupResponse(Mapping):
        pass
    
    class DeleteReplicationTaskMessage(Mapping):
        pass
    
    class DeleteReplicationTaskResponse(Mapping):
        pass
    
    class DeleteReplicationTaskAssessmentRunMessage(Mapping):
        pass
    
    class DeleteReplicationTaskAssessmentRunResponse(Mapping):
        pass
    
    class DescribeAccountAttributesMessage(Mapping):
        pass
    
    class DescribeAccountAttributesResponse(Mapping):
        pass
    
    class DescribeApplicableIndividualAssessmentsMessage(Mapping):
        pass
    
    class DescribeApplicableIndividualAssessmentsResponse(Mapping):
        pass
    
    class DescribeCertificatesMessage(Mapping):
        pass
    
    class DescribeCertificatesResponse(Mapping):
        pass
    
    class Filter(Mapping):
        pass
    
    class DescribeConnectionsMessage(Mapping):
        pass
    
    class DescribeConnectionsResponse(Mapping):
        pass
    
    class DescribeEndpointSettingsMessage(Mapping):
        pass
    
    class DescribeEndpointSettingsResponse(Mapping):
        pass
    
    class DescribeEndpointTypesMessage(Mapping):
        pass
    
    class DescribeEndpointTypesResponse(Mapping):
        pass
    
    class DescribeEndpointsMessage(Mapping):
        pass
    
    class DescribeEndpointsResponse(Mapping):
        pass
    
    class DescribeEventCategoriesMessage(Mapping):
        pass
    
    class DescribeEventCategoriesResponse(Mapping):
        pass
    
    class DescribeEventSubscriptionsMessage(Mapping):
        pass
    
    class DescribeEventSubscriptionsResponse(Mapping):
        pass
    
    class DescribeEventsMessage(Mapping):
        pass
    
    class DescribeEventsResponse(Mapping):
        pass
    
    class DescribeOrderableReplicationInstancesMessage(Mapping):
        pass
    
    class DescribeOrderableReplicationInstancesResponse(Mapping):
        pass
    
    class DescribePendingMaintenanceActionsMessage(Mapping):
        pass
    
    class DescribePendingMaintenanceActionsResponse(Mapping):
        pass
    
    class DescribeRefreshSchemasStatusMessage(Mapping):
        pass
    
    class DescribeRefreshSchemasStatusResponse(Mapping):
        pass
    
    class DescribeReplicationInstanceTaskLogsMessage(Mapping):
        pass
    
    class DescribeReplicationInstanceTaskLogsResponse(Mapping):
        pass
    
    class DescribeReplicationInstancesMessage(Mapping):
        pass
    
    class DescribeReplicationInstancesResponse(Mapping):
        pass
    
    class DescribeReplicationSubnetGroupsMessage(Mapping):
        pass
    
    class DescribeReplicationSubnetGroupsResponse(Mapping):
        pass
    
    class DescribeReplicationTaskAssessmentResultsMessage(Mapping):
        pass
    
    class DescribeReplicationTaskAssessmentResultsResponse(Mapping):
        pass
    
    class DescribeReplicationTaskAssessmentRunsMessage(Mapping):
        pass
    
    class DescribeReplicationTaskAssessmentRunsResponse(Mapping):
        pass
    
    class DescribeReplicationTaskIndividualAssessmentsMessage(Mapping):
        pass
    
    class DescribeReplicationTaskIndividualAssessmentsResponse(Mapping):
        pass
    
    class DescribeReplicationTasksMessage(Mapping):
        pass
    
    class DescribeReplicationTasksResponse(Mapping):
        pass
    
    class DescribeSchemasMessage(Mapping):
        pass
    
    class DescribeSchemasResponse(Mapping):
        pass
    
    class DescribeTableStatisticsMessage(Mapping):
        pass
    
    class DescribeTableStatisticsResponse(Mapping):
        pass
    
    class ImportCertificateMessage(Mapping):
        pass
    
    class ImportCertificateResponse(Mapping):
        pass
    
    class CertificateWallet(object):
        pass
    
    class ListTagsForResourceMessage(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class ModifyEndpointMessage(Mapping):
        pass
    
    class ModifyEndpointResponse(Mapping):
        pass
    
    class ModifyEventSubscriptionMessage(Mapping):
        pass
    
    class ModifyEventSubscriptionResponse(Mapping):
        pass
    
    class ModifyReplicationInstanceMessage(Mapping):
        pass
    
    class ModifyReplicationInstanceResponse(Mapping):
        pass
    
    class Boolean(object):
        pass
    
    class ModifyReplicationSubnetGroupMessage(Mapping):
        pass
    
    class ModifyReplicationSubnetGroupResponse(Mapping):
        pass
    
    class ModifyReplicationTaskMessage(Mapping):
        pass
    
    class ModifyReplicationTaskResponse(Mapping):
        pass
    
    class MoveReplicationTaskMessage(Mapping):
        pass
    
    class MoveReplicationTaskResponse(Mapping):
        pass
    
    class RebootReplicationInstanceMessage(Mapping):
        pass
    
    class RebootReplicationInstanceResponse(Mapping):
        pass
    
    class RefreshSchemasMessage(Mapping):
        pass
    
    class RefreshSchemasResponse(Mapping):
        pass
    
    class ReloadTablesMessage(Mapping):
        pass
    
    class ReloadTablesResponse(Mapping):
        pass
    
    class TableToReload(Mapping):
        pass
    
    class RemoveTagsFromResourceMessage(Mapping):
        pass
    
    class RemoveTagsFromResourceResponse(Mapping):
        pass
    
    class StartReplicationTaskMessage(Mapping):
        pass
    
    class StartReplicationTaskResponse(Mapping):
        pass
    
    class StartReplicationTaskAssessmentMessage(Mapping):
        pass
    
    class StartReplicationTaskAssessmentResponse(Mapping):
        pass
    
    class StartReplicationTaskAssessmentRunMessage(Mapping):
        pass
    
    class StartReplicationTaskAssessmentRunResponse(Mapping):
        pass
    
    class StopReplicationTaskMessage(Mapping):
        pass
    
    class StopReplicationTaskResponse(Mapping):
        pass
    
    class TestConnectionMessage(Mapping):
        pass
    
    class TestConnectionResponse(Mapping):
        pass
    
    def add_tags_to_resource(self, Tags: List[Tag], ResourceArn: str) -> AddTagsToResourceResponse:
        r"""Adds metadata tags to an AWS DMS resource, including replication instance, endpoint, security group, and migration task. These tags can also be used with cost allocation reporting to track cost associated with DMS resources, or used in a Condition statement in an IAM policy for DMS. For more information, see <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_Tag.html"> <code>Tag</code> </a> data type description.

        :param self:
        :param Tags:  One or more tags to be assigned to the resource.<br/>ResourceArn:  Identifies the AWS DMS resource to which tags should be added. The value for this parameter is an Amazon Resource Name (ARN). For AWS DMS, you can tag a replication instance, an endpoint, or a replication task.<br/>
        :return:         """
        pass

    def apply_pending_maintenance_action(self, OptInType: str, ApplyAction: str, ReplicationInstanceArn: str) -> ApplyPendingMaintenanceActionResponse:
        r"""Applies a pending maintenance action to a resource (for example, to a replication instance).

        :param self:
        :param OptInType:  A value that specifies the type of opt-in request, or undoes an opt-in request. You can't undo an opt-in request of type <code>immediate</code>. Valid values: <ul> <li>  <code>immediate</code> - Apply the maintenance action immediately. </li> <li>  <code>next-maintenance</code> - Apply the maintenance action during the next maintenance window for the resource. </li> <li>  <code>undo-opt-in</code> - Cancel any existing <code>next-maintenance</code> opt-in requests. </li> </ul><br/>ApplyAction:  The pending maintenance action to apply to this resource.<br/>ReplicationInstanceArn:  The Amazon Resource Name (ARN) of the AWS DMS resource that the pending maintenance action applies to.<br/>
        :return: ResourcePendingMaintenanceActions:  The AWS DMS resource that the pending maintenance action will be applied to.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingMaintenanceActionDetails</i> Detailed information about the pending maintenance action.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceIdentifier</i> The Amazon Resource Name (ARN) of the DMS resource that the pending maintenance action applies to. For information about creating an ARN, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Introduction.AWS.ARN.html"> Constructing an Amazon Resource Name (ARN) for AWS DMS</a> in the DMS documentation.<br/>        """
        pass

    def cancel_replication_task_assessment_run(self, ReplicationTaskAssessmentRunArn: str) -> CancelReplicationTaskAssessmentRunResponse:
        r"""Cancels a single premigration assessment run. This operation prevents any individual assessments from running if they haven't started running. It also attempts to cancel any individual assessments that are currently running.

        :param self:
        :param ReplicationTaskAssessmentRunArn:  Amazon Resource Name (ARN) of the premigration assessment run to be canceled.<br/>
        :return: ReplicationTaskAssessmentRun:  The <code>ReplicationTaskAssessmentRun</code> object for the canceled assessment run.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssessmentRunName</i> Unique name of the assessment run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResultKmsKeyArn</i> ARN of the AWS KMS encryption key used to encrypt the assessment run results.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResultEncryptionMode</i> Encryption mode used to encrypt the assessment run results.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResultLocationFolder</i> Folder in an Amazon S3 bucket where AWS DMS stores the results of this assessment run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResultLocationBucket</i> Amazon S3 bucket where AWS DMS stores the results of this assessment run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceAccessRoleArn</i> ARN of the service role used to start the assessment run using the <code>StartReplicationTaskAssessmentRun</code> operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastFailureMessage</i> Last message generated by an individual assessment failure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssessmentProgress</i> Indication of the completion progress for the individual assessments specified to run.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AssessmentProgress</b>: Indication of the completion progress for the individual assessments specified to run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationTaskAssessmentRunCreationDate</i> Date on which the assessment run was created using the <code>StartReplicationTaskAssessmentRun</code> operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Assessment run status.  This status can have one of the following values: <ul> <li>  <code>"cancelling"</code> – The assessment run was canceled by the <code>CancelReplicationTaskAssessmentRun</code> operation. </li> <li>  <code>"deleting"</code> – The assessment run was deleted by the <code>DeleteReplicationTaskAssessmentRun</code> operation. </li> <li>  <code>"failed"</code> – At least one individual assessment completed with a <code>failed</code> status. </li> <li>  <code>"error-provisioning"</code> – An internal error occurred while resources were provisioned (during <code>provisioning</code> status). </li> <li>  <code>"error-executing"</code> – An internal error occurred while individual assessments ran (during <code>running</code> status). </li> <li>  <code>"invalid state"</code> – The assessment run is in an unknown state. </li> <li>  <code>"passed"</code> – All individual assessments have completed, and none has a <code>failed</code> status. </li> <li>  <code>"provisioning"</code> – Resources required to run individual assessments are being provisioned. </li> <li>  <code>"running"</code> – Individual assessments are being run. </li> <li>  <code>"starting"</code> – The assessment run is starting, but resources are not yet being provisioned for individual assessments. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationTaskArn</i> ARN of the migration task associated with this premigration assessment run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationTaskAssessmentRunArn</i> Amazon Resource Name (ARN) of this assessment run.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IndividualAssessmentCompletedCount</i> The number of individual assessments that have completed, successfully or not.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IndividualAssessmentCount</i> The number of individual assessments that are specified to run.<br/>        """
        pass

    def create_endpoint(self, EngineName: str, EndpointType: str, EndpointIdentifier: str, Username: str=None, Password: str=None, ServerName: str=None, Port: int=None, DatabaseName: str=None, ExtraConnectionAttributes: str=None, KmsKeyId: str=None, Tags: List[Tag]=None, CertificateArn: str=None, SslMode: str=None, ServiceAccessRoleArn: str=None, ExternalTableDefinition: str=None, DynamoDbSettings: DynamoDbSettings=None, S3Settings: S3Settings=None, DmsTransferSettings: DmsTransferSettings=None, MongoDbSettings: MongoDbSettings=None, KinesisSettings: KinesisSettings=None, KafkaSettings: KafkaSettings=None, ElasticsearchSettings: ElasticsearchSettings=None, NeptuneSettings: NeptuneSettings=None, RedshiftSettings: RedshiftSettings=None, PostgreSQLSettings: PostgreSQLSettings=None, MySQLSettings: MySQLSettings=None, OracleSettings: OracleSettings=None, SybaseSettings: SybaseSettings=None, MicrosoftSQLServerSettings: MicrosoftSQLServerSettings=None, IBMDb2Settings: IBMDb2Settings=None, ResourceIdentifier: str=None, DocDbSettings: DocDbSettings=None) -> CreateEndpointResponse:
        r"""Creates an endpoint using the provided settings.

        :param self:
        :param DocDbSettings:  Provides information that defines a DocumentDB endpoint.:<br/>ResourceIdentifier:  A friendly name for the resource identifier at the end of the <code>EndpointArn</code> response parameter that is returned in the created <code>Endpoint</code> object. The value for this parameter can have up to 31 characters. It can contain only ASCII letters, digits, and hyphen ('-'). Also, it can't end with a hyphen or contain two consecutive hyphens, and can only begin with a letter, such as <code>Example-App-ARN1</code>. For example, this value might result in the <code>EndpointArn</code> value <code>arn:aws:dms:eu-west-1:012345678901:rep:Example-App-ARN1</code>. If you don't specify a <code>ResourceIdentifier</code> value, AWS DMS generates a default identifier value for the end of <code>EndpointArn</code>.<br/>IBMDb2Settings:  Settings in JSON format for the source IBM Db2 LUW endpoint. For information about other available settings, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.DB2.html">Extra connection attributes when using Db2 LUW as a source for AWS DMS</a> in the <i>AWS Database Migration Service User Guide.</i> :<br/>MicrosoftSQLServerSettings:  Settings in JSON format for the source and target Microsoft SQL Server endpoint. For information about other available settings, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.SQLServer.html">Extra connection attributes when using SQL Server as a source for AWS DMS</a> and <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.SQLServer.html"> Extra connection attributes when using SQL Server as a target for AWS DMS</a> in the <i>AWS Database Migration Service User Guide.</i> :<br/>SybaseSettings:  Settings in JSON format for the source and target SAP ASE endpoint. For information about other available settings, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.SAP.html">Extra connection attributes when using SAP ASE as a source for AWS DMS</a> and <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.SAP.html">Extra connection attributes when using SAP ASE as a target for AWS DMS</a> in the <i>AWS Database Migration Service User Guide.</i> :<br/>OracleSettings:  Settings in JSON format for the source and target Oracle endpoint. For information about other available settings, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html">Extra connection attributes when using Oracle as a source for AWS DMS</a> and <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Oracle.html"> Extra connection attributes when using Oracle as a target for AWS DMS</a> in the <i>AWS Database Migration Service User Guide.</i> :<br/>MySQLSettings:  Settings in JSON format for the source and target MySQL endpoint. For information about other available settings, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.MySQL.html">Extra connection attributes when using MySQL as a source for AWS DMS</a> and <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.MySQL.html">Extra connection attributes when using a MySQL-compatible database as a target for AWS DMS</a> in the <i>AWS Database Migration Service User Guide.</i> :<br/>PostgreSQLSettings:  Settings in JSON format for the source and target PostgreSQL endpoint. For information about other available settings, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.PostgreSQL.html">Extra connection attributes when using PostgreSQL as a source for AWS DMS</a> and <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html"> Extra connection attributes when using PostgreSQL as a target for AWS DMS</a> in the <i>AWS Database Migration Service User Guide.</i> :<br/>RedshiftSettings:  Provides information that defines an Amazon Redshift endpoint.:<br/>NeptuneSettings:  Settings in JSON format for the target Amazon Neptune endpoint. For more information about the available settings, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Neptune.html#CHAP_Target.Neptune.EndpointSettings">Specifying Endpoint Settings for Amazon Neptune as a Target</a> in the <i>AWS Database Migration Service User Guide.</i> :<br/>ElasticsearchSettings:  Settings in JSON format for the target Elasticsearch endpoint. For more information about the available settings, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Elasticsearch.html#CHAP_Target.Elasticsearch.Configuration">Extra Connection Attributes When Using Elasticsearch as a Target for AWS DMS</a> in the <i>AWS Database Migration Service User Guide</i>.:<br/>KafkaSettings:  Settings in JSON format for the target Apache Kafka endpoint. For more information about the available settings, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Kafka.html">Using Apache Kafka as a Target for AWS Database Migration Service</a> in the <i>AWS Database Migration Service User Guide.</i> :<br/>KinesisSettings:  Settings in JSON format for the target endpoint for Amazon Kinesis Data Streams. For more information about the available settings, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Kinesis.html">Using Amazon Kinesis Data Streams as a Target for AWS Database Migration Service</a> in the <i>AWS Database Migration Service User Guide.</i> :<br/>MongoDbSettings:  Settings in JSON format for the source MongoDB endpoint. For more information about the available settings, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.MongoDB.html#CHAP_Source.MongoDB.Configuration">Using MongoDB as a Target for AWS Database Migration Service</a> in the <i>AWS Database Migration Service User Guide.</i> :<br/>DmsTransferSettings:  The settings in JSON format for the DMS transfer type of source endpoint.  Possible settings include the following: <ul> <li>  <code>ServiceAccessRoleArn</code> - The IAM role that has permission to access the Amazon S3 bucket. </li> <li>  <code>BucketName</code> - The name of the S3 bucket to use. </li> <li>  <code>CompressionType</code> - An optional parameter to use GZIP to compress the target files. To use GZIP, set this value to <code>NONE</code> (the default). To keep the files uncompressed, don't use this value. </li> </ul> Shorthand syntax for these settings is as follows: <code>ServiceAccessRoleArn=string,BucketName=string,CompressionType=string</code>  JSON syntax for these settings is as follows: <code>{ "ServiceAccessRoleArn": "string", "BucketName": "string", "CompressionType": "none"|"gzip" } </code> :<br/>S3Settings:  Settings in JSON format for the target Amazon S3 endpoint. For more information about the available settings, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html#CHAP_Target.S3.Configuring">Extra Connection Attributes When Using Amazon S3 as a Target for AWS DMS</a> in the <i>AWS Database Migration Service User Guide.</i> :<br/>DynamoDbSettings:  Settings in JSON format for the target Amazon DynamoDB endpoint. For information about other available settings, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.DynamoDB.html">Using Object Mapping to Migrate Data to DynamoDB</a> in the <i>AWS Database Migration Service User Guide.</i> :<br/>ExternalTableDefinition:  The external table definition. <br/>ServiceAccessRoleArn:   The Amazon Resource Name (ARN) for the service access role that you want to use to create the endpoint. <br/>SslMode:  The Secure Sockets Layer (SSL) mode to use for the SSL connection. The default is <code>none</code> <br/>CertificateArn:  The Amazon Resource Name (ARN) for the certificate.<br/>Tags:  One or more tags to be assigned to the endpoint.<br/>KmsKeyId:  An AWS KMS key identifier that is used to encrypt the connection parameters for the endpoint. If you don't specify a value for the <code>KmsKeyId</code> parameter, then AWS DMS uses your default encryption key. AWS KMS creates the default encryption key for your AWS account. Your AWS account has a different default encryption key for each AWS Region.<br/>ExtraConnectionAttributes:  Additional attributes associated with the connection. Each attribute is specified as a name-value pair associated by an equal sign (=). Multiple attributes are separated by a semicolon (;) with no additional white space. For information on the attributes available for connecting your source or target endpoint, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Endpoints.html">Working with AWS DMS Endpoints</a> in the <i>AWS Database Migration Service User Guide.</i> <br/>DatabaseName:  The name of the endpoint database.<br/>Port:  The port used by the endpoint database.<br/>ServerName:  The name of the server where the endpoint database resides.<br/>Password:  The password to be used to log in to the endpoint database.<br/>Username:  The user name to be used to log in to the endpoint database.<br/>EngineName:  The type of engine for the endpoint. Valid values, depending on the <code>EndpointType</code> value, include <code>"mysql"</code>, <code>"oracle"</code>, <code>"postgres"</code>, <code>"mariadb"</code>, <code>"aurora"</code>, <code>"aurora-postgresql"</code>, <code>"redshift"</code>, <code>"s3"</code>, <code>"db2"</code>, <code>"azuredb"</code>, <code>"sybase"</code>, <code>"dynamodb"</code>, <code>"mongodb"</code>, <code>"kinesis"</code>, <code>"kafka"</code>, <code>"elasticsearch"</code>, <code>"docdb"</code>, <code>"sqlserver"</code>, and <code>"neptune"</code>.<br/>EndpointType:  The type of endpoint. Valid values are <code>source</code> and <code>target</code>.<br/>EndpointIdentifier:  The database endpoint identifier. Identifiers must begin with a letter and must contain only ASCII letters, digits, and hyphens. They can't end with a hyphen, or contain two consecutive hyphens.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceAccessRoleArn</i>  The Amazon Resource Name (ARN) used by the service access IAM role. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CdcPath</i> Specifies the folder path of CDC files. For an S3 source, this setting is required if a task captures change data; otherwise, it's optional. If <code>CdcPath</code> is set, AWS DMS reads CDC files from this path and replicates the data changes to the target endpoint. For an S3 target if you set <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_S3Settings.html#DMS-Type-S3Settings-PreserveTransactions"> <code>PreserveTransactions</code> </a> to <code>true</code>, AWS DMS verifies that you have set this parameter to a folder path on your S3 target where AWS DMS can save the transaction order for the CDC load. AWS DMS creates this CDC folder path in either your S3 target working directory or the S3 target location specified by <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_S3Settings.html#DMS-Type-S3Settings-BucketFolder"> <code>BucketFolder</code> </a> and <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_S3Settings.html#DMS-Type-S3Settings-BucketName"> <code>BucketName</code> </a>. For example, if you specify <code>CdcPath</code> as <code>MyChangedData</code>, and you specify <code>BucketName</code> as <code>MyTargetBucket</code> but do not specify <code>BucketFolder</code>, AWS DMS creates the CDC folder path following: <code>MyTargetBucket/MyChangedData</code>. If you specify the same <code>CdcPath</code>, and you specify <code>BucketName</code> as <code>MyTargetBucket</code> and <code>BucketFolder</code> as <code>MyTargetData</code>, AWS DMS creates the CDC folder path following: <code>MyTargetBucket/MyTargetData/MyChangedData</code>. For more information on CDC including transaction order on an S3 target, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html#CHAP_Target.S3.EndpointSettings.CdcPath">Capturing data changes (CDC) including transaction order on the S3 target</a>. <note> This setting is supported in AWS DMS versions 3.4.2 and later. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreserveTransactions</i> If set to <code>true</code>, AWS DMS saves the transaction order for a change data capture (CDC) load on the Amazon S3 target specified by <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_S3Settings.html#DMS-Type-S3Settings-CdcPath"> <code>CdcPath</code> </a>. For more information, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html#CHAP_Target.S3.EndpointSettings.CdcPath">Capturing data changes (CDC) including transaction order on the S3 target</a>. <note> This setting is supported in AWS DMS versions 3.4.2 and later. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CsvNoSupValue</i> This setting only applies if your Amazon S3 output files during a change data capture (CDC) load are written in .csv format. If <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_S3Settings.html#DMS-Type-S3Settings-UseCsvNoSupValue"> <code>UseCsvNoSupValue</code> </a> is set to true, specify a string value that you want AWS DMS to use for all columns not included in the supplemental log. If you do not specify a string value, AWS DMS uses the null value for these columns regardless of the <code>UseCsvNoSupValue</code> setting. <note> This setting is supported in AWS DMS versions 3.4.1 and later. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UseCsvNoSupValue</i> This setting applies if the S3 output files during a change data capture (CDC) load are written in .csv format. If set to <code>true</code> for columns not included in the supplemental log, AWS DMS uses the value specified by <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_S3Settings.html#DMS-Type-S3Settings-CsvNoSupValue"> <code>CsvNoSupValue</code> </a>. If not set or set to <code>false</code>, AWS DMS uses the null value for these columns. <note> This setting is supported in AWS DMS versions 3.4.1 and later. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatePartitionDelimiter</i> Specifies a date separating delimiter to use during folder partitioning. The default value is <code>SLASH</code>. Use this parameter when <code>DatePartitionedEnabled</code> is set to <code>true</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatePartitionSequence</i> Identifies the sequence of the date format to use during folder partitioning. The default value is <code>YYYYMMDD</code>. Use this parameter when <code>DatePartitionedEnabled</code> is set to <code>true</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatePartitionEnabled</i> When set to <code>true</code>, this parameter partitions S3 bucket folders based on transaction commit dates. The default value is <code>false</code>. For more information about date-based folder partitoning, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html#CHAP_Target.S3.DatePartitioning">Using date-based folder partitioning</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CdcInsertsAndUpdates</i> A value that enables a change data capture (CDC) load to write INSERT and UPDATE operations to .csv or .parquet (columnar storage) output files. The default setting is <code>false</code>, but when <code>CdcInsertsAndUpdates</code> is set to <code>true</code> or <code>y</code>, only INSERTs and UPDATEs from the source database are migrated to the .csv or .parquet file.  For .csv file format only, how these INSERTs and UPDATEs are recorded depends on the value of the <code>IncludeOpForFullLoad</code> parameter. If <code>IncludeOpForFullLoad</code> is set to <code>true</code>, the first field of every CDC record is set to either <code>I</code> or <code>U</code> to indicate INSERT and UPDATE operations at the source. But if <code>IncludeOpForFullLoad</code> is set to <code>false</code>, CDC records are written without an indication of INSERT or UPDATE operations at the source. For more information about how these settings work together, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html#CHAP_Target.S3.Configuring.InsertOps">Indicating Source DB Operations in Migrated S3 Data</a> in the <i>AWS Database Migration Service User Guide.</i>. <note> AWS DMS supports the use of the <code>CdcInsertsAndUpdates</code> parameter in versions 3.3.1 and later.  <code>CdcInsertsOnly</code> and <code>CdcInsertsAndUpdates</code> can't both be set to <code>true</code> for the same endpoint. Set either <code>CdcInsertsOnly</code> or <code>CdcInsertsAndUpdates</code> to <code>true</code> for the same endpoint, but not both. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ParquetTimestampInMillisecond</i> A value that specifies the precision of any <code>TIMESTAMP</code> column values that are written to an Amazon S3 object file in .parquet format. <note> AWS DMS supports the <code>ParquetTimestampInMillisecond</code> parameter in versions 3.1.4 and later. </note> When <code>ParquetTimestampInMillisecond</code> is set to <code>true</code> or <code>y</code>, AWS DMS writes all <code>TIMESTAMP</code> columns in a .parquet formatted file with millisecond precision. Otherwise, DMS writes them with microsecond precision. Currently, Amazon Athena and AWS Glue can handle only millisecond precision for <code>TIMESTAMP</code> values. Set this parameter to <code>true</code> for S3 endpoint object files that are .parquet formatted only if you plan to query or process the data with Athena or AWS Glue. <note> AWS DMS writes any <code>TIMESTAMP</code> column values written to an S3 file in .csv format with microsecond precision. Setting <code>ParquetTimestampInMillisecond</code> has no effect on the string format of the timestamp column value that is inserted by setting the <code>TimestampColumnName</code> parameter. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TimestampColumnName</i> A value that when nonblank causes AWS DMS to add a column with timestamp information to the endpoint data for an Amazon S3 target. <note> AWS DMS supports the <code>TimestampColumnName</code> parameter in versions 3.1.4 and later. </note> DMS includes an additional <code>STRING</code> column in the .csv or .parquet object files of your migrated data when you set <code>TimestampColumnName</code> to a nonblank value. For a full load, each row of this timestamp column contains a timestamp for when the data was transferred from the source to the target by DMS.  For a change data capture (CDC) load, each row of the timestamp column contains the timestamp for the commit of that row in the source database. The string format for this timestamp column value is <code>yyyy-MM-dd HH:mm:ss.SSSSSS</code>. By default, the precision of this value is in microseconds. For a CDC load, the rounding of the precision depends on the commit timestamp supported by DMS for the source database. When the <code>AddColumnName</code> parameter is set to <code>true</code>, DMS also includes a name for the timestamp column that you set with <code>TimestampColumnName</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CdcInsertsOnly</i> A value that enables a change data capture (CDC) load to write only INSERT operations to .csv or columnar storage (.parquet) output files. By default (the <code>false</code> setting), the first field in a .csv or .parquet record contains the letter I (INSERT), U (UPDATE), or D (DELETE). These values indicate whether the row was inserted, updated, or deleted at the source database for a CDC load to the target. If <code>CdcInsertsOnly</code> is set to <code>true</code> or <code>y</code>, only INSERTs from the source database are migrated to the .csv or .parquet file. For .csv format only, how these INSERTs are recorded depends on the value of <code>IncludeOpForFullLoad</code>. If <code>IncludeOpForFullLoad</code> is set to <code>true</code>, the first field of every CDC record is set to I to indicate the INSERT operation at the source. If <code>IncludeOpForFullLoad</code> is set to <code>false</code>, every CDC record is written without a first field to indicate the INSERT operation at the source. For more information about how these settings work together, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html#CHAP_Target.S3.Configuring.InsertOps">Indicating Source DB Operations in Migrated S3 Data</a> in the <i>AWS Database Migration Service User Guide.</i>. <note> AWS DMS supports the interaction described preceding between the <code>CdcInsertsOnly</code> and <code>IncludeOpForFullLoad</code> parameters in versions 3.1.4 and later.   <code>CdcInsertsOnly</code> and <code>CdcInsertsAndUpdates</code> can't both be set to <code>true</code> for the same endpoint. Set either <code>CdcInsertsOnly</code> or <code>CdcInsertsAndUpdates</code> to <code>true</code> for the same endpoint, but not both. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeOpForFullLoad</i> A value that enables a full load to write INSERT operations to the comma-separated value (.csv) output files only to indicate how the rows were added to the source database. <note> AWS DMS supports the <code>IncludeOpForFullLoad</code> parameter in versions 3.1.4 and later. </note> For full load, records can only be inserted. By default (the <code>false</code> setting), no information is recorded in these output files for a full load to indicate that the rows were inserted at the source database. If <code>IncludeOpForFullLoad</code> is set to <code>true</code> or <code>y</code>, the INSERT is recorded as an I annotation in the first field of the .csv file. This allows the format of your target records from a full load to be consistent with the target records from a CDC load. <note> This setting works together with the <code>CdcInsertsOnly</code> and the <code>CdcInsertsAndUpdates</code> parameters for output to .csv files only. For more information about how these settings work together, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html#CHAP_Target.S3.Configuring.InsertOps">Indicating Source DB Operations in Migrated S3 Data</a> in the <i>AWS Database Migration Service User Guide.</i>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableStatistics</i> A value that enables statistics for Parquet pages and row groups. Choose <code>true</code> to enable statistics, <code>false</code> to disable. Statistics include <code>NULL</code>, <code>DISTINCT</code>, <code>MAX</code>, and <code>MIN</code> values. This parameter defaults to <code>true</code>. This value is used for .parquet file format only.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ParquetVersion</i> The version of the Apache Parquet format that you want to use: <code>parquet_1_0</code> (the default) or <code>parquet_2_0</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataPageSize</i> The size of one data page in bytes. This parameter defaults to 1024 * 1024 bytes (1 MiB). This number is used for .parquet file format only. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RowGroupLength</i> The number of rows in a row group. A smaller row group size provides faster reads. But as the number of row groups grows, the slower writes become. This parameter defaults to 10,000 rows. This number is used for .parquet file format only.  If you choose a value larger than the maximum, <code>RowGroupLength</code> is set to the max row group length in bytes (64 * 1024 * 1024). <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DictPageSizeLimit</i> The maximum size of an encoded dictionary page of a column. If the dictionary page exceeds this, this column is stored using an encoding type of <code>PLAIN</code>. This parameter defaults to 1024 * 1024 bytes (1 MiB), the maximum size of a dictionary page before it reverts to <code>PLAIN</code> encoding. This size is used for .parquet file format only. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EncodingType</i> The type of encoding you are using:  <ul> <li>  <code>RLE_DICTIONARY</code> uses a combination of bit-packing and run-length encoding to store repeated values more efficiently. This is the default. </li> <li>  <code>PLAIN</code> doesn't use encoding at all. Values are stored as they are. </li> <li>  <code>PLAIN_DICTIONARY</code> builds a dictionary of the values encountered in a given column. The dictionary is stored in a dictionary page for each column chunk. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataFormat</i> The format of the data that you want to use for output. You can choose one of the following:  <ul> <li>  <code>csv</code> : This is a row-based file format with comma-separated values (.csv).  </li> <li>  <code>parquet</code> : Apache Parquet (.parquet) is a columnar storage file format that features efficient compression and provides faster query response.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerSideEncryptionKmsKeyId</i> If you are using <code>SSE_KMS</code> for the <code>EncryptionMode</code>, provide the AWS KMS key ID. The key that you use needs an attached policy that enables AWS Identity and Access Management (IAM) user permissions and allows use of the key. Here is a CLI example: <code>aws dms create-endpoint --endpoint-identifier <i>value</i> --endpoint-type target --engine-name s3 --s3-settings ServiceAccessRoleArn=<i>value</i>,BucketFolder=<i>value</i>,BucketName=<i>value</i>,EncryptionMode=SSE_KMS,ServerSideEncryptionKmsKeyId=<i>value</i> </code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EncryptionMode</i> The type of server-side encryption that you want to use for your data. This encryption type is part of the endpoint settings or the extra connections attributes for Amazon S3. You can choose either <code>SSE_S3</code> (the default) or <code>SSE_KMS</code>.  <note> For the <code>ModifyEndpoint</code> operation, you can change the existing value of the <code>EncryptionMode</code> parameter from <code>SSE_KMS</code> to <code>SSE_S3</code>. But you can’t change the existing value from <code>SSE_S3</code> to <code>SSE_KMS</code>. </note> To use <code>SSE_S3</code>, you need an AWS Identity and Access Management (IAM) role with permission to allow <code>"arn:aws:s3:::dms-*"</code> to use the following actions: <ul> <li>  <code>s3:CreateBucket</code>  </li> <li>  <code>s3:ListBucket</code>  </li> <li>  <code>s3:DeleteBucket</code>  </li> <li>  <code>s3:GetBucketLocation</code>  </li> <li>  <code>s3:GetObject</code>  </li> <li>  <code>s3:PutObject</code>  </li> <li>  <code>s3:DeleteObject</code>  </li> <li>  <code>s3:GetObjectVersion</code>  </li> <li>  <code>s3:GetBucketPolicy</code>  </li> <li>  <code>s3:PutBucketPolicy</code>  </li> <li>  <code>s3:DeleteBucketPolicy</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CompressionType</i> An optional parameter to use GZIP to compress the target files. Set to GZIP to compress the target files. Either set this parameter to NONE (the default) or don't use it to leave the files uncompressed. This parameter applies to both .csv and .parquet file formats. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BucketName</i>  The name of the S3 bucket. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BucketFolder</i>  An optional parameter to set a folder name in the S3 bucket. If provided, tables are created in the path <code> <i>bucketFolder</i>/<i>schema_name</i>/<i>table_name</i>/</code>. If this parameter isn't specified, then the path used is <code> <i>schema_name</i>/<i>table_name</i>/</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CsvDelimiter</i>  The delimiter used to separate columns in the .csv file for both source and target. The default is a comma. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CsvRowDelimiter</i>  The delimiter used to separate rows in the .csv file for both source and target. The default is a carriage return (<code>\n</code>). <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExternalTableDefinition</i>  Specifies how tables are defined in the S3 source files only. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceAccessRoleArn</i>  The Amazon Resource Name (ARN) used by the service access IAM role. It is a required parameter that enables DMS to write and read objects from an S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BucketName</i>  The name of the S3 bucket to use. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceAccessRoleArn</i>  The IAM role that has permission to access the Amazon S3 bucket. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerSecretId</i> The full ARN, partial ARN, or friendly name of the <code>SecretsManagerSecret</code> that contains the MongoDB endpoint connection details.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerAccessRoleArn</i> The full Amazon Resource Name (ARN) of the IAM role that specifies AWS DMS as the trusted entity and grants the required permissions to access the value in <code>SecretsManagerSecret</code>. <code>SecretsManagerSecret</code> has the value of the AWS Secrets Manager secret that allows access to the MongoDB endpoint. <note> You can specify one of two sets of values for these permissions. You can specify the values for this setting and <code>SecretsManagerSecretId</code>. Or you can specify clear-text values for <code>UserName</code>, <code>Password</code>, <code>ServerName</code>, and <code>Port</code>. You can't specify both. For more information on creating this <code>SecretsManagerSecret</code> and the <code>SecretsManagerAccessRoleArn</code> and <code>SecretsManagerSecretId</code> required to access it, see <a href="https://docs.aws.amazon.com/https:/docs.aws.amazon.com/dms/latest/userguide/CHAP_Security.html#security-iam-secretsmanager">Using secrets to access AWS Database Migration Service resources</a> in the <i>AWS Database Migration Service User Guide</i>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The AWS KMS key identifier that is used to encrypt the content on the replication instance. If you don't specify a value for the <code>KmsKeyId</code> parameter, then AWS DMS uses your default encryption key. AWS KMS creates the default encryption key for your AWS account. Your AWS account has a different default encryption key for each AWS Region.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AuthSource</i>  The MongoDB database name. This setting isn't used when <code>AuthType</code> is set to <code>"no"</code>.  The default is <code>"admin"</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DocsToInvestigate</i>  Indicates the number of documents to preview to determine the document organization. Use this setting when <code>NestingLevel</code> is set to <code>"one"</code>.  Must be a positive value greater than <code>0</code>. Default value is <code>1000</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExtractDocId</i>  Specifies the document ID. Use this setting when <code>NestingLevel</code> is set to <code>"none"</code>.  Default value is <code>"false"</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NestingLevel</i>  Specifies either document or table mode.  Default value is <code>"none"</code>. Specify <code>"none"</code> to use document mode. Specify <code>"one"</code> to use table mode.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AuthMechanism</i>  The authentication mechanism you use to access the MongoDB source endpoint. For the default value, in MongoDB version 2.x, <code>"default"</code> is <code>"mongodb_cr"</code>. For MongoDB version 3.x or later, <code>"default"</code> is <code>"scram_sha_1"</code>. This setting isn't used when <code>AuthType</code> is set to <code>"no"</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AuthType</i>  The authentication type you use to access the MongoDB source endpoint. When when set to <code>"no"</code>, user name and password parameters are not used and can be empty. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i>  The database name on the MongoDB source endpoint. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i>  The port value for the MongoDB source endpoint. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerName</i>  The name of the server on the MongoDB source endpoint. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Password</i>  The password for the user account you use to access the MongoDB source endpoint. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Username</i> The user name you use to access the MongoDB source endpoint. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeNullAndEmpty</i> Include NULL and empty columns for records migrated to the endpoint. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeControlDetails</i> Shows detailed control information for table definition, column definition, and table and column changes in the Kinesis message output. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeTableAlterOperations</i> Includes any data definition language (DDL) operations that change the table in the control data, such as <code>rename-table</code>, <code>drop-table</code>, <code>add-column</code>, <code>drop-column</code>, and <code>rename-column</code>. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PartitionIncludeSchemaTable</i> Prefixes schema and table names to partition values, when the partition type is <code>primary-key-type</code>. Doing this increases data distribution among Kinesis shards. For example, suppose that a SysBench schema has thousands of tables and each table has only limited range for a primary key. In this case, the same primary key is sent from thousands of tables to the same shard, which causes throttling. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludePartitionValue</i> Shows the partition value within the Kinesis message output, unless the partition type is <code>schema-table-type</code>. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeTransactionDetails</i> Provides detailed transaction information from the source database. This information includes a commit timestamp, a log position, and values for <code>transaction_id</code>, previous <code>transaction_id</code>, and <code>transaction_record_id</code> (the record offset within a transaction). The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceAccessRoleArn</i> The Amazon Resource Name (ARN) for the AWS Identity and Access Management (IAM) role that AWS DMS uses to write to the Kinesis data stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MessageFormat</i> The output format for the records created on the endpoint. The message format is <code>JSON</code> (default) or <code>JSON_UNFORMATTED</code> (a single line with no tab).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamArn</i> The Amazon Resource Name (ARN) for the Amazon Kinesis Data Streams endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SaslPassword</i> The secure password you created when you first set up your MSK cluster to validate a client identity and make an encrypted connection between server and client using SASL-SSL authentication.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SaslUsername</i>  The secure username you created when you first set up your MSK cluster to validate a client identity and make an encrypted connection between server and client using SASL-SSL authentication.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SslCaCertificateArn</i>  The Amazon Resource Name (ARN) for the private Certification Authority (CA) cert that AWS DMS uses to securely connect to your Kafka target endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SslClientKeyPassword</i>  The password for the client private key used to securely connect to a Kafka target endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SslClientKeyArn</i> The Amazon Resource Name (ARN) for the client private key used to securely connect to a Kafka target endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SslClientCertificateArn</i> The Amazon Resource Name (ARN) of the client certificate used to securely connect to a Kafka target endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityProtocol</i> Set secure connection to a Kafka target endpoint using Transport Layer Security (TLS). Options include <code>ssl-encryption</code>, <code>ssl-authentication</code>, and <code>sasl-ssl</code>. <code>sasl-ssl</code> requires <code>SaslUsername</code> and <code>SaslPassword</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeNullAndEmpty</i> Include NULL and empty columns for records migrated to the endpoint. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MessageMaxBytes</i> The maximum size in bytes for records created on the endpoint The default is 1,000,000.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeControlDetails</i> Shows detailed control information for table definition, column definition, and table and column changes in the Kafka message output. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeTableAlterOperations</i> Includes any data definition language (DDL) operations that change the table in the control data, such as <code>rename-table</code>, <code>drop-table</code>, <code>add-column</code>, <code>drop-column</code>, and <code>rename-column</code>. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PartitionIncludeSchemaTable</i> Prefixes schema and table names to partition values, when the partition type is <code>primary-key-type</code>. Doing this increases data distribution among Kafka partitions. For example, suppose that a SysBench schema has thousands of tables and each table has only limited range for a primary key. In this case, the same primary key is sent from thousands of tables to the same partition, which causes throttling. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludePartitionValue</i> Shows the partition value within the Kafka message output, unless the partition type is <code>schema-table-type</code>. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeTransactionDetails</i> Provides detailed transaction information from the source database. This information includes a commit timestamp, a log position, and values for <code>transaction_id</code>, previous <code>transaction_id</code>, and <code>transaction_record_id</code> (the record offset within a transaction). The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MessageFormat</i> The output format for the records created on the endpoint. The message format is <code>JSON</code> (default) or <code>JSON_UNFORMATTED</code> (a single line with no tab).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Topic</i> The topic to which you migrate the data. If you don't specify a topic, AWS DMS specifies <code>"kafka-default-topic"</code> as the migration topic.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Broker</i> A comma-separated list of one or more broker locations in your Kafka cluster that host your Kafka instance. Specify each broker location in the form <code> <i>broker-hostname-or-ip</i>:<i>port</i> </code>. For example, <code>"ec2-12-345-678-901.compute-1.amazonaws.com:2345"</code>. For more information and examples of specifying a list of broker locations, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Kafka.html">Using Apache Kafka as a target for AWS Database Migration Service</a> in the <i>AWS Data Migration Service User Guide</i>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorRetryDuration</i> The maximum number of seconds for which DMS retries failed API requests to the Elasticsearch cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FullLoadErrorPercentage</i> The maximum percentage of records that can fail to be written before a full load operation stops. To avoid early failure, this counter is only effective after 1000 records are transferred. Elasticsearch also has the concept of error monitoring during the last 10 minutes of an Observation Window. If transfer of all records fail in the last 10 minutes, the full load operation stops. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointUri</i> The endpoint for the Elasticsearch cluster. AWS DMS uses HTTPS if a transport protocol (http/https) is not specified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceAccessRoleArn</i> The Amazon Resource Name (ARN) used by service to access the IAM role.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IamAuthEnabled</i> If you want AWS Identity and Access Management (IAM) authorization enabled for this endpoint, set this parameter to <code>true</code>. Then attach the appropriate IAM policy document to your service role specified by <code>ServiceAccessRoleArn</code>. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxRetryCount</i> The number of times for AWS DMS to retry a bulk load of migrated graph data to the Neptune target database before raising an error. The default is 5.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxFileSize</i> The maximum size in kilobytes of migrated graph data stored in a .csv file before AWS DMS bulk-loads the data to the Neptune target database. The default is 1,048,576 KB. If the bulk load is successful, AWS DMS clears the bucket, ready to store the next batch of migrated graph data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorRetryDuration</i> The number of milliseconds for AWS DMS to wait to retry a bulk-load of migrated graph data to the Neptune target database before raising an error. The default is 250.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3BucketFolder</i> A folder path where you want AWS DMS to store migrated graph data in the S3 bucket specified by <code>S3BucketName</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3BucketName</i> The name of the Amazon S3 bucket where AWS DMS can temporarily store migrated graph data in .csv files before bulk-loading it to the Neptune target database. AWS DMS maps the SQL source data to graph data before storing it in these .csv files.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceAccessRoleArn</i> The Amazon Resource Name (ARN) of the service role that you created for the Neptune target endpoint. For more information, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Neptune.html#CHAP_Target.Neptune.ServiceRole">Creating an IAM Service Role for Accessing Amazon Neptune as a Target</a> in the <i>AWS Database Migration Service User Guide. </i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerSecretId</i> The full ARN, partial ARN, or friendly name of the <code>SecretsManagerSecret</code> that contains the Amazon Redshift endpoint connection details.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerAccessRoleArn</i> The full Amazon Resource Name (ARN) of the IAM role that specifies AWS DMS as the trusted entity and grants the required permissions to access the value in <code>SecretsManagerSecret</code>. <code>SecretsManagerSecret</code> has the value of the AWS Secrets Manager secret that allows access to the Amazon Redshift endpoint. <note> You can specify one of two sets of values for these permissions. You can specify the values for this setting and <code>SecretsManagerSecretId</code>. Or you can specify clear-text values for <code>UserName</code>, <code>Password</code>, <code>ServerName</code>, and <code>Port</code>. You can't specify both. For more information on creating this <code>SecretsManagerSecret</code> and the <code>SecretsManagerAccessRoleArn</code> and <code>SecretsManagerSecretId</code> required to access it, see <a href="https://docs.aws.amazon.com/https:/docs.aws.amazon.com/dms/latest/userguide/CHAP_Security.html#security-iam-secretsmanager">Using secrets to access AWS Database Migration Service resources</a> in the <i>AWS Database Migration Service User Guide</i>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WriteBufferSize</i> The size (in KB) of the in-memory file write buffer used when generating .csv files on the local disk at the DMS replication instance. The default value is 1000 (buffer size is 1000KB).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Username</i> An Amazon Redshift user name for a registered user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TruncateColumns</i> A value that specifies to truncate data in columns to the appropriate number of characters, so that the data fits in the column. This parameter applies only to columns with a VARCHAR or CHAR data type, and rows with a size of 4 MB or less. Choose <code>true</code> to truncate data. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TrimBlanks</i> A value that specifies to remove the trailing white space characters from a VARCHAR string. This parameter applies only to columns with a VARCHAR data type. Choose <code>true</code> to remove unneeded white space. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TimeFormat</i> The time format that you want to use. Valid values are <code>auto</code> (case-sensitive), <code>'timeformat_string'</code>, <code>'epochsecs'</code>, or <code>'epochmillisecs'</code>. It defaults to 10. Using <code>auto</code> recognizes most strings, even some that aren't supported when you use a time format string.  If your date and time values use formats different from each other, set this parameter to <code>auto</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerSideEncryptionKmsKeyId</i> The AWS KMS key ID. If you are using <code>SSE_KMS</code> for the <code>EncryptionMode</code>, provide this key ID. The key that you use needs an attached policy that enables IAM user permissions and allows use of the key.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceAccessRoleArn</i> The Amazon Resource Name (ARN) of the IAM role that has access to the Amazon Redshift service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerName</i> The name of the Amazon Redshift cluster you are using.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplaceChars</i> A value that specifies to replaces the invalid characters specified in <code>ReplaceInvalidChars</code>, substituting the specified characters instead. The default is <code>"?"</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplaceInvalidChars</i> A list of characters that you want to replace. Use with <code>ReplaceChars</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RemoveQuotes</i> A value that specifies to remove surrounding quotation marks from strings in the incoming data. All characters within the quotation marks, including delimiters, are retained. Choose <code>true</code> to remove quotation marks. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> The port number for Amazon Redshift. The default value is 5439.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Password</i> The password for the user named in the <code>username</code> property.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxFileSize</i> The maximum size (in KB) of any .csv file used to load data on an S3 bucket and transfer data to Amazon Redshift. It defaults to 1048576KB (1 GB).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LoadTimeout</i> The amount of time to wait (in milliseconds) before timing out of operations performed by AWS DMS on a Redshift cluster, such as Redshift COPY, INSERT, DELETE, and UPDATE.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FileTransferUploadStreams</i> The number of threads used to upload a single file. This parameter accepts a value from 1 through 64. It defaults to 10. The number of parallel streams used to upload a single .csv file to an S3 bucket using S3 Multipart Upload. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html">Multipart upload overview</a>.   <code>FileTransferUploadStreams</code> accepts a value from 1 through 64. It defaults to 10.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExplicitIds</i> This setting is only valid for a full-load migration task. Set <code>ExplicitIds</code> to <code>true</code> to have tables with <code>IDENTITY</code> columns override their auto-generated values with explicit values loaded from the source data files used to populate the tables. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EncryptionMode</i> The type of server-side encryption that you want to use for your data. This encryption type is part of the endpoint settings or the extra connections attributes for Amazon S3. You can choose either <code>SSE_S3</code> (the default) or <code>SSE_KMS</code>.  <note> For the <code>ModifyEndpoint</code> operation, you can change the existing value of the <code>EncryptionMode</code> parameter from <code>SSE_KMS</code> to <code>SSE_S3</code>. But you can’t change the existing value from <code>SSE_S3</code> to <code>SSE_KMS</code>. </note> To use <code>SSE_S3</code>, create an AWS Identity and Access Management (IAM) role with a policy that allows <code>"arn:aws:s3:::*"</code> to use the following actions: <code>"s3:PutObject", "s3:ListBucket"</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EmptyAsNull</i> A value that specifies whether AWS DMS should migrate empty CHAR and VARCHAR fields as NULL. A value of <code>true</code> sets empty CHAR and VARCHAR fields to null. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DateFormat</i> The date format that you are using. Valid values are <code>auto</code> (case-sensitive), your date format string enclosed in quotes, or NULL. If this parameter is left unset (NULL), it defaults to a format of 'YYYY-MM-DD'. Using <code>auto</code> recognizes most strings, even some that aren't supported when you use a date format string.  If your date and time values use formats different from each other, set this to <code>auto</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> The name of the Amazon Redshift data warehouse (service) that you are working with.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConnectionTimeout</i> A value that sets the amount of time to wait (in milliseconds) before timing out, beginning from when you initially establish a connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CompUpdate</i> If you set <code>CompUpdate</code> to <code>true</code> Amazon Redshift applies automatic compression if the table is empty. This applies even if the table columns already have encodings other than <code>RAW</code>. If you set <code>CompUpdate</code> to <code>false</code>, automatic compression is disabled and existing column encodings aren't changed. The default is <code>true</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CaseSensitiveNames</i> If Amazon Redshift is configured to support case sensitive schema names, set <code>CaseSensitiveNames</code> to <code>true</code>. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BucketName</i> The name of the intermediate S3 bucket used to store .csv files before uploading data to Redshift.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BucketFolder</i> An S3 folder where the comma-separated-value (.csv) files are stored before being uploaded to the target Redshift cluster.  For full load mode, AWS DMS converts source records into .csv files and loads them to the <i>BucketFolder/TableID</i> path. AWS DMS uses the Redshift <code>COPY</code> command to upload the .csv files to the target table. The files are deleted once the <code>COPY</code> operation has finished. For more information, see <a href="https://docs.aws.amazon.com/redshift/latest/dg/r_COPY.html">COPY</a> in the <i>Amazon Redshift Database Developer Guide</i>. For change-data-capture (CDC) mode, AWS DMS creates a <i>NetChanges</i> table, and loads the .csv files to this <i>BucketFolder/NetChangesTableID</i> path.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AfterConnectScript</i> Code to run after connecting. This parameter should contain the code itself, not the name of a file containing the code.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AcceptAnyDate</i> A value that indicates to allow any date format, including invalid formats such as 00/00/00 00:00:00, to be loaded without generating an error. You can choose <code>true</code> or <code>false</code> (the default). This parameter applies only to TIMESTAMP and DATE columns. Always use ACCEPTANYDATE with the DATEFORMAT parameter. If the date format for the data doesn't match the DATEFORMAT specification, Amazon Redshift inserts a NULL value into that field. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerSecretId</i> The full ARN, partial ARN, or friendly name of the <code>SecretsManagerSecret</code> that contains the PostgreSQL endpoint connection details.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerAccessRoleArn</i> The full Amazon Resource Name (ARN) of the IAM role that specifies AWS DMS as the trusted entity and grants the required permissions to access the value in <code>SecretsManagerSecret</code>. <code>SecretsManagerSecret</code> has the value of the AWS Secrets Manager secret that allows access to the PostgreSQL endpoint. <note> You can specify one of two sets of values for these permissions. You can specify the values for this setting and <code>SecretsManagerSecretId</code>. Or you can specify clear-text values for <code>UserName</code>, <code>Password</code>, <code>ServerName</code>, and <code>Port</code>. You can't specify both. For more information on creating this <code>SecretsManagerSecret</code> and the <code>SecretsManagerAccessRoleArn</code> and <code>SecretsManagerSecretId</code> required to access it, see <a href="https://docs.aws.amazon.com/https:/docs.aws.amazon.com/dms/latest/userguide/CHAP_Security.html#security-iam-secretsmanager">Using secrets to access AWS Database Migration Service resources</a> in the <i>AWS Database Migration Service User Guide</i>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SlotName</i> Sets the name of a previously created logical replication slot for a CDC load of the PostgreSQL source instance. When used with the AWS DMS API <code>CdcStartPosition</code> request parameter, this attribute also enables using native CDC start points.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Username</i> Endpoint connection user name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerName</i> Fully qualified domain name of the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Endpoint TCP port.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Password</i> Endpoint connection password.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FailTasksOnLobTruncation</i> When set to <code>true</code>, this value causes a task to fail if the actual size of a LOB column is greater than the specified <code>LobMaxSize</code>. If task is set to Limited LOB mode and this option is set to true, the task fails instead of truncating the LOB data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExecuteTimeout</i> Sets the client statement timeout for the PostgreSQL instance, in seconds. The default value is 60 seconds. Example: <code>executeTimeout=100;</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DdlArtifactsSchema</i> The schema in which the operational DDL database artifacts are created. Example: <code>ddlArtifactsSchema=xyzddlschema;</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> Database name for the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxFileSize</i> Specifies the maximum size (in KB) of any .csv file used to transfer data to PostgreSQL. Example: <code>maxFileSize=512</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CaptureDdls</i> To capture DDL events, AWS DMS creates various artifacts in the PostgreSQL database when the task starts. You can later remove these artifacts. If this value is set to <code>N</code>, you don't have to create tables or triggers on the source database.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AfterConnectScript</i> For use with change data capture (CDC) only, this attribute has AWS DMS bypass foreign keys and user triggers to reduce the time it takes to bulk load data. Example: <code>afterConnectScript=SET session_replication_role='replica'</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerSecretId</i> The full ARN, partial ARN, or friendly name of the <code>SecretsManagerSecret</code> that contains the MySQL endpoint connection details.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerAccessRoleArn</i> The full Amazon Resource Name (ARN) of the IAM role that specifies AWS DMS as the trusted entity and grants the required permissions to access the value in <code>SecretsManagerSecret</code>. <code>SecretsManagerSecret</code> has the value of the AWS Secrets Manager secret that allows access to the MySQL endpoint. <note> You can specify one of two sets of values for these permissions. You can specify the values for this setting and <code>SecretsManagerSecretId</code>. Or you can specify clear-text values for <code>UserName</code>, <code>Password</code>, <code>ServerName</code>, and <code>Port</code>. You can't specify both. For more information on creating this <code>SecretsManagerSecret</code> and the <code>SecretsManagerAccessRoleArn</code> and <code>SecretsManagerSecretId</code> required to access it, see <a href="https://docs.aws.amazon.com/https:/docs.aws.amazon.com/dms/latest/userguide/CHAP_Security.html#security-iam-secretsmanager">Using secrets to access AWS Database Migration Service resources</a> in the <i>AWS Database Migration Service User Guide</i>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Username</i> Endpoint connection user name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerTimezone</i> Specifies the time zone for the source MySQL database. Example: <code>serverTimezone=US/Pacific;</code>  Note: Do not enclose time zones in single quotes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerName</i> Fully qualified domain name of the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Endpoint TCP port.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Password</i> Endpoint connection password.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ParallelLoadThreads</i> Improves performance when loading data into the MySQL-compatible target database. Specifies how many threads to use to load the data into the MySQL-compatible target database. Setting a large number of threads can have an adverse effect on database performance, because a separate connection is required for each thread. Example: <code>parallelLoadThreads=1</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxFileSize</i> Specifies the maximum size (in KB) of any .csv file used to transfer data to a MySQL-compatible database. Example: <code>maxFileSize=512</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetDbType</i> Specifies where to migrate source tables on the target, either to a single database or multiple databases. Example: <code>targetDbType=MULTIPLE_DATABASES</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EventsPollInterval</i> Specifies how often to check the binary log for new changes/events when the database is idle. Example: <code>eventsPollInterval=5;</code>  In the example, AWS DMS checks for changes in the binary logs every five seconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> Database name for the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CleanSourceMetadataOnMismatch</i> Adjusts the behavior of DMS when migrating from an SQL Server source database that is hosted as part of an Always On availability group cluster. If you need DMS to poll all the nodes in the Always On cluster for transaction backups, set this attribute to <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AfterConnectScript</i> Specifies a script to run immediately after AWS DMS connects to the endpoint. The migration task continues running regardless if the SQL statement succeeds or fails.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerOracleAsmSecretId</i> Required only if your Oracle endpoint uses Advanced Storage Manager (ASM). The full ARN, partial ARN, or friendly name of the <code>SecretsManagerOracleAsmSecret</code> that contains the Oracle ASM connection details for the Oracle endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerOracleAsmAccessRoleArn</i> Required only if your Oracle endpoint uses Advanced Storage Manager (ASM). The full ARN of the IAM role that specifies AWS DMS as the trusted entity and grants the required permissions to access the <code>SecretsManagerOracleAsmSecret</code>. This <code>SecretsManagerOracleAsmSecret</code> has the secret value that allows access to the Oracle ASM of the endpoint. <note> You can specify one of two sets of values for these permissions. You can specify the values for this setting and <code>SecretsManagerOracleAsmSecretId</code>. Or you can specify clear-text values for <code>AsmUserName</code>, <code>AsmPassword</code>, and <code>AsmServerName</code>. You can't specify both. For more information on creating this <code>SecretsManagerOracleAsmSecret</code> and the <code>SecretsManagerOracleAsmAccessRoleArn</code> and <code>SecretsManagerOracleAsmSecretId</code> required to access it, see <a href="https://docs.aws.amazon.com/https:/docs.aws.amazon.com/dms/latest/userguide/CHAP_Security.html#security-iam-secretsmanager">Using secrets to access AWS Database Migration Service resources</a> in the <i>AWS Database Migration Service User Guide</i>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerSecretId</i> The full ARN, partial ARN, or friendly name of the <code>SecretsManagerSecret</code> that contains the Oracle endpoint connection details.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerAccessRoleArn</i> The full Amazon Resource Name (ARN) of the IAM role that specifies AWS DMS as the trusted entity and grants the required permissions to access the value in <code>SecretsManagerSecret</code>. <code>SecretsManagerSecret</code> has the value of the AWS Secrets Manager secret that allows access to the Oracle endpoint. <note> You can specify one of two sets of values for these permissions. You can specify the values for this setting and <code>SecretsManagerSecretId</code>. Or you can specify clear-text values for <code>UserName</code>, <code>Password</code>, <code>ServerName</code>, and <code>Port</code>. You can't specify both. For more information on creating this <code>SecretsManagerSecret</code> and the <code>SecretsManagerAccessRoleArn</code> and <code>SecretsManagerSecretId</code> required to access it, see <a href="https://docs.aws.amazon.com/https:/docs.aws.amazon.com/dms/latest/userguide/CHAP_Security.html#security-iam-secretsmanager">Using secrets to access AWS Database Migration Service resources</a> in the <i>AWS Database Migration Service User Guide</i>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Username</i> Endpoint connection user name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SpatialDataOptionToGeoJsonFunctionName</i> Use this attribute to convert <code>SDO_GEOMETRY</code> to <code>GEOJSON</code> format. By default, DMS calls the <code>SDO2GEOJSON</code> custom function if present and accessible. Or you can create your own custom function that mimics the operation of <code>SDOGEOJSON</code> and set <code>SpatialDataOptionToGeoJsonFunctionName</code> to call it instead. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerName</i> Fully qualified domain name of the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityDbEncryptionName</i> For an Oracle source endpoint, the name of a key used for the transparent data encryption (TDE) of the columns and tablespaces in an Oracle source database that is encrypted using TDE. The key value is the value of the <code>SecurityDbEncryption</code> setting. For more information on setting the key name value of <code>SecurityDbEncryptionName</code>, see the information and example for setting the <code>securityDbEncryptionName</code> extra connection attribute in <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.Encryption"> Supported encryption methods for using Oracle as a source for AWS DMS</a> in the <i>AWS Database Migration Service User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityDbEncryption</i> For an Oracle source endpoint, the transparent data encryption (TDE) password required by AWM DMS to access Oracle redo logs encrypted by TDE using Binary Reader. It is also the <code> <i>TDE_Password</i> </code> part of the comma-separated value you set to the <code>Password</code> request parameter when you create the endpoint. The <code>SecurityDbEncryptian</code> setting is related to this <code>SecurityDbEncryptionName</code> setting. For more information, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.Encryption"> Supported encryption methods for using Oracle as a source for AWS DMS</a> in the <i>AWS Database Migration Service User Guide</i>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RetryInterval</i> Specifies the number of seconds that the system waits before resending a query. Example: <code>retryInterval=6;</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadTableSpaceName</i> When set to <code>true</code>, this attribute supports tablespace replication.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Endpoint TCP port.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Password</i> Endpoint connection password.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberDatatypeScale</i> Specifies the number scale. You can select a scale up to 38, or you can select FLOAT. By default, the NUMBER data type is converted to precision 38, scale 10. Example: <code>numberDataTypeScale=12</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FailTasksOnLobTruncation</i> When set to <code>true</code>, this attribute causes a task to fail if the actual size of an LOB column is greater than the specified <code>LobMaxSize</code>. If a task is set to limited LOB mode and this option is set to <code>true</code>, the task fails instead of truncating the LOB data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DirectPathParallelLoad</i> When set to <code>true</code>, this attribute specifies a parallel load when <code>useDirectPathFullLoad</code> is set to <code>Y</code>. This attribute also only applies when you use the AWS DMS parallel load feature. Note that the target table cannot have any constraints or indexes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> Database name for the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CharLengthSemantics</i> Specifies whether the length of a character column is in bytes or in characters. To indicate that the character column length is in characters, set this attribute to <code>CHAR</code>. Otherwise, the character column length is in bytes. Example: <code>charLengthSemantics=CHAR;</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AsmUser</i> For an Oracle source endpoint, your ASM user name. You can set this value from the <code>asm_user</code> value. You set <code>asm_user</code> as part of the extra connection attribute string to access an Oracle server with Binary Reader that uses ASM. For more information, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.CDC.Configuration">Configuration for change data capture (CDC) on an Oracle source database</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AsmServer</i> For an Oracle source endpoint, your ASM server address. You can set this value from the <code>asm_server</code> value. You set <code>asm_server</code> as part of the extra connection attribute string to access an Oracle server with Binary Reader that uses ASM. For more information, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.CDC.Configuration">Configuration for change data capture (CDC) on an Oracle source database</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AsmPassword</i> For an Oracle source endpoint, your Oracle Automatic Storage Management (ASM) password. You can set this value from the <code> <i>asm_user_password</i> </code> value. You set this value as part of the comma-separated value that you set to the <code>Password</code> request parameter when you create the endpoint to access transaction logs using Binary Reader. For more information, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.CDC.Configuration">Configuration for change data capture (CDC) on an Oracle source database</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ArchivedLogsOnly</i> When this field is set to <code>Y</code>, AWS DMS only accesses the archived redo logs. If the archived redo logs are stored on Oracle ASM only, the AWS DMS user account needs to be granted ASM privileges.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DirectPathNoLog</i> When set to <code>true</code>, this attribute helps to increase the commit rate on the Oracle target database by writing directly to tables and not writing a trail to database logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableHomogenousTablespace</i> Set this attribute to enable homogenous tablespace replication and create existing tables or indexes under the same tablespace on the target.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplacePathPrefix</i> Set this attribute to true in order to use the Binary Reader to capture change data for an Amazon RDS for Oracle as the source. This setting tells DMS instance to replace the default Oracle root with the specified <code>usePathPrefix</code> setting to access the redo logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UsePathPrefix</i> Set this string attribute to the required value in order to use the Binary Reader to capture change data for an Amazon RDS for Oracle as the source. This value specifies the path prefix used to replace the default Oracle root to access the redo logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OraclePathPrefix</i> Set this string attribute to the required value in order to use the Binary Reader to capture change data for an Amazon RDS for Oracle as the source. This value specifies the default Oracle root used to access the redo logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UseAlternateFolderForOnline</i> Set this attribute to <code>true</code> in order to use the Binary Reader to capture change data for an Amazon RDS for Oracle as the source. This tells the DMS instance to use any specified prefix replacement to access all online redo logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccessAlternateDirectly</i> Set this attribute to <code>false</code> in order to use the Binary Reader to capture change data for an Amazon RDS for Oracle as the source. This tells the DMS instance to not access redo logs through any specified path prefix replacement using direct file access.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadAheadBlocks</i> Set this attribute to change the number of read-ahead blocks that DMS configures to perform a Change Data Capture (CDC) load using Oracle Automatic Storage Management (ASM). You can specify an integer value between 1000 (the default) and 200,000 (the maximum).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ParallelAsmReadThreads</i> Set this attribute to change the number of threads that DMS configures to perform a Change Data Capture (CDC) load using Oracle Automatic Storage Management (ASM). You can specify an integer value between 2 (the default) and 8 (the maximum). Use this attribute together with the <code>readAheadBlocks</code> attribute.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowSelectNestedTables</i> Set this attribute to <code>true</code> to enable replication of Oracle tables containing columns that are nested tables or defined types.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdditionalArchivedLogDestId</i> Set this attribute with <code>archivedLogDestId</code> in a primary/ standby setup. This attribute is useful in the case of a switchover. In this case, AWS DMS needs to know which destination to get archive redo logs from to read changes. This need arises because the previous primary instance is now a standby instance after switchover.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ArchivedLogDestId</i> Specifies the destination of the archived redo logs. The value should be the same as the DEST_ID number in the v$archived_log table. When working with multiple log destinations (DEST_ID), we recommend that you to specify an archived redo logs location identifier. Doing this improves performance by ensuring that the correct logs are accessed from the outset.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AddSupplementalLogging</i> Set this attribute to set up table-level supplemental logging for the Oracle database. This attribute enables PRIMARY KEY supplemental logging on all tables selected for a migration task. If you use this option, you still need to enable database-level supplemental logging.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerSecretId</i> The full ARN, partial ARN, or friendly name of the <code>SecretsManagerSecret</code> that contains the SAP SAE endpoint connection details.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerAccessRoleArn</i> The full Amazon Resource Name (ARN) of the IAM role that specifies AWS DMS as the trusted entity and grants the required permissions to access the value in <code>SecretsManagerSecret</code>. <code>SecretsManagerSecret</code> has the value of the AWS Secrets Manager secret that allows access to the SAP ASE endpoint. <note> You can specify one of two sets of values for these permissions. You can specify the values for this setting and <code>SecretsManagerSecretId</code>. Or you can specify clear-text values for <code>UserName</code>, <code>Password</code>, <code>ServerName</code>, and <code>Port</code>. You can't specify both. For more information on creating this <code>SecretsManagerSecret</code> and the <code>SecretsManagerAccessRoleArn</code> and <code>SecretsManagerSecretId</code> required to access it, see <a href="https://docs.aws.amazon.com/https:/docs.aws.amazon.com/dms/latest/userguide/CHAP_Security.html#security-iam-secretsmanager">Using secrets to access AWS Database Migration Service resources</a> in the <i>AWS Database Migration Service User Guide</i>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Username</i> Endpoint connection user name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerName</i> Fully qualified domain name of the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Endpoint TCP port.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Password</i> Endpoint connection password.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> Database name for the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerSecretId</i> The full ARN, partial ARN, or friendly name of the <code>SecretsManagerSecret</code> that contains the SQL Server endpoint connection details.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerAccessRoleArn</i> The full Amazon Resource Name (ARN) of the IAM role that specifies AWS DMS as the trusted entity and grants the required permissions to access the value in <code>SecretsManagerSecret</code>. <code>SecretsManagerSecret</code> has the value of the AWS Secrets Manager secret that allows access to the SQL Server endpoint. <note> You can specify one of two sets of values for these permissions. You can specify the values for this setting and <code>SecretsManagerSecretId</code>. Or you can specify clear-text values for <code>UserName</code>, <code>Password</code>, <code>ServerName</code>, and <code>Port</code>. You can't specify both. For more information on creating this <code>SecretsManagerSecret</code> and the <code>SecretsManagerAccessRoleArn</code> and <code>SecretsManagerSecretId</code> required to access it, see <a href="https://docs.aws.amazon.com/https:/docs.aws.amazon.com/dms/latest/userguide/CHAP_Security.html#security-iam-secretsmanager">Using secrets to access AWS Database Migration Service resources</a> in the <i>AWS Database Migration Service User Guide</i>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UseThirdPartyBackupDevice</i> When this attribute is set to <code>Y</code>, DMS processes third-party transaction log backups if they are created in native format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UseBcpFullLoad</i> Use this to attribute to transfer data for full-load operations using BCP. When the target table contains an identity column that does not exist in the source table, you must disable the use BCP for loading table option.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Username</i> Endpoint connection user name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerName</i> Fully qualified domain name of the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SafeguardPolicy</i> Use this attribute to minimize the need to access the backup log and enable AWS DMS to prevent truncation using one of the following two methods.  <i>Start transactions in the database:</i> This is the default method. When this method is used, AWS DMS prevents TLOG truncation by mimicking a transaction in the database. As long as such a transaction is open, changes that appear after the transaction started aren't truncated. If you need Microsoft Replication to be enabled in your database, then you must choose this method.  <i>Exclusively use sp_repldone within a single task</i>: When this method is used, AWS DMS reads the changes and then uses sp_repldone to mark the TLOG transactions as ready for truncation. Although this method doesn't involve any transactional activities, it can only be used when Microsoft Replication isn't running. Also, when using this method, only one AWS DMS task can access the database at any given time. Therefore, if you need to run parallel AWS DMS tasks against the same database, use the default method.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadBackupOnly</i> When this attribute is set to <code>Y</code>, AWS DMS only reads changes from transaction log backups and doesn't read from the active transaction log file during ongoing replication. Setting this parameter to <code>Y</code> enables you to control active transaction log file growth during full load and ongoing replication tasks. However, it can add some source latency to ongoing replication.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>QuerySingleAlwaysOnNode</i> Cleans and recreates table metadata information on the replication instance when a mismatch occurs. An example is a situation where running an alter DDL statement on a table might result in different information about the table cached in the replication instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Password</i> Endpoint connection password.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ControlTablesFileGroup</i> Specifies a file group for the AWS DMS internal tables. When the replication task starts, all the internal AWS DMS control tables (awsdms_ apply_exception, awsdms_apply, awsdms_changes) are created for the specified file group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> Database name for the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BcpPacketSize</i> The maximum size of the packets (in bytes) used to transfer data using BCP.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Endpoint TCP port.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerSecretId</i> The full ARN, partial ARN, or friendly name of the <code>SecretsManagerSecret</code> that contains the Db2 LUW endpoint connection details.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerAccessRoleArn</i> The full Amazon Resource Name (ARN) of the IAM role that specifies AWS DMS as the trusted entity and grants the required permissions to access the value in <code>SecretsManagerSecret</code>. <code>SecretsManagerSecret</code> has the value of the AWS Secrets Manager secret that allows access to the Db2 LUW endpoint.  <note> You can specify one of two sets of values for these permissions. You can specify the values for this setting and <code>SecretsManagerSecretId</code>. Or you can specify clear-text values for <code>UserName</code>, <code>Password</code>, <code>ServerName</code>, and <code>Port</code>. You can't specify both. For more information on creating this <code>SecretsManagerSecret</code> and the <code>SecretsManagerAccessRoleArn</code> and <code>SecretsManagerSecretId</code> required to access it, see <a href="https://docs.aws.amazon.com/https:/docs.aws.amazon.com/dms/latest/userguide/CHAP_Security.html#security-iam-secretsmanager">Using secrets to access AWS Database Migration Service resources</a> in the <i>AWS Database Migration Service User Guide</i>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Username</i> Endpoint connection user name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxKBytesPerRead</i> Maximum number of bytes per read, as a NUMBER value. The default is 64 KB.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CurrentLsn</i> For ongoing replication (CDC), use CurrentLSN to specify a log sequence number (LSN) where you want the replication to start.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SetDataCaptureChanges</i> Enables ongoing replication (CDC) as a BOOLEAN value. The default is true.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerName</i> Fully qualified domain name of the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Endpoint TCP port.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Password</i> Endpoint connection password.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> Database name for the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerSecretId</i> The full ARN, partial ARN, or friendly name of the <code>SecretsManagerSecret</code> that contains the DocumentDB endpoint connection details.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerAccessRoleArn</i> The full Amazon Resource Name (ARN) of the IAM role that specifies AWS DMS as the trusted entity and grants the required permissions to access the value in <code>SecretsManagerSecret</code>. <code>SecretsManagerSecret</code> has the value of the AWS Secrets Manager secret that allows access to the DocumentDB endpoint. <note> You can specify one of two sets of values for these permissions. You can specify the values for this setting and <code>SecretsManagerSecretId</code>. Or you can specify clear-text values for <code>UserName</code>, <code>Password</code>, <code>ServerName</code>, and <code>Port</code>. You can't specify both. For more information on creating this <code>SecretsManagerSecret</code> and the <code>SecretsManagerAccessRoleArn</code> and <code>SecretsManagerSecretId</code> required to access it, see <a href="https://docs.aws.amazon.com/https:/docs.aws.amazon.com/dms/latest/userguide/CHAP_Security.html#security-iam-secretsmanager">Using secrets to access AWS Database Migration Service resources</a> in the <i>AWS Database Migration Service User Guide</i>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The AWS KMS key identifier that is used to encrypt the content on the replication instance. If you don't specify a value for the <code>KmsKeyId</code> parameter, then AWS DMS uses your default encryption key. AWS KMS creates the default encryption key for your AWS account. Your AWS account has a different default encryption key for each AWS Region.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DocsToInvestigate</i>  Indicates the number of documents to preview to determine the document organization. Use this setting when <code>NestingLevel</code> is set to <code>"one"</code>.  Must be a positive value greater than <code>0</code>. Default value is <code>1000</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExtractDocId</i>  Specifies the document ID. Use this setting when <code>NestingLevel</code> is set to <code>"none"</code>.  Default value is <code>"false"</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NestingLevel</i>  Specifies either document or table mode.  Default value is <code>"none"</code>. Specify <code>"none"</code> to use document mode. Specify <code>"one"</code> to use table mode.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i>  The database name on the DocumentDB source endpoint. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i>  The port value for the DocumentDB source endpoint. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerName</i>  The name of the server on the DocumentDB source endpoint. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Password</i>  The password for the user account you use to access the DocumentDB source endpoint. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Username</i> The user name you use to access the DocumentDB source endpoint. <br/>
        :return: Endpoint:  The endpoint that was created.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DocDbSettings</i> Provides information that defines a DocumentDB endpoint.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DocDbSettings</b>: Provides information that defines a DocumentDB endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IBMDb2Settings</i> The settings for the IBM Db2 LUW source endpoint. For more information, see the <code>IBMDb2Settings</code> structure. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>IBMDb2Settings</b>: The settings for the IBM Db2 LUW source endpoint. For more information, see the <code>IBMDb2Settings</code> structure. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MicrosoftSQLServerSettings</i> The settings for the Microsoft SQL Server source and target endpoint. For more information, see the <code>MicrosoftSQLServerSettings</code> structure.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>MicrosoftSQLServerSettings</b>: The settings for the Microsoft SQL Server source and target endpoint. For more information, see the <code>MicrosoftSQLServerSettings</code> structure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SybaseSettings</i> The settings for the SAP ASE source and target endpoint. For more information, see the <code>SybaseSettings</code> structure.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SybaseSettings</b>: The settings for the SAP ASE source and target endpoint. For more information, see the <code>SybaseSettings</code> structure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OracleSettings</i> The settings for the Oracle source and target endpoint. For more information, see the <code>OracleSettings</code> structure.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>OracleSettings</b>: The settings for the Oracle source and target endpoint. For more information, see the <code>OracleSettings</code> structure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MySQLSettings</i> The settings for the MySQL source and target endpoint. For more information, see the <code>MySQLSettings</code> structure.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>MySQLSettings</b>: The settings for the MySQL source and target endpoint. For more information, see the <code>MySQLSettings</code> structure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PostgreSQLSettings</i> The settings for the PostgreSQL source and target endpoint. For more information, see the <code>PostgreSQLSettings</code> structure.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PostgreSQLSettings</b>: The settings for the PostgreSQL source and target endpoint. For more information, see the <code>PostgreSQLSettings</code> structure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RedshiftSettings</i> Settings for the Amazon Redshift endpoint.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RedshiftSettings</b>: Settings for the Amazon Redshift endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NeptuneSettings</i> The settings for the Amazon Neptune target endpoint. For more information, see the <code>NeptuneSettings</code> structure.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>NeptuneSettings</b>: The settings for the Amazon Neptune target endpoint. For more information, see the <code>NeptuneSettings</code> structure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ElasticsearchSettings</i> The settings for the Elasticsearch source endpoint. For more information, see the <code>ElasticsearchSettings</code> structure.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ElasticsearchSettings</b>: The settings for the Elasticsearch source endpoint. For more information, see the <code>ElasticsearchSettings</code> structure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KafkaSettings</i> The settings for the Apache Kafka target endpoint. For more information, see the <code>KafkaSettings</code> structure.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>KafkaSettings</b>: The settings for the Apache Kafka target endpoint. For more information, see the <code>KafkaSettings</code> structure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KinesisSettings</i> The settings for the Amazon Kinesis target endpoint. For more information, see the <code>KinesisSettings</code> structure.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>KinesisSettings</b>: The settings for the Amazon Kinesis target endpoint. For more information, see the <code>KinesisSettings</code> structure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MongoDbSettings</i> The settings for the MongoDB source endpoint. For more information, see the <code>MongoDbSettings</code> structure.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>MongoDbSettings</b>: The settings for the MongoDB source endpoint. For more information, see the <code>MongoDbSettings</code> structure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DmsTransferSettings</i> The settings in JSON format for the DMS transfer type of source endpoint.  Possible settings include the following: <ul> <li>  <code>ServiceAccessRoleArn</code> - The IAM role that has permission to access the Amazon S3 bucket. </li> <li>  <code>BucketName</code> - The name of the S3 bucket to use. </li> <li>  <code>CompressionType</code> - An optional parameter to use GZIP to compress the target files. To use GZIP, set this value to <code>NONE</code> (the default). To keep the files uncompressed, don't use this value. </li> </ul> Shorthand syntax for these settings is as follows: <code>ServiceAccessRoleArn=string,BucketName=string,CompressionType=string</code>  JSON syntax for these settings is as follows: <code>{ "ServiceAccessRoleArn": "string", "BucketName": "string", "CompressionType": "none"|"gzip" } </code> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DmsTransferSettings</b>: The settings in JSON format for the DMS transfer type of source endpoint.  Possible settings include the following: <ul> <li>  <code>ServiceAccessRoleArn</code> - The IAM role that has permission to access the Amazon S3 bucket. </li> <li>  <code>BucketName</code> - The name of the S3 bucket to use. </li> <li>  <code>CompressionType</code> - An optional parameter to use GZIP to compress the target files. To use GZIP, set this value to <code>NONE</code> (the default). To keep the files uncompressed, don't use this value. </li> </ul> Shorthand syntax for these settings is as follows: <code>ServiceAccessRoleArn=string,BucketName=string,CompressionType=string</code>  JSON syntax for these settings is as follows: <code>{ "ServiceAccessRoleArn": "string", "BucketName": "string", "CompressionType": "none"|"gzip" } </code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Settings</i> The settings for the S3 target endpoint. For more information, see the <code>S3Settings</code> structure.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3Settings</b>: The settings for the S3 target endpoint. For more information, see the <code>S3Settings</code> structure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DynamoDbSettings</i> The settings for the DynamoDB target endpoint. For more information, see the <code>DynamoDBSettings</code> structure.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DynamoDbSettings</b>: The settings for the DynamoDB target endpoint. For more information, see the <code>DynamoDBSettings</code> structure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExternalId</i>  Value returned by a call to CreateEndpoint that can be used for cross-account validation. Use it on a subsequent call to CreateEndpoint to create the endpoint with a cross-account. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExternalTableDefinition</i> The external table definition.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceAccessRoleArn</i> The Amazon Resource Name (ARN) used by the service access IAM role.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SslMode</i> The SSL mode used to connect to the endpoint. The default value is <code>none</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CertificateArn</i> The Amazon Resource Name (ARN) used for SSL connection to the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointArn</i> The Amazon Resource Name (ARN) string that uniquely identifies the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> An AWS KMS key identifier that is used to encrypt the connection parameters for the endpoint. If you don't specify a value for the <code>KmsKeyId</code> parameter, then AWS DMS uses your default encryption key. AWS KMS creates the default encryption key for your AWS account. Your AWS account has a different default encryption key for each AWS Region.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExtraConnectionAttributes</i> Additional connection attributes used to connect to the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> The name of the database at the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> The port value used to access the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerName</i> The name of the server at the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Username</i> The user name used to connect to the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineDisplayName</i> The expanded name for the engine name. For example, if the <code>EngineName</code> parameter is "aurora," this value would be "Amazon Aurora MySQL."<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineName</i> The database engine name. Valid values, depending on the EndpointType, include <code>"mysql"</code>, <code>"oracle"</code>, <code>"postgres"</code>, <code>"mariadb"</code>, <code>"aurora"</code>, <code>"aurora-postgresql"</code>, <code>"redshift"</code>, <code>"s3"</code>, <code>"db2"</code>, <code>"azuredb"</code>, <code>"sybase"</code>, <code>"dynamodb"</code>, <code>"mongodb"</code>, <code>"kinesis"</code>, <code>"kafka"</code>, <code>"elasticsearch"</code>, <code>"documentdb"</code>, <code>"sqlserver"</code>, and <code>"neptune"</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointType</i> The type of endpoint. Valid values are <code>source</code> and <code>target</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointIdentifier</i> The database endpoint identifier. Identifiers must begin with a letter and must contain only ASCII letters, digits, and hyphens. They can't end with a hyphen or contain two consecutive hyphens.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceAccessRoleArn</i>  The Amazon Resource Name (ARN) used by the service access IAM role. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CdcPath</i> Specifies the folder path of CDC files. For an S3 source, this setting is required if a task captures change data; otherwise, it's optional. If <code>CdcPath</code> is set, AWS DMS reads CDC files from this path and replicates the data changes to the target endpoint. For an S3 target if you set <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_S3Settings.html#DMS-Type-S3Settings-PreserveTransactions"> <code>PreserveTransactions</code> </a> to <code>true</code>, AWS DMS verifies that you have set this parameter to a folder path on your S3 target where AWS DMS can save the transaction order for the CDC load. AWS DMS creates this CDC folder path in either your S3 target working directory or the S3 target location specified by <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_S3Settings.html#DMS-Type-S3Settings-BucketFolder"> <code>BucketFolder</code> </a> and <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_S3Settings.html#DMS-Type-S3Settings-BucketName"> <code>BucketName</code> </a>. For example, if you specify <code>CdcPath</code> as <code>MyChangedData</code>, and you specify <code>BucketName</code> as <code>MyTargetBucket</code> but do not specify <code>BucketFolder</code>, AWS DMS creates the CDC folder path following: <code>MyTargetBucket/MyChangedData</code>. If you specify the same <code>CdcPath</code>, and you specify <code>BucketName</code> as <code>MyTargetBucket</code> and <code>BucketFolder</code> as <code>MyTargetData</code>, AWS DMS creates the CDC folder path following: <code>MyTargetBucket/MyTargetData/MyChangedData</code>. For more information on CDC including transaction order on an S3 target, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html#CHAP_Target.S3.EndpointSettings.CdcPath">Capturing data changes (CDC) including transaction order on the S3 target</a>. <note> This setting is supported in AWS DMS versions 3.4.2 and later. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PreserveTransactions</i> If set to <code>true</code>, AWS DMS saves the transaction order for a change data capture (CDC) load on the Amazon S3 target specified by <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_S3Settings.html#DMS-Type-S3Settings-CdcPath"> <code>CdcPath</code> </a>. For more information, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html#CHAP_Target.S3.EndpointSettings.CdcPath">Capturing data changes (CDC) including transaction order on the S3 target</a>. <note> This setting is supported in AWS DMS versions 3.4.2 and later. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CsvNoSupValue</i> This setting only applies if your Amazon S3 output files during a change data capture (CDC) load are written in .csv format. If <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_S3Settings.html#DMS-Type-S3Settings-UseCsvNoSupValue"> <code>UseCsvNoSupValue</code> </a> is set to true, specify a string value that you want AWS DMS to use for all columns not included in the supplemental log. If you do not specify a string value, AWS DMS uses the null value for these columns regardless of the <code>UseCsvNoSupValue</code> setting. <note> This setting is supported in AWS DMS versions 3.4.1 and later. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UseCsvNoSupValue</i> This setting applies if the S3 output files during a change data capture (CDC) load are written in .csv format. If set to <code>true</code> for columns not included in the supplemental log, AWS DMS uses the value specified by <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_S3Settings.html#DMS-Type-S3Settings-CsvNoSupValue"> <code>CsvNoSupValue</code> </a>. If not set or set to <code>false</code>, AWS DMS uses the null value for these columns. <note> This setting is supported in AWS DMS versions 3.4.1 and later. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DatePartitionDelimiter</i> Specifies a date separating delimiter to use during folder partitioning. The default value is <code>SLASH</code>. Use this parameter when <code>DatePartitionedEnabled</code> is set to <code>true</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DatePartitionSequence</i> Identifies the sequence of the date format to use during folder partitioning. The default value is <code>YYYYMMDD</code>. Use this parameter when <code>DatePartitionedEnabled</code> is set to <code>true</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DatePartitionEnabled</i> When set to <code>true</code>, this parameter partitions S3 bucket folders based on transaction commit dates. The default value is <code>false</code>. For more information about date-based folder partitoning, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html#CHAP_Target.S3.DatePartitioning">Using date-based folder partitioning</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CdcInsertsAndUpdates</i> A value that enables a change data capture (CDC) load to write INSERT and UPDATE operations to .csv or .parquet (columnar storage) output files. The default setting is <code>false</code>, but when <code>CdcInsertsAndUpdates</code> is set to <code>true</code> or <code>y</code>, only INSERTs and UPDATEs from the source database are migrated to the .csv or .parquet file.  For .csv file format only, how these INSERTs and UPDATEs are recorded depends on the value of the <code>IncludeOpForFullLoad</code> parameter. If <code>IncludeOpForFullLoad</code> is set to <code>true</code>, the first field of every CDC record is set to either <code>I</code> or <code>U</code> to indicate INSERT and UPDATE operations at the source. But if <code>IncludeOpForFullLoad</code> is set to <code>false</code>, CDC records are written without an indication of INSERT or UPDATE operations at the source. For more information about how these settings work together, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html#CHAP_Target.S3.Configuring.InsertOps">Indicating Source DB Operations in Migrated S3 Data</a> in the <i>AWS Database Migration Service User Guide.</i>. <note> AWS DMS supports the use of the <code>CdcInsertsAndUpdates</code> parameter in versions 3.3.1 and later.  <code>CdcInsertsOnly</code> and <code>CdcInsertsAndUpdates</code> can't both be set to <code>true</code> for the same endpoint. Set either <code>CdcInsertsOnly</code> or <code>CdcInsertsAndUpdates</code> to <code>true</code> for the same endpoint, but not both. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ParquetTimestampInMillisecond</i> A value that specifies the precision of any <code>TIMESTAMP</code> column values that are written to an Amazon S3 object file in .parquet format. <note> AWS DMS supports the <code>ParquetTimestampInMillisecond</code> parameter in versions 3.1.4 and later. </note> When <code>ParquetTimestampInMillisecond</code> is set to <code>true</code> or <code>y</code>, AWS DMS writes all <code>TIMESTAMP</code> columns in a .parquet formatted file with millisecond precision. Otherwise, DMS writes them with microsecond precision. Currently, Amazon Athena and AWS Glue can handle only millisecond precision for <code>TIMESTAMP</code> values. Set this parameter to <code>true</code> for S3 endpoint object files that are .parquet formatted only if you plan to query or process the data with Athena or AWS Glue. <note> AWS DMS writes any <code>TIMESTAMP</code> column values written to an S3 file in .csv format with microsecond precision. Setting <code>ParquetTimestampInMillisecond</code> has no effect on the string format of the timestamp column value that is inserted by setting the <code>TimestampColumnName</code> parameter. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TimestampColumnName</i> A value that when nonblank causes AWS DMS to add a column with timestamp information to the endpoint data for an Amazon S3 target. <note> AWS DMS supports the <code>TimestampColumnName</code> parameter in versions 3.1.4 and later. </note> DMS includes an additional <code>STRING</code> column in the .csv or .parquet object files of your migrated data when you set <code>TimestampColumnName</code> to a nonblank value. For a full load, each row of this timestamp column contains a timestamp for when the data was transferred from the source to the target by DMS.  For a change data capture (CDC) load, each row of the timestamp column contains the timestamp for the commit of that row in the source database. The string format for this timestamp column value is <code>yyyy-MM-dd HH:mm:ss.SSSSSS</code>. By default, the precision of this value is in microseconds. For a CDC load, the rounding of the precision depends on the commit timestamp supported by DMS for the source database. When the <code>AddColumnName</code> parameter is set to <code>true</code>, DMS also includes a name for the timestamp column that you set with <code>TimestampColumnName</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CdcInsertsOnly</i> A value that enables a change data capture (CDC) load to write only INSERT operations to .csv or columnar storage (.parquet) output files. By default (the <code>false</code> setting), the first field in a .csv or .parquet record contains the letter I (INSERT), U (UPDATE), or D (DELETE). These values indicate whether the row was inserted, updated, or deleted at the source database for a CDC load to the target. If <code>CdcInsertsOnly</code> is set to <code>true</code> or <code>y</code>, only INSERTs from the source database are migrated to the .csv or .parquet file. For .csv format only, how these INSERTs are recorded depends on the value of <code>IncludeOpForFullLoad</code>. If <code>IncludeOpForFullLoad</code> is set to <code>true</code>, the first field of every CDC record is set to I to indicate the INSERT operation at the source. If <code>IncludeOpForFullLoad</code> is set to <code>false</code>, every CDC record is written without a first field to indicate the INSERT operation at the source. For more information about how these settings work together, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html#CHAP_Target.S3.Configuring.InsertOps">Indicating Source DB Operations in Migrated S3 Data</a> in the <i>AWS Database Migration Service User Guide.</i>. <note> AWS DMS supports the interaction described preceding between the <code>CdcInsertsOnly</code> and <code>IncludeOpForFullLoad</code> parameters in versions 3.1.4 and later.   <code>CdcInsertsOnly</code> and <code>CdcInsertsAndUpdates</code> can't both be set to <code>true</code> for the same endpoint. Set either <code>CdcInsertsOnly</code> or <code>CdcInsertsAndUpdates</code> to <code>true</code> for the same endpoint, but not both. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeOpForFullLoad</i> A value that enables a full load to write INSERT operations to the comma-separated value (.csv) output files only to indicate how the rows were added to the source database. <note> AWS DMS supports the <code>IncludeOpForFullLoad</code> parameter in versions 3.1.4 and later. </note> For full load, records can only be inserted. By default (the <code>false</code> setting), no information is recorded in these output files for a full load to indicate that the rows were inserted at the source database. If <code>IncludeOpForFullLoad</code> is set to <code>true</code> or <code>y</code>, the INSERT is recorded as an I annotation in the first field of the .csv file. This allows the format of your target records from a full load to be consistent with the target records from a CDC load. <note> This setting works together with the <code>CdcInsertsOnly</code> and the <code>CdcInsertsAndUpdates</code> parameters for output to .csv files only. For more information about how these settings work together, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html#CHAP_Target.S3.Configuring.InsertOps">Indicating Source DB Operations in Migrated S3 Data</a> in the <i>AWS Database Migration Service User Guide.</i>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableStatistics</i> A value that enables statistics for Parquet pages and row groups. Choose <code>true</code> to enable statistics, <code>false</code> to disable. Statistics include <code>NULL</code>, <code>DISTINCT</code>, <code>MAX</code>, and <code>MIN</code> values. This parameter defaults to <code>true</code>. This value is used for .parquet file format only.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ParquetVersion</i> The version of the Apache Parquet format that you want to use: <code>parquet_1_0</code> (the default) or <code>parquet_2_0</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DataPageSize</i> The size of one data page in bytes. This parameter defaults to 1024 * 1024 bytes (1 MiB). This number is used for .parquet file format only. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RowGroupLength</i> The number of rows in a row group. A smaller row group size provides faster reads. But as the number of row groups grows, the slower writes become. This parameter defaults to 10,000 rows. This number is used for .parquet file format only.  If you choose a value larger than the maximum, <code>RowGroupLength</code> is set to the max row group length in bytes (64 * 1024 * 1024). <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DictPageSizeLimit</i> The maximum size of an encoded dictionary page of a column. If the dictionary page exceeds this, this column is stored using an encoding type of <code>PLAIN</code>. This parameter defaults to 1024 * 1024 bytes (1 MiB), the maximum size of a dictionary page before it reverts to <code>PLAIN</code> encoding. This size is used for .parquet file format only. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EncodingType</i> The type of encoding you are using:  <ul> <li>  <code>RLE_DICTIONARY</code> uses a combination of bit-packing and run-length encoding to store repeated values more efficiently. This is the default. </li> <li>  <code>PLAIN</code> doesn't use encoding at all. Values are stored as they are. </li> <li>  <code>PLAIN_DICTIONARY</code> builds a dictionary of the values encountered in a given column. The dictionary is stored in a dictionary page for each column chunk. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DataFormat</i> The format of the data that you want to use for output. You can choose one of the following:  <ul> <li>  <code>csv</code> : This is a row-based file format with comma-separated values (.csv).  </li> <li>  <code>parquet</code> : Apache Parquet (.parquet) is a columnar storage file format that features efficient compression and provides faster query response.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerSideEncryptionKmsKeyId</i> If you are using <code>SSE_KMS</code> for the <code>EncryptionMode</code>, provide the AWS KMS key ID. The key that you use needs an attached policy that enables AWS Identity and Access Management (IAM) user permissions and allows use of the key. Here is a CLI example: <code>aws dms create-endpoint --endpoint-identifier <i>value</i> --endpoint-type target --engine-name s3 --s3-settings ServiceAccessRoleArn=<i>value</i>,BucketFolder=<i>value</i>,BucketName=<i>value</i>,EncryptionMode=SSE_KMS,ServerSideEncryptionKmsKeyId=<i>value</i> </code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EncryptionMode</i> The type of server-side encryption that you want to use for your data. This encryption type is part of the endpoint settings or the extra connections attributes for Amazon S3. You can choose either <code>SSE_S3</code> (the default) or <code>SSE_KMS</code>.  <note> For the <code>ModifyEndpoint</code> operation, you can change the existing value of the <code>EncryptionMode</code> parameter from <code>SSE_KMS</code> to <code>SSE_S3</code>. But you can’t change the existing value from <code>SSE_S3</code> to <code>SSE_KMS</code>. </note> To use <code>SSE_S3</code>, you need an AWS Identity and Access Management (IAM) role with permission to allow <code>"arn:aws:s3:::dms-*"</code> to use the following actions: <ul> <li>  <code>s3:CreateBucket</code>  </li> <li>  <code>s3:ListBucket</code>  </li> <li>  <code>s3:DeleteBucket</code>  </li> <li>  <code>s3:GetBucketLocation</code>  </li> <li>  <code>s3:GetObject</code>  </li> <li>  <code>s3:PutObject</code>  </li> <li>  <code>s3:DeleteObject</code>  </li> <li>  <code>s3:GetObjectVersion</code>  </li> <li>  <code>s3:GetBucketPolicy</code>  </li> <li>  <code>s3:PutBucketPolicy</code>  </li> <li>  <code>s3:DeleteBucketPolicy</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CompressionType</i> An optional parameter to use GZIP to compress the target files. Set to GZIP to compress the target files. Either set this parameter to NONE (the default) or don't use it to leave the files uncompressed. This parameter applies to both .csv and .parquet file formats. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BucketName</i>  The name of the S3 bucket. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BucketFolder</i>  An optional parameter to set a folder name in the S3 bucket. If provided, tables are created in the path <code> <i>bucketFolder</i>/<i>schema_name</i>/<i>table_name</i>/</code>. If this parameter isn't specified, then the path used is <code> <i>schema_name</i>/<i>table_name</i>/</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CsvDelimiter</i>  The delimiter used to separate columns in the .csv file for both source and target. The default is a comma. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CsvRowDelimiter</i>  The delimiter used to separate rows in the .csv file for both source and target. The default is a carriage return (<code>\n</code>). <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ExternalTableDefinition</i>  Specifies how tables are defined in the S3 source files only. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceAccessRoleArn</i>  The Amazon Resource Name (ARN) used by the service access IAM role. It is a required parameter that enables DMS to write and read objects from an S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BucketName</i>  The name of the S3 bucket to use. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceAccessRoleArn</i>  The IAM role that has permission to access the Amazon S3 bucket. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerSecretId</i> The full ARN, partial ARN, or friendly name of the <code>SecretsManagerSecret</code> that contains the MongoDB endpoint connection details.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerAccessRoleArn</i> The full Amazon Resource Name (ARN) of the IAM role that specifies AWS DMS as the trusted entity and grants the required permissions to access the value in <code>SecretsManagerSecret</code>. <code>SecretsManagerSecret</code> has the value of the AWS Secrets Manager secret that allows access to the MongoDB endpoint. <note> You can specify one of two sets of values for these permissions. You can specify the values for this setting and <code>SecretsManagerSecretId</code>. Or you can specify clear-text values for <code>UserName</code>, <code>Password</code>, <code>ServerName</code>, and <code>Port</code>. You can't specify both. For more information on creating this <code>SecretsManagerSecret</code> and the <code>SecretsManagerAccessRoleArn</code> and <code>SecretsManagerSecretId</code> required to access it, see <a href="https://docs.aws.amazon.com/https:/docs.aws.amazon.com/dms/latest/userguide/CHAP_Security.html#security-iam-secretsmanager">Using secrets to access AWS Database Migration Service resources</a> in the <i>AWS Database Migration Service User Guide</i>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The AWS KMS key identifier that is used to encrypt the content on the replication instance. If you don't specify a value for the <code>KmsKeyId</code> parameter, then AWS DMS uses your default encryption key. AWS KMS creates the default encryption key for your AWS account. Your AWS account has a different default encryption key for each AWS Region.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AuthSource</i>  The MongoDB database name. This setting isn't used when <code>AuthType</code> is set to <code>"no"</code>.  The default is <code>"admin"</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DocsToInvestigate</i>  Indicates the number of documents to preview to determine the document organization. Use this setting when <code>NestingLevel</code> is set to <code>"one"</code>.  Must be a positive value greater than <code>0</code>. Default value is <code>1000</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ExtractDocId</i>  Specifies the document ID. Use this setting when <code>NestingLevel</code> is set to <code>"none"</code>.  Default value is <code>"false"</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NestingLevel</i>  Specifies either document or table mode.  Default value is <code>"none"</code>. Specify <code>"none"</code> to use document mode. Specify <code>"one"</code> to use table mode.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AuthMechanism</i>  The authentication mechanism you use to access the MongoDB source endpoint. For the default value, in MongoDB version 2.x, <code>"default"</code> is <code>"mongodb_cr"</code>. For MongoDB version 3.x or later, <code>"default"</code> is <code>"scram_sha_1"</code>. This setting isn't used when <code>AuthType</code> is set to <code>"no"</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AuthType</i>  The authentication type you use to access the MongoDB source endpoint. When when set to <code>"no"</code>, user name and password parameters are not used and can be empty. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i>  The database name on the MongoDB source endpoint. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i>  The port value for the MongoDB source endpoint. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerName</i>  The name of the server on the MongoDB source endpoint. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Password</i>  The password for the user account you use to access the MongoDB source endpoint. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Username</i> The user name you use to access the MongoDB source endpoint. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeNullAndEmpty</i> Include NULL and empty columns for records migrated to the endpoint. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeControlDetails</i> Shows detailed control information for table definition, column definition, and table and column changes in the Kinesis message output. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeTableAlterOperations</i> Includes any data definition language (DDL) operations that change the table in the control data, such as <code>rename-table</code>, <code>drop-table</code>, <code>add-column</code>, <code>drop-column</code>, and <code>rename-column</code>. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PartitionIncludeSchemaTable</i> Prefixes schema and table names to partition values, when the partition type is <code>primary-key-type</code>. Doing this increases data distribution among Kinesis shards. For example, suppose that a SysBench schema has thousands of tables and each table has only limited range for a primary key. In this case, the same primary key is sent from thousands of tables to the same shard, which causes throttling. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludePartitionValue</i> Shows the partition value within the Kinesis message output, unless the partition type is <code>schema-table-type</code>. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeTransactionDetails</i> Provides detailed transaction information from the source database. This information includes a commit timestamp, a log position, and values for <code>transaction_id</code>, previous <code>transaction_id</code>, and <code>transaction_record_id</code> (the record offset within a transaction). The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceAccessRoleArn</i> The Amazon Resource Name (ARN) for the AWS Identity and Access Management (IAM) role that AWS DMS uses to write to the Kinesis data stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MessageFormat</i> The output format for the records created on the endpoint. The message format is <code>JSON</code> (default) or <code>JSON_UNFORMATTED</code> (a single line with no tab).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamArn</i> The Amazon Resource Name (ARN) for the Amazon Kinesis Data Streams endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SaslPassword</i> The secure password you created when you first set up your MSK cluster to validate a client identity and make an encrypted connection between server and client using SASL-SSL authentication.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SaslUsername</i>  The secure username you created when you first set up your MSK cluster to validate a client identity and make an encrypted connection between server and client using SASL-SSL authentication.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SslCaCertificateArn</i>  The Amazon Resource Name (ARN) for the private Certification Authority (CA) cert that AWS DMS uses to securely connect to your Kafka target endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SslClientKeyPassword</i>  The password for the client private key used to securely connect to a Kafka target endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SslClientKeyArn</i> The Amazon Resource Name (ARN) for the client private key used to securely connect to a Kafka target endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SslClientCertificateArn</i> The Amazon Resource Name (ARN) of the client certificate used to securely connect to a Kafka target endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityProtocol</i> Set secure connection to a Kafka target endpoint using Transport Layer Security (TLS). Options include <code>ssl-encryption</code>, <code>ssl-authentication</code>, and <code>sasl-ssl</code>. <code>sasl-ssl</code> requires <code>SaslUsername</code> and <code>SaslPassword</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeNullAndEmpty</i> Include NULL and empty columns for records migrated to the endpoint. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MessageMaxBytes</i> The maximum size in bytes for records created on the endpoint The default is 1,000,000.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeControlDetails</i> Shows detailed control information for table definition, column definition, and table and column changes in the Kafka message output. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeTableAlterOperations</i> Includes any data definition language (DDL) operations that change the table in the control data, such as <code>rename-table</code>, <code>drop-table</code>, <code>add-column</code>, <code>drop-column</code>, and <code>rename-column</code>. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PartitionIncludeSchemaTable</i> Prefixes schema and table names to partition values, when the partition type is <code>primary-key-type</code>. Doing this increases data distribution among Kafka partitions. For example, suppose that a SysBench schema has thousands of tables and each table has only limited range for a primary key. In this case, the same primary key is sent from thousands of tables to the same partition, which causes throttling. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludePartitionValue</i> Shows the partition value within the Kafka message output, unless the partition type is <code>schema-table-type</code>. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeTransactionDetails</i> Provides detailed transaction information from the source database. This information includes a commit timestamp, a log position, and values for <code>transaction_id</code>, previous <code>transaction_id</code>, and <code>transaction_record_id</code> (the record offset within a transaction). The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MessageFormat</i> The output format for the records created on the endpoint. The message format is <code>JSON</code> (default) or <code>JSON_UNFORMATTED</code> (a single line with no tab).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Topic</i> The topic to which you migrate the data. If you don't specify a topic, AWS DMS specifies <code>"kafka-default-topic"</code> as the migration topic.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Broker</i> A comma-separated list of one or more broker locations in your Kafka cluster that host your Kafka instance. Specify each broker location in the form <code> <i>broker-hostname-or-ip</i>:<i>port</i> </code>. For example, <code>"ec2-12-345-678-901.compute-1.amazonaws.com:2345"</code>. For more information and examples of specifying a list of broker locations, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Kafka.html">Using Apache Kafka as a target for AWS Database Migration Service</a> in the <i>AWS Data Migration Service User Guide</i>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorRetryDuration</i> The maximum number of seconds for which DMS retries failed API requests to the Elasticsearch cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FullLoadErrorPercentage</i> The maximum percentage of records that can fail to be written before a full load operation stops. To avoid early failure, this counter is only effective after 1000 records are transferred. Elasticsearch also has the concept of error monitoring during the last 10 minutes of an Observation Window. If transfer of all records fail in the last 10 minutes, the full load operation stops. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointUri</i> The endpoint for the Elasticsearch cluster. AWS DMS uses HTTPS if a transport protocol (http/https) is not specified.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceAccessRoleArn</i> The Amazon Resource Name (ARN) used by service to access the IAM role.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IamAuthEnabled</i> If you want AWS Identity and Access Management (IAM) authorization enabled for this endpoint, set this parameter to <code>true</code>. Then attach the appropriate IAM policy document to your service role specified by <code>ServiceAccessRoleArn</code>. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxRetryCount</i> The number of times for AWS DMS to retry a bulk load of migrated graph data to the Neptune target database before raising an error. The default is 5.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxFileSize</i> The maximum size in kilobytes of migrated graph data stored in a .csv file before AWS DMS bulk-loads the data to the Neptune target database. The default is 1,048,576 KB. If the bulk load is successful, AWS DMS clears the bucket, ready to store the next batch of migrated graph data.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorRetryDuration</i> The number of milliseconds for AWS DMS to wait to retry a bulk-load of migrated graph data to the Neptune target database before raising an error. The default is 250.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3BucketFolder</i> A folder path where you want AWS DMS to store migrated graph data in the S3 bucket specified by <code>S3BucketName</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3BucketName</i> The name of the Amazon S3 bucket where AWS DMS can temporarily store migrated graph data in .csv files before bulk-loading it to the Neptune target database. AWS DMS maps the SQL source data to graph data before storing it in these .csv files.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceAccessRoleArn</i> The Amazon Resource Name (ARN) of the service role that you created for the Neptune target endpoint. For more information, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Neptune.html#CHAP_Target.Neptune.ServiceRole">Creating an IAM Service Role for Accessing Amazon Neptune as a Target</a> in the <i>AWS Database Migration Service User Guide. </i> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerSecretId</i> The full ARN, partial ARN, or friendly name of the <code>SecretsManagerSecret</code> that contains the Amazon Redshift endpoint connection details.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerAccessRoleArn</i> The full Amazon Resource Name (ARN) of the IAM role that specifies AWS DMS as the trusted entity and grants the required permissions to access the value in <code>SecretsManagerSecret</code>. <code>SecretsManagerSecret</code> has the value of the AWS Secrets Manager secret that allows access to the Amazon Redshift endpoint. <note> You can specify one of two sets of values for these permissions. You can specify the values for this setting and <code>SecretsManagerSecretId</code>. Or you can specify clear-text values for <code>UserName</code>, <code>Password</code>, <code>ServerName</code>, and <code>Port</code>. You can't specify both. For more information on creating this <code>SecretsManagerSecret</code> and the <code>SecretsManagerAccessRoleArn</code> and <code>SecretsManagerSecretId</code> required to access it, see <a href="https://docs.aws.amazon.com/https:/docs.aws.amazon.com/dms/latest/userguide/CHAP_Security.html#security-iam-secretsmanager">Using secrets to access AWS Database Migration Service resources</a> in the <i>AWS Database Migration Service User Guide</i>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>WriteBufferSize</i> The size (in KB) of the in-memory file write buffer used when generating .csv files on the local disk at the DMS replication instance. The default value is 1000 (buffer size is 1000KB).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Username</i> An Amazon Redshift user name for a registered user.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TruncateColumns</i> A value that specifies to truncate data in columns to the appropriate number of characters, so that the data fits in the column. This parameter applies only to columns with a VARCHAR or CHAR data type, and rows with a size of 4 MB or less. Choose <code>true</code> to truncate data. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TrimBlanks</i> A value that specifies to remove the trailing white space characters from a VARCHAR string. This parameter applies only to columns with a VARCHAR data type. Choose <code>true</code> to remove unneeded white space. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TimeFormat</i> The time format that you want to use. Valid values are <code>auto</code> (case-sensitive), <code>'timeformat_string'</code>, <code>'epochsecs'</code>, or <code>'epochmillisecs'</code>. It defaults to 10. Using <code>auto</code> recognizes most strings, even some that aren't supported when you use a time format string.  If your date and time values use formats different from each other, set this parameter to <code>auto</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerSideEncryptionKmsKeyId</i> The AWS KMS key ID. If you are using <code>SSE_KMS</code> for the <code>EncryptionMode</code>, provide this key ID. The key that you use needs an attached policy that enables IAM user permissions and allows use of the key.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceAccessRoleArn</i> The Amazon Resource Name (ARN) of the IAM role that has access to the Amazon Redshift service.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerName</i> The name of the Amazon Redshift cluster you are using.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplaceChars</i> A value that specifies to replaces the invalid characters specified in <code>ReplaceInvalidChars</code>, substituting the specified characters instead. The default is <code>"?"</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplaceInvalidChars</i> A list of characters that you want to replace. Use with <code>ReplaceChars</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RemoveQuotes</i> A value that specifies to remove surrounding quotation marks from strings in the incoming data. All characters within the quotation marks, including delimiters, are retained. Choose <code>true</code> to remove quotation marks. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> The port number for Amazon Redshift. The default value is 5439.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Password</i> The password for the user named in the <code>username</code> property.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxFileSize</i> The maximum size (in KB) of any .csv file used to load data on an S3 bucket and transfer data to Amazon Redshift. It defaults to 1048576KB (1 GB).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LoadTimeout</i> The amount of time to wait (in milliseconds) before timing out of operations performed by AWS DMS on a Redshift cluster, such as Redshift COPY, INSERT, DELETE, and UPDATE.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FileTransferUploadStreams</i> The number of threads used to upload a single file. This parameter accepts a value from 1 through 64. It defaults to 10. The number of parallel streams used to upload a single .csv file to an S3 bucket using S3 Multipart Upload. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html">Multipart upload overview</a>.   <code>FileTransferUploadStreams</code> accepts a value from 1 through 64. It defaults to 10.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ExplicitIds</i> This setting is only valid for a full-load migration task. Set <code>ExplicitIds</code> to <code>true</code> to have tables with <code>IDENTITY</code> columns override their auto-generated values with explicit values loaded from the source data files used to populate the tables. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EncryptionMode</i> The type of server-side encryption that you want to use for your data. This encryption type is part of the endpoint settings or the extra connections attributes for Amazon S3. You can choose either <code>SSE_S3</code> (the default) or <code>SSE_KMS</code>.  <note> For the <code>ModifyEndpoint</code> operation, you can change the existing value of the <code>EncryptionMode</code> parameter from <code>SSE_KMS</code> to <code>SSE_S3</code>. But you can’t change the existing value from <code>SSE_S3</code> to <code>SSE_KMS</code>. </note> To use <code>SSE_S3</code>, create an AWS Identity and Access Management (IAM) role with a policy that allows <code>"arn:aws:s3:::*"</code> to use the following actions: <code>"s3:PutObject", "s3:ListBucket"</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EmptyAsNull</i> A value that specifies whether AWS DMS should migrate empty CHAR and VARCHAR fields as NULL. A value of <code>true</code> sets empty CHAR and VARCHAR fields to null. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DateFormat</i> The date format that you are using. Valid values are <code>auto</code> (case-sensitive), your date format string enclosed in quotes, or NULL. If this parameter is left unset (NULL), it defaults to a format of 'YYYY-MM-DD'. Using <code>auto</code> recognizes most strings, even some that aren't supported when you use a date format string.  If your date and time values use formats different from each other, set this to <code>auto</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> The name of the Amazon Redshift data warehouse (service) that you are working with.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ConnectionTimeout</i> A value that sets the amount of time to wait (in milliseconds) before timing out, beginning from when you initially establish a connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CompUpdate</i> If you set <code>CompUpdate</code> to <code>true</code> Amazon Redshift applies automatic compression if the table is empty. This applies even if the table columns already have encodings other than <code>RAW</code>. If you set <code>CompUpdate</code> to <code>false</code>, automatic compression is disabled and existing column encodings aren't changed. The default is <code>true</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CaseSensitiveNames</i> If Amazon Redshift is configured to support case sensitive schema names, set <code>CaseSensitiveNames</code> to <code>true</code>. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BucketName</i> The name of the intermediate S3 bucket used to store .csv files before uploading data to Redshift.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BucketFolder</i> An S3 folder where the comma-separated-value (.csv) files are stored before being uploaded to the target Redshift cluster.  For full load mode, AWS DMS converts source records into .csv files and loads them to the <i>BucketFolder/TableID</i> path. AWS DMS uses the Redshift <code>COPY</code> command to upload the .csv files to the target table. The files are deleted once the <code>COPY</code> operation has finished. For more information, see <a href="https://docs.aws.amazon.com/redshift/latest/dg/r_COPY.html">COPY</a> in the <i>Amazon Redshift Database Developer Guide</i>. For change-data-capture (CDC) mode, AWS DMS creates a <i>NetChanges</i> table, and loads the .csv files to this <i>BucketFolder/NetChangesTableID</i> path.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AfterConnectScript</i> Code to run after connecting. This parameter should contain the code itself, not the name of a file containing the code.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AcceptAnyDate</i> A value that indicates to allow any date format, including invalid formats such as 00/00/00 00:00:00, to be loaded without generating an error. You can choose <code>true</code> or <code>false</code> (the default). This parameter applies only to TIMESTAMP and DATE columns. Always use ACCEPTANYDATE with the DATEFORMAT parameter. If the date format for the data doesn't match the DATEFORMAT specification, Amazon Redshift inserts a NULL value into that field. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerSecretId</i> The full ARN, partial ARN, or friendly name of the <code>SecretsManagerSecret</code> that contains the PostgreSQL endpoint connection details.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerAccessRoleArn</i> The full Amazon Resource Name (ARN) of the IAM role that specifies AWS DMS as the trusted entity and grants the required permissions to access the value in <code>SecretsManagerSecret</code>. <code>SecretsManagerSecret</code> has the value of the AWS Secrets Manager secret that allows access to the PostgreSQL endpoint. <note> You can specify one of two sets of values for these permissions. You can specify the values for this setting and <code>SecretsManagerSecretId</code>. Or you can specify clear-text values for <code>UserName</code>, <code>Password</code>, <code>ServerName</code>, and <code>Port</code>. You can't specify both. For more information on creating this <code>SecretsManagerSecret</code> and the <code>SecretsManagerAccessRoleArn</code> and <code>SecretsManagerSecretId</code> required to access it, see <a href="https://docs.aws.amazon.com/https:/docs.aws.amazon.com/dms/latest/userguide/CHAP_Security.html#security-iam-secretsmanager">Using secrets to access AWS Database Migration Service resources</a> in the <i>AWS Database Migration Service User Guide</i>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SlotName</i> Sets the name of a previously created logical replication slot for a CDC load of the PostgreSQL source instance. When used with the AWS DMS API <code>CdcStartPosition</code> request parameter, this attribute also enables using native CDC start points.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Username</i> Endpoint connection user name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerName</i> Fully qualified domain name of the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Endpoint TCP port.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Password</i> Endpoint connection password.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FailTasksOnLobTruncation</i> When set to <code>true</code>, this value causes a task to fail if the actual size of a LOB column is greater than the specified <code>LobMaxSize</code>. If task is set to Limited LOB mode and this option is set to true, the task fails instead of truncating the LOB data.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ExecuteTimeout</i> Sets the client statement timeout for the PostgreSQL instance, in seconds. The default value is 60 seconds. Example: <code>executeTimeout=100;</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DdlArtifactsSchema</i> The schema in which the operational DDL database artifacts are created. Example: <code>ddlArtifactsSchema=xyzddlschema;</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> Database name for the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxFileSize</i> Specifies the maximum size (in KB) of any .csv file used to transfer data to PostgreSQL. Example: <code>maxFileSize=512</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CaptureDdls</i> To capture DDL events, AWS DMS creates various artifacts in the PostgreSQL database when the task starts. You can later remove these artifacts. If this value is set to <code>N</code>, you don't have to create tables or triggers on the source database.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AfterConnectScript</i> For use with change data capture (CDC) only, this attribute has AWS DMS bypass foreign keys and user triggers to reduce the time it takes to bulk load data. Example: <code>afterConnectScript=SET session_replication_role='replica'</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerSecretId</i> The full ARN, partial ARN, or friendly name of the <code>SecretsManagerSecret</code> that contains the MySQL endpoint connection details.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerAccessRoleArn</i> The full Amazon Resource Name (ARN) of the IAM role that specifies AWS DMS as the trusted entity and grants the required permissions to access the value in <code>SecretsManagerSecret</code>. <code>SecretsManagerSecret</code> has the value of the AWS Secrets Manager secret that allows access to the MySQL endpoint. <note> You can specify one of two sets of values for these permissions. You can specify the values for this setting and <code>SecretsManagerSecretId</code>. Or you can specify clear-text values for <code>UserName</code>, <code>Password</code>, <code>ServerName</code>, and <code>Port</code>. You can't specify both. For more information on creating this <code>SecretsManagerSecret</code> and the <code>SecretsManagerAccessRoleArn</code> and <code>SecretsManagerSecretId</code> required to access it, see <a href="https://docs.aws.amazon.com/https:/docs.aws.amazon.com/dms/latest/userguide/CHAP_Security.html#security-iam-secretsmanager">Using secrets to access AWS Database Migration Service resources</a> in the <i>AWS Database Migration Service User Guide</i>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Username</i> Endpoint connection user name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerTimezone</i> Specifies the time zone for the source MySQL database. Example: <code>serverTimezone=US/Pacific;</code>  Note: Do not enclose time zones in single quotes.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerName</i> Fully qualified domain name of the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Endpoint TCP port.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Password</i> Endpoint connection password.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ParallelLoadThreads</i> Improves performance when loading data into the MySQL-compatible target database. Specifies how many threads to use to load the data into the MySQL-compatible target database. Setting a large number of threads can have an adverse effect on database performance, because a separate connection is required for each thread. Example: <code>parallelLoadThreads=1</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxFileSize</i> Specifies the maximum size (in KB) of any .csv file used to transfer data to a MySQL-compatible database. Example: <code>maxFileSize=512</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetDbType</i> Specifies where to migrate source tables on the target, either to a single database or multiple databases. Example: <code>targetDbType=MULTIPLE_DATABASES</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EventsPollInterval</i> Specifies how often to check the binary log for new changes/events when the database is idle. Example: <code>eventsPollInterval=5;</code>  In the example, AWS DMS checks for changes in the binary logs every five seconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> Database name for the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CleanSourceMetadataOnMismatch</i> Adjusts the behavior of DMS when migrating from an SQL Server source database that is hosted as part of an Always On availability group cluster. If you need DMS to poll all the nodes in the Always On cluster for transaction backups, set this attribute to <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AfterConnectScript</i> Specifies a script to run immediately after AWS DMS connects to the endpoint. The migration task continues running regardless if the SQL statement succeeds or fails.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerOracleAsmSecretId</i> Required only if your Oracle endpoint uses Advanced Storage Manager (ASM). The full ARN, partial ARN, or friendly name of the <code>SecretsManagerOracleAsmSecret</code> that contains the Oracle ASM connection details for the Oracle endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerOracleAsmAccessRoleArn</i> Required only if your Oracle endpoint uses Advanced Storage Manager (ASM). The full ARN of the IAM role that specifies AWS DMS as the trusted entity and grants the required permissions to access the <code>SecretsManagerOracleAsmSecret</code>. This <code>SecretsManagerOracleAsmSecret</code> has the secret value that allows access to the Oracle ASM of the endpoint. <note> You can specify one of two sets of values for these permissions. You can specify the values for this setting and <code>SecretsManagerOracleAsmSecretId</code>. Or you can specify clear-text values for <code>AsmUserName</code>, <code>AsmPassword</code>, and <code>AsmServerName</code>. You can't specify both. For more information on creating this <code>SecretsManagerOracleAsmSecret</code> and the <code>SecretsManagerOracleAsmAccessRoleArn</code> and <code>SecretsManagerOracleAsmSecretId</code> required to access it, see <a href="https://docs.aws.amazon.com/https:/docs.aws.amazon.com/dms/latest/userguide/CHAP_Security.html#security-iam-secretsmanager">Using secrets to access AWS Database Migration Service resources</a> in the <i>AWS Database Migration Service User Guide</i>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerSecretId</i> The full ARN, partial ARN, or friendly name of the <code>SecretsManagerSecret</code> that contains the Oracle endpoint connection details.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerAccessRoleArn</i> The full Amazon Resource Name (ARN) of the IAM role that specifies AWS DMS as the trusted entity and grants the required permissions to access the value in <code>SecretsManagerSecret</code>. <code>SecretsManagerSecret</code> has the value of the AWS Secrets Manager secret that allows access to the Oracle endpoint. <note> You can specify one of two sets of values for these permissions. You can specify the values for this setting and <code>SecretsManagerSecretId</code>. Or you can specify clear-text values for <code>UserName</code>, <code>Password</code>, <code>ServerName</code>, and <code>Port</code>. You can't specify both. For more information on creating this <code>SecretsManagerSecret</code> and the <code>SecretsManagerAccessRoleArn</code> and <code>SecretsManagerSecretId</code> required to access it, see <a href="https://docs.aws.amazon.com/https:/docs.aws.amazon.com/dms/latest/userguide/CHAP_Security.html#security-iam-secretsmanager">Using secrets to access AWS Database Migration Service resources</a> in the <i>AWS Database Migration Service User Guide</i>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Username</i> Endpoint connection user name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SpatialDataOptionToGeoJsonFunctionName</i> Use this attribute to convert <code>SDO_GEOMETRY</code> to <code>GEOJSON</code> format. By default, DMS calls the <code>SDO2GEOJSON</code> custom function if present and accessible. Or you can create your own custom function that mimics the operation of <code>SDOGEOJSON</code> and set <code>SpatialDataOptionToGeoJsonFunctionName</code> to call it instead. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerName</i> Fully qualified domain name of the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityDbEncryptionName</i> For an Oracle source endpoint, the name of a key used for the transparent data encryption (TDE) of the columns and tablespaces in an Oracle source database that is encrypted using TDE. The key value is the value of the <code>SecurityDbEncryption</code> setting. For more information on setting the key name value of <code>SecurityDbEncryptionName</code>, see the information and example for setting the <code>securityDbEncryptionName</code> extra connection attribute in <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.Encryption"> Supported encryption methods for using Oracle as a source for AWS DMS</a> in the <i>AWS Database Migration Service User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityDbEncryption</i> For an Oracle source endpoint, the transparent data encryption (TDE) password required by AWM DMS to access Oracle redo logs encrypted by TDE using Binary Reader. It is also the <code> <i>TDE_Password</i> </code> part of the comma-separated value you set to the <code>Password</code> request parameter when you create the endpoint. The <code>SecurityDbEncryptian</code> setting is related to this <code>SecurityDbEncryptionName</code> setting. For more information, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.Encryption"> Supported encryption methods for using Oracle as a source for AWS DMS</a> in the <i>AWS Database Migration Service User Guide</i>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RetryInterval</i> Specifies the number of seconds that the system waits before resending a query. Example: <code>retryInterval=6;</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadTableSpaceName</i> When set to <code>true</code>, this attribute supports tablespace replication.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Endpoint TCP port.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Password</i> Endpoint connection password.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberDatatypeScale</i> Specifies the number scale. You can select a scale up to 38, or you can select FLOAT. By default, the NUMBER data type is converted to precision 38, scale 10. Example: <code>numberDataTypeScale=12</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FailTasksOnLobTruncation</i> When set to <code>true</code>, this attribute causes a task to fail if the actual size of an LOB column is greater than the specified <code>LobMaxSize</code>. If a task is set to limited LOB mode and this option is set to <code>true</code>, the task fails instead of truncating the LOB data.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DirectPathParallelLoad</i> When set to <code>true</code>, this attribute specifies a parallel load when <code>useDirectPathFullLoad</code> is set to <code>Y</code>. This attribute also only applies when you use the AWS DMS parallel load feature. Note that the target table cannot have any constraints or indexes.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> Database name for the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CharLengthSemantics</i> Specifies whether the length of a character column is in bytes or in characters. To indicate that the character column length is in characters, set this attribute to <code>CHAR</code>. Otherwise, the character column length is in bytes. Example: <code>charLengthSemantics=CHAR;</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AsmUser</i> For an Oracle source endpoint, your ASM user name. You can set this value from the <code>asm_user</code> value. You set <code>asm_user</code> as part of the extra connection attribute string to access an Oracle server with Binary Reader that uses ASM. For more information, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.CDC.Configuration">Configuration for change data capture (CDC) on an Oracle source database</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AsmServer</i> For an Oracle source endpoint, your ASM server address. You can set this value from the <code>asm_server</code> value. You set <code>asm_server</code> as part of the extra connection attribute string to access an Oracle server with Binary Reader that uses ASM. For more information, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.CDC.Configuration">Configuration for change data capture (CDC) on an Oracle source database</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AsmPassword</i> For an Oracle source endpoint, your Oracle Automatic Storage Management (ASM) password. You can set this value from the <code> <i>asm_user_password</i> </code> value. You set this value as part of the comma-separated value that you set to the <code>Password</code> request parameter when you create the endpoint to access transaction logs using Binary Reader. For more information, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.CDC.Configuration">Configuration for change data capture (CDC) on an Oracle source database</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ArchivedLogsOnly</i> When this field is set to <code>Y</code>, AWS DMS only accesses the archived redo logs. If the archived redo logs are stored on Oracle ASM only, the AWS DMS user account needs to be granted ASM privileges.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DirectPathNoLog</i> When set to <code>true</code>, this attribute helps to increase the commit rate on the Oracle target database by writing directly to tables and not writing a trail to database logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableHomogenousTablespace</i> Set this attribute to enable homogenous tablespace replication and create existing tables or indexes under the same tablespace on the target.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplacePathPrefix</i> Set this attribute to true in order to use the Binary Reader to capture change data for an Amazon RDS for Oracle as the source. This setting tells DMS instance to replace the default Oracle root with the specified <code>usePathPrefix</code> setting to access the redo logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UsePathPrefix</i> Set this string attribute to the required value in order to use the Binary Reader to capture change data for an Amazon RDS for Oracle as the source. This value specifies the path prefix used to replace the default Oracle root to access the redo logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OraclePathPrefix</i> Set this string attribute to the required value in order to use the Binary Reader to capture change data for an Amazon RDS for Oracle as the source. This value specifies the default Oracle root used to access the redo logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UseAlternateFolderForOnline</i> Set this attribute to <code>true</code> in order to use the Binary Reader to capture change data for an Amazon RDS for Oracle as the source. This tells the DMS instance to use any specified prefix replacement to access all online redo logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AccessAlternateDirectly</i> Set this attribute to <code>false</code> in order to use the Binary Reader to capture change data for an Amazon RDS for Oracle as the source. This tells the DMS instance to not access redo logs through any specified path prefix replacement using direct file access.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadAheadBlocks</i> Set this attribute to change the number of read-ahead blocks that DMS configures to perform a Change Data Capture (CDC) load using Oracle Automatic Storage Management (ASM). You can specify an integer value between 1000 (the default) and 200,000 (the maximum).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ParallelAsmReadThreads</i> Set this attribute to change the number of threads that DMS configures to perform a Change Data Capture (CDC) load using Oracle Automatic Storage Management (ASM). You can specify an integer value between 2 (the default) and 8 (the maximum). Use this attribute together with the <code>readAheadBlocks</code> attribute.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowSelectNestedTables</i> Set this attribute to <code>true</code> to enable replication of Oracle tables containing columns that are nested tables or defined types.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AdditionalArchivedLogDestId</i> Set this attribute with <code>archivedLogDestId</code> in a primary/ standby setup. This attribute is useful in the case of a switchover. In this case, AWS DMS needs to know which destination to get archive redo logs from to read changes. This need arises because the previous primary instance is now a standby instance after switchover.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ArchivedLogDestId</i> Specifies the destination of the archived redo logs. The value should be the same as the DEST_ID number in the v$archived_log table. When working with multiple log destinations (DEST_ID), we recommend that you to specify an archived redo logs location identifier. Doing this improves performance by ensuring that the correct logs are accessed from the outset.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AddSupplementalLogging</i> Set this attribute to set up table-level supplemental logging for the Oracle database. This attribute enables PRIMARY KEY supplemental logging on all tables selected for a migration task. If you use this option, you still need to enable database-level supplemental logging.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerSecretId</i> The full ARN, partial ARN, or friendly name of the <code>SecretsManagerSecret</code> that contains the SAP SAE endpoint connection details.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerAccessRoleArn</i> The full Amazon Resource Name (ARN) of the IAM role that specifies AWS DMS as the trusted entity and grants the required permissions to access the value in <code>SecretsManagerSecret</code>. <code>SecretsManagerSecret</code> has the value of the AWS Secrets Manager secret that allows access to the SAP ASE endpoint. <note> You can specify one of two sets of values for these permissions. You can specify the values for this setting and <code>SecretsManagerSecretId</code>. Or you can specify clear-text values for <code>UserName</code>, <code>Password</code>, <code>ServerName</code>, and <code>Port</code>. You can't specify both. For more information on creating this <code>SecretsManagerSecret</code> and the <code>SecretsManagerAccessRoleArn</code> and <code>SecretsManagerSecretId</code> required to access it, see <a href="https://docs.aws.amazon.com/https:/docs.aws.amazon.com/dms/latest/userguide/CHAP_Security.html#security-iam-secretsmanager">Using secrets to access AWS Database Migration Service resources</a> in the <i>AWS Database Migration Service User Guide</i>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Username</i> Endpoint connection user name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerName</i> Fully qualified domain name of the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Endpoint TCP port.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Password</i> Endpoint connection password.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> Database name for the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerSecretId</i> The full ARN, partial ARN, or friendly name of the <code>SecretsManagerSecret</code> that contains the SQL Server endpoint connection details.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerAccessRoleArn</i> The full Amazon Resource Name (ARN) of the IAM role that specifies AWS DMS as the trusted entity and grants the required permissions to access the value in <code>SecretsManagerSecret</code>. <code>SecretsManagerSecret</code> has the value of the AWS Secrets Manager secret that allows access to the SQL Server endpoint. <note> You can specify one of two sets of values for these permissions. You can specify the values for this setting and <code>SecretsManagerSecretId</code>. Or you can specify clear-text values for <code>UserName</code>, <code>Password</code>, <code>ServerName</code>, and <code>Port</code>. You can't specify both. For more information on creating this <code>SecretsManagerSecret</code> and the <code>SecretsManagerAccessRoleArn</code> and <code>SecretsManagerSecretId</code> required to access it, see <a href="https://docs.aws.amazon.com/https:/docs.aws.amazon.com/dms/latest/userguide/CHAP_Security.html#security-iam-secretsmanager">Using secrets to access AWS Database Migration Service resources</a> in the <i>AWS Database Migration Service User Guide</i>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UseThirdPartyBackupDevice</i> When this attribute is set to <code>Y</code>, DMS processes third-party transaction log backups if they are created in native format.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UseBcpFullLoad</i> Use this to attribute to transfer data for full-load operations using BCP. When the target table contains an identity column that does not exist in the source table, you must disable the use BCP for loading table option.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Username</i> Endpoint connection user name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerName</i> Fully qualified domain name of the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SafeguardPolicy</i> Use this attribute to minimize the need to access the backup log and enable AWS DMS to prevent truncation using one of the following two methods.  <i>Start transactions in the database:</i> This is the default method. When this method is used, AWS DMS prevents TLOG truncation by mimicking a transaction in the database. As long as such a transaction is open, changes that appear after the transaction started aren't truncated. If you need Microsoft Replication to be enabled in your database, then you must choose this method.  <i>Exclusively use sp_repldone within a single task</i>: When this method is used, AWS DMS reads the changes and then uses sp_repldone to mark the TLOG transactions as ready for truncation. Although this method doesn't involve any transactional activities, it can only be used when Microsoft Replication isn't running. Also, when using this method, only one AWS DMS task can access the database at any given time. Therefore, if you need to run parallel AWS DMS tasks against the same database, use the default method.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadBackupOnly</i> When this attribute is set to <code>Y</code>, AWS DMS only reads changes from transaction log backups and doesn't read from the active transaction log file during ongoing replication. Setting this parameter to <code>Y</code> enables you to control active transaction log file growth during full load and ongoing replication tasks. However, it can add some source latency to ongoing replication.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>QuerySingleAlwaysOnNode</i> Cleans and recreates table metadata information on the replication instance when a mismatch occurs. An example is a situation where running an alter DDL statement on a table might result in different information about the table cached in the replication instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Password</i> Endpoint connection password.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ControlTablesFileGroup</i> Specifies a file group for the AWS DMS internal tables. When the replication task starts, all the internal AWS DMS control tables (awsdms_ apply_exception, awsdms_apply, awsdms_changes) are created for the specified file group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> Database name for the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BcpPacketSize</i> The maximum size of the packets (in bytes) used to transfer data using BCP.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Endpoint TCP port.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerSecretId</i> The full ARN, partial ARN, or friendly name of the <code>SecretsManagerSecret</code> that contains the Db2 LUW endpoint connection details.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerAccessRoleArn</i> The full Amazon Resource Name (ARN) of the IAM role that specifies AWS DMS as the trusted entity and grants the required permissions to access the value in <code>SecretsManagerSecret</code>. <code>SecretsManagerSecret</code> has the value of the AWS Secrets Manager secret that allows access to the Db2 LUW endpoint.  <note> You can specify one of two sets of values for these permissions. You can specify the values for this setting and <code>SecretsManagerSecretId</code>. Or you can specify clear-text values for <code>UserName</code>, <code>Password</code>, <code>ServerName</code>, and <code>Port</code>. You can't specify both. For more information on creating this <code>SecretsManagerSecret</code> and the <code>SecretsManagerAccessRoleArn</code> and <code>SecretsManagerSecretId</code> required to access it, see <a href="https://docs.aws.amazon.com/https:/docs.aws.amazon.com/dms/latest/userguide/CHAP_Security.html#security-iam-secretsmanager">Using secrets to access AWS Database Migration Service resources</a> in the <i>AWS Database Migration Service User Guide</i>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Username</i> Endpoint connection user name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxKBytesPerRead</i> Maximum number of bytes per read, as a NUMBER value. The default is 64 KB.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CurrentLsn</i> For ongoing replication (CDC), use CurrentLSN to specify a log sequence number (LSN) where you want the replication to start.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SetDataCaptureChanges</i> Enables ongoing replication (CDC) as a BOOLEAN value. The default is true.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerName</i> Fully qualified domain name of the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Endpoint TCP port.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Password</i> Endpoint connection password.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> Database name for the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerSecretId</i> The full ARN, partial ARN, or friendly name of the <code>SecretsManagerSecret</code> that contains the DocumentDB endpoint connection details.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerAccessRoleArn</i> The full Amazon Resource Name (ARN) of the IAM role that specifies AWS DMS as the trusted entity and grants the required permissions to access the value in <code>SecretsManagerSecret</code>. <code>SecretsManagerSecret</code> has the value of the AWS Secrets Manager secret that allows access to the DocumentDB endpoint. <note> You can specify one of two sets of values for these permissions. You can specify the values for this setting and <code>SecretsManagerSecretId</code>. Or you can specify clear-text values for <code>UserName</code>, <code>Password</code>, <code>ServerName</code>, and <code>Port</code>. You can't specify both. For more information on creating this <code>SecretsManagerSecret</code> and the <code>SecretsManagerAccessRoleArn</code> and <code>SecretsManagerSecretId</code> required to access it, see <a href="https://docs.aws.amazon.com/https:/docs.aws.amazon.com/dms/latest/userguide/CHAP_Security.html#security-iam-secretsmanager">Using secrets to access AWS Database Migration Service resources</a> in the <i>AWS Database Migration Service User Guide</i>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The AWS KMS key identifier that is used to encrypt the content on the replication instance. If you don't specify a value for the <code>KmsKeyId</code> parameter, then AWS DMS uses your default encryption key. AWS KMS creates the default encryption key for your AWS account. Your AWS account has a different default encryption key for each AWS Region.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DocsToInvestigate</i>  Indicates the number of documents to preview to determine the document organization. Use this setting when <code>NestingLevel</code> is set to <code>"one"</code>.  Must be a positive value greater than <code>0</code>. Default value is <code>1000</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ExtractDocId</i>  Specifies the document ID. Use this setting when <code>NestingLevel</code> is set to <code>"none"</code>.  Default value is <code>"false"</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NestingLevel</i>  Specifies either document or table mode.  Default value is <code>"none"</code>. Specify <code>"none"</code> to use document mode. Specify <code>"one"</code> to use table mode.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i>  The database name on the DocumentDB source endpoint. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i>  The port value for the DocumentDB source endpoint. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerName</i>  The name of the server on the DocumentDB source endpoint. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Password</i>  The password for the user account you use to access the DocumentDB source endpoint. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Username</i> The user name you use to access the DocumentDB source endpoint. <br/>        """
        pass

    def create_event_subscription(self, SnsTopicArn: str, SubscriptionName: str, SourceType: str=None, EventCategories: List[String]=None, SourceIds: List[String]=None, Enabled: BooleanOptional=None, Tags: List[Tag]=None) -> CreateEventSubscriptionResponse:
        r""" Creates an AWS DMS event notification subscription.  You can specify the type of source (<code>SourceType</code>) you want to be notified of, provide a list of AWS DMS source IDs (<code>SourceIds</code>) that triggers the events, and provide a list of event categories (<code>EventCategories</code>) for events you want to be notified of. If you specify both the <code>SourceType</code> and <code>SourceIds</code>, such as <code>SourceType = replication-instance</code> and <code>SourceIdentifier = my-replinstance</code>, you will be notified of all the replication instance events for the specified source. If you specify a <code>SourceType</code> but don't specify a <code>SourceIdentifier</code>, you receive notice of the events for that source type for all your AWS DMS sources. If you don't specify either <code>SourceType</code> nor <code>SourceIdentifier</code>, you will be notified of events generated from all AWS DMS sources belonging to your customer account. For more information about AWS DMS events, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Events.html">Working with Events and Notifications</a> in the <i>AWS Database Migration Service User Guide.</i> 

        :param self:
        :param Tags:  One or more tags to be assigned to the event subscription.<br/>Enabled:   A Boolean value; set to <code>true</code> to activate the subscription, or set to <code>false</code> to create the subscription but not activate it. <br/>SourceIds:  A list of identifiers for which AWS DMS provides notification events. If you don't specify a value, notifications are provided for all sources. If you specify multiple values, they must be of the same type. For example, if you specify a database instance ID, then all of the other values must be database instance IDs.<br/>EventCategories:  A list of event categories for a source type that you want to subscribe to. For more information, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Events.html">Working with Events and Notifications</a> in the <i>AWS Database Migration Service User Guide.</i> <br/>SourceType:   The type of AWS DMS resource that generates the events. For example, if you want to be notified of events generated by a replication instance, you set this parameter to <code>replication-instance</code>. If this value isn't specified, all events are returned.  Valid values: <code>replication-instance</code> | <code>replication-task</code> <br/>SnsTopicArn:   The Amazon Resource Name (ARN) of the Amazon SNS topic created for event notification. The ARN is created by Amazon SNS when you create a topic and subscribe to it. <br/>SubscriptionName:  The name of the AWS DMS event notification subscription. This name must be less than 255 characters.<br/>
        :return: EventSubscription:  The event subscription that was created.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Boolean value that indicates if the event subscription is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EventCategoriesList</i> A lists of event categories.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceIdsList</i> A list of source Ids for the event subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceType</i>  The type of AWS DMS resource that generates events.  Valid values: replication-instance | replication-server | security-group | replication-task<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubscriptionCreationTime</i> The time the AWS DMS event notification subscription was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the AWS DMS event notification subscription. Constraints: Can be one of the following: creating | modifying | deleting | active | no-permission | topic-not-exist The status "no-permission" indicates that AWS DMS no longer has permission to post to the SNS topic. The status "topic-not-exist" indicates that the topic was deleted after the subscription was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnsTopicArn</i> The topic ARN of the AWS DMS event notification subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustSubscriptionId</i> The AWS DMS event notification subscription Id.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomerAwsId</i> The AWS customer account associated with the AWS DMS event notification subscription.<br/>        """
        pass

    def create_replication_instance(self, ReplicationInstanceClass: str, ReplicationInstanceIdentifier: str, AllocatedStorage: int=None, VpcSecurityGroupIds: List[String]=None, AvailabilityZone: str=None, ReplicationSubnetGroupIdentifier: str=None, PreferredMaintenanceWindow: str=None, MultiAZ: BooleanOptional=None, EngineVersion: str=None, AutoMinorVersionUpgrade: BooleanOptional=None, Tags: List[Tag]=None, KmsKeyId: str=None, PubliclyAccessible: BooleanOptional=None, DnsNameServers: str=None, ResourceIdentifier: str=None) -> CreateReplicationInstanceResponse:
        r"""Creates the replication instance using the specified parameters. AWS DMS requires that your account have certain roles with appropriate permissions before you can create a replication instance. For information on the required roles, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Security.html#CHAP_Security.APIRole">Creating the IAM Roles to Use With the AWS CLI and AWS DMS API</a>. For information on the required permissions, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Security.html#CHAP_Security.IAMPermissions">IAM Permissions Needed to Use AWS DMS</a>.

        :param self:
        :param ResourceIdentifier:  A friendly name for the resource identifier at the end of the <code>EndpointArn</code> response parameter that is returned in the created <code>Endpoint</code> object. The value for this parameter can have up to 31 characters. It can contain only ASCII letters, digits, and hyphen ('-'). Also, it can't end with a hyphen or contain two consecutive hyphens, and can only begin with a letter, such as <code>Example-App-ARN1</code>. For example, this value might result in the <code>EndpointArn</code> value <code>arn:aws:dms:eu-west-1:012345678901:rep:Example-App-ARN1</code>. If you don't specify a <code>ResourceIdentifier</code> value, AWS DMS generates a default identifier value for the end of <code>EndpointArn</code>.<br/>DnsNameServers:  A list of custom DNS name servers supported for the replication instance to access your on-premise source or target database. This list overrides the default name servers supported by the replication instance. You can specify a comma-separated list of internet addresses for up to four on-premise DNS name servers. For example: <code>"1.1.1.1,2.2.2.2,3.3.3.3,4.4.4.4"</code> <br/>PubliclyAccessible:   Specifies the accessibility options for the replication instance. A value of <code>true</code> represents an instance with a public IP address. A value of <code>false</code> represents an instance with a private IP address. The default value is <code>true</code>. <br/>KmsKeyId:  An AWS KMS key identifier that is used to encrypt the data on the replication instance. If you don't specify a value for the <code>KmsKeyId</code> parameter, then AWS DMS uses your default encryption key. AWS KMS creates the default encryption key for your AWS account. Your AWS account has a different default encryption key for each AWS Region.<br/>Tags:  One or more tags to be assigned to the replication instance.<br/>AutoMinorVersionUpgrade:  A value that indicates whether minor engine upgrades are applied automatically to the replication instance during the maintenance window. This parameter defaults to <code>true</code>. Default: <code>true</code> <br/>EngineVersion:  The engine version number of the replication instance. If an engine version number is not specified when a replication instance is created, the default is the latest engine version available.<br/>MultiAZ:   Specifies whether the replication instance is a Multi-AZ deployment. You can't set the <code>AvailabilityZone</code> parameter if the Multi-AZ parameter is set to <code>true</code>. <br/>PreferredMaintenanceWindow:  The weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).  Format: <code>ddd:hh24:mi-ddd:hh24:mi</code>  Default: A 30-minute window selected at random from an 8-hour block of time per AWS Region, occurring on a random day of the week. Valid Days: Mon, Tue, Wed, Thu, Fri, Sat, Sun Constraints: Minimum 30-minute window.<br/>ReplicationSubnetGroupIdentifier:  A subnet group to associate with the replication instance.<br/>AvailabilityZone:  The Availability Zone where the replication instance will be created. The default value is a random, system-chosen Availability Zone in the endpoint's AWS Region, for example: <code>us-east-1d</code> <br/>VpcSecurityGroupIds:   Specifies the VPC security group to be used with the replication instance. The VPC security group must work with the VPC containing the replication instance. <br/>ReplicationInstanceClass:  The compute and memory capacity of the replication instance as defined for the specified replication instance class. For example to specify the instance class dms.c4.large, set this parameter to <code>"dms.c4.large"</code>. For more information on the settings and capacities for the available replication instance classes, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_ReplicationInstance.html#CHAP_ReplicationInstance.InDepth"> Selecting the right AWS DMS replication instance for your migration</a>. <br/>AllocatedStorage:  The amount of storage (in gigabytes) to be initially allocated for the replication instance.<br/>ReplicationInstanceIdentifier:  The replication instance identifier. This parameter is stored as a lowercase string. Constraints: <ul> <li> Must contain 1-63 alphanumeric characters or hyphens. </li> <li> First character must be a letter. </li> <li> Can't end with a hyphen or contain two consecutive hyphens. </li> </ul> Example: <code>myrepinstance</code> <br/>
        :return: ReplicationInstance:  The replication instance that was created.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DnsNameServers</i> The DNS name servers supported for the replication instance to access your on-premise source or target database.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FreeUntil</i>  The expiration date of the free replication instance that is part of the Free DMS program. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecondaryAvailabilityZone</i> The Availability Zone of the standby replication instance in a Multi-AZ deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PubliclyAccessible</i>  Specifies the accessibility options for the replication instance. A value of <code>true</code> represents an instance with a public IP address. A value of <code>false</code> represents an instance with a private IP address. The default value is <code>true</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationInstancePrivateIpAddresses</i> One or more private IP addresses for the replication instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationInstancePublicIpAddresses</i> One or more public IP addresses for the replication instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationInstancePrivateIpAddress</i> The private IP address of the replication instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationInstancePublicIpAddress</i> The public IP address of the replication instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationInstanceArn</i> The Amazon Resource Name (ARN) of the replication instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> An AWS KMS key identifier that is used to encrypt the data on the replication instance. If you don't specify a value for the <code>KmsKeyId</code> parameter, then AWS DMS uses your default encryption key. AWS KMS creates the default encryption key for your AWS account. Your AWS account has a different default encryption key for each AWS Region.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoMinorVersionUpgrade</i> Boolean value indicating if minor version upgrades will be automatically applied to the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> The engine version number of the replication instance. If an engine version number is not specified when a replication instance is created, the default is the latest engine version available. When modifying a major engine version of an instance, also set <code>AllowMajorVersionUpgrade</code> to <code>true</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiAZ</i>  Specifies whether the replication instance is a Multi-AZ deployment. You can't set the <code>AvailabilityZone</code> parameter if the Multi-AZ parameter is set to <code>true</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingModifiedValues</i> The pending modification values.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingModifiedValues</b>: The pending modification values.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i> The maintenance window times for the replication instance. Any pending upgrades to the replication instance are performed during this time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationSubnetGroup</i> The subnet group for the replication instance.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ReplicationSubnetGroup</b>: The subnet group for the replication instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZone</i> The Availability Zone for the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcSecurityGroups</i> The VPC security group for the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceCreateTime</i> The time the replication instance was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllocatedStorage</i> The amount of storage (in gigabytes) that is allocated for the replication instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationInstanceStatus</i> The status of the replication instance. The possible return values include: <ul> <li>  <code>"available"</code>  </li> <li>  <code>"creating"</code>  </li> <li>  <code>"deleted"</code>  </li> <li>  <code>"deleting"</code>  </li> <li>  <code>"failed"</code>  </li> <li>  <code>"modifying"</code>  </li> <li>  <code>"upgrading"</code>  </li> <li>  <code>"rebooting"</code>  </li> <li>  <code>"resetting-master-credentials"</code>  </li> <li>  <code>"storage-full"</code>  </li> <li>  <code>"incompatible-credentials"</code>  </li> <li>  <code>"incompatible-network"</code>  </li> <li>  <code>"maintenance"</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationInstanceClass</i> The compute and memory capacity of the replication instance as defined for the specified replication instance class. It is a required parameter, although a defualt value is pre-selected in the DMS console. For more information on the settings and capacities for the available replication instance classes, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_ReplicationInstance.html#CHAP_ReplicationInstance.InDepth"> Selecting the right AWS DMS replication instance for your migration</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationInstanceIdentifier</i> The replication instance identifier is a required parameter. This parameter is stored as a lowercase string. Constraints: <ul> <li> Must contain 1-63 alphanumeric characters or hyphens. </li> <li> First character must be a letter. </li> <li> Cannot end with a hyphen or contain two consecutive hyphens. </li> </ul> Example: <code>myrepinstance</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Subnets</i> The subnets that are in the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetGroupStatus</i> The status of the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The ID of the VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationSubnetGroupDescription</i> A description for the replication subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationSubnetGroupIdentifier</i> The identifier of the replication instance subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> The engine version number of the replication instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiAZ</i>  Specifies whether the replication instance is a Multi-AZ deployment. You can't set the <code>AvailabilityZone</code> parameter if the Multi-AZ parameter is set to <code>true</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AllocatedStorage</i> The amount of storage (in gigabytes) that is allocated for the replication instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationInstanceClass</i> The compute and memory capacity of the replication instance as defined for the specified replication instance class. For more information on the settings and capacities for the available replication instance classes, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_ReplicationInstance.html#CHAP_ReplicationInstance.InDepth"> Selecting the right AWS DMS replication instance for your migration</a>. <br/>        """
        pass

    def create_replication_subnet_group(self, SubnetIds: List[String], ReplicationSubnetGroupDescription: str, ReplicationSubnetGroupIdentifier: str, Tags: List[Tag]=None) -> CreateReplicationSubnetGroupResponse:
        r"""Creates a replication subnet group given a list of the subnet IDs in a VPC.

        :param self:
        :param Tags:  One or more tags to be assigned to the subnet group.<br/>SubnetIds:  One or more subnet IDs to be assigned to the subnet group.<br/>ReplicationSubnetGroupDescription:  The description for the subnet group.<br/>ReplicationSubnetGroupIdentifier:  The name for the replication subnet group. This value is stored as a lowercase string. Constraints: Must contain no more than 255 alphanumeric characters, periods, spaces, underscores, or hyphens. Must not be "default". Example: <code>mySubnetgroup</code> <br/>
        :return: ReplicationSubnetGroup:  The replication subnet group that was created.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Subnets</i> The subnets that are in the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetGroupStatus</i> The status of the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The ID of the VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationSubnetGroupDescription</i> A description for the replication subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationSubnetGroupIdentifier</i> The identifier of the replication instance subnet group.<br/>        """
        pass

    def create_replication_task(self, TableMappings: str, MigrationType: str, ReplicationInstanceArn: str, TargetEndpointArn: str, SourceEndpointArn: str, ReplicationTaskIdentifier: str, ReplicationTaskSettings: str=None, CdcStartTime: TStamp=None, CdcStartPosition: str=None, CdcStopPosition: str=None, Tags: List[Tag]=None, TaskData: str=None, ResourceIdentifier: str=None) -> CreateReplicationTaskResponse:
        r"""Creates a replication task using the specified parameters.

        :param self:
        :param ResourceIdentifier:  A friendly name for the resource identifier at the end of the <code>EndpointArn</code> response parameter that is returned in the created <code>Endpoint</code> object. The value for this parameter can have up to 31 characters. It can contain only ASCII letters, digits, and hyphen ('-'). Also, it can't end with a hyphen or contain two consecutive hyphens, and can only begin with a letter, such as <code>Example-App-ARN1</code>. For example, this value might result in the <code>EndpointArn</code> value <code>arn:aws:dms:eu-west-1:012345678901:rep:Example-App-ARN1</code>. If you don't specify a <code>ResourceIdentifier</code> value, AWS DMS generates a default identifier value for the end of <code>EndpointArn</code>.<br/>TaskData:  Supplemental information that the task requires to migrate the data for certain source and target endpoints. For more information, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.TaskData.html">Specifying Supplemental Data for Task Settings</a> in the <i>AWS Database Migration Service User Guide.</i> <br/>Tags:  One or more tags to be assigned to the replication task.<br/>CdcStopPosition:  Indicates when you want a change data capture (CDC) operation to stop. The value can be either server time or commit time. Server time example: --cdc-stop-position “server_time:2018-02-09T12:12:12” Commit time example: --cdc-stop-position “commit_time: 2018-02-09T12:12:12 “<br/>CdcStartPosition:  Indicates when you want a change data capture (CDC) operation to start. Use either CdcStartPosition or CdcStartTime to specify when you want a CDC operation to start. Specifying both values results in an error.  The value can be in date, checkpoint, or LSN/SCN format. Date Example: --cdc-start-position “2018-03-08T12:12:12” Checkpoint Example: --cdc-start-position "checkpoint:V1#27#mysql-bin-changelog.157832:1975:-1:2002:677883278264080:mysql-bin-changelog.157832:1876#0#0#*#0#93" LSN Example: --cdc-start-position “mysql-bin-changelog.000024:373” <note> When you use this task setting with a source PostgreSQL database, a logical replication slot should already be created and associated with the source endpoint. You can verify this by setting the <code>slotName</code> extra connection attribute to the name of this logical replication slot. For more information, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.PostgreSQL.html#CHAP_Source.PostgreSQL.ConnectionAttrib">Extra Connection Attributes When Using PostgreSQL as a Source for AWS DMS</a>. </note><br/>CdcStartTime:  Indicates the start time for a change data capture (CDC) operation. Use either CdcStartTime or CdcStartPosition to specify when you want a CDC operation to start. Specifying both values results in an error. Timestamp Example: --cdc-start-time “2018-03-08T12:12:12”<br/>ReplicationTaskSettings:  Overall settings for the task, in JSON format. For more information, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.CustomizingTasks.TaskSettings.html">Specifying Task Settings for AWS Database Migration Service Tasks</a> in the <i>AWS Database Migration User Guide.</i> <br/>TableMappings:  The table mappings for the task, in JSON format. For more information, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.CustomizingTasks.TableMapping.html">Using Table Mapping to Specify Task Settings</a> in the <i>AWS Database Migration Service User Guide.</i> <br/>MigrationType:  The migration type. Valid values: <code>full-load</code> | <code>cdc</code> | <code>full-load-and-cdc</code> <br/>ReplicationInstanceArn:  The Amazon Resource Name (ARN) of a replication instance.<br/>TargetEndpointArn:  An Amazon Resource Name (ARN) that uniquely identifies the target endpoint.<br/>SourceEndpointArn:  An Amazon Resource Name (ARN) that uniquely identifies the source endpoint.<br/>ReplicationTaskIdentifier:  An identifier for the replication task. Constraints: <ul> <li> Must contain 1-255 alphanumeric characters or hyphens. </li> <li> First character must be a letter. </li> <li> Cannot end with a hyphen or contain two consecutive hyphens. </li> </ul><br/>
        :return: ReplicationTask:  The replication task that was created.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetReplicationInstanceArn</i> The ARN of the replication instance to which this task is moved in response to running the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_MoveReplicationTask.html"> <code>MoveReplicationTask</code> </a> operation. Otherwise, this response parameter isn't a member of the <code>ReplicationTask</code> object.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TaskData</i> Supplemental information that the task requires to migrate the data for certain source and target endpoints. For more information, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.TaskData.html">Specifying Supplemental Data for Task Settings</a> in the <i>AWS Database Migration Service User Guide.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationTaskStats</i> The statistics for the task, including elapsed time, tables loaded, and table errors.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ReplicationTaskStats</b>: The statistics for the task, including elapsed time, tables loaded, and table errors.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationTaskArn</i> The Amazon Resource Name (ARN) of the replication task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecoveryCheckpoint</i> Indicates the last checkpoint that occurred during a change data capture (CDC) operation. You can provide this value to the <code>CdcStartPosition</code> parameter to start a CDC operation that begins at that checkpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CdcStopPosition</i> Indicates when you want a change data capture (CDC) operation to stop. The value can be either server time or commit time. Server time example: --cdc-stop-position “server_time:2018-02-09T12:12:12” Commit time example: --cdc-stop-position “commit_time: 2018-02-09T12:12:12 “<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CdcStartPosition</i> Indicates when you want a change data capture (CDC) operation to start. Use either <code>CdcStartPosition</code> or <code>CdcStartTime</code> to specify when you want the CDC operation to start. Specifying both values results in an error. The value can be in date, checkpoint, or LSN/SCN format. Date Example: --cdc-start-position “2018-03-08T12:12:12” Checkpoint Example: --cdc-start-position "checkpoint:V1#27#mysql-bin-changelog.157832:1975:-1:2002:677883278264080:mysql-bin-changelog.157832:1876#0#0#*#0#93" LSN Example: --cdc-start-position “mysql-bin-changelog.000024:373”<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationTaskStartDate</i> The date the replication task is scheduled to start.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationTaskCreationDate</i> The date the replication task was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StopReason</i> The reason the replication task was stopped. This response parameter can return one of the following values: <ul> <li>  <code>"STOP_REASON_FULL_LOAD_COMPLETED"</code> – Full-load migration completed. </li> <li>  <code>"STOP_REASON_CACHED_CHANGES_APPLIED"</code> – Change data capture (CDC) load completed. </li> <li>  <code>"STOP_REASON_CACHED_CHANGES_NOT_APPLIED"</code> – In a full-load and CDC migration, the full load stopped as specified before starting the CDC migration. </li> <li>  <code>"STOP_REASON_SERVER_TIME"</code> – The migration stopped at the specified server time. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastFailureMessage</i> The last error (failure) message generated for the replication task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the replication task. This response parameter can return one of the following values: <ul> <li>  <code>"moving"</code> – The task is being moved in response to running the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_MoveReplicationTask.html"> <code>MoveReplicationTask</code> </a> operation. </li> <li>  <code>"creating"</code> – The task is being created in response to running the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_CreateReplicationTask.html"> <code>CreateReplicationTask</code> </a> operation. </li> <li>  <code>"deleting"</code> – The task is being deleted in response to running the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_DeleteReplicationTask.html"> <code>DeleteReplicationTask</code> </a> operation. </li> <li>  <code>"failed"</code> – The task failed to successfully complete the database migration in response to running the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StartReplicationTask.html"> <code>StartReplicationTask</code> </a> operation. </li> <li>  <code>"failed-move"</code> – The task failed to move in response to running the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_MoveReplicationTask.html"> <code>MoveReplicationTask</code> </a> operation. </li> <li>  <code>"modifying"</code> – The task definition is being modified in response to running the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_ModifyReplicationTask.html"> <code>ModifyReplicationTask</code> </a> operation. </li> <li>  <code>"ready"</code> – The task is in a <code>ready</code> state where it can respond to other task operations, such as <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StartReplicationTask.html"> <code>StartReplicationTask</code> </a> or <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_DeleteReplicationTask.html"> <code>DeleteReplicationTask</code> </a>.  </li> <li>  <code>"running"</code> – The task is performing a database migration in response to running the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StartReplicationTask.html"> <code>StartReplicationTask</code> </a> operation. </li> <li>  <code>"starting"</code> – The task is preparing to perform a database migration in response to running the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StartReplicationTask.html"> <code>StartReplicationTask</code> </a> operation. </li> <li>  <code>"stopped"</code> – The task has stopped in response to running the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StopReplicationTask.html"> <code>StopReplicationTask</code> </a> operation. </li> <li>  <code>"stopping"</code> – The task is preparing to stop in response to running the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StopReplicationTask.html"> <code>StopReplicationTask</code> </a> operation. </li> <li>  <code>"testing"</code> – The database migration specified for this task is being tested in response to running either the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StartReplicationTaskAssessmentRun.html"> <code>StartReplicationTaskAssessmentRun</code> </a> or the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StartReplicationTaskAssessment.html"> <code>StartReplicationTaskAssessment</code> </a> operation. <note>  <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StartReplicationTaskAssessmentRun.html"> <code>StartReplicationTaskAssessmentRun</code> </a> is an improved premigration task assessment operation. The <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StartReplicationTaskAssessment.html"> <code>StartReplicationTaskAssessment</code> </a> operation assesses data type compatibility only between the source and target database of a given migration task. In contrast, <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StartReplicationTaskAssessmentRun.html"> <code>StartReplicationTaskAssessmentRun</code> </a> enables you to specify a variety of premigration task assessments in addition to data type compatibility. These assessments include ones for the validity of primary key definitions and likely issues with database migration performance, among others. </note> </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationTaskSettings</i> The settings for the replication task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TableMappings</i> Table mappings specified in the task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MigrationType</i> The type of migration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationInstanceArn</i> The ARN of the replication instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetEndpointArn</i> The ARN that uniquely identifies the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceEndpointArn</i> The Amazon Resource Name (ARN) that uniquely identifies the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationTaskIdentifier</i> The user-assigned replication task identifier or name. Constraints: <ul> <li> Must contain 1-255 alphanumeric characters or hyphens. </li> <li> First character must be a letter. </li> <li> Cannot end with a hyphen or contain two consecutive hyphens. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FullLoadFinishDate</i> The date the replication task full load was completed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FullLoadStartDate</i> The date the replication task full load was started.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StopDate</i> The date the replication task was stopped.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StartDate</i> The date the replication task was started either with a fresh start or a resume. For more information, see <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StartReplicationTask.html#DMS-StartReplicationTask-request-StartReplicationTaskType">StartReplicationTaskType</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FreshStartDate</i> The date the replication task was started either with a fresh start or a target reload.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TablesErrored</i> The number of errors that have occurred during this task.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TablesQueued</i> The number of tables queued for this task.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TablesLoading</i> The number of tables currently loading for this task.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TablesLoaded</i> The number of tables loaded for this task.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ElapsedTimeMillis</i> The elapsed time of the task, in milliseconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FullLoadProgressPercent</i> The percent complete for the full load migration task.<br/>        """
        pass

    def delete_certificate(self, CertificateArn: str) -> DeleteCertificateResponse:
        r"""Deletes the specified certificate. 

        :param self:
        :param CertificateArn:  The Amazon Resource Name (ARN) of the deleted certificate.<br/>
        :return: Certificate:  The Secure Sockets Layer (SSL) certificate.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KeyLength</i> The key length of the cryptographic algorithm being used.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SigningAlgorithm</i> The signing algorithm for the certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ValidToDate</i> The final date that the certificate is valid.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ValidFromDate</i> The beginning date that the certificate is valid.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CertificateOwner</i> The owner of the certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CertificateArn</i> The Amazon Resource Name (ARN) for the certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CertificateWallet</i> The location of an imported Oracle Wallet certificate for use with SSL.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CertificatePem</i> The contents of a <code>.pem</code> file, which contains an X.509 certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CertificateCreationDate</i> The date that the certificate was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CertificateIdentifier</i> A customer-assigned name for the certificate. Identifiers must begin with a letter and must contain only ASCII letters, digits, and hyphens. They can't end with a hyphen or contain two consecutive hyphens.<br/>        """
        pass

    def delete_connection(self, ReplicationInstanceArn: str, EndpointArn: str) -> DeleteConnectionResponse:
        r"""Deletes the connection between a replication instance and an endpoint.

        :param self:
        :param ReplicationInstanceArn:  The Amazon Resource Name (ARN) of the replication instance.<br/>EndpointArn:  The Amazon Resource Name (ARN) string that uniquely identifies the endpoint.<br/>
        :return: Connection:  The connection that is being deleted.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationInstanceIdentifier</i> The replication instance identifier. This parameter is stored as a lowercase string.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointIdentifier</i> The identifier of the endpoint. Identifiers must begin with a letter and must contain only ASCII letters, digits, and hyphens. They can't end with a hyphen or contain two consecutive hyphens.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastFailureMessage</i> The error message when the connection last failed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The connection status. This parameter can return one of the following values: <ul> <li>  <code>"successful"</code>  </li> <li>  <code>"testing"</code>  </li> <li>  <code>"failed"</code>  </li> <li>  <code>"deleting"</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointArn</i> The ARN string that uniquely identifies the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationInstanceArn</i> The ARN of the replication instance.<br/>        """
        pass

    def delete_endpoint(self, EndpointArn: str) -> DeleteEndpointResponse:
        r"""Deletes the specified endpoint. <note> All tasks associated with the endpoint must be deleted before you can delete the endpoint. </note> <p/>

        :param self:
        :param EndpointArn:  The Amazon Resource Name (ARN) string that uniquely identifies the endpoint.<br/>
        :return: Endpoint:  The endpoint that was deleted.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DocDbSettings</i> Provides information that defines a DocumentDB endpoint.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DocDbSettings</b>: Provides information that defines a DocumentDB endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IBMDb2Settings</i> The settings for the IBM Db2 LUW source endpoint. For more information, see the <code>IBMDb2Settings</code> structure. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>IBMDb2Settings</b>: The settings for the IBM Db2 LUW source endpoint. For more information, see the <code>IBMDb2Settings</code> structure. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MicrosoftSQLServerSettings</i> The settings for the Microsoft SQL Server source and target endpoint. For more information, see the <code>MicrosoftSQLServerSettings</code> structure.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>MicrosoftSQLServerSettings</b>: The settings for the Microsoft SQL Server source and target endpoint. For more information, see the <code>MicrosoftSQLServerSettings</code> structure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SybaseSettings</i> The settings for the SAP ASE source and target endpoint. For more information, see the <code>SybaseSettings</code> structure.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SybaseSettings</b>: The settings for the SAP ASE source and target endpoint. For more information, see the <code>SybaseSettings</code> structure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OracleSettings</i> The settings for the Oracle source and target endpoint. For more information, see the <code>OracleSettings</code> structure.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>OracleSettings</b>: The settings for the Oracle source and target endpoint. For more information, see the <code>OracleSettings</code> structure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MySQLSettings</i> The settings for the MySQL source and target endpoint. For more information, see the <code>MySQLSettings</code> structure.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>MySQLSettings</b>: The settings for the MySQL source and target endpoint. For more information, see the <code>MySQLSettings</code> structure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PostgreSQLSettings</i> The settings for the PostgreSQL source and target endpoint. For more information, see the <code>PostgreSQLSettings</code> structure.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PostgreSQLSettings</b>: The settings for the PostgreSQL source and target endpoint. For more information, see the <code>PostgreSQLSettings</code> structure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RedshiftSettings</i> Settings for the Amazon Redshift endpoint.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RedshiftSettings</b>: Settings for the Amazon Redshift endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NeptuneSettings</i> The settings for the Amazon Neptune target endpoint. For more information, see the <code>NeptuneSettings</code> structure.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>NeptuneSettings</b>: The settings for the Amazon Neptune target endpoint. For more information, see the <code>NeptuneSettings</code> structure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ElasticsearchSettings</i> The settings for the Elasticsearch source endpoint. For more information, see the <code>ElasticsearchSettings</code> structure.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ElasticsearchSettings</b>: The settings for the Elasticsearch source endpoint. For more information, see the <code>ElasticsearchSettings</code> structure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KafkaSettings</i> The settings for the Apache Kafka target endpoint. For more information, see the <code>KafkaSettings</code> structure.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>KafkaSettings</b>: The settings for the Apache Kafka target endpoint. For more information, see the <code>KafkaSettings</code> structure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KinesisSettings</i> The settings for the Amazon Kinesis target endpoint. For more information, see the <code>KinesisSettings</code> structure.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>KinesisSettings</b>: The settings for the Amazon Kinesis target endpoint. For more information, see the <code>KinesisSettings</code> structure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MongoDbSettings</i> The settings for the MongoDB source endpoint. For more information, see the <code>MongoDbSettings</code> structure.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>MongoDbSettings</b>: The settings for the MongoDB source endpoint. For more information, see the <code>MongoDbSettings</code> structure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DmsTransferSettings</i> The settings in JSON format for the DMS transfer type of source endpoint.  Possible settings include the following: <ul> <li>  <code>ServiceAccessRoleArn</code> - The IAM role that has permission to access the Amazon S3 bucket. </li> <li>  <code>BucketName</code> - The name of the S3 bucket to use. </li> <li>  <code>CompressionType</code> - An optional parameter to use GZIP to compress the target files. To use GZIP, set this value to <code>NONE</code> (the default). To keep the files uncompressed, don't use this value. </li> </ul> Shorthand syntax for these settings is as follows: <code>ServiceAccessRoleArn=string,BucketName=string,CompressionType=string</code>  JSON syntax for these settings is as follows: <code>{ "ServiceAccessRoleArn": "string", "BucketName": "string", "CompressionType": "none"|"gzip" } </code> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DmsTransferSettings</b>: The settings in JSON format for the DMS transfer type of source endpoint.  Possible settings include the following: <ul> <li>  <code>ServiceAccessRoleArn</code> - The IAM role that has permission to access the Amazon S3 bucket. </li> <li>  <code>BucketName</code> - The name of the S3 bucket to use. </li> <li>  <code>CompressionType</code> - An optional parameter to use GZIP to compress the target files. To use GZIP, set this value to <code>NONE</code> (the default). To keep the files uncompressed, don't use this value. </li> </ul> Shorthand syntax for these settings is as follows: <code>ServiceAccessRoleArn=string,BucketName=string,CompressionType=string</code>  JSON syntax for these settings is as follows: <code>{ "ServiceAccessRoleArn": "string", "BucketName": "string", "CompressionType": "none"|"gzip" } </code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Settings</i> The settings for the S3 target endpoint. For more information, see the <code>S3Settings</code> structure.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3Settings</b>: The settings for the S3 target endpoint. For more information, see the <code>S3Settings</code> structure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DynamoDbSettings</i> The settings for the DynamoDB target endpoint. For more information, see the <code>DynamoDBSettings</code> structure.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DynamoDbSettings</b>: The settings for the DynamoDB target endpoint. For more information, see the <code>DynamoDBSettings</code> structure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExternalId</i>  Value returned by a call to CreateEndpoint that can be used for cross-account validation. Use it on a subsequent call to CreateEndpoint to create the endpoint with a cross-account. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExternalTableDefinition</i> The external table definition.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceAccessRoleArn</i> The Amazon Resource Name (ARN) used by the service access IAM role.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SslMode</i> The SSL mode used to connect to the endpoint. The default value is <code>none</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CertificateArn</i> The Amazon Resource Name (ARN) used for SSL connection to the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointArn</i> The Amazon Resource Name (ARN) string that uniquely identifies the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> An AWS KMS key identifier that is used to encrypt the connection parameters for the endpoint. If you don't specify a value for the <code>KmsKeyId</code> parameter, then AWS DMS uses your default encryption key. AWS KMS creates the default encryption key for your AWS account. Your AWS account has a different default encryption key for each AWS Region.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExtraConnectionAttributes</i> Additional connection attributes used to connect to the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> The name of the database at the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> The port value used to access the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerName</i> The name of the server at the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Username</i> The user name used to connect to the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineDisplayName</i> The expanded name for the engine name. For example, if the <code>EngineName</code> parameter is "aurora," this value would be "Amazon Aurora MySQL."<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineName</i> The database engine name. Valid values, depending on the EndpointType, include <code>"mysql"</code>, <code>"oracle"</code>, <code>"postgres"</code>, <code>"mariadb"</code>, <code>"aurora"</code>, <code>"aurora-postgresql"</code>, <code>"redshift"</code>, <code>"s3"</code>, <code>"db2"</code>, <code>"azuredb"</code>, <code>"sybase"</code>, <code>"dynamodb"</code>, <code>"mongodb"</code>, <code>"kinesis"</code>, <code>"kafka"</code>, <code>"elasticsearch"</code>, <code>"documentdb"</code>, <code>"sqlserver"</code>, and <code>"neptune"</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointType</i> The type of endpoint. Valid values are <code>source</code> and <code>target</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointIdentifier</i> The database endpoint identifier. Identifiers must begin with a letter and must contain only ASCII letters, digits, and hyphens. They can't end with a hyphen or contain two consecutive hyphens.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceAccessRoleArn</i>  The Amazon Resource Name (ARN) used by the service access IAM role. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CdcPath</i> Specifies the folder path of CDC files. For an S3 source, this setting is required if a task captures change data; otherwise, it's optional. If <code>CdcPath</code> is set, AWS DMS reads CDC files from this path and replicates the data changes to the target endpoint. For an S3 target if you set <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_S3Settings.html#DMS-Type-S3Settings-PreserveTransactions"> <code>PreserveTransactions</code> </a> to <code>true</code>, AWS DMS verifies that you have set this parameter to a folder path on your S3 target where AWS DMS can save the transaction order for the CDC load. AWS DMS creates this CDC folder path in either your S3 target working directory or the S3 target location specified by <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_S3Settings.html#DMS-Type-S3Settings-BucketFolder"> <code>BucketFolder</code> </a> and <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_S3Settings.html#DMS-Type-S3Settings-BucketName"> <code>BucketName</code> </a>. For example, if you specify <code>CdcPath</code> as <code>MyChangedData</code>, and you specify <code>BucketName</code> as <code>MyTargetBucket</code> but do not specify <code>BucketFolder</code>, AWS DMS creates the CDC folder path following: <code>MyTargetBucket/MyChangedData</code>. If you specify the same <code>CdcPath</code>, and you specify <code>BucketName</code> as <code>MyTargetBucket</code> and <code>BucketFolder</code> as <code>MyTargetData</code>, AWS DMS creates the CDC folder path following: <code>MyTargetBucket/MyTargetData/MyChangedData</code>. For more information on CDC including transaction order on an S3 target, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html#CHAP_Target.S3.EndpointSettings.CdcPath">Capturing data changes (CDC) including transaction order on the S3 target</a>. <note> This setting is supported in AWS DMS versions 3.4.2 and later. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PreserveTransactions</i> If set to <code>true</code>, AWS DMS saves the transaction order for a change data capture (CDC) load on the Amazon S3 target specified by <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_S3Settings.html#DMS-Type-S3Settings-CdcPath"> <code>CdcPath</code> </a>. For more information, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html#CHAP_Target.S3.EndpointSettings.CdcPath">Capturing data changes (CDC) including transaction order on the S3 target</a>. <note> This setting is supported in AWS DMS versions 3.4.2 and later. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CsvNoSupValue</i> This setting only applies if your Amazon S3 output files during a change data capture (CDC) load are written in .csv format. If <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_S3Settings.html#DMS-Type-S3Settings-UseCsvNoSupValue"> <code>UseCsvNoSupValue</code> </a> is set to true, specify a string value that you want AWS DMS to use for all columns not included in the supplemental log. If you do not specify a string value, AWS DMS uses the null value for these columns regardless of the <code>UseCsvNoSupValue</code> setting. <note> This setting is supported in AWS DMS versions 3.4.1 and later. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UseCsvNoSupValue</i> This setting applies if the S3 output files during a change data capture (CDC) load are written in .csv format. If set to <code>true</code> for columns not included in the supplemental log, AWS DMS uses the value specified by <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_S3Settings.html#DMS-Type-S3Settings-CsvNoSupValue"> <code>CsvNoSupValue</code> </a>. If not set or set to <code>false</code>, AWS DMS uses the null value for these columns. <note> This setting is supported in AWS DMS versions 3.4.1 and later. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DatePartitionDelimiter</i> Specifies a date separating delimiter to use during folder partitioning. The default value is <code>SLASH</code>. Use this parameter when <code>DatePartitionedEnabled</code> is set to <code>true</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DatePartitionSequence</i> Identifies the sequence of the date format to use during folder partitioning. The default value is <code>YYYYMMDD</code>. Use this parameter when <code>DatePartitionedEnabled</code> is set to <code>true</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DatePartitionEnabled</i> When set to <code>true</code>, this parameter partitions S3 bucket folders based on transaction commit dates. The default value is <code>false</code>. For more information about date-based folder partitoning, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html#CHAP_Target.S3.DatePartitioning">Using date-based folder partitioning</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CdcInsertsAndUpdates</i> A value that enables a change data capture (CDC) load to write INSERT and UPDATE operations to .csv or .parquet (columnar storage) output files. The default setting is <code>false</code>, but when <code>CdcInsertsAndUpdates</code> is set to <code>true</code> or <code>y</code>, only INSERTs and UPDATEs from the source database are migrated to the .csv or .parquet file.  For .csv file format only, how these INSERTs and UPDATEs are recorded depends on the value of the <code>IncludeOpForFullLoad</code> parameter. If <code>IncludeOpForFullLoad</code> is set to <code>true</code>, the first field of every CDC record is set to either <code>I</code> or <code>U</code> to indicate INSERT and UPDATE operations at the source. But if <code>IncludeOpForFullLoad</code> is set to <code>false</code>, CDC records are written without an indication of INSERT or UPDATE operations at the source. For more information about how these settings work together, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html#CHAP_Target.S3.Configuring.InsertOps">Indicating Source DB Operations in Migrated S3 Data</a> in the <i>AWS Database Migration Service User Guide.</i>. <note> AWS DMS supports the use of the <code>CdcInsertsAndUpdates</code> parameter in versions 3.3.1 and later.  <code>CdcInsertsOnly</code> and <code>CdcInsertsAndUpdates</code> can't both be set to <code>true</code> for the same endpoint. Set either <code>CdcInsertsOnly</code> or <code>CdcInsertsAndUpdates</code> to <code>true</code> for the same endpoint, but not both. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ParquetTimestampInMillisecond</i> A value that specifies the precision of any <code>TIMESTAMP</code> column values that are written to an Amazon S3 object file in .parquet format. <note> AWS DMS supports the <code>ParquetTimestampInMillisecond</code> parameter in versions 3.1.4 and later. </note> When <code>ParquetTimestampInMillisecond</code> is set to <code>true</code> or <code>y</code>, AWS DMS writes all <code>TIMESTAMP</code> columns in a .parquet formatted file with millisecond precision. Otherwise, DMS writes them with microsecond precision. Currently, Amazon Athena and AWS Glue can handle only millisecond precision for <code>TIMESTAMP</code> values. Set this parameter to <code>true</code> for S3 endpoint object files that are .parquet formatted only if you plan to query or process the data with Athena or AWS Glue. <note> AWS DMS writes any <code>TIMESTAMP</code> column values written to an S3 file in .csv format with microsecond precision. Setting <code>ParquetTimestampInMillisecond</code> has no effect on the string format of the timestamp column value that is inserted by setting the <code>TimestampColumnName</code> parameter. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TimestampColumnName</i> A value that when nonblank causes AWS DMS to add a column with timestamp information to the endpoint data for an Amazon S3 target. <note> AWS DMS supports the <code>TimestampColumnName</code> parameter in versions 3.1.4 and later. </note> DMS includes an additional <code>STRING</code> column in the .csv or .parquet object files of your migrated data when you set <code>TimestampColumnName</code> to a nonblank value. For a full load, each row of this timestamp column contains a timestamp for when the data was transferred from the source to the target by DMS.  For a change data capture (CDC) load, each row of the timestamp column contains the timestamp for the commit of that row in the source database. The string format for this timestamp column value is <code>yyyy-MM-dd HH:mm:ss.SSSSSS</code>. By default, the precision of this value is in microseconds. For a CDC load, the rounding of the precision depends on the commit timestamp supported by DMS for the source database. When the <code>AddColumnName</code> parameter is set to <code>true</code>, DMS also includes a name for the timestamp column that you set with <code>TimestampColumnName</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CdcInsertsOnly</i> A value that enables a change data capture (CDC) load to write only INSERT operations to .csv or columnar storage (.parquet) output files. By default (the <code>false</code> setting), the first field in a .csv or .parquet record contains the letter I (INSERT), U (UPDATE), or D (DELETE). These values indicate whether the row was inserted, updated, or deleted at the source database for a CDC load to the target. If <code>CdcInsertsOnly</code> is set to <code>true</code> or <code>y</code>, only INSERTs from the source database are migrated to the .csv or .parquet file. For .csv format only, how these INSERTs are recorded depends on the value of <code>IncludeOpForFullLoad</code>. If <code>IncludeOpForFullLoad</code> is set to <code>true</code>, the first field of every CDC record is set to I to indicate the INSERT operation at the source. If <code>IncludeOpForFullLoad</code> is set to <code>false</code>, every CDC record is written without a first field to indicate the INSERT operation at the source. For more information about how these settings work together, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html#CHAP_Target.S3.Configuring.InsertOps">Indicating Source DB Operations in Migrated S3 Data</a> in the <i>AWS Database Migration Service User Guide.</i>. <note> AWS DMS supports the interaction described preceding between the <code>CdcInsertsOnly</code> and <code>IncludeOpForFullLoad</code> parameters in versions 3.1.4 and later.   <code>CdcInsertsOnly</code> and <code>CdcInsertsAndUpdates</code> can't both be set to <code>true</code> for the same endpoint. Set either <code>CdcInsertsOnly</code> or <code>CdcInsertsAndUpdates</code> to <code>true</code> for the same endpoint, but not both. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeOpForFullLoad</i> A value that enables a full load to write INSERT operations to the comma-separated value (.csv) output files only to indicate how the rows were added to the source database. <note> AWS DMS supports the <code>IncludeOpForFullLoad</code> parameter in versions 3.1.4 and later. </note> For full load, records can only be inserted. By default (the <code>false</code> setting), no information is recorded in these output files for a full load to indicate that the rows were inserted at the source database. If <code>IncludeOpForFullLoad</code> is set to <code>true</code> or <code>y</code>, the INSERT is recorded as an I annotation in the first field of the .csv file. This allows the format of your target records from a full load to be consistent with the target records from a CDC load. <note> This setting works together with the <code>CdcInsertsOnly</code> and the <code>CdcInsertsAndUpdates</code> parameters for output to .csv files only. For more information about how these settings work together, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html#CHAP_Target.S3.Configuring.InsertOps">Indicating Source DB Operations in Migrated S3 Data</a> in the <i>AWS Database Migration Service User Guide.</i>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableStatistics</i> A value that enables statistics for Parquet pages and row groups. Choose <code>true</code> to enable statistics, <code>false</code> to disable. Statistics include <code>NULL</code>, <code>DISTINCT</code>, <code>MAX</code>, and <code>MIN</code> values. This parameter defaults to <code>true</code>. This value is used for .parquet file format only.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ParquetVersion</i> The version of the Apache Parquet format that you want to use: <code>parquet_1_0</code> (the default) or <code>parquet_2_0</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DataPageSize</i> The size of one data page in bytes. This parameter defaults to 1024 * 1024 bytes (1 MiB). This number is used for .parquet file format only. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RowGroupLength</i> The number of rows in a row group. A smaller row group size provides faster reads. But as the number of row groups grows, the slower writes become. This parameter defaults to 10,000 rows. This number is used for .parquet file format only.  If you choose a value larger than the maximum, <code>RowGroupLength</code> is set to the max row group length in bytes (64 * 1024 * 1024). <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DictPageSizeLimit</i> The maximum size of an encoded dictionary page of a column. If the dictionary page exceeds this, this column is stored using an encoding type of <code>PLAIN</code>. This parameter defaults to 1024 * 1024 bytes (1 MiB), the maximum size of a dictionary page before it reverts to <code>PLAIN</code> encoding. This size is used for .parquet file format only. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EncodingType</i> The type of encoding you are using:  <ul> <li>  <code>RLE_DICTIONARY</code> uses a combination of bit-packing and run-length encoding to store repeated values more efficiently. This is the default. </li> <li>  <code>PLAIN</code> doesn't use encoding at all. Values are stored as they are. </li> <li>  <code>PLAIN_DICTIONARY</code> builds a dictionary of the values encountered in a given column. The dictionary is stored in a dictionary page for each column chunk. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DataFormat</i> The format of the data that you want to use for output. You can choose one of the following:  <ul> <li>  <code>csv</code> : This is a row-based file format with comma-separated values (.csv).  </li> <li>  <code>parquet</code> : Apache Parquet (.parquet) is a columnar storage file format that features efficient compression and provides faster query response.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerSideEncryptionKmsKeyId</i> If you are using <code>SSE_KMS</code> for the <code>EncryptionMode</code>, provide the AWS KMS key ID. The key that you use needs an attached policy that enables AWS Identity and Access Management (IAM) user permissions and allows use of the key. Here is a CLI example: <code>aws dms create-endpoint --endpoint-identifier <i>value</i> --endpoint-type target --engine-name s3 --s3-settings ServiceAccessRoleArn=<i>value</i>,BucketFolder=<i>value</i>,BucketName=<i>value</i>,EncryptionMode=SSE_KMS,ServerSideEncryptionKmsKeyId=<i>value</i> </code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EncryptionMode</i> The type of server-side encryption that you want to use for your data. This encryption type is part of the endpoint settings or the extra connections attributes for Amazon S3. You can choose either <code>SSE_S3</code> (the default) or <code>SSE_KMS</code>.  <note> For the <code>ModifyEndpoint</code> operation, you can change the existing value of the <code>EncryptionMode</code> parameter from <code>SSE_KMS</code> to <code>SSE_S3</code>. But you can’t change the existing value from <code>SSE_S3</code> to <code>SSE_KMS</code>. </note> To use <code>SSE_S3</code>, you need an AWS Identity and Access Management (IAM) role with permission to allow <code>"arn:aws:s3:::dms-*"</code> to use the following actions: <ul> <li>  <code>s3:CreateBucket</code>  </li> <li>  <code>s3:ListBucket</code>  </li> <li>  <code>s3:DeleteBucket</code>  </li> <li>  <code>s3:GetBucketLocation</code>  </li> <li>  <code>s3:GetObject</code>  </li> <li>  <code>s3:PutObject</code>  </li> <li>  <code>s3:DeleteObject</code>  </li> <li>  <code>s3:GetObjectVersion</code>  </li> <li>  <code>s3:GetBucketPolicy</code>  </li> <li>  <code>s3:PutBucketPolicy</code>  </li> <li>  <code>s3:DeleteBucketPolicy</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CompressionType</i> An optional parameter to use GZIP to compress the target files. Set to GZIP to compress the target files. Either set this parameter to NONE (the default) or don't use it to leave the files uncompressed. This parameter applies to both .csv and .parquet file formats. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BucketName</i>  The name of the S3 bucket. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BucketFolder</i>  An optional parameter to set a folder name in the S3 bucket. If provided, tables are created in the path <code> <i>bucketFolder</i>/<i>schema_name</i>/<i>table_name</i>/</code>. If this parameter isn't specified, then the path used is <code> <i>schema_name</i>/<i>table_name</i>/</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CsvDelimiter</i>  The delimiter used to separate columns in the .csv file for both source and target. The default is a comma. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CsvRowDelimiter</i>  The delimiter used to separate rows in the .csv file for both source and target. The default is a carriage return (<code>\n</code>). <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ExternalTableDefinition</i>  Specifies how tables are defined in the S3 source files only. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceAccessRoleArn</i>  The Amazon Resource Name (ARN) used by the service access IAM role. It is a required parameter that enables DMS to write and read objects from an S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BucketName</i>  The name of the S3 bucket to use. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceAccessRoleArn</i>  The IAM role that has permission to access the Amazon S3 bucket. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerSecretId</i> The full ARN, partial ARN, or friendly name of the <code>SecretsManagerSecret</code> that contains the MongoDB endpoint connection details.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerAccessRoleArn</i> The full Amazon Resource Name (ARN) of the IAM role that specifies AWS DMS as the trusted entity and grants the required permissions to access the value in <code>SecretsManagerSecret</code>. <code>SecretsManagerSecret</code> has the value of the AWS Secrets Manager secret that allows access to the MongoDB endpoint. <note> You can specify one of two sets of values for these permissions. You can specify the values for this setting and <code>SecretsManagerSecretId</code>. Or you can specify clear-text values for <code>UserName</code>, <code>Password</code>, <code>ServerName</code>, and <code>Port</code>. You can't specify both. For more information on creating this <code>SecretsManagerSecret</code> and the <code>SecretsManagerAccessRoleArn</code> and <code>SecretsManagerSecretId</code> required to access it, see <a href="https://docs.aws.amazon.com/https:/docs.aws.amazon.com/dms/latest/userguide/CHAP_Security.html#security-iam-secretsmanager">Using secrets to access AWS Database Migration Service resources</a> in the <i>AWS Database Migration Service User Guide</i>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The AWS KMS key identifier that is used to encrypt the content on the replication instance. If you don't specify a value for the <code>KmsKeyId</code> parameter, then AWS DMS uses your default encryption key. AWS KMS creates the default encryption key for your AWS account. Your AWS account has a different default encryption key for each AWS Region.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AuthSource</i>  The MongoDB database name. This setting isn't used when <code>AuthType</code> is set to <code>"no"</code>.  The default is <code>"admin"</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DocsToInvestigate</i>  Indicates the number of documents to preview to determine the document organization. Use this setting when <code>NestingLevel</code> is set to <code>"one"</code>.  Must be a positive value greater than <code>0</code>. Default value is <code>1000</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ExtractDocId</i>  Specifies the document ID. Use this setting when <code>NestingLevel</code> is set to <code>"none"</code>.  Default value is <code>"false"</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NestingLevel</i>  Specifies either document or table mode.  Default value is <code>"none"</code>. Specify <code>"none"</code> to use document mode. Specify <code>"one"</code> to use table mode.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AuthMechanism</i>  The authentication mechanism you use to access the MongoDB source endpoint. For the default value, in MongoDB version 2.x, <code>"default"</code> is <code>"mongodb_cr"</code>. For MongoDB version 3.x or later, <code>"default"</code> is <code>"scram_sha_1"</code>. This setting isn't used when <code>AuthType</code> is set to <code>"no"</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AuthType</i>  The authentication type you use to access the MongoDB source endpoint. When when set to <code>"no"</code>, user name and password parameters are not used and can be empty. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i>  The database name on the MongoDB source endpoint. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i>  The port value for the MongoDB source endpoint. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerName</i>  The name of the server on the MongoDB source endpoint. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Password</i>  The password for the user account you use to access the MongoDB source endpoint. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Username</i> The user name you use to access the MongoDB source endpoint. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeNullAndEmpty</i> Include NULL and empty columns for records migrated to the endpoint. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeControlDetails</i> Shows detailed control information for table definition, column definition, and table and column changes in the Kinesis message output. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeTableAlterOperations</i> Includes any data definition language (DDL) operations that change the table in the control data, such as <code>rename-table</code>, <code>drop-table</code>, <code>add-column</code>, <code>drop-column</code>, and <code>rename-column</code>. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PartitionIncludeSchemaTable</i> Prefixes schema and table names to partition values, when the partition type is <code>primary-key-type</code>. Doing this increases data distribution among Kinesis shards. For example, suppose that a SysBench schema has thousands of tables and each table has only limited range for a primary key. In this case, the same primary key is sent from thousands of tables to the same shard, which causes throttling. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludePartitionValue</i> Shows the partition value within the Kinesis message output, unless the partition type is <code>schema-table-type</code>. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeTransactionDetails</i> Provides detailed transaction information from the source database. This information includes a commit timestamp, a log position, and values for <code>transaction_id</code>, previous <code>transaction_id</code>, and <code>transaction_record_id</code> (the record offset within a transaction). The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceAccessRoleArn</i> The Amazon Resource Name (ARN) for the AWS Identity and Access Management (IAM) role that AWS DMS uses to write to the Kinesis data stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MessageFormat</i> The output format for the records created on the endpoint. The message format is <code>JSON</code> (default) or <code>JSON_UNFORMATTED</code> (a single line with no tab).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamArn</i> The Amazon Resource Name (ARN) for the Amazon Kinesis Data Streams endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SaslPassword</i> The secure password you created when you first set up your MSK cluster to validate a client identity and make an encrypted connection between server and client using SASL-SSL authentication.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SaslUsername</i>  The secure username you created when you first set up your MSK cluster to validate a client identity and make an encrypted connection between server and client using SASL-SSL authentication.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SslCaCertificateArn</i>  The Amazon Resource Name (ARN) for the private Certification Authority (CA) cert that AWS DMS uses to securely connect to your Kafka target endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SslClientKeyPassword</i>  The password for the client private key used to securely connect to a Kafka target endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SslClientKeyArn</i> The Amazon Resource Name (ARN) for the client private key used to securely connect to a Kafka target endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SslClientCertificateArn</i> The Amazon Resource Name (ARN) of the client certificate used to securely connect to a Kafka target endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityProtocol</i> Set secure connection to a Kafka target endpoint using Transport Layer Security (TLS). Options include <code>ssl-encryption</code>, <code>ssl-authentication</code>, and <code>sasl-ssl</code>. <code>sasl-ssl</code> requires <code>SaslUsername</code> and <code>SaslPassword</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeNullAndEmpty</i> Include NULL and empty columns for records migrated to the endpoint. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MessageMaxBytes</i> The maximum size in bytes for records created on the endpoint The default is 1,000,000.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeControlDetails</i> Shows detailed control information for table definition, column definition, and table and column changes in the Kafka message output. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeTableAlterOperations</i> Includes any data definition language (DDL) operations that change the table in the control data, such as <code>rename-table</code>, <code>drop-table</code>, <code>add-column</code>, <code>drop-column</code>, and <code>rename-column</code>. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PartitionIncludeSchemaTable</i> Prefixes schema and table names to partition values, when the partition type is <code>primary-key-type</code>. Doing this increases data distribution among Kafka partitions. For example, suppose that a SysBench schema has thousands of tables and each table has only limited range for a primary key. In this case, the same primary key is sent from thousands of tables to the same partition, which causes throttling. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludePartitionValue</i> Shows the partition value within the Kafka message output, unless the partition type is <code>schema-table-type</code>. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeTransactionDetails</i> Provides detailed transaction information from the source database. This information includes a commit timestamp, a log position, and values for <code>transaction_id</code>, previous <code>transaction_id</code>, and <code>transaction_record_id</code> (the record offset within a transaction). The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MessageFormat</i> The output format for the records created on the endpoint. The message format is <code>JSON</code> (default) or <code>JSON_UNFORMATTED</code> (a single line with no tab).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Topic</i> The topic to which you migrate the data. If you don't specify a topic, AWS DMS specifies <code>"kafka-default-topic"</code> as the migration topic.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Broker</i> A comma-separated list of one or more broker locations in your Kafka cluster that host your Kafka instance. Specify each broker location in the form <code> <i>broker-hostname-or-ip</i>:<i>port</i> </code>. For example, <code>"ec2-12-345-678-901.compute-1.amazonaws.com:2345"</code>. For more information and examples of specifying a list of broker locations, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Kafka.html">Using Apache Kafka as a target for AWS Database Migration Service</a> in the <i>AWS Data Migration Service User Guide</i>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorRetryDuration</i> The maximum number of seconds for which DMS retries failed API requests to the Elasticsearch cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FullLoadErrorPercentage</i> The maximum percentage of records that can fail to be written before a full load operation stops. To avoid early failure, this counter is only effective after 1000 records are transferred. Elasticsearch also has the concept of error monitoring during the last 10 minutes of an Observation Window. If transfer of all records fail in the last 10 minutes, the full load operation stops. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointUri</i> The endpoint for the Elasticsearch cluster. AWS DMS uses HTTPS if a transport protocol (http/https) is not specified.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceAccessRoleArn</i> The Amazon Resource Name (ARN) used by service to access the IAM role.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IamAuthEnabled</i> If you want AWS Identity and Access Management (IAM) authorization enabled for this endpoint, set this parameter to <code>true</code>. Then attach the appropriate IAM policy document to your service role specified by <code>ServiceAccessRoleArn</code>. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxRetryCount</i> The number of times for AWS DMS to retry a bulk load of migrated graph data to the Neptune target database before raising an error. The default is 5.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxFileSize</i> The maximum size in kilobytes of migrated graph data stored in a .csv file before AWS DMS bulk-loads the data to the Neptune target database. The default is 1,048,576 KB. If the bulk load is successful, AWS DMS clears the bucket, ready to store the next batch of migrated graph data.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorRetryDuration</i> The number of milliseconds for AWS DMS to wait to retry a bulk-load of migrated graph data to the Neptune target database before raising an error. The default is 250.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3BucketFolder</i> A folder path where you want AWS DMS to store migrated graph data in the S3 bucket specified by <code>S3BucketName</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3BucketName</i> The name of the Amazon S3 bucket where AWS DMS can temporarily store migrated graph data in .csv files before bulk-loading it to the Neptune target database. AWS DMS maps the SQL source data to graph data before storing it in these .csv files.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceAccessRoleArn</i> The Amazon Resource Name (ARN) of the service role that you created for the Neptune target endpoint. For more information, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Neptune.html#CHAP_Target.Neptune.ServiceRole">Creating an IAM Service Role for Accessing Amazon Neptune as a Target</a> in the <i>AWS Database Migration Service User Guide. </i> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerSecretId</i> The full ARN, partial ARN, or friendly name of the <code>SecretsManagerSecret</code> that contains the Amazon Redshift endpoint connection details.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerAccessRoleArn</i> The full Amazon Resource Name (ARN) of the IAM role that specifies AWS DMS as the trusted entity and grants the required permissions to access the value in <code>SecretsManagerSecret</code>. <code>SecretsManagerSecret</code> has the value of the AWS Secrets Manager secret that allows access to the Amazon Redshift endpoint. <note> You can specify one of two sets of values for these permissions. You can specify the values for this setting and <code>SecretsManagerSecretId</code>. Or you can specify clear-text values for <code>UserName</code>, <code>Password</code>, <code>ServerName</code>, and <code>Port</code>. You can't specify both. For more information on creating this <code>SecretsManagerSecret</code> and the <code>SecretsManagerAccessRoleArn</code> and <code>SecretsManagerSecretId</code> required to access it, see <a href="https://docs.aws.amazon.com/https:/docs.aws.amazon.com/dms/latest/userguide/CHAP_Security.html#security-iam-secretsmanager">Using secrets to access AWS Database Migration Service resources</a> in the <i>AWS Database Migration Service User Guide</i>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>WriteBufferSize</i> The size (in KB) of the in-memory file write buffer used when generating .csv files on the local disk at the DMS replication instance. The default value is 1000 (buffer size is 1000KB).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Username</i> An Amazon Redshift user name for a registered user.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TruncateColumns</i> A value that specifies to truncate data in columns to the appropriate number of characters, so that the data fits in the column. This parameter applies only to columns with a VARCHAR or CHAR data type, and rows with a size of 4 MB or less. Choose <code>true</code> to truncate data. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TrimBlanks</i> A value that specifies to remove the trailing white space characters from a VARCHAR string. This parameter applies only to columns with a VARCHAR data type. Choose <code>true</code> to remove unneeded white space. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TimeFormat</i> The time format that you want to use. Valid values are <code>auto</code> (case-sensitive), <code>'timeformat_string'</code>, <code>'epochsecs'</code>, or <code>'epochmillisecs'</code>. It defaults to 10. Using <code>auto</code> recognizes most strings, even some that aren't supported when you use a time format string.  If your date and time values use formats different from each other, set this parameter to <code>auto</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerSideEncryptionKmsKeyId</i> The AWS KMS key ID. If you are using <code>SSE_KMS</code> for the <code>EncryptionMode</code>, provide this key ID. The key that you use needs an attached policy that enables IAM user permissions and allows use of the key.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceAccessRoleArn</i> The Amazon Resource Name (ARN) of the IAM role that has access to the Amazon Redshift service.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerName</i> The name of the Amazon Redshift cluster you are using.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplaceChars</i> A value that specifies to replaces the invalid characters specified in <code>ReplaceInvalidChars</code>, substituting the specified characters instead. The default is <code>"?"</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplaceInvalidChars</i> A list of characters that you want to replace. Use with <code>ReplaceChars</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RemoveQuotes</i> A value that specifies to remove surrounding quotation marks from strings in the incoming data. All characters within the quotation marks, including delimiters, are retained. Choose <code>true</code> to remove quotation marks. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> The port number for Amazon Redshift. The default value is 5439.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Password</i> The password for the user named in the <code>username</code> property.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxFileSize</i> The maximum size (in KB) of any .csv file used to load data on an S3 bucket and transfer data to Amazon Redshift. It defaults to 1048576KB (1 GB).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LoadTimeout</i> The amount of time to wait (in milliseconds) before timing out of operations performed by AWS DMS on a Redshift cluster, such as Redshift COPY, INSERT, DELETE, and UPDATE.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FileTransferUploadStreams</i> The number of threads used to upload a single file. This parameter accepts a value from 1 through 64. It defaults to 10. The number of parallel streams used to upload a single .csv file to an S3 bucket using S3 Multipart Upload. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html">Multipart upload overview</a>.   <code>FileTransferUploadStreams</code> accepts a value from 1 through 64. It defaults to 10.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ExplicitIds</i> This setting is only valid for a full-load migration task. Set <code>ExplicitIds</code> to <code>true</code> to have tables with <code>IDENTITY</code> columns override their auto-generated values with explicit values loaded from the source data files used to populate the tables. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EncryptionMode</i> The type of server-side encryption that you want to use for your data. This encryption type is part of the endpoint settings or the extra connections attributes for Amazon S3. You can choose either <code>SSE_S3</code> (the default) or <code>SSE_KMS</code>.  <note> For the <code>ModifyEndpoint</code> operation, you can change the existing value of the <code>EncryptionMode</code> parameter from <code>SSE_KMS</code> to <code>SSE_S3</code>. But you can’t change the existing value from <code>SSE_S3</code> to <code>SSE_KMS</code>. </note> To use <code>SSE_S3</code>, create an AWS Identity and Access Management (IAM) role with a policy that allows <code>"arn:aws:s3:::*"</code> to use the following actions: <code>"s3:PutObject", "s3:ListBucket"</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EmptyAsNull</i> A value that specifies whether AWS DMS should migrate empty CHAR and VARCHAR fields as NULL. A value of <code>true</code> sets empty CHAR and VARCHAR fields to null. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DateFormat</i> The date format that you are using. Valid values are <code>auto</code> (case-sensitive), your date format string enclosed in quotes, or NULL. If this parameter is left unset (NULL), it defaults to a format of 'YYYY-MM-DD'. Using <code>auto</code> recognizes most strings, even some that aren't supported when you use a date format string.  If your date and time values use formats different from each other, set this to <code>auto</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> The name of the Amazon Redshift data warehouse (service) that you are working with.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ConnectionTimeout</i> A value that sets the amount of time to wait (in milliseconds) before timing out, beginning from when you initially establish a connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CompUpdate</i> If you set <code>CompUpdate</code> to <code>true</code> Amazon Redshift applies automatic compression if the table is empty. This applies even if the table columns already have encodings other than <code>RAW</code>. If you set <code>CompUpdate</code> to <code>false</code>, automatic compression is disabled and existing column encodings aren't changed. The default is <code>true</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CaseSensitiveNames</i> If Amazon Redshift is configured to support case sensitive schema names, set <code>CaseSensitiveNames</code> to <code>true</code>. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BucketName</i> The name of the intermediate S3 bucket used to store .csv files before uploading data to Redshift.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BucketFolder</i> An S3 folder where the comma-separated-value (.csv) files are stored before being uploaded to the target Redshift cluster.  For full load mode, AWS DMS converts source records into .csv files and loads them to the <i>BucketFolder/TableID</i> path. AWS DMS uses the Redshift <code>COPY</code> command to upload the .csv files to the target table. The files are deleted once the <code>COPY</code> operation has finished. For more information, see <a href="https://docs.aws.amazon.com/redshift/latest/dg/r_COPY.html">COPY</a> in the <i>Amazon Redshift Database Developer Guide</i>. For change-data-capture (CDC) mode, AWS DMS creates a <i>NetChanges</i> table, and loads the .csv files to this <i>BucketFolder/NetChangesTableID</i> path.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AfterConnectScript</i> Code to run after connecting. This parameter should contain the code itself, not the name of a file containing the code.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AcceptAnyDate</i> A value that indicates to allow any date format, including invalid formats such as 00/00/00 00:00:00, to be loaded without generating an error. You can choose <code>true</code> or <code>false</code> (the default). This parameter applies only to TIMESTAMP and DATE columns. Always use ACCEPTANYDATE with the DATEFORMAT parameter. If the date format for the data doesn't match the DATEFORMAT specification, Amazon Redshift inserts a NULL value into that field. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerSecretId</i> The full ARN, partial ARN, or friendly name of the <code>SecretsManagerSecret</code> that contains the PostgreSQL endpoint connection details.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerAccessRoleArn</i> The full Amazon Resource Name (ARN) of the IAM role that specifies AWS DMS as the trusted entity and grants the required permissions to access the value in <code>SecretsManagerSecret</code>. <code>SecretsManagerSecret</code> has the value of the AWS Secrets Manager secret that allows access to the PostgreSQL endpoint. <note> You can specify one of two sets of values for these permissions. You can specify the values for this setting and <code>SecretsManagerSecretId</code>. Or you can specify clear-text values for <code>UserName</code>, <code>Password</code>, <code>ServerName</code>, and <code>Port</code>. You can't specify both. For more information on creating this <code>SecretsManagerSecret</code> and the <code>SecretsManagerAccessRoleArn</code> and <code>SecretsManagerSecretId</code> required to access it, see <a href="https://docs.aws.amazon.com/https:/docs.aws.amazon.com/dms/latest/userguide/CHAP_Security.html#security-iam-secretsmanager">Using secrets to access AWS Database Migration Service resources</a> in the <i>AWS Database Migration Service User Guide</i>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SlotName</i> Sets the name of a previously created logical replication slot for a CDC load of the PostgreSQL source instance. When used with the AWS DMS API <code>CdcStartPosition</code> request parameter, this attribute also enables using native CDC start points.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Username</i> Endpoint connection user name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerName</i> Fully qualified domain name of the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Endpoint TCP port.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Password</i> Endpoint connection password.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FailTasksOnLobTruncation</i> When set to <code>true</code>, this value causes a task to fail if the actual size of a LOB column is greater than the specified <code>LobMaxSize</code>. If task is set to Limited LOB mode and this option is set to true, the task fails instead of truncating the LOB data.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ExecuteTimeout</i> Sets the client statement timeout for the PostgreSQL instance, in seconds. The default value is 60 seconds. Example: <code>executeTimeout=100;</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DdlArtifactsSchema</i> The schema in which the operational DDL database artifacts are created. Example: <code>ddlArtifactsSchema=xyzddlschema;</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> Database name for the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxFileSize</i> Specifies the maximum size (in KB) of any .csv file used to transfer data to PostgreSQL. Example: <code>maxFileSize=512</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CaptureDdls</i> To capture DDL events, AWS DMS creates various artifacts in the PostgreSQL database when the task starts. You can later remove these artifacts. If this value is set to <code>N</code>, you don't have to create tables or triggers on the source database.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AfterConnectScript</i> For use with change data capture (CDC) only, this attribute has AWS DMS bypass foreign keys and user triggers to reduce the time it takes to bulk load data. Example: <code>afterConnectScript=SET session_replication_role='replica'</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerSecretId</i> The full ARN, partial ARN, or friendly name of the <code>SecretsManagerSecret</code> that contains the MySQL endpoint connection details.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerAccessRoleArn</i> The full Amazon Resource Name (ARN) of the IAM role that specifies AWS DMS as the trusted entity and grants the required permissions to access the value in <code>SecretsManagerSecret</code>. <code>SecretsManagerSecret</code> has the value of the AWS Secrets Manager secret that allows access to the MySQL endpoint. <note> You can specify one of two sets of values for these permissions. You can specify the values for this setting and <code>SecretsManagerSecretId</code>. Or you can specify clear-text values for <code>UserName</code>, <code>Password</code>, <code>ServerName</code>, and <code>Port</code>. You can't specify both. For more information on creating this <code>SecretsManagerSecret</code> and the <code>SecretsManagerAccessRoleArn</code> and <code>SecretsManagerSecretId</code> required to access it, see <a href="https://docs.aws.amazon.com/https:/docs.aws.amazon.com/dms/latest/userguide/CHAP_Security.html#security-iam-secretsmanager">Using secrets to access AWS Database Migration Service resources</a> in the <i>AWS Database Migration Service User Guide</i>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Username</i> Endpoint connection user name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerTimezone</i> Specifies the time zone for the source MySQL database. Example: <code>serverTimezone=US/Pacific;</code>  Note: Do not enclose time zones in single quotes.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerName</i> Fully qualified domain name of the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Endpoint TCP port.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Password</i> Endpoint connection password.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ParallelLoadThreads</i> Improves performance when loading data into the MySQL-compatible target database. Specifies how many threads to use to load the data into the MySQL-compatible target database. Setting a large number of threads can have an adverse effect on database performance, because a separate connection is required for each thread. Example: <code>parallelLoadThreads=1</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxFileSize</i> Specifies the maximum size (in KB) of any .csv file used to transfer data to a MySQL-compatible database. Example: <code>maxFileSize=512</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetDbType</i> Specifies where to migrate source tables on the target, either to a single database or multiple databases. Example: <code>targetDbType=MULTIPLE_DATABASES</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EventsPollInterval</i> Specifies how often to check the binary log for new changes/events when the database is idle. Example: <code>eventsPollInterval=5;</code>  In the example, AWS DMS checks for changes in the binary logs every five seconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> Database name for the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CleanSourceMetadataOnMismatch</i> Adjusts the behavior of DMS when migrating from an SQL Server source database that is hosted as part of an Always On availability group cluster. If you need DMS to poll all the nodes in the Always On cluster for transaction backups, set this attribute to <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AfterConnectScript</i> Specifies a script to run immediately after AWS DMS connects to the endpoint. The migration task continues running regardless if the SQL statement succeeds or fails.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerOracleAsmSecretId</i> Required only if your Oracle endpoint uses Advanced Storage Manager (ASM). The full ARN, partial ARN, or friendly name of the <code>SecretsManagerOracleAsmSecret</code> that contains the Oracle ASM connection details for the Oracle endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerOracleAsmAccessRoleArn</i> Required only if your Oracle endpoint uses Advanced Storage Manager (ASM). The full ARN of the IAM role that specifies AWS DMS as the trusted entity and grants the required permissions to access the <code>SecretsManagerOracleAsmSecret</code>. This <code>SecretsManagerOracleAsmSecret</code> has the secret value that allows access to the Oracle ASM of the endpoint. <note> You can specify one of two sets of values for these permissions. You can specify the values for this setting and <code>SecretsManagerOracleAsmSecretId</code>. Or you can specify clear-text values for <code>AsmUserName</code>, <code>AsmPassword</code>, and <code>AsmServerName</code>. You can't specify both. For more information on creating this <code>SecretsManagerOracleAsmSecret</code> and the <code>SecretsManagerOracleAsmAccessRoleArn</code> and <code>SecretsManagerOracleAsmSecretId</code> required to access it, see <a href="https://docs.aws.amazon.com/https:/docs.aws.amazon.com/dms/latest/userguide/CHAP_Security.html#security-iam-secretsmanager">Using secrets to access AWS Database Migration Service resources</a> in the <i>AWS Database Migration Service User Guide</i>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerSecretId</i> The full ARN, partial ARN, or friendly name of the <code>SecretsManagerSecret</code> that contains the Oracle endpoint connection details.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerAccessRoleArn</i> The full Amazon Resource Name (ARN) of the IAM role that specifies AWS DMS as the trusted entity and grants the required permissions to access the value in <code>SecretsManagerSecret</code>. <code>SecretsManagerSecret</code> has the value of the AWS Secrets Manager secret that allows access to the Oracle endpoint. <note> You can specify one of two sets of values for these permissions. You can specify the values for this setting and <code>SecretsManagerSecretId</code>. Or you can specify clear-text values for <code>UserName</code>, <code>Password</code>, <code>ServerName</code>, and <code>Port</code>. You can't specify both. For more information on creating this <code>SecretsManagerSecret</code> and the <code>SecretsManagerAccessRoleArn</code> and <code>SecretsManagerSecretId</code> required to access it, see <a href="https://docs.aws.amazon.com/https:/docs.aws.amazon.com/dms/latest/userguide/CHAP_Security.html#security-iam-secretsmanager">Using secrets to access AWS Database Migration Service resources</a> in the <i>AWS Database Migration Service User Guide</i>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Username</i> Endpoint connection user name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SpatialDataOptionToGeoJsonFunctionName</i> Use this attribute to convert <code>SDO_GEOMETRY</code> to <code>GEOJSON</code> format. By default, DMS calls the <code>SDO2GEOJSON</code> custom function if present and accessible. Or you can create your own custom function that mimics the operation of <code>SDOGEOJSON</code> and set <code>SpatialDataOptionToGeoJsonFunctionName</code> to call it instead. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerName</i> Fully qualified domain name of the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityDbEncryptionName</i> For an Oracle source endpoint, the name of a key used for the transparent data encryption (TDE) of the columns and tablespaces in an Oracle source database that is encrypted using TDE. The key value is the value of the <code>SecurityDbEncryption</code> setting. For more information on setting the key name value of <code>SecurityDbEncryptionName</code>, see the information and example for setting the <code>securityDbEncryptionName</code> extra connection attribute in <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.Encryption"> Supported encryption methods for using Oracle as a source for AWS DMS</a> in the <i>AWS Database Migration Service User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityDbEncryption</i> For an Oracle source endpoint, the transparent data encryption (TDE) password required by AWM DMS to access Oracle redo logs encrypted by TDE using Binary Reader. It is also the <code> <i>TDE_Password</i> </code> part of the comma-separated value you set to the <code>Password</code> request parameter when you create the endpoint. The <code>SecurityDbEncryptian</code> setting is related to this <code>SecurityDbEncryptionName</code> setting. For more information, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.Encryption"> Supported encryption methods for using Oracle as a source for AWS DMS</a> in the <i>AWS Database Migration Service User Guide</i>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RetryInterval</i> Specifies the number of seconds that the system waits before resending a query. Example: <code>retryInterval=6;</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadTableSpaceName</i> When set to <code>true</code>, this attribute supports tablespace replication.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Endpoint TCP port.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Password</i> Endpoint connection password.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberDatatypeScale</i> Specifies the number scale. You can select a scale up to 38, or you can select FLOAT. By default, the NUMBER data type is converted to precision 38, scale 10. Example: <code>numberDataTypeScale=12</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FailTasksOnLobTruncation</i> When set to <code>true</code>, this attribute causes a task to fail if the actual size of an LOB column is greater than the specified <code>LobMaxSize</code>. If a task is set to limited LOB mode and this option is set to <code>true</code>, the task fails instead of truncating the LOB data.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DirectPathParallelLoad</i> When set to <code>true</code>, this attribute specifies a parallel load when <code>useDirectPathFullLoad</code> is set to <code>Y</code>. This attribute also only applies when you use the AWS DMS parallel load feature. Note that the target table cannot have any constraints or indexes.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> Database name for the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CharLengthSemantics</i> Specifies whether the length of a character column is in bytes or in characters. To indicate that the character column length is in characters, set this attribute to <code>CHAR</code>. Otherwise, the character column length is in bytes. Example: <code>charLengthSemantics=CHAR;</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AsmUser</i> For an Oracle source endpoint, your ASM user name. You can set this value from the <code>asm_user</code> value. You set <code>asm_user</code> as part of the extra connection attribute string to access an Oracle server with Binary Reader that uses ASM. For more information, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.CDC.Configuration">Configuration for change data capture (CDC) on an Oracle source database</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AsmServer</i> For an Oracle source endpoint, your ASM server address. You can set this value from the <code>asm_server</code> value. You set <code>asm_server</code> as part of the extra connection attribute string to access an Oracle server with Binary Reader that uses ASM. For more information, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.CDC.Configuration">Configuration for change data capture (CDC) on an Oracle source database</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AsmPassword</i> For an Oracle source endpoint, your Oracle Automatic Storage Management (ASM) password. You can set this value from the <code> <i>asm_user_password</i> </code> value. You set this value as part of the comma-separated value that you set to the <code>Password</code> request parameter when you create the endpoint to access transaction logs using Binary Reader. For more information, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.CDC.Configuration">Configuration for change data capture (CDC) on an Oracle source database</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ArchivedLogsOnly</i> When this field is set to <code>Y</code>, AWS DMS only accesses the archived redo logs. If the archived redo logs are stored on Oracle ASM only, the AWS DMS user account needs to be granted ASM privileges.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DirectPathNoLog</i> When set to <code>true</code>, this attribute helps to increase the commit rate on the Oracle target database by writing directly to tables and not writing a trail to database logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableHomogenousTablespace</i> Set this attribute to enable homogenous tablespace replication and create existing tables or indexes under the same tablespace on the target.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplacePathPrefix</i> Set this attribute to true in order to use the Binary Reader to capture change data for an Amazon RDS for Oracle as the source. This setting tells DMS instance to replace the default Oracle root with the specified <code>usePathPrefix</code> setting to access the redo logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UsePathPrefix</i> Set this string attribute to the required value in order to use the Binary Reader to capture change data for an Amazon RDS for Oracle as the source. This value specifies the path prefix used to replace the default Oracle root to access the redo logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OraclePathPrefix</i> Set this string attribute to the required value in order to use the Binary Reader to capture change data for an Amazon RDS for Oracle as the source. This value specifies the default Oracle root used to access the redo logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UseAlternateFolderForOnline</i> Set this attribute to <code>true</code> in order to use the Binary Reader to capture change data for an Amazon RDS for Oracle as the source. This tells the DMS instance to use any specified prefix replacement to access all online redo logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AccessAlternateDirectly</i> Set this attribute to <code>false</code> in order to use the Binary Reader to capture change data for an Amazon RDS for Oracle as the source. This tells the DMS instance to not access redo logs through any specified path prefix replacement using direct file access.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadAheadBlocks</i> Set this attribute to change the number of read-ahead blocks that DMS configures to perform a Change Data Capture (CDC) load using Oracle Automatic Storage Management (ASM). You can specify an integer value between 1000 (the default) and 200,000 (the maximum).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ParallelAsmReadThreads</i> Set this attribute to change the number of threads that DMS configures to perform a Change Data Capture (CDC) load using Oracle Automatic Storage Management (ASM). You can specify an integer value between 2 (the default) and 8 (the maximum). Use this attribute together with the <code>readAheadBlocks</code> attribute.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowSelectNestedTables</i> Set this attribute to <code>true</code> to enable replication of Oracle tables containing columns that are nested tables or defined types.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AdditionalArchivedLogDestId</i> Set this attribute with <code>archivedLogDestId</code> in a primary/ standby setup. This attribute is useful in the case of a switchover. In this case, AWS DMS needs to know which destination to get archive redo logs from to read changes. This need arises because the previous primary instance is now a standby instance after switchover.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ArchivedLogDestId</i> Specifies the destination of the archived redo logs. The value should be the same as the DEST_ID number in the v$archived_log table. When working with multiple log destinations (DEST_ID), we recommend that you to specify an archived redo logs location identifier. Doing this improves performance by ensuring that the correct logs are accessed from the outset.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AddSupplementalLogging</i> Set this attribute to set up table-level supplemental logging for the Oracle database. This attribute enables PRIMARY KEY supplemental logging on all tables selected for a migration task. If you use this option, you still need to enable database-level supplemental logging.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerSecretId</i> The full ARN, partial ARN, or friendly name of the <code>SecretsManagerSecret</code> that contains the SAP SAE endpoint connection details.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerAccessRoleArn</i> The full Amazon Resource Name (ARN) of the IAM role that specifies AWS DMS as the trusted entity and grants the required permissions to access the value in <code>SecretsManagerSecret</code>. <code>SecretsManagerSecret</code> has the value of the AWS Secrets Manager secret that allows access to the SAP ASE endpoint. <note> You can specify one of two sets of values for these permissions. You can specify the values for this setting and <code>SecretsManagerSecretId</code>. Or you can specify clear-text values for <code>UserName</code>, <code>Password</code>, <code>ServerName</code>, and <code>Port</code>. You can't specify both. For more information on creating this <code>SecretsManagerSecret</code> and the <code>SecretsManagerAccessRoleArn</code> and <code>SecretsManagerSecretId</code> required to access it, see <a href="https://docs.aws.amazon.com/https:/docs.aws.amazon.com/dms/latest/userguide/CHAP_Security.html#security-iam-secretsmanager">Using secrets to access AWS Database Migration Service resources</a> in the <i>AWS Database Migration Service User Guide</i>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Username</i> Endpoint connection user name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerName</i> Fully qualified domain name of the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Endpoint TCP port.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Password</i> Endpoint connection password.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> Database name for the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerSecretId</i> The full ARN, partial ARN, or friendly name of the <code>SecretsManagerSecret</code> that contains the SQL Server endpoint connection details.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerAccessRoleArn</i> The full Amazon Resource Name (ARN) of the IAM role that specifies AWS DMS as the trusted entity and grants the required permissions to access the value in <code>SecretsManagerSecret</code>. <code>SecretsManagerSecret</code> has the value of the AWS Secrets Manager secret that allows access to the SQL Server endpoint. <note> You can specify one of two sets of values for these permissions. You can specify the values for this setting and <code>SecretsManagerSecretId</code>. Or you can specify clear-text values for <code>UserName</code>, <code>Password</code>, <code>ServerName</code>, and <code>Port</code>. You can't specify both. For more information on creating this <code>SecretsManagerSecret</code> and the <code>SecretsManagerAccessRoleArn</code> and <code>SecretsManagerSecretId</code> required to access it, see <a href="https://docs.aws.amazon.com/https:/docs.aws.amazon.com/dms/latest/userguide/CHAP_Security.html#security-iam-secretsmanager">Using secrets to access AWS Database Migration Service resources</a> in the <i>AWS Database Migration Service User Guide</i>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UseThirdPartyBackupDevice</i> When this attribute is set to <code>Y</code>, DMS processes third-party transaction log backups if they are created in native format.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UseBcpFullLoad</i> Use this to attribute to transfer data for full-load operations using BCP. When the target table contains an identity column that does not exist in the source table, you must disable the use BCP for loading table option.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Username</i> Endpoint connection user name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerName</i> Fully qualified domain name of the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SafeguardPolicy</i> Use this attribute to minimize the need to access the backup log and enable AWS DMS to prevent truncation using one of the following two methods.  <i>Start transactions in the database:</i> This is the default method. When this method is used, AWS DMS prevents TLOG truncation by mimicking a transaction in the database. As long as such a transaction is open, changes that appear after the transaction started aren't truncated. If you need Microsoft Replication to be enabled in your database, then you must choose this method.  <i>Exclusively use sp_repldone within a single task</i>: When this method is used, AWS DMS reads the changes and then uses sp_repldone to mark the TLOG transactions as ready for truncation. Although this method doesn't involve any transactional activities, it can only be used when Microsoft Replication isn't running. Also, when using this method, only one AWS DMS task can access the database at any given time. Therefore, if you need to run parallel AWS DMS tasks against the same database, use the default method.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadBackupOnly</i> When this attribute is set to <code>Y</code>, AWS DMS only reads changes from transaction log backups and doesn't read from the active transaction log file during ongoing replication. Setting this parameter to <code>Y</code> enables you to control active transaction log file growth during full load and ongoing replication tasks. However, it can add some source latency to ongoing replication.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>QuerySingleAlwaysOnNode</i> Cleans and recreates table metadata information on the replication instance when a mismatch occurs. An example is a situation where running an alter DDL statement on a table might result in different information about the table cached in the replication instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Password</i> Endpoint connection password.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ControlTablesFileGroup</i> Specifies a file group for the AWS DMS internal tables. When the replication task starts, all the internal AWS DMS control tables (awsdms_ apply_exception, awsdms_apply, awsdms_changes) are created for the specified file group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> Database name for the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BcpPacketSize</i> The maximum size of the packets (in bytes) used to transfer data using BCP.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Endpoint TCP port.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerSecretId</i> The full ARN, partial ARN, or friendly name of the <code>SecretsManagerSecret</code> that contains the Db2 LUW endpoint connection details.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerAccessRoleArn</i> The full Amazon Resource Name (ARN) of the IAM role that specifies AWS DMS as the trusted entity and grants the required permissions to access the value in <code>SecretsManagerSecret</code>. <code>SecretsManagerSecret</code> has the value of the AWS Secrets Manager secret that allows access to the Db2 LUW endpoint.  <note> You can specify one of two sets of values for these permissions. You can specify the values for this setting and <code>SecretsManagerSecretId</code>. Or you can specify clear-text values for <code>UserName</code>, <code>Password</code>, <code>ServerName</code>, and <code>Port</code>. You can't specify both. For more information on creating this <code>SecretsManagerSecret</code> and the <code>SecretsManagerAccessRoleArn</code> and <code>SecretsManagerSecretId</code> required to access it, see <a href="https://docs.aws.amazon.com/https:/docs.aws.amazon.com/dms/latest/userguide/CHAP_Security.html#security-iam-secretsmanager">Using secrets to access AWS Database Migration Service resources</a> in the <i>AWS Database Migration Service User Guide</i>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Username</i> Endpoint connection user name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxKBytesPerRead</i> Maximum number of bytes per read, as a NUMBER value. The default is 64 KB.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CurrentLsn</i> For ongoing replication (CDC), use CurrentLSN to specify a log sequence number (LSN) where you want the replication to start.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SetDataCaptureChanges</i> Enables ongoing replication (CDC) as a BOOLEAN value. The default is true.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerName</i> Fully qualified domain name of the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Endpoint TCP port.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Password</i> Endpoint connection password.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> Database name for the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerSecretId</i> The full ARN, partial ARN, or friendly name of the <code>SecretsManagerSecret</code> that contains the DocumentDB endpoint connection details.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerAccessRoleArn</i> The full Amazon Resource Name (ARN) of the IAM role that specifies AWS DMS as the trusted entity and grants the required permissions to access the value in <code>SecretsManagerSecret</code>. <code>SecretsManagerSecret</code> has the value of the AWS Secrets Manager secret that allows access to the DocumentDB endpoint. <note> You can specify one of two sets of values for these permissions. You can specify the values for this setting and <code>SecretsManagerSecretId</code>. Or you can specify clear-text values for <code>UserName</code>, <code>Password</code>, <code>ServerName</code>, and <code>Port</code>. You can't specify both. For more information on creating this <code>SecretsManagerSecret</code> and the <code>SecretsManagerAccessRoleArn</code> and <code>SecretsManagerSecretId</code> required to access it, see <a href="https://docs.aws.amazon.com/https:/docs.aws.amazon.com/dms/latest/userguide/CHAP_Security.html#security-iam-secretsmanager">Using secrets to access AWS Database Migration Service resources</a> in the <i>AWS Database Migration Service User Guide</i>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The AWS KMS key identifier that is used to encrypt the content on the replication instance. If you don't specify a value for the <code>KmsKeyId</code> parameter, then AWS DMS uses your default encryption key. AWS KMS creates the default encryption key for your AWS account. Your AWS account has a different default encryption key for each AWS Region.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DocsToInvestigate</i>  Indicates the number of documents to preview to determine the document organization. Use this setting when <code>NestingLevel</code> is set to <code>"one"</code>.  Must be a positive value greater than <code>0</code>. Default value is <code>1000</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ExtractDocId</i>  Specifies the document ID. Use this setting when <code>NestingLevel</code> is set to <code>"none"</code>.  Default value is <code>"false"</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NestingLevel</i>  Specifies either document or table mode.  Default value is <code>"none"</code>. Specify <code>"none"</code> to use document mode. Specify <code>"one"</code> to use table mode.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i>  The database name on the DocumentDB source endpoint. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i>  The port value for the DocumentDB source endpoint. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerName</i>  The name of the server on the DocumentDB source endpoint. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Password</i>  The password for the user account you use to access the DocumentDB source endpoint. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Username</i> The user name you use to access the DocumentDB source endpoint. <br/>        """
        pass

    def delete_event_subscription(self, SubscriptionName: str) -> DeleteEventSubscriptionResponse:
        r""" Deletes an AWS DMS event subscription. 

        :param self:
        :param SubscriptionName:  The name of the DMS event notification subscription to be deleted.<br/>
        :return: EventSubscription:  The event subscription that was deleted.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Boolean value that indicates if the event subscription is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EventCategoriesList</i> A lists of event categories.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceIdsList</i> A list of source Ids for the event subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceType</i>  The type of AWS DMS resource that generates events.  Valid values: replication-instance | replication-server | security-group | replication-task<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubscriptionCreationTime</i> The time the AWS DMS event notification subscription was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the AWS DMS event notification subscription. Constraints: Can be one of the following: creating | modifying | deleting | active | no-permission | topic-not-exist The status "no-permission" indicates that AWS DMS no longer has permission to post to the SNS topic. The status "topic-not-exist" indicates that the topic was deleted after the subscription was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnsTopicArn</i> The topic ARN of the AWS DMS event notification subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustSubscriptionId</i> The AWS DMS event notification subscription Id.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomerAwsId</i> The AWS customer account associated with the AWS DMS event notification subscription.<br/>        """
        pass

    def delete_replication_instance(self, ReplicationInstanceArn: str) -> DeleteReplicationInstanceResponse:
        r"""Deletes the specified replication instance. <note> You must delete any migration tasks that are associated with the replication instance before you can delete it. </note> <p/>

        :param self:
        :param ReplicationInstanceArn:  The Amazon Resource Name (ARN) of the replication instance to be deleted.<br/>
        :return: ReplicationInstance:  The replication instance that was deleted.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DnsNameServers</i> The DNS name servers supported for the replication instance to access your on-premise source or target database.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FreeUntil</i>  The expiration date of the free replication instance that is part of the Free DMS program. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecondaryAvailabilityZone</i> The Availability Zone of the standby replication instance in a Multi-AZ deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PubliclyAccessible</i>  Specifies the accessibility options for the replication instance. A value of <code>true</code> represents an instance with a public IP address. A value of <code>false</code> represents an instance with a private IP address. The default value is <code>true</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationInstancePrivateIpAddresses</i> One or more private IP addresses for the replication instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationInstancePublicIpAddresses</i> One or more public IP addresses for the replication instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationInstancePrivateIpAddress</i> The private IP address of the replication instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationInstancePublicIpAddress</i> The public IP address of the replication instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationInstanceArn</i> The Amazon Resource Name (ARN) of the replication instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> An AWS KMS key identifier that is used to encrypt the data on the replication instance. If you don't specify a value for the <code>KmsKeyId</code> parameter, then AWS DMS uses your default encryption key. AWS KMS creates the default encryption key for your AWS account. Your AWS account has a different default encryption key for each AWS Region.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoMinorVersionUpgrade</i> Boolean value indicating if minor version upgrades will be automatically applied to the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> The engine version number of the replication instance. If an engine version number is not specified when a replication instance is created, the default is the latest engine version available. When modifying a major engine version of an instance, also set <code>AllowMajorVersionUpgrade</code> to <code>true</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiAZ</i>  Specifies whether the replication instance is a Multi-AZ deployment. You can't set the <code>AvailabilityZone</code> parameter if the Multi-AZ parameter is set to <code>true</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingModifiedValues</i> The pending modification values.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingModifiedValues</b>: The pending modification values.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i> The maintenance window times for the replication instance. Any pending upgrades to the replication instance are performed during this time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationSubnetGroup</i> The subnet group for the replication instance.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ReplicationSubnetGroup</b>: The subnet group for the replication instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZone</i> The Availability Zone for the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcSecurityGroups</i> The VPC security group for the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceCreateTime</i> The time the replication instance was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllocatedStorage</i> The amount of storage (in gigabytes) that is allocated for the replication instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationInstanceStatus</i> The status of the replication instance. The possible return values include: <ul> <li>  <code>"available"</code>  </li> <li>  <code>"creating"</code>  </li> <li>  <code>"deleted"</code>  </li> <li>  <code>"deleting"</code>  </li> <li>  <code>"failed"</code>  </li> <li>  <code>"modifying"</code>  </li> <li>  <code>"upgrading"</code>  </li> <li>  <code>"rebooting"</code>  </li> <li>  <code>"resetting-master-credentials"</code>  </li> <li>  <code>"storage-full"</code>  </li> <li>  <code>"incompatible-credentials"</code>  </li> <li>  <code>"incompatible-network"</code>  </li> <li>  <code>"maintenance"</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationInstanceClass</i> The compute and memory capacity of the replication instance as defined for the specified replication instance class. It is a required parameter, although a defualt value is pre-selected in the DMS console. For more information on the settings and capacities for the available replication instance classes, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_ReplicationInstance.html#CHAP_ReplicationInstance.InDepth"> Selecting the right AWS DMS replication instance for your migration</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationInstanceIdentifier</i> The replication instance identifier is a required parameter. This parameter is stored as a lowercase string. Constraints: <ul> <li> Must contain 1-63 alphanumeric characters or hyphens. </li> <li> First character must be a letter. </li> <li> Cannot end with a hyphen or contain two consecutive hyphens. </li> </ul> Example: <code>myrepinstance</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Subnets</i> The subnets that are in the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetGroupStatus</i> The status of the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The ID of the VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationSubnetGroupDescription</i> A description for the replication subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationSubnetGroupIdentifier</i> The identifier of the replication instance subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> The engine version number of the replication instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiAZ</i>  Specifies whether the replication instance is a Multi-AZ deployment. You can't set the <code>AvailabilityZone</code> parameter if the Multi-AZ parameter is set to <code>true</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AllocatedStorage</i> The amount of storage (in gigabytes) that is allocated for the replication instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationInstanceClass</i> The compute and memory capacity of the replication instance as defined for the specified replication instance class. For more information on the settings and capacities for the available replication instance classes, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_ReplicationInstance.html#CHAP_ReplicationInstance.InDepth"> Selecting the right AWS DMS replication instance for your migration</a>. <br/>        """
        pass

    def delete_replication_subnet_group(self, ReplicationSubnetGroupIdentifier: str) -> DeleteReplicationSubnetGroupResponse:
        r"""Deletes a subnet group.

        :param self:
        :param ReplicationSubnetGroupIdentifier:  The subnet group name of the replication instance.<br/>
        :return:         """
        pass

    def delete_replication_task(self, ReplicationTaskArn: str) -> DeleteReplicationTaskResponse:
        r"""Deletes the specified replication task.

        :param self:
        :param ReplicationTaskArn:  The Amazon Resource Name (ARN) of the replication task to be deleted.<br/>
        :return: ReplicationTask:  The deleted replication task.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetReplicationInstanceArn</i> The ARN of the replication instance to which this task is moved in response to running the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_MoveReplicationTask.html"> <code>MoveReplicationTask</code> </a> operation. Otherwise, this response parameter isn't a member of the <code>ReplicationTask</code> object.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TaskData</i> Supplemental information that the task requires to migrate the data for certain source and target endpoints. For more information, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.TaskData.html">Specifying Supplemental Data for Task Settings</a> in the <i>AWS Database Migration Service User Guide.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationTaskStats</i> The statistics for the task, including elapsed time, tables loaded, and table errors.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ReplicationTaskStats</b>: The statistics for the task, including elapsed time, tables loaded, and table errors.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationTaskArn</i> The Amazon Resource Name (ARN) of the replication task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecoveryCheckpoint</i> Indicates the last checkpoint that occurred during a change data capture (CDC) operation. You can provide this value to the <code>CdcStartPosition</code> parameter to start a CDC operation that begins at that checkpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CdcStopPosition</i> Indicates when you want a change data capture (CDC) operation to stop. The value can be either server time or commit time. Server time example: --cdc-stop-position “server_time:2018-02-09T12:12:12” Commit time example: --cdc-stop-position “commit_time: 2018-02-09T12:12:12 “<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CdcStartPosition</i> Indicates when you want a change data capture (CDC) operation to start. Use either <code>CdcStartPosition</code> or <code>CdcStartTime</code> to specify when you want the CDC operation to start. Specifying both values results in an error. The value can be in date, checkpoint, or LSN/SCN format. Date Example: --cdc-start-position “2018-03-08T12:12:12” Checkpoint Example: --cdc-start-position "checkpoint:V1#27#mysql-bin-changelog.157832:1975:-1:2002:677883278264080:mysql-bin-changelog.157832:1876#0#0#*#0#93" LSN Example: --cdc-start-position “mysql-bin-changelog.000024:373”<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationTaskStartDate</i> The date the replication task is scheduled to start.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationTaskCreationDate</i> The date the replication task was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StopReason</i> The reason the replication task was stopped. This response parameter can return one of the following values: <ul> <li>  <code>"STOP_REASON_FULL_LOAD_COMPLETED"</code> – Full-load migration completed. </li> <li>  <code>"STOP_REASON_CACHED_CHANGES_APPLIED"</code> – Change data capture (CDC) load completed. </li> <li>  <code>"STOP_REASON_CACHED_CHANGES_NOT_APPLIED"</code> – In a full-load and CDC migration, the full load stopped as specified before starting the CDC migration. </li> <li>  <code>"STOP_REASON_SERVER_TIME"</code> – The migration stopped at the specified server time. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastFailureMessage</i> The last error (failure) message generated for the replication task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the replication task. This response parameter can return one of the following values: <ul> <li>  <code>"moving"</code> – The task is being moved in response to running the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_MoveReplicationTask.html"> <code>MoveReplicationTask</code> </a> operation. </li> <li>  <code>"creating"</code> – The task is being created in response to running the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_CreateReplicationTask.html"> <code>CreateReplicationTask</code> </a> operation. </li> <li>  <code>"deleting"</code> – The task is being deleted in response to running the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_DeleteReplicationTask.html"> <code>DeleteReplicationTask</code> </a> operation. </li> <li>  <code>"failed"</code> – The task failed to successfully complete the database migration in response to running the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StartReplicationTask.html"> <code>StartReplicationTask</code> </a> operation. </li> <li>  <code>"failed-move"</code> – The task failed to move in response to running the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_MoveReplicationTask.html"> <code>MoveReplicationTask</code> </a> operation. </li> <li>  <code>"modifying"</code> – The task definition is being modified in response to running the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_ModifyReplicationTask.html"> <code>ModifyReplicationTask</code> </a> operation. </li> <li>  <code>"ready"</code> – The task is in a <code>ready</code> state where it can respond to other task operations, such as <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StartReplicationTask.html"> <code>StartReplicationTask</code> </a> or <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_DeleteReplicationTask.html"> <code>DeleteReplicationTask</code> </a>.  </li> <li>  <code>"running"</code> – The task is performing a database migration in response to running the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StartReplicationTask.html"> <code>StartReplicationTask</code> </a> operation. </li> <li>  <code>"starting"</code> – The task is preparing to perform a database migration in response to running the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StartReplicationTask.html"> <code>StartReplicationTask</code> </a> operation. </li> <li>  <code>"stopped"</code> – The task has stopped in response to running the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StopReplicationTask.html"> <code>StopReplicationTask</code> </a> operation. </li> <li>  <code>"stopping"</code> – The task is preparing to stop in response to running the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StopReplicationTask.html"> <code>StopReplicationTask</code> </a> operation. </li> <li>  <code>"testing"</code> – The database migration specified for this task is being tested in response to running either the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StartReplicationTaskAssessmentRun.html"> <code>StartReplicationTaskAssessmentRun</code> </a> or the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StartReplicationTaskAssessment.html"> <code>StartReplicationTaskAssessment</code> </a> operation. <note>  <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StartReplicationTaskAssessmentRun.html"> <code>StartReplicationTaskAssessmentRun</code> </a> is an improved premigration task assessment operation. The <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StartReplicationTaskAssessment.html"> <code>StartReplicationTaskAssessment</code> </a> operation assesses data type compatibility only between the source and target database of a given migration task. In contrast, <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StartReplicationTaskAssessmentRun.html"> <code>StartReplicationTaskAssessmentRun</code> </a> enables you to specify a variety of premigration task assessments in addition to data type compatibility. These assessments include ones for the validity of primary key definitions and likely issues with database migration performance, among others. </note> </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationTaskSettings</i> The settings for the replication task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TableMappings</i> Table mappings specified in the task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MigrationType</i> The type of migration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationInstanceArn</i> The ARN of the replication instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetEndpointArn</i> The ARN that uniquely identifies the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceEndpointArn</i> The Amazon Resource Name (ARN) that uniquely identifies the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationTaskIdentifier</i> The user-assigned replication task identifier or name. Constraints: <ul> <li> Must contain 1-255 alphanumeric characters or hyphens. </li> <li> First character must be a letter. </li> <li> Cannot end with a hyphen or contain two consecutive hyphens. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FullLoadFinishDate</i> The date the replication task full load was completed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FullLoadStartDate</i> The date the replication task full load was started.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StopDate</i> The date the replication task was stopped.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StartDate</i> The date the replication task was started either with a fresh start or a resume. For more information, see <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StartReplicationTask.html#DMS-StartReplicationTask-request-StartReplicationTaskType">StartReplicationTaskType</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FreshStartDate</i> The date the replication task was started either with a fresh start or a target reload.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TablesErrored</i> The number of errors that have occurred during this task.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TablesQueued</i> The number of tables queued for this task.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TablesLoading</i> The number of tables currently loading for this task.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TablesLoaded</i> The number of tables loaded for this task.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ElapsedTimeMillis</i> The elapsed time of the task, in milliseconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FullLoadProgressPercent</i> The percent complete for the full load migration task.<br/>        """
        pass

    def delete_replication_task_assessment_run(self, ReplicationTaskAssessmentRunArn: str) -> DeleteReplicationTaskAssessmentRunResponse:
        r"""Deletes the record of a single premigration assessment run. This operation removes all metadata that AWS DMS maintains about this assessment run. However, the operation leaves untouched all information about this assessment run that is stored in your Amazon S3 bucket.

        :param self:
        :param ReplicationTaskAssessmentRunArn:  Amazon Resource Name (ARN) of the premigration assessment run to be deleted.<br/>
        :return: ReplicationTaskAssessmentRun:  The <code>ReplicationTaskAssessmentRun</code> object for the deleted assessment run.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssessmentRunName</i> Unique name of the assessment run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResultKmsKeyArn</i> ARN of the AWS KMS encryption key used to encrypt the assessment run results.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResultEncryptionMode</i> Encryption mode used to encrypt the assessment run results.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResultLocationFolder</i> Folder in an Amazon S3 bucket where AWS DMS stores the results of this assessment run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResultLocationBucket</i> Amazon S3 bucket where AWS DMS stores the results of this assessment run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceAccessRoleArn</i> ARN of the service role used to start the assessment run using the <code>StartReplicationTaskAssessmentRun</code> operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastFailureMessage</i> Last message generated by an individual assessment failure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssessmentProgress</i> Indication of the completion progress for the individual assessments specified to run.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AssessmentProgress</b>: Indication of the completion progress for the individual assessments specified to run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationTaskAssessmentRunCreationDate</i> Date on which the assessment run was created using the <code>StartReplicationTaskAssessmentRun</code> operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Assessment run status.  This status can have one of the following values: <ul> <li>  <code>"cancelling"</code> – The assessment run was canceled by the <code>CancelReplicationTaskAssessmentRun</code> operation. </li> <li>  <code>"deleting"</code> – The assessment run was deleted by the <code>DeleteReplicationTaskAssessmentRun</code> operation. </li> <li>  <code>"failed"</code> – At least one individual assessment completed with a <code>failed</code> status. </li> <li>  <code>"error-provisioning"</code> – An internal error occurred while resources were provisioned (during <code>provisioning</code> status). </li> <li>  <code>"error-executing"</code> – An internal error occurred while individual assessments ran (during <code>running</code> status). </li> <li>  <code>"invalid state"</code> – The assessment run is in an unknown state. </li> <li>  <code>"passed"</code> – All individual assessments have completed, and none has a <code>failed</code> status. </li> <li>  <code>"provisioning"</code> – Resources required to run individual assessments are being provisioned. </li> <li>  <code>"running"</code> – Individual assessments are being run. </li> <li>  <code>"starting"</code> – The assessment run is starting, but resources are not yet being provisioned for individual assessments. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationTaskArn</i> ARN of the migration task associated with this premigration assessment run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationTaskAssessmentRunArn</i> Amazon Resource Name (ARN) of this assessment run.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IndividualAssessmentCompletedCount</i> The number of individual assessments that have completed, successfully or not.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IndividualAssessmentCount</i> The number of individual assessments that are specified to run.<br/>        """
        pass

    def describe_account_attributes(self) -> DescribeAccountAttributesResponse:
        r"""Lists all of the AWS DMS attributes for a customer account. These attributes include AWS DMS quotas for the account and a unique account identifier in a particular DMS region. DMS quotas include a list of resource quotas supported by the account, such as the number of replication instances allowed. The description for each resource quota, includes the quota name, current usage toward that quota, and the quota's maximum value. DMS uses the unique account identifier to name each artifact used by DMS in the given region. This command does not take any parameters.

        :param self:
        :param 
        :return: UniqueAccountIdentifier:  A unique AWS DMS identifier for an account in a particular AWS Region. The value of this identifier has the following format: <code>c99999999999</code>. DMS uses this identifier to name artifacts. For example, DMS uses this identifier to name the default Amazon S3 bucket for storing task assessment reports in a given AWS Region. The format of this S3 bucket name is the following: <code>dms-<i>AccountNumber</i>-<i>UniqueAccountIdentifier</i>.</code> Here is an example name for this default S3 bucket: <code>dms-111122223333-c44445555666</code>. <note> AWS DMS supports the <code>UniqueAccountIdentifier</code> parameter in versions 3.1.4 and later. </note><br/>AccountQuotas:  Account quota information.<br/>        """
        pass

    def describe_applicable_individual_assessments(self, ReplicationTaskArn: str=None, ReplicationInstanceArn: str=None, SourceEngineName: str=None, TargetEngineName: str=None, MigrationType: str=None, MaxRecords: int=None, Marker: str=None) -> DescribeApplicableIndividualAssessmentsResponse:
        r"""Provides a list of individual assessments that you can specify for a new premigration assessment run, given one or more parameters. If you specify an existing migration task, this operation provides the default individual assessments you can specify for that task. Otherwise, the specified parameters model elements of a possible migration task on which to base a premigration assessment run. To use these migration task modeling parameters, you must specify an existing replication instance, a source database engine, a target database engine, and a migration type. This combination of parameters potentially limits the default individual assessments available for an assessment run created for a corresponding migration task. If you specify no parameters, this operation provides a list of all possible individual assessments that you can specify for an assessment run. If you specify any one of the task modeling parameters, you must specify all of them or the operation cannot provide a list of individual assessments. The only parameter that you can specify alone is for an existing migration task. The specified task definition then determines the default list of individual assessments that you can specify in an assessment run for the task.

        :param self:
        :param Marker:  Optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>.<br/>MaxRecords:  Maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a pagination token called a marker is included in the response so that the remaining results can be retrieved.<br/>MigrationType:  Name of the migration type that each provided individual assessment must support.<br/>TargetEngineName:  Name of a database engine that the specified replication instance supports as a target.<br/>SourceEngineName:  Name of a database engine that the specified replication instance supports as a source.<br/>ReplicationInstanceArn:  ARN of a replication instance on which you want to base the default list of individual assessments.<br/>ReplicationTaskArn:  Amazon Resource Name (ARN) of a migration task on which you want to base the default list of individual assessments.<br/>
        :return: Marker:  Pagination token returned for you to pass to a subsequent request. If you pass this token as the <code>Marker</code> value in a subsequent request, the response includes only records beyond the marker, up to the value specified in the request by <code>MaxRecords</code>.<br/>IndividualAssessmentNames:  List of names for the individual assessments supported by the premigration assessment run that you start based on the specified request parameters. For more information on the available individual assessments, including compatibility with different migration task configurations, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.AssessmentReport.html">Working with premigration assessment runs</a> in the <i>AWS Database Migration Service User Guide.</i> <br/>        """
        pass

    def describe_certificates(self, Filters: List[Filter]=None, MaxRecords: int=None, Marker: str=None) -> DescribeCertificatesResponse:
        r"""Provides a description of the certificate.

        :param self:
        :param Marker:   An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>. <br/>MaxRecords:   The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a pagination token called a marker is included in the response so that the remaining results can be retrieved.  Default: 10<br/>Filters:  Filters applied to the certificates described in the form of key-value pairs.<br/>
        :return: Certificates:  The Secure Sockets Layer (SSL) certificates associated with the replication instance.<br/>Marker:  The pagination token.<br/>        """
        pass

    def describe_connections(self, Filters: List[Filter]=None, MaxRecords: int=None, Marker: str=None) -> DescribeConnectionsResponse:
        r"""Describes the status of the connections that have been made between the replication instance and an endpoint. Connections are created when you test an endpoint.

        :param self:
        :param Marker:   An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>. <br/>MaxRecords:   The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a pagination token called a marker is included in the response so that the remaining results can be retrieved.  Default: 100 Constraints: Minimum 20, maximum 100.<br/>Filters:  The filters applied to the connection. Valid filter names: endpoint-arn | replication-instance-arn<br/>
        :return: Connections:  A description of the connections.<br/>Marker:   An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>. <br/>        """
        pass

    def describe_endpoint_settings(self, EngineName: str, MaxRecords: int=None, Marker: str=None) -> DescribeEndpointSettingsResponse:
        r"""Returns information about the possible endpoint settings available when you create an endpoint for a specific database engine.

        :param self:
        :param Marker:  An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>.<br/>MaxRecords:  The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a pagination token called a marker is included in the response so that the remaining results can be retrieved.<br/>EngineName:  The databse engine used for your source or target endpoint.<br/>
        :return: EndpointSettings:  Descriptions of the endpoint settings available for your source or target database engine.<br/>Marker:  An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>.<br/>        """
        pass

    def describe_endpoint_types(self, Filters: List[Filter]=None, MaxRecords: int=None, Marker: str=None) -> DescribeEndpointTypesResponse:
        r"""Returns information about the type of endpoints available.

        :param self:
        :param Marker:   An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>. <br/>MaxRecords:   The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a pagination token called a marker is included in the response so that the remaining results can be retrieved.  Default: 100 Constraints: Minimum 20, maximum 100.<br/>Filters:  Filters applied to the endpoint types. Valid filter names: engine-name | endpoint-type<br/>
        :return: SupportedEndpointTypes:  The types of endpoints that are supported.<br/>Marker:   An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>. <br/>        """
        pass

    def describe_endpoints(self, Filters: List[Filter]=None, MaxRecords: int=None, Marker: str=None) -> DescribeEndpointsResponse:
        r"""Returns information about the endpoints for your account in the current region.

        :param self:
        :param Marker:   An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>. <br/>MaxRecords:   The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a pagination token called a marker is included in the response so that the remaining results can be retrieved.  Default: 100 Constraints: Minimum 20, maximum 100.<br/>Filters:  Filters applied to the endpoints. Valid filter names: endpoint-arn | endpoint-type | endpoint-id | engine-name<br/>
        :return: Endpoints:  Endpoint description.<br/>Marker:   An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>. <br/>        """
        pass

    def describe_event_categories(self, SourceType: str=None, Filters: List[Filter]=None) -> DescribeEventCategoriesResponse:
        r"""Lists categories for all event source types, or, if specified, for a specified source type. You can see a list of the event categories and source types in <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Events.html">Working with Events and Notifications</a> in the <i>AWS Database Migration Service User Guide.</i> 

        :param self:
        :param Filters:  Filters applied to the event categories.<br/>SourceType:   The type of AWS DMS resource that generates events.  Valid values: replication-instance | replication-task<br/>
        :return: EventCategoryGroupList:  A list of event categories.<br/>        """
        pass

    def describe_event_subscriptions(self, SubscriptionName: str=None, Filters: List[Filter]=None, MaxRecords: int=None, Marker: str=None) -> DescribeEventSubscriptionsResponse:
        r"""Lists all the event subscriptions for a customer account. The description of a subscription includes <code>SubscriptionName</code>, <code>SNSTopicARN</code>, <code>CustomerID</code>, <code>SourceType</code>, <code>SourceID</code>, <code>CreationTime</code>, and <code>Status</code>.  If you specify <code>SubscriptionName</code>, this action lists the description for that subscription.

        :param self:
        :param Marker:   An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>. <br/>MaxRecords:   The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a pagination token called a marker is included in the response so that the remaining results can be retrieved.  Default: 100 Constraints: Minimum 20, maximum 100.<br/>Filters:  Filters applied to event subscriptions.<br/>SubscriptionName:  The name of the AWS DMS event subscription to be described.<br/>
        :return: EventSubscriptionsList:  A list of event subscriptions.<br/>Marker:   An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>. <br/>        """
        pass

    def describe_events(self, SourceIdentifier: str=None, SourceType: str=None, StartTime: TStamp=None, EndTime: TStamp=None, Duration: int=None, EventCategories: List[String]=None, Filters: List[Filter]=None, MaxRecords: int=None, Marker: str=None) -> DescribeEventsResponse:
        r""" Lists events for a given source identifier and source type. You can also specify a start and end time. For more information on AWS DMS events, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Events.html">Working with Events and Notifications</a> in the <i>AWS Database Migration User Guide.</i> 

        :param self:
        :param Marker:   An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>. <br/>MaxRecords:   The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a pagination token called a marker is included in the response so that the remaining results can be retrieved.  Default: 100 Constraints: Minimum 20, maximum 100.<br/>Filters:  Filters applied to events.<br/>EventCategories:  A list of event categories for the source type that you've chosen.<br/>Duration:  The duration of the events to be listed.<br/>EndTime:  The end time for the events to be listed.<br/>StartTime:  The start time for the events to be listed.<br/>SourceType:  The type of AWS DMS resource that generates events. Valid values: replication-instance | replication-task<br/>SourceIdentifier:   The identifier of an event source.<br/>
        :return: Events:  The events described.<br/>Marker:   An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>. <br/>        """
        pass

    def describe_orderable_replication_instances(self, MaxRecords: int=None, Marker: str=None) -> DescribeOrderableReplicationInstancesResponse:
        r"""Returns information about the replication instance types that can be created in the specified region.

        :param self:
        :param Marker:   An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>. <br/>MaxRecords:   The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a pagination token called a marker is included in the response so that the remaining results can be retrieved.  Default: 100 Constraints: Minimum 20, maximum 100.<br/>
        :return: Marker:   An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>. <br/>OrderableReplicationInstances:  The order-able replication instances available.<br/>        """
        pass

    def describe_pending_maintenance_actions(self, ReplicationInstanceArn: str=None, Filters: List[Filter]=None, Marker: str=None, MaxRecords: int=None) -> DescribePendingMaintenanceActionsResponse:
        r"""For internal use only

        :param self:
        :param MaxRecords:   The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a pagination token called a marker is included in the response so that the remaining results can be retrieved.  Default: 100 Constraints: Minimum 20, maximum 100.<br/>Marker:   An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>. <br/>Filters:  <p/><br/>ReplicationInstanceArn:  The Amazon Resource Name (ARN) of the replication instance.<br/>
        :return: Marker:   An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>. <br/>PendingMaintenanceActions:  The pending maintenance action.<br/>        """
        pass

    def describe_refresh_schemas_status(self, EndpointArn: str) -> DescribeRefreshSchemasStatusResponse:
        r"""Returns the status of the RefreshSchemas operation.

        :param self:
        :param EndpointArn:  The Amazon Resource Name (ARN) string that uniquely identifies the endpoint.<br/>
        :return: RefreshSchemasStatus:  The status of the schema.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastFailureMessage</i> The last failure message for the schema.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastRefreshDate</i> The date the schema was last refreshed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the schema.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationInstanceArn</i> The Amazon Resource Name (ARN) of the replication instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointArn</i> The Amazon Resource Name (ARN) string that uniquely identifies the endpoint.<br/>        """
        pass

    def describe_replication_instance_task_logs(self, ReplicationInstanceArn: str, MaxRecords: int=None, Marker: str=None) -> DescribeReplicationInstanceTaskLogsResponse:
        r"""Returns information about the task logs for the specified task.

        :param self:
        :param Marker:   An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>.<br/>MaxRecords:   The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a pagination token called a marker is included in the response so that the remaining results can be retrieved.  Default: 100 Constraints: Minimum 20, maximum 100.<br/>ReplicationInstanceArn:  The Amazon Resource Name (ARN) of the replication instance.<br/>
        :return: Marker:   An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>.<br/>ReplicationInstanceTaskLogs:  An array of replication task log metadata. Each member of the array contains the replication task name, ARN, and task log size (in bytes). <br/>ReplicationInstanceArn:  The Amazon Resource Name (ARN) of the replication instance.<br/>        """
        pass

    def describe_replication_instances(self, Filters: List[Filter]=None, MaxRecords: int=None, Marker: str=None) -> DescribeReplicationInstancesResponse:
        r"""Returns information about replication instances for your account in the current region.

        :param self:
        :param Marker:   An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>. <br/>MaxRecords:   The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a pagination token called a marker is included in the response so that the remaining results can be retrieved.  Default: 100 Constraints: Minimum 20, maximum 100.<br/>Filters:  Filters applied to replication instances. Valid filter names: replication-instance-arn | replication-instance-id | replication-instance-class | engine-version<br/>
        :return: ReplicationInstances:  The replication instances described.<br/>Marker:   An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>. <br/>        """
        pass

    def describe_replication_subnet_groups(self, Filters: List[Filter]=None, MaxRecords: int=None, Marker: str=None) -> DescribeReplicationSubnetGroupsResponse:
        r"""Returns information about the replication subnet groups.

        :param self:
        :param Marker:   An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>. <br/>MaxRecords:   The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a pagination token called a marker is included in the response so that the remaining results can be retrieved.  Default: 100 Constraints: Minimum 20, maximum 100.<br/>Filters:  Filters applied to replication subnet groups. Valid filter names: replication-subnet-group-id<br/>
        :return: ReplicationSubnetGroups:  A description of the replication subnet groups.<br/>Marker:   An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>. <br/>        """
        pass

    def describe_replication_task_assessment_results(self, ReplicationTaskArn: str=None, MaxRecords: int=None, Marker: str=None) -> DescribeReplicationTaskAssessmentResultsResponse:
        r"""Returns the task assessment results from Amazon S3. This action always returns the latest results.

        :param self:
        :param Marker:   An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>. <br/>MaxRecords:   The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a pagination token called a marker is included in the response so that the remaining results can be retrieved.  Default: 100 Constraints: Minimum 20, maximum 100.<br/>ReplicationTaskArn:  The Amazon Resource Name (ARN) string that uniquely identifies the task. When this input parameter is specified, the API returns only one result and ignore the values of the <code>MaxRecords</code> and <code>Marker</code> parameters. <br/>
        :return: ReplicationTaskAssessmentResults:   The task assessment report. <br/>BucketName:  - The Amazon S3 bucket where the task assessment report is located. <br/>Marker:   An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>. <br/>        """
        pass

    def describe_replication_task_assessment_runs(self, Filters: List[Filter]=None, MaxRecords: int=None, Marker: str=None) -> DescribeReplicationTaskAssessmentRunsResponse:
        r"""Returns a paginated list of premigration assessment runs based on filter settings. These filter settings can specify a combination of premigration assessment runs, migration tasks, replication instances, and assessment run status values. <note> This operation doesn't return information about individual assessments. For this information, see the <code>DescribeReplicationTaskIndividualAssessments</code> operation.  </note>

        :param self:
        :param Marker:  An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>.<br/>MaxRecords:  The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a pagination token called a marker is included in the response so that the remaining results can be retrieved.<br/>Filters:  Filters applied to the premigration assessment runs described in the form of key-value pairs. Valid filter names: <code>replication-task-assessment-run-arn</code>, <code>replication-task-arn</code>, <code>replication-instance-arn</code>, <code>status</code> <br/>
        :return: ReplicationTaskAssessmentRuns:  One or more premigration assessment runs as specified by <code>Filters</code>.<br/>Marker:  A pagination token returned for you to pass to a subsequent request. If you pass this token as the <code>Marker</code> value in a subsequent request, the response includes only records beyond the marker, up to the value specified in the request by <code>MaxRecords</code>.<br/>        """
        pass

    def describe_replication_task_individual_assessments(self, Filters: List[Filter]=None, MaxRecords: int=None, Marker: str=None) -> DescribeReplicationTaskIndividualAssessmentsResponse:
        r"""Returns a paginated list of individual assessments based on filter settings. These filter settings can specify a combination of premigration assessment runs, migration tasks, and assessment status values.

        :param self:
        :param Marker:  An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>.<br/>MaxRecords:  The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a pagination token called a marker is included in the response so that the remaining results can be retrieved.<br/>Filters:  Filters applied to the individual assessments described in the form of key-value pairs. Valid filter names: <code>replication-task-assessment-run-arn</code>, <code>replication-task-arn</code>, <code>status</code> <br/>
        :return: ReplicationTaskIndividualAssessments:  One or more individual assessments as specified by <code>Filters</code>.<br/>Marker:  A pagination token returned for you to pass to a subsequent request. If you pass this token as the <code>Marker</code> value in a subsequent request, the response includes only records beyond the marker, up to the value specified in the request by <code>MaxRecords</code>.<br/>        """
        pass

    def describe_replication_tasks(self, Filters: List[Filter]=None, MaxRecords: int=None, Marker: str=None, WithoutSettings: BooleanOptional=None) -> DescribeReplicationTasksResponse:
        r"""Returns information about replication tasks for your account in the current region.

        :param self:
        :param WithoutSettings:  An option to set to avoid returning information about settings. Use this to reduce overhead when setting information is too large. To use this option, choose <code>true</code>; otherwise, choose <code>false</code> (the default).<br/>Marker:   An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>. <br/>MaxRecords:   The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a pagination token called a marker is included in the response so that the remaining results can be retrieved.  Default: 100 Constraints: Minimum 20, maximum 100.<br/>Filters:  Filters applied to replication tasks. Valid filter names: replication-task-arn | replication-task-id | migration-type | endpoint-arn | replication-instance-arn<br/>
        :return: ReplicationTasks:  A description of the replication tasks.<br/>Marker:   An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>. <br/>        """
        pass

    def describe_schemas(self, EndpointArn: str, MaxRecords: int=None, Marker: str=None) -> DescribeSchemasResponse:
        r"""Returns information about the schema for the specified endpoint. <p/>

        :param self:
        :param Marker:   An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>. <br/>MaxRecords:   The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a pagination token called a marker is included in the response so that the remaining results can be retrieved.  Default: 100 Constraints: Minimum 20, maximum 100.<br/>EndpointArn:  The Amazon Resource Name (ARN) string that uniquely identifies the endpoint.<br/>
        :return: Schemas:  The described schema.<br/>Marker:   An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>. <br/>        """
        pass

    def describe_table_statistics(self, ReplicationTaskArn: str, MaxRecords: int=None, Marker: str=None, Filters: List[Filter]=None) -> DescribeTableStatisticsResponse:
        r"""Returns table statistics on the database migration task, including table name, rows inserted, rows updated, and rows deleted. Note that the "last updated" column the DMS console only indicates the time that AWS DMS last updated the table statistics record for a table. It does not indicate the time of the last update to the table.

        :param self:
        :param Filters:  Filters applied to table statistics. Valid filter names: schema-name | table-name | table-state A combination of filters creates an AND condition where each record matches all specified filters.<br/>Marker:   An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>. <br/>MaxRecords:   The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a pagination token called a marker is included in the response so that the remaining results can be retrieved.  Default: 100 Constraints: Minimum 20, maximum 500.<br/>ReplicationTaskArn:  The Amazon Resource Name (ARN) of the replication task.<br/>
        :return: Marker:   An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>. <br/>TableStatistics:  The table statistics.<br/>ReplicationTaskArn:  The Amazon Resource Name (ARN) of the replication task.<br/>        """
        pass

    def import_certificate(self, CertificateIdentifier: str, CertificatePem: str=None, CertificateWallet: CertificateWallet=None, Tags: List[Tag]=None) -> ImportCertificateResponse:
        r"""Uploads the specified certificate.

        :param self:
        :param Tags:  The tags associated with the certificate.<br/>CertificateWallet:  The location of an imported Oracle Wallet certificate for use with SSL.<br/>CertificatePem:  The contents of a <code>.pem</code> file, which contains an X.509 certificate.<br/>CertificateIdentifier:  A customer-assigned name for the certificate. Identifiers must begin with a letter and must contain only ASCII letters, digits, and hyphens. They can't end with a hyphen or contain two consecutive hyphens.<br/>
        :return: Certificate:  The certificate to be uploaded.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KeyLength</i> The key length of the cryptographic algorithm being used.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SigningAlgorithm</i> The signing algorithm for the certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ValidToDate</i> The final date that the certificate is valid.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ValidFromDate</i> The beginning date that the certificate is valid.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CertificateOwner</i> The owner of the certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CertificateArn</i> The Amazon Resource Name (ARN) for the certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CertificateWallet</i> The location of an imported Oracle Wallet certificate for use with SSL.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CertificatePem</i> The contents of a <code>.pem</code> file, which contains an X.509 certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CertificateCreationDate</i> The date that the certificate was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CertificateIdentifier</i> A customer-assigned name for the certificate. Identifiers must begin with a letter and must contain only ASCII letters, digits, and hyphens. They can't end with a hyphen or contain two consecutive hyphens.<br/>        """
        pass

    def list_tags_for_resource(self, ResourceArn: str) -> ListTagsForResourceResponse:
        r"""Lists all metadata tags attached to an AWS DMS resource, including replication instance, endpoint, security group, and migration task. For more information, see <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_Tag.html"> <code>Tag</code> </a> data type description.

        :param self:
        :param ResourceArn:  The Amazon Resource Name (ARN) string that uniquely identifies the AWS DMS resource.<br/>
        :return: TagList:  A list of tags for the resource.<br/>        """
        pass

    def modify_endpoint(self, EndpointArn: str, EndpointIdentifier: str=None, EndpointType: str=None, EngineName: str=None, Username: str=None, Password: str=None, ServerName: str=None, Port: int=None, DatabaseName: str=None, ExtraConnectionAttributes: str=None, CertificateArn: str=None, SslMode: str=None, ServiceAccessRoleArn: str=None, ExternalTableDefinition: str=None, DynamoDbSettings: DynamoDbSettings=None, S3Settings: S3Settings=None, DmsTransferSettings: DmsTransferSettings=None, MongoDbSettings: MongoDbSettings=None, KinesisSettings: KinesisSettings=None, KafkaSettings: KafkaSettings=None, ElasticsearchSettings: ElasticsearchSettings=None, NeptuneSettings: NeptuneSettings=None, RedshiftSettings: RedshiftSettings=None, PostgreSQLSettings: PostgreSQLSettings=None, MySQLSettings: MySQLSettings=None, OracleSettings: OracleSettings=None, SybaseSettings: SybaseSettings=None, MicrosoftSQLServerSettings: MicrosoftSQLServerSettings=None, IBMDb2Settings: IBMDb2Settings=None, DocDbSettings: DocDbSettings=None) -> ModifyEndpointResponse:
        r"""Modifies the specified endpoint.

        :param self:
        :param DocDbSettings:  Settings in JSON format for the source DocumentDB endpoint. For more information about the available settings, see the configuration properties section in <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.DocumentDB.html"> Using DocumentDB as a Target for AWS Database Migration Service</a> in the <i>AWS Database Migration Service User Guide.</i> :<br/>IBMDb2Settings:  Settings in JSON format for the source IBM Db2 LUW endpoint. For information about other available settings, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.DB2.ConnectionAttrib">Extra connection attributes when using Db2 LUW as a source for AWS DMS</a> in the <i>AWS Database Migration Service User Guide.</i> :<br/>MicrosoftSQLServerSettings:  Settings in JSON format for the source and target Microsoft SQL Server endpoint. For information about other available settings, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.SQLServer.ConnectionAttrib">Extra connection attributes when using SQL Server as a source for AWS DMS</a> and <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.SQLServer.ConnectionAttrib"> Extra connection attributes when using SQL Server as a target for AWS DMS</a> in the <i>AWS Database Migration Service User Guide.</i> :<br/>SybaseSettings:  Settings in JSON format for the source and target SAP ASE endpoint. For information about other available settings, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.SAP.ConnectionAttrib">Extra connection attributes when using SAP ASE as a source for AWS DMS</a> and <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.SAP.ConnectionAttrib">Extra connection attributes when using SAP ASE as a target for AWS DMS</a> in the <i>AWS Database Migration Service User Guide.</i> :<br/>OracleSettings:  Settings in JSON format for the source and target Oracle endpoint. For information about other available settings, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.ConnectionAttrib">Extra connection attributes when using Oracle as a source for AWS DMS</a> and <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Oracle.ConnectionAttrib"> Extra connection attributes when using Oracle as a target for AWS DMS</a> in the <i>AWS Database Migration Service User Guide.</i> :<br/>MySQLSettings:  Settings in JSON format for the source and target MySQL endpoint. For information about other available settings, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.MySQL.ConnectionAttrib">Extra connection attributes when using MySQL as a source for AWS DMS</a> and <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.MySQL.ConnectionAttrib">Extra connection attributes when using a MySQL-compatible database as a target for AWS DMS</a> in the <i>AWS Database Migration Service User Guide.</i> :<br/>PostgreSQLSettings:  Settings in JSON format for the source and target PostgreSQL endpoint. For information about other available settings, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.PostgreSQL.ConnectionAttrib">Extra connection attributes when using PostgreSQL as a source for AWS DMS</a> and <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.ConnectionAttrib"> Extra connection attributes when using PostgreSQL as a target for AWS DMS</a> in the <i>AWS Database Migration Service User Guide.</i> :<br/>RedshiftSettings:  Provides information that defines an Amazon Redshift endpoint.:<br/>NeptuneSettings:  Settings in JSON format for the target Amazon Neptune endpoint. For more information about the available settings, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Neptune.html#CHAP_Target.Neptune.EndpointSettings">Specifying Endpoint Settings for Amazon Neptune as a Target</a> in the <i>AWS Database Migration Service User Guide.</i> :<br/>ElasticsearchSettings:  Settings in JSON format for the target Elasticsearch endpoint. For more information about the available settings, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Elasticsearch.html#CHAP_Target.Elasticsearch.Configuration">Extra Connection Attributes When Using Elasticsearch as a Target for AWS DMS</a> in the <i>AWS Database Migration Service User Guide.</i> :<br/>KafkaSettings:  Settings in JSON format for the target Apache Kafka endpoint. For more information about the available settings, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Kafka.html">Using Apache Kafka as a Target for AWS Database Migration Service</a> in the <i>AWS Database Migration Service User Guide.</i> :<br/>KinesisSettings:  Settings in JSON format for the target endpoint for Amazon Kinesis Data Streams. For more information about the available settings, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Kinesis.html">Using Amazon Kinesis Data Streams as a Target for AWS Database Migration Service</a> in the <i>AWS Database Migration Service User Guide.</i> :<br/>MongoDbSettings:  Settings in JSON format for the source MongoDB endpoint. For more information about the available settings, see the configuration properties section in <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.MongoDB.html"> Using MongoDB as a Target for AWS Database Migration Service</a> in the <i>AWS Database Migration Service User Guide.</i> :<br/>DmsTransferSettings:  The settings in JSON format for the DMS transfer type of source endpoint.  Attributes include the following: <ul> <li> serviceAccessRoleArn - The AWS Identity and Access Management (IAM) role that has permission to access the Amazon S3 bucket. </li> <li> BucketName - The name of the S3 bucket to use. </li> <li> compressionType - An optional parameter to use GZIP to compress the target files. Either set this parameter to NONE (the default) or don't use it to leave the files uncompressed. </li> </ul> Shorthand syntax for these settings is as follows: <code>ServiceAccessRoleArn=string ,BucketName=string,CompressionType=string</code>  JSON syntax for these settings is as follows: <code>{ "ServiceAccessRoleArn": "string", "BucketName": "string", "CompressionType": "none"|"gzip" } </code> :<br/>S3Settings:  Settings in JSON format for the target Amazon S3 endpoint. For more information about the available settings, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html#CHAP_Target.S3.Configuring">Extra Connection Attributes When Using Amazon S3 as a Target for AWS DMS</a> in the <i>AWS Database Migration Service User Guide.</i> :<br/>DynamoDbSettings:  Settings in JSON format for the target Amazon DynamoDB endpoint. For information about other available settings, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.DynamoDB.html">Using Object Mapping to Migrate Data to DynamoDB</a> in the <i>AWS Database Migration Service User Guide.</i> :<br/>ExternalTableDefinition:  The external table definition.<br/>ServiceAccessRoleArn:   The Amazon Resource Name (ARN) for the service access role you want to use to modify the endpoint. <br/>SslMode:  The SSL mode used to connect to the endpoint. The default value is <code>none</code>.<br/>CertificateArn:  The Amazon Resource Name (ARN) of the certificate used for SSL connection.<br/>ExtraConnectionAttributes:  Additional attributes associated with the connection. To reset this parameter, pass the empty string ("") as an argument.<br/>DatabaseName:  The name of the endpoint database.<br/>Port:  The port used by the endpoint database.<br/>ServerName:  The name of the server where the endpoint database resides.<br/>Password:  The password to be used to login to the endpoint database.<br/>Username:  The user name to be used to login to the endpoint database.<br/>EngineName:  The type of engine for the endpoint. Valid values, depending on the EndpointType, include <code>"mysql"</code>, <code>"oracle"</code>, <code>"postgres"</code>, <code>"mariadb"</code>, <code>"aurora"</code>, <code>"aurora-postgresql"</code>, <code>"redshift"</code>, <code>"s3"</code>, <code>"db2"</code>, <code>"azuredb"</code>, <code>"sybase"</code>, <code>"dynamodb"</code>, <code>"mongodb"</code>, <code>"kinesis"</code>, <code>"kafka"</code>, <code>"elasticsearch"</code>, <code>"documentdb"</code>, <code>"sqlserver"</code>, and <code>"neptune"</code>.<br/>EndpointType:  The type of endpoint. Valid values are <code>source</code> and <code>target</code>.<br/>EndpointIdentifier:  The database endpoint identifier. Identifiers must begin with a letter and must contain only ASCII letters, digits, and hyphens. They can't end with a hyphen or contain two consecutive hyphens.<br/>EndpointArn:  The Amazon Resource Name (ARN) string that uniquely identifies the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceAccessRoleArn</i>  The Amazon Resource Name (ARN) used by the service access IAM role. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CdcPath</i> Specifies the folder path of CDC files. For an S3 source, this setting is required if a task captures change data; otherwise, it's optional. If <code>CdcPath</code> is set, AWS DMS reads CDC files from this path and replicates the data changes to the target endpoint. For an S3 target if you set <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_S3Settings.html#DMS-Type-S3Settings-PreserveTransactions"> <code>PreserveTransactions</code> </a> to <code>true</code>, AWS DMS verifies that you have set this parameter to a folder path on your S3 target where AWS DMS can save the transaction order for the CDC load. AWS DMS creates this CDC folder path in either your S3 target working directory or the S3 target location specified by <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_S3Settings.html#DMS-Type-S3Settings-BucketFolder"> <code>BucketFolder</code> </a> and <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_S3Settings.html#DMS-Type-S3Settings-BucketName"> <code>BucketName</code> </a>. For example, if you specify <code>CdcPath</code> as <code>MyChangedData</code>, and you specify <code>BucketName</code> as <code>MyTargetBucket</code> but do not specify <code>BucketFolder</code>, AWS DMS creates the CDC folder path following: <code>MyTargetBucket/MyChangedData</code>. If you specify the same <code>CdcPath</code>, and you specify <code>BucketName</code> as <code>MyTargetBucket</code> and <code>BucketFolder</code> as <code>MyTargetData</code>, AWS DMS creates the CDC folder path following: <code>MyTargetBucket/MyTargetData/MyChangedData</code>. For more information on CDC including transaction order on an S3 target, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html#CHAP_Target.S3.EndpointSettings.CdcPath">Capturing data changes (CDC) including transaction order on the S3 target</a>. <note> This setting is supported in AWS DMS versions 3.4.2 and later. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreserveTransactions</i> If set to <code>true</code>, AWS DMS saves the transaction order for a change data capture (CDC) load on the Amazon S3 target specified by <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_S3Settings.html#DMS-Type-S3Settings-CdcPath"> <code>CdcPath</code> </a>. For more information, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html#CHAP_Target.S3.EndpointSettings.CdcPath">Capturing data changes (CDC) including transaction order on the S3 target</a>. <note> This setting is supported in AWS DMS versions 3.4.2 and later. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CsvNoSupValue</i> This setting only applies if your Amazon S3 output files during a change data capture (CDC) load are written in .csv format. If <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_S3Settings.html#DMS-Type-S3Settings-UseCsvNoSupValue"> <code>UseCsvNoSupValue</code> </a> is set to true, specify a string value that you want AWS DMS to use for all columns not included in the supplemental log. If you do not specify a string value, AWS DMS uses the null value for these columns regardless of the <code>UseCsvNoSupValue</code> setting. <note> This setting is supported in AWS DMS versions 3.4.1 and later. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UseCsvNoSupValue</i> This setting applies if the S3 output files during a change data capture (CDC) load are written in .csv format. If set to <code>true</code> for columns not included in the supplemental log, AWS DMS uses the value specified by <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_S3Settings.html#DMS-Type-S3Settings-CsvNoSupValue"> <code>CsvNoSupValue</code> </a>. If not set or set to <code>false</code>, AWS DMS uses the null value for these columns. <note> This setting is supported in AWS DMS versions 3.4.1 and later. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatePartitionDelimiter</i> Specifies a date separating delimiter to use during folder partitioning. The default value is <code>SLASH</code>. Use this parameter when <code>DatePartitionedEnabled</code> is set to <code>true</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatePartitionSequence</i> Identifies the sequence of the date format to use during folder partitioning. The default value is <code>YYYYMMDD</code>. Use this parameter when <code>DatePartitionedEnabled</code> is set to <code>true</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatePartitionEnabled</i> When set to <code>true</code>, this parameter partitions S3 bucket folders based on transaction commit dates. The default value is <code>false</code>. For more information about date-based folder partitoning, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html#CHAP_Target.S3.DatePartitioning">Using date-based folder partitioning</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CdcInsertsAndUpdates</i> A value that enables a change data capture (CDC) load to write INSERT and UPDATE operations to .csv or .parquet (columnar storage) output files. The default setting is <code>false</code>, but when <code>CdcInsertsAndUpdates</code> is set to <code>true</code> or <code>y</code>, only INSERTs and UPDATEs from the source database are migrated to the .csv or .parquet file.  For .csv file format only, how these INSERTs and UPDATEs are recorded depends on the value of the <code>IncludeOpForFullLoad</code> parameter. If <code>IncludeOpForFullLoad</code> is set to <code>true</code>, the first field of every CDC record is set to either <code>I</code> or <code>U</code> to indicate INSERT and UPDATE operations at the source. But if <code>IncludeOpForFullLoad</code> is set to <code>false</code>, CDC records are written without an indication of INSERT or UPDATE operations at the source. For more information about how these settings work together, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html#CHAP_Target.S3.Configuring.InsertOps">Indicating Source DB Operations in Migrated S3 Data</a> in the <i>AWS Database Migration Service User Guide.</i>. <note> AWS DMS supports the use of the <code>CdcInsertsAndUpdates</code> parameter in versions 3.3.1 and later.  <code>CdcInsertsOnly</code> and <code>CdcInsertsAndUpdates</code> can't both be set to <code>true</code> for the same endpoint. Set either <code>CdcInsertsOnly</code> or <code>CdcInsertsAndUpdates</code> to <code>true</code> for the same endpoint, but not both. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ParquetTimestampInMillisecond</i> A value that specifies the precision of any <code>TIMESTAMP</code> column values that are written to an Amazon S3 object file in .parquet format. <note> AWS DMS supports the <code>ParquetTimestampInMillisecond</code> parameter in versions 3.1.4 and later. </note> When <code>ParquetTimestampInMillisecond</code> is set to <code>true</code> or <code>y</code>, AWS DMS writes all <code>TIMESTAMP</code> columns in a .parquet formatted file with millisecond precision. Otherwise, DMS writes them with microsecond precision. Currently, Amazon Athena and AWS Glue can handle only millisecond precision for <code>TIMESTAMP</code> values. Set this parameter to <code>true</code> for S3 endpoint object files that are .parquet formatted only if you plan to query or process the data with Athena or AWS Glue. <note> AWS DMS writes any <code>TIMESTAMP</code> column values written to an S3 file in .csv format with microsecond precision. Setting <code>ParquetTimestampInMillisecond</code> has no effect on the string format of the timestamp column value that is inserted by setting the <code>TimestampColumnName</code> parameter. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TimestampColumnName</i> A value that when nonblank causes AWS DMS to add a column with timestamp information to the endpoint data for an Amazon S3 target. <note> AWS DMS supports the <code>TimestampColumnName</code> parameter in versions 3.1.4 and later. </note> DMS includes an additional <code>STRING</code> column in the .csv or .parquet object files of your migrated data when you set <code>TimestampColumnName</code> to a nonblank value. For a full load, each row of this timestamp column contains a timestamp for when the data was transferred from the source to the target by DMS.  For a change data capture (CDC) load, each row of the timestamp column contains the timestamp for the commit of that row in the source database. The string format for this timestamp column value is <code>yyyy-MM-dd HH:mm:ss.SSSSSS</code>. By default, the precision of this value is in microseconds. For a CDC load, the rounding of the precision depends on the commit timestamp supported by DMS for the source database. When the <code>AddColumnName</code> parameter is set to <code>true</code>, DMS also includes a name for the timestamp column that you set with <code>TimestampColumnName</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CdcInsertsOnly</i> A value that enables a change data capture (CDC) load to write only INSERT operations to .csv or columnar storage (.parquet) output files. By default (the <code>false</code> setting), the first field in a .csv or .parquet record contains the letter I (INSERT), U (UPDATE), or D (DELETE). These values indicate whether the row was inserted, updated, or deleted at the source database for a CDC load to the target. If <code>CdcInsertsOnly</code> is set to <code>true</code> or <code>y</code>, only INSERTs from the source database are migrated to the .csv or .parquet file. For .csv format only, how these INSERTs are recorded depends on the value of <code>IncludeOpForFullLoad</code>. If <code>IncludeOpForFullLoad</code> is set to <code>true</code>, the first field of every CDC record is set to I to indicate the INSERT operation at the source. If <code>IncludeOpForFullLoad</code> is set to <code>false</code>, every CDC record is written without a first field to indicate the INSERT operation at the source. For more information about how these settings work together, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html#CHAP_Target.S3.Configuring.InsertOps">Indicating Source DB Operations in Migrated S3 Data</a> in the <i>AWS Database Migration Service User Guide.</i>. <note> AWS DMS supports the interaction described preceding between the <code>CdcInsertsOnly</code> and <code>IncludeOpForFullLoad</code> parameters in versions 3.1.4 and later.   <code>CdcInsertsOnly</code> and <code>CdcInsertsAndUpdates</code> can't both be set to <code>true</code> for the same endpoint. Set either <code>CdcInsertsOnly</code> or <code>CdcInsertsAndUpdates</code> to <code>true</code> for the same endpoint, but not both. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeOpForFullLoad</i> A value that enables a full load to write INSERT operations to the comma-separated value (.csv) output files only to indicate how the rows were added to the source database. <note> AWS DMS supports the <code>IncludeOpForFullLoad</code> parameter in versions 3.1.4 and later. </note> For full load, records can only be inserted. By default (the <code>false</code> setting), no information is recorded in these output files for a full load to indicate that the rows were inserted at the source database. If <code>IncludeOpForFullLoad</code> is set to <code>true</code> or <code>y</code>, the INSERT is recorded as an I annotation in the first field of the .csv file. This allows the format of your target records from a full load to be consistent with the target records from a CDC load. <note> This setting works together with the <code>CdcInsertsOnly</code> and the <code>CdcInsertsAndUpdates</code> parameters for output to .csv files only. For more information about how these settings work together, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html#CHAP_Target.S3.Configuring.InsertOps">Indicating Source DB Operations in Migrated S3 Data</a> in the <i>AWS Database Migration Service User Guide.</i>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableStatistics</i> A value that enables statistics for Parquet pages and row groups. Choose <code>true</code> to enable statistics, <code>false</code> to disable. Statistics include <code>NULL</code>, <code>DISTINCT</code>, <code>MAX</code>, and <code>MIN</code> values. This parameter defaults to <code>true</code>. This value is used for .parquet file format only.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ParquetVersion</i> The version of the Apache Parquet format that you want to use: <code>parquet_1_0</code> (the default) or <code>parquet_2_0</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataPageSize</i> The size of one data page in bytes. This parameter defaults to 1024 * 1024 bytes (1 MiB). This number is used for .parquet file format only. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RowGroupLength</i> The number of rows in a row group. A smaller row group size provides faster reads. But as the number of row groups grows, the slower writes become. This parameter defaults to 10,000 rows. This number is used for .parquet file format only.  If you choose a value larger than the maximum, <code>RowGroupLength</code> is set to the max row group length in bytes (64 * 1024 * 1024). <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DictPageSizeLimit</i> The maximum size of an encoded dictionary page of a column. If the dictionary page exceeds this, this column is stored using an encoding type of <code>PLAIN</code>. This parameter defaults to 1024 * 1024 bytes (1 MiB), the maximum size of a dictionary page before it reverts to <code>PLAIN</code> encoding. This size is used for .parquet file format only. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EncodingType</i> The type of encoding you are using:  <ul> <li>  <code>RLE_DICTIONARY</code> uses a combination of bit-packing and run-length encoding to store repeated values more efficiently. This is the default. </li> <li>  <code>PLAIN</code> doesn't use encoding at all. Values are stored as they are. </li> <li>  <code>PLAIN_DICTIONARY</code> builds a dictionary of the values encountered in a given column. The dictionary is stored in a dictionary page for each column chunk. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataFormat</i> The format of the data that you want to use for output. You can choose one of the following:  <ul> <li>  <code>csv</code> : This is a row-based file format with comma-separated values (.csv).  </li> <li>  <code>parquet</code> : Apache Parquet (.parquet) is a columnar storage file format that features efficient compression and provides faster query response.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerSideEncryptionKmsKeyId</i> If you are using <code>SSE_KMS</code> for the <code>EncryptionMode</code>, provide the AWS KMS key ID. The key that you use needs an attached policy that enables AWS Identity and Access Management (IAM) user permissions and allows use of the key. Here is a CLI example: <code>aws dms create-endpoint --endpoint-identifier <i>value</i> --endpoint-type target --engine-name s3 --s3-settings ServiceAccessRoleArn=<i>value</i>,BucketFolder=<i>value</i>,BucketName=<i>value</i>,EncryptionMode=SSE_KMS,ServerSideEncryptionKmsKeyId=<i>value</i> </code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EncryptionMode</i> The type of server-side encryption that you want to use for your data. This encryption type is part of the endpoint settings or the extra connections attributes for Amazon S3. You can choose either <code>SSE_S3</code> (the default) or <code>SSE_KMS</code>.  <note> For the <code>ModifyEndpoint</code> operation, you can change the existing value of the <code>EncryptionMode</code> parameter from <code>SSE_KMS</code> to <code>SSE_S3</code>. But you can’t change the existing value from <code>SSE_S3</code> to <code>SSE_KMS</code>. </note> To use <code>SSE_S3</code>, you need an AWS Identity and Access Management (IAM) role with permission to allow <code>"arn:aws:s3:::dms-*"</code> to use the following actions: <ul> <li>  <code>s3:CreateBucket</code>  </li> <li>  <code>s3:ListBucket</code>  </li> <li>  <code>s3:DeleteBucket</code>  </li> <li>  <code>s3:GetBucketLocation</code>  </li> <li>  <code>s3:GetObject</code>  </li> <li>  <code>s3:PutObject</code>  </li> <li>  <code>s3:DeleteObject</code>  </li> <li>  <code>s3:GetObjectVersion</code>  </li> <li>  <code>s3:GetBucketPolicy</code>  </li> <li>  <code>s3:PutBucketPolicy</code>  </li> <li>  <code>s3:DeleteBucketPolicy</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CompressionType</i> An optional parameter to use GZIP to compress the target files. Set to GZIP to compress the target files. Either set this parameter to NONE (the default) or don't use it to leave the files uncompressed. This parameter applies to both .csv and .parquet file formats. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BucketName</i>  The name of the S3 bucket. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BucketFolder</i>  An optional parameter to set a folder name in the S3 bucket. If provided, tables are created in the path <code> <i>bucketFolder</i>/<i>schema_name</i>/<i>table_name</i>/</code>. If this parameter isn't specified, then the path used is <code> <i>schema_name</i>/<i>table_name</i>/</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CsvDelimiter</i>  The delimiter used to separate columns in the .csv file for both source and target. The default is a comma. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CsvRowDelimiter</i>  The delimiter used to separate rows in the .csv file for both source and target. The default is a carriage return (<code>\n</code>). <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExternalTableDefinition</i>  Specifies how tables are defined in the S3 source files only. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceAccessRoleArn</i>  The Amazon Resource Name (ARN) used by the service access IAM role. It is a required parameter that enables DMS to write and read objects from an S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BucketName</i>  The name of the S3 bucket to use. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceAccessRoleArn</i>  The IAM role that has permission to access the Amazon S3 bucket. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerSecretId</i> The full ARN, partial ARN, or friendly name of the <code>SecretsManagerSecret</code> that contains the MongoDB endpoint connection details.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerAccessRoleArn</i> The full Amazon Resource Name (ARN) of the IAM role that specifies AWS DMS as the trusted entity and grants the required permissions to access the value in <code>SecretsManagerSecret</code>. <code>SecretsManagerSecret</code> has the value of the AWS Secrets Manager secret that allows access to the MongoDB endpoint. <note> You can specify one of two sets of values for these permissions. You can specify the values for this setting and <code>SecretsManagerSecretId</code>. Or you can specify clear-text values for <code>UserName</code>, <code>Password</code>, <code>ServerName</code>, and <code>Port</code>. You can't specify both. For more information on creating this <code>SecretsManagerSecret</code> and the <code>SecretsManagerAccessRoleArn</code> and <code>SecretsManagerSecretId</code> required to access it, see <a href="https://docs.aws.amazon.com/https:/docs.aws.amazon.com/dms/latest/userguide/CHAP_Security.html#security-iam-secretsmanager">Using secrets to access AWS Database Migration Service resources</a> in the <i>AWS Database Migration Service User Guide</i>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The AWS KMS key identifier that is used to encrypt the content on the replication instance. If you don't specify a value for the <code>KmsKeyId</code> parameter, then AWS DMS uses your default encryption key. AWS KMS creates the default encryption key for your AWS account. Your AWS account has a different default encryption key for each AWS Region.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AuthSource</i>  The MongoDB database name. This setting isn't used when <code>AuthType</code> is set to <code>"no"</code>.  The default is <code>"admin"</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DocsToInvestigate</i>  Indicates the number of documents to preview to determine the document organization. Use this setting when <code>NestingLevel</code> is set to <code>"one"</code>.  Must be a positive value greater than <code>0</code>. Default value is <code>1000</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExtractDocId</i>  Specifies the document ID. Use this setting when <code>NestingLevel</code> is set to <code>"none"</code>.  Default value is <code>"false"</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NestingLevel</i>  Specifies either document or table mode.  Default value is <code>"none"</code>. Specify <code>"none"</code> to use document mode. Specify <code>"one"</code> to use table mode.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AuthMechanism</i>  The authentication mechanism you use to access the MongoDB source endpoint. For the default value, in MongoDB version 2.x, <code>"default"</code> is <code>"mongodb_cr"</code>. For MongoDB version 3.x or later, <code>"default"</code> is <code>"scram_sha_1"</code>. This setting isn't used when <code>AuthType</code> is set to <code>"no"</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AuthType</i>  The authentication type you use to access the MongoDB source endpoint. When when set to <code>"no"</code>, user name and password parameters are not used and can be empty. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i>  The database name on the MongoDB source endpoint. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i>  The port value for the MongoDB source endpoint. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerName</i>  The name of the server on the MongoDB source endpoint. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Password</i>  The password for the user account you use to access the MongoDB source endpoint. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Username</i> The user name you use to access the MongoDB source endpoint. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeNullAndEmpty</i> Include NULL and empty columns for records migrated to the endpoint. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeControlDetails</i> Shows detailed control information for table definition, column definition, and table and column changes in the Kinesis message output. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeTableAlterOperations</i> Includes any data definition language (DDL) operations that change the table in the control data, such as <code>rename-table</code>, <code>drop-table</code>, <code>add-column</code>, <code>drop-column</code>, and <code>rename-column</code>. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PartitionIncludeSchemaTable</i> Prefixes schema and table names to partition values, when the partition type is <code>primary-key-type</code>. Doing this increases data distribution among Kinesis shards. For example, suppose that a SysBench schema has thousands of tables and each table has only limited range for a primary key. In this case, the same primary key is sent from thousands of tables to the same shard, which causes throttling. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludePartitionValue</i> Shows the partition value within the Kinesis message output, unless the partition type is <code>schema-table-type</code>. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeTransactionDetails</i> Provides detailed transaction information from the source database. This information includes a commit timestamp, a log position, and values for <code>transaction_id</code>, previous <code>transaction_id</code>, and <code>transaction_record_id</code> (the record offset within a transaction). The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceAccessRoleArn</i> The Amazon Resource Name (ARN) for the AWS Identity and Access Management (IAM) role that AWS DMS uses to write to the Kinesis data stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MessageFormat</i> The output format for the records created on the endpoint. The message format is <code>JSON</code> (default) or <code>JSON_UNFORMATTED</code> (a single line with no tab).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamArn</i> The Amazon Resource Name (ARN) for the Amazon Kinesis Data Streams endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SaslPassword</i> The secure password you created when you first set up your MSK cluster to validate a client identity and make an encrypted connection between server and client using SASL-SSL authentication.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SaslUsername</i>  The secure username you created when you first set up your MSK cluster to validate a client identity and make an encrypted connection between server and client using SASL-SSL authentication.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SslCaCertificateArn</i>  The Amazon Resource Name (ARN) for the private Certification Authority (CA) cert that AWS DMS uses to securely connect to your Kafka target endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SslClientKeyPassword</i>  The password for the client private key used to securely connect to a Kafka target endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SslClientKeyArn</i> The Amazon Resource Name (ARN) for the client private key used to securely connect to a Kafka target endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SslClientCertificateArn</i> The Amazon Resource Name (ARN) of the client certificate used to securely connect to a Kafka target endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityProtocol</i> Set secure connection to a Kafka target endpoint using Transport Layer Security (TLS). Options include <code>ssl-encryption</code>, <code>ssl-authentication</code>, and <code>sasl-ssl</code>. <code>sasl-ssl</code> requires <code>SaslUsername</code> and <code>SaslPassword</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeNullAndEmpty</i> Include NULL and empty columns for records migrated to the endpoint. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MessageMaxBytes</i> The maximum size in bytes for records created on the endpoint The default is 1,000,000.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeControlDetails</i> Shows detailed control information for table definition, column definition, and table and column changes in the Kafka message output. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeTableAlterOperations</i> Includes any data definition language (DDL) operations that change the table in the control data, such as <code>rename-table</code>, <code>drop-table</code>, <code>add-column</code>, <code>drop-column</code>, and <code>rename-column</code>. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PartitionIncludeSchemaTable</i> Prefixes schema and table names to partition values, when the partition type is <code>primary-key-type</code>. Doing this increases data distribution among Kafka partitions. For example, suppose that a SysBench schema has thousands of tables and each table has only limited range for a primary key. In this case, the same primary key is sent from thousands of tables to the same partition, which causes throttling. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludePartitionValue</i> Shows the partition value within the Kafka message output, unless the partition type is <code>schema-table-type</code>. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeTransactionDetails</i> Provides detailed transaction information from the source database. This information includes a commit timestamp, a log position, and values for <code>transaction_id</code>, previous <code>transaction_id</code>, and <code>transaction_record_id</code> (the record offset within a transaction). The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MessageFormat</i> The output format for the records created on the endpoint. The message format is <code>JSON</code> (default) or <code>JSON_UNFORMATTED</code> (a single line with no tab).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Topic</i> The topic to which you migrate the data. If you don't specify a topic, AWS DMS specifies <code>"kafka-default-topic"</code> as the migration topic.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Broker</i> A comma-separated list of one or more broker locations in your Kafka cluster that host your Kafka instance. Specify each broker location in the form <code> <i>broker-hostname-or-ip</i>:<i>port</i> </code>. For example, <code>"ec2-12-345-678-901.compute-1.amazonaws.com:2345"</code>. For more information and examples of specifying a list of broker locations, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Kafka.html">Using Apache Kafka as a target for AWS Database Migration Service</a> in the <i>AWS Data Migration Service User Guide</i>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorRetryDuration</i> The maximum number of seconds for which DMS retries failed API requests to the Elasticsearch cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FullLoadErrorPercentage</i> The maximum percentage of records that can fail to be written before a full load operation stops. To avoid early failure, this counter is only effective after 1000 records are transferred. Elasticsearch also has the concept of error monitoring during the last 10 minutes of an Observation Window. If transfer of all records fail in the last 10 minutes, the full load operation stops. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointUri</i> The endpoint for the Elasticsearch cluster. AWS DMS uses HTTPS if a transport protocol (http/https) is not specified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceAccessRoleArn</i> The Amazon Resource Name (ARN) used by service to access the IAM role.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IamAuthEnabled</i> If you want AWS Identity and Access Management (IAM) authorization enabled for this endpoint, set this parameter to <code>true</code>. Then attach the appropriate IAM policy document to your service role specified by <code>ServiceAccessRoleArn</code>. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxRetryCount</i> The number of times for AWS DMS to retry a bulk load of migrated graph data to the Neptune target database before raising an error. The default is 5.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxFileSize</i> The maximum size in kilobytes of migrated graph data stored in a .csv file before AWS DMS bulk-loads the data to the Neptune target database. The default is 1,048,576 KB. If the bulk load is successful, AWS DMS clears the bucket, ready to store the next batch of migrated graph data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorRetryDuration</i> The number of milliseconds for AWS DMS to wait to retry a bulk-load of migrated graph data to the Neptune target database before raising an error. The default is 250.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3BucketFolder</i> A folder path where you want AWS DMS to store migrated graph data in the S3 bucket specified by <code>S3BucketName</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3BucketName</i> The name of the Amazon S3 bucket where AWS DMS can temporarily store migrated graph data in .csv files before bulk-loading it to the Neptune target database. AWS DMS maps the SQL source data to graph data before storing it in these .csv files.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceAccessRoleArn</i> The Amazon Resource Name (ARN) of the service role that you created for the Neptune target endpoint. For more information, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Neptune.html#CHAP_Target.Neptune.ServiceRole">Creating an IAM Service Role for Accessing Amazon Neptune as a Target</a> in the <i>AWS Database Migration Service User Guide. </i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerSecretId</i> The full ARN, partial ARN, or friendly name of the <code>SecretsManagerSecret</code> that contains the Amazon Redshift endpoint connection details.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerAccessRoleArn</i> The full Amazon Resource Name (ARN) of the IAM role that specifies AWS DMS as the trusted entity and grants the required permissions to access the value in <code>SecretsManagerSecret</code>. <code>SecretsManagerSecret</code> has the value of the AWS Secrets Manager secret that allows access to the Amazon Redshift endpoint. <note> You can specify one of two sets of values for these permissions. You can specify the values for this setting and <code>SecretsManagerSecretId</code>. Or you can specify clear-text values for <code>UserName</code>, <code>Password</code>, <code>ServerName</code>, and <code>Port</code>. You can't specify both. For more information on creating this <code>SecretsManagerSecret</code> and the <code>SecretsManagerAccessRoleArn</code> and <code>SecretsManagerSecretId</code> required to access it, see <a href="https://docs.aws.amazon.com/https:/docs.aws.amazon.com/dms/latest/userguide/CHAP_Security.html#security-iam-secretsmanager">Using secrets to access AWS Database Migration Service resources</a> in the <i>AWS Database Migration Service User Guide</i>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WriteBufferSize</i> The size (in KB) of the in-memory file write buffer used when generating .csv files on the local disk at the DMS replication instance. The default value is 1000 (buffer size is 1000KB).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Username</i> An Amazon Redshift user name for a registered user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TruncateColumns</i> A value that specifies to truncate data in columns to the appropriate number of characters, so that the data fits in the column. This parameter applies only to columns with a VARCHAR or CHAR data type, and rows with a size of 4 MB or less. Choose <code>true</code> to truncate data. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TrimBlanks</i> A value that specifies to remove the trailing white space characters from a VARCHAR string. This parameter applies only to columns with a VARCHAR data type. Choose <code>true</code> to remove unneeded white space. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TimeFormat</i> The time format that you want to use. Valid values are <code>auto</code> (case-sensitive), <code>'timeformat_string'</code>, <code>'epochsecs'</code>, or <code>'epochmillisecs'</code>. It defaults to 10. Using <code>auto</code> recognizes most strings, even some that aren't supported when you use a time format string.  If your date and time values use formats different from each other, set this parameter to <code>auto</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerSideEncryptionKmsKeyId</i> The AWS KMS key ID. If you are using <code>SSE_KMS</code> for the <code>EncryptionMode</code>, provide this key ID. The key that you use needs an attached policy that enables IAM user permissions and allows use of the key.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceAccessRoleArn</i> The Amazon Resource Name (ARN) of the IAM role that has access to the Amazon Redshift service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerName</i> The name of the Amazon Redshift cluster you are using.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplaceChars</i> A value that specifies to replaces the invalid characters specified in <code>ReplaceInvalidChars</code>, substituting the specified characters instead. The default is <code>"?"</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplaceInvalidChars</i> A list of characters that you want to replace. Use with <code>ReplaceChars</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RemoveQuotes</i> A value that specifies to remove surrounding quotation marks from strings in the incoming data. All characters within the quotation marks, including delimiters, are retained. Choose <code>true</code> to remove quotation marks. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> The port number for Amazon Redshift. The default value is 5439.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Password</i> The password for the user named in the <code>username</code> property.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxFileSize</i> The maximum size (in KB) of any .csv file used to load data on an S3 bucket and transfer data to Amazon Redshift. It defaults to 1048576KB (1 GB).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LoadTimeout</i> The amount of time to wait (in milliseconds) before timing out of operations performed by AWS DMS on a Redshift cluster, such as Redshift COPY, INSERT, DELETE, and UPDATE.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FileTransferUploadStreams</i> The number of threads used to upload a single file. This parameter accepts a value from 1 through 64. It defaults to 10. The number of parallel streams used to upload a single .csv file to an S3 bucket using S3 Multipart Upload. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html">Multipart upload overview</a>.   <code>FileTransferUploadStreams</code> accepts a value from 1 through 64. It defaults to 10.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExplicitIds</i> This setting is only valid for a full-load migration task. Set <code>ExplicitIds</code> to <code>true</code> to have tables with <code>IDENTITY</code> columns override their auto-generated values with explicit values loaded from the source data files used to populate the tables. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EncryptionMode</i> The type of server-side encryption that you want to use for your data. This encryption type is part of the endpoint settings or the extra connections attributes for Amazon S3. You can choose either <code>SSE_S3</code> (the default) or <code>SSE_KMS</code>.  <note> For the <code>ModifyEndpoint</code> operation, you can change the existing value of the <code>EncryptionMode</code> parameter from <code>SSE_KMS</code> to <code>SSE_S3</code>. But you can’t change the existing value from <code>SSE_S3</code> to <code>SSE_KMS</code>. </note> To use <code>SSE_S3</code>, create an AWS Identity and Access Management (IAM) role with a policy that allows <code>"arn:aws:s3:::*"</code> to use the following actions: <code>"s3:PutObject", "s3:ListBucket"</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EmptyAsNull</i> A value that specifies whether AWS DMS should migrate empty CHAR and VARCHAR fields as NULL. A value of <code>true</code> sets empty CHAR and VARCHAR fields to null. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DateFormat</i> The date format that you are using. Valid values are <code>auto</code> (case-sensitive), your date format string enclosed in quotes, or NULL. If this parameter is left unset (NULL), it defaults to a format of 'YYYY-MM-DD'. Using <code>auto</code> recognizes most strings, even some that aren't supported when you use a date format string.  If your date and time values use formats different from each other, set this to <code>auto</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> The name of the Amazon Redshift data warehouse (service) that you are working with.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConnectionTimeout</i> A value that sets the amount of time to wait (in milliseconds) before timing out, beginning from when you initially establish a connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CompUpdate</i> If you set <code>CompUpdate</code> to <code>true</code> Amazon Redshift applies automatic compression if the table is empty. This applies even if the table columns already have encodings other than <code>RAW</code>. If you set <code>CompUpdate</code> to <code>false</code>, automatic compression is disabled and existing column encodings aren't changed. The default is <code>true</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CaseSensitiveNames</i> If Amazon Redshift is configured to support case sensitive schema names, set <code>CaseSensitiveNames</code> to <code>true</code>. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BucketName</i> The name of the intermediate S3 bucket used to store .csv files before uploading data to Redshift.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BucketFolder</i> An S3 folder where the comma-separated-value (.csv) files are stored before being uploaded to the target Redshift cluster.  For full load mode, AWS DMS converts source records into .csv files and loads them to the <i>BucketFolder/TableID</i> path. AWS DMS uses the Redshift <code>COPY</code> command to upload the .csv files to the target table. The files are deleted once the <code>COPY</code> operation has finished. For more information, see <a href="https://docs.aws.amazon.com/redshift/latest/dg/r_COPY.html">COPY</a> in the <i>Amazon Redshift Database Developer Guide</i>. For change-data-capture (CDC) mode, AWS DMS creates a <i>NetChanges</i> table, and loads the .csv files to this <i>BucketFolder/NetChangesTableID</i> path.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AfterConnectScript</i> Code to run after connecting. This parameter should contain the code itself, not the name of a file containing the code.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AcceptAnyDate</i> A value that indicates to allow any date format, including invalid formats such as 00/00/00 00:00:00, to be loaded without generating an error. You can choose <code>true</code> or <code>false</code> (the default). This parameter applies only to TIMESTAMP and DATE columns. Always use ACCEPTANYDATE with the DATEFORMAT parameter. If the date format for the data doesn't match the DATEFORMAT specification, Amazon Redshift inserts a NULL value into that field. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerSecretId</i> The full ARN, partial ARN, or friendly name of the <code>SecretsManagerSecret</code> that contains the PostgreSQL endpoint connection details.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerAccessRoleArn</i> The full Amazon Resource Name (ARN) of the IAM role that specifies AWS DMS as the trusted entity and grants the required permissions to access the value in <code>SecretsManagerSecret</code>. <code>SecretsManagerSecret</code> has the value of the AWS Secrets Manager secret that allows access to the PostgreSQL endpoint. <note> You can specify one of two sets of values for these permissions. You can specify the values for this setting and <code>SecretsManagerSecretId</code>. Or you can specify clear-text values for <code>UserName</code>, <code>Password</code>, <code>ServerName</code>, and <code>Port</code>. You can't specify both. For more information on creating this <code>SecretsManagerSecret</code> and the <code>SecretsManagerAccessRoleArn</code> and <code>SecretsManagerSecretId</code> required to access it, see <a href="https://docs.aws.amazon.com/https:/docs.aws.amazon.com/dms/latest/userguide/CHAP_Security.html#security-iam-secretsmanager">Using secrets to access AWS Database Migration Service resources</a> in the <i>AWS Database Migration Service User Guide</i>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SlotName</i> Sets the name of a previously created logical replication slot for a CDC load of the PostgreSQL source instance. When used with the AWS DMS API <code>CdcStartPosition</code> request parameter, this attribute also enables using native CDC start points.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Username</i> Endpoint connection user name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerName</i> Fully qualified domain name of the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Endpoint TCP port.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Password</i> Endpoint connection password.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FailTasksOnLobTruncation</i> When set to <code>true</code>, this value causes a task to fail if the actual size of a LOB column is greater than the specified <code>LobMaxSize</code>. If task is set to Limited LOB mode and this option is set to true, the task fails instead of truncating the LOB data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExecuteTimeout</i> Sets the client statement timeout for the PostgreSQL instance, in seconds. The default value is 60 seconds. Example: <code>executeTimeout=100;</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DdlArtifactsSchema</i> The schema in which the operational DDL database artifacts are created. Example: <code>ddlArtifactsSchema=xyzddlschema;</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> Database name for the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxFileSize</i> Specifies the maximum size (in KB) of any .csv file used to transfer data to PostgreSQL. Example: <code>maxFileSize=512</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CaptureDdls</i> To capture DDL events, AWS DMS creates various artifacts in the PostgreSQL database when the task starts. You can later remove these artifacts. If this value is set to <code>N</code>, you don't have to create tables or triggers on the source database.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AfterConnectScript</i> For use with change data capture (CDC) only, this attribute has AWS DMS bypass foreign keys and user triggers to reduce the time it takes to bulk load data. Example: <code>afterConnectScript=SET session_replication_role='replica'</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerSecretId</i> The full ARN, partial ARN, or friendly name of the <code>SecretsManagerSecret</code> that contains the MySQL endpoint connection details.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerAccessRoleArn</i> The full Amazon Resource Name (ARN) of the IAM role that specifies AWS DMS as the trusted entity and grants the required permissions to access the value in <code>SecretsManagerSecret</code>. <code>SecretsManagerSecret</code> has the value of the AWS Secrets Manager secret that allows access to the MySQL endpoint. <note> You can specify one of two sets of values for these permissions. You can specify the values for this setting and <code>SecretsManagerSecretId</code>. Or you can specify clear-text values for <code>UserName</code>, <code>Password</code>, <code>ServerName</code>, and <code>Port</code>. You can't specify both. For more information on creating this <code>SecretsManagerSecret</code> and the <code>SecretsManagerAccessRoleArn</code> and <code>SecretsManagerSecretId</code> required to access it, see <a href="https://docs.aws.amazon.com/https:/docs.aws.amazon.com/dms/latest/userguide/CHAP_Security.html#security-iam-secretsmanager">Using secrets to access AWS Database Migration Service resources</a> in the <i>AWS Database Migration Service User Guide</i>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Username</i> Endpoint connection user name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerTimezone</i> Specifies the time zone for the source MySQL database. Example: <code>serverTimezone=US/Pacific;</code>  Note: Do not enclose time zones in single quotes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerName</i> Fully qualified domain name of the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Endpoint TCP port.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Password</i> Endpoint connection password.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ParallelLoadThreads</i> Improves performance when loading data into the MySQL-compatible target database. Specifies how many threads to use to load the data into the MySQL-compatible target database. Setting a large number of threads can have an adverse effect on database performance, because a separate connection is required for each thread. Example: <code>parallelLoadThreads=1</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxFileSize</i> Specifies the maximum size (in KB) of any .csv file used to transfer data to a MySQL-compatible database. Example: <code>maxFileSize=512</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetDbType</i> Specifies where to migrate source tables on the target, either to a single database or multiple databases. Example: <code>targetDbType=MULTIPLE_DATABASES</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EventsPollInterval</i> Specifies how often to check the binary log for new changes/events when the database is idle. Example: <code>eventsPollInterval=5;</code>  In the example, AWS DMS checks for changes in the binary logs every five seconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> Database name for the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CleanSourceMetadataOnMismatch</i> Adjusts the behavior of DMS when migrating from an SQL Server source database that is hosted as part of an Always On availability group cluster. If you need DMS to poll all the nodes in the Always On cluster for transaction backups, set this attribute to <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AfterConnectScript</i> Specifies a script to run immediately after AWS DMS connects to the endpoint. The migration task continues running regardless if the SQL statement succeeds or fails.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerOracleAsmSecretId</i> Required only if your Oracle endpoint uses Advanced Storage Manager (ASM). The full ARN, partial ARN, or friendly name of the <code>SecretsManagerOracleAsmSecret</code> that contains the Oracle ASM connection details for the Oracle endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerOracleAsmAccessRoleArn</i> Required only if your Oracle endpoint uses Advanced Storage Manager (ASM). The full ARN of the IAM role that specifies AWS DMS as the trusted entity and grants the required permissions to access the <code>SecretsManagerOracleAsmSecret</code>. This <code>SecretsManagerOracleAsmSecret</code> has the secret value that allows access to the Oracle ASM of the endpoint. <note> You can specify one of two sets of values for these permissions. You can specify the values for this setting and <code>SecretsManagerOracleAsmSecretId</code>. Or you can specify clear-text values for <code>AsmUserName</code>, <code>AsmPassword</code>, and <code>AsmServerName</code>. You can't specify both. For more information on creating this <code>SecretsManagerOracleAsmSecret</code> and the <code>SecretsManagerOracleAsmAccessRoleArn</code> and <code>SecretsManagerOracleAsmSecretId</code> required to access it, see <a href="https://docs.aws.amazon.com/https:/docs.aws.amazon.com/dms/latest/userguide/CHAP_Security.html#security-iam-secretsmanager">Using secrets to access AWS Database Migration Service resources</a> in the <i>AWS Database Migration Service User Guide</i>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerSecretId</i> The full ARN, partial ARN, or friendly name of the <code>SecretsManagerSecret</code> that contains the Oracle endpoint connection details.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerAccessRoleArn</i> The full Amazon Resource Name (ARN) of the IAM role that specifies AWS DMS as the trusted entity and grants the required permissions to access the value in <code>SecretsManagerSecret</code>. <code>SecretsManagerSecret</code> has the value of the AWS Secrets Manager secret that allows access to the Oracle endpoint. <note> You can specify one of two sets of values for these permissions. You can specify the values for this setting and <code>SecretsManagerSecretId</code>. Or you can specify clear-text values for <code>UserName</code>, <code>Password</code>, <code>ServerName</code>, and <code>Port</code>. You can't specify both. For more information on creating this <code>SecretsManagerSecret</code> and the <code>SecretsManagerAccessRoleArn</code> and <code>SecretsManagerSecretId</code> required to access it, see <a href="https://docs.aws.amazon.com/https:/docs.aws.amazon.com/dms/latest/userguide/CHAP_Security.html#security-iam-secretsmanager">Using secrets to access AWS Database Migration Service resources</a> in the <i>AWS Database Migration Service User Guide</i>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Username</i> Endpoint connection user name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SpatialDataOptionToGeoJsonFunctionName</i> Use this attribute to convert <code>SDO_GEOMETRY</code> to <code>GEOJSON</code> format. By default, DMS calls the <code>SDO2GEOJSON</code> custom function if present and accessible. Or you can create your own custom function that mimics the operation of <code>SDOGEOJSON</code> and set <code>SpatialDataOptionToGeoJsonFunctionName</code> to call it instead. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerName</i> Fully qualified domain name of the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityDbEncryptionName</i> For an Oracle source endpoint, the name of a key used for the transparent data encryption (TDE) of the columns and tablespaces in an Oracle source database that is encrypted using TDE. The key value is the value of the <code>SecurityDbEncryption</code> setting. For more information on setting the key name value of <code>SecurityDbEncryptionName</code>, see the information and example for setting the <code>securityDbEncryptionName</code> extra connection attribute in <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.Encryption"> Supported encryption methods for using Oracle as a source for AWS DMS</a> in the <i>AWS Database Migration Service User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityDbEncryption</i> For an Oracle source endpoint, the transparent data encryption (TDE) password required by AWM DMS to access Oracle redo logs encrypted by TDE using Binary Reader. It is also the <code> <i>TDE_Password</i> </code> part of the comma-separated value you set to the <code>Password</code> request parameter when you create the endpoint. The <code>SecurityDbEncryptian</code> setting is related to this <code>SecurityDbEncryptionName</code> setting. For more information, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.Encryption"> Supported encryption methods for using Oracle as a source for AWS DMS</a> in the <i>AWS Database Migration Service User Guide</i>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RetryInterval</i> Specifies the number of seconds that the system waits before resending a query. Example: <code>retryInterval=6;</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadTableSpaceName</i> When set to <code>true</code>, this attribute supports tablespace replication.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Endpoint TCP port.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Password</i> Endpoint connection password.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberDatatypeScale</i> Specifies the number scale. You can select a scale up to 38, or you can select FLOAT. By default, the NUMBER data type is converted to precision 38, scale 10. Example: <code>numberDataTypeScale=12</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FailTasksOnLobTruncation</i> When set to <code>true</code>, this attribute causes a task to fail if the actual size of an LOB column is greater than the specified <code>LobMaxSize</code>. If a task is set to limited LOB mode and this option is set to <code>true</code>, the task fails instead of truncating the LOB data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DirectPathParallelLoad</i> When set to <code>true</code>, this attribute specifies a parallel load when <code>useDirectPathFullLoad</code> is set to <code>Y</code>. This attribute also only applies when you use the AWS DMS parallel load feature. Note that the target table cannot have any constraints or indexes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> Database name for the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CharLengthSemantics</i> Specifies whether the length of a character column is in bytes or in characters. To indicate that the character column length is in characters, set this attribute to <code>CHAR</code>. Otherwise, the character column length is in bytes. Example: <code>charLengthSemantics=CHAR;</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AsmUser</i> For an Oracle source endpoint, your ASM user name. You can set this value from the <code>asm_user</code> value. You set <code>asm_user</code> as part of the extra connection attribute string to access an Oracle server with Binary Reader that uses ASM. For more information, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.CDC.Configuration">Configuration for change data capture (CDC) on an Oracle source database</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AsmServer</i> For an Oracle source endpoint, your ASM server address. You can set this value from the <code>asm_server</code> value. You set <code>asm_server</code> as part of the extra connection attribute string to access an Oracle server with Binary Reader that uses ASM. For more information, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.CDC.Configuration">Configuration for change data capture (CDC) on an Oracle source database</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AsmPassword</i> For an Oracle source endpoint, your Oracle Automatic Storage Management (ASM) password. You can set this value from the <code> <i>asm_user_password</i> </code> value. You set this value as part of the comma-separated value that you set to the <code>Password</code> request parameter when you create the endpoint to access transaction logs using Binary Reader. For more information, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.CDC.Configuration">Configuration for change data capture (CDC) on an Oracle source database</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ArchivedLogsOnly</i> When this field is set to <code>Y</code>, AWS DMS only accesses the archived redo logs. If the archived redo logs are stored on Oracle ASM only, the AWS DMS user account needs to be granted ASM privileges.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DirectPathNoLog</i> When set to <code>true</code>, this attribute helps to increase the commit rate on the Oracle target database by writing directly to tables and not writing a trail to database logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableHomogenousTablespace</i> Set this attribute to enable homogenous tablespace replication and create existing tables or indexes under the same tablespace on the target.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplacePathPrefix</i> Set this attribute to true in order to use the Binary Reader to capture change data for an Amazon RDS for Oracle as the source. This setting tells DMS instance to replace the default Oracle root with the specified <code>usePathPrefix</code> setting to access the redo logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UsePathPrefix</i> Set this string attribute to the required value in order to use the Binary Reader to capture change data for an Amazon RDS for Oracle as the source. This value specifies the path prefix used to replace the default Oracle root to access the redo logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OraclePathPrefix</i> Set this string attribute to the required value in order to use the Binary Reader to capture change data for an Amazon RDS for Oracle as the source. This value specifies the default Oracle root used to access the redo logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UseAlternateFolderForOnline</i> Set this attribute to <code>true</code> in order to use the Binary Reader to capture change data for an Amazon RDS for Oracle as the source. This tells the DMS instance to use any specified prefix replacement to access all online redo logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccessAlternateDirectly</i> Set this attribute to <code>false</code> in order to use the Binary Reader to capture change data for an Amazon RDS for Oracle as the source. This tells the DMS instance to not access redo logs through any specified path prefix replacement using direct file access.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadAheadBlocks</i> Set this attribute to change the number of read-ahead blocks that DMS configures to perform a Change Data Capture (CDC) load using Oracle Automatic Storage Management (ASM). You can specify an integer value between 1000 (the default) and 200,000 (the maximum).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ParallelAsmReadThreads</i> Set this attribute to change the number of threads that DMS configures to perform a Change Data Capture (CDC) load using Oracle Automatic Storage Management (ASM). You can specify an integer value between 2 (the default) and 8 (the maximum). Use this attribute together with the <code>readAheadBlocks</code> attribute.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowSelectNestedTables</i> Set this attribute to <code>true</code> to enable replication of Oracle tables containing columns that are nested tables or defined types.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdditionalArchivedLogDestId</i> Set this attribute with <code>archivedLogDestId</code> in a primary/ standby setup. This attribute is useful in the case of a switchover. In this case, AWS DMS needs to know which destination to get archive redo logs from to read changes. This need arises because the previous primary instance is now a standby instance after switchover.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ArchivedLogDestId</i> Specifies the destination of the archived redo logs. The value should be the same as the DEST_ID number in the v$archived_log table. When working with multiple log destinations (DEST_ID), we recommend that you to specify an archived redo logs location identifier. Doing this improves performance by ensuring that the correct logs are accessed from the outset.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AddSupplementalLogging</i> Set this attribute to set up table-level supplemental logging for the Oracle database. This attribute enables PRIMARY KEY supplemental logging on all tables selected for a migration task. If you use this option, you still need to enable database-level supplemental logging.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerSecretId</i> The full ARN, partial ARN, or friendly name of the <code>SecretsManagerSecret</code> that contains the SAP SAE endpoint connection details.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerAccessRoleArn</i> The full Amazon Resource Name (ARN) of the IAM role that specifies AWS DMS as the trusted entity and grants the required permissions to access the value in <code>SecretsManagerSecret</code>. <code>SecretsManagerSecret</code> has the value of the AWS Secrets Manager secret that allows access to the SAP ASE endpoint. <note> You can specify one of two sets of values for these permissions. You can specify the values for this setting and <code>SecretsManagerSecretId</code>. Or you can specify clear-text values for <code>UserName</code>, <code>Password</code>, <code>ServerName</code>, and <code>Port</code>. You can't specify both. For more information on creating this <code>SecretsManagerSecret</code> and the <code>SecretsManagerAccessRoleArn</code> and <code>SecretsManagerSecretId</code> required to access it, see <a href="https://docs.aws.amazon.com/https:/docs.aws.amazon.com/dms/latest/userguide/CHAP_Security.html#security-iam-secretsmanager">Using secrets to access AWS Database Migration Service resources</a> in the <i>AWS Database Migration Service User Guide</i>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Username</i> Endpoint connection user name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerName</i> Fully qualified domain name of the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Endpoint TCP port.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Password</i> Endpoint connection password.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> Database name for the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerSecretId</i> The full ARN, partial ARN, or friendly name of the <code>SecretsManagerSecret</code> that contains the SQL Server endpoint connection details.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerAccessRoleArn</i> The full Amazon Resource Name (ARN) of the IAM role that specifies AWS DMS as the trusted entity and grants the required permissions to access the value in <code>SecretsManagerSecret</code>. <code>SecretsManagerSecret</code> has the value of the AWS Secrets Manager secret that allows access to the SQL Server endpoint. <note> You can specify one of two sets of values for these permissions. You can specify the values for this setting and <code>SecretsManagerSecretId</code>. Or you can specify clear-text values for <code>UserName</code>, <code>Password</code>, <code>ServerName</code>, and <code>Port</code>. You can't specify both. For more information on creating this <code>SecretsManagerSecret</code> and the <code>SecretsManagerAccessRoleArn</code> and <code>SecretsManagerSecretId</code> required to access it, see <a href="https://docs.aws.amazon.com/https:/docs.aws.amazon.com/dms/latest/userguide/CHAP_Security.html#security-iam-secretsmanager">Using secrets to access AWS Database Migration Service resources</a> in the <i>AWS Database Migration Service User Guide</i>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UseThirdPartyBackupDevice</i> When this attribute is set to <code>Y</code>, DMS processes third-party transaction log backups if they are created in native format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UseBcpFullLoad</i> Use this to attribute to transfer data for full-load operations using BCP. When the target table contains an identity column that does not exist in the source table, you must disable the use BCP for loading table option.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Username</i> Endpoint connection user name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerName</i> Fully qualified domain name of the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SafeguardPolicy</i> Use this attribute to minimize the need to access the backup log and enable AWS DMS to prevent truncation using one of the following two methods.  <i>Start transactions in the database:</i> This is the default method. When this method is used, AWS DMS prevents TLOG truncation by mimicking a transaction in the database. As long as such a transaction is open, changes that appear after the transaction started aren't truncated. If you need Microsoft Replication to be enabled in your database, then you must choose this method.  <i>Exclusively use sp_repldone within a single task</i>: When this method is used, AWS DMS reads the changes and then uses sp_repldone to mark the TLOG transactions as ready for truncation. Although this method doesn't involve any transactional activities, it can only be used when Microsoft Replication isn't running. Also, when using this method, only one AWS DMS task can access the database at any given time. Therefore, if you need to run parallel AWS DMS tasks against the same database, use the default method.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadBackupOnly</i> When this attribute is set to <code>Y</code>, AWS DMS only reads changes from transaction log backups and doesn't read from the active transaction log file during ongoing replication. Setting this parameter to <code>Y</code> enables you to control active transaction log file growth during full load and ongoing replication tasks. However, it can add some source latency to ongoing replication.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>QuerySingleAlwaysOnNode</i> Cleans and recreates table metadata information on the replication instance when a mismatch occurs. An example is a situation where running an alter DDL statement on a table might result in different information about the table cached in the replication instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Password</i> Endpoint connection password.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ControlTablesFileGroup</i> Specifies a file group for the AWS DMS internal tables. When the replication task starts, all the internal AWS DMS control tables (awsdms_ apply_exception, awsdms_apply, awsdms_changes) are created for the specified file group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> Database name for the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BcpPacketSize</i> The maximum size of the packets (in bytes) used to transfer data using BCP.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Endpoint TCP port.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerSecretId</i> The full ARN, partial ARN, or friendly name of the <code>SecretsManagerSecret</code> that contains the Db2 LUW endpoint connection details.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerAccessRoleArn</i> The full Amazon Resource Name (ARN) of the IAM role that specifies AWS DMS as the trusted entity and grants the required permissions to access the value in <code>SecretsManagerSecret</code>. <code>SecretsManagerSecret</code> has the value of the AWS Secrets Manager secret that allows access to the Db2 LUW endpoint.  <note> You can specify one of two sets of values for these permissions. You can specify the values for this setting and <code>SecretsManagerSecretId</code>. Or you can specify clear-text values for <code>UserName</code>, <code>Password</code>, <code>ServerName</code>, and <code>Port</code>. You can't specify both. For more information on creating this <code>SecretsManagerSecret</code> and the <code>SecretsManagerAccessRoleArn</code> and <code>SecretsManagerSecretId</code> required to access it, see <a href="https://docs.aws.amazon.com/https:/docs.aws.amazon.com/dms/latest/userguide/CHAP_Security.html#security-iam-secretsmanager">Using secrets to access AWS Database Migration Service resources</a> in the <i>AWS Database Migration Service User Guide</i>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Username</i> Endpoint connection user name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxKBytesPerRead</i> Maximum number of bytes per read, as a NUMBER value. The default is 64 KB.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CurrentLsn</i> For ongoing replication (CDC), use CurrentLSN to specify a log sequence number (LSN) where you want the replication to start.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SetDataCaptureChanges</i> Enables ongoing replication (CDC) as a BOOLEAN value. The default is true.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerName</i> Fully qualified domain name of the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Endpoint TCP port.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Password</i> Endpoint connection password.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> Database name for the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerSecretId</i> The full ARN, partial ARN, or friendly name of the <code>SecretsManagerSecret</code> that contains the DocumentDB endpoint connection details.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerAccessRoleArn</i> The full Amazon Resource Name (ARN) of the IAM role that specifies AWS DMS as the trusted entity and grants the required permissions to access the value in <code>SecretsManagerSecret</code>. <code>SecretsManagerSecret</code> has the value of the AWS Secrets Manager secret that allows access to the DocumentDB endpoint. <note> You can specify one of two sets of values for these permissions. You can specify the values for this setting and <code>SecretsManagerSecretId</code>. Or you can specify clear-text values for <code>UserName</code>, <code>Password</code>, <code>ServerName</code>, and <code>Port</code>. You can't specify both. For more information on creating this <code>SecretsManagerSecret</code> and the <code>SecretsManagerAccessRoleArn</code> and <code>SecretsManagerSecretId</code> required to access it, see <a href="https://docs.aws.amazon.com/https:/docs.aws.amazon.com/dms/latest/userguide/CHAP_Security.html#security-iam-secretsmanager">Using secrets to access AWS Database Migration Service resources</a> in the <i>AWS Database Migration Service User Guide</i>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The AWS KMS key identifier that is used to encrypt the content on the replication instance. If you don't specify a value for the <code>KmsKeyId</code> parameter, then AWS DMS uses your default encryption key. AWS KMS creates the default encryption key for your AWS account. Your AWS account has a different default encryption key for each AWS Region.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DocsToInvestigate</i>  Indicates the number of documents to preview to determine the document organization. Use this setting when <code>NestingLevel</code> is set to <code>"one"</code>.  Must be a positive value greater than <code>0</code>. Default value is <code>1000</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExtractDocId</i>  Specifies the document ID. Use this setting when <code>NestingLevel</code> is set to <code>"none"</code>.  Default value is <code>"false"</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NestingLevel</i>  Specifies either document or table mode.  Default value is <code>"none"</code>. Specify <code>"none"</code> to use document mode. Specify <code>"one"</code> to use table mode.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i>  The database name on the DocumentDB source endpoint. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i>  The port value for the DocumentDB source endpoint. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerName</i>  The name of the server on the DocumentDB source endpoint. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Password</i>  The password for the user account you use to access the DocumentDB source endpoint. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Username</i> The user name you use to access the DocumentDB source endpoint. <br/>
        :return: Endpoint:  The modified endpoint.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DocDbSettings</i> Provides information that defines a DocumentDB endpoint.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DocDbSettings</b>: Provides information that defines a DocumentDB endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IBMDb2Settings</i> The settings for the IBM Db2 LUW source endpoint. For more information, see the <code>IBMDb2Settings</code> structure. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>IBMDb2Settings</b>: The settings for the IBM Db2 LUW source endpoint. For more information, see the <code>IBMDb2Settings</code> structure. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MicrosoftSQLServerSettings</i> The settings for the Microsoft SQL Server source and target endpoint. For more information, see the <code>MicrosoftSQLServerSettings</code> structure.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>MicrosoftSQLServerSettings</b>: The settings for the Microsoft SQL Server source and target endpoint. For more information, see the <code>MicrosoftSQLServerSettings</code> structure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SybaseSettings</i> The settings for the SAP ASE source and target endpoint. For more information, see the <code>SybaseSettings</code> structure.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SybaseSettings</b>: The settings for the SAP ASE source and target endpoint. For more information, see the <code>SybaseSettings</code> structure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OracleSettings</i> The settings for the Oracle source and target endpoint. For more information, see the <code>OracleSettings</code> structure.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>OracleSettings</b>: The settings for the Oracle source and target endpoint. For more information, see the <code>OracleSettings</code> structure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MySQLSettings</i> The settings for the MySQL source and target endpoint. For more information, see the <code>MySQLSettings</code> structure.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>MySQLSettings</b>: The settings for the MySQL source and target endpoint. For more information, see the <code>MySQLSettings</code> structure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PostgreSQLSettings</i> The settings for the PostgreSQL source and target endpoint. For more information, see the <code>PostgreSQLSettings</code> structure.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PostgreSQLSettings</b>: The settings for the PostgreSQL source and target endpoint. For more information, see the <code>PostgreSQLSettings</code> structure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RedshiftSettings</i> Settings for the Amazon Redshift endpoint.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RedshiftSettings</b>: Settings for the Amazon Redshift endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NeptuneSettings</i> The settings for the Amazon Neptune target endpoint. For more information, see the <code>NeptuneSettings</code> structure.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>NeptuneSettings</b>: The settings for the Amazon Neptune target endpoint. For more information, see the <code>NeptuneSettings</code> structure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ElasticsearchSettings</i> The settings for the Elasticsearch source endpoint. For more information, see the <code>ElasticsearchSettings</code> structure.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ElasticsearchSettings</b>: The settings for the Elasticsearch source endpoint. For more information, see the <code>ElasticsearchSettings</code> structure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KafkaSettings</i> The settings for the Apache Kafka target endpoint. For more information, see the <code>KafkaSettings</code> structure.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>KafkaSettings</b>: The settings for the Apache Kafka target endpoint. For more information, see the <code>KafkaSettings</code> structure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KinesisSettings</i> The settings for the Amazon Kinesis target endpoint. For more information, see the <code>KinesisSettings</code> structure.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>KinesisSettings</b>: The settings for the Amazon Kinesis target endpoint. For more information, see the <code>KinesisSettings</code> structure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MongoDbSettings</i> The settings for the MongoDB source endpoint. For more information, see the <code>MongoDbSettings</code> structure.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>MongoDbSettings</b>: The settings for the MongoDB source endpoint. For more information, see the <code>MongoDbSettings</code> structure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DmsTransferSettings</i> The settings in JSON format for the DMS transfer type of source endpoint.  Possible settings include the following: <ul> <li>  <code>ServiceAccessRoleArn</code> - The IAM role that has permission to access the Amazon S3 bucket. </li> <li>  <code>BucketName</code> - The name of the S3 bucket to use. </li> <li>  <code>CompressionType</code> - An optional parameter to use GZIP to compress the target files. To use GZIP, set this value to <code>NONE</code> (the default). To keep the files uncompressed, don't use this value. </li> </ul> Shorthand syntax for these settings is as follows: <code>ServiceAccessRoleArn=string,BucketName=string,CompressionType=string</code>  JSON syntax for these settings is as follows: <code>{ "ServiceAccessRoleArn": "string", "BucketName": "string", "CompressionType": "none"|"gzip" } </code> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DmsTransferSettings</b>: The settings in JSON format for the DMS transfer type of source endpoint.  Possible settings include the following: <ul> <li>  <code>ServiceAccessRoleArn</code> - The IAM role that has permission to access the Amazon S3 bucket. </li> <li>  <code>BucketName</code> - The name of the S3 bucket to use. </li> <li>  <code>CompressionType</code> - An optional parameter to use GZIP to compress the target files. To use GZIP, set this value to <code>NONE</code> (the default). To keep the files uncompressed, don't use this value. </li> </ul> Shorthand syntax for these settings is as follows: <code>ServiceAccessRoleArn=string,BucketName=string,CompressionType=string</code>  JSON syntax for these settings is as follows: <code>{ "ServiceAccessRoleArn": "string", "BucketName": "string", "CompressionType": "none"|"gzip" } </code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Settings</i> The settings for the S3 target endpoint. For more information, see the <code>S3Settings</code> structure.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3Settings</b>: The settings for the S3 target endpoint. For more information, see the <code>S3Settings</code> structure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DynamoDbSettings</i> The settings for the DynamoDB target endpoint. For more information, see the <code>DynamoDBSettings</code> structure.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DynamoDbSettings</b>: The settings for the DynamoDB target endpoint. For more information, see the <code>DynamoDBSettings</code> structure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExternalId</i>  Value returned by a call to CreateEndpoint that can be used for cross-account validation. Use it on a subsequent call to CreateEndpoint to create the endpoint with a cross-account. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExternalTableDefinition</i> The external table definition.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceAccessRoleArn</i> The Amazon Resource Name (ARN) used by the service access IAM role.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SslMode</i> The SSL mode used to connect to the endpoint. The default value is <code>none</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CertificateArn</i> The Amazon Resource Name (ARN) used for SSL connection to the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointArn</i> The Amazon Resource Name (ARN) string that uniquely identifies the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> An AWS KMS key identifier that is used to encrypt the connection parameters for the endpoint. If you don't specify a value for the <code>KmsKeyId</code> parameter, then AWS DMS uses your default encryption key. AWS KMS creates the default encryption key for your AWS account. Your AWS account has a different default encryption key for each AWS Region.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExtraConnectionAttributes</i> Additional connection attributes used to connect to the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> The name of the database at the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> The port value used to access the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerName</i> The name of the server at the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Username</i> The user name used to connect to the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineDisplayName</i> The expanded name for the engine name. For example, if the <code>EngineName</code> parameter is "aurora," this value would be "Amazon Aurora MySQL."<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineName</i> The database engine name. Valid values, depending on the EndpointType, include <code>"mysql"</code>, <code>"oracle"</code>, <code>"postgres"</code>, <code>"mariadb"</code>, <code>"aurora"</code>, <code>"aurora-postgresql"</code>, <code>"redshift"</code>, <code>"s3"</code>, <code>"db2"</code>, <code>"azuredb"</code>, <code>"sybase"</code>, <code>"dynamodb"</code>, <code>"mongodb"</code>, <code>"kinesis"</code>, <code>"kafka"</code>, <code>"elasticsearch"</code>, <code>"documentdb"</code>, <code>"sqlserver"</code>, and <code>"neptune"</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointType</i> The type of endpoint. Valid values are <code>source</code> and <code>target</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointIdentifier</i> The database endpoint identifier. Identifiers must begin with a letter and must contain only ASCII letters, digits, and hyphens. They can't end with a hyphen or contain two consecutive hyphens.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceAccessRoleArn</i>  The Amazon Resource Name (ARN) used by the service access IAM role. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CdcPath</i> Specifies the folder path of CDC files. For an S3 source, this setting is required if a task captures change data; otherwise, it's optional. If <code>CdcPath</code> is set, AWS DMS reads CDC files from this path and replicates the data changes to the target endpoint. For an S3 target if you set <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_S3Settings.html#DMS-Type-S3Settings-PreserveTransactions"> <code>PreserveTransactions</code> </a> to <code>true</code>, AWS DMS verifies that you have set this parameter to a folder path on your S3 target where AWS DMS can save the transaction order for the CDC load. AWS DMS creates this CDC folder path in either your S3 target working directory or the S3 target location specified by <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_S3Settings.html#DMS-Type-S3Settings-BucketFolder"> <code>BucketFolder</code> </a> and <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_S3Settings.html#DMS-Type-S3Settings-BucketName"> <code>BucketName</code> </a>. For example, if you specify <code>CdcPath</code> as <code>MyChangedData</code>, and you specify <code>BucketName</code> as <code>MyTargetBucket</code> but do not specify <code>BucketFolder</code>, AWS DMS creates the CDC folder path following: <code>MyTargetBucket/MyChangedData</code>. If you specify the same <code>CdcPath</code>, and you specify <code>BucketName</code> as <code>MyTargetBucket</code> and <code>BucketFolder</code> as <code>MyTargetData</code>, AWS DMS creates the CDC folder path following: <code>MyTargetBucket/MyTargetData/MyChangedData</code>. For more information on CDC including transaction order on an S3 target, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html#CHAP_Target.S3.EndpointSettings.CdcPath">Capturing data changes (CDC) including transaction order on the S3 target</a>. <note> This setting is supported in AWS DMS versions 3.4.2 and later. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PreserveTransactions</i> If set to <code>true</code>, AWS DMS saves the transaction order for a change data capture (CDC) load on the Amazon S3 target specified by <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_S3Settings.html#DMS-Type-S3Settings-CdcPath"> <code>CdcPath</code> </a>. For more information, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html#CHAP_Target.S3.EndpointSettings.CdcPath">Capturing data changes (CDC) including transaction order on the S3 target</a>. <note> This setting is supported in AWS DMS versions 3.4.2 and later. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CsvNoSupValue</i> This setting only applies if your Amazon S3 output files during a change data capture (CDC) load are written in .csv format. If <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_S3Settings.html#DMS-Type-S3Settings-UseCsvNoSupValue"> <code>UseCsvNoSupValue</code> </a> is set to true, specify a string value that you want AWS DMS to use for all columns not included in the supplemental log. If you do not specify a string value, AWS DMS uses the null value for these columns regardless of the <code>UseCsvNoSupValue</code> setting. <note> This setting is supported in AWS DMS versions 3.4.1 and later. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UseCsvNoSupValue</i> This setting applies if the S3 output files during a change data capture (CDC) load are written in .csv format. If set to <code>true</code> for columns not included in the supplemental log, AWS DMS uses the value specified by <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_S3Settings.html#DMS-Type-S3Settings-CsvNoSupValue"> <code>CsvNoSupValue</code> </a>. If not set or set to <code>false</code>, AWS DMS uses the null value for these columns. <note> This setting is supported in AWS DMS versions 3.4.1 and later. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DatePartitionDelimiter</i> Specifies a date separating delimiter to use during folder partitioning. The default value is <code>SLASH</code>. Use this parameter when <code>DatePartitionedEnabled</code> is set to <code>true</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DatePartitionSequence</i> Identifies the sequence of the date format to use during folder partitioning. The default value is <code>YYYYMMDD</code>. Use this parameter when <code>DatePartitionedEnabled</code> is set to <code>true</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DatePartitionEnabled</i> When set to <code>true</code>, this parameter partitions S3 bucket folders based on transaction commit dates. The default value is <code>false</code>. For more information about date-based folder partitoning, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html#CHAP_Target.S3.DatePartitioning">Using date-based folder partitioning</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CdcInsertsAndUpdates</i> A value that enables a change data capture (CDC) load to write INSERT and UPDATE operations to .csv or .parquet (columnar storage) output files. The default setting is <code>false</code>, but when <code>CdcInsertsAndUpdates</code> is set to <code>true</code> or <code>y</code>, only INSERTs and UPDATEs from the source database are migrated to the .csv or .parquet file.  For .csv file format only, how these INSERTs and UPDATEs are recorded depends on the value of the <code>IncludeOpForFullLoad</code> parameter. If <code>IncludeOpForFullLoad</code> is set to <code>true</code>, the first field of every CDC record is set to either <code>I</code> or <code>U</code> to indicate INSERT and UPDATE operations at the source. But if <code>IncludeOpForFullLoad</code> is set to <code>false</code>, CDC records are written without an indication of INSERT or UPDATE operations at the source. For more information about how these settings work together, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html#CHAP_Target.S3.Configuring.InsertOps">Indicating Source DB Operations in Migrated S3 Data</a> in the <i>AWS Database Migration Service User Guide.</i>. <note> AWS DMS supports the use of the <code>CdcInsertsAndUpdates</code> parameter in versions 3.3.1 and later.  <code>CdcInsertsOnly</code> and <code>CdcInsertsAndUpdates</code> can't both be set to <code>true</code> for the same endpoint. Set either <code>CdcInsertsOnly</code> or <code>CdcInsertsAndUpdates</code> to <code>true</code> for the same endpoint, but not both. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ParquetTimestampInMillisecond</i> A value that specifies the precision of any <code>TIMESTAMP</code> column values that are written to an Amazon S3 object file in .parquet format. <note> AWS DMS supports the <code>ParquetTimestampInMillisecond</code> parameter in versions 3.1.4 and later. </note> When <code>ParquetTimestampInMillisecond</code> is set to <code>true</code> or <code>y</code>, AWS DMS writes all <code>TIMESTAMP</code> columns in a .parquet formatted file with millisecond precision. Otherwise, DMS writes them with microsecond precision. Currently, Amazon Athena and AWS Glue can handle only millisecond precision for <code>TIMESTAMP</code> values. Set this parameter to <code>true</code> for S3 endpoint object files that are .parquet formatted only if you plan to query or process the data with Athena or AWS Glue. <note> AWS DMS writes any <code>TIMESTAMP</code> column values written to an S3 file in .csv format with microsecond precision. Setting <code>ParquetTimestampInMillisecond</code> has no effect on the string format of the timestamp column value that is inserted by setting the <code>TimestampColumnName</code> parameter. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TimestampColumnName</i> A value that when nonblank causes AWS DMS to add a column with timestamp information to the endpoint data for an Amazon S3 target. <note> AWS DMS supports the <code>TimestampColumnName</code> parameter in versions 3.1.4 and later. </note> DMS includes an additional <code>STRING</code> column in the .csv or .parquet object files of your migrated data when you set <code>TimestampColumnName</code> to a nonblank value. For a full load, each row of this timestamp column contains a timestamp for when the data was transferred from the source to the target by DMS.  For a change data capture (CDC) load, each row of the timestamp column contains the timestamp for the commit of that row in the source database. The string format for this timestamp column value is <code>yyyy-MM-dd HH:mm:ss.SSSSSS</code>. By default, the precision of this value is in microseconds. For a CDC load, the rounding of the precision depends on the commit timestamp supported by DMS for the source database. When the <code>AddColumnName</code> parameter is set to <code>true</code>, DMS also includes a name for the timestamp column that you set with <code>TimestampColumnName</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CdcInsertsOnly</i> A value that enables a change data capture (CDC) load to write only INSERT operations to .csv or columnar storage (.parquet) output files. By default (the <code>false</code> setting), the first field in a .csv or .parquet record contains the letter I (INSERT), U (UPDATE), or D (DELETE). These values indicate whether the row was inserted, updated, or deleted at the source database for a CDC load to the target. If <code>CdcInsertsOnly</code> is set to <code>true</code> or <code>y</code>, only INSERTs from the source database are migrated to the .csv or .parquet file. For .csv format only, how these INSERTs are recorded depends on the value of <code>IncludeOpForFullLoad</code>. If <code>IncludeOpForFullLoad</code> is set to <code>true</code>, the first field of every CDC record is set to I to indicate the INSERT operation at the source. If <code>IncludeOpForFullLoad</code> is set to <code>false</code>, every CDC record is written without a first field to indicate the INSERT operation at the source. For more information about how these settings work together, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html#CHAP_Target.S3.Configuring.InsertOps">Indicating Source DB Operations in Migrated S3 Data</a> in the <i>AWS Database Migration Service User Guide.</i>. <note> AWS DMS supports the interaction described preceding between the <code>CdcInsertsOnly</code> and <code>IncludeOpForFullLoad</code> parameters in versions 3.1.4 and later.   <code>CdcInsertsOnly</code> and <code>CdcInsertsAndUpdates</code> can't both be set to <code>true</code> for the same endpoint. Set either <code>CdcInsertsOnly</code> or <code>CdcInsertsAndUpdates</code> to <code>true</code> for the same endpoint, but not both. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeOpForFullLoad</i> A value that enables a full load to write INSERT operations to the comma-separated value (.csv) output files only to indicate how the rows were added to the source database. <note> AWS DMS supports the <code>IncludeOpForFullLoad</code> parameter in versions 3.1.4 and later. </note> For full load, records can only be inserted. By default (the <code>false</code> setting), no information is recorded in these output files for a full load to indicate that the rows were inserted at the source database. If <code>IncludeOpForFullLoad</code> is set to <code>true</code> or <code>y</code>, the INSERT is recorded as an I annotation in the first field of the .csv file. This allows the format of your target records from a full load to be consistent with the target records from a CDC load. <note> This setting works together with the <code>CdcInsertsOnly</code> and the <code>CdcInsertsAndUpdates</code> parameters for output to .csv files only. For more information about how these settings work together, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html#CHAP_Target.S3.Configuring.InsertOps">Indicating Source DB Operations in Migrated S3 Data</a> in the <i>AWS Database Migration Service User Guide.</i>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableStatistics</i> A value that enables statistics for Parquet pages and row groups. Choose <code>true</code> to enable statistics, <code>false</code> to disable. Statistics include <code>NULL</code>, <code>DISTINCT</code>, <code>MAX</code>, and <code>MIN</code> values. This parameter defaults to <code>true</code>. This value is used for .parquet file format only.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ParquetVersion</i> The version of the Apache Parquet format that you want to use: <code>parquet_1_0</code> (the default) or <code>parquet_2_0</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DataPageSize</i> The size of one data page in bytes. This parameter defaults to 1024 * 1024 bytes (1 MiB). This number is used for .parquet file format only. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RowGroupLength</i> The number of rows in a row group. A smaller row group size provides faster reads. But as the number of row groups grows, the slower writes become. This parameter defaults to 10,000 rows. This number is used for .parquet file format only.  If you choose a value larger than the maximum, <code>RowGroupLength</code> is set to the max row group length in bytes (64 * 1024 * 1024). <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DictPageSizeLimit</i> The maximum size of an encoded dictionary page of a column. If the dictionary page exceeds this, this column is stored using an encoding type of <code>PLAIN</code>. This parameter defaults to 1024 * 1024 bytes (1 MiB), the maximum size of a dictionary page before it reverts to <code>PLAIN</code> encoding. This size is used for .parquet file format only. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EncodingType</i> The type of encoding you are using:  <ul> <li>  <code>RLE_DICTIONARY</code> uses a combination of bit-packing and run-length encoding to store repeated values more efficiently. This is the default. </li> <li>  <code>PLAIN</code> doesn't use encoding at all. Values are stored as they are. </li> <li>  <code>PLAIN_DICTIONARY</code> builds a dictionary of the values encountered in a given column. The dictionary is stored in a dictionary page for each column chunk. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DataFormat</i> The format of the data that you want to use for output. You can choose one of the following:  <ul> <li>  <code>csv</code> : This is a row-based file format with comma-separated values (.csv).  </li> <li>  <code>parquet</code> : Apache Parquet (.parquet) is a columnar storage file format that features efficient compression and provides faster query response.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerSideEncryptionKmsKeyId</i> If you are using <code>SSE_KMS</code> for the <code>EncryptionMode</code>, provide the AWS KMS key ID. The key that you use needs an attached policy that enables AWS Identity and Access Management (IAM) user permissions and allows use of the key. Here is a CLI example: <code>aws dms create-endpoint --endpoint-identifier <i>value</i> --endpoint-type target --engine-name s3 --s3-settings ServiceAccessRoleArn=<i>value</i>,BucketFolder=<i>value</i>,BucketName=<i>value</i>,EncryptionMode=SSE_KMS,ServerSideEncryptionKmsKeyId=<i>value</i> </code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EncryptionMode</i> The type of server-side encryption that you want to use for your data. This encryption type is part of the endpoint settings or the extra connections attributes for Amazon S3. You can choose either <code>SSE_S3</code> (the default) or <code>SSE_KMS</code>.  <note> For the <code>ModifyEndpoint</code> operation, you can change the existing value of the <code>EncryptionMode</code> parameter from <code>SSE_KMS</code> to <code>SSE_S3</code>. But you can’t change the existing value from <code>SSE_S3</code> to <code>SSE_KMS</code>. </note> To use <code>SSE_S3</code>, you need an AWS Identity and Access Management (IAM) role with permission to allow <code>"arn:aws:s3:::dms-*"</code> to use the following actions: <ul> <li>  <code>s3:CreateBucket</code>  </li> <li>  <code>s3:ListBucket</code>  </li> <li>  <code>s3:DeleteBucket</code>  </li> <li>  <code>s3:GetBucketLocation</code>  </li> <li>  <code>s3:GetObject</code>  </li> <li>  <code>s3:PutObject</code>  </li> <li>  <code>s3:DeleteObject</code>  </li> <li>  <code>s3:GetObjectVersion</code>  </li> <li>  <code>s3:GetBucketPolicy</code>  </li> <li>  <code>s3:PutBucketPolicy</code>  </li> <li>  <code>s3:DeleteBucketPolicy</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CompressionType</i> An optional parameter to use GZIP to compress the target files. Set to GZIP to compress the target files. Either set this parameter to NONE (the default) or don't use it to leave the files uncompressed. This parameter applies to both .csv and .parquet file formats. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BucketName</i>  The name of the S3 bucket. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BucketFolder</i>  An optional parameter to set a folder name in the S3 bucket. If provided, tables are created in the path <code> <i>bucketFolder</i>/<i>schema_name</i>/<i>table_name</i>/</code>. If this parameter isn't specified, then the path used is <code> <i>schema_name</i>/<i>table_name</i>/</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CsvDelimiter</i>  The delimiter used to separate columns in the .csv file for both source and target. The default is a comma. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CsvRowDelimiter</i>  The delimiter used to separate rows in the .csv file for both source and target. The default is a carriage return (<code>\n</code>). <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ExternalTableDefinition</i>  Specifies how tables are defined in the S3 source files only. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceAccessRoleArn</i>  The Amazon Resource Name (ARN) used by the service access IAM role. It is a required parameter that enables DMS to write and read objects from an S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BucketName</i>  The name of the S3 bucket to use. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceAccessRoleArn</i>  The IAM role that has permission to access the Amazon S3 bucket. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerSecretId</i> The full ARN, partial ARN, or friendly name of the <code>SecretsManagerSecret</code> that contains the MongoDB endpoint connection details.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerAccessRoleArn</i> The full Amazon Resource Name (ARN) of the IAM role that specifies AWS DMS as the trusted entity and grants the required permissions to access the value in <code>SecretsManagerSecret</code>. <code>SecretsManagerSecret</code> has the value of the AWS Secrets Manager secret that allows access to the MongoDB endpoint. <note> You can specify one of two sets of values for these permissions. You can specify the values for this setting and <code>SecretsManagerSecretId</code>. Or you can specify clear-text values for <code>UserName</code>, <code>Password</code>, <code>ServerName</code>, and <code>Port</code>. You can't specify both. For more information on creating this <code>SecretsManagerSecret</code> and the <code>SecretsManagerAccessRoleArn</code> and <code>SecretsManagerSecretId</code> required to access it, see <a href="https://docs.aws.amazon.com/https:/docs.aws.amazon.com/dms/latest/userguide/CHAP_Security.html#security-iam-secretsmanager">Using secrets to access AWS Database Migration Service resources</a> in the <i>AWS Database Migration Service User Guide</i>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The AWS KMS key identifier that is used to encrypt the content on the replication instance. If you don't specify a value for the <code>KmsKeyId</code> parameter, then AWS DMS uses your default encryption key. AWS KMS creates the default encryption key for your AWS account. Your AWS account has a different default encryption key for each AWS Region.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AuthSource</i>  The MongoDB database name. This setting isn't used when <code>AuthType</code> is set to <code>"no"</code>.  The default is <code>"admin"</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DocsToInvestigate</i>  Indicates the number of documents to preview to determine the document organization. Use this setting when <code>NestingLevel</code> is set to <code>"one"</code>.  Must be a positive value greater than <code>0</code>. Default value is <code>1000</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ExtractDocId</i>  Specifies the document ID. Use this setting when <code>NestingLevel</code> is set to <code>"none"</code>.  Default value is <code>"false"</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NestingLevel</i>  Specifies either document or table mode.  Default value is <code>"none"</code>. Specify <code>"none"</code> to use document mode. Specify <code>"one"</code> to use table mode.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AuthMechanism</i>  The authentication mechanism you use to access the MongoDB source endpoint. For the default value, in MongoDB version 2.x, <code>"default"</code> is <code>"mongodb_cr"</code>. For MongoDB version 3.x or later, <code>"default"</code> is <code>"scram_sha_1"</code>. This setting isn't used when <code>AuthType</code> is set to <code>"no"</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AuthType</i>  The authentication type you use to access the MongoDB source endpoint. When when set to <code>"no"</code>, user name and password parameters are not used and can be empty. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i>  The database name on the MongoDB source endpoint. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i>  The port value for the MongoDB source endpoint. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerName</i>  The name of the server on the MongoDB source endpoint. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Password</i>  The password for the user account you use to access the MongoDB source endpoint. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Username</i> The user name you use to access the MongoDB source endpoint. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeNullAndEmpty</i> Include NULL and empty columns for records migrated to the endpoint. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeControlDetails</i> Shows detailed control information for table definition, column definition, and table and column changes in the Kinesis message output. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeTableAlterOperations</i> Includes any data definition language (DDL) operations that change the table in the control data, such as <code>rename-table</code>, <code>drop-table</code>, <code>add-column</code>, <code>drop-column</code>, and <code>rename-column</code>. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PartitionIncludeSchemaTable</i> Prefixes schema and table names to partition values, when the partition type is <code>primary-key-type</code>. Doing this increases data distribution among Kinesis shards. For example, suppose that a SysBench schema has thousands of tables and each table has only limited range for a primary key. In this case, the same primary key is sent from thousands of tables to the same shard, which causes throttling. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludePartitionValue</i> Shows the partition value within the Kinesis message output, unless the partition type is <code>schema-table-type</code>. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeTransactionDetails</i> Provides detailed transaction information from the source database. This information includes a commit timestamp, a log position, and values for <code>transaction_id</code>, previous <code>transaction_id</code>, and <code>transaction_record_id</code> (the record offset within a transaction). The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceAccessRoleArn</i> The Amazon Resource Name (ARN) for the AWS Identity and Access Management (IAM) role that AWS DMS uses to write to the Kinesis data stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MessageFormat</i> The output format for the records created on the endpoint. The message format is <code>JSON</code> (default) or <code>JSON_UNFORMATTED</code> (a single line with no tab).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamArn</i> The Amazon Resource Name (ARN) for the Amazon Kinesis Data Streams endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SaslPassword</i> The secure password you created when you first set up your MSK cluster to validate a client identity and make an encrypted connection between server and client using SASL-SSL authentication.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SaslUsername</i>  The secure username you created when you first set up your MSK cluster to validate a client identity and make an encrypted connection between server and client using SASL-SSL authentication.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SslCaCertificateArn</i>  The Amazon Resource Name (ARN) for the private Certification Authority (CA) cert that AWS DMS uses to securely connect to your Kafka target endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SslClientKeyPassword</i>  The password for the client private key used to securely connect to a Kafka target endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SslClientKeyArn</i> The Amazon Resource Name (ARN) for the client private key used to securely connect to a Kafka target endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SslClientCertificateArn</i> The Amazon Resource Name (ARN) of the client certificate used to securely connect to a Kafka target endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityProtocol</i> Set secure connection to a Kafka target endpoint using Transport Layer Security (TLS). Options include <code>ssl-encryption</code>, <code>ssl-authentication</code>, and <code>sasl-ssl</code>. <code>sasl-ssl</code> requires <code>SaslUsername</code> and <code>SaslPassword</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeNullAndEmpty</i> Include NULL and empty columns for records migrated to the endpoint. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MessageMaxBytes</i> The maximum size in bytes for records created on the endpoint The default is 1,000,000.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeControlDetails</i> Shows detailed control information for table definition, column definition, and table and column changes in the Kafka message output. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeTableAlterOperations</i> Includes any data definition language (DDL) operations that change the table in the control data, such as <code>rename-table</code>, <code>drop-table</code>, <code>add-column</code>, <code>drop-column</code>, and <code>rename-column</code>. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PartitionIncludeSchemaTable</i> Prefixes schema and table names to partition values, when the partition type is <code>primary-key-type</code>. Doing this increases data distribution among Kafka partitions. For example, suppose that a SysBench schema has thousands of tables and each table has only limited range for a primary key. In this case, the same primary key is sent from thousands of tables to the same partition, which causes throttling. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludePartitionValue</i> Shows the partition value within the Kafka message output, unless the partition type is <code>schema-table-type</code>. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeTransactionDetails</i> Provides detailed transaction information from the source database. This information includes a commit timestamp, a log position, and values for <code>transaction_id</code>, previous <code>transaction_id</code>, and <code>transaction_record_id</code> (the record offset within a transaction). The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MessageFormat</i> The output format for the records created on the endpoint. The message format is <code>JSON</code> (default) or <code>JSON_UNFORMATTED</code> (a single line with no tab).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Topic</i> The topic to which you migrate the data. If you don't specify a topic, AWS DMS specifies <code>"kafka-default-topic"</code> as the migration topic.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Broker</i> A comma-separated list of one or more broker locations in your Kafka cluster that host your Kafka instance. Specify each broker location in the form <code> <i>broker-hostname-or-ip</i>:<i>port</i> </code>. For example, <code>"ec2-12-345-678-901.compute-1.amazonaws.com:2345"</code>. For more information and examples of specifying a list of broker locations, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Kafka.html">Using Apache Kafka as a target for AWS Database Migration Service</a> in the <i>AWS Data Migration Service User Guide</i>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorRetryDuration</i> The maximum number of seconds for which DMS retries failed API requests to the Elasticsearch cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FullLoadErrorPercentage</i> The maximum percentage of records that can fail to be written before a full load operation stops. To avoid early failure, this counter is only effective after 1000 records are transferred. Elasticsearch also has the concept of error monitoring during the last 10 minutes of an Observation Window. If transfer of all records fail in the last 10 minutes, the full load operation stops. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointUri</i> The endpoint for the Elasticsearch cluster. AWS DMS uses HTTPS if a transport protocol (http/https) is not specified.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceAccessRoleArn</i> The Amazon Resource Name (ARN) used by service to access the IAM role.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IamAuthEnabled</i> If you want AWS Identity and Access Management (IAM) authorization enabled for this endpoint, set this parameter to <code>true</code>. Then attach the appropriate IAM policy document to your service role specified by <code>ServiceAccessRoleArn</code>. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxRetryCount</i> The number of times for AWS DMS to retry a bulk load of migrated graph data to the Neptune target database before raising an error. The default is 5.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxFileSize</i> The maximum size in kilobytes of migrated graph data stored in a .csv file before AWS DMS bulk-loads the data to the Neptune target database. The default is 1,048,576 KB. If the bulk load is successful, AWS DMS clears the bucket, ready to store the next batch of migrated graph data.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorRetryDuration</i> The number of milliseconds for AWS DMS to wait to retry a bulk-load of migrated graph data to the Neptune target database before raising an error. The default is 250.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3BucketFolder</i> A folder path where you want AWS DMS to store migrated graph data in the S3 bucket specified by <code>S3BucketName</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3BucketName</i> The name of the Amazon S3 bucket where AWS DMS can temporarily store migrated graph data in .csv files before bulk-loading it to the Neptune target database. AWS DMS maps the SQL source data to graph data before storing it in these .csv files.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceAccessRoleArn</i> The Amazon Resource Name (ARN) of the service role that you created for the Neptune target endpoint. For more information, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Neptune.html#CHAP_Target.Neptune.ServiceRole">Creating an IAM Service Role for Accessing Amazon Neptune as a Target</a> in the <i>AWS Database Migration Service User Guide. </i> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerSecretId</i> The full ARN, partial ARN, or friendly name of the <code>SecretsManagerSecret</code> that contains the Amazon Redshift endpoint connection details.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerAccessRoleArn</i> The full Amazon Resource Name (ARN) of the IAM role that specifies AWS DMS as the trusted entity and grants the required permissions to access the value in <code>SecretsManagerSecret</code>. <code>SecretsManagerSecret</code> has the value of the AWS Secrets Manager secret that allows access to the Amazon Redshift endpoint. <note> You can specify one of two sets of values for these permissions. You can specify the values for this setting and <code>SecretsManagerSecretId</code>. Or you can specify clear-text values for <code>UserName</code>, <code>Password</code>, <code>ServerName</code>, and <code>Port</code>. You can't specify both. For more information on creating this <code>SecretsManagerSecret</code> and the <code>SecretsManagerAccessRoleArn</code> and <code>SecretsManagerSecretId</code> required to access it, see <a href="https://docs.aws.amazon.com/https:/docs.aws.amazon.com/dms/latest/userguide/CHAP_Security.html#security-iam-secretsmanager">Using secrets to access AWS Database Migration Service resources</a> in the <i>AWS Database Migration Service User Guide</i>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>WriteBufferSize</i> The size (in KB) of the in-memory file write buffer used when generating .csv files on the local disk at the DMS replication instance. The default value is 1000 (buffer size is 1000KB).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Username</i> An Amazon Redshift user name for a registered user.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TruncateColumns</i> A value that specifies to truncate data in columns to the appropriate number of characters, so that the data fits in the column. This parameter applies only to columns with a VARCHAR or CHAR data type, and rows with a size of 4 MB or less. Choose <code>true</code> to truncate data. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TrimBlanks</i> A value that specifies to remove the trailing white space characters from a VARCHAR string. This parameter applies only to columns with a VARCHAR data type. Choose <code>true</code> to remove unneeded white space. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TimeFormat</i> The time format that you want to use. Valid values are <code>auto</code> (case-sensitive), <code>'timeformat_string'</code>, <code>'epochsecs'</code>, or <code>'epochmillisecs'</code>. It defaults to 10. Using <code>auto</code> recognizes most strings, even some that aren't supported when you use a time format string.  If your date and time values use formats different from each other, set this parameter to <code>auto</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerSideEncryptionKmsKeyId</i> The AWS KMS key ID. If you are using <code>SSE_KMS</code> for the <code>EncryptionMode</code>, provide this key ID. The key that you use needs an attached policy that enables IAM user permissions and allows use of the key.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceAccessRoleArn</i> The Amazon Resource Name (ARN) of the IAM role that has access to the Amazon Redshift service.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerName</i> The name of the Amazon Redshift cluster you are using.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplaceChars</i> A value that specifies to replaces the invalid characters specified in <code>ReplaceInvalidChars</code>, substituting the specified characters instead. The default is <code>"?"</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplaceInvalidChars</i> A list of characters that you want to replace. Use with <code>ReplaceChars</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RemoveQuotes</i> A value that specifies to remove surrounding quotation marks from strings in the incoming data. All characters within the quotation marks, including delimiters, are retained. Choose <code>true</code> to remove quotation marks. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> The port number for Amazon Redshift. The default value is 5439.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Password</i> The password for the user named in the <code>username</code> property.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxFileSize</i> The maximum size (in KB) of any .csv file used to load data on an S3 bucket and transfer data to Amazon Redshift. It defaults to 1048576KB (1 GB).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LoadTimeout</i> The amount of time to wait (in milliseconds) before timing out of operations performed by AWS DMS on a Redshift cluster, such as Redshift COPY, INSERT, DELETE, and UPDATE.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FileTransferUploadStreams</i> The number of threads used to upload a single file. This parameter accepts a value from 1 through 64. It defaults to 10. The number of parallel streams used to upload a single .csv file to an S3 bucket using S3 Multipart Upload. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html">Multipart upload overview</a>.   <code>FileTransferUploadStreams</code> accepts a value from 1 through 64. It defaults to 10.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ExplicitIds</i> This setting is only valid for a full-load migration task. Set <code>ExplicitIds</code> to <code>true</code> to have tables with <code>IDENTITY</code> columns override their auto-generated values with explicit values loaded from the source data files used to populate the tables. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EncryptionMode</i> The type of server-side encryption that you want to use for your data. This encryption type is part of the endpoint settings or the extra connections attributes for Amazon S3. You can choose either <code>SSE_S3</code> (the default) or <code>SSE_KMS</code>.  <note> For the <code>ModifyEndpoint</code> operation, you can change the existing value of the <code>EncryptionMode</code> parameter from <code>SSE_KMS</code> to <code>SSE_S3</code>. But you can’t change the existing value from <code>SSE_S3</code> to <code>SSE_KMS</code>. </note> To use <code>SSE_S3</code>, create an AWS Identity and Access Management (IAM) role with a policy that allows <code>"arn:aws:s3:::*"</code> to use the following actions: <code>"s3:PutObject", "s3:ListBucket"</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EmptyAsNull</i> A value that specifies whether AWS DMS should migrate empty CHAR and VARCHAR fields as NULL. A value of <code>true</code> sets empty CHAR and VARCHAR fields to null. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DateFormat</i> The date format that you are using. Valid values are <code>auto</code> (case-sensitive), your date format string enclosed in quotes, or NULL. If this parameter is left unset (NULL), it defaults to a format of 'YYYY-MM-DD'. Using <code>auto</code> recognizes most strings, even some that aren't supported when you use a date format string.  If your date and time values use formats different from each other, set this to <code>auto</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> The name of the Amazon Redshift data warehouse (service) that you are working with.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ConnectionTimeout</i> A value that sets the amount of time to wait (in milliseconds) before timing out, beginning from when you initially establish a connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CompUpdate</i> If you set <code>CompUpdate</code> to <code>true</code> Amazon Redshift applies automatic compression if the table is empty. This applies even if the table columns already have encodings other than <code>RAW</code>. If you set <code>CompUpdate</code> to <code>false</code>, automatic compression is disabled and existing column encodings aren't changed. The default is <code>true</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CaseSensitiveNames</i> If Amazon Redshift is configured to support case sensitive schema names, set <code>CaseSensitiveNames</code> to <code>true</code>. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BucketName</i> The name of the intermediate S3 bucket used to store .csv files before uploading data to Redshift.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BucketFolder</i> An S3 folder where the comma-separated-value (.csv) files are stored before being uploaded to the target Redshift cluster.  For full load mode, AWS DMS converts source records into .csv files and loads them to the <i>BucketFolder/TableID</i> path. AWS DMS uses the Redshift <code>COPY</code> command to upload the .csv files to the target table. The files are deleted once the <code>COPY</code> operation has finished. For more information, see <a href="https://docs.aws.amazon.com/redshift/latest/dg/r_COPY.html">COPY</a> in the <i>Amazon Redshift Database Developer Guide</i>. For change-data-capture (CDC) mode, AWS DMS creates a <i>NetChanges</i> table, and loads the .csv files to this <i>BucketFolder/NetChangesTableID</i> path.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AfterConnectScript</i> Code to run after connecting. This parameter should contain the code itself, not the name of a file containing the code.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AcceptAnyDate</i> A value that indicates to allow any date format, including invalid formats such as 00/00/00 00:00:00, to be loaded without generating an error. You can choose <code>true</code> or <code>false</code> (the default). This parameter applies only to TIMESTAMP and DATE columns. Always use ACCEPTANYDATE with the DATEFORMAT parameter. If the date format for the data doesn't match the DATEFORMAT specification, Amazon Redshift inserts a NULL value into that field. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerSecretId</i> The full ARN, partial ARN, or friendly name of the <code>SecretsManagerSecret</code> that contains the PostgreSQL endpoint connection details.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerAccessRoleArn</i> The full Amazon Resource Name (ARN) of the IAM role that specifies AWS DMS as the trusted entity and grants the required permissions to access the value in <code>SecretsManagerSecret</code>. <code>SecretsManagerSecret</code> has the value of the AWS Secrets Manager secret that allows access to the PostgreSQL endpoint. <note> You can specify one of two sets of values for these permissions. You can specify the values for this setting and <code>SecretsManagerSecretId</code>. Or you can specify clear-text values for <code>UserName</code>, <code>Password</code>, <code>ServerName</code>, and <code>Port</code>. You can't specify both. For more information on creating this <code>SecretsManagerSecret</code> and the <code>SecretsManagerAccessRoleArn</code> and <code>SecretsManagerSecretId</code> required to access it, see <a href="https://docs.aws.amazon.com/https:/docs.aws.amazon.com/dms/latest/userguide/CHAP_Security.html#security-iam-secretsmanager">Using secrets to access AWS Database Migration Service resources</a> in the <i>AWS Database Migration Service User Guide</i>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SlotName</i> Sets the name of a previously created logical replication slot for a CDC load of the PostgreSQL source instance. When used with the AWS DMS API <code>CdcStartPosition</code> request parameter, this attribute also enables using native CDC start points.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Username</i> Endpoint connection user name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerName</i> Fully qualified domain name of the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Endpoint TCP port.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Password</i> Endpoint connection password.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FailTasksOnLobTruncation</i> When set to <code>true</code>, this value causes a task to fail if the actual size of a LOB column is greater than the specified <code>LobMaxSize</code>. If task is set to Limited LOB mode and this option is set to true, the task fails instead of truncating the LOB data.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ExecuteTimeout</i> Sets the client statement timeout for the PostgreSQL instance, in seconds. The default value is 60 seconds. Example: <code>executeTimeout=100;</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DdlArtifactsSchema</i> The schema in which the operational DDL database artifacts are created. Example: <code>ddlArtifactsSchema=xyzddlschema;</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> Database name for the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxFileSize</i> Specifies the maximum size (in KB) of any .csv file used to transfer data to PostgreSQL. Example: <code>maxFileSize=512</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CaptureDdls</i> To capture DDL events, AWS DMS creates various artifacts in the PostgreSQL database when the task starts. You can later remove these artifacts. If this value is set to <code>N</code>, you don't have to create tables or triggers on the source database.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AfterConnectScript</i> For use with change data capture (CDC) only, this attribute has AWS DMS bypass foreign keys and user triggers to reduce the time it takes to bulk load data. Example: <code>afterConnectScript=SET session_replication_role='replica'</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerSecretId</i> The full ARN, partial ARN, or friendly name of the <code>SecretsManagerSecret</code> that contains the MySQL endpoint connection details.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerAccessRoleArn</i> The full Amazon Resource Name (ARN) of the IAM role that specifies AWS DMS as the trusted entity and grants the required permissions to access the value in <code>SecretsManagerSecret</code>. <code>SecretsManagerSecret</code> has the value of the AWS Secrets Manager secret that allows access to the MySQL endpoint. <note> You can specify one of two sets of values for these permissions. You can specify the values for this setting and <code>SecretsManagerSecretId</code>. Or you can specify clear-text values for <code>UserName</code>, <code>Password</code>, <code>ServerName</code>, and <code>Port</code>. You can't specify both. For more information on creating this <code>SecretsManagerSecret</code> and the <code>SecretsManagerAccessRoleArn</code> and <code>SecretsManagerSecretId</code> required to access it, see <a href="https://docs.aws.amazon.com/https:/docs.aws.amazon.com/dms/latest/userguide/CHAP_Security.html#security-iam-secretsmanager">Using secrets to access AWS Database Migration Service resources</a> in the <i>AWS Database Migration Service User Guide</i>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Username</i> Endpoint connection user name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerTimezone</i> Specifies the time zone for the source MySQL database. Example: <code>serverTimezone=US/Pacific;</code>  Note: Do not enclose time zones in single quotes.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerName</i> Fully qualified domain name of the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Endpoint TCP port.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Password</i> Endpoint connection password.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ParallelLoadThreads</i> Improves performance when loading data into the MySQL-compatible target database. Specifies how many threads to use to load the data into the MySQL-compatible target database. Setting a large number of threads can have an adverse effect on database performance, because a separate connection is required for each thread. Example: <code>parallelLoadThreads=1</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxFileSize</i> Specifies the maximum size (in KB) of any .csv file used to transfer data to a MySQL-compatible database. Example: <code>maxFileSize=512</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetDbType</i> Specifies where to migrate source tables on the target, either to a single database or multiple databases. Example: <code>targetDbType=MULTIPLE_DATABASES</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EventsPollInterval</i> Specifies how often to check the binary log for new changes/events when the database is idle. Example: <code>eventsPollInterval=5;</code>  In the example, AWS DMS checks for changes in the binary logs every five seconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> Database name for the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CleanSourceMetadataOnMismatch</i> Adjusts the behavior of DMS when migrating from an SQL Server source database that is hosted as part of an Always On availability group cluster. If you need DMS to poll all the nodes in the Always On cluster for transaction backups, set this attribute to <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AfterConnectScript</i> Specifies a script to run immediately after AWS DMS connects to the endpoint. The migration task continues running regardless if the SQL statement succeeds or fails.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerOracleAsmSecretId</i> Required only if your Oracle endpoint uses Advanced Storage Manager (ASM). The full ARN, partial ARN, or friendly name of the <code>SecretsManagerOracleAsmSecret</code> that contains the Oracle ASM connection details for the Oracle endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerOracleAsmAccessRoleArn</i> Required only if your Oracle endpoint uses Advanced Storage Manager (ASM). The full ARN of the IAM role that specifies AWS DMS as the trusted entity and grants the required permissions to access the <code>SecretsManagerOracleAsmSecret</code>. This <code>SecretsManagerOracleAsmSecret</code> has the secret value that allows access to the Oracle ASM of the endpoint. <note> You can specify one of two sets of values for these permissions. You can specify the values for this setting and <code>SecretsManagerOracleAsmSecretId</code>. Or you can specify clear-text values for <code>AsmUserName</code>, <code>AsmPassword</code>, and <code>AsmServerName</code>. You can't specify both. For more information on creating this <code>SecretsManagerOracleAsmSecret</code> and the <code>SecretsManagerOracleAsmAccessRoleArn</code> and <code>SecretsManagerOracleAsmSecretId</code> required to access it, see <a href="https://docs.aws.amazon.com/https:/docs.aws.amazon.com/dms/latest/userguide/CHAP_Security.html#security-iam-secretsmanager">Using secrets to access AWS Database Migration Service resources</a> in the <i>AWS Database Migration Service User Guide</i>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerSecretId</i> The full ARN, partial ARN, or friendly name of the <code>SecretsManagerSecret</code> that contains the Oracle endpoint connection details.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerAccessRoleArn</i> The full Amazon Resource Name (ARN) of the IAM role that specifies AWS DMS as the trusted entity and grants the required permissions to access the value in <code>SecretsManagerSecret</code>. <code>SecretsManagerSecret</code> has the value of the AWS Secrets Manager secret that allows access to the Oracle endpoint. <note> You can specify one of two sets of values for these permissions. You can specify the values for this setting and <code>SecretsManagerSecretId</code>. Or you can specify clear-text values for <code>UserName</code>, <code>Password</code>, <code>ServerName</code>, and <code>Port</code>. You can't specify both. For more information on creating this <code>SecretsManagerSecret</code> and the <code>SecretsManagerAccessRoleArn</code> and <code>SecretsManagerSecretId</code> required to access it, see <a href="https://docs.aws.amazon.com/https:/docs.aws.amazon.com/dms/latest/userguide/CHAP_Security.html#security-iam-secretsmanager">Using secrets to access AWS Database Migration Service resources</a> in the <i>AWS Database Migration Service User Guide</i>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Username</i> Endpoint connection user name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SpatialDataOptionToGeoJsonFunctionName</i> Use this attribute to convert <code>SDO_GEOMETRY</code> to <code>GEOJSON</code> format. By default, DMS calls the <code>SDO2GEOJSON</code> custom function if present and accessible. Or you can create your own custom function that mimics the operation of <code>SDOGEOJSON</code> and set <code>SpatialDataOptionToGeoJsonFunctionName</code> to call it instead. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerName</i> Fully qualified domain name of the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityDbEncryptionName</i> For an Oracle source endpoint, the name of a key used for the transparent data encryption (TDE) of the columns and tablespaces in an Oracle source database that is encrypted using TDE. The key value is the value of the <code>SecurityDbEncryption</code> setting. For more information on setting the key name value of <code>SecurityDbEncryptionName</code>, see the information and example for setting the <code>securityDbEncryptionName</code> extra connection attribute in <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.Encryption"> Supported encryption methods for using Oracle as a source for AWS DMS</a> in the <i>AWS Database Migration Service User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityDbEncryption</i> For an Oracle source endpoint, the transparent data encryption (TDE) password required by AWM DMS to access Oracle redo logs encrypted by TDE using Binary Reader. It is also the <code> <i>TDE_Password</i> </code> part of the comma-separated value you set to the <code>Password</code> request parameter when you create the endpoint. The <code>SecurityDbEncryptian</code> setting is related to this <code>SecurityDbEncryptionName</code> setting. For more information, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.Encryption"> Supported encryption methods for using Oracle as a source for AWS DMS</a> in the <i>AWS Database Migration Service User Guide</i>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RetryInterval</i> Specifies the number of seconds that the system waits before resending a query. Example: <code>retryInterval=6;</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadTableSpaceName</i> When set to <code>true</code>, this attribute supports tablespace replication.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Endpoint TCP port.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Password</i> Endpoint connection password.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberDatatypeScale</i> Specifies the number scale. You can select a scale up to 38, or you can select FLOAT. By default, the NUMBER data type is converted to precision 38, scale 10. Example: <code>numberDataTypeScale=12</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FailTasksOnLobTruncation</i> When set to <code>true</code>, this attribute causes a task to fail if the actual size of an LOB column is greater than the specified <code>LobMaxSize</code>. If a task is set to limited LOB mode and this option is set to <code>true</code>, the task fails instead of truncating the LOB data.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DirectPathParallelLoad</i> When set to <code>true</code>, this attribute specifies a parallel load when <code>useDirectPathFullLoad</code> is set to <code>Y</code>. This attribute also only applies when you use the AWS DMS parallel load feature. Note that the target table cannot have any constraints or indexes.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> Database name for the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CharLengthSemantics</i> Specifies whether the length of a character column is in bytes or in characters. To indicate that the character column length is in characters, set this attribute to <code>CHAR</code>. Otherwise, the character column length is in bytes. Example: <code>charLengthSemantics=CHAR;</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AsmUser</i> For an Oracle source endpoint, your ASM user name. You can set this value from the <code>asm_user</code> value. You set <code>asm_user</code> as part of the extra connection attribute string to access an Oracle server with Binary Reader that uses ASM. For more information, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.CDC.Configuration">Configuration for change data capture (CDC) on an Oracle source database</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AsmServer</i> For an Oracle source endpoint, your ASM server address. You can set this value from the <code>asm_server</code> value. You set <code>asm_server</code> as part of the extra connection attribute string to access an Oracle server with Binary Reader that uses ASM. For more information, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.CDC.Configuration">Configuration for change data capture (CDC) on an Oracle source database</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AsmPassword</i> For an Oracle source endpoint, your Oracle Automatic Storage Management (ASM) password. You can set this value from the <code> <i>asm_user_password</i> </code> value. You set this value as part of the comma-separated value that you set to the <code>Password</code> request parameter when you create the endpoint to access transaction logs using Binary Reader. For more information, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.CDC.Configuration">Configuration for change data capture (CDC) on an Oracle source database</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ArchivedLogsOnly</i> When this field is set to <code>Y</code>, AWS DMS only accesses the archived redo logs. If the archived redo logs are stored on Oracle ASM only, the AWS DMS user account needs to be granted ASM privileges.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DirectPathNoLog</i> When set to <code>true</code>, this attribute helps to increase the commit rate on the Oracle target database by writing directly to tables and not writing a trail to database logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableHomogenousTablespace</i> Set this attribute to enable homogenous tablespace replication and create existing tables or indexes under the same tablespace on the target.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplacePathPrefix</i> Set this attribute to true in order to use the Binary Reader to capture change data for an Amazon RDS for Oracle as the source. This setting tells DMS instance to replace the default Oracle root with the specified <code>usePathPrefix</code> setting to access the redo logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UsePathPrefix</i> Set this string attribute to the required value in order to use the Binary Reader to capture change data for an Amazon RDS for Oracle as the source. This value specifies the path prefix used to replace the default Oracle root to access the redo logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OraclePathPrefix</i> Set this string attribute to the required value in order to use the Binary Reader to capture change data for an Amazon RDS for Oracle as the source. This value specifies the default Oracle root used to access the redo logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UseAlternateFolderForOnline</i> Set this attribute to <code>true</code> in order to use the Binary Reader to capture change data for an Amazon RDS for Oracle as the source. This tells the DMS instance to use any specified prefix replacement to access all online redo logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AccessAlternateDirectly</i> Set this attribute to <code>false</code> in order to use the Binary Reader to capture change data for an Amazon RDS for Oracle as the source. This tells the DMS instance to not access redo logs through any specified path prefix replacement using direct file access.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadAheadBlocks</i> Set this attribute to change the number of read-ahead blocks that DMS configures to perform a Change Data Capture (CDC) load using Oracle Automatic Storage Management (ASM). You can specify an integer value between 1000 (the default) and 200,000 (the maximum).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ParallelAsmReadThreads</i> Set this attribute to change the number of threads that DMS configures to perform a Change Data Capture (CDC) load using Oracle Automatic Storage Management (ASM). You can specify an integer value between 2 (the default) and 8 (the maximum). Use this attribute together with the <code>readAheadBlocks</code> attribute.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowSelectNestedTables</i> Set this attribute to <code>true</code> to enable replication of Oracle tables containing columns that are nested tables or defined types.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AdditionalArchivedLogDestId</i> Set this attribute with <code>archivedLogDestId</code> in a primary/ standby setup. This attribute is useful in the case of a switchover. In this case, AWS DMS needs to know which destination to get archive redo logs from to read changes. This need arises because the previous primary instance is now a standby instance after switchover.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ArchivedLogDestId</i> Specifies the destination of the archived redo logs. The value should be the same as the DEST_ID number in the v$archived_log table. When working with multiple log destinations (DEST_ID), we recommend that you to specify an archived redo logs location identifier. Doing this improves performance by ensuring that the correct logs are accessed from the outset.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AddSupplementalLogging</i> Set this attribute to set up table-level supplemental logging for the Oracle database. This attribute enables PRIMARY KEY supplemental logging on all tables selected for a migration task. If you use this option, you still need to enable database-level supplemental logging.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerSecretId</i> The full ARN, partial ARN, or friendly name of the <code>SecretsManagerSecret</code> that contains the SAP SAE endpoint connection details.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerAccessRoleArn</i> The full Amazon Resource Name (ARN) of the IAM role that specifies AWS DMS as the trusted entity and grants the required permissions to access the value in <code>SecretsManagerSecret</code>. <code>SecretsManagerSecret</code> has the value of the AWS Secrets Manager secret that allows access to the SAP ASE endpoint. <note> You can specify one of two sets of values for these permissions. You can specify the values for this setting and <code>SecretsManagerSecretId</code>. Or you can specify clear-text values for <code>UserName</code>, <code>Password</code>, <code>ServerName</code>, and <code>Port</code>. You can't specify both. For more information on creating this <code>SecretsManagerSecret</code> and the <code>SecretsManagerAccessRoleArn</code> and <code>SecretsManagerSecretId</code> required to access it, see <a href="https://docs.aws.amazon.com/https:/docs.aws.amazon.com/dms/latest/userguide/CHAP_Security.html#security-iam-secretsmanager">Using secrets to access AWS Database Migration Service resources</a> in the <i>AWS Database Migration Service User Guide</i>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Username</i> Endpoint connection user name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerName</i> Fully qualified domain name of the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Endpoint TCP port.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Password</i> Endpoint connection password.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> Database name for the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerSecretId</i> The full ARN, partial ARN, or friendly name of the <code>SecretsManagerSecret</code> that contains the SQL Server endpoint connection details.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerAccessRoleArn</i> The full Amazon Resource Name (ARN) of the IAM role that specifies AWS DMS as the trusted entity and grants the required permissions to access the value in <code>SecretsManagerSecret</code>. <code>SecretsManagerSecret</code> has the value of the AWS Secrets Manager secret that allows access to the SQL Server endpoint. <note> You can specify one of two sets of values for these permissions. You can specify the values for this setting and <code>SecretsManagerSecretId</code>. Or you can specify clear-text values for <code>UserName</code>, <code>Password</code>, <code>ServerName</code>, and <code>Port</code>. You can't specify both. For more information on creating this <code>SecretsManagerSecret</code> and the <code>SecretsManagerAccessRoleArn</code> and <code>SecretsManagerSecretId</code> required to access it, see <a href="https://docs.aws.amazon.com/https:/docs.aws.amazon.com/dms/latest/userguide/CHAP_Security.html#security-iam-secretsmanager">Using secrets to access AWS Database Migration Service resources</a> in the <i>AWS Database Migration Service User Guide</i>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UseThirdPartyBackupDevice</i> When this attribute is set to <code>Y</code>, DMS processes third-party transaction log backups if they are created in native format.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UseBcpFullLoad</i> Use this to attribute to transfer data for full-load operations using BCP. When the target table contains an identity column that does not exist in the source table, you must disable the use BCP for loading table option.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Username</i> Endpoint connection user name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerName</i> Fully qualified domain name of the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SafeguardPolicy</i> Use this attribute to minimize the need to access the backup log and enable AWS DMS to prevent truncation using one of the following two methods.  <i>Start transactions in the database:</i> This is the default method. When this method is used, AWS DMS prevents TLOG truncation by mimicking a transaction in the database. As long as such a transaction is open, changes that appear after the transaction started aren't truncated. If you need Microsoft Replication to be enabled in your database, then you must choose this method.  <i>Exclusively use sp_repldone within a single task</i>: When this method is used, AWS DMS reads the changes and then uses sp_repldone to mark the TLOG transactions as ready for truncation. Although this method doesn't involve any transactional activities, it can only be used when Microsoft Replication isn't running. Also, when using this method, only one AWS DMS task can access the database at any given time. Therefore, if you need to run parallel AWS DMS tasks against the same database, use the default method.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadBackupOnly</i> When this attribute is set to <code>Y</code>, AWS DMS only reads changes from transaction log backups and doesn't read from the active transaction log file during ongoing replication. Setting this parameter to <code>Y</code> enables you to control active transaction log file growth during full load and ongoing replication tasks. However, it can add some source latency to ongoing replication.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>QuerySingleAlwaysOnNode</i> Cleans and recreates table metadata information on the replication instance when a mismatch occurs. An example is a situation where running an alter DDL statement on a table might result in different information about the table cached in the replication instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Password</i> Endpoint connection password.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ControlTablesFileGroup</i> Specifies a file group for the AWS DMS internal tables. When the replication task starts, all the internal AWS DMS control tables (awsdms_ apply_exception, awsdms_apply, awsdms_changes) are created for the specified file group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> Database name for the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BcpPacketSize</i> The maximum size of the packets (in bytes) used to transfer data using BCP.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Endpoint TCP port.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerSecretId</i> The full ARN, partial ARN, or friendly name of the <code>SecretsManagerSecret</code> that contains the Db2 LUW endpoint connection details.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerAccessRoleArn</i> The full Amazon Resource Name (ARN) of the IAM role that specifies AWS DMS as the trusted entity and grants the required permissions to access the value in <code>SecretsManagerSecret</code>. <code>SecretsManagerSecret</code> has the value of the AWS Secrets Manager secret that allows access to the Db2 LUW endpoint.  <note> You can specify one of two sets of values for these permissions. You can specify the values for this setting and <code>SecretsManagerSecretId</code>. Or you can specify clear-text values for <code>UserName</code>, <code>Password</code>, <code>ServerName</code>, and <code>Port</code>. You can't specify both. For more information on creating this <code>SecretsManagerSecret</code> and the <code>SecretsManagerAccessRoleArn</code> and <code>SecretsManagerSecretId</code> required to access it, see <a href="https://docs.aws.amazon.com/https:/docs.aws.amazon.com/dms/latest/userguide/CHAP_Security.html#security-iam-secretsmanager">Using secrets to access AWS Database Migration Service resources</a> in the <i>AWS Database Migration Service User Guide</i>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Username</i> Endpoint connection user name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxKBytesPerRead</i> Maximum number of bytes per read, as a NUMBER value. The default is 64 KB.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CurrentLsn</i> For ongoing replication (CDC), use CurrentLSN to specify a log sequence number (LSN) where you want the replication to start.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SetDataCaptureChanges</i> Enables ongoing replication (CDC) as a BOOLEAN value. The default is true.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerName</i> Fully qualified domain name of the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Endpoint TCP port.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Password</i> Endpoint connection password.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> Database name for the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerSecretId</i> The full ARN, partial ARN, or friendly name of the <code>SecretsManagerSecret</code> that contains the DocumentDB endpoint connection details.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerAccessRoleArn</i> The full Amazon Resource Name (ARN) of the IAM role that specifies AWS DMS as the trusted entity and grants the required permissions to access the value in <code>SecretsManagerSecret</code>. <code>SecretsManagerSecret</code> has the value of the AWS Secrets Manager secret that allows access to the DocumentDB endpoint. <note> You can specify one of two sets of values for these permissions. You can specify the values for this setting and <code>SecretsManagerSecretId</code>. Or you can specify clear-text values for <code>UserName</code>, <code>Password</code>, <code>ServerName</code>, and <code>Port</code>. You can't specify both. For more information on creating this <code>SecretsManagerSecret</code> and the <code>SecretsManagerAccessRoleArn</code> and <code>SecretsManagerSecretId</code> required to access it, see <a href="https://docs.aws.amazon.com/https:/docs.aws.amazon.com/dms/latest/userguide/CHAP_Security.html#security-iam-secretsmanager">Using secrets to access AWS Database Migration Service resources</a> in the <i>AWS Database Migration Service User Guide</i>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The AWS KMS key identifier that is used to encrypt the content on the replication instance. If you don't specify a value for the <code>KmsKeyId</code> parameter, then AWS DMS uses your default encryption key. AWS KMS creates the default encryption key for your AWS account. Your AWS account has a different default encryption key for each AWS Region.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DocsToInvestigate</i>  Indicates the number of documents to preview to determine the document organization. Use this setting when <code>NestingLevel</code> is set to <code>"one"</code>.  Must be a positive value greater than <code>0</code>. Default value is <code>1000</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ExtractDocId</i>  Specifies the document ID. Use this setting when <code>NestingLevel</code> is set to <code>"none"</code>.  Default value is <code>"false"</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NestingLevel</i>  Specifies either document or table mode.  Default value is <code>"none"</code>. Specify <code>"none"</code> to use document mode. Specify <code>"one"</code> to use table mode.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i>  The database name on the DocumentDB source endpoint. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i>  The port value for the DocumentDB source endpoint. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerName</i>  The name of the server on the DocumentDB source endpoint. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Password</i>  The password for the user account you use to access the DocumentDB source endpoint. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Username</i> The user name you use to access the DocumentDB source endpoint. <br/>        """
        pass

    def modify_event_subscription(self, SubscriptionName: str, SnsTopicArn: str=None, SourceType: str=None, EventCategories: List[String]=None, Enabled: BooleanOptional=None) -> ModifyEventSubscriptionResponse:
        r"""Modifies an existing AWS DMS event notification subscription. 

        :param self:
        :param Enabled:   A Boolean value; set to <b>true</b> to activate the subscription. <br/>EventCategories:   A list of event categories for a source type that you want to subscribe to. Use the <code>DescribeEventCategories</code> action to see a list of event categories. <br/>SourceType:   The type of AWS DMS resource that generates the events you want to subscribe to.  Valid values: replication-instance | replication-task<br/>SnsTopicArn:   The Amazon Resource Name (ARN) of the Amazon SNS topic created for event notification. The ARN is created by Amazon SNS when you create a topic and subscribe to it.<br/>SubscriptionName:  The name of the AWS DMS event notification subscription to be modified.<br/>
        :return: EventSubscription:  The modified event subscription.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Boolean value that indicates if the event subscription is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EventCategoriesList</i> A lists of event categories.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceIdsList</i> A list of source Ids for the event subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceType</i>  The type of AWS DMS resource that generates events.  Valid values: replication-instance | replication-server | security-group | replication-task<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubscriptionCreationTime</i> The time the AWS DMS event notification subscription was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the AWS DMS event notification subscription. Constraints: Can be one of the following: creating | modifying | deleting | active | no-permission | topic-not-exist The status "no-permission" indicates that AWS DMS no longer has permission to post to the SNS topic. The status "topic-not-exist" indicates that the topic was deleted after the subscription was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnsTopicArn</i> The topic ARN of the AWS DMS event notification subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustSubscriptionId</i> The AWS DMS event notification subscription Id.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomerAwsId</i> The AWS customer account associated with the AWS DMS event notification subscription.<br/>        """
        pass

    def modify_replication_instance(self, ReplicationInstanceArn: str, AllocatedStorage: int=None, ApplyImmediately: Boolean=None, ReplicationInstanceClass: str=None, VpcSecurityGroupIds: List[String]=None, PreferredMaintenanceWindow: str=None, MultiAZ: BooleanOptional=None, EngineVersion: str=None, AllowMajorVersionUpgrade: Boolean=None, AutoMinorVersionUpgrade: BooleanOptional=None, ReplicationInstanceIdentifier: str=None) -> ModifyReplicationInstanceResponse:
        r"""Modifies the replication instance to apply new settings. You can change one or more parameters by specifying these parameters and the new values in the request. Some settings are applied during the maintenance window. <p/>

        :param self:
        :param ReplicationInstanceIdentifier:  The replication instance identifier. This parameter is stored as a lowercase string.<br/>AutoMinorVersionUpgrade:  A value that indicates that minor version upgrades are applied automatically to the replication instance during the maintenance window. Changing this parameter doesn't result in an outage, except in the case described following. The change is asynchronously applied as soon as possible.  An outage does result if these factors apply:  <ul> <li> This parameter is set to <code>true</code> during the maintenance window. </li> <li> A newer minor version is available.  </li> <li> AWS DMS has enabled automatic patching for the given engine version.  </li> </ul><br/>AllowMajorVersionUpgrade:  Indicates that major version upgrades are allowed. Changing this parameter does not result in an outage, and the change is asynchronously applied as soon as possible. This parameter must be set to <code>true</code> when specifying a value for the <code>EngineVersion</code> parameter that is a different major version than the replication instance's current version.<br/>EngineVersion:  The engine version number of the replication instance. When modifying a major engine version of an instance, also set <code>AllowMajorVersionUpgrade</code> to <code>true</code>.<br/>MultiAZ:   Specifies whether the replication instance is a Multi-AZ deployment. You can't set the <code>AvailabilityZone</code> parameter if the Multi-AZ parameter is set to <code>true</code>. <br/>PreferredMaintenanceWindow:  The weekly time range (in UTC) during which system maintenance can occur, which might result in an outage. Changing this parameter does not result in an outage, except in the following situation, and the change is asynchronously applied as soon as possible. If moving this window to the current time, there must be at least 30 minutes between the current time and end of the window to ensure pending changes are applied. Default: Uses existing setting Format: ddd:hh24:mi-ddd:hh24:mi Valid Days: Mon | Tue | Wed | Thu | Fri | Sat | Sun Constraints: Must be at least 30 minutes<br/>VpcSecurityGroupIds:   Specifies the VPC security group to be used with the replication instance. The VPC security group must work with the VPC containing the replication instance. <br/>ReplicationInstanceClass:  The compute and memory capacity of the replication instance as defined for the specified replication instance class. For example to specify the instance class dms.c4.large, set this parameter to <code>"dms.c4.large"</code>. For more information on the settings and capacities for the available replication instance classes, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_ReplicationInstance.html#CHAP_ReplicationInstance.InDepth"> Selecting the right AWS DMS replication instance for your migration</a>. <br/>ApplyImmediately:  Indicates whether the changes should be applied immediately or during the next maintenance window.<br/>AllocatedStorage:  The amount of storage (in gigabytes) to be allocated for the replication instance.<br/>ReplicationInstanceArn:  The Amazon Resource Name (ARN) of the replication instance.<br/>
        :return: ReplicationInstance:  The modified replication instance.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DnsNameServers</i> The DNS name servers supported for the replication instance to access your on-premise source or target database.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FreeUntil</i>  The expiration date of the free replication instance that is part of the Free DMS program. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecondaryAvailabilityZone</i> The Availability Zone of the standby replication instance in a Multi-AZ deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PubliclyAccessible</i>  Specifies the accessibility options for the replication instance. A value of <code>true</code> represents an instance with a public IP address. A value of <code>false</code> represents an instance with a private IP address. The default value is <code>true</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationInstancePrivateIpAddresses</i> One or more private IP addresses for the replication instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationInstancePublicIpAddresses</i> One or more public IP addresses for the replication instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationInstancePrivateIpAddress</i> The private IP address of the replication instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationInstancePublicIpAddress</i> The public IP address of the replication instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationInstanceArn</i> The Amazon Resource Name (ARN) of the replication instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> An AWS KMS key identifier that is used to encrypt the data on the replication instance. If you don't specify a value for the <code>KmsKeyId</code> parameter, then AWS DMS uses your default encryption key. AWS KMS creates the default encryption key for your AWS account. Your AWS account has a different default encryption key for each AWS Region.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoMinorVersionUpgrade</i> Boolean value indicating if minor version upgrades will be automatically applied to the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> The engine version number of the replication instance. If an engine version number is not specified when a replication instance is created, the default is the latest engine version available. When modifying a major engine version of an instance, also set <code>AllowMajorVersionUpgrade</code> to <code>true</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiAZ</i>  Specifies whether the replication instance is a Multi-AZ deployment. You can't set the <code>AvailabilityZone</code> parameter if the Multi-AZ parameter is set to <code>true</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingModifiedValues</i> The pending modification values.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingModifiedValues</b>: The pending modification values.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i> The maintenance window times for the replication instance. Any pending upgrades to the replication instance are performed during this time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationSubnetGroup</i> The subnet group for the replication instance.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ReplicationSubnetGroup</b>: The subnet group for the replication instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZone</i> The Availability Zone for the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcSecurityGroups</i> The VPC security group for the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceCreateTime</i> The time the replication instance was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllocatedStorage</i> The amount of storage (in gigabytes) that is allocated for the replication instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationInstanceStatus</i> The status of the replication instance. The possible return values include: <ul> <li>  <code>"available"</code>  </li> <li>  <code>"creating"</code>  </li> <li>  <code>"deleted"</code>  </li> <li>  <code>"deleting"</code>  </li> <li>  <code>"failed"</code>  </li> <li>  <code>"modifying"</code>  </li> <li>  <code>"upgrading"</code>  </li> <li>  <code>"rebooting"</code>  </li> <li>  <code>"resetting-master-credentials"</code>  </li> <li>  <code>"storage-full"</code>  </li> <li>  <code>"incompatible-credentials"</code>  </li> <li>  <code>"incompatible-network"</code>  </li> <li>  <code>"maintenance"</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationInstanceClass</i> The compute and memory capacity of the replication instance as defined for the specified replication instance class. It is a required parameter, although a defualt value is pre-selected in the DMS console. For more information on the settings and capacities for the available replication instance classes, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_ReplicationInstance.html#CHAP_ReplicationInstance.InDepth"> Selecting the right AWS DMS replication instance for your migration</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationInstanceIdentifier</i> The replication instance identifier is a required parameter. This parameter is stored as a lowercase string. Constraints: <ul> <li> Must contain 1-63 alphanumeric characters or hyphens. </li> <li> First character must be a letter. </li> <li> Cannot end with a hyphen or contain two consecutive hyphens. </li> </ul> Example: <code>myrepinstance</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Subnets</i> The subnets that are in the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetGroupStatus</i> The status of the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The ID of the VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationSubnetGroupDescription</i> A description for the replication subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationSubnetGroupIdentifier</i> The identifier of the replication instance subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> The engine version number of the replication instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiAZ</i>  Specifies whether the replication instance is a Multi-AZ deployment. You can't set the <code>AvailabilityZone</code> parameter if the Multi-AZ parameter is set to <code>true</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AllocatedStorage</i> The amount of storage (in gigabytes) that is allocated for the replication instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationInstanceClass</i> The compute and memory capacity of the replication instance as defined for the specified replication instance class. For more information on the settings and capacities for the available replication instance classes, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_ReplicationInstance.html#CHAP_ReplicationInstance.InDepth"> Selecting the right AWS DMS replication instance for your migration</a>. <br/>        """
        pass

    def modify_replication_subnet_group(self, SubnetIds: List[String], ReplicationSubnetGroupIdentifier: str, ReplicationSubnetGroupDescription: str=None) -> ModifyReplicationSubnetGroupResponse:
        r"""Modifies the settings for the specified replication subnet group.

        :param self:
        :param SubnetIds:  A list of subnet IDs.<br/>ReplicationSubnetGroupDescription:  A description for the replication instance subnet group.<br/>ReplicationSubnetGroupIdentifier:  The name of the replication instance subnet group.<br/>
        :return: ReplicationSubnetGroup:  The modified replication subnet group.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Subnets</i> The subnets that are in the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetGroupStatus</i> The status of the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The ID of the VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationSubnetGroupDescription</i> A description for the replication subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationSubnetGroupIdentifier</i> The identifier of the replication instance subnet group.<br/>        """
        pass

    def modify_replication_task(self, ReplicationTaskArn: str, ReplicationTaskIdentifier: str=None, MigrationType: str=None, TableMappings: str=None, ReplicationTaskSettings: str=None, CdcStartTime: TStamp=None, CdcStartPosition: str=None, CdcStopPosition: str=None, TaskData: str=None) -> ModifyReplicationTaskResponse:
        r"""Modifies the specified replication task. You can't modify the task endpoints. The task must be stopped before you can modify it.  For more information about AWS DMS tasks, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.html">Working with Migration Tasks</a> in the <i>AWS Database Migration Service User Guide</i>.

        :param self:
        :param TaskData:  Supplemental information that the task requires to migrate the data for certain source and target endpoints. For more information, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.TaskData.html">Specifying Supplemental Data for Task Settings</a> in the <i>AWS Database Migration Service User Guide.</i> <br/>CdcStopPosition:  Indicates when you want a change data capture (CDC) operation to stop. The value can be either server time or commit time. Server time example: --cdc-stop-position “server_time:2018-02-09T12:12:12” Commit time example: --cdc-stop-position “commit_time: 2018-02-09T12:12:12 “<br/>CdcStartPosition:  Indicates when you want a change data capture (CDC) operation to start. Use either CdcStartPosition or CdcStartTime to specify when you want a CDC operation to start. Specifying both values results in an error.  The value can be in date, checkpoint, or LSN/SCN format. Date Example: --cdc-start-position “2018-03-08T12:12:12” Checkpoint Example: --cdc-start-position "checkpoint:V1#27#mysql-bin-changelog.157832:1975:-1:2002:677883278264080:mysql-bin-changelog.157832:1876#0#0#*#0#93" LSN Example: --cdc-start-position “mysql-bin-changelog.000024:373” <note> When you use this task setting with a source PostgreSQL database, a logical replication slot should already be created and associated with the source endpoint. You can verify this by setting the <code>slotName</code> extra connection attribute to the name of this logical replication slot. For more information, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.PostgreSQL.html#CHAP_Source.PostgreSQL.ConnectionAttrib">Extra Connection Attributes When Using PostgreSQL as a Source for AWS DMS</a>. </note><br/>CdcStartTime:  Indicates the start time for a change data capture (CDC) operation. Use either CdcStartTime or CdcStartPosition to specify when you want a CDC operation to start. Specifying both values results in an error. Timestamp Example: --cdc-start-time “2018-03-08T12:12:12”<br/>ReplicationTaskSettings:  JSON file that contains settings for the task, such as task metadata settings.<br/>TableMappings:  When using the AWS CLI or boto3, provide the path of the JSON file that contains the table mappings. Precede the path with <code>file://</code>. For example, <code>--table-mappings file://mappingfile.json</code>. When working with the DMS API, provide the JSON as the parameter value. <br/>MigrationType:  The migration type. Valid values: <code>full-load</code> | <code>cdc</code> | <code>full-load-and-cdc</code> <br/>ReplicationTaskIdentifier:  The replication task identifier. Constraints: <ul> <li> Must contain 1-255 alphanumeric characters or hyphens. </li> <li> First character must be a letter. </li> <li> Cannot end with a hyphen or contain two consecutive hyphens. </li> </ul><br/>ReplicationTaskArn:  The Amazon Resource Name (ARN) of the replication task.<br/>
        :return: ReplicationTask:  The replication task that was modified.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetReplicationInstanceArn</i> The ARN of the replication instance to which this task is moved in response to running the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_MoveReplicationTask.html"> <code>MoveReplicationTask</code> </a> operation. Otherwise, this response parameter isn't a member of the <code>ReplicationTask</code> object.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TaskData</i> Supplemental information that the task requires to migrate the data for certain source and target endpoints. For more information, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.TaskData.html">Specifying Supplemental Data for Task Settings</a> in the <i>AWS Database Migration Service User Guide.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationTaskStats</i> The statistics for the task, including elapsed time, tables loaded, and table errors.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ReplicationTaskStats</b>: The statistics for the task, including elapsed time, tables loaded, and table errors.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationTaskArn</i> The Amazon Resource Name (ARN) of the replication task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecoveryCheckpoint</i> Indicates the last checkpoint that occurred during a change data capture (CDC) operation. You can provide this value to the <code>CdcStartPosition</code> parameter to start a CDC operation that begins at that checkpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CdcStopPosition</i> Indicates when you want a change data capture (CDC) operation to stop. The value can be either server time or commit time. Server time example: --cdc-stop-position “server_time:2018-02-09T12:12:12” Commit time example: --cdc-stop-position “commit_time: 2018-02-09T12:12:12 “<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CdcStartPosition</i> Indicates when you want a change data capture (CDC) operation to start. Use either <code>CdcStartPosition</code> or <code>CdcStartTime</code> to specify when you want the CDC operation to start. Specifying both values results in an error. The value can be in date, checkpoint, or LSN/SCN format. Date Example: --cdc-start-position “2018-03-08T12:12:12” Checkpoint Example: --cdc-start-position "checkpoint:V1#27#mysql-bin-changelog.157832:1975:-1:2002:677883278264080:mysql-bin-changelog.157832:1876#0#0#*#0#93" LSN Example: --cdc-start-position “mysql-bin-changelog.000024:373”<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationTaskStartDate</i> The date the replication task is scheduled to start.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationTaskCreationDate</i> The date the replication task was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StopReason</i> The reason the replication task was stopped. This response parameter can return one of the following values: <ul> <li>  <code>"STOP_REASON_FULL_LOAD_COMPLETED"</code> – Full-load migration completed. </li> <li>  <code>"STOP_REASON_CACHED_CHANGES_APPLIED"</code> – Change data capture (CDC) load completed. </li> <li>  <code>"STOP_REASON_CACHED_CHANGES_NOT_APPLIED"</code> – In a full-load and CDC migration, the full load stopped as specified before starting the CDC migration. </li> <li>  <code>"STOP_REASON_SERVER_TIME"</code> – The migration stopped at the specified server time. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastFailureMessage</i> The last error (failure) message generated for the replication task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the replication task. This response parameter can return one of the following values: <ul> <li>  <code>"moving"</code> – The task is being moved in response to running the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_MoveReplicationTask.html"> <code>MoveReplicationTask</code> </a> operation. </li> <li>  <code>"creating"</code> – The task is being created in response to running the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_CreateReplicationTask.html"> <code>CreateReplicationTask</code> </a> operation. </li> <li>  <code>"deleting"</code> – The task is being deleted in response to running the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_DeleteReplicationTask.html"> <code>DeleteReplicationTask</code> </a> operation. </li> <li>  <code>"failed"</code> – The task failed to successfully complete the database migration in response to running the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StartReplicationTask.html"> <code>StartReplicationTask</code> </a> operation. </li> <li>  <code>"failed-move"</code> – The task failed to move in response to running the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_MoveReplicationTask.html"> <code>MoveReplicationTask</code> </a> operation. </li> <li>  <code>"modifying"</code> – The task definition is being modified in response to running the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_ModifyReplicationTask.html"> <code>ModifyReplicationTask</code> </a> operation. </li> <li>  <code>"ready"</code> – The task is in a <code>ready</code> state where it can respond to other task operations, such as <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StartReplicationTask.html"> <code>StartReplicationTask</code> </a> or <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_DeleteReplicationTask.html"> <code>DeleteReplicationTask</code> </a>.  </li> <li>  <code>"running"</code> – The task is performing a database migration in response to running the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StartReplicationTask.html"> <code>StartReplicationTask</code> </a> operation. </li> <li>  <code>"starting"</code> – The task is preparing to perform a database migration in response to running the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StartReplicationTask.html"> <code>StartReplicationTask</code> </a> operation. </li> <li>  <code>"stopped"</code> – The task has stopped in response to running the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StopReplicationTask.html"> <code>StopReplicationTask</code> </a> operation. </li> <li>  <code>"stopping"</code> – The task is preparing to stop in response to running the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StopReplicationTask.html"> <code>StopReplicationTask</code> </a> operation. </li> <li>  <code>"testing"</code> – The database migration specified for this task is being tested in response to running either the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StartReplicationTaskAssessmentRun.html"> <code>StartReplicationTaskAssessmentRun</code> </a> or the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StartReplicationTaskAssessment.html"> <code>StartReplicationTaskAssessment</code> </a> operation. <note>  <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StartReplicationTaskAssessmentRun.html"> <code>StartReplicationTaskAssessmentRun</code> </a> is an improved premigration task assessment operation. The <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StartReplicationTaskAssessment.html"> <code>StartReplicationTaskAssessment</code> </a> operation assesses data type compatibility only between the source and target database of a given migration task. In contrast, <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StartReplicationTaskAssessmentRun.html"> <code>StartReplicationTaskAssessmentRun</code> </a> enables you to specify a variety of premigration task assessments in addition to data type compatibility. These assessments include ones for the validity of primary key definitions and likely issues with database migration performance, among others. </note> </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationTaskSettings</i> The settings for the replication task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TableMappings</i> Table mappings specified in the task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MigrationType</i> The type of migration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationInstanceArn</i> The ARN of the replication instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetEndpointArn</i> The ARN that uniquely identifies the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceEndpointArn</i> The Amazon Resource Name (ARN) that uniquely identifies the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationTaskIdentifier</i> The user-assigned replication task identifier or name. Constraints: <ul> <li> Must contain 1-255 alphanumeric characters or hyphens. </li> <li> First character must be a letter. </li> <li> Cannot end with a hyphen or contain two consecutive hyphens. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FullLoadFinishDate</i> The date the replication task full load was completed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FullLoadStartDate</i> The date the replication task full load was started.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StopDate</i> The date the replication task was stopped.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StartDate</i> The date the replication task was started either with a fresh start or a resume. For more information, see <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StartReplicationTask.html#DMS-StartReplicationTask-request-StartReplicationTaskType">StartReplicationTaskType</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FreshStartDate</i> The date the replication task was started either with a fresh start or a target reload.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TablesErrored</i> The number of errors that have occurred during this task.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TablesQueued</i> The number of tables queued for this task.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TablesLoading</i> The number of tables currently loading for this task.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TablesLoaded</i> The number of tables loaded for this task.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ElapsedTimeMillis</i> The elapsed time of the task, in milliseconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FullLoadProgressPercent</i> The percent complete for the full load migration task.<br/>        """
        pass

    def move_replication_task(self, TargetReplicationInstanceArn: str, ReplicationTaskArn: str) -> MoveReplicationTaskResponse:
        r"""Moves a replication task from its current replication instance to a different target replication instance using the specified parameters. The target replication instance must be created with the same or later AWS DMS version as the current replication instance.

        :param self:
        :param TargetReplicationInstanceArn:  The ARN of the replication instance where you want to move the task to.<br/>ReplicationTaskArn:  The Amazon Resource Name (ARN) of the task that you want to move.<br/>
        :return: ReplicationTask:  The replication task that was moved.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetReplicationInstanceArn</i> The ARN of the replication instance to which this task is moved in response to running the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_MoveReplicationTask.html"> <code>MoveReplicationTask</code> </a> operation. Otherwise, this response parameter isn't a member of the <code>ReplicationTask</code> object.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TaskData</i> Supplemental information that the task requires to migrate the data for certain source and target endpoints. For more information, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.TaskData.html">Specifying Supplemental Data for Task Settings</a> in the <i>AWS Database Migration Service User Guide.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationTaskStats</i> The statistics for the task, including elapsed time, tables loaded, and table errors.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ReplicationTaskStats</b>: The statistics for the task, including elapsed time, tables loaded, and table errors.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationTaskArn</i> The Amazon Resource Name (ARN) of the replication task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecoveryCheckpoint</i> Indicates the last checkpoint that occurred during a change data capture (CDC) operation. You can provide this value to the <code>CdcStartPosition</code> parameter to start a CDC operation that begins at that checkpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CdcStopPosition</i> Indicates when you want a change data capture (CDC) operation to stop. The value can be either server time or commit time. Server time example: --cdc-stop-position “server_time:2018-02-09T12:12:12” Commit time example: --cdc-stop-position “commit_time: 2018-02-09T12:12:12 “<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CdcStartPosition</i> Indicates when you want a change data capture (CDC) operation to start. Use either <code>CdcStartPosition</code> or <code>CdcStartTime</code> to specify when you want the CDC operation to start. Specifying both values results in an error. The value can be in date, checkpoint, or LSN/SCN format. Date Example: --cdc-start-position “2018-03-08T12:12:12” Checkpoint Example: --cdc-start-position "checkpoint:V1#27#mysql-bin-changelog.157832:1975:-1:2002:677883278264080:mysql-bin-changelog.157832:1876#0#0#*#0#93" LSN Example: --cdc-start-position “mysql-bin-changelog.000024:373”<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationTaskStartDate</i> The date the replication task is scheduled to start.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationTaskCreationDate</i> The date the replication task was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StopReason</i> The reason the replication task was stopped. This response parameter can return one of the following values: <ul> <li>  <code>"STOP_REASON_FULL_LOAD_COMPLETED"</code> – Full-load migration completed. </li> <li>  <code>"STOP_REASON_CACHED_CHANGES_APPLIED"</code> – Change data capture (CDC) load completed. </li> <li>  <code>"STOP_REASON_CACHED_CHANGES_NOT_APPLIED"</code> – In a full-load and CDC migration, the full load stopped as specified before starting the CDC migration. </li> <li>  <code>"STOP_REASON_SERVER_TIME"</code> – The migration stopped at the specified server time. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastFailureMessage</i> The last error (failure) message generated for the replication task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the replication task. This response parameter can return one of the following values: <ul> <li>  <code>"moving"</code> – The task is being moved in response to running the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_MoveReplicationTask.html"> <code>MoveReplicationTask</code> </a> operation. </li> <li>  <code>"creating"</code> – The task is being created in response to running the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_CreateReplicationTask.html"> <code>CreateReplicationTask</code> </a> operation. </li> <li>  <code>"deleting"</code> – The task is being deleted in response to running the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_DeleteReplicationTask.html"> <code>DeleteReplicationTask</code> </a> operation. </li> <li>  <code>"failed"</code> – The task failed to successfully complete the database migration in response to running the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StartReplicationTask.html"> <code>StartReplicationTask</code> </a> operation. </li> <li>  <code>"failed-move"</code> – The task failed to move in response to running the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_MoveReplicationTask.html"> <code>MoveReplicationTask</code> </a> operation. </li> <li>  <code>"modifying"</code> – The task definition is being modified in response to running the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_ModifyReplicationTask.html"> <code>ModifyReplicationTask</code> </a> operation. </li> <li>  <code>"ready"</code> – The task is in a <code>ready</code> state where it can respond to other task operations, such as <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StartReplicationTask.html"> <code>StartReplicationTask</code> </a> or <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_DeleteReplicationTask.html"> <code>DeleteReplicationTask</code> </a>.  </li> <li>  <code>"running"</code> – The task is performing a database migration in response to running the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StartReplicationTask.html"> <code>StartReplicationTask</code> </a> operation. </li> <li>  <code>"starting"</code> – The task is preparing to perform a database migration in response to running the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StartReplicationTask.html"> <code>StartReplicationTask</code> </a> operation. </li> <li>  <code>"stopped"</code> – The task has stopped in response to running the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StopReplicationTask.html"> <code>StopReplicationTask</code> </a> operation. </li> <li>  <code>"stopping"</code> – The task is preparing to stop in response to running the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StopReplicationTask.html"> <code>StopReplicationTask</code> </a> operation. </li> <li>  <code>"testing"</code> – The database migration specified for this task is being tested in response to running either the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StartReplicationTaskAssessmentRun.html"> <code>StartReplicationTaskAssessmentRun</code> </a> or the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StartReplicationTaskAssessment.html"> <code>StartReplicationTaskAssessment</code> </a> operation. <note>  <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StartReplicationTaskAssessmentRun.html"> <code>StartReplicationTaskAssessmentRun</code> </a> is an improved premigration task assessment operation. The <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StartReplicationTaskAssessment.html"> <code>StartReplicationTaskAssessment</code> </a> operation assesses data type compatibility only between the source and target database of a given migration task. In contrast, <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StartReplicationTaskAssessmentRun.html"> <code>StartReplicationTaskAssessmentRun</code> </a> enables you to specify a variety of premigration task assessments in addition to data type compatibility. These assessments include ones for the validity of primary key definitions and likely issues with database migration performance, among others. </note> </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationTaskSettings</i> The settings for the replication task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TableMappings</i> Table mappings specified in the task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MigrationType</i> The type of migration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationInstanceArn</i> The ARN of the replication instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetEndpointArn</i> The ARN that uniquely identifies the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceEndpointArn</i> The Amazon Resource Name (ARN) that uniquely identifies the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationTaskIdentifier</i> The user-assigned replication task identifier or name. Constraints: <ul> <li> Must contain 1-255 alphanumeric characters or hyphens. </li> <li> First character must be a letter. </li> <li> Cannot end with a hyphen or contain two consecutive hyphens. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FullLoadFinishDate</i> The date the replication task full load was completed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FullLoadStartDate</i> The date the replication task full load was started.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StopDate</i> The date the replication task was stopped.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StartDate</i> The date the replication task was started either with a fresh start or a resume. For more information, see <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StartReplicationTask.html#DMS-StartReplicationTask-request-StartReplicationTaskType">StartReplicationTaskType</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FreshStartDate</i> The date the replication task was started either with a fresh start or a target reload.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TablesErrored</i> The number of errors that have occurred during this task.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TablesQueued</i> The number of tables queued for this task.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TablesLoading</i> The number of tables currently loading for this task.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TablesLoaded</i> The number of tables loaded for this task.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ElapsedTimeMillis</i> The elapsed time of the task, in milliseconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FullLoadProgressPercent</i> The percent complete for the full load migration task.<br/>        """
        pass

    def reboot_replication_instance(self, ReplicationInstanceArn: str, ForceFailover: BooleanOptional=None) -> RebootReplicationInstanceResponse:
        r"""Reboots a replication instance. Rebooting results in a momentary outage, until the replication instance becomes available again.

        :param self:
        :param ForceFailover:  If this parameter is <code>true</code>, the reboot is conducted through a Multi-AZ failover. (If the instance isn't configured for Multi-AZ, then you can't specify <code>true</code>.)<br/>ReplicationInstanceArn:  The Amazon Resource Name (ARN) of the replication instance.<br/>
        :return: ReplicationInstance:  The replication instance that is being rebooted. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DnsNameServers</i> The DNS name servers supported for the replication instance to access your on-premise source or target database.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FreeUntil</i>  The expiration date of the free replication instance that is part of the Free DMS program. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecondaryAvailabilityZone</i> The Availability Zone of the standby replication instance in a Multi-AZ deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PubliclyAccessible</i>  Specifies the accessibility options for the replication instance. A value of <code>true</code> represents an instance with a public IP address. A value of <code>false</code> represents an instance with a private IP address. The default value is <code>true</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationInstancePrivateIpAddresses</i> One or more private IP addresses for the replication instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationInstancePublicIpAddresses</i> One or more public IP addresses for the replication instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationInstancePrivateIpAddress</i> The private IP address of the replication instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationInstancePublicIpAddress</i> The public IP address of the replication instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationInstanceArn</i> The Amazon Resource Name (ARN) of the replication instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> An AWS KMS key identifier that is used to encrypt the data on the replication instance. If you don't specify a value for the <code>KmsKeyId</code> parameter, then AWS DMS uses your default encryption key. AWS KMS creates the default encryption key for your AWS account. Your AWS account has a different default encryption key for each AWS Region.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoMinorVersionUpgrade</i> Boolean value indicating if minor version upgrades will be automatically applied to the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> The engine version number of the replication instance. If an engine version number is not specified when a replication instance is created, the default is the latest engine version available. When modifying a major engine version of an instance, also set <code>AllowMajorVersionUpgrade</code> to <code>true</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiAZ</i>  Specifies whether the replication instance is a Multi-AZ deployment. You can't set the <code>AvailabilityZone</code> parameter if the Multi-AZ parameter is set to <code>true</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingModifiedValues</i> The pending modification values.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingModifiedValues</b>: The pending modification values.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i> The maintenance window times for the replication instance. Any pending upgrades to the replication instance are performed during this time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationSubnetGroup</i> The subnet group for the replication instance.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ReplicationSubnetGroup</b>: The subnet group for the replication instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZone</i> The Availability Zone for the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcSecurityGroups</i> The VPC security group for the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceCreateTime</i> The time the replication instance was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllocatedStorage</i> The amount of storage (in gigabytes) that is allocated for the replication instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationInstanceStatus</i> The status of the replication instance. The possible return values include: <ul> <li>  <code>"available"</code>  </li> <li>  <code>"creating"</code>  </li> <li>  <code>"deleted"</code>  </li> <li>  <code>"deleting"</code>  </li> <li>  <code>"failed"</code>  </li> <li>  <code>"modifying"</code>  </li> <li>  <code>"upgrading"</code>  </li> <li>  <code>"rebooting"</code>  </li> <li>  <code>"resetting-master-credentials"</code>  </li> <li>  <code>"storage-full"</code>  </li> <li>  <code>"incompatible-credentials"</code>  </li> <li>  <code>"incompatible-network"</code>  </li> <li>  <code>"maintenance"</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationInstanceClass</i> The compute and memory capacity of the replication instance as defined for the specified replication instance class. It is a required parameter, although a defualt value is pre-selected in the DMS console. For more information on the settings and capacities for the available replication instance classes, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_ReplicationInstance.html#CHAP_ReplicationInstance.InDepth"> Selecting the right AWS DMS replication instance for your migration</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationInstanceIdentifier</i> The replication instance identifier is a required parameter. This parameter is stored as a lowercase string. Constraints: <ul> <li> Must contain 1-63 alphanumeric characters or hyphens. </li> <li> First character must be a letter. </li> <li> Cannot end with a hyphen or contain two consecutive hyphens. </li> </ul> Example: <code>myrepinstance</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Subnets</i> The subnets that are in the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetGroupStatus</i> The status of the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The ID of the VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationSubnetGroupDescription</i> A description for the replication subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationSubnetGroupIdentifier</i> The identifier of the replication instance subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> The engine version number of the replication instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiAZ</i>  Specifies whether the replication instance is a Multi-AZ deployment. You can't set the <code>AvailabilityZone</code> parameter if the Multi-AZ parameter is set to <code>true</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AllocatedStorage</i> The amount of storage (in gigabytes) that is allocated for the replication instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationInstanceClass</i> The compute and memory capacity of the replication instance as defined for the specified replication instance class. For more information on the settings and capacities for the available replication instance classes, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_ReplicationInstance.html#CHAP_ReplicationInstance.InDepth"> Selecting the right AWS DMS replication instance for your migration</a>. <br/>        """
        pass

    def refresh_schemas(self, ReplicationInstanceArn: str, EndpointArn: str) -> RefreshSchemasResponse:
        r"""Populates the schema for the specified endpoint. This is an asynchronous operation and can take several minutes. You can check the status of this operation by calling the DescribeRefreshSchemasStatus operation.

        :param self:
        :param ReplicationInstanceArn:  The Amazon Resource Name (ARN) of the replication instance.<br/>EndpointArn:  The Amazon Resource Name (ARN) string that uniquely identifies the endpoint.<br/>
        :return: RefreshSchemasStatus:  The status of the refreshed schema.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastFailureMessage</i> The last failure message for the schema.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastRefreshDate</i> The date the schema was last refreshed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the schema.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationInstanceArn</i> The Amazon Resource Name (ARN) of the replication instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointArn</i> The Amazon Resource Name (ARN) string that uniquely identifies the endpoint.<br/>        """
        pass

    def reload_tables(self, TablesToReload: List[TableToReload], ReplicationTaskArn: str, ReloadOption: str=None) -> ReloadTablesResponse:
        r"""Reloads the target database table with the source data. 

        :param self:
        :param ReloadOption:  Options for reload. Specify <code>data-reload</code> to reload the data and re-validate it if validation is enabled. Specify <code>validate-only</code> to re-validate the table. This option applies only when validation is enabled for the task.  Valid values: data-reload, validate-only Default value is data-reload.<br/>TablesToReload:  The name and schema of the table to be reloaded. <br/>ReplicationTaskArn:  The Amazon Resource Name (ARN) of the replication task. <br/>
        :return: ReplicationTaskArn:  The Amazon Resource Name (ARN) of the replication task. <br/>        """
        pass

    def remove_tags_from_resource(self, TagKeys: List[String], ResourceArn: str) -> RemoveTagsFromResourceResponse:
        r"""Removes metadata tags from an AWS DMS resource, including replication instance, endpoint, security group, and migration task. For more information, see <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_Tag.html"> <code>Tag</code> </a> data type description.

        :param self:
        :param TagKeys:  The tag key (name) of the tag to be removed.<br/>ResourceArn:  An AWS DMS resource from which you want to remove tag(s). The value for this parameter is an Amazon Resource Name (ARN).<br/>
        :return:         """
        pass

    def start_replication_task(self, StartReplicationTaskType: str, ReplicationTaskArn: str, CdcStartTime: TStamp=None, CdcStartPosition: str=None, CdcStopPosition: str=None) -> StartReplicationTaskResponse:
        r"""Starts the replication task. For more information about AWS DMS tasks, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.html">Working with Migration Tasks </a> in the <i>AWS Database Migration Service User Guide.</i> 

        :param self:
        :param CdcStopPosition:  Indicates when you want a change data capture (CDC) operation to stop. The value can be either server time or commit time. Server time example: --cdc-stop-position “server_time:2018-02-09T12:12:12” Commit time example: --cdc-stop-position “commit_time: 2018-02-09T12:12:12 “<br/>CdcStartPosition:  Indicates when you want a change data capture (CDC) operation to start. Use either CdcStartPosition or CdcStartTime to specify when you want a CDC operation to start. Specifying both values results in an error.  The value can be in date, checkpoint, or LSN/SCN format. Date Example: --cdc-start-position “2018-03-08T12:12:12” Checkpoint Example: --cdc-start-position "checkpoint:V1#27#mysql-bin-changelog.157832:1975:-1:2002:677883278264080:mysql-bin-changelog.157832:1876#0#0#*#0#93" LSN Example: --cdc-start-position “mysql-bin-changelog.000024:373” <note> When you use this task setting with a source PostgreSQL database, a logical replication slot should already be created and associated with the source endpoint. You can verify this by setting the <code>slotName</code> extra connection attribute to the name of this logical replication slot. For more information, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.PostgreSQL.html#CHAP_Source.PostgreSQL.ConnectionAttrib">Extra Connection Attributes When Using PostgreSQL as a Source for AWS DMS</a>. </note><br/>CdcStartTime:  Indicates the start time for a change data capture (CDC) operation. Use either CdcStartTime or CdcStartPosition to specify when you want a CDC operation to start. Specifying both values results in an error. Timestamp Example: --cdc-start-time “2018-03-08T12:12:12”<br/>StartReplicationTaskType:  A type of replication task.<br/>ReplicationTaskArn:  The Amazon Resource Name (ARN) of the replication task to be started.<br/>
        :return: ReplicationTask:  The replication task started.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetReplicationInstanceArn</i> The ARN of the replication instance to which this task is moved in response to running the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_MoveReplicationTask.html"> <code>MoveReplicationTask</code> </a> operation. Otherwise, this response parameter isn't a member of the <code>ReplicationTask</code> object.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TaskData</i> Supplemental information that the task requires to migrate the data for certain source and target endpoints. For more information, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.TaskData.html">Specifying Supplemental Data for Task Settings</a> in the <i>AWS Database Migration Service User Guide.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationTaskStats</i> The statistics for the task, including elapsed time, tables loaded, and table errors.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ReplicationTaskStats</b>: The statistics for the task, including elapsed time, tables loaded, and table errors.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationTaskArn</i> The Amazon Resource Name (ARN) of the replication task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecoveryCheckpoint</i> Indicates the last checkpoint that occurred during a change data capture (CDC) operation. You can provide this value to the <code>CdcStartPosition</code> parameter to start a CDC operation that begins at that checkpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CdcStopPosition</i> Indicates when you want a change data capture (CDC) operation to stop. The value can be either server time or commit time. Server time example: --cdc-stop-position “server_time:2018-02-09T12:12:12” Commit time example: --cdc-stop-position “commit_time: 2018-02-09T12:12:12 “<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CdcStartPosition</i> Indicates when you want a change data capture (CDC) operation to start. Use either <code>CdcStartPosition</code> or <code>CdcStartTime</code> to specify when you want the CDC operation to start. Specifying both values results in an error. The value can be in date, checkpoint, or LSN/SCN format. Date Example: --cdc-start-position “2018-03-08T12:12:12” Checkpoint Example: --cdc-start-position "checkpoint:V1#27#mysql-bin-changelog.157832:1975:-1:2002:677883278264080:mysql-bin-changelog.157832:1876#0#0#*#0#93" LSN Example: --cdc-start-position “mysql-bin-changelog.000024:373”<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationTaskStartDate</i> The date the replication task is scheduled to start.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationTaskCreationDate</i> The date the replication task was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StopReason</i> The reason the replication task was stopped. This response parameter can return one of the following values: <ul> <li>  <code>"STOP_REASON_FULL_LOAD_COMPLETED"</code> – Full-load migration completed. </li> <li>  <code>"STOP_REASON_CACHED_CHANGES_APPLIED"</code> – Change data capture (CDC) load completed. </li> <li>  <code>"STOP_REASON_CACHED_CHANGES_NOT_APPLIED"</code> – In a full-load and CDC migration, the full load stopped as specified before starting the CDC migration. </li> <li>  <code>"STOP_REASON_SERVER_TIME"</code> – The migration stopped at the specified server time. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastFailureMessage</i> The last error (failure) message generated for the replication task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the replication task. This response parameter can return one of the following values: <ul> <li>  <code>"moving"</code> – The task is being moved in response to running the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_MoveReplicationTask.html"> <code>MoveReplicationTask</code> </a> operation. </li> <li>  <code>"creating"</code> – The task is being created in response to running the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_CreateReplicationTask.html"> <code>CreateReplicationTask</code> </a> operation. </li> <li>  <code>"deleting"</code> – The task is being deleted in response to running the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_DeleteReplicationTask.html"> <code>DeleteReplicationTask</code> </a> operation. </li> <li>  <code>"failed"</code> – The task failed to successfully complete the database migration in response to running the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StartReplicationTask.html"> <code>StartReplicationTask</code> </a> operation. </li> <li>  <code>"failed-move"</code> – The task failed to move in response to running the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_MoveReplicationTask.html"> <code>MoveReplicationTask</code> </a> operation. </li> <li>  <code>"modifying"</code> – The task definition is being modified in response to running the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_ModifyReplicationTask.html"> <code>ModifyReplicationTask</code> </a> operation. </li> <li>  <code>"ready"</code> – The task is in a <code>ready</code> state where it can respond to other task operations, such as <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StartReplicationTask.html"> <code>StartReplicationTask</code> </a> or <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_DeleteReplicationTask.html"> <code>DeleteReplicationTask</code> </a>.  </li> <li>  <code>"running"</code> – The task is performing a database migration in response to running the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StartReplicationTask.html"> <code>StartReplicationTask</code> </a> operation. </li> <li>  <code>"starting"</code> – The task is preparing to perform a database migration in response to running the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StartReplicationTask.html"> <code>StartReplicationTask</code> </a> operation. </li> <li>  <code>"stopped"</code> – The task has stopped in response to running the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StopReplicationTask.html"> <code>StopReplicationTask</code> </a> operation. </li> <li>  <code>"stopping"</code> – The task is preparing to stop in response to running the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StopReplicationTask.html"> <code>StopReplicationTask</code> </a> operation. </li> <li>  <code>"testing"</code> – The database migration specified for this task is being tested in response to running either the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StartReplicationTaskAssessmentRun.html"> <code>StartReplicationTaskAssessmentRun</code> </a> or the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StartReplicationTaskAssessment.html"> <code>StartReplicationTaskAssessment</code> </a> operation. <note>  <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StartReplicationTaskAssessmentRun.html"> <code>StartReplicationTaskAssessmentRun</code> </a> is an improved premigration task assessment operation. The <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StartReplicationTaskAssessment.html"> <code>StartReplicationTaskAssessment</code> </a> operation assesses data type compatibility only between the source and target database of a given migration task. In contrast, <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StartReplicationTaskAssessmentRun.html"> <code>StartReplicationTaskAssessmentRun</code> </a> enables you to specify a variety of premigration task assessments in addition to data type compatibility. These assessments include ones for the validity of primary key definitions and likely issues with database migration performance, among others. </note> </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationTaskSettings</i> The settings for the replication task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TableMappings</i> Table mappings specified in the task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MigrationType</i> The type of migration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationInstanceArn</i> The ARN of the replication instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetEndpointArn</i> The ARN that uniquely identifies the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceEndpointArn</i> The Amazon Resource Name (ARN) that uniquely identifies the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationTaskIdentifier</i> The user-assigned replication task identifier or name. Constraints: <ul> <li> Must contain 1-255 alphanumeric characters or hyphens. </li> <li> First character must be a letter. </li> <li> Cannot end with a hyphen or contain two consecutive hyphens. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FullLoadFinishDate</i> The date the replication task full load was completed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FullLoadStartDate</i> The date the replication task full load was started.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StopDate</i> The date the replication task was stopped.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StartDate</i> The date the replication task was started either with a fresh start or a resume. For more information, see <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StartReplicationTask.html#DMS-StartReplicationTask-request-StartReplicationTaskType">StartReplicationTaskType</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FreshStartDate</i> The date the replication task was started either with a fresh start or a target reload.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TablesErrored</i> The number of errors that have occurred during this task.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TablesQueued</i> The number of tables queued for this task.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TablesLoading</i> The number of tables currently loading for this task.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TablesLoaded</i> The number of tables loaded for this task.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ElapsedTimeMillis</i> The elapsed time of the task, in milliseconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FullLoadProgressPercent</i> The percent complete for the full load migration task.<br/>        """
        pass

    def start_replication_task_assessment(self, ReplicationTaskArn: str) -> StartReplicationTaskAssessmentResponse:
        r""" Starts the replication task assessment for unsupported data types in the source database. 

        :param self:
        :param ReplicationTaskArn:   The Amazon Resource Name (ARN) of the replication task. <br/>
        :return: ReplicationTask:   The assessed replication task. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetReplicationInstanceArn</i> The ARN of the replication instance to which this task is moved in response to running the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_MoveReplicationTask.html"> <code>MoveReplicationTask</code> </a> operation. Otherwise, this response parameter isn't a member of the <code>ReplicationTask</code> object.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TaskData</i> Supplemental information that the task requires to migrate the data for certain source and target endpoints. For more information, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.TaskData.html">Specifying Supplemental Data for Task Settings</a> in the <i>AWS Database Migration Service User Guide.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationTaskStats</i> The statistics for the task, including elapsed time, tables loaded, and table errors.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ReplicationTaskStats</b>: The statistics for the task, including elapsed time, tables loaded, and table errors.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationTaskArn</i> The Amazon Resource Name (ARN) of the replication task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecoveryCheckpoint</i> Indicates the last checkpoint that occurred during a change data capture (CDC) operation. You can provide this value to the <code>CdcStartPosition</code> parameter to start a CDC operation that begins at that checkpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CdcStopPosition</i> Indicates when you want a change data capture (CDC) operation to stop. The value can be either server time or commit time. Server time example: --cdc-stop-position “server_time:2018-02-09T12:12:12” Commit time example: --cdc-stop-position “commit_time: 2018-02-09T12:12:12 “<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CdcStartPosition</i> Indicates when you want a change data capture (CDC) operation to start. Use either <code>CdcStartPosition</code> or <code>CdcStartTime</code> to specify when you want the CDC operation to start. Specifying both values results in an error. The value can be in date, checkpoint, or LSN/SCN format. Date Example: --cdc-start-position “2018-03-08T12:12:12” Checkpoint Example: --cdc-start-position "checkpoint:V1#27#mysql-bin-changelog.157832:1975:-1:2002:677883278264080:mysql-bin-changelog.157832:1876#0#0#*#0#93" LSN Example: --cdc-start-position “mysql-bin-changelog.000024:373”<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationTaskStartDate</i> The date the replication task is scheduled to start.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationTaskCreationDate</i> The date the replication task was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StopReason</i> The reason the replication task was stopped. This response parameter can return one of the following values: <ul> <li>  <code>"STOP_REASON_FULL_LOAD_COMPLETED"</code> – Full-load migration completed. </li> <li>  <code>"STOP_REASON_CACHED_CHANGES_APPLIED"</code> – Change data capture (CDC) load completed. </li> <li>  <code>"STOP_REASON_CACHED_CHANGES_NOT_APPLIED"</code> – In a full-load and CDC migration, the full load stopped as specified before starting the CDC migration. </li> <li>  <code>"STOP_REASON_SERVER_TIME"</code> – The migration stopped at the specified server time. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastFailureMessage</i> The last error (failure) message generated for the replication task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the replication task. This response parameter can return one of the following values: <ul> <li>  <code>"moving"</code> – The task is being moved in response to running the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_MoveReplicationTask.html"> <code>MoveReplicationTask</code> </a> operation. </li> <li>  <code>"creating"</code> – The task is being created in response to running the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_CreateReplicationTask.html"> <code>CreateReplicationTask</code> </a> operation. </li> <li>  <code>"deleting"</code> – The task is being deleted in response to running the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_DeleteReplicationTask.html"> <code>DeleteReplicationTask</code> </a> operation. </li> <li>  <code>"failed"</code> – The task failed to successfully complete the database migration in response to running the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StartReplicationTask.html"> <code>StartReplicationTask</code> </a> operation. </li> <li>  <code>"failed-move"</code> – The task failed to move in response to running the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_MoveReplicationTask.html"> <code>MoveReplicationTask</code> </a> operation. </li> <li>  <code>"modifying"</code> – The task definition is being modified in response to running the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_ModifyReplicationTask.html"> <code>ModifyReplicationTask</code> </a> operation. </li> <li>  <code>"ready"</code> – The task is in a <code>ready</code> state where it can respond to other task operations, such as <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StartReplicationTask.html"> <code>StartReplicationTask</code> </a> or <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_DeleteReplicationTask.html"> <code>DeleteReplicationTask</code> </a>.  </li> <li>  <code>"running"</code> – The task is performing a database migration in response to running the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StartReplicationTask.html"> <code>StartReplicationTask</code> </a> operation. </li> <li>  <code>"starting"</code> – The task is preparing to perform a database migration in response to running the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StartReplicationTask.html"> <code>StartReplicationTask</code> </a> operation. </li> <li>  <code>"stopped"</code> – The task has stopped in response to running the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StopReplicationTask.html"> <code>StopReplicationTask</code> </a> operation. </li> <li>  <code>"stopping"</code> – The task is preparing to stop in response to running the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StopReplicationTask.html"> <code>StopReplicationTask</code> </a> operation. </li> <li>  <code>"testing"</code> – The database migration specified for this task is being tested in response to running either the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StartReplicationTaskAssessmentRun.html"> <code>StartReplicationTaskAssessmentRun</code> </a> or the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StartReplicationTaskAssessment.html"> <code>StartReplicationTaskAssessment</code> </a> operation. <note>  <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StartReplicationTaskAssessmentRun.html"> <code>StartReplicationTaskAssessmentRun</code> </a> is an improved premigration task assessment operation. The <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StartReplicationTaskAssessment.html"> <code>StartReplicationTaskAssessment</code> </a> operation assesses data type compatibility only between the source and target database of a given migration task. In contrast, <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StartReplicationTaskAssessmentRun.html"> <code>StartReplicationTaskAssessmentRun</code> </a> enables you to specify a variety of premigration task assessments in addition to data type compatibility. These assessments include ones for the validity of primary key definitions and likely issues with database migration performance, among others. </note> </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationTaskSettings</i> The settings for the replication task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TableMappings</i> Table mappings specified in the task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MigrationType</i> The type of migration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationInstanceArn</i> The ARN of the replication instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetEndpointArn</i> The ARN that uniquely identifies the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceEndpointArn</i> The Amazon Resource Name (ARN) that uniquely identifies the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationTaskIdentifier</i> The user-assigned replication task identifier or name. Constraints: <ul> <li> Must contain 1-255 alphanumeric characters or hyphens. </li> <li> First character must be a letter. </li> <li> Cannot end with a hyphen or contain two consecutive hyphens. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FullLoadFinishDate</i> The date the replication task full load was completed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FullLoadStartDate</i> The date the replication task full load was started.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StopDate</i> The date the replication task was stopped.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StartDate</i> The date the replication task was started either with a fresh start or a resume. For more information, see <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StartReplicationTask.html#DMS-StartReplicationTask-request-StartReplicationTaskType">StartReplicationTaskType</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FreshStartDate</i> The date the replication task was started either with a fresh start or a target reload.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TablesErrored</i> The number of errors that have occurred during this task.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TablesQueued</i> The number of tables queued for this task.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TablesLoading</i> The number of tables currently loading for this task.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TablesLoaded</i> The number of tables loaded for this task.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ElapsedTimeMillis</i> The elapsed time of the task, in milliseconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FullLoadProgressPercent</i> The percent complete for the full load migration task.<br/>        """
        pass

    def start_replication_task_assessment_run(self, AssessmentRunName: str, ResultLocationBucket: str, ServiceAccessRoleArn: str, ReplicationTaskArn: str, ResultLocationFolder: str=None, ResultEncryptionMode: str=None, ResultKmsKeyArn: str=None, IncludeOnly: List[String]=None, Exclude: List[String]=None) -> StartReplicationTaskAssessmentRunResponse:
        r"""Starts a new premigration assessment run for one or more individual assessments of a migration task. The assessments that you can specify depend on the source and target database engine and the migration type defined for the given task. To run this operation, your migration task must already be created. After you run this operation, you can review the status of each individual assessment. You can also run the migration task manually after the assessment run and its individual assessments complete.

        :param self:
        :param Exclude:  Space-separated list of names for specific individual assessments that you want to exclude. These names come from the default list of individual assessments that AWS DMS supports for the associated migration task. This task is specified by <code>ReplicationTaskArn</code>. <note> You can't set a value for <code>Exclude</code> if you also set a value for <code>IncludeOnly</code> in the API operation. To identify the names of the default individual assessments that AWS DMS supports for the associated migration task, run the <code>DescribeApplicableIndividualAssessments</code> operation using its own <code>ReplicationTaskArn</code> request parameter. </note><br/>IncludeOnly:  Space-separated list of names for specific individual assessments that you want to include. These names come from the default list of individual assessments that AWS DMS supports for the associated migration task. This task is specified by <code>ReplicationTaskArn</code>. <note> You can't set a value for <code>IncludeOnly</code> if you also set a value for <code>Exclude</code> in the API operation.  To identify the names of the default individual assessments that AWS DMS supports for the associated migration task, run the <code>DescribeApplicableIndividualAssessments</code> operation using its own <code>ReplicationTaskArn</code> request parameter. </note><br/>AssessmentRunName:  Unique name to identify the assessment run.<br/>ResultKmsKeyArn:  ARN of a custom KMS encryption key that you specify when you set <code>ResultEncryptionMode</code> to <code>"SSE_KMS</code>".<br/>ResultEncryptionMode:  Encryption mode that you can specify to encrypt the results of this assessment run. If you don't specify this request parameter, AWS DMS stores the assessment run results without encryption. You can specify one of the options following: <ul> <li>  <code>"SSE_S3"</code> – The server-side encryption provided as a default by Amazon S3. </li> <li>  <code>"SSE_KMS"</code> – AWS Key Management Service (AWS KMS) encryption. This encryption can use either a custom KMS encryption key that you specify or the default KMS encryption key that DMS provides. </li> </ul><br/>ResultLocationFolder:  Folder within an Amazon S3 bucket where you want AWS DMS to store the results of this assessment run.<br/>ResultLocationBucket:  Amazon S3 bucket where you want AWS DMS to store the results of this assessment run.<br/>ServiceAccessRoleArn:  ARN of a service role needed to start the assessment run.<br/>ReplicationTaskArn:  Amazon Resource Name (ARN) of the migration task associated with the premigration assessment run that you want to start.<br/>
        :return: ReplicationTaskAssessmentRun:  The premigration assessment run that was started.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssessmentRunName</i> Unique name of the assessment run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResultKmsKeyArn</i> ARN of the AWS KMS encryption key used to encrypt the assessment run results.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResultEncryptionMode</i> Encryption mode used to encrypt the assessment run results.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResultLocationFolder</i> Folder in an Amazon S3 bucket where AWS DMS stores the results of this assessment run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResultLocationBucket</i> Amazon S3 bucket where AWS DMS stores the results of this assessment run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceAccessRoleArn</i> ARN of the service role used to start the assessment run using the <code>StartReplicationTaskAssessmentRun</code> operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastFailureMessage</i> Last message generated by an individual assessment failure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssessmentProgress</i> Indication of the completion progress for the individual assessments specified to run.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AssessmentProgress</b>: Indication of the completion progress for the individual assessments specified to run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationTaskAssessmentRunCreationDate</i> Date on which the assessment run was created using the <code>StartReplicationTaskAssessmentRun</code> operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Assessment run status.  This status can have one of the following values: <ul> <li>  <code>"cancelling"</code> – The assessment run was canceled by the <code>CancelReplicationTaskAssessmentRun</code> operation. </li> <li>  <code>"deleting"</code> – The assessment run was deleted by the <code>DeleteReplicationTaskAssessmentRun</code> operation. </li> <li>  <code>"failed"</code> – At least one individual assessment completed with a <code>failed</code> status. </li> <li>  <code>"error-provisioning"</code> – An internal error occurred while resources were provisioned (during <code>provisioning</code> status). </li> <li>  <code>"error-executing"</code> – An internal error occurred while individual assessments ran (during <code>running</code> status). </li> <li>  <code>"invalid state"</code> – The assessment run is in an unknown state. </li> <li>  <code>"passed"</code> – All individual assessments have completed, and none has a <code>failed</code> status. </li> <li>  <code>"provisioning"</code> – Resources required to run individual assessments are being provisioned. </li> <li>  <code>"running"</code> – Individual assessments are being run. </li> <li>  <code>"starting"</code> – The assessment run is starting, but resources are not yet being provisioned for individual assessments. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationTaskArn</i> ARN of the migration task associated with this premigration assessment run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationTaskAssessmentRunArn</i> Amazon Resource Name (ARN) of this assessment run.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IndividualAssessmentCompletedCount</i> The number of individual assessments that have completed, successfully or not.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IndividualAssessmentCount</i> The number of individual assessments that are specified to run.<br/>        """
        pass

    def stop_replication_task(self, ReplicationTaskArn: str) -> StopReplicationTaskResponse:
        r"""Stops the replication task.

        :param self:
        :param ReplicationTaskArn:  The Amazon Resource Name(ARN) of the replication task to be stopped.<br/>
        :return: ReplicationTask:  The replication task stopped.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetReplicationInstanceArn</i> The ARN of the replication instance to which this task is moved in response to running the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_MoveReplicationTask.html"> <code>MoveReplicationTask</code> </a> operation. Otherwise, this response parameter isn't a member of the <code>ReplicationTask</code> object.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TaskData</i> Supplemental information that the task requires to migrate the data for certain source and target endpoints. For more information, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.TaskData.html">Specifying Supplemental Data for Task Settings</a> in the <i>AWS Database Migration Service User Guide.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationTaskStats</i> The statistics for the task, including elapsed time, tables loaded, and table errors.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ReplicationTaskStats</b>: The statistics for the task, including elapsed time, tables loaded, and table errors.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationTaskArn</i> The Amazon Resource Name (ARN) of the replication task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecoveryCheckpoint</i> Indicates the last checkpoint that occurred during a change data capture (CDC) operation. You can provide this value to the <code>CdcStartPosition</code> parameter to start a CDC operation that begins at that checkpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CdcStopPosition</i> Indicates when you want a change data capture (CDC) operation to stop. The value can be either server time or commit time. Server time example: --cdc-stop-position “server_time:2018-02-09T12:12:12” Commit time example: --cdc-stop-position “commit_time: 2018-02-09T12:12:12 “<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CdcStartPosition</i> Indicates when you want a change data capture (CDC) operation to start. Use either <code>CdcStartPosition</code> or <code>CdcStartTime</code> to specify when you want the CDC operation to start. Specifying both values results in an error. The value can be in date, checkpoint, or LSN/SCN format. Date Example: --cdc-start-position “2018-03-08T12:12:12” Checkpoint Example: --cdc-start-position "checkpoint:V1#27#mysql-bin-changelog.157832:1975:-1:2002:677883278264080:mysql-bin-changelog.157832:1876#0#0#*#0#93" LSN Example: --cdc-start-position “mysql-bin-changelog.000024:373”<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationTaskStartDate</i> The date the replication task is scheduled to start.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationTaskCreationDate</i> The date the replication task was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StopReason</i> The reason the replication task was stopped. This response parameter can return one of the following values: <ul> <li>  <code>"STOP_REASON_FULL_LOAD_COMPLETED"</code> – Full-load migration completed. </li> <li>  <code>"STOP_REASON_CACHED_CHANGES_APPLIED"</code> – Change data capture (CDC) load completed. </li> <li>  <code>"STOP_REASON_CACHED_CHANGES_NOT_APPLIED"</code> – In a full-load and CDC migration, the full load stopped as specified before starting the CDC migration. </li> <li>  <code>"STOP_REASON_SERVER_TIME"</code> – The migration stopped at the specified server time. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastFailureMessage</i> The last error (failure) message generated for the replication task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the replication task. This response parameter can return one of the following values: <ul> <li>  <code>"moving"</code> – The task is being moved in response to running the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_MoveReplicationTask.html"> <code>MoveReplicationTask</code> </a> operation. </li> <li>  <code>"creating"</code> – The task is being created in response to running the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_CreateReplicationTask.html"> <code>CreateReplicationTask</code> </a> operation. </li> <li>  <code>"deleting"</code> – The task is being deleted in response to running the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_DeleteReplicationTask.html"> <code>DeleteReplicationTask</code> </a> operation. </li> <li>  <code>"failed"</code> – The task failed to successfully complete the database migration in response to running the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StartReplicationTask.html"> <code>StartReplicationTask</code> </a> operation. </li> <li>  <code>"failed-move"</code> – The task failed to move in response to running the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_MoveReplicationTask.html"> <code>MoveReplicationTask</code> </a> operation. </li> <li>  <code>"modifying"</code> – The task definition is being modified in response to running the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_ModifyReplicationTask.html"> <code>ModifyReplicationTask</code> </a> operation. </li> <li>  <code>"ready"</code> – The task is in a <code>ready</code> state where it can respond to other task operations, such as <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StartReplicationTask.html"> <code>StartReplicationTask</code> </a> or <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_DeleteReplicationTask.html"> <code>DeleteReplicationTask</code> </a>.  </li> <li>  <code>"running"</code> – The task is performing a database migration in response to running the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StartReplicationTask.html"> <code>StartReplicationTask</code> </a> operation. </li> <li>  <code>"starting"</code> – The task is preparing to perform a database migration in response to running the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StartReplicationTask.html"> <code>StartReplicationTask</code> </a> operation. </li> <li>  <code>"stopped"</code> – The task has stopped in response to running the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StopReplicationTask.html"> <code>StopReplicationTask</code> </a> operation. </li> <li>  <code>"stopping"</code> – The task is preparing to stop in response to running the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StopReplicationTask.html"> <code>StopReplicationTask</code> </a> operation. </li> <li>  <code>"testing"</code> – The database migration specified for this task is being tested in response to running either the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StartReplicationTaskAssessmentRun.html"> <code>StartReplicationTaskAssessmentRun</code> </a> or the <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StartReplicationTaskAssessment.html"> <code>StartReplicationTaskAssessment</code> </a> operation. <note>  <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StartReplicationTaskAssessmentRun.html"> <code>StartReplicationTaskAssessmentRun</code> </a> is an improved premigration task assessment operation. The <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StartReplicationTaskAssessment.html"> <code>StartReplicationTaskAssessment</code> </a> operation assesses data type compatibility only between the source and target database of a given migration task. In contrast, <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StartReplicationTaskAssessmentRun.html"> <code>StartReplicationTaskAssessmentRun</code> </a> enables you to specify a variety of premigration task assessments in addition to data type compatibility. These assessments include ones for the validity of primary key definitions and likely issues with database migration performance, among others. </note> </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationTaskSettings</i> The settings for the replication task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TableMappings</i> Table mappings specified in the task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MigrationType</i> The type of migration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationInstanceArn</i> The ARN of the replication instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetEndpointArn</i> The ARN that uniquely identifies the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceEndpointArn</i> The Amazon Resource Name (ARN) that uniquely identifies the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationTaskIdentifier</i> The user-assigned replication task identifier or name. Constraints: <ul> <li> Must contain 1-255 alphanumeric characters or hyphens. </li> <li> First character must be a letter. </li> <li> Cannot end with a hyphen or contain two consecutive hyphens. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FullLoadFinishDate</i> The date the replication task full load was completed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FullLoadStartDate</i> The date the replication task full load was started.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StopDate</i> The date the replication task was stopped.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StartDate</i> The date the replication task was started either with a fresh start or a resume. For more information, see <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_StartReplicationTask.html#DMS-StartReplicationTask-request-StartReplicationTaskType">StartReplicationTaskType</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FreshStartDate</i> The date the replication task was started either with a fresh start or a target reload.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TablesErrored</i> The number of errors that have occurred during this task.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TablesQueued</i> The number of tables queued for this task.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TablesLoading</i> The number of tables currently loading for this task.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TablesLoaded</i> The number of tables loaded for this task.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ElapsedTimeMillis</i> The elapsed time of the task, in milliseconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FullLoadProgressPercent</i> The percent complete for the full load migration task.<br/>        """
        pass

    def test_connection(self, EndpointArn: str, ReplicationInstanceArn: str) -> TestConnectionResponse:
        r"""Tests the connection between the replication instance and the endpoint.

        :param self:
        :param EndpointArn:  The Amazon Resource Name (ARN) string that uniquely identifies the endpoint.<br/>ReplicationInstanceArn:  The Amazon Resource Name (ARN) of the replication instance.<br/>
        :return: Connection:  The connection tested.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationInstanceIdentifier</i> The replication instance identifier. This parameter is stored as a lowercase string.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointIdentifier</i> The identifier of the endpoint. Identifiers must begin with a letter and must contain only ASCII letters, digits, and hyphens. They can't end with a hyphen or contain two consecutive hyphens.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastFailureMessage</i> The error message when the connection last failed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The connection status. This parameter can return one of the following values: <ul> <li>  <code>"successful"</code>  </li> <li>  <code>"testing"</code>  </li> <li>  <code>"failed"</code>  </li> <li>  <code>"deleting"</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointArn</i> The ARN string that uniquely identifies the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationInstanceArn</i> The ARN of the replication instance.<br/>        """
        pass





class DocDB(BaseClient):
    r"""Amazon DocumentDB API documentation"""

    class DBInstanceAvailableWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_db_instances` for valid parameters"""
            pass
    class DBInstanceDeletedWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_db_instances` for valid parameters"""
            pass


    class DescribeCertificatesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_certificates` for valid parameters"""
            pass
    class DescribeDBClusterParameterGroupsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_db_cluster_parameter_groups` for valid parameters"""
            pass
    class DescribeDBClusterParametersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_db_cluster_parameters` for valid parameters"""
            pass
    class DescribeDBClusterSnapshotsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_db_cluster_snapshots` for valid parameters"""
            pass
    class DescribeDBClustersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_db_clusters` for valid parameters"""
            pass
    class DescribeDBEngineVersionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_db_engine_versions` for valid parameters"""
            pass
    class DescribeDBInstancesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_db_instances` for valid parameters"""
            pass
    class DescribeDBSubnetGroupsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_db_subnet_groups` for valid parameters"""
            pass
    class DescribeEventsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_events` for valid parameters"""
            pass
    class DescribeOrderableDBInstanceOptionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_orderable_db_instance_options` for valid parameters"""
            pass
    class DescribePendingMaintenanceActionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_pending_maintenance_actions` for valid parameters"""
            pass
    class DescribeEventSubscriptionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_event_subscriptions` for valid parameters"""
            pass
    class DescribeGlobalClustersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_global_clusters` for valid parameters"""
            pass


    class AddSourceIdentifierToSubscriptionMessage(Mapping):
        pass
    
    class AddSourceIdentifierToSubscriptionResult(Mapping):
        pass
    
    class AddTagsToResourceMessage(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class ApplyPendingMaintenanceActionMessage(Mapping):
        pass
    
    class ApplyPendingMaintenanceActionResult(Mapping):
        pass
    
    class CopyDBClusterParameterGroupMessage(Mapping):
        pass
    
    class CopyDBClusterParameterGroupResult(Mapping):
        pass
    
    class CopyDBClusterSnapshotMessage(Mapping):
        pass
    
    class CopyDBClusterSnapshotResult(Mapping):
        pass
    
    class BooleanOptional(object):
        pass
    
    class CreateDBClusterMessage(Mapping):
        pass
    
    class CreateDBClusterResult(Mapping):
        pass
    
    class String(object):
        pass
    
    class CreateDBClusterParameterGroupMessage(Mapping):
        pass
    
    class CreateDBClusterParameterGroupResult(Mapping):
        pass
    
    class CreateDBClusterSnapshotMessage(Mapping):
        pass
    
    class CreateDBClusterSnapshotResult(Mapping):
        pass
    
    class CreateDBInstanceMessage(Mapping):
        pass
    
    class CreateDBInstanceResult(Mapping):
        pass
    
    class CreateDBSubnetGroupMessage(Mapping):
        pass
    
    class CreateDBSubnetGroupResult(Mapping):
        pass
    
    class CreateEventSubscriptionMessage(Mapping):
        pass
    
    class CreateEventSubscriptionResult(Mapping):
        pass
    
    class CreateGlobalClusterMessage(Mapping):
        pass
    
    class CreateGlobalClusterResult(Mapping):
        pass
    
    class DeleteDBClusterMessage(Mapping):
        pass
    
    class DeleteDBClusterResult(Mapping):
        pass
    
    class Boolean(object):
        pass
    
    class DeleteDBClusterParameterGroupMessage(Mapping):
        pass
    
    class DeleteDBClusterSnapshotMessage(Mapping):
        pass
    
    class DeleteDBClusterSnapshotResult(Mapping):
        pass
    
    class DeleteDBInstanceMessage(Mapping):
        pass
    
    class DeleteDBInstanceResult(Mapping):
        pass
    
    class DeleteDBSubnetGroupMessage(Mapping):
        pass
    
    class DeleteEventSubscriptionMessage(Mapping):
        pass
    
    class DeleteEventSubscriptionResult(Mapping):
        pass
    
    class DeleteGlobalClusterMessage(Mapping):
        pass
    
    class DeleteGlobalClusterResult(Mapping):
        pass
    
    class DescribeCertificatesMessage(Mapping):
        pass
    
    class CertificateMessage(Mapping):
        pass
    
    class Filter(Mapping):
        pass
    
    class DescribeDBClusterParameterGroupsMessage(Mapping):
        pass
    
    class DBClusterParameterGroupsMessage(Mapping):
        pass
    
    class DescribeDBClusterParametersMessage(Mapping):
        pass
    
    class DBClusterParameterGroupDetails(Mapping):
        pass
    
    class DescribeDBClusterSnapshotAttributesMessage(Mapping):
        pass
    
    class DescribeDBClusterSnapshotAttributesResult(Mapping):
        pass
    
    class DescribeDBClusterSnapshotsMessage(Mapping):
        pass
    
    class DBClusterSnapshotMessage(Mapping):
        pass
    
    class DescribeDBClustersMessage(Mapping):
        pass
    
    class DBClusterMessage(Mapping):
        pass
    
    class DescribeDBEngineVersionsMessage(Mapping):
        pass
    
    class DBEngineVersionMessage(Mapping):
        pass
    
    class DescribeDBInstancesMessage(Mapping):
        pass
    
    class DBInstanceMessage(Mapping):
        pass
    
    class DescribeDBSubnetGroupsMessage(Mapping):
        pass
    
    class DBSubnetGroupMessage(Mapping):
        pass
    
    class DescribeEngineDefaultClusterParametersMessage(Mapping):
        pass
    
    class DescribeEngineDefaultClusterParametersResult(Mapping):
        pass
    
    class DescribeEventCategoriesMessage(Mapping):
        pass
    
    class EventCategoriesMessage(Mapping):
        pass
    
    class DescribeEventSubscriptionsMessage(Mapping):
        pass
    
    class EventSubscriptionsMessage(Mapping):
        pass
    
    class DescribeEventsMessage(Mapping):
        pass
    
    class EventsMessage(Mapping):
        pass
    
    class TStamp(object):
        pass
    
    class DescribeGlobalClustersMessage(Mapping):
        pass
    
    class GlobalClustersMessage(Mapping):
        pass
    
    class DescribeOrderableDBInstanceOptionsMessage(Mapping):
        pass
    
    class OrderableDBInstanceOptionsMessage(Mapping):
        pass
    
    class DescribePendingMaintenanceActionsMessage(Mapping):
        pass
    
    class PendingMaintenanceActionsMessage(Mapping):
        pass
    
    class FailoverDBClusterMessage(Mapping):
        pass
    
    class FailoverDBClusterResult(Mapping):
        pass
    
    class ListTagsForResourceMessage(Mapping):
        pass
    
    class TagListMessage(Mapping):
        pass
    
    class ModifyDBClusterMessage(Mapping):
        pass
    
    class ModifyDBClusterResult(Mapping):
        pass
    
    class CloudwatchLogsExportConfiguration(Mapping):
        pass
    
    class ModifyDBClusterParameterGroupMessage(Mapping):
        pass
    
    class DBClusterParameterGroupNameMessage(Mapping):
        pass
    
    class Parameter(Mapping):
        pass
    
    class ModifyDBClusterSnapshotAttributeMessage(Mapping):
        pass
    
    class ModifyDBClusterSnapshotAttributeResult(Mapping):
        pass
    
    class ModifyDBInstanceMessage(Mapping):
        pass
    
    class ModifyDBInstanceResult(Mapping):
        pass
    
    class ModifyDBSubnetGroupMessage(Mapping):
        pass
    
    class ModifyDBSubnetGroupResult(Mapping):
        pass
    
    class ModifyEventSubscriptionMessage(Mapping):
        pass
    
    class ModifyEventSubscriptionResult(Mapping):
        pass
    
    class ModifyGlobalClusterMessage(Mapping):
        pass
    
    class ModifyGlobalClusterResult(Mapping):
        pass
    
    class RebootDBInstanceMessage(Mapping):
        pass
    
    class RebootDBInstanceResult(Mapping):
        pass
    
    class RemoveFromGlobalClusterMessage(Mapping):
        pass
    
    class RemoveFromGlobalClusterResult(Mapping):
        pass
    
    class RemoveSourceIdentifierFromSubscriptionMessage(Mapping):
        pass
    
    class RemoveSourceIdentifierFromSubscriptionResult(Mapping):
        pass
    
    class RemoveTagsFromResourceMessage(Mapping):
        pass
    
    class ResetDBClusterParameterGroupMessage(Mapping):
        pass
    
    class RestoreDBClusterFromSnapshotMessage(Mapping):
        pass
    
    class RestoreDBClusterFromSnapshotResult(Mapping):
        pass
    
    class RestoreDBClusterToPointInTimeMessage(Mapping):
        pass
    
    class RestoreDBClusterToPointInTimeResult(Mapping):
        pass
    
    class StartDBClusterMessage(Mapping):
        pass
    
    class StartDBClusterResult(Mapping):
        pass
    
    class StopDBClusterMessage(Mapping):
        pass
    
    class StopDBClusterResult(Mapping):
        pass
    
    def add_source_identifier_to_subscription(self, SourceIdentifier: str, SubscriptionName: str) -> AddSourceIdentifierToSubscriptionResult:
        r"""Adds a source identifier to an existing event notification subscription.

        :param self:
        :param SourceIdentifier:  The identifier of the event source to be added: <ul> <li> If the source type is an instance, a <code>DBInstanceIdentifier</code> must be provided. </li> <li> If the source type is a security group, a <code>DBSecurityGroupName</code> must be provided. </li> <li> If the source type is a parameter group, a <code>DBParameterGroupName</code> must be provided. </li> <li> If the source type is a snapshot, a <code>DBSnapshotIdentifier</code> must be provided. </li> </ul><br/>SubscriptionName:  The name of the Amazon DocumentDB event notification subscription that you want to add a source identifier to.<br/>
        :return: EventSubscription:  Detailed information about an event to which you have subscribed.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EventSubscriptionArn</i> The Amazon Resource Name (ARN) for the event subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> A Boolean value indicating whether the subscription is enabled. A value of <code>true</code> indicates that the subscription is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EventCategoriesList</i> A list of event categories for the Amazon DocumentDB event notification subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceIdsList</i> A list of source IDs for the Amazon DocumentDB event notification subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceType</i> The source type for the Amazon DocumentDB event notification subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubscriptionCreationTime</i> The time at which the Amazon DocumentDB event notification subscription was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the Amazon DocumentDB event notification subscription. Constraints: Can be one of the following: <code>creating</code>, <code>modifying</code>, <code>deleting</code>, <code>active</code>, <code>no-permission</code>, <code>topic-not-exist</code>  The <code>no-permission</code> status indicates that Amazon DocumentDB no longer has permission to post to the SNS topic. The <code>topic-not-exist</code> status indicates that the topic was deleted after the subscription was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnsTopicArn</i> The topic ARN of the Amazon DocumentDB event notification subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustSubscriptionId</i> The Amazon DocumentDB event notification subscription ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomerAwsId</i> The Amazon Web Services customer account that is associated with the Amazon DocumentDB event notification subscription.<br/>        """
        pass

    def add_tags_to_resource(self, Tags: List[Tag], ResourceName: str):
        r"""Adds metadata tags to an Amazon DocumentDB resource. You can use these tags with cost allocation reporting to track costs that are associated with Amazon DocumentDB resources or in a <code>Condition</code> statement in an Identity and Access Management (IAM) policy for Amazon DocumentDB.

        :param self:
        :param Tags:  The tags to be assigned to the Amazon DocumentDB resource.<br/>ResourceName:  The Amazon DocumentDB resource that the tags are added to. This value is an Amazon Resource Name .<br/>
        :return:         """
        pass

    def apply_pending_maintenance_action(self, OptInType: str, ApplyAction: str, ResourceIdentifier: str) -> ApplyPendingMaintenanceActionResult:
        r"""Applies a pending maintenance action to a resource (for example, to an Amazon DocumentDB instance).

        :param self:
        :param OptInType:  A value that specifies the type of opt-in request or undoes an opt-in request. An opt-in request of type <code>immediate</code> can't be undone. Valid values: <ul> <li>  <code>immediate</code> - Apply the maintenance action immediately. </li> <li>  <code>next-maintenance</code> - Apply the maintenance action during the next maintenance window for the resource.  </li> <li>  <code>undo-opt-in</code> - Cancel any existing <code>next-maintenance</code> opt-in requests. </li> </ul><br/>ApplyAction:  The pending maintenance action to apply to this resource. Valid values: <code>system-update</code>, <code>db-upgrade</code> <br/>ResourceIdentifier:  The Amazon Resource Name (ARN) of the resource that the pending maintenance action applies to.<br/>
        :return: ResourcePendingMaintenanceActions:  Represents the output of <a>ApplyPendingMaintenanceAction</a>. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingMaintenanceActionDetails</i> A list that provides details about the pending maintenance actions for the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceIdentifier</i> The Amazon Resource Name (ARN) of the resource that has pending maintenance actions.<br/>        """
        pass

    def copy_db_cluster_parameter_group(self, TargetDBClusterParameterGroupDescription: str, TargetDBClusterParameterGroupIdentifier: str, SourceDBClusterParameterGroupIdentifier: str, Tags: List[Tag]=None) -> CopyDBClusterParameterGroupResult:
        r"""Copies the specified cluster parameter group.

        :param self:
        :param Tags:  The tags that are to be assigned to the parameter group.<br/>TargetDBClusterParameterGroupDescription:  A description for the copied cluster parameter group.<br/>TargetDBClusterParameterGroupIdentifier:  The identifier for the copied cluster parameter group. Constraints: <ul> <li> Cannot be null, empty, or blank. </li> <li> Must contain from 1 to 255 letters, numbers, or hyphens.  </li> <li> The first character must be a letter. </li> <li> Cannot end with a hyphen or contain two consecutive hyphens.  </li> </ul> Example: <code>my-cluster-param-group1</code> <br/>SourceDBClusterParameterGroupIdentifier:  The identifier or Amazon Resource Name (ARN) for the source cluster parameter group. Constraints: <ul> <li> Must specify a valid cluster parameter group. </li> <li> If the source cluster parameter group is in the same Region as the copy, specify a valid parameter group identifier; for example, <code>my-db-cluster-param-group</code>, or a valid ARN. </li> <li> If the source parameter group is in a different Region than the copy, specify a valid cluster parameter group ARN; for example, <code>arn:aws:rds:us-east-1:123456789012:sample-cluster:sample-parameter-group</code>. </li> </ul><br/>
        :return: DBClusterParameterGroup:  Detailed information about a cluster parameter group. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterParameterGroupArn</i> The Amazon Resource Name (ARN) for the cluster parameter group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> Provides the customer-specified description for this cluster parameter group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBParameterGroupFamily</i> Provides the name of the parameter group family that this cluster parameter group is compatible with.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterParameterGroupName</i> Provides the name of the cluster parameter group.<br/>        """
        pass

    def copy_db_cluster_snapshot(self, TargetDBClusterSnapshotIdentifier: str, SourceDBClusterSnapshotIdentifier: str, KmsKeyId: str=None, PreSignedUrl: str=None, CopyTags: BooleanOptional=None, Tags: List[Tag]=None, SourceRegion: str=None) -> CopyDBClusterSnapshotResult:
        r"""Copies a snapshot of a cluster. To copy a cluster snapshot from a shared manual cluster snapshot, <code>SourceDBClusterSnapshotIdentifier</code> must be the Amazon Resource Name (ARN) of the shared cluster snapshot. You can only copy a shared DB cluster snapshot, whether encrypted or not, in the same Region. To cancel the copy operation after it is in progress, delete the target cluster snapshot identified by <code>TargetDBClusterSnapshotIdentifier</code> while that cluster snapshot is in the <i>copying</i> status.

        :param self:
        :param SourceRegion:  The ID of the region that contains the snapshot to be copied.<br/>Tags:  The tags to be assigned to the cluster snapshot.<br/>CopyTags:  Set to <code>true</code> to copy all tags from the source cluster snapshot to the target cluster snapshot, and otherwise <code>false</code>. The default is <code>false</code>.<br/>PreSignedUrl:  The URL that contains a Signature Version 4 signed request for the<code>CopyDBClusterSnapshot</code> API action in the Region that contains the source cluster snapshot to copy. You must use the <code>PreSignedUrl</code> parameter when copying a cluster snapshot from another Region. If you are using an Amazon Web Services SDK tool or the CLI, you can specify <code>SourceRegion</code> (or <code>--source-region</code> for the CLI) instead of specifying <code>PreSignedUrl</code> manually. Specifying <code>SourceRegion</code> autogenerates a pre-signed URL that is a valid request for the operation that can be executed in the source Region. The presigned URL must be a valid request for the <code>CopyDBClusterSnapshot</code> API action that can be executed in the source Region that contains the cluster snapshot to be copied. The presigned URL request must contain the following parameter values: <ul> <li>  <code>SourceRegion</code> - The ID of the region that contains the snapshot to be copied. </li> <li>  <code>SourceDBClusterSnapshotIdentifier</code> - The identifier for the the encrypted cluster snapshot to be copied. This identifier must be in the Amazon Resource Name (ARN) format for the source Region. For example, if you are copying an encrypted cluster snapshot from the us-east-1 Region, then your <code>SourceDBClusterSnapshotIdentifier</code> looks something like the following: <code>arn:aws:rds:us-east-1:12345678012:sample-cluster:sample-cluster-snapshot</code>. </li> <li>  <code>TargetDBClusterSnapshotIdentifier</code> - The identifier for the new cluster snapshot to be created. This parameter isn't case sensitive. </li> </ul><br/>KmsKeyId:  The KMS key ID for an encrypted cluster snapshot. The KMS key ID is the Amazon Resource Name (ARN), KMS key identifier, or the KMS key alias for the KMS encryption key.  If you copy an encrypted cluster snapshot from your account, you can specify a value for <code>KmsKeyId</code> to encrypt the copy with a new KMS encryption key. If you don't specify a value for <code>KmsKeyId</code>, then the copy of the cluster snapshot is encrypted with the same KMS key as the source cluster snapshot. If you copy an encrypted cluster snapshot that is shared from another account, then you must specify a value for <code>KmsKeyId</code>. To copy an encrypted cluster snapshot to another Region, set <code>KmsKeyId</code> to the KMS key ID that you want to use to encrypt the copy of the cluster snapshot in the destination Region. KMS encryption keys are specific to the Region that they are created in, and you can't use encryption keys from one Region in another Region. If you copy an unencrypted cluster snapshot and specify a value for the <code>KmsKeyId</code> parameter, an error is returned.<br/>TargetDBClusterSnapshotIdentifier:  The identifier of the new cluster snapshot to create from the source cluster snapshot. This parameter is not case sensitive. Constraints: <ul> <li> Must contain from 1 to 63 letters, numbers, or hyphens.  </li> <li> The first character must be a letter. </li> <li> Cannot end with a hyphen or contain two consecutive hyphens.  </li> </ul> Example: <code>my-cluster-snapshot2</code> <br/>SourceDBClusterSnapshotIdentifier:  The identifier of the cluster snapshot to copy. This parameter is not case sensitive. Constraints: <ul> <li> Must specify a valid system snapshot in the <i>available</i> state. </li> <li> If the source snapshot is in the same Region as the copy, specify a valid snapshot identifier. </li> <li> If the source snapshot is in a different Region than the copy, specify a valid cluster snapshot ARN. </li> </ul> Example: <code>my-cluster-snapshot1</code> <br/>
        :return: DBClusterSnapshot:  Detailed information about a cluster snapshot. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceDBClusterSnapshotArn</i> If the cluster snapshot was copied from a source cluster snapshot, the ARN for the source cluster snapshot; otherwise, a null value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterSnapshotArn</i> The Amazon Resource Name (ARN) for the cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> If <code>StorageEncrypted</code> is <code>true</code>, the KMS key identifier for the encrypted cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageEncrypted</i> Specifies whether the cluster snapshot is encrypted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PercentProgress</i> Specifies the percentage of the estimated data that has been transferred.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotType</i> Provides the type of the cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> Provides the version of the database engine for this cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUsername</i> Provides the master user name for the cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterCreateTime</i> Specifies the time when the cluster was created, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> Provides the virtual private cloud (VPC) ID that is associated with the cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Specifies the port that the cluster was listening on at the time of the snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Specifies the status of this cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> Specifies the name of the database engine.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotCreateTime</i> Provides the time when the snapshot was taken, in UTC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterIdentifier</i> Specifies the cluster identifier of the cluster that this cluster snapshot was created from.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterSnapshotIdentifier</i> Specifies the identifier for the cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZones</i> Provides the list of Amazon EC2 Availability Zones that instances in the cluster snapshot can be restored in.<br/>        """
        pass

    def create_db_cluster(self, Engine: str, DBClusterIdentifier: str, AvailabilityZones: List[String]=None, BackupRetentionPeriod: int=None, DBClusterParameterGroupName: str=None, VpcSecurityGroupIds: List[String]=None, DBSubnetGroupName: str=None, EngineVersion: str=None, Port: int=None, MasterUsername: str=None, MasterUserPassword: str=None, PreferredBackupWindow: str=None, PreferredMaintenanceWindow: str=None, Tags: List[Tag]=None, StorageEncrypted: BooleanOptional=None, KmsKeyId: str=None, PreSignedUrl: str=None, EnableCloudwatchLogsExports: List[String]=None, DeletionProtection: BooleanOptional=None, GlobalClusterIdentifier: str=None, SourceRegion: str=None) -> CreateDBClusterResult:
        r"""Creates a new Amazon DocumentDB cluster.

        :param self:
        :param SourceRegion:  The ID of the region that contains the source for the db cluster.<br/>GlobalClusterIdentifier:  The cluster identifier of the new global cluster.<br/>DeletionProtection:  Specifies whether this cluster can be deleted. If <code>DeletionProtection</code> is enabled, the cluster cannot be deleted unless it is modified and <code>DeletionProtection</code> is disabled. <code>DeletionProtection</code> protects clusters from being accidentally deleted.<br/>EnableCloudwatchLogsExports:  A list of log types that need to be enabled for exporting to Amazon CloudWatch Logs. You can enable audit logs or profiler logs. For more information, see <a href="https://docs.aws.amazon.com/documentdb/latest/developerguide/event-auditing.html"> Auditing Amazon DocumentDB Events</a> and <a href="https://docs.aws.amazon.com/documentdb/latest/developerguide/profiling.html"> Profiling Amazon DocumentDB Operations</a>. <br/>PreSignedUrl:  Not currently supported. <br/>KmsKeyId:  The KMS key identifier for an encrypted cluster. The KMS key identifier is the Amazon Resource Name (ARN) for the KMS encryption key. If you are creating a cluster using the same account that owns the KMS encryption key that is used to encrypt the new cluster, you can use the KMS key alias instead of the ARN for the KMS encryption key. If an encryption key is not specified in <code>KmsKeyId</code>:  <ul> <li> If the <code>StorageEncrypted</code> parameter is <code>true</code>, Amazon DocumentDB uses your default encryption key.  </li> </ul> KMS creates the default encryption key for your account. Your account has a different default encryption key for each Regions.<br/>StorageEncrypted:  Specifies whether the cluster is encrypted.<br/>Tags:  The tags to be assigned to the cluster.<br/>PreferredMaintenanceWindow:  The weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC). Format: <code>ddd:hh24:mi-ddd:hh24:mi</code>  The default is a 30-minute window selected at random from an 8-hour block of time for each Region, occurring on a random day of the week. Valid days: Mon, Tue, Wed, Thu, Fri, Sat, Sun Constraints: Minimum 30-minute window.<br/>PreferredBackupWindow:  The daily time range during which automated backups are created if automated backups are enabled using the <code>BackupRetentionPeriod</code> parameter.  The default is a 30-minute window selected at random from an 8-hour block of time for each Region.  Constraints: <ul> <li> Must be in the format <code>hh24:mi-hh24:mi</code>. </li> <li> Must be in Universal Coordinated Time (UTC). </li> <li> Must not conflict with the preferred maintenance window.  </li> <li> Must be at least 30 minutes. </li> </ul><br/>MasterUserPassword:  The password for the master database user. This password can contain any printable ASCII character except forward slash (/), double quote ("), or the "at" symbol (@). Constraints: Must contain from 8 to 100 characters.<br/>MasterUsername:  The name of the master user for the cluster. Constraints: <ul> <li> Must be from 1 to 63 letters or numbers. </li> <li> The first character must be a letter. </li> <li> Cannot be a reserved word for the chosen database engine.  </li> </ul><br/>Port:  The port number on which the instances in the cluster accept connections.<br/>EngineVersion:  The version number of the database engine to use. The <code>--engine-version</code> will default to the latest major engine version. For production workloads, we recommend explicitly declaring this parameter with the intended major engine version.<br/>Engine:  The name of the database engine to be used for this cluster. Valid values: <code>docdb</code> <br/>DBSubnetGroupName:  A subnet group to associate with this cluster. Constraints: Must match the name of an existing <code>DBSubnetGroup</code>. Must not be default. Example: <code>mySubnetgroup</code> <br/>VpcSecurityGroupIds:  A list of EC2 VPC security groups to associate with this cluster. <br/>DBClusterParameterGroupName:  The name of the cluster parameter group to associate with this cluster.<br/>DBClusterIdentifier:  The cluster identifier. This parameter is stored as a lowercase string. Constraints: <ul> <li> Must contain from 1 to 63 letters, numbers, or hyphens.  </li> <li> The first character must be a letter. </li> <li> Cannot end with a hyphen or contain two consecutive hyphens.  </li> </ul> Example: <code>my-cluster</code> <br/>BackupRetentionPeriod:  The number of days for which automated backups are retained. You must specify a minimum value of 1. Default: 1 Constraints: <ul> <li> Must be a value from 1 to 35. </li> </ul><br/>AvailabilityZones:  A list of Amazon EC2 Availability Zones that instances in the cluster can be created in.<br/>
        :return: DBCluster:  Detailed information about a cluster. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeletionProtection</i> Specifies whether this cluster can be deleted. If <code>DeletionProtection</code> is enabled, the cluster cannot be deleted unless it is modified and <code>DeletionProtection</code> is disabled. <code>DeletionProtection</code> protects clusters from being accidentally deleted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnabledCloudwatchLogsExports</i> A list of log types that this cluster is configured to export to Amazon CloudWatch Logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterCreateTime</i> Specifies the time when the cluster was created, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociatedRoles</i> Provides a list of the Identity and Access Management (IAM) roles that are associated with the cluster. (IAM) roles that are associated with a cluster grant permission for the cluster to access other Amazon Web Services services on your behalf.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterArn</i> The Amazon Resource Name (ARN) for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DbClusterResourceId</i> The Region-unique, immutable identifier for the cluster. This identifier is found in CloudTrail log entries whenever the KMS key for the cluster is accessed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> If <code>StorageEncrypted</code> is <code>true</code>, the KMS key identifier for the encrypted cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageEncrypted</i> Specifies whether the cluster is encrypted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HostedZoneId</i> Specifies the ID that Amazon Route 53 assigns when you create a hosted zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcSecurityGroups</i> Provides a list of virtual private cloud (VPC) security groups that the cluster belongs to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterMembers</i> Provides the list of instances that make up the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadReplicaIdentifiers</i> Contains one or more identifiers of the secondary clusters that are associated with this cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationSourceIdentifier</i> Contains the identifier of the source cluster if this cluster is a secondary cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i> Specifies the weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredBackupWindow</i> Specifies the daily time range during which automated backups are created if automated backups are enabled, as determined by the <code>BackupRetentionPeriod</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUsername</i> Contains the master user name for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Specifies the port that the database engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestRestorableTime</i> Specifies the latest time to which a database can be restored with point-in-time restore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> Indicates the database engine version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> Provides the name of the database engine to be used for this cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiAZ</i> Specifies whether the cluster has instances in multiple Availability Zones.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReaderEndpoint</i> The reader endpoint for the cluster. The reader endpoint for a cluster load balances connections across the Amazon DocumentDB replicas that are available in a cluster. As clients request new connections to the reader endpoint, Amazon DocumentDB distributes the connection requests among the Amazon DocumentDB replicas in the cluster. This functionality can help balance your read workload across multiple Amazon DocumentDB replicas in your cluster.  If a failover occurs, and the Amazon DocumentDB replica that you are connected to is promoted to be the primary instance, your connection is dropped. To continue sending your read workload to other Amazon DocumentDB replicas in the cluster, you can then reconnect to the reader endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i> Specifies the connection endpoint for the primary instance of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EarliestRestorableTime</i> The earliest time to which a database can be restored with point-in-time restore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PercentProgress</i> Specifies the progress of the operation as a percentage.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Specifies the current state of this cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroup</i> Specifies information on the subnet group that is associated with the cluster, including the name, description, and subnets in the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterParameterGroup</i> Specifies the name of the cluster parameter group for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterIdentifier</i> Contains a user-supplied cluster identifier. This identifier is the unique key that identifies a cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupRetentionPeriod</i> Specifies the number of days for which automatic snapshots are retained.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZones</i> Provides the list of Amazon EC2 Availability Zones that instances in the cluster can be created in.<br/>        """
        pass

    def create_db_cluster_parameter_group(self, Description: str, DBParameterGroupFamily: str, DBClusterParameterGroupName: str, Tags: List[Tag]=None) -> CreateDBClusterParameterGroupResult:
        r"""Creates a new cluster parameter group. Parameters in a cluster parameter group apply to all of the instances in a cluster. A cluster parameter group is initially created with the default parameters for the database engine used by instances in the cluster. In Amazon DocumentDB, you cannot make modifications directly to the <code>default.docdb3.6</code> cluster parameter group. If your Amazon DocumentDB cluster is using the default cluster parameter group and you want to modify a value in it, you must first <a href="https://docs.aws.amazon.com/documentdb/latest/developerguide/cluster_parameter_group-create.html"> create a new parameter group</a> or <a href="https://docs.aws.amazon.com/documentdb/latest/developerguide/cluster_parameter_group-copy.html"> copy an existing parameter group</a>, modify it, and then apply the modified parameter group to your cluster. For the new cluster parameter group and associated settings to take effect, you must then reboot the instances in the cluster without failover. For more information, see <a href="https://docs.aws.amazon.com/documentdb/latest/developerguide/cluster_parameter_group-modify.html"> Modifying Amazon DocumentDB Cluster Parameter Groups</a>. 

        :param self:
        :param Tags:  The tags to be assigned to the cluster parameter group.<br/>Description:  The description for the cluster parameter group.<br/>DBParameterGroupFamily:  The cluster parameter group family name.<br/>DBClusterParameterGroupName:  The name of the cluster parameter group. Constraints: <ul> <li> Must not match the name of an existing <code>DBClusterParameterGroup</code>. </li> </ul> <note> This value is stored as a lowercase string. </note><br/>
        :return: DBClusterParameterGroup:  Detailed information about a cluster parameter group. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterParameterGroupArn</i> The Amazon Resource Name (ARN) for the cluster parameter group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> Provides the customer-specified description for this cluster parameter group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBParameterGroupFamily</i> Provides the name of the parameter group family that this cluster parameter group is compatible with.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterParameterGroupName</i> Provides the name of the cluster parameter group.<br/>        """
        pass

    def create_db_cluster_snapshot(self, DBClusterIdentifier: str, DBClusterSnapshotIdentifier: str, Tags: List[Tag]=None) -> CreateDBClusterSnapshotResult:
        r"""Creates a snapshot of a cluster. 

        :param self:
        :param Tags:  The tags to be assigned to the cluster snapshot.<br/>DBClusterIdentifier:  The identifier of the cluster to create a snapshot for. This parameter is not case sensitive. Constraints: <ul> <li> Must match the identifier of an existing <code>DBCluster</code>. </li> </ul> Example: <code>my-cluster</code> <br/>DBClusterSnapshotIdentifier:  The identifier of the cluster snapshot. This parameter is stored as a lowercase string. Constraints: <ul> <li> Must contain from 1 to 63 letters, numbers, or hyphens. </li> <li> The first character must be a letter. </li> <li> Cannot end with a hyphen or contain two consecutive hyphens.  </li> </ul> Example: <code>my-cluster-snapshot1</code> <br/>
        :return: DBClusterSnapshot:  Detailed information about a cluster snapshot. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceDBClusterSnapshotArn</i> If the cluster snapshot was copied from a source cluster snapshot, the ARN for the source cluster snapshot; otherwise, a null value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterSnapshotArn</i> The Amazon Resource Name (ARN) for the cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> If <code>StorageEncrypted</code> is <code>true</code>, the KMS key identifier for the encrypted cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageEncrypted</i> Specifies whether the cluster snapshot is encrypted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PercentProgress</i> Specifies the percentage of the estimated data that has been transferred.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotType</i> Provides the type of the cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> Provides the version of the database engine for this cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUsername</i> Provides the master user name for the cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterCreateTime</i> Specifies the time when the cluster was created, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> Provides the virtual private cloud (VPC) ID that is associated with the cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Specifies the port that the cluster was listening on at the time of the snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Specifies the status of this cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> Specifies the name of the database engine.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotCreateTime</i> Provides the time when the snapshot was taken, in UTC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterIdentifier</i> Specifies the cluster identifier of the cluster that this cluster snapshot was created from.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterSnapshotIdentifier</i> Specifies the identifier for the cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZones</i> Provides the list of Amazon EC2 Availability Zones that instances in the cluster snapshot can be restored in.<br/>        """
        pass

    def create_db_instance(self, DBClusterIdentifier: str, Engine: str, DBInstanceClass: str, DBInstanceIdentifier: str, AvailabilityZone: str=None, PreferredMaintenanceWindow: str=None, AutoMinorVersionUpgrade: BooleanOptional=None, Tags: List[Tag]=None, PromotionTier: int=None) -> CreateDBInstanceResult:
        r"""Creates a new instance.

        :param self:
        :param PromotionTier:  A value that specifies the order in which an Amazon DocumentDB replica is promoted to the primary instance after a failure of the existing primary instance. Default: 1 Valid values: 0-15<br/>DBClusterIdentifier:  The identifier of the cluster that the instance will belong to.<br/>Tags:  The tags to be assigned to the instance. You can assign up to 10 tags to an instance.<br/>AutoMinorVersionUpgrade:  This parameter does not apply to Amazon DocumentDB. Amazon DocumentDB does not perform minor version upgrades regardless of the value set. Default: <code>false</code> <br/>PreferredMaintenanceWindow:  The time range each week during which system maintenance can occur, in Universal Coordinated Time (UTC).  Format: <code>ddd:hh24:mi-ddd:hh24:mi</code>  The default is a 30-minute window selected at random from an 8-hour block of time for each Region, occurring on a random day of the week.  Valid days: Mon, Tue, Wed, Thu, Fri, Sat, Sun Constraints: Minimum 30-minute window.<br/>AvailabilityZone:  The Amazon EC2 Availability Zone that the instance is created in.  Default: A random, system-chosen Availability Zone in the endpoint's Region. Example: <code>us-east-1d</code> <br/>Engine:  The name of the database engine to be used for this instance. Valid value: <code>docdb</code> <br/>DBInstanceClass:  The compute and memory capacity of the instance; for example, <code>db.r5.large</code>. <br/>DBInstanceIdentifier:  The instance identifier. This parameter is stored as a lowercase string. Constraints: <ul> <li> Must contain from 1 to 63 letters, numbers, or hyphens. </li> <li> The first character must be a letter. </li> <li> Cannot end with a hyphen or contain two consecutive hyphens. </li> </ul> Example: <code>mydbinstance</code> <br/>
        :return: DBInstance:  Detailed information about an instance. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnabledCloudwatchLogsExports</i> A list of log types that this instance is configured to export to CloudWatch Logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceArn</i> The Amazon Resource Name (ARN) for the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PromotionTier</i> A value that specifies the order in which an Amazon DocumentDB replica is promoted to the primary instance after a failure of the existing primary instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CACertificateIdentifier</i> The identifier of the CA certificate for this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DbiResourceId</i> The Region-unique, immutable identifier for the instance. This identifier is found in CloudTrail log entries whenever the KMS key for the instance is accessed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i>  If <code>StorageEncrypted</code> is <code>true</code>, the KMS key identifier for the encrypted instance. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageEncrypted</i> Specifies whether or not the instance is encrypted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterIdentifier</i> Contains the name of the cluster that the instance is a member of if the instance is a member of a cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusInfos</i> The status of a read replica. If the instance is not a read replica, this is blank.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PubliclyAccessible</i> Not supported. Amazon DocumentDB does not currently support public endpoints. The value of <code>PubliclyAccessible</code> is always <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoMinorVersionUpgrade</i> Does not apply. This parameter does not apply to Amazon DocumentDB. Amazon DocumentDB does not perform minor version upgrades regardless of the value set.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> Indicates the database engine version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestRestorableTime</i> Specifies the latest time to which a database can be restored with point-in-time restore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingModifiedValues</i> Specifies that changes to the instance are pending. This element is included only when changes are pending. Specific changes are identified by subelements.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingModifiedValues</b>: Specifies that changes to the instance are pending. This element is included only when changes are pending. Specific changes are identified by subelements.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i> Specifies the weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroup</i> Specifies information on the subnet group that is associated with the instance, including the name, description, and subnets in the subnet group.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DBSubnetGroup</b>: Specifies information on the subnet group that is associated with the instance, including the name, description, and subnets in the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZone</i> Specifies the name of the Availability Zone that the instance is located in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcSecurityGroups</i> Provides a list of VPC security group elements that the instance belongs to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupRetentionPeriod</i> Specifies the number of days for which automatic snapshots are retained.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredBackupWindow</i>  Specifies the daily time range during which automated backups are created if automated backups are enabled, as determined by the <code>BackupRetentionPeriod</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceCreateTime</i> Provides the date and time that the instance was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i> Specifies the connection endpoint.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Endpoint</b>: Specifies the connection endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceStatus</i> Specifies the current state of this database.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> Provides the name of the database engine to be used for this instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceClass</i> Contains the name of the compute and memory capacity class of the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceIdentifier</i> Contains a user-provided database identifier. This identifier is the unique key that identifies an instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HostedZoneId</i> Specifies the ID that Amazon Route 53 assigns when you create a hosted zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Specifies the port that the database engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Address</i> Specifies the DNS address of the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupArn</i> The Amazon Resource Name (ARN) for the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Subnets</i> Detailed information about one or more subnets within a subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetGroupStatus</i> Provides the status of the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> Provides the virtual private cloud (VPC) ID of the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupDescription</i> Provides the description of the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupName</i> The name of the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupName</i> The new subnet group for the instance. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CACertificateIdentifier</i> Specifies the identifier of the certificate authority (CA) certificate for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageType</i> Specifies the storage type to be associated with the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceIdentifier</i>  Contains the new <code>DBInstanceIdentifier</code> for the instance that will be applied or is currently being applied. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Iops</i> Specifies the new Provisioned IOPS value for the instance that will be applied or is currently being applied.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LicenseModel</i> The license model for the instance. Valid values: <code>license-included</code>, <code>bring-your-own-license</code>, <code>general-public-license</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> Indicates the database engine version.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiAZ</i> Indicates that the Single-AZ instance is to change to a Multi-AZ deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupRetentionPeriod</i> Specifies the pending number of days for which automated backups are retained.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Specifies the pending port for the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUserPassword</i> Contains the pending or currently in-progress change of the master credentials for the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AllocatedStorage</i>  Contains the new <code>AllocatedStorage</code> size for then instance that will be applied or is currently being applied. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceClass</i>  Contains the new <code>DBInstanceClass</code> for the instance that will be applied or is currently being applied. <br/>A list of the log types whose configuration is still pending. These log types are in the process of being activated or deactivated.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingCloudwatchLogsExports</b>: A list of the log types whose configuration is still pending. These log types are in the process of being activated or deactivated.        """
        pass

    def create_db_subnet_group(self, SubnetIds: List[String], DBSubnetGroupDescription: str, DBSubnetGroupName: str, Tags: List[Tag]=None) -> CreateDBSubnetGroupResult:
        r"""Creates a new subnet group. subnet groups must contain at least one subnet in at least two Availability Zones in the Region.

        :param self:
        :param Tags:  The tags to be assigned to the subnet group.<br/>SubnetIds:  The Amazon EC2 subnet IDs for the subnet group.<br/>DBSubnetGroupDescription:  The description for the subnet group.<br/>DBSubnetGroupName:  The name for the subnet group. This value is stored as a lowercase string. Constraints: Must contain no more than 255 letters, numbers, periods, underscores, spaces, or hyphens. Must not be default. Example: <code>mySubnetgroup</code> <br/>
        :return: DBSubnetGroup:  Detailed information about a subnet group. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupArn</i> The Amazon Resource Name (ARN) for the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Subnets</i> Detailed information about one or more subnets within a subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetGroupStatus</i> Provides the status of the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> Provides the virtual private cloud (VPC) ID of the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupDescription</i> Provides the description of the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupName</i> The name of the subnet group.<br/>        """
        pass

    def create_event_subscription(self, SnsTopicArn: str, SubscriptionName: str, SourceType: str=None, EventCategories: List[String]=None, SourceIds: List[String]=None, Enabled: BooleanOptional=None, Tags: List[Tag]=None) -> CreateEventSubscriptionResult:
        r"""Creates an Amazon DocumentDB event notification subscription. This action requires a topic Amazon Resource Name (ARN) created by using the Amazon DocumentDB console, the Amazon SNS console, or the Amazon SNS API. To obtain an ARN with Amazon SNS, you must create a topic in Amazon SNS and subscribe to the topic. The ARN is displayed in the Amazon SNS console. You can specify the type of source (<code>SourceType</code>) that you want to be notified of. You can also provide a list of Amazon DocumentDB sources (<code>SourceIds</code>) that trigger the events, and you can provide a list of event categories (<code>EventCategories</code>) for events that you want to be notified of. For example, you can specify <code>SourceType = db-instance</code>, <code>SourceIds = mydbinstance1, mydbinstance2</code> and <code>EventCategories = Availability, Backup</code>. If you specify both the <code>SourceType</code> and <code>SourceIds</code> (such as <code>SourceType = db-instance</code> and <code>SourceIdentifier = myDBInstance1</code>), you are notified of all the <code>db-instance</code> events for the specified source. If you specify a <code>SourceType</code> but do not specify a <code>SourceIdentifier</code>, you receive notice of the events for that source type for all your Amazon DocumentDB sources. If you do not specify either the <code>SourceType</code> or the <code>SourceIdentifier</code>, you are notified of events generated from all Amazon DocumentDB sources belonging to your customer account.

        :param self:
        :param Tags:  The tags to be assigned to the event subscription.<br/>Enabled:   A Boolean value; set to <code>true</code> to activate the subscription, set to <code>false</code> to create the subscription but not active it. <br/>SourceIds:  The list of identifiers of the event sources for which events are returned. If not specified, then all sources are included in the response. An identifier must begin with a letter and must contain only ASCII letters, digits, and hyphens; it can't end with a hyphen or contain two consecutive hyphens. Constraints: <ul> <li> If <code>SourceIds</code> are provided, <code>SourceType</code> must also be provided. </li> <li> If the source type is an instance, a <code>DBInstanceIdentifier</code> must be provided. </li> <li> If the source type is a security group, a <code>DBSecurityGroupName</code> must be provided. </li> <li> If the source type is a parameter group, a <code>DBParameterGroupName</code> must be provided. </li> <li> If the source type is a snapshot, a <code>DBSnapshotIdentifier</code> must be provided. </li> </ul><br/>EventCategories:   A list of event categories for a <code>SourceType</code> that you want to subscribe to. <br/>SourceType:  The type of source that is generating the events. For example, if you want to be notified of events generated by an instance, you would set this parameter to <code>db-instance</code>. If this value is not specified, all events are returned. Valid values: <code>db-instance</code>, <code>db-cluster</code>, <code>db-parameter-group</code>, <code>db-security-group</code>, <code>db-cluster-snapshot</code> <br/>SnsTopicArn:  The Amazon Resource Name (ARN) of the SNS topic created for event notification. Amazon SNS creates the ARN when you create a topic and subscribe to it.<br/>SubscriptionName:  The name of the subscription. Constraints: The name must be fewer than 255 characters.<br/>
        :return: EventSubscription:  Detailed information about an event to which you have subscribed.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EventSubscriptionArn</i> The Amazon Resource Name (ARN) for the event subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> A Boolean value indicating whether the subscription is enabled. A value of <code>true</code> indicates that the subscription is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EventCategoriesList</i> A list of event categories for the Amazon DocumentDB event notification subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceIdsList</i> A list of source IDs for the Amazon DocumentDB event notification subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceType</i> The source type for the Amazon DocumentDB event notification subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubscriptionCreationTime</i> The time at which the Amazon DocumentDB event notification subscription was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the Amazon DocumentDB event notification subscription. Constraints: Can be one of the following: <code>creating</code>, <code>modifying</code>, <code>deleting</code>, <code>active</code>, <code>no-permission</code>, <code>topic-not-exist</code>  The <code>no-permission</code> status indicates that Amazon DocumentDB no longer has permission to post to the SNS topic. The <code>topic-not-exist</code> status indicates that the topic was deleted after the subscription was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnsTopicArn</i> The topic ARN of the Amazon DocumentDB event notification subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustSubscriptionId</i> The Amazon DocumentDB event notification subscription ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomerAwsId</i> The Amazon Web Services customer account that is associated with the Amazon DocumentDB event notification subscription.<br/>        """
        pass

    def create_global_cluster(self, GlobalClusterIdentifier: str, SourceDBClusterIdentifier: str=None, Engine: str=None, EngineVersion: str=None, DeletionProtection: BooleanOptional=None, DatabaseName: str=None, StorageEncrypted: BooleanOptional=None) -> CreateGlobalClusterResult:
        r"""Creates an Amazon DocumentDB global cluster that can span multiple multiple Regions. The global cluster contains one primary cluster with read-write capability, and up-to give read-only secondary clusters. Global clusters uses storage-based fast replication across regions with latencies less than one second, using dedicated infrastructure with no impact to your workload’s performance. <p/> You can create a global cluster that is initially empty, and then add a primary and a secondary to it. Or you can specify an existing cluster during the create operation, and this cluster becomes the primary of the global cluster.  <note> This action only applies to Amazon DocumentDB clusters. </note>

        :param self:
        :param StorageEncrypted:  The storage encryption setting for the new global cluster. <br/>DatabaseName:  The name for your database of up to 64 alpha-numeric characters. If you do not provide a name, Amazon DocumentDB will not create a database in the global cluster you are creating.<br/>DeletionProtection:  The deletion protection setting for the new global cluster. The global cluster can't be deleted when deletion protection is enabled. <br/>EngineVersion:  The engine version of the global cluster.<br/>Engine:  The name of the database engine to be used for this cluster.<br/>SourceDBClusterIdentifier:  The Amazon Resource Name (ARN) to use as the primary cluster of the global cluster. This parameter is optional.<br/>GlobalClusterIdentifier:  The cluster identifier of the new global cluster.<br/>
        :return: GlobalCluster:  A data type representing an Amazon DocumentDB global cluster.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalClusterMembers</i> The list of cluster IDs for secondary clusters within the global cluster. Currently limited to one item. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeletionProtection</i> The deletion protection setting for the new global cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageEncrypted</i> The storage encryption setting for the global cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> The default database name within the new global cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> Indicates the database engine version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> The Amazon DocumentDB database engine used by the global cluster. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Specifies the current state of this global cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalClusterArn</i> The Amazon Resource Name (ARN) for the global cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalClusterResourceId</i> The Region-unique, immutable identifier for the global database cluster. This identifier is found in AWS CloudTrail log entries whenever the AWS KMS customer master key (CMK) for the cluster is accessed. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalClusterIdentifier</i> Contains a user-supplied global cluster identifier. This identifier is the unique key that identifies a global cluster. <br/>        """
        pass

    def delete_db_cluster(self, DBClusterIdentifier: str, SkipFinalSnapshot: Boolean=None, FinalDBSnapshotIdentifier: str=None) -> DeleteDBClusterResult:
        r"""Deletes a previously provisioned cluster. When you delete a cluster, all automated backups for that cluster are deleted and can't be recovered. Manual DB cluster snapshots of the specified cluster are not deleted. <p/>

        :param self:
        :param FinalDBSnapshotIdentifier:   The cluster snapshot identifier of the new cluster snapshot created when <code>SkipFinalSnapshot</code> is set to <code>false</code>.  <note>  Specifying this parameter and also setting the <code>SkipFinalShapshot</code> parameter to <code>true</code> results in an error.  </note> Constraints: <ul> <li> Must be from 1 to 255 letters, numbers, or hyphens. </li> <li> The first character must be a letter. </li> <li> Cannot end with a hyphen or contain two consecutive hyphens. </li> </ul><br/>SkipFinalSnapshot:   Determines whether a final cluster snapshot is created before the cluster is deleted. If <code>true</code> is specified, no cluster snapshot is created. If <code>false</code> is specified, a cluster snapshot is created before the DB cluster is deleted.  <note> If <code>SkipFinalSnapshot</code> is <code>false</code>, you must specify a <code>FinalDBSnapshotIdentifier</code> parameter. </note> Default: <code>false</code> <br/>DBClusterIdentifier:  The cluster identifier for the cluster to be deleted. This parameter isn't case sensitive. Constraints: <ul> <li> Must match an existing <code>DBClusterIdentifier</code>. </li> </ul><br/>
        :return: DBCluster:  Detailed information about a cluster. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeletionProtection</i> Specifies whether this cluster can be deleted. If <code>DeletionProtection</code> is enabled, the cluster cannot be deleted unless it is modified and <code>DeletionProtection</code> is disabled. <code>DeletionProtection</code> protects clusters from being accidentally deleted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnabledCloudwatchLogsExports</i> A list of log types that this cluster is configured to export to Amazon CloudWatch Logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterCreateTime</i> Specifies the time when the cluster was created, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociatedRoles</i> Provides a list of the Identity and Access Management (IAM) roles that are associated with the cluster. (IAM) roles that are associated with a cluster grant permission for the cluster to access other Amazon Web Services services on your behalf.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterArn</i> The Amazon Resource Name (ARN) for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DbClusterResourceId</i> The Region-unique, immutable identifier for the cluster. This identifier is found in CloudTrail log entries whenever the KMS key for the cluster is accessed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> If <code>StorageEncrypted</code> is <code>true</code>, the KMS key identifier for the encrypted cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageEncrypted</i> Specifies whether the cluster is encrypted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HostedZoneId</i> Specifies the ID that Amazon Route 53 assigns when you create a hosted zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcSecurityGroups</i> Provides a list of virtual private cloud (VPC) security groups that the cluster belongs to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterMembers</i> Provides the list of instances that make up the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadReplicaIdentifiers</i> Contains one or more identifiers of the secondary clusters that are associated with this cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationSourceIdentifier</i> Contains the identifier of the source cluster if this cluster is a secondary cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i> Specifies the weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredBackupWindow</i> Specifies the daily time range during which automated backups are created if automated backups are enabled, as determined by the <code>BackupRetentionPeriod</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUsername</i> Contains the master user name for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Specifies the port that the database engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestRestorableTime</i> Specifies the latest time to which a database can be restored with point-in-time restore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> Indicates the database engine version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> Provides the name of the database engine to be used for this cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiAZ</i> Specifies whether the cluster has instances in multiple Availability Zones.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReaderEndpoint</i> The reader endpoint for the cluster. The reader endpoint for a cluster load balances connections across the Amazon DocumentDB replicas that are available in a cluster. As clients request new connections to the reader endpoint, Amazon DocumentDB distributes the connection requests among the Amazon DocumentDB replicas in the cluster. This functionality can help balance your read workload across multiple Amazon DocumentDB replicas in your cluster.  If a failover occurs, and the Amazon DocumentDB replica that you are connected to is promoted to be the primary instance, your connection is dropped. To continue sending your read workload to other Amazon DocumentDB replicas in the cluster, you can then reconnect to the reader endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i> Specifies the connection endpoint for the primary instance of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EarliestRestorableTime</i> The earliest time to which a database can be restored with point-in-time restore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PercentProgress</i> Specifies the progress of the operation as a percentage.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Specifies the current state of this cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroup</i> Specifies information on the subnet group that is associated with the cluster, including the name, description, and subnets in the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterParameterGroup</i> Specifies the name of the cluster parameter group for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterIdentifier</i> Contains a user-supplied cluster identifier. This identifier is the unique key that identifies a cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupRetentionPeriod</i> Specifies the number of days for which automatic snapshots are retained.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZones</i> Provides the list of Amazon EC2 Availability Zones that instances in the cluster can be created in.<br/>        """
        pass

    def delete_db_cluster_parameter_group(self, DBClusterParameterGroupName: str):
        r"""Deletes a specified cluster parameter group. The cluster parameter group to be deleted can't be associated with any clusters.

        :param self:
        :param DBClusterParameterGroupName:  The name of the cluster parameter group. Constraints: <ul> <li> Must be the name of an existing cluster parameter group. </li> <li> You can't delete a default cluster parameter group. </li> <li> Cannot be associated with any clusters. </li> </ul><br/>
        :return:         """
        pass

    def delete_db_cluster_snapshot(self, DBClusterSnapshotIdentifier: str) -> DeleteDBClusterSnapshotResult:
        r"""Deletes a cluster snapshot. If the snapshot is being copied, the copy operation is terminated. <note> The cluster snapshot must be in the <code>available</code> state to be deleted. </note>

        :param self:
        :param DBClusterSnapshotIdentifier:  The identifier of the cluster snapshot to delete. Constraints: Must be the name of an existing cluster snapshot in the <code>available</code> state.<br/>
        :return: DBClusterSnapshot:  Detailed information about a cluster snapshot. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceDBClusterSnapshotArn</i> If the cluster snapshot was copied from a source cluster snapshot, the ARN for the source cluster snapshot; otherwise, a null value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterSnapshotArn</i> The Amazon Resource Name (ARN) for the cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> If <code>StorageEncrypted</code> is <code>true</code>, the KMS key identifier for the encrypted cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageEncrypted</i> Specifies whether the cluster snapshot is encrypted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PercentProgress</i> Specifies the percentage of the estimated data that has been transferred.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotType</i> Provides the type of the cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> Provides the version of the database engine for this cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUsername</i> Provides the master user name for the cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterCreateTime</i> Specifies the time when the cluster was created, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> Provides the virtual private cloud (VPC) ID that is associated with the cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Specifies the port that the cluster was listening on at the time of the snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Specifies the status of this cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> Specifies the name of the database engine.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotCreateTime</i> Provides the time when the snapshot was taken, in UTC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterIdentifier</i> Specifies the cluster identifier of the cluster that this cluster snapshot was created from.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterSnapshotIdentifier</i> Specifies the identifier for the cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZones</i> Provides the list of Amazon EC2 Availability Zones that instances in the cluster snapshot can be restored in.<br/>        """
        pass

    def delete_db_instance(self, DBInstanceIdentifier: str) -> DeleteDBInstanceResult:
        r"""Deletes a previously provisioned instance.

        :param self:
        :param DBInstanceIdentifier:  The instance identifier for the instance to be deleted. This parameter isn't case sensitive. Constraints: <ul> <li> Must match the name of an existing instance. </li> </ul><br/>
        :return: DBInstance:  Detailed information about an instance. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnabledCloudwatchLogsExports</i> A list of log types that this instance is configured to export to CloudWatch Logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceArn</i> The Amazon Resource Name (ARN) for the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PromotionTier</i> A value that specifies the order in which an Amazon DocumentDB replica is promoted to the primary instance after a failure of the existing primary instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CACertificateIdentifier</i> The identifier of the CA certificate for this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DbiResourceId</i> The Region-unique, immutable identifier for the instance. This identifier is found in CloudTrail log entries whenever the KMS key for the instance is accessed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i>  If <code>StorageEncrypted</code> is <code>true</code>, the KMS key identifier for the encrypted instance. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageEncrypted</i> Specifies whether or not the instance is encrypted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterIdentifier</i> Contains the name of the cluster that the instance is a member of if the instance is a member of a cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusInfos</i> The status of a read replica. If the instance is not a read replica, this is blank.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PubliclyAccessible</i> Not supported. Amazon DocumentDB does not currently support public endpoints. The value of <code>PubliclyAccessible</code> is always <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoMinorVersionUpgrade</i> Does not apply. This parameter does not apply to Amazon DocumentDB. Amazon DocumentDB does not perform minor version upgrades regardless of the value set.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> Indicates the database engine version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestRestorableTime</i> Specifies the latest time to which a database can be restored with point-in-time restore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingModifiedValues</i> Specifies that changes to the instance are pending. This element is included only when changes are pending. Specific changes are identified by subelements.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingModifiedValues</b>: Specifies that changes to the instance are pending. This element is included only when changes are pending. Specific changes are identified by subelements.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i> Specifies the weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroup</i> Specifies information on the subnet group that is associated with the instance, including the name, description, and subnets in the subnet group.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DBSubnetGroup</b>: Specifies information on the subnet group that is associated with the instance, including the name, description, and subnets in the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZone</i> Specifies the name of the Availability Zone that the instance is located in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcSecurityGroups</i> Provides a list of VPC security group elements that the instance belongs to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupRetentionPeriod</i> Specifies the number of days for which automatic snapshots are retained.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredBackupWindow</i>  Specifies the daily time range during which automated backups are created if automated backups are enabled, as determined by the <code>BackupRetentionPeriod</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceCreateTime</i> Provides the date and time that the instance was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i> Specifies the connection endpoint.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Endpoint</b>: Specifies the connection endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceStatus</i> Specifies the current state of this database.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> Provides the name of the database engine to be used for this instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceClass</i> Contains the name of the compute and memory capacity class of the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceIdentifier</i> Contains a user-provided database identifier. This identifier is the unique key that identifies an instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HostedZoneId</i> Specifies the ID that Amazon Route 53 assigns when you create a hosted zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Specifies the port that the database engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Address</i> Specifies the DNS address of the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupArn</i> The Amazon Resource Name (ARN) for the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Subnets</i> Detailed information about one or more subnets within a subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetGroupStatus</i> Provides the status of the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> Provides the virtual private cloud (VPC) ID of the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupDescription</i> Provides the description of the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupName</i> The name of the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupName</i> The new subnet group for the instance. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CACertificateIdentifier</i> Specifies the identifier of the certificate authority (CA) certificate for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageType</i> Specifies the storage type to be associated with the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceIdentifier</i>  Contains the new <code>DBInstanceIdentifier</code> for the instance that will be applied or is currently being applied. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Iops</i> Specifies the new Provisioned IOPS value for the instance that will be applied or is currently being applied.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LicenseModel</i> The license model for the instance. Valid values: <code>license-included</code>, <code>bring-your-own-license</code>, <code>general-public-license</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> Indicates the database engine version.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiAZ</i> Indicates that the Single-AZ instance is to change to a Multi-AZ deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupRetentionPeriod</i> Specifies the pending number of days for which automated backups are retained.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Specifies the pending port for the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUserPassword</i> Contains the pending or currently in-progress change of the master credentials for the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AllocatedStorage</i>  Contains the new <code>AllocatedStorage</code> size for then instance that will be applied or is currently being applied. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceClass</i>  Contains the new <code>DBInstanceClass</code> for the instance that will be applied or is currently being applied. <br/>A list of the log types whose configuration is still pending. These log types are in the process of being activated or deactivated.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingCloudwatchLogsExports</b>: A list of the log types whose configuration is still pending. These log types are in the process of being activated or deactivated.        """
        pass

    def delete_db_subnet_group(self, DBSubnetGroupName: str):
        r"""Deletes a subnet group. <note> The specified database subnet group must not be associated with any DB instances. </note>

        :param self:
        :param DBSubnetGroupName:  The name of the database subnet group to delete. <note> You can't delete the default subnet group. </note> Constraints: Must match the name of an existing <code>DBSubnetGroup</code>. Must not be default. Example: <code>mySubnetgroup</code> <br/>
        :return:         """
        pass

    def delete_event_subscription(self, SubscriptionName: str) -> DeleteEventSubscriptionResult:
        r"""Deletes an Amazon DocumentDB event notification subscription.

        :param self:
        :param SubscriptionName:  The name of the Amazon DocumentDB event notification subscription that you want to delete.<br/>
        :return: EventSubscription:  Detailed information about an event to which you have subscribed.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EventSubscriptionArn</i> The Amazon Resource Name (ARN) for the event subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> A Boolean value indicating whether the subscription is enabled. A value of <code>true</code> indicates that the subscription is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EventCategoriesList</i> A list of event categories for the Amazon DocumentDB event notification subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceIdsList</i> A list of source IDs for the Amazon DocumentDB event notification subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceType</i> The source type for the Amazon DocumentDB event notification subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubscriptionCreationTime</i> The time at which the Amazon DocumentDB event notification subscription was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the Amazon DocumentDB event notification subscription. Constraints: Can be one of the following: <code>creating</code>, <code>modifying</code>, <code>deleting</code>, <code>active</code>, <code>no-permission</code>, <code>topic-not-exist</code>  The <code>no-permission</code> status indicates that Amazon DocumentDB no longer has permission to post to the SNS topic. The <code>topic-not-exist</code> status indicates that the topic was deleted after the subscription was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnsTopicArn</i> The topic ARN of the Amazon DocumentDB event notification subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustSubscriptionId</i> The Amazon DocumentDB event notification subscription ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomerAwsId</i> The Amazon Web Services customer account that is associated with the Amazon DocumentDB event notification subscription.<br/>        """
        pass

    def delete_global_cluster(self, GlobalClusterIdentifier: str) -> DeleteGlobalClusterResult:
        r"""Deletes a global cluster. The primary and secondary clusters must already be detached or deleted before attempting to delete a global cluster. <note> This action only applies to Amazon DocumentDB clusters. </note>

        :param self:
        :param GlobalClusterIdentifier:  The cluster identifier of the global cluster being deleted.<br/>
        :return: GlobalCluster:  A data type representing an Amazon DocumentDB global cluster.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalClusterMembers</i> The list of cluster IDs for secondary clusters within the global cluster. Currently limited to one item. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeletionProtection</i> The deletion protection setting for the new global cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageEncrypted</i> The storage encryption setting for the global cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> The default database name within the new global cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> Indicates the database engine version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> The Amazon DocumentDB database engine used by the global cluster. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Specifies the current state of this global cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalClusterArn</i> The Amazon Resource Name (ARN) for the global cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalClusterResourceId</i> The Region-unique, immutable identifier for the global database cluster. This identifier is found in AWS CloudTrail log entries whenever the AWS KMS customer master key (CMK) for the cluster is accessed. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalClusterIdentifier</i> Contains a user-supplied global cluster identifier. This identifier is the unique key that identifies a global cluster. <br/>        """
        pass

    def describe_certificates(self, CertificateIdentifier: str=None, Filters: List[Filter]=None, MaxRecords: int=None, Marker: str=None) -> CertificateMessage:
        r"""Returns a list of certificate authority (CA) certificates provided by Amazon DocumentDB for this account.

        :param self:
        :param Marker:  An optional pagination token provided by a previous <code>DescribeCertificates</code> request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>.<br/>MaxRecords:  The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a pagination token called a marker is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: <ul> <li> Minimum: 20 </li> <li> Maximum: 100 </li> </ul><br/>Filters:  This parameter is not currently supported.<br/>CertificateIdentifier:  The user-supplied certificate identifier. If this parameter is specified, information for only the specified certificate is returned. If this parameter is omitted, a list of up to <code>MaxRecords</code> certificates is returned. This parameter is not case sensitive. Constraints <ul> <li> Must match an existing <code>CertificateIdentifier</code>. </li> </ul><br/>
        :return: Marker:  An optional pagination token provided if the number of records retrieved is greater than <code>MaxRecords</code>. If this parameter is specified, the marker specifies the next record in the list. Including the value of <code>Marker</code> in the next call to <code>DescribeCertificates</code> results in the next page of certificates.<br/>Certificates:  A list of certificates for this account.<br/>        """
        pass

    def describe_db_cluster_parameter_groups(self, DBClusterParameterGroupName: str=None, Filters: List[Filter]=None, MaxRecords: int=None, Marker: str=None) -> DBClusterParameterGroupsMessage:
        r"""Returns a list of <code>DBClusterParameterGroup</code> descriptions. If a <code>DBClusterParameterGroupName</code> parameter is specified, the list contains only the description of the specified cluster parameter group. 

        :param self:
        :param Marker:  An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>.<br/>MaxRecords:   The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a pagination token (marker) is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: Minimum 20, maximum 100.<br/>Filters:  This parameter is not currently supported.<br/>DBClusterParameterGroupName:  The name of a specific cluster parameter group to return details for. Constraints: <ul> <li> If provided, must match the name of an existing <code>DBClusterParameterGroup</code>. </li> </ul><br/>
        :return: DBClusterParameterGroups:  A list of cluster parameter groups.<br/>Marker:  An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>.<br/>        """
        pass

    def describe_db_cluster_parameters(self, DBClusterParameterGroupName: str, Source: str=None, Filters: List[Filter]=None, MaxRecords: int=None, Marker: str=None) -> DBClusterParameterGroupDetails:
        r"""Returns the detailed parameter list for a particular cluster parameter group.

        :param self:
        :param Marker:  An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>.<br/>MaxRecords:   The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a pagination token (marker) is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: Minimum 20, maximum 100.<br/>Filters:  This parameter is not currently supported.<br/>Source:   A value that indicates to return only parameters for a specific source. Parameter sources can be <code>engine</code>, <code>service</code>, or <code>customer</code>. <br/>DBClusterParameterGroupName:  The name of a specific cluster parameter group to return parameter details for. Constraints: <ul> <li> If provided, must match the name of an existing <code>DBClusterParameterGroup</code>. </li> </ul><br/>
        :return: Marker:  An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>.<br/>Parameters:  Provides a list of parameters for the cluster parameter group.<br/>        """
        pass

    def describe_db_cluster_snapshot_attributes(self, DBClusterSnapshotIdentifier: str) -> DescribeDBClusterSnapshotAttributesResult:
        r"""Returns a list of cluster snapshot attribute names and values for a manual DB cluster snapshot. When you share snapshots with other accounts, <code>DescribeDBClusterSnapshotAttributes</code> returns the <code>restore</code> attribute and a list of IDs for the accounts that are authorized to copy or restore the manual cluster snapshot. If <code>all</code> is included in the list of values for the <code>restore</code> attribute, then the manual cluster snapshot is public and can be copied or restored by all accounts.

        :param self:
        :param DBClusterSnapshotIdentifier:  The identifier for the cluster snapshot to describe the attributes for.<br/>
        :return: DBClusterSnapshotAttributesResult:  Detailed information about the attributes that are associated with a cluster snapshot.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterSnapshotAttributes</i> The list of attributes and values for the cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterSnapshotIdentifier</i> The identifier of the cluster snapshot that the attributes apply to.<br/>        """
        pass

    def describe_db_cluster_snapshots(self, DBClusterIdentifier: str=None, DBClusterSnapshotIdentifier: str=None, SnapshotType: str=None, Filters: List[Filter]=None, MaxRecords: int=None, Marker: str=None, IncludeShared: Boolean=None, IncludePublic: Boolean=None) -> DBClusterSnapshotMessage:
        r"""Returns information about cluster snapshots. This API operation supports pagination.

        :param self:
        :param IncludePublic:  Set to <code>true</code> to include manual cluster snapshots that are public and can be copied or restored by any account, and otherwise <code>false</code>. The default is <code>false</code>.<br/>IncludeShared:  Set to <code>true</code> to include shared manual cluster snapshots from other accounts that this account has been given permission to copy or restore, and otherwise <code>false</code>. The default is <code>false</code>.<br/>Marker:  An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>.<br/>MaxRecords:   The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a pagination token (marker) is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: Minimum 20, maximum 100.<br/>Filters:  This parameter is not currently supported.<br/>SnapshotType:  The type of cluster snapshots to be returned. You can specify one of the following values: <ul> <li>  <code>automated</code> - Return all cluster snapshots that Amazon DocumentDB has automatically created for your account. </li> <li>  <code>manual</code> - Return all cluster snapshots that you have manually created for your account. </li> <li>  <code>shared</code> - Return all manual cluster snapshots that have been shared to your account. </li> <li>  <code>public</code> - Return all cluster snapshots that have been marked as public. </li> </ul> If you don't specify a <code>SnapshotType</code> value, then both automated and manual cluster snapshots are returned. You can include shared cluster snapshots with these results by setting the <code>IncludeShared</code> parameter to <code>true</code>. You can include public cluster snapshots with these results by setting the<code>IncludePublic</code> parameter to <code>true</code>. The <code>IncludeShared</code> and <code>IncludePublic</code> parameters don't apply for <code>SnapshotType</code> values of <code>manual</code> or <code>automated</code>. The <code>IncludePublic</code> parameter doesn't apply when <code>SnapshotType</code> is set to <code>shared</code>. The <code>IncludeShared</code> parameter doesn't apply when <code>SnapshotType</code> is set to <code>public</code>.<br/>DBClusterSnapshotIdentifier:  A specific cluster snapshot identifier to describe. This parameter can't be used with the <code>DBClusterIdentifier</code> parameter. This value is stored as a lowercase string.  Constraints: <ul> <li> If provided, must match the identifier of an existing <code>DBClusterSnapshot</code>. </li> <li> If this identifier is for an automated snapshot, the <code>SnapshotType</code> parameter must also be specified. </li> </ul><br/>DBClusterIdentifier:  The ID of the cluster to retrieve the list of cluster snapshots for. This parameter can't be used with the <code>DBClusterSnapshotIdentifier</code> parameter. This parameter is not case sensitive.  Constraints: <ul> <li> If provided, must match the identifier of an existing <code>DBCluster</code>. </li> </ul><br/>
        :return: DBClusterSnapshots:  Provides a list of cluster snapshots.<br/>Marker:  An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>.<br/>        """
        pass

    def describe_db_clusters(self, DBClusterIdentifier: str=None, Filters: List[Filter]=None, MaxRecords: int=None, Marker: str=None) -> DBClusterMessage:
        r"""Returns information about provisioned Amazon DocumentDB clusters. This API operation supports pagination. For certain management features such as cluster and instance lifecycle management, Amazon DocumentDB leverages operational technology that is shared with Amazon RDS and Amazon Neptune. Use the <code>filterName=engine,Values=docdb</code> filter parameter to return only Amazon DocumentDB clusters.

        :param self:
        :param Marker:  An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>.<br/>MaxRecords:   The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a pagination token (marker) is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: Minimum 20, maximum 100.<br/>Filters:  A filter that specifies one or more clusters to describe. Supported filters: <ul> <li>  <code>db-cluster-id</code> - Accepts cluster identifiers and cluster Amazon Resource Names (ARNs). The results list only includes information about the clusters identified by these ARNs. </li> </ul><br/>DBClusterIdentifier:  The user-provided cluster identifier. If this parameter is specified, information from only the specific cluster is returned. This parameter isn't case sensitive. Constraints: <ul> <li> If provided, must match an existing <code>DBClusterIdentifier</code>. </li> </ul><br/>
        :return: DBClusters:  A list of clusters.<br/>Marker:  An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>.<br/>        """
        pass

    def describe_db_engine_versions(self, Engine: str=None, EngineVersion: str=None, DBParameterGroupFamily: str=None, Filters: List[Filter]=None, MaxRecords: int=None, Marker: str=None, DefaultOnly: Boolean=None, ListSupportedCharacterSets: BooleanOptional=None, ListSupportedTimezones: BooleanOptional=None) -> DBEngineVersionMessage:
        r"""Returns a list of the available engines.

        :param self:
        :param ListSupportedTimezones:  If this parameter is specified and the requested engine supports the <code>TimeZone</code> parameter for <code>CreateDBInstance</code>, the response includes a list of supported time zones for each engine version. <br/>ListSupportedCharacterSets:  If this parameter is specified and the requested engine supports the <code>CharacterSetName</code> parameter for <code>CreateDBInstance</code>, the response includes a list of supported character sets for each engine version. <br/>DefaultOnly:  Indicates that only the default version of the specified engine or engine and major version combination is returned.<br/>Marker:  An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>.<br/>MaxRecords:   The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a pagination token (marker) is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: Minimum 20, maximum 100.<br/>Filters:  This parameter is not currently supported.<br/>DBParameterGroupFamily:  The name of a specific parameter group family to return details for. Constraints: <ul> <li> If provided, must match an existing <code>DBParameterGroupFamily</code>. </li> </ul><br/>EngineVersion:  The database engine version to return. Example: <code>3.6.0</code> <br/>Engine:  The database engine to return.<br/>
        :return: DBEngineVersions:  Detailed information about one or more engine versions.<br/>Marker:  An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>.<br/>        """
        pass

    def describe_db_instances(self, DBInstanceIdentifier: str=None, Filters: List[Filter]=None, MaxRecords: int=None, Marker: str=None) -> DBInstanceMessage:
        r"""Returns information about provisioned Amazon DocumentDB instances. This API supports pagination.

        :param self:
        :param Marker:  An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>.<br/>MaxRecords:   The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a pagination token (marker) is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: Minimum 20, maximum 100.<br/>Filters:  A filter that specifies one or more instances to describe. Supported filters: <ul> <li>  <code>db-cluster-id</code> - Accepts cluster identifiers and cluster Amazon Resource Names (ARNs). The results list includes only the information about the instances that are associated with the clusters that are identified by these ARNs. </li> <li>  <code>db-instance-id</code> - Accepts instance identifiers and instance ARNs. The results list includes only the information about the instances that are identified by these ARNs. </li> </ul><br/>DBInstanceIdentifier:  The user-provided instance identifier. If this parameter is specified, information from only the specific instance is returned. This parameter isn't case sensitive. Constraints: <ul> <li> If provided, must match the identifier of an existing <code>DBInstance</code>. </li> </ul><br/>
        :return: DBInstances:  Detailed information about one or more instances. <br/>Marker:  An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>.<br/>        """
        pass

    def describe_db_subnet_groups(self, DBSubnetGroupName: str=None, Filters: List[Filter]=None, MaxRecords: int=None, Marker: str=None) -> DBSubnetGroupMessage:
        r"""Returns a list of <code>DBSubnetGroup</code> descriptions. If a <code>DBSubnetGroupName</code> is specified, the list will contain only the descriptions of the specified <code>DBSubnetGroup</code>.

        :param self:
        :param Marker:  An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>.<br/>MaxRecords:   The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a pagination token (marker) is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: Minimum 20, maximum 100.<br/>Filters:  This parameter is not currently supported.<br/>DBSubnetGroupName:  The name of the subnet group to return details for.<br/>
        :return: DBSubnetGroups:  Detailed information about one or more subnet groups.<br/>Marker:  An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>.<br/>        """
        pass

    def describe_engine_default_cluster_parameters(self, DBParameterGroupFamily: str, Filters: List[Filter]=None, MaxRecords: int=None, Marker: str=None) -> DescribeEngineDefaultClusterParametersResult:
        r"""Returns the default engine and system parameter information for the cluster database engine.

        :param self:
        :param Marker:  An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>.<br/>MaxRecords:   The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a pagination token (marker) is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: Minimum 20, maximum 100.<br/>Filters:  This parameter is not currently supported.<br/>DBParameterGroupFamily:  The name of the cluster parameter group family to return the engine parameter information for.<br/>
        :return: EngineDefaults:  Contains the result of a successful invocation of the <code>DescribeEngineDefaultClusterParameters</code> operation. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Parameters</i> The parameters of a particular cluster parameter group family.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Marker</i> An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBParameterGroupFamily</i> The name of the cluster parameter group family to return the engine parameter information for.<br/>        """
        pass

    def describe_event_categories(self, SourceType: str=None, Filters: List[Filter]=None) -> EventCategoriesMessage:
        r"""Displays a list of categories for all event source types, or, if specified, for a specified source type. 

        :param self:
        :param Filters:  This parameter is not currently supported.<br/>SourceType:  The type of source that is generating the events. Valid values: <code>db-instance</code>, <code>db-parameter-group</code>, <code>db-security-group</code> <br/>
        :return: EventCategoriesMapList:  A list of event category maps.<br/>        """
        pass

    def describe_event_subscriptions(self, SubscriptionName: str=None, Filters: List[Filter]=None, MaxRecords: int=None, Marker: str=None) -> EventSubscriptionsMessage:
        r"""Lists all the subscription descriptions for a customer account. The description for a subscription includes <code>SubscriptionName</code>, <code>SNSTopicARN</code>, <code>CustomerID</code>, <code>SourceType</code>, <code>SourceID</code>, <code>CreationTime</code>, and <code>Status</code>. If you specify a <code>SubscriptionName</code>, lists the description for that subscription.

        :param self:
        :param Marker:  An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>.<br/>MaxRecords:   The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a pagination token (marker) is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: Minimum 20, maximum 100.<br/>Filters:  This parameter is not currently supported.<br/>SubscriptionName:  The name of the Amazon DocumentDB event notification subscription that you want to describe.<br/>
        :return: EventSubscriptionsList:  A list of event subscriptions.<br/>Marker:  An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>.<br/>        """
        pass

    def describe_events(self, SourceIdentifier: str=None, SourceType: str=None, StartTime: TStamp=None, EndTime: TStamp=None, Duration: int=None, EventCategories: List[String]=None, Filters: List[Filter]=None, MaxRecords: int=None, Marker: str=None) -> EventsMessage:
        r"""Returns events related to instances, security groups, snapshots, and DB parameter groups for the past 14 days. You can obtain events specific to a particular DB instance, security group, snapshot, or parameter group by providing the name as a parameter. By default, the events of the past hour are returned.

        :param self:
        :param Marker:  An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>.<br/>MaxRecords:   The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a pagination token (marker) is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: Minimum 20, maximum 100.<br/>Filters:  This parameter is not currently supported.<br/>EventCategories:  A list of event categories that trigger notifications for an event notification subscription.<br/>Duration:  The number of minutes to retrieve events for. Default: 60<br/>EndTime:   The end of the time interval for which to retrieve events, specified in ISO 8601 format.  Example: 2009-07-08T18:00Z<br/>StartTime:   The beginning of the time interval to retrieve events for, specified in ISO 8601 format.  Example: 2009-07-08T18:00Z<br/>SourceType:  The event source to retrieve events for. If no value is specified, all events are returned.<br/>SourceIdentifier:  The identifier of the event source for which events are returned. If not specified, then all sources are included in the response. Constraints: <ul> <li> If <code>SourceIdentifier</code> is provided, <code>SourceType</code> must also be provided. </li> <li> If the source type is <code>DBInstance</code>, a <code>DBInstanceIdentifier</code> must be provided. </li> <li> If the source type is <code>DBSecurityGroup</code>, a <code>DBSecurityGroupName</code> must be provided. </li> <li> If the source type is <code>DBParameterGroup</code>, a <code>DBParameterGroupName</code> must be provided. </li> <li> If the source type is <code>DBSnapshot</code>, a <code>DBSnapshotIdentifier</code> must be provided. </li> <li> Cannot end with a hyphen or contain two consecutive hyphens. </li> </ul><br/>
        :return: Events:  Detailed information about one or more events. <br/>Marker:  An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>.<br/>        """
        pass

    def describe_global_clusters(self, GlobalClusterIdentifier: str=None, Filters: List[Filter]=None, MaxRecords: int=None, Marker: str=None) -> GlobalClustersMessage:
        r"""Returns information about Amazon DocumentDB global clusters. This API supports pagination. <note> This action only applies to Amazon DocumentDB clusters. </note>

        :param self:
        :param Marker:  An optional pagination token provided by a previous <code>DescribeGlobalClusters</code> request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>.<br/>MaxRecords:  The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a pagination token called a marker is included in the response so that you can retrieve the remaining results. <br/>Filters:  A filter that specifies one or more global DB clusters to describe. Supported filters: <code>db-cluster-id</code> accepts cluster identifiers and cluster Amazon Resource Names (ARNs). The results list will only include information about the clusters identified by these ARNs.<br/>GlobalClusterIdentifier:  The user-supplied cluster identifier. If this parameter is specified, information from only the specific cluster is returned. This parameter isn't case-sensitive.<br/>
        :return: GlobalClusters:  <p/><br/>Marker:  <p/><br/>        """
        pass

    def describe_orderable_db_instance_options(self, Engine: str, EngineVersion: str=None, DBInstanceClass: str=None, LicenseModel: str=None, Vpc: BooleanOptional=None, Filters: List[Filter]=None, MaxRecords: int=None, Marker: str=None) -> OrderableDBInstanceOptionsMessage:
        r"""Returns a list of orderable instance options for the specified engine.

        :param self:
        :param Marker:  An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>.<br/>MaxRecords:   The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a pagination token (marker) is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: Minimum 20, maximum 100.<br/>Filters:  This parameter is not currently supported.<br/>Vpc:  The virtual private cloud (VPC) filter value. Specify this parameter to show only the available VPC or non-VPC offerings.<br/>LicenseModel:  The license model filter value. Specify this parameter to show only the available offerings that match the specified license model.<br/>DBInstanceClass:  The instance class filter value. Specify this parameter to show only the available offerings that match the specified instance class.<br/>EngineVersion:  The engine version filter value. Specify this parameter to show only the available offerings that match the specified engine version.<br/>Engine:  The name of the engine to retrieve instance options for.<br/>
        :return: Marker:  An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>.<br/>OrderableDBInstanceOptions:  The options that are available for a particular orderable instance.<br/>        """
        pass

    def describe_pending_maintenance_actions(self, ResourceIdentifier: str=None, Filters: List[Filter]=None, Marker: str=None, MaxRecords: int=None) -> PendingMaintenanceActionsMessage:
        r"""Returns a list of resources (for example, instances) that have at least one pending maintenance action.

        :param self:
        :param MaxRecords:   The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a pagination token (marker) is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: Minimum 20, maximum 100.<br/>Marker:  An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>.<br/>Filters:  A filter that specifies one or more resources to return pending maintenance actions for. Supported filters: <ul> <li>  <code>db-cluster-id</code> - Accepts cluster identifiers and cluster Amazon Resource Names (ARNs). The results list includes only pending maintenance actions for the clusters identified by these ARNs. </li> <li>  <code>db-instance-id</code> - Accepts instance identifiers and instance ARNs. The results list includes only pending maintenance actions for the DB instances identified by these ARNs. </li> </ul><br/>ResourceIdentifier:  The ARN of a resource to return pending maintenance actions for.<br/>
        :return: Marker:  An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>.<br/>PendingMaintenanceActions:  The maintenance actions to be applied.<br/>        """
        pass

    def failover_db_cluster(self, DBClusterIdentifier: str=None, TargetDBInstanceIdentifier: str=None) -> FailoverDBClusterResult:
        r"""Forces a failover for a cluster. A failover for a cluster promotes one of the Amazon DocumentDB replicas (read-only instances) in the cluster to be the primary instance (the cluster writer). If the primary instance fails, Amazon DocumentDB automatically fails over to an Amazon DocumentDB replica, if one exists. You can force a failover when you want to simulate a failure of a primary instance for testing.

        :param self:
        :param TargetDBInstanceIdentifier:  The name of the instance to promote to the primary instance. You must specify the instance identifier for an Amazon DocumentDB replica in the cluster. For example, <code>mydbcluster-replica1</code>.<br/>DBClusterIdentifier:  A cluster identifier to force a failover for. This parameter is not case sensitive. Constraints: <ul> <li> Must match the identifier of an existing <code>DBCluster</code>. </li> </ul><br/>
        :return: DBCluster:  Detailed information about a cluster. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeletionProtection</i> Specifies whether this cluster can be deleted. If <code>DeletionProtection</code> is enabled, the cluster cannot be deleted unless it is modified and <code>DeletionProtection</code> is disabled. <code>DeletionProtection</code> protects clusters from being accidentally deleted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnabledCloudwatchLogsExports</i> A list of log types that this cluster is configured to export to Amazon CloudWatch Logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterCreateTime</i> Specifies the time when the cluster was created, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociatedRoles</i> Provides a list of the Identity and Access Management (IAM) roles that are associated with the cluster. (IAM) roles that are associated with a cluster grant permission for the cluster to access other Amazon Web Services services on your behalf.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterArn</i> The Amazon Resource Name (ARN) for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DbClusterResourceId</i> The Region-unique, immutable identifier for the cluster. This identifier is found in CloudTrail log entries whenever the KMS key for the cluster is accessed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> If <code>StorageEncrypted</code> is <code>true</code>, the KMS key identifier for the encrypted cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageEncrypted</i> Specifies whether the cluster is encrypted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HostedZoneId</i> Specifies the ID that Amazon Route 53 assigns when you create a hosted zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcSecurityGroups</i> Provides a list of virtual private cloud (VPC) security groups that the cluster belongs to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterMembers</i> Provides the list of instances that make up the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadReplicaIdentifiers</i> Contains one or more identifiers of the secondary clusters that are associated with this cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationSourceIdentifier</i> Contains the identifier of the source cluster if this cluster is a secondary cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i> Specifies the weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredBackupWindow</i> Specifies the daily time range during which automated backups are created if automated backups are enabled, as determined by the <code>BackupRetentionPeriod</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUsername</i> Contains the master user name for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Specifies the port that the database engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestRestorableTime</i> Specifies the latest time to which a database can be restored with point-in-time restore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> Indicates the database engine version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> Provides the name of the database engine to be used for this cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiAZ</i> Specifies whether the cluster has instances in multiple Availability Zones.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReaderEndpoint</i> The reader endpoint for the cluster. The reader endpoint for a cluster load balances connections across the Amazon DocumentDB replicas that are available in a cluster. As clients request new connections to the reader endpoint, Amazon DocumentDB distributes the connection requests among the Amazon DocumentDB replicas in the cluster. This functionality can help balance your read workload across multiple Amazon DocumentDB replicas in your cluster.  If a failover occurs, and the Amazon DocumentDB replica that you are connected to is promoted to be the primary instance, your connection is dropped. To continue sending your read workload to other Amazon DocumentDB replicas in the cluster, you can then reconnect to the reader endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i> Specifies the connection endpoint for the primary instance of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EarliestRestorableTime</i> The earliest time to which a database can be restored with point-in-time restore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PercentProgress</i> Specifies the progress of the operation as a percentage.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Specifies the current state of this cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroup</i> Specifies information on the subnet group that is associated with the cluster, including the name, description, and subnets in the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterParameterGroup</i> Specifies the name of the cluster parameter group for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterIdentifier</i> Contains a user-supplied cluster identifier. This identifier is the unique key that identifies a cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupRetentionPeriod</i> Specifies the number of days for which automatic snapshots are retained.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZones</i> Provides the list of Amazon EC2 Availability Zones that instances in the cluster can be created in.<br/>        """
        pass

    def list_tags_for_resource(self, ResourceName: str, Filters: List[Filter]=None) -> TagListMessage:
        r"""Lists all tags on an Amazon DocumentDB resource.

        :param self:
        :param Filters:  This parameter is not currently supported.<br/>ResourceName:  The Amazon DocumentDB resource with tags to be listed. This value is an Amazon Resource Name (ARN).<br/>
        :return: TagList:  A list of one or more tags.<br/>        """
        pass

    def modify_db_cluster(self, DBClusterIdentifier: str, NewDBClusterIdentifier: str=None, ApplyImmediately: Boolean=None, BackupRetentionPeriod: int=None, DBClusterParameterGroupName: str=None, VpcSecurityGroupIds: List[String]=None, Port: int=None, MasterUserPassword: str=None, PreferredBackupWindow: str=None, PreferredMaintenanceWindow: str=None, CloudwatchLogsExportConfiguration: CloudwatchLogsExportConfiguration=None, EngineVersion: str=None, DeletionProtection: BooleanOptional=None) -> ModifyDBClusterResult:
        r"""Modifies a setting for an Amazon DocumentDB cluster. You can change one or more database configuration parameters by specifying these parameters and the new values in the request. 

        :param self:
        :param DeletionProtection:  Specifies whether this cluster can be deleted. If <code>DeletionProtection</code> is enabled, the cluster cannot be deleted unless it is modified and <code>DeletionProtection</code> is disabled. <code>DeletionProtection</code> protects clusters from being accidentally deleted.<br/>EngineVersion:  The version number of the database engine to which you want to upgrade. Modifying engine version is not supported on Amazon DocumentDB.<br/>CloudwatchLogsExportConfiguration:  The configuration setting for the log types to be enabled for export to Amazon CloudWatch Logs for a specific instance or cluster. The <code>EnableLogTypes</code> and <code>DisableLogTypes</code> arrays determine which logs are exported (or not exported) to CloudWatch Logs.:<br/>PreferredMaintenanceWindow:  The weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC). Format: <code>ddd:hh24:mi-ddd:hh24:mi</code>  The default is a 30-minute window selected at random from an 8-hour block of time for each Region, occurring on a random day of the week.  Valid days: Mon, Tue, Wed, Thu, Fri, Sat, Sun Constraints: Minimum 30-minute window.<br/>PreferredBackupWindow:  The daily time range during which automated backups are created if automated backups are enabled, using the <code>BackupRetentionPeriod</code> parameter.  The default is a 30-minute window selected at random from an 8-hour block of time for each Region.  Constraints: <ul> <li> Must be in the format <code>hh24:mi-hh24:mi</code>. </li> <li> Must be in Universal Coordinated Time (UTC). </li> <li> Must not conflict with the preferred maintenance window. </li> <li> Must be at least 30 minutes. </li> </ul><br/>MasterUserPassword:  The password for the master database user. This password can contain any printable ASCII character except forward slash (/), double quote ("), or the "at" symbol (@). Constraints: Must contain from 8 to 100 characters.<br/>Port:  The port number on which the cluster accepts connections. Constraints: Must be a value from <code>1150</code> to <code>65535</code>.  Default: The same port as the original cluster.<br/>VpcSecurityGroupIds:  A list of virtual private cloud (VPC) security groups that the cluster will belong to.<br/>DBClusterParameterGroupName:  The name of the cluster parameter group to use for the cluster.<br/>BackupRetentionPeriod:  The number of days for which automated backups are retained. You must specify a minimum value of 1. Default: 1 Constraints: <ul> <li> Must be a value from 1 to 35. </li> </ul><br/>ApplyImmediately:  A value that specifies whether the changes in this request and any pending changes are asynchronously applied as soon as possible, regardless of the <code>PreferredMaintenanceWindow</code> setting for the cluster. If this parameter is set to <code>false</code>, changes to the cluster are applied during the next maintenance window. The <code>ApplyImmediately</code> parameter affects only the <code>NewDBClusterIdentifier</code> and <code>MasterUserPassword</code> values. If you set this parameter value to <code>false</code>, the changes to the <code>NewDBClusterIdentifier</code> and <code>MasterUserPassword</code> values are applied during the next maintenance window. All other changes are applied immediately, regardless of the value of the <code>ApplyImmediately</code> parameter. Default: <code>false</code> <br/>NewDBClusterIdentifier:  The new cluster identifier for the cluster when renaming a cluster. This value is stored as a lowercase string. Constraints: <ul> <li> Must contain from 1 to 63 letters, numbers, or hyphens. </li> <li> The first character must be a letter. </li> <li> Cannot end with a hyphen or contain two consecutive hyphens. </li> </ul> Example: <code>my-cluster2</code> <br/>DBClusterIdentifier:  The cluster identifier for the cluster that is being modified. This parameter is not case sensitive. Constraints: <ul> <li> Must match the identifier of an existing <code>DBCluster</code>. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DisableLogTypes</i> The list of log types to disable.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableLogTypes</i> The list of log types to enable.<br/>
        :return: DBCluster:  Detailed information about a cluster. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeletionProtection</i> Specifies whether this cluster can be deleted. If <code>DeletionProtection</code> is enabled, the cluster cannot be deleted unless it is modified and <code>DeletionProtection</code> is disabled. <code>DeletionProtection</code> protects clusters from being accidentally deleted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnabledCloudwatchLogsExports</i> A list of log types that this cluster is configured to export to Amazon CloudWatch Logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterCreateTime</i> Specifies the time when the cluster was created, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociatedRoles</i> Provides a list of the Identity and Access Management (IAM) roles that are associated with the cluster. (IAM) roles that are associated with a cluster grant permission for the cluster to access other Amazon Web Services services on your behalf.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterArn</i> The Amazon Resource Name (ARN) for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DbClusterResourceId</i> The Region-unique, immutable identifier for the cluster. This identifier is found in CloudTrail log entries whenever the KMS key for the cluster is accessed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> If <code>StorageEncrypted</code> is <code>true</code>, the KMS key identifier for the encrypted cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageEncrypted</i> Specifies whether the cluster is encrypted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HostedZoneId</i> Specifies the ID that Amazon Route 53 assigns when you create a hosted zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcSecurityGroups</i> Provides a list of virtual private cloud (VPC) security groups that the cluster belongs to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterMembers</i> Provides the list of instances that make up the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadReplicaIdentifiers</i> Contains one or more identifiers of the secondary clusters that are associated with this cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationSourceIdentifier</i> Contains the identifier of the source cluster if this cluster is a secondary cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i> Specifies the weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredBackupWindow</i> Specifies the daily time range during which automated backups are created if automated backups are enabled, as determined by the <code>BackupRetentionPeriod</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUsername</i> Contains the master user name for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Specifies the port that the database engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestRestorableTime</i> Specifies the latest time to which a database can be restored with point-in-time restore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> Indicates the database engine version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> Provides the name of the database engine to be used for this cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiAZ</i> Specifies whether the cluster has instances in multiple Availability Zones.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReaderEndpoint</i> The reader endpoint for the cluster. The reader endpoint for a cluster load balances connections across the Amazon DocumentDB replicas that are available in a cluster. As clients request new connections to the reader endpoint, Amazon DocumentDB distributes the connection requests among the Amazon DocumentDB replicas in the cluster. This functionality can help balance your read workload across multiple Amazon DocumentDB replicas in your cluster.  If a failover occurs, and the Amazon DocumentDB replica that you are connected to is promoted to be the primary instance, your connection is dropped. To continue sending your read workload to other Amazon DocumentDB replicas in the cluster, you can then reconnect to the reader endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i> Specifies the connection endpoint for the primary instance of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EarliestRestorableTime</i> The earliest time to which a database can be restored with point-in-time restore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PercentProgress</i> Specifies the progress of the operation as a percentage.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Specifies the current state of this cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroup</i> Specifies information on the subnet group that is associated with the cluster, including the name, description, and subnets in the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterParameterGroup</i> Specifies the name of the cluster parameter group for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterIdentifier</i> Contains a user-supplied cluster identifier. This identifier is the unique key that identifies a cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupRetentionPeriod</i> Specifies the number of days for which automatic snapshots are retained.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZones</i> Provides the list of Amazon EC2 Availability Zones that instances in the cluster can be created in.<br/>        """
        pass

    def modify_db_cluster_parameter_group(self, Parameters: List[Parameter], DBClusterParameterGroupName: str) -> DBClusterParameterGroupNameMessage:
        r""" Modifies the parameters of a cluster parameter group. To modify more than one parameter, submit a list of the following: <code>ParameterName</code>, <code>ParameterValue</code>, and <code>ApplyMethod</code>. A maximum of 20 parameters can be modified in a single request.  <note> Changes to dynamic parameters are applied immediately. Changes to static parameters require a reboot or maintenance window before the change can take effect. </note> <important> After you create a cluster parameter group, you should wait at least 5 minutes before creating your first cluster that uses that cluster parameter group as the default parameter group. This allows Amazon DocumentDB to fully complete the create action before the parameter group is used as the default for a new cluster. This step is especially important for parameters that are critical when creating the default database for a cluster, such as the character set for the default database defined by the <code>character_set_database</code> parameter. </important>

        :param self:
        :param Parameters:  A list of parameters in the cluster parameter group to modify.<br/>DBClusterParameterGroupName:  The name of the cluster parameter group to modify.<br/>
        :return: DBClusterParameterGroupName:  The name of a cluster parameter group. Constraints: <ul> <li> Must be from 1 to 255 letters or numbers. </li> <li> The first character must be a letter. </li> <li> Cannot end with a hyphen or contain two consecutive hyphens. </li> </ul> <note> This value is stored as a lowercase string. </note><br/>        """
        pass

    def modify_db_cluster_snapshot_attribute(self, AttributeName: str, DBClusterSnapshotIdentifier: str, ValuesToAdd: List[String]=None, ValuesToRemove: List[String]=None) -> ModifyDBClusterSnapshotAttributeResult:
        r"""Adds an attribute and values to, or removes an attribute and values from, a manual cluster snapshot. To share a manual cluster snapshot with other accounts, specify <code>restore</code> as the <code>AttributeName</code>, and use the <code>ValuesToAdd</code> parameter to add a list of IDs of the accounts that are authorized to restore the manual cluster snapshot. Use the value <code>all</code> to make the manual cluster snapshot public, which means that it can be copied or restored by all accounts. Do not add the <code>all</code> value for any manual cluster snapshots that contain private information that you don't want available to all accounts. If a manual cluster snapshot is encrypted, it can be shared, but only by specifying a list of authorized account IDs for the <code>ValuesToAdd</code> parameter. You can't use <code>all</code> as a value for that parameter in this case.

        :param self:
        :param ValuesToRemove:  A list of cluster snapshot attributes to remove from the attribute specified by <code>AttributeName</code>. To remove authorization for other accounts to copy or restore a manual cluster snapshot, set this list to include one or more account identifiers. To remove authorization for any account to copy or restore the cluster snapshot, set it to <code>all</code> . If you specify <code>all</code>, an account whose account ID is explicitly added to the <code>restore</code> attribute can still copy or restore a manual cluster snapshot.<br/>ValuesToAdd:  A list of cluster snapshot attributes to add to the attribute specified by <code>AttributeName</code>. To authorize other accounts to copy or restore a manual cluster snapshot, set this list to include one or more account IDs. To make the manual cluster snapshot restorable by any account, set it to <code>all</code>. Do not add the <code>all</code> value for any manual cluster snapshots that contain private information that you don't want to be available to all accounts.<br/>AttributeName:  The name of the cluster snapshot attribute to modify. To manage authorization for other accounts to copy or restore a manual cluster snapshot, set this value to <code>restore</code>.<br/>DBClusterSnapshotIdentifier:  The identifier for the cluster snapshot to modify the attributes for.<br/>
        :return: DBClusterSnapshotAttributesResult:  Detailed information about the attributes that are associated with a cluster snapshot.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterSnapshotAttributes</i> The list of attributes and values for the cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterSnapshotIdentifier</i> The identifier of the cluster snapshot that the attributes apply to.<br/>        """
        pass

    def modify_db_instance(self, DBInstanceIdentifier: str, DBInstanceClass: str=None, ApplyImmediately: Boolean=None, PreferredMaintenanceWindow: str=None, AutoMinorVersionUpgrade: BooleanOptional=None, NewDBInstanceIdentifier: str=None, CACertificateIdentifier: str=None, PromotionTier: int=None) -> ModifyDBInstanceResult:
        r"""Modifies settings for an instance. You can change one or more database configuration parameters by specifying these parameters and the new values in the request.

        :param self:
        :param PromotionTier:  A value that specifies the order in which an Amazon DocumentDB replica is promoted to the primary instance after a failure of the existing primary instance. Default: 1 Valid values: 0-15<br/>CACertificateIdentifier:  Indicates the certificate that needs to be associated with the instance.<br/>NewDBInstanceIdentifier:   The new instance identifier for the instance when renaming an instance. When you change the instance identifier, an instance reboot occurs immediately if you set <code>Apply Immediately</code> to <code>true</code>. It occurs during the next maintenance window if you set <code>Apply Immediately</code> to <code>false</code>. This value is stored as a lowercase string.  Constraints: <ul> <li> Must contain from 1 to 63 letters, numbers, or hyphens. </li> <li> The first character must be a letter. </li> <li> Cannot end with a hyphen or contain two consecutive hyphens. </li> </ul> Example: <code>mydbinstance</code> <br/>AutoMinorVersionUpgrade:  This parameter does not apply to Amazon DocumentDB. Amazon DocumentDB does not perform minor version upgrades regardless of the value set.<br/>PreferredMaintenanceWindow:  The weekly time range (in UTC) during which system maintenance can occur, which might result in an outage. Changing this parameter doesn't result in an outage except in the following situation, and the change is asynchronously applied as soon as possible. If there are pending actions that cause a reboot, and the maintenance window is changed to include the current time, changing this parameter causes a reboot of the instance. If you are moving this window to the current time, there must be at least 30 minutes between the current time and end of the window to ensure that pending changes are applied. Default: Uses existing setting. Format: <code>ddd:hh24:mi-ddd:hh24:mi</code>  Valid days: Mon, Tue, Wed, Thu, Fri, Sat, Sun Constraints: Must be at least 30 minutes.<br/>ApplyImmediately:  Specifies whether the modifications in this request and any pending modifications are asynchronously applied as soon as possible, regardless of the <code>PreferredMaintenanceWindow</code> setting for the instance.   If this parameter is set to <code>false</code>, changes to the instance are applied during the next maintenance window. Some parameter changes can cause an outage and are applied on the next reboot. Default: <code>false</code> <br/>DBInstanceClass:  The new compute and memory capacity of the instance; for example, <code>db.r5.large</code>. Not all instance classes are available in all Regions.  If you modify the instance class, an outage occurs during the change. The change is applied during the next maintenance window, unless <code>ApplyImmediately</code> is specified as <code>true</code> for this request.  Default: Uses existing setting.<br/>DBInstanceIdentifier:  The instance identifier. This value is stored as a lowercase string. Constraints: <ul> <li> Must match the identifier of an existing <code>DBInstance</code>. </li> </ul><br/>
        :return: DBInstance:  Detailed information about an instance. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnabledCloudwatchLogsExports</i> A list of log types that this instance is configured to export to CloudWatch Logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceArn</i> The Amazon Resource Name (ARN) for the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PromotionTier</i> A value that specifies the order in which an Amazon DocumentDB replica is promoted to the primary instance after a failure of the existing primary instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CACertificateIdentifier</i> The identifier of the CA certificate for this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DbiResourceId</i> The Region-unique, immutable identifier for the instance. This identifier is found in CloudTrail log entries whenever the KMS key for the instance is accessed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i>  If <code>StorageEncrypted</code> is <code>true</code>, the KMS key identifier for the encrypted instance. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageEncrypted</i> Specifies whether or not the instance is encrypted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterIdentifier</i> Contains the name of the cluster that the instance is a member of if the instance is a member of a cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusInfos</i> The status of a read replica. If the instance is not a read replica, this is blank.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PubliclyAccessible</i> Not supported. Amazon DocumentDB does not currently support public endpoints. The value of <code>PubliclyAccessible</code> is always <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoMinorVersionUpgrade</i> Does not apply. This parameter does not apply to Amazon DocumentDB. Amazon DocumentDB does not perform minor version upgrades regardless of the value set.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> Indicates the database engine version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestRestorableTime</i> Specifies the latest time to which a database can be restored with point-in-time restore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingModifiedValues</i> Specifies that changes to the instance are pending. This element is included only when changes are pending. Specific changes are identified by subelements.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingModifiedValues</b>: Specifies that changes to the instance are pending. This element is included only when changes are pending. Specific changes are identified by subelements.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i> Specifies the weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroup</i> Specifies information on the subnet group that is associated with the instance, including the name, description, and subnets in the subnet group.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DBSubnetGroup</b>: Specifies information on the subnet group that is associated with the instance, including the name, description, and subnets in the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZone</i> Specifies the name of the Availability Zone that the instance is located in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcSecurityGroups</i> Provides a list of VPC security group elements that the instance belongs to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupRetentionPeriod</i> Specifies the number of days for which automatic snapshots are retained.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredBackupWindow</i>  Specifies the daily time range during which automated backups are created if automated backups are enabled, as determined by the <code>BackupRetentionPeriod</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceCreateTime</i> Provides the date and time that the instance was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i> Specifies the connection endpoint.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Endpoint</b>: Specifies the connection endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceStatus</i> Specifies the current state of this database.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> Provides the name of the database engine to be used for this instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceClass</i> Contains the name of the compute and memory capacity class of the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceIdentifier</i> Contains a user-provided database identifier. This identifier is the unique key that identifies an instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HostedZoneId</i> Specifies the ID that Amazon Route 53 assigns when you create a hosted zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Specifies the port that the database engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Address</i> Specifies the DNS address of the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupArn</i> The Amazon Resource Name (ARN) for the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Subnets</i> Detailed information about one or more subnets within a subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetGroupStatus</i> Provides the status of the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> Provides the virtual private cloud (VPC) ID of the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupDescription</i> Provides the description of the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupName</i> The name of the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupName</i> The new subnet group for the instance. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CACertificateIdentifier</i> Specifies the identifier of the certificate authority (CA) certificate for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageType</i> Specifies the storage type to be associated with the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceIdentifier</i>  Contains the new <code>DBInstanceIdentifier</code> for the instance that will be applied or is currently being applied. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Iops</i> Specifies the new Provisioned IOPS value for the instance that will be applied or is currently being applied.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LicenseModel</i> The license model for the instance. Valid values: <code>license-included</code>, <code>bring-your-own-license</code>, <code>general-public-license</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> Indicates the database engine version.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiAZ</i> Indicates that the Single-AZ instance is to change to a Multi-AZ deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupRetentionPeriod</i> Specifies the pending number of days for which automated backups are retained.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Specifies the pending port for the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUserPassword</i> Contains the pending or currently in-progress change of the master credentials for the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AllocatedStorage</i>  Contains the new <code>AllocatedStorage</code> size for then instance that will be applied or is currently being applied. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceClass</i>  Contains the new <code>DBInstanceClass</code> for the instance that will be applied or is currently being applied. <br/>A list of the log types whose configuration is still pending. These log types are in the process of being activated or deactivated.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingCloudwatchLogsExports</b>: A list of the log types whose configuration is still pending. These log types are in the process of being activated or deactivated.        """
        pass

    def modify_db_subnet_group(self, SubnetIds: List[String], DBSubnetGroupName: str, DBSubnetGroupDescription: str=None) -> ModifyDBSubnetGroupResult:
        r"""Modifies an existing subnet group. subnet groups must contain at least one subnet in at least two Availability Zones in the Region.

        :param self:
        :param SubnetIds:  The Amazon EC2 subnet IDs for the subnet group.<br/>DBSubnetGroupDescription:  The description for the subnet group.<br/>DBSubnetGroupName:  The name for the subnet group. This value is stored as a lowercase string. You can't modify the default subnet group.  Constraints: Must match the name of an existing <code>DBSubnetGroup</code>. Must not be default. Example: <code>mySubnetgroup</code> <br/>
        :return: DBSubnetGroup:  Detailed information about a subnet group. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupArn</i> The Amazon Resource Name (ARN) for the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Subnets</i> Detailed information about one or more subnets within a subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetGroupStatus</i> Provides the status of the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> Provides the virtual private cloud (VPC) ID of the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupDescription</i> Provides the description of the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupName</i> The name of the subnet group.<br/>        """
        pass

    def modify_event_subscription(self, SubscriptionName: str, SnsTopicArn: str=None, SourceType: str=None, EventCategories: List[String]=None, Enabled: BooleanOptional=None) -> ModifyEventSubscriptionResult:
        r"""Modifies an existing Amazon DocumentDB event notification subscription.

        :param self:
        :param Enabled:   A Boolean value; set to <code>true</code> to activate the subscription. <br/>EventCategories:   A list of event categories for a <code>SourceType</code> that you want to subscribe to.<br/>SourceType:  The type of source that is generating the events. For example, if you want to be notified of events generated by an instance, set this parameter to <code>db-instance</code>. If this value is not specified, all events are returned. Valid values: <code>db-instance</code>, <code>db-parameter-group</code>, <code>db-security-group</code> <br/>SnsTopicArn:  The Amazon Resource Name (ARN) of the SNS topic created for event notification. The ARN is created by Amazon SNS when you create a topic and subscribe to it.<br/>SubscriptionName:  The name of the Amazon DocumentDB event notification subscription.<br/>
        :return: EventSubscription:  Detailed information about an event to which you have subscribed.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EventSubscriptionArn</i> The Amazon Resource Name (ARN) for the event subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> A Boolean value indicating whether the subscription is enabled. A value of <code>true</code> indicates that the subscription is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EventCategoriesList</i> A list of event categories for the Amazon DocumentDB event notification subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceIdsList</i> A list of source IDs for the Amazon DocumentDB event notification subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceType</i> The source type for the Amazon DocumentDB event notification subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubscriptionCreationTime</i> The time at which the Amazon DocumentDB event notification subscription was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the Amazon DocumentDB event notification subscription. Constraints: Can be one of the following: <code>creating</code>, <code>modifying</code>, <code>deleting</code>, <code>active</code>, <code>no-permission</code>, <code>topic-not-exist</code>  The <code>no-permission</code> status indicates that Amazon DocumentDB no longer has permission to post to the SNS topic. The <code>topic-not-exist</code> status indicates that the topic was deleted after the subscription was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnsTopicArn</i> The topic ARN of the Amazon DocumentDB event notification subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustSubscriptionId</i> The Amazon DocumentDB event notification subscription ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomerAwsId</i> The Amazon Web Services customer account that is associated with the Amazon DocumentDB event notification subscription.<br/>        """
        pass

    def modify_global_cluster(self, GlobalClusterIdentifier: str, NewGlobalClusterIdentifier: str=None, DeletionProtection: BooleanOptional=None) -> ModifyGlobalClusterResult:
        r"""Modify a setting for an Amazon DocumentDB global cluster. You can change one or more configuration parameters (for example: deletion protection), or the global cluster identifier by specifying these parameters and the new values in the request. <note> This action only applies to Amazon DocumentDB clusters. </note>

        :param self:
        :param DeletionProtection:  Indicates if the global cluster has deletion protection enabled. The global cluster can't be deleted when deletion protection is enabled. <br/>NewGlobalClusterIdentifier:  The new identifier for a global cluster when you modify a global cluster. This value is stored as a lowercase string. <ul> <li> Must contain from 1 to 63 letters, numbers, or hyphens The first character must be a letter Can't end with a hyphen or contain two consecutive hyphens </li> </ul> Example: <code>my-cluster2</code> <br/>GlobalClusterIdentifier:  The identifier for the global cluster being modified. This parameter isn't case-sensitive. Constraints: <ul> <li> Must match the identifier of an existing global cluster. </li> </ul><br/>
        :return: GlobalCluster:  A data type representing an Amazon DocumentDB global cluster.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalClusterMembers</i> The list of cluster IDs for secondary clusters within the global cluster. Currently limited to one item. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeletionProtection</i> The deletion protection setting for the new global cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageEncrypted</i> The storage encryption setting for the global cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> The default database name within the new global cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> Indicates the database engine version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> The Amazon DocumentDB database engine used by the global cluster. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Specifies the current state of this global cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalClusterArn</i> The Amazon Resource Name (ARN) for the global cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalClusterResourceId</i> The Region-unique, immutable identifier for the global database cluster. This identifier is found in AWS CloudTrail log entries whenever the AWS KMS customer master key (CMK) for the cluster is accessed. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalClusterIdentifier</i> Contains a user-supplied global cluster identifier. This identifier is the unique key that identifies a global cluster. <br/>        """
        pass

    def reboot_db_instance(self, DBInstanceIdentifier: str, ForceFailover: BooleanOptional=None) -> RebootDBInstanceResult:
        r"""You might need to reboot your instance, usually for maintenance reasons. For example, if you make certain changes, or if you change the cluster parameter group that is associated with the instance, you must reboot the instance for the changes to take effect.  Rebooting an instance restarts the database engine service. Rebooting an instance results in a momentary outage, during which the instance status is set to <i>rebooting</i>. 

        :param self:
        :param ForceFailover:   When <code>true</code>, the reboot is conducted through a Multi-AZ failover.  Constraint: You can't specify <code>true</code> if the instance is not configured for Multi-AZ.<br/>DBInstanceIdentifier:  The instance identifier. This parameter is stored as a lowercase string. Constraints: <ul> <li> Must match the identifier of an existing <code>DBInstance</code>. </li> </ul><br/>
        :return: DBInstance:  Detailed information about an instance. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnabledCloudwatchLogsExports</i> A list of log types that this instance is configured to export to CloudWatch Logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceArn</i> The Amazon Resource Name (ARN) for the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PromotionTier</i> A value that specifies the order in which an Amazon DocumentDB replica is promoted to the primary instance after a failure of the existing primary instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CACertificateIdentifier</i> The identifier of the CA certificate for this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DbiResourceId</i> The Region-unique, immutable identifier for the instance. This identifier is found in CloudTrail log entries whenever the KMS key for the instance is accessed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i>  If <code>StorageEncrypted</code> is <code>true</code>, the KMS key identifier for the encrypted instance. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageEncrypted</i> Specifies whether or not the instance is encrypted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterIdentifier</i> Contains the name of the cluster that the instance is a member of if the instance is a member of a cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusInfos</i> The status of a read replica. If the instance is not a read replica, this is blank.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PubliclyAccessible</i> Not supported. Amazon DocumentDB does not currently support public endpoints. The value of <code>PubliclyAccessible</code> is always <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoMinorVersionUpgrade</i> Does not apply. This parameter does not apply to Amazon DocumentDB. Amazon DocumentDB does not perform minor version upgrades regardless of the value set.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> Indicates the database engine version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestRestorableTime</i> Specifies the latest time to which a database can be restored with point-in-time restore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingModifiedValues</i> Specifies that changes to the instance are pending. This element is included only when changes are pending. Specific changes are identified by subelements.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingModifiedValues</b>: Specifies that changes to the instance are pending. This element is included only when changes are pending. Specific changes are identified by subelements.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i> Specifies the weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroup</i> Specifies information on the subnet group that is associated with the instance, including the name, description, and subnets in the subnet group.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DBSubnetGroup</b>: Specifies information on the subnet group that is associated with the instance, including the name, description, and subnets in the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZone</i> Specifies the name of the Availability Zone that the instance is located in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcSecurityGroups</i> Provides a list of VPC security group elements that the instance belongs to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupRetentionPeriod</i> Specifies the number of days for which automatic snapshots are retained.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredBackupWindow</i>  Specifies the daily time range during which automated backups are created if automated backups are enabled, as determined by the <code>BackupRetentionPeriod</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceCreateTime</i> Provides the date and time that the instance was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i> Specifies the connection endpoint.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Endpoint</b>: Specifies the connection endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceStatus</i> Specifies the current state of this database.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> Provides the name of the database engine to be used for this instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceClass</i> Contains the name of the compute and memory capacity class of the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceIdentifier</i> Contains a user-provided database identifier. This identifier is the unique key that identifies an instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HostedZoneId</i> Specifies the ID that Amazon Route 53 assigns when you create a hosted zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Specifies the port that the database engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Address</i> Specifies the DNS address of the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupArn</i> The Amazon Resource Name (ARN) for the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Subnets</i> Detailed information about one or more subnets within a subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetGroupStatus</i> Provides the status of the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> Provides the virtual private cloud (VPC) ID of the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupDescription</i> Provides the description of the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupName</i> The name of the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupName</i> The new subnet group for the instance. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CACertificateIdentifier</i> Specifies the identifier of the certificate authority (CA) certificate for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageType</i> Specifies the storage type to be associated with the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceIdentifier</i>  Contains the new <code>DBInstanceIdentifier</code> for the instance that will be applied or is currently being applied. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Iops</i> Specifies the new Provisioned IOPS value for the instance that will be applied or is currently being applied.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LicenseModel</i> The license model for the instance. Valid values: <code>license-included</code>, <code>bring-your-own-license</code>, <code>general-public-license</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> Indicates the database engine version.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiAZ</i> Indicates that the Single-AZ instance is to change to a Multi-AZ deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupRetentionPeriod</i> Specifies the pending number of days for which automated backups are retained.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Specifies the pending port for the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUserPassword</i> Contains the pending or currently in-progress change of the master credentials for the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AllocatedStorage</i>  Contains the new <code>AllocatedStorage</code> size for then instance that will be applied or is currently being applied. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceClass</i>  Contains the new <code>DBInstanceClass</code> for the instance that will be applied or is currently being applied. <br/>A list of the log types whose configuration is still pending. These log types are in the process of being activated or deactivated.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingCloudwatchLogsExports</b>: A list of the log types whose configuration is still pending. These log types are in the process of being activated or deactivated.        """
        pass

    def remove_from_global_cluster(self, DbClusterIdentifier: str, GlobalClusterIdentifier: str) -> RemoveFromGlobalClusterResult:
        r"""Detaches an Amazon DocumentDB secondary cluster from a global cluster. The cluster becomes a standalone cluster with read-write capability instead of being read-only and receiving data from a primary in a different region.  <note> This action only applies to Amazon DocumentDB clusters. </note>

        :param self:
        :param DbClusterIdentifier:  The Amazon Resource Name (ARN) identifying the cluster that was detached from the Amazon DocumentDB global cluster. <br/>GlobalClusterIdentifier:  The cluster identifier to detach from the Amazon DocumentDB global cluster. <br/>
        :return: GlobalCluster:  A data type representing an Amazon DocumentDB global cluster.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalClusterMembers</i> The list of cluster IDs for secondary clusters within the global cluster. Currently limited to one item. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeletionProtection</i> The deletion protection setting for the new global cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageEncrypted</i> The storage encryption setting for the global cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> The default database name within the new global cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> Indicates the database engine version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> The Amazon DocumentDB database engine used by the global cluster. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Specifies the current state of this global cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalClusterArn</i> The Amazon Resource Name (ARN) for the global cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalClusterResourceId</i> The Region-unique, immutable identifier for the global database cluster. This identifier is found in AWS CloudTrail log entries whenever the AWS KMS customer master key (CMK) for the cluster is accessed. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalClusterIdentifier</i> Contains a user-supplied global cluster identifier. This identifier is the unique key that identifies a global cluster. <br/>        """
        pass

    def remove_source_identifier_from_subscription(self, SourceIdentifier: str, SubscriptionName: str) -> RemoveSourceIdentifierFromSubscriptionResult:
        r"""Removes a source identifier from an existing Amazon DocumentDB event notification subscription.

        :param self:
        :param SourceIdentifier:   The source identifier to be removed from the subscription, such as the instance identifier for an instance, or the name of a security group. <br/>SubscriptionName:  The name of the Amazon DocumentDB event notification subscription that you want to remove a source identifier from.<br/>
        :return: EventSubscription:  Detailed information about an event to which you have subscribed.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EventSubscriptionArn</i> The Amazon Resource Name (ARN) for the event subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> A Boolean value indicating whether the subscription is enabled. A value of <code>true</code> indicates that the subscription is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EventCategoriesList</i> A list of event categories for the Amazon DocumentDB event notification subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceIdsList</i> A list of source IDs for the Amazon DocumentDB event notification subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceType</i> The source type for the Amazon DocumentDB event notification subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubscriptionCreationTime</i> The time at which the Amazon DocumentDB event notification subscription was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the Amazon DocumentDB event notification subscription. Constraints: Can be one of the following: <code>creating</code>, <code>modifying</code>, <code>deleting</code>, <code>active</code>, <code>no-permission</code>, <code>topic-not-exist</code>  The <code>no-permission</code> status indicates that Amazon DocumentDB no longer has permission to post to the SNS topic. The <code>topic-not-exist</code> status indicates that the topic was deleted after the subscription was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnsTopicArn</i> The topic ARN of the Amazon DocumentDB event notification subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustSubscriptionId</i> The Amazon DocumentDB event notification subscription ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomerAwsId</i> The Amazon Web Services customer account that is associated with the Amazon DocumentDB event notification subscription.<br/>        """
        pass

    def remove_tags_from_resource(self, TagKeys: List[String], ResourceName: str):
        r"""Removes metadata tags from an Amazon DocumentDB resource.

        :param self:
        :param TagKeys:  The tag key (name) of the tag to be removed.<br/>ResourceName:  The Amazon DocumentDB resource that the tags are removed from. This value is an Amazon Resource Name (ARN).<br/>
        :return:         """
        pass

    def reset_db_cluster_parameter_group(self, DBClusterParameterGroupName: str, ResetAllParameters: Boolean=None, Parameters: List[Parameter]=None) -> DBClusterParameterGroupNameMessage:
        r""" Modifies the parameters of a cluster parameter group to the default value. To reset specific parameters, submit a list of the following: <code>ParameterName</code> and <code>ApplyMethod</code>. To reset the entire cluster parameter group, specify the <code>DBClusterParameterGroupName</code> and <code>ResetAllParameters</code> parameters.   When you reset the entire group, dynamic parameters are updated immediately and static parameters are set to <code>pending-reboot</code> to take effect on the next DB instance reboot.

        :param self:
        :param Parameters:  A list of parameter names in the cluster parameter group to reset to the default values. You can't use this parameter if the <code>ResetAllParameters</code> parameter is set to <code>true</code>.<br/>ResetAllParameters:  A value that is set to <code>true</code> to reset all parameters in the cluster parameter group to their default values, and <code>false</code> otherwise. You can't use this parameter if there is a list of parameter names specified for the <code>Parameters</code> parameter.<br/>DBClusterParameterGroupName:  The name of the cluster parameter group to reset.<br/>
        :return: DBClusterParameterGroupName:  The name of a cluster parameter group. Constraints: <ul> <li> Must be from 1 to 255 letters or numbers. </li> <li> The first character must be a letter. </li> <li> Cannot end with a hyphen or contain two consecutive hyphens. </li> </ul> <note> This value is stored as a lowercase string. </note><br/>        """
        pass

    def restore_db_cluster_from_snapshot(self, Engine: str, SnapshotIdentifier: str, DBClusterIdentifier: str, AvailabilityZones: List[String]=None, EngineVersion: str=None, Port: int=None, DBSubnetGroupName: str=None, VpcSecurityGroupIds: List[String]=None, Tags: List[Tag]=None, KmsKeyId: str=None, EnableCloudwatchLogsExports: List[String]=None, DeletionProtection: BooleanOptional=None) -> RestoreDBClusterFromSnapshotResult:
        r"""Creates a new cluster from a snapshot or cluster snapshot. If a snapshot is specified, the target cluster is created from the source DB snapshot with a default configuration and default security group. If a cluster snapshot is specified, the target cluster is created from the source cluster restore point with the same configuration as the original source DB cluster, except that the new cluster is created with the default security group.

        :param self:
        :param DeletionProtection:  Specifies whether this cluster can be deleted. If <code>DeletionProtection</code> is enabled, the cluster cannot be deleted unless it is modified and <code>DeletionProtection</code> is disabled. <code>DeletionProtection</code> protects clusters from being accidentally deleted.<br/>EnableCloudwatchLogsExports:  A list of log types that must be enabled for exporting to Amazon CloudWatch Logs.<br/>KmsKeyId:  The KMS key identifier to use when restoring an encrypted cluster from a DB snapshot or cluster snapshot. The KMS key identifier is the Amazon Resource Name (ARN) for the KMS encryption key. If you are restoring a cluster with the same account that owns the KMS encryption key used to encrypt the new cluster, then you can use the KMS key alias instead of the ARN for the KMS encryption key. If you do not specify a value for the <code>KmsKeyId</code> parameter, then the following occurs: <ul> <li> If the snapshot or cluster snapshot in <code>SnapshotIdentifier</code> is encrypted, then the restored cluster is encrypted using the KMS key that was used to encrypt the snapshot or the cluster snapshot. </li> <li> If the snapshot or the cluster snapshot in <code>SnapshotIdentifier</code> is not encrypted, then the restored DB cluster is not encrypted. </li> </ul><br/>Tags:  The tags to be assigned to the restored cluster.<br/>VpcSecurityGroupIds:  A list of virtual private cloud (VPC) security groups that the new cluster will belong to.<br/>DBSubnetGroupName:  The name of the subnet group to use for the new cluster. Constraints: If provided, must match the name of an existing <code>DBSubnetGroup</code>. Example: <code>mySubnetgroup</code> <br/>Port:  The port number on which the new cluster accepts connections. Constraints: Must be a value from <code>1150</code> to <code>65535</code>. Default: The same port as the original cluster.<br/>EngineVersion:  The version of the database engine to use for the new cluster.<br/>Engine:  The database engine to use for the new cluster. Default: The same as source. Constraint: Must be compatible with the engine of the source.<br/>SnapshotIdentifier:  The identifier for the snapshot or cluster snapshot to restore from. You can use either the name or the Amazon Resource Name (ARN) to specify a cluster snapshot. However, you can use only the ARN to specify a snapshot. Constraints: <ul> <li> Must match the identifier of an existing snapshot. </li> </ul><br/>DBClusterIdentifier:  The name of the cluster to create from the snapshot or cluster snapshot. This parameter isn't case sensitive. Constraints: <ul> <li> Must contain from 1 to 63 letters, numbers, or hyphens. </li> <li> The first character must be a letter. </li> <li> Cannot end with a hyphen or contain two consecutive hyphens. </li> </ul> Example: <code>my-snapshot-id</code> <br/>AvailabilityZones:  Provides the list of Amazon EC2 Availability Zones that instances in the restored DB cluster can be created in.<br/>
        :return: DBCluster:  Detailed information about a cluster. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeletionProtection</i> Specifies whether this cluster can be deleted. If <code>DeletionProtection</code> is enabled, the cluster cannot be deleted unless it is modified and <code>DeletionProtection</code> is disabled. <code>DeletionProtection</code> protects clusters from being accidentally deleted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnabledCloudwatchLogsExports</i> A list of log types that this cluster is configured to export to Amazon CloudWatch Logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterCreateTime</i> Specifies the time when the cluster was created, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociatedRoles</i> Provides a list of the Identity and Access Management (IAM) roles that are associated with the cluster. (IAM) roles that are associated with a cluster grant permission for the cluster to access other Amazon Web Services services on your behalf.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterArn</i> The Amazon Resource Name (ARN) for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DbClusterResourceId</i> The Region-unique, immutable identifier for the cluster. This identifier is found in CloudTrail log entries whenever the KMS key for the cluster is accessed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> If <code>StorageEncrypted</code> is <code>true</code>, the KMS key identifier for the encrypted cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageEncrypted</i> Specifies whether the cluster is encrypted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HostedZoneId</i> Specifies the ID that Amazon Route 53 assigns when you create a hosted zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcSecurityGroups</i> Provides a list of virtual private cloud (VPC) security groups that the cluster belongs to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterMembers</i> Provides the list of instances that make up the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadReplicaIdentifiers</i> Contains one or more identifiers of the secondary clusters that are associated with this cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationSourceIdentifier</i> Contains the identifier of the source cluster if this cluster is a secondary cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i> Specifies the weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredBackupWindow</i> Specifies the daily time range during which automated backups are created if automated backups are enabled, as determined by the <code>BackupRetentionPeriod</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUsername</i> Contains the master user name for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Specifies the port that the database engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestRestorableTime</i> Specifies the latest time to which a database can be restored with point-in-time restore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> Indicates the database engine version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> Provides the name of the database engine to be used for this cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiAZ</i> Specifies whether the cluster has instances in multiple Availability Zones.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReaderEndpoint</i> The reader endpoint for the cluster. The reader endpoint for a cluster load balances connections across the Amazon DocumentDB replicas that are available in a cluster. As clients request new connections to the reader endpoint, Amazon DocumentDB distributes the connection requests among the Amazon DocumentDB replicas in the cluster. This functionality can help balance your read workload across multiple Amazon DocumentDB replicas in your cluster.  If a failover occurs, and the Amazon DocumentDB replica that you are connected to is promoted to be the primary instance, your connection is dropped. To continue sending your read workload to other Amazon DocumentDB replicas in the cluster, you can then reconnect to the reader endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i> Specifies the connection endpoint for the primary instance of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EarliestRestorableTime</i> The earliest time to which a database can be restored with point-in-time restore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PercentProgress</i> Specifies the progress of the operation as a percentage.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Specifies the current state of this cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroup</i> Specifies information on the subnet group that is associated with the cluster, including the name, description, and subnets in the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterParameterGroup</i> Specifies the name of the cluster parameter group for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterIdentifier</i> Contains a user-supplied cluster identifier. This identifier is the unique key that identifies a cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupRetentionPeriod</i> Specifies the number of days for which automatic snapshots are retained.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZones</i> Provides the list of Amazon EC2 Availability Zones that instances in the cluster can be created in.<br/>        """
        pass

    def restore_db_cluster_to_point_in_time(self, SourceDBClusterIdentifier: str, DBClusterIdentifier: str, RestoreToTime: TStamp=None, UseLatestRestorableTime: Boolean=None, Port: int=None, DBSubnetGroupName: str=None, VpcSecurityGroupIds: List[String]=None, Tags: List[Tag]=None, KmsKeyId: str=None, EnableCloudwatchLogsExports: List[String]=None, DeletionProtection: BooleanOptional=None) -> RestoreDBClusterToPointInTimeResult:
        r"""Restores a cluster to an arbitrary point in time. Users can restore to any point in time before <code>LatestRestorableTime</code> for up to <code>BackupRetentionPeriod</code> days. The target cluster is created from the source cluster with the same configuration as the original cluster, except that the new cluster is created with the default security group. 

        :param self:
        :param DeletionProtection:  Specifies whether this cluster can be deleted. If <code>DeletionProtection</code> is enabled, the cluster cannot be deleted unless it is modified and <code>DeletionProtection</code> is disabled. <code>DeletionProtection</code> protects clusters from being accidentally deleted.<br/>EnableCloudwatchLogsExports:  A list of log types that must be enabled for exporting to Amazon CloudWatch Logs.<br/>KmsKeyId:  The KMS key identifier to use when restoring an encrypted cluster from an encrypted cluster. The KMS key identifier is the Amazon Resource Name (ARN) for the KMS encryption key. If you are restoring a cluster with the same account that owns the KMS encryption key used to encrypt the new cluster, then you can use the KMS key alias instead of the ARN for the KMS encryption key. You can restore to a new cluster and encrypt the new cluster with an KMS key that is different from the KMS key used to encrypt the source cluster. The new DB cluster is encrypted with the KMS key identified by the <code>KmsKeyId</code> parameter. If you do not specify a value for the <code>KmsKeyId</code> parameter, then the following occurs: <ul> <li> If the cluster is encrypted, then the restored cluster is encrypted using the KMS key that was used to encrypt the source cluster. </li> <li> If the cluster is not encrypted, then the restored cluster is not encrypted. </li> </ul> If <code>DBClusterIdentifier</code> refers to a cluster that is not encrypted, then the restore request is rejected.<br/>Tags:  The tags to be assigned to the restored cluster.<br/>VpcSecurityGroupIds:  A list of VPC security groups that the new cluster belongs to.<br/>DBSubnetGroupName:  The subnet group name to use for the new cluster. Constraints: If provided, must match the name of an existing <code>DBSubnetGroup</code>. Example: <code>mySubnetgroup</code> <br/>Port:  The port number on which the new cluster accepts connections. Constraints: Must be a value from <code>1150</code> to <code>65535</code>.  Default: The default port for the engine.<br/>UseLatestRestorableTime:  A value that is set to <code>true</code> to restore the cluster to the latest restorable backup time, and <code>false</code> otherwise.  Default: <code>false</code>  Constraints: Cannot be specified if the <code>RestoreToTime</code> parameter is provided.<br/>RestoreToTime:  The date and time to restore the cluster to. Valid values: A time in Universal Coordinated Time (UTC) format. Constraints: <ul> <li> Must be before the latest restorable time for the instance. </li> <li> Must be specified if the <code>UseLatestRestorableTime</code> parameter is not provided. </li> <li> Cannot be specified if the <code>UseLatestRestorableTime</code> parameter is <code>true</code>. </li> <li> Cannot be specified if the <code>RestoreType</code> parameter is <code>copy-on-write</code>. </li> </ul> Example: <code>2015-03-07T23:45:00Z</code> <br/>SourceDBClusterIdentifier:  The identifier of the source cluster from which to restore. Constraints: <ul> <li> Must match the identifier of an existing <code>DBCluster</code>. </li> </ul><br/>DBClusterIdentifier:  The name of the new cluster to be created. Constraints: <ul> <li> Must contain from 1 to 63 letters, numbers, or hyphens. </li> <li> The first character must be a letter. </li> <li> Cannot end with a hyphen or contain two consecutive hyphens. </li> </ul><br/>
        :return: DBCluster:  Detailed information about a cluster. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeletionProtection</i> Specifies whether this cluster can be deleted. If <code>DeletionProtection</code> is enabled, the cluster cannot be deleted unless it is modified and <code>DeletionProtection</code> is disabled. <code>DeletionProtection</code> protects clusters from being accidentally deleted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnabledCloudwatchLogsExports</i> A list of log types that this cluster is configured to export to Amazon CloudWatch Logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterCreateTime</i> Specifies the time when the cluster was created, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociatedRoles</i> Provides a list of the Identity and Access Management (IAM) roles that are associated with the cluster. (IAM) roles that are associated with a cluster grant permission for the cluster to access other Amazon Web Services services on your behalf.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterArn</i> The Amazon Resource Name (ARN) for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DbClusterResourceId</i> The Region-unique, immutable identifier for the cluster. This identifier is found in CloudTrail log entries whenever the KMS key for the cluster is accessed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> If <code>StorageEncrypted</code> is <code>true</code>, the KMS key identifier for the encrypted cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageEncrypted</i> Specifies whether the cluster is encrypted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HostedZoneId</i> Specifies the ID that Amazon Route 53 assigns when you create a hosted zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcSecurityGroups</i> Provides a list of virtual private cloud (VPC) security groups that the cluster belongs to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterMembers</i> Provides the list of instances that make up the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadReplicaIdentifiers</i> Contains one or more identifiers of the secondary clusters that are associated with this cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationSourceIdentifier</i> Contains the identifier of the source cluster if this cluster is a secondary cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i> Specifies the weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredBackupWindow</i> Specifies the daily time range during which automated backups are created if automated backups are enabled, as determined by the <code>BackupRetentionPeriod</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUsername</i> Contains the master user name for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Specifies the port that the database engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestRestorableTime</i> Specifies the latest time to which a database can be restored with point-in-time restore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> Indicates the database engine version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> Provides the name of the database engine to be used for this cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiAZ</i> Specifies whether the cluster has instances in multiple Availability Zones.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReaderEndpoint</i> The reader endpoint for the cluster. The reader endpoint for a cluster load balances connections across the Amazon DocumentDB replicas that are available in a cluster. As clients request new connections to the reader endpoint, Amazon DocumentDB distributes the connection requests among the Amazon DocumentDB replicas in the cluster. This functionality can help balance your read workload across multiple Amazon DocumentDB replicas in your cluster.  If a failover occurs, and the Amazon DocumentDB replica that you are connected to is promoted to be the primary instance, your connection is dropped. To continue sending your read workload to other Amazon DocumentDB replicas in the cluster, you can then reconnect to the reader endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i> Specifies the connection endpoint for the primary instance of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EarliestRestorableTime</i> The earliest time to which a database can be restored with point-in-time restore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PercentProgress</i> Specifies the progress of the operation as a percentage.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Specifies the current state of this cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroup</i> Specifies information on the subnet group that is associated with the cluster, including the name, description, and subnets in the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterParameterGroup</i> Specifies the name of the cluster parameter group for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterIdentifier</i> Contains a user-supplied cluster identifier. This identifier is the unique key that identifies a cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupRetentionPeriod</i> Specifies the number of days for which automatic snapshots are retained.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZones</i> Provides the list of Amazon EC2 Availability Zones that instances in the cluster can be created in.<br/>        """
        pass

    def start_db_cluster(self, DBClusterIdentifier: str) -> StartDBClusterResult:
        r"""Restarts the stopped cluster that is specified by <code>DBClusterIdentifier</code>. For more information, see <a href="https://docs.aws.amazon.com/documentdb/latest/developerguide/db-cluster-stop-start.html">Stopping and Starting an Amazon DocumentDB Cluster</a>.

        :param self:
        :param DBClusterIdentifier:  The identifier of the cluster to restart. Example: <code>docdb-2019-05-28-15-24-52</code> <br/>
        :return: DBCluster:  Detailed information about a cluster. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeletionProtection</i> Specifies whether this cluster can be deleted. If <code>DeletionProtection</code> is enabled, the cluster cannot be deleted unless it is modified and <code>DeletionProtection</code> is disabled. <code>DeletionProtection</code> protects clusters from being accidentally deleted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnabledCloudwatchLogsExports</i> A list of log types that this cluster is configured to export to Amazon CloudWatch Logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterCreateTime</i> Specifies the time when the cluster was created, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociatedRoles</i> Provides a list of the Identity and Access Management (IAM) roles that are associated with the cluster. (IAM) roles that are associated with a cluster grant permission for the cluster to access other Amazon Web Services services on your behalf.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterArn</i> The Amazon Resource Name (ARN) for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DbClusterResourceId</i> The Region-unique, immutable identifier for the cluster. This identifier is found in CloudTrail log entries whenever the KMS key for the cluster is accessed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> If <code>StorageEncrypted</code> is <code>true</code>, the KMS key identifier for the encrypted cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageEncrypted</i> Specifies whether the cluster is encrypted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HostedZoneId</i> Specifies the ID that Amazon Route 53 assigns when you create a hosted zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcSecurityGroups</i> Provides a list of virtual private cloud (VPC) security groups that the cluster belongs to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterMembers</i> Provides the list of instances that make up the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadReplicaIdentifiers</i> Contains one or more identifiers of the secondary clusters that are associated with this cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationSourceIdentifier</i> Contains the identifier of the source cluster if this cluster is a secondary cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i> Specifies the weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredBackupWindow</i> Specifies the daily time range during which automated backups are created if automated backups are enabled, as determined by the <code>BackupRetentionPeriod</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUsername</i> Contains the master user name for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Specifies the port that the database engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestRestorableTime</i> Specifies the latest time to which a database can be restored with point-in-time restore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> Indicates the database engine version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> Provides the name of the database engine to be used for this cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiAZ</i> Specifies whether the cluster has instances in multiple Availability Zones.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReaderEndpoint</i> The reader endpoint for the cluster. The reader endpoint for a cluster load balances connections across the Amazon DocumentDB replicas that are available in a cluster. As clients request new connections to the reader endpoint, Amazon DocumentDB distributes the connection requests among the Amazon DocumentDB replicas in the cluster. This functionality can help balance your read workload across multiple Amazon DocumentDB replicas in your cluster.  If a failover occurs, and the Amazon DocumentDB replica that you are connected to is promoted to be the primary instance, your connection is dropped. To continue sending your read workload to other Amazon DocumentDB replicas in the cluster, you can then reconnect to the reader endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i> Specifies the connection endpoint for the primary instance of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EarliestRestorableTime</i> The earliest time to which a database can be restored with point-in-time restore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PercentProgress</i> Specifies the progress of the operation as a percentage.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Specifies the current state of this cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroup</i> Specifies information on the subnet group that is associated with the cluster, including the name, description, and subnets in the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterParameterGroup</i> Specifies the name of the cluster parameter group for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterIdentifier</i> Contains a user-supplied cluster identifier. This identifier is the unique key that identifies a cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupRetentionPeriod</i> Specifies the number of days for which automatic snapshots are retained.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZones</i> Provides the list of Amazon EC2 Availability Zones that instances in the cluster can be created in.<br/>        """
        pass

    def stop_db_cluster(self, DBClusterIdentifier: str) -> StopDBClusterResult:
        r"""Stops the running cluster that is specified by <code>DBClusterIdentifier</code>. The cluster must be in the <i>available</i> state. For more information, see <a href="https://docs.aws.amazon.com/documentdb/latest/developerguide/db-cluster-stop-start.html">Stopping and Starting an Amazon DocumentDB Cluster</a>.

        :param self:
        :param DBClusterIdentifier:  The identifier of the cluster to stop. Example: <code>docdb-2019-05-28-15-24-52</code> <br/>
        :return: DBCluster:  Detailed information about a cluster. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeletionProtection</i> Specifies whether this cluster can be deleted. If <code>DeletionProtection</code> is enabled, the cluster cannot be deleted unless it is modified and <code>DeletionProtection</code> is disabled. <code>DeletionProtection</code> protects clusters from being accidentally deleted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnabledCloudwatchLogsExports</i> A list of log types that this cluster is configured to export to Amazon CloudWatch Logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterCreateTime</i> Specifies the time when the cluster was created, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociatedRoles</i> Provides a list of the Identity and Access Management (IAM) roles that are associated with the cluster. (IAM) roles that are associated with a cluster grant permission for the cluster to access other Amazon Web Services services on your behalf.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterArn</i> The Amazon Resource Name (ARN) for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DbClusterResourceId</i> The Region-unique, immutable identifier for the cluster. This identifier is found in CloudTrail log entries whenever the KMS key for the cluster is accessed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> If <code>StorageEncrypted</code> is <code>true</code>, the KMS key identifier for the encrypted cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageEncrypted</i> Specifies whether the cluster is encrypted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HostedZoneId</i> Specifies the ID that Amazon Route 53 assigns when you create a hosted zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcSecurityGroups</i> Provides a list of virtual private cloud (VPC) security groups that the cluster belongs to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterMembers</i> Provides the list of instances that make up the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadReplicaIdentifiers</i> Contains one or more identifiers of the secondary clusters that are associated with this cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationSourceIdentifier</i> Contains the identifier of the source cluster if this cluster is a secondary cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i> Specifies the weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredBackupWindow</i> Specifies the daily time range during which automated backups are created if automated backups are enabled, as determined by the <code>BackupRetentionPeriod</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUsername</i> Contains the master user name for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Specifies the port that the database engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestRestorableTime</i> Specifies the latest time to which a database can be restored with point-in-time restore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> Indicates the database engine version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> Provides the name of the database engine to be used for this cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiAZ</i> Specifies whether the cluster has instances in multiple Availability Zones.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReaderEndpoint</i> The reader endpoint for the cluster. The reader endpoint for a cluster load balances connections across the Amazon DocumentDB replicas that are available in a cluster. As clients request new connections to the reader endpoint, Amazon DocumentDB distributes the connection requests among the Amazon DocumentDB replicas in the cluster. This functionality can help balance your read workload across multiple Amazon DocumentDB replicas in your cluster.  If a failover occurs, and the Amazon DocumentDB replica that you are connected to is promoted to be the primary instance, your connection is dropped. To continue sending your read workload to other Amazon DocumentDB replicas in the cluster, you can then reconnect to the reader endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i> Specifies the connection endpoint for the primary instance of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EarliestRestorableTime</i> The earliest time to which a database can be restored with point-in-time restore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PercentProgress</i> Specifies the progress of the operation as a percentage.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Specifies the current state of this cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroup</i> Specifies information on the subnet group that is associated with the cluster, including the name, description, and subnets in the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterParameterGroup</i> Specifies the name of the cluster parameter group for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterIdentifier</i> Contains a user-supplied cluster identifier. This identifier is the unique key that identifies a cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupRetentionPeriod</i> Specifies the number of days for which automatic snapshots are retained.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZones</i> Provides the list of Amazon EC2 Availability Zones that instances in the cluster can be created in.<br/>        """
        pass





class DirectoryService(BaseClient):
    r"""<fullname>AWS Directory Service</fullname> AWS Directory Service is a web service that makes it easy for you to setup and run directories in the AWS cloud, or connect your AWS resources with an existing on-premises Microsoft Active Directory. This guide provides detailed information about AWS Directory Service operations, data types, parameters, and errors. For information about AWS Directory Services features, see <a href="https://aws.amazon.com/directoryservice/">AWS Directory Service</a> and the <a href="http://docs.aws.amazon.com/directoryservice/latest/admin-guide/what_is.html">AWS Directory Service Administration Guide</a>. <note> AWS provides SDKs that consist of libraries and sample code for various programming languages and platforms (Java, Ruby, .Net, iOS, Android, etc.). The SDKs provide a convenient way to create programmatic access to AWS Directory Service and other AWS services. For more information about the AWS SDKs, including how to download and install them, see <a href="http://aws.amazon.com/tools/">Tools for Amazon Web Services</a>. </note>"""


    class DescribeDomainControllersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_domain_controllers` for valid parameters"""
            pass
    class DescribeDirectoriesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_directories` for valid parameters"""
            pass
    class DescribeSharedDirectoriesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_shared_directories` for valid parameters"""
            pass
    class DescribeSnapshotsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_snapshots` for valid parameters"""
            pass
    class DescribeTrustsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_trusts` for valid parameters"""
            pass
    class ListIpRoutesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_ip_routes` for valid parameters"""
            pass
    class ListLogSubscriptionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_log_subscriptions` for valid parameters"""
            pass
    class ListSchemaExtensionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_schema_extensions` for valid parameters"""
            pass
    class ListTagsForResourcePaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_tags_for_resource` for valid parameters"""
            pass


    class AcceptSharedDirectoryRequest(Mapping):
        pass
    
    class AcceptSharedDirectoryResult(Mapping):
        pass
    
    class AddIpRoutesRequest(Mapping):
        pass
    
    class AddIpRoutesResult(Mapping):
        pass
    
    class IpRoute(Mapping):
        pass
    
    class UpdateSecurityGroupForDirectoryControllers(object):
        pass
    
    class AddRegionRequest(Mapping):
        pass
    
    class AddRegionResult(Mapping):
        pass
    
    class DirectoryVpcSettings(Mapping):
        pass
    
    class AddTagsToResourceRequest(Mapping):
        pass
    
    class AddTagsToResourceResult(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class CancelSchemaExtensionRequest(Mapping):
        pass
    
    class CancelSchemaExtensionResult(Mapping):
        pass
    
    class ConnectDirectoryRequest(Mapping):
        pass
    
    class ConnectDirectoryResult(Mapping):
        pass
    
    class DirectoryConnectSettings(Mapping):
        pass
    
    class CreateAliasRequest(Mapping):
        pass
    
    class CreateAliasResult(Mapping):
        pass
    
    class CreateComputerRequest(Mapping):
        pass
    
    class CreateComputerResult(Mapping):
        pass
    
    class Attribute(Mapping):
        pass
    
    class CreateConditionalForwarderRequest(Mapping):
        pass
    
    class CreateConditionalForwarderResult(Mapping):
        pass
    
    class IpAddr(object):
        pass
    
    class CreateDirectoryRequest(Mapping):
        pass
    
    class CreateDirectoryResult(Mapping):
        pass
    
    class CreateLogSubscriptionRequest(Mapping):
        pass
    
    class CreateLogSubscriptionResult(Mapping):
        pass
    
    class CreateMicrosoftADRequest(Mapping):
        pass
    
    class CreateMicrosoftADResult(Mapping):
        pass
    
    class CreateSnapshotRequest(Mapping):
        pass
    
    class CreateSnapshotResult(Mapping):
        pass
    
    class CreateTrustRequest(Mapping):
        pass
    
    class CreateTrustResult(Mapping):
        pass
    
    class DeleteConditionalForwarderRequest(Mapping):
        pass
    
    class DeleteConditionalForwarderResult(Mapping):
        pass
    
    class DeleteDirectoryRequest(Mapping):
        pass
    
    class DeleteDirectoryResult(Mapping):
        pass
    
    class DeleteLogSubscriptionRequest(Mapping):
        pass
    
    class DeleteLogSubscriptionResult(Mapping):
        pass
    
    class DeleteSnapshotRequest(Mapping):
        pass
    
    class DeleteSnapshotResult(Mapping):
        pass
    
    class DeleteTrustRequest(Mapping):
        pass
    
    class DeleteTrustResult(Mapping):
        pass
    
    class DeleteAssociatedConditionalForwarder(object):
        pass
    
    class DeregisterCertificateRequest(Mapping):
        pass
    
    class DeregisterCertificateResult(Mapping):
        pass
    
    class DeregisterEventTopicRequest(Mapping):
        pass
    
    class DeregisterEventTopicResult(Mapping):
        pass
    
    class DescribeCertificateRequest(Mapping):
        pass
    
    class DescribeCertificateResult(Mapping):
        pass
    
    class DescribeConditionalForwardersRequest(Mapping):
        pass
    
    class DescribeConditionalForwardersResult(Mapping):
        pass
    
    class RemoteDomainName(object):
        pass
    
    class DescribeDirectoriesRequest(Mapping):
        pass
    
    class DescribeDirectoriesResult(Mapping):
        pass
    
    class DirectoryId(object):
        pass
    
    class DescribeDomainControllersRequest(Mapping):
        pass
    
    class DescribeDomainControllersResult(Mapping):
        pass
    
    class DomainControllerId(object):
        pass
    
    class DescribeEventTopicsRequest(Mapping):
        pass
    
    class DescribeEventTopicsResult(Mapping):
        pass
    
    class TopicName(object):
        pass
    
    class DescribeLDAPSSettingsRequest(Mapping):
        pass
    
    class DescribeLDAPSSettingsResult(Mapping):
        pass
    
    class DescribeRegionsRequest(Mapping):
        pass
    
    class DescribeRegionsResult(Mapping):
        pass
    
    class DescribeSharedDirectoriesRequest(Mapping):
        pass
    
    class DescribeSharedDirectoriesResult(Mapping):
        pass
    
    class DescribeSnapshotsRequest(Mapping):
        pass
    
    class DescribeSnapshotsResult(Mapping):
        pass
    
    class SnapshotId(object):
        pass
    
    class DescribeTrustsRequest(Mapping):
        pass
    
    class DescribeTrustsResult(Mapping):
        pass
    
    class TrustId(object):
        pass
    
    class DisableClientAuthenticationRequest(Mapping):
        pass
    
    class DisableClientAuthenticationResult(Mapping):
        pass
    
    class DisableLDAPSRequest(Mapping):
        pass
    
    class DisableLDAPSResult(Mapping):
        pass
    
    class DisableRadiusRequest(Mapping):
        pass
    
    class DisableRadiusResult(Mapping):
        pass
    
    class DisableSsoRequest(Mapping):
        pass
    
    class DisableSsoResult(Mapping):
        pass
    
    class EnableClientAuthenticationRequest(Mapping):
        pass
    
    class EnableClientAuthenticationResult(Mapping):
        pass
    
    class EnableLDAPSRequest(Mapping):
        pass
    
    class EnableLDAPSResult(Mapping):
        pass
    
    class EnableRadiusRequest(Mapping):
        pass
    
    class EnableRadiusResult(Mapping):
        pass
    
    class RadiusSettings(Mapping):
        pass
    
    class EnableSsoRequest(Mapping):
        pass
    
    class EnableSsoResult(Mapping):
        pass
    
    class GetDirectoryLimitsRequest(Mapping):
        pass
    
    class GetDirectoryLimitsResult(Mapping):
        pass
    
    class GetSnapshotLimitsRequest(Mapping):
        pass
    
    class GetSnapshotLimitsResult(Mapping):
        pass
    
    class ListCertificatesRequest(Mapping):
        pass
    
    class ListCertificatesResult(Mapping):
        pass
    
    class ListIpRoutesRequest(Mapping):
        pass
    
    class ListIpRoutesResult(Mapping):
        pass
    
    class ListLogSubscriptionsRequest(Mapping):
        pass
    
    class ListLogSubscriptionsResult(Mapping):
        pass
    
    class ListSchemaExtensionsRequest(Mapping):
        pass
    
    class ListSchemaExtensionsResult(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResult(Mapping):
        pass
    
    class RegisterCertificateRequest(Mapping):
        pass
    
    class RegisterCertificateResult(Mapping):
        pass
    
    class ClientCertAuthSettings(Mapping):
        pass
    
    class RegisterEventTopicRequest(Mapping):
        pass
    
    class RegisterEventTopicResult(Mapping):
        pass
    
    class RejectSharedDirectoryRequest(Mapping):
        pass
    
    class RejectSharedDirectoryResult(Mapping):
        pass
    
    class RemoveIpRoutesRequest(Mapping):
        pass
    
    class RemoveIpRoutesResult(Mapping):
        pass
    
    class CidrIp(object):
        pass
    
    class RemoveRegionRequest(Mapping):
        pass
    
    class RemoveRegionResult(Mapping):
        pass
    
    class RemoveTagsFromResourceRequest(Mapping):
        pass
    
    class RemoveTagsFromResourceResult(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class ResetUserPasswordRequest(Mapping):
        pass
    
    class ResetUserPasswordResult(Mapping):
        pass
    
    class RestoreFromSnapshotRequest(Mapping):
        pass
    
    class RestoreFromSnapshotResult(Mapping):
        pass
    
    class ShareDirectoryRequest(Mapping):
        pass
    
    class ShareDirectoryResult(Mapping):
        pass
    
    class ShareTarget(Mapping):
        pass
    
    class StartSchemaExtensionRequest(Mapping):
        pass
    
    class StartSchemaExtensionResult(Mapping):
        pass
    
    class CreateSnapshotBeforeSchemaExtension(object):
        pass
    
    class UnshareDirectoryRequest(Mapping):
        pass
    
    class UnshareDirectoryResult(Mapping):
        pass
    
    class UnshareTarget(Mapping):
        pass
    
    class UpdateConditionalForwarderRequest(Mapping):
        pass
    
    class UpdateConditionalForwarderResult(Mapping):
        pass
    
    class UpdateNumberOfDomainControllersRequest(Mapping):
        pass
    
    class UpdateNumberOfDomainControllersResult(Mapping):
        pass
    
    class UpdateRadiusRequest(Mapping):
        pass
    
    class UpdateRadiusResult(Mapping):
        pass
    
    class UpdateTrustRequest(Mapping):
        pass
    
    class UpdateTrustResult(Mapping):
        pass
    
    class VerifyTrustRequest(Mapping):
        pass
    
    class VerifyTrustResult(Mapping):
        pass
    
    def accept_shared_directory(self, SharedDirectoryId: str) -> AcceptSharedDirectoryResult:
        r"""Accepts a directory sharing request that was sent from the directory owner account.

        :param self:
        :param SharedDirectoryId:  Identifier of the shared directory in the directory consumer account. This identifier is different for each directory owner account. <br/>
        :return: SharedDirectory:  The shared directory in the directory consumer account.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdatedDateTime</i> The date and time that the shared directory was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedDateTime</i> The date and time that the shared directory was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ShareNotes</i> A directory share request that is sent by the directory owner to the directory consumer. The request includes a typed message to help the directory consumer administrator determine whether to approve or reject the share invitation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ShareStatus</i> Current directory status of the shared AWS Managed Microsoft AD directory.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SharedDirectoryId</i> Identifier of the shared directory in the directory consumer account. This identifier is different for each directory owner account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SharedAccountId</i> Identifier of the directory consumer account that has access to the shared directory (<code>OwnerDirectoryId</code>) in the directory owner account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ShareMethod</i> The method used when sharing a directory to determine whether the directory should be shared within your AWS organization (<code>ORGANIZATIONS</code>) or with any AWS account by sending a shared directory request (<code>HANDSHAKE</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerDirectoryId</i> Identifier of the directory in the directory owner account. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerAccountId</i> Identifier of the directory owner account, which contains the directory that has been shared to the consumer account.<br/>        """
        pass

    def add_ip_routes(self, IpRoutes: List[IpRoute], DirectoryId: str, UpdateSecurityGroupForDirectoryControllers: UpdateSecurityGroupForDirectoryControllers=None) -> AddIpRoutesResult:
        r"""If the DNS server for your on-premises domain uses a publicly addressable IP address, you must add a CIDR address block to correctly route traffic to and from your Microsoft AD on Amazon Web Services. <i>AddIpRoutes</i> adds this address block. You can also use <i>AddIpRoutes</i> to facilitate routing traffic that uses public IP ranges from your Microsoft AD on AWS to a peer VPC.  Before you call <i>AddIpRoutes</i>, ensure that all of the required permissions have been explicitly granted through a policy. For details about what permissions are required to run the <i>AddIpRoutes</i> operation, see <a href="http://docs.aws.amazon.com/directoryservice/latest/admin-guide/UsingWithDS_IAM_ResourcePermissions.html">AWS Directory Service API Permissions: Actions, Resources, and Conditions Reference</a>.

        :param self:
        :param UpdateSecurityGroupForDirectoryControllers:  If set to true, updates the inbound and outbound rules of the security group that has the description: "AWS created security group for <i>directory ID</i> directory controllers." Following are the new rules:  Inbound: <ul> <li> Type: Custom UDP Rule, Protocol: UDP, Range: 88, Source: 0.0.0.0/0 </li> <li> Type: Custom UDP Rule, Protocol: UDP, Range: 123, Source: 0.0.0.0/0 </li> <li> Type: Custom UDP Rule, Protocol: UDP, Range: 138, Source: 0.0.0.0/0 </li> <li> Type: Custom UDP Rule, Protocol: UDP, Range: 389, Source: 0.0.0.0/0 </li> <li> Type: Custom UDP Rule, Protocol: UDP, Range: 464, Source: 0.0.0.0/0 </li> <li> Type: Custom UDP Rule, Protocol: UDP, Range: 445, Source: 0.0.0.0/0 </li> <li> Type: Custom TCP Rule, Protocol: TCP, Range: 88, Source: 0.0.0.0/0 </li> <li> Type: Custom TCP Rule, Protocol: TCP, Range: 135, Source: 0.0.0.0/0 </li> <li> Type: Custom TCP Rule, Protocol: TCP, Range: 445, Source: 0.0.0.0/0 </li> <li> Type: Custom TCP Rule, Protocol: TCP, Range: 464, Source: 0.0.0.0/0 </li> <li> Type: Custom TCP Rule, Protocol: TCP, Range: 636, Source: 0.0.0.0/0 </li> <li> Type: Custom TCP Rule, Protocol: TCP, Range: 1024-65535, Source: 0.0.0.0/0 </li> <li> Type: Custom TCP Rule, Protocol: TCP, Range: 3268-33269, Source: 0.0.0.0/0 </li> <li> Type: DNS (UDP), Protocol: UDP, Range: 53, Source: 0.0.0.0/0 </li> <li> Type: DNS (TCP), Protocol: TCP, Range: 53, Source: 0.0.0.0/0 </li> <li> Type: LDAP, Protocol: TCP, Range: 389, Source: 0.0.0.0/0 </li> <li> Type: All ICMP, Protocol: All, Range: N/A, Source: 0.0.0.0/0 </li> </ul> <p/> Outbound: <ul> <li> Type: All traffic, Protocol: All, Range: All, Destination: 0.0.0.0/0 </li> </ul> These security rules impact an internal network interface that is not exposed publicly.<br/>IpRoutes:  IP address blocks, using CIDR format, of the traffic to route. This is often the IP address block of the DNS server used for your on-premises domain.<br/>DirectoryId:  Identifier (ID) of the directory to which to add the address block.<br/>
        :return:         """
        pass

    def add_region(self, VPCSettings: DirectoryVpcSettings, RegionName: str, DirectoryId: str) -> AddRegionResult:
        r"""Adds two domain controllers in the specified Region for the specified directory.

        :param self:
        :param VPCSettings:  Contains VPC information for the <a>CreateDirectory</a> or <a>CreateMicrosoftAD</a> operation.:<br/>RegionName:  The name of the Region where you want to add domain controllers for replication. For example, <code>us-east-1</code>.<br/>DirectoryId:  The identifier of the directory to which you want to add Region replication.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetIds</i> The identifiers of the subnets for the directory servers. The two subnets must be in different Availability Zones. AWS Directory Service creates a directory server and a DNS server in each of these subnets.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The identifier of the VPC in which to create the directory.<br/>
        :return:         """
        pass

    def add_tags_to_resource(self, Tags: List[Tag], ResourceId: str) -> AddTagsToResourceResult:
        r"""Adds or overwrites one or more tags for the specified directory. Each directory can have a maximum of 50 tags. Each tag consists of a key and optional value. Tag keys must be unique to each resource.

        :param self:
        :param Tags:  The tags to be assigned to the directory.<br/>ResourceId:  Identifier (ID) for the directory to which to add the tag.<br/>
        :return:         """
        pass

    def cancel_schema_extension(self, SchemaExtensionId: str, DirectoryId: str) -> CancelSchemaExtensionResult:
        r"""Cancels an in-progress schema extension to a Microsoft AD directory. Once a schema extension has started replicating to all domain controllers, the task can no longer be canceled. A schema extension can be canceled during any of the following states; <code>Initializing</code>, <code>CreatingSnapshot</code>, and <code>UpdatingSchema</code>.

        :param self:
        :param SchemaExtensionId:  The identifier of the schema extension that will be canceled.<br/>DirectoryId:  The identifier of the directory whose schema extension will be canceled.<br/>
        :return:         """
        pass

    def connect_directory(self, ConnectSettings: DirectoryConnectSettings, Size: str, Password: str, Name: str, ShortName: str=None, Description: str=None, Tags: List[Tag]=None) -> ConnectDirectoryResult:
        r"""Creates an AD Connector to connect to an on-premises directory. Before you call <code>ConnectDirectory</code>, ensure that all of the required permissions have been explicitly granted through a policy. For details about what permissions are required to run the <code>ConnectDirectory</code> operation, see <a href="http://docs.aws.amazon.com/directoryservice/latest/admin-guide/UsingWithDS_IAM_ResourcePermissions.html">AWS Directory Service API Permissions: Actions, Resources, and Conditions Reference</a>.

        :param self:
        :param Tags:  The tags to be assigned to AD Connector.<br/>ConnectSettings:  A <a>DirectoryConnectSettings</a> object that contains additional information for the operation.:<br/>Size:  The size of the directory.<br/>Description:  A description for the directory.<br/>Password:  The password for the on-premises user account.<br/>ShortName:  The NetBIOS name of the on-premises directory, such as <code>CORP</code>.<br/>Name:  The fully qualified name of the on-premises directory, such as <code>corp.example.com</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomerUserName</i> The user name of an account in the on-premises directory that is used to connect to the directory. This account must have the following permissions: <ul> <li> Read users and groups </li> <li> Create computer objects </li> <li> Join computers to the domain </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomerDnsIps</i> A list of one or more IP addresses of DNS servers or domain controllers in the on-premises directory.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetIds</i> A list of subnet identifiers in the VPC in which the AD Connector is created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The identifier of the VPC in which the AD Connector is created.<br/>
        :return: DirectoryId:  The identifier of the new directory.<br/>        """
        pass

    def create_alias(self, Alias: str, DirectoryId: str) -> CreateAliasResult:
        r"""Creates an alias for a directory and assigns the alias to the directory. The alias is used to construct the access URL for the directory, such as <code>http://&lt;alias&gt;.awsapps.com</code>. <important> After an alias has been created, it cannot be deleted or reused, so this operation should only be used when absolutely necessary. </important>

        :param self:
        :param Alias:  The requested alias. The alias must be unique amongst all aliases in AWS. This operation throws an <code>EntityAlreadyExistsException</code> error if the alias already exists.<br/>DirectoryId:  The identifier of the directory for which to create the alias.<br/>
        :return: Alias:  The alias for the directory.<br/>DirectoryId:  The identifier of the directory.<br/>        """
        pass

    def create_computer(self, Password: str, ComputerName: str, DirectoryId: str, OrganizationalUnitDistinguishedName: str=None, ComputerAttributes: List[Attribute]=None) -> CreateComputerResult:
        r"""Creates an Active Directory computer object in the specified directory.

        :param self:
        :param ComputerAttributes:  An array of <a>Attribute</a> objects that contain any LDAP attributes to apply to the computer account.<br/>OrganizationalUnitDistinguishedName:  The fully-qualified distinguished name of the organizational unit to place the computer account in.<br/>Password:  A one-time password that is used to join the computer to the directory. You should generate a random, strong password to use for this parameter.<br/>ComputerName:  The name of the computer account.<br/>DirectoryId:  The identifier of the directory in which to create the computer account.<br/>
        :return: Computer:  A <a>Computer</a> object that represents the computer account.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ComputerAttributes</i> An array of <a>Attribute</a> objects containing the LDAP attributes that belong to the computer account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ComputerName</i> The computer name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ComputerId</i> The identifier of the computer.<br/>        """
        pass

    def create_conditional_forwarder(self, DnsIpAddrs: List[IpAddr], RemoteDomainName: str, DirectoryId: str) -> CreateConditionalForwarderResult:
        r"""Creates a conditional forwarder associated with your AWS directory. Conditional forwarders are required in order to set up a trust relationship with another domain. The conditional forwarder points to the trusted domain.

        :param self:
        :param DnsIpAddrs:  The IP addresses of the remote DNS server associated with RemoteDomainName.<br/>RemoteDomainName:  The fully qualified domain name (FQDN) of the remote domain with which you will set up a trust relationship.<br/>DirectoryId:  The directory ID of the AWS directory for which you are creating the conditional forwarder.<br/>
        :return:         """
        pass

    def create_directory(self, Size: str, Password: str, Name: str, ShortName: str=None, Description: str=None, VpcSettings: DirectoryVpcSettings=None, Tags: List[Tag]=None) -> CreateDirectoryResult:
        r"""Creates a Simple AD directory. For more information, see <a href="https://docs.aws.amazon.com/directoryservice/latest/admin-guide/directory_simple_ad.html">Simple Active Directory</a> in the <i>AWS Directory Service Admin Guide</i>. Before you call <code>CreateDirectory</code>, ensure that all of the required permissions have been explicitly granted through a policy. For details about what permissions are required to run the <code>CreateDirectory</code> operation, see <a href="http://docs.aws.amazon.com/directoryservice/latest/admin-guide/UsingWithDS_IAM_ResourcePermissions.html">AWS Directory Service API Permissions: Actions, Resources, and Conditions Reference</a>.

        :param self:
        :param Tags:  The tags to be assigned to the Simple AD directory.<br/>VpcSettings:  A <a>DirectoryVpcSettings</a> object that contains additional information for the operation.:<br/>Size:  The size of the directory.<br/>Description:  A description for the directory.<br/>Password:  The password for the directory administrator. The directory creation process creates a directory administrator account with the user name <code>Administrator</code> and this password. If you need to change the password for the administrator account, you can use the <a>ResetUserPassword</a> API call. The regex pattern for this string is made up of the following conditions: <ul> <li> Length (?=^.{8,64}$) – Must be between 8 and 64 characters </li> </ul> AND any 3 of the following password complexity rules required by Active Directory: <ul> <li> Numbers and upper case and lowercase (?=.*\d)(?=.*[A-Z])(?=.*[a-z]) </li> <li> Numbers and special characters and lower case (?=.*\d)(?=.*[^A-Za-z0-9\s])(?=.*[a-z]) </li> <li> Special characters and upper case and lower case (?=.*[^A-Za-z0-9\s])(?=.*[A-Z])(?=.*[a-z]) </li> <li> Numbers and upper case and special characters (?=.*\d)(?=.*[A-Z])(?=.*[^A-Za-z0-9\s]) </li> </ul> For additional information about how Active Directory passwords are enforced, see <a href="https://docs.microsoft.com/en-us/windows/security/threat-protection/security-policy-settings/password-must-meet-complexity-requirements">Password must meet complexity requirements</a> on the Microsoft website.<br/>ShortName:  The NetBIOS name of the directory, such as <code>CORP</code>.<br/>Name:  The fully qualified name for the directory, such as <code>corp.example.com</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetIds</i> The identifiers of the subnets for the directory servers. The two subnets must be in different Availability Zones. AWS Directory Service creates a directory server and a DNS server in each of these subnets.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The identifier of the VPC in which to create the directory.<br/>
        :return: DirectoryId:  The identifier of the directory that was created.<br/>        """
        pass

    def create_log_subscription(self, LogGroupName: str, DirectoryId: str) -> CreateLogSubscriptionResult:
        r"""Creates a subscription to forward real-time Directory Service domain controller security logs to the specified Amazon CloudWatch log group in your AWS account.

        :param self:
        :param LogGroupName:  The name of the CloudWatch log group where the real-time domain controller logs are forwarded.<br/>DirectoryId:  Identifier of the directory to which you want to subscribe and receive real-time logs to your specified CloudWatch log group.<br/>
        :return:         """
        pass

    def create_microsoft_ad(self, VpcSettings: DirectoryVpcSettings, Password: str, Name: str, ShortName: str=None, Description: str=None, Edition: str=None, Tags: List[Tag]=None) -> CreateMicrosoftADResult:
        r"""Creates a Microsoft AD directory in the AWS Cloud. For more information, see <a href="https://docs.aws.amazon.com/directoryservice/latest/admin-guide/directory_microsoft_ad.html">AWS Managed Microsoft AD</a> in the <i>AWS Directory Service Admin Guide</i>. Before you call <i>CreateMicrosoftAD</i>, ensure that all of the required permissions have been explicitly granted through a policy. For details about what permissions are required to run the <i>CreateMicrosoftAD</i> operation, see <a href="http://docs.aws.amazon.com/directoryservice/latest/admin-guide/UsingWithDS_IAM_ResourcePermissions.html">AWS Directory Service API Permissions: Actions, Resources, and Conditions Reference</a>.

        :param self:
        :param Tags:  The tags to be assigned to the AWS Managed Microsoft AD directory.<br/>Edition:  AWS Managed Microsoft AD is available in two editions: <code>Standard</code> and <code>Enterprise</code>. <code>Enterprise</code> is the default.<br/>VpcSettings:  Contains VPC information for the <a>CreateDirectory</a> or <a>CreateMicrosoftAD</a> operation.:<br/>Description:  A description for the directory. This label will appear on the AWS console <code>Directory Details</code> page after the directory is created.<br/>Password:  The password for the default administrative user named <code>Admin</code>. If you need to change the password for the administrator account, you can use the <a>ResetUserPassword</a> API call.<br/>ShortName:  The NetBIOS name for your domain, such as <code>CORP</code>. If you don't specify a NetBIOS name, it will default to the first part of your directory DNS. For example, <code>CORP</code> for the directory DNS <code>corp.example.com</code>. <br/>Name:  The fully qualified domain name for the AWS Managed Microsoft AD directory, such as <code>corp.example.com</code>. This name will resolve inside your VPC only. It does not need to be publicly resolvable.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetIds</i> The identifiers of the subnets for the directory servers. The two subnets must be in different Availability Zones. AWS Directory Service creates a directory server and a DNS server in each of these subnets.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The identifier of the VPC in which to create the directory.<br/>
        :return: DirectoryId:  The identifier of the directory that was created.<br/>        """
        pass

    def create_snapshot(self, DirectoryId: str, Name: str=None) -> CreateSnapshotResult:
        r"""Creates a snapshot of a Simple AD or Microsoft AD directory in the AWS cloud. <note> You cannot take snapshots of AD Connector directories. </note>

        :param self:
        :param Name:  The descriptive name to apply to the snapshot.<br/>DirectoryId:  The identifier of the directory of which to take a snapshot.<br/>
        :return: SnapshotId:  The identifier of the snapshot that was created.<br/>        """
        pass

    def create_trust(self, TrustDirection: str, TrustPassword: str, RemoteDomainName: str, DirectoryId: str, TrustType: str=None, ConditionalForwarderIpAddrs: List[IpAddr]=None, SelectiveAuth: str=None) -> CreateTrustResult:
        r"""AWS Directory Service for Microsoft Active Directory allows you to configure trust relationships. For example, you can establish a trust between your AWS Managed Microsoft AD directory, and your existing on-premises Microsoft Active Directory. This would allow you to provide users and groups access to resources in either domain, with a single set of credentials. This action initiates the creation of the AWS side of a trust relationship between an AWS Managed Microsoft AD directory and an external domain. You can create either a forest trust or an external trust.

        :param self:
        :param SelectiveAuth:  Optional parameter to enable selective authentication for the trust.<br/>ConditionalForwarderIpAddrs:  The IP addresses of the remote DNS server associated with RemoteDomainName.<br/>TrustType:  The trust relationship type. <code>Forest</code> is the default.<br/>TrustDirection:  The direction of the trust relationship.<br/>TrustPassword:  The trust password. The must be the same password that was used when creating the trust relationship on the external domain.<br/>RemoteDomainName:  The Fully Qualified Domain Name (FQDN) of the external domain for which to create the trust relationship.<br/>DirectoryId:  The Directory ID of the AWS Managed Microsoft AD directory for which to establish the trust relationship.<br/>
        :return: TrustId:  A unique identifier for the trust relationship that was created.<br/>        """
        pass

    def delete_conditional_forwarder(self, RemoteDomainName: str, DirectoryId: str) -> DeleteConditionalForwarderResult:
        r"""Deletes a conditional forwarder that has been set up for your AWS directory.

        :param self:
        :param RemoteDomainName:  The fully qualified domain name (FQDN) of the remote domain with which you are deleting the conditional forwarder.<br/>DirectoryId:  The directory ID for which you are deleting the conditional forwarder.<br/>
        :return:         """
        pass

    def delete_directory(self, DirectoryId: str) -> DeleteDirectoryResult:
        r"""Deletes an AWS Directory Service directory. Before you call <code>DeleteDirectory</code>, ensure that all of the required permissions have been explicitly granted through a policy. For details about what permissions are required to run the <code>DeleteDirectory</code> operation, see <a href="http://docs.aws.amazon.com/directoryservice/latest/admin-guide/UsingWithDS_IAM_ResourcePermissions.html">AWS Directory Service API Permissions: Actions, Resources, and Conditions Reference</a>.

        :param self:
        :param DirectoryId:  The identifier of the directory to delete.<br/>
        :return: DirectoryId:  The directory identifier.<br/>        """
        pass

    def delete_log_subscription(self, DirectoryId: str) -> DeleteLogSubscriptionResult:
        r"""Deletes the specified log subscription.

        :param self:
        :param DirectoryId:  Identifier of the directory whose log subscription you want to delete.<br/>
        :return:         """
        pass

    def delete_snapshot(self, SnapshotId: str) -> DeleteSnapshotResult:
        r"""Deletes a directory snapshot.

        :param self:
        :param SnapshotId:  The identifier of the directory snapshot to be deleted.<br/>
        :return: SnapshotId:  The identifier of the directory snapshot that was deleted.<br/>        """
        pass

    def delete_trust(self, TrustId: str, DeleteAssociatedConditionalForwarder: DeleteAssociatedConditionalForwarder=None) -> DeleteTrustResult:
        r"""Deletes an existing trust relationship between your AWS Managed Microsoft AD directory and an external domain.

        :param self:
        :param DeleteAssociatedConditionalForwarder:  Delete a conditional forwarder as part of a DeleteTrustRequest.<br/>TrustId:  The Trust ID of the trust relationship to be deleted.<br/>
        :return: TrustId:  The Trust ID of the trust relationship that was deleted.<br/>        """
        pass

    def deregister_certificate(self, CertificateId: str, DirectoryId: str) -> DeregisterCertificateResult:
        r"""Deletes from the system the certificate that was registered for secure LDAP or client certificate authentication.

        :param self:
        :param CertificateId:  The identifier of the certificate.<br/>DirectoryId:  The identifier of the directory.<br/>
        :return:         """
        pass

    def deregister_event_topic(self, TopicName: str, DirectoryId: str) -> DeregisterEventTopicResult:
        r"""Removes the specified directory as a publisher to the specified SNS topic.

        :param self:
        :param TopicName:  The name of the SNS topic from which to remove the directory as a publisher.<br/>DirectoryId:  The Directory ID to remove as a publisher. This directory will no longer send messages to the specified SNS topic.<br/>
        :return:         """
        pass

    def describe_certificate(self, CertificateId: str, DirectoryId: str) -> DescribeCertificateResult:
        r"""Displays information about the certificate registered for secure LDAP or client certificate authentication.

        :param self:
        :param CertificateId:  The identifier of the certificate.<br/>DirectoryId:  The identifier of the directory.<br/>
        :return: Certificate:  Information about the certificate, including registered date time, certificate state, the reason for the state, expiration date time, and certificate common name.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClientCertAuthSettings</i> A <code>ClientCertAuthSettings</code> object that contains client certificate authentication settings.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ClientCertAuthSettings</b>: A <code>ClientCertAuthSettings</code> object that contains client certificate authentication settings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The function that the registered certificate performs. Valid values include <code>ClientLDAPS</code> or <code>ClientCertAuth</code>. The default value is <code>ClientLDAPS</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExpiryDateTime</i> The date and time when the certificate will expire.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RegisteredDateTime</i> The date and time that the certificate was registered.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CommonName</i> The common name for the certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StateReason</i> Describes a state change for the certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CertificateId</i> The identifier of the certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OCSPUrl</i> Specifies the URL of the default OCSP server used to check for revocation status. A secondary value to any OCSP address found in the AIA extension of the user certificate.<br/>        """
        pass

    def describe_conditional_forwarders(self, DirectoryId: str, RemoteDomainNames: List[RemoteDomainName]=None) -> DescribeConditionalForwardersResult:
        r"""Obtains information about the conditional forwarders for this account. If no input parameters are provided for RemoteDomainNames, this request describes all conditional forwarders for the specified directory ID.

        :param self:
        :param RemoteDomainNames:  The fully qualified domain names (FQDN) of the remote domains for which to get the list of associated conditional forwarders. If this member is null, all conditional forwarders are returned.<br/>DirectoryId:  The directory ID for which to get the list of associated conditional forwarders.<br/>
        :return: ConditionalForwarders:  The list of conditional forwarders that have been created.<br/>        """
        pass

    def describe_directories(self, DirectoryIds: List[DirectoryId]=None, NextToken: str=None, Limit: int=None) -> DescribeDirectoriesResult:
        r"""Obtains information about the directories that belong to this account. You can retrieve information about specific directories by passing the directory identifiers in the <code>DirectoryIds</code> parameter. Otherwise, all directories that belong to the current account are returned. This operation supports pagination with the use of the <code>NextToken</code> request and response parameters. If more results are available, the <code>DescribeDirectoriesResult.NextToken</code> member contains a token that you pass in the next call to <a>DescribeDirectories</a> to retrieve the next set of items. You can also specify a maximum number of return results with the <code>Limit</code> parameter.

        :param self:
        :param Limit:  The maximum number of items to return. If this value is zero, the maximum number of items is specified by the limitations of the operation.<br/>NextToken:  The <code>DescribeDirectoriesResult.NextToken</code> value from a previous call to <a>DescribeDirectories</a>. Pass null if this is the first call.<br/>DirectoryIds:  A list of identifiers of the directories for which to obtain the information. If this member is null, all directories that belong to the current account are returned. An empty list results in an <code>InvalidParameterException</code> being thrown.<br/>
        :return: NextToken:  If not null, more results are available. Pass this value for the <code>NextToken</code> parameter in a subsequent call to <a>DescribeDirectories</a> to retrieve the next set of items.<br/>DirectoryDescriptions:  The list of <a>DirectoryDescription</a> objects that were retrieved. It is possible that this list contains less than the number of items specified in the <code>Limit</code> member of the request. This occurs if there are less than the requested number of items left to retrieve, or if the limitations of the operation have been exceeded.<br/>        """
        pass

    def describe_domain_controllers(self, DirectoryId: str, DomainControllerIds: List[DomainControllerId]=None, NextToken: str=None, Limit: int=None) -> DescribeDomainControllersResult:
        r"""Provides information about any domain controllers in your directory.

        :param self:
        :param Limit:  The maximum number of items to return.<br/>NextToken:  The <i>DescribeDomainControllers.NextToken</i> value from a previous call to <a>DescribeDomainControllers</a>. Pass null if this is the first call. <br/>DomainControllerIds:  A list of identifiers for the domain controllers whose information will be provided.<br/>DirectoryId:  Identifier of the directory for which to retrieve the domain controller information.<br/>
        :return: NextToken:  If not null, more results are available. Pass this value for the <code>NextToken</code> parameter in a subsequent call to <a>DescribeDomainControllers</a> retrieve the next set of items.<br/>DomainControllers:  List of the <a>DomainController</a> objects that were retrieved.<br/>        """
        pass

    def describe_event_topics(self, DirectoryId: str=None, TopicNames: List[TopicName]=None) -> DescribeEventTopicsResult:
        r"""Obtains information about which SNS topics receive status messages from the specified directory. If no input parameters are provided, such as DirectoryId or TopicName, this request describes all of the associations in the account.

        :param self:
        :param TopicNames:  A list of SNS topic names for which to obtain the information. If this member is null, all associations for the specified Directory ID are returned. An empty list results in an <code>InvalidParameterException</code> being thrown.<br/>DirectoryId:  The Directory ID for which to get the list of associated SNS topics. If this member is null, associations for all Directory IDs are returned.<br/>
        :return: EventTopics:  A list of SNS topic names that receive status messages from the specified Directory ID.<br/>        """
        pass

    def describe_ldaps_settings(self, DirectoryId: str, Type: str=None, NextToken: str=None, Limit: int=None) -> DescribeLDAPSSettingsResult:
        r"""Describes the status of LDAP security for the specified directory.

        :param self:
        :param Limit:  Specifies the number of items that should be displayed on one page.<br/>NextToken:  The type of next token used for pagination.<br/>Type:  The type of LDAP security to enable. Currently only the value <code>Client</code> is supported.<br/>DirectoryId:  The identifier of the directory.<br/>
        :return: NextToken:  The next token used to retrieve the LDAPS settings if the number of setting types exceeds page limit and there is another page.<br/>LDAPSSettingsInfo:  Information about LDAP security for the specified directory, including status of enablement, state last updated date time, and the reason for the state.<br/>        """
        pass

    def describe_regions(self, DirectoryId: str, RegionName: str=None, NextToken: str=None) -> DescribeRegionsResult:
        r"""Provides information about the Regions that are configured for multi-Region replication.

        :param self:
        :param NextToken:  The <code>DescribeRegionsResult.NextToken</code> value from a previous call to <a>DescribeRegions</a>. Pass null if this is the first call.<br/>RegionName:  The name of the Region. For example, <code>us-east-1</code>.<br/>DirectoryId:  The identifier of the directory.<br/>
        :return: NextToken:  If not null, more results are available. Pass this value for the <code>NextToken</code> parameter in a subsequent call to <a>DescribeRegions</a> to retrieve the next set of items.<br/>RegionsDescription:  List of Region information related to the directory for each replicated Region.<br/>        """
        pass

    def describe_shared_directories(self, OwnerDirectoryId: str, SharedDirectoryIds: List[DirectoryId]=None, NextToken: str=None, Limit: int=None) -> DescribeSharedDirectoriesResult:
        r"""Returns the shared directories in your account. 

        :param self:
        :param Limit:  The number of shared directories to return in the response object.<br/>NextToken:  The <code>DescribeSharedDirectoriesResult.NextToken</code> value from a previous call to <a>DescribeSharedDirectories</a>. Pass null if this is the first call. <br/>SharedDirectoryIds:  A list of identifiers of all shared directories in your account. <br/>OwnerDirectoryId:  Returns the identifier of the directory in the directory owner account. <br/>
        :return: NextToken:  If not null, token that indicates that more results are available. Pass this value for the <code>NextToken</code> parameter in a subsequent call to <a>DescribeSharedDirectories</a> to retrieve the next set of items.<br/>SharedDirectories:  A list of all shared directories in your account.<br/>        """
        pass

    def describe_snapshots(self, DirectoryId: str=None, SnapshotIds: List[SnapshotId]=None, NextToken: str=None, Limit: int=None) -> DescribeSnapshotsResult:
        r"""Obtains information about the directory snapshots that belong to this account. This operation supports pagination with the use of the <i>NextToken</i> request and response parameters. If more results are available, the <i>DescribeSnapshots.NextToken</i> member contains a token that you pass in the next call to <a>DescribeSnapshots</a> to retrieve the next set of items. You can also specify a maximum number of return results with the <i>Limit</i> parameter.

        :param self:
        :param Limit:  The maximum number of objects to return.<br/>NextToken:  The <i>DescribeSnapshotsResult.NextToken</i> value from a previous call to <a>DescribeSnapshots</a>. Pass null if this is the first call.<br/>SnapshotIds:  A list of identifiers of the snapshots to obtain the information for. If this member is null or empty, all snapshots are returned using the <i>Limit</i> and <i>NextToken</i> members.<br/>DirectoryId:  The identifier of the directory for which to retrieve snapshot information.<br/>
        :return: NextToken:  If not null, more results are available. Pass this value in the <i>NextToken</i> member of a subsequent call to <a>DescribeSnapshots</a>.<br/>Snapshots:  The list of <a>Snapshot</a> objects that were retrieved. It is possible that this list contains less than the number of items specified in the <i>Limit</i> member of the request. This occurs if there are less than the requested number of items left to retrieve, or if the limitations of the operation have been exceeded.<br/>        """
        pass

    def describe_trusts(self, DirectoryId: str=None, TrustIds: List[TrustId]=None, NextToken: str=None, Limit: int=None) -> DescribeTrustsResult:
        r"""Obtains information about the trust relationships for this account. If no input parameters are provided, such as DirectoryId or TrustIds, this request describes all the trust relationships belonging to the account.

        :param self:
        :param Limit:  The maximum number of objects to return.<br/>NextToken:  The <i>DescribeTrustsResult.NextToken</i> value from a previous call to <a>DescribeTrusts</a>. Pass null if this is the first call.<br/>TrustIds:  A list of identifiers of the trust relationships for which to obtain the information. If this member is null, all trust relationships that belong to the current account are returned. An empty list results in an <code>InvalidParameterException</code> being thrown.<br/>DirectoryId:  The Directory ID of the AWS directory that is a part of the requested trust relationship.<br/>
        :return: NextToken:  If not null, more results are available. Pass this value for the <i>NextToken</i> parameter in a subsequent call to <a>DescribeTrusts</a> to retrieve the next set of items.<br/>Trusts:  The list of Trust objects that were retrieved. It is possible that this list contains less than the number of items specified in the <i>Limit</i> member of the request. This occurs if there are less than the requested number of items left to retrieve, or if the limitations of the operation have been exceeded.<br/>        """
        pass

    def disable_client_authentication(self, Type: str, DirectoryId: str) -> DisableClientAuthenticationResult:
        r"""Disables alternative client authentication methods for the specified directory. 

        :param self:
        :param Type:  The type of client authentication to disable. Currently, only the parameter, <code>SmartCard</code> is supported.<br/>DirectoryId:  The identifier of the directory <br/>
        :return:         """
        pass

    def disable_ldaps(self, Type: str, DirectoryId: str) -> DisableLDAPSResult:
        r"""Deactivates LDAP secure calls for the specified directory.

        :param self:
        :param Type:  The type of LDAP security to enable. Currently only the value <code>Client</code> is supported.<br/>DirectoryId:  The identifier of the directory.<br/>
        :return:         """
        pass

    def disable_radius(self, DirectoryId: str) -> DisableRadiusResult:
        r"""Disables multi-factor authentication (MFA) with the Remote Authentication Dial In User Service (RADIUS) server for an AD Connector or Microsoft AD directory.

        :param self:
        :param DirectoryId:  The identifier of the directory for which to disable MFA.<br/>
        :return:         """
        pass

    def disable_sso(self, DirectoryId: str, UserName: str=None, Password: str=None) -> DisableSsoResult:
        r"""Disables single-sign on for a directory.

        :param self:
        :param Password:  The password of an alternate account to use to disable single-sign on. This is only used for AD Connector directories. For more information, see the <i>UserName</i> parameter.<br/>UserName:  The username of an alternate account to use to disable single-sign on. This is only used for AD Connector directories. This account must have privileges to remove a service principal name. If the AD Connector service account does not have privileges to remove a service principal name, you can specify an alternate account with the <i>UserName</i> and <i>Password</i> parameters. These credentials are only used to disable single sign-on and are not stored by the service. The AD Connector service account is not changed.<br/>DirectoryId:  The identifier of the directory for which to disable single-sign on.<br/>
        :return:         """
        pass

    def enable_client_authentication(self, Type: str, DirectoryId: str) -> EnableClientAuthenticationResult:
        r"""Enables alternative client authentication methods for the specified directory.

        :param self:
        :param Type:  The type of client authentication to enable. Currently only the value <code>SmartCard</code> is supported. Smart card authentication in AD Connector requires that you enable Kerberos Constrained Delegation for the Service User to the LDAP service in the on-premises AD. <br/>DirectoryId:  The identifier of the specified directory. <br/>
        :return:         """
        pass

    def enable_ldaps(self, Type: str, DirectoryId: str) -> EnableLDAPSResult:
        r"""Activates the switch for the specific directory to always use LDAP secure calls.

        :param self:
        :param Type:  The type of LDAP security to enable. Currently only the value <code>Client</code> is supported.<br/>DirectoryId:  The identifier of the directory.<br/>
        :return:         """
        pass

    def enable_radius(self, RadiusSettings: RadiusSettings, DirectoryId: str) -> EnableRadiusResult:
        r"""Enables multi-factor authentication (MFA) with the Remote Authentication Dial In User Service (RADIUS) server for an AD Connector or Microsoft AD directory.

        :param self:
        :param RadiusSettings:  A <a>RadiusSettings</a> object that contains information about the RADIUS server.:<br/>DirectoryId:  The identifier of the directory for which to enable MFA.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UseSameUsername</i> Not currently used.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DisplayLabel</i> Not currently used.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AuthenticationProtocol</i> The protocol specified for your RADIUS endpoints.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SharedSecret</i> Required for enabling RADIUS on the directory.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RadiusRetries</i> The maximum number of times that communication with the RADIUS server is attempted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RadiusTimeout</i> The amount of time, in seconds, to wait for the RADIUS server to respond.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RadiusPort</i> The port that your RADIUS server is using for communications. Your on-premises network must allow inbound traffic over this port from the AWS Directory Service servers.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RadiusServers</i> An array of strings that contains the fully qualified domain name (FQDN) or IP addresses of the RADIUS server endpoints, or the FQDN or IP addresses of your RADIUS server load balancer.<br/>
        :return:         """
        pass

    def enable_sso(self, DirectoryId: str, UserName: str=None, Password: str=None) -> EnableSsoResult:
        r"""Enables single sign-on for a directory. Single sign-on allows users in your directory to access certain AWS services from a computer joined to the directory without having to enter their credentials separately.

        :param self:
        :param Password:  The password of an alternate account to use to enable single-sign on. This is only used for AD Connector directories. For more information, see the <i>UserName</i> parameter.<br/>UserName:  The username of an alternate account to use to enable single-sign on. This is only used for AD Connector directories. This account must have privileges to add a service principal name. If the AD Connector service account does not have privileges to add a service principal name, you can specify an alternate account with the <i>UserName</i> and <i>Password</i> parameters. These credentials are only used to enable single sign-on and are not stored by the service. The AD Connector service account is not changed.<br/>DirectoryId:  The identifier of the directory for which to enable single-sign on.<br/>
        :return:         """
        pass

    def get_directory_limits(self) -> GetDirectoryLimitsResult:
        r"""Obtains directory limit information for the current Region.

        :param self:
        :param 
        :return: DirectoryLimits:  A <a>DirectoryLimits</a> object that contains the directory limits for the current rRegion.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConnectedDirectoriesLimitReached</i> Indicates if the connected directory limit has been reached.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConnectedDirectoriesCurrentCount</i> The current number of connected directories in the Region.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConnectedDirectoriesLimit</i> The maximum number of connected directories allowed in the Region.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudOnlyMicrosoftADLimitReached</i> Indicates if the AWS Managed Microsoft AD directory limit has been reached.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudOnlyMicrosoftADCurrentCount</i> The current number of AWS Managed Microsoft AD directories in the region.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudOnlyMicrosoftADLimit</i> The maximum number of AWS Managed Microsoft AD directories allowed in the region.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudOnlyDirectoriesLimitReached</i> Indicates if the cloud directory limit has been reached.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudOnlyDirectoriesCurrentCount</i> The current number of cloud directories in the Region.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudOnlyDirectoriesLimit</i> The maximum number of cloud directories allowed in the Region.<br/>        """
        pass

    def get_snapshot_limits(self, DirectoryId: str) -> GetSnapshotLimitsResult:
        r"""Obtains the manual snapshot limits for a directory.

        :param self:
        :param DirectoryId:  Contains the identifier of the directory to obtain the limits for.<br/>
        :return: SnapshotLimits:  A <a>SnapshotLimits</a> object that contains the manual snapshot limits for the specified directory.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ManualSnapshotsLimitReached</i> Indicates if the manual snapshot limit has been reached.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ManualSnapshotsCurrentCount</i> The current number of manual snapshots of the directory.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ManualSnapshotsLimit</i> The maximum number of manual snapshots allowed.<br/>        """
        pass

    def list_certificates(self, DirectoryId: str, NextToken: str=None, Limit: int=None) -> ListCertificatesResult:
        r"""For the specified directory, lists all the certificates registered for a secure LDAP or client certificate authentication.

        :param self:
        :param Limit:  The number of items that should show up on one page<br/>NextToken:  A token for requesting another page of certificates if the <code>NextToken</code> response element indicates that more certificates are available. Use the value of the returned <code>NextToken</code> element in your request until the token comes back as <code>null</code>. Pass <code>null</code> if this is the first call.<br/>DirectoryId:  The identifier of the directory.<br/>
        :return: CertificatesInfo:  A list of certificates with basic details including certificate ID, certificate common name, certificate state.<br/>NextToken:  Indicates whether another page of certificates is available when the number of available certificates exceeds the page limit.<br/>        """
        pass

    def list_ip_routes(self, DirectoryId: str, NextToken: str=None, Limit: int=None) -> ListIpRoutesResult:
        r"""Lists the address blocks that you have added to a directory.

        :param self:
        :param Limit:  Maximum number of items to return. If this value is zero, the maximum number of items is specified by the limitations of the operation.<br/>NextToken:  The <i>ListIpRoutes.NextToken</i> value from a previous call to <a>ListIpRoutes</a>. Pass null if this is the first call.<br/>DirectoryId:  Identifier (ID) of the directory for which you want to retrieve the IP addresses.<br/>
        :return: NextToken:  If not null, more results are available. Pass this value for the <i>NextToken</i> parameter in a subsequent call to <a>ListIpRoutes</a> to retrieve the next set of items.<br/>IpRoutesInfo:  A list of <a>IpRoute</a>s.<br/>        """
        pass

    def list_log_subscriptions(self, DirectoryId: str=None, NextToken: str=None, Limit: int=None) -> ListLogSubscriptionsResult:
        r"""Lists the active log subscriptions for the AWS account.

        :param self:
        :param Limit:  The maximum number of items returned.<br/>NextToken:  The token for the next set of items to return.<br/>DirectoryId:  If a <i>DirectoryID</i> is provided, lists only the log subscription associated with that directory. If no <i>DirectoryId</i> is provided, lists all log subscriptions associated with your AWS account. If there are no log subscriptions for the AWS account or the directory, an empty list will be returned.<br/>
        :return: NextToken:  The token for the next set of items to return.<br/>LogSubscriptions:  A list of active <a>LogSubscription</a> objects for calling the AWS account.<br/>        """
        pass

    def list_schema_extensions(self, DirectoryId: str, NextToken: str=None, Limit: int=None) -> ListSchemaExtensionsResult:
        r"""Lists all schema extensions applied to a Microsoft AD Directory.

        :param self:
        :param Limit:  The maximum number of items to return.<br/>NextToken:  The <code>ListSchemaExtensions.NextToken</code> value from a previous call to <code>ListSchemaExtensions</code>. Pass null if this is the first call.<br/>DirectoryId:  The identifier of the directory from which to retrieve the schema extension information.<br/>
        :return: NextToken:  If not null, more results are available. Pass this value for the <code>NextToken</code> parameter in a subsequent call to <code>ListSchemaExtensions</code> to retrieve the next set of items.<br/>SchemaExtensionsInfo:  Information about the schema extensions applied to the directory.<br/>        """
        pass

    def list_tags_for_resource(self, ResourceId: str, NextToken: str=None, Limit: int=None) -> ListTagsForResourceResult:
        r"""Lists all tags on a directory.

        :param self:
        :param Limit:  Reserved for future use.<br/>NextToken:  Reserved for future use.<br/>ResourceId:  Identifier (ID) of the directory for which you want to retrieve tags.<br/>
        :return: NextToken:  Reserved for future use.<br/>Tags:  List of tags returned by the ListTagsForResource operation.<br/>        """
        pass

    def register_certificate(self, CertificateData: str, DirectoryId: str, Type: str=None, ClientCertAuthSettings: ClientCertAuthSettings=None) -> RegisterCertificateResult:
        r"""Registers a certificate for a secure LDAP or client certificate authentication.

        :param self:
        :param ClientCertAuthSettings:  A <code>ClientCertAuthSettings</code> object that contains client certificate authentication settings.:<br/>Type:  The function that the registered certificate performs. Valid values include <code>ClientLDAPS</code> or <code>ClientCertAuth</code>. The default value is <code>ClientLDAPS</code>.<br/>CertificateData:  The certificate PEM string that needs to be registered.<br/>DirectoryId:  The identifier of the directory.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OCSPUrl</i> Specifies the URL of the default OCSP server used to check for revocation status. A secondary value to any OCSP address found in the AIA extension of the user certificate.<br/>
        :return: CertificateId:  The identifier of the certificate.<br/>        """
        pass

    def register_event_topic(self, TopicName: str, DirectoryId: str) -> RegisterEventTopicResult:
        r"""Associates a directory with an SNS topic. This establishes the directory as a publisher to the specified SNS topic. You can then receive email or text (SMS) messages when the status of your directory changes. You get notified if your directory goes from an Active status to an Impaired or Inoperable status. You also receive a notification when the directory returns to an Active status.

        :param self:
        :param TopicName:  The SNS topic name to which the directory will publish status messages. This SNS topic must be in the same region as the specified Directory ID.<br/>DirectoryId:  The Directory ID that will publish status messages to the SNS topic.<br/>
        :return:         """
        pass

    def reject_shared_directory(self, SharedDirectoryId: str) -> RejectSharedDirectoryResult:
        r"""Rejects a directory sharing request that was sent from the directory owner account.

        :param self:
        :param SharedDirectoryId:  Identifier of the shared directory in the directory consumer account. This identifier is different for each directory owner account.<br/>
        :return: SharedDirectoryId:  Identifier of the shared directory in the directory consumer account.<br/>        """
        pass

    def remove_ip_routes(self, CidrIps: List[CidrIp], DirectoryId: str) -> RemoveIpRoutesResult:
        r"""Removes IP address blocks from a directory.

        :param self:
        :param CidrIps:  IP address blocks that you want to remove.<br/>DirectoryId:  Identifier (ID) of the directory from which you want to remove the IP addresses.<br/>
        :return:         """
        pass

    def remove_region(self, DirectoryId: str) -> RemoveRegionResult:
        r"""Stops all replication and removes the domain controllers from the specified Region. You cannot remove the primary Region with this operation. Instead, use the <code>DeleteDirectory</code> API.

        :param self:
        :param DirectoryId:  The identifier of the directory for which you want to remove Region replication.<br/>
        :return:         """
        pass

    def remove_tags_from_resource(self, TagKeys: List[TagKey], ResourceId: str) -> RemoveTagsFromResourceResult:
        r"""Removes tags from a directory.

        :param self:
        :param TagKeys:  The tag key (name) of the tag to be removed.<br/>ResourceId:  Identifier (ID) of the directory from which to remove the tag.<br/>
        :return:         """
        pass

    def reset_user_password(self, NewPassword: str, UserName: str, DirectoryId: str) -> ResetUserPasswordResult:
        r"""Resets the password for any user in your AWS Managed Microsoft AD or Simple AD directory. You can reset the password for any user in your directory with the following exceptions: <ul> <li> For Simple AD, you cannot reset the password for any user that is a member of either the <b>Domain Admins</b> or <b>Enterprise Admins</b> group except for the administrator user. </li> <li> For AWS Managed Microsoft AD, you can only reset the password for a user that is in an OU based off of the NetBIOS name that you typed when you created your directory. For example, you cannot reset the password for a user in the <b>AWS Reserved</b> OU. For more information about the OU structure for an AWS Managed Microsoft AD directory, see <a href="https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_getting_started_what_gets_created.html">What Gets Created</a> in the <i>AWS Directory Service Administration Guide</i>. </li> </ul>

        :param self:
        :param NewPassword:  The new password that will be reset.<br/>UserName:  The user name of the user whose password will be reset.<br/>DirectoryId:  Identifier of the AWS Managed Microsoft AD or Simple AD directory in which the user resides.<br/>
        :return:         """
        pass

    def restore_from_snapshot(self, SnapshotId: str) -> RestoreFromSnapshotResult:
        r"""Restores a directory using an existing directory snapshot. When you restore a directory from a snapshot, any changes made to the directory after the snapshot date are overwritten. This action returns as soon as the restore operation is initiated. You can monitor the progress of the restore operation by calling the <a>DescribeDirectories</a> operation with the directory identifier. When the <b>DirectoryDescription.Stage</b> value changes to <code>Active</code>, the restore operation is complete.

        :param self:
        :param SnapshotId:  The identifier of the snapshot to restore from.<br/>
        :return:         """
        pass

    def share_directory(self, ShareMethod: str, ShareTarget: ShareTarget, DirectoryId: str, ShareNotes: str=None) -> ShareDirectoryResult:
        r"""Shares a specified directory (<code>DirectoryId</code>) in your AWS account (directory owner) with another AWS account (directory consumer). With this operation you can use your directory from any AWS account and from any Amazon VPC within an AWS Region. When you share your AWS Managed Microsoft AD directory, AWS Directory Service creates a shared directory in the directory consumer account. This shared directory contains the metadata to provide access to the directory within the directory owner account. The shared directory is visible in all VPCs in the directory consumer account. The <code>ShareMethod</code> parameter determines whether the specified directory can be shared between AWS accounts inside the same AWS organization (<code>ORGANIZATIONS</code>). It also determines whether you can share the directory with any other AWS account either inside or outside of the organization (<code>HANDSHAKE</code>). The <code>ShareNotes</code> parameter is only used when <code>HANDSHAKE</code> is called, which sends a directory sharing request to the directory consumer. 

        :param self:
        :param ShareMethod:  The method used when sharing a directory to determine whether the directory should be shared within your AWS organization (<code>ORGANIZATIONS</code>) or with any AWS account by sending a directory sharing request (<code>HANDSHAKE</code>).<br/>ShareTarget:  Identifier for the directory consumer account with whom the directory is to be shared.:<br/>ShareNotes:  A directory share request that is sent by the directory owner to the directory consumer. The request includes a typed message to help the directory consumer administrator determine whether to approve or reject the share invitation.<br/>DirectoryId:  Identifier of the AWS Managed Microsoft AD directory that you want to share with other AWS accounts.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> Type of identifier to be used in the <code>Id</code> field.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> Identifier of the directory consumer account.<br/>
        :return: SharedDirectoryId:  Identifier of the directory that is stored in the directory consumer account that is shared from the specified directory (<code>DirectoryId</code>).<br/>        """
        pass

    def start_schema_extension(self, Description: str, LdifContent: str, CreateSnapshotBeforeSchemaExtension: CreateSnapshotBeforeSchemaExtension, DirectoryId: str) -> StartSchemaExtensionResult:
        r"""Applies a schema extension to a Microsoft AD directory.

        :param self:
        :param Description:  A description of the schema extension.<br/>LdifContent:  The LDIF file represented as a string. To construct the LdifContent string, precede each line as it would be formatted in an ldif file with \n. See the example request below for more details. The file size can be no larger than 1MB.<br/>CreateSnapshotBeforeSchemaExtension:  If true, creates a snapshot of the directory before applying the schema extension.<br/>DirectoryId:  The identifier of the directory for which the schema extension will be applied to.<br/>
        :return: SchemaExtensionId:  The identifier of the schema extension that will be applied.<br/>        """
        pass

    def unshare_directory(self, UnshareTarget: UnshareTarget, DirectoryId: str) -> UnshareDirectoryResult:
        r"""Stops the directory sharing between the directory owner and consumer accounts. 

        :param self:
        :param UnshareTarget:  Identifier for the directory consumer account with whom the directory has to be unshared.:<br/>DirectoryId:  The identifier of the AWS Managed Microsoft AD directory that you want to stop sharing.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> Type of identifier to be used in the <i>Id</i> field.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> Identifier of the directory consumer account.<br/>
        :return: SharedDirectoryId:  Identifier of the directory stored in the directory consumer account that is to be unshared from the specified directory (<code>DirectoryId</code>).<br/>        """
        pass

    def update_conditional_forwarder(self, DnsIpAddrs: List[IpAddr], RemoteDomainName: str, DirectoryId: str) -> UpdateConditionalForwarderResult:
        r"""Updates a conditional forwarder that has been set up for your AWS directory.

        :param self:
        :param DnsIpAddrs:  The updated IP addresses of the remote DNS server associated with the conditional forwarder.<br/>RemoteDomainName:  The fully qualified domain name (FQDN) of the remote domain with which you will set up a trust relationship.<br/>DirectoryId:  The directory ID of the AWS directory for which to update the conditional forwarder.<br/>
        :return:         """
        pass

    def update_number_of_domain_controllers(self, DesiredNumber: int, DirectoryId: str) -> UpdateNumberOfDomainControllersResult:
        r"""Adds or removes domain controllers to or from the directory. Based on the difference between current value and new value (provided through this API call), domain controllers will be added or removed. It may take up to 45 minutes for any new domain controllers to become fully active once the requested number of domain controllers is updated. During this time, you cannot make another update request.

        :param self:
        :param DesiredNumber:  The number of domain controllers desired in the directory.<br/>DirectoryId:  Identifier of the directory to which the domain controllers will be added or removed.<br/>
        :return:         """
        pass

    def update_radius(self, RadiusSettings: RadiusSettings, DirectoryId: str) -> UpdateRadiusResult:
        r"""Updates the Remote Authentication Dial In User Service (RADIUS) server information for an AD Connector or Microsoft AD directory.

        :param self:
        :param RadiusSettings:  A <a>RadiusSettings</a> object that contains information about the RADIUS server.:<br/>DirectoryId:  The identifier of the directory for which to update the RADIUS server information.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UseSameUsername</i> Not currently used.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DisplayLabel</i> Not currently used.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AuthenticationProtocol</i> The protocol specified for your RADIUS endpoints.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SharedSecret</i> Required for enabling RADIUS on the directory.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RadiusRetries</i> The maximum number of times that communication with the RADIUS server is attempted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RadiusTimeout</i> The amount of time, in seconds, to wait for the RADIUS server to respond.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RadiusPort</i> The port that your RADIUS server is using for communications. Your on-premises network must allow inbound traffic over this port from the AWS Directory Service servers.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RadiusServers</i> An array of strings that contains the fully qualified domain name (FQDN) or IP addresses of the RADIUS server endpoints, or the FQDN or IP addresses of your RADIUS server load balancer.<br/>
        :return:         """
        pass

    def update_trust(self, TrustId: str, SelectiveAuth: str=None) -> UpdateTrustResult:
        r"""Updates the trust that has been set up between your AWS Managed Microsoft AD directory and an on-premises Active Directory.

        :param self:
        :param SelectiveAuth:  Updates selective authentication for the trust.<br/>TrustId:  Identifier of the trust relationship.<br/>
        :return: TrustId:  Identifier of the trust relationship.<br/>RequestId:  The AWS request identifier.<br/>        """
        pass

    def verify_trust(self, TrustId: str) -> VerifyTrustResult:
        r"""AWS Directory Service for Microsoft Active Directory allows you to configure and verify trust relationships. This action verifies a trust relationship between your AWS Managed Microsoft AD directory and an external domain.

        :param self:
        :param TrustId:  The unique Trust ID of the trust relationship to verify.<br/>
        :return: TrustId:  The unique Trust ID of the trust relationship that was verified.<br/>        """
        pass





class DynamoDB(BaseClient):
    r"""<fullname>Amazon DynamoDB</fullname> Amazon DynamoDB is a fully managed NoSQL database service that provides fast and predictable performance with seamless scalability. DynamoDB lets you offload the administrative burdens of operating and scaling a distributed database, so that you don't have to worry about hardware provisioning, setup and configuration, replication, software patching, or cluster scaling. With DynamoDB, you can create database tables that can store and retrieve any amount of data, and serve any level of request traffic. You can scale up or scale down your tables' throughput capacity without downtime or performance degradation, and use the AWS Management Console to monitor resource utilization and performance metrics. DynamoDB automatically spreads the data and traffic for your tables over a sufficient number of servers to handle your throughput and storage requirements, while maintaining consistent and fast performance. All of your data is stored on solid state disks (SSDs) and automatically replicated across multiple Availability Zones in an AWS region, providing built-in high availability and data durability. """

    class TableExistsWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_table` for valid parameters"""
            pass
    class TableNotExistsWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_table` for valid parameters"""
            pass


    class ListBackupsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_backups` for valid parameters"""
            pass
    class ListTablesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_tables` for valid parameters"""
            pass
    class QueryPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `query` for valid parameters"""
            pass
    class ScanPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `scan` for valid parameters"""
            pass
    class ListTagsOfResourcePaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_tags_of_resource` for valid parameters"""
            pass


    class BatchExecuteStatementInput(Mapping):
        pass
    
    class BatchExecuteStatementOutput(Mapping):
        pass
    
    class BatchStatementRequest(Mapping):
        pass
    
    class BatchGetItemInput(Mapping):
        pass
    
    class BatchGetItemOutput(Mapping):
        pass
    
    class BatchGetRequestMap(object):
        pass
    
    class BatchWriteItemInput(Mapping):
        pass
    
    class BatchWriteItemOutput(Mapping):
        pass
    
    class BatchWriteItemRequestMap(object):
        pass
    
    class CreateBackupInput(Mapping):
        pass
    
    class CreateBackupOutput(Mapping):
        pass
    
    class CreateGlobalTableInput(Mapping):
        pass
    
    class CreateGlobalTableOutput(Mapping):
        pass
    
    class Replica(Mapping):
        pass
    
    class CreateTableInput(Mapping):
        pass
    
    class CreateTableOutput(Mapping):
        pass
    
    class AttributeDefinition(Mapping):
        pass
    
    class KeySchemaElement(Mapping):
        pass
    
    class LocalSecondaryIndex(Mapping):
        pass
    
    class GlobalSecondaryIndex(Mapping):
        pass
    
    class ProvisionedThroughput(Mapping):
        pass
    
    class StreamSpecification(Mapping):
        pass
    
    class SSESpecification(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class DeleteBackupInput(Mapping):
        pass
    
    class DeleteBackupOutput(Mapping):
        pass
    
    class DeleteItemInput(Mapping):
        pass
    
    class DeleteItemOutput(Mapping):
        pass
    
    class Key(object):
        pass
    
    class ExpectedAttributeMap(object):
        pass
    
    class ExpressionAttributeNameMap(object):
        pass
    
    class ExpressionAttributeValueMap(object):
        pass
    
    class DeleteTableInput(Mapping):
        pass
    
    class DeleteTableOutput(Mapping):
        pass
    
    class DescribeBackupInput(Mapping):
        pass
    
    class DescribeBackupOutput(Mapping):
        pass
    
    class DescribeContinuousBackupsInput(Mapping):
        pass
    
    class DescribeContinuousBackupsOutput(Mapping):
        pass
    
    class DescribeContributorInsightsInput(Mapping):
        pass
    
    class DescribeContributorInsightsOutput(Mapping):
        pass
    
    class DescribeEndpointsRequest(Mapping):
        pass
    
    class DescribeEndpointsResponse(Mapping):
        pass
    
    class DescribeExportInput(Mapping):
        pass
    
    class DescribeExportOutput(Mapping):
        pass
    
    class DescribeGlobalTableInput(Mapping):
        pass
    
    class DescribeGlobalTableOutput(Mapping):
        pass
    
    class DescribeGlobalTableSettingsInput(Mapping):
        pass
    
    class DescribeGlobalTableSettingsOutput(Mapping):
        pass
    
    class DescribeKinesisStreamingDestinationInput(Mapping):
        pass
    
    class DescribeKinesisStreamingDestinationOutput(Mapping):
        pass
    
    class DescribeLimitsInput(Mapping):
        pass
    
    class DescribeLimitsOutput(Mapping):
        pass
    
    class DescribeTableInput(Mapping):
        pass
    
    class DescribeTableOutput(Mapping):
        pass
    
    class DescribeTableReplicaAutoScalingInput(Mapping):
        pass
    
    class DescribeTableReplicaAutoScalingOutput(Mapping):
        pass
    
    class DescribeTimeToLiveInput(Mapping):
        pass
    
    class DescribeTimeToLiveOutput(Mapping):
        pass
    
    class KinesisStreamingDestinationInput(Mapping):
        pass
    
    class KinesisStreamingDestinationOutput(Mapping):
        pass
    
    class ExecuteStatementInput(Mapping):
        pass
    
    class ExecuteStatementOutput(Mapping):
        pass
    
    class AttributeValue(Mapping):
        pass
    
    class ConsistentRead(object):
        pass
    
    class ExecuteTransactionInput(Mapping):
        pass
    
    class ExecuteTransactionOutput(Mapping):
        pass
    
    class ParameterizedStatement(Mapping):
        pass
    
    class ExportTableToPointInTimeInput(Mapping):
        pass
    
    class ExportTableToPointInTimeOutput(Mapping):
        pass
    
    class ExportTime(object):
        pass
    
    class GetItemInput(Mapping):
        pass
    
    class GetItemOutput(Mapping):
        pass
    
    class AttributeName(object):
        pass
    
    class ListBackupsInput(Mapping):
        pass
    
    class ListBackupsOutput(Mapping):
        pass
    
    class TimeRangeLowerBound(object):
        pass
    
    class TimeRangeUpperBound(object):
        pass
    
    class ListContributorInsightsInput(Mapping):
        pass
    
    class ListContributorInsightsOutput(Mapping):
        pass
    
    class ListExportsInput(Mapping):
        pass
    
    class ListExportsOutput(Mapping):
        pass
    
    class ListGlobalTablesInput(Mapping):
        pass
    
    class ListGlobalTablesOutput(Mapping):
        pass
    
    class ListTablesInput(Mapping):
        pass
    
    class ListTablesOutput(Mapping):
        pass
    
    class ListTagsOfResourceInput(Mapping):
        pass
    
    class ListTagsOfResourceOutput(Mapping):
        pass
    
    class PutItemInput(Mapping):
        pass
    
    class PutItemOutput(Mapping):
        pass
    
    class PutItemInputAttributeMap(object):
        pass
    
    class QueryInput(Mapping):
        pass
    
    class QueryOutput(Mapping):
        pass
    
    class KeyConditions(object):
        pass
    
    class FilterConditionMap(object):
        pass
    
    class BooleanObject(object):
        pass
    
    class RestoreTableFromBackupInput(Mapping):
        pass
    
    class RestoreTableFromBackupOutput(Mapping):
        pass
    
    class RestoreTableToPointInTimeInput(Mapping):
        pass
    
    class RestoreTableToPointInTimeOutput(Mapping):
        pass
    
    class Date(object):
        pass
    
    class ScanInput(Mapping):
        pass
    
    class ScanOutput(Mapping):
        pass
    
    class TagResourceInput(Mapping):
        pass
    
    class TransactGetItemsInput(Mapping):
        pass
    
    class TransactGetItemsOutput(Mapping):
        pass
    
    class TransactGetItem(Mapping):
        pass
    
    class TransactWriteItemsInput(Mapping):
        pass
    
    class TransactWriteItemsOutput(Mapping):
        pass
    
    class TransactWriteItem(Mapping):
        pass
    
    class UntagResourceInput(Mapping):
        pass
    
    class TagKeyString(object):
        pass
    
    class UpdateContinuousBackupsInput(Mapping):
        pass
    
    class UpdateContinuousBackupsOutput(Mapping):
        pass
    
    class PointInTimeRecoverySpecification(Mapping):
        pass
    
    class UpdateContributorInsightsInput(Mapping):
        pass
    
    class UpdateContributorInsightsOutput(Mapping):
        pass
    
    class UpdateGlobalTableInput(Mapping):
        pass
    
    class UpdateGlobalTableOutput(Mapping):
        pass
    
    class ReplicaUpdate(Mapping):
        pass
    
    class UpdateGlobalTableSettingsInput(Mapping):
        pass
    
    class UpdateGlobalTableSettingsOutput(Mapping):
        pass
    
    class PositiveLongObject(object):
        pass
    
    class AutoScalingSettingsUpdate(Mapping):
        pass
    
    class GlobalTableGlobalSecondaryIndexSettingsUpdate(Mapping):
        pass
    
    class ReplicaSettingsUpdate(Mapping):
        pass
    
    class UpdateItemInput(Mapping):
        pass
    
    class UpdateItemOutput(Mapping):
        pass
    
    class AttributeUpdates(object):
        pass
    
    class UpdateTableInput(Mapping):
        pass
    
    class UpdateTableOutput(Mapping):
        pass
    
    class GlobalSecondaryIndexUpdate(Mapping):
        pass
    
    class ReplicationGroupUpdate(Mapping):
        pass
    
    class UpdateTableReplicaAutoScalingInput(Mapping):
        pass
    
    class UpdateTableReplicaAutoScalingOutput(Mapping):
        pass
    
    class GlobalSecondaryIndexAutoScalingUpdate(Mapping):
        pass
    
    class ReplicaAutoScalingUpdate(Mapping):
        pass
    
    class UpdateTimeToLiveInput(Mapping):
        pass
    
    class UpdateTimeToLiveOutput(Mapping):
        pass
    
    class TimeToLiveSpecification(Mapping):
        pass
    
    def batch_execute_statement(self, Statements: List[BatchStatementRequest]) -> BatchExecuteStatementOutput:
        r""" This operation allows you to perform batch reads and writes on data stored in DynamoDB, using PartiQL. 

        :param self:
        :param Statements:   The list of PartiQL statements representing the batch to run. <br/>
        :return: Responses:   The response to each PartiQL statement in the batch. <br/>        """
        pass

    def batch_get_item(self, RequestItems: BatchGetRequestMap, ReturnConsumedCapacity: str=None) -> BatchGetItemOutput:
        r"""The <code>BatchGetItem</code> operation returns the attributes of one or more items from one or more tables. You identify requested items by primary key. A single operation can retrieve up to 16 MB of data, which can contain as many as 100 items. <code>BatchGetItem</code> returns a partial result if the response size limit is exceeded, the table's provisioned throughput is exceeded, or an internal processing failure occurs. If a partial result is returned, the operation returns a value for <code>UnprocessedKeys</code>. You can use this value to retry the operation starting with the next item to get. <important> If you request more than 100 items, <code>BatchGetItem</code> returns a <code>ValidationException</code> with the message "Too many items requested for the BatchGetItem call." </important> For example, if you ask to retrieve 100 items, but each individual item is 300 KB in size, the system returns 52 items (so as not to exceed the 16 MB limit). It also returns an appropriate <code>UnprocessedKeys</code> value so you can get the next page of results. If desired, your application can include its own logic to assemble the pages of results into one dataset. If <i>none</i> of the items can be processed due to insufficient provisioned throughput on all of the tables in the request, then <code>BatchGetItem</code> returns a <code>ProvisionedThroughputExceededException</code>. If <i>at least one</i> of the items is successfully processed, then <code>BatchGetItem</code> completes successfully, while returning the keys of the unread items in <code>UnprocessedKeys</code>. <important> If DynamoDB returns any unprocessed items, you should retry the batch operation on those items. However, <i>we strongly recommend that you use an exponential backoff algorithm</i>. If you retry the batch operation immediately, the underlying read or write requests can still fail due to throttling on the individual tables. If you delay the batch operation using exponential backoff, the individual requests in the batch are much more likely to succeed. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ErrorHandling.html#BatchOperations">Batch Operations and Error Handling</a> in the <i>Amazon DynamoDB Developer Guide</i>. </important> By default, <code>BatchGetItem</code> performs eventually consistent reads on every table in the request. If you want strongly consistent reads instead, you can set <code>ConsistentRead</code> to <code>true</code> for any or all tables. In order to minimize response latency, <code>BatchGetItem</code> retrieves items in parallel. When designing your application, keep in mind that DynamoDB does not return items in any particular order. To help parse the response by item, include the primary key values for the items in your request in the <code>ProjectionExpression</code> parameter. If a requested item does not exist, it is not returned in the result. Requests for nonexistent items consume the minimum read capacity units according to the type of read. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithTables.html#CapacityUnitCalculations">Working with Tables</a> in the <i>Amazon DynamoDB Developer Guide</i>.

        :param self:
        :param ReturnConsumedCapacity:  Determines the level of detail about provisioned throughput consumption that is returned in the response: <ul> <li>  <code>INDEXES</code> - The response includes the aggregate <code>ConsumedCapacity</code> for the operation, together with <code>ConsumedCapacity</code> for each table and secondary index that was accessed. Note that some operations, such as <code>GetItem</code> and <code>BatchGetItem</code>, do not access any indexes at all. In these cases, specifying <code>INDEXES</code> will only return <code>ConsumedCapacity</code> information for table(s). </li> <li>  <code>TOTAL</code> - The response includes only the aggregate <code>ConsumedCapacity</code> for the operation. </li> <li>  <code>NONE</code> - No <code>ConsumedCapacity</code> details are included in the response. </li> </ul><br/>RequestItems:  A map of one or more table names and, for each table, a map that describes one or more items to retrieve from that table. Each table name can be used only once per <code>BatchGetItem</code> request. Each element in the map of items to retrieve consists of the following: <ul> <li>  <code>ConsistentRead</code> - If <code>true</code>, a strongly consistent read is used; if <code>false</code> (the default), an eventually consistent read is used. </li> <li>  <code>ExpressionAttributeNames</code> - One or more substitution tokens for attribute names in the <code>ProjectionExpression</code> parameter. The following are some use cases for using <code>ExpressionAttributeNames</code>: <ul> <li> To access an attribute whose name conflicts with a DynamoDB reserved word. </li> <li> To create a placeholder for repeating occurrences of an attribute name in an expression. </li> <li> To prevent special characters in an attribute name from being misinterpreted in an expression. </li> </ul> Use the <b>#</b> character in an expression to dereference an attribute name. For example, consider the following attribute name: <ul> <li>  <code>Percentile</code>  </li> </ul> The name of this attribute conflicts with a reserved word, so it cannot be used directly in an expression. (For the complete list of reserved words, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ReservedWords.html">Reserved Words</a> in the <i>Amazon DynamoDB Developer Guide</i>). To work around this, you could specify the following for <code>ExpressionAttributeNames</code>: <ul> <li>  <code>{"#P":"Percentile"}</code>  </li> </ul> You could then use this substitution in an expression, as in this example: <ul> <li>  <code>#P = :val</code>  </li> </ul> <note> Tokens that begin with the <b>:</b> character are <i>expression attribute values</i>, which are placeholders for the actual value at runtime. </note> For more information about expression attribute names, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.AccessingItemAttributes.html">Accessing Item Attributes</a> in the <i>Amazon DynamoDB Developer Guide</i>. </li> <li>  <code>Keys</code> - An array of primary key attribute values that define specific items in the table. For each primary key, you must provide <i>all</i> of the key attributes. For example, with a simple primary key, you only need to provide the partition key value. For a composite key, you must provide <i>both</i> the partition key value and the sort key value. </li> <li>  <code>ProjectionExpression</code> - A string that identifies one or more attributes to retrieve from the table. These attributes can include scalars, sets, or elements of a JSON document. The attributes in the expression must be separated by commas. If no attribute names are specified, then all attributes are returned. If any of the requested attributes are not found, they do not appear in the result. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.AccessingItemAttributes.html">Accessing Item Attributes</a> in the <i>Amazon DynamoDB Developer Guide</i>. </li> <li>  <code>AttributesToGet</code> - This is a legacy parameter. Use <code>ProjectionExpression</code> instead. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.AttributesToGet.html">AttributesToGet</a> in the <i>Amazon DynamoDB Developer Guide</i>.  </li> </ul><br/>
        :return: ConsumedCapacity:  The read capacity units consumed by the entire <code>BatchGetItem</code> operation. Each element consists of: <ul> <li>  <code>TableName</code> - The table that consumed the provisioned throughput. </li> <li>  <code>CapacityUnits</code> - The total number of capacity units consumed. </li> </ul><br/>UnprocessedKeys:  A map of tables and their respective keys that were not processed with the current response. The <code>UnprocessedKeys</code> value is in the same form as <code>RequestItems</code>, so the value can be provided directly to a subsequent <code>BatchGetItem</code> operation. For more information, see <code>RequestItems</code> in the Request Parameters section. Each element consists of: <ul> <li>  <code>Keys</code> - An array of primary key attribute values that define specific items in the table. </li> <li>  <code>ProjectionExpression</code> - One or more attributes to be retrieved from the table or index. By default, all attributes are returned. If a requested attribute is not found, it does not appear in the result. </li> <li>  <code>ConsistentRead</code> - The consistency of a read operation. If set to <code>true</code>, then a strongly consistent read is used; otherwise, an eventually consistent read is used. </li> </ul> If there are no unprocessed keys remaining, the response contains an empty <code>UnprocessedKeys</code> map.<br/>Responses:  A map of table name to a list of items. Each object in <code>Responses</code> consists of a table name, along with a map of attribute data consisting of the data type and attribute value.<br/>        """
        pass

    def batch_write_item(self, RequestItems: BatchWriteItemRequestMap, ReturnConsumedCapacity: str=None, ReturnItemCollectionMetrics: str=None) -> BatchWriteItemOutput:
        r"""The <code>BatchWriteItem</code> operation puts or deletes multiple items in one or more tables. A single call to <code>BatchWriteItem</code> can write up to 16 MB of data, which can comprise as many as 25 put or delete requests. Individual items to be written can be as large as 400 KB. <note>  <code>BatchWriteItem</code> cannot update items. To update items, use the <code>UpdateItem</code> action. </note> The individual <code>PutItem</code> and <code>DeleteItem</code> operations specified in <code>BatchWriteItem</code> are atomic; however <code>BatchWriteItem</code> as a whole is not. If any requested operations fail because the table's provisioned throughput is exceeded or an internal processing failure occurs, the failed operations are returned in the <code>UnprocessedItems</code> response parameter. You can investigate and optionally resend the requests. Typically, you would call <code>BatchWriteItem</code> in a loop. Each iteration would check for unprocessed items and submit a new <code>BatchWriteItem</code> request with those unprocessed items until all items have been processed. If <i>none</i> of the items can be processed due to insufficient provisioned throughput on all of the tables in the request, then <code>BatchWriteItem</code> returns a <code>ProvisionedThroughputExceededException</code>. <important> If DynamoDB returns any unprocessed items, you should retry the batch operation on those items. However, <i>we strongly recommend that you use an exponential backoff algorithm</i>. If you retry the batch operation immediately, the underlying read or write requests can still fail due to throttling on the individual tables. If you delay the batch operation using exponential backoff, the individual requests in the batch are much more likely to succeed. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ErrorHandling.html#Programming.Errors.BatchOperations">Batch Operations and Error Handling</a> in the <i>Amazon DynamoDB Developer Guide</i>. </important> With <code>BatchWriteItem</code>, you can efficiently write or delete large amounts of data, such as from Amazon EMR, or copy data from another database into DynamoDB. In order to improve performance with these large-scale operations, <code>BatchWriteItem</code> does not behave in the same way as individual <code>PutItem</code> and <code>DeleteItem</code> calls would. For example, you cannot specify conditions on individual put and delete requests, and <code>BatchWriteItem</code> does not return deleted items in the response. If you use a programming language that supports concurrency, you can use threads to write items in parallel. Your application must include the necessary logic to manage the threads. With languages that don't support threading, you must update or delete the specified items one at a time. In both situations, <code>BatchWriteItem</code> performs the specified put and delete operations in parallel, giving you the power of the thread pool approach without having to introduce complexity into your application. Parallel processing reduces latency, but each specified put and delete request consumes the same number of write capacity units whether it is processed in parallel or not. Delete operations on nonexistent items consume one write capacity unit. If one or more of the following is true, DynamoDB rejects the entire batch write operation: <ul> <li> One or more tables specified in the <code>BatchWriteItem</code> request does not exist. </li> <li> Primary key attributes specified on an item in the request do not match those in the corresponding table's primary key schema. </li> <li> You try to perform multiple operations on the same item in the same <code>BatchWriteItem</code> request. For example, you cannot put and delete the same item in the same <code>BatchWriteItem</code> request.  </li> <li>  Your request contains at least two items with identical hash and range keys (which essentially is two put operations).  </li> <li> There are more than 25 requests in the batch. </li> <li> Any individual item in a batch exceeds 400 KB. </li> <li> The total request size exceeds 16 MB. </li> </ul>

        :param self:
        :param ReturnItemCollectionMetrics:  Determines whether item collection metrics are returned. If set to <code>SIZE</code>, the response includes statistics about item collections, if any, that were modified during the operation are returned in the response. If set to <code>NONE</code> (the default), no statistics are returned.<br/>ReturnConsumedCapacity:  Determines the level of detail about provisioned throughput consumption that is returned in the response: <ul> <li>  <code>INDEXES</code> - The response includes the aggregate <code>ConsumedCapacity</code> for the operation, together with <code>ConsumedCapacity</code> for each table and secondary index that was accessed. Note that some operations, such as <code>GetItem</code> and <code>BatchGetItem</code>, do not access any indexes at all. In these cases, specifying <code>INDEXES</code> will only return <code>ConsumedCapacity</code> information for table(s). </li> <li>  <code>TOTAL</code> - The response includes only the aggregate <code>ConsumedCapacity</code> for the operation. </li> <li>  <code>NONE</code> - No <code>ConsumedCapacity</code> details are included in the response. </li> </ul><br/>RequestItems:  A map of one or more table names and, for each table, a list of operations to be performed (<code>DeleteRequest</code> or <code>PutRequest</code>). Each element in the map consists of the following: <ul> <li>  <code>DeleteRequest</code> - Perform a <code>DeleteItem</code> operation on the specified item. The item to be deleted is identified by a <code>Key</code> subelement: <ul> <li>  <code>Key</code> - A map of primary key attribute values that uniquely identify the item. Each entry in this map consists of an attribute name and an attribute value. For each primary key, you must provide <i>all</i> of the key attributes. For example, with a simple primary key, you only need to provide a value for the partition key. For a composite primary key, you must provide values for <i>both</i> the partition key and the sort key. </li> </ul> </li> <li>  <code>PutRequest</code> - Perform a <code>PutItem</code> operation on the specified item. The item to be put is identified by an <code>Item</code> subelement: <ul> <li>  <code>Item</code> - A map of attributes and their values. Each entry in this map consists of an attribute name and an attribute value. Attribute values must not be null; string and binary type attributes must have lengths greater than zero; and set type attributes must not be empty. Requests that contain empty values are rejected with a <code>ValidationException</code> exception. If you specify any attributes that are part of an index key, then the data types for those attributes must match those of the schema in the table's attribute definition. </li> </ul> </li> </ul><br/>
        :return: ConsumedCapacity:  The capacity units consumed by the entire <code>BatchWriteItem</code> operation. Each element consists of: <ul> <li>  <code>TableName</code> - The table that consumed the provisioned throughput. </li> <li>  <code>CapacityUnits</code> - The total number of capacity units consumed. </li> </ul><br/>ItemCollectionMetrics:  A list of tables that were processed by <code>BatchWriteItem</code> and, for each table, information about any item collections that were affected by individual <code>DeleteItem</code> or <code>PutItem</code> operations. Each entry consists of the following subelements: <ul> <li>  <code>ItemCollectionKey</code> - The partition key value of the item collection. This is the same as the partition key value of the item. </li> <li>  <code>SizeEstimateRangeGB</code> - An estimate of item collection size, expressed in GB. This is a two-element array containing a lower bound and an upper bound for the estimate. The estimate includes the size of all the items in the table, plus the size of all attributes projected into all of the local secondary indexes on the table. Use this estimate to measure whether a local secondary index is approaching its size limit. The estimate is subject to change over time; therefore, do not rely on the precision or accuracy of the estimate. </li> </ul><br/>UnprocessedItems:  A map of tables and requests against those tables that were not processed. The <code>UnprocessedItems</code> value is in the same form as <code>RequestItems</code>, so you can provide this value directly to a subsequent <code>BatchGetItem</code> operation. For more information, see <code>RequestItems</code> in the Request Parameters section. Each <code>UnprocessedItems</code> entry consists of a table name and, for that table, a list of operations to perform (<code>DeleteRequest</code> or <code>PutRequest</code>). <ul> <li>  <code>DeleteRequest</code> - Perform a <code>DeleteItem</code> operation on the specified item. The item to be deleted is identified by a <code>Key</code> subelement: <ul> <li>  <code>Key</code> - A map of primary key attribute values that uniquely identify the item. Each entry in this map consists of an attribute name and an attribute value. </li> </ul> </li> <li>  <code>PutRequest</code> - Perform a <code>PutItem</code> operation on the specified item. The item to be put is identified by an <code>Item</code> subelement: <ul> <li>  <code>Item</code> - A map of attributes and their values. Each entry in this map consists of an attribute name and an attribute value. Attribute values must not be null; string and binary type attributes must have lengths greater than zero; and set type attributes must not be empty. Requests that contain empty values will be rejected with a <code>ValidationException</code> exception. If you specify any attributes that are part of an index key, then the data types for those attributes must match those of the schema in the table's attribute definition. </li> </ul> </li> </ul> If there are no unprocessed items remaining, the response contains an empty <code>UnprocessedItems</code> map.<br/>        """
        pass

    def create_backup(self, BackupName: str, TableName: str) -> CreateBackupOutput:
        r"""Creates a backup for an existing table.  Each time you create an on-demand backup, the entire table data is backed up. There is no limit to the number of on-demand backups that can be taken.   When you create an on-demand backup, a time marker of the request is cataloged, and the backup is created asynchronously, by applying all changes until the time of the request to the last full table snapshot. Backup requests are processed instantaneously and become available for restore within minutes.  You can call <code>CreateBackup</code> at a maximum rate of 50 times per second. All backups in DynamoDB work without consuming any provisioned throughput on the table.  If you submit a backup request on 2018-12-14 at 14:25:00, the backup is guaranteed to contain all data committed to the table up to 14:24:00, and data committed after 14:26:00 will not be. The backup might contain data modifications made between 14:24:00 and 14:26:00. On-demand backup does not support causal consistency.   Along with data, the following are also included on the backups:  <ul> <li> Global secondary indexes (GSIs) </li> <li> Local secondary indexes (LSIs) </li> <li> Streams </li> <li> Provisioned read and write capacity </li> </ul>

        :param self:
        :param BackupName:  Specified name for the backup.<br/>TableName:  The name of the table.<br/>
        :return: BackupDetails:  Contains the details of the backup created for the table.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupExpiryDateTime</i> Time at which the automatic on-demand backup created by DynamoDB will expire. This <code>SYSTEM</code> on-demand backup expires automatically 35 days after its creation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupCreationDateTime</i> Time at which the backup was created. This is the request time of the backup. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupType</i> BackupType: <ul> <li>  <code>USER</code> - You create and manage these using the on-demand backup feature. </li> <li>  <code>SYSTEM</code> - If you delete a table with point-in-time recovery enabled, a <code>SYSTEM</code> backup is automatically created and is retained for 35 days (at no additional cost). System backups allow you to restore the deleted table to the state it was in just before the point of deletion.  </li> <li>  <code>AWS_BACKUP</code> - On-demand backup created by you from AWS Backup service. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupStatus</i> Backup can be in one of the following states: CREATING, ACTIVE, DELETED. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupSizeBytes</i> Size of the backup in bytes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupName</i> Name of the requested backup.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupArn</i> ARN associated with the backup.<br/>        """
        pass

    def create_global_table(self, ReplicationGroup: List[Replica], GlobalTableName: str) -> CreateGlobalTableOutput:
        r"""Creates a global table from an existing table. A global table creates a replication relationship between two or more DynamoDB tables with the same table name in the provided Regions.  <note> This operation only applies to <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/globaltables.V1.html">Version 2017.11.29</a> of global tables. </note> If you want to add a new replica table to a global table, each of the following conditions must be true: <ul> <li> The table must have the same primary key as all of the other replicas. </li> <li> The table must have the same name as all of the other replicas. </li> <li> The table must have DynamoDB Streams enabled, with the stream containing both the new and the old images of the item. </li> <li> None of the replica tables in the global table can contain any data. </li> </ul>  If global secondary indexes are specified, then the following conditions must also be met:  <ul> <li>  The global secondary indexes must have the same name.  </li> <li>  The global secondary indexes must have the same hash key and sort key (if present).  </li> </ul>  If local secondary indexes are specified, then the following conditions must also be met:  <ul> <li>  The local secondary indexes must have the same name.  </li> <li>  The local secondary indexes must have the same hash key and sort key (if present).  </li> </ul> <important>  Write capacity settings should be set consistently across your replica tables and secondary indexes. DynamoDB strongly recommends enabling auto scaling to manage the write capacity settings for all of your global tables replicas and indexes.   If you prefer to manage write capacity settings manually, you should provision equal replicated write capacity units to your replica tables. You should also provision equal replicated write capacity units to matching secondary indexes across your global table.  </important>

        :param self:
        :param ReplicationGroup:  The Regions where the global table needs to be created.<br/>GlobalTableName:  The global table name.<br/>
        :return: GlobalTableDescription:  Contains the details of the global table.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalTableName</i> The global table name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalTableStatus</i> The current state of the global table: <ul> <li>  <code>CREATING</code> - The global table is being created. </li> <li>  <code>UPDATING</code> - The global table is being updated. </li> <li>  <code>DELETING</code> - The global table is being deleted. </li> <li>  <code>ACTIVE</code> - The global table is ready for use. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDateTime</i> The creation time of the global table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalTableArn</i> The unique identifier of the global table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationGroup</i> The Regions where the global table has replicas.<br/>        """
        pass

    def create_table(self, KeySchema: List[KeySchemaElement], TableName: str, AttributeDefinitions: List[AttributeDefinition], LocalSecondaryIndexes: List[LocalSecondaryIndex]=None, GlobalSecondaryIndexes: List[GlobalSecondaryIndex]=None, BillingMode: str=None, ProvisionedThroughput: ProvisionedThroughput=None, StreamSpecification: StreamSpecification=None, SSESpecification: SSESpecification=None, Tags: List[Tag]=None) -> CreateTableOutput:
        r"""The <code>CreateTable</code> operation adds a new table to your account. In an AWS account, table names must be unique within each Region. That is, you can have two tables with same name if you create the tables in different Regions.  <code>CreateTable</code> is an asynchronous operation. Upon receiving a <code>CreateTable</code> request, DynamoDB immediately returns a response with a <code>TableStatus</code> of <code>CREATING</code>. After the table is created, DynamoDB sets the <code>TableStatus</code> to <code>ACTIVE</code>. You can perform read and write operations only on an <code>ACTIVE</code> table.  You can optionally define secondary indexes on the new table, as part of the <code>CreateTable</code> operation. If you want to create multiple tables with secondary indexes on them, you must create the tables sequentially. Only one table with secondary indexes can be in the <code>CREATING</code> state at any given time. You can use the <code>DescribeTable</code> action to check the table status.

        :param self:
        :param Tags:  A list of key-value pairs to label the table. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Tagging.html">Tagging for DynamoDB</a>.<br/>SSESpecification:  Represents the settings used to enable server-side encryption.:<br/>StreamSpecification:  The settings for DynamoDB Streams on the table. These settings consist of: <ul> <li>  <code>StreamEnabled</code> - Indicates whether DynamoDB Streams is to be enabled (true) or disabled (false). </li> <li>  <code>StreamViewType</code> - When an item in the table is modified, <code>StreamViewType</code> determines what information is written to the table's stream. Valid values for <code>StreamViewType</code> are: <ul> <li>  <code>KEYS_ONLY</code> - Only the key attributes of the modified item are written to the stream. </li> <li>  <code>NEW_IMAGE</code> - The entire item, as it appears after it was modified, is written to the stream. </li> <li>  <code>OLD_IMAGE</code> - The entire item, as it appeared before it was modified, is written to the stream. </li> <li>  <code>NEW_AND_OLD_IMAGES</code> - Both the new and the old item images of the item are written to the stream. </li> </ul> </li> </ul>:<br/>ProvisionedThroughput:  Represents the provisioned throughput settings for a specified table or index. The settings can be modified using the <code>UpdateTable</code> operation.  If you set BillingMode as <code>PROVISIONED</code>, you must specify this property. If you set BillingMode as <code>PAY_PER_REQUEST</code>, you cannot specify this property. For current minimum and maximum provisioned throughput values, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html">Service, Account, and Table Quotas</a> in the <i>Amazon DynamoDB Developer Guide</i>.:<br/>BillingMode:  Controls how you are charged for read and write throughput and how you manage capacity. This setting can be changed later. <ul> <li>  <code>PROVISIONED</code> - We recommend using <code>PROVISIONED</code> for predictable workloads. <code>PROVISIONED</code> sets the billing mode to <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.ProvisionedThroughput.Manual">Provisioned Mode</a>. </li> <li>  <code>PAY_PER_REQUEST</code> - We recommend using <code>PAY_PER_REQUEST</code> for unpredictable workloads. <code>PAY_PER_REQUEST</code> sets the billing mode to <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.OnDemand">On-Demand Mode</a>.  </li> </ul><br/>GlobalSecondaryIndexes:  One or more global secondary indexes (the maximum is 20) to be created on the table. Each global secondary index in the array includes the following: <ul> <li>  <code>IndexName</code> - The name of the global secondary index. Must be unique only for this table. <p/> </li> <li>  <code>KeySchema</code> - Specifies the key schema for the global secondary index. </li> <li>  <code>Projection</code> - Specifies attributes that are copied (projected) from the table into the index. These are in addition to the primary key attributes and index key attributes, which are automatically projected. Each attribute specification is composed of: <ul> <li>  <code>ProjectionType</code> - One of the following: <ul> <li>  <code>KEYS_ONLY</code> - Only the index and primary keys are projected into the index. </li> <li>  <code>INCLUDE</code> - Only the specified table attributes are projected into the index. The list of projected attributes is in <code>NonKeyAttributes</code>. </li> <li>  <code>ALL</code> - All of the table attributes are projected into the index. </li> </ul> </li> <li>  <code>NonKeyAttributes</code> - A list of one or more non-key attribute names that are projected into the secondary index. The total count of attributes provided in <code>NonKeyAttributes</code>, summed across all of the secondary indexes, must not exceed 100. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total. </li> </ul> </li> <li>  <code>ProvisionedThroughput</code> - The provisioned throughput settings for the global secondary index, consisting of read and write capacity units. </li> </ul><br/>LocalSecondaryIndexes:  One or more local secondary indexes (the maximum is 5) to be created on the table. Each index is scoped to a given partition key value. There is a 10 GB size limit per partition key value; otherwise, the size of a local secondary index is unconstrained. Each local secondary index in the array includes the following: <ul> <li>  <code>IndexName</code> - The name of the local secondary index. Must be unique only for this table. <p/> </li> <li>  <code>KeySchema</code> - Specifies the key schema for the local secondary index. The key schema must begin with the same partition key as the table. </li> <li>  <code>Projection</code> - Specifies attributes that are copied (projected) from the table into the index. These are in addition to the primary key attributes and index key attributes, which are automatically projected. Each attribute specification is composed of: <ul> <li>  <code>ProjectionType</code> - One of the following: <ul> <li>  <code>KEYS_ONLY</code> - Only the index and primary keys are projected into the index. </li> <li>  <code>INCLUDE</code> - Only the specified table attributes are projected into the index. The list of projected attributes is in <code>NonKeyAttributes</code>. </li> <li>  <code>ALL</code> - All of the table attributes are projected into the index. </li> </ul> </li> <li>  <code>NonKeyAttributes</code> - A list of one or more non-key attribute names that are projected into the secondary index. The total count of attributes provided in <code>NonKeyAttributes</code>, summed across all of the secondary indexes, must not exceed 100. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total. </li> </ul> </li> </ul><br/>KeySchema:  Specifies the attributes that make up the primary key for a table or an index. The attributes in <code>KeySchema</code> must also be defined in the <code>AttributeDefinitions</code> array. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataModel.html">Data Model</a> in the <i>Amazon DynamoDB Developer Guide</i>. Each <code>KeySchemaElement</code> in the array is composed of: <ul> <li>  <code>AttributeName</code> - The name of this key attribute. </li> <li>  <code>KeyType</code> - The role that the key attribute will assume: <ul> <li>  <code>HASH</code> - partition key </li> <li>  <code>RANGE</code> - sort key </li> </ul> </li> </ul> <note> The partition key of an item is also known as its <i>hash attribute</i>. The term "hash attribute" derives from the DynamoDB usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values. The sort key of an item is also known as its <i>range attribute</i>. The term "range attribute" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value. </note> For a simple primary key (partition key), you must provide exactly one element with a <code>KeyType</code> of <code>HASH</code>. For a composite primary key (partition key and sort key), you must provide exactly two elements, in this order: The first element must have a <code>KeyType</code> of <code>HASH</code>, and the second element must have a <code>KeyType</code> of <code>RANGE</code>. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithTables.html#WorkingWithTables.primary.key">Working with Tables</a> in the <i>Amazon DynamoDB Developer Guide</i>.<br/>TableName:  The name of the table to create.<br/>AttributeDefinitions:  An array of attributes that describe the key schema for the table and indexes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WriteCapacityUnits</i> The maximum number of writes consumed per second before DynamoDB returns a <code>ThrottlingException</code>. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithTables.html#ProvisionedThroughput">Specifying Read and Write Requirements</a> in the <i>Amazon DynamoDB Developer Guide</i>. If read/write capacity mode is <code>PAY_PER_REQUEST</code> the value is set to 0.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadCapacityUnits</i> The maximum number of strongly consistent reads consumed per second before DynamoDB returns a <code>ThrottlingException</code>. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithTables.html#ProvisionedThroughput">Specifying Read and Write Requirements</a> in the <i>Amazon DynamoDB Developer Guide</i>. If read/write capacity mode is <code>PAY_PER_REQUEST</code> the value is set to 0.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamViewType</i>  When an item in the table is modified, <code>StreamViewType</code> determines what information is written to the stream for this table. Valid values for <code>StreamViewType</code> are: <ul> <li>  <code>KEYS_ONLY</code> - Only the key attributes of the modified item are written to the stream. </li> <li>  <code>NEW_IMAGE</code> - The entire item, as it appears after it was modified, is written to the stream. </li> <li>  <code>OLD_IMAGE</code> - The entire item, as it appeared before it was modified, is written to the stream. </li> <li>  <code>NEW_AND_OLD_IMAGES</code> - Both the new and the old item images of the item are written to the stream. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamEnabled</i> Indicates whether DynamoDB Streams is enabled (true) or disabled (false) on the table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KMSMasterKeyId</i> The AWS KMS customer master key (CMK) that should be used for the AWS KMS encryption. To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias name, or alias ARN. Note that you should only provide this parameter if the key is different from the default DynamoDB customer master key alias/aws/dynamodb.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SSEType</i> Server-side encryption type. The only supported value is: <ul> <li>  <code>KMS</code> - Server-side encryption that uses AWS Key Management Service. The key is stored in your account and is managed by AWS KMS (AWS KMS charges apply). </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Indicates whether server-side encryption is done using an AWS managed CMK or an AWS owned CMK. If enabled (true), server-side encryption type is set to <code>KMS</code> and an AWS managed CMK is used (AWS KMS charges apply). If disabled (false) or not specified, server-side encryption is set to AWS owned CMK.<br/>
        :return: TableDescription:  Represents the properties of the table.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ArchivalSummary</i> Contains information about the table archive.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ArchivalSummary</b>: Contains information about the table archive.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SSEDescription</i> The description of the server-side encryption status on the specified table.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SSEDescription</b>: The description of the server-side encryption status on the specified table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RestoreSummary</i> Contains details for the restore.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RestoreSummary</b>: Contains details for the restore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Replicas</i> Represents replicas of the table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalTableVersion</i> Represents the version of <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GlobalTables.html">global tables</a> in use, if the table is replicated across AWS Regions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestStreamArn</i> The Amazon Resource Name (ARN) that uniquely identifies the latest stream for this table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestStreamLabel</i> A timestamp, in ISO 8601 format, for this stream. Note that <code>LatestStreamLabel</code> is not a unique identifier for the stream, because it is possible that a stream from another table might have the same timestamp. However, the combination of the following three elements is guaranteed to be unique: <ul> <li> AWS customer ID </li> <li> Table name </li> <li>  <code>StreamLabel</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamSpecification</i> The current DynamoDB Streams configuration for the table.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StreamSpecification</b>: The current DynamoDB Streams configuration for the table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalSecondaryIndexes</i> The global secondary indexes, if any, on the table. Each index is scoped to a given partition key value. Each element is composed of: <ul> <li>  <code>Backfilling</code> - If true, then the index is currently in the backfilling phase. Backfilling occurs only when a new global secondary index is added to the table. It is the process by which DynamoDB populates the new index with data from the table. (This attribute does not appear for indexes that were created during a <code>CreateTable</code> operation.)   You can delete an index that is being created during the <code>Backfilling</code> phase when <code>IndexStatus</code> is set to CREATING and <code>Backfilling</code> is true. You can't delete the index that is being created when <code>IndexStatus</code> is set to CREATING and <code>Backfilling</code> is false. (This attribute does not appear for indexes that were created during a <code>CreateTable</code> operation.) </li> <li>  <code>IndexName</code> - The name of the global secondary index. </li> <li>  <code>IndexSizeBytes</code> - The total size of the global secondary index, in bytes. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.  </li> <li>  <code>IndexStatus</code> - The current status of the global secondary index: <ul> <li>  <code>CREATING</code> - The index is being created. </li> <li>  <code>UPDATING</code> - The index is being updated. </li> <li>  <code>DELETING</code> - The index is being deleted. </li> <li>  <code>ACTIVE</code> - The index is ready for use. </li> </ul> </li> <li>  <code>ItemCount</code> - The number of items in the global secondary index. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.  </li> <li>  <code>KeySchema</code> - Specifies the complete index key schema. The attribute names in the key schema must be between 1 and 255 characters (inclusive). The key schema must begin with the same partition key as the table. </li> <li>  <code>Projection</code> - Specifies attributes that are copied (projected) from the table into the index. These are in addition to the primary key attributes and index key attributes, which are automatically projected. Each attribute specification is composed of: <ul> <li>  <code>ProjectionType</code> - One of the following: <ul> <li>  <code>KEYS_ONLY</code> - Only the index and primary keys are projected into the index. </li> <li>  <code>INCLUDE</code> - In addition to the attributes described in <code>KEYS_ONLY</code>, the secondary index will include other non-key attributes that you specify. </li> <li>  <code>ALL</code> - All of the table attributes are projected into the index. </li> </ul> </li> <li>  <code>NonKeyAttributes</code> - A list of one or more non-key attribute names that are projected into the secondary index. The total count of attributes provided in <code>NonKeyAttributes</code>, summed across all of the secondary indexes, must not exceed 20. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total. </li> </ul> </li> <li>  <code>ProvisionedThroughput</code> - The provisioned throughput settings for the global secondary index, consisting of read and write capacity units, along with data about increases and decreases.  </li> </ul> If the table is in the <code>DELETING</code> state, no information about indexes will be returned.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LocalSecondaryIndexes</i> Represents one or more local secondary indexes on the table. Each index is scoped to a given partition key value. Tables with one or more local secondary indexes are subject to an item collection size limit, where the amount of data within a given item collection cannot exceed 10 GB. Each element is composed of: <ul> <li>  <code>IndexName</code> - The name of the local secondary index. </li> <li>  <code>KeySchema</code> - Specifies the complete index key schema. The attribute names in the key schema must be between 1 and 255 characters (inclusive). The key schema must begin with the same partition key as the table. </li> <li>  <code>Projection</code> - Specifies attributes that are copied (projected) from the table into the index. These are in addition to the primary key attributes and index key attributes, which are automatically projected. Each attribute specification is composed of: <ul> <li>  <code>ProjectionType</code> - One of the following: <ul> <li>  <code>KEYS_ONLY</code> - Only the index and primary keys are projected into the index. </li> <li>  <code>INCLUDE</code> - Only the specified table attributes are projected into the index. The list of projected attributes is in <code>NonKeyAttributes</code>. </li> <li>  <code>ALL</code> - All of the table attributes are projected into the index. </li> </ul> </li> <li>  <code>NonKeyAttributes</code> - A list of one or more non-key attribute names that are projected into the secondary index. The total count of attributes provided in <code>NonKeyAttributes</code>, summed across all of the secondary indexes, must not exceed 20. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total. </li> </ul> </li> <li>  <code>IndexSizeBytes</code> - Represents the total size of the index, in bytes. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value. </li> <li>  <code>ItemCount</code> - Represents the number of items in the index. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value. </li> </ul> If the table is in the <code>DELETING</code> state, no information about indexes will be returned.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BillingModeSummary</i> Contains the details for the read/write capacity mode.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>BillingModeSummary</b>: Contains the details for the read/write capacity mode.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TableId</i> Unique identifier for the table for which the backup was created. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TableArn</i> The Amazon Resource Name (ARN) that uniquely identifies the table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ItemCount</i> The number of items in the specified table. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TableSizeBytes</i> The total size of the specified table, in bytes. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProvisionedThroughput</i> The provisioned throughput settings for the table, consisting of read and write capacity units, along with data about increases and decreases.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ProvisionedThroughput</b>: The provisioned throughput settings for the table, consisting of read and write capacity units, along with data about increases and decreases.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDateTime</i> The date and time when the table was created, in <a href="http://www.epochconverter.com/">UNIX epoch time</a> format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TableStatus</i> The current state of the table: <ul> <li>  <code>CREATING</code> - The table is being created. </li> <li>  <code>UPDATING</code> - The table is being updated. </li> <li>  <code>DELETING</code> - The table is being deleted. </li> <li>  <code>ACTIVE</code> - The table is ready for use. </li> <li>  <code>INACCESSIBLE_ENCRYPTION_CREDENTIALS</code> - The AWS KMS key used to encrypt the table in inaccessible. Table operations may fail due to failure to use the AWS KMS key. DynamoDB will initiate the table archival process when a table's AWS KMS key remains inaccessible for more than seven days.  </li> <li>  <code>ARCHIVING</code> - The table is being archived. Operations are not allowed until archival is complete.  </li> <li>  <code>ARCHIVED</code> - The table has been archived. See the ArchivalReason for more information.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KeySchema</i> The primary key structure for the table. Each <code>KeySchemaElement</code> consists of: <ul> <li>  <code>AttributeName</code> - The name of the attribute. </li> <li>  <code>KeyType</code> - The role of the attribute: <ul> <li>  <code>HASH</code> - partition key </li> <li>  <code>RANGE</code> - sort key </li> </ul> <note> The partition key of an item is also known as its <i>hash attribute</i>. The term "hash attribute" derives from DynamoDB's usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values. The sort key of an item is also known as its <i>range attribute</i>. The term "range attribute" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value. </note> </li> </ul> For more information about primary keys, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataModel.html#DataModelPrimaryKey">Primary Key</a> in the <i>Amazon DynamoDB Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TableName</i> The name of the table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AttributeDefinitions</i> An array of <code>AttributeDefinition</code> objects. Each of these objects describes one attribute in the table and index key schema. Each <code>AttributeDefinition</code> object in this array is composed of: <ul> <li>  <code>AttributeName</code> - The name of the attribute. </li> <li>  <code>AttributeType</code> - The data type for the attribute. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>WriteCapacityUnits</i> The maximum number of writes consumed per second before DynamoDB returns a <code>ThrottlingException</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadCapacityUnits</i> The maximum number of strongly consistent reads consumed per second before DynamoDB returns a <code>ThrottlingException</code>. Eventually consistent reads require less effort than strongly consistent reads, so a setting of 50 <code>ReadCapacityUnits</code> per second provides 100 eventually consistent <code>ReadCapacityUnits</code> per second.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberOfDecreasesToday</i> The number of provisioned throughput decreases for this table during this UTC calendar day. For current maximums on provisioned throughput decreases, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html">Service, Account, and Table Quotas</a> in the <i>Amazon DynamoDB Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LastDecreaseDateTime</i> The date and time of the last provisioned throughput decrease for this table.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LastIncreaseDateTime</i> The date and time of the last provisioned throughput increase for this table.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdateToPayPerRequestDateTime</i> Represents the time when <code>PAY_PER_REQUEST</code> was last set as the read/write capacity mode.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BillingMode</i> Controls how you are charged for read and write throughput and how you manage capacity. This setting can be changed later. <ul> <li>  <code>PROVISIONED</code> - Sets the read/write capacity mode to <code>PROVISIONED</code>. We recommend using <code>PROVISIONED</code> for predictable workloads. </li> <li>  <code>PAY_PER_REQUEST</code> - Sets the read/write capacity mode to <code>PAY_PER_REQUEST</code>. We recommend using <code>PAY_PER_REQUEST</code> for unpredictable workloads.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamViewType</i>  When an item in the table is modified, <code>StreamViewType</code> determines what information is written to the stream for this table. Valid values for <code>StreamViewType</code> are: <ul> <li>  <code>KEYS_ONLY</code> - Only the key attributes of the modified item are written to the stream. </li> <li>  <code>NEW_IMAGE</code> - The entire item, as it appears after it was modified, is written to the stream. </li> <li>  <code>OLD_IMAGE</code> - The entire item, as it appeared before it was modified, is written to the stream. </li> <li>  <code>NEW_AND_OLD_IMAGES</code> - Both the new and the old item images of the item are written to the stream. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamEnabled</i> Indicates whether DynamoDB Streams is enabled (true) or disabled (false) on the table.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RestoreInProgress</i> Indicates if a restore is in progress or not.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RestoreDateTime</i> Point in time or source backup time.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceTableArn</i> The ARN of the source table of the backup that is being restored.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceBackupArn</i> The Amazon Resource Name (ARN) of the backup from which the table was restored.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InaccessibleEncryptionDateTime</i> Indicates the time, in UNIX epoch date format, when DynamoDB detected that the table's AWS KMS key was inaccessible. This attribute will automatically be cleared when DynamoDB detects that the table's AWS KMS key is accessible again. DynamoDB will initiate the table archival process when table's AWS KMS key remains inaccessible for more than seven days from this date.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KMSMasterKeyArn</i> The AWS KMS customer master key (CMK) ARN used for the AWS KMS encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SSEType</i> Server-side encryption type. The only supported value is: <ul> <li>  <code>KMS</code> - Server-side encryption that uses AWS Key Management Service. The key is stored in your account and is managed by AWS KMS (AWS KMS charges apply). </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Represents the current state of server-side encryption. The only supported values are: <ul> <li>  <code>ENABLED</code> - Server-side encryption is enabled. </li> <li>  <code>UPDATING</code> - Server-side encryption is being updated. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ArchivalBackupArn</i> The Amazon Resource Name (ARN) of the backup the table was archived to, when applicable in the archival reason. If you wish to restore this backup to the same table name, you will need to delete the original table.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ArchivalReason</i> The reason DynamoDB archived the table. Currently, the only possible value is: <ul> <li>  <code>INACCESSIBLE_ENCRYPTION_CREDENTIALS</code> - The table was archived due to the table's AWS KMS key being inaccessible for more than seven days. An On-Demand backup was created at the archival time. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ArchivalDateTime</i> The date and time when table archival was initiated by DynamoDB, in UNIX epoch time format.<br/>        """
        pass

    def delete_backup(self, BackupArn: str) -> DeleteBackupOutput:
        r"""Deletes an existing backup of a table. You can call <code>DeleteBackup</code> at a maximum rate of 10 times per second.

        :param self:
        :param BackupArn:  The ARN associated with the backup.<br/>
        :return: BackupDescription:  Contains the description of the backup created for the table.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceTableFeatureDetails</i> Contains the details of the features enabled on the table when the backup was created. For example, LSIs, GSIs, streams, TTL.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SourceTableFeatureDetails</b>: Contains the details of the features enabled on the table when the backup was created. For example, LSIs, GSIs, streams, TTL.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceTableDetails</i> Contains the details of the table when the backup was created. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SourceTableDetails</b>: Contains the details of the table when the backup was created. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupDetails</i> Contains the details of the backup created for the table. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>BackupDetails</b>: Contains the details of the backup created for the table. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupExpiryDateTime</i> Time at which the automatic on-demand backup created by DynamoDB will expire. This <code>SYSTEM</code> on-demand backup expires automatically 35 days after its creation.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupCreationDateTime</i> Time at which the backup was created. This is the request time of the backup. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupType</i> BackupType: <ul> <li>  <code>USER</code> - You create and manage these using the on-demand backup feature. </li> <li>  <code>SYSTEM</code> - If you delete a table with point-in-time recovery enabled, a <code>SYSTEM</code> backup is automatically created and is retained for 35 days (at no additional cost). System backups allow you to restore the deleted table to the state it was in just before the point of deletion.  </li> <li>  <code>AWS_BACKUP</code> - On-demand backup created by you from AWS Backup service. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupStatus</i> Backup can be in one of the following states: CREATING, ACTIVE, DELETED. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupSizeBytes</i> Size of the backup in bytes.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupName</i> Name of the requested backup.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupArn</i> ARN associated with the backup.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TableCreationDateTime</i> Time when the source table was created. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KeySchema</i> Schema of the table. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TableSizeBytes</i> Size of the table in bytes. Note that this is an approximate value.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TableArn</i> ARN of the table for which backup was created. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TableId</i> Unique identifier for the table for which the backup was created. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TableName</i> The name of the table for which the backup was created. <br/>Read IOPs and Write IOPS on the table when the backup was created.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ProvisionedThroughput</b>: Read IOPs and Write IOPS on the table when the backup was created.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalSecondaryIndexes</i> Represents the GSI properties for the table when the backup was created. It includes the IndexName, KeySchema, Projection, and ProvisionedThroughput for the GSIs on the table at the time of backup. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LocalSecondaryIndexes</i> Represents the LSI properties for the table when the backup was created. It includes the IndexName, KeySchema and Projection for the LSIs on the table at the time of backup. <br/>Stream settings on the table when the backup was created.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StreamDescription</b>: Stream settings on the table when the backup was created.        """
        pass

    def delete_item(self, Key: Key, TableName: str, Expected: ExpectedAttributeMap=None, ConditionalOperator: str=None, ReturnValues: str=None, ReturnConsumedCapacity: str=None, ReturnItemCollectionMetrics: str=None, ConditionExpression: str=None, ExpressionAttributeNames: ExpressionAttributeNameMap=None, ExpressionAttributeValues: ExpressionAttributeValueMap=None) -> DeleteItemOutput:
        r"""Deletes a single item in a table by primary key. You can perform a conditional delete operation that deletes the item if it exists, or if it has an expected attribute value. In addition to deleting an item, you can also return the item's attribute values in the same operation, using the <code>ReturnValues</code> parameter. Unless you specify conditions, the <code>DeleteItem</code> is an idempotent operation; running it multiple times on the same item or attribute does <i>not</i> result in an error response. Conditional deletes are useful for deleting items only if specific conditions are met. If those conditions are met, DynamoDB performs the delete. Otherwise, the item is not deleted.

        :param self:
        :param ExpressionAttributeValues:  One or more values that can be substituted in an expression. Use the <b>:</b> (colon) character in an expression to dereference an attribute value. For example, suppose that you wanted to check whether the value of the <i>ProductStatus</i> attribute was one of the following:   <code>Available | Backordered | Discontinued</code>  You would first need to specify <code>ExpressionAttributeValues</code> as follows:  <code>{ ":avail":{"S":"Available"}, ":back":{"S":"Backordered"}, ":disc":{"S":"Discontinued"} }</code>  You could then use these values in an expression, such as this:  <code>ProductStatus IN (:avail, :back, :disc)</code>  For more information on expression attribute values, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.SpecifyingConditions.html">Condition Expressions</a> in the <i>Amazon DynamoDB Developer Guide</i>.<br/>ExpressionAttributeNames:  One or more substitution tokens for attribute names in an expression. The following are some use cases for using <code>ExpressionAttributeNames</code>: <ul> <li> To access an attribute whose name conflicts with a DynamoDB reserved word. </li> <li> To create a placeholder for repeating occurrences of an attribute name in an expression. </li> <li> To prevent special characters in an attribute name from being misinterpreted in an expression. </li> </ul> Use the <b>#</b> character in an expression to dereference an attribute name. For example, consider the following attribute name: <ul> <li>  <code>Percentile</code>  </li> </ul> The name of this attribute conflicts with a reserved word, so it cannot be used directly in an expression. (For the complete list of reserved words, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ReservedWords.html">Reserved Words</a> in the <i>Amazon DynamoDB Developer Guide</i>). To work around this, you could specify the following for <code>ExpressionAttributeNames</code>: <ul> <li>  <code>{"#P":"Percentile"}</code>  </li> </ul> You could then use this substitution in an expression, as in this example: <ul> <li>  <code>#P = :val</code>  </li> </ul> <note> Tokens that begin with the <b>:</b> character are <i>expression attribute values</i>, which are placeholders for the actual value at runtime. </note> For more information on expression attribute names, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.AccessingItemAttributes.html">Specifying Item Attributes</a> in the <i>Amazon DynamoDB Developer Guide</i>.<br/>ConditionExpression:  A condition that must be satisfied in order for a conditional <code>DeleteItem</code> to succeed. An expression can contain any of the following: <ul> <li> Functions: <code>attribute_exists | attribute_not_exists | attribute_type | contains | begins_with | size</code>  These function names are case-sensitive. </li> <li> Comparison operators: <code>= | &lt;&gt; | &lt; | &gt; | &lt;= | &gt;= | BETWEEN | IN </code>  </li> <li>  Logical operators: <code>AND | OR | NOT</code>  </li> </ul> For more information about condition expressions, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.SpecifyingConditions.html">Condition Expressions</a> in the <i>Amazon DynamoDB Developer Guide</i>.<br/>ReturnItemCollectionMetrics:  Determines whether item collection metrics are returned. If set to <code>SIZE</code>, the response includes statistics about item collections, if any, that were modified during the operation are returned in the response. If set to <code>NONE</code> (the default), no statistics are returned.<br/>ReturnConsumedCapacity:  Determines the level of detail about provisioned throughput consumption that is returned in the response: <ul> <li>  <code>INDEXES</code> - The response includes the aggregate <code>ConsumedCapacity</code> for the operation, together with <code>ConsumedCapacity</code> for each table and secondary index that was accessed. Note that some operations, such as <code>GetItem</code> and <code>BatchGetItem</code>, do not access any indexes at all. In these cases, specifying <code>INDEXES</code> will only return <code>ConsumedCapacity</code> information for table(s). </li> <li>  <code>TOTAL</code> - The response includes only the aggregate <code>ConsumedCapacity</code> for the operation. </li> <li>  <code>NONE</code> - No <code>ConsumedCapacity</code> details are included in the response. </li> </ul><br/>ReturnValues:  Use <code>ReturnValues</code> if you want to get the item attributes as they appeared before they were deleted. For <code>DeleteItem</code>, the valid values are: <ul> <li>  <code>NONE</code> - If <code>ReturnValues</code> is not specified, or if its value is <code>NONE</code>, then nothing is returned. (This setting is the default for <code>ReturnValues</code>.) </li> <li>  <code>ALL_OLD</code> - The content of the old item is returned. </li> </ul> <note> The <code>ReturnValues</code> parameter is used by several DynamoDB operations; however, <code>DeleteItem</code> does not recognize any values other than <code>NONE</code> or <code>ALL_OLD</code>. </note><br/>ConditionalOperator:  This is a legacy parameter. Use <code>ConditionExpression</code> instead. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.ConditionalOperator.html">ConditionalOperator</a> in the <i>Amazon DynamoDB Developer Guide</i>.<br/>Expected:  This is a legacy parameter. Use <code>ConditionExpression</code> instead. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.Expected.html">Expected</a> in the <i>Amazon DynamoDB Developer Guide</i>.<br/>Key:  A map of attribute names to <code>AttributeValue</code> objects, representing the primary key of the item to delete. For the primary key, you must provide all of the attributes. For example, with a simple primary key, you only need to provide a value for the partition key. For a composite primary key, you must provide values for both the partition key and the sort key.<br/>TableName:  The name of the table from which to delete the item.<br/>
        :return: ItemCollectionMetrics:  Information about item collections, if any, that were affected by the <code>DeleteItem</code> operation. <code>ItemCollectionMetrics</code> is only returned if the <code>ReturnItemCollectionMetrics</code> parameter was specified. If the table does not have any local secondary indexes, this information is not returned in the response. Each <code>ItemCollectionMetrics</code> element consists of: <ul> <li>  <code>ItemCollectionKey</code> - The partition key value of the item collection. This is the same as the partition key value of the item itself. </li> <li>  <code>SizeEstimateRangeGB</code> - An estimate of item collection size, in gigabytes. This value is a two-element array containing a lower bound and an upper bound for the estimate. The estimate includes the size of all the items in the table, plus the size of all attributes projected into all of the local secondary indexes on that table. Use this estimate to measure whether a local secondary index is approaching its size limit. The estimate is subject to change over time; therefore, do not rely on the precision or accuracy of the estimate. </li> </ul>:<br/>ConsumedCapacity:  The capacity units consumed by the <code>DeleteItem</code> operation. The data returned includes the total provisioned throughput consumed, along with statistics for the table and any indexes involved in the operation. <code>ConsumedCapacity</code> is only returned if the <code>ReturnConsumedCapacity</code> parameter was specified. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ProvisionedThroughputIntro.html">Provisioned Mode</a> in the <i>Amazon DynamoDB Developer Guide</i>.:<br/>Attributes:  A map of attribute names to <code>AttributeValue</code> objects, representing the item as it appeared before the <code>DeleteItem</code> operation. This map appears in the response only if <code>ReturnValues</code> was specified as <code>ALL_OLD</code> in the request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalSecondaryIndexes</i> The amount of throughput consumed on each global index affected by the operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LocalSecondaryIndexes</i> The amount of throughput consumed on each local index affected by the operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Table</i> The amount of throughput consumed on the table affected by the operation.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Table</b>: The amount of throughput consumed on the table affected by the operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WriteCapacityUnits</i> The total number of write capacity units consumed by the operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadCapacityUnits</i> The total number of read capacity units consumed by the operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CapacityUnits</i> The total number of capacity units consumed by the operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TableName</i> The name of the table that was affected by the operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CapacityUnits</i> The total number of capacity units consumed on a table or an index.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>WriteCapacityUnits</i> The total number of write capacity units consumed on a table or an index.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadCapacityUnits</i> The total number of read capacity units consumed on a table or an index.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SizeEstimateRangeGB</i> An estimate of item collection size, in gigabytes. This value is a two-element array containing a lower bound and an upper bound for the estimate. The estimate includes the size of all the items in the table, plus the size of all attributes projected into all of the local secondary indexes on that table. Use this estimate to measure whether a local secondary index is approaching its size limit. The estimate is subject to change over time; therefore, do not rely on the precision or accuracy of the estimate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ItemCollectionKey</i> The partition key value of the item collection. This value is the same as the partition key value of the item.<br/>        """
        pass

    def delete_table(self, TableName: str) -> DeleteTableOutput:
        r"""The <code>DeleteTable</code> operation deletes a table and all of its items. After a <code>DeleteTable</code> request, the specified table is in the <code>DELETING</code> state until DynamoDB completes the deletion. If the table is in the <code>ACTIVE</code> state, you can delete it. If a table is in <code>CREATING</code> or <code>UPDATING</code> states, then DynamoDB returns a <code>ResourceInUseException</code>. If the specified table does not exist, DynamoDB returns a <code>ResourceNotFoundException</code>. If table is already in the <code>DELETING</code> state, no error is returned.  <note> DynamoDB might continue to accept data read and write operations, such as <code>GetItem</code> and <code>PutItem</code>, on a table in the <code>DELETING</code> state until the table deletion is complete. </note> When you delete a table, any indexes on that table are also deleted. If you have DynamoDB Streams enabled on the table, then the corresponding stream on that table goes into the <code>DISABLED</code> state, and the stream is automatically deleted after 24 hours. Use the <code>DescribeTable</code> action to check the status of the table. 

        :param self:
        :param TableName:  The name of the table to delete.<br/>
        :return: TableDescription:  Represents the properties of a table.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ArchivalSummary</i> Contains information about the table archive.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ArchivalSummary</b>: Contains information about the table archive.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SSEDescription</i> The description of the server-side encryption status on the specified table.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SSEDescription</b>: The description of the server-side encryption status on the specified table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RestoreSummary</i> Contains details for the restore.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RestoreSummary</b>: Contains details for the restore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Replicas</i> Represents replicas of the table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalTableVersion</i> Represents the version of <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GlobalTables.html">global tables</a> in use, if the table is replicated across AWS Regions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestStreamArn</i> The Amazon Resource Name (ARN) that uniquely identifies the latest stream for this table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestStreamLabel</i> A timestamp, in ISO 8601 format, for this stream. Note that <code>LatestStreamLabel</code> is not a unique identifier for the stream, because it is possible that a stream from another table might have the same timestamp. However, the combination of the following three elements is guaranteed to be unique: <ul> <li> AWS customer ID </li> <li> Table name </li> <li>  <code>StreamLabel</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamSpecification</i> The current DynamoDB Streams configuration for the table.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StreamSpecification</b>: The current DynamoDB Streams configuration for the table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalSecondaryIndexes</i> The global secondary indexes, if any, on the table. Each index is scoped to a given partition key value. Each element is composed of: <ul> <li>  <code>Backfilling</code> - If true, then the index is currently in the backfilling phase. Backfilling occurs only when a new global secondary index is added to the table. It is the process by which DynamoDB populates the new index with data from the table. (This attribute does not appear for indexes that were created during a <code>CreateTable</code> operation.)   You can delete an index that is being created during the <code>Backfilling</code> phase when <code>IndexStatus</code> is set to CREATING and <code>Backfilling</code> is true. You can't delete the index that is being created when <code>IndexStatus</code> is set to CREATING and <code>Backfilling</code> is false. (This attribute does not appear for indexes that were created during a <code>CreateTable</code> operation.) </li> <li>  <code>IndexName</code> - The name of the global secondary index. </li> <li>  <code>IndexSizeBytes</code> - The total size of the global secondary index, in bytes. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.  </li> <li>  <code>IndexStatus</code> - The current status of the global secondary index: <ul> <li>  <code>CREATING</code> - The index is being created. </li> <li>  <code>UPDATING</code> - The index is being updated. </li> <li>  <code>DELETING</code> - The index is being deleted. </li> <li>  <code>ACTIVE</code> - The index is ready for use. </li> </ul> </li> <li>  <code>ItemCount</code> - The number of items in the global secondary index. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.  </li> <li>  <code>KeySchema</code> - Specifies the complete index key schema. The attribute names in the key schema must be between 1 and 255 characters (inclusive). The key schema must begin with the same partition key as the table. </li> <li>  <code>Projection</code> - Specifies attributes that are copied (projected) from the table into the index. These are in addition to the primary key attributes and index key attributes, which are automatically projected. Each attribute specification is composed of: <ul> <li>  <code>ProjectionType</code> - One of the following: <ul> <li>  <code>KEYS_ONLY</code> - Only the index and primary keys are projected into the index. </li> <li>  <code>INCLUDE</code> - In addition to the attributes described in <code>KEYS_ONLY</code>, the secondary index will include other non-key attributes that you specify. </li> <li>  <code>ALL</code> - All of the table attributes are projected into the index. </li> </ul> </li> <li>  <code>NonKeyAttributes</code> - A list of one or more non-key attribute names that are projected into the secondary index. The total count of attributes provided in <code>NonKeyAttributes</code>, summed across all of the secondary indexes, must not exceed 20. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total. </li> </ul> </li> <li>  <code>ProvisionedThroughput</code> - The provisioned throughput settings for the global secondary index, consisting of read and write capacity units, along with data about increases and decreases.  </li> </ul> If the table is in the <code>DELETING</code> state, no information about indexes will be returned.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LocalSecondaryIndexes</i> Represents one or more local secondary indexes on the table. Each index is scoped to a given partition key value. Tables with one or more local secondary indexes are subject to an item collection size limit, where the amount of data within a given item collection cannot exceed 10 GB. Each element is composed of: <ul> <li>  <code>IndexName</code> - The name of the local secondary index. </li> <li>  <code>KeySchema</code> - Specifies the complete index key schema. The attribute names in the key schema must be between 1 and 255 characters (inclusive). The key schema must begin with the same partition key as the table. </li> <li>  <code>Projection</code> - Specifies attributes that are copied (projected) from the table into the index. These are in addition to the primary key attributes and index key attributes, which are automatically projected. Each attribute specification is composed of: <ul> <li>  <code>ProjectionType</code> - One of the following: <ul> <li>  <code>KEYS_ONLY</code> - Only the index and primary keys are projected into the index. </li> <li>  <code>INCLUDE</code> - Only the specified table attributes are projected into the index. The list of projected attributes is in <code>NonKeyAttributes</code>. </li> <li>  <code>ALL</code> - All of the table attributes are projected into the index. </li> </ul> </li> <li>  <code>NonKeyAttributes</code> - A list of one or more non-key attribute names that are projected into the secondary index. The total count of attributes provided in <code>NonKeyAttributes</code>, summed across all of the secondary indexes, must not exceed 20. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total. </li> </ul> </li> <li>  <code>IndexSizeBytes</code> - Represents the total size of the index, in bytes. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value. </li> <li>  <code>ItemCount</code> - Represents the number of items in the index. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value. </li> </ul> If the table is in the <code>DELETING</code> state, no information about indexes will be returned.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BillingModeSummary</i> Contains the details for the read/write capacity mode.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>BillingModeSummary</b>: Contains the details for the read/write capacity mode.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TableId</i> Unique identifier for the table for which the backup was created. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TableArn</i> The Amazon Resource Name (ARN) that uniquely identifies the table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ItemCount</i> The number of items in the specified table. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TableSizeBytes</i> The total size of the specified table, in bytes. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProvisionedThroughput</i> The provisioned throughput settings for the table, consisting of read and write capacity units, along with data about increases and decreases.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ProvisionedThroughput</b>: The provisioned throughput settings for the table, consisting of read and write capacity units, along with data about increases and decreases.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDateTime</i> The date and time when the table was created, in <a href="http://www.epochconverter.com/">UNIX epoch time</a> format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TableStatus</i> The current state of the table: <ul> <li>  <code>CREATING</code> - The table is being created. </li> <li>  <code>UPDATING</code> - The table is being updated. </li> <li>  <code>DELETING</code> - The table is being deleted. </li> <li>  <code>ACTIVE</code> - The table is ready for use. </li> <li>  <code>INACCESSIBLE_ENCRYPTION_CREDENTIALS</code> - The AWS KMS key used to encrypt the table in inaccessible. Table operations may fail due to failure to use the AWS KMS key. DynamoDB will initiate the table archival process when a table's AWS KMS key remains inaccessible for more than seven days.  </li> <li>  <code>ARCHIVING</code> - The table is being archived. Operations are not allowed until archival is complete.  </li> <li>  <code>ARCHIVED</code> - The table has been archived. See the ArchivalReason for more information.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KeySchema</i> The primary key structure for the table. Each <code>KeySchemaElement</code> consists of: <ul> <li>  <code>AttributeName</code> - The name of the attribute. </li> <li>  <code>KeyType</code> - The role of the attribute: <ul> <li>  <code>HASH</code> - partition key </li> <li>  <code>RANGE</code> - sort key </li> </ul> <note> The partition key of an item is also known as its <i>hash attribute</i>. The term "hash attribute" derives from DynamoDB's usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values. The sort key of an item is also known as its <i>range attribute</i>. The term "range attribute" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value. </note> </li> </ul> For more information about primary keys, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataModel.html#DataModelPrimaryKey">Primary Key</a> in the <i>Amazon DynamoDB Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TableName</i> The name of the table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AttributeDefinitions</i> An array of <code>AttributeDefinition</code> objects. Each of these objects describes one attribute in the table and index key schema. Each <code>AttributeDefinition</code> object in this array is composed of: <ul> <li>  <code>AttributeName</code> - The name of the attribute. </li> <li>  <code>AttributeType</code> - The data type for the attribute. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>WriteCapacityUnits</i> The maximum number of writes consumed per second before DynamoDB returns a <code>ThrottlingException</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadCapacityUnits</i> The maximum number of strongly consistent reads consumed per second before DynamoDB returns a <code>ThrottlingException</code>. Eventually consistent reads require less effort than strongly consistent reads, so a setting of 50 <code>ReadCapacityUnits</code> per second provides 100 eventually consistent <code>ReadCapacityUnits</code> per second.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberOfDecreasesToday</i> The number of provisioned throughput decreases for this table during this UTC calendar day. For current maximums on provisioned throughput decreases, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html">Service, Account, and Table Quotas</a> in the <i>Amazon DynamoDB Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LastDecreaseDateTime</i> The date and time of the last provisioned throughput decrease for this table.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LastIncreaseDateTime</i> The date and time of the last provisioned throughput increase for this table.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdateToPayPerRequestDateTime</i> Represents the time when <code>PAY_PER_REQUEST</code> was last set as the read/write capacity mode.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BillingMode</i> Controls how you are charged for read and write throughput and how you manage capacity. This setting can be changed later. <ul> <li>  <code>PROVISIONED</code> - Sets the read/write capacity mode to <code>PROVISIONED</code>. We recommend using <code>PROVISIONED</code> for predictable workloads. </li> <li>  <code>PAY_PER_REQUEST</code> - Sets the read/write capacity mode to <code>PAY_PER_REQUEST</code>. We recommend using <code>PAY_PER_REQUEST</code> for unpredictable workloads.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamViewType</i>  When an item in the table is modified, <code>StreamViewType</code> determines what information is written to the stream for this table. Valid values for <code>StreamViewType</code> are: <ul> <li>  <code>KEYS_ONLY</code> - Only the key attributes of the modified item are written to the stream. </li> <li>  <code>NEW_IMAGE</code> - The entire item, as it appears after it was modified, is written to the stream. </li> <li>  <code>OLD_IMAGE</code> - The entire item, as it appeared before it was modified, is written to the stream. </li> <li>  <code>NEW_AND_OLD_IMAGES</code> - Both the new and the old item images of the item are written to the stream. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamEnabled</i> Indicates whether DynamoDB Streams is enabled (true) or disabled (false) on the table.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RestoreInProgress</i> Indicates if a restore is in progress or not.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RestoreDateTime</i> Point in time or source backup time.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceTableArn</i> The ARN of the source table of the backup that is being restored.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceBackupArn</i> The Amazon Resource Name (ARN) of the backup from which the table was restored.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InaccessibleEncryptionDateTime</i> Indicates the time, in UNIX epoch date format, when DynamoDB detected that the table's AWS KMS key was inaccessible. This attribute will automatically be cleared when DynamoDB detects that the table's AWS KMS key is accessible again. DynamoDB will initiate the table archival process when table's AWS KMS key remains inaccessible for more than seven days from this date.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KMSMasterKeyArn</i> The AWS KMS customer master key (CMK) ARN used for the AWS KMS encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SSEType</i> Server-side encryption type. The only supported value is: <ul> <li>  <code>KMS</code> - Server-side encryption that uses AWS Key Management Service. The key is stored in your account and is managed by AWS KMS (AWS KMS charges apply). </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Represents the current state of server-side encryption. The only supported values are: <ul> <li>  <code>ENABLED</code> - Server-side encryption is enabled. </li> <li>  <code>UPDATING</code> - Server-side encryption is being updated. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ArchivalBackupArn</i> The Amazon Resource Name (ARN) of the backup the table was archived to, when applicable in the archival reason. If you wish to restore this backup to the same table name, you will need to delete the original table.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ArchivalReason</i> The reason DynamoDB archived the table. Currently, the only possible value is: <ul> <li>  <code>INACCESSIBLE_ENCRYPTION_CREDENTIALS</code> - The table was archived due to the table's AWS KMS key being inaccessible for more than seven days. An On-Demand backup was created at the archival time. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ArchivalDateTime</i> The date and time when table archival was initiated by DynamoDB, in UNIX epoch time format.<br/>        """
        pass

    def describe_backup(self, BackupArn: str) -> DescribeBackupOutput:
        r"""Describes an existing backup of a table. You can call <code>DescribeBackup</code> at a maximum rate of 10 times per second.

        :param self:
        :param BackupArn:  The Amazon Resource Name (ARN) associated with the backup.<br/>
        :return: BackupDescription:  Contains the description of the backup created for the table.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceTableFeatureDetails</i> Contains the details of the features enabled on the table when the backup was created. For example, LSIs, GSIs, streams, TTL.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SourceTableFeatureDetails</b>: Contains the details of the features enabled on the table when the backup was created. For example, LSIs, GSIs, streams, TTL.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceTableDetails</i> Contains the details of the table when the backup was created. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SourceTableDetails</b>: Contains the details of the table when the backup was created. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupDetails</i> Contains the details of the backup created for the table. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>BackupDetails</b>: Contains the details of the backup created for the table. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupExpiryDateTime</i> Time at which the automatic on-demand backup created by DynamoDB will expire. This <code>SYSTEM</code> on-demand backup expires automatically 35 days after its creation.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupCreationDateTime</i> Time at which the backup was created. This is the request time of the backup. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupType</i> BackupType: <ul> <li>  <code>USER</code> - You create and manage these using the on-demand backup feature. </li> <li>  <code>SYSTEM</code> - If you delete a table with point-in-time recovery enabled, a <code>SYSTEM</code> backup is automatically created and is retained for 35 days (at no additional cost). System backups allow you to restore the deleted table to the state it was in just before the point of deletion.  </li> <li>  <code>AWS_BACKUP</code> - On-demand backup created by you from AWS Backup service. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupStatus</i> Backup can be in one of the following states: CREATING, ACTIVE, DELETED. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupSizeBytes</i> Size of the backup in bytes.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupName</i> Name of the requested backup.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupArn</i> ARN associated with the backup.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TableCreationDateTime</i> Time when the source table was created. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KeySchema</i> Schema of the table. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TableSizeBytes</i> Size of the table in bytes. Note that this is an approximate value.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TableArn</i> ARN of the table for which backup was created. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TableId</i> Unique identifier for the table for which the backup was created. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TableName</i> The name of the table for which the backup was created. <br/>Read IOPs and Write IOPS on the table when the backup was created.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ProvisionedThroughput</b>: Read IOPs and Write IOPS on the table when the backup was created.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalSecondaryIndexes</i> Represents the GSI properties for the table when the backup was created. It includes the IndexName, KeySchema, Projection, and ProvisionedThroughput for the GSIs on the table at the time of backup. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LocalSecondaryIndexes</i> Represents the LSI properties for the table when the backup was created. It includes the IndexName, KeySchema and Projection for the LSIs on the table at the time of backup. <br/>Stream settings on the table when the backup was created.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StreamDescription</b>: Stream settings on the table when the backup was created.        """
        pass

    def describe_continuous_backups(self, TableName: str) -> DescribeContinuousBackupsOutput:
        r"""Checks the status of continuous backups and point in time recovery on the specified table. Continuous backups are <code>ENABLED</code> on all tables at table creation. If point in time recovery is enabled, <code>PointInTimeRecoveryStatus</code> will be set to ENABLED.  After continuous backups and point in time recovery are enabled, you can restore to any point in time within <code>EarliestRestorableDateTime</code> and <code>LatestRestorableDateTime</code>.   <code>LatestRestorableDateTime</code> is typically 5 minutes before the current time. You can restore your table to any point in time during the last 35 days.  You can call <code>DescribeContinuousBackups</code> at a maximum rate of 10 times per second.

        :param self:
        :param TableName:  Name of the table for which the customer wants to check the continuous backups and point in time recovery settings.<br/>
        :return: ContinuousBackupsDescription:  Represents the continuous backups and point in time recovery settings on the table.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PointInTimeRecoveryDescription</i> The description of the point in time recovery settings applied to the table.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PointInTimeRecoveryDescription</b>: The description of the point in time recovery settings applied to the table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ContinuousBackupsStatus</i>  <code>ContinuousBackupsStatus</code> can be one of the following states: ENABLED, DISABLED<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestRestorableDateTime</i>  <code>LatestRestorableDateTime</code> is typically 5 minutes before the current time. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EarliestRestorableDateTime</i> Specifies the earliest point in time you can restore your table to. You can restore your table to any point in time during the last 35 days. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PointInTimeRecoveryStatus</i> The current state of point in time recovery: <ul> <li>  <code>ENABLING</code> - Point in time recovery is being enabled. </li> <li>  <code>ENABLED</code> - Point in time recovery is enabled. </li> <li>  <code>DISABLED</code> - Point in time recovery is disabled. </li> </ul><br/>        """
        pass

    def describe_contributor_insights(self, TableName: str, IndexName: str=None) -> DescribeContributorInsightsOutput:
        r"""Returns information about contributor insights, for a given table or global secondary index.

        :param self:
        :param IndexName:  The name of the global secondary index to describe, if applicable.<br/>TableName:  The name of the table to describe.<br/>
        :return: FailureException:  Returns information about the last failure that encountered. The most common exceptions for a FAILED status are: <ul> <li> LimitExceededException - Per-account Amazon CloudWatch Contributor Insights rule limit reached. Please disable Contributor Insights for other tables/indexes OR disable Contributor Insights rules before retrying. </li> <li> AccessDeniedException - Amazon CloudWatch Contributor Insights rules cannot be modified due to insufficient permissions. </li> <li> AccessDeniedException - Failed to create service-linked role for Contributor Insights due to insufficient permissions. </li> <li> InternalServerError - Failed to create Amazon CloudWatch Contributor Insights rules. Please retry request. </li> </ul>:<br/>LastUpdateDateTime:  Timestamp of the last time the status was changed.<br/>ContributorInsightsStatus:  Current Status contributor insights.<br/>ContributorInsightsRuleList:  List of names of the associated Alpine rules.<br/>IndexName:  The name of the global secondary index being described.<br/>TableName:  The name of the table being described.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExceptionDescription</i> Description of the failure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExceptionName</i> Exception name.<br/>        """
        pass

    def describe_endpoints(self) -> DescribeEndpointsResponse:
        r"""Returns the regional endpoint information.

        :param self:
        :param 
        :return: Endpoints:  List of endpoints.<br/>        """
        pass

    def describe_export(self, ExportArn: str) -> DescribeExportOutput:
        r"""Describes an existing table export.

        :param self:
        :param ExportArn:  The Amazon Resource Name (ARN) associated with the export.<br/>
        :return: ExportDescription:  Represents the properties of the export.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ItemCount</i> The number of items exported.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BilledSizeBytes</i> The billable size of the table export.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExportFormat</i> The format of the exported data. Valid values for <code>ExportFormat</code> are <code>DYNAMODB_JSON</code> or <code>ION</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FailureMessage</i> Export failure reason description.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FailureCode</i> Status code for the result of the failed export.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3SseKmsKeyId</i> The ID of the AWS KMS managed key used to encrypt the S3 bucket where export data is stored (if applicable).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3SseAlgorithm</i> Type of encryption used on the bucket where export data is stored. Valid values for <code>S3SseAlgorithm</code> are: <ul> <li>  <code>AES256</code> - server-side encryption with Amazon S3 managed keys </li> <li>  <code>KMS</code> - server-side encryption with AWS KMS managed keys </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Prefix</i> The Amazon S3 bucket prefix used as the file name and path of the exported snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3BucketOwner</i> The ID of the AWS account that owns the bucket containing the export.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Bucket</i> The name of the Amazon S3 bucket containing the export.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClientToken</i> The client token that was provided for the export task. A client token makes calls to <code>ExportTableToPointInTimeInput</code> idempotent, meaning that multiple identical calls have the same effect as one single call.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExportTime</i> Point in time from which table data was exported.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TableId</i> Unique ID of the table that was exported.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TableArn</i> The Amazon Resource Name (ARN) of the table that was exported.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExportManifest</i> The name of the manifest file for the export task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndTime</i> The time at which the export task completed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StartTime</i> The time at which the export task began.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExportStatus</i> Export can be in one of the following states: IN_PROGRESS, COMPLETED, or FAILED.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExportArn</i> The Amazon Resource Name (ARN) of the table export.<br/>        """
        pass

    def describe_global_table(self, GlobalTableName: str) -> DescribeGlobalTableOutput:
        r"""Returns information about the specified global table. <note> This operation only applies to <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/globaltables.V1.html">Version 2017.11.29</a> of global tables. If you are using global tables <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/globaltables.V2.html">Version 2019.11.21</a> you can use <a href="https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DescribeTable.html">DescribeTable</a> instead. </note>

        :param self:
        :param GlobalTableName:  The name of the global table.<br/>
        :return: GlobalTableDescription:  Contains the details of the global table.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalTableName</i> The global table name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalTableStatus</i> The current state of the global table: <ul> <li>  <code>CREATING</code> - The global table is being created. </li> <li>  <code>UPDATING</code> - The global table is being updated. </li> <li>  <code>DELETING</code> - The global table is being deleted. </li> <li>  <code>ACTIVE</code> - The global table is ready for use. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDateTime</i> The creation time of the global table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalTableArn</i> The unique identifier of the global table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationGroup</i> The Regions where the global table has replicas.<br/>        """
        pass

    def describe_global_table_settings(self, GlobalTableName: str) -> DescribeGlobalTableSettingsOutput:
        r"""Describes Region-specific settings for a global table. <note> This operation only applies to <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/globaltables.V1.html">Version 2017.11.29</a> of global tables. </note>

        :param self:
        :param GlobalTableName:  The name of the global table to describe.<br/>
        :return: ReplicaSettings:  The Region-specific settings for the global table.<br/>GlobalTableName:  The name of the global table.<br/>        """
        pass

    def describe_kinesis_streaming_destination(self, TableName: str) -> DescribeKinesisStreamingDestinationOutput:
        r"""Returns information about the status of Kinesis streaming.

        :param self:
        :param TableName:  The name of the table being described.<br/>
        :return: KinesisDataStreamDestinations:  The list of replica structures for the table being described.<br/>TableName:  The name of the table being described.<br/>        """
        pass

    def describe_limits(self) -> DescribeLimitsOutput:
        r"""Returns the current provisioned-capacity quotas for your AWS account in a Region, both for the Region as a whole and for any one DynamoDB table that you create there. When you establish an AWS account, the account has initial quotas on the maximum read capacity units and write capacity units that you can provision across all of your DynamoDB tables in a given Region. Also, there are per-table quotas that apply when you create a table there. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html">Service, Account, and Table Quotas</a> page in the <i>Amazon DynamoDB Developer Guide</i>. Although you can increase these quotas by filing a case at <a href="https://console.aws.amazon.com/support/home#/">AWS Support Center</a>, obtaining the increase is not instantaneous. The <code>DescribeLimits</code> action lets you write code to compare the capacity you are currently using to those quotas imposed by your account so that you have enough time to apply for an increase before you hit a quota. For example, you could use one of the AWS SDKs to do the following: <ol> <li> Call <code>DescribeLimits</code> for a particular Region to obtain your current account quotas on provisioned capacity there. </li> <li> Create a variable to hold the aggregate read capacity units provisioned for all your tables in that Region, and one to hold the aggregate write capacity units. Zero them both. </li> <li> Call <code>ListTables</code> to obtain a list of all your DynamoDB tables. </li> <li> For each table name listed by <code>ListTables</code>, do the following: <ul> <li> Call <code>DescribeTable</code> with the table name. </li> <li> Use the data returned by <code>DescribeTable</code> to add the read capacity units and write capacity units provisioned for the table itself to your variables. </li> <li> If the table has one or more global secondary indexes (GSIs), loop over these GSIs and add their provisioned capacity values to your variables as well. </li> </ul> </li> <li> Report the account quotas for that Region returned by <code>DescribeLimits</code>, along with the total current provisioned capacity levels you have calculated. </li> </ol> This will let you see whether you are getting close to your account-level quotas. The per-table quotas apply only when you are creating a new table. They restrict the sum of the provisioned capacity of the new table itself and all its global secondary indexes. For existing tables and their GSIs, DynamoDB doesn't let you increase provisioned capacity extremely rapidly, but the only quota that applies is that the aggregate provisioned capacity over all your tables and GSIs cannot exceed either of the per-account quotas. <note>  <code>DescribeLimits</code> should only be called periodically. You can expect throttling errors if you call it more than once in a minute. </note> The <code>DescribeLimits</code> Request element has no content.

        :param self:
        :param 
        :return: TableMaxWriteCapacityUnits:  The maximum write capacity units that your account allows you to provision for a new table that you are creating in this Region, including the write capacity units provisioned for its global secondary indexes (GSIs).<br/>TableMaxReadCapacityUnits:  The maximum read capacity units that your account allows you to provision for a new table that you are creating in this Region, including the read capacity units provisioned for its global secondary indexes (GSIs).<br/>AccountMaxWriteCapacityUnits:  The maximum total write capacity units that your account allows you to provision across all of your tables in this Region.<br/>AccountMaxReadCapacityUnits:  The maximum total read capacity units that your account allows you to provision across all of your tables in this Region.<br/>        """
        pass

    def describe_table(self, TableName: str) -> DescribeTableOutput:
        r"""Returns information about the table, including the current status of the table, when it was created, the primary key schema, and any indexes on the table. <note> If you issue a <code>DescribeTable</code> request immediately after a <code>CreateTable</code> request, DynamoDB might return a <code>ResourceNotFoundException</code>. This is because <code>DescribeTable</code> uses an eventually consistent query, and the metadata for your table might not be available at that moment. Wait for a few seconds, and then try the <code>DescribeTable</code> request again. </note>

        :param self:
        :param TableName:  The name of the table to describe.<br/>
        :return: Table:  The properties of the table.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ArchivalSummary</i> Contains information about the table archive.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ArchivalSummary</b>: Contains information about the table archive.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SSEDescription</i> The description of the server-side encryption status on the specified table.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SSEDescription</b>: The description of the server-side encryption status on the specified table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RestoreSummary</i> Contains details for the restore.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RestoreSummary</b>: Contains details for the restore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Replicas</i> Represents replicas of the table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalTableVersion</i> Represents the version of <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GlobalTables.html">global tables</a> in use, if the table is replicated across AWS Regions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestStreamArn</i> The Amazon Resource Name (ARN) that uniquely identifies the latest stream for this table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestStreamLabel</i> A timestamp, in ISO 8601 format, for this stream. Note that <code>LatestStreamLabel</code> is not a unique identifier for the stream, because it is possible that a stream from another table might have the same timestamp. However, the combination of the following three elements is guaranteed to be unique: <ul> <li> AWS customer ID </li> <li> Table name </li> <li>  <code>StreamLabel</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamSpecification</i> The current DynamoDB Streams configuration for the table.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StreamSpecification</b>: The current DynamoDB Streams configuration for the table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalSecondaryIndexes</i> The global secondary indexes, if any, on the table. Each index is scoped to a given partition key value. Each element is composed of: <ul> <li>  <code>Backfilling</code> - If true, then the index is currently in the backfilling phase. Backfilling occurs only when a new global secondary index is added to the table. It is the process by which DynamoDB populates the new index with data from the table. (This attribute does not appear for indexes that were created during a <code>CreateTable</code> operation.)   You can delete an index that is being created during the <code>Backfilling</code> phase when <code>IndexStatus</code> is set to CREATING and <code>Backfilling</code> is true. You can't delete the index that is being created when <code>IndexStatus</code> is set to CREATING and <code>Backfilling</code> is false. (This attribute does not appear for indexes that were created during a <code>CreateTable</code> operation.) </li> <li>  <code>IndexName</code> - The name of the global secondary index. </li> <li>  <code>IndexSizeBytes</code> - The total size of the global secondary index, in bytes. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.  </li> <li>  <code>IndexStatus</code> - The current status of the global secondary index: <ul> <li>  <code>CREATING</code> - The index is being created. </li> <li>  <code>UPDATING</code> - The index is being updated. </li> <li>  <code>DELETING</code> - The index is being deleted. </li> <li>  <code>ACTIVE</code> - The index is ready for use. </li> </ul> </li> <li>  <code>ItemCount</code> - The number of items in the global secondary index. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.  </li> <li>  <code>KeySchema</code> - Specifies the complete index key schema. The attribute names in the key schema must be between 1 and 255 characters (inclusive). The key schema must begin with the same partition key as the table. </li> <li>  <code>Projection</code> - Specifies attributes that are copied (projected) from the table into the index. These are in addition to the primary key attributes and index key attributes, which are automatically projected. Each attribute specification is composed of: <ul> <li>  <code>ProjectionType</code> - One of the following: <ul> <li>  <code>KEYS_ONLY</code> - Only the index and primary keys are projected into the index. </li> <li>  <code>INCLUDE</code> - In addition to the attributes described in <code>KEYS_ONLY</code>, the secondary index will include other non-key attributes that you specify. </li> <li>  <code>ALL</code> - All of the table attributes are projected into the index. </li> </ul> </li> <li>  <code>NonKeyAttributes</code> - A list of one or more non-key attribute names that are projected into the secondary index. The total count of attributes provided in <code>NonKeyAttributes</code>, summed across all of the secondary indexes, must not exceed 20. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total. </li> </ul> </li> <li>  <code>ProvisionedThroughput</code> - The provisioned throughput settings for the global secondary index, consisting of read and write capacity units, along with data about increases and decreases.  </li> </ul> If the table is in the <code>DELETING</code> state, no information about indexes will be returned.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LocalSecondaryIndexes</i> Represents one or more local secondary indexes on the table. Each index is scoped to a given partition key value. Tables with one or more local secondary indexes are subject to an item collection size limit, where the amount of data within a given item collection cannot exceed 10 GB. Each element is composed of: <ul> <li>  <code>IndexName</code> - The name of the local secondary index. </li> <li>  <code>KeySchema</code> - Specifies the complete index key schema. The attribute names in the key schema must be between 1 and 255 characters (inclusive). The key schema must begin with the same partition key as the table. </li> <li>  <code>Projection</code> - Specifies attributes that are copied (projected) from the table into the index. These are in addition to the primary key attributes and index key attributes, which are automatically projected. Each attribute specification is composed of: <ul> <li>  <code>ProjectionType</code> - One of the following: <ul> <li>  <code>KEYS_ONLY</code> - Only the index and primary keys are projected into the index. </li> <li>  <code>INCLUDE</code> - Only the specified table attributes are projected into the index. The list of projected attributes is in <code>NonKeyAttributes</code>. </li> <li>  <code>ALL</code> - All of the table attributes are projected into the index. </li> </ul> </li> <li>  <code>NonKeyAttributes</code> - A list of one or more non-key attribute names that are projected into the secondary index. The total count of attributes provided in <code>NonKeyAttributes</code>, summed across all of the secondary indexes, must not exceed 20. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total. </li> </ul> </li> <li>  <code>IndexSizeBytes</code> - Represents the total size of the index, in bytes. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value. </li> <li>  <code>ItemCount</code> - Represents the number of items in the index. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value. </li> </ul> If the table is in the <code>DELETING</code> state, no information about indexes will be returned.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BillingModeSummary</i> Contains the details for the read/write capacity mode.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>BillingModeSummary</b>: Contains the details for the read/write capacity mode.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TableId</i> Unique identifier for the table for which the backup was created. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TableArn</i> The Amazon Resource Name (ARN) that uniquely identifies the table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ItemCount</i> The number of items in the specified table. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TableSizeBytes</i> The total size of the specified table, in bytes. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProvisionedThroughput</i> The provisioned throughput settings for the table, consisting of read and write capacity units, along with data about increases and decreases.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ProvisionedThroughput</b>: The provisioned throughput settings for the table, consisting of read and write capacity units, along with data about increases and decreases.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDateTime</i> The date and time when the table was created, in <a href="http://www.epochconverter.com/">UNIX epoch time</a> format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TableStatus</i> The current state of the table: <ul> <li>  <code>CREATING</code> - The table is being created. </li> <li>  <code>UPDATING</code> - The table is being updated. </li> <li>  <code>DELETING</code> - The table is being deleted. </li> <li>  <code>ACTIVE</code> - The table is ready for use. </li> <li>  <code>INACCESSIBLE_ENCRYPTION_CREDENTIALS</code> - The AWS KMS key used to encrypt the table in inaccessible. Table operations may fail due to failure to use the AWS KMS key. DynamoDB will initiate the table archival process when a table's AWS KMS key remains inaccessible for more than seven days.  </li> <li>  <code>ARCHIVING</code> - The table is being archived. Operations are not allowed until archival is complete.  </li> <li>  <code>ARCHIVED</code> - The table has been archived. See the ArchivalReason for more information.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KeySchema</i> The primary key structure for the table. Each <code>KeySchemaElement</code> consists of: <ul> <li>  <code>AttributeName</code> - The name of the attribute. </li> <li>  <code>KeyType</code> - The role of the attribute: <ul> <li>  <code>HASH</code> - partition key </li> <li>  <code>RANGE</code> - sort key </li> </ul> <note> The partition key of an item is also known as its <i>hash attribute</i>. The term "hash attribute" derives from DynamoDB's usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values. The sort key of an item is also known as its <i>range attribute</i>. The term "range attribute" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value. </note> </li> </ul> For more information about primary keys, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataModel.html#DataModelPrimaryKey">Primary Key</a> in the <i>Amazon DynamoDB Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TableName</i> The name of the table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AttributeDefinitions</i> An array of <code>AttributeDefinition</code> objects. Each of these objects describes one attribute in the table and index key schema. Each <code>AttributeDefinition</code> object in this array is composed of: <ul> <li>  <code>AttributeName</code> - The name of the attribute. </li> <li>  <code>AttributeType</code> - The data type for the attribute. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>WriteCapacityUnits</i> The maximum number of writes consumed per second before DynamoDB returns a <code>ThrottlingException</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadCapacityUnits</i> The maximum number of strongly consistent reads consumed per second before DynamoDB returns a <code>ThrottlingException</code>. Eventually consistent reads require less effort than strongly consistent reads, so a setting of 50 <code>ReadCapacityUnits</code> per second provides 100 eventually consistent <code>ReadCapacityUnits</code> per second.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberOfDecreasesToday</i> The number of provisioned throughput decreases for this table during this UTC calendar day. For current maximums on provisioned throughput decreases, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html">Service, Account, and Table Quotas</a> in the <i>Amazon DynamoDB Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LastDecreaseDateTime</i> The date and time of the last provisioned throughput decrease for this table.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LastIncreaseDateTime</i> The date and time of the last provisioned throughput increase for this table.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdateToPayPerRequestDateTime</i> Represents the time when <code>PAY_PER_REQUEST</code> was last set as the read/write capacity mode.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BillingMode</i> Controls how you are charged for read and write throughput and how you manage capacity. This setting can be changed later. <ul> <li>  <code>PROVISIONED</code> - Sets the read/write capacity mode to <code>PROVISIONED</code>. We recommend using <code>PROVISIONED</code> for predictable workloads. </li> <li>  <code>PAY_PER_REQUEST</code> - Sets the read/write capacity mode to <code>PAY_PER_REQUEST</code>. We recommend using <code>PAY_PER_REQUEST</code> for unpredictable workloads.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamViewType</i>  When an item in the table is modified, <code>StreamViewType</code> determines what information is written to the stream for this table. Valid values for <code>StreamViewType</code> are: <ul> <li>  <code>KEYS_ONLY</code> - Only the key attributes of the modified item are written to the stream. </li> <li>  <code>NEW_IMAGE</code> - The entire item, as it appears after it was modified, is written to the stream. </li> <li>  <code>OLD_IMAGE</code> - The entire item, as it appeared before it was modified, is written to the stream. </li> <li>  <code>NEW_AND_OLD_IMAGES</code> - Both the new and the old item images of the item are written to the stream. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamEnabled</i> Indicates whether DynamoDB Streams is enabled (true) or disabled (false) on the table.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RestoreInProgress</i> Indicates if a restore is in progress or not.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RestoreDateTime</i> Point in time or source backup time.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceTableArn</i> The ARN of the source table of the backup that is being restored.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceBackupArn</i> The Amazon Resource Name (ARN) of the backup from which the table was restored.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InaccessibleEncryptionDateTime</i> Indicates the time, in UNIX epoch date format, when DynamoDB detected that the table's AWS KMS key was inaccessible. This attribute will automatically be cleared when DynamoDB detects that the table's AWS KMS key is accessible again. DynamoDB will initiate the table archival process when table's AWS KMS key remains inaccessible for more than seven days from this date.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KMSMasterKeyArn</i> The AWS KMS customer master key (CMK) ARN used for the AWS KMS encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SSEType</i> Server-side encryption type. The only supported value is: <ul> <li>  <code>KMS</code> - Server-side encryption that uses AWS Key Management Service. The key is stored in your account and is managed by AWS KMS (AWS KMS charges apply). </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Represents the current state of server-side encryption. The only supported values are: <ul> <li>  <code>ENABLED</code> - Server-side encryption is enabled. </li> <li>  <code>UPDATING</code> - Server-side encryption is being updated. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ArchivalBackupArn</i> The Amazon Resource Name (ARN) of the backup the table was archived to, when applicable in the archival reason. If you wish to restore this backup to the same table name, you will need to delete the original table.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ArchivalReason</i> The reason DynamoDB archived the table. Currently, the only possible value is: <ul> <li>  <code>INACCESSIBLE_ENCRYPTION_CREDENTIALS</code> - The table was archived due to the table's AWS KMS key being inaccessible for more than seven days. An On-Demand backup was created at the archival time. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ArchivalDateTime</i> The date and time when table archival was initiated by DynamoDB, in UNIX epoch time format.<br/>        """
        pass

    def describe_table_replica_auto_scaling(self, TableName: str) -> DescribeTableReplicaAutoScalingOutput:
        r"""Describes auto scaling settings across replicas of the global table at once. <note> This operation only applies to <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/globaltables.V2.html">Version 2019.11.21</a> of global tables. </note>

        :param self:
        :param TableName:  The name of the table.<br/>
        :return: TableAutoScalingDescription:  Represents the auto scaling properties of the table.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Replicas</i> Represents replicas of the global table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TableStatus</i> The current state of the table: <ul> <li>  <code>CREATING</code> - The table is being created. </li> <li>  <code>UPDATING</code> - The table is being updated. </li> <li>  <code>DELETING</code> - The table is being deleted. </li> <li>  <code>ACTIVE</code> - The table is ready for use. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TableName</i> The name of the table.<br/>        """
        pass

    def describe_time_to_live(self, TableName: str) -> DescribeTimeToLiveOutput:
        r"""Gives a description of the Time to Live (TTL) status on the specified table. 

        :param self:
        :param TableName:  The name of the table to be described.<br/>
        :return: TimeToLiveDescription:  <p/>:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AttributeName</i>  The name of the TTL attribute for items in the table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TimeToLiveStatus</i>  The TTL status for the table.<br/>        """
        pass

    def disable_kinesis_streaming_destination(self, StreamArn: str, TableName: str) -> KinesisStreamingDestinationOutput:
        r"""Stops replication from the DynamoDB table to the Kinesis data stream. This is done without deleting either of the resources.

        :param self:
        :param StreamArn:  The ARN for a Kinesis data stream.<br/>TableName:  The name of the DynamoDB table.<br/>
        :return: DestinationStatus:  The current status of the replication.<br/>StreamArn:  The ARN for the specific Kinesis data stream.<br/>TableName:  The name of the table being modified.<br/>        """
        pass

    def enable_kinesis_streaming_destination(self, StreamArn: str, TableName: str) -> KinesisStreamingDestinationOutput:
        r"""Starts table data replication to the specified Kinesis data stream at a timestamp chosen during the enable workflow. If this operation doesn't return results immediately, use DescribeKinesisStreamingDestination to check if streaming to the Kinesis data stream is ACTIVE.

        :param self:
        :param StreamArn:  The ARN for a Kinesis data stream.<br/>TableName:  The name of the DynamoDB table.<br/>
        :return: DestinationStatus:  The current status of the replication.<br/>StreamArn:  The ARN for the specific Kinesis data stream.<br/>TableName:  The name of the table being modified.<br/>        """
        pass

    def execute_statement(self, Statement: str, Parameters: List[AttributeValue]=None, ConsistentRead: ConsistentRead=None, NextToken: str=None) -> ExecuteStatementOutput:
        r""" This operation allows you to perform reads and singleton writes on data stored in DynamoDB, using PartiQL. 

        :param self:
        :param NextToken:   Set this value to get remaining results, if <code>NextToken</code> was returned in the statement response. <br/>ConsistentRead:   The consistency of a read operation. If set to <code>true</code>, then a strongly consistent read is used; otherwise, an eventually consistent read is used. <br/>Parameters:   The parameters for the PartiQL statement, if any. <br/>Statement:   The PartiQL statement representing the operation to run. <br/>
        :return: NextToken:   If the response of a read request exceeds the response payload limit DynamoDB will set this value in the response. If set, you can use that this value in the subsequent request to get the remaining results. <br/>Items:   If a read operation was used, this property will contain the result of the reade operation; a map of attribute names and their values. For the write operations this value will be empty. <br/>        """
        pass

    def execute_transaction(self, TransactStatements: List[ParameterizedStatement], ClientRequestToken: str=None) -> ExecuteTransactionOutput:
        r""" This operation allows you to perform transactional reads or writes on data stored in DynamoDB, using PartiQL. 

        :param self:
        :param ClientRequestToken:   Set this value to get remaining results, if <code>NextToken</code> was returned in the statement response. <br/>TransactStatements:   The list of PartiQL statements representing the transaction to run. <br/>
        :return: Responses:   The response to a PartiQL transaction. <br/>        """
        pass

    def export_table_to_point_in_time(self, S3Bucket: str, TableArn: str, ExportTime: ExportTime=None, ClientToken: str=None, S3BucketOwner: str=None, S3Prefix: str=None, S3SseAlgorithm: str=None, S3SseKmsKeyId: str=None, ExportFormat: str=None) -> ExportTableToPointInTimeOutput:
        r"""Exports table data to an S3 bucket. The table must have point in time recovery enabled, and you can export data from any time within the point in time recovery window.

        :param self:
        :param ExportFormat:  The format for the exported data. Valid values for <code>ExportFormat</code> are <code>DYNAMODB_JSON</code> or <code>ION</code>.<br/>S3SseKmsKeyId:  The ID of the AWS KMS managed key used to encrypt the S3 bucket where export data will be stored (if applicable).<br/>S3SseAlgorithm:  Type of encryption used on the bucket where export data will be stored. Valid values for <code>S3SseAlgorithm</code> are: <ul> <li>  <code>AES256</code> - server-side encryption with Amazon S3 managed keys </li> <li>  <code>KMS</code> - server-side encryption with AWS KMS managed keys </li> </ul><br/>S3Prefix:  The Amazon S3 bucket prefix to use as the file name and path of the exported snapshot.<br/>S3BucketOwner:  The ID of the AWS account that owns the bucket the export will be stored in.<br/>S3Bucket:  The name of the Amazon S3 bucket to export the snapshot to.<br/>ClientToken:  Providing a <code>ClientToken</code> makes the call to <code>ExportTableToPointInTimeInput</code> idempotent, meaning that multiple identical calls have the same effect as one single call. A client token is valid for 8 hours after the first request that uses it is completed. After 8 hours, any request with the same client token is treated as a new request. Do not resubmit the same request with the same client token for more than 8 hours, or the result might not be idempotent. If you submit a request with the same client token but a change in other parameters within the 8-hour idempotency window, DynamoDB returns an <code>IdempotentParameterMismatch</code> exception.<br/>ExportTime:  Time in the past from which to export table data. The table export will be a snapshot of the table's state at this point in time.<br/>TableArn:  The Amazon Resource Name (ARN) associated with the table to export.<br/>
        :return: ExportDescription:  Contains a description of the table export.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ItemCount</i> The number of items exported.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BilledSizeBytes</i> The billable size of the table export.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExportFormat</i> The format of the exported data. Valid values for <code>ExportFormat</code> are <code>DYNAMODB_JSON</code> or <code>ION</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FailureMessage</i> Export failure reason description.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FailureCode</i> Status code for the result of the failed export.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3SseKmsKeyId</i> The ID of the AWS KMS managed key used to encrypt the S3 bucket where export data is stored (if applicable).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3SseAlgorithm</i> Type of encryption used on the bucket where export data is stored. Valid values for <code>S3SseAlgorithm</code> are: <ul> <li>  <code>AES256</code> - server-side encryption with Amazon S3 managed keys </li> <li>  <code>KMS</code> - server-side encryption with AWS KMS managed keys </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Prefix</i> The Amazon S3 bucket prefix used as the file name and path of the exported snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3BucketOwner</i> The ID of the AWS account that owns the bucket containing the export.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Bucket</i> The name of the Amazon S3 bucket containing the export.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClientToken</i> The client token that was provided for the export task. A client token makes calls to <code>ExportTableToPointInTimeInput</code> idempotent, meaning that multiple identical calls have the same effect as one single call.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExportTime</i> Point in time from which table data was exported.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TableId</i> Unique ID of the table that was exported.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TableArn</i> The Amazon Resource Name (ARN) of the table that was exported.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExportManifest</i> The name of the manifest file for the export task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndTime</i> The time at which the export task completed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StartTime</i> The time at which the export task began.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExportStatus</i> Export can be in one of the following states: IN_PROGRESS, COMPLETED, or FAILED.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExportArn</i> The Amazon Resource Name (ARN) of the table export.<br/>        """
        pass

    def get_item(self, Key: Key, TableName: str, AttributesToGet: List[AttributeName]=None, ConsistentRead: ConsistentRead=None, ReturnConsumedCapacity: str=None, ProjectionExpression: str=None, ExpressionAttributeNames: ExpressionAttributeNameMap=None) -> GetItemOutput:
        r"""The <code>GetItem</code> operation returns a set of attributes for the item with the given primary key. If there is no matching item, <code>GetItem</code> does not return any data and there will be no <code>Item</code> element in the response.  <code>GetItem</code> provides an eventually consistent read by default. If your application requires a strongly consistent read, set <code>ConsistentRead</code> to <code>true</code>. Although a strongly consistent read might take more time than an eventually consistent read, it always returns the last updated value.

        :param self:
        :param ExpressionAttributeNames:  One or more substitution tokens for attribute names in an expression. The following are some use cases for using <code>ExpressionAttributeNames</code>: <ul> <li> To access an attribute whose name conflicts with a DynamoDB reserved word. </li> <li> To create a placeholder for repeating occurrences of an attribute name in an expression. </li> <li> To prevent special characters in an attribute name from being misinterpreted in an expression. </li> </ul> Use the <b>#</b> character in an expression to dereference an attribute name. For example, consider the following attribute name: <ul> <li>  <code>Percentile</code>  </li> </ul> The name of this attribute conflicts with a reserved word, so it cannot be used directly in an expression. (For the complete list of reserved words, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ReservedWords.html">Reserved Words</a> in the <i>Amazon DynamoDB Developer Guide</i>). To work around this, you could specify the following for <code>ExpressionAttributeNames</code>: <ul> <li>  <code>{"#P":"Percentile"}</code>  </li> </ul> You could then use this substitution in an expression, as in this example: <ul> <li>  <code>#P = :val</code>  </li> </ul> <note> Tokens that begin with the <b>:</b> character are <i>expression attribute values</i>, which are placeholders for the actual value at runtime. </note> For more information on expression attribute names, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.AccessingItemAttributes.html">Specifying Item Attributes</a> in the <i>Amazon DynamoDB Developer Guide</i>.<br/>ProjectionExpression:  A string that identifies one or more attributes to retrieve from the table. These attributes can include scalars, sets, or elements of a JSON document. The attributes in the expression must be separated by commas. If no attribute names are specified, then all attributes are returned. If any of the requested attributes are not found, they do not appear in the result. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.AccessingItemAttributes.html">Specifying Item Attributes</a> in the <i>Amazon DynamoDB Developer Guide</i>.<br/>ReturnConsumedCapacity:  Determines the level of detail about provisioned throughput consumption that is returned in the response: <ul> <li>  <code>INDEXES</code> - The response includes the aggregate <code>ConsumedCapacity</code> for the operation, together with <code>ConsumedCapacity</code> for each table and secondary index that was accessed. Note that some operations, such as <code>GetItem</code> and <code>BatchGetItem</code>, do not access any indexes at all. In these cases, specifying <code>INDEXES</code> will only return <code>ConsumedCapacity</code> information for table(s). </li> <li>  <code>TOTAL</code> - The response includes only the aggregate <code>ConsumedCapacity</code> for the operation. </li> <li>  <code>NONE</code> - No <code>ConsumedCapacity</code> details are included in the response. </li> </ul><br/>ConsistentRead:  Determines the read consistency model: If set to <code>true</code>, then the operation uses strongly consistent reads; otherwise, the operation uses eventually consistent reads.<br/>AttributesToGet:  This is a legacy parameter. Use <code>ProjectionExpression</code> instead. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.AttributesToGet.html">AttributesToGet</a> in the <i>Amazon DynamoDB Developer Guide</i>.<br/>Key:  A map of attribute names to <code>AttributeValue</code> objects, representing the primary key of the item to retrieve. For the primary key, you must provide all of the attributes. For example, with a simple primary key, you only need to provide a value for the partition key. For a composite primary key, you must provide values for both the partition key and the sort key.<br/>TableName:  The name of the table containing the requested item.<br/>
        :return: ConsumedCapacity:  The capacity units consumed by the <code>GetItem</code> operation. The data returned includes the total provisioned throughput consumed, along with statistics for the table and any indexes involved in the operation. <code>ConsumedCapacity</code> is only returned if the <code>ReturnConsumedCapacity</code> parameter was specified. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ProvisionedThroughputIntro.html">Read/Write Capacity Mode</a> in the <i>Amazon DynamoDB Developer Guide</i>.:<br/>Item:  A map of attribute names to <code>AttributeValue</code> objects, as specified by <code>ProjectionExpression</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalSecondaryIndexes</i> The amount of throughput consumed on each global index affected by the operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LocalSecondaryIndexes</i> The amount of throughput consumed on each local index affected by the operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Table</i> The amount of throughput consumed on the table affected by the operation.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Table</b>: The amount of throughput consumed on the table affected by the operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WriteCapacityUnits</i> The total number of write capacity units consumed by the operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadCapacityUnits</i> The total number of read capacity units consumed by the operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CapacityUnits</i> The total number of capacity units consumed by the operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TableName</i> The name of the table that was affected by the operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CapacityUnits</i> The total number of capacity units consumed on a table or an index.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>WriteCapacityUnits</i> The total number of write capacity units consumed on a table or an index.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadCapacityUnits</i> The total number of read capacity units consumed on a table or an index.<br/>        """
        pass

    def list_backups(self, TableName: str=None, Limit: int=None, TimeRangeLowerBound: TimeRangeLowerBound=None, TimeRangeUpperBound: TimeRangeUpperBound=None, ExclusiveStartBackupArn: str=None, BackupType: str=None) -> ListBackupsOutput:
        r"""List backups associated with an AWS account. To list backups for a given table, specify <code>TableName</code>. <code>ListBackups</code> returns a paginated list of results with at most 1 MB worth of items in a page. You can also specify a maximum number of entries to be returned in a page.  In the request, start time is inclusive, but end time is exclusive. Note that these boundaries are for the time at which the original backup was requested. You can call <code>ListBackups</code> a maximum of five times per second.

        :param self:
        :param BackupType:  The backups from the table specified by <code>BackupType</code> are listed. Where <code>BackupType</code> can be: <ul> <li>  <code>USER</code> - On-demand backup created by you. </li> <li>  <code>SYSTEM</code> - On-demand backup automatically created by DynamoDB. </li> <li>  <code>ALL</code> - All types of on-demand backups (USER and SYSTEM). </li> </ul><br/>ExclusiveStartBackupArn:   <code>LastEvaluatedBackupArn</code> is the Amazon Resource Name (ARN) of the backup last evaluated when the current page of results was returned, inclusive of the current page of results. This value may be specified as the <code>ExclusiveStartBackupArn</code> of a new <code>ListBackups</code> operation in order to fetch the next page of results. <br/>TimeRangeUpperBound:  Only backups created before this time are listed. <code>TimeRangeUpperBound</code> is exclusive. <br/>TimeRangeLowerBound:  Only backups created after this time are listed. <code>TimeRangeLowerBound</code> is inclusive.<br/>Limit:  Maximum number of backups to return at once.<br/>TableName:  The backups from the table specified by <code>TableName</code> are listed. <br/>
        :return: LastEvaluatedBackupArn:   The ARN of the backup last evaluated when the current page of results was returned, inclusive of the current page of results. This value may be specified as the <code>ExclusiveStartBackupArn</code> of a new <code>ListBackups</code> operation in order to fetch the next page of results.   If <code>LastEvaluatedBackupArn</code> is empty, then the last page of results has been processed and there are no more results to be retrieved.   If <code>LastEvaluatedBackupArn</code> is not empty, this may or may not indicate that there is more data to be returned. All results are guaranteed to have been returned if and only if no value for <code>LastEvaluatedBackupArn</code> is returned. <br/>BackupSummaries:  List of <code>BackupSummary</code> objects.<br/>        """
        pass

    def list_contributor_insights(self, TableName: str=None, NextToken: str=None, MaxResults: int=None) -> ListContributorInsightsOutput:
        r"""Returns a list of ContributorInsightsSummary for a table and all its global secondary indexes.

        :param self:
        :param MaxResults:  Maximum number of results to return per page.<br/>NextToken:  A token to for the desired page, if there is one.<br/>TableName:  The name of the table.<br/>
        :return: NextToken:  A token to go to the next page if there is one.<br/>ContributorInsightsSummaries:  A list of ContributorInsightsSummary.<br/>        """
        pass

    def list_exports(self, TableArn: str=None, MaxResults: int=None, NextToken: str=None) -> ListExportsOutput:
        r"""Lists completed exports within the past 90 days.

        :param self:
        :param NextToken:  An optional string that, if supplied, must be copied from the output of a previous call to <code>ListExports</code>. When provided in this manner, the API fetches the next page of results.<br/>MaxResults:  Maximum number of results to return per page.<br/>TableArn:  The Amazon Resource Name (ARN) associated with the exported table.<br/>
        :return: NextToken:  If this value is returned, there are additional results to be displayed. To retrieve them, call <code>ListExports</code> again, with <code>NextToken</code> set to this value.<br/>ExportSummaries:  A list of <code>ExportSummary</code> objects.<br/>        """
        pass

    def list_global_tables(self, ExclusiveStartGlobalTableName: str=None, Limit: int=None, RegionName: str=None) -> ListGlobalTablesOutput:
        r"""Lists all global tables that have a replica in the specified Region. <note> This operation only applies to <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/globaltables.V1.html">Version 2017.11.29</a> of global tables. </note>

        :param self:
        :param RegionName:  Lists the global tables in a specific Region.<br/>Limit:  The maximum number of table names to return, if the parameter is not specified DynamoDB defaults to 100. If the number of global tables DynamoDB finds reaches this limit, it stops the operation and returns the table names collected up to that point, with a table name in the <code>LastEvaluatedGlobalTableName</code> to apply in a subsequent operation to the <code>ExclusiveStartGlobalTableName</code> parameter.<br/>ExclusiveStartGlobalTableName:  The first global table name that this operation will evaluate.<br/>
        :return: LastEvaluatedGlobalTableName:  Last evaluated global table name.<br/>GlobalTables:  List of global table names.<br/>        """
        pass

    def list_tables(self, ExclusiveStartTableName: str=None, Limit: int=None) -> ListTablesOutput:
        r"""Returns an array of table names associated with the current account and endpoint. The output from <code>ListTables</code> is paginated, with each page returning a maximum of 100 table names.

        :param self:
        :param Limit:  A maximum number of table names to return. If this parameter is not specified, the limit is 100.<br/>ExclusiveStartTableName:  The first table name that this operation will evaluate. Use the value that was returned for <code>LastEvaluatedTableName</code> in a previous operation, so that you can obtain the next page of results.<br/>
        :return: LastEvaluatedTableName:  The name of the last table in the current page of results. Use this value as the <code>ExclusiveStartTableName</code> in a new request to obtain the next page of results, until all the table names are returned. If you do not receive a <code>LastEvaluatedTableName</code> value in the response, this means that there are no more table names to be retrieved.<br/>TableNames:  The names of the tables associated with the current account at the current endpoint. The maximum size of this array is 100. If <code>LastEvaluatedTableName</code> also appears in the output, you can use this value as the <code>ExclusiveStartTableName</code> parameter in a subsequent <code>ListTables</code> request and obtain the next page of results.<br/>        """
        pass

    def list_tags_of_resource(self, ResourceArn: str, NextToken: str=None) -> ListTagsOfResourceOutput:
        r"""List all tags on an Amazon DynamoDB resource. You can call ListTagsOfResource up to 10 times per second, per account. For an overview on tagging DynamoDB resources, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Tagging.html">Tagging for DynamoDB</a> in the <i>Amazon DynamoDB Developer Guide</i>.

        :param self:
        :param NextToken:  An optional string that, if supplied, must be copied from the output of a previous call to ListTagOfResource. When provided in this manner, this API fetches the next page of results.<br/>ResourceArn:  The Amazon DynamoDB resource with tags to be listed. This value is an Amazon Resource Name (ARN).<br/>
        :return: NextToken:  If this value is returned, there are additional results to be displayed. To retrieve them, call ListTagsOfResource again, with NextToken set to this value.<br/>Tags:  The tags currently associated with the Amazon DynamoDB resource.<br/>        """
        pass

    def put_item(self, Item: PutItemInputAttributeMap, TableName: str, Expected: ExpectedAttributeMap=None, ReturnValues: str=None, ReturnConsumedCapacity: str=None, ReturnItemCollectionMetrics: str=None, ConditionalOperator: str=None, ConditionExpression: str=None, ExpressionAttributeNames: ExpressionAttributeNameMap=None, ExpressionAttributeValues: ExpressionAttributeValueMap=None) -> PutItemOutput:
        r"""Creates a new item, or replaces an old item with a new item. If an item that has the same primary key as the new item already exists in the specified table, the new item completely replaces the existing item. You can perform a conditional put operation (add a new item if one with the specified primary key doesn't exist), or replace an existing item if it has certain attribute values. You can return the item's attribute values in the same operation, using the <code>ReturnValues</code> parameter. <important> This topic provides general information about the <code>PutItem</code> API. For information on how to call the <code>PutItem</code> API using the AWS SDK in specific languages, see the following: <ul> <li>  <a href="http://docs.aws.amazon.com/goto/aws-cli/dynamodb-2012-08-10/PutItem"> PutItem in the AWS Command Line Interface</a>  </li> <li>  <a href="http://docs.aws.amazon.com/goto/DotNetSDKV3/dynamodb-2012-08-10/PutItem"> PutItem in the AWS SDK for .NET</a>  </li> <li>  <a href="http://docs.aws.amazon.com/goto/SdkForCpp/dynamodb-2012-08-10/PutItem"> PutItem in the AWS SDK for C++</a>  </li> <li>  <a href="http://docs.aws.amazon.com/goto/SdkForGoV1/dynamodb-2012-08-10/PutItem"> PutItem in the AWS SDK for Go</a>  </li> <li>  <a href="http://docs.aws.amazon.com/goto/SdkForJava/dynamodb-2012-08-10/PutItem"> PutItem in the AWS SDK for Java</a>  </li> <li>  <a href="http://docs.aws.amazon.com/goto/AWSJavaScriptSDK/dynamodb-2012-08-10/PutItem"> PutItem in the AWS SDK for JavaScript</a>  </li> <li>  <a href="http://docs.aws.amazon.com/goto/SdkForPHPV3/dynamodb-2012-08-10/PutItem"> PutItem in the AWS SDK for PHP V3</a>  </li> <li>  <a href="http://docs.aws.amazon.com/goto/boto3/dynamodb-2012-08-10/PutItem"> PutItem in the AWS SDK for Python</a>  </li> <li>  <a href="http://docs.aws.amazon.com/goto/SdkForRubyV2/dynamodb-2012-08-10/PutItem"> PutItem in the AWS SDK for Ruby V2</a>  </li> </ul> </important> When you add an item, the primary key attributes are the only required attributes. Attribute values cannot be null. Empty String and Binary attribute values are allowed. Attribute values of type String and Binary must have a length greater than zero if the attribute is used as a key attribute for a table or index. Set type attributes cannot be empty.  Invalid Requests with empty values will be rejected with a <code>ValidationException</code> exception. <note> To prevent a new item from replacing an existing item, use a conditional expression that contains the <code>attribute_not_exists</code> function with the name of the attribute being used as the partition key for the table. Since every record must contain that attribute, the <code>attribute_not_exists</code> function will only succeed if no matching item exists. </note> For more information about <code>PutItem</code>, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithItems.html">Working with Items</a> in the <i>Amazon DynamoDB Developer Guide</i>.

        :param self:
        :param ExpressionAttributeValues:  One or more values that can be substituted in an expression. Use the <b>:</b> (colon) character in an expression to dereference an attribute value. For example, suppose that you wanted to check whether the value of the <i>ProductStatus</i> attribute was one of the following:   <code>Available | Backordered | Discontinued</code>  You would first need to specify <code>ExpressionAttributeValues</code> as follows:  <code>{ ":avail":{"S":"Available"}, ":back":{"S":"Backordered"}, ":disc":{"S":"Discontinued"} }</code>  You could then use these values in an expression, such as this:  <code>ProductStatus IN (:avail, :back, :disc)</code>  For more information on expression attribute values, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.SpecifyingConditions.html">Condition Expressions</a> in the <i>Amazon DynamoDB Developer Guide</i>.<br/>ExpressionAttributeNames:  One or more substitution tokens for attribute names in an expression. The following are some use cases for using <code>ExpressionAttributeNames</code>: <ul> <li> To access an attribute whose name conflicts with a DynamoDB reserved word. </li> <li> To create a placeholder for repeating occurrences of an attribute name in an expression. </li> <li> To prevent special characters in an attribute name from being misinterpreted in an expression. </li> </ul> Use the <b>#</b> character in an expression to dereference an attribute name. For example, consider the following attribute name: <ul> <li>  <code>Percentile</code>  </li> </ul> The name of this attribute conflicts with a reserved word, so it cannot be used directly in an expression. (For the complete list of reserved words, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ReservedWords.html">Reserved Words</a> in the <i>Amazon DynamoDB Developer Guide</i>). To work around this, you could specify the following for <code>ExpressionAttributeNames</code>: <ul> <li>  <code>{"#P":"Percentile"}</code>  </li> </ul> You could then use this substitution in an expression, as in this example: <ul> <li>  <code>#P = :val</code>  </li> </ul> <note> Tokens that begin with the <b>:</b> character are <i>expression attribute values</i>, which are placeholders for the actual value at runtime. </note> For more information on expression attribute names, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.AccessingItemAttributes.html">Specifying Item Attributes</a> in the <i>Amazon DynamoDB Developer Guide</i>.<br/>ConditionExpression:  A condition that must be satisfied in order for a conditional <code>PutItem</code> operation to succeed. An expression can contain any of the following: <ul> <li> Functions: <code>attribute_exists | attribute_not_exists | attribute_type | contains | begins_with | size</code>  These function names are case-sensitive. </li> <li> Comparison operators: <code>= | &lt;&gt; | &lt; | &gt; | &lt;= | &gt;= | BETWEEN | IN </code>  </li> <li>  Logical operators: <code>AND | OR | NOT</code>  </li> </ul> For more information on condition expressions, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.SpecifyingConditions.html">Condition Expressions</a> in the <i>Amazon DynamoDB Developer Guide</i>.<br/>ConditionalOperator:  This is a legacy parameter. Use <code>ConditionExpression</code> instead. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.ConditionalOperator.html">ConditionalOperator</a> in the <i>Amazon DynamoDB Developer Guide</i>.<br/>ReturnItemCollectionMetrics:  Determines whether item collection metrics are returned. If set to <code>SIZE</code>, the response includes statistics about item collections, if any, that were modified during the operation are returned in the response. If set to <code>NONE</code> (the default), no statistics are returned.<br/>ReturnConsumedCapacity:  Determines the level of detail about provisioned throughput consumption that is returned in the response: <ul> <li>  <code>INDEXES</code> - The response includes the aggregate <code>ConsumedCapacity</code> for the operation, together with <code>ConsumedCapacity</code> for each table and secondary index that was accessed. Note that some operations, such as <code>GetItem</code> and <code>BatchGetItem</code>, do not access any indexes at all. In these cases, specifying <code>INDEXES</code> will only return <code>ConsumedCapacity</code> information for table(s). </li> <li>  <code>TOTAL</code> - The response includes only the aggregate <code>ConsumedCapacity</code> for the operation. </li> <li>  <code>NONE</code> - No <code>ConsumedCapacity</code> details are included in the response. </li> </ul><br/>ReturnValues:  Use <code>ReturnValues</code> if you want to get the item attributes as they appeared before they were updated with the <code>PutItem</code> request. For <code>PutItem</code>, the valid values are: <ul> <li>  <code>NONE</code> - If <code>ReturnValues</code> is not specified, or if its value is <code>NONE</code>, then nothing is returned. (This setting is the default for <code>ReturnValues</code>.) </li> <li>  <code>ALL_OLD</code> - If <code>PutItem</code> overwrote an attribute name-value pair, then the content of the old item is returned. </li> </ul> <note> The <code>ReturnValues</code> parameter is used by several DynamoDB operations; however, <code>PutItem</code> does not recognize any values other than <code>NONE</code> or <code>ALL_OLD</code>. </note><br/>Expected:  This is a legacy parameter. Use <code>ConditionExpression</code> instead. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.Expected.html">Expected</a> in the <i>Amazon DynamoDB Developer Guide</i>.<br/>Item:  A map of attribute name/value pairs, one for each attribute. Only the primary key attributes are required; you can optionally provide other attribute name-value pairs for the item. You must provide all of the attributes for the primary key. For example, with a simple primary key, you only need to provide a value for the partition key. For a composite primary key, you must provide both values for both the partition key and the sort key. If you specify any attributes that are part of an index key, then the data types for those attributes must match those of the schema in the table's attribute definition. Empty String and Binary attribute values are allowed. Attribute values of type String and Binary must have a length greater than zero if the attribute is used as a key attribute for a table or index. For more information about primary keys, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.CoreComponents.html#HowItWorks.CoreComponents.PrimaryKey">Primary Key</a> in the <i>Amazon DynamoDB Developer Guide</i>. Each element in the <code>Item</code> map is an <code>AttributeValue</code> object.<br/>TableName:  The name of the table to contain the item.<br/>
        :return: ItemCollectionMetrics:  Information about item collections, if any, that were affected by the <code>PutItem</code> operation. <code>ItemCollectionMetrics</code> is only returned if the <code>ReturnItemCollectionMetrics</code> parameter was specified. If the table does not have any local secondary indexes, this information is not returned in the response. Each <code>ItemCollectionMetrics</code> element consists of: <ul> <li>  <code>ItemCollectionKey</code> - The partition key value of the item collection. This is the same as the partition key value of the item itself. </li> <li>  <code>SizeEstimateRangeGB</code> - An estimate of item collection size, in gigabytes. This value is a two-element array containing a lower bound and an upper bound for the estimate. The estimate includes the size of all the items in the table, plus the size of all attributes projected into all of the local secondary indexes on that table. Use this estimate to measure whether a local secondary index is approaching its size limit. The estimate is subject to change over time; therefore, do not rely on the precision or accuracy of the estimate. </li> </ul>:<br/>ConsumedCapacity:  The capacity units consumed by the <code>PutItem</code> operation. The data returned includes the total provisioned throughput consumed, along with statistics for the table and any indexes involved in the operation. <code>ConsumedCapacity</code> is only returned if the <code>ReturnConsumedCapacity</code> parameter was specified. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ProvisionedThroughputIntro.html">Read/Write Capacity Mode</a> in the <i>Amazon DynamoDB Developer Guide</i>.:<br/>Attributes:  The attribute values as they appeared before the <code>PutItem</code> operation, but only if <code>ReturnValues</code> is specified as <code>ALL_OLD</code> in the request. Each element consists of an attribute name and an attribute value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalSecondaryIndexes</i> The amount of throughput consumed on each global index affected by the operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LocalSecondaryIndexes</i> The amount of throughput consumed on each local index affected by the operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Table</i> The amount of throughput consumed on the table affected by the operation.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Table</b>: The amount of throughput consumed on the table affected by the operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WriteCapacityUnits</i> The total number of write capacity units consumed by the operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadCapacityUnits</i> The total number of read capacity units consumed by the operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CapacityUnits</i> The total number of capacity units consumed by the operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TableName</i> The name of the table that was affected by the operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CapacityUnits</i> The total number of capacity units consumed on a table or an index.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>WriteCapacityUnits</i> The total number of write capacity units consumed on a table or an index.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadCapacityUnits</i> The total number of read capacity units consumed on a table or an index.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SizeEstimateRangeGB</i> An estimate of item collection size, in gigabytes. This value is a two-element array containing a lower bound and an upper bound for the estimate. The estimate includes the size of all the items in the table, plus the size of all attributes projected into all of the local secondary indexes on that table. Use this estimate to measure whether a local secondary index is approaching its size limit. The estimate is subject to change over time; therefore, do not rely on the precision or accuracy of the estimate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ItemCollectionKey</i> The partition key value of the item collection. This value is the same as the partition key value of the item.<br/>        """
        pass

    def query(self, TableName: str, IndexName: str=None, Select: str=None, AttributesToGet: List[AttributeName]=None, Limit: int=None, ConsistentRead: ConsistentRead=None, KeyConditions: KeyConditions=None, QueryFilter: FilterConditionMap=None, ConditionalOperator: str=None, ScanIndexForward: BooleanObject=None, ExclusiveStartKey: Key=None, ReturnConsumedCapacity: str=None, ProjectionExpression: str=None, FilterExpression: str=None, KeyConditionExpression: str=None, ExpressionAttributeNames: ExpressionAttributeNameMap=None, ExpressionAttributeValues: ExpressionAttributeValueMap=None) -> QueryOutput:
        r"""The <code>Query</code> operation finds items based on primary key values. You can query any table or secondary index that has a composite primary key (a partition key and a sort key).  Use the <code>KeyConditionExpression</code> parameter to provide a specific value for the partition key. The <code>Query</code> operation will return all of the items from the table or index with that partition key value. You can optionally narrow the scope of the <code>Query</code> operation by specifying a sort key value and a comparison operator in <code>KeyConditionExpression</code>. To further refine the <code>Query</code> results, you can optionally provide a <code>FilterExpression</code>. A <code>FilterExpression</code> determines which items within the results should be returned to you. All of the other results are discarded.   A <code>Query</code> operation always returns a result set. If no matching items are found, the result set will be empty. Queries that do not return results consume the minimum number of read capacity units for that type of read operation.  <note>  DynamoDB calculates the number of read capacity units consumed based on item size, not on the amount of data that is returned to an application. The number of capacity units consumed will be the same whether you request all of the attributes (the default behavior) or just some of them (using a projection expression). The number will also be the same whether or not you use a <code>FilterExpression</code>.  </note>  <code>Query</code> results are always sorted by the sort key value. If the data type of the sort key is Number, the results are returned in numeric order; otherwise, the results are returned in order of UTF-8 bytes. By default, the sort order is ascending. To reverse the order, set the <code>ScanIndexForward</code> parameter to false.   A single <code>Query</code> operation will read up to the maximum number of items set (if using the <code>Limit</code> parameter) or a maximum of 1 MB of data and then apply any filtering to the results using <code>FilterExpression</code>. If <code>LastEvaluatedKey</code> is present in the response, you will need to paginate the result set. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Query.html#Query.Pagination">Paginating the Results</a> in the <i>Amazon DynamoDB Developer Guide</i>.   <code>FilterExpression</code> is applied after a <code>Query</code> finishes, but before the results are returned. A <code>FilterExpression</code> cannot contain partition key or sort key attributes. You need to specify those attributes in the <code>KeyConditionExpression</code>.  <note>  A <code>Query</code> operation can return an empty result set and a <code>LastEvaluatedKey</code> if all the items read for the page of results are filtered out.  </note> You can query a table, a local secondary index, or a global secondary index. For a query on a table or on a local secondary index, you can set the <code>ConsistentRead</code> parameter to <code>true</code> and obtain a strongly consistent result. Global secondary indexes support eventually consistent reads only, so do not specify <code>ConsistentRead</code> when querying a global secondary index.

        :param self:
        :param ExpressionAttributeValues:  One or more values that can be substituted in an expression. Use the <b>:</b> (colon) character in an expression to dereference an attribute value. For example, suppose that you wanted to check whether the value of the <i>ProductStatus</i> attribute was one of the following:   <code>Available | Backordered | Discontinued</code>  You would first need to specify <code>ExpressionAttributeValues</code> as follows:  <code>{ ":avail":{"S":"Available"}, ":back":{"S":"Backordered"}, ":disc":{"S":"Discontinued"} }</code>  You could then use these values in an expression, such as this:  <code>ProductStatus IN (:avail, :back, :disc)</code>  For more information on expression attribute values, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.SpecifyingConditions.html">Specifying Conditions</a> in the <i>Amazon DynamoDB Developer Guide</i>.<br/>ExpressionAttributeNames:  One or more substitution tokens for attribute names in an expression. The following are some use cases for using <code>ExpressionAttributeNames</code>: <ul> <li> To access an attribute whose name conflicts with a DynamoDB reserved word. </li> <li> To create a placeholder for repeating occurrences of an attribute name in an expression. </li> <li> To prevent special characters in an attribute name from being misinterpreted in an expression. </li> </ul> Use the <b>#</b> character in an expression to dereference an attribute name. For example, consider the following attribute name: <ul> <li>  <code>Percentile</code>  </li> </ul> The name of this attribute conflicts with a reserved word, so it cannot be used directly in an expression. (For the complete list of reserved words, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ReservedWords.html">Reserved Words</a> in the <i>Amazon DynamoDB Developer Guide</i>). To work around this, you could specify the following for <code>ExpressionAttributeNames</code>: <ul> <li>  <code>{"#P":"Percentile"}</code>  </li> </ul> You could then use this substitution in an expression, as in this example: <ul> <li>  <code>#P = :val</code>  </li> </ul> <note> Tokens that begin with the <b>:</b> character are <i>expression attribute values</i>, which are placeholders for the actual value at runtime. </note> For more information on expression attribute names, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.AccessingItemAttributes.html">Specifying Item Attributes</a> in the <i>Amazon DynamoDB Developer Guide</i>.<br/>KeyConditionExpression:  The condition that specifies the key values for items to be retrieved by the <code>Query</code> action. The condition must perform an equality test on a single partition key value. The condition can optionally perform one of several comparison tests on a single sort key value. This allows <code>Query</code> to retrieve one item with a given partition key value and sort key value, or several items that have the same partition key value but different sort key values. The partition key equality test is required, and must be specified in the following format:  <code>partitionKeyName</code> <i>=</i> <code>:partitionkeyval</code>  If you also want to provide a condition for the sort key, it must be combined using <code>AND</code> with the condition for the sort key. Following is an example, using the <b>=</b> comparison operator for the sort key:  <code>partitionKeyName</code> <code>=</code> <code>:partitionkeyval</code> <code>AND</code> <code>sortKeyName</code> <code>=</code> <code>:sortkeyval</code>  Valid comparisons for the sort key condition are as follows: <ul> <li>  <code>sortKeyName</code> <code>=</code> <code>:sortkeyval</code> - true if the sort key value is equal to <code>:sortkeyval</code>. </li> <li>  <code>sortKeyName</code> <code>&lt;</code> <code>:sortkeyval</code> - true if the sort key value is less than <code>:sortkeyval</code>. </li> <li>  <code>sortKeyName</code> <code>&lt;=</code> <code>:sortkeyval</code> - true if the sort key value is less than or equal to <code>:sortkeyval</code>. </li> <li>  <code>sortKeyName</code> <code>&gt;</code> <code>:sortkeyval</code> - true if the sort key value is greater than <code>:sortkeyval</code>. </li> <li>  <code>sortKeyName</code> <code>&gt;= </code> <code>:sortkeyval</code> - true if the sort key value is greater than or equal to <code>:sortkeyval</code>. </li> <li>  <code>sortKeyName</code> <code>BETWEEN</code> <code>:sortkeyval1</code> <code>AND</code> <code>:sortkeyval2</code> - true if the sort key value is greater than or equal to <code>:sortkeyval1</code>, and less than or equal to <code>:sortkeyval2</code>. </li> <li>  <code>begins_with (</code> <code>sortKeyName</code>, <code>:sortkeyval</code> <code>)</code> - true if the sort key value begins with a particular operand. (You cannot use this function with a sort key that is of type Number.) Note that the function name <code>begins_with</code> is case-sensitive. </li> </ul> Use the <code>ExpressionAttributeValues</code> parameter to replace tokens such as <code>:partitionval</code> and <code>:sortval</code> with actual values at runtime. You can optionally use the <code>ExpressionAttributeNames</code> parameter to replace the names of the partition key and sort key with placeholder tokens. This option might be necessary if an attribute name conflicts with a DynamoDB reserved word. For example, the following <code>KeyConditionExpression</code> parameter causes an error because <i>Size</i> is a reserved word: <ul> <li>  <code>Size = :myval</code>  </li> </ul> To work around this, define a placeholder (such a <code>#S</code>) to represent the attribute name <i>Size</i>. <code>KeyConditionExpression</code> then is as follows: <ul> <li>  <code>#S = :myval</code>  </li> </ul> For a list of reserved words, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ReservedWords.html">Reserved Words</a> in the <i>Amazon DynamoDB Developer Guide</i>. For more information on <code>ExpressionAttributeNames</code> and <code>ExpressionAttributeValues</code>, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ExpressionPlaceholders.html">Using Placeholders for Attribute Names and Values</a> in the <i>Amazon DynamoDB Developer Guide</i>.<br/>FilterExpression:  A string that contains conditions that DynamoDB applies after the <code>Query</code> operation, but before the data is returned to you. Items that do not satisfy the <code>FilterExpression</code> criteria are not returned. A <code>FilterExpression</code> does not allow key attributes. You cannot define a filter expression based on a partition key or a sort key. <note> A <code>FilterExpression</code> is applied after the items have already been read; the process of filtering does not consume any additional read capacity units. </note> For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/QueryAndScan.html#FilteringResults">Filter Expressions</a> in the <i>Amazon DynamoDB Developer Guide</i>.<br/>ProjectionExpression:  A string that identifies one or more attributes to retrieve from the table. These attributes can include scalars, sets, or elements of a JSON document. The attributes in the expression must be separated by commas. If no attribute names are specified, then all attributes will be returned. If any of the requested attributes are not found, they will not appear in the result. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.AccessingItemAttributes.html">Accessing Item Attributes</a> in the <i>Amazon DynamoDB Developer Guide</i>.<br/>ReturnConsumedCapacity:  Determines the level of detail about provisioned throughput consumption that is returned in the response: <ul> <li>  <code>INDEXES</code> - The response includes the aggregate <code>ConsumedCapacity</code> for the operation, together with <code>ConsumedCapacity</code> for each table and secondary index that was accessed. Note that some operations, such as <code>GetItem</code> and <code>BatchGetItem</code>, do not access any indexes at all. In these cases, specifying <code>INDEXES</code> will only return <code>ConsumedCapacity</code> information for table(s). </li> <li>  <code>TOTAL</code> - The response includes only the aggregate <code>ConsumedCapacity</code> for the operation. </li> <li>  <code>NONE</code> - No <code>ConsumedCapacity</code> details are included in the response. </li> </ul><br/>ExclusiveStartKey:  The primary key of the first item that this operation will evaluate. Use the value that was returned for <code>LastEvaluatedKey</code> in the previous operation. The data type for <code>ExclusiveStartKey</code> must be String, Number, or Binary. No set data types are allowed.<br/>ScanIndexForward:  Specifies the order for index traversal: If <code>true</code> (default), the traversal is performed in ascending order; if <code>false</code>, the traversal is performed in descending order.  Items with the same partition key value are stored in sorted order by sort key. If the sort key data type is Number, the results are stored in numeric order. For type String, the results are stored in order of UTF-8 bytes. For type Binary, DynamoDB treats each byte of the binary data as unsigned. If <code>ScanIndexForward</code> is <code>true</code>, DynamoDB returns the results in the order in which they are stored (by sort key value). This is the default behavior. If <code>ScanIndexForward</code> is <code>false</code>, DynamoDB reads the results in reverse order by sort key value, and then returns the results to the client.<br/>ConditionalOperator:  This is a legacy parameter. Use <code>FilterExpression</code> instead. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.ConditionalOperator.html">ConditionalOperator</a> in the <i>Amazon DynamoDB Developer Guide</i>.<br/>QueryFilter:  This is a legacy parameter. Use <code>FilterExpression</code> instead. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.QueryFilter.html">QueryFilter</a> in the <i>Amazon DynamoDB Developer Guide</i>.<br/>KeyConditions:  This is a legacy parameter. Use <code>KeyConditionExpression</code> instead. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.KeyConditions.html">KeyConditions</a> in the <i>Amazon DynamoDB Developer Guide</i>.<br/>ConsistentRead:  Determines the read consistency model: If set to <code>true</code>, then the operation uses strongly consistent reads; otherwise, the operation uses eventually consistent reads. Strongly consistent reads are not supported on global secondary indexes. If you query a global secondary index with <code>ConsistentRead</code> set to <code>true</code>, you will receive a <code>ValidationException</code>.<br/>Limit:  The maximum number of items to evaluate (not necessarily the number of matching items). If DynamoDB processes the number of items up to the limit while processing the results, it stops the operation and returns the matching values up to that point, and a key in <code>LastEvaluatedKey</code> to apply in a subsequent operation, so that you can pick up where you left off. Also, if the processed dataset size exceeds 1 MB before DynamoDB reaches this limit, it stops the operation and returns the matching values up to the limit, and a key in <code>LastEvaluatedKey</code> to apply in a subsequent operation to continue the operation. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/QueryAndScan.html">Query and Scan</a> in the <i>Amazon DynamoDB Developer Guide</i>.<br/>AttributesToGet:  This is a legacy parameter. Use <code>ProjectionExpression</code> instead. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.AttributesToGet.html">AttributesToGet</a> in the <i>Amazon DynamoDB Developer Guide</i>.<br/>Select:  The attributes to be returned in the result. You can retrieve all item attributes, specific item attributes, the count of matching items, or in the case of an index, some or all of the attributes projected into the index. <ul> <li>  <code>ALL_ATTRIBUTES</code> - Returns all of the item attributes from the specified table or index. If you query a local secondary index, then for each matching item in the index, DynamoDB fetches the entire item from the parent table. If the index is configured to project all item attributes, then all of the data can be obtained from the local secondary index, and no fetching is required. </li> <li>  <code>ALL_PROJECTED_ATTRIBUTES</code> - Allowed only when querying an index. Retrieves all attributes that have been projected into the index. If the index is configured to project all attributes, this return value is equivalent to specifying <code>ALL_ATTRIBUTES</code>. </li> <li>  <code>COUNT</code> - Returns the number of matching items, rather than the matching items themselves. </li> <li>  <code>SPECIFIC_ATTRIBUTES</code> - Returns only the attributes listed in <code>AttributesToGet</code>. This return value is equivalent to specifying <code>AttributesToGet</code> without specifying any value for <code>Select</code>. If you query or scan a local secondary index and request only attributes that are projected into that index, the operation will read only the index and not the table. If any of the requested attributes are not projected into the local secondary index, DynamoDB fetches each of these attributes from the parent table. This extra fetching incurs additional throughput cost and latency. If you query or scan a global secondary index, you can only request attributes that are projected into the index. Global secondary index queries cannot fetch attributes from the parent table. </li> </ul> If neither <code>Select</code> nor <code>AttributesToGet</code> are specified, DynamoDB defaults to <code>ALL_ATTRIBUTES</code> when accessing a table, and <code>ALL_PROJECTED_ATTRIBUTES</code> when accessing an index. You cannot use both <code>Select</code> and <code>AttributesToGet</code> together in a single request, unless the value for <code>Select</code> is <code>SPECIFIC_ATTRIBUTES</code>. (This usage is equivalent to specifying <code>AttributesToGet</code> without any value for <code>Select</code>.) <note> If you use the <code>ProjectionExpression</code> parameter, then the value for <code>Select</code> can only be <code>SPECIFIC_ATTRIBUTES</code>. Any other value for <code>Select</code> will return an error. </note><br/>IndexName:  The name of an index to query. This index can be any local secondary index or global secondary index on the table. Note that if you use the <code>IndexName</code> parameter, you must also provide <code>TableName.</code> <br/>TableName:  The name of the table containing the requested items.<br/>
        :return: ConsumedCapacity:  The capacity units consumed by the <code>Query</code> operation. The data returned includes the total provisioned throughput consumed, along with statistics for the table and any indexes involved in the operation. <code>ConsumedCapacity</code> is only returned if the <code>ReturnConsumedCapacity</code> parameter was specified. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ProvisionedThroughputIntro.html">Provisioned Throughput</a> in the <i>Amazon DynamoDB Developer Guide</i>.:<br/>LastEvaluatedKey:  The primary key of the item where the operation stopped, inclusive of the previous result set. Use this value to start a new operation, excluding this value in the new request. If <code>LastEvaluatedKey</code> is empty, then the "last page" of results has been processed and there is no more data to be retrieved. If <code>LastEvaluatedKey</code> is not empty, it does not necessarily mean that there is more data in the result set. The only way to know when you have reached the end of the result set is when <code>LastEvaluatedKey</code> is empty.<br/>ScannedCount:  The number of items evaluated, before any <code>QueryFilter</code> is applied. A high <code>ScannedCount</code> value with few, or no, <code>Count</code> results indicates an inefficient <code>Query</code> operation. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/QueryAndScan.html#Count">Count and ScannedCount</a> in the <i>Amazon DynamoDB Developer Guide</i>. If you did not use a filter in the request, then <code>ScannedCount</code> is the same as <code>Count</code>.<br/>Count:  The number of items in the response. If you used a <code>QueryFilter</code> in the request, then <code>Count</code> is the number of items returned after the filter was applied, and <code>ScannedCount</code> is the number of matching items before the filter was applied. If you did not use a filter in the request, then <code>Count</code> and <code>ScannedCount</code> are the same.<br/>Items:  An array of item attributes that match the query criteria. Each element in this array consists of an attribute name and the value for that attribute.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalSecondaryIndexes</i> The amount of throughput consumed on each global index affected by the operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LocalSecondaryIndexes</i> The amount of throughput consumed on each local index affected by the operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Table</i> The amount of throughput consumed on the table affected by the operation.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Table</b>: The amount of throughput consumed on the table affected by the operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WriteCapacityUnits</i> The total number of write capacity units consumed by the operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadCapacityUnits</i> The total number of read capacity units consumed by the operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CapacityUnits</i> The total number of capacity units consumed by the operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TableName</i> The name of the table that was affected by the operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CapacityUnits</i> The total number of capacity units consumed on a table or an index.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>WriteCapacityUnits</i> The total number of write capacity units consumed on a table or an index.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadCapacityUnits</i> The total number of read capacity units consumed on a table or an index.<br/>        """
        pass

    def restore_table_from_backup(self, BackupArn: str, TargetTableName: str, BillingModeOverride: str=None, GlobalSecondaryIndexOverride: List[GlobalSecondaryIndex]=None, LocalSecondaryIndexOverride: List[LocalSecondaryIndex]=None, ProvisionedThroughputOverride: ProvisionedThroughput=None, SSESpecificationOverride: SSESpecification=None) -> RestoreTableFromBackupOutput:
        r"""Creates a new table from an existing backup. Any number of users can execute up to 4 concurrent restores (any type of restore) in a given account.  You can call <code>RestoreTableFromBackup</code> at a maximum rate of 10 times per second. You must manually set up the following on the restored table: <ul> <li> Auto scaling policies </li> <li> IAM policies </li> <li> Amazon CloudWatch metrics and alarms </li> <li> Tags </li> <li> Stream settings </li> <li> Time to Live (TTL) settings </li> </ul>

        :param self:
        :param SSESpecificationOverride:  The new server-side encryption settings for the restored table.:<br/>ProvisionedThroughputOverride:  Provisioned throughput settings for the restored table.:<br/>LocalSecondaryIndexOverride:  List of local secondary indexes for the restored table. The indexes provided should match existing secondary indexes. You can choose to exclude some or all of the indexes at the time of restore.<br/>GlobalSecondaryIndexOverride:  List of global secondary indexes for the restored table. The indexes provided should match existing secondary indexes. You can choose to exclude some or all of the indexes at the time of restore.<br/>BillingModeOverride:  The billing mode of the restored table.<br/>BackupArn:  The Amazon Resource Name (ARN) associated with the backup.<br/>TargetTableName:  The name of the new table to which the backup must be restored.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WriteCapacityUnits</i> The maximum number of writes consumed per second before DynamoDB returns a <code>ThrottlingException</code>. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithTables.html#ProvisionedThroughput">Specifying Read and Write Requirements</a> in the <i>Amazon DynamoDB Developer Guide</i>. If read/write capacity mode is <code>PAY_PER_REQUEST</code> the value is set to 0.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadCapacityUnits</i> The maximum number of strongly consistent reads consumed per second before DynamoDB returns a <code>ThrottlingException</code>. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithTables.html#ProvisionedThroughput">Specifying Read and Write Requirements</a> in the <i>Amazon DynamoDB Developer Guide</i>. If read/write capacity mode is <code>PAY_PER_REQUEST</code> the value is set to 0.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KMSMasterKeyId</i> The AWS KMS customer master key (CMK) that should be used for the AWS KMS encryption. To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias name, or alias ARN. Note that you should only provide this parameter if the key is different from the default DynamoDB customer master key alias/aws/dynamodb.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SSEType</i> Server-side encryption type. The only supported value is: <ul> <li>  <code>KMS</code> - Server-side encryption that uses AWS Key Management Service. The key is stored in your account and is managed by AWS KMS (AWS KMS charges apply). </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Indicates whether server-side encryption is done using an AWS managed CMK or an AWS owned CMK. If enabled (true), server-side encryption type is set to <code>KMS</code> and an AWS managed CMK is used (AWS KMS charges apply). If disabled (false) or not specified, server-side encryption is set to AWS owned CMK.<br/>
        :return: TableDescription:  The description of the table created from an existing backup.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ArchivalSummary</i> Contains information about the table archive.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ArchivalSummary</b>: Contains information about the table archive.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SSEDescription</i> The description of the server-side encryption status on the specified table.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SSEDescription</b>: The description of the server-side encryption status on the specified table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RestoreSummary</i> Contains details for the restore.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RestoreSummary</b>: Contains details for the restore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Replicas</i> Represents replicas of the table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalTableVersion</i> Represents the version of <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GlobalTables.html">global tables</a> in use, if the table is replicated across AWS Regions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestStreamArn</i> The Amazon Resource Name (ARN) that uniquely identifies the latest stream for this table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestStreamLabel</i> A timestamp, in ISO 8601 format, for this stream. Note that <code>LatestStreamLabel</code> is not a unique identifier for the stream, because it is possible that a stream from another table might have the same timestamp. However, the combination of the following three elements is guaranteed to be unique: <ul> <li> AWS customer ID </li> <li> Table name </li> <li>  <code>StreamLabel</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamSpecification</i> The current DynamoDB Streams configuration for the table.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StreamSpecification</b>: The current DynamoDB Streams configuration for the table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalSecondaryIndexes</i> The global secondary indexes, if any, on the table. Each index is scoped to a given partition key value. Each element is composed of: <ul> <li>  <code>Backfilling</code> - If true, then the index is currently in the backfilling phase. Backfilling occurs only when a new global secondary index is added to the table. It is the process by which DynamoDB populates the new index with data from the table. (This attribute does not appear for indexes that were created during a <code>CreateTable</code> operation.)   You can delete an index that is being created during the <code>Backfilling</code> phase when <code>IndexStatus</code> is set to CREATING and <code>Backfilling</code> is true. You can't delete the index that is being created when <code>IndexStatus</code> is set to CREATING and <code>Backfilling</code> is false. (This attribute does not appear for indexes that were created during a <code>CreateTable</code> operation.) </li> <li>  <code>IndexName</code> - The name of the global secondary index. </li> <li>  <code>IndexSizeBytes</code> - The total size of the global secondary index, in bytes. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.  </li> <li>  <code>IndexStatus</code> - The current status of the global secondary index: <ul> <li>  <code>CREATING</code> - The index is being created. </li> <li>  <code>UPDATING</code> - The index is being updated. </li> <li>  <code>DELETING</code> - The index is being deleted. </li> <li>  <code>ACTIVE</code> - The index is ready for use. </li> </ul> </li> <li>  <code>ItemCount</code> - The number of items in the global secondary index. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.  </li> <li>  <code>KeySchema</code> - Specifies the complete index key schema. The attribute names in the key schema must be between 1 and 255 characters (inclusive). The key schema must begin with the same partition key as the table. </li> <li>  <code>Projection</code> - Specifies attributes that are copied (projected) from the table into the index. These are in addition to the primary key attributes and index key attributes, which are automatically projected. Each attribute specification is composed of: <ul> <li>  <code>ProjectionType</code> - One of the following: <ul> <li>  <code>KEYS_ONLY</code> - Only the index and primary keys are projected into the index. </li> <li>  <code>INCLUDE</code> - In addition to the attributes described in <code>KEYS_ONLY</code>, the secondary index will include other non-key attributes that you specify. </li> <li>  <code>ALL</code> - All of the table attributes are projected into the index. </li> </ul> </li> <li>  <code>NonKeyAttributes</code> - A list of one or more non-key attribute names that are projected into the secondary index. The total count of attributes provided in <code>NonKeyAttributes</code>, summed across all of the secondary indexes, must not exceed 20. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total. </li> </ul> </li> <li>  <code>ProvisionedThroughput</code> - The provisioned throughput settings for the global secondary index, consisting of read and write capacity units, along with data about increases and decreases.  </li> </ul> If the table is in the <code>DELETING</code> state, no information about indexes will be returned.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LocalSecondaryIndexes</i> Represents one or more local secondary indexes on the table. Each index is scoped to a given partition key value. Tables with one or more local secondary indexes are subject to an item collection size limit, where the amount of data within a given item collection cannot exceed 10 GB. Each element is composed of: <ul> <li>  <code>IndexName</code> - The name of the local secondary index. </li> <li>  <code>KeySchema</code> - Specifies the complete index key schema. The attribute names in the key schema must be between 1 and 255 characters (inclusive). The key schema must begin with the same partition key as the table. </li> <li>  <code>Projection</code> - Specifies attributes that are copied (projected) from the table into the index. These are in addition to the primary key attributes and index key attributes, which are automatically projected. Each attribute specification is composed of: <ul> <li>  <code>ProjectionType</code> - One of the following: <ul> <li>  <code>KEYS_ONLY</code> - Only the index and primary keys are projected into the index. </li> <li>  <code>INCLUDE</code> - Only the specified table attributes are projected into the index. The list of projected attributes is in <code>NonKeyAttributes</code>. </li> <li>  <code>ALL</code> - All of the table attributes are projected into the index. </li> </ul> </li> <li>  <code>NonKeyAttributes</code> - A list of one or more non-key attribute names that are projected into the secondary index. The total count of attributes provided in <code>NonKeyAttributes</code>, summed across all of the secondary indexes, must not exceed 20. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total. </li> </ul> </li> <li>  <code>IndexSizeBytes</code> - Represents the total size of the index, in bytes. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value. </li> <li>  <code>ItemCount</code> - Represents the number of items in the index. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value. </li> </ul> If the table is in the <code>DELETING</code> state, no information about indexes will be returned.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BillingModeSummary</i> Contains the details for the read/write capacity mode.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>BillingModeSummary</b>: Contains the details for the read/write capacity mode.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TableId</i> Unique identifier for the table for which the backup was created. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TableArn</i> The Amazon Resource Name (ARN) that uniquely identifies the table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ItemCount</i> The number of items in the specified table. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TableSizeBytes</i> The total size of the specified table, in bytes. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProvisionedThroughput</i> The provisioned throughput settings for the table, consisting of read and write capacity units, along with data about increases and decreases.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ProvisionedThroughput</b>: The provisioned throughput settings for the table, consisting of read and write capacity units, along with data about increases and decreases.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDateTime</i> The date and time when the table was created, in <a href="http://www.epochconverter.com/">UNIX epoch time</a> format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TableStatus</i> The current state of the table: <ul> <li>  <code>CREATING</code> - The table is being created. </li> <li>  <code>UPDATING</code> - The table is being updated. </li> <li>  <code>DELETING</code> - The table is being deleted. </li> <li>  <code>ACTIVE</code> - The table is ready for use. </li> <li>  <code>INACCESSIBLE_ENCRYPTION_CREDENTIALS</code> - The AWS KMS key used to encrypt the table in inaccessible. Table operations may fail due to failure to use the AWS KMS key. DynamoDB will initiate the table archival process when a table's AWS KMS key remains inaccessible for more than seven days.  </li> <li>  <code>ARCHIVING</code> - The table is being archived. Operations are not allowed until archival is complete.  </li> <li>  <code>ARCHIVED</code> - The table has been archived. See the ArchivalReason for more information.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KeySchema</i> The primary key structure for the table. Each <code>KeySchemaElement</code> consists of: <ul> <li>  <code>AttributeName</code> - The name of the attribute. </li> <li>  <code>KeyType</code> - The role of the attribute: <ul> <li>  <code>HASH</code> - partition key </li> <li>  <code>RANGE</code> - sort key </li> </ul> <note> The partition key of an item is also known as its <i>hash attribute</i>. The term "hash attribute" derives from DynamoDB's usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values. The sort key of an item is also known as its <i>range attribute</i>. The term "range attribute" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value. </note> </li> </ul> For more information about primary keys, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataModel.html#DataModelPrimaryKey">Primary Key</a> in the <i>Amazon DynamoDB Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TableName</i> The name of the table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AttributeDefinitions</i> An array of <code>AttributeDefinition</code> objects. Each of these objects describes one attribute in the table and index key schema. Each <code>AttributeDefinition</code> object in this array is composed of: <ul> <li>  <code>AttributeName</code> - The name of the attribute. </li> <li>  <code>AttributeType</code> - The data type for the attribute. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>WriteCapacityUnits</i> The maximum number of writes consumed per second before DynamoDB returns a <code>ThrottlingException</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadCapacityUnits</i> The maximum number of strongly consistent reads consumed per second before DynamoDB returns a <code>ThrottlingException</code>. Eventually consistent reads require less effort than strongly consistent reads, so a setting of 50 <code>ReadCapacityUnits</code> per second provides 100 eventually consistent <code>ReadCapacityUnits</code> per second.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberOfDecreasesToday</i> The number of provisioned throughput decreases for this table during this UTC calendar day. For current maximums on provisioned throughput decreases, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html">Service, Account, and Table Quotas</a> in the <i>Amazon DynamoDB Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LastDecreaseDateTime</i> The date and time of the last provisioned throughput decrease for this table.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LastIncreaseDateTime</i> The date and time of the last provisioned throughput increase for this table.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdateToPayPerRequestDateTime</i> Represents the time when <code>PAY_PER_REQUEST</code> was last set as the read/write capacity mode.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BillingMode</i> Controls how you are charged for read and write throughput and how you manage capacity. This setting can be changed later. <ul> <li>  <code>PROVISIONED</code> - Sets the read/write capacity mode to <code>PROVISIONED</code>. We recommend using <code>PROVISIONED</code> for predictable workloads. </li> <li>  <code>PAY_PER_REQUEST</code> - Sets the read/write capacity mode to <code>PAY_PER_REQUEST</code>. We recommend using <code>PAY_PER_REQUEST</code> for unpredictable workloads.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamViewType</i>  When an item in the table is modified, <code>StreamViewType</code> determines what information is written to the stream for this table. Valid values for <code>StreamViewType</code> are: <ul> <li>  <code>KEYS_ONLY</code> - Only the key attributes of the modified item are written to the stream. </li> <li>  <code>NEW_IMAGE</code> - The entire item, as it appears after it was modified, is written to the stream. </li> <li>  <code>OLD_IMAGE</code> - The entire item, as it appeared before it was modified, is written to the stream. </li> <li>  <code>NEW_AND_OLD_IMAGES</code> - Both the new and the old item images of the item are written to the stream. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamEnabled</i> Indicates whether DynamoDB Streams is enabled (true) or disabled (false) on the table.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RestoreInProgress</i> Indicates if a restore is in progress or not.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RestoreDateTime</i> Point in time or source backup time.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceTableArn</i> The ARN of the source table of the backup that is being restored.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceBackupArn</i> The Amazon Resource Name (ARN) of the backup from which the table was restored.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InaccessibleEncryptionDateTime</i> Indicates the time, in UNIX epoch date format, when DynamoDB detected that the table's AWS KMS key was inaccessible. This attribute will automatically be cleared when DynamoDB detects that the table's AWS KMS key is accessible again. DynamoDB will initiate the table archival process when table's AWS KMS key remains inaccessible for more than seven days from this date.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KMSMasterKeyArn</i> The AWS KMS customer master key (CMK) ARN used for the AWS KMS encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SSEType</i> Server-side encryption type. The only supported value is: <ul> <li>  <code>KMS</code> - Server-side encryption that uses AWS Key Management Service. The key is stored in your account and is managed by AWS KMS (AWS KMS charges apply). </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Represents the current state of server-side encryption. The only supported values are: <ul> <li>  <code>ENABLED</code> - Server-side encryption is enabled. </li> <li>  <code>UPDATING</code> - Server-side encryption is being updated. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ArchivalBackupArn</i> The Amazon Resource Name (ARN) of the backup the table was archived to, when applicable in the archival reason. If you wish to restore this backup to the same table name, you will need to delete the original table.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ArchivalReason</i> The reason DynamoDB archived the table. Currently, the only possible value is: <ul> <li>  <code>INACCESSIBLE_ENCRYPTION_CREDENTIALS</code> - The table was archived due to the table's AWS KMS key being inaccessible for more than seven days. An On-Demand backup was created at the archival time. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ArchivalDateTime</i> The date and time when table archival was initiated by DynamoDB, in UNIX epoch time format.<br/>        """
        pass

    def restore_table_to_point_in_time(self, TargetTableName: str, SourceTableArn: str=None, SourceTableName: str=None, UseLatestRestorableTime: BooleanObject=None, RestoreDateTime: Date=None, BillingModeOverride: str=None, GlobalSecondaryIndexOverride: List[GlobalSecondaryIndex]=None, LocalSecondaryIndexOverride: List[LocalSecondaryIndex]=None, ProvisionedThroughputOverride: ProvisionedThroughput=None, SSESpecificationOverride: SSESpecification=None) -> RestoreTableToPointInTimeOutput:
        r"""Restores the specified table to the specified point in time within <code>EarliestRestorableDateTime</code> and <code>LatestRestorableDateTime</code>. You can restore your table to any point in time during the last 35 days. Any number of users can execute up to 4 concurrent restores (any type of restore) in a given account.   When you restore using point in time recovery, DynamoDB restores your table data to the state based on the selected date and time (day:hour:minute:second) to a new table.   Along with data, the following are also included on the new restored table using point in time recovery:  <ul> <li> Global secondary indexes (GSIs) </li> <li> Local secondary indexes (LSIs) </li> <li> Provisioned read and write capacity </li> <li> Encryption settings <important>  All these settings come from the current settings of the source table at the time of restore.  </important> </li> </ul> You must manually set up the following on the restored table: <ul> <li> Auto scaling policies </li> <li> IAM policies </li> <li> Amazon CloudWatch metrics and alarms </li> <li> Tags </li> <li> Stream settings </li> <li> Time to Live (TTL) settings </li> <li> Point in time recovery settings </li> </ul>

        :param self:
        :param SSESpecificationOverride:  The new server-side encryption settings for the restored table.:<br/>ProvisionedThroughputOverride:  Provisioned throughput settings for the restored table.:<br/>LocalSecondaryIndexOverride:  List of local secondary indexes for the restored table. The indexes provided should match existing secondary indexes. You can choose to exclude some or all of the indexes at the time of restore.<br/>GlobalSecondaryIndexOverride:  List of global secondary indexes for the restored table. The indexes provided should match existing secondary indexes. You can choose to exclude some or all of the indexes at the time of restore.<br/>BillingModeOverride:  The billing mode of the restored table.<br/>RestoreDateTime:  Time in the past to restore the table to.<br/>UseLatestRestorableTime:  Restore the table to the latest possible time. <code>LatestRestorableDateTime</code> is typically 5 minutes before the current time. <br/>TargetTableName:  The name of the new table to which it must be restored to.<br/>SourceTableName:  Name of the source table that is being restored.<br/>SourceTableArn:  The DynamoDB table that will be restored. This value is an Amazon Resource Name (ARN).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WriteCapacityUnits</i> The maximum number of writes consumed per second before DynamoDB returns a <code>ThrottlingException</code>. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithTables.html#ProvisionedThroughput">Specifying Read and Write Requirements</a> in the <i>Amazon DynamoDB Developer Guide</i>. If read/write capacity mode is <code>PAY_PER_REQUEST</code> the value is set to 0.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadCapacityUnits</i> The maximum number of strongly consistent reads consumed per second before DynamoDB returns a <code>ThrottlingException</code>. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithTables.html#ProvisionedThroughput">Specifying Read and Write Requirements</a> in the <i>Amazon DynamoDB Developer Guide</i>. If read/write capacity mode is <code>PAY_PER_REQUEST</code> the value is set to 0.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KMSMasterKeyId</i> The AWS KMS customer master key (CMK) that should be used for the AWS KMS encryption. To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias name, or alias ARN. Note that you should only provide this parameter if the key is different from the default DynamoDB customer master key alias/aws/dynamodb.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SSEType</i> Server-side encryption type. The only supported value is: <ul> <li>  <code>KMS</code> - Server-side encryption that uses AWS Key Management Service. The key is stored in your account and is managed by AWS KMS (AWS KMS charges apply). </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Indicates whether server-side encryption is done using an AWS managed CMK or an AWS owned CMK. If enabled (true), server-side encryption type is set to <code>KMS</code> and an AWS managed CMK is used (AWS KMS charges apply). If disabled (false) or not specified, server-side encryption is set to AWS owned CMK.<br/>
        :return: TableDescription:  Represents the properties of a table.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ArchivalSummary</i> Contains information about the table archive.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ArchivalSummary</b>: Contains information about the table archive.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SSEDescription</i> The description of the server-side encryption status on the specified table.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SSEDescription</b>: The description of the server-side encryption status on the specified table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RestoreSummary</i> Contains details for the restore.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RestoreSummary</b>: Contains details for the restore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Replicas</i> Represents replicas of the table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalTableVersion</i> Represents the version of <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GlobalTables.html">global tables</a> in use, if the table is replicated across AWS Regions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestStreamArn</i> The Amazon Resource Name (ARN) that uniquely identifies the latest stream for this table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestStreamLabel</i> A timestamp, in ISO 8601 format, for this stream. Note that <code>LatestStreamLabel</code> is not a unique identifier for the stream, because it is possible that a stream from another table might have the same timestamp. However, the combination of the following three elements is guaranteed to be unique: <ul> <li> AWS customer ID </li> <li> Table name </li> <li>  <code>StreamLabel</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamSpecification</i> The current DynamoDB Streams configuration for the table.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StreamSpecification</b>: The current DynamoDB Streams configuration for the table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalSecondaryIndexes</i> The global secondary indexes, if any, on the table. Each index is scoped to a given partition key value. Each element is composed of: <ul> <li>  <code>Backfilling</code> - If true, then the index is currently in the backfilling phase. Backfilling occurs only when a new global secondary index is added to the table. It is the process by which DynamoDB populates the new index with data from the table. (This attribute does not appear for indexes that were created during a <code>CreateTable</code> operation.)   You can delete an index that is being created during the <code>Backfilling</code> phase when <code>IndexStatus</code> is set to CREATING and <code>Backfilling</code> is true. You can't delete the index that is being created when <code>IndexStatus</code> is set to CREATING and <code>Backfilling</code> is false. (This attribute does not appear for indexes that were created during a <code>CreateTable</code> operation.) </li> <li>  <code>IndexName</code> - The name of the global secondary index. </li> <li>  <code>IndexSizeBytes</code> - The total size of the global secondary index, in bytes. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.  </li> <li>  <code>IndexStatus</code> - The current status of the global secondary index: <ul> <li>  <code>CREATING</code> - The index is being created. </li> <li>  <code>UPDATING</code> - The index is being updated. </li> <li>  <code>DELETING</code> - The index is being deleted. </li> <li>  <code>ACTIVE</code> - The index is ready for use. </li> </ul> </li> <li>  <code>ItemCount</code> - The number of items in the global secondary index. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.  </li> <li>  <code>KeySchema</code> - Specifies the complete index key schema. The attribute names in the key schema must be between 1 and 255 characters (inclusive). The key schema must begin with the same partition key as the table. </li> <li>  <code>Projection</code> - Specifies attributes that are copied (projected) from the table into the index. These are in addition to the primary key attributes and index key attributes, which are automatically projected. Each attribute specification is composed of: <ul> <li>  <code>ProjectionType</code> - One of the following: <ul> <li>  <code>KEYS_ONLY</code> - Only the index and primary keys are projected into the index. </li> <li>  <code>INCLUDE</code> - In addition to the attributes described in <code>KEYS_ONLY</code>, the secondary index will include other non-key attributes that you specify. </li> <li>  <code>ALL</code> - All of the table attributes are projected into the index. </li> </ul> </li> <li>  <code>NonKeyAttributes</code> - A list of one or more non-key attribute names that are projected into the secondary index. The total count of attributes provided in <code>NonKeyAttributes</code>, summed across all of the secondary indexes, must not exceed 20. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total. </li> </ul> </li> <li>  <code>ProvisionedThroughput</code> - The provisioned throughput settings for the global secondary index, consisting of read and write capacity units, along with data about increases and decreases.  </li> </ul> If the table is in the <code>DELETING</code> state, no information about indexes will be returned.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LocalSecondaryIndexes</i> Represents one or more local secondary indexes on the table. Each index is scoped to a given partition key value. Tables with one or more local secondary indexes are subject to an item collection size limit, where the amount of data within a given item collection cannot exceed 10 GB. Each element is composed of: <ul> <li>  <code>IndexName</code> - The name of the local secondary index. </li> <li>  <code>KeySchema</code> - Specifies the complete index key schema. The attribute names in the key schema must be between 1 and 255 characters (inclusive). The key schema must begin with the same partition key as the table. </li> <li>  <code>Projection</code> - Specifies attributes that are copied (projected) from the table into the index. These are in addition to the primary key attributes and index key attributes, which are automatically projected. Each attribute specification is composed of: <ul> <li>  <code>ProjectionType</code> - One of the following: <ul> <li>  <code>KEYS_ONLY</code> - Only the index and primary keys are projected into the index. </li> <li>  <code>INCLUDE</code> - Only the specified table attributes are projected into the index. The list of projected attributes is in <code>NonKeyAttributes</code>. </li> <li>  <code>ALL</code> - All of the table attributes are projected into the index. </li> </ul> </li> <li>  <code>NonKeyAttributes</code> - A list of one or more non-key attribute names that are projected into the secondary index. The total count of attributes provided in <code>NonKeyAttributes</code>, summed across all of the secondary indexes, must not exceed 20. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total. </li> </ul> </li> <li>  <code>IndexSizeBytes</code> - Represents the total size of the index, in bytes. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value. </li> <li>  <code>ItemCount</code> - Represents the number of items in the index. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value. </li> </ul> If the table is in the <code>DELETING</code> state, no information about indexes will be returned.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BillingModeSummary</i> Contains the details for the read/write capacity mode.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>BillingModeSummary</b>: Contains the details for the read/write capacity mode.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TableId</i> Unique identifier for the table for which the backup was created. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TableArn</i> The Amazon Resource Name (ARN) that uniquely identifies the table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ItemCount</i> The number of items in the specified table. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TableSizeBytes</i> The total size of the specified table, in bytes. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProvisionedThroughput</i> The provisioned throughput settings for the table, consisting of read and write capacity units, along with data about increases and decreases.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ProvisionedThroughput</b>: The provisioned throughput settings for the table, consisting of read and write capacity units, along with data about increases and decreases.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDateTime</i> The date and time when the table was created, in <a href="http://www.epochconverter.com/">UNIX epoch time</a> format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TableStatus</i> The current state of the table: <ul> <li>  <code>CREATING</code> - The table is being created. </li> <li>  <code>UPDATING</code> - The table is being updated. </li> <li>  <code>DELETING</code> - The table is being deleted. </li> <li>  <code>ACTIVE</code> - The table is ready for use. </li> <li>  <code>INACCESSIBLE_ENCRYPTION_CREDENTIALS</code> - The AWS KMS key used to encrypt the table in inaccessible. Table operations may fail due to failure to use the AWS KMS key. DynamoDB will initiate the table archival process when a table's AWS KMS key remains inaccessible for more than seven days.  </li> <li>  <code>ARCHIVING</code> - The table is being archived. Operations are not allowed until archival is complete.  </li> <li>  <code>ARCHIVED</code> - The table has been archived. See the ArchivalReason for more information.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KeySchema</i> The primary key structure for the table. Each <code>KeySchemaElement</code> consists of: <ul> <li>  <code>AttributeName</code> - The name of the attribute. </li> <li>  <code>KeyType</code> - The role of the attribute: <ul> <li>  <code>HASH</code> - partition key </li> <li>  <code>RANGE</code> - sort key </li> </ul> <note> The partition key of an item is also known as its <i>hash attribute</i>. The term "hash attribute" derives from DynamoDB's usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values. The sort key of an item is also known as its <i>range attribute</i>. The term "range attribute" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value. </note> </li> </ul> For more information about primary keys, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataModel.html#DataModelPrimaryKey">Primary Key</a> in the <i>Amazon DynamoDB Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TableName</i> The name of the table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AttributeDefinitions</i> An array of <code>AttributeDefinition</code> objects. Each of these objects describes one attribute in the table and index key schema. Each <code>AttributeDefinition</code> object in this array is composed of: <ul> <li>  <code>AttributeName</code> - The name of the attribute. </li> <li>  <code>AttributeType</code> - The data type for the attribute. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>WriteCapacityUnits</i> The maximum number of writes consumed per second before DynamoDB returns a <code>ThrottlingException</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadCapacityUnits</i> The maximum number of strongly consistent reads consumed per second before DynamoDB returns a <code>ThrottlingException</code>. Eventually consistent reads require less effort than strongly consistent reads, so a setting of 50 <code>ReadCapacityUnits</code> per second provides 100 eventually consistent <code>ReadCapacityUnits</code> per second.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberOfDecreasesToday</i> The number of provisioned throughput decreases for this table during this UTC calendar day. For current maximums on provisioned throughput decreases, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html">Service, Account, and Table Quotas</a> in the <i>Amazon DynamoDB Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LastDecreaseDateTime</i> The date and time of the last provisioned throughput decrease for this table.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LastIncreaseDateTime</i> The date and time of the last provisioned throughput increase for this table.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdateToPayPerRequestDateTime</i> Represents the time when <code>PAY_PER_REQUEST</code> was last set as the read/write capacity mode.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BillingMode</i> Controls how you are charged for read and write throughput and how you manage capacity. This setting can be changed later. <ul> <li>  <code>PROVISIONED</code> - Sets the read/write capacity mode to <code>PROVISIONED</code>. We recommend using <code>PROVISIONED</code> for predictable workloads. </li> <li>  <code>PAY_PER_REQUEST</code> - Sets the read/write capacity mode to <code>PAY_PER_REQUEST</code>. We recommend using <code>PAY_PER_REQUEST</code> for unpredictable workloads.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamViewType</i>  When an item in the table is modified, <code>StreamViewType</code> determines what information is written to the stream for this table. Valid values for <code>StreamViewType</code> are: <ul> <li>  <code>KEYS_ONLY</code> - Only the key attributes of the modified item are written to the stream. </li> <li>  <code>NEW_IMAGE</code> - The entire item, as it appears after it was modified, is written to the stream. </li> <li>  <code>OLD_IMAGE</code> - The entire item, as it appeared before it was modified, is written to the stream. </li> <li>  <code>NEW_AND_OLD_IMAGES</code> - Both the new and the old item images of the item are written to the stream. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamEnabled</i> Indicates whether DynamoDB Streams is enabled (true) or disabled (false) on the table.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RestoreInProgress</i> Indicates if a restore is in progress or not.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RestoreDateTime</i> Point in time or source backup time.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceTableArn</i> The ARN of the source table of the backup that is being restored.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceBackupArn</i> The Amazon Resource Name (ARN) of the backup from which the table was restored.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InaccessibleEncryptionDateTime</i> Indicates the time, in UNIX epoch date format, when DynamoDB detected that the table's AWS KMS key was inaccessible. This attribute will automatically be cleared when DynamoDB detects that the table's AWS KMS key is accessible again. DynamoDB will initiate the table archival process when table's AWS KMS key remains inaccessible for more than seven days from this date.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KMSMasterKeyArn</i> The AWS KMS customer master key (CMK) ARN used for the AWS KMS encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SSEType</i> Server-side encryption type. The only supported value is: <ul> <li>  <code>KMS</code> - Server-side encryption that uses AWS Key Management Service. The key is stored in your account and is managed by AWS KMS (AWS KMS charges apply). </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Represents the current state of server-side encryption. The only supported values are: <ul> <li>  <code>ENABLED</code> - Server-side encryption is enabled. </li> <li>  <code>UPDATING</code> - Server-side encryption is being updated. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ArchivalBackupArn</i> The Amazon Resource Name (ARN) of the backup the table was archived to, when applicable in the archival reason. If you wish to restore this backup to the same table name, you will need to delete the original table.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ArchivalReason</i> The reason DynamoDB archived the table. Currently, the only possible value is: <ul> <li>  <code>INACCESSIBLE_ENCRYPTION_CREDENTIALS</code> - The table was archived due to the table's AWS KMS key being inaccessible for more than seven days. An On-Demand backup was created at the archival time. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ArchivalDateTime</i> The date and time when table archival was initiated by DynamoDB, in UNIX epoch time format.<br/>        """
        pass

    def scan(self, TableName: str, IndexName: str=None, AttributesToGet: List[AttributeName]=None, Limit: int=None, Select: str=None, ScanFilter: FilterConditionMap=None, ConditionalOperator: str=None, ExclusiveStartKey: Key=None, ReturnConsumedCapacity: str=None, TotalSegments: int=None, Segment: int=None, ProjectionExpression: str=None, FilterExpression: str=None, ExpressionAttributeNames: ExpressionAttributeNameMap=None, ExpressionAttributeValues: ExpressionAttributeValueMap=None, ConsistentRead: ConsistentRead=None) -> ScanOutput:
        r"""The <code>Scan</code> operation returns one or more items and item attributes by accessing every item in a table or a secondary index. To have DynamoDB return fewer items, you can provide a <code>FilterExpression</code> operation. If the total number of scanned items exceeds the maximum dataset size limit of 1 MB, the scan stops and results are returned to the user as a <code>LastEvaluatedKey</code> value to continue the scan in a subsequent operation. The results also include the number of items exceeding the limit. A scan can result in no table data meeting the filter criteria.  A single <code>Scan</code> operation reads up to the maximum number of items set (if using the <code>Limit</code> parameter) or a maximum of 1 MB of data and then apply any filtering to the results using <code>FilterExpression</code>. If <code>LastEvaluatedKey</code> is present in the response, you need to paginate the result set. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Scan.html#Scan.Pagination">Paginating the Results</a> in the <i>Amazon DynamoDB Developer Guide</i>.   <code>Scan</code> operations proceed sequentially; however, for faster performance on a large table or secondary index, applications can request a parallel <code>Scan</code> operation by providing the <code>Segment</code> and <code>TotalSegments</code> parameters. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Scan.html#Scan.ParallelScan">Parallel Scan</a> in the <i>Amazon DynamoDB Developer Guide</i>.  <code>Scan</code> uses eventually consistent reads when accessing the data in a table; therefore, the result set might not include the changes to data in the table immediately before the operation began. If you need a consistent copy of the data, as of the time that the <code>Scan</code> begins, you can set the <code>ConsistentRead</code> parameter to <code>true</code>.

        :param self:
        :param ConsistentRead:  A Boolean value that determines the read consistency model during the scan: <ul> <li> If <code>ConsistentRead</code> is <code>false</code>, then the data returned from <code>Scan</code> might not contain the results from other recently completed write operations (<code>PutItem</code>, <code>UpdateItem</code>, or <code>DeleteItem</code>). </li> <li> If <code>ConsistentRead</code> is <code>true</code>, then all of the write operations that completed before the <code>Scan</code> began are guaranteed to be contained in the <code>Scan</code> response. </li> </ul> The default setting for <code>ConsistentRead</code> is <code>false</code>. The <code>ConsistentRead</code> parameter is not supported on global secondary indexes. If you scan a global secondary index with <code>ConsistentRead</code> set to true, you will receive a <code>ValidationException</code>.<br/>ExpressionAttributeValues:  One or more values that can be substituted in an expression. Use the <b>:</b> (colon) character in an expression to dereference an attribute value. For example, suppose that you wanted to check whether the value of the <code>ProductStatus</code> attribute was one of the following:   <code>Available | Backordered | Discontinued</code>  You would first need to specify <code>ExpressionAttributeValues</code> as follows:  <code>{ ":avail":{"S":"Available"}, ":back":{"S":"Backordered"}, ":disc":{"S":"Discontinued"} }</code>  You could then use these values in an expression, such as this:  <code>ProductStatus IN (:avail, :back, :disc)</code>  For more information on expression attribute values, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.SpecifyingConditions.html">Condition Expressions</a> in the <i>Amazon DynamoDB Developer Guide</i>.<br/>ExpressionAttributeNames:  One or more substitution tokens for attribute names in an expression. The following are some use cases for using <code>ExpressionAttributeNames</code>: <ul> <li> To access an attribute whose name conflicts with a DynamoDB reserved word. </li> <li> To create a placeholder for repeating occurrences of an attribute name in an expression. </li> <li> To prevent special characters in an attribute name from being misinterpreted in an expression. </li> </ul> Use the <b>#</b> character in an expression to dereference an attribute name. For example, consider the following attribute name: <ul> <li>  <code>Percentile</code>  </li> </ul> The name of this attribute conflicts with a reserved word, so it cannot be used directly in an expression. (For the complete list of reserved words, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ReservedWords.html">Reserved Words</a> in the <i>Amazon DynamoDB Developer Guide</i>). To work around this, you could specify the following for <code>ExpressionAttributeNames</code>: <ul> <li>  <code>{"#P":"Percentile"}</code>  </li> </ul> You could then use this substitution in an expression, as in this example: <ul> <li>  <code>#P = :val</code>  </li> </ul> <note> Tokens that begin with the <b>:</b> character are <i>expression attribute values</i>, which are placeholders for the actual value at runtime. </note> For more information on expression attribute names, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.AccessingItemAttributes.html">Specifying Item Attributes</a> in the <i>Amazon DynamoDB Developer Guide</i>.<br/>FilterExpression:  A string that contains conditions that DynamoDB applies after the <code>Scan</code> operation, but before the data is returned to you. Items that do not satisfy the <code>FilterExpression</code> criteria are not returned. <note> A <code>FilterExpression</code> is applied after the items have already been read; the process of filtering does not consume any additional read capacity units. </note> For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/QueryAndScan.html#FilteringResults">Filter Expressions</a> in the <i>Amazon DynamoDB Developer Guide</i>.<br/>ProjectionExpression:  A string that identifies one or more attributes to retrieve from the specified table or index. These attributes can include scalars, sets, or elements of a JSON document. The attributes in the expression must be separated by commas. If no attribute names are specified, then all attributes will be returned. If any of the requested attributes are not found, they will not appear in the result. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.AccessingItemAttributes.html">Specifying Item Attributes</a> in the <i>Amazon DynamoDB Developer Guide</i>.<br/>Segment:  For a parallel <code>Scan</code> request, <code>Segment</code> identifies an individual segment to be scanned by an application worker. Segment IDs are zero-based, so the first segment is always 0. For example, if you want to use four application threads to scan a table or an index, then the first thread specifies a <code>Segment</code> value of 0, the second thread specifies 1, and so on. The value of <code>LastEvaluatedKey</code> returned from a parallel <code>Scan</code> request must be used as <code>ExclusiveStartKey</code> with the same segment ID in a subsequent <code>Scan</code> operation. The value for <code>Segment</code> must be greater than or equal to 0, and less than the value provided for <code>TotalSegments</code>. If you provide <code>Segment</code>, you must also provide <code>TotalSegments</code>.<br/>TotalSegments:  For a parallel <code>Scan</code> request, <code>TotalSegments</code> represents the total number of segments into which the <code>Scan</code> operation will be divided. The value of <code>TotalSegments</code> corresponds to the number of application workers that will perform the parallel scan. For example, if you want to use four application threads to scan a table or an index, specify a <code>TotalSegments</code> value of 4. The value for <code>TotalSegments</code> must be greater than or equal to 1, and less than or equal to 1000000. If you specify a <code>TotalSegments</code> value of 1, the <code>Scan</code> operation will be sequential rather than parallel. If you specify <code>TotalSegments</code>, you must also specify <code>Segment</code>.<br/>ReturnConsumedCapacity:  Determines the level of detail about provisioned throughput consumption that is returned in the response: <ul> <li>  <code>INDEXES</code> - The response includes the aggregate <code>ConsumedCapacity</code> for the operation, together with <code>ConsumedCapacity</code> for each table and secondary index that was accessed. Note that some operations, such as <code>GetItem</code> and <code>BatchGetItem</code>, do not access any indexes at all. In these cases, specifying <code>INDEXES</code> will only return <code>ConsumedCapacity</code> information for table(s). </li> <li>  <code>TOTAL</code> - The response includes only the aggregate <code>ConsumedCapacity</code> for the operation. </li> <li>  <code>NONE</code> - No <code>ConsumedCapacity</code> details are included in the response. </li> </ul><br/>ExclusiveStartKey:  The primary key of the first item that this operation will evaluate. Use the value that was returned for <code>LastEvaluatedKey</code> in the previous operation. The data type for <code>ExclusiveStartKey</code> must be String, Number or Binary. No set data types are allowed. In a parallel scan, a <code>Scan</code> request that includes <code>ExclusiveStartKey</code> must specify the same segment whose previous <code>Scan</code> returned the corresponding value of <code>LastEvaluatedKey</code>.<br/>ConditionalOperator:  This is a legacy parameter. Use <code>FilterExpression</code> instead. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.ConditionalOperator.html">ConditionalOperator</a> in the <i>Amazon DynamoDB Developer Guide</i>.<br/>ScanFilter:  This is a legacy parameter. Use <code>FilterExpression</code> instead. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.ScanFilter.html">ScanFilter</a> in the <i>Amazon DynamoDB Developer Guide</i>.<br/>Select:  The attributes to be returned in the result. You can retrieve all item attributes, specific item attributes, the count of matching items, or in the case of an index, some or all of the attributes projected into the index. <ul> <li>  <code>ALL_ATTRIBUTES</code> - Returns all of the item attributes from the specified table or index. If you query a local secondary index, then for each matching item in the index, DynamoDB fetches the entire item from the parent table. If the index is configured to project all item attributes, then all of the data can be obtained from the local secondary index, and no fetching is required. </li> <li>  <code>ALL_PROJECTED_ATTRIBUTES</code> - Allowed only when querying an index. Retrieves all attributes that have been projected into the index. If the index is configured to project all attributes, this return value is equivalent to specifying <code>ALL_ATTRIBUTES</code>. </li> <li>  <code>COUNT</code> - Returns the number of matching items, rather than the matching items themselves. </li> <li>  <code>SPECIFIC_ATTRIBUTES</code> - Returns only the attributes listed in <code>AttributesToGet</code>. This return value is equivalent to specifying <code>AttributesToGet</code> without specifying any value for <code>Select</code>. If you query or scan a local secondary index and request only attributes that are projected into that index, the operation reads only the index and not the table. If any of the requested attributes are not projected into the local secondary index, DynamoDB fetches each of these attributes from the parent table. This extra fetching incurs additional throughput cost and latency. If you query or scan a global secondary index, you can only request attributes that are projected into the index. Global secondary index queries cannot fetch attributes from the parent table. </li> </ul> If neither <code>Select</code> nor <code>AttributesToGet</code> are specified, DynamoDB defaults to <code>ALL_ATTRIBUTES</code> when accessing a table, and <code>ALL_PROJECTED_ATTRIBUTES</code> when accessing an index. You cannot use both <code>Select</code> and <code>AttributesToGet</code> together in a single request, unless the value for <code>Select</code> is <code>SPECIFIC_ATTRIBUTES</code>. (This usage is equivalent to specifying <code>AttributesToGet</code> without any value for <code>Select</code>.) <note> If you use the <code>ProjectionExpression</code> parameter, then the value for <code>Select</code> can only be <code>SPECIFIC_ATTRIBUTES</code>. Any other value for <code>Select</code> will return an error. </note><br/>Limit:  The maximum number of items to evaluate (not necessarily the number of matching items). If DynamoDB processes the number of items up to the limit while processing the results, it stops the operation and returns the matching values up to that point, and a key in <code>LastEvaluatedKey</code> to apply in a subsequent operation, so that you can pick up where you left off. Also, if the processed dataset size exceeds 1 MB before DynamoDB reaches this limit, it stops the operation and returns the matching values up to the limit, and a key in <code>LastEvaluatedKey</code> to apply in a subsequent operation to continue the operation. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/QueryAndScan.html">Working with Queries</a> in the <i>Amazon DynamoDB Developer Guide</i>.<br/>AttributesToGet:  This is a legacy parameter. Use <code>ProjectionExpression</code> instead. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.AttributesToGet.html">AttributesToGet</a> in the <i>Amazon DynamoDB Developer Guide</i>.<br/>IndexName:  The name of a secondary index to scan. This index can be any local secondary index or global secondary index. Note that if you use the <code>IndexName</code> parameter, you must also provide <code>TableName</code>.<br/>TableName:  The name of the table containing the requested items; or, if you provide <code>IndexName</code>, the name of the table to which that index belongs.<br/>
        :return: ConsumedCapacity:  The capacity units consumed by the <code>Scan</code> operation. The data returned includes the total provisioned throughput consumed, along with statistics for the table and any indexes involved in the operation. <code>ConsumedCapacity</code> is only returned if the <code>ReturnConsumedCapacity</code> parameter was specified. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ProvisionedThroughputIntro.html">Provisioned Throughput</a> in the <i>Amazon DynamoDB Developer Guide</i>.:<br/>LastEvaluatedKey:  The primary key of the item where the operation stopped, inclusive of the previous result set. Use this value to start a new operation, excluding this value in the new request. If <code>LastEvaluatedKey</code> is empty, then the "last page" of results has been processed and there is no more data to be retrieved. If <code>LastEvaluatedKey</code> is not empty, it does not necessarily mean that there is more data in the result set. The only way to know when you have reached the end of the result set is when <code>LastEvaluatedKey</code> is empty.<br/>ScannedCount:  The number of items evaluated, before any <code>ScanFilter</code> is applied. A high <code>ScannedCount</code> value with few, or no, <code>Count</code> results indicates an inefficient <code>Scan</code> operation. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/QueryAndScan.html#Count">Count and ScannedCount</a> in the <i>Amazon DynamoDB Developer Guide</i>. If you did not use a filter in the request, then <code>ScannedCount</code> is the same as <code>Count</code>.<br/>Count:  The number of items in the response. If you set <code>ScanFilter</code> in the request, then <code>Count</code> is the number of items returned after the filter was applied, and <code>ScannedCount</code> is the number of matching items before the filter was applied. If you did not use a filter in the request, then <code>Count</code> is the same as <code>ScannedCount</code>.<br/>Items:  An array of item attributes that match the scan criteria. Each element in this array consists of an attribute name and the value for that attribute.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalSecondaryIndexes</i> The amount of throughput consumed on each global index affected by the operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LocalSecondaryIndexes</i> The amount of throughput consumed on each local index affected by the operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Table</i> The amount of throughput consumed on the table affected by the operation.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Table</b>: The amount of throughput consumed on the table affected by the operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WriteCapacityUnits</i> The total number of write capacity units consumed by the operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadCapacityUnits</i> The total number of read capacity units consumed by the operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CapacityUnits</i> The total number of capacity units consumed by the operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TableName</i> The name of the table that was affected by the operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CapacityUnits</i> The total number of capacity units consumed on a table or an index.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>WriteCapacityUnits</i> The total number of write capacity units consumed on a table or an index.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadCapacityUnits</i> The total number of read capacity units consumed on a table or an index.<br/>        """
        pass

    def tag_resource(self, Tags: List[Tag], ResourceArn: str):
        r"""Associate a set of tags with an Amazon DynamoDB resource. You can then activate these user-defined tags so that they appear on the Billing and Cost Management console for cost allocation tracking. You can call TagResource up to five times per second, per account.  For an overview on tagging DynamoDB resources, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Tagging.html">Tagging for DynamoDB</a> in the <i>Amazon DynamoDB Developer Guide</i>.

        :param self:
        :param Tags:  The tags to be assigned to the Amazon DynamoDB resource.<br/>ResourceArn:  Identifies the Amazon DynamoDB resource to which tags should be added. This value is an Amazon Resource Name (ARN).<br/>
        :return:         """
        pass

    def transact_get_items(self, TransactItems: List[TransactGetItem], ReturnConsumedCapacity: str=None) -> TransactGetItemsOutput:
        r""" <code>TransactGetItems</code> is a synchronous operation that atomically retrieves multiple items from one or more tables (but not from indexes) in a single account and Region. A <code>TransactGetItems</code> call can contain up to 25 <code>TransactGetItem</code> objects, each of which contains a <code>Get</code> structure that specifies an item to retrieve from a table in the account and Region. A call to <code>TransactGetItems</code> cannot retrieve items from tables in more than one AWS account or Region. The aggregate size of the items in the transaction cannot exceed 4 MB. DynamoDB rejects the entire <code>TransactGetItems</code> request if any of the following is true: <ul> <li> A conflicting operation is in the process of updating an item to be read. </li> <li> There is insufficient provisioned capacity for the transaction to be completed. </li> <li> There is a user error, such as an invalid data format. </li> <li> The aggregate size of the items in the transaction cannot exceed 4 MB. </li> </ul>

        :param self:
        :param ReturnConsumedCapacity:  A value of <code>TOTAL</code> causes consumed capacity information to be returned, and a value of <code>NONE</code> prevents that information from being returned. No other value is valid.<br/>TransactItems:  An ordered array of up to 25 <code>TransactGetItem</code> objects, each of which contains a <code>Get</code> structure.<br/>
        :return: Responses:  An ordered array of up to 25 <code>ItemResponse</code> objects, each of which corresponds to the <code>TransactGetItem</code> object in the same position in the <i>TransactItems</i> array. Each <code>ItemResponse</code> object contains a Map of the name-value pairs that are the projected attributes of the requested item. If a requested item could not be retrieved, the corresponding <code>ItemResponse</code> object is Null, or if the requested item has no projected attributes, the corresponding <code>ItemResponse</code> object is an empty Map. <br/>ConsumedCapacity:  If the <i>ReturnConsumedCapacity</i> value was <code>TOTAL</code>, this is an array of <code>ConsumedCapacity</code> objects, one for each table addressed by <code>TransactGetItem</code> objects in the <i>TransactItems</i> parameter. These <code>ConsumedCapacity</code> objects report the read-capacity units consumed by the <code>TransactGetItems</code> call in that table.<br/>        """
        pass

    def transact_write_items(self, TransactItems: List[TransactWriteItem], ReturnConsumedCapacity: str=None, ReturnItemCollectionMetrics: str=None, ClientRequestToken: str=None) -> TransactWriteItemsOutput:
        r""" <code>TransactWriteItems</code> is a synchronous write operation that groups up to 25 action requests. These actions can target items in different tables, but not in different AWS accounts or Regions, and no two actions can target the same item. For example, you cannot both <code>ConditionCheck</code> and <code>Update</code> the same item. The aggregate size of the items in the transaction cannot exceed 4 MB. The actions are completed atomically so that either all of them succeed, or all of them fail. They are defined by the following objects: <ul> <li>  <code>Put</code>  &#x97;   Initiates a <code>PutItem</code> operation to write a new item. This structure specifies the primary key of the item to be written, the name of the table to write it in, an optional condition expression that must be satisfied for the write to succeed, a list of the item's attributes, and a field indicating whether to retrieve the item's attributes if the condition is not met. </li> <li>  <code>Update</code>  &#x97;   Initiates an <code>UpdateItem</code> operation to update an existing item. This structure specifies the primary key of the item to be updated, the name of the table where it resides, an optional condition expression that must be satisfied for the update to succeed, an expression that defines one or more attributes to be updated, and a field indicating whether to retrieve the item's attributes if the condition is not met. </li> <li>  <code>Delete</code>  &#x97;   Initiates a <code>DeleteItem</code> operation to delete an existing item. This structure specifies the primary key of the item to be deleted, the name of the table where it resides, an optional condition expression that must be satisfied for the deletion to succeed, and a field indicating whether to retrieve the item's attributes if the condition is not met. </li> <li>  <code>ConditionCheck</code>  &#x97;   Applies a condition to an item that is not being modified by the transaction. This structure specifies the primary key of the item to be checked, the name of the table where it resides, a condition expression that must be satisfied for the transaction to succeed, and a field indicating whether to retrieve the item's attributes if the condition is not met. </li> </ul> DynamoDB rejects the entire <code>TransactWriteItems</code> request if any of the following is true: <ul> <li> A condition in one of the condition expressions is not met. </li> <li> An ongoing operation is in the process of updating the same item. </li> <li> There is insufficient provisioned capacity for the transaction to be completed. </li> <li> An item size becomes too large (bigger than 400 KB), a local secondary index (LSI) becomes too large, or a similar validation error occurs because of changes made by the transaction. </li> <li> The aggregate size of the items in the transaction exceeds 4 MB. </li> <li> There is a user error, such as an invalid data format. </li> </ul>

        :param self:
        :param ClientRequestToken:  Providing a <code>ClientRequestToken</code> makes the call to <code>TransactWriteItems</code> idempotent, meaning that multiple identical calls have the same effect as one single call. Although multiple identical calls using the same client request token produce the same result on the server (no side effects), the responses to the calls might not be the same. If the <code>ReturnConsumedCapacity&gt;</code> parameter is set, then the initial <code>TransactWriteItems</code> call returns the amount of write capacity units consumed in making the changes. Subsequent <code>TransactWriteItems</code> calls with the same client token return the number of read capacity units consumed in reading the item. A client request token is valid for 10 minutes after the first request that uses it is completed. After 10 minutes, any request with the same client token is treated as a new request. Do not resubmit the same request with the same client token for more than 10 minutes, or the result might not be idempotent. If you submit a request with the same client token but a change in other parameters within the 10-minute idempotency window, DynamoDB returns an <code>IdempotentParameterMismatch</code> exception.<br/>ReturnItemCollectionMetrics:  Determines whether item collection metrics are returned. If set to <code>SIZE</code>, the response includes statistics about item collections (if any), that were modified during the operation and are returned in the response. If set to <code>NONE</code> (the default), no statistics are returned. <br/>ReturnConsumedCapacity:  Determines the level of detail about provisioned throughput consumption that is returned in the response: <ul> <li>  <code>INDEXES</code> - The response includes the aggregate <code>ConsumedCapacity</code> for the operation, together with <code>ConsumedCapacity</code> for each table and secondary index that was accessed. Note that some operations, such as <code>GetItem</code> and <code>BatchGetItem</code>, do not access any indexes at all. In these cases, specifying <code>INDEXES</code> will only return <code>ConsumedCapacity</code> information for table(s). </li> <li>  <code>TOTAL</code> - The response includes only the aggregate <code>ConsumedCapacity</code> for the operation. </li> <li>  <code>NONE</code> - No <code>ConsumedCapacity</code> details are included in the response. </li> </ul><br/>TransactItems:  An ordered array of up to 25 <code>TransactWriteItem</code> objects, each of which contains a <code>ConditionCheck</code>, <code>Put</code>, <code>Update</code>, or <code>Delete</code> object. These can operate on items in different tables, but the tables must reside in the same AWS account and Region, and no two of them can operate on the same item. <br/>
        :return: ItemCollectionMetrics:  A list of tables that were processed by <code>TransactWriteItems</code> and, for each table, information about any item collections that were affected by individual <code>UpdateItem</code>, <code>PutItem</code>, or <code>DeleteItem</code> operations. <br/>ConsumedCapacity:  The capacity units consumed by the entire <code>TransactWriteItems</code> operation. The values of the list are ordered according to the ordering of the <code>TransactItems</code> request parameter. <br/>        """
        pass

    def untag_resource(self, TagKeys: List[TagKeyString], ResourceArn: str):
        r"""Removes the association of tags from an Amazon DynamoDB resource. You can call <code>UntagResource</code> up to five times per second, per account.  For an overview on tagging DynamoDB resources, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Tagging.html">Tagging for DynamoDB</a> in the <i>Amazon DynamoDB Developer Guide</i>.

        :param self:
        :param TagKeys:  A list of tag keys. Existing tags of the resource whose keys are members of this list will be removed from the DynamoDB resource.<br/>ResourceArn:  The DynamoDB resource that the tags will be removed from. This value is an Amazon Resource Name (ARN).<br/>
        :return:         """
        pass

    def update_continuous_backups(self, PointInTimeRecoverySpecification: PointInTimeRecoverySpecification, TableName: str) -> UpdateContinuousBackupsOutput:
        r""" <code>UpdateContinuousBackups</code> enables or disables point in time recovery for the specified table. A successful <code>UpdateContinuousBackups</code> call returns the current <code>ContinuousBackupsDescription</code>. Continuous backups are <code>ENABLED</code> on all tables at table creation. If point in time recovery is enabled, <code>PointInTimeRecoveryStatus</code> will be set to ENABLED.  Once continuous backups and point in time recovery are enabled, you can restore to any point in time within <code>EarliestRestorableDateTime</code> and <code>LatestRestorableDateTime</code>.   <code>LatestRestorableDateTime</code> is typically 5 minutes before the current time. You can restore your table to any point in time during the last 35 days. 

        :param self:
        :param PointInTimeRecoverySpecification:  Represents the settings used to enable point in time recovery.:<br/>TableName:  The name of the table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PointInTimeRecoveryEnabled</i> Indicates whether point in time recovery is enabled (true) or disabled (false) on the table.<br/>
        :return: ContinuousBackupsDescription:  Represents the continuous backups and point in time recovery settings on the table.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PointInTimeRecoveryDescription</i> The description of the point in time recovery settings applied to the table.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PointInTimeRecoveryDescription</b>: The description of the point in time recovery settings applied to the table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ContinuousBackupsStatus</i>  <code>ContinuousBackupsStatus</code> can be one of the following states: ENABLED, DISABLED<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestRestorableDateTime</i>  <code>LatestRestorableDateTime</code> is typically 5 minutes before the current time. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EarliestRestorableDateTime</i> Specifies the earliest point in time you can restore your table to. You can restore your table to any point in time during the last 35 days. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PointInTimeRecoveryStatus</i> The current state of point in time recovery: <ul> <li>  <code>ENABLING</code> - Point in time recovery is being enabled. </li> <li>  <code>ENABLED</code> - Point in time recovery is enabled. </li> <li>  <code>DISABLED</code> - Point in time recovery is disabled. </li> </ul><br/>        """
        pass

    def update_contributor_insights(self, ContributorInsightsAction: str, TableName: str, IndexName: str=None) -> UpdateContributorInsightsOutput:
        r"""Updates the status for contributor insights for a specific table or index.

        :param self:
        :param ContributorInsightsAction:  Represents the contributor insights action.<br/>IndexName:  The global secondary index name, if applicable.<br/>TableName:  The name of the table.<br/>
        :return: ContributorInsightsStatus:  The status of contributor insights<br/>IndexName:  The name of the global secondary index, if applicable.<br/>TableName:  The name of the table.<br/>        """
        pass

    def update_global_table(self, ReplicaUpdates: List[ReplicaUpdate], GlobalTableName: str) -> UpdateGlobalTableOutput:
        r"""Adds or removes replicas in the specified global table. The global table must already exist to be able to use this operation. Any replica to be added must be empty, have the same name as the global table, have the same key schema, have DynamoDB Streams enabled, and have the same provisioned and maximum write capacity units. <note> Although you can use <code>UpdateGlobalTable</code> to add replicas and remove replicas in a single request, for simplicity we recommend that you issue separate requests for adding or removing replicas. </note>  If global secondary indexes are specified, then the following conditions must also be met:  <ul> <li>  The global secondary indexes must have the same name.  </li> <li>  The global secondary indexes must have the same hash key and sort key (if present).  </li> <li>  The global secondary indexes must have the same provisioned and maximum write capacity units.  </li> </ul>

        :param self:
        :param ReplicaUpdates:  A list of Regions that should be added or removed from the global table.<br/>GlobalTableName:  The global table name.<br/>
        :return: GlobalTableDescription:  Contains the details of the global table.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalTableName</i> The global table name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalTableStatus</i> The current state of the global table: <ul> <li>  <code>CREATING</code> - The global table is being created. </li> <li>  <code>UPDATING</code> - The global table is being updated. </li> <li>  <code>DELETING</code> - The global table is being deleted. </li> <li>  <code>ACTIVE</code> - The global table is ready for use. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDateTime</i> The creation time of the global table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalTableArn</i> The unique identifier of the global table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationGroup</i> The Regions where the global table has replicas.<br/>        """
        pass

    def update_global_table_settings(self, GlobalTableName: str, GlobalTableBillingMode: str=None, GlobalTableProvisionedWriteCapacityUnits: PositiveLongObject=None, GlobalTableProvisionedWriteCapacityAutoScalingSettingsUpdate: AutoScalingSettingsUpdate=None, GlobalTableGlobalSecondaryIndexSettingsUpdate: List[GlobalTableGlobalSecondaryIndexSettingsUpdate]=None, ReplicaSettingsUpdate: List[ReplicaSettingsUpdate]=None) -> UpdateGlobalTableSettingsOutput:
        r"""Updates settings for a global table.

        :param self:
        :param ReplicaSettingsUpdate:  Represents the settings for a global table in a Region that will be modified.<br/>GlobalTableGlobalSecondaryIndexSettingsUpdate:  Represents the settings of a global secondary index for a global table that will be modified.<br/>GlobalTableProvisionedWriteCapacityAutoScalingSettingsUpdate:  Auto scaling settings for managing provisioned write capacity for the global table.:<br/>GlobalTableProvisionedWriteCapacityUnits:  The maximum number of writes consumed per second before DynamoDB returns a <code>ThrottlingException.</code> <br/>GlobalTableBillingMode:  The billing mode of the global table. If <code>GlobalTableBillingMode</code> is not specified, the global table defaults to <code>PROVISIONED</code> capacity billing mode. <ul> <li>  <code>PROVISIONED</code> - We recommend using <code>PROVISIONED</code> for predictable workloads. <code>PROVISIONED</code> sets the billing mode to <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.ProvisionedThroughput.Manual">Provisioned Mode</a>. </li> <li>  <code>PAY_PER_REQUEST</code> - We recommend using <code>PAY_PER_REQUEST</code> for unpredictable workloads. <code>PAY_PER_REQUEST</code> sets the billing mode to <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.OnDemand">On-Demand Mode</a>.  </li> </ul><br/>GlobalTableName:  The name of the global table<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ScalingPolicyUpdate</i> The scaling policy to apply for scaling target global table or global secondary index capacity units.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ScalingPolicyUpdate</b>: The scaling policy to apply for scaling target global table or global secondary index capacity units.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoScalingRoleArn</i> Role ARN used for configuring auto scaling policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoScalingDisabled</i> Disabled auto scaling for this global table or global secondary index.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaximumUnits</i> The maximum capacity units that a global table or global secondary index should be scaled up to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MinimumUnits</i> The minimum capacity units that a global table or global secondary index should be scaled down to.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PolicyName</i> The name of the scaling policy.<br/>Represents a target tracking scaling policy configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TargetTrackingScalingPolicyConfiguration</b>: Represents a target tracking scaling policy configuration.
        :return: ReplicaSettings:  The Region-specific settings for the global table.<br/>GlobalTableName:  The name of the global table.<br/>        """
        pass

    def update_item(self, Key: Key, TableName: str, AttributeUpdates: AttributeUpdates=None, Expected: ExpectedAttributeMap=None, ConditionalOperator: str=None, ReturnValues: str=None, ReturnConsumedCapacity: str=None, ReturnItemCollectionMetrics: str=None, UpdateExpression: str=None, ConditionExpression: str=None, ExpressionAttributeNames: ExpressionAttributeNameMap=None, ExpressionAttributeValues: ExpressionAttributeValueMap=None) -> UpdateItemOutput:
        r"""Edits an existing item's attributes, or adds a new item to the table if it does not already exist. You can put, delete, or add attribute values. You can also perform a conditional update on an existing item (insert a new attribute name-value pair if it doesn't exist, or replace an existing name-value pair if it has certain expected attribute values). You can also return the item's attribute values in the same <code>UpdateItem</code> operation using the <code>ReturnValues</code> parameter.

        :param self:
        :param ExpressionAttributeValues:  One or more values that can be substituted in an expression. Use the <b>:</b> (colon) character in an expression to dereference an attribute value. For example, suppose that you wanted to check whether the value of the <code>ProductStatus</code> attribute was one of the following:   <code>Available | Backordered | Discontinued</code>  You would first need to specify <code>ExpressionAttributeValues</code> as follows:  <code>{ ":avail":{"S":"Available"}, ":back":{"S":"Backordered"}, ":disc":{"S":"Discontinued"} }</code>  You could then use these values in an expression, such as this:  <code>ProductStatus IN (:avail, :back, :disc)</code>  For more information on expression attribute values, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.SpecifyingConditions.html">Condition Expressions</a> in the <i>Amazon DynamoDB Developer Guide</i>.<br/>ExpressionAttributeNames:  One or more substitution tokens for attribute names in an expression. The following are some use cases for using <code>ExpressionAttributeNames</code>: <ul> <li> To access an attribute whose name conflicts with a DynamoDB reserved word. </li> <li> To create a placeholder for repeating occurrences of an attribute name in an expression. </li> <li> To prevent special characters in an attribute name from being misinterpreted in an expression. </li> </ul> Use the <b>#</b> character in an expression to dereference an attribute name. For example, consider the following attribute name: <ul> <li>  <code>Percentile</code>  </li> </ul> The name of this attribute conflicts with a reserved word, so it cannot be used directly in an expression. (For the complete list of reserved words, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ReservedWords.html">Reserved Words</a> in the <i>Amazon DynamoDB Developer Guide</i>.) To work around this, you could specify the following for <code>ExpressionAttributeNames</code>: <ul> <li>  <code>{"#P":"Percentile"}</code>  </li> </ul> You could then use this substitution in an expression, as in this example: <ul> <li>  <code>#P = :val</code>  </li> </ul> <note> Tokens that begin with the <b>:</b> character are <i>expression attribute values</i>, which are placeholders for the actual value at runtime. </note> For more information about expression attribute names, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.AccessingItemAttributes.html">Specifying Item Attributes</a> in the <i>Amazon DynamoDB Developer Guide</i>.<br/>ConditionExpression:  A condition that must be satisfied in order for a conditional update to succeed. An expression can contain any of the following: <ul> <li> Functions: <code>attribute_exists | attribute_not_exists | attribute_type | contains | begins_with | size</code>  These function names are case-sensitive. </li> <li> Comparison operators: <code>= | &lt;&gt; | &lt; | &gt; | &lt;= | &gt;= | BETWEEN | IN </code>  </li> <li>  Logical operators: <code>AND | OR | NOT</code>  </li> </ul> For more information about condition expressions, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.SpecifyingConditions.html">Specifying Conditions</a> in the <i>Amazon DynamoDB Developer Guide</i>.<br/>UpdateExpression:  An expression that defines one or more attributes to be updated, the action to be performed on them, and new values for them. The following action values are available for <code>UpdateExpression</code>. <ul> <li>  <code>SET</code> - Adds one or more attributes and values to an item. If any of these attributes already exist, they are replaced by the new values. You can also use <code>SET</code> to add or subtract from an attribute that is of type Number. For example: <code>SET myNum = myNum + :val</code>   <code>SET</code> supports the following functions: <ul> <li>  <code>if_not_exists (path, operand)</code> - if the item does not contain an attribute at the specified path, then <code>if_not_exists</code> evaluates to operand; otherwise, it evaluates to path. You can use this function to avoid overwriting an attribute that may already be present in the item. </li> <li>  <code>list_append (operand, operand)</code> - evaluates to a list with a new element added to it. You can append the new element to the start or the end of the list by reversing the order of the operands. </li> </ul> These function names are case-sensitive. </li> <li>  <code>REMOVE</code> - Removes one or more attributes from an item. </li> <li>  <code>ADD</code> - Adds the specified value to the item, if the attribute does not already exist. If the attribute does exist, then the behavior of <code>ADD</code> depends on the data type of the attribute: <ul> <li> If the existing attribute is a number, and if <code>Value</code> is also a number, then <code>Value</code> is mathematically added to the existing attribute. If <code>Value</code> is a negative number, then it is subtracted from the existing attribute. <note> If you use <code>ADD</code> to increment or decrement a number value for an item that doesn't exist before the update, DynamoDB uses <code>0</code> as the initial value. Similarly, if you use <code>ADD</code> for an existing item to increment or decrement an attribute value that doesn't exist before the update, DynamoDB uses <code>0</code> as the initial value. For example, suppose that the item you want to update doesn't have an attribute named <code>itemcount</code>, but you decide to <code>ADD</code> the number <code>3</code> to this attribute anyway. DynamoDB will create the <code>itemcount</code> attribute, set its initial value to <code>0</code>, and finally add <code>3</code> to it. The result will be a new <code>itemcount</code> attribute in the item, with a value of <code>3</code>. </note> </li> <li> If the existing data type is a set and if <code>Value</code> is also a set, then <code>Value</code> is added to the existing set. For example, if the attribute value is the set <code>[1,2]</code>, and the <code>ADD</code> action specified <code>[3]</code>, then the final attribute value is <code>[1,2,3]</code>. An error occurs if an <code>ADD</code> action is specified for a set attribute and the attribute type specified does not match the existing set type.  Both sets must have the same primitive data type. For example, if the existing data type is a set of strings, the <code>Value</code> must also be a set of strings. </li> </ul> <important> The <code>ADD</code> action only supports Number and set data types. In addition, <code>ADD</code> can only be used on top-level attributes, not nested attributes. </important> </li> <li>  <code>DELETE</code> - Deletes an element from a set. If a set of values is specified, then those values are subtracted from the old set. For example, if the attribute value was the set <code>[a,b,c]</code> and the <code>DELETE</code> action specifies <code>[a,c]</code>, then the final attribute value is <code>[b]</code>. Specifying an empty set is an error. <important> The <code>DELETE</code> action only supports set data types. In addition, <code>DELETE</code> can only be used on top-level attributes, not nested attributes. </important> </li> </ul> You can have many actions in a single expression, such as the following: <code>SET a=:value1, b=:value2 DELETE :value3, :value4, :value5</code>  For more information on update expressions, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.Modifying.html">Modifying Items and Attributes</a> in the <i>Amazon DynamoDB Developer Guide</i>.<br/>ReturnItemCollectionMetrics:  Determines whether item collection metrics are returned. If set to <code>SIZE</code>, the response includes statistics about item collections, if any, that were modified during the operation are returned in the response. If set to <code>NONE</code> (the default), no statistics are returned.<br/>ReturnConsumedCapacity:  Determines the level of detail about provisioned throughput consumption that is returned in the response: <ul> <li>  <code>INDEXES</code> - The response includes the aggregate <code>ConsumedCapacity</code> for the operation, together with <code>ConsumedCapacity</code> for each table and secondary index that was accessed. Note that some operations, such as <code>GetItem</code> and <code>BatchGetItem</code>, do not access any indexes at all. In these cases, specifying <code>INDEXES</code> will only return <code>ConsumedCapacity</code> information for table(s). </li> <li>  <code>TOTAL</code> - The response includes only the aggregate <code>ConsumedCapacity</code> for the operation. </li> <li>  <code>NONE</code> - No <code>ConsumedCapacity</code> details are included in the response. </li> </ul><br/>ReturnValues:  Use <code>ReturnValues</code> if you want to get the item attributes as they appear before or after they are updated. For <code>UpdateItem</code>, the valid values are: <ul> <li>  <code>NONE</code> - If <code>ReturnValues</code> is not specified, or if its value is <code>NONE</code>, then nothing is returned. (This setting is the default for <code>ReturnValues</code>.) </li> <li>  <code>ALL_OLD</code> - Returns all of the attributes of the item, as they appeared before the UpdateItem operation. </li> <li>  <code>UPDATED_OLD</code> - Returns only the updated attributes, as they appeared before the UpdateItem operation. </li> <li>  <code>ALL_NEW</code> - Returns all of the attributes of the item, as they appear after the UpdateItem operation. </li> <li>  <code>UPDATED_NEW</code> - Returns only the updated attributes, as they appear after the UpdateItem operation. </li> </ul> There is no additional cost associated with requesting a return value aside from the small network and processing overhead of receiving a larger response. No read capacity units are consumed. The values returned are strongly consistent.<br/>ConditionalOperator:  This is a legacy parameter. Use <code>ConditionExpression</code> instead. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.ConditionalOperator.html">ConditionalOperator</a> in the <i>Amazon DynamoDB Developer Guide</i>.<br/>Expected:  This is a legacy parameter. Use <code>ConditionExpression</code> instead. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.Expected.html">Expected</a> in the <i>Amazon DynamoDB Developer Guide</i>.<br/>AttributeUpdates:  This is a legacy parameter. Use <code>UpdateExpression</code> instead. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.AttributeUpdates.html">AttributeUpdates</a> in the <i>Amazon DynamoDB Developer Guide</i>.<br/>Key:  The primary key of the item to be updated. Each element consists of an attribute name and a value for that attribute. For the primary key, you must provide all of the attributes. For example, with a simple primary key, you only need to provide a value for the partition key. For a composite primary key, you must provide values for both the partition key and the sort key.<br/>TableName:  The name of the table containing the item to update.<br/>
        :return: ItemCollectionMetrics:  Information about item collections, if any, that were affected by the <code>UpdateItem</code> operation. <code>ItemCollectionMetrics</code> is only returned if the <code>ReturnItemCollectionMetrics</code> parameter was specified. If the table does not have any local secondary indexes, this information is not returned in the response. Each <code>ItemCollectionMetrics</code> element consists of: <ul> <li>  <code>ItemCollectionKey</code> - The partition key value of the item collection. This is the same as the partition key value of the item itself. </li> <li>  <code>SizeEstimateRangeGB</code> - An estimate of item collection size, in gigabytes. This value is a two-element array containing a lower bound and an upper bound for the estimate. The estimate includes the size of all the items in the table, plus the size of all attributes projected into all of the local secondary indexes on that table. Use this estimate to measure whether a local secondary index is approaching its size limit. The estimate is subject to change over time; therefore, do not rely on the precision or accuracy of the estimate. </li> </ul>:<br/>ConsumedCapacity:  The capacity units consumed by the <code>UpdateItem</code> operation. The data returned includes the total provisioned throughput consumed, along with statistics for the table and any indexes involved in the operation. <code>ConsumedCapacity</code> is only returned if the <code>ReturnConsumedCapacity</code> parameter was specified. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ProvisionedThroughputIntro.html">Provisioned Throughput</a> in the <i>Amazon DynamoDB Developer Guide</i>.:<br/>Attributes:  A map of attribute values as they appear before or after the <code>UpdateItem</code> operation, as determined by the <code>ReturnValues</code> parameter. The <code>Attributes</code> map is only present if <code>ReturnValues</code> was specified as something other than <code>NONE</code> in the request. Each element represents one attribute.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalSecondaryIndexes</i> The amount of throughput consumed on each global index affected by the operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LocalSecondaryIndexes</i> The amount of throughput consumed on each local index affected by the operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Table</i> The amount of throughput consumed on the table affected by the operation.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Table</b>: The amount of throughput consumed on the table affected by the operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WriteCapacityUnits</i> The total number of write capacity units consumed by the operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadCapacityUnits</i> The total number of read capacity units consumed by the operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CapacityUnits</i> The total number of capacity units consumed by the operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TableName</i> The name of the table that was affected by the operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CapacityUnits</i> The total number of capacity units consumed on a table or an index.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>WriteCapacityUnits</i> The total number of write capacity units consumed on a table or an index.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadCapacityUnits</i> The total number of read capacity units consumed on a table or an index.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SizeEstimateRangeGB</i> An estimate of item collection size, in gigabytes. This value is a two-element array containing a lower bound and an upper bound for the estimate. The estimate includes the size of all the items in the table, plus the size of all attributes projected into all of the local secondary indexes on that table. Use this estimate to measure whether a local secondary index is approaching its size limit. The estimate is subject to change over time; therefore, do not rely on the precision or accuracy of the estimate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ItemCollectionKey</i> The partition key value of the item collection. This value is the same as the partition key value of the item.<br/>        """
        pass

    def update_table(self, TableName: str, AttributeDefinitions: List[AttributeDefinition]=None, BillingMode: str=None, ProvisionedThroughput: ProvisionedThroughput=None, GlobalSecondaryIndexUpdates: List[GlobalSecondaryIndexUpdate]=None, StreamSpecification: StreamSpecification=None, SSESpecification: SSESpecification=None, ReplicaUpdates: List[ReplicationGroupUpdate]=None) -> UpdateTableOutput:
        r"""Modifies the provisioned throughput settings, global secondary indexes, or DynamoDB Streams settings for a given table. You can only perform one of the following operations at once: <ul> <li> Modify the provisioned throughput settings of the table. </li> <li> Enable or disable DynamoDB Streams on the table. </li> <li> Remove a global secondary index from the table. </li> <li> Create a new global secondary index on the table. After the index begins backfilling, you can use <code>UpdateTable</code> to perform other operations. </li> </ul>  <code>UpdateTable</code> is an asynchronous operation; while it is executing, the table status changes from <code>ACTIVE</code> to <code>UPDATING</code>. While it is <code>UPDATING</code>, you cannot issue another <code>UpdateTable</code> request. When the table returns to the <code>ACTIVE</code> state, the <code>UpdateTable</code> operation is complete.

        :param self:
        :param ReplicaUpdates:  A list of replica update actions (create, delete, or update) for the table. <note> This property only applies to <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/globaltables.V2.html">Version 2019.11.21</a> of global tables. </note><br/>SSESpecification:  The new server-side encryption settings for the specified table.:<br/>StreamSpecification:  Represents the DynamoDB Streams configuration for the table. <note> You receive a <code>ResourceInUseException</code> if you try to enable a stream on a table that already has a stream, or if you try to disable a stream on a table that doesn't have a stream. </note>:<br/>GlobalSecondaryIndexUpdates:  An array of one or more global secondary indexes for the table. For each index in the array, you can request one action: <ul> <li>  <code>Create</code> - add a new global secondary index to the table. </li> <li>  <code>Update</code> - modify the provisioned throughput settings of an existing global secondary index. </li> <li>  <code>Delete</code> - remove a global secondary index from the table. </li> </ul> You can create or delete only one global secondary index per <code>UpdateTable</code> operation. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GSI.OnlineOps.html">Managing Global Secondary Indexes</a> in the <i>Amazon DynamoDB Developer Guide</i>. <br/>ProvisionedThroughput:  The new provisioned throughput settings for the specified table or index.:<br/>BillingMode:  Controls how you are charged for read and write throughput and how you manage capacity. When switching from pay-per-request to provisioned capacity, initial provisioned capacity values must be set. The initial provisioned capacity values are estimated based on the consumed read and write capacity of your table and global secondary indexes over the past 30 minutes. <ul> <li>  <code>PROVISIONED</code> - We recommend using <code>PROVISIONED</code> for predictable workloads. <code>PROVISIONED</code> sets the billing mode to <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.ProvisionedThroughput.Manual">Provisioned Mode</a>. </li> <li>  <code>PAY_PER_REQUEST</code> - We recommend using <code>PAY_PER_REQUEST</code> for unpredictable workloads. <code>PAY_PER_REQUEST</code> sets the billing mode to <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.OnDemand">On-Demand Mode</a>.  </li> </ul><br/>TableName:  The name of the table to be updated.<br/>AttributeDefinitions:  An array of attributes that describe the key schema for the table and indexes. If you are adding a new global secondary index to the table, <code>AttributeDefinitions</code> must include the key element(s) of the new index.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WriteCapacityUnits</i> The maximum number of writes consumed per second before DynamoDB returns a <code>ThrottlingException</code>. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithTables.html#ProvisionedThroughput">Specifying Read and Write Requirements</a> in the <i>Amazon DynamoDB Developer Guide</i>. If read/write capacity mode is <code>PAY_PER_REQUEST</code> the value is set to 0.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadCapacityUnits</i> The maximum number of strongly consistent reads consumed per second before DynamoDB returns a <code>ThrottlingException</code>. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithTables.html#ProvisionedThroughput">Specifying Read and Write Requirements</a> in the <i>Amazon DynamoDB Developer Guide</i>. If read/write capacity mode is <code>PAY_PER_REQUEST</code> the value is set to 0.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamViewType</i>  When an item in the table is modified, <code>StreamViewType</code> determines what information is written to the stream for this table. Valid values for <code>StreamViewType</code> are: <ul> <li>  <code>KEYS_ONLY</code> - Only the key attributes of the modified item are written to the stream. </li> <li>  <code>NEW_IMAGE</code> - The entire item, as it appears after it was modified, is written to the stream. </li> <li>  <code>OLD_IMAGE</code> - The entire item, as it appeared before it was modified, is written to the stream. </li> <li>  <code>NEW_AND_OLD_IMAGES</code> - Both the new and the old item images of the item are written to the stream. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamEnabled</i> Indicates whether DynamoDB Streams is enabled (true) or disabled (false) on the table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KMSMasterKeyId</i> The AWS KMS customer master key (CMK) that should be used for the AWS KMS encryption. To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias name, or alias ARN. Note that you should only provide this parameter if the key is different from the default DynamoDB customer master key alias/aws/dynamodb.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SSEType</i> Server-side encryption type. The only supported value is: <ul> <li>  <code>KMS</code> - Server-side encryption that uses AWS Key Management Service. The key is stored in your account and is managed by AWS KMS (AWS KMS charges apply). </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Indicates whether server-side encryption is done using an AWS managed CMK or an AWS owned CMK. If enabled (true), server-side encryption type is set to <code>KMS</code> and an AWS managed CMK is used (AWS KMS charges apply). If disabled (false) or not specified, server-side encryption is set to AWS owned CMK.<br/>
        :return: TableDescription:  Represents the properties of the table.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ArchivalSummary</i> Contains information about the table archive.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ArchivalSummary</b>: Contains information about the table archive.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SSEDescription</i> The description of the server-side encryption status on the specified table.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SSEDescription</b>: The description of the server-side encryption status on the specified table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RestoreSummary</i> Contains details for the restore.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RestoreSummary</b>: Contains details for the restore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Replicas</i> Represents replicas of the table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalTableVersion</i> Represents the version of <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GlobalTables.html">global tables</a> in use, if the table is replicated across AWS Regions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestStreamArn</i> The Amazon Resource Name (ARN) that uniquely identifies the latest stream for this table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestStreamLabel</i> A timestamp, in ISO 8601 format, for this stream. Note that <code>LatestStreamLabel</code> is not a unique identifier for the stream, because it is possible that a stream from another table might have the same timestamp. However, the combination of the following three elements is guaranteed to be unique: <ul> <li> AWS customer ID </li> <li> Table name </li> <li>  <code>StreamLabel</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamSpecification</i> The current DynamoDB Streams configuration for the table.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StreamSpecification</b>: The current DynamoDB Streams configuration for the table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalSecondaryIndexes</i> The global secondary indexes, if any, on the table. Each index is scoped to a given partition key value. Each element is composed of: <ul> <li>  <code>Backfilling</code> - If true, then the index is currently in the backfilling phase. Backfilling occurs only when a new global secondary index is added to the table. It is the process by which DynamoDB populates the new index with data from the table. (This attribute does not appear for indexes that were created during a <code>CreateTable</code> operation.)   You can delete an index that is being created during the <code>Backfilling</code> phase when <code>IndexStatus</code> is set to CREATING and <code>Backfilling</code> is true. You can't delete the index that is being created when <code>IndexStatus</code> is set to CREATING and <code>Backfilling</code> is false. (This attribute does not appear for indexes that were created during a <code>CreateTable</code> operation.) </li> <li>  <code>IndexName</code> - The name of the global secondary index. </li> <li>  <code>IndexSizeBytes</code> - The total size of the global secondary index, in bytes. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.  </li> <li>  <code>IndexStatus</code> - The current status of the global secondary index: <ul> <li>  <code>CREATING</code> - The index is being created. </li> <li>  <code>UPDATING</code> - The index is being updated. </li> <li>  <code>DELETING</code> - The index is being deleted. </li> <li>  <code>ACTIVE</code> - The index is ready for use. </li> </ul> </li> <li>  <code>ItemCount</code> - The number of items in the global secondary index. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.  </li> <li>  <code>KeySchema</code> - Specifies the complete index key schema. The attribute names in the key schema must be between 1 and 255 characters (inclusive). The key schema must begin with the same partition key as the table. </li> <li>  <code>Projection</code> - Specifies attributes that are copied (projected) from the table into the index. These are in addition to the primary key attributes and index key attributes, which are automatically projected. Each attribute specification is composed of: <ul> <li>  <code>ProjectionType</code> - One of the following: <ul> <li>  <code>KEYS_ONLY</code> - Only the index and primary keys are projected into the index. </li> <li>  <code>INCLUDE</code> - In addition to the attributes described in <code>KEYS_ONLY</code>, the secondary index will include other non-key attributes that you specify. </li> <li>  <code>ALL</code> - All of the table attributes are projected into the index. </li> </ul> </li> <li>  <code>NonKeyAttributes</code> - A list of one or more non-key attribute names that are projected into the secondary index. The total count of attributes provided in <code>NonKeyAttributes</code>, summed across all of the secondary indexes, must not exceed 20. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total. </li> </ul> </li> <li>  <code>ProvisionedThroughput</code> - The provisioned throughput settings for the global secondary index, consisting of read and write capacity units, along with data about increases and decreases.  </li> </ul> If the table is in the <code>DELETING</code> state, no information about indexes will be returned.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LocalSecondaryIndexes</i> Represents one or more local secondary indexes on the table. Each index is scoped to a given partition key value. Tables with one or more local secondary indexes are subject to an item collection size limit, where the amount of data within a given item collection cannot exceed 10 GB. Each element is composed of: <ul> <li>  <code>IndexName</code> - The name of the local secondary index. </li> <li>  <code>KeySchema</code> - Specifies the complete index key schema. The attribute names in the key schema must be between 1 and 255 characters (inclusive). The key schema must begin with the same partition key as the table. </li> <li>  <code>Projection</code> - Specifies attributes that are copied (projected) from the table into the index. These are in addition to the primary key attributes and index key attributes, which are automatically projected. Each attribute specification is composed of: <ul> <li>  <code>ProjectionType</code> - One of the following: <ul> <li>  <code>KEYS_ONLY</code> - Only the index and primary keys are projected into the index. </li> <li>  <code>INCLUDE</code> - Only the specified table attributes are projected into the index. The list of projected attributes is in <code>NonKeyAttributes</code>. </li> <li>  <code>ALL</code> - All of the table attributes are projected into the index. </li> </ul> </li> <li>  <code>NonKeyAttributes</code> - A list of one or more non-key attribute names that are projected into the secondary index. The total count of attributes provided in <code>NonKeyAttributes</code>, summed across all of the secondary indexes, must not exceed 20. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total. </li> </ul> </li> <li>  <code>IndexSizeBytes</code> - Represents the total size of the index, in bytes. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value. </li> <li>  <code>ItemCount</code> - Represents the number of items in the index. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value. </li> </ul> If the table is in the <code>DELETING</code> state, no information about indexes will be returned.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BillingModeSummary</i> Contains the details for the read/write capacity mode.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>BillingModeSummary</b>: Contains the details for the read/write capacity mode.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TableId</i> Unique identifier for the table for which the backup was created. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TableArn</i> The Amazon Resource Name (ARN) that uniquely identifies the table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ItemCount</i> The number of items in the specified table. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TableSizeBytes</i> The total size of the specified table, in bytes. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProvisionedThroughput</i> The provisioned throughput settings for the table, consisting of read and write capacity units, along with data about increases and decreases.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ProvisionedThroughput</b>: The provisioned throughput settings for the table, consisting of read and write capacity units, along with data about increases and decreases.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDateTime</i> The date and time when the table was created, in <a href="http://www.epochconverter.com/">UNIX epoch time</a> format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TableStatus</i> The current state of the table: <ul> <li>  <code>CREATING</code> - The table is being created. </li> <li>  <code>UPDATING</code> - The table is being updated. </li> <li>  <code>DELETING</code> - The table is being deleted. </li> <li>  <code>ACTIVE</code> - The table is ready for use. </li> <li>  <code>INACCESSIBLE_ENCRYPTION_CREDENTIALS</code> - The AWS KMS key used to encrypt the table in inaccessible. Table operations may fail due to failure to use the AWS KMS key. DynamoDB will initiate the table archival process when a table's AWS KMS key remains inaccessible for more than seven days.  </li> <li>  <code>ARCHIVING</code> - The table is being archived. Operations are not allowed until archival is complete.  </li> <li>  <code>ARCHIVED</code> - The table has been archived. See the ArchivalReason for more information.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KeySchema</i> The primary key structure for the table. Each <code>KeySchemaElement</code> consists of: <ul> <li>  <code>AttributeName</code> - The name of the attribute. </li> <li>  <code>KeyType</code> - The role of the attribute: <ul> <li>  <code>HASH</code> - partition key </li> <li>  <code>RANGE</code> - sort key </li> </ul> <note> The partition key of an item is also known as its <i>hash attribute</i>. The term "hash attribute" derives from DynamoDB's usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values. The sort key of an item is also known as its <i>range attribute</i>. The term "range attribute" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value. </note> </li> </ul> For more information about primary keys, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataModel.html#DataModelPrimaryKey">Primary Key</a> in the <i>Amazon DynamoDB Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TableName</i> The name of the table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AttributeDefinitions</i> An array of <code>AttributeDefinition</code> objects. Each of these objects describes one attribute in the table and index key schema. Each <code>AttributeDefinition</code> object in this array is composed of: <ul> <li>  <code>AttributeName</code> - The name of the attribute. </li> <li>  <code>AttributeType</code> - The data type for the attribute. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>WriteCapacityUnits</i> The maximum number of writes consumed per second before DynamoDB returns a <code>ThrottlingException</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadCapacityUnits</i> The maximum number of strongly consistent reads consumed per second before DynamoDB returns a <code>ThrottlingException</code>. Eventually consistent reads require less effort than strongly consistent reads, so a setting of 50 <code>ReadCapacityUnits</code> per second provides 100 eventually consistent <code>ReadCapacityUnits</code> per second.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberOfDecreasesToday</i> The number of provisioned throughput decreases for this table during this UTC calendar day. For current maximums on provisioned throughput decreases, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html">Service, Account, and Table Quotas</a> in the <i>Amazon DynamoDB Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LastDecreaseDateTime</i> The date and time of the last provisioned throughput decrease for this table.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LastIncreaseDateTime</i> The date and time of the last provisioned throughput increase for this table.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdateToPayPerRequestDateTime</i> Represents the time when <code>PAY_PER_REQUEST</code> was last set as the read/write capacity mode.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BillingMode</i> Controls how you are charged for read and write throughput and how you manage capacity. This setting can be changed later. <ul> <li>  <code>PROVISIONED</code> - Sets the read/write capacity mode to <code>PROVISIONED</code>. We recommend using <code>PROVISIONED</code> for predictable workloads. </li> <li>  <code>PAY_PER_REQUEST</code> - Sets the read/write capacity mode to <code>PAY_PER_REQUEST</code>. We recommend using <code>PAY_PER_REQUEST</code> for unpredictable workloads.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamViewType</i>  When an item in the table is modified, <code>StreamViewType</code> determines what information is written to the stream for this table. Valid values for <code>StreamViewType</code> are: <ul> <li>  <code>KEYS_ONLY</code> - Only the key attributes of the modified item are written to the stream. </li> <li>  <code>NEW_IMAGE</code> - The entire item, as it appears after it was modified, is written to the stream. </li> <li>  <code>OLD_IMAGE</code> - The entire item, as it appeared before it was modified, is written to the stream. </li> <li>  <code>NEW_AND_OLD_IMAGES</code> - Both the new and the old item images of the item are written to the stream. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamEnabled</i> Indicates whether DynamoDB Streams is enabled (true) or disabled (false) on the table.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RestoreInProgress</i> Indicates if a restore is in progress or not.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RestoreDateTime</i> Point in time or source backup time.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceTableArn</i> The ARN of the source table of the backup that is being restored.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceBackupArn</i> The Amazon Resource Name (ARN) of the backup from which the table was restored.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InaccessibleEncryptionDateTime</i> Indicates the time, in UNIX epoch date format, when DynamoDB detected that the table's AWS KMS key was inaccessible. This attribute will automatically be cleared when DynamoDB detects that the table's AWS KMS key is accessible again. DynamoDB will initiate the table archival process when table's AWS KMS key remains inaccessible for more than seven days from this date.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KMSMasterKeyArn</i> The AWS KMS customer master key (CMK) ARN used for the AWS KMS encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SSEType</i> Server-side encryption type. The only supported value is: <ul> <li>  <code>KMS</code> - Server-side encryption that uses AWS Key Management Service. The key is stored in your account and is managed by AWS KMS (AWS KMS charges apply). </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Represents the current state of server-side encryption. The only supported values are: <ul> <li>  <code>ENABLED</code> - Server-side encryption is enabled. </li> <li>  <code>UPDATING</code> - Server-side encryption is being updated. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ArchivalBackupArn</i> The Amazon Resource Name (ARN) of the backup the table was archived to, when applicable in the archival reason. If you wish to restore this backup to the same table name, you will need to delete the original table.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ArchivalReason</i> The reason DynamoDB archived the table. Currently, the only possible value is: <ul> <li>  <code>INACCESSIBLE_ENCRYPTION_CREDENTIALS</code> - The table was archived due to the table's AWS KMS key being inaccessible for more than seven days. An On-Demand backup was created at the archival time. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ArchivalDateTime</i> The date and time when table archival was initiated by DynamoDB, in UNIX epoch time format.<br/>        """
        pass

    def update_table_replica_auto_scaling(self, TableName: str, GlobalSecondaryIndexUpdates: List[GlobalSecondaryIndexAutoScalingUpdate]=None, ProvisionedWriteCapacityAutoScalingUpdate: AutoScalingSettingsUpdate=None, ReplicaUpdates: List[ReplicaAutoScalingUpdate]=None) -> UpdateTableReplicaAutoScalingOutput:
        r"""Updates auto scaling settings on your global tables at once. <note> This operation only applies to <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/globaltables.V2.html">Version 2019.11.21</a> of global tables. </note>

        :param self:
        :param ReplicaUpdates:  Represents the auto scaling settings of replicas of the table that will be modified.<br/>ProvisionedWriteCapacityAutoScalingUpdate:  Represents the auto scaling settings to be modified for a global table or global secondary index.:<br/>TableName:  The name of the global table to be updated.<br/>GlobalSecondaryIndexUpdates:  Represents the auto scaling settings of the global secondary indexes of the replica to be updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ScalingPolicyUpdate</i> The scaling policy to apply for scaling target global table or global secondary index capacity units.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ScalingPolicyUpdate</b>: The scaling policy to apply for scaling target global table or global secondary index capacity units.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoScalingRoleArn</i> Role ARN used for configuring auto scaling policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoScalingDisabled</i> Disabled auto scaling for this global table or global secondary index.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaximumUnits</i> The maximum capacity units that a global table or global secondary index should be scaled up to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MinimumUnits</i> The minimum capacity units that a global table or global secondary index should be scaled down to.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PolicyName</i> The name of the scaling policy.<br/>Represents a target tracking scaling policy configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TargetTrackingScalingPolicyConfiguration</b>: Represents a target tracking scaling policy configuration.
        :return: TableAutoScalingDescription:  Returns information about the auto scaling settings of a table with replicas.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Replicas</i> Represents replicas of the global table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TableStatus</i> The current state of the table: <ul> <li>  <code>CREATING</code> - The table is being created. </li> <li>  <code>UPDATING</code> - The table is being updated. </li> <li>  <code>DELETING</code> - The table is being deleted. </li> <li>  <code>ACTIVE</code> - The table is ready for use. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TableName</i> The name of the table.<br/>        """
        pass

    def update_time_to_live(self, TimeToLiveSpecification: TimeToLiveSpecification, TableName: str) -> UpdateTimeToLiveOutput:
        r"""The <code>UpdateTimeToLive</code> method enables or disables Time to Live (TTL) for the specified table. A successful <code>UpdateTimeToLive</code> call returns the current <code>TimeToLiveSpecification</code>. It can take up to one hour for the change to fully process. Any additional <code>UpdateTimeToLive</code> calls for the same table during this one hour duration result in a <code>ValidationException</code>.  TTL compares the current time in epoch time format to the time stored in the TTL attribute of an item. If the epoch time value stored in the attribute is less than the current time, the item is marked as expired and subsequently deleted. <note>  The epoch time format is the number of seconds elapsed since 12:00:00 AM January 1, 1970 UTC.  </note> DynamoDB deletes expired items on a best-effort basis to ensure availability of throughput for other data operations.  <important> DynamoDB typically deletes expired items within two days of expiration. The exact duration within which an item gets deleted after expiration is specific to the nature of the workload. Items that have expired and not been deleted will still show up in reads, queries, and scans. </important> As items are deleted, they are removed from any local secondary index and global secondary index immediately in the same eventually consistent way as a standard delete operation. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/TTL.html">Time To Live</a> in the Amazon DynamoDB Developer Guide. 

        :param self:
        :param TimeToLiveSpecification:  Represents the settings used to enable or disable Time to Live for the specified table.:<br/>TableName:  The name of the table to be configured.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AttributeName</i> The name of the TTL attribute used to store the expiration time for items in the table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Indicates whether TTL is to be enabled (true) or disabled (false) on the table.<br/>
        :return: TimeToLiveSpecification:  Represents the output of an <code>UpdateTimeToLive</code> operation.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AttributeName</i> The name of the TTL attribute used to store the expiration time for items in the table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Indicates whether TTL is to be enabled (true) or disabled (false) on the table.<br/>        """
        pass



    class DynamodbResource:
        
        class Table:
            r"""Creates a Table resource.::

  table = dynamodb.Table('name')

:type name: string
:param name: The Table's name identifier. This **must** be set.

:rtype: :py:class:`DynamoDB.Table`
:returns: A Table resource"""

            def __init__(self, name):
                pass
            
            class KeySchemaElement(Mapping):
                pass

            class StreamSpecification(Mapping):
                pass

            class Date(object):
                pass

            class BillingModeSummary(Mapping):
                pass

            class ReplicaDescription(Mapping):
                pass

            class GlobalSecondaryIndexDescription(Mapping):
                pass

            class SSEDescription(Mapping):
                pass

            class RestoreSummary(Mapping):
                pass

            class Long(object):
                pass

            class ArchivalSummary(Mapping):
                pass

            class LocalSecondaryIndexDescription(Mapping):
                pass

            class AttributeDefinition(Mapping):
                pass

            class ProvisionedThroughputDescription(Mapping):
                pass
        
            attribute_definitions: List[AttributeDefinition]=None
            table_name: str=None
            key_schema: List[KeySchemaElement]=None
            table_status: str=None
            creation_date_time: Date=None
            provisioned_throughput: ProvisionedThroughputDescription=None
            table_size_bytes: Long=None
            item_count: Long=None
            table_arn: str=None
            table_id: str=None
            billing_mode_summary: BillingModeSummary=None
            local_secondary_indexes: List[LocalSecondaryIndexDescription]=None
            global_secondary_indexes: List[GlobalSecondaryIndexDescription]=None
            stream_specification: StreamSpecification=None
            latest_stream_label: str=None
            latest_stream_arn: str=None
            global_table_version: str=None
            replicas: List[ReplicaDescription]=None
            restore_summary: RestoreSummary=None
            sse_description: SSEDescription=None
            archival_summary: ArchivalSummary=None
            
            def wait_until_exists(self):
                pass

            def wait_until_not_exists(self):
                pass

            def delete(self, **kwargs):
                # type: (object) -> dict
                return {}

            def delete_item(self, **kwargs):
                # type: (object) -> dict
                return {}

            def get_item(self, **kwargs):
                # type: (object) -> dict
                return {}

            def put_item(self, **kwargs):
                # type: (object) -> dict
                return {}

            def query(self, **kwargs):
                # type: (object) -> dict
                return {}

            def scan(self, **kwargs):
                # type: (object) -> dict
                return {}

            def update(self, **kwargs):
                # type: (object) -> Table
                return Table()

            def update_item(self, **kwargs):
                # type: (object) -> dict
                return {}

            def batch_writer(self, overwrite_by_pkeys=None):
                """Create a batch writer object.

This method creates a context manager for writing
objects to Amazon DynamoDB in batch.

The batch writer will automatically handle buffering and sending items
in batches.  In addition, the batch writer will also automatically
handle any unprocessed items and resend them as needed.  All you need
to do is call ``put_item`` for any items you want to add, and
``delete_item`` for any items you want to delete.

Example usage::

    with table.batch_writer() as batch:
        for _ in range(1000000):
            batch.put_item(Item={'HashKey': '...',
                                 'Otherstuff': '...'})
        # You can also delete_items in a batch.
        batch.delete_item(Key={'HashKey': 'SomeHashKey'})

:type overwrite_by_pkeys: list(string)
:param overwrite_by_pkeys: De-duplicate request items in buffer
    if match new request item on specified primary keys. i.e
    ``["partition_key1", "sort_key2", "sort_key3"]``"""
                pass


        def batch_get_item(self, **kwargs):
            # type: (object) -> dict
            pass

        def batch_write_item(self, **kwargs):
            # type: (object) -> dict
            pass

        def create_table(self, **kwargs):
            # type: (object) -> Table
            pass

        def get_available_subresources(self) -> List[str]:
            pass

        class TableResourceCollection(List[Table], ResourceCollection):
            pass

        tables: TableResourceCollection = None




class DynamoDBStreams(BaseClient):
    r"""<fullname>Amazon DynamoDB</fullname> Amazon DynamoDB Streams provides API actions for accessing streams and processing stream records. To learn more about application development with Streams, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Streams.html">Capturing Table Activity with DynamoDB Streams</a> in the Amazon DynamoDB Developer Guide."""




    class DescribeStreamInput(Mapping):
        pass
    
    class DescribeStreamOutput(Mapping):
        pass
    
    class GetRecordsInput(Mapping):
        pass
    
    class GetRecordsOutput(Mapping):
        pass
    
    class GetShardIteratorInput(Mapping):
        pass
    
    class GetShardIteratorOutput(Mapping):
        pass
    
    class ListStreamsInput(Mapping):
        pass
    
    class ListStreamsOutput(Mapping):
        pass
    
    def describe_stream(self, StreamArn: str, Limit: int=None, ExclusiveStartShardId: str=None) -> DescribeStreamOutput:
        r"""Returns information about a stream, including the current status of the stream, its Amazon Resource Name (ARN), the composition of its shards, and its corresponding DynamoDB table. <note> You can call <code>DescribeStream</code> at a maximum rate of 10 times per second. </note> Each shard in the stream has a <code>SequenceNumberRange</code> associated with it. If the <code>SequenceNumberRange</code> has a <code>StartingSequenceNumber</code> but no <code>EndingSequenceNumber</code>, then the shard is still open (able to receive more stream records). If both <code>StartingSequenceNumber</code> and <code>EndingSequenceNumber</code> are present, then that shard is closed and can no longer receive more data.

        :param self:
        :param ExclusiveStartShardId:  The shard ID of the first item that this operation will evaluate. Use the value that was returned for <code>LastEvaluatedShardId</code> in the previous operation. <br/>Limit:  The maximum number of shard objects to return. The upper limit is 100.<br/>StreamArn:  The Amazon Resource Name (ARN) for the stream.<br/>
        :return: StreamDescription:  A complete description of the stream, including its creation date and time, the DynamoDB table associated with the stream, the shard IDs within the stream, and the beginning and ending sequence numbers of stream records within the shards.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastEvaluatedShardId</i> The shard ID of the item where the operation stopped, inclusive of the previous result set. Use this value to start a new operation, excluding this value in the new request. If <code>LastEvaluatedShardId</code> is empty, then the "last page" of results has been processed and there is currently no more data to be retrieved. If <code>LastEvaluatedShardId</code> is not empty, it does not necessarily mean that there is more data in the result set. The only way to know when you have reached the end of the result set is when <code>LastEvaluatedShardId</code> is empty.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Shards</i> The shards that comprise the stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KeySchema</i> The key attribute(s) of the stream's DynamoDB table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TableName</i> The DynamoDB table with which the stream is associated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationRequestDateTime</i> The date and time when the request to create this stream was issued.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamViewType</i> Indicates the format of the records within this stream: <ul> <li>  <code>KEYS_ONLY</code> - only the key attributes of items that were modified in the DynamoDB table. </li> <li>  <code>NEW_IMAGE</code> - entire items from the table, as they appeared after they were modified. </li> <li>  <code>OLD_IMAGE</code> - entire items from the table, as they appeared before they were modified. </li> <li>  <code>NEW_AND_OLD_IMAGES</code> - both the new and the old images of the items from the table. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamStatus</i> Indicates the current status of the stream: <ul> <li>  <code>ENABLING</code> - Streams is currently being enabled on the DynamoDB table. </li> <li>  <code>ENABLED</code> - the stream is enabled. </li> <li>  <code>DISABLING</code> - Streams is currently being disabled on the DynamoDB table. </li> <li>  <code>DISABLED</code> - the stream is disabled. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamLabel</i> A timestamp, in ISO 8601 format, for this stream. Note that <code>LatestStreamLabel</code> is not a unique identifier for the stream, because it is possible that a stream from another table might have the same timestamp. However, the combination of the following three elements is guaranteed to be unique: <ul> <li> the AWS customer ID. </li> <li> the table name </li> <li> the <code>StreamLabel</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamArn</i> The Amazon Resource Name (ARN) for the stream.<br/>        """
        pass

    def get_records(self, ShardIterator: str, Limit: int=None) -> GetRecordsOutput:
        r"""Retrieves the stream records from a given shard. Specify a shard iterator using the <code>ShardIterator</code> parameter. The shard iterator specifies the position in the shard from which you want to start reading stream records sequentially. If there are no stream records available in the portion of the shard that the iterator points to, <code>GetRecords</code> returns an empty list. Note that it might take multiple calls to get to a portion of the shard that contains stream records. <note>  <code>GetRecords</code> can retrieve a maximum of 1 MB of data or 1000 stream records, whichever comes first. </note>

        :param self:
        :param Limit:  The maximum number of records to return from the shard. The upper limit is 1000.<br/>ShardIterator:  A shard iterator that was retrieved from a previous GetShardIterator operation. This iterator can be used to access the stream records in this shard.<br/>
        :return: NextShardIterator:  The next position in the shard from which to start sequentially reading stream records. If set to <code>null</code>, the shard has been closed and the requested iterator will not return any more data.<br/>Records:  The stream records from the shard, which were retrieved using the shard iterator.<br/>        """
        pass

    def get_shard_iterator(self, ShardIteratorType: str, ShardId: str, StreamArn: str, SequenceNumber: str=None) -> GetShardIteratorOutput:
        r"""Returns a shard iterator. A shard iterator provides information about how to retrieve the stream records from within a shard. Use the shard iterator in a subsequent <code>GetRecords</code> request to read the stream records from the shard. <note> A shard iterator expires 15 minutes after it is returned to the requester. </note>

        :param self:
        :param SequenceNumber:  The sequence number of a stream record in the shard from which to start reading.<br/>ShardIteratorType:  Determines how the shard iterator is used to start reading stream records from the shard: <ul> <li>  <code>AT_SEQUENCE_NUMBER</code> - Start reading exactly from the position denoted by a specific sequence number. </li> <li>  <code>AFTER_SEQUENCE_NUMBER</code> - Start reading right after the position denoted by a specific sequence number. </li> <li>  <code>TRIM_HORIZON</code> - Start reading at the last (untrimmed) stream record, which is the oldest record in the shard. In DynamoDB Streams, there is a 24 hour limit on data retention. Stream records whose age exceeds this limit are subject to removal (trimming) from the stream. </li> <li>  <code>LATEST</code> - Start reading just after the most recent stream record in the shard, so that you always read the most recent data in the shard. </li> </ul><br/>ShardId:  The identifier of the shard. The iterator will be returned for this shard ID.<br/>StreamArn:  The Amazon Resource Name (ARN) for the stream.<br/>
        :return: ShardIterator:  The position in the shard from which to start reading stream records sequentially. A shard iterator specifies this position using the sequence number of a stream record in a shard.<br/>        """
        pass

    def list_streams(self, TableName: str=None, Limit: int=None, ExclusiveStartStreamArn: str=None) -> ListStreamsOutput:
        r"""Returns an array of stream ARNs associated with the current account and endpoint. If the <code>TableName</code> parameter is present, then <code>ListStreams</code> will return only the streams ARNs for that table. <note> You can call <code>ListStreams</code> at a maximum rate of 5 times per second. </note>

        :param self:
        :param ExclusiveStartStreamArn:  The ARN (Amazon Resource Name) of the first item that this operation will evaluate. Use the value that was returned for <code>LastEvaluatedStreamArn</code> in the previous operation. <br/>Limit:  The maximum number of streams to return. The upper limit is 100.<br/>TableName:  If this parameter is provided, then only the streams associated with this table name are returned.<br/>
        :return: LastEvaluatedStreamArn:  The stream ARN of the item where the operation stopped, inclusive of the previous result set. Use this value to start a new operation, excluding this value in the new request. If <code>LastEvaluatedStreamArn</code> is empty, then the "last page" of results has been processed and there is no more data to be retrieved. If <code>LastEvaluatedStreamArn</code> is not empty, it does not necessarily mean that there is more data in the result set. The only way to know when you have reached the end of the result set is when <code>LastEvaluatedStreamArn</code> is empty.<br/>Streams:  A list of stream descriptors associated with the current account and endpoint.<br/>        """
        pass





class EBS(BaseClient):
    r"""You can use the Amazon Elastic Block Store (Amazon EBS) direct APIs to create EBS snapshots, write data directly to your snapshots, read data on your snapshots, and identify the differences or changes between two snapshots. If you’re an independent software vendor (ISV) who offers backup services for Amazon EBS, the EBS direct APIs make it more efficient and cost-effective to track incremental changes on your EBS volumes through snapshots. This can be done without having to create new volumes from snapshots, and then use Amazon Elastic Compute Cloud (Amazon EC2) instances to compare the differences. You can create incremental snapshots directly from data on-premises into EBS volumes and the cloud to use for quick disaster recovery. With the ability to write and read snapshots, you can write your on-premises data to an EBS snapshot during a disaster. Then after recovery, you can restore it back to AWS or on-premises from the snapshot. You no longer need to build and maintain complex mechanisms to copy data to and from Amazon EBS. This API reference provides detailed information about the actions, data types, parameters, and errors of the EBS direct APIs. For more information about the elements that make up the EBS direct APIs, and examples of how to use them effectively, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-accessing-snapshot.html">Accessing the Contents of an EBS Snapshot</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>. For more information about the supported AWS Regions, endpoints, and service quotas for the EBS direct APIs, see <a href="https://docs.aws.amazon.com/general/latest/gr/ebs-service.html">Amazon Elastic Block Store Endpoints and Quotas</a> in the <i>AWS General Reference</i>."""




    class CompleteSnapshotRequest(Mapping):
        pass
    
    class CompleteSnapshotResponse(Mapping):
        pass
    
    class GetSnapshotBlockRequest(Mapping):
        pass
    
    class GetSnapshotBlockResponse(Mapping):
        pass
    
    class ListChangedBlocksRequest(Mapping):
        pass
    
    class ListChangedBlocksResponse(Mapping):
        pass
    
    class ListSnapshotBlocksRequest(Mapping):
        pass
    
    class ListSnapshotBlocksResponse(Mapping):
        pass
    
    class PutSnapshotBlockRequest(Mapping):
        pass
    
    class PutSnapshotBlockResponse(Mapping):
        pass
    
    class BlockData(object):
        pass
    
    class StartSnapshotRequest(Mapping):
        pass
    
    class StartSnapshotResponse(Mapping):
        pass
    
    class VolumeSize(object):
        pass
    
    class Tag(Mapping):
        pass
    
    class Boolean(object):
        pass
    
    def complete_snapshot(self, ChangedBlocksCount: int, SnapshotId: str, Checksum: str=None, ChecksumAlgorithm: str=None, ChecksumAggregationMethod: str=None) -> CompleteSnapshotResponse:
        r"""Seals and completes the snapshot after all of the required blocks of data have been written to it. Completing the snapshot changes the status to <code>completed</code>. You cannot write new blocks to a snapshot after it has been completed.

        :param self:
        :param ChecksumAggregationMethod:  The aggregation method used to generate the checksum. Currently, the only supported aggregation method is <code>LINEAR</code>.<br/>ChecksumAlgorithm:  The algorithm used to generate the checksum. Currently, the only supported algorithm is <code>SHA256</code>.<br/>Checksum:  An aggregated Base-64 SHA256 checksum based on the checksums of each written block. To generate the aggregated checksum using the linear aggregation method, arrange the checksums for each written block in ascending order of their block index, concatenate them to form a single string, and then generate the checksum on the entire string using the SHA256 algorithm.<br/>ChangedBlocksCount:  The number of blocks that were written to the snapshot.<br/>SnapshotId:  The ID of the snapshot.<br/>
        :return: Status:  The status of the snapshot.<br/>        """
        pass

    def get_snapshot_block(self, BlockToken: str, BlockIndex: int, SnapshotId: str) -> GetSnapshotBlockResponse:
        r"""Returns the data in a block in an Amazon Elastic Block Store snapshot.

        :param self:
        :param BlockToken:  The block token of the block from which to get data. Obtain the <code>BlockToken</code> by running the <code>ListChangedBlocks</code> or <code>ListSnapshotBlocks</code> operations.<br/>BlockIndex:  The block index of the block from which to get data. Obtain the <code>BlockIndex</code> by running the <code>ListChangedBlocks</code> or <code>ListSnapshotBlocks</code> operations.<br/>SnapshotId:  The ID of the snapshot containing the block from which to get data.<br/>
        :return: ChecksumAlgorithm:  The algorithm used to generate the checksum for the block, such as SHA256.<br/>Checksum:  The checksum generated for the block, which is Base64 encoded.<br/>BlockData:  The data content of the block.<br/>DataLength:  The size of the data in the block.<br/>        """
        pass

    def list_changed_blocks(self, SecondSnapshotId: str, FirstSnapshotId: str=None, NextToken: str=None, MaxResults: int=None, StartingBlockIndex: int=None) -> ListChangedBlocksResponse:
        r"""Returns information about the blocks that are different between two Amazon Elastic Block Store snapshots of the same volume/snapshot lineage.

        :param self:
        :param StartingBlockIndex:  The block index from which the comparison should start. The list in the response will start from this block index or the next valid block index in the snapshots.<br/>MaxResults:  The number of results to return.<br/>NextToken:  The token to request the next page of results.<br/>SecondSnapshotId:  The ID of the second snapshot to use for the comparison. <important> The <code>SecondSnapshotId</code> parameter must be specified with a <code>FirstSnapshotID</code> parameter; otherwise, an error occurs. </important><br/>FirstSnapshotId:  The ID of the first snapshot to use for the comparison. <important> The <code>FirstSnapshotID</code> parameter must be specified with a <code>SecondSnapshotId</code> parameter; otherwise, an error occurs. </important><br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is null when there are no more results to return.<br/>BlockSize:  The size of the block.<br/>VolumeSize:  The size of the volume in GB.<br/>ExpiryTime:  The time when the <code>BlockToken</code> expires.<br/>ChangedBlocks:  An array of objects containing information about the changed blocks.<br/>        """
        pass

    def list_snapshot_blocks(self, SnapshotId: str, NextToken: str=None, MaxResults: int=None, StartingBlockIndex: int=None) -> ListSnapshotBlocksResponse:
        r"""Returns information about the blocks in an Amazon Elastic Block Store snapshot.

        :param self:
        :param StartingBlockIndex:  The block index from which the list should start. The list in the response will start from this block index or the next valid block index in the snapshot.<br/>MaxResults:  The number of results to return.<br/>NextToken:  The token to request the next page of results.<br/>SnapshotId:  The ID of the snapshot from which to get block indexes and block tokens.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is null when there are no more results to return.<br/>BlockSize:  The size of the block.<br/>VolumeSize:  The size of the volume in GB.<br/>ExpiryTime:  The time when the <code>BlockToken</code> expires.<br/>Blocks:  An array of objects containing information about the blocks.<br/>        """
        pass

    def put_snapshot_block(self, ChecksumAlgorithm: str, Checksum: str, DataLength: int, BlockData: BlockData, BlockIndex: int, SnapshotId: str, Progress: int=None) -> PutSnapshotBlockResponse:
        r"""Writes a block of data to a snapshot. If the specified block contains data, the existing data is overwritten. The target snapshot must be in the <code>pending</code> state. Data written to a snapshot must be aligned with 512-byte sectors.

        :param self:
        :param ChecksumAlgorithm:  The algorithm used to generate the checksum. Currently, the only supported algorithm is <code>SHA256</code>.<br/>Checksum:  A Base64-encoded SHA256 checksum of the data. Only SHA256 checksums are supported.<br/>Progress:  The progress of the write process, as a percentage.<br/>DataLength:  The size of the data to write to the block, in bytes. Currently, the only supported size is <code>524288</code>. Valid values: <code>524288</code> <br/>BlockData:  The data to write to the block. The block data is not signed as part of the Signature Version 4 signing process. As a result, you must generate and provide a Base64-encoded SHA256 checksum for the block data using the <b>x-amz-Checksum</b> header. Also, you must specify the checksum algorithm using the <b>x-amz-Checksum-Algorithm</b> header. The checksum that you provide is part of the Signature Version 4 signing process. It is validated against a checksum generated by Amazon EBS to ensure the validity and authenticity of the data. If the checksums do not correspond, the request fails. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-accessing-snapshot.html#ebsapis-using-checksums"> Using checksums with the EBS direct APIs</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.<br/>BlockIndex:  The block index of the block in which to write the data. A block index is a logical index in units of <code>512</code> KiB blocks. To identify the block index, divide the logical offset of the data in the logical volume by the block size (logical offset of data/<code>524288</code>). The logical offset of the data must be <code>512</code> KiB aligned.<br/>SnapshotId:  The ID of the snapshot.<br/>
        :return: ChecksumAlgorithm:  The algorithm used by Amazon EBS to generate the checksum.<br/>Checksum:  The SHA256 checksum generated for the block data by Amazon EBS.<br/>        """
        pass

    def start_snapshot(self, VolumeSize: VolumeSize, ParentSnapshotId: str=None, Tags: List[Tag]=None, Description: str=None, ClientToken: str=None, Encrypted: Boolean=None, KmsKeyArn: str=None, Timeout: int=None) -> StartSnapshotResponse:
        r"""Creates a new Amazon EBS snapshot. The new snapshot enters the <code>pending</code> state after the request completes.  After creating the snapshot, use <a href="https://docs.aws.amazon.com/ebs/latest/APIReference/API_PutSnapshotBlock.html"> PutSnapshotBlock</a> to write blocks of data to the snapshot.

        :param self:
        :param Timeout:  The amount of time (in minutes) after which the snapshot is automatically cancelled if: <ul> <li> No blocks are written to the snapshot. </li> <li> The snapshot is not completed after writing the last block of data. </li> </ul> If no value is specified, the timeout defaults to <code>60</code> minutes.<br/>KmsKeyArn:  The Amazon Resource Name (ARN) of the AWS Key Management Service (AWS KMS) customer master key (CMK) to be used to encrypt the snapshot. If you do not specify a CMK, the default AWS managed CMK is used. If you specify a <b>ParentSnapshotId</b>, omit this parameter; the snapshot will be encrypted using the same CMK that was used to encrypt the parent snapshot. If <b>Encrypted</b> is set to <code>true</code>, you must specify a CMK ARN. <br/>Encrypted:  Indicates whether to encrypt the snapshot. To create an encrypted snapshot, specify <code>true</code>. To create an unencrypted snapshot, omit this parameter. If you specify a value for <b>ParentSnapshotId</b>, omit this parameter. If you specify <code>true</code>, the snapshot is encrypted using the CMK specified using the <b>KmsKeyArn</b> parameter. If no value is specified for <b>KmsKeyArn</b>, the default CMK for your account is used. If no default CMK has been specified for your account, the AWS managed CMK is used. To set a default CMK for your account, use <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyEbsDefaultKmsKeyId.html"> ModifyEbsDefaultKmsKeyId</a>. If your account is enabled for encryption by default, you cannot set this parameter to <code>false</code>. In this case, you can omit this parameter. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-accessing-snapshot.html#ebsapis-using-encryption"> Using encryption</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.<br/>ClientToken:  A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully. The subsequent retries with the same client token return the result from the original successful request and they have no additional effect. If you do not specify a client token, one is automatically generated by the AWS SDK. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-direct-api-idempotency.html"> Idempotency for StartSnapshot API</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.<br/>Description:  A description for the snapshot.<br/>Tags:  The tags to apply to the snapshot.<br/>ParentSnapshotId:  The ID of the parent snapshot. If there is no parent snapshot, or if you are creating the first snapshot for an on-premises volume, omit this parameter. If your account is enabled for encryption by default, you cannot use an unencrypted snapshot as a parent snapshot. You must first create an encrypted copy of the parent snapshot using <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CopySnapshot.html">CopySnapshot</a>.<br/>VolumeSize:  The size of the volume, in GiB. The maximum size is <code>16384</code> GiB (16 TiB).<br/>
        :return: KmsKeyArn:  The Amazon Resource Name (ARN) of the AWS Key Management Service (AWS KMS) customer master key (CMK) used to encrypt the snapshot.<br/>ParentSnapshotId:  The ID of the parent snapshot.<br/>Tags:  The tags applied to the snapshot. You can specify up to 50 tags per snapshot. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html"> Tagging your Amazon EC2 resources</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.<br/>BlockSize:  The size of the blocks in the snapshot, in bytes.<br/>VolumeSize:  The size of the volume, in GiB.<br/>StartTime:  The timestamp when the snapshot was created.<br/>Status:  The status of the snapshot.<br/>OwnerId:  The AWS account ID of the snapshot owner.<br/>SnapshotId:  The ID of the snapshot.<br/>Description:  The description of the snapshot.<br/>        """
        pass





class EC2(BaseClient):
    r"""<fullname>Amazon Elastic Compute Cloud</fullname> Amazon Elastic Compute Cloud (Amazon EC2) provides secure and resizable computing capacity in the AWS Cloud. Using Amazon EC2 eliminates the need to invest in hardware up front, so you can develop and deploy applications faster. Amazon Virtual Private Cloud (Amazon VPC) enables you to provision a logically isolated section of the AWS Cloud where you can launch AWS resources in a virtual network that you've defined. Amazon Elastic Block Store (Amazon EBS) provides block level storage volumes for use with EC2 instances. EBS volumes are highly available and reliable storage volumes that can be attached to any running instance and used like a hard drive. To learn more, see the following resources: <ul> <li> Amazon EC2: <a href="http://aws.amazon.com/ec2">AmazonEC2 product page</a>, <a href="http://aws.amazon.com/documentation/ec2">Amazon EC2 documentation</a>  </li> <li> Amazon EBS: <a href="http://aws.amazon.com/ebs">Amazon EBS product page</a>, <a href="http://aws.amazon.com/documentation/ebs">Amazon EBS documentation</a>  </li> <li> Amazon VPC: <a href="http://aws.amazon.com/vpc">Amazon VPC product page</a>, <a href="http://aws.amazon.com/documentation/vpc">Amazon VPC documentation</a>  </li> <li> AWS VPN: <a href="http://aws.amazon.com/vpn">AWS VPN product page</a>, <a href="http://aws.amazon.com/documentation/vpn">AWS VPN documentation</a>  </li> </ul>"""

    class BundleTaskCompleteWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_bundle_tasks` for valid parameters"""
            pass
    class ConversionTaskCancelledWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_conversion_tasks` for valid parameters"""
            pass
    class ConversionTaskCompletedWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_conversion_tasks` for valid parameters"""
            pass
    class ConversionTaskDeletedWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_conversion_tasks` for valid parameters"""
            pass
    class CustomerGatewayAvailableWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_customer_gateways` for valid parameters"""
            pass
    class ExportTaskCancelledWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_export_tasks` for valid parameters"""
            pass
    class ExportTaskCompletedWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_export_tasks` for valid parameters"""
            pass
    class ImageAvailableWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_images` for valid parameters"""
            pass
    class ImageExistsWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_images` for valid parameters"""
            pass
    class InstanceExistsWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_instances` for valid parameters"""
            pass
    class InstanceRunningWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_instances` for valid parameters"""
            pass
    class InstanceStatusOkWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_instance_status` for valid parameters"""
            pass
    class InstanceStoppedWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_instances` for valid parameters"""
            pass
    class InstanceTerminatedWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_instances` for valid parameters"""
            pass
    class KeyPairExistsWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_key_pairs` for valid parameters"""
            pass
    class NatGatewayAvailableWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_nat_gateways` for valid parameters"""
            pass
    class NetworkInterfaceAvailableWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_network_interfaces` for valid parameters"""
            pass
    class PasswordDataAvailableWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `get_password_data` for valid parameters"""
            pass
    class SecurityGroupExistsWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_security_groups` for valid parameters"""
            pass
    class SnapshotCompletedWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_snapshots` for valid parameters"""
            pass
    class SpotInstanceRequestFulfilledWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_spot_instance_requests` for valid parameters"""
            pass
    class SubnetAvailableWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_subnets` for valid parameters"""
            pass
    class SystemStatusOkWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_instance_status` for valid parameters"""
            pass
    class VolumeAvailableWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_volumes` for valid parameters"""
            pass
    class VolumeDeletedWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_volumes` for valid parameters"""
            pass
    class VolumeInUseWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_volumes` for valid parameters"""
            pass
    class VpcAvailableWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_vpcs` for valid parameters"""
            pass
    class VpcExistsWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_vpcs` for valid parameters"""
            pass
    class VpcPeeringConnectionDeletedWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_vpc_peering_connections` for valid parameters"""
            pass
    class VpcPeeringConnectionExistsWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_vpc_peering_connections` for valid parameters"""
            pass
    class VpnConnectionAvailableWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_vpn_connections` for valid parameters"""
            pass
    class VpnConnectionDeletedWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_vpn_connections` for valid parameters"""
            pass


    class DescribeRouteTablesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_route_tables` for valid parameters"""
            pass
    class DescribeIamInstanceProfileAssociationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_iam_instance_profile_associations` for valid parameters"""
            pass
    class DescribeInstanceStatusPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_instance_status` for valid parameters"""
            pass
    class DescribeInstancesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_instances` for valid parameters"""
            pass
    class DescribeReservedInstancesOfferingsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_reserved_instances_offerings` for valid parameters"""
            pass
    class DescribeReservedInstancesModificationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_reserved_instances_modifications` for valid parameters"""
            pass
    class DescribeSecurityGroupsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_security_groups` for valid parameters"""
            pass
    class DescribeSnapshotsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_snapshots` for valid parameters"""
            pass
    class DescribeSpotFleetInstancesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_spot_fleet_instances` for valid parameters"""
            pass
    class DescribeSpotFleetRequestsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_spot_fleet_requests` for valid parameters"""
            pass
    class DescribeSpotPriceHistoryPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_spot_price_history` for valid parameters"""
            pass
    class DescribeTagsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_tags` for valid parameters"""
            pass
    class DescribeVolumeStatusPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_volume_status` for valid parameters"""
            pass
    class DescribeVolumesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_volumes` for valid parameters"""
            pass
    class DescribeNatGatewaysPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_nat_gateways` for valid parameters"""
            pass
    class DescribeNetworkInterfacesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_network_interfaces` for valid parameters"""
            pass
    class DescribeVpcEndpointsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_vpc_endpoints` for valid parameters"""
            pass
    class DescribeVpcEndpointServicesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_vpc_endpoint_services` for valid parameters"""
            pass
    class DescribeVpcEndpointConnectionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_vpc_endpoint_connections` for valid parameters"""
            pass
    class DescribeByoipCidrsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_byoip_cidrs` for valid parameters"""
            pass
    class DescribeCapacityReservationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_capacity_reservations` for valid parameters"""
            pass
    class DescribeClassicLinkInstancesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_classic_link_instances` for valid parameters"""
            pass
    class DescribeClientVpnAuthorizationRulesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_client_vpn_authorization_rules` for valid parameters"""
            pass
    class DescribeClientVpnConnectionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_client_vpn_connections` for valid parameters"""
            pass
    class DescribeClientVpnEndpointsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_client_vpn_endpoints` for valid parameters"""
            pass
    class DescribeClientVpnRoutesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_client_vpn_routes` for valid parameters"""
            pass
    class DescribeClientVpnTargetNetworksPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_client_vpn_target_networks` for valid parameters"""
            pass
    class DescribeEgressOnlyInternetGatewaysPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_egress_only_internet_gateways` for valid parameters"""
            pass
    class DescribeFleetsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_fleets` for valid parameters"""
            pass
    class DescribeFlowLogsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_flow_logs` for valid parameters"""
            pass
    class DescribeFpgaImagesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_fpga_images` for valid parameters"""
            pass
    class DescribeHostReservationOfferingsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_host_reservation_offerings` for valid parameters"""
            pass
    class DescribeHostReservationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_host_reservations` for valid parameters"""
            pass
    class DescribeHostsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_hosts` for valid parameters"""
            pass
    class DescribeImportImageTasksPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_import_image_tasks` for valid parameters"""
            pass
    class DescribeImportSnapshotTasksPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_import_snapshot_tasks` for valid parameters"""
            pass
    class DescribeInstanceCreditSpecificationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_instance_credit_specifications` for valid parameters"""
            pass
    class DescribeLaunchTemplateVersionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_launch_template_versions` for valid parameters"""
            pass
    class DescribeLaunchTemplatesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_launch_templates` for valid parameters"""
            pass
    class DescribeMovingAddressesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_moving_addresses` for valid parameters"""
            pass
    class DescribeNetworkInterfacePermissionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_network_interface_permissions` for valid parameters"""
            pass
    class DescribePrefixListsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_prefix_lists` for valid parameters"""
            pass
    class DescribePrincipalIdFormatPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_principal_id_format` for valid parameters"""
            pass
    class DescribePublicIpv4PoolsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_public_ipv_4_pools` for valid parameters"""
            pass
    class DescribeScheduledInstanceAvailabilityPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_scheduled_instance_availability` for valid parameters"""
            pass
    class DescribeScheduledInstancesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_scheduled_instances` for valid parameters"""
            pass
    class DescribeStaleSecurityGroupsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_stale_security_groups` for valid parameters"""
            pass
    class DescribeTransitGatewayAttachmentsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_transit_gateway_attachments` for valid parameters"""
            pass
    class DescribeTransitGatewayRouteTablesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_transit_gateway_route_tables` for valid parameters"""
            pass
    class DescribeTransitGatewayVpcAttachmentsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_transit_gateway_vpc_attachments` for valid parameters"""
            pass
    class DescribeTransitGatewaysPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_transit_gateways` for valid parameters"""
            pass
    class DescribeVolumesModificationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_volumes_modifications` for valid parameters"""
            pass
    class DescribeVpcClassicLinkDnsSupportPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_vpc_classic_link_dns_support` for valid parameters"""
            pass
    class DescribeVpcEndpointConnectionNotificationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_vpc_endpoint_connection_notifications` for valid parameters"""
            pass
    class DescribeVpcEndpointServiceConfigurationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_vpc_endpoint_service_configurations` for valid parameters"""
            pass
    class DescribeVpcEndpointServicePermissionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_vpc_endpoint_service_permissions` for valid parameters"""
            pass
    class DescribeVpcPeeringConnectionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_vpc_peering_connections` for valid parameters"""
            pass
    class GetTransitGatewayAttachmentPropagationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_transit_gateway_attachment_propagations` for valid parameters"""
            pass
    class GetTransitGatewayRouteTableAssociationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_transit_gateway_route_table_associations` for valid parameters"""
            pass
    class GetTransitGatewayRouteTablePropagationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_transit_gateway_route_table_propagations` for valid parameters"""
            pass
    class DescribeInternetGatewaysPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_internet_gateways` for valid parameters"""
            pass
    class DescribeNetworkAclsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_network_acls` for valid parameters"""
            pass
    class DescribeVpcsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_vpcs` for valid parameters"""
            pass
    class DescribeSpotInstanceRequestsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_spot_instance_requests` for valid parameters"""
            pass
    class DescribeDhcpOptionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_dhcp_options` for valid parameters"""
            pass
    class DescribeSubnetsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_subnets` for valid parameters"""
            pass
    class DescribeTrafficMirrorFiltersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_traffic_mirror_filters` for valid parameters"""
            pass
    class DescribeTrafficMirrorSessionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_traffic_mirror_sessions` for valid parameters"""
            pass
    class DescribeTrafficMirrorTargetsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_traffic_mirror_targets` for valid parameters"""
            pass
    class DescribeExportImageTasksPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_export_image_tasks` for valid parameters"""
            pass
    class DescribeFastSnapshotRestoresPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_fast_snapshot_restores` for valid parameters"""
            pass
    class DescribeIpv6PoolsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_ipv6_pools` for valid parameters"""
            pass
    class GetAssociatedIpv6PoolCidrsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_associated_ipv6_pool_cidrs` for valid parameters"""
            pass
    class DescribeCoipPoolsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_coip_pools` for valid parameters"""
            pass
    class DescribeInstanceTypeOfferingsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_instance_type_offerings` for valid parameters"""
            pass
    class DescribeInstanceTypesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_instance_types` for valid parameters"""
            pass
    class DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_local_gateway_route_table_virtual_interface_group_associations` for valid parameters"""
            pass
    class DescribeLocalGatewayRouteTableVpcAssociationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_local_gateway_route_table_vpc_associations` for valid parameters"""
            pass
    class DescribeLocalGatewayRouteTablesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_local_gateway_route_tables` for valid parameters"""
            pass
    class DescribeLocalGatewayVirtualInterfaceGroupsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_local_gateway_virtual_interface_groups` for valid parameters"""
            pass
    class DescribeLocalGatewayVirtualInterfacesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_local_gateway_virtual_interfaces` for valid parameters"""
            pass
    class DescribeLocalGatewaysPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_local_gateways` for valid parameters"""
            pass
    class DescribeTransitGatewayMulticastDomainsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_transit_gateway_multicast_domains` for valid parameters"""
            pass
    class DescribeTransitGatewayPeeringAttachmentsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_transit_gateway_peering_attachments` for valid parameters"""
            pass
    class GetTransitGatewayMulticastDomainAssociationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_transit_gateway_multicast_domain_associations` for valid parameters"""
            pass
    class SearchLocalGatewayRoutesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `search_local_gateway_routes` for valid parameters"""
            pass
    class SearchTransitGatewayMulticastGroupsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `search_transit_gateway_multicast_groups` for valid parameters"""
            pass
    class DescribeManagedPrefixListsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_managed_prefix_lists` for valid parameters"""
            pass
    class GetManagedPrefixListAssociationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_managed_prefix_list_associations` for valid parameters"""
            pass
    class GetManagedPrefixListEntriesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_managed_prefix_list_entries` for valid parameters"""
            pass
    class GetGroupsForCapacityReservationPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_groups_for_capacity_reservation` for valid parameters"""
            pass
    class DescribeCarrierGatewaysPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_carrier_gateways` for valid parameters"""
            pass
    class GetTransitGatewayPrefixListReferencesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_transit_gateway_prefix_list_references` for valid parameters"""
            pass
    class DescribeNetworkInsightsAnalysesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_network_insights_analyses` for valid parameters"""
            pass
    class DescribeNetworkInsightsPathsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_network_insights_paths` for valid parameters"""
            pass
    class DescribeTransitGatewayConnectPeersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_transit_gateway_connect_peers` for valid parameters"""
            pass
    class DescribeTransitGatewayConnectsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_transit_gateway_connects` for valid parameters"""
            pass
    class DescribeAddressesAttributePaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_addresses_attribute` for valid parameters"""
            pass
    class DescribeReplaceRootVolumeTasksPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_replace_root_volume_tasks` for valid parameters"""
            pass
    class DescribeStoreImageTasksPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_store_image_tasks` for valid parameters"""
            pass
    class DescribeSecurityGroupRulesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_security_group_rules` for valid parameters"""
            pass


    class AcceptReservedInstancesExchangeQuoteRequest(Mapping):
        pass
    
    class AcceptReservedInstancesExchangeQuoteResult(Mapping):
        pass
    
    class Boolean(object):
        pass
    
    class ReservationId(object):
        pass
    
    class TargetConfigurationRequest(Mapping):
        pass
    
    class AcceptTransitGatewayMulticastDomainAssociationsRequest(Mapping):
        pass
    
    class AcceptTransitGatewayMulticastDomainAssociationsResult(Mapping):
        pass
    
    class String(object):
        pass
    
    class AcceptTransitGatewayPeeringAttachmentRequest(Mapping):
        pass
    
    class AcceptTransitGatewayPeeringAttachmentResult(Mapping):
        pass
    
    class AcceptTransitGatewayVpcAttachmentRequest(Mapping):
        pass
    
    class AcceptTransitGatewayVpcAttachmentResult(Mapping):
        pass
    
    class AcceptVpcEndpointConnectionsRequest(Mapping):
        pass
    
    class AcceptVpcEndpointConnectionsResult(Mapping):
        pass
    
    class VpcEndpointId(object):
        pass
    
    class AcceptVpcPeeringConnectionRequest(Mapping):
        pass
    
    class AcceptVpcPeeringConnectionResult(Mapping):
        pass
    
    class AdvertiseByoipCidrRequest(Mapping):
        pass
    
    class AdvertiseByoipCidrResult(Mapping):
        pass
    
    class AllocateAddressRequest(Mapping):
        pass
    
    class AllocateAddressResult(Mapping):
        pass
    
    class TagSpecification(Mapping):
        pass
    
    class AllocateHostsRequest(Mapping):
        pass
    
    class AllocateHostsResult(Mapping):
        pass
    
    class ApplySecurityGroupsToClientVpnTargetNetworkRequest(Mapping):
        pass
    
    class ApplySecurityGroupsToClientVpnTargetNetworkResult(Mapping):
        pass
    
    class SecurityGroupId(object):
        pass
    
    class AssignIpv6AddressesRequest(Mapping):
        pass
    
    class AssignIpv6AddressesResult(Mapping):
        pass
    
    class AssignPrivateIpAddressesRequest(Mapping):
        pass
    
    class AssignPrivateIpAddressesResult(Mapping):
        pass
    
    class AssociateAddressRequest(Mapping):
        pass
    
    class AssociateAddressResult(Mapping):
        pass
    
    class AssociateClientVpnTargetNetworkRequest(Mapping):
        pass
    
    class AssociateClientVpnTargetNetworkResult(Mapping):
        pass
    
    class AssociateDhcpOptionsRequest(Mapping):
        pass
    
    class AssociateEnclaveCertificateIamRoleRequest(Mapping):
        pass
    
    class AssociateEnclaveCertificateIamRoleResult(Mapping):
        pass
    
    class AssociateIamInstanceProfileRequest(Mapping):
        pass
    
    class AssociateIamInstanceProfileResult(Mapping):
        pass
    
    class IamInstanceProfileSpecification(Mapping):
        pass
    
    class AssociateRouteTableRequest(Mapping):
        pass
    
    class AssociateRouteTableResult(Mapping):
        pass
    
    class AssociateSubnetCidrBlockRequest(Mapping):
        pass
    
    class AssociateSubnetCidrBlockResult(Mapping):
        pass
    
    class AssociateTransitGatewayMulticastDomainRequest(Mapping):
        pass
    
    class AssociateTransitGatewayMulticastDomainResult(Mapping):
        pass
    
    class SubnetId(object):
        pass
    
    class AssociateTransitGatewayRouteTableRequest(Mapping):
        pass
    
    class AssociateTransitGatewayRouteTableResult(Mapping):
        pass
    
    class AssociateTrunkInterfaceRequest(Mapping):
        pass
    
    class AssociateTrunkInterfaceResult(Mapping):
        pass
    
    class AssociateVpcCidrBlockRequest(Mapping):
        pass
    
    class AssociateVpcCidrBlockResult(Mapping):
        pass
    
    class AttachClassicLinkVpcRequest(Mapping):
        pass
    
    class AttachClassicLinkVpcResult(Mapping):
        pass
    
    class AttachInternetGatewayRequest(Mapping):
        pass
    
    class AttachNetworkInterfaceRequest(Mapping):
        pass
    
    class AttachNetworkInterfaceResult(Mapping):
        pass
    
    class AttachVolumeRequest(Mapping):
        pass
    
    class VolumeAttachment(Mapping):
        pass
    
    class AttachVpnGatewayRequest(Mapping):
        pass
    
    class AttachVpnGatewayResult(Mapping):
        pass
    
    class AuthorizeClientVpnIngressRequest(Mapping):
        pass
    
    class AuthorizeClientVpnIngressResult(Mapping):
        pass
    
    class AuthorizeSecurityGroupEgressRequest(Mapping):
        pass
    
    class AuthorizeSecurityGroupEgressResult(Mapping):
        pass
    
    class IpPermission(Mapping):
        pass
    
    class AuthorizeSecurityGroupIngressRequest(Mapping):
        pass
    
    class AuthorizeSecurityGroupIngressResult(Mapping):
        pass
    
    class BundleInstanceRequest(Mapping):
        pass
    
    class BundleInstanceResult(Mapping):
        pass
    
    class Storage(Mapping):
        pass
    
    class CancelBundleTaskRequest(Mapping):
        pass
    
    class CancelBundleTaskResult(Mapping):
        pass
    
    class CancelCapacityReservationRequest(Mapping):
        pass
    
    class CancelCapacityReservationResult(Mapping):
        pass
    
    class CancelConversionRequest(Mapping):
        pass
    
    class CancelExportTaskRequest(Mapping):
        pass
    
    class CancelImportTaskRequest(Mapping):
        pass
    
    class CancelImportTaskResult(Mapping):
        pass
    
    class CancelReservedInstancesListingRequest(Mapping):
        pass
    
    class CancelReservedInstancesListingResult(Mapping):
        pass
    
    class CancelSpotFleetRequestsRequest(Mapping):
        pass
    
    class CancelSpotFleetRequestsResponse(Mapping):
        pass
    
    class SpotFleetRequestId(object):
        pass
    
    class CancelSpotInstanceRequestsRequest(Mapping):
        pass
    
    class CancelSpotInstanceRequestsResult(Mapping):
        pass
    
    class SpotInstanceRequestId(object):
        pass
    
    class ConfirmProductInstanceRequest(Mapping):
        pass
    
    class ConfirmProductInstanceResult(Mapping):
        pass
    
    class CopyFpgaImageRequest(Mapping):
        pass
    
    class CopyFpgaImageResult(Mapping):
        pass
    
    class CopyImageRequest(Mapping):
        pass
    
    class CopyImageResult(Mapping):
        pass
    
    class CopySnapshotRequest(Mapping):
        pass
    
    class CopySnapshotResult(Mapping):
        pass
    
    class CreateCapacityReservationRequest(Mapping):
        pass
    
    class CreateCapacityReservationResult(Mapping):
        pass
    
    class DateTime(object):
        pass
    
    class CreateCarrierGatewayRequest(Mapping):
        pass
    
    class CreateCarrierGatewayResult(Mapping):
        pass
    
    class CreateClientVpnEndpointRequest(Mapping):
        pass
    
    class CreateClientVpnEndpointResult(Mapping):
        pass
    
    class ClientVpnAuthenticationRequest(Mapping):
        pass
    
    class ConnectionLogOptions(Mapping):
        pass
    
    class ClientConnectOptions(Mapping):
        pass
    
    class CreateClientVpnRouteRequest(Mapping):
        pass
    
    class CreateClientVpnRouteResult(Mapping):
        pass
    
    class CreateCustomerGatewayRequest(Mapping):
        pass
    
    class CreateCustomerGatewayResult(Mapping):
        pass
    
    class CreateDefaultSubnetRequest(Mapping):
        pass
    
    class CreateDefaultSubnetResult(Mapping):
        pass
    
    class CreateDefaultVpcRequest(Mapping):
        pass
    
    class CreateDefaultVpcResult(Mapping):
        pass
    
    class CreateDhcpOptionsRequest(Mapping):
        pass
    
    class CreateDhcpOptionsResult(Mapping):
        pass
    
    class NewDhcpConfiguration(Mapping):
        pass
    
    class CreateEgressOnlyInternetGatewayRequest(Mapping):
        pass
    
    class CreateEgressOnlyInternetGatewayResult(Mapping):
        pass
    
    class CreateFleetRequest(Mapping):
        pass
    
    class CreateFleetResult(Mapping):
        pass
    
    class SpotOptionsRequest(Mapping):
        pass
    
    class OnDemandOptionsRequest(Mapping):
        pass
    
    class FleetLaunchTemplateConfigRequest(Mapping):
        pass
    
    class TargetCapacitySpecificationRequest(Mapping):
        pass
    
    class CreateFlowLogsRequest(Mapping):
        pass
    
    class CreateFlowLogsResult(Mapping):
        pass
    
    class FlowLogResourceId(object):
        pass
    
    class CreateFpgaImageRequest(Mapping):
        pass
    
    class CreateFpgaImageResult(Mapping):
        pass
    
    class StorageLocation(Mapping):
        pass
    
    class CreateImageRequest(Mapping):
        pass
    
    class CreateImageResult(Mapping):
        pass
    
    class BlockDeviceMapping(Mapping):
        pass
    
    class CreateInstanceExportTaskRequest(Mapping):
        pass
    
    class CreateInstanceExportTaskResult(Mapping):
        pass
    
    class ExportToS3TaskSpecification(Mapping):
        pass
    
    class CreateInternetGatewayRequest(Mapping):
        pass
    
    class CreateInternetGatewayResult(Mapping):
        pass
    
    class CreateKeyPairRequest(Mapping):
        pass
    
    class KeyPair(Mapping):
        pass
    
    class CreateLaunchTemplateRequest(Mapping):
        pass
    
    class CreateLaunchTemplateResult(Mapping):
        pass
    
    class RequestLaunchTemplateData(Mapping):
        pass
    
    class CreateLaunchTemplateVersionRequest(Mapping):
        pass
    
    class CreateLaunchTemplateVersionResult(Mapping):
        pass
    
    class CreateLocalGatewayRouteRequest(Mapping):
        pass
    
    class CreateLocalGatewayRouteResult(Mapping):
        pass
    
    class CreateLocalGatewayRouteTableVpcAssociationRequest(Mapping):
        pass
    
    class CreateLocalGatewayRouteTableVpcAssociationResult(Mapping):
        pass
    
    class CreateManagedPrefixListRequest(Mapping):
        pass
    
    class CreateManagedPrefixListResult(Mapping):
        pass
    
    class AddPrefixListEntry(Mapping):
        pass
    
    class CreateNatGatewayRequest(Mapping):
        pass
    
    class CreateNatGatewayResult(Mapping):
        pass
    
    class CreateNetworkAclRequest(Mapping):
        pass
    
    class CreateNetworkAclResult(Mapping):
        pass
    
    class CreateNetworkAclEntryRequest(Mapping):
        pass
    
    class IcmpTypeCode(Mapping):
        pass
    
    class PortRange(Mapping):
        pass
    
    class CreateNetworkInsightsPathRequest(Mapping):
        pass
    
    class CreateNetworkInsightsPathResult(Mapping):
        pass
    
    class CreateNetworkInterfaceRequest(Mapping):
        pass
    
    class CreateNetworkInterfaceResult(Mapping):
        pass
    
    class InstanceIpv6Address(Mapping):
        pass
    
    class PrivateIpAddressSpecification(Mapping):
        pass
    
    class CreateNetworkInterfacePermissionRequest(Mapping):
        pass
    
    class CreateNetworkInterfacePermissionResult(Mapping):
        pass
    
    class CreatePlacementGroupRequest(Mapping):
        pass
    
    class CreatePlacementGroupResult(Mapping):
        pass
    
    class CreateReplaceRootVolumeTaskRequest(Mapping):
        pass
    
    class CreateReplaceRootVolumeTaskResult(Mapping):
        pass
    
    class CreateReservedInstancesListingRequest(Mapping):
        pass
    
    class CreateReservedInstancesListingResult(Mapping):
        pass
    
    class PriceScheduleSpecification(Mapping):
        pass
    
    class CreateRestoreImageTaskRequest(Mapping):
        pass
    
    class CreateRestoreImageTaskResult(Mapping):
        pass
    
    class CreateRouteRequest(Mapping):
        pass
    
    class CreateRouteResult(Mapping):
        pass
    
    class CreateRouteTableRequest(Mapping):
        pass
    
    class CreateRouteTableResult(Mapping):
        pass
    
    class CreateSecurityGroupRequest(Mapping):
        pass
    
    class CreateSecurityGroupResult(Mapping):
        pass
    
    class CreateSnapshotRequest(Mapping):
        pass
    
    class Snapshot(Mapping):
        pass
    
    class CreateSnapshotsRequest(Mapping):
        pass
    
    class CreateSnapshotsResult(Mapping):
        pass
    
    class InstanceSpecification(Mapping):
        pass
    
    class CreateSpotDatafeedSubscriptionRequest(Mapping):
        pass
    
    class CreateSpotDatafeedSubscriptionResult(Mapping):
        pass
    
    class CreateStoreImageTaskRequest(Mapping):
        pass
    
    class CreateStoreImageTaskResult(Mapping):
        pass
    
    class S3ObjectTag(Mapping):
        pass
    
    class CreateSubnetRequest(Mapping):
        pass
    
    class CreateSubnetResult(Mapping):
        pass
    
    class CreateTagsRequest(Mapping):
        pass
    
    class TaggableResourceId(object):
        pass
    
    class Tag(Mapping):
        pass
    
    class CreateTrafficMirrorFilterRequest(Mapping):
        pass
    
    class CreateTrafficMirrorFilterResult(Mapping):
        pass
    
    class CreateTrafficMirrorFilterRuleRequest(Mapping):
        pass
    
    class CreateTrafficMirrorFilterRuleResult(Mapping):
        pass
    
    class TrafficMirrorPortRangeRequest(Mapping):
        pass
    
    class CreateTrafficMirrorSessionRequest(Mapping):
        pass
    
    class CreateTrafficMirrorSessionResult(Mapping):
        pass
    
    class CreateTrafficMirrorTargetRequest(Mapping):
        pass
    
    class CreateTrafficMirrorTargetResult(Mapping):
        pass
    
    class CreateTransitGatewayRequest(Mapping):
        pass
    
    class CreateTransitGatewayResult(Mapping):
        pass
    
    class TransitGatewayRequestOptions(Mapping):
        pass
    
    class CreateTransitGatewayConnectRequest(Mapping):
        pass
    
    class CreateTransitGatewayConnectResult(Mapping):
        pass
    
    class CreateTransitGatewayConnectRequestOptions(Mapping):
        pass
    
    class CreateTransitGatewayConnectPeerRequest(Mapping):
        pass
    
    class CreateTransitGatewayConnectPeerResult(Mapping):
        pass
    
    class TransitGatewayConnectRequestBgpOptions(Mapping):
        pass
    
    class CreateTransitGatewayMulticastDomainRequest(Mapping):
        pass
    
    class CreateTransitGatewayMulticastDomainResult(Mapping):
        pass
    
    class CreateTransitGatewayMulticastDomainRequestOptions(Mapping):
        pass
    
    class CreateTransitGatewayPeeringAttachmentRequest(Mapping):
        pass
    
    class CreateTransitGatewayPeeringAttachmentResult(Mapping):
        pass
    
    class CreateTransitGatewayPrefixListReferenceRequest(Mapping):
        pass
    
    class CreateTransitGatewayPrefixListReferenceResult(Mapping):
        pass
    
    class CreateTransitGatewayRouteRequest(Mapping):
        pass
    
    class CreateTransitGatewayRouteResult(Mapping):
        pass
    
    class CreateTransitGatewayRouteTableRequest(Mapping):
        pass
    
    class CreateTransitGatewayRouteTableResult(Mapping):
        pass
    
    class CreateTransitGatewayVpcAttachmentRequest(Mapping):
        pass
    
    class CreateTransitGatewayVpcAttachmentResult(Mapping):
        pass
    
    class CreateTransitGatewayVpcAttachmentRequestOptions(Mapping):
        pass
    
    class CreateVolumeRequest(Mapping):
        pass
    
    class Volume(Mapping):
        pass
    
    class CreateVpcRequest(Mapping):
        pass
    
    class CreateVpcResult(Mapping):
        pass
    
    class CreateVpcEndpointRequest(Mapping):
        pass
    
    class CreateVpcEndpointResult(Mapping):
        pass
    
    class RouteTableId(object):
        pass
    
    class CreateVpcEndpointConnectionNotificationRequest(Mapping):
        pass
    
    class CreateVpcEndpointConnectionNotificationResult(Mapping):
        pass
    
    class CreateVpcEndpointServiceConfigurationRequest(Mapping):
        pass
    
    class CreateVpcEndpointServiceConfigurationResult(Mapping):
        pass
    
    class CreateVpcPeeringConnectionRequest(Mapping):
        pass
    
    class CreateVpcPeeringConnectionResult(Mapping):
        pass
    
    class CreateVpnConnectionRequest(Mapping):
        pass
    
    class CreateVpnConnectionResult(Mapping):
        pass
    
    class VpnConnectionOptionsSpecification(Mapping):
        pass
    
    class CreateVpnConnectionRouteRequest(Mapping):
        pass
    
    class CreateVpnGatewayRequest(Mapping):
        pass
    
    class CreateVpnGatewayResult(Mapping):
        pass
    
    class Long(object):
        pass
    
    class DeleteCarrierGatewayRequest(Mapping):
        pass
    
    class DeleteCarrierGatewayResult(Mapping):
        pass
    
    class DeleteClientVpnEndpointRequest(Mapping):
        pass
    
    class DeleteClientVpnEndpointResult(Mapping):
        pass
    
    class DeleteClientVpnRouteRequest(Mapping):
        pass
    
    class DeleteClientVpnRouteResult(Mapping):
        pass
    
    class DeleteCustomerGatewayRequest(Mapping):
        pass
    
    class DeleteDhcpOptionsRequest(Mapping):
        pass
    
    class DeleteEgressOnlyInternetGatewayRequest(Mapping):
        pass
    
    class DeleteEgressOnlyInternetGatewayResult(Mapping):
        pass
    
    class DeleteFleetsRequest(Mapping):
        pass
    
    class DeleteFleetsResult(Mapping):
        pass
    
    class FleetId(object):
        pass
    
    class DeleteFlowLogsRequest(Mapping):
        pass
    
    class DeleteFlowLogsResult(Mapping):
        pass
    
    class VpcFlowLogId(object):
        pass
    
    class DeleteFpgaImageRequest(Mapping):
        pass
    
    class DeleteFpgaImageResult(Mapping):
        pass
    
    class DeleteInternetGatewayRequest(Mapping):
        pass
    
    class DeleteKeyPairRequest(Mapping):
        pass
    
    class DeleteLaunchTemplateRequest(Mapping):
        pass
    
    class DeleteLaunchTemplateResult(Mapping):
        pass
    
    class DeleteLaunchTemplateVersionsRequest(Mapping):
        pass
    
    class DeleteLaunchTemplateVersionsResult(Mapping):
        pass
    
    class DeleteLocalGatewayRouteRequest(Mapping):
        pass
    
    class DeleteLocalGatewayRouteResult(Mapping):
        pass
    
    class DeleteLocalGatewayRouteTableVpcAssociationRequest(Mapping):
        pass
    
    class DeleteLocalGatewayRouteTableVpcAssociationResult(Mapping):
        pass
    
    class DeleteManagedPrefixListRequest(Mapping):
        pass
    
    class DeleteManagedPrefixListResult(Mapping):
        pass
    
    class DeleteNatGatewayRequest(Mapping):
        pass
    
    class DeleteNatGatewayResult(Mapping):
        pass
    
    class DeleteNetworkAclRequest(Mapping):
        pass
    
    class DeleteNetworkAclEntryRequest(Mapping):
        pass
    
    class DeleteNetworkInsightsAnalysisRequest(Mapping):
        pass
    
    class DeleteNetworkInsightsAnalysisResult(Mapping):
        pass
    
    class DeleteNetworkInsightsPathRequest(Mapping):
        pass
    
    class DeleteNetworkInsightsPathResult(Mapping):
        pass
    
    class DeleteNetworkInterfaceRequest(Mapping):
        pass
    
    class DeleteNetworkInterfacePermissionRequest(Mapping):
        pass
    
    class DeleteNetworkInterfacePermissionResult(Mapping):
        pass
    
    class DeletePlacementGroupRequest(Mapping):
        pass
    
    class DeleteQueuedReservedInstancesRequest(Mapping):
        pass
    
    class DeleteQueuedReservedInstancesResult(Mapping):
        pass
    
    class DeleteRouteRequest(Mapping):
        pass
    
    class DeleteRouteTableRequest(Mapping):
        pass
    
    class DeleteSecurityGroupRequest(Mapping):
        pass
    
    class DeleteSnapshotRequest(Mapping):
        pass
    
    class DeleteSpotDatafeedSubscriptionRequest(Mapping):
        pass
    
    class DeleteSubnetRequest(Mapping):
        pass
    
    class DeleteTagsRequest(Mapping):
        pass
    
    class DeleteTrafficMirrorFilterRequest(Mapping):
        pass
    
    class DeleteTrafficMirrorFilterResult(Mapping):
        pass
    
    class DeleteTrafficMirrorFilterRuleRequest(Mapping):
        pass
    
    class DeleteTrafficMirrorFilterRuleResult(Mapping):
        pass
    
    class DeleteTrafficMirrorSessionRequest(Mapping):
        pass
    
    class DeleteTrafficMirrorSessionResult(Mapping):
        pass
    
    class DeleteTrafficMirrorTargetRequest(Mapping):
        pass
    
    class DeleteTrafficMirrorTargetResult(Mapping):
        pass
    
    class DeleteTransitGatewayRequest(Mapping):
        pass
    
    class DeleteTransitGatewayResult(Mapping):
        pass
    
    class DeleteTransitGatewayConnectRequest(Mapping):
        pass
    
    class DeleteTransitGatewayConnectResult(Mapping):
        pass
    
    class DeleteTransitGatewayConnectPeerRequest(Mapping):
        pass
    
    class DeleteTransitGatewayConnectPeerResult(Mapping):
        pass
    
    class DeleteTransitGatewayMulticastDomainRequest(Mapping):
        pass
    
    class DeleteTransitGatewayMulticastDomainResult(Mapping):
        pass
    
    class DeleteTransitGatewayPeeringAttachmentRequest(Mapping):
        pass
    
    class DeleteTransitGatewayPeeringAttachmentResult(Mapping):
        pass
    
    class DeleteTransitGatewayPrefixListReferenceRequest(Mapping):
        pass
    
    class DeleteTransitGatewayPrefixListReferenceResult(Mapping):
        pass
    
    class DeleteTransitGatewayRouteRequest(Mapping):
        pass
    
    class DeleteTransitGatewayRouteResult(Mapping):
        pass
    
    class DeleteTransitGatewayRouteTableRequest(Mapping):
        pass
    
    class DeleteTransitGatewayRouteTableResult(Mapping):
        pass
    
    class DeleteTransitGatewayVpcAttachmentRequest(Mapping):
        pass
    
    class DeleteTransitGatewayVpcAttachmentResult(Mapping):
        pass
    
    class DeleteVolumeRequest(Mapping):
        pass
    
    class DeleteVpcRequest(Mapping):
        pass
    
    class DeleteVpcEndpointConnectionNotificationsRequest(Mapping):
        pass
    
    class DeleteVpcEndpointConnectionNotificationsResult(Mapping):
        pass
    
    class ConnectionNotificationId(object):
        pass
    
    class DeleteVpcEndpointServiceConfigurationsRequest(Mapping):
        pass
    
    class DeleteVpcEndpointServiceConfigurationsResult(Mapping):
        pass
    
    class VpcEndpointServiceId(object):
        pass
    
    class DeleteVpcEndpointsRequest(Mapping):
        pass
    
    class DeleteVpcEndpointsResult(Mapping):
        pass
    
    class DeleteVpcPeeringConnectionRequest(Mapping):
        pass
    
    class DeleteVpcPeeringConnectionResult(Mapping):
        pass
    
    class DeleteVpnConnectionRequest(Mapping):
        pass
    
    class DeleteVpnConnectionRouteRequest(Mapping):
        pass
    
    class DeleteVpnGatewayRequest(Mapping):
        pass
    
    class DeprovisionByoipCidrRequest(Mapping):
        pass
    
    class DeprovisionByoipCidrResult(Mapping):
        pass
    
    class DeregisterImageRequest(Mapping):
        pass
    
    class DeregisterInstanceEventNotificationAttributesRequest(Mapping):
        pass
    
    class DeregisterInstanceEventNotificationAttributesResult(Mapping):
        pass
    
    class DeregisterInstanceTagAttributeRequest(Mapping):
        pass
    
    class DeregisterTransitGatewayMulticastGroupMembersRequest(Mapping):
        pass
    
    class DeregisterTransitGatewayMulticastGroupMembersResult(Mapping):
        pass
    
    class NetworkInterfaceId(object):
        pass
    
    class DeregisterTransitGatewayMulticastGroupSourcesRequest(Mapping):
        pass
    
    class DeregisterTransitGatewayMulticastGroupSourcesResult(Mapping):
        pass
    
    class DescribeAccountAttributesRequest(Mapping):
        pass
    
    class DescribeAccountAttributesResult(Mapping):
        pass
    
    class AccountAttributeName(object):
        pass
    
    class DescribeAddressesRequest(Mapping):
        pass
    
    class DescribeAddressesResult(Mapping):
        pass
    
    class Filter(Mapping):
        pass
    
    class AllocationId(object):
        pass
    
    class DescribeAddressesAttributeRequest(Mapping):
        pass
    
    class DescribeAddressesAttributeResult(Mapping):
        pass
    
    class DescribeAggregateIdFormatRequest(Mapping):
        pass
    
    class DescribeAggregateIdFormatResult(Mapping):
        pass
    
    class DescribeAvailabilityZonesRequest(Mapping):
        pass
    
    class DescribeAvailabilityZonesResult(Mapping):
        pass
    
    class DescribeBundleTasksRequest(Mapping):
        pass
    
    class DescribeBundleTasksResult(Mapping):
        pass
    
    class BundleId(object):
        pass
    
    class DescribeByoipCidrsRequest(Mapping):
        pass
    
    class DescribeByoipCidrsResult(Mapping):
        pass
    
    class DescribeCapacityReservationsRequest(Mapping):
        pass
    
    class DescribeCapacityReservationsResult(Mapping):
        pass
    
    class CapacityReservationId(object):
        pass
    
    class DescribeCarrierGatewaysRequest(Mapping):
        pass
    
    class DescribeCarrierGatewaysResult(Mapping):
        pass
    
    class CarrierGatewayId(object):
        pass
    
    class DescribeClassicLinkInstancesRequest(Mapping):
        pass
    
    class DescribeClassicLinkInstancesResult(Mapping):
        pass
    
    class InstanceId(object):
        pass
    
    class DescribeClientVpnAuthorizationRulesRequest(Mapping):
        pass
    
    class DescribeClientVpnAuthorizationRulesResult(Mapping):
        pass
    
    class DescribeClientVpnConnectionsRequest(Mapping):
        pass
    
    class DescribeClientVpnConnectionsResult(Mapping):
        pass
    
    class DescribeClientVpnEndpointsRequest(Mapping):
        pass
    
    class DescribeClientVpnEndpointsResult(Mapping):
        pass
    
    class ClientVpnEndpointId(object):
        pass
    
    class DescribeClientVpnRoutesRequest(Mapping):
        pass
    
    class DescribeClientVpnRoutesResult(Mapping):
        pass
    
    class DescribeClientVpnTargetNetworksRequest(Mapping):
        pass
    
    class DescribeClientVpnTargetNetworksResult(Mapping):
        pass
    
    class DescribeCoipPoolsRequest(Mapping):
        pass
    
    class DescribeCoipPoolsResult(Mapping):
        pass
    
    class CoipPoolId(object):
        pass
    
    class DescribeConversionTasksRequest(Mapping):
        pass
    
    class DescribeConversionTasksResult(Mapping):
        pass
    
    class ConversionTaskId(object):
        pass
    
    class DescribeCustomerGatewaysRequest(Mapping):
        pass
    
    class DescribeCustomerGatewaysResult(Mapping):
        pass
    
    class CustomerGatewayId(object):
        pass
    
    class DescribeDhcpOptionsRequest(Mapping):
        pass
    
    class DescribeDhcpOptionsResult(Mapping):
        pass
    
    class DhcpOptionsId(object):
        pass
    
    class DescribeEgressOnlyInternetGatewaysRequest(Mapping):
        pass
    
    class DescribeEgressOnlyInternetGatewaysResult(Mapping):
        pass
    
    class EgressOnlyInternetGatewayId(object):
        pass
    
    class DescribeElasticGpusRequest(Mapping):
        pass
    
    class DescribeElasticGpusResult(Mapping):
        pass
    
    class ElasticGpuId(object):
        pass
    
    class DescribeExportImageTasksRequest(Mapping):
        pass
    
    class DescribeExportImageTasksResult(Mapping):
        pass
    
    class ExportImageTaskId(object):
        pass
    
    class DescribeExportTasksRequest(Mapping):
        pass
    
    class DescribeExportTasksResult(Mapping):
        pass
    
    class ExportTaskId(object):
        pass
    
    class DescribeFastSnapshotRestoresRequest(Mapping):
        pass
    
    class DescribeFastSnapshotRestoresResult(Mapping):
        pass
    
    class DescribeFleetHistoryRequest(Mapping):
        pass
    
    class DescribeFleetHistoryResult(Mapping):
        pass
    
    class DescribeFleetInstancesRequest(Mapping):
        pass
    
    class DescribeFleetInstancesResult(Mapping):
        pass
    
    class DescribeFleetsRequest(Mapping):
        pass
    
    class DescribeFleetsResult(Mapping):
        pass
    
    class DescribeFlowLogsRequest(Mapping):
        pass
    
    class DescribeFlowLogsResult(Mapping):
        pass
    
    class DescribeFpgaImageAttributeRequest(Mapping):
        pass
    
    class DescribeFpgaImageAttributeResult(Mapping):
        pass
    
    class DescribeFpgaImagesRequest(Mapping):
        pass
    
    class DescribeFpgaImagesResult(Mapping):
        pass
    
    class FpgaImageId(object):
        pass
    
    class DescribeHostReservationOfferingsRequest(Mapping):
        pass
    
    class DescribeHostReservationOfferingsResult(Mapping):
        pass
    
    class DescribeHostReservationsRequest(Mapping):
        pass
    
    class DescribeHostReservationsResult(Mapping):
        pass
    
    class HostReservationId(object):
        pass
    
    class DescribeHostsRequest(Mapping):
        pass
    
    class DescribeHostsResult(Mapping):
        pass
    
    class DedicatedHostId(object):
        pass
    
    class DescribeIamInstanceProfileAssociationsRequest(Mapping):
        pass
    
    class DescribeIamInstanceProfileAssociationsResult(Mapping):
        pass
    
    class IamInstanceProfileAssociationId(object):
        pass
    
    class DescribeIdFormatRequest(Mapping):
        pass
    
    class DescribeIdFormatResult(Mapping):
        pass
    
    class DescribeIdentityIdFormatRequest(Mapping):
        pass
    
    class DescribeIdentityIdFormatResult(Mapping):
        pass
    
    class DescribeImageAttributeRequest(Mapping):
        pass
    
    class ImageAttribute(Mapping):
        pass
    
    class DescribeImagesRequest(Mapping):
        pass
    
    class DescribeImagesResult(Mapping):
        pass
    
    class ImageId(object):
        pass
    
    class DescribeImportImageTasksRequest(Mapping):
        pass
    
    class DescribeImportImageTasksResult(Mapping):
        pass
    
    class ImportImageTaskId(object):
        pass
    
    class DescribeImportSnapshotTasksRequest(Mapping):
        pass
    
    class DescribeImportSnapshotTasksResult(Mapping):
        pass
    
    class ImportSnapshotTaskId(object):
        pass
    
    class DescribeInstanceAttributeRequest(Mapping):
        pass
    
    class InstanceAttribute(Mapping):
        pass
    
    class DescribeInstanceCreditSpecificationsRequest(Mapping):
        pass
    
    class DescribeInstanceCreditSpecificationsResult(Mapping):
        pass
    
    class DescribeInstanceEventNotificationAttributesRequest(Mapping):
        pass
    
    class DescribeInstanceEventNotificationAttributesResult(Mapping):
        pass
    
    class DescribeInstanceStatusRequest(Mapping):
        pass
    
    class DescribeInstanceStatusResult(Mapping):
        pass
    
    class DescribeInstanceTypeOfferingsRequest(Mapping):
        pass
    
    class DescribeInstanceTypeOfferingsResult(Mapping):
        pass
    
    class DescribeInstanceTypesRequest(Mapping):
        pass
    
    class DescribeInstanceTypesResult(Mapping):
        pass
    
    class InstanceType(object):
        pass
    
    class DescribeInstancesRequest(Mapping):
        pass
    
    class DescribeInstancesResult(Mapping):
        pass
    
    class DescribeInternetGatewaysRequest(Mapping):
        pass
    
    class DescribeInternetGatewaysResult(Mapping):
        pass
    
    class InternetGatewayId(object):
        pass
    
    class DescribeIpv6PoolsRequest(Mapping):
        pass
    
    class DescribeIpv6PoolsResult(Mapping):
        pass
    
    class Ipv6PoolEc2Id(object):
        pass
    
    class DescribeKeyPairsRequest(Mapping):
        pass
    
    class DescribeKeyPairsResult(Mapping):
        pass
    
    class KeyPairName(object):
        pass
    
    class KeyPairId(object):
        pass
    
    class DescribeLaunchTemplateVersionsRequest(Mapping):
        pass
    
    class DescribeLaunchTemplateVersionsResult(Mapping):
        pass
    
    class DescribeLaunchTemplatesRequest(Mapping):
        pass
    
    class DescribeLaunchTemplatesResult(Mapping):
        pass
    
    class LaunchTemplateId(object):
        pass
    
    class LaunchTemplateName(object):
        pass
    
    class DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsRequest(Mapping):
        pass
    
    class DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsResult(Mapping):
        pass
    
    class LocalGatewayRouteTableVirtualInterfaceGroupAssociationId(object):
        pass
    
    class DescribeLocalGatewayRouteTableVpcAssociationsRequest(Mapping):
        pass
    
    class DescribeLocalGatewayRouteTableVpcAssociationsResult(Mapping):
        pass
    
    class LocalGatewayRouteTableVpcAssociationId(object):
        pass
    
    class DescribeLocalGatewayRouteTablesRequest(Mapping):
        pass
    
    class DescribeLocalGatewayRouteTablesResult(Mapping):
        pass
    
    class LocalGatewayRoutetableId(object):
        pass
    
    class DescribeLocalGatewayVirtualInterfaceGroupsRequest(Mapping):
        pass
    
    class DescribeLocalGatewayVirtualInterfaceGroupsResult(Mapping):
        pass
    
    class LocalGatewayVirtualInterfaceGroupId(object):
        pass
    
    class DescribeLocalGatewayVirtualInterfacesRequest(Mapping):
        pass
    
    class DescribeLocalGatewayVirtualInterfacesResult(Mapping):
        pass
    
    class LocalGatewayVirtualInterfaceId(object):
        pass
    
    class DescribeLocalGatewaysRequest(Mapping):
        pass
    
    class DescribeLocalGatewaysResult(Mapping):
        pass
    
    class LocalGatewayId(object):
        pass
    
    class DescribeManagedPrefixListsRequest(Mapping):
        pass
    
    class DescribeManagedPrefixListsResult(Mapping):
        pass
    
    class DescribeMovingAddressesRequest(Mapping):
        pass
    
    class DescribeMovingAddressesResult(Mapping):
        pass
    
    class DescribeNatGatewaysRequest(Mapping):
        pass
    
    class DescribeNatGatewaysResult(Mapping):
        pass
    
    class NatGatewayId(object):
        pass
    
    class DescribeNetworkAclsRequest(Mapping):
        pass
    
    class DescribeNetworkAclsResult(Mapping):
        pass
    
    class NetworkAclId(object):
        pass
    
    class DescribeNetworkInsightsAnalysesRequest(Mapping):
        pass
    
    class DescribeNetworkInsightsAnalysesResult(Mapping):
        pass
    
    class NetworkInsightsAnalysisId(object):
        pass
    
    class MillisecondDateTime(object):
        pass
    
    class DescribeNetworkInsightsPathsRequest(Mapping):
        pass
    
    class DescribeNetworkInsightsPathsResult(Mapping):
        pass
    
    class NetworkInsightsPathId(object):
        pass
    
    class DescribeNetworkInterfaceAttributeRequest(Mapping):
        pass
    
    class DescribeNetworkInterfaceAttributeResult(Mapping):
        pass
    
    class DescribeNetworkInterfacePermissionsRequest(Mapping):
        pass
    
    class DescribeNetworkInterfacePermissionsResult(Mapping):
        pass
    
    class NetworkInterfacePermissionId(object):
        pass
    
    class DescribeNetworkInterfacesRequest(Mapping):
        pass
    
    class DescribeNetworkInterfacesResult(Mapping):
        pass
    
    class DescribePlacementGroupsRequest(Mapping):
        pass
    
    class DescribePlacementGroupsResult(Mapping):
        pass
    
    class PlacementGroupName(object):
        pass
    
    class PlacementGroupId(object):
        pass
    
    class DescribePrefixListsRequest(Mapping):
        pass
    
    class DescribePrefixListsResult(Mapping):
        pass
    
    class PrefixListResourceId(object):
        pass
    
    class DescribePrincipalIdFormatRequest(Mapping):
        pass
    
    class DescribePrincipalIdFormatResult(Mapping):
        pass
    
    class DescribePublicIpv4PoolsRequest(Mapping):
        pass
    
    class DescribePublicIpv4PoolsResult(Mapping):
        pass
    
    class Ipv4PoolEc2Id(object):
        pass
    
    class DescribeRegionsRequest(Mapping):
        pass
    
    class DescribeRegionsResult(Mapping):
        pass
    
    class DescribeReplaceRootVolumeTasksRequest(Mapping):
        pass
    
    class DescribeReplaceRootVolumeTasksResult(Mapping):
        pass
    
    class ReplaceRootVolumeTaskId(object):
        pass
    
    class DescribeReservedInstancesRequest(Mapping):
        pass
    
    class DescribeReservedInstancesResult(Mapping):
        pass
    
    class DescribeReservedInstancesListingsRequest(Mapping):
        pass
    
    class DescribeReservedInstancesListingsResult(Mapping):
        pass
    
    class DescribeReservedInstancesModificationsRequest(Mapping):
        pass
    
    class DescribeReservedInstancesModificationsResult(Mapping):
        pass
    
    class ReservedInstancesModificationId(object):
        pass
    
    class DescribeReservedInstancesOfferingsRequest(Mapping):
        pass
    
    class DescribeReservedInstancesOfferingsResult(Mapping):
        pass
    
    class ReservedInstancesOfferingId(object):
        pass
    
    class DescribeRouteTablesRequest(Mapping):
        pass
    
    class DescribeRouteTablesResult(Mapping):
        pass
    
    class DescribeScheduledInstanceAvailabilityRequest(Mapping):
        pass
    
    class DescribeScheduledInstanceAvailabilityResult(Mapping):
        pass
    
    class SlotDateTimeRangeRequest(Mapping):
        pass
    
    class ScheduledInstanceRecurrenceRequest(Mapping):
        pass
    
    class DescribeScheduledInstancesRequest(Mapping):
        pass
    
    class DescribeScheduledInstancesResult(Mapping):
        pass
    
    class ScheduledInstanceId(object):
        pass
    
    class SlotStartTimeRangeRequest(Mapping):
        pass
    
    class DescribeSecurityGroupReferencesRequest(Mapping):
        pass
    
    class DescribeSecurityGroupReferencesResult(Mapping):
        pass
    
    class DescribeSecurityGroupRulesRequest(Mapping):
        pass
    
    class DescribeSecurityGroupRulesResult(Mapping):
        pass
    
    class DescribeSecurityGroupsRequest(Mapping):
        pass
    
    class DescribeSecurityGroupsResult(Mapping):
        pass
    
    class SecurityGroupName(object):
        pass
    
    class DescribeSnapshotAttributeRequest(Mapping):
        pass
    
    class DescribeSnapshotAttributeResult(Mapping):
        pass
    
    class DescribeSnapshotsRequest(Mapping):
        pass
    
    class DescribeSnapshotsResult(Mapping):
        pass
    
    class SnapshotId(object):
        pass
    
    class DescribeSpotDatafeedSubscriptionRequest(Mapping):
        pass
    
    class DescribeSpotDatafeedSubscriptionResult(Mapping):
        pass
    
    class DescribeSpotFleetInstancesRequest(Mapping):
        pass
    
    class DescribeSpotFleetInstancesResponse(Mapping):
        pass
    
    class DescribeSpotFleetRequestHistoryRequest(Mapping):
        pass
    
    class DescribeSpotFleetRequestHistoryResponse(Mapping):
        pass
    
    class DescribeSpotFleetRequestsRequest(Mapping):
        pass
    
    class DescribeSpotFleetRequestsResponse(Mapping):
        pass
    
    class DescribeSpotInstanceRequestsRequest(Mapping):
        pass
    
    class DescribeSpotInstanceRequestsResult(Mapping):
        pass
    
    class DescribeSpotPriceHistoryRequest(Mapping):
        pass
    
    class DescribeSpotPriceHistoryResult(Mapping):
        pass
    
    class DescribeStaleSecurityGroupsRequest(Mapping):
        pass
    
    class DescribeStaleSecurityGroupsResult(Mapping):
        pass
    
    class DescribeStoreImageTasksRequest(Mapping):
        pass
    
    class DescribeStoreImageTasksResult(Mapping):
        pass
    
    class DescribeSubnetsRequest(Mapping):
        pass
    
    class DescribeSubnetsResult(Mapping):
        pass
    
    class DescribeTagsRequest(Mapping):
        pass
    
    class DescribeTagsResult(Mapping):
        pass
    
    class DescribeTrafficMirrorFiltersRequest(Mapping):
        pass
    
    class DescribeTrafficMirrorFiltersResult(Mapping):
        pass
    
    class TrafficMirrorFilterId(object):
        pass
    
    class DescribeTrafficMirrorSessionsRequest(Mapping):
        pass
    
    class DescribeTrafficMirrorSessionsResult(Mapping):
        pass
    
    class TrafficMirrorSessionId(object):
        pass
    
    class DescribeTrafficMirrorTargetsRequest(Mapping):
        pass
    
    class DescribeTrafficMirrorTargetsResult(Mapping):
        pass
    
    class TrafficMirrorTargetId(object):
        pass
    
    class DescribeTransitGatewayAttachmentsRequest(Mapping):
        pass
    
    class DescribeTransitGatewayAttachmentsResult(Mapping):
        pass
    
    class TransitGatewayAttachmentId(object):
        pass
    
    class DescribeTransitGatewayConnectPeersRequest(Mapping):
        pass
    
    class DescribeTransitGatewayConnectPeersResult(Mapping):
        pass
    
    class TransitGatewayConnectPeerId(object):
        pass
    
    class DescribeTransitGatewayConnectsRequest(Mapping):
        pass
    
    class DescribeTransitGatewayConnectsResult(Mapping):
        pass
    
    class DescribeTransitGatewayMulticastDomainsRequest(Mapping):
        pass
    
    class DescribeTransitGatewayMulticastDomainsResult(Mapping):
        pass
    
    class TransitGatewayMulticastDomainId(object):
        pass
    
    class DescribeTransitGatewayPeeringAttachmentsRequest(Mapping):
        pass
    
    class DescribeTransitGatewayPeeringAttachmentsResult(Mapping):
        pass
    
    class DescribeTransitGatewayRouteTablesRequest(Mapping):
        pass
    
    class DescribeTransitGatewayRouteTablesResult(Mapping):
        pass
    
    class TransitGatewayRouteTableId(object):
        pass
    
    class DescribeTransitGatewayVpcAttachmentsRequest(Mapping):
        pass
    
    class DescribeTransitGatewayVpcAttachmentsResult(Mapping):
        pass
    
    class DescribeTransitGatewaysRequest(Mapping):
        pass
    
    class DescribeTransitGatewaysResult(Mapping):
        pass
    
    class TransitGatewayId(object):
        pass
    
    class DescribeTrunkInterfaceAssociationsRequest(Mapping):
        pass
    
    class DescribeTrunkInterfaceAssociationsResult(Mapping):
        pass
    
    class TrunkInterfaceAssociationId(object):
        pass
    
    class DescribeVolumeAttributeRequest(Mapping):
        pass
    
    class DescribeVolumeAttributeResult(Mapping):
        pass
    
    class DescribeVolumeStatusRequest(Mapping):
        pass
    
    class DescribeVolumeStatusResult(Mapping):
        pass
    
    class VolumeId(object):
        pass
    
    class DescribeVolumesRequest(Mapping):
        pass
    
    class DescribeVolumesResult(Mapping):
        pass
    
    class DescribeVolumesModificationsRequest(Mapping):
        pass
    
    class DescribeVolumesModificationsResult(Mapping):
        pass
    
    class DescribeVpcAttributeRequest(Mapping):
        pass
    
    class DescribeVpcAttributeResult(Mapping):
        pass
    
    class DescribeVpcClassicLinkRequest(Mapping):
        pass
    
    class DescribeVpcClassicLinkResult(Mapping):
        pass
    
    class VpcId(object):
        pass
    
    class DescribeVpcClassicLinkDnsSupportRequest(Mapping):
        pass
    
    class DescribeVpcClassicLinkDnsSupportResult(Mapping):
        pass
    
    class DescribeVpcEndpointConnectionNotificationsRequest(Mapping):
        pass
    
    class DescribeVpcEndpointConnectionNotificationsResult(Mapping):
        pass
    
    class DescribeVpcEndpointConnectionsRequest(Mapping):
        pass
    
    class DescribeVpcEndpointConnectionsResult(Mapping):
        pass
    
    class DescribeVpcEndpointServiceConfigurationsRequest(Mapping):
        pass
    
    class DescribeVpcEndpointServiceConfigurationsResult(Mapping):
        pass
    
    class DescribeVpcEndpointServicePermissionsRequest(Mapping):
        pass
    
    class DescribeVpcEndpointServicePermissionsResult(Mapping):
        pass
    
    class DescribeVpcEndpointServicesRequest(Mapping):
        pass
    
    class DescribeVpcEndpointServicesResult(Mapping):
        pass
    
    class DescribeVpcEndpointsRequest(Mapping):
        pass
    
    class DescribeVpcEndpointsResult(Mapping):
        pass
    
    class DescribeVpcPeeringConnectionsRequest(Mapping):
        pass
    
    class DescribeVpcPeeringConnectionsResult(Mapping):
        pass
    
    class VpcPeeringConnectionId(object):
        pass
    
    class DescribeVpcsRequest(Mapping):
        pass
    
    class DescribeVpcsResult(Mapping):
        pass
    
    class DescribeVpnConnectionsRequest(Mapping):
        pass
    
    class DescribeVpnConnectionsResult(Mapping):
        pass
    
    class VpnConnectionId(object):
        pass
    
    class DescribeVpnGatewaysRequest(Mapping):
        pass
    
    class DescribeVpnGatewaysResult(Mapping):
        pass
    
    class VpnGatewayId(object):
        pass
    
    class DetachClassicLinkVpcRequest(Mapping):
        pass
    
    class DetachClassicLinkVpcResult(Mapping):
        pass
    
    class DetachInternetGatewayRequest(Mapping):
        pass
    
    class DetachNetworkInterfaceRequest(Mapping):
        pass
    
    class DetachVolumeRequest(Mapping):
        pass
    
    class DetachVpnGatewayRequest(Mapping):
        pass
    
    class DisableEbsEncryptionByDefaultRequest(Mapping):
        pass
    
    class DisableEbsEncryptionByDefaultResult(Mapping):
        pass
    
    class DisableFastSnapshotRestoresRequest(Mapping):
        pass
    
    class DisableFastSnapshotRestoresResult(Mapping):
        pass
    
    class DisableImageDeprecationRequest(Mapping):
        pass
    
    class DisableImageDeprecationResult(Mapping):
        pass
    
    class DisableSerialConsoleAccessRequest(Mapping):
        pass
    
    class DisableSerialConsoleAccessResult(Mapping):
        pass
    
    class DisableTransitGatewayRouteTablePropagationRequest(Mapping):
        pass
    
    class DisableTransitGatewayRouteTablePropagationResult(Mapping):
        pass
    
    class DisableVgwRoutePropagationRequest(Mapping):
        pass
    
    class DisableVpcClassicLinkRequest(Mapping):
        pass
    
    class DisableVpcClassicLinkResult(Mapping):
        pass
    
    class DisableVpcClassicLinkDnsSupportRequest(Mapping):
        pass
    
    class DisableVpcClassicLinkDnsSupportResult(Mapping):
        pass
    
    class DisassociateAddressRequest(Mapping):
        pass
    
    class DisassociateClientVpnTargetNetworkRequest(Mapping):
        pass
    
    class DisassociateClientVpnTargetNetworkResult(Mapping):
        pass
    
    class DisassociateEnclaveCertificateIamRoleRequest(Mapping):
        pass
    
    class DisassociateEnclaveCertificateIamRoleResult(Mapping):
        pass
    
    class DisassociateIamInstanceProfileRequest(Mapping):
        pass
    
    class DisassociateIamInstanceProfileResult(Mapping):
        pass
    
    class DisassociateRouteTableRequest(Mapping):
        pass
    
    class DisassociateSubnetCidrBlockRequest(Mapping):
        pass
    
    class DisassociateSubnetCidrBlockResult(Mapping):
        pass
    
    class DisassociateTransitGatewayMulticastDomainRequest(Mapping):
        pass
    
    class DisassociateTransitGatewayMulticastDomainResult(Mapping):
        pass
    
    class DisassociateTransitGatewayRouteTableRequest(Mapping):
        pass
    
    class DisassociateTransitGatewayRouteTableResult(Mapping):
        pass
    
    class DisassociateTrunkInterfaceRequest(Mapping):
        pass
    
    class DisassociateTrunkInterfaceResult(Mapping):
        pass
    
    class DisassociateVpcCidrBlockRequest(Mapping):
        pass
    
    class DisassociateVpcCidrBlockResult(Mapping):
        pass
    
    class EnableEbsEncryptionByDefaultRequest(Mapping):
        pass
    
    class EnableEbsEncryptionByDefaultResult(Mapping):
        pass
    
    class EnableFastSnapshotRestoresRequest(Mapping):
        pass
    
    class EnableFastSnapshotRestoresResult(Mapping):
        pass
    
    class EnableImageDeprecationRequest(Mapping):
        pass
    
    class EnableImageDeprecationResult(Mapping):
        pass
    
    class EnableSerialConsoleAccessRequest(Mapping):
        pass
    
    class EnableSerialConsoleAccessResult(Mapping):
        pass
    
    class EnableTransitGatewayRouteTablePropagationRequest(Mapping):
        pass
    
    class EnableTransitGatewayRouteTablePropagationResult(Mapping):
        pass
    
    class EnableVgwRoutePropagationRequest(Mapping):
        pass
    
    class EnableVolumeIORequest(Mapping):
        pass
    
    class EnableVpcClassicLinkRequest(Mapping):
        pass
    
    class EnableVpcClassicLinkResult(Mapping):
        pass
    
    class EnableVpcClassicLinkDnsSupportRequest(Mapping):
        pass
    
    class EnableVpcClassicLinkDnsSupportResult(Mapping):
        pass
    
    class ExportClientVpnClientCertificateRevocationListRequest(Mapping):
        pass
    
    class ExportClientVpnClientCertificateRevocationListResult(Mapping):
        pass
    
    class ExportClientVpnClientConfigurationRequest(Mapping):
        pass
    
    class ExportClientVpnClientConfigurationResult(Mapping):
        pass
    
    class ExportImageRequest(Mapping):
        pass
    
    class ExportImageResult(Mapping):
        pass
    
    class ExportTaskS3LocationRequest(Mapping):
        pass
    
    class ExportTransitGatewayRoutesRequest(Mapping):
        pass
    
    class ExportTransitGatewayRoutesResult(Mapping):
        pass
    
    class GetAssociatedEnclaveCertificateIamRolesRequest(Mapping):
        pass
    
    class GetAssociatedEnclaveCertificateIamRolesResult(Mapping):
        pass
    
    class GetAssociatedIpv6PoolCidrsRequest(Mapping):
        pass
    
    class GetAssociatedIpv6PoolCidrsResult(Mapping):
        pass
    
    class GetCapacityReservationUsageRequest(Mapping):
        pass
    
    class GetCapacityReservationUsageResult(Mapping):
        pass
    
    class GetCoipPoolUsageRequest(Mapping):
        pass
    
    class GetCoipPoolUsageResult(Mapping):
        pass
    
    class GetConsoleOutputRequest(Mapping):
        pass
    
    class GetConsoleOutputResult(Mapping):
        pass
    
    class GetConsoleScreenshotRequest(Mapping):
        pass
    
    class GetConsoleScreenshotResult(Mapping):
        pass
    
    class GetDefaultCreditSpecificationRequest(Mapping):
        pass
    
    class GetDefaultCreditSpecificationResult(Mapping):
        pass
    
    class GetEbsDefaultKmsKeyIdRequest(Mapping):
        pass
    
    class GetEbsDefaultKmsKeyIdResult(Mapping):
        pass
    
    class GetEbsEncryptionByDefaultRequest(Mapping):
        pass
    
    class GetEbsEncryptionByDefaultResult(Mapping):
        pass
    
    class GetFlowLogsIntegrationTemplateRequest(Mapping):
        pass
    
    class GetFlowLogsIntegrationTemplateResult(Mapping):
        pass
    
    class IntegrateServices(Mapping):
        pass
    
    class GetGroupsForCapacityReservationRequest(Mapping):
        pass
    
    class GetGroupsForCapacityReservationResult(Mapping):
        pass
    
    class GetHostReservationPurchasePreviewRequest(Mapping):
        pass
    
    class GetHostReservationPurchasePreviewResult(Mapping):
        pass
    
    class GetLaunchTemplateDataRequest(Mapping):
        pass
    
    class GetLaunchTemplateDataResult(Mapping):
        pass
    
    class GetManagedPrefixListAssociationsRequest(Mapping):
        pass
    
    class GetManagedPrefixListAssociationsResult(Mapping):
        pass
    
    class GetManagedPrefixListEntriesRequest(Mapping):
        pass
    
    class GetManagedPrefixListEntriesResult(Mapping):
        pass
    
    class GetPasswordDataRequest(Mapping):
        pass
    
    class GetPasswordDataResult(Mapping):
        pass
    
    class GetReservedInstancesExchangeQuoteRequest(Mapping):
        pass
    
    class GetReservedInstancesExchangeQuoteResult(Mapping):
        pass
    
    class GetSerialConsoleAccessStatusRequest(Mapping):
        pass
    
    class GetSerialConsoleAccessStatusResult(Mapping):
        pass
    
    class GetTransitGatewayAttachmentPropagationsRequest(Mapping):
        pass
    
    class GetTransitGatewayAttachmentPropagationsResult(Mapping):
        pass
    
    class GetTransitGatewayMulticastDomainAssociationsRequest(Mapping):
        pass
    
    class GetTransitGatewayMulticastDomainAssociationsResult(Mapping):
        pass
    
    class GetTransitGatewayPrefixListReferencesRequest(Mapping):
        pass
    
    class GetTransitGatewayPrefixListReferencesResult(Mapping):
        pass
    
    class GetTransitGatewayRouteTableAssociationsRequest(Mapping):
        pass
    
    class GetTransitGatewayRouteTableAssociationsResult(Mapping):
        pass
    
    class GetTransitGatewayRouteTablePropagationsRequest(Mapping):
        pass
    
    class GetTransitGatewayRouteTablePropagationsResult(Mapping):
        pass
    
    class ImportClientVpnClientCertificateRevocationListRequest(Mapping):
        pass
    
    class ImportClientVpnClientCertificateRevocationListResult(Mapping):
        pass
    
    class ImportImageRequest(Mapping):
        pass
    
    class ImportImageResult(Mapping):
        pass
    
    class ClientData(Mapping):
        pass
    
    class ImageDiskContainer(Mapping):
        pass
    
    class ImportImageLicenseConfigurationRequest(Mapping):
        pass
    
    class ImportInstanceRequest(Mapping):
        pass
    
    class ImportInstanceResult(Mapping):
        pass
    
    class DiskImage(Mapping):
        pass
    
    class ImportInstanceLaunchSpecification(Mapping):
        pass
    
    class ImportKeyPairRequest(Mapping):
        pass
    
    class ImportKeyPairResult(Mapping):
        pass
    
    class Blob(object):
        pass
    
    class ImportSnapshotRequest(Mapping):
        pass
    
    class ImportSnapshotResult(Mapping):
        pass
    
    class SnapshotDiskContainer(Mapping):
        pass
    
    class ImportVolumeRequest(Mapping):
        pass
    
    class ImportVolumeResult(Mapping):
        pass
    
    class DiskImageDetail(Mapping):
        pass
    
    class VolumeDetail(Mapping):
        pass
    
    class ModifyAddressAttributeRequest(Mapping):
        pass
    
    class ModifyAddressAttributeResult(Mapping):
        pass
    
    class ModifyAvailabilityZoneGroupRequest(Mapping):
        pass
    
    class ModifyAvailabilityZoneGroupResult(Mapping):
        pass
    
    class ModifyCapacityReservationRequest(Mapping):
        pass
    
    class ModifyCapacityReservationResult(Mapping):
        pass
    
    class ModifyClientVpnEndpointRequest(Mapping):
        pass
    
    class ModifyClientVpnEndpointResult(Mapping):
        pass
    
    class DnsServersOptionsModifyStructure(Mapping):
        pass
    
    class ModifyDefaultCreditSpecificationRequest(Mapping):
        pass
    
    class ModifyDefaultCreditSpecificationResult(Mapping):
        pass
    
    class ModifyEbsDefaultKmsKeyIdRequest(Mapping):
        pass
    
    class ModifyEbsDefaultKmsKeyIdResult(Mapping):
        pass
    
    class ModifyFleetRequest(Mapping):
        pass
    
    class ModifyFleetResult(Mapping):
        pass
    
    class ModifyFpgaImageAttributeRequest(Mapping):
        pass
    
    class ModifyFpgaImageAttributeResult(Mapping):
        pass
    
    class LoadPermissionModifications(Mapping):
        pass
    
    class ModifyHostsRequest(Mapping):
        pass
    
    class ModifyHostsResult(Mapping):
        pass
    
    class ModifyIdFormatRequest(Mapping):
        pass
    
    class ModifyIdentityIdFormatRequest(Mapping):
        pass
    
    class ModifyImageAttributeRequest(Mapping):
        pass
    
    class AttributeValue(Mapping):
        pass
    
    class LaunchPermissionModifications(Mapping):
        pass
    
    class ModifyInstanceAttributeRequest(Mapping):
        pass
    
    class AttributeBooleanValue(Mapping):
        pass
    
    class InstanceBlockDeviceMappingSpecification(Mapping):
        pass
    
    class BlobAttributeValue(Mapping):
        pass
    
    class ModifyInstanceCapacityReservationAttributesRequest(Mapping):
        pass
    
    class ModifyInstanceCapacityReservationAttributesResult(Mapping):
        pass
    
    class CapacityReservationSpecification(Mapping):
        pass
    
    class ModifyInstanceCreditSpecificationRequest(Mapping):
        pass
    
    class ModifyInstanceCreditSpecificationResult(Mapping):
        pass
    
    class InstanceCreditSpecificationRequest(Mapping):
        pass
    
    class ModifyInstanceEventStartTimeRequest(Mapping):
        pass
    
    class ModifyInstanceEventStartTimeResult(Mapping):
        pass
    
    class ModifyInstanceMetadataOptionsRequest(Mapping):
        pass
    
    class ModifyInstanceMetadataOptionsResult(Mapping):
        pass
    
    class ModifyInstancePlacementRequest(Mapping):
        pass
    
    class ModifyInstancePlacementResult(Mapping):
        pass
    
    class ModifyLaunchTemplateRequest(Mapping):
        pass
    
    class ModifyLaunchTemplateResult(Mapping):
        pass
    
    class ModifyManagedPrefixListRequest(Mapping):
        pass
    
    class ModifyManagedPrefixListResult(Mapping):
        pass
    
    class RemovePrefixListEntry(Mapping):
        pass
    
    class ModifyNetworkInterfaceAttributeRequest(Mapping):
        pass
    
    class NetworkInterfaceAttachmentChanges(Mapping):
        pass
    
    class ModifyReservedInstancesRequest(Mapping):
        pass
    
    class ModifyReservedInstancesResult(Mapping):
        pass
    
    class ReservedInstancesConfiguration(Mapping):
        pass
    
    class ModifySecurityGroupRulesRequest(Mapping):
        pass
    
    class ModifySecurityGroupRulesResult(Mapping):
        pass
    
    class SecurityGroupRuleUpdate(Mapping):
        pass
    
    class ModifySnapshotAttributeRequest(Mapping):
        pass
    
    class CreateVolumePermissionModifications(Mapping):
        pass
    
    class ModifySpotFleetRequestRequest(Mapping):
        pass
    
    class ModifySpotFleetRequestResponse(Mapping):
        pass
    
    class LaunchTemplateConfig(Mapping):
        pass
    
    class ModifySubnetAttributeRequest(Mapping):
        pass
    
    class ModifyTrafficMirrorFilterNetworkServicesRequest(Mapping):
        pass
    
    class ModifyTrafficMirrorFilterNetworkServicesResult(Mapping):
        pass
    
    class TrafficMirrorNetworkService(object):
        pass
    
    class ModifyTrafficMirrorFilterRuleRequest(Mapping):
        pass
    
    class ModifyTrafficMirrorFilterRuleResult(Mapping):
        pass
    
    class TrafficMirrorFilterRuleField(object):
        pass
    
    class ModifyTrafficMirrorSessionRequest(Mapping):
        pass
    
    class ModifyTrafficMirrorSessionResult(Mapping):
        pass
    
    class TrafficMirrorSessionField(object):
        pass
    
    class ModifyTransitGatewayRequest(Mapping):
        pass
    
    class ModifyTransitGatewayResult(Mapping):
        pass
    
    class ModifyTransitGatewayOptions(Mapping):
        pass
    
    class ModifyTransitGatewayPrefixListReferenceRequest(Mapping):
        pass
    
    class ModifyTransitGatewayPrefixListReferenceResult(Mapping):
        pass
    
    class ModifyTransitGatewayVpcAttachmentRequest(Mapping):
        pass
    
    class ModifyTransitGatewayVpcAttachmentResult(Mapping):
        pass
    
    class ModifyTransitGatewayVpcAttachmentRequestOptions(Mapping):
        pass
    
    class ModifyVolumeRequest(Mapping):
        pass
    
    class ModifyVolumeResult(Mapping):
        pass
    
    class ModifyVolumeAttributeRequest(Mapping):
        pass
    
    class ModifyVpcAttributeRequest(Mapping):
        pass
    
    class ModifyVpcEndpointRequest(Mapping):
        pass
    
    class ModifyVpcEndpointResult(Mapping):
        pass
    
    class ModifyVpcEndpointConnectionNotificationRequest(Mapping):
        pass
    
    class ModifyVpcEndpointConnectionNotificationResult(Mapping):
        pass
    
    class ModifyVpcEndpointServiceConfigurationRequest(Mapping):
        pass
    
    class ModifyVpcEndpointServiceConfigurationResult(Mapping):
        pass
    
    class ModifyVpcEndpointServicePermissionsRequest(Mapping):
        pass
    
    class ModifyVpcEndpointServicePermissionsResult(Mapping):
        pass
    
    class ModifyVpcPeeringConnectionOptionsRequest(Mapping):
        pass
    
    class ModifyVpcPeeringConnectionOptionsResult(Mapping):
        pass
    
    class PeeringConnectionOptionsRequest(Mapping):
        pass
    
    class ModifyVpcTenancyRequest(Mapping):
        pass
    
    class ModifyVpcTenancyResult(Mapping):
        pass
    
    class ModifyVpnConnectionRequest(Mapping):
        pass
    
    class ModifyVpnConnectionResult(Mapping):
        pass
    
    class ModifyVpnConnectionOptionsRequest(Mapping):
        pass
    
    class ModifyVpnConnectionOptionsResult(Mapping):
        pass
    
    class ModifyVpnTunnelCertificateRequest(Mapping):
        pass
    
    class ModifyVpnTunnelCertificateResult(Mapping):
        pass
    
    class ModifyVpnTunnelOptionsRequest(Mapping):
        pass
    
    class ModifyVpnTunnelOptionsResult(Mapping):
        pass
    
    class ModifyVpnTunnelOptionsSpecification(Mapping):
        pass
    
    class MonitorInstancesRequest(Mapping):
        pass
    
    class MonitorInstancesResult(Mapping):
        pass
    
    class MoveAddressToVpcRequest(Mapping):
        pass
    
    class MoveAddressToVpcResult(Mapping):
        pass
    
    class ProvisionByoipCidrRequest(Mapping):
        pass
    
    class ProvisionByoipCidrResult(Mapping):
        pass
    
    class CidrAuthorizationContext(Mapping):
        pass
    
    class PurchaseHostReservationRequest(Mapping):
        pass
    
    class PurchaseHostReservationResult(Mapping):
        pass
    
    class PurchaseReservedInstancesOfferingRequest(Mapping):
        pass
    
    class PurchaseReservedInstancesOfferingResult(Mapping):
        pass
    
    class ReservedInstanceLimitPrice(Mapping):
        pass
    
    class PurchaseScheduledInstancesRequest(Mapping):
        pass
    
    class PurchaseScheduledInstancesResult(Mapping):
        pass
    
    class PurchaseRequest(Mapping):
        pass
    
    class RebootInstancesRequest(Mapping):
        pass
    
    class RegisterImageRequest(Mapping):
        pass
    
    class RegisterImageResult(Mapping):
        pass
    
    class RegisterInstanceEventNotificationAttributesRequest(Mapping):
        pass
    
    class RegisterInstanceEventNotificationAttributesResult(Mapping):
        pass
    
    class RegisterInstanceTagAttributeRequest(Mapping):
        pass
    
    class RegisterTransitGatewayMulticastGroupMembersRequest(Mapping):
        pass
    
    class RegisterTransitGatewayMulticastGroupMembersResult(Mapping):
        pass
    
    class RegisterTransitGatewayMulticastGroupSourcesRequest(Mapping):
        pass
    
    class RegisterTransitGatewayMulticastGroupSourcesResult(Mapping):
        pass
    
    class RejectTransitGatewayMulticastDomainAssociationsRequest(Mapping):
        pass
    
    class RejectTransitGatewayMulticastDomainAssociationsResult(Mapping):
        pass
    
    class RejectTransitGatewayPeeringAttachmentRequest(Mapping):
        pass
    
    class RejectTransitGatewayPeeringAttachmentResult(Mapping):
        pass
    
    class RejectTransitGatewayVpcAttachmentRequest(Mapping):
        pass
    
    class RejectTransitGatewayVpcAttachmentResult(Mapping):
        pass
    
    class RejectVpcEndpointConnectionsRequest(Mapping):
        pass
    
    class RejectVpcEndpointConnectionsResult(Mapping):
        pass
    
    class RejectVpcPeeringConnectionRequest(Mapping):
        pass
    
    class RejectVpcPeeringConnectionResult(Mapping):
        pass
    
    class ReleaseAddressRequest(Mapping):
        pass
    
    class ReleaseHostsRequest(Mapping):
        pass
    
    class ReleaseHostsResult(Mapping):
        pass
    
    class ReplaceIamInstanceProfileAssociationRequest(Mapping):
        pass
    
    class ReplaceIamInstanceProfileAssociationResult(Mapping):
        pass
    
    class ReplaceNetworkAclAssociationRequest(Mapping):
        pass
    
    class ReplaceNetworkAclAssociationResult(Mapping):
        pass
    
    class ReplaceNetworkAclEntryRequest(Mapping):
        pass
    
    class ReplaceRouteRequest(Mapping):
        pass
    
    class ReplaceRouteTableAssociationRequest(Mapping):
        pass
    
    class ReplaceRouteTableAssociationResult(Mapping):
        pass
    
    class ReplaceTransitGatewayRouteRequest(Mapping):
        pass
    
    class ReplaceTransitGatewayRouteResult(Mapping):
        pass
    
    class ReportInstanceStatusRequest(Mapping):
        pass
    
    class ReportInstanceReasonCodes(object):
        pass
    
    class RequestSpotFleetRequest(Mapping):
        pass
    
    class RequestSpotFleetResponse(Mapping):
        pass
    
    class SpotFleetRequestConfigData(Mapping):
        pass
    
    class RequestSpotInstancesRequest(Mapping):
        pass
    
    class RequestSpotInstancesResult(Mapping):
        pass
    
    class RequestSpotLaunchSpecification(Mapping):
        pass
    
    class ResetAddressAttributeRequest(Mapping):
        pass
    
    class ResetAddressAttributeResult(Mapping):
        pass
    
    class ResetEbsDefaultKmsKeyIdRequest(Mapping):
        pass
    
    class ResetEbsDefaultKmsKeyIdResult(Mapping):
        pass
    
    class ResetFpgaImageAttributeRequest(Mapping):
        pass
    
    class ResetFpgaImageAttributeResult(Mapping):
        pass
    
    class ResetImageAttributeRequest(Mapping):
        pass
    
    class ResetInstanceAttributeRequest(Mapping):
        pass
    
    class ResetNetworkInterfaceAttributeRequest(Mapping):
        pass
    
    class ResetSnapshotAttributeRequest(Mapping):
        pass
    
    class RestoreAddressToClassicRequest(Mapping):
        pass
    
    class RestoreAddressToClassicResult(Mapping):
        pass
    
    class RestoreManagedPrefixListVersionRequest(Mapping):
        pass
    
    class RestoreManagedPrefixListVersionResult(Mapping):
        pass
    
    class RevokeClientVpnIngressRequest(Mapping):
        pass
    
    class RevokeClientVpnIngressResult(Mapping):
        pass
    
    class RevokeSecurityGroupEgressRequest(Mapping):
        pass
    
    class RevokeSecurityGroupEgressResult(Mapping):
        pass
    
    class RevokeSecurityGroupIngressRequest(Mapping):
        pass
    
    class RevokeSecurityGroupIngressResult(Mapping):
        pass
    
    class RunInstancesRequest(Mapping):
        pass
    
    class Reservation(Mapping):
        pass
    
    class RunInstancesMonitoringEnabled(Mapping):
        pass
    
    class Placement(Mapping):
        pass
    
    class InstanceNetworkInterfaceSpecification(Mapping):
        pass
    
    class ElasticGpuSpecification(Mapping):
        pass
    
    class ElasticInferenceAccelerator(Mapping):
        pass
    
    class LaunchTemplateSpecification(Mapping):
        pass
    
    class InstanceMarketOptionsRequest(Mapping):
        pass
    
    class CreditSpecificationRequest(Mapping):
        pass
    
    class CpuOptionsRequest(Mapping):
        pass
    
    class HibernationOptionsRequest(Mapping):
        pass
    
    class LicenseConfigurationRequest(Mapping):
        pass
    
    class InstanceMetadataOptionsRequest(Mapping):
        pass
    
    class EnclaveOptionsRequest(Mapping):
        pass
    
    class RunScheduledInstancesRequest(Mapping):
        pass
    
    class RunScheduledInstancesResult(Mapping):
        pass
    
    class ScheduledInstancesLaunchSpecification(Mapping):
        pass
    
    class SearchLocalGatewayRoutesRequest(Mapping):
        pass
    
    class SearchLocalGatewayRoutesResult(Mapping):
        pass
    
    class SearchTransitGatewayMulticastGroupsRequest(Mapping):
        pass
    
    class SearchTransitGatewayMulticastGroupsResult(Mapping):
        pass
    
    class SearchTransitGatewayRoutesRequest(Mapping):
        pass
    
    class SearchTransitGatewayRoutesResult(Mapping):
        pass
    
    class SendDiagnosticInterruptRequest(Mapping):
        pass
    
    class StartInstancesRequest(Mapping):
        pass
    
    class StartInstancesResult(Mapping):
        pass
    
    class StartNetworkInsightsAnalysisRequest(Mapping):
        pass
    
    class StartNetworkInsightsAnalysisResult(Mapping):
        pass
    
    class ResourceArn(object):
        pass
    
    class StartVpcEndpointServicePrivateDnsVerificationRequest(Mapping):
        pass
    
    class StartVpcEndpointServicePrivateDnsVerificationResult(Mapping):
        pass
    
    class StopInstancesRequest(Mapping):
        pass
    
    class StopInstancesResult(Mapping):
        pass
    
    class TerminateClientVpnConnectionsRequest(Mapping):
        pass
    
    class TerminateClientVpnConnectionsResult(Mapping):
        pass
    
    class TerminateInstancesRequest(Mapping):
        pass
    
    class TerminateInstancesResult(Mapping):
        pass
    
    class UnassignIpv6AddressesRequest(Mapping):
        pass
    
    class UnassignIpv6AddressesResult(Mapping):
        pass
    
    class UnassignPrivateIpAddressesRequest(Mapping):
        pass
    
    class UnmonitorInstancesRequest(Mapping):
        pass
    
    class UnmonitorInstancesResult(Mapping):
        pass
    
    class UpdateSecurityGroupRuleDescriptionsEgressRequest(Mapping):
        pass
    
    class UpdateSecurityGroupRuleDescriptionsEgressResult(Mapping):
        pass
    
    class SecurityGroupRuleDescription(Mapping):
        pass
    
    class UpdateSecurityGroupRuleDescriptionsIngressRequest(Mapping):
        pass
    
    class UpdateSecurityGroupRuleDescriptionsIngressResult(Mapping):
        pass
    
    class WithdrawByoipCidrRequest(Mapping):
        pass
    
    class WithdrawByoipCidrResult(Mapping):
        pass
    
    def accept_reserved_instances_exchange_quote(self, ReservedInstanceIds: List[ReservationId], DryRun: Boolean=None, TargetConfigurations: List[TargetConfigurationRequest]=None) -> AcceptReservedInstancesExchangeQuoteResult:
        r"""Accepts the Convertible Reserved Instance exchange quote described in the <a>GetReservedInstancesExchangeQuote</a> call.

        :param self:
        :param TargetConfigurations:  The configuration of the target Convertible Reserved Instance to exchange for your current Convertible Reserved Instances.<br/>ReservedInstanceIds:  The IDs of the Convertible Reserved Instances to exchange for another Convertible Reserved Instance of the same or higher value.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: ExchangeId:  The ID of the successful exchange.<br/>        """
        pass

    def accept_transit_gateway_multicast_domain_associations(self, TransitGatewayMulticastDomainId: str=None, TransitGatewayAttachmentId: str=None, SubnetIds: List[String]=None, DryRun: Boolean=None) -> AcceptTransitGatewayMulticastDomainAssociationsResult:
        r"""Accepts a request to associate subnets with a transit gateway multicast domain.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>SubnetIds:  The IDs of the subnets to associate with the transit gateway multicast domain.<br/>TransitGatewayAttachmentId:  The ID of the transit gateway attachment.<br/>TransitGatewayMulticastDomainId:  The ID of the transit gateway multicast domain.<br/>
        :return: Associations:  Describes the multicast domain associations.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Subnets</i> The subnets associated with the multicast domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceOwnerId</i>  The ID of the AWS account that owns the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceType</i> The type of resource, for example a VPC attachment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceId</i> The ID of the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayAttachmentId</i> The ID of the transit gateway attachment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayMulticastDomainId</i> The ID of the transit gateway multicast domain.<br/>        """
        pass

    def accept_transit_gateway_peering_attachment(self, TransitGatewayAttachmentId: str, DryRun: Boolean=None) -> AcceptTransitGatewayPeeringAttachmentResult:
        r"""Accepts a transit gateway peering attachment request. The peering attachment must be in the <code>pendingAcceptance</code> state.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>TransitGatewayAttachmentId:  The ID of the transit gateway attachment.<br/>
        :return: TransitGatewayPeeringAttachment:  The transit gateway peering attachment.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The tags for the transit gateway peering attachment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The time the transit gateway peering attachment was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the transit gateway peering attachment. Note that the <code>initiating</code> state has been deprecated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the transit gateway peering attachment.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Status</b>: The status of the transit gateway peering attachment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccepterTgwInfo</i> Information about the accepter transit gateway.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AccepterTgwInfo</b>: Information about the accepter transit gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequesterTgwInfo</i> Information about the requester transit gateway.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RequesterTgwInfo</b>: Information about the requester transit gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayAttachmentId</i> The ID of the transit gateway peering attachment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Region</i> The Region of the transit gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> The AWS account ID of the owner of the transit gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayId</i> The ID of the transit gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Region</i> The Region of the transit gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> The AWS account ID of the owner of the transit gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayId</i> The ID of the transit gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> The status message, if applicable.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Code</i> The status code.<br/>        """
        pass

    def accept_transit_gateway_vpc_attachment(self, TransitGatewayAttachmentId: str, DryRun: Boolean=None) -> AcceptTransitGatewayVpcAttachmentResult:
        r"""Accepts a request to attach a VPC to a transit gateway. The VPC attachment must be in the <code>pendingAcceptance</code> state. Use <a>DescribeTransitGatewayVpcAttachments</a> to view your pending VPC attachment requests. Use <a>RejectTransitGatewayVpcAttachment</a> to reject a VPC attachment request.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>TransitGatewayAttachmentId:  The ID of the attachment.<br/>
        :return: TransitGatewayVpcAttachment:  The VPC attachment.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The tags for the VPC attachment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Options</i> The VPC attachment options.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Options</b>: The VPC attachment options.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The creation time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetIds</i> The IDs of the subnets.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the VPC attachment. Note that the <code>initiating</code> state has been deprecated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcOwnerId</i> The ID of the AWS account that owns the VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The ID of the VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayId</i> The ID of the transit gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayAttachmentId</i> The ID of the attachment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplianceModeSupport</i> Indicates whether appliance mode support is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Ipv6Support</i> Indicates whether IPv6 support is disabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DnsSupport</i> Indicates whether DNS support is enabled.<br/>        """
        pass

    def accept_vpc_endpoint_connections(self, VpcEndpointIds: List[VpcEndpointId], ServiceId: str, DryRun: Boolean=None) -> AcceptVpcEndpointConnectionsResult:
        r"""Accepts one or more interface VPC endpoint connection requests to your VPC endpoint service.

        :param self:
        :param VpcEndpointIds:  The IDs of one or more interface VPC endpoints.<br/>ServiceId:  The ID of the VPC endpoint service.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: Unsuccessful:  Information about the interface endpoints that were not accepted, if applicable.<br/>        """
        pass

    def accept_vpc_peering_connection(self, DryRun: Boolean=None, VpcPeeringConnectionId: str=None) -> AcceptVpcPeeringConnectionResult:
        r"""Accept a VPC peering connection request. To accept a request, the VPC peering connection must be in the <code>pending-acceptance</code> state, and you must be the owner of the peer VPC. Use <a>DescribeVpcPeeringConnections</a> to view your outstanding VPC peering connection requests. For an inter-Region VPC peering connection request, you must accept the VPC peering connection in the Region of the accepter VPC.

        :param self:
        :param VpcPeeringConnectionId:  The ID of the VPC peering connection. You must specify this parameter in the request.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: VpcPeeringConnection:  Information about the VPC peering connection.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcPeeringConnectionId</i> The ID of the VPC peering connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> Any tags assigned to the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the VPC peering connection.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Status</b>: The status of the VPC peering connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequesterVpcInfo</i> Information about the requester VPC. CIDR block information is only returned when describing an active VPC peering connection.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RequesterVpcInfo</b>: Information about the requester VPC. CIDR block information is only returned when describing an active VPC peering connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExpirationTime</i> The time that an unaccepted VPC peering connection will expire.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccepterVpcInfo</i> Information about the accepter VPC. CIDR block information is only returned when describing an active VPC peering connection.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AccepterVpcInfo</b>: Information about the accepter VPC. CIDR block information is only returned when describing an active VPC peering connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> The AWS account ID of the VPC owner.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CidrBlockSet</i> Information about the IPv4 CIDR blocks for the VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Ipv6CidrBlockSet</i> The IPv6 CIDR block for the VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CidrBlock</i> The IPv4 CIDR block for the VPC.<br/>Information about the VPC peering connection options for the accepter or requester VPC.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PeeringOptions</b>: Information about the VPC peering connection options for the accepter or requester VPC.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> The AWS account ID of the VPC owner.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CidrBlockSet</i> Information about the IPv4 CIDR blocks for the VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Ipv6CidrBlockSet</i> The IPv6 CIDR block for the VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CidrBlock</i> The IPv4 CIDR block for the VPC.<br/>Information about the VPC peering connection options for the accepter or requester VPC.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PeeringOptions</b>: Information about the VPC peering connection options for the accepter or requester VPC.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> A message that provides more information about the status, if applicable.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Code</i> The status of the VPC peering connection.<br/>        """
        pass

    def advertise_byoip_cidr(self, Cidr: str, DryRun: Boolean=None) -> AdvertiseByoipCidrResult:
        r"""Advertises an IPv4 or IPv6 address range that is provisioned for use with your Amazon Web Services resources through bring your own IP addresses (BYOIP). You can perform this operation at most once every 10 seconds, even if you specify different address ranges each time. We recommend that you stop advertising the BYOIP CIDR from other locations when you advertise it from Amazon Web Services. To minimize down time, you can configure your Amazon Web Services resources to use an address from a BYOIP CIDR before it is advertised, and then simultaneously stop advertising it from the current location and start advertising it through Amazon Web Services. It can take a few minutes before traffic to the specified addresses starts routing to Amazon Web Services because of BGP propagation delays. To stop advertising the BYOIP CIDR, use <a>WithdrawByoipCidr</a>.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>Cidr:  The address range, in CIDR notation. This must be the exact range that you provisioned. You can't advertise only a portion of the provisioned range.<br/>
        :return: ByoipCidr:  Information about the address range.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the address pool.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusMessage</i> Upon success, contains the ID of the address pool. Otherwise, contains an error message.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the address range.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Cidr</i> The address range, in CIDR notation.<br/>        """
        pass

    def allocate_address(self, Domain: str=None, Address: str=None, PublicIpv4Pool: str=None, NetworkBorderGroup: str=None, CustomerOwnedIpv4Pool: str=None, DryRun: Boolean=None, TagSpecifications: List[TagSpecification]=None) -> AllocateAddressResult:
        r"""Allocates an Elastic IP address to your account. After you allocate the Elastic IP address you can associate it with an instance or network interface. After you release an Elastic IP address, it is released to the IP address pool and can be allocated to a different account. You can allocate an Elastic IP address from an address pool owned by Amazon Web Services or from an address pool created from a public IPv4 address range that you have brought to Amazon Web Services for use with your Amazon Web Services resources using bring your own IP addresses (BYOIP). For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-byoip.html">Bring Your Own IP Addresses (BYOIP)</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>. [EC2-VPC] If you release an Elastic IP address, you might be able to recover it. You cannot recover an Elastic IP address that you released after it is allocated to another account. You cannot recover an Elastic IP address for EC2-Classic. To attempt to recover an Elastic IP address that you released, specify it in this operation. An Elastic IP address is for use either in the EC2-Classic platform or in a VPC. By default, you can allocate 5 Elastic IP addresses for EC2-Classic per Region and 5 Elastic IP addresses for EC2-VPC per Region. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html">Elastic IP Addresses</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>. You can allocate a carrier IP address which is a public IP address from a telecommunication carrier, to a network interface which resides in a subnet in a Wavelength Zone (for example an EC2 instance). 

        :param self:
        :param TagSpecifications:  The tags to assign to the Elastic IP address.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>CustomerOwnedIpv4Pool:  The ID of a customer-owned address pool. Use this parameter to let Amazon EC2 select an address from the address pool. Alternatively, specify a specific address from the address pool.<br/>NetworkBorderGroup:   A unique set of Availability Zones, Local Zones, or Wavelength Zones from which AWS advertises IP addresses. Use this parameter to limit the IP address to this location. IP addresses cannot move between network border groups. Use <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeAvailabilityZones.html">DescribeAvailabilityZones</a> to view the network border groups. <note> You cannot use a network border group with EC2 Classic. If you attempt this operation on EC2 classic, you will receive an <code>InvalidParameterCombination</code> error. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/errors-overview.html">Error Codes</a>. </note><br/>PublicIpv4Pool:  The ID of an address pool that you own. Use this parameter to let Amazon EC2 select an address from the address pool. To specify a specific address from the address pool, use the <code>Address</code> parameter instead.<br/>Address:  [EC2-VPC] The Elastic IP address to recover or an IPv4 address from an address pool.<br/>Domain:  Indicates whether the Elastic IP address is for use with instances in a VPC or instances in EC2-Classic. Default: If the Region supports EC2-Classic, the default is <code>standard</code>. Otherwise, the default is <code>vpc</code>.<br/>
        :return: CarrierIp:  The carrier IP address. This option is only available for network interfaces which reside in a subnet in a Wavelength Zone (for example an EC2 instance). <br/>CustomerOwnedIpv4Pool:  The ID of the customer-owned address pool.<br/>CustomerOwnedIp:  The customer-owned IP address.<br/>Domain:  Indicates whether the Elastic IP address is for use with instances in a VPC (<code>vpc</code>) or instances in EC2-Classic (<code>standard</code>).<br/>NetworkBorderGroup:  The set of Availability Zones, Local Zones, or Wavelength Zones from which AWS advertises IP addresses.<br/>PublicIpv4Pool:  The ID of an address pool.<br/>AllocationId:  [EC2-VPC] The ID that Amazon Web Services assigns to represent the allocation of the Elastic IP address for use with instances in a VPC.<br/>PublicIp:  The Elastic IP address.<br/>        """
        pass

    def allocate_hosts(self, Quantity: int, AvailabilityZone: str, AutoPlacement: str=None, ClientToken: str=None, InstanceType: str=None, InstanceFamily: str=None, TagSpecifications: List[TagSpecification]=None, HostRecovery: str=None) -> AllocateHostsResult:
        r"""Allocates a Dedicated Host to your account. At a minimum, specify the supported instance type or instance family, the Availability Zone in which to allocate the host, and the number of hosts to allocate.

        :param self:
        :param HostRecovery:  Indicates whether to enable or disable host recovery for the Dedicated Host. Host recovery is disabled by default. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-hosts-recovery.html"> Host recovery</a> in the <i>Amazon EC2 User Guide</i>. Default: <code>off</code> <br/>TagSpecifications:  The tags to apply to the Dedicated Host during creation.<br/>Quantity:  The number of Dedicated Hosts to allocate to your account with these parameters.<br/>InstanceFamily:  Specifies the instance family to be supported by the Dedicated Hosts. If you specify an instance family, the Dedicated Hosts support multiple instance types within that instance family. If you want the Dedicated Hosts to support a specific instance type only, omit this parameter and specify <b>InstanceType</b> instead. You cannot specify <b>InstanceFamily</b> and <b>InstanceType</b> in the same request.<br/>InstanceType:  Specifies the instance type to be supported by the Dedicated Hosts. If you specify an instance type, the Dedicated Hosts support instances of the specified instance type only. If you want the Dedicated Hosts to support multiple instance types in a specific instance family, omit this parameter and specify <b>InstanceFamily</b> instead. You cannot specify <b>InstanceType</b> and <b>InstanceFamily</b> in the same request.<br/>ClientToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html">Ensuring Idempotency</a>.<br/>AvailabilityZone:  The Availability Zone in which to allocate the Dedicated Host.<br/>AutoPlacement:  Indicates whether the host accepts any untargeted instance launches that match its instance type configuration, or if it only accepts Host tenancy instance launches that specify its unique host ID. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/how-dedicated-hosts-work.html#dedicated-hosts-understanding"> Understanding auto-placement and affinity</a> in the <i>Amazon EC2 User Guide</i>. Default: <code>on</code> <br/>
        :return: HostIds:  The ID of the allocated Dedicated Host. This is used to launch an instance onto a specific host.<br/>        """
        pass

    def apply_security_groups_to_client_vpn_target_network(self, SecurityGroupIds: List[SecurityGroupId], VpcId: str, ClientVpnEndpointId: str, DryRun: Boolean=None) -> ApplySecurityGroupsToClientVpnTargetNetworkResult:
        r"""Applies a security group to the association between the target network and the Client VPN endpoint. This action replaces the existing security groups with the specified security groups.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>SecurityGroupIds:  The IDs of the security groups to apply to the associated target network. Up to 5 security groups can be applied to an associated target network.<br/>VpcId:  The ID of the VPC in which the associated target network is located.<br/>ClientVpnEndpointId:  The ID of the Client VPN endpoint.<br/>
        :return: SecurityGroupIds:  The IDs of the applied security groups.<br/>        """
        pass

    def assign_ipv6_addresses(self, NetworkInterfaceId: str, Ipv6AddressCount: int=None, Ipv6Addresses: List[String]=None) -> AssignIpv6AddressesResult:
        r"""Assigns one or more IPv6 addresses to the specified network interface. You can specify one or more specific IPv6 addresses, or you can specify the number of IPv6 addresses to be automatically assigned from within the subnet's IPv6 CIDR block range. You can assign as many IPv6 addresses to a network interface as you can assign private IPv4 addresses, and the limit varies per instance type. For information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html#AvailableIpPerENI">IP Addresses Per Network Interface Per Instance Type</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>. You must specify either the IPv6 addresses or the IPv6 address count in the request.

        :param self:
        :param NetworkInterfaceId:  The ID of the network interface.<br/>Ipv6Addresses:  One or more specific IPv6 addresses to be assigned to the network interface. You can't use this option if you're specifying a number of IPv6 addresses.<br/>Ipv6AddressCount:  The number of additional IPv6 addresses to assign to the network interface. The specified number of IPv6 addresses are assigned in addition to the existing IPv6 addresses that are already assigned to the network interface. Amazon EC2 automatically selects the IPv6 addresses from the subnet range. You can't use this option if specifying specific IPv6 addresses.<br/>
        :return: NetworkInterfaceId:  The ID of the network interface.<br/>AssignedIpv6Addresses:  The new IPv6 addresses assigned to the network interface. Existing IPv6 addresses that were assigned to the network interface before the request are not included.<br/>        """
        pass

    def assign_private_ip_addresses(self, NetworkInterfaceId: str, AllowReassignment: Boolean=None, PrivateIpAddresses: List[String]=None, SecondaryPrivateIpAddressCount: int=None) -> AssignPrivateIpAddressesResult:
        r"""Assigns one or more secondary private IP addresses to the specified network interface. You can specify one or more specific secondary IP addresses, or you can specify the number of secondary IP addresses to be automatically assigned within the subnet's CIDR block range. The number of secondary IP addresses that you can assign to an instance varies by instance type. For information about instance types, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html">Instance Types</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>. For more information about Elastic IP addresses, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html">Elastic IP Addresses</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>. When you move a secondary private IP address to another network interface, any Elastic IP address that is associated with the IP address is also moved. Remapping an IP address is an asynchronous operation. When you move an IP address from one network interface to another, check <code>network/interfaces/macs/mac/local-ipv4s</code> in the instance metadata to confirm that the remapping is complete. You must specify either the IP addresses or the IP address count in the request.

        :param self:
        :param SecondaryPrivateIpAddressCount:  The number of secondary IP addresses to assign to the network interface. You can't specify this parameter when also specifying private IP addresses.<br/>PrivateIpAddresses:  One or more IP addresses to be assigned as a secondary private IP address to the network interface. You can't specify this parameter when also specifying a number of secondary IP addresses. If you don't specify an IP address, Amazon EC2 automatically selects an IP address within the subnet range.<br/>NetworkInterfaceId:  The ID of the network interface.<br/>AllowReassignment:  Indicates whether to allow an IP address that is already assigned to another network interface or instance to be reassigned to the specified network interface.<br/>
        :return: AssignedPrivateIpAddresses:  The private IP addresses assigned to the network interface.<br/>NetworkInterfaceId:  The ID of the network interface.<br/>        """
        pass

    def associate_address(self, AllocationId: str=None, InstanceId: str=None, PublicIp: str=None, AllowReassociation: Boolean=None, DryRun: Boolean=None, NetworkInterfaceId: str=None, PrivateIpAddress: str=None) -> AssociateAddressResult:
        r"""Associates an Elastic IP address, or carrier IP address (for instances that are in subnets in Wavelength Zones) with an instance or a network interface. Before you can use an Elastic IP address, you must allocate it to your account. An Elastic IP address is for use in either the EC2-Classic platform or in a VPC. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html">Elastic IP Addresses</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>. [EC2-Classic, VPC in an EC2-VPC-only account] If the Elastic IP address is already associated with a different instance, it is disassociated from that instance and associated with the specified instance. If you associate an Elastic IP address with an instance that has an existing Elastic IP address, the existing address is disassociated from the instance, but remains allocated to your account. [VPC in an EC2-Classic account] If you don't specify a private IP address, the Elastic IP address is associated with the primary IP address. If the Elastic IP address is already associated with a different instance or a network interface, you get an error unless you allow reassociation. You cannot associate an Elastic IP address with an instance or network interface that has an existing Elastic IP address. [Subnets in Wavelength Zones] You can associate an IP address from the telecommunication carrier to the instance or network interface.  You cannot associate an Elastic IP address with an interface in a different network border group. <important> This is an idempotent operation. If you perform the operation more than once, Amazon EC2 doesn't return an error, and you may be charged for each time the Elastic IP address is remapped to the same instance. For more information, see the <i>Elastic IP Addresses</i> section of <a href="http://aws.amazon.com/ec2/pricing/">Amazon EC2 Pricing</a>. </important>

        :param self:
        :param PrivateIpAddress:  [EC2-VPC] The primary or secondary private IP address to associate with the Elastic IP address. If no private IP address is specified, the Elastic IP address is associated with the primary private IP address.<br/>NetworkInterfaceId:  [EC2-VPC] The ID of the network interface. If the instance has more than one network interface, you must specify a network interface ID. For EC2-VPC, you can specify either the instance ID or the network interface ID, but not both. <br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>AllowReassociation:  [EC2-VPC] For a VPC in an EC2-Classic account, specify true to allow an Elastic IP address that is already associated with an instance or network interface to be reassociated with the specified instance or network interface. Otherwise, the operation fails. In a VPC in an EC2-VPC-only account, reassociation is automatic, therefore you can specify false to ensure the operation fails if the Elastic IP address is already associated with another resource.<br/>PublicIp:  [EC2-Classic] The Elastic IP address to associate with the instance. This is required for EC2-Classic.<br/>InstanceId:  The ID of the instance. The instance must have exactly one attached network interface. For EC2-VPC, you can specify either the instance ID or the network interface ID, but not both. For EC2-Classic, you must specify an instance ID and the instance must be in the running state.<br/>AllocationId:  [EC2-VPC] The allocation ID. This is required for EC2-VPC.<br/>
        :return: AssociationId:  [EC2-VPC] The ID that represents the association of the Elastic IP address with an instance.<br/>        """
        pass

    def associate_client_vpn_target_network(self, SubnetId: str, ClientVpnEndpointId: str, ClientToken: str=None, DryRun: Boolean=None) -> AssociateClientVpnTargetNetworkResult:
        r"""Associates a target network with a Client VPN endpoint. A target network is a subnet in a VPC. You can associate multiple subnets from the same VPC with a Client VPN endpoint. You can associate only one subnet in each Availability Zone. We recommend that you associate at least two subnets to provide Availability Zone redundancy. If you specified a VPC when you created the Client VPN endpoint or if you have previous subnet associations, the specified subnet must be in the same VPC. To specify a subnet that's in a different VPC, you must first modify the Client VPN endpoint (<a>ModifyClientVpnEndpoint</a>) and change the VPC that's associated with it.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>ClientToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html">How to Ensure Idempotency</a>.<br/>SubnetId:  The ID of the subnet to associate with the Client VPN endpoint.<br/>ClientVpnEndpointId:  The ID of the Client VPN endpoint.<br/>
        :return: Status:  The current state of the target network association.:<br/>AssociationId:  The unique ID of the target network association.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> A message about the status of the target network association, if applicable.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Code</i> The state of the target network association.<br/>        """
        pass

    def associate_dhcp_options(self, VpcId: str, DhcpOptionsId: str, DryRun: Boolean=None):
        r"""Associates a set of DHCP options (that you've previously created) with the specified VPC, or associates no DHCP options with the VPC. After you associate the options with the VPC, any existing instances and all new instances that you launch in that VPC use the options. You don't need to restart or relaunch the instances. They automatically pick up the changes within a few hours, depending on how frequently the instance renews its DHCP lease. You can explicitly renew the lease using the operating system on the instance. For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_DHCP_Options.html">DHCP Options Sets</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>VpcId:  The ID of the VPC.<br/>DhcpOptionsId:  The ID of the DHCP options set, or <code>default</code> to associate no DHCP options with the VPC.<br/>
        :return:         """
        pass

    def associate_enclave_certificate_iam_role(self, CertificateArn: str=None, RoleArn: str=None, DryRun: Boolean=None) -> AssociateEnclaveCertificateIamRoleResult:
        r"""Associates an Identity and Access Management (IAM) role with an Certificate Manager (ACM) certificate. This enables the certificate to be used by the ACM for Nitro Enclaves application inside an enclave. For more information, see <a href="https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave-refapp.html">Certificate Manager for Nitro Enclaves</a> in the <i>Amazon Web Services Nitro Enclaves User Guide</i>. When the IAM role is associated with the ACM certificate, the certificate, certificate chain, and encrypted private key are placed in an Amazon S3 bucket that only the associated IAM role can access. The private key of the certificate is encrypted with an Amazon Web Services managed key that has an attached attestation-based key policy. To enable the IAM role to access the Amazon S3 object, you must grant it permission to call <code>s3:GetObject</code> on the Amazon S3 bucket returned by the command. To enable the IAM role to access the KMS key, you must grant it permission to call <code>kms:Decrypt</code> on the KMS key returned by the command. For more information, see <a href="https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave-refapp.html#add-policy"> Grant the role permission to access the certificate and encryption key</a> in the <i>Amazon Web Services Nitro Enclaves User Guide</i>.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>RoleArn:  The ARN of the IAM role to associate with the ACM certificate. You can associate up to 16 IAM roles with an ACM certificate.<br/>CertificateArn:  The ARN of the ACM certificate with which to associate the IAM role.<br/>
        :return: EncryptionKmsKeyId:  The ID of the KMS key used to encrypt the private key of the certificate.<br/>CertificateS3ObjectKey:  The Amazon S3 object key where the certificate, certificate chain, and encrypted private key bundle are stored. The object key is formatted as follows: <code>role_arn</code>/<code>certificate_arn</code>.<br/>CertificateS3BucketName:  The name of the Amazon S3 bucket to which the certificate was uploaded.<br/>        """
        pass

    def associate_iam_instance_profile(self, InstanceId: str, IamInstanceProfile: IamInstanceProfileSpecification) -> AssociateIamInstanceProfileResult:
        r"""Associates an IAM instance profile with a running or stopped instance. You cannot associate more than one IAM instance profile with an instance.

        :param self:
        :param InstanceId:  The ID of the instance.<br/>IamInstanceProfile:  The IAM instance profile.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the instance profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the instance profile.<br/>
        :return: IamInstanceProfileAssociation:  Information about the IAM instance profile association.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Timestamp</i> The time the IAM instance profile was associated with the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the association.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IamInstanceProfile</i> The IAM instance profile.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>IamInstanceProfile</b>: The IAM instance profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceId</i> The ID of the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociationId</i> The ID of the association.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID of the instance profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the instance profile.<br/>        """
        pass

    def associate_route_table(self, RouteTableId: str, DryRun: Boolean=None, SubnetId: str=None, GatewayId: str=None) -> AssociateRouteTableResult:
        r"""Associates a subnet in your VPC or an internet gateway or virtual private gateway attached to your VPC with a route table in your VPC. This association causes traffic from the subnet or gateway to be routed according to the routes in the route table. The action returns an association ID, which you need in order to disassociate the route table later. A route table can be associated with multiple subnets. For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html">Route Tables</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.

        :param self:
        :param GatewayId:  The ID of the internet gateway or virtual private gateway.<br/>SubnetId:  The ID of the subnet.<br/>RouteTableId:  The ID of the route table.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: AssociationState:  The state of the association.:<br/>AssociationId:  The route table association ID. This ID is required for disassociating the route table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusMessage</i> The status message, if applicable.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the association.<br/>        """
        pass

    def associate_subnet_cidr_block(self, SubnetId: str, Ipv6CidrBlock: str) -> AssociateSubnetCidrBlockResult:
        r"""Associates a CIDR block with your subnet. You can only associate a single IPv6 CIDR block with your subnet. An IPv6 CIDR block must have a prefix length of /64.

        :param self:
        :param SubnetId:  The ID of your subnet.<br/>Ipv6CidrBlock:  The IPv6 CIDR block for your subnet. The subnet must have a /64 prefix length.<br/>
        :return: SubnetId:  The ID of the subnet.<br/>Ipv6CidrBlockAssociation:  Information about the IPv6 CIDR block association.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Ipv6CidrBlockState</i> Information about the state of the CIDR block.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Ipv6CidrBlockState</b>: Information about the state of the CIDR block.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Ipv6CidrBlock</i> The IPv6 CIDR block.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociationId</i> The association ID for the CIDR block.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusMessage</i> A message about the status of the CIDR block, if applicable.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of a CIDR block.<br/>        """
        pass

    def associate_transit_gateway_multicast_domain(self, TransitGatewayMulticastDomainId: str=None, TransitGatewayAttachmentId: str=None, SubnetIds: List[SubnetId]=None, DryRun: Boolean=None) -> AssociateTransitGatewayMulticastDomainResult:
        r"""Associates the specified subnets and transit gateway attachments with the specified transit gateway multicast domain. The transit gateway attachment must be in the available state before you can add a resource. Use <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeTransitGatewayAttachments.html">DescribeTransitGatewayAttachments</a> to see the state of the attachment.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>SubnetIds:  The IDs of the subnets to associate with the transit gateway multicast domain.<br/>TransitGatewayAttachmentId:  The ID of the transit gateway attachment to associate with the transit gateway multicast domain.<br/>TransitGatewayMulticastDomainId:  The ID of the transit gateway multicast domain.<br/>
        :return: Associations:  Information about the transit gateway multicast domain associations.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Subnets</i> The subnets associated with the multicast domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceOwnerId</i>  The ID of the AWS account that owns the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceType</i> The type of resource, for example a VPC attachment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceId</i> The ID of the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayAttachmentId</i> The ID of the transit gateway attachment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayMulticastDomainId</i> The ID of the transit gateway multicast domain.<br/>        """
        pass

    def associate_transit_gateway_route_table(self, TransitGatewayAttachmentId: str, TransitGatewayRouteTableId: str, DryRun: Boolean=None) -> AssociateTransitGatewayRouteTableResult:
        r"""Associates the specified attachment with the specified transit gateway route table. You can associate only one route table with an attachment.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>TransitGatewayAttachmentId:  The ID of the attachment.<br/>TransitGatewayRouteTableId:  The ID of the transit gateway route table.<br/>
        :return: Association:  The ID of the association.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the association.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceType</i> The resource type. Note that the <code>tgw-peering</code> resource type has been deprecated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceId</i> The ID of the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayAttachmentId</i> The ID of the attachment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayRouteTableId</i> The ID of the transit gateway route table.<br/>        """
        pass

    def associate_trunk_interface(self, TrunkInterfaceId: str, BranchInterfaceId: str, VlanId: int=None, GreKey: int=None, ClientToken: str=None, DryRun: Boolean=None) -> AssociateTrunkInterfaceResult:
        r"""Associates a branch network interface with a trunk network interface. Before you create the association, run the <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateNetworkInterface.html">create-network-interface</a> command and set <code>--interface-type</code> to <code>trunk</code>. You must also create a network interface for each branch network interface that you want to associate with the trunk network interface. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/eni-trunking.html"> Network interface trunking</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>ClientToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Run_Instance_Idempotency.html">How to Ensure Idempotency</a>.<br/>GreKey:  The application key. This applies to the GRE protocol.<br/>VlanId:  The ID of the VLAN. This applies to the VLAN protocol.<br/>TrunkInterfaceId:  The ID of the trunk network interface.<br/>BranchInterfaceId:  The ID of the branch network interface.<br/>
        :return: ClientToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Run_Instance_Idempotency.html">How to Ensure Idempotency</a>.<br/>InterfaceAssociation:  Information about the association between the trunk network interface and branch network interface.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i>  The tags.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GreKey</i> The application key when you use the GRE protocol.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VlanId</i> The ID of the VLAN when you use the VLAN protocol.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InterfaceProtocol</i> The interface protocol. Valid values are <code>VLAN</code> and <code>GRE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TrunkInterfaceId</i> The ID of the trunk network interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BranchInterfaceId</i> The ID of the branch network interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociationId</i> The ID of the association.<br/>        """
        pass

    def associate_vpc_cidr_block(self, VpcId: str, AmazonProvidedIpv6CidrBlock: Boolean=None, CidrBlock: str=None, Ipv6CidrBlockNetworkBorderGroup: str=None, Ipv6Pool: str=None, Ipv6CidrBlock: str=None) -> AssociateVpcCidrBlockResult:
        r"""Associates a CIDR block with your VPC. You can associate a secondary IPv4 CIDR block, an Amazon-provided IPv6 CIDR block, or an IPv6 CIDR block from an IPv6 address pool that you provisioned through bring your own IP addresses (<a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-byoip.html">BYOIP</a>). The IPv6 CIDR block size is fixed at /56. You must specify one of the following in the request: an IPv4 CIDR block, an IPv6 pool, or an Amazon-provided IPv6 CIDR block. For more information about associating CIDR blocks with your VPC and applicable restrictions, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html#VPC_Sizing">VPC and Subnet Sizing</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.

        :param self:
        :param Ipv6CidrBlock:  An IPv6 CIDR block from the IPv6 address pool. You must also specify <code>Ipv6Pool</code> in the request. To let Amazon choose the IPv6 CIDR block for you, omit this parameter.<br/>Ipv6Pool:  The ID of an IPv6 address pool from which to allocate the IPv6 CIDR block.<br/>Ipv6CidrBlockNetworkBorderGroup:  The name of the location from which we advertise the IPV6 CIDR block. Use this parameter to limit the CIDR block to this location.  You must set <code>AmazonProvidedIpv6CidrBlock</code> to <code>true</code> to use this parameter.  You can have one IPv6 CIDR block association per network border group.<br/>VpcId:  The ID of the VPC.<br/>CidrBlock:  An IPv4 CIDR block to associate with the VPC.<br/>AmazonProvidedIpv6CidrBlock:  Requests an Amazon-provided IPv6 CIDR block with a /56 prefix length for the VPC. You cannot specify the range of IPv6 addresses, or the size of the CIDR block.<br/>
        :return: VpcId:  The ID of the VPC.<br/>CidrBlockAssociation:  Information about the IPv4 CIDR block association.:<br/>Ipv6CidrBlockAssociation:  Information about the IPv6 CIDR block association.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Ipv6Pool</i> The ID of the IPv6 address pool from which the IPv6 CIDR block is allocated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkBorderGroup</i> The name of the unique set of Availability Zones, Local Zones, or Wavelength Zones from which AWS advertises IP addresses, for example, <code>us-east-1-wl1-bos-wlz-1</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Ipv6CidrBlockState</i> Information about the state of the CIDR block.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Ipv6CidrBlockState</b>: Information about the state of the CIDR block.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Ipv6CidrBlock</i> The IPv6 CIDR block.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociationId</i> The association ID for the IPv6 CIDR block.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusMessage</i> A message about the status of the CIDR block, if applicable.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the CIDR block.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CidrBlockState</i> Information about the state of the CIDR block.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CidrBlockState</b>: Information about the state of the CIDR block.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CidrBlock</i> The IPv4 CIDR block.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociationId</i> The association ID for the IPv4 CIDR block.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusMessage</i> A message about the status of the CIDR block, if applicable.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the CIDR block.<br/>        """
        pass

    def attach_classic_link_vpc(self, VpcId: str, InstanceId: str, Groups: List[String], DryRun: Boolean=None) -> AttachClassicLinkVpcResult:
        r"""Links an EC2-Classic instance to a ClassicLink-enabled VPC through one or more of the VPC's security groups. You cannot link an EC2-Classic instance to more than one VPC at a time. You can only link an instance that's in the <code>running</code> state. An instance is automatically unlinked from a VPC when it's stopped - you can link it to the VPC again when you restart it. After you've linked an instance, you cannot change the VPC security groups that are associated with it. To change the security groups, you must first unlink the instance, and then link it again. Linking your instance to a VPC is sometimes referred to as <i>attaching</i> your instance.

        :param self:
        :param VpcId:  The ID of a ClassicLink-enabled VPC.<br/>InstanceId:  The ID of an EC2-Classic instance to link to the ClassicLink-enabled VPC.<br/>Groups:  The ID of one or more of the VPC's security groups. You cannot specify security groups from a different VPC.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: Return:  Returns <code>true</code> if the request succeeds; otherwise, it returns an error.<br/>        """
        pass

    def attach_internet_gateway(self, VpcId: str, InternetGatewayId: str, DryRun: Boolean=None):
        r"""Attaches an internet gateway or a virtual private gateway to a VPC, enabling connectivity between the internet and the VPC. For more information about your VPC and internet gateway, see the <a href="https://docs.aws.amazon.com/vpc/latest/userguide/">Amazon Virtual Private Cloud User Guide</a>.

        :param self:
        :param VpcId:  The ID of the VPC.<br/>InternetGatewayId:  The ID of the internet gateway.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return:         """
        pass

    def attach_network_interface(self, NetworkInterfaceId: str, InstanceId: str, DeviceIndex: int, DryRun: Boolean=None, NetworkCardIndex: int=None) -> AttachNetworkInterfaceResult:
        r"""Attaches a network interface to an instance.

        :param self:
        :param NetworkCardIndex:  The index of the network card. Some instance types support multiple network cards. The primary network interface must be assigned to network card index 0. The default is network card index 0.<br/>NetworkInterfaceId:  The ID of the network interface.<br/>InstanceId:  The ID of the instance.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>DeviceIndex:  The index of the device for the network interface attachment.<br/>
        :return: NetworkCardIndex:  The index of the network card.<br/>AttachmentId:  The ID of the network interface attachment.<br/>        """
        pass

    def attach_volume(self, VolumeId: str, InstanceId: str, Device: str, DryRun: Boolean=None) -> VolumeAttachment:
        r"""Attaches an EBS volume to a running or stopped instance and exposes it to the instance with the specified device name. Encrypted EBS volumes must be attached to instances that support Amazon EBS encryption. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html">Amazon EBS encryption</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>. After you attach an EBS volume, you must make it available. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-using-volumes.html">Making an EBS volume available for use</a>. If a volume has an AWS Marketplace product code: <ul> <li> The volume can be attached only to a stopped instance. </li> <li> AWS Marketplace product codes are copied from the volume to the instance. </li> <li> You must be subscribed to the product. </li> <li> The instance type and operating system of the instance must support the product. For example, you can't detach a volume from a Windows instance and attach it to a Linux instance. </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-attaching-volume.html">Attaching Amazon EBS volumes</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>VolumeId:  The ID of the EBS volume. The volume and instance must be within the same Availability Zone.<br/>InstanceId:  The ID of the instance.<br/>Device:  The device name (for example, <code>/dev/sdh</code> or <code>xvdh</code>).<br/>
        :return: DeleteOnTermination:  Indicates whether the EBS volume is deleted on instance termination.<br/>VolumeId:  The ID of the volume.<br/>State:  The attachment state of the volume.<br/>InstanceId:  The ID of the instance.<br/>Device:  The device name.<br/>AttachTime:  The time stamp when the attachment initiated.<br/>        """
        pass

    def attach_vpn_gateway(self, VpnGatewayId: str, VpcId: str, DryRun: Boolean=None) -> AttachVpnGatewayResult:
        r"""Attaches a virtual private gateway to a VPC. You can attach one virtual private gateway to one VPC at a time. For more information, see <a href="https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html">AWS Site-to-Site VPN</a> in the <i>AWS Site-to-Site VPN User Guide</i>.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>VpnGatewayId:  The ID of the virtual private gateway.<br/>VpcId:  The ID of the VPC.<br/>
        :return: VpcAttachment:  Information about the attachment.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The ID of the VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The current state of the attachment.<br/>        """
        pass

    def authorize_client_vpn_ingress(self, TargetNetworkCidr: str, ClientVpnEndpointId: str, AccessGroupId: str=None, AuthorizeAllGroups: Boolean=None, Description: str=None, ClientToken: str=None, DryRun: Boolean=None) -> AuthorizeClientVpnIngressResult:
        r"""Adds an ingress authorization rule to a Client VPN endpoint. Ingress authorization rules act as firewall rules that grant access to networks. You must configure ingress authorization rules to enable clients to access resources in AWS or on-premises networks.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>ClientToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html">How to Ensure Idempotency</a>.<br/>Description:  A brief description of the authorization rule.<br/>AuthorizeAllGroups:  Indicates whether to grant access to all clients. Specify <code>true</code> to grant all clients who successfully establish a VPN connection access to the network. Must be set to <code>true</code> if <code>AccessGroupId</code> is not specified.<br/>AccessGroupId:  The ID of the group to grant access to, for example, the Active Directory group or identity provider (IdP) group. Required if <code>AuthorizeAllGroups</code> is <code>false</code> or not specified.<br/>TargetNetworkCidr:  The IPv4 address range, in CIDR notation, of the network for which access is being authorized.<br/>ClientVpnEndpointId:  The ID of the Client VPN endpoint.<br/>
        :return: Status:  The current state of the authorization rule.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> A message about the status of the authorization rule, if applicable.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Code</i> The state of the authorization rule.<br/>        """
        pass

    def authorize_security_group_egress(self, GroupId: str, DryRun: Boolean=None, IpPermissions: List[IpPermission]=None, TagSpecifications: List[TagSpecification]=None, CidrIp: str=None, FromPort: int=None, IpProtocol: str=None, ToPort: int=None, SourceSecurityGroupName: str=None, SourceSecurityGroupOwnerId: str=None) -> AuthorizeSecurityGroupEgressResult:
        r"""[VPC only] Adds the specified outbound (egress) rules to a security group for use with a VPC. An outbound rule permits instances to send traffic to the specified IPv4 or IPv6 CIDR address ranges, or to the instances that are associated with the specified destination security groups. You specify a protocol for each rule (for example, TCP). For the TCP and UDP protocols, you must also specify the destination port or port range. For the ICMP protocol, you must also specify the ICMP type and code. You can use -1 for the type or code to mean all types or all codes. Rule changes are propagated to affected instances as quickly as possible. However, a small delay might occur. For information about VPC security group quotas, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/amazon-vpc-limits.html">Amazon VPC quotas</a>.

        :param self:
        :param SourceSecurityGroupOwnerId:  Not supported. Use a set of IP permissions to specify a destination security group.<br/>SourceSecurityGroupName:  Not supported. Use a set of IP permissions to specify a destination security group.<br/>ToPort:  Not supported. Use a set of IP permissions to specify the port.<br/>IpProtocol:  Not supported. Use a set of IP permissions to specify the protocol name or number.<br/>FromPort:  Not supported. Use a set of IP permissions to specify the port.<br/>CidrIp:  Not supported. Use a set of IP permissions to specify the CIDR.<br/>TagSpecifications:  The tags applied to the security group rule.<br/>IpPermissions:  The sets of IP permissions. You can't specify a destination security group and a CIDR IP address range in the same set of permissions.<br/>GroupId:  The ID of the security group.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: SecurityGroupRules:  Information about the outbound (egress) security group rules that were added.<br/>Return:  Returns <code>true</code> if the request succeeds; otherwise, returns an error.<br/>        """
        pass

    def authorize_security_group_ingress(self, CidrIp: str=None, FromPort: int=None, GroupId: str=None, GroupName: str=None, IpPermissions: List[IpPermission]=None, IpProtocol: str=None, SourceSecurityGroupName: str=None, SourceSecurityGroupOwnerId: str=None, ToPort: int=None, DryRun: Boolean=None, TagSpecifications: List[TagSpecification]=None) -> AuthorizeSecurityGroupIngressResult:
        r"""Adds the specified inbound (ingress) rules to a security group. An inbound rule permits instances to receive traffic from the specified IPv4 or IPv6 CIDR address range, or from the instances that are associated with the specified destination security groups. You specify a protocol for each rule (for example, TCP). For TCP and UDP, you must also specify the destination port or port range. For ICMP/ICMPv6, you must also specify the ICMP/ICMPv6 type and code. You can use -1 to mean all types or all codes. Rule changes are propagated to instances within the security group as quickly as possible. However, a small delay might occur. For more information about VPC security group quotas, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/amazon-vpc-limits.html">Amazon VPC quotas</a>.

        :param self:
        :param TagSpecifications:  [VPC Only] The tags applied to the security group rule.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>ToPort:  The end of port range for the TCP and UDP protocols, or an ICMP code number. For the ICMP code number, use <code>-1</code> to specify all codes. If you specify all ICMP types, you must specify all codes. Alternatively, use a set of IP permissions to specify multiple rules and a description for the rule.<br/>SourceSecurityGroupOwnerId:  [nondefault VPC] The Amazon Web Services account ID for the source security group, if the source security group is in a different account. You can't specify this parameter in combination with the following parameters: the CIDR IP address range, the IP protocol, the start of the port range, and the end of the port range. Creates rules that grant full ICMP, UDP, and TCP access. To create a rule with a specific IP protocol and port range, use a set of IP permissions instead.<br/>SourceSecurityGroupName:  [EC2-Classic, default VPC] The name of the source security group. You can't specify this parameter in combination with the following parameters: the CIDR IP address range, the start of the port range, the IP protocol, and the end of the port range. Creates rules that grant full ICMP, UDP, and TCP access. To create a rule with a specific IP protocol and port range, use a set of IP permissions instead. For EC2-VPC, the source security group must be in the same VPC.<br/>IpProtocol:  The IP protocol name (<code>tcp</code>, <code>udp</code>, <code>icmp</code>) or number (see <a href="http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml">Protocol Numbers</a>). To specify <code>icmpv6</code>, use a set of IP permissions. [VPC only] Use <code>-1</code> to specify all protocols. If you specify <code>-1</code> or a protocol other than <code>tcp</code>, <code>udp</code>, or <code>icmp</code>, traffic on all ports is allowed, regardless of any ports you specify. Alternatively, use a set of IP permissions to specify multiple rules and a description for the rule.<br/>IpPermissions:  The sets of IP permissions.<br/>GroupName:  [EC2-Classic, default VPC] The name of the security group. You must specify either the security group ID or the security group name in the request.<br/>GroupId:  The ID of the security group. You must specify either the security group ID or the security group name in the request. For security groups in a nondefault VPC, you must specify the security group ID.<br/>FromPort:  The start of port range for the TCP and UDP protocols, or an ICMP type number. For the ICMP type number, use <code>-1</code> to specify all types. If you specify all ICMP types, you must specify all codes. Alternatively, use a set of IP permissions to specify multiple rules and a description for the rule.<br/>CidrIp:  The IPv4 address range, in CIDR format. You can't specify this parameter when specifying a source security group. To specify an IPv6 address range, use a set of IP permissions. Alternatively, use a set of IP permissions to specify multiple rules and a description for the rule.<br/>
        :return: SecurityGroupRules:  Information about the inbound (ingress) security group rules that were added.<br/>Return:  Returns <code>true</code> if the request succeeds; otherwise, returns an error.<br/>        """
        pass

    def bundle_instance(self, Storage: Storage, InstanceId: str, DryRun: Boolean=None) -> BundleInstanceResult:
        r"""Bundles an Amazon instance store-backed Windows instance. During bundling, only the root device volume (C:\) is bundled. Data on other instance store volumes is not preserved. <note> This action is not applicable for Linux/Unix instances or Windows instances that are backed by Amazon EBS. </note>

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>Storage:  The bucket in which to store the AMI. You can specify a bucket that you already own or a new bucket that Amazon EC2 creates on your behalf. If you specify a bucket that belongs to someone else, Amazon EC2 returns an error.:<br/>InstanceId:  The ID of the instance to bundle. Type: String Default: None Required: Yes<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3</i> An Amazon S3 storage location.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3</b>: An Amazon S3 storage location.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UploadPolicySignature</i> The signature of the JSON document.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UploadPolicy</i> An Amazon S3 upload policy that gives Amazon EC2 permission to upload items into Amazon S3 on your behalf.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Prefix</i> The beginning of the file name of the AMI.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i> The bucket in which to store the AMI. You can specify a bucket that you already own or a new bucket that Amazon EC2 creates on your behalf. If you specify a bucket that belongs to someone else, Amazon EC2 returns an error.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AWSAccessKeyId</i> The access key ID of the owner of the bucket. Before you specify a value for your access key ID, review and follow the guidance in <a href="https://docs.aws.amazon.com/general/latest/gr/aws-access-keys-best-practices.html">Best Practices for Managing AWS Access Keys</a>.<br/>
        :return: BundleTask:  Information about the bundle task.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdateTime</i> The time of the most recent update for the task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Storage</i> The Amazon S3 storage locations.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Storage</b>: The Amazon S3 storage locations.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StartTime</i> The time this task started.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Progress</i> The level of task completion, as a percent (for example, 20%).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceId</i> The ID of the instance associated with this bundle task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BundleTaskError</i> If the task fails, a description of the error.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>BundleTaskError</b>: If the task fails, a description of the error.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BundleId</i> The ID of the bundle task.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> The error message.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Code</i> The error code.<br/>An Amazon S3 storage location.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3</b>: An Amazon S3 storage location.        """
        pass

    def cancel_bundle_task(self, BundleId: str, DryRun: Boolean=None) -> CancelBundleTaskResult:
        r"""Cancels a bundling operation for an instance store-backed Windows instance.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>BundleId:  The ID of the bundle task.<br/>
        :return: BundleTask:  Information about the bundle task.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdateTime</i> The time of the most recent update for the task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Storage</i> The Amazon S3 storage locations.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Storage</b>: The Amazon S3 storage locations.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StartTime</i> The time this task started.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Progress</i> The level of task completion, as a percent (for example, 20%).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceId</i> The ID of the instance associated with this bundle task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BundleTaskError</i> If the task fails, a description of the error.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>BundleTaskError</b>: If the task fails, a description of the error.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BundleId</i> The ID of the bundle task.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> The error message.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Code</i> The error code.<br/>An Amazon S3 storage location.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3</b>: An Amazon S3 storage location.        """
        pass

    def cancel_capacity_reservation(self, CapacityReservationId: str, DryRun: Boolean=None) -> CancelCapacityReservationResult:
        r"""Cancels the specified Capacity Reservation, releases the reserved capacity, and changes the Capacity Reservation's state to <code>cancelled</code>. Instances running in the reserved capacity continue running until you stop them. Stopped instances that target the Capacity Reservation can no longer launch. Modify these instances to either target a different Capacity Reservation, launch On-Demand Instance capacity, or run in any open Capacity Reservation that has matching attributes and sufficient capacity.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>CapacityReservationId:  The ID of the Capacity Reservation to be cancelled.<br/>
        :return: Return:  Returns <code>true</code> if the request succeeds; otherwise, it returns an error.<br/>        """
        pass

    def cancel_conversion_task(self, ConversionTaskId: str, DryRun: Boolean=None, ReasonMessage: str=None):
        r"""Cancels an active conversion task. The task can be the import of an instance or volume. The action removes all artifacts of the conversion, including a partially uploaded volume or instance. If the conversion is complete or is in the process of transferring the final disk image, the command fails and returns an exception. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/CommandLineReference/ec2-cli-vmimport-export.html">Importing a Virtual Machine Using the Amazon EC2 CLI</a>.

        :param self:
        :param ReasonMessage:  The reason for canceling the conversion task.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>ConversionTaskId:  The ID of the conversion task.<br/>
        :return:         """
        pass

    def cancel_export_task(self, ExportTaskId: str):
        r"""Cancels an active export task. The request removes all artifacts of the export, including any partially-created Amazon S3 objects. If the export task is complete or is in the process of transferring the final disk image, the command fails and returns an error.

        :param self:
        :param ExportTaskId:  The ID of the export task. This is the ID returned by <code>CreateInstanceExportTask</code>.<br/>
        :return:         """
        pass

    def cancel_import_task(self, CancelReason: str=None, DryRun: Boolean=None, ImportTaskId: str=None) -> CancelImportTaskResult:
        r"""Cancels an in-process import virtual machine or import snapshot task.

        :param self:
        :param ImportTaskId:  The ID of the import image or import snapshot task to be canceled.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>CancelReason:  The reason for canceling the task.<br/>
        :return: State:  The current state of the task being canceled.<br/>PreviousState:  The current state of the task being canceled.<br/>ImportTaskId:  The ID of the task being canceled.<br/>        """
        pass

    def cancel_reserved_instances_listing(self, ReservedInstancesListingId: str) -> CancelReservedInstancesListingResult:
        r"""Cancels the specified Reserved Instance listing in the Reserved Instance Marketplace. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-market-general.html">Reserved Instance Marketplace</a> in the <i>Amazon EC2 User Guide</i>.

        :param self:
        :param ReservedInstancesListingId:  The ID of the Reserved Instance listing.<br/>
        :return: ReservedInstancesListings:  The Reserved Instance listing.<br/>        """
        pass

    def cancel_spot_fleet_requests(self, TerminateInstances: Boolean, SpotFleetRequestIds: List[SpotFleetRequestId], DryRun: Boolean=None) -> CancelSpotFleetRequestsResponse:
        r"""Cancels the specified Spot Fleet requests. After you cancel a Spot Fleet request, the Spot Fleet launches no new Spot Instances. You must specify whether the Spot Fleet should also terminate its Spot Instances. If you terminate the instances, the Spot Fleet request enters the <code>cancelled_terminating</code> state. Otherwise, the Spot Fleet request enters the <code>cancelled_running</code> state and the instances continue to run until they are interrupted or you terminate them manually.

        :param self:
        :param TerminateInstances:  Indicates whether to terminate instances for a Spot Fleet request if it is canceled successfully.<br/>SpotFleetRequestIds:  The IDs of the Spot Fleet requests.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: UnsuccessfulFleetRequests:  Information about the Spot Fleet requests that are not successfully canceled.<br/>SuccessfulFleetRequests:  Information about the Spot Fleet requests that are successfully canceled.<br/>        """
        pass

    def cancel_spot_instance_requests(self, SpotInstanceRequestIds: List[SpotInstanceRequestId], DryRun: Boolean=None) -> CancelSpotInstanceRequestsResult:
        r"""Cancels one or more Spot Instance requests. <important> Canceling a Spot Instance request does not terminate running Spot Instances associated with the request. </important>

        :param self:
        :param SpotInstanceRequestIds:  One or more Spot Instance request IDs.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: CancelledSpotInstanceRequests:  One or more Spot Instance requests.<br/>        """
        pass

    def confirm_product_instance(self, ProductCode: str, InstanceId: str, DryRun: Boolean=None) -> ConfirmProductInstanceResult:
        r"""Determines whether a product code is associated with an instance. This action can only be used by the owner of the product code. It is useful when a product code owner must verify whether another user's instance is eligible for support.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>ProductCode:  The product code. This must be a product code that you own.<br/>InstanceId:  The ID of the instance.<br/>
        :return: Return:  The return value of the request. Returns <code>true</code> if the specified product code is owned by the requester and associated with the specified instance.<br/>OwnerId:  The account ID of the instance owner. This is only present if the product code is attached to the instance.<br/>        """
        pass

    def copy_fpga_image(self, SourceRegion: str, SourceFpgaImageId: str, DryRun: Boolean=None, Description: str=None, Name: str=None, ClientToken: str=None) -> CopyFpgaImageResult:
        r"""Copies the specified Amazon FPGA Image (AFI) to the current Region.

        :param self:
        :param ClientToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Run_Instance_Idempotency.html">Ensuring Idempotency</a>.<br/>SourceRegion:  The Region that contains the source AFI.<br/>Name:  The name for the new AFI. The default is the name of the source AFI.<br/>Description:  The description for the new AFI.<br/>SourceFpgaImageId:  The ID of the source AFI.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: FpgaImageId:  The ID of the new AFI.<br/>        """
        pass

    def copy_image(self, SourceRegion: str, SourceImageId: str, Name: str, ClientToken: str=None, Description: str=None, Encrypted: Boolean=None, KmsKeyId: str=None, DestinationOutpostArn: str=None, DryRun: Boolean=None) -> CopyImageResult:
        r"""Initiates the copy of an AMI. You can copy an AMI from one Region to another, or from a Region to an AWS Outpost. You can't copy an AMI from an Outpost to a Region, from one Outpost to another, or within the same Outpost. To copy an AMI to another partition, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateStoreImageTask.html">CreateStoreImageTask</a>. To copy an AMI from one Region to another, specify the source Region using the <b>SourceRegion</b> parameter, and specify the destination Region using its endpoint. Copies of encrypted backing snapshots for the AMI are encrypted. Copies of unencrypted backing snapshots remain unencrypted, unless you set <code>Encrypted</code> during the copy operation. You cannot create an unencrypted copy of an encrypted backing snapshot. To copy an AMI from a Region to an Outpost, specify the source Region using the <b>SourceRegion</b> parameter, and specify the ARN of the destination Outpost using <b>DestinationOutpostArn</b>. Backing snapshots copied to an Outpost are encrypted by default using the default encryption key for the Region, or a different key that you specify in the request using <b>KmsKeyId</b>. Outposts do not support unencrypted snapshots. For more information, <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/snapshots-outposts.html#ami"> Amazon EBS local snapshots on Outposts</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>. For more information about the prerequisites and limits when copying an AMI, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/CopyingAMIs.html">Copying an AMI</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>DestinationOutpostArn:  The Amazon Resource Name (ARN) of the Outpost to which to copy the AMI. Only specify this parameter when copying an AMI from an AWS Region to an Outpost. The AMI must be in the Region of the destination Outpost. You cannot copy an AMI from an Outpost to a Region, from one Outpost to another, or within the same Outpost. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/snapshots-outposts.html#copy-amis"> Copying AMIs from an AWS Region to an Outpost</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.<br/>SourceRegion:  The name of the Region that contains the AMI to copy.<br/>SourceImageId:  The ID of the AMI to copy.<br/>Name:  The name of the new AMI in the destination Region.<br/>KmsKeyId:  The identifier of the symmetric AWS Key Management Service (AWS KMS) customer master key (CMK) to use when creating encrypted volumes. If this parameter is not specified, your AWS managed CMK for EBS is used. If you specify a CMK, you must also set the encrypted state to <code>true</code>. You can specify a CMK using any of the following: <ul> <li> Key ID. For example, 1234abcd-12ab-34cd-56ef-1234567890ab. </li> <li> Key alias. For example, alias/ExampleAlias. </li> <li> Key ARN. For example, arn:aws:kms:us-east-1:012345678910:key/1234abcd-12ab-34cd-56ef-1234567890ab. </li> <li> Alias ARN. For example, arn:aws:kms:us-east-1:012345678910:alias/ExampleAlias. </li> </ul> AWS authenticates the CMK asynchronously. Therefore, if you specify an identifier that is not valid, the action can appear to complete, but eventually fails. The specified CMK must exist in the destination Region. Amazon EBS does not support asymmetric CMKs.<br/>Encrypted:  Specifies whether the destination snapshots of the copied image should be encrypted. You can encrypt a copy of an unencrypted snapshot, but you cannot create an unencrypted copy of an encrypted snapshot. The default CMK for EBS is used unless you specify a non-default AWS Key Management Service (AWS KMS) CMK using <code>KmsKeyId</code>. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html">Amazon EBS Encryption</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.<br/>Description:  A description for the new AMI in the destination Region.<br/>ClientToken:  Unique, case-sensitive identifier you provide to ensure idempotency of the request. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html">Ensuring idempotency</a> in the <i>Amazon EC2 API Reference</i>.<br/>
        :return: ImageId:  The ID of the new AMI.<br/>        """
        pass

    def copy_snapshot(self, SourceSnapshotId: str, SourceRegion: str, Description: str=None, DestinationOutpostArn: str=None, DestinationRegion: str=None, Encrypted: Boolean=None, KmsKeyId: str=None, PresignedUrl: str=None, TagSpecifications: List[TagSpecification]=None, DryRun: Boolean=None) -> CopySnapshotResult:
        r"""Copies a point-in-time snapshot of an EBS volume and stores it in Amazon S3. You can copy a snapshot within the same Region, from one Region to another, or from a Region to an Outpost. You can't copy a snapshot from an Outpost to a Region, from one Outpost to another, or within the same Outpost. You can use the snapshot to create EBS volumes or Amazon Machine Images (AMIs). When copying snapshots to a Region, copies of encrypted EBS snapshots remain encrypted. Copies of unencrypted snapshots remain unencrypted, unless you enable encryption for the snapshot copy operation. By default, encrypted snapshot copies use the default AWS Key Management Service (AWS KMS) customer master key (CMK); however, you can specify a different CMK. To copy an encrypted snapshot that has been shared from another account, you must have permissions for the CMK used to encrypt the snapshot. Snapshots copied to an Outpost are encrypted by default using the default encryption key for the Region, or a different key that you specify in the request using <b>KmsKeyId</b>. Outposts do not support unencrypted snapshots. For more information, <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/snapshots-outposts.html#ami"> Amazon EBS local snapshots on Outposts</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>. Snapshots created by copying another snapshot have an arbitrary volume ID that should not be used for any purpose. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-copy-snapshot.html">Copying an Amazon EBS snapshot</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>TagSpecifications:  The tags to apply to the new snapshot.<br/>SourceSnapshotId:  The ID of the EBS snapshot to copy.<br/>SourceRegion:  The ID of the Region that contains the snapshot to be copied.<br/>PresignedUrl:  When you copy an encrypted source snapshot using the Amazon EC2 Query API, you must supply a pre-signed URL. This parameter is optional for unencrypted snapshots. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html">Query requests</a>. The <code>PresignedUrl</code> should use the snapshot source endpoint, the <code>CopySnapshot</code> action, and include the <code>SourceRegion</code>, <code>SourceSnapshotId</code>, and <code>DestinationRegion</code> parameters. The <code>PresignedUrl</code> must be signed using AWS Signature Version 4. Because EBS snapshots are stored in Amazon S3, the signing algorithm for this parameter uses the same logic that is described in <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-query-string-auth.html">Authenticating Requests: Using Query Parameters (AWS Signature Version 4)</a> in the <i>Amazon Simple Storage Service API Reference</i>. An invalid or improperly signed <code>PresignedUrl</code> will cause the copy operation to fail asynchronously, and the snapshot will move to an <code>error</code> state.<br/>KmsKeyId:  The identifier of the AWS Key Management Service (AWS KMS) customer master key (CMK) to use for Amazon EBS encryption. If this parameter is not specified, your AWS managed CMK for EBS is used. If <code>KmsKeyId</code> is specified, the encrypted state must be <code>true</code>. You can specify the CMK using any of the following: <ul> <li> Key ID. For example, 1234abcd-12ab-34cd-56ef-1234567890ab. </li> <li> Key alias. For example, alias/ExampleAlias. </li> <li> Key ARN. For example, arn:aws:kms:us-east-1:012345678910:key/1234abcd-12ab-34cd-56ef-1234567890ab. </li> <li> Alias ARN. For example, arn:aws:kms:us-east-1:012345678910:alias/ExampleAlias. </li> </ul> AWS authenticates the CMK asynchronously. Therefore, if you specify an ID, alias, or ARN that is not valid, the action can appear to complete, but eventually fails.<br/>Encrypted:  To encrypt a copy of an unencrypted snapshot if encryption by default is not enabled, enable encryption using this parameter. Otherwise, omit this parameter. Encrypted snapshots are encrypted, even if you omit this parameter and encryption by default is not enabled. You cannot set this parameter to false. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html">Amazon EBS encryption</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.<br/>DestinationRegion:  The destination Region to use in the <code>PresignedUrl</code> parameter of a snapshot copy operation. This parameter is only valid for specifying the destination Region in a <code>PresignedUrl</code> parameter, where it is required. The snapshot copy is sent to the regional endpoint that you sent the HTTP request to (for example, <code>ec2.us-east-1.amazonaws.com</code>). With the AWS CLI, this is specified using the <code>--region</code> parameter or the default Region in your AWS configuration file.<br/>DestinationOutpostArn:  The Amazon Resource Name (ARN) of the Outpost to which to copy the snapshot. Only specify this parameter when copying a snapshot from an AWS Region to an Outpost. The snapshot must be in the Region for the destination Outpost. You cannot copy a snapshot from an Outpost to a Region, from one Outpost to another, or within the same Outpost. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/snapshots-outposts.html#copy-snapshots"> Copying snapshots from an AWS Region to an Outpost</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.<br/>Description:  A description for the EBS snapshot.<br/>
        :return: Tags:  Any tags applied to the new snapshot.<br/>SnapshotId:  The ID of the new snapshot.<br/>        """
        pass

    def create_capacity_reservation(self, InstanceCount: int, InstancePlatform: str, InstanceType: str, ClientToken: str=None, AvailabilityZone: str=None, AvailabilityZoneId: str=None, Tenancy: str=None, EbsOptimized: Boolean=None, EphemeralStorage: Boolean=None, EndDate: DateTime=None, EndDateType: str=None, InstanceMatchCriteria: str=None, TagSpecifications: List[TagSpecification]=None, DryRun: Boolean=None, OutpostArn: str=None) -> CreateCapacityReservationResult:
        r"""Creates a new Capacity Reservation with the specified attributes. Capacity Reservations enable you to reserve capacity for your Amazon EC2 instances in a specific Availability Zone for any duration. This gives you the flexibility to selectively add capacity reservations and still get the Regional RI discounts for that usage. By creating Capacity Reservations, you ensure that you always have access to Amazon EC2 capacity when you need it, for as long as you need it. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-capacity-reservations.html">Capacity Reservations</a> in the <i>Amazon EC2 User Guide</i>. Your request to create a Capacity Reservation could fail if Amazon EC2 does not have sufficient capacity to fulfill the request. If your request fails due to Amazon EC2 capacity constraints, either try again at a later time, try in a different Availability Zone, or request a smaller capacity reservation. If your application is flexible across instance types and sizes, try to create a Capacity Reservation with different instance attributes. Your request could also fail if the requested quantity exceeds your On-Demand Instance limit for the selected instance type. If your request fails due to limit constraints, increase your On-Demand Instance limit for the required instance type and try again. For more information about increasing your instance limits, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-resource-limits.html">Amazon EC2 Service Quotas</a> in the <i>Amazon EC2 User Guide</i>.

        :param self:
        :param OutpostArn:  The Amazon Resource Name (ARN) of the Outpost on which to create the Capacity Reservation.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>TagSpecifications:  The tags to apply to the Capacity Reservation during launch.<br/>InstanceMatchCriteria:  Indicates the type of instance launches that the Capacity Reservation accepts. The options include: <ul> <li>  <code>open</code> - The Capacity Reservation automatically matches all instances that have matching attributes (instance type, platform, and Availability Zone). Instances that have matching attributes run in the Capacity Reservation automatically without specifying any additional parameters. </li> <li>  <code>targeted</code> - The Capacity Reservation only accepts instances that have matching attributes (instance type, platform, and Availability Zone), and explicitly target the Capacity Reservation. This ensures that only permitted instances can use the reserved capacity.  </li> </ul> Default: <code>open</code> <br/>EndDateType:  Indicates the way in which the Capacity Reservation ends. A Capacity Reservation can have one of the following end types: <ul> <li>  <code>unlimited</code> - The Capacity Reservation remains active until you explicitly cancel it. Do not provide an <code>EndDate</code> if the <code>EndDateType</code> is <code>unlimited</code>. </li> <li>  <code>limited</code> - The Capacity Reservation expires automatically at a specified date and time. You must provide an <code>EndDate</code> value if the <code>EndDateType</code> value is <code>limited</code>. </li> </ul><br/>EndDate:  The date and time at which the Capacity Reservation expires. When a Capacity Reservation expires, the reserved capacity is released and you can no longer launch instances into it. The Capacity Reservation's state changes to <code>expired</code> when it reaches its end date and time. You must provide an <code>EndDate</code> value if <code>EndDateType</code> is <code>limited</code>. Omit <code>EndDate</code> if <code>EndDateType</code> is <code>unlimited</code>. If the <code>EndDateType</code> is <code>limited</code>, the Capacity Reservation is cancelled within an hour from the specified time. For example, if you specify 5/31/2019, 13:30:55, the Capacity Reservation is guaranteed to end between 13:30:55 and 14:30:55 on 5/31/2019.<br/>EphemeralStorage:  Indicates whether the Capacity Reservation supports instances with temporary, block-level storage.<br/>EbsOptimized:  Indicates whether the Capacity Reservation supports EBS-optimized instances. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS- optimized instance.<br/>InstanceCount:  The number of instances for which to reserve capacity.<br/>Tenancy:  Indicates the tenancy of the Capacity Reservation. A Capacity Reservation can have one of the following tenancy settings: <ul> <li>  <code>default</code> - The Capacity Reservation is created on hardware that is shared with other accounts. </li> <li>  <code>dedicated</code> - The Capacity Reservation is created on single-tenant hardware that is dedicated to a single account. </li> </ul><br/>AvailabilityZoneId:  The ID of the Availability Zone in which to create the Capacity Reservation.<br/>AvailabilityZone:  The Availability Zone in which to create the Capacity Reservation.<br/>InstancePlatform:  The type of operating system for which to reserve capacity.<br/>InstanceType:  The instance type for which to reserve capacity. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html">Instance types</a> in the <i>Amazon EC2 User Guide</i>.<br/>ClientToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html">Ensure Idempotency</a>.<br/>
        :return: CapacityReservation:  Information about the Capacity Reservation.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OutpostArn</i> The Amazon Resource Name (ARN) of the Outpost on which the Capacity Reservation was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> Any tags assigned to the Capacity Reservation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreateDate</i> The date and time at which the Capacity Reservation was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceMatchCriteria</i> Indicates the type of instance launches that the Capacity Reservation accepts. The options include: <ul> <li>  <code>open</code> - The Capacity Reservation accepts all instances that have matching attributes (instance type, platform, and Availability Zone). Instances that have matching attributes launch into the Capacity Reservation automatically without specifying any additional parameters. </li> <li>  <code>targeted</code> - The Capacity Reservation only accepts instances that have matching attributes (instance type, platform, and Availability Zone), and explicitly target the Capacity Reservation. This ensures that only permitted instances can use the reserved capacity.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndDateType</i> Indicates the way in which the Capacity Reservation ends. A Capacity Reservation can have one of the following end types: <ul> <li>  <code>unlimited</code> - The Capacity Reservation remains active until you explicitly cancel it. </li> <li>  <code>limited</code> - The Capacity Reservation expires automatically at a specified date and time. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndDate</i> The date and time at which the Capacity Reservation expires. When a Capacity Reservation expires, the reserved capacity is released and you can no longer launch instances into it. The Capacity Reservation's state changes to <code>expired</code> when it reaches its end date and time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StartDate</i> The date and time at which the Capacity Reservation was started.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The current state of the Capacity Reservation. A Capacity Reservation can be in one of the following states: <ul> <li>  <code>active</code> - The Capacity Reservation is active and the capacity is available for your use. </li> <li>  <code>expired</code> - The Capacity Reservation expired automatically at the date and time specified in your request. The reserved capacity is no longer available for your use. </li> <li>  <code>cancelled</code> - The Capacity Reservation was cancelled. The reserved capacity is no longer available for your use. </li> <li>  <code>pending</code> - The Capacity Reservation request was successful but the capacity provisioning is still pending. </li> <li>  <code>failed</code> - The Capacity Reservation request has failed. A request might fail due to invalid request parameters, capacity constraints, or instance limit constraints. Failed requests are retained for 60 minutes. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EphemeralStorage</i> Indicates whether the Capacity Reservation supports instances with temporary, block-level storage.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EbsOptimized</i> Indicates whether the Capacity Reservation supports EBS-optimized instances. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS- optimized instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailableInstanceCount</i> The remaining capacity. Indicates the number of instances that can be launched in the Capacity Reservation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalInstanceCount</i> The total number of instances for which the Capacity Reservation reserves capacity.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tenancy</i> Indicates the tenancy of the Capacity Reservation. A Capacity Reservation can have one of the following tenancy settings: <ul> <li>  <code>default</code> - The Capacity Reservation is created on hardware that is shared with other accounts. </li> <li>  <code>dedicated</code> - The Capacity Reservation is created on single-tenant hardware that is dedicated to a single account. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZone</i> The Availability Zone in which the capacity is reserved.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstancePlatform</i> The type of operating system for which the Capacity Reservation reserves capacity.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceType</i> The type of instance for which the Capacity Reservation reserves capacity.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZoneId</i> The Availability Zone ID of the Capacity Reservation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CapacityReservationArn</i> The Amazon Resource Name (ARN) of the Capacity Reservation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> The ID of the account that owns the Capacity Reservation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CapacityReservationId</i> The ID of the Capacity Reservation.<br/>        """
        pass

    def create_carrier_gateway(self, VpcId: str, TagSpecifications: List[TagSpecification]=None, DryRun: Boolean=None, ClientToken: str=None) -> CreateCarrierGatewayResult:
        r"""Creates a carrier gateway. For more information about carrier gateways, see <a href="https://docs.aws.amazon.com/wavelength/latest/developerguide/how-wavelengths-work.html#wavelength-carrier-gateway">Carrier gateways</a> in the <i>AWS Wavelength Developer Guide</i>.

        :param self:
        :param ClientToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Run_Instance_Idempotency.html">How to Ensure Idempotency</a>.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>TagSpecifications:  The tags to associate with the carrier gateway.<br/>VpcId:  The ID of the VPC to associate with the carrier gateway.<br/>
        :return: CarrierGateway:  Information about the carrier gateway.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The tags assigned to the carrier gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> The AWS account ID of the owner of the carrier gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the carrier gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The ID of the VPC associated with the carrier gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CarrierGatewayId</i> The ID of the carrier gateway.<br/>        """
        pass

    def create_client_vpn_endpoint(self, ConnectionLogOptions: ConnectionLogOptions, AuthenticationOptions: List[ClientVpnAuthenticationRequest], ServerCertificateArn: str, ClientCidrBlock: str, DnsServers: List[String]=None, TransportProtocol: str=None, VpnPort: int=None, Description: str=None, SplitTunnel: Boolean=None, DryRun: Boolean=None, ClientToken: str=None, TagSpecifications: List[TagSpecification]=None, SecurityGroupIds: List[SecurityGroupId]=None, VpcId: str=None, SelfServicePortal: str=None, ClientConnectOptions: ClientConnectOptions=None) -> CreateClientVpnEndpointResult:
        r"""Creates a Client VPN endpoint. A Client VPN endpoint is the resource you create and configure to enable and manage client VPN sessions. It is the destination endpoint at which all client VPN sessions are terminated.

        :param self:
        :param ClientConnectOptions:  The options for managing connection authorization for new client connections.:<br/>SelfServicePortal:  Specify whether to enable the self-service portal for the Client VPN endpoint. Default Value: <code>enabled</code> <br/>VpcId:  The ID of the VPC to associate with the Client VPN endpoint. If no security group IDs are specified in the request, the default security group for the VPC is applied.<br/>SecurityGroupIds:  The IDs of one or more security groups to apply to the target network. You must also specify the ID of the VPC that contains the security groups.<br/>TagSpecifications:  The tags to apply to the Client VPN endpoint during creation.<br/>ClientToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html">How to Ensure Idempotency</a>.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>SplitTunnel:  Indicates whether split-tunnel is enabled on the AWS Client VPN endpoint. By default, split-tunnel on a VPN endpoint is disabled. For information about split-tunnel VPN endpoints, see <a href="https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/split-tunnel-vpn.html">Split-Tunnel AWS Client VPN Endpoint</a> in the <i>AWS Client VPN Administrator Guide</i>.<br/>Description:  A brief description of the Client VPN endpoint.<br/>VpnPort:  The port number to assign to the Client VPN endpoint for TCP and UDP traffic. Valid Values: <code>443</code> | <code>1194</code>  Default Value: <code>443</code> <br/>TransportProtocol:  The transport protocol to be used by the VPN session. Default value: <code>udp</code> <br/>DnsServers:  Information about the DNS servers to be used for DNS resolution. A Client VPN endpoint can have up to two DNS servers. If no DNS server is specified, the DNS address configured on the device is used for the DNS server.<br/>ConnectionLogOptions:  Information about the client connection logging options. If you enable client connection logging, data about client connections is sent to a Cloudwatch Logs log stream. The following information is logged: <ul> <li> Client connection requests </li> <li> Client connection results (successful and unsuccessful) </li> <li> Reasons for unsuccessful client connection requests </li> <li> Client connection termination time </li> </ul>:<br/>AuthenticationOptions:  Information about the authentication method to be used to authenticate clients.<br/>ServerCertificateArn:  The ARN of the server certificate. For more information, see the <a href="https://docs.aws.amazon.com/acm/latest/userguide/">AWS Certificate Manager User Guide</a>.<br/>ClientCidrBlock:  The IPv4 address range, in CIDR notation, from which to assign client IP addresses. The address range cannot overlap with the local CIDR of the VPC in which the associated subnet is located, or the routes that you add manually. The address range cannot be changed after the Client VPN endpoint has been created. The CIDR block should be /22 or greater.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudwatchLogStream</i> The name of the CloudWatch Logs log stream to which the connection data is published.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudwatchLogGroup</i> The name of the CloudWatch Logs log group. Required if connection logging is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Indicates whether connection logging is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LambdaFunctionArn</i> The Amazon Resource Name (ARN) of the AWS Lambda function used for connection authorization.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Indicates whether client connect options are enabled. The default is <code>false</code> (not enabled).<br/>
        :return: DnsName:  The DNS name to be used by clients when establishing their VPN session.<br/>Status:  The current state of the Client VPN endpoint.:<br/>ClientVpnEndpointId:  The ID of the Client VPN endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> A message about the status of the Client VPN endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Code</i> The state of the Client VPN endpoint. Possible states include: <ul> <li>  <code>pending-associate</code> - The Client VPN endpoint has been created but no target networks have been associated. The Client VPN endpoint cannot accept connections. </li> <li>  <code>available</code> - The Client VPN endpoint has been created and a target network has been associated. The Client VPN endpoint can accept connections. </li> <li>  <code>deleting</code> - The Client VPN endpoint is being deleted. The Client VPN endpoint cannot accept connections. </li> <li>  <code>deleted</code> - The Client VPN endpoint has been deleted. The Client VPN endpoint cannot accept connections. </li> </ul><br/>        """
        pass

    def create_client_vpn_route(self, TargetVpcSubnetId: str, DestinationCidrBlock: str, ClientVpnEndpointId: str, Description: str=None, ClientToken: str=None, DryRun: Boolean=None) -> CreateClientVpnRouteResult:
        r"""Adds a route to a network to a Client VPN endpoint. Each Client VPN endpoint has a route table that describes the available destination network routes. Each route in the route table specifies the path for traﬃc to speciﬁc resources or networks.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>ClientToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html">How to Ensure Idempotency</a>.<br/>Description:  A brief description of the route.<br/>TargetVpcSubnetId:  The ID of the subnet through which you want to route traffic. The specified subnet must be an existing target network of the Client VPN endpoint. Alternatively, if you're adding a route for the local network, specify <code>local</code>.<br/>DestinationCidrBlock:  The IPv4 address range, in CIDR notation, of the route destination. For example: <ul> <li> To add a route for Internet access, enter <code>0.0.0.0/0</code>  </li> <li> To add a route for a peered VPC, enter the peered VPC's IPv4 CIDR range </li> <li> To add a route for an on-premises network, enter the AWS Site-to-Site VPN connection's IPv4 CIDR range </li> <li> To add a route for the local network, enter the client CIDR range </li> </ul><br/>ClientVpnEndpointId:  The ID of the Client VPN endpoint to which to add the route.<br/>
        :return: Status:  The current state of the route.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> A message about the status of the Client VPN endpoint route, if applicable.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Code</i> The state of the Client VPN endpoint route.<br/>        """
        pass

    def create_customer_gateway(self, Type: str, BgpAsn: int, PublicIp: str=None, CertificateArn: str=None, TagSpecifications: List[TagSpecification]=None, DeviceName: str=None, DryRun: Boolean=None) -> CreateCustomerGatewayResult:
        r"""Provides information to AWS about your VPN customer gateway device. The customer gateway is the appliance at your end of the VPN connection. (The device on the AWS side of the VPN connection is the virtual private gateway.) You must provide the internet-routable IP address of the customer gateway's external interface. The IP address must be static and can be behind a device performing network address translation (NAT). For devices that use Border Gateway Protocol (BGP), you can also provide the device's BGP Autonomous System Number (ASN). You can use an existing ASN assigned to your network. If you don't have an ASN already, you can use a private ASN (in the 64512 - 65534 range). <note> Amazon EC2 supports all 4-byte ASN numbers in the range of 1 - 2147483647, with the exception of the following: <ul> <li> 7224 - reserved in the <code>us-east-1</code> Region </li> <li> 9059 - reserved in the <code>eu-west-1</code> Region </li> <li> 17943 - reserved in the <code>ap-southeast-1</code> Region </li> <li> 10124 - reserved in the <code>ap-northeast-1</code> Region </li> </ul> </note> For more information, see <a href="https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html">AWS Site-to-Site VPN</a> in the <i>AWS Site-to-Site VPN User Guide</i>. <important> To create more than one customer gateway with the same VPN type, IP address, and BGP ASN, specify a unique device name for each customer gateway. Identical requests return information about the existing customer gateway and do not create new customer gateways. </important>

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>DeviceName:  A name for the customer gateway device. Length Constraints: Up to 255 characters.<br/>TagSpecifications:  The tags to apply to the customer gateway.<br/>Type:  The type of VPN connection that this customer gateway supports (<code>ipsec.1</code>).<br/>CertificateArn:  The Amazon Resource Name (ARN) for the customer gateway certificate.<br/>PublicIp:  The Internet-routable IP address for the customer gateway's outside interface. The address must be static.<br/>BgpAsn:  For devices that support BGP, the customer gateway's BGP ASN. Default: 65000<br/>
        :return: CustomerGateway:  Information about the customer gateway.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> Any tags assigned to the customer gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeviceName</i> The name of customer gateway device.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of VPN connection the customer gateway supports (<code>ipsec.1</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The current state of the customer gateway (<code>pending | available | deleting | deleted</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CertificateArn</i> The Amazon Resource Name (ARN) for the customer gateway certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IpAddress</i> The Internet-routable IP address of the customer gateway's outside interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomerGatewayId</i> The ID of the customer gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BgpAsn</i> The customer gateway's Border Gateway Protocol (BGP) Autonomous System Number (ASN).<br/>        """
        pass

    def create_default_subnet(self, AvailabilityZone: str, DryRun: Boolean=None) -> CreateDefaultSubnetResult:
        r"""Creates a default subnet with a size <code>/20</code> IPv4 CIDR block in the specified Availability Zone in your default VPC. You can have only one default subnet per Availability Zone. For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/default-vpc.html#create-default-subnet">Creating a Default Subnet</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>AvailabilityZone:  The Availability Zone in which to create the default subnet.<br/>
        :return: Subnet:  Information about the subnet.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OutpostArn</i> The Amazon Resource Name (ARN) of the Outpost.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetArn</i> The Amazon Resource Name (ARN) of the subnet.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> Any tags assigned to the subnet.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Ipv6CidrBlockAssociationSet</i> Information about the IPv6 CIDR blocks associated with the subnet.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssignIpv6AddressOnCreation</i> Indicates whether a network interface created in this subnet (including a network interface created by <a>RunInstances</a>) receives an IPv6 address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> The ID of the AWS account that owns the subnet.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The ID of the VPC the subnet is in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetId</i> The ID of the subnet.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The current state of the subnet.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomerOwnedIpv4Pool</i> The customer-owned IPv4 address pool associated with the subnet.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MapCustomerOwnedIpOnLaunch</i> Indicates whether a network interface created in this subnet (including a network interface created by <a>RunInstances</a>) receives a customer-owned IPv4 address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MapPublicIpOnLaunch</i> Indicates whether instances launched in this subnet receive a public IPv4 address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultForAz</i> Indicates whether this is the default subnet for the Availability Zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CidrBlock</i> The IPv4 CIDR block assigned to the subnet.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailableIpAddressCount</i> The number of unused private IPv4 addresses in the subnet. The IPv4 addresses for any stopped instances are considered unavailable.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZoneId</i> The AZ ID of the subnet.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZone</i> The Availability Zone of the subnet.<br/>        """
        pass

    def create_default_vpc(self, DryRun: Boolean=None) -> CreateDefaultVpcResult:
        r"""Creates a default VPC with a size <code>/16</code> IPv4 CIDR block and a default subnet in each Availability Zone. For more information about the components of a default VPC, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/default-vpc.html">Default VPC and Default Subnets</a> in the <i>Amazon Virtual Private Cloud User Guide</i>. You cannot specify the components of the default VPC yourself. If you deleted your previous default VPC, you can create a default VPC. You cannot have more than one default VPC per Region. If your account supports EC2-Classic, you cannot use this action to create a default VPC in a Region that supports EC2-Classic. If you want a default VPC in a Region that supports EC2-Classic, see "I really want a default VPC for my existing EC2 account. Is that possible?" in the <a href="http://aws.amazon.com/vpc/faqs/#Default_VPCs">Default VPCs FAQ</a>.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: Vpc:  Information about the VPC.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> Any tags assigned to the VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsDefault</i> Indicates whether the VPC is the default VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CidrBlockAssociationSet</i> Information about the IPv4 CIDR blocks associated with the VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Ipv6CidrBlockAssociationSet</i> Information about the IPv6 CIDR blocks associated with the VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceTenancy</i> The allowed tenancy of instances launched into the VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> The ID of the AWS account that owns the VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The ID of the VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The current state of the VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DhcpOptionsId</i> The ID of the set of DHCP options you've associated with the VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CidrBlock</i> The primary IPv4 CIDR block for the VPC.<br/>        """
        pass

    def create_dhcp_options(self, DhcpConfigurations: List[NewDhcpConfiguration], TagSpecifications: List[TagSpecification]=None, DryRun: Boolean=None) -> CreateDhcpOptionsResult:
        r"""Creates a set of DHCP options for your VPC. After creating the set, you must associate it with the VPC, causing all existing and new instances that you launch in the VPC to use this set of DHCP options. The following are the individual DHCP options you can specify. For more information about the options, see <a href="http://www.ietf.org/rfc/rfc2132.txt">RFC 2132</a>. <ul> <li>  <code>domain-name-servers</code> - The IP addresses of up to four domain name servers, or AmazonProvidedDNS. The default DHCP option set specifies AmazonProvidedDNS. If specifying more than one domain name server, specify the IP addresses in a single parameter, separated by commas. To have your instance receive a custom DNS hostname as specified in <code>domain-name</code>, you must set <code>domain-name-servers</code> to a custom DNS server. </li> <li>  <code>domain-name</code> - If you're using AmazonProvidedDNS in <code>us-east-1</code>, specify <code>ec2.internal</code>. If you're using AmazonProvidedDNS in another Region, specify <code>region.compute.internal</code> (for example, <code>ap-northeast-1.compute.internal</code>). Otherwise, specify a domain name (for example, <code>ExampleCompany.com</code>). This value is used to complete unqualified DNS hostnames. <b>Important</b>: Some Linux operating systems accept multiple domain names separated by spaces. However, Windows and other Linux operating systems treat the value as a single domain, which results in unexpected behavior. If your DHCP options set is associated with a VPC that has instances with multiple operating systems, specify only one domain name. </li> <li>  <code>ntp-servers</code> - The IP addresses of up to four Network Time Protocol (NTP) servers. </li> <li>  <code>netbios-name-servers</code> - The IP addresses of up to four NetBIOS name servers. </li> <li>  <code>netbios-node-type</code> - The NetBIOS node type (1, 2, 4, or 8). We recommend that you specify 2 (broadcast and multicast are not currently supported). For more information about these node types, see <a href="http://www.ietf.org/rfc/rfc2132.txt">RFC 2132</a>. </li> </ul> Your VPC automatically starts out with a set of DHCP options that includes only a DNS server that we provide (AmazonProvidedDNS). If you create a set of options, and if your VPC has an internet gateway, make sure to set the <code>domain-name-servers</code> option either to <code>AmazonProvidedDNS</code> or to a domain name server of your choice. For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_DHCP_Options.html">DHCP Options Sets</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>TagSpecifications:  The tags to assign to the DHCP option.<br/>DhcpConfigurations:  A DHCP configuration option.<br/>
        :return: DhcpOptions:  A set of DHCP options.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> Any tags assigned to the DHCP options set.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> The ID of the AWS account that owns the DHCP options set.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DhcpOptionsId</i> The ID of the set of DHCP options.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DhcpConfigurations</i> One or more DHCP options in the set.<br/>        """
        pass

    def create_egress_only_internet_gateway(self, VpcId: str, ClientToken: str=None, DryRun: Boolean=None, TagSpecifications: List[TagSpecification]=None) -> CreateEgressOnlyInternetGatewayResult:
        r"""[IPv6 only] Creates an egress-only internet gateway for your VPC. An egress-only internet gateway is used to enable outbound communication over IPv6 from instances in your VPC to the internet, and prevents hosts outside of your VPC from initiating an IPv6 connection with your instance.

        :param self:
        :param TagSpecifications:  The tags to assign to the egress-only internet gateway.<br/>VpcId:  The ID of the VPC for which to create the egress-only internet gateway.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>ClientToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Run_Instance_Idempotency.html">How to Ensure Idempotency</a>.<br/>
        :return: EgressOnlyInternetGateway:  Information about the egress-only internet gateway.:<br/>ClientToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The tags assigned to the egress-only internet gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EgressOnlyInternetGatewayId</i> The ID of the egress-only internet gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Attachments</i> Information about the attachment of the egress-only internet gateway.<br/>        """
        pass

    def create_fleet(self, TargetCapacitySpecification: TargetCapacitySpecificationRequest, LaunchTemplateConfigs: List[FleetLaunchTemplateConfigRequest], DryRun: Boolean=None, ClientToken: str=None, SpotOptions: SpotOptionsRequest=None, OnDemandOptions: OnDemandOptionsRequest=None, ExcessCapacityTerminationPolicy: str=None, TerminateInstancesWithExpiration: Boolean=None, Type: str=None, ValidFrom: DateTime=None, ValidUntil: DateTime=None, ReplaceUnhealthyInstances: Boolean=None, TagSpecifications: List[TagSpecification]=None, Context: str=None) -> CreateFleetResult:
        r"""Launches an EC2 Fleet. You can create a single EC2 Fleet that includes multiple launch specifications that vary by instance type, AMI, Availability Zone, or subnet. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet.html">Launching an EC2 Fleet</a> in the <i>Amazon EC2 User Guide</i>.

        :param self:
        :param Context:  Reserved.<br/>TagSpecifications:  The key-value pair for tagging the EC2 Fleet request on creation. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#tag-resources">Tagging your resources</a>. If the fleet type is <code>instant</code>, specify a resource type of <code>fleet</code> to tag the fleet or <code>instance</code> to tag the instances at launch. If the fleet type is <code>maintain</code> or <code>request</code>, specify a resource type of <code>fleet</code> to tag the fleet. You cannot specify a resource type of <code>instance</code>. To tag instances at launch, specify the tags in a <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html#create-launch-template">launch template</a>.<br/>ReplaceUnhealthyInstances:  Indicates whether EC2 Fleet should replace unhealthy Spot Instances. Supported only for fleets of type <code>maintain</code>. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/manage-ec2-fleet.html#ec2-fleet-health-checks">EC2 Fleet health checks</a> in the <i>Amazon EC2 User Guide</i>.<br/>ValidUntil:  The end date and time of the request, in UTC format (for example, <i>YYYY</i>-<i>MM</i>-<i>DD</i>T<i>HH</i>:<i>MM</i>:<i>SS</i>Z). At this point, no new EC2 Fleet requests are placed or able to fulfill the request. If no value is specified, the request remains until you cancel it.<br/>ValidFrom:  The start date and time of the request, in UTC format (for example, <i>YYYY</i>-<i>MM</i>-<i>DD</i>T<i>HH</i>:<i>MM</i>:<i>SS</i>Z). The default is to start fulfilling the request immediately.<br/>Type:  The fleet type. The default value is <code>maintain</code>. <ul> <li>  <code>maintain</code> - The EC2 Fleet places an asynchronous request for your desired capacity, and continues to maintain your desired Spot capacity by replenishing interrupted Spot Instances. </li> <li>  <code>request</code> - The EC2 Fleet places an asynchronous one-time request for your desired capacity, but does submit Spot requests in alternative capacity pools if Spot capacity is unavailable, and does not maintain Spot capacity if Spot Instances are interrupted. </li> <li>  <code>instant</code> - The EC2 Fleet places a synchronous one-time request for your desired capacity, and returns errors for any instances that could not be launched. </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-configuration-strategies.html#ec2-fleet-request-type">EC2 Fleet request types</a> in the <i>Amazon EC2 User Guide</i>.<br/>TerminateInstancesWithExpiration:  Indicates whether running instances should be terminated when the EC2 Fleet expires.<br/>TargetCapacitySpecification:  The number of units to request.:<br/>LaunchTemplateConfigs:  The configuration for the EC2 Fleet.<br/>ExcessCapacityTerminationPolicy:  Indicates whether running instances should be terminated if the total target capacity of the EC2 Fleet is decreased below the current size of the EC2 Fleet.<br/>OnDemandOptions:  Describes the configuration of On-Demand Instances in an EC2 Fleet.:<br/>SpotOptions:  Describes the configuration of Spot Instances in an EC2 Fleet.:<br/>ClientToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html">Ensuring Idempotency</a>.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxTotalPrice</i> The maximum amount per hour for Spot Instances that you're willing to pay.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MinTargetCapacity</i> The minimum target capacity for Spot Instances in the fleet. If the minimum target capacity is not reached, the fleet launches no instances.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SingleAvailabilityZone</i> Indicates that the fleet launches all Spot Instances into a single Availability Zone. Supported only for fleets of type <code>instant</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SingleInstanceType</i> Indicates that the fleet uses a single instance type to launch all Spot Instances in the fleet. Supported only for fleets of type <code>instant</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstancePoolsToUseCount</i> The number of Spot pools across which to allocate your target Spot capacity. Valid only when Spot <b>AllocationStrategy</b> is set to <code>lowest-price</code>. EC2 Fleet selects the cheapest Spot pools and evenly allocates your target Spot capacity across the number of Spot pools that you specify. Note that EC2 Fleet attempts to draw Spot Instances from the number of pools that you specify on a best effort basis. If a pool runs out of Spot capacity before fulfilling your target capacity, EC2 Fleet will continue to fulfill your request by drawing from the next cheapest pool. To ensure that your target capacity is met, you might receive Spot Instances from more than the number of pools that you specified. Similarly, if most of the pools have no Spot capacity, you might receive your full target capacity from fewer than the number of pools that you specified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceInterruptionBehavior</i> The behavior when a Spot Instance is interrupted. The default is <code>terminate</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaintenanceStrategies</i> The strategies for managing your Spot Instances that are at an elevated risk of being interrupted.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>MaintenanceStrategies</b>: The strategies for managing your Spot Instances that are at an elevated risk of being interrupted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllocationStrategy</i> Indicates how to allocate the target Spot Instance capacity across the Spot Instance pools specified by the EC2 Fleet. If the allocation strategy is <code>lowest-price</code>, EC2 Fleet launches instances from the Spot Instance pools with the lowest price. This is the default allocation strategy. If the allocation strategy is <code>diversified</code>, EC2 Fleet launches instances from all of the Spot Instance pools that you specify. If the allocation strategy is <code>capacity-optimized</code> (recommended), EC2 Fleet launches instances from Spot Instance pools with optimal capacity for the number of instances that are launching. To give certain instance types a higher chance of launching first, use <code>capacity-optimized-prioritized</code>. Set a priority for each instance type by using the <code>Priority</code> parameter for <code>LaunchTemplateOverrides</code>. You can assign the same priority to different <code>LaunchTemplateOverrides</code>. EC2 implements the priorities on a best-effort basis, but optimizes for capacity first. <code>capacity-optimized-prioritized</code> is supported only if your fleet uses a launch template. Note that if the On-Demand <code>AllocationStrategy</code> is set to <code>prioritized</code>, the same priority is applied when fulfilling On-Demand capacity.<br/>The strategy to use when Amazon EC2 emits a signal that your Spot Instance is at an elevated risk of being interrupted.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CapacityRebalance</b>: The strategy to use when Amazon EC2 emits a signal that your Spot Instance is at an elevated risk of being interrupted.&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxTotalPrice</i> The maximum amount per hour for On-Demand Instances that you're willing to pay.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MinTargetCapacity</i> The minimum target capacity for On-Demand Instances in the fleet. If the minimum target capacity is not reached, the fleet launches no instances.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SingleAvailabilityZone</i> Indicates that the fleet launches all On-Demand Instances into a single Availability Zone. Supported only for fleets of type <code>instant</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SingleInstanceType</i> Indicates that the fleet uses a single instance type to launch all On-Demand Instances in the fleet. Supported only for fleets of type <code>instant</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CapacityReservationOptions</i> The strategy for using unused Capacity Reservations for fulfilling On-Demand capacity. Supported only for fleets of type <code>instant</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CapacityReservationOptions</b>: The strategy for using unused Capacity Reservations for fulfilling On-Demand capacity. Supported only for fleets of type <code>instant</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllocationStrategy</i> The order of the launch template overrides to use in fulfilling On-Demand capacity. If you specify <code>lowest-price</code>, EC2 Fleet uses price to determine the order, launching the lowest price first. If you specify <code>prioritized</code>, EC2 Fleet uses the priority that you assigned to each launch template override, launching the highest priority first. If you do not specify a value, EC2 Fleet defaults to <code>lowest-price</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UsageStrategy</i> Indicates whether to use unused Capacity Reservations for fulfilling On-Demand capacity. If you specify <code>use-capacity-reservations-first</code>, the fleet uses unused Capacity Reservations to fulfill On-Demand capacity up to the target On-Demand capacity. If multiple instance pools have unused Capacity Reservations, the On-Demand allocation strategy (<code>lowest-price</code> or <code>prioritized</code>) is applied. If the number of unused Capacity Reservations is less than the On-Demand target capacity, the remaining On-Demand target capacity is launched according to the On-Demand allocation strategy (<code>lowest-price</code> or <code>prioritized</code>). If you do not specify a value, the fleet fulfils the On-Demand capacity according to the chosen On-Demand allocation strategy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultTargetCapacityType</i> The default <code>TotalTargetCapacity</code>, which is either <code>Spot</code> or <code>On-Demand</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SpotTargetCapacity</i> The number of Spot units to request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OnDemandTargetCapacity</i> The number of On-Demand units to request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalTargetCapacity</i> The number of units to request, filled using <code>DefaultTargetCapacityType</code>.<br/>
        :return: Instances:  Information about the instances that were launched by the fleet. Supported only for fleets of type <code>instant</code>.<br/>Errors:  Information about the instances that could not be launched by the fleet. Supported only for fleets of type <code>instant</code>.<br/>FleetId:  The ID of the EC2 Fleet.<br/>        """
        pass

    def create_flow_logs(self, TrafficType: str, ResourceType: str, ResourceIds: List[FlowLogResourceId], DryRun: Boolean=None, ClientToken: str=None, DeliverLogsPermissionArn: str=None, LogGroupName: str=None, LogDestinationType: str=None, LogDestination: str=None, LogFormat: str=None, TagSpecifications: List[TagSpecification]=None, MaxAggregationInterval: int=None) -> CreateFlowLogsResult:
        r"""Creates one or more flow logs to capture information about IP traffic for a specific network interface, subnet, or VPC.  Flow log data for a monitored network interface is recorded as flow log records, which are log events consisting of fields that describe the traffic flow. For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html#flow-log-records">Flow Log Records</a> in the <i>Amazon Virtual Private Cloud User Guide</i>. When publishing to CloudWatch Logs, flow log records are published to a log group, and each network interface has a unique log stream in the log group. When publishing to Amazon S3, flow log records for all of the monitored network interfaces are published to a single log file object that is stored in the specified bucket. For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html">VPC Flow Logs</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.

        :param self:
        :param MaxAggregationInterval:  The maximum interval of time during which a flow of packets is captured and aggregated into a flow log record. You can specify 60 seconds (1 minute) or 600 seconds (10 minutes). When a network interface is attached to a <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances">Nitro-based instance</a>, the aggregation interval is always 60 seconds or less, regardless of the value that you specify. Default: 600<br/>TagSpecifications:  The tags to apply to the flow logs.<br/>LogFormat:  The fields to include in the flow log record, in the order in which they should appear. For a list of available fields, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html#flow-log-records">Flow Log Records</a>. If you omit this parameter, the flow log is created using the default format. If you specify this parameter, you must specify at least one field. Specify the fields using the <code>${field-id}</code> format, separated by spaces. For the AWS CLI, use single quotation marks (' ') to surround the parameter value.<br/>LogDestination:  Specifies the destination to which the flow log data is to be published. Flow log data can be published to a CloudWatch Logs log group or an Amazon S3 bucket. The value specified for this parameter depends on the value specified for <code>LogDestinationType</code>. If <code>LogDestinationType</code> is not specified or <code>cloud-watch-logs</code>, specify the Amazon Resource Name (ARN) of the CloudWatch Logs log group. For example, to publish to a log group called <code>my-logs</code>, specify <code>arn:aws:logs:us-east-1:123456789012:log-group:my-logs</code>. Alternatively, use <code>LogGroupName</code> instead. If LogDestinationType is <code>s3</code>, specify the ARN of the Amazon S3 bucket. You can also specify a subfolder in the bucket. To specify a subfolder in the bucket, use the following ARN format: <code>bucket_ARN/subfolder_name/</code>. For example, to specify a subfolder named <code>my-logs</code> in a bucket named <code>my-bucket</code>, use the following ARN: <code>arn:aws:s3:::my-bucket/my-logs/</code>. You cannot use <code>AWSLogs</code> as a subfolder name. This is a reserved term.<br/>LogDestinationType:  Specifies the type of destination to which the flow log data is to be published. Flow log data can be published to CloudWatch Logs or Amazon S3. To publish flow log data to CloudWatch Logs, specify <code>cloud-watch-logs</code>. To publish flow log data to Amazon S3, specify <code>s3</code>. If you specify <code>LogDestinationType</code> as <code>s3</code>, do not specify <code>DeliverLogsPermissionArn</code> or <code>LogGroupName</code>. Default: <code>cloud-watch-logs</code> <br/>TrafficType:  The type of traffic to log. You can log traffic that the resource accepts or rejects, or all traffic.<br/>ResourceType:  The type of resource for which to create the flow log. For example, if you specified a VPC ID for the <code>ResourceId</code> property, specify <code>VPC</code> for this property.<br/>ResourceIds:  The ID of the subnet, network interface, or VPC for which you want to create a flow log. Constraints: Maximum of 1000 resources<br/>LogGroupName:  The name of a new or existing CloudWatch Logs log group where Amazon EC2 publishes your flow logs. If you specify <code>LogDestinationType</code> as <code>s3</code>, do not specify <code>DeliverLogsPermissionArn</code> or <code>LogGroupName</code>.<br/>DeliverLogsPermissionArn:  The ARN for the IAM role that permits Amazon EC2 to publish flow logs to a CloudWatch Logs log group in your account. If you specify <code>LogDestinationType</code> as <code>s3</code>, do not specify <code>DeliverLogsPermissionArn</code> or <code>LogGroupName</code>.<br/>ClientToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Run_Instance_Idempotency.html">How to Ensure Idempotency</a>.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: Unsuccessful:  Information about the flow logs that could not be created successfully.<br/>FlowLogIds:  The IDs of the flow logs.<br/>ClientToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.<br/>        """
        pass

    def create_fpga_image(self, InputStorageLocation: StorageLocation, DryRun: Boolean=None, LogsStorageLocation: StorageLocation=None, Description: str=None, Name: str=None, ClientToken: str=None, TagSpecifications: List[TagSpecification]=None) -> CreateFpgaImageResult:
        r"""Creates an Amazon FPGA Image (AFI) from the specified design checkpoint (DCP). The create operation is asynchronous. To verify that the AFI is ready for use, check the output logs. An AFI contains the FPGA bitstream that is ready to download to an FPGA. You can securely deploy an AFI on multiple FPGA-accelerated instances. For more information, see the <a href="https://github.com/aws/aws-fpga/">AWS FPGA Hardware Development Kit</a>.

        :param self:
        :param TagSpecifications:  The tags to apply to the FPGA image during creation.<br/>ClientToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Run_Instance_Idempotency.html">Ensuring Idempotency</a>.<br/>Name:  A name for the AFI.<br/>Description:  A description for the AFI.<br/>LogsStorageLocation:  The location in Amazon S3 for the output logs.:<br/>InputStorageLocation:  The location of the encrypted design checkpoint in Amazon S3. The input must be a tarball.:<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The key.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i> The name of the S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The key.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i> The name of the S3 bucket.<br/>
        :return: FpgaImageGlobalId:  The global FPGA image identifier (AGFI ID).<br/>FpgaImageId:  The FPGA image identifier (AFI ID).<br/>        """
        pass

    def create_image(self, Name: str, InstanceId: str, BlockDeviceMappings: List[BlockDeviceMapping]=None, Description: str=None, DryRun: Boolean=None, NoReboot: Boolean=None, TagSpecifications: List[TagSpecification]=None) -> CreateImageResult:
        r"""Creates an Amazon EBS-backed AMI from an Amazon EBS-backed instance that is either running or stopped. If you customized your instance with instance store volumes or EBS volumes in addition to the root device volume, the new AMI contains block device mapping information for those volumes. When you launch an instance from this new AMI, the instance automatically launches with those additional volumes. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-ebs.html">Creating Amazon EBS-Backed Linux AMIs</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.

        :param self:
        :param TagSpecifications:  The tags to apply to the AMI and snapshots on creation. You can tag the AMI, the snapshots, or both. <ul> <li> To tag the AMI, the value for <code>ResourceType</code> must be <code>image</code>. </li> <li> To tag the snapshots that are created of the root volume and of other EBS volumes that are attached to the instance, the value for <code>ResourceType</code> must be <code>snapshot</code>. The same tag is applied to all of the snapshots that are created. </li> </ul> If you specify other values for <code>ResourceType</code>, the request fails. To tag an AMI or snapshot after it has been created, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html">CreateTags</a>. <br/>NoReboot:  By default, Amazon EC2 attempts to shut down and reboot the instance before creating the image. If the <code>No Reboot</code> option is set, Amazon EC2 doesn't shut down the instance before creating the image. When this option is used, file system integrity on the created image can't be guaranteed.<br/>Name:  A name for the new image. Constraints: 3-128 alphanumeric characters, parentheses (()), square brackets ([]), spaces ( ), periods (.), slashes (/), dashes (-), single quotes ('), at-signs (@), or underscores(_)<br/>InstanceId:  The ID of the instance.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>Description:  A description for the new image.<br/>BlockDeviceMappings:  The block device mappings. This parameter cannot be used to modify the encryption status of existing volumes or snapshots. To create an AMI with encrypted snapshots, use the <a>CopyImage</a> action.<br/>
        :return: ImageId:  The ID of the new AMI.<br/>        """
        pass

    def create_instance_export_task(self, TargetEnvironment: str, InstanceId: str, ExportToS3Task: ExportToS3TaskSpecification, Description: str=None, TagSpecifications: List[TagSpecification]=None) -> CreateInstanceExportTaskResult:
        r"""Exports a running or stopped instance to an Amazon S3 bucket. For information about the supported operating systems, image formats, and known limitations for the types of instances you can export, see <a href="https://docs.aws.amazon.com/vm-import/latest/userguide/vmexport.html">Exporting an instance as a VM Using VM Import/Export</a> in the <i>VM Import/Export User Guide</i>.

        :param self:
        :param TagSpecifications:  The tags to apply to the export instance task during creation.<br/>TargetEnvironment:  The target virtualization environment.<br/>InstanceId:  The ID of the instance.<br/>ExportToS3Task:  The format and location for an export instance task.:<br/>Description:  A description for the conversion task or the resource being exported. The maximum length is 255 characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Prefix</i> The image is written to a single object in the Amazon S3 bucket at the S3 key s3prefix + exportTaskId + '.' + diskImageFormat.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Bucket</i> The Amazon S3 bucket for the destination image. The destination bucket must exist and grant WRITE and READ_ACP permissions to the AWS account <code>vm-import-export@amazon.com</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DiskImageFormat</i> The format for the exported image.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ContainerFormat</i> The container format used to combine disk images with metadata (such as OVF). If absent, only the disk image is exported.<br/>
        :return: ExportTask:  Information about the export instance task.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The tags for the export task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusMessage</i> The status message related to the export task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the export task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceExportDetails</i> Information about the instance to export.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>InstanceExportDetails</b>: Information about the instance to export.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExportToS3Task</i> Information about the export task.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ExportToS3Task</b>: Information about the export task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExportTaskId</i> The ID of the export task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A description of the resource being exported.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Key</i> The encryption key for your S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Bucket</i> The Amazon S3 bucket for the destination image. The destination bucket must exist and grant WRITE and READ_ACP permissions to the AWS account <code>vm-import-export@amazon.com</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DiskImageFormat</i> The format for the exported image.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ContainerFormat</i> The container format used to combine disk images with metadata (such as OVF). If absent, only the disk image is exported.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetEnvironment</i> The target virtualization environment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceId</i> The ID of the resource being exported.<br/>        """
        pass

    def create_internet_gateway(self, TagSpecifications: List[TagSpecification]=None, DryRun: Boolean=None) -> CreateInternetGatewayResult:
        r"""Creates an internet gateway for use with a VPC. After creating the internet gateway, you attach it to a VPC using <a>AttachInternetGateway</a>. For more information about your VPC and internet gateway, see the <a href="https://docs.aws.amazon.com/vpc/latest/userguide/">Amazon Virtual Private Cloud User Guide</a>.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>TagSpecifications:  The tags to assign to the internet gateway.<br/>
        :return: InternetGateway:  Information about the internet gateway.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> Any tags assigned to the internet gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> The ID of the AWS account that owns the internet gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InternetGatewayId</i> The ID of the internet gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Attachments</i> Any VPCs attached to the internet gateway.<br/>        """
        pass

    def create_key_pair(self, KeyName: str, DryRun: Boolean=None, TagSpecifications: List[TagSpecification]=None) -> KeyPair:
        r"""Creates a 2048-bit RSA key pair with the specified name. Amazon EC2 stores the public key and displays the private key for you to save to a file. The private key is returned as an unencrypted PEM encoded PKCS#1 private key. If a key with the specified name already exists, Amazon EC2 returns an error. You can have up to five thousand key pairs per Region. The key pair returned to you is available only in the Region in which you create it. If you prefer, you can create your own key pair using a third-party tool and upload it to any Region using <a>ImportKeyPair</a>. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html">Key Pairs</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.

        :param self:
        :param TagSpecifications:  The tags to apply to the new key pair.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>KeyName:  A unique name for the key pair. Constraints: Up to 255 ASCII characters<br/>
        :return: Tags:  Any tags applied to the key pair.<br/>KeyPairId:  The ID of the key pair.<br/>KeyName:  The name of the key pair.<br/>KeyMaterial:  An unencrypted PEM encoded RSA private key.<br/>KeyFingerprint:  The SHA-1 digest of the DER encoded private key.<br/>        """
        pass

    def create_launch_template(self, LaunchTemplateData: RequestLaunchTemplateData, LaunchTemplateName: str, DryRun: Boolean=None, ClientToken: str=None, VersionDescription: str=None, TagSpecifications: List[TagSpecification]=None) -> CreateLaunchTemplateResult:
        r"""Creates a launch template. A launch template contains the parameters to launch an instance. When you launch an instance using <a>RunInstances</a>, you can specify a launch template instead of providing the launch parameters in the request. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html">Launching an instance from a launch template</a>in the <i>Amazon Elastic Compute Cloud User Guide</i>.

        :param self:
        :param TagSpecifications:  The tags to apply to the launch template during creation.<br/>LaunchTemplateData:  The information for the launch template.:<br/>VersionDescription:  A description for the first version of the launch template.<br/>LaunchTemplateName:  A name for the launch template.<br/>ClientToken:  Unique, case-sensitive identifier you provide to ensure the idempotency of the request. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html">Ensuring Idempotency</a>. Constraint: Maximum 128 ASCII characters.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnclaveOptions</i> Indicates whether the instance is enabled for AWS Nitro Enclaves. For more information, see <a href="https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave.html"> What is AWS Nitro Enclaves?</a> in the <i>AWS Nitro Enclaves User Guide</i>. You can't enable AWS Nitro Enclaves and hibernation on the same instance.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EnclaveOptions</b>: Indicates whether the instance is enabled for AWS Nitro Enclaves. For more information, see <a href="https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave.html"> What is AWS Nitro Enclaves?</a> in the <i>AWS Nitro Enclaves User Guide</i>. You can't enable AWS Nitro Enclaves and hibernation on the same instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MetadataOptions</i> The metadata options for the instance. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html">Instance Metadata and User Data</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>MetadataOptions</b>: The metadata options for the instance. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html">Instance Metadata and User Data</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HibernationOptions</i> Indicates whether an instance is enabled for hibernation. This parameter is valid only if the instance meets the <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html#hibernating-prerequisites">hibernation prerequisites</a>. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html">Hibernate Your Instance</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>HibernationOptions</b>: Indicates whether an instance is enabled for hibernation. This parameter is valid only if the instance meets the <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html#hibernating-prerequisites">hibernation prerequisites</a>. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html">Hibernate Your Instance</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LicenseSpecifications</i> The license configurations.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CapacityReservationSpecification</i> The Capacity Reservation targeting option. If you do not specify this parameter, the instance's Capacity Reservation preference defaults to <code>open</code>, which enables it to run in any open Capacity Reservation that has matching attributes (instance type, platform, Availability Zone).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CapacityReservationSpecification</b>: The Capacity Reservation targeting option. If you do not specify this parameter, the instance's Capacity Reservation preference defaults to <code>open</code>, which enables it to run in any open Capacity Reservation that has matching attributes (instance type, platform, Availability Zone).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CpuOptions</i> The CPU options for the instance. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html">Optimizing CPU Options</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CpuOptions</b>: The CPU options for the instance. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html">Optimizing CPU Options</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreditSpecification</i> The credit option for CPU usage of the instance. Valid for T2, T3, or T3a instances only.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CreditSpecification</b>: The credit option for CPU usage of the instance. Valid for T2, T3, or T3a instances only.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceMarketOptions</i> The market (purchasing) option for the instances.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>InstanceMarketOptions</b>: The market (purchasing) option for the instances.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroups</i> [EC2-Classic, default VPC] One or more security group names. For a nondefault VPC, you must use security group IDs instead. You cannot specify both a security group ID and security name in the same request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> One or more security group IDs. You can create a security group using <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateSecurityGroup.html">CreateSecurityGroup</a>. You cannot specify both a security group ID and security name in the same request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ElasticInferenceAccelerators</i>  The elastic inference accelerator for the instance. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ElasticGpuSpecifications</i> An elastic GPU to associate with the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TagSpecifications</i> The tags to apply to the resources during launch. You can only tag instances and volumes on launch. The specified tags are applied to all instances or volumes that are created during launch. To tag a resource after it has been created, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html">CreateTags</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserData</i> The Base64-encoded user data to make available to the instance. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html">Running Commands on Your Linux Instance at Launch</a> (Linux) and <a href="https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2-instance-metadata.html#instancedata-add-user-data">Adding User Data</a> (Windows).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceInitiatedShutdownBehavior</i> Indicates whether an instance stops or terminates when you initiate shutdown from the instance (using the operating system command for system shutdown). Default: <code>stop</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DisableApiTermination</i> If you set this parameter to <code>true</code>, you can't terminate the instance using the Amazon EC2 console, CLI, or API; otherwise, you can. To change this attribute after launch, use <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyInstanceAttribute.html">ModifyInstanceAttribute</a>. Alternatively, if you set <code>InstanceInitiatedShutdownBehavior</code> to <code>terminate</code>, you can terminate the instance by running the shutdown command from the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RamDiskId</i> The ID of the RAM disk. <important> We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html">User Provided Kernels</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>. </important><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Placement</i> The placement for the instance.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Placement</b>: The placement for the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Monitoring</i> The monitoring for the instance.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Monitoring</b>: The monitoring for the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KeyName</i> The name of the key pair. You can create a key pair using <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateKeyPair.html">CreateKeyPair</a> or <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ImportKeyPair.html">ImportKeyPair</a>. <important> If you do not specify a key pair, you can't connect to the instance unless you choose an AMI that is configured to allow users another way to log in. </important><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceType</i> The instance type. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html">Instance Types</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImageId</i> The ID of the AMI.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkInterfaces</i> One or more network interfaces. If you specify a network interface, you must specify any security groups and subnets as part of the network interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BlockDeviceMappings</i> The block device mapping.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IamInstanceProfile</i> The name or Amazon Resource Name (ARN) of an IAM instance profile.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>IamInstanceProfile</b>: The name or Amazon Resource Name (ARN) of an IAM instance profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EbsOptimized</i> Indicates whether the instance is optimized for Amazon EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal Amazon EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS-optimized instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KernelId</i> The ID of the kernel. <important> We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html">User Provided Kernels</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>. </important><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the instance profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the instance profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specify <code>true</code> to enable detailed monitoring. Otherwise, basic monitoring is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PartitionNumber</i> The number of the partition the instance should launch in. Valid only if the placement group strategy is set to <code>partition</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HostResourceGroupArn</i> The ARN of the host resource group in which to launch the instances. If you specify a host resource group ARN, omit the <b>Tenancy</b> parameter or set it to <code>host</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SpreadDomain</i> Reserved for future use.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Tenancy</i> The tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HostId</i> The ID of the Dedicated Host for the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>GroupName</i> The name of the placement group for the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Affinity</i> The affinity setting for an instance on a Dedicated Host.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZone</i> The Availability Zone for the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MarketType</i> The market type.<br/>The options for Spot Instances.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SpotOptions</b>: The options for Spot Instances.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CpuCredits</i> The credit option for CPU usage of a T2, T3, or T3a instance. Valid values are <code>standard</code> and <code>unlimited</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ThreadsPerCore</i> The number of threads per CPU core. To disable multithreading for the instance, specify a value of 1. Otherwise, specify the default value of 2.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CoreCount</i> The number of CPU cores for the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CapacityReservationPreference</i> Indicates the instance's Capacity Reservation preferences. Possible preferences include: <ul> <li>  <code>open</code> - The instance can run in any <code>open</code> Capacity Reservation that has matching attributes (instance type, platform, Availability Zone). </li> <li>  <code>none</code> - The instance avoids running in a Capacity Reservation even if one is available. The instance runs in On-Demand capacity. </li> </ul><br/>Information about the target Capacity Reservation or Capacity Reservation group.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CapacityReservationTarget</b>: Information about the target Capacity Reservation or Capacity Reservation group.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Configured</i> If you set this parameter to <code>true</code>, the instance is enabled for hibernation. Default: <code>false</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HttpEndpoint</i> This parameter enables or disables the HTTP metadata endpoint on your instances. If the parameter is not specified, the default state is <code>enabled</code>. <note> If you specify a value of <code>disabled</code>, you will not be able to access your instance metadata.  </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HttpPutResponseHopLimit</i> The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Default: 1 Possible values: Integers from 1 to 64<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HttpTokens</i> The state of token usage for your instance metadata requests. If the parameter is not specified in the request, the default state is <code>optional</code>. If the state is <code>optional</code>, you can choose to retrieve instance metadata with or without a signed token header on your request. If you retrieve the IAM role credentials without a token, the version 1.0 role credentials are returned. If you retrieve the IAM role credentials using a valid signed token, the version 2.0 role credentials are returned. If the state is <code>required</code>, you must send a signed token header with any instance metadata retrieval requests. In this state, retrieving the IAM role credentials always returns the version 2.0 credentials; the version 1.0 credentials are not available.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> To enable the instance for AWS Nitro Enclaves, set this parameter to <code>true</code>.<br/>
        :return: Warning:  If the launch template contains parameters or parameter combinations that are not valid, an error code and an error message are returned for each issue that's found.:<br/>LaunchTemplate:  Information about the launch template.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The tags for the launch template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestVersionNumber</i> The version number of the latest version of the launch template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultVersionNumber</i> The version number of the default version of the launch template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedBy</i> The principal that created the launch template. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreateTime</i> The time launch template was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LaunchTemplateName</i> The name of the launch template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LaunchTemplateId</i> The ID of the launch template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Errors</i> The error codes and error messages.<br/>        """
        pass

    def create_launch_template_version(self, LaunchTemplateData: RequestLaunchTemplateData, DryRun: Boolean=None, ClientToken: str=None, LaunchTemplateId: str=None, LaunchTemplateName: str=None, SourceVersion: str=None, VersionDescription: str=None) -> CreateLaunchTemplateVersionResult:
        r"""Creates a new version for a launch template. You can specify an existing version of launch template from which to base the new version. Launch template versions are numbered in the order in which they are created. You cannot specify, change, or replace the numbering of launch template versions. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html#manage-launch-template-versions">Managing launch template versions</a>in the <i>Amazon Elastic Compute Cloud User Guide</i>.

        :param self:
        :param LaunchTemplateData:  The information for the launch template.:<br/>VersionDescription:  A description for the version of the launch template.<br/>SourceVersion:  The version number of the launch template version on which to base the new version. The new version inherits the same launch parameters as the source version, except for parameters that you specify in <code>LaunchTemplateData</code>. Snapshots applied to the block device mapping are ignored when creating a new version unless they are explicitly included.<br/>LaunchTemplateName:  The name of the launch template. You must specify either the launch template ID or launch template name in the request.<br/>LaunchTemplateId:  The ID of the launch template. You must specify either the launch template ID or launch template name in the request.<br/>ClientToken:  Unique, case-sensitive identifier you provide to ensure the idempotency of the request. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html">Ensuring Idempotency</a>. Constraint: Maximum 128 ASCII characters.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnclaveOptions</i> Indicates whether the instance is enabled for AWS Nitro Enclaves. For more information, see <a href="https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave.html"> What is AWS Nitro Enclaves?</a> in the <i>AWS Nitro Enclaves User Guide</i>. You can't enable AWS Nitro Enclaves and hibernation on the same instance.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EnclaveOptions</b>: Indicates whether the instance is enabled for AWS Nitro Enclaves. For more information, see <a href="https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave.html"> What is AWS Nitro Enclaves?</a> in the <i>AWS Nitro Enclaves User Guide</i>. You can't enable AWS Nitro Enclaves and hibernation on the same instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MetadataOptions</i> The metadata options for the instance. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html">Instance Metadata and User Data</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>MetadataOptions</b>: The metadata options for the instance. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html">Instance Metadata and User Data</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HibernationOptions</i> Indicates whether an instance is enabled for hibernation. This parameter is valid only if the instance meets the <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html#hibernating-prerequisites">hibernation prerequisites</a>. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html">Hibernate Your Instance</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>HibernationOptions</b>: Indicates whether an instance is enabled for hibernation. This parameter is valid only if the instance meets the <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html#hibernating-prerequisites">hibernation prerequisites</a>. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html">Hibernate Your Instance</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LicenseSpecifications</i> The license configurations.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CapacityReservationSpecification</i> The Capacity Reservation targeting option. If you do not specify this parameter, the instance's Capacity Reservation preference defaults to <code>open</code>, which enables it to run in any open Capacity Reservation that has matching attributes (instance type, platform, Availability Zone).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CapacityReservationSpecification</b>: The Capacity Reservation targeting option. If you do not specify this parameter, the instance's Capacity Reservation preference defaults to <code>open</code>, which enables it to run in any open Capacity Reservation that has matching attributes (instance type, platform, Availability Zone).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CpuOptions</i> The CPU options for the instance. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html">Optimizing CPU Options</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CpuOptions</b>: The CPU options for the instance. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html">Optimizing CPU Options</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreditSpecification</i> The credit option for CPU usage of the instance. Valid for T2, T3, or T3a instances only.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CreditSpecification</b>: The credit option for CPU usage of the instance. Valid for T2, T3, or T3a instances only.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceMarketOptions</i> The market (purchasing) option for the instances.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>InstanceMarketOptions</b>: The market (purchasing) option for the instances.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroups</i> [EC2-Classic, default VPC] One or more security group names. For a nondefault VPC, you must use security group IDs instead. You cannot specify both a security group ID and security name in the same request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> One or more security group IDs. You can create a security group using <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateSecurityGroup.html">CreateSecurityGroup</a>. You cannot specify both a security group ID and security name in the same request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ElasticInferenceAccelerators</i>  The elastic inference accelerator for the instance. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ElasticGpuSpecifications</i> An elastic GPU to associate with the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TagSpecifications</i> The tags to apply to the resources during launch. You can only tag instances and volumes on launch. The specified tags are applied to all instances or volumes that are created during launch. To tag a resource after it has been created, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html">CreateTags</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserData</i> The Base64-encoded user data to make available to the instance. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html">Running Commands on Your Linux Instance at Launch</a> (Linux) and <a href="https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2-instance-metadata.html#instancedata-add-user-data">Adding User Data</a> (Windows).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceInitiatedShutdownBehavior</i> Indicates whether an instance stops or terminates when you initiate shutdown from the instance (using the operating system command for system shutdown). Default: <code>stop</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DisableApiTermination</i> If you set this parameter to <code>true</code>, you can't terminate the instance using the Amazon EC2 console, CLI, or API; otherwise, you can. To change this attribute after launch, use <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyInstanceAttribute.html">ModifyInstanceAttribute</a>. Alternatively, if you set <code>InstanceInitiatedShutdownBehavior</code> to <code>terminate</code>, you can terminate the instance by running the shutdown command from the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RamDiskId</i> The ID of the RAM disk. <important> We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html">User Provided Kernels</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>. </important><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Placement</i> The placement for the instance.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Placement</b>: The placement for the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Monitoring</i> The monitoring for the instance.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Monitoring</b>: The monitoring for the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KeyName</i> The name of the key pair. You can create a key pair using <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateKeyPair.html">CreateKeyPair</a> or <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ImportKeyPair.html">ImportKeyPair</a>. <important> If you do not specify a key pair, you can't connect to the instance unless you choose an AMI that is configured to allow users another way to log in. </important><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceType</i> The instance type. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html">Instance Types</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImageId</i> The ID of the AMI.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkInterfaces</i> One or more network interfaces. If you specify a network interface, you must specify any security groups and subnets as part of the network interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BlockDeviceMappings</i> The block device mapping.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IamInstanceProfile</i> The name or Amazon Resource Name (ARN) of an IAM instance profile.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>IamInstanceProfile</b>: The name or Amazon Resource Name (ARN) of an IAM instance profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EbsOptimized</i> Indicates whether the instance is optimized for Amazon EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal Amazon EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS-optimized instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KernelId</i> The ID of the kernel. <important> We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html">User Provided Kernels</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>. </important><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the instance profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the instance profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specify <code>true</code> to enable detailed monitoring. Otherwise, basic monitoring is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PartitionNumber</i> The number of the partition the instance should launch in. Valid only if the placement group strategy is set to <code>partition</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HostResourceGroupArn</i> The ARN of the host resource group in which to launch the instances. If you specify a host resource group ARN, omit the <b>Tenancy</b> parameter or set it to <code>host</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SpreadDomain</i> Reserved for future use.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Tenancy</i> The tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HostId</i> The ID of the Dedicated Host for the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>GroupName</i> The name of the placement group for the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Affinity</i> The affinity setting for an instance on a Dedicated Host.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZone</i> The Availability Zone for the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MarketType</i> The market type.<br/>The options for Spot Instances.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SpotOptions</b>: The options for Spot Instances.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CpuCredits</i> The credit option for CPU usage of a T2, T3, or T3a instance. Valid values are <code>standard</code> and <code>unlimited</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ThreadsPerCore</i> The number of threads per CPU core. To disable multithreading for the instance, specify a value of 1. Otherwise, specify the default value of 2.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CoreCount</i> The number of CPU cores for the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CapacityReservationPreference</i> Indicates the instance's Capacity Reservation preferences. Possible preferences include: <ul> <li>  <code>open</code> - The instance can run in any <code>open</code> Capacity Reservation that has matching attributes (instance type, platform, Availability Zone). </li> <li>  <code>none</code> - The instance avoids running in a Capacity Reservation even if one is available. The instance runs in On-Demand capacity. </li> </ul><br/>Information about the target Capacity Reservation or Capacity Reservation group.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CapacityReservationTarget</b>: Information about the target Capacity Reservation or Capacity Reservation group.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Configured</i> If you set this parameter to <code>true</code>, the instance is enabled for hibernation. Default: <code>false</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HttpEndpoint</i> This parameter enables or disables the HTTP metadata endpoint on your instances. If the parameter is not specified, the default state is <code>enabled</code>. <note> If you specify a value of <code>disabled</code>, you will not be able to access your instance metadata.  </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HttpPutResponseHopLimit</i> The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Default: 1 Possible values: Integers from 1 to 64<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HttpTokens</i> The state of token usage for your instance metadata requests. If the parameter is not specified in the request, the default state is <code>optional</code>. If the state is <code>optional</code>, you can choose to retrieve instance metadata with or without a signed token header on your request. If you retrieve the IAM role credentials without a token, the version 1.0 role credentials are returned. If you retrieve the IAM role credentials using a valid signed token, the version 2.0 role credentials are returned. If the state is <code>required</code>, you must send a signed token header with any instance metadata retrieval requests. In this state, retrieving the IAM role credentials always returns the version 2.0 credentials; the version 1.0 credentials are not available.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> To enable the instance for AWS Nitro Enclaves, set this parameter to <code>true</code>.<br/>
        :return: Warning:  If the new version of the launch template contains parameters or parameter combinations that are not valid, an error code and an error message are returned for each issue that's found.:<br/>LaunchTemplateVersion:  Information about the launch template version.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LaunchTemplateData</i> Information about the launch template.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>LaunchTemplateData</b>: Information about the launch template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultVersion</i> Indicates whether the version is the default version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedBy</i> The principal that created the version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreateTime</i> The time the version was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VersionDescription</i> The description for the version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VersionNumber</i> The version number.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LaunchTemplateName</i> The name of the launch template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LaunchTemplateId</i> The ID of the launch template.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EbsOptimized</i> Indicates whether the instance is optimized for Amazon EBS I/O. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KernelId</i> The ID of the kernel, if applicable.<br/>The IAM instance profile.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>IamInstanceProfile</b>: The IAM instance profile.&nbsp;&nbsp;&nbsp;&nbsp; <i>Errors</i> The error codes and error messages.<br/>        """
        pass

    def create_local_gateway_route(self, LocalGatewayVirtualInterfaceGroupId: str, LocalGatewayRouteTableId: str, DestinationCidrBlock: str, DryRun: Boolean=None) -> CreateLocalGatewayRouteResult:
        r"""Creates a static route for the specified local gateway route table.

        :param self:
        :param LocalGatewayVirtualInterfaceGroupId:  The ID of the virtual interface group.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>LocalGatewayRouteTableId:  The ID of the local gateway route table.<br/>DestinationCidrBlock:  The CIDR range used for destination matches. Routing decisions are based on the most specific match.<br/>
        :return: Route:  Information about the route.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> The AWS account ID that owns the local gateway route.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LocalGatewayRouteTableArn</i> The Amazon Resource Name (ARN) of the local gateway route table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LocalGatewayRouteTableId</i> The ID of the local gateway route table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the route.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The route type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LocalGatewayVirtualInterfaceGroupId</i> The ID of the virtual interface group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DestinationCidrBlock</i> The CIDR block used for destination matches.<br/>        """
        pass

    def create_local_gateway_route_table_vpc_association(self, VpcId: str, LocalGatewayRouteTableId: str, TagSpecifications: List[TagSpecification]=None, DryRun: Boolean=None) -> CreateLocalGatewayRouteTableVpcAssociationResult:
        r"""Associates the specified VPC with the specified local gateway route table.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>TagSpecifications:  The tags to assign to the local gateway route table VPC association.<br/>VpcId:  The ID of the VPC.<br/>LocalGatewayRouteTableId:  The ID of the local gateway route table.<br/>
        :return: LocalGatewayRouteTableVpcAssociation:  Information about the association.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The tags assigned to the association.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the association.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> The AWS account ID that owns the local gateway route table for the association.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The ID of the VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LocalGatewayId</i> The ID of the local gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LocalGatewayRouteTableArn</i> The Amazon Resource Name (ARN) of the local gateway route table for the association.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LocalGatewayRouteTableId</i> The ID of the local gateway route table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LocalGatewayRouteTableVpcAssociationId</i> The ID of the association.<br/>        """
        pass

    def create_managed_prefix_list(self, AddressFamily: str, MaxEntries: int, PrefixListName: str, DryRun: Boolean=None, Entries: List[AddPrefixListEntry]=None, TagSpecifications: List[TagSpecification]=None, ClientToken: str=None) -> CreateManagedPrefixListResult:
        r"""Creates a managed prefix list. You can specify one or more entries for the prefix list. Each entry consists of a CIDR block and an optional description. You must specify the maximum number of entries for the prefix list. The maximum number of entries cannot be changed later.

        :param self:
        :param ClientToken:  Unique, case-sensitive identifier you provide to ensure the idempotency of the request. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html">Ensuring Idempotency</a>. Constraints: Up to 255 UTF-8 characters in length.<br/>AddressFamily:  The IP address type. Valid Values: <code>IPv4</code> | <code>IPv6</code> <br/>TagSpecifications:  The tags to apply to the prefix list during creation.<br/>MaxEntries:  The maximum number of entries for the prefix list.<br/>Entries:  One or more entries for the prefix list.<br/>PrefixListName:  A name for the prefix list. Constraints: Up to 255 characters in length. The name cannot start with <code>com.amazonaws</code>.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: PrefixList:  Information about the prefix list.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> The ID of the owner of the prefix list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The tags for the prefix list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The version of the prefix list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxEntries</i> The maximum number of entries for the prefix list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PrefixListName</i> The name of the prefix list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PrefixListArn</i> The Amazon Resource Name (ARN) for the prefix list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StateMessage</i> The state message.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the prefix list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AddressFamily</i> The IP address version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PrefixListId</i> The ID of the prefix list.<br/>        """
        pass

    def create_nat_gateway(self, SubnetId: str, AllocationId: str=None, ClientToken: str=None, DryRun: Boolean=None, TagSpecifications: List[TagSpecification]=None, ConnectivityType: str=None) -> CreateNatGatewayResult:
        r"""Creates a NAT gateway in the specified subnet. This action creates a network interface in the specified subnet with a private IP address from the IP address range of the subnet. You can create either a public NAT gateway or a private NAT gateway. With a public NAT gateway, internet-bound traffic from a private subnet can be routed to the NAT gateway, so that instances in a private subnet can connect to the internet. With a private NAT gateway, private communication is routed across VPCs and on-premises networks through a transit gateway or virtual private gateway. Common use cases include running large workloads behind a small pool of allowlisted IPv4 addresses, preserving private IPv4 addresses, and communicating between overlapping networks. For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html">NAT Gateways</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.

        :param self:
        :param ConnectivityType:  Indicates whether the NAT gateway supports public or private connectivity. The default is public connectivity.<br/>TagSpecifications:  The tags to assign to the NAT gateway.<br/>SubnetId:  The subnet in which to create the NAT gateway.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>ClientToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html">How to Ensure Idempotency</a>. Constraint: Maximum 64 ASCII characters.<br/>AllocationId:  [Public NAT gateways only] The allocation ID of an Elastic IP address to associate with the NAT gateway. You cannot specify an Elastic IP address with a private NAT gateway. If the Elastic IP address is associated with another resource, you must first disassociate it.<br/>
        :return: NatGateway:  Information about the NAT gateway.:<br/>ClientToken:  Unique, case-sensitive identifier to ensure the idempotency of the request. Only returned if a client token was provided in the request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConnectivityType</i> Indicates whether the NAT gateway supports public or private connectivity.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The tags for the NAT gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The ID of the VPC in which the NAT gateway is located.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetId</i> The ID of the subnet in which the NAT gateway is located.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the NAT gateway. <ul> <li>  <code>pending</code>: The NAT gateway is being created and is not ready to process traffic. </li> <li>  <code>failed</code>: The NAT gateway could not be created. Check the <code>failureCode</code> and <code>failureMessage</code> fields for the reason. </li> <li>  <code>available</code>: The NAT gateway is able to process traffic. This status remains until you delete the NAT gateway, and does not indicate the health of the NAT gateway. </li> <li>  <code>deleting</code>: The NAT gateway is in the process of being terminated and may still be processing traffic. </li> <li>  <code>deleted</code>: The NAT gateway has been terminated and is no longer processing traffic. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProvisionedBandwidth</i> Reserved. If you need to sustain traffic greater than the <a href="https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html">documented limits</a>, contact us through the <a href="https://console.aws.amazon.com/support/home?">Support Center</a>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ProvisionedBandwidth</b>: Reserved. If you need to sustain traffic greater than the <a href="https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html">documented limits</a>, contact us through the <a href="https://console.aws.amazon.com/support/home?">Support Center</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NatGatewayId</i> The ID of the NAT gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NatGatewayAddresses</i> Information about the IP addresses and network interface associated with the NAT gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FailureMessage</i> If the NAT gateway could not be created, specifies the error message for the failure, that corresponds to the error code. <ul> <li> For InsufficientFreeAddressesInSubnet: "Subnet has insufficient free addresses to create this NAT gateway" </li> <li> For Gateway.NotAttached: "Network vpc-xxxxxxxx has no Internet gateway attached" </li> <li> For InvalidAllocationID.NotFound: "Elastic IP address eipalloc-xxxxxxxx could not be associated with this NAT gateway" </li> <li> For Resource.AlreadyAssociated: "Elastic IP address eipalloc-xxxxxxxx is already associated" </li> <li> For InternalError: "Network interface eni-xxxxxxxx, created and used internally by this NAT gateway is in an invalid state. Please try again." </li> <li> For InvalidSubnetID.NotFound: "The specified subnet subnet-xxxxxxxx does not exist or could not be found." </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FailureCode</i> If the NAT gateway could not be created, specifies the error code for the failure. (<code>InsufficientFreeAddressesInSubnet</code> | <code>Gateway.NotAttached</code> | <code>InvalidAllocationID.NotFound</code> | <code>Resource.AlreadyAssociated</code> | <code>InternalError</code> | <code>InvalidSubnetID.NotFound</code>)<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeleteTime</i> The date and time the NAT gateway was deleted, if applicable.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreateTime</i> The date and time the NAT gateway was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Reserved. If you need to sustain traffic greater than the <a href="https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html">documented limits</a>, contact us through the <a href="https://console.aws.amazon.com/support/home?">Support Center</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Requested</i> Reserved. If you need to sustain traffic greater than the <a href="https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html">documented limits</a>, contact us through the <a href="https://console.aws.amazon.com/support/home?">Support Center</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RequestTime</i> Reserved. If you need to sustain traffic greater than the <a href="https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html">documented limits</a>, contact us through the <a href="https://console.aws.amazon.com/support/home?">Support Center</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Provisioned</i> Reserved. If you need to sustain traffic greater than the <a href="https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html">documented limits</a>, contact us through the <a href="https://console.aws.amazon.com/support/home?">Support Center</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ProvisionTime</i> Reserved. If you need to sustain traffic greater than the <a href="https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html">documented limits</a>, contact us through the <a href="https://console.aws.amazon.com/support/home?">Support Center</a>.<br/>        """
        pass

    def create_network_acl(self, VpcId: str, DryRun: Boolean=None, TagSpecifications: List[TagSpecification]=None) -> CreateNetworkAclResult:
        r"""Creates a network ACL in a VPC. Network ACLs provide an optional layer of security (in addition to security groups) for the instances in your VPC. For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_ACLs.html">Network ACLs</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.

        :param self:
        :param TagSpecifications:  The tags to assign to the network ACL.<br/>VpcId:  The ID of the VPC.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: NetworkAcl:  Information about the network ACL.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> The ID of the AWS account that owns the network ACL.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The ID of the VPC for the network ACL.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> Any tags assigned to the network ACL.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkAclId</i> The ID of the network ACL.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsDefault</i> Indicates whether this is the default network ACL for the VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Entries</i> One or more entries (rules) in the network ACL.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Associations</i> Any associations between the network ACL and one or more subnets<br/>        """
        pass

    def create_network_acl_entry(self, RuleNumber: int, RuleAction: str, Protocol: str, NetworkAclId: str, Egress: Boolean, CidrBlock: str=None, DryRun: Boolean=None, IcmpTypeCode: IcmpTypeCode=None, Ipv6CidrBlock: str=None, PortRange: PortRange=None):
        r"""Creates an entry (a rule) in a network ACL with the specified rule number. Each network ACL has a set of numbered ingress rules and a separate set of numbered egress rules. When determining whether a packet should be allowed in or out of a subnet associated with the ACL, we process the entries in the ACL according to the rule numbers, in ascending order. Each network ACL has a set of ingress rules and a separate set of egress rules. We recommend that you leave room between the rule numbers (for example, 100, 110, 120, ...), and not number them one right after the other (for example, 101, 102, 103, ...). This makes it easier to add a rule between existing ones without having to renumber the rules. After you add an entry, you can't modify it; you must either replace it, or create an entry and delete the old one. For more information about network ACLs, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_ACLs.html">Network ACLs</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.

        :param self:
        :param RuleNumber:  The rule number for the entry (for example, 100). ACL entries are processed in ascending order by rule number. Constraints: Positive integer from 1 to 32766. The range 32767 to 65535 is reserved for internal use.<br/>RuleAction:  Indicates whether to allow or deny the traffic that matches the rule.<br/>Protocol:  The protocol number. A value of "-1" means all protocols. If you specify "-1" or a protocol number other than "6" (TCP), "17" (UDP), or "1" (ICMP), traffic on all ports is allowed, regardless of any ports or ICMP types or codes that you specify. If you specify protocol "58" (ICMPv6) and specify an IPv4 CIDR block, traffic for all ICMP types and codes allowed, regardless of any that you specify. If you specify protocol "58" (ICMPv6) and specify an IPv6 CIDR block, you must specify an ICMP type and code.<br/>PortRange:  TCP or UDP protocols: The range of ports the rule applies to. Required if specifying protocol 6 (TCP) or 17 (UDP).:<br/>NetworkAclId:  The ID of the network ACL.<br/>Ipv6CidrBlock:  The IPv6 network range to allow or deny, in CIDR notation (for example <code>2001:db8:1234:1a00::/64</code>).<br/>IcmpTypeCode:  ICMP protocol: The ICMP or ICMPv6 type and code. Required if specifying protocol 1 (ICMP) or protocol 58 (ICMPv6) with an IPv6 CIDR block.:<br/>Egress:  Indicates whether this is an egress rule (rule is applied to traffic leaving the subnet).<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>CidrBlock:  The IPv4 network range to allow or deny, in CIDR notation (for example <code>172.16.0.0/24</code>). We modify the specified CIDR block to its canonical form; for example, if you specify <code>100.68.0.18/18</code>, we modify it to <code>100.68.0.0/18</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The ICMP type. A value of -1 means all types.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Code</i> The ICMP code. A value of -1 means all codes for the specified ICMP type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>To</i> The last port in the range.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>From</i> The first port in the range.<br/>
        :return:         """
        pass

    def create_network_insights_path(self, ClientToken: str, Protocol: str, Destination: str, Source: str, SourceIp: str=None, DestinationIp: str=None, DestinationPort: int=None, TagSpecifications: List[TagSpecification]=None, DryRun: Boolean=None) -> CreateNetworkInsightsPathResult:
        r"""Creates a path to analyze for reachability. Reachability Analyzer enables you to analyze and debug network reachability between two resources in your virtual private cloud (VPC). For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/reachability/">What is Reachability Analyzer</a>.

        :param self:
        :param ClientToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html">How to Ensure Idempotency</a>.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>TagSpecifications:  The tags to add to the path.<br/>DestinationPort:  The destination port.<br/>Protocol:  The protocol.<br/>Destination:  The AWS resource that is the destination of the path.<br/>Source:  The AWS resource that is the source of the path.<br/>DestinationIp:  The IP address of the AWS resource that is the destination of the path.<br/>SourceIp:  The IP address of the AWS resource that is the source of the path.<br/>
        :return: NetworkInsightsPath:  Information about the path.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The tags associated with the path.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DestinationPort</i> The destination port.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Protocol</i> The protocol.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DestinationIp</i> The IP address of the AWS resource that is the destination of the path.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceIp</i> The IP address of the AWS resource that is the source of the path.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Destination</i> The AWS resource that is the destination of the path.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Source</i> The AWS resource that is the source of the path.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedDate</i> The time stamp when the path was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkInsightsPathArn</i> The Amazon Resource Name (ARN) of the path.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkInsightsPathId</i> The ID of the path.<br/>        """
        pass

    def create_network_interface(self, SubnetId: str, Description: str=None, DryRun: Boolean=None, Groups: List[SecurityGroupId]=None, Ipv6AddressCount: int=None, Ipv6Addresses: List[InstanceIpv6Address]=None, PrivateIpAddress: str=None, PrivateIpAddresses: List[PrivateIpAddressSpecification]=None, SecondaryPrivateIpAddressCount: int=None, InterfaceType: str=None, TagSpecifications: List[TagSpecification]=None, ClientToken: str=None) -> CreateNetworkInterfaceResult:
        r"""Creates a network interface in the specified subnet. For more information about network interfaces, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html">Elastic Network Interfaces</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.

        :param self:
        :param ClientToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html">Ensuring Idempotency</a>.<br/>TagSpecifications:  The tags to apply to the new network interface.<br/>SubnetId:  The ID of the subnet to associate with the network interface.<br/>InterfaceType:  Indicates the type of network interface. To create an Elastic Fabric Adapter (EFA), specify <code>efa</code>. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html"> Elastic Fabric Adapter</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>. To create a trunk network interface, specify <code>efa</code>. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/eni-trunking.html"> Network interface trunking</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.<br/>SecondaryPrivateIpAddressCount:  The number of secondary private IPv4 addresses to assign to a network interface. When you specify a number of secondary IPv4 addresses, Amazon EC2 selects these IP addresses within the subnet's IPv4 CIDR range. You can't specify this option and specify more than one private IP address using <code>privateIpAddresses</code>. The number of IP addresses you can assign to a network interface varies by instance type. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html#AvailableIpPerENI">IP Addresses Per ENI Per Instance Type</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.<br/>PrivateIpAddresses:  One or more private IPv4 addresses.<br/>PrivateIpAddress:  The primary private IPv4 address of the network interface. If you don't specify an IPv4 address, Amazon EC2 selects one for you from the subnet's IPv4 CIDR range. If you specify an IP address, you cannot indicate any IP addresses specified in <code>privateIpAddresses</code> as primary (only one IP address can be designated as primary).<br/>Ipv6Addresses:  One or more specific IPv6 addresses from the IPv6 CIDR block range of your subnet. You can't use this option if you're specifying a number of IPv6 addresses.<br/>Ipv6AddressCount:  The number of IPv6 addresses to assign to a network interface. Amazon EC2 automatically selects the IPv6 addresses from the subnet range. You can't use this option if specifying specific IPv6 addresses. If your subnet has the <code>AssignIpv6AddressOnCreation</code> attribute set to <code>true</code>, you can specify <code>0</code> to override this setting.<br/>Groups:  The IDs of one or more security groups.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>Description:  A description for the network interface.<br/>
        :return: ClientToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>NetworkInterface:  Information about the network interface.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The ID of the VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TagSet</i> Any tags assigned to the network interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetId</i> The ID of the subnet.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the network interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceDestCheck</i> Indicates whether source/destination checking is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequesterManaged</i> Indicates whether the network interface is being managed by Amazon Web Services.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequesterId</i> The alias or account ID of the principal or service that created the network interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PrivateIpAddresses</i> The private IPv4 addresses associated with the network interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PrivateIpAddress</i> The IPv4 address of the network interface within the subnet.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PrivateDnsName</i> The private DNS name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> The account ID of the owner of the network interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OutpostArn</i> The Amazon Resource Name (ARN) of the Outpost.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkInterfaceId</i> The ID of the network interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MacAddress</i> The MAC address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Ipv6Addresses</i> The IPv6 addresses associated with the network interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InterfaceType</i> The type of network interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Groups</i> Any security groups for the network interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A description.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZone</i> The Availability Zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Attachment</i> The network interface attachment.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Attachment</b>: The network interface attachment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Association</i> The association information for an Elastic IP address (IPv4) associated with the network interface.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Association</b>: The association information for an Elastic IP address (IPv4) associated with the network interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CarrierIp</i> The carrier IP address associated with the network interface. This option is only available when the network interface is in a subnet which is associated with a Wavelength Zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomerOwnedIp</i> The customer-owned IP address associated with the network interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PublicIp</i> The address of the Elastic IP address bound to the network interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PublicDnsName</i> The public DNS name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IpOwnerId</i> The ID of the Elastic IP address owner.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociationId</i> The association ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AllocationId</i> The allocation ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The attachment state.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceOwnerId</i> The account ID of the owner of the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceId</i> The ID of the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkCardIndex</i> The index of the network card.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DeviceIndex</i> The device index of the network interface attachment on the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DeleteOnTermination</i> Indicates whether the network interface is deleted when the instance is terminated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AttachmentId</i> The ID of the network interface attachment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AttachTime</i> The timestamp indicating when the attachment initiated.<br/>        """
        pass

    def create_network_interface_permission(self, Permission: str, NetworkInterfaceId: str, AwsAccountId: str=None, AwsService: str=None, DryRun: Boolean=None) -> CreateNetworkInterfacePermissionResult:
        r"""Grants an Amazon Web Services-authorized account permission to attach the specified network interface to an instance in their account. You can grant permission to a single account only, and only one account at a time.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>Permission:  The type of permission to grant.<br/>AwsService:  The Amazon Web Service. Currently not supported.<br/>AwsAccountId:  The account ID.<br/>NetworkInterfaceId:  The ID of the network interface.<br/>
        :return: InterfacePermission:  Information about the permission for the network interface.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PermissionState</i> Information about the state of the permission.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PermissionState</b>: Information about the state of the permission.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Permission</i> The type of permission.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AwsService</i> The Amazon Web Service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AwsAccountId</i> The account ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkInterfaceId</i> The ID of the network interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkInterfacePermissionId</i> The ID of the network interface permission.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusMessage</i> A status message, if applicable.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the permission.<br/>        """
        pass

    def create_placement_group(self, DryRun: Boolean=None, GroupName: str=None, Strategy: str=None, PartitionCount: int=None, TagSpecifications: List[TagSpecification]=None) -> CreatePlacementGroupResult:
        r"""Creates a placement group in which to launch instances. The strategy of the placement group determines how the instances are organized within the group.  A <code>cluster</code> placement group is a logical grouping of instances within a single Availability Zone that benefit from low network latency, high network throughput. A <code>spread</code> placement group places instances on distinct hardware. A <code>partition</code> placement group places groups of instances in different partitions, where instances in one partition do not share the same hardware with instances in another partition. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html">Placement groups</a> in the <i>Amazon EC2 User Guide</i>.

        :param self:
        :param TagSpecifications:  The tags to apply to the new placement group.<br/>PartitionCount:  The number of partitions. Valid only when <b>Strategy</b> is set to <code>partition</code>.<br/>Strategy:  The placement strategy.<br/>GroupName:  A name for the placement group. Must be unique within the scope of your account for the Region. Constraints: Up to 255 ASCII characters<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: PlacementGroup:  Describes a placement group.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> Any tags applied to the placement group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GroupId</i> The ID of the placement group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PartitionCount</i> The number of partitions. Valid only if <b>strategy</b> is set to <code>partition</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Strategy</i> The placement strategy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the placement group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GroupName</i> The name of the placement group.<br/>        """
        pass

    def create_replace_root_volume_task(self, InstanceId: str, SnapshotId: str=None, ClientToken: str=None, DryRun: Boolean=None, TagSpecifications: List[TagSpecification]=None) -> CreateReplaceRootVolumeTaskResult:
        r"""Creates a root volume replacement task for an Amazon EC2 instance. The root volume can either be restored to its initial launch state, or it can be restored using a specific snapshot. For more information, see <a href="https://docs.aws.amazon.com/">Replace a root volume</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.

        :param self:
        :param TagSpecifications:  The tags to apply to the root volume replacement task.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>ClientToken:  Unique, case-sensitive identifier you provide to ensure the idempotency of the request. If you do not specify a client token, a randomly generated token is used for the request to ensure idempotency. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html">Ensuring Idempotency</a>.<br/>SnapshotId:  The ID of the snapshot from which to restore the replacement root volume. If you want to restore the volume to the initial launch state, omit this parameter.<br/>InstanceId:  The ID of the instance for which to replace the root volume.<br/>
        :return: ReplaceRootVolumeTask:  Information about the root volume replacement task.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The tags assigned to the task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CompleteTime</i> The time the task completed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StartTime</i> The time the task was started.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TaskState</i> The state of the task. The task can be in one of the following states: <ul> <li>  <code>pending</code> - the replacement volume is being created. </li> <li>  <code>in-progress</code> - the original volume is being detached and the replacement volume is being attached. </li> <li>  <code>succeeded</code> - the replacement volume has been successfully attached to the instance and the instance is available. </li> <li>  <code>failing</code> - the replacement task is in the process of failing. </li> <li>  <code>failed</code> - the replacement task has failed but the original root volume is still attached. </li> <li>  <code>failing-detached</code> - the replacement task is in the process of failing. The instance might have no root volume attached. </li> <li>  <code>failed-detached</code> - the replacement task has failed and the instance has no root volume attached. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceId</i> The ID of the instance for which the root volume replacement task was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplaceRootVolumeTaskId</i> The ID of the root volume replacement task.<br/>        """
        pass

    def create_reserved_instances_listing(self, ReservedInstancesId: str, PriceSchedules: List[PriceScheduleSpecification], InstanceCount: int, ClientToken: str) -> CreateReservedInstancesListingResult:
        r"""Creates a listing for Amazon EC2 Standard Reserved Instances to be sold in the Reserved Instance Marketplace. You can submit one Standard Reserved Instance listing at a time. To get a list of your Standard Reserved Instances, you can use the <a>DescribeReservedInstances</a> operation. <note> Only Standard Reserved Instances can be sold in the Reserved Instance Marketplace. Convertible Reserved Instances cannot be sold. </note> The Reserved Instance Marketplace matches sellers who want to resell Standard Reserved Instance capacity that they no longer need with buyers who want to purchase additional capacity. Reserved Instances bought and sold through the Reserved Instance Marketplace work like any other Reserved Instances. To sell your Standard Reserved Instances, you must first register as a seller in the Reserved Instance Marketplace. After completing the registration process, you can create a Reserved Instance Marketplace listing of some or all of your Standard Reserved Instances, and specify the upfront price to receive for them. Your Standard Reserved Instance listings then become available for purchase. To view the details of your Standard Reserved Instance listing, you can use the <a>DescribeReservedInstancesListings</a> operation. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-market-general.html">Reserved Instance Marketplace</a> in the <i>Amazon EC2 User Guide</i>.

        :param self:
        :param ReservedInstancesId:  The ID of the active Standard Reserved Instance.<br/>PriceSchedules:  A list specifying the price of the Standard Reserved Instance for each month remaining in the Reserved Instance term.<br/>InstanceCount:  The number of instances that are a part of a Reserved Instance account to be listed in the Reserved Instance Marketplace. This number should be less than or equal to the instance count associated with the Reserved Instance ID specified in this call.<br/>ClientToken:  Unique, case-sensitive identifier you provide to ensure idempotency of your listings. This helps avoid duplicate listings. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html">Ensuring Idempotency</a>.<br/>
        :return: ReservedInstancesListings:  Information about the Standard Reserved Instance listing.<br/>        """
        pass

    def create_restore_image_task(self, ObjectKey: str, Bucket: str, Name: str=None, TagSpecifications: List[TagSpecification]=None, DryRun: Boolean=None) -> CreateRestoreImageTaskResult:
        r"""Starts a task that restores an AMI from an S3 object that was previously created by using <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateStoreImageTask.html">CreateStoreImageTask</a>. To use this API, you must have the required permissions. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-store-restore.html#ami-s3-permissions">Permissions for storing and restoring AMIs using S3</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-store-restore.html">Store and restore an AMI using S3</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>TagSpecifications:  The tags to apply to the AMI and snapshots on restoration. You can tag the AMI, the snapshots, or both. <ul> <li> To tag the AMI, the value for <code>ResourceType</code> must be <code>image</code>. </li> <li> To tag the snapshots, the value for <code>ResourceType</code> must be <code>snapshot</code>. The same tag is applied to all of the snapshots that are created. </li> </ul><br/>Name:  The name for the restored AMI. The name must be unique for AMIs in the Region for this account. If you do not provide a name, the new AMI gets the same name as the original AMI.<br/>ObjectKey:  The name of the stored AMI object in the bucket.<br/>Bucket:  The name of the S3 bucket that contains the stored AMI object.<br/>
        :return: ImageId:  The AMI ID.<br/>        """
        pass

    def create_route(self, RouteTableId: str, DestinationCidrBlock: str=None, DestinationIpv6CidrBlock: str=None, DestinationPrefixListId: str=None, DryRun: Boolean=None, VpcEndpointId: str=None, EgressOnlyInternetGatewayId: str=None, GatewayId: str=None, InstanceId: str=None, NatGatewayId: str=None, TransitGatewayId: str=None, LocalGatewayId: str=None, CarrierGatewayId: str=None, NetworkInterfaceId: str=None, VpcPeeringConnectionId: str=None) -> CreateRouteResult:
        r"""Creates a route in a route table within a VPC. You must specify one of the following targets: internet gateway or virtual private gateway, NAT instance, NAT gateway, VPC peering connection, network interface, egress-only internet gateway, or transit gateway. When determining how to route traffic, we use the route with the most specific match. For example, traffic is destined for the IPv4 address <code>192.0.2.3</code>, and the route table includes the following two IPv4 routes: <ul> <li>  <code>192.0.2.0/24</code> (goes to some target A) </li> <li>  <code>192.0.2.0/28</code> (goes to some target B) </li> </ul> Both routes apply to the traffic destined for <code>192.0.2.3</code>. However, the second route in the list covers a smaller number of IP addresses and is therefore more specific, so we use that route to determine where to target the traffic. For more information about route tables, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html">Route Tables</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.

        :param self:
        :param VpcPeeringConnectionId:  The ID of a VPC peering connection.<br/>RouteTableId:  The ID of the route table for the route.<br/>NetworkInterfaceId:  The ID of a network interface.<br/>CarrierGatewayId:  The ID of the carrier gateway. You can only use this option when the VPC contains a subnet which is associated with a Wavelength Zone.<br/>LocalGatewayId:  The ID of the local gateway.<br/>TransitGatewayId:  The ID of a transit gateway.<br/>NatGatewayId:  [IPv4 traffic only] The ID of a NAT gateway.<br/>InstanceId:  The ID of a NAT instance in your VPC. The operation fails if you specify an instance ID unless exactly one network interface is attached.<br/>GatewayId:  The ID of an internet gateway or virtual private gateway attached to your VPC.<br/>EgressOnlyInternetGatewayId:  [IPv6 traffic only] The ID of an egress-only internet gateway.<br/>VpcEndpointId:  The ID of a VPC endpoint. Supported for Gateway Load Balancer endpoints only.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>DestinationPrefixListId:  The ID of a prefix list used for the destination match.<br/>DestinationIpv6CidrBlock:  The IPv6 CIDR block used for the destination match. Routing decisions are based on the most specific match.<br/>DestinationCidrBlock:  The IPv4 CIDR address block used for the destination match. Routing decisions are based on the most specific match. We modify the specified CIDR block to its canonical form; for example, if you specify <code>100.68.0.18/18</code>, we modify it to <code>100.68.0.0/18</code>.<br/>
        :return: Return:  Returns <code>true</code> if the request succeeds; otherwise, it returns an error.<br/>        """
        pass

    def create_route_table(self, VpcId: str, DryRun: Boolean=None, TagSpecifications: List[TagSpecification]=None) -> CreateRouteTableResult:
        r"""Creates a route table for the specified VPC. After you create a route table, you can add routes and associate the table with a subnet. For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html">Route Tables</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.

        :param self:
        :param TagSpecifications:  The tags to assign to the route table.<br/>VpcId:  The ID of the VPC.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: RouteTable:  Information about the route table.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> The ID of the AWS account that owns the route table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The ID of the VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> Any tags assigned to the route table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Routes</i> The routes in the route table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RouteTableId</i> The ID of the route table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PropagatingVgws</i> Any virtual private gateway (VGW) propagating routes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Associations</i> The associations between the route table and one or more subnets or a gateway.<br/>        """
        pass

    def create_security_group(self, GroupName: str, Description: str, VpcId: str=None, TagSpecifications: List[TagSpecification]=None, DryRun: Boolean=None) -> CreateSecurityGroupResult:
        r"""Creates a security group. A security group acts as a virtual firewall for your instance to control inbound and outbound traffic. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html">Amazon EC2 Security Groups</a> in the <i>Amazon Elastic Compute Cloud User Guide</i> and <a href="https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_SecurityGroups.html">Security Groups for Your VPC</a> in the <i>Amazon Virtual Private Cloud User Guide</i>. When you create a security group, you specify a friendly name of your choice. You can have a security group for use in EC2-Classic with the same name as a security group for use in a VPC. However, you can't have two security groups for use in EC2-Classic with the same name or two security groups for use in a VPC with the same name. You have a default security group for use in EC2-Classic and a default security group for use in your VPC. If you don't specify a security group when you launch an instance, the instance is launched into the appropriate default security group. A default security group includes a default rule that grants instances unrestricted network access to each other. You can add or remove rules from your security groups using <a>AuthorizeSecurityGroupIngress</a>, <a>AuthorizeSecurityGroupEgress</a>, <a>RevokeSecurityGroupIngress</a>, and <a>RevokeSecurityGroupEgress</a>. For more information about VPC security group limits, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/amazon-vpc-limits.html">Amazon VPC Limits</a>.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>TagSpecifications:  The tags to assign to the security group.<br/>VpcId:  [EC2-VPC] The ID of the VPC. Required for EC2-VPC.<br/>GroupName:  The name of the security group. Constraints: Up to 255 characters in length. Cannot start with <code>sg-</code>. Constraints for EC2-Classic: ASCII characters Constraints for EC2-VPC: a-z, A-Z, 0-9, spaces, and ._-:/()#,@[]+=&amp;;{}!$*<br/>Description:  A description for the security group. This is informational only. Constraints: Up to 255 characters in length Constraints for EC2-Classic: ASCII characters Constraints for EC2-VPC: a-z, A-Z, 0-9, spaces, and ._-:/()#,@[]+=&amp;;{}!$*<br/>
        :return: Tags:  The tags assigned to the security group.<br/>GroupId:  The ID of the security group.<br/>        """
        pass

    def create_snapshot(self, VolumeId: str, Description: str=None, OutpostArn: str=None, TagSpecifications: List[TagSpecification]=None, DryRun: Boolean=None) -> Snapshot:
        r"""Creates a snapshot of an EBS volume and stores it in Amazon S3. You can use snapshots for backups, to make copies of EBS volumes, and to save data before shutting down an instance. You can create snapshots of volumes in a Region and volumes on an Outpost. If you create a snapshot of a volume in a Region, the snapshot must be stored in the same Region as the volume. If you create a snapshot of a volume on an Outpost, the snapshot can be stored on the same Outpost as the volume, or in the Region for that Outpost. When a snapshot is created, any AWS Marketplace product codes that are associated with the source volume are propagated to the snapshot. You can take a snapshot of an attached volume that is in use. However, snapshots only capture data that has been written to your EBS volume at the time the snapshot command is issued; this might exclude any data that has been cached by any applications or the operating system. If you can pause any file systems on the volume long enough to take a snapshot, your snapshot should be complete. However, if you cannot pause all file writes to the volume, you should unmount the volume from within the instance, issue the snapshot command, and then remount the volume to ensure a consistent and complete snapshot. You may remount and use your volume while the snapshot status is <code>pending</code>. To create a snapshot for EBS volumes that serve as root devices, you should stop the instance before taking the snapshot. Snapshots that are taken from encrypted volumes are automatically encrypted. Volumes that are created from encrypted snapshots are also automatically encrypted. Your encrypted volumes and any associated snapshots always remain protected. You can tag your snapshots during creation. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html">Tagging your Amazon EC2 resources</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html">Amazon Elastic Block Store</a> and <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html">Amazon EBS encryption</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>TagSpecifications:  The tags to apply to the snapshot during creation.<br/>VolumeId:  The ID of the EBS volume.<br/>OutpostArn:  The Amazon Resource Name (ARN) of the AWS Outpost on which to create a local snapshot. <ul> <li> To create a snapshot of a volume in a Region, omit this parameter. The snapshot is created in the same Region as the volume. </li> <li> To create a snapshot of a volume on an Outpost and store the snapshot in the Region, omit this parameter. The snapshot is created in the Region for the Outpost. </li> <li> To create a snapshot of a volume on an Outpost and store the snapshot on an Outpost, specify the ARN of the destination Outpost. The snapshot must be created on the same Outpost as the volume. </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/snapshots-outposts.html#create-snapshot"> Creating local snapshots from volumes on an Outpost</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.<br/>Description:  A description for the snapshot.<br/>
        :return: Tags:  Any tags assigned to the snapshot.<br/>OutpostArn:  The ARN of the AWS Outpost on which the snapshot is stored. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/snapshots-outposts.html">EBS Local Snapshot on Outposts</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.<br/>OwnerAlias:  The AWS owner alias, from an Amazon-maintained list (<code>amazon</code>). This is not the user-configured AWS account alias set using the IAM console.<br/>VolumeSize:  The size of the volume, in GiB.<br/>VolumeId:  The ID of the volume that was used to create the snapshot. Snapshots created by the <a>CopySnapshot</a> action have an arbitrary volume ID that should not be used for any purpose.<br/>StateMessage:  Encrypted Amazon EBS snapshots are copied asynchronously. If a snapshot copy operation fails (for example, if the proper AWS Key Management Service (AWS KMS) permissions are not obtained) this field displays error state details to help you diagnose why the error occurred. This parameter is only returned by <a>DescribeSnapshots</a>.<br/>State:  The snapshot state.<br/>StartTime:  The time stamp when the snapshot was initiated.<br/>SnapshotId:  The ID of the snapshot. Each snapshot receives a unique identifier when it is created.<br/>Progress:  The progress of the snapshot, as a percentage.<br/>OwnerId:  The AWS account ID of the EBS snapshot owner.<br/>KmsKeyId:  The Amazon Resource Name (ARN) of the AWS Key Management Service (AWS KMS) customer master key (CMK) that was used to protect the volume encryption key for the parent volume.<br/>Encrypted:  Indicates whether the snapshot is encrypted.<br/>Description:  The description for the snapshot.<br/>DataEncryptionKeyId:  The data encryption key identifier for the snapshot. This value is a unique identifier that corresponds to the data encryption key that was used to encrypt the original volume or snapshot copy. Because data encryption keys are inherited by volumes created from snapshots, and vice versa, if snapshots share the same data encryption key identifier, then they belong to the same volume/snapshot lineage. This parameter is only returned by <a>DescribeSnapshots</a>.<br/>        """
        pass

    def create_snapshots(self, InstanceSpecification: InstanceSpecification, Description: str=None, OutpostArn: str=None, TagSpecifications: List[TagSpecification]=None, DryRun: Boolean=None, CopyTagsFromSource: str=None) -> CreateSnapshotsResult:
        r"""Creates crash-consistent snapshots of multiple EBS volumes and stores the data in S3. Volumes are chosen by specifying an instance. Any attached volumes will produce one snapshot each that is crash-consistent across the instance. Boot volumes can be excluded by changing the parameters.  You can create multi-volume snapshots of instances in a Region and instances on an Outpost. If you create snapshots from an instance in a Region, the snapshots must be stored in the same Region as the instance. If you create snapshots from an instance on an Outpost, the snapshots can be stored on the same Outpost as the instance, or in the Region for that Outpost.

        :param self:
        :param CopyTagsFromSource:  Copies the tags from the specified volume to corresponding snapshot.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>TagSpecifications:  Tags to apply to every snapshot specified by the instance.<br/>OutpostArn:  The Amazon Resource Name (ARN) of the AWS Outpost on which to create the local snapshots. <ul> <li> To create snapshots from an instance in a Region, omit this parameter. The snapshots are created in the same Region as the instance. </li> <li> To create snapshots from an instance on an Outpost and store the snapshots in the Region, omit this parameter. The snapshots are created in the Region for the Outpost. </li> <li> To create snapshots from an instance on an Outpost and store the snapshots on an Outpost, specify the ARN of the destination Outpost. The snapshots must be created on the same Outpost as the instance. </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/snapshots-outposts.html#create-multivol-snapshot"> Creating multi-volume local snapshots from instances on an Outpost</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.<br/>InstanceSpecification:  The instance to specify which volumes should be included in the snapshots.:<br/>Description:   A description propagated to every snapshot specified by the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExcludeBootVolume</i> Excludes the root volume from being snapshotted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceId</i> The instance to specify which volumes should be snapshotted.<br/>
        :return: Snapshots:  List of snapshots.<br/>        """
        pass

    def create_spot_datafeed_subscription(self, Bucket: str, DryRun: Boolean=None, Prefix: str=None) -> CreateSpotDatafeedSubscriptionResult:
        r"""Creates a data feed for Spot Instances, enabling you to view Spot Instance usage logs. You can create one data feed per account. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-data-feeds.html">Spot Instance data feed</a> in the <i>Amazon EC2 User Guide for Linux Instances</i>.

        :param self:
        :param Prefix:  The prefix for the data feed file names.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>Bucket:  The name of the Amazon S3 bucket in which to store the Spot Instance data feed. For more information about bucket names, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.html#bucketnamingrules">Rules for bucket naming</a> in the <i>Amazon S3 Developer Guide</i>.<br/>
        :return: SpotDatafeedSubscription:  The Spot Instance data feed subscription.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the Spot Instance data feed subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Prefix</i> The prefix for the data feed files.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> The account ID of the account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Fault</i> The fault codes for the Spot Instance request, if any.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Fault</b>: The fault codes for the Spot Instance request, if any.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i> The name of the Amazon S3 bucket where the Spot Instance data feed is located.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> The message for the Spot Instance state change.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Code</i> The reason code for the Spot Instance state change.<br/>        """
        pass

    def create_store_image_task(self, Bucket: str, ImageId: str, S3ObjectTags: List[S3ObjectTag]=None, DryRun: Boolean=None) -> CreateStoreImageTaskResult:
        r"""Stores an AMI as a single object in an S3 bucket. To use this API, you must have the required permissions. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-store-restore.html#ami-s3-permissions">Permissions for storing and restoring AMIs using S3</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-store-restore.html">Store and restore an AMI using S3</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>S3ObjectTags:  The tags to apply to the AMI object that will be stored in the S3 bucket. <br/>Bucket:  The name of the S3 bucket in which the AMI object will be stored. The bucket must be in the Region in which the request is being made. The AMI object appears in the bucket only after the upload task has completed. <br/>ImageId:  The ID of the AMI.<br/>
        :return: ObjectKey:  The name of the stored AMI object in the S3 bucket.<br/>        """
        pass

    def create_subnet(self, VpcId: str, CidrBlock: str, TagSpecifications: List[TagSpecification]=None, AvailabilityZone: str=None, AvailabilityZoneId: str=None, Ipv6CidrBlock: str=None, OutpostArn: str=None, DryRun: Boolean=None) -> CreateSubnetResult:
        r"""Creates a subnet in a specified VPC. You must specify an IPv4 CIDR block for the subnet. After you create a subnet, you can't change its CIDR block. The allowed block size is between a /16 netmask (65,536 IP addresses) and /28 netmask (16 IP addresses). The CIDR block must not overlap with the CIDR block of an existing subnet in the VPC. If you've associated an IPv6 CIDR block with your VPC, you can create a subnet with an IPv6 CIDR block that uses a /64 prefix length.  <important> AWS reserves both the first four and the last IPv4 address in each subnet's CIDR block. They're not available for use. </important> If you add more than one subnet to a VPC, they're set up in a star topology with a logical router in the middle. When you stop an instance in a subnet, it retains its private IPv4 address. It's therefore possible to have a subnet with no running instances (they're all stopped), but no remaining IP addresses available. For more information about subnets, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html">Your VPC and Subnets</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>VpcId:  The ID of the VPC.<br/>OutpostArn:  The Amazon Resource Name (ARN) of the Outpost. If you specify an Outpost ARN, you must also specify the Availability Zone of the Outpost subnet.<br/>Ipv6CidrBlock:  The IPv6 network range for the subnet, in CIDR notation. The subnet size must use a /64 prefix length.<br/>CidrBlock:  The IPv4 network range for the subnet, in CIDR notation. For example, <code>10.0.0.0/24</code>. We modify the specified CIDR block to its canonical form; for example, if you specify <code>100.68.0.18/18</code>, we modify it to <code>100.68.0.0/18</code>.<br/>AvailabilityZoneId:  The AZ ID or the Local Zone ID of the subnet.<br/>AvailabilityZone:  The Availability Zone or Local Zone for the subnet. Default: AWS selects one for you. If you create more than one subnet in your VPC, we do not necessarily select a different zone for each subnet. To create a subnet in a Local Zone, set this value to the Local Zone ID, for example <code>us-west-2-lax-1a</code>. For information about the Regions that support Local Zones, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html#concepts-available-regions">Available Regions</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>. To create a subnet in an Outpost, set this value to the Availability Zone for the Outpost and specify the Outpost ARN.<br/>TagSpecifications:  The tags to assign to the subnet.<br/>
        :return: Subnet:  Information about the subnet.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OutpostArn</i> The Amazon Resource Name (ARN) of the Outpost.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetArn</i> The Amazon Resource Name (ARN) of the subnet.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> Any tags assigned to the subnet.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Ipv6CidrBlockAssociationSet</i> Information about the IPv6 CIDR blocks associated with the subnet.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssignIpv6AddressOnCreation</i> Indicates whether a network interface created in this subnet (including a network interface created by <a>RunInstances</a>) receives an IPv6 address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> The ID of the AWS account that owns the subnet.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The ID of the VPC the subnet is in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetId</i> The ID of the subnet.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The current state of the subnet.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomerOwnedIpv4Pool</i> The customer-owned IPv4 address pool associated with the subnet.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MapCustomerOwnedIpOnLaunch</i> Indicates whether a network interface created in this subnet (including a network interface created by <a>RunInstances</a>) receives a customer-owned IPv4 address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MapPublicIpOnLaunch</i> Indicates whether instances launched in this subnet receive a public IPv4 address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultForAz</i> Indicates whether this is the default subnet for the Availability Zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CidrBlock</i> The IPv4 CIDR block assigned to the subnet.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailableIpAddressCount</i> The number of unused private IPv4 addresses in the subnet. The IPv4 addresses for any stopped instances are considered unavailable.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZoneId</i> The AZ ID of the subnet.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZone</i> The Availability Zone of the subnet.<br/>        """
        pass

    def create_tags(self, Tags: List[Tag], Resources: List[TaggableResourceId], DryRun: Boolean=None):
        r"""Adds or overwrites only the specified tags for the specified Amazon EC2 resource or resources. When you specify an existing tag key, the value is overwritten with the new value. Each resource can have a maximum of 50 tags. Each tag consists of a key and optional value. Tag keys must be unique per resource. For more information about tags, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html">Tagging Your Resources</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>. For more information about creating IAM policies that control users' access to resources based on tags, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-supported-iam-actions-resources.html">Supported Resource-Level Permissions for Amazon EC2 API Actions</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.

        :param self:
        :param Tags:  The tags. The <code>value</code> parameter is required, but if you don't want the tag to have a value, specify the parameter with no value, and we set the value to an empty string.<br/>Resources:  The IDs of the resources, separated by spaces. Constraints: Up to 1000 resource IDs. We recommend breaking up this request into smaller batches.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return:         """
        pass

    def create_traffic_mirror_filter(self, Description: str=None, TagSpecifications: List[TagSpecification]=None, DryRun: Boolean=None, ClientToken: str=None) -> CreateTrafficMirrorFilterResult:
        r"""Creates a Traffic Mirror filter. A Traffic Mirror filter is a set of rules that defines the traffic to mirror. By default, no traffic is mirrored. To mirror traffic, use <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTrafficMirrorFilterRule.htm">CreateTrafficMirrorFilterRule</a> to add Traffic Mirror rules to the filter. The rules you add define what traffic gets mirrored. You can also use <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyTrafficMirrorFilterNetworkServices.html">ModifyTrafficMirrorFilterNetworkServices</a> to mirror supported network services.

        :param self:
        :param ClientToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html">How to Ensure Idempotency</a>.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>TagSpecifications:  The tags to assign to a Traffic Mirror filter.<br/>Description:  The description of the Traffic Mirror filter.<br/>
        :return: ClientToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html">How to Ensure Idempotency</a>.<br/>TrafficMirrorFilter:  Information about the Traffic Mirror filter.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The tags assigned to the Traffic Mirror filter.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the Traffic Mirror filter.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkServices</i> The network service traffic that is associated with the Traffic Mirror filter.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EgressFilterRules</i> Information about the egress rules that are associated with the Traffic Mirror filter.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IngressFilterRules</i> Information about the ingress rules that are associated with the Traffic Mirror filter.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TrafficMirrorFilterId</i> The ID of the Traffic Mirror filter.<br/>        """
        pass

    def create_traffic_mirror_filter_rule(self, SourceCidrBlock: str, DestinationCidrBlock: str, RuleAction: str, RuleNumber: int, TrafficDirection: str, TrafficMirrorFilterId: str, DestinationPortRange: TrafficMirrorPortRangeRequest=None, SourcePortRange: TrafficMirrorPortRangeRequest=None, Protocol: int=None, Description: str=None, DryRun: Boolean=None, ClientToken: str=None) -> CreateTrafficMirrorFilterRuleResult:
        r"""Creates a Traffic Mirror filter rule.  A Traffic Mirror rule defines the Traffic Mirror source traffic to mirror. You need the Traffic Mirror filter ID when you create the rule.

        :param self:
        :param ClientToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html">How to Ensure Idempotency</a>.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>Description:  The description of the Traffic Mirror rule.<br/>SourceCidrBlock:  The source CIDR block to assign to the Traffic Mirror rule.<br/>DestinationCidrBlock:  The destination CIDR block to assign to the Traffic Mirror rule.<br/>Protocol:  The protocol, for example UDP, to assign to the Traffic Mirror rule. For information about the protocol value, see <a href="https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml">Protocol Numbers</a> on the Internet Assigned Numbers Authority (IANA) website.<br/>SourcePortRange:  The source port range.:<br/>DestinationPortRange:  The destination port range.:<br/>RuleAction:  The action to take (<code>accept</code> | <code>reject</code>) on the filtered traffic.<br/>RuleNumber:  The number of the Traffic Mirror rule. This number must be unique for each Traffic Mirror rule in a given direction. The rules are processed in ascending order by rule number.<br/>TrafficDirection:  The type of traffic (<code>ingress</code> | <code>egress</code>).<br/>TrafficMirrorFilterId:  The ID of the filter that this rule is associated with.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ToPort</i> The last port in the Traffic Mirror port range. This applies to the TCP and UDP protocols.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FromPort</i> The first port in the Traffic Mirror port range. This applies to the TCP and UDP protocols.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ToPort</i> The last port in the Traffic Mirror port range. This applies to the TCP and UDP protocols.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FromPort</i> The first port in the Traffic Mirror port range. This applies to the TCP and UDP protocols.<br/>
        :return: ClientToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html">How to Ensure Idempotency</a>.<br/>TrafficMirrorFilterRule:  The Traffic Mirror rule.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the Traffic Mirror rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceCidrBlock</i> The source CIDR block assigned to the Traffic Mirror rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DestinationCidrBlock</i> The destination CIDR block assigned to the Traffic Mirror rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourcePortRange</i> The source port range assigned to the Traffic Mirror rule.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SourcePortRange</b>: The source port range assigned to the Traffic Mirror rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DestinationPortRange</i> The destination port range assigned to the Traffic Mirror rule.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DestinationPortRange</b>: The destination port range assigned to the Traffic Mirror rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Protocol</i> The protocol assigned to the Traffic Mirror rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RuleAction</i> The action assigned to the Traffic Mirror rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RuleNumber</i> The rule number of the Traffic Mirror rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TrafficDirection</i> The traffic direction assigned to the Traffic Mirror rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TrafficMirrorFilterId</i> The ID of the Traffic Mirror filter that the rule is associated with.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TrafficMirrorFilterRuleId</i> The ID of the Traffic Mirror rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ToPort</i> The end of the Traffic Mirror port range. This applies to the TCP and UDP protocols.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FromPort</i> The start of the Traffic Mirror port range. This applies to the TCP and UDP protocols.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ToPort</i> The end of the Traffic Mirror port range. This applies to the TCP and UDP protocols.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FromPort</i> The start of the Traffic Mirror port range. This applies to the TCP and UDP protocols.<br/>        """
        pass

    def create_traffic_mirror_session(self, SessionNumber: int, TrafficMirrorFilterId: str, TrafficMirrorTargetId: str, NetworkInterfaceId: str, PacketLength: int=None, VirtualNetworkId: int=None, Description: str=None, TagSpecifications: List[TagSpecification]=None, DryRun: Boolean=None, ClientToken: str=None) -> CreateTrafficMirrorSessionResult:
        r"""Creates a Traffic Mirror session. A Traffic Mirror session actively copies packets from a Traffic Mirror source to a Traffic Mirror target. Create a filter, and then assign it to the session to define a subset of the traffic to mirror, for example all TCP traffic. The Traffic Mirror source and the Traffic Mirror target (monitoring appliances) can be in the same VPC, or in a different VPC connected via VPC peering or a transit gateway.  By default, no traffic is mirrored. Use <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTrafficMirrorFilter.htm">CreateTrafficMirrorFilter</a> to create filter rules that specify the traffic to mirror.

        :param self:
        :param ClientToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html">How to Ensure Idempotency</a>.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>TagSpecifications:  The tags to assign to a Traffic Mirror session.<br/>Description:  The description of the Traffic Mirror session.<br/>VirtualNetworkId:  The VXLAN ID for the Traffic Mirror session. For more information about the VXLAN protocol, see <a href="https://tools.ietf.org/html/rfc7348">RFC 7348</a>. If you do not specify a <code>VirtualNetworkId</code>, an account-wide unique id is chosen at random.<br/>SessionNumber:  The session number determines the order in which sessions are evaluated when an interface is used by multiple sessions. The first session with a matching filter is the one that mirrors the packets. Valid values are 1-32766.<br/>PacketLength:  The number of bytes in each packet to mirror. These are bytes after the VXLAN header. Do not specify this parameter when you want to mirror the entire packet. To mirror a subset of the packet, set this to the length (in bytes) that you want to mirror. For example, if you set this value to 100, then the first 100 bytes that meet the filter criteria are copied to the target. If you do not want to mirror the entire packet, use the <code>PacketLength</code> parameter to specify the number of bytes in each packet to mirror.<br/>TrafficMirrorFilterId:  The ID of the Traffic Mirror filter.<br/>TrafficMirrorTargetId:  The ID of the Traffic Mirror target.<br/>NetworkInterfaceId:  The ID of the source network interface.<br/>
        :return: ClientToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html">How to Ensure Idempotency</a>.<br/>TrafficMirrorSession:  Information about the Traffic Mirror session.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The tags assigned to the Traffic Mirror session.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the Traffic Mirror session.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VirtualNetworkId</i> The virtual network ID associated with the Traffic Mirror session.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SessionNumber</i> The session number determines the order in which sessions are evaluated when an interface is used by multiple sessions. The first session with a matching filter is the one that mirrors the packets. Valid values are 1-32766.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PacketLength</i> The number of bytes in each packet to mirror. These are the bytes after the VXLAN header. To mirror a subset, set this to the length (in bytes) to mirror. For example, if you set this value to 100, then the first 100 bytes that meet the filter criteria are copied to the target. Do not specify this parameter when you want to mirror the entire packet<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> The ID of the account that owns the Traffic Mirror session.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkInterfaceId</i> The ID of the Traffic Mirror session's network interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TrafficMirrorFilterId</i> The ID of the Traffic Mirror filter.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TrafficMirrorTargetId</i> The ID of the Traffic Mirror target.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TrafficMirrorSessionId</i> The ID for the Traffic Mirror session.<br/>        """
        pass

    def create_traffic_mirror_target(self, NetworkInterfaceId: str=None, NetworkLoadBalancerArn: str=None, Description: str=None, TagSpecifications: List[TagSpecification]=None, DryRun: Boolean=None, ClientToken: str=None) -> CreateTrafficMirrorTargetResult:
        r"""Creates a target for your Traffic Mirror session. A Traffic Mirror target is the destination for mirrored traffic. The Traffic Mirror source and the Traffic Mirror target (monitoring appliances) can be in the same VPC, or in different VPCs connected via VPC peering or a transit gateway. A Traffic Mirror target can be a network interface, or a Network Load Balancer. To use the target in a Traffic Mirror session, use <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTrafficMirrorSession.htm">CreateTrafficMirrorSession</a>.

        :param self:
        :param ClientToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html">How to Ensure Idempotency</a>.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>TagSpecifications:  The tags to assign to the Traffic Mirror target.<br/>Description:  The description of the Traffic Mirror target.<br/>NetworkLoadBalancerArn:  The Amazon Resource Name (ARN) of the Network Load Balancer that is associated with the target.<br/>NetworkInterfaceId:  The network interface ID that is associated with the target.<br/>
        :return: ClientToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html">How to Ensure Idempotency</a>.<br/>TrafficMirrorTarget:  Information about the Traffic Mirror target.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The tags assigned to the Traffic Mirror target.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> The ID of the account that owns the Traffic Mirror target.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> Information about the Traffic Mirror target.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of Traffic Mirror target.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkLoadBalancerArn</i> The Amazon Resource Name (ARN) of the Network Load Balancer.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkInterfaceId</i> The network interface ID that is attached to the target.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TrafficMirrorTargetId</i> The ID of the Traffic Mirror target.<br/>        """
        pass

    def create_transit_gateway(self, Description: str=None, Options: TransitGatewayRequestOptions=None, TagSpecifications: List[TagSpecification]=None, DryRun: Boolean=None) -> CreateTransitGatewayResult:
        r"""Creates a transit gateway. You can use a transit gateway to interconnect your virtual private clouds (VPC) and on-premises networks. After the transit gateway enters the <code>available</code> state, you can attach your VPCs and VPN connections to the transit gateway. To attach your VPCs, use <a>CreateTransitGatewayVpcAttachment</a>. To attach a VPN connection, use <a>CreateCustomerGateway</a> to create a customer gateway and specify the ID of the customer gateway and the ID of the transit gateway in a call to <a>CreateVpnConnection</a>. When you create a transit gateway, we create a default transit gateway route table and use it as the default association route table and the default propagation route table. You can use <a>CreateTransitGatewayRouteTable</a> to create additional transit gateway route tables. If you disable automatic route propagation, we do not create a default transit gateway route table. You can use <a>EnableTransitGatewayRouteTablePropagation</a> to propagate routes from a resource attachment to a transit gateway route table. If you disable automatic associations, you can use <a>AssociateTransitGatewayRouteTable</a> to associate a resource attachment with a transit gateway route table.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>TagSpecifications:  The tags to apply to the transit gateway.<br/>Options:  The transit gateway options.:<br/>Description:  A description of the transit gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayCidrBlocks</i> One or more IPv4 or IPv6 CIDR blocks for the transit gateway. Must be a size /24 CIDR block or larger for IPv4, or a size /64 CIDR block or larger for IPv6.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MulticastSupport</i> Indicates whether multicast is enabled on the transit gateway<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DnsSupport</i> Enable or disable DNS support. Enabled by default.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpnEcmpSupport</i> Enable or disable Equal Cost Multipath Protocol support. Enabled by default.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultRouteTablePropagation</i> Enable or disable automatic propagation of routes to the default propagation route table. Enabled by default.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultRouteTableAssociation</i> Enable or disable automatic association with the default association route table. Enabled by default.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoAcceptSharedAttachments</i> Enable or disable automatic acceptance of attachment requests. Disabled by default.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AmazonSideAsn</i> A private Autonomous System Number (ASN) for the Amazon side of a BGP session. The range is 64512 to 65534 for 16-bit ASNs and 4200000000 to 4294967294 for 32-bit ASNs. The default is <code>64512</code>.<br/>
        :return: TransitGateway:  Information about the transit gateway.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The tags for the transit gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Options</i> The transit gateway options.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Options</b>: The transit gateway options.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The creation time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the transit gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> The ID of the AWS account ID that owns the transit gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the transit gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayArn</i> The Amazon Resource Name (ARN) of the transit gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayId</i> The ID of the transit gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MulticastSupport</i> Indicates whether multicast is enabled on the transit gateway<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DnsSupport</i> Indicates whether DNS support is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VpnEcmpSupport</i> Indicates whether Equal Cost Multipath Protocol support is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PropagationDefaultRouteTableId</i> The ID of the default propagation route table.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultRouteTablePropagation</i> Indicates whether resource attachments automatically propagate routes to the default propagation route table.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociationDefaultRouteTableId</i> The ID of the default association route table.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultRouteTableAssociation</i> Indicates whether resource attachments are automatically associated with the default association route table.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoAcceptSharedAttachments</i> Indicates whether attachment requests are automatically accepted.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayCidrBlocks</i> The transit gateway CIDR blocks.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AmazonSideAsn</i> A private Autonomous System Number (ASN) for the Amazon side of a BGP session. The range is 64512 to 65534 for 16-bit ASNs and 4200000000 to 4294967294 for 32-bit ASNs.<br/>        """
        pass

    def create_transit_gateway_connect(self, Options: CreateTransitGatewayConnectRequestOptions, TransportTransitGatewayAttachmentId: str, TagSpecifications: List[TagSpecification]=None, DryRun: Boolean=None) -> CreateTransitGatewayConnectResult:
        r"""Creates a Connect attachment from a specified transit gateway attachment. A Connect attachment is a GRE-based tunnel attachment that you can use to establish a connection between a transit gateway and an appliance. A Connect attachment uses an existing VPC or AWS Direct Connect attachment as the underlying transport mechanism. 

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>TagSpecifications:  The tags to apply to the Connect attachment.<br/>Options:  The Connect attachment options.:<br/>TransportTransitGatewayAttachmentId:  The ID of the transit gateway attachment. You can specify a VPC attachment or a AWS Direct Connect attachment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Protocol</i> The tunnel protocol.<br/>
        :return: TransitGatewayConnect:  Information about the Connect attachment.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The tags for the attachment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Options</i> The Connect attachment options.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Options</b>: The Connect attachment options.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The creation time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the attachment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayId</i> The ID of the transit gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransportTransitGatewayAttachmentId</i> The ID of the attachment from which the Connect attachment was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayAttachmentId</i> The ID of the Connect attachment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Protocol</i> The tunnel protocol.<br/>        """
        pass

    def create_transit_gateway_connect_peer(self, InsideCidrBlocks: List[String], PeerAddress: str, TransitGatewayAttachmentId: str, TransitGatewayAddress: str=None, BgpOptions: TransitGatewayConnectRequestBgpOptions=None, TagSpecifications: List[TagSpecification]=None, DryRun: Boolean=None) -> CreateTransitGatewayConnectPeerResult:
        r"""Creates a Connect peer for a specified transit gateway Connect attachment between a transit gateway and an appliance. The peer address and transit gateway address must be the same IP address family (IPv4 or IPv6). For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/tgw/tgw-connect.html#tgw-connect-peer">Connect peers</a> in the <i>Transit Gateways Guide</i>.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>TagSpecifications:  The tags to apply to the Connect peer.<br/>InsideCidrBlocks:  The range of inside IP addresses that are used for BGP peering. You must specify a size /29 IPv4 CIDR block from the <code>169.254.0.0/16</code> range. The first address from the range must be configured on the appliance as the BGP IP address. You can also optionally specify a size /125 IPv6 CIDR block from the <code>fd00::/8</code> range.<br/>BgpOptions:  The BGP options for the Connect peer.:<br/>PeerAddress:  The peer IP address (GRE outer IP address) on the appliance side of the Connect peer.<br/>TransitGatewayAddress:  The peer IP address (GRE outer IP address) on the transit gateway side of the Connect peer, which must be specified from a transit gateway CIDR block. If not specified, Amazon automatically assigns the first available IP address from the transit gateway CIDR block.<br/>TransitGatewayAttachmentId:  The ID of the Connect attachment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PeerAsn</i> The peer Autonomous System Number (ASN).<br/>
        :return: TransitGatewayConnectPeer:  Information about the Connect peer.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The tags for the Connect peer.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConnectPeerConfiguration</i> The Connect peer details.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ConnectPeerConfiguration</b>: The Connect peer details.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The creation time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the Connect peer.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayConnectPeerId</i> The ID of the Connect peer.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayAttachmentId</i> The ID of the Connect attachment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BgpConfigurations</i> The BGP configuration details.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Protocol</i> The tunnel protocol.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InsideCidrBlocks</i> The range of interior BGP peer IP addresses.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PeerAddress</i> The Connect peer IP address on the appliance side of the tunnel.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayAddress</i> The Connect peer IP address on the transit gateway side of the tunnel.<br/>        """
        pass

    def create_transit_gateway_multicast_domain(self, TransitGatewayId: str, Options: CreateTransitGatewayMulticastDomainRequestOptions=None, TagSpecifications: List[TagSpecification]=None, DryRun: Boolean=None) -> CreateTransitGatewayMulticastDomainResult:
        r"""Creates a multicast domain using the specified transit gateway. The transit gateway must be in the available state before you create a domain. Use <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeTransitGateways.html">DescribeTransitGateways</a> to see the state of transit gateway.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>TagSpecifications:  The tags for the transit gateway multicast domain.<br/>Options:  The options for the transit gateway multicast domain.:<br/>TransitGatewayId:  The ID of the transit gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoAcceptSharedAssociations</i> Indicates whether to automatically accept cross-account subnet associations that are associated with the transit gateway multicast domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StaticSourcesSupport</i> Specify whether to enable support for statically configuring multicast group sources for a domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Igmpv2Support</i> Specify whether to enable Internet Group Management Protocol (IGMP) version 2 for the transit gateway multicast domain.<br/>
        :return: TransitGatewayMulticastDomain:  Information about the transit gateway multicast domain.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The tags for the transit gateway multicast domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The time the transit gateway multicast domain was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the transit gateway multicast domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Options</i> The options for the transit gateway multicast domain.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Options</b>: The options for the transit gateway multicast domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i>  The ID of the AWS account that owns the transit gateway multiicast domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayMulticastDomainArn</i> The Amazon Resource Name (ARN) of the transit gateway multicast domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayId</i> The ID of the transit gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayMulticastDomainId</i> The ID of the transit gateway multicast domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoAcceptSharedAssociations</i> Indicates whether to automatically cross-account subnet associations that are associated with the transit gateway multicast domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StaticSourcesSupport</i> Indicates whether support for statically configuring transit gateway multicast group sources is turned on.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Igmpv2Support</i> Indicates whether Internet Group Management Protocol (IGMP) version 2 is turned on for the transit gateway multicast domain.<br/>        """
        pass

    def create_transit_gateway_peering_attachment(self, PeerRegion: str, PeerAccountId: str, PeerTransitGatewayId: str, TransitGatewayId: str, TagSpecifications: List[TagSpecification]=None, DryRun: Boolean=None) -> CreateTransitGatewayPeeringAttachmentResult:
        r"""Requests a transit gateway peering attachment between the specified transit gateway (requester) and a peer transit gateway (accepter). The transit gateways must be in different Regions. The peer transit gateway can be in your account or a different AWS account.  After you create the peering attachment, the owner of the accepter transit gateway must accept the attachment request.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>TagSpecifications:  The tags to apply to the transit gateway peering attachment.<br/>PeerRegion:  The Region where the peer transit gateway is located.<br/>PeerAccountId:  The AWS account ID of the owner of the peer transit gateway.<br/>PeerTransitGatewayId:  The ID of the peer transit gateway with which to create the peering attachment.<br/>TransitGatewayId:  The ID of the transit gateway.<br/>
        :return: TransitGatewayPeeringAttachment:  The transit gateway peering attachment.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The tags for the transit gateway peering attachment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The time the transit gateway peering attachment was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the transit gateway peering attachment. Note that the <code>initiating</code> state has been deprecated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the transit gateway peering attachment.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Status</b>: The status of the transit gateway peering attachment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccepterTgwInfo</i> Information about the accepter transit gateway.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AccepterTgwInfo</b>: Information about the accepter transit gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequesterTgwInfo</i> Information about the requester transit gateway.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RequesterTgwInfo</b>: Information about the requester transit gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayAttachmentId</i> The ID of the transit gateway peering attachment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Region</i> The Region of the transit gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> The AWS account ID of the owner of the transit gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayId</i> The ID of the transit gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Region</i> The Region of the transit gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> The AWS account ID of the owner of the transit gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayId</i> The ID of the transit gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> The status message, if applicable.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Code</i> The status code.<br/>        """
        pass

    def create_transit_gateway_prefix_list_reference(self, PrefixListId: str, TransitGatewayRouteTableId: str, TransitGatewayAttachmentId: str=None, Blackhole: Boolean=None, DryRun: Boolean=None) -> CreateTransitGatewayPrefixListReferenceResult:
        r"""Creates a reference (route) to a prefix list in a specified transit gateway route table.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>Blackhole:  Indicates whether to drop traffic that matches this route.<br/>TransitGatewayAttachmentId:  The ID of the attachment to which traffic is routed.<br/>PrefixListId:  The ID of the prefix list that is used for destination matches.<br/>TransitGatewayRouteTableId:  The ID of the transit gateway route table.<br/>
        :return: TransitGatewayPrefixListReference:  Information about the prefix list reference.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayAttachment</i> Information about the transit gateway attachment.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TransitGatewayAttachment</b>: Information about the transit gateway attachment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Blackhole</i> Indicates whether traffic that matches this route is dropped.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the prefix list reference.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PrefixListOwnerId</i> The ID of the prefix list owner.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PrefixListId</i> The ID of the prefix list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayRouteTableId</i> The ID of the transit gateway route table.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceId</i> The ID of the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceType</i> The resource type. Note that the <code>tgw-peering</code> resource type has been deprecated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayAttachmentId</i> The ID of the attachment.<br/>        """
        pass

    def create_transit_gateway_route(self, TransitGatewayRouteTableId: str, DestinationCidrBlock: str, TransitGatewayAttachmentId: str=None, Blackhole: Boolean=None, DryRun: Boolean=None) -> CreateTransitGatewayRouteResult:
        r"""Creates a static route for the specified transit gateway route table.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>Blackhole:  Indicates whether to drop traffic that matches this route.<br/>TransitGatewayAttachmentId:  The ID of the attachment.<br/>TransitGatewayRouteTableId:  The ID of the transit gateway route table.<br/>DestinationCidrBlock:  The CIDR range used for destination matches. Routing decisions are based on the most specific match.<br/>
        :return: Route:  Information about the route.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the route.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The route type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayAttachments</i> The attachments.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PrefixListId</i> The ID of the prefix list used for destination matches.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DestinationCidrBlock</i> The CIDR block used for destination matches.<br/>        """
        pass

    def create_transit_gateway_route_table(self, TransitGatewayId: str, TagSpecifications: List[TagSpecification]=None, DryRun: Boolean=None) -> CreateTransitGatewayRouteTableResult:
        r"""Creates a route table for the specified transit gateway.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>TagSpecifications:  The tags to apply to the transit gateway route table.<br/>TransitGatewayId:  The ID of the transit gateway.<br/>
        :return: TransitGatewayRouteTable:  Information about the transit gateway route table.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> Any tags assigned to the route table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The creation time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultPropagationRouteTable</i> Indicates whether this is the default propagation route table for the transit gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultAssociationRouteTable</i> Indicates whether this is the default association route table for the transit gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the transit gateway route table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayId</i> The ID of the transit gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayRouteTableId</i> The ID of the transit gateway route table.<br/>        """
        pass

    def create_transit_gateway_vpc_attachment(self, SubnetIds: List[SubnetId], VpcId: str, TransitGatewayId: str, Options: CreateTransitGatewayVpcAttachmentRequestOptions=None, TagSpecifications: List[TagSpecification]=None, DryRun: Boolean=None) -> CreateTransitGatewayVpcAttachmentResult:
        r"""Attaches the specified VPC to the specified transit gateway. If you attach a VPC with a CIDR range that overlaps the CIDR range of a VPC that is already attached, the new VPC CIDR range is not propagated to the default propagation route table. To send VPC traffic to an attached transit gateway, add a route to the VPC route table using <a>CreateRoute</a>.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>TagSpecifications:  The tags to apply to the VPC attachment.<br/>Options:  The VPC attachment options.:<br/>SubnetIds:  The IDs of one or more subnets. You can specify only one subnet per Availability Zone. You must specify at least one subnet, but we recommend that you specify two subnets for better availability. The transit gateway uses one IP address from each specified subnet.<br/>VpcId:  The ID of the VPC.<br/>TransitGatewayId:  The ID of the transit gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplianceModeSupport</i> Enable or disable support for appliance mode. If enabled, a traffic flow between a source and destination uses the same Availability Zone for the VPC attachment for the lifetime of that flow. The default is <code>disable</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Ipv6Support</i> Enable or disable IPv6 support. The default is <code>disable</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DnsSupport</i> Enable or disable DNS support. The default is <code>enable</code>.<br/>
        :return: TransitGatewayVpcAttachment:  Information about the VPC attachment.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The tags for the VPC attachment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Options</i> The VPC attachment options.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Options</b>: The VPC attachment options.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The creation time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetIds</i> The IDs of the subnets.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the VPC attachment. Note that the <code>initiating</code> state has been deprecated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcOwnerId</i> The ID of the AWS account that owns the VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The ID of the VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayId</i> The ID of the transit gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayAttachmentId</i> The ID of the attachment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplianceModeSupport</i> Indicates whether appliance mode support is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Ipv6Support</i> Indicates whether IPv6 support is disabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DnsSupport</i> Indicates whether DNS support is enabled.<br/>        """
        pass

    def create_volume(self, AvailabilityZone: str, Encrypted: Boolean=None, Iops: int=None, KmsKeyId: str=None, OutpostArn: str=None, Size: int=None, SnapshotId: str=None, VolumeType: str=None, DryRun: Boolean=None, TagSpecifications: List[TagSpecification]=None, MultiAttachEnabled: Boolean=None, Throughput: int=None) -> Volume:
        r"""Creates an EBS volume that can be attached to an instance in the same Availability Zone. You can create a new empty volume or restore a volume from an EBS snapshot. Any AWS Marketplace product codes from the snapshot are propagated to the volume. You can create encrypted volumes. Encrypted volumes must be attached to instances that support Amazon EBS encryption. Volumes that are created from encrypted snapshots are also automatically encrypted. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html">Amazon EBS encryption</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>. You can tag your volumes during creation. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html">Tagging your Amazon EC2 resources</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-creating-volume.html">Creating an Amazon EBS volume</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.

        :param self:
        :param Throughput:  The throughput to provision for a volume, with a maximum of 1,000 MiB/s. This parameter is valid only for <code>gp3</code> volumes. Valid Range: Minimum value of 125. Maximum value of 1000.<br/>MultiAttachEnabled:  Indicates whether to enable Amazon EBS Multi-Attach. If you enable Multi-Attach, you can attach the volume to up to 16 <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances">Instances built on the Nitro System</a> in the same Availability Zone. This parameter is supported with <code>io1</code> and <code>io2</code> volumes only. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-volumes-multi.html"> Amazon EBS Multi-Attach</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.<br/>TagSpecifications:  The tags to apply to the volume during creation.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>VolumeType:  The volume type. This parameter can be one of the following values: <ul> <li> General Purpose SSD: <code>gp2</code> | <code>gp3</code>  </li> <li> Provisioned IOPS SSD: <code>io1</code> | <code>io2</code>  </li> <li> Throughput Optimized HDD: <code>st1</code>  </li> <li> Cold HDD: <code>sc1</code>  </li> <li> Magnetic: <code>standard</code>  </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html">Amazon EBS volume types</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>. Default: <code>gp2</code> <br/>SnapshotId:  The snapshot from which to create the volume. You must specify either a snapshot ID or a volume size.<br/>Size:  The size of the volume, in GiBs. You must specify either a snapshot ID or a volume size. If you specify a snapshot, the default is the snapshot size. You can specify a volume size that is equal to or larger than the snapshot size. The following are the supported volumes sizes for each volume type: <ul> <li>  <code>gp2</code> and <code>gp3</code>: 1-16,384 </li> <li>  <code>io1</code> and <code>io2</code>: 4-16,384 </li> <li>  <code>st1</code> and <code>sc1</code>: 125-16,384 </li> <li>  <code>standard</code>: 1-1,024 </li> </ul><br/>OutpostArn:  The Amazon Resource Name (ARN) of the Outpost.<br/>KmsKeyId:  The identifier of the AWS Key Management Service (AWS KMS) customer master key (CMK) to use for Amazon EBS encryption. If this parameter is not specified, your AWS managed CMK for EBS is used. If <code>KmsKeyId</code> is specified, the encrypted state must be <code>true</code>. You can specify the CMK using any of the following: <ul> <li> Key ID. For example, 1234abcd-12ab-34cd-56ef-1234567890ab. </li> <li> Key alias. For example, alias/ExampleAlias. </li> <li> Key ARN. For example, arn:aws:kms:us-east-1:012345678910:key/1234abcd-12ab-34cd-56ef-1234567890ab. </li> <li> Alias ARN. For example, arn:aws:kms:us-east-1:012345678910:alias/ExampleAlias. </li> </ul> AWS authenticates the CMK asynchronously. Therefore, if you specify an ID, alias, or ARN that is not valid, the action can appear to complete, but eventually fails.<br/>Iops:  The number of I/O operations per second (IOPS). For <code>gp3</code>, <code>io1</code>, and <code>io2</code> volumes, this represents the number of IOPS that are provisioned for the volume. For <code>gp2</code> volumes, this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits for bursting. The following are the supported values for each volume type: <ul> <li>  <code>gp3</code>: 3,000-16,000 IOPS </li> <li>  <code>io1</code>: 100-64,000 IOPS </li> <li>  <code>io2</code>: 100-64,000 IOPS </li> </ul> For <code>io1</code> and <code>io2</code> volumes, we guarantee 64,000 IOPS only for <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances">Instances built on the Nitro System</a>. Other instance families guarantee performance up to 32,000 IOPS. This parameter is required for <code>io1</code> and <code>io2</code> volumes. The default for <code>gp3</code> volumes is 3,000 IOPS. This parameter is not supported for <code>gp2</code>, <code>st1</code>, <code>sc1</code>, or <code>standard</code> volumes.<br/>Encrypted:  Indicates whether the volume should be encrypted. The effect of setting the encryption state to <code>true</code> depends on the volume origin (new or from a snapshot), starting encryption state, ownership, and whether encryption by default is enabled. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#encryption-by-default">Encryption by default</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>. Encrypted Amazon EBS volumes must be attached to instances that support Amazon EBS encryption. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#EBSEncryption_supported_instances">Supported instance types</a>.<br/>AvailabilityZone:  The Availability Zone in which to create the volume.<br/>
        :return: Throughput:  The throughput that the volume supports, in MiB/s.<br/>MultiAttachEnabled:  Indicates whether Amazon EBS Multi-Attach is enabled.<br/>FastRestored:  Indicates whether the volume was created using fast snapshot restore.<br/>VolumeType:  The volume type.<br/>Tags:  Any tags assigned to the volume.<br/>Iops:  The number of I/O operations per second (IOPS). For <code>gp3</code>, <code>io1</code>, and <code>io2</code> volumes, this represents the number of IOPS that are provisioned for the volume. For <code>gp2</code> volumes, this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits for bursting.<br/>VolumeId:  The ID of the volume.<br/>State:  The volume state.<br/>SnapshotId:  The snapshot from which the volume was created, if applicable.<br/>Size:  The size of the volume, in GiBs.<br/>OutpostArn:  The Amazon Resource Name (ARN) of the Outpost.<br/>KmsKeyId:  The Amazon Resource Name (ARN) of the AWS Key Management Service (AWS KMS) customer master key (CMK) that was used to protect the volume encryption key for the volume.<br/>Encrypted:  Indicates whether the volume is encrypted.<br/>CreateTime:  The time stamp when volume creation was initiated.<br/>AvailabilityZone:  The Availability Zone for the volume.<br/>Attachments:  Information about the volume attachments.<br/>        """
        pass

    def create_vpc(self, CidrBlock: str, AmazonProvidedIpv6CidrBlock: Boolean=None, Ipv6Pool: str=None, Ipv6CidrBlock: str=None, DryRun: Boolean=None, InstanceTenancy: str=None, Ipv6CidrBlockNetworkBorderGroup: str=None, TagSpecifications: List[TagSpecification]=None) -> CreateVpcResult:
        r"""Creates a VPC with the specified IPv4 CIDR block. The smallest VPC you can create uses a /28 netmask (16 IPv4 addresses), and the largest uses a /16 netmask (65,536 IPv4 addresses). For more information about how large to make your VPC, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html">Your VPC and Subnets</a> in the <i>Amazon Virtual Private Cloud User Guide</i>. You can optionally request an IPv6 CIDR block for the VPC. You can request an Amazon-provided IPv6 CIDR block from Amazon's pool of IPv6 addresses, or an IPv6 CIDR block from an IPv6 address pool that you provisioned through bring your own IP addresses (<a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-byoip.html">BYOIP</a>). By default, each instance you launch in the VPC has the default DHCP options, which include only a default DNS server that we provide (AmazonProvidedDNS). For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_DHCP_Options.html">DHCP Options Sets</a> in the <i>Amazon Virtual Private Cloud User Guide</i>. You can specify the instance tenancy value for the VPC when you create it. You can't change this value for the VPC after you create it. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-instance.html">Dedicated Instances</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.

        :param self:
        :param TagSpecifications:  The tags to assign to the VPC.<br/>Ipv6CidrBlockNetworkBorderGroup:  The name of the location from which we advertise the IPV6 CIDR block. Use this parameter to limit the address to this location.  You must set <code>AmazonProvidedIpv6CidrBlock</code> to <code>true</code> to use this parameter.<br/>InstanceTenancy:  The tenancy options for instances launched into the VPC. For <code>default</code>, instances are launched with shared tenancy by default. You can launch instances with any tenancy into a shared tenancy VPC. For <code>dedicated</code>, instances are launched as dedicated tenancy instances by default. You can only launch instances with a tenancy of <code>dedicated</code> or <code>host</code> into a dedicated tenancy VPC.   <b>Important:</b> The <code>host</code> value cannot be used with this parameter. Use the <code>default</code> or <code>dedicated</code> values only. Default: <code>default</code> <br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>Ipv6CidrBlock:  The IPv6 CIDR block from the IPv6 address pool. You must also specify <code>Ipv6Pool</code> in the request. To let Amazon choose the IPv6 CIDR block for you, omit this parameter.<br/>Ipv6Pool:  The ID of an IPv6 address pool from which to allocate the IPv6 CIDR block.<br/>AmazonProvidedIpv6CidrBlock:  Requests an Amazon-provided IPv6 CIDR block with a /56 prefix length for the VPC. You cannot specify the range of IP addresses, or the size of the CIDR block.<br/>CidrBlock:  The IPv4 network range for the VPC, in CIDR notation. For example, <code>10.0.0.0/16</code>. We modify the specified CIDR block to its canonical form; for example, if you specify <code>100.68.0.18/18</code>, we modify it to <code>100.68.0.0/18</code>.<br/>
        :return: Vpc:  Information about the VPC.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> Any tags assigned to the VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsDefault</i> Indicates whether the VPC is the default VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CidrBlockAssociationSet</i> Information about the IPv4 CIDR blocks associated with the VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Ipv6CidrBlockAssociationSet</i> Information about the IPv6 CIDR blocks associated with the VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceTenancy</i> The allowed tenancy of instances launched into the VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> The ID of the AWS account that owns the VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The ID of the VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The current state of the VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DhcpOptionsId</i> The ID of the set of DHCP options you've associated with the VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CidrBlock</i> The primary IPv4 CIDR block for the VPC.<br/>        """
        pass

    def create_vpc_endpoint(self, ServiceName: str, VpcId: str, DryRun: Boolean=None, VpcEndpointType: str=None, PolicyDocument: str=None, RouteTableIds: List[RouteTableId]=None, SubnetIds: List[SubnetId]=None, SecurityGroupIds: List[SecurityGroupId]=None, ClientToken: str=None, PrivateDnsEnabled: Boolean=None, TagSpecifications: List[TagSpecification]=None) -> CreateVpcEndpointResult:
        r"""Creates a VPC endpoint for a specified service. An endpoint enables you to create a private connection between your VPC and the service. The service may be provided by AWS, an AWS Marketplace Partner, or another AWS account. For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints.html">VPC Endpoints</a> in the <i>Amazon Virtual Private Cloud User Guide</i>. A <code>gateway</code> endpoint serves as a target for a route in your route table for traffic destined for the AWS service. You can specify an endpoint policy to attach to the endpoint, which will control access to the service from your VPC. You can also specify the VPC route tables that use the endpoint. An <code>interface</code> endpoint is a network interface in your subnet that serves as an endpoint for communicating with the specified service. You can specify the subnets in which to create an endpoint, and the security groups to associate with the endpoint network interface. A <code>GatewayLoadBalancer</code> endpoint is a network interface in your subnet that serves an endpoint for communicating with a Gateway Load Balancer that you've configured as a VPC endpoint service. Use <a>DescribeVpcEndpointServices</a> to get a list of supported services.

        :param self:
        :param TagSpecifications:  The tags to associate with the endpoint.<br/>PrivateDnsEnabled:  (Interface endpoint) Indicates whether to associate a private hosted zone with the specified VPC. The private hosted zone contains a record set for the default public DNS name for the service for the Region (for example, <code>kinesis.us-east-1.amazonaws.com</code>), which resolves to the private IP addresses of the endpoint network interfaces in the VPC. This enables you to make requests to the default public DNS name for the service instead of the public DNS names that are automatically generated by the VPC endpoint service. To use a private hosted zone, you must set the following VPC attributes to <code>true</code>: <code>enableDnsHostnames</code> and <code>enableDnsSupport</code>. Use <a>ModifyVpcAttribute</a> to set the VPC attributes. Default: <code>true</code> <br/>ClientToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html">How to Ensure Idempotency</a>.<br/>SecurityGroupIds:  (Interface endpoint) The ID of one or more security groups to associate with the endpoint network interface.<br/>SubnetIds:  (Interface and Gateway Load Balancer endpoints) The ID of one or more subnets in which to create an endpoint network interface. For a Gateway Load Balancer endpoint, you can specify one subnet only.<br/>RouteTableIds:  (Gateway endpoint) One or more route table IDs.<br/>PolicyDocument:  (Interface and gateway endpoints) A policy to attach to the endpoint that controls access to the service. The policy must be in valid JSON format. If this parameter is not specified, we attach a default policy that allows full access to the service.<br/>ServiceName:  The service name. To get a list of available services, use the <a>DescribeVpcEndpointServices</a> request, or get the name from the service provider.<br/>VpcId:  The ID of the VPC in which the endpoint will be used.<br/>VpcEndpointType:  The type of endpoint. Default: Gateway<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: ClientToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.<br/>VpcEndpoint:  Information about the endpoint.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastError</i> The last error that occurred for VPC endpoint.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>LastError</b>: The last error that occurred for VPC endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> The ID of the AWS account that owns the VPC endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> Any tags assigned to the VPC endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTimestamp</i> The date and time that the VPC endpoint was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DnsEntries</i> (Interface endpoint) The DNS entries for the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkInterfaceIds</i> (Interface endpoint) One or more network interfaces for the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequesterManaged</i> Indicates whether the VPC endpoint is being managed by its service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PrivateDnsEnabled</i> (Interface endpoint) Indicates whether the VPC is associated with a private hosted zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Groups</i> (Interface endpoint) Information about the security groups that are associated with the network interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetIds</i> (Interface endpoint) One or more subnets in which the endpoint is located.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RouteTableIds</i> (Gateway endpoint) One or more route tables associated with the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PolicyDocument</i> The policy document associated with the endpoint, if applicable.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the VPC endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceName</i> The name of the service to which the endpoint is associated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The ID of the VPC to which the endpoint is associated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcEndpointType</i> The type of endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcEndpointId</i> The ID of the VPC endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Code</i> The error code for the VPC endpoint error.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> The error message for the VPC endpoint error.<br/>        """
        pass

    def create_vpc_endpoint_connection_notification(self, ConnectionEvents: List[String], ConnectionNotificationArn: str, DryRun: Boolean=None, ServiceId: str=None, VpcEndpointId: str=None, ClientToken: str=None) -> CreateVpcEndpointConnectionNotificationResult:
        r"""Creates a connection notification for a specified VPC endpoint or VPC endpoint service. A connection notification notifies you of specific endpoint events. You must create an SNS topic to receive notifications. For more information, see <a href="https://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html">Create a Topic</a> in the <i>Amazon Simple Notification Service Developer Guide</i>. You can create a connection notification for interface endpoints only.

        :param self:
        :param ClientToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html">How to Ensure Idempotency</a>.<br/>ConnectionEvents:  One or more endpoint events for which to receive notifications. Valid values are <code>Accept</code>, <code>Connect</code>, <code>Delete</code>, and <code>Reject</code>.<br/>ConnectionNotificationArn:  The ARN of the SNS topic for the notifications.<br/>VpcEndpointId:  The ID of the endpoint.<br/>ServiceId:  The ID of the endpoint service.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: ClientToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.<br/>ConnectionNotification:  Information about the notification.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConnectionNotificationState</i> The state of the notification.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConnectionEvents</i> The events for the notification. Valid values are <code>Accept</code>, <code>Connect</code>, <code>Delete</code>, and <code>Reject</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConnectionNotificationArn</i> The ARN of the SNS topic for the notification.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConnectionNotificationType</i> The type of notification.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcEndpointId</i> The ID of the VPC endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceId</i> The ID of the endpoint service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConnectionNotificationId</i> The ID of the notification.<br/>        """
        pass

    def create_vpc_endpoint_service_configuration(self, DryRun: Boolean=None, AcceptanceRequired: Boolean=None, PrivateDnsName: str=None, NetworkLoadBalancerArns: List[String]=None, GatewayLoadBalancerArns: List[String]=None, ClientToken: str=None, TagSpecifications: List[TagSpecification]=None) -> CreateVpcEndpointServiceConfigurationResult:
        r"""Creates a VPC endpoint service configuration to which service consumers (AWS accounts, IAM users, and IAM roles) can connect. To create an endpoint service configuration, you must first create one of the following for your service: <ul> <li> A <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html">Network Load Balancer</a>. Service consumers connect to your service using an interface endpoint. </li> <li> A <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/gateway/introduction.html">Gateway Load Balancer</a>. Service consumers connect to your service using a Gateway Load Balancer endpoint. </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/endpoint-service.html">VPC Endpoint Services</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.  If you set the private DNS name, you must prove that you own the private DNS domain name. For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/endpoint-services-dns-validation.html">VPC Endpoint Service Private DNS Name Verification</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.

        :param self:
        :param TagSpecifications:  The tags to associate with the service.<br/>ClientToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Run_Instance_Idempotency.html">How to Ensure Idempotency</a>.<br/>GatewayLoadBalancerArns:  The Amazon Resource Names (ARNs) of one or more Gateway Load Balancers.<br/>NetworkLoadBalancerArns:  The Amazon Resource Names (ARNs) of one or more Network Load Balancers for your service.<br/>PrivateDnsName:  (Interface endpoint configuration) The private DNS name to assign to the VPC endpoint service.<br/>AcceptanceRequired:  Indicates whether requests from service consumers to create an endpoint to your service must be accepted. To accept a request, use <a>AcceptVpcEndpointConnections</a>.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: ClientToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.<br/>ServiceConfiguration:  Information about the service configuration.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> Any tags assigned to the service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PrivateDnsNameConfiguration</i> Information about the endpoint service private DNS name configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PrivateDnsNameConfiguration</b>: Information about the endpoint service private DNS name configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PrivateDnsName</i> The private DNS name for the service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BaseEndpointDnsNames</i> The DNS names for the service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GatewayLoadBalancerArns</i> The Amazon Resource Names (ARNs) of the Gateway Load Balancers for the service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkLoadBalancerArns</i> The Amazon Resource Names (ARNs) of the Network Load Balancers for the service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ManagesVpcEndpoints</i> Indicates whether the service manages its VPC endpoints. Management of the service VPC endpoints using the VPC endpoint API is restricted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AcceptanceRequired</i> Indicates whether requests from other AWS accounts to create an endpoint to the service must first be accepted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZones</i> The Availability Zones in which the service is available.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceState</i> The service state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceName</i> The name of the service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceId</i> The ID of the service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceType</i> The type of service.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the record subdomain the service provider needs to create. The service provider adds the <code>value</code> text to the <code>name</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Value</i> The value the service provider adds to the private DNS name domain record before verification.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The endpoint service verification type, for example TXT.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The verification state of the VPC endpoint service. &gt;Consumers of the endpoint service can use the private name only when the state is <code>verified</code>.<br/>        """
        pass

    def create_vpc_peering_connection(self, DryRun: Boolean=None, PeerOwnerId: str=None, PeerVpcId: str=None, VpcId: str=None, PeerRegion: str=None, TagSpecifications: List[TagSpecification]=None) -> CreateVpcPeeringConnectionResult:
        r"""Requests a VPC peering connection between two VPCs: a requester VPC that you own and an accepter VPC with which to create the connection. The accepter VPC can belong to another AWS account and can be in a different Region to the requester VPC. The requester VPC and accepter VPC cannot have overlapping CIDR blocks. <note> Limitations and rules apply to a VPC peering connection. For more information, see the <a href="https://docs.aws.amazon.com/vpc/latest/peering/vpc-peering-basics.html#vpc-peering-limitations">limitations</a> section in the <i>VPC Peering Guide</i>. </note> The owner of the accepter VPC must accept the peering request to activate the peering connection. The VPC peering connection request expires after 7 days, after which it cannot be accepted or rejected. If you create a VPC peering connection request between VPCs with overlapping CIDR blocks, the VPC peering connection has a status of <code>failed</code>.

        :param self:
        :param TagSpecifications:  The tags to assign to the peering connection.<br/>PeerRegion:  The Region code for the accepter VPC, if the accepter VPC is located in a Region other than the Region in which you make the request. Default: The Region in which you make the request.<br/>VpcId:  The ID of the requester VPC. You must specify this parameter in the request.<br/>PeerVpcId:  The ID of the VPC with which you are creating the VPC peering connection. You must specify this parameter in the request.<br/>PeerOwnerId:  The AWS account ID of the owner of the accepter VPC. Default: Your AWS account ID<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: VpcPeeringConnection:  Information about the VPC peering connection.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcPeeringConnectionId</i> The ID of the VPC peering connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> Any tags assigned to the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the VPC peering connection.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Status</b>: The status of the VPC peering connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequesterVpcInfo</i> Information about the requester VPC. CIDR block information is only returned when describing an active VPC peering connection.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RequesterVpcInfo</b>: Information about the requester VPC. CIDR block information is only returned when describing an active VPC peering connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExpirationTime</i> The time that an unaccepted VPC peering connection will expire.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccepterVpcInfo</i> Information about the accepter VPC. CIDR block information is only returned when describing an active VPC peering connection.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AccepterVpcInfo</b>: Information about the accepter VPC. CIDR block information is only returned when describing an active VPC peering connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> The AWS account ID of the VPC owner.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CidrBlockSet</i> Information about the IPv4 CIDR blocks for the VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Ipv6CidrBlockSet</i> The IPv6 CIDR block for the VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CidrBlock</i> The IPv4 CIDR block for the VPC.<br/>Information about the VPC peering connection options for the accepter or requester VPC.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PeeringOptions</b>: Information about the VPC peering connection options for the accepter or requester VPC.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> The AWS account ID of the VPC owner.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CidrBlockSet</i> Information about the IPv4 CIDR blocks for the VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Ipv6CidrBlockSet</i> The IPv6 CIDR block for the VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CidrBlock</i> The IPv4 CIDR block for the VPC.<br/>Information about the VPC peering connection options for the accepter or requester VPC.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PeeringOptions</b>: Information about the VPC peering connection options for the accepter or requester VPC.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> A message that provides more information about the status, if applicable.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Code</i> The status of the VPC peering connection.<br/>        """
        pass

    def create_vpn_connection(self, Type: str, CustomerGatewayId: str, VpnGatewayId: str=None, TransitGatewayId: str=None, DryRun: Boolean=None, Options: VpnConnectionOptionsSpecification=None, TagSpecifications: List[TagSpecification]=None) -> CreateVpnConnectionResult:
        r"""Creates a VPN connection between an existing virtual private gateway or transit gateway and a customer gateway. The supported connection type is <code>ipsec.1</code>. The response includes information that you need to give to your network administrator to configure your customer gateway. <important> We strongly recommend that you use HTTPS when calling this operation because the response contains sensitive cryptographic information for configuring your customer gateway device. </important> If you decide to shut down your VPN connection for any reason and later create a new VPN connection, you must reconfigure your customer gateway with the new information returned from this call. This is an idempotent operation. If you perform the operation more than once, Amazon EC2 doesn't return an error. For more information, see <a href="https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html">AWS Site-to-Site VPN</a> in the <i>AWS Site-to-Site VPN User Guide</i>.

        :param self:
        :param TagSpecifications:  The tags to apply to the VPN connection.<br/>Options:  The options for the VPN connection.:<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>TransitGatewayId:  The ID of the transit gateway. If you specify a transit gateway, you cannot specify a virtual private gateway.<br/>VpnGatewayId:  The ID of the virtual private gateway. If you specify a virtual private gateway, you cannot specify a transit gateway.<br/>Type:  The type of VPN connection (<code>ipsec.1</code>).<br/>CustomerGatewayId:  The ID of the customer gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RemoteIpv6NetworkCidr</i> The IPv6 CIDR on the AWS side of the VPN connection. Default: <code>::/0</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LocalIpv6NetworkCidr</i> The IPv6 CIDR on the customer gateway (on-premises) side of the VPN connection. Default: <code>::/0</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RemoteIpv4NetworkCidr</i> The IPv4 CIDR on the AWS side of the VPN connection. Default: <code>0.0.0.0/0</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LocalIpv4NetworkCidr</i> The IPv4 CIDR on the customer gateway (on-premises) side of the VPN connection. Default: <code>0.0.0.0/0</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TunnelOptions</i> The tunnel options for the VPN connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TunnelInsideIpVersion</i> Indicate whether the VPN tunnels process IPv4 or IPv6 traffic. Default: <code>ipv4</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StaticRoutesOnly</i> Indicate whether the VPN connection uses static routes only. If you are creating a VPN connection for a device that does not support BGP, you must specify <code>true</code>. Use <a>CreateVpnConnectionRoute</a> to create a static route. Default: <code>false</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableAcceleration</i> Indicate whether to enable acceleration for the VPN connection. Default: <code>false</code> <br/>
        :return: VpnConnection:  Information about the VPN connection.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VgwTelemetry</i> Information about the VPN tunnel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> Any tags assigned to the VPN connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Routes</i> The static routes associated with the VPN connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Options</i> The VPN connection options.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Options</b>: The VPN connection options.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayId</i> The ID of the transit gateway associated with the VPN connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpnGatewayId</i> The ID of the virtual private gateway at the AWS side of the VPN connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpnConnectionId</i> The ID of the VPN connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of VPN connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The current state of the VPN connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Category</i> The category of the VPN connection. A value of <code>VPN</code> indicates an AWS VPN connection. A value of <code>VPN-Classic</code> indicates an AWS Classic VPN connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomerGatewayId</i> The ID of the customer gateway at your end of the VPN connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomerGatewayConfiguration</i> The configuration information for the VPN connection's customer gateway (in the native XML format). This element is always present in the <a>CreateVpnConnection</a> response; however, it's present in the <a>DescribeVpnConnections</a> response only if the VPN connection is in the <code>pending</code> or <code>available</code> state.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TunnelOptions</i> Indicates the VPN tunnel options.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TunnelInsideIpVersion</i> Indicates whether the VPN tunnels process IPv4 or IPv6 traffic.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RemoteIpv6NetworkCidr</i> The IPv6 CIDR on the AWS side of the VPN connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LocalIpv6NetworkCidr</i> The IPv6 CIDR on the customer gateway (on-premises) side of the VPN connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RemoteIpv4NetworkCidr</i> The IPv4 CIDR on the AWS side of the VPN connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LocalIpv4NetworkCidr</i> The IPv4 CIDR on the customer gateway (on-premises) side of the VPN connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StaticRoutesOnly</i> Indicates whether the VPN connection uses static routes only. Static routes must be used for devices that don't support BGP.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableAcceleration</i> Indicates whether acceleration is enabled for the VPN connection.<br/>        """
        pass

    def create_vpn_connection_route(self, VpnConnectionId: str, DestinationCidrBlock: str):
        r"""Creates a static route associated with a VPN connection between an existing virtual private gateway and a VPN customer gateway. The static route allows traffic to be routed from the virtual private gateway to the VPN customer gateway. For more information, see <a href="https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html">AWS Site-to-Site VPN</a> in the <i>AWS Site-to-Site VPN User Guide</i>.

        :param self:
        :param VpnConnectionId:  The ID of the VPN connection.<br/>DestinationCidrBlock:  The CIDR block associated with the local subnet of the customer network.<br/>
        :return:         """
        pass

    def create_vpn_gateway(self, Type: str, AvailabilityZone: str=None, TagSpecifications: List[TagSpecification]=None, AmazonSideAsn: Long=None, DryRun: Boolean=None) -> CreateVpnGatewayResult:
        r"""Creates a virtual private gateway. A virtual private gateway is the endpoint on the VPC side of your VPN connection. You can create a virtual private gateway before creating the VPC itself. For more information, see <a href="https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html">AWS Site-to-Site VPN</a> in the <i>AWS Site-to-Site VPN User Guide</i>.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>AmazonSideAsn:  A private Autonomous System Number (ASN) for the Amazon side of a BGP session. If you're using a 16-bit ASN, it must be in the 64512 to 65534 range. If you're using a 32-bit ASN, it must be in the 4200000000 to 4294967294 range. Default: 64512<br/>TagSpecifications:  The tags to apply to the virtual private gateway.<br/>Type:  The type of VPN connection this virtual private gateway supports.<br/>AvailabilityZone:  The Availability Zone for the virtual private gateway.<br/>
        :return: VpnGateway:  Information about the virtual private gateway.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> Any tags assigned to the virtual private gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AmazonSideAsn</i> The private Autonomous System Number (ASN) for the Amazon side of a BGP session.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpnGatewayId</i> The ID of the virtual private gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcAttachments</i> Any VPCs attached to the virtual private gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of VPN connection the virtual private gateway supports.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The current state of the virtual private gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZone</i> The Availability Zone where the virtual private gateway was created, if applicable. This field may be empty or not returned.<br/>        """
        pass

    def delete_carrier_gateway(self, CarrierGatewayId: str, DryRun: Boolean=None) -> DeleteCarrierGatewayResult:
        r"""Deletes a carrier gateway. <important> If you do not delete the route that contains the carrier gateway as the Target, the route is a blackhole route. For information about how to delete a route, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeleteRoute.html">DeleteRoute</a>. </important>

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>CarrierGatewayId:  The ID of the carrier gateway.<br/>
        :return: CarrierGateway:  Information about the carrier gateway.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The tags assigned to the carrier gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> The AWS account ID of the owner of the carrier gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the carrier gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The ID of the VPC associated with the carrier gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CarrierGatewayId</i> The ID of the carrier gateway.<br/>        """
        pass

    def delete_client_vpn_endpoint(self, ClientVpnEndpointId: str, DryRun: Boolean=None) -> DeleteClientVpnEndpointResult:
        r"""Deletes the specified Client VPN endpoint. You must disassociate all target networks before you can delete a Client VPN endpoint.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>ClientVpnEndpointId:  The ID of the Client VPN to be deleted.<br/>
        :return: Status:  The current state of the Client VPN endpoint.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> A message about the status of the Client VPN endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Code</i> The state of the Client VPN endpoint. Possible states include: <ul> <li>  <code>pending-associate</code> - The Client VPN endpoint has been created but no target networks have been associated. The Client VPN endpoint cannot accept connections. </li> <li>  <code>available</code> - The Client VPN endpoint has been created and a target network has been associated. The Client VPN endpoint can accept connections. </li> <li>  <code>deleting</code> - The Client VPN endpoint is being deleted. The Client VPN endpoint cannot accept connections. </li> <li>  <code>deleted</code> - The Client VPN endpoint has been deleted. The Client VPN endpoint cannot accept connections. </li> </ul><br/>        """
        pass

    def delete_client_vpn_route(self, DestinationCidrBlock: str, ClientVpnEndpointId: str, TargetVpcSubnetId: str=None, DryRun: Boolean=None) -> DeleteClientVpnRouteResult:
        r"""Deletes a route from a Client VPN endpoint. You can only delete routes that you manually added using the <b>CreateClientVpnRoute</b> action. You cannot delete routes that were automatically added when associating a subnet. To remove routes that have been automatically added, disassociate the target subnet from the Client VPN endpoint.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>DestinationCidrBlock:  The IPv4 address range, in CIDR notation, of the route to be deleted.<br/>TargetVpcSubnetId:  The ID of the target subnet used by the route.<br/>ClientVpnEndpointId:  The ID of the Client VPN endpoint from which the route is to be deleted.<br/>
        :return: Status:  The current state of the route.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> A message about the status of the Client VPN endpoint route, if applicable.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Code</i> The state of the Client VPN endpoint route.<br/>        """
        pass

    def delete_customer_gateway(self, CustomerGatewayId: str, DryRun: Boolean=None):
        r"""Deletes the specified customer gateway. You must delete the VPN connection before you can delete the customer gateway.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>CustomerGatewayId:  The ID of the customer gateway.<br/>
        :return:         """
        pass

    def delete_dhcp_options(self, DhcpOptionsId: str, DryRun: Boolean=None):
        r"""Deletes the specified set of DHCP options. You must disassociate the set of DHCP options before you can delete it. You can disassociate the set of DHCP options by associating either a new set of options or the default set of options with the VPC.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>DhcpOptionsId:  The ID of the DHCP options set.<br/>
        :return:         """
        pass

    def delete_egress_only_internet_gateway(self, EgressOnlyInternetGatewayId: str, DryRun: Boolean=None) -> DeleteEgressOnlyInternetGatewayResult:
        r"""Deletes an egress-only internet gateway.

        :param self:
        :param EgressOnlyInternetGatewayId:  The ID of the egress-only internet gateway.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: ReturnCode:  Returns <code>true</code> if the request succeeds; otherwise, it returns an error.<br/>        """
        pass

    def delete_fleets(self, TerminateInstances: Boolean, FleetIds: List[FleetId], DryRun: Boolean=None) -> DeleteFleetsResult:
        r"""Deletes the specified EC2 Fleet. After you delete an EC2 Fleet, it launches no new instances. You must specify whether a deleted EC2 Fleet should also terminate its instances. If you choose to terminate the instances, the EC2 Fleet enters the <code>deleted_terminating</code> state. Otherwise, the EC2 Fleet enters the <code>deleted_running</code> state, and the instances continue to run until they are interrupted or you terminate them manually. For <code>instant</code> fleets, EC2 Fleet must terminate the instances when the fleet is deleted. A deleted <code>instant</code> fleet with running instances is not supported. <p class="title"> <b>Restrictions</b>  <ul> <li> You can delete up to 25 <code>instant</code> fleets in a single request. If you exceed this number, no <code>instant</code> fleets are deleted and an error is returned. There is no restriction on the number of fleets of type <code>maintain</code> or <code>request</code> that can be deleted in a single request. </li> <li> Up to 1000 instances can be terminated in a single request to delete <code>instant</code> fleets. </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/manage-ec2-fleet.html#delete-fleet">Deleting an EC2 Fleet</a> in the <i>Amazon EC2 User Guide</i>.

        :param self:
        :param TerminateInstances:  Indicates whether to terminate the instances when the EC2 Fleet is deleted. The default is to terminate the instances. To let the instances continue to run after the EC2 Fleet is deleted, specify <code>NoTerminateInstances</code>. Supported only for fleets of type <code>maintain</code> and <code>request</code>. For <code>instant</code> fleets, you cannot specify <code>NoTerminateInstances</code>. A deleted <code>instant</code> fleet with running instances is not supported.<br/>FleetIds:  The IDs of the EC2 Fleets.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: UnsuccessfulFleetDeletions:  Information about the EC2 Fleets that are not successfully deleted.<br/>SuccessfulFleetDeletions:  Information about the EC2 Fleets that are successfully deleted.<br/>        """
        pass

    def delete_flow_logs(self, FlowLogIds: List[VpcFlowLogId], DryRun: Boolean=None) -> DeleteFlowLogsResult:
        r"""Deletes one or more flow logs.

        :param self:
        :param FlowLogIds:  One or more flow log IDs. Constraint: Maximum of 1000 flow log IDs.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: Unsuccessful:  Information about the flow logs that could not be deleted successfully.<br/>        """
        pass

    def delete_fpga_image(self, FpgaImageId: str, DryRun: Boolean=None) -> DeleteFpgaImageResult:
        r"""Deletes the specified Amazon FPGA Image (AFI).

        :param self:
        :param FpgaImageId:  The ID of the AFI.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: Return:  Is <code>true</code> if the request succeeds, and an error otherwise.<br/>        """
        pass

    def delete_internet_gateway(self, InternetGatewayId: str, DryRun: Boolean=None):
        r"""Deletes the specified internet gateway. You must detach the internet gateway from the VPC before you can delete it.

        :param self:
        :param InternetGatewayId:  The ID of the internet gateway.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return:         """
        pass

    def delete_key_pair(self, KeyName: str=None, KeyPairId: str=None, DryRun: Boolean=None):
        r"""Deletes the specified key pair, by removing the public key from Amazon EC2.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>KeyPairId:  The ID of the key pair.<br/>KeyName:  The name of the key pair.<br/>
        :return:         """
        pass

    def delete_launch_template(self, DryRun: Boolean=None, LaunchTemplateId: str=None, LaunchTemplateName: str=None) -> DeleteLaunchTemplateResult:
        r"""Deletes a launch template. Deleting a launch template deletes all of its versions.

        :param self:
        :param LaunchTemplateName:  The name of the launch template. You must specify either the launch template ID or launch template name in the request.<br/>LaunchTemplateId:  The ID of the launch template. You must specify either the launch template ID or launch template name in the request.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: LaunchTemplate:  Information about the launch template.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The tags for the launch template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestVersionNumber</i> The version number of the latest version of the launch template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultVersionNumber</i> The version number of the default version of the launch template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedBy</i> The principal that created the launch template. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreateTime</i> The time launch template was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LaunchTemplateName</i> The name of the launch template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LaunchTemplateId</i> The ID of the launch template.<br/>        """
        pass

    def delete_launch_template_versions(self, Versions: List[String], DryRun: Boolean=None, LaunchTemplateId: str=None, LaunchTemplateName: str=None) -> DeleteLaunchTemplateVersionsResult:
        r"""Deletes one or more versions of a launch template. You cannot delete the default version of a launch template; you must first assign a different version as the default. If the default version is the only version for the launch template, you must delete the entire launch template using <a>DeleteLaunchTemplate</a>.

        :param self:
        :param Versions:  The version numbers of one or more launch template versions to delete.<br/>LaunchTemplateName:  The name of the launch template. You must specify either the launch template ID or launch template name in the request.<br/>LaunchTemplateId:  The ID of the launch template. You must specify either the launch template ID or launch template name in the request.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: UnsuccessfullyDeletedLaunchTemplateVersions:  Information about the launch template versions that could not be deleted.<br/>SuccessfullyDeletedLaunchTemplateVersions:  Information about the launch template versions that were successfully deleted.<br/>        """
        pass

    def delete_local_gateway_route(self, LocalGatewayRouteTableId: str, DestinationCidrBlock: str, DryRun: Boolean=None) -> DeleteLocalGatewayRouteResult:
        r"""Deletes the specified route from the specified local gateway route table.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>LocalGatewayRouteTableId:  The ID of the local gateway route table.<br/>DestinationCidrBlock:  The CIDR range for the route. This must match the CIDR for the route exactly.<br/>
        :return: Route:  Information about the route.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> The AWS account ID that owns the local gateway route.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LocalGatewayRouteTableArn</i> The Amazon Resource Name (ARN) of the local gateway route table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LocalGatewayRouteTableId</i> The ID of the local gateway route table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the route.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The route type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LocalGatewayVirtualInterfaceGroupId</i> The ID of the virtual interface group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DestinationCidrBlock</i> The CIDR block used for destination matches.<br/>        """
        pass

    def delete_local_gateway_route_table_vpc_association(self, LocalGatewayRouteTableVpcAssociationId: str, DryRun: Boolean=None) -> DeleteLocalGatewayRouteTableVpcAssociationResult:
        r"""Deletes the specified association between a VPC and local gateway route table.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>LocalGatewayRouteTableVpcAssociationId:  The ID of the association.<br/>
        :return: LocalGatewayRouteTableVpcAssociation:  Information about the association.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The tags assigned to the association.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the association.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> The AWS account ID that owns the local gateway route table for the association.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The ID of the VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LocalGatewayId</i> The ID of the local gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LocalGatewayRouteTableArn</i> The Amazon Resource Name (ARN) of the local gateway route table for the association.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LocalGatewayRouteTableId</i> The ID of the local gateway route table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LocalGatewayRouteTableVpcAssociationId</i> The ID of the association.<br/>        """
        pass

    def delete_managed_prefix_list(self, PrefixListId: str, DryRun: Boolean=None) -> DeleteManagedPrefixListResult:
        r"""Deletes the specified managed prefix list. You must first remove all references to the prefix list in your resources.

        :param self:
        :param PrefixListId:  The ID of the prefix list.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: PrefixList:  Information about the prefix list.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> The ID of the owner of the prefix list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The tags for the prefix list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The version of the prefix list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxEntries</i> The maximum number of entries for the prefix list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PrefixListName</i> The name of the prefix list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PrefixListArn</i> The Amazon Resource Name (ARN) for the prefix list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StateMessage</i> The state message.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the prefix list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AddressFamily</i> The IP address version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PrefixListId</i> The ID of the prefix list.<br/>        """
        pass

    def delete_nat_gateway(self, NatGatewayId: str, DryRun: Boolean=None) -> DeleteNatGatewayResult:
        r"""Deletes the specified NAT gateway. Deleting a public NAT gateway disassociates its Elastic IP address, but does not release the address from your account. Deleting a NAT gateway does not delete any NAT gateway routes in your route tables.

        :param self:
        :param NatGatewayId:  The ID of the NAT gateway.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: NatGatewayId:  The ID of the NAT gateway.<br/>        """
        pass

    def delete_network_acl(self, NetworkAclId: str, DryRun: Boolean=None):
        r"""Deletes the specified network ACL. You can't delete the ACL if it's associated with any subnets. You can't delete the default network ACL.

        :param self:
        :param NetworkAclId:  The ID of the network ACL.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return:         """
        pass

    def delete_network_acl_entry(self, RuleNumber: int, NetworkAclId: str, Egress: Boolean, DryRun: Boolean=None):
        r"""Deletes the specified ingress or egress entry (rule) from the specified network ACL.

        :param self:
        :param RuleNumber:  The rule number of the entry to delete.<br/>NetworkAclId:  The ID of the network ACL.<br/>Egress:  Indicates whether the rule is an egress rule.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return:         """
        pass

    def delete_network_insights_analysis(self, NetworkInsightsAnalysisId: str, DryRun: Boolean=None) -> DeleteNetworkInsightsAnalysisResult:
        r"""Deletes the specified network insights analysis.

        :param self:
        :param NetworkInsightsAnalysisId:  The ID of the network insights analysis.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: NetworkInsightsAnalysisId:  The ID of the network insights analysis.<br/>        """
        pass

    def delete_network_insights_path(self, NetworkInsightsPathId: str, DryRun: Boolean=None) -> DeleteNetworkInsightsPathResult:
        r"""Deletes the specified path.

        :param self:
        :param NetworkInsightsPathId:  The ID of the path.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: NetworkInsightsPathId:  The ID of the path.<br/>        """
        pass

    def delete_network_interface(self, NetworkInterfaceId: str, DryRun: Boolean=None):
        r"""Deletes the specified network interface. You must detach the network interface before you can delete it.

        :param self:
        :param NetworkInterfaceId:  The ID of the network interface.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return:         """
        pass

    def delete_network_interface_permission(self, NetworkInterfacePermissionId: str, Force: Boolean=None, DryRun: Boolean=None) -> DeleteNetworkInterfacePermissionResult:
        r"""Deletes a permission for a network interface. By default, you cannot delete the permission if the account for which you're removing the permission has attached the network interface to an instance. However, you can force delete the permission, regardless of any attachment.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>Force:  Specify <code>true</code> to remove the permission even if the network interface is attached to an instance.<br/>NetworkInterfacePermissionId:  The ID of the network interface permission.<br/>
        :return: Return:  Returns <code>true</code> if the request succeeds, otherwise returns an error.<br/>        """
        pass

    def delete_placement_group(self, GroupName: str, DryRun: Boolean=None):
        r"""Deletes the specified placement group. You must terminate all instances in the placement group before you can delete the placement group. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html">Placement groups</a> in the <i>Amazon EC2 User Guide</i>.

        :param self:
        :param GroupName:  The name of the placement group.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return:         """
        pass

    def delete_queued_reserved_instances(self, ReservedInstancesIds: List[ReservationId], DryRun: Boolean=None) -> DeleteQueuedReservedInstancesResult:
        r"""Deletes the queued purchases for the specified Reserved Instances.

        :param self:
        :param ReservedInstancesIds:  The IDs of the Reserved Instances.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: FailedQueuedPurchaseDeletions:  Information about the queued purchases that could not be deleted.<br/>SuccessfulQueuedPurchaseDeletions:  Information about the queued purchases that were successfully deleted.<br/>        """
        pass

    def delete_route(self, RouteTableId: str, DestinationCidrBlock: str=None, DestinationIpv6CidrBlock: str=None, DestinationPrefixListId: str=None, DryRun: Boolean=None):
        r"""Deletes the specified route from the specified route table.

        :param self:
        :param RouteTableId:  The ID of the route table.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>DestinationPrefixListId:  The ID of the prefix list for the route.<br/>DestinationIpv6CidrBlock:  The IPv6 CIDR range for the route. The value you specify must match the CIDR for the route exactly.<br/>DestinationCidrBlock:  The IPv4 CIDR range for the route. The value you specify must match the CIDR for the route exactly.<br/>
        :return:         """
        pass

    def delete_route_table(self, RouteTableId: str, DryRun: Boolean=None):
        r"""Deletes the specified route table. You must disassociate the route table from any subnets before you can delete it. You can't delete the main route table.

        :param self:
        :param RouteTableId:  The ID of the route table.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return:         """
        pass

    def delete_security_group(self, GroupId: str=None, GroupName: str=None, DryRun: Boolean=None):
        r"""Deletes a security group. If you attempt to delete a security group that is associated with an instance, or is referenced by another security group, the operation fails with <code>InvalidGroup.InUse</code> in EC2-Classic or <code>DependencyViolation</code> in EC2-VPC.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>GroupName:  [EC2-Classic, default VPC] The name of the security group. You can specify either the security group name or the security group ID.<br/>GroupId:  The ID of the security group. Required for a nondefault VPC.<br/>
        :return:         """
        pass

    def delete_snapshot(self, SnapshotId: str, DryRun: Boolean=None):
        r"""Deletes the specified snapshot. When you make periodic snapshots of a volume, the snapshots are incremental, and only the blocks on the device that have changed since your last snapshot are saved in the new snapshot. When you delete a snapshot, only the data not needed for any other snapshot is removed. So regardless of which prior snapshots have been deleted, all active snapshots will have access to all the information needed to restore the volume. You cannot delete a snapshot of the root device of an EBS volume used by a registered AMI. You must first de-register the AMI before you can delete the snapshot. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-deleting-snapshot.html">Deleting an Amazon EBS snapshot</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>SnapshotId:  The ID of the EBS snapshot.<br/>
        :return:         """
        pass

    def delete_spot_datafeed_subscription(self, DryRun: Boolean=None):
        r"""Deletes the data feed for Spot Instances.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return:         """
        pass

    def delete_subnet(self, SubnetId: str, DryRun: Boolean=None):
        r"""Deletes the specified subnet. You must terminate all running instances in the subnet before you can delete the subnet.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>SubnetId:  The ID of the subnet.<br/>
        :return:         """
        pass

    def delete_tags(self, Resources: List[TaggableResourceId], DryRun: Boolean=None, Tags: List[Tag]=None):
        r"""Deletes the specified set of tags from the specified set of resources. To list the current tags, use <a>DescribeTags</a>. For more information about tags, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html">Tagging Your Resources</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.

        :param self:
        :param Tags:  The tags to delete. Specify a tag key and an optional tag value to delete specific tags. If you specify a tag key without a tag value, we delete any tag with this key regardless of its value. If you specify a tag key with an empty string as the tag value, we delete the tag only if its value is an empty string. If you omit this parameter, we delete all user-defined tags for the specified resources. We do not delete AWS-generated tags (tags that have the <code>aws:</code> prefix).<br/>Resources:  The IDs of the resources, separated by spaces. Constraints: Up to 1000 resource IDs. We recommend breaking up this request into smaller batches.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return:         """
        pass

    def delete_traffic_mirror_filter(self, TrafficMirrorFilterId: str, DryRun: Boolean=None) -> DeleteTrafficMirrorFilterResult:
        r"""Deletes the specified Traffic Mirror filter. You cannot delete a Traffic Mirror filter that is in use by a Traffic Mirror session.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>TrafficMirrorFilterId:  The ID of the Traffic Mirror filter.<br/>
        :return: TrafficMirrorFilterId:  The ID of the Traffic Mirror filter.<br/>        """
        pass

    def delete_traffic_mirror_filter_rule(self, TrafficMirrorFilterRuleId: str, DryRun: Boolean=None) -> DeleteTrafficMirrorFilterRuleResult:
        r"""Deletes the specified Traffic Mirror rule.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>TrafficMirrorFilterRuleId:  The ID of the Traffic Mirror rule.<br/>
        :return: TrafficMirrorFilterRuleId:  The ID of the deleted Traffic Mirror rule.<br/>        """
        pass

    def delete_traffic_mirror_session(self, TrafficMirrorSessionId: str, DryRun: Boolean=None) -> DeleteTrafficMirrorSessionResult:
        r"""Deletes the specified Traffic Mirror session.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>TrafficMirrorSessionId:  The ID of the Traffic Mirror session.<br/>
        :return: TrafficMirrorSessionId:  The ID of the deleted Traffic Mirror session.<br/>        """
        pass

    def delete_traffic_mirror_target(self, TrafficMirrorTargetId: str, DryRun: Boolean=None) -> DeleteTrafficMirrorTargetResult:
        r"""Deletes the specified Traffic Mirror target. You cannot delete a Traffic Mirror target that is in use by a Traffic Mirror session.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>TrafficMirrorTargetId:  The ID of the Traffic Mirror target.<br/>
        :return: TrafficMirrorTargetId:  The ID of the deleted Traffic Mirror target.<br/>        """
        pass

    def delete_transit_gateway(self, TransitGatewayId: str, DryRun: Boolean=None) -> DeleteTransitGatewayResult:
        r"""Deletes the specified transit gateway.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>TransitGatewayId:  The ID of the transit gateway.<br/>
        :return: TransitGateway:  Information about the deleted transit gateway.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The tags for the transit gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Options</i> The transit gateway options.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Options</b>: The transit gateway options.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The creation time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the transit gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> The ID of the AWS account ID that owns the transit gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the transit gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayArn</i> The Amazon Resource Name (ARN) of the transit gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayId</i> The ID of the transit gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MulticastSupport</i> Indicates whether multicast is enabled on the transit gateway<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DnsSupport</i> Indicates whether DNS support is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VpnEcmpSupport</i> Indicates whether Equal Cost Multipath Protocol support is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PropagationDefaultRouteTableId</i> The ID of the default propagation route table.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultRouteTablePropagation</i> Indicates whether resource attachments automatically propagate routes to the default propagation route table.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociationDefaultRouteTableId</i> The ID of the default association route table.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultRouteTableAssociation</i> Indicates whether resource attachments are automatically associated with the default association route table.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoAcceptSharedAttachments</i> Indicates whether attachment requests are automatically accepted.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayCidrBlocks</i> The transit gateway CIDR blocks.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AmazonSideAsn</i> A private Autonomous System Number (ASN) for the Amazon side of a BGP session. The range is 64512 to 65534 for 16-bit ASNs and 4200000000 to 4294967294 for 32-bit ASNs.<br/>        """
        pass

    def delete_transit_gateway_connect(self, TransitGatewayAttachmentId: str, DryRun: Boolean=None) -> DeleteTransitGatewayConnectResult:
        r"""Deletes the specified Connect attachment. You must first delete any Connect peers for the attachment.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>TransitGatewayAttachmentId:  The ID of the Connect attachment.<br/>
        :return: TransitGatewayConnect:  Information about the deleted Connect attachment.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The tags for the attachment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Options</i> The Connect attachment options.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Options</b>: The Connect attachment options.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The creation time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the attachment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayId</i> The ID of the transit gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransportTransitGatewayAttachmentId</i> The ID of the attachment from which the Connect attachment was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayAttachmentId</i> The ID of the Connect attachment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Protocol</i> The tunnel protocol.<br/>        """
        pass

    def delete_transit_gateway_connect_peer(self, TransitGatewayConnectPeerId: str, DryRun: Boolean=None) -> DeleteTransitGatewayConnectPeerResult:
        r"""Deletes the specified Connect peer.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>TransitGatewayConnectPeerId:  The ID of the Connect peer.<br/>
        :return: TransitGatewayConnectPeer:  Information about the deleted Connect peer.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The tags for the Connect peer.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConnectPeerConfiguration</i> The Connect peer details.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ConnectPeerConfiguration</b>: The Connect peer details.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The creation time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the Connect peer.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayConnectPeerId</i> The ID of the Connect peer.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayAttachmentId</i> The ID of the Connect attachment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BgpConfigurations</i> The BGP configuration details.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Protocol</i> The tunnel protocol.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InsideCidrBlocks</i> The range of interior BGP peer IP addresses.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PeerAddress</i> The Connect peer IP address on the appliance side of the tunnel.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayAddress</i> The Connect peer IP address on the transit gateway side of the tunnel.<br/>        """
        pass

    def delete_transit_gateway_multicast_domain(self, TransitGatewayMulticastDomainId: str, DryRun: Boolean=None) -> DeleteTransitGatewayMulticastDomainResult:
        r"""Deletes the specified transit gateway multicast domain.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>TransitGatewayMulticastDomainId:  The ID of the transit gateway multicast domain.<br/>
        :return: TransitGatewayMulticastDomain:  Information about the deleted transit gateway multicast domain.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The tags for the transit gateway multicast domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The time the transit gateway multicast domain was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the transit gateway multicast domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Options</i> The options for the transit gateway multicast domain.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Options</b>: The options for the transit gateway multicast domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i>  The ID of the AWS account that owns the transit gateway multiicast domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayMulticastDomainArn</i> The Amazon Resource Name (ARN) of the transit gateway multicast domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayId</i> The ID of the transit gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayMulticastDomainId</i> The ID of the transit gateway multicast domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoAcceptSharedAssociations</i> Indicates whether to automatically cross-account subnet associations that are associated with the transit gateway multicast domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StaticSourcesSupport</i> Indicates whether support for statically configuring transit gateway multicast group sources is turned on.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Igmpv2Support</i> Indicates whether Internet Group Management Protocol (IGMP) version 2 is turned on for the transit gateway multicast domain.<br/>        """
        pass

    def delete_transit_gateway_peering_attachment(self, TransitGatewayAttachmentId: str, DryRun: Boolean=None) -> DeleteTransitGatewayPeeringAttachmentResult:
        r"""Deletes a transit gateway peering attachment.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>TransitGatewayAttachmentId:  The ID of the transit gateway peering attachment.<br/>
        :return: TransitGatewayPeeringAttachment:  The transit gateway peering attachment.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The tags for the transit gateway peering attachment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The time the transit gateway peering attachment was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the transit gateway peering attachment. Note that the <code>initiating</code> state has been deprecated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the transit gateway peering attachment.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Status</b>: The status of the transit gateway peering attachment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccepterTgwInfo</i> Information about the accepter transit gateway.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AccepterTgwInfo</b>: Information about the accepter transit gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequesterTgwInfo</i> Information about the requester transit gateway.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RequesterTgwInfo</b>: Information about the requester transit gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayAttachmentId</i> The ID of the transit gateway peering attachment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Region</i> The Region of the transit gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> The AWS account ID of the owner of the transit gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayId</i> The ID of the transit gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Region</i> The Region of the transit gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> The AWS account ID of the owner of the transit gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayId</i> The ID of the transit gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> The status message, if applicable.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Code</i> The status code.<br/>        """
        pass

    def delete_transit_gateway_prefix_list_reference(self, PrefixListId: str, TransitGatewayRouteTableId: str, DryRun: Boolean=None) -> DeleteTransitGatewayPrefixListReferenceResult:
        r"""Deletes a reference (route) to a prefix list in a specified transit gateway route table.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>PrefixListId:  The ID of the prefix list.<br/>TransitGatewayRouteTableId:  The ID of the route table.<br/>
        :return: TransitGatewayPrefixListReference:  Information about the deleted prefix list reference.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayAttachment</i> Information about the transit gateway attachment.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TransitGatewayAttachment</b>: Information about the transit gateway attachment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Blackhole</i> Indicates whether traffic that matches this route is dropped.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the prefix list reference.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PrefixListOwnerId</i> The ID of the prefix list owner.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PrefixListId</i> The ID of the prefix list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayRouteTableId</i> The ID of the transit gateway route table.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceId</i> The ID of the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceType</i> The resource type. Note that the <code>tgw-peering</code> resource type has been deprecated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayAttachmentId</i> The ID of the attachment.<br/>        """
        pass

    def delete_transit_gateway_route(self, DestinationCidrBlock: str, TransitGatewayRouteTableId: str, DryRun: Boolean=None) -> DeleteTransitGatewayRouteResult:
        r"""Deletes the specified route from the specified transit gateway route table.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>DestinationCidrBlock:  The CIDR range for the route. This must match the CIDR for the route exactly.<br/>TransitGatewayRouteTableId:  The ID of the transit gateway route table.<br/>
        :return: Route:  Information about the route.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the route.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The route type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayAttachments</i> The attachments.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PrefixListId</i> The ID of the prefix list used for destination matches.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DestinationCidrBlock</i> The CIDR block used for destination matches.<br/>        """
        pass

    def delete_transit_gateway_route_table(self, TransitGatewayRouteTableId: str, DryRun: Boolean=None) -> DeleteTransitGatewayRouteTableResult:
        r"""Deletes the specified transit gateway route table. You must disassociate the route table from any transit gateway route tables before you can delete it.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>TransitGatewayRouteTableId:  The ID of the transit gateway route table.<br/>
        :return: TransitGatewayRouteTable:  Information about the deleted transit gateway route table.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> Any tags assigned to the route table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The creation time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultPropagationRouteTable</i> Indicates whether this is the default propagation route table for the transit gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultAssociationRouteTable</i> Indicates whether this is the default association route table for the transit gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the transit gateway route table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayId</i> The ID of the transit gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayRouteTableId</i> The ID of the transit gateway route table.<br/>        """
        pass

    def delete_transit_gateway_vpc_attachment(self, TransitGatewayAttachmentId: str, DryRun: Boolean=None) -> DeleteTransitGatewayVpcAttachmentResult:
        r"""Deletes the specified VPC attachment.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>TransitGatewayAttachmentId:  The ID of the attachment.<br/>
        :return: TransitGatewayVpcAttachment:  Information about the deleted VPC attachment.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The tags for the VPC attachment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Options</i> The VPC attachment options.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Options</b>: The VPC attachment options.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The creation time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetIds</i> The IDs of the subnets.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the VPC attachment. Note that the <code>initiating</code> state has been deprecated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcOwnerId</i> The ID of the AWS account that owns the VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The ID of the VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayId</i> The ID of the transit gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayAttachmentId</i> The ID of the attachment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplianceModeSupport</i> Indicates whether appliance mode support is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Ipv6Support</i> Indicates whether IPv6 support is disabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DnsSupport</i> Indicates whether DNS support is enabled.<br/>        """
        pass

    def delete_volume(self, VolumeId: str, DryRun: Boolean=None):
        r"""Deletes the specified EBS volume. The volume must be in the <code>available</code> state (not attached to an instance). The volume can remain in the <code>deleting</code> state for several minutes. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-deleting-volume.html">Deleting an Amazon EBS volume</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>VolumeId:  The ID of the volume.<br/>
        :return:         """
        pass

    def delete_vpc(self, VpcId: str, DryRun: Boolean=None):
        r"""Deletes the specified VPC. You must detach or delete all gateways and resources that are associated with the VPC before you can delete it. For example, you must terminate all instances running in the VPC, delete all security groups associated with the VPC (except the default one), delete all route tables associated with the VPC (except the default one), and so on.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>VpcId:  The ID of the VPC.<br/>
        :return:         """
        pass

    def delete_vpc_endpoint_connection_notifications(self, ConnectionNotificationIds: List[ConnectionNotificationId], DryRun: Boolean=None) -> DeleteVpcEndpointConnectionNotificationsResult:
        r"""Deletes one or more VPC endpoint connection notifications.

        :param self:
        :param ConnectionNotificationIds:  One or more notification IDs.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: Unsuccessful:  Information about the notifications that could not be deleted successfully.<br/>        """
        pass

    def delete_vpc_endpoint_service_configurations(self, ServiceIds: List[VpcEndpointServiceId], DryRun: Boolean=None) -> DeleteVpcEndpointServiceConfigurationsResult:
        r"""Deletes one or more VPC endpoint service configurations in your account. Before you delete the endpoint service configuration, you must reject any <code>Available</code> or <code>PendingAcceptance</code> interface endpoint connections that are attached to the service.

        :param self:
        :param ServiceIds:  The IDs of one or more services.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: Unsuccessful:  Information about the service configurations that were not deleted, if applicable.<br/>        """
        pass

    def delete_vpc_endpoints(self, VpcEndpointIds: List[VpcEndpointId], DryRun: Boolean=None) -> DeleteVpcEndpointsResult:
        r"""Deletes one or more specified VPC endpoints. You can delete any of the following types of VPC endpoints.  <ul> <li> Gateway endpoint, </li> <li> Gateway Load Balancer endpoint, </li> <li> Interface endpoint </li> </ul> The following rules apply when you delete a VPC endpoint: <ul> <li> When you delete a gateway endpoint, we delete the endpoint routes in the route tables that are associated with the endpoint. </li> <li> When you delete a Gateway Load Balancer endpoint, we delete the endpoint network interfaces.  You can only delete Gateway Load Balancer endpoints when the routes that are associated with the endpoint are deleted. </li> <li> When you delete an interface endpoint, we delete the endpoint network interfaces. </li> </ul>

        :param self:
        :param VpcEndpointIds:  One or more VPC endpoint IDs.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: Unsuccessful:  Information about the VPC endpoints that were not successfully deleted.<br/>        """
        pass

    def delete_vpc_peering_connection(self, VpcPeeringConnectionId: str, DryRun: Boolean=None) -> DeleteVpcPeeringConnectionResult:
        r"""Deletes a VPC peering connection. Either the owner of the requester VPC or the owner of the accepter VPC can delete the VPC peering connection if it's in the <code>active</code> state. The owner of the requester VPC can delete a VPC peering connection in the <code>pending-acceptance</code> state. You cannot delete a VPC peering connection that's in the <code>failed</code> state.

        :param self:
        :param VpcPeeringConnectionId:  The ID of the VPC peering connection.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: Return:  Returns <code>true</code> if the request succeeds; otherwise, it returns an error.<br/>        """
        pass

    def delete_vpn_connection(self, VpnConnectionId: str, DryRun: Boolean=None):
        r"""Deletes the specified VPN connection. If you're deleting the VPC and its associated components, we recommend that you detach the virtual private gateway from the VPC and delete the VPC before deleting the VPN connection. If you believe that the tunnel credentials for your VPN connection have been compromised, you can delete the VPN connection and create a new one that has new keys, without needing to delete the VPC or virtual private gateway. If you create a new VPN connection, you must reconfigure the customer gateway device using the new configuration information returned with the new VPN connection ID. For certificate-based authentication, delete all AWS Certificate Manager (ACM) private certificates used for the AWS-side tunnel endpoints for the VPN connection before deleting the VPN connection.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>VpnConnectionId:  The ID of the VPN connection.<br/>
        :return:         """
        pass

    def delete_vpn_connection_route(self, VpnConnectionId: str, DestinationCidrBlock: str):
        r"""Deletes the specified static route associated with a VPN connection between an existing virtual private gateway and a VPN customer gateway. The static route allows traffic to be routed from the virtual private gateway to the VPN customer gateway.

        :param self:
        :param VpnConnectionId:  The ID of the VPN connection.<br/>DestinationCidrBlock:  The CIDR block associated with the local subnet of the customer network.<br/>
        :return:         """
        pass

    def delete_vpn_gateway(self, VpnGatewayId: str, DryRun: Boolean=None):
        r"""Deletes the specified virtual private gateway. You must first detach the virtual private gateway from the VPC. Note that you don't need to delete the virtual private gateway if you plan to delete and recreate the VPN connection between your VPC and your network.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>VpnGatewayId:  The ID of the virtual private gateway.<br/>
        :return:         """
        pass

    def deprovision_byoip_cidr(self, Cidr: str, DryRun: Boolean=None) -> DeprovisionByoipCidrResult:
        r"""Releases the specified address range that you provisioned for use with your Amazon Web Services resources through bring your own IP addresses (BYOIP) and deletes the corresponding address pool. Before you can release an address range, you must stop advertising it using <a>WithdrawByoipCidr</a> and you must not have any IP addresses allocated from its address range.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>Cidr:  The address range, in CIDR notation. The prefix must be the same prefix that you specified when you provisioned the address range.<br/>
        :return: ByoipCidr:  Information about the address range.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the address pool.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusMessage</i> Upon success, contains the ID of the address pool. Otherwise, contains an error message.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the address range.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Cidr</i> The address range, in CIDR notation.<br/>        """
        pass

    def deregister_image(self, ImageId: str, DryRun: Boolean=None):
        r"""Deregisters the specified AMI. After you deregister an AMI, it can't be used to launch new instances; however, it doesn't affect any instances that you've already launched from the AMI. You'll continue to incur usage costs for those instances until you terminate them. When you deregister an Amazon EBS-backed AMI, it doesn't affect the snapshot that was created for the root volume of the instance during the AMI creation process. When you deregister an instance store-backed AMI, it doesn't affect the files that you uploaded to Amazon S3 when you created the AMI.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>ImageId:  The ID of the AMI.<br/>
        :return:         """
        pass

    def deregister_instance_event_notification_attributes(self, DryRun: Boolean=None, InstanceTagAttribute: DeregisterInstanceTagAttributeRequest=None) -> DeregisterInstanceEventNotificationAttributesResult:
        r"""Deregisters tag keys to prevent tags that have the specified tag keys from being included in scheduled event notifications for resources in the Region.

        :param self:
        :param InstanceTagAttribute:  Information about the tag keys to deregister.:<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceTagKeys</i> Information about the tag keys to deregister.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeAllTagsOfInstance</i> Indicates whether to deregister all tag keys in the current Region. Specify <code>false</code> to deregister all tag keys.<br/>
        :return: InstanceTagAttribute:  The resulting set of tag keys.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeAllTagsOfInstance</i> Indicates wheter all tag keys in the current Region are registered to appear in scheduled event notifications. <code>true</code> indicates that all tag keys in the current Region are registered.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceTagKeys</i> The registered tag keys.<br/>        """
        pass

    def deregister_transit_gateway_multicast_group_members(self, TransitGatewayMulticastDomainId: str=None, GroupIpAddress: str=None, NetworkInterfaceIds: List[NetworkInterfaceId]=None, DryRun: Boolean=None) -> DeregisterTransitGatewayMulticastGroupMembersResult:
        r"""Deregisters the specified members (network interfaces) from the transit gateway multicast group.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>NetworkInterfaceIds:  The IDs of the group members' network interfaces.<br/>GroupIpAddress:  The IP address assigned to the transit gateway multicast group.<br/>TransitGatewayMulticastDomainId:  The ID of the transit gateway multicast domain.<br/>
        :return: DeregisteredMulticastGroupMembers:  Information about the deregistered members.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GroupIpAddress</i> The IP address assigned to the transit gateway multicast group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeregisteredNetworkInterfaceIds</i> The network interface IDs of the deregistered members.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayMulticastDomainId</i> The ID of the transit gateway multicast domain.<br/>        """
        pass

    def deregister_transit_gateway_multicast_group_sources(self, TransitGatewayMulticastDomainId: str=None, GroupIpAddress: str=None, NetworkInterfaceIds: List[NetworkInterfaceId]=None, DryRun: Boolean=None) -> DeregisterTransitGatewayMulticastGroupSourcesResult:
        r"""Deregisters the specified sources (network interfaces) from the transit gateway multicast group.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>NetworkInterfaceIds:  The IDs of the group sources' network interfaces.<br/>GroupIpAddress:  The IP address assigned to the transit gateway multicast group.<br/>TransitGatewayMulticastDomainId:  The ID of the transit gateway multicast domain.<br/>
        :return: DeregisteredMulticastGroupSources:  Information about the deregistered group sources.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GroupIpAddress</i> The IP address assigned to the transit gateway multicast group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeregisteredNetworkInterfaceIds</i> The network interface IDs of the non-registered members.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayMulticastDomainId</i> The ID of the transit gateway multicast domain.<br/>        """
        pass

    def describe_account_attributes(self, AttributeNames: List[AccountAttributeName]=None, DryRun: Boolean=None) -> DescribeAccountAttributesResult:
        r"""Describes attributes of your AWS account. The following are the supported account attributes: <ul> <li>  <code>supported-platforms</code>: Indicates whether your account can launch instances into EC2-Classic and EC2-VPC, or only into EC2-VPC. </li> <li>  <code>default-vpc</code>: The ID of the default VPC for your account, or <code>none</code>. </li> <li>  <code>max-instances</code>: This attribute is no longer supported. The returned value does not reflect your actual vCPU limit for running On-Demand Instances. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-on-demand-instances.html#ec2-on-demand-instances-limits">On-Demand Instance Limits</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>. </li> <li>  <code>vpc-max-security-groups-per-interface</code>: The maximum number of security groups that you can assign to a network interface. </li> <li>  <code>max-elastic-ips</code>: The maximum number of Elastic IP addresses that you can allocate for use with EC2-Classic.  </li> <li>  <code>vpc-max-elastic-ips</code>: The maximum number of Elastic IP addresses that you can allocate for use with EC2-VPC. </li> </ul>

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>AttributeNames:  The account attribute names.<br/>
        :return: AccountAttributes:  Information about the account attributes.<br/>        """
        pass

    def describe_addresses(self, Filters: List[Filter]=None, PublicIps: List[String]=None, AllocationIds: List[AllocationId]=None, DryRun: Boolean=None) -> DescribeAddressesResult:
        r"""Describes the specified Elastic IP addresses or all of your Elastic IP addresses. An Elastic IP address is for use in either the EC2-Classic platform or in a VPC. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html">Elastic IP Addresses</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>AllocationIds:  [EC2-VPC] Information about the allocation IDs.<br/>PublicIps:  One or more Elastic IP addresses. Default: Describes all your Elastic IP addresses.<br/>Filters:  One or more filters. Filter names and values are case-sensitive. <ul> <li>  <code>allocation-id</code> - [EC2-VPC] The allocation ID for the address. </li> <li>  <code>association-id</code> - [EC2-VPC] The association ID for the address. </li> <li>  <code>domain</code> - Indicates whether the address is for use in EC2-Classic (<code>standard</code>) or in a VPC (<code>vpc</code>). </li> <li>  <code>instance-id</code> - The ID of the instance the address is associated with, if any. </li> <li>  <code>network-border-group</code> - A unique set of Availability Zones, Local Zones, or Wavelength Zones from where Amazon Web Services advertises IP addresses.  </li> <li>  <code>network-interface-id</code> - [EC2-VPC] The ID of the network interface that the address is associated with, if any. </li> <li>  <code>network-interface-owner-id</code> - The account ID of the owner. </li> <li>  <code>private-ip-address</code> - [EC2-VPC] The private IP address associated with the Elastic IP address. </li> <li>  <code>public-ip</code> - The Elastic IP address, or the carrier IP address. </li> <li>  <code>tag</code>:&lt;key&gt; - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key <code>Owner</code> and the value <code>TeamA</code>, specify <code>tag:Owner</code> for the filter name and <code>TeamA</code> for the filter value. </li> <li>  <code>tag-key</code> - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value. </li> </ul><br/>
        :return: Addresses:  Information about the Elastic IP addresses.<br/>        """
        pass

    def describe_addresses_attribute(self, AllocationIds: List[AllocationId]=None, Attribute: str=None, NextToken: str=None, MaxResults: int=None, DryRun: Boolean=None) -> DescribeAddressesAttributeResult:
        r"""Describes the attributes of the specified Elastic IP addresses. For requirements, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html#Using_Elastic_Addressing_Reverse_DNS">Using reverse DNS for email applications</a>.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>MaxResults:  The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.<br/>NextToken:  The token for the next page of results.<br/>Attribute:  The attribute of the IP address.<br/>AllocationIds:  [EC2-VPC] The allocation IDs.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>Addresses:  Information about the IP addresses.<br/>        """
        pass

    def describe_aggregate_id_format(self, DryRun: Boolean=None) -> DescribeAggregateIdFormatResult:
        r"""Describes the longer ID format settings for all resource types in a specific Region. This request is useful for performing a quick audit to determine whether a specific Region is fully opted in for longer IDs (17-character IDs). This request only returns information about resource types that support longer IDs. The following resource types support longer IDs: <code>bundle</code> | <code>conversion-task</code> | <code>customer-gateway</code> | <code>dhcp-options</code> | <code>elastic-ip-allocation</code> | <code>elastic-ip-association</code> | <code>export-task</code> | <code>flow-log</code> | <code>image</code> | <code>import-task</code> | <code>instance</code> | <code>internet-gateway</code> | <code>network-acl</code> | <code>network-acl-association</code> | <code>network-interface</code> | <code>network-interface-attachment</code> | <code>prefix-list</code> | <code>reservation</code> | <code>route-table</code> | <code>route-table-association</code> | <code>security-group</code> | <code>snapshot</code> | <code>subnet</code> | <code>subnet-cidr-block-association</code> | <code>volume</code> | <code>vpc</code> | <code>vpc-cidr-block-association</code> | <code>vpc-endpoint</code> | <code>vpc-peering-connection</code> | <code>vpn-connection</code> | <code>vpn-gateway</code>.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: Statuses:  Information about each resource's ID format.<br/>UseLongIdsAggregated:  Indicates whether all resource types in the Region are configured to use longer IDs. This value is only <code>true</code> if all users are configured to use longer IDs for all resources types in the Region.<br/>        """
        pass

    def describe_availability_zones(self, Filters: List[Filter]=None, ZoneNames: List[String]=None, ZoneIds: List[String]=None, AllAvailabilityZones: Boolean=None, DryRun: Boolean=None) -> DescribeAvailabilityZonesResult:
        r"""Describes the Availability Zones, Local Zones, and Wavelength Zones that are available to you. If there is an event impacting a zone, you can use this request to view the state and any provided messages for that zone. For more information about Availability Zones, Local Zones, and Wavelength Zones, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html">Regions, Zones and Outposts</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>AllAvailabilityZones:  Include all Availability Zones, Local Zones, and Wavelength Zones regardless of your opt-in status. If you do not use this parameter, the results include only the zones for the Regions where you have chosen the option to opt in.<br/>ZoneIds:  The IDs of the Availability Zones, Local Zones, and Wavelength Zones.<br/>ZoneNames:  The names of the Availability Zones, Local Zones, and Wavelength Zones.<br/>Filters:  The filters. <ul> <li>  <code>group-name</code> - For Availability Zones, use the Region name. For Local Zones, use the name of the group associated with the Local Zone (for example, <code>us-west-2-lax-1</code>) For Wavelength Zones, use the name of the group associated with the Wavelength Zone (for example, <code>us-east-1-wl1-bos-wlz-1</code>). </li> <li>  <code>message</code> - The Zone message. </li> <li>  <code>opt-in-status</code> - The opt-in status (<code>opted-in</code>, and <code>not-opted-in</code> | <code>opt-in-not-required</code>). </li> <li>  <code>parent-zoneID</code> - The ID of the zone that handles some of the Local Zone and Wavelength Zone control plane operations, such as API calls. </li> <li>  <code>parent-zoneName</code> - The ID of the zone that handles some of the Local Zone and Wavelength Zone control plane operations, such as API calls. </li> <li>  <code>region-name</code> - The name of the Region for the Zone (for example, <code>us-east-1</code>). </li> <li>  <code>state</code> - The state of the Availability Zone, the Local Zone, or the Wavelength Zone (<code>available</code> | <code>information</code> | <code>impaired</code> | <code>unavailable</code>). </li> <li>  <code>zone-id</code> - The ID of the Availability Zone (for example, <code>use1-az1</code>), the Local Zone (for example, <code>usw2-lax1-az1</code>), or the Wavelength Zone (for example, <code>us-east-1-wl1-bos-wlz-1</code>). </li> <li>  <code>zone-type</code> - The type of zone, for example, <code>local-zone</code>. </li> <li>  <code>zone-name</code> - The name of the Availability Zone (for example, <code>us-east-1a</code>), the Local Zone (for example, <code>us-west-2-lax-1a</code>), or the Wavelength Zone (for example, <code>us-east-1-wl1-bos-wlz-1</code>). </li> <li>  <code>zone-type</code> - The type of zone, for example, <code>local-zone</code>. </li> </ul><br/>
        :return: AvailabilityZones:  Information about the Availability Zones, Local Zones, and Wavelength Zones.<br/>        """
        pass

    def describe_bundle_tasks(self, BundleIds: List[BundleId]=None, Filters: List[Filter]=None, DryRun: Boolean=None) -> DescribeBundleTasksResult:
        r"""Describes the specified bundle tasks or all of your bundle tasks. <note> Completed bundle tasks are listed for only a limited time. If your bundle task is no longer in the list, you can still register an AMI from it. Just use <code>RegisterImage</code> with the Amazon S3 bucket name and image manifest name you provided to the bundle task. </note>

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>Filters:  The filters. <ul> <li>  <code>bundle-id</code> - The ID of the bundle task. </li> <li>  <code>error-code</code> - If the task failed, the error code returned. </li> <li>  <code>error-message</code> - If the task failed, the error message returned. </li> <li>  <code>instance-id</code> - The ID of the instance. </li> <li>  <code>progress</code> - The level of task completion, as a percentage (for example, 20%). </li> <li>  <code>s3-bucket</code> - The Amazon S3 bucket to store the AMI. </li> <li>  <code>s3-prefix</code> - The beginning of the AMI name. </li> <li>  <code>start-time</code> - The time the task started (for example, 2013-09-15T17:15:20.000Z). </li> <li>  <code>state</code> - The state of the task (<code>pending</code> | <code>waiting-for-shutdown</code> | <code>bundling</code> | <code>storing</code> | <code>cancelling</code> | <code>complete</code> | <code>failed</code>). </li> <li>  <code>update-time</code> - The time of the most recent update for the task. </li> </ul><br/>BundleIds:  The bundle task IDs. Default: Describes all your bundle tasks.<br/>
        :return: BundleTasks:  Information about the bundle tasks.<br/>        """
        pass

    def describe_byoip_cidrs(self, MaxResults: int, DryRun: Boolean=None, NextToken: str=None) -> DescribeByoipCidrsResult:
        r"""Describes the IP address ranges that were specified in calls to <a>ProvisionByoipCidr</a>. To describe the address pools that were created when you provisioned the address ranges, use <a>DescribePublicIpv4Pools</a> or <a>DescribeIpv6Pools</a>.

        :param self:
        :param NextToken:  The token for the next page of results.<br/>MaxResults:  The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>ByoipCidrs:  Information about your address ranges.<br/>        """
        pass

    def describe_capacity_reservations(self, CapacityReservationIds: List[CapacityReservationId]=None, NextToken: str=None, MaxResults: int=None, Filters: List[Filter]=None, DryRun: Boolean=None) -> DescribeCapacityReservationsResult:
        r"""Describes one or more of your Capacity Reservations. The results describe only the Capacity Reservations in the Region that you're currently using.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>Filters:  One or more filters. <ul> <li>  <code>instance-type</code> - The type of instance for which the Capacity Reservation reserves capacity. </li> <li>  <code>owner-id</code> - The ID of the account that owns the Capacity Reservation. </li> <li>  <code>availability-zone-id</code> - The Availability Zone ID of the Capacity Reservation. </li> <li>  <code>instance-platform</code> - The type of operating system for which the Capacity Reservation reserves capacity. </li> <li>  <code>availability-zone</code> - The Availability Zone ID of the Capacity Reservation. </li> <li>  <code>tenancy</code> - Indicates the tenancy of the Capacity Reservation. A Capacity Reservation can have one of the following tenancy settings: <ul> <li>  <code>default</code> - The Capacity Reservation is created on hardware that is shared with other accounts. </li> <li>  <code>dedicated</code> - The Capacity Reservation is created on single-tenant hardware that is dedicated to a single account. </li> </ul> </li> <li>  <code>outpost-arn</code> - The Amazon Resource Name (ARN) of the Outpost on which the Capacity Reservation was created. </li> <li>  <code>state</code> - The current state of the Capacity Reservation. A Capacity Reservation can be in one of the following states: <ul> <li>  <code>active</code>- The Capacity Reservation is active and the capacity is available for your use. </li> <li>  <code>expired</code> - The Capacity Reservation expired automatically at the date and time specified in your request. The reserved capacity is no longer available for your use. </li> <li>  <code>cancelled</code> - The Capacity Reservation was cancelled. The reserved capacity is no longer available for your use. </li> <li>  <code>pending</code> - The Capacity Reservation request was successful but the capacity provisioning is still pending. </li> <li>  <code>failed</code> - The Capacity Reservation request has failed. A request might fail due to invalid request parameters, capacity constraints, or instance limit constraints. Failed requests are retained for 60 minutes. </li> </ul> </li> <li>  <code>start-date</code> - The date and time at which the Capacity Reservation was started. </li> <li>  <code>end-date</code> - The date and time at which the Capacity Reservation expires. When a Capacity Reservation expires, the reserved capacity is released and you can no longer launch instances into it. The Capacity Reservation's state changes to expired when it reaches its end date and time. </li> <li>  <code>end-date-type</code> - Indicates the way in which the Capacity Reservation ends. A Capacity Reservation can have one of the following end types: <ul> <li>  <code>unlimited</code> - The Capacity Reservation remains active until you explicitly cancel it. </li> <li>  <code>limited</code> - The Capacity Reservation expires automatically at a specified date and time. </li> </ul> </li> <li>  <code>instance-match-criteria</code> - Indicates the type of instance launches that the Capacity Reservation accepts. The options include: <ul> <li>  <code>open</code> - The Capacity Reservation accepts all instances that have matching attributes (instance type, platform, and Availability Zone). Instances that have matching attributes launch into the Capacity Reservation automatically without specifying any additional parameters. </li> <li>  <code>targeted</code> - The Capacity Reservation only accepts instances that have matching attributes (instance type, platform, and Availability Zone), and explicitly target the Capacity Reservation. This ensures that only permitted instances can use the reserved capacity. </li> </ul> </li> </ul><br/>MaxResults:  The maximum number of results to return for the request in a single page. The remaining results can be seen by sending another request with the returned <code>nextToken</code> value. This value can be between 5 and 500. If <code>maxResults</code> is given a larger value than 500, you receive an error.<br/>NextToken:  The token to use to retrieve the next page of results.<br/>CapacityReservationIds:  The ID of the Capacity Reservation.<br/>
        :return: CapacityReservations:  Information about the Capacity Reservations.<br/>NextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>        """
        pass

    def describe_carrier_gateways(self, CarrierGatewayIds: List[CarrierGatewayId]=None, Filters: List[Filter]=None, MaxResults: int=None, NextToken: str=None, DryRun: Boolean=None) -> DescribeCarrierGatewaysResult:
        r"""Describes one or more of your carrier gateways.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>NextToken:  The token for the next page of results.<br/>MaxResults:  The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.<br/>Filters:  One or more filters. <ul> <li>  <code>carrier-gateway-id</code> - The ID of the carrier gateway. </li> <li>  <code>state</code> - The state of the carrier gateway (<code>pending</code> | <code>failed</code> | <code>available</code> | <code>deleting</code> | <code>deleted</code>). </li> <li>  <code>owner-id</code> - The AWS account ID of the owner of the carrier gateway. </li> <li>  <code>tag</code>:&lt;key&gt; - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key <code>Owner</code> and the value <code>TeamA</code>, specify <code>tag:Owner</code> for the filter name and <code>TeamA</code> for the filter value. </li> <li>  <code>tag-key</code> - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value. </li> <li>  <code>vpc-id</code> - The ID of the VPC associated with the carrier gateway. </li> </ul><br/>CarrierGatewayIds:  One or more carrier gateway IDs.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>CarrierGateways:  Information about the carrier gateway.<br/>        """
        pass

    def describe_classic_link_instances(self, Filters: List[Filter]=None, DryRun: Boolean=None, InstanceIds: List[InstanceId]=None, MaxResults: int=None, NextToken: str=None) -> DescribeClassicLinkInstancesResult:
        r"""Describes one or more of your linked EC2-Classic instances. This request only returns information about EC2-Classic instances linked to a VPC through ClassicLink. You cannot use this request to return information about other instances.

        :param self:
        :param NextToken:  The token for the next page of results.<br/>MaxResults:  The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value. Constraint: If the value is greater than 1000, we return only 1000 items.<br/>InstanceIds:  One or more instance IDs. Must be instances linked to a VPC through ClassicLink.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>Filters:  One or more filters. <ul> <li>  <code>group-id</code> - The ID of a VPC security group that's associated with the instance. </li> <li>  <code>instance-id</code> - The ID of the instance. </li> <li>  <code>tag</code>:&lt;key&gt; - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key <code>Owner</code> and the value <code>TeamA</code>, specify <code>tag:Owner</code> for the filter name and <code>TeamA</code> for the filter value. </li> <li>  <code>tag-key</code> - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value. </li> <li>  <code>vpc-id</code> - The ID of the VPC to which the instance is linked.  <code>vpc-id</code> - The ID of the VPC that the instance is linked to. </li> </ul><br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>Instances:  Information about one or more linked EC2-Classic instances.<br/>        """
        pass

    def describe_client_vpn_authorization_rules(self, ClientVpnEndpointId: str, DryRun: Boolean=None, NextToken: str=None, Filters: List[Filter]=None, MaxResults: int=None) -> DescribeClientVpnAuthorizationRulesResult:
        r"""Describes the authorization rules for a specified Client VPN endpoint.

        :param self:
        :param MaxResults:  The maximum number of results to return for the request in a single page. The remaining results can be seen by sending another request with the nextToken value.<br/>Filters:  One or more filters. Filter names and values are case-sensitive. <ul> <li>  <code>description</code> - The description of the authorization rule. </li> <li>  <code>destination-cidr</code> - The CIDR of the network to which the authorization rule applies. </li> <li>  <code>group-id</code> - The ID of the Active Directory group to which the authorization rule grants access. </li> </ul><br/>NextToken:  The token to retrieve the next page of results.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>ClientVpnEndpointId:  The ID of the Client VPN endpoint.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>AuthorizationRules:  Information about the authorization rules.<br/>        """
        pass

    def describe_client_vpn_connections(self, ClientVpnEndpointId: str, Filters: List[Filter]=None, NextToken: str=None, MaxResults: int=None, DryRun: Boolean=None) -> DescribeClientVpnConnectionsResult:
        r"""Describes active client connections and connections that have been terminated within the last 60 minutes for the specified Client VPN endpoint.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>MaxResults:  The maximum number of results to return for the request in a single page. The remaining results can be seen by sending another request with the nextToken value.<br/>NextToken:  The token to retrieve the next page of results.<br/>Filters:  One or more filters. Filter names and values are case-sensitive. <ul> <li>  <code>connection-id</code> - The ID of the connection. </li> <li>  <code>username</code> - For Active Directory client authentication, the user name of the client who established the client connection. </li> </ul><br/>ClientVpnEndpointId:  The ID of the Client VPN endpoint.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>Connections:  Information about the active and terminated client connections.<br/>        """
        pass

    def describe_client_vpn_endpoints(self, ClientVpnEndpointIds: List[ClientVpnEndpointId]=None, MaxResults: int=None, NextToken: str=None, Filters: List[Filter]=None, DryRun: Boolean=None) -> DescribeClientVpnEndpointsResult:
        r"""Describes one or more Client VPN endpoints in the account.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>Filters:  One or more filters. Filter names and values are case-sensitive. <ul> <li>  <code>endpoint-id</code> - The ID of the Client VPN endpoint. </li> <li>  <code>transport-protocol</code> - The transport protocol (<code>tcp</code> | <code>udp</code>). </li> </ul><br/>NextToken:  The token to retrieve the next page of results.<br/>MaxResults:  The maximum number of results to return for the request in a single page. The remaining results can be seen by sending another request with the nextToken value.<br/>ClientVpnEndpointIds:  The ID of the Client VPN endpoint.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>ClientVpnEndpoints:  Information about the Client VPN endpoints.<br/>        """
        pass

    def describe_client_vpn_routes(self, ClientVpnEndpointId: str, Filters: List[Filter]=None, MaxResults: int=None, NextToken: str=None, DryRun: Boolean=None) -> DescribeClientVpnRoutesResult:
        r"""Describes the routes for the specified Client VPN endpoint.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>NextToken:  The token to retrieve the next page of results.<br/>MaxResults:  The maximum number of results to return for the request in a single page. The remaining results can be seen by sending another request with the nextToken value.<br/>Filters:  One or more filters. Filter names and values are case-sensitive. <ul> <li>  <code>destination-cidr</code> - The CIDR of the route destination. </li> <li>  <code>origin</code> - How the route was associated with the Client VPN endpoint (<code>associate</code> | <code>add-route</code>). </li> <li>  <code>target-subnet</code> - The ID of the subnet through which traffic is routed. </li> </ul><br/>ClientVpnEndpointId:  The ID of the Client VPN endpoint.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>Routes:  Information about the Client VPN endpoint routes.<br/>        """
        pass

    def describe_client_vpn_target_networks(self, ClientVpnEndpointId: str, AssociationIds: List[String]=None, MaxResults: int=None, NextToken: str=None, Filters: List[Filter]=None, DryRun: Boolean=None) -> DescribeClientVpnTargetNetworksResult:
        r"""Describes the target networks associated with the specified Client VPN endpoint.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>Filters:  One or more filters. Filter names and values are case-sensitive. <ul> <li>  <code>association-id</code> - The ID of the association. </li> <li>  <code>target-network-id</code> - The ID of the subnet specified as the target network. </li> <li>  <code>vpc-id</code> - The ID of the VPC in which the target network is located. </li> </ul><br/>NextToken:  The token to retrieve the next page of results.<br/>MaxResults:  The maximum number of results to return for the request in a single page. The remaining results can be seen by sending another request with the nextToken value.<br/>AssociationIds:  The IDs of the target network associations.<br/>ClientVpnEndpointId:  The ID of the Client VPN endpoint.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>ClientVpnTargetNetworks:  Information about the associated target networks.<br/>        """
        pass

    def describe_coip_pools(self, PoolIds: List[CoipPoolId]=None, Filters: List[Filter]=None, MaxResults: int=None, NextToken: str=None, DryRun: Boolean=None) -> DescribeCoipPoolsResult:
        r"""Describes the specified customer-owned address pools or all of your customer-owned address pools.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>NextToken:  The token for the next page of results.<br/>MaxResults:  The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.<br/>Filters:  The filters. The following are the possible values: <ul> <li>  <code>coip-pool.pool-id</code>  </li> </ul> <ul> <li>  <code>coip-pool.local-gateway-route-table-id</code>  </li> </ul><br/>PoolIds:  The IDs of the address pools.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>CoipPools:  Information about the address pools.<br/>        """
        pass

    def describe_conversion_tasks(self, ConversionTaskIds: List[ConversionTaskId]=None, DryRun: Boolean=None) -> DescribeConversionTasksResult:
        r"""Describes the specified conversion tasks or all your conversion tasks. For more information, see the <a href="https://docs.aws.amazon.com/vm-import/latest/userguide/">VM Import/Export User Guide</a>. For information about the import manifest referenced by this API action, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/manifest.html">VM Import Manifest</a>.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>ConversionTaskIds:  The conversion task IDs.<br/>
        :return: ConversionTasks:  Information about the conversion tasks.<br/>        """
        pass

    def describe_customer_gateways(self, CustomerGatewayIds: List[CustomerGatewayId]=None, Filters: List[Filter]=None, DryRun: Boolean=None) -> DescribeCustomerGatewaysResult:
        r"""Describes one or more of your VPN customer gateways. For more information, see <a href="https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html">AWS Site-to-Site VPN</a> in the <i>AWS Site-to-Site VPN User Guide</i>.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>Filters:  One or more filters. <ul> <li>  <code>bgp-asn</code> - The customer gateway's Border Gateway Protocol (BGP) Autonomous System Number (ASN). </li> <li>  <code>customer-gateway-id</code> - The ID of the customer gateway. </li> <li>  <code>ip-address</code> - The IP address of the customer gateway's Internet-routable external interface. </li> <li>  <code>state</code> - The state of the customer gateway (<code>pending</code> | <code>available</code> | <code>deleting</code> | <code>deleted</code>). </li> <li>  <code>type</code> - The type of customer gateway. Currently, the only supported type is <code>ipsec.1</code>. </li> <li>  <code>tag</code>:&lt;key&gt; - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key <code>Owner</code> and the value <code>TeamA</code>, specify <code>tag:Owner</code> for the filter name and <code>TeamA</code> for the filter value. </li> <li>  <code>tag-key</code> - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value. </li> </ul><br/>CustomerGatewayIds:  One or more customer gateway IDs. Default: Describes all your customer gateways.<br/>
        :return: CustomerGateways:  Information about one or more customer gateways.<br/>        """
        pass

    def describe_dhcp_options(self, DhcpOptionsIds: List[DhcpOptionsId]=None, Filters: List[Filter]=None, DryRun: Boolean=None, NextToken: str=None, MaxResults: int=None) -> DescribeDhcpOptionsResult:
        r"""Describes one or more of your DHCP options sets. For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_DHCP_Options.html">DHCP Options Sets</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.

        :param self:
        :param MaxResults:  The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.<br/>NextToken:  The token for the next page of results.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>Filters:  One or more filters. <ul> <li>  <code>dhcp-options-id</code> - The ID of a DHCP options set. </li> <li>  <code>key</code> - The key for one of the options (for example, <code>domain-name</code>). </li> <li>  <code>value</code> - The value for one of the options. </li> <li>  <code>owner-id</code> - The ID of the AWS account that owns the DHCP options set. </li> <li>  <code>tag</code>:&lt;key&gt; - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key <code>Owner</code> and the value <code>TeamA</code>, specify <code>tag:Owner</code> for the filter name and <code>TeamA</code> for the filter value. </li> <li>  <code>tag-key</code> - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value. </li> </ul><br/>DhcpOptionsIds:  The IDs of one or more DHCP options sets. Default: Describes all your DHCP options sets.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>DhcpOptions:  Information about one or more DHCP options sets.<br/>        """
        pass

    def describe_egress_only_internet_gateways(self, DryRun: Boolean=None, EgressOnlyInternetGatewayIds: List[EgressOnlyInternetGatewayId]=None, MaxResults: int=None, NextToken: str=None, Filters: List[Filter]=None) -> DescribeEgressOnlyInternetGatewaysResult:
        r"""Describes one or more of your egress-only internet gateways.

        :param self:
        :param Filters:  One or more filters. <ul> <li>  <code>tag</code>:&lt;key&gt; - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key <code>Owner</code> and the value <code>TeamA</code>, specify <code>tag:Owner</code> for the filter name and <code>TeamA</code> for the filter value. </li> <li>  <code>tag-key</code> - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value. </li> </ul><br/>NextToken:  The token for the next page of results.<br/>MaxResults:  The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.<br/>EgressOnlyInternetGatewayIds:  One or more egress-only internet gateway IDs.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>EgressOnlyInternetGateways:  Information about the egress-only internet gateways.<br/>        """
        pass

    def describe_elastic_gpus(self, ElasticGpuIds: List[ElasticGpuId]=None, DryRun: Boolean=None, Filters: List[Filter]=None, MaxResults: int=None, NextToken: str=None) -> DescribeElasticGpusResult:
        r"""Describes the Elastic Graphics accelerator associated with your instances. For more information about Elastic Graphics, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/elastic-graphics.html">Amazon Elastic Graphics</a>.

        :param self:
        :param NextToken:  The token to request the next page of results.<br/>MaxResults:  The maximum number of results to return in a single call. To retrieve the remaining results, make another call with the returned <code>NextToken</code> value. This value can be between 5 and 1000.<br/>Filters:  The filters. <ul> <li>  <code>availability-zone</code> - The Availability Zone in which the Elastic Graphics accelerator resides. </li> <li>  <code>elastic-gpu-health</code> - The status of the Elastic Graphics accelerator (<code>OK</code> | <code>IMPAIRED</code>). </li> <li>  <code>elastic-gpu-state</code> - The state of the Elastic Graphics accelerator (<code>ATTACHED</code>). </li> <li>  <code>elastic-gpu-type</code> - The type of Elastic Graphics accelerator; for example, <code>eg1.medium</code>. </li> <li>  <code>instance-id</code> - The ID of the instance to which the Elastic Graphics accelerator is associated. </li> </ul><br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>ElasticGpuIds:  The Elastic Graphics accelerator IDs.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>MaxResults:  The total number of items to return. If the total number of items available is more than the value specified in max-items then a Next-Token will be provided in the output that you can use to resume pagination.<br/>ElasticGpuSet:  Information about the Elastic Graphics accelerators.<br/>        """
        pass

    def describe_export_image_tasks(self, DryRun: Boolean=None, Filters: List[Filter]=None, ExportImageTaskIds: List[ExportImageTaskId]=None, MaxResults: int=None, NextToken: str=None) -> DescribeExportImageTasksResult:
        r"""Describes the specified export image tasks or all of your export image tasks.

        :param self:
        :param NextToken:  A token that indicates the next page of results.<br/>MaxResults:  The maximum number of results to return in a single call.<br/>ExportImageTaskIds:  The IDs of the export image tasks.<br/>Filters:  Filter tasks using the <code>task-state</code> filter and one of the following values: <code>active</code>, <code>completed</code>, <code>deleting</code>, or <code>deleted</code>.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: NextToken:  The token to use to get the next page of results. This value is <code>null</code> when there are no more results to return.<br/>ExportImageTasks:  Information about the export image tasks.<br/>        """
        pass

    def describe_export_tasks(self, ExportTaskIds: List[ExportTaskId]=None, Filters: List[Filter]=None) -> DescribeExportTasksResult:
        r"""Describes the specified export instance tasks or all of your export instance tasks.

        :param self:
        :param Filters:  the filters for the export tasks.<br/>ExportTaskIds:  The export task IDs.<br/>
        :return: ExportTasks:  Information about the export tasks.<br/>        """
        pass

    def describe_fast_snapshot_restores(self, Filters: List[Filter]=None, MaxResults: int=None, NextToken: str=None, DryRun: Boolean=None) -> DescribeFastSnapshotRestoresResult:
        r"""Describes the state of fast snapshot restores for your snapshots.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>NextToken:  The token for the next page of results.<br/>MaxResults:  The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.<br/>Filters:  The filters. The possible values are: <ul> <li>  <code>availability-zone</code>: The Availability Zone of the snapshot. </li> <li>  <code>owner-id</code>: The ID of the AWS account that enabled fast snapshot restore on the snapshot. </li> <li>  <code>snapshot-id</code>: The ID of the snapshot. </li> <li>  <code>state</code>: The state of fast snapshot restores for the snapshot (<code>enabling</code> | <code>optimizing</code> | <code>enabled</code> | <code>disabling</code> | <code>disabled</code>). </li> </ul><br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>FastSnapshotRestores:  Information about the state of fast snapshot restores.<br/>        """
        pass

    def describe_fleet_history(self, StartTime: DateTime, FleetId: str, DryRun: Boolean=None, EventType: str=None, MaxResults: int=None, NextToken: str=None) -> DescribeFleetHistoryResult:
        r"""Describes the events for the specified EC2 Fleet during the specified time. EC2 Fleet events are delayed by up to 30 seconds before they can be described. This ensures that you can query by the last evaluated time and not miss a recorded event. EC2 Fleet events are available for 48 hours. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet.html#monitor-ec2-fleet">Monitoring your EC2 Fleet</a> in the <i>Amazon EC2 User Guide</i>.

        :param self:
        :param StartTime:  The start date and time for the events, in UTC format (for example, <i>YYYY</i>-<i>MM</i>-<i>DD</i>T<i>HH</i>:<i>MM</i>:<i>SS</i>Z).<br/>FleetId:  The ID of the EC2 Fleet.<br/>NextToken:  The token for the next set of results.<br/>MaxResults:  The maximum number of results to return in a single call. Specify a value between 1 and 1000. The default value is 1000. To retrieve the remaining results, make another call with the returned <code>NextToken</code> value.<br/>EventType:  The type of events to describe. By default, all events are described.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: StartTime:  The start date and time for the events, in UTC format (for example, <i>YYYY</i>-<i>MM</i>-<i>DD</i>T<i>HH</i>:<i>MM</i>:<i>SS</i>Z).<br/>FleetId:  The ID of the EC Fleet.<br/>NextToken:  The token for the next set of results.<br/>LastEvaluatedTime:  The last date and time for the events, in UTC format (for example, <i>YYYY</i>-<i>MM</i>-<i>DD</i>T<i>HH</i>:<i>MM</i>:<i>SS</i>Z). All records up to this time were retrieved. If <code>nextToken</code> indicates that there are more results, this value is not present.<br/>HistoryRecords:  Information about the events in the history of the EC2 Fleet.<br/>        """
        pass

    def describe_fleet_instances(self, FleetId: str, DryRun: Boolean=None, MaxResults: int=None, NextToken: str=None, Filters: List[Filter]=None) -> DescribeFleetInstancesResult:
        r"""Describes the running instances for the specified EC2 Fleet. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet.html#monitor-ec2-fleet">Monitoring your EC2 Fleet</a> in the <i>Amazon EC2 User Guide</i>.

        :param self:
        :param Filters:  The filters. <ul> <li>  <code>instance-type</code> - The instance type. </li> </ul><br/>FleetId:  The ID of the EC2 Fleet.<br/>NextToken:  The token for the next set of results.<br/>MaxResults:  The maximum number of results to return in a single call. Specify a value between 1 and 1000. The default value is 1000. To retrieve the remaining results, make another call with the returned <code>NextToken</code> value.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: FleetId:  The ID of the EC2 Fleet.<br/>NextToken:  The token for the next set of results.<br/>ActiveInstances:  The running instances. This list is refreshed periodically and might be out of date.<br/>        """
        pass

    def describe_fleets(self, DryRun: Boolean=None, MaxResults: int=None, NextToken: str=None, FleetIds: List[FleetId]=None, Filters: List[Filter]=None) -> DescribeFleetsResult:
        r"""Describes the specified EC2 Fleets or all of your EC2 Fleets. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet.html#monitor-ec2-fleet">Monitoring your EC2 Fleet</a> in the <i>Amazon EC2 User Guide</i>.

        :param self:
        :param Filters:  The filters. <ul> <li>  <code>activity-status</code> - The progress of the EC2 Fleet ( <code>error</code> | <code>pending-fulfillment</code> | <code>pending-termination</code> | <code>fulfilled</code>). </li> <li>  <code>excess-capacity-termination-policy</code> - Indicates whether to terminate running instances if the target capacity is decreased below the current EC2 Fleet size (<code>true</code> | <code>false</code>). </li> <li>  <code>fleet-state</code> - The state of the EC2 Fleet (<code>submitted</code> | <code>active</code> | <code>deleted</code> | <code>failed</code> | <code>deleted-running</code> | <code>deleted-terminating</code> | <code>modifying</code>). </li> <li>  <code>replace-unhealthy-instances</code> - Indicates whether EC2 Fleet should replace unhealthy instances (<code>true</code> | <code>false</code>). </li> <li>  <code>type</code> - The type of request (<code>instant</code> | <code>request</code> | <code>maintain</code>). </li> </ul><br/>FleetIds:  The ID of the EC2 Fleets.<br/>NextToken:  The token for the next set of results.<br/>MaxResults:  The maximum number of results to return in a single call. Specify a value between 1 and 1000. The default value is 1000. To retrieve the remaining results, make another call with the returned <code>NextToken</code> value.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: Fleets:  Information about the EC2 Fleets.<br/>NextToken:  The token for the next set of results.<br/>        """
        pass

    def describe_flow_logs(self, DryRun: Boolean=None, Filter: List[Filter]=None, FlowLogIds: List[VpcFlowLogId]=None, MaxResults: int=None, NextToken: str=None) -> DescribeFlowLogsResult:
        r"""Describes one or more flow logs. To view the information in your flow logs (the log streams for the network interfaces), you must use the CloudWatch Logs console or the CloudWatch Logs API.

        :param self:
        :param NextToken:  The token for the next page of results.<br/>MaxResults:  The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.<br/>FlowLogIds:  One or more flow log IDs. Constraint: Maximum of 1000 flow log IDs.<br/>Filter:  One or more filters. <ul> <li>  <code>deliver-log-status</code> - The status of the logs delivery (<code>SUCCESS</code> | <code>FAILED</code>). </li> <li>  <code>log-destination-type</code> - The type of destination to which the flow log publishes data. Possible destination types include <code>cloud-watch-logs</code> and <code>s3</code>. </li> <li>  <code>flow-log-id</code> - The ID of the flow log. </li> <li>  <code>log-group-name</code> - The name of the log group. </li> <li>  <code>resource-id</code> - The ID of the VPC, subnet, or network interface. </li> <li>  <code>traffic-type</code> - The type of traffic (<code>ACCEPT</code> | <code>REJECT</code> | <code>ALL</code>). </li> <li>  <code>tag</code>:&lt;key&gt; - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key <code>Owner</code> and the value <code>TeamA</code>, specify <code>tag:Owner</code> for the filter name and <code>TeamA</code> for the filter value. </li> <li>  <code>tag-key</code> - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value. </li> </ul><br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>FlowLogs:  Information about the flow logs.<br/>        """
        pass

    def describe_fpga_image_attribute(self, Attribute: str, FpgaImageId: str, DryRun: Boolean=None) -> DescribeFpgaImageAttributeResult:
        r"""Describes the specified attribute of the specified Amazon FPGA Image (AFI).

        :param self:
        :param Attribute:  The AFI attribute.<br/>FpgaImageId:  The ID of the AFI.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: FpgaImageAttribute:  Information about the attribute.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProductCodes</i> The product codes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LoadPermissions</i> The load permissions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the AFI.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the AFI.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FpgaImageId</i> The ID of the AFI.<br/>        """
        pass

    def describe_fpga_images(self, DryRun: Boolean=None, FpgaImageIds: List[FpgaImageId]=None, Owners: List[String]=None, Filters: List[Filter]=None, NextToken: str=None, MaxResults: int=None) -> DescribeFpgaImagesResult:
        r"""Describes the Amazon FPGA Images (AFIs) available to you. These include public AFIs, private AFIs that you own, and AFIs owned by other AWS accounts for which you have load permissions.

        :param self:
        :param MaxResults:  The maximum number of results to return in a single call.<br/>NextToken:  The token to retrieve the next page of results.<br/>Filters:  The filters. <ul> <li>  <code>create-time</code> - The creation time of the AFI. </li> <li>  <code>fpga-image-id</code> - The FPGA image identifier (AFI ID). </li> <li>  <code>fpga-image-global-id</code> - The global FPGA image identifier (AGFI ID). </li> <li>  <code>name</code> - The name of the AFI. </li> <li>  <code>owner-id</code> - The AWS account ID of the AFI owner. </li> <li>  <code>product-code</code> - The product code. </li> <li>  <code>shell-version</code> - The version of the AWS Shell that was used to create the bitstream. </li> <li>  <code>state</code> - The state of the AFI (<code>pending</code> | <code>failed</code> | <code>available</code> | <code>unavailable</code>). </li> <li>  <code>tag</code>:&lt;key&gt; - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key <code>Owner</code> and the value <code>TeamA</code>, specify <code>tag:Owner</code> for the filter name and <code>TeamA</code> for the filter value. </li> <li>  <code>tag-key</code> - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value. </li> <li>  <code>update-time</code> - The time of the most recent update. </li> </ul><br/>Owners:  Filters the AFI by owner. Specify an AWS account ID, <code>self</code> (owner is the sender of the request), or an AWS owner alias (valid values are <code>amazon</code> | <code>aws-marketplace</code>).<br/>FpgaImageIds:  The AFI IDs.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>FpgaImages:  Information about the FPGA images.<br/>        """
        pass

    def describe_host_reservation_offerings(self, Filter: List[Filter]=None, MaxDuration: int=None, MaxResults: int=None, MinDuration: int=None, NextToken: str=None, OfferingId: str=None) -> DescribeHostReservationOfferingsResult:
        r"""Describes the Dedicated Host reservations that are available to purchase. The results describe all of the Dedicated Host reservation offerings, including offerings that might not match the instance family and Region of your Dedicated Hosts. When purchasing an offering, ensure that the instance family and Region of the offering matches that of the Dedicated Hosts with which it is to be associated. For more information about supported instance types, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-hosts-overview.html">Dedicated Hosts</a> in the <i>Amazon EC2 User Guide</i>. 

        :param self:
        :param OfferingId:  The ID of the reservation offering.<br/>NextToken:  The token to use to retrieve the next page of results.<br/>MinDuration:  This is the minimum duration of the reservation you'd like to purchase, specified in seconds. Reservations are available in one-year and three-year terms. The number of seconds specified must be the number of seconds in a year (365x24x60x60) times one of the supported durations (1 or 3). For example, specify 31536000 for one year.<br/>MaxResults:  The maximum number of results to return for the request in a single page. The remaining results can be seen by sending another request with the returned <code>nextToken</code> value. This value can be between 5 and 500. If <code>maxResults</code> is given a larger value than 500, you receive an error.<br/>MaxDuration:  This is the maximum duration of the reservation to purchase, specified in seconds. Reservations are available in one-year and three-year terms. The number of seconds specified must be the number of seconds in a year (365x24x60x60) times one of the supported durations (1 or 3). For example, specify 94608000 for three years.<br/>Filter:  The filters. <ul> <li>  <code>instance-family</code> - The instance family of the offering (for example, <code>m4</code>). </li> <li>  <code>payment-option</code> - The payment option (<code>NoUpfront</code> | <code>PartialUpfront</code> | <code>AllUpfront</code>). </li> </ul><br/>
        :return: OfferingSet:  Information about the offerings.<br/>NextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>        """
        pass

    def describe_host_reservations(self, Filter: List[Filter]=None, HostReservationIdSet: List[HostReservationId]=None, MaxResults: int=None, NextToken: str=None) -> DescribeHostReservationsResult:
        r"""Describes reservations that are associated with Dedicated Hosts in your account.

        :param self:
        :param NextToken:  The token to use to retrieve the next page of results.<br/>MaxResults:  The maximum number of results to return for the request in a single page. The remaining results can be seen by sending another request with the returned <code>nextToken</code> value. This value can be between 5 and 500. If <code>maxResults</code> is given a larger value than 500, you receive an error.<br/>HostReservationIdSet:  The host reservation IDs.<br/>Filter:  The filters. <ul> <li>  <code>instance-family</code> - The instance family (for example, <code>m4</code>). </li> <li>  <code>payment-option</code> - The payment option (<code>NoUpfront</code> | <code>PartialUpfront</code> | <code>AllUpfront</code>). </li> <li>  <code>state</code> - The state of the reservation (<code>payment-pending</code> | <code>payment-failed</code> | <code>active</code> | <code>retired</code>). </li> <li>  <code>tag</code>:&lt;key&gt; - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key <code>Owner</code> and the value <code>TeamA</code>, specify <code>tag:Owner</code> for the filter name and <code>TeamA</code> for the filter value. </li> <li>  <code>tag-key</code> - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value. </li> </ul><br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>HostReservationSet:  Details about the reservation's configuration.<br/>        """
        pass

    def describe_hosts(self, Filter: List[Filter]=None, HostIds: List[DedicatedHostId]=None, MaxResults: int=None, NextToken: str=None) -> DescribeHostsResult:
        r"""Describes the specified Dedicated Hosts or all your Dedicated Hosts. The results describe only the Dedicated Hosts in the Region you're currently using. All listed instances consume capacity on your Dedicated Host. Dedicated Hosts that have recently been released are listed with the state <code>released</code>.

        :param self:
        :param NextToken:  The token to use to retrieve the next page of results.<br/>MaxResults:  The maximum number of results to return for the request in a single page. The remaining results can be seen by sending another request with the returned <code>nextToken</code> value. This value can be between 5 and 500. If <code>maxResults</code> is given a larger value than 500, you receive an error. You cannot specify this parameter and the host IDs parameter in the same request.<br/>HostIds:  The IDs of the Dedicated Hosts. The IDs are used for targeted instance launches.<br/>Filter:  The filters. <ul> <li>  <code>auto-placement</code> - Whether auto-placement is enabled or disabled (<code>on</code> | <code>off</code>). </li> <li>  <code>availability-zone</code> - The Availability Zone of the host. </li> <li>  <code>client-token</code> - The idempotency token that you provided when you allocated the host. </li> <li>  <code>host-reservation-id</code> - The ID of the reservation assigned to this host. </li> <li>  <code>instance-type</code> - The instance type size that the Dedicated Host is configured to support. </li> <li>  <code>state</code> - The allocation state of the Dedicated Host (<code>available</code> | <code>under-assessment</code> | <code>permanent-failure</code> | <code>released</code> | <code>released-permanent-failure</code>). </li> <li>  <code>tag-key</code> - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value. </li> </ul><br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>Hosts:  Information about the Dedicated Hosts.<br/>        """
        pass

    def describe_iam_instance_profile_associations(self, AssociationIds: List[IamInstanceProfileAssociationId]=None, Filters: List[Filter]=None, MaxResults: int=None, NextToken: str=None) -> DescribeIamInstanceProfileAssociationsResult:
        r"""Describes your IAM instance profile associations.

        :param self:
        :param NextToken:  The token to request the next page of results.<br/>MaxResults:  The maximum number of results to return in a single call. To retrieve the remaining results, make another call with the returned <code>NextToken</code> value.<br/>Filters:  The filters. <ul> <li>  <code>instance-id</code> - The ID of the instance. </li> <li>  <code>state</code> - The state of the association (<code>associating</code> | <code>associated</code> | <code>disassociating</code>). </li> </ul><br/>AssociationIds:  The IAM instance profile associations.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>IamInstanceProfileAssociations:  Information about the IAM instance profile associations.<br/>        """
        pass

    def describe_id_format(self, Resource: str=None) -> DescribeIdFormatResult:
        r"""Describes the ID format settings for your resources on a per-Region basis, for example, to view which resource types are enabled for longer IDs. This request only returns information about resource types whose ID formats can be modified; it does not return information about other resource types. The following resource types support longer IDs: <code>bundle</code> | <code>conversion-task</code> | <code>customer-gateway</code> | <code>dhcp-options</code> | <code>elastic-ip-allocation</code> | <code>elastic-ip-association</code> | <code>export-task</code> | <code>flow-log</code> | <code>image</code> | <code>import-task</code> | <code>instance</code> | <code>internet-gateway</code> | <code>network-acl</code> | <code>network-acl-association</code> | <code>network-interface</code> | <code>network-interface-attachment</code> | <code>prefix-list</code> | <code>reservation</code> | <code>route-table</code> | <code>route-table-association</code> | <code>security-group</code> | <code>snapshot</code> | <code>subnet</code> | <code>subnet-cidr-block-association</code> | <code>volume</code> | <code>vpc</code> | <code>vpc-cidr-block-association</code> | <code>vpc-endpoint</code> | <code>vpc-peering-connection</code> | <code>vpn-connection</code> | <code>vpn-gateway</code>.  These settings apply to the IAM user who makes the request; they do not apply to the entire AWS account. By default, an IAM user defaults to the same settings as the root user, unless they explicitly override the settings by running the <a>ModifyIdFormat</a> command. Resources created with longer IDs are visible to all IAM users, regardless of these settings and provided that they have permission to use the relevant <code>Describe</code> command for the resource type.

        :param self:
        :param Resource:  The type of resource: <code>bundle</code> | <code>conversion-task</code> | <code>customer-gateway</code> | <code>dhcp-options</code> | <code>elastic-ip-allocation</code> | <code>elastic-ip-association</code> | <code>export-task</code> | <code>flow-log</code> | <code>image</code> | <code>import-task</code> | <code>instance</code> | <code>internet-gateway</code> | <code>network-acl</code> | <code>network-acl-association</code> | <code>network-interface</code> | <code>network-interface-attachment</code> | <code>prefix-list</code> | <code>reservation</code> | <code>route-table</code> | <code>route-table-association</code> | <code>security-group</code> | <code>snapshot</code> | <code>subnet</code> | <code>subnet-cidr-block-association</code> | <code>volume</code> | <code>vpc</code> | <code>vpc-cidr-block-association</code> | <code>vpc-endpoint</code> | <code>vpc-peering-connection</code> | <code>vpn-connection</code> | <code>vpn-gateway</code> <br/>
        :return: Statuses:  Information about the ID format for the resource.<br/>        """
        pass

    def describe_identity_id_format(self, PrincipalArn: str, Resource: str=None) -> DescribeIdentityIdFormatResult:
        r"""Describes the ID format settings for resources for the specified IAM user, IAM role, or root user. For example, you can view the resource types that are enabled for longer IDs. This request only returns information about resource types whose ID formats can be modified; it does not return information about other resource types. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/resource-ids.html">Resource IDs</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.  The following resource types support longer IDs: <code>bundle</code> | <code>conversion-task</code> | <code>customer-gateway</code> | <code>dhcp-options</code> | <code>elastic-ip-allocation</code> | <code>elastic-ip-association</code> | <code>export-task</code> | <code>flow-log</code> | <code>image</code> | <code>import-task</code> | <code>instance</code> | <code>internet-gateway</code> | <code>network-acl</code> | <code>network-acl-association</code> | <code>network-interface</code> | <code>network-interface-attachment</code> | <code>prefix-list</code> | <code>reservation</code> | <code>route-table</code> | <code>route-table-association</code> | <code>security-group</code> | <code>snapshot</code> | <code>subnet</code> | <code>subnet-cidr-block-association</code> | <code>volume</code> | <code>vpc</code> | <code>vpc-cidr-block-association</code> | <code>vpc-endpoint</code> | <code>vpc-peering-connection</code> | <code>vpn-connection</code> | <code>vpn-gateway</code>.  These settings apply to the principal specified in the request. They do not apply to the principal that makes the request.

        :param self:
        :param Resource:  The type of resource: <code>bundle</code> | <code>conversion-task</code> | <code>customer-gateway</code> | <code>dhcp-options</code> | <code>elastic-ip-allocation</code> | <code>elastic-ip-association</code> | <code>export-task</code> | <code>flow-log</code> | <code>image</code> | <code>import-task</code> | <code>instance</code> | <code>internet-gateway</code> | <code>network-acl</code> | <code>network-acl-association</code> | <code>network-interface</code> | <code>network-interface-attachment</code> | <code>prefix-list</code> | <code>reservation</code> | <code>route-table</code> | <code>route-table-association</code> | <code>security-group</code> | <code>snapshot</code> | <code>subnet</code> | <code>subnet-cidr-block-association</code> | <code>volume</code> | <code>vpc</code> | <code>vpc-cidr-block-association</code> | <code>vpc-endpoint</code> | <code>vpc-peering-connection</code> | <code>vpn-connection</code> | <code>vpn-gateway</code> <br/>PrincipalArn:  The ARN of the principal, which can be an IAM role, IAM user, or the root user.<br/>
        :return: Statuses:  Information about the ID format for the resources.<br/>        """
        pass

    def describe_image_attribute(self, ImageId: str, Attribute: str, DryRun: Boolean=None) -> ImageAttribute:
        r"""Describes the specified attribute of the specified AMI. You can specify only one attribute at a time.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>ImageId:  The ID of the AMI.<br/>Attribute:  The AMI attribute.  <b>Note</b>: The <code>blockDeviceMapping</code> attribute is deprecated. Using this attribute returns the <code>Client.AuthFailure</code> error. To get information about the block device mappings for an AMI, use the <a>DescribeImages</a> action.<br/>
        :return: BootMode:  Describes a value for a resource attribute that is a String.:<br/>SriovNetSupport:  Indicates whether enhanced networking with the Intel 82599 Virtual Function interface is enabled.:<br/>RamdiskId:  The RAM disk ID.:<br/>KernelId:  The kernel ID.:<br/>Description:  A description for the AMI.:<br/>ProductCodes:  The product codes.<br/>LaunchPermissions:  The launch permissions.<br/>ImageId:  The ID of the AMI.<br/>BlockDeviceMappings:  The block device mapping entries.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Value</i> The attribute value. The value is case-sensitive.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Value</i> The attribute value. The value is case-sensitive.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Value</i> The attribute value. The value is case-sensitive.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Value</i> The attribute value. The value is case-sensitive.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Value</i> The attribute value. The value is case-sensitive.<br/>        """
        pass

    def describe_images(self, ExecutableUsers: List[String]=None, Filters: List[Filter]=None, ImageIds: List[ImageId]=None, Owners: List[String]=None, IncludeDeprecated: Boolean=None, DryRun: Boolean=None) -> DescribeImagesResult:
        r"""Describes the specified images (AMIs, AKIs, and ARIs) available to you or all of the images available to you. The images available to you include public images, private images that you own, and private images owned by other AWS accounts for which you have explicit launch permissions. Recently deregistered images appear in the returned results for a short interval and then return empty results. After all instances that reference a deregistered AMI are terminated, specifying the ID of the image will eventually return an error indicating that the AMI ID cannot be found.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>IncludeDeprecated:  If <code>true</code>, all deprecated AMIs are included in the response. If <code>false</code>, no deprecated AMIs are included in the response. If no value is specified, the default value is <code>false</code>. <note> If you are the AMI owner, all deprecated AMIs appear in the response regardless of the value (<code>true</code> or <code>false</code>) that you set for this parameter. </note><br/>Owners:  Scopes the results to images with the specified owners. You can specify a combination of AWS account IDs, <code>self</code>, <code>amazon</code>, and <code>aws-marketplace</code>. If you omit this parameter, the results include all images for which you have launch permissions, regardless of ownership.<br/>ImageIds:  The image IDs. Default: Describes all images available to you.<br/>Filters:  The filters. <ul> <li>  <code>architecture</code> - The image architecture (<code>i386</code> | <code>x86_64</code> | <code>arm64</code>). </li> <li>  <code>block-device-mapping.delete-on-termination</code> - A Boolean value that indicates whether the Amazon EBS volume is deleted on instance termination. </li> <li>  <code>block-device-mapping.device-name</code> - The device name specified in the block device mapping (for example, <code>/dev/sdh</code> or <code>xvdh</code>). </li> <li>  <code>block-device-mapping.snapshot-id</code> - The ID of the snapshot used for the EBS volume. </li> <li>  <code>block-device-mapping.volume-size</code> - The volume size of the EBS volume, in GiB. </li> <li>  <code>block-device-mapping.volume-type</code> - The volume type of the EBS volume (<code>gp2</code> | <code>io1</code> | <code>io2</code> | <code>st1 </code>| <code>sc1</code> | <code>standard</code>). </li> <li>  <code>block-device-mapping.encrypted</code> - A Boolean that indicates whether the EBS volume is encrypted. </li> <li>  <code>description</code> - The description of the image (provided during image creation). </li> <li>  <code>ena-support</code> - A Boolean that indicates whether enhanced networking with ENA is enabled. </li> <li>  <code>hypervisor</code> - The hypervisor type (<code>ovm</code> | <code>xen</code>). </li> <li>  <code>image-id</code> - The ID of the image. </li> <li>  <code>image-type</code> - The image type (<code>machine</code> | <code>kernel</code> | <code>ramdisk</code>). </li> <li>  <code>is-public</code> - A Boolean that indicates whether the image is public. </li> <li>  <code>kernel-id</code> - The kernel ID. </li> <li>  <code>manifest-location</code> - The location of the image manifest. </li> <li>  <code>name</code> - The name of the AMI (provided during image creation). </li> <li>  <code>owner-alias</code> - The owner alias (<code>amazon</code> | <code>aws-marketplace</code>). The valid aliases are defined in an Amazon-maintained list. This is not the AWS account alias that can be set using the IAM console. We recommend that you use the <b>Owner</b> request parameter instead of this filter. </li> <li>  <code>owner-id</code> - The AWS account ID of the owner. We recommend that you use the <b>Owner</b> request parameter instead of this filter. </li> <li>  <code>platform</code> - The platform. To only list Windows-based AMIs, use <code>windows</code>. </li> <li>  <code>product-code</code> - The product code. </li> <li>  <code>product-code.type</code> - The type of the product code (<code>devpay</code> | <code>marketplace</code>). </li> <li>  <code>ramdisk-id</code> - The RAM disk ID. </li> <li>  <code>root-device-name</code> - The device name of the root device volume (for example, <code>/dev/sda1</code>). </li> <li>  <code>root-device-type</code> - The type of the root device volume (<code>ebs</code> | <code>instance-store</code>). </li> <li>  <code>state</code> - The state of the image (<code>available</code> | <code>pending</code> | <code>failed</code>). </li> <li>  <code>state-reason-code</code> - The reason code for the state change. </li> <li>  <code>state-reason-message</code> - The message for the state change. </li> <li>  <code>sriov-net-support</code> - A value of <code>simple</code> indicates that enhanced networking with the Intel 82599 VF interface is enabled. </li> <li>  <code>tag</code>:&lt;key&gt; - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key <code>Owner</code> and the value <code>TeamA</code>, specify <code>tag:Owner</code> for the filter name and <code>TeamA</code> for the filter value. </li> <li>  <code>tag-key</code> - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value. </li> <li>  <code>virtualization-type</code> - The virtualization type (<code>paravirtual</code> | <code>hvm</code>). </li> </ul><br/>ExecutableUsers:  Scopes the images by users with explicit launch permissions. Specify an AWS account ID, <code>self</code> (the sender of the request), or <code>all</code> (public AMIs).<br/>
        :return: Images:  Information about the images.<br/>        """
        pass

    def describe_import_image_tasks(self, DryRun: Boolean=None, Filters: List[Filter]=None, ImportTaskIds: List[ImportImageTaskId]=None, MaxResults: int=None, NextToken: str=None) -> DescribeImportImageTasksResult:
        r"""Displays details about an import virtual machine or import snapshot tasks that are already created.

        :param self:
        :param NextToken:  A token that indicates the next page of results.<br/>MaxResults:  The maximum number of results to return in a single call.<br/>ImportTaskIds:  The IDs of the import image tasks.<br/>Filters:  Filter tasks using the <code>task-state</code> filter and one of the following values: <code>active</code>, <code>completed</code>, <code>deleting</code>, or <code>deleted</code>.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: NextToken:  The token to use to get the next page of results. This value is <code>null</code> when there are no more results to return.<br/>ImportImageTasks:  A list of zero or more import image tasks that are currently active or were completed or canceled in the previous 7 days.<br/>        """
        pass

    def describe_import_snapshot_tasks(self, DryRun: Boolean=None, Filters: List[Filter]=None, ImportTaskIds: List[ImportSnapshotTaskId]=None, MaxResults: int=None, NextToken: str=None) -> DescribeImportSnapshotTasksResult:
        r"""Describes your import snapshot tasks.

        :param self:
        :param NextToken:  A token that indicates the next page of results.<br/>MaxResults:  The maximum number of results to return in a single call. To retrieve the remaining results, make another call with the returned <code>NextToken</code> value.<br/>ImportTaskIds:  A list of import snapshot task IDs.<br/>Filters:  The filters.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: NextToken:  The token to use to get the next page of results. This value is <code>null</code> when there are no more results to return.<br/>ImportSnapshotTasks:  A list of zero or more import snapshot tasks that are currently active or were completed or canceled in the previous 7 days.<br/>        """
        pass

    def describe_instance_attribute(self, InstanceId: str, Attribute: str, DryRun: Boolean=None) -> InstanceAttribute:
        r"""Describes the specified attribute of the specified instance. You can specify only one attribute at a time. Valid attribute values are: <code>instanceType</code> | <code>kernel</code> | <code>ramdisk</code> | <code>userData</code> | <code>disableApiTermination</code> | <code>instanceInitiatedShutdownBehavior</code> | <code>rootDeviceName</code> | <code>blockDeviceMapping</code> | <code>productCodes</code> | <code>sourceDestCheck</code> | <code>groupSet</code> | <code>ebsOptimized</code> | <code>sriovNetSupport</code> 

        :param self:
        :param InstanceId:  The ID of the instance.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>Attribute:  The instance attribute. Note: The <code>enaSupport</code> attribute is not supported at this time.<br/>
        :return: UserData:  The user data.:<br/>SriovNetSupport:  Indicates whether enhanced networking with the Intel 82599 Virtual Function interface is enabled.:<br/>SourceDestCheck:  Enable or disable source/destination checks, which ensure that the instance is either the source or the destination of any traffic that it receives. If the value is <code>true</code>, source/destination checks are enabled; otherwise, they are disabled. The default value is <code>true</code>. You must disable source/destination checks if the instance runs services such as network address translation, routing, or firewalls.:<br/>RootDeviceName:  The device name of the root device volume (for example, <code>/dev/sda1</code>).:<br/>RamdiskId:  The RAM disk ID.:<br/>ProductCodes:  A list of product codes.<br/>KernelId:  The kernel ID.:<br/>InstanceType:  The instance type.:<br/>InstanceInitiatedShutdownBehavior:  Indicates whether an instance stops or terminates when you initiate shutdown from the instance (using the operating system command for system shutdown).:<br/>InstanceId:  The ID of the instance.<br/>EbsOptimized:  Indicates whether the instance is optimized for Amazon EBS I/O.:<br/>EnclaveOptions:  To enable the instance for Amazon Web Services Nitro Enclaves, set this parameter to <code>true</code>; otherwise, set it to <code>false</code>.:<br/>EnaSupport:  Indicates whether enhanced networking with ENA is enabled.:<br/>DisableApiTermination:  If the value is <code>true</code>, you can't terminate the instance through the Amazon EC2 console, CLI, or API; otherwise, you can.:<br/>BlockDeviceMappings:  The block device mapping of the instance.<br/>Groups:  The security groups associated with the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Value</i> The attribute value. The valid values are <code>true</code> or <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Value</i> The attribute value. The valid values are <code>true</code> or <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> If this parameter is set to <code>true</code>, the instance is enabled for Amazon Web Services Nitro Enclaves; otherwise, it is not enabled for Amazon Web Services Nitro Enclaves.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Value</i> The attribute value. The valid values are <code>true</code> or <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Value</i> The attribute value. The value is case-sensitive.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Value</i> The attribute value. The value is case-sensitive.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Value</i> The attribute value. The value is case-sensitive.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Value</i> The attribute value. The value is case-sensitive.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Value</i> The attribute value. The value is case-sensitive.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Value</i> The attribute value. The valid values are <code>true</code> or <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Value</i> The attribute value. The value is case-sensitive.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Value</i> The attribute value. The value is case-sensitive.<br/>        """
        pass

    def describe_instance_credit_specifications(self, DryRun: Boolean=None, Filters: List[Filter]=None, InstanceIds: List[InstanceId]=None, MaxResults: int=None, NextToken: str=None) -> DescribeInstanceCreditSpecificationsResult:
        r"""Describes the credit option for CPU usage of the specified burstable performance instances. The credit options are <code>standard</code> and <code>unlimited</code>. If you do not specify an instance ID, Amazon EC2 returns burstable performance instances with the <code>unlimited</code> credit option, as well as instances that were previously configured as T2, T3, and T3a with the <code>unlimited</code> credit option. For example, if you resize a T2 instance, while it is configured as <code>unlimited</code>, to an M4 instance, Amazon EC2 returns the M4 instance. If you specify one or more instance IDs, Amazon EC2 returns the credit option (<code>standard</code> or <code>unlimited</code>) of those instances. If you specify an instance ID that is not valid, such as an instance that is not a burstable performance instance, an error is returned. Recently terminated instances might appear in the returned results. This interval is usually less than one hour. If an Availability Zone is experiencing a service disruption and you specify instance IDs in the affected zone, or do not specify any instance IDs at all, the call fails. If you specify only instance IDs in an unaffected zone, the call works normally. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html">Burstable performance instances</a> in the <i>Amazon EC2 User Guide</i>.

        :param self:
        :param NextToken:  The token to retrieve the next page of results.<br/>MaxResults:  The maximum number of results to return in a single call. To retrieve the remaining results, make another call with the returned <code>NextToken</code> value. This value can be between 5 and 1000. You cannot specify this parameter and the instance IDs parameter in the same call.<br/>InstanceIds:  The instance IDs. Default: Describes all your instances. Constraints: Maximum 1000 explicitly specified instance IDs.<br/>Filters:  The filters. <ul> <li>  <code>instance-id</code> - The ID of the instance. </li> </ul><br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>InstanceCreditSpecifications:  Information about the credit option for CPU usage of an instance.<br/>        """
        pass

    def describe_instance_event_notification_attributes(self, DryRun: Boolean=None) -> DescribeInstanceEventNotificationAttributesResult:
        r"""Describes the tag keys that are registered to appear in scheduled event notifications for resources in the current Region.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: InstanceTagAttribute:  Information about the registered tag keys.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeAllTagsOfInstance</i> Indicates wheter all tag keys in the current Region are registered to appear in scheduled event notifications. <code>true</code> indicates that all tag keys in the current Region are registered.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceTagKeys</i> The registered tag keys.<br/>        """
        pass

    def describe_instance_status(self, Filters: List[Filter]=None, InstanceIds: List[InstanceId]=None, MaxResults: int=None, NextToken: str=None, DryRun: Boolean=None, IncludeAllInstances: Boolean=None) -> DescribeInstanceStatusResult:
        r"""Describes the status of the specified instances or all of your instances. By default, only running instances are described, unless you specifically indicate to return the status of all instances. Instance status includes the following components: <ul> <li>  <b>Status checks</b> - Amazon EC2 performs status checks on running EC2 instances to identify hardware and software issues. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/monitoring-system-instance-status-check.html">Status checks for your instances</a> and <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/TroubleshootingInstances.html">Troubleshooting instances with failed status checks</a> in the <i>Amazon EC2 User Guide</i>. </li> <li>  <b>Scheduled events</b> - Amazon EC2 can schedule events (such as reboot, stop, or terminate) for your instances related to hardware issues, software updates, or system maintenance. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/monitoring-instances-status-check_sched.html">Scheduled events for your instances</a> in the <i>Amazon EC2 User Guide</i>. </li> <li>  <b>Instance state</b> - You can manage your instances from the moment you launch them through their termination. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-lifecycle.html">Instance lifecycle</a> in the <i>Amazon EC2 User Guide</i>. </li> </ul>

        :param self:
        :param IncludeAllInstances:  When <code>true</code>, includes the health status for all instances. When <code>false</code>, includes the health status for running instances only. Default: <code>false</code> <br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>NextToken:  The token to retrieve the next page of results.<br/>MaxResults:  The maximum number of results to return in a single call. To retrieve the remaining results, make another call with the returned <code>NextToken</code> value. This value can be between 5 and 1000. You cannot specify this parameter and the instance IDs parameter in the same call.<br/>InstanceIds:  The instance IDs. Default: Describes all your instances. Constraints: Maximum 100 explicitly specified instance IDs.<br/>Filters:  The filters. <ul> <li>  <code>availability-zone</code> - The Availability Zone of the instance. </li> <li>  <code>event.code</code> - The code for the scheduled event (<code>instance-reboot</code> | <code>system-reboot</code> | <code>system-maintenance</code> | <code>instance-retirement</code> | <code>instance-stop</code>). </li> <li>  <code>event.description</code> - A description of the event. </li> <li>  <code>event.instance-event-id</code> - The ID of the event whose date and time you are modifying. </li> <li>  <code>event.not-after</code> - The latest end time for the scheduled event (for example, <code>2014-09-15T17:15:20.000Z</code>). </li> <li>  <code>event.not-before</code> - The earliest start time for the scheduled event (for example, <code>2014-09-15T17:15:20.000Z</code>). </li> <li>  <code>event.not-before-deadline</code> - The deadline for starting the event (for example, <code>2014-09-15T17:15:20.000Z</code>). </li> <li>  <code>instance-state-code</code> - The code for the instance state, as a 16-bit unsigned integer. The high byte is used for internal purposes and should be ignored. The low byte is set based on the state represented. The valid values are 0 (pending), 16 (running), 32 (shutting-down), 48 (terminated), 64 (stopping), and 80 (stopped). </li> <li>  <code>instance-state-name</code> - The state of the instance (<code>pending</code> | <code>running</code> | <code>shutting-down</code> | <code>terminated</code> | <code>stopping</code> | <code>stopped</code>). </li> <li>  <code>instance-status.reachability</code> - Filters on instance status where the name is <code>reachability</code> (<code>passed</code> | <code>failed</code> | <code>initializing</code> | <code>insufficient-data</code>). </li> <li>  <code>instance-status.status</code> - The status of the instance (<code>ok</code> | <code>impaired</code> | <code>initializing</code> | <code>insufficient-data</code> | <code>not-applicable</code>). </li> <li>  <code>system-status.reachability</code> - Filters on system status where the name is <code>reachability</code> (<code>passed</code> | <code>failed</code> | <code>initializing</code> | <code>insufficient-data</code>). </li> <li>  <code>system-status.status</code> - The system status of the instance (<code>ok</code> | <code>impaired</code> | <code>initializing</code> | <code>insufficient-data</code> | <code>not-applicable</code>). </li> </ul><br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>InstanceStatuses:  Information about the status of the instances.<br/>        """
        pass

    def describe_instance_type_offerings(self, DryRun: Boolean=None, LocationType: str=None, Filters: List[Filter]=None, MaxResults: int=None, NextToken: str=None) -> DescribeInstanceTypeOfferingsResult:
        r"""Returns a list of all instance types offered. The results can be filtered by location (Region or Availability Zone). If no location is specified, the instance types offered in the current Region are returned.

        :param self:
        :param NextToken:  The token to retrieve the next page of results.<br/>MaxResults:  The maximum number of results to return for the request in a single page. The remaining results can be seen by sending another request with the next token value.<br/>Filters:  One or more filters. Filter names and values are case-sensitive. <ul> <li>  <code>location</code> - This depends on the location type. For example, if the location type is <code>region</code> (default), the location is the Region code (for example, <code>us-east-2</code>.) </li> <li>  <code>instance-type</code> - The instance type. For example, <code>c5.2xlarge</code>. </li> </ul><br/>LocationType:  The location type.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>InstanceTypeOfferings:  The instance types offered.<br/>        """
        pass

    def describe_instance_types(self, DryRun: Boolean=None, InstanceTypes: List[InstanceType]=None, Filters: List[Filter]=None, MaxResults: int=None, NextToken: str=None) -> DescribeInstanceTypesResult:
        r"""Describes the details of the instance types that are offered in a location. The results can be filtered by the attributes of the instance types.

        :param self:
        :param NextToken:  The token to retrieve the next page of results.<br/>MaxResults:  The maximum number of results to return for the request in a single page. The remaining results can be seen by sending another request with the next token value.<br/>Filters:  One or more filters. Filter names and values are case-sensitive. <ul> <li>  <code>auto-recovery-supported</code> - Indicates whether auto recovery is supported (<code>true</code> | <code>false</code>). </li> <li>  <code>bare-metal</code> - Indicates whether it is a bare metal instance type (<code>true</code> | <code>false</code>). </li> <li>  <code>burstable-performance-supported</code> - Indicates whether it is a burstable performance instance type (<code>true</code> | <code>false</code>). </li> <li>  <code>current-generation</code> - Indicates whether this instance type is the latest generation instance type of an instance family (<code>true</code> | <code>false</code>). </li> <li>  <code>ebs-info.ebs-optimized-info.baseline-bandwidth-in-mbps</code> - The baseline bandwidth performance for an EBS-optimized instance type, in Mbps. </li> <li>  <code>ebs-info.ebs-optimized-info.baseline-iops</code> - The baseline input/output storage operations per second for an EBS-optimized instance type. </li> <li>  <code>ebs-info.ebs-optimized-info.baseline-throughput-in-mbps</code> - The baseline throughput performance for an EBS-optimized instance type, in MB/s. </li> <li>  <code>ebs-info.ebs-optimized-info.maximum-bandwidth-in-mbps</code> - The maximum bandwidth performance for an EBS-optimized instance type, in Mbps. </li> <li>  <code>ebs-info.ebs-optimized-info.maximum-iops</code> - The maximum input/output storage operations per second for an EBS-optimized instance type. </li> <li>  <code>ebs-info.ebs-optimized-info.maximum-throughput-in-mbps</code> - The maximum throughput performance for an EBS-optimized instance type, in MB/s. </li> <li>  <code>ebs-info.ebs-optimized-support</code> - Indicates whether the instance type is EBS-optimized (<code>supported</code> | <code>unsupported</code> | <code>default</code>). </li> <li>  <code>ebs-info.encryption-support</code> - Indicates whether EBS encryption is supported (<code>supported</code> | <code>unsupported</code>). </li> <li>  <code>ebs-info.nvme-support</code> - Indicates whether non-volatile memory express (NVMe) is supported for EBS volumes (<code>required</code> | <code>supported</code> | <code>unsupported</code>). </li> <li>  <code>free-tier-eligible</code> - Indicates whether the instance type is eligible to use in the free tier (<code>true</code> | <code>false</code>). </li> <li>  <code>hibernation-supported</code> - Indicates whether On-Demand hibernation is supported (<code>true</code> | <code>false</code>). </li> <li>  <code>hypervisor</code> - The hypervisor (<code>nitro</code> | <code>xen</code>). </li> <li>  <code>instance-storage-info.disk.count</code> - The number of local disks. </li> <li>  <code>instance-storage-info.disk.size-in-gb</code> - The storage size of each instance storage disk, in GB. </li> <li>  <code>instance-storage-info.disk.type</code> - The storage technology for the local instance storage disks (<code>hdd</code> | <code>ssd</code>). </li> <li>  <code>instance-storage-info.nvme-support</code> - Indicates whether non-volatile memory express (NVMe) is supported for instance store (<code>required</code> | <code>supported</code>) | <code>unsupported</code>). </li> <li>  <code>instance-storage-info.total-size-in-gb</code> - The total amount of storage available from all local instance storage, in GB. </li> <li>  <code>instance-storage-supported</code> - Indicates whether the instance type has local instance storage (<code>true</code> | <code>false</code>). </li> <li>  <code>instance-type</code> - The instance type (for example <code>c5.2xlarge</code> or c5*). </li> <li>  <code>memory-info.size-in-mib</code> - The memory size. </li> <li>  <code>network-info.efa-info.maximum-efa-interfaces</code> - The maximum number of Elastic Fabric Adapters (EFAs) per instance. </li> <li>  <code>network-info.efa-supported</code> - Indicates whether the instance type supports Elastic Fabric Adapter (EFA) (<code>true</code> | <code>false</code>). </li> <li>  <code>network-info.ena-support</code> - Indicates whether Elastic Network Adapter (ENA) is supported or required (<code>required</code> | <code>supported</code> | <code>unsupported</code>). </li> <li>  <code>network-info.ipv4-addresses-per-interface</code> - The maximum number of private IPv4 addresses per network interface. </li> <li>  <code>network-info.ipv6-addresses-per-interface</code> - The maximum number of private IPv6 addresses per network interface. </li> <li>  <code>network-info.ipv6-supported</code> - Indicates whether the instance type supports IPv6 (<code>true</code> | <code>false</code>). </li> <li>  <code>network-info.maximum-network-interfaces</code> - The maximum number of network interfaces per instance. </li> <li>  <code>network-info.network-performance</code> - The network performance (for example, "25 Gigabit"). </li> <li>  <code>processor-info.supported-architecture</code> - The CPU architecture (<code>arm64</code> | <code>i386</code> | <code>x86_64</code>). </li> <li>  <code>processor-info.sustained-clock-speed-in-ghz</code> - The CPU clock speed, in GHz. </li> <li>  <code>supported-boot-mode</code> - The boot mode (<code>legacy-bios</code> | <code>uefi</code>). </li> <li>  <code>supported-root-device-type</code> - The root device type (<code>ebs</code> | <code>instance-store</code>). </li> <li>  <code>supported-usage-class</code> - The usage class (<code>on-demand</code> | <code>spot</code>). </li> <li>  <code>supported-virtualization-type</code> - The virtualization type (<code>hvm</code> | <code>paravirtual</code>). </li> <li>  <code>vcpu-info.default-cores</code> - The default number of cores for the instance type. </li> <li>  <code>vcpu-info.default-threads-per-core</code> - The default number of threads per core for the instance type. </li> <li>  <code>vcpu-info.default-vcpus</code> - The default number of vCPUs for the instance type. </li> <li>  <code>vcpu-info.valid-cores</code> - The number of cores that can be configured for the instance type. </li> <li>  <code>vcpu-info.valid-threads-per-core</code> - The number of threads per core that can be configured for the instance type. For example, "1" or "1,2". </li> </ul><br/>InstanceTypes:  The instance types. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html">Instance types</a> in the <i>Amazon EC2 User Guide</i>.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>InstanceTypes:  The instance type. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html">Instance types</a> in the <i>Amazon EC2 User Guide</i>.<br/>        """
        pass

    def describe_instances(self, Filters: List[Filter]=None, InstanceIds: List[InstanceId]=None, DryRun: Boolean=None, MaxResults: int=None, NextToken: str=None) -> DescribeInstancesResult:
        r"""Describes the specified instances or all instances. If you specify instance IDs, the output includes information for only the specified instances. If you specify filters, the output includes information for only those instances that meet the filter criteria. If you do not specify instance IDs or filters, the output includes information for all instances, which can affect performance. We recommend that you use pagination to ensure that the operation returns quickly and successfully. If you specify an instance ID that is not valid, an error is returned. If you specify an instance that you do not own, it is not included in the output. Recently terminated instances might appear in the returned results. This interval is usually less than one hour. If you describe instances in the rare case where an Availability Zone is experiencing a service disruption and you specify instance IDs that are in the affected zone, or do not specify any instance IDs at all, the call fails. If you describe instances and specify only instance IDs that are in an unaffected zone, the call works normally.

        :param self:
        :param NextToken:  The token to request the next page of results.<br/>MaxResults:  The maximum number of results to return in a single call. To retrieve the remaining results, make another call with the returned <code>NextToken</code> value. This value can be between 5 and 1000. You cannot specify this parameter and the instance IDs parameter in the same call.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>InstanceIds:  The instance IDs. Default: Describes all your instances.<br/>Filters:  The filters. <ul> <li>  <code>affinity</code> - The affinity setting for an instance running on a Dedicated Host (<code>default</code> | <code>host</code>). </li> <li>  <code>architecture</code> - The instance architecture (<code>i386</code> | <code>x86_64</code> | <code>arm64</code>). </li> <li>  <code>availability-zone</code> - The Availability Zone of the instance. </li> <li>  <code>block-device-mapping.attach-time</code> - The attach time for an EBS volume mapped to the instance, for example, <code>2010-09-15T17:15:20.000Z</code>. </li> <li>  <code>block-device-mapping.delete-on-termination</code> - A Boolean that indicates whether the EBS volume is deleted on instance termination. </li> <li>  <code>block-device-mapping.device-name</code> - The device name specified in the block device mapping (for example, <code>/dev/sdh</code> or <code>xvdh</code>). </li> <li>  <code>block-device-mapping.status</code> - The status for the EBS volume (<code>attaching</code> | <code>attached</code> | <code>detaching</code> | <code>detached</code>). </li> <li>  <code>block-device-mapping.volume-id</code> - The volume ID of the EBS volume. </li> <li>  <code>client-token</code> - The idempotency token you provided when you launched the instance. </li> <li>  <code>dns-name</code> - The public DNS name of the instance. </li> <li>  <code>group-id</code> - The ID of the security group for the instance. EC2-Classic only. </li> <li>  <code>group-name</code> - The name of the security group for the instance. EC2-Classic only. </li> <li>  <code>hibernation-options.configured</code> - A Boolean that indicates whether the instance is enabled for hibernation. A value of <code>true</code> means that the instance is enabled for hibernation.  </li> <li>  <code>host-id</code> - The ID of the Dedicated Host on which the instance is running, if applicable. </li> <li>  <code>hypervisor</code> - The hypervisor type of the instance (<code>ovm</code> | <code>xen</code>). The value <code>xen</code> is used for both Xen and Nitro hypervisors. </li> <li>  <code>iam-instance-profile.arn</code> - The instance profile associated with the instance. Specified as an ARN. </li> <li>  <code>image-id</code> - The ID of the image used to launch the instance. </li> <li>  <code>instance-id</code> - The ID of the instance. </li> <li>  <code>instance-lifecycle</code> - Indicates whether this is a Spot Instance or a Scheduled Instance (<code>spot</code> | <code>scheduled</code>). </li> <li>  <code>instance-state-code</code> - The state of the instance, as a 16-bit unsigned integer. The high byte is used for internal purposes and should be ignored. The low byte is set based on the state represented. The valid values are: 0 (pending), 16 (running), 32 (shutting-down), 48 (terminated), 64 (stopping), and 80 (stopped). </li> <li>  <code>instance-state-name</code> - The state of the instance (<code>pending</code> | <code>running</code> | <code>shutting-down</code> | <code>terminated</code> | <code>stopping</code> | <code>stopped</code>). </li> <li>  <code>instance-type</code> - The type of instance (for example, <code>t2.micro</code>). </li> <li>  <code>instance.group-id</code> - The ID of the security group for the instance.  </li> <li>  <code>instance.group-name</code> - The name of the security group for the instance.  </li> <li>  <code>ip-address</code> - The public IPv4 address of the instance. </li> <li>  <code>kernel-id</code> - The kernel ID. </li> <li>  <code>key-name</code> - The name of the key pair used when the instance was launched. </li> <li>  <code>launch-index</code> - When launching multiple instances, this is the index for the instance in the launch group (for example, 0, 1, 2, and so on).  </li> <li>  <code>launch-time</code> - The time when the instance was launched. </li> <li>  <code>metadata-options.http-tokens</code> - The metadata request authorization state (<code>optional</code> | <code>required</code>) </li> <li>  <code>metadata-options.http-put-response-hop-limit</code> - The http metadata request put response hop limit (integer, possible values <code>1</code> to <code>64</code>) </li> <li>  <code>metadata-options.http-endpoint</code> - Enable or disable metadata access on http endpoint (<code>enabled</code> | <code>disabled</code>) </li> <li>  <code>monitoring-state</code> - Indicates whether detailed monitoring is enabled (<code>disabled</code> | <code>enabled</code>). </li> <li>  <code>network-interface.addresses.private-ip-address</code> - The private IPv4 address associated with the network interface. </li> <li>  <code>network-interface.addresses.primary</code> - Specifies whether the IPv4 address of the network interface is the primary private IPv4 address. </li> <li>  <code>network-interface.addresses.association.public-ip</code> - The ID of the association of an Elastic IP address (IPv4) with a network interface. </li> <li>  <code>network-interface.addresses.association.ip-owner-id</code> - The owner ID of the private IPv4 address associated with the network interface. </li> <li>  <code>network-interface.association.public-ip</code> - The address of the Elastic IP address (IPv4) bound to the network interface. </li> <li>  <code>network-interface.association.ip-owner-id</code> - The owner of the Elastic IP address (IPv4) associated with the network interface. </li> <li>  <code>network-interface.association.allocation-id</code> - The allocation ID returned when you allocated the Elastic IP address (IPv4) for your network interface. </li> <li>  <code>network-interface.association.association-id</code> - The association ID returned when the network interface was associated with an IPv4 address. </li> <li>  <code>network-interface.attachment.attachment-id</code> - The ID of the interface attachment. </li> <li>  <code>network-interface.attachment.instance-id</code> - The ID of the instance to which the network interface is attached. </li> <li>  <code>network-interface.attachment.instance-owner-id</code> - The owner ID of the instance to which the network interface is attached. </li> <li>  <code>network-interface.attachment.device-index</code> - The device index to which the network interface is attached. </li> <li>  <code>network-interface.attachment.status</code> - The status of the attachment (<code>attaching</code> | <code>attached</code> | <code>detaching</code> | <code>detached</code>). </li> <li>  <code>network-interface.attachment.attach-time</code> - The time that the network interface was attached to an instance. </li> <li>  <code>network-interface.attachment.delete-on-termination</code> - Specifies whether the attachment is deleted when an instance is terminated. </li> <li>  <code>network-interface.availability-zone</code> - The Availability Zone for the network interface. </li> <li>  <code>network-interface.description</code> - The description of the network interface. </li> <li>  <code>network-interface.group-id</code> - The ID of a security group associated with the network interface. </li> <li>  <code>network-interface.group-name</code> - The name of a security group associated with the network interface. </li> <li>  <code>network-interface.ipv6-addresses.ipv6-address</code> - The IPv6 address associated with the network interface. </li> <li>  <code>network-interface.mac-address</code> - The MAC address of the network interface. </li> <li>  <code>network-interface.network-interface-id</code> - The ID of the network interface. </li> <li>  <code>network-interface.owner-id</code> - The ID of the owner of the network interface. </li> <li>  <code>network-interface.private-dns-name</code> - The private DNS name of the network interface. </li> <li>  <code>network-interface.requester-id</code> - The requester ID for the network interface. </li> <li>  <code>network-interface.requester-managed</code> - Indicates whether the network interface is being managed by Amazon Web Services. </li> <li>  <code>network-interface.status</code> - The status of the network interface (<code>available</code>) | <code>in-use</code>). </li> <li>  <code>network-interface.source-dest-check</code> - Whether the network interface performs source/destination checking. A value of <code>true</code> means that checking is enabled, and <code>false</code> means that checking is disabled. The value must be <code>false</code> for the network interface to perform network address translation (NAT) in your VPC. </li> <li>  <code>network-interface.subnet-id</code> - The ID of the subnet for the network interface. </li> <li>  <code>network-interface.vpc-id</code> - The ID of the VPC for the network interface. </li> <li>  <code>outpost-arn</code> - The Amazon Resource Name (ARN) of the Outpost. </li> <li>  <code>owner-id</code> - The account ID of the instance owner. </li> <li>  <code>placement-group-name</code> - The name of the placement group for the instance. </li> <li>  <code>placement-partition-number</code> - The partition in which the instance is located. </li> <li>  <code>platform</code> - The platform. To list only Windows instances, use <code>windows</code>. </li> <li>  <code>private-dns-name</code> - The private IPv4 DNS name of the instance. </li> <li>  <code>private-ip-address</code> - The private IPv4 address of the instance. </li> <li>  <code>product-code</code> - The product code associated with the AMI used to launch the instance. </li> <li>  <code>product-code.type</code> - The type of product code (<code>devpay</code> | <code>marketplace</code>). </li> <li>  <code>ramdisk-id</code> - The RAM disk ID. </li> <li>  <code>reason</code> - The reason for the current state of the instance (for example, shows "User Initiated [date]" when you stop or terminate the instance). Similar to the state-reason-code filter. </li> <li>  <code>requester-id</code> - The ID of the entity that launched the instance on your behalf (for example, Management Console, Auto Scaling, and so on). </li> <li>  <code>reservation-id</code> - The ID of the instance's reservation. A reservation ID is created any time you launch an instance. A reservation ID has a one-to-one relationship with an instance launch request, but can be associated with more than one instance if you launch multiple instances using the same launch request. For example, if you launch one instance, you get one reservation ID. If you launch ten instances using the same launch request, you also get one reservation ID. </li> <li>  <code>root-device-name</code> - The device name of the root device volume (for example, <code>/dev/sda1</code>). </li> <li>  <code>root-device-type</code> - The type of the root device volume (<code>ebs</code> | <code>instance-store</code>). </li> <li>  <code>source-dest-check</code> - Indicates whether the instance performs source/destination checking. A value of <code>true</code> means that checking is enabled, and <code>false</code> means that checking is disabled. The value must be <code>false</code> for the instance to perform network address translation (NAT) in your VPC.  </li> <li>  <code>spot-instance-request-id</code> - The ID of the Spot Instance request. </li> <li>  <code>state-reason-code</code> - The reason code for the state change. </li> <li>  <code>state-reason-message</code> - A message that describes the state change. </li> <li>  <code>subnet-id</code> - The ID of the subnet for the instance. </li> <li>  <code>tag</code>:&lt;key&gt; - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key <code>Owner</code> and the value <code>TeamA</code>, specify <code>tag:Owner</code> for the filter name and <code>TeamA</code> for the filter value. </li> <li>  <code>tag-key</code> - The key of a tag assigned to the resource. Use this filter to find all resources that have a tag with a specific key, regardless of the tag value. </li> <li>  <code>tenancy</code> - The tenancy of an instance (<code>dedicated</code> | <code>default</code> | <code>host</code>). </li> <li>  <code>virtualization-type</code> - The virtualization type of the instance (<code>paravirtual</code> | <code>hvm</code>). </li> <li>  <code>vpc-id</code> - The ID of the VPC that the instance is running in. </li> </ul><br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>Reservations:  Information about the reservations.<br/>        """
        pass

    def describe_internet_gateways(self, Filters: List[Filter]=None, DryRun: Boolean=None, InternetGatewayIds: List[InternetGatewayId]=None, NextToken: str=None, MaxResults: int=None) -> DescribeInternetGatewaysResult:
        r"""Describes one or more of your internet gateways.

        :param self:
        :param MaxResults:  The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.<br/>NextToken:  The token for the next page of results.<br/>InternetGatewayIds:  One or more internet gateway IDs. Default: Describes all your internet gateways.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>Filters:  One or more filters. <ul> <li>  <code>attachment.state</code> - The current state of the attachment between the gateway and the VPC (<code>available</code>). Present only if a VPC is attached. </li> <li>  <code>attachment.vpc-id</code> - The ID of an attached VPC. </li> <li>  <code>internet-gateway-id</code> - The ID of the Internet gateway. </li> <li>  <code>owner-id</code> - The ID of the AWS account that owns the internet gateway. </li> <li>  <code>tag</code>:&lt;key&gt; - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key <code>Owner</code> and the value <code>TeamA</code>, specify <code>tag:Owner</code> for the filter name and <code>TeamA</code> for the filter value. </li> <li>  <code>tag-key</code> - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value. </li> </ul><br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>InternetGateways:  Information about one or more internet gateways.<br/>        """
        pass

    def describe_ipv6_pools(self, PoolIds: List[Ipv6PoolEc2Id]=None, NextToken: str=None, MaxResults: int=None, DryRun: Boolean=None, Filters: List[Filter]=None) -> DescribeIpv6PoolsResult:
        r"""Describes your IPv6 address pools.

        :param self:
        :param Filters:  One or more filters. <ul> <li>  <code>tag</code>:&lt;key&gt; - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key <code>Owner</code> and the value <code>TeamA</code>, specify <code>tag:Owner</code> for the filter name and <code>TeamA</code> for the filter value. </li> <li>  <code>tag-key</code> - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value. </li> </ul><br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>MaxResults:  The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.<br/>NextToken:  The token for the next page of results.<br/>PoolIds:  The IDs of the IPv6 address pools.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>Ipv6Pools:  Information about the IPv6 address pools.<br/>        """
        pass

    def describe_key_pairs(self, Filters: List[Filter]=None, KeyNames: List[KeyPairName]=None, KeyPairIds: List[KeyPairId]=None, DryRun: Boolean=None) -> DescribeKeyPairsResult:
        r"""Describes the specified key pairs or all of your key pairs. For more information about key pairs, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html">Key Pairs</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>KeyPairIds:  The IDs of the key pairs.<br/>KeyNames:  The key pair names. Default: Describes all of your key pairs.<br/>Filters:  The filters. <ul> <li>  <code>key-pair-id</code> - The ID of the key pair. </li> <li>  <code>fingerprint</code> - The fingerprint of the key pair. </li> <li>  <code>key-name</code> - The name of the key pair. </li> <li>  <code>tag-key</code> - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value. </li> <li>  <code>tag</code>:&lt;key&gt; - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key <code>Owner</code> and the value <code>TeamA</code>, specify <code>tag:Owner</code> for the filter name and <code>TeamA</code> for the filter value. </li> </ul><br/>
        :return: KeyPairs:  Information about the key pairs.<br/>        """
        pass

    def describe_launch_template_versions(self, DryRun: Boolean=None, LaunchTemplateId: str=None, LaunchTemplateName: str=None, Versions: List[String]=None, MinVersion: str=None, MaxVersion: str=None, NextToken: str=None, MaxResults: int=None, Filters: List[Filter]=None) -> DescribeLaunchTemplateVersionsResult:
        r"""Describes one or more versions of a specified launch template. You can describe all versions, individual versions, or a range of versions. You can also describe all the latest versions or all the default versions of all the launch templates in your account.

        :param self:
        :param Filters:  One or more filters. <ul> <li>  <code>create-time</code> - The time the launch template version was created. </li> <li>  <code>ebs-optimized</code> - A boolean that indicates whether the instance is optimized for Amazon EBS I/O. </li> <li>  <code>iam-instance-profile</code> - The ARN of the IAM instance profile. </li> <li>  <code>image-id</code> - The ID of the AMI. </li> <li>  <code>instance-type</code> - The instance type. </li> <li>  <code>is-default-version</code> - A boolean that indicates whether the launch template version is the default version. </li> <li>  <code>kernel-id</code> - The kernel ID. </li> <li>  <code>ram-disk-id</code> - The RAM disk ID. </li> </ul><br/>MaxResults:  The maximum number of results to return in a single call. To retrieve the remaining results, make another call with the returned <code>NextToken</code> value. This value can be between 1 and 200.<br/>NextToken:  The token to request the next page of results.<br/>MaxVersion:  The version number up to which to describe launch template versions.<br/>MinVersion:  The version number after which to describe launch template versions.<br/>Versions:  One or more versions of the launch template. Valid values depend on whether you are describing a specified launch template (by ID or name) or all launch templates in your account. To describe one or more versions of a specified launch template, valid values are <code>$Latest</code>, <code>$Default</code>, and numbers. To describe all launch templates in your account that are defined as the latest version, the valid value is <code>$Latest</code>. To describe all launch templates in your account that are defined as the default version, the valid value is <code>$Default</code>. You can specify <code>$Latest</code> and <code>$Default</code> in the same call. You cannot specify numbers.<br/>LaunchTemplateName:  The name of the launch template. To describe one or more versions of a specified launch template, you must specify either the launch template ID or the launch template name in the request. To describe all the latest or default launch template versions in your account, you must omit this parameter.<br/>LaunchTemplateId:  The ID of the launch template. To describe one or more versions of a specified launch template, you must specify either the launch template ID or the launch template name in the request. To describe all the latest or default launch template versions in your account, you must omit this parameter.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>LaunchTemplateVersions:  Information about the launch template versions.<br/>        """
        pass

    def describe_launch_templates(self, DryRun: Boolean=None, LaunchTemplateIds: List[LaunchTemplateId]=None, LaunchTemplateNames: List[LaunchTemplateName]=None, Filters: List[Filter]=None, NextToken: str=None, MaxResults: int=None) -> DescribeLaunchTemplatesResult:
        r"""Describes one or more launch templates.

        :param self:
        :param MaxResults:  The maximum number of results to return in a single call. To retrieve the remaining results, make another call with the returned <code>NextToken</code> value. This value can be between 1 and 200.<br/>NextToken:  The token to request the next page of results.<br/>Filters:  One or more filters. <ul> <li>  <code>create-time</code> - The time the launch template was created. </li> <li>  <code>launch-template-name</code> - The name of the launch template. </li> <li>  <code>tag</code>:&lt;key&gt; - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key <code>Owner</code> and the value <code>TeamA</code>, specify <code>tag:Owner</code> for the filter name and <code>TeamA</code> for the filter value. </li> <li>  <code>tag-key</code> - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value. </li> </ul><br/>LaunchTemplateNames:  One or more launch template names.<br/>LaunchTemplateIds:  One or more launch template IDs.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>LaunchTemplates:  Information about the launch templates.<br/>        """
        pass

    def describe_local_gateway_route_table_virtual_interface_group_associations(self, LocalGatewayRouteTableVirtualInterfaceGroupAssociationIds: List[LocalGatewayRouteTableVirtualInterfaceGroupAssociationId]=None, Filters: List[Filter]=None, MaxResults: int=None, NextToken: str=None, DryRun: Boolean=None) -> DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsResult:
        r"""Describes the associations between virtual interface groups and local gateway route tables.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>NextToken:  The token for the next page of results.<br/>MaxResults:  The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.<br/>Filters:  One or more filters. <ul> <li>  <code>local-gateway-id</code> - The ID of a local gateway. </li> <li>  <code>local-gateway-route-table-id</code> - The ID of the local gateway route table. </li> <li>  <code>local-gateway-route-table-virtual-interface-group-association-id</code> - The ID of the association. </li> <li>  <code>local-gateway-route-table-virtual-interface-group-id</code> - The ID of the virtual interface group. </li> <li>  <code>state</code> - The state of the association. </li> </ul><br/>LocalGatewayRouteTableVirtualInterfaceGroupAssociationIds:  The IDs of the associations.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>LocalGatewayRouteTableVirtualInterfaceGroupAssociations:  Information about the associations.<br/>        """
        pass

    def describe_local_gateway_route_table_vpc_associations(self, LocalGatewayRouteTableVpcAssociationIds: List[LocalGatewayRouteTableVpcAssociationId]=None, Filters: List[Filter]=None, MaxResults: int=None, NextToken: str=None, DryRun: Boolean=None) -> DescribeLocalGatewayRouteTableVpcAssociationsResult:
        r"""Describes the specified associations between VPCs and local gateway route tables.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>NextToken:  The token for the next page of results.<br/>MaxResults:  The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.<br/>Filters:  One or more filters. <ul> <li>  <code>local-gateway-id</code> - The ID of a local gateway. </li> <li>  <code>local-gateway-route-table-id</code> - The ID of the local gateway route table. </li> <li>  <code>local-gateway-route-table-vpc-association-id</code> - The ID of the association. </li> <li>  <code>state</code> - The state of the association. </li> <li>  <code>vpc-id</code> - The ID of the VPC. </li> </ul><br/>LocalGatewayRouteTableVpcAssociationIds:  The IDs of the associations.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>LocalGatewayRouteTableVpcAssociations:  Information about the associations.<br/>        """
        pass

    def describe_local_gateway_route_tables(self, LocalGatewayRouteTableIds: List[LocalGatewayRoutetableId]=None, Filters: List[Filter]=None, MaxResults: int=None, NextToken: str=None, DryRun: Boolean=None) -> DescribeLocalGatewayRouteTablesResult:
        r"""Describes one or more local gateway route tables. By default, all local gateway route tables are described. Alternatively, you can filter the results.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>NextToken:  The token for the next page of results.<br/>MaxResults:  The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.<br/>Filters:  One or more filters. <ul> <li>  <code>local-gateway-id</code> - The ID of a local gateway. </li> <li>  <code>local-gateway-route-table-id</code> - The ID of a local gateway route table. </li> <li>  <code>outpost-arn</code> - The Amazon Resource Name (ARN) of the Outpost. </li> <li>  <code>state</code> - The state of the local gateway route table. </li> </ul><br/>LocalGatewayRouteTableIds:  The IDs of the local gateway route tables.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>LocalGatewayRouteTables:  Information about the local gateway route tables.<br/>        """
        pass

    def describe_local_gateway_virtual_interface_groups(self, LocalGatewayVirtualInterfaceGroupIds: List[LocalGatewayVirtualInterfaceGroupId]=None, Filters: List[Filter]=None, MaxResults: int=None, NextToken: str=None, DryRun: Boolean=None) -> DescribeLocalGatewayVirtualInterfaceGroupsResult:
        r"""Describes the specified local gateway virtual interface groups.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>NextToken:  The token for the next page of results.<br/>MaxResults:  The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.<br/>Filters:  One or more filters. <ul> <li>  <code>local-gateway-id</code> - The ID of a local gateway. </li> <li>  <code>local-gateway-virtual-interface-id</code> - The ID of the virtual interface. </li> <li>  <code>local-gateway-virtual-interface-group-id</code> - The ID of the virtual interface group. </li> </ul><br/>LocalGatewayVirtualInterfaceGroupIds:  The IDs of the virtual interface groups.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>LocalGatewayVirtualInterfaceGroups:  The virtual interface groups.<br/>        """
        pass

    def describe_local_gateway_virtual_interfaces(self, LocalGatewayVirtualInterfaceIds: List[LocalGatewayVirtualInterfaceId]=None, Filters: List[Filter]=None, MaxResults: int=None, NextToken: str=None, DryRun: Boolean=None) -> DescribeLocalGatewayVirtualInterfacesResult:
        r"""Describes the specified local gateway virtual interfaces.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>NextToken:  The token for the next page of results.<br/>MaxResults:  The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.<br/>Filters:  One or more filters.<br/>LocalGatewayVirtualInterfaceIds:  The IDs of the virtual interfaces.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>LocalGatewayVirtualInterfaces:  Information about the virtual interfaces.<br/>        """
        pass

    def describe_local_gateways(self, LocalGatewayIds: List[LocalGatewayId]=None, Filters: List[Filter]=None, MaxResults: int=None, NextToken: str=None, DryRun: Boolean=None) -> DescribeLocalGatewaysResult:
        r"""Describes one or more local gateways. By default, all local gateways are described. Alternatively, you can filter the results.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>NextToken:  The token for the next page of results.<br/>MaxResults:  The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.<br/>Filters:  One or more filters.<br/>LocalGatewayIds:  One or more filters. <ul> <li>  <code>local-gateway-id</code> - The ID of a local gateway. </li> <li>  <code>local-gateway-route-table-id</code> - The ID of the local gateway route table. </li> <li>  <code>local-gateway-route-table-virtual-interface-group-association-id</code> - The ID of the association. </li> <li>  <code>local-gateway-route-table-virtual-interface-group-id</code> - The ID of the virtual interface group. </li> <li>  <code>outpost-arn</code> - The Amazon Resource Name (ARN) of the Outpost. </li> <li>  <code>state</code> - The state of the association. </li> </ul><br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>LocalGateways:  Information about the local gateways.<br/>        """
        pass

    def describe_managed_prefix_lists(self, DryRun: Boolean=None, Filters: List[Filter]=None, MaxResults: int=None, NextToken: str=None, PrefixListIds: List[String]=None) -> DescribeManagedPrefixListsResult:
        r"""Describes your managed prefix lists and any Amazon Web Services-managed prefix lists. To view the entries for your prefix list, use <a>GetManagedPrefixListEntries</a>.

        :param self:
        :param PrefixListIds:  One or more prefix list IDs.<br/>NextToken:  The token for the next page of results.<br/>MaxResults:  The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.<br/>Filters:  One or more filters. <ul> <li>  <code>owner-id</code> - The ID of the prefix list owner. </li> <li>  <code>prefix-list-id</code> - The ID of the prefix list. </li> <li>  <code>prefix-list-name</code> - The name of the prefix list. </li> </ul><br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: PrefixLists:  Information about the prefix lists.<br/>NextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>        """
        pass

    def describe_moving_addresses(self, Filters: List[Filter]=None, DryRun: Boolean=None, MaxResults: int=None, NextToken: str=None, PublicIps: List[String]=None) -> DescribeMovingAddressesResult:
        r"""Describes your Elastic IP addresses that are being moved to the EC2-VPC platform, or that are being restored to the EC2-Classic platform. This request does not return information about any other Elastic IP addresses in your account.

        :param self:
        :param PublicIps:  One or more Elastic IP addresses.<br/>NextToken:  The token for the next page of results.<br/>MaxResults:  The maximum number of results to return for the request in a single page. The remaining results of the initial request can be seen by sending another request with the returned <code>NextToken</code> value. This value can be between 5 and 1000; if <code>MaxResults</code> is given a value outside of this range, an error is returned. Default: If no value is provided, the default is 1000.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>Filters:  One or more filters. <ul> <li>  <code>moving-status</code> - The status of the Elastic IP address (<code>MovingToVpc</code> | <code>RestoringToClassic</code>). </li> </ul><br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>MovingAddressStatuses:  The status for each Elastic IP address.<br/>        """
        pass

    def describe_nat_gateways(self, DryRun: Boolean=None, Filter: List[Filter]=None, MaxResults: int=None, NatGatewayIds: List[NatGatewayId]=None, NextToken: str=None) -> DescribeNatGatewaysResult:
        r"""Describes one or more of your NAT gateways.

        :param self:
        :param NextToken:  The token for the next page of results.<br/>NatGatewayIds:  One or more NAT gateway IDs.<br/>MaxResults:  The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.<br/>Filter:  One or more filters. <ul> <li>  <code>nat-gateway-id</code> - The ID of the NAT gateway. </li> <li>  <code>state</code> - The state of the NAT gateway (<code>pending</code> | <code>failed</code> | <code>available</code> | <code>deleting</code> | <code>deleted</code>). </li> <li>  <code>subnet-id</code> - The ID of the subnet in which the NAT gateway resides. </li> <li>  <code>tag</code>:&lt;key&gt; - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key <code>Owner</code> and the value <code>TeamA</code>, specify <code>tag:Owner</code> for the filter name and <code>TeamA</code> for the filter value. </li> <li>  <code>tag-key</code> - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value. </li> <li>  <code>vpc-id</code> - The ID of the VPC in which the NAT gateway resides. </li> </ul><br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>NatGateways:  Information about the NAT gateways.<br/>        """
        pass

    def describe_network_acls(self, Filters: List[Filter]=None, DryRun: Boolean=None, NetworkAclIds: List[NetworkAclId]=None, NextToken: str=None, MaxResults: int=None) -> DescribeNetworkAclsResult:
        r"""Describes one or more of your network ACLs. For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_ACLs.html">Network ACLs</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.

        :param self:
        :param MaxResults:  The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.<br/>NextToken:  The token for the next page of results.<br/>NetworkAclIds:  One or more network ACL IDs. Default: Describes all your network ACLs.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>Filters:  One or more filters. <ul> <li>  <code>association.association-id</code> - The ID of an association ID for the ACL. </li> <li>  <code>association.network-acl-id</code> - The ID of the network ACL involved in the association. </li> <li>  <code>association.subnet-id</code> - The ID of the subnet involved in the association. </li> <li>  <code>default</code> - Indicates whether the ACL is the default network ACL for the VPC. </li> <li>  <code>entry.cidr</code> - The IPv4 CIDR range specified in the entry. </li> <li>  <code>entry.icmp.code</code> - The ICMP code specified in the entry, if any. </li> <li>  <code>entry.icmp.type</code> - The ICMP type specified in the entry, if any. </li> <li>  <code>entry.ipv6-cidr</code> - The IPv6 CIDR range specified in the entry. </li> <li>  <code>entry.port-range.from</code> - The start of the port range specified in the entry.  </li> <li>  <code>entry.port-range.to</code> - The end of the port range specified in the entry.  </li> <li>  <code>entry.protocol</code> - The protocol specified in the entry (<code>tcp</code> | <code>udp</code> | <code>icmp</code> or a protocol number). </li> <li>  <code>entry.rule-action</code> - Allows or denies the matching traffic (<code>allow</code> | <code>deny</code>). </li> <li>  <code>entry.rule-number</code> - The number of an entry (in other words, rule) in the set of ACL entries. </li> <li>  <code>network-acl-id</code> - The ID of the network ACL. </li> <li>  <code>owner-id</code> - The ID of the AWS account that owns the network ACL. </li> <li>  <code>tag</code>:&lt;key&gt; - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key <code>Owner</code> and the value <code>TeamA</code>, specify <code>tag:Owner</code> for the filter name and <code>TeamA</code> for the filter value. </li> <li>  <code>tag-key</code> - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value. </li> <li>  <code>vpc-id</code> - The ID of the VPC for the network ACL. </li> </ul><br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>NetworkAcls:  Information about one or more network ACLs.<br/>        """
        pass

    def describe_network_insights_analyses(self, NetworkInsightsAnalysisIds: List[NetworkInsightsAnalysisId]=None, NetworkInsightsPathId: str=None, AnalysisStartTime: MillisecondDateTime=None, AnalysisEndTime: MillisecondDateTime=None, Filters: List[Filter]=None, MaxResults: int=None, DryRun: Boolean=None, NextToken: str=None) -> DescribeNetworkInsightsAnalysesResult:
        r"""Describes one or more of your network insights analyses.

        :param self:
        :param NextToken:  The token for the next page of results.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>MaxResults:  The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.<br/>Filters:  The filters. The following are possible values: <ul> <li> PathFound - A Boolean value that indicates whether a feasible path is found. </li> <li> Status - The status of the analysis (running | succeeded | failed). </li> </ul><br/>AnalysisEndTime:  The time when the network insights analyses ended.<br/>AnalysisStartTime:  The time when the network insights analyses started.<br/>NetworkInsightsPathId:  The ID of the path. You must specify either a path ID or analysis IDs.<br/>NetworkInsightsAnalysisIds:  The ID of the network insights analyses. You must specify either analysis IDs or a path ID.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>NetworkInsightsAnalyses:  Information about the network insights analyses.<br/>        """
        pass

    def describe_network_insights_paths(self, NetworkInsightsPathIds: List[NetworkInsightsPathId]=None, Filters: List[Filter]=None, MaxResults: int=None, DryRun: Boolean=None, NextToken: str=None) -> DescribeNetworkInsightsPathsResult:
        r"""Describes one or more of your paths.

        :param self:
        :param NextToken:  The token for the next page of results.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>MaxResults:  The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.<br/>Filters:  The filters. The following are possible values: <ul> <li> Destination - The ID of the resource. </li> <li> DestinationPort - The destination port. </li> <li> Name - The path name. </li> <li> Protocol - The protocol. </li> <li> Source - The ID of the resource. </li> </ul><br/>NetworkInsightsPathIds:  The IDs of the paths.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>NetworkInsightsPaths:  Information about the paths.<br/>        """
        pass

    def describe_network_interface_attribute(self, NetworkInterfaceId: str, Attribute: str=None, DryRun: Boolean=None) -> DescribeNetworkInterfaceAttributeResult:
        r"""Describes a network interface attribute. You can specify only one attribute at a time.

        :param self:
        :param NetworkInterfaceId:  The ID of the network interface.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>Attribute:  The attribute of the network interface. This parameter is required.<br/>
        :return: SourceDestCheck:  Indicates whether source/destination checking is enabled.:<br/>NetworkInterfaceId:  The ID of the network interface.<br/>Groups:  The security groups associated with the network interface.<br/>Description:  The description of the network interface.:<br/>Attachment:  The attachment (if any) of the network interface.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The attachment state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceOwnerId</i> The account ID of the owner of the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceId</i> The ID of the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkCardIndex</i> The index of the network card.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeviceIndex</i> The device index of the network interface attachment on the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeleteOnTermination</i> Indicates whether the network interface is deleted when the instance is terminated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AttachmentId</i> The ID of the network interface attachment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AttachTime</i> The timestamp indicating when the attachment initiated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Value</i> The attribute value. The value is case-sensitive.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Value</i> The attribute value. The valid values are <code>true</code> or <code>false</code>.<br/>        """
        pass

    def describe_network_interface_permissions(self, NetworkInterfacePermissionIds: List[NetworkInterfacePermissionId]=None, Filters: List[Filter]=None, NextToken: str=None, MaxResults: int=None) -> DescribeNetworkInterfacePermissionsResult:
        r"""Describes the permissions for your network interfaces. 

        :param self:
        :param MaxResults:  The maximum number of results to return in a single call. To retrieve the remaining results, make another call with the returned <code>NextToken</code> value. If this parameter is not specified, up to 50 results are returned by default.<br/>NextToken:  The token to request the next page of results.<br/>Filters:  One or more filters. <ul> <li>  <code>network-interface-permission.network-interface-permission-id</code> - The ID of the permission. </li> <li>  <code>network-interface-permission.network-interface-id</code> - The ID of the network interface. </li> <li>  <code>network-interface-permission.aws-account-id</code> - The account ID. </li> <li>  <code>network-interface-permission.aws-service</code> - The Amazon Web Service. </li> <li>  <code>network-interface-permission.permission</code> - The type of permission (<code>INSTANCE-ATTACH</code> | <code>EIP-ASSOCIATE</code>). </li> </ul><br/>NetworkInterfacePermissionIds:  One or more network interface permission IDs.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results.<br/>NetworkInterfacePermissions:  The network interface permissions.<br/>        """
        pass

    def describe_network_interfaces(self, Filters: List[Filter]=None, DryRun: Boolean=None, NetworkInterfaceIds: List[NetworkInterfaceId]=None, NextToken: str=None, MaxResults: int=None) -> DescribeNetworkInterfacesResult:
        r"""Describes one or more of your network interfaces.

        :param self:
        :param MaxResults:  The maximum number of items to return for this request. The request returns a token that you can specify in a subsequent call to get the next set of results. You cannot specify this parameter and the network interface IDs parameter in the same request.<br/>NextToken:  The token to retrieve the next page of results.<br/>NetworkInterfaceIds:  One or more network interface IDs. Default: Describes all your network interfaces.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>Filters:  One or more filters. <ul> <li>  <code>addresses.private-ip-address</code> - The private IPv4 addresses associated with the network interface. </li> <li>  <code>addresses.primary</code> - Whether the private IPv4 address is the primary IP address associated with the network interface.  </li> <li>  <code>addresses.association.public-ip</code> - The association ID returned when the network interface was associated with the Elastic IP address (IPv4). </li> <li>  <code>addresses.association.owner-id</code> - The owner ID of the addresses associated with the network interface. </li> <li>  <code>association.association-id</code> - The association ID returned when the network interface was associated with an IPv4 address. </li> <li>  <code>association.allocation-id</code> - The allocation ID returned when you allocated the Elastic IP address (IPv4) for your network interface. </li> <li>  <code>association.ip-owner-id</code> - The owner of the Elastic IP address (IPv4) associated with the network interface. </li> <li>  <code>association.public-ip</code> - The address of the Elastic IP address (IPv4) bound to the network interface. </li> <li>  <code>association.public-dns-name</code> - The public DNS name for the network interface (IPv4). </li> <li>  <code>attachment.attachment-id</code> - The ID of the interface attachment. </li> <li>  <code>attachment.attach-time</code> - The time that the network interface was attached to an instance. </li> <li>  <code>attachment.delete-on-termination</code> - Indicates whether the attachment is deleted when an instance is terminated. </li> <li>  <code>attachment.device-index</code> - The device index to which the network interface is attached. </li> <li>  <code>attachment.instance-id</code> - The ID of the instance to which the network interface is attached. </li> <li>  <code>attachment.instance-owner-id</code> - The owner ID of the instance to which the network interface is attached. </li> <li>  <code>attachment.status</code> - The status of the attachment (<code>attaching</code> | <code>attached</code> | <code>detaching</code> | <code>detached</code>). </li> <li>  <code>availability-zone</code> - The Availability Zone of the network interface. </li> <li>  <code>description</code> - The description of the network interface. </li> <li>  <code>group-id</code> - The ID of a security group associated with the network interface. </li> <li>  <code>group-name</code> - The name of a security group associated with the network interface. </li> <li>  <code>ipv6-addresses.ipv6-address</code> - An IPv6 address associated with the network interface. </li> <li>  <code>mac-address</code> - The MAC address of the network interface. </li> <li>  <code>network-interface-id</code> - The ID of the network interface. </li> <li>  <code>owner-id</code> - The account ID of the network interface owner. </li> <li>  <code>private-ip-address</code> - The private IPv4 address or addresses of the network interface. </li> <li>  <code>private-dns-name</code> - The private DNS name of the network interface (IPv4). </li> <li>  <code>requester-id</code> - The alias or account ID of the principal or service that created the network interface. </li> <li>  <code>requester-managed</code> - Indicates whether the network interface is being managed by an Amazon Web Service (for example, Management Console, Auto Scaling, and so on). </li> <li>  <code>source-dest-check</code> - Indicates whether the network interface performs source/destination checking. A value of <code>true</code> means checking is enabled, and <code>false</code> means checking is disabled. The value must be <code>false</code> for the network interface to perform network address translation (NAT) in your VPC.  </li> <li>  <code>status</code> - The status of the network interface. If the network interface is not attached to an instance, the status is <code>available</code>; if a network interface is attached to an instance the status is <code>in-use</code>. </li> <li>  <code>subnet-id</code> - The ID of the subnet for the network interface. </li> <li>  <code>tag</code>:&lt;key&gt; - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key <code>Owner</code> and the value <code>TeamA</code>, specify <code>tag:Owner</code> for the filter name and <code>TeamA</code> for the filter value. </li> <li>  <code>tag-key</code> - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value. </li> <li>  <code>vpc-id</code> - The ID of the VPC for the network interface. </li> </ul><br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>NetworkInterfaces:  Information about one or more network interfaces.<br/>        """
        pass

    def describe_placement_groups(self, Filters: List[Filter]=None, DryRun: Boolean=None, GroupNames: List[PlacementGroupName]=None, GroupIds: List[PlacementGroupId]=None) -> DescribePlacementGroupsResult:
        r"""Describes the specified placement groups or all of your placement groups. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html">Placement groups</a> in the <i>Amazon EC2 User Guide</i>.

        :param self:
        :param GroupIds:  The IDs of the placement groups.<br/>GroupNames:  The names of the placement groups. Default: Describes all your placement groups, or only those otherwise specified.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>Filters:  The filters. <ul> <li>  <code>group-name</code> - The name of the placement group. </li> <li>  <code>state</code> - The state of the placement group (<code>pending</code> | <code>available</code> | <code>deleting</code> | <code>deleted</code>). </li> <li>  <code>strategy</code> - The strategy of the placement group (<code>cluster</code> | <code>spread</code> | <code>partition</code>). </li> <li>  <code>tag</code>:&lt;key&gt; - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key <code>Owner</code> and the value <code>TeamA</code>, specify <code>tag:Owner</code> for the filter name and <code>TeamA</code> for the filter value. </li> <li>  <code>tag-key</code> - The key of a tag assigned to the resource. Use this filter to find all resources that have a tag with a specific key, regardless of the tag value. </li> </ul><br/>
        :return: PlacementGroups:  Information about the placement groups.<br/>        """
        pass

    def describe_prefix_lists(self, DryRun: Boolean=None, Filters: List[Filter]=None, MaxResults: int=None, NextToken: str=None, PrefixListIds: List[PrefixListResourceId]=None) -> DescribePrefixListsResult:
        r"""Describes available Amazon Web Services services in a prefix list format, which includes the prefix list name and prefix list ID of the service and the IP address range for the service. We recommend that you use <a>DescribeManagedPrefixLists</a> instead.

        :param self:
        :param PrefixListIds:  One or more prefix list IDs.<br/>NextToken:  The token for the next page of results.<br/>MaxResults:  The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.<br/>Filters:  One or more filters. <ul> <li>  <code>prefix-list-id</code>: The ID of a prefix list. </li> <li>  <code>prefix-list-name</code>: The name of a prefix list. </li> </ul><br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: PrefixLists:  All available prefix lists.<br/>NextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>        """
        pass

    def describe_principal_id_format(self, DryRun: Boolean=None, Resources: List[String]=None, MaxResults: int=None, NextToken: str=None) -> DescribePrincipalIdFormatResult:
        r"""Describes the ID format settings for the root user and all IAM roles and IAM users that have explicitly specified a longer ID (17-character ID) preference.  By default, all IAM roles and IAM users default to the same ID settings as the root user, unless they explicitly override the settings. This request is useful for identifying those IAM users and IAM roles that have overridden the default ID settings. The following resource types support longer IDs: <code>bundle</code> | <code>conversion-task</code> | <code>customer-gateway</code> | <code>dhcp-options</code> | <code>elastic-ip-allocation</code> | <code>elastic-ip-association</code> | <code>export-task</code> | <code>flow-log</code> | <code>image</code> | <code>import-task</code> | <code>instance</code> | <code>internet-gateway</code> | <code>network-acl</code> | <code>network-acl-association</code> | <code>network-interface</code> | <code>network-interface-attachment</code> | <code>prefix-list</code> | <code>reservation</code> | <code>route-table</code> | <code>route-table-association</code> | <code>security-group</code> | <code>snapshot</code> | <code>subnet</code> | <code>subnet-cidr-block-association</code> | <code>volume</code> | <code>vpc</code> | <code>vpc-cidr-block-association</code> | <code>vpc-endpoint</code> | <code>vpc-peering-connection</code> | <code>vpn-connection</code> | <code>vpn-gateway</code>. 

        :param self:
        :param NextToken:  The token to request the next page of results.<br/>MaxResults:  The maximum number of results to return in a single call. To retrieve the remaining results, make another call with the returned NextToken value. <br/>Resources:  The type of resource: <code>bundle</code> | <code>conversion-task</code> | <code>customer-gateway</code> | <code>dhcp-options</code> | <code>elastic-ip-allocation</code> | <code>elastic-ip-association</code> | <code>export-task</code> | <code>flow-log</code> | <code>image</code> | <code>import-task</code> | <code>instance</code> | <code>internet-gateway</code> | <code>network-acl</code> | <code>network-acl-association</code> | <code>network-interface</code> | <code>network-interface-attachment</code> | <code>prefix-list</code> | <code>reservation</code> | <code>route-table</code> | <code>route-table-association</code> | <code>security-group</code> | <code>snapshot</code> | <code>subnet</code> | <code>subnet-cidr-block-association</code> | <code>volume</code> | <code>vpc</code> | <code>vpc-cidr-block-association</code> | <code>vpc-endpoint</code> | <code>vpc-peering-connection</code> | <code>vpn-connection</code> | <code>vpn-gateway</code> <br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is null when there are no more results to return.<br/>Principals:  Information about the ID format settings for the ARN.<br/>        """
        pass

    def describe_public_ipv_4_pools(self, PoolIds: List[Ipv4PoolEc2Id]=None, NextToken: str=None, MaxResults: int=None, Filters: List[Filter]=None) -> DescribePublicIpv4PoolsResult:
        r"""Describes the specified IPv4 address pools.

        :param self:
        :param Filters:  One or more filters. <ul> <li>  <code>tag</code>:&lt;key&gt; - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key <code>Owner</code> and the value <code>TeamA</code>, specify <code>tag:Owner</code> for the filter name and <code>TeamA</code> for the filter value. </li> <li>  <code>tag-key</code> - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value. </li> </ul><br/>MaxResults:  The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.<br/>NextToken:  The token for the next page of results.<br/>PoolIds:  The IDs of the address pools.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>PublicIpv4Pools:  Information about the address pools.<br/>        """
        pass

    def describe_regions(self, Filters: List[Filter]=None, RegionNames: List[String]=None, DryRun: Boolean=None, AllRegions: Boolean=None) -> DescribeRegionsResult:
        r"""Describes the Regions that are enabled for your account, or all Regions. For a list of the Regions supported by Amazon EC2, see <a href="https://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region"> Regions and Endpoints</a>. For information about enabling and disabling Regions for your account, see <a href="https://docs.aws.amazon.com/general/latest/gr/rande-manage.html">Managing AWS Regions</a> in the <i>AWS General Reference</i>.

        :param self:
        :param AllRegions:  Indicates whether to display all Regions, including Regions that are disabled for your account.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>RegionNames:  The names of the Regions. You can specify any Regions, whether they are enabled and disabled for your account.<br/>Filters:  The filters. <ul> <li>  <code>endpoint</code> - The endpoint of the Region (for example, <code>ec2.us-east-1.amazonaws.com</code>). </li> <li>  <code>opt-in-status</code> - The opt-in status of the Region (<code>opt-in-not-required</code> | <code>opted-in</code> | <code>not-opted-in</code>). </li> <li>  <code>region-name</code> - The name of the Region (for example, <code>us-east-1</code>). </li> </ul><br/>
        :return: Regions:  Information about the Regions.<br/>        """
        pass

    def describe_replace_root_volume_tasks(self, ReplaceRootVolumeTaskIds: List[ReplaceRootVolumeTaskId]=None, Filters: List[Filter]=None, MaxResults: int=None, NextToken: str=None, DryRun: Boolean=None) -> DescribeReplaceRootVolumeTasksResult:
        r"""Describes a root volume replacement task. For more information, see <a href="https://docs.aws.amazon.com/">Replace a root volume</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>NextToken:  The token for the next page of results.<br/>MaxResults:  The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.<br/>Filters:  Filter to use: <ul> <li>  <code>instance-id</code> - The ID of the instance for which the root volume replacement task was created. </li> </ul><br/>ReplaceRootVolumeTaskIds:  The ID of the root volume replacement task to view.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>ReplaceRootVolumeTasks:  Information about the root volume replacement task.<br/>        """
        pass

    def describe_reserved_instances(self, Filters: List[Filter]=None, OfferingClass: str=None, ReservedInstancesIds: List[ReservationId]=None, DryRun: Boolean=None, OfferingType: str=None) -> DescribeReservedInstancesResult:
        r"""Describes one or more of the Reserved Instances that you purchased. For more information about Reserved Instances, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts-on-demand-reserved-instances.html">Reserved Instances</a> in the <i>Amazon EC2 User Guide</i>.

        :param self:
        :param OfferingType:  The Reserved Instance offering type. If you are using tools that predate the 2011-11-01 API version, you only have access to the <code>Medium Utilization</code> Reserved Instance offering type.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>ReservedInstancesIds:  One or more Reserved Instance IDs. Default: Describes all your Reserved Instances, or only those otherwise specified.<br/>OfferingClass:  Describes whether the Reserved Instance is Standard or Convertible.<br/>Filters:  One or more filters. <ul> <li>  <code>availability-zone</code> - The Availability Zone where the Reserved Instance can be used. </li> <li>  <code>duration</code> - The duration of the Reserved Instance (one year or three years), in seconds (<code>31536000</code> | <code>94608000</code>). </li> <li>  <code>end</code> - The time when the Reserved Instance expires (for example, 2015-08-07T11:54:42.000Z). </li> <li>  <code>fixed-price</code> - The purchase price of the Reserved Instance (for example, 9800.0). </li> <li>  <code>instance-type</code> - The instance type that is covered by the reservation. </li> <li>  <code>scope</code> - The scope of the Reserved Instance (<code>Region</code> or <code>Availability Zone</code>). </li> <li>  <code>product-description</code> - The Reserved Instance product platform description. Instances that include <code>(Amazon VPC)</code> in the product platform description will only be displayed to EC2-Classic account holders and are for use with Amazon VPC (<code>Linux/UNIX</code> | <code>Linux/UNIX (Amazon VPC)</code> | <code>SUSE Linux</code> | <code>SUSE Linux (Amazon VPC)</code> | <code>Red Hat Enterprise Linux</code> | <code>Red Hat Enterprise Linux (Amazon VPC)</code> | <code>Red Hat Enterprise Linux with HA (Amazon VPC)</code> | <code>Windows</code> | <code>Windows (Amazon VPC)</code> | <code>Windows with SQL Server Standard</code> | <code>Windows with SQL Server Standard (Amazon VPC)</code> | <code>Windows with SQL Server Web</code> | <code>Windows with SQL Server Web (Amazon VPC)</code> | <code>Windows with SQL Server Enterprise</code> | <code>Windows with SQL Server Enterprise (Amazon VPC)</code>). </li> <li>  <code>reserved-instances-id</code> - The ID of the Reserved Instance. </li> <li>  <code>start</code> - The time at which the Reserved Instance purchase request was placed (for example, 2014-08-07T11:54:42.000Z). </li> <li>  <code>state</code> - The state of the Reserved Instance (<code>payment-pending</code> | <code>active</code> | <code>payment-failed</code> | <code>retired</code>). </li> <li>  <code>tag</code>:&lt;key&gt; - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key <code>Owner</code> and the value <code>TeamA</code>, specify <code>tag:Owner</code> for the filter name and <code>TeamA</code> for the filter value. </li> <li>  <code>tag-key</code> - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value. </li> <li>  <code>usage-price</code> - The usage price of the Reserved Instance, per hour (for example, 0.84). </li> </ul><br/>
        :return: ReservedInstances:  A list of Reserved Instances.<br/>        """
        pass

    def describe_reserved_instances_listings(self, Filters: List[Filter]=None, ReservedInstancesId: str=None, ReservedInstancesListingId: str=None) -> DescribeReservedInstancesListingsResult:
        r"""Describes your account's Reserved Instance listings in the Reserved Instance Marketplace. The Reserved Instance Marketplace matches sellers who want to resell Reserved Instance capacity that they no longer need with buyers who want to purchase additional capacity. Reserved Instances bought and sold through the Reserved Instance Marketplace work like any other Reserved Instances. As a seller, you choose to list some or all of your Reserved Instances, and you specify the upfront price to receive for them. Your Reserved Instances are then listed in the Reserved Instance Marketplace and are available for purchase. As a buyer, you specify the configuration of the Reserved Instance to purchase, and the Marketplace matches what you're searching for with what's available. The Marketplace first sells the lowest priced Reserved Instances to you, and continues to sell available Reserved Instance listings to you until your demand is met. You are charged based on the total price of all of the listings that you purchase. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-market-general.html">Reserved Instance Marketplace</a> in the <i>Amazon EC2 User Guide</i>.

        :param self:
        :param ReservedInstancesListingId:  One or more Reserved Instance listing IDs.<br/>ReservedInstancesId:  One or more Reserved Instance IDs.<br/>Filters:  One or more filters. <ul> <li>  <code>reserved-instances-id</code> - The ID of the Reserved Instances. </li> <li>  <code>reserved-instances-listing-id</code> - The ID of the Reserved Instances listing. </li> <li>  <code>status</code> - The status of the Reserved Instance listing (<code>pending</code> | <code>active</code> | <code>cancelled</code> | <code>closed</code>). </li> <li>  <code>status-message</code> - The reason for the status. </li> </ul><br/>
        :return: ReservedInstancesListings:  Information about the Reserved Instance listing.<br/>        """
        pass

    def describe_reserved_instances_modifications(self, Filters: List[Filter]=None, ReservedInstancesModificationIds: List[ReservedInstancesModificationId]=None, NextToken: str=None) -> DescribeReservedInstancesModificationsResult:
        r"""Describes the modifications made to your Reserved Instances. If no parameter is specified, information about all your Reserved Instances modification requests is returned. If a modification ID is specified, only information about the specific modification is returned. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-modifying.html">Modifying Reserved Instances</a> in the <i>Amazon EC2 User Guide</i>.

        :param self:
        :param NextToken:  The token to retrieve the next page of results.<br/>ReservedInstancesModificationIds:  IDs for the submitted modification request.<br/>Filters:  One or more filters. <ul> <li>  <code>client-token</code> - The idempotency token for the modification request. </li> <li>  <code>create-date</code> - The time when the modification request was created. </li> <li>  <code>effective-date</code> - The time when the modification becomes effective. </li> <li>  <code>modification-result.reserved-instances-id</code> - The ID for the Reserved Instances created as part of the modification request. This ID is only available when the status of the modification is <code>fulfilled</code>. </li> <li>  <code>modification-result.target-configuration.availability-zone</code> - The Availability Zone for the new Reserved Instances. </li> <li>  <code>modification-result.target-configuration.instance-count </code> - The number of new Reserved Instances. </li> <li>  <code>modification-result.target-configuration.instance-type</code> - The instance type of the new Reserved Instances. </li> <li>  <code>modification-result.target-configuration.platform</code> - The network platform of the new Reserved Instances (<code>EC2-Classic</code> | <code>EC2-VPC</code>). </li> <li>  <code>reserved-instances-id</code> - The ID of the Reserved Instances modified. </li> <li>  <code>reserved-instances-modification-id</code> - The ID of the modification request. </li> <li>  <code>status</code> - The status of the Reserved Instances modification request (<code>processing</code> | <code>fulfilled</code> | <code>failed</code>). </li> <li>  <code>status-message</code> - The reason for the status. </li> <li>  <code>update-date</code> - The time when the modification request was last updated. </li> </ul><br/>
        :return: ReservedInstancesModifications:  The Reserved Instance modification information.<br/>NextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>        """
        pass

    def describe_reserved_instances_offerings(self, AvailabilityZone: str=None, Filters: List[Filter]=None, IncludeMarketplace: Boolean=None, InstanceType: str=None, MaxDuration: Long=None, MaxInstanceCount: int=None, MinDuration: Long=None, OfferingClass: str=None, ProductDescription: str=None, ReservedInstancesOfferingIds: List[ReservedInstancesOfferingId]=None, DryRun: Boolean=None, InstanceTenancy: str=None, MaxResults: int=None, NextToken: str=None, OfferingType: str=None) -> DescribeReservedInstancesOfferingsResult:
        r"""Describes Reserved Instance offerings that are available for purchase. With Reserved Instances, you purchase the right to launch instances for a period of time. During that time period, you do not receive insufficient capacity errors, and you pay a lower usage rate than the rate charged for On-Demand instances for the actual time used. If you have listed your own Reserved Instances for sale in the Reserved Instance Marketplace, they will be excluded from these results. This is to ensure that you do not purchase your own Reserved Instances. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-market-general.html">Reserved Instance Marketplace</a> in the <i>Amazon EC2 User Guide</i>.

        :param self:
        :param OfferingType:  The Reserved Instance offering type. If you are using tools that predate the 2011-11-01 API version, you only have access to the <code>Medium Utilization</code> Reserved Instance offering type. <br/>NextToken:  The token to retrieve the next page of results.<br/>MaxResults:  The maximum number of results to return for the request in a single page. The remaining results of the initial request can be seen by sending another request with the returned <code>NextToken</code> value. The maximum is 100. Default: 100<br/>InstanceTenancy:  The tenancy of the instances covered by the reservation. A Reserved Instance with a tenancy of <code>dedicated</code> is applied to instances that run in a VPC on single-tenant hardware (i.e., Dedicated Instances).  <b>Important:</b> The <code>host</code> value cannot be used with this parameter. Use the <code>default</code> or <code>dedicated</code> values only. Default: <code>default</code> <br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>ReservedInstancesOfferingIds:  One or more Reserved Instances offering IDs.<br/>ProductDescription:  The Reserved Instance product platform description. Instances that include <code>(Amazon VPC)</code> in the description are for use with Amazon VPC.<br/>OfferingClass:  The offering class of the Reserved Instance. Can be <code>standard</code> or <code>convertible</code>.<br/>MinDuration:  The minimum duration (in seconds) to filter when searching for offerings. Default: 2592000 (1 month)<br/>MaxInstanceCount:  The maximum number of instances to filter when searching for offerings. Default: 20<br/>MaxDuration:  The maximum duration (in seconds) to filter when searching for offerings. Default: 94608000 (3 years)<br/>InstanceType:  The instance type that the reservation will cover (for example, <code>m1.small</code>). For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html">Instance types</a> in the <i>Amazon EC2 User Guide</i>.<br/>IncludeMarketplace:  Include Reserved Instance Marketplace offerings in the response.<br/>Filters:  One or more filters. <ul> <li>  <code>availability-zone</code> - The Availability Zone where the Reserved Instance can be used. </li> <li>  <code>duration</code> - The duration of the Reserved Instance (for example, one year or three years), in seconds (<code>31536000</code> | <code>94608000</code>). </li> <li>  <code>fixed-price</code> - The purchase price of the Reserved Instance (for example, 9800.0). </li> <li>  <code>instance-type</code> - The instance type that is covered by the reservation. </li> <li>  <code>marketplace</code> - Set to <code>true</code> to show only Reserved Instance Marketplace offerings. When this filter is not used, which is the default behavior, all offerings from both Amazon Web Services and the Reserved Instance Marketplace are listed. </li> <li>  <code>product-description</code> - The Reserved Instance product platform description. Instances that include <code>(Amazon VPC)</code> in the product platform description will only be displayed to EC2-Classic account holders and are for use with Amazon VPC. (<code>Linux/UNIX</code> | <code>Linux/UNIX (Amazon VPC)</code> | <code>SUSE Linux</code> | <code>SUSE Linux (Amazon VPC)</code> | <code>Red Hat Enterprise Linux</code> | <code>Red Hat Enterprise Linux (Amazon VPC)</code> | <code>Red Hat Enterprise Linux with HA (Amazon VPC)</code> | <code>Windows</code> | <code>Windows (Amazon VPC)</code> | <code>Windows with SQL Server Standard</code> | <code>Windows with SQL Server Standard (Amazon VPC)</code> | <code>Windows with SQL Server Web</code> | <code> Windows with SQL Server Web (Amazon VPC)</code> | <code>Windows with SQL Server Enterprise</code> | <code>Windows with SQL Server Enterprise (Amazon VPC)</code>)  </li> <li>  <code>reserved-instances-offering-id</code> - The Reserved Instances offering ID. </li> <li>  <code>scope</code> - The scope of the Reserved Instance (<code>Availability Zone</code> or <code>Region</code>). </li> <li>  <code>usage-price</code> - The usage price of the Reserved Instance, per hour (for example, 0.84). </li> </ul><br/>AvailabilityZone:  The Availability Zone in which the Reserved Instance can be used.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>ReservedInstancesOfferings:  A list of Reserved Instances offerings.<br/>        """
        pass

    def describe_route_tables(self, Filters: List[Filter]=None, DryRun: Boolean=None, RouteTableIds: List[RouteTableId]=None, NextToken: str=None, MaxResults: int=None) -> DescribeRouteTablesResult:
        r"""Describes one or more of your route tables. Each subnet in your VPC must be associated with a route table. If a subnet is not explicitly associated with any route table, it is implicitly associated with the main route table. This command does not return the subnet ID for implicit associations. For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html">Route Tables</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.

        :param self:
        :param MaxResults:  The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.<br/>NextToken:  The token for the next page of results.<br/>RouteTableIds:  One or more route table IDs. Default: Describes all your route tables.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>Filters:  One or more filters. <ul> <li>  <code>association.route-table-association-id</code> - The ID of an association ID for the route table. </li> <li>  <code>association.route-table-id</code> - The ID of the route table involved in the association. </li> <li>  <code>association.subnet-id</code> - The ID of the subnet involved in the association. </li> <li>  <code>association.main</code> - Indicates whether the route table is the main route table for the VPC (<code>true</code> | <code>false</code>). Route tables that do not have an association ID are not returned in the response. </li> <li>  <code>owner-id</code> - The ID of the AWS account that owns the route table. </li> <li>  <code>route-table-id</code> - The ID of the route table. </li> <li>  <code>route.destination-cidr-block</code> - The IPv4 CIDR range specified in a route in the table. </li> <li>  <code>route.destination-ipv6-cidr-block</code> - The IPv6 CIDR range specified in a route in the route table. </li> <li>  <code>route.destination-prefix-list-id</code> - The ID (prefix) of the AWS service specified in a route in the table. </li> <li>  <code>route.egress-only-internet-gateway-id</code> - The ID of an egress-only Internet gateway specified in a route in the route table. </li> <li>  <code>route.gateway-id</code> - The ID of a gateway specified in a route in the table. </li> <li>  <code>route.instance-id</code> - The ID of an instance specified in a route in the table. </li> <li>  <code>route.nat-gateway-id</code> - The ID of a NAT gateway. </li> <li>  <code>route.transit-gateway-id</code> - The ID of a transit gateway. </li> <li>  <code>route.origin</code> - Describes how the route was created. <code>CreateRouteTable</code> indicates that the route was automatically created when the route table was created; <code>CreateRoute</code> indicates that the route was manually added to the route table; <code>EnableVgwRoutePropagation</code> indicates that the route was propagated by route propagation. </li> <li>  <code>route.state</code> - The state of a route in the route table (<code>active</code> | <code>blackhole</code>). The blackhole state indicates that the route's target isn't available (for example, the specified gateway isn't attached to the VPC, the specified NAT instance has been terminated, and so on). </li> <li>  <code>route.vpc-peering-connection-id</code> - The ID of a VPC peering connection specified in a route in the table. </li> <li>  <code>tag</code>:&lt;key&gt; - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key <code>Owner</code> and the value <code>TeamA</code>, specify <code>tag:Owner</code> for the filter name and <code>TeamA</code> for the filter value. </li> <li>  <code>tag-key</code> - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value. </li> <li>  <code>vpc-id</code> - The ID of the VPC for the route table. </li> </ul><br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>RouteTables:  Information about one or more route tables.<br/>        """
        pass

    def describe_scheduled_instance_availability(self, Recurrence: ScheduledInstanceRecurrenceRequest, FirstSlotStartTimeRange: SlotDateTimeRangeRequest, DryRun: Boolean=None, Filters: List[Filter]=None, MaxResults: int=None, MaxSlotDurationInHours: int=None, MinSlotDurationInHours: int=None, NextToken: str=None) -> DescribeScheduledInstanceAvailabilityResult:
        r"""Finds available schedules that meet the specified criteria. You can search for an available schedule no more than 3 months in advance. You must meet the minimum required duration of 1,200 hours per year. For example, the minimum daily schedule is 4 hours, the minimum weekly schedule is 24 hours, and the minimum monthly schedule is 100 hours. After you find a schedule that meets your needs, call <a>PurchaseScheduledInstances</a> to purchase Scheduled Instances with that schedule.

        :param self:
        :param Recurrence:  The schedule recurrence.:<br/>NextToken:  The token for the next set of results.<br/>MinSlotDurationInHours:  The minimum available duration, in hours. The minimum required duration is 1,200 hours per year. For example, the minimum daily schedule is 4 hours, the minimum weekly schedule is 24 hours, and the minimum monthly schedule is 100 hours.<br/>MaxSlotDurationInHours:  The maximum available duration, in hours. This value must be greater than <code>MinSlotDurationInHours</code> and less than 1,720.<br/>MaxResults:  The maximum number of results to return in a single call. This value can be between 5 and 300. The default value is 300. To retrieve the remaining results, make another call with the returned <code>NextToken</code> value.<br/>FirstSlotStartTimeRange:  The time period for the first schedule to start.:<br/>Filters:  The filters. <ul> <li>  <code>availability-zone</code> - The Availability Zone (for example, <code>us-west-2a</code>). </li> <li>  <code>instance-type</code> - The instance type (for example, <code>c4.large</code>). </li> <li>  <code>network-platform</code> - The network platform (<code>EC2-Classic</code> or <code>EC2-VPC</code>). </li> <li>  <code>platform</code> - The platform (<code>Linux/UNIX</code> or <code>Windows</code>). </li> </ul><br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestTime</i> The latest date and time, in UTC, for the Scheduled Instance to start. This value must be later than or equal to the earliest date and at most three months in the future.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EarliestTime</i> The earliest date and time, in UTC, for the Scheduled Instance to start.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OccurrenceUnit</i> The unit for <code>OccurrenceDays</code> (<code>DayOfWeek</code> or <code>DayOfMonth</code>). This value is required for a monthly schedule. You can't specify <code>DayOfWeek</code> with a weekly schedule. You can't specify this value with a daily schedule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OccurrenceRelativeToEnd</i> Indicates whether the occurrence is relative to the end of the specified week or month. You can't specify this value with a daily schedule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OccurrenceDays</i> The days. For a monthly schedule, this is one or more days of the month (1-31). For a weekly schedule, this is one or more days of the week (1-7, where 1 is Sunday). You can't specify this value with a daily schedule. If the occurrence is relative to the end of the month, you can specify only a single day.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Interval</i> The interval quantity. The interval unit depends on the value of <code>Frequency</code>. For example, every 2 weeks or every 2 months.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Frequency</i> The frequency (<code>Daily</code>, <code>Weekly</code>, or <code>Monthly</code>).<br/>
        :return: ScheduledInstanceAvailabilitySet:  Information about the available Scheduled Instances.<br/>NextToken:  The token required to retrieve the next set of results. This value is <code>null</code> when there are no more results to return.<br/>        """
        pass

    def describe_scheduled_instances(self, DryRun: Boolean=None, Filters: List[Filter]=None, MaxResults: int=None, NextToken: str=None, ScheduledInstanceIds: List[ScheduledInstanceId]=None, SlotStartTimeRange: SlotStartTimeRangeRequest=None) -> DescribeScheduledInstancesResult:
        r"""Describes the specified Scheduled Instances or all your Scheduled Instances.

        :param self:
        :param SlotStartTimeRange:  The time period for the first schedule to start.:<br/>ScheduledInstanceIds:  The Scheduled Instance IDs.<br/>NextToken:  The token for the next set of results.<br/>MaxResults:  The maximum number of results to return in a single call. This value can be between 5 and 300. The default value is 100. To retrieve the remaining results, make another call with the returned <code>NextToken</code> value.<br/>Filters:  The filters. <ul> <li>  <code>availability-zone</code> - The Availability Zone (for example, <code>us-west-2a</code>). </li> <li>  <code>instance-type</code> - The instance type (for example, <code>c4.large</code>). </li> <li>  <code>network-platform</code> - The network platform (<code>EC2-Classic</code> or <code>EC2-VPC</code>). </li> <li>  <code>platform</code> - The platform (<code>Linux/UNIX</code> or <code>Windows</code>). </li> </ul><br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestTime</i> The latest date and time, in UTC, for the Scheduled Instance to start.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EarliestTime</i> The earliest date and time, in UTC, for the Scheduled Instance to start.<br/>
        :return: ScheduledInstanceSet:  Information about the Scheduled Instances.<br/>NextToken:  The token required to retrieve the next set of results. This value is <code>null</code> when there are no more results to return.<br/>        """
        pass

    def describe_security_group_references(self, GroupId: List[SecurityGroupId], DryRun: Boolean=None) -> DescribeSecurityGroupReferencesResult:
        r"""[VPC only] Describes the VPCs on the other side of a VPC peering connection that are referencing the security groups you've specified in this request.

        :param self:
        :param GroupId:  The IDs of the security groups in your account.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: SecurityGroupReferenceSet:  Information about the VPCs with the referencing security groups.<br/>        """
        pass

    def describe_security_group_rules(self, Filters: List[Filter]=None, SecurityGroupRuleIds: List[String]=None, DryRun: Boolean=None, NextToken: str=None, MaxResults: int=None) -> DescribeSecurityGroupRulesResult:
        r"""Describes one or more of your security group rules.

        :param self:
        :param MaxResults:  The maximum number of results to return in a single call. To retrieve the remaining results, make another request with the returned <code>NextToken</code> value. This value can be between 5 and 1000. If this parameter is not specified, then all results are returned.<br/>NextToken:  The token for the next page of results.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>SecurityGroupRuleIds:  The IDs of the security group rules.<br/>Filters:  One or more filters. <ul> <li>  <code>group-id</code> - The ID of the security group. </li> <li>  <code>security-group-rule-id</code> - The ID of the security group rule. </li> <li>  <code>tag</code>:&lt;key&gt; - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key <code>Owner</code> and the value <code>TeamA</code>, specify <code>tag:Owner</code> for the filter name and <code>TeamA</code> for the filter value. </li> </ul><br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return. <br/>SecurityGroupRules:  Information about security group rules.<br/>        """
        pass

    def describe_security_groups(self, Filters: List[Filter]=None, GroupIds: List[String]=None, GroupNames: List[SecurityGroupName]=None, DryRun: Boolean=None, NextToken: str=None, MaxResults: int=None) -> DescribeSecurityGroupsResult:
        r"""Describes the specified security groups or all of your security groups. A security group is for use with instances either in the EC2-Classic platform or in a specific VPC. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html">Amazon EC2 Security Groups</a> in the <i>Amazon Elastic Compute Cloud User Guide</i> and <a href="https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_SecurityGroups.html">Security Groups for Your VPC</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.

        :param self:
        :param MaxResults:  The maximum number of results to return in a single call. To retrieve the remaining results, make another request with the returned <code>NextToken</code> value. This value can be between 5 and 1000. If this parameter is not specified, then all results are returned.<br/>NextToken:  The token to request the next page of results.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>GroupNames:  [EC2-Classic and default VPC only] The names of the security groups. You can specify either the security group name or the security group ID. For security groups in a nondefault VPC, use the <code>group-name</code> filter to describe security groups by name. Default: Describes all of your security groups.<br/>GroupIds:  The IDs of the security groups. Required for security groups in a nondefault VPC. Default: Describes all of your security groups.<br/>Filters:  The filters. If using multiple filters for rules, the results include security groups for which any combination of rules - not necessarily a single rule - match all filters. <ul> <li>  <code>description</code> - The description of the security group. </li> <li>  <code>egress.ip-permission.cidr</code> - An IPv4 CIDR block for an outbound security group rule. </li> <li>  <code>egress.ip-permission.from-port</code> - For an outbound rule, the start of port range for the TCP and UDP protocols, or an ICMP type number. </li> <li>  <code>egress.ip-permission.group-id</code> - The ID of a security group that has been referenced in an outbound security group rule. </li> <li>  <code>egress.ip-permission.group-name</code> - The name of a security group that is referenced in an outbound security group rule. </li> <li>  <code>egress.ip-permission.ipv6-cidr</code> - An IPv6 CIDR block for an outbound security group rule. </li> <li>  <code>egress.ip-permission.prefix-list-id</code> - The ID of a prefix list to which a security group rule allows outbound access. </li> <li>  <code>egress.ip-permission.protocol</code> - The IP protocol for an outbound security group rule (<code>tcp</code> | <code>udp</code> | <code>icmp</code>, a protocol number, or -1 for all protocols). </li> <li>  <code>egress.ip-permission.to-port</code> - For an outbound rule, the end of port range for the TCP and UDP protocols, or an ICMP code. </li> <li>  <code>egress.ip-permission.user-id</code> - The ID of an Amazon Web Services account that has been referenced in an outbound security group rule. </li> <li>  <code>group-id</code> - The ID of the security group.  </li> <li>  <code>group-name</code> - The name of the security group. </li> <li>  <code>ip-permission.cidr</code> - An IPv4 CIDR block for an inbound security group rule. </li> <li>  <code>ip-permission.from-port</code> - For an inbound rule, the start of port range for the TCP and UDP protocols, or an ICMP type number. </li> <li>  <code>ip-permission.group-id</code> - The ID of a security group that has been referenced in an inbound security group rule. </li> <li>  <code>ip-permission.group-name</code> - The name of a security group that is referenced in an inbound security group rule. </li> <li>  <code>ip-permission.ipv6-cidr</code> - An IPv6 CIDR block for an inbound security group rule. </li> <li>  <code>ip-permission.prefix-list-id</code> - The ID of a prefix list from which a security group rule allows inbound access. </li> <li>  <code>ip-permission.protocol</code> - The IP protocol for an inbound security group rule (<code>tcp</code> | <code>udp</code> | <code>icmp</code>, a protocol number, or -1 for all protocols). </li> <li>  <code>ip-permission.to-port</code> - For an inbound rule, the end of port range for the TCP and UDP protocols, or an ICMP code. </li> <li>  <code>ip-permission.user-id</code> - The ID of an Amazon Web Services account that has been referenced in an inbound security group rule. </li> <li>  <code>owner-id</code> - The Amazon Web Services account ID of the owner of the security group. </li> <li>  <code>tag</code>:&lt;key&gt; - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key <code>Owner</code> and the value <code>TeamA</code>, specify <code>tag:Owner</code> for the filter name and <code>TeamA</code> for the filter value. </li> <li>  <code>tag-key</code> - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value. </li> <li>  <code>vpc-id</code> - The ID of the VPC specified when the security group was created. </li> </ul><br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>SecurityGroups:  Information about the security groups.<br/>        """
        pass

    def describe_snapshot_attribute(self, SnapshotId: str, Attribute: str, DryRun: Boolean=None) -> DescribeSnapshotAttributeResult:
        r"""Describes the specified attribute of the specified snapshot. You can specify only one attribute at a time. For more information about EBS snapshots, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSSnapshots.html">Amazon EBS snapshots</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>SnapshotId:  The ID of the EBS snapshot.<br/>Attribute:  The snapshot attribute you would like to view.<br/>
        :return: SnapshotId:  The ID of the EBS snapshot.<br/>ProductCodes:  The product codes.<br/>CreateVolumePermissions:  The users and groups that have the permissions for creating volumes from the snapshot.<br/>        """
        pass

    def describe_snapshots(self, Filters: List[Filter]=None, MaxResults: int=None, NextToken: str=None, OwnerIds: List[String]=None, RestorableByUserIds: List[String]=None, SnapshotIds: List[SnapshotId]=None, DryRun: Boolean=None) -> DescribeSnapshotsResult:
        r"""Describes the specified EBS snapshots available to you or all of the EBS snapshots available to you. The snapshots available to you include public snapshots, private snapshots that you own, and private snapshots owned by other AWS accounts for which you have explicit create volume permissions. The create volume permissions fall into the following categories: <ul> <li>  <i>public</i>: The owner of the snapshot granted create volume permissions for the snapshot to the <code>all</code> group. All AWS accounts have create volume permissions for these snapshots. </li> <li>  <i>explicit</i>: The owner of the snapshot granted create volume permissions to a specific AWS account. </li> <li>  <i>implicit</i>: An AWS account has implicit create volume permissions for all snapshots it owns. </li> </ul> The list of snapshots returned can be filtered by specifying snapshot IDs, snapshot owners, or AWS accounts with create volume permissions. If no options are specified, Amazon EC2 returns all snapshots for which you have create volume permissions. If you specify one or more snapshot IDs, only snapshots that have the specified IDs are returned. If you specify an invalid snapshot ID, an error is returned. If you specify a snapshot ID for which you do not have access, it is not included in the returned results. If you specify one or more snapshot owners using the <code>OwnerIds</code> option, only snapshots from the specified owners and for which you have access are returned. The results can include the AWS account IDs of the specified owners, <code>amazon</code> for snapshots owned by Amazon, or <code>self</code> for snapshots that you own. If you specify a list of restorable users, only snapshots with create snapshot permissions for those users are returned. You can specify AWS account IDs (if you own the snapshots), <code>self</code> for snapshots for which you own or have explicit permissions, or <code>all</code> for public snapshots. If you are describing a long list of snapshots, we recommend that you paginate the output to make the list more manageable. The <code>MaxResults</code> parameter sets the maximum number of results returned in a single page. If the list of results exceeds your <code>MaxResults</code> value, then that number of results is returned along with a <code>NextToken</code> value that can be passed to a subsequent <code>DescribeSnapshots</code> request to retrieve the remaining results. To get the state of fast snapshot restores for a snapshot, use <a>DescribeFastSnapshotRestores</a>. For more information about EBS snapshots, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSSnapshots.html">Amazon EBS snapshots</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>SnapshotIds:  The snapshot IDs. Default: Describes the snapshots for which you have create volume permissions.<br/>RestorableByUserIds:  The IDs of the AWS accounts that can create volumes from the snapshot.<br/>OwnerIds:  Scopes the results to snapshots with the specified owners. You can specify a combination of AWS account IDs, <code>self</code>, and <code>amazon</code>.<br/>NextToken:  The <code>NextToken</code> value returned from a previous paginated <code>DescribeSnapshots</code> request where <code>MaxResults</code> was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the <code>NextToken</code> value. This value is <code>null</code> when there are no more results to return.<br/>MaxResults:  The maximum number of snapshot results returned by <code>DescribeSnapshots</code> in paginated output. When this parameter is used, <code>DescribeSnapshots</code> only returns <code>MaxResults</code> results in a single page along with a <code>NextToken</code> response element. The remaining results of the initial request can be seen by sending another <code>DescribeSnapshots</code> request with the returned <code>NextToken</code> value. This value can be between 5 and 1,000; if <code>MaxResults</code> is given a value larger than 1,000, only 1,000 results are returned. If this parameter is not used, then <code>DescribeSnapshots</code> returns all results. You cannot specify this parameter and the snapshot IDs parameter in the same request.<br/>Filters:  The filters. <ul> <li>  <code>description</code> - A description of the snapshot. </li> <li>  <code>encrypted</code> - Indicates whether the snapshot is encrypted (<code>true</code> | <code>false</code>) </li> <li>  <code>owner-alias</code> - The owner alias, from an Amazon-maintained list (<code>amazon</code>). This is not the user-configured AWS account alias set using the IAM console. We recommend that you use the related parameter instead of this filter. </li> <li>  <code>owner-id</code> - The AWS account ID of the owner. We recommend that you use the related parameter instead of this filter. </li> <li>  <code>progress</code> - The progress of the snapshot, as a percentage (for example, 80%). </li> <li>  <code>snapshot-id</code> - The snapshot ID. </li> <li>  <code>start-time</code> - The time stamp when the snapshot was initiated. </li> <li>  <code>status</code> - The status of the snapshot (<code>pending</code> | <code>completed</code> | <code>error</code>). </li> <li>  <code>tag</code>:&lt;key&gt; - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key <code>Owner</code> and the value <code>TeamA</code>, specify <code>tag:Owner</code> for the filter name and <code>TeamA</code> for the filter value. </li> <li>  <code>tag-key</code> - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value. </li> <li>  <code>volume-id</code> - The ID of the volume the snapshot is for. </li> <li>  <code>volume-size</code> - The size of the volume, in GiB. </li> </ul><br/>
        :return: NextToken:  The <code>NextToken</code> value to include in a future <code>DescribeSnapshots</code> request. When the results of a <code>DescribeSnapshots</code> request exceed <code>MaxResults</code>, this value can be used to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>Snapshots:  Information about the snapshots.<br/>        """
        pass

    def describe_spot_datafeed_subscription(self, DryRun: Boolean=None) -> DescribeSpotDatafeedSubscriptionResult:
        r"""Describes the data feed for Spot Instances. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-data-feeds.html">Spot Instance data feed</a> in the <i>Amazon EC2 User Guide for Linux Instances</i>.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: SpotDatafeedSubscription:  The Spot Instance data feed subscription.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the Spot Instance data feed subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Prefix</i> The prefix for the data feed files.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> The account ID of the account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Fault</i> The fault codes for the Spot Instance request, if any.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Fault</b>: The fault codes for the Spot Instance request, if any.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i> The name of the Amazon S3 bucket where the Spot Instance data feed is located.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> The message for the Spot Instance state change.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Code</i> The reason code for the Spot Instance state change.<br/>        """
        pass

    def describe_spot_fleet_instances(self, SpotFleetRequestId: str, DryRun: Boolean=None, MaxResults: int=None, NextToken: str=None) -> DescribeSpotFleetInstancesResponse:
        r"""Describes the running instances for the specified Spot Fleet.

        :param self:
        :param SpotFleetRequestId:  The ID of the Spot Fleet request.<br/>NextToken:  The token for the next set of results.<br/>MaxResults:  The maximum number of results to return in a single call. Specify a value between 1 and 1000. The default value is 1000. To retrieve the remaining results, make another call with the returned <code>NextToken</code> value.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: SpotFleetRequestId:  The ID of the Spot Fleet request.<br/>NextToken:  The token required to retrieve the next set of results. This value is <code>null</code> when there are no more results to return.<br/>ActiveInstances:  The running instances. This list is refreshed periodically and might be out of date.<br/>        """
        pass

    def describe_spot_fleet_request_history(self, StartTime: DateTime, SpotFleetRequestId: str, DryRun: Boolean=None, EventType: str=None, MaxResults: int=None, NextToken: str=None) -> DescribeSpotFleetRequestHistoryResponse:
        r"""Describes the events for the specified Spot Fleet request during the specified time. Spot Fleet events are delayed by up to 30 seconds before they can be described. This ensures that you can query by the last evaluated time and not miss a recorded event. Spot Fleet events are available for 48 hours.

        :param self:
        :param StartTime:  The starting date and time for the events, in UTC format (for example, <i>YYYY</i>-<i>MM</i>-<i>DD</i>T<i>HH</i>:<i>MM</i>:<i>SS</i>Z).<br/>SpotFleetRequestId:  The ID of the Spot Fleet request.<br/>NextToken:  The token for the next set of results.<br/>MaxResults:  The maximum number of results to return in a single call. Specify a value between 1 and 1000. The default value is 1000. To retrieve the remaining results, make another call with the returned <code>NextToken</code> value.<br/>EventType:  The type of events to describe. By default, all events are described.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: StartTime:  The starting date and time for the events, in UTC format (for example, <i>YYYY</i>-<i>MM</i>-<i>DD</i>T<i>HH</i>:<i>MM</i>:<i>SS</i>Z).<br/>SpotFleetRequestId:  The ID of the Spot Fleet request.<br/>NextToken:  The token required to retrieve the next set of results. This value is <code>null</code> when there are no more results to return.<br/>LastEvaluatedTime:  The last date and time for the events, in UTC format (for example, <i>YYYY</i>-<i>MM</i>-<i>DD</i>T<i>HH</i>:<i>MM</i>:<i>SS</i>Z). All records up to this time were retrieved. If <code>nextToken</code> indicates that there are more results, this value is not present.<br/>HistoryRecords:  Information about the events in the history of the Spot Fleet request.<br/>        """
        pass

    def describe_spot_fleet_requests(self, DryRun: Boolean=None, MaxResults: int=None, NextToken: str=None, SpotFleetRequestIds: List[SpotFleetRequestId]=None) -> DescribeSpotFleetRequestsResponse:
        r"""Describes your Spot Fleet requests. Spot Fleet requests are deleted 48 hours after they are canceled and their instances are terminated.

        :param self:
        :param SpotFleetRequestIds:  The IDs of the Spot Fleet requests.<br/>NextToken:  The token for the next set of results.<br/>MaxResults:  The maximum number of results to return in a single call. Specify a value between 1 and 1000. The default value is 1000. To retrieve the remaining results, make another call with the returned <code>NextToken</code> value.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: SpotFleetRequestConfigs:  Information about the configuration of your Spot Fleet.<br/>NextToken:  The token required to retrieve the next set of results. This value is <code>null</code> when there are no more results to return.<br/>        """
        pass

    def describe_spot_instance_requests(self, Filters: List[Filter]=None, DryRun: Boolean=None, SpotInstanceRequestIds: List[SpotInstanceRequestId]=None, NextToken: str=None, MaxResults: int=None) -> DescribeSpotInstanceRequestsResult:
        r"""Describes the specified Spot Instance requests. You can use <code>DescribeSpotInstanceRequests</code> to find a running Spot Instance by examining the response. If the status of the Spot Instance is <code>fulfilled</code>, the instance ID appears in the response and contains the identifier of the instance. Alternatively, you can use <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstances">DescribeInstances</a> with a filter to look for instances where the instance lifecycle is <code>spot</code>. We recommend that you set <code>MaxResults</code> to a value between 5 and 1000 to limit the number of results returned. This paginates the output, which makes the list more manageable and returns the results faster. If the list of results exceeds your <code>MaxResults</code> value, then that number of results is returned along with a <code>NextToken</code> value that can be passed to a subsequent <code>DescribeSpotInstanceRequests</code> request to retrieve the remaining results. Spot Instance requests are deleted four hours after they are canceled and their instances are terminated.

        :param self:
        :param MaxResults:  The maximum number of results to return in a single call. Specify a value between 5 and 1000. To retrieve the remaining results, make another call with the returned <code>NextToken</code> value.<br/>NextToken:  The token to request the next set of results. This value is <code>null</code> when there are no more results to return.<br/>SpotInstanceRequestIds:  One or more Spot Instance request IDs.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>Filters:  One or more filters. <ul> <li>  <code>availability-zone-group</code> - The Availability Zone group. </li> <li>  <code>create-time</code> - The time stamp when the Spot Instance request was created. </li> <li>  <code>fault-code</code> - The fault code related to the request. </li> <li>  <code>fault-message</code> - The fault message related to the request. </li> <li>  <code>instance-id</code> - The ID of the instance that fulfilled the request. </li> <li>  <code>launch-group</code> - The Spot Instance launch group. </li> <li>  <code>launch.block-device-mapping.delete-on-termination</code> - Indicates whether the EBS volume is deleted on instance termination. </li> <li>  <code>launch.block-device-mapping.device-name</code> - The device name for the volume in the block device mapping (for example, <code>/dev/sdh</code> or <code>xvdh</code>). </li> <li>  <code>launch.block-device-mapping.snapshot-id</code> - The ID of the snapshot for the EBS volume. </li> <li>  <code>launch.block-device-mapping.volume-size</code> - The size of the EBS volume, in GiB. </li> <li>  <code>launch.block-device-mapping.volume-type</code> - The type of EBS volume: <code>gp2</code> for General Purpose SSD, <code>io1</code> or <code>io2</code> for Provisioned IOPS SSD, <code>st1</code> for Throughput Optimized HDD, <code>sc1</code>for Cold HDD, or <code>standard</code> for Magnetic. </li> <li>  <code>launch.group-id</code> - The ID of the security group for the instance. </li> <li>  <code>launch.group-name</code> - The name of the security group for the instance. </li> <li>  <code>launch.image-id</code> - The ID of the AMI. </li> <li>  <code>launch.instance-type</code> - The type of instance (for example, <code>m3.medium</code>). </li> <li>  <code>launch.kernel-id</code> - The kernel ID. </li> <li>  <code>launch.key-name</code> - The name of the key pair the instance launched with. </li> <li>  <code>launch.monitoring-enabled</code> - Whether detailed monitoring is enabled for the Spot Instance. </li> <li>  <code>launch.ramdisk-id</code> - The RAM disk ID. </li> <li>  <code>launched-availability-zone</code> - The Availability Zone in which the request is launched. </li> <li>  <code>network-interface.addresses.primary</code> - Indicates whether the IP address is the primary private IP address. </li> <li>  <code>network-interface.delete-on-termination</code> - Indicates whether the network interface is deleted when the instance is terminated. </li> <li>  <code>network-interface.description</code> - A description of the network interface. </li> <li>  <code>network-interface.device-index</code> - The index of the device for the network interface attachment on the instance. </li> <li>  <code>network-interface.group-id</code> - The ID of the security group associated with the network interface. </li> <li>  <code>network-interface.network-interface-id</code> - The ID of the network interface. </li> <li>  <code>network-interface.private-ip-address</code> - The primary private IP address of the network interface. </li> <li>  <code>network-interface.subnet-id</code> - The ID of the subnet for the instance. </li> <li>  <code>product-description</code> - The product description associated with the instance (<code>Linux/UNIX</code> | <code>Windows</code>). </li> <li>  <code>spot-instance-request-id</code> - The Spot Instance request ID. </li> <li>  <code>spot-price</code> - The maximum hourly price for any Spot Instance launched to fulfill the request. </li> <li>  <code>state</code> - The state of the Spot Instance request (<code>open</code> | <code>active</code> | <code>closed</code> | <code>cancelled</code> | <code>failed</code>). Spot request status information can help you track your Amazon EC2 Spot Instance requests. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-bid-status.html">Spot request status</a> in the <i>Amazon EC2 User Guide for Linux Instances</i>. </li> <li>  <code>status-code</code> - The short code describing the most recent evaluation of your Spot Instance request. </li> <li>  <code>status-message</code> - The message explaining the status of the Spot Instance request. </li> <li>  <code>tag</code>:&lt;key&gt; - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key <code>Owner</code> and the value <code>TeamA</code>, specify <code>tag:Owner</code> for the filter name and <code>TeamA</code> for the filter value. </li> <li>  <code>tag-key</code> - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value. </li> <li>  <code>type</code> - The type of Spot Instance request (<code>one-time</code> | <code>persistent</code>). </li> <li>  <code>valid-from</code> - The start date of the request. </li> <li>  <code>valid-until</code> - The end date of the request. </li> </ul><br/>
        :return: NextToken:  The token to use to retrieve the next set of results. This value is <code>null</code> when there are no more results to return.<br/>SpotInstanceRequests:  One or more Spot Instance requests.<br/>        """
        pass

    def describe_spot_price_history(self, Filters: List[Filter]=None, AvailabilityZone: str=None, DryRun: Boolean=None, EndTime: DateTime=None, InstanceTypes: List[InstanceType]=None, MaxResults: int=None, NextToken: str=None, ProductDescriptions: List[String]=None, StartTime: DateTime=None) -> DescribeSpotPriceHistoryResult:
        r"""Describes the Spot price history. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-spot-instances-history.html">Spot Instance pricing history</a> in the <i>Amazon EC2 User Guide for Linux Instances</i>. When you specify a start and end time, the operation returns the prices of the instance types within that time range. It also returns the last price change before the start time, which is the effective price as of the start time.

        :param self:
        :param StartTime:  The date and time, up to the past 90 days, from which to start retrieving the price history data, in UTC format (for example, <i>YYYY</i>-<i>MM</i>-<i>DD</i>T<i>HH</i>:<i>MM</i>:<i>SS</i>Z).<br/>ProductDescriptions:  Filters the results by the specified basic product descriptions.<br/>NextToken:  The token for the next set of results.<br/>MaxResults:  The maximum number of results to return in a single call. Specify a value between 1 and 1000. The default value is 1000. To retrieve the remaining results, make another call with the returned <code>NextToken</code> value.<br/>InstanceTypes:  Filters the results by the specified instance types.<br/>EndTime:  The date and time, up to the current date, from which to stop retrieving the price history data, in UTC format (for example, <i>YYYY</i>-<i>MM</i>-<i>DD</i>T<i>HH</i>:<i>MM</i>:<i>SS</i>Z).<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>AvailabilityZone:  Filters the results by the specified Availability Zone.<br/>Filters:  One or more filters. <ul> <li>  <code>availability-zone</code> - The Availability Zone for which prices should be returned. </li> <li>  <code>instance-type</code> - The type of instance (for example, <code>m3.medium</code>). </li> <li>  <code>product-description</code> - The product description for the Spot price (<code>Linux/UNIX</code> | <code>Red Hat Enterprise Linux</code> | <code>SUSE Linux</code> | <code>Windows</code> | <code>Linux/UNIX (Amazon VPC)</code> | <code>Red Hat Enterprise Linux (Amazon VPC)</code> | <code>SUSE Linux (Amazon VPC)</code> | <code>Windows (Amazon VPC)</code>). </li> <li>  <code>spot-price</code> - The Spot price. The value must match exactly (or use wildcards; greater than or less than comparison is not supported). </li> <li>  <code>timestamp</code> - The time stamp of the Spot price history, in UTC format (for example, <i>YYYY</i>-<i>MM</i>-<i>DD</i>T<i>HH</i>:<i>MM</i>:<i>SS</i>Z). You can use wildcards (* and ?). Greater than or less than comparison is not supported. </li> </ul><br/>
        :return: SpotPriceHistory:  The historical Spot prices.<br/>NextToken:  The token required to retrieve the next set of results. This value is null or an empty string when there are no more results to return.<br/>        """
        pass

    def describe_stale_security_groups(self, VpcId: str, DryRun: Boolean=None, MaxResults: int=None, NextToken: str=None) -> DescribeStaleSecurityGroupsResult:
        r"""[VPC only] Describes the stale security group rules for security groups in a specified VPC. Rules are stale when they reference a deleted security group in a peer VPC, or a security group in a peer VPC for which the VPC peering connection has been deleted.

        :param self:
        :param VpcId:  The ID of the VPC.<br/>NextToken:  The token for the next set of items to return. (You received this token from a prior call.)<br/>MaxResults:  The maximum number of items to return for this request. The request returns a token that you can specify in a subsequent call to get the next set of results.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: StaleSecurityGroupSet:  Information about the stale security groups.<br/>NextToken:  The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.<br/>        """
        pass

    def describe_store_image_tasks(self, ImageIds: List[ImageId]=None, DryRun: Boolean=None, Filters: List[Filter]=None, NextToken: str=None, MaxResults: int=None) -> DescribeStoreImageTasksResult:
        r"""Describes the progress of the AMI store tasks. You can describe the store tasks for specified AMIs. If you don't specify the AMIs, you get a paginated list of store tasks from the last 31 days. For each AMI task, the response indicates if the task is <code>InProgress</code>, <code>Completed</code>, or <code>Failed</code>. For tasks <code>InProgress</code>, the response shows the estimated progress as a percentage. Tasks are listed in reverse chronological order. Currently, only tasks from the past 31 days can be viewed. To use this API, you must have the required permissions. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-store-restore.html#ami-s3-permissions">Permissions for storing and restoring AMIs using S3</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-store-restore.html">Store and restore an AMI using S3</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.

        :param self:
        :param MaxResults:  The maximum number of results to return in a single call. To retrieve the remaining results, make another call with the returned <code>NextToken</code> value. This value can be between 1 and 200. You cannot specify this parameter and the <code>ImageIDs</code> parameter in the same call.<br/>NextToken:  The token for the next page of results.<br/>Filters:  The filters. <ul> <li>  <code>task-state</code> - Returns tasks in a certain state (<code>InProgress</code> | <code>Completed</code> | <code>Failed</code>) </li> <li>  <code>bucket</code> - Returns task information for tasks that targeted a specific bucket. For the filter value, specify the bucket name. </li> </ul><br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>ImageIds:  The AMI IDs for which to show progress. Up to 20 AMI IDs can be included in a request.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>StoreImageTaskResults:  The information about the AMI store tasks.<br/>        """
        pass

    def describe_subnets(self, Filters: List[Filter]=None, SubnetIds: List[SubnetId]=None, DryRun: Boolean=None, NextToken: str=None, MaxResults: int=None) -> DescribeSubnetsResult:
        r"""Describes one or more of your subnets. For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html">Your VPC and Subnets</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.

        :param self:
        :param MaxResults:  The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.<br/>NextToken:  The token for the next page of results.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>SubnetIds:  One or more subnet IDs. Default: Describes all your subnets.<br/>Filters:  One or more filters. <ul> <li>  <code>availability-zone</code> - The Availability Zone for the subnet. You can also use <code>availabilityZone</code> as the filter name. </li> <li>  <code>availability-zone-id</code> - The ID of the Availability Zone for the subnet. You can also use <code>availabilityZoneId</code> as the filter name. </li> <li>  <code>available-ip-address-count</code> - The number of IPv4 addresses in the subnet that are available. </li> <li>  <code>cidr-block</code> - The IPv4 CIDR block of the subnet. The CIDR block you specify must exactly match the subnet's CIDR block for information to be returned for the subnet. You can also use <code>cidr</code> or <code>cidrBlock</code> as the filter names. </li> <li>  <code>default-for-az</code> - Indicates whether this is the default subnet for the Availability Zone. You can also use <code>defaultForAz</code> as the filter name. </li> <li>  <code>ipv6-cidr-block-association.ipv6-cidr-block</code> - An IPv6 CIDR block associated with the subnet. </li> <li>  <code>ipv6-cidr-block-association.association-id</code> - An association ID for an IPv6 CIDR block associated with the subnet. </li> <li>  <code>ipv6-cidr-block-association.state</code> - The state of an IPv6 CIDR block associated with the subnet. </li> <li>  <code>outpost-arn</code> - The Amazon Resource Name (ARN) of the Outpost. </li> <li>  <code>owner-id</code> - The ID of the AWS account that owns the subnet. </li> <li>  <code>state</code> - The state of the subnet (<code>pending</code> | <code>available</code>). </li> <li>  <code>subnet-arn</code> - The Amazon Resource Name (ARN) of the subnet. </li> <li>  <code>subnet-id</code> - The ID of the subnet. </li> <li>  <code>tag</code>:&lt;key&gt; - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key <code>Owner</code> and the value <code>TeamA</code>, specify <code>tag:Owner</code> for the filter name and <code>TeamA</code> for the filter value. </li> <li>  <code>tag-key</code> - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value. </li> <li>  <code>vpc-id</code> - The ID of the VPC for the subnet. </li> </ul><br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>Subnets:  Information about one or more subnets.<br/>        """
        pass

    def describe_tags(self, DryRun: Boolean=None, Filters: List[Filter]=None, MaxResults: int=None, NextToken: str=None) -> DescribeTagsResult:
        r"""Describes the specified tags for your EC2 resources. For more information about tags, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html">Tagging Your Resources</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.

        :param self:
        :param NextToken:  The token to retrieve the next page of results.<br/>MaxResults:  The maximum number of results to return in a single call. This value can be between 5 and 1000. To retrieve the remaining results, make another call with the returned <code>NextToken</code> value.<br/>Filters:  The filters. <ul> <li>  <code>key</code> - The tag key. </li> <li>  <code>resource-id</code> - The ID of the resource. </li> <li>  <code>resource-type</code> - The resource type (<code>customer-gateway</code> | <code>dedicated-host</code> | <code>dhcp-options</code> | <code>elastic-ip</code> | <code>fleet</code> | <code>fpga-image</code> | <code>host-reservation</code> | <code>image</code> | <code>instance</code> | <code>internet-gateway</code> | <code>key-pair</code> | <code>launch-template</code> | <code>natgateway</code> | <code>network-acl</code> | <code>network-interface</code> | <code>placement-group</code> | <code>reserved-instances</code> | <code>route-table</code> | <code>security-group</code> | <code>snapshot</code> | <code>spot-instances-request</code> | <code>subnet</code> | <code>volume</code> | <code>vpc</code> | <code>vpc-endpoint</code> | <code>vpc-endpoint-service</code> | <code>vpc-peering-connection</code> | <code>vpn-connection</code> | <code>vpn-gateway</code>). </li> <li>  <code>tag</code>:&lt;key&gt; - The key/value combination of the tag. For example, specify "tag:Owner" for the filter name and "TeamA" for the filter value to find resources with the tag "Owner=TeamA". </li> <li>  <code>value</code> - The tag value. </li> </ul><br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: Tags:  The tags.<br/>NextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>        """
        pass

    def describe_traffic_mirror_filters(self, TrafficMirrorFilterIds: List[TrafficMirrorFilterId]=None, DryRun: Boolean=None, Filters: List[Filter]=None, MaxResults: int=None, NextToken: str=None) -> DescribeTrafficMirrorFiltersResult:
        r"""Describes one or more Traffic Mirror filters.

        :param self:
        :param NextToken:  The token for the next page of results.<br/>MaxResults:  The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.<br/>Filters:  One or more filters. The possible values are: <ul> <li>  <code>description</code>: The Traffic Mirror filter description. </li> <li>  <code>traffic-mirror-filter-id</code>: The ID of the Traffic Mirror filter. </li> </ul><br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>TrafficMirrorFilterIds:  The ID of the Traffic Mirror filter.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results. The value is <code>null</code> when there are no more results to return.<br/>TrafficMirrorFilters:  Information about one or more Traffic Mirror filters.<br/>        """
        pass

    def describe_traffic_mirror_sessions(self, TrafficMirrorSessionIds: List[TrafficMirrorSessionId]=None, DryRun: Boolean=None, Filters: List[Filter]=None, MaxResults: int=None, NextToken: str=None) -> DescribeTrafficMirrorSessionsResult:
        r"""Describes one or more Traffic Mirror sessions. By default, all Traffic Mirror sessions are described. Alternatively, you can filter the results.

        :param self:
        :param NextToken:  The token for the next page of results.<br/>MaxResults:  The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.<br/>Filters:  One or more filters. The possible values are: <ul> <li>  <code>description</code>: The Traffic Mirror session description. </li> <li>  <code>network-interface-id</code>: The ID of the Traffic Mirror session network interface. </li> <li>  <code>owner-id</code>: The ID of the account that owns the Traffic Mirror session. </li> <li>  <code>packet-length</code>: The assigned number of packets to mirror.  </li> <li>  <code>session-number</code>: The assigned session number.  </li> <li>  <code>traffic-mirror-filter-id</code>: The ID of the Traffic Mirror filter. </li> <li>  <code>traffic-mirror-session-id</code>: The ID of the Traffic Mirror session. </li> <li>  <code>traffic-mirror-target-id</code>: The ID of the Traffic Mirror target. </li> <li>  <code>virtual-network-id</code>: The virtual network ID of the Traffic Mirror session. </li> </ul><br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>TrafficMirrorSessionIds:  The ID of the Traffic Mirror session.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results. The value is <code>null</code> when there are no more results to return.<br/>TrafficMirrorSessions:  Describes one or more Traffic Mirror sessions. By default, all Traffic Mirror sessions are described. Alternatively, you can filter the results.<br/>        """
        pass

    def describe_traffic_mirror_targets(self, TrafficMirrorTargetIds: List[TrafficMirrorTargetId]=None, DryRun: Boolean=None, Filters: List[Filter]=None, MaxResults: int=None, NextToken: str=None) -> DescribeTrafficMirrorTargetsResult:
        r"""Information about one or more Traffic Mirror targets.

        :param self:
        :param NextToken:  The token for the next page of results.<br/>MaxResults:  The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.<br/>Filters:  One or more filters. The possible values are: <ul> <li>  <code>description</code>: The Traffic Mirror target description. </li> <li>  <code>network-interface-id</code>: The ID of the Traffic Mirror session network interface. </li> <li>  <code>network-load-balancer-arn</code>: The Amazon Resource Name (ARN) of the Network Load Balancer that is associated with the session. </li> <li>  <code>owner-id</code>: The ID of the account that owns the Traffic Mirror session. </li> <li>  <code>traffic-mirror-target-id</code>: The ID of the Traffic Mirror target. </li> </ul><br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>TrafficMirrorTargetIds:  The ID of the Traffic Mirror targets.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results. The value is <code>null</code> when there are no more results to return.<br/>TrafficMirrorTargets:  Information about one or more Traffic Mirror targets.<br/>        """
        pass

    def describe_transit_gateway_attachments(self, TransitGatewayAttachmentIds: List[TransitGatewayAttachmentId]=None, Filters: List[Filter]=None, MaxResults: int=None, NextToken: str=None, DryRun: Boolean=None) -> DescribeTransitGatewayAttachmentsResult:
        r"""Describes one or more attachments between resources and transit gateways. By default, all attachments are described. Alternatively, you can filter the results by attachment ID, attachment state, resource ID, or resource owner.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>NextToken:  The token for the next page of results.<br/>MaxResults:  The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.<br/>Filters:  One or more filters. The possible values are: <ul> <li>  <code>association.state</code> - The state of the association (<code>associating</code> | <code>associated</code> | <code>disassociating</code>). </li> <li>  <code>association.transit-gateway-route-table-id</code> - The ID of the route table for the transit gateway. </li> <li>  <code>resource-id</code> - The ID of the resource. </li> <li>  <code>resource-owner-id</code> - The ID of the AWS account that owns the resource. </li> <li>  <code>resource-type</code> - The resource type. Valid values are <code>vpc</code> | <code>vpn</code> | <code>direct-connect-gateway</code> | <code>peering</code> | <code>connect</code>. </li> <li>  <code>state</code> - The state of the attachment. Valid values are <code>available</code> | <code>deleted</code> | <code>deleting</code> | <code>failed</code> | <code>failing</code> | <code>initiatingRequest</code> | <code>modifying</code> | <code>pendingAcceptance</code> | <code>pending</code> | <code>rollingBack</code> | <code>rejected</code> | <code>rejecting</code>. </li> <li>  <code>transit-gateway-attachment-id</code> - The ID of the attachment. </li> <li>  <code>transit-gateway-id</code> - The ID of the transit gateway. </li> <li>  <code>transit-gateway-owner-id</code> - The ID of the AWS account that owns the transit gateway. </li> </ul><br/>TransitGatewayAttachmentIds:  The IDs of the attachments.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>TransitGatewayAttachments:  Information about the attachments.<br/>        """
        pass

    def describe_transit_gateway_connect_peers(self, TransitGatewayConnectPeerIds: List[TransitGatewayConnectPeerId]=None, Filters: List[Filter]=None, MaxResults: int=None, NextToken: str=None, DryRun: Boolean=None) -> DescribeTransitGatewayConnectPeersResult:
        r"""Describes one or more Connect peers.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>NextToken:  The token for the next page of results.<br/>MaxResults:  The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.<br/>Filters:  One or more filters. The possible values are: <ul> <li>  <code>state</code> - The state of the Connect peer (<code>pending</code> | <code>available</code> | <code>deleting</code> | <code>deleted</code>). </li> <li>  <code>transit-gateway-attachment-id</code> - The ID of the attachment. </li> <li>  <code>transit-gateway-connect-peer-id</code> - The ID of the Connect peer. </li> </ul><br/>TransitGatewayConnectPeerIds:  The IDs of the Connect peers.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>TransitGatewayConnectPeers:  Information about the Connect peers.<br/>        """
        pass

    def describe_transit_gateway_connects(self, TransitGatewayAttachmentIds: List[TransitGatewayAttachmentId]=None, Filters: List[Filter]=None, MaxResults: int=None, NextToken: str=None, DryRun: Boolean=None) -> DescribeTransitGatewayConnectsResult:
        r"""Describes one or more Connect attachments.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>NextToken:  The token for the next page of results.<br/>MaxResults:  The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.<br/>Filters:  One or more filters. The possible values are: <ul> <li>  <code>options.protocol</code> - The tunnel protocol (<code>gre</code>). </li> <li>  <code>state</code> - The state of the attachment (<code>initiating</code> | <code>initiatingRequest</code> | <code>pendingAcceptance</code> | <code>rollingBack</code> | <code>pending</code> | <code>available</code> | <code>modifying</code> | <code>deleting</code> | <code>deleted</code> | <code>failed</code> | <code>rejected</code> | <code>rejecting</code> | <code>failing</code>). </li> <li>  <code>transit-gateway-attachment-id</code> - The ID of the Connect attachment. </li> <li>  <code>transit-gateway-id</code> - The ID of the transit gateway. </li> <li>  <code>transport-transit-gateway-attachment-id</code> - The ID of the transit gateway attachment from which the Connect attachment was created. </li> </ul><br/>TransitGatewayAttachmentIds:  The IDs of the attachments.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>TransitGatewayConnects:  Information about the Connect attachments.<br/>        """
        pass

    def describe_transit_gateway_multicast_domains(self, TransitGatewayMulticastDomainIds: List[TransitGatewayMulticastDomainId]=None, Filters: List[Filter]=None, MaxResults: int=None, NextToken: str=None, DryRun: Boolean=None) -> DescribeTransitGatewayMulticastDomainsResult:
        r"""Describes one or more transit gateway multicast domains.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>NextToken:  The token for the next page of results.<br/>MaxResults:  The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.<br/>Filters:  One or more filters. The possible values are: <ul> <li>  <code>state</code> - The state of the transit gateway multicast domain. Valid values are <code>pending</code> | <code>available</code> | <code>deleting</code> | <code>deleted</code>. </li> <li>  <code>transit-gateway-id</code> - The ID of the transit gateway. </li> <li>  <code>transit-gateway-multicast-domain-id</code> - The ID of the transit gateway multicast domain. </li> </ul><br/>TransitGatewayMulticastDomainIds:  The ID of the transit gateway multicast domain.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>TransitGatewayMulticastDomains:  Information about the transit gateway multicast domains.<br/>        """
        pass

    def describe_transit_gateway_peering_attachments(self, TransitGatewayAttachmentIds: List[TransitGatewayAttachmentId]=None, Filters: List[Filter]=None, MaxResults: int=None, NextToken: str=None, DryRun: Boolean=None) -> DescribeTransitGatewayPeeringAttachmentsResult:
        r"""Describes your transit gateway peering attachments.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>NextToken:  The token for the next page of results.<br/>MaxResults:  The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.<br/>Filters:  One or more filters. The possible values are: <ul> <li>  <code>transit-gateway-attachment-id</code> - The ID of the transit gateway attachment. </li> <li>  <code>local-owner-id</code> - The ID of your AWS account. </li> <li>  <code>remote-owner-id</code> - The ID of the AWS account in the remote Region that owns the transit gateway. </li> <li>  <code>state</code> - The state of the peering attachment. Valid values are <code>available</code> | <code>deleted</code> | <code>deleting</code> | <code>failed</code> | <code>failing</code> | <code>initiatingRequest</code> | <code>modifying</code> | <code>pendingAcceptance</code> | <code>pending</code> | <code>rollingBack</code> | <code>rejected</code> | <code>rejecting</code>). </li> <li>  <code>tag</code>:&lt;key&gt; - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key <code>Owner</code> and the value <code>TeamA</code>, specify <code>tag:Owner</code> for the filter name and <code>TeamA</code> for the filter value. </li> <li>  <code>tag-key</code> - The key of a tag assigned to the resource. Use this filter to find all resources that have a tag with a specific key, regardless of the tag value. </li> <li>  <code>transit-gateway-id</code> - The ID of the transit gateway. </li> </ul><br/>TransitGatewayAttachmentIds:  One or more IDs of the transit gateway peering attachments.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>TransitGatewayPeeringAttachments:  The transit gateway peering attachments.<br/>        """
        pass

    def describe_transit_gateway_route_tables(self, TransitGatewayRouteTableIds: List[TransitGatewayRouteTableId]=None, Filters: List[Filter]=None, MaxResults: int=None, NextToken: str=None, DryRun: Boolean=None) -> DescribeTransitGatewayRouteTablesResult:
        r"""Describes one or more transit gateway route tables. By default, all transit gateway route tables are described. Alternatively, you can filter the results.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>NextToken:  The token for the next page of results.<br/>MaxResults:  The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.<br/>Filters:  One or more filters. The possible values are: <ul> <li>  <code>default-association-route-table</code> - Indicates whether this is the default association route table for the transit gateway (<code>true</code> | <code>false</code>). </li> <li>  <code>default-propagation-route-table</code> - Indicates whether this is the default propagation route table for the transit gateway (<code>true</code> | <code>false</code>). </li> <li>  <code>state</code> - The state of the route table (<code>available</code> | <code>deleting</code> | <code>deleted</code> | <code>pending</code>). </li> <li>  <code>transit-gateway-id</code> - The ID of the transit gateway. </li> <li>  <code>transit-gateway-route-table-id</code> - The ID of the transit gateway route table. </li> </ul><br/>TransitGatewayRouteTableIds:  The IDs of the transit gateway route tables.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>TransitGatewayRouteTables:  Information about the transit gateway route tables.<br/>        """
        pass

    def describe_transit_gateway_vpc_attachments(self, TransitGatewayAttachmentIds: List[TransitGatewayAttachmentId]=None, Filters: List[Filter]=None, MaxResults: int=None, NextToken: str=None, DryRun: Boolean=None) -> DescribeTransitGatewayVpcAttachmentsResult:
        r"""Describes one or more VPC attachments. By default, all VPC attachments are described. Alternatively, you can filter the results.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>NextToken:  The token for the next page of results.<br/>MaxResults:  The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.<br/>Filters:  One or more filters. The possible values are: <ul> <li>  <code>state</code> - The state of the attachment. Valid values are <code>available</code> | <code>deleted</code> | <code>deleting</code> | <code>failed</code> | <code>failing</code> | <code>initiatingRequest</code> | <code>modifying</code> | <code>pendingAcceptance</code> | <code>pending</code> | <code>rollingBack</code> | <code>rejected</code> | <code>rejecting</code>. </li> <li>  <code>transit-gateway-attachment-id</code> - The ID of the attachment. </li> <li>  <code>transit-gateway-id</code> - The ID of the transit gateway. </li> <li>  <code>vpc-id</code> - The ID of the VPC. </li> </ul><br/>TransitGatewayAttachmentIds:  The IDs of the attachments.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>TransitGatewayVpcAttachments:  Information about the VPC attachments.<br/>        """
        pass

    def describe_transit_gateways(self, TransitGatewayIds: List[TransitGatewayId]=None, Filters: List[Filter]=None, MaxResults: int=None, NextToken: str=None, DryRun: Boolean=None) -> DescribeTransitGatewaysResult:
        r"""Describes one or more transit gateways. By default, all transit gateways are described. Alternatively, you can filter the results.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>NextToken:  The token for the next page of results.<br/>MaxResults:  The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.<br/>Filters:  One or more filters. The possible values are: <ul> <li>  <code>options.propagation-default-route-table-id</code> - The ID of the default propagation route table. </li> <li>  <code>options.amazon-side-asn</code> - The private ASN for the Amazon side of a BGP session. </li> <li>  <code>options.association-default-route-table-id</code> - The ID of the default association route table. </li> <li>  <code>options.auto-accept-shared-attachments</code> - Indicates whether there is automatic acceptance of attachment requests (<code>enable</code> | <code>disable</code>). </li> <li>  <code>options.default-route-table-association</code> - Indicates whether resource attachments are automatically associated with the default association route table (<code>enable</code> | <code>disable</code>). </li> <li>  <code>options.default-route-table-propagation</code> - Indicates whether resource attachments automatically propagate routes to the default propagation route table (<code>enable</code> | <code>disable</code>). </li> <li>  <code>options.dns-support</code> - Indicates whether DNS support is enabled (<code>enable</code> | <code>disable</code>). </li> <li>  <code>options.vpn-ecmp-support</code> - Indicates whether Equal Cost Multipath Protocol support is enabled (<code>enable</code> | <code>disable</code>). </li> <li>  <code>owner-id</code> - The ID of the AWS account that owns the transit gateway. </li> <li>  <code>state</code> - The state of the transit gateway (<code>available</code> | <code>deleted</code> | <code>deleting</code> | <code>modifying</code> | <code>pending</code>). </li> <li>  <code>transit-gateway-id</code> - The ID of the transit gateway. </li> </ul><br/>TransitGatewayIds:  The IDs of the transit gateways.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>TransitGateways:  Information about the transit gateways.<br/>        """
        pass

    def describe_trunk_interface_associations(self, AssociationIds: List[TrunkInterfaceAssociationId]=None, DryRun: Boolean=None, Filters: List[Filter]=None, NextToken: str=None, MaxResults: int=None) -> DescribeTrunkInterfaceAssociationsResult:
        r"""Describes one or more network interface trunk associations.

        :param self:
        :param MaxResults:  The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.<br/>NextToken:  The token for the next page of results.<br/>Filters:  One or more filters. <ul> <li>  <code>gre-key</code> - The ID of a trunk interface association. </li> <li>  <code>interface-protocol</code> - The interface protocol. Valid values are <code>VLAN</code> and <code>GRE</code>. </li> </ul><br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>AssociationIds:  The IDs of the associations.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>InterfaceAssociations:  Information about the trunk associations.<br/>        """
        pass

    def describe_volume_attribute(self, VolumeId: str, Attribute: str, DryRun: Boolean=None) -> DescribeVolumeAttributeResult:
        r"""Describes the specified attribute of the specified volume. You can specify only one attribute at a time. For more information about EBS volumes, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumes.html">Amazon EBS volumes</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>VolumeId:  The ID of the volume.<br/>Attribute:  The attribute of the volume. This parameter is required.<br/>
        :return: VolumeId:  The ID of the volume.<br/>ProductCodes:  A list of product codes.<br/>AutoEnableIO:  The state of <code>autoEnableIO</code> attribute.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Value</i> The attribute value. The valid values are <code>true</code> or <code>false</code>.<br/>        """
        pass

    def describe_volume_status(self, Filters: List[Filter]=None, MaxResults: int=None, NextToken: str=None, VolumeIds: List[VolumeId]=None, DryRun: Boolean=None) -> DescribeVolumeStatusResult:
        r"""Describes the status of the specified volumes. Volume status provides the result of the checks performed on your volumes to determine events that can impair the performance of your volumes. The performance of a volume can be affected if an issue occurs on the volume's underlying host. If the volume's underlying host experiences a power outage or system issue, after the system is restored, there could be data inconsistencies on the volume. Volume events notify you if this occurs. Volume actions notify you if any action needs to be taken in response to the event. The <code>DescribeVolumeStatus</code> operation provides the following information about the specified volumes:  <i>Status</i>: Reflects the current status of the volume. The possible values are <code>ok</code>, <code>impaired</code> , <code>warning</code>, or <code>insufficient-data</code>. If all checks pass, the overall status of the volume is <code>ok</code>. If the check fails, the overall status is <code>impaired</code>. If the status is <code>insufficient-data</code>, then the checks might still be taking place on your volume at the time. We recommend that you retry the request. For more information about volume status, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/monitoring-volume-status.html">Monitoring the status of your volumes</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.  <i>Events</i>: Reflect the cause of a volume status and might require you to take action. For example, if your volume returns an <code>impaired</code> status, then the volume event might be <code>potential-data-inconsistency</code>. This means that your volume has been affected by an issue with the underlying host, has all I/O operations disabled, and might have inconsistent data.  <i>Actions</i>: Reflect the actions you might have to take in response to an event. For example, if the status of the volume is <code>impaired</code> and the volume event shows <code>potential-data-inconsistency</code>, then the action shows <code>enable-volume-io</code>. This means that you may want to enable the I/O operations for the volume by calling the <a>EnableVolumeIO</a> action and then check the volume for data consistency. Volume status is based on the volume status checks, and does not reflect the volume state. Therefore, volume status does not indicate volumes in the <code>error</code> state (for example, when a volume is incapable of accepting I/O.)

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>VolumeIds:  The IDs of the volumes. Default: Describes all your volumes.<br/>NextToken:  The <code>NextToken</code> value to include in a future <code>DescribeVolumeStatus</code> request. When the results of the request exceed <code>MaxResults</code>, this value can be used to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>MaxResults:  The maximum number of volume results returned by <code>DescribeVolumeStatus</code> in paginated output. When this parameter is used, the request only returns <code>MaxResults</code> results in a single page along with a <code>NextToken</code> response element. The remaining results of the initial request can be seen by sending another request with the returned <code>NextToken</code> value. This value can be between 5 and 1,000; if <code>MaxResults</code> is given a value larger than 1,000, only 1,000 results are returned. If this parameter is not used, then <code>DescribeVolumeStatus</code> returns all results. You cannot specify this parameter and the volume IDs parameter in the same request.<br/>Filters:  The filters. <ul> <li>  <code>action.code</code> - The action code for the event (for example, <code>enable-volume-io</code>). </li> <li>  <code>action.description</code> - A description of the action. </li> <li>  <code>action.event-id</code> - The event ID associated with the action. </li> <li>  <code>availability-zone</code> - The Availability Zone of the instance. </li> <li>  <code>event.description</code> - A description of the event. </li> <li>  <code>event.event-id</code> - The event ID. </li> <li>  <code>event.event-type</code> - The event type (for <code>io-enabled</code>: <code>passed</code> | <code>failed</code>; for <code>io-performance</code>: <code>io-performance:degraded</code> | <code>io-performance:severely-degraded</code> | <code>io-performance:stalled</code>). </li> <li>  <code>event.not-after</code> - The latest end time for the event. </li> <li>  <code>event.not-before</code> - The earliest start time for the event. </li> <li>  <code>volume-status.details-name</code> - The cause for <code>volume-status.status</code> (<code>io-enabled</code> | <code>io-performance</code>). </li> <li>  <code>volume-status.details-status</code> - The status of <code>volume-status.details-name</code> (for <code>io-enabled</code>: <code>passed</code> | <code>failed</code>; for <code>io-performance</code>: <code>normal</code> | <code>degraded</code> | <code>severely-degraded</code> | <code>stalled</code>). </li> <li>  <code>volume-status.status</code> - The status of the volume (<code>ok</code> | <code>impaired</code> | <code>warning</code> | <code>insufficient-data</code>). </li> </ul><br/>
        :return: VolumeStatuses:  Information about the status of the volumes.<br/>NextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>        """
        pass

    def describe_volumes(self, Filters: List[Filter]=None, VolumeIds: List[VolumeId]=None, DryRun: Boolean=None, MaxResults: int=None, NextToken: str=None) -> DescribeVolumesResult:
        r"""Describes the specified EBS volumes or all of your EBS volumes. If you are describing a long list of volumes, we recommend that you paginate the output to make the list more manageable. The <code>MaxResults</code> parameter sets the maximum number of results returned in a single page. If the list of results exceeds your <code>MaxResults</code> value, then that number of results is returned along with a <code>NextToken</code> value that can be passed to a subsequent <code>DescribeVolumes</code> request to retrieve the remaining results. For more information about EBS volumes, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumes.html">Amazon EBS volumes</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.

        :param self:
        :param NextToken:  The <code>NextToken</code> value returned from a previous paginated <code>DescribeVolumes</code> request where <code>MaxResults</code> was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the <code>NextToken</code> value. This value is <code>null</code> when there are no more results to return.<br/>MaxResults:  The maximum number of volume results returned by <code>DescribeVolumes</code> in paginated output. When this parameter is used, <code>DescribeVolumes</code> only returns <code>MaxResults</code> results in a single page along with a <code>NextToken</code> response element. The remaining results of the initial request can be seen by sending another <code>DescribeVolumes</code> request with the returned <code>NextToken</code> value. This value can be between 5 and 500; if <code>MaxResults</code> is given a value larger than 500, only 500 results are returned. If this parameter is not used, then <code>DescribeVolumes</code> returns all results. You cannot specify this parameter and the volume IDs parameter in the same request.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>VolumeIds:  The volume IDs.<br/>Filters:  The filters. <ul> <li>  <code>attachment.attach-time</code> - The time stamp when the attachment initiated. </li> <li>  <code>attachment.delete-on-termination</code> - Whether the volume is deleted on instance termination. </li> <li>  <code>attachment.device</code> - The device name specified in the block device mapping (for example, <code>/dev/sda1</code>). </li> <li>  <code>attachment.instance-id</code> - The ID of the instance the volume is attached to. </li> <li>  <code>attachment.status</code> - The attachment state (<code>attaching</code> | <code>attached</code> | <code>detaching</code>). </li> <li>  <code>availability-zone</code> - The Availability Zone in which the volume was created. </li> <li>  <code>create-time</code> - The time stamp when the volume was created. </li> <li>  <code>encrypted</code> - Indicates whether the volume is encrypted (<code>true</code> | <code>false</code>) </li> <li>  <code>multi-attach-enabled</code> - Indicates whether the volume is enabled for Multi-Attach (<code>true</code> | <code>false</code>) </li> <li>  <code>fast-restored</code> - Indicates whether the volume was created from a snapshot that is enabled for fast snapshot restore (<code>true</code> | <code>false</code>). </li> <li>  <code>size</code> - The size of the volume, in GiB. </li> <li>  <code>snapshot-id</code> - The snapshot from which the volume was created. </li> <li>  <code>status</code> - The state of the volume (<code>creating</code> | <code>available</code> | <code>in-use</code> | <code>deleting</code> | <code>deleted</code> | <code>error</code>). </li> <li>  <code>tag</code>:&lt;key&gt; - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key <code>Owner</code> and the value <code>TeamA</code>, specify <code>tag:Owner</code> for the filter name and <code>TeamA</code> for the filter value. </li> <li>  <code>tag-key</code> - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value. </li> <li>  <code>volume-id</code> - The volume ID. </li> <li>  <code>volume-type</code> - The Amazon EBS volume type (<code>gp2</code> | <code>gp3</code> | <code>io1</code> | <code>io2</code> | <code>st1</code> | <code>sc1</code>| <code>standard</code>) </li> </ul><br/>
        :return: NextToken:  The <code>NextToken</code> value to include in a future <code>DescribeVolumes</code> request. When the results of a <code>DescribeVolumes</code> request exceed <code>MaxResults</code>, this value can be used to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>Volumes:  Information about the volumes.<br/>        """
        pass

    def describe_volumes_modifications(self, DryRun: Boolean=None, VolumeIds: List[VolumeId]=None, Filters: List[Filter]=None, NextToken: str=None, MaxResults: int=None) -> DescribeVolumesModificationsResult:
        r"""Describes the most recent volume modification request for the specified EBS volumes. If a volume has never been modified, some information in the output will be null. If a volume has been modified more than once, the output includes only the most recent modification request. You can also use CloudWatch Events to check the status of a modification to an EBS volume. For information about CloudWatch Events, see the <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/">Amazon CloudWatch Events User Guide</a>. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-expand-volume.html#monitoring_mods">Monitoring volume modifications</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.

        :param self:
        :param MaxResults:  The maximum number of results (up to a limit of 500) to be returned in a paginated request.<br/>NextToken:  The <code>nextToken</code> value returned by a previous paginated request.<br/>Filters:  The filters. <ul> <li>  <code>modification-state</code> - The current modification state (modifying | optimizing | completed | failed). </li> <li>  <code>original-iops</code> - The original IOPS rate of the volume. </li> <li>  <code>original-size</code> - The original size of the volume, in GiB. </li> <li>  <code>original-volume-type</code> - The original volume type of the volume (standard | io1 | io2 | gp2 | sc1 | st1). </li> <li>  <code>originalMultiAttachEnabled</code> - Indicates whether Multi-Attach support was enabled (true | false). </li> <li>  <code>start-time</code> - The modification start time. </li> <li>  <code>target-iops</code> - The target IOPS rate of the volume. </li> <li>  <code>target-size</code> - The target size of the volume, in GiB. </li> <li>  <code>target-volume-type</code> - The target volume type of the volume (standard | io1 | io2 | gp2 | sc1 | st1). </li> <li>  <code>targetMultiAttachEnabled</code> - Indicates whether Multi-Attach support is to be enabled (true | false). </li> <li>  <code>volume-id</code> - The ID of the volume. </li> </ul><br/>VolumeIds:  The IDs of the volumes.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: NextToken:  Token for pagination, null if there are no more results <br/>VolumesModifications:  Information about the volume modifications.<br/>        """
        pass

    def describe_vpc_attribute(self, VpcId: str, Attribute: str, DryRun: Boolean=None) -> DescribeVpcAttributeResult:
        r"""Describes the specified attribute of the specified VPC. You can specify only one attribute at a time.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>VpcId:  The ID of the VPC.<br/>Attribute:  The VPC attribute.<br/>
        :return: EnableDnsSupport:  Indicates whether DNS resolution is enabled for the VPC. If this attribute is <code>true</code>, the Amazon DNS server resolves DNS hostnames for your instances to their corresponding IP addresses; otherwise, it does not.:<br/>EnableDnsHostnames:  Indicates whether the instances launched in the VPC get DNS hostnames. If this attribute is <code>true</code>, instances in the VPC get DNS hostnames; otherwise, they do not.:<br/>VpcId:  The ID of the VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Value</i> The attribute value. The valid values are <code>true</code> or <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Value</i> The attribute value. The valid values are <code>true</code> or <code>false</code>.<br/>        """
        pass

    def describe_vpc_classic_link(self, Filters: List[Filter]=None, DryRun: Boolean=None, VpcIds: List[VpcId]=None) -> DescribeVpcClassicLinkResult:
        r"""Describes the ClassicLink status of one or more VPCs.

        :param self:
        :param VpcIds:  One or more VPCs for which you want to describe the ClassicLink status.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>Filters:  One or more filters. <ul> <li>  <code>is-classic-link-enabled</code> - Whether the VPC is enabled for ClassicLink (<code>true</code> | <code>false</code>). </li> <li>  <code>tag</code>:&lt;key&gt; - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key <code>Owner</code> and the value <code>TeamA</code>, specify <code>tag:Owner</code> for the filter name and <code>TeamA</code> for the filter value. </li> <li>  <code>tag-key</code> - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value. </li> </ul><br/>
        :return: Vpcs:  The ClassicLink status of one or more VPCs.<br/>        """
        pass

    def describe_vpc_classic_link_dns_support(self, MaxResults: int=None, NextToken: str=None, VpcIds: List[VpcId]=None) -> DescribeVpcClassicLinkDnsSupportResult:
        r"""Describes the ClassicLink DNS support status of one or more VPCs. If enabled, the DNS hostname of a linked EC2-Classic instance resolves to its private IP address when addressed from an instance in the VPC to which it's linked. Similarly, the DNS hostname of an instance in a VPC resolves to its private IP address when addressed from a linked EC2-Classic instance. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-classiclink.html">ClassicLink</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.

        :param self:
        :param VpcIds:  One or more VPC IDs.<br/>NextToken:  The token for the next page of results.<br/>MaxResults:  The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.<br/>
        :return: Vpcs:  Information about the ClassicLink DNS support status of the VPCs.<br/>NextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>        """
        pass

    def describe_vpc_endpoint_connection_notifications(self, DryRun: Boolean=None, ConnectionNotificationId: str=None, Filters: List[Filter]=None, MaxResults: int=None, NextToken: str=None) -> DescribeVpcEndpointConnectionNotificationsResult:
        r"""Describes the connection notifications for VPC endpoints and VPC endpoint services.

        :param self:
        :param NextToken:  The token to request the next page of results.<br/>MaxResults:  The maximum number of results to return in a single call. To retrieve the remaining results, make another request with the returned <code>NextToken</code> value.<br/>Filters:  One or more filters. <ul> <li>  <code>connection-notification-arn</code> - The ARN of the SNS topic for the notification. </li> <li>  <code>connection-notification-id</code> - The ID of the notification. </li> <li>  <code>connection-notification-state</code> - The state of the notification (<code>Enabled</code> | <code>Disabled</code>). </li> <li>  <code>connection-notification-type</code> - The type of notification (<code>Topic</code>). </li> <li>  <code>service-id</code> - The ID of the endpoint service. </li> <li>  <code>vpc-endpoint-id</code> - The ID of the VPC endpoint. </li> </ul><br/>ConnectionNotificationId:  The ID of the notification.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>ConnectionNotificationSet:  One or more notifications.<br/>        """
        pass

    def describe_vpc_endpoint_connections(self, DryRun: Boolean=None, Filters: List[Filter]=None, MaxResults: int=None, NextToken: str=None) -> DescribeVpcEndpointConnectionsResult:
        r"""Describes the VPC endpoint connections to your VPC endpoint services, including any endpoints that are pending your acceptance.

        :param self:
        :param NextToken:  The token to retrieve the next page of results.<br/>MaxResults:  The maximum number of results to return for the request in a single page. The remaining results of the initial request can be seen by sending another request with the returned <code>NextToken</code> value. This value can be between 5 and 1,000; if <code>MaxResults</code> is given a value larger than 1,000, only 1,000 results are returned.<br/>Filters:  One or more filters. <ul> <li>  <code>service-id</code> - The ID of the service. </li> <li>  <code>vpc-endpoint-owner</code> - The AWS account number of the owner of the endpoint. </li> <li>  <code>vpc-endpoint-state</code> - The state of the endpoint (<code>pendingAcceptance</code> | <code>pending</code> | <code>available</code> | <code>deleting</code> | <code>deleted</code> | <code>rejected</code> | <code>failed</code>). </li> <li>  <code>vpc-endpoint-id</code> - The ID of the endpoint. </li> </ul><br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>VpcEndpointConnections:  Information about one or more VPC endpoint connections.<br/>        """
        pass

    def describe_vpc_endpoint_service_configurations(self, DryRun: Boolean=None, ServiceIds: List[VpcEndpointServiceId]=None, Filters: List[Filter]=None, MaxResults: int=None, NextToken: str=None) -> DescribeVpcEndpointServiceConfigurationsResult:
        r"""Describes the VPC endpoint service configurations in your account (your services).

        :param self:
        :param NextToken:  The token to retrieve the next page of results.<br/>MaxResults:  The maximum number of results to return for the request in a single page. The remaining results of the initial request can be seen by sending another request with the returned <code>NextToken</code> value. This value can be between 5 and 1,000; if <code>MaxResults</code> is given a value larger than 1,000, only 1,000 results are returned.<br/>Filters:  One or more filters. <ul> <li>  <code>service-name</code> - The name of the service. </li> <li>  <code>service-id</code> - The ID of the service. </li> <li>  <code>service-state</code> - The state of the service (<code>Pending</code> | <code>Available</code> | <code>Deleting</code> | <code>Deleted</code> | <code>Failed</code>).  </li> <li>  <code>tag</code>:&lt;key&gt; - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key <code>Owner</code> and the value <code>TeamA</code>, specify <code>tag:Owner</code> for the filter name and <code>TeamA</code> for the filter value. </li> <li>  <code>tag-key</code> - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value. </li> </ul><br/>ServiceIds:  The IDs of one or more services.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>ServiceConfigurations:  Information about one or more services.<br/>        """
        pass

    def describe_vpc_endpoint_service_permissions(self, ServiceId: str, DryRun: Boolean=None, Filters: List[Filter]=None, MaxResults: int=None, NextToken: str=None) -> DescribeVpcEndpointServicePermissionsResult:
        r"""Describes the principals (service consumers) that are permitted to discover your VPC endpoint service.

        :param self:
        :param NextToken:  The token to retrieve the next page of results.<br/>MaxResults:  The maximum number of results to return for the request in a single page. The remaining results of the initial request can be seen by sending another request with the returned <code>NextToken</code> value. This value can be between 5 and 1,000; if <code>MaxResults</code> is given a value larger than 1,000, only 1,000 results are returned.<br/>Filters:  One or more filters. <ul> <li>  <code>principal</code> - The ARN of the principal. </li> <li>  <code>principal-type</code> - The principal type (<code>All</code> | <code>Service</code> | <code>OrganizationUnit</code> | <code>Account</code> | <code>User</code> | <code>Role</code>). </li> </ul><br/>ServiceId:  The ID of the service.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>AllowedPrincipals:  Information about one or more allowed principals.<br/>        """
        pass

    def describe_vpc_endpoint_services(self, DryRun: Boolean=None, ServiceNames: List[String]=None, Filters: List[Filter]=None, MaxResults: int=None, NextToken: str=None) -> DescribeVpcEndpointServicesResult:
        r"""Describes available services to which you can create a VPC endpoint. When the service provider and the consumer have different accounts in multiple Availability Zones, and the consumer views the VPC endpoint service information, the response only includes the common Availability Zones. For example, when the service provider account uses <code>us-east-1a</code> and <code>us-east-1c</code> and the consumer uses <code>us-east-1a</code> and <code>us-east-1b</code>, the response includes the VPC endpoint services in the common Availability Zone, <code>us-east-1a</code>.

        :param self:
        :param NextToken:  The token for the next set of items to return. (You received this token from a prior call.)<br/>MaxResults:  The maximum number of items to return for this request. The request returns a token that you can specify in a subsequent call to get the next set of results. Constraint: If the value is greater than 1,000, we return only 1,000 items.<br/>Filters:  One or more filters. <ul> <li>  <code>service-name</code> - The name of the service. </li> <li>  <code>service-type</code> - The type of service (<code>Interface</code> | <code>Gateway</code>). </li> <li>  <code>tag</code>:&lt;key&gt; - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key <code>Owner</code> and the value <code>TeamA</code>, specify <code>tag:Owner</code> for the filter name and <code>TeamA</code> for the filter value. </li> <li>  <code>tag-key</code> - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value. </li> </ul><br/>ServiceNames:  One or more service names.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: NextToken:  The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.<br/>ServiceDetails:  Information about the service.<br/>ServiceNames:  A list of supported services.<br/>        """
        pass

    def describe_vpc_endpoints(self, DryRun: Boolean=None, VpcEndpointIds: List[VpcEndpointId]=None, Filters: List[Filter]=None, MaxResults: int=None, NextToken: str=None) -> DescribeVpcEndpointsResult:
        r"""Describes one or more of your VPC endpoints.

        :param self:
        :param NextToken:  The token for the next set of items to return. (You received this token from a prior call.)<br/>MaxResults:  The maximum number of items to return for this request. The request returns a token that you can specify in a subsequent call to get the next set of results. Constraint: If the value is greater than 1,000, we return only 1,000 items.<br/>Filters:  One or more filters. <ul> <li>  <code>service-name</code> - The name of the service. </li> <li>  <code>vpc-id</code> - The ID of the VPC in which the endpoint resides. </li> <li>  <code>vpc-endpoint-id</code> - The ID of the endpoint. </li> <li>  <code>vpc-endpoint-state</code> - The state of the endpoint (<code>pendingAcceptance</code> | <code>pending</code> | <code>available</code> | <code>deleting</code> | <code>deleted</code> | <code>rejected</code> | <code>failed</code>). </li> <li>  <code>vpc-endpoint-type</code> - The type of VPC endpoint (<code>Interface</code> | <code>Gateway</code> | <code>GatewayLoadBalancer</code>). </li> <li>  <code>tag</code>:&lt;key&gt; - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key <code>Owner</code> and the value <code>TeamA</code>, specify <code>tag:Owner</code> for the filter name and <code>TeamA</code> for the filter value. </li> <li>  <code>tag-key</code> - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value. </li> </ul><br/>VpcEndpointIds:  One or more endpoint IDs.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: NextToken:  The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.<br/>VpcEndpoints:  Information about the endpoints.<br/>        """
        pass

    def describe_vpc_peering_connections(self, Filters: List[Filter]=None, DryRun: Boolean=None, VpcPeeringConnectionIds: List[VpcPeeringConnectionId]=None, NextToken: str=None, MaxResults: int=None) -> DescribeVpcPeeringConnectionsResult:
        r"""Describes one or more of your VPC peering connections.

        :param self:
        :param MaxResults:  The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.<br/>NextToken:  The token for the next page of results.<br/>VpcPeeringConnectionIds:  One or more VPC peering connection IDs. Default: Describes all your VPC peering connections.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>Filters:  One or more filters. <ul> <li>  <code>accepter-vpc-info.cidr-block</code> - The IPv4 CIDR block of the accepter VPC. </li> <li>  <code>accepter-vpc-info.owner-id</code> - The AWS account ID of the owner of the accepter VPC. </li> <li>  <code>accepter-vpc-info.vpc-id</code> - The ID of the accepter VPC. </li> <li>  <code>expiration-time</code> - The expiration date and time for the VPC peering connection. </li> <li>  <code>requester-vpc-info.cidr-block</code> - The IPv4 CIDR block of the requester's VPC. </li> <li>  <code>requester-vpc-info.owner-id</code> - The AWS account ID of the owner of the requester VPC. </li> <li>  <code>requester-vpc-info.vpc-id</code> - The ID of the requester VPC. </li> <li>  <code>status-code</code> - The status of the VPC peering connection (<code>pending-acceptance</code> | <code>failed</code> | <code>expired</code> | <code>provisioning</code> | <code>active</code> | <code>deleting</code> | <code>deleted</code> | <code>rejected</code>). </li> <li>  <code>status-message</code> - A message that provides more information about the status of the VPC peering connection, if applicable. </li> <li>  <code>tag</code>:&lt;key&gt; - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key <code>Owner</code> and the value <code>TeamA</code>, specify <code>tag:Owner</code> for the filter name and <code>TeamA</code> for the filter value. </li> <li>  <code>tag-key</code> - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value. </li> <li>  <code>vpc-peering-connection-id</code> - The ID of the VPC peering connection. </li> </ul><br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>VpcPeeringConnections:  Information about the VPC peering connections.<br/>        """
        pass

    def describe_vpcs(self, Filters: List[Filter]=None, VpcIds: List[VpcId]=None, DryRun: Boolean=None, NextToken: str=None, MaxResults: int=None) -> DescribeVpcsResult:
        r"""Describes one or more of your VPCs.

        :param self:
        :param MaxResults:  The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.<br/>NextToken:  The token for the next page of results.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>VpcIds:  One or more VPC IDs. Default: Describes all your VPCs.<br/>Filters:  One or more filters. <ul> <li>  <code>cidr</code> - The primary IPv4 CIDR block of the VPC. The CIDR block you specify must exactly match the VPC's CIDR block for information to be returned for the VPC. Must contain the slash followed by one or two digits (for example, <code>/28</code>). </li> <li>  <code>cidr-block-association.cidr-block</code> - An IPv4 CIDR block associated with the VPC. </li> <li>  <code>cidr-block-association.association-id</code> - The association ID for an IPv4 CIDR block associated with the VPC. </li> <li>  <code>cidr-block-association.state</code> - The state of an IPv4 CIDR block associated with the VPC. </li> <li>  <code>dhcp-options-id</code> - The ID of a set of DHCP options. </li> <li>  <code>ipv6-cidr-block-association.ipv6-cidr-block</code> - An IPv6 CIDR block associated with the VPC. </li> <li>  <code>ipv6-cidr-block-association.ipv6-pool</code> - The ID of the IPv6 address pool from which the IPv6 CIDR block is allocated. </li> <li>  <code>ipv6-cidr-block-association.association-id</code> - The association ID for an IPv6 CIDR block associated with the VPC. </li> <li>  <code>ipv6-cidr-block-association.state</code> - The state of an IPv6 CIDR block associated with the VPC. </li> <li>  <code>isDefault</code> - Indicates whether the VPC is the default VPC. </li> <li>  <code>owner-id</code> - The ID of the AWS account that owns the VPC. </li> <li>  <code>state</code> - The state of the VPC (<code>pending</code> | <code>available</code>). </li> <li>  <code>tag</code>:&lt;key&gt; - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key <code>Owner</code> and the value <code>TeamA</code>, specify <code>tag:Owner</code> for the filter name and <code>TeamA</code> for the filter value. </li> <li>  <code>tag-key</code> - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value. </li> <li>  <code>vpc-id</code> - The ID of the VPC. </li> </ul><br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>Vpcs:  Information about one or more VPCs.<br/>        """
        pass

    def describe_vpn_connections(self, Filters: List[Filter]=None, VpnConnectionIds: List[VpnConnectionId]=None, DryRun: Boolean=None) -> DescribeVpnConnectionsResult:
        r"""Describes one or more of your VPN connections. For more information, see <a href="https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html">AWS Site-to-Site VPN</a> in the <i>AWS Site-to-Site VPN User Guide</i>.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>VpnConnectionIds:  One or more VPN connection IDs. Default: Describes your VPN connections.<br/>Filters:  One or more filters. <ul> <li>  <code>customer-gateway-configuration</code> - The configuration information for the customer gateway. </li> <li>  <code>customer-gateway-id</code> - The ID of a customer gateway associated with the VPN connection. </li> <li>  <code>state</code> - The state of the VPN connection (<code>pending</code> | <code>available</code> | <code>deleting</code> | <code>deleted</code>). </li> <li>  <code>option.static-routes-only</code> - Indicates whether the connection has static routes only. Used for devices that do not support Border Gateway Protocol (BGP). </li> <li>  <code>route.destination-cidr-block</code> - The destination CIDR block. This corresponds to the subnet used in a customer data center. </li> <li>  <code>bgp-asn</code> - The BGP Autonomous System Number (ASN) associated with a BGP device. </li> <li>  <code>tag</code>:&lt;key&gt; - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key <code>Owner</code> and the value <code>TeamA</code>, specify <code>tag:Owner</code> for the filter name and <code>TeamA</code> for the filter value. </li> <li>  <code>tag-key</code> - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value. </li> <li>  <code>type</code> - The type of VPN connection. Currently the only supported type is <code>ipsec.1</code>. </li> <li>  <code>vpn-connection-id</code> - The ID of the VPN connection. </li> <li>  <code>vpn-gateway-id</code> - The ID of a virtual private gateway associated with the VPN connection. </li> <li>  <code>transit-gateway-id</code> - The ID of a transit gateway associated with the VPN connection. </li> </ul><br/>
        :return: VpnConnections:  Information about one or more VPN connections.<br/>        """
        pass

    def describe_vpn_gateways(self, Filters: List[Filter]=None, VpnGatewayIds: List[VpnGatewayId]=None, DryRun: Boolean=None) -> DescribeVpnGatewaysResult:
        r"""Describes one or more of your virtual private gateways. For more information, see <a href="https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html">AWS Site-to-Site VPN</a> in the <i>AWS Site-to-Site VPN User Guide</i>.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>VpnGatewayIds:  One or more virtual private gateway IDs. Default: Describes all your virtual private gateways.<br/>Filters:  One or more filters. <ul> <li>  <code>amazon-side-asn</code> - The Autonomous System Number (ASN) for the Amazon side of the gateway. </li> <li>  <code>attachment.state</code> - The current state of the attachment between the gateway and the VPC (<code>attaching</code> | <code>attached</code> | <code>detaching</code> | <code>detached</code>). </li> <li>  <code>attachment.vpc-id</code> - The ID of an attached VPC. </li> <li>  <code>availability-zone</code> - The Availability Zone for the virtual private gateway (if applicable). </li> <li>  <code>state</code> - The state of the virtual private gateway (<code>pending</code> | <code>available</code> | <code>deleting</code> | <code>deleted</code>). </li> <li>  <code>tag</code>:&lt;key&gt; - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key <code>Owner</code> and the value <code>TeamA</code>, specify <code>tag:Owner</code> for the filter name and <code>TeamA</code> for the filter value. </li> <li>  <code>tag-key</code> - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value. </li> <li>  <code>type</code> - The type of virtual private gateway. Currently the only supported type is <code>ipsec.1</code>. </li> <li>  <code>vpn-gateway-id</code> - The ID of the virtual private gateway. </li> </ul><br/>
        :return: VpnGateways:  Information about one or more virtual private gateways.<br/>        """
        pass

    def detach_classic_link_vpc(self, VpcId: str, InstanceId: str, DryRun: Boolean=None) -> DetachClassicLinkVpcResult:
        r"""Unlinks (detaches) a linked EC2-Classic instance from a VPC. After the instance has been unlinked, the VPC security groups are no longer associated with it. An instance is automatically unlinked from a VPC when it's stopped.

        :param self:
        :param VpcId:  The ID of the VPC to which the instance is linked.<br/>InstanceId:  The ID of the instance to unlink from the VPC.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: Return:  Returns <code>true</code> if the request succeeds; otherwise, it returns an error.<br/>        """
        pass

    def detach_internet_gateway(self, VpcId: str, InternetGatewayId: str, DryRun: Boolean=None):
        r"""Detaches an internet gateway from a VPC, disabling connectivity between the internet and the VPC. The VPC must not contain any running instances with Elastic IP addresses or public IPv4 addresses.

        :param self:
        :param VpcId:  The ID of the VPC.<br/>InternetGatewayId:  The ID of the internet gateway.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return:         """
        pass

    def detach_network_interface(self, AttachmentId: str, DryRun: Boolean=None, Force: Boolean=None):
        r"""Detaches a network interface from an instance.

        :param self:
        :param Force:  Specifies whether to force a detachment. <note> <ul> <li> Use the <code>Force</code> parameter only as a last resort to detach a network interface from a failed instance.  </li> <li> If you use the <code>Force</code> parameter to detach a network interface, you might not be able to attach a different network interface to the same index on the instance without first stopping and starting the instance. </li> <li> If you force the detachment of a network interface, the <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html">instance metadata</a> might not get updated. This means that the attributes associated with the detached network interface might still be visible. The instance metadata will get updated when you stop and start the instance. </li> </ul> </note><br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>AttachmentId:  The ID of the attachment.<br/>
        :return:         """
        pass

    def detach_volume(self, VolumeId: str, Device: str=None, Force: Boolean=None, InstanceId: str=None, DryRun: Boolean=None) -> VolumeAttachment:
        r"""Detaches an EBS volume from an instance. Make sure to unmount any file systems on the device within your operating system before detaching the volume. Failure to do so can result in the volume becoming stuck in the <code>busy</code> state while detaching. If this happens, detachment can be delayed indefinitely until you unmount the volume, force detachment, reboot the instance, or all three. If an EBS volume is the root device of an instance, it can't be detached while the instance is running. To detach the root volume, stop the instance first. When a volume with an AWS Marketplace product code is detached from an instance, the product code is no longer associated with the instance. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-detaching-volume.html">Detaching an Amazon EBS volume</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>VolumeId:  The ID of the volume.<br/>InstanceId:  The ID of the instance. If you are detaching a Multi-Attach enabled volume, you must specify an instance ID.<br/>Force:  Forces detachment if the previous detachment attempt did not occur cleanly (for example, logging into an instance, unmounting the volume, and detaching normally). This option can lead to data loss or a corrupted file system. Use this option only as a last resort to detach a volume from a failed instance. The instance won't have an opportunity to flush file system caches or file system metadata. If you use this option, you must perform file system check and repair procedures.<br/>Device:  The device name.<br/>
        :return: DeleteOnTermination:  Indicates whether the EBS volume is deleted on instance termination.<br/>VolumeId:  The ID of the volume.<br/>State:  The attachment state of the volume.<br/>InstanceId:  The ID of the instance.<br/>Device:  The device name.<br/>AttachTime:  The time stamp when the attachment initiated.<br/>        """
        pass

    def detach_vpn_gateway(self, VpnGatewayId: str, VpcId: str, DryRun: Boolean=None):
        r"""Detaches a virtual private gateway from a VPC. You do this if you're planning to turn off the VPC and not use it anymore. You can confirm a virtual private gateway has been completely detached from a VPC by describing the virtual private gateway (any attachments to the virtual private gateway are also described). You must wait for the attachment's state to switch to <code>detached</code> before you can delete the VPC or attach a different VPC to the virtual private gateway.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>VpnGatewayId:  The ID of the virtual private gateway.<br/>VpcId:  The ID of the VPC.<br/>
        :return:         """
        pass

    def disable_ebs_encryption_by_default(self, DryRun: Boolean=None) -> DisableEbsEncryptionByDefaultResult:
        r"""Disables EBS encryption by default for your account in the current Region. After you disable encryption by default, you can still create encrypted volumes by enabling encryption when you create each volume. Disabling encryption by default does not change the encryption status of your existing volumes. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html">Amazon EBS encryption</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: EbsEncryptionByDefault:  The updated status of encryption by default.<br/>        """
        pass

    def disable_fast_snapshot_restores(self, SourceSnapshotIds: List[SnapshotId], AvailabilityZones: List[String], DryRun: Boolean=None) -> DisableFastSnapshotRestoresResult:
        r"""Disables fast snapshot restores for the specified snapshots in the specified Availability Zones.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>SourceSnapshotIds:  The IDs of one or more snapshots. For example, <code>snap-1234567890abcdef0</code>.<br/>AvailabilityZones:  One or more Availability Zones. For example, <code>us-east-2a</code>.<br/>
        :return: Unsuccessful:  Information about the snapshots for which fast snapshot restores could not be disabled.<br/>Successful:  Information about the snapshots for which fast snapshot restores were successfully disabled.<br/>        """
        pass

    def disable_image_deprecation(self, ImageId: str, DryRun: Boolean=None) -> DisableImageDeprecationResult:
        r"""Cancels the deprecation of the specified AMI. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-deprecate.html">Deprecate an AMI</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>ImageId:  The ID of the AMI.<br/>
        :return: Return:  Returns <code>true</code> if the request succeeds; otherwise, it returns an error.<br/>        """
        pass

    def disable_serial_console_access(self, DryRun: Boolean=None) -> DisableSerialConsoleAccessResult:
        r"""Disables access to the EC2 serial console of all instances for your account. By default, access to the EC2 serial console is disabled for your account. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configure-access-to-serial-console.html#serial-console-account-access">Manage account access to the EC2 serial console</a> in the <i>Amazon EC2 User Guide</i>.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: SerialConsoleAccessEnabled:  If <code>true</code>, access to the EC2 serial console of all instances is enabled for your account. If <code>false</code>, access to the EC2 serial console of all instances is disabled for your account.<br/>        """
        pass

    def disable_transit_gateway_route_table_propagation(self, TransitGatewayAttachmentId: str, TransitGatewayRouteTableId: str, DryRun: Boolean=None) -> DisableTransitGatewayRouteTablePropagationResult:
        r"""Disables the specified resource attachment from propagating routes to the specified propagation route table.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>TransitGatewayAttachmentId:  The ID of the attachment.<br/>TransitGatewayRouteTableId:  The ID of the propagation route table.<br/>
        :return: Propagation:  Information about route propagation.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayRouteTableId</i> The ID of the transit gateway route table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceType</i> The resource type. Note that the <code>tgw-peering</code> resource type has been deprecated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceId</i> The ID of the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayAttachmentId</i> The ID of the attachment.<br/>        """
        pass

    def disable_vgw_route_propagation(self, RouteTableId: str, GatewayId: str, DryRun: Boolean=None):
        r"""Disables a virtual private gateway (VGW) from propagating routes to a specified route table of a VPC.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>RouteTableId:  The ID of the route table.<br/>GatewayId:  The ID of the virtual private gateway.<br/>
        :return:         """
        pass

    def disable_vpc_classic_link(self, VpcId: str, DryRun: Boolean=None) -> DisableVpcClassicLinkResult:
        r"""Disables ClassicLink for a VPC. You cannot disable ClassicLink for a VPC that has EC2-Classic instances linked to it.

        :param self:
        :param VpcId:  The ID of the VPC.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: Return:  Returns <code>true</code> if the request succeeds; otherwise, it returns an error.<br/>        """
        pass

    def disable_vpc_classic_link_dns_support(self, VpcId: str=None) -> DisableVpcClassicLinkDnsSupportResult:
        r"""Disables ClassicLink DNS support for a VPC. If disabled, DNS hostnames resolve to public IP addresses when addressed between a linked EC2-Classic instance and instances in the VPC to which it's linked. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-classiclink.html">ClassicLink</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>. You must specify a VPC ID in the request.

        :param self:
        :param VpcId:  The ID of the VPC.<br/>
        :return: Return:  Returns <code>true</code> if the request succeeds; otherwise, it returns an error.<br/>        """
        pass

    def disassociate_address(self, AssociationId: str=None, PublicIp: str=None, DryRun: Boolean=None):
        r"""Disassociates an Elastic IP address from the instance or network interface it's associated with. An Elastic IP address is for use in either the EC2-Classic platform or in a VPC. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html">Elastic IP Addresses</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>. This is an idempotent operation. If you perform the operation more than once, Amazon EC2 doesn't return an error.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>PublicIp:  [EC2-Classic] The Elastic IP address. Required for EC2-Classic.<br/>AssociationId:  [EC2-VPC] The association ID. Required for EC2-VPC.<br/>
        :return:         """
        pass

    def disassociate_client_vpn_target_network(self, AssociationId: str, ClientVpnEndpointId: str, DryRun: Boolean=None) -> DisassociateClientVpnTargetNetworkResult:
        r"""Disassociates a target network from the specified Client VPN endpoint. When you disassociate the last target network from a Client VPN, the following happens: <ul> <li> The route that was automatically added for the VPC is deleted </li> <li> All active client connections are terminated </li> <li> New client connections are disallowed </li> <li> The Client VPN endpoint's status changes to <code>pending-associate</code>  </li> </ul>

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>AssociationId:  The ID of the target network association.<br/>ClientVpnEndpointId:  The ID of the Client VPN endpoint from which to disassociate the target network.<br/>
        :return: Status:  The current state of the target network association.:<br/>AssociationId:  The ID of the target network association.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> A message about the status of the target network association, if applicable.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Code</i> The state of the target network association.<br/>        """
        pass

    def disassociate_enclave_certificate_iam_role(self, CertificateArn: str=None, RoleArn: str=None, DryRun: Boolean=None) -> DisassociateEnclaveCertificateIamRoleResult:
        r"""Disassociates an IAM role from an Certificate Manager (ACM) certificate. Disassociating an IAM role from an ACM certificate removes the Amazon S3 object that contains the certificate, certificate chain, and encrypted private key from the Amazon S3 bucket. It also revokes the IAM role's permission to use the KMS key used to encrypt the private key. This effectively revokes the role's permission to use the certificate.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>RoleArn:  The ARN of the IAM role to disassociate.<br/>CertificateArn:  The ARN of the ACM certificate from which to disassociate the IAM role.<br/>
        :return: Return:  Returns <code>true</code> if the request succeeds; otherwise, it returns an error.<br/>        """
        pass

    def disassociate_iam_instance_profile(self, AssociationId: str) -> DisassociateIamInstanceProfileResult:
        r"""Disassociates an IAM instance profile from a running or stopped instance. Use <a>DescribeIamInstanceProfileAssociations</a> to get the association ID.

        :param self:
        :param AssociationId:  The ID of the IAM instance profile association.<br/>
        :return: IamInstanceProfileAssociation:  Information about the IAM instance profile association.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Timestamp</i> The time the IAM instance profile was associated with the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the association.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IamInstanceProfile</i> The IAM instance profile.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>IamInstanceProfile</b>: The IAM instance profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceId</i> The ID of the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociationId</i> The ID of the association.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID of the instance profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the instance profile.<br/>        """
        pass

    def disassociate_route_table(self, AssociationId: str, DryRun: Boolean=None):
        r"""Disassociates a subnet or gateway from a route table. After you perform this action, the subnet no longer uses the routes in the route table. Instead, it uses the routes in the VPC's main route table. For more information about route tables, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html">Route Tables</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>AssociationId:  The association ID representing the current association between the route table and subnet or gateway.<br/>
        :return:         """
        pass

    def disassociate_subnet_cidr_block(self, AssociationId: str) -> DisassociateSubnetCidrBlockResult:
        r"""Disassociates a CIDR block from a subnet. Currently, you can disassociate an IPv6 CIDR block only. You must detach or delete all gateways and resources that are associated with the CIDR block before you can disassociate it. 

        :param self:
        :param AssociationId:  The association ID for the CIDR block.<br/>
        :return: SubnetId:  The ID of the subnet.<br/>Ipv6CidrBlockAssociation:  Information about the IPv6 CIDR block association.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Ipv6CidrBlockState</i> Information about the state of the CIDR block.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Ipv6CidrBlockState</b>: Information about the state of the CIDR block.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Ipv6CidrBlock</i> The IPv6 CIDR block.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociationId</i> The association ID for the CIDR block.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusMessage</i> A message about the status of the CIDR block, if applicable.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of a CIDR block.<br/>        """
        pass

    def disassociate_transit_gateway_multicast_domain(self, TransitGatewayMulticastDomainId: str=None, TransitGatewayAttachmentId: str=None, SubnetIds: List[SubnetId]=None, DryRun: Boolean=None) -> DisassociateTransitGatewayMulticastDomainResult:
        r"""Disassociates the specified subnets from the transit gateway multicast domain. 

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>SubnetIds:  The IDs of the subnets;<br/>TransitGatewayAttachmentId:  The ID of the attachment.<br/>TransitGatewayMulticastDomainId:  The ID of the transit gateway multicast domain.<br/>
        :return: Associations:  Information about the association.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Subnets</i> The subnets associated with the multicast domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceOwnerId</i>  The ID of the AWS account that owns the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceType</i> The type of resource, for example a VPC attachment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceId</i> The ID of the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayAttachmentId</i> The ID of the transit gateway attachment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayMulticastDomainId</i> The ID of the transit gateway multicast domain.<br/>        """
        pass

    def disassociate_transit_gateway_route_table(self, TransitGatewayAttachmentId: str, TransitGatewayRouteTableId: str, DryRun: Boolean=None) -> DisassociateTransitGatewayRouteTableResult:
        r"""Disassociates a resource attachment from a transit gateway route table.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>TransitGatewayAttachmentId:  The ID of the attachment.<br/>TransitGatewayRouteTableId:  The ID of the transit gateway route table.<br/>
        :return: Association:  Information about the association.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the association.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceType</i> The resource type. Note that the <code>tgw-peering</code> resource type has been deprecated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceId</i> The ID of the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayAttachmentId</i> The ID of the attachment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayRouteTableId</i> The ID of the transit gateway route table.<br/>        """
        pass

    def disassociate_trunk_interface(self, AssociationId: str, ClientToken: str=None, DryRun: Boolean=None) -> DisassociateTrunkInterfaceResult:
        r"""Removes an association between a branch network interface with a trunk network interface.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>ClientToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Run_Instance_Idempotency.html">How to Ensure Idempotency</a>.<br/>AssociationId:  The ID ofthe association<br/>
        :return: ClientToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Run_Instance_Idempotency.html">How to Ensure Idempotency</a>.<br/>Return:  Returns <code>true</code> if the request succeeds; otherwise, it returns an error.<br/>        """
        pass

    def disassociate_vpc_cidr_block(self, AssociationId: str) -> DisassociateVpcCidrBlockResult:
        r"""Disassociates a CIDR block from a VPC. To disassociate the CIDR block, you must specify its association ID. You can get the association ID by using <a>DescribeVpcs</a>. You must detach or delete all gateways and resources that are associated with the CIDR block before you can disassociate it.  You cannot disassociate the CIDR block with which you originally created the VPC (the primary CIDR block).

        :param self:
        :param AssociationId:  The association ID for the CIDR block.<br/>
        :return: VpcId:  The ID of the VPC.<br/>CidrBlockAssociation:  Information about the IPv4 CIDR block association.:<br/>Ipv6CidrBlockAssociation:  Information about the IPv6 CIDR block association.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Ipv6Pool</i> The ID of the IPv6 address pool from which the IPv6 CIDR block is allocated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkBorderGroup</i> The name of the unique set of Availability Zones, Local Zones, or Wavelength Zones from which AWS advertises IP addresses, for example, <code>us-east-1-wl1-bos-wlz-1</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Ipv6CidrBlockState</i> Information about the state of the CIDR block.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Ipv6CidrBlockState</b>: Information about the state of the CIDR block.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Ipv6CidrBlock</i> The IPv6 CIDR block.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociationId</i> The association ID for the IPv6 CIDR block.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusMessage</i> A message about the status of the CIDR block, if applicable.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the CIDR block.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CidrBlockState</i> Information about the state of the CIDR block.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CidrBlockState</b>: Information about the state of the CIDR block.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CidrBlock</i> The IPv4 CIDR block.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociationId</i> The association ID for the IPv4 CIDR block.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusMessage</i> A message about the status of the CIDR block, if applicable.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the CIDR block.<br/>        """
        pass

    def enable_ebs_encryption_by_default(self, DryRun: Boolean=None) -> EnableEbsEncryptionByDefaultResult:
        r"""Enables EBS encryption by default for your account in the current Region. After you enable encryption by default, the EBS volumes that you create are always encrypted, either using the default CMK or the CMK that you specified when you created each volume. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html">Amazon EBS encryption</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>. You can specify the default CMK for encryption by default using <a>ModifyEbsDefaultKmsKeyId</a> or <a>ResetEbsDefaultKmsKeyId</a>. Enabling encryption by default has no effect on the encryption status of your existing volumes. After you enable encryption by default, you can no longer launch instances using instance types that do not support encryption. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#EBSEncryption_supported_instances">Supported instance types</a>.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: EbsEncryptionByDefault:  The updated status of encryption by default.<br/>        """
        pass

    def enable_fast_snapshot_restores(self, SourceSnapshotIds: List[SnapshotId], AvailabilityZones: List[String], DryRun: Boolean=None) -> EnableFastSnapshotRestoresResult:
        r"""Enables fast snapshot restores for the specified snapshots in the specified Availability Zones. You get the full benefit of fast snapshot restores after they enter the <code>enabled</code> state. To get the current state of fast snapshot restores, use <a>DescribeFastSnapshotRestores</a>. To disable fast snapshot restores, use <a>DisableFastSnapshotRestores</a>. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-fast-snapshot-restore.html">Amazon EBS fast snapshot restore</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>SourceSnapshotIds:  The IDs of one or more snapshots. For example, <code>snap-1234567890abcdef0</code>. You can specify a snapshot that was shared with you from another AWS account.<br/>AvailabilityZones:  One or more Availability Zones. For example, <code>us-east-2a</code>.<br/>
        :return: Unsuccessful:  Information about the snapshots for which fast snapshot restores could not be enabled.<br/>Successful:  Information about the snapshots for which fast snapshot restores were successfully enabled.<br/>        """
        pass

    def enable_image_deprecation(self, DeprecateAt: MillisecondDateTime, ImageId: str, DryRun: Boolean=None) -> EnableImageDeprecationResult:
        r"""Enables deprecation of the specified AMI at the specified date and time. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-deprecate.html">Deprecate an AMI</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>DeprecateAt:  The date and time to deprecate the AMI, in UTC, in the following format: <i>YYYY</i>-<i>MM</i>-<i>DD</i>T<i>HH</i>:<i>MM</i>:<i>SS</i>Z. If you specify a value for seconds, Amazon EC2 rounds the seconds to the nearest minute. You can’t specify a date in the past. The upper limit for <code>DeprecateAt</code> is 10 years from now.<br/>ImageId:  The ID of the AMI.<br/>
        :return: Return:  Returns <code>true</code> if the request succeeds; otherwise, it returns an error.<br/>        """
        pass

    def enable_serial_console_access(self, DryRun: Boolean=None) -> EnableSerialConsoleAccessResult:
        r"""Enables access to the EC2 serial console of all instances for your account. By default, access to the EC2 serial console is disabled for your account. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configure-access-to-serial-console.html#serial-console-account-access">Manage account access to the EC2 serial console</a> in the <i>Amazon EC2 User Guide</i>.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: SerialConsoleAccessEnabled:  If <code>true</code>, access to the EC2 serial console of all instances is enabled for your account. If <code>false</code>, access to the EC2 serial console of all instances is disabled for your account.<br/>        """
        pass

    def enable_transit_gateway_route_table_propagation(self, TransitGatewayAttachmentId: str, TransitGatewayRouteTableId: str, DryRun: Boolean=None) -> EnableTransitGatewayRouteTablePropagationResult:
        r"""Enables the specified attachment to propagate routes to the specified propagation route table.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>TransitGatewayAttachmentId:  The ID of the attachment.<br/>TransitGatewayRouteTableId:  The ID of the propagation route table.<br/>
        :return: Propagation:  Information about route propagation.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayRouteTableId</i> The ID of the transit gateway route table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceType</i> The resource type. Note that the <code>tgw-peering</code> resource type has been deprecated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceId</i> The ID of the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayAttachmentId</i> The ID of the attachment.<br/>        """
        pass

    def enable_vgw_route_propagation(self, RouteTableId: str, GatewayId: str, DryRun: Boolean=None):
        r"""Enables a virtual private gateway (VGW) to propagate routes to the specified route table of a VPC.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>RouteTableId:  The ID of the route table. The routing table must be associated with the same VPC that the virtual private gateway is attached to. <br/>GatewayId:  The ID of the virtual private gateway that is attached to a VPC. The virtual private gateway must be attached to the same VPC that the routing tables are associated with. <br/>
        :return:         """
        pass

    def enable_volume_io(self, VolumeId: str, DryRun: Boolean=None):
        r"""Enables I/O operations for a volume that had I/O operations disabled because the data on the volume was potentially inconsistent.

        :param self:
        :param VolumeId:  The ID of the volume.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return:         """
        pass

    def enable_vpc_classic_link(self, VpcId: str, DryRun: Boolean=None) -> EnableVpcClassicLinkResult:
        r"""Enables a VPC for ClassicLink. You can then link EC2-Classic instances to your ClassicLink-enabled VPC to allow communication over private IP addresses. You cannot enable your VPC for ClassicLink if any of your VPC route tables have existing routes for address ranges within the <code>10.0.0.0/8</code> IP address range, excluding local routes for VPCs in the <code>10.0.0.0/16</code> and <code>10.1.0.0/16</code> IP address ranges. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-classiclink.html">ClassicLink</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.

        :param self:
        :param VpcId:  The ID of the VPC.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: Return:  Returns <code>true</code> if the request succeeds; otherwise, it returns an error.<br/>        """
        pass

    def enable_vpc_classic_link_dns_support(self, VpcId: str=None) -> EnableVpcClassicLinkDnsSupportResult:
        r"""Enables a VPC to support DNS hostname resolution for ClassicLink. If enabled, the DNS hostname of a linked EC2-Classic instance resolves to its private IP address when addressed from an instance in the VPC to which it's linked. Similarly, the DNS hostname of an instance in a VPC resolves to its private IP address when addressed from a linked EC2-Classic instance. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-classiclink.html">ClassicLink</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>. You must specify a VPC ID in the request.

        :param self:
        :param VpcId:  The ID of the VPC.<br/>
        :return: Return:  Returns <code>true</code> if the request succeeds; otherwise, it returns an error.<br/>        """
        pass

    def export_client_vpn_client_certificate_revocation_list(self, ClientVpnEndpointId: str, DryRun: Boolean=None) -> ExportClientVpnClientCertificateRevocationListResult:
        r"""Downloads the client certificate revocation list for the specified Client VPN endpoint.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>ClientVpnEndpointId:  The ID of the Client VPN endpoint.<br/>
        :return: Status:  The current state of the client certificate revocation list.:<br/>CertificateRevocationList:  Information about the client certificate revocation list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> A message about the status of the client certificate revocation list, if applicable.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Code</i> The state of the client certificate revocation list.<br/>        """
        pass

    def export_client_vpn_client_configuration(self, ClientVpnEndpointId: str, DryRun: Boolean=None) -> ExportClientVpnClientConfigurationResult:
        r"""Downloads the contents of the Client VPN endpoint configuration file for the specified Client VPN endpoint. The Client VPN endpoint configuration file includes the Client VPN endpoint and certificate information clients need to establish a connection with the Client VPN endpoint.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>ClientVpnEndpointId:  The ID of the Client VPN endpoint.<br/>
        :return: ClientConfiguration:  The contents of the Client VPN endpoint configuration file.<br/>        """
        pass

    def export_image(self, S3ExportLocation: ExportTaskS3LocationRequest, ImageId: str, DiskImageFormat: str, ClientToken: str=None, Description: str=None, DryRun: Boolean=None, RoleName: str=None, TagSpecifications: List[TagSpecification]=None) -> ExportImageResult:
        r"""Exports an Amazon Machine Image (AMI) to a VM file. For more information, see <a href="https://docs.aws.amazon.com/vm-import/latest/userguide/vmexport_image.html">Exporting a VM directly from an Amazon Machine Image (AMI)</a> in the <i>VM Import/Export User Guide</i>.

        :param self:
        :param TagSpecifications:  The tags to apply to the export image task during creation.<br/>RoleName:  The name of the role that grants VM Import/Export permission to export images to your Amazon S3 bucket. If this parameter is not specified, the default role is named 'vmimport'.<br/>S3ExportLocation:  Information about the destination Amazon S3 bucket. The bucket must exist and grant WRITE and READ_ACP permissions to the AWS account vm-import-export@amazon.com.:<br/>ImageId:  The ID of the image.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>DiskImageFormat:  The disk image format.<br/>Description:  A description of the image being exported. The maximum length is 255 characters.<br/>ClientToken:  Token to enable idempotency for export image requests.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Prefix</i> The prefix (logical hierarchy) in the bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Bucket</i> The destination Amazon S3 bucket.<br/>
        :return: Tags:  Any tags assigned to the export image task.<br/>StatusMessage:  The status message for the export image task.<br/>Status:  The status of the export image task. The possible values are <code>active</code>, <code>completed</code>, <code>deleting</code>, and <code>deleted</code>.<br/>S3ExportLocation:  Information about the destination Amazon S3 bucket.:<br/>Progress:  The percent complete of the export image task.<br/>RoleName:  The name of the role that grants VM Import/Export permission to export images to your Amazon S3 bucket.<br/>ImageId:  The ID of the image.<br/>ExportImageTaskId:  The ID of the export image task.<br/>DiskImageFormat:  The disk image format for the exported image.<br/>Description:  A description of the image being exported.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Prefix</i> The prefix (logical hierarchy) in the bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Bucket</i> The destination Amazon S3 bucket.<br/>        """
        pass

    def export_transit_gateway_routes(self, S3Bucket: str, TransitGatewayRouteTableId: str, Filters: List[Filter]=None, DryRun: Boolean=None) -> ExportTransitGatewayRoutesResult:
        r"""Exports routes from the specified transit gateway route table to the specified S3 bucket. By default, all routes are exported. Alternatively, you can filter by CIDR range. The routes are saved to the specified bucket in a JSON file. For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/tgw/tgw-route-tables.html#tgw-export-route-tables">Export Route Tables to Amazon S3</a> in <i>Transit Gateways</i>.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>S3Bucket:  The name of the S3 bucket.<br/>Filters:  One or more filters. The possible values are: <ul> <li>  <code>attachment.transit-gateway-attachment-id</code> - The id of the transit gateway attachment. </li> <li>  <code>attachment.resource-id</code> - The resource id of the transit gateway attachment. </li> <li>  <code>route-search.exact-match</code> - The exact match of the specified filter. </li> <li>  <code>route-search.longest-prefix-match</code> - The longest prefix that matches the route. </li> <li>  <code>route-search.subnet-of-match</code> - The routes with a subnet that match the specified CIDR filter. </li> <li>  <code>route-search.supernet-of-match</code> - The routes with a CIDR that encompass the CIDR filter. For example, if you have 10.0.1.0/29 and 10.0.1.0/31 routes in your route table and you specify supernet-of-match as 10.0.1.0/30, then the result returns 10.0.1.0/29. </li> <li>  <code>state</code> - The state of the route (<code>active</code> | <code>blackhole</code>). </li> <li>  <code>transit-gateway-route-destination-cidr-block</code> - The CIDR range. </li> <li>  <code>type</code> - The type of route (<code>propagated</code> | <code>static</code>). </li> </ul><br/>TransitGatewayRouteTableId:  The ID of the route table.<br/>
        :return: S3Location:  The URL of the exported file in Amazon S3. For example, s3://<i>bucket_name</i>/VPCTransitGateway/TransitGatewayRouteTables/<i>file_name</i>.<br/>        """
        pass

    def get_associated_enclave_certificate_iam_roles(self, CertificateArn: str=None, DryRun: Boolean=None) -> GetAssociatedEnclaveCertificateIamRolesResult:
        r"""Returns the IAM roles that are associated with the specified ACM (ACM) certificate. It also returns the name of the Amazon S3 bucket and the Amazon S3 object key where the certificate, certificate chain, and encrypted private key bundle are stored, and the ARN of the KMS key that's used to encrypt the private key.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>CertificateArn:  The ARN of the ACM certificate for which to view the associated IAM roles, encryption keys, and Amazon S3 object information.<br/>
        :return: AssociatedRoles:  Information about the associated IAM roles.<br/>        """
        pass

    def get_associated_ipv6_pool_cidrs(self, PoolId: str, NextToken: str=None, MaxResults: int=None, DryRun: Boolean=None) -> GetAssociatedIpv6PoolCidrsResult:
        r"""Gets information about the IPv6 CIDR block associations for a specified IPv6 address pool.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>MaxResults:  The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.<br/>NextToken:  The token for the next page of results.<br/>PoolId:  The ID of the IPv6 address pool.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>Ipv6CidrAssociations:  Information about the IPv6 CIDR block associations.<br/>        """
        pass

    def get_capacity_reservation_usage(self, CapacityReservationId: str, NextToken: str=None, MaxResults: int=None, DryRun: Boolean=None) -> GetCapacityReservationUsageResult:
        r"""Gets usage information about a Capacity Reservation. If the Capacity Reservation is shared, it shows usage information for the Capacity Reservation owner and each account that is currently using the shared capacity. If the Capacity Reservation is not shared, it shows only the Capacity Reservation owner's usage.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>MaxResults:  The maximum number of results to return for the request in a single page. The remaining results can be seen by sending another request with the returned <code>nextToken</code> value. This value can be between 5 and 500. If <code>maxResults</code> is given a larger value than 500, you receive an error. Valid range: Minimum value of 1. Maximum value of 1000.<br/>NextToken:  The token to use to retrieve the next page of results.<br/>CapacityReservationId:  The ID of the Capacity Reservation.<br/>
        :return: InstanceUsages:  Information about the Capacity Reservation usage.<br/>State:  The current state of the Capacity Reservation. A Capacity Reservation can be in one of the following states: <ul> <li>  <code>active</code> - The Capacity Reservation is active and the capacity is available for your use. </li> <li>  <code>expired</code> - The Capacity Reservation expired automatically at the date and time specified in your request. The reserved capacity is no longer available for your use. </li> <li>  <code>cancelled</code> - The Capacity Reservation was cancelled. The reserved capacity is no longer available for your use. </li> <li>  <code>pending</code> - The Capacity Reservation request was successful but the capacity provisioning is still pending. </li> <li>  <code>failed</code> - The Capacity Reservation request has failed. A request might fail due to invalid request parameters, capacity constraints, or instance limit constraints. Failed requests are retained for 60 minutes. </li> </ul><br/>AvailableInstanceCount:  The remaining capacity. Indicates the number of instances that can be launched in the Capacity Reservation.<br/>TotalInstanceCount:  The number of instances for which the Capacity Reservation reserves capacity.<br/>InstanceType:  The type of instance for which the Capacity Reservation reserves capacity.<br/>CapacityReservationId:  The ID of the Capacity Reservation.<br/>NextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>        """
        pass

    def get_coip_pool_usage(self, PoolId: str, Filters: List[Filter]=None, MaxResults: int=None, NextToken: str=None, DryRun: Boolean=None) -> GetCoipPoolUsageResult:
        r"""Describes the allocations from the specified customer-owned address pool.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>NextToken:  The token for the next page of results.<br/>MaxResults:  The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.<br/>Filters:  The filters. The following are the possible values: <ul> <li>  <code>coip-address-usage.allocation-id</code>  </li> </ul> <ul> <li>  <code>coip-address-usage.aws-account-id</code>  </li> </ul> <ul> <li>  <code>coip-address-usage.aws-service</code>  </li> </ul> <ul> <li>  <code>coip-address-usage.co-ip</code>  </li> </ul><br/>PoolId:  The ID of the address pool.<br/>
        :return: LocalGatewayRouteTableId:  The ID of the local gateway route table.<br/>CoipAddressUsages:  Information about the address usage.<br/>CoipPoolId:  The ID of the customer-owned address pool.<br/>        """
        pass

    def get_console_output(self, InstanceId: str, DryRun: Boolean=None, Latest: Boolean=None) -> GetConsoleOutputResult:
        r"""Gets the console output for the specified instance. For Linux instances, the instance console output displays the exact console output that would normally be displayed on a physical monitor attached to a computer. For Windows instances, the instance console output includes the last three system event log errors. By default, the console output returns buffered information that was posted shortly after an instance transition state (start, stop, reboot, or terminate). This information is available for at least one hour after the most recent post. Only the most recent 64 KB of console output is available. You can optionally retrieve the latest serial console output at any time during the instance lifecycle. This option is supported on instance types that use the Nitro hypervisor. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-console.html#instance-console-console-output">Instance console output</a> in the <i>Amazon EC2 User Guide</i>.

        :param self:
        :param Latest:  When enabled, retrieves the latest console output for the instance. Default: disabled (<code>false</code>)<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>InstanceId:  The ID of the instance.<br/>
        :return: Timestamp:  The time at which the output was last updated.<br/>Output:  The console output, base64-encoded. If you are using a command line tool, the tool decodes the output for you.<br/>InstanceId:  The ID of the instance.<br/>        """
        pass

    def get_console_screenshot(self, InstanceId: str, DryRun: Boolean=None, WakeUp: Boolean=None) -> GetConsoleScreenshotResult:
        r"""Retrieve a JPG-format screenshot of a running instance to help with troubleshooting. The returned content is Base64-encoded.

        :param self:
        :param WakeUp:  When set to <code>true</code>, acts as keystroke input and wakes up an instance that's in standby or "sleep" mode.<br/>InstanceId:  The ID of the instance.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: InstanceId:  The ID of the instance.<br/>ImageData:  The data that comprises the image.<br/>        """
        pass

    def get_default_credit_specification(self, InstanceFamily: str, DryRun: Boolean=None) -> GetDefaultCreditSpecificationResult:
        r"""Describes the default credit option for CPU usage of a burstable performance instance family. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html">Burstable performance instances</a> in the <i>Amazon EC2 User Guide</i>.

        :param self:
        :param InstanceFamily:  The instance family.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: InstanceFamilyCreditSpecification:  The default credit option for CPU usage of the instance family.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CpuCredits</i> The default credit option for CPU usage of the instance family. Valid values are <code>standard</code> and <code>unlimited</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceFamily</i> The instance family.<br/>        """
        pass

    def get_ebs_default_kms_key_id(self, DryRun: Boolean=None) -> GetEbsDefaultKmsKeyIdResult:
        r"""Describes the default customer master key (CMK) for EBS encryption by default for your account in this Region. You can change the default CMK for encryption by default using <a>ModifyEbsDefaultKmsKeyId</a> or <a>ResetEbsDefaultKmsKeyId</a>. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html">Amazon EBS encryption</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: KmsKeyId:  The Amazon Resource Name (ARN) of the default CMK for encryption by default.<br/>        """
        pass

    def get_ebs_encryption_by_default(self, DryRun: Boolean=None) -> GetEbsEncryptionByDefaultResult:
        r"""Describes whether EBS encryption by default is enabled for your account in the current Region. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html">Amazon EBS encryption</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: EbsEncryptionByDefault:  Indicates whether encryption by default is enabled.<br/>        """
        pass

    def get_flow_logs_integration_template(self, IntegrateServices: IntegrateServices, ConfigDeliveryS3DestinationArn: str, FlowLogId: str, DryRun: Boolean=None) -> GetFlowLogsIntegrationTemplateResult:
        r"""Generates a CloudFormation template that streamlines and automates the integration of VPC flow logs with Amazon Athena. This make it easier for you to query and gain insights from VPC flow logs data. Based on the information that you provide, we configure resources in the template to do the following: <ul> <li> Create a table in Athena that maps fields to a custom log format </li> <li> Create a Lambda function that updates the table with new partitions on a daily, weekly, or monthly basis </li> <li> Create a table partitioned between two timestamps in the past </li> <li> Create a set of named queries in Athena that you can use to get started quickly </li> </ul>

        :param self:
        :param IntegrateServices:  Information about the service integration.:<br/>ConfigDeliveryS3DestinationArn:  To store the CloudFormation template in Amazon S3, specify the location in Amazon S3.<br/>FlowLogId:  The ID of the flow log.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AthenaIntegrations</i> Information about the integration with Amazon Athena.<br/>
        :return: Result:  The generated CloudFormation template.<br/>        """
        pass

    def get_groups_for_capacity_reservation(self, CapacityReservationId: str, NextToken: str=None, MaxResults: int=None, DryRun: Boolean=None) -> GetGroupsForCapacityReservationResult:
        r"""Lists the resource groups to which a Capacity Reservation has been added.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>MaxResults:  The maximum number of results to return for the request in a single page. The remaining results can be seen by sending another request with the returned <code>nextToken</code> value. This value can be between 5 and 500. If <code>maxResults</code> is given a larger value than 500, you receive an error.<br/>NextToken:  The token to use to retrieve the next page of results.<br/>CapacityReservationId:  The ID of the Capacity Reservation.<br/>
        :return: CapacityReservationGroups:  Information about the resource groups to which the Capacity Reservation has been added.<br/>NextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>        """
        pass

    def get_host_reservation_purchase_preview(self, OfferingId: str, HostIdSet: List[DedicatedHostId]) -> GetHostReservationPurchasePreviewResult:
        r"""Preview a reservation purchase with configurations that match those of your Dedicated Host. You must have active Dedicated Hosts in your account before you purchase a reservation. This is a preview of the <a>PurchaseHostReservation</a> action and does not result in the offering being purchased.

        :param self:
        :param OfferingId:  The offering ID of the reservation.<br/>HostIdSet:  The IDs of the Dedicated Hosts with which the reservation is associated.<br/>
        :return: TotalUpfrontPrice:  The potential total upfront price. This is billed immediately.<br/>TotalHourlyPrice:  The potential total hourly price of the reservation per hour.<br/>Purchase:  The purchase information of the Dedicated Host reservation and the Dedicated Hosts associated with it.<br/>CurrencyCode:  The currency in which the <code>totalUpfrontPrice</code> and <code>totalHourlyPrice</code> amounts are specified. At this time, the only supported currency is <code>USD</code>.<br/>        """
        pass

    def get_launch_template_data(self, InstanceId: str, DryRun: Boolean=None) -> GetLaunchTemplateDataResult:
        r"""Retrieves the configuration data of the specified instance. You can use this data to create a launch template.  This action calls on other describe actions to get instance information. Depending on your instance configuration, you may need to allow the following actions in your IAM policy: DescribeSpotInstanceRequests, DescribeInstanceCreditSpecifications, DescribeVolumes, DescribeInstanceAttribute, and DescribeElasticGpus. Or, you can allow <code>describe*</code> depending on your instance requirements.

        :param self:
        :param InstanceId:  The ID of the instance.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: LaunchTemplateData:  The instance data.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnclaveOptions</i> Indicates whether the instance is enabled for AWS Nitro Enclaves.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EnclaveOptions</b>: Indicates whether the instance is enabled for AWS Nitro Enclaves.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MetadataOptions</i> The metadata options for the instance. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html">Instance Metadata and User Data</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>MetadataOptions</b>: The metadata options for the instance. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html">Instance Metadata and User Data</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HibernationOptions</i> Indicates whether an instance is configured for hibernation. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html">Hibernate Your Instance</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>HibernationOptions</b>: Indicates whether an instance is configured for hibernation. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html">Hibernate Your Instance</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LicenseSpecifications</i> The license configurations.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CapacityReservationSpecification</i> Information about the Capacity Reservation targeting option.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CapacityReservationSpecification</b>: Information about the Capacity Reservation targeting option.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CpuOptions</i> The CPU options for the instance. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html">Optimizing CPU Options</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CpuOptions</b>: The CPU options for the instance. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html">Optimizing CPU Options</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreditSpecification</i> The credit option for CPU usage of the instance.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CreditSpecification</b>: The credit option for CPU usage of the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceMarketOptions</i> The market (purchasing) option for the instances.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>InstanceMarketOptions</b>: The market (purchasing) option for the instances.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroups</i> The security group names.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> The security group IDs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ElasticInferenceAccelerators</i>  The elastic inference accelerator for the instance. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ElasticGpuSpecifications</i> The elastic GPU specification.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TagSpecifications</i> The tags.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserData</i> The user data for the instance. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceInitiatedShutdownBehavior</i> Indicates whether an instance stops or terminates when you initiate shutdown from the instance (using the operating system command for system shutdown).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DisableApiTermination</i> If set to <code>true</code>, indicates that the instance cannot be terminated using the Amazon EC2 console, command line tool, or API.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RamDiskId</i> The ID of the RAM disk, if applicable.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Placement</i> The placement of the instance.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Placement</b>: The placement of the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Monitoring</i> The monitoring for the instance.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Monitoring</b>: The monitoring for the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KeyName</i> The name of the key pair.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceType</i> The instance type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImageId</i> The ID of the AMI that was used to launch the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkInterfaces</i> The network interfaces.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BlockDeviceMappings</i> The block device mappings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IamInstanceProfile</i> The IAM instance profile.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>IamInstanceProfile</b>: The IAM instance profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EbsOptimized</i> Indicates whether the instance is optimized for Amazon EBS I/O. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KernelId</i> The ID of the kernel, if applicable.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the instance profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the instance profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Indicates whether detailed monitoring is enabled. Otherwise, basic monitoring is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PartitionNumber</i> The number of the partition the instance should launch in. Valid only if the placement group strategy is set to <code>partition</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HostResourceGroupArn</i> The ARN of the host resource group in which to launch the instances. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SpreadDomain</i> Reserved for future use.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Tenancy</i> The tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of <code>dedicated</code> runs on single-tenant hardware. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HostId</i> The ID of the Dedicated Host for the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>GroupName</i> The name of the placement group for the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Affinity</i> The affinity setting for the instance on the Dedicated Host.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZone</i> The Availability Zone of the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MarketType</i> The market type.<br/>The options for Spot Instances.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SpotOptions</b>: The options for Spot Instances.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CpuCredits</i> The credit option for CPU usage of a T2, T3, or T3a instance. Valid values are <code>standard</code> and <code>unlimited</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ThreadsPerCore</i> The number of threads per CPU core.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CoreCount</i> The number of CPU cores for the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CapacityReservationPreference</i> Indicates the instance's Capacity Reservation preferences. Possible preferences include: <ul> <li>  <code>open</code> - The instance can run in any <code>open</code> Capacity Reservation that has matching attributes (instance type, platform, Availability Zone). </li> <li>  <code>none</code> - The instance avoids running in a Capacity Reservation even if one is available. The instance runs in On-Demand capacity. </li> </ul><br/>Information about the target Capacity Reservation or Capacity Reservation group.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CapacityReservationTarget</b>: Information about the target Capacity Reservation or Capacity Reservation group.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Configured</i> If this parameter is set to <code>true</code>, the instance is enabled for hibernation; otherwise, it is not enabled for hibernation.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HttpEndpoint</i> This parameter enables or disables the HTTP metadata endpoint on your instances. If the parameter is not specified, the default state is <code>enabled</code>. <note> If you specify a value of <code>disabled</code>, you will not be able to access your instance metadata.  </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HttpPutResponseHopLimit</i> The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Default: 1 Possible values: Integers from 1 to 64<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HttpTokens</i> The state of token usage for your instance metadata requests. If the parameter is not specified in the request, the default state is <code>optional</code>. If the state is <code>optional</code>, you can choose to retrieve instance metadata with or without a signed token header on your request. If you retrieve the IAM role credentials without a token, the version 1.0 role credentials are returned. If you retrieve the IAM role credentials using a valid signed token, the version 2.0 role credentials are returned. If the state is <code>required</code>, you must send a signed token header with any instance metadata retrieval requests. In this state, retrieving the IAM role credentials always returns the version 2.0 credentials; the version 1.0 credentials are not available.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the metadata option changes.  <code>pending</code> - The metadata options are being updated and the instance is not ready to process metadata traffic with the new selection.  <code>applied</code> - The metadata options have been successfully applied on the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> If this parameter is set to <code>true</code>, the instance is enabled for AWS Nitro Enclaves; otherwise, it is not enabled for AWS Nitro Enclaves.<br/>        """
        pass

    def get_managed_prefix_list_associations(self, PrefixListId: str, DryRun: Boolean=None, MaxResults: int=None, NextToken: str=None) -> GetManagedPrefixListAssociationsResult:
        r"""Gets information about the resources that are associated with the specified managed prefix list.

        :param self:
        :param NextToken:  The token for the next page of results.<br/>MaxResults:  The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.<br/>PrefixListId:  The ID of the prefix list.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>PrefixListAssociations:  Information about the associations.<br/>        """
        pass

    def get_managed_prefix_list_entries(self, PrefixListId: str, DryRun: Boolean=None, TargetVersion: Long=None, MaxResults: int=None, NextToken: str=None) -> GetManagedPrefixListEntriesResult:
        r"""Gets information about the entries for a specified managed prefix list.

        :param self:
        :param NextToken:  The token for the next page of results.<br/>MaxResults:  The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.<br/>TargetVersion:  The version of the prefix list for which to return the entries. The default is the current version.<br/>PrefixListId:  The ID of the prefix list.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>Entries:  Information about the prefix list entries.<br/>        """
        pass

    def get_password_data(self, InstanceId: str, DryRun: Boolean=None) -> GetPasswordDataResult:
        r"""Retrieves the encrypted administrator password for a running Windows instance. The Windows password is generated at boot by the <code>EC2Config</code> service or <code>EC2Launch</code> scripts (Windows Server 2016 and later). This usually only happens the first time an instance is launched. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/UsingConfig_WinAMI.html">EC2Config</a> and <a href="https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2launch.html">EC2Launch</a> in the <i>Amazon EC2 User Guide</i>. For the <code>EC2Config</code> service, the password is not generated for rebundled AMIs unless <code>Ec2SetPassword</code> is enabled before bundling. The password is encrypted using the key pair that you specified when you launched the instance. You must provide the corresponding key pair file. When you launch an instance, password generation and encryption may take a few minutes. If you try to retrieve the password before it's available, the output returns an empty string. We recommend that you wait up to 15 minutes after launching an instance before trying to retrieve the generated password.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>InstanceId:  The ID of the Windows instance.<br/>
        :return: Timestamp:  The time the data was last updated.<br/>PasswordData:  The password of the instance. Returns an empty string if the password is not available.<br/>InstanceId:  The ID of the Windows instance.<br/>        """
        pass

    def get_reserved_instances_exchange_quote(self, ReservedInstanceIds: List[ReservationId], DryRun: Boolean=None, TargetConfigurations: List[TargetConfigurationRequest]=None) -> GetReservedInstancesExchangeQuoteResult:
        r"""Returns a quote and exchange information for exchanging one or more specified Convertible Reserved Instances for a new Convertible Reserved Instance. If the exchange cannot be performed, the reason is returned in the response. Use <a>AcceptReservedInstancesExchangeQuote</a> to perform the exchange.

        :param self:
        :param TargetConfigurations:  The configuration of the target Convertible Reserved Instance to exchange for your current Convertible Reserved Instances.<br/>ReservedInstanceIds:  The IDs of the Convertible Reserved Instances to exchange.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: ValidationFailureReason:  Describes the reason why the exchange cannot be completed.<br/>TargetConfigurationValueSet:  The values of the target Convertible Reserved Instances.<br/>TargetConfigurationValueRollup:  The cost associated with the Reserved Instance.:<br/>ReservedInstanceValueSet:  The configuration of your Convertible Reserved Instances.<br/>ReservedInstanceValueRollup:  The cost associated with the Reserved Instance.:<br/>PaymentDue:  The total true upfront charge for the exchange.<br/>OutputReservedInstancesWillExpireAt:  The new end date of the reservation term.<br/>IsValidExchange:  If <code>true</code>, the exchange is valid. If <code>false</code>, the exchange cannot be completed.<br/>CurrencyCode:  The currency of the transaction.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RemainingUpfrontValue</i> The remaining upfront cost of the reservation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RemainingTotalValue</i> The balance of the total value (the sum of remainingUpfrontValue + hourlyPrice * number of hours remaining).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HourlyPrice</i> The hourly rate of the reservation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RemainingUpfrontValue</i> The remaining upfront cost of the reservation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RemainingTotalValue</i> The balance of the total value (the sum of remainingUpfrontValue + hourlyPrice * number of hours remaining).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HourlyPrice</i> The hourly rate of the reservation.<br/>        """
        pass

    def get_serial_console_access_status(self, DryRun: Boolean=None) -> GetSerialConsoleAccessStatusResult:
        r"""Retrieves the access status of your account to the EC2 serial console of all instances. By default, access to the EC2 serial console is disabled for your account. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configure-access-to-serial-console.html#serial-console-account-access">Manage account access to the EC2 serial console</a> in the <i>Amazon EC2 User Guide</i>.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: SerialConsoleAccessEnabled:  If <code>true</code>, access to the EC2 serial console of all instances is enabled for your account. If <code>false</code>, access to the EC2 serial console of all instances is disabled for your account.<br/>        """
        pass

    def get_transit_gateway_attachment_propagations(self, TransitGatewayAttachmentId: str, Filters: List[Filter]=None, MaxResults: int=None, NextToken: str=None, DryRun: Boolean=None) -> GetTransitGatewayAttachmentPropagationsResult:
        r"""Lists the route tables to which the specified resource attachment propagates routes.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>NextToken:  The token for the next page of results.<br/>MaxResults:  The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.<br/>Filters:  One or more filters. The possible values are: <ul> <li>  <code>transit-gateway-route-table-id</code> - The ID of the transit gateway route table. </li> </ul><br/>TransitGatewayAttachmentId:  The ID of the attachment.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>TransitGatewayAttachmentPropagations:  Information about the propagation route tables.<br/>        """
        pass

    def get_transit_gateway_multicast_domain_associations(self, TransitGatewayMulticastDomainId: str=None, Filters: List[Filter]=None, MaxResults: int=None, NextToken: str=None, DryRun: Boolean=None) -> GetTransitGatewayMulticastDomainAssociationsResult:
        r"""Gets information about the associations for the transit gateway multicast domain.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>NextToken:  The token for the next page of results.<br/>MaxResults:  The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.<br/>Filters:  One or more filters. The possible values are: <ul> <li>  <code>resource-id</code> - The ID of the resource. </li> <li>  <code>resource-type</code> - The type of resource. The valid value is: <code>vpc</code>. </li> <li>  <code>state</code> - The state of the subnet association. Valid values are <code>associated</code> | <code>associating</code> | <code>disassociated</code> | <code>disassociating</code>. </li> <li>  <code>subnet-id</code> - The ID of the subnet. </li> <li>  <code>transit-gateway-attachment-id</code> - The id of the transit gateway attachment. </li> </ul><br/>TransitGatewayMulticastDomainId:  The ID of the transit gateway multicast domain.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>MulticastDomainAssociations:  Information about the multicast domain associations.<br/>        """
        pass

    def get_transit_gateway_prefix_list_references(self, TransitGatewayRouteTableId: str, Filters: List[Filter]=None, MaxResults: int=None, NextToken: str=None, DryRun: Boolean=None) -> GetTransitGatewayPrefixListReferencesResult:
        r"""Gets information about the prefix list references in a specified transit gateway route table.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>NextToken:  The token for the next page of results.<br/>MaxResults:  The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.<br/>Filters:  One or more filters. The possible values are: <ul> <li>  <code>attachment.resource-id</code> - The ID of the resource for the attachment. </li> <li>  <code>attachment.resource-type</code> - The type of resource for the attachment. Valid values are <code>vpc</code> | <code>vpn</code> | <code>direct-connect-gateway</code> | <code>peering</code>. </li> <li>  <code>attachment.transit-gateway-attachment-id</code> - The ID of the attachment. </li> <li>  <code>is-blackhole</code> - Whether traffic matching the route is blocked (<code>true</code> | <code>false</code>). </li> <li>  <code>prefix-list-id</code> - The ID of the prefix list. </li> <li>  <code>prefix-list-owner-id</code> - The ID of the owner of the prefix list. </li> <li>  <code>state</code> - The state of the prefix list reference (<code>pending</code> | <code>available</code> | <code>modifying</code> | <code>deleting</code>). </li> </ul><br/>TransitGatewayRouteTableId:  The ID of the transit gateway route table.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>TransitGatewayPrefixListReferences:  Information about the prefix list references.<br/>        """
        pass

    def get_transit_gateway_route_table_associations(self, TransitGatewayRouteTableId: str, Filters: List[Filter]=None, MaxResults: int=None, NextToken: str=None, DryRun: Boolean=None) -> GetTransitGatewayRouteTableAssociationsResult:
        r"""Gets information about the associations for the specified transit gateway route table.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>NextToken:  The token for the next page of results.<br/>MaxResults:  The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.<br/>Filters:  One or more filters. The possible values are: <ul> <li>  <code>resource-id</code> - The ID of the resource. </li> <li>  <code>resource-type</code> - The resource type. Valid values are <code>vpc</code> | <code>vpn</code> | <code>direct-connect-gateway</code> | <code>peering</code> | <code>connect</code>. </li> <li>  <code>transit-gateway-attachment-id</code> - The ID of the attachment. </li> </ul><br/>TransitGatewayRouteTableId:  The ID of the transit gateway route table.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>Associations:  Information about the associations.<br/>        """
        pass

    def get_transit_gateway_route_table_propagations(self, TransitGatewayRouteTableId: str, Filters: List[Filter]=None, MaxResults: int=None, NextToken: str=None, DryRun: Boolean=None) -> GetTransitGatewayRouteTablePropagationsResult:
        r"""Gets information about the route table propagations for the specified transit gateway route table.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>NextToken:  The token for the next page of results.<br/>MaxResults:  The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.<br/>Filters:  One or more filters. The possible values are: <ul> <li>  <code>resource-id</code> - The ID of the resource. </li> <li>  <code>resource-type</code> - The resource type. Valid values are <code>vpc</code> | <code>vpn</code> | <code>direct-connect-gateway</code> | <code>peering</code> | <code>connect</code>. </li> <li>  <code>transit-gateway-attachment-id</code> - The ID of the attachment. </li> </ul><br/>TransitGatewayRouteTableId:  The ID of the transit gateway route table.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>TransitGatewayRouteTablePropagations:  Information about the route table propagations.<br/>        """
        pass

    def import_client_vpn_client_certificate_revocation_list(self, CertificateRevocationList: str, ClientVpnEndpointId: str, DryRun: Boolean=None) -> ImportClientVpnClientCertificateRevocationListResult:
        r"""Uploads a client certificate revocation list to the specified Client VPN endpoint. Uploading a client certificate revocation list overwrites the existing client certificate revocation list. Uploading a client certificate revocation list resets existing client connections.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>CertificateRevocationList:  The client certificate revocation list file. For more information, see <a href="https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/cvpn-working-certificates.html#cvpn-working-certificates-generate">Generate a Client Certificate Revocation List</a> in the <i>AWS Client VPN Administrator Guide</i>.<br/>ClientVpnEndpointId:  The ID of the Client VPN endpoint to which the client certificate revocation list applies.<br/>
        :return: Return:  Returns <code>true</code> if the request succeeds; otherwise, it returns an error.<br/>        """
        pass

    def import_image(self, Architecture: str=None, ClientData: ClientData=None, ClientToken: str=None, Description: str=None, DiskContainers: List[ImageDiskContainer]=None, DryRun: Boolean=None, Encrypted: Boolean=None, Hypervisor: str=None, KmsKeyId: str=None, LicenseType: str=None, Platform: str=None, RoleName: str=None, LicenseSpecifications: List[ImportImageLicenseConfigurationRequest]=None, TagSpecifications: List[TagSpecification]=None) -> ImportImageResult:
        r"""Import single or multi-volume disk images or EBS snapshots into an Amazon Machine Image (AMI). For more information, see <a href="https://docs.aws.amazon.com/vm-import/latest/userguide/vmimport-image-import.html">Importing a VM as an image using VM Import/Export</a> in the <i>VM Import/Export User Guide</i>.

        :param self:
        :param TagSpecifications:  The tags to apply to the import image task during creation.<br/>LicenseSpecifications:  The ARNs of the license configurations.<br/>RoleName:  The name of the role to use when not using the default role, 'vmimport'.<br/>Platform:  The operating system of the virtual machine. Valid values: <code>Windows</code> | <code>Linux</code> <br/>LicenseType:  The license type to be used for the Amazon Machine Image (AMI) after importing. By default, we detect the source-system operating system (OS) and apply the appropriate license. Specify <code>AWS</code> to replace the source-system license with an AWS license, if appropriate. Specify <code>BYOL</code> to retain the source-system license, if appropriate. To use <code>BYOL</code>, you must have existing licenses with rights to use these licenses in a third party cloud, such as AWS. For more information, see <a href="https://docs.aws.amazon.com/vm-import/latest/userguide/vmimport-image-import.html#prerequisites-image">Prerequisites</a> in the VM Import/Export User Guide.<br/>KmsKeyId:  An identifier for the symmetric AWS Key Management Service (AWS KMS) customer master key (CMK) to use when creating the encrypted AMI. This parameter is only required if you want to use a non-default CMK; if this parameter is not specified, the default CMK for EBS is used. If a <code>KmsKeyId</code> is specified, the <code>Encrypted</code> flag must also be set.  The CMK identifier may be provided in any of the following formats:  <ul> <li> Key ID </li> <li> Key alias. The alias ARN contains the <code>arn:aws:kms</code> namespace, followed by the Region of the CMK, the AWS account ID of the CMK owner, the <code>alias</code> namespace, and then the CMK alias. For example, arn:aws:kms:<i>us-east-1</i>:<i>012345678910</i>:alias/<i>ExampleAlias</i>. </li> <li> ARN using key ID. The ID ARN contains the <code>arn:aws:kms</code> namespace, followed by the Region of the CMK, the AWS account ID of the CMK owner, the <code>key</code> namespace, and then the CMK ID. For example, arn:aws:kms:<i>us-east-1</i>:<i>012345678910</i>:key/<i>abcd1234-a123-456a-a12b-a123b4cd56ef</i>. </li> <li> ARN using key alias. The alias ARN contains the <code>arn:aws:kms</code> namespace, followed by the Region of the CMK, the AWS account ID of the CMK owner, the <code>alias</code> namespace, and then the CMK alias. For example, arn:aws:kms:<i>us-east-1</i>:<i>012345678910</i>:alias/<i>ExampleAlias</i>.  </li> </ul> AWS parses <code>KmsKeyId</code> asynchronously, meaning that the action you call may appear to complete even though you provided an invalid identifier. This action will eventually report failure.  The specified CMK must exist in the Region that the AMI is being copied to. Amazon EBS does not support asymmetric CMKs.<br/>Hypervisor:  The target hypervisor platform. Valid values: <code>xen</code> <br/>Encrypted:  Specifies whether the destination AMI of the imported image should be encrypted. The default CMK for EBS is used unless you specify a non-default AWS Key Management Service (AWS KMS) CMK using <code>KmsKeyId</code>. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html">Amazon EBS Encryption</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>DiskContainers:  Information about the disk containers.<br/>Description:  A description string for the import image task.<br/>ClientToken:  The token to enable idempotency for VM import requests.<br/>ClientData:  The client-specific data.:<br/>Architecture:  The architecture of the virtual machine. Valid values: <code>i386</code> | <code>x86_64</code> | <code>arm64</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UploadStart</i> The time that the disk upload starts.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UploadSize</i> The size of the uploaded disk image, in GiB.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UploadEnd</i> The time that the disk upload ends.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Comment</i> A user-defined comment about the disk upload.<br/>
        :return: Tags:  Any tags assigned to the import image task.<br/>LicenseSpecifications:  The ARNs of the license configurations.<br/>StatusMessage:  A detailed status message of the import task.<br/>Status:  A brief status of the task.<br/>SnapshotDetails:  Information about the snapshots.<br/>Progress:  The progress of the task.<br/>Platform:  The operating system of the virtual machine.<br/>LicenseType:  The license type of the virtual machine.<br/>KmsKeyId:  The identifier for the symmetric AWS Key Management Service (AWS KMS) customer master key (CMK) that was used to create the encrypted AMI.<br/>ImportTaskId:  The task ID of the import image task.<br/>ImageId:  The ID of the Amazon Machine Image (AMI) created by the import task.<br/>Hypervisor:  The target hypervisor of the import task.<br/>Encrypted:  Indicates whether the AMI is encrypted.<br/>Description:  A description of the import task.<br/>Architecture:  The architecture of the virtual machine.<br/>        """
        pass

    def import_instance(self, Platform: str, Description: str=None, DiskImages: List[DiskImage]=None, DryRun: Boolean=None, LaunchSpecification: ImportInstanceLaunchSpecification=None) -> ImportInstanceResult:
        r"""Creates an import instance task using metadata from the specified disk image. This API action supports only single-volume VMs. To import multi-volume VMs, use <a>ImportImage</a> instead. This API action is not supported by the AWS Command Line Interface (AWS CLI). For information about using the Amazon EC2 CLI, which is deprecated, see <a href="https://awsdocs.s3.amazonaws.com/EC2/ec2-clt.pdf#UsingVirtualMachinesinAmazonEC2">Importing a VM to Amazon EC2</a> in the <i>Amazon EC2 CLI Reference</i> PDF file. For information about the import manifest referenced by this API action, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/manifest.html">VM Import Manifest</a>.

        :param self:
        :param Platform:  The instance operating system.<br/>LaunchSpecification:  The launch specification.:<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>DiskImages:  The disk image.<br/>Description:  A description for the instance being imported.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserData</i> The Base64-encoded user data to make available to the instance.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>UserData</b>: The Base64-encoded user data to make available to the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetId</i> [EC2-VPC] The ID of the subnet in which to launch the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PrivateIpAddress</i> [EC2-VPC] An available IP address from the IP address range of the subnet.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Placement</i> The placement information for the instance.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Placement</b>: The placement information for the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Monitoring</i> Indicates whether monitoring is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceType</i> The instance type. For more information about the instance types that you can import, see <a href="https://docs.aws.amazon.com/vm-import/latest/userguide/vmie_prereqs.html#vmimport-instance-types">Instance Types</a> in the VM Import/Export User Guide.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceInitiatedShutdownBehavior</i> Indicates whether an instance stops or terminates when you initiate shutdown from the instance (using the operating system command for system shutdown).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GroupNames</i> The security group names.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GroupIds</i> The security group IDs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Architecture</i> The architecture of the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdditionalInfo</i> Reserved.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HostResourceGroupArn</i> The ARN of the host resource group in which to launch the instances. If you specify a host resource group ARN, omit the <b>Tenancy</b> parameter or set it to <code>host</code>. This parameter is not supported by <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateFleet">CreateFleet</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SpreadDomain</i> Reserved for future use. This parameter is not supported by <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateFleet">CreateFleet</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Tenancy</i> The tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of <code>dedicated</code> runs on single-tenant hardware. The <code>host</code> tenancy is not supported for the <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ImportInstance.html">ImportInstance</a> command. This parameter is not supported by <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateFleet">CreateFleet</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HostId</i> The ID of the Dedicated Host on which the instance resides. This parameter is not supported for the <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ImportInstance.html">ImportInstance</a> command. This parameter is not supported by <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateFleet">CreateFleet</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PartitionNumber</i> The number of the partition the instance is in. Valid only if the placement group strategy is set to <code>partition</code>. This parameter is not supported by <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateFleet">CreateFleet</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>GroupName</i> The name of the placement group the instance is in.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Affinity</i> The affinity setting for the instance on the Dedicated Host. This parameter is not supported for the <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ImportInstance.html">ImportInstance</a> command. This parameter is not supported by <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateFleet">CreateFleet</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZone</i> The Availability Zone of the instance. If not specified, an Availability Zone will be automatically chosen for you based on the load balancing criteria for the Region. This parameter is not supported by <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateFleet">CreateFleet</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Data</i> The user data. If you are using an AWS SDK or command line tool, Base64-encoding is performed for you, and you can load the text from a file. Otherwise, you must provide Base64-encoded text.<br/>
        :return: ConversionTask:  Information about the conversion task.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> Any tags assigned to the task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusMessage</i> The status message related to the conversion task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the conversion task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImportVolume</i> If the task is for importing a volume, this contains information about the import volume task.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ImportVolume</b>: If the task is for importing a volume, this contains information about the import volume task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImportInstance</i> If the task is for importing an instance, this contains information about the import instance task.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ImportInstance</b>: If the task is for importing an instance, this contains information about the import instance task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExpirationTime</i> The time when the task expires. If the upload isn't complete before the expiration time, we automatically cancel the task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConversionTaskId</i> The ID of the conversion task.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Volumes</i> The volumes.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Platform</i> The instance operating system.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceId</i> The ID of the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A description of the task.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description you provided when starting the import volume task.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BytesConverted</i> The number of bytes converted so far.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZone</i> The Availability Zone where the resulting volume will reside.<br/>The image.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Image</b>: The image.        """
        pass

    def import_key_pair(self, PublicKeyMaterial: Blob, KeyName: str, DryRun: Boolean=None, TagSpecifications: List[TagSpecification]=None) -> ImportKeyPairResult:
        r"""Imports the public key from an RSA key pair that you created with a third-party tool. Compare this with <a>CreateKeyPair</a>, in which Amazon Web Services creates the key pair and gives the keys to you (Amazon Web Services keeps a copy of the public key). With ImportKeyPair, you create the key pair and give Amazon Web Services just the public key. The private key is never transferred between you and Amazon Web Services. For more information about key pairs, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html">Key Pairs</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.

        :param self:
        :param TagSpecifications:  The tags to apply to the imported key pair.<br/>PublicKeyMaterial:  The public key. For API calls, the text must be base64-encoded. For command line tools, base64 encoding is performed for you.<br/>KeyName:  A unique name for the key pair.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: Tags:  The tags applied to the imported key pair.<br/>KeyPairId:  The ID of the resulting key pair.<br/>KeyName:  The key pair name that you provided.<br/>KeyFingerprint:  The MD5 public key fingerprint as specified in section 4 of RFC 4716.<br/>        """
        pass

    def import_snapshot(self, ClientData: ClientData=None, ClientToken: str=None, Description: str=None, DiskContainer: SnapshotDiskContainer=None, DryRun: Boolean=None, Encrypted: Boolean=None, KmsKeyId: str=None, RoleName: str=None, TagSpecifications: List[TagSpecification]=None) -> ImportSnapshotResult:
        r"""Imports a disk into an EBS snapshot. For more information, see <a href="https://docs.aws.amazon.com/vm-import/latest/userguide/vmimport-import-snapshot.html">Importing a disk as a snapshot using VM Import/Export</a> in the <i>VM Import/Export User Guide</i>.

        :param self:
        :param TagSpecifications:  The tags to apply to the import snapshot task during creation.<br/>RoleName:  The name of the role to use when not using the default role, 'vmimport'.<br/>KmsKeyId:  An identifier for the symmetric AWS Key Management Service (AWS KMS) customer master key (CMK) to use when creating the encrypted snapshot. This parameter is only required if you want to use a non-default CMK; if this parameter is not specified, the default CMK for EBS is used. If a <code>KmsKeyId</code> is specified, the <code>Encrypted</code> flag must also be set.  The CMK identifier may be provided in any of the following formats:  <ul> <li> Key ID </li> <li> Key alias. The alias ARN contains the <code>arn:aws:kms</code> namespace, followed by the Region of the CMK, the AWS account ID of the CMK owner, the <code>alias</code> namespace, and then the CMK alias. For example, arn:aws:kms:<i>us-east-1</i>:<i>012345678910</i>:alias/<i>ExampleAlias</i>. </li> <li> ARN using key ID. The ID ARN contains the <code>arn:aws:kms</code> namespace, followed by the Region of the CMK, the AWS account ID of the CMK owner, the <code>key</code> namespace, and then the CMK ID. For example, arn:aws:kms:<i>us-east-1</i>:<i>012345678910</i>:key/<i>abcd1234-a123-456a-a12b-a123b4cd56ef</i>. </li> <li> ARN using key alias. The alias ARN contains the <code>arn:aws:kms</code> namespace, followed by the Region of the CMK, the AWS account ID of the CMK owner, the <code>alias</code> namespace, and then the CMK alias. For example, arn:aws:kms:<i>us-east-1</i>:<i>012345678910</i>:alias/<i>ExampleAlias</i>.  </li> </ul> AWS parses <code>KmsKeyId</code> asynchronously, meaning that the action you call may appear to complete even though you provided an invalid identifier. This action will eventually report failure.  The specified CMK must exist in the Region that the snapshot is being copied to. Amazon EBS does not support asymmetric CMKs.<br/>Encrypted:  Specifies whether the destination snapshot of the imported image should be encrypted. The default CMK for EBS is used unless you specify a non-default AWS Key Management Service (AWS KMS) CMK using <code>KmsKeyId</code>. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html">Amazon EBS Encryption</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>DiskContainer:  Information about the disk container.:<br/>Description:  The description string for the import snapshot task.<br/>ClientToken:  Token to enable idempotency for VM import requests.<br/>ClientData:  The client-specific data.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UploadStart</i> The time that the disk upload starts.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UploadSize</i> The size of the uploaded disk image, in GiB.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UploadEnd</i> The time that the disk upload ends.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Comment</i> A user-defined comment about the disk upload.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserBucket</i> The Amazon S3 bucket for the disk image.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>UserBucket</b>: The Amazon S3 bucket for the disk image.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Url</i> The URL to the Amazon S3-based disk image being imported. It can either be a https URL (https://..) or an Amazon S3 URL (s3://..).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Format</i> The format of the disk image being imported. Valid values: <code>VHD</code> | <code>VMDK</code> | <code>RAW</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the disk image being imported.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Key</i> The file name of the disk image.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Bucket</i> The name of the Amazon S3 bucket where the disk image is located.<br/>
        :return: Tags:  Any tags assigned to the import snapshot task.<br/>SnapshotTaskDetail:  Information about the import snapshot task.:<br/>ImportTaskId:  The ID of the import snapshot task.<br/>Description:  A description of the import snapshot task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserBucket</i> The Amazon S3 bucket for the disk image.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>UserBucket</b>: The Amazon S3 bucket for the disk image.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Url</i> The URL of the disk image from which the snapshot is created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusMessage</i> A detailed status message for the import snapshot task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> A brief status for the import snapshot task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotId</i> The snapshot ID of the disk being imported.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Progress</i> The percentage of completion for the import snapshot task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The identifier for the AWS Key Management Service (AWS KMS) customer master key (CMK) that was used to create the encrypted snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Format</i> The format of the disk image from which the snapshot is created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Encrypted</i> Indicates whether the snapshot is encrypted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DiskImageSize</i> The size of the disk in the snapshot, in GiB.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Key</i> The file name of the disk image.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Bucket</i> The Amazon S3 bucket from which the disk image was created.<br/>        """
        pass

    def import_volume(self, Volume: VolumeDetail, Image: DiskImageDetail, AvailabilityZone: str, Description: str=None, DryRun: Boolean=None) -> ImportVolumeResult:
        r"""Creates an import volume task using metadata from the specified disk image. This API action supports only single-volume VMs. To import multi-volume VMs, use <a>ImportImage</a> instead. To import a disk to a snapshot, use <a>ImportSnapshot</a> instead. This API action is not supported by the AWS Command Line Interface (AWS CLI). For information about using the Amazon EC2 CLI, which is deprecated, see <a href="https://awsdocs.s3.amazonaws.com/EC2/ec2-clt.pdf#importing-your-volumes-into-amazon-ebs">Importing Disks to Amazon EBS</a> in the <i>Amazon EC2 CLI Reference</i> PDF file. For information about the import manifest referenced by this API action, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/manifest.html">VM Import Manifest</a>.

        :param self:
        :param Volume:  The volume size.:<br/>Image:  The disk image.:<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>Description:  A description of the volume.<br/>AvailabilityZone:  The Availability Zone for the resulting EBS volume.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImportManifestUrl</i> A presigned URL for the import manifest stored in Amazon S3 and presented here as an Amazon S3 presigned URL. For information about creating a presigned URL for an Amazon S3 object, read the "Query String Request Authentication Alternative" section of the <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html">Authenticating REST Requests</a> topic in the <i>Amazon Simple Storage Service Developer Guide</i>. For information about the import manifest referenced by this API action, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/manifest.html">VM Import Manifest</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Format</i> The disk image format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Bytes</i> The size of the disk image, in GiB.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Size</i> The size of the volume, in GiB.<br/>
        :return: ConversionTask:  Information about the conversion task.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> Any tags assigned to the task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusMessage</i> The status message related to the conversion task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the conversion task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImportVolume</i> If the task is for importing a volume, this contains information about the import volume task.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ImportVolume</b>: If the task is for importing a volume, this contains information about the import volume task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImportInstance</i> If the task is for importing an instance, this contains information about the import instance task.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ImportInstance</b>: If the task is for importing an instance, this contains information about the import instance task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExpirationTime</i> The time when the task expires. If the upload isn't complete before the expiration time, we automatically cancel the task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConversionTaskId</i> The ID of the conversion task.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Volumes</i> The volumes.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Platform</i> The instance operating system.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceId</i> The ID of the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A description of the task.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description you provided when starting the import volume task.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BytesConverted</i> The number of bytes converted so far.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZone</i> The Availability Zone where the resulting volume will reside.<br/>The image.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Image</b>: The image.        """
        pass

    def modify_address_attribute(self, AllocationId: str, DomainName: str=None, DryRun: Boolean=None) -> ModifyAddressAttributeResult:
        r"""Modifies an attribute of the specified Elastic IP address. For requirements, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html#Using_Elastic_Addressing_Reverse_DNS">Using reverse DNS for email applications</a>.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>DomainName:  The domain name to modify for the IP address.<br/>AllocationId:  [EC2-VPC] The allocation ID.<br/>
        :return: Address:  Information about the Elastic IP address.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PtrRecordUpdate</i> The updated PTR record for the IP address.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PtrRecordUpdate</b>: The updated PTR record for the IP address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PtrRecord</i> The pointer (PTR) record for the IP address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllocationId</i> [EC2-VPC] The allocation ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PublicIp</i> The public IP address.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Reason</i> The reason for the PTR record update.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the PTR record update.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Value</i> The value for the PTR record update.<br/>        """
        pass

    def modify_availability_zone_group(self, OptInStatus: str, GroupName: str, DryRun: Boolean=None) -> ModifyAvailabilityZoneGroupResult:
        r"""Changes the opt-in status of the Local Zone and Wavelength Zone group for your account. Use <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeAvailabilityZones.html"> DescribeAvailabilityZones</a> to view the value for <code>GroupName</code>.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>OptInStatus:  Indicates whether you are opted in to the Local Zone group or Wavelength Zone group. The only valid value is <code>opted-in</code>. You must contact <a href="https://console.aws.amazon.com/support/home#/case/create%3FissueType=customer-service%26serviceCode=general-info%26getting-started%26categoryCode=using-aws%26services">AWS Support</a> to opt out of a Local Zone group, or Wavelength Zone group.<br/>GroupName:  The name of the Availability Zone group, Local Zone group, or Wavelength Zone group.<br/>
        :return: Return:  Is <code>true</code> if the request succeeds, and an error otherwise.<br/>        """
        pass

    def modify_capacity_reservation(self, CapacityReservationId: str, InstanceCount: int=None, EndDate: DateTime=None, EndDateType: str=None, Accept: Boolean=None, DryRun: Boolean=None) -> ModifyCapacityReservationResult:
        r"""Modifies a Capacity Reservation's capacity and the conditions under which it is to be released. You cannot change a Capacity Reservation's instance type, EBS optimization, instance store settings, platform, Availability Zone, or instance eligibility. If you need to modify any of these attributes, we recommend that you cancel the Capacity Reservation, and then create a new one with the required attributes.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>Accept:  Reserved. Capacity Reservations you have created are accepted by default.<br/>EndDateType:  Indicates the way in which the Capacity Reservation ends. A Capacity Reservation can have one of the following end types: <ul> <li>  <code>unlimited</code> - The Capacity Reservation remains active until you explicitly cancel it. Do not provide an <code>EndDate</code> value if <code>EndDateType</code> is <code>unlimited</code>. </li> <li>  <code>limited</code> - The Capacity Reservation expires automatically at a specified date and time. You must provide an <code>EndDate</code> value if <code>EndDateType</code> is <code>limited</code>. </li> </ul><br/>EndDate:  The date and time at which the Capacity Reservation expires. When a Capacity Reservation expires, the reserved capacity is released and you can no longer launch instances into it. The Capacity Reservation's state changes to <code>expired</code> when it reaches its end date and time. The Capacity Reservation is cancelled within an hour from the specified time. For example, if you specify 5/31/2019, 13:30:55, the Capacity Reservation is guaranteed to end between 13:30:55 and 14:30:55 on 5/31/2019. You must provide an <code>EndDate</code> value if <code>EndDateType</code> is <code>limited</code>. Omit <code>EndDate</code> if <code>EndDateType</code> is <code>unlimited</code>.<br/>InstanceCount:  The number of instances for which to reserve capacity.<br/>CapacityReservationId:  The ID of the Capacity Reservation.<br/>
        :return: Return:  Returns <code>true</code> if the request succeeds; otherwise, it returns an error.<br/>        """
        pass

    def modify_client_vpn_endpoint(self, ClientVpnEndpointId: str, ServerCertificateArn: str=None, ConnectionLogOptions: ConnectionLogOptions=None, DnsServers: DnsServersOptionsModifyStructure=None, VpnPort: int=None, Description: str=None, SplitTunnel: Boolean=None, DryRun: Boolean=None, SecurityGroupIds: List[SecurityGroupId]=None, VpcId: str=None, SelfServicePortal: str=None, ClientConnectOptions: ClientConnectOptions=None) -> ModifyClientVpnEndpointResult:
        r"""Modifies the specified Client VPN endpoint. Modifying the DNS server resets existing client connections.

        :param self:
        :param ClientConnectOptions:  The options for managing connection authorization for new client connections.:<br/>SelfServicePortal:  Specify whether to enable the self-service portal for the Client VPN endpoint.<br/>VpcId:  The ID of the VPC to associate with the Client VPN endpoint.<br/>SecurityGroupIds:  The IDs of one or more security groups to apply to the target network.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>SplitTunnel:  Indicates whether the VPN is split-tunnel. For information about split-tunnel VPN endpoints, see <a href="https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/split-tunnel-vpn.html">Split-Tunnel AWS Client VPN Endpoint</a> in the <i>AWS Client VPN Administrator Guide</i>.<br/>Description:  A brief description of the Client VPN endpoint.<br/>VpnPort:  The port number to assign to the Client VPN endpoint for TCP and UDP traffic. Valid Values: <code>443</code> | <code>1194</code>  Default Value: <code>443</code> <br/>DnsServers:  Information about the DNS servers to be used by Client VPN connections. A Client VPN endpoint can have up to two DNS servers.:<br/>ConnectionLogOptions:  Information about the client connection logging options. If you enable client connection logging, data about client connections is sent to a Cloudwatch Logs log stream. The following information is logged: <ul> <li> Client connection requests </li> <li> Client connection results (successful and unsuccessful) </li> <li> Reasons for unsuccessful client connection requests </li> <li> Client connection termination time </li> </ul>:<br/>ServerCertificateArn:  The ARN of the server certificate to be used. The server certificate must be provisioned in AWS Certificate Manager (ACM).<br/>ClientVpnEndpointId:  The ID of the Client VPN endpoint to modify.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudwatchLogStream</i> The name of the CloudWatch Logs log stream to which the connection data is published.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudwatchLogGroup</i> The name of the CloudWatch Logs log group. Required if connection logging is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Indicates whether connection logging is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Indicates whether DNS servers should be used. Specify <code>False</code> to delete the existing DNS servers.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomDnsServers</i> The IPv4 address range, in CIDR notation, of the DNS servers to be used. You can specify up to two DNS servers. Ensure that the DNS servers can be reached by the clients. The specified values overwrite the existing values.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LambdaFunctionArn</i> The Amazon Resource Name (ARN) of the AWS Lambda function used for connection authorization.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Indicates whether client connect options are enabled. The default is <code>false</code> (not enabled).<br/>
        :return: Return:  Returns <code>true</code> if the request succeeds; otherwise, it returns an error.<br/>        """
        pass

    def modify_default_credit_specification(self, CpuCredits: str, InstanceFamily: str, DryRun: Boolean=None) -> ModifyDefaultCreditSpecificationResult:
        r"""Modifies the default credit option for CPU usage of burstable performance instances. The default credit option is set at the account level per Region, and is specified per instance family. All new burstable performance instances in the account launch using the default credit option.  <code>ModifyDefaultCreditSpecification</code> is an asynchronous operation, which works at an Region level and modifies the credit option for each Availability Zone. All zones in a Region are updated within five minutes. But if instances are launched during this operation, they might not get the new credit option until the zone is updated. To verify whether the update has occurred, you can call <code>GetDefaultCreditSpecification</code> and check <code>DefaultCreditSpecification</code> for updates. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html">Burstable performance instances</a> in the <i>Amazon EC2 User Guide</i>.

        :param self:
        :param CpuCredits:  The credit option for CPU usage of the instance family. Valid Values: <code>standard</code> | <code>unlimited</code> <br/>InstanceFamily:  The instance family.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: InstanceFamilyCreditSpecification:  The default credit option for CPU usage of the instance family.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CpuCredits</i> The default credit option for CPU usage of the instance family. Valid values are <code>standard</code> and <code>unlimited</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceFamily</i> The instance family.<br/>        """
        pass

    def modify_ebs_default_kms_key_id(self, KmsKeyId: str, DryRun: Boolean=None) -> ModifyEbsDefaultKmsKeyIdResult:
        r"""Changes the default customer master key (CMK) for EBS encryption by default for your account in this Region. AWS creates a unique AWS managed CMK in each Region for use with encryption by default. If you change the default CMK to a symmetric customer managed CMK, it is used instead of the AWS managed CMK. To reset the default CMK to the AWS managed CMK for EBS, use <a>ResetEbsDefaultKmsKeyId</a>. Amazon EBS does not support asymmetric CMKs. If you delete or disable the customer managed CMK that you specified for use with encryption by default, your instances will fail to launch. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html">Amazon EBS encryption</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>KmsKeyId:  The identifier of the AWS Key Management Service (AWS KMS) customer master key (CMK) to use for Amazon EBS encryption. If this parameter is not specified, your AWS managed CMK for EBS is used. If <code>KmsKeyId</code> is specified, the encrypted state must be <code>true</code>. You can specify the CMK using any of the following: <ul> <li> Key ID. For example, 1234abcd-12ab-34cd-56ef-1234567890ab. </li> <li> Key alias. For example, alias/ExampleAlias. </li> <li> Key ARN. For example, arn:aws:kms:us-east-1:012345678910:key/1234abcd-12ab-34cd-56ef-1234567890ab. </li> <li> Alias ARN. For example, arn:aws:kms:us-east-1:012345678910:alias/ExampleAlias. </li> </ul> AWS authenticates the CMK asynchronously. Therefore, if you specify an ID, alias, or ARN that is not valid, the action can appear to complete, but eventually fails. Amazon EBS does not support asymmetric CMKs.<br/>
        :return: KmsKeyId:  The Amazon Resource Name (ARN) of the default CMK for encryption by default.<br/>        """
        pass

    def modify_fleet(self, FleetId: str, DryRun: Boolean=None, ExcessCapacityTerminationPolicy: str=None, LaunchTemplateConfigs: List[FleetLaunchTemplateConfigRequest]=None, TargetCapacitySpecification: TargetCapacitySpecificationRequest=None, Context: str=None) -> ModifyFleetResult:
        r"""Modifies the specified EC2 Fleet. You can only modify an EC2 Fleet request of type <code>maintain</code>. While the EC2 Fleet is being modified, it is in the <code>modifying</code> state. To scale up your EC2 Fleet, increase its target capacity. The EC2 Fleet launches the additional Spot Instances according to the allocation strategy for the EC2 Fleet request. If the allocation strategy is <code>lowest-price</code>, the EC2 Fleet launches instances using the Spot Instance pool with the lowest price. If the allocation strategy is <code>diversified</code>, the EC2 Fleet distributes the instances across the Spot Instance pools. If the allocation strategy is <code>capacity-optimized</code>, EC2 Fleet launches instances from Spot Instance pools with optimal capacity for the number of instances that are launching. To scale down your EC2 Fleet, decrease its target capacity. First, the EC2 Fleet cancels any open requests that exceed the new target capacity. You can request that the EC2 Fleet terminate Spot Instances until the size of the fleet no longer exceeds the new target capacity. If the allocation strategy is <code>lowest-price</code>, the EC2 Fleet terminates the instances with the highest price per unit. If the allocation strategy is <code>capacity-optimized</code>, the EC2 Fleet terminates the instances in the Spot Instance pools that have the least available Spot Instance capacity. If the allocation strategy is <code>diversified</code>, the EC2 Fleet terminates instances across the Spot Instance pools. Alternatively, you can request that the EC2 Fleet keep the fleet at its current size, but not replace any Spot Instances that are interrupted or that you terminate manually. If you are finished with your EC2 Fleet for now, but will use it again later, you can set the target capacity to 0.

        :param self:
        :param Context:  Reserved.<br/>TargetCapacitySpecification:  The size of the EC2 Fleet.:<br/>FleetId:  The ID of the EC2 Fleet.<br/>LaunchTemplateConfigs:  The launch template and overrides.<br/>ExcessCapacityTerminationPolicy:  Indicates whether running instances should be terminated if the total target capacity of the EC2 Fleet is decreased below the current size of the EC2 Fleet.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultTargetCapacityType</i> The default <code>TotalTargetCapacity</code>, which is either <code>Spot</code> or <code>On-Demand</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SpotTargetCapacity</i> The number of Spot units to request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OnDemandTargetCapacity</i> The number of On-Demand units to request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalTargetCapacity</i> The number of units to request, filled using <code>DefaultTargetCapacityType</code>.<br/>
        :return: Return:  Is <code>true</code> if the request succeeds, and an error otherwise.<br/>        """
        pass

    def modify_fpga_image_attribute(self, FpgaImageId: str, DryRun: Boolean=None, Attribute: str=None, OperationType: str=None, UserIds: List[String]=None, UserGroups: List[String]=None, ProductCodes: List[String]=None, LoadPermission: LoadPermissionModifications=None, Description: str=None, Name: str=None) -> ModifyFpgaImageAttributeResult:
        r"""Modifies the specified attribute of the specified Amazon FPGA Image (AFI).

        :param self:
        :param Name:  A name for the AFI.<br/>Description:  A description for the AFI.<br/>LoadPermission:  The load permission for the AFI.:<br/>ProductCodes:  The product codes. After you add a product code to an AFI, it can't be removed. This parameter is valid only when modifying the <code>productCodes</code> attribute.<br/>UserGroups:  The user groups. This parameter is valid only when modifying the <code>loadPermission</code> attribute.<br/>UserIds:  The AWS account IDs. This parameter is valid only when modifying the <code>loadPermission</code> attribute.<br/>OperationType:  The operation type.<br/>Attribute:  The name of the attribute.<br/>FpgaImageId:  The ID of the AFI.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Remove</i> The load permissions to remove.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Add</i> The load permissions to add.<br/>
        :return: FpgaImageAttribute:  Information about the attribute.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProductCodes</i> The product codes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LoadPermissions</i> The load permissions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the AFI.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the AFI.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FpgaImageId</i> The ID of the AFI.<br/>        """
        pass

    def modify_hosts(self, HostIds: List[DedicatedHostId], AutoPlacement: str=None, HostRecovery: str=None, InstanceType: str=None, InstanceFamily: str=None) -> ModifyHostsResult:
        r"""Modify the auto-placement setting of a Dedicated Host. When auto-placement is enabled, any instances that you launch with a tenancy of <code>host</code> but without a specific host ID are placed onto any available Dedicated Host in your account that has auto-placement enabled. When auto-placement is disabled, you need to provide a host ID to have the instance launch onto a specific host. If no host ID is provided, the instance is launched onto a suitable host with auto-placement enabled. You can also use this API action to modify a Dedicated Host to support either multiple instance types in an instance family, or to support a specific instance type only.

        :param self:
        :param InstanceFamily:  Specifies the instance family to be supported by the Dedicated Host. Specify this parameter to modify a Dedicated Host to support multiple instance types within its current instance family. If you want to modify a Dedicated Host to support a specific instance type only, omit this parameter and specify <b>InstanceType</b> instead. You cannot specify <b>InstanceFamily</b> and <b>InstanceType</b> in the same request.<br/>InstanceType:  Specifies the instance type to be supported by the Dedicated Host. Specify this parameter to modify a Dedicated Host to support only a specific instance type. If you want to modify a Dedicated Host to support multiple instance types in its current instance family, omit this parameter and specify <b>InstanceFamily</b> instead. You cannot specify <b>InstanceType</b> and <b>InstanceFamily</b> in the same request.<br/>HostRecovery:  Indicates whether to enable or disable host recovery for the Dedicated Host. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-hosts-recovery.html"> Host recovery</a> in the <i>Amazon EC2 User Guide</i>.<br/>HostIds:  The IDs of the Dedicated Hosts to modify.<br/>AutoPlacement:  Specify whether to enable or disable auto-placement.<br/>
        :return: Unsuccessful:  The IDs of the Dedicated Hosts that could not be modified. Check whether the setting you requested can be used.<br/>Successful:  The IDs of the Dedicated Hosts that were successfully modified.<br/>        """
        pass

    def modify_id_format(self, UseLongIds: Boolean, Resource: str):
        r"""Modifies the ID format for the specified resource on a per-Region basis. You can specify that resources should receive longer IDs (17-character IDs) when they are created. This request can only be used to modify longer ID settings for resource types that are within the opt-in period. Resources currently in their opt-in period include: <code>bundle</code> | <code>conversion-task</code> | <code>customer-gateway</code> | <code>dhcp-options</code> | <code>elastic-ip-allocation</code> | <code>elastic-ip-association</code> | <code>export-task</code> | <code>flow-log</code> | <code>image</code> | <code>import-task</code> | <code>internet-gateway</code> | <code>network-acl</code> | <code>network-acl-association</code> | <code>network-interface</code> | <code>network-interface-attachment</code> | <code>prefix-list</code> | <code>route-table</code> | <code>route-table-association</code> | <code>security-group</code> | <code>subnet</code> | <code>subnet-cidr-block-association</code> | <code>vpc</code> | <code>vpc-cidr-block-association</code> | <code>vpc-endpoint</code> | <code>vpc-peering-connection</code> | <code>vpn-connection</code> | <code>vpn-gateway</code>. This setting applies to the IAM user who makes the request; it does not apply to the entire AWS account. By default, an IAM user defaults to the same settings as the root user. If you're using this action as the root user, then these settings apply to the entire account, unless an IAM user explicitly overrides these settings for themselves. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/resource-ids.html">Resource IDs</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>. Resources created with longer IDs are visible to all IAM roles and users, regardless of these settings and provided that they have permission to use the relevant <code>Describe</code> command for the resource type.

        :param self:
        :param UseLongIds:  Indicate whether the resource should use longer IDs (17-character IDs).<br/>Resource:  The type of resource: <code>bundle</code> | <code>conversion-task</code> | <code>customer-gateway</code> | <code>dhcp-options</code> | <code>elastic-ip-allocation</code> | <code>elastic-ip-association</code> | <code>export-task</code> | <code>flow-log</code> | <code>image</code> | <code>import-task</code> | <code>internet-gateway</code> | <code>network-acl</code> | <code>network-acl-association</code> | <code>network-interface</code> | <code>network-interface-attachment</code> | <code>prefix-list</code> | <code>route-table</code> | <code>route-table-association</code> | <code>security-group</code> | <code>subnet</code> | <code>subnet-cidr-block-association</code> | <code>vpc</code> | <code>vpc-cidr-block-association</code> | <code>vpc-endpoint</code> | <code>vpc-peering-connection</code> | <code>vpn-connection</code> | <code>vpn-gateway</code>. Alternatively, use the <code>all-current</code> option to include all resource types that are currently within their opt-in period for longer IDs.<br/>
        :return:         """
        pass

    def modify_identity_id_format(self, UseLongIds: Boolean, Resource: str, PrincipalArn: str):
        r"""Modifies the ID format of a resource for a specified IAM user, IAM role, or the root user for an account; or all IAM users, IAM roles, and the root user for an account. You can specify that resources should receive longer IDs (17-character IDs) when they are created.  This request can only be used to modify longer ID settings for resource types that are within the opt-in period. Resources currently in their opt-in period include: <code>bundle</code> | <code>conversion-task</code> | <code>customer-gateway</code> | <code>dhcp-options</code> | <code>elastic-ip-allocation</code> | <code>elastic-ip-association</code> | <code>export-task</code> | <code>flow-log</code> | <code>image</code> | <code>import-task</code> | <code>internet-gateway</code> | <code>network-acl</code> | <code>network-acl-association</code> | <code>network-interface</code> | <code>network-interface-attachment</code> | <code>prefix-list</code> | <code>route-table</code> | <code>route-table-association</code> | <code>security-group</code> | <code>subnet</code> | <code>subnet-cidr-block-association</code> | <code>vpc</code> | <code>vpc-cidr-block-association</code> | <code>vpc-endpoint</code> | <code>vpc-peering-connection</code> | <code>vpn-connection</code> | <code>vpn-gateway</code>.  For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/resource-ids.html">Resource IDs</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.  This setting applies to the principal specified in the request; it does not apply to the principal that makes the request.  Resources created with longer IDs are visible to all IAM roles and users, regardless of these settings and provided that they have permission to use the relevant <code>Describe</code> command for the resource type.

        :param self:
        :param UseLongIds:  Indicates whether the resource should use longer IDs (17-character IDs)<br/>Resource:  The type of resource: <code>bundle</code> | <code>conversion-task</code> | <code>customer-gateway</code> | <code>dhcp-options</code> | <code>elastic-ip-allocation</code> | <code>elastic-ip-association</code> | <code>export-task</code> | <code>flow-log</code> | <code>image</code> | <code>import-task</code> | <code>internet-gateway</code> | <code>network-acl</code> | <code>network-acl-association</code> | <code>network-interface</code> | <code>network-interface-attachment</code> | <code>prefix-list</code> | <code>route-table</code> | <code>route-table-association</code> | <code>security-group</code> | <code>subnet</code> | <code>subnet-cidr-block-association</code> | <code>vpc</code> | <code>vpc-cidr-block-association</code> | <code>vpc-endpoint</code> | <code>vpc-peering-connection</code> | <code>vpn-connection</code> | <code>vpn-gateway</code>. Alternatively, use the <code>all-current</code> option to include all resource types that are currently within their opt-in period for longer IDs.<br/>PrincipalArn:  The ARN of the principal, which can be an IAM user, IAM role, or the root user. Specify <code>all</code> to modify the ID format for all IAM users, IAM roles, and the root user of the account.<br/>
        :return:         """
        pass

    def modify_image_attribute(self, ImageId: str, Attribute: str=None, Description: AttributeValue=None, LaunchPermission: LaunchPermissionModifications=None, OperationType: str=None, ProductCodes: List[String]=None, UserGroups: List[String]=None, UserIds: List[String]=None, Value: str=None, DryRun: Boolean=None):
        r"""Modifies the specified attribute of the specified AMI. You can specify only one attribute at a time. You can use the <code>Attribute</code> parameter to specify the attribute or one of the following parameters: <code>Description</code>, <code>LaunchPermission</code>, or <code>ProductCode</code>. AWS Marketplace product codes cannot be modified. Images with an AWS Marketplace product code cannot be made public. To enable the SriovNetSupport enhanced networking attribute of an image, enable SriovNetSupport on an instance and create an AMI from the instance.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>Value:  The value of the attribute being modified. This parameter can be used only when the <code>Attribute</code> parameter is <code>description</code> or <code>productCodes</code>.<br/>UserIds:  The AWS account IDs. This parameter can be used only when the <code>Attribute</code> parameter is <code>launchPermission</code>.<br/>UserGroups:  The user groups. This parameter can be used only when the <code>Attribute</code> parameter is <code>launchPermission</code>.<br/>ProductCodes:  The DevPay product codes. After you add a product code to an AMI, it can't be removed.<br/>OperationType:  The operation type. This parameter can be used only when the <code>Attribute</code> parameter is <code>launchPermission</code>.<br/>LaunchPermission:  A new launch permission for the AMI.:<br/>ImageId:  The ID of the AMI.<br/>Description:  A new description for the AMI.:<br/>Attribute:  The name of the attribute to modify. The valid values are <code>description</code>, <code>launchPermission</code>, and <code>productCodes</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Value</i> The attribute value. The value is case-sensitive.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Remove</i> The AWS account ID to remove from the list of launch permissions for the AMI.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Add</i> The AWS account ID to add to the list of launch permissions for the AMI.<br/>
        :return:         """
        pass

    def modify_instance_attribute(self, InstanceId: str, SourceDestCheck: AttributeBooleanValue=None, Attribute: str=None, BlockDeviceMappings: List[InstanceBlockDeviceMappingSpecification]=None, DisableApiTermination: AttributeBooleanValue=None, DryRun: Boolean=None, EbsOptimized: AttributeBooleanValue=None, EnaSupport: AttributeBooleanValue=None, Groups: List[String]=None, InstanceInitiatedShutdownBehavior: AttributeValue=None, InstanceType: AttributeValue=None, Kernel: AttributeValue=None, Ramdisk: AttributeValue=None, SriovNetSupport: AttributeValue=None, UserData: BlobAttributeValue=None, Value: str=None):
        r"""Modifies the specified attribute of the specified instance. You can specify only one attribute at a time.  <b>Note: </b>Using this action to change the security groups associated with an elastic network interface (ENI) attached to an instance in a VPC can result in an error if the instance has more than one ENI. To change the security groups associated with an ENI attached to an instance that has multiple ENIs, we recommend that you use the <a>ModifyNetworkInterfaceAttribute</a> action. To modify some attributes, the instance must be stopped. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_ChangingAttributesWhileInstanceStopped.html">Modifying attributes of a stopped instance</a> in the <i>Amazon EC2 User Guide</i>.

        :param self:
        :param Value:  A new value for the attribute. Use only with the <code>kernel</code>, <code>ramdisk</code>, <code>userData</code>, <code>disableApiTermination</code>, or <code>instanceInitiatedShutdownBehavior</code> attribute.<br/>UserData:  Changes the instance's user data to the specified value. If you are using an Amazon Web Services SDK or command line tool, base64-encoding is performed for you, and you can load the text from a file. Otherwise, you must provide base64-encoded text.:<br/>SriovNetSupport:  Set to <code>simple</code> to enable enhanced networking with the Intel 82599 Virtual Function interface for the instance. There is no way to disable enhanced networking with the Intel 82599 Virtual Function interface at this time. This option is supported only for HVM instances. Specifying this option with a PV instance can make it unreachable.:<br/>Ramdisk:  Changes the instance's RAM disk to the specified value. We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedKernels.html">PV-GRUB</a>.:<br/>Kernel:  Changes the instance's kernel to the specified value. We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedKernels.html">PV-GRUB</a>.:<br/>InstanceType:  Changes the instance type to the specified value. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html">Instance types</a> in the <i>Amazon EC2 User Guide</i>. If the instance type is not valid, the error returned is <code>InvalidInstanceAttributeValue</code>.:<br/>InstanceInitiatedShutdownBehavior:  Specifies whether an instance stops or terminates when you initiate shutdown from the instance (using the operating system command for system shutdown).:<br/>InstanceId:  The ID of the instance.<br/>Groups:  [EC2-VPC] Replaces the security groups of the instance with the specified security groups. You must specify at least one security group, even if it's just the default security group for the VPC. You must specify the security group ID, not the security group name.<br/>EnaSupport:  Set to <code>true</code> to enable enhanced networking with ENA for the instance. This option is supported only for HVM instances. Specifying this option with a PV instance can make it unreachable.:<br/>EbsOptimized:  Specifies whether the instance is optimized for Amazon EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS Optimized instance.:<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>DisableApiTermination:  If the value is <code>true</code>, you can't terminate the instance using the Amazon EC2 console, CLI, or API; otherwise, you can. You cannot use this parameter for Spot Instances.:<br/>BlockDeviceMappings:  Modifies the <code>DeleteOnTermination</code> attribute for volumes that are currently attached. The volume must be owned by the caller. If no value is specified for <code>DeleteOnTermination</code>, the default is <code>true</code> and the volume is deleted when the instance is terminated. To add instance store volumes to an Amazon EBS-backed instance, you must add them when you launch the instance. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/block-device-mapping-concepts.html#Using_OverridingAMIBDM">Updating the block device mapping when launching an instance</a> in the <i>Amazon EC2 User Guide</i>.<br/>Attribute:  The name of the attribute.<br/>SourceDestCheck:  Enable or disable source/destination checks, which ensure that the instance is either the source or the destination of any traffic that it receives. If the value is <code>true</code>, source/destination checks are enabled; otherwise, they are disabled. The default value is <code>true</code>. You must disable source/destination checks if the instance runs services such as network address translation, routing, or firewalls.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Value</i> The attribute value. The valid values are <code>true</code> or <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Value</i> The attribute value. The valid values are <code>true</code> or <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Value</i> The attribute value. The valid values are <code>true</code> or <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Value</i> The attribute value. The valid values are <code>true</code> or <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Value</i> The attribute value. The value is case-sensitive.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Value</i> The attribute value. The value is case-sensitive.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Value</i> The attribute value. The value is case-sensitive.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Value</i> The attribute value. The value is case-sensitive.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Value</i> The attribute value. The value is case-sensitive.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Value</i> <br/>
        :return:         """
        pass

    def modify_instance_capacity_reservation_attributes(self, CapacityReservationSpecification: CapacityReservationSpecification, InstanceId: str, DryRun: Boolean=None) -> ModifyInstanceCapacityReservationAttributesResult:
        r"""Modifies the Capacity Reservation settings for a stopped instance. Use this action to configure an instance to target a specific Capacity Reservation, run in any <code>open</code> Capacity Reservation with matching attributes, or run On-Demand Instance capacity.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>CapacityReservationSpecification:  Information about the Capacity Reservation targeting option.:<br/>InstanceId:  The ID of the instance to be modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CapacityReservationTarget</i> Information about the target Capacity Reservation or Capacity Reservation group.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CapacityReservationTarget</b>: Information about the target Capacity Reservation or Capacity Reservation group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CapacityReservationPreference</i> Indicates the instance's Capacity Reservation preferences. Possible preferences include: <ul> <li>  <code>open</code> - The instance can run in any <code>open</code> Capacity Reservation that has matching attributes (instance type, platform, Availability Zone). </li> <li>  <code>none</code> - The instance avoids running in a Capacity Reservation even if one is available. The instance runs as an On-Demand Instance. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CapacityReservationResourceGroupArn</i> The ARN of the Capacity Reservation resource group in which to run the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CapacityReservationId</i> The ID of the Capacity Reservation in which to run the instance.<br/>
        :return: Return:  Returns <code>true</code> if the request succeeds; otherwise, it returns an error.<br/>        """
        pass

    def modify_instance_credit_specification(self, InstanceCreditSpecifications: List[InstanceCreditSpecificationRequest], DryRun: Boolean=None, ClientToken: str=None) -> ModifyInstanceCreditSpecificationResult:
        r"""Modifies the credit option for CPU usage on a running or stopped burstable performance instance. The credit options are <code>standard</code> and <code>unlimited</code>. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html">Burstable performance instances</a> in the <i>Amazon EC2 User Guide</i>.

        :param self:
        :param InstanceCreditSpecifications:  Information about the credit option for CPU usage.<br/>ClientToken:  A unique, case-sensitive token that you provide to ensure idempotency of your modification request. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html">Ensuring Idempotency</a>.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: UnsuccessfulInstanceCreditSpecifications:  Information about the instances whose credit option for CPU usage was not modified.<br/>SuccessfulInstanceCreditSpecifications:  Information about the instances whose credit option for CPU usage was successfully modified.<br/>        """
        pass

    def modify_instance_event_start_time(self, NotBefore: DateTime, InstanceEventId: str, InstanceId: str, DryRun: Boolean=None) -> ModifyInstanceEventStartTimeResult:
        r"""Modifies the start time for a scheduled Amazon EC2 instance event.

        :param self:
        :param NotBefore:  The new date and time when the event will take place.<br/>InstanceEventId:  The ID of the event whose date and time you are modifying.<br/>InstanceId:  The ID of the instance with the scheduled event.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: Event:  Describes a scheduled event for an instance.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NotBeforeDeadline</i> The deadline for starting the event.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NotBefore</i> The earliest scheduled start time for the event.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NotAfter</i> The latest scheduled end time for the event.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A description of the event. After a scheduled event is completed, it can still be described for up to a week. If the event has been completed, this description starts with the following text: [Completed].<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Code</i> The event code.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceEventId</i> The ID of the event.<br/>        """
        pass

    def modify_instance_metadata_options(self, InstanceId: str, HttpTokens: str=None, HttpPutResponseHopLimit: int=None, HttpEndpoint: str=None, DryRun: Boolean=None) -> ModifyInstanceMetadataOptionsResult:
        r"""Modify the instance metadata parameters on a running or stopped instance. When you modify the parameters on a stopped instance, they are applied when the instance is started. When you modify the parameters on a running instance, the API responds with a state of “pending”. After the parameter modifications are successfully applied to the instance, the state of the modifications changes from “pending” to “applied” in subsequent describe-instances API calls. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html">Instance metadata and user data</a> in the <i>Amazon EC2 User Guide</i>.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>HttpEndpoint:  This parameter enables or disables the HTTP metadata endpoint on your instances. If the parameter is not specified, the existing state is maintained. <note> If you specify a value of <code>disabled</code>, you will not be able to access your instance metadata. </note><br/>HttpPutResponseHopLimit:  The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. If no parameter is specified, the existing state is maintained. Possible values: Integers from 1 to 64<br/>HttpTokens:  The state of token usage for your instance metadata requests. If the parameter is not specified in the request, the default state is <code>optional</code>. If the state is <code>optional</code>, you can choose to retrieve instance metadata with or without a signed token header on your request. If you retrieve the IAM role credentials without a token, the version 1.0 role credentials are returned. If you retrieve the IAM role credentials using a valid signed token, the version 2.0 role credentials are returned. If the state is <code>required</code>, you must send a signed token header with any instance metadata retrieval requests. In this state, retrieving the IAM role credential always returns the version 2.0 credentials; the version 1.0 credentials are not available.<br/>InstanceId:  The ID of the instance.<br/>
        :return: InstanceMetadataOptions:  The metadata options for the instance.:<br/>InstanceId:  The ID of the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HttpEndpoint</i> This parameter enables or disables the HTTP metadata endpoint on your instances. If the parameter is not specified, the default state is <code>enabled</code>. <note> If you specify a value of <code>disabled</code>, you will not be able to access your instance metadata. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HttpPutResponseHopLimit</i> The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Default: 1 Possible values: Integers from 1 to 64<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HttpTokens</i> The state of token usage for your instance metadata requests. If the parameter is not specified in the request, the default state is <code>optional</code>. If the state is <code>optional</code>, you can choose to retrieve instance metadata with or without a signed token header on your request. If you retrieve the IAM role credentials without a token, the version 1.0 role credentials are returned. If you retrieve the IAM role credentials using a valid signed token, the version 2.0 role credentials are returned. If the state is <code>required</code>, you must send a signed token header with any instance metadata retrieval requests. In this state, retrieving the IAM role credential always returns the version 2.0 credentials; the version 1.0 credentials are not available.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the metadata option changes.  <code>pending</code> - The metadata options are being updated and the instance is not ready to process metadata traffic with the new selection.  <code>applied</code> - The metadata options have been successfully applied on the instance.<br/>        """
        pass

    def modify_instance_placement(self, InstanceId: str, Affinity: str=None, GroupName: str=None, HostId: str=None, Tenancy: str=None, PartitionNumber: int=None, HostResourceGroupArn: str=None) -> ModifyInstancePlacementResult:
        r"""Modifies the placement attributes for a specified instance. You can do the following: <ul> <li> Modify the affinity between an instance and a <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-hosts-overview.html">Dedicated Host</a>. When affinity is set to <code>host</code> and the instance is not associated with a specific Dedicated Host, the next time the instance is launched, it is automatically associated with the host on which it lands. If the instance is restarted or rebooted, this relationship persists. </li> <li> Change the Dedicated Host with which an instance is associated. </li> <li> Change the instance tenancy of an instance from <code>host</code> to <code>dedicated</code>, or from <code>dedicated</code> to <code>host</code>. </li> <li> Move an instance to or from a <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html">placement group</a>. </li> </ul> At least one attribute for affinity, host ID, tenancy, or placement group name must be specified in the request. Affinity and tenancy can be modified in the same request. To modify the host ID, tenancy, placement group, or partition for an instance, the instance must be in the <code>stopped</code> state.

        :param self:
        :param HostResourceGroupArn:  The ARN of the host resource group in which to place the instance.<br/>PartitionNumber:  Reserved for future use.<br/>Tenancy:  The tenancy for the instance.<br/>InstanceId:  The ID of the instance that you are modifying.<br/>HostId:  The ID of the Dedicated Host with which to associate the instance.<br/>GroupName:  The name of the placement group in which to place the instance. For spread placement groups, the instance must have a tenancy of <code>default</code>. For cluster and partition placement groups, the instance must have a tenancy of <code>default</code> or <code>dedicated</code>. To remove an instance from a placement group, specify an empty string ("").<br/>Affinity:  The affinity setting for the instance.<br/>
        :return: Return:  Is <code>true</code> if the request succeeds, and an error otherwise.<br/>        """
        pass

    def modify_launch_template(self, DryRun: Boolean=None, ClientToken: str=None, LaunchTemplateId: str=None, LaunchTemplateName: str=None, DefaultVersion: str=None) -> ModifyLaunchTemplateResult:
        r"""Modifies a launch template. You can specify which version of the launch template to set as the default version. When launching an instance, the default version applies when a launch template version is not specified.

        :param self:
        :param DefaultVersion:  The version number of the launch template to set as the default version.<br/>LaunchTemplateName:  The name of the launch template. You must specify either the launch template ID or launch template name in the request.<br/>LaunchTemplateId:  The ID of the launch template. You must specify either the launch template ID or launch template name in the request.<br/>ClientToken:  Unique, case-sensitive identifier you provide to ensure the idempotency of the request. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html">Ensuring Idempotency</a>. Constraint: Maximum 128 ASCII characters.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: LaunchTemplate:  Information about the launch template.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The tags for the launch template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestVersionNumber</i> The version number of the latest version of the launch template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultVersionNumber</i> The version number of the default version of the launch template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedBy</i> The principal that created the launch template. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreateTime</i> The time launch template was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LaunchTemplateName</i> The name of the launch template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LaunchTemplateId</i> The ID of the launch template.<br/>        """
        pass

    def modify_managed_prefix_list(self, PrefixListId: str, DryRun: Boolean=None, CurrentVersion: Long=None, PrefixListName: str=None, AddEntries: List[AddPrefixListEntry]=None, RemoveEntries: List[RemovePrefixListEntry]=None) -> ModifyManagedPrefixListResult:
        r"""Modifies the specified managed prefix list. Adding or removing entries in a prefix list creates a new version of the prefix list. Changing the name of the prefix list does not affect the version. If you specify a current version number that does not match the true current version number, the request fails.

        :param self:
        :param RemoveEntries:  One or more entries to remove from the prefix list.<br/>AddEntries:  One or more entries to add to the prefix list.<br/>PrefixListName:  A name for the prefix list.<br/>CurrentVersion:  The current version of the prefix list.<br/>PrefixListId:  The ID of the prefix list.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: PrefixList:  Information about the prefix list.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> The ID of the owner of the prefix list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The tags for the prefix list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The version of the prefix list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxEntries</i> The maximum number of entries for the prefix list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PrefixListName</i> The name of the prefix list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PrefixListArn</i> The Amazon Resource Name (ARN) for the prefix list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StateMessage</i> The state message.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the prefix list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AddressFamily</i> The IP address version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PrefixListId</i> The ID of the prefix list.<br/>        """
        pass

    def modify_network_interface_attribute(self, NetworkInterfaceId: str, Attachment: NetworkInterfaceAttachmentChanges=None, Description: AttributeValue=None, DryRun: Boolean=None, Groups: List[SecurityGroupId]=None, SourceDestCheck: AttributeBooleanValue=None):
        r"""Modifies the specified network interface attribute. You can specify only one attribute at a time. You can use this action to attach and detach security groups from an existing EC2 instance.

        :param self:
        :param SourceDestCheck:  Enable or disable source/destination checks, which ensure that the instance is either the source or the destination of any traffic that it receives. If the value is <code>true</code>, source/destination checks are enabled; otherwise, they are disabled. The default value is <code>true</code>. You must disable source/destination checks if the instance runs services such as network address translation, routing, or firewalls.:<br/>NetworkInterfaceId:  The ID of the network interface.<br/>Groups:  Changes the security groups for the network interface. The new set of groups you specify replaces the current set. You must specify at least one group, even if it's just the default security group in the VPC. You must specify the ID of the security group, not the name.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>Description:  A description for the network interface.:<br/>Attachment:  Information about the interface attachment. If modifying the 'delete on termination' attribute, you must specify the ID of the interface attachment.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeleteOnTermination</i> Indicates whether the network interface is deleted when the instance is terminated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AttachmentId</i> The ID of the network interface attachment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Value</i> The attribute value. The value is case-sensitive.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Value</i> The attribute value. The valid values are <code>true</code> or <code>false</code>.<br/>
        :return:         """
        pass

    def modify_reserved_instances(self, TargetConfigurations: List[ReservedInstancesConfiguration], ReservedInstancesIds: List[ReservationId], ClientToken: str=None) -> ModifyReservedInstancesResult:
        r"""Modifies the Availability Zone, instance count, instance type, or network platform (EC2-Classic or EC2-VPC) of your Reserved Instances. The Reserved Instances to be modified must be identical, except for Availability Zone, network platform, and instance type. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-modifying.html">Modifying Reserved Instances</a> in the <i>Amazon EC2 User Guide</i>.

        :param self:
        :param TargetConfigurations:  The configuration settings for the Reserved Instances to modify.<br/>ClientToken:  A unique, case-sensitive token you provide to ensure idempotency of your modification request. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html">Ensuring Idempotency</a>.<br/>ReservedInstancesIds:  The IDs of the Reserved Instances to modify.<br/>
        :return: ReservedInstancesModificationId:  The ID for the modification.<br/>        """
        pass

    def modify_security_group_rules(self, SecurityGroupRules: List[SecurityGroupRuleUpdate], GroupId: str, DryRun: Boolean=None) -> ModifySecurityGroupRulesResult:
        r"""Modifies the rules of a security group.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>SecurityGroupRules:  Information about the security group properties to update.<br/>GroupId:  The ID of the security group.<br/>
        :return: Return:  Returns <code>true</code> if the request succeeds; otherwise, returns an error.<br/>        """
        pass

    def modify_snapshot_attribute(self, SnapshotId: str, Attribute: str=None, CreateVolumePermission: CreateVolumePermissionModifications=None, GroupNames: List[SecurityGroupName]=None, OperationType: str=None, UserIds: List[String]=None, DryRun: Boolean=None):
        r"""Adds or removes permission settings for the specified snapshot. You may add or remove specified AWS account IDs from a snapshot's list of create volume permissions, but you cannot do both in a single operation. If you need to both add and remove account IDs for a snapshot, you must use multiple operations. You can make up to 500 modifications to a snapshot in a single operation. Encrypted snapshots and snapshots with AWS Marketplace product codes cannot be made public. Snapshots encrypted with your default CMK cannot be shared with other accounts. For more information about modifying snapshot permissions, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-modifying-snapshot-permissions.html">Sharing snapshots</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>UserIds:  The account ID to modify for the snapshot.<br/>SnapshotId:  The ID of the snapshot.<br/>OperationType:  The type of operation to perform to the attribute.<br/>GroupNames:  The group to modify for the snapshot.<br/>CreateVolumePermission:  A JSON representation of the snapshot attribute modification.:<br/>Attribute:  The snapshot attribute to modify. Only volume creation permissions can be modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Remove</i> Removes the specified AWS account ID or group from the list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Add</i> Adds the specified AWS account ID or group to the list.<br/>
        :return:         """
        pass

    def modify_spot_fleet_request(self, SpotFleetRequestId: str, ExcessCapacityTerminationPolicy: str=None, LaunchTemplateConfigs: List[LaunchTemplateConfig]=None, TargetCapacity: int=None, OnDemandTargetCapacity: int=None, Context: str=None) -> ModifySpotFleetRequestResponse:
        r"""Modifies the specified Spot Fleet request. You can only modify a Spot Fleet request of type <code>maintain</code>. While the Spot Fleet request is being modified, it is in the <code>modifying</code> state. To scale up your Spot Fleet, increase its target capacity. The Spot Fleet launches the additional Spot Instances according to the allocation strategy for the Spot Fleet request. If the allocation strategy is <code>lowestPrice</code>, the Spot Fleet launches instances using the Spot Instance pool with the lowest price. If the allocation strategy is <code>diversified</code>, the Spot Fleet distributes the instances across the Spot Instance pools. If the allocation strategy is <code>capacityOptimized</code>, Spot Fleet launches instances from Spot Instance pools with optimal capacity for the number of instances that are launching. To scale down your Spot Fleet, decrease its target capacity. First, the Spot Fleet cancels any open requests that exceed the new target capacity. You can request that the Spot Fleet terminate Spot Instances until the size of the fleet no longer exceeds the new target capacity. If the allocation strategy is <code>lowestPrice</code>, the Spot Fleet terminates the instances with the highest price per unit. If the allocation strategy is <code>capacityOptimized</code>, the Spot Fleet terminates the instances in the Spot Instance pools that have the least available Spot Instance capacity. If the allocation strategy is <code>diversified</code>, the Spot Fleet terminates instances across the Spot Instance pools. Alternatively, you can request that the Spot Fleet keep the fleet at its current size, but not replace any Spot Instances that are interrupted or that you terminate manually. If you are finished with your Spot Fleet for now, but will use it again later, you can set the target capacity to 0.

        :param self:
        :param Context:  Reserved.<br/>OnDemandTargetCapacity:  The number of On-Demand Instances in the fleet.<br/>TargetCapacity:  The size of the fleet.<br/>SpotFleetRequestId:  The ID of the Spot Fleet request.<br/>LaunchTemplateConfigs:  The launch template and overrides. You can only use this parameter if you specified a launch template (<code>LaunchTemplateConfigs</code>) in your Spot Fleet request. If you specified <code>LaunchSpecifications</code> in your Spot Fleet request, then omit this parameter.<br/>ExcessCapacityTerminationPolicy:  Indicates whether running Spot Instances should be terminated if the target capacity of the Spot Fleet request is decreased below the current size of the Spot Fleet.<br/>
        :return: Return:  Is <code>true</code> if the request succeeds, and an error otherwise.<br/>        """
        pass

    def modify_subnet_attribute(self, SubnetId: str, AssignIpv6AddressOnCreation: AttributeBooleanValue=None, MapPublicIpOnLaunch: AttributeBooleanValue=None, MapCustomerOwnedIpOnLaunch: AttributeBooleanValue=None, CustomerOwnedIpv4Pool: str=None):
        r"""Modifies a subnet attribute. You can only modify one attribute at a time.

        :param self:
        :param CustomerOwnedIpv4Pool:  The customer-owned IPv4 address pool associated with the subnet. You must set this value when you specify <code>true</code> for <code>MapCustomerOwnedIpOnLaunch</code>.<br/>MapCustomerOwnedIpOnLaunch:  Specify <code>true</code> to indicate that network interfaces attached to instances created in the specified subnet should be assigned a customer-owned IPv4 address. When this value is <code>true</code>, you must specify the customer-owned IP pool using <code>CustomerOwnedIpv4Pool</code>.:<br/>SubnetId:  The ID of the subnet.<br/>MapPublicIpOnLaunch:  Specify <code>true</code> to indicate that network interfaces attached to instances created in the specified subnet should be assigned a public IPv4 address.:<br/>AssignIpv6AddressOnCreation:  Specify <code>true</code> to indicate that network interfaces created in the specified subnet should be assigned an IPv6 address. This includes a network interface that's created when launching an instance into the subnet (the instance therefore receives an IPv6 address).  If you enable the IPv6 addressing feature for your subnet, your network interface or instance only receives an IPv6 address if it's created using version <code>2016-11-15</code> or later of the Amazon EC2 API.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Value</i> The attribute value. The valid values are <code>true</code> or <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Value</i> The attribute value. The valid values are <code>true</code> or <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Value</i> The attribute value. The valid values are <code>true</code> or <code>false</code>.<br/>
        :return:         """
        pass

    def modify_traffic_mirror_filter_network_services(self, TrafficMirrorFilterId: str, AddNetworkServices: List[TrafficMirrorNetworkService]=None, RemoveNetworkServices: List[TrafficMirrorNetworkService]=None, DryRun: Boolean=None) -> ModifyTrafficMirrorFilterNetworkServicesResult:
        r"""Allows or restricts mirroring network services.  By default, Amazon DNS network services are not eligible for Traffic Mirror. Use <code>AddNetworkServices</code> to add network services to a Traffic Mirror filter. When a network service is added to the Traffic Mirror filter, all traffic related to that network service will be mirrored. When you no longer want to mirror network services, use <code>RemoveNetworkServices</code> to remove the network services from the Traffic Mirror filter.  For information about filter rule properties, see <a href="https://docs.aws.amazon.com/vpc/latest/mirroring/traffic-mirroring-considerations.html">Network Services</a> in the <i>Traffic Mirroring User Guide </i>.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>RemoveNetworkServices:  The network service, for example Amazon DNS, that you no longer want to mirror.<br/>AddNetworkServices:  The network service, for example Amazon DNS, that you want to mirror.<br/>TrafficMirrorFilterId:  The ID of the Traffic Mirror filter.<br/>
        :return: TrafficMirrorFilter:  The Traffic Mirror filter that the network service is associated with.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The tags assigned to the Traffic Mirror filter.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the Traffic Mirror filter.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkServices</i> The network service traffic that is associated with the Traffic Mirror filter.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EgressFilterRules</i> Information about the egress rules that are associated with the Traffic Mirror filter.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IngressFilterRules</i> Information about the ingress rules that are associated with the Traffic Mirror filter.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TrafficMirrorFilterId</i> The ID of the Traffic Mirror filter.<br/>        """
        pass

    def modify_traffic_mirror_filter_rule(self, TrafficMirrorFilterRuleId: str, TrafficDirection: str=None, RuleNumber: int=None, RuleAction: str=None, DestinationPortRange: TrafficMirrorPortRangeRequest=None, SourcePortRange: TrafficMirrorPortRangeRequest=None, Protocol: int=None, DestinationCidrBlock: str=None, SourceCidrBlock: str=None, Description: str=None, RemoveFields: List[TrafficMirrorFilterRuleField]=None, DryRun: Boolean=None) -> ModifyTrafficMirrorFilterRuleResult:
        r"""Modifies the specified Traffic Mirror rule.  <code>DestinationCidrBlock</code> and <code>SourceCidrBlock</code> must both be an IPv4 range or an IPv6 range.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>RemoveFields:  The properties that you want to remove from the Traffic Mirror filter rule. When you remove a property from a Traffic Mirror filter rule, the property is set to the default.<br/>Description:  The description to assign to the Traffic Mirror rule.<br/>SourceCidrBlock:  The source CIDR block to assign to the Traffic Mirror rule.<br/>DestinationCidrBlock:  The destination CIDR block to assign to the Traffic Mirror rule.<br/>Protocol:  The protocol, for example TCP, to assign to the Traffic Mirror rule.<br/>SourcePortRange:  The port range to assign to the Traffic Mirror rule.:<br/>DestinationPortRange:  The destination ports that are associated with the Traffic Mirror rule.:<br/>RuleAction:  The action to assign to the rule.<br/>RuleNumber:  The number of the Traffic Mirror rule. This number must be unique for each Traffic Mirror rule in a given direction. The rules are processed in ascending order by rule number.<br/>TrafficDirection:  The type of traffic (<code>ingress</code> | <code>egress</code>) to assign to the rule.<br/>TrafficMirrorFilterRuleId:  The ID of the Traffic Mirror rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ToPort</i> The last port in the Traffic Mirror port range. This applies to the TCP and UDP protocols.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FromPort</i> The first port in the Traffic Mirror port range. This applies to the TCP and UDP protocols.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ToPort</i> The last port in the Traffic Mirror port range. This applies to the TCP and UDP protocols.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FromPort</i> The first port in the Traffic Mirror port range. This applies to the TCP and UDP protocols.<br/>
        :return: TrafficMirrorFilterRule:  Modifies a Traffic Mirror rule.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the Traffic Mirror rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceCidrBlock</i> The source CIDR block assigned to the Traffic Mirror rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DestinationCidrBlock</i> The destination CIDR block assigned to the Traffic Mirror rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourcePortRange</i> The source port range assigned to the Traffic Mirror rule.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SourcePortRange</b>: The source port range assigned to the Traffic Mirror rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DestinationPortRange</i> The destination port range assigned to the Traffic Mirror rule.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DestinationPortRange</b>: The destination port range assigned to the Traffic Mirror rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Protocol</i> The protocol assigned to the Traffic Mirror rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RuleAction</i> The action assigned to the Traffic Mirror rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RuleNumber</i> The rule number of the Traffic Mirror rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TrafficDirection</i> The traffic direction assigned to the Traffic Mirror rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TrafficMirrorFilterId</i> The ID of the Traffic Mirror filter that the rule is associated with.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TrafficMirrorFilterRuleId</i> The ID of the Traffic Mirror rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ToPort</i> The end of the Traffic Mirror port range. This applies to the TCP and UDP protocols.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FromPort</i> The start of the Traffic Mirror port range. This applies to the TCP and UDP protocols.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ToPort</i> The end of the Traffic Mirror port range. This applies to the TCP and UDP protocols.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FromPort</i> The start of the Traffic Mirror port range. This applies to the TCP and UDP protocols.<br/>        """
        pass

    def modify_traffic_mirror_session(self, TrafficMirrorSessionId: str, TrafficMirrorTargetId: str=None, TrafficMirrorFilterId: str=None, PacketLength: int=None, SessionNumber: int=None, VirtualNetworkId: int=None, Description: str=None, RemoveFields: List[TrafficMirrorSessionField]=None, DryRun: Boolean=None) -> ModifyTrafficMirrorSessionResult:
        r"""Modifies a Traffic Mirror session.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>RemoveFields:  The properties that you want to remove from the Traffic Mirror session. When you remove a property from a Traffic Mirror session, the property is set to the default.<br/>Description:  The description to assign to the Traffic Mirror session.<br/>VirtualNetworkId:  The virtual network ID of the Traffic Mirror session.<br/>SessionNumber:  The session number determines the order in which sessions are evaluated when an interface is used by multiple sessions. The first session with a matching filter is the one that mirrors the packets. Valid values are 1-32766.<br/>PacketLength:  The number of bytes in each packet to mirror. These are bytes after the VXLAN header. To mirror a subset, set this to the length (in bytes) to mirror. For example, if you set this value to 100, then the first 100 bytes that meet the filter criteria are copied to the target. Do not specify this parameter when you want to mirror the entire packet.<br/>TrafficMirrorFilterId:  The ID of the Traffic Mirror filter.<br/>TrafficMirrorTargetId:  The Traffic Mirror target. The target must be in the same VPC as the source, or have a VPC peering connection with the source.<br/>TrafficMirrorSessionId:  The ID of the Traffic Mirror session.<br/>
        :return: TrafficMirrorSession:  Information about the Traffic Mirror session.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The tags assigned to the Traffic Mirror session.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the Traffic Mirror session.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VirtualNetworkId</i> The virtual network ID associated with the Traffic Mirror session.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SessionNumber</i> The session number determines the order in which sessions are evaluated when an interface is used by multiple sessions. The first session with a matching filter is the one that mirrors the packets. Valid values are 1-32766.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PacketLength</i> The number of bytes in each packet to mirror. These are the bytes after the VXLAN header. To mirror a subset, set this to the length (in bytes) to mirror. For example, if you set this value to 100, then the first 100 bytes that meet the filter criteria are copied to the target. Do not specify this parameter when you want to mirror the entire packet<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> The ID of the account that owns the Traffic Mirror session.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkInterfaceId</i> The ID of the Traffic Mirror session's network interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TrafficMirrorFilterId</i> The ID of the Traffic Mirror filter.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TrafficMirrorTargetId</i> The ID of the Traffic Mirror target.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TrafficMirrorSessionId</i> The ID for the Traffic Mirror session.<br/>        """
        pass

    def modify_transit_gateway(self, TransitGatewayId: str, Description: str=None, Options: ModifyTransitGatewayOptions=None, DryRun: Boolean=None) -> ModifyTransitGatewayResult:
        r"""Modifies the specified transit gateway. When you modify a transit gateway, the modified options are applied to new transit gateway attachments only. Your existing transit gateway attachments are not modified.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>Options:  The options to modify.:<br/>Description:  The description for the transit gateway.<br/>TransitGatewayId:  The ID of the transit gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PropagationDefaultRouteTableId</i> The ID of the default propagation route table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultRouteTablePropagation</i> Enable or disable automatic propagation of routes to the default propagation route table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociationDefaultRouteTableId</i> The ID of the default association route table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultRouteTableAssociation</i> Enable or disable automatic association with the default association route table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoAcceptSharedAttachments</i> Enable or disable automatic acceptance of attachment requests.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DnsSupport</i> Enable or disable DNS support.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpnEcmpSupport</i> Enable or disable Equal Cost Multipath Protocol support.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RemoveTransitGatewayCidrBlocks</i> Removes CIDR blocks for the transit gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AddTransitGatewayCidrBlocks</i> Adds IPv4 or IPv6 CIDR blocks for the transit gateway. Must be a size /24 CIDR block or larger for IPv4, or a size /64 CIDR block or larger for IPv6.<br/>
        :return: TransitGateway:  Describes a transit gateway.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The tags for the transit gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Options</i> The transit gateway options.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Options</b>: The transit gateway options.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The creation time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the transit gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> The ID of the AWS account ID that owns the transit gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the transit gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayArn</i> The Amazon Resource Name (ARN) of the transit gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayId</i> The ID of the transit gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MulticastSupport</i> Indicates whether multicast is enabled on the transit gateway<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DnsSupport</i> Indicates whether DNS support is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VpnEcmpSupport</i> Indicates whether Equal Cost Multipath Protocol support is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PropagationDefaultRouteTableId</i> The ID of the default propagation route table.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultRouteTablePropagation</i> Indicates whether resource attachments automatically propagate routes to the default propagation route table.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociationDefaultRouteTableId</i> The ID of the default association route table.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultRouteTableAssociation</i> Indicates whether resource attachments are automatically associated with the default association route table.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoAcceptSharedAttachments</i> Indicates whether attachment requests are automatically accepted.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayCidrBlocks</i> The transit gateway CIDR blocks.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AmazonSideAsn</i> A private Autonomous System Number (ASN) for the Amazon side of a BGP session. The range is 64512 to 65534 for 16-bit ASNs and 4200000000 to 4294967294 for 32-bit ASNs.<br/>        """
        pass

    def modify_transit_gateway_prefix_list_reference(self, PrefixListId: str, TransitGatewayRouteTableId: str, TransitGatewayAttachmentId: str=None, Blackhole: Boolean=None, DryRun: Boolean=None) -> ModifyTransitGatewayPrefixListReferenceResult:
        r"""Modifies a reference (route) to a prefix list in a specified transit gateway route table.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>Blackhole:  Indicates whether to drop traffic that matches this route.<br/>TransitGatewayAttachmentId:  The ID of the attachment to which traffic is routed.<br/>PrefixListId:  The ID of the prefix list.<br/>TransitGatewayRouteTableId:  The ID of the transit gateway route table.<br/>
        :return: TransitGatewayPrefixListReference:  Information about the prefix list reference.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayAttachment</i> Information about the transit gateway attachment.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TransitGatewayAttachment</b>: Information about the transit gateway attachment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Blackhole</i> Indicates whether traffic that matches this route is dropped.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the prefix list reference.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PrefixListOwnerId</i> The ID of the prefix list owner.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PrefixListId</i> The ID of the prefix list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayRouteTableId</i> The ID of the transit gateway route table.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceId</i> The ID of the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceType</i> The resource type. Note that the <code>tgw-peering</code> resource type has been deprecated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayAttachmentId</i> The ID of the attachment.<br/>        """
        pass

    def modify_transit_gateway_vpc_attachment(self, TransitGatewayAttachmentId: str, AddSubnetIds: List[SubnetId]=None, RemoveSubnetIds: List[SubnetId]=None, Options: ModifyTransitGatewayVpcAttachmentRequestOptions=None, DryRun: Boolean=None) -> ModifyTransitGatewayVpcAttachmentResult:
        r"""Modifies the specified VPC attachment.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>Options:  The new VPC attachment options. <note> You cannot modify the IPv6 options. </note>:<br/>RemoveSubnetIds:  The IDs of one or more subnets to remove.<br/>AddSubnetIds:  The IDs of one or more subnets to add. You can specify at most one subnet per Availability Zone.<br/>TransitGatewayAttachmentId:  The ID of the attachment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplianceModeSupport</i> Enable or disable support for appliance mode. If enabled, a traffic flow between a source and destination uses the same Availability Zone for the VPC attachment for the lifetime of that flow. The default is <code>disable</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Ipv6Support</i> Enable or disable IPv6 support. The default is <code>enable</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DnsSupport</i> Enable or disable DNS support. The default is <code>enable</code>.<br/>
        :return: TransitGatewayVpcAttachment:  Information about the modified attachment.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The tags for the VPC attachment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Options</i> The VPC attachment options.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Options</b>: The VPC attachment options.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The creation time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetIds</i> The IDs of the subnets.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the VPC attachment. Note that the <code>initiating</code> state has been deprecated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcOwnerId</i> The ID of the AWS account that owns the VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The ID of the VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayId</i> The ID of the transit gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayAttachmentId</i> The ID of the attachment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplianceModeSupport</i> Indicates whether appliance mode support is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Ipv6Support</i> Indicates whether IPv6 support is disabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DnsSupport</i> Indicates whether DNS support is enabled.<br/>        """
        pass

    def modify_volume(self, VolumeId: str, DryRun: Boolean=None, Size: int=None, VolumeType: str=None, Iops: int=None, Throughput: int=None, MultiAttachEnabled: Boolean=None) -> ModifyVolumeResult:
        r"""You can modify several parameters of an existing EBS volume, including volume size, volume type, and IOPS capacity. If your EBS volume is attached to a current-generation EC2 instance type, you might be able to apply these changes without stopping the instance or detaching the volume from it. For more information about modifying an EBS volume running Linux, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-expand-volume.html">Modifying the size, IOPS, or type of an EBS volume on Linux</a>. For more information about modifying an EBS volume running Windows, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ebs-expand-volume.html">Modifying the size, IOPS, or type of an EBS volume on Windows</a>.  When you complete a resize operation on your volume, you need to extend the volume's file-system size to take advantage of the new storage capacity. For information about extending a Linux file system, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-expand-volume.html#recognize-expanded-volume-linux">Extending a Linux file system</a>. For information about extending a Windows file system, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ebs-expand-volume.html#recognize-expanded-volume-windows">Extending a Windows file system</a>.   You can use CloudWatch Events to check the status of a modification to an EBS volume. For information about CloudWatch Events, see the <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/">Amazon CloudWatch Events User Guide</a>. You can also track the status of a modification using <a>DescribeVolumesModifications</a>. For information about tracking status changes using either method, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-expand-volume.html#monitoring_mods">Monitoring volume modifications</a>.  With previous-generation instance types, resizing an EBS volume might require detaching and reattaching the volume or stopping and restarting the instance. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-modify-volume.html">Amazon EBS Elastic Volumes</a> (Linux) or <a href="https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ebs-modify-volume.html">Amazon EBS Elastic Volumes</a> (Windows). If you reach the maximum volume modification rate per volume limit, you will need to wait at least six hours before applying further modifications to the affected EBS volume.

        :param self:
        :param MultiAttachEnabled:  Specifies whether to enable Amazon EBS Multi-Attach. If you enable Multi-Attach, you can attach the volume to up to 16 <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances"> Nitro-based instances</a> in the same Availability Zone. This parameter is supported with <code>io1</code> and <code>io2</code> volumes only. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-volumes-multi.html"> Amazon EBS Multi-Attach</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.<br/>Throughput:  The target throughput of the volume, in MiB/s. This parameter is valid only for <code>gp3</code> volumes. The maximum value is 1,000. Default: If no throughput value is specified, the existing value is retained. Valid Range: Minimum value of 125. Maximum value of 1000.<br/>Iops:  The target IOPS rate of the volume. This parameter is valid only for <code>gp3</code>, <code>io1</code>, and <code>io2</code> volumes. The following are the supported values for each volume type: <ul> <li>  <code>gp3</code>: 3,000-16,000 IOPS </li> <li>  <code>io1</code>: 100-64,000 IOPS </li> <li>  <code>io2</code>: 100-64,000 IOPS </li> </ul> Default: If no IOPS value is specified, the existing value is retained, unless a volume type is modified that supports different values.<br/>VolumeType:  The target EBS volume type of the volume. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html">Amazon EBS volume types</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>. Default: If no type is specified, the existing type is retained.<br/>Size:  The target size of the volume, in GiB. The target volume size must be greater than or equal to the existing size of the volume. The following are the supported volumes sizes for each volume type: <ul> <li>  <code>gp2</code> and <code>gp3</code>: 1-16,384 </li> <li>  <code>io1</code> and <code>io2</code>: 4-16,384 </li> <li>  <code>st1</code> and <code>sc1</code>: 125-16,384 </li> <li>  <code>standard</code>: 1-1,024 </li> </ul> Default: If no size is specified, the existing size is retained.<br/>VolumeId:  The ID of the volume.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: VolumeModification:  Information about the volume modification.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndTime</i> The modification completion or failure time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StartTime</i> The modification start time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Progress</i> The modification progress, from 0 to 100 percent complete.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OriginalMultiAttachEnabled</i> The original setting for Amazon EBS Multi-Attach.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OriginalThroughput</i> The original throughput of the volume, in MiB/s.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OriginalVolumeType</i> The original EBS volume type of the volume.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OriginalIops</i> The original IOPS rate of the volume.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OriginalSize</i> The original size of the volume, in GiB.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetMultiAttachEnabled</i> The target setting for Amazon EBS Multi-Attach.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetThroughput</i> The target throughput of the volume, in MiB/s.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetVolumeType</i> The target EBS volume type of the volume.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetIops</i> The target IOPS rate of the volume.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetSize</i> The target size of the volume, in GiB.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusMessage</i> A status message about the modification progress or failure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ModificationState</i> The current modification state. The modification state is null for unmodified volumes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VolumeId</i> The ID of the volume.<br/>        """
        pass

    def modify_volume_attribute(self, VolumeId: str, AutoEnableIO: AttributeBooleanValue=None, DryRun: Boolean=None):
        r"""Modifies a volume attribute. By default, all I/O operations for the volume are suspended when the data on the volume is determined to be potentially inconsistent, to prevent undetectable, latent data corruption. The I/O access to the volume can be resumed by first enabling I/O access and then checking the data consistency on your volume. You can change the default behavior to resume I/O operations. We recommend that you change this only for boot volumes or for volumes that are stateless or disposable.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>VolumeId:  The ID of the volume.<br/>AutoEnableIO:  Indicates whether the volume should be auto-enabled for I/O operations.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Value</i> The attribute value. The valid values are <code>true</code> or <code>false</code>.<br/>
        :return:         """
        pass

    def modify_vpc_attribute(self, VpcId: str, EnableDnsHostnames: AttributeBooleanValue=None, EnableDnsSupport: AttributeBooleanValue=None):
        r"""Modifies the specified attribute of the specified VPC.

        :param self:
        :param VpcId:  The ID of the VPC.<br/>EnableDnsSupport:  Indicates whether the DNS resolution is supported for the VPC. If enabled, queries to the Amazon provided DNS server at the 169.254.169.253 IP address, or the reserved IP address at the base of the VPC network range "plus two" succeed. If disabled, the Amazon provided DNS service in the VPC that resolves public DNS hostnames to IP addresses is not enabled. You cannot modify the DNS resolution and DNS hostnames attributes in the same request. Use separate requests for each attribute.:<br/>EnableDnsHostnames:  Indicates whether the instances launched in the VPC get DNS hostnames. If enabled, instances in the VPC get DNS hostnames; otherwise, they do not. You cannot modify the DNS resolution and DNS hostnames attributes in the same request. Use separate requests for each attribute. You can only enable DNS hostnames if you've enabled DNS support.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Value</i> The attribute value. The valid values are <code>true</code> or <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Value</i> The attribute value. The valid values are <code>true</code> or <code>false</code>.<br/>
        :return:         """
        pass

    def modify_vpc_endpoint(self, VpcEndpointId: str, DryRun: Boolean=None, ResetPolicy: Boolean=None, PolicyDocument: str=None, AddRouteTableIds: List[RouteTableId]=None, RemoveRouteTableIds: List[RouteTableId]=None, AddSubnetIds: List[SubnetId]=None, RemoveSubnetIds: List[SubnetId]=None, AddSecurityGroupIds: List[SecurityGroupId]=None, RemoveSecurityGroupIds: List[SecurityGroupId]=None, PrivateDnsEnabled: Boolean=None) -> ModifyVpcEndpointResult:
        r"""Modifies attributes of a specified VPC endpoint. The attributes that you can modify depend on the type of VPC endpoint (interface, gateway, or Gateway Load Balancer). For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints.html">VPC Endpoints</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.

        :param self:
        :param PrivateDnsEnabled:  (Interface endpoint) Indicates whether a private hosted zone is associated with the VPC.<br/>RemoveSecurityGroupIds:  (Interface endpoint) One or more security group IDs to disassociate from the network interface.<br/>AddSecurityGroupIds:  (Interface endpoint) One or more security group IDs to associate with the network interface.<br/>RemoveSubnetIds:  (Interface endpoint) One or more subnets IDs in which to remove the endpoint.<br/>AddSubnetIds:  (Interface and Gateway Load Balancer endpoints) One or more subnet IDs in which to serve the endpoint. For a Gateway Load Balancer endpoint, you can specify only one subnet.<br/>RemoveRouteTableIds:  (Gateway endpoint) One or more route table IDs to disassociate from the endpoint.<br/>AddRouteTableIds:  (Gateway endpoint) One or more route tables IDs to associate with the endpoint.<br/>PolicyDocument:  (Interface and gateway endpoints) A policy to attach to the endpoint that controls access to the service. The policy must be in valid JSON format.<br/>ResetPolicy:  (Gateway endpoint) Specify <code>true</code> to reset the policy document to the default policy. The default policy allows full access to the service.<br/>VpcEndpointId:  The ID of the endpoint.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: Return:  Returns <code>true</code> if the request succeeds; otherwise, it returns an error.<br/>        """
        pass

    def modify_vpc_endpoint_connection_notification(self, ConnectionNotificationId: str, DryRun: Boolean=None, ConnectionNotificationArn: str=None, ConnectionEvents: List[String]=None) -> ModifyVpcEndpointConnectionNotificationResult:
        r"""Modifies a connection notification for VPC endpoint or VPC endpoint service. You can change the SNS topic for the notification, or the events for which to be notified. 

        :param self:
        :param ConnectionEvents:  One or more events for the endpoint. Valid values are <code>Accept</code>, <code>Connect</code>, <code>Delete</code>, and <code>Reject</code>.<br/>ConnectionNotificationArn:  The ARN for the SNS topic for the notification.<br/>ConnectionNotificationId:  The ID of the notification.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: ReturnValue:  Returns <code>true</code> if the request succeeds; otherwise, it returns an error.<br/>        """
        pass

    def modify_vpc_endpoint_service_configuration(self, ServiceId: str, DryRun: Boolean=None, PrivateDnsName: str=None, RemovePrivateDnsName: Boolean=None, AcceptanceRequired: Boolean=None, AddNetworkLoadBalancerArns: List[String]=None, RemoveNetworkLoadBalancerArns: List[String]=None, AddGatewayLoadBalancerArns: List[String]=None, RemoveGatewayLoadBalancerArns: List[String]=None) -> ModifyVpcEndpointServiceConfigurationResult:
        r"""Modifies the attributes of your VPC endpoint service configuration. You can change the Network Load Balancers or Gateway Load Balancers for your service, and you can specify whether acceptance is required for requests to connect to your endpoint service through an interface VPC endpoint. If you set or modify the private DNS name, you must prove that you own the private DNS domain name. For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/endpoint-services-dns-validation.html">VPC Endpoint Service Private DNS Name Verification</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.

        :param self:
        :param RemoveGatewayLoadBalancerArns:  The Amazon Resource Names (ARNs) of Gateway Load Balancers to remove from your service configuration.<br/>AddGatewayLoadBalancerArns:  The Amazon Resource Names (ARNs) of Gateway Load Balancers to add to your service configuration.<br/>RemoveNetworkLoadBalancerArns:  The Amazon Resource Names (ARNs) of Network Load Balancers to remove from your service configuration.<br/>AddNetworkLoadBalancerArns:  The Amazon Resource Names (ARNs) of Network Load Balancers to add to your service configuration.<br/>AcceptanceRequired:  Indicates whether requests to create an endpoint to your service must be accepted.<br/>RemovePrivateDnsName:  (Interface endpoint configuration) Removes the private DNS name of the endpoint service.<br/>PrivateDnsName:  (Interface endpoint configuration) The private DNS name to assign to the endpoint service.<br/>ServiceId:  The ID of the service.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: Return:  Returns <code>true</code> if the request succeeds; otherwise, it returns an error.<br/>        """
        pass

    def modify_vpc_endpoint_service_permissions(self, ServiceId: str, DryRun: Boolean=None, AddAllowedPrincipals: List[String]=None, RemoveAllowedPrincipals: List[String]=None) -> ModifyVpcEndpointServicePermissionsResult:
        r"""Modifies the permissions for your <a href="https://docs.aws.amazon.com/vpc/latest/userguide/endpoint-service.html">VPC endpoint service</a>. You can add or remove permissions for service consumers (IAM users, IAM roles, and AWS accounts) to connect to your endpoint service. If you grant permissions to all principals, the service is public. Any users who know the name of a public service can send a request to attach an endpoint. If the service does not require manual approval, attachments are automatically approved.

        :param self:
        :param RemoveAllowedPrincipals:  The Amazon Resource Names (ARN) of one or more principals. Permissions are revoked for principals in this list.<br/>AddAllowedPrincipals:  The Amazon Resource Names (ARN) of one or more principals. Permissions are granted to the principals in this list. To grant permissions to all principals, specify an asterisk (*).<br/>ServiceId:  The ID of the service.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: ReturnValue:  Returns <code>true</code> if the request succeeds; otherwise, it returns an error.<br/>        """
        pass

    def modify_vpc_peering_connection_options(self, VpcPeeringConnectionId: str, AccepterPeeringConnectionOptions: PeeringConnectionOptionsRequest=None, DryRun: Boolean=None, RequesterPeeringConnectionOptions: PeeringConnectionOptionsRequest=None) -> ModifyVpcPeeringConnectionOptionsResult:
        r"""Modifies the VPC peering connection options on one side of a VPC peering connection. You can do the following: <ul> <li> Enable/disable communication over the peering connection between an EC2-Classic instance that's linked to your VPC (using ClassicLink) and instances in the peer VPC. </li> <li> Enable/disable communication over the peering connection between instances in your VPC and an EC2-Classic instance that's linked to the peer VPC. </li> <li> Enable/disable the ability to resolve public DNS hostnames to private IP addresses when queried from instances in the peer VPC. </li> </ul> If the peered VPCs are in the same AWS account, you can enable DNS resolution for queries from the local VPC. This ensures that queries from the local VPC resolve to private IP addresses in the peer VPC. This option is not available if the peered VPCs are in different AWS accounts or different Regions. For peered VPCs in different AWS accounts, each AWS account owner must initiate a separate request to modify the peering connection options. For inter-region peering connections, you must use the Region for the requester VPC to modify the requester VPC peering options and the Region for the accepter VPC to modify the accepter VPC peering options. To verify which VPCs are the accepter and the requester for a VPC peering connection, use the <a>DescribeVpcPeeringConnections</a> command.

        :param self:
        :param VpcPeeringConnectionId:  The ID of the VPC peering connection.<br/>RequesterPeeringConnectionOptions:  The VPC peering connection options for the requester VPC.:<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>AccepterPeeringConnectionOptions:  The VPC peering connection options for the accepter VPC.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowEgressFromLocalVpcToRemoteClassicLink</i> If true, enables outbound communication from instances in a local VPC to an EC2-Classic instance that's linked to a peer VPC using ClassicLink.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowEgressFromLocalClassicLinkToRemoteVpc</i> If true, enables outbound communication from an EC2-Classic instance that's linked to a local VPC using ClassicLink to instances in a peer VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowDnsResolutionFromRemoteVpc</i> If true, enables a local VPC to resolve public DNS hostnames to private IP addresses when queried from instances in the peer VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowEgressFromLocalVpcToRemoteClassicLink</i> If true, enables outbound communication from instances in a local VPC to an EC2-Classic instance that's linked to a peer VPC using ClassicLink.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowEgressFromLocalClassicLinkToRemoteVpc</i> If true, enables outbound communication from an EC2-Classic instance that's linked to a local VPC using ClassicLink to instances in a peer VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowDnsResolutionFromRemoteVpc</i> If true, enables a local VPC to resolve public DNS hostnames to private IP addresses when queried from instances in the peer VPC.<br/>
        :return: RequesterPeeringConnectionOptions:  Information about the VPC peering connection options for the requester VPC.:<br/>AccepterPeeringConnectionOptions:  Information about the VPC peering connection options for the accepter VPC.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowEgressFromLocalVpcToRemoteClassicLink</i> If true, enables outbound communication from instances in a local VPC to an EC2-Classic instance that's linked to a peer VPC using ClassicLink.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowEgressFromLocalClassicLinkToRemoteVpc</i> If true, enables outbound communication from an EC2-Classic instance that's linked to a local VPC using ClassicLink to instances in a peer VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowDnsResolutionFromRemoteVpc</i> If true, the public DNS hostnames of instances in the specified VPC resolve to private IP addresses when queried from instances in the peer VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowEgressFromLocalVpcToRemoteClassicLink</i> If true, enables outbound communication from instances in a local VPC to an EC2-Classic instance that's linked to a peer VPC using ClassicLink.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowEgressFromLocalClassicLinkToRemoteVpc</i> If true, enables outbound communication from an EC2-Classic instance that's linked to a local VPC using ClassicLink to instances in a peer VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowDnsResolutionFromRemoteVpc</i> If true, the public DNS hostnames of instances in the specified VPC resolve to private IP addresses when queried from instances in the peer VPC.<br/>        """
        pass

    def modify_vpc_tenancy(self, InstanceTenancy: str, VpcId: str, DryRun: Boolean=None) -> ModifyVpcTenancyResult:
        r"""Modifies the instance tenancy attribute of the specified VPC. You can change the instance tenancy attribute of a VPC to <code>default</code> only. You cannot change the instance tenancy attribute to <code>dedicated</code>. After you modify the tenancy of the VPC, any new instances that you launch into the VPC have a tenancy of <code>default</code>, unless you specify otherwise during launch. The tenancy of any existing instances in the VPC is not affected. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-instance.html">Dedicated Instances</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>InstanceTenancy:  The instance tenancy attribute for the VPC. <br/>VpcId:  The ID of the VPC.<br/>
        :return: ReturnValue:  Returns <code>true</code> if the request succeeds; otherwise, returns an error.<br/>        """
        pass

    def modify_vpn_connection(self, VpnConnectionId: str, TransitGatewayId: str=None, CustomerGatewayId: str=None, VpnGatewayId: str=None, DryRun: Boolean=None) -> ModifyVpnConnectionResult:
        r"""Modifies the customer gateway or the target gateway of an AWS Site-to-Site VPN connection. To modify the target gateway, the following migration options are available: <ul> <li> An existing virtual private gateway to a new virtual private gateway </li> <li> An existing virtual private gateway to a transit gateway </li> <li> An existing transit gateway to a new transit gateway </li> <li> An existing transit gateway to a virtual private gateway </li> </ul> Before you perform the migration to the new gateway, you must configure the new gateway. Use <a>CreateVpnGateway</a> to create a virtual private gateway, or <a>CreateTransitGateway</a> to create a transit gateway. This step is required when you migrate from a virtual private gateway with static routes to a transit gateway.  You must delete the static routes before you migrate to the new gateway. Keep a copy of the static route before you delete it. You will need to add back these routes to the transit gateway after the VPN connection migration is complete. After you migrate to the new gateway, you might need to modify your VPC route table. Use <a>CreateRoute</a> and <a>DeleteRoute</a> to make the changes described in <a href="https://docs.aws.amazon.com/vpn/latest/s2svpn/modify-vpn-target.html#step-update-routing">VPN Gateway Target Modification Required VPC Route Table Updates</a> in the <i>AWS Site-to-Site VPN User Guide</i>.  When the new gateway is a transit gateway, modify the transit gateway route table to allow traffic between the VPC and the AWS Site-to-Site VPN connection. Use <a>CreateTransitGatewayRoute</a> to add the routes.  If you deleted VPN static routes, you must add the static routes to the transit gateway route table. After you perform this operation, the AWS VPN endpoint's IP addresses on the AWS side and the tunnel options remain intact. Your AWS Site-to-Site VPN connection will be temporarily unavailable for a brief period while we provision the new endpoints.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>VpnGatewayId:  The ID of the virtual private gateway at the AWS side of the VPN connection.<br/>CustomerGatewayId:  The ID of the customer gateway at your end of the VPN connection.<br/>TransitGatewayId:  The ID of the transit gateway.<br/>VpnConnectionId:  The ID of the VPN connection.<br/>
        :return: VpnConnection:  Describes a VPN connection.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VgwTelemetry</i> Information about the VPN tunnel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> Any tags assigned to the VPN connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Routes</i> The static routes associated with the VPN connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Options</i> The VPN connection options.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Options</b>: The VPN connection options.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayId</i> The ID of the transit gateway associated with the VPN connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpnGatewayId</i> The ID of the virtual private gateway at the AWS side of the VPN connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpnConnectionId</i> The ID of the VPN connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of VPN connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The current state of the VPN connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Category</i> The category of the VPN connection. A value of <code>VPN</code> indicates an AWS VPN connection. A value of <code>VPN-Classic</code> indicates an AWS Classic VPN connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomerGatewayId</i> The ID of the customer gateway at your end of the VPN connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomerGatewayConfiguration</i> The configuration information for the VPN connection's customer gateway (in the native XML format). This element is always present in the <a>CreateVpnConnection</a> response; however, it's present in the <a>DescribeVpnConnections</a> response only if the VPN connection is in the <code>pending</code> or <code>available</code> state.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TunnelOptions</i> Indicates the VPN tunnel options.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TunnelInsideIpVersion</i> Indicates whether the VPN tunnels process IPv4 or IPv6 traffic.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RemoteIpv6NetworkCidr</i> The IPv6 CIDR on the AWS side of the VPN connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LocalIpv6NetworkCidr</i> The IPv6 CIDR on the customer gateway (on-premises) side of the VPN connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RemoteIpv4NetworkCidr</i> The IPv4 CIDR on the AWS side of the VPN connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LocalIpv4NetworkCidr</i> The IPv4 CIDR on the customer gateway (on-premises) side of the VPN connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StaticRoutesOnly</i> Indicates whether the VPN connection uses static routes only. Static routes must be used for devices that don't support BGP.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableAcceleration</i> Indicates whether acceleration is enabled for the VPN connection.<br/>        """
        pass

    def modify_vpn_connection_options(self, VpnConnectionId: str, LocalIpv4NetworkCidr: str=None, RemoteIpv4NetworkCidr: str=None, LocalIpv6NetworkCidr: str=None, RemoteIpv6NetworkCidr: str=None, DryRun: Boolean=None) -> ModifyVpnConnectionOptionsResult:
        r"""Modifies the connection options for your Site-to-Site VPN connection. When you modify the VPN connection options, the VPN endpoint IP addresses on the AWS side do not change, and the tunnel options do not change. Your VPN connection will be temporarily unavailable for a brief period while the VPN connection is updated.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>RemoteIpv6NetworkCidr:  The IPv6 CIDR on the AWS side of the VPN connection. Default: <code>::/0</code> <br/>LocalIpv6NetworkCidr:  The IPv6 CIDR on the customer gateway (on-premises) side of the VPN connection. Default: <code>::/0</code> <br/>RemoteIpv4NetworkCidr:  The IPv4 CIDR on the AWS side of the VPN connection. Default: <code>0.0.0.0/0</code> <br/>LocalIpv4NetworkCidr:  The IPv4 CIDR on the customer gateway (on-premises) side of the VPN connection. Default: <code>0.0.0.0/0</code> <br/>VpnConnectionId:  The ID of the Site-to-Site VPN connection. <br/>
        :return: VpnConnection:  Describes a VPN connection.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VgwTelemetry</i> Information about the VPN tunnel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> Any tags assigned to the VPN connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Routes</i> The static routes associated with the VPN connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Options</i> The VPN connection options.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Options</b>: The VPN connection options.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayId</i> The ID of the transit gateway associated with the VPN connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpnGatewayId</i> The ID of the virtual private gateway at the AWS side of the VPN connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpnConnectionId</i> The ID of the VPN connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of VPN connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The current state of the VPN connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Category</i> The category of the VPN connection. A value of <code>VPN</code> indicates an AWS VPN connection. A value of <code>VPN-Classic</code> indicates an AWS Classic VPN connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomerGatewayId</i> The ID of the customer gateway at your end of the VPN connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomerGatewayConfiguration</i> The configuration information for the VPN connection's customer gateway (in the native XML format). This element is always present in the <a>CreateVpnConnection</a> response; however, it's present in the <a>DescribeVpnConnections</a> response only if the VPN connection is in the <code>pending</code> or <code>available</code> state.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TunnelOptions</i> Indicates the VPN tunnel options.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TunnelInsideIpVersion</i> Indicates whether the VPN tunnels process IPv4 or IPv6 traffic.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RemoteIpv6NetworkCidr</i> The IPv6 CIDR on the AWS side of the VPN connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LocalIpv6NetworkCidr</i> The IPv6 CIDR on the customer gateway (on-premises) side of the VPN connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RemoteIpv4NetworkCidr</i> The IPv4 CIDR on the AWS side of the VPN connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LocalIpv4NetworkCidr</i> The IPv4 CIDR on the customer gateway (on-premises) side of the VPN connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StaticRoutesOnly</i> Indicates whether the VPN connection uses static routes only. Static routes must be used for devices that don't support BGP.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableAcceleration</i> Indicates whether acceleration is enabled for the VPN connection.<br/>        """
        pass

    def modify_vpn_tunnel_certificate(self, VpnTunnelOutsideIpAddress: str, VpnConnectionId: str, DryRun: Boolean=None) -> ModifyVpnTunnelCertificateResult:
        r"""Modifies the VPN tunnel endpoint certificate.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>VpnTunnelOutsideIpAddress:  The external IP address of the VPN tunnel.<br/>VpnConnectionId:  The ID of the AWS Site-to-Site VPN connection.<br/>
        :return: VpnConnection:  Describes a VPN connection.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VgwTelemetry</i> Information about the VPN tunnel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> Any tags assigned to the VPN connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Routes</i> The static routes associated with the VPN connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Options</i> The VPN connection options.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Options</b>: The VPN connection options.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayId</i> The ID of the transit gateway associated with the VPN connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpnGatewayId</i> The ID of the virtual private gateway at the AWS side of the VPN connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpnConnectionId</i> The ID of the VPN connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of VPN connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The current state of the VPN connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Category</i> The category of the VPN connection. A value of <code>VPN</code> indicates an AWS VPN connection. A value of <code>VPN-Classic</code> indicates an AWS Classic VPN connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomerGatewayId</i> The ID of the customer gateway at your end of the VPN connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomerGatewayConfiguration</i> The configuration information for the VPN connection's customer gateway (in the native XML format). This element is always present in the <a>CreateVpnConnection</a> response; however, it's present in the <a>DescribeVpnConnections</a> response only if the VPN connection is in the <code>pending</code> or <code>available</code> state.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TunnelOptions</i> Indicates the VPN tunnel options.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TunnelInsideIpVersion</i> Indicates whether the VPN tunnels process IPv4 or IPv6 traffic.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RemoteIpv6NetworkCidr</i> The IPv6 CIDR on the AWS side of the VPN connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LocalIpv6NetworkCidr</i> The IPv6 CIDR on the customer gateway (on-premises) side of the VPN connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RemoteIpv4NetworkCidr</i> The IPv4 CIDR on the AWS side of the VPN connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LocalIpv4NetworkCidr</i> The IPv4 CIDR on the customer gateway (on-premises) side of the VPN connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StaticRoutesOnly</i> Indicates whether the VPN connection uses static routes only. Static routes must be used for devices that don't support BGP.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableAcceleration</i> Indicates whether acceleration is enabled for the VPN connection.<br/>        """
        pass

    def modify_vpn_tunnel_options(self, TunnelOptions: ModifyVpnTunnelOptionsSpecification, VpnTunnelOutsideIpAddress: str, VpnConnectionId: str, DryRun: Boolean=None) -> ModifyVpnTunnelOptionsResult:
        r"""Modifies the options for a VPN tunnel in an AWS Site-to-Site VPN connection. You can modify multiple options for a tunnel in a single request, but you can only modify one tunnel at a time. For more information, see <a href="https://docs.aws.amazon.com/vpn/latest/s2svpn/VPNTunnels.html">Site-to-Site VPN Tunnel Options for Your Site-to-Site VPN Connection</a> in the <i>AWS Site-to-Site VPN User Guide</i>.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>TunnelOptions:  The tunnel options to modify.:<br/>VpnTunnelOutsideIpAddress:  The external IP address of the VPN tunnel.<br/>VpnConnectionId:  The ID of the AWS Site-to-Site VPN connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StartupAction</i> The action to take when the establishing the tunnel for the VPN connection. By default, your customer gateway device must initiate the IKE negotiation and bring up the tunnel. Specify <code>start</code> for AWS to initiate the IKE negotiation. Valid Values: <code>add</code> | <code>start</code>  Default: <code>add</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IKEVersions</i> The IKE versions that are permitted for the VPN tunnel. Valid values: <code>ikev1</code> | <code>ikev2</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Phase2DHGroupNumbers</i> One or more Diffie-Hellman group numbers that are permitted for the VPN tunnel for phase 2 IKE negotiations. Valid values: <code>2</code> | <code>5</code> | <code>14</code> | <code>15</code> | <code>16</code> | <code>17</code> | <code>18</code> | <code>19</code> | <code>20</code> | <code>21</code> | <code>22</code> | <code>23</code> | <code>24</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Phase1DHGroupNumbers</i> One or more Diffie-Hellman group numbers that are permitted for the VPN tunnel for phase 1 IKE negotiations. Valid values: <code>2</code> | <code>14</code> | <code>15</code> | <code>16</code> | <code>17</code> | <code>18</code> | <code>19</code> | <code>20</code> | <code>21</code> | <code>22</code> | <code>23</code> | <code>24</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Phase2IntegrityAlgorithms</i> One or more integrity algorithms that are permitted for the VPN tunnel for phase 2 IKE negotiations. Valid values: <code>SHA1</code> | <code>SHA2-256</code> | <code>SHA2-384</code> | <code>SHA2-512</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Phase1IntegrityAlgorithms</i> One or more integrity algorithms that are permitted for the VPN tunnel for phase 1 IKE negotiations. Valid values: <code>SHA1</code> | <code>SHA2-256</code> | <code>SHA2-384</code> | <code>SHA2-512</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Phase2EncryptionAlgorithms</i> One or more encryption algorithms that are permitted for the VPN tunnel for phase 2 IKE negotiations. Valid values: <code>AES128</code> | <code>AES256</code> | <code>AES128-GCM-16</code> | <code>AES256-GCM-16</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Phase1EncryptionAlgorithms</i> One or more encryption algorithms that are permitted for the VPN tunnel for phase 1 IKE negotiations. Valid values: <code>AES128</code> | <code>AES256</code> | <code>AES128-GCM-16</code> | <code>AES256-GCM-16</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DPDTimeoutAction</i> The action to take after DPD timeout occurs. Specify <code>restart</code> to restart the IKE initiation. Specify <code>clear</code> to end the IKE session. Valid Values: <code>clear</code> | <code>none</code> | <code>restart</code>  Default: <code>clear</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DPDTimeoutSeconds</i> The number of seconds after which a DPD timeout occurs. Constraints: A value between 0 and 30. Default: <code>30</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplayWindowSize</i> The number of packets in an IKE replay window. Constraints: A value between 64 and 2048. Default: <code>1024</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RekeyFuzzPercentage</i> The percentage of the rekey window (determined by <code>RekeyMarginTimeSeconds</code>) during which the rekey time is randomly selected. Constraints: A value between 0 and 100. Default: <code>100</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RekeyMarginTimeSeconds</i> The margin time, in seconds, before the phase 2 lifetime expires, during which the AWS side of the VPN connection performs an IKE rekey. The exact time of the rekey is randomly selected based on the value for <code>RekeyFuzzPercentage</code>. Constraints: A value between 60 and half of <code>Phase2LifetimeSeconds</code>. Default: <code>540</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Phase2LifetimeSeconds</i> The lifetime for phase 2 of the IKE negotiation, in seconds. Constraints: A value between 900 and 3,600. The value must be less than the value for <code>Phase1LifetimeSeconds</code>. Default: <code>3600</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Phase1LifetimeSeconds</i> The lifetime for phase 1 of the IKE negotiation, in seconds. Constraints: A value between 900 and 28,800. Default: <code>28800</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreSharedKey</i> The pre-shared key (PSK) to establish initial authentication between the virtual private gateway and the customer gateway. Constraints: Allowed characters are alphanumeric characters, periods (.), and underscores (_). Must be between 8 and 64 characters in length and cannot start with zero (0).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TunnelInsideIpv6Cidr</i> The range of inside IPv6 addresses for the tunnel. Any specified CIDR blocks must be unique across all VPN connections that use the same transit gateway. Constraints: A size /126 CIDR block from the local <code>fd00::/8</code> range.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TunnelInsideCidr</i> The range of inside IPv4 addresses for the tunnel. Any specified CIDR blocks must be unique across all VPN connections that use the same virtual private gateway.  Constraints: A size /30 CIDR block from the <code>169.254.0.0/16</code> range. The following CIDR blocks are reserved and cannot be used: <ul> <li>  <code>169.254.0.0/30</code>  </li> <li>  <code>169.254.1.0/30</code>  </li> <li>  <code>169.254.2.0/30</code>  </li> <li>  <code>169.254.3.0/30</code>  </li> <li>  <code>169.254.4.0/30</code>  </li> <li>  <code>169.254.5.0/30</code>  </li> <li>  <code>169.254.169.252/30</code>  </li> </ul><br/>
        :return: VpnConnection:  Describes a VPN connection.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VgwTelemetry</i> Information about the VPN tunnel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> Any tags assigned to the VPN connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Routes</i> The static routes associated with the VPN connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Options</i> The VPN connection options.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Options</b>: The VPN connection options.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayId</i> The ID of the transit gateway associated with the VPN connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpnGatewayId</i> The ID of the virtual private gateway at the AWS side of the VPN connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpnConnectionId</i> The ID of the VPN connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of VPN connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The current state of the VPN connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Category</i> The category of the VPN connection. A value of <code>VPN</code> indicates an AWS VPN connection. A value of <code>VPN-Classic</code> indicates an AWS Classic VPN connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomerGatewayId</i> The ID of the customer gateway at your end of the VPN connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomerGatewayConfiguration</i> The configuration information for the VPN connection's customer gateway (in the native XML format). This element is always present in the <a>CreateVpnConnection</a> response; however, it's present in the <a>DescribeVpnConnections</a> response only if the VPN connection is in the <code>pending</code> or <code>available</code> state.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TunnelOptions</i> Indicates the VPN tunnel options.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TunnelInsideIpVersion</i> Indicates whether the VPN tunnels process IPv4 or IPv6 traffic.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RemoteIpv6NetworkCidr</i> The IPv6 CIDR on the AWS side of the VPN connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LocalIpv6NetworkCidr</i> The IPv6 CIDR on the customer gateway (on-premises) side of the VPN connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RemoteIpv4NetworkCidr</i> The IPv4 CIDR on the AWS side of the VPN connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LocalIpv4NetworkCidr</i> The IPv4 CIDR on the customer gateway (on-premises) side of the VPN connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StaticRoutesOnly</i> Indicates whether the VPN connection uses static routes only. Static routes must be used for devices that don't support BGP.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableAcceleration</i> Indicates whether acceleration is enabled for the VPN connection.<br/>        """
        pass

    def monitor_instances(self, InstanceIds: List[InstanceId], DryRun: Boolean=None) -> MonitorInstancesResult:
        r"""Enables detailed monitoring for a running instance. Otherwise, basic monitoring is enabled. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-cloudwatch.html">Monitoring your instances and volumes</a> in the <i>Amazon EC2 User Guide</i>. To disable detailed monitoring, see .

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>InstanceIds:  The IDs of the instances.<br/>
        :return: InstanceMonitorings:  The monitoring information.<br/>        """
        pass

    def move_address_to_vpc(self, PublicIp: str, DryRun: Boolean=None) -> MoveAddressToVpcResult:
        r"""Moves an Elastic IP address from the EC2-Classic platform to the EC2-VPC platform. The Elastic IP address must be allocated to your account for more than 24 hours, and it must not be associated with an instance. After the Elastic IP address is moved, it is no longer available for use in the EC2-Classic platform, unless you move it back using the <a>RestoreAddressToClassic</a> request. You cannot move an Elastic IP address that was originally allocated for use in the EC2-VPC platform to the EC2-Classic platform. 

        :param self:
        :param PublicIp:  The Elastic IP address.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: Status:  The status of the move of the IP address.<br/>AllocationId:  The allocation ID for the Elastic IP address.<br/>        """
        pass

    def provision_byoip_cidr(self, Cidr: str, CidrAuthorizationContext: CidrAuthorizationContext=None, PubliclyAdvertisable: Boolean=None, Description: str=None, DryRun: Boolean=None, PoolTagSpecifications: List[TagSpecification]=None, MultiRegion: Boolean=None) -> ProvisionByoipCidrResult:
        r"""Provisions an IPv4 or IPv6 address range for use with your Amazon Web Services resources through bring your own IP addresses (BYOIP) and creates a corresponding address pool. After the address range is provisioned, it is ready to be advertised using <a>AdvertiseByoipCidr</a>. Amazon Web Services verifies that you own the address range and are authorized to advertise it. You must ensure that the address range is registered to you and that you created an RPKI ROA to authorize Amazon ASNs 16509 and 14618 to advertise the address range. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-byoip.html">Bring your own IP addresses (BYOIP)</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>. Provisioning an address range is an asynchronous operation, so the call returns immediately, but the address range is not ready to use until its status changes from <code>pending-provision</code> to <code>provisioned</code>. To monitor the status of an address range, use <a>DescribeByoipCidrs</a>. To allocate an Elastic IP address from your IPv4 address pool, use <a>AllocateAddress</a> with either the specific address from the address pool or the ID of the address pool.

        :param self:
        :param MultiRegion:  <para>Reserved.</para><br/>PoolTagSpecifications:  The tags to apply to the address pool.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>Description:  A description for the address range and the address pool.<br/>PubliclyAdvertisable:  (IPv6 only) Indicate whether the address range will be publicly advertised to the internet. Default: true<br/>CidrAuthorizationContext:  A signed document that proves that you are authorized to bring the specified IP address range to Amazon using BYOIP.:<br/>Cidr:  The public IPv4 or IPv6 address range, in CIDR notation. The most specific IPv4 prefix that you can specify is /24. The most specific IPv6 prefix you can specify is /56. The address range cannot overlap with another address range that you've brought to this or another Region.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Signature</i> The signed authorization message for the prefix and account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> The plain-text authorization message for the prefix and account.<br/>
        :return: ByoipCidr:  Information about the address range.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the address pool.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusMessage</i> Upon success, contains the ID of the address pool. Otherwise, contains an error message.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the address range.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Cidr</i> The address range, in CIDR notation.<br/>        """
        pass

    def purchase_host_reservation(self, OfferingId: str, HostIdSet: List[DedicatedHostId], ClientToken: str=None, CurrencyCode: str=None, LimitPrice: str=None, TagSpecifications: List[TagSpecification]=None) -> PurchaseHostReservationResult:
        r"""Purchase a reservation with configurations that match those of your Dedicated Host. You must have active Dedicated Hosts in your account before you purchase a reservation. This action results in the specified reservation being purchased and charged to your account.

        :param self:
        :param TagSpecifications:  The tags to apply to the Dedicated Host Reservation during purchase.<br/>OfferingId:  The ID of the offering.<br/>LimitPrice:  The specified limit is checked against the total upfront cost of the reservation (calculated as the offering's upfront cost multiplied by the host count). If the total upfront cost is greater than the specified price limit, the request fails. This is used to ensure that the purchase does not exceed the expected upfront cost of the purchase. At this time, the only supported currency is <code>USD</code>. For example, to indicate a limit price of USD 100, specify 100.00.<br/>HostIdSet:  The IDs of the Dedicated Hosts with which the reservation will be associated.<br/>CurrencyCode:  The currency in which the <code>totalUpfrontPrice</code>, <code>LimitPrice</code>, and <code>totalHourlyPrice</code> amounts are specified. At this time, the only supported currency is <code>USD</code>.<br/>ClientToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html">Ensuring Idempotency</a>.<br/>
        :return: TotalUpfrontPrice:  The total amount charged to your account when you purchase the reservation.<br/>TotalHourlyPrice:  The total hourly price of the reservation calculated per hour.<br/>Purchase:  Describes the details of the purchase.<br/>CurrencyCode:  The currency in which the <code>totalUpfrontPrice</code> and <code>totalHourlyPrice</code> amounts are specified. At this time, the only supported currency is <code>USD</code>.<br/>ClientToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html">Ensuring Idempotency</a>.<br/>        """
        pass

    def purchase_reserved_instances_offering(self, ReservedInstancesOfferingId: str, InstanceCount: int, DryRun: Boolean=None, LimitPrice: ReservedInstanceLimitPrice=None, PurchaseTime: DateTime=None) -> PurchaseReservedInstancesOfferingResult:
        r"""Purchases a Reserved Instance for use with your account. With Reserved Instances, you pay a lower hourly rate compared to On-Demand instance pricing. Use <a>DescribeReservedInstancesOfferings</a> to get a list of Reserved Instance offerings that match your specifications. After you've purchased a Reserved Instance, you can check for your new Reserved Instance with <a>DescribeReservedInstances</a>. To queue a purchase for a future date and time, specify a purchase time. If you do not specify a purchase time, the default is the current time. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts-on-demand-reserved-instances.html">Reserved Instances</a> and <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-market-general.html">Reserved Instance Marketplace</a> in the <i>Amazon EC2 User Guide</i>.

        :param self:
        :param PurchaseTime:  The time at which to purchase the Reserved Instance, in UTC format (for example, <i>YYYY</i>-<i>MM</i>-<i>DD</i>T<i>HH</i>:<i>MM</i>:<i>SS</i>Z).<br/>LimitPrice:  Specified for Reserved Instance Marketplace offerings to limit the total order and ensure that the Reserved Instances are not purchased at unexpected prices.:<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>ReservedInstancesOfferingId:  The ID of the Reserved Instance offering to purchase.<br/>InstanceCount:  The number of Reserved Instances to purchase.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CurrencyCode</i> The currency in which the <code>limitPrice</code> amount is specified. At this time, the only supported currency is <code>USD</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Amount</i> Used for Reserved Instance Marketplace offerings. Specifies the limit price on the total order (instanceCount * price).<br/>
        :return: ReservedInstancesId:  The IDs of the purchased Reserved Instances. If your purchase crosses into a discounted pricing tier, the final Reserved Instances IDs might change. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts-reserved-instances-application.html#crossing-pricing-tiers">Crossing pricing tiers</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.<br/>        """
        pass

    def purchase_scheduled_instances(self, PurchaseRequests: List[PurchaseRequest], ClientToken: str=None, DryRun: Boolean=None) -> PurchaseScheduledInstancesResult:
        r"""Purchases the Scheduled Instances with the specified schedule. Scheduled Instances enable you to purchase Amazon EC2 compute capacity by the hour for a one-year term. Before you can purchase a Scheduled Instance, you must call <a>DescribeScheduledInstanceAvailability</a> to check for available schedules and obtain a purchase token. After you purchase a Scheduled Instance, you must call <a>RunScheduledInstances</a> during each scheduled time period. After you purchase a Scheduled Instance, you can't cancel, modify, or resell your purchase.

        :param self:
        :param PurchaseRequests:  The purchase requests.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>ClientToken:  Unique, case-sensitive identifier that ensures the idempotency of the request. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html">Ensuring Idempotency</a>.<br/>
        :return: ScheduledInstanceSet:  Information about the Scheduled Instances.<br/>        """
        pass

    def reboot_instances(self, InstanceIds: List[InstanceId], DryRun: Boolean=None):
        r"""Requests a reboot of the specified instances. This operation is asynchronous; it only queues a request to reboot the specified instances. The operation succeeds if the instances are valid and belong to you. Requests to reboot terminated instances are ignored. If an instance does not cleanly shut down within a few minutes, Amazon EC2 performs a hard reboot. For more information about troubleshooting, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-console.html">Getting console output and rebooting instances</a> in the <i>Amazon EC2 User Guide</i>.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>InstanceIds:  The instance IDs.<br/>
        :return:         """
        pass

    def register_image(self, Name: str, ImageLocation: str=None, Architecture: str=None, BlockDeviceMappings: List[BlockDeviceMapping]=None, Description: str=None, DryRun: Boolean=None, EnaSupport: Boolean=None, KernelId: str=None, BillingProducts: List[String]=None, RamdiskId: str=None, RootDeviceName: str=None, SriovNetSupport: str=None, VirtualizationType: str=None, BootMode: str=None) -> RegisterImageResult:
        r"""Registers an AMI. When you're creating an AMI, this is the final step you must complete before you can launch an instance from the AMI. For more information about creating AMIs, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami.html">Creating your own AMIs</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>. <note> For Amazon EBS-backed instances, <a>CreateImage</a> creates and registers the AMI in a single request, so you don't have to register the AMI yourself. </note> If needed, you can deregister an AMI at any time. Any modifications you make to an AMI backed by an instance store volume invalidates its registration. If you make changes to an image, deregister the previous image and register the new image.  <b>Register a snapshot of a root device volume</b>  You can use <code>RegisterImage</code> to create an Amazon EBS-backed Linux AMI from a snapshot of a root device volume. You specify the snapshot using a block device mapping. You can't set the encryption state of the volume using the block device mapping. If the snapshot is encrypted, or encryption by default is enabled, the root volume of an instance launched from the AMI is encrypted. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-ebs.html#creating-launching-ami-from-snapshot">Create a Linux AMI from a snapshot</a> and <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AMIEncryption.html">Use encryption with EBS-backed AMIs</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.  <b>AWS Marketplace product codes</b>  If any snapshots have AWS Marketplace product codes, they are copied to the new AMI. Windows and some Linux distributions, such as Red Hat Enterprise Linux (RHEL) and SUSE Linux Enterprise Server (SLES), use the EC2 billing product code associated with an AMI to verify the subscription status for package updates. To create a new AMI for operating systems that require a billing product code, instead of registering the AMI, do the following to preserve the billing product code association: <ol> <li> Launch an instance from an existing AMI with that billing product code. </li> <li> Customize the instance. </li> <li> Create an AMI from the instance using <a>CreateImage</a>. </li> </ol> If you purchase a Reserved Instance to apply to an On-Demand Instance that was launched from an AMI with a billing product code, make sure that the Reserved Instance has the matching billing product code. If you purchase a Reserved Instance without the matching billing product code, the Reserved Instance will not be applied to the On-Demand Instance. For information about how to obtain the platform details and billing information of an AMI, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-billing-info.html">Obtaining billing information</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.

        :param self:
        :param BootMode:  The boot mode of the AMI. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-boot.html">Boot modes</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.<br/>VirtualizationType:  The type of virtualization (<code>hvm</code> | <code>paravirtual</code>). Default: <code>paravirtual</code> <br/>SriovNetSupport:  Set to <code>simple</code> to enable enhanced networking with the Intel 82599 Virtual Function interface for the AMI and any instances that you launch from the AMI. There is no way to disable <code>sriovNetSupport</code> at this time. This option is supported only for HVM AMIs. Specifying this option with a PV AMI can make instances launched from the AMI unreachable.<br/>RootDeviceName:  The device name of the root device volume (for example, <code>/dev/sda1</code>).<br/>RamdiskId:  The ID of the RAM disk.<br/>BillingProducts:  The billing product codes. Your account must be authorized to specify billing product codes. Otherwise, you can use the AWS Marketplace to bill for the use of an AMI.<br/>Name:  A name for your AMI. Constraints: 3-128 alphanumeric characters, parentheses (()), square brackets ([]), spaces ( ), periods (.), slashes (/), dashes (-), single quotes ('), at-signs (@), or underscores(_)<br/>KernelId:  The ID of the kernel.<br/>EnaSupport:  Set to <code>true</code> to enable enhanced networking with ENA for the AMI and any instances that you launch from the AMI. This option is supported only for HVM AMIs. Specifying this option with a PV AMI can make instances launched from the AMI unreachable.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>Description:  A description for your AMI.<br/>BlockDeviceMappings:  The block device mapping entries. If you specify an EBS volume using the ID of an EBS snapshot, you can't specify the encryption state of the volume. If you create an AMI on an Outpost, then all backing snapshots must be on the same Outpost or in the Region of that Outpost. AMIs on an Outpost that include local snapshots can be used to launch instances on the same Outpost only. For more information, <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/snapshots-outposts.html#ami"> Amazon EBS local snapshots on Outposts</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.<br/>Architecture:  The architecture of the AMI. Default: For Amazon EBS-backed AMIs, <code>i386</code>. For instance store-backed AMIs, the architecture specified in the manifest file.<br/>ImageLocation:  The full path to your AMI manifest in Amazon S3 storage. The specified bucket must have the <code>aws-exec-read</code> canned access control list (ACL) to ensure that it can be accessed by Amazon EC2. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl">Canned ACLs</a> in the <i>Amazon S3 Service Developer Guide</i>.<br/>
        :return: ImageId:  The ID of the newly registered AMI.<br/>        """
        pass

    def register_instance_event_notification_attributes(self, DryRun: Boolean=None, InstanceTagAttribute: RegisterInstanceTagAttributeRequest=None) -> RegisterInstanceEventNotificationAttributesResult:
        r"""Registers a set of tag keys to include in scheduled event notifications for your resources.  To remove tags, use .

        :param self:
        :param InstanceTagAttribute:  Information about the tag keys to register.:<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceTagKeys</i> The tag keys to register.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeAllTagsOfInstance</i> Indicates whether to register all tag keys in the current Region. Specify <code>true</code> to register all tag keys.<br/>
        :return: InstanceTagAttribute:  The resulting set of tag keys.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeAllTagsOfInstance</i> Indicates wheter all tag keys in the current Region are registered to appear in scheduled event notifications. <code>true</code> indicates that all tag keys in the current Region are registered.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceTagKeys</i> The registered tag keys.<br/>        """
        pass

    def register_transit_gateway_multicast_group_members(self, TransitGatewayMulticastDomainId: str=None, GroupIpAddress: str=None, NetworkInterfaceIds: List[NetworkInterfaceId]=None, DryRun: Boolean=None) -> RegisterTransitGatewayMulticastGroupMembersResult:
        r"""Registers members (network interfaces) with the transit gateway multicast group. A member is a network interface associated with a supported EC2 instance that receives multicast traffic. For information about supported instances, see <a href="https://docs.aws.amazon.com/vpc/latest/tgw/transit-gateway-limits.html#multicast-limits">Multicast Consideration</a> in <i>Amazon VPC Transit Gateways</i>. After you add the members, use <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_SearchTransitGatewayMulticastGroups.html">SearchTransitGatewayMulticastGroups</a> to verify that the members were added to the transit gateway multicast group.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>NetworkInterfaceIds:  The group members' network interface IDs to register with the transit gateway multicast group.<br/>GroupIpAddress:  The IP address assigned to the transit gateway multicast group.<br/>TransitGatewayMulticastDomainId:  The ID of the transit gateway multicast domain.<br/>
        :return: RegisteredMulticastGroupMembers:  Information about the registered transit gateway multicast group members.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GroupIpAddress</i> The IP address assigned to the transit gateway multicast group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RegisteredNetworkInterfaceIds</i> The ID of the registered network interfaces.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayMulticastDomainId</i> The ID of the transit gateway multicast domain.<br/>        """
        pass

    def register_transit_gateway_multicast_group_sources(self, TransitGatewayMulticastDomainId: str=None, GroupIpAddress: str=None, NetworkInterfaceIds: List[NetworkInterfaceId]=None, DryRun: Boolean=None) -> RegisterTransitGatewayMulticastGroupSourcesResult:
        r"""Registers sources (network interfaces) with the specified transit gateway multicast group. A multicast source is a network interface attached to a supported instance that sends multicast traffic. For information about supported instances, see <a href="https://docs.aws.amazon.com/vpc/latest/tgw/transit-gateway-limits.html#multicast-limits">Multicast Considerations</a> in <i>Amazon VPC Transit Gateways</i>. After you add the source, use <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_SearchTransitGatewayMulticastGroups.html">SearchTransitGatewayMulticastGroups</a> to verify that the source was added to the multicast group.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>NetworkInterfaceIds:  The group sources' network interface IDs to register with the transit gateway multicast group.<br/>GroupIpAddress:  The IP address assigned to the transit gateway multicast group.<br/>TransitGatewayMulticastDomainId:  The ID of the transit gateway multicast domain.<br/>
        :return: RegisteredMulticastGroupSources:  Information about the transit gateway multicast group sources.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GroupIpAddress</i> The IP address assigned to the transit gateway multicast group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RegisteredNetworkInterfaceIds</i> The IDs of the network interfaces members registered with the transit gateway multicast group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayMulticastDomainId</i> The ID of the transit gateway multicast domain.<br/>        """
        pass

    def reject_transit_gateway_multicast_domain_associations(self, TransitGatewayMulticastDomainId: str=None, TransitGatewayAttachmentId: str=None, SubnetIds: List[String]=None, DryRun: Boolean=None) -> RejectTransitGatewayMulticastDomainAssociationsResult:
        r"""Rejects a request to associate cross-account subnets with a transit gateway multicast domain.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>SubnetIds:  The IDs of the subnets to associate with the transit gateway multicast domain.<br/>TransitGatewayAttachmentId:  The ID of the transit gateway attachment.<br/>TransitGatewayMulticastDomainId:  The ID of the transit gateway multicast domain.<br/>
        :return: Associations:  Describes the multicast domain associations.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Subnets</i> The subnets associated with the multicast domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceOwnerId</i>  The ID of the AWS account that owns the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceType</i> The type of resource, for example a VPC attachment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceId</i> The ID of the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayAttachmentId</i> The ID of the transit gateway attachment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayMulticastDomainId</i> The ID of the transit gateway multicast domain.<br/>        """
        pass

    def reject_transit_gateway_peering_attachment(self, TransitGatewayAttachmentId: str, DryRun: Boolean=None) -> RejectTransitGatewayPeeringAttachmentResult:
        r"""Rejects a transit gateway peering attachment request.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>TransitGatewayAttachmentId:  The ID of the transit gateway peering attachment.<br/>
        :return: TransitGatewayPeeringAttachment:  The transit gateway peering attachment.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The tags for the transit gateway peering attachment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The time the transit gateway peering attachment was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the transit gateway peering attachment. Note that the <code>initiating</code> state has been deprecated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the transit gateway peering attachment.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Status</b>: The status of the transit gateway peering attachment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccepterTgwInfo</i> Information about the accepter transit gateway.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AccepterTgwInfo</b>: Information about the accepter transit gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequesterTgwInfo</i> Information about the requester transit gateway.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RequesterTgwInfo</b>: Information about the requester transit gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayAttachmentId</i> The ID of the transit gateway peering attachment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Region</i> The Region of the transit gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> The AWS account ID of the owner of the transit gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayId</i> The ID of the transit gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Region</i> The Region of the transit gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> The AWS account ID of the owner of the transit gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayId</i> The ID of the transit gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> The status message, if applicable.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Code</i> The status code.<br/>        """
        pass

    def reject_transit_gateway_vpc_attachment(self, TransitGatewayAttachmentId: str, DryRun: Boolean=None) -> RejectTransitGatewayVpcAttachmentResult:
        r"""Rejects a request to attach a VPC to a transit gateway. The VPC attachment must be in the <code>pendingAcceptance</code> state. Use <a>DescribeTransitGatewayVpcAttachments</a> to view your pending VPC attachment requests. Use <a>AcceptTransitGatewayVpcAttachment</a> to accept a VPC attachment request.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>TransitGatewayAttachmentId:  The ID of the attachment.<br/>
        :return: TransitGatewayVpcAttachment:  Information about the attachment.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The tags for the VPC attachment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Options</i> The VPC attachment options.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Options</b>: The VPC attachment options.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The creation time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetIds</i> The IDs of the subnets.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the VPC attachment. Note that the <code>initiating</code> state has been deprecated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcOwnerId</i> The ID of the AWS account that owns the VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The ID of the VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayId</i> The ID of the transit gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayAttachmentId</i> The ID of the attachment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplianceModeSupport</i> Indicates whether appliance mode support is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Ipv6Support</i> Indicates whether IPv6 support is disabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DnsSupport</i> Indicates whether DNS support is enabled.<br/>        """
        pass

    def reject_vpc_endpoint_connections(self, VpcEndpointIds: List[VpcEndpointId], ServiceId: str, DryRun: Boolean=None) -> RejectVpcEndpointConnectionsResult:
        r"""Rejects one or more VPC endpoint connection requests to your VPC endpoint service.

        :param self:
        :param VpcEndpointIds:  The IDs of one or more VPC endpoints.<br/>ServiceId:  The ID of the service.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: Unsuccessful:  Information about the endpoints that were not rejected, if applicable.<br/>        """
        pass

    def reject_vpc_peering_connection(self, VpcPeeringConnectionId: str, DryRun: Boolean=None) -> RejectVpcPeeringConnectionResult:
        r"""Rejects a VPC peering connection request. The VPC peering connection must be in the <code>pending-acceptance</code> state. Use the <a>DescribeVpcPeeringConnections</a> request to view your outstanding VPC peering connection requests. To delete an active VPC peering connection, or to delete a VPC peering connection request that you initiated, use <a>DeleteVpcPeeringConnection</a>.

        :param self:
        :param VpcPeeringConnectionId:  The ID of the VPC peering connection.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: Return:  Returns <code>true</code> if the request succeeds; otherwise, it returns an error.<br/>        """
        pass

    def release_address(self, AllocationId: str=None, PublicIp: str=None, NetworkBorderGroup: str=None, DryRun: Boolean=None):
        r"""Releases the specified Elastic IP address. [EC2-Classic, default VPC] Releasing an Elastic IP address automatically disassociates it from any instance that it's associated with. To disassociate an Elastic IP address without releasing it, use <a>DisassociateAddress</a>. [Nondefault VPC] You must use <a>DisassociateAddress</a> to disassociate the Elastic IP address before you can release it. Otherwise, Amazon EC2 returns an error (<code>InvalidIPAddress.InUse</code>). After releasing an Elastic IP address, it is released to the IP address pool. Be sure to update your DNS records and any servers or devices that communicate with the address. If you attempt to release an Elastic IP address that you already released, you'll get an <code>AuthFailure</code> error if the address is already allocated to another account. [EC2-VPC] After you release an Elastic IP address for use in a VPC, you might be able to recover it. For more information, see <a>AllocateAddress</a>.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>NetworkBorderGroup:  The set of Availability Zones, Local Zones, or Wavelength Zones from which AWS advertises IP addresses. If you provide an incorrect network border group, you will receive an <code>InvalidAddress.NotFound</code> error. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/errors-overview.html">Error Codes</a>. <note> You cannot use a network border group with EC2 Classic. If you attempt this operation on EC2 classic, you will receive an <code>InvalidParameterCombination</code> error. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/errors-overview.html">Error Codes</a>. </note><br/>PublicIp:  [EC2-Classic] The Elastic IP address. Required for EC2-Classic.<br/>AllocationId:  [EC2-VPC] The allocation ID. Required for EC2-VPC.<br/>
        :return:         """
        pass

    def release_hosts(self, HostIds: List[DedicatedHostId]) -> ReleaseHostsResult:
        r"""When you no longer want to use an On-Demand Dedicated Host it can be released. On-Demand billing is stopped and the host goes into <code>released</code> state. The host ID of Dedicated Hosts that have been released can no longer be specified in another request, for example, to modify the host. You must stop or terminate all instances on a host before it can be released. When Dedicated Hosts are released, it may take some time for them to stop counting toward your limit and you may receive capacity errors when trying to allocate new Dedicated Hosts. Wait a few minutes and then try again. Released hosts still appear in a <a>DescribeHosts</a> response.

        :param self:
        :param HostIds:  The IDs of the Dedicated Hosts to release.<br/>
        :return: Unsuccessful:  The IDs of the Dedicated Hosts that could not be released, including an error message.<br/>Successful:  The IDs of the Dedicated Hosts that were successfully released.<br/>        """
        pass

    def replace_iam_instance_profile_association(self, AssociationId: str, IamInstanceProfile: IamInstanceProfileSpecification) -> ReplaceIamInstanceProfileAssociationResult:
        r"""Replaces an IAM instance profile for the specified running instance. You can use this action to change the IAM instance profile that's associated with an instance without having to disassociate the existing IAM instance profile first. Use <a>DescribeIamInstanceProfileAssociations</a> to get the association ID.

        :param self:
        :param AssociationId:  The ID of the existing IAM instance profile association.<br/>IamInstanceProfile:  The IAM instance profile.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the instance profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the instance profile.<br/>
        :return: IamInstanceProfileAssociation:  Information about the IAM instance profile association.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Timestamp</i> The time the IAM instance profile was associated with the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the association.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IamInstanceProfile</i> The IAM instance profile.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>IamInstanceProfile</b>: The IAM instance profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceId</i> The ID of the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociationId</i> The ID of the association.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID of the instance profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the instance profile.<br/>        """
        pass

    def replace_network_acl_association(self, NetworkAclId: str, AssociationId: str, DryRun: Boolean=None) -> ReplaceNetworkAclAssociationResult:
        r"""Changes which network ACL a subnet is associated with. By default when you create a subnet, it's automatically associated with the default network ACL. For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_ACLs.html">Network ACLs</a> in the <i>Amazon Virtual Private Cloud User Guide</i>. This is an idempotent operation.

        :param self:
        :param NetworkAclId:  The ID of the new network ACL to associate with the subnet.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>AssociationId:  The ID of the current association between the original network ACL and the subnet.<br/>
        :return: NewAssociationId:  The ID of the new association.<br/>        """
        pass

    def replace_network_acl_entry(self, RuleNumber: int, RuleAction: str, Protocol: str, NetworkAclId: str, Egress: Boolean, CidrBlock: str=None, DryRun: Boolean=None, IcmpTypeCode: IcmpTypeCode=None, Ipv6CidrBlock: str=None, PortRange: PortRange=None):
        r"""Replaces an entry (rule) in a network ACL. For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_ACLs.html">Network ACLs</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.

        :param self:
        :param RuleNumber:  The rule number of the entry to replace.<br/>RuleAction:  Indicates whether to allow or deny the traffic that matches the rule.<br/>Protocol:  The protocol number. A value of "-1" means all protocols. If you specify "-1" or a protocol number other than "6" (TCP), "17" (UDP), or "1" (ICMP), traffic on all ports is allowed, regardless of any ports or ICMP types or codes that you specify. If you specify protocol "58" (ICMPv6) and specify an IPv4 CIDR block, traffic for all ICMP types and codes allowed, regardless of any that you specify. If you specify protocol "58" (ICMPv6) and specify an IPv6 CIDR block, you must specify an ICMP type and code.<br/>PortRange:  TCP or UDP protocols: The range of ports the rule applies to. Required if specifying protocol 6 (TCP) or 17 (UDP).:<br/>NetworkAclId:  The ID of the ACL.<br/>Ipv6CidrBlock:  The IPv6 network range to allow or deny, in CIDR notation (for example <code>2001:bd8:1234:1a00::/64</code>).<br/>IcmpTypeCode:  ICMP protocol: The ICMP or ICMPv6 type and code. Required if specifying protocol 1 (ICMP) or protocol 58 (ICMPv6) with an IPv6 CIDR block.:<br/>Egress:  Indicates whether to replace the egress rule. Default: If no value is specified, we replace the ingress rule.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>CidrBlock:  The IPv4 network range to allow or deny, in CIDR notation (for example <code>172.16.0.0/24</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The ICMP type. A value of -1 means all types.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Code</i> The ICMP code. A value of -1 means all codes for the specified ICMP type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>To</i> The last port in the range.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>From</i> The first port in the range.<br/>
        :return:         """
        pass

    def replace_route(self, RouteTableId: str, DestinationCidrBlock: str=None, DestinationIpv6CidrBlock: str=None, DestinationPrefixListId: str=None, DryRun: Boolean=None, VpcEndpointId: str=None, EgressOnlyInternetGatewayId: str=None, GatewayId: str=None, InstanceId: str=None, LocalTarget: Boolean=None, NatGatewayId: str=None, TransitGatewayId: str=None, LocalGatewayId: str=None, CarrierGatewayId: str=None, NetworkInterfaceId: str=None, VpcPeeringConnectionId: str=None):
        r"""Replaces an existing route within a route table in a VPC. You must provide only one of the following: internet gateway, virtual private gateway, NAT instance, NAT gateway, VPC peering connection, network interface, egress-only internet gateway, or transit gateway. For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html">Route Tables</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.

        :param self:
        :param VpcPeeringConnectionId:  The ID of a VPC peering connection.<br/>RouteTableId:  The ID of the route table.<br/>NetworkInterfaceId:  The ID of a network interface.<br/>CarrierGatewayId:  [IPv4 traffic only] The ID of a carrier gateway.<br/>LocalGatewayId:  The ID of the local gateway.<br/>TransitGatewayId:  The ID of a transit gateway.<br/>NatGatewayId:  [IPv4 traffic only] The ID of a NAT gateway.<br/>LocalTarget:  Specifies whether to reset the local route to its default target (<code>local</code>).<br/>InstanceId:  The ID of a NAT instance in your VPC.<br/>GatewayId:  The ID of an internet gateway or virtual private gateway.<br/>EgressOnlyInternetGatewayId:  [IPv6 traffic only] The ID of an egress-only internet gateway.<br/>VpcEndpointId:  The ID of a VPC endpoint. Supported for Gateway Load Balancer endpoints only.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>DestinationPrefixListId:  The ID of the prefix list for the route.<br/>DestinationIpv6CidrBlock:  The IPv6 CIDR address block used for the destination match. The value that you provide must match the CIDR of an existing route in the table.<br/>DestinationCidrBlock:  The IPv4 CIDR address block used for the destination match. The value that you provide must match the CIDR of an existing route in the table.<br/>
        :return:         """
        pass

    def replace_route_table_association(self, RouteTableId: str, AssociationId: str, DryRun: Boolean=None) -> ReplaceRouteTableAssociationResult:
        r"""Changes the route table associated with a given subnet, internet gateway, or virtual private gateway in a VPC. After the operation completes, the subnet or gateway uses the routes in the new route table. For more information about route tables, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html">Route Tables</a> in the <i>Amazon Virtual Private Cloud User Guide</i>. You can also use this operation to change which table is the main route table in the VPC. Specify the main route table's association ID and the route table ID of the new main route table.

        :param self:
        :param RouteTableId:  The ID of the new route table to associate with the subnet.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>AssociationId:  The association ID.<br/>
        :return: AssociationState:  The state of the association.:<br/>NewAssociationId:  The ID of the new association.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusMessage</i> The status message, if applicable.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the association.<br/>        """
        pass

    def replace_transit_gateway_route(self, TransitGatewayRouteTableId: str, DestinationCidrBlock: str, TransitGatewayAttachmentId: str=None, Blackhole: Boolean=None, DryRun: Boolean=None) -> ReplaceTransitGatewayRouteResult:
        r"""Replaces the specified route in the specified transit gateway route table.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>Blackhole:  Indicates whether traffic matching this route is to be dropped.<br/>TransitGatewayAttachmentId:  The ID of the attachment.<br/>TransitGatewayRouteTableId:  The ID of the route table.<br/>DestinationCidrBlock:  The CIDR range used for the destination match. Routing decisions are based on the most specific match.<br/>
        :return: Route:  Information about the modified route.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the route.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The route type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayAttachments</i> The attachments.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PrefixListId</i> The ID of the prefix list used for destination matches.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DestinationCidrBlock</i> The CIDR block used for destination matches.<br/>        """
        pass

    def report_instance_status(self, Status: str, ReasonCodes: List[ReportInstanceReasonCodes], Instances: List[InstanceId], Description: str=None, DryRun: Boolean=None, EndTime: DateTime=None, StartTime: DateTime=None):
        r"""Submits feedback about the status of an instance. The instance must be in the <code>running</code> state. If your experience with the instance differs from the instance status returned by <a>DescribeInstanceStatus</a>, use <a>ReportInstanceStatus</a> to report your experience with the instance. Amazon EC2 collects this information to improve the accuracy of status checks. Use of this action does not change the value returned by <a>DescribeInstanceStatus</a>.

        :param self:
        :param Status:  The status of all instances listed.<br/>StartTime:  The time at which the reported instance health state began.<br/>ReasonCodes:  The reason codes that describe the health state of your instance. <ul> <li>  <code>instance-stuck-in-state</code>: My instance is stuck in a state. </li> <li>  <code>unresponsive</code>: My instance is unresponsive. </li> <li>  <code>not-accepting-credentials</code>: My instance is not accepting my credentials. </li> <li>  <code>password-not-available</code>: A password is not available for my instance. </li> <li>  <code>performance-network</code>: My instance is experiencing performance problems that I believe are network related. </li> <li>  <code>performance-instance-store</code>: My instance is experiencing performance problems that I believe are related to the instance stores. </li> <li>  <code>performance-ebs-volume</code>: My instance is experiencing performance problems that I believe are related to an EBS volume. </li> <li>  <code>performance-other</code>: My instance is experiencing performance problems. </li> <li>  <code>other</code>: [explain using the description parameter] </li> </ul><br/>Instances:  The instances.<br/>EndTime:  The time at which the reported instance health state ended.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>Description:  Descriptive text about the health state of your instance.<br/>
        :return:         """
        pass

    def request_spot_fleet(self, SpotFleetRequestConfig: SpotFleetRequestConfigData, DryRun: Boolean=None) -> RequestSpotFleetResponse:
        r"""Creates a Spot Fleet request. The Spot Fleet request specifies the total target capacity and the On-Demand target capacity. Amazon EC2 calculates the difference between the total capacity and On-Demand capacity, and launches the difference as Spot capacity. You can submit a single request that includes multiple launch specifications that vary by instance type, AMI, Availability Zone, or subnet. By default, the Spot Fleet requests Spot Instances in the Spot Instance pool where the price per unit is the lowest. Each launch specification can include its own instance weighting that reflects the value of the instance type to your application workload. Alternatively, you can specify that the Spot Fleet distribute the target capacity across the Spot pools included in its launch specifications. By ensuring that the Spot Instances in your Spot Fleet are in different Spot pools, you can improve the availability of your fleet. You can specify tags for the Spot Fleet request and instances launched by the fleet. You cannot tag other resource types in a Spot Fleet request because only the <code>spot-fleet-request</code> and <code>instance</code> resource types are supported. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-requests.html">Spot Fleet requests</a> in the <i>Amazon EC2 User Guide for Linux Instances</i>.

        :param self:
        :param SpotFleetRequestConfig:  The configuration for the Spot Fleet request.:<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TagSpecifications</i> The key-value pair for tagging the Spot Fleet request on creation. The value for <code>ResourceType</code> must be <code>spot-fleet-request</code>, otherwise the Spot Fleet request fails. To tag instances at launch, specify the tags in the <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html#create-launch-template">launch template</a> (valid only if you use <code>LaunchTemplateConfigs</code>) or in the <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_SpotFleetTagSpecification.html"> <code>SpotFleetTagSpecification</code> </a> (valid only if you use <code>LaunchSpecifications</code>). For information about tagging after launch, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#tag-resources">Tagging Your Resources</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Context</i> Reserved.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstancePoolsToUseCount</i> The number of Spot pools across which to allocate your target Spot capacity. Valid only when Spot <b>AllocationStrategy</b> is set to <code>lowest-price</code>. Spot Fleet selects the cheapest Spot pools and evenly allocates your target Spot capacity across the number of Spot pools that you specify. Note that Spot Fleet attempts to draw Spot Instances from the number of pools that you specify on a best effort basis. If a pool runs out of Spot capacity before fulfilling your target capacity, Spot Fleet will continue to fulfill your request by drawing from the next cheapest pool. To ensure that your target capacity is met, you might receive Spot Instances from more than the number of pools that you specified. Similarly, if most of the pools have no Spot capacity, you might receive your full target capacity from fewer than the number of pools that you specified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LoadBalancersConfig</i> One or more Classic Load Balancers and target groups to attach to the Spot Fleet request. Spot Fleet registers the running Spot Instances with the specified Classic Load Balancers and target groups. With Network Load Balancers, Spot Fleet cannot register instances that have the following instance types: C1, CC1, CC2, CG1, CG2, CR1, CS1, G1, G2, HI1, HS1, M1, M2, M3, and T1.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>LoadBalancersConfig</b>: One or more Classic Load Balancers and target groups to attach to the Spot Fleet request. Spot Fleet registers the running Spot Instances with the specified Classic Load Balancers and target groups. With Network Load Balancers, Spot Fleet cannot register instances that have the following instance types: C1, CC1, CC2, CG1, CG2, CR1, CS1, G1, G2, HI1, HS1, M1, M2, M3, and T1.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceInterruptionBehavior</i> The behavior when a Spot Instance is interrupted. The default is <code>terminate</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplaceUnhealthyInstances</i> Indicates whether Spot Fleet should replace unhealthy instances.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ValidUntil</i> The end date and time of the request, in UTC format (<i>YYYY</i>-<i>MM</i>-<i>DD</i>T<i>HH</i>:<i>MM</i>:<i>SS</i>Z). After the end date and time, no new Spot Instance requests are placed or able to fulfill the request. If no value is specified, the Spot Fleet request remains until you cancel it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ValidFrom</i> The start date and time of the request, in UTC format (<i>YYYY</i>-<i>MM</i>-<i>DD</i>T<i>HH</i>:<i>MM</i>:<i>SS</i>Z). By default, Amazon EC2 starts fulfilling the request immediately.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of request. Indicates whether the Spot Fleet only requests the target capacity or also attempts to maintain it. When this value is <code>request</code>, the Spot Fleet only places the required requests. It does not attempt to replenish Spot Instances if capacity is diminished, nor does it submit requests in alternative Spot pools if capacity is not available. When this value is <code>maintain</code>, the Spot Fleet maintains the target capacity. The Spot Fleet places the required requests to meet capacity and automatically replenishes any interrupted instances. Default: <code>maintain</code>. <code>instant</code> is listed but is not used by Spot Fleet.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TerminateInstancesWithExpiration</i> Indicates whether running Spot Instances are terminated when the Spot Fleet request expires.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SpotMaxTotalPrice</i> The maximum amount per hour for Spot Instances that you're willing to pay. You can use the <code>spotdMaxTotalPrice</code> parameter, the <code>onDemandMaxTotalPrice</code> parameter, or both parameters to ensure that your fleet cost does not exceed your budget. If you set a maximum price per hour for the On-Demand Instances and Spot Instances in your request, Spot Fleet will launch instances until it reaches the maximum amount you're willing to pay. When the maximum amount you're willing to pay is reached, the fleet stops launching instances even if it hasn’t met the target capacity.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OnDemandMaxTotalPrice</i> The maximum amount per hour for On-Demand Instances that you're willing to pay. You can use the <code>onDemandMaxTotalPrice</code> parameter, the <code>spotMaxTotalPrice</code> parameter, or both parameters to ensure that your fleet cost does not exceed your budget. If you set a maximum price per hour for the On-Demand Instances and Spot Instances in your request, Spot Fleet will launch instances until it reaches the maximum amount you're willing to pay. When the maximum amount you're willing to pay is reached, the fleet stops launching instances even if it hasn’t met the target capacity.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OnDemandTargetCapacity</i> The number of On-Demand units to request. You can choose to set the target capacity in terms of instances or a performance characteristic that is important to your application workload, such as vCPUs, memory, or I/O. If the request type is <code>maintain</code>, you can specify a target capacity of 0 and add capacity later.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetCapacity</i> The number of units to request for the Spot Fleet. You can choose to set the target capacity in terms of instances or a performance characteristic that is important to your application workload, such as vCPUs, memory, or I/O. If the request type is <code>maintain</code>, you can specify a target capacity of 0 and add capacity later.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SpotPrice</i> The maximum price per unit hour that you are willing to pay for a Spot Instance. The default is the On-Demand price.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LaunchTemplateConfigs</i> The launch template and overrides. If you specify <code>LaunchTemplateConfigs</code>, you can't specify <code>LaunchSpecifications</code>. If you include On-Demand capacity in your request, you must use <code>LaunchTemplateConfigs</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LaunchSpecifications</i> The launch specifications for the Spot Fleet request. If you specify <code>LaunchSpecifications</code>, you can't specify <code>LaunchTemplateConfigs</code>. If you include On-Demand capacity in your request, you must use <code>LaunchTemplateConfigs</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IamFleetRole</i> The Amazon Resource Name (ARN) of an Identity and Access Management (IAM) role that grants the Spot Fleet the permission to request, launch, terminate, and tag instances on your behalf. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-requests.html#spot-fleet-prerequisites">Spot Fleet prerequisites</a> in the <i>Amazon EC2 User Guide for Linux Instances</i>. Spot Fleet can terminate Spot Instances on your behalf when you cancel its Spot Fleet request using <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CancelSpotFleetRequests">CancelSpotFleetRequests</a> or when the Spot Fleet request expires, if you set <code>TerminateInstancesWithExpiration</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OnDemandFulfilledCapacity</i> The number of On-Demand units fulfilled by this request compared to the set target On-Demand capacity.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FulfilledCapacity</i> The number of units fulfilled by this request compared to the set target capacity. You cannot set this value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExcessCapacityTerminationPolicy</i> Indicates whether running Spot Instances should be terminated if you decrease the target capacity of the Spot Fleet request below the current size of the Spot Fleet.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClientToken</i> A unique, case-sensitive identifier that you provide to ensure the idempotency of your listings. This helps to avoid duplicate listings. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html">Ensuring Idempotency</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SpotMaintenanceStrategies</i> The strategies for managing your Spot Instances that are at an elevated risk of being interrupted.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SpotMaintenanceStrategies</b>: The strategies for managing your Spot Instances that are at an elevated risk of being interrupted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OnDemandAllocationStrategy</i> The order of the launch template overrides to use in fulfilling On-Demand capacity. If you specify <code>lowestPrice</code>, Spot Fleet uses price to determine the order, launching the lowest price first. If you specify <code>prioritized</code>, Spot Fleet uses the priority that you assign to each Spot Fleet launch template override, launching the highest priority first. If you do not specify a value, Spot Fleet defaults to <code>lowestPrice</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllocationStrategy</i> Indicates how to allocate the target Spot Instance capacity across the Spot Instance pools specified by the Spot Fleet request. If the allocation strategy is <code>lowestPrice</code>, Spot Fleet launches instances from the Spot Instance pools with the lowest price. This is the default allocation strategy. If the allocation strategy is <code>diversified</code>, Spot Fleet launches instances from all the Spot Instance pools that you specify. If the allocation strategy is <code>capacityOptimized</code> (recommended), Spot Fleet launches instances from Spot Instance pools with optimal capacity for the number of instances that are launching. To give certain instance types a higher chance of launching first, use <code>capacityOptimizedPrioritized</code>. Set a priority for each instance type by using the <code>Priority</code> parameter for <code>LaunchTemplateOverrides</code>. You can assign the same priority to different <code>LaunchTemplateOverrides</code>. EC2 implements the priorities on a best-effort basis, but optimizes for capacity first. <code>capacityOptimizedPrioritized</code> is supported only if your Spot Fleet uses a launch template. Note that if the <code>OnDemandAllocationStrategy</code> is set to <code>prioritized</code>, the same priority is applied when fulfilling On-Demand capacity.<br/>The strategy to use when Amazon EC2 emits a signal that your Spot Instance is at an elevated risk of being interrupted.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CapacityRebalance</b>: The strategy to use when Amazon EC2 emits a signal that your Spot Instance is at an elevated risk of being interrupted.The Classic Load Balancers.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ClassicLoadBalancersConfig</b>: The Classic Load Balancers.
        :return: SpotFleetRequestId:  The ID of the Spot Fleet request.<br/>        """
        pass

    def request_spot_instances(self, AvailabilityZoneGroup: str=None, BlockDurationMinutes: int=None, ClientToken: str=None, DryRun: Boolean=None, InstanceCount: int=None, LaunchGroup: str=None, LaunchSpecification: RequestSpotLaunchSpecification=None, SpotPrice: str=None, Type: str=None, ValidFrom: DateTime=None, ValidUntil: DateTime=None, TagSpecifications: List[TagSpecification]=None, InstanceInterruptionBehavior: str=None) -> RequestSpotInstancesResult:
        r"""Creates a Spot Instance request. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-requests.html">Spot Instance requests</a> in the <i>Amazon EC2 User Guide for Linux Instances</i>.

        :param self:
        :param InstanceInterruptionBehavior:  The behavior when a Spot Instance is interrupted. The default is <code>terminate</code>.<br/>TagSpecifications:  The key-value pair for tagging the Spot Instance request on creation. The value for <code>ResourceType</code> must be <code>spot-instances-request</code>, otherwise the Spot Instance request fails. To tag the Spot Instance request after it has been created, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html">CreateTags</a>. <br/>ValidUntil:  The end date of the request, in UTC format (<i>YYYY</i>-<i>MM</i>-<i>DD</i>T<i>HH</i>:<i>MM</i>:<i>SS</i>Z). <ul> <li> For a persistent request, the request remains active until the <code>ValidUntil</code> date and time is reached. Otherwise, the request remains active until you cancel it.  </li> <li> For a one-time request, the request remains active until all instances launch, the request is canceled, or the <code>ValidUntil</code> date and time is reached. By default, the request is valid for 7 days from the date the request was created. </li> </ul><br/>ValidFrom:  The start date of the request. If this is a one-time request, the request becomes active at this date and time and remains active until all instances launch, the request expires, or the request is canceled. If the request is persistent, the request becomes active at this date and time and remains active until it expires or is canceled. The specified start date and time cannot be equal to the current date and time. You must specify a start date and time that occurs after the current date and time.<br/>Type:  The Spot Instance request type. Default: <code>one-time</code> <br/>SpotPrice:  The maximum price per hour that you are willing to pay for a Spot Instance. The default is the On-Demand price.<br/>LaunchSpecification:  The launch specification.:<br/>LaunchGroup:  The instance launch group. Launch groups are Spot Instances that launch together and terminate together. Default: Instances are launched and terminated individually<br/>InstanceCount:  The maximum number of Spot Instances to launch. Default: 1<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>ClientToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Run_Instance_Idempotency.html">How to Ensure Idempotency</a> in the <i>Amazon EC2 User Guide for Linux Instances</i>.<br/>BlockDurationMinutes:  Deprecated.<br/>AvailabilityZoneGroup:  The user-specified name for a logical grouping of requests. When you specify an Availability Zone group in a Spot Instance request, all Spot Instances in the request are launched in the same Availability Zone. Instance proximity is maintained with this parameter, but the choice of Availability Zone is not. The group applies only to requests for Spot Instances of the same instance type. Any additional Spot Instance requests that are specified with the same Availability Zone group name are launched in that same Availability Zone, as long as at least one instance from the group is still active. If there is no active instance running in the Availability Zone group that you specify for a new Spot Instance request (all instances are terminated, the request is expired, or the maximum price you specified falls below current Spot price), then Amazon EC2 launches the instance in any Availability Zone where the constraint can be met. Consequently, the subsequent set of Spot Instances could be placed in a different zone from the original request, even if you specified the same Availability Zone group. Default: Instances are launched in any available Availability Zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserData</i> The Base64-encoded user data for the instance. User data is limited to 16 KB.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetId</i> The ID of the subnet in which to launch the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RamdiskId</i> The ID of the RAM disk.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Placement</i> The placement information for the instance.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Placement</b>: The placement information for the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkInterfaces</i> One or more network interfaces. If you specify a network interface, you must specify subnet IDs and security group IDs using the network interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Monitoring</i> Indicates whether basic or detailed monitoring is enabled for the instance. Default: Disabled&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Monitoring</b>: Indicates whether basic or detailed monitoring is enabled for the instance. Default: Disabled<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KeyName</i> The name of the key pair.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KernelId</i> The ID of the kernel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceType</i> The instance type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImageId</i> The ID of the AMI.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IamInstanceProfile</i> The IAM instance profile.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>IamInstanceProfile</b>: The IAM instance profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EbsOptimized</i> Indicates whether the instance is optimized for EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS Optimized instance. Default: <code>false</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BlockDeviceMappings</i> One or more block device mapping entries. You can't specify both a snapshot ID and an encryption value. This is because only blank volumes can be encrypted on creation. If a snapshot is the basis for a volume, it is not blank and its encryption status is used for the volume encryption status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AddressingType</i> Deprecated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroups</i> One or more security groups. When requesting instances in a VPC, you must specify the IDs of the security groups. When requesting instances in EC2-Classic, you can specify the names or the IDs of the security groups.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> One or more security group IDs.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the instance profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the instance profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Indicates whether detailed monitoring is enabled. Otherwise, basic monitoring is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Tenancy</i> The tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of <code>dedicated</code> runs on single-tenant hardware. The <code>host</code> tenancy is not supported for Spot Instances.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>GroupName</i> The name of the placement group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZone</i> The Availability Zone. [Spot Fleet only] To specify multiple Availability Zones, separate them using commas; for example, "us-west-2a, us-west-2b".<br/>
        :return: SpotInstanceRequests:  One or more Spot Instance requests.<br/>        """
        pass

    def reset_address_attribute(self, Attribute: str, AllocationId: str, DryRun: Boolean=None) -> ResetAddressAttributeResult:
        r"""Resets the attribute of the specified IP address. For requirements, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html#Using_Elastic_Addressing_Reverse_DNS">Using reverse DNS for email applications</a>.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>Attribute:  The attribute of the IP address.<br/>AllocationId:  [EC2-VPC] The allocation ID.<br/>
        :return: Address:  Information about the IP address.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PtrRecordUpdate</i> The updated PTR record for the IP address.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PtrRecordUpdate</b>: The updated PTR record for the IP address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PtrRecord</i> The pointer (PTR) record for the IP address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllocationId</i> [EC2-VPC] The allocation ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PublicIp</i> The public IP address.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Reason</i> The reason for the PTR record update.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the PTR record update.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Value</i> The value for the PTR record update.<br/>        """
        pass

    def reset_ebs_default_kms_key_id(self, DryRun: Boolean=None) -> ResetEbsDefaultKmsKeyIdResult:
        r"""Resets the default customer master key (CMK) for EBS encryption for your account in this Region to the AWS managed CMK for EBS. After resetting the default CMK to the AWS managed CMK, you can continue to encrypt by a customer managed CMK by specifying it when you create the volume. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html">Amazon EBS encryption</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: KmsKeyId:  The Amazon Resource Name (ARN) of the default CMK for EBS encryption by default.<br/>        """
        pass

    def reset_fpga_image_attribute(self, FpgaImageId: str, DryRun: Boolean=None, Attribute: str=None) -> ResetFpgaImageAttributeResult:
        r"""Resets the specified attribute of the specified Amazon FPGA Image (AFI) to its default value. You can only reset the load permission attribute.

        :param self:
        :param Attribute:  The attribute.<br/>FpgaImageId:  The ID of the AFI.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: Return:  Is <code>true</code> if the request succeeds, and an error otherwise.<br/>        """
        pass

    def reset_image_attribute(self, ImageId: str, Attribute: str, DryRun: Boolean=None):
        r"""Resets an attribute of an AMI to its default value. <note> The productCodes attribute can't be reset. </note>

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>ImageId:  The ID of the AMI.<br/>Attribute:  The attribute to reset (currently you can only reset the launch permission attribute).<br/>
        :return:         """
        pass

    def reset_instance_attribute(self, InstanceId: str, Attribute: str, DryRun: Boolean=None):
        r"""Resets an attribute of an instance to its default value. To reset the <code>kernel</code> or <code>ramdisk</code>, the instance must be in a stopped state. To reset the <code>sourceDestCheck</code>, the instance can be either running or stopped. The <code>sourceDestCheck</code> attribute controls whether source/destination checking is enabled. The default value is <code>true</code>, which means checking is enabled. This value must be <code>false</code> for a NAT instance to perform NAT. For more information, see <a href="https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_NAT_Instance.html">NAT Instances</a> in the <i>Amazon VPC User Guide</i>.

        :param self:
        :param InstanceId:  The ID of the instance.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>Attribute:  The attribute to reset. <important> You can only reset the following attributes: <code>kernel</code> | <code>ramdisk</code> | <code>sourceDestCheck</code>. To change an instance attribute, use <a>ModifyInstanceAttribute</a>. </important><br/>
        :return:         """
        pass

    def reset_network_interface_attribute(self, NetworkInterfaceId: str, DryRun: Boolean=None, SourceDestCheck: str=None):
        r"""Resets a network interface attribute. You can specify only one attribute at a time.

        :param self:
        :param SourceDestCheck:  The source/destination checking attribute. Resets the value to <code>true</code>.<br/>NetworkInterfaceId:  The ID of the network interface.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return:         """
        pass

    def reset_snapshot_attribute(self, SnapshotId: str, Attribute: str, DryRun: Boolean=None):
        r"""Resets permission settings for the specified snapshot. For more information about modifying snapshot permissions, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-modifying-snapshot-permissions.html">Sharing snapshots</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>SnapshotId:  The ID of the snapshot.<br/>Attribute:  The attribute to reset. Currently, only the attribute for permission to create volumes can be reset.<br/>
        :return:         """
        pass

    def restore_address_to_classic(self, PublicIp: str, DryRun: Boolean=None) -> RestoreAddressToClassicResult:
        r"""Restores an Elastic IP address that was previously moved to the EC2-VPC platform back to the EC2-Classic platform. You cannot move an Elastic IP address that was originally allocated for use in EC2-VPC. The Elastic IP address must not be associated with an instance or network interface.

        :param self:
        :param PublicIp:  The Elastic IP address.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: Status:  The move status for the IP address.<br/>PublicIp:  The Elastic IP address.<br/>        """
        pass

    def restore_managed_prefix_list_version(self, CurrentVersion: Long, PreviousVersion: Long, PrefixListId: str, DryRun: Boolean=None) -> RestoreManagedPrefixListVersionResult:
        r"""Restores the entries from a previous version of a managed prefix list to a new version of the prefix list.

        :param self:
        :param CurrentVersion:  The current version number for the prefix list.<br/>PreviousVersion:  The version to restore.<br/>PrefixListId:  The ID of the prefix list.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: PrefixList:  Information about the prefix list.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> The ID of the owner of the prefix list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The tags for the prefix list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The version of the prefix list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxEntries</i> The maximum number of entries for the prefix list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PrefixListName</i> The name of the prefix list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PrefixListArn</i> The Amazon Resource Name (ARN) for the prefix list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StateMessage</i> The state message.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the prefix list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AddressFamily</i> The IP address version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PrefixListId</i> The ID of the prefix list.<br/>        """
        pass

    def revoke_client_vpn_ingress(self, TargetNetworkCidr: str, ClientVpnEndpointId: str, AccessGroupId: str=None, RevokeAllGroups: Boolean=None, DryRun: Boolean=None) -> RevokeClientVpnIngressResult:
        r"""Removes an ingress authorization rule from a Client VPN endpoint. 

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>RevokeAllGroups:  Indicates whether access should be revoked for all clients.<br/>AccessGroupId:  The ID of the Active Directory group for which to revoke access. <br/>TargetNetworkCidr:  The IPv4 address range, in CIDR notation, of the network for which access is being removed.<br/>ClientVpnEndpointId:  The ID of the Client VPN endpoint with which the authorization rule is associated.<br/>
        :return: Status:  The current state of the authorization rule.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> A message about the status of the authorization rule, if applicable.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Code</i> The state of the authorization rule.<br/>        """
        pass

    def revoke_security_group_egress(self, GroupId: str, DryRun: Boolean=None, IpPermissions: List[IpPermission]=None, SecurityGroupRuleIds: List[String]=None, CidrIp: str=None, FromPort: int=None, IpProtocol: str=None, ToPort: int=None, SourceSecurityGroupName: str=None, SourceSecurityGroupOwnerId: str=None) -> RevokeSecurityGroupEgressResult:
        r"""[VPC only] Removes the specified outbound (egress) rules from a security group for EC2-VPC. This action does not apply to security groups for use in EC2-Classic. You can specify rules using either rule IDs or security group rule properties. If you use rule properties, the values that you specify (for example, ports) must match the existing rule's values exactly. Each rule has a protocol, from and to ports, and destination (CIDR range, security group, or prefix list). For the TCP and UDP protocols, you must also specify the destination port or range of ports. For the ICMP protocol, you must also specify the ICMP type and code. If the security group rule has a description, you do not need to specify the description to revoke the rule. [Default VPC] If the values you specify do not match the existing rule's values, no error is returned, and the output describes the security group rules that were not revoked. Amazon Web Services recommends that you describe the security group to verify that the rules were removed. Rule changes are propagated to instances within the security group as quickly as possible. However, a small delay might occur.

        :param self:
        :param SourceSecurityGroupOwnerId:  Not supported. Use a set of IP permissions to specify a destination security group.<br/>SourceSecurityGroupName:  Not supported. Use a set of IP permissions to specify a destination security group.<br/>ToPort:  Not supported. Use a set of IP permissions to specify the port.<br/>IpProtocol:  Not supported. Use a set of IP permissions to specify the protocol name or number.<br/>FromPort:  Not supported. Use a set of IP permissions to specify the port.<br/>CidrIp:  Not supported. Use a set of IP permissions to specify the CIDR.<br/>SecurityGroupRuleIds:  The IDs of the security group rules.<br/>IpPermissions:  The sets of IP permissions. You can't specify a destination security group and a CIDR IP address range in the same set of permissions.<br/>GroupId:  The ID of the security group.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: UnknownIpPermissions:  The outbound rules that were unknown to the service. In some cases, <code>unknownIpPermissionSet</code> might be in a different format from the request parameter. <br/>Return:  Returns <code>true</code> if the request succeeds; otherwise, returns an error.<br/>        """
        pass

    def revoke_security_group_ingress(self, CidrIp: str=None, FromPort: int=None, GroupId: str=None, GroupName: str=None, IpPermissions: List[IpPermission]=None, IpProtocol: str=None, SourceSecurityGroupName: str=None, SourceSecurityGroupOwnerId: str=None, ToPort: int=None, DryRun: Boolean=None, SecurityGroupRuleIds: List[String]=None) -> RevokeSecurityGroupIngressResult:
        r"""Removes the specified inbound (ingress) rules from a security group. You can specify rules using either rule IDs or security group rule properties. If you use rule properties, the values that you specify (for example, ports) must match the existing rule's values exactly. Each rule has a protocol, from and to ports, and source (CIDR range, security group, or prefix list). For the TCP and UDP protocols, you must also specify the destination port or range of ports. For the ICMP protocol, you must also specify the ICMP type and code. If the security group rule has a description, you do not need to specify the description to revoke the rule. [EC2-Classic, default VPC] If the values you specify do not match the existing rule's values, no error is returned, and the output describes the security group rules that were not revoked. Amazon Web Services recommends that you describe the security group to verify that the rules were removed. Rule changes are propagated to instances within the security group as quickly as possible. However, a small delay might occur.

        :param self:
        :param SecurityGroupRuleIds:  The IDs of the security group rules.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>ToPort:  The end of port range for the TCP and UDP protocols, or an ICMP code number. For the ICMP code number, use <code>-1</code> to specify all ICMP codes for the ICMP type.<br/>SourceSecurityGroupOwnerId:  [EC2-Classic] The Amazon Web Services account ID of the source security group, if the source security group is in a different account. You can't specify this parameter in combination with the following parameters: the CIDR IP address range, the IP protocol, the start of the port range, and the end of the port range. To revoke a specific rule for an IP protocol and port range, use a set of IP permissions instead.<br/>SourceSecurityGroupName:  [EC2-Classic, default VPC] The name of the source security group. You can't specify this parameter in combination with the following parameters: the CIDR IP address range, the start of the port range, the IP protocol, and the end of the port range. For EC2-VPC, the source security group must be in the same VPC. To revoke a specific rule for an IP protocol and port range, use a set of IP permissions instead.<br/>IpProtocol:  The IP protocol name (<code>tcp</code>, <code>udp</code>, <code>icmp</code>) or number (see <a href="http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml">Protocol Numbers</a>). Use <code>-1</code> to specify all.<br/>IpPermissions:  The sets of IP permissions. You can't specify a source security group and a CIDR IP address range in the same set of permissions.<br/>GroupName:  [EC2-Classic, default VPC] The name of the security group. You must specify either the security group ID or the security group name in the request.<br/>GroupId:  The ID of the security group. You must specify either the security group ID or the security group name in the request. For security groups in a nondefault VPC, you must specify the security group ID.<br/>FromPort:  The start of port range for the TCP and UDP protocols, or an ICMP type number. For the ICMP type number, use <code>-1</code> to specify all ICMP types.<br/>CidrIp:  The CIDR IP address range. You can't specify this parameter when specifying a source security group.<br/>
        :return: UnknownIpPermissions:  The inbound rules that were unknown to the service. In some cases, <code>unknownIpPermissionSet</code> might be in a different format from the request parameter. <br/>Return:  Returns <code>true</code> if the request succeeds; otherwise, returns an error.<br/>        """
        pass

    def run_instances(self, MinCount: int, MaxCount: int, BlockDeviceMappings: List[BlockDeviceMapping]=None, ImageId: str=None, InstanceType: str=None, Ipv6AddressCount: int=None, Ipv6Addresses: List[InstanceIpv6Address]=None, KernelId: str=None, KeyName: str=None, Monitoring: RunInstancesMonitoringEnabled=None, Placement: Placement=None, RamdiskId: str=None, SecurityGroupIds: List[SecurityGroupId]=None, SecurityGroups: List[SecurityGroupName]=None, SubnetId: str=None, UserData: str=None, AdditionalInfo: str=None, ClientToken: str=None, DisableApiTermination: Boolean=None, DryRun: Boolean=None, EbsOptimized: Boolean=None, IamInstanceProfile: IamInstanceProfileSpecification=None, InstanceInitiatedShutdownBehavior: str=None, NetworkInterfaces: List[InstanceNetworkInterfaceSpecification]=None, PrivateIpAddress: str=None, ElasticGpuSpecification: List[ElasticGpuSpecification]=None, ElasticInferenceAccelerators: List[ElasticInferenceAccelerator]=None, TagSpecifications: List[TagSpecification]=None, LaunchTemplate: LaunchTemplateSpecification=None, InstanceMarketOptions: InstanceMarketOptionsRequest=None, CreditSpecification: CreditSpecificationRequest=None, CpuOptions: CpuOptionsRequest=None, CapacityReservationSpecification: CapacityReservationSpecification=None, HibernationOptions: HibernationOptionsRequest=None, LicenseSpecifications: List[LicenseConfigurationRequest]=None, MetadataOptions: InstanceMetadataOptionsRequest=None, EnclaveOptions: EnclaveOptionsRequest=None) -> Reservation:
        r"""Launches the specified number of instances using an AMI for which you have permissions. You can specify a number of options, or leave the default options. The following rules apply: <ul> <li> [EC2-VPC] If you don't specify a subnet ID, we choose a default subnet from your default VPC for you. If you don't have a default VPC, you must specify a subnet ID in the request. </li> <li> [EC2-Classic] If don't specify an Availability Zone, we choose one for you. </li> <li> Some instance types must be launched into a VPC. If you do not have a default VPC, or if you do not specify a subnet ID, the request fails. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-vpc.html#vpc-only-instance-types">Instance types available only in a VPC</a>. </li> <li> [EC2-VPC] All instances have a network interface with a primary private IPv4 address. If you don't specify this address, we choose one from the IPv4 range of your subnet. </li> <li> Not all instance types support IPv6 addresses. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html">Instance types</a>. </li> <li> If you don't specify a security group ID, we use the default security group. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html">Security groups</a>. </li> <li> If any of the AMIs have a product code attached for which the user has not subscribed, the request fails. </li> </ul> You can create a <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html">launch template</a>, which is a resource that contains the parameters to launch an instance. When you launch an instance using <a>RunInstances</a>, you can specify the launch template instead of specifying the launch parameters. To ensure faster instance launches, break up large requests into smaller batches. For example, create five separate launch requests for 100 instances each instead of one launch request for 500 instances. An instance is ready for you to use when it's in the <code>running</code> state. You can check the state of your instance using <a>DescribeInstances</a>. You can tag instances and EBS volumes during launch, after launch, or both. For more information, see <a>CreateTags</a> and <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html">Tagging your Amazon EC2 resources</a>. Linux instances have access to the public key of the key pair at boot. You can use this key to provide secure access to the instance. Amazon EC2 public images use this feature to provide secure access without passwords. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html">Key pairs</a>. For troubleshooting, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_InstanceStraightToTerminated.html">What to do if an instance immediately terminates</a>, and <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/TroubleshootingInstancesConnecting.html">Troubleshooting connecting to your instance</a>.

        :param self:
        :param EnclaveOptions:  Indicates whether the instance is enabled for Amazon Web Services Nitro Enclaves. For more information, see <a href="https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave.html"> What is Amazon Web Services Nitro Enclaves?</a> in the <i>Amazon Web Services Nitro Enclaves User Guide</i>. You can't enable Amazon Web Services Nitro Enclaves and hibernation on the same instance.:<br/>MetadataOptions:  The metadata options for the instance. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html">Instance metadata and user data</a>.:<br/>LicenseSpecifications:  The license configurations.<br/>HibernationOptions:  Indicates whether an instance is enabled for hibernation. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html">Hibernate your instance</a> in the <i>Amazon EC2 User Guide</i>. You can't enable hibernation and Amazon Web Services Nitro Enclaves on the same instance.:<br/>CapacityReservationSpecification:  Information about the Capacity Reservation targeting option. If you do not specify this parameter, the instance's Capacity Reservation preference defaults to <code>open</code>, which enables it to run in any open Capacity Reservation that has matching attributes (instance type, platform, Availability Zone).:<br/>CpuOptions:  The CPU options for the instance. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html">Optimizing CPU options</a> in the <i>Amazon EC2 User Guide</i>.:<br/>CreditSpecification:  The credit option for CPU usage of the burstable performance instance. Valid values are <code>standard</code> and <code>unlimited</code>. To change this attribute after launch, use <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyInstanceCreditSpecification.html"> ModifyInstanceCreditSpecification</a>. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html">Burstable performance instances</a> in the <i>Amazon EC2 User Guide</i>. Default: <code>standard</code> (T2 instances) or <code>unlimited</code> (T3/T3a instances):<br/>InstanceMarketOptions:  The market (purchasing) option for the instances. For <a>RunInstances</a>, persistent Spot Instance requests are only supported when <b>InstanceInterruptionBehavior</b> is set to either <code>hibernate</code> or <code>stop</code>.:<br/>LaunchTemplate:  The launch template to use to launch the instances. Any parameters that you specify in <a>RunInstances</a> override the same parameters in the launch template. You can specify either the name or ID of a launch template, but not both.:<br/>TagSpecifications:  The tags to apply to the resources during launch. You can only tag instances and volumes on launch. The specified tags are applied to all instances or volumes that are created during launch. To tag a resource after it has been created, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html">CreateTags</a>.<br/>ElasticInferenceAccelerators:  An elastic inference accelerator to associate with the instance. Elastic inference accelerators are a resource you can attach to your Amazon EC2 instances to accelerate your Deep Learning (DL) inference workloads. You cannot specify accelerators from different generations in the same request.<br/>ElasticGpuSpecification:  An elastic GPU to associate with the instance. An Elastic GPU is a GPU resource that you can attach to your Windows instance to accelerate the graphics performance of your applications. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/elastic-graphics.html">Amazon EC2 Elastic GPUs</a> in the <i>Amazon EC2 User Guide</i>.<br/>PrivateIpAddress:  [EC2-VPC] The primary IPv4 address. You must specify a value from the IPv4 address range of the subnet. Only one private IP address can be designated as primary. You can't specify this option if you've specified the option to designate a private IP address as the primary IP address in a network interface specification. You cannot specify this option if you're launching more than one instance in the request. You cannot specify this option and the network interfaces option in the same request.<br/>NetworkInterfaces:  The network interfaces to associate with the instance. If you specify a network interface, you must specify any security groups and subnets as part of the network interface.<br/>InstanceInitiatedShutdownBehavior:  Indicates whether an instance stops or terminates when you initiate shutdown from the instance (using the operating system command for system shutdown). Default: <code>stop</code> <br/>IamInstanceProfile:  The name or Amazon Resource Name (ARN) of an IAM instance profile.:<br/>EbsOptimized:  Indicates whether the instance is optimized for Amazon EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal Amazon EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS-optimized instance. Default: <code>false</code> <br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>DisableApiTermination:  If you set this parameter to <code>true</code>, you can't terminate the instance using the Amazon EC2 console, CLI, or API; otherwise, you can. To change this attribute after launch, use <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyInstanceAttribute.html">ModifyInstanceAttribute</a>. Alternatively, if you set <code>InstanceInitiatedShutdownBehavior</code> to <code>terminate</code>, you can terminate the instance by running the shutdown command from the instance. Default: <code>false</code> <br/>ClientToken:  Unique, case-sensitive identifier you provide to ensure the idempotency of the request. If you do not specify a client token, a randomly generated token is used for the request to ensure idempotency. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html">Ensuring Idempotency</a>. Constraints: Maximum 64 ASCII characters<br/>AdditionalInfo:  Reserved.<br/>UserData:  The user data to make available to the instance. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html">Running commands on your Linux instance at launch</a> (Linux) and <a href="https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2-instance-metadata.html#instancedata-add-user-data">Adding User Data</a> (Windows). If you are using a command line tool, base64-encoding is performed for you, and you can load the text from a file. Otherwise, you must provide base64-encoded text. User data is limited to 16 KB.<br/>SubnetId:  [EC2-VPC] The ID of the subnet to launch the instance into. If you specify a network interface, you must specify any subnets as part of the network interface.<br/>SecurityGroups:  [EC2-Classic, default VPC] The names of the security groups. For a nondefault VPC, you must use security group IDs instead. If you specify a network interface, you must specify any security groups as part of the network interface. Default: Amazon EC2 uses the default security group.<br/>SecurityGroupIds:  The IDs of the security groups. You can create a security group using <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateSecurityGroup.html">CreateSecurityGroup</a>. If you specify a network interface, you must specify any security groups as part of the network interface.<br/>RamdiskId:  The ID of the RAM disk to select. Some kernels require additional drivers at launch. Check the kernel requirements for information about whether you need to specify a RAM disk. To find kernel requirements, go to the Amazon Web Services Resource Center and search for the kernel ID. <important> We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html"> PV-GRUB</a> in the <i>Amazon EC2 User Guide</i>. </important><br/>Placement:  The placement for the instance.:<br/>Monitoring:  Specifies whether detailed monitoring is enabled for the instance.:<br/>MinCount:  The minimum number of instances to launch. If you specify a minimum that is more instances than Amazon EC2 can launch in the target Availability Zone, Amazon EC2 launches no instances. Constraints: Between 1 and the maximum number you're allowed for the specified instance type. For more information about the default limits, and how to request an increase, see <a href="http://aws.amazon.com/ec2/faqs/#How_many_instances_can_I_run_in_Amazon_EC2">How many instances can I run in Amazon EC2</a> in the Amazon EC2 General FAQ.<br/>MaxCount:  The maximum number of instances to launch. If you specify more instances than Amazon EC2 can launch in the target Availability Zone, Amazon EC2 launches the largest possible number of instances above <code>MinCount</code>. Constraints: Between 1 and the maximum number you're allowed for the specified instance type. For more information about the default limits, and how to request an increase, see <a href="http://aws.amazon.com/ec2/faqs/#How_many_instances_can_I_run_in_Amazon_EC2">How many instances can I run in Amazon EC2</a> in the Amazon EC2 FAQ.<br/>KeyName:  The name of the key pair. You can create a key pair using <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateKeyPair.html">CreateKeyPair</a> or <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ImportKeyPair.html">ImportKeyPair</a>. <important> If you do not specify a key pair, you can't connect to the instance unless you choose an AMI that is configured to allow users another way to log in. </important><br/>KernelId:  The ID of the kernel. <important> We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html"> PV-GRUB</a> in the <i>Amazon EC2 User Guide</i>. </important><br/>Ipv6Addresses:  [EC2-VPC] The IPv6 addresses from the range of the subnet to associate with the primary network interface. You cannot specify this option and the option to assign a number of IPv6 addresses in the same request. You cannot specify this option if you've specified a minimum number of instances to launch. You cannot specify this option and the network interfaces option in the same request.<br/>Ipv6AddressCount:  [EC2-VPC] The number of IPv6 addresses to associate with the primary network interface. Amazon EC2 chooses the IPv6 addresses from the range of your subnet. You cannot specify this option and the option to assign specific IPv6 addresses in the same request. You can specify this option if you've specified a minimum number of instances to launch. You cannot specify this option and the network interfaces option in the same request.<br/>InstanceType:  The instance type. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html">Instance types</a> in the <i>Amazon EC2 User Guide</i>. Default: <code>m1.small</code> <br/>ImageId:  The ID of the AMI. An AMI ID is required to launch an instance and must be specified here or in a launch template.<br/>BlockDeviceMappings:  The block device mapping entries.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Indicates whether detailed monitoring is enabled. Otherwise, basic monitoring is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HostResourceGroupArn</i> The ARN of the host resource group in which to launch the instances. If you specify a host resource group ARN, omit the <b>Tenancy</b> parameter or set it to <code>host</code>. This parameter is not supported by <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateFleet">CreateFleet</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SpreadDomain</i> Reserved for future use. This parameter is not supported by <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateFleet">CreateFleet</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tenancy</i> The tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of <code>dedicated</code> runs on single-tenant hardware. The <code>host</code> tenancy is not supported for the <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ImportInstance.html">ImportInstance</a> command. This parameter is not supported by <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateFleet">CreateFleet</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HostId</i> The ID of the Dedicated Host on which the instance resides. This parameter is not supported for the <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ImportInstance.html">ImportInstance</a> command. This parameter is not supported by <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateFleet">CreateFleet</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PartitionNumber</i> The number of the partition the instance is in. Valid only if the placement group strategy is set to <code>partition</code>. This parameter is not supported by <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateFleet">CreateFleet</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GroupName</i> The name of the placement group the instance is in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Affinity</i> The affinity setting for the instance on the Dedicated Host. This parameter is not supported for the <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ImportInstance.html">ImportInstance</a> command. This parameter is not supported by <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateFleet">CreateFleet</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZone</i> The Availability Zone of the instance. If not specified, an Availability Zone will be automatically chosen for you based on the load balancing criteria for the Region. This parameter is not supported by <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateFleet">CreateFleet</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the instance profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the instance profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The version number of the launch template. Default: The default version for the launch template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LaunchTemplateName</i> The name of the launch template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LaunchTemplateId</i> The ID of the launch template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SpotOptions</i> The options for Spot Instances.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SpotOptions</b>: The options for Spot Instances.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MarketType</i> The market type.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceInterruptionBehavior</i> The behavior when a Spot Instance is interrupted. The default is <code>terminate</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ValidUntil</i> The end date of the request, in UTC format (<i>YYYY</i>-<i>MM</i>-<i>DD</i>T<i>HH</i>:<i>MM</i>:<i>SS</i>Z). Supported only for persistent requests. <ul> <li> For a persistent request, the request remains active until the <code>ValidUntil</code> date and time is reached. Otherwise, the request remains active until you cancel it. </li> <li> For a one-time request, <code>ValidUntil</code> is not supported. The request remains active until all instances launch or you cancel the request. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BlockDurationMinutes</i> The required duration for the Spot Instances (also known as Spot blocks), in minutes. This value must be a multiple of 60 (60, 120, 180, 240, 300, or 360). The duration period starts as soon as your Spot Instance receives its instance ID. At the end of the duration period, Amazon EC2 marks the Spot Instance for termination and provides a Spot Instance termination notice, which gives the instance a two-minute warning before it terminates. You can't specify an Availability Zone group or a launch group if you specify a duration. New accounts or accounts with no previous billing history with Amazon Web Services are not eligible for Spot Instances with a defined duration (also known as Spot blocks).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SpotInstanceType</i> The Spot Instance request type. For <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances">RunInstances</a>, persistent Spot Instance requests are only supported when the instance interruption behavior is either <code>hibernate</code> or <code>stop</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxPrice</i> The maximum hourly price you're willing to pay for the Spot Instances. The default is the On-Demand price.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CpuCredits</i> The credit option for CPU usage of a T2, T3, or T3a instance. Valid values are <code>standard</code> and <code>unlimited</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ThreadsPerCore</i> The number of threads per CPU core. To disable multithreading for the instance, specify a value of <code>1</code>. Otherwise, specify the default value of <code>2</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CoreCount</i> The number of CPU cores for the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CapacityReservationTarget</i> Information about the target Capacity Reservation or Capacity Reservation group.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CapacityReservationTarget</b>: Information about the target Capacity Reservation or Capacity Reservation group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CapacityReservationPreference</i> Indicates the instance's Capacity Reservation preferences. Possible preferences include: <ul> <li>  <code>open</code> - The instance can run in any <code>open</code> Capacity Reservation that has matching attributes (instance type, platform, Availability Zone). </li> <li>  <code>none</code> - The instance avoids running in a Capacity Reservation even if one is available. The instance runs as an On-Demand Instance. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CapacityReservationResourceGroupArn</i> The ARN of the Capacity Reservation resource group in which to run the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CapacityReservationId</i> The ID of the Capacity Reservation in which to run the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Configured</i> If you set this parameter to <code>true</code>, your instance is enabled for hibernation. Default: <code>false</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HttpEndpoint</i> This parameter enables or disables the HTTP metadata endpoint on your instances. If the parameter is not specified, the default state is <code>enabled</code>. <note> If you specify a value of <code>disabled</code>, you will not be able to access your instance metadata. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HttpPutResponseHopLimit</i> The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Default: 1 Possible values: Integers from 1 to 64<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HttpTokens</i> The state of token usage for your instance metadata requests. If the parameter is not specified in the request, the default state is <code>optional</code>. If the state is <code>optional</code>, you can choose to retrieve instance metadata with or without a signed token header on your request. If you retrieve the IAM role credentials without a token, the version 1.0 role credentials are returned. If you retrieve the IAM role credentials using a valid signed token, the version 2.0 role credentials are returned. If the state is <code>required</code>, you must send a signed token header with any instance metadata retrieval requests. In this state, retrieving the IAM role credentials always returns the version 2.0 credentials; the version 1.0 credentials are not available.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> To enable the instance for Amazon Web Services Nitro Enclaves, set this parameter to <code>true</code>.<br/>
        :return: ReservationId:  The ID of the reservation.<br/>RequesterId:  The ID of the requester that launched the instances on your behalf (for example, Management Console or Auto Scaling).<br/>OwnerId:  The ID of the account that owns the reservation.<br/>Instances:  The instances.<br/>Groups:  [EC2-Classic only] The security groups.<br/>        """
        pass

    def run_scheduled_instances(self, ScheduledInstanceId: str, LaunchSpecification: ScheduledInstancesLaunchSpecification, ClientToken: str=None, DryRun: Boolean=None, InstanceCount: int=None) -> RunScheduledInstancesResult:
        r"""Launches the specified Scheduled Instances. Before you can launch a Scheduled Instance, you must purchase it and obtain an identifier using <a>PurchaseScheduledInstances</a>. You must launch a Scheduled Instance during its scheduled time period. You can't stop or reboot a Scheduled Instance, but you can terminate it as needed. If you terminate a Scheduled Instance before the current scheduled time period ends, you can launch it again after a few minutes. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-scheduled-instances.html">Scheduled Instances</a> in the <i>Amazon EC2 User Guide</i>.

        :param self:
        :param ScheduledInstanceId:  The Scheduled Instance ID.<br/>LaunchSpecification:  The launch specification. You must match the instance type, Availability Zone, network, and platform of the schedule that you purchased.:<br/>InstanceCount:  The number of instances. Default: 1<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>ClientToken:  Unique, case-sensitive identifier that ensures the idempotency of the request. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html">Ensuring Idempotency</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserData</i> The base64-encoded MIME user data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetId</i> The ID of the subnet in which to launch the instances.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> The IDs of the security groups.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RamdiskId</i> The ID of the RAM disk.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Placement</i> The placement information.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Placement</b>: The placement information.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkInterfaces</i> The network interfaces.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Monitoring</i> Enable or disable monitoring for the instances.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Monitoring</b>: Enable or disable monitoring for the instances.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KeyName</i> The name of the key pair.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KernelId</i> The ID of the kernel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceType</i> The instance type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImageId</i> The ID of the Amazon Machine Image (AMI).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IamInstanceProfile</i> The IAM instance profile.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>IamInstanceProfile</b>: The IAM instance profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EbsOptimized</i> Indicates whether the instances are optimized for EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS-optimized instance. Default: <code>false</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BlockDeviceMappings</i> The block device mapping entries.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Indicates whether monitoring is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>GroupName</i> The name of the placement group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZone</i> The Availability Zone.<br/>
        :return: InstanceIdSet:  The IDs of the newly launched instances.<br/>        """
        pass

    def search_local_gateway_routes(self, Filters: List[Filter], LocalGatewayRouteTableId: str, MaxResults: int=None, NextToken: str=None, DryRun: Boolean=None) -> SearchLocalGatewayRoutesResult:
        r"""Searches for routes in the specified local gateway route table.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>NextToken:  The token for the next page of results.<br/>MaxResults:  The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.<br/>Filters:  One or more filters.<br/>LocalGatewayRouteTableId:  The ID of the local gateway route table.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>Routes:  Information about the routes.<br/>        """
        pass

    def search_transit_gateway_multicast_groups(self, TransitGatewayMulticastDomainId: str=None, Filters: List[Filter]=None, MaxResults: int=None, NextToken: str=None, DryRun: Boolean=None) -> SearchTransitGatewayMulticastGroupsResult:
        r"""Searches one or more transit gateway multicast groups and returns the group membership information.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>NextToken:  The token for the next page of results.<br/>MaxResults:  The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.<br/>Filters:  One or more filters. The possible values are: <ul> <li>  <code>group-ip-address</code> - The IP address of the transit gateway multicast group. </li> <li>  <code>is-group-member</code> - The resource is a group member. Valid values are <code>true</code> | <code>false</code>. </li> <li>  <code>is-group-source</code> - The resource is a group source. Valid values are <code>true</code> | <code>false</code>. </li> <li>  <code>member-type</code> - The member type. Valid values are <code>igmp</code> | <code>static</code>. </li> <li>  <code>resource-id</code> - The ID of the resource. </li> <li>  <code>resource-type</code> - The type of resource. Valid values are <code>vpc</code> | <code>vpn</code> | <code>direct-connect-gateway</code> | <code>tgw-peering</code>. </li> <li>  <code>source-type</code> - The source type. Valid values are <code>igmp</code> | <code>static</code>. </li> <li>  <code>state</code> - The state of the subnet association. Valid values are <code>associated</code> | <code>associated</code> | <code>disassociated</code> | <code>disassociating</code>. </li> <li>  <code>subnet-id</code> - The ID of the subnet. </li> <li>  <code>transit-gateway-attachment-id</code> - The id of the transit gateway attachment. </li> </ul><br/>TransitGatewayMulticastDomainId:  The ID of the transit gateway multicast domain.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>MulticastGroups:  Information about the transit gateway multicast group.<br/>        """
        pass

    def search_transit_gateway_routes(self, Filters: List[Filter], TransitGatewayRouteTableId: str, MaxResults: int=None, DryRun: Boolean=None) -> SearchTransitGatewayRoutesResult:
        r"""Searches for routes in the specified transit gateway route table.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>MaxResults:  The maximum number of routes to return.<br/>Filters:  One or more filters. The possible values are: <ul> <li>  <code>attachment.transit-gateway-attachment-id</code>- The id of the transit gateway attachment. </li> <li>  <code>attachment.resource-id</code> - The resource id of the transit gateway attachment. </li> <li>  <code>attachment.resource-type</code> - The attachment resource type. Valid values are <code>vpc</code> | <code>vpn</code> | <code>direct-connect-gateway</code> | <code>peering</code> | <code>connect</code>. </li> <li>  <code>prefix-list-id</code> - The ID of the prefix list. </li> <li>  <code>route-search.exact-match</code> - The exact match of the specified filter. </li> <li>  <code>route-search.longest-prefix-match</code> - The longest prefix that matches the route. </li> <li>  <code>route-search.subnet-of-match</code> - The routes with a subnet that match the specified CIDR filter. </li> <li>  <code>route-search.supernet-of-match</code> - The routes with a CIDR that encompass the CIDR filter. For example, if you have 10.0.1.0/29 and 10.0.1.0/31 routes in your route table and you specify supernet-of-match as 10.0.1.0/30, then the result returns 10.0.1.0/29. </li> <li>  <code>state</code> - The state of the route (<code>active</code> | <code>blackhole</code>). </li> <li>  <code>type</code> - The type of route (<code>propagated</code> | <code>static</code>). </li> </ul><br/>TransitGatewayRouteTableId:  The ID of the transit gateway route table.<br/>
        :return: AdditionalRoutesAvailable:  Indicates whether there are additional routes available.<br/>Routes:  Information about the routes.<br/>        """
        pass

    def send_diagnostic_interrupt(self, InstanceId: str, DryRun: Boolean=None):
        r"""Sends a diagnostic interrupt to the specified Amazon EC2 instance to trigger a <i>kernel panic</i> (on Linux instances), or a <i>blue screen</i>/<i>stop error</i> (on Windows instances). For instances based on Intel and AMD processors, the interrupt is received as a <i>non-maskable interrupt</i> (NMI). In general, the operating system crashes and reboots when a kernel panic or stop error is triggered. The operating system can also be configured to perform diagnostic tasks, such as generating a memory dump file, loading a secondary kernel, or obtaining a call trace. Before sending a diagnostic interrupt to your instance, ensure that its operating system is configured to perform the required diagnostic tasks. For more information about configuring your operating system to generate a crash dump when a kernel panic or stop error occurs, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/diagnostic-interrupt.html">Send a diagnostic interrupt</a> (Linux instances) or <a href="https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/diagnostic-interrupt.html">Send a Diagnostic Interrupt</a> (Windows instances).

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>InstanceId:  The ID of the instance.<br/>
        :return:         """
        pass

    def start_instances(self, InstanceIds: List[InstanceId], AdditionalInfo: str=None, DryRun: Boolean=None) -> StartInstancesResult:
        r"""Starts an Amazon EBS-backed instance that you've previously stopped. Instances that use Amazon EBS volumes as their root devices can be quickly stopped and started. When an instance is stopped, the compute resources are released and you are not billed for instance usage. However, your root partition Amazon EBS volume remains and continues to persist your data, and you are charged for Amazon EBS volume usage. You can restart your instance at any time. Every time you start your instance, Amazon EC2 charges a one-minute minimum for instance usage, and thereafter charges per second for instance usage. Before stopping an instance, make sure it is in a state from which it can be restarted. Stopping an instance does not preserve data stored in RAM. Performing this operation on an instance that uses an instance store as its root device returns an error. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Stop_Start.html">Stopping instances</a> in the <i>Amazon EC2 User Guide</i>.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>AdditionalInfo:  Reserved.<br/>InstanceIds:  The IDs of the instances.<br/>
        :return: StartingInstances:  Information about the started instances.<br/>        """
        pass

    def start_network_insights_analysis(self, ClientToken: str, NetworkInsightsPathId: str, FilterInArns: List[ResourceArn]=None, DryRun: Boolean=None, TagSpecifications: List[TagSpecification]=None) -> StartNetworkInsightsAnalysisResult:
        r"""Starts analyzing the specified path. If the path is reachable, the operation returns the shortest feasible path.

        :param self:
        :param ClientToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html">How to Ensure Idempotency</a>.<br/>TagSpecifications:  The tags to apply.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>FilterInArns:  The Amazon Resource Names (ARN) of the resources that the path must traverse.<br/>NetworkInsightsPathId:  The ID of the path.<br/>
        :return: NetworkInsightsAnalysis:  Information about the network insights analysis.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The tags.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AlternatePathHints</i> Potential intermediate components.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Explanations</i> The explanations. For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/reachability/explanation-codes.html">Reachability Analyzer explanation codes</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReturnPathComponents</i> The components in the path from destination to source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ForwardPathComponents</i> The components in the path from source to destination.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkPathFound</i> Indicates whether the destination is reachable from the source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusMessage</i> The status message, if the status is <code>failed</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the network insights analysis.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StartDate</i> The time the analysis started.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FilterInArns</i> The Amazon Resource Names (ARN) of the AWS resources that the path must traverse.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkInsightsPathId</i> The ID of the path.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkInsightsAnalysisArn</i> The Amazon Resource Name (ARN) of the network insights analysis.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkInsightsAnalysisId</i> The ID of the network insights analysis.<br/>        """
        pass

    def start_vpc_endpoint_service_private_dns_verification(self, ServiceId: str, DryRun: Boolean=None) -> StartVpcEndpointServicePrivateDnsVerificationResult:
        r"""Initiates the verification process to prove that the service provider owns the private DNS name domain for the endpoint service. The service provider must successfully perform the verification before the consumer can use the name to access the service. Before the service provider runs this command, they must add a record to the DNS server. For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/endpoint-services-dns-validation.html#add-dns-txt-record">Adding a TXT Record to Your Domain's DNS Server </a> in the <i>Amazon VPC User Guide</i>.

        :param self:
        :param ServiceId:  The ID of the endpoint service.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: ReturnValue:  Returns <code>true</code> if the request succeeds; otherwise, it returns an error.<br/>        """
        pass

    def stop_instances(self, InstanceIds: List[InstanceId], Hibernate: Boolean=None, DryRun: Boolean=None, Force: Boolean=None) -> StopInstancesResult:
        r"""Stops an Amazon EBS-backed instance. You can use the Stop action to hibernate an instance if the instance is <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html#enabling-hibernation">enabled for hibernation</a> and it meets the <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html#hibernating-prerequisites">hibernation prerequisites</a>. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html">Hibernate your instance</a> in the <i>Amazon EC2 User Guide</i>. We don't charge usage for a stopped instance, or data transfer fees; however, your root partition Amazon EBS volume remains and continues to persist your data, and you are charged for Amazon EBS volume usage. Every time you start your instance, Amazon EC2 charges a one-minute minimum for instance usage, and thereafter charges per second for instance usage. You can't stop or hibernate instance store-backed instances. You can't use the Stop action to hibernate Spot Instances, but you can specify that Amazon EC2 should hibernate Spot Instances when they are interrupted. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-interruptions.html#hibernate-spot-instances">Hibernating interrupted Spot Instances</a> in the <i>Amazon EC2 User Guide</i>. When you stop or hibernate an instance, we shut it down. You can restart your instance at any time. Before stopping or hibernating an instance, make sure it is in a state from which it can be restarted. Stopping an instance does not preserve data stored in RAM, but hibernating an instance does preserve data stored in RAM. If an instance cannot hibernate successfully, a normal shutdown occurs. Stopping and hibernating an instance is different to rebooting or terminating it. For example, when you stop or hibernate an instance, the root device and any other devices attached to the instance persist. When you terminate an instance, the root device and any other devices attached during the instance launch are automatically deleted. For more information about the differences between rebooting, stopping, hibernating, and terminating instances, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-lifecycle.html">Instance lifecycle</a> in the <i>Amazon EC2 User Guide</i>. When you stop an instance, we attempt to shut it down forcibly after a short while. If your instance appears stuck in the stopping state after a period of time, there may be an issue with the underlying host computer. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/TroubleshootingInstancesStopping.html">Troubleshooting stopping your instance</a> in the <i>Amazon EC2 User Guide</i>.

        :param self:
        :param Force:  Forces the instances to stop. The instances do not have an opportunity to flush file system caches or file system metadata. If you use this option, you must perform file system check and repair procedures. This option is not recommended for Windows instances. Default: <code>false</code> <br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>Hibernate:  Hibernates the instance if the instance was enabled for hibernation at launch. If the instance cannot hibernate successfully, a normal shutdown occurs. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html">Hibernate your instance</a> in the <i>Amazon EC2 User Guide</i>.  Default: <code>false</code> <br/>InstanceIds:  The IDs of the instances.<br/>
        :return: StoppingInstances:  Information about the stopped instances.<br/>        """
        pass

    def terminate_client_vpn_connections(self, ClientVpnEndpointId: str, ConnectionId: str=None, Username: str=None, DryRun: Boolean=None) -> TerminateClientVpnConnectionsResult:
        r"""Terminates active Client VPN endpoint connections. This action can be used to terminate a specific client connection, or up to five connections established by a specific user.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>Username:  The name of the user who initiated the connection. Use this option to terminate all active connections for the specified user. This option can only be used if the user has established up to five connections.<br/>ConnectionId:  The ID of the client connection to be terminated.<br/>ClientVpnEndpointId:  The ID of the Client VPN endpoint to which the client is connected.<br/>
        :return: ConnectionStatuses:  The current state of the client connections.<br/>Username:  The user who established the terminated client connections.<br/>ClientVpnEndpointId:  The ID of the Client VPN endpoint.<br/>        """
        pass

    def terminate_instances(self, InstanceIds: List[InstanceId], DryRun: Boolean=None) -> TerminateInstancesResult:
        r"""Shuts down the specified instances. This operation is idempotent; if you terminate an instance more than once, each call succeeds.  If you specify multiple instances and the request fails (for example, because of a single incorrect instance ID), none of the instances are terminated. If you terminate multiple instances across multiple Availability Zones, and one or more of the specified instances are enabled for termination protection, the request fails with the following results: <ul> <li> The specified instances that are in the same Availability Zone as the protected instance are not terminated. </li> <li> The specified instances that are in different Availability Zones, where no other specified instances are protected, are successfully terminated. </li> </ul> For example, say you have the following instances: <ul> <li> Instance A: <code>us-east-1a</code>; Not protected </li> <li> Instance B: <code>us-east-1a</code>; Not protected </li> <li> Instance C: <code>us-east-1b</code>; Protected </li> <li> Instance D: <code>us-east-1b</code>; not protected </li> </ul> If you attempt to terminate all of these instances in the same request, the request reports failure with the following results: <ul> <li> Instance A and Instance B are successfully terminated because none of the specified instances in <code>us-east-1a</code> are enabled for termination protection. </li> <li> Instance C and Instance D fail to terminate because at least one of the specified instances in <code>us-east-1b</code> (Instance C) is enabled for termination protection. </li> </ul> Terminated instances remain visible after termination (for approximately one hour). By default, Amazon EC2 deletes all EBS volumes that were attached when the instance launched. Volumes attached after instance launch continue running. You can stop, start, and terminate EBS-backed instances. You can only terminate instance store-backed instances. What happens to an instance differs if you stop it or terminate it. For example, when you stop an instance, the root device and any other devices attached to the instance persist. When you terminate an instance, any attached EBS volumes with the <code>DeleteOnTermination</code> block device mapping parameter set to <code>true</code> are automatically deleted. For more information about the differences between stopping and terminating instances, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-lifecycle.html">Instance lifecycle</a> in the <i>Amazon EC2 User Guide</i>. For more information about troubleshooting, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/TroubleshootingInstancesShuttingDown.html">Troubleshooting terminating your instance</a> in the <i>Amazon EC2 User Guide</i>.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>InstanceIds:  The IDs of the instances. Constraints: Up to 1000 instance IDs. We recommend breaking up this request into smaller batches.<br/>
        :return: TerminatingInstances:  Information about the terminated instances.<br/>        """
        pass

    def unassign_ipv6_addresses(self, Ipv6Addresses: List[String], NetworkInterfaceId: str) -> UnassignIpv6AddressesResult:
        r"""Unassigns one or more IPv6 addresses from a network interface.

        :param self:
        :param Ipv6Addresses:  The IPv6 addresses to unassign from the network interface.<br/>NetworkInterfaceId:  The ID of the network interface.<br/>
        :return: UnassignedIpv6Addresses:  The IPv6 addresses that have been unassigned from the network interface.<br/>NetworkInterfaceId:  The ID of the network interface.<br/>        """
        pass

    def unassign_private_ip_addresses(self, PrivateIpAddresses: List[String], NetworkInterfaceId: str):
        r"""Unassigns one or more secondary private IP addresses from a network interface.

        :param self:
        :param PrivateIpAddresses:  The secondary private IP addresses to unassign from the network interface. You can specify this option multiple times to unassign more than one IP address.<br/>NetworkInterfaceId:  The ID of the network interface.<br/>
        :return:         """
        pass

    def unmonitor_instances(self, InstanceIds: List[InstanceId], DryRun: Boolean=None) -> UnmonitorInstancesResult:
        r"""Disables detailed monitoring for a running instance. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-cloudwatch.html">Monitoring your instances and volumes</a> in the <i>Amazon EC2 User Guide</i>.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>InstanceIds:  The IDs of the instances.<br/>
        :return: InstanceMonitorings:  The monitoring information.<br/>        """
        pass

    def update_security_group_rule_descriptions_egress(self, DryRun: Boolean=None, GroupId: str=None, GroupName: str=None, IpPermissions: List[IpPermission]=None, SecurityGroupRuleDescriptions: List[SecurityGroupRuleDescription]=None) -> UpdateSecurityGroupRuleDescriptionsEgressResult:
        r"""[VPC only] Updates the description of an egress (outbound) security group rule. You can replace an existing description, or add a description to a rule that did not have one previously. You can remove a description for a security group rule by omitting the description parameter in the request.

        :param self:
        :param SecurityGroupRuleDescriptions:  The description for the egress security group rules. You must specify either the description or the IP permissions.<br/>IpPermissions:  The IP permissions for the security group rule. You must specify either the IP permissions or the description.<br/>GroupName:  [Default VPC] The name of the security group. You must specify either the security group ID or the security group name in the request.<br/>GroupId:  The ID of the security group. You must specify either the security group ID or the security group name in the request. For security groups in a nondefault VPC, you must specify the security group ID.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: Return:  Returns <code>true</code> if the request succeeds; otherwise, returns an error.<br/>        """
        pass

    def update_security_group_rule_descriptions_ingress(self, DryRun: Boolean=None, GroupId: str=None, GroupName: str=None, IpPermissions: List[IpPermission]=None, SecurityGroupRuleDescriptions: List[SecurityGroupRuleDescription]=None) -> UpdateSecurityGroupRuleDescriptionsIngressResult:
        r"""Updates the description of an ingress (inbound) security group rule. You can replace an existing description, or add a description to a rule that did not have one previously. You can remove a description for a security group rule by omitting the description parameter in the request.

        :param self:
        :param SecurityGroupRuleDescriptions:  [VPC only] The description for the ingress security group rules. You must specify either a description or IP permissions.<br/>IpPermissions:  The IP permissions for the security group rule. You must specify either IP permissions or a description.<br/>GroupName:  [EC2-Classic, default VPC] The name of the security group. You must specify either the security group ID or the security group name in the request.<br/>GroupId:  The ID of the security group. You must specify either the security group ID or the security group name in the request. For security groups in a nondefault VPC, you must specify the security group ID.<br/>DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>
        :return: Return:  Returns <code>true</code> if the request succeeds; otherwise, returns an error.<br/>        """
        pass

    def withdraw_byoip_cidr(self, Cidr: str, DryRun: Boolean=None) -> WithdrawByoipCidrResult:
        r"""Stops advertising an address range that is provisioned as an address pool. You can perform this operation at most once every 10 seconds, even if you specify different address ranges each time. It can take a few minutes before traffic to the specified addresses stops routing to Amazon Web Services because of BGP propagation delays.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.<br/>Cidr:  The address range, in CIDR notation.<br/>
        :return: ByoipCidr:  Information about the address pool.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the address pool.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusMessage</i> Upon success, contains the ID of the address pool. Otherwise, contains an error message.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the address range.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Cidr</i> The address range, in CIDR notation.<br/>        """
        pass



    class Ec2Resource:
        
        class ClassicAddress:
            r"""Creates a ClassicAddress resource.::

  classic_address = ec2.ClassicAddress('public_ip')

:type public_ip: string
:param public_ip: The ClassicAddress's public_ip identifier. This **must** be set.

:rtype: :py:class:`EC2.ClassicAddress`
:returns: A ClassicAddress resource"""

            def __init__(self, public_ip):
                pass
            
            class Tag(Mapping):
                pass
        
            instance_id: str=None
            public_ip: str=None
            allocation_id: str=None
            association_id: str=None
            domain: str=None
            network_interface_id: str=None
            network_interface_owner_id: str=None
            private_ip_address: str=None
            tags: List[Tag]=None
            public_ipv4_pool: str=None
            network_border_group: str=None
            customer_owned_ip: str=None
            customer_owned_ipv4_pool: str=None
            carrier_ip: str=None
            
            def associate(self, **kwargs):
                # type: (object) -> dict
                return {}

            def disassociate(self, **kwargs):
                # type: (object) -> dict
                return {}

            def release(self, **kwargs):
                # type: (object) -> dict
                return {}

        def delete_tags(self, **kwargs):
            
            pass


        
        class DhcpOptions:
            r"""Creates a DhcpOptions resource.::

  dhcp_options = ec2.DhcpOptions('id')

:type id: string
:param id: The DhcpOptions's id identifier. This **must** be set.

:rtype: :py:class:`EC2.DhcpOptions`
:returns: A DhcpOptions resource"""

            def __init__(self, id):
                pass
            
            class Tag(Mapping):
                pass

            class DhcpConfiguration(Mapping):
                pass
        
            dhcp_configurations: List[DhcpConfiguration]=None
            dhcp_options_id: str=None
            owner_id: str=None
            tags: List[Tag]=None
            
            def associate_with_vpc(self, **kwargs):
                # type: (object) -> dict
                return {}

            def create_tags(self, **kwargs):
                # type: (object) -> Tag
                return Tag()

            def delete(self, **kwargs):
                # type: (object) -> dict
                return {}

        def delete_tags(self, **kwargs):
            
            pass


        
        class Image:
            r"""Creates a Image resource.::

  image = ec2.Image('id')

:type id: string
:param id: The Image's id identifier. This **must** be set.

:rtype: :py:class:`EC2.Image`
:returns: A Image resource"""

            def __init__(self, id):
                pass
            
            class BlockDeviceMapping(Mapping):
                pass

            class StateReason(Mapping):
                pass

            class Boolean(object):
                pass

            class ProductCode(Mapping):
                pass

            class Tag(Mapping):
                pass
        
            architecture: str=None
            creation_date: str=None
            image_id: str=None
            image_location: str=None
            image_type: str=None
            public: Boolean=None
            kernel_id: str=None
            owner_id: str=None
            platform: str=None
            platform_details: str=None
            usage_operation: str=None
            product_codes: List[ProductCode]=None
            ramdisk_id: str=None
            state: str=None
            block_device_mappings: List[BlockDeviceMapping]=None
            description: str=None
            ena_support: Boolean=None
            hypervisor: str=None
            image_owner_alias: str=None
            name: str=None
            root_device_name: str=None
            root_device_type: str=None
            sriov_net_support: str=None
            state_reason: StateReason=None
            tags: List[Tag]=None
            virtualization_type: str=None
            boot_mode: str=None
            deprecation_time: str=None
            
            def wait_until_exists(self):
                pass

            def create_tags(self, **kwargs):
                # type: (object) -> Tag
                return Tag()

            def deregister(self, **kwargs):
                # type: (object) -> dict
                return {}

            def describe_attribute(self, **kwargs):
                # type: (object) -> dict
                return {}

            def modify_attribute(self, **kwargs):
                # type: (object) -> dict
                return {}

            def reset_attribute(self, **kwargs):
                # type: (object) -> dict
                return {}

        def delete_tags(self, **kwargs):
            
            pass


        
        class Instance:
            r"""Creates a Instance resource.::

  instance = ec2.Instance('id')

:type id: string
:param id: The Instance's id identifier. This **must** be set.

:rtype: :py:class:`EC2.Instance`
:returns: A Instance resource"""

            def __init__(self, id):
                pass
            
            class Placement(Mapping):
                pass

            class LicenseConfiguration(Mapping):
                pass

            class ElasticGpuAssociation(Mapping):
                pass

            class DateTime(object):
                pass

            class InstanceBlockDeviceMapping(Mapping):
                pass

            class CapacityReservationSpecificationResponse(Mapping):
                pass

            class IamInstanceProfile(Mapping):
                pass

            class StateReason(Mapping):
                pass

            class CpuOptions(Mapping):
                pass

            class ElasticInferenceAcceleratorAssociation(Mapping):
                pass

            class EnclaveOptions(Mapping):
                pass

            class Boolean(object):
                pass

            class HibernationOptions(Mapping):
                pass

            class InstanceMetadataOptionsResponse(Mapping):
                pass

            class InstanceNetworkInterface(Mapping):
                pass

            class ProductCode(Mapping):
                pass

            class Tag(Mapping):
                pass

            class Monitoring(Mapping):
                pass

            class InstanceState(Mapping):
                pass

            class GroupIdentifier(Mapping):
                pass
        
            ami_launch_index: int=None
            image_id: str=None
            instance_id: str=None
            instance_type: str=None
            kernel_id: str=None
            key_name: str=None
            launch_time: DateTime=None
            monitoring: Monitoring=None
            placement: Placement=None
            platform: str=None
            private_dns_name: str=None
            private_ip_address: str=None
            product_codes: List[ProductCode]=None
            public_dns_name: str=None
            public_ip_address: str=None
            ramdisk_id: str=None
            state: InstanceState=None
            state_transition_reason: str=None
            subnet_id: str=None
            vpc_id: str=None
            architecture: str=None
            block_device_mappings: List[InstanceBlockDeviceMapping]=None
            client_token: str=None
            ebs_optimized: Boolean=None
            ena_support: Boolean=None
            hypervisor: str=None
            iam_instance_profile: IamInstanceProfile=None
            instance_lifecycle: str=None
            elastic_gpu_associations: List[ElasticGpuAssociation]=None
            elastic_inference_accelerator_associations: List[ElasticInferenceAcceleratorAssociation]=None
            network_interfaces: List[InstanceNetworkInterface]=None
            outpost_arn: str=None
            root_device_name: str=None
            root_device_type: str=None
            security_groups: List[GroupIdentifier]=None
            source_dest_check: Boolean=None
            spot_instance_request_id: str=None
            sriov_net_support: str=None
            state_reason: StateReason=None
            tags: List[Tag]=None
            virtualization_type: str=None
            cpu_options: CpuOptions=None
            capacity_reservation_id: str=None
            capacity_reservation_specification: CapacityReservationSpecificationResponse=None
            hibernation_options: HibernationOptions=None
            licenses: List[LicenseConfiguration]=None
            metadata_options: InstanceMetadataOptionsResponse=None
            enclave_options: EnclaveOptions=None
            boot_mode: str=None
            
            def wait_until_exists(self):
                pass

            def wait_until_running(self):
                pass

            def wait_until_stopped(self):
                pass

            def wait_until_terminated(self):
                pass

            def attach_classic_link_vpc(self, **kwargs):
                # type: (object) -> dict
                return {}

            def attach_volume(self, **kwargs):
                # type: (object) -> dict
                return {}

            def console_output(self, **kwargs):
                # type: (object) -> dict
                return {}

            def create_image(self, **kwargs):
                # type: (object) -> Image
                return Image()

            def create_tags(self, **kwargs):
                # type: (object) -> Tag
                return Tag()

            def describe_attribute(self, **kwargs):
                # type: (object) -> dict
                return {}

            def detach_classic_link_vpc(self, **kwargs):
                # type: (object) -> dict
                return {}

            def detach_volume(self, **kwargs):
                # type: (object) -> dict
                return {}

            def modify_attribute(self, **kwargs):
                # type: (object) -> dict
                return {}

            def monitor(self, **kwargs):
                # type: (object) -> dict
                return {}

            def password_data(self, **kwargs):
                # type: (object) -> dict
                return {}

            def reboot(self, **kwargs):
                # type: (object) -> dict
                return {}

            def report_status(self, **kwargs):
                # type: (object) -> dict
                return {}

            def reset_attribute(self, **kwargs):
                # type: (object) -> dict
                return {}

            def reset_kernel(self, **kwargs):
                # type: (object) -> dict
                return {}

            def reset_ramdisk(self, **kwargs):
                # type: (object) -> dict
                return {}

            def reset_source_dest_check(self, **kwargs):
                # type: (object) -> dict
                return {}

            def start(self, **kwargs):
                # type: (object) -> dict
                return {}

            def stop(self, **kwargs):
                # type: (object) -> dict
                return {}

            def terminate(self, **kwargs):
                # type: (object) -> dict
                return {}

            def unmonitor(self, **kwargs):
                # type: (object) -> dict
                return {}

        def delete_tags(self, **kwargs):
            
            pass


        
        class InternetGateway:
            r"""Creates a InternetGateway resource.::

  internet_gateway = ec2.InternetGateway('id')

:type id: string
:param id: The InternetGateway's id identifier. This **must** be set.

:rtype: :py:class:`EC2.InternetGateway`
:returns: A InternetGateway resource"""

            def __init__(self, id):
                pass
            
            class Tag(Mapping):
                pass

            class InternetGatewayAttachment(Mapping):
                pass
        
            attachments: List[InternetGatewayAttachment]=None
            internet_gateway_id: str=None
            owner_id: str=None
            tags: List[Tag]=None
            
            def attach_to_vpc(self, **kwargs):
                # type: (object) -> dict
                return {}

            def create_tags(self, **kwargs):
                # type: (object) -> Tag
                return Tag()

            def delete(self, **kwargs):
                # type: (object) -> dict
                return {}

            def detach_from_vpc(self, **kwargs):
                # type: (object) -> dict
                return {}

        def delete_tags(self, **kwargs):
            
            pass


        
        class KeyPair:
            r"""Creates a KeyPairInfo resource.::

  key_pair_info = ec2.KeyPair('name')

:type name: string
:param name: The KeyPair's name identifier. This **must** be set.

:rtype: :py:class:`EC2.KeyPairInfo`
:returns: A KeyPairInfo resource"""

            def __init__(self, name):
                pass
            
            class Tag(Mapping):
                pass
        
            key_pair_id: str=None
            key_fingerprint: str=None
            key_name: str=None
            tags: List[Tag]=None
            
            def delete(self, **kwargs):
                # type: (object) -> dict
                return {}

        def delete_tags(self, **kwargs):
            
            pass


        
        class NetworkAcl:
            r"""Creates a NetworkAcl resource.::

  network_acl = ec2.NetworkAcl('id')

:type id: string
:param id: The NetworkAcl's id identifier. This **must** be set.

:rtype: :py:class:`EC2.NetworkAcl`
:returns: A NetworkAcl resource"""

            def __init__(self, id):
                pass
            
            class Boolean(object):
                pass

            class NetworkAclAssociation(Mapping):
                pass

            class NetworkAclEntry(Mapping):
                pass

            class Tag(Mapping):
                pass
        
            associations: List[NetworkAclAssociation]=None
            entries: List[NetworkAclEntry]=None
            is_default: Boolean=None
            network_acl_id: str=None
            tags: List[Tag]=None
            vpc_id: str=None
            owner_id: str=None
            
            def create_entry(self, **kwargs):
                # type: (object) -> dict
                return {}

            def create_tags(self, **kwargs):
                # type: (object) -> Tag
                return Tag()

            def delete(self, **kwargs):
                # type: (object) -> dict
                return {}

            def delete_entry(self, **kwargs):
                # type: (object) -> dict
                return {}

            def replace_association(self, **kwargs):
                # type: (object) -> dict
                return {}

            def replace_entry(self, **kwargs):
                # type: (object) -> dict
                return {}

        def delete_tags(self, **kwargs):
            
            pass


        
        class NetworkInterface:
            r"""Creates a NetworkInterface resource.::

  network_interface = ec2.NetworkInterface('id')

:type id: string
:param id: The NetworkInterface's id identifier. This **must** be set.

:rtype: :py:class:`EC2.NetworkInterface`
:returns: A NetworkInterface resource"""

            def __init__(self, id):
                pass
            
            class Boolean(object):
                pass

            class NetworkInterfaceAttachment(Mapping):
                pass

            class NetworkInterfacePrivateIpAddress(Mapping):
                pass

            class Tag(Mapping):
                pass

            class NetworkInterfaceIpv6Address(Mapping):
                pass

            class GroupIdentifier(Mapping):
                pass

            class NetworkInterfaceAssociation(Mapping):
                pass
        
            association: NetworkInterfaceAssociation=None
            attachment: NetworkInterfaceAttachment=None
            availability_zone: str=None
            description: str=None
            groups: List[GroupIdentifier]=None
            interface_type: str=None
            ipv6_addresses: List[NetworkInterfaceIpv6Address]=None
            mac_address: str=None
            network_interface_id: str=None
            outpost_arn: str=None
            owner_id: str=None
            private_dns_name: str=None
            private_ip_address: str=None
            private_ip_addresses: List[NetworkInterfacePrivateIpAddress]=None
            requester_id: str=None
            requester_managed: Boolean=None
            source_dest_check: Boolean=None
            status: str=None
            subnet_id: str=None
            tag_set: List[Tag]=None
            vpc_id: str=None
            
            def assign_private_ip_addresses(self, **kwargs):
                # type: (object) -> dict
                return {}

            def attach(self, **kwargs):
                # type: (object) -> dict
                return {}

            def create_tags(self, **kwargs):
                # type: (object) -> Tag
                return Tag()

            def delete(self, **kwargs):
                # type: (object) -> dict
                return {}

            def describe_attribute(self, **kwargs):
                # type: (object) -> dict
                return {}

            def detach(self, **kwargs):
                # type: (object) -> dict
                return {}

            def modify_attribute(self, **kwargs):
                # type: (object) -> dict
                return {}

            def reset_attribute(self, **kwargs):
                # type: (object) -> dict
                return {}

            def unassign_private_ip_addresses(self, **kwargs):
                # type: (object) -> dict
                return {}

        def delete_tags(self, **kwargs):
            
            pass


        
        class NetworkInterfaceAssociation:
            r"""Creates a NetworkInterfaceAssociation resource.::

  network_interface_association = ec2.NetworkInterfaceAssociation('id')

:type id: string
:param id: The NetworkInterfaceAssociation's id identifier. This **must** be set.

:rtype: :py:class:`EC2.NetworkInterfaceAssociation`
:returns: A NetworkInterfaceAssociation resource"""

            def __init__(self, id):
                pass
            
        
            carrier_ip: str=None
            ip_owner_id: str=None
            public_dns_name: str=None
            public_ip: str=None
            
            def delete(self, **kwargs):
                # type: (object) -> dict
                return {}

        def delete_tags(self, **kwargs):
            
            pass


        
        class PlacementGroup:
            r"""Creates a PlacementGroup resource.::

  placement_group = ec2.PlacementGroup('name')

:type name: string
:param name: The PlacementGroup's name identifier. This **must** be set.

:rtype: :py:class:`EC2.PlacementGroup`
:returns: A PlacementGroup resource"""

            def __init__(self, name):
                pass
            
            class Tag(Mapping):
                pass
        
            group_name: str=None
            state: str=None
            strategy: str=None
            partition_count: int=None
            group_id: str=None
            tags: List[Tag]=None
            
            def delete(self, **kwargs):
                # type: (object) -> dict
                return {}

        def delete_tags(self, **kwargs):
            
            pass


        
        class Route:
            r"""Creates a Route resource.::

  route = ec2.Route('route_table_id','destination_cidr_block')

:type route_table_id: string
:param route_table_id: The Route's route_table_id identifier. This **must** be set.
:type destination_cidr_block: string
:param destination_cidr_block: The Route's destination_cidr_block identifier. This **must** be set.

:rtype: :py:class:`EC2.Route`
:returns: A Route resource"""

            def __init__(self, route_table_id, destination_cidr_block):
                pass
            
        
            destination_cidr_block: str=None
            destination_ipv6_cidr_block: str=None
            destination_prefix_list_id: str=None
            egress_only_internet_gateway_id: str=None
            gateway_id: str=None
            instance_id: str=None
            instance_owner_id: str=None
            nat_gateway_id: str=None
            transit_gateway_id: str=None
            local_gateway_id: str=None
            carrier_gateway_id: str=None
            network_interface_id: str=None
            origin: str=None
            state: str=None
            vpc_peering_connection_id: str=None
            
            def delete(self, **kwargs):
                # type: (object) -> dict
                return {}

            def replace(self, **kwargs):
                # type: (object) -> dict
                return {}

        def delete_tags(self, **kwargs):
            
            pass


        
        class RouteTable:
            r"""Creates a RouteTable resource.::

  route_table = ec2.RouteTable('id')

:type id: string
:param id: The RouteTable's id identifier. This **must** be set.

:rtype: :py:class:`EC2.RouteTable`
:returns: A RouteTable resource"""

            def __init__(self, id):
                pass
            
            class Tag(Mapping):
                pass

            class Route(Mapping):
                pass

            class PropagatingVgw(Mapping):
                pass

            class RouteTableAssociation(Mapping):
                pass
        
            associations: List[RouteTableAssociation]=None
            propagating_vgws: List[PropagatingVgw]=None
            route_table_id: str=None
            routes: List[Route]=None
            tags: List[Tag]=None
            vpc_id: str=None
            owner_id: str=None
            
            def associate_with_subnet(self, **kwargs):
                # type: (object) -> RouteTableAssociation
                return RouteTableAssociation()

            def create_route(self, **kwargs):
                # type: (object) -> Route
                return Route()

            def create_tags(self, **kwargs):
                # type: (object) -> Tag
                return Tag()

            def delete(self, **kwargs):
                # type: (object) -> dict
                return {}

        def delete_tags(self, **kwargs):
            
            pass


        
        class RouteTableAssociation:
            r"""Creates a RouteTableAssociation resource.::

  route_table_association = ec2.RouteTableAssociation('id')

:type id: string
:param id: The RouteTableAssociation's id identifier. This **must** be set.

:rtype: :py:class:`EC2.RouteTableAssociation`
:returns: A RouteTableAssociation resource"""

            def __init__(self, id):
                pass
            
            class Boolean(object):
                pass

            class RouteTableAssociationState(Mapping):
                pass
        
            main: Boolean=None
            route_table_association_id: str=None
            route_table_id: str=None
            subnet_id: str=None
            gateway_id: str=None
            association_state: RouteTableAssociationState=None
            
            def delete(self, **kwargs):
                # type: (object) -> dict
                return {}

            def replace_subnet(self, **kwargs):
                # type: (object) -> RouteTableAssociation
                return RouteTableAssociation()

        def delete_tags(self, **kwargs):
            
            pass


        
        class SecurityGroup:
            r"""Creates a SecurityGroup resource.::

  security_group = ec2.SecurityGroup('id')

:type id: string
:param id: The SecurityGroup's id identifier. This **must** be set.

:rtype: :py:class:`EC2.SecurityGroup`
:returns: A SecurityGroup resource"""

            def __init__(self, id):
                pass
            
            class Tag(Mapping):
                pass

            class IpPermission(Mapping):
                pass
        
            description: str=None
            group_name: str=None
            ip_permissions: List[IpPermission]=None
            owner_id: str=None
            group_id: str=None
            ip_permissions_egress: List[IpPermission]=None
            tags: List[Tag]=None
            vpc_id: str=None
            
            def authorize_egress(self, **kwargs):
                # type: (object) -> dict
                return {}

            def authorize_ingress(self, **kwargs):
                # type: (object) -> dict
                return {}

            def create_tags(self, **kwargs):
                # type: (object) -> Tag
                return Tag()

            def delete(self, **kwargs):
                # type: (object) -> dict
                return {}

            def revoke_egress(self, **kwargs):
                # type: (object) -> dict
                return {}

            def revoke_ingress(self, **kwargs):
                # type: (object) -> dict
                return {}

        def delete_tags(self, **kwargs):
            
            pass


        
        class Snapshot:
            r"""Creates a Snapshot resource.::

  snapshot = ec2.Snapshot('id')

:type id: string
:param id: The Snapshot's id identifier. This **must** be set.

:rtype: :py:class:`EC2.Snapshot`
:returns: A Snapshot resource"""

            def __init__(self, id):
                pass
            
            class Boolean(object):
                pass

            class Tag(Mapping):
                pass

            class DateTime(object):
                pass
        
            data_encryption_key_id: str=None
            description: str=None
            encrypted: Boolean=None
            kms_key_id: str=None
            owner_id: str=None
            progress: str=None
            snapshot_id: str=None
            start_time: DateTime=None
            state: str=None
            state_message: str=None
            volume_id: str=None
            volume_size: int=None
            owner_alias: str=None
            outpost_arn: str=None
            tags: List[Tag]=None
            
            def wait_until_completed(self):
                pass

            def copy(self, **kwargs):
                # type: (object) -> dict
                return {}

            def create_tags(self, **kwargs):
                # type: (object) -> Tag
                return Tag()

            def delete(self, **kwargs):
                # type: (object) -> dict
                return {}

            def describe_attribute(self, **kwargs):
                # type: (object) -> dict
                return {}

            def modify_attribute(self, **kwargs):
                # type: (object) -> dict
                return {}

            def reset_attribute(self, **kwargs):
                # type: (object) -> dict
                return {}

        def delete_tags(self, **kwargs):
            
            pass


        
        class Subnet:
            r"""Creates a Subnet resource.::

  subnet = ec2.Subnet('id')

:type id: string
:param id: The Subnet's id identifier. This **must** be set.

:rtype: :py:class:`EC2.Subnet`
:returns: A Subnet resource"""

            def __init__(self, id):
                pass
            
            class Boolean(object):
                pass

            class Tag(Mapping):
                pass

            class SubnetIpv6CidrBlockAssociation(Mapping):
                pass
        
            availability_zone: str=None
            availability_zone_id: str=None
            available_ip_address_count: int=None
            cidr_block: str=None
            default_for_az: Boolean=None
            map_public_ip_on_launch: Boolean=None
            map_customer_owned_ip_on_launch: Boolean=None
            customer_owned_ipv4_pool: str=None
            state: str=None
            subnet_id: str=None
            vpc_id: str=None
            owner_id: str=None
            assign_ipv6_address_on_creation: Boolean=None
            ipv6_cidr_block_association_set: List[SubnetIpv6CidrBlockAssociation]=None
            tags: List[Tag]=None
            subnet_arn: str=None
            outpost_arn: str=None
            
            def create_instances(self, **kwargs):
                # type: (object) -> Instance
                return Instance()

            def create_network_interface(self, **kwargs):
                # type: (object) -> NetworkInterface
                return NetworkInterface()

            def create_tags(self, **kwargs):
                # type: (object) -> Tag
                return Tag()

            def delete(self, **kwargs):
                # type: (object) -> dict
                return {}

        def delete_tags(self, **kwargs):
            
            pass


        
        class Tag:
            r"""Creates a Tag resource.::

  tag = ec2.Tag('resource_id','key','value')

:type resource_id: string
:param resource_id: The Tag's resource_id identifier. This **must** be set.
:type key: string
:param key: The Tag's key identifier. This **must** be set.
:type value: string
:param value: The Tag's value identifier. This **must** be set.

:rtype: :py:class:`EC2.Tag`
:returns: A Tag resource"""

            def __init__(self, resource_id, key, value):
                pass
            
        
            key: str=None
            resource_id: str=None
            resource_type: str=None
            value: str=None
            
            def delete(self, **kwargs):
                # type: (object) -> dict
                return {}

        def delete_tags(self, **kwargs):
            
            pass


        
        class Volume:
            r"""Creates a Volume resource.::

  volume = ec2.Volume('id')

:type id: string
:param id: The Volume's id identifier. This **must** be set.

:rtype: :py:class:`EC2.Volume`
:returns: A Volume resource"""

            def __init__(self, id):
                pass
            
            class Boolean(object):
                pass

            class Tag(Mapping):
                pass

            class VolumeAttachment(Mapping):
                pass

            class DateTime(object):
                pass
        
            attachments: List[VolumeAttachment]=None
            availability_zone: str=None
            create_time: DateTime=None
            encrypted: Boolean=None
            kms_key_id: str=None
            outpost_arn: str=None
            size: int=None
            snapshot_id: str=None
            state: str=None
            volume_id: str=None
            iops: int=None
            tags: List[Tag]=None
            volume_type: str=None
            fast_restored: Boolean=None
            multi_attach_enabled: Boolean=None
            throughput: int=None
            
            def attach_to_instance(self, **kwargs):
                # type: (object) -> dict
                return {}

            def create_snapshot(self, **kwargs):
                # type: (object) -> Snapshot
                return Snapshot()

            def create_tags(self, **kwargs):
                # type: (object) -> Tag
                return Tag()

            def delete(self, **kwargs):
                # type: (object) -> dict
                return {}

            def describe_attribute(self, **kwargs):
                # type: (object) -> dict
                return {}

            def describe_status(self, **kwargs):
                # type: (object) -> dict
                return {}

            def detach_from_instance(self, **kwargs):
                # type: (object) -> dict
                return {}

            def enable_io(self, **kwargs):
                # type: (object) -> dict
                return {}

            def modify_attribute(self, **kwargs):
                # type: (object) -> dict
                return {}

        def delete_tags(self, **kwargs):
            
            pass


        
        class Vpc:
            r"""Creates a Vpc resource.::

  vpc = ec2.Vpc('id')

:type id: string
:param id: The Vpc's id identifier. This **must** be set.

:rtype: :py:class:`EC2.Vpc`
:returns: A Vpc resource"""

            def __init__(self, id):
                pass
            
            class VpcIpv6CidrBlockAssociation(Mapping):
                pass

            class VpcCidrBlockAssociation(Mapping):
                pass

            class Tag(Mapping):
                pass

            class Boolean(object):
                pass
        
            cidr_block: str=None
            dhcp_options_id: str=None
            state: str=None
            vpc_id: str=None
            owner_id: str=None
            instance_tenancy: str=None
            ipv6_cidr_block_association_set: List[VpcIpv6CidrBlockAssociation]=None
            cidr_block_association_set: List[VpcCidrBlockAssociation]=None
            is_default: Boolean=None
            tags: List[Tag]=None
            
            def wait_until_available(self):
                pass

            def wait_until_exists(self):
                pass

            def associate_dhcp_options(self, **kwargs):
                # type: (object) -> dict
                return {}

            def attach_classic_link_instance(self, **kwargs):
                # type: (object) -> dict
                return {}

            def attach_internet_gateway(self, **kwargs):
                # type: (object) -> dict
                return {}

            def create_network_acl(self, **kwargs):
                # type: (object) -> NetworkAcl
                return NetworkAcl()

            def create_route_table(self, **kwargs):
                # type: (object) -> RouteTable
                return RouteTable()

            def create_security_group(self, **kwargs):
                # type: (object) -> SecurityGroup
                return SecurityGroup()

            def create_subnet(self, **kwargs):
                # type: (object) -> Subnet
                return Subnet()

            def create_tags(self, **kwargs):
                # type: (object) -> Tag
                return Tag()

            def delete(self, **kwargs):
                # type: (object) -> dict
                return {}

            def describe_attribute(self, **kwargs):
                # type: (object) -> dict
                return {}

            def detach_classic_link_instance(self, **kwargs):
                # type: (object) -> dict
                return {}

            def detach_internet_gateway(self, **kwargs):
                # type: (object) -> dict
                return {}

            def disable_classic_link(self, **kwargs):
                # type: (object) -> dict
                return {}

            def enable_classic_link(self, **kwargs):
                # type: (object) -> dict
                return {}

            def modify_attribute(self, **kwargs):
                # type: (object) -> dict
                return {}

            def request_vpc_peering_connection(self, **kwargs):
                # type: (object) -> VpcPeeringConnection
                return VpcPeeringConnection()

        def delete_tags(self, **kwargs):
            
            pass


        
        class VpcPeeringConnection:
            r"""Creates a VpcPeeringConnection resource.::

  vpc_peering_connection = ec2.VpcPeeringConnection('id')

:type id: string
:param id: The VpcPeeringConnection's id identifier. This **must** be set.

:rtype: :py:class:`EC2.VpcPeeringConnection`
:returns: A VpcPeeringConnection resource"""

            def __init__(self, id):
                pass
            
            class Tag(Mapping):
                pass

            class VpcPeeringConnectionStateReason(Mapping):
                pass

            class VpcPeeringConnectionVpcInfo(Mapping):
                pass

            class DateTime(object):
                pass
        
            accepter_vpc_info: VpcPeeringConnectionVpcInfo=None
            expiration_time: DateTime=None
            requester_vpc_info: VpcPeeringConnectionVpcInfo=None
            status: VpcPeeringConnectionStateReason=None
            tags: List[Tag]=None
            vpc_peering_connection_id: str=None
            
            def wait_until_exists(self):
                pass

            def accept(self, **kwargs):
                # type: (object) -> dict
                return {}

            def delete(self, **kwargs):
                # type: (object) -> dict
                return {}

            def reject(self, **kwargs):
                # type: (object) -> dict
                return {}

        def delete_tags(self, **kwargs):
            
            pass


        
        class VpcAddress:
            r"""Creates a VpcAddress resource.::

  vpc_address = ec2.VpcAddress('allocation_id')

:type allocation_id: string
:param allocation_id: The VpcAddress's allocation_id identifier. This **must** be set.

:rtype: :py:class:`EC2.VpcAddress`
:returns: A VpcAddress resource"""

            def __init__(self, allocation_id):
                pass
            
            class Tag(Mapping):
                pass
        
            instance_id: str=None
            public_ip: str=None
            allocation_id: str=None
            association_id: str=None
            domain: str=None
            network_interface_id: str=None
            network_interface_owner_id: str=None
            private_ip_address: str=None
            tags: List[Tag]=None
            public_ipv4_pool: str=None
            network_border_group: str=None
            customer_owned_ip: str=None
            customer_owned_ipv4_pool: str=None
            carrier_ip: str=None
            
            def associate(self, **kwargs):
                # type: (object) -> dict
                return {}

            def release(self, **kwargs):
                # type: (object) -> dict
                return {}

        def delete_tags(self, **kwargs):
            
            pass


        def create_dhcp_options(self, **kwargs):
            # type: (object) -> DhcpOptions
            pass

        def create_instances(self, **kwargs):
            # type: (object) -> Instance
            pass

        def create_internet_gateway(self, **kwargs):
            # type: (object) -> InternetGateway
            pass

        def create_key_pair(self, **kwargs):
            # type: (object) -> KeyPair
            pass

        def create_network_acl(self, **kwargs):
            # type: (object) -> NetworkAcl
            pass

        def create_network_interface(self, **kwargs):
            # type: (object) -> NetworkInterface
            pass

        def create_placement_group(self, **kwargs):
            # type: (object) -> PlacementGroup
            pass

        def create_route_table(self, **kwargs):
            # type: (object) -> RouteTable
            pass

        def create_security_group(self, **kwargs):
            # type: (object) -> SecurityGroup
            pass

        def create_snapshot(self, **kwargs):
            # type: (object) -> Snapshot
            pass

        def create_subnet(self, **kwargs):
            # type: (object) -> Subnet
            pass

        def create_tags(self, **kwargs):
            # type: (object) -> dict
            pass

        def create_volume(self, **kwargs):
            # type: (object) -> Volume
            pass

        def create_vpc(self, **kwargs):
            # type: (object) -> Vpc
            pass

        def create_vpc_peering_connection(self, **kwargs):
            # type: (object) -> VpcPeeringConnection
            pass

        def disassociate_route_table(self, **kwargs):
            # type: (object) -> dict
            pass

        def import_key_pair(self, **kwargs):
            # type: (object) -> KeyPairInfo
            pass

        def register_image(self, **kwargs):
            # type: (object) -> Image
            pass

        def get_available_subresources(self) -> List[str]:
            pass

        class ClassicAddressResourceCollection(List[ClassicAddress], ResourceCollection):
            pass

        classic_addresses: ClassicAddressResourceCollection = None
        class DhcpOptionsResourceCollection(List[DhcpOptions], ResourceCollection):
            pass

        dhcp_options_sets: DhcpOptionsResourceCollection = None
        class ImageResourceCollection(List[Image], ResourceCollection):
            pass

        images: ImageResourceCollection = None
        class InstanceResourceCollection(List[Instance], ResourceCollection):
            pass

        instances: InstanceResourceCollection = None
        class InternetGatewayResourceCollection(List[InternetGateway], ResourceCollection):
            pass

        internet_gateways: InternetGatewayResourceCollection = None
        class KeyPairInfoResourceCollection(List[KeyPair], ResourceCollection):
            pass

        key_pairs: KeyPairInfoResourceCollection = None
        class NetworkAclResourceCollection(List[NetworkAcl], ResourceCollection):
            pass

        network_acls: NetworkAclResourceCollection = None
        class NetworkInterfaceResourceCollection(List[NetworkInterface], ResourceCollection):
            pass

        network_interfaces: NetworkInterfaceResourceCollection = None
        class PlacementGroupResourceCollection(List[PlacementGroup], ResourceCollection):
            pass

        placement_groups: PlacementGroupResourceCollection = None
        class RouteTableResourceCollection(List[RouteTable], ResourceCollection):
            pass

        route_tables: RouteTableResourceCollection = None
        class SecurityGroupResourceCollection(List[SecurityGroup], ResourceCollection):
            pass

        security_groups: SecurityGroupResourceCollection = None
        class SnapshotResourceCollection(List[Snapshot], ResourceCollection):
            pass

        snapshots: SnapshotResourceCollection = None
        class SubnetResourceCollection(List[Subnet], ResourceCollection):
            pass

        subnets: SubnetResourceCollection = None
        class VolumeResourceCollection(List[Volume], ResourceCollection):
            pass

        volumes: VolumeResourceCollection = None
        class VpcAddressResourceCollection(List[VpcAddress], ResourceCollection):
            pass

        vpc_addresses: VpcAddressResourceCollection = None
        class VpcPeeringConnectionResourceCollection(List[VpcPeeringConnection], ResourceCollection):
            pass

        vpc_peering_connections: VpcPeeringConnectionResourceCollection = None
        class VpcResourceCollection(List[Vpc], ResourceCollection):
            pass

        vpcs: VpcResourceCollection = None




class EC2InstanceConnect(BaseClient):
    r"""Amazon EC2 Instance Connect enables system administrators to publish one-time use SSH public keys to EC2, providing users a simple and secure way to connect to their instances."""




    class SendSSHPublicKeyRequest(Mapping):
        pass
    
    class SendSSHPublicKeyResponse(Mapping):
        pass
    
    class SendSerialConsoleSSHPublicKeyRequest(Mapping):
        pass
    
    class SendSerialConsoleSSHPublicKeyResponse(Mapping):
        pass
    
    def send_ssh_public_key(self, AvailabilityZone: str, SSHPublicKey: str, InstanceOSUser: str, InstanceId: str) -> SendSSHPublicKeyResponse:
        r"""Pushes an SSH public key to the specified EC2 instance for use by the specified user. The key remains for 60 seconds. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Connect-using-EC2-Instance-Connect.html">Connect to your Linux instance using EC2 Instance Connect</a> in the <i>Amazon EC2 User Guide</i>.

        :param self:
        :param AvailabilityZone:  The Availability Zone in which the EC2 instance was launched.<br/>SSHPublicKey:  The public key material. To use the public key, you must have the matching private key.<br/>InstanceOSUser:  The OS user on the EC2 instance for whom the key can be used to authenticate.<br/>InstanceId:  The ID of the EC2 instance.<br/>
        :return: Success:  Is true if the request succeeds and an error otherwise.<br/>RequestId:  The ID of the request. Please provide this ID when contacting AWS Support for assistance.<br/>        """
        pass

    def send_serial_console_ssh_public_key(self, SSHPublicKey: str, InstanceId: str, SerialPort: int=None) -> SendSerialConsoleSSHPublicKeyResponse:
        r"""Pushes an SSH public key to the specified EC2 instance. The key remains for 60 seconds, which gives you 60 seconds to establish a serial console connection to the instance using SSH. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-serial-console.html">EC2 Serial Console</a> in the <i>Amazon EC2 User Guide</i>.

        :param self:
        :param SSHPublicKey:  The public key material. To use the public key, you must have the matching private key. For information about the supported key formats and lengths, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html#how-to-generate-your-own-key-and-import-it-to-aws">Requirements for key pairs</a> in the <i>Amazon EC2 User Guide</i>.<br/>SerialPort:  The serial port of the EC2 instance. Currently only port 0 is supported. Default: 0<br/>InstanceId:  The ID of the EC2 instance.<br/>
        :return: Success:  Is true if the request succeeds and an error otherwise.<br/>RequestId:  The ID of the request. Please provide this ID when contacting AWS Support for assistance.<br/>        """
        pass





class ECR(BaseClient):
    r"""<fullname>Amazon Elastic Container Registry</fullname> Amazon Elastic Container Registry (Amazon ECR) is a managed container image registry service. Customers can use the familiar Docker CLI, or their preferred client, to push, pull, and manage images. Amazon ECR provides a secure, scalable, and reliable registry for your Docker or Open Container Initiative (OCI) images. Amazon ECR supports private repositories with resource-based permissions using IAM so that specific users or Amazon EC2 instances can access repositories and images."""

    class ImageScanCompleteWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_image_scan_findings` for valid parameters"""
            pass
    class LifecyclePolicyPreviewCompleteWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `get_lifecycle_policy_preview` for valid parameters"""
            pass


    class ListImagesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_images` for valid parameters"""
            pass
    class DescribeImagesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_images` for valid parameters"""
            pass
    class DescribeRepositoriesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_repositories` for valid parameters"""
            pass
    class DescribeImageScanFindingsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_image_scan_findings` for valid parameters"""
            pass
    class GetLifecyclePolicyPreviewPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_lifecycle_policy_preview` for valid parameters"""
            pass


    class BatchCheckLayerAvailabilityRequest(Mapping):
        pass
    
    class BatchCheckLayerAvailabilityResponse(Mapping):
        pass
    
    class BatchedOperationLayerDigest(object):
        pass
    
    class BatchDeleteImageRequest(Mapping):
        pass
    
    class BatchDeleteImageResponse(Mapping):
        pass
    
    class ImageIdentifier(Mapping):
        pass
    
    class BatchGetImageRequest(Mapping):
        pass
    
    class BatchGetImageResponse(Mapping):
        pass
    
    class MediaType(object):
        pass
    
    class CompleteLayerUploadRequest(Mapping):
        pass
    
    class CompleteLayerUploadResponse(Mapping):
        pass
    
    class LayerDigest(object):
        pass
    
    class CreateRepositoryRequest(Mapping):
        pass
    
    class CreateRepositoryResponse(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class ImageScanningConfiguration(Mapping):
        pass
    
    class EncryptionConfiguration(Mapping):
        pass
    
    class DeleteLifecyclePolicyRequest(Mapping):
        pass
    
    class DeleteLifecyclePolicyResponse(Mapping):
        pass
    
    class DeleteRegistryPolicyRequest(Mapping):
        pass
    
    class DeleteRegistryPolicyResponse(Mapping):
        pass
    
    class DeleteRepositoryRequest(Mapping):
        pass
    
    class DeleteRepositoryResponse(Mapping):
        pass
    
    class ForceFlag(object):
        pass
    
    class DeleteRepositoryPolicyRequest(Mapping):
        pass
    
    class DeleteRepositoryPolicyResponse(Mapping):
        pass
    
    class DescribeImageScanFindingsRequest(Mapping):
        pass
    
    class DescribeImageScanFindingsResponse(Mapping):
        pass
    
    class DescribeImagesRequest(Mapping):
        pass
    
    class DescribeImagesResponse(Mapping):
        pass
    
    class DescribeImagesFilter(Mapping):
        pass
    
    class DescribeRegistryRequest(Mapping):
        pass
    
    class DescribeRegistryResponse(Mapping):
        pass
    
    class DescribeRepositoriesRequest(Mapping):
        pass
    
    class DescribeRepositoriesResponse(Mapping):
        pass
    
    class RepositoryName(object):
        pass
    
    class GetAuthorizationTokenRequest(Mapping):
        pass
    
    class GetAuthorizationTokenResponse(Mapping):
        pass
    
    class RegistryId(object):
        pass
    
    class GetDownloadUrlForLayerRequest(Mapping):
        pass
    
    class GetDownloadUrlForLayerResponse(Mapping):
        pass
    
    class GetLifecyclePolicyRequest(Mapping):
        pass
    
    class GetLifecyclePolicyResponse(Mapping):
        pass
    
    class GetLifecyclePolicyPreviewRequest(Mapping):
        pass
    
    class GetLifecyclePolicyPreviewResponse(Mapping):
        pass
    
    class LifecyclePolicyPreviewFilter(Mapping):
        pass
    
    class GetRegistryPolicyRequest(Mapping):
        pass
    
    class GetRegistryPolicyResponse(Mapping):
        pass
    
    class GetRepositoryPolicyRequest(Mapping):
        pass
    
    class GetRepositoryPolicyResponse(Mapping):
        pass
    
    class InitiateLayerUploadRequest(Mapping):
        pass
    
    class InitiateLayerUploadResponse(Mapping):
        pass
    
    class ListImagesRequest(Mapping):
        pass
    
    class ListImagesResponse(Mapping):
        pass
    
    class ListImagesFilter(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class PutImageRequest(Mapping):
        pass
    
    class PutImageResponse(Mapping):
        pass
    
    class PutImageScanningConfigurationRequest(Mapping):
        pass
    
    class PutImageScanningConfigurationResponse(Mapping):
        pass
    
    class PutImageTagMutabilityRequest(Mapping):
        pass
    
    class PutImageTagMutabilityResponse(Mapping):
        pass
    
    class PutLifecyclePolicyRequest(Mapping):
        pass
    
    class PutLifecyclePolicyResponse(Mapping):
        pass
    
    class PutRegistryPolicyRequest(Mapping):
        pass
    
    class PutRegistryPolicyResponse(Mapping):
        pass
    
    class PutReplicationConfigurationRequest(Mapping):
        pass
    
    class PutReplicationConfigurationResponse(Mapping):
        pass
    
    class ReplicationConfiguration(Mapping):
        pass
    
    class SetRepositoryPolicyRequest(Mapping):
        pass
    
    class SetRepositoryPolicyResponse(Mapping):
        pass
    
    class StartImageScanRequest(Mapping):
        pass
    
    class StartImageScanResponse(Mapping):
        pass
    
    class StartLifecyclePolicyPreviewRequest(Mapping):
        pass
    
    class StartLifecyclePolicyPreviewResponse(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UploadLayerPartRequest(Mapping):
        pass
    
    class UploadLayerPartResponse(Mapping):
        pass
    
    class PartSize(object):
        pass
    
    class LayerPartBlob(object):
        pass
    
    def batch_check_layer_availability(self, layerDigests: List[BatchedOperationLayerDigest], repositoryName: str, registryId: str=None) -> BatchCheckLayerAvailabilityResponse:
        r"""Checks the availability of one or more image layers in a repository. When an image is pushed to a repository, each image layer is checked to verify if it has been uploaded before. If it has been uploaded, then the image layer is skipped. <note> This operation is used by the Amazon ECR proxy and is not generally used by customers for pulling and pushing images. In most cases, you should use the <code>docker</code> CLI to pull, tag, and push images. </note>

        :param self:
        :param layerDigests:  The digests of the image layers to check.<br/>repositoryName:  The name of the repository that is associated with the image layers to check.<br/>registryId:  The AWS account ID associated with the registry that contains the image layers to check. If you do not specify a registry, the default registry is assumed.<br/>
        :return: failures:  Any failures associated with the call.<br/>layers:  A list of image layer objects corresponding to the image layer references in the request.<br/>        """
        pass

    def batch_delete_image(self, imageIds: List[ImageIdentifier], repositoryName: str, registryId: str=None) -> BatchDeleteImageResponse:
        r"""Deletes a list of specified images within a repository. Images are specified with either an <code>imageTag</code> or <code>imageDigest</code>. You can remove a tag from an image by specifying the image's tag in your request. When you remove the last tag from an image, the image is deleted from your repository. You can completely delete an image (and all of its tags) by specifying the image's digest in your request.

        :param self:
        :param imageIds:  A list of image ID references that correspond to images to delete. The format of the <code>imageIds</code> reference is <code>imageTag=tag</code> or <code>imageDigest=digest</code>.<br/>repositoryName:  The repository that contains the image to delete.<br/>registryId:  The AWS account ID associated with the registry that contains the image to delete. If you do not specify a registry, the default registry is assumed.<br/>
        :return: failures:  Any failures associated with the call.<br/>imageIds:  The image IDs of the deleted images.<br/>        """
        pass

    def batch_get_image(self, imageIds: List[ImageIdentifier], repositoryName: str, registryId: str=None, acceptedMediaTypes: List[MediaType]=None) -> BatchGetImageResponse:
        r"""Gets detailed information for an image. Images are specified with either an <code>imageTag</code> or <code>imageDigest</code>. When an image is pulled, the BatchGetImage API is called once to retrieve the image manifest.

        :param self:
        :param acceptedMediaTypes:  The accepted media types for the request. Valid values: <code>application/vnd.docker.distribution.manifest.v1+json</code> | <code>application/vnd.docker.distribution.manifest.v2+json</code> | <code>application/vnd.oci.image.manifest.v1+json</code> <br/>imageIds:  A list of image ID references that correspond to images to describe. The format of the <code>imageIds</code> reference is <code>imageTag=tag</code> or <code>imageDigest=digest</code>.<br/>repositoryName:  The repository that contains the images to describe.<br/>registryId:  The AWS account ID associated with the registry that contains the images to describe. If you do not specify a registry, the default registry is assumed.<br/>
        :return: failures:  Any failures associated with the call.<br/>images:  A list of image objects corresponding to the image references in the request.<br/>        """
        pass

    def complete_layer_upload(self, layerDigests: List[LayerDigest], uploadId: str, repositoryName: str, registryId: str=None) -> CompleteLayerUploadResponse:
        r"""Informs Amazon ECR that the image layer upload has completed for a specified registry, repository name, and upload ID. You can optionally provide a <code>sha256</code> digest of the image layer for data validation purposes. When an image is pushed, the CompleteLayerUpload API is called once per each new image layer to verify that the upload has completed. <note> This operation is used by the Amazon ECR proxy and is not generally used by customers for pulling and pushing images. In most cases, you should use the <code>docker</code> CLI to pull, tag, and push images. </note>

        :param self:
        :param layerDigests:  The <code>sha256</code> digest of the image layer.<br/>uploadId:  The upload ID from a previous <a>InitiateLayerUpload</a> operation to associate with the image layer.<br/>repositoryName:  The name of the repository to associate with the image layer.<br/>registryId:  The AWS account ID associated with the registry to which to upload layers. If you do not specify a registry, the default registry is assumed.<br/>
        :return: layerDigest:  The <code>sha256</code> digest of the image layer.<br/>uploadId:  The upload ID associated with the layer.<br/>repositoryName:  The repository name associated with the request.<br/>registryId:  The registry ID associated with the request.<br/>        """
        pass

    def create_repository(self, repositoryName: str, tags: List[Tag]=None, imageTagMutability: str=None, imageScanningConfiguration: ImageScanningConfiguration=None, encryptionConfiguration: EncryptionConfiguration=None) -> CreateRepositoryResponse:
        r"""Creates a repository. For more information, see <a href="https://docs.aws.amazon.com/AmazonECR/latest/userguide/Repositories.html">Amazon ECR Repositories</a> in the <i>Amazon Elastic Container Registry User Guide</i>.

        :param self:
        :param encryptionConfiguration:  The encryption configuration for the repository. This determines how the contents of your repository are encrypted at rest.:<br/>imageScanningConfiguration:  The image scanning configuration for the repository. This determines whether images are scanned for known vulnerabilities after being pushed to the repository.:<br/>imageTagMutability:  The tag mutability setting for the repository. If this parameter is omitted, the default setting of <code>MUTABLE</code> will be used which will allow image tags to be overwritten. If <code>IMMUTABLE</code> is specified, all image tags within the repository will be immutable which will prevent them from being overwritten.<br/>tags:  The metadata that you apply to the repository to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters.<br/>repositoryName:  The name to use for the repository. The repository name may be specified on its own (such as <code>nginx-web-app</code>) or it can be prepended with a namespace to group the repository into a category (such as <code>project-a/nginx-web-app</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>scanOnPush</i> The setting that determines whether images are scanned after being pushed to a repository. If set to <code>true</code>, images will be scanned after being pushed. If this parameter is not specified, it will default to <code>false</code> and images will not be scanned unless a scan is manually started with the <a>StartImageScan</a> API.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>kmsKey</i> If you use the <code>KMS</code> encryption type, specify the CMK to use for encryption. The alias, key ID, or full ARN of the CMK can be specified. The key must exist in the same Region as the repository. If no key is specified, the default AWS managed CMK for Amazon ECR will be used.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>encryptionType</i> The encryption type to use. If you use the <code>KMS</code> encryption type, the contents of the repository will be encrypted using server-side encryption with customer master keys (CMKs) stored in AWS KMS. When you use AWS KMS to encrypt your data, you can either use the default AWS managed CMK for Amazon ECR, or specify your own CMK, which you already created. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html">Protecting Data Using Server-Side Encryption with CMKs Stored in AWS Key Management Service (SSE-KMS)</a> in the <i>Amazon Simple Storage Service Console Developer Guide.</i>. If you use the <code>AES256</code> encryption type, Amazon ECR uses server-side encryption with Amazon S3-managed encryption keys which encrypts the images in the repository using an AES-256 encryption algorithm. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html">Protecting Data Using Server-Side Encryption with Amazon S3-Managed Encryption Keys (SSE-S3)</a> in the <i>Amazon Simple Storage Service Console Developer Guide.</i>.<br/>
        :return: repository:  The repository that was created.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>encryptionConfiguration</i> The encryption configuration for the repository. This determines how the contents of your repository are encrypted at rest.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>encryptionConfiguration</b>: The encryption configuration for the repository. This determines how the contents of your repository are encrypted at rest.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>imageScanningConfiguration</i> The image scanning configuration for a repository.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>imageScanningConfiguration</b>: The image scanning configuration for a repository.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>imageTagMutability</i> The tag mutability setting for the repository.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The date and time, in JavaScript date format, when the repository was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>repositoryUri</i> The URI for the repository. You can use this URI for container image <code>push</code> and <code>pull</code> operations.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>repositoryName</i> The name of the repository.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>registryId</i> The AWS account ID associated with the registry that contains the repository.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>repositoryArn</i> The Amazon Resource Name (ARN) that identifies the repository. The ARN contains the <code>arn:aws:ecr</code> namespace, followed by the region of the repository, AWS account ID of the repository owner, repository namespace, and repository name. For example, <code>arn:aws:ecr:region:012345678910:repository/test</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>scanOnPush</i> The setting that determines whether images are scanned after being pushed to a repository. If set to <code>true</code>, images will be scanned after being pushed. If this parameter is not specified, it will default to <code>false</code> and images will not be scanned unless a scan is manually started with the <a>StartImageScan</a> API.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>kmsKey</i> If you use the <code>KMS</code> encryption type, specify the CMK to use for encryption. The alias, key ID, or full ARN of the CMK can be specified. The key must exist in the same Region as the repository. If no key is specified, the default AWS managed CMK for Amazon ECR will be used.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>encryptionType</i> The encryption type to use. If you use the <code>KMS</code> encryption type, the contents of the repository will be encrypted using server-side encryption with customer master keys (CMKs) stored in AWS KMS. When you use AWS KMS to encrypt your data, you can either use the default AWS managed CMK for Amazon ECR, or specify your own CMK, which you already created. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html">Protecting Data Using Server-Side Encryption with CMKs Stored in AWS Key Management Service (SSE-KMS)</a> in the <i>Amazon Simple Storage Service Console Developer Guide.</i>. If you use the <code>AES256</code> encryption type, Amazon ECR uses server-side encryption with Amazon S3-managed encryption keys which encrypts the images in the repository using an AES-256 encryption algorithm. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html">Protecting Data Using Server-Side Encryption with Amazon S3-Managed Encryption Keys (SSE-S3)</a> in the <i>Amazon Simple Storage Service Console Developer Guide.</i>.<br/>        """
        pass

    def delete_lifecycle_policy(self, repositoryName: str, registryId: str=None) -> DeleteLifecyclePolicyResponse:
        r"""Deletes the lifecycle policy associated with the specified repository.

        :param self:
        :param repositoryName:  The name of the repository.<br/>registryId:  The AWS account ID associated with the registry that contains the repository. If you do not specify a registry, the default registry is assumed.<br/>
        :return: lastEvaluatedAt:  The time stamp of the last time that the lifecycle policy was run.<br/>lifecyclePolicyText:  The JSON lifecycle policy text.<br/>repositoryName:  The repository name associated with the request.<br/>registryId:  The registry ID associated with the request.<br/>        """
        pass

    def delete_registry_policy(self) -> DeleteRegistryPolicyResponse:
        r"""Deletes the registry permissions policy.

        :param self:
        :param 
        :return: policyText:  The contents of the registry permissions policy that was deleted.<br/>registryId:  The registry ID associated with the request.<br/>        """
        pass

    def delete_repository(self, repositoryName: str, registryId: str=None, force: ForceFlag=None) -> DeleteRepositoryResponse:
        r"""Deletes a repository. If the repository contains images, you must either delete all images in the repository or use the <code>force</code> option to delete the repository.

        :param self:
        :param force:   If a repository contains images, forces the deletion.<br/>repositoryName:  The name of the repository to delete.<br/>registryId:  The AWS account ID associated with the registry that contains the repository to delete. If you do not specify a registry, the default registry is assumed.<br/>
        :return: repository:  The repository that was deleted.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>encryptionConfiguration</i> The encryption configuration for the repository. This determines how the contents of your repository are encrypted at rest.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>encryptionConfiguration</b>: The encryption configuration for the repository. This determines how the contents of your repository are encrypted at rest.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>imageScanningConfiguration</i> The image scanning configuration for a repository.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>imageScanningConfiguration</b>: The image scanning configuration for a repository.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>imageTagMutability</i> The tag mutability setting for the repository.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The date and time, in JavaScript date format, when the repository was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>repositoryUri</i> The URI for the repository. You can use this URI for container image <code>push</code> and <code>pull</code> operations.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>repositoryName</i> The name of the repository.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>registryId</i> The AWS account ID associated with the registry that contains the repository.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>repositoryArn</i> The Amazon Resource Name (ARN) that identifies the repository. The ARN contains the <code>arn:aws:ecr</code> namespace, followed by the region of the repository, AWS account ID of the repository owner, repository namespace, and repository name. For example, <code>arn:aws:ecr:region:012345678910:repository/test</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>scanOnPush</i> The setting that determines whether images are scanned after being pushed to a repository. If set to <code>true</code>, images will be scanned after being pushed. If this parameter is not specified, it will default to <code>false</code> and images will not be scanned unless a scan is manually started with the <a>StartImageScan</a> API.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>kmsKey</i> If you use the <code>KMS</code> encryption type, specify the CMK to use for encryption. The alias, key ID, or full ARN of the CMK can be specified. The key must exist in the same Region as the repository. If no key is specified, the default AWS managed CMK for Amazon ECR will be used.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>encryptionType</i> The encryption type to use. If you use the <code>KMS</code> encryption type, the contents of the repository will be encrypted using server-side encryption with customer master keys (CMKs) stored in AWS KMS. When you use AWS KMS to encrypt your data, you can either use the default AWS managed CMK for Amazon ECR, or specify your own CMK, which you already created. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html">Protecting Data Using Server-Side Encryption with CMKs Stored in AWS Key Management Service (SSE-KMS)</a> in the <i>Amazon Simple Storage Service Console Developer Guide.</i>. If you use the <code>AES256</code> encryption type, Amazon ECR uses server-side encryption with Amazon S3-managed encryption keys which encrypts the images in the repository using an AES-256 encryption algorithm. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html">Protecting Data Using Server-Side Encryption with Amazon S3-Managed Encryption Keys (SSE-S3)</a> in the <i>Amazon Simple Storage Service Console Developer Guide.</i>.<br/>        """
        pass

    def delete_repository_policy(self, repositoryName: str, registryId: str=None) -> DeleteRepositoryPolicyResponse:
        r"""Deletes the repository policy associated with the specified repository.

        :param self:
        :param repositoryName:  The name of the repository that is associated with the repository policy to delete.<br/>registryId:  The AWS account ID associated with the registry that contains the repository policy to delete. If you do not specify a registry, the default registry is assumed.<br/>
        :return: policyText:  The JSON repository policy that was deleted from the repository.<br/>repositoryName:  The repository name associated with the request.<br/>registryId:  The registry ID associated with the request.<br/>        """
        pass

    def describe_image_scan_findings(self, imageId: ImageIdentifier, repositoryName: str, registryId: str=None, nextToken: str=None, maxResults: int=None) -> DescribeImageScanFindingsResponse:
        r"""Returns the scan findings for the specified image.

        :param self:
        :param maxResults:  The maximum number of image scan results returned by <code>DescribeImageScanFindings</code> in paginated output. When this parameter is used, <code>DescribeImageScanFindings</code> only returns <code>maxResults</code> results in a single page along with a <code>nextToken</code> response element. The remaining results of the initial request can be seen by sending another <code>DescribeImageScanFindings</code> request with the returned <code>nextToken</code> value. This value can be between 1 and 1000. If this parameter is not used, then <code>DescribeImageScanFindings</code> returns up to 100 results and a <code>nextToken</code> value, if applicable.<br/>nextToken:  The <code>nextToken</code> value returned from a previous paginated <code>DescribeImageScanFindings</code> request where <code>maxResults</code> was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the <code>nextToken</code> value. This value is null when there are no more results to return.<br/>imageId:  An object with identifying information for an Amazon ECR image.:<br/>repositoryName:  The repository for the image for which to describe the scan findings.<br/>registryId:  The AWS account ID associated with the registry that contains the repository in which to describe the image scan findings for. If you do not specify a registry, the default registry is assumed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>imageTag</i> The tag used for the image.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>imageDigest</i> The <code>sha256</code> digest of the image manifest.<br/>
        :return: nextToken:  The <code>nextToken</code> value to include in a future <code>DescribeImageScanFindings</code> request. When the results of a <code>DescribeImageScanFindings</code> request exceed <code>maxResults</code>, this value can be used to retrieve the next page of results. This value is null when there are no more results to return.<br/>imageScanFindings:  The information contained in the image scan findings.:<br/>imageScanStatus:  The current state of the scan.:<br/>imageId:  An object with identifying information for an Amazon ECR image.:<br/>repositoryName:  The repository name associated with the request.<br/>registryId:  The registry ID associated with the request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>imageTag</i> The tag used for the image.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>imageDigest</i> The <code>sha256</code> digest of the image manifest.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> The description of the image scan status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current state of an image scan.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>findingSeverityCounts</i> The image vulnerability counts, sorted by severity.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>findings</i> The findings from the image scan.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>vulnerabilitySourceUpdatedAt</i> The time when the vulnerability data was last scanned.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>imageScanCompletedAt</i> The time of the last completed image scan.<br/>        """
        pass

    def describe_images(self, repositoryName: str, registryId: str=None, imageIds: List[ImageIdentifier]=None, nextToken: str=None, maxResults: int=None, filter: DescribeImagesFilter=None) -> DescribeImagesResponse:
        r"""Returns metadata about the images in a repository. <note> Beginning with Docker version 1.9, the Docker client compresses image layers before pushing them to a V2 Docker registry. The output of the <code>docker images</code> command shows the uncompressed image size, so it may return a larger image size than the image sizes returned by <a>DescribeImages</a>. </note>

        :param self:
        :param filter:  The filter key and value with which to filter your <code>DescribeImages</code> results.:<br/>maxResults:  The maximum number of repository results returned by <code>DescribeImages</code> in paginated output. When this parameter is used, <code>DescribeImages</code> only returns <code>maxResults</code> results in a single page along with a <code>nextToken</code> response element. The remaining results of the initial request can be seen by sending another <code>DescribeImages</code> request with the returned <code>nextToken</code> value. This value can be between 1 and 1000. If this parameter is not used, then <code>DescribeImages</code> returns up to 100 results and a <code>nextToken</code> value, if applicable. This option cannot be used when you specify images with <code>imageIds</code>.<br/>nextToken:  The <code>nextToken</code> value returned from a previous paginated <code>DescribeImages</code> request where <code>maxResults</code> was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the <code>nextToken</code> value. This value is <code>null</code> when there are no more results to return. This option cannot be used when you specify images with <code>imageIds</code>.<br/>imageIds:  The list of image IDs for the requested repository.<br/>repositoryName:  The repository that contains the images to describe.<br/>registryId:  The AWS account ID associated with the registry that contains the repository in which to describe images. If you do not specify a registry, the default registry is assumed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tagStatus</i> The tag status with which to filter your <a>DescribeImages</a> results. You can filter results based on whether they are <code>TAGGED</code> or <code>UNTAGGED</code>.<br/>
        :return: nextToken:  The <code>nextToken</code> value to include in a future <code>DescribeImages</code> request. When the results of a <code>DescribeImages</code> request exceed <code>maxResults</code>, this value can be used to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>imageDetails:  A list of <a>ImageDetail</a> objects that contain data about the image.<br/>        """
        pass

    def describe_registry(self) -> DescribeRegistryResponse:
        r"""Describes the settings for a registry. The replication configuration for a repository can be created or updated with the <a>PutReplicationConfiguration</a> API action.

        :param self:
        :param 
        :return: replicationConfiguration:  The replication configuration for the registry.:<br/>registryId:  The ID of the registry.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>rules</i> An array of objects representing the replication rules for a replication configuration. A replication configuration may contain only one replication rule but the rule may contain one or more replication destinations.<br/>        """
        pass

    def describe_repositories(self, registryId: str=None, repositoryNames: List[RepositoryName]=None, nextToken: str=None, maxResults: int=None) -> DescribeRepositoriesResponse:
        r"""Describes image repositories in a registry.

        :param self:
        :param maxResults:  The maximum number of repository results returned by <code>DescribeRepositories</code> in paginated output. When this parameter is used, <code>DescribeRepositories</code> only returns <code>maxResults</code> results in a single page along with a <code>nextToken</code> response element. The remaining results of the initial request can be seen by sending another <code>DescribeRepositories</code> request with the returned <code>nextToken</code> value. This value can be between 1 and 1000. If this parameter is not used, then <code>DescribeRepositories</code> returns up to 100 results and a <code>nextToken</code> value, if applicable. This option cannot be used when you specify repositories with <code>repositoryNames</code>.<br/>nextToken:  The <code>nextToken</code> value returned from a previous paginated <code>DescribeRepositories</code> request where <code>maxResults</code> was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the <code>nextToken</code> value. This value is <code>null</code> when there are no more results to return. This option cannot be used when you specify repositories with <code>repositoryNames</code>. <note> This token should be treated as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes. </note><br/>repositoryNames:  A list of repositories to describe. If this parameter is omitted, then all repositories in a registry are described.<br/>registryId:  The AWS account ID associated with the registry that contains the repositories to be described. If you do not specify a registry, the default registry is assumed.<br/>
        :return: nextToken:  The <code>nextToken</code> value to include in a future <code>DescribeRepositories</code> request. When the results of a <code>DescribeRepositories</code> request exceed <code>maxResults</code>, this value can be used to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>repositories:  A list of repository objects corresponding to valid repositories.<br/>        """
        pass

    def get_authorization_token(self, registryIds: List[RegistryId]=None) -> GetAuthorizationTokenResponse:
        r"""Retrieves an authorization token. An authorization token represents your IAM authentication credentials and can be used to access any Amazon ECR registry that your IAM principal has access to. The authorization token is valid for 12 hours. The <code>authorizationToken</code> returned is a base64 encoded string that can be decoded and used in a <code>docker login</code> command to authenticate to a registry. The AWS CLI offers an <code>get-login-password</code> command that simplifies the login process. For more information, see <a href="https://docs.aws.amazon.com/AmazonECR/latest/userguide/Registries.html#registry_auth">Registry Authentication</a> in the <i>Amazon Elastic Container Registry User Guide</i>.

        :param self:
        :param registryIds:  A list of AWS account IDs that are associated with the registries for which to get AuthorizationData objects. If you do not specify a registry, the default registry is assumed.<br/>
        :return: authorizationData:  A list of authorization token data objects that correspond to the <code>registryIds</code> values in the request.<br/>        """
        pass

    def get_download_url_for_layer(self, layerDigest: str, repositoryName: str, registryId: str=None) -> GetDownloadUrlForLayerResponse:
        r"""Retrieves the pre-signed Amazon S3 download URL corresponding to an image layer. You can only get URLs for image layers that are referenced in an image. When an image is pulled, the GetDownloadUrlForLayer API is called once per image layer that is not already cached. <note> This operation is used by the Amazon ECR proxy and is not generally used by customers for pulling and pushing images. In most cases, you should use the <code>docker</code> CLI to pull, tag, and push images. </note>

        :param self:
        :param layerDigest:  The digest of the image layer to download.<br/>repositoryName:  The name of the repository that is associated with the image layer to download.<br/>registryId:  The AWS account ID associated with the registry that contains the image layer to download. If you do not specify a registry, the default registry is assumed.<br/>
        :return: layerDigest:  The digest of the image layer to download.<br/>downloadUrl:  The pre-signed Amazon S3 download URL for the requested layer.<br/>        """
        pass

    def get_lifecycle_policy(self, repositoryName: str, registryId: str=None) -> GetLifecyclePolicyResponse:
        r"""Retrieves the lifecycle policy for the specified repository.

        :param self:
        :param repositoryName:  The name of the repository.<br/>registryId:  The AWS account ID associated with the registry that contains the repository. If you do not specify a registry, the default registry is assumed.<br/>
        :return: lastEvaluatedAt:  The time stamp of the last time that the lifecycle policy was run.<br/>lifecyclePolicyText:  The JSON lifecycle policy text.<br/>repositoryName:  The repository name associated with the request.<br/>registryId:  The registry ID associated with the request.<br/>        """
        pass

    def get_lifecycle_policy_preview(self, repositoryName: str, registryId: str=None, imageIds: List[ImageIdentifier]=None, nextToken: str=None, maxResults: int=None, filter: LifecyclePolicyPreviewFilter=None) -> GetLifecyclePolicyPreviewResponse:
        r"""Retrieves the results of the lifecycle policy preview request for the specified repository.

        :param self:
        :param filter:  An optional parameter that filters results based on image tag status and all tags, if tagged.:<br/>maxResults:  The maximum number of repository results returned by <code>GetLifecyclePolicyPreviewRequest</code> in&#x2028; paginated output. When this parameter is used, <code>GetLifecyclePolicyPreviewRequest</code> only returns&#x2028; <code>maxResults</code> results in a single page along with a <code>nextToken</code>&#x2028; response element. The remaining results of the initial request can be seen by sending&#x2028; another <code>GetLifecyclePolicyPreviewRequest</code> request with the returned <code>nextToken</code>&#x2028; value. This value can be between 1 and 1000. If this&#x2028; parameter is not used, then <code>GetLifecyclePolicyPreviewRequest</code> returns up to&#x2028; 100 results and a <code>nextToken</code> value, if&#x2028; applicable. This option cannot be used when you specify images with <code>imageIds</code>.<br/>nextToken:  The <code>nextToken</code> value returned from a previous paginated&#x2028; <code>GetLifecyclePolicyPreviewRequest</code> request where <code>maxResults</code> was used and the&#x2028; results exceeded the value of that parameter. Pagination continues from the end of the&#x2028; previous results that returned the <code>nextToken</code> value. This value is&#x2028; <code>null</code> when there are no more results to return. This option cannot be used when you specify images with <code>imageIds</code>.<br/>imageIds:  The list of imageIDs to be included.<br/>repositoryName:  The name of the repository.<br/>registryId:  The AWS account ID associated with the registry that contains the repository. If you do not specify a registry, the default registry is assumed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tagStatus</i> The tag status of the image.<br/>
        :return: summary:  The list of images that is returned as a result of the action.:<br/>previewResults:  The results of the lifecycle policy preview request.<br/>nextToken:  The <code>nextToken</code> value to include in a future <code>GetLifecyclePolicyPreview</code> request. When the results of a <code>GetLifecyclePolicyPreview</code> request exceed <code>maxResults</code>, this value can be used to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>status:  The status of the lifecycle policy preview request.<br/>lifecyclePolicyText:  The JSON lifecycle policy text.<br/>repositoryName:  The repository name associated with the request.<br/>registryId:  The registry ID associated with the request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>expiringImageTotalCount</i> The number of expiring images.<br/>        """
        pass

    def get_registry_policy(self) -> GetRegistryPolicyResponse:
        r"""Retrieves the permissions policy for a registry.

        :param self:
        :param 
        :return: policyText:  The JSON text of the permissions policy for a registry.<br/>registryId:  The ID of the registry.<br/>        """
        pass

    def get_repository_policy(self, repositoryName: str, registryId: str=None) -> GetRepositoryPolicyResponse:
        r"""Retrieves the repository policy for the specified repository.

        :param self:
        :param repositoryName:  The name of the repository with the policy to retrieve.<br/>registryId:  The AWS account ID associated with the registry that contains the repository. If you do not specify a registry, the default registry is assumed.<br/>
        :return: policyText:  The JSON repository policy text associated with the repository.<br/>repositoryName:  The repository name associated with the request.<br/>registryId:  The registry ID associated with the request.<br/>        """
        pass

    def initiate_layer_upload(self, repositoryName: str, registryId: str=None) -> InitiateLayerUploadResponse:
        r"""Notifies Amazon ECR that you intend to upload an image layer. When an image is pushed, the InitiateLayerUpload API is called once per image layer that has not already been uploaded. Whether or not an image layer has been uploaded is determined by the BatchCheckLayerAvailability API action. <note> This operation is used by the Amazon ECR proxy and is not generally used by customers for pulling and pushing images. In most cases, you should use the <code>docker</code> CLI to pull, tag, and push images. </note>

        :param self:
        :param repositoryName:  The name of the repository to which you intend to upload layers.<br/>registryId:  The AWS account ID associated with the registry to which you intend to upload layers. If you do not specify a registry, the default registry is assumed.<br/>
        :return: partSize:  The size, in bytes, that Amazon ECR expects future layer part uploads to be.<br/>uploadId:  The upload ID for the layer upload. This parameter is passed to further <a>UploadLayerPart</a> and <a>CompleteLayerUpload</a> operations.<br/>        """
        pass

    def list_images(self, repositoryName: str, registryId: str=None, nextToken: str=None, maxResults: int=None, filter: ListImagesFilter=None) -> ListImagesResponse:
        r"""Lists all the image IDs for the specified repository. You can filter images based on whether or not they are tagged by using the <code>tagStatus</code> filter and specifying either <code>TAGGED</code>, <code>UNTAGGED</code> or <code>ANY</code>. For example, you can filter your results to return only <code>UNTAGGED</code> images and then pipe that result to a <a>BatchDeleteImage</a> operation to delete them. Or, you can filter your results to return only <code>TAGGED</code> images to list all of the tags in your repository.

        :param self:
        :param filter:  The filter key and value with which to filter your <code>ListImages</code> results.:<br/>maxResults:  The maximum number of image results returned by <code>ListImages</code> in paginated output. When this parameter is used, <code>ListImages</code> only returns <code>maxResults</code> results in a single page along with a <code>nextToken</code> response element. The remaining results of the initial request can be seen by sending another <code>ListImages</code> request with the returned <code>nextToken</code> value. This value can be between 1 and 1000. If this parameter is not used, then <code>ListImages</code> returns up to 100 results and a <code>nextToken</code> value, if applicable.<br/>nextToken:  The <code>nextToken</code> value returned from a previous paginated <code>ListImages</code> request where <code>maxResults</code> was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the <code>nextToken</code> value. This value is <code>null</code> when there are no more results to return. <note> This token should be treated as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes. </note><br/>repositoryName:  The repository with image IDs to be listed.<br/>registryId:  The AWS account ID associated with the registry that contains the repository in which to list images. If you do not specify a registry, the default registry is assumed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tagStatus</i> The tag status with which to filter your <a>ListImages</a> results. You can filter results based on whether they are <code>TAGGED</code> or <code>UNTAGGED</code>.<br/>
        :return: nextToken:  The <code>nextToken</code> value to include in a future <code>ListImages</code> request. When the results of a <code>ListImages</code> request exceed <code>maxResults</code>, this value can be used to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>imageIds:  The list of image IDs for the requested repository.<br/>        """
        pass

    def list_tags_for_resource(self, resourceArn: str) -> ListTagsForResourceResponse:
        r"""List the tags for an Amazon ECR resource.

        :param self:
        :param resourceArn:  The Amazon Resource Name (ARN) that identifies the resource for which to list the tags. Currently, the only supported resource is an Amazon ECR repository.<br/>
        :return: tags:  The tags for the resource.<br/>        """
        pass

    def put_image(self, imageManifest: str, repositoryName: str, registryId: str=None, imageManifestMediaType: str=None, imageTag: str=None, imageDigest: str=None) -> PutImageResponse:
        r"""Creates or updates the image manifest and tags associated with an image. When an image is pushed and all new image layers have been uploaded, the PutImage API is called once to create or update the image manifest and the tags associated with the image. <note> This operation is used by the Amazon ECR proxy and is not generally used by customers for pulling and pushing images. In most cases, you should use the <code>docker</code> CLI to pull, tag, and push images. </note>

        :param self:
        :param imageDigest:  The image digest of the image manifest corresponding to the image.<br/>imageTag:  The tag to associate with the image. This parameter is required for images that use the Docker Image Manifest V2 Schema 2 or Open Container Initiative (OCI) formats.<br/>imageManifestMediaType:  The media type of the image manifest. If you push an image manifest that does not contain the <code>mediaType</code> field, you must specify the <code>imageManifestMediaType</code> in the request.<br/>imageManifest:  The image manifest corresponding to the image to be uploaded.<br/>repositoryName:  The name of the repository in which to put the image.<br/>registryId:  The AWS account ID associated with the registry that contains the repository in which to put the image. If you do not specify a registry, the default registry is assumed.<br/>
        :return: image:  Details of the image uploaded.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>imageManifestMediaType</i> The manifest media type of the image.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>imageManifest</i> The image manifest associated with the image.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>imageId</i> An object containing the image tag and image digest associated with an image.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>imageId</b>: An object containing the image tag and image digest associated with an image.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>repositoryName</i> The name of the repository associated with the image.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>registryId</i> The AWS account ID associated with the registry containing the image.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>imageTag</i> The tag used for the image.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>imageDigest</i> The <code>sha256</code> digest of the image manifest.<br/>        """
        pass

    def put_image_scanning_configuration(self, imageScanningConfiguration: ImageScanningConfiguration, repositoryName: str, registryId: str=None) -> PutImageScanningConfigurationResponse:
        r"""Updates the image scanning configuration for the specified repository.

        :param self:
        :param imageScanningConfiguration:  The image scanning configuration for the repository. This setting determines whether images are scanned for known vulnerabilities after being pushed to the repository.:<br/>repositoryName:  The name of the repository in which to update the image scanning configuration setting.<br/>registryId:  The AWS account ID associated with the registry that contains the repository in which to update the image scanning configuration setting. If you do not specify a registry, the default registry is assumed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>scanOnPush</i> The setting that determines whether images are scanned after being pushed to a repository. If set to <code>true</code>, images will be scanned after being pushed. If this parameter is not specified, it will default to <code>false</code> and images will not be scanned unless a scan is manually started with the <a>StartImageScan</a> API.<br/>
        :return: imageScanningConfiguration:  The image scanning configuration setting for the repository.:<br/>repositoryName:  The repository name associated with the request.<br/>registryId:  The registry ID associated with the request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>scanOnPush</i> The setting that determines whether images are scanned after being pushed to a repository. If set to <code>true</code>, images will be scanned after being pushed. If this parameter is not specified, it will default to <code>false</code> and images will not be scanned unless a scan is manually started with the <a>StartImageScan</a> API.<br/>        """
        pass

    def put_image_tag_mutability(self, imageTagMutability: str, repositoryName: str, registryId: str=None) -> PutImageTagMutabilityResponse:
        r"""Updates the image tag mutability settings for the specified repository. For more information, see <a href="https://docs.aws.amazon.com/AmazonECR/latest/userguide/image-tag-mutability.html">Image Tag Mutability</a> in the <i>Amazon Elastic Container Registry User Guide</i>.

        :param self:
        :param imageTagMutability:  The tag mutability setting for the repository. If <code>MUTABLE</code> is specified, image tags can be overwritten. If <code>IMMUTABLE</code> is specified, all image tags within the repository will be immutable which will prevent them from being overwritten.<br/>repositoryName:  The name of the repository in which to update the image tag mutability settings.<br/>registryId:  The AWS account ID associated with the registry that contains the repository in which to update the image tag mutability settings. If you do not specify a registry, the default registry is assumed.<br/>
        :return: imageTagMutability:  The image tag mutability setting for the repository.<br/>repositoryName:  The repository name associated with the request.<br/>registryId:  The registry ID associated with the request.<br/>        """
        pass

    def put_lifecycle_policy(self, lifecyclePolicyText: str, repositoryName: str, registryId: str=None) -> PutLifecyclePolicyResponse:
        r"""Creates or updates the lifecycle policy for the specified repository. For more information, see <a href="https://docs.aws.amazon.com/AmazonECR/latest/userguide/LifecyclePolicies.html">Lifecycle Policy Template</a>.

        :param self:
        :param lifecyclePolicyText:  The JSON repository policy text to apply to the repository.<br/>repositoryName:  The name of the repository to receive the policy.<br/>registryId:  The AWS account ID associated with the registry that contains the repository. If you do&#x2028; not specify a registry, the default registry is assumed.<br/>
        :return: lifecyclePolicyText:  The JSON repository policy text.<br/>repositoryName:  The repository name associated with the request.<br/>registryId:  The registry ID associated with the request.<br/>        """
        pass

    def put_registry_policy(self, policyText: str) -> PutRegistryPolicyResponse:
        r"""Creates or updates the permissions policy for your registry. A registry policy is used to specify permissions for another AWS account and is used when configuring cross-account replication. For more information, see <a href="https://docs.aws.amazon.com/AmazonECR/latest/userguide/registry-permissions.html">Registry permissions</a> in the <i>Amazon Elastic Container Registry User Guide</i>.

        :param self:
        :param policyText:  The JSON policy text to apply to your registry. The policy text follows the same format as IAM policy text. For more information, see <a href="https://docs.aws.amazon.com/AmazonECR/latest/userguide/registry-permissions.html">Registry permissions</a> in the <i>Amazon Elastic Container Registry User Guide</i>.<br/>
        :return: policyText:  The JSON policy text for your registry.<br/>registryId:  The registry ID.<br/>        """
        pass

    def put_replication_configuration(self, replicationConfiguration: ReplicationConfiguration) -> PutReplicationConfigurationResponse:
        r"""Creates or updates the replication configuration for a registry. The existing replication configuration for a repository can be retrieved with the <a>DescribeRegistry</a> API action. The first time the PutReplicationConfiguration API is called, a service-linked IAM role is created in your account for the replication process. For more information, see <a href="https://docs.aws.amazon.com/AmazonECR/latest/userguide/using-service-linked-roles.html">Using Service-Linked Roles for Amazon ECR</a> in the <i>Amazon Elastic Container Registry User Guide</i>. <note> When configuring cross-account replication, the destination account must grant the source account permission to replicate. This permission is controlled using a registry permissions policy. For more information, see <a>PutRegistryPolicy</a>. </note>

        :param self:
        :param replicationConfiguration:  An object representing the replication configuration for a registry.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>rules</i> An array of objects representing the replication rules for a replication configuration. A replication configuration may contain only one replication rule but the rule may contain one or more replication destinations.<br/>
        :return: replicationConfiguration:  The contents of the replication configuration for the registry.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>rules</i> An array of objects representing the replication rules for a replication configuration. A replication configuration may contain only one replication rule but the rule may contain one or more replication destinations.<br/>        """
        pass

    def set_repository_policy(self, policyText: str, repositoryName: str, registryId: str=None, force: ForceFlag=None) -> SetRepositoryPolicyResponse:
        r"""Applies a repository policy to the specified repository to control access permissions. For more information, see <a href="https://docs.aws.amazon.com/AmazonECR/latest/userguide/repository-policies.html">Amazon ECR Repository Policies</a> in the <i>Amazon Elastic Container Registry User Guide</i>.

        :param self:
        :param force:  If the policy you are attempting to set on a repository policy would prevent you from setting another policy in the future, you must force the <a>SetRepositoryPolicy</a> operation. This is intended to prevent accidental repository lock outs.<br/>policyText:  The JSON repository policy text to apply to the repository. For more information, see <a href="https://docs.aws.amazon.com/AmazonECR/latest/userguide/repository-policy-examples.html">Amazon ECR Repository Policies</a> in the <i>Amazon Elastic Container Registry User Guide</i>.<br/>repositoryName:  The name of the repository to receive the policy.<br/>registryId:  The AWS account ID associated with the registry that contains the repository. If you do not specify a registry, the default registry is assumed.<br/>
        :return: policyText:  The JSON repository policy text applied to the repository.<br/>repositoryName:  The repository name associated with the request.<br/>registryId:  The registry ID associated with the request.<br/>        """
        pass

    def start_image_scan(self, imageId: ImageIdentifier, repositoryName: str, registryId: str=None) -> StartImageScanResponse:
        r"""Starts an image vulnerability scan. An image scan can only be started once per day on an individual image. This limit includes if an image was scanned on initial push. For more information, see <a href="https://docs.aws.amazon.com/AmazonECR/latest/userguide/image-scanning.html">Image Scanning</a> in the <i>Amazon Elastic Container Registry User Guide</i>.

        :param self:
        :param imageId:  An object with identifying information for an Amazon ECR image.:<br/>repositoryName:  The name of the repository that contains the images to scan.<br/>registryId:  The AWS account ID associated with the registry that contains the repository in which to start an image scan request. If you do not specify a registry, the default registry is assumed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>imageTag</i> The tag used for the image.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>imageDigest</i> The <code>sha256</code> digest of the image manifest.<br/>
        :return: imageScanStatus:  The current state of the scan.:<br/>imageId:  An object with identifying information for an Amazon ECR image.:<br/>repositoryName:  The repository name associated with the request.<br/>registryId:  The registry ID associated with the request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>imageTag</i> The tag used for the image.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>imageDigest</i> The <code>sha256</code> digest of the image manifest.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> The description of the image scan status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current state of an image scan.<br/>        """
        pass

    def start_lifecycle_policy_preview(self, repositoryName: str, registryId: str=None, lifecyclePolicyText: str=None) -> StartLifecyclePolicyPreviewResponse:
        r"""Starts a preview of a lifecycle policy for the specified repository. This allows you to see the results before associating the lifecycle policy with the repository.

        :param self:
        :param lifecyclePolicyText:  The policy to be evaluated against. If you do not specify a policy, the current policy for the repository is used.<br/>repositoryName:  The name of the repository to be evaluated.<br/>registryId:  The AWS account ID associated with the registry that contains the repository. If you do not specify a registry, the default registry is assumed.<br/>
        :return: status:  The status of the lifecycle policy preview request.<br/>lifecyclePolicyText:  The JSON repository policy text.<br/>repositoryName:  The repository name associated with the request.<br/>registryId:  The registry ID associated with the request.<br/>        """
        pass

    def tag_resource(self, tags: List[Tag], resourceArn: str) -> TagResourceResponse:
        r"""Adds specified tags to a resource with the specified ARN. Existing tags on a resource are not changed if they are not specified in the request parameters.

        :param self:
        :param tags:  The tags to add to the resource. A tag is an array of key-value pairs. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters.<br/>resourceArn:  The Amazon Resource Name (ARN) of the the resource to which to add tags. Currently, the only supported resource is an Amazon ECR repository.<br/>
        :return:         """
        pass

    def untag_resource(self, tagKeys: List[TagKey], resourceArn: str) -> UntagResourceResponse:
        r"""Deletes specified tags from a resource.

        :param self:
        :param tagKeys:  The keys of the tags to be removed.<br/>resourceArn:  The Amazon Resource Name (ARN) of the resource from which to remove tags. Currently, the only supported resource is an Amazon ECR repository.<br/>
        :return:         """
        pass

    def upload_layer_part(self, layerPartBlob: LayerPartBlob, partLastByte: PartSize, partFirstByte: PartSize, uploadId: str, repositoryName: str, registryId: str=None) -> UploadLayerPartResponse:
        r"""Uploads an image layer part to Amazon ECR. When an image is pushed, each new image layer is uploaded in parts. The maximum size of each image layer part can be 20971520 bytes (or about 20MB). The UploadLayerPart API is called once per each new image layer part. <note> This operation is used by the Amazon ECR proxy and is not generally used by customers for pulling and pushing images. In most cases, you should use the <code>docker</code> CLI to pull, tag, and push images. </note>

        :param self:
        :param layerPartBlob:  The base64-encoded layer part payload.<br/>partLastByte:  The position of the last byte of the layer part within the overall image layer.<br/>partFirstByte:  The position of the first byte of the layer part witin the overall image layer.<br/>uploadId:  The upload ID from a previous <a>InitiateLayerUpload</a> operation to associate with the layer part upload.<br/>repositoryName:  The name of the repository to which you are uploading layer parts.<br/>registryId:  The AWS account ID associated with the registry to which you are uploading layer parts. If you do not specify a registry, the default registry is assumed.<br/>
        :return: lastByteReceived:  The integer value of the last byte received in the request.<br/>uploadId:  The upload ID associated with the request.<br/>repositoryName:  The repository name associated with the request.<br/>registryId:  The registry ID associated with the request.<br/>        """
        pass





class ECRPublic(BaseClient):
    r"""<fullname>Amazon Elastic Container Registry Public</fullname> Amazon Elastic Container Registry (Amazon ECR) is a managed container image registry service. Amazon ECR provides both public and private registries to host your container images. You can use the familiar Docker CLI, or their preferred client, to push, pull, and manage images. Amazon ECR provides a secure, scalable, and reliable registry for your Docker or Open Container Initiative (OCI) images. Amazon ECR supports public repositories with this API. For information about the Amazon ECR API for private repositories, see <a href="https://docs.aws.amazon.com/AmazonECR/latest/APIReference/Welcome.html">Amazon Elastic Container Registry API Reference</a>."""


    class DescribeImageTagsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_image_tags` for valid parameters"""
            pass
    class DescribeImagesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_images` for valid parameters"""
            pass
    class DescribeRegistriesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_registries` for valid parameters"""
            pass
    class DescribeRepositoriesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_repositories` for valid parameters"""
            pass


    class BatchCheckLayerAvailabilityRequest(Mapping):
        pass
    
    class BatchCheckLayerAvailabilityResponse(Mapping):
        pass
    
    class BatchedOperationLayerDigest(object):
        pass
    
    class BatchDeleteImageRequest(Mapping):
        pass
    
    class BatchDeleteImageResponse(Mapping):
        pass
    
    class ImageIdentifier(Mapping):
        pass
    
    class CompleteLayerUploadRequest(Mapping):
        pass
    
    class CompleteLayerUploadResponse(Mapping):
        pass
    
    class LayerDigest(object):
        pass
    
    class CreateRepositoryRequest(Mapping):
        pass
    
    class CreateRepositoryResponse(Mapping):
        pass
    
    class RepositoryCatalogDataInput(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class DeleteRepositoryRequest(Mapping):
        pass
    
    class DeleteRepositoryResponse(Mapping):
        pass
    
    class ForceFlag(object):
        pass
    
    class DeleteRepositoryPolicyRequest(Mapping):
        pass
    
    class DeleteRepositoryPolicyResponse(Mapping):
        pass
    
    class DescribeImageTagsRequest(Mapping):
        pass
    
    class DescribeImageTagsResponse(Mapping):
        pass
    
    class DescribeImagesRequest(Mapping):
        pass
    
    class DescribeImagesResponse(Mapping):
        pass
    
    class DescribeRegistriesRequest(Mapping):
        pass
    
    class DescribeRegistriesResponse(Mapping):
        pass
    
    class DescribeRepositoriesRequest(Mapping):
        pass
    
    class DescribeRepositoriesResponse(Mapping):
        pass
    
    class RepositoryName(object):
        pass
    
    class GetAuthorizationTokenRequest(Mapping):
        pass
    
    class GetAuthorizationTokenResponse(Mapping):
        pass
    
    class GetRegistryCatalogDataRequest(Mapping):
        pass
    
    class GetRegistryCatalogDataResponse(Mapping):
        pass
    
    class GetRepositoryCatalogDataRequest(Mapping):
        pass
    
    class GetRepositoryCatalogDataResponse(Mapping):
        pass
    
    class GetRepositoryPolicyRequest(Mapping):
        pass
    
    class GetRepositoryPolicyResponse(Mapping):
        pass
    
    class InitiateLayerUploadRequest(Mapping):
        pass
    
    class InitiateLayerUploadResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class PutImageRequest(Mapping):
        pass
    
    class PutImageResponse(Mapping):
        pass
    
    class PutRegistryCatalogDataRequest(Mapping):
        pass
    
    class PutRegistryCatalogDataResponse(Mapping):
        pass
    
    class PutRepositoryCatalogDataRequest(Mapping):
        pass
    
    class PutRepositoryCatalogDataResponse(Mapping):
        pass
    
    class SetRepositoryPolicyRequest(Mapping):
        pass
    
    class SetRepositoryPolicyResponse(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UploadLayerPartRequest(Mapping):
        pass
    
    class UploadLayerPartResponse(Mapping):
        pass
    
    class PartSize(object):
        pass
    
    class LayerPartBlob(object):
        pass
    
    def batch_check_layer_availability(self, layerDigests: List[BatchedOperationLayerDigest], repositoryName: str, registryId: str=None) -> BatchCheckLayerAvailabilityResponse:
        r"""Checks the availability of one or more image layers within a repository in a public registry. When an image is pushed to a repository, each image layer is checked to verify if it has been uploaded before. If it has been uploaded, then the image layer is skipped. <note> This operation is used by the Amazon ECR proxy and is not generally used by customers for pulling and pushing images. In most cases, you should use the <code>docker</code> CLI to pull, tag, and push images. </note>

        :param self:
        :param layerDigests:  The digests of the image layers to check.<br/>repositoryName:  The name of the repository that is associated with the image layers to check.<br/>registryId:  The AWS account ID associated with the public registry that contains the image layers to check. If you do not specify a registry, the default public registry is assumed.<br/>
        :return: failures:  Any failures associated with the call.<br/>layers:  A list of image layer objects corresponding to the image layer references in the request.<br/>        """
        pass

    def batch_delete_image(self, imageIds: List[ImageIdentifier], repositoryName: str, registryId: str=None) -> BatchDeleteImageResponse:
        r"""Deletes a list of specified images within a repository in a public registry. Images are specified with either an <code>imageTag</code> or <code>imageDigest</code>. You can remove a tag from an image by specifying the image's tag in your request. When you remove the last tag from an image, the image is deleted from your repository. You can completely delete an image (and all of its tags) by specifying the image's digest in your request.

        :param self:
        :param imageIds:  A list of image ID references that correspond to images to delete. The format of the <code>imageIds</code> reference is <code>imageTag=tag</code> or <code>imageDigest=digest</code>.<br/>repositoryName:  The repository in a public registry that contains the image to delete.<br/>registryId:  The AWS account ID associated with the registry that contains the image to delete. If you do not specify a registry, the default public registry is assumed.<br/>
        :return: failures:  Any failures associated with the call.<br/>imageIds:  The image IDs of the deleted images.<br/>        """
        pass

    def complete_layer_upload(self, layerDigests: List[LayerDigest], uploadId: str, repositoryName: str, registryId: str=None) -> CompleteLayerUploadResponse:
        r"""Informs Amazon ECR that the image layer upload has completed for a specified public registry, repository name, and upload ID. You can optionally provide a <code>sha256</code> digest of the image layer for data validation purposes. When an image is pushed, the CompleteLayerUpload API is called once per each new image layer to verify that the upload has completed. <note> This operation is used by the Amazon ECR proxy and is not generally used by customers for pulling and pushing images. In most cases, you should use the <code>docker</code> CLI to pull, tag, and push images. </note>

        :param self:
        :param layerDigests:  The <code>sha256</code> digest of the image layer.<br/>uploadId:  The upload ID from a previous <a>InitiateLayerUpload</a> operation to associate with the image layer.<br/>repositoryName:  The name of the repository in a public registry to associate with the image layer.<br/>registryId:  The AWS account ID associated with the registry to which to upload layers. If you do not specify a registry, the default public registry is assumed.<br/>
        :return: layerDigest:  The <code>sha256</code> digest of the image layer.<br/>uploadId:  The upload ID associated with the layer.<br/>repositoryName:  The repository name associated with the request.<br/>registryId:  The public registry ID associated with the request.<br/>        """
        pass

    def create_repository(self, repositoryName: str, catalogData: RepositoryCatalogDataInput=None, tags: List[Tag]=None) -> CreateRepositoryResponse:
        r"""Creates a repository in a public registry. For more information, see <a href="https://docs.aws.amazon.com/AmazonECR/latest/userguide/Repositories.html">Amazon ECR repositories</a> in the <i>Amazon Elastic Container Registry User Guide</i>.

        :param self:
        :param tags:  The metadata that you apply to the repository to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters.<br/>catalogData:  The details about the repository that are publicly visible in the Amazon ECR Public Gallery.:<br/>repositoryName:  The name to use for the repository. This appears publicly in the Amazon ECR Public Gallery. The repository name may be specified on its own (such as <code>nginx-web-app</code>) or it can be prepended with a namespace to group the repository into a category (such as <code>project-a/nginx-web-app</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>usageText</i> Detailed information on how to use the contents of the repository. It is publicly visible in the Amazon ECR Public Gallery. The usage text provides context, support information, and additional usage details for users of the repository. The text must be in markdown format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>aboutText</i> A detailed description of the contents of the repository. It is publicly visible in the Amazon ECR Public Gallery. The text must be in markdown format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>logoImageBlob</i> The base64-encoded repository logo payload. <note> The repository logo is only publicly visible in the Amazon ECR Public Gallery for verified accounts. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>operatingSystems</i> The operating systems that the images in the repository are compatible with. On the Amazon ECR Public Gallery, the following supported operating systems will appear as badges on the repository and are used as search filters. <ul> <li>  <code>ARM</code>  </li> <li>  <code>ARM 64</code>  </li> <li>  <code>x86</code>  </li> <li>  <code>x86-64</code>  </li> </ul> <note> If an unsupported tag is added to your repository catalog data, it will be associated with the repository and can be retrieved using the API but will not be discoverable in the Amazon ECR Public Gallery. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>architectures</i> The system architecture that the images in the repository are compatible with. On the Amazon ECR Public Gallery, the following supported architectures will appear as badges on the repository and are used as search filters. <ul> <li>  <code>Linux</code>  </li> <li>  <code>Windows</code>  </li> </ul> <note> If an unsupported tag is added to your repository catalog data, it will be associated with the repository and can be retrieved using the API but will not be discoverable in the Amazon ECR Public Gallery. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> A short description of the contents of the repository. This text appears in both the image details and also when searching for repositories on the Amazon ECR Public Gallery.<br/>
        :return: catalogData:  The catalog data for a repository. This data is publicly visible in the Amazon ECR Public Gallery.:<br/>repository:  The repository that was created.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The date and time, in JavaScript date format, when the repository was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>repositoryUri</i> The URI for the repository. You can use this URI for container image <code>push</code> and <code>pull</code> operations.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>repositoryName</i> The name of the repository.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>registryId</i> The AWS account ID associated with the public registry that contains the repository.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>repositoryArn</i> The Amazon Resource Name (ARN) that identifies the repository. The ARN contains the <code>arn:aws:ecr</code> namespace, followed by the region of the repository, AWS account ID of the repository owner, repository namespace, and repository name. For example, <code>arn:aws:ecr:region:012345678910:repository/test</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>marketplaceCertified</i> Whether or not the repository is certified by AWS Marketplace.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>usageText</i> The longform usage details of the contents of the repository. The usage text provides context for users of the repository.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>aboutText</i> The longform description of the contents of the repository. This text appears in the repository details on the Amazon ECR Public Gallery.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>logoUrl</i> The URL containing the logo associated with the repository.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>operatingSystems</i> The operating system tags that are associated with the repository. <note> Only supported operating system tags appear publicly in the Amazon ECR Public Gallery. For more information, see <a>RepositoryCatalogDataInput</a>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>architectures</i> The architecture tags that are associated with the repository. <note> Only supported operating system tags appear publicly in the Amazon ECR Public Gallery. For more information, see <a>RepositoryCatalogDataInput</a>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> The short description of the repository.<br/>        """
        pass

    def delete_repository(self, repositoryName: str, registryId: str=None, force: ForceFlag=None) -> DeleteRepositoryResponse:
        r"""Deletes a repository in a public registry. If the repository contains images, you must either delete all images in the repository or use the <code>force</code> option which deletes all images on your behalf before deleting the repository.

        :param self:
        :param force:   If a repository contains images, forces the deletion.<br/>repositoryName:  The name of the repository to delete.<br/>registryId:  The AWS account ID associated with the public registry that contains the repository to delete. If you do not specify a registry, the default public registry is assumed.<br/>
        :return: repository:  The repository that was deleted.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The date and time, in JavaScript date format, when the repository was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>repositoryUri</i> The URI for the repository. You can use this URI for container image <code>push</code> and <code>pull</code> operations.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>repositoryName</i> The name of the repository.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>registryId</i> The AWS account ID associated with the public registry that contains the repository.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>repositoryArn</i> The Amazon Resource Name (ARN) that identifies the repository. The ARN contains the <code>arn:aws:ecr</code> namespace, followed by the region of the repository, AWS account ID of the repository owner, repository namespace, and repository name. For example, <code>arn:aws:ecr:region:012345678910:repository/test</code>.<br/>        """
        pass

    def delete_repository_policy(self, repositoryName: str, registryId: str=None) -> DeleteRepositoryPolicyResponse:
        r"""Deletes the repository policy associated with the specified repository.

        :param self:
        :param repositoryName:  The name of the repository that is associated with the repository policy to delete.<br/>registryId:  The AWS account ID associated with the public registry that contains the repository policy to delete. If you do not specify a registry, the default public registry is assumed.<br/>
        :return: policyText:  The JSON repository policy that was deleted from the repository.<br/>repositoryName:  The repository name associated with the request.<br/>registryId:  The registry ID associated with the request.<br/>        """
        pass

    def describe_image_tags(self, repositoryName: str, registryId: str=None, nextToken: str=None, maxResults: int=None) -> DescribeImageTagsResponse:
        r"""Returns the image tag details for a repository in a public registry.

        :param self:
        :param maxResults:  The maximum number of repository results returned by <code>DescribeImageTags</code> in paginated output. When this parameter is used, <code>DescribeImageTags</code> only returns <code>maxResults</code> results in a single page along with a <code>nextToken</code> response element. The remaining results of the initial request can be seen by sending another <code>DescribeImageTags</code> request with the returned <code>nextToken</code> value. This value can be between 1 and 1000. If this parameter is not used, then <code>DescribeImageTags</code> returns up to 100 results and a <code>nextToken</code> value, if applicable. This option cannot be used when you specify images with <code>imageIds</code>.<br/>nextToken:  The <code>nextToken</code> value returned from a previous paginated <code>DescribeImageTags</code> request where <code>maxResults</code> was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the <code>nextToken</code> value. This value is <code>null</code> when there are no more results to return. This option cannot be used when you specify images with <code>imageIds</code>.<br/>repositoryName:  The name of the repository that contains the image tag details to describe.<br/>registryId:  The AWS account ID associated with the public registry that contains the repository in which to describe images. If you do not specify a registry, the default public registry is assumed.<br/>
        :return: nextToken:  The <code>nextToken</code> value to include in a future <code>DescribeImageTags</code> request. When the results of a <code>DescribeImageTags</code> request exceed <code>maxResults</code>, this value can be used to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>imageTagDetails:  The image tag details for the images in the requested repository.<br/>        """
        pass

    def describe_images(self, repositoryName: str, registryId: str=None, imageIds: List[ImageIdentifier]=None, nextToken: str=None, maxResults: int=None) -> DescribeImagesResponse:
        r"""Returns metadata about the images in a repository in a public registry. <note> Beginning with Docker version 1.9, the Docker client compresses image layers before pushing them to a V2 Docker registry. The output of the <code>docker images</code> command shows the uncompressed image size, so it may return a larger image size than the image sizes returned by <a>DescribeImages</a>. </note>

        :param self:
        :param maxResults:  The maximum number of repository results returned by <code>DescribeImages</code> in paginated output. When this parameter is used, <code>DescribeImages</code> only returns <code>maxResults</code> results in a single page along with a <code>nextToken</code> response element. The remaining results of the initial request can be seen by sending another <code>DescribeImages</code> request with the returned <code>nextToken</code> value. This value can be between 1 and 1000. If this parameter is not used, then <code>DescribeImages</code> returns up to 100 results and a <code>nextToken</code> value, if applicable. This option cannot be used when you specify images with <code>imageIds</code>.<br/>nextToken:  The <code>nextToken</code> value returned from a previous paginated <code>DescribeImages</code> request where <code>maxResults</code> was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the <code>nextToken</code> value. This value is <code>null</code> when there are no more results to return. This option cannot be used when you specify images with <code>imageIds</code>.<br/>imageIds:  The list of image IDs for the requested repository.<br/>repositoryName:  The repository that contains the images to describe.<br/>registryId:  The AWS account ID associated with the public registry that contains the repository in which to describe images. If you do not specify a registry, the default public registry is assumed.<br/>
        :return: nextToken:  The <code>nextToken</code> value to include in a future <code>DescribeImages</code> request. When the results of a <code>DescribeImages</code> request exceed <code>maxResults</code>, this value can be used to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>imageDetails:  A list of <a>ImageDetail</a> objects that contain data about the image.<br/>        """
        pass

    def describe_registries(self, nextToken: str=None, maxResults: int=None) -> DescribeRegistriesResponse:
        r"""Returns details for a public registry.

        :param self:
        :param maxResults:  The maximum number of repository results returned by <code>DescribeRegistries</code> in paginated output. When this parameter is used, <code>DescribeRegistries</code> only returns <code>maxResults</code> results in a single page along with a <code>nextToken</code> response element. The remaining results of the initial request can be seen by sending another <code>DescribeRegistries</code> request with the returned <code>nextToken</code> value. This value can be between 1 and 1000. If this parameter is not used, then <code>DescribeRegistries</code> returns up to 100 results and a <code>nextToken</code> value, if applicable.<br/>nextToken:  The <code>nextToken</code> value returned from a previous paginated <code>DescribeRegistries</code> request where <code>maxResults</code> was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the <code>nextToken</code> value. This value is <code>null</code> when there are no more results to return. <note> This token should be treated as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes. </note><br/>
        :return: nextToken:  The <code>nextToken</code> value to include in a future <code>DescribeRepositories</code> request. When the results of a <code>DescribeRepositories</code> request exceed <code>maxResults</code>, this value can be used to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>registries:  An object containing the details for a public registry.<br/>        """
        pass

    def describe_repositories(self, registryId: str=None, repositoryNames: List[RepositoryName]=None, nextToken: str=None, maxResults: int=None) -> DescribeRepositoriesResponse:
        r"""Describes repositories in a public registry.

        :param self:
        :param maxResults:  The maximum number of repository results returned by <code>DescribeRepositories</code> in paginated output. When this parameter is used, <code>DescribeRepositories</code> only returns <code>maxResults</code> results in a single page along with a <code>nextToken</code> response element. The remaining results of the initial request can be seen by sending another <code>DescribeRepositories</code> request with the returned <code>nextToken</code> value. This value can be between 1 and 1000. If this parameter is not used, then <code>DescribeRepositories</code> returns up to 100 results and a <code>nextToken</code> value, if applicable. This option cannot be used when you specify repositories with <code>repositoryNames</code>.<br/>nextToken:  The <code>nextToken</code> value returned from a previous paginated <code>DescribeRepositories</code> request where <code>maxResults</code> was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the <code>nextToken</code> value. This value is <code>null</code> when there are no more results to return. This option cannot be used when you specify repositories with <code>repositoryNames</code>. <note> This token should be treated as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes. </note><br/>repositoryNames:  A list of repositories to describe. If this parameter is omitted, then all repositories in a registry are described.<br/>registryId:  The AWS account ID associated with the registry that contains the repositories to be described. If you do not specify a registry, the default public registry is assumed.<br/>
        :return: nextToken:  The <code>nextToken</code> value to include in a future <code>DescribeRepositories</code> request. When the results of a <code>DescribeRepositories</code> request exceed <code>maxResults</code>, this value can be used to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>repositories:  A list of repository objects corresponding to valid repositories.<br/>        """
        pass

    def get_authorization_token(self) -> GetAuthorizationTokenResponse:
        r"""Retrieves an authorization token. An authorization token represents your IAM authentication credentials and can be used to access any Amazon ECR registry that your IAM principal has access to. The authorization token is valid for 12 hours. This API requires the <code>ecr-public:GetAuthorizationToken</code> and <code>sts:GetServiceBearerToken</code> permissions.

        :param self:
        :param 
        :return: authorizationData:  An authorization token data object that corresponds to a public registry.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>expiresAt</i> The Unix time in seconds and milliseconds when the authorization token expires. Authorization tokens are valid for 12 hours.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>authorizationToken</i> A base64-encoded string that contains authorization data for a public Amazon ECR registry. When the string is decoded, it is presented in the format <code>user:password</code> for public registry authentication using <code>docker login</code>.<br/>        """
        pass

    def get_registry_catalog_data(self) -> GetRegistryCatalogDataResponse:
        r"""Retrieves catalog metadata for a public registry.

        :param self:
        :param 
        :return: registryCatalogData:  The catalog metadata for the public registry.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>displayName</i> The display name for a public registry. This appears on the Amazon ECR Public Gallery. <important> Only accounts that have the verified account badge can have a registry display name. </important><br/>        """
        pass

    def get_repository_catalog_data(self, repositoryName: str, registryId: str=None) -> GetRepositoryCatalogDataResponse:
        r"""Retrieve catalog metadata for a repository in a public registry. This metadata is displayed publicly in the Amazon ECR Public Gallery.

        :param self:
        :param repositoryName:  The name of the repository to retrieve the catalog metadata for.<br/>registryId:  The AWS account ID associated with the registry that contains the repositories to be described. If you do not specify a registry, the default public registry is assumed.<br/>
        :return: catalogData:  The catalog metadata for the repository.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>marketplaceCertified</i> Whether or not the repository is certified by AWS Marketplace.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>usageText</i> The longform usage details of the contents of the repository. The usage text provides context for users of the repository.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>aboutText</i> The longform description of the contents of the repository. This text appears in the repository details on the Amazon ECR Public Gallery.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>logoUrl</i> The URL containing the logo associated with the repository.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>operatingSystems</i> The operating system tags that are associated with the repository. <note> Only supported operating system tags appear publicly in the Amazon ECR Public Gallery. For more information, see <a>RepositoryCatalogDataInput</a>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>architectures</i> The architecture tags that are associated with the repository. <note> Only supported operating system tags appear publicly in the Amazon ECR Public Gallery. For more information, see <a>RepositoryCatalogDataInput</a>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> The short description of the repository.<br/>        """
        pass

    def get_repository_policy(self, repositoryName: str, registryId: str=None) -> GetRepositoryPolicyResponse:
        r"""Retrieves the repository policy for the specified repository.

        :param self:
        :param repositoryName:  The name of the repository with the policy to retrieve.<br/>registryId:  The AWS account ID associated with the public registry that contains the repository. If you do not specify a registry, the default public registry is assumed.<br/>
        :return: policyText:  The repository policy text associated with the repository. The policy text will be in JSON format.<br/>repositoryName:  The repository name associated with the request.<br/>registryId:  The registry ID associated with the request.<br/>        """
        pass

    def initiate_layer_upload(self, repositoryName: str, registryId: str=None) -> InitiateLayerUploadResponse:
        r"""Notifies Amazon ECR that you intend to upload an image layer. When an image is pushed, the InitiateLayerUpload API is called once per image layer that has not already been uploaded. Whether or not an image layer has been uploaded is determined by the BatchCheckLayerAvailability API action. <note> This operation is used by the Amazon ECR proxy and is not generally used by customers for pulling and pushing images. In most cases, you should use the <code>docker</code> CLI to pull, tag, and push images. </note>

        :param self:
        :param repositoryName:  The name of the repository to which you intend to upload layers.<br/>registryId:  The AWS account ID associated with the registry to which you intend to upload layers. If you do not specify a registry, the default public registry is assumed.<br/>
        :return: partSize:  The size, in bytes, that Amazon ECR expects future layer part uploads to be.<br/>uploadId:  The upload ID for the layer upload. This parameter is passed to further <a>UploadLayerPart</a> and <a>CompleteLayerUpload</a> operations.<br/>        """
        pass

    def list_tags_for_resource(self, resourceArn: str) -> ListTagsForResourceResponse:
        r"""List the tags for an Amazon ECR Public resource.

        :param self:
        :param resourceArn:  The Amazon Resource Name (ARN) that identifies the resource for which to list the tags. Currently, the supported resource is an Amazon ECR Public repository.<br/>
        :return: tags:  The tags for the resource.<br/>        """
        pass

    def put_image(self, imageManifest: str, repositoryName: str, registryId: str=None, imageManifestMediaType: str=None, imageTag: str=None, imageDigest: str=None) -> PutImageResponse:
        r"""Creates or updates the image manifest and tags associated with an image. When an image is pushed and all new image layers have been uploaded, the PutImage API is called once to create or update the image manifest and the tags associated with the image. <note> This operation is used by the Amazon ECR proxy and is not generally used by customers for pulling and pushing images. In most cases, you should use the <code>docker</code> CLI to pull, tag, and push images. </note>

        :param self:
        :param imageDigest:  The image digest of the image manifest corresponding to the image.<br/>imageTag:  The tag to associate with the image. This parameter is required for images that use the Docker Image Manifest V2 Schema 2 or Open Container Initiative (OCI) formats.<br/>imageManifestMediaType:  The media type of the image manifest. If you push an image manifest that does not contain the <code>mediaType</code> field, you must specify the <code>imageManifestMediaType</code> in the request.<br/>imageManifest:  The image manifest corresponding to the image to be uploaded.<br/>repositoryName:  The name of the repository in which to put the image.<br/>registryId:  The AWS account ID associated with the public registry that contains the repository in which to put the image. If you do not specify a registry, the default public registry is assumed.<br/>
        :return: image:  Details of the image uploaded.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>imageManifestMediaType</i> The manifest media type of the image.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>imageManifest</i> The image manifest associated with the image.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>imageId</i> An object containing the image tag and image digest associated with an image.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>imageId</b>: An object containing the image tag and image digest associated with an image.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>repositoryName</i> The name of the repository associated with the image.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>registryId</i> The AWS account ID associated with the registry containing the image.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>imageTag</i> The tag used for the image.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>imageDigest</i> The <code>sha256</code> digest of the image manifest.<br/>        """
        pass

    def put_registry_catalog_data(self, displayName: str=None) -> PutRegistryCatalogDataResponse:
        r"""Create or updates the catalog data for a public registry.

        :param self:
        :param displayName:  The display name for a public registry. The display name is shown as the repository author in the Amazon ECR Public Gallery. <note> The registry display name is only publicly visible in the Amazon ECR Public Gallery for verified accounts. </note><br/>
        :return: registryCatalogData:  The catalog data for the public registry.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>displayName</i> The display name for a public registry. This appears on the Amazon ECR Public Gallery. <important> Only accounts that have the verified account badge can have a registry display name. </important><br/>        """
        pass

    def put_repository_catalog_data(self, catalogData: RepositoryCatalogDataInput, repositoryName: str, registryId: str=None) -> PutRepositoryCatalogDataResponse:
        r"""Creates or updates the catalog data for a repository in a public registry.

        :param self:
        :param catalogData:  An object containing the catalog data for a repository. This data is publicly visible in the Amazon ECR Public Gallery.:<br/>repositoryName:  The name of the repository to create or update the catalog data for.<br/>registryId:  The AWS account ID associated with the public registry the repository is in. If you do not specify a registry, the default public registry is assumed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>usageText</i> Detailed information on how to use the contents of the repository. It is publicly visible in the Amazon ECR Public Gallery. The usage text provides context, support information, and additional usage details for users of the repository. The text must be in markdown format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>aboutText</i> A detailed description of the contents of the repository. It is publicly visible in the Amazon ECR Public Gallery. The text must be in markdown format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>logoImageBlob</i> The base64-encoded repository logo payload. <note> The repository logo is only publicly visible in the Amazon ECR Public Gallery for verified accounts. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>operatingSystems</i> The operating systems that the images in the repository are compatible with. On the Amazon ECR Public Gallery, the following supported operating systems will appear as badges on the repository and are used as search filters. <ul> <li>  <code>ARM</code>  </li> <li>  <code>ARM 64</code>  </li> <li>  <code>x86</code>  </li> <li>  <code>x86-64</code>  </li> </ul> <note> If an unsupported tag is added to your repository catalog data, it will be associated with the repository and can be retrieved using the API but will not be discoverable in the Amazon ECR Public Gallery. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>architectures</i> The system architecture that the images in the repository are compatible with. On the Amazon ECR Public Gallery, the following supported architectures will appear as badges on the repository and are used as search filters. <ul> <li>  <code>Linux</code>  </li> <li>  <code>Windows</code>  </li> </ul> <note> If an unsupported tag is added to your repository catalog data, it will be associated with the repository and can be retrieved using the API but will not be discoverable in the Amazon ECR Public Gallery. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> A short description of the contents of the repository. This text appears in both the image details and also when searching for repositories on the Amazon ECR Public Gallery.<br/>
        :return: catalogData:  The catalog data for the repository.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>marketplaceCertified</i> Whether or not the repository is certified by AWS Marketplace.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>usageText</i> The longform usage details of the contents of the repository. The usage text provides context for users of the repository.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>aboutText</i> The longform description of the contents of the repository. This text appears in the repository details on the Amazon ECR Public Gallery.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>logoUrl</i> The URL containing the logo associated with the repository.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>operatingSystems</i> The operating system tags that are associated with the repository. <note> Only supported operating system tags appear publicly in the Amazon ECR Public Gallery. For more information, see <a>RepositoryCatalogDataInput</a>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>architectures</i> The architecture tags that are associated with the repository. <note> Only supported operating system tags appear publicly in the Amazon ECR Public Gallery. For more information, see <a>RepositoryCatalogDataInput</a>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> The short description of the repository.<br/>        """
        pass

    def set_repository_policy(self, policyText: str, repositoryName: str, registryId: str=None, force: ForceFlag=None) -> SetRepositoryPolicyResponse:
        r"""Applies a repository policy to the specified public repository to control access permissions. For more information, see <a href="https://docs.aws.amazon.com/AmazonECR/latest/userguide/repository-policies.html">Amazon ECR Repository Policies</a> in the <i>Amazon Elastic Container Registry User Guide</i>.

        :param self:
        :param force:  If the policy you are attempting to set on a repository policy would prevent you from setting another policy in the future, you must force the <a>SetRepositoryPolicy</a> operation. This is intended to prevent accidental repository lock outs.<br/>policyText:  The JSON repository policy text to apply to the repository. For more information, see <a href="https://docs.aws.amazon.com/AmazonECR/latest/userguide/repository-policy-examples.html">Amazon ECR Repository Policies</a> in the <i>Amazon Elastic Container Registry User Guide</i>.<br/>repositoryName:  The name of the repository to receive the policy.<br/>registryId:  The AWS account ID associated with the registry that contains the repository. If you do not specify a registry, the default public registry is assumed.<br/>
        :return: policyText:  The JSON repository policy text applied to the repository.<br/>repositoryName:  The repository name associated with the request.<br/>registryId:  The registry ID associated with the request.<br/>        """
        pass

    def tag_resource(self, tags: List[Tag], resourceArn: str) -> TagResourceResponse:
        r"""Associates the specified tags to a resource with the specified <code>resourceArn</code>. If existing tags on a resource are not specified in the request parameters, they are not changed. When a resource is deleted, the tags associated with that resource are deleted as well.

        :param self:
        :param tags:  The tags to add to the resource. A tag is an array of key-value pairs. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters.<br/>resourceArn:  The Amazon Resource Name (ARN) of the resource to which to add tags. Currently, the supported resource is an Amazon ECR Public repository.<br/>
        :return:         """
        pass

    def untag_resource(self, tagKeys: List[TagKey], resourceArn: str) -> UntagResourceResponse:
        r"""Deletes specified tags from a resource.

        :param self:
        :param tagKeys:  The keys of the tags to be removed.<br/>resourceArn:  The Amazon Resource Name (ARN) of the resource from which to delete tags. Currently, the supported resource is an Amazon ECR Public repository.<br/>
        :return:         """
        pass

    def upload_layer_part(self, layerPartBlob: LayerPartBlob, partLastByte: PartSize, partFirstByte: PartSize, uploadId: str, repositoryName: str, registryId: str=None) -> UploadLayerPartResponse:
        r"""Uploads an image layer part to Amazon ECR. When an image is pushed, each new image layer is uploaded in parts. The maximum size of each image layer part can be 20971520 bytes (or about 20MB). The UploadLayerPart API is called once per each new image layer part. <note> This operation is used by the Amazon ECR proxy and is not generally used by customers for pulling and pushing images. In most cases, you should use the <code>docker</code> CLI to pull, tag, and push images. </note>

        :param self:
        :param layerPartBlob:  The base64-encoded layer part payload.<br/>partLastByte:  The position of the last byte of the layer part within the overall image layer.<br/>partFirstByte:  The position of the first byte of the layer part witin the overall image layer.<br/>uploadId:  The upload ID from a previous <a>InitiateLayerUpload</a> operation to associate with the layer part upload.<br/>repositoryName:  The name of the repository to which you are uploading layer parts.<br/>registryId:  The AWS account ID associated with the registry to which you are uploading layer parts. If you do not specify a registry, the default public registry is assumed.<br/>
        :return: lastByteReceived:  The integer value of the last byte received in the request.<br/>uploadId:  The upload ID associated with the request.<br/>repositoryName:  The repository name associated with the request.<br/>registryId:  The registry ID associated with the request.<br/>        """
        pass





class ECS(BaseClient):
    r"""<fullname>Amazon Elastic Container Service</fullname> Amazon Elastic Container Service (Amazon ECS) is a highly scalable, fast, container management service that makes it easy to run, stop, and manage Docker containers on a cluster. You can host your cluster on a serverless infrastructure that is managed by Amazon ECS by launching your services or tasks on AWS Fargate. For more control, you can host your tasks on a cluster of Amazon Elastic Compute Cloud (Amazon EC2) instances that you manage. Amazon ECS makes it easy to launch and stop container-based applications with simple API calls, allows you to get the state of your cluster from a centralized service, and gives you access to many familiar Amazon EC2 features. You can use Amazon ECS to schedule the placement of containers across your cluster based on your resource needs, isolation policies, and availability requirements. Amazon ECS eliminates the need for you to operate your own cluster management and configuration management systems or worry about scaling your management infrastructure."""

    class ServicesInactiveWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_services` for valid parameters"""
            pass
    class ServicesStableWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_services` for valid parameters"""
            pass
    class TasksRunningWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_tasks` for valid parameters"""
            pass
    class TasksStoppedWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_tasks` for valid parameters"""
            pass


    class ListClustersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_clusters` for valid parameters"""
            pass
    class ListContainerInstancesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_container_instances` for valid parameters"""
            pass
    class ListTaskDefinitionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_task_definitions` for valid parameters"""
            pass
    class ListTaskDefinitionFamiliesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_task_definition_families` for valid parameters"""
            pass
    class ListTasksPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_tasks` for valid parameters"""
            pass
    class ListServicesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_services` for valid parameters"""
            pass
    class ListAccountSettingsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_account_settings` for valid parameters"""
            pass
    class ListAttributesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_attributes` for valid parameters"""
            pass


    class CreateCapacityProviderRequest(Mapping):
        pass
    
    class CreateCapacityProviderResponse(Mapping):
        pass
    
    class AutoScalingGroupProvider(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class CreateClusterRequest(Mapping):
        pass
    
    class CreateClusterResponse(Mapping):
        pass
    
    class ClusterSetting(Mapping):
        pass
    
    class ClusterConfiguration(Mapping):
        pass
    
    class String(object):
        pass
    
    class CapacityProviderStrategyItem(Mapping):
        pass
    
    class CreateServiceRequest(Mapping):
        pass
    
    class CreateServiceResponse(Mapping):
        pass
    
    class LoadBalancer(Mapping):
        pass
    
    class ServiceRegistry(Mapping):
        pass
    
    class DeploymentConfiguration(Mapping):
        pass
    
    class PlacementConstraint(Mapping):
        pass
    
    class PlacementStrategy(Mapping):
        pass
    
    class NetworkConfiguration(Mapping):
        pass
    
    class DeploymentController(Mapping):
        pass
    
    class Boolean(object):
        pass
    
    class CreateTaskSetRequest(Mapping):
        pass
    
    class CreateTaskSetResponse(Mapping):
        pass
    
    class Scale(Mapping):
        pass
    
    class DeleteAccountSettingRequest(Mapping):
        pass
    
    class DeleteAccountSettingResponse(Mapping):
        pass
    
    class DeleteAttributesRequest(Mapping):
        pass
    
    class DeleteAttributesResponse(Mapping):
        pass
    
    class Attribute(Mapping):
        pass
    
    class DeleteCapacityProviderRequest(Mapping):
        pass
    
    class DeleteCapacityProviderResponse(Mapping):
        pass
    
    class DeleteClusterRequest(Mapping):
        pass
    
    class DeleteClusterResponse(Mapping):
        pass
    
    class DeleteServiceRequest(Mapping):
        pass
    
    class DeleteServiceResponse(Mapping):
        pass
    
    class BoxedBoolean(object):
        pass
    
    class DeleteTaskSetRequest(Mapping):
        pass
    
    class DeleteTaskSetResponse(Mapping):
        pass
    
    class DeregisterContainerInstanceRequest(Mapping):
        pass
    
    class DeregisterContainerInstanceResponse(Mapping):
        pass
    
    class DeregisterTaskDefinitionRequest(Mapping):
        pass
    
    class DeregisterTaskDefinitionResponse(Mapping):
        pass
    
    class DescribeCapacityProvidersRequest(Mapping):
        pass
    
    class DescribeCapacityProvidersResponse(Mapping):
        pass
    
    class CapacityProviderField(object):
        pass
    
    class DescribeClustersRequest(Mapping):
        pass
    
    class DescribeClustersResponse(Mapping):
        pass
    
    class ClusterField(object):
        pass
    
    class DescribeContainerInstancesRequest(Mapping):
        pass
    
    class DescribeContainerInstancesResponse(Mapping):
        pass
    
    class ContainerInstanceField(object):
        pass
    
    class DescribeServicesRequest(Mapping):
        pass
    
    class DescribeServicesResponse(Mapping):
        pass
    
    class ServiceField(object):
        pass
    
    class DescribeTaskDefinitionRequest(Mapping):
        pass
    
    class DescribeTaskDefinitionResponse(Mapping):
        pass
    
    class TaskDefinitionField(object):
        pass
    
    class DescribeTaskSetsRequest(Mapping):
        pass
    
    class DescribeTaskSetsResponse(Mapping):
        pass
    
    class TaskSetField(object):
        pass
    
    class DescribeTasksRequest(Mapping):
        pass
    
    class DescribeTasksResponse(Mapping):
        pass
    
    class TaskField(object):
        pass
    
    class DiscoverPollEndpointRequest(Mapping):
        pass
    
    class DiscoverPollEndpointResponse(Mapping):
        pass
    
    class ExecuteCommandRequest(Mapping):
        pass
    
    class ExecuteCommandResponse(Mapping):
        pass
    
    class ListAccountSettingsRequest(Mapping):
        pass
    
    class ListAccountSettingsResponse(Mapping):
        pass
    
    class ListAttributesRequest(Mapping):
        pass
    
    class ListAttributesResponse(Mapping):
        pass
    
    class ListClustersRequest(Mapping):
        pass
    
    class ListClustersResponse(Mapping):
        pass
    
    class ListContainerInstancesRequest(Mapping):
        pass
    
    class ListContainerInstancesResponse(Mapping):
        pass
    
    class ListServicesRequest(Mapping):
        pass
    
    class ListServicesResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class ListTaskDefinitionFamiliesRequest(Mapping):
        pass
    
    class ListTaskDefinitionFamiliesResponse(Mapping):
        pass
    
    class ListTaskDefinitionsRequest(Mapping):
        pass
    
    class ListTaskDefinitionsResponse(Mapping):
        pass
    
    class ListTasksRequest(Mapping):
        pass
    
    class ListTasksResponse(Mapping):
        pass
    
    class PutAccountSettingRequest(Mapping):
        pass
    
    class PutAccountSettingResponse(Mapping):
        pass
    
    class PutAccountSettingDefaultRequest(Mapping):
        pass
    
    class PutAccountSettingDefaultResponse(Mapping):
        pass
    
    class PutAttributesRequest(Mapping):
        pass
    
    class PutAttributesResponse(Mapping):
        pass
    
    class PutClusterCapacityProvidersRequest(Mapping):
        pass
    
    class PutClusterCapacityProvidersResponse(Mapping):
        pass
    
    class RegisterContainerInstanceRequest(Mapping):
        pass
    
    class RegisterContainerInstanceResponse(Mapping):
        pass
    
    class Resource(Mapping):
        pass
    
    class VersionInfo(Mapping):
        pass
    
    class PlatformDevice(Mapping):
        pass
    
    class RegisterTaskDefinitionRequest(Mapping):
        pass
    
    class RegisterTaskDefinitionResponse(Mapping):
        pass
    
    class ContainerDefinition(Mapping):
        pass
    
    class Volume(Mapping):
        pass
    
    class TaskDefinitionPlacementConstraint(Mapping):
        pass
    
    class Compatibility(object):
        pass
    
    class ProxyConfiguration(Mapping):
        pass
    
    class InferenceAccelerator(Mapping):
        pass
    
    class EphemeralStorage(Mapping):
        pass
    
    class RunTaskRequest(Mapping):
        pass
    
    class RunTaskResponse(Mapping):
        pass
    
    class TaskOverride(Mapping):
        pass
    
    class StartTaskRequest(Mapping):
        pass
    
    class StartTaskResponse(Mapping):
        pass
    
    class StopTaskRequest(Mapping):
        pass
    
    class StopTaskResponse(Mapping):
        pass
    
    class SubmitAttachmentStateChangesRequest(Mapping):
        pass
    
    class SubmitAttachmentStateChangesResponse(Mapping):
        pass
    
    class AttachmentStateChange(Mapping):
        pass
    
    class SubmitContainerStateChangeRequest(Mapping):
        pass
    
    class SubmitContainerStateChangeResponse(Mapping):
        pass
    
    class NetworkBinding(Mapping):
        pass
    
    class SubmitTaskStateChangeRequest(Mapping):
        pass
    
    class SubmitTaskStateChangeResponse(Mapping):
        pass
    
    class ContainerStateChange(Mapping):
        pass
    
    class ManagedAgentStateChange(Mapping):
        pass
    
    class Timestamp(object):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateCapacityProviderRequest(Mapping):
        pass
    
    class UpdateCapacityProviderResponse(Mapping):
        pass
    
    class AutoScalingGroupProviderUpdate(Mapping):
        pass
    
    class UpdateClusterRequest(Mapping):
        pass
    
    class UpdateClusterResponse(Mapping):
        pass
    
    class UpdateClusterSettingsRequest(Mapping):
        pass
    
    class UpdateClusterSettingsResponse(Mapping):
        pass
    
    class UpdateContainerAgentRequest(Mapping):
        pass
    
    class UpdateContainerAgentResponse(Mapping):
        pass
    
    class UpdateContainerInstancesStateRequest(Mapping):
        pass
    
    class UpdateContainerInstancesStateResponse(Mapping):
        pass
    
    class UpdateServiceRequest(Mapping):
        pass
    
    class UpdateServiceResponse(Mapping):
        pass
    
    class UpdateServicePrimaryTaskSetRequest(Mapping):
        pass
    
    class UpdateServicePrimaryTaskSetResponse(Mapping):
        pass
    
    class UpdateTaskSetRequest(Mapping):
        pass
    
    class UpdateTaskSetResponse(Mapping):
        pass
    
    def create_capacity_provider(self, autoScalingGroupProvider: AutoScalingGroupProvider, name: str, tags: List[Tag]=None) -> CreateCapacityProviderResponse:
        r"""Creates a new capacity provider. Capacity providers are associated with an Amazon ECS cluster and are used in capacity provider strategies to facilitate cluster auto scaling. Only capacity providers using an Auto Scaling group can be created. Amazon ECS tasks on AWS Fargate use the <code>FARGATE</code> and <code>FARGATE_SPOT</code> capacity providers which are already created and available to all accounts in Regions supported by AWS Fargate.

        :param self:
        :param tags:  The metadata that you apply to the capacity provider to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define. The following basic restrictions apply to tags: <ul> <li> Maximum number of tags per resource - 50 </li> <li> For each resource, each tag key must be unique, and each tag key can have only one value. </li> <li> Maximum key length - 128 Unicode characters in UTF-8 </li> <li> Maximum value length - 256 Unicode characters in UTF-8 </li> <li> If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @. </li> <li> Tag keys and values are case-sensitive. </li> <li> Do not use <code>aws:</code>, <code>AWS:</code>, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit. </li> </ul><br/>autoScalingGroupProvider:  The details of the Auto Scaling group for the capacity provider.:<br/>name:  The name of the capacity provider. Up to 255 characters are allowed, including letters (upper and lowercase), numbers, underscores, and hyphens. The name cannot be prefixed with "<code>aws</code>", "<code>ecs</code>", or "<code>fargate</code>".<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>managedTerminationProtection</i> The managed termination protection setting to use for the Auto Scaling group capacity provider. This determines whether the Auto Scaling group has managed termination protection. <important> When using managed termination protection, managed scaling must also be used otherwise managed termination protection will not work. </important> When managed termination protection is enabled, Amazon ECS prevents the Amazon EC2 instances in an Auto Scaling group that contain tasks from being terminated during a scale-in action. The Auto Scaling group and each instance in the Auto Scaling group must have instance protection from scale-in actions enabled as well. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-termination.html#instance-protection">Instance Protection</a> in the <i>AWS Auto Scaling User Guide</i>. When managed termination protection is disabled, your Amazon EC2 instances are not protected from termination when the Auto Scaling group scales in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>managedScaling</i> The managed scaling settings for the Auto Scaling group capacity provider.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>managedScaling</b>: The managed scaling settings for the Auto Scaling group capacity provider.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>autoScalingGroupArn</i> The Amazon Resource Name (ARN) that identifies the Auto Scaling group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>instanceWarmupPeriod</i> The period of time, in seconds, after a newly launched Amazon EC2 instance can contribute to CloudWatch metrics for Auto Scaling group. If this parameter is omitted, the default value of <code>300</code> seconds is used.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>maximumScalingStepSize</i> The maximum number of container instances that Amazon ECS will scale in or scale out at one time. If this parameter is omitted, the default value of <code>10000</code> is used.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>minimumScalingStepSize</i> The minimum number of container instances that Amazon ECS will scale in or scale out at one time. If this parameter is omitted, the default value of <code>1</code> is used.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>targetCapacity</i> The target capacity value for the capacity provider. The specified value must be greater than <code>0</code> and less than or equal to <code>100</code>. A value of <code>100</code> will result in the Amazon EC2 instances in your Auto Scaling group being completely utilized.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> Whether or not to enable managed scaling for the capacity provider.<br/>
        :return: capacityProvider:  The full description of the new capacity provider.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The metadata that you apply to the capacity provider to help you categorize and organize it. Each tag consists of a key and an optional value, both of which you define. The following basic restrictions apply to tags: <ul> <li> Maximum number of tags per resource - 50 </li> <li> For each resource, each tag key must be unique, and each tag key can have only one value. </li> <li> Maximum key length - 128 Unicode characters in UTF-8 </li> <li> Maximum value length - 256 Unicode characters in UTF-8 </li> <li> If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @. </li> <li> Tag keys and values are case-sensitive. </li> <li> Do not use <code>aws:</code>, <code>AWS:</code>, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>updateStatusReason</i> The update status reason. This provides further details about the update status for the capacity provider.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>updateStatus</i> The update status of the capacity provider. The following are the possible states that will be returned. <dl> <dt>DELETE_IN_PROGRESS</dt> <dd> The capacity provider is in the process of being deleted. </dd> <dt>DELETE_COMPLETE</dt> <dd> The capacity provider has been successfully deleted and will have an <code>INACTIVE</code> status. </dd> <dt>DELETE_FAILED</dt> <dd> The capacity provider was unable to be deleted. The update status reason will provide further details about why the delete failed. </dd> </dl><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>autoScalingGroupProvider</i> The Auto Scaling group settings for the capacity provider.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>autoScalingGroupProvider</b>: The Auto Scaling group settings for the capacity provider.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current status of the capacity provider. Only capacity providers in an <code>ACTIVE</code> state can be used in a cluster. When a capacity provider is successfully deleted, it will have an <code>INACTIVE</code> status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the capacity provider.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>capacityProviderArn</i> The Amazon Resource Name (ARN) that identifies the capacity provider.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>autoScalingGroupArn</i> The Amazon Resource Name (ARN) that identifies the Auto Scaling group.<br/>The managed scaling settings for the Auto Scaling group capacity provider.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>managedScaling</b>: The managed scaling settings for the Auto Scaling group capacity provider.        """
        pass

    def create_cluster(self, clusterName: str=None, tags: List[Tag]=None, settings: List[ClusterSetting]=None, configuration: ClusterConfiguration=None, capacityProviders: List[String]=None, defaultCapacityProviderStrategy: List[CapacityProviderStrategyItem]=None) -> CreateClusterResponse:
        r"""Creates a new Amazon ECS cluster. By default, your account receives a <code>default</code> cluster when you launch your first container instance. However, you can create your own cluster with a unique name with the <code>CreateCluster</code> action. <note> When you call the <a>CreateCluster</a> API operation, Amazon ECS attempts to create the Amazon ECS service-linked role for your account so that required resources in other AWS services can be managed on your behalf. However, if the IAM user that makes the call does not have permissions to create the service-linked role, it is not created. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using-service-linked-roles.html">Using Service-Linked Roles for Amazon ECS</a> in the <i>Amazon Elastic Container Service Developer Guide</i>. </note>

        :param self:
        :param defaultCapacityProviderStrategy:  The capacity provider strategy to set as the default for the cluster. When a default capacity provider strategy is set for a cluster, when calling the <a>RunTask</a> or <a>CreateService</a> APIs wtih no capacity provider strategy or launch type specified, the default capacity provider strategy for the cluster is used. If a default capacity provider strategy is not defined for a cluster during creation, it can be defined later with the <a>PutClusterCapacityProviders</a> API operation.<br/>capacityProviders:  The short name of one or more capacity providers to associate with the cluster. A capacity provider must be associated with a cluster before it can be included as part of the default capacity provider strategy of the cluster or used in a capacity provider strategy when calling the <a>CreateService</a> or <a>RunTask</a> actions. If specifying a capacity provider that uses an Auto Scaling group, the capacity provider must already be created and not already associated with another cluster. New Auto Scaling group capacity providers can be created with the <a>CreateCapacityProvider</a> API operation. To use a AWS Fargate capacity provider, specify either the <code>FARGATE</code> or <code>FARGATE_SPOT</code> capacity providers. The AWS Fargate capacity providers are available to all accounts and only need to be associated with a cluster to be used. The <a>PutClusterCapacityProviders</a> API operation is used to update the list of available capacity providers for a cluster after the cluster is created.<br/>configuration:  The execute command configuration for the cluster.:<br/>settings:  The setting to use when creating a cluster. This parameter is used to enable CloudWatch Container Insights for a cluster. If this value is specified, it will override the <code>containerInsights</code> value set with <a>PutAccountSetting</a> or <a>PutAccountSettingDefault</a>.<br/>tags:  The metadata that you apply to the cluster to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define. The following basic restrictions apply to tags: <ul> <li> Maximum number of tags per resource - 50 </li> <li> For each resource, each tag key must be unique, and each tag key can have only one value. </li> <li> Maximum key length - 128 Unicode characters in UTF-8 </li> <li> Maximum value length - 256 Unicode characters in UTF-8 </li> <li> If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @. </li> <li> Tag keys and values are case-sensitive. </li> <li> Do not use <code>aws:</code>, <code>AWS:</code>, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit. </li> </ul><br/>clusterName:  The name of your cluster. If you do not specify a name for your cluster, you create a cluster named <code>default</code>. Up to 255 letters (uppercase and lowercase), numbers, underscores, and hyphens are allowed. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>executeCommandConfiguration</i> The details of the execute command configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>executeCommandConfiguration</b>: The details of the execute command configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>logging</i> The log setting to use for redirecting logs for your execute command results. The following log settings are available. <ul> <li>  <code>NONE</code>: The execute command session is not logged. </li> <li>  <code>DEFAULT</code>: The <code>awslogs</code> configuration in the task definition is used. If no logging parameter is specified, it defaults to this value. If no <code>awslogs</code> log driver is configured in the task definition, the output won't be logged. </li> <li>  <code>OVERRIDE</code>: Specify the logging details as a part of <code>logConfiguration</code>. If the <code>OVERRIDE</code> logging option is specified, the <code>logConfiguration</code> is required. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>kmsKeyId</i> Specify an AWS Key Management Service key ID to encrypt the data between the local client and the container.<br/>The log configuration for the results of the execute command actions. The logs can be sent to CloudWatch Logs or an Amazon S3 bucket. When <code>logging=OVERRIDE</code> is specified, a <code>logConfiguration</code> must be provided.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>logConfiguration</b>: The log configuration for the results of the execute command actions. The logs can be sent to CloudWatch Logs or an Amazon S3 bucket. When <code>logging=OVERRIDE</code> is specified, a <code>logConfiguration</code> must be provided.
        :return: cluster:  The full description of your new cluster.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>attachmentsStatus</i> The status of the capacity providers associated with the cluster. The following are the states that will be returned: <dl> <dt>UPDATE_IN_PROGRESS</dt> <dd> The available capacity providers for the cluster are updating. This occurs when the Auto Scaling plan is provisioning or deprovisioning. </dd> <dt>UPDATE_COMPLETE</dt> <dd> The capacity providers have successfully updated. </dd> <dt>UPDATE_FAILED</dt> <dd> The capacity provider updates failed. </dd> </dl><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>attachments</i> The resources attached to a cluster. When using a capacity provider with a cluster, the Auto Scaling plan that is created will be returned as a cluster attachment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>defaultCapacityProviderStrategy</i> The default capacity provider strategy for the cluster. When services or tasks are run in the cluster with no launch type or capacity provider strategy specified, the default capacity provider strategy is used.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>capacityProviders</i> The capacity providers associated with the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>settings</i> The settings for the cluster. This parameter indicates whether CloudWatch Container Insights is enabled or disabled for a cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The metadata that you apply to the cluster to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define. The following basic restrictions apply to tags: <ul> <li> Maximum number of tags per resource - 50 </li> <li> For each resource, each tag key must be unique, and each tag key can have only one value. </li> <li> Maximum key length - 128 Unicode characters in UTF-8 </li> <li> Maximum value length - 256 Unicode characters in UTF-8 </li> <li> If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @. </li> <li> Tag keys and values are case-sensitive. </li> <li> Do not use <code>aws:</code>, <code>AWS:</code>, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statistics</i> Additional information about your clusters that are separated by launch type, including: <ul> <li> runningEC2TasksCount </li> <li> RunningFargateTasksCount </li> <li> pendingEC2TasksCount </li> <li> pendingFargateTasksCount </li> <li> activeEC2ServiceCount </li> <li> activeFargateServiceCount </li> <li> drainingEC2ServiceCount </li> <li> drainingFargateServiceCount </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>activeServicesCount</i> The number of services that are running on the cluster in an <code>ACTIVE</code> state. You can view these services with <a>ListServices</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>pendingTasksCount</i> The number of tasks in the cluster that are in the <code>PENDING</code> state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>runningTasksCount</i> The number of tasks in the cluster that are in the <code>RUNNING</code> state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>registeredContainerInstancesCount</i> The number of container instances registered into the cluster. This includes container instances in both <code>ACTIVE</code> and <code>DRAINING</code> status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the cluster. The following are the possible states that will be returned. <dl> <dt>ACTIVE</dt> <dd> The cluster is ready to accept tasks and if applicable you can register container instances with the cluster. </dd> <dt>PROVISIONING</dt> <dd> The cluster has capacity providers associated with it and the resources needed for the capacity provider are being created. </dd> <dt>DEPROVISIONING</dt> <dd> The cluster has capacity providers associated with it and the resources needed for the capacity provider are being deleted. </dd> <dt>FAILED</dt> <dd> The cluster has capacity providers associated with it and the resources needed for the capacity provider have failed to create. </dd> <dt>INACTIVE</dt> <dd> The cluster has been deleted. Clusters with an <code>INACTIVE</code> status may remain discoverable in your account for a period of time. However, this behavior is subject to change in the future, so you should not rely on <code>INACTIVE</code> clusters persisting. </dd> </dl><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>configuration</i> The execute command configuration for the cluster.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>configuration</b>: The execute command configuration for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>clusterName</i> A user-generated string that you use to identify your cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>clusterArn</i> The Amazon Resource Name (ARN) that identifies the cluster. The ARN contains the <code>arn:aws:ecs</code> namespace, followed by the Region of the cluster, the AWS account ID of the cluster owner, the <code>cluster</code> namespace, and then the cluster name. For example, <code>arn:aws:ecs:region:012345678910:cluster/test</code>.<br/>The details of the execute command configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>executeCommandConfiguration</b>: The details of the execute command configuration.        """
        pass

    def create_service(self, serviceName: str, cluster: str=None, taskDefinition: str=None, loadBalancers: List[LoadBalancer]=None, serviceRegistries: List[ServiceRegistry]=None, desiredCount: int=None, clientToken: str=None, launchType: str=None, capacityProviderStrategy: List[CapacityProviderStrategyItem]=None, platformVersion: str=None, role: str=None, deploymentConfiguration: DeploymentConfiguration=None, placementConstraints: List[PlacementConstraint]=None, placementStrategy: List[PlacementStrategy]=None, networkConfiguration: NetworkConfiguration=None, healthCheckGracePeriodSeconds: int=None, schedulingStrategy: str=None, deploymentController: DeploymentController=None, tags: List[Tag]=None, enableECSManagedTags: Boolean=None, propagateTags: str=None, enableExecuteCommand: Boolean=None) -> CreateServiceResponse:
        r"""Runs and maintains a desired number of tasks from a specified task definition. If the number of tasks running in a service drops below the <code>desiredCount</code>, Amazon ECS runs another copy of the task in the specified cluster. To update an existing service, see the UpdateService action. In addition to maintaining the desired count of tasks in your service, you can optionally run your service behind one or more load balancers. The load balancers distribute traffic across the tasks that are associated with the service. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-load-balancing.html">Service Load Balancing</a> in the <i>Amazon Elastic Container Service Developer Guide</i>. Tasks for services that <i>do not</i> use a load balancer are considered healthy if they're in the <code>RUNNING</code> state. Tasks for services that <i>do</i> use a load balancer are considered healthy if they're in the <code>RUNNING</code> state and the container instance that they're hosted on is reported as healthy by the load balancer. There are two service scheduler strategies available: <ul> <li>  <code>REPLICA</code> - The replica scheduling strategy places and maintains the desired number of tasks across your cluster. By default, the service scheduler spreads tasks across Availability Zones. You can use task placement strategies and constraints to customize task placement decisions. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html">Service Scheduler Concepts</a> in the <i>Amazon Elastic Container Service Developer Guide</i>. </li> <li>  <code>DAEMON</code> - The daemon scheduling strategy deploys exactly one task on each active container instance that meets all of the task placement constraints that you specify in your cluster. The service scheduler also evaluates the task placement constraints for running tasks and will stop tasks that do not meet the placement constraints. When using this strategy, you don't need to specify a desired number of tasks, a task placement strategy, or use Service Auto Scaling policies. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html">Service Scheduler Concepts</a> in the <i>Amazon Elastic Container Service Developer Guide</i>. </li> </ul> You can optionally specify a deployment configuration for your service. The deployment is triggered by changing properties, such as the task definition or the desired count of a service, with an <a>UpdateService</a> operation. The default value for a replica service for <code>minimumHealthyPercent</code> is 100%. The default value for a daemon service for <code>minimumHealthyPercent</code> is 0%. If a service is using the <code>ECS</code> deployment controller, the minimum healthy percent represents a lower limit on the number of tasks in a service that must remain in the <code>RUNNING</code> state during a deployment, as a percentage of the desired number of tasks (rounded up to the nearest integer), and while any container instances are in the <code>DRAINING</code> state if the service contains tasks using the EC2 launch type. This parameter enables you to deploy without using additional cluster capacity. For example, if your service has a desired number of four tasks and a minimum healthy percent of 50%, the scheduler might stop two existing tasks to free up cluster capacity before starting two new tasks. Tasks for services that <i>do not</i> use a load balancer are considered healthy if they're in the <code>RUNNING</code> state. Tasks for services that <i>do</i> use a load balancer are considered healthy if they're in the <code>RUNNING</code> state and they're reported as healthy by the load balancer. The default value for minimum healthy percent is 100%. If a service is using the <code>ECS</code> deployment controller, the <b>maximum percent</b> parameter represents an upper limit on the number of tasks in a service that are allowed in the <code>RUNNING</code> or <code>PENDING</code> state during a deployment, as a percentage of the desired number of tasks (rounded down to the nearest integer), and while any container instances are in the <code>DRAINING</code> state if the service contains tasks using the EC2 launch type. This parameter enables you to define the deployment batch size. For example, if your service has a desired number of four tasks and a maximum percent value of 200%, the scheduler may start four new tasks before stopping the four older tasks (provided that the cluster resources required to do this are available). The default value for maximum percent is 200%. If a service is using either the <code>CODE_DEPLOY</code> or <code>EXTERNAL</code> deployment controller types and tasks that use the EC2 launch type, the <b>minimum healthy percent</b> and <b>maximum percent</b> values are used only to define the lower and upper limit on the number of the tasks in the service that remain in the <code>RUNNING</code> state while the container instances are in the <code>DRAINING</code> state. If the tasks in the service use the Fargate launch type, the minimum healthy percent and maximum percent values aren't used, although they're currently visible when describing your service. When creating a service that uses the <code>EXTERNAL</code> deployment controller, you can specify only parameters that aren't controlled at the task set level. The only required parameter is the service name. You control your services using the <a>CreateTaskSet</a> operation. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html">Amazon ECS Deployment Types</a> in the <i>Amazon Elastic Container Service Developer Guide</i>. When the service scheduler launches new tasks, it determines task placement in your cluster using the following logic: <ul> <li> Determine which of the container instances in your cluster can support your service's task definition (for example, they have the required CPU, memory, ports, and container instance attributes). </li> <li> By default, the service scheduler attempts to balance tasks across Availability Zones in this manner (although you can choose a different placement strategy) with the <code>placementStrategy</code> parameter): <ul> <li> Sort the valid container instances, giving priority to instances that have the fewest number of running tasks for this service in their respective Availability Zone. For example, if zone A has one running service task and zones B and C each have zero, valid container instances in either zone B or C are considered optimal for placement. </li> <li> Place the new service task on a valid container instance in an optimal Availability Zone (based on the previous steps), favoring container instances with the fewest number of running tasks for this service. </li> </ul> </li> </ul>

        :param self:
        :param enableExecuteCommand:  Whether or not the execute command functionality is enabled for the service. If <code>true</code>, this enables execute command functionality on all containers in the service tasks.<br/>propagateTags:  Specifies whether to propagate the tags from the task definition or the service to the tasks in the service. If no value is specified, the tags are not propagated. Tags can only be propagated to the tasks within the service during service creation. To add tags to a task after service creation, use the <a>TagResource</a> API action.<br/>enableECSManagedTags:  Specifies whether to enable Amazon ECS managed tags for the tasks within the service. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html">Tagging Your Amazon ECS Resources</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.<br/>tags:  The metadata that you apply to the service to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define. When a service is deleted, the tags are deleted as well. The following basic restrictions apply to tags: <ul> <li> Maximum number of tags per resource - 50 </li> <li> For each resource, each tag key must be unique, and each tag key can have only one value. </li> <li> Maximum key length - 128 Unicode characters in UTF-8 </li> <li> Maximum value length - 256 Unicode characters in UTF-8 </li> <li> If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @. </li> <li> Tag keys and values are case-sensitive. </li> <li> Do not use <code>aws:</code>, <code>AWS:</code>, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit. </li> </ul><br/>deploymentController:  The deployment controller to use for the service. If no deployment controller is specified, the default value of <code>ECS</code> is used.:<br/>schedulingStrategy:  The scheduling strategy to use for the service. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html">Services</a>. There are two service scheduler strategies available: <ul> <li>  <code>REPLICA</code>-The replica scheduling strategy places and maintains the desired number of tasks across your cluster. By default, the service scheduler spreads tasks across Availability Zones. You can use task placement strategies and constraints to customize task placement decisions. This scheduler strategy is required if the service is using the <code>CODE_DEPLOY</code> or <code>EXTERNAL</code> deployment controller types. </li> <li>  <code>DAEMON</code>-The daemon scheduling strategy deploys exactly one task on each active container instance that meets all of the task placement constraints that you specify in your cluster. The service scheduler also evaluates the task placement constraints for running tasks and will stop tasks that do not meet the placement constraints. When you're using this strategy, you don't need to specify a desired number of tasks, a task placement strategy, or use Service Auto Scaling policies. <note> Tasks using the Fargate launch type or the <code>CODE_DEPLOY</code> or <code>EXTERNAL</code> deployment controller types don't support the <code>DAEMON</code> scheduling strategy. </note> </li> </ul><br/>healthCheckGracePeriodSeconds:  The period of time, in seconds, that the Amazon ECS service scheduler should ignore unhealthy Elastic Load Balancing target health checks after a task has first started. This is only used when your service is configured to use a load balancer. If your service has a load balancer defined and you don't specify a health check grace period value, the default value of <code>0</code> is used. If your service's tasks take a while to start and respond to Elastic Load Balancing health checks, you can specify a health check grace period of up to 2,147,483,647 seconds. During that time, the Amazon ECS service scheduler ignores health check status. This grace period can prevent the service scheduler from marking tasks as unhealthy and stopping them before they have time to come up.<br/>networkConfiguration:  The network configuration for the service. This parameter is required for task definitions that use the <code>awsvpc</code> network mode to receive their own elastic network interface, and it is not supported for other network modes. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html">Task networking</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.:<br/>placementStrategy:  The placement strategy objects to use for tasks in your service. You can specify a maximum of five strategy rules per service.<br/>placementConstraints:  An array of placement constraint objects to use for tasks in your service. You can specify a maximum of 10 constraints per task (this limit includes constraints in the task definition and those specified at runtime). <br/>deploymentConfiguration:  Optional deployment parameters that control how many tasks run during the deployment and the ordering of stopping and starting tasks.:<br/>role:  The name or full Amazon Resource Name (ARN) of the IAM role that allows Amazon ECS to make calls to your load balancer on your behalf. This parameter is only permitted if you are using a load balancer with your service and your task definition does not use the <code>awsvpc</code> network mode. If you specify the <code>role</code> parameter, you must also specify a load balancer object with the <code>loadBalancers</code> parameter. <important> If your account has already created the Amazon ECS service-linked role, that role is used by default for your service unless you specify a role here. The service-linked role is required if your task definition uses the <code>awsvpc</code> network mode or if the service is configured to use service discovery, an external deployment controller, multiple target groups, or Elastic Inference accelerators in which case you should not specify a role here. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using-service-linked-roles.html">Using service-linked roles for Amazon ECS</a> in the <i>Amazon Elastic Container Service Developer Guide</i>. </important> If your specified role has a path other than <code>/</code>, then you must either specify the full role ARN (this is recommended) or prefix the role name with the path. For example, if a role with the name <code>bar</code> has a path of <code>/foo/</code> then you would specify <code>/foo/bar</code> as the role name. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-friendly-names">Friendly names and paths</a> in the <i>IAM User Guide</i>.<br/>platformVersion:  The platform version that your tasks in the service are running on. A platform version is specified only for tasks using the Fargate launch type. If one isn't specified, the <code>LATEST</code> platform version is used by default. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html">AWS Fargate platform versions</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.<br/>capacityProviderStrategy:  The capacity provider strategy to use for the service. If a <code>capacityProviderStrategy</code> is specified, the <code>launchType</code> parameter must be omitted. If no <code>capacityProviderStrategy</code> or <code>launchType</code> is specified, the <code>defaultCapacityProviderStrategy</code> for the cluster is used.<br/>launchType:  The infrastructure on which to run your service. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html">Amazon ECS launch types</a> in the <i>Amazon Elastic Container Service Developer Guide</i>. The <code>FARGATE</code> launch type runs your tasks on AWS Fargate On-Demand infrastructure. <note> Fargate Spot infrastructure is available for use but a capacity provider strategy must be used. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/userguide/fargate-capacity-providers.html">AWS Fargate capacity providers</a> in the <i>Amazon ECS User Guide for AWS Fargate</i>. </note> The <code>EC2</code> launch type runs your tasks on Amazon EC2 instances registered to your cluster. The <code>EXTERNAL</code> launch type runs your tasks on your on-premise server or virtual machine (VM) capacity registered to your cluster. A service can use either a launch type or a capacity provider strategy. If a <code>launchType</code> is specified, the <code>capacityProviderStrategy</code> parameter must be omitted.<br/>clientToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Up to 32 ASCII characters are allowed.<br/>desiredCount:  The number of instantiations of the specified task definition to place and keep running on your cluster. This is required if <code>schedulingStrategy</code> is <code>REPLICA</code> or is not specified. If <code>schedulingStrategy</code> is <code>DAEMON</code> then this is not required.<br/>serviceRegistries:  The details of the service discovery registry to associate with this service. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html">Service discovery</a>. <note> Each service may be associated with one service registry. Multiple service registries per service isn't supported. </note><br/>loadBalancers:  A load balancer object representing the load balancers to use with your service. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-load-balancing.html">Service Load Balancing</a> in the <i>Amazon Elastic Container Service Developer Guide</i>. If the service is using the rolling update (<code>ECS</code>) deployment controller and using either an Application Load Balancer or Network Load Balancer, you must specify one or more target group ARNs to attach to the service. The service-linked role is required for services that make use of multiple target groups. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using-service-linked-roles.html">Using service-linked roles for Amazon ECS</a> in the <i>Amazon Elastic Container Service Developer Guide</i>. If the service is using the <code>CODE_DEPLOY</code> deployment controller, the service is required to use either an Application Load Balancer or Network Load Balancer. When creating an AWS CodeDeploy deployment group, you specify two target groups (referred to as a <code>targetGroupPair</code>). During a deployment, AWS CodeDeploy determines which task set in your service has the status <code>PRIMARY</code> and associates one target group with it, and then associates the other target group with the replacement task set. The load balancer can also have up to two listeners: a required listener for production traffic and an optional listener that allows you perform validation tests with Lambda functions before routing production traffic to it. After you create a service using the <code>ECS</code> deployment controller, the load balancer name or target group ARN, container name, and container port specified in the service definition are immutable. If you are using the <code>CODE_DEPLOY</code> deployment controller, these values can be changed when updating the service. For Application Load Balancers and Network Load Balancers, this object must contain the load balancer target group ARN, the container name (as it appears in a container definition), and the container port to access from the load balancer. The load balancer name parameter must be omitted. When a task from this service is placed on a container instance, the container instance and port combination is registered as a target in the target group specified here. For Classic Load Balancers, this object must contain the load balancer name, the container name (as it appears in a container definition), and the container port to access from the load balancer. The target group ARN parameter must be omitted. When a task from this service is placed on a container instance, the container instance is registered with the load balancer specified here. Services with tasks that use the <code>awsvpc</code> network mode (for example, those with the Fargate launch type) only support Application Load Balancers and Network Load Balancers. Classic Load Balancers are not supported. Also, when you create any target groups for these services, you must choose <code>ip</code> as the target type, not <code>instance</code>, because tasks that use the <code>awsvpc</code> network mode are associated with an elastic network interface, not an Amazon EC2 instance.<br/>taskDefinition:  The <code>family</code> and <code>revision</code> (<code>family:revision</code>) or full ARN of the task definition to run in your service. If a <code>revision</code> is not specified, the latest <code>ACTIVE</code> revision is used. A task definition must be specified if the service is using either the <code>ECS</code> or <code>CODE_DEPLOY</code> deployment controllers.<br/>serviceName:  The name of your service. Up to 255 letters (uppercase and lowercase), numbers, underscores, and hyphens are allowed. Service names must be unique within a cluster, but you can have similarly named services in multiple clusters within a Region or across multiple Regions.<br/>cluster:  The short name or full Amazon Resource Name (ARN) of the cluster on which to run your service. If you do not specify a cluster, the default cluster is assumed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>minimumHealthyPercent</i> If a service is using the rolling update (<code>ECS</code>) deployment type, the <b>minimum healthy percent</b> represents a lower limit on the number of tasks in a service that must remain in the <code>RUNNING</code> state during a deployment, as a percentage of the desired number of tasks (rounded up to the nearest integer), and while any container instances are in the <code>DRAINING</code> state if the service contains tasks using the EC2 launch type. This parameter enables you to deploy without using additional cluster capacity. For example, if your service has a desired number of four tasks and a minimum healthy percent of 50%, the scheduler may stop two existing tasks to free up cluster capacity before starting two new tasks. Tasks for services that <i>do not</i> use a load balancer are considered healthy if they are in the <code>RUNNING</code> state; tasks for services that <i>do</i> use a load balancer are considered healthy if they are in the <code>RUNNING</code> state and they are reported as healthy by the load balancer. The default value for minimum healthy percent is 100%. If a service is using the blue/green (<code>CODE_DEPLOY</code>) or <code>EXTERNAL</code> deployment types and tasks that use the EC2 launch type, the <b>minimum healthy percent</b> value is set to the default value and is used to define the lower limit on the number of the tasks in the service that remain in the <code>RUNNING</code> state while the container instances are in the <code>DRAINING</code> state. If the tasks in the service use the Fargate launch type, the minimum healthy percent value is not used, although it is returned when describing your service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>maximumPercent</i> If a service is using the rolling update (<code>ECS</code>) deployment type, the <b>maximum percent</b> parameter represents an upper limit on the number of tasks in a service that are allowed in the <code>RUNNING</code> or <code>PENDING</code> state during a deployment, as a percentage of the desired number of tasks (rounded down to the nearest integer), and while any container instances are in the <code>DRAINING</code> state if the service contains tasks using the EC2 launch type. This parameter enables you to define the deployment batch size. For example, if your service has a desired number of four tasks and a maximum percent value of 200%, the scheduler may start four new tasks before stopping the four older tasks (provided that the cluster resources required to do this are available). The default value for maximum percent is 200%. If a service is using the blue/green (<code>CODE_DEPLOY</code>) or <code>EXTERNAL</code> deployment types and tasks that use the EC2 launch type, the <b>maximum percent</b> value is set to the default value and is used to define the upper limit on the number of the tasks in the service that remain in the <code>RUNNING</code> state while the container instances are in the <code>DRAINING</code> state. If the tasks in the service use the Fargate launch type, the maximum percent value is not used, although it is returned when describing your service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deploymentCircuitBreaker</i> <note> The deployment circuit breaker can only be used for services using the rolling update (<code>ECS</code>) deployment type. </note> The <b>deployment circuit breaker</b> determines whether a service deployment will fail if the service can't reach a steady state. If deployment circuit breaker is enabled, a service deployment will transition to a failed state and stop launching new tasks. If rollback is enabled, when a service deployment fails, the service is rolled back to the last deployment that completed successfully.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>deploymentCircuitBreaker</b>: <note> The deployment circuit breaker can only be used for services using the rolling update (<code>ECS</code>) deployment type. </note> The <b>deployment circuit breaker</b> determines whether a service deployment will fail if the service can't reach a steady state. If deployment circuit breaker is enabled, a service deployment will transition to a failed state and stop launching new tasks. If rollback is enabled, when a service deployment fails, the service is rolled back to the last deployment that completed successfully.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>rollback</i> Whether to enable Amazon ECS to roll back the service if a service deployment fails. If rollback is enabled, when a service deployment fails, the service is rolled back to the last deployment that completed successfully.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>enable</i> Whether to enable the deployment circuit breaker logic for the service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>awsvpcConfiguration</i> The VPC subnets and security groups associated with a task. <note> All specified subnets and security groups must be from the same VPC. </note>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>awsvpcConfiguration</b>: The VPC subnets and security groups associated with a task. <note> All specified subnets and security groups must be from the same VPC. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>assignPublicIp</i> Whether the task's elastic network interface receives a public IP address. The default value is <code>DISABLED</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>securityGroups</i> The IDs of the security groups associated with the task or service. If you do not specify a security group, the default security group for the VPC is used. There is a limit of 5 security groups that can be specified per <code>AwsVpcConfiguration</code>. <note> All specified security groups must be from the same VPC. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>subnets</i> The IDs of the subnets associated with the task or service. There is a limit of 16 subnets that can be specified per <code>AwsVpcConfiguration</code>. <note> All specified subnets must be from the same VPC. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The deployment controller type to use. There are three deployment controller types available: <dl> <dt>ECS</dt> <dd> The rolling update (<code>ECS</code>) deployment type involves replacing the current running version of the container with the latest version. The number of containers Amazon ECS adds or removes from the service during a rolling update is controlled by adjusting the minimum and maximum number of healthy tasks allowed during a service deployment, as specified in the <a>DeploymentConfiguration</a>. </dd> <dt>CODE_DEPLOY</dt> <dd> The blue/green (<code>CODE_DEPLOY</code>) deployment type uses the blue/green deployment model powered by AWS CodeDeploy, which allows you to verify a new deployment of a service before sending production traffic to it. </dd> <dt>EXTERNAL</dt> <dd> The external (<code>EXTERNAL</code>) deployment type enables you to use any third-party deployment controller for full control over the deployment process for an Amazon ECS service. </dd> </dl><br/>
        :return: service:  The full description of your service following the create call. If a service is using the <code>ECS</code> deployment controller, the <code>deploymentController</code> and <code>taskSets</code> parameters will not be returned. If the service is using the <code>CODE_DEPLOY</code> deployment controller, the <code>deploymentController</code>, <code>taskSets</code> and <code>deployments</code> parameters will be returned, however the <code>deployments</code> parameter will be an empty list.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>enableExecuteCommand</i> Whether or not the execute command functionality is enabled for the service. If <code>true</code>, the execute command functionality is enabled for all containers in tasks as part of the service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>propagateTags</i> Specifies whether to propagate the tags from the task definition or the service to the task. If no value is specified, the tags are not propagated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>enableECSManagedTags</i> Specifies whether to enable Amazon ECS managed tags for the tasks in the service. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html">Tagging Your Amazon ECS Resources</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdBy</i> The principal that created the service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The metadata that you apply to the service to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define. The following basic restrictions apply to tags: <ul> <li> Maximum number of tags per resource - 50 </li> <li> For each resource, each tag key must be unique, and each tag key can have only one value. </li> <li> Maximum key length - 128 Unicode characters in UTF-8 </li> <li> Maximum value length - 256 Unicode characters in UTF-8 </li> <li> If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @. </li> <li> Tag keys and values are case-sensitive. </li> <li> Do not use <code>aws:</code>, <code>AWS:</code>, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deploymentController</i> The deployment controller type the service is using. When using the DescribeServices API, this field is omitted if the service is using the <code>ECS</code> deployment controller type.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>deploymentController</b>: The deployment controller type the service is using. When using the DescribeServices API, this field is omitted if the service is using the <code>ECS</code> deployment controller type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>schedulingStrategy</i> The scheduling strategy to use for the service. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html">Services</a>. There are two service scheduler strategies available: <ul> <li>  <code>REPLICA</code>-The replica scheduling strategy places and maintains the desired number of tasks across your cluster. By default, the service scheduler spreads tasks across Availability Zones. You can use task placement strategies and constraints to customize task placement decisions. </li> <li>  <code>DAEMON</code>-The daemon scheduling strategy deploys exactly one task on each active container instance that meets all of the task placement constraints that you specify in your cluster. The service scheduler also evaluates the task placement constraints for running tasks and will stop tasks that do not meet the placement constraints. <note> Fargate tasks do not support the <code>DAEMON</code> scheduling strategy. </note> </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>healthCheckGracePeriodSeconds</i> The period of time, in seconds, that the Amazon ECS service scheduler ignores unhealthy Elastic Load Balancing target health checks after a task has first started.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>networkConfiguration</i> The VPC subnet and security group configuration for tasks that receive their own elastic network interface by using the <code>awsvpc</code> networking mode.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>networkConfiguration</b>: The VPC subnet and security group configuration for tasks that receive their own elastic network interface by using the <code>awsvpc</code> networking mode.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>placementStrategy</i> The placement strategy that determines how tasks for the service are placed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>placementConstraints</i> The placement constraints for the tasks in the service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The Unix timestamp for when the service was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>events</i> The event stream for your service. A maximum of 100 of the latest events are displayed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>roleArn</i> The ARN of the IAM role associated with the service that allows the Amazon ECS container agent to register container instances with an Elastic Load Balancing load balancer.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deployments</i> The current state of deployments for the service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>taskSets</i> Information about a set of Amazon ECS tasks in either an AWS CodeDeploy or an <code>EXTERNAL</code> deployment. An Amazon ECS task set includes details such as the desired number of tasks, how many tasks are running, and whether the task set serves production traffic.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deploymentConfiguration</i> Optional deployment parameters that control how many tasks run during the deployment and the ordering of stopping and starting tasks.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>deploymentConfiguration</b>: Optional deployment parameters that control how many tasks run during the deployment and the ordering of stopping and starting tasks.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>taskDefinition</i> The task definition to use for tasks in the service. This value is specified when the service is created with <a>CreateService</a>, and it can be modified with <a>UpdateService</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>platformVersion</i> The platform version on which to run your service. A platform version is only specified for tasks using the Fargate launch type. If one is not specified, the <code>LATEST</code> platform version is used by default. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html">AWS Fargate Platform Versions</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>capacityProviderStrategy</i> The capacity provider strategy associated with the service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>launchType</i> The infrastructure on which your service is running. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html">Amazon ECS launch types</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>pendingCount</i> The number of tasks in the cluster that are in the <code>PENDING</code> state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>runningCount</i> The number of tasks in the cluster that are in the <code>RUNNING</code> state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>desiredCount</i> The desired number of instantiations of the task definition to keep running on the service. This value is specified when the service is created with <a>CreateService</a>, and it can be modified with <a>UpdateService</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the service. The valid values are <code>ACTIVE</code>, <code>DRAINING</code>, or <code>INACTIVE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>serviceRegistries</i> The details of the service discovery registries to assign to this service. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html">Service Discovery</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>loadBalancers</i> A list of Elastic Load Balancing load balancer objects, containing the load balancer name, the container name (as it appears in a container definition), and the container port to access from the load balancer.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>clusterArn</i> The Amazon Resource Name (ARN) of the cluster that hosts the service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>serviceName</i> The name of your service. Up to 255 letters (uppercase and lowercase), numbers, underscores, and hyphens are allowed. Service names must be unique within a cluster, but you can have similarly named services in multiple clusters within a Region or across multiple Regions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>serviceArn</i> The ARN that identifies the service. The ARN contains the <code>arn:aws:ecs</code> namespace, followed by the Region of the service, the AWS account ID of the service owner, the <code>service</code> namespace, and then the service name. For example, <code>arn:aws:ecs:region:012345678910:service/my-service</code>.<br/><note> The deployment circuit breaker can only be used for services using the rolling update (<code>ECS</code>) deployment type. </note> The <b>deployment circuit breaker</b> determines whether a service deployment will fail if the service can't reach a steady state. If deployment circuit breaker is enabled, a service deployment will transition to a failed state and stop launching new tasks. If rollback is enabled, when a service deployment fails, the service is rolled back to the last deployment that completed successfully.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>deploymentCircuitBreaker</b>: <note> The deployment circuit breaker can only be used for services using the rolling update (<code>ECS</code>) deployment type. </note> The <b>deployment circuit breaker</b> determines whether a service deployment will fail if the service can't reach a steady state. If deployment circuit breaker is enabled, a service deployment will transition to a failed state and stop launching new tasks. If rollback is enabled, when a service deployment fails, the service is rolled back to the last deployment that completed successfully.The VPC subnets and security groups associated with a task. <note> All specified subnets and security groups must be from the same VPC. </note>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>awsvpcConfiguration</b>: The VPC subnets and security groups associated with a task. <note> All specified subnets and security groups must be from the same VPC. </note>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The deployment controller type to use. There are three deployment controller types available: <dl> <dt>ECS</dt> <dd> The rolling update (<code>ECS</code>) deployment type involves replacing the current running version of the container with the latest version. The number of containers Amazon ECS adds or removes from the service during a rolling update is controlled by adjusting the minimum and maximum number of healthy tasks allowed during a service deployment, as specified in the <a>DeploymentConfiguration</a>. </dd> <dt>CODE_DEPLOY</dt> <dd> The blue/green (<code>CODE_DEPLOY</code>) deployment type uses the blue/green deployment model powered by AWS CodeDeploy, which allows you to verify a new deployment of a service before sending production traffic to it. </dd> <dt>EXTERNAL</dt> <dd> The external (<code>EXTERNAL</code>) deployment type enables you to use any third-party deployment controller for full control over the deployment process for an Amazon ECS service. </dd> </dl><br/>        """
        pass

    def create_task_set(self, taskDefinition: str, cluster: str, service: str, externalId: str=None, networkConfiguration: NetworkConfiguration=None, loadBalancers: List[LoadBalancer]=None, serviceRegistries: List[ServiceRegistry]=None, launchType: str=None, capacityProviderStrategy: List[CapacityProviderStrategyItem]=None, platformVersion: str=None, scale: Scale=None, clientToken: str=None, tags: List[Tag]=None) -> CreateTaskSetResponse:
        r"""Create a task set in the specified cluster and service. This is used when a service uses the <code>EXTERNAL</code> deployment controller type. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html">Amazon ECS Deployment Types</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.

        :param self:
        :param tags:  The metadata that you apply to the task set to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define. When a service is deleted, the tags are deleted as well. The following basic restrictions apply to tags: <ul> <li> Maximum number of tags per resource - 50 </li> <li> For each resource, each tag key must be unique, and each tag key can have only one value. </li> <li> Maximum key length - 128 Unicode characters in UTF-8 </li> <li> Maximum value length - 256 Unicode characters in UTF-8 </li> <li> If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @. </li> <li> Tag keys and values are case-sensitive. </li> <li> Do not use <code>aws:</code>, <code>AWS:</code>, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit. </li> </ul><br/>clientToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Up to 32 ASCII characters are allowed.<br/>scale:  A floating-point percentage of the desired number of tasks to place and keep running in the task set.:<br/>platformVersion:  The platform version that the tasks in the task set should use. A platform version is specified only for tasks using the Fargate launch type. If one isn't specified, the <code>LATEST</code> platform version is used by default.<br/>capacityProviderStrategy:  The capacity provider strategy to use for the task set. A capacity provider strategy consists of one or more capacity providers along with the <code>base</code> and <code>weight</code> to assign to them. A capacity provider must be associated with the cluster to be used in a capacity provider strategy. The <a>PutClusterCapacityProviders</a> API is used to associate a capacity provider with a cluster. Only capacity providers with an <code>ACTIVE</code> or <code>UPDATING</code> status can be used. If a <code>capacityProviderStrategy</code> is specified, the <code>launchType</code> parameter must be omitted. If no <code>capacityProviderStrategy</code> or <code>launchType</code> is specified, the <code>defaultCapacityProviderStrategy</code> for the cluster is used. If specifying a capacity provider that uses an Auto Scaling group, the capacity provider must already be created. New capacity providers can be created with the <a>CreateCapacityProvider</a> API operation. To use a AWS Fargate capacity provider, specify either the <code>FARGATE</code> or <code>FARGATE_SPOT</code> capacity providers. The AWS Fargate capacity providers are available to all accounts and only need to be associated with a cluster to be used. The <a>PutClusterCapacityProviders</a> API operation is used to update the list of available capacity providers for a cluster after the cluster is created.<br/>launchType:  The launch type that new tasks in the task set will use. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html">Amazon ECS Launch Types</a> in the <i>Amazon Elastic Container Service Developer Guide</i>. If a <code>launchType</code> is specified, the <code>capacityProviderStrategy</code> parameter must be omitted.<br/>serviceRegistries:  The details of the service discovery registries to assign to this task set. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html">Service Discovery</a>.<br/>loadBalancers:  A load balancer object representing the load balancer to use with the task set. The supported load balancer types are either an Application Load Balancer or a Network Load Balancer.<br/>networkConfiguration:  An object representing the network configuration for a task set.:<br/>taskDefinition:  The task definition for the tasks in the task set to use.<br/>externalId:  An optional non-unique tag that identifies this task set in external systems. If the task set is associated with a service discovery registry, the tasks in this task set will have the <code>ECS_TASK_SET_EXTERNAL_ID</code> AWS Cloud Map attribute set to the provided value.<br/>cluster:  The short name or full Amazon Resource Name (ARN) of the cluster that hosts the service to create the task set in.<br/>service:  The short name or full Amazon Resource Name (ARN) of the service to create the task set in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>awsvpcConfiguration</i> The VPC subnets and security groups associated with a task. <note> All specified subnets and security groups must be from the same VPC. </note>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>awsvpcConfiguration</b>: The VPC subnets and security groups associated with a task. <note> All specified subnets and security groups must be from the same VPC. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>assignPublicIp</i> Whether the task's elastic network interface receives a public IP address. The default value is <code>DISABLED</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>securityGroups</i> The IDs of the security groups associated with the task or service. If you do not specify a security group, the default security group for the VPC is used. There is a limit of 5 security groups that can be specified per <code>AwsVpcConfiguration</code>. <note> All specified security groups must be from the same VPC. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>subnets</i> The IDs of the subnets associated with the task or service. There is a limit of 16 subnets that can be specified per <code>AwsVpcConfiguration</code>. <note> All specified subnets must be from the same VPC. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>unit</i> The unit of measure for the scale value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>value</i> The value, specified as a percent total of a service's <code>desiredCount</code>, to scale the task set. Accepted values are numbers between 0 and 100.<br/>
        :return: taskSet:  Information about a set of Amazon ECS tasks in either an AWS CodeDeploy or an <code>EXTERNAL</code> deployment. A task set includes details such as the desired number of tasks, how many tasks are running, and whether the task set serves production traffic.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The metadata that you apply to the task set to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define. The following basic restrictions apply to tags: <ul> <li> Maximum number of tags per resource - 50 </li> <li> For each resource, each tag key must be unique, and each tag key can have only one value. </li> <li> Maximum key length - 128 Unicode characters in UTF-8 </li> <li> Maximum value length - 256 Unicode characters in UTF-8 </li> <li> If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @. </li> <li> Tag keys and values are case-sensitive. </li> <li> Do not use <code>aws:</code>, <code>AWS:</code>, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>stabilityStatusAt</i> The Unix timestamp for when the task set stability status was retrieved.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>stabilityStatus</i> The stability status, which indicates whether the task set has reached a steady state. If the following conditions are met, the task set will be in <code>STEADY_STATE</code>: <ul> <li> The task <code>runningCount</code> is equal to the <code>computedDesiredCount</code>. </li> <li> The <code>pendingCount</code> is <code>0</code>. </li> <li> There are no tasks running on container instances in the <code>DRAINING</code> status. </li> <li> All tasks are reporting a healthy status from the load balancers, service discovery, and container health checks. </li> </ul> If any of those conditions are not met, the stability status returns <code>STABILIZING</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>scale</i> A floating-point percentage of the desired number of tasks to place and keep running in the task set.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>scale</b>: A floating-point percentage of the desired number of tasks to place and keep running in the task set.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>serviceRegistries</i> The details of the service discovery registries to assign to this task set. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html">Service discovery</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>loadBalancers</i> Details on a load balancer that is used with a task set.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>networkConfiguration</i> The network configuration for the task set.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>networkConfiguration</b>: The network configuration for the task set.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>platformVersion</i> The AWS Fargate platform version on which the tasks in the task set are running. A platform version is only specified for tasks run on AWS Fargate. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html">AWS Fargate platform versions</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>capacityProviderStrategy</i> The capacity provider strategy associated with the task set.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>launchType</i> The launch type the tasks in the task set are using. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html">Amazon ECS launch types</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>updatedAt</i> The Unix timestamp for when the task set was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The Unix timestamp for when the task set was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>runningCount</i> The number of tasks in the task set that are in the <code>RUNNING</code> status during a deployment. A task in the <code>RUNNING</code> state is running and ready for use.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>pendingCount</i> The number of tasks in the task set that are in the <code>PENDING</code> status during a deployment. A task in the <code>PENDING</code> state is preparing to enter the <code>RUNNING</code> state. A task set enters the <code>PENDING</code> status when it launches for the first time or when it is restarted after being in the <code>STOPPED</code> state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>computedDesiredCount</i> The computed desired count for the task set. This is calculated by multiplying the service's <code>desiredCount</code> by the task set's <code>scale</code> percentage. The result is always rounded up. For example, if the computed desired count is 1.2, it rounds up to 2 tasks.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>taskDefinition</i> The task definition the task set is using.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the task set. The following describes each state: <dl> <dt>PRIMARY</dt> <dd> The task set is serving production traffic. </dd> <dt>ACTIVE</dt> <dd> The task set is not serving production traffic. </dd> <dt>DRAINING</dt> <dd> The tasks in the task set are being stopped and their corresponding targets are being deregistered from their target group. </dd> </dl><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>externalId</i> The external ID associated with the task set. If a task set is created by an AWS CodeDeploy deployment, the <code>externalId</code> parameter contains the AWS CodeDeploy deployment ID. If a task set is created for an external deployment and is associated with a service discovery registry, the <code>externalId</code> parameter contains the <code>ECS_TASK_SET_EXTERNAL_ID</code> AWS Cloud Map attribute.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>startedBy</i> The tag specified when a task set is started. If the task set is created by an AWS CodeDeploy deployment, the <code>startedBy</code> parameter is <code>CODE_DEPLOY</code>. For a task set created for an external deployment, the startedBy field isn't used.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>clusterArn</i> The Amazon Resource Name (ARN) of the cluster that the service that hosts the task set exists in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>serviceArn</i> The Amazon Resource Name (ARN) of the service the task set exists in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>taskSetArn</i> The Amazon Resource Name (ARN) of the task set.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The ID of the task set.<br/>The VPC subnets and security groups associated with a task. <note> All specified subnets and security groups must be from the same VPC. </note>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>awsvpcConfiguration</b>: The VPC subnets and security groups associated with a task. <note> All specified subnets and security groups must be from the same VPC. </note>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>unit</i> The unit of measure for the scale value.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>value</i> The value, specified as a percent total of a service's <code>desiredCount</code>, to scale the task set. Accepted values are numbers between 0 and 100.<br/>        """
        pass

    def delete_account_setting(self, name: str, principalArn: str=None) -> DeleteAccountSettingResponse:
        r"""Disables an account setting for a specified IAM user, IAM role, or the root user for an account.

        :param self:
        :param principalArn:  The ARN of the principal, which can be an IAM user, IAM role, or the root user. If you specify the root user, it disables the account setting for all IAM users, IAM roles, and the root user of the account unless an IAM user or role explicitly overrides these settings. If this field is omitted, the setting is changed only for the authenticated user.<br/>name:  The resource name for which to disable the account setting. If <code>serviceLongArnFormat</code> is specified, the ARN for your Amazon ECS services is affected. If <code>taskLongArnFormat</code> is specified, the ARN and resource ID for your Amazon ECS tasks is affected. If <code>containerInstanceLongArnFormat</code> is specified, the ARN and resource ID for your Amazon ECS container instances is affected. If <code>awsvpcTrunking</code> is specified, the ENI limit for your Amazon ECS container instances is affected.<br/>
        :return: setting:  The account setting for the specified principal ARN.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>principalArn</i> The ARN of the principal, which can be an IAM user, IAM role, or the root user. If this field is omitted, the authenticated user is assumed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>value</i> Whether the account setting is enabled or disabled for the specified resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The Amazon ECS resource name.<br/>        """
        pass

    def delete_attributes(self, attributes: List[Attribute], cluster: str=None) -> DeleteAttributesResponse:
        r"""Deletes one or more custom attributes from an Amazon ECS resource.

        :param self:
        :param attributes:  The attributes to delete from your resource. You can specify up to 10 attributes per request. For custom attributes, specify the attribute name and target ID, but do not specify the value. If you specify the target ID using the short form, you must also specify the target type.<br/>cluster:  The short name or full Amazon Resource Name (ARN) of the cluster that contains the resource to delete attributes. If you do not specify a cluster, the default cluster is assumed.<br/>
        :return: attributes:  A list of attribute objects that were successfully deleted from your resource.<br/>        """
        pass

    def delete_capacity_provider(self, capacityProvider: str) -> DeleteCapacityProviderResponse:
        r"""Deletes the specified capacity provider. <note> The <code>FARGATE</code> and <code>FARGATE_SPOT</code> capacity providers are reserved and cannot be deleted. You can disassociate them from a cluster using either the <a>PutClusterCapacityProviders</a> API or by deleting the cluster. </note> Prior to a capacity provider being deleted, the capacity provider must be removed from the capacity provider strategy from all services. The <a>UpdateService</a> API can be used to remove a capacity provider from a service's capacity provider strategy. When updating a service, the <code>forceNewDeployment</code> option can be used to ensure that any tasks using the Amazon EC2 instance capacity provided by the capacity provider are transitioned to use the capacity from the remaining capacity providers. Only capacity providers that are not associated with a cluster can be deleted. To remove a capacity provider from a cluster, you can either use <a>PutClusterCapacityProviders</a> or delete the cluster.

        :param self:
        :param capacityProvider:  The short name or full Amazon Resource Name (ARN) of the capacity provider to delete.<br/>
        :return: capacityProvider:  The details of the capacity provider.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The metadata that you apply to the capacity provider to help you categorize and organize it. Each tag consists of a key and an optional value, both of which you define. The following basic restrictions apply to tags: <ul> <li> Maximum number of tags per resource - 50 </li> <li> For each resource, each tag key must be unique, and each tag key can have only one value. </li> <li> Maximum key length - 128 Unicode characters in UTF-8 </li> <li> Maximum value length - 256 Unicode characters in UTF-8 </li> <li> If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @. </li> <li> Tag keys and values are case-sensitive. </li> <li> Do not use <code>aws:</code>, <code>AWS:</code>, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>updateStatusReason</i> The update status reason. This provides further details about the update status for the capacity provider.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>updateStatus</i> The update status of the capacity provider. The following are the possible states that will be returned. <dl> <dt>DELETE_IN_PROGRESS</dt> <dd> The capacity provider is in the process of being deleted. </dd> <dt>DELETE_COMPLETE</dt> <dd> The capacity provider has been successfully deleted and will have an <code>INACTIVE</code> status. </dd> <dt>DELETE_FAILED</dt> <dd> The capacity provider was unable to be deleted. The update status reason will provide further details about why the delete failed. </dd> </dl><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>autoScalingGroupProvider</i> The Auto Scaling group settings for the capacity provider.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>autoScalingGroupProvider</b>: The Auto Scaling group settings for the capacity provider.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current status of the capacity provider. Only capacity providers in an <code>ACTIVE</code> state can be used in a cluster. When a capacity provider is successfully deleted, it will have an <code>INACTIVE</code> status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the capacity provider.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>capacityProviderArn</i> The Amazon Resource Name (ARN) that identifies the capacity provider.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>autoScalingGroupArn</i> The Amazon Resource Name (ARN) that identifies the Auto Scaling group.<br/>The managed scaling settings for the Auto Scaling group capacity provider.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>managedScaling</b>: The managed scaling settings for the Auto Scaling group capacity provider.        """
        pass

    def delete_cluster(self, cluster: str) -> DeleteClusterResponse:
        r"""Deletes the specified cluster. The cluster will transition to the <code>INACTIVE</code> state. Clusters with an <code>INACTIVE</code> status may remain discoverable in your account for a period of time. However, this behavior is subject to change in the future, so you should not rely on <code>INACTIVE</code> clusters persisting. You must deregister all container instances from this cluster before you may delete it. You can list the container instances in a cluster with <a>ListContainerInstances</a> and deregister them with <a>DeregisterContainerInstance</a>.

        :param self:
        :param cluster:  The short name or full Amazon Resource Name (ARN) of the cluster to delete.<br/>
        :return: cluster:  The full description of the deleted cluster.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>attachmentsStatus</i> The status of the capacity providers associated with the cluster. The following are the states that will be returned: <dl> <dt>UPDATE_IN_PROGRESS</dt> <dd> The available capacity providers for the cluster are updating. This occurs when the Auto Scaling plan is provisioning or deprovisioning. </dd> <dt>UPDATE_COMPLETE</dt> <dd> The capacity providers have successfully updated. </dd> <dt>UPDATE_FAILED</dt> <dd> The capacity provider updates failed. </dd> </dl><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>attachments</i> The resources attached to a cluster. When using a capacity provider with a cluster, the Auto Scaling plan that is created will be returned as a cluster attachment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>defaultCapacityProviderStrategy</i> The default capacity provider strategy for the cluster. When services or tasks are run in the cluster with no launch type or capacity provider strategy specified, the default capacity provider strategy is used.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>capacityProviders</i> The capacity providers associated with the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>settings</i> The settings for the cluster. This parameter indicates whether CloudWatch Container Insights is enabled or disabled for a cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The metadata that you apply to the cluster to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define. The following basic restrictions apply to tags: <ul> <li> Maximum number of tags per resource - 50 </li> <li> For each resource, each tag key must be unique, and each tag key can have only one value. </li> <li> Maximum key length - 128 Unicode characters in UTF-8 </li> <li> Maximum value length - 256 Unicode characters in UTF-8 </li> <li> If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @. </li> <li> Tag keys and values are case-sensitive. </li> <li> Do not use <code>aws:</code>, <code>AWS:</code>, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statistics</i> Additional information about your clusters that are separated by launch type, including: <ul> <li> runningEC2TasksCount </li> <li> RunningFargateTasksCount </li> <li> pendingEC2TasksCount </li> <li> pendingFargateTasksCount </li> <li> activeEC2ServiceCount </li> <li> activeFargateServiceCount </li> <li> drainingEC2ServiceCount </li> <li> drainingFargateServiceCount </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>activeServicesCount</i> The number of services that are running on the cluster in an <code>ACTIVE</code> state. You can view these services with <a>ListServices</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>pendingTasksCount</i> The number of tasks in the cluster that are in the <code>PENDING</code> state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>runningTasksCount</i> The number of tasks in the cluster that are in the <code>RUNNING</code> state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>registeredContainerInstancesCount</i> The number of container instances registered into the cluster. This includes container instances in both <code>ACTIVE</code> and <code>DRAINING</code> status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the cluster. The following are the possible states that will be returned. <dl> <dt>ACTIVE</dt> <dd> The cluster is ready to accept tasks and if applicable you can register container instances with the cluster. </dd> <dt>PROVISIONING</dt> <dd> The cluster has capacity providers associated with it and the resources needed for the capacity provider are being created. </dd> <dt>DEPROVISIONING</dt> <dd> The cluster has capacity providers associated with it and the resources needed for the capacity provider are being deleted. </dd> <dt>FAILED</dt> <dd> The cluster has capacity providers associated with it and the resources needed for the capacity provider have failed to create. </dd> <dt>INACTIVE</dt> <dd> The cluster has been deleted. Clusters with an <code>INACTIVE</code> status may remain discoverable in your account for a period of time. However, this behavior is subject to change in the future, so you should not rely on <code>INACTIVE</code> clusters persisting. </dd> </dl><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>configuration</i> The execute command configuration for the cluster.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>configuration</b>: The execute command configuration for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>clusterName</i> A user-generated string that you use to identify your cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>clusterArn</i> The Amazon Resource Name (ARN) that identifies the cluster. The ARN contains the <code>arn:aws:ecs</code> namespace, followed by the Region of the cluster, the AWS account ID of the cluster owner, the <code>cluster</code> namespace, and then the cluster name. For example, <code>arn:aws:ecs:region:012345678910:cluster/test</code>.<br/>The details of the execute command configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>executeCommandConfiguration</b>: The details of the execute command configuration.        """
        pass

    def delete_service(self, service: str, cluster: str=None, force: BoxedBoolean=None) -> DeleteServiceResponse:
        r"""Deletes a specified service within a cluster. You can delete a service if you have no running tasks in it and the desired task count is zero. If the service is actively maintaining tasks, you cannot delete it, and you must update the service to a desired task count of zero. For more information, see <a>UpdateService</a>. <note> When you delete a service, if there are still running tasks that require cleanup, the service status moves from <code>ACTIVE</code> to <code>DRAINING</code>, and the service is no longer visible in the console or in the <a>ListServices</a> API operation. After all tasks have transitioned to either <code>STOPPING</code> or <code>STOPPED</code> status, the service status moves from <code>DRAINING</code> to <code>INACTIVE</code>. Services in the <code>DRAINING</code> or <code>INACTIVE</code> status can still be viewed with the <a>DescribeServices</a> API operation. However, in the future, <code>INACTIVE</code> services may be cleaned up and purged from Amazon ECS record keeping, and <a>DescribeServices</a> calls on those services return a <code>ServiceNotFoundException</code> error. </note> <important> If you attempt to create a new service with the same name as an existing service in either <code>ACTIVE</code> or <code>DRAINING</code> status, you receive an error. </important>

        :param self:
        :param force:  If <code>true</code>, allows you to delete a service even if it has not been scaled down to zero tasks. It is only necessary to use this if the service is using the <code>REPLICA</code> scheduling strategy.<br/>service:  The name of the service to delete.<br/>cluster:  The short name or full Amazon Resource Name (ARN) of the cluster that hosts the service to delete. If you do not specify a cluster, the default cluster is assumed.<br/>
        :return: service:  The full description of the deleted service.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>enableExecuteCommand</i> Whether or not the execute command functionality is enabled for the service. If <code>true</code>, the execute command functionality is enabled for all containers in tasks as part of the service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>propagateTags</i> Specifies whether to propagate the tags from the task definition or the service to the task. If no value is specified, the tags are not propagated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>enableECSManagedTags</i> Specifies whether to enable Amazon ECS managed tags for the tasks in the service. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html">Tagging Your Amazon ECS Resources</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdBy</i> The principal that created the service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The metadata that you apply to the service to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define. The following basic restrictions apply to tags: <ul> <li> Maximum number of tags per resource - 50 </li> <li> For each resource, each tag key must be unique, and each tag key can have only one value. </li> <li> Maximum key length - 128 Unicode characters in UTF-8 </li> <li> Maximum value length - 256 Unicode characters in UTF-8 </li> <li> If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @. </li> <li> Tag keys and values are case-sensitive. </li> <li> Do not use <code>aws:</code>, <code>AWS:</code>, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deploymentController</i> The deployment controller type the service is using. When using the DescribeServices API, this field is omitted if the service is using the <code>ECS</code> deployment controller type.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>deploymentController</b>: The deployment controller type the service is using. When using the DescribeServices API, this field is omitted if the service is using the <code>ECS</code> deployment controller type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>schedulingStrategy</i> The scheduling strategy to use for the service. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html">Services</a>. There are two service scheduler strategies available: <ul> <li>  <code>REPLICA</code>-The replica scheduling strategy places and maintains the desired number of tasks across your cluster. By default, the service scheduler spreads tasks across Availability Zones. You can use task placement strategies and constraints to customize task placement decisions. </li> <li>  <code>DAEMON</code>-The daemon scheduling strategy deploys exactly one task on each active container instance that meets all of the task placement constraints that you specify in your cluster. The service scheduler also evaluates the task placement constraints for running tasks and will stop tasks that do not meet the placement constraints. <note> Fargate tasks do not support the <code>DAEMON</code> scheduling strategy. </note> </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>healthCheckGracePeriodSeconds</i> The period of time, in seconds, that the Amazon ECS service scheduler ignores unhealthy Elastic Load Balancing target health checks after a task has first started.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>networkConfiguration</i> The VPC subnet and security group configuration for tasks that receive their own elastic network interface by using the <code>awsvpc</code> networking mode.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>networkConfiguration</b>: The VPC subnet and security group configuration for tasks that receive their own elastic network interface by using the <code>awsvpc</code> networking mode.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>placementStrategy</i> The placement strategy that determines how tasks for the service are placed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>placementConstraints</i> The placement constraints for the tasks in the service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The Unix timestamp for when the service was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>events</i> The event stream for your service. A maximum of 100 of the latest events are displayed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>roleArn</i> The ARN of the IAM role associated with the service that allows the Amazon ECS container agent to register container instances with an Elastic Load Balancing load balancer.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deployments</i> The current state of deployments for the service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>taskSets</i> Information about a set of Amazon ECS tasks in either an AWS CodeDeploy or an <code>EXTERNAL</code> deployment. An Amazon ECS task set includes details such as the desired number of tasks, how many tasks are running, and whether the task set serves production traffic.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deploymentConfiguration</i> Optional deployment parameters that control how many tasks run during the deployment and the ordering of stopping and starting tasks.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>deploymentConfiguration</b>: Optional deployment parameters that control how many tasks run during the deployment and the ordering of stopping and starting tasks.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>taskDefinition</i> The task definition to use for tasks in the service. This value is specified when the service is created with <a>CreateService</a>, and it can be modified with <a>UpdateService</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>platformVersion</i> The platform version on which to run your service. A platform version is only specified for tasks using the Fargate launch type. If one is not specified, the <code>LATEST</code> platform version is used by default. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html">AWS Fargate Platform Versions</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>capacityProviderStrategy</i> The capacity provider strategy associated with the service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>launchType</i> The infrastructure on which your service is running. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html">Amazon ECS launch types</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>pendingCount</i> The number of tasks in the cluster that are in the <code>PENDING</code> state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>runningCount</i> The number of tasks in the cluster that are in the <code>RUNNING</code> state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>desiredCount</i> The desired number of instantiations of the task definition to keep running on the service. This value is specified when the service is created with <a>CreateService</a>, and it can be modified with <a>UpdateService</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the service. The valid values are <code>ACTIVE</code>, <code>DRAINING</code>, or <code>INACTIVE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>serviceRegistries</i> The details of the service discovery registries to assign to this service. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html">Service Discovery</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>loadBalancers</i> A list of Elastic Load Balancing load balancer objects, containing the load balancer name, the container name (as it appears in a container definition), and the container port to access from the load balancer.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>clusterArn</i> The Amazon Resource Name (ARN) of the cluster that hosts the service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>serviceName</i> The name of your service. Up to 255 letters (uppercase and lowercase), numbers, underscores, and hyphens are allowed. Service names must be unique within a cluster, but you can have similarly named services in multiple clusters within a Region or across multiple Regions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>serviceArn</i> The ARN that identifies the service. The ARN contains the <code>arn:aws:ecs</code> namespace, followed by the Region of the service, the AWS account ID of the service owner, the <code>service</code> namespace, and then the service name. For example, <code>arn:aws:ecs:region:012345678910:service/my-service</code>.<br/><note> The deployment circuit breaker can only be used for services using the rolling update (<code>ECS</code>) deployment type. </note> The <b>deployment circuit breaker</b> determines whether a service deployment will fail if the service can't reach a steady state. If deployment circuit breaker is enabled, a service deployment will transition to a failed state and stop launching new tasks. If rollback is enabled, when a service deployment fails, the service is rolled back to the last deployment that completed successfully.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>deploymentCircuitBreaker</b>: <note> The deployment circuit breaker can only be used for services using the rolling update (<code>ECS</code>) deployment type. </note> The <b>deployment circuit breaker</b> determines whether a service deployment will fail if the service can't reach a steady state. If deployment circuit breaker is enabled, a service deployment will transition to a failed state and stop launching new tasks. If rollback is enabled, when a service deployment fails, the service is rolled back to the last deployment that completed successfully.The VPC subnets and security groups associated with a task. <note> All specified subnets and security groups must be from the same VPC. </note>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>awsvpcConfiguration</b>: The VPC subnets and security groups associated with a task. <note> All specified subnets and security groups must be from the same VPC. </note>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The deployment controller type to use. There are three deployment controller types available: <dl> <dt>ECS</dt> <dd> The rolling update (<code>ECS</code>) deployment type involves replacing the current running version of the container with the latest version. The number of containers Amazon ECS adds or removes from the service during a rolling update is controlled by adjusting the minimum and maximum number of healthy tasks allowed during a service deployment, as specified in the <a>DeploymentConfiguration</a>. </dd> <dt>CODE_DEPLOY</dt> <dd> The blue/green (<code>CODE_DEPLOY</code>) deployment type uses the blue/green deployment model powered by AWS CodeDeploy, which allows you to verify a new deployment of a service before sending production traffic to it. </dd> <dt>EXTERNAL</dt> <dd> The external (<code>EXTERNAL</code>) deployment type enables you to use any third-party deployment controller for full control over the deployment process for an Amazon ECS service. </dd> </dl><br/>        """
        pass

    def delete_task_set(self, taskSet: str, service: str, cluster: str, force: BoxedBoolean=None) -> DeleteTaskSetResponse:
        r"""Deletes a specified task set within a service. This is used when a service uses the <code>EXTERNAL</code> deployment controller type. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html">Amazon ECS Deployment Types</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.

        :param self:
        :param force:  If <code>true</code>, this allows you to delete a task set even if it hasn't been scaled down to zero.<br/>taskSet:  The task set ID or full Amazon Resource Name (ARN) of the task set to delete.<br/>service:  The short name or full Amazon Resource Name (ARN) of the service that hosts the task set to delete.<br/>cluster:  The short name or full Amazon Resource Name (ARN) of the cluster that hosts the service that the task set exists in to delete.<br/>
        :return: taskSet:  Details about the task set.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The metadata that you apply to the task set to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define. The following basic restrictions apply to tags: <ul> <li> Maximum number of tags per resource - 50 </li> <li> For each resource, each tag key must be unique, and each tag key can have only one value. </li> <li> Maximum key length - 128 Unicode characters in UTF-8 </li> <li> Maximum value length - 256 Unicode characters in UTF-8 </li> <li> If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @. </li> <li> Tag keys and values are case-sensitive. </li> <li> Do not use <code>aws:</code>, <code>AWS:</code>, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>stabilityStatusAt</i> The Unix timestamp for when the task set stability status was retrieved.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>stabilityStatus</i> The stability status, which indicates whether the task set has reached a steady state. If the following conditions are met, the task set will be in <code>STEADY_STATE</code>: <ul> <li> The task <code>runningCount</code> is equal to the <code>computedDesiredCount</code>. </li> <li> The <code>pendingCount</code> is <code>0</code>. </li> <li> There are no tasks running on container instances in the <code>DRAINING</code> status. </li> <li> All tasks are reporting a healthy status from the load balancers, service discovery, and container health checks. </li> </ul> If any of those conditions are not met, the stability status returns <code>STABILIZING</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>scale</i> A floating-point percentage of the desired number of tasks to place and keep running in the task set.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>scale</b>: A floating-point percentage of the desired number of tasks to place and keep running in the task set.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>serviceRegistries</i> The details of the service discovery registries to assign to this task set. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html">Service discovery</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>loadBalancers</i> Details on a load balancer that is used with a task set.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>networkConfiguration</i> The network configuration for the task set.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>networkConfiguration</b>: The network configuration for the task set.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>platformVersion</i> The AWS Fargate platform version on which the tasks in the task set are running. A platform version is only specified for tasks run on AWS Fargate. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html">AWS Fargate platform versions</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>capacityProviderStrategy</i> The capacity provider strategy associated with the task set.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>launchType</i> The launch type the tasks in the task set are using. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html">Amazon ECS launch types</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>updatedAt</i> The Unix timestamp for when the task set was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The Unix timestamp for when the task set was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>runningCount</i> The number of tasks in the task set that are in the <code>RUNNING</code> status during a deployment. A task in the <code>RUNNING</code> state is running and ready for use.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>pendingCount</i> The number of tasks in the task set that are in the <code>PENDING</code> status during a deployment. A task in the <code>PENDING</code> state is preparing to enter the <code>RUNNING</code> state. A task set enters the <code>PENDING</code> status when it launches for the first time or when it is restarted after being in the <code>STOPPED</code> state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>computedDesiredCount</i> The computed desired count for the task set. This is calculated by multiplying the service's <code>desiredCount</code> by the task set's <code>scale</code> percentage. The result is always rounded up. For example, if the computed desired count is 1.2, it rounds up to 2 tasks.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>taskDefinition</i> The task definition the task set is using.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the task set. The following describes each state: <dl> <dt>PRIMARY</dt> <dd> The task set is serving production traffic. </dd> <dt>ACTIVE</dt> <dd> The task set is not serving production traffic. </dd> <dt>DRAINING</dt> <dd> The tasks in the task set are being stopped and their corresponding targets are being deregistered from their target group. </dd> </dl><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>externalId</i> The external ID associated with the task set. If a task set is created by an AWS CodeDeploy deployment, the <code>externalId</code> parameter contains the AWS CodeDeploy deployment ID. If a task set is created for an external deployment and is associated with a service discovery registry, the <code>externalId</code> parameter contains the <code>ECS_TASK_SET_EXTERNAL_ID</code> AWS Cloud Map attribute.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>startedBy</i> The tag specified when a task set is started. If the task set is created by an AWS CodeDeploy deployment, the <code>startedBy</code> parameter is <code>CODE_DEPLOY</code>. For a task set created for an external deployment, the startedBy field isn't used.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>clusterArn</i> The Amazon Resource Name (ARN) of the cluster that the service that hosts the task set exists in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>serviceArn</i> The Amazon Resource Name (ARN) of the service the task set exists in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>taskSetArn</i> The Amazon Resource Name (ARN) of the task set.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The ID of the task set.<br/>The VPC subnets and security groups associated with a task. <note> All specified subnets and security groups must be from the same VPC. </note>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>awsvpcConfiguration</b>: The VPC subnets and security groups associated with a task. <note> All specified subnets and security groups must be from the same VPC. </note>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>unit</i> The unit of measure for the scale value.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>value</i> The value, specified as a percent total of a service's <code>desiredCount</code>, to scale the task set. Accepted values are numbers between 0 and 100.<br/>        """
        pass

    def deregister_container_instance(self, containerInstance: str, cluster: str=None, force: BoxedBoolean=None) -> DeregisterContainerInstanceResponse:
        r"""Deregisters an Amazon ECS container instance from the specified cluster. This instance is no longer available to run tasks. If you intend to use the container instance for some other purpose after deregistration, you should stop all of the tasks running on the container instance before deregistration. That prevents any orphaned tasks from consuming resources. Deregistering a container instance removes the instance from a cluster, but it does not terminate the EC2 instance. If you are finished using the instance, be sure to terminate it in the Amazon EC2 console to stop billing. <note> If you terminate a running container instance, Amazon ECS automatically deregisters the instance from your cluster (stopped container instances or instances with disconnected agents are not automatically deregistered when terminated). </note>

        :param self:
        :param force:  Forces the deregistration of the container instance. If you have tasks running on the container instance when you deregister it with the <code>force</code> option, these tasks remain running until you terminate the instance or the tasks stop through some other means, but they are orphaned (no longer monitored or accounted for by Amazon ECS). If an orphaned task on your container instance is part of an Amazon ECS service, then the service scheduler starts another copy of that task, on a different container instance if possible.  Any containers in orphaned service tasks that are registered with a Classic Load Balancer or an Application Load Balancer target group are deregistered. They begin connection draining according to the settings on the load balancer or target group.<br/>containerInstance:  The container instance ID or full ARN of the container instance to deregister. The ARN contains the <code>arn:aws:ecs</code> namespace, followed by the Region of the container instance, the AWS account ID of the container instance owner, the <code>container-instance</code> namespace, and then the container instance ID. For example, <code>arn:aws:ecs:region:aws_account_id:container-instance/container_instance_ID</code>.<br/>cluster:  The short name or full Amazon Resource Name (ARN) of the cluster that hosts the container instance to deregister. If you do not specify a cluster, the default cluster is assumed.<br/>
        :return: containerInstance:  The container instance that was deregistered.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The metadata that you apply to the container instance to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define. The following basic restrictions apply to tags: <ul> <li> Maximum number of tags per resource - 50 </li> <li> For each resource, each tag key must be unique, and each tag key can have only one value. </li> <li> Maximum key length - 128 Unicode characters in UTF-8 </li> <li> Maximum value length - 256 Unicode characters in UTF-8 </li> <li> If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @. </li> <li> Tag keys and values are case-sensitive. </li> <li> Do not use <code>aws:</code>, <code>AWS:</code>, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>attachments</i> The resources attached to a container instance, such as elastic network interfaces.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>registeredAt</i> The Unix timestamp for when the container instance was registered.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>attributes</i> The attributes set for the container instance, either by the Amazon ECS container agent at instance registration or manually with the <a>PutAttributes</a> operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>agentUpdateStatus</i> The status of the most recent agent update. If an update has never been requested, this value is <code>NULL</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>pendingTasksCount</i> The number of tasks on the container instance that are in the <code>PENDING</code> status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>runningTasksCount</i> The number of tasks on the container instance that are in the <code>RUNNING</code> status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>agentConnected</i> This parameter returns <code>true</code> if the agent is connected to Amazon ECS. Registered instances with an agent that may be unhealthy or stopped return <code>false</code>. Only instances connected to an agent can accept placement requests.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusReason</i> The reason that the container instance reached its current status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the container instance. The valid values are <code>REGISTERING</code>, <code>REGISTRATION_FAILED</code>, <code>ACTIVE</code>, <code>INACTIVE</code>, <code>DEREGISTERING</code>, or <code>DRAINING</code>. If your account has opted in to the <code>awsvpcTrunking</code> account setting, then any newly registered container instance will transition to a <code>REGISTERING</code> status while the trunk elastic network interface is provisioned for the instance. If the registration fails, the instance will transition to a <code>REGISTRATION_FAILED</code> status. You can describe the container instance and see the reason for failure in the <code>statusReason</code> parameter. Once the container instance is terminated, the instance transitions to a <code>DEREGISTERING</code> status while the trunk elastic network interface is deprovisioned. The instance then transitions to an <code>INACTIVE</code> status. The <code>ACTIVE</code> status indicates that the container instance can accept tasks. The <code>DRAINING</code> indicates that new tasks are not placed on the container instance and any service tasks running on the container instance are removed if possible. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/container-instance-draining.html">Container Instance Draining</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>registeredResources</i> For CPU and memory resource types, this parameter describes the amount of each resource that was available on the container instance when the container agent registered it with Amazon ECS. This value represents the total amount of CPU and memory that can be allocated on this container instance to tasks. For port resource types, this parameter describes the ports that were reserved by the Amazon ECS container agent when it registered the container instance with Amazon ECS.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>remainingResources</i> For CPU and memory resource types, this parameter describes the remaining CPU and memory that has not already been allocated to tasks and is therefore available for new tasks. For port resource types, this parameter describes the ports that were reserved by the Amazon ECS container agent (at instance registration time) and any task containers that have reserved port mappings on the host (with the <code>host</code> or <code>bridge</code> network mode). Any port that is not specified here is available for new tasks.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>versionInfo</i> The version information for the Amazon ECS container agent and Docker daemon running on the container instance.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>versionInfo</b>: The version information for the Amazon ECS container agent and Docker daemon running on the container instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The version counter for the container instance. Every time a container instance experiences a change that triggers a CloudWatch event, the version counter is incremented. If you are replicating your Amazon ECS container instance state with CloudWatch Events, you can compare the version of a container instance reported by the Amazon ECS APIs with the version reported in CloudWatch Events for the container instance (inside the <code>detail</code> object) to verify that the version in your event stream is current.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>capacityProviderName</i> The capacity provider associated with the container instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ec2InstanceId</i> The ID of the container instance. For Amazon EC2 instances, this value is the Amazon EC2 instance ID. For external instances, this value is the AWS Systems Manager managed instance ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>containerInstanceArn</i> The Amazon Resource Name (ARN) of the container instance. The ARN contains the <code>arn:aws:ecs</code> namespace, followed by the Region of the container instance, the AWS account ID of the container instance owner, the <code>container-instance</code> namespace, and then the container instance ID. For example, <code>arn:aws:ecs:region:aws_account_id:container-instance/container_instance_ID</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>dockerVersion</i> The Docker version running on the container instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>agentHash</i> The Git commit hash for the Amazon ECS container agent build on the <a href="https://github.com/aws/amazon-ecs-agent/commits/master">amazon-ecs-agent </a> GitHub repository.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>agentVersion</i> The version number of the Amazon ECS container agent.<br/>        """
        pass

    def deregister_task_definition(self, taskDefinition: str) -> DeregisterTaskDefinitionResponse:
        r"""Deregisters the specified task definition by family and revision. Upon deregistration, the task definition is marked as <code>INACTIVE</code>. Existing tasks and services that reference an <code>INACTIVE</code> task definition continue to run without disruption. Existing services that reference an <code>INACTIVE</code> task definition can still scale up or down by modifying the service's desired count. You cannot use an <code>INACTIVE</code> task definition to run new tasks or create new services, and you cannot update an existing service to reference an <code>INACTIVE</code> task definition. However, there may be up to a 10-minute window following deregistration where these restrictions have not yet taken effect. <note> At this time, <code>INACTIVE</code> task definitions remain discoverable in your account indefinitely. However, this behavior is subject to change in the future, so you should not rely on <code>INACTIVE</code> task definitions persisting beyond the lifecycle of any associated tasks and services. </note>

        :param self:
        :param taskDefinition:  The <code>family</code> and <code>revision</code> (<code>family:revision</code>) or full Amazon Resource Name (ARN) of the task definition to deregister. You must specify a <code>revision</code>.<br/>
        :return: taskDefinition:  The full description of the deregistered task.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ephemeralStorage</i> The ephemeral storage settings to use for tasks run with the task definition.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ephemeralStorage</b>: The ephemeral storage settings to use for tasks run with the task definition.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>registeredBy</i> The principal that registered the task definition.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deregisteredAt</i> The Unix timestamp for when the task definition was deregistered.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>registeredAt</i> The Unix timestamp for when the task definition was registered.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>proxyConfiguration</i> The configuration details for the App Mesh proxy. Your Amazon ECS container instances require at least version 1.26.0 of the container agent and at least version 1.26.0-1 of the <code>ecs-init</code> package to enable a proxy configuration. If your container instances are launched from the Amazon ECS-optimized AMI version <code>20190301</code> or later, then they contain the required versions of the container agent and <code>ecs-init</code>. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html">Amazon ECS-optimized Linux AMI</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>proxyConfiguration</b>: The configuration details for the App Mesh proxy. Your Amazon ECS container instances require at least version 1.26.0 of the container agent and at least version 1.26.0-1 of the <code>ecs-init</code> package to enable a proxy configuration. If your container instances are launched from the Amazon ECS-optimized AMI version <code>20190301</code> or later, then they contain the required versions of the container agent and <code>ecs-init</code>. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html">Amazon ECS-optimized Linux AMI</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ipcMode</i> The IPC resource namespace to use for the containers in the task. The valid values are <code>host</code>, <code>task</code>, or <code>none</code>. If <code>host</code> is specified, then all containers within the tasks that specified the <code>host</code> IPC mode on the same container instance share the same IPC resources with the host Amazon EC2 instance. If <code>task</code> is specified, all containers within the specified task share the same IPC resources. If <code>none</code> is specified, then IPC resources within the containers of a task are private and not shared with other containers in a task or on the container instance. If no value is specified, then the IPC resource namespace sharing depends on the Docker daemon setting on the container instance. For more information, see <a href="https://docs.docker.com/engine/reference/run/#ipc-settings---ipc">IPC settings</a> in the <i>Docker run reference</i>. If the <code>host</code> IPC mode is used, be aware that there is a heightened risk of undesired IPC namespace expose. For more information, see <a href="https://docs.docker.com/engine/security/security/">Docker security</a>. If you are setting namespaced kernel parameters using <code>systemControls</code> for the containers in the task, the following will apply to your IPC resource namespace. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html">System Controls</a> in the <i>Amazon Elastic Container Service Developer Guide</i>. <ul> <li> For tasks that use the <code>host</code> IPC mode, IPC namespace related <code>systemControls</code> are not supported. </li> <li> For tasks that use the <code>task</code> IPC mode, IPC namespace related <code>systemControls</code> will apply to all containers within a task. </li> </ul> <note> This parameter is not supported for Windows containers or tasks run on AWS Fargate. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>pidMode</i> The process namespace to use for the containers in the task. The valid values are <code>host</code> or <code>task</code>. If <code>host</code> is specified, then all containers within the tasks that specified the <code>host</code> PID mode on the same container instance share the same process namespace with the host Amazon EC2 instance. If <code>task</code> is specified, all containers within the specified task share the same process namespace. If no value is specified, the default is a private namespace. For more information, see <a href="https://docs.docker.com/engine/reference/run/#pid-settings---pid">PID settings</a> in the <i>Docker run reference</i>. If the <code>host</code> PID mode is used, be aware that there is a heightened risk of undesired process namespace expose. For more information, see <a href="https://docs.docker.com/engine/security/security/">Docker security</a>. <note> This parameter is not supported for Windows containers or tasks run on AWS Fargate. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>inferenceAccelerators</i> The Elastic Inference accelerator associated with the task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>memory</i> The amount (in MiB) of memory used by the task. If your tasks will be run on Amazon EC2 instances, you must specify either a task-level memory value or a container-level memory value. This field is optional and any value can be used. If a task-level memory value is specified then the container-level memory value is optional. For more information regarding container-level memory and memory reservation, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ContainerDefinition.html">ContainerDefinition</a>. If your tasks will be run on AWS Fargate, this field is required and you must use one of the following values, which determines your range of valid values for the <code>cpu</code> parameter: <ul> <li> 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available <code>cpu</code> values: 256 (.25 vCPU) </li> <li> 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available <code>cpu</code> values: 512 (.5 vCPU) </li> <li> 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available <code>cpu</code> values: 1024 (1 vCPU) </li> <li> Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) - Available <code>cpu</code> values: 2048 (2 vCPU) </li> <li> Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) - Available <code>cpu</code> values: 4096 (4 vCPU) </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>cpu</i> The number of <code>cpu</code> units used by the task. If you are using the EC2 launch type, this field is optional and any value can be used. If you are using the Fargate launch type, this field is required and you must use one of the following values, which determines your range of valid values for the <code>memory</code> parameter: <ul> <li> 256 (.25 vCPU) - Available <code>memory</code> values: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) </li> <li> 512 (.5 vCPU) - Available <code>memory</code> values: 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) </li> <li> 1024 (1 vCPU) - Available <code>memory</code> values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) </li> <li> 2048 (2 vCPU) - Available <code>memory</code> values: Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) </li> <li> 4096 (4 vCPU) - Available <code>memory</code> values: Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>requiresCompatibilities</i> The task launch types the task definition was validated against. To determine which task launch types the task definition is validated for, see the <a>TaskDefinition$compatibilities</a> parameter.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>compatibilities</i> The task launch types the task definition validated against during task definition registration. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html">Amazon ECS launch types</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>placementConstraints</i> An array of placement constraint objects to use for tasks. <note> This parameter is not supported for tasks run on AWS Fargate. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>requiresAttributes</i> The container instance attributes required by your task. When an Amazon EC2 instance is registered to your cluster, the Amazon ECS container agent assigns some standard attributes to the instance. You can apply custom attributes, specified as key-value pairs using the Amazon ECS console or the <a>PutAttributes</a> API. These attributes are used when considering task placement for tasks hosted on Amazon EC2 instances. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-constraints.html#attributes">Attributes</a> in the <i>Amazon Elastic Container Service Developer Guide</i>. <note> This parameter is not supported for tasks run on AWS Fargate. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the task definition.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>volumes</i> The list of data volume definitions for the task. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_data_volumes.html">Using data volumes in tasks</a> in the <i>Amazon Elastic Container Service Developer Guide</i>. <note> The <code>host</code> and <code>sourcePath</code> parameters are not supported for tasks run on AWS Fargate. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>revision</i> The revision of the task in a particular family. The revision is a version number of a task definition in a family. When you register a task definition for the first time, the revision is <code>1</code>. Each time that you register a new revision of a task definition in the same family, the revision value always increases by one, even if you have deregistered previous revisions in this family.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>networkMode</i> The Docker networking mode to use for the containers in the task. The valid values are <code>none</code>, <code>bridge</code>, <code>awsvpc</code>, and <code>host</code>. If no network mode is specified, the default is <code>bridge</code>. For Amazon ECS tasks on Fargate, the <code>awsvpc</code> network mode is required. For Amazon ECS tasks on Amazon EC2 instances, any network mode can be used. If the network mode is set to <code>none</code>, you cannot specify port mappings in your container definitions, and the tasks containers do not have external connectivity. The <code>host</code> and <code>awsvpc</code> network modes offer the highest networking performance for containers because they use the EC2 network stack instead of the virtualized network stack provided by the <code>bridge</code> mode. With the <code>host</code> and <code>awsvpc</code> network modes, exposed container ports are mapped directly to the corresponding host port (for the <code>host</code> network mode) or the attached elastic network interface port (for the <code>awsvpc</code> network mode), so you cannot take advantage of dynamic host port mappings.  <important> When using the <code>host</code> network mode, you should not run containers using the root user (UID 0). It is considered best practice to use a non-root user. </important> If the network mode is <code>awsvpc</code>, the task is allocated an elastic network interface, and you must specify a <a>NetworkConfiguration</a> value when you create a service or run a task with the task definition. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html">Task Networking</a> in the <i>Amazon Elastic Container Service Developer Guide</i>. <note> Currently, only Amazon ECS-optimized AMIs, other Amazon Linux variants with the <code>ecs-init</code> package, or AWS Fargate infrastructure support the <code>awsvpc</code> network mode.  </note> If the network mode is <code>host</code>, you cannot run multiple instantiations of the same task on a single container instance when port mappings are used. Docker for Windows uses different network modes than Docker for Linux. When you register a task definition with Windows containers, you must not specify a network mode. If you use the console to register a task definition with Windows containers, you must choose the <code>&lt;default&gt;</code> network mode object.  For more information, see <a href="https://docs.docker.com/engine/reference/run/#network-settings">Network settings</a> in the <i>Docker run reference</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>executionRoleArn</i> The Amazon Resource Name (ARN) of the task execution role that grants the Amazon ECS container agent permission to make AWS API calls on your behalf. The task execution IAM role is required depending on the requirements of your task. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_execution_IAM_role.html">Amazon ECS task execution IAM role</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>taskRoleArn</i> The short name or full Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that grants containers in the task permission to call AWS APIs on your behalf. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html">Amazon ECS Task Role</a> in the <i>Amazon Elastic Container Service Developer Guide</i>. IAM roles for tasks on Windows require that the <code>-EnableTaskIAMRole</code> option is set when you launch the Amazon ECS-optimized Windows AMI. Your containers must also run some configuration code in order to take advantage of the feature. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows_task_IAM_roles.html">Windows IAM roles for tasks</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>family</i> The name of a family that this task definition is registered to. Up to 255 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed. A family groups multiple versions of a task definition. Amazon ECS gives the first task definition that you registered to a family a revision number of 1. Amazon ECS gives sequential revision numbers to each task definition that you add.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>containerDefinitions</i> A list of container definitions in JSON format that describe the different containers that make up your task. For more information about container definition parameters and defaults, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_defintions.html">Amazon ECS Task Definitions</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>taskDefinitionArn</i> The full Amazon Resource Name (ARN) of the task definition.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>properties</i> The set of network configuration parameters to provide the Container Network Interface (CNI) plugin, specified as key-value pairs. <ul> <li>  <code>IgnoredUID</code> - (Required) The user ID (UID) of the proxy container as defined by the <code>user</code> parameter in a container definition. This is used to ensure the proxy ignores its own traffic. If <code>IgnoredGID</code> is specified, this field can be empty. </li> <li>  <code>IgnoredGID</code> - (Required) The group ID (GID) of the proxy container as defined by the <code>user</code> parameter in a container definition. This is used to ensure the proxy ignores its own traffic. If <code>IgnoredUID</code> is specified, this field can be empty. </li> <li>  <code>AppPorts</code> - (Required) The list of ports that the application uses. Network traffic to these ports is forwarded to the <code>ProxyIngressPort</code> and <code>ProxyEgressPort</code>. </li> <li>  <code>ProxyIngressPort</code> - (Required) Specifies the port that incoming traffic to the <code>AppPorts</code> is directed to. </li> <li>  <code>ProxyEgressPort</code> - (Required) Specifies the port that outgoing traffic from the <code>AppPorts</code> is directed to. </li> <li>  <code>EgressIgnoredPorts</code> - (Required) The egress traffic going to the specified ports is ignored and not redirected to the <code>ProxyEgressPort</code>. It can be an empty list. </li> <li>  <code>EgressIgnoredIPs</code> - (Required) The egress traffic going to the specified IP addresses is ignored and not redirected to the <code>ProxyEgressPort</code>. It can be an empty list. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>containerName</i> The name of the container that will serve as the App Mesh proxy.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The proxy type. The only supported value is <code>APPMESH</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>sizeInGiB</i> The total amount, in GiB, of ephemeral storage to set for the task. The minimum supported value is <code>21</code> GiB and the maximum supported value is <code>200</code> GiB.<br/>        """
        pass

    def describe_capacity_providers(self, capacityProviders: List[String]=None, include: List[CapacityProviderField]=None, maxResults: int=None, nextToken: str=None) -> DescribeCapacityProvidersResponse:
        r"""Describes one or more of your capacity providers.

        :param self:
        :param nextToken:  The <code>nextToken</code> value returned from a previous paginated <code>DescribeCapacityProviders</code> request where <code>maxResults</code> was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the <code>nextToken</code> value. <note> This token should be treated as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes. </note><br/>maxResults:  The maximum number of account setting results returned by <code>DescribeCapacityProviders</code> in paginated output. When this parameter is used, <code>DescribeCapacityProviders</code> only returns <code>maxResults</code> results in a single page along with a <code>nextToken</code> response element. The remaining results of the initial request can be seen by sending another <code>DescribeCapacityProviders</code> request with the returned <code>nextToken</code> value. This value can be between 1 and 10. If this parameter is not used, then <code>DescribeCapacityProviders</code> returns up to 10 results and a <code>nextToken</code> value if applicable.<br/>include:  Specifies whether or not you want to see the resource tags for the capacity provider. If <code>TAGS</code> is specified, the tags are included in the response. If this field is omitted, tags are not included in the response.<br/>capacityProviders:  The short name or full Amazon Resource Name (ARN) of one or more capacity providers. Up to <code>100</code> capacity providers can be described in an action.<br/>
        :return: nextToken:  The <code>nextToken</code> value to include in a future <code>DescribeCapacityProviders</code> request. When the results of a <code>DescribeCapacityProviders</code> request exceed <code>maxResults</code>, this value can be used to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>failures:  Any failures associated with the call.<br/>capacityProviders:  The list of capacity providers.<br/>        """
        pass

    def describe_clusters(self, clusters: List[String]=None, include: List[ClusterField]=None) -> DescribeClustersResponse:
        r"""Describes one or more of your clusters.

        :param self:
        :param include:  Whether to include additional information about the clusters in the response. If this field is omitted, this information isn't included. If <code>ATTACHMENTS</code> is specified, the attachments for the container instances or tasks within the cluster are included. If <code>SETTINGS</code> is specified, the settings for the cluster are included. If <code>STATISTICS</code> is specified, the task and service count is included, separated by launch type. If <code>TAGS</code> is specified, the metadata tags associated with the cluster are included.<br/>clusters:  A list of up to 100 cluster names or full cluster Amazon Resource Name (ARN) entries. If you do not specify a cluster, the default cluster is assumed.<br/>
        :return: failures:  Any failures associated with the call.<br/>clusters:  The list of clusters.<br/>        """
        pass

    def describe_container_instances(self, containerInstances: List[String], cluster: str=None, include: List[ContainerInstanceField]=None) -> DescribeContainerInstancesResponse:
        r"""Describes one or more container instances. Returns metadata about each container instance requested.

        :param self:
        :param include:  Specifies whether you want to see the resource tags for the container instance. If <code>TAGS</code> is specified, the tags are included in the response. If this field is omitted, tags are not included in the response.<br/>containerInstances:  A list of up to 100 container instance IDs or full Amazon Resource Name (ARN) entries.<br/>cluster:  The short name or full Amazon Resource Name (ARN) of the cluster that hosts the container instances to describe. If you do not specify a cluster, the default cluster is assumed. This parameter is required if the container instance or container instances you are describing were launched in any cluster other than the default cluster.<br/>
        :return: failures:  Any failures associated with the call.<br/>containerInstances:  The list of container instances.<br/>        """
        pass

    def describe_services(self, services: List[String], cluster: str=None, include: List[ServiceField]=None) -> DescribeServicesResponse:
        r"""Describes the specified services running in your cluster.

        :param self:
        :param include:  Specifies whether you want to see the resource tags for the service. If <code>TAGS</code> is specified, the tags are included in the response. If this field is omitted, tags are not included in the response.<br/>services:  A list of services to describe. You may specify up to 10 services to describe in a single operation.<br/>cluster:  The short name or full Amazon Resource Name (ARN)the cluster that hosts the service to describe. If you do not specify a cluster, the default cluster is assumed. This parameter is required if the service or services you are describing were launched in any cluster other than the default cluster.<br/>
        :return: failures:  Any failures associated with the call.<br/>services:  The list of services described.<br/>        """
        pass

    def describe_task_definition(self, taskDefinition: str, include: List[TaskDefinitionField]=None) -> DescribeTaskDefinitionResponse:
        r"""Describes a task definition. You can specify a <code>family</code> and <code>revision</code> to find information about a specific task definition, or you can simply specify the family to find the latest <code>ACTIVE</code> revision in that family. <note> You can only describe <code>INACTIVE</code> task definitions while an active task or service references them. </note>

        :param self:
        :param include:  Specifies whether to see the resource tags for the task definition. If <code>TAGS</code> is specified, the tags are included in the response. If this field is omitted, tags are not included in the response.<br/>taskDefinition:  The <code>family</code> for the latest <code>ACTIVE</code> revision, <code>family</code> and <code>revision</code> (<code>family:revision</code>) for a specific revision in the family, or full Amazon Resource Name (ARN) of the task definition to describe.<br/>
        :return: tags:  The metadata that is applied to the task definition to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define. The following basic restrictions apply to tags: <ul> <li> Maximum number of tags per resource - 50 </li> <li> For each resource, each tag key must be unique, and each tag key can have only one value. </li> <li> Maximum key length - 128 Unicode characters in UTF-8 </li> <li> Maximum value length - 256 Unicode characters in UTF-8 </li> <li> If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @. </li> <li> Tag keys and values are case-sensitive. </li> <li> Do not use <code>aws:</code>, <code>AWS:</code>, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit. </li> </ul><br/>taskDefinition:  The full task definition description.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ephemeralStorage</i> The ephemeral storage settings to use for tasks run with the task definition.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ephemeralStorage</b>: The ephemeral storage settings to use for tasks run with the task definition.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>registeredBy</i> The principal that registered the task definition.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deregisteredAt</i> The Unix timestamp for when the task definition was deregistered.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>registeredAt</i> The Unix timestamp for when the task definition was registered.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>proxyConfiguration</i> The configuration details for the App Mesh proxy. Your Amazon ECS container instances require at least version 1.26.0 of the container agent and at least version 1.26.0-1 of the <code>ecs-init</code> package to enable a proxy configuration. If your container instances are launched from the Amazon ECS-optimized AMI version <code>20190301</code> or later, then they contain the required versions of the container agent and <code>ecs-init</code>. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html">Amazon ECS-optimized Linux AMI</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>proxyConfiguration</b>: The configuration details for the App Mesh proxy. Your Amazon ECS container instances require at least version 1.26.0 of the container agent and at least version 1.26.0-1 of the <code>ecs-init</code> package to enable a proxy configuration. If your container instances are launched from the Amazon ECS-optimized AMI version <code>20190301</code> or later, then they contain the required versions of the container agent and <code>ecs-init</code>. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html">Amazon ECS-optimized Linux AMI</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ipcMode</i> The IPC resource namespace to use for the containers in the task. The valid values are <code>host</code>, <code>task</code>, or <code>none</code>. If <code>host</code> is specified, then all containers within the tasks that specified the <code>host</code> IPC mode on the same container instance share the same IPC resources with the host Amazon EC2 instance. If <code>task</code> is specified, all containers within the specified task share the same IPC resources. If <code>none</code> is specified, then IPC resources within the containers of a task are private and not shared with other containers in a task or on the container instance. If no value is specified, then the IPC resource namespace sharing depends on the Docker daemon setting on the container instance. For more information, see <a href="https://docs.docker.com/engine/reference/run/#ipc-settings---ipc">IPC settings</a> in the <i>Docker run reference</i>. If the <code>host</code> IPC mode is used, be aware that there is a heightened risk of undesired IPC namespace expose. For more information, see <a href="https://docs.docker.com/engine/security/security/">Docker security</a>. If you are setting namespaced kernel parameters using <code>systemControls</code> for the containers in the task, the following will apply to your IPC resource namespace. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html">System Controls</a> in the <i>Amazon Elastic Container Service Developer Guide</i>. <ul> <li> For tasks that use the <code>host</code> IPC mode, IPC namespace related <code>systemControls</code> are not supported. </li> <li> For tasks that use the <code>task</code> IPC mode, IPC namespace related <code>systemControls</code> will apply to all containers within a task. </li> </ul> <note> This parameter is not supported for Windows containers or tasks run on AWS Fargate. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>pidMode</i> The process namespace to use for the containers in the task. The valid values are <code>host</code> or <code>task</code>. If <code>host</code> is specified, then all containers within the tasks that specified the <code>host</code> PID mode on the same container instance share the same process namespace with the host Amazon EC2 instance. If <code>task</code> is specified, all containers within the specified task share the same process namespace. If no value is specified, the default is a private namespace. For more information, see <a href="https://docs.docker.com/engine/reference/run/#pid-settings---pid">PID settings</a> in the <i>Docker run reference</i>. If the <code>host</code> PID mode is used, be aware that there is a heightened risk of undesired process namespace expose. For more information, see <a href="https://docs.docker.com/engine/security/security/">Docker security</a>. <note> This parameter is not supported for Windows containers or tasks run on AWS Fargate. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>inferenceAccelerators</i> The Elastic Inference accelerator associated with the task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>memory</i> The amount (in MiB) of memory used by the task. If your tasks will be run on Amazon EC2 instances, you must specify either a task-level memory value or a container-level memory value. This field is optional and any value can be used. If a task-level memory value is specified then the container-level memory value is optional. For more information regarding container-level memory and memory reservation, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ContainerDefinition.html">ContainerDefinition</a>. If your tasks will be run on AWS Fargate, this field is required and you must use one of the following values, which determines your range of valid values for the <code>cpu</code> parameter: <ul> <li> 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available <code>cpu</code> values: 256 (.25 vCPU) </li> <li> 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available <code>cpu</code> values: 512 (.5 vCPU) </li> <li> 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available <code>cpu</code> values: 1024 (1 vCPU) </li> <li> Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) - Available <code>cpu</code> values: 2048 (2 vCPU) </li> <li> Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) - Available <code>cpu</code> values: 4096 (4 vCPU) </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>cpu</i> The number of <code>cpu</code> units used by the task. If you are using the EC2 launch type, this field is optional and any value can be used. If you are using the Fargate launch type, this field is required and you must use one of the following values, which determines your range of valid values for the <code>memory</code> parameter: <ul> <li> 256 (.25 vCPU) - Available <code>memory</code> values: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) </li> <li> 512 (.5 vCPU) - Available <code>memory</code> values: 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) </li> <li> 1024 (1 vCPU) - Available <code>memory</code> values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) </li> <li> 2048 (2 vCPU) - Available <code>memory</code> values: Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) </li> <li> 4096 (4 vCPU) - Available <code>memory</code> values: Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>requiresCompatibilities</i> The task launch types the task definition was validated against. To determine which task launch types the task definition is validated for, see the <a>TaskDefinition$compatibilities</a> parameter.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>compatibilities</i> The task launch types the task definition validated against during task definition registration. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html">Amazon ECS launch types</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>placementConstraints</i> An array of placement constraint objects to use for tasks. <note> This parameter is not supported for tasks run on AWS Fargate. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>requiresAttributes</i> The container instance attributes required by your task. When an Amazon EC2 instance is registered to your cluster, the Amazon ECS container agent assigns some standard attributes to the instance. You can apply custom attributes, specified as key-value pairs using the Amazon ECS console or the <a>PutAttributes</a> API. These attributes are used when considering task placement for tasks hosted on Amazon EC2 instances. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-constraints.html#attributes">Attributes</a> in the <i>Amazon Elastic Container Service Developer Guide</i>. <note> This parameter is not supported for tasks run on AWS Fargate. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the task definition.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>volumes</i> The list of data volume definitions for the task. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_data_volumes.html">Using data volumes in tasks</a> in the <i>Amazon Elastic Container Service Developer Guide</i>. <note> The <code>host</code> and <code>sourcePath</code> parameters are not supported for tasks run on AWS Fargate. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>revision</i> The revision of the task in a particular family. The revision is a version number of a task definition in a family. When you register a task definition for the first time, the revision is <code>1</code>. Each time that you register a new revision of a task definition in the same family, the revision value always increases by one, even if you have deregistered previous revisions in this family.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>networkMode</i> The Docker networking mode to use for the containers in the task. The valid values are <code>none</code>, <code>bridge</code>, <code>awsvpc</code>, and <code>host</code>. If no network mode is specified, the default is <code>bridge</code>. For Amazon ECS tasks on Fargate, the <code>awsvpc</code> network mode is required. For Amazon ECS tasks on Amazon EC2 instances, any network mode can be used. If the network mode is set to <code>none</code>, you cannot specify port mappings in your container definitions, and the tasks containers do not have external connectivity. The <code>host</code> and <code>awsvpc</code> network modes offer the highest networking performance for containers because they use the EC2 network stack instead of the virtualized network stack provided by the <code>bridge</code> mode. With the <code>host</code> and <code>awsvpc</code> network modes, exposed container ports are mapped directly to the corresponding host port (for the <code>host</code> network mode) or the attached elastic network interface port (for the <code>awsvpc</code> network mode), so you cannot take advantage of dynamic host port mappings.  <important> When using the <code>host</code> network mode, you should not run containers using the root user (UID 0). It is considered best practice to use a non-root user. </important> If the network mode is <code>awsvpc</code>, the task is allocated an elastic network interface, and you must specify a <a>NetworkConfiguration</a> value when you create a service or run a task with the task definition. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html">Task Networking</a> in the <i>Amazon Elastic Container Service Developer Guide</i>. <note> Currently, only Amazon ECS-optimized AMIs, other Amazon Linux variants with the <code>ecs-init</code> package, or AWS Fargate infrastructure support the <code>awsvpc</code> network mode.  </note> If the network mode is <code>host</code>, you cannot run multiple instantiations of the same task on a single container instance when port mappings are used. Docker for Windows uses different network modes than Docker for Linux. When you register a task definition with Windows containers, you must not specify a network mode. If you use the console to register a task definition with Windows containers, you must choose the <code>&lt;default&gt;</code> network mode object.  For more information, see <a href="https://docs.docker.com/engine/reference/run/#network-settings">Network settings</a> in the <i>Docker run reference</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>executionRoleArn</i> The Amazon Resource Name (ARN) of the task execution role that grants the Amazon ECS container agent permission to make AWS API calls on your behalf. The task execution IAM role is required depending on the requirements of your task. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_execution_IAM_role.html">Amazon ECS task execution IAM role</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>taskRoleArn</i> The short name or full Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that grants containers in the task permission to call AWS APIs on your behalf. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html">Amazon ECS Task Role</a> in the <i>Amazon Elastic Container Service Developer Guide</i>. IAM roles for tasks on Windows require that the <code>-EnableTaskIAMRole</code> option is set when you launch the Amazon ECS-optimized Windows AMI. Your containers must also run some configuration code in order to take advantage of the feature. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows_task_IAM_roles.html">Windows IAM roles for tasks</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>family</i> The name of a family that this task definition is registered to. Up to 255 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed. A family groups multiple versions of a task definition. Amazon ECS gives the first task definition that you registered to a family a revision number of 1. Amazon ECS gives sequential revision numbers to each task definition that you add.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>containerDefinitions</i> A list of container definitions in JSON format that describe the different containers that make up your task. For more information about container definition parameters and defaults, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_defintions.html">Amazon ECS Task Definitions</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>taskDefinitionArn</i> The full Amazon Resource Name (ARN) of the task definition.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>properties</i> The set of network configuration parameters to provide the Container Network Interface (CNI) plugin, specified as key-value pairs. <ul> <li>  <code>IgnoredUID</code> - (Required) The user ID (UID) of the proxy container as defined by the <code>user</code> parameter in a container definition. This is used to ensure the proxy ignores its own traffic. If <code>IgnoredGID</code> is specified, this field can be empty. </li> <li>  <code>IgnoredGID</code> - (Required) The group ID (GID) of the proxy container as defined by the <code>user</code> parameter in a container definition. This is used to ensure the proxy ignores its own traffic. If <code>IgnoredUID</code> is specified, this field can be empty. </li> <li>  <code>AppPorts</code> - (Required) The list of ports that the application uses. Network traffic to these ports is forwarded to the <code>ProxyIngressPort</code> and <code>ProxyEgressPort</code>. </li> <li>  <code>ProxyIngressPort</code> - (Required) Specifies the port that incoming traffic to the <code>AppPorts</code> is directed to. </li> <li>  <code>ProxyEgressPort</code> - (Required) Specifies the port that outgoing traffic from the <code>AppPorts</code> is directed to. </li> <li>  <code>EgressIgnoredPorts</code> - (Required) The egress traffic going to the specified ports is ignored and not redirected to the <code>ProxyEgressPort</code>. It can be an empty list. </li> <li>  <code>EgressIgnoredIPs</code> - (Required) The egress traffic going to the specified IP addresses is ignored and not redirected to the <code>ProxyEgressPort</code>. It can be an empty list. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>containerName</i> The name of the container that will serve as the App Mesh proxy.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The proxy type. The only supported value is <code>APPMESH</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>sizeInGiB</i> The total amount, in GiB, of ephemeral storage to set for the task. The minimum supported value is <code>21</code> GiB and the maximum supported value is <code>200</code> GiB.<br/>        """
        pass

    def describe_task_sets(self, service: str, cluster: str, taskSets: List[String]=None, include: List[TaskSetField]=None) -> DescribeTaskSetsResponse:
        r"""Describes the task sets in the specified cluster and service. This is used when a service uses the <code>EXTERNAL</code> deployment controller type. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html">Amazon ECS Deployment Types</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.

        :param self:
        :param include:  Specifies whether to see the resource tags for the task set. If <code>TAGS</code> is specified, the tags are included in the response. If this field is omitted, tags are not included in the response.<br/>taskSets:  The ID or full Amazon Resource Name (ARN) of task sets to describe.<br/>service:  The short name or full Amazon Resource Name (ARN) of the service that the task sets exist in.<br/>cluster:  The short name or full Amazon Resource Name (ARN) of the cluster that hosts the service that the task sets exist in.<br/>
        :return: failures:  Any failures associated with the call.<br/>taskSets:  The list of task sets described.<br/>        """
        pass

    def describe_tasks(self, tasks: List[String], cluster: str=None, include: List[TaskField]=None) -> DescribeTasksResponse:
        r"""Describes a specified task or tasks.

        :param self:
        :param include:  Specifies whether you want to see the resource tags for the task. If <code>TAGS</code> is specified, the tags are included in the response. If this field is omitted, tags are not included in the response.<br/>tasks:  A list of up to 100 task IDs or full ARN entries.<br/>cluster:  The short name or full Amazon Resource Name (ARN) of the cluster that hosts the task or tasks to describe. If you do not specify a cluster, the default cluster is assumed. This parameter is required if the task or tasks you are describing were launched in any cluster other than the default cluster.<br/>
        :return: failures:  Any failures associated with the call.<br/>tasks:  The list of tasks.<br/>        """
        pass

    def discover_poll_endpoint(self, containerInstance: str=None, cluster: str=None) -> DiscoverPollEndpointResponse:
        r"""<note> This action is only used by the Amazon ECS agent, and it is not intended for use outside of the agent. </note> Returns an endpoint for the Amazon ECS agent to poll for updates.

        :param self:
        :param cluster:  The short name or full Amazon Resource Name (ARN) of the cluster to which the container instance belongs.<br/>containerInstance:  The container instance ID or full ARN of the container instance. The ARN contains the <code>arn:aws:ecs</code> namespace, followed by the Region of the container instance, the AWS account ID of the container instance owner, the <code>container-instance</code> namespace, and then the container instance ID. For example, <code>arn:aws:ecs:region:aws_account_id:container-instance/container_instance_ID</code>.<br/>
        :return: telemetryEndpoint:  The telemetry endpoint for the Amazon ECS agent.<br/>endpoint:  The endpoint for the Amazon ECS agent to poll.<br/>        """
        pass

    def execute_command(self, task: str, interactive: Boolean, command: str, cluster: str=None, container: str=None) -> ExecuteCommandResponse:
        r"""Runs a command remotely on a container within a task.

        :param self:
        :param task:  The Amazon Resource Name (ARN) or ID of the task the container is part of.<br/>interactive:  Use this flag to run your command in interactive mode.<br/>command:  The command to run on the container.<br/>container:  The name of the container to execute the command on. A container name only needs to be specified for tasks containing multiple containers.<br/>cluster:  The Amazon Resource Name (ARN) or short name of the cluster the task is running in. If you do not specify a cluster, the default cluster is assumed.<br/>
        :return: taskArn:  The Amazon Resource Name (ARN) of the task.<br/>session:  The details of the SSM session that was created for this instance of execute-command.:<br/>interactive:  Whether or not the execute command session is running in interactive mode. Amazon ECS only supports initiating interactive sessions, so you must specify <code>true</code> for this value.<br/>containerName:  The name of the container.<br/>containerArn:  The Amazon Resource Name (ARN) of the container.<br/>clusterArn:  The Amazon Resource Name (ARN) of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tokenValue</i> An encrypted token value containing session and caller information. Used to authenticate the connection to the container.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>streamUrl</i> A URL back to managed agent on the container that the SSM Session Manager client uses to send commands and receive output from the container.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>sessionId</i> The ID of the execute command session.<br/>        """
        pass

    def list_account_settings(self, name: str=None, value: str=None, principalArn: str=None, effectiveSettings: Boolean=None, nextToken: str=None, maxResults: int=None) -> ListAccountSettingsResponse:
        r"""Lists the account settings for a specified principal.

        :param self:
        :param maxResults:  The maximum number of account setting results returned by <code>ListAccountSettings</code> in paginated output. When this parameter is used, <code>ListAccountSettings</code> only returns <code>maxResults</code> results in a single page along with a <code>nextToken</code> response element. The remaining results of the initial request can be seen by sending another <code>ListAccountSettings</code> request with the returned <code>nextToken</code> value. This value can be between 1 and 10. If this parameter is not used, then <code>ListAccountSettings</code> returns up to 10 results and a <code>nextToken</code> value if applicable.<br/>nextToken:  The <code>nextToken</code> value returned from a <code>ListAccountSettings</code> request indicating that more results are available to fulfill the request and further calls will be needed. If <code>maxResults</code> was provided, it is possible the number of results to be fewer than <code>maxResults</code>. <note> This token should be treated as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes. </note><br/>effectiveSettings:  Specifies whether to return the effective settings. If <code>true</code>, the account settings for the root user or the default setting for the <code>principalArn</code> are returned. If <code>false</code>, the account settings for the <code>principalArn</code> are returned if they are set. Otherwise, no account settings are returned.<br/>principalArn:  The ARN of the principal, which can be an IAM user, IAM role, or the root user. If this field is omitted, the account settings are listed only for the authenticated user. <note> Federated users assume the account setting of the root user and can't have explicit account settings set for them. </note><br/>value:  The value of the account settings with which to filter results. You must also specify an account setting name to use this parameter.<br/>name:  The name of the account setting you want to list the settings for.<br/>
        :return: nextToken:  The <code>nextToken</code> value to include in a future <code>ListAccountSettings</code> request. When the results of a <code>ListAccountSettings</code> request exceed <code>maxResults</code>, this value can be used to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>settings:  The account settings for the resource.<br/>        """
        pass

    def list_attributes(self, targetType: str, cluster: str=None, attributeName: str=None, attributeValue: str=None, nextToken: str=None, maxResults: int=None) -> ListAttributesResponse:
        r"""Lists the attributes for Amazon ECS resources within a specified target type and cluster. When you specify a target type and cluster, <code>ListAttributes</code> returns a list of attribute objects, one for each attribute on each resource. You can filter the list of results to a single attribute name to only return results that have that name. You can also filter the results by attribute name and value, for example, to see which container instances in a cluster are running a Linux AMI (<code>ecs.os-type=linux</code>). 

        :param self:
        :param maxResults:  The maximum number of cluster results returned by <code>ListAttributes</code> in paginated output. When this parameter is used, <code>ListAttributes</code> only returns <code>maxResults</code> results in a single page along with a <code>nextToken</code> response element. The remaining results of the initial request can be seen by sending another <code>ListAttributes</code> request with the returned <code>nextToken</code> value. This value can be between 1 and 100. If this parameter is not used, then <code>ListAttributes</code> returns up to 100 results and a <code>nextToken</code> value if applicable.<br/>nextToken:  The <code>nextToken</code> value returned from a <code>ListAttributes</code> request indicating that more results are available to fulfill the request and further calls will be needed. If <code>maxResults</code> was provided, it is possible the number of results to be fewer than <code>maxResults</code>. <note> This token should be treated as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes. </note><br/>attributeValue:  The value of the attribute with which to filter results. You must also specify an attribute name to use this parameter.<br/>attributeName:  The name of the attribute with which to filter the results. <br/>targetType:  The type of the target with which to list attributes.<br/>cluster:  The short name or full Amazon Resource Name (ARN) of the cluster to list attributes. If you do not specify a cluster, the default cluster is assumed.<br/>
        :return: nextToken:  The <code>nextToken</code> value to include in a future <code>ListAttributes</code> request. When the results of a <code>ListAttributes</code> request exceed <code>maxResults</code>, this value can be used to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>attributes:  A list of attribute objects that meet the criteria of the request.<br/>        """
        pass

    def list_clusters(self, nextToken: str=None, maxResults: int=None) -> ListClustersResponse:
        r"""Returns a list of existing clusters.

        :param self:
        :param maxResults:  The maximum number of cluster results returned by <code>ListClusters</code> in paginated output. When this parameter is used, <code>ListClusters</code> only returns <code>maxResults</code> results in a single page along with a <code>nextToken</code> response element. The remaining results of the initial request can be seen by sending another <code>ListClusters</code> request with the returned <code>nextToken</code> value. This value can be between 1 and 100. If this parameter is not used, then <code>ListClusters</code> returns up to 100 results and a <code>nextToken</code> value if applicable.<br/>nextToken:  The <code>nextToken</code> value returned from a <code>ListClusters</code> request indicating that more results are available to fulfill the request and further calls will be needed. If <code>maxResults</code> was provided, it is possible the number of results to be fewer than <code>maxResults</code>. <note> This token should be treated as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes. </note><br/>
        :return: nextToken:  The <code>nextToken</code> value to include in a future <code>ListClusters</code> request. When the results of a <code>ListClusters</code> request exceed <code>maxResults</code>, this value can be used to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>clusterArns:  The list of full Amazon Resource Name (ARN) entries for each cluster associated with your account.<br/>        """
        pass

    def list_container_instances(self, cluster: str=None, filter: str=None, nextToken: str=None, maxResults: int=None, status: str=None) -> ListContainerInstancesResponse:
        r"""Returns a list of container instances in a specified cluster. You can filter the results of a <code>ListContainerInstances</code> operation with cluster query language statements inside the <code>filter</code> parameter. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html">Cluster Query Language</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.

        :param self:
        :param status:  Filters the container instances by status. For example, if you specify the <code>DRAINING</code> status, the results include only container instances that have been set to <code>DRAINING</code> using <a>UpdateContainerInstancesState</a>. If you do not specify this parameter, the default is to include container instances set to all states other than <code>INACTIVE</code>.<br/>maxResults:  The maximum number of container instance results returned by <code>ListContainerInstances</code> in paginated output. When this parameter is used, <code>ListContainerInstances</code> only returns <code>maxResults</code> results in a single page along with a <code>nextToken</code> response element. The remaining results of the initial request can be seen by sending another <code>ListContainerInstances</code> request with the returned <code>nextToken</code> value. This value can be between 1 and 100. If this parameter is not used, then <code>ListContainerInstances</code> returns up to 100 results and a <code>nextToken</code> value if applicable.<br/>nextToken:  The <code>nextToken</code> value returned from a <code>ListContainerInstances</code> request indicating that more results are available to fulfill the request and further calls will be needed. If <code>maxResults</code> was provided, it is possible the number of results to be fewer than <code>maxResults</code>. <note> This token should be treated as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes. </note><br/>filter:  You can filter the results of a <code>ListContainerInstances</code> operation with cluster query language statements. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html">Cluster Query Language</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.<br/>cluster:  The short name or full Amazon Resource Name (ARN) of the cluster that hosts the container instances to list. If you do not specify a cluster, the default cluster is assumed.<br/>
        :return: nextToken:  The <code>nextToken</code> value to include in a future <code>ListContainerInstances</code> request. When the results of a <code>ListContainerInstances</code> request exceed <code>maxResults</code>, this value can be used to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>containerInstanceArns:  The list of container instances with full ARN entries for each container instance associated with the specified cluster.<br/>        """
        pass

    def list_services(self, cluster: str=None, nextToken: str=None, maxResults: int=None, launchType: str=None, schedulingStrategy: str=None) -> ListServicesResponse:
        r"""Returns a list of services. You can filter the results by cluster, launch type, and scheduling strategy.

        :param self:
        :param schedulingStrategy:  The scheduling strategy to use when filtering the <code>ListServices</code> results.<br/>launchType:  The launch type to use when filtering the <code>ListServices</code> results.<br/>maxResults:  The maximum number of service results returned by <code>ListServices</code> in paginated output. When this parameter is used, <code>ListServices</code> only returns <code>maxResults</code> results in a single page along with a <code>nextToken</code> response element. The remaining results of the initial request can be seen by sending another <code>ListServices</code> request with the returned <code>nextToken</code> value. This value can be between 1 and 100. If this parameter is not used, then <code>ListServices</code> returns up to 10 results and a <code>nextToken</code> value if applicable.<br/>nextToken:  The <code>nextToken</code> value returned from a <code>ListServices</code> request indicating that more results are available to fulfill the request and further calls will be needed. If <code>maxResults</code> was provided, it is possible the number of results to be fewer than <code>maxResults</code>. <note> This token should be treated as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes. </note><br/>cluster:  The short name or full Amazon Resource Name (ARN) of the cluster to use when filtering the <code>ListServices</code> results. If you do not specify a cluster, the default cluster is assumed.<br/>
        :return: nextToken:  The <code>nextToken</code> value to include in a future <code>ListServices</code> request. When the results of a <code>ListServices</code> request exceed <code>maxResults</code>, this value can be used to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>serviceArns:  The list of full ARN entries for each service associated with the specified cluster.<br/>        """
        pass

    def list_tags_for_resource(self, resourceArn: str) -> ListTagsForResourceResponse:
        r"""List the tags for an Amazon ECS resource.

        :param self:
        :param resourceArn:  The Amazon Resource Name (ARN) that identifies the resource for which to list the tags. Currently, the supported resources are Amazon ECS tasks, services, task definitions, clusters, and container instances.<br/>
        :return: tags:  The tags for the resource.<br/>        """
        pass

    def list_task_definition_families(self, familyPrefix: str=None, status: str=None, nextToken: str=None, maxResults: int=None) -> ListTaskDefinitionFamiliesResponse:
        r"""Returns a list of task definition families that are registered to your account (which may include task definition families that no longer have any <code>ACTIVE</code> task definition revisions). You can filter out task definition families that do not contain any <code>ACTIVE</code> task definition revisions by setting the <code>status</code> parameter to <code>ACTIVE</code>. You can also filter the results with the <code>familyPrefix</code> parameter.

        :param self:
        :param maxResults:  The maximum number of task definition family results returned by <code>ListTaskDefinitionFamilies</code> in paginated output. When this parameter is used, <code>ListTaskDefinitions</code> only returns <code>maxResults</code> results in a single page along with a <code>nextToken</code> response element. The remaining results of the initial request can be seen by sending another <code>ListTaskDefinitionFamilies</code> request with the returned <code>nextToken</code> value. This value can be between 1 and 100. If this parameter is not used, then <code>ListTaskDefinitionFamilies</code> returns up to 100 results and a <code>nextToken</code> value if applicable.<br/>nextToken:  The <code>nextToken</code> value returned from a <code>ListTaskDefinitionFamilies</code> request indicating that more results are available to fulfill the request and further calls will be needed. If <code>maxResults</code> was provided, it is possible the number of results to be fewer than <code>maxResults</code>. <note> This token should be treated as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes. </note><br/>status:  The task definition family status with which to filter the <code>ListTaskDefinitionFamilies</code> results. By default, both <code>ACTIVE</code> and <code>INACTIVE</code> task definition families are listed. If this parameter is set to <code>ACTIVE</code>, only task definition families that have an <code>ACTIVE</code> task definition revision are returned. If this parameter is set to <code>INACTIVE</code>, only task definition families that do not have any <code>ACTIVE</code> task definition revisions are returned. If you paginate the resulting output, be sure to keep the <code>status</code> value constant in each subsequent request.<br/>familyPrefix:  The <code>familyPrefix</code> is a string that is used to filter the results of <code>ListTaskDefinitionFamilies</code>. If you specify a <code>familyPrefix</code>, only task definition family names that begin with the <code>familyPrefix</code> string are returned.<br/>
        :return: nextToken:  The <code>nextToken</code> value to include in a future <code>ListTaskDefinitionFamilies</code> request. When the results of a <code>ListTaskDefinitionFamilies</code> request exceed <code>maxResults</code>, this value can be used to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>families:  The list of task definition family names that match the <code>ListTaskDefinitionFamilies</code> request.<br/>        """
        pass

    def list_task_definitions(self, familyPrefix: str=None, status: str=None, sort: str=None, nextToken: str=None, maxResults: int=None) -> ListTaskDefinitionsResponse:
        r"""Returns a list of task definitions that are registered to your account. You can filter the results by family name with the <code>familyPrefix</code> parameter or by status with the <code>status</code> parameter.

        :param self:
        :param maxResults:  The maximum number of task definition results returned by <code>ListTaskDefinitions</code> in paginated output. When this parameter is used, <code>ListTaskDefinitions</code> only returns <code>maxResults</code> results in a single page along with a <code>nextToken</code> response element. The remaining results of the initial request can be seen by sending another <code>ListTaskDefinitions</code> request with the returned <code>nextToken</code> value. This value can be between 1 and 100. If this parameter is not used, then <code>ListTaskDefinitions</code> returns up to 100 results and a <code>nextToken</code> value if applicable.<br/>nextToken:  The <code>nextToken</code> value returned from a <code>ListTaskDefinitions</code> request indicating that more results are available to fulfill the request and further calls will be needed. If <code>maxResults</code> was provided, it is possible the number of results to be fewer than <code>maxResults</code>. <note> This token should be treated as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes. </note><br/>sort:  The order in which to sort the results. Valid values are <code>ASC</code> and <code>DESC</code>. By default (<code>ASC</code>), task definitions are listed lexicographically by family name and in ascending numerical order by revision so that the newest task definitions in a family are listed last. Setting this parameter to <code>DESC</code> reverses the sort order on family name and revision so that the newest task definitions in a family are listed first.<br/>status:  The task definition status with which to filter the <code>ListTaskDefinitions</code> results. By default, only <code>ACTIVE</code> task definitions are listed. By setting this parameter to <code>INACTIVE</code>, you can view task definitions that are <code>INACTIVE</code> as long as an active task or service still references them. If you paginate the resulting output, be sure to keep the <code>status</code> value constant in each subsequent request.<br/>familyPrefix:  The full family name with which to filter the <code>ListTaskDefinitions</code> results. Specifying a <code>familyPrefix</code> limits the listed task definitions to task definition revisions that belong to that family.<br/>
        :return: nextToken:  The <code>nextToken</code> value to include in a future <code>ListTaskDefinitions</code> request. When the results of a <code>ListTaskDefinitions</code> request exceed <code>maxResults</code>, this value can be used to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>taskDefinitionArns:  The list of task definition Amazon Resource Name (ARN) entries for the <code>ListTaskDefinitions</code> request.<br/>        """
        pass

    def list_tasks(self, cluster: str=None, containerInstance: str=None, family: str=None, nextToken: str=None, maxResults: int=None, startedBy: str=None, serviceName: str=None, desiredStatus: str=None, launchType: str=None) -> ListTasksResponse:
        r"""Returns a list of tasks. You can filter the results by cluster, task definition family, container instance, launch type, what IAM principal started the task, or by the desired status of the task. Recently stopped tasks might appear in the returned results. Currently, stopped tasks appear in the returned results for at least one hour.

        :param self:
        :param launchType:  The launch type to use when filtering the <code>ListTasks</code> results.<br/>desiredStatus:  The task desired status to use when filtering the <code>ListTasks</code> results. Specifying a <code>desiredStatus</code> of <code>STOPPED</code> limits the results to tasks that Amazon ECS has set the desired status to <code>STOPPED</code>. This can be useful for debugging tasks that are not starting properly or have died or finished. The default status filter is <code>RUNNING</code>, which shows tasks that Amazon ECS has set the desired status to <code>RUNNING</code>. <note> Although you can filter results based on a desired status of <code>PENDING</code>, this does not return any results. Amazon ECS never sets the desired status of a task to that value (only a task's <code>lastStatus</code> may have a value of <code>PENDING</code>). </note><br/>serviceName:  The name of the service to use when filtering the <code>ListTasks</code> results. Specifying a <code>serviceName</code> limits the results to tasks that belong to that service.<br/>startedBy:  The <code>startedBy</code> value with which to filter the task results. Specifying a <code>startedBy</code> value limits the results to tasks that were started with that value.<br/>maxResults:  The maximum number of task results returned by <code>ListTasks</code> in paginated output. When this parameter is used, <code>ListTasks</code> only returns <code>maxResults</code> results in a single page along with a <code>nextToken</code> response element. The remaining results of the initial request can be seen by sending another <code>ListTasks</code> request with the returned <code>nextToken</code> value. This value can be between 1 and 100. If this parameter is not used, then <code>ListTasks</code> returns up to 100 results and a <code>nextToken</code> value if applicable.<br/>nextToken:  The <code>nextToken</code> value returned from a <code>ListTasks</code> request indicating that more results are available to fulfill the request and further calls will be needed. If <code>maxResults</code> was provided, it is possible the number of results to be fewer than <code>maxResults</code>. <note> This token should be treated as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes. </note><br/>family:  The name of the task definition family to use when filtering the <code>ListTasks</code> results. Specifying a <code>family</code> limits the results to tasks that belong to that family.<br/>containerInstance:  The container instance ID or full ARN of the container instance to use when filtering the <code>ListTasks</code> results. Specifying a <code>containerInstance</code> limits the results to tasks that belong to that container instance.<br/>cluster:  The short name or full Amazon Resource Name (ARN) of the cluster to use when filtering the <code>ListTasks</code> results. If you do not specify a cluster, the default cluster is assumed.<br/>
        :return: nextToken:  The <code>nextToken</code> value to include in a future <code>ListTasks</code> request. When the results of a <code>ListTasks</code> request exceed <code>maxResults</code>, this value can be used to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>taskArns:  The list of task ARN entries for the <code>ListTasks</code> request.<br/>        """
        pass

    def put_account_setting(self, value: str, name: str, principalArn: str=None) -> PutAccountSettingResponse:
        r"""Modifies an account setting. Account settings are set on a per-Region basis. If you change the account setting for the root user, the default settings for all of the IAM users and roles for which no individual account setting has been specified are reset. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-account-settings.html">Account Settings</a> in the <i>Amazon Elastic Container Service Developer Guide</i>. When <code>serviceLongArnFormat</code>, <code>taskLongArnFormat</code>, or <code>containerInstanceLongArnFormat</code> are specified, the Amazon Resource Name (ARN) and resource ID format of the resource type for a specified IAM user, IAM role, or the root user for an account is affected. The opt-in and opt-out account setting must be set for each Amazon ECS resource separately. The ARN and resource ID format of a resource will be defined by the opt-in status of the IAM user or role that created the resource. You must enable this setting to use Amazon ECS features such as resource tagging. When <code>awsvpcTrunking</code> is specified, the elastic network interface (ENI) limit for any new container instances that support the feature is changed. If <code>awsvpcTrunking</code> is enabled, any new container instances that support the feature are launched have the increased ENI limits available to them. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/container-instance-eni.html">Elastic Network Interface Trunking</a> in the <i>Amazon Elastic Container Service Developer Guide</i>. When <code>containerInsights</code> is specified, the default setting indicating whether CloudWatch Container Insights is enabled for your clusters is changed. If <code>containerInsights</code> is enabled, any new clusters that are created will have Container Insights enabled unless you disable it during cluster creation. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cloudwatch-container-insights.html">CloudWatch Container Insights</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.

        :param self:
        :param principalArn:  The ARN of the principal, which can be an IAM user, IAM role, or the root user. If you specify the root user, it modifies the account setting for all IAM users, IAM roles, and the root user of the account unless an IAM user or role explicitly overrides these settings. If this field is omitted, the setting is changed only for the authenticated user. <note> Federated users assume the account setting of the root user and can't have explicit account settings set for them. </note><br/>value:  The account setting value for the specified principal ARN. Accepted values are <code>enabled</code> and <code>disabled</code>.<br/>name:  The Amazon ECS resource name for which to modify the account setting. If <code>serviceLongArnFormat</code> is specified, the ARN for your Amazon ECS services is affected. If <code>taskLongArnFormat</code> is specified, the ARN and resource ID for your Amazon ECS tasks is affected. If <code>containerInstanceLongArnFormat</code> is specified, the ARN and resource ID for your Amazon ECS container instances is affected. If <code>awsvpcTrunking</code> is specified, the elastic network interface (ENI) limit for your Amazon ECS container instances is affected. If <code>containerInsights</code> is specified, the default setting for CloudWatch Container Insights for your clusters is affected.<br/>
        :return: setting:  The current account setting for a resource.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>principalArn</i> The ARN of the principal, which can be an IAM user, IAM role, or the root user. If this field is omitted, the authenticated user is assumed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>value</i> Whether the account setting is enabled or disabled for the specified resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The Amazon ECS resource name.<br/>        """
        pass

    def put_account_setting_default(self, value: str, name: str) -> PutAccountSettingDefaultResponse:
        r"""Modifies an account setting for all IAM users on an account for whom no individual account setting has been specified. Account settings are set on a per-Region basis.

        :param self:
        :param value:  The account setting value for the specified principal ARN. Accepted values are <code>enabled</code> and <code>disabled</code>.<br/>name:  The resource name for which to modify the account setting. If <code>serviceLongArnFormat</code> is specified, the ARN for your Amazon ECS services is affected. If <code>taskLongArnFormat</code> is specified, the ARN and resource ID for your Amazon ECS tasks is affected. If <code>containerInstanceLongArnFormat</code> is specified, the ARN and resource ID for your Amazon ECS container instances is affected. If <code>awsvpcTrunking</code> is specified, the ENI limit for your Amazon ECS container instances is affected. If <code>containerInsights</code> is specified, the default setting for CloudWatch Container Insights for your clusters is affected.<br/>
        :return: setting:  The current setting for a resource.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>principalArn</i> The ARN of the principal, which can be an IAM user, IAM role, or the root user. If this field is omitted, the authenticated user is assumed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>value</i> Whether the account setting is enabled or disabled for the specified resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The Amazon ECS resource name.<br/>        """
        pass

    def put_attributes(self, attributes: List[Attribute], cluster: str=None) -> PutAttributesResponse:
        r"""Create or update an attribute on an Amazon ECS resource. If the attribute does not exist, it is created. If the attribute exists, its value is replaced with the specified value. To delete an attribute, use <a>DeleteAttributes</a>. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-constraints.html#attributes">Attributes</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.

        :param self:
        :param attributes:  The attributes to apply to your resource. You can specify up to 10 custom attributes per resource. You can specify up to 10 attributes in a single call.<br/>cluster:  The short name or full Amazon Resource Name (ARN) of the cluster that contains the resource to apply attributes. If you do not specify a cluster, the default cluster is assumed.<br/>
        :return: attributes:  The attributes applied to your resource.<br/>        """
        pass

    def put_cluster_capacity_providers(self, defaultCapacityProviderStrategy: List[CapacityProviderStrategyItem], capacityProviders: List[String], cluster: str) -> PutClusterCapacityProvidersResponse:
        r"""Modifies the available capacity providers and the default capacity provider strategy for a cluster. You must specify both the available capacity providers and a default capacity provider strategy for the cluster. If the specified cluster has existing capacity providers associated with it, you must specify all existing capacity providers in addition to any new ones you want to add. Any existing capacity providers associated with a cluster that are omitted from a <a>PutClusterCapacityProviders</a> API call will be disassociated with the cluster. You can only disassociate an existing capacity provider from a cluster if it's not being used by any existing tasks. When creating a service or running a task on a cluster, if no capacity provider or launch type is specified, then the cluster's default capacity provider strategy is used. It is recommended to define a default capacity provider strategy for your cluster, however you may specify an empty array (<code>[]</code>) to bypass defining a default strategy.

        :param self:
        :param defaultCapacityProviderStrategy:  The capacity provider strategy to use by default for the cluster. When creating a service or running a task on a cluster, if no capacity provider or launch type is specified then the default capacity provider strategy for the cluster is used. A capacity provider strategy consists of one or more capacity providers along with the <code>base</code> and <code>weight</code> to assign to them. A capacity provider must be associated with the cluster to be used in a capacity provider strategy. The <a>PutClusterCapacityProviders</a> API is used to associate a capacity provider with a cluster. Only capacity providers with an <code>ACTIVE</code> or <code>UPDATING</code> status can be used. If specifying a capacity provider that uses an Auto Scaling group, the capacity provider must already be created. New capacity providers can be created with the <a>CreateCapacityProvider</a> API operation. To use a AWS Fargate capacity provider, specify either the <code>FARGATE</code> or <code>FARGATE_SPOT</code> capacity providers. The AWS Fargate capacity providers are available to all accounts and only need to be associated with a cluster to be used.<br/>capacityProviders:  The name of one or more capacity providers to associate with the cluster. If specifying a capacity provider that uses an Auto Scaling group, the capacity provider must already be created. New capacity providers can be created with the <a>CreateCapacityProvider</a> API operation. To use a AWS Fargate capacity provider, specify either the <code>FARGATE</code> or <code>FARGATE_SPOT</code> capacity providers. The AWS Fargate capacity providers are available to all accounts and only need to be associated with a cluster to be used.<br/>cluster:  The short name or full Amazon Resource Name (ARN) of the cluster to modify the capacity provider settings for. If you do not specify a cluster, the default cluster is assumed.<br/>
        :return: cluster:  Details about the cluster.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>attachmentsStatus</i> The status of the capacity providers associated with the cluster. The following are the states that will be returned: <dl> <dt>UPDATE_IN_PROGRESS</dt> <dd> The available capacity providers for the cluster are updating. This occurs when the Auto Scaling plan is provisioning or deprovisioning. </dd> <dt>UPDATE_COMPLETE</dt> <dd> The capacity providers have successfully updated. </dd> <dt>UPDATE_FAILED</dt> <dd> The capacity provider updates failed. </dd> </dl><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>attachments</i> The resources attached to a cluster. When using a capacity provider with a cluster, the Auto Scaling plan that is created will be returned as a cluster attachment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>defaultCapacityProviderStrategy</i> The default capacity provider strategy for the cluster. When services or tasks are run in the cluster with no launch type or capacity provider strategy specified, the default capacity provider strategy is used.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>capacityProviders</i> The capacity providers associated with the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>settings</i> The settings for the cluster. This parameter indicates whether CloudWatch Container Insights is enabled or disabled for a cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The metadata that you apply to the cluster to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define. The following basic restrictions apply to tags: <ul> <li> Maximum number of tags per resource - 50 </li> <li> For each resource, each tag key must be unique, and each tag key can have only one value. </li> <li> Maximum key length - 128 Unicode characters in UTF-8 </li> <li> Maximum value length - 256 Unicode characters in UTF-8 </li> <li> If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @. </li> <li> Tag keys and values are case-sensitive. </li> <li> Do not use <code>aws:</code>, <code>AWS:</code>, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statistics</i> Additional information about your clusters that are separated by launch type, including: <ul> <li> runningEC2TasksCount </li> <li> RunningFargateTasksCount </li> <li> pendingEC2TasksCount </li> <li> pendingFargateTasksCount </li> <li> activeEC2ServiceCount </li> <li> activeFargateServiceCount </li> <li> drainingEC2ServiceCount </li> <li> drainingFargateServiceCount </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>activeServicesCount</i> The number of services that are running on the cluster in an <code>ACTIVE</code> state. You can view these services with <a>ListServices</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>pendingTasksCount</i> The number of tasks in the cluster that are in the <code>PENDING</code> state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>runningTasksCount</i> The number of tasks in the cluster that are in the <code>RUNNING</code> state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>registeredContainerInstancesCount</i> The number of container instances registered into the cluster. This includes container instances in both <code>ACTIVE</code> and <code>DRAINING</code> status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the cluster. The following are the possible states that will be returned. <dl> <dt>ACTIVE</dt> <dd> The cluster is ready to accept tasks and if applicable you can register container instances with the cluster. </dd> <dt>PROVISIONING</dt> <dd> The cluster has capacity providers associated with it and the resources needed for the capacity provider are being created. </dd> <dt>DEPROVISIONING</dt> <dd> The cluster has capacity providers associated with it and the resources needed for the capacity provider are being deleted. </dd> <dt>FAILED</dt> <dd> The cluster has capacity providers associated with it and the resources needed for the capacity provider have failed to create. </dd> <dt>INACTIVE</dt> <dd> The cluster has been deleted. Clusters with an <code>INACTIVE</code> status may remain discoverable in your account for a period of time. However, this behavior is subject to change in the future, so you should not rely on <code>INACTIVE</code> clusters persisting. </dd> </dl><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>configuration</i> The execute command configuration for the cluster.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>configuration</b>: The execute command configuration for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>clusterName</i> A user-generated string that you use to identify your cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>clusterArn</i> The Amazon Resource Name (ARN) that identifies the cluster. The ARN contains the <code>arn:aws:ecs</code> namespace, followed by the Region of the cluster, the AWS account ID of the cluster owner, the <code>cluster</code> namespace, and then the cluster name. For example, <code>arn:aws:ecs:region:012345678910:cluster/test</code>.<br/>The details of the execute command configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>executeCommandConfiguration</b>: The details of the execute command configuration.        """
        pass

    def register_container_instance(self, cluster: str=None, instanceIdentityDocument: str=None, instanceIdentityDocumentSignature: str=None, totalResources: List[Resource]=None, versionInfo: VersionInfo=None, containerInstanceArn: str=None, attributes: List[Attribute]=None, platformDevices: List[PlatformDevice]=None, tags: List[Tag]=None) -> RegisterContainerInstanceResponse:
        r"""<note> This action is only used by the Amazon ECS agent, and it is not intended for use outside of the agent. </note> Registers an EC2 instance into the specified cluster. This instance becomes available to place containers on.

        :param self:
        :param tags:  The metadata that you apply to the container instance to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define. The following basic restrictions apply to tags: <ul> <li> Maximum number of tags per resource - 50 </li> <li> For each resource, each tag key must be unique, and each tag key can have only one value. </li> <li> Maximum key length - 128 Unicode characters in UTF-8 </li> <li> Maximum value length - 256 Unicode characters in UTF-8 </li> <li> If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @. </li> <li> Tag keys and values are case-sensitive. </li> <li> Do not use <code>aws:</code>, <code>AWS:</code>, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit. </li> </ul><br/>platformDevices:  The devices that are available on the container instance. The only supported device type is a GPU.<br/>attributes:  The container instance attributes that this container instance supports.<br/>containerInstanceArn:  The ARN of the container instance (if it was previously registered).<br/>versionInfo:  The version information for the Amazon ECS container agent and Docker daemon running on the container instance.:<br/>totalResources:  The resources available on the instance.<br/>instanceIdentityDocumentSignature:  The instance identity document signature for the EC2 instance to register. This signature can be found by running the following command from the instance: <code>curl http://169.254.169.254/latest/dynamic/instance-identity/signature/</code> <br/>instanceIdentityDocument:  The instance identity document for the EC2 instance to register. This document can be found by running the following command from the instance: <code>curl http://169.254.169.254/latest/dynamic/instance-identity/document/</code> <br/>cluster:  The short name or full Amazon Resource Name (ARN) of the cluster with which to register your container instance. If you do not specify a cluster, the default cluster is assumed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>dockerVersion</i> The Docker version running on the container instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>agentHash</i> The Git commit hash for the Amazon ECS container agent build on the <a href="https://github.com/aws/amazon-ecs-agent/commits/master">amazon-ecs-agent </a> GitHub repository.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>agentVersion</i> The version number of the Amazon ECS container agent.<br/>
        :return: containerInstance:  The container instance that was registered.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The metadata that you apply to the container instance to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define. The following basic restrictions apply to tags: <ul> <li> Maximum number of tags per resource - 50 </li> <li> For each resource, each tag key must be unique, and each tag key can have only one value. </li> <li> Maximum key length - 128 Unicode characters in UTF-8 </li> <li> Maximum value length - 256 Unicode characters in UTF-8 </li> <li> If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @. </li> <li> Tag keys and values are case-sensitive. </li> <li> Do not use <code>aws:</code>, <code>AWS:</code>, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>attachments</i> The resources attached to a container instance, such as elastic network interfaces.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>registeredAt</i> The Unix timestamp for when the container instance was registered.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>attributes</i> The attributes set for the container instance, either by the Amazon ECS container agent at instance registration or manually with the <a>PutAttributes</a> operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>agentUpdateStatus</i> The status of the most recent agent update. If an update has never been requested, this value is <code>NULL</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>pendingTasksCount</i> The number of tasks on the container instance that are in the <code>PENDING</code> status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>runningTasksCount</i> The number of tasks on the container instance that are in the <code>RUNNING</code> status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>agentConnected</i> This parameter returns <code>true</code> if the agent is connected to Amazon ECS. Registered instances with an agent that may be unhealthy or stopped return <code>false</code>. Only instances connected to an agent can accept placement requests.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusReason</i> The reason that the container instance reached its current status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the container instance. The valid values are <code>REGISTERING</code>, <code>REGISTRATION_FAILED</code>, <code>ACTIVE</code>, <code>INACTIVE</code>, <code>DEREGISTERING</code>, or <code>DRAINING</code>. If your account has opted in to the <code>awsvpcTrunking</code> account setting, then any newly registered container instance will transition to a <code>REGISTERING</code> status while the trunk elastic network interface is provisioned for the instance. If the registration fails, the instance will transition to a <code>REGISTRATION_FAILED</code> status. You can describe the container instance and see the reason for failure in the <code>statusReason</code> parameter. Once the container instance is terminated, the instance transitions to a <code>DEREGISTERING</code> status while the trunk elastic network interface is deprovisioned. The instance then transitions to an <code>INACTIVE</code> status. The <code>ACTIVE</code> status indicates that the container instance can accept tasks. The <code>DRAINING</code> indicates that new tasks are not placed on the container instance and any service tasks running on the container instance are removed if possible. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/container-instance-draining.html">Container Instance Draining</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>registeredResources</i> For CPU and memory resource types, this parameter describes the amount of each resource that was available on the container instance when the container agent registered it with Amazon ECS. This value represents the total amount of CPU and memory that can be allocated on this container instance to tasks. For port resource types, this parameter describes the ports that were reserved by the Amazon ECS container agent when it registered the container instance with Amazon ECS.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>remainingResources</i> For CPU and memory resource types, this parameter describes the remaining CPU and memory that has not already been allocated to tasks and is therefore available for new tasks. For port resource types, this parameter describes the ports that were reserved by the Amazon ECS container agent (at instance registration time) and any task containers that have reserved port mappings on the host (with the <code>host</code> or <code>bridge</code> network mode). Any port that is not specified here is available for new tasks.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>versionInfo</i> The version information for the Amazon ECS container agent and Docker daemon running on the container instance.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>versionInfo</b>: The version information for the Amazon ECS container agent and Docker daemon running on the container instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The version counter for the container instance. Every time a container instance experiences a change that triggers a CloudWatch event, the version counter is incremented. If you are replicating your Amazon ECS container instance state with CloudWatch Events, you can compare the version of a container instance reported by the Amazon ECS APIs with the version reported in CloudWatch Events for the container instance (inside the <code>detail</code> object) to verify that the version in your event stream is current.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>capacityProviderName</i> The capacity provider associated with the container instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ec2InstanceId</i> The ID of the container instance. For Amazon EC2 instances, this value is the Amazon EC2 instance ID. For external instances, this value is the AWS Systems Manager managed instance ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>containerInstanceArn</i> The Amazon Resource Name (ARN) of the container instance. The ARN contains the <code>arn:aws:ecs</code> namespace, followed by the Region of the container instance, the AWS account ID of the container instance owner, the <code>container-instance</code> namespace, and then the container instance ID. For example, <code>arn:aws:ecs:region:aws_account_id:container-instance/container_instance_ID</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>dockerVersion</i> The Docker version running on the container instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>agentHash</i> The Git commit hash for the Amazon ECS container agent build on the <a href="https://github.com/aws/amazon-ecs-agent/commits/master">amazon-ecs-agent </a> GitHub repository.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>agentVersion</i> The version number of the Amazon ECS container agent.<br/>        """
        pass

    def register_task_definition(self, containerDefinitions: List[ContainerDefinition], family: str, taskRoleArn: str=None, executionRoleArn: str=None, networkMode: str=None, volumes: List[Volume]=None, placementConstraints: List[TaskDefinitionPlacementConstraint]=None, requiresCompatibilities: List[Compatibility]=None, cpu: str=None, memory: str=None, tags: List[Tag]=None, pidMode: str=None, ipcMode: str=None, proxyConfiguration: ProxyConfiguration=None, inferenceAccelerators: List[InferenceAccelerator]=None, ephemeralStorage: EphemeralStorage=None) -> RegisterTaskDefinitionResponse:
        r"""Registers a new task definition from the supplied <code>family</code> and <code>containerDefinitions</code>. Optionally, you can add data volumes to your containers with the <code>volumes</code> parameter. For more information about task definition parameters and defaults, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_defintions.html">Amazon ECS Task Definitions</a> in the <i>Amazon Elastic Container Service Developer Guide</i>. You can specify an IAM role for your task with the <code>taskRoleArn</code> parameter. When you specify an IAM role for a task, its containers can then use the latest versions of the AWS CLI or SDKs to make API requests to the AWS services that are specified in the IAM policy associated with the role. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html">IAM Roles for Tasks</a> in the <i>Amazon Elastic Container Service Developer Guide</i>. You can specify a Docker networking mode for the containers in your task definition with the <code>networkMode</code> parameter. The available network modes correspond to those described in <a href="https://docs.docker.com/engine/reference/run/#/network-settings">Network settings</a> in the Docker run reference. If you specify the <code>awsvpc</code> network mode, the task is allocated an elastic network interface, and you must specify a <a>NetworkConfiguration</a> when you create a service or run a task with the task definition. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html">Task Networking</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.

        :param self:
        :param ephemeralStorage:  The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/userguide/using_data_volumes.html">Fargate task storage</a> in the <i>Amazon ECS User Guide for AWS Fargate</i>. <note> This parameter is only supported for tasks hosted on AWS Fargate using platform version <code>1.4.0</code> or later. </note>:<br/>inferenceAccelerators:  The Elastic Inference accelerators to use for the containers in the task.<br/>proxyConfiguration:  The configuration details for the App Mesh proxy. For tasks hosted on Amazon EC2 instances, the container instances require at least version <code>1.26.0</code> of the container agent and at least version <code>1.26.0-1</code> of the <code>ecs-init</code> package to enable a proxy configuration. If your container instances are launched from the Amazon ECS-optimized AMI version <code>20190301</code> or later, then they contain the required versions of the container agent and <code>ecs-init</code>. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-ami-versions.html">Amazon ECS-optimized AMI versions</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.:<br/>ipcMode:  The IPC resource namespace to use for the containers in the task. The valid values are <code>host</code>, <code>task</code>, or <code>none</code>. If <code>host</code> is specified, then all containers within the tasks that specified the <code>host</code> IPC mode on the same container instance share the same IPC resources with the host Amazon EC2 instance. If <code>task</code> is specified, all containers within the specified task share the same IPC resources. If <code>none</code> is specified, then IPC resources within the containers of a task are private and not shared with other containers in a task or on the container instance. If no value is specified, then the IPC resource namespace sharing depends on the Docker daemon setting on the container instance. For more information, see <a href="https://docs.docker.com/engine/reference/run/#ipc-settings---ipc">IPC settings</a> in the <i>Docker run reference</i>. If the <code>host</code> IPC mode is used, be aware that there is a heightened risk of undesired IPC namespace expose. For more information, see <a href="https://docs.docker.com/engine/security/security/">Docker security</a>. If you are setting namespaced kernel parameters using <code>systemControls</code> for the containers in the task, the following will apply to your IPC resource namespace. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html">System Controls</a> in the <i>Amazon Elastic Container Service Developer Guide</i>. <ul> <li> For tasks that use the <code>host</code> IPC mode, IPC namespace related <code>systemControls</code> are not supported. </li> <li> For tasks that use the <code>task</code> IPC mode, IPC namespace related <code>systemControls</code> will apply to all containers within a task. </li> </ul> <note> This parameter is not supported for Windows containers or tasks run on AWS Fargate. </note><br/>pidMode:  The process namespace to use for the containers in the task. The valid values are <code>host</code> or <code>task</code>. If <code>host</code> is specified, then all containers within the tasks that specified the <code>host</code> PID mode on the same container instance share the same process namespace with the host Amazon EC2 instance. If <code>task</code> is specified, all containers within the specified task share the same process namespace. If no value is specified, the default is a private namespace. For more information, see <a href="https://docs.docker.com/engine/reference/run/#pid-settings---pid">PID settings</a> in the <i>Docker run reference</i>. If the <code>host</code> PID mode is used, be aware that there is a heightened risk of undesired process namespace expose. For more information, see <a href="https://docs.docker.com/engine/security/security/">Docker security</a>. <note> This parameter is not supported for Windows containers or tasks run on AWS Fargate. </note><br/>tags:  The metadata that you apply to the task definition to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define. The following basic restrictions apply to tags: <ul> <li> Maximum number of tags per resource - 50 </li> <li> For each resource, each tag key must be unique, and each tag key can have only one value. </li> <li> Maximum key length - 128 Unicode characters in UTF-8 </li> <li> Maximum value length - 256 Unicode characters in UTF-8 </li> <li> If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @. </li> <li> Tag keys and values are case-sensitive. </li> <li> Do not use <code>aws:</code>, <code>AWS:</code>, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit. </li> </ul><br/>memory:  The amount of memory (in MiB) used by the task. It can be expressed as an integer using MiB, for example <code>1024</code>, or as a string using GB, for example <code>1GB</code> or <code>1 GB</code>, in a task definition. String values are converted to an integer indicating the MiB when the task definition is registered. <note> Task-level CPU and memory parameters are ignored for Windows containers. We recommend specifying container-level resources for Windows containers. </note> If using the EC2 launch type, this field is optional. If using the Fargate launch type, this field is required and you must use one of the following values, which determines your range of supported values for the <code>cpu</code> parameter: <ul> <li> 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available <code>cpu</code> values: 256 (.25 vCPU) </li> <li> 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available <code>cpu</code> values: 512 (.5 vCPU) </li> <li> 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available <code>cpu</code> values: 1024 (1 vCPU) </li> <li> Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) - Available <code>cpu</code> values: 2048 (2 vCPU) </li> <li> Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) - Available <code>cpu</code> values: 4096 (4 vCPU) </li> </ul><br/>cpu:  The number of CPU units used by the task. It can be expressed as an integer using CPU units, for example <code>1024</code>, or as a string using vCPUs, for example <code>1 vCPU</code> or <code>1 vcpu</code>, in a task definition. String values are converted to an integer indicating the CPU units when the task definition is registered. <note> Task-level CPU and memory parameters are ignored for Windows containers. We recommend specifying container-level resources for Windows containers. </note> If you are using the EC2 launch type, this field is optional. Supported values are between <code>128</code> CPU units (<code>0.125</code> vCPUs) and <code>10240</code> CPU units (<code>10</code> vCPUs). If you are using the Fargate launch type, this field is required and you must use one of the following values, which determines your range of supported values for the <code>memory</code> parameter: <ul> <li> 256 (.25 vCPU) - Available <code>memory</code> values: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) </li> <li> 512 (.5 vCPU) - Available <code>memory</code> values: 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) </li> <li> 1024 (1 vCPU) - Available <code>memory</code> values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) </li> <li> 2048 (2 vCPU) - Available <code>memory</code> values: Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) </li> <li> 4096 (4 vCPU) - Available <code>memory</code> values: Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) </li> </ul><br/>requiresCompatibilities:  The task launch type that Amazon ECS should validate the task definition against. A client exception is returned if the task definition doesn't validate against the compatibilities specified. If no value is specified, the parameter is omitted from the response.<br/>placementConstraints:  An array of placement constraint objects to use for the task. You can specify a maximum of 10 constraints per task (this limit includes constraints in the task definition and those specified at runtime).<br/>volumes:  A list of volume definitions in JSON format that containers in your task may use.<br/>containerDefinitions:  A list of container definitions in JSON format that describe the different containers that make up your task.<br/>networkMode:  The Docker networking mode to use for the containers in the task. The valid values are <code>none</code>, <code>bridge</code>, <code>awsvpc</code>, and <code>host</code>. If no network mode is specified, the default is <code>bridge</code>. For Amazon ECS tasks on Fargate, the <code>awsvpc</code> network mode is required. For Amazon ECS tasks on Amazon EC2 instances, any network mode can be used. If the network mode is set to <code>none</code>, you cannot specify port mappings in your container definitions, and the tasks containers do not have external connectivity. The <code>host</code> and <code>awsvpc</code> network modes offer the highest networking performance for containers because they use the EC2 network stack instead of the virtualized network stack provided by the <code>bridge</code> mode. With the <code>host</code> and <code>awsvpc</code> network modes, exposed container ports are mapped directly to the corresponding host port (for the <code>host</code> network mode) or the attached elastic network interface port (for the <code>awsvpc</code> network mode), so you cannot take advantage of dynamic host port mappings.  <important> When using the <code>host</code> network mode, you should not run containers using the root user (UID 0). It is considered best practice to use a non-root user. </important> If the network mode is <code>awsvpc</code>, the task is allocated an elastic network interface, and you must specify a <a>NetworkConfiguration</a> value when you create a service or run a task with the task definition. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html">Task Networking</a> in the <i>Amazon Elastic Container Service Developer Guide</i>. <note> Currently, only Amazon ECS-optimized AMIs, other Amazon Linux variants with the <code>ecs-init</code> package, or AWS Fargate infrastructure support the <code>awsvpc</code> network mode.  </note> If the network mode is <code>host</code>, you cannot run multiple instantiations of the same task on a single container instance when port mappings are used. Docker for Windows uses different network modes than Docker for Linux. When you register a task definition with Windows containers, you must not specify a network mode. If you use the console to register a task definition with Windows containers, you must choose the <code>&lt;default&gt;</code> network mode object.  For more information, see <a href="https://docs.docker.com/engine/reference/run/#network-settings">Network settings</a> in the <i>Docker run reference</i>.<br/>executionRoleArn:  The Amazon Resource Name (ARN) of the task execution role that grants the Amazon ECS container agent permission to make AWS API calls on your behalf. The task execution IAM role is required depending on the requirements of your task. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_execution_IAM_role.html">Amazon ECS task execution IAM role</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.<br/>taskRoleArn:  The short name or full Amazon Resource Name (ARN) of the IAM role that containers in this task can assume. All containers in this task are granted the permissions that are specified in this role. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html">IAM Roles for Tasks</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.<br/>family:  You must specify a <code>family</code> for a task definition, which allows you to track multiple versions of the same task definition. The <code>family</code> is used as a name for your task definition. Up to 255 letters (uppercase and lowercase), numbers, underscores, and hyphens are allowed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>properties</i> The set of network configuration parameters to provide the Container Network Interface (CNI) plugin, specified as key-value pairs. <ul> <li>  <code>IgnoredUID</code> - (Required) The user ID (UID) of the proxy container as defined by the <code>user</code> parameter in a container definition. This is used to ensure the proxy ignores its own traffic. If <code>IgnoredGID</code> is specified, this field can be empty. </li> <li>  <code>IgnoredGID</code> - (Required) The group ID (GID) of the proxy container as defined by the <code>user</code> parameter in a container definition. This is used to ensure the proxy ignores its own traffic. If <code>IgnoredUID</code> is specified, this field can be empty. </li> <li>  <code>AppPorts</code> - (Required) The list of ports that the application uses. Network traffic to these ports is forwarded to the <code>ProxyIngressPort</code> and <code>ProxyEgressPort</code>. </li> <li>  <code>ProxyIngressPort</code> - (Required) Specifies the port that incoming traffic to the <code>AppPorts</code> is directed to. </li> <li>  <code>ProxyEgressPort</code> - (Required) Specifies the port that outgoing traffic from the <code>AppPorts</code> is directed to. </li> <li>  <code>EgressIgnoredPorts</code> - (Required) The egress traffic going to the specified ports is ignored and not redirected to the <code>ProxyEgressPort</code>. It can be an empty list. </li> <li>  <code>EgressIgnoredIPs</code> - (Required) The egress traffic going to the specified IP addresses is ignored and not redirected to the <code>ProxyEgressPort</code>. It can be an empty list. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>containerName</i> The name of the container that will serve as the App Mesh proxy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The proxy type. The only supported value is <code>APPMESH</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>sizeInGiB</i> The total amount, in GiB, of ephemeral storage to set for the task. The minimum supported value is <code>21</code> GiB and the maximum supported value is <code>200</code> GiB.<br/>
        :return: tags:  The list of tags associated with the task definition.<br/>taskDefinition:  The full description of the registered task definition.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ephemeralStorage</i> The ephemeral storage settings to use for tasks run with the task definition.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ephemeralStorage</b>: The ephemeral storage settings to use for tasks run with the task definition.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>registeredBy</i> The principal that registered the task definition.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deregisteredAt</i> The Unix timestamp for when the task definition was deregistered.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>registeredAt</i> The Unix timestamp for when the task definition was registered.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>proxyConfiguration</i> The configuration details for the App Mesh proxy. Your Amazon ECS container instances require at least version 1.26.0 of the container agent and at least version 1.26.0-1 of the <code>ecs-init</code> package to enable a proxy configuration. If your container instances are launched from the Amazon ECS-optimized AMI version <code>20190301</code> or later, then they contain the required versions of the container agent and <code>ecs-init</code>. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html">Amazon ECS-optimized Linux AMI</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>proxyConfiguration</b>: The configuration details for the App Mesh proxy. Your Amazon ECS container instances require at least version 1.26.0 of the container agent and at least version 1.26.0-1 of the <code>ecs-init</code> package to enable a proxy configuration. If your container instances are launched from the Amazon ECS-optimized AMI version <code>20190301</code> or later, then they contain the required versions of the container agent and <code>ecs-init</code>. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html">Amazon ECS-optimized Linux AMI</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ipcMode</i> The IPC resource namespace to use for the containers in the task. The valid values are <code>host</code>, <code>task</code>, or <code>none</code>. If <code>host</code> is specified, then all containers within the tasks that specified the <code>host</code> IPC mode on the same container instance share the same IPC resources with the host Amazon EC2 instance. If <code>task</code> is specified, all containers within the specified task share the same IPC resources. If <code>none</code> is specified, then IPC resources within the containers of a task are private and not shared with other containers in a task or on the container instance. If no value is specified, then the IPC resource namespace sharing depends on the Docker daemon setting on the container instance. For more information, see <a href="https://docs.docker.com/engine/reference/run/#ipc-settings---ipc">IPC settings</a> in the <i>Docker run reference</i>. If the <code>host</code> IPC mode is used, be aware that there is a heightened risk of undesired IPC namespace expose. For more information, see <a href="https://docs.docker.com/engine/security/security/">Docker security</a>. If you are setting namespaced kernel parameters using <code>systemControls</code> for the containers in the task, the following will apply to your IPC resource namespace. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html">System Controls</a> in the <i>Amazon Elastic Container Service Developer Guide</i>. <ul> <li> For tasks that use the <code>host</code> IPC mode, IPC namespace related <code>systemControls</code> are not supported. </li> <li> For tasks that use the <code>task</code> IPC mode, IPC namespace related <code>systemControls</code> will apply to all containers within a task. </li> </ul> <note> This parameter is not supported for Windows containers or tasks run on AWS Fargate. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>pidMode</i> The process namespace to use for the containers in the task. The valid values are <code>host</code> or <code>task</code>. If <code>host</code> is specified, then all containers within the tasks that specified the <code>host</code> PID mode on the same container instance share the same process namespace with the host Amazon EC2 instance. If <code>task</code> is specified, all containers within the specified task share the same process namespace. If no value is specified, the default is a private namespace. For more information, see <a href="https://docs.docker.com/engine/reference/run/#pid-settings---pid">PID settings</a> in the <i>Docker run reference</i>. If the <code>host</code> PID mode is used, be aware that there is a heightened risk of undesired process namespace expose. For more information, see <a href="https://docs.docker.com/engine/security/security/">Docker security</a>. <note> This parameter is not supported for Windows containers or tasks run on AWS Fargate. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>inferenceAccelerators</i> The Elastic Inference accelerator associated with the task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>memory</i> The amount (in MiB) of memory used by the task. If your tasks will be run on Amazon EC2 instances, you must specify either a task-level memory value or a container-level memory value. This field is optional and any value can be used. If a task-level memory value is specified then the container-level memory value is optional. For more information regarding container-level memory and memory reservation, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ContainerDefinition.html">ContainerDefinition</a>. If your tasks will be run on AWS Fargate, this field is required and you must use one of the following values, which determines your range of valid values for the <code>cpu</code> parameter: <ul> <li> 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available <code>cpu</code> values: 256 (.25 vCPU) </li> <li> 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available <code>cpu</code> values: 512 (.5 vCPU) </li> <li> 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available <code>cpu</code> values: 1024 (1 vCPU) </li> <li> Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) - Available <code>cpu</code> values: 2048 (2 vCPU) </li> <li> Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) - Available <code>cpu</code> values: 4096 (4 vCPU) </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>cpu</i> The number of <code>cpu</code> units used by the task. If you are using the EC2 launch type, this field is optional and any value can be used. If you are using the Fargate launch type, this field is required and you must use one of the following values, which determines your range of valid values for the <code>memory</code> parameter: <ul> <li> 256 (.25 vCPU) - Available <code>memory</code> values: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) </li> <li> 512 (.5 vCPU) - Available <code>memory</code> values: 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) </li> <li> 1024 (1 vCPU) - Available <code>memory</code> values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) </li> <li> 2048 (2 vCPU) - Available <code>memory</code> values: Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) </li> <li> 4096 (4 vCPU) - Available <code>memory</code> values: Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>requiresCompatibilities</i> The task launch types the task definition was validated against. To determine which task launch types the task definition is validated for, see the <a>TaskDefinition$compatibilities</a> parameter.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>compatibilities</i> The task launch types the task definition validated against during task definition registration. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html">Amazon ECS launch types</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>placementConstraints</i> An array of placement constraint objects to use for tasks. <note> This parameter is not supported for tasks run on AWS Fargate. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>requiresAttributes</i> The container instance attributes required by your task. When an Amazon EC2 instance is registered to your cluster, the Amazon ECS container agent assigns some standard attributes to the instance. You can apply custom attributes, specified as key-value pairs using the Amazon ECS console or the <a>PutAttributes</a> API. These attributes are used when considering task placement for tasks hosted on Amazon EC2 instances. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-constraints.html#attributes">Attributes</a> in the <i>Amazon Elastic Container Service Developer Guide</i>. <note> This parameter is not supported for tasks run on AWS Fargate. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the task definition.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>volumes</i> The list of data volume definitions for the task. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_data_volumes.html">Using data volumes in tasks</a> in the <i>Amazon Elastic Container Service Developer Guide</i>. <note> The <code>host</code> and <code>sourcePath</code> parameters are not supported for tasks run on AWS Fargate. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>revision</i> The revision of the task in a particular family. The revision is a version number of a task definition in a family. When you register a task definition for the first time, the revision is <code>1</code>. Each time that you register a new revision of a task definition in the same family, the revision value always increases by one, even if you have deregistered previous revisions in this family.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>networkMode</i> The Docker networking mode to use for the containers in the task. The valid values are <code>none</code>, <code>bridge</code>, <code>awsvpc</code>, and <code>host</code>. If no network mode is specified, the default is <code>bridge</code>. For Amazon ECS tasks on Fargate, the <code>awsvpc</code> network mode is required. For Amazon ECS tasks on Amazon EC2 instances, any network mode can be used. If the network mode is set to <code>none</code>, you cannot specify port mappings in your container definitions, and the tasks containers do not have external connectivity. The <code>host</code> and <code>awsvpc</code> network modes offer the highest networking performance for containers because they use the EC2 network stack instead of the virtualized network stack provided by the <code>bridge</code> mode. With the <code>host</code> and <code>awsvpc</code> network modes, exposed container ports are mapped directly to the corresponding host port (for the <code>host</code> network mode) or the attached elastic network interface port (for the <code>awsvpc</code> network mode), so you cannot take advantage of dynamic host port mappings.  <important> When using the <code>host</code> network mode, you should not run containers using the root user (UID 0). It is considered best practice to use a non-root user. </important> If the network mode is <code>awsvpc</code>, the task is allocated an elastic network interface, and you must specify a <a>NetworkConfiguration</a> value when you create a service or run a task with the task definition. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html">Task Networking</a> in the <i>Amazon Elastic Container Service Developer Guide</i>. <note> Currently, only Amazon ECS-optimized AMIs, other Amazon Linux variants with the <code>ecs-init</code> package, or AWS Fargate infrastructure support the <code>awsvpc</code> network mode.  </note> If the network mode is <code>host</code>, you cannot run multiple instantiations of the same task on a single container instance when port mappings are used. Docker for Windows uses different network modes than Docker for Linux. When you register a task definition with Windows containers, you must not specify a network mode. If you use the console to register a task definition with Windows containers, you must choose the <code>&lt;default&gt;</code> network mode object.  For more information, see <a href="https://docs.docker.com/engine/reference/run/#network-settings">Network settings</a> in the <i>Docker run reference</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>executionRoleArn</i> The Amazon Resource Name (ARN) of the task execution role that grants the Amazon ECS container agent permission to make AWS API calls on your behalf. The task execution IAM role is required depending on the requirements of your task. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_execution_IAM_role.html">Amazon ECS task execution IAM role</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>taskRoleArn</i> The short name or full Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that grants containers in the task permission to call AWS APIs on your behalf. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html">Amazon ECS Task Role</a> in the <i>Amazon Elastic Container Service Developer Guide</i>. IAM roles for tasks on Windows require that the <code>-EnableTaskIAMRole</code> option is set when you launch the Amazon ECS-optimized Windows AMI. Your containers must also run some configuration code in order to take advantage of the feature. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows_task_IAM_roles.html">Windows IAM roles for tasks</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>family</i> The name of a family that this task definition is registered to. Up to 255 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed. A family groups multiple versions of a task definition. Amazon ECS gives the first task definition that you registered to a family a revision number of 1. Amazon ECS gives sequential revision numbers to each task definition that you add.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>containerDefinitions</i> A list of container definitions in JSON format that describe the different containers that make up your task. For more information about container definition parameters and defaults, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_defintions.html">Amazon ECS Task Definitions</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>taskDefinitionArn</i> The full Amazon Resource Name (ARN) of the task definition.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>properties</i> The set of network configuration parameters to provide the Container Network Interface (CNI) plugin, specified as key-value pairs. <ul> <li>  <code>IgnoredUID</code> - (Required) The user ID (UID) of the proxy container as defined by the <code>user</code> parameter in a container definition. This is used to ensure the proxy ignores its own traffic. If <code>IgnoredGID</code> is specified, this field can be empty. </li> <li>  <code>IgnoredGID</code> - (Required) The group ID (GID) of the proxy container as defined by the <code>user</code> parameter in a container definition. This is used to ensure the proxy ignores its own traffic. If <code>IgnoredUID</code> is specified, this field can be empty. </li> <li>  <code>AppPorts</code> - (Required) The list of ports that the application uses. Network traffic to these ports is forwarded to the <code>ProxyIngressPort</code> and <code>ProxyEgressPort</code>. </li> <li>  <code>ProxyIngressPort</code> - (Required) Specifies the port that incoming traffic to the <code>AppPorts</code> is directed to. </li> <li>  <code>ProxyEgressPort</code> - (Required) Specifies the port that outgoing traffic from the <code>AppPorts</code> is directed to. </li> <li>  <code>EgressIgnoredPorts</code> - (Required) The egress traffic going to the specified ports is ignored and not redirected to the <code>ProxyEgressPort</code>. It can be an empty list. </li> <li>  <code>EgressIgnoredIPs</code> - (Required) The egress traffic going to the specified IP addresses is ignored and not redirected to the <code>ProxyEgressPort</code>. It can be an empty list. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>containerName</i> The name of the container that will serve as the App Mesh proxy.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The proxy type. The only supported value is <code>APPMESH</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>sizeInGiB</i> The total amount, in GiB, of ephemeral storage to set for the task. The minimum supported value is <code>21</code> GiB and the maximum supported value is <code>200</code> GiB.<br/>        """
        pass

    def run_task(self, taskDefinition: str, capacityProviderStrategy: List[CapacityProviderStrategyItem]=None, cluster: str=None, count: int=None, enableECSManagedTags: Boolean=None, enableExecuteCommand: Boolean=None, group: str=None, launchType: str=None, networkConfiguration: NetworkConfiguration=None, overrides: TaskOverride=None, placementConstraints: List[PlacementConstraint]=None, placementStrategy: List[PlacementStrategy]=None, platformVersion: str=None, propagateTags: str=None, referenceId: str=None, startedBy: str=None, tags: List[Tag]=None) -> RunTaskResponse:
        r"""Starts a new task using the specified task definition. You can allow Amazon ECS to place tasks for you, or you can customize how Amazon ECS places tasks using placement constraints and placement strategies. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/scheduling_tasks.html">Scheduling Tasks</a> in the <i>Amazon Elastic Container Service Developer Guide</i>. Alternatively, you can use <a>StartTask</a> to use your own scheduler or place tasks manually on specific container instances. The Amazon ECS API follows an eventual consistency model, due to the distributed nature of the system supporting the API. This means that the result of an API command you run that affects your Amazon ECS resources might not be immediately visible to all subsequent commands you run. Keep this in mind when you carry out an API command that immediately follows a previous API command. To manage eventual consistency, you can do the following: <ul> <li> Confirm the state of the resource before you run a command to modify it. Run the DescribeTasks command using an exponential backoff algorithm to ensure that you allow enough time for the previous command to propagate through the system. To do this, run the DescribeTasks command repeatedly, starting with a couple of seconds of wait time and increasing gradually up to five minutes of wait time. </li> <li> Add wait time between subsequent commands, even if the DescribeTasks command returns an accurate response. Apply an exponential backoff algorithm starting with a couple of seconds of wait time, and increase gradually up to about five minutes of wait time. </li> </ul>

        :param self:
        :param taskDefinition:  The <code>family</code> and <code>revision</code> (<code>family:revision</code>) or full ARN of the task definition to run. If a <code>revision</code> is not specified, the latest <code>ACTIVE</code> revision is used.<br/>tags:  The metadata that you apply to the task to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define. The following basic restrictions apply to tags: <ul> <li> Maximum number of tags per resource - 50 </li> <li> For each resource, each tag key must be unique, and each tag key can have only one value. </li> <li> Maximum key length - 128 Unicode characters in UTF-8 </li> <li> Maximum value length - 256 Unicode characters in UTF-8 </li> <li> If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @. </li> <li> Tag keys and values are case-sensitive. </li> <li> Do not use <code>aws:</code>, <code>AWS:</code>, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit. </li> </ul><br/>startedBy:  An optional tag specified when a task is started. For example, if you automatically trigger a task to run a batch process job, you could apply a unique identifier for that job to your task with the <code>startedBy</code> parameter. You can then identify which tasks belong to that job by filtering the results of a <a>ListTasks</a> call with the <code>startedBy</code> value. Up to 36 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed. If a task is started by an Amazon ECS service, then the <code>startedBy</code> parameter contains the deployment ID of the service that starts it.<br/>referenceId:  The reference ID to use for the task.<br/>propagateTags:  Specifies whether to propagate the tags from the task definition to the task. If no value is specified, the tags are not propagated. Tags can only be propagated to the task during task creation. To add tags to a task after task creation, use the <a>TagResource</a> API action. <note> An error will be received if you specify the <code>SERVICE</code> option when running a task. </note><br/>platformVersion:  The platform version the task should run. A platform version is only specified for tasks using the Fargate launch type. If one is not specified, the <code>LATEST</code> platform version is used by default. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html">AWS Fargate Platform Versions</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.<br/>placementStrategy:  The placement strategy objects to use for the task. You can specify a maximum of five strategy rules per task.<br/>placementConstraints:  An array of placement constraint objects to use for the task. You can specify up to 10 constraints per task (including constraints in the task definition and those specified at runtime).<br/>overrides:  A list of container overrides in JSON format that specify the name of a container in the specified task definition and the overrides it should receive. You can override the default command for a container (that is specified in the task definition or Docker image) with a <code>command</code> override. You can also override existing environment variables (that are specified in the task definition or Docker image) on a container or add new environment variables to it with an <code>environment</code> override. <note> A total of 8192 characters are allowed for overrides. This limit includes the JSON formatting characters of the override structure. </note>:<br/>networkConfiguration:  The network configuration for the task. This parameter is required for task definitions that use the <code>awsvpc</code> network mode to receive their own elastic network interface, and it is not supported for other network modes. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html">Task Networking</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.:<br/>launchType:  The infrastructure on which to run your standalone task. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html">Amazon ECS launch types</a> in the <i>Amazon Elastic Container Service Developer Guide</i>. The <code>FARGATE</code> launch type runs your tasks on AWS Fargate On-Demand infrastructure. <note> Fargate Spot infrastructure is available for use but a capacity provider strategy must be used. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/userguide/fargate-capacity-providers.html">AWS Fargate capacity providers</a> in the <i>Amazon ECS User Guide for AWS Fargate</i>. </note> The <code>EC2</code> launch type runs your tasks on Amazon EC2 instances registered to your cluster. The <code>EXTERNAL</code> launch type runs your tasks on your on-premise server or virtual machine (VM) capacity registered to your cluster. A task can use either a launch type or a capacity provider strategy. If a <code>launchType</code> is specified, the <code>capacityProviderStrategy</code> parameter must be omitted.<br/>group:  The name of the task group to associate with the task. The default value is the family name of the task definition (for example, family:my-family-name).<br/>enableExecuteCommand:  Whether or not to enable the execute command functionality for the containers in this task. If <code>true</code>, this enables execute command functionality on all containers in the task.<br/>enableECSManagedTags:  Specifies whether to enable Amazon ECS managed tags for the task. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html">Tagging Your Amazon ECS Resources</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.<br/>count:  The number of instantiations of the specified task to place on your cluster. You can specify up to 10 tasks per call.<br/>cluster:  The short name or full Amazon Resource Name (ARN) of the cluster on which to run your task. If you do not specify a cluster, the default cluster is assumed.<br/>capacityProviderStrategy:  The capacity provider strategy to use for the task. If a <code>capacityProviderStrategy</code> is specified, the <code>launchType</code> parameter must be omitted. If no <code>capacityProviderStrategy</code> or <code>launchType</code> is specified, the <code>defaultCapacityProviderStrategy</code> for the cluster is used.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>awsvpcConfiguration</i> The VPC subnets and security groups associated with a task. <note> All specified subnets and security groups must be from the same VPC. </note>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>awsvpcConfiguration</b>: The VPC subnets and security groups associated with a task. <note> All specified subnets and security groups must be from the same VPC. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>assignPublicIp</i> Whether the task's elastic network interface receives a public IP address. The default value is <code>DISABLED</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>securityGroups</i> The IDs of the security groups associated with the task or service. If you do not specify a security group, the default security group for the VPC is used. There is a limit of 5 security groups that can be specified per <code>AwsVpcConfiguration</code>. <note> All specified security groups must be from the same VPC. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>subnets</i> The IDs of the subnets associated with the task or service. There is a limit of 16 subnets that can be specified per <code>AwsVpcConfiguration</code>. <note> All specified subnets must be from the same VPC. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ephemeralStorage</i> The ephemeral storage setting override for the task. <note> This parameter is only supported for tasks hosted on AWS Fargate using platform version <code>1.4.0</code> or later. </note>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ephemeralStorage</b>: The ephemeral storage setting override for the task. <note> This parameter is only supported for tasks hosted on AWS Fargate using platform version <code>1.4.0</code> or later. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>taskRoleArn</i> The Amazon Resource Name (ARN) of the IAM role that containers in this task can assume. All containers in this task are granted the permissions that are specified in this role.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>memory</i> The memory override for the task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>executionRoleArn</i> The Amazon Resource Name (ARN) of the task execution IAM role override for the task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>inferenceAcceleratorOverrides</i> The Elastic Inference accelerator override for the task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>cpu</i> The cpu override for the task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>containerOverrides</i> One or more container overrides sent to a task.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>sizeInGiB</i> The total amount, in GiB, of ephemeral storage to set for the task. The minimum supported value is <code>21</code> GiB and the maximum supported value is <code>200</code> GiB.<br/>
        :return: failures:  Any failures associated with the call.<br/>tasks:  A full description of the tasks that were run. The tasks that were successfully placed on your cluster are described here.<br/>        """
        pass

    def start_task(self, taskDefinition: str, containerInstances: List[String], cluster: str=None, enableECSManagedTags: Boolean=None, enableExecuteCommand: Boolean=None, group: str=None, networkConfiguration: NetworkConfiguration=None, overrides: TaskOverride=None, propagateTags: str=None, referenceId: str=None, startedBy: str=None, tags: List[Tag]=None) -> StartTaskResponse:
        r"""Starts a new task from the specified task definition on the specified container instance or instances. Alternatively, you can use <a>RunTask</a> to place tasks for you. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/scheduling_tasks.html">Scheduling Tasks</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.

        :param self:
        :param taskDefinition:  The <code>family</code> and <code>revision</code> (<code>family:revision</code>) or full ARN of the task definition to start. If a <code>revision</code> is not specified, the latest <code>ACTIVE</code> revision is used.<br/>tags:  The metadata that you apply to the task to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define. The following basic restrictions apply to tags: <ul> <li> Maximum number of tags per resource - 50 </li> <li> For each resource, each tag key must be unique, and each tag key can have only one value. </li> <li> Maximum key length - 128 Unicode characters in UTF-8 </li> <li> Maximum value length - 256 Unicode characters in UTF-8 </li> <li> If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @. </li> <li> Tag keys and values are case-sensitive. </li> <li> Do not use <code>aws:</code>, <code>AWS:</code>, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit. </li> </ul><br/>startedBy:  An optional tag specified when a task is started. For example, if you automatically trigger a task to run a batch process job, you could apply a unique identifier for that job to your task with the <code>startedBy</code> parameter. You can then identify which tasks belong to that job by filtering the results of a <a>ListTasks</a> call with the <code>startedBy</code> value. Up to 36 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed. If a task is started by an Amazon ECS service, then the <code>startedBy</code> parameter contains the deployment ID of the service that starts it.<br/>referenceId:  The reference ID to use for the task.<br/>propagateTags:  Specifies whether to propagate the tags from the task definition or the service to the task. If no value is specified, the tags are not propagated.<br/>overrides:  A list of container overrides in JSON format that specify the name of a container in the specified task definition and the overrides it should receive. You can override the default command for a container (that is specified in the task definition or Docker image) with a <code>command</code> override. You can also override existing environment variables (that are specified in the task definition or Docker image) on a container or add new environment variables to it with an <code>environment</code> override. <note> A total of 8192 characters are allowed for overrides. This limit includes the JSON formatting characters of the override structure. </note>:<br/>networkConfiguration:  The VPC subnet and security group configuration for tasks that receive their own elastic network interface by using the <code>awsvpc</code> networking mode.:<br/>group:  The name of the task group to associate with the task. The default value is the family name of the task definition (for example, family:my-family-name).<br/>enableExecuteCommand:  Whether or not the execute command functionality is enabled for the task. If <code>true</code>, this enables execute command functionality on all containers in the task.<br/>enableECSManagedTags:  Specifies whether to enable Amazon ECS managed tags for the task. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html">Tagging Your Amazon ECS Resources</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.<br/>containerInstances:  The container instance IDs or full ARN entries for the container instances on which you would like to place your task. You can specify up to 10 container instances.<br/>cluster:  The short name or full Amazon Resource Name (ARN) of the cluster on which to start your task. If you do not specify a cluster, the default cluster is assumed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>awsvpcConfiguration</i> The VPC subnets and security groups associated with a task. <note> All specified subnets and security groups must be from the same VPC. </note>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>awsvpcConfiguration</b>: The VPC subnets and security groups associated with a task. <note> All specified subnets and security groups must be from the same VPC. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>assignPublicIp</i> Whether the task's elastic network interface receives a public IP address. The default value is <code>DISABLED</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>securityGroups</i> The IDs of the security groups associated with the task or service. If you do not specify a security group, the default security group for the VPC is used. There is a limit of 5 security groups that can be specified per <code>AwsVpcConfiguration</code>. <note> All specified security groups must be from the same VPC. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>subnets</i> The IDs of the subnets associated with the task or service. There is a limit of 16 subnets that can be specified per <code>AwsVpcConfiguration</code>. <note> All specified subnets must be from the same VPC. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ephemeralStorage</i> The ephemeral storage setting override for the task. <note> This parameter is only supported for tasks hosted on AWS Fargate using platform version <code>1.4.0</code> or later. </note>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ephemeralStorage</b>: The ephemeral storage setting override for the task. <note> This parameter is only supported for tasks hosted on AWS Fargate using platform version <code>1.4.0</code> or later. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>taskRoleArn</i> The Amazon Resource Name (ARN) of the IAM role that containers in this task can assume. All containers in this task are granted the permissions that are specified in this role.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>memory</i> The memory override for the task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>executionRoleArn</i> The Amazon Resource Name (ARN) of the task execution IAM role override for the task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>inferenceAcceleratorOverrides</i> The Elastic Inference accelerator override for the task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>cpu</i> The cpu override for the task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>containerOverrides</i> One or more container overrides sent to a task.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>sizeInGiB</i> The total amount, in GiB, of ephemeral storage to set for the task. The minimum supported value is <code>21</code> GiB and the maximum supported value is <code>200</code> GiB.<br/>
        :return: failures:  Any failures associated with the call.<br/>tasks:  A full description of the tasks that were started. Each task that was successfully placed on your container instances is described.<br/>        """
        pass

    def stop_task(self, task: str, cluster: str=None, reason: str=None) -> StopTaskResponse:
        r"""Stops a running task. Any tags associated with the task will be deleted. When <a>StopTask</a> is called on a task, the equivalent of <code>docker stop</code> is issued to the containers running in the task. This results in a <code>SIGTERM</code> value and a default 30-second timeout, after which the <code>SIGKILL</code> value is sent and the containers are forcibly stopped. If the container handles the <code>SIGTERM</code> value gracefully and exits within 30 seconds from receiving it, no <code>SIGKILL</code> value is sent. <note> The default 30-second timeout can be configured on the Amazon ECS container agent with the <code>ECS_CONTAINER_STOP_TIMEOUT</code> variable. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html">Amazon ECS Container Agent Configuration</a> in the <i>Amazon Elastic Container Service Developer Guide</i>. </note>

        :param self:
        :param reason:  An optional message specified when a task is stopped. For example, if you are using a custom scheduler, you can use this parameter to specify the reason for stopping the task here, and the message appears in subsequent <a>DescribeTasks</a> API operations on this task. Up to 255 characters are allowed in this message.<br/>task:  The task ID or full Amazon Resource Name (ARN) of the task to stop.<br/>cluster:  The short name or full Amazon Resource Name (ARN) of the cluster that hosts the task to stop. If you do not specify a cluster, the default cluster is assumed.<br/>
        :return: task:  The task that was stopped.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ephemeralStorage</i> The ephemeral storage settings for the task.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ephemeralStorage</b>: The ephemeral storage settings for the task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The version counter for the task. Every time a task experiences a change that triggers a CloudWatch event, the version counter is incremented. If you are replicating your Amazon ECS task state with CloudWatch Events, you can compare the version of a task reported by the Amazon ECS API actions with the version reported in CloudWatch Events for the task (inside the <code>detail</code> object) to verify that the version in your event stream is current.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>taskDefinitionArn</i> The ARN of the task definition that creates the task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>taskArn</i> The Amazon Resource Name (ARN) of the task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The metadata that you apply to the task to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define. The following basic restrictions apply to tags: <ul> <li> Maximum number of tags per resource - 50 </li> <li> For each resource, each tag key must be unique, and each tag key can have only one value. </li> <li> Maximum key length - 128 Unicode characters in UTF-8 </li> <li> Maximum value length - 256 Unicode characters in UTF-8 </li> <li> If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @. </li> <li> Tag keys and values are case-sensitive. </li> <li> Do not use <code>aws:</code>, <code>AWS:</code>, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>stoppingAt</i> The Unix timestamp for when the task stops (transitions from the <code>RUNNING</code> state to <code>STOPPED</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>stoppedReason</i> The reason that the task was stopped.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>stoppedAt</i> The Unix timestamp for when the task was stopped (the task transitioned from the <code>RUNNING</code> state to the <code>STOPPED</code> state).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>stopCode</i> The stop code indicating why a task was stopped. The <code>stoppedReason</code> may contain additional details.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>startedBy</i> The tag specified when a task is started. If the task is started by an Amazon ECS service, then the <code>startedBy</code> parameter contains the deployment ID of the service that starts it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>startedAt</i> The Unix timestamp for when the task started (the task transitioned from the <code>PENDING</code> state to the <code>RUNNING</code> state).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>pullStoppedAt</i> The Unix timestamp for when the container image pull completed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>pullStartedAt</i> The Unix timestamp for when the container image pull began.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>platformVersion</i> The platform version on which your task is running. A platform version is only specified for tasks using the Fargate launch type. If one is not specified, the <code>LATEST</code> platform version is used by default. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html">AWS Fargate Platform Versions</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>overrides</i> One or more container overrides.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>overrides</b>: One or more container overrides.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>memory</i> The amount of memory (in MiB) used by the task as expressed in a task definition. It can be expressed as an integer using MiB, for example <code>1024</code>. It can also be expressed as a string using GB, for example <code>1GB</code> or <code>1 GB</code>. String values are converted to an integer indicating the MiB when the task definition is registered. If you are using the EC2 launch type, this field is optional. If you are using the Fargate launch type, this field is required and you must use one of the following values, which determines your range of supported values for the <code>cpu</code> parameter: <ul> <li> 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available <code>cpu</code> values: 256 (.25 vCPU) </li> <li> 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available <code>cpu</code> values: 512 (.5 vCPU) </li> <li> 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available <code>cpu</code> values: 1024 (1 vCPU) </li> <li> Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) - Available <code>cpu</code> values: 2048 (2 vCPU) </li> <li> Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) - Available <code>cpu</code> values: 4096 (4 vCPU) </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>launchType</i> The infrastructure on which your task is running. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html">Amazon ECS launch types</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastStatus</i> The last known status of the task. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-lifecycle.html">Task Lifecycle</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>inferenceAccelerators</i> The Elastic Inference accelerator associated with the task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>healthStatus</i> The health status for the task, which is determined by the health of the essential containers in the task. If all essential containers in the task are reporting as <code>HEALTHY</code>, then the task status also reports as <code>HEALTHY</code>. If any essential containers in the task are reporting as <code>UNHEALTHY</code> or <code>UNKNOWN</code>, then the task status also reports as <code>UNHEALTHY</code> or <code>UNKNOWN</code>, accordingly. <note> The Amazon ECS container agent does not monitor or report on Docker health checks that are embedded in a container image (such as those specified in a parent image or from the image's Dockerfile) and not specified in the container definition. Health check parameters that are specified in a container definition override any Docker health checks that exist in the container image. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>group</i> The name of the task group associated with the task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>executionStoppedAt</i> The Unix timestamp for when the task execution stopped.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>enableExecuteCommand</i> Whether or not execute command functionality is enabled for this task. If <code>true</code>, this enables execute command functionality on all containers in the task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>desiredStatus</i> The desired status of the task. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-lifecycle.html">Task Lifecycle</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The Unix timestamp for when the task was created (the task entered the <code>PENDING</code> state).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>cpu</i> The number of CPU units used by the task as expressed in a task definition. It can be expressed as an integer using CPU units, for example <code>1024</code>. It can also be expressed as a string using vCPUs, for example <code>1 vCPU</code> or <code>1 vcpu</code>. String values are converted to an integer indicating the CPU units when the task definition is registered. If you are using the EC2 launch type, this field is optional. Supported values are between <code>128</code> CPU units (<code>0.125</code> vCPUs) and <code>10240</code> CPU units (<code>10</code> vCPUs). If you are using the Fargate launch type, this field is required and you must use one of the following values, which determines your range of supported values for the <code>memory</code> parameter: <ul> <li> 256 (.25 vCPU) - Available <code>memory</code> values: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) </li> <li> 512 (.5 vCPU) - Available <code>memory</code> values: 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) </li> <li> 1024 (1 vCPU) - Available <code>memory</code> values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) </li> <li> 2048 (2 vCPU) - Available <code>memory</code> values: Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) </li> <li> 4096 (4 vCPU) - Available <code>memory</code> values: Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>containers</i> The containers associated with the task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>containerInstanceArn</i> The ARN of the container instances that host the task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>connectivityAt</i> The Unix timestamp for when the task last went into <code>CONNECTED</code> status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>connectivity</i> The connectivity status of a task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>clusterArn</i> The ARN of the cluster that hosts the task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>capacityProviderName</i> The capacity provider associated with the task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>availabilityZone</i> The availability zone of the task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>attributes</i> The attributes of the task<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>attachments</i> The Elastic Network Adapter associated with the task if the task uses the <code>awsvpc</code> network mode.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>taskRoleArn</i> The Amazon Resource Name (ARN) of the IAM role that containers in this task can assume. All containers in this task are granted the permissions that are specified in this role.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>memory</i> The memory override for the task.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>executionRoleArn</i> The Amazon Resource Name (ARN) of the task execution IAM role override for the task.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>inferenceAcceleratorOverrides</i> The Elastic Inference accelerator override for the task.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>cpu</i> The cpu override for the task.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>containerOverrides</i> One or more container overrides sent to a task.<br/>The ephemeral storage setting override for the task. <note> This parameter is only supported for tasks hosted on AWS Fargate using platform version <code>1.4.0</code> or later. </note>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ephemeralStorage</b>: The ephemeral storage setting override for the task. <note> This parameter is only supported for tasks hosted on AWS Fargate using platform version <code>1.4.0</code> or later. </note>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>sizeInGiB</i> The total amount, in GiB, of ephemeral storage to set for the task. The minimum supported value is <code>21</code> GiB and the maximum supported value is <code>200</code> GiB.<br/>        """
        pass

    def submit_attachment_state_changes(self, attachments: List[AttachmentStateChange], cluster: str=None) -> SubmitAttachmentStateChangesResponse:
        r"""<note> This action is only used by the Amazon ECS agent, and it is not intended for use outside of the agent. </note> Sent to acknowledge that an attachment changed states.

        :param self:
        :param attachments:  Any attachments associated with the state change request.<br/>cluster:  The short name or full ARN of the cluster that hosts the container instance the attachment belongs to.<br/>
        :return: acknowledgment:  Acknowledgement of the state change.<br/>        """
        pass

    def submit_container_state_change(self, cluster: str=None, task: str=None, containerName: str=None, runtimeId: str=None, status: str=None, exitCode: int=None, reason: str=None, networkBindings: List[NetworkBinding]=None) -> SubmitContainerStateChangeResponse:
        r"""<note> This action is only used by the Amazon ECS agent, and it is not intended for use outside of the agent. </note> Sent to acknowledge that a container changed states.

        :param self:
        :param networkBindings:  The network bindings of the container.<br/>reason:  The reason for the state change request.<br/>exitCode:  The exit code returned for the state change request.<br/>status:  The status of the state change request.<br/>runtimeId:  The ID of the Docker container.<br/>containerName:  The name of the container.<br/>task:  The task ID or full Amazon Resource Name (ARN) of the task that hosts the container.<br/>cluster:  The short name or full ARN of the cluster that hosts the container.<br/>
        :return: acknowledgment:  Acknowledgement of the state change.<br/>        """
        pass

    def submit_task_state_change(self, cluster: str=None, task: str=None, status: str=None, reason: str=None, containers: List[ContainerStateChange]=None, attachments: List[AttachmentStateChange]=None, managedAgents: List[ManagedAgentStateChange]=None, pullStartedAt: Timestamp=None, pullStoppedAt: Timestamp=None, executionStoppedAt: Timestamp=None) -> SubmitTaskStateChangeResponse:
        r"""<note> This action is only used by the Amazon ECS agent, and it is not intended for use outside of the agent. </note> Sent to acknowledge that a task changed states.

        :param self:
        :param executionStoppedAt:  The Unix timestamp for when the task execution stopped.<br/>pullStoppedAt:  The Unix timestamp for when the container image pull completed.<br/>pullStartedAt:  The Unix timestamp for when the container image pull began.<br/>managedAgents:  The details for the managed agent associated with the task.<br/>attachments:  Any attachments associated with the state change request.<br/>containers:  Any containers associated with the state change request.<br/>reason:  The reason for the state change request.<br/>status:  The status of the state change request.<br/>task:  The task ID or full ARN of the task in the state change request.<br/>cluster:  The short name or full Amazon Resource Name (ARN) of the cluster that hosts the task.<br/>
        :return: acknowledgment:  Acknowledgement of the state change.<br/>        """
        pass

    def tag_resource(self, tags: List[Tag], resourceArn: str) -> TagResourceResponse:
        r"""Associates the specified tags to a resource with the specified <code>resourceArn</code>. If existing tags on a resource are not specified in the request parameters, they are not changed. When a resource is deleted, the tags associated with that resource are deleted as well.

        :param self:
        :param tags:  The tags to add to the resource. A tag is an array of key-value pairs. The following basic restrictions apply to tags: <ul> <li> Maximum number of tags per resource - 50 </li> <li> For each resource, each tag key must be unique, and each tag key can have only one value. </li> <li> Maximum key length - 128 Unicode characters in UTF-8 </li> <li> Maximum value length - 256 Unicode characters in UTF-8 </li> <li> If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @. </li> <li> Tag keys and values are case-sensitive. </li> <li> Do not use <code>aws:</code>, <code>AWS:</code>, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit. </li> </ul><br/>resourceArn:  The Amazon Resource Name (ARN) of the resource to which to add tags. Currently, the supported resources are Amazon ECS capacity providers, tasks, services, task definitions, clusters, and container instances.<br/>
        :return:         """
        pass

    def untag_resource(self, tagKeys: List[TagKey], resourceArn: str) -> UntagResourceResponse:
        r"""Deletes specified tags from a resource.

        :param self:
        :param tagKeys:  The keys of the tags to be removed.<br/>resourceArn:  The Amazon Resource Name (ARN) of the resource from which to delete tags. Currently, the supported resources are Amazon ECS capacity providers, tasks, services, task definitions, clusters, and container instances.<br/>
        :return:         """
        pass

    def update_capacity_provider(self, autoScalingGroupProvider: AutoScalingGroupProviderUpdate, name: str) -> UpdateCapacityProviderResponse:
        r"""Modifies the parameters for a capacity provider.

        :param self:
        :param autoScalingGroupProvider:  An object representing the parameters to update for the Auto Scaling group capacity provider.:<br/>name:  The name of the capacity provider to update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>managedTerminationProtection</i> The managed termination protection setting to use for the Auto Scaling group capacity provider. This determines whether the Auto Scaling group has managed termination protection. <important> When using managed termination protection, managed scaling must also be used otherwise managed termination protection will not work. </important> When managed termination protection is enabled, Amazon ECS prevents the Amazon EC2 instances in an Auto Scaling group that contain tasks from being terminated during a scale-in action. The Auto Scaling group and each instance in the Auto Scaling group must have instance protection from scale-in actions enabled as well. For more information, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-termination.html#instance-protection">Instance Protection</a> in the <i>AWS Auto Scaling User Guide</i>. When managed termination protection is disabled, your Amazon EC2 instances are not protected from termination when the Auto Scaling group scales in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>managedScaling</i> The managed scaling settings for the Auto Scaling group capacity provider.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>managedScaling</b>: The managed scaling settings for the Auto Scaling group capacity provider.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>instanceWarmupPeriod</i> The period of time, in seconds, after a newly launched Amazon EC2 instance can contribute to CloudWatch metrics for Auto Scaling group. If this parameter is omitted, the default value of <code>300</code> seconds is used.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>maximumScalingStepSize</i> The maximum number of container instances that Amazon ECS will scale in or scale out at one time. If this parameter is omitted, the default value of <code>10000</code> is used.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>minimumScalingStepSize</i> The minimum number of container instances that Amazon ECS will scale in or scale out at one time. If this parameter is omitted, the default value of <code>1</code> is used.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>targetCapacity</i> The target capacity value for the capacity provider. The specified value must be greater than <code>0</code> and less than or equal to <code>100</code>. A value of <code>100</code> will result in the Amazon EC2 instances in your Auto Scaling group being completely utilized.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> Whether or not to enable managed scaling for the capacity provider.<br/>
        :return: capacityProvider:  Details about the capacity provider.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The metadata that you apply to the capacity provider to help you categorize and organize it. Each tag consists of a key and an optional value, both of which you define. The following basic restrictions apply to tags: <ul> <li> Maximum number of tags per resource - 50 </li> <li> For each resource, each tag key must be unique, and each tag key can have only one value. </li> <li> Maximum key length - 128 Unicode characters in UTF-8 </li> <li> Maximum value length - 256 Unicode characters in UTF-8 </li> <li> If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @. </li> <li> Tag keys and values are case-sensitive. </li> <li> Do not use <code>aws:</code>, <code>AWS:</code>, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>updateStatusReason</i> The update status reason. This provides further details about the update status for the capacity provider.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>updateStatus</i> The update status of the capacity provider. The following are the possible states that will be returned. <dl> <dt>DELETE_IN_PROGRESS</dt> <dd> The capacity provider is in the process of being deleted. </dd> <dt>DELETE_COMPLETE</dt> <dd> The capacity provider has been successfully deleted and will have an <code>INACTIVE</code> status. </dd> <dt>DELETE_FAILED</dt> <dd> The capacity provider was unable to be deleted. The update status reason will provide further details about why the delete failed. </dd> </dl><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>autoScalingGroupProvider</i> The Auto Scaling group settings for the capacity provider.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>autoScalingGroupProvider</b>: The Auto Scaling group settings for the capacity provider.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current status of the capacity provider. Only capacity providers in an <code>ACTIVE</code> state can be used in a cluster. When a capacity provider is successfully deleted, it will have an <code>INACTIVE</code> status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the capacity provider.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>capacityProviderArn</i> The Amazon Resource Name (ARN) that identifies the capacity provider.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>autoScalingGroupArn</i> The Amazon Resource Name (ARN) that identifies the Auto Scaling group.<br/>The managed scaling settings for the Auto Scaling group capacity provider.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>managedScaling</b>: The managed scaling settings for the Auto Scaling group capacity provider.        """
        pass

    def update_cluster(self, cluster: str, settings: List[ClusterSetting]=None, configuration: ClusterConfiguration=None) -> UpdateClusterResponse:
        r"""Updates the cluster.

        :param self:
        :param configuration:  The execute command configuration for the cluster.:<br/>settings:  The cluster settings for your cluster.<br/>cluster:  The name of the cluster to modify the settings for.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>executeCommandConfiguration</i> The details of the execute command configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>executeCommandConfiguration</b>: The details of the execute command configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>logging</i> The log setting to use for redirecting logs for your execute command results. The following log settings are available. <ul> <li>  <code>NONE</code>: The execute command session is not logged. </li> <li>  <code>DEFAULT</code>: The <code>awslogs</code> configuration in the task definition is used. If no logging parameter is specified, it defaults to this value. If no <code>awslogs</code> log driver is configured in the task definition, the output won't be logged. </li> <li>  <code>OVERRIDE</code>: Specify the logging details as a part of <code>logConfiguration</code>. If the <code>OVERRIDE</code> logging option is specified, the <code>logConfiguration</code> is required. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>kmsKeyId</i> Specify an AWS Key Management Service key ID to encrypt the data between the local client and the container.<br/>The log configuration for the results of the execute command actions. The logs can be sent to CloudWatch Logs or an Amazon S3 bucket. When <code>logging=OVERRIDE</code> is specified, a <code>logConfiguration</code> must be provided.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>logConfiguration</b>: The log configuration for the results of the execute command actions. The logs can be sent to CloudWatch Logs or an Amazon S3 bucket. When <code>logging=OVERRIDE</code> is specified, a <code>logConfiguration</code> must be provided.
        :return: cluster:  Details about the cluster.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>attachmentsStatus</i> The status of the capacity providers associated with the cluster. The following are the states that will be returned: <dl> <dt>UPDATE_IN_PROGRESS</dt> <dd> The available capacity providers for the cluster are updating. This occurs when the Auto Scaling plan is provisioning or deprovisioning. </dd> <dt>UPDATE_COMPLETE</dt> <dd> The capacity providers have successfully updated. </dd> <dt>UPDATE_FAILED</dt> <dd> The capacity provider updates failed. </dd> </dl><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>attachments</i> The resources attached to a cluster. When using a capacity provider with a cluster, the Auto Scaling plan that is created will be returned as a cluster attachment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>defaultCapacityProviderStrategy</i> The default capacity provider strategy for the cluster. When services or tasks are run in the cluster with no launch type or capacity provider strategy specified, the default capacity provider strategy is used.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>capacityProviders</i> The capacity providers associated with the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>settings</i> The settings for the cluster. This parameter indicates whether CloudWatch Container Insights is enabled or disabled for a cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The metadata that you apply to the cluster to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define. The following basic restrictions apply to tags: <ul> <li> Maximum number of tags per resource - 50 </li> <li> For each resource, each tag key must be unique, and each tag key can have only one value. </li> <li> Maximum key length - 128 Unicode characters in UTF-8 </li> <li> Maximum value length - 256 Unicode characters in UTF-8 </li> <li> If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @. </li> <li> Tag keys and values are case-sensitive. </li> <li> Do not use <code>aws:</code>, <code>AWS:</code>, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statistics</i> Additional information about your clusters that are separated by launch type, including: <ul> <li> runningEC2TasksCount </li> <li> RunningFargateTasksCount </li> <li> pendingEC2TasksCount </li> <li> pendingFargateTasksCount </li> <li> activeEC2ServiceCount </li> <li> activeFargateServiceCount </li> <li> drainingEC2ServiceCount </li> <li> drainingFargateServiceCount </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>activeServicesCount</i> The number of services that are running on the cluster in an <code>ACTIVE</code> state. You can view these services with <a>ListServices</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>pendingTasksCount</i> The number of tasks in the cluster that are in the <code>PENDING</code> state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>runningTasksCount</i> The number of tasks in the cluster that are in the <code>RUNNING</code> state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>registeredContainerInstancesCount</i> The number of container instances registered into the cluster. This includes container instances in both <code>ACTIVE</code> and <code>DRAINING</code> status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the cluster. The following are the possible states that will be returned. <dl> <dt>ACTIVE</dt> <dd> The cluster is ready to accept tasks and if applicable you can register container instances with the cluster. </dd> <dt>PROVISIONING</dt> <dd> The cluster has capacity providers associated with it and the resources needed for the capacity provider are being created. </dd> <dt>DEPROVISIONING</dt> <dd> The cluster has capacity providers associated with it and the resources needed for the capacity provider are being deleted. </dd> <dt>FAILED</dt> <dd> The cluster has capacity providers associated with it and the resources needed for the capacity provider have failed to create. </dd> <dt>INACTIVE</dt> <dd> The cluster has been deleted. Clusters with an <code>INACTIVE</code> status may remain discoverable in your account for a period of time. However, this behavior is subject to change in the future, so you should not rely on <code>INACTIVE</code> clusters persisting. </dd> </dl><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>configuration</i> The execute command configuration for the cluster.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>configuration</b>: The execute command configuration for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>clusterName</i> A user-generated string that you use to identify your cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>clusterArn</i> The Amazon Resource Name (ARN) that identifies the cluster. The ARN contains the <code>arn:aws:ecs</code> namespace, followed by the Region of the cluster, the AWS account ID of the cluster owner, the <code>cluster</code> namespace, and then the cluster name. For example, <code>arn:aws:ecs:region:012345678910:cluster/test</code>.<br/>The details of the execute command configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>executeCommandConfiguration</b>: The details of the execute command configuration.        """
        pass

    def update_cluster_settings(self, settings: List[ClusterSetting], cluster: str) -> UpdateClusterSettingsResponse:
        r"""Modifies the settings to use for a cluster.

        :param self:
        :param settings:  The setting to use by default for a cluster. This parameter is used to enable CloudWatch Container Insights for a cluster. If this value is specified, it will override the <code>containerInsights</code> value set with <a>PutAccountSetting</a> or <a>PutAccountSettingDefault</a>.<br/>cluster:  The name of the cluster to modify the settings for.<br/>
        :return: cluster:  Details about the cluster:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>attachmentsStatus</i> The status of the capacity providers associated with the cluster. The following are the states that will be returned: <dl> <dt>UPDATE_IN_PROGRESS</dt> <dd> The available capacity providers for the cluster are updating. This occurs when the Auto Scaling plan is provisioning or deprovisioning. </dd> <dt>UPDATE_COMPLETE</dt> <dd> The capacity providers have successfully updated. </dd> <dt>UPDATE_FAILED</dt> <dd> The capacity provider updates failed. </dd> </dl><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>attachments</i> The resources attached to a cluster. When using a capacity provider with a cluster, the Auto Scaling plan that is created will be returned as a cluster attachment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>defaultCapacityProviderStrategy</i> The default capacity provider strategy for the cluster. When services or tasks are run in the cluster with no launch type or capacity provider strategy specified, the default capacity provider strategy is used.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>capacityProviders</i> The capacity providers associated with the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>settings</i> The settings for the cluster. This parameter indicates whether CloudWatch Container Insights is enabled or disabled for a cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The metadata that you apply to the cluster to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define. The following basic restrictions apply to tags: <ul> <li> Maximum number of tags per resource - 50 </li> <li> For each resource, each tag key must be unique, and each tag key can have only one value. </li> <li> Maximum key length - 128 Unicode characters in UTF-8 </li> <li> Maximum value length - 256 Unicode characters in UTF-8 </li> <li> If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @. </li> <li> Tag keys and values are case-sensitive. </li> <li> Do not use <code>aws:</code>, <code>AWS:</code>, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statistics</i> Additional information about your clusters that are separated by launch type, including: <ul> <li> runningEC2TasksCount </li> <li> RunningFargateTasksCount </li> <li> pendingEC2TasksCount </li> <li> pendingFargateTasksCount </li> <li> activeEC2ServiceCount </li> <li> activeFargateServiceCount </li> <li> drainingEC2ServiceCount </li> <li> drainingFargateServiceCount </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>activeServicesCount</i> The number of services that are running on the cluster in an <code>ACTIVE</code> state. You can view these services with <a>ListServices</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>pendingTasksCount</i> The number of tasks in the cluster that are in the <code>PENDING</code> state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>runningTasksCount</i> The number of tasks in the cluster that are in the <code>RUNNING</code> state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>registeredContainerInstancesCount</i> The number of container instances registered into the cluster. This includes container instances in both <code>ACTIVE</code> and <code>DRAINING</code> status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the cluster. The following are the possible states that will be returned. <dl> <dt>ACTIVE</dt> <dd> The cluster is ready to accept tasks and if applicable you can register container instances with the cluster. </dd> <dt>PROVISIONING</dt> <dd> The cluster has capacity providers associated with it and the resources needed for the capacity provider are being created. </dd> <dt>DEPROVISIONING</dt> <dd> The cluster has capacity providers associated with it and the resources needed for the capacity provider are being deleted. </dd> <dt>FAILED</dt> <dd> The cluster has capacity providers associated with it and the resources needed for the capacity provider have failed to create. </dd> <dt>INACTIVE</dt> <dd> The cluster has been deleted. Clusters with an <code>INACTIVE</code> status may remain discoverable in your account for a period of time. However, this behavior is subject to change in the future, so you should not rely on <code>INACTIVE</code> clusters persisting. </dd> </dl><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>configuration</i> The execute command configuration for the cluster.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>configuration</b>: The execute command configuration for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>clusterName</i> A user-generated string that you use to identify your cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>clusterArn</i> The Amazon Resource Name (ARN) that identifies the cluster. The ARN contains the <code>arn:aws:ecs</code> namespace, followed by the Region of the cluster, the AWS account ID of the cluster owner, the <code>cluster</code> namespace, and then the cluster name. For example, <code>arn:aws:ecs:region:012345678910:cluster/test</code>.<br/>The details of the execute command configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>executeCommandConfiguration</b>: The details of the execute command configuration.        """
        pass

    def update_container_agent(self, containerInstance: str, cluster: str=None) -> UpdateContainerAgentResponse:
        r"""Updates the Amazon ECS container agent on a specified container instance. Updating the Amazon ECS container agent does not interrupt running tasks or services on the container instance. The process for updating the agent differs depending on whether your container instance was launched with the Amazon ECS-optimized AMI or another operating system. <note> The <code>UpdateContainerAgent</code> API isn't supported for container instances using the Amazon ECS-optimized Amazon Linux 2 (arm64) AMI. To update the container agent, you can update the <code>ecs-init</code> package which will update the agent. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/agent-update-ecs-ami.html">Updating the Amazon ECS container agent</a> in the <i>Amazon Elastic Container Service Developer Guide</i>. </note> The <code>UpdateContainerAgent</code> API requires an Amazon ECS-optimized AMI or Amazon Linux AMI with the <code>ecs-init</code> service installed and running. For help updating the Amazon ECS container agent on other operating systems, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html#manually_update_agent">Manually updating the Amazon ECS container agent</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.

        :param self:
        :param containerInstance:  The container instance ID or full ARN entries for the container instance on which you would like to update the Amazon ECS container agent.<br/>cluster:  The short name or full Amazon Resource Name (ARN) of the cluster that your container instance is running on. If you do not specify a cluster, the default cluster is assumed.<br/>
        :return: containerInstance:  The container instance for which the container agent was updated.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The metadata that you apply to the container instance to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define. The following basic restrictions apply to tags: <ul> <li> Maximum number of tags per resource - 50 </li> <li> For each resource, each tag key must be unique, and each tag key can have only one value. </li> <li> Maximum key length - 128 Unicode characters in UTF-8 </li> <li> Maximum value length - 256 Unicode characters in UTF-8 </li> <li> If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @. </li> <li> Tag keys and values are case-sensitive. </li> <li> Do not use <code>aws:</code>, <code>AWS:</code>, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>attachments</i> The resources attached to a container instance, such as elastic network interfaces.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>registeredAt</i> The Unix timestamp for when the container instance was registered.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>attributes</i> The attributes set for the container instance, either by the Amazon ECS container agent at instance registration or manually with the <a>PutAttributes</a> operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>agentUpdateStatus</i> The status of the most recent agent update. If an update has never been requested, this value is <code>NULL</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>pendingTasksCount</i> The number of tasks on the container instance that are in the <code>PENDING</code> status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>runningTasksCount</i> The number of tasks on the container instance that are in the <code>RUNNING</code> status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>agentConnected</i> This parameter returns <code>true</code> if the agent is connected to Amazon ECS. Registered instances with an agent that may be unhealthy or stopped return <code>false</code>. Only instances connected to an agent can accept placement requests.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusReason</i> The reason that the container instance reached its current status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the container instance. The valid values are <code>REGISTERING</code>, <code>REGISTRATION_FAILED</code>, <code>ACTIVE</code>, <code>INACTIVE</code>, <code>DEREGISTERING</code>, or <code>DRAINING</code>. If your account has opted in to the <code>awsvpcTrunking</code> account setting, then any newly registered container instance will transition to a <code>REGISTERING</code> status while the trunk elastic network interface is provisioned for the instance. If the registration fails, the instance will transition to a <code>REGISTRATION_FAILED</code> status. You can describe the container instance and see the reason for failure in the <code>statusReason</code> parameter. Once the container instance is terminated, the instance transitions to a <code>DEREGISTERING</code> status while the trunk elastic network interface is deprovisioned. The instance then transitions to an <code>INACTIVE</code> status. The <code>ACTIVE</code> status indicates that the container instance can accept tasks. The <code>DRAINING</code> indicates that new tasks are not placed on the container instance and any service tasks running on the container instance are removed if possible. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/container-instance-draining.html">Container Instance Draining</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>registeredResources</i> For CPU and memory resource types, this parameter describes the amount of each resource that was available on the container instance when the container agent registered it with Amazon ECS. This value represents the total amount of CPU and memory that can be allocated on this container instance to tasks. For port resource types, this parameter describes the ports that were reserved by the Amazon ECS container agent when it registered the container instance with Amazon ECS.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>remainingResources</i> For CPU and memory resource types, this parameter describes the remaining CPU and memory that has not already been allocated to tasks and is therefore available for new tasks. For port resource types, this parameter describes the ports that were reserved by the Amazon ECS container agent (at instance registration time) and any task containers that have reserved port mappings on the host (with the <code>host</code> or <code>bridge</code> network mode). Any port that is not specified here is available for new tasks.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>versionInfo</i> The version information for the Amazon ECS container agent and Docker daemon running on the container instance.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>versionInfo</b>: The version information for the Amazon ECS container agent and Docker daemon running on the container instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The version counter for the container instance. Every time a container instance experiences a change that triggers a CloudWatch event, the version counter is incremented. If you are replicating your Amazon ECS container instance state with CloudWatch Events, you can compare the version of a container instance reported by the Amazon ECS APIs with the version reported in CloudWatch Events for the container instance (inside the <code>detail</code> object) to verify that the version in your event stream is current.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>capacityProviderName</i> The capacity provider associated with the container instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ec2InstanceId</i> The ID of the container instance. For Amazon EC2 instances, this value is the Amazon EC2 instance ID. For external instances, this value is the AWS Systems Manager managed instance ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>containerInstanceArn</i> The Amazon Resource Name (ARN) of the container instance. The ARN contains the <code>arn:aws:ecs</code> namespace, followed by the Region of the container instance, the AWS account ID of the container instance owner, the <code>container-instance</code> namespace, and then the container instance ID. For example, <code>arn:aws:ecs:region:aws_account_id:container-instance/container_instance_ID</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>dockerVersion</i> The Docker version running on the container instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>agentHash</i> The Git commit hash for the Amazon ECS container agent build on the <a href="https://github.com/aws/amazon-ecs-agent/commits/master">amazon-ecs-agent </a> GitHub repository.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>agentVersion</i> The version number of the Amazon ECS container agent.<br/>        """
        pass

    def update_container_instances_state(self, status: str, containerInstances: List[String], cluster: str=None) -> UpdateContainerInstancesStateResponse:
        r"""Modifies the status of an Amazon ECS container instance. Once a container instance has reached an <code>ACTIVE</code> state, you can change the status of a container instance to <code>DRAINING</code> to manually remove an instance from a cluster, for example to perform system updates, update the Docker daemon, or scale down the cluster size. <important> A container instance cannot be changed to <code>DRAINING</code> until it has reached an <code>ACTIVE</code> status. If the instance is in any other status, an error will be received. </important> When you set a container instance to <code>DRAINING</code>, Amazon ECS prevents new tasks from being scheduled for placement on the container instance and replacement service tasks are started on other container instances in the cluster if the resources are available. Service tasks on the container instance that are in the <code>PENDING</code> state are stopped immediately. Service tasks on the container instance that are in the <code>RUNNING</code> state are stopped and replaced according to the service's deployment configuration parameters, <code>minimumHealthyPercent</code> and <code>maximumPercent</code>. You can change the deployment configuration of your service using <a>UpdateService</a>. <ul> <li> If <code>minimumHealthyPercent</code> is below 100%, the scheduler can ignore <code>desiredCount</code> temporarily during task replacement. For example, <code>desiredCount</code> is four tasks, a minimum of 50% allows the scheduler to stop two existing tasks before starting two new tasks. If the minimum is 100%, the service scheduler can't remove existing tasks until the replacement tasks are considered healthy. Tasks for services that do not use a load balancer are considered healthy if they are in the <code>RUNNING</code> state. Tasks for services that use a load balancer are considered healthy if they are in the <code>RUNNING</code> state and the container instance they are hosted on is reported as healthy by the load balancer. </li> <li> The <code>maximumPercent</code> parameter represents an upper limit on the number of running tasks during task replacement, which enables you to define the replacement batch size. For example, if <code>desiredCount</code> is four tasks, a maximum of 200% starts four new tasks before stopping the four tasks to be drained, provided that the cluster resources required to do this are available. If the maximum is 100%, then replacement tasks can't start until the draining tasks have stopped. </li> </ul> Any <code>PENDING</code> or <code>RUNNING</code> tasks that do not belong to a service are not affected. You must wait for them to finish or stop them manually. A container instance has completed draining when it has no more <code>RUNNING</code> tasks. You can verify this using <a>ListTasks</a>. When a container instance has been drained, you can set a container instance to <code>ACTIVE</code> status and once it has reached that status the Amazon ECS scheduler can begin scheduling tasks on the instance again.

        :param self:
        :param status:  The container instance state with which to update the container instance. The only valid values for this action are <code>ACTIVE</code> and <code>DRAINING</code>. A container instance can only be updated to <code>DRAINING</code> status once it has reached an <code>ACTIVE</code> state. If a container instance is in <code>REGISTERING</code>, <code>DEREGISTERING</code>, or <code>REGISTRATION_FAILED</code> state you can describe the container instance but will be unable to update the container instance state.<br/>containerInstances:  A list of container instance IDs or full ARN entries.<br/>cluster:  The short name or full Amazon Resource Name (ARN) of the cluster that hosts the container instance to update. If you do not specify a cluster, the default cluster is assumed.<br/>
        :return: failures:  Any failures associated with the call.<br/>containerInstances:  The list of container instances.<br/>        """
        pass

    def update_service(self, service: str, cluster: str=None, desiredCount: int=None, taskDefinition: str=None, capacityProviderStrategy: List[CapacityProviderStrategyItem]=None, deploymentConfiguration: DeploymentConfiguration=None, networkConfiguration: NetworkConfiguration=None, placementConstraints: List[PlacementConstraint]=None, placementStrategy: List[PlacementStrategy]=None, platformVersion: str=None, forceNewDeployment: Boolean=None, healthCheckGracePeriodSeconds: int=None, enableExecuteCommand: BoxedBoolean=None) -> UpdateServiceResponse:
        r"""<important> Updating the task placement strategies and constraints on an Amazon ECS service remains in preview and is a Beta Service as defined by and subject to the Beta Service Participation Service Terms located at <a href="https://aws.amazon.com/service-terms">https://aws.amazon.com/service-terms</a> ("Beta Terms"). These Beta Terms apply to your participation in this preview. </important> Modifies the parameters of a service. For services using the rolling update (<code>ECS</code>) deployment controller, the desired count, deployment configuration, network configuration, task placement constraints and strategies, or task definition used can be updated. For services using the blue/green (<code>CODE_DEPLOY</code>) deployment controller, only the desired count, deployment configuration, task placement constraints and strategies, and health check grace period can be updated using this API. If the network configuration, platform version, or task definition need to be updated, a new AWS CodeDeploy deployment should be created. For more information, see <a href="https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_CreateDeployment.html">CreateDeployment</a> in the <i>AWS CodeDeploy API Reference</i>. For services using an external deployment controller, you can update only the desired count, task placement constraints and strategies, and health check grace period using this API. If the launch type, load balancer, network configuration, platform version, or task definition need to be updated, you should create a new task set. For more information, see <a>CreateTaskSet</a>. You can add to or subtract from the number of instantiations of a task definition in a service by specifying the cluster that the service is running in and a new <code>desiredCount</code> parameter. If you have updated the Docker image of your application, you can create a new task definition with that image and deploy it to your service. The service scheduler uses the minimum healthy percent and maximum percent parameters (in the service's deployment configuration) to determine the deployment strategy. <note> If your updated Docker image uses the same tag as what is in the existing task definition for your service (for example, <code>my_image:latest</code>), you do not need to create a new revision of your task definition. You can update the service using the <code>forceNewDeployment</code> option. The new tasks launched by the deployment pull the current image/tag combination from your repository when they start. </note> You can also update the deployment configuration of a service. When a deployment is triggered by updating the task definition of a service, the service scheduler uses the deployment configuration parameters, <code>minimumHealthyPercent</code> and <code>maximumPercent</code>, to determine the deployment strategy. <ul> <li> If <code>minimumHealthyPercent</code> is below 100%, the scheduler can ignore <code>desiredCount</code> temporarily during a deployment. For example, if <code>desiredCount</code> is four tasks, a minimum of 50% allows the scheduler to stop two existing tasks before starting two new tasks. Tasks for services that do not use a load balancer are considered healthy if they are in the <code>RUNNING</code> state. Tasks for services that use a load balancer are considered healthy if they are in the <code>RUNNING</code> state and the container instance they are hosted on is reported as healthy by the load balancer. </li> <li> The <code>maximumPercent</code> parameter represents an upper limit on the number of running tasks during a deployment, which enables you to define the deployment batch size. For example, if <code>desiredCount</code> is four tasks, a maximum of 200% starts four new tasks before stopping the four older tasks (provided that the cluster resources required to do this are available). </li> </ul> When <a>UpdateService</a> stops a task during a deployment, the equivalent of <code>docker stop</code> is issued to the containers running in the task. This results in a <code>SIGTERM</code> and a 30-second timeout, after which <code>SIGKILL</code> is sent and the containers are forcibly stopped. If the container handles the <code>SIGTERM</code> gracefully and exits within 30 seconds from receiving it, no <code>SIGKILL</code> is sent. When the service scheduler launches new tasks, it determines task placement in your cluster with the following logic: <ul> <li> Determine which of the container instances in your cluster can support your service's task definition (for example, they have the required CPU, memory, ports, and container instance attributes). </li> <li> By default, the service scheduler attempts to balance tasks across Availability Zones in this manner (although you can choose a different placement strategy): <ul> <li> Sort the valid container instances by the fewest number of running tasks for this service in the same Availability Zone as the instance. For example, if zone A has one running service task and zones B and C each have zero, valid container instances in either zone B or C are considered optimal for placement. </li> <li> Place the new service task on a valid container instance in an optimal Availability Zone (based on the previous steps), favoring container instances with the fewest number of running tasks for this service. </li> </ul> </li> </ul> When the service scheduler stops running tasks, it attempts to maintain balance across the Availability Zones in your cluster using the following logic:  <ul> <li> Sort the container instances by the largest number of running tasks for this service in the same Availability Zone as the instance. For example, if zone A has one running service task and zones B and C each have two, container instances in either zone B or C are considered optimal for termination. </li> <li> Stop the task on a container instance in an optimal Availability Zone (based on the previous steps), favoring container instances with the largest number of running tasks for this service. </li> </ul>

        :param self:
        :param enableExecuteCommand:  If <code>true</code>, this enables execute command functionality on all task containers. If you do not want to override the value that was set when the service was created, you can set this to <code>null</code> when performing this action.<br/>healthCheckGracePeriodSeconds:  The period of time, in seconds, that the Amazon ECS service scheduler should ignore unhealthy Elastic Load Balancing target health checks after a task has first started. This is only valid if your service is configured to use a load balancer. If your service's tasks take a while to start and respond to Elastic Load Balancing health checks, you can specify a health check grace period of up to 2,147,483,647 seconds. During that time, the Amazon ECS service scheduler ignores the Elastic Load Balancing health check status. This grace period can prevent the ECS service scheduler from marking tasks as unhealthy and stopping them before they have time to come up.<br/>forceNewDeployment:  Whether to force a new deployment of the service. Deployments are not forced by default. You can use this option to trigger a new deployment with no service definition changes. For example, you can update a service's tasks to use a newer Docker image with the same image/tag combination (<code>my_image:latest</code>) or to roll Fargate tasks onto a newer platform version.<br/>platformVersion:  The platform version on which your tasks in the service are running. A platform version is only specified for tasks using the Fargate launch type. If a platform version is not specified, the <code>LATEST</code> platform version is used by default. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html">AWS Fargate Platform Versions</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.<br/>placementStrategy:  The task placement strategy objects to update the service to use. If no value is specified, the existing placement strategy for the service will remain unchanged. If this value is specified, it will override the existing placement strategy defined for the service. To remove an existing placement strategy, specify an empty object. You can specify a maximum of five strategy rules per service.<br/>placementConstraints:  An array of task placement constraint objects to update the service to use. If no value is specified, the existing placement constraints for the service will remain unchanged. If this value is specified, it will override any existing placement constraints defined for the service. To remove all existing placement constraints, specify an empty array. You can specify a maximum of 10 constraints per task (this limit includes constraints in the task definition and those specified at runtime).<br/>networkConfiguration:  An object representing the network configuration for the service.:<br/>deploymentConfiguration:  Optional deployment parameters that control how many tasks run during the deployment and the ordering of stopping and starting tasks.:<br/>capacityProviderStrategy:  The capacity provider strategy to update the service to use. If the service is using the default capacity provider strategy for the cluster, the service can be updated to use one or more capacity providers as opposed to the default capacity provider strategy. However, when a service is using a capacity provider strategy that is not the default capacity provider strategy, the service cannot be updated to use the cluster's default capacity provider strategy. A capacity provider strategy consists of one or more capacity providers along with the <code>base</code> and <code>weight</code> to assign to them. A capacity provider must be associated with the cluster to be used in a capacity provider strategy. The <a>PutClusterCapacityProviders</a> API is used to associate a capacity provider with a cluster. Only capacity providers with an <code>ACTIVE</code> or <code>UPDATING</code> status can be used. If specifying a capacity provider that uses an Auto Scaling group, the capacity provider must already be created. New capacity providers can be created with the <a>CreateCapacityProvider</a> API operation. To use a AWS Fargate capacity provider, specify either the <code>FARGATE</code> or <code>FARGATE_SPOT</code> capacity providers. The AWS Fargate capacity providers are available to all accounts and only need to be associated with a cluster to be used. The <a>PutClusterCapacityProviders</a> API operation is used to update the list of available capacity providers for a cluster after the cluster is created. <p/><br/>taskDefinition:  The <code>family</code> and <code>revision</code> (<code>family:revision</code>) or full ARN of the task definition to run in your service. If a <code>revision</code> is not specified, the latest <code>ACTIVE</code> revision is used. If you modify the task definition with <code>UpdateService</code>, Amazon ECS spawns a task with the new version of the task definition and then stops an old task after the new version is running.<br/>desiredCount:  The number of instantiations of the task to place and keep running in your service.<br/>service:  The name of the service to update.<br/>cluster:  The short name or full Amazon Resource Name (ARN) of the cluster that your service is running on. If you do not specify a cluster, the default cluster is assumed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>minimumHealthyPercent</i> If a service is using the rolling update (<code>ECS</code>) deployment type, the <b>minimum healthy percent</b> represents a lower limit on the number of tasks in a service that must remain in the <code>RUNNING</code> state during a deployment, as a percentage of the desired number of tasks (rounded up to the nearest integer), and while any container instances are in the <code>DRAINING</code> state if the service contains tasks using the EC2 launch type. This parameter enables you to deploy without using additional cluster capacity. For example, if your service has a desired number of four tasks and a minimum healthy percent of 50%, the scheduler may stop two existing tasks to free up cluster capacity before starting two new tasks. Tasks for services that <i>do not</i> use a load balancer are considered healthy if they are in the <code>RUNNING</code> state; tasks for services that <i>do</i> use a load balancer are considered healthy if they are in the <code>RUNNING</code> state and they are reported as healthy by the load balancer. The default value for minimum healthy percent is 100%. If a service is using the blue/green (<code>CODE_DEPLOY</code>) or <code>EXTERNAL</code> deployment types and tasks that use the EC2 launch type, the <b>minimum healthy percent</b> value is set to the default value and is used to define the lower limit on the number of the tasks in the service that remain in the <code>RUNNING</code> state while the container instances are in the <code>DRAINING</code> state. If the tasks in the service use the Fargate launch type, the minimum healthy percent value is not used, although it is returned when describing your service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>maximumPercent</i> If a service is using the rolling update (<code>ECS</code>) deployment type, the <b>maximum percent</b> parameter represents an upper limit on the number of tasks in a service that are allowed in the <code>RUNNING</code> or <code>PENDING</code> state during a deployment, as a percentage of the desired number of tasks (rounded down to the nearest integer), and while any container instances are in the <code>DRAINING</code> state if the service contains tasks using the EC2 launch type. This parameter enables you to define the deployment batch size. For example, if your service has a desired number of four tasks and a maximum percent value of 200%, the scheduler may start four new tasks before stopping the four older tasks (provided that the cluster resources required to do this are available). The default value for maximum percent is 200%. If a service is using the blue/green (<code>CODE_DEPLOY</code>) or <code>EXTERNAL</code> deployment types and tasks that use the EC2 launch type, the <b>maximum percent</b> value is set to the default value and is used to define the upper limit on the number of the tasks in the service that remain in the <code>RUNNING</code> state while the container instances are in the <code>DRAINING</code> state. If the tasks in the service use the Fargate launch type, the maximum percent value is not used, although it is returned when describing your service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deploymentCircuitBreaker</i> <note> The deployment circuit breaker can only be used for services using the rolling update (<code>ECS</code>) deployment type. </note> The <b>deployment circuit breaker</b> determines whether a service deployment will fail if the service can't reach a steady state. If deployment circuit breaker is enabled, a service deployment will transition to a failed state and stop launching new tasks. If rollback is enabled, when a service deployment fails, the service is rolled back to the last deployment that completed successfully.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>deploymentCircuitBreaker</b>: <note> The deployment circuit breaker can only be used for services using the rolling update (<code>ECS</code>) deployment type. </note> The <b>deployment circuit breaker</b> determines whether a service deployment will fail if the service can't reach a steady state. If deployment circuit breaker is enabled, a service deployment will transition to a failed state and stop launching new tasks. If rollback is enabled, when a service deployment fails, the service is rolled back to the last deployment that completed successfully.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>rollback</i> Whether to enable Amazon ECS to roll back the service if a service deployment fails. If rollback is enabled, when a service deployment fails, the service is rolled back to the last deployment that completed successfully.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>enable</i> Whether to enable the deployment circuit breaker logic for the service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>awsvpcConfiguration</i> The VPC subnets and security groups associated with a task. <note> All specified subnets and security groups must be from the same VPC. </note>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>awsvpcConfiguration</b>: The VPC subnets and security groups associated with a task. <note> All specified subnets and security groups must be from the same VPC. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>assignPublicIp</i> Whether the task's elastic network interface receives a public IP address. The default value is <code>DISABLED</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>securityGroups</i> The IDs of the security groups associated with the task or service. If you do not specify a security group, the default security group for the VPC is used. There is a limit of 5 security groups that can be specified per <code>AwsVpcConfiguration</code>. <note> All specified security groups must be from the same VPC. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>subnets</i> The IDs of the subnets associated with the task or service. There is a limit of 16 subnets that can be specified per <code>AwsVpcConfiguration</code>. <note> All specified subnets must be from the same VPC. </note><br/>
        :return: service:  The full description of your service following the update call.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>enableExecuteCommand</i> Whether or not the execute command functionality is enabled for the service. If <code>true</code>, the execute command functionality is enabled for all containers in tasks as part of the service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>propagateTags</i> Specifies whether to propagate the tags from the task definition or the service to the task. If no value is specified, the tags are not propagated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>enableECSManagedTags</i> Specifies whether to enable Amazon ECS managed tags for the tasks in the service. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html">Tagging Your Amazon ECS Resources</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdBy</i> The principal that created the service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The metadata that you apply to the service to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define. The following basic restrictions apply to tags: <ul> <li> Maximum number of tags per resource - 50 </li> <li> For each resource, each tag key must be unique, and each tag key can have only one value. </li> <li> Maximum key length - 128 Unicode characters in UTF-8 </li> <li> Maximum value length - 256 Unicode characters in UTF-8 </li> <li> If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @. </li> <li> Tag keys and values are case-sensitive. </li> <li> Do not use <code>aws:</code>, <code>AWS:</code>, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deploymentController</i> The deployment controller type the service is using. When using the DescribeServices API, this field is omitted if the service is using the <code>ECS</code> deployment controller type.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>deploymentController</b>: The deployment controller type the service is using. When using the DescribeServices API, this field is omitted if the service is using the <code>ECS</code> deployment controller type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>schedulingStrategy</i> The scheduling strategy to use for the service. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html">Services</a>. There are two service scheduler strategies available: <ul> <li>  <code>REPLICA</code>-The replica scheduling strategy places and maintains the desired number of tasks across your cluster. By default, the service scheduler spreads tasks across Availability Zones. You can use task placement strategies and constraints to customize task placement decisions. </li> <li>  <code>DAEMON</code>-The daemon scheduling strategy deploys exactly one task on each active container instance that meets all of the task placement constraints that you specify in your cluster. The service scheduler also evaluates the task placement constraints for running tasks and will stop tasks that do not meet the placement constraints. <note> Fargate tasks do not support the <code>DAEMON</code> scheduling strategy. </note> </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>healthCheckGracePeriodSeconds</i> The period of time, in seconds, that the Amazon ECS service scheduler ignores unhealthy Elastic Load Balancing target health checks after a task has first started.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>networkConfiguration</i> The VPC subnet and security group configuration for tasks that receive their own elastic network interface by using the <code>awsvpc</code> networking mode.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>networkConfiguration</b>: The VPC subnet and security group configuration for tasks that receive their own elastic network interface by using the <code>awsvpc</code> networking mode.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>placementStrategy</i> The placement strategy that determines how tasks for the service are placed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>placementConstraints</i> The placement constraints for the tasks in the service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The Unix timestamp for when the service was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>events</i> The event stream for your service. A maximum of 100 of the latest events are displayed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>roleArn</i> The ARN of the IAM role associated with the service that allows the Amazon ECS container agent to register container instances with an Elastic Load Balancing load balancer.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deployments</i> The current state of deployments for the service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>taskSets</i> Information about a set of Amazon ECS tasks in either an AWS CodeDeploy or an <code>EXTERNAL</code> deployment. An Amazon ECS task set includes details such as the desired number of tasks, how many tasks are running, and whether the task set serves production traffic.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deploymentConfiguration</i> Optional deployment parameters that control how many tasks run during the deployment and the ordering of stopping and starting tasks.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>deploymentConfiguration</b>: Optional deployment parameters that control how many tasks run during the deployment and the ordering of stopping and starting tasks.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>taskDefinition</i> The task definition to use for tasks in the service. This value is specified when the service is created with <a>CreateService</a>, and it can be modified with <a>UpdateService</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>platformVersion</i> The platform version on which to run your service. A platform version is only specified for tasks using the Fargate launch type. If one is not specified, the <code>LATEST</code> platform version is used by default. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html">AWS Fargate Platform Versions</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>capacityProviderStrategy</i> The capacity provider strategy associated with the service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>launchType</i> The infrastructure on which your service is running. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html">Amazon ECS launch types</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>pendingCount</i> The number of tasks in the cluster that are in the <code>PENDING</code> state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>runningCount</i> The number of tasks in the cluster that are in the <code>RUNNING</code> state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>desiredCount</i> The desired number of instantiations of the task definition to keep running on the service. This value is specified when the service is created with <a>CreateService</a>, and it can be modified with <a>UpdateService</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the service. The valid values are <code>ACTIVE</code>, <code>DRAINING</code>, or <code>INACTIVE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>serviceRegistries</i> The details of the service discovery registries to assign to this service. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html">Service Discovery</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>loadBalancers</i> A list of Elastic Load Balancing load balancer objects, containing the load balancer name, the container name (as it appears in a container definition), and the container port to access from the load balancer.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>clusterArn</i> The Amazon Resource Name (ARN) of the cluster that hosts the service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>serviceName</i> The name of your service. Up to 255 letters (uppercase and lowercase), numbers, underscores, and hyphens are allowed. Service names must be unique within a cluster, but you can have similarly named services in multiple clusters within a Region or across multiple Regions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>serviceArn</i> The ARN that identifies the service. The ARN contains the <code>arn:aws:ecs</code> namespace, followed by the Region of the service, the AWS account ID of the service owner, the <code>service</code> namespace, and then the service name. For example, <code>arn:aws:ecs:region:012345678910:service/my-service</code>.<br/><note> The deployment circuit breaker can only be used for services using the rolling update (<code>ECS</code>) deployment type. </note> The <b>deployment circuit breaker</b> determines whether a service deployment will fail if the service can't reach a steady state. If deployment circuit breaker is enabled, a service deployment will transition to a failed state and stop launching new tasks. If rollback is enabled, when a service deployment fails, the service is rolled back to the last deployment that completed successfully.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>deploymentCircuitBreaker</b>: <note> The deployment circuit breaker can only be used for services using the rolling update (<code>ECS</code>) deployment type. </note> The <b>deployment circuit breaker</b> determines whether a service deployment will fail if the service can't reach a steady state. If deployment circuit breaker is enabled, a service deployment will transition to a failed state and stop launching new tasks. If rollback is enabled, when a service deployment fails, the service is rolled back to the last deployment that completed successfully.The VPC subnets and security groups associated with a task. <note> All specified subnets and security groups must be from the same VPC. </note>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>awsvpcConfiguration</b>: The VPC subnets and security groups associated with a task. <note> All specified subnets and security groups must be from the same VPC. </note>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The deployment controller type to use. There are three deployment controller types available: <dl> <dt>ECS</dt> <dd> The rolling update (<code>ECS</code>) deployment type involves replacing the current running version of the container with the latest version. The number of containers Amazon ECS adds or removes from the service during a rolling update is controlled by adjusting the minimum and maximum number of healthy tasks allowed during a service deployment, as specified in the <a>DeploymentConfiguration</a>. </dd> <dt>CODE_DEPLOY</dt> <dd> The blue/green (<code>CODE_DEPLOY</code>) deployment type uses the blue/green deployment model powered by AWS CodeDeploy, which allows you to verify a new deployment of a service before sending production traffic to it. </dd> <dt>EXTERNAL</dt> <dd> The external (<code>EXTERNAL</code>) deployment type enables you to use any third-party deployment controller for full control over the deployment process for an Amazon ECS service. </dd> </dl><br/>        """
        pass

    def update_service_primary_task_set(self, primaryTaskSet: str, service: str, cluster: str) -> UpdateServicePrimaryTaskSetResponse:
        r"""Modifies which task set in a service is the primary task set. Any parameters that are updated on the primary task set in a service will transition to the service. This is used when a service uses the <code>EXTERNAL</code> deployment controller type. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html">Amazon ECS Deployment Types</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.

        :param self:
        :param primaryTaskSet:  The short name or full Amazon Resource Name (ARN) of the task set to set as the primary task set in the deployment.<br/>service:  The short name or full Amazon Resource Name (ARN) of the service that the task set exists in.<br/>cluster:  The short name or full Amazon Resource Name (ARN) of the cluster that hosts the service that the task set exists in.<br/>
        :return: taskSet:  Details about the task set.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The metadata that you apply to the task set to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define. The following basic restrictions apply to tags: <ul> <li> Maximum number of tags per resource - 50 </li> <li> For each resource, each tag key must be unique, and each tag key can have only one value. </li> <li> Maximum key length - 128 Unicode characters in UTF-8 </li> <li> Maximum value length - 256 Unicode characters in UTF-8 </li> <li> If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @. </li> <li> Tag keys and values are case-sensitive. </li> <li> Do not use <code>aws:</code>, <code>AWS:</code>, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>stabilityStatusAt</i> The Unix timestamp for when the task set stability status was retrieved.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>stabilityStatus</i> The stability status, which indicates whether the task set has reached a steady state. If the following conditions are met, the task set will be in <code>STEADY_STATE</code>: <ul> <li> The task <code>runningCount</code> is equal to the <code>computedDesiredCount</code>. </li> <li> The <code>pendingCount</code> is <code>0</code>. </li> <li> There are no tasks running on container instances in the <code>DRAINING</code> status. </li> <li> All tasks are reporting a healthy status from the load balancers, service discovery, and container health checks. </li> </ul> If any of those conditions are not met, the stability status returns <code>STABILIZING</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>scale</i> A floating-point percentage of the desired number of tasks to place and keep running in the task set.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>scale</b>: A floating-point percentage of the desired number of tasks to place and keep running in the task set.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>serviceRegistries</i> The details of the service discovery registries to assign to this task set. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html">Service discovery</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>loadBalancers</i> Details on a load balancer that is used with a task set.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>networkConfiguration</i> The network configuration for the task set.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>networkConfiguration</b>: The network configuration for the task set.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>platformVersion</i> The AWS Fargate platform version on which the tasks in the task set are running. A platform version is only specified for tasks run on AWS Fargate. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html">AWS Fargate platform versions</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>capacityProviderStrategy</i> The capacity provider strategy associated with the task set.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>launchType</i> The launch type the tasks in the task set are using. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html">Amazon ECS launch types</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>updatedAt</i> The Unix timestamp for when the task set was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The Unix timestamp for when the task set was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>runningCount</i> The number of tasks in the task set that are in the <code>RUNNING</code> status during a deployment. A task in the <code>RUNNING</code> state is running and ready for use.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>pendingCount</i> The number of tasks in the task set that are in the <code>PENDING</code> status during a deployment. A task in the <code>PENDING</code> state is preparing to enter the <code>RUNNING</code> state. A task set enters the <code>PENDING</code> status when it launches for the first time or when it is restarted after being in the <code>STOPPED</code> state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>computedDesiredCount</i> The computed desired count for the task set. This is calculated by multiplying the service's <code>desiredCount</code> by the task set's <code>scale</code> percentage. The result is always rounded up. For example, if the computed desired count is 1.2, it rounds up to 2 tasks.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>taskDefinition</i> The task definition the task set is using.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the task set. The following describes each state: <dl> <dt>PRIMARY</dt> <dd> The task set is serving production traffic. </dd> <dt>ACTIVE</dt> <dd> The task set is not serving production traffic. </dd> <dt>DRAINING</dt> <dd> The tasks in the task set are being stopped and their corresponding targets are being deregistered from their target group. </dd> </dl><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>externalId</i> The external ID associated with the task set. If a task set is created by an AWS CodeDeploy deployment, the <code>externalId</code> parameter contains the AWS CodeDeploy deployment ID. If a task set is created for an external deployment and is associated with a service discovery registry, the <code>externalId</code> parameter contains the <code>ECS_TASK_SET_EXTERNAL_ID</code> AWS Cloud Map attribute.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>startedBy</i> The tag specified when a task set is started. If the task set is created by an AWS CodeDeploy deployment, the <code>startedBy</code> parameter is <code>CODE_DEPLOY</code>. For a task set created for an external deployment, the startedBy field isn't used.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>clusterArn</i> The Amazon Resource Name (ARN) of the cluster that the service that hosts the task set exists in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>serviceArn</i> The Amazon Resource Name (ARN) of the service the task set exists in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>taskSetArn</i> The Amazon Resource Name (ARN) of the task set.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The ID of the task set.<br/>The VPC subnets and security groups associated with a task. <note> All specified subnets and security groups must be from the same VPC. </note>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>awsvpcConfiguration</b>: The VPC subnets and security groups associated with a task. <note> All specified subnets and security groups must be from the same VPC. </note>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>unit</i> The unit of measure for the scale value.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>value</i> The value, specified as a percent total of a service's <code>desiredCount</code>, to scale the task set. Accepted values are numbers between 0 and 100.<br/>        """
        pass

    def update_task_set(self, scale: Scale, taskSet: str, service: str, cluster: str) -> UpdateTaskSetResponse:
        r"""Modifies a task set. This is used when a service uses the <code>EXTERNAL</code> deployment controller type. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html">Amazon ECS Deployment Types</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.

        :param self:
        :param scale:  A floating-point percentage of the desired number of tasks to place and keep running in the task set.:<br/>taskSet:  The short name or full Amazon Resource Name (ARN) of the task set to update.<br/>service:  The short name or full Amazon Resource Name (ARN) of the service that the task set exists in.<br/>cluster:  The short name or full Amazon Resource Name (ARN) of the cluster that hosts the service that the task set exists in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>unit</i> The unit of measure for the scale value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>value</i> The value, specified as a percent total of a service's <code>desiredCount</code>, to scale the task set. Accepted values are numbers between 0 and 100.<br/>
        :return: taskSet:  Details about the task set.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The metadata that you apply to the task set to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define. The following basic restrictions apply to tags: <ul> <li> Maximum number of tags per resource - 50 </li> <li> For each resource, each tag key must be unique, and each tag key can have only one value. </li> <li> Maximum key length - 128 Unicode characters in UTF-8 </li> <li> Maximum value length - 256 Unicode characters in UTF-8 </li> <li> If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @. </li> <li> Tag keys and values are case-sensitive. </li> <li> Do not use <code>aws:</code>, <code>AWS:</code>, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>stabilityStatusAt</i> The Unix timestamp for when the task set stability status was retrieved.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>stabilityStatus</i> The stability status, which indicates whether the task set has reached a steady state. If the following conditions are met, the task set will be in <code>STEADY_STATE</code>: <ul> <li> The task <code>runningCount</code> is equal to the <code>computedDesiredCount</code>. </li> <li> The <code>pendingCount</code> is <code>0</code>. </li> <li> There are no tasks running on container instances in the <code>DRAINING</code> status. </li> <li> All tasks are reporting a healthy status from the load balancers, service discovery, and container health checks. </li> </ul> If any of those conditions are not met, the stability status returns <code>STABILIZING</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>scale</i> A floating-point percentage of the desired number of tasks to place and keep running in the task set.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>scale</b>: A floating-point percentage of the desired number of tasks to place and keep running in the task set.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>serviceRegistries</i> The details of the service discovery registries to assign to this task set. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html">Service discovery</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>loadBalancers</i> Details on a load balancer that is used with a task set.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>networkConfiguration</i> The network configuration for the task set.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>networkConfiguration</b>: The network configuration for the task set.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>platformVersion</i> The AWS Fargate platform version on which the tasks in the task set are running. A platform version is only specified for tasks run on AWS Fargate. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html">AWS Fargate platform versions</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>capacityProviderStrategy</i> The capacity provider strategy associated with the task set.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>launchType</i> The launch type the tasks in the task set are using. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html">Amazon ECS launch types</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>updatedAt</i> The Unix timestamp for when the task set was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The Unix timestamp for when the task set was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>runningCount</i> The number of tasks in the task set that are in the <code>RUNNING</code> status during a deployment. A task in the <code>RUNNING</code> state is running and ready for use.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>pendingCount</i> The number of tasks in the task set that are in the <code>PENDING</code> status during a deployment. A task in the <code>PENDING</code> state is preparing to enter the <code>RUNNING</code> state. A task set enters the <code>PENDING</code> status when it launches for the first time or when it is restarted after being in the <code>STOPPED</code> state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>computedDesiredCount</i> The computed desired count for the task set. This is calculated by multiplying the service's <code>desiredCount</code> by the task set's <code>scale</code> percentage. The result is always rounded up. For example, if the computed desired count is 1.2, it rounds up to 2 tasks.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>taskDefinition</i> The task definition the task set is using.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the task set. The following describes each state: <dl> <dt>PRIMARY</dt> <dd> The task set is serving production traffic. </dd> <dt>ACTIVE</dt> <dd> The task set is not serving production traffic. </dd> <dt>DRAINING</dt> <dd> The tasks in the task set are being stopped and their corresponding targets are being deregistered from their target group. </dd> </dl><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>externalId</i> The external ID associated with the task set. If a task set is created by an AWS CodeDeploy deployment, the <code>externalId</code> parameter contains the AWS CodeDeploy deployment ID. If a task set is created for an external deployment and is associated with a service discovery registry, the <code>externalId</code> parameter contains the <code>ECS_TASK_SET_EXTERNAL_ID</code> AWS Cloud Map attribute.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>startedBy</i> The tag specified when a task set is started. If the task set is created by an AWS CodeDeploy deployment, the <code>startedBy</code> parameter is <code>CODE_DEPLOY</code>. For a task set created for an external deployment, the startedBy field isn't used.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>clusterArn</i> The Amazon Resource Name (ARN) of the cluster that the service that hosts the task set exists in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>serviceArn</i> The Amazon Resource Name (ARN) of the service the task set exists in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>taskSetArn</i> The Amazon Resource Name (ARN) of the task set.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The ID of the task set.<br/>The VPC subnets and security groups associated with a task. <note> All specified subnets and security groups must be from the same VPC. </note>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>awsvpcConfiguration</b>: The VPC subnets and security groups associated with a task. <note> All specified subnets and security groups must be from the same VPC. </note>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>unit</i> The unit of measure for the scale value.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>value</i> The value, specified as a percent total of a service's <code>desiredCount</code>, to scale the task set. Accepted values are numbers between 0 and 100.<br/>        """
        pass





class EFS(BaseClient):
    r"""<fullname>Amazon Elastic File System</fullname> Amazon Elastic File System (Amazon EFS) provides simple, scalable file storage for use with Amazon EC2 instances in the AWS Cloud. With Amazon EFS, storage capacity is elastic, growing and shrinking automatically as you add and remove files, so your applications have the storage they need, when they need it. For more information, see the <a href="https://docs.aws.amazon.com/efs/latest/ug/api-reference.html">Amazon Elastic File System API Reference</a> and the <a href="https://docs.aws.amazon.com/efs/latest/ug/whatisefs.html">Amazon Elastic File System User Guide</a>."""


    class DescribeFileSystemsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_file_systems` for valid parameters"""
            pass
    class DescribeMountTargetsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_mount_targets` for valid parameters"""
            pass
    class DescribeTagsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_tags` for valid parameters"""
            pass


    class CreateAccessPointRequest(Mapping):
        pass
    
    class AccessPointDescription(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class PosixUser(Mapping):
        pass
    
    class RootDirectory(Mapping):
        pass
    
    class CreateFileSystemRequest(Mapping):
        pass
    
    class FileSystemDescription(Mapping):
        pass
    
    class Encrypted(object):
        pass
    
    class ProvisionedThroughputInMibps(object):
        pass
    
    class Backup(object):
        pass
    
    class CreateMountTargetRequest(Mapping):
        pass
    
    class MountTargetDescription(Mapping):
        pass
    
    class SecurityGroup(object):
        pass
    
    class CreateTagsRequest(Mapping):
        pass
    
    class DeleteAccessPointRequest(Mapping):
        pass
    
    class DeleteFileSystemRequest(Mapping):
        pass
    
    class DeleteFileSystemPolicyRequest(Mapping):
        pass
    
    class DeleteMountTargetRequest(Mapping):
        pass
    
    class DeleteTagsRequest(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class DescribeAccessPointsRequest(Mapping):
        pass
    
    class DescribeAccessPointsResponse(Mapping):
        pass
    
    class DescribeAccountPreferencesRequest(Mapping):
        pass
    
    class DescribeAccountPreferencesResponse(Mapping):
        pass
    
    class DescribeBackupPolicyRequest(Mapping):
        pass
    
    class BackupPolicyDescription(Mapping):
        pass
    
    class DescribeFileSystemPolicyRequest(Mapping):
        pass
    
    class FileSystemPolicyDescription(Mapping):
        pass
    
    class DescribeFileSystemsRequest(Mapping):
        pass
    
    class DescribeFileSystemsResponse(Mapping):
        pass
    
    class DescribeLifecycleConfigurationRequest(Mapping):
        pass
    
    class LifecycleConfigurationDescription(Mapping):
        pass
    
    class DescribeMountTargetSecurityGroupsRequest(Mapping):
        pass
    
    class DescribeMountTargetSecurityGroupsResponse(Mapping):
        pass
    
    class DescribeMountTargetsRequest(Mapping):
        pass
    
    class DescribeMountTargetsResponse(Mapping):
        pass
    
    class DescribeTagsRequest(Mapping):
        pass
    
    class DescribeTagsResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class ModifyMountTargetSecurityGroupsRequest(Mapping):
        pass
    
    class PutAccountPreferencesRequest(Mapping):
        pass
    
    class PutAccountPreferencesResponse(Mapping):
        pass
    
    class PutBackupPolicyRequest(Mapping):
        pass
    
    class BackupPolicy(Mapping):
        pass
    
    class PutFileSystemPolicyRequest(Mapping):
        pass
    
    class BypassPolicyLockoutSafetyCheck(object):
        pass
    
    class PutLifecycleConfigurationRequest(Mapping):
        pass
    
    class LifecyclePolicy(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UpdateFileSystemRequest(Mapping):
        pass
    
    def create_access_point(self, FileSystemId: str, ClientToken: str, Tags: List[Tag]=None, PosixUser: PosixUser=None, RootDirectory: RootDirectory=None) -> AccessPointDescription:
        r"""Creates an EFS access point. An access point is an application-specific view into an EFS file system that applies an operating system user and group, and a file system path, to any file system request made through the access point. The operating system user and group override any identity information provided by the NFS client. The file system path is exposed as the access point's root directory. Applications using the access point can only access data in its own directory and below. To learn more, see <a href="https://docs.aws.amazon.com/efs/latest/ug/efs-access-points.html">Mounting a file system using EFS access points</a>. This operation requires permissions for the <code>elasticfilesystem:CreateAccessPoint</code> action.

        :param self:
        :param RootDirectory:  Specifies the directory on the Amazon EFS file system that the access point exposes as the root directory of your file system to NFS clients using the access point. The clients using the access point can only access the root directory and below. If the <code>RootDirectory</code> &gt; <code>Path</code> specified does not exist, EFS creates it and applies the <code>CreationInfo</code> settings when a client connects to an access point. When specifying a <code>RootDirectory</code>, you need to provide the <code>Path</code>, and the <code>CreationInfo</code>. Amazon EFS creates a root directory only if you have provided the CreationInfo: OwnUid, OwnGID, and permissions for the directory. If you do not provide this information, Amazon EFS does not create the root directory. If the root directory does not exist, attempts to mount using the access point will fail.:<br/>PosixUser:  The operating system user and group applied to all file system requests made using the access point.:<br/>FileSystemId:  The ID of the EFS file system that the access point provides access to.<br/>Tags:  Creates tags associated with the access point. Each tag is a key-value pair.<br/>ClientToken:  A string of up to 64 ASCII characters that Amazon EFS uses to ensure idempotent creation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecondaryGids</i> Secondary POSIX group IDs used for all file system operations using this access point.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Gid</i> The POSIX group ID used for all file system operations using this access point.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Uid</i> The POSIX user ID used for all file system operations using this access point.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationInfo</i> (Optional) Specifies the POSIX IDs and permissions to apply to the access point's <code>RootDirectory</code>. If the <code>RootDirectory</code> &gt; <code>Path</code> specified does not exist, EFS creates the root directory using the <code>CreationInfo</code> settings when a client connects to an access point. When specifying the <code>CreationInfo</code>, you must provide values for all properties.  <important> If you do not provide <code>CreationInfo</code> and the specified <code>RootDirectory</code> &gt; <code>Path</code> does not exist, attempts to mount the file system using the access point will fail. </important>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CreationInfo</b>: (Optional) Specifies the POSIX IDs and permissions to apply to the access point's <code>RootDirectory</code>. If the <code>RootDirectory</code> &gt; <code>Path</code> specified does not exist, EFS creates the root directory using the <code>CreationInfo</code> settings when a client connects to an access point. When specifying the <code>CreationInfo</code>, you must provide values for all properties.  <important> If you do not provide <code>CreationInfo</code> and the specified <code>RootDirectory</code> &gt; <code>Path</code> does not exist, attempts to mount the file system using the access point will fail. </important><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Path</i> Specifies the path on the EFS file system to expose as the root directory to NFS clients using the access point to access the EFS file system. A path can have up to four subdirectories. If the specified path does not exist, you are required to provide the <code>CreationInfo</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Permissions</i> Specifies the POSIX permissions to apply to the <code>RootDirectory</code>, in the format of an octal number representing the file's mode bits.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerGid</i> Specifies the POSIX group ID to apply to the <code>RootDirectory</code>. Accepts values from 0 to 2^32 (4294967295).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerUid</i> Specifies the POSIX user ID to apply to the <code>RootDirectory</code>. Accepts values from 0 to 2^32 (4294967295).<br/>
        :return: LifeCycleState:  Identifies the lifecycle phase of the access point.<br/>OwnerId:  Identified the AWS account that owns the access point resource.<br/>RootDirectory:  The directory on the Amazon EFS file system that the access point exposes as the root directory to NFS clients using the access point.:<br/>PosixUser:  The full POSIX identity, including the user ID, group ID, and secondary group IDs on the access point that is used for all file operations by NFS clients using the access point.:<br/>FileSystemId:  The ID of the EFS file system that the access point applies to.<br/>AccessPointArn:  The unique Amazon Resource Name (ARN) associated with the access point.<br/>AccessPointId:  The ID of the access point, assigned by Amazon EFS.<br/>Tags:  The tags associated with the access point, presented as an array of Tag objects.<br/>Name:  The name of the access point. This is the value of the <code>Name</code> tag.<br/>ClientToken:  The opaque string specified in the request to ensure idempotent creation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecondaryGids</i> Secondary POSIX group IDs used for all file system operations using this access point.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Gid</i> The POSIX group ID used for all file system operations using this access point.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Uid</i> The POSIX user ID used for all file system operations using this access point.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationInfo</i> (Optional) Specifies the POSIX IDs and permissions to apply to the access point's <code>RootDirectory</code>. If the <code>RootDirectory</code> &gt; <code>Path</code> specified does not exist, EFS creates the root directory using the <code>CreationInfo</code> settings when a client connects to an access point. When specifying the <code>CreationInfo</code>, you must provide values for all properties.  <important> If you do not provide <code>CreationInfo</code> and the specified <code>RootDirectory</code> &gt; <code>Path</code> does not exist, attempts to mount the file system using the access point will fail. </important>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CreationInfo</b>: (Optional) Specifies the POSIX IDs and permissions to apply to the access point's <code>RootDirectory</code>. If the <code>RootDirectory</code> &gt; <code>Path</code> specified does not exist, EFS creates the root directory using the <code>CreationInfo</code> settings when a client connects to an access point. When specifying the <code>CreationInfo</code>, you must provide values for all properties.  <important> If you do not provide <code>CreationInfo</code> and the specified <code>RootDirectory</code> &gt; <code>Path</code> does not exist, attempts to mount the file system using the access point will fail. </important><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Path</i> Specifies the path on the EFS file system to expose as the root directory to NFS clients using the access point to access the EFS file system. A path can have up to four subdirectories. If the specified path does not exist, you are required to provide the <code>CreationInfo</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Permissions</i> Specifies the POSIX permissions to apply to the <code>RootDirectory</code>, in the format of an octal number representing the file's mode bits.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerGid</i> Specifies the POSIX group ID to apply to the <code>RootDirectory</code>. Accepts values from 0 to 2^32 (4294967295).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerUid</i> Specifies the POSIX user ID to apply to the <code>RootDirectory</code>. Accepts values from 0 to 2^32 (4294967295).<br/>        """
        pass

    def create_file_system(self, CreationToken: str, PerformanceMode: str=None, Encrypted: Encrypted=None, KmsKeyId: str=None, ThroughputMode: str=None, ProvisionedThroughputInMibps: ProvisionedThroughputInMibps=None, AvailabilityZoneName: str=None, Backup: Backup=None, Tags: List[Tag]=None) -> FileSystemDescription:
        r"""Creates a new, empty file system. The operation requires a creation token in the request that Amazon EFS uses to ensure idempotent creation (calling the operation with same creation token has no effect). If a file system does not currently exist that is owned by the caller's AWS account with the specified creation token, this operation does the following: <ul> <li> Creates a new, empty file system. The file system will have an Amazon EFS assigned ID, and an initial lifecycle state <code>creating</code>. </li> <li> Returns with the description of the created file system. </li> </ul> Otherwise, this operation returns a <code>FileSystemAlreadyExists</code> error with the ID of the existing file system. <note> For basic use cases, you can use a randomly generated UUID for the creation token. </note>  The idempotent operation allows you to retry a <code>CreateFileSystem</code> call without risk of creating an extra file system. This can happen when an initial call fails in a way that leaves it uncertain whether or not a file system was actually created. An example might be that a transport level timeout occurred or your connection was reset. As long as you use the same creation token, if the initial call had succeeded in creating a file system, the client can learn of its existence from the <code>FileSystemAlreadyExists</code> error. For more information, see <a href="https://docs.aws.amazon.com/efs/latest/ug/creating-using-create-fs.html#creating-using-create-fs-part1">Creating a file system</a> in the <i>Amazon EFS User Guide</i>. <note> The <code>CreateFileSystem</code> call returns while the file system's lifecycle state is still <code>creating</code>. You can check the file system creation status by calling the <a>DescribeFileSystems</a> operation, which among other things returns the file system state. </note> This operation accepts an optional <code>PerformanceMode</code> parameter that you choose for your file system. We recommend <code>generalPurpose</code> performance mode for most file systems. File systems using the <code>maxIO</code> performance mode can scale to higher levels of aggregate throughput and operations per second with a tradeoff of slightly higher latencies for most file operations. The performance mode can't be changed after the file system has been created. For more information, see <a href="https://docs.aws.amazon.com/efs/latest/ug/performance.html#performancemodes.html">Amazon EFS performance modes</a>. You can set the throughput mode for the file system using the <code>ThroughputMode</code> parameter. After the file system is fully created, Amazon EFS sets its lifecycle state to <code>available</code>, at which point you can create one or more mount targets for the file system in your VPC. For more information, see <a>CreateMountTarget</a>. You mount your Amazon EFS file system on an EC2 instances in your VPC by using the mount target. For more information, see <a href="https://docs.aws.amazon.com/efs/latest/ug/how-it-works.html">Amazon EFS: How it Works</a>.   This operation requires permissions for the <code>elasticfilesystem:CreateFileSystem</code> action. 

        :param self:
        :param Tags:  A value that specifies to create one or more tags associated with the file system. Each tag is a user-defined key-value pair. Name your file system on creation by including a <code>"Key":"Name","Value":"{value}"</code> key-value pair.<br/>Backup:  Specifies whether automatic backups are enabled on the file system that you are creating. Set the value to <code>true</code> to enable automatic backups. If you are creating a file system that uses One Zone storage classes, automatic backups are enabled by default. For more information, see <a href="https://docs.aws.amazon.com/efs/latest/ug/awsbackup.html#automatic-backups">Automatic backups</a> in the <i>Amazon EFS User Guide</i>. Default is <code>false</code>. However, if you specify an <code>AvailabilityZoneName</code>, the default is <code>true</code>. <note> AWS Backup is not available in all AWS Regions where Amazon EFS is available. </note><br/>AvailabilityZoneName:  Used to create a file system that uses One Zone storage classes. It specifies the AWS Availability Zone in which to create the file system. Use the format <code>us-east-1a</code> to specify the Availability Zone. For more information about One Zone storage classes, see <a href="https://docs.aws.amazon.com/efs/latest/ug/storage-classes.html">Using EFS storage classes</a> in the <i>Amazon EFS User Guide</i>. <note> One Zone storage classes are not available in all Availability Zones in AWS Regions where Amazon EFS is available. </note><br/>ProvisionedThroughputInMibps:  The throughput, measured in MiB/s, that you want to provision for a file system that you're creating. Valid values are 1-1024. Required if <code>ThroughputMode</code> is set to <code>provisioned</code>. The upper limit for throughput is 1024 MiB/s. To increase this limit, contact AWS Support. For more information, see <a href="https://docs.aws.amazon.com/efs/latest/ug/limits.html#soft-limits">Amazon EFS quotas that you can increase</a> in the <i>Amazon EFS User Guide</i>.<br/>ThroughputMode:  Specifies the throughput mode for the file system, either <code>bursting</code> or <code>provisioned</code>. If you set <code>ThroughputMode</code> to <code>provisioned</code>, you must also set a value for <code>ProvisionedThroughputInMibps</code>. After you create the file system, you can decrease your file system's throughput in Provisioned Throughput mode or change between the throughput modes, as long as it’s been more than 24 hours since the last decrease or throughput mode change. For more information, see <a href="https://docs.aws.amazon.com/efs/latest/ug/performance.html#provisioned-throughput">Specifying throughput with provisioned mode</a> in the <i>Amazon EFS User Guide</i>.  Default is <code>bursting</code>.<br/>KmsKeyId:  The ID of the AWS KMS CMK that you want to use to protect the encrypted file system. This parameter is only required if you want to use a non-default KMS key. If this parameter is not specified, the default CMK for Amazon EFS is used. This ID can be in one of the following formats: <ul> <li> Key ID - A unique identifier of the key, for example <code>1234abcd-12ab-34cd-56ef-1234567890ab</code>. </li> <li> ARN - An Amazon Resource Name (ARN) for the key, for example <code>arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab</code>. </li> <li> Key alias - A previously created display name for a key, for example <code>alias/projectKey1</code>. </li> <li> Key alias ARN - An ARN for a key alias, for example <code>arn:aws:kms:us-west-2:444455556666:alias/projectKey1</code>. </li> </ul> If <code>KmsKeyId</code> is specified, the <a>CreateFileSystemRequest$Encrypted</a> parameter must be set to true. <important> EFS accepts only symmetric KMS keys. You cannot use asymmetric KMS keys with EFS file systems. </important><br/>Encrypted:  A Boolean value that, if true, creates an encrypted file system. When creating an encrypted file system, you have the option of specifying <a>CreateFileSystemRequest$KmsKeyId</a> for an existing AWS Key Management Service (AWS KMS) customer master key (CMK). If you don't specify a CMK, then the default CMK for Amazon EFS, <code>/aws/elasticfilesystem</code>, is used to protect the encrypted file system. <br/>PerformanceMode:  The performance mode of the file system. We recommend <code>generalPurpose</code> performance mode for most file systems. File systems using the <code>maxIO</code> performance mode can scale to higher levels of aggregate throughput and operations per second with a tradeoff of slightly higher latencies for most file operations. The performance mode can't be changed after the file system has been created. <note> The <code>maxIO</code> mode is not supported on file systems using One Zone storage classes. </note><br/>CreationToken:  A string of up to 64 ASCII characters. Amazon EFS uses this to ensure idempotent creation.<br/>
        :return: Tags:  The tags associated with the file system, presented as an array of <code>Tag</code> objects.<br/>AvailabilityZoneId:  The unique and consistent identifier of the Availability Zone in which the file system's One Zone storage classes exist. For example, <code>use1-az1</code> is an Availability Zone ID for the us-east-1 AWS Region, and it has the same location in every AWS account.<br/>AvailabilityZoneName:  Describes the AWS Availability Zone in which the file system is located, and is valid only for file systems using One Zone storage classes. For more information, see <a href="https://docs.aws.amazon.com/efs/latest/ug/storage-classes.html">Using EFS storage classes</a> in the <i>Amazon EFS User Guide</i>.<br/>ProvisionedThroughputInMibps:  The amount of provisioned throughput, measured in MiB/s, for the file system. Valid for file systems using <code>ThroughputMode</code> set to <code>provisioned</code>.<br/>ThroughputMode:  Displays the file system's throughput mode. For more information, see <a href="https://docs.aws.amazon.com/efs/latest/ug/performance.html#throughput-modes">Throughput modes</a> in the <i>Amazon EFS User Guide</i>. <br/>KmsKeyId:  The ID of an AWS Key Management Service (AWS KMS) customer master key (CMK) that was used to protect the encrypted file system.<br/>Encrypted:  A Boolean value that, if true, indicates that the file system is encrypted.<br/>PerformanceMode:  The performance mode of the file system.<br/>SizeInBytes:  The latest known metered size (in bytes) of data stored in the file system, in its <code>Value</code> field, and the time at which that size was determined in its <code>Timestamp</code> field. The <code>Timestamp</code> value is the integer number of seconds since 1970-01-01T00:00:00Z. The <code>SizeInBytes</code> value doesn't represent the size of a consistent snapshot of the file system, but it is eventually consistent when there are no writes to the file system. That is, <code>SizeInBytes</code> represents actual size only if the file system is not modified for a period longer than a couple of hours. Otherwise, the value is not the exact size that the file system was at any point in time. :<br/>NumberOfMountTargets:  The current number of mount targets that the file system has. For more information, see <a>CreateMountTarget</a>.<br/>Name:  You can add tags to a file system, including a <code>Name</code> tag. For more information, see <a>CreateFileSystem</a>. If the file system has a <code>Name</code> tag, Amazon EFS returns the value in this field. <br/>LifeCycleState:  The lifecycle phase of the file system.<br/>CreationTime:  The time that the file system was created, in seconds (since 1970-01-01T00:00:00Z).<br/>FileSystemArn:  The Amazon Resource Name (ARN) for the EFS file system, in the format <code>arn:aws:elasticfilesystem:<i>region</i>:<i>account-id</i>:file-system/<i>file-system-id</i> </code>. Example with sample data: <code>arn:aws:elasticfilesystem:us-west-2:1111333322228888:file-system/fs-01234567</code> <br/>FileSystemId:  The ID of the file system, assigned by Amazon EFS.<br/>CreationToken:  The opaque string specified in the request.<br/>OwnerId:  The AWS account that created the file system. If the file system was created by an IAM user, the parent account to which the user belongs is the owner.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ValueInStandard</i> The latest known metered size (in bytes) of data stored in the Standard storage class.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ValueInIA</i> The latest known metered size (in bytes) of data stored in the Infrequent Access storage class.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Timestamp</i> The time at which the size of data, returned in the <code>Value</code> field, was determined. The value is the integer number of seconds since 1970-01-01T00:00:00Z.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Value</i> The latest known metered size (in bytes) of data stored in the file system.<br/>        """
        pass

    def create_mount_target(self, SubnetId: str, FileSystemId: str, IpAddress: str=None, SecurityGroups: List[SecurityGroup]=None) -> MountTargetDescription:
        r"""Creates a mount target for a file system. You can then mount the file system on EC2 instances by using the mount target. You can create one mount target in each Availability Zone in your VPC. All EC2 instances in a VPC within a given Availability Zone share a single mount target for a given file system. If you have multiple subnets in an Availability Zone, you create a mount target in one of the subnets. EC2 instances do not need to be in the same subnet as the mount target in order to access their file system. You can create only one mount target for an EFS file system using One Zone storage classes. You must create that mount target in the same Availability Zone in which the file system is located. Use the <code>AvailabilityZoneName</code> and <code>AvailabiltyZoneId</code> properties in the <a>DescribeFileSystems</a> response object to get this information. Use the <code>subnetId</code> associated with the file system's Availability Zone when creating the mount target. For more information, see <a href="https://docs.aws.amazon.com/efs/latest/ug/how-it-works.html">Amazon EFS: How it Works</a>.  To create a mount target for a file system, the file system's lifecycle state must be <code>available</code>. For more information, see <a>DescribeFileSystems</a>. In the request, provide the following: <ul> <li> The file system ID for which you are creating the mount target. </li> <li> A subnet ID, which determines the following: <ul> <li> The VPC in which Amazon EFS creates the mount target </li> <li> The Availability Zone in which Amazon EFS creates the mount target </li> <li> The IP address range from which Amazon EFS selects the IP address of the mount target (if you don't specify an IP address in the request) </li> </ul> </li> </ul> After creating the mount target, Amazon EFS returns a response that includes, a <code>MountTargetId</code> and an <code>IpAddress</code>. You use this IP address when mounting the file system in an EC2 instance. You can also use the mount target's DNS name when mounting the file system. The EC2 instance on which you mount the file system by using the mount target can resolve the mount target's DNS name to its IP address. For more information, see <a href="https://docs.aws.amazon.com/efs/latest/ug/how-it-works.html#how-it-works-implementation">How it Works: Implementation Overview</a>.  Note that you can create mount targets for a file system in only one VPC, and there can be only one mount target per Availability Zone. That is, if the file system already has one or more mount targets created for it, the subnet specified in the request to add another mount target must meet the following requirements: <ul> <li> Must belong to the same VPC as the subnets of the existing mount targets </li> <li> Must not be in the same Availability Zone as any of the subnets of the existing mount targets </li> </ul> If the request satisfies the requirements, Amazon EFS does the following: <ul> <li> Creates a new mount target in the specified subnet. </li> <li> Also creates a new network interface in the subnet as follows: <ul> <li> If the request provides an <code>IpAddress</code>, Amazon EFS assigns that IP address to the network interface. Otherwise, Amazon EFS assigns a free address in the subnet (in the same way that the Amazon EC2 <code>CreateNetworkInterface</code> call does when a request does not specify a primary private IP address). </li> <li> If the request provides <code>SecurityGroups</code>, this network interface is associated with those security groups. Otherwise, it belongs to the default security group for the subnet's VPC. </li> <li> Assigns the description <code>Mount target <i>fsmt-id</i> for file system <i>fs-id</i> </code> where <code> <i>fsmt-id</i> </code> is the mount target ID, and <code> <i>fs-id</i> </code> is the <code>FileSystemId</code>. </li> <li> Sets the <code>requesterManaged</code> property of the network interface to <code>true</code>, and the <code>requesterId</code> value to <code>EFS</code>. </li> </ul> Each Amazon EFS mount target has one corresponding requester-managed EC2 network interface. After the network interface is created, Amazon EFS sets the <code>NetworkInterfaceId</code> field in the mount target's description to the network interface ID, and the <code>IpAddress</code> field to its address. If network interface creation fails, the entire <code>CreateMountTarget</code> operation fails. </li> </ul> <note> The <code>CreateMountTarget</code> call returns only after creating the network interface, but while the mount target state is still <code>creating</code>, you can check the mount target creation status by calling the <a>DescribeMountTargets</a> operation, which among other things returns the mount target state. </note> We recommend that you create a mount target in each of the Availability Zones. There are cost considerations for using a file system in an Availability Zone through a mount target created in another Availability Zone. For more information, see <a href="http://aws.amazon.com/efs/">Amazon EFS</a>. In addition, by always using a mount target local to the instance's Availability Zone, you eliminate a partial failure scenario. If the Availability Zone in which your mount target is created goes down, then you can't access your file system through that mount target.  This operation requires permissions for the following action on the file system: <ul> <li>  <code>elasticfilesystem:CreateMountTarget</code>  </li> </ul> This operation also requires permissions for the following Amazon EC2 actions: <ul> <li>  <code>ec2:DescribeSubnets</code>  </li> <li>  <code>ec2:DescribeNetworkInterfaces</code>  </li> <li>  <code>ec2:CreateNetworkInterface</code>  </li> </ul>

        :param self:
        :param SecurityGroups:  Up to five VPC security group IDs, of the form <code>sg-xxxxxxxx</code>. These must be for the same VPC as subnet specified.<br/>IpAddress:  Valid IPv4 address within the address range of the specified subnet.<br/>SubnetId:  The ID of the subnet to add the mount target in. For file systems that use One Zone storage classes, use the subnet that is associated with the file system's Availability Zone.<br/>FileSystemId:  The ID of the file system for which to create the mount target.<br/>
        :return: VpcId:  The virtual private cloud (VPC) ID that the mount target is configured in.<br/>AvailabilityZoneName:  The name of the Availability Zone in which the mount target is located. Availability Zones are independently mapped to names for each AWS account. For example, the Availability Zone <code>us-east-1a</code> for your AWS account might not be the same location as <code>us-east-1a</code> for another AWS account.<br/>AvailabilityZoneId:  The unique and consistent identifier of the Availability Zone that the mount target resides in. For example, <code>use1-az1</code> is an AZ ID for the us-east-1 Region and it has the same location in every AWS account.<br/>NetworkInterfaceId:  The ID of the network interface that Amazon EFS created when it created the mount target.<br/>IpAddress:  Address at which the file system can be mounted by using the mount target.<br/>LifeCycleState:  Lifecycle state of the mount target.<br/>SubnetId:  The ID of the mount target's subnet.<br/>FileSystemId:  The ID of the file system for which the mount target is intended.<br/>MountTargetId:  System-assigned mount target ID.<br/>OwnerId:  AWS account ID that owns the resource.<br/>        """
        pass

    def create_tags(self, Tags: List[Tag], FileSystemId: str):
        r"""<note> DEPRECATED - CreateTags is deprecated and not maintained. Please use the API action to create tags for EFS resources. </note> Creates or overwrites tags associated with a file system. Each tag is a key-value pair. If a tag key specified in the request already exists on the file system, this operation overwrites its value with the value provided in the request. If you add the <code>Name</code> tag to your file system, Amazon EFS returns it in the response to the <a>DescribeFileSystems</a> operation.  This operation requires permission for the <code>elasticfilesystem:CreateTags</code> action.

        :param self:
        :param Tags:  An array of <code>Tag</code> objects to add. Each <code>Tag</code> object is a key-value pair. <br/>FileSystemId:  The ID of the file system whose tags you want to modify (String). This operation modifies the tags only, not the file system.<br/>
        :return:         """
        pass

    def delete_access_point(self, AccessPointId: str):
        r"""Deletes the specified access point. After deletion is complete, new clients can no longer connect to the access points. Clients connected to the access point at the time of deletion will continue to function until they terminate their connection. This operation requires permissions for the <code>elasticfilesystem:DeleteAccessPoint</code> action.

        :param self:
        :param AccessPointId:  The ID of the access point that you want to delete.<br/>
        :return:         """
        pass

    def delete_file_system(self, FileSystemId: str):
        r"""Deletes a file system, permanently severing access to its contents. Upon return, the file system no longer exists and you can't access any contents of the deleted file system.  You can't delete a file system that is in use. That is, if the file system has any mount targets, you must first delete them. For more information, see <a>DescribeMountTargets</a> and <a>DeleteMountTarget</a>.  <note> The <code>DeleteFileSystem</code> call returns while the file system state is still <code>deleting</code>. You can check the file system deletion status by calling the <a>DescribeFileSystems</a> operation, which returns a list of file systems in your account. If you pass file system ID or creation token for the deleted file system, the <a>DescribeFileSystems</a> returns a <code>404 FileSystemNotFound</code> error. </note> This operation requires permissions for the <code>elasticfilesystem:DeleteFileSystem</code> action.

        :param self:
        :param FileSystemId:  The ID of the file system you want to delete.<br/>
        :return:         """
        pass

    def delete_file_system_policy(self, FileSystemId: str):
        r"""Deletes the <code>FileSystemPolicy</code> for the specified file system. The default <code>FileSystemPolicy</code> goes into effect once the existing policy is deleted. For more information about the default file system policy, see <a href="https://docs.aws.amazon.com/efs/latest/ug/res-based-policies-efs.html">Using Resource-based Policies with EFS</a>. This operation requires permissions for the <code>elasticfilesystem:DeleteFileSystemPolicy</code> action.

        :param self:
        :param FileSystemId:  Specifies the EFS file system for which to delete the <code>FileSystemPolicy</code>.<br/>
        :return:         """
        pass

    def delete_mount_target(self, MountTargetId: str):
        r"""Deletes the specified mount target. This operation forcibly breaks any mounts of the file system by using the mount target that is being deleted, which might disrupt instances or applications using those mounts. To avoid applications getting cut off abruptly, you might consider unmounting any mounts of the mount target, if feasible. The operation also deletes the associated network interface. Uncommitted writes might be lost, but breaking a mount target using this operation does not corrupt the file system itself. The file system you created remains. You can mount an EC2 instance in your VPC by using another mount target. This operation requires permissions for the following action on the file system: <ul> <li>  <code>elasticfilesystem:DeleteMountTarget</code>  </li> </ul> <note> The <code>DeleteMountTarget</code> call returns while the mount target state is still <code>deleting</code>. You can check the mount target deletion by calling the <a>DescribeMountTargets</a> operation, which returns a list of mount target descriptions for the given file system.  </note> The operation also requires permissions for the following Amazon EC2 action on the mount target's network interface: <ul> <li>  <code>ec2:DeleteNetworkInterface</code>  </li> </ul>

        :param self:
        :param MountTargetId:  The ID of the mount target to delete (String).<br/>
        :return:         """
        pass

    def delete_tags(self, TagKeys: List[TagKey], FileSystemId: str):
        r"""<note> DEPRECATED - DeleteTags is deprecated and not maintained. Please use the API action to remove tags from EFS resources. </note> Deletes the specified tags from a file system. If the <code>DeleteTags</code> request includes a tag key that doesn't exist, Amazon EFS ignores it and doesn't cause an error. For more information about tags and related restrictions, see <a href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html">Tag Restrictions</a> in the <i>AWS Billing and Cost Management User Guide</i>. This operation requires permissions for the <code>elasticfilesystem:DeleteTags</code> action.

        :param self:
        :param TagKeys:  A list of tag keys to delete.<br/>FileSystemId:  The ID of the file system whose tags you want to delete (String).<br/>
        :return:         """
        pass

    def describe_access_points(self, MaxResults: int=None, NextToken: str=None, AccessPointId: str=None, FileSystemId: str=None) -> DescribeAccessPointsResponse:
        r"""Returns the description of a specific Amazon EFS access point if the <code>AccessPointId</code> is provided. If you provide an EFS <code>FileSystemId</code>, it returns descriptions of all access points for that file system. You can provide either an <code>AccessPointId</code> or a <code>FileSystemId</code> in the request, but not both.  This operation requires permissions for the <code>elasticfilesystem:DescribeAccessPoints</code> action.

        :param self:
        :param FileSystemId:  (Optional) If you provide a <code>FileSystemId</code>, EFS returns all access points for that file system; mutually exclusive with <code>AccessPointId</code>.<br/>AccessPointId:  (Optional) Specifies an EFS access point to describe in the response; mutually exclusive with <code>FileSystemId</code>.<br/>NextToken:   <code>NextToken</code> is present if the response is paginated. You can use <code>NextMarker</code> in the subsequent request to fetch the next page of access point descriptions.<br/>MaxResults:  (Optional) When retrieving all access points for a file system, you can optionally specify the <code>MaxItems</code> parameter to limit the number of objects returned in a response. The default value is 100. <br/>
        :return: NextToken:  Present if there are more access points than returned in the response. You can use the NextMarker in the subsequent request to fetch the additional descriptions.<br/>AccessPoints:  An array of access point descriptions.<br/>        """
        pass

    def describe_account_preferences(self, NextToken: str=None, MaxResults: int=None) -> DescribeAccountPreferencesResponse:
        r"""

        :param self:
        :param MaxResults:  Max results used for pagination.<br/>NextToken:  Token used for pagination.<br/>
        :return: NextToken:  Token used for pagination.<br/>ResourceIdPreference:  :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Resources</i> EFS resources to which a preference applies to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceIdType</i> A preference indicating a choice to use 63bit/32bit IDs for all applicable resources.<br/>        """
        pass

    def describe_backup_policy(self, FileSystemId: str) -> BackupPolicyDescription:
        r"""Returns the backup policy for the specified EFS file system.

        :param self:
        :param FileSystemId:  Specifies which EFS file system to retrieve the <code>BackupPolicy</code> for.<br/>
        :return: BackupPolicy:  Describes the file system's backup policy, indicating whether automatic backups are turned on or off..:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Describes the status of the file system's backup policy. <ul> <li>  <b> <code>ENABLED</code> </b> - EFS is automatically backing up the file system. </li> <li>  <b> <code>ENABLING</code> </b> - EFS is turning on automatic backups for the file system. </li> <li>  <b> <code>DISABLED</code> </b> - automatic back ups are turned off for the file system. </li> <li>  <b> <code>DISABLING</code> </b> - EFS is turning off automatic backups for the file system. </li> </ul><br/>        """
        pass

    def describe_file_system_policy(self, FileSystemId: str) -> FileSystemPolicyDescription:
        r"""Returns the <code>FileSystemPolicy</code> for the specified EFS file system. This operation requires permissions for the <code>elasticfilesystem:DescribeFileSystemPolicy</code> action.

        :param self:
        :param FileSystemId:  Specifies which EFS file system to retrieve the <code>FileSystemPolicy</code> for.<br/>
        :return: Policy:  The JSON formatted <code>FileSystemPolicy</code> for the EFS file system.<br/>FileSystemId:  Specifies the EFS file system to which the <code>FileSystemPolicy</code> applies.<br/>        """
        pass

    def describe_file_systems(self, MaxItems: int=None, Marker: str=None, CreationToken: str=None, FileSystemId: str=None) -> DescribeFileSystemsResponse:
        r"""Returns the description of a specific Amazon EFS file system if either the file system <code>CreationToken</code> or the <code>FileSystemId</code> is provided. Otherwise, it returns descriptions of all file systems owned by the caller's AWS account in the AWS Region of the endpoint that you're calling. When retrieving all file system descriptions, you can optionally specify the <code>MaxItems</code> parameter to limit the number of descriptions in a response. Currently, this number is automatically set to 10. If more file system descriptions remain, Amazon EFS returns a <code>NextMarker</code>, an opaque token, in the response. In this case, you should send a subsequent request with the <code>Marker</code> request parameter set to the value of <code>NextMarker</code>.  To retrieve a list of your file system descriptions, this operation is used in an iterative process, where <code>DescribeFileSystems</code> is called first without the <code>Marker</code> and then the operation continues to call it with the <code>Marker</code> parameter set to the value of the <code>NextMarker</code> from the previous response until the response has no <code>NextMarker</code>.   The order of file systems returned in the response of one <code>DescribeFileSystems</code> call and the order of file systems returned across the responses of a multi-call iteration is unspecified.   This operation requires permissions for the <code>elasticfilesystem:DescribeFileSystems</code> action. 

        :param self:
        :param FileSystemId:  (Optional) ID of the file system whose description you want to retrieve (String).<br/>CreationToken:  (Optional) Restricts the list to the file system with this creation token (String). You specify a creation token when you create an Amazon EFS file system.<br/>Marker:  (Optional) Opaque pagination token returned from a previous <code>DescribeFileSystems</code> operation (String). If present, specifies to continue the list from where the returning call had left off. <br/>MaxItems:  (Optional) Specifies the maximum number of file systems to return in the response (integer). This number is automatically set to 100. The response is paginated at 100 per page if you have more than 100 file systems. <br/>
        :return: NextMarker:  Present if there are more file systems than returned in the response (String). You can use the <code>NextMarker</code> in the subsequent request to fetch the descriptions.<br/>FileSystems:  An array of file system descriptions.<br/>Marker:  Present if provided by caller in the request (String).<br/>        """
        pass

    def describe_lifecycle_configuration(self, FileSystemId: str) -> LifecycleConfigurationDescription:
        r"""Returns the current <code>LifecycleConfiguration</code> object for the specified Amazon EFS file system. EFS lifecycle management uses the <code>LifecycleConfiguration</code> object to identify which files to move to the EFS Infrequent Access (IA) storage class. For a file system without a <code>LifecycleConfiguration</code> object, the call returns an empty array in the response. This operation requires permissions for the <code>elasticfilesystem:DescribeLifecycleConfiguration</code> operation.

        :param self:
        :param FileSystemId:  The ID of the file system whose <code>LifecycleConfiguration</code> object you want to retrieve (String).<br/>
        :return: LifecyclePolicies:  An array of lifecycle management policies. Currently, EFS supports a maximum of one policy per file system.<br/>        """
        pass

    def describe_mount_target_security_groups(self, MountTargetId: str) -> DescribeMountTargetSecurityGroupsResponse:
        r"""Returns the security groups currently in effect for a mount target. This operation requires that the network interface of the mount target has been created and the lifecycle state of the mount target is not <code>deleted</code>. This operation requires permissions for the following actions: <ul> <li>  <code>elasticfilesystem:DescribeMountTargetSecurityGroups</code> action on the mount target's file system.  </li> <li>  <code>ec2:DescribeNetworkInterfaceAttribute</code> action on the mount target's network interface.  </li> </ul>

        :param self:
        :param MountTargetId:  The ID of the mount target whose security groups you want to retrieve.<br/>
        :return: SecurityGroups:  An array of security groups.<br/>        """
        pass

    def describe_mount_targets(self, MaxItems: int=None, Marker: str=None, FileSystemId: str=None, MountTargetId: str=None, AccessPointId: str=None) -> DescribeMountTargetsResponse:
        r"""Returns the descriptions of all the current mount targets, or a specific mount target, for a file system. When requesting all of the current mount targets, the order of mount targets returned in the response is unspecified. This operation requires permissions for the <code>elasticfilesystem:DescribeMountTargets</code> action, on either the file system ID that you specify in <code>FileSystemId</code>, or on the file system of the mount target that you specify in <code>MountTargetId</code>.

        :param self:
        :param AccessPointId:  (Optional) The ID of the access point whose mount targets that you want to list. It must be included in your request if a <code>FileSystemId</code> or <code>MountTargetId</code> is not included in your request. Accepts either an access point ID or ARN as input.<br/>MountTargetId:  (Optional) ID of the mount target that you want to have described (String). It must be included in your request if <code>FileSystemId</code> is not included. Accepts either a mount target ID or ARN as input.<br/>FileSystemId:  (Optional) ID of the file system whose mount targets you want to list (String). It must be included in your request if an <code>AccessPointId</code> or <code>MountTargetId</code> is not included. Accepts either a file system ID or ARN as input.<br/>Marker:  (Optional) Opaque pagination token returned from a previous <code>DescribeMountTargets</code> operation (String). If present, it specifies to continue the list from where the previous returning call left off.<br/>MaxItems:  (Optional) Maximum number of mount targets to return in the response. Currently, this number is automatically set to 10, and other values are ignored. The response is paginated at 100 per page if you have more than 100 mount targets.<br/>
        :return: NextMarker:  If a value is present, there are more mount targets to return. In a subsequent request, you can provide <code>Marker</code> in your request with this value to retrieve the next set of mount targets.<br/>MountTargets:  Returns the file system's mount targets as an array of <code>MountTargetDescription</code> objects.<br/>Marker:  If the request included the <code>Marker</code>, the response returns that value in this field.<br/>        """
        pass

    def describe_tags(self, FileSystemId: str, MaxItems: int=None, Marker: str=None) -> DescribeTagsResponse:
        r"""<note> DEPRECATED - The DeleteTags action is deprecated and not maintained. Please use the API action to remove tags from EFS resources. </note> Returns the tags associated with a file system. The order of tags returned in the response of one <code>DescribeTags</code> call and the order of tags returned across the responses of a multiple-call iteration (when using pagination) is unspecified.   This operation requires permissions for the <code>elasticfilesystem:DescribeTags</code> action. 

        :param self:
        :param FileSystemId:  The ID of the file system whose tag set you want to retrieve.<br/>Marker:  (Optional) An opaque pagination token returned from a previous <code>DescribeTags</code> operation (String). If present, it specifies to continue the list from where the previous call left off.<br/>MaxItems:  (Optional) The maximum number of file system tags to return in the response. Currently, this number is automatically set to 100, and other values are ignored. The response is paginated at 100 per page if you have more than 100 tags.<br/>
        :return: NextMarker:  If a value is present, there are more tags to return. In a subsequent request, you can provide the value of <code>NextMarker</code> as the value of the <code>Marker</code> parameter in your next request to retrieve the next set of tags.<br/>Tags:  Returns tags associated with the file system as an array of <code>Tag</code> objects. <br/>Marker:  If the request included a <code>Marker</code>, the response returns that value in this field.<br/>        """
        pass

    def list_tags_for_resource(self, ResourceId: str, MaxResults: int=None, NextToken: str=None) -> ListTagsForResourceResponse:
        r"""Lists all tags for a top-level EFS resource. You must provide the ID of the resource that you want to retrieve the tags for. This operation requires permissions for the <code>elasticfilesystem:DescribeAccessPoints</code> action.

        :param self:
        :param NextToken:  (Optional) You can use <code>NextToken</code> in a subsequent request to fetch the next page of access point descriptions if the response payload was paginated.<br/>MaxResults:  (Optional) Specifies the maximum number of tag objects to return in the response. The default value is 100.<br/>ResourceId:  Specifies the EFS resource you want to retrieve tags for. You can retrieve tags for EFS file systems and access points using this API endpoint.<br/>
        :return: NextToken:   <code>NextToken</code> is present if the response payload is paginated. You can use <code>NextToken</code> in a subsequent request to fetch the next page of access point descriptions.<br/>Tags:  An array of the tags for the specified EFS resource.<br/>        """
        pass

    def modify_mount_target_security_groups(self, MountTargetId: str, SecurityGroups: List[SecurityGroup]=None):
        r"""Modifies the set of security groups in effect for a mount target. When you create a mount target, Amazon EFS also creates a new network interface. For more information, see <a>CreateMountTarget</a>. This operation replaces the security groups in effect for the network interface associated with a mount target, with the <code>SecurityGroups</code> provided in the request. This operation requires that the network interface of the mount target has been created and the lifecycle state of the mount target is not <code>deleted</code>.  The operation requires permissions for the following actions: <ul> <li>  <code>elasticfilesystem:ModifyMountTargetSecurityGroups</code> action on the mount target's file system.  </li> <li>  <code>ec2:ModifyNetworkInterfaceAttribute</code> action on the mount target's network interface.  </li> </ul>

        :param self:
        :param SecurityGroups:  An array of up to five VPC security group IDs.<br/>MountTargetId:  The ID of the mount target whose security groups you want to modify.<br/>
        :return:         """
        pass

    def put_account_preferences(self, ResourceIdType: str) -> PutAccountPreferencesResponse:
        r"""

        :param self:
        :param ResourceIdType:  A preference indicating a choice to use 63bit/32bit IDs for all applicable resources.<br/>
        :return: ResourceIdPreference:  :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Resources</i> EFS resources to which a preference applies to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceIdType</i> A preference indicating a choice to use 63bit/32bit IDs for all applicable resources.<br/>        """
        pass

    def put_backup_policy(self, BackupPolicy: BackupPolicy, FileSystemId: str) -> BackupPolicyDescription:
        r"""Updates the file system's backup policy. Use this action to start or stop automatic backups of the file system. 

        :param self:
        :param BackupPolicy:  The backup policy included in the <code>PutBackupPolicy</code> request.:<br/>FileSystemId:  Specifies which EFS file system to update the backup policy for.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Describes the status of the file system's backup policy. <ul> <li>  <b> <code>ENABLED</code> </b> - EFS is automatically backing up the file system. </li> <li>  <b> <code>ENABLING</code> </b> - EFS is turning on automatic backups for the file system. </li> <li>  <b> <code>DISABLED</code> </b> - automatic back ups are turned off for the file system. </li> <li>  <b> <code>DISABLING</code> </b> - EFS is turning off automatic backups for the file system. </li> </ul><br/>
        :return: BackupPolicy:  Describes the file system's backup policy, indicating whether automatic backups are turned on or off..:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Describes the status of the file system's backup policy. <ul> <li>  <b> <code>ENABLED</code> </b> - EFS is automatically backing up the file system. </li> <li>  <b> <code>ENABLING</code> </b> - EFS is turning on automatic backups for the file system. </li> <li>  <b> <code>DISABLED</code> </b> - automatic back ups are turned off for the file system. </li> <li>  <b> <code>DISABLING</code> </b> - EFS is turning off automatic backups for the file system. </li> </ul><br/>        """
        pass

    def put_file_system_policy(self, Policy: str, FileSystemId: str, BypassPolicyLockoutSafetyCheck: BypassPolicyLockoutSafetyCheck=None) -> FileSystemPolicyDescription:
        r"""Applies an Amazon EFS <code>FileSystemPolicy</code> to an Amazon EFS file system. A file system policy is an IAM resource-based policy and can contain multiple policy statements. A file system always has exactly one file system policy, which can be the default policy or an explicit policy set or updated using this API operation. EFS file system policies have a 20,000 character limit. When an explicit policy is set, it overrides the default policy. For more information about the default file system policy, see <a href="https://docs.aws.amazon.com/efs/latest/ug/iam-access-control-nfs-efs.html#default-filesystempolicy">Default EFS File System Policy</a>.  EFS file system policies have a 20,000 character limit. This operation requires permissions for the <code>elasticfilesystem:PutFileSystemPolicy</code> action.

        :param self:
        :param BypassPolicyLockoutSafetyCheck:  (Optional) A flag to indicate whether to bypass the <code>FileSystemPolicy</code> lockout safety check. The policy lockout safety check determines whether the policy in the request will prevent the principal making the request will be locked out from making future <code>PutFileSystemPolicy</code> requests on the file system. Set <code>BypassPolicyLockoutSafetyCheck</code> to <code>True</code> only when you intend to prevent the principal that is making the request from making a subsequent <code>PutFileSystemPolicy</code> request on the file system. The default value is False. <br/>Policy:  The <code>FileSystemPolicy</code> that you're creating. Accepts a JSON formatted policy definition. EFS file system policies have a 20,000 character limit. To find out more about the elements that make up a file system policy, see <a href="https://docs.aws.amazon.com/efs/latest/ug/access-control-overview.html#access-control-manage-access-intro-resource-policies">EFS Resource-based Policies</a>. <br/>FileSystemId:  The ID of the EFS file system that you want to create or update the <code>FileSystemPolicy</code> for.<br/>
        :return: Policy:  The JSON formatted <code>FileSystemPolicy</code> for the EFS file system.<br/>FileSystemId:  Specifies the EFS file system to which the <code>FileSystemPolicy</code> applies.<br/>        """
        pass

    def put_lifecycle_configuration(self, LifecyclePolicies: List[LifecyclePolicy], FileSystemId: str) -> LifecycleConfigurationDescription:
        r"""Enables lifecycle management by creating a new <code>LifecycleConfiguration</code> object. A <code>LifecycleConfiguration</code> object defines when files in an Amazon EFS file system are automatically transitioned to the lower-cost EFS Infrequent Access (IA) storage class. A <code>LifecycleConfiguration</code> applies to all files in a file system. Each Amazon EFS file system supports one lifecycle configuration, which applies to all files in the file system. If a <code>LifecycleConfiguration</code> object already exists for the specified file system, a <code>PutLifecycleConfiguration</code> call modifies the existing configuration. A <code>PutLifecycleConfiguration</code> call with an empty <code>LifecyclePolicies</code> array in the request body deletes any existing <code>LifecycleConfiguration</code> and disables lifecycle management. In the request, specify the following:  <ul> <li> The ID for the file system for which you are enabling, disabling, or modifying lifecycle management. </li> <li> A <code>LifecyclePolicies</code> array of <code>LifecyclePolicy</code> objects that define when files are moved to the IA storage class. The array can contain only one <code>LifecyclePolicy</code> item. </li> </ul> This operation requires permissions for the <code>elasticfilesystem:PutLifecycleConfiguration</code> operation. To apply a <code>LifecycleConfiguration</code> object to an encrypted file system, you need the same AWS Key Management Service (AWS KMS) permissions as when you created the encrypted file system. 

        :param self:
        :param LifecyclePolicies:  An array of <code>LifecyclePolicy</code> objects that define the file system's <code>LifecycleConfiguration</code> object. A <code>LifecycleConfiguration</code> object tells lifecycle management when to transition files from the Standard storage class to the Infrequent Access storage class.<br/>FileSystemId:  The ID of the file system for which you are creating the <code>LifecycleConfiguration</code> object (String).<br/>
        :return: LifecyclePolicies:  An array of lifecycle management policies. Currently, EFS supports a maximum of one policy per file system.<br/>        """
        pass

    def tag_resource(self, Tags: List[Tag], ResourceId: str):
        r"""Creates a tag for an EFS resource. You can create tags for EFS file systems and access points using this API operation. This operation requires permissions for the <code>elasticfilesystem:TagResource</code> action.

        :param self:
        :param Tags:  An array of <code>Tag</code> objects to add. Each <code>Tag</code> object is a key-value pair.<br/>ResourceId:  The ID specifying the EFS resource that you want to create a tag for.<br/>
        :return:         """
        pass

    def untag_resource(self, TagKeys: List[TagKey], ResourceId: str):
        r"""Removes tags from an EFS resource. You can remove tags from EFS file systems and access points using this API operation. This operation requires permissions for the <code>elasticfilesystem:UntagResource</code> action.

        :param self:
        :param TagKeys:  The keys of the key-value tag pairs that you want to remove from the specified EFS resource.<br/>ResourceId:  Specifies the EFS resource that you want to remove tags from.<br/>
        :return:         """
        pass

    def update_file_system(self, FileSystemId: str, ThroughputMode: str=None, ProvisionedThroughputInMibps: ProvisionedThroughputInMibps=None) -> FileSystemDescription:
        r"""Updates the throughput mode or the amount of provisioned throughput of an existing file system.

        :param self:
        :param ProvisionedThroughputInMibps:  (Optional) Sets the amount of provisioned throughput, in MiB/s, for the file system. Valid values are 1-1024. If you are changing the throughput mode to provisioned, you must also provide the amount of provisioned throughput. Required if <code>ThroughputMode</code> is changed to <code>provisioned</code> on update.<br/>ThroughputMode:  (Optional) Updates the file system's throughput mode. If you're not updating your throughput mode, you don't need to provide this value in your request. If you are changing the <code>ThroughputMode</code> to <code>provisioned</code>, you must also set a value for <code>ProvisionedThroughputInMibps</code>.<br/>FileSystemId:  The ID of the file system that you want to update.<br/>
        :return: Tags:  The tags associated with the file system, presented as an array of <code>Tag</code> objects.<br/>AvailabilityZoneId:  The unique and consistent identifier of the Availability Zone in which the file system's One Zone storage classes exist. For example, <code>use1-az1</code> is an Availability Zone ID for the us-east-1 AWS Region, and it has the same location in every AWS account.<br/>AvailabilityZoneName:  Describes the AWS Availability Zone in which the file system is located, and is valid only for file systems using One Zone storage classes. For more information, see <a href="https://docs.aws.amazon.com/efs/latest/ug/storage-classes.html">Using EFS storage classes</a> in the <i>Amazon EFS User Guide</i>.<br/>ProvisionedThroughputInMibps:  The amount of provisioned throughput, measured in MiB/s, for the file system. Valid for file systems using <code>ThroughputMode</code> set to <code>provisioned</code>.<br/>ThroughputMode:  Displays the file system's throughput mode. For more information, see <a href="https://docs.aws.amazon.com/efs/latest/ug/performance.html#throughput-modes">Throughput modes</a> in the <i>Amazon EFS User Guide</i>. <br/>KmsKeyId:  The ID of an AWS Key Management Service (AWS KMS) customer master key (CMK) that was used to protect the encrypted file system.<br/>Encrypted:  A Boolean value that, if true, indicates that the file system is encrypted.<br/>PerformanceMode:  The performance mode of the file system.<br/>SizeInBytes:  The latest known metered size (in bytes) of data stored in the file system, in its <code>Value</code> field, and the time at which that size was determined in its <code>Timestamp</code> field. The <code>Timestamp</code> value is the integer number of seconds since 1970-01-01T00:00:00Z. The <code>SizeInBytes</code> value doesn't represent the size of a consistent snapshot of the file system, but it is eventually consistent when there are no writes to the file system. That is, <code>SizeInBytes</code> represents actual size only if the file system is not modified for a period longer than a couple of hours. Otherwise, the value is not the exact size that the file system was at any point in time. :<br/>NumberOfMountTargets:  The current number of mount targets that the file system has. For more information, see <a>CreateMountTarget</a>.<br/>Name:  You can add tags to a file system, including a <code>Name</code> tag. For more information, see <a>CreateFileSystem</a>. If the file system has a <code>Name</code> tag, Amazon EFS returns the value in this field. <br/>LifeCycleState:  The lifecycle phase of the file system.<br/>CreationTime:  The time that the file system was created, in seconds (since 1970-01-01T00:00:00Z).<br/>FileSystemArn:  The Amazon Resource Name (ARN) for the EFS file system, in the format <code>arn:aws:elasticfilesystem:<i>region</i>:<i>account-id</i>:file-system/<i>file-system-id</i> </code>. Example with sample data: <code>arn:aws:elasticfilesystem:us-west-2:1111333322228888:file-system/fs-01234567</code> <br/>FileSystemId:  The ID of the file system, assigned by Amazon EFS.<br/>CreationToken:  The opaque string specified in the request.<br/>OwnerId:  The AWS account that created the file system. If the file system was created by an IAM user, the parent account to which the user belongs is the owner.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ValueInStandard</i> The latest known metered size (in bytes) of data stored in the Standard storage class.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ValueInIA</i> The latest known metered size (in bytes) of data stored in the Infrequent Access storage class.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Timestamp</i> The time at which the size of data, returned in the <code>Value</code> field, was determined. The value is the integer number of seconds since 1970-01-01T00:00:00Z.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Value</i> The latest known metered size (in bytes) of data stored in the file system.<br/>        """
        pass





class EKS(BaseClient):
    r"""Amazon Elastic Kubernetes Service (Amazon EKS) is a managed service that makes it easy for you to run Kubernetes on AWS without needing to stand up or maintain your own Kubernetes control plane. Kubernetes is an open-source system for automating the deployment, scaling, and management of containerized applications.  Amazon EKS runs up-to-date versions of the open-source Kubernetes software, so you can use all the existing plugins and tooling from the Kubernetes community. Applications running on Amazon EKS are fully compatible with applications running on any standard Kubernetes environment, whether running in on-premises data centers or public clouds. This means that you can easily migrate any standard Kubernetes application to Amazon EKS without any code modification required."""

    class AddonActiveWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_addon` for valid parameters"""
            pass
    class AddonDeletedWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_addon` for valid parameters"""
            pass
    class ClusterActiveWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_cluster` for valid parameters"""
            pass
    class ClusterDeletedWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_cluster` for valid parameters"""
            pass
    class FargateProfileActiveWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_fargate_profile` for valid parameters"""
            pass
    class FargateProfileDeletedWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_fargate_profile` for valid parameters"""
            pass
    class NodegroupActiveWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_nodegroup` for valid parameters"""
            pass
    class NodegroupDeletedWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_nodegroup` for valid parameters"""
            pass


    class ListClustersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_clusters` for valid parameters"""
            pass
    class ListUpdatesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_updates` for valid parameters"""
            pass
    class ListNodegroupsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_nodegroups` for valid parameters"""
            pass
    class ListFargateProfilesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_fargate_profiles` for valid parameters"""
            pass
    class DescribeAddonVersionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_addon_versions` for valid parameters"""
            pass
    class ListAddonsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_addons` for valid parameters"""
            pass
    class ListIdentityProviderConfigsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_identity_provider_configs` for valid parameters"""
            pass


    class AssociateEncryptionConfigRequest(Mapping):
        pass
    
    class AssociateEncryptionConfigResponse(Mapping):
        pass
    
    class EncryptionConfig(Mapping):
        pass
    
    class AssociateIdentityProviderConfigRequest(Mapping):
        pass
    
    class AssociateIdentityProviderConfigResponse(Mapping):
        pass
    
    class OidcIdentityProviderConfigRequest(Mapping):
        pass
    
    class TagMap(object):
        pass
    
    class CreateAddonRequest(Mapping):
        pass
    
    class CreateAddonResponse(Mapping):
        pass
    
    class CreateClusterRequest(Mapping):
        pass
    
    class CreateClusterResponse(Mapping):
        pass
    
    class VpcConfigRequest(Mapping):
        pass
    
    class KubernetesNetworkConfigRequest(Mapping):
        pass
    
    class Logging(Mapping):
        pass
    
    class CreateFargateProfileRequest(Mapping):
        pass
    
    class CreateFargateProfileResponse(Mapping):
        pass
    
    class String(object):
        pass
    
    class FargateProfileSelector(Mapping):
        pass
    
    class CreateNodegroupRequest(Mapping):
        pass
    
    class CreateNodegroupResponse(Mapping):
        pass
    
    class NodegroupScalingConfig(Mapping):
        pass
    
    class RemoteAccessConfig(Mapping):
        pass
    
    class labelsMap(object):
        pass
    
    class Taint(Mapping):
        pass
    
    class LaunchTemplateSpecification(Mapping):
        pass
    
    class NodegroupUpdateConfig(Mapping):
        pass
    
    class DeleteAddonRequest(Mapping):
        pass
    
    class DeleteAddonResponse(Mapping):
        pass
    
    class DeleteClusterRequest(Mapping):
        pass
    
    class DeleteClusterResponse(Mapping):
        pass
    
    class DeleteFargateProfileRequest(Mapping):
        pass
    
    class DeleteFargateProfileResponse(Mapping):
        pass
    
    class DeleteNodegroupRequest(Mapping):
        pass
    
    class DeleteNodegroupResponse(Mapping):
        pass
    
    class DescribeAddonRequest(Mapping):
        pass
    
    class DescribeAddonResponse(Mapping):
        pass
    
    class DescribeAddonVersionsRequest(Mapping):
        pass
    
    class DescribeAddonVersionsResponse(Mapping):
        pass
    
    class DescribeClusterRequest(Mapping):
        pass
    
    class DescribeClusterResponse(Mapping):
        pass
    
    class DescribeFargateProfileRequest(Mapping):
        pass
    
    class DescribeFargateProfileResponse(Mapping):
        pass
    
    class DescribeIdentityProviderConfigRequest(Mapping):
        pass
    
    class DescribeIdentityProviderConfigResponse(Mapping):
        pass
    
    class IdentityProviderConfig(Mapping):
        pass
    
    class DescribeNodegroupRequest(Mapping):
        pass
    
    class DescribeNodegroupResponse(Mapping):
        pass
    
    class DescribeUpdateRequest(Mapping):
        pass
    
    class DescribeUpdateResponse(Mapping):
        pass
    
    class DisassociateIdentityProviderConfigRequest(Mapping):
        pass
    
    class DisassociateIdentityProviderConfigResponse(Mapping):
        pass
    
    class ListAddonsRequest(Mapping):
        pass
    
    class ListAddonsResponse(Mapping):
        pass
    
    class ListClustersRequest(Mapping):
        pass
    
    class ListClustersResponse(Mapping):
        pass
    
    class ListFargateProfilesRequest(Mapping):
        pass
    
    class ListFargateProfilesResponse(Mapping):
        pass
    
    class ListIdentityProviderConfigsRequest(Mapping):
        pass
    
    class ListIdentityProviderConfigsResponse(Mapping):
        pass
    
    class ListNodegroupsRequest(Mapping):
        pass
    
    class ListNodegroupsResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class ListUpdatesRequest(Mapping):
        pass
    
    class ListUpdatesResponse(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateAddonRequest(Mapping):
        pass
    
    class UpdateAddonResponse(Mapping):
        pass
    
    class UpdateClusterConfigRequest(Mapping):
        pass
    
    class UpdateClusterConfigResponse(Mapping):
        pass
    
    class UpdateClusterVersionRequest(Mapping):
        pass
    
    class UpdateClusterVersionResponse(Mapping):
        pass
    
    class UpdateNodegroupConfigRequest(Mapping):
        pass
    
    class UpdateNodegroupConfigResponse(Mapping):
        pass
    
    class UpdateLabelsPayload(Mapping):
        pass
    
    class UpdateTaintsPayload(Mapping):
        pass
    
    class UpdateNodegroupVersionRequest(Mapping):
        pass
    
    class UpdateNodegroupVersionResponse(Mapping):
        pass
    
    class Boolean(object):
        pass
    
    def associate_encryption_config(self, encryptionConfig: List[EncryptionConfig], clusterName: str, clientRequestToken: str=None) -> AssociateEncryptionConfigResponse:
        r"""Associate encryption configuration to an existing cluster. You can use this API to enable encryption on existing clusters which do not have encryption already enabled. This allows you to implement a defense-in-depth security strategy without migrating applications to new EKS clusters.

        :param self:
        :param clientRequestToken:  The client request token you are using with the encryption configuration.<br/>encryptionConfig:  The configuration you are using for encryption.<br/>clusterName:  The name of the cluster that you are associating with encryption configuration.<br/>
        :return: update:  An object representing an asynchronous update.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>errors</i> Any errors associated with a <code>Failed</code> update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The Unix epoch timestamp in seconds for when the update was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>params</i> A key-value map that contains the parameters associated with the update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of the update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current status of the update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> A UUID that is used to track the update.<br/>        """
        pass

    def associate_identity_provider_config(self, oidc: OidcIdentityProviderConfigRequest, clusterName: str, tags: TagMap=None, clientRequestToken: str=None) -> AssociateIdentityProviderConfigResponse:
        r"""Associate an identity provider configuration to a cluster. If you want to authenticate identities using an identity provider, you can create an identity provider configuration and associate it to your cluster. After configuring authentication to your cluster you can create Kubernetes <code>roles</code> and <code>clusterroles</code> to assign permissions to the roles, and then bind the roles to the identities using Kubernetes <code>rolebindings</code> and <code>clusterrolebindings</code>. For more information see <a href="https://kubernetes.io/docs/reference/access-authn-authz/rbac/">Using RBAC Authorization</a> in the Kubernetes documentation.

        :param self:
        :param clientRequestToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.<br/>tags:  The metadata to apply to the configuration to assist with categorization and organization. Each tag consists of a key and an optional value, both of which you define.<br/>oidc:  An object that represents an OpenID Connect (OIDC) identity provider configuration.:<br/>clusterName:  The name of the cluster to associate the configuration to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>requiredClaims</i> The key value pairs that describe required claims in the identity token. If set, each claim is verified to be present in the token with a matching value. For the maximum number of claims that you can require, see <a href="https://docs.aws.amazon.com/eks/latest/userguide/service-quotas.html">Amazon EKS service quotas</a> in the <i>Amazon EKS User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>groupsPrefix</i> The prefix that is prepended to group claims to prevent clashes with existing names (such as <code>system:</code> groups). For example, the value<code> oidc:</code> will create group names like <code>oidc:engineering</code> and <code>oidc:infra</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>groupsClaim</i> The JWT claim that the provider uses to return your groups.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>usernamePrefix</i> The prefix that is prepended to username claims to prevent clashes with existing names. If you do not provide this field, and <code>username</code> is a value other than <code>email</code>, the prefix defaults to <code>issuerurl#</code>. You can use the value <code>-</code> to disable all prefixing.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>usernameClaim</i> The JSON Web Token (JWT) claim to use as the username. The default is <code>sub</code>, which is expected to be a unique identifier of the end user. You can choose other claims, such as <code>email</code> or <code>name</code>, depending on the OpenID identity provider. Claims other than <code>email</code> are prefixed with the issuer URL to prevent naming clashes with other plug-ins.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>clientId</i> This is also known as <i>audience</i>. The ID for the client application that makes authentication requests to the OpenID identity provider.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>issuerUrl</i> The URL of the OpenID identity provider that allows the API server to discover public signing keys for verifying tokens. The URL must begin with <code>https://</code> and should correspond to the <code>iss</code> claim in the provider's OIDC ID tokens. Per the OIDC standard, path components are allowed but query parameters are not. Typically the URL consists of only a hostname, like <code>https://server.example.org</code> or <code>https://example.com</code>. This URL should point to the level below <code>.well-known/openid-configuration</code> and must be publicly accessible over the internet.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>identityProviderConfigName</i> The name of the OIDC provider configuration.<br/>
        :return: tags:  The tags for the resource.<br/>update:  An object representing an asynchronous update.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>errors</i> Any errors associated with a <code>Failed</code> update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The Unix epoch timestamp in seconds for when the update was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>params</i> A key-value map that contains the parameters associated with the update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of the update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current status of the update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> A UUID that is used to track the update.<br/>        """
        pass

    def create_addon(self, addonName: str, clusterName: str, addonVersion: str=None, serviceAccountRoleArn: str=None, resolveConflicts: str=None, clientRequestToken: str=None, tags: TagMap=None) -> CreateAddonResponse:
        r"""Creates an Amazon EKS add-on. Amazon EKS add-ons help to automate the provisioning and lifecycle management of common operational software for Amazon EKS clusters. Amazon EKS add-ons can only be used with Amazon EKS clusters running version 1.18 with platform version <code>eks.3</code> or later because add-ons rely on the Server-side Apply Kubernetes feature, which is only available in Kubernetes 1.18 and later.

        :param self:
        :param tags:  The metadata to apply to the cluster to assist with categorization and organization. Each tag consists of a key and an optional value, both of which you define. <br/>clientRequestToken:  A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.<br/>resolveConflicts:  How to resolve parameter value conflicts when migrating an existing add-on to an Amazon EKS add-on.<br/>serviceAccountRoleArn:  The Amazon Resource Name (ARN) of an existing IAM role to bind to the add-on's service account. The role must be assigned the IAM permissions required by the add-on. If you don't specify an existing IAM role, then the add-on uses the permissions assigned to the node IAM role. For more information, see <a href="https://docs.aws.amazon.com/eks/latest/userguide/create-node-role.html">Amazon EKS node IAM role</a> in the <i>Amazon EKS User Guide</i>. <note> To specify an existing IAM role, you must have an IAM OpenID Connect (OIDC) provider created for your cluster. For more information, see <a href="https://docs.aws.amazon.com/eks/latest/userguide/enable-iam-roles-for-service-accounts.html">Enabling IAM roles for service accounts on your cluster</a> in the <i>Amazon EKS User Guide</i>. </note><br/>addonVersion:  The version of the add-on. The version must match one of the versions returned by <a href="https://docs.aws.amazon.com/eks/latest/APIReference/API_DescribeAddonVersions.html"> <code>DescribeAddonVersions</code> </a>.<br/>addonName:  The name of the add-on. The name must match one of the names returned by <a href="https://docs.aws.amazon.com/eks/latest/APIReference/API_ListAddons.html"> <code>ListAddons</code> </a>.<br/>clusterName:  The name of the cluster to create the add-on for.<br/>
        :return: addon:  An Amazon EKS add-on.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The metadata that you apply to the add-on to assist with categorization and organization. Each tag consists of a key and an optional value, both of which you define. Add-on tags do not propagate to any other resources associated with the cluster. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>serviceAccountRoleArn</i> The Amazon Resource Name (ARN) of the IAM role that is bound to the Kubernetes service account used by the add-on.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>modifiedAt</i> The date and time that the add-on was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The date and time that the add-on was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>addonArn</i> The Amazon Resource Name (ARN) of the add-on.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>health</i> An object that represents the health of the add-on.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>health</b>: An object that represents the health of the add-on.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>addonVersion</i> The version of the add-on.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the add-on.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>clusterName</i> The name of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>addonName</i> The name of the add-on.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>issues</i> An object that represents the add-on's health issues.<br/>        """
        pass

    def create_cluster(self, resourcesVpcConfig: VpcConfigRequest, roleArn: str, name: str, version: str=None, kubernetesNetworkConfig: KubernetesNetworkConfigRequest=None, logging: Logging=None, clientRequestToken: str=None, tags: TagMap=None, encryptionConfig: List[EncryptionConfig]=None) -> CreateClusterResponse:
        r"""Creates an Amazon EKS control plane.  The Amazon EKS control plane consists of control plane instances that run the Kubernetes software, such as <code>etcd</code> and the API server. The control plane runs in an account managed by AWS, and the Kubernetes API is exposed via the Amazon EKS API server endpoint. Each Amazon EKS cluster control plane is single-tenant and unique and runs on its own set of Amazon EC2 instances. The cluster control plane is provisioned across multiple Availability Zones and fronted by an Elastic Load Balancing Network Load Balancer. Amazon EKS also provisions elastic network interfaces in your VPC subnets to provide connectivity from the control plane instances to the nodes (for example, to support <code>kubectl exec</code>, <code>logs</code>, and <code>proxy</code> data flows). Amazon EKS nodes run in your AWS account and connect to your cluster's control plane via the Kubernetes API server endpoint and a certificate file that is created for your cluster. Cluster creation typically takes several minutes. After you create an Amazon EKS cluster, you must configure your Kubernetes tooling to communicate with the API server and launch nodes into your cluster. For more information, see <a href="https://docs.aws.amazon.com/eks/latest/userguide/managing-auth.html">Managing Cluster Authentication</a> and <a href="https://docs.aws.amazon.com/eks/latest/userguide/launch-workers.html">Launching Amazon EKS nodes</a> in the <i>Amazon EKS User Guide</i>.

        :param self:
        :param encryptionConfig:  The encryption configuration for the cluster.<br/>tags:  The metadata to apply to the cluster to assist with categorization and organization. Each tag consists of a key and an optional value, both of which you define.<br/>clientRequestToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.<br/>logging:  Enable or disable exporting the Kubernetes control plane logs for your cluster to CloudWatch Logs. By default, cluster control plane logs aren't exported to CloudWatch Logs. For more information, see <a href="https://docs.aws.amazon.com/eks/latest/userguide/control-plane-logs.html">Amazon EKS Cluster Control Plane Logs</a> in the <i> <i>Amazon EKS User Guide</i> </i>. <note> CloudWatch Logs ingestion, archive storage, and data scanning rates apply to exported control plane logs. For more information, see <a href="http://aws.amazon.com/cloudwatch/pricing/">Amazon CloudWatch Pricing</a>. </note>:<br/>kubernetesNetworkConfig:  The Kubernetes network configuration for the cluster.:<br/>resourcesVpcConfig:  The VPC configuration used by the cluster control plane. Amazon EKS VPC resources have specific requirements to work properly with Kubernetes. For more information, see <a href="https://docs.aws.amazon.com/eks/latest/userguide/network_reqs.html">Cluster VPC Considerations</a> and <a href="https://docs.aws.amazon.com/eks/latest/userguide/sec-group-reqs.html">Cluster Security Group Considerations</a> in the <i>Amazon EKS User Guide</i>. You must specify at least two subnets. You can specify up to five security groups, but we recommend that you use a dedicated security group for your cluster control plane.:<br/>roleArn:  The Amazon Resource Name (ARN) of the IAM role that provides permissions for the Kubernetes control plane to make calls to AWS API operations on your behalf. For more information, see <a href="https://docs.aws.amazon.com/eks/latest/userguide/service_IAM_role.html">Amazon EKS Service IAM Role</a> in the <i> <i>Amazon EKS User Guide</i> </i>.<br/>version:  The desired Kubernetes version for your cluster. If you don't specify a value here, the latest version available in Amazon EKS is used.<br/>name:  The unique name to give to your cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>publicAccessCidrs</i> The CIDR blocks that are allowed access to your cluster's public Kubernetes API server endpoint. Communication to the endpoint from addresses outside of the CIDR blocks that you specify is denied. The default value is <code>0.0.0.0/0</code>. If you've disabled private endpoint access and you have nodes or AWS Fargate pods in the cluster, then ensure that you specify the necessary CIDR blocks. For more information, see <a href="https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html">Amazon EKS Cluster Endpoint Access Control</a> in the <i> <i>Amazon EKS User Guide</i> </i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>endpointPrivateAccess</i> Set this value to <code>true</code> to enable private access for your cluster's Kubernetes API server endpoint. If you enable private access, Kubernetes API requests from within your cluster's VPC use the private VPC endpoint. The default value for this parameter is <code>false</code>, which disables private access for your Kubernetes API server. If you disable private access and you have nodes or AWS Fargate pods in the cluster, then ensure that <code>publicAccessCidrs</code> includes the necessary CIDR blocks for communication with the nodes or Fargate pods. For more information, see <a href="https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html">Amazon EKS Cluster Endpoint Access Control</a> in the <i> <i>Amazon EKS User Guide</i> </i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>endpointPublicAccess</i> Set this value to <code>false</code> to disable public access to your cluster's Kubernetes API server endpoint. If you disable public access, your cluster's Kubernetes API server can only receive requests from within the cluster VPC. The default value for this parameter is <code>true</code>, which enables public access for your Kubernetes API server. For more information, see <a href="https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html">Amazon EKS Cluster Endpoint Access Control</a> in the <i> <i>Amazon EKS User Guide</i> </i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>securityGroupIds</i> Specify one or more security groups for the cross-account elastic network interfaces that Amazon EKS creates to use to allow communication between your nodes and the Kubernetes control plane. If you don't specify any security groups, then familiarize yourself with the difference between Amazon EKS defaults for clusters deployed with Kubernetes: <ul> <li> 1.14 Amazon EKS platform version <code>eks.2</code> and earlier </li> <li> 1.14 Amazon EKS platform version <code>eks.3</code> and later  </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/eks/latest/userguide/sec-group-reqs.html">Amazon EKS security group considerations</a> in the <i> <i>Amazon EKS User Guide</i> </i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>subnetIds</i> Specify subnets for your Amazon EKS nodes. Amazon EKS creates cross-account elastic network interfaces in these subnets to allow communication between your nodes and the Kubernetes control plane.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>serviceIpv4Cidr</i> The CIDR block to assign Kubernetes service IP addresses from. If you don't specify a block, Kubernetes assigns addresses from either the 10.100.0.0/16 or 172.20.0.0/16 CIDR blocks. We recommend that you specify a block that does not overlap with resources in other networks that are peered or connected to your VPC. The block must meet the following requirements: <ul> <li> Within one of the following private IP address blocks: 10.0.0.0/8, 172.16.0.0.0/12, or 192.168.0.0/16. </li> <li> Doesn't overlap with any CIDR block assigned to the VPC that you selected for VPC. </li> <li> Between /24 and /12. </li> </ul> <important> You can only specify a custom CIDR block when you create a cluster and can't change this value once the cluster is created. </important><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>clusterLogging</i> The cluster control plane logging configuration for your cluster.<br/>
        :return: cluster:  The full description of your new cluster.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>encryptionConfig</i> The encryption configuration for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The metadata that you apply to the cluster to assist with categorization and organization. Each tag consists of a key and an optional value, both of which you define. Cluster tags do not propagate to any other resources associated with the cluster. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>platformVersion</i> The platform version of your Amazon EKS cluster. For more information, see <a href="https://docs.aws.amazon.com/eks/latest/userguide/platform-versions.html">Platform Versions</a> in the <i> <i>Amazon EKS User Guide</i> </i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>clientRequestToken</i> Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>certificateAuthority</i> The <code>certificate-authority-data</code> for your cluster.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>certificateAuthority</b>: The <code>certificate-authority-data</code> for your cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current status of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>identity</i> The identity provider information for the cluster.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>identity</b>: The identity provider information for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>logging</i> The logging configuration for your cluster.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>logging</b>: The logging configuration for your cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>kubernetesNetworkConfig</i> The Kubernetes network configuration for the cluster.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>kubernetesNetworkConfig</b>: The Kubernetes network configuration for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourcesVpcConfig</i> The VPC configuration used by the cluster control plane. Amazon EKS VPC resources have specific requirements to work properly with Kubernetes. For more information, see <a href="https://docs.aws.amazon.com/eks/latest/userguide/network_reqs.html">Cluster VPC Considerations</a> and <a href="https://docs.aws.amazon.com/eks/latest/userguide/sec-group-reqs.html">Cluster Security Group Considerations</a> in the <i>Amazon EKS User Guide</i>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>resourcesVpcConfig</b>: The VPC configuration used by the cluster control plane. Amazon EKS VPC resources have specific requirements to work properly with Kubernetes. For more information, see <a href="https://docs.aws.amazon.com/eks/latest/userguide/network_reqs.html">Cluster VPC Considerations</a> and <a href="https://docs.aws.amazon.com/eks/latest/userguide/sec-group-reqs.html">Cluster Security Group Considerations</a> in the <i>Amazon EKS User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>roleArn</i> The Amazon Resource Name (ARN) of the IAM role that provides permissions for the Kubernetes control plane to make calls to AWS API operations on your behalf.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>endpoint</i> The endpoint for your Kubernetes API server.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The Kubernetes server version for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The Unix epoch timestamp in seconds for when the cluster was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>publicAccessCidrs</i> The CIDR blocks that are allowed access to your cluster's public Kubernetes API server endpoint. Communication to the endpoint from addresses outside of the listed CIDR blocks is denied. The default value is <code>0.0.0.0/0</code>. If you've disabled private endpoint access and you have nodes or AWS Fargate pods in the cluster, then ensure that the necessary CIDR blocks are listed. For more information, see <a href="https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html">Amazon EKS Cluster Endpoint Access Control</a> in the <i> <i>Amazon EKS User Guide</i> </i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>endpointPrivateAccess</i> This parameter indicates whether the Amazon EKS private API server endpoint is enabled. If the Amazon EKS private API server endpoint is enabled, Kubernetes API requests that originate from within your cluster's VPC use the private VPC endpoint instead of traversing the internet. If this value is disabled and you have nodes or AWS Fargate pods in the cluster, then ensure that <code>publicAccessCidrs</code> includes the necessary CIDR blocks for communication with the nodes or Fargate pods. For more information, see <a href="https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html">Amazon EKS Cluster Endpoint Access Control</a> in the <i> <i>Amazon EKS User Guide</i> </i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>endpointPublicAccess</i> This parameter indicates whether the Amazon EKS public API server endpoint is enabled. If the Amazon EKS public API server endpoint is disabled, your cluster's Kubernetes API server can only receive requests that originate from within the cluster VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>vpcId</i> The VPC associated with your cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>clusterSecurityGroupId</i> The cluster security group that was created by Amazon EKS for the cluster. Managed node groups use this security group for control-plane-to-data-plane communication.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>securityGroupIds</i> The security groups associated with the cross-account elastic network interfaces that are used to allow communication between your nodes and the Kubernetes control plane.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>subnetIds</i> The subnets associated with your cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>serviceIpv4Cidr</i> The CIDR block that Kubernetes service IP addresses are assigned from. If you didn't specify a CIDR block when you created the cluster, then Kubernetes assigns addresses from either the 10.100.0.0/16 or 172.20.0.0/16 CIDR blocks. If this was specified, then it was specified when the cluster was created and it cannot be changed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>clusterLogging</i> The cluster control plane logging configuration for your cluster.<br/>An object representing the <a href="https://openid.net/connect/">OpenID Connect</a> identity provider information.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>oidc</b>: An object representing the <a href="https://openid.net/connect/">OpenID Connect</a> identity provider information.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>data</i> The Base64-encoded certificate data required to communicate with your cluster. Add this to the <code>certificate-authority-data</code> section of the <code>kubeconfig</code> file for your cluster.<br/>        """
        pass

    def create_fargate_profile(self, podExecutionRoleArn: str, clusterName: str, fargateProfileName: str, subnets: List[String]=None, selectors: List[FargateProfileSelector]=None, clientRequestToken: str=None, tags: TagMap=None) -> CreateFargateProfileResponse:
        r"""Creates an AWS Fargate profile for your Amazon EKS cluster. You must have at least one Fargate profile in a cluster to be able to run pods on Fargate. The Fargate profile allows an administrator to declare which pods run on Fargate and specify which pods run on which Fargate profile. This declaration is done through the profile’s selectors. Each profile can have up to five selectors that contain a namespace and labels. A namespace is required for every selector. The label field consists of multiple optional key-value pairs. Pods that match the selectors are scheduled on Fargate. If a to-be-scheduled pod matches any of the selectors in the Fargate profile, then that pod is run on Fargate. When you create a Fargate profile, you must specify a pod execution role to use with the pods that are scheduled with the profile. This role is added to the cluster's Kubernetes <a href="https://kubernetes.io/docs/admin/authorization/rbac/">Role Based Access Control</a> (RBAC) for authorization so that the <code>kubelet</code> that is running on the Fargate infrastructure can register with your Amazon EKS cluster so that it can appear in your cluster as a node. The pod execution role also provides IAM permissions to the Fargate infrastructure to allow read access to Amazon ECR image repositories. For more information, see <a href="https://docs.aws.amazon.com/eks/latest/userguide/pod-execution-role.html">Pod Execution Role</a> in the <i>Amazon EKS User Guide</i>. Fargate profiles are immutable. However, you can create a new updated profile to replace an existing profile and then delete the original after the updated profile has finished creating. If any Fargate profiles in a cluster are in the <code>DELETING</code> status, you must wait for that Fargate profile to finish deleting before you can create any other profiles in that cluster. For more information, see <a href="https://docs.aws.amazon.com/eks/latest/userguide/fargate-profile.html">AWS Fargate Profile</a> in the <i>Amazon EKS User Guide</i>.

        :param self:
        :param tags:  The metadata to apply to the Fargate profile to assist with categorization and organization. Each tag consists of a key and an optional value, both of which you define. Fargate profile tags do not propagate to any other resources associated with the Fargate profile, such as the pods that are scheduled with it.<br/>clientRequestToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.<br/>selectors:  The selectors to match for pods to use this Fargate profile. Each selector must have an associated namespace. Optionally, you can also specify labels for a namespace. You may specify up to five selectors in a Fargate profile.<br/>subnets:  The IDs of subnets to launch your pods into. At this time, pods running on Fargate are not assigned public IP addresses, so only private subnets (with no direct route to an Internet Gateway) are accepted for this parameter.<br/>podExecutionRoleArn:  The Amazon Resource Name (ARN) of the pod execution role to use for pods that match the selectors in the Fargate profile. The pod execution role allows Fargate infrastructure to register with your cluster as a node, and it provides read access to Amazon ECR image repositories. For more information, see <a href="https://docs.aws.amazon.com/eks/latest/userguide/pod-execution-role.html">Pod Execution Role</a> in the <i>Amazon EKS User Guide</i>.<br/>clusterName:  The name of the Amazon EKS cluster to apply the Fargate profile to.<br/>fargateProfileName:  The name of the Fargate profile.<br/>
        :return: fargateProfile:  The full description of your new Fargate profile.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The metadata applied to the Fargate profile to assist with categorization and organization. Each tag consists of a key and an optional value, both of which you define. Fargate profile tags do not propagate to any other resources associated with the Fargate profile, such as the pods that are scheduled with it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current status of the Fargate profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>selectors</i> The selectors to match for pods to use this Fargate profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>subnets</i> The IDs of subnets to launch pods into.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>podExecutionRoleArn</i> The Amazon Resource Name (ARN) of the pod execution role to use for pods that match the selectors in the Fargate profile. For more information, see <a href="https://docs.aws.amazon.com/eks/latest/userguide/pod-execution-role.html">Pod Execution Role</a> in the <i>Amazon EKS User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The Unix epoch timestamp in seconds for when the Fargate profile was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>clusterName</i> The name of the Amazon EKS cluster that the Fargate profile belongs to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>fargateProfileArn</i> The full Amazon Resource Name (ARN) of the Fargate profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>fargateProfileName</i> The name of the Fargate profile.<br/>        """
        pass

    def create_nodegroup(self, nodeRole: str, subnets: List[String], nodegroupName: str, clusterName: str, scalingConfig: NodegroupScalingConfig=None, diskSize: int=None, instanceTypes: List[String]=None, amiType: str=None, remoteAccess: RemoteAccessConfig=None, labels: labelsMap=None, taints: List[Taint]=None, tags: TagMap=None, clientRequestToken: str=None, launchTemplate: LaunchTemplateSpecification=None, updateConfig: NodegroupUpdateConfig=None, capacityType: str=None, version: str=None, releaseVersion: str=None) -> CreateNodegroupResponse:
        r"""Creates a managed node group for an Amazon EKS cluster. You can only create a node group for your cluster that is equal to the current Kubernetes version for the cluster. All node groups are created with the latest AMI release version for the respective minor Kubernetes version of the cluster, unless you deploy a custom AMI using a launch template. For more information about using launch templates, see <a href="https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html">Launch template support</a>. An Amazon EKS managed node group is an Amazon EC2 Auto Scaling group and associated Amazon EC2 instances that are managed by AWS for an Amazon EKS cluster. Each node group uses a version of the Amazon EKS optimized Amazon Linux 2 AMI. For more information, see <a href="https://docs.aws.amazon.com/eks/latest/userguide/managed-node-groups.html">Managed Node Groups</a> in the <i>Amazon EKS User Guide</i>. 

        :param self:
        :param releaseVersion:  The AMI version of the Amazon EKS optimized AMI to use with your node group. By default, the latest available AMI version for the node group's current Kubernetes version is used. For more information, see <a href="https://docs.aws.amazon.com/eks/latest/userguide/eks-linux-ami-versions.html">Amazon EKS optimized Amazon Linux 2 AMI versions</a> in the <i>Amazon EKS User Guide</i>. If you specify <code>launchTemplate</code>, and your launch template uses a custom AMI, then don't specify <code>releaseVersion</code>, or the node group deployment will fail. For more information about using launch templates with Amazon EKS, see <a href="https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html">Launch template support</a> in the Amazon EKS User Guide.<br/>version:  The Kubernetes version to use for your managed nodes. By default, the Kubernetes version of the cluster is used, and this is the only accepted specified value. If you specify <code>launchTemplate</code>, and your launch template uses a custom AMI, then don't specify <code>version</code>, or the node group deployment will fail. For more information about using launch templates with Amazon EKS, see <a href="https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html">Launch template support</a> in the Amazon EKS User Guide.<br/>capacityType:  The capacity type for your node group.<br/>updateConfig:  :<br/>launchTemplate:  An object representing a node group's launch template specification. If specified, then do not specify <code>instanceTypes</code>, <code>diskSize</code>, or <code>remoteAccess</code> and make sure that the launch template meets the requirements in <code>launchTemplateSpecification</code>.:<br/>clientRequestToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.<br/>tags:  The metadata to apply to the node group to assist with categorization and organization. Each tag consists of a key and an optional value, both of which you define. Node group tags do not propagate to any other resources associated with the node group, such as the Amazon EC2 instances or subnets.<br/>taints:  The Kubernetes taints to be applied to the nodes in the node group.<br/>labels:  The Kubernetes labels to be applied to the nodes in the node group when they are created.<br/>nodeRole:  The Amazon Resource Name (ARN) of the IAM role to associate with your node group. The Amazon EKS worker node <code>kubelet</code> daemon makes calls to AWS APIs on your behalf. Nodes receive permissions for these API calls through an IAM instance profile and associated policies. Before you can launch nodes and register them into a cluster, you must create an IAM role for those nodes to use when they are launched. For more information, see <a href="https://docs.aws.amazon.com/eks/latest/userguide/worker_node_IAM_role.html">Amazon EKS node IAM role</a> in the <i> <i>Amazon EKS User Guide</i> </i>. If you specify <code>launchTemplate</code>, then don't specify <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_IamInstanceProfile.html"> <code>IamInstanceProfile</code> </a> in your launch template, or the node group deployment will fail. For more information about using launch templates with Amazon EKS, see <a href="https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html">Launch template support</a> in the Amazon EKS User Guide.<br/>remoteAccess:  The remote access (SSH) configuration to use with your node group. If you specify <code>launchTemplate</code>, then don't specify <code>remoteAccess</code>, or the node group deployment will fail. For more information about using launch templates with Amazon EKS, see <a href="https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html">Launch template support</a> in the Amazon EKS User Guide.:<br/>amiType:  The AMI type for your node group. GPU instance types should use the <code>AL2_x86_64_GPU</code> AMI type. Non-GPU instances should use the <code>AL2_x86_64</code> AMI type. Arm instances should use the <code>AL2_ARM_64</code> AMI type. All types use the Amazon EKS optimized Amazon Linux 2 AMI. If you specify <code>launchTemplate</code>, and your launch template uses a custom AMI, then don't specify <code>amiType</code>, or the node group deployment will fail. For more information about using launch templates with Amazon EKS, see <a href="https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html">Launch template support</a> in the Amazon EKS User Guide.<br/>instanceTypes:  Specify the instance types for a node group. If you specify a GPU instance type, be sure to specify <code>AL2_x86_64_GPU</code> with the <code>amiType</code> parameter. If you specify <code>launchTemplate</code>, then you can specify zero or one instance type in your launch template <i>or</i> you can specify 0-20 instance types for <code>instanceTypes</code>. If however, you specify an instance type in your launch template <i>and</i> specify any <code>instanceTypes</code>, the node group deployment will fail. If you don't specify an instance type in a launch template or for <code>instanceTypes</code>, then <code>t3.medium</code> is used, by default. If you specify <code>Spot</code> for <code>capacityType</code>, then we recommend specifying multiple values for <code>instanceTypes</code>. For more information, see <a href="https://docs.aws.amazon.com/eks/latest/userguide/managed-node-groups.html#managed-node-group-capacity-types">Managed node group capacity types</a> and <a href="https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html">Launch template support</a> in the <i>Amazon EKS User Guide</i>.<br/>subnets:  The subnets to use for the Auto Scaling group that is created for your node group. If you specify <code>launchTemplate</code>, then don't specify <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateNetworkInterface.html"> <code>SubnetId</code> </a> in your launch template, or the node group deployment will fail. For more information about using launch templates with Amazon EKS, see <a href="https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html">Launch template support</a> in the Amazon EKS User Guide.<br/>diskSize:  The root device disk size (in GiB) for your node group instances. The default disk size is 20 GiB. If you specify <code>launchTemplate</code>, then don't specify <code>diskSize</code>, or the node group deployment will fail. For more information about using launch templates with Amazon EKS, see <a href="https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html">Launch template support</a> in the Amazon EKS User Guide.<br/>scalingConfig:  The scaling configuration details for the Auto Scaling group that is created for your node group.:<br/>nodegroupName:  The unique name to give your node group.<br/>clusterName:  The name of the cluster to create the node group in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>desiredSize</i> The current number of nodes that the managed node group should maintain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>maxSize</i> The maximum number of nodes that the managed node group can scale out to. For information about the maximum number that you can specify, see <a href="https://docs.aws.amazon.com/eks/latest/userguide/service-quotas.html">Amazon EKS service quotas</a> in the <i>Amazon EKS User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>minSize</i> The minimum number of nodes that the managed node group can scale in to. This number must be greater than zero.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>sourceSecurityGroups</i> The security groups that are allowed SSH access (port 22) to the nodes. If you specify an Amazon EC2 SSH key but do not specify a source security group when you create a managed node group, then port 22 on the nodes is opened to the internet (0.0.0.0/0). For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html">Security Groups for Your VPC</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ec2SshKey</i> The Amazon EC2 SSH key that provides access for SSH communication with the nodes in the managed node group. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html">Amazon EC2 Key Pairs</a> in the <i>Amazon Elastic Compute Cloud User Guide for Linux Instances</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The ID of the launch template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The version of the launch template to use. If no version is specified, then the template's default version is used.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the launch template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>maxUnavailablePercentage</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>maxUnavailable</i> <br/>
        :return: nodegroup:  The full description of your new node group.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The metadata applied to the node group to assist with categorization and organization. Each tag consists of a key and an optional value, both of which you define. Node group tags do not propagate to any other resources associated with the node group, such as the Amazon EC2 instances or subnets. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>launchTemplate</i> If a launch template was used to create the node group, then this is the launch template that was used.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>launchTemplate</b>: If a launch template was used to create the node group, then this is the launch template that was used.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>updateConfig</i> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>updateConfig</b>: <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>health</i> The health status of the node group. If there are issues with your node group's health, they are listed here.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>health</b>: The health status of the node group. If there are issues with your node group's health, they are listed here.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>diskSize</i> If the node group wasn't deployed with a launch template, then this is the disk size in the node group configuration. If the node group was deployed with a launch template, then this is <code>null</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resources</i> The resources associated with the node group, such as Auto Scaling groups and security groups for remote access.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>resources</b>: The resources associated with the node group, such as Auto Scaling groups and security groups for remote access.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>taints</i> The Kubernetes taints to be applied to the nodes in the node group when they are created. Effect is one of <code>NoSchedule</code>, <code>PreferNoSchedule</code>, or <code>NoExecute</code>. Kubernetes taints can be used together with tolerations to control how workloads are scheduled to your nodes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>labels</i> The Kubernetes labels applied to the nodes in the node group. <note> Only labels that are applied with the Amazon EKS API are shown here. There may be other Kubernetes labels applied to the nodes in this group. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>nodeRole</i> The IAM role associated with your node group. The Amazon EKS node <code>kubelet</code> daemon makes calls to AWS APIs on your behalf. Nodes receive permissions for these API calls through an IAM instance profile and associated policies.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>amiType</i> If the node group was deployed using a launch template with a custom AMI, then this is <code>CUSTOM</code>. For node groups that weren't deployed using a launch template, this is the AMI type that was specified in the node group configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>remoteAccess</i> If the node group wasn't deployed with a launch template, then this is the remote access configuration that is associated with the node group. If the node group was deployed with a launch template, then this is <code>null</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>remoteAccess</b>: If the node group wasn't deployed with a launch template, then this is the remote access configuration that is associated with the node group. If the node group was deployed with a launch template, then this is <code>null</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>subnets</i> The subnets that were specified for the Auto Scaling group that is associated with your node group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>instanceTypes</i> If the node group wasn't deployed with a launch template, then this is the instance type that is associated with the node group. If the node group was deployed with a launch template, then this is <code>null</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>scalingConfig</i> The scaling configuration details for the Auto Scaling group that is associated with your node group.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>scalingConfig</b>: The scaling configuration details for the Auto Scaling group that is associated with your node group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>capacityType</i> The capacity type of your managed node group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current status of the managed node group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>modifiedAt</i> The Unix epoch timestamp in seconds for when the managed node group was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The Unix epoch timestamp in seconds for when the managed node group was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>releaseVersion</i> If the node group was deployed using a launch template with a custom AMI, then this is the AMI ID that was specified in the launch template. For node groups that weren't deployed using a launch template, this is the version of the Amazon EKS optimized AMI that the node group was deployed with.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The Kubernetes version of the managed node group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>clusterName</i> The name of the cluster that the managed node group resides in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>nodegroupArn</i> The Amazon Resource Name (ARN) associated with the managed node group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>nodegroupName</i> The name associated with an Amazon EKS managed node group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>desiredSize</i> The current number of nodes that the managed node group should maintain.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>maxSize</i> The maximum number of nodes that the managed node group can scale out to. For information about the maximum number that you can specify, see <a href="https://docs.aws.amazon.com/eks/latest/userguide/service-quotas.html">Amazon EKS service quotas</a> in the <i>Amazon EKS User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>minSize</i> The minimum number of nodes that the managed node group can scale in to. This number must be greater than zero.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>sourceSecurityGroups</i> The security groups that are allowed SSH access (port 22) to the nodes. If you specify an Amazon EC2 SSH key but do not specify a source security group when you create a managed node group, then port 22 on the nodes is opened to the internet (0.0.0.0/0). For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html">Security Groups for Your VPC</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ec2SshKey</i> The Amazon EC2 SSH key that provides access for SSH communication with the nodes in the managed node group. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html">Amazon EC2 Key Pairs</a> in the <i>Amazon Elastic Compute Cloud User Guide for Linux Instances</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>remoteAccessSecurityGroup</i> The remote access security group associated with the node group. This security group controls SSH access to the nodes.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>autoScalingGroups</i> The Auto Scaling groups associated with the node group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>issues</i> Any issues that are associated with the node group. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>maxUnavailablePercentage</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>maxUnavailable</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The ID of the launch template.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The version of the launch template to use. If no version is specified, then the template's default version is used.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the launch template.<br/>        """
        pass

    def delete_addon(self, addonName: str, clusterName: str) -> DeleteAddonResponse:
        r"""Delete an Amazon EKS add-on. When you remove the add-on, it will also be deleted from the cluster. You can always manually start an add-on on the cluster using the Kubernetes API.

        :param self:
        :param addonName:  The name of the add-on. The name must match one of the names returned by <a href="https://docs.aws.amazon.com/eks/latest/APIReference/API_ListAddons.html"> <code>ListAddons</code> </a>.<br/>clusterName:  The name of the cluster to delete the add-on from.<br/>
        :return: addon:  An Amazon EKS add-on.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The metadata that you apply to the add-on to assist with categorization and organization. Each tag consists of a key and an optional value, both of which you define. Add-on tags do not propagate to any other resources associated with the cluster. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>serviceAccountRoleArn</i> The Amazon Resource Name (ARN) of the IAM role that is bound to the Kubernetes service account used by the add-on.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>modifiedAt</i> The date and time that the add-on was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The date and time that the add-on was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>addonArn</i> The Amazon Resource Name (ARN) of the add-on.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>health</i> An object that represents the health of the add-on.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>health</b>: An object that represents the health of the add-on.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>addonVersion</i> The version of the add-on.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the add-on.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>clusterName</i> The name of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>addonName</i> The name of the add-on.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>issues</i> An object that represents the add-on's health issues.<br/>        """
        pass

    def delete_cluster(self, name: str) -> DeleteClusterResponse:
        r"""Deletes the Amazon EKS cluster control plane. If you have active services in your cluster that are associated with a load balancer, you must delete those services before deleting the cluster so that the load balancers are deleted properly. Otherwise, you can have orphaned resources in your VPC that prevent you from being able to delete the VPC. For more information, see <a href="https://docs.aws.amazon.com/eks/latest/userguide/delete-cluster.html">Deleting a Cluster</a> in the <i>Amazon EKS User Guide</i>. If you have managed node groups or Fargate profiles attached to the cluster, you must delete them first. For more information, see <a>DeleteNodegroup</a> and <a>DeleteFargateProfile</a>.

        :param self:
        :param name:  The name of the cluster to delete.<br/>
        :return: cluster:  The full description of the cluster to delete.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>encryptionConfig</i> The encryption configuration for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The metadata that you apply to the cluster to assist with categorization and organization. Each tag consists of a key and an optional value, both of which you define. Cluster tags do not propagate to any other resources associated with the cluster. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>platformVersion</i> The platform version of your Amazon EKS cluster. For more information, see <a href="https://docs.aws.amazon.com/eks/latest/userguide/platform-versions.html">Platform Versions</a> in the <i> <i>Amazon EKS User Guide</i> </i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>clientRequestToken</i> Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>certificateAuthority</i> The <code>certificate-authority-data</code> for your cluster.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>certificateAuthority</b>: The <code>certificate-authority-data</code> for your cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current status of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>identity</i> The identity provider information for the cluster.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>identity</b>: The identity provider information for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>logging</i> The logging configuration for your cluster.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>logging</b>: The logging configuration for your cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>kubernetesNetworkConfig</i> The Kubernetes network configuration for the cluster.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>kubernetesNetworkConfig</b>: The Kubernetes network configuration for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourcesVpcConfig</i> The VPC configuration used by the cluster control plane. Amazon EKS VPC resources have specific requirements to work properly with Kubernetes. For more information, see <a href="https://docs.aws.amazon.com/eks/latest/userguide/network_reqs.html">Cluster VPC Considerations</a> and <a href="https://docs.aws.amazon.com/eks/latest/userguide/sec-group-reqs.html">Cluster Security Group Considerations</a> in the <i>Amazon EKS User Guide</i>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>resourcesVpcConfig</b>: The VPC configuration used by the cluster control plane. Amazon EKS VPC resources have specific requirements to work properly with Kubernetes. For more information, see <a href="https://docs.aws.amazon.com/eks/latest/userguide/network_reqs.html">Cluster VPC Considerations</a> and <a href="https://docs.aws.amazon.com/eks/latest/userguide/sec-group-reqs.html">Cluster Security Group Considerations</a> in the <i>Amazon EKS User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>roleArn</i> The Amazon Resource Name (ARN) of the IAM role that provides permissions for the Kubernetes control plane to make calls to AWS API operations on your behalf.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>endpoint</i> The endpoint for your Kubernetes API server.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The Kubernetes server version for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The Unix epoch timestamp in seconds for when the cluster was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>publicAccessCidrs</i> The CIDR blocks that are allowed access to your cluster's public Kubernetes API server endpoint. Communication to the endpoint from addresses outside of the listed CIDR blocks is denied. The default value is <code>0.0.0.0/0</code>. If you've disabled private endpoint access and you have nodes or AWS Fargate pods in the cluster, then ensure that the necessary CIDR blocks are listed. For more information, see <a href="https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html">Amazon EKS Cluster Endpoint Access Control</a> in the <i> <i>Amazon EKS User Guide</i> </i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>endpointPrivateAccess</i> This parameter indicates whether the Amazon EKS private API server endpoint is enabled. If the Amazon EKS private API server endpoint is enabled, Kubernetes API requests that originate from within your cluster's VPC use the private VPC endpoint instead of traversing the internet. If this value is disabled and you have nodes or AWS Fargate pods in the cluster, then ensure that <code>publicAccessCidrs</code> includes the necessary CIDR blocks for communication with the nodes or Fargate pods. For more information, see <a href="https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html">Amazon EKS Cluster Endpoint Access Control</a> in the <i> <i>Amazon EKS User Guide</i> </i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>endpointPublicAccess</i> This parameter indicates whether the Amazon EKS public API server endpoint is enabled. If the Amazon EKS public API server endpoint is disabled, your cluster's Kubernetes API server can only receive requests that originate from within the cluster VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>vpcId</i> The VPC associated with your cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>clusterSecurityGroupId</i> The cluster security group that was created by Amazon EKS for the cluster. Managed node groups use this security group for control-plane-to-data-plane communication.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>securityGroupIds</i> The security groups associated with the cross-account elastic network interfaces that are used to allow communication between your nodes and the Kubernetes control plane.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>subnetIds</i> The subnets associated with your cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>serviceIpv4Cidr</i> The CIDR block that Kubernetes service IP addresses are assigned from. If you didn't specify a CIDR block when you created the cluster, then Kubernetes assigns addresses from either the 10.100.0.0/16 or 172.20.0.0/16 CIDR blocks. If this was specified, then it was specified when the cluster was created and it cannot be changed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>clusterLogging</i> The cluster control plane logging configuration for your cluster.<br/>An object representing the <a href="https://openid.net/connect/">OpenID Connect</a> identity provider information.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>oidc</b>: An object representing the <a href="https://openid.net/connect/">OpenID Connect</a> identity provider information.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>data</i> The Base64-encoded certificate data required to communicate with your cluster. Add this to the <code>certificate-authority-data</code> section of the <code>kubeconfig</code> file for your cluster.<br/>        """
        pass

    def delete_fargate_profile(self, fargateProfileName: str, clusterName: str) -> DeleteFargateProfileResponse:
        r"""Deletes an AWS Fargate profile. When you delete a Fargate profile, any pods running on Fargate that were created with the profile are deleted. If those pods match another Fargate profile, then they are scheduled on Fargate with that profile. If they no longer match any Fargate profiles, then they are not scheduled on Fargate and they may remain in a pending state. Only one Fargate profile in a cluster can be in the <code>DELETING</code> status at a time. You must wait for a Fargate profile to finish deleting before you can delete any other profiles in that cluster.

        :param self:
        :param fargateProfileName:  The name of the Fargate profile to delete.<br/>clusterName:  The name of the Amazon EKS cluster associated with the Fargate profile to delete.<br/>
        :return: fargateProfile:  The deleted Fargate profile.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The metadata applied to the Fargate profile to assist with categorization and organization. Each tag consists of a key and an optional value, both of which you define. Fargate profile tags do not propagate to any other resources associated with the Fargate profile, such as the pods that are scheduled with it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current status of the Fargate profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>selectors</i> The selectors to match for pods to use this Fargate profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>subnets</i> The IDs of subnets to launch pods into.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>podExecutionRoleArn</i> The Amazon Resource Name (ARN) of the pod execution role to use for pods that match the selectors in the Fargate profile. For more information, see <a href="https://docs.aws.amazon.com/eks/latest/userguide/pod-execution-role.html">Pod Execution Role</a> in the <i>Amazon EKS User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The Unix epoch timestamp in seconds for when the Fargate profile was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>clusterName</i> The name of the Amazon EKS cluster that the Fargate profile belongs to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>fargateProfileArn</i> The full Amazon Resource Name (ARN) of the Fargate profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>fargateProfileName</i> The name of the Fargate profile.<br/>        """
        pass

    def delete_nodegroup(self, nodegroupName: str, clusterName: str) -> DeleteNodegroupResponse:
        r"""Deletes an Amazon EKS node group for a cluster.

        :param self:
        :param nodegroupName:  The name of the node group to delete.<br/>clusterName:  The name of the Amazon EKS cluster that is associated with your node group.<br/>
        :return: nodegroup:  The full description of your deleted node group.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The metadata applied to the node group to assist with categorization and organization. Each tag consists of a key and an optional value, both of which you define. Node group tags do not propagate to any other resources associated with the node group, such as the Amazon EC2 instances or subnets. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>launchTemplate</i> If a launch template was used to create the node group, then this is the launch template that was used.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>launchTemplate</b>: If a launch template was used to create the node group, then this is the launch template that was used.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>updateConfig</i> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>updateConfig</b>: <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>health</i> The health status of the node group. If there are issues with your node group's health, they are listed here.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>health</b>: The health status of the node group. If there are issues with your node group's health, they are listed here.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>diskSize</i> If the node group wasn't deployed with a launch template, then this is the disk size in the node group configuration. If the node group was deployed with a launch template, then this is <code>null</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resources</i> The resources associated with the node group, such as Auto Scaling groups and security groups for remote access.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>resources</b>: The resources associated with the node group, such as Auto Scaling groups and security groups for remote access.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>taints</i> The Kubernetes taints to be applied to the nodes in the node group when they are created. Effect is one of <code>NoSchedule</code>, <code>PreferNoSchedule</code>, or <code>NoExecute</code>. Kubernetes taints can be used together with tolerations to control how workloads are scheduled to your nodes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>labels</i> The Kubernetes labels applied to the nodes in the node group. <note> Only labels that are applied with the Amazon EKS API are shown here. There may be other Kubernetes labels applied to the nodes in this group. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>nodeRole</i> The IAM role associated with your node group. The Amazon EKS node <code>kubelet</code> daemon makes calls to AWS APIs on your behalf. Nodes receive permissions for these API calls through an IAM instance profile and associated policies.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>amiType</i> If the node group was deployed using a launch template with a custom AMI, then this is <code>CUSTOM</code>. For node groups that weren't deployed using a launch template, this is the AMI type that was specified in the node group configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>remoteAccess</i> If the node group wasn't deployed with a launch template, then this is the remote access configuration that is associated with the node group. If the node group was deployed with a launch template, then this is <code>null</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>remoteAccess</b>: If the node group wasn't deployed with a launch template, then this is the remote access configuration that is associated with the node group. If the node group was deployed with a launch template, then this is <code>null</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>subnets</i> The subnets that were specified for the Auto Scaling group that is associated with your node group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>instanceTypes</i> If the node group wasn't deployed with a launch template, then this is the instance type that is associated with the node group. If the node group was deployed with a launch template, then this is <code>null</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>scalingConfig</i> The scaling configuration details for the Auto Scaling group that is associated with your node group.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>scalingConfig</b>: The scaling configuration details for the Auto Scaling group that is associated with your node group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>capacityType</i> The capacity type of your managed node group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current status of the managed node group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>modifiedAt</i> The Unix epoch timestamp in seconds for when the managed node group was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The Unix epoch timestamp in seconds for when the managed node group was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>releaseVersion</i> If the node group was deployed using a launch template with a custom AMI, then this is the AMI ID that was specified in the launch template. For node groups that weren't deployed using a launch template, this is the version of the Amazon EKS optimized AMI that the node group was deployed with.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The Kubernetes version of the managed node group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>clusterName</i> The name of the cluster that the managed node group resides in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>nodegroupArn</i> The Amazon Resource Name (ARN) associated with the managed node group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>nodegroupName</i> The name associated with an Amazon EKS managed node group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>desiredSize</i> The current number of nodes that the managed node group should maintain.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>maxSize</i> The maximum number of nodes that the managed node group can scale out to. For information about the maximum number that you can specify, see <a href="https://docs.aws.amazon.com/eks/latest/userguide/service-quotas.html">Amazon EKS service quotas</a> in the <i>Amazon EKS User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>minSize</i> The minimum number of nodes that the managed node group can scale in to. This number must be greater than zero.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>sourceSecurityGroups</i> The security groups that are allowed SSH access (port 22) to the nodes. If you specify an Amazon EC2 SSH key but do not specify a source security group when you create a managed node group, then port 22 on the nodes is opened to the internet (0.0.0.0/0). For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html">Security Groups for Your VPC</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ec2SshKey</i> The Amazon EC2 SSH key that provides access for SSH communication with the nodes in the managed node group. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html">Amazon EC2 Key Pairs</a> in the <i>Amazon Elastic Compute Cloud User Guide for Linux Instances</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>remoteAccessSecurityGroup</i> The remote access security group associated with the node group. This security group controls SSH access to the nodes.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>autoScalingGroups</i> The Auto Scaling groups associated with the node group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>issues</i> Any issues that are associated with the node group. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>maxUnavailablePercentage</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>maxUnavailable</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The ID of the launch template.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The version of the launch template to use. If no version is specified, then the template's default version is used.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the launch template.<br/>        """
        pass

    def describe_addon(self, addonName: str, clusterName: str) -> DescribeAddonResponse:
        r"""Describes an Amazon EKS add-on.

        :param self:
        :param addonName:  The name of the add-on. The name must match one of the names returned by <a href="https://docs.aws.amazon.com/eks/latest/APIReference/API_ListAddons.html"> <code>ListAddons</code> </a>.<br/>clusterName:  The name of the cluster.<br/>
        :return: addon:  An Amazon EKS add-on.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The metadata that you apply to the add-on to assist with categorization and organization. Each tag consists of a key and an optional value, both of which you define. Add-on tags do not propagate to any other resources associated with the cluster. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>serviceAccountRoleArn</i> The Amazon Resource Name (ARN) of the IAM role that is bound to the Kubernetes service account used by the add-on.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>modifiedAt</i> The date and time that the add-on was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The date and time that the add-on was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>addonArn</i> The Amazon Resource Name (ARN) of the add-on.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>health</i> An object that represents the health of the add-on.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>health</b>: An object that represents the health of the add-on.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>addonVersion</i> The version of the add-on.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the add-on.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>clusterName</i> The name of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>addonName</i> The name of the add-on.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>issues</i> An object that represents the add-on's health issues.<br/>        """
        pass

    def describe_addon_versions(self, kubernetesVersion: str=None, maxResults: int=None, nextToken: str=None, addonName: str=None) -> DescribeAddonVersionsResponse:
        r"""Describes the Kubernetes versions that the add-on can be used with.

        :param self:
        :param addonName:  The name of the add-on. The name must match one of the names returned by <a href="https://docs.aws.amazon.com/eks/latest/APIReference/API_ListAddons.html"> <code>ListAddons</code> </a>.<br/>nextToken:  The <code>nextToken</code> value returned from a previous paginated <code>DescribeAddonVersionsRequest</code> where <code>maxResults</code> was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the <code>nextToken</code> value. <note> This token should be treated as an opaque identifier that is used only to retrieve the next items in a list and not for other programmatic purposes. </note><br/>maxResults:  The maximum number of results to return.<br/>kubernetesVersion:  The Kubernetes versions that the add-on can be used with.<br/>
        :return: nextToken:  The <code>nextToken</code> value returned from a previous paginated <code>DescribeAddonVersionsResponse</code> where <code>maxResults</code> was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the <code>nextToken</code> value. <note> This token should be treated as an opaque identifier that is used only to retrieve the next items in a list and not for other programmatic purposes. </note><br/>addons:  The list of available versions with Kubernetes version compatibility.<br/>        """
        pass

    def describe_cluster(self, name: str) -> DescribeClusterResponse:
        r"""Returns descriptive information about an Amazon EKS cluster. The API server endpoint and certificate authority data returned by this operation are required for <code>kubelet</code> and <code>kubectl</code> to communicate with your Kubernetes API server. For more information, see <a href="https://docs.aws.amazon.com/eks/latest/userguide/create-kubeconfig.html">Create a kubeconfig for Amazon EKS</a>. <note> The API server endpoint and certificate authority data aren't available until the cluster reaches the <code>ACTIVE</code> state. </note>

        :param self:
        :param name:  The name of the cluster to describe.<br/>
        :return: cluster:  The full description of your specified cluster.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>encryptionConfig</i> The encryption configuration for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The metadata that you apply to the cluster to assist with categorization and organization. Each tag consists of a key and an optional value, both of which you define. Cluster tags do not propagate to any other resources associated with the cluster. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>platformVersion</i> The platform version of your Amazon EKS cluster. For more information, see <a href="https://docs.aws.amazon.com/eks/latest/userguide/platform-versions.html">Platform Versions</a> in the <i> <i>Amazon EKS User Guide</i> </i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>clientRequestToken</i> Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>certificateAuthority</i> The <code>certificate-authority-data</code> for your cluster.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>certificateAuthority</b>: The <code>certificate-authority-data</code> for your cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current status of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>identity</i> The identity provider information for the cluster.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>identity</b>: The identity provider information for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>logging</i> The logging configuration for your cluster.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>logging</b>: The logging configuration for your cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>kubernetesNetworkConfig</i> The Kubernetes network configuration for the cluster.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>kubernetesNetworkConfig</b>: The Kubernetes network configuration for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourcesVpcConfig</i> The VPC configuration used by the cluster control plane. Amazon EKS VPC resources have specific requirements to work properly with Kubernetes. For more information, see <a href="https://docs.aws.amazon.com/eks/latest/userguide/network_reqs.html">Cluster VPC Considerations</a> and <a href="https://docs.aws.amazon.com/eks/latest/userguide/sec-group-reqs.html">Cluster Security Group Considerations</a> in the <i>Amazon EKS User Guide</i>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>resourcesVpcConfig</b>: The VPC configuration used by the cluster control plane. Amazon EKS VPC resources have specific requirements to work properly with Kubernetes. For more information, see <a href="https://docs.aws.amazon.com/eks/latest/userguide/network_reqs.html">Cluster VPC Considerations</a> and <a href="https://docs.aws.amazon.com/eks/latest/userguide/sec-group-reqs.html">Cluster Security Group Considerations</a> in the <i>Amazon EKS User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>roleArn</i> The Amazon Resource Name (ARN) of the IAM role that provides permissions for the Kubernetes control plane to make calls to AWS API operations on your behalf.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>endpoint</i> The endpoint for your Kubernetes API server.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The Kubernetes server version for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The Unix epoch timestamp in seconds for when the cluster was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>publicAccessCidrs</i> The CIDR blocks that are allowed access to your cluster's public Kubernetes API server endpoint. Communication to the endpoint from addresses outside of the listed CIDR blocks is denied. The default value is <code>0.0.0.0/0</code>. If you've disabled private endpoint access and you have nodes or AWS Fargate pods in the cluster, then ensure that the necessary CIDR blocks are listed. For more information, see <a href="https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html">Amazon EKS Cluster Endpoint Access Control</a> in the <i> <i>Amazon EKS User Guide</i> </i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>endpointPrivateAccess</i> This parameter indicates whether the Amazon EKS private API server endpoint is enabled. If the Amazon EKS private API server endpoint is enabled, Kubernetes API requests that originate from within your cluster's VPC use the private VPC endpoint instead of traversing the internet. If this value is disabled and you have nodes or AWS Fargate pods in the cluster, then ensure that <code>publicAccessCidrs</code> includes the necessary CIDR blocks for communication with the nodes or Fargate pods. For more information, see <a href="https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html">Amazon EKS Cluster Endpoint Access Control</a> in the <i> <i>Amazon EKS User Guide</i> </i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>endpointPublicAccess</i> This parameter indicates whether the Amazon EKS public API server endpoint is enabled. If the Amazon EKS public API server endpoint is disabled, your cluster's Kubernetes API server can only receive requests that originate from within the cluster VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>vpcId</i> The VPC associated with your cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>clusterSecurityGroupId</i> The cluster security group that was created by Amazon EKS for the cluster. Managed node groups use this security group for control-plane-to-data-plane communication.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>securityGroupIds</i> The security groups associated with the cross-account elastic network interfaces that are used to allow communication between your nodes and the Kubernetes control plane.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>subnetIds</i> The subnets associated with your cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>serviceIpv4Cidr</i> The CIDR block that Kubernetes service IP addresses are assigned from. If you didn't specify a CIDR block when you created the cluster, then Kubernetes assigns addresses from either the 10.100.0.0/16 or 172.20.0.0/16 CIDR blocks. If this was specified, then it was specified when the cluster was created and it cannot be changed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>clusterLogging</i> The cluster control plane logging configuration for your cluster.<br/>An object representing the <a href="https://openid.net/connect/">OpenID Connect</a> identity provider information.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>oidc</b>: An object representing the <a href="https://openid.net/connect/">OpenID Connect</a> identity provider information.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>data</i> The Base64-encoded certificate data required to communicate with your cluster. Add this to the <code>certificate-authority-data</code> section of the <code>kubeconfig</code> file for your cluster.<br/>        """
        pass

    def describe_fargate_profile(self, fargateProfileName: str, clusterName: str) -> DescribeFargateProfileResponse:
        r"""Returns descriptive information about an AWS Fargate profile.

        :param self:
        :param fargateProfileName:  The name of the Fargate profile to describe.<br/>clusterName:  The name of the Amazon EKS cluster associated with the Fargate profile.<br/>
        :return: fargateProfile:  The full description of your Fargate profile.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The metadata applied to the Fargate profile to assist with categorization and organization. Each tag consists of a key and an optional value, both of which you define. Fargate profile tags do not propagate to any other resources associated with the Fargate profile, such as the pods that are scheduled with it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current status of the Fargate profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>selectors</i> The selectors to match for pods to use this Fargate profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>subnets</i> The IDs of subnets to launch pods into.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>podExecutionRoleArn</i> The Amazon Resource Name (ARN) of the pod execution role to use for pods that match the selectors in the Fargate profile. For more information, see <a href="https://docs.aws.amazon.com/eks/latest/userguide/pod-execution-role.html">Pod Execution Role</a> in the <i>Amazon EKS User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The Unix epoch timestamp in seconds for when the Fargate profile was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>clusterName</i> The name of the Amazon EKS cluster that the Fargate profile belongs to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>fargateProfileArn</i> The full Amazon Resource Name (ARN) of the Fargate profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>fargateProfileName</i> The name of the Fargate profile.<br/>        """
        pass

    def describe_identity_provider_config(self, identityProviderConfig: IdentityProviderConfig, clusterName: str) -> DescribeIdentityProviderConfigResponse:
        r"""Returns descriptive information about an identity provider configuration.

        :param self:
        :param identityProviderConfig:  An object that represents an identity provider configuration.:<br/>clusterName:  The cluster name that the identity provider configuration is associated to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the identity provider configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of the identity provider configuration.<br/>
        :return: identityProviderConfig:  The object that represents an OpenID Connect (OIDC) identity provider configuration.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>oidc</i> An object that represents an OpenID Connect (OIDC) identity provider configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>oidc</b>: An object that represents an OpenID Connect (OIDC) identity provider configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the OIDC identity provider.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The metadata to apply to the provider configuration to assist with categorization and organization. Each tag consists of a key and an optional value, both of which you defined.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>requiredClaims</i> The key-value pairs that describe required claims in the identity token. If set, each claim is verified to be present in the token with a matching value.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>groupsPrefix</i> The prefix that is prepended to group claims to prevent clashes with existing names (such as <code>system:</code> groups). For example, the value<code> oidc:</code> creates group names like <code>oidc:engineering</code> and <code>oidc:infra</code>. The prefix can't contain <code>system:</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>groupsClaim</i> The JSON web token (JWT) claim that the provider uses to return your groups.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>usernamePrefix</i> The prefix that is prepended to username claims to prevent clashes with existing names. The prefix can't contain <code>system:</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>usernameClaim</i> The JSON Web token (JWT) claim that is used as the username.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>clientId</i> This is also known as <i>audience</i>. The ID of the client application that makes authentication requests to the OIDC identity provider.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>issuerUrl</i> The URL of the OIDC identity provider that allows the API server to discover public signing keys for verifying tokens.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>clusterName</i> The cluster that the configuration is associated to.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>identityProviderConfigArn</i> The ARN of the configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>identityProviderConfigName</i> The name of the configuration.<br/>        """
        pass

    def describe_nodegroup(self, nodegroupName: str, clusterName: str) -> DescribeNodegroupResponse:
        r"""Returns descriptive information about an Amazon EKS node group.

        :param self:
        :param nodegroupName:  The name of the node group to describe.<br/>clusterName:  The name of the Amazon EKS cluster associated with the node group.<br/>
        :return: nodegroup:  The full description of your node group.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The metadata applied to the node group to assist with categorization and organization. Each tag consists of a key and an optional value, both of which you define. Node group tags do not propagate to any other resources associated with the node group, such as the Amazon EC2 instances or subnets. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>launchTemplate</i> If a launch template was used to create the node group, then this is the launch template that was used.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>launchTemplate</b>: If a launch template was used to create the node group, then this is the launch template that was used.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>updateConfig</i> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>updateConfig</b>: <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>health</i> The health status of the node group. If there are issues with your node group's health, they are listed here.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>health</b>: The health status of the node group. If there are issues with your node group's health, they are listed here.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>diskSize</i> If the node group wasn't deployed with a launch template, then this is the disk size in the node group configuration. If the node group was deployed with a launch template, then this is <code>null</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resources</i> The resources associated with the node group, such as Auto Scaling groups and security groups for remote access.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>resources</b>: The resources associated with the node group, such as Auto Scaling groups and security groups for remote access.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>taints</i> The Kubernetes taints to be applied to the nodes in the node group when they are created. Effect is one of <code>NoSchedule</code>, <code>PreferNoSchedule</code>, or <code>NoExecute</code>. Kubernetes taints can be used together with tolerations to control how workloads are scheduled to your nodes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>labels</i> The Kubernetes labels applied to the nodes in the node group. <note> Only labels that are applied with the Amazon EKS API are shown here. There may be other Kubernetes labels applied to the nodes in this group. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>nodeRole</i> The IAM role associated with your node group. The Amazon EKS node <code>kubelet</code> daemon makes calls to AWS APIs on your behalf. Nodes receive permissions for these API calls through an IAM instance profile and associated policies.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>amiType</i> If the node group was deployed using a launch template with a custom AMI, then this is <code>CUSTOM</code>. For node groups that weren't deployed using a launch template, this is the AMI type that was specified in the node group configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>remoteAccess</i> If the node group wasn't deployed with a launch template, then this is the remote access configuration that is associated with the node group. If the node group was deployed with a launch template, then this is <code>null</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>remoteAccess</b>: If the node group wasn't deployed with a launch template, then this is the remote access configuration that is associated with the node group. If the node group was deployed with a launch template, then this is <code>null</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>subnets</i> The subnets that were specified for the Auto Scaling group that is associated with your node group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>instanceTypes</i> If the node group wasn't deployed with a launch template, then this is the instance type that is associated with the node group. If the node group was deployed with a launch template, then this is <code>null</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>scalingConfig</i> The scaling configuration details for the Auto Scaling group that is associated with your node group.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>scalingConfig</b>: The scaling configuration details for the Auto Scaling group that is associated with your node group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>capacityType</i> The capacity type of your managed node group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current status of the managed node group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>modifiedAt</i> The Unix epoch timestamp in seconds for when the managed node group was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The Unix epoch timestamp in seconds for when the managed node group was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>releaseVersion</i> If the node group was deployed using a launch template with a custom AMI, then this is the AMI ID that was specified in the launch template. For node groups that weren't deployed using a launch template, this is the version of the Amazon EKS optimized AMI that the node group was deployed with.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The Kubernetes version of the managed node group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>clusterName</i> The name of the cluster that the managed node group resides in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>nodegroupArn</i> The Amazon Resource Name (ARN) associated with the managed node group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>nodegroupName</i> The name associated with an Amazon EKS managed node group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>desiredSize</i> The current number of nodes that the managed node group should maintain.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>maxSize</i> The maximum number of nodes that the managed node group can scale out to. For information about the maximum number that you can specify, see <a href="https://docs.aws.amazon.com/eks/latest/userguide/service-quotas.html">Amazon EKS service quotas</a> in the <i>Amazon EKS User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>minSize</i> The minimum number of nodes that the managed node group can scale in to. This number must be greater than zero.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>sourceSecurityGroups</i> The security groups that are allowed SSH access (port 22) to the nodes. If you specify an Amazon EC2 SSH key but do not specify a source security group when you create a managed node group, then port 22 on the nodes is opened to the internet (0.0.0.0/0). For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html">Security Groups for Your VPC</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ec2SshKey</i> The Amazon EC2 SSH key that provides access for SSH communication with the nodes in the managed node group. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html">Amazon EC2 Key Pairs</a> in the <i>Amazon Elastic Compute Cloud User Guide for Linux Instances</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>remoteAccessSecurityGroup</i> The remote access security group associated with the node group. This security group controls SSH access to the nodes.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>autoScalingGroups</i> The Auto Scaling groups associated with the node group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>issues</i> Any issues that are associated with the node group. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>maxUnavailablePercentage</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>maxUnavailable</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The ID of the launch template.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The version of the launch template to use. If no version is specified, then the template's default version is used.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the launch template.<br/>        """
        pass

    def describe_update(self, updateId: str, name: str, nodegroupName: str=None, addonName: str=None) -> DescribeUpdateResponse:
        r"""Returns descriptive information about an update against your Amazon EKS cluster or associated managed node group. When the status of the update is <code>Succeeded</code>, the update is complete. If an update fails, the status is <code>Failed</code>, and an error detail explains the reason for the failure.

        :param self:
        :param addonName:  The name of the add-on. The name must match one of the names returned by <a href="https://docs.aws.amazon.com/eks/latest/APIReference/API_ListAddons.html"> <code>ListAddons</code> </a>.<br/>nodegroupName:  The name of the Amazon EKS node group associated with the update.<br/>updateId:  The ID of the update to describe.<br/>name:  The name of the Amazon EKS cluster associated with the update.<br/>
        :return: update:  The full description of the specified update.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>errors</i> Any errors associated with a <code>Failed</code> update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The Unix epoch timestamp in seconds for when the update was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>params</i> A key-value map that contains the parameters associated with the update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of the update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current status of the update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> A UUID that is used to track the update.<br/>        """
        pass

    def disassociate_identity_provider_config(self, identityProviderConfig: IdentityProviderConfig, clusterName: str, clientRequestToken: str=None) -> DisassociateIdentityProviderConfigResponse:
        r"""Disassociates an identity provider configuration from a cluster. If you disassociate an identity provider from your cluster, users included in the provider can no longer access the cluster. However, you can still access the cluster with AWS IAM users.

        :param self:
        :param clientRequestToken:  A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.<br/>identityProviderConfig:  An object that represents an identity provider configuration.:<br/>clusterName:  The name of the cluster to disassociate an identity provider from.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the identity provider configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of the identity provider configuration.<br/>
        :return: update:  An object representing an asynchronous update.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>errors</i> Any errors associated with a <code>Failed</code> update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The Unix epoch timestamp in seconds for when the update was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>params</i> A key-value map that contains the parameters associated with the update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of the update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current status of the update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> A UUID that is used to track the update.<br/>        """
        pass

    def list_addons(self, clusterName: str, maxResults: int=None, nextToken: str=None) -> ListAddonsResponse:
        r"""Lists the available add-ons.

        :param self:
        :param nextToken:  The <code>nextToken</code> value returned from a previous paginated <code>ListAddonsRequest</code> where <code>maxResults</code> was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the <code>nextToken</code> value. <note> This token should be treated as an opaque identifier that is used only to retrieve the next items in a list and not for other programmatic purposes. </note><br/>maxResults:  The maximum number of add-on results returned by <code>ListAddonsRequest</code> in paginated output. When you use this parameter, <code>ListAddonsRequest</code> returns only <code>maxResults</code> results in a single page along with a <code>nextToken</code> response element. You can see the remaining results of the initial request by sending another <code>ListAddonsRequest</code> request with the returned <code>nextToken</code> value. This value can be between 1 and 100. If you don't use this parameter, <code>ListAddonsRequest</code> returns up to 100 results and a <code>nextToken</code> value, if applicable.<br/>clusterName:  The name of the cluster.<br/>
        :return: nextToken:  The <code>nextToken</code> value returned from a previous paginated <code>ListAddonsResponse</code> where <code>maxResults</code> was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the <code>nextToken</code> value. <note> This token should be treated as an opaque identifier that is used only to retrieve the next items in a list and not for other programmatic purposes. </note><br/>addons:  A list of available add-ons.<br/>        """
        pass

    def list_clusters(self, maxResults: int=None, nextToken: str=None) -> ListClustersResponse:
        r"""Lists the Amazon EKS clusters in your AWS account in the specified Region.

        :param self:
        :param nextToken:  The <code>nextToken</code> value returned from a previous paginated <code>ListClusters</code> request where <code>maxResults</code> was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the <code>nextToken</code> value. <note> This token should be treated as an opaque identifier that is used only to retrieve the next items in a list and not for other programmatic purposes. </note><br/>maxResults:  The maximum number of cluster results returned by <code>ListClusters</code> in paginated output. When you use this parameter, <code>ListClusters</code> returns only <code>maxResults</code> results in a single page along with a <code>nextToken</code> response element. You can see the remaining results of the initial request by sending another <code>ListClusters</code> request with the returned <code>nextToken</code> value. This value can be between 1 and 100. If you don't use this parameter, <code>ListClusters</code> returns up to 100 results and a <code>nextToken</code> value if applicable.<br/>
        :return: nextToken:  The <code>nextToken</code> value to include in a future <code>ListClusters</code> request. When the results of a <code>ListClusters</code> request exceed <code>maxResults</code>, you can use this value to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>clusters:  A list of all of the clusters for your account in the specified Region.<br/>        """
        pass

    def list_fargate_profiles(self, clusterName: str, maxResults: int=None, nextToken: str=None) -> ListFargateProfilesResponse:
        r"""Lists the AWS Fargate profiles associated with the specified cluster in your AWS account in the specified Region.

        :param self:
        :param nextToken:  The <code>nextToken</code> value returned from a previous paginated <code>ListFargateProfiles</code> request where <code>maxResults</code> was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the <code>nextToken</code> value.<br/>maxResults:  The maximum number of Fargate profile results returned by <code>ListFargateProfiles</code> in paginated output. When you use this parameter, <code>ListFargateProfiles</code> returns only <code>maxResults</code> results in a single page along with a <code>nextToken</code> response element. You can see the remaining results of the initial request by sending another <code>ListFargateProfiles</code> request with the returned <code>nextToken</code> value. This value can be between 1 and 100. If you don't use this parameter, <code>ListFargateProfiles</code> returns up to 100 results and a <code>nextToken</code> value if applicable.<br/>clusterName:  The name of the Amazon EKS cluster that you would like to listFargate profiles in.<br/>
        :return: nextToken:  The <code>nextToken</code> value to include in a future <code>ListFargateProfiles</code> request. When the results of a <code>ListFargateProfiles</code> request exceed <code>maxResults</code>, you can use this value to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>fargateProfileNames:  A list of all of the Fargate profiles associated with the specified cluster.<br/>        """
        pass

    def list_identity_provider_configs(self, clusterName: str, maxResults: int=None, nextToken: str=None) -> ListIdentityProviderConfigsResponse:
        r"""A list of identity provider configurations.

        :param self:
        :param nextToken:  The <code>nextToken</code> value returned from a previous paginated <code>IdentityProviderConfigsRequest</code> where <code>maxResults</code> was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the <code>nextToken</code> value.<br/>maxResults:  The maximum number of identity provider configurations returned by <code>ListIdentityProviderConfigs</code> in paginated output. When you use this parameter, <code>ListIdentityProviderConfigs</code> returns only <code>maxResults</code> results in a single page along with a <code>nextToken</code> response element. You can see the remaining results of the initial request by sending another <code>ListIdentityProviderConfigs</code> request with the returned <code>nextToken</code> value. This value can be between 1 and 100. If you don't use this parameter, <code>ListIdentityProviderConfigs</code> returns up to 100 results and a <code>nextToken</code> value, if applicable.<br/>clusterName:  The cluster name that you want to list identity provider configurations for.<br/>
        :return: nextToken:  The <code>nextToken</code> value returned from a previous paginated <code>ListIdentityProviderConfigsResponse</code> where <code>maxResults</code> was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the <code>nextToken</code> value.<br/>identityProviderConfigs:  The identity provider configurations for the cluster.<br/>        """
        pass

    def list_nodegroups(self, clusterName: str, maxResults: int=None, nextToken: str=None) -> ListNodegroupsResponse:
        r"""Lists the Amazon EKS managed node groups associated with the specified cluster in your AWS account in the specified Region. Self-managed node groups are not listed.

        :param self:
        :param nextToken:  The <code>nextToken</code> value returned from a previous paginated <code>ListNodegroups</code> request where <code>maxResults</code> was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the <code>nextToken</code> value.<br/>maxResults:  The maximum number of node group results returned by <code>ListNodegroups</code> in paginated output. When you use this parameter, <code>ListNodegroups</code> returns only <code>maxResults</code> results in a single page along with a <code>nextToken</code> response element. You can see the remaining results of the initial request by sending another <code>ListNodegroups</code> request with the returned <code>nextToken</code> value. This value can be between 1 and 100. If you don't use this parameter, <code>ListNodegroups</code> returns up to 100 results and a <code>nextToken</code> value if applicable.<br/>clusterName:  The name of the Amazon EKS cluster that you would like to list node groups in.<br/>
        :return: nextToken:  The <code>nextToken</code> value to include in a future <code>ListNodegroups</code> request. When the results of a <code>ListNodegroups</code> request exceed <code>maxResults</code>, you can use this value to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>nodegroups:  A list of all of the node groups associated with the specified cluster.<br/>        """
        pass

    def list_tags_for_resource(self, resourceArn: str) -> ListTagsForResourceResponse:
        r"""List the tags for an Amazon EKS resource.

        :param self:
        :param resourceArn:  The Amazon Resource Name (ARN) that identifies the resource for which to list the tags. Currently, the supported resources are Amazon EKS clusters and managed node groups.<br/>
        :return: tags:  The tags for the resource.<br/>        """
        pass

    def list_updates(self, name: str, nodegroupName: str=None, addonName: str=None, nextToken: str=None, maxResults: int=None) -> ListUpdatesResponse:
        r"""Lists the updates associated with an Amazon EKS cluster or managed node group in your AWS account, in the specified Region.

        :param self:
        :param maxResults:  The maximum number of update results returned by <code>ListUpdates</code> in paginated output. When you use this parameter, <code>ListUpdates</code> returns only <code>maxResults</code> results in a single page along with a <code>nextToken</code> response element. You can see the remaining results of the initial request by sending another <code>ListUpdates</code> request with the returned <code>nextToken</code> value. This value can be between 1 and 100. If you don't use this parameter, <code>ListUpdates</code> returns up to 100 results and a <code>nextToken</code> value if applicable.<br/>nextToken:  The <code>nextToken</code> value returned from a previous paginated <code>ListUpdates</code> request where <code>maxResults</code> was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the <code>nextToken</code> value.<br/>addonName:  The names of the installed add-ons that have available updates.<br/>nodegroupName:  The name of the Amazon EKS managed node group to list updates for.<br/>name:  The name of the Amazon EKS cluster to list updates for.<br/>
        :return: nextToken:  The <code>nextToken</code> value to include in a future <code>ListUpdates</code> request. When the results of a <code>ListUpdates</code> request exceed <code>maxResults</code>, you can use this value to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>updateIds:  A list of all the updates for the specified cluster and Region.<br/>        """
        pass

    def tag_resource(self, tags: TagMap, resourceArn: str) -> TagResourceResponse:
        r"""Associates the specified tags to a resource with the specified <code>resourceArn</code>. If existing tags on a resource are not specified in the request parameters, they are not changed. When a resource is deleted, the tags associated with that resource are deleted as well. Tags that you create for Amazon EKS resources do not propagate to any other resources associated with the cluster. For example, if you tag a cluster with this operation, that tag does not automatically propagate to the subnets and nodes associated with the cluster.

        :param self:
        :param tags:  The tags to add to the resource. A tag is an array of key-value pairs.<br/>resourceArn:  The Amazon Resource Name (ARN) of the resource to which to add tags. Currently, the supported resources are Amazon EKS clusters and managed node groups.<br/>
        :return:         """
        pass

    def untag_resource(self, tagKeys: List[TagKey], resourceArn: str) -> UntagResourceResponse:
        r"""Deletes specified tags from a resource.

        :param self:
        :param tagKeys:  The keys of the tags to be removed.<br/>resourceArn:  The Amazon Resource Name (ARN) of the resource from which to delete tags. Currently, the supported resources are Amazon EKS clusters and managed node groups.<br/>
        :return:         """
        pass

    def update_addon(self, addonName: str, clusterName: str, addonVersion: str=None, serviceAccountRoleArn: str=None, resolveConflicts: str=None, clientRequestToken: str=None) -> UpdateAddonResponse:
        r"""Updates an Amazon EKS add-on.

        :param self:
        :param clientRequestToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.<br/>resolveConflicts:  How to resolve parameter value conflicts when applying the new version of the add-on to the cluster.<br/>serviceAccountRoleArn:  The Amazon Resource Name (ARN) of an existing IAM role to bind to the add-on's service account. The role must be assigned the IAM permissions required by the add-on. If you don't specify an existing IAM role, then the add-on uses the permissions assigned to the node IAM role. For more information, see <a href="https://docs.aws.amazon.com/eks/latest/userguide/create-node-role.html">Amazon EKS node IAM role</a> in the <i>Amazon EKS User Guide</i>. <note> To specify an existing IAM role, you must have an IAM OpenID Connect (OIDC) provider created for your cluster. For more information, see <a href="https://docs.aws.amazon.com/eks/latest/userguide/enable-iam-roles-for-service-accounts.html">Enabling IAM roles for service accounts on your cluster</a> in the <i>Amazon EKS User Guide</i>. </note><br/>addonVersion:  The version of the add-on. The version must match one of the versions returned by <a href="https://docs.aws.amazon.com/eks/latest/APIReference/API_DescribeAddonVersions.html"> <code>DescribeAddonVersions</code> </a>.<br/>addonName:  The name of the add-on. The name must match one of the names returned by <a href="https://docs.aws.amazon.com/eks/latest/APIReference/API_ListAddons.html"> <code>ListAddons</code> </a>.<br/>clusterName:  The name of the cluster.<br/>
        :return: update:  An object representing an asynchronous update.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>errors</i> Any errors associated with a <code>Failed</code> update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The Unix epoch timestamp in seconds for when the update was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>params</i> A key-value map that contains the parameters associated with the update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of the update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current status of the update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> A UUID that is used to track the update.<br/>        """
        pass

    def update_cluster_config(self, name: str, resourcesVpcConfig: VpcConfigRequest=None, logging: Logging=None, clientRequestToken: str=None) -> UpdateClusterConfigResponse:
        r"""Updates an Amazon EKS cluster configuration. Your cluster continues to function during the update. The response output includes an update ID that you can use to track the status of your cluster update with the <a>DescribeUpdate</a> API operation. You can use this API operation to enable or disable exporting the Kubernetes control plane logs for your cluster to CloudWatch Logs. By default, cluster control plane logs aren't exported to CloudWatch Logs. For more information, see <a href="https://docs.aws.amazon.com/eks/latest/userguide/control-plane-logs.html">Amazon EKS Cluster Control Plane Logs</a> in the <i> <i>Amazon EKS User Guide</i> </i>. <note> CloudWatch Logs ingestion, archive storage, and data scanning rates apply to exported control plane logs. For more information, see <a href="http://aws.amazon.com/cloudwatch/pricing/">Amazon CloudWatch Pricing</a>. </note> You can also use this API operation to enable or disable public and private access to your cluster's Kubernetes API server endpoint. By default, public access is enabled, and private access is disabled. For more information, see <a href="https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html">Amazon EKS Cluster Endpoint Access Control</a> in the <i> <i>Amazon EKS User Guide</i> </i>.  <important> You can't update the subnets or security group IDs for an existing cluster. </important> Cluster updates are asynchronous, and they should finish within a few minutes. During an update, the cluster status moves to <code>UPDATING</code> (this status transition is eventually consistent). When the update is complete (either <code>Failed</code> or <code>Successful</code>), the cluster status moves to <code>Active</code>.

        :param self:
        :param clientRequestToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.<br/>logging:  Enable or disable exporting the Kubernetes control plane logs for your cluster to CloudWatch Logs. By default, cluster control plane logs aren't exported to CloudWatch Logs. For more information, see <a href="https://docs.aws.amazon.com/eks/latest/userguide/control-plane-logs.html">Amazon EKS Cluster Control Plane Logs</a> in the <i> <i>Amazon EKS User Guide</i> </i>. <note> CloudWatch Logs ingestion, archive storage, and data scanning rates apply to exported control plane logs. For more information, see <a href="http://aws.amazon.com/cloudwatch/pricing/">Amazon CloudWatch Pricing</a>. </note>:<br/>resourcesVpcConfig:  An object representing the VPC configuration to use for an Amazon EKS cluster.:<br/>name:  The name of the Amazon EKS cluster to update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>publicAccessCidrs</i> The CIDR blocks that are allowed access to your cluster's public Kubernetes API server endpoint. Communication to the endpoint from addresses outside of the CIDR blocks that you specify is denied. The default value is <code>0.0.0.0/0</code>. If you've disabled private endpoint access and you have nodes or AWS Fargate pods in the cluster, then ensure that you specify the necessary CIDR blocks. For more information, see <a href="https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html">Amazon EKS Cluster Endpoint Access Control</a> in the <i> <i>Amazon EKS User Guide</i> </i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>endpointPrivateAccess</i> Set this value to <code>true</code> to enable private access for your cluster's Kubernetes API server endpoint. If you enable private access, Kubernetes API requests from within your cluster's VPC use the private VPC endpoint. The default value for this parameter is <code>false</code>, which disables private access for your Kubernetes API server. If you disable private access and you have nodes or AWS Fargate pods in the cluster, then ensure that <code>publicAccessCidrs</code> includes the necessary CIDR blocks for communication with the nodes or Fargate pods. For more information, see <a href="https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html">Amazon EKS Cluster Endpoint Access Control</a> in the <i> <i>Amazon EKS User Guide</i> </i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>endpointPublicAccess</i> Set this value to <code>false</code> to disable public access to your cluster's Kubernetes API server endpoint. If you disable public access, your cluster's Kubernetes API server can only receive requests from within the cluster VPC. The default value for this parameter is <code>true</code>, which enables public access for your Kubernetes API server. For more information, see <a href="https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html">Amazon EKS Cluster Endpoint Access Control</a> in the <i> <i>Amazon EKS User Guide</i> </i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>securityGroupIds</i> Specify one or more security groups for the cross-account elastic network interfaces that Amazon EKS creates to use to allow communication between your nodes and the Kubernetes control plane. If you don't specify any security groups, then familiarize yourself with the difference between Amazon EKS defaults for clusters deployed with Kubernetes: <ul> <li> 1.14 Amazon EKS platform version <code>eks.2</code> and earlier </li> <li> 1.14 Amazon EKS platform version <code>eks.3</code> and later  </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/eks/latest/userguide/sec-group-reqs.html">Amazon EKS security group considerations</a> in the <i> <i>Amazon EKS User Guide</i> </i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>subnetIds</i> Specify subnets for your Amazon EKS nodes. Amazon EKS creates cross-account elastic network interfaces in these subnets to allow communication between your nodes and the Kubernetes control plane.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>clusterLogging</i> The cluster control plane logging configuration for your cluster.<br/>
        :return: update:  An object representing an asynchronous update.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>errors</i> Any errors associated with a <code>Failed</code> update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The Unix epoch timestamp in seconds for when the update was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>params</i> A key-value map that contains the parameters associated with the update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of the update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current status of the update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> A UUID that is used to track the update.<br/>        """
        pass

    def update_cluster_version(self, version: str, name: str, clientRequestToken: str=None) -> UpdateClusterVersionResponse:
        r"""Updates an Amazon EKS cluster to the specified Kubernetes version. Your cluster continues to function during the update. The response output includes an update ID that you can use to track the status of your cluster update with the <a>DescribeUpdate</a> API operation. Cluster updates are asynchronous, and they should finish within a few minutes. During an update, the cluster status moves to <code>UPDATING</code> (this status transition is eventually consistent). When the update is complete (either <code>Failed</code> or <code>Successful</code>), the cluster status moves to <code>Active</code>. If your cluster has managed node groups attached to it, all of your node groups’ Kubernetes versions must match the cluster’s Kubernetes version in order to update the cluster to a new Kubernetes version.

        :param self:
        :param clientRequestToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.<br/>version:  The desired Kubernetes version following a successful update.<br/>name:  The name of the Amazon EKS cluster to update.<br/>
        :return: update:  The full description of the specified update:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>errors</i> Any errors associated with a <code>Failed</code> update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The Unix epoch timestamp in seconds for when the update was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>params</i> A key-value map that contains the parameters associated with the update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of the update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current status of the update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> A UUID that is used to track the update.<br/>        """
        pass

    def update_nodegroup_config(self, nodegroupName: str, clusterName: str, labels: UpdateLabelsPayload=None, taints: UpdateTaintsPayload=None, scalingConfig: NodegroupScalingConfig=None, updateConfig: NodegroupUpdateConfig=None, clientRequestToken: str=None) -> UpdateNodegroupConfigResponse:
        r"""Updates an Amazon EKS managed node group configuration. Your node group continues to function during the update. The response output includes an update ID that you can use to track the status of your node group update with the <a>DescribeUpdate</a> API operation. Currently you can update the Kubernetes labels for a node group or the scaling configuration.

        :param self:
        :param clientRequestToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.<br/>updateConfig:  :<br/>scalingConfig:  The scaling configuration details for the Auto Scaling group after the update.:<br/>taints:  The Kubernetes taints to be applied to the nodes in the node group after the update.:<br/>labels:  The Kubernetes labels to be applied to the nodes in the node group after the update.:<br/>nodegroupName:  The name of the managed node group to update.<br/>clusterName:  The name of the Amazon EKS cluster that the managed node group resides in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>removeLabels</i> Kubernetes labels to be removed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>addOrUpdateLabels</i> Kubernetes labels to be added or updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>removeTaints</i> Kubernetes taints to be removed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>addOrUpdateTaints</i> Kubernetes taints to be added or updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>desiredSize</i> The current number of nodes that the managed node group should maintain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>maxSize</i> The maximum number of nodes that the managed node group can scale out to. For information about the maximum number that you can specify, see <a href="https://docs.aws.amazon.com/eks/latest/userguide/service-quotas.html">Amazon EKS service quotas</a> in the <i>Amazon EKS User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>minSize</i> The minimum number of nodes that the managed node group can scale in to. This number must be greater than zero.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>maxUnavailablePercentage</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>maxUnavailable</i> <br/>
        :return: update:  An object representing an asynchronous update.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>errors</i> Any errors associated with a <code>Failed</code> update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The Unix epoch timestamp in seconds for when the update was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>params</i> A key-value map that contains the parameters associated with the update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of the update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current status of the update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> A UUID that is used to track the update.<br/>        """
        pass

    def update_nodegroup_version(self, nodegroupName: str, clusterName: str, version: str=None, releaseVersion: str=None, launchTemplate: LaunchTemplateSpecification=None, force: Boolean=None, clientRequestToken: str=None) -> UpdateNodegroupVersionResponse:
        r"""Updates the Kubernetes version or AMI version of an Amazon EKS managed node group. You can update a node group using a launch template only if the node group was originally deployed with a launch template. If you need to update a custom AMI in a node group that was deployed with a launch template, then update your custom AMI, specify the new ID in a new version of the launch template, and then update the node group to the new version of the launch template. If you update without a launch template, then you can update to the latest available AMI version of a node group's current Kubernetes version by not specifying a Kubernetes version in the request. You can update to the latest AMI version of your cluster's current Kubernetes version by specifying your cluster's Kubernetes version in the request. For more information, see <a href="https://docs.aws.amazon.com/eks/latest/userguide/eks-linux-ami-versions.html">Amazon EKS optimized Amazon Linux 2 AMI versions</a> in the <i>Amazon EKS User Guide</i>. You cannot roll back a node group to an earlier Kubernetes version or AMI version. When a node in a managed node group is terminated due to a scaling action or update, the pods in that node are drained first. Amazon EKS attempts to drain the nodes gracefully and will fail if it is unable to do so. You can <code>force</code> the update if Amazon EKS is unable to drain the nodes as a result of a pod disruption budget issue.

        :param self:
        :param clientRequestToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.<br/>force:  Force the update if the existing node group's pods are unable to be drained due to a pod disruption budget issue. If an update fails because pods could not be drained, you can force the update after it fails to terminate the old node whether or not any pods are running on the node.<br/>launchTemplate:  An object representing a node group's launch template specification. You can only update a node group using a launch template if the node group was originally deployed with a launch template.:<br/>releaseVersion:  The AMI version of the Amazon EKS optimized AMI to use for the update. By default, the latest available AMI version for the node group's Kubernetes version is used. For more information, see <a href="https://docs.aws.amazon.com/eks/latest/userguide/eks-linux-ami-versions.html">Amazon EKS optimized Amazon Linux 2 AMI versions </a> in the <i>Amazon EKS User Guide</i>. If you specify <code>launchTemplate</code>, and your launch template uses a custom AMI, then don't specify <code>releaseVersion</code>, or the node group update will fail. For more information about using launch templates with Amazon EKS, see <a href="https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html">Launch template support</a> in the Amazon EKS User Guide.<br/>version:  The Kubernetes version to update to. If no version is specified, then the Kubernetes version of the node group does not change. You can specify the Kubernetes version of the cluster to update the node group to the latest AMI version of the cluster's Kubernetes version. If you specify <code>launchTemplate</code>, and your launch template uses a custom AMI, then don't specify <code>version</code>, or the node group update will fail. For more information about using launch templates with Amazon EKS, see <a href="https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html">Launch template support</a> in the Amazon EKS User Guide.<br/>nodegroupName:  The name of the managed node group to update.<br/>clusterName:  The name of the Amazon EKS cluster that is associated with the managed node group to update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The ID of the launch template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The version of the launch template to use. If no version is specified, then the template's default version is used.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the launch template.<br/>
        :return: update:  An object representing an asynchronous update.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>errors</i> Any errors associated with a <code>Failed</code> update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The Unix epoch timestamp in seconds for when the update was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>params</i> A key-value map that contains the parameters associated with the update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of the update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current status of the update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> A UUID that is used to track the update.<br/>        """
        pass





class ElasticInference(BaseClient):
    r""" Elastic Inference public APIs. """


    class DescribeAcceleratorsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_accelerators` for valid parameters"""
            pass


    class DescribeAcceleratorOfferingsRequest(Mapping):
        pass
    
    class DescribeAcceleratorOfferingsResponse(Mapping):
        pass
    
    class AcceleratorTypeName(object):
        pass
    
    class DescribeAcceleratorTypesRequest(Mapping):
        pass
    
    class DescribeAcceleratorTypesResponse(Mapping):
        pass
    
    class DescribeAcceleratorsRequest(Mapping):
        pass
    
    class DescribeAcceleratorsResponse(Mapping):
        pass
    
    class AcceleratorId(object):
        pass
    
    class Filter(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResult(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResult(Mapping):
        pass
    
    class TagMap(object):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResult(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    def describe_accelerator_offerings(self, locationType: str, acceleratorTypes: List[AcceleratorTypeName]=None) -> DescribeAcceleratorOfferingsResponse:
        r""" Describes the locations in which a given accelerator type or set of types is present in a given region. 

        :param self:
        :param acceleratorTypes:   The list of accelerator types to describe. <br/>locationType:   The location type that you want to describe accelerator type offerings for. It can assume the following values: region: will return the accelerator type offering at the regional level. availability-zone: will return the accelerator type offering at the availability zone level. availability-zone-id: will return the accelerator type offering at the availability zone level returning the availability zone id. <br/>
        :return: acceleratorTypeOfferings:   The list of accelerator type offerings for a specific location. <br/>        """
        pass

    def describe_accelerator_types(self) -> DescribeAcceleratorTypesResponse:
        r""" Describes the accelerator types available in a given region, as well as their characteristics, such as memory and throughput. 

        :param self:
        :param 
        :return: acceleratorTypes:   The available accelerator types. <br/>        """
        pass

    def describe_accelerators(self, acceleratorIds: List[AcceleratorId]=None, filters: List[Filter]=None, maxResults: int=None, nextToken: str=None) -> DescribeAcceleratorsResponse:
        r""" Describes information over a provided set of accelerators belonging to an account. 

        :param self:
        :param nextToken:   A token to specify where to start paginating. This is the NextToken from a previously truncated response. <br/>maxResults:   The total number of items to return in the command's output. If the total number of items available is more than the value specified, a NextToken is provided in the command's output. To resume pagination, provide the NextToken value in the starting-token argument of a subsequent command. Do not use the NextToken response element directly outside of the AWS CLI. <br/>filters:   One or more filters. Filter names and values are case-sensitive. Valid filter names are: accelerator-types: can provide a list of accelerator type names to filter for. instance-id: can provide a list of EC2 instance ids to filter for. <br/>acceleratorIds:   The IDs of the accelerators to describe. <br/>
        :return: nextToken:   A token to specify where to start paginating. This is the NextToken from a previously truncated response. <br/>acceleratorSet:   The details of the Elastic Inference Accelerators. <br/>        """
        pass

    def list_tags_for_resource(self, resourceArn: str) -> ListTagsForResourceResult:
        r""" Returns all tags of an Elastic Inference Accelerator. 

        :param self:
        :param resourceArn:   The ARN of the Elastic Inference Accelerator to list the tags for. <br/>
        :return: tags:   The tags of the Elastic Inference Accelerator. <br/>        """
        pass

    def tag_resource(self, tags: TagMap, resourceArn: str) -> TagResourceResult:
        r""" Adds the specified tags to an Elastic Inference Accelerator. 

        :param self:
        :param tags:   The tags to add to the Elastic Inference Accelerator. <br/>resourceArn:   The ARN of the Elastic Inference Accelerator to tag. <br/>
        :return:         """
        pass

    def untag_resource(self, tagKeys: List[TagKey], resourceArn: str) -> UntagResourceResult:
        r""" Removes the specified tags from an Elastic Inference Accelerator. 

        :param self:
        :param tagKeys:   The list of tags to remove from the Elastic Inference Accelerator. <br/>resourceArn:   The ARN of the Elastic Inference Accelerator to untag. <br/>
        :return:         """
        pass





class ElastiCache(BaseClient):
    r"""<fullname>Amazon ElastiCache</fullname> Amazon ElastiCache is a web service that makes it easier to set up, operate, and scale a distributed cache in the cloud. With ElastiCache, customers get all of the benefits of a high-performance, in-memory cache with less of the administrative burden involved in launching and managing a distributed cache. The service makes setup, scaling, and cluster failure handling much simpler than in a self-managed cache deployment. In addition, through integration with Amazon CloudWatch, customers get enhanced visibility into the key performance statistics associated with their cache and can receive alarms if a part of their cache runs hot."""

    class CacheClusterAvailableWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_cache_clusters` for valid parameters"""
            pass
    class CacheClusterDeletedWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_cache_clusters` for valid parameters"""
            pass
    class ReplicationGroupAvailableWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_replication_groups` for valid parameters"""
            pass
    class ReplicationGroupDeletedWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_replication_groups` for valid parameters"""
            pass


    class DescribeCacheClustersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_cache_clusters` for valid parameters"""
            pass
    class DescribeCacheEngineVersionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_cache_engine_versions` for valid parameters"""
            pass
    class DescribeCacheParameterGroupsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_cache_parameter_groups` for valid parameters"""
            pass
    class DescribeCacheParametersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_cache_parameters` for valid parameters"""
            pass
    class DescribeCacheSecurityGroupsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_cache_security_groups` for valid parameters"""
            pass
    class DescribeCacheSubnetGroupsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_cache_subnet_groups` for valid parameters"""
            pass
    class DescribeEngineDefaultParametersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_engine_default_parameters` for valid parameters"""
            pass
    class DescribeEventsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_events` for valid parameters"""
            pass
    class DescribeReservedCacheNodesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_reserved_cache_nodes` for valid parameters"""
            pass
    class DescribeReservedCacheNodesOfferingsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_reserved_cache_nodes_offerings` for valid parameters"""
            pass
    class DescribeReplicationGroupsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_replication_groups` for valid parameters"""
            pass
    class DescribeSnapshotsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_snapshots` for valid parameters"""
            pass
    class DescribeServiceUpdatesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_service_updates` for valid parameters"""
            pass
    class DescribeUpdateActionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_update_actions` for valid parameters"""
            pass
    class DescribeGlobalReplicationGroupsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_global_replication_groups` for valid parameters"""
            pass
    class DescribeUserGroupsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_user_groups` for valid parameters"""
            pass
    class DescribeUsersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_users` for valid parameters"""
            pass


    class AddTagsToResourceMessage(Mapping):
        pass
    
    class TagListMessage(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class AuthorizeCacheSecurityGroupIngressMessage(Mapping):
        pass
    
    class AuthorizeCacheSecurityGroupIngressResult(Mapping):
        pass
    
    class BatchApplyUpdateActionMessage(Mapping):
        pass
    
    class UpdateActionResultsMessage(Mapping):
        pass
    
    class String(object):
        pass
    
    class BatchStopUpdateActionMessage(Mapping):
        pass
    
    class CompleteMigrationMessage(Mapping):
        pass
    
    class CompleteMigrationResponse(Mapping):
        pass
    
    class Boolean(object):
        pass
    
    class CopySnapshotMessage(Mapping):
        pass
    
    class CopySnapshotResult(Mapping):
        pass
    
    class CreateCacheClusterMessage(Mapping):
        pass
    
    class CreateCacheClusterResult(Mapping):
        pass
    
    class BooleanOptional(object):
        pass
    
    class LogDeliveryConfigurationRequest(Mapping):
        pass
    
    class CreateCacheParameterGroupMessage(Mapping):
        pass
    
    class CreateCacheParameterGroupResult(Mapping):
        pass
    
    class CreateCacheSecurityGroupMessage(Mapping):
        pass
    
    class CreateCacheSecurityGroupResult(Mapping):
        pass
    
    class CreateCacheSubnetGroupMessage(Mapping):
        pass
    
    class CreateCacheSubnetGroupResult(Mapping):
        pass
    
    class CreateGlobalReplicationGroupMessage(Mapping):
        pass
    
    class CreateGlobalReplicationGroupResult(Mapping):
        pass
    
    class CreateReplicationGroupMessage(Mapping):
        pass
    
    class CreateReplicationGroupResult(Mapping):
        pass
    
    class NodeGroupConfiguration(Mapping):
        pass
    
    class UserGroupId(object):
        pass
    
    class CreateSnapshotMessage(Mapping):
        pass
    
    class CreateSnapshotResult(Mapping):
        pass
    
    class CreateUserMessage(Mapping):
        pass
    
    class User(Mapping):
        pass
    
    class CreateUserGroupMessage(Mapping):
        pass
    
    class UserGroup(Mapping):
        pass
    
    class UserId(object):
        pass
    
    class DecreaseNodeGroupsInGlobalReplicationGroupMessage(Mapping):
        pass
    
    class DecreaseNodeGroupsInGlobalReplicationGroupResult(Mapping):
        pass
    
    class DecreaseReplicaCountMessage(Mapping):
        pass
    
    class DecreaseReplicaCountResult(Mapping):
        pass
    
    class ConfigureShard(Mapping):
        pass
    
    class DeleteCacheClusterMessage(Mapping):
        pass
    
    class DeleteCacheClusterResult(Mapping):
        pass
    
    class DeleteCacheParameterGroupMessage(Mapping):
        pass
    
    class DeleteCacheSecurityGroupMessage(Mapping):
        pass
    
    class DeleteCacheSubnetGroupMessage(Mapping):
        pass
    
    class DeleteGlobalReplicationGroupMessage(Mapping):
        pass
    
    class DeleteGlobalReplicationGroupResult(Mapping):
        pass
    
    class DeleteReplicationGroupMessage(Mapping):
        pass
    
    class DeleteReplicationGroupResult(Mapping):
        pass
    
    class DeleteSnapshotMessage(Mapping):
        pass
    
    class DeleteSnapshotResult(Mapping):
        pass
    
    class DeleteUserMessage(Mapping):
        pass
    
    class DeleteUserGroupMessage(Mapping):
        pass
    
    class DescribeCacheClustersMessage(Mapping):
        pass
    
    class CacheClusterMessage(Mapping):
        pass
    
    class DescribeCacheEngineVersionsMessage(Mapping):
        pass
    
    class CacheEngineVersionMessage(Mapping):
        pass
    
    class DescribeCacheParameterGroupsMessage(Mapping):
        pass
    
    class CacheParameterGroupsMessage(Mapping):
        pass
    
    class DescribeCacheParametersMessage(Mapping):
        pass
    
    class CacheParameterGroupDetails(Mapping):
        pass
    
    class DescribeCacheSecurityGroupsMessage(Mapping):
        pass
    
    class CacheSecurityGroupMessage(Mapping):
        pass
    
    class DescribeCacheSubnetGroupsMessage(Mapping):
        pass
    
    class CacheSubnetGroupMessage(Mapping):
        pass
    
    class DescribeEngineDefaultParametersMessage(Mapping):
        pass
    
    class DescribeEngineDefaultParametersResult(Mapping):
        pass
    
    class DescribeEventsMessage(Mapping):
        pass
    
    class EventsMessage(Mapping):
        pass
    
    class TStamp(object):
        pass
    
    class DescribeGlobalReplicationGroupsMessage(Mapping):
        pass
    
    class DescribeGlobalReplicationGroupsResult(Mapping):
        pass
    
    class DescribeReplicationGroupsMessage(Mapping):
        pass
    
    class ReplicationGroupMessage(Mapping):
        pass
    
    class DescribeReservedCacheNodesMessage(Mapping):
        pass
    
    class ReservedCacheNodeMessage(Mapping):
        pass
    
    class DescribeReservedCacheNodesOfferingsMessage(Mapping):
        pass
    
    class ReservedCacheNodesOfferingMessage(Mapping):
        pass
    
    class DescribeServiceUpdatesMessage(Mapping):
        pass
    
    class ServiceUpdatesMessage(Mapping):
        pass
    
    class ServiceUpdateStatus(object):
        pass
    
    class DescribeSnapshotsMessage(Mapping):
        pass
    
    class DescribeSnapshotsListMessage(Mapping):
        pass
    
    class DescribeUpdateActionsMessage(Mapping):
        pass
    
    class UpdateActionsMessage(Mapping):
        pass
    
    class TimeRangeFilter(Mapping):
        pass
    
    class UpdateActionStatus(object):
        pass
    
    class DescribeUserGroupsMessage(Mapping):
        pass
    
    class DescribeUserGroupsResult(Mapping):
        pass
    
    class DescribeUsersMessage(Mapping):
        pass
    
    class DescribeUsersResult(Mapping):
        pass
    
    class Filter(Mapping):
        pass
    
    class DisassociateGlobalReplicationGroupMessage(Mapping):
        pass
    
    class DisassociateGlobalReplicationGroupResult(Mapping):
        pass
    
    class FailoverGlobalReplicationGroupMessage(Mapping):
        pass
    
    class FailoverGlobalReplicationGroupResult(Mapping):
        pass
    
    class IncreaseNodeGroupsInGlobalReplicationGroupMessage(Mapping):
        pass
    
    class IncreaseNodeGroupsInGlobalReplicationGroupResult(Mapping):
        pass
    
    class RegionalConfiguration(Mapping):
        pass
    
    class IncreaseReplicaCountMessage(Mapping):
        pass
    
    class IncreaseReplicaCountResult(Mapping):
        pass
    
    class ListAllowedNodeTypeModificationsMessage(Mapping):
        pass
    
    class AllowedNodeTypeModificationsMessage(Mapping):
        pass
    
    class ListTagsForResourceMessage(Mapping):
        pass
    
    class ModifyCacheClusterMessage(Mapping):
        pass
    
    class ModifyCacheClusterResult(Mapping):
        pass
    
    class ModifyCacheParameterGroupMessage(Mapping):
        pass
    
    class CacheParameterGroupNameMessage(Mapping):
        pass
    
    class ParameterNameValue(Mapping):
        pass
    
    class ModifyCacheSubnetGroupMessage(Mapping):
        pass
    
    class ModifyCacheSubnetGroupResult(Mapping):
        pass
    
    class ModifyGlobalReplicationGroupMessage(Mapping):
        pass
    
    class ModifyGlobalReplicationGroupResult(Mapping):
        pass
    
    class ModifyReplicationGroupMessage(Mapping):
        pass
    
    class ModifyReplicationGroupResult(Mapping):
        pass
    
    class ModifyReplicationGroupShardConfigurationMessage(Mapping):
        pass
    
    class ModifyReplicationGroupShardConfigurationResult(Mapping):
        pass
    
    class ReshardingConfiguration(Mapping):
        pass
    
    class AllowedNodeGroupId(object):
        pass
    
    class ModifyUserMessage(Mapping):
        pass
    
    class ModifyUserGroupMessage(Mapping):
        pass
    
    class PurchaseReservedCacheNodesOfferingMessage(Mapping):
        pass
    
    class PurchaseReservedCacheNodesOfferingResult(Mapping):
        pass
    
    class RebalanceSlotsInGlobalReplicationGroupMessage(Mapping):
        pass
    
    class RebalanceSlotsInGlobalReplicationGroupResult(Mapping):
        pass
    
    class RebootCacheClusterMessage(Mapping):
        pass
    
    class RebootCacheClusterResult(Mapping):
        pass
    
    class RemoveTagsFromResourceMessage(Mapping):
        pass
    
    class ResetCacheParameterGroupMessage(Mapping):
        pass
    
    class RevokeCacheSecurityGroupIngressMessage(Mapping):
        pass
    
    class RevokeCacheSecurityGroupIngressResult(Mapping):
        pass
    
    class StartMigrationMessage(Mapping):
        pass
    
    class StartMigrationResponse(Mapping):
        pass
    
    class CustomerNodeEndpoint(Mapping):
        pass
    
    class TestFailoverMessage(Mapping):
        pass
    
    class TestFailoverResult(Mapping):
        pass
    
    def add_tags_to_resource(self, Tags: List[Tag], ResourceName: str) -> TagListMessage:
        r"""A tag is a key-value pair where the key and value are case-sensitive. You can use tags to categorize and track all your ElastiCache resources, with the exception of global replication group. When you add or remove tags on replication groups, those actions will be replicated to all nodes in the replication group. For more information, see <a href="http://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/IAM.ResourceLevelPermissions.html">Resource-level permissions</a>.  For example, you can use cost-allocation tags to your ElastiCache resources, AWS generates a cost allocation report as a comma-separated value (CSV) file with your usage and costs aggregated by your tags. You can apply tags that represent business categories (such as cost centers, application names, or owners) to organize your costs across multiple services. For more information, see <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Tagging.html">Using Cost Allocation Tags in Amazon ElastiCache</a> in the <i>ElastiCache User Guide</i>.

        :param self:
        :param Tags:  A list of tags to be added to this resource. A tag is a key-value pair. A tag key must be accompanied by a tag value, although null is accepted.<br/>ResourceName:  The Amazon Resource Name (ARN) of the resource to which the tags are to be added, for example <code>arn:aws:elasticache:us-west-2:0123456789:cluster:myCluster</code> or <code>arn:aws:elasticache:us-west-2:0123456789:snapshot:mySnapshot</code>. ElastiCache resources are <i>cluster</i> and <i>snapshot</i>. For more information about ARNs, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a>.<br/>
        :return: TagList:  A list of tags as key-value pairs.<br/>        """
        pass

    def authorize_cache_security_group_ingress(self, EC2SecurityGroupOwnerId: str, EC2SecurityGroupName: str, CacheSecurityGroupName: str) -> AuthorizeCacheSecurityGroupIngressResult:
        r"""Allows network ingress to a cache security group. Applications using ElastiCache must be running on Amazon EC2, and Amazon EC2 security groups are used as the authorization mechanism. <note> You cannot authorize ingress from an Amazon EC2 security group in one region to an ElastiCache cluster in another region. </note>

        :param self:
        :param EC2SecurityGroupOwnerId:  The AWS account number of the Amazon EC2 security group owner. Note that this is not the same thing as an AWS access key ID - you must provide a valid AWS account number for this parameter.<br/>EC2SecurityGroupName:  The Amazon EC2 security group to be authorized for ingress to the cache security group.<br/>CacheSecurityGroupName:  The cache security group that allows network ingress.<br/>
        :return: CacheSecurityGroup:  Represents the output of one of the following operations: <ul> <li>  <code>AuthorizeCacheSecurityGroupIngress</code>  </li> <li>  <code>CreateCacheSecurityGroup</code>  </li> <li>  <code>RevokeCacheSecurityGroupIngress</code>  </li> </ul>:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ARN</i> The ARN of the cache security group,<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EC2SecurityGroups</i> A list of Amazon EC2 security groups that are associated with this cache security group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the cache security group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheSecurityGroupName</i> The name of the cache security group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> The AWS account ID of the cache security group owner.<br/>        """
        pass

    def batch_apply_update_action(self, ServiceUpdateName: str, ReplicationGroupIds: List[String]=None, CacheClusterIds: List[String]=None) -> UpdateActionResultsMessage:
        r"""Apply the service update. For more information on service updates and applying them, see <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/applying-updates.html">Applying Service Updates</a>.

        :param self:
        :param ServiceUpdateName:  The unique ID of the service update<br/>CacheClusterIds:  The cache cluster IDs<br/>ReplicationGroupIds:  The replication group IDs<br/>
        :return: UnprocessedUpdateActions:  Update actions that haven't been processed successfully<br/>ProcessedUpdateActions:  Update actions that have been processed successfully<br/>        """
        pass

    def batch_stop_update_action(self, ServiceUpdateName: str, ReplicationGroupIds: List[String]=None, CacheClusterIds: List[String]=None) -> UpdateActionResultsMessage:
        r"""Stop the service update. For more information on service updates and stopping them, see <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/stopping-self-service-updates.html">Stopping Service Updates</a>.

        :param self:
        :param ServiceUpdateName:  The unique ID of the service update<br/>CacheClusterIds:  The cache cluster IDs<br/>ReplicationGroupIds:  The replication group IDs<br/>
        :return: UnprocessedUpdateActions:  Update actions that haven't been processed successfully<br/>ProcessedUpdateActions:  Update actions that have been processed successfully<br/>        """
        pass

    def complete_migration(self, ReplicationGroupId: str, Force: Boolean=None) -> CompleteMigrationResponse:
        r"""Complete the migration of data.

        :param self:
        :param Force:  Forces the migration to stop without ensuring that data is in sync. It is recommended to use this option only to abort the migration and not recommended when application wants to continue migration to ElastiCache.<br/>ReplicationGroupId:  The ID of the replication group to which data is being migrated.<br/>
        :return: ReplicationGroup:  Contains all of the attributes of a specific Redis replication group.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogDeliveryConfigurations</i> Returns the destination, format and type of the logs. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserGroupIds</i> The list of user group IDs that have access to the replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ARN</i> The ARN (Amazon Resource Name) of the replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The ID of the KMS key used to encrypt the disk in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MemberClustersOutpostArns</i> The outpost ARNs of the replication group's member clusters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AtRestEncryptionEnabled</i> A flag that enables encryption at-rest when set to <code>true</code>. You cannot modify the value of <code>AtRestEncryptionEnabled</code> after the cluster is created. To enable encryption at-rest on a cluster you must set <code>AtRestEncryptionEnabled</code> to <code>true</code> when you create a cluster.  <b>Required:</b> Only available when creating a replication group in an Amazon VPC using redis version <code>3.2.6</code>, <code>4.x</code> or later. Default: <code>false</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitEncryptionEnabled</i> A flag that enables in-transit encryption when set to <code>true</code>. You cannot modify the value of <code>TransitEncryptionEnabled</code> after the cluster is created. To enable in-transit encryption on a cluster you must set <code>TransitEncryptionEnabled</code> to <code>true</code> when you create a cluster.  <b>Required:</b> Only available when creating a replication group in an Amazon VPC using redis version <code>3.2.6</code>, <code>4.x</code> or later. Default: <code>false</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AuthTokenLastModifiedDate</i> The date the auth token was last modified<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AuthTokenEnabled</i> A flag that enables using an <code>AuthToken</code> (password) when issuing Redis commands. Default: <code>false</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheNodeType</i> The name of the compute and memory capacity node type for each node in the replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterEnabled</i> A flag indicating whether or not this replication group is cluster enabled; i.e., whether its data can be partitioned across multiple shards (API/CLI: node groups). Valid values: <code>true</code> | <code>false</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotWindow</i> The daily time range (in UTC) during which ElastiCache begins taking a daily snapshot of your node group (shard). Example: <code>05:00-09:00</code>  If you do not specify this parameter, ElastiCache automatically chooses an appropriate time range. <note> This parameter is only valid if the <code>Engine</code> parameter is <code>redis</code>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotRetentionLimit</i> The number of days for which ElastiCache retains automatic cluster snapshots before deleting them. For example, if you set <code>SnapshotRetentionLimit</code> to 5, a snapshot that was taken today is retained for 5 days before being deleted. <important>  If the value of <code>SnapshotRetentionLimit</code> is set to zero (0), backups are turned off. </important><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConfigurationEndpoint</i> The configuration endpoint for this replication group. Use the configuration endpoint to connect to this replication group.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ConfigurationEndpoint</b>: The configuration endpoint for this replication group. Use the configuration endpoint to connect to this replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiAZ</i> A flag indicating if you have Multi-AZ enabled to enhance fault tolerance. For more information, see <a href="http://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/AutoFailover.html">Minimizing Downtime: Multi-AZ</a> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomaticFailover</i> Indicates the status of automatic failover for this Redis replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshottingClusterId</i> The cluster ID that is used as the daily snapshot source for the replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NodeGroups</i> A list of node groups in this replication group. For Redis (cluster mode disabled) replication groups, this is a single-element list. For Redis (cluster mode enabled) replication groups, the list contains an entry for each node group (shard).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MemberClusters</i> The names of all the cache clusters that are part of this replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingModifiedValues</i> A group of settings to be applied to the replication group, either immediately or during the next maintenance window.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingModifiedValues</b>: A group of settings to be applied to the replication group, either immediately or during the next maintenance window.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current state of this replication group - <code>creating</code>, <code>available</code>, <code>modifying</code>, <code>deleting</code>, <code>create-failed</code>, <code>snapshotting</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalReplicationGroupInfo</i> The name of the Global datastore and role of this replication group in the Global datastore.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>GlobalReplicationGroupInfo</b>: The name of the Global datastore and role of this replication group in the Global datastore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The user supplied description of the replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationGroupId</i> The identifier for the replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalReplicationGroupMemberRole</i> The role of the replication group in a Global datastore. Can be primary or secondary.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalReplicationGroupId</i> The name of the Global datastore<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomaticFailoverStatus</i> Indicates the status of automatic failover for this Redis replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PrimaryClusterId</i> The primary cluster ID that is applied immediately (if <code>--apply-immediately</code> was specified), or during the next maintenance window.<br/>The status of an online resharding operation.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Resharding</b>: The status of an online resharding operation.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> The port number that the cache engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Address</i> The DNS hostname of the cache node.<br/>        """
        pass

    def copy_snapshot(self, TargetSnapshotName: str, SourceSnapshotName: str, TargetBucket: str=None, KmsKeyId: str=None, Tags: List[Tag]=None) -> CopySnapshotResult:
        r"""Makes a copy of an existing snapshot. <note> This operation is valid for Redis only. </note> <important> Users or groups that have permissions to use the <code>CopySnapshot</code> operation can create their own Amazon S3 buckets and copy snapshots to it. To control access to your snapshots, use an IAM policy to control who has the ability to use the <code>CopySnapshot</code> operation. For more information about using IAM to control the use of ElastiCache operations, see <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/backups-exporting.html">Exporting Snapshots</a> and <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/IAM.html">Authentication &amp; Access Control</a>. </important> You could receive the following error messages. <p class="title"> <b>Error Messages</b>  <ul> <li>  <b>Error Message:</b> The S3 bucket %s is outside of the region.  <b>Solution:</b> Create an Amazon S3 bucket in the same region as your snapshot. For more information, see <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/backups-exporting.html#backups-exporting-create-s3-bucket">Step 1: Create an Amazon S3 Bucket</a> in the ElastiCache User Guide. </li> <li>  <b>Error Message:</b> The S3 bucket %s does not exist.  <b>Solution:</b> Create an Amazon S3 bucket in the same region as your snapshot. For more information, see <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/backups-exporting.html#backups-exporting-create-s3-bucket">Step 1: Create an Amazon S3 Bucket</a> in the ElastiCache User Guide. </li> <li>  <b>Error Message:</b> The S3 bucket %s is not owned by the authenticated user.  <b>Solution:</b> Create an Amazon S3 bucket in the same region as your snapshot. For more information, see <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/backups-exporting.html#backups-exporting-create-s3-bucket">Step 1: Create an Amazon S3 Bucket</a> in the ElastiCache User Guide. </li> <li>  <b>Error Message:</b> The authenticated user does not have sufficient permissions to perform the desired activity.  <b>Solution:</b> Contact your system administrator to get the needed permissions. </li> <li>  <b>Error Message:</b> The S3 bucket %s already contains an object with key %s.  <b>Solution:</b> Give the <code>TargetSnapshotName</code> a new and unique value. If exporting a snapshot, you could alternatively create a new Amazon S3 bucket and use this same value for <code>TargetSnapshotName</code>. </li> <li>  <b>Error Message: </b> ElastiCache has not been granted READ permissions %s on the S3 Bucket.  <b>Solution:</b> Add List and Read permissions on the bucket. For more information, see <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/backups-exporting.html#backups-exporting-grant-access">Step 2: Grant ElastiCache Access to Your Amazon S3 Bucket</a> in the ElastiCache User Guide. </li> <li>  <b>Error Message: </b> ElastiCache has not been granted WRITE permissions %s on the S3 Bucket.  <b>Solution:</b> Add Upload/Delete permissions on the bucket. For more information, see <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/backups-exporting.html#backups-exporting-grant-access">Step 2: Grant ElastiCache Access to Your Amazon S3 Bucket</a> in the ElastiCache User Guide. </li> <li>  <b>Error Message: </b> ElastiCache has not been granted READ_ACP permissions %s on the S3 Bucket.  <b>Solution:</b> Add View Permissions on the bucket. For more information, see <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/backups-exporting.html#backups-exporting-grant-access">Step 2: Grant ElastiCache Access to Your Amazon S3 Bucket</a> in the ElastiCache User Guide. </li> </ul>

        :param self:
        :param Tags:  A list of tags to be added to this resource. A tag is a key-value pair. A tag key must be accompanied by a tag value, although null is accepted.<br/>KmsKeyId:  The ID of the KMS key used to encrypt the target snapshot.<br/>TargetBucket:  The Amazon S3 bucket to which the snapshot is exported. This parameter is used only when exporting a snapshot for external access. When using this parameter to export a snapshot, be sure Amazon ElastiCache has the needed permissions to this S3 bucket. For more information, see <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/backups-exporting.html#backups-exporting-grant-access">Step 2: Grant ElastiCache Access to Your Amazon S3 Bucket</a> in the <i>Amazon ElastiCache User Guide</i>. For more information, see <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/backups-exporting.html">Exporting a Snapshot</a> in the <i>Amazon ElastiCache User Guide</i>.<br/>TargetSnapshotName:  A name for the snapshot copy. ElastiCache does not permit overwriting a snapshot, therefore this name must be unique within its context - ElastiCache or an Amazon S3 bucket if exporting.<br/>SourceSnapshotName:  The name of an existing snapshot from which to make a copy.<br/>
        :return: Snapshot:  Represents a copy of an entire Redis cluster as of the time when the snapshot was taken.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ARN</i> The ARN (Amazon Resource Name) of the snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The ID of the KMS key used to encrypt the snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NodeSnapshots</i> A list of the cache nodes in the source cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomaticFailover</i> Indicates the status of automatic failover for the source Redis replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NumNodeGroups</i> The number of node groups (shards) in this snapshot. When restoring from a snapshot, the number of node groups (shards) in the snapshot and in the restored replication group must be the same.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotWindow</i> The daily time range during which ElastiCache takes daily snapshots of the source cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotRetentionLimit</i> For an automatic snapshot, the number of days for which ElastiCache retains the snapshot before deleting it. For manual snapshots, this field reflects the <code>SnapshotRetentionLimit</code> for the source cluster when the snapshot was created. This field is otherwise ignored: Manual snapshots do not expire, and can only be deleted using the <code>DeleteSnapshot</code> operation.   <b>Important</b> If the value of SnapshotRetentionLimit is set to zero (0), backups are turned off.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoMinorVersionUpgrade</i> This parameter is currently disabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The Amazon Virtual Private Cloud identifier (VPC ID) of the cache subnet group for the source cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheSubnetGroupName</i> The name of the cache subnet group associated with the source cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheParameterGroupName</i> The cache parameter group that is associated with the source cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> The port number used by each cache nodes in the source cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TopicArn</i> The Amazon Resource Name (ARN) for the topic used by the source cluster for publishing notifications.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i> Specifies the weekly time range during which maintenance on the cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period. Valid values for <code>ddd</code> are: <ul> <li>  <code>sun</code>  </li> <li>  <code>mon</code>  </li> <li>  <code>tue</code>  </li> <li>  <code>wed</code>  </li> <li>  <code>thu</code>  </li> <li>  <code>fri</code>  </li> <li>  <code>sat</code>  </li> </ul> Example: <code>sun:23:00-mon:01:30</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheClusterCreateTime</i> The date and time when the source cluster was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredOutpostArn</i> The ARN (Amazon Resource Name) of the preferred outpost.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredAvailabilityZone</i> The name of the Availability Zone in which the source cluster is located.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NumCacheNodes</i> The number of cache nodes in the source cluster. For clusters running Redis, this value must be 1. For clusters running Memcached, this value must be between 1 and 40.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> The version of the cache engine version that is used by the source cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> The name of the cache engine (<code>memcached</code> or <code>redis</code>) used by the source cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheNodeType</i> The name of the compute and memory capacity node type for the source cluster. The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts. <ul> <li> General purpose: <ul> <li> Current generation:   <b>M6g node types</b> (available only for Redis engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward).  <code>cache.m6g.large</code>, <code>cache.m6g.xlarge</code>, <code>cache.m6g.2xlarge</code>, <code>cache.m6g.4xlarge</code>, <code>cache.m6g.8xlarge</code>, <code>cache.m6g.12xlarge</code>, <code>cache.m6g.16xlarge</code>  <note> For region availability, see <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion">Supported Node Types</a>  </note>  <b>M5 node types:</b> <code>cache.m5.large</code>, <code>cache.m5.xlarge</code>, <code>cache.m5.2xlarge</code>, <code>cache.m5.4xlarge</code>, <code>cache.m5.12xlarge</code>, <code>cache.m5.24xlarge</code>   <b>M4 node types:</b> <code>cache.m4.large</code>, <code>cache.m4.xlarge</code>, <code>cache.m4.2xlarge</code>, <code>cache.m4.4xlarge</code>, <code>cache.m4.10xlarge</code>   <b>T3 node types:</b> <code>cache.t3.micro</code>, <code>cache.t3.small</code>, <code>cache.t3.medium</code>   <b>T2 node types:</b> <code>cache.t2.micro</code>, <code>cache.t2.small</code>, <code>cache.t2.medium</code>  </li> <li> Previous generation: (not recommended)  <b>T1 node types:</b> <code>cache.t1.micro</code>   <b>M1 node types:</b> <code>cache.m1.small</code>, <code>cache.m1.medium</code>, <code>cache.m1.large</code>, <code>cache.m1.xlarge</code>   <b>M3 node types:</b> <code>cache.m3.medium</code>, <code>cache.m3.large</code>, <code>cache.m3.xlarge</code>, <code>cache.m3.2xlarge</code>  </li> </ul> </li> <li> Compute optimized: <ul> <li> Previous generation: (not recommended)  <b>C1 node types:</b> <code>cache.c1.xlarge</code>  </li> </ul> </li> <li> Memory optimized: <ul> <li> Current generation:   <b>R6g node types</b> (available only for Redis engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward).  <code>cache.r6g.large</code>, <code>cache.r6g.xlarge</code>, <code>cache.r6g.2xlarge</code>, <code>cache.r6g.4xlarge</code>, <code>cache.r6g.8xlarge</code>, <code>cache.r6g.12xlarge</code>, <code>cache.r6g.16xlarge</code>  <note> For region availability, see <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion">Supported Node Types</a>  </note>  <b>R5 node types:</b> <code>cache.r5.large</code>, <code>cache.r5.xlarge</code>, <code>cache.r5.2xlarge</code>, <code>cache.r5.4xlarge</code>, <code>cache.r5.12xlarge</code>, <code>cache.r5.24xlarge</code>   <b>R4 node types:</b> <code>cache.r4.large</code>, <code>cache.r4.xlarge</code>, <code>cache.r4.2xlarge</code>, <code>cache.r4.4xlarge</code>, <code>cache.r4.8xlarge</code>, <code>cache.r4.16xlarge</code>  </li> <li> Previous generation: (not recommended)  <b>M2 node types:</b> <code>cache.m2.xlarge</code>, <code>cache.m2.2xlarge</code>, <code>cache.m2.4xlarge</code>   <b>R3 node types:</b> <code>cache.r3.large</code>, <code>cache.r3.xlarge</code>, <code>cache.r3.2xlarge</code>, <code>cache.r3.4xlarge</code>, <code>cache.r3.8xlarge</code>  </li> </ul> </li> </ul>  <b>Additional node type info</b>  <ul> <li> All current generation instance types are created in Amazon VPC by default. </li> <li> Redis append-only files (AOF) are not supported for T1 or T2 instances. </li> <li> Redis Multi-AZ with automatic failover is not supported on T1 instances. </li> <li> Redis configuration variables <code>appendonly</code> and <code>appendfsync</code> are not supported on Redis version 2.8.22 and later. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotSource</i> Indicates whether the snapshot is from an automatic backup (<code>automated</code>) or was created manually (<code>manual</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotStatus</i> The status of the snapshot. Valid values: <code>creating</code> | <code>available</code> | <code>restoring</code> | <code>copying</code> | <code>deleting</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheClusterId</i> The user-supplied identifier of the source cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationGroupDescription</i> A description of the source replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationGroupId</i> The unique identifier of the source replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotName</i> The name of a snapshot. For an automatic snapshot, the name is system-generated. For a manual snapshot, this is the user-provided name.<br/>        """
        pass

    def create_cache_cluster(self, CacheClusterId: str, ReplicationGroupId: str=None, AZMode: str=None, PreferredAvailabilityZone: str=None, PreferredAvailabilityZones: List[String]=None, NumCacheNodes: int=None, CacheNodeType: str=None, Engine: str=None, EngineVersion: str=None, CacheParameterGroupName: str=None, CacheSubnetGroupName: str=None, CacheSecurityGroupNames: List[String]=None, SecurityGroupIds: List[String]=None, Tags: List[Tag]=None, SnapshotArns: List[String]=None, SnapshotName: str=None, PreferredMaintenanceWindow: str=None, Port: int=None, NotificationTopicArn: str=None, AutoMinorVersionUpgrade: BooleanOptional=None, SnapshotRetentionLimit: int=None, SnapshotWindow: str=None, AuthToken: str=None, OutpostMode: str=None, PreferredOutpostArn: str=None, PreferredOutpostArns: List[String]=None, LogDeliveryConfigurations: List[LogDeliveryConfigurationRequest]=None) -> CreateCacheClusterResult:
        r"""Creates a cluster. All nodes in the cluster run the same protocol-compliant cache engine software, either Memcached or Redis. This operation is not supported for Redis (cluster mode enabled) clusters.

        :param self:
        :param LogDeliveryConfigurations:  Specifies the destination, format and type of the logs. <br/>PreferredOutpostArns:  The outpost ARNs in which the cache cluster is created.<br/>PreferredOutpostArn:  The outpost ARN in which the cache cluster is created.<br/>OutpostMode:  Specifies whether the nodes in the cluster are created in a single outpost or across multiple outposts.<br/>AuthToken:   <b>Reserved parameter.</b> The password used to access a password protected server. Password constraints: <ul> <li> Must be only printable ASCII characters. </li> <li> Must be at least 16 characters and no more than 128 characters in length. </li> <li> The only permitted printable special characters are !, &amp;, #, $, ^, &lt;, &gt;, and -. Other printable special characters cannot be used in the AUTH token. </li> </ul> For more information, see <a href="http://redis.io/commands/AUTH">AUTH password</a> at http://redis.io/commands/AUTH.<br/>SnapshotWindow:  The daily time range (in UTC) during which ElastiCache begins taking a daily snapshot of your node group (shard). Example: <code>05:00-09:00</code>  If you do not specify this parameter, ElastiCache automatically chooses an appropriate time range. <note> This parameter is only valid if the <code>Engine</code> parameter is <code>redis</code>. </note><br/>SnapshotRetentionLimit:  The number of days for which ElastiCache retains automatic snapshots before deleting them. For example, if you set <code>SnapshotRetentionLimit</code> to 5, a snapshot taken today is retained for 5 days before being deleted. <note> This parameter is only valid if the <code>Engine</code> parameter is <code>redis</code>. </note> Default: 0 (i.e., automatic backups are disabled for this cache cluster).<br/>AutoMinorVersionUpgrade:  This parameter is currently disabled.<br/>NotificationTopicArn:  The Amazon Resource Name (ARN) of the Amazon Simple Notification Service (SNS) topic to which notifications are sent. <note> The Amazon SNS topic owner must be the same as the cluster owner. </note><br/>Port:  The port number on which each of the cache nodes accepts connections.<br/>PreferredMaintenanceWindow:  Specifies the weekly time range during which maintenance on the cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period. Valid values for <code>ddd</code> are:<br/>SnapshotName:  The name of a Redis snapshot from which to restore data into the new node group (shard). The snapshot status changes to <code>restoring</code> while the new node group (shard) is being created. <note> This parameter is only valid if the <code>Engine</code> parameter is <code>redis</code>. </note><br/>SnapshotArns:  A single-element string list containing an Amazon Resource Name (ARN) that uniquely identifies a Redis RDB snapshot file stored in Amazon S3. The snapshot file is used to populate the node group (shard). The Amazon S3 object name in the ARN cannot contain any commas. <note> This parameter is only valid if the <code>Engine</code> parameter is <code>redis</code>. </note> Example of an Amazon S3 ARN: <code>arn:aws:s3:::my_bucket/snapshot1.rdb</code> <br/>Tags:  A list of tags to be added to this resource.<br/>SecurityGroupIds:  One or more VPC security groups associated with the cluster. Use this parameter only when you are creating a cluster in an Amazon Virtual Private Cloud (Amazon VPC).<br/>CacheSecurityGroupNames:  A list of security group names to associate with this cluster. Use this parameter only when you are creating a cluster outside of an Amazon Virtual Private Cloud (Amazon VPC).<br/>CacheSubnetGroupName:  The name of the subnet group to be used for the cluster. Use this parameter only when you are creating a cluster in an Amazon Virtual Private Cloud (Amazon VPC). <important> If you're going to launch your cluster in an Amazon VPC, you need to create a subnet group before you start creating a cluster. For more information, see <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/SubnetGroups.html">Subnets and Subnet Groups</a>. </important><br/>CacheParameterGroupName:  The name of the parameter group to associate with this cluster. If this argument is omitted, the default parameter group for the specified engine is used. You cannot use any parameter group which has <code>cluster-enabled='yes'</code> when creating a cluster.<br/>EngineVersion:  The version number of the cache engine to be used for this cluster. To view the supported cache engine versions, use the DescribeCacheEngineVersions operation.  <b>Important:</b> You can upgrade to a newer engine version (see <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/SelectEngine.html#VersionManagement">Selecting a Cache Engine and Version</a>), but you cannot downgrade to an earlier engine version. If you want to use an earlier engine version, you must delete the existing cluster or replication group and create it anew with the earlier engine version. <br/>Engine:  The name of the cache engine to be used for this cluster. Valid values for this parameter are: <code>memcached</code> | <code>redis</code> <br/>CacheNodeType:  The compute and memory capacity of the nodes in the node group (shard). The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts. <ul> <li> General purpose: <ul> <li> Current generation:   <b>M6g node types</b> (available only for Redis engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward).  <code>cache.m6g.large</code>, <code>cache.m6g.xlarge</code>, <code>cache.m6g.2xlarge</code>, <code>cache.m6g.4xlarge</code>, <code>cache.m6g.8xlarge</code>, <code>cache.m6g.12xlarge</code>, <code>cache.m6g.16xlarge</code>  <note> For region availability, see <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion">Supported Node Types</a>  </note>  <b>M5 node types:</b> <code>cache.m5.large</code>, <code>cache.m5.xlarge</code>, <code>cache.m5.2xlarge</code>, <code>cache.m5.4xlarge</code>, <code>cache.m5.12xlarge</code>, <code>cache.m5.24xlarge</code>   <b>M4 node types:</b> <code>cache.m4.large</code>, <code>cache.m4.xlarge</code>, <code>cache.m4.2xlarge</code>, <code>cache.m4.4xlarge</code>, <code>cache.m4.10xlarge</code>   <b>T3 node types:</b> <code>cache.t3.micro</code>, <code>cache.t3.small</code>, <code>cache.t3.medium</code>   <b>T2 node types:</b> <code>cache.t2.micro</code>, <code>cache.t2.small</code>, <code>cache.t2.medium</code>  </li> <li> Previous generation: (not recommended)  <b>T1 node types:</b> <code>cache.t1.micro</code>   <b>M1 node types:</b> <code>cache.m1.small</code>, <code>cache.m1.medium</code>, <code>cache.m1.large</code>, <code>cache.m1.xlarge</code>   <b>M3 node types:</b> <code>cache.m3.medium</code>, <code>cache.m3.large</code>, <code>cache.m3.xlarge</code>, <code>cache.m3.2xlarge</code>  </li> </ul> </li> <li> Compute optimized: <ul> <li> Previous generation: (not recommended)  <b>C1 node types:</b> <code>cache.c1.xlarge</code>  </li> </ul> </li> <li> Memory optimized: <ul> <li> Current generation:   <b>R6g node types</b> (available only for Redis engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward).  <code>cache.r6g.large</code>, <code>cache.r6g.xlarge</code>, <code>cache.r6g.2xlarge</code>, <code>cache.r6g.4xlarge</code>, <code>cache.r6g.8xlarge</code>, <code>cache.r6g.12xlarge</code>, <code>cache.r6g.16xlarge</code>  <note> For region availability, see <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion">Supported Node Types</a>  </note>  <b>R5 node types:</b> <code>cache.r5.large</code>, <code>cache.r5.xlarge</code>, <code>cache.r5.2xlarge</code>, <code>cache.r5.4xlarge</code>, <code>cache.r5.12xlarge</code>, <code>cache.r5.24xlarge</code>   <b>R4 node types:</b> <code>cache.r4.large</code>, <code>cache.r4.xlarge</code>, <code>cache.r4.2xlarge</code>, <code>cache.r4.4xlarge</code>, <code>cache.r4.8xlarge</code>, <code>cache.r4.16xlarge</code>  </li> <li> Previous generation: (not recommended)  <b>M2 node types:</b> <code>cache.m2.xlarge</code>, <code>cache.m2.2xlarge</code>, <code>cache.m2.4xlarge</code>   <b>R3 node types:</b> <code>cache.r3.large</code>, <code>cache.r3.xlarge</code>, <code>cache.r3.2xlarge</code>, <code>cache.r3.4xlarge</code>, <code>cache.r3.8xlarge</code>  </li> </ul> </li> </ul>  <b>Additional node type info</b>  <ul> <li> All current generation instance types are created in Amazon VPC by default. </li> <li> Redis append-only files (AOF) are not supported for T1 or T2 instances. </li> <li> Redis Multi-AZ with automatic failover is not supported on T1 instances. </li> <li> Redis configuration variables <code>appendonly</code> and <code>appendfsync</code> are not supported on Redis version 2.8.22 and later. </li> </ul><br/>NumCacheNodes:  The initial number of cache nodes that the cluster has. For clusters running Redis, this value must be 1. For clusters running Memcached, this value must be between 1 and 40. If you need more than 40 nodes for your Memcached cluster, please fill out the ElastiCache Limit Increase Request form at <a href="http://aws.amazon.com/contact-us/elasticache-node-limit-request/">http://aws.amazon.com/contact-us/elasticache-node-limit-request/</a>.<br/>PreferredAvailabilityZones:  A list of the Availability Zones in which cache nodes are created. The order of the zones in the list is not important. This option is only supported on Memcached. <note> If you are creating your cluster in an Amazon VPC (recommended) you can only locate nodes in Availability Zones that are associated with the subnets in the selected subnet group. The number of Availability Zones listed must equal the value of <code>NumCacheNodes</code>. </note> If you want all the nodes in the same Availability Zone, use <code>PreferredAvailabilityZone</code> instead, or repeat the Availability Zone multiple times in the list. Default: System chosen Availability Zones.<br/>PreferredAvailabilityZone:  The EC2 Availability Zone in which the cluster is created. All nodes belonging to this cluster are placed in the preferred Availability Zone. If you want to create your nodes across multiple Availability Zones, use <code>PreferredAvailabilityZones</code>. Default: System chosen Availability Zone.<br/>AZMode:  Specifies whether the nodes in this Memcached cluster are created in a single Availability Zone or created across multiple Availability Zones in the cluster's region. This parameter is only supported for Memcached clusters. If the <code>AZMode</code> and <code>PreferredAvailabilityZones</code> are not specified, ElastiCache assumes <code>single-az</code> mode.<br/>ReplicationGroupId:  The ID of the replication group to which this cluster should belong. If this parameter is specified, the cluster is added to the specified replication group as a read replica; otherwise, the cluster is a standalone primary that is not part of any replication group. If the specified replication group is Multi-AZ enabled and the Availability Zone is not specified, the cluster is created in Availability Zones that provide the best spread of read replicas across Availability Zones. <note> This parameter is only valid if the <code>Engine</code> parameter is <code>redis</code>. </note><br/>CacheClusterId:  The node group (shard) identifier. This parameter is stored as a lowercase string.  <b>Constraints:</b>  <ul> <li> A name must contain from 1 to 50 alphanumeric characters or hyphens. </li> <li> The first character must be a letter. </li> <li> A name cannot end with a hyphen or contain two consecutive hyphens. </li> </ul><br/>
        :return: CacheCluster:  Contains all of the attributes of a specific cluster.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogDeliveryConfigurations</i> Returns the destination, format and type of the logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationGroupLogDeliveryEnabled</i> A boolean value indicating whether log delivery is enabled for the replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ARN</i> The ARN (Amazon Resource Name) of the cache cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AtRestEncryptionEnabled</i> A flag that enables encryption at-rest when set to <code>true</code>. You cannot modify the value of <code>AtRestEncryptionEnabled</code> after the cluster is created. To enable at-rest encryption on a cluster you must set <code>AtRestEncryptionEnabled</code> to <code>true</code> when you create a cluster.  <b>Required:</b> Only available when creating a replication group in an Amazon VPC using redis version <code>3.2.6</code>, <code>4.x</code> or later. Default: <code>false</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitEncryptionEnabled</i> A flag that enables in-transit encryption when set to <code>true</code>. You cannot modify the value of <code>TransitEncryptionEnabled</code> after the cluster is created. To enable in-transit encryption on a cluster you must set <code>TransitEncryptionEnabled</code> to <code>true</code> when you create a cluster.  <b>Required:</b> Only available when creating a replication group in an Amazon VPC using redis version <code>3.2.6</code>, <code>4.x</code> or later. Default: <code>false</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AuthTokenLastModifiedDate</i> The date the auth token was last modified<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AuthTokenEnabled</i> A flag that enables using an <code>AuthToken</code> (password) when issuing Redis commands. Default: <code>false</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotWindow</i> The daily time range (in UTC) during which ElastiCache begins taking a daily snapshot of your cluster. Example: <code>05:00-09:00</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotRetentionLimit</i> The number of days for which ElastiCache retains automatic cluster snapshots before deleting them. For example, if you set <code>SnapshotRetentionLimit</code> to 5, a snapshot that was taken today is retained for 5 days before being deleted. <important>  If the value of SnapshotRetentionLimit is set to zero (0), backups are turned off. </important><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationGroupId</i> The replication group to which this cluster belongs. If this field is empty, the cluster is not associated with any replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroups</i> A list of VPC Security Groups associated with the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoMinorVersionUpgrade</i> This parameter is currently disabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheNodes</i> A list of cache nodes that are members of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheSubnetGroupName</i> The name of the cache subnet group associated with the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheParameterGroup</i> Status of the cache parameter group.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CacheParameterGroup</b>: Status of the cache parameter group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheSecurityGroups</i> A list of cache security group elements, composed of name and status sub-elements.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NotificationConfiguration</i> Describes a notification topic and its status. Notification topics are used for publishing ElastiCache events to subscribers using Amazon Simple Notification Service (SNS). &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>NotificationConfiguration</b>: Describes a notification topic and its status. Notification topics are used for publishing ElastiCache events to subscribers using Amazon Simple Notification Service (SNS). <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingModifiedValues</i> A group of settings that are applied to the cluster in the future, or that are currently being applied.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingModifiedValues</b>: A group of settings that are applied to the cluster in the future, or that are currently being applied.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i> Specifies the weekly time range during which maintenance on the cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period. Valid values for <code>ddd</code> are: <ul> <li>  <code>sun</code>  </li> <li>  <code>mon</code>  </li> <li>  <code>tue</code>  </li> <li>  <code>wed</code>  </li> <li>  <code>thu</code>  </li> <li>  <code>fri</code>  </li> <li>  <code>sat</code>  </li> </ul> Example: <code>sun:23:00-mon:01:30</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheClusterCreateTime</i> The date and time when the cluster was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredOutpostArn</i> The outpost ARN in which the cache cluster is created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredAvailabilityZone</i> The name of the Availability Zone in which the cluster is located or "Multiple" if the cache nodes are located in different Availability Zones.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NumCacheNodes</i> The number of cache nodes in the cluster. For clusters running Redis, this value must be 1. For clusters running Memcached, this value must be between 1 and 40.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheClusterStatus</i> The current state of this cluster, one of the following values: <code>available</code>, <code>creating</code>, <code>deleted</code>, <code>deleting</code>, <code>incompatible-network</code>, <code>modifying</code>, <code>rebooting cluster nodes</code>, <code>restore-failed</code>, or <code>snapshotting</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> The version of the cache engine that is used in this cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> The name of the cache engine (<code>memcached</code> or <code>redis</code>) to be used for this cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheNodeType</i> The name of the compute and memory capacity node type for the cluster. The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts. <ul> <li> General purpose: <ul> <li> Current generation:   <b>M6g node types</b> (available only for Redis engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward).  <code>cache.m6g.large</code>, <code>cache.m6g.xlarge</code>, <code>cache.m6g.2xlarge</code>, <code>cache.m6g.4xlarge</code>, <code>cache.m6g.8xlarge</code>, <code>cache.m6g.12xlarge</code>, <code>cache.m6g.16xlarge</code>  <note> For region availability, see <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion">Supported Node Types</a>  </note>  <b>M5 node types:</b> <code>cache.m5.large</code>, <code>cache.m5.xlarge</code>, <code>cache.m5.2xlarge</code>, <code>cache.m5.4xlarge</code>, <code>cache.m5.12xlarge</code>, <code>cache.m5.24xlarge</code>   <b>M4 node types:</b> <code>cache.m4.large</code>, <code>cache.m4.xlarge</code>, <code>cache.m4.2xlarge</code>, <code>cache.m4.4xlarge</code>, <code>cache.m4.10xlarge</code>   <b>T3 node types:</b> <code>cache.t3.micro</code>, <code>cache.t3.small</code>, <code>cache.t3.medium</code>   <b>T2 node types:</b> <code>cache.t2.micro</code>, <code>cache.t2.small</code>, <code>cache.t2.medium</code>  </li> <li> Previous generation: (not recommended)  <b>T1 node types:</b> <code>cache.t1.micro</code>   <b>M1 node types:</b> <code>cache.m1.small</code>, <code>cache.m1.medium</code>, <code>cache.m1.large</code>, <code>cache.m1.xlarge</code>   <b>M3 node types:</b> <code>cache.m3.medium</code>, <code>cache.m3.large</code>, <code>cache.m3.xlarge</code>, <code>cache.m3.2xlarge</code>  </li> </ul> </li> <li> Compute optimized: <ul> <li> Previous generation: (not recommended)  <b>C1 node types:</b> <code>cache.c1.xlarge</code>  </li> </ul> </li> <li> Memory optimized: <ul> <li> Current generation:   <b>R6g node types</b> (available only for Redis engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward).  <code>cache.r6g.large</code>, <code>cache.r6g.xlarge</code>, <code>cache.r6g.2xlarge</code>, <code>cache.r6g.4xlarge</code>, <code>cache.r6g.8xlarge</code>, <code>cache.r6g.12xlarge</code>, <code>cache.r6g.16xlarge</code>  <note> For region availability, see <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion">Supported Node Types</a>  </note>  <b>R5 node types:</b> <code>cache.r5.large</code>, <code>cache.r5.xlarge</code>, <code>cache.r5.2xlarge</code>, <code>cache.r5.4xlarge</code>, <code>cache.r5.12xlarge</code>, <code>cache.r5.24xlarge</code>   <b>R4 node types:</b> <code>cache.r4.large</code>, <code>cache.r4.xlarge</code>, <code>cache.r4.2xlarge</code>, <code>cache.r4.4xlarge</code>, <code>cache.r4.8xlarge</code>, <code>cache.r4.16xlarge</code>  </li> <li> Previous generation: (not recommended)  <b>M2 node types:</b> <code>cache.m2.xlarge</code>, <code>cache.m2.2xlarge</code>, <code>cache.m2.4xlarge</code>   <b>R3 node types:</b> <code>cache.r3.large</code>, <code>cache.r3.xlarge</code>, <code>cache.r3.2xlarge</code>, <code>cache.r3.4xlarge</code>, <code>cache.r3.8xlarge</code>  </li> </ul> </li> </ul>  <b>Additional node type info</b>  <ul> <li> All current generation instance types are created in Amazon VPC by default. </li> <li> Redis append-only files (AOF) are not supported for T1 or T2 instances. </li> <li> Redis Multi-AZ with automatic failover is not supported on T1 instances. </li> <li> Redis configuration variables <code>appendonly</code> and <code>appendfsync</code> are not supported on Redis version 2.8.22 and later. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClientDownloadLandingPage</i> The URL of the web page where you can download the latest ElastiCache client library.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConfigurationEndpoint</i> Represents a Memcached cluster endpoint which can be used by an application to connect to any node in the cluster. The configuration endpoint will always have <code>.cfg</code> in it. Example: <code>mem-3.9dvc4r<u>.cfg</u>.usw2.cache.amazonaws.com:11211</code> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ConfigurationEndpoint</b>: Represents a Memcached cluster endpoint which can be used by an application to connect to any node in the cluster. The configuration endpoint will always have <code>.cfg</code> in it. Example: <code>mem-3.9dvc4r<u>.cfg</u>.usw2.cache.amazonaws.com:11211</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheClusterId</i> The user-supplied identifier of the cluster. This identifier is a unique key that identifies a cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> The port number that the cache engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Address</i> The DNS hostname of the cache node.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LogDeliveryConfigurations</i> The log delivery configurations being modified <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AuthTokenStatus</i> The auth token status<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheNodeType</i> The cache node type that this cluster or replication group is scaled to.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> The new cache engine version that the cluster runs.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheNodeIdsToRemove</i> A list of cache node IDs that are being removed (or will be removed) from the cluster. A node ID is a 4-digit numeric identifier (0001, 0002, etc.).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NumCacheNodes</i> The new number of cache nodes for the cluster. For clusters running Redis, this value must be 1. For clusters running Memcached, this value must be between 1 and 40.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TopicStatus</i> The current state of the topic.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TopicArn</i> The Amazon Resource Name (ARN) that identifies the topic.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheNodeIdsToReboot</i> A list of the cache node IDs which need to be rebooted for parameter changes to be applied. A node ID is a numeric identifier (0001, 0002, etc.).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ParameterApplyStatus</i> The status of parameter updates.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheParameterGroupName</i> The name of the cache parameter group.<br/>        """
        pass

    def create_cache_parameter_group(self, Description: str, CacheParameterGroupFamily: str, CacheParameterGroupName: str, Tags: List[Tag]=None) -> CreateCacheParameterGroupResult:
        r"""Creates a new Amazon ElastiCache cache parameter group. An ElastiCache cache parameter group is a collection of parameters and their values that are applied to all of the nodes in any cluster or replication group using the CacheParameterGroup. A newly created CacheParameterGroup is an exact duplicate of the default parameter group for the CacheParameterGroupFamily. To customize the newly created CacheParameterGroup you can change the values of specific parameters. For more information, see: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyCacheParameterGroup.html">ModifyCacheParameterGroup</a> in the ElastiCache API Reference. </li> <li>  <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/ParameterGroups.html">Parameters and Parameter Groups</a> in the ElastiCache User Guide. </li> </ul>

        :param self:
        :param Tags:  A list of tags to be added to this resource. A tag is a key-value pair. A tag key must be accompanied by a tag value, although null is accepted.<br/>Description:  A user-specified description for the cache parameter group.<br/>CacheParameterGroupFamily:  The name of the cache parameter group family that the cache parameter group can be used with. Valid values are: <code>memcached1.4</code> | <code>memcached1.5</code> | <code>memcached1.6</code> | <code>redis2.6</code> | <code>redis2.8</code> | <code>redis3.2</code> | <code>redis4.0</code> | <code>redis5.0</code> | <code>redis6.x</code> | <br/>CacheParameterGroupName:  A user-specified name for the cache parameter group.<br/>
        :return: CacheParameterGroup:  Represents the output of a <code>CreateCacheParameterGroup</code> operation.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ARN</i> The ARN (Amazon Resource Name) of the cache parameter group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsGlobal</i> Indicates whether the parameter group is associated with a Global datastore<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description for this cache parameter group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheParameterGroupFamily</i> The name of the cache parameter group family that this cache parameter group is compatible with. Valid values are: <code>memcached1.4</code> | <code>memcached1.5</code> | <code>memcached1.6</code> | <code>redis2.6</code> | <code>redis2.8</code> | <code>redis3.2</code> | <code>redis4.0</code> | <code>redis5.0</code> | <code>redis6.x</code> | <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheParameterGroupName</i> The name of the cache parameter group.<br/>        """
        pass

    def create_cache_security_group(self, Description: str, CacheSecurityGroupName: str, Tags: List[Tag]=None) -> CreateCacheSecurityGroupResult:
        r"""Creates a new cache security group. Use a cache security group to control access to one or more clusters. Cache security groups are only used when you are creating a cluster outside of an Amazon Virtual Private Cloud (Amazon VPC). If you are creating a cluster inside of a VPC, use a cache subnet group instead. For more information, see <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_CreateCacheSubnetGroup.html">CreateCacheSubnetGroup</a>.

        :param self:
        :param Tags:  A list of tags to be added to this resource. A tag is a key-value pair. A tag key must be accompanied by a tag value, although null is accepted.<br/>Description:  A description for the cache security group.<br/>CacheSecurityGroupName:  A name for the cache security group. This value is stored as a lowercase string. Constraints: Must contain no more than 255 alphanumeric characters. Cannot be the word "Default". Example: <code>mysecuritygroup</code> <br/>
        :return: CacheSecurityGroup:  Represents the output of one of the following operations: <ul> <li>  <code>AuthorizeCacheSecurityGroupIngress</code>  </li> <li>  <code>CreateCacheSecurityGroup</code>  </li> <li>  <code>RevokeCacheSecurityGroupIngress</code>  </li> </ul>:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ARN</i> The ARN of the cache security group,<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EC2SecurityGroups</i> A list of Amazon EC2 security groups that are associated with this cache security group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the cache security group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheSecurityGroupName</i> The name of the cache security group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> The AWS account ID of the cache security group owner.<br/>        """
        pass

    def create_cache_subnet_group(self, SubnetIds: List[String], CacheSubnetGroupDescription: str, CacheSubnetGroupName: str, Tags: List[Tag]=None) -> CreateCacheSubnetGroupResult:
        r"""Creates a new cache subnet group. Use this parameter only when you are creating a cluster in an Amazon Virtual Private Cloud (Amazon VPC).

        :param self:
        :param Tags:  A list of tags to be added to this resource. A tag is a key-value pair. A tag key must be accompanied by a tag value, although null is accepted.<br/>SubnetIds:  A list of VPC subnet IDs for the cache subnet group.<br/>CacheSubnetGroupDescription:  A description for the cache subnet group.<br/>CacheSubnetGroupName:  A name for the cache subnet group. This value is stored as a lowercase string. Constraints: Must contain no more than 255 alphanumeric characters or hyphens. Example: <code>mysubnetgroup</code> <br/>
        :return: CacheSubnetGroup:  Represents the output of one of the following operations: <ul> <li>  <code>CreateCacheSubnetGroup</code>  </li> <li>  <code>ModifyCacheSubnetGroup</code>  </li> </ul>:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ARN</i> The ARN (Amazon Resource Name) of the cache subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Subnets</i> A list of subnets associated with the cache subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The Amazon Virtual Private Cloud identifier (VPC ID) of the cache subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheSubnetGroupDescription</i> The description of the cache subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheSubnetGroupName</i> The name of the cache subnet group.<br/>        """
        pass

    def create_global_replication_group(self, PrimaryReplicationGroupId: str, GlobalReplicationGroupIdSuffix: str, GlobalReplicationGroupDescription: str=None) -> CreateGlobalReplicationGroupResult:
        r"""Global Datastore for Redis offers fully managed, fast, reliable and secure cross-region replication. Using Global Datastore for Redis, you can create cross-region read replica clusters for ElastiCache for Redis to enable low-latency reads and disaster recovery across regions. For more information, see <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Redis-Global-Datastore.html">Replication Across Regions Using Global Datastore</a>.  <ul> <li> The <b>GlobalReplicationGroupIdSuffix</b> is the name of the Global datastore. </li> <li> The <b>PrimaryReplicationGroupId</b> represents the name of the primary cluster that accepts writes and will replicate updates to the secondary cluster. </li> </ul>

        :param self:
        :param PrimaryReplicationGroupId:  The name of the primary cluster that accepts writes and will replicate updates to the secondary cluster.<br/>GlobalReplicationGroupDescription:  Provides details of the Global datastore<br/>GlobalReplicationGroupIdSuffix:  The suffix name of a Global datastore. Amazon ElastiCache automatically applies a prefix to the Global datastore ID when it is created. Each AWS Region has its own prefix. For instance, a Global datastore ID created in the US-West-1 region will begin with "dsdfu" along with the suffix name you provide. The suffix, combined with the auto-generated prefix, guarantees uniqueness of the Global datastore name across multiple regions.  For a full list of AWS Regions and their respective Global datastore iD prefixes, see <a href="http://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Redis-Global-Datastores-CLI.html">Using the AWS CLI with Global datastores </a>.<br/>
        :return: GlobalReplicationGroup:  Consists of a primary cluster that accepts writes and an associated secondary cluster that resides in a different AWS region. The secondary cluster accepts only reads. The primary cluster automatically replicates updates to the secondary cluster. <ul> <li> The <b>GlobalReplicationGroupIdSuffix</b> represents the name of the Global datastore, which is what you use to associate a secondary cluster. </li> </ul>:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ARN</i> The ARN (Amazon Resource Name) of the global replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AtRestEncryptionEnabled</i> A flag that enables encryption at rest when set to <code>true</code>. You cannot modify the value of <code>AtRestEncryptionEnabled</code> after the replication group is created. To enable encryption at rest on a replication group you must set <code>AtRestEncryptionEnabled</code> to <code>true</code> when you create the replication group.   <b>Required:</b> Only available when creating a replication group in an Amazon VPC using redis version <code>3.2.6</code>, <code>4.x</code> or later.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitEncryptionEnabled</i> A flag that enables in-transit encryption when set to true. You cannot modify the value of <code>TransitEncryptionEnabled</code> after the cluster is created. To enable in-transit encryption on a cluster you must set <code>TransitEncryptionEnabled</code> to true when you create a cluster.   <b>Required:</b> Only available when creating a replication group in an Amazon VPC using redis version <code>3.2.6</code>, <code>4.x</code> or later.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AuthTokenEnabled</i> A flag that enables using an <code>AuthToken</code> (password) when issuing Redis commands. Default: <code>false</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalNodeGroups</i> Indicates the slot configuration and global identifier for each slice group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterEnabled</i> A flag that indicates whether the Global datastore is cluster enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Members</i> The replication groups that comprise the Global datastore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> The Elasticache Redis engine version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> The Elasticache engine. For Redis only.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheNodeType</i> The cache node type of the Global datastore<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the Global datastore<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalReplicationGroupDescription</i> The optional description of the Global datastore<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalReplicationGroupId</i> The name of the Global datastore<br/>        """
        pass

    def create_replication_group(self, ReplicationGroupDescription: str, ReplicationGroupId: str, GlobalReplicationGroupId: str=None, PrimaryClusterId: str=None, AutomaticFailoverEnabled: BooleanOptional=None, MultiAZEnabled: BooleanOptional=None, NumCacheClusters: int=None, PreferredCacheClusterAZs: List[String]=None, NumNodeGroups: int=None, ReplicasPerNodeGroup: int=None, NodeGroupConfiguration: List[NodeGroupConfiguration]=None, CacheNodeType: str=None, Engine: str=None, EngineVersion: str=None, CacheParameterGroupName: str=None, CacheSubnetGroupName: str=None, CacheSecurityGroupNames: List[String]=None, SecurityGroupIds: List[String]=None, Tags: List[Tag]=None, SnapshotArns: List[String]=None, SnapshotName: str=None, PreferredMaintenanceWindow: str=None, Port: int=None, NotificationTopicArn: str=None, AutoMinorVersionUpgrade: BooleanOptional=None, SnapshotRetentionLimit: int=None, SnapshotWindow: str=None, AuthToken: str=None, TransitEncryptionEnabled: BooleanOptional=None, AtRestEncryptionEnabled: BooleanOptional=None, KmsKeyId: str=None, UserGroupIds: List[UserGroupId]=None, LogDeliveryConfigurations: List[LogDeliveryConfigurationRequest]=None) -> CreateReplicationGroupResult:
        r"""Creates a Redis (cluster mode disabled) or a Redis (cluster mode enabled) replication group. This API can be used to create a standalone regional replication group or a secondary replication group associated with a Global datastore. A Redis (cluster mode disabled) replication group is a collection of clusters, where one of the clusters is a read/write primary and the others are read-only replicas. Writes to the primary are asynchronously propagated to the replicas. A Redis cluster-mode enabled cluster is comprised of from 1 to 90 shards (API/CLI: node groups). Each shard has a primary node and up to 5 read-only replica nodes. The configuration can range from 90 shards and 0 replicas to 15 shards and 5 replicas, which is the maximum number or replicas allowed.  The node or shard limit can be increased to a maximum of 500 per cluster if the Redis engine version is 5.0.6 or higher. For example, you can choose to configure a 500 node cluster that ranges between 83 shards (one primary and 5 replicas per shard) and 500 shards (single primary and no replicas). Make sure there are enough available IP addresses to accommodate the increase. Common pitfalls include the subnets in the subnet group have too small a CIDR range or the subnets are shared and heavily used by other clusters. For more information, see <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/SubnetGroups.Creating.html">Creating a Subnet Group</a>. For versions below 5.0.6, the limit is 250 per cluster. To request a limit increase, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html">AWS Service Limits</a> and choose the limit type <b>Nodes per cluster per instance type</b>.  When a Redis (cluster mode disabled) replication group has been successfully created, you can add one or more read replicas to it, up to a total of 5 read replicas. If you need to increase or decrease the number of node groups (console: shards), you can avail yourself of ElastiCache for Redis' scaling. For more information, see <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Scaling.html">Scaling ElastiCache for Redis Clusters</a> in the <i>ElastiCache User Guide</i>. <note> This operation is valid for Redis only. </note>

        :param self:
        :param LogDeliveryConfigurations:  Specifies the destination, format and type of the logs.<br/>UserGroupIds:  The user group to associate with the replication group.<br/>KmsKeyId:  The ID of the KMS key used to encrypt the disk in the cluster.<br/>AtRestEncryptionEnabled:  A flag that enables encryption at rest when set to <code>true</code>. You cannot modify the value of <code>AtRestEncryptionEnabled</code> after the replication group is created. To enable encryption at rest on a replication group you must set <code>AtRestEncryptionEnabled</code> to <code>true</code> when you create the replication group.   <b>Required:</b> Only available when creating a replication group in an Amazon VPC using redis version <code>3.2.6</code>, <code>4.x</code> or later. Default: <code>false</code> <br/>TransitEncryptionEnabled:  A flag that enables in-transit encryption when set to <code>true</code>. You cannot modify the value of <code>TransitEncryptionEnabled</code> after the cluster is created. To enable in-transit encryption on a cluster you must set <code>TransitEncryptionEnabled</code> to <code>true</code> when you create a cluster. This parameter is valid only if the <code>Engine</code> parameter is <code>redis</code>, the <code>EngineVersion</code> parameter is <code>3.2.6</code>, <code>4.x</code> or later, and the cluster is being created in an Amazon VPC. If you enable in-transit encryption, you must also specify a value for <code>CacheSubnetGroup</code>.  <b>Required:</b> Only available when creating a replication group in an Amazon VPC using redis version <code>3.2.6</code>, <code>4.x</code> or later. Default: <code>false</code>  <important> For HIPAA compliance, you must specify <code>TransitEncryptionEnabled</code> as <code>true</code>, an <code>AuthToken</code>, and a <code>CacheSubnetGroup</code>. </important><br/>AuthToken:   <b>Reserved parameter.</b> The password used to access a password protected server.  <code>AuthToken</code> can be specified only on replication groups where <code>TransitEncryptionEnabled</code> is <code>true</code>. <important> For HIPAA compliance, you must specify <code>TransitEncryptionEnabled</code> as <code>true</code>, an <code>AuthToken</code>, and a <code>CacheSubnetGroup</code>. </important> Password constraints: <ul> <li> Must be only printable ASCII characters. </li> <li> Must be at least 16 characters and no more than 128 characters in length. </li> <li> The only permitted printable special characters are !, &amp;, #, $, ^, &lt;, &gt;, and -. Other printable special characters cannot be used in the AUTH token. </li> </ul> For more information, see <a href="http://redis.io/commands/AUTH">AUTH password</a> at http://redis.io/commands/AUTH.<br/>SnapshotWindow:  The daily time range (in UTC) during which ElastiCache begins taking a daily snapshot of your node group (shard). Example: <code>05:00-09:00</code>  If you do not specify this parameter, ElastiCache automatically chooses an appropriate time range.<br/>SnapshotRetentionLimit:  The number of days for which ElastiCache retains automatic snapshots before deleting them. For example, if you set <code>SnapshotRetentionLimit</code> to 5, a snapshot that was taken today is retained for 5 days before being deleted. Default: 0 (i.e., automatic backups are disabled for this cluster).<br/>AutoMinorVersionUpgrade:  This parameter is currently disabled.<br/>NotificationTopicArn:  The Amazon Resource Name (ARN) of the Amazon Simple Notification Service (SNS) topic to which notifications are sent. <note> The Amazon SNS topic owner must be the same as the cluster owner. </note><br/>Port:  The port number on which each member of the replication group accepts connections.<br/>PreferredMaintenanceWindow:  Specifies the weekly time range during which maintenance on the cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period. Valid values for <code>ddd</code> are: Specifies the weekly time range during which maintenance on the cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period. Valid values for <code>ddd</code> are: <ul> <li>  <code>sun</code>  </li> <li>  <code>mon</code>  </li> <li>  <code>tue</code>  </li> <li>  <code>wed</code>  </li> <li>  <code>thu</code>  </li> <li>  <code>fri</code>  </li> <li>  <code>sat</code>  </li> </ul> Example: <code>sun:23:00-mon:01:30</code> <br/>SnapshotName:  The name of a snapshot from which to restore data into the new replication group. The snapshot status changes to <code>restoring</code> while the new replication group is being created.<br/>SnapshotArns:  A list of Amazon Resource Names (ARN) that uniquely identify the Redis RDB snapshot files stored in Amazon S3. The snapshot files are used to populate the new replication group. The Amazon S3 object name in the ARN cannot contain any commas. The new replication group will have the number of node groups (console: shards) specified by the parameter <i>NumNodeGroups</i> or the number of node groups configured by <i>NodeGroupConfiguration</i> regardless of the number of ARNs specified here. Example of an Amazon S3 ARN: <code>arn:aws:s3:::my_bucket/snapshot1.rdb</code> <br/>Tags:  A list of tags to be added to this resource. Tags are comma-separated key,value pairs (e.g. Key=<code>myKey</code>, Value=<code>myKeyValue</code>. You can include multiple tags as shown following: Key=<code>myKey</code>, Value=<code>myKeyValue</code> Key=<code>mySecondKey</code>, Value=<code>mySecondKeyValue</code>. Tags on replication groups will be replicated to all nodes.<br/>SecurityGroupIds:  One or more Amazon VPC security groups associated with this replication group. Use this parameter only when you are creating a replication group in an Amazon Virtual Private Cloud (Amazon VPC).<br/>CacheSecurityGroupNames:  A list of cache security group names to associate with this replication group.<br/>CacheSubnetGroupName:  The name of the cache subnet group to be used for the replication group. <important> If you're going to launch your cluster in an Amazon VPC, you need to create a subnet group before you start creating a cluster. For more information, see <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/SubnetGroups.html">Subnets and Subnet Groups</a>. </important><br/>CacheParameterGroupName:  The name of the parameter group to associate with this replication group. If this argument is omitted, the default cache parameter group for the specified engine is used. If you are running Redis version 3.2.4 or later, only one node group (shard), and want to use a default parameter group, we recommend that you specify the parameter group by name.  <ul> <li> To create a Redis (cluster mode disabled) replication group, use <code>CacheParameterGroupName=default.redis3.2</code>. </li> <li> To create a Redis (cluster mode enabled) replication group, use <code>CacheParameterGroupName=default.redis3.2.cluster.on</code>. </li> </ul><br/>EngineVersion:  The version number of the cache engine to be used for the clusters in this replication group. To view the supported cache engine versions, use the <code>DescribeCacheEngineVersions</code> operation.  <b>Important:</b> You can upgrade to a newer engine version (see <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/SelectEngine.html#VersionManagement">Selecting a Cache Engine and Version</a>) in the <i>ElastiCache User Guide</i>, but you cannot downgrade to an earlier engine version. If you want to use an earlier engine version, you must delete the existing cluster or replication group and create it anew with the earlier engine version. <br/>Engine:  The name of the cache engine to be used for the clusters in this replication group. Must be Redis.<br/>CacheNodeType:  The compute and memory capacity of the nodes in the node group (shard). The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts. <ul> <li> General purpose: <ul> <li> Current generation:   <b>M6g node types</b> (available only for Redis engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward).  <code>cache.m6g.large</code>, <code>cache.m6g.xlarge</code>, <code>cache.m6g.2xlarge</code>, <code>cache.m6g.4xlarge</code>, <code>cache.m6g.8xlarge</code>, <code>cache.m6g.12xlarge</code>, <code>cache.m6g.16xlarge</code>  <note> For region availability, see <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion">Supported Node Types</a>  </note>  <b>M5 node types:</b> <code>cache.m5.large</code>, <code>cache.m5.xlarge</code>, <code>cache.m5.2xlarge</code>, <code>cache.m5.4xlarge</code>, <code>cache.m5.12xlarge</code>, <code>cache.m5.24xlarge</code>   <b>M4 node types:</b> <code>cache.m4.large</code>, <code>cache.m4.xlarge</code>, <code>cache.m4.2xlarge</code>, <code>cache.m4.4xlarge</code>, <code>cache.m4.10xlarge</code>   <b>T3 node types:</b> <code>cache.t3.micro</code>, <code>cache.t3.small</code>, <code>cache.t3.medium</code>   <b>T2 node types:</b> <code>cache.t2.micro</code>, <code>cache.t2.small</code>, <code>cache.t2.medium</code>  </li> <li> Previous generation: (not recommended)  <b>T1 node types:</b> <code>cache.t1.micro</code>   <b>M1 node types:</b> <code>cache.m1.small</code>, <code>cache.m1.medium</code>, <code>cache.m1.large</code>, <code>cache.m1.xlarge</code>   <b>M3 node types:</b> <code>cache.m3.medium</code>, <code>cache.m3.large</code>, <code>cache.m3.xlarge</code>, <code>cache.m3.2xlarge</code>  </li> </ul> </li> <li> Compute optimized: <ul> <li> Previous generation: (not recommended)  <b>C1 node types:</b> <code>cache.c1.xlarge</code>  </li> </ul> </li> <li> Memory optimized: <ul> <li> Current generation:   <b>R6g node types</b> (available only for Redis engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward).  <code>cache.r6g.large</code>, <code>cache.r6g.xlarge</code>, <code>cache.r6g.2xlarge</code>, <code>cache.r6g.4xlarge</code>, <code>cache.r6g.8xlarge</code>, <code>cache.r6g.12xlarge</code>, <code>cache.r6g.16xlarge</code>  <note> For region availability, see <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion">Supported Node Types</a>  </note>  <b>R5 node types:</b> <code>cache.r5.large</code>, <code>cache.r5.xlarge</code>, <code>cache.r5.2xlarge</code>, <code>cache.r5.4xlarge</code>, <code>cache.r5.12xlarge</code>, <code>cache.r5.24xlarge</code>   <b>R4 node types:</b> <code>cache.r4.large</code>, <code>cache.r4.xlarge</code>, <code>cache.r4.2xlarge</code>, <code>cache.r4.4xlarge</code>, <code>cache.r4.8xlarge</code>, <code>cache.r4.16xlarge</code>  </li> <li> Previous generation: (not recommended)  <b>M2 node types:</b> <code>cache.m2.xlarge</code>, <code>cache.m2.2xlarge</code>, <code>cache.m2.4xlarge</code>   <b>R3 node types:</b> <code>cache.r3.large</code>, <code>cache.r3.xlarge</code>, <code>cache.r3.2xlarge</code>, <code>cache.r3.4xlarge</code>, <code>cache.r3.8xlarge</code>  </li> </ul> </li> </ul>  <b>Additional node type info</b>  <ul> <li> All current generation instance types are created in Amazon VPC by default. </li> <li> Redis append-only files (AOF) are not supported for T1 or T2 instances. </li> <li> Redis Multi-AZ with automatic failover is not supported on T1 instances. </li> <li> Redis configuration variables <code>appendonly</code> and <code>appendfsync</code> are not supported on Redis version 2.8.22 and later. </li> </ul><br/>NodeGroupConfiguration:  A list of node group (shard) configuration options. Each node group (shard) configuration has the following members: <code>PrimaryAvailabilityZone</code>, <code>ReplicaAvailabilityZones</code>, <code>ReplicaCount</code>, and <code>Slots</code>. If you're creating a Redis (cluster mode disabled) or a Redis (cluster mode enabled) replication group, you can use this parameter to individually configure each node group (shard), or you can omit this parameter. However, it is required when seeding a Redis (cluster mode enabled) cluster from a S3 rdb file. You must configure each node group (shard) using this parameter because you must specify the slots for each node group.<br/>ReplicasPerNodeGroup:  An optional parameter that specifies the number of replica nodes in each node group (shard). Valid values are 0 to 5.<br/>NumNodeGroups:  An optional parameter that specifies the number of node groups (shards) for this Redis (cluster mode enabled) replication group. For Redis (cluster mode disabled) either omit this parameter or set it to 1. Default: 1<br/>PreferredCacheClusterAZs:  A list of EC2 Availability Zones in which the replication group's clusters are created. The order of the Availability Zones in the list is the order in which clusters are allocated. The primary cluster is created in the first AZ in the list. This parameter is not used if there is more than one node group (shard). You should use <code>NodeGroupConfiguration</code> instead. <note> If you are creating your replication group in an Amazon VPC (recommended), you can only locate clusters in Availability Zones associated with the subnets in the selected subnet group. The number of Availability Zones listed must equal the value of <code>NumCacheClusters</code>. </note> Default: system chosen Availability Zones.<br/>NumCacheClusters:  The number of clusters this replication group initially has. This parameter is not used if there is more than one node group (shard). You should use <code>ReplicasPerNodeGroup</code> instead. If <code>AutomaticFailoverEnabled</code> is <code>true</code>, the value of this parameter must be at least 2. If <code>AutomaticFailoverEnabled</code> is <code>false</code> you can omit this parameter (it will default to 1), or you can explicitly set it to a value between 2 and 6. The maximum permitted value for <code>NumCacheClusters</code> is 6 (1 primary plus 5 replicas).<br/>MultiAZEnabled:  A flag indicating if you have Multi-AZ enabled to enhance fault tolerance. For more information, see <a href="http://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/AutoFailover.html">Minimizing Downtime: Multi-AZ</a>.<br/>AutomaticFailoverEnabled:  Specifies whether a read-only replica is automatically promoted to read/write primary if the existing primary fails.  <code>AutomaticFailoverEnabled</code> must be enabled for Redis (cluster mode enabled) replication groups. Default: false<br/>PrimaryClusterId:  The identifier of the cluster that serves as the primary for this replication group. This cluster must already exist and have a status of <code>available</code>. This parameter is not required if <code>NumCacheClusters</code>, <code>NumNodeGroups</code>, or <code>ReplicasPerNodeGroup</code> is specified.<br/>GlobalReplicationGroupId:  The name of the Global datastore<br/>ReplicationGroupDescription:  A user-created description for the replication group.<br/>ReplicationGroupId:  The replication group identifier. This parameter is stored as a lowercase string. Constraints: <ul> <li> A name must contain from 1 to 40 alphanumeric characters or hyphens. </li> <li> The first character must be a letter. </li> <li> A name cannot end with a hyphen or contain two consecutive hyphens. </li> </ul><br/>
        :return: ReplicationGroup:  Contains all of the attributes of a specific Redis replication group.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogDeliveryConfigurations</i> Returns the destination, format and type of the logs. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserGroupIds</i> The list of user group IDs that have access to the replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ARN</i> The ARN (Amazon Resource Name) of the replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The ID of the KMS key used to encrypt the disk in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MemberClustersOutpostArns</i> The outpost ARNs of the replication group's member clusters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AtRestEncryptionEnabled</i> A flag that enables encryption at-rest when set to <code>true</code>. You cannot modify the value of <code>AtRestEncryptionEnabled</code> after the cluster is created. To enable encryption at-rest on a cluster you must set <code>AtRestEncryptionEnabled</code> to <code>true</code> when you create a cluster.  <b>Required:</b> Only available when creating a replication group in an Amazon VPC using redis version <code>3.2.6</code>, <code>4.x</code> or later. Default: <code>false</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitEncryptionEnabled</i> A flag that enables in-transit encryption when set to <code>true</code>. You cannot modify the value of <code>TransitEncryptionEnabled</code> after the cluster is created. To enable in-transit encryption on a cluster you must set <code>TransitEncryptionEnabled</code> to <code>true</code> when you create a cluster.  <b>Required:</b> Only available when creating a replication group in an Amazon VPC using redis version <code>3.2.6</code>, <code>4.x</code> or later. Default: <code>false</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AuthTokenLastModifiedDate</i> The date the auth token was last modified<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AuthTokenEnabled</i> A flag that enables using an <code>AuthToken</code> (password) when issuing Redis commands. Default: <code>false</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheNodeType</i> The name of the compute and memory capacity node type for each node in the replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterEnabled</i> A flag indicating whether or not this replication group is cluster enabled; i.e., whether its data can be partitioned across multiple shards (API/CLI: node groups). Valid values: <code>true</code> | <code>false</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotWindow</i> The daily time range (in UTC) during which ElastiCache begins taking a daily snapshot of your node group (shard). Example: <code>05:00-09:00</code>  If you do not specify this parameter, ElastiCache automatically chooses an appropriate time range. <note> This parameter is only valid if the <code>Engine</code> parameter is <code>redis</code>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotRetentionLimit</i> The number of days for which ElastiCache retains automatic cluster snapshots before deleting them. For example, if you set <code>SnapshotRetentionLimit</code> to 5, a snapshot that was taken today is retained for 5 days before being deleted. <important>  If the value of <code>SnapshotRetentionLimit</code> is set to zero (0), backups are turned off. </important><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConfigurationEndpoint</i> The configuration endpoint for this replication group. Use the configuration endpoint to connect to this replication group.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ConfigurationEndpoint</b>: The configuration endpoint for this replication group. Use the configuration endpoint to connect to this replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiAZ</i> A flag indicating if you have Multi-AZ enabled to enhance fault tolerance. For more information, see <a href="http://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/AutoFailover.html">Minimizing Downtime: Multi-AZ</a> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomaticFailover</i> Indicates the status of automatic failover for this Redis replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshottingClusterId</i> The cluster ID that is used as the daily snapshot source for the replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NodeGroups</i> A list of node groups in this replication group. For Redis (cluster mode disabled) replication groups, this is a single-element list. For Redis (cluster mode enabled) replication groups, the list contains an entry for each node group (shard).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MemberClusters</i> The names of all the cache clusters that are part of this replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingModifiedValues</i> A group of settings to be applied to the replication group, either immediately or during the next maintenance window.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingModifiedValues</b>: A group of settings to be applied to the replication group, either immediately or during the next maintenance window.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current state of this replication group - <code>creating</code>, <code>available</code>, <code>modifying</code>, <code>deleting</code>, <code>create-failed</code>, <code>snapshotting</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalReplicationGroupInfo</i> The name of the Global datastore and role of this replication group in the Global datastore.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>GlobalReplicationGroupInfo</b>: The name of the Global datastore and role of this replication group in the Global datastore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The user supplied description of the replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationGroupId</i> The identifier for the replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalReplicationGroupMemberRole</i> The role of the replication group in a Global datastore. Can be primary or secondary.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalReplicationGroupId</i> The name of the Global datastore<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomaticFailoverStatus</i> Indicates the status of automatic failover for this Redis replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PrimaryClusterId</i> The primary cluster ID that is applied immediately (if <code>--apply-immediately</code> was specified), or during the next maintenance window.<br/>The status of an online resharding operation.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Resharding</b>: The status of an online resharding operation.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> The port number that the cache engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Address</i> The DNS hostname of the cache node.<br/>        """
        pass

    def create_snapshot(self, SnapshotName: str, ReplicationGroupId: str=None, CacheClusterId: str=None, KmsKeyId: str=None, Tags: List[Tag]=None) -> CreateSnapshotResult:
        r"""Creates a copy of an entire cluster or replication group at a specific moment in time. <note> This operation is valid for Redis only. </note>

        :param self:
        :param Tags:  A list of tags to be added to this resource. A tag is a key-value pair. A tag key must be accompanied by a tag value, although null is accepted.<br/>KmsKeyId:  The ID of the KMS key used to encrypt the snapshot.<br/>SnapshotName:  A name for the snapshot being created.<br/>CacheClusterId:  The identifier of an existing cluster. The snapshot is created from this cluster.<br/>ReplicationGroupId:  The identifier of an existing replication group. The snapshot is created from this replication group.<br/>
        :return: Snapshot:  Represents a copy of an entire Redis cluster as of the time when the snapshot was taken.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ARN</i> The ARN (Amazon Resource Name) of the snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The ID of the KMS key used to encrypt the snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NodeSnapshots</i> A list of the cache nodes in the source cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomaticFailover</i> Indicates the status of automatic failover for the source Redis replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NumNodeGroups</i> The number of node groups (shards) in this snapshot. When restoring from a snapshot, the number of node groups (shards) in the snapshot and in the restored replication group must be the same.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotWindow</i> The daily time range during which ElastiCache takes daily snapshots of the source cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotRetentionLimit</i> For an automatic snapshot, the number of days for which ElastiCache retains the snapshot before deleting it. For manual snapshots, this field reflects the <code>SnapshotRetentionLimit</code> for the source cluster when the snapshot was created. This field is otherwise ignored: Manual snapshots do not expire, and can only be deleted using the <code>DeleteSnapshot</code> operation.   <b>Important</b> If the value of SnapshotRetentionLimit is set to zero (0), backups are turned off.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoMinorVersionUpgrade</i> This parameter is currently disabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The Amazon Virtual Private Cloud identifier (VPC ID) of the cache subnet group for the source cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheSubnetGroupName</i> The name of the cache subnet group associated with the source cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheParameterGroupName</i> The cache parameter group that is associated with the source cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> The port number used by each cache nodes in the source cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TopicArn</i> The Amazon Resource Name (ARN) for the topic used by the source cluster for publishing notifications.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i> Specifies the weekly time range during which maintenance on the cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period. Valid values for <code>ddd</code> are: <ul> <li>  <code>sun</code>  </li> <li>  <code>mon</code>  </li> <li>  <code>tue</code>  </li> <li>  <code>wed</code>  </li> <li>  <code>thu</code>  </li> <li>  <code>fri</code>  </li> <li>  <code>sat</code>  </li> </ul> Example: <code>sun:23:00-mon:01:30</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheClusterCreateTime</i> The date and time when the source cluster was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredOutpostArn</i> The ARN (Amazon Resource Name) of the preferred outpost.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredAvailabilityZone</i> The name of the Availability Zone in which the source cluster is located.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NumCacheNodes</i> The number of cache nodes in the source cluster. For clusters running Redis, this value must be 1. For clusters running Memcached, this value must be between 1 and 40.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> The version of the cache engine version that is used by the source cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> The name of the cache engine (<code>memcached</code> or <code>redis</code>) used by the source cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheNodeType</i> The name of the compute and memory capacity node type for the source cluster. The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts. <ul> <li> General purpose: <ul> <li> Current generation:   <b>M6g node types</b> (available only for Redis engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward).  <code>cache.m6g.large</code>, <code>cache.m6g.xlarge</code>, <code>cache.m6g.2xlarge</code>, <code>cache.m6g.4xlarge</code>, <code>cache.m6g.8xlarge</code>, <code>cache.m6g.12xlarge</code>, <code>cache.m6g.16xlarge</code>  <note> For region availability, see <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion">Supported Node Types</a>  </note>  <b>M5 node types:</b> <code>cache.m5.large</code>, <code>cache.m5.xlarge</code>, <code>cache.m5.2xlarge</code>, <code>cache.m5.4xlarge</code>, <code>cache.m5.12xlarge</code>, <code>cache.m5.24xlarge</code>   <b>M4 node types:</b> <code>cache.m4.large</code>, <code>cache.m4.xlarge</code>, <code>cache.m4.2xlarge</code>, <code>cache.m4.4xlarge</code>, <code>cache.m4.10xlarge</code>   <b>T3 node types:</b> <code>cache.t3.micro</code>, <code>cache.t3.small</code>, <code>cache.t3.medium</code>   <b>T2 node types:</b> <code>cache.t2.micro</code>, <code>cache.t2.small</code>, <code>cache.t2.medium</code>  </li> <li> Previous generation: (not recommended)  <b>T1 node types:</b> <code>cache.t1.micro</code>   <b>M1 node types:</b> <code>cache.m1.small</code>, <code>cache.m1.medium</code>, <code>cache.m1.large</code>, <code>cache.m1.xlarge</code>   <b>M3 node types:</b> <code>cache.m3.medium</code>, <code>cache.m3.large</code>, <code>cache.m3.xlarge</code>, <code>cache.m3.2xlarge</code>  </li> </ul> </li> <li> Compute optimized: <ul> <li> Previous generation: (not recommended)  <b>C1 node types:</b> <code>cache.c1.xlarge</code>  </li> </ul> </li> <li> Memory optimized: <ul> <li> Current generation:   <b>R6g node types</b> (available only for Redis engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward).  <code>cache.r6g.large</code>, <code>cache.r6g.xlarge</code>, <code>cache.r6g.2xlarge</code>, <code>cache.r6g.4xlarge</code>, <code>cache.r6g.8xlarge</code>, <code>cache.r6g.12xlarge</code>, <code>cache.r6g.16xlarge</code>  <note> For region availability, see <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion">Supported Node Types</a>  </note>  <b>R5 node types:</b> <code>cache.r5.large</code>, <code>cache.r5.xlarge</code>, <code>cache.r5.2xlarge</code>, <code>cache.r5.4xlarge</code>, <code>cache.r5.12xlarge</code>, <code>cache.r5.24xlarge</code>   <b>R4 node types:</b> <code>cache.r4.large</code>, <code>cache.r4.xlarge</code>, <code>cache.r4.2xlarge</code>, <code>cache.r4.4xlarge</code>, <code>cache.r4.8xlarge</code>, <code>cache.r4.16xlarge</code>  </li> <li> Previous generation: (not recommended)  <b>M2 node types:</b> <code>cache.m2.xlarge</code>, <code>cache.m2.2xlarge</code>, <code>cache.m2.4xlarge</code>   <b>R3 node types:</b> <code>cache.r3.large</code>, <code>cache.r3.xlarge</code>, <code>cache.r3.2xlarge</code>, <code>cache.r3.4xlarge</code>, <code>cache.r3.8xlarge</code>  </li> </ul> </li> </ul>  <b>Additional node type info</b>  <ul> <li> All current generation instance types are created in Amazon VPC by default. </li> <li> Redis append-only files (AOF) are not supported for T1 or T2 instances. </li> <li> Redis Multi-AZ with automatic failover is not supported on T1 instances. </li> <li> Redis configuration variables <code>appendonly</code> and <code>appendfsync</code> are not supported on Redis version 2.8.22 and later. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotSource</i> Indicates whether the snapshot is from an automatic backup (<code>automated</code>) or was created manually (<code>manual</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotStatus</i> The status of the snapshot. Valid values: <code>creating</code> | <code>available</code> | <code>restoring</code> | <code>copying</code> | <code>deleting</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheClusterId</i> The user-supplied identifier of the source cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationGroupDescription</i> A description of the source replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationGroupId</i> The unique identifier of the source replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotName</i> The name of a snapshot. For an automatic snapshot, the name is system-generated. For a manual snapshot, this is the user-provided name.<br/>        """
        pass

    def create_user(self, AccessString: str, Engine: str, UserName: str, UserId: str, Passwords: List[String]=None, NoPasswordRequired: BooleanOptional=None, Tags: List[Tag]=None) -> User:
        r"""For Redis engine version 6.x onwards: Creates a Redis user. For more information, see <a href="http://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Clusters.RBAC.html">Using Role Based Access Control (RBAC)</a>.

        :param self:
        :param Tags:  A list of tags to be added to this resource. A tag is a key-value pair. A tag key must be accompanied by a tag value, although null is accepted.<br/>NoPasswordRequired:  Indicates a password is not required for this user.<br/>AccessString:  Access permissions string used for this user.<br/>Passwords:  Passwords used for this user. You can create up to two passwords for each user.<br/>Engine:  The current supported value is Redis. <br/>UserName:  The username of the user.<br/>UserId:  The ID of the user.<br/>
        :return: ARN:  The Amazon Resource Name (ARN) of the user.<br/>Authentication:  Denotes whether the user requires a password to authenticate.:<br/>UserGroupIds:  Returns a list of the user group IDs the user belongs to.<br/>AccessString:  Access permissions string used for this user.<br/>Engine:  The current supported value is Redis.<br/>Status:  Indicates the user status. Can be "active", "modifying" or "deleting".<br/>UserName:  The username of the user.<br/>UserId:  The ID of the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PasswordCount</i> The number of passwords belonging to the user. The maximum is two.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> Indicates whether the user requires a password to authenticate.<br/>        """
        pass

    def create_user_group(self, Engine: str, UserGroupId: str, UserIds: List[UserId]=None, Tags: List[Tag]=None) -> UserGroup:
        r"""For Redis engine version 6.x onwards: Creates a Redis user group. For more information, see <a href="http://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Clusters.RBAC.html">Using Role Based Access Control (RBAC)</a> 

        :param self:
        :param Tags:  A list of tags to be added to this resource. A tag is a key-value pair. A tag key must be accompanied by a tag value, although null is accepted.<br/>UserIds:  The list of user IDs that belong to the user group.<br/>Engine:  The current supported value is Redis. <br/>UserGroupId:  The ID of the user group.<br/>
        :return: ARN:  The Amazon Resource Name (ARN) of the user group.<br/>ReplicationGroups:  A list of replication groups that the user group can access.<br/>PendingChanges:  A list of updates being applied to the user groups.:<br/>UserIds:  The list of user IDs that belong to the user group.<br/>Engine:  The current supported value is Redis. <br/>Status:  Indicates user group status. Can be "creating", "active", "modifying", "deleting".<br/>UserGroupId:  The ID of the user group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserIdsToAdd</i> The list of user IDs to add.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserIdsToRemove</i> The list of user IDs to remove.<br/>        """
        pass

    def decrease_node_groups_in_global_replication_group(self, ApplyImmediately: Boolean, NodeGroupCount: int, GlobalReplicationGroupId: str, GlobalNodeGroupsToRemove: List[String]=None, GlobalNodeGroupsToRetain: List[String]=None) -> DecreaseNodeGroupsInGlobalReplicationGroupResult:
        r"""Decreases the number of node groups in a Global datastore

        :param self:
        :param ApplyImmediately:  Indicates that the shard reconfiguration process begins immediately. At present, the only permitted value for this parameter is true. <br/>GlobalNodeGroupsToRetain:  If the value of NodeGroupCount is less than the current number of node groups (shards), then either NodeGroupsToRemove or NodeGroupsToRetain is required. GlobalNodeGroupsToRetain is a list of NodeGroupIds to retain from the cluster. ElastiCache for Redis will attempt to retain all node groups listed by GlobalNodeGroupsToRetain from the cluster. <br/>GlobalNodeGroupsToRemove:  If the value of NodeGroupCount is less than the current number of node groups (shards), then either NodeGroupsToRemove or NodeGroupsToRetain is required. GlobalNodeGroupsToRemove is a list of NodeGroupIds to remove from the cluster. ElastiCache for Redis will attempt to remove all node groups listed by GlobalNodeGroupsToRemove from the cluster. <br/>NodeGroupCount:  The number of node groups (shards) that results from the modification of the shard configuration<br/>GlobalReplicationGroupId:  The name of the Global datastore<br/>
        :return: GlobalReplicationGroup:  Consists of a primary cluster that accepts writes and an associated secondary cluster that resides in a different AWS region. The secondary cluster accepts only reads. The primary cluster automatically replicates updates to the secondary cluster. <ul> <li> The <b>GlobalReplicationGroupIdSuffix</b> represents the name of the Global datastore, which is what you use to associate a secondary cluster. </li> </ul>:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ARN</i> The ARN (Amazon Resource Name) of the global replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AtRestEncryptionEnabled</i> A flag that enables encryption at rest when set to <code>true</code>. You cannot modify the value of <code>AtRestEncryptionEnabled</code> after the replication group is created. To enable encryption at rest on a replication group you must set <code>AtRestEncryptionEnabled</code> to <code>true</code> when you create the replication group.   <b>Required:</b> Only available when creating a replication group in an Amazon VPC using redis version <code>3.2.6</code>, <code>4.x</code> or later.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitEncryptionEnabled</i> A flag that enables in-transit encryption when set to true. You cannot modify the value of <code>TransitEncryptionEnabled</code> after the cluster is created. To enable in-transit encryption on a cluster you must set <code>TransitEncryptionEnabled</code> to true when you create a cluster.   <b>Required:</b> Only available when creating a replication group in an Amazon VPC using redis version <code>3.2.6</code>, <code>4.x</code> or later.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AuthTokenEnabled</i> A flag that enables using an <code>AuthToken</code> (password) when issuing Redis commands. Default: <code>false</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalNodeGroups</i> Indicates the slot configuration and global identifier for each slice group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterEnabled</i> A flag that indicates whether the Global datastore is cluster enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Members</i> The replication groups that comprise the Global datastore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> The Elasticache Redis engine version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> The Elasticache engine. For Redis only.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheNodeType</i> The cache node type of the Global datastore<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the Global datastore<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalReplicationGroupDescription</i> The optional description of the Global datastore<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalReplicationGroupId</i> The name of the Global datastore<br/>        """
        pass

    def decrease_replica_count(self, ApplyImmediately: Boolean, ReplicationGroupId: str, NewReplicaCount: int=None, ReplicaConfiguration: List[ConfigureShard]=None, ReplicasToRemove: List[String]=None) -> DecreaseReplicaCountResult:
        r"""Dynamically decreases the number of replicas in a Redis (cluster mode disabled) replication group or the number of replica nodes in one or more node groups (shards) of a Redis (cluster mode enabled) replication group. This operation is performed with no cluster down time.

        :param self:
        :param ApplyImmediately:  If <code>True</code>, the number of replica nodes is decreased immediately. <code>ApplyImmediately=False</code> is not currently supported.<br/>ReplicasToRemove:  A list of the node ids to remove from the replication group or node group (shard).<br/>ReplicaConfiguration:  A list of <code>ConfigureShard</code> objects that can be used to configure each shard in a Redis (cluster mode enabled) replication group. The <code>ConfigureShard</code> has three members: <code>NewReplicaCount</code>, <code>NodeGroupId</code>, and <code>PreferredAvailabilityZones</code>.<br/>NewReplicaCount:  The number of read replica nodes you want at the completion of this operation. For Redis (cluster mode disabled) replication groups, this is the number of replica nodes in the replication group. For Redis (cluster mode enabled) replication groups, this is the number of replica nodes in each of the replication group's node groups. The minimum number of replicas in a shard or replication group is: <ul> <li> Redis (cluster mode disabled) <ul> <li> If Multi-AZ is enabled: 1 </li> <li> If Multi-AZ is not enabled: 0 </li> </ul> </li> <li> Redis (cluster mode enabled): 0 (though you will not be able to failover to a replica if your primary node fails) </li> </ul><br/>ReplicationGroupId:  The id of the replication group from which you want to remove replica nodes.<br/>
        :return: ReplicationGroup:  Contains all of the attributes of a specific Redis replication group.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogDeliveryConfigurations</i> Returns the destination, format and type of the logs. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserGroupIds</i> The list of user group IDs that have access to the replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ARN</i> The ARN (Amazon Resource Name) of the replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The ID of the KMS key used to encrypt the disk in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MemberClustersOutpostArns</i> The outpost ARNs of the replication group's member clusters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AtRestEncryptionEnabled</i> A flag that enables encryption at-rest when set to <code>true</code>. You cannot modify the value of <code>AtRestEncryptionEnabled</code> after the cluster is created. To enable encryption at-rest on a cluster you must set <code>AtRestEncryptionEnabled</code> to <code>true</code> when you create a cluster.  <b>Required:</b> Only available when creating a replication group in an Amazon VPC using redis version <code>3.2.6</code>, <code>4.x</code> or later. Default: <code>false</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitEncryptionEnabled</i> A flag that enables in-transit encryption when set to <code>true</code>. You cannot modify the value of <code>TransitEncryptionEnabled</code> after the cluster is created. To enable in-transit encryption on a cluster you must set <code>TransitEncryptionEnabled</code> to <code>true</code> when you create a cluster.  <b>Required:</b> Only available when creating a replication group in an Amazon VPC using redis version <code>3.2.6</code>, <code>4.x</code> or later. Default: <code>false</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AuthTokenLastModifiedDate</i> The date the auth token was last modified<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AuthTokenEnabled</i> A flag that enables using an <code>AuthToken</code> (password) when issuing Redis commands. Default: <code>false</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheNodeType</i> The name of the compute and memory capacity node type for each node in the replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterEnabled</i> A flag indicating whether or not this replication group is cluster enabled; i.e., whether its data can be partitioned across multiple shards (API/CLI: node groups). Valid values: <code>true</code> | <code>false</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotWindow</i> The daily time range (in UTC) during which ElastiCache begins taking a daily snapshot of your node group (shard). Example: <code>05:00-09:00</code>  If you do not specify this parameter, ElastiCache automatically chooses an appropriate time range. <note> This parameter is only valid if the <code>Engine</code> parameter is <code>redis</code>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotRetentionLimit</i> The number of days for which ElastiCache retains automatic cluster snapshots before deleting them. For example, if you set <code>SnapshotRetentionLimit</code> to 5, a snapshot that was taken today is retained for 5 days before being deleted. <important>  If the value of <code>SnapshotRetentionLimit</code> is set to zero (0), backups are turned off. </important><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConfigurationEndpoint</i> The configuration endpoint for this replication group. Use the configuration endpoint to connect to this replication group.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ConfigurationEndpoint</b>: The configuration endpoint for this replication group. Use the configuration endpoint to connect to this replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiAZ</i> A flag indicating if you have Multi-AZ enabled to enhance fault tolerance. For more information, see <a href="http://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/AutoFailover.html">Minimizing Downtime: Multi-AZ</a> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomaticFailover</i> Indicates the status of automatic failover for this Redis replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshottingClusterId</i> The cluster ID that is used as the daily snapshot source for the replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NodeGroups</i> A list of node groups in this replication group. For Redis (cluster mode disabled) replication groups, this is a single-element list. For Redis (cluster mode enabled) replication groups, the list contains an entry for each node group (shard).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MemberClusters</i> The names of all the cache clusters that are part of this replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingModifiedValues</i> A group of settings to be applied to the replication group, either immediately or during the next maintenance window.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingModifiedValues</b>: A group of settings to be applied to the replication group, either immediately or during the next maintenance window.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current state of this replication group - <code>creating</code>, <code>available</code>, <code>modifying</code>, <code>deleting</code>, <code>create-failed</code>, <code>snapshotting</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalReplicationGroupInfo</i> The name of the Global datastore and role of this replication group in the Global datastore.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>GlobalReplicationGroupInfo</b>: The name of the Global datastore and role of this replication group in the Global datastore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The user supplied description of the replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationGroupId</i> The identifier for the replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalReplicationGroupMemberRole</i> The role of the replication group in a Global datastore. Can be primary or secondary.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalReplicationGroupId</i> The name of the Global datastore<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomaticFailoverStatus</i> Indicates the status of automatic failover for this Redis replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PrimaryClusterId</i> The primary cluster ID that is applied immediately (if <code>--apply-immediately</code> was specified), or during the next maintenance window.<br/>The status of an online resharding operation.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Resharding</b>: The status of an online resharding operation.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> The port number that the cache engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Address</i> The DNS hostname of the cache node.<br/>        """
        pass

    def delete_cache_cluster(self, CacheClusterId: str, FinalSnapshotIdentifier: str=None) -> DeleteCacheClusterResult:
        r"""Deletes a previously provisioned cluster. <code>DeleteCacheCluster</code> deletes all associated cache nodes, node endpoints and the cluster itself. When you receive a successful response from this operation, Amazon ElastiCache immediately begins deleting the cluster; you cannot cancel or revert this operation. This operation is not valid for: <ul> <li> Redis (cluster mode enabled) clusters </li> <li> Redis (cluster mode disabled) clusters </li> <li> A cluster that is the last read replica of a replication group </li> <li> A cluster that is the primary node of a replication group </li> <li> A node group (shard) that has Multi-AZ mode enabled </li> <li> A cluster from a Redis (cluster mode enabled) replication group </li> <li> A cluster that is not in the <code>available</code> state </li> </ul>

        :param self:
        :param FinalSnapshotIdentifier:  The user-supplied name of a final cluster snapshot. This is the unique name that identifies the snapshot. ElastiCache creates the snapshot, and then deletes the cluster immediately afterward.<br/>CacheClusterId:  The cluster identifier for the cluster to be deleted. This parameter is not case sensitive.<br/>
        :return: CacheCluster:  Contains all of the attributes of a specific cluster.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogDeliveryConfigurations</i> Returns the destination, format and type of the logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationGroupLogDeliveryEnabled</i> A boolean value indicating whether log delivery is enabled for the replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ARN</i> The ARN (Amazon Resource Name) of the cache cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AtRestEncryptionEnabled</i> A flag that enables encryption at-rest when set to <code>true</code>. You cannot modify the value of <code>AtRestEncryptionEnabled</code> after the cluster is created. To enable at-rest encryption on a cluster you must set <code>AtRestEncryptionEnabled</code> to <code>true</code> when you create a cluster.  <b>Required:</b> Only available when creating a replication group in an Amazon VPC using redis version <code>3.2.6</code>, <code>4.x</code> or later. Default: <code>false</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitEncryptionEnabled</i> A flag that enables in-transit encryption when set to <code>true</code>. You cannot modify the value of <code>TransitEncryptionEnabled</code> after the cluster is created. To enable in-transit encryption on a cluster you must set <code>TransitEncryptionEnabled</code> to <code>true</code> when you create a cluster.  <b>Required:</b> Only available when creating a replication group in an Amazon VPC using redis version <code>3.2.6</code>, <code>4.x</code> or later. Default: <code>false</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AuthTokenLastModifiedDate</i> The date the auth token was last modified<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AuthTokenEnabled</i> A flag that enables using an <code>AuthToken</code> (password) when issuing Redis commands. Default: <code>false</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotWindow</i> The daily time range (in UTC) during which ElastiCache begins taking a daily snapshot of your cluster. Example: <code>05:00-09:00</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotRetentionLimit</i> The number of days for which ElastiCache retains automatic cluster snapshots before deleting them. For example, if you set <code>SnapshotRetentionLimit</code> to 5, a snapshot that was taken today is retained for 5 days before being deleted. <important>  If the value of SnapshotRetentionLimit is set to zero (0), backups are turned off. </important><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationGroupId</i> The replication group to which this cluster belongs. If this field is empty, the cluster is not associated with any replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroups</i> A list of VPC Security Groups associated with the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoMinorVersionUpgrade</i> This parameter is currently disabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheNodes</i> A list of cache nodes that are members of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheSubnetGroupName</i> The name of the cache subnet group associated with the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheParameterGroup</i> Status of the cache parameter group.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CacheParameterGroup</b>: Status of the cache parameter group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheSecurityGroups</i> A list of cache security group elements, composed of name and status sub-elements.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NotificationConfiguration</i> Describes a notification topic and its status. Notification topics are used for publishing ElastiCache events to subscribers using Amazon Simple Notification Service (SNS). &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>NotificationConfiguration</b>: Describes a notification topic and its status. Notification topics are used for publishing ElastiCache events to subscribers using Amazon Simple Notification Service (SNS). <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingModifiedValues</i> A group of settings that are applied to the cluster in the future, or that are currently being applied.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingModifiedValues</b>: A group of settings that are applied to the cluster in the future, or that are currently being applied.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i> Specifies the weekly time range during which maintenance on the cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period. Valid values for <code>ddd</code> are: <ul> <li>  <code>sun</code>  </li> <li>  <code>mon</code>  </li> <li>  <code>tue</code>  </li> <li>  <code>wed</code>  </li> <li>  <code>thu</code>  </li> <li>  <code>fri</code>  </li> <li>  <code>sat</code>  </li> </ul> Example: <code>sun:23:00-mon:01:30</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheClusterCreateTime</i> The date and time when the cluster was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredOutpostArn</i> The outpost ARN in which the cache cluster is created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredAvailabilityZone</i> The name of the Availability Zone in which the cluster is located or "Multiple" if the cache nodes are located in different Availability Zones.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NumCacheNodes</i> The number of cache nodes in the cluster. For clusters running Redis, this value must be 1. For clusters running Memcached, this value must be between 1 and 40.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheClusterStatus</i> The current state of this cluster, one of the following values: <code>available</code>, <code>creating</code>, <code>deleted</code>, <code>deleting</code>, <code>incompatible-network</code>, <code>modifying</code>, <code>rebooting cluster nodes</code>, <code>restore-failed</code>, or <code>snapshotting</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> The version of the cache engine that is used in this cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> The name of the cache engine (<code>memcached</code> or <code>redis</code>) to be used for this cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheNodeType</i> The name of the compute and memory capacity node type for the cluster. The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts. <ul> <li> General purpose: <ul> <li> Current generation:   <b>M6g node types</b> (available only for Redis engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward).  <code>cache.m6g.large</code>, <code>cache.m6g.xlarge</code>, <code>cache.m6g.2xlarge</code>, <code>cache.m6g.4xlarge</code>, <code>cache.m6g.8xlarge</code>, <code>cache.m6g.12xlarge</code>, <code>cache.m6g.16xlarge</code>  <note> For region availability, see <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion">Supported Node Types</a>  </note>  <b>M5 node types:</b> <code>cache.m5.large</code>, <code>cache.m5.xlarge</code>, <code>cache.m5.2xlarge</code>, <code>cache.m5.4xlarge</code>, <code>cache.m5.12xlarge</code>, <code>cache.m5.24xlarge</code>   <b>M4 node types:</b> <code>cache.m4.large</code>, <code>cache.m4.xlarge</code>, <code>cache.m4.2xlarge</code>, <code>cache.m4.4xlarge</code>, <code>cache.m4.10xlarge</code>   <b>T3 node types:</b> <code>cache.t3.micro</code>, <code>cache.t3.small</code>, <code>cache.t3.medium</code>   <b>T2 node types:</b> <code>cache.t2.micro</code>, <code>cache.t2.small</code>, <code>cache.t2.medium</code>  </li> <li> Previous generation: (not recommended)  <b>T1 node types:</b> <code>cache.t1.micro</code>   <b>M1 node types:</b> <code>cache.m1.small</code>, <code>cache.m1.medium</code>, <code>cache.m1.large</code>, <code>cache.m1.xlarge</code>   <b>M3 node types:</b> <code>cache.m3.medium</code>, <code>cache.m3.large</code>, <code>cache.m3.xlarge</code>, <code>cache.m3.2xlarge</code>  </li> </ul> </li> <li> Compute optimized: <ul> <li> Previous generation: (not recommended)  <b>C1 node types:</b> <code>cache.c1.xlarge</code>  </li> </ul> </li> <li> Memory optimized: <ul> <li> Current generation:   <b>R6g node types</b> (available only for Redis engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward).  <code>cache.r6g.large</code>, <code>cache.r6g.xlarge</code>, <code>cache.r6g.2xlarge</code>, <code>cache.r6g.4xlarge</code>, <code>cache.r6g.8xlarge</code>, <code>cache.r6g.12xlarge</code>, <code>cache.r6g.16xlarge</code>  <note> For region availability, see <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion">Supported Node Types</a>  </note>  <b>R5 node types:</b> <code>cache.r5.large</code>, <code>cache.r5.xlarge</code>, <code>cache.r5.2xlarge</code>, <code>cache.r5.4xlarge</code>, <code>cache.r5.12xlarge</code>, <code>cache.r5.24xlarge</code>   <b>R4 node types:</b> <code>cache.r4.large</code>, <code>cache.r4.xlarge</code>, <code>cache.r4.2xlarge</code>, <code>cache.r4.4xlarge</code>, <code>cache.r4.8xlarge</code>, <code>cache.r4.16xlarge</code>  </li> <li> Previous generation: (not recommended)  <b>M2 node types:</b> <code>cache.m2.xlarge</code>, <code>cache.m2.2xlarge</code>, <code>cache.m2.4xlarge</code>   <b>R3 node types:</b> <code>cache.r3.large</code>, <code>cache.r3.xlarge</code>, <code>cache.r3.2xlarge</code>, <code>cache.r3.4xlarge</code>, <code>cache.r3.8xlarge</code>  </li> </ul> </li> </ul>  <b>Additional node type info</b>  <ul> <li> All current generation instance types are created in Amazon VPC by default. </li> <li> Redis append-only files (AOF) are not supported for T1 or T2 instances. </li> <li> Redis Multi-AZ with automatic failover is not supported on T1 instances. </li> <li> Redis configuration variables <code>appendonly</code> and <code>appendfsync</code> are not supported on Redis version 2.8.22 and later. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClientDownloadLandingPage</i> The URL of the web page where you can download the latest ElastiCache client library.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConfigurationEndpoint</i> Represents a Memcached cluster endpoint which can be used by an application to connect to any node in the cluster. The configuration endpoint will always have <code>.cfg</code> in it. Example: <code>mem-3.9dvc4r<u>.cfg</u>.usw2.cache.amazonaws.com:11211</code> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ConfigurationEndpoint</b>: Represents a Memcached cluster endpoint which can be used by an application to connect to any node in the cluster. The configuration endpoint will always have <code>.cfg</code> in it. Example: <code>mem-3.9dvc4r<u>.cfg</u>.usw2.cache.amazonaws.com:11211</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheClusterId</i> The user-supplied identifier of the cluster. This identifier is a unique key that identifies a cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> The port number that the cache engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Address</i> The DNS hostname of the cache node.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LogDeliveryConfigurations</i> The log delivery configurations being modified <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AuthTokenStatus</i> The auth token status<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheNodeType</i> The cache node type that this cluster or replication group is scaled to.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> The new cache engine version that the cluster runs.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheNodeIdsToRemove</i> A list of cache node IDs that are being removed (or will be removed) from the cluster. A node ID is a 4-digit numeric identifier (0001, 0002, etc.).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NumCacheNodes</i> The new number of cache nodes for the cluster. For clusters running Redis, this value must be 1. For clusters running Memcached, this value must be between 1 and 40.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TopicStatus</i> The current state of the topic.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TopicArn</i> The Amazon Resource Name (ARN) that identifies the topic.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheNodeIdsToReboot</i> A list of the cache node IDs which need to be rebooted for parameter changes to be applied. A node ID is a numeric identifier (0001, 0002, etc.).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ParameterApplyStatus</i> The status of parameter updates.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheParameterGroupName</i> The name of the cache parameter group.<br/>        """
        pass

    def delete_cache_parameter_group(self, CacheParameterGroupName: str):
        r"""Deletes the specified cache parameter group. You cannot delete a cache parameter group if it is associated with any cache clusters. You cannot delete the default cache parameter groups in your account.

        :param self:
        :param CacheParameterGroupName:  The name of the cache parameter group to delete. <note> The specified cache security group must not be associated with any clusters. </note><br/>
        :return:         """
        pass

    def delete_cache_security_group(self, CacheSecurityGroupName: str):
        r"""Deletes a cache security group. <note> You cannot delete a cache security group if it is associated with any clusters. </note>

        :param self:
        :param CacheSecurityGroupName:  The name of the cache security group to delete. <note> You cannot delete the default security group. </note><br/>
        :return:         """
        pass

    def delete_cache_subnet_group(self, CacheSubnetGroupName: str):
        r"""Deletes a cache subnet group. <note> You cannot delete a default cache subnet group or one that is associated with any clusters. </note>

        :param self:
        :param CacheSubnetGroupName:  The name of the cache subnet group to delete. Constraints: Must contain no more than 255 alphanumeric characters or hyphens.<br/>
        :return:         """
        pass

    def delete_global_replication_group(self, RetainPrimaryReplicationGroup: Boolean, GlobalReplicationGroupId: str) -> DeleteGlobalReplicationGroupResult:
        r"""Deleting a Global datastore is a two-step process:  <ul> <li> First, you must <a>DisassociateGlobalReplicationGroup</a> to remove the secondary clusters in the Global datastore. </li> <li> Once the Global datastore contains only the primary cluster, you can use the <code>DeleteGlobalReplicationGroup</code> API to delete the Global datastore while retainining the primary cluster using <code>RetainPrimaryReplicationGroup=true</code>. </li> </ul> Since the Global Datastore has only a primary cluster, you can delete the Global Datastore while retaining the primary by setting <code>RetainPrimaryReplicationGroup=true</code>. The primary cluster is never deleted when deleting a Global Datastore. It can only be deleted when it no longer is associated with any Global Datastore. When you receive a successful response from this operation, Amazon ElastiCache immediately begins deleting the selected resources; you cannot cancel or revert this operation.

        :param self:
        :param RetainPrimaryReplicationGroup:  The primary replication group is retained as a standalone replication group. <br/>GlobalReplicationGroupId:  The name of the Global datastore<br/>
        :return: GlobalReplicationGroup:  Consists of a primary cluster that accepts writes and an associated secondary cluster that resides in a different AWS region. The secondary cluster accepts only reads. The primary cluster automatically replicates updates to the secondary cluster. <ul> <li> The <b>GlobalReplicationGroupIdSuffix</b> represents the name of the Global datastore, which is what you use to associate a secondary cluster. </li> </ul>:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ARN</i> The ARN (Amazon Resource Name) of the global replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AtRestEncryptionEnabled</i> A flag that enables encryption at rest when set to <code>true</code>. You cannot modify the value of <code>AtRestEncryptionEnabled</code> after the replication group is created. To enable encryption at rest on a replication group you must set <code>AtRestEncryptionEnabled</code> to <code>true</code> when you create the replication group.   <b>Required:</b> Only available when creating a replication group in an Amazon VPC using redis version <code>3.2.6</code>, <code>4.x</code> or later.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitEncryptionEnabled</i> A flag that enables in-transit encryption when set to true. You cannot modify the value of <code>TransitEncryptionEnabled</code> after the cluster is created. To enable in-transit encryption on a cluster you must set <code>TransitEncryptionEnabled</code> to true when you create a cluster.   <b>Required:</b> Only available when creating a replication group in an Amazon VPC using redis version <code>3.2.6</code>, <code>4.x</code> or later.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AuthTokenEnabled</i> A flag that enables using an <code>AuthToken</code> (password) when issuing Redis commands. Default: <code>false</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalNodeGroups</i> Indicates the slot configuration and global identifier for each slice group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterEnabled</i> A flag that indicates whether the Global datastore is cluster enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Members</i> The replication groups that comprise the Global datastore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> The Elasticache Redis engine version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> The Elasticache engine. For Redis only.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheNodeType</i> The cache node type of the Global datastore<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the Global datastore<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalReplicationGroupDescription</i> The optional description of the Global datastore<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalReplicationGroupId</i> The name of the Global datastore<br/>        """
        pass

    def delete_replication_group(self, ReplicationGroupId: str, RetainPrimaryCluster: BooleanOptional=None, FinalSnapshotIdentifier: str=None) -> DeleteReplicationGroupResult:
        r"""Deletes an existing replication group. By default, this operation deletes the entire replication group, including the primary/primaries and all of the read replicas. If the replication group has only one primary, you can optionally delete only the read replicas, while retaining the primary by setting <code>RetainPrimaryCluster=true</code>. When you receive a successful response from this operation, Amazon ElastiCache immediately begins deleting the selected resources; you cannot cancel or revert this operation. <note> This operation is valid for Redis only. </note>

        :param self:
        :param FinalSnapshotIdentifier:  The name of a final node group (shard) snapshot. ElastiCache creates the snapshot from the primary node in the cluster, rather than one of the replicas; this is to ensure that it captures the freshest data. After the final snapshot is taken, the replication group is immediately deleted.<br/>RetainPrimaryCluster:  If set to <code>true</code>, all of the read replicas are deleted, but the primary node is retained.<br/>ReplicationGroupId:  The identifier for the cluster to be deleted. This parameter is not case sensitive.<br/>
        :return: ReplicationGroup:  Contains all of the attributes of a specific Redis replication group.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogDeliveryConfigurations</i> Returns the destination, format and type of the logs. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserGroupIds</i> The list of user group IDs that have access to the replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ARN</i> The ARN (Amazon Resource Name) of the replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The ID of the KMS key used to encrypt the disk in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MemberClustersOutpostArns</i> The outpost ARNs of the replication group's member clusters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AtRestEncryptionEnabled</i> A flag that enables encryption at-rest when set to <code>true</code>. You cannot modify the value of <code>AtRestEncryptionEnabled</code> after the cluster is created. To enable encryption at-rest on a cluster you must set <code>AtRestEncryptionEnabled</code> to <code>true</code> when you create a cluster.  <b>Required:</b> Only available when creating a replication group in an Amazon VPC using redis version <code>3.2.6</code>, <code>4.x</code> or later. Default: <code>false</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitEncryptionEnabled</i> A flag that enables in-transit encryption when set to <code>true</code>. You cannot modify the value of <code>TransitEncryptionEnabled</code> after the cluster is created. To enable in-transit encryption on a cluster you must set <code>TransitEncryptionEnabled</code> to <code>true</code> when you create a cluster.  <b>Required:</b> Only available when creating a replication group in an Amazon VPC using redis version <code>3.2.6</code>, <code>4.x</code> or later. Default: <code>false</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AuthTokenLastModifiedDate</i> The date the auth token was last modified<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AuthTokenEnabled</i> A flag that enables using an <code>AuthToken</code> (password) when issuing Redis commands. Default: <code>false</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheNodeType</i> The name of the compute and memory capacity node type for each node in the replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterEnabled</i> A flag indicating whether or not this replication group is cluster enabled; i.e., whether its data can be partitioned across multiple shards (API/CLI: node groups). Valid values: <code>true</code> | <code>false</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotWindow</i> The daily time range (in UTC) during which ElastiCache begins taking a daily snapshot of your node group (shard). Example: <code>05:00-09:00</code>  If you do not specify this parameter, ElastiCache automatically chooses an appropriate time range. <note> This parameter is only valid if the <code>Engine</code> parameter is <code>redis</code>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotRetentionLimit</i> The number of days for which ElastiCache retains automatic cluster snapshots before deleting them. For example, if you set <code>SnapshotRetentionLimit</code> to 5, a snapshot that was taken today is retained for 5 days before being deleted. <important>  If the value of <code>SnapshotRetentionLimit</code> is set to zero (0), backups are turned off. </important><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConfigurationEndpoint</i> The configuration endpoint for this replication group. Use the configuration endpoint to connect to this replication group.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ConfigurationEndpoint</b>: The configuration endpoint for this replication group. Use the configuration endpoint to connect to this replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiAZ</i> A flag indicating if you have Multi-AZ enabled to enhance fault tolerance. For more information, see <a href="http://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/AutoFailover.html">Minimizing Downtime: Multi-AZ</a> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomaticFailover</i> Indicates the status of automatic failover for this Redis replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshottingClusterId</i> The cluster ID that is used as the daily snapshot source for the replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NodeGroups</i> A list of node groups in this replication group. For Redis (cluster mode disabled) replication groups, this is a single-element list. For Redis (cluster mode enabled) replication groups, the list contains an entry for each node group (shard).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MemberClusters</i> The names of all the cache clusters that are part of this replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingModifiedValues</i> A group of settings to be applied to the replication group, either immediately or during the next maintenance window.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingModifiedValues</b>: A group of settings to be applied to the replication group, either immediately or during the next maintenance window.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current state of this replication group - <code>creating</code>, <code>available</code>, <code>modifying</code>, <code>deleting</code>, <code>create-failed</code>, <code>snapshotting</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalReplicationGroupInfo</i> The name of the Global datastore and role of this replication group in the Global datastore.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>GlobalReplicationGroupInfo</b>: The name of the Global datastore and role of this replication group in the Global datastore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The user supplied description of the replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationGroupId</i> The identifier for the replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalReplicationGroupMemberRole</i> The role of the replication group in a Global datastore. Can be primary or secondary.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalReplicationGroupId</i> The name of the Global datastore<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomaticFailoverStatus</i> Indicates the status of automatic failover for this Redis replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PrimaryClusterId</i> The primary cluster ID that is applied immediately (if <code>--apply-immediately</code> was specified), or during the next maintenance window.<br/>The status of an online resharding operation.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Resharding</b>: The status of an online resharding operation.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> The port number that the cache engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Address</i> The DNS hostname of the cache node.<br/>        """
        pass

    def delete_snapshot(self, SnapshotName: str) -> DeleteSnapshotResult:
        r"""Deletes an existing snapshot. When you receive a successful response from this operation, ElastiCache immediately begins deleting the snapshot; you cannot cancel or revert this operation. <note> This operation is valid for Redis only. </note>

        :param self:
        :param SnapshotName:  The name of the snapshot to be deleted.<br/>
        :return: Snapshot:  Represents a copy of an entire Redis cluster as of the time when the snapshot was taken.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ARN</i> The ARN (Amazon Resource Name) of the snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The ID of the KMS key used to encrypt the snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NodeSnapshots</i> A list of the cache nodes in the source cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomaticFailover</i> Indicates the status of automatic failover for the source Redis replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NumNodeGroups</i> The number of node groups (shards) in this snapshot. When restoring from a snapshot, the number of node groups (shards) in the snapshot and in the restored replication group must be the same.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotWindow</i> The daily time range during which ElastiCache takes daily snapshots of the source cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotRetentionLimit</i> For an automatic snapshot, the number of days for which ElastiCache retains the snapshot before deleting it. For manual snapshots, this field reflects the <code>SnapshotRetentionLimit</code> for the source cluster when the snapshot was created. This field is otherwise ignored: Manual snapshots do not expire, and can only be deleted using the <code>DeleteSnapshot</code> operation.   <b>Important</b> If the value of SnapshotRetentionLimit is set to zero (0), backups are turned off.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoMinorVersionUpgrade</i> This parameter is currently disabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The Amazon Virtual Private Cloud identifier (VPC ID) of the cache subnet group for the source cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheSubnetGroupName</i> The name of the cache subnet group associated with the source cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheParameterGroupName</i> The cache parameter group that is associated with the source cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> The port number used by each cache nodes in the source cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TopicArn</i> The Amazon Resource Name (ARN) for the topic used by the source cluster for publishing notifications.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i> Specifies the weekly time range during which maintenance on the cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period. Valid values for <code>ddd</code> are: <ul> <li>  <code>sun</code>  </li> <li>  <code>mon</code>  </li> <li>  <code>tue</code>  </li> <li>  <code>wed</code>  </li> <li>  <code>thu</code>  </li> <li>  <code>fri</code>  </li> <li>  <code>sat</code>  </li> </ul> Example: <code>sun:23:00-mon:01:30</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheClusterCreateTime</i> The date and time when the source cluster was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredOutpostArn</i> The ARN (Amazon Resource Name) of the preferred outpost.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredAvailabilityZone</i> The name of the Availability Zone in which the source cluster is located.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NumCacheNodes</i> The number of cache nodes in the source cluster. For clusters running Redis, this value must be 1. For clusters running Memcached, this value must be between 1 and 40.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> The version of the cache engine version that is used by the source cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> The name of the cache engine (<code>memcached</code> or <code>redis</code>) used by the source cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheNodeType</i> The name of the compute and memory capacity node type for the source cluster. The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts. <ul> <li> General purpose: <ul> <li> Current generation:   <b>M6g node types</b> (available only for Redis engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward).  <code>cache.m6g.large</code>, <code>cache.m6g.xlarge</code>, <code>cache.m6g.2xlarge</code>, <code>cache.m6g.4xlarge</code>, <code>cache.m6g.8xlarge</code>, <code>cache.m6g.12xlarge</code>, <code>cache.m6g.16xlarge</code>  <note> For region availability, see <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion">Supported Node Types</a>  </note>  <b>M5 node types:</b> <code>cache.m5.large</code>, <code>cache.m5.xlarge</code>, <code>cache.m5.2xlarge</code>, <code>cache.m5.4xlarge</code>, <code>cache.m5.12xlarge</code>, <code>cache.m5.24xlarge</code>   <b>M4 node types:</b> <code>cache.m4.large</code>, <code>cache.m4.xlarge</code>, <code>cache.m4.2xlarge</code>, <code>cache.m4.4xlarge</code>, <code>cache.m4.10xlarge</code>   <b>T3 node types:</b> <code>cache.t3.micro</code>, <code>cache.t3.small</code>, <code>cache.t3.medium</code>   <b>T2 node types:</b> <code>cache.t2.micro</code>, <code>cache.t2.small</code>, <code>cache.t2.medium</code>  </li> <li> Previous generation: (not recommended)  <b>T1 node types:</b> <code>cache.t1.micro</code>   <b>M1 node types:</b> <code>cache.m1.small</code>, <code>cache.m1.medium</code>, <code>cache.m1.large</code>, <code>cache.m1.xlarge</code>   <b>M3 node types:</b> <code>cache.m3.medium</code>, <code>cache.m3.large</code>, <code>cache.m3.xlarge</code>, <code>cache.m3.2xlarge</code>  </li> </ul> </li> <li> Compute optimized: <ul> <li> Previous generation: (not recommended)  <b>C1 node types:</b> <code>cache.c1.xlarge</code>  </li> </ul> </li> <li> Memory optimized: <ul> <li> Current generation:   <b>R6g node types</b> (available only for Redis engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward).  <code>cache.r6g.large</code>, <code>cache.r6g.xlarge</code>, <code>cache.r6g.2xlarge</code>, <code>cache.r6g.4xlarge</code>, <code>cache.r6g.8xlarge</code>, <code>cache.r6g.12xlarge</code>, <code>cache.r6g.16xlarge</code>  <note> For region availability, see <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion">Supported Node Types</a>  </note>  <b>R5 node types:</b> <code>cache.r5.large</code>, <code>cache.r5.xlarge</code>, <code>cache.r5.2xlarge</code>, <code>cache.r5.4xlarge</code>, <code>cache.r5.12xlarge</code>, <code>cache.r5.24xlarge</code>   <b>R4 node types:</b> <code>cache.r4.large</code>, <code>cache.r4.xlarge</code>, <code>cache.r4.2xlarge</code>, <code>cache.r4.4xlarge</code>, <code>cache.r4.8xlarge</code>, <code>cache.r4.16xlarge</code>  </li> <li> Previous generation: (not recommended)  <b>M2 node types:</b> <code>cache.m2.xlarge</code>, <code>cache.m2.2xlarge</code>, <code>cache.m2.4xlarge</code>   <b>R3 node types:</b> <code>cache.r3.large</code>, <code>cache.r3.xlarge</code>, <code>cache.r3.2xlarge</code>, <code>cache.r3.4xlarge</code>, <code>cache.r3.8xlarge</code>  </li> </ul> </li> </ul>  <b>Additional node type info</b>  <ul> <li> All current generation instance types are created in Amazon VPC by default. </li> <li> Redis append-only files (AOF) are not supported for T1 or T2 instances. </li> <li> Redis Multi-AZ with automatic failover is not supported on T1 instances. </li> <li> Redis configuration variables <code>appendonly</code> and <code>appendfsync</code> are not supported on Redis version 2.8.22 and later. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotSource</i> Indicates whether the snapshot is from an automatic backup (<code>automated</code>) or was created manually (<code>manual</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotStatus</i> The status of the snapshot. Valid values: <code>creating</code> | <code>available</code> | <code>restoring</code> | <code>copying</code> | <code>deleting</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheClusterId</i> The user-supplied identifier of the source cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationGroupDescription</i> A description of the source replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationGroupId</i> The unique identifier of the source replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotName</i> The name of a snapshot. For an automatic snapshot, the name is system-generated. For a manual snapshot, this is the user-provided name.<br/>        """
        pass

    def delete_user(self, UserId: str) -> User:
        r"""For Redis engine version 6.x onwards: Deletes a user. The user will be removed from all user groups and in turn removed from all replication groups. For more information, see <a href="http://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Clusters.RBAC.html">Using Role Based Access Control (RBAC)</a>. 

        :param self:
        :param UserId:  The ID of the user.<br/>
        :return: ARN:  The Amazon Resource Name (ARN) of the user.<br/>Authentication:  Denotes whether the user requires a password to authenticate.:<br/>UserGroupIds:  Returns a list of the user group IDs the user belongs to.<br/>AccessString:  Access permissions string used for this user.<br/>Engine:  The current supported value is Redis.<br/>Status:  Indicates the user status. Can be "active", "modifying" or "deleting".<br/>UserName:  The username of the user.<br/>UserId:  The ID of the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PasswordCount</i> The number of passwords belonging to the user. The maximum is two.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> Indicates whether the user requires a password to authenticate.<br/>        """
        pass

    def delete_user_group(self, UserGroupId: str) -> UserGroup:
        r"""For Redis engine version 6.x onwards: Deletes a user group. The user group must first be disassociated from the replication group before it can be deleted. For more information, see <a href="http://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Clusters.RBAC.html">Using Role Based Access Control (RBAC)</a>. 

        :param self:
        :param UserGroupId:  The ID of the user group.<br/>
        :return: ARN:  The Amazon Resource Name (ARN) of the user group.<br/>ReplicationGroups:  A list of replication groups that the user group can access.<br/>PendingChanges:  A list of updates being applied to the user groups.:<br/>UserIds:  The list of user IDs that belong to the user group.<br/>Engine:  The current supported value is Redis. <br/>Status:  Indicates user group status. Can be "creating", "active", "modifying", "deleting".<br/>UserGroupId:  The ID of the user group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserIdsToAdd</i> The list of user IDs to add.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserIdsToRemove</i> The list of user IDs to remove.<br/>        """
        pass

    def describe_cache_clusters(self, CacheClusterId: str=None, MaxRecords: int=None, Marker: str=None, ShowCacheNodeInfo: BooleanOptional=None, ShowCacheClustersNotInReplicationGroups: BooleanOptional=None) -> CacheClusterMessage:
        r"""Returns information about all provisioned clusters if no cluster identifier is specified, or about a specific cache cluster if a cluster identifier is supplied. By default, abbreviated information about the clusters is returned. You can use the optional <i>ShowCacheNodeInfo</i> flag to retrieve detailed information about the cache nodes associated with the clusters. These details include the DNS address and port for the cache node endpoint. If the cluster is in the <i>creating</i> state, only cluster-level information is displayed until all of the nodes are successfully provisioned. If the cluster is in the <i>deleting</i> state, only cluster-level information is displayed. If cache nodes are currently being added to the cluster, node endpoint information and creation time for the additional nodes are not displayed until they are completely provisioned. When the cluster state is <i>available</i>, the cluster is ready for use. If cache nodes are currently being removed from the cluster, no endpoint information for the removed nodes is displayed.

        :param self:
        :param ShowCacheClustersNotInReplicationGroups:  An optional flag that can be included in the <code>DescribeCacheCluster</code> request to show only nodes (API/CLI: clusters) that are not members of a replication group. In practice, this mean Memcached and single node Redis clusters.<br/>ShowCacheNodeInfo:  An optional flag that can be included in the <code>DescribeCacheCluster</code> request to retrieve information about the individual cache nodes.<br/>Marker:  An optional marker returned from a prior request. Use this marker for pagination of results from this operation. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>.<br/>MaxRecords:  The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a marker is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: minimum 20; maximum 100.<br/>CacheClusterId:  The user-supplied cluster identifier. If this parameter is specified, only information about that specific cluster is returned. This parameter isn't case sensitive.<br/>
        :return: CacheClusters:  A list of clusters. Each item in the list contains detailed information about one cluster.<br/>Marker:  Provides an identifier to allow retrieval of paginated results.<br/>        """
        pass

    def describe_cache_engine_versions(self, Engine: str=None, EngineVersion: str=None, CacheParameterGroupFamily: str=None, MaxRecords: int=None, Marker: str=None, DefaultOnly: Boolean=None) -> CacheEngineVersionMessage:
        r"""Returns a list of the available cache engines and their versions.

        :param self:
        :param DefaultOnly:  If <code>true</code>, specifies that only the default version of the specified engine or engine and major version combination is to be returned.<br/>Marker:  An optional marker returned from a prior request. Use this marker for pagination of results from this operation. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>.<br/>MaxRecords:  The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a marker is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: minimum 20; maximum 100.<br/>CacheParameterGroupFamily:  The name of a specific cache parameter group family to return details for. Valid values are: <code>memcached1.4</code> | <code>memcached1.5</code> | <code>memcached1.6</code> | <code>redis2.6</code> | <code>redis2.8</code> | <code>redis3.2</code> | <code>redis4.0</code> | <code>redis5.0</code> | <code>redis6.x</code> |  Constraints: <ul> <li> Must be 1 to 255 alphanumeric characters </li> <li> First character must be a letter </li> <li> Cannot end with a hyphen or contain two consecutive hyphens </li> </ul><br/>EngineVersion:  The cache engine version to return. Example: <code>1.4.14</code> <br/>Engine:  The cache engine to return. Valid values: <code>memcached</code> | <code>redis</code> <br/>
        :return: CacheEngineVersions:  A list of cache engine version details. Each element in the list contains detailed information about one cache engine version.<br/>Marker:  Provides an identifier to allow retrieval of paginated results.<br/>        """
        pass

    def describe_cache_parameter_groups(self, CacheParameterGroupName: str=None, MaxRecords: int=None, Marker: str=None) -> CacheParameterGroupsMessage:
        r"""Returns a list of cache parameter group descriptions. If a cache parameter group name is specified, the list contains only the descriptions for that group.

        :param self:
        :param Marker:  An optional marker returned from a prior request. Use this marker for pagination of results from this operation. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>.<br/>MaxRecords:  The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a marker is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: minimum 20; maximum 100.<br/>CacheParameterGroupName:  The name of a specific cache parameter group to return details for.<br/>
        :return: CacheParameterGroups:  A list of cache parameter groups. Each element in the list contains detailed information about one cache parameter group.<br/>Marker:  Provides an identifier to allow retrieval of paginated results.<br/>        """
        pass

    def describe_cache_parameters(self, CacheParameterGroupName: str, Source: str=None, MaxRecords: int=None, Marker: str=None) -> CacheParameterGroupDetails:
        r"""Returns the detailed parameter list for a particular cache parameter group.

        :param self:
        :param Marker:  An optional marker returned from a prior request. Use this marker for pagination of results from this operation. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>.<br/>MaxRecords:  The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a marker is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: minimum 20; maximum 100.<br/>Source:  The parameter types to return. Valid values: <code>user</code> | <code>system</code> | <code>engine-default</code> <br/>CacheParameterGroupName:  The name of a specific cache parameter group to return details for.<br/>
        :return: CacheNodeTypeSpecificParameters:  A list of parameters specific to a particular cache node type. Each element in the list contains detailed information about one parameter.<br/>Parameters:  A list of <a>Parameter</a> instances.<br/>Marker:  Provides an identifier to allow retrieval of paginated results.<br/>        """
        pass

    def describe_cache_security_groups(self, CacheSecurityGroupName: str=None, MaxRecords: int=None, Marker: str=None) -> CacheSecurityGroupMessage:
        r"""Returns a list of cache security group descriptions. If a cache security group name is specified, the list contains only the description of that group. This applicable only when you have ElastiCache in Classic setup 

        :param self:
        :param Marker:  An optional marker returned from a prior request. Use this marker for pagination of results from this operation. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>.<br/>MaxRecords:  The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a marker is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: minimum 20; maximum 100.<br/>CacheSecurityGroupName:  The name of the cache security group to return details for.<br/>
        :return: CacheSecurityGroups:  A list of cache security groups. Each element in the list contains detailed information about one group.<br/>Marker:  Provides an identifier to allow retrieval of paginated results.<br/>        """
        pass

    def describe_cache_subnet_groups(self, CacheSubnetGroupName: str=None, MaxRecords: int=None, Marker: str=None) -> CacheSubnetGroupMessage:
        r"""Returns a list of cache subnet group descriptions. If a subnet group name is specified, the list contains only the description of that group. This is applicable only when you have ElastiCache in VPC setup. All ElastiCache clusters now launch in VPC by default. 

        :param self:
        :param Marker:  An optional marker returned from a prior request. Use this marker for pagination of results from this operation. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>.<br/>MaxRecords:  The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a marker is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: minimum 20; maximum 100.<br/>CacheSubnetGroupName:  The name of the cache subnet group to return details for.<br/>
        :return: CacheSubnetGroups:  A list of cache subnet groups. Each element in the list contains detailed information about one group.<br/>Marker:  Provides an identifier to allow retrieval of paginated results.<br/>        """
        pass

    def describe_engine_default_parameters(self, CacheParameterGroupFamily: str, MaxRecords: int=None, Marker: str=None) -> DescribeEngineDefaultParametersResult:
        r"""Returns the default engine and system parameter information for the specified cache engine.

        :param self:
        :param Marker:  An optional marker returned from a prior request. Use this marker for pagination of results from this operation. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>.<br/>MaxRecords:  The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a marker is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: minimum 20; maximum 100.<br/>CacheParameterGroupFamily:  The name of the cache parameter group family. Valid values are: <code>memcached1.4</code> | <code>memcached1.5</code> | <code>memcached1.6</code> | <code>redis2.6</code> | <code>redis2.8</code> | <code>redis3.2</code> | <code>redis4.0</code> | <code>redis5.0</code> | <code>redis6.x</code> | <br/>
        :return: EngineDefaults:  Represents the output of a <code>DescribeEngineDefaultParameters</code> operation.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheNodeTypeSpecificParameters</i> A list of parameters specific to a particular cache node type. Each element in the list contains detailed information about one parameter.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Parameters</i> Contains a list of engine default parameters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Marker</i> Provides an identifier to allow retrieval of paginated results.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheParameterGroupFamily</i> Specifies the name of the cache parameter group family to which the engine default parameters apply. Valid values are: <code>memcached1.4</code> | <code>memcached1.5</code> | <code>memcached1.6</code> | <code>redis2.6</code> | <code>redis2.8</code> | <code>redis3.2</code> | <code>redis4.0</code> | <code>redis5.0</code> | <code>redis6.x</code> | <br/>        """
        pass

    def describe_events(self, SourceIdentifier: str=None, SourceType: str=None, StartTime: TStamp=None, EndTime: TStamp=None, Duration: int=None, MaxRecords: int=None, Marker: str=None) -> EventsMessage:
        r"""Returns events related to clusters, cache security groups, and cache parameter groups. You can obtain events specific to a particular cluster, cache security group, or cache parameter group by providing the name as a parameter. By default, only the events occurring within the last hour are returned; however, you can retrieve up to 14 days' worth of events if necessary.

        :param self:
        :param Marker:  An optional marker returned from a prior request. Use this marker for pagination of results from this operation. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>.<br/>MaxRecords:  The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a marker is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: minimum 20; maximum 100.<br/>Duration:  The number of minutes worth of events to retrieve.<br/>EndTime:  The end of the time interval for which to retrieve events, specified in ISO 8601 format.  <b>Example:</b> 2017-03-30T07:03:49.555Z<br/>StartTime:  The beginning of the time interval to retrieve events for, specified in ISO 8601 format.  <b>Example:</b> 2017-03-30T07:03:49.555Z<br/>SourceType:  The event source to retrieve events for. If no value is specified, all events are returned.<br/>SourceIdentifier:  The identifier of the event source for which events are returned. If not specified, all sources are included in the response.<br/>
        :return: Events:  A list of events. Each element in the list contains detailed information about one event.<br/>Marker:  Provides an identifier to allow retrieval of paginated results.<br/>        """
        pass

    def describe_global_replication_groups(self, GlobalReplicationGroupId: str=None, MaxRecords: int=None, Marker: str=None, ShowMemberInfo: BooleanOptional=None) -> DescribeGlobalReplicationGroupsResult:
        r"""Returns information about a particular global replication group. If no identifier is specified, returns information about all Global datastores. 

        :param self:
        :param ShowMemberInfo:  Returns the list of members that comprise the Global datastore.<br/>Marker:  An optional marker returned from a prior request. Use this marker for pagination of results from this operation. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>. <br/>MaxRecords:  The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a marker is included in the response so that the remaining results can be retrieved. <br/>GlobalReplicationGroupId:  The name of the Global datastore<br/>
        :return: GlobalReplicationGroups:  Indicates the slot configuration and global identifier for each slice group.<br/>Marker:  An optional marker returned from a prior request. Use this marker for pagination of results from this operation. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. &gt;<br/>        """
        pass

    def describe_replication_groups(self, ReplicationGroupId: str=None, MaxRecords: int=None, Marker: str=None) -> ReplicationGroupMessage:
        r"""Returns information about a particular replication group. If no identifier is specified, <code>DescribeReplicationGroups</code> returns information about all replication groups. <note> This operation is valid for Redis only. </note>

        :param self:
        :param Marker:  An optional marker returned from a prior request. Use this marker for pagination of results from this operation. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>.<br/>MaxRecords:  The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a marker is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: minimum 20; maximum 100.<br/>ReplicationGroupId:  The identifier for the replication group to be described. This parameter is not case sensitive. If you do not specify this parameter, information about all replication groups is returned.<br/>
        :return: ReplicationGroups:  A list of replication groups. Each item in the list contains detailed information about one replication group.<br/>Marker:  Provides an identifier to allow retrieval of paginated results.<br/>        """
        pass

    def describe_reserved_cache_nodes(self, ReservedCacheNodeId: str=None, ReservedCacheNodesOfferingId: str=None, CacheNodeType: str=None, Duration: str=None, ProductDescription: str=None, OfferingType: str=None, MaxRecords: int=None, Marker: str=None) -> ReservedCacheNodeMessage:
        r"""Returns information about reserved cache nodes for this account, or about a specified reserved cache node.

        :param self:
        :param Marker:  An optional marker returned from a prior request. Use this marker for pagination of results from this operation. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>.<br/>MaxRecords:  The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a marker is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: minimum 20; maximum 100.<br/>OfferingType:  The offering type filter value. Use this parameter to show only the available offerings matching the specified offering type. Valid values: <code>"Light Utilization"|"Medium Utilization"|"Heavy Utilization"|"All Upfront"|"Partial Upfront"| "No Upfront"</code> <br/>ProductDescription:  The product description filter value. Use this parameter to show only those reservations matching the specified product description.<br/>Duration:  The duration filter value, specified in years or seconds. Use this parameter to show only reservations for this duration. Valid Values: <code>1 | 3 | 31536000 | 94608000</code> <br/>CacheNodeType:  The cache node type filter value. Use this parameter to show only those reservations matching the specified cache node type. The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts. <ul> <li> General purpose: <ul> <li> Current generation:   <b>M6g node types</b> (available only for Redis engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward).  <code>cache.m6g.large</code>, <code>cache.m6g.xlarge</code>, <code>cache.m6g.2xlarge</code>, <code>cache.m6g.4xlarge</code>, <code>cache.m6g.8xlarge</code>, <code>cache.m6g.12xlarge</code>, <code>cache.m6g.16xlarge</code>  <note> For region availability, see <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion">Supported Node Types</a>  </note>  <b>M5 node types:</b> <code>cache.m5.large</code>, <code>cache.m5.xlarge</code>, <code>cache.m5.2xlarge</code>, <code>cache.m5.4xlarge</code>, <code>cache.m5.12xlarge</code>, <code>cache.m5.24xlarge</code>   <b>M4 node types:</b> <code>cache.m4.large</code>, <code>cache.m4.xlarge</code>, <code>cache.m4.2xlarge</code>, <code>cache.m4.4xlarge</code>, <code>cache.m4.10xlarge</code>   <b>T3 node types:</b> <code>cache.t3.micro</code>, <code>cache.t3.small</code>, <code>cache.t3.medium</code>   <b>T2 node types:</b> <code>cache.t2.micro</code>, <code>cache.t2.small</code>, <code>cache.t2.medium</code>  </li> <li> Previous generation: (not recommended)  <b>T1 node types:</b> <code>cache.t1.micro</code>   <b>M1 node types:</b> <code>cache.m1.small</code>, <code>cache.m1.medium</code>, <code>cache.m1.large</code>, <code>cache.m1.xlarge</code>   <b>M3 node types:</b> <code>cache.m3.medium</code>, <code>cache.m3.large</code>, <code>cache.m3.xlarge</code>, <code>cache.m3.2xlarge</code>  </li> </ul> </li> <li> Compute optimized: <ul> <li> Previous generation: (not recommended)  <b>C1 node types:</b> <code>cache.c1.xlarge</code>  </li> </ul> </li> <li> Memory optimized: <ul> <li> Current generation:   <b>R6g node types</b> (available only for Redis engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward).  <code>cache.r6g.large</code>, <code>cache.r6g.xlarge</code>, <code>cache.r6g.2xlarge</code>, <code>cache.r6g.4xlarge</code>, <code>cache.r6g.8xlarge</code>, <code>cache.r6g.12xlarge</code>, <code>cache.r6g.16xlarge</code>  <note> For region availability, see <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion">Supported Node Types</a>  </note>  <b>R5 node types:</b> <code>cache.r5.large</code>, <code>cache.r5.xlarge</code>, <code>cache.r5.2xlarge</code>, <code>cache.r5.4xlarge</code>, <code>cache.r5.12xlarge</code>, <code>cache.r5.24xlarge</code>   <b>R4 node types:</b> <code>cache.r4.large</code>, <code>cache.r4.xlarge</code>, <code>cache.r4.2xlarge</code>, <code>cache.r4.4xlarge</code>, <code>cache.r4.8xlarge</code>, <code>cache.r4.16xlarge</code>  </li> <li> Previous generation: (not recommended)  <b>M2 node types:</b> <code>cache.m2.xlarge</code>, <code>cache.m2.2xlarge</code>, <code>cache.m2.4xlarge</code>   <b>R3 node types:</b> <code>cache.r3.large</code>, <code>cache.r3.xlarge</code>, <code>cache.r3.2xlarge</code>, <code>cache.r3.4xlarge</code>, <code>cache.r3.8xlarge</code>  </li> </ul> </li> </ul>  <b>Additional node type info</b>  <ul> <li> All current generation instance types are created in Amazon VPC by default. </li> <li> Redis append-only files (AOF) are not supported for T1 or T2 instances. </li> <li> Redis Multi-AZ with automatic failover is not supported on T1 instances. </li> <li> Redis configuration variables <code>appendonly</code> and <code>appendfsync</code> are not supported on Redis version 2.8.22 and later. </li> </ul><br/>ReservedCacheNodesOfferingId:  The offering identifier filter value. Use this parameter to show only purchased reservations matching the specified offering identifier.<br/>ReservedCacheNodeId:  The reserved cache node identifier filter value. Use this parameter to show only the reservation that matches the specified reservation ID.<br/>
        :return: ReservedCacheNodes:  A list of reserved cache nodes. Each element in the list contains detailed information about one node.<br/>Marker:  Provides an identifier to allow retrieval of paginated results.<br/>        """
        pass

    def describe_reserved_cache_nodes_offerings(self, ReservedCacheNodesOfferingId: str=None, CacheNodeType: str=None, Duration: str=None, ProductDescription: str=None, OfferingType: str=None, MaxRecords: int=None, Marker: str=None) -> ReservedCacheNodesOfferingMessage:
        r"""Lists available reserved cache node offerings.

        :param self:
        :param Marker:  An optional marker returned from a prior request. Use this marker for pagination of results from this operation. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>.<br/>MaxRecords:  The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a marker is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: minimum 20; maximum 100.<br/>OfferingType:  The offering type filter value. Use this parameter to show only the available offerings matching the specified offering type. Valid Values: <code>"Light Utilization"|"Medium Utilization"|"Heavy Utilization" |"All Upfront"|"Partial Upfront"| "No Upfront"</code> <br/>ProductDescription:  The product description filter value. Use this parameter to show only the available offerings matching the specified product description.<br/>Duration:  Duration filter value, specified in years or seconds. Use this parameter to show only reservations for a given duration. Valid Values: <code>1 | 3 | 31536000 | 94608000</code> <br/>CacheNodeType:  The cache node type filter value. Use this parameter to show only the available offerings matching the specified cache node type. The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts. <ul> <li> General purpose: <ul> <li> Current generation:   <b>M6g node types</b> (available only for Redis engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward).  <code>cache.m6g.large</code>, <code>cache.m6g.xlarge</code>, <code>cache.m6g.2xlarge</code>, <code>cache.m6g.4xlarge</code>, <code>cache.m6g.8xlarge</code>, <code>cache.m6g.12xlarge</code>, <code>cache.m6g.16xlarge</code>  <note> For region availability, see <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion">Supported Node Types</a>  </note>  <b>M5 node types:</b> <code>cache.m5.large</code>, <code>cache.m5.xlarge</code>, <code>cache.m5.2xlarge</code>, <code>cache.m5.4xlarge</code>, <code>cache.m5.12xlarge</code>, <code>cache.m5.24xlarge</code>   <b>M4 node types:</b> <code>cache.m4.large</code>, <code>cache.m4.xlarge</code>, <code>cache.m4.2xlarge</code>, <code>cache.m4.4xlarge</code>, <code>cache.m4.10xlarge</code>   <b>T3 node types:</b> <code>cache.t3.micro</code>, <code>cache.t3.small</code>, <code>cache.t3.medium</code>   <b>T2 node types:</b> <code>cache.t2.micro</code>, <code>cache.t2.small</code>, <code>cache.t2.medium</code>  </li> <li> Previous generation: (not recommended)  <b>T1 node types:</b> <code>cache.t1.micro</code>   <b>M1 node types:</b> <code>cache.m1.small</code>, <code>cache.m1.medium</code>, <code>cache.m1.large</code>, <code>cache.m1.xlarge</code>   <b>M3 node types:</b> <code>cache.m3.medium</code>, <code>cache.m3.large</code>, <code>cache.m3.xlarge</code>, <code>cache.m3.2xlarge</code>  </li> </ul> </li> <li> Compute optimized: <ul> <li> Previous generation: (not recommended)  <b>C1 node types:</b> <code>cache.c1.xlarge</code>  </li> </ul> </li> <li> Memory optimized: <ul> <li> Current generation:   <b>R6g node types</b> (available only for Redis engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward).  <code>cache.r6g.large</code>, <code>cache.r6g.xlarge</code>, <code>cache.r6g.2xlarge</code>, <code>cache.r6g.4xlarge</code>, <code>cache.r6g.8xlarge</code>, <code>cache.r6g.12xlarge</code>, <code>cache.r6g.16xlarge</code>  <note> For region availability, see <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion">Supported Node Types</a>  </note>  <b>R5 node types:</b> <code>cache.r5.large</code>, <code>cache.r5.xlarge</code>, <code>cache.r5.2xlarge</code>, <code>cache.r5.4xlarge</code>, <code>cache.r5.12xlarge</code>, <code>cache.r5.24xlarge</code>   <b>R4 node types:</b> <code>cache.r4.large</code>, <code>cache.r4.xlarge</code>, <code>cache.r4.2xlarge</code>, <code>cache.r4.4xlarge</code>, <code>cache.r4.8xlarge</code>, <code>cache.r4.16xlarge</code>  </li> <li> Previous generation: (not recommended)  <b>M2 node types:</b> <code>cache.m2.xlarge</code>, <code>cache.m2.2xlarge</code>, <code>cache.m2.4xlarge</code>   <b>R3 node types:</b> <code>cache.r3.large</code>, <code>cache.r3.xlarge</code>, <code>cache.r3.2xlarge</code>, <code>cache.r3.4xlarge</code>, <code>cache.r3.8xlarge</code>  </li> </ul> </li> </ul>  <b>Additional node type info</b>  <ul> <li> All current generation instance types are created in Amazon VPC by default. </li> <li> Redis append-only files (AOF) are not supported for T1 or T2 instances. </li> <li> Redis Multi-AZ with automatic failover is not supported on T1 instances. </li> <li> Redis configuration variables <code>appendonly</code> and <code>appendfsync</code> are not supported on Redis version 2.8.22 and later. </li> </ul><br/>ReservedCacheNodesOfferingId:  The offering identifier filter value. Use this parameter to show only the available offering that matches the specified reservation identifier. Example: <code>438012d3-4052-4cc7-b2e3-8d3372e0e706</code> <br/>
        :return: ReservedCacheNodesOfferings:  A list of reserved cache node offerings. Each element in the list contains detailed information about one offering.<br/>Marker:  Provides an identifier to allow retrieval of paginated results.<br/>        """
        pass

    def describe_service_updates(self, ServiceUpdateName: str=None, ServiceUpdateStatus: List[ServiceUpdateStatus]=None, MaxRecords: int=None, Marker: str=None) -> ServiceUpdatesMessage:
        r"""Returns details of the service updates

        :param self:
        :param Marker:  An optional marker returned from a prior request. Use this marker for pagination of results from this operation. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>.<br/>MaxRecords:  The maximum number of records to include in the response<br/>ServiceUpdateStatus:  The status of the service update<br/>ServiceUpdateName:  The unique ID of the service update<br/>
        :return: ServiceUpdates:  A list of service updates<br/>Marker:  An optional marker returned from a prior request. Use this marker for pagination of results from this operation. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>.<br/>        """
        pass

    def describe_snapshots(self, ReplicationGroupId: str=None, CacheClusterId: str=None, SnapshotName: str=None, SnapshotSource: str=None, Marker: str=None, MaxRecords: int=None, ShowNodeGroupConfig: BooleanOptional=None) -> DescribeSnapshotsListMessage:
        r"""Returns information about cluster or replication group snapshots. By default, <code>DescribeSnapshots</code> lists all of your snapshots; it can optionally describe a single snapshot, or just the snapshots associated with a particular cache cluster. <note> This operation is valid for Redis only. </note>

        :param self:
        :param ShowNodeGroupConfig:  A Boolean value which if true, the node group (shard) configuration is included in the snapshot description.<br/>MaxRecords:  The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a marker is included in the response so that the remaining results can be retrieved. Default: 50 Constraints: minimum 20; maximum 50.<br/>Marker:  An optional marker returned from a prior request. Use this marker for pagination of results from this operation. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>.<br/>SnapshotSource:  If set to <code>system</code>, the output shows snapshots that were automatically created by ElastiCache. If set to <code>user</code> the output shows snapshots that were manually created. If omitted, the output shows both automatically and manually created snapshots.<br/>SnapshotName:  A user-supplied name of the snapshot. If this parameter is specified, only this snapshot are described.<br/>CacheClusterId:  A user-supplied cluster identifier. If this parameter is specified, only snapshots associated with that specific cluster are described.<br/>ReplicationGroupId:  A user-supplied replication group identifier. If this parameter is specified, only snapshots associated with that specific replication group are described.<br/>
        :return: Snapshots:  A list of snapshots. Each item in the list contains detailed information about one snapshot.<br/>Marker:  An optional marker returned from a prior request. Use this marker for pagination of results from this operation. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>.<br/>        """
        pass

    def describe_update_actions(self, ServiceUpdateName: str=None, ReplicationGroupIds: List[String]=None, CacheClusterIds: List[String]=None, Engine: str=None, ServiceUpdateStatus: List[ServiceUpdateStatus]=None, ServiceUpdateTimeRange: TimeRangeFilter=None, UpdateActionStatus: List[UpdateActionStatus]=None, ShowNodeLevelUpdateStatus: BooleanOptional=None, MaxRecords: int=None, Marker: str=None) -> UpdateActionsMessage:
        r"""Returns details of the update actions 

        :param self:
        :param Marker:  An optional marker returned from a prior request. Use this marker for pagination of results from this operation. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>.<br/>MaxRecords:  The maximum number of records to include in the response<br/>ShowNodeLevelUpdateStatus:  Dictates whether to include node level update status in the response <br/>UpdateActionStatus:  The status of the update action.<br/>ServiceUpdateTimeRange:  The range of time specified to search for service updates that are in available status:<br/>ServiceUpdateStatus:  The status of the service update<br/>Engine:  The Elasticache engine to which the update applies. Either Redis or Memcached <br/>CacheClusterIds:  The cache cluster IDs<br/>ReplicationGroupIds:  The replication group IDs<br/>ServiceUpdateName:  The unique ID of the service update<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndTime</i> The end time of the time range filter<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StartTime</i> The start time of the time range filter<br/>
        :return: UpdateActions:  Returns a list of update actions<br/>Marker:  An optional marker returned from a prior request. Use this marker for pagination of results from this operation. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>.<br/>        """
        pass

    def describe_user_groups(self, UserGroupId: str=None, MaxRecords: int=None, Marker: str=None) -> DescribeUserGroupsResult:
        r"""Returns a list of user groups.

        :param self:
        :param Marker:  An optional marker returned from a prior request. Use this marker for pagination of results from this operation. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. &gt;<br/>MaxRecords:  The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a marker is included in the response so that the remaining results can be retrieved. <br/>UserGroupId:  The ID of the user group.<br/>
        :return: Marker:  An optional marker returned from a prior request. Use this marker for pagination of results from this operation. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. &gt;<br/>UserGroups:  Returns a list of user groups.<br/>        """
        pass

    def describe_users(self, Engine: str=None, UserId: str=None, Filters: List[Filter]=None, MaxRecords: int=None, Marker: str=None) -> DescribeUsersResult:
        r"""Returns a list of users.

        :param self:
        :param Marker:  An optional marker returned from a prior request. Use this marker for pagination of results from this operation. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. &gt;<br/>MaxRecords:  The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a marker is included in the response so that the remaining results can be retrieved. <br/>Filters:  Filter to determine the list of User IDs to return.<br/>UserId:  The ID of the user.<br/>Engine:  The Redis engine. <br/>
        :return: Marker:  An optional marker returned from a prior request. Use this marker for pagination of results from this operation. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. &gt;<br/>Users:  A list of users.<br/>        """
        pass

    def disassociate_global_replication_group(self, ReplicationGroupRegion: str, ReplicationGroupId: str, GlobalReplicationGroupId: str) -> DisassociateGlobalReplicationGroupResult:
        r"""Remove a secondary cluster from the Global datastore using the Global datastore name. The secondary cluster will no longer receive updates from the primary cluster, but will remain as a standalone cluster in that AWS region.

        :param self:
        :param ReplicationGroupRegion:  The AWS region of secondary cluster you wish to remove from the Global datastore<br/>ReplicationGroupId:  The name of the secondary cluster you wish to remove from the Global datastore<br/>GlobalReplicationGroupId:  The name of the Global datastore<br/>
        :return: GlobalReplicationGroup:  Consists of a primary cluster that accepts writes and an associated secondary cluster that resides in a different AWS region. The secondary cluster accepts only reads. The primary cluster automatically replicates updates to the secondary cluster. <ul> <li> The <b>GlobalReplicationGroupIdSuffix</b> represents the name of the Global datastore, which is what you use to associate a secondary cluster. </li> </ul>:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ARN</i> The ARN (Amazon Resource Name) of the global replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AtRestEncryptionEnabled</i> A flag that enables encryption at rest when set to <code>true</code>. You cannot modify the value of <code>AtRestEncryptionEnabled</code> after the replication group is created. To enable encryption at rest on a replication group you must set <code>AtRestEncryptionEnabled</code> to <code>true</code> when you create the replication group.   <b>Required:</b> Only available when creating a replication group in an Amazon VPC using redis version <code>3.2.6</code>, <code>4.x</code> or later.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitEncryptionEnabled</i> A flag that enables in-transit encryption when set to true. You cannot modify the value of <code>TransitEncryptionEnabled</code> after the cluster is created. To enable in-transit encryption on a cluster you must set <code>TransitEncryptionEnabled</code> to true when you create a cluster.   <b>Required:</b> Only available when creating a replication group in an Amazon VPC using redis version <code>3.2.6</code>, <code>4.x</code> or later.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AuthTokenEnabled</i> A flag that enables using an <code>AuthToken</code> (password) when issuing Redis commands. Default: <code>false</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalNodeGroups</i> Indicates the slot configuration and global identifier for each slice group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterEnabled</i> A flag that indicates whether the Global datastore is cluster enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Members</i> The replication groups that comprise the Global datastore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> The Elasticache Redis engine version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> The Elasticache engine. For Redis only.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheNodeType</i> The cache node type of the Global datastore<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the Global datastore<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalReplicationGroupDescription</i> The optional description of the Global datastore<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalReplicationGroupId</i> The name of the Global datastore<br/>        """
        pass

    def failover_global_replication_group(self, PrimaryReplicationGroupId: str, PrimaryRegion: str, GlobalReplicationGroupId: str) -> FailoverGlobalReplicationGroupResult:
        r"""Used to failover the primary region to a selected secondary region. The selected secondary region will become primary, and all other clusters will become secondary.

        :param self:
        :param PrimaryReplicationGroupId:  The name of the primary replication group<br/>PrimaryRegion:  The AWS region of the primary cluster of the Global datastore<br/>GlobalReplicationGroupId:  The name of the Global datastore<br/>
        :return: GlobalReplicationGroup:  Consists of a primary cluster that accepts writes and an associated secondary cluster that resides in a different AWS region. The secondary cluster accepts only reads. The primary cluster automatically replicates updates to the secondary cluster. <ul> <li> The <b>GlobalReplicationGroupIdSuffix</b> represents the name of the Global datastore, which is what you use to associate a secondary cluster. </li> </ul>:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ARN</i> The ARN (Amazon Resource Name) of the global replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AtRestEncryptionEnabled</i> A flag that enables encryption at rest when set to <code>true</code>. You cannot modify the value of <code>AtRestEncryptionEnabled</code> after the replication group is created. To enable encryption at rest on a replication group you must set <code>AtRestEncryptionEnabled</code> to <code>true</code> when you create the replication group.   <b>Required:</b> Only available when creating a replication group in an Amazon VPC using redis version <code>3.2.6</code>, <code>4.x</code> or later.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitEncryptionEnabled</i> A flag that enables in-transit encryption when set to true. You cannot modify the value of <code>TransitEncryptionEnabled</code> after the cluster is created. To enable in-transit encryption on a cluster you must set <code>TransitEncryptionEnabled</code> to true when you create a cluster.   <b>Required:</b> Only available when creating a replication group in an Amazon VPC using redis version <code>3.2.6</code>, <code>4.x</code> or later.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AuthTokenEnabled</i> A flag that enables using an <code>AuthToken</code> (password) when issuing Redis commands. Default: <code>false</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalNodeGroups</i> Indicates the slot configuration and global identifier for each slice group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterEnabled</i> A flag that indicates whether the Global datastore is cluster enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Members</i> The replication groups that comprise the Global datastore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> The Elasticache Redis engine version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> The Elasticache engine. For Redis only.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheNodeType</i> The cache node type of the Global datastore<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the Global datastore<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalReplicationGroupDescription</i> The optional description of the Global datastore<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalReplicationGroupId</i> The name of the Global datastore<br/>        """
        pass

    def increase_node_groups_in_global_replication_group(self, ApplyImmediately: Boolean, NodeGroupCount: int, GlobalReplicationGroupId: str, RegionalConfigurations: List[RegionalConfiguration]=None) -> IncreaseNodeGroupsInGlobalReplicationGroupResult:
        r"""Increase the number of node groups in the Global datastore

        :param self:
        :param ApplyImmediately:  Indicates that the process begins immediately. At present, the only permitted value for this parameter is true.<br/>RegionalConfigurations:  Describes the replication group IDs, the AWS regions where they are stored and the shard configuration for each that comprise the Global datastore<br/>NodeGroupCount:  The number of node groups you wish to add<br/>GlobalReplicationGroupId:  The name of the Global datastore<br/>
        :return: GlobalReplicationGroup:  Consists of a primary cluster that accepts writes and an associated secondary cluster that resides in a different AWS region. The secondary cluster accepts only reads. The primary cluster automatically replicates updates to the secondary cluster. <ul> <li> The <b>GlobalReplicationGroupIdSuffix</b> represents the name of the Global datastore, which is what you use to associate a secondary cluster. </li> </ul>:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ARN</i> The ARN (Amazon Resource Name) of the global replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AtRestEncryptionEnabled</i> A flag that enables encryption at rest when set to <code>true</code>. You cannot modify the value of <code>AtRestEncryptionEnabled</code> after the replication group is created. To enable encryption at rest on a replication group you must set <code>AtRestEncryptionEnabled</code> to <code>true</code> when you create the replication group.   <b>Required:</b> Only available when creating a replication group in an Amazon VPC using redis version <code>3.2.6</code>, <code>4.x</code> or later.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitEncryptionEnabled</i> A flag that enables in-transit encryption when set to true. You cannot modify the value of <code>TransitEncryptionEnabled</code> after the cluster is created. To enable in-transit encryption on a cluster you must set <code>TransitEncryptionEnabled</code> to true when you create a cluster.   <b>Required:</b> Only available when creating a replication group in an Amazon VPC using redis version <code>3.2.6</code>, <code>4.x</code> or later.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AuthTokenEnabled</i> A flag that enables using an <code>AuthToken</code> (password) when issuing Redis commands. Default: <code>false</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalNodeGroups</i> Indicates the slot configuration and global identifier for each slice group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterEnabled</i> A flag that indicates whether the Global datastore is cluster enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Members</i> The replication groups that comprise the Global datastore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> The Elasticache Redis engine version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> The Elasticache engine. For Redis only.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheNodeType</i> The cache node type of the Global datastore<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the Global datastore<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalReplicationGroupDescription</i> The optional description of the Global datastore<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalReplicationGroupId</i> The name of the Global datastore<br/>        """
        pass

    def increase_replica_count(self, ApplyImmediately: Boolean, ReplicationGroupId: str, NewReplicaCount: int=None, ReplicaConfiguration: List[ConfigureShard]=None) -> IncreaseReplicaCountResult:
        r"""Dynamically increases the number of replicas in a Redis (cluster mode disabled) replication group or the number of replica nodes in one or more node groups (shards) of a Redis (cluster mode enabled) replication group. This operation is performed with no cluster down time.

        :param self:
        :param ApplyImmediately:  If <code>True</code>, the number of replica nodes is increased immediately. <code>ApplyImmediately=False</code> is not currently supported.<br/>ReplicaConfiguration:  A list of <code>ConfigureShard</code> objects that can be used to configure each shard in a Redis (cluster mode enabled) replication group. The <code>ConfigureShard</code> has three members: <code>NewReplicaCount</code>, <code>NodeGroupId</code>, and <code>PreferredAvailabilityZones</code>.<br/>NewReplicaCount:  The number of read replica nodes you want at the completion of this operation. For Redis (cluster mode disabled) replication groups, this is the number of replica nodes in the replication group. For Redis (cluster mode enabled) replication groups, this is the number of replica nodes in each of the replication group's node groups.<br/>ReplicationGroupId:  The id of the replication group to which you want to add replica nodes.<br/>
        :return: ReplicationGroup:  Contains all of the attributes of a specific Redis replication group.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogDeliveryConfigurations</i> Returns the destination, format and type of the logs. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserGroupIds</i> The list of user group IDs that have access to the replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ARN</i> The ARN (Amazon Resource Name) of the replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The ID of the KMS key used to encrypt the disk in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MemberClustersOutpostArns</i> The outpost ARNs of the replication group's member clusters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AtRestEncryptionEnabled</i> A flag that enables encryption at-rest when set to <code>true</code>. You cannot modify the value of <code>AtRestEncryptionEnabled</code> after the cluster is created. To enable encryption at-rest on a cluster you must set <code>AtRestEncryptionEnabled</code> to <code>true</code> when you create a cluster.  <b>Required:</b> Only available when creating a replication group in an Amazon VPC using redis version <code>3.2.6</code>, <code>4.x</code> or later. Default: <code>false</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitEncryptionEnabled</i> A flag that enables in-transit encryption when set to <code>true</code>. You cannot modify the value of <code>TransitEncryptionEnabled</code> after the cluster is created. To enable in-transit encryption on a cluster you must set <code>TransitEncryptionEnabled</code> to <code>true</code> when you create a cluster.  <b>Required:</b> Only available when creating a replication group in an Amazon VPC using redis version <code>3.2.6</code>, <code>4.x</code> or later. Default: <code>false</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AuthTokenLastModifiedDate</i> The date the auth token was last modified<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AuthTokenEnabled</i> A flag that enables using an <code>AuthToken</code> (password) when issuing Redis commands. Default: <code>false</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheNodeType</i> The name of the compute and memory capacity node type for each node in the replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterEnabled</i> A flag indicating whether or not this replication group is cluster enabled; i.e., whether its data can be partitioned across multiple shards (API/CLI: node groups). Valid values: <code>true</code> | <code>false</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotWindow</i> The daily time range (in UTC) during which ElastiCache begins taking a daily snapshot of your node group (shard). Example: <code>05:00-09:00</code>  If you do not specify this parameter, ElastiCache automatically chooses an appropriate time range. <note> This parameter is only valid if the <code>Engine</code> parameter is <code>redis</code>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotRetentionLimit</i> The number of days for which ElastiCache retains automatic cluster snapshots before deleting them. For example, if you set <code>SnapshotRetentionLimit</code> to 5, a snapshot that was taken today is retained for 5 days before being deleted. <important>  If the value of <code>SnapshotRetentionLimit</code> is set to zero (0), backups are turned off. </important><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConfigurationEndpoint</i> The configuration endpoint for this replication group. Use the configuration endpoint to connect to this replication group.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ConfigurationEndpoint</b>: The configuration endpoint for this replication group. Use the configuration endpoint to connect to this replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiAZ</i> A flag indicating if you have Multi-AZ enabled to enhance fault tolerance. For more information, see <a href="http://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/AutoFailover.html">Minimizing Downtime: Multi-AZ</a> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomaticFailover</i> Indicates the status of automatic failover for this Redis replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshottingClusterId</i> The cluster ID that is used as the daily snapshot source for the replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NodeGroups</i> A list of node groups in this replication group. For Redis (cluster mode disabled) replication groups, this is a single-element list. For Redis (cluster mode enabled) replication groups, the list contains an entry for each node group (shard).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MemberClusters</i> The names of all the cache clusters that are part of this replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingModifiedValues</i> A group of settings to be applied to the replication group, either immediately or during the next maintenance window.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingModifiedValues</b>: A group of settings to be applied to the replication group, either immediately or during the next maintenance window.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current state of this replication group - <code>creating</code>, <code>available</code>, <code>modifying</code>, <code>deleting</code>, <code>create-failed</code>, <code>snapshotting</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalReplicationGroupInfo</i> The name of the Global datastore and role of this replication group in the Global datastore.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>GlobalReplicationGroupInfo</b>: The name of the Global datastore and role of this replication group in the Global datastore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The user supplied description of the replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationGroupId</i> The identifier for the replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalReplicationGroupMemberRole</i> The role of the replication group in a Global datastore. Can be primary or secondary.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalReplicationGroupId</i> The name of the Global datastore<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomaticFailoverStatus</i> Indicates the status of automatic failover for this Redis replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PrimaryClusterId</i> The primary cluster ID that is applied immediately (if <code>--apply-immediately</code> was specified), or during the next maintenance window.<br/>The status of an online resharding operation.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Resharding</b>: The status of an online resharding operation.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> The port number that the cache engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Address</i> The DNS hostname of the cache node.<br/>        """
        pass

    def list_allowed_node_type_modifications(self, CacheClusterId: str=None, ReplicationGroupId: str=None) -> AllowedNodeTypeModificationsMessage:
        r"""Lists all available node types that you can scale your Redis cluster's or replication group's current node type. When you use the <code>ModifyCacheCluster</code> or <code>ModifyReplicationGroup</code> operations to scale your cluster or replication group, the value of the <code>CacheNodeType</code> parameter must be one of the node types returned by this operation.

        :param self:
        :param ReplicationGroupId:  The name of the replication group want to scale up to a larger node type. ElastiCache uses the replication group id to identify the current node type being used by this replication group, and from that to create a list of node types you can scale up to. <important> You must provide a value for either the <code>CacheClusterId</code> or the <code>ReplicationGroupId</code>. </important><br/>CacheClusterId:  The name of the cluster you want to scale up to a larger node instanced type. ElastiCache uses the cluster id to identify the current node type of this cluster and from that to create a list of node types you can scale up to. <important> You must provide a value for either the <code>CacheClusterId</code> or the <code>ReplicationGroupId</code>. </important><br/>
        :return: ScaleDownModifications:  A string list, each element of which specifies a cache node type which you can use to scale your cluster or replication group. When scaling down a Redis cluster or replication group using ModifyCacheCluster or ModifyReplicationGroup, use a value from this list for the CacheNodeType parameter. <br/>ScaleUpModifications:  A string list, each element of which specifies a cache node type which you can use to scale your cluster or replication group. When scaling up a Redis cluster or replication group using <code>ModifyCacheCluster</code> or <code>ModifyReplicationGroup</code>, use a value from this list for the <code>CacheNodeType</code> parameter.<br/>        """
        pass

    def list_tags_for_resource(self, ResourceName: str) -> TagListMessage:
        r"""Lists all tags currently on a named resource.  A tag is a key-value pair where the key and value are case-sensitive. You can use tags to categorize and track all your ElastiCache resources, with the exception of global replication group. When you add or remove tags on replication groups, those actions will be replicated to all nodes in the replication group. For more information, see <a href="http://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/IAM.ResourceLevelPermissions.html">Resource-level permissions</a>. If the cluster is not in the <i>available</i> state, <code>ListTagsForResource</code> returns an error.

        :param self:
        :param ResourceName:  The Amazon Resource Name (ARN) of the resource for which you want the list of tags, for example <code>arn:aws:elasticache:us-west-2:0123456789:cluster:myCluster</code> or <code>arn:aws:elasticache:us-west-2:0123456789:snapshot:mySnapshot</code>. For more information about ARNs, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a>.<br/>
        :return: TagList:  A list of tags as key-value pairs.<br/>        """
        pass

    def modify_cache_cluster(self, CacheClusterId: str, NumCacheNodes: int=None, CacheNodeIdsToRemove: List[String]=None, AZMode: str=None, NewAvailabilityZones: List[String]=None, CacheSecurityGroupNames: List[String]=None, SecurityGroupIds: List[String]=None, PreferredMaintenanceWindow: str=None, NotificationTopicArn: str=None, CacheParameterGroupName: str=None, NotificationTopicStatus: str=None, ApplyImmediately: Boolean=None, EngineVersion: str=None, AutoMinorVersionUpgrade: BooleanOptional=None, SnapshotRetentionLimit: int=None, SnapshotWindow: str=None, CacheNodeType: str=None, AuthToken: str=None, AuthTokenUpdateStrategy: str=None, LogDeliveryConfigurations: List[LogDeliveryConfigurationRequest]=None) -> ModifyCacheClusterResult:
        r"""Modifies the settings for a cluster. You can use this operation to change one or more cluster configuration parameters by specifying the parameters and the new values.

        :param self:
        :param LogDeliveryConfigurations:  Specifies the destination, format and type of the logs.<br/>AuthTokenUpdateStrategy:  Specifies the strategy to use to update the AUTH token. This parameter must be specified with the <code>auth-token</code> parameter. Possible values: <ul> <li> Rotate </li> <li> Set </li> </ul>  For more information, see <a href="http://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/auth.html">Authenticating Users with Redis AUTH</a> <br/>AuthToken:  Reserved parameter. The password used to access a password protected server. This parameter must be specified with the <code>auth-token-update</code> parameter. Password constraints: <ul> <li> Must be only printable ASCII characters </li> <li> Must be at least 16 characters and no more than 128 characters in length </li> <li> Cannot contain any of the following characters: '/', '"', or '@', '%' </li> </ul>  For more information, see AUTH password at <a href="http://redis.io/commands/AUTH">AUTH</a>.<br/>CacheNodeType:  A valid cache node type that you want to scale this cluster up to.<br/>SnapshotWindow:  The daily time range (in UTC) during which ElastiCache begins taking a daily snapshot of your cluster. <br/>SnapshotRetentionLimit:  The number of days for which ElastiCache retains automatic cluster snapshots before deleting them. For example, if you set <code>SnapshotRetentionLimit</code> to 5, a snapshot that was taken today is retained for 5 days before being deleted. <note> If the value of <code>SnapshotRetentionLimit</code> is set to zero (0), backups are turned off. </note><br/>AutoMinorVersionUpgrade:  This parameter is currently disabled.<br/>EngineVersion:  The upgraded version of the cache engine to be run on the cache nodes.  <b>Important:</b> You can upgrade to a newer engine version (see <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/SelectEngine.html#VersionManagement">Selecting a Cache Engine and Version</a>), but you cannot downgrade to an earlier engine version. If you want to use an earlier engine version, you must delete the existing cluster and create it anew with the earlier engine version. <br/>ApplyImmediately:  If <code>true</code>, this parameter causes the modifications in this request and any pending modifications to be applied, asynchronously and as soon as possible, regardless of the <code>PreferredMaintenanceWindow</code> setting for the cluster. If <code>false</code>, changes to the cluster are applied on the next maintenance reboot, or the next failure reboot, whichever occurs first. <important> If you perform a <code>ModifyCacheCluster</code> before a pending modification is applied, the pending modification is replaced by the newer modification. </important> Valid values: <code>true</code> | <code>false</code>  Default: <code>false</code> <br/>NotificationTopicStatus:  The status of the Amazon SNS notification topic. Notifications are sent only if the status is <code>active</code>. Valid values: <code>active</code> | <code>inactive</code> <br/>CacheParameterGroupName:  The name of the cache parameter group to apply to this cluster. This change is asynchronously applied as soon as possible for parameters when the <code>ApplyImmediately</code> parameter is specified as <code>true</code> for this request.<br/>NotificationTopicArn:  The Amazon Resource Name (ARN) of the Amazon SNS topic to which notifications are sent. <note> The Amazon SNS topic owner must be same as the cluster owner. </note><br/>PreferredMaintenanceWindow:  Specifies the weekly time range during which maintenance on the cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period. Valid values for <code>ddd</code> are: <ul> <li>  <code>sun</code>  </li> <li>  <code>mon</code>  </li> <li>  <code>tue</code>  </li> <li>  <code>wed</code>  </li> <li>  <code>thu</code>  </li> <li>  <code>fri</code>  </li> <li>  <code>sat</code>  </li> </ul> Example: <code>sun:23:00-mon:01:30</code> <br/>SecurityGroupIds:  Specifies the VPC Security Groups associated with the cluster. This parameter can be used only with clusters that are created in an Amazon Virtual Private Cloud (Amazon VPC).<br/>CacheSecurityGroupNames:  A list of cache security group names to authorize on this cluster. This change is asynchronously applied as soon as possible. You can use this parameter only with clusters that are created outside of an Amazon Virtual Private Cloud (Amazon VPC). Constraints: Must contain no more than 255 alphanumeric characters. Must not be "Default".<br/>NewAvailabilityZones:  <note> This option is only supported on Memcached clusters. </note> The list of Availability Zones where the new Memcached cache nodes are created. This parameter is only valid when <code>NumCacheNodes</code> in the request is greater than the sum of the number of active cache nodes and the number of cache nodes pending creation (which may be zero). The number of Availability Zones supplied in this list must match the cache nodes being added in this request. Scenarios: <ul> <li>  <b>Scenario 1:</b> You have 3 active nodes and wish to add 2 nodes. Specify <code>NumCacheNodes=5</code> (3 + 2) and optionally specify two Availability Zones for the two new nodes. </li> <li>  <b>Scenario 2:</b> You have 3 active nodes and 2 nodes pending creation (from the scenario 1 call) and want to add 1 more node. Specify <code>NumCacheNodes=6</code> ((3 + 2) + 1) and optionally specify an Availability Zone for the new node. </li> <li>  <b>Scenario 3:</b> You want to cancel all pending operations. Specify <code>NumCacheNodes=3</code> to cancel all pending operations. </li> </ul> The Availability Zone placement of nodes pending creation cannot be modified. If you wish to cancel any nodes pending creation, add 0 nodes by setting <code>NumCacheNodes</code> to the number of current nodes. If <code>cross-az</code> is specified, existing Memcached nodes remain in their current Availability Zone. Only newly created nodes can be located in different Availability Zones. For guidance on how to move existing Memcached nodes to different Availability Zones, see the <b>Availability Zone Considerations</b> section of <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/mem-ug/CacheNodes.SupportedTypes.html">Cache Node Considerations for Memcached</a>.  <b>Impact of new add/remove requests upon pending requests</b>  <ul> <li> Scenario-1 <ul> <li> Pending Action: Delete </li> <li> New Request: Delete </li> <li> Result: The new delete, pending or immediate, replaces the pending delete. </li> </ul> </li> <li> Scenario-2 <ul> <li> Pending Action: Delete </li> <li> New Request: Create </li> <li> Result: The new create, pending or immediate, replaces the pending delete. </li> </ul> </li> <li> Scenario-3 <ul> <li> Pending Action: Create </li> <li> New Request: Delete </li> <li> Result: The new delete, pending or immediate, replaces the pending create. </li> </ul> </li> <li> Scenario-4 <ul> <li> Pending Action: Create </li> <li> New Request: Create </li> <li> Result: The new create is added to the pending create. <important>  <b>Important:</b> If the new create request is <b>Apply Immediately - Yes</b>, all creates are performed immediately. If the new create request is <b>Apply Immediately - No</b>, all creates are pending. </important> </li> </ul> </li> </ul><br/>AZMode:  Specifies whether the new nodes in this Memcached cluster are all created in a single Availability Zone or created across multiple Availability Zones. Valid values: <code>single-az</code> | <code>cross-az</code>. This option is only supported for Memcached clusters. <note> You cannot specify <code>single-az</code> if the Memcached cluster already has cache nodes in different Availability Zones. If <code>cross-az</code> is specified, existing Memcached nodes remain in their current Availability Zone. Only newly created nodes are located in different Availability Zones.  </note><br/>CacheNodeIdsToRemove:  A list of cache node IDs to be removed. A node ID is a numeric identifier (0001, 0002, etc.). This parameter is only valid when <code>NumCacheNodes</code> is less than the existing number of cache nodes. The number of cache node IDs supplied in this parameter must match the difference between the existing number of cache nodes in the cluster or pending cache nodes, whichever is greater, and the value of <code>NumCacheNodes</code> in the request. For example: If you have 3 active cache nodes, 7 pending cache nodes, and the number of cache nodes in this <code>ModifyCacheCluster</code> call is 5, you must list 2 (7 - 5) cache node IDs to remove.<br/>NumCacheNodes:  The number of cache nodes that the cluster should have. If the value for <code>NumCacheNodes</code> is greater than the sum of the number of current cache nodes and the number of cache nodes pending creation (which may be zero), more nodes are added. If the value is less than the number of existing cache nodes, nodes are removed. If the value is equal to the number of current cache nodes, any pending add or remove requests are canceled. If you are removing cache nodes, you must use the <code>CacheNodeIdsToRemove</code> parameter to provide the IDs of the specific cache nodes to remove. For clusters running Redis, this value must be 1. For clusters running Memcached, this value must be between 1 and 40. <note> Adding or removing Memcached cache nodes can be applied immediately or as a pending operation (see <code>ApplyImmediately</code>). A pending operation to modify the number of cache nodes in a cluster during its maintenance window, whether by adding or removing nodes in accordance with the scale out architecture, is not queued. The customer's latest request to add or remove nodes to the cluster overrides any previous pending operations to modify the number of cache nodes in the cluster. For example, a request to remove 2 nodes would override a previous pending operation to remove 3 nodes. Similarly, a request to add 2 nodes would override a previous pending operation to remove 3 nodes and vice versa. As Memcached cache nodes may now be provisioned in different Availability Zones with flexible cache node placement, a request to add nodes does not automatically override a previous pending operation to add nodes. The customer can modify the previous pending operation to add more nodes or explicitly cancel the pending request and retry the new request. To cancel pending operations to modify the number of cache nodes in a cluster, use the <code>ModifyCacheCluster</code> request and set <code>NumCacheNodes</code> equal to the number of cache nodes currently in the cluster. </note><br/>CacheClusterId:  The cluster identifier. This value is stored as a lowercase string.<br/>
        :return: CacheCluster:  Contains all of the attributes of a specific cluster.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogDeliveryConfigurations</i> Returns the destination, format and type of the logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationGroupLogDeliveryEnabled</i> A boolean value indicating whether log delivery is enabled for the replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ARN</i> The ARN (Amazon Resource Name) of the cache cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AtRestEncryptionEnabled</i> A flag that enables encryption at-rest when set to <code>true</code>. You cannot modify the value of <code>AtRestEncryptionEnabled</code> after the cluster is created. To enable at-rest encryption on a cluster you must set <code>AtRestEncryptionEnabled</code> to <code>true</code> when you create a cluster.  <b>Required:</b> Only available when creating a replication group in an Amazon VPC using redis version <code>3.2.6</code>, <code>4.x</code> or later. Default: <code>false</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitEncryptionEnabled</i> A flag that enables in-transit encryption when set to <code>true</code>. You cannot modify the value of <code>TransitEncryptionEnabled</code> after the cluster is created. To enable in-transit encryption on a cluster you must set <code>TransitEncryptionEnabled</code> to <code>true</code> when you create a cluster.  <b>Required:</b> Only available when creating a replication group in an Amazon VPC using redis version <code>3.2.6</code>, <code>4.x</code> or later. Default: <code>false</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AuthTokenLastModifiedDate</i> The date the auth token was last modified<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AuthTokenEnabled</i> A flag that enables using an <code>AuthToken</code> (password) when issuing Redis commands. Default: <code>false</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotWindow</i> The daily time range (in UTC) during which ElastiCache begins taking a daily snapshot of your cluster. Example: <code>05:00-09:00</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotRetentionLimit</i> The number of days for which ElastiCache retains automatic cluster snapshots before deleting them. For example, if you set <code>SnapshotRetentionLimit</code> to 5, a snapshot that was taken today is retained for 5 days before being deleted. <important>  If the value of SnapshotRetentionLimit is set to zero (0), backups are turned off. </important><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationGroupId</i> The replication group to which this cluster belongs. If this field is empty, the cluster is not associated with any replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroups</i> A list of VPC Security Groups associated with the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoMinorVersionUpgrade</i> This parameter is currently disabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheNodes</i> A list of cache nodes that are members of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheSubnetGroupName</i> The name of the cache subnet group associated with the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheParameterGroup</i> Status of the cache parameter group.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CacheParameterGroup</b>: Status of the cache parameter group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheSecurityGroups</i> A list of cache security group elements, composed of name and status sub-elements.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NotificationConfiguration</i> Describes a notification topic and its status. Notification topics are used for publishing ElastiCache events to subscribers using Amazon Simple Notification Service (SNS). &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>NotificationConfiguration</b>: Describes a notification topic and its status. Notification topics are used for publishing ElastiCache events to subscribers using Amazon Simple Notification Service (SNS). <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingModifiedValues</i> A group of settings that are applied to the cluster in the future, or that are currently being applied.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingModifiedValues</b>: A group of settings that are applied to the cluster in the future, or that are currently being applied.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i> Specifies the weekly time range during which maintenance on the cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period. Valid values for <code>ddd</code> are: <ul> <li>  <code>sun</code>  </li> <li>  <code>mon</code>  </li> <li>  <code>tue</code>  </li> <li>  <code>wed</code>  </li> <li>  <code>thu</code>  </li> <li>  <code>fri</code>  </li> <li>  <code>sat</code>  </li> </ul> Example: <code>sun:23:00-mon:01:30</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheClusterCreateTime</i> The date and time when the cluster was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredOutpostArn</i> The outpost ARN in which the cache cluster is created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredAvailabilityZone</i> The name of the Availability Zone in which the cluster is located or "Multiple" if the cache nodes are located in different Availability Zones.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NumCacheNodes</i> The number of cache nodes in the cluster. For clusters running Redis, this value must be 1. For clusters running Memcached, this value must be between 1 and 40.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheClusterStatus</i> The current state of this cluster, one of the following values: <code>available</code>, <code>creating</code>, <code>deleted</code>, <code>deleting</code>, <code>incompatible-network</code>, <code>modifying</code>, <code>rebooting cluster nodes</code>, <code>restore-failed</code>, or <code>snapshotting</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> The version of the cache engine that is used in this cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> The name of the cache engine (<code>memcached</code> or <code>redis</code>) to be used for this cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheNodeType</i> The name of the compute and memory capacity node type for the cluster. The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts. <ul> <li> General purpose: <ul> <li> Current generation:   <b>M6g node types</b> (available only for Redis engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward).  <code>cache.m6g.large</code>, <code>cache.m6g.xlarge</code>, <code>cache.m6g.2xlarge</code>, <code>cache.m6g.4xlarge</code>, <code>cache.m6g.8xlarge</code>, <code>cache.m6g.12xlarge</code>, <code>cache.m6g.16xlarge</code>  <note> For region availability, see <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion">Supported Node Types</a>  </note>  <b>M5 node types:</b> <code>cache.m5.large</code>, <code>cache.m5.xlarge</code>, <code>cache.m5.2xlarge</code>, <code>cache.m5.4xlarge</code>, <code>cache.m5.12xlarge</code>, <code>cache.m5.24xlarge</code>   <b>M4 node types:</b> <code>cache.m4.large</code>, <code>cache.m4.xlarge</code>, <code>cache.m4.2xlarge</code>, <code>cache.m4.4xlarge</code>, <code>cache.m4.10xlarge</code>   <b>T3 node types:</b> <code>cache.t3.micro</code>, <code>cache.t3.small</code>, <code>cache.t3.medium</code>   <b>T2 node types:</b> <code>cache.t2.micro</code>, <code>cache.t2.small</code>, <code>cache.t2.medium</code>  </li> <li> Previous generation: (not recommended)  <b>T1 node types:</b> <code>cache.t1.micro</code>   <b>M1 node types:</b> <code>cache.m1.small</code>, <code>cache.m1.medium</code>, <code>cache.m1.large</code>, <code>cache.m1.xlarge</code>   <b>M3 node types:</b> <code>cache.m3.medium</code>, <code>cache.m3.large</code>, <code>cache.m3.xlarge</code>, <code>cache.m3.2xlarge</code>  </li> </ul> </li> <li> Compute optimized: <ul> <li> Previous generation: (not recommended)  <b>C1 node types:</b> <code>cache.c1.xlarge</code>  </li> </ul> </li> <li> Memory optimized: <ul> <li> Current generation:   <b>R6g node types</b> (available only for Redis engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward).  <code>cache.r6g.large</code>, <code>cache.r6g.xlarge</code>, <code>cache.r6g.2xlarge</code>, <code>cache.r6g.4xlarge</code>, <code>cache.r6g.8xlarge</code>, <code>cache.r6g.12xlarge</code>, <code>cache.r6g.16xlarge</code>  <note> For region availability, see <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion">Supported Node Types</a>  </note>  <b>R5 node types:</b> <code>cache.r5.large</code>, <code>cache.r5.xlarge</code>, <code>cache.r5.2xlarge</code>, <code>cache.r5.4xlarge</code>, <code>cache.r5.12xlarge</code>, <code>cache.r5.24xlarge</code>   <b>R4 node types:</b> <code>cache.r4.large</code>, <code>cache.r4.xlarge</code>, <code>cache.r4.2xlarge</code>, <code>cache.r4.4xlarge</code>, <code>cache.r4.8xlarge</code>, <code>cache.r4.16xlarge</code>  </li> <li> Previous generation: (not recommended)  <b>M2 node types:</b> <code>cache.m2.xlarge</code>, <code>cache.m2.2xlarge</code>, <code>cache.m2.4xlarge</code>   <b>R3 node types:</b> <code>cache.r3.large</code>, <code>cache.r3.xlarge</code>, <code>cache.r3.2xlarge</code>, <code>cache.r3.4xlarge</code>, <code>cache.r3.8xlarge</code>  </li> </ul> </li> </ul>  <b>Additional node type info</b>  <ul> <li> All current generation instance types are created in Amazon VPC by default. </li> <li> Redis append-only files (AOF) are not supported for T1 or T2 instances. </li> <li> Redis Multi-AZ with automatic failover is not supported on T1 instances. </li> <li> Redis configuration variables <code>appendonly</code> and <code>appendfsync</code> are not supported on Redis version 2.8.22 and later. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClientDownloadLandingPage</i> The URL of the web page where you can download the latest ElastiCache client library.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConfigurationEndpoint</i> Represents a Memcached cluster endpoint which can be used by an application to connect to any node in the cluster. The configuration endpoint will always have <code>.cfg</code> in it. Example: <code>mem-3.9dvc4r<u>.cfg</u>.usw2.cache.amazonaws.com:11211</code> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ConfigurationEndpoint</b>: Represents a Memcached cluster endpoint which can be used by an application to connect to any node in the cluster. The configuration endpoint will always have <code>.cfg</code> in it. Example: <code>mem-3.9dvc4r<u>.cfg</u>.usw2.cache.amazonaws.com:11211</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheClusterId</i> The user-supplied identifier of the cluster. This identifier is a unique key that identifies a cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> The port number that the cache engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Address</i> The DNS hostname of the cache node.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LogDeliveryConfigurations</i> The log delivery configurations being modified <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AuthTokenStatus</i> The auth token status<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheNodeType</i> The cache node type that this cluster or replication group is scaled to.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> The new cache engine version that the cluster runs.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheNodeIdsToRemove</i> A list of cache node IDs that are being removed (or will be removed) from the cluster. A node ID is a 4-digit numeric identifier (0001, 0002, etc.).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NumCacheNodes</i> The new number of cache nodes for the cluster. For clusters running Redis, this value must be 1. For clusters running Memcached, this value must be between 1 and 40.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TopicStatus</i> The current state of the topic.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TopicArn</i> The Amazon Resource Name (ARN) that identifies the topic.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheNodeIdsToReboot</i> A list of the cache node IDs which need to be rebooted for parameter changes to be applied. A node ID is a numeric identifier (0001, 0002, etc.).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ParameterApplyStatus</i> The status of parameter updates.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheParameterGroupName</i> The name of the cache parameter group.<br/>        """
        pass

    def modify_cache_parameter_group(self, ParameterNameValues: List[ParameterNameValue], CacheParameterGroupName: str) -> CacheParameterGroupNameMessage:
        r"""Modifies the parameters of a cache parameter group. You can modify up to 20 parameters in a single request by submitting a list parameter name and value pairs.

        :param self:
        :param ParameterNameValues:  An array of parameter names and values for the parameter update. You must supply at least one parameter name and value; subsequent arguments are optional. A maximum of 20 parameters may be modified per request.<br/>CacheParameterGroupName:  The name of the cache parameter group to modify.<br/>
        :return: CacheParameterGroupName:  The name of the cache parameter group.<br/>        """
        pass

    def modify_cache_subnet_group(self, CacheSubnetGroupName: str, CacheSubnetGroupDescription: str=None, SubnetIds: List[String]=None) -> ModifyCacheSubnetGroupResult:
        r"""Modifies an existing cache subnet group.

        :param self:
        :param SubnetIds:  The EC2 subnet IDs for the cache subnet group.<br/>CacheSubnetGroupDescription:  A description of the cache subnet group.<br/>CacheSubnetGroupName:  The name for the cache subnet group. This value is stored as a lowercase string. Constraints: Must contain no more than 255 alphanumeric characters or hyphens. Example: <code>mysubnetgroup</code> <br/>
        :return: CacheSubnetGroup:  Represents the output of one of the following operations: <ul> <li>  <code>CreateCacheSubnetGroup</code>  </li> <li>  <code>ModifyCacheSubnetGroup</code>  </li> </ul>:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ARN</i> The ARN (Amazon Resource Name) of the cache subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Subnets</i> A list of subnets associated with the cache subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The Amazon Virtual Private Cloud identifier (VPC ID) of the cache subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheSubnetGroupDescription</i> The description of the cache subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheSubnetGroupName</i> The name of the cache subnet group.<br/>        """
        pass

    def modify_global_replication_group(self, ApplyImmediately: Boolean, GlobalReplicationGroupId: str, CacheNodeType: str=None, EngineVersion: str=None, CacheParameterGroupName: str=None, GlobalReplicationGroupDescription: str=None, AutomaticFailoverEnabled: BooleanOptional=None) -> ModifyGlobalReplicationGroupResult:
        r"""Modifies the settings for a Global datastore.

        :param self:
        :param AutomaticFailoverEnabled:  Determines whether a read replica is automatically promoted to read/write primary if the existing primary encounters a failure. <br/>GlobalReplicationGroupDescription:  A description of the Global datastore<br/>CacheParameterGroupName:  The name of the cache parameter group to use with the Global datastore. It must be compatible with the major engine version used by the Global datastore.<br/>EngineVersion:  The upgraded version of the cache engine to be run on the clusters in the Global datastore. <br/>CacheNodeType:  A valid cache node type that you want to scale this Global datastore to.<br/>ApplyImmediately:  This parameter causes the modifications in this request and any pending modifications to be applied, asynchronously and as soon as possible. Modifications to Global Replication Groups cannot be requested to be applied in PreferredMaintenceWindow. <br/>GlobalReplicationGroupId:  The name of the Global datastore<br/>
        :return: GlobalReplicationGroup:  Consists of a primary cluster that accepts writes and an associated secondary cluster that resides in a different AWS region. The secondary cluster accepts only reads. The primary cluster automatically replicates updates to the secondary cluster. <ul> <li> The <b>GlobalReplicationGroupIdSuffix</b> represents the name of the Global datastore, which is what you use to associate a secondary cluster. </li> </ul>:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ARN</i> The ARN (Amazon Resource Name) of the global replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AtRestEncryptionEnabled</i> A flag that enables encryption at rest when set to <code>true</code>. You cannot modify the value of <code>AtRestEncryptionEnabled</code> after the replication group is created. To enable encryption at rest on a replication group you must set <code>AtRestEncryptionEnabled</code> to <code>true</code> when you create the replication group.   <b>Required:</b> Only available when creating a replication group in an Amazon VPC using redis version <code>3.2.6</code>, <code>4.x</code> or later.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitEncryptionEnabled</i> A flag that enables in-transit encryption when set to true. You cannot modify the value of <code>TransitEncryptionEnabled</code> after the cluster is created. To enable in-transit encryption on a cluster you must set <code>TransitEncryptionEnabled</code> to true when you create a cluster.   <b>Required:</b> Only available when creating a replication group in an Amazon VPC using redis version <code>3.2.6</code>, <code>4.x</code> or later.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AuthTokenEnabled</i> A flag that enables using an <code>AuthToken</code> (password) when issuing Redis commands. Default: <code>false</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalNodeGroups</i> Indicates the slot configuration and global identifier for each slice group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterEnabled</i> A flag that indicates whether the Global datastore is cluster enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Members</i> The replication groups that comprise the Global datastore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> The Elasticache Redis engine version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> The Elasticache engine. For Redis only.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheNodeType</i> The cache node type of the Global datastore<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the Global datastore<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalReplicationGroupDescription</i> The optional description of the Global datastore<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalReplicationGroupId</i> The name of the Global datastore<br/>        """
        pass

    def modify_replication_group(self, ReplicationGroupId: str, ReplicationGroupDescription: str=None, PrimaryClusterId: str=None, SnapshottingClusterId: str=None, AutomaticFailoverEnabled: BooleanOptional=None, MultiAZEnabled: BooleanOptional=None, NodeGroupId: str=None, CacheSecurityGroupNames: List[String]=None, SecurityGroupIds: List[String]=None, PreferredMaintenanceWindow: str=None, NotificationTopicArn: str=None, CacheParameterGroupName: str=None, NotificationTopicStatus: str=None, ApplyImmediately: Boolean=None, EngineVersion: str=None, AutoMinorVersionUpgrade: BooleanOptional=None, SnapshotRetentionLimit: int=None, SnapshotWindow: str=None, CacheNodeType: str=None, AuthToken: str=None, AuthTokenUpdateStrategy: str=None, UserGroupIdsToAdd: List[UserGroupId]=None, UserGroupIdsToRemove: List[UserGroupId]=None, RemoveUserGroups: BooleanOptional=None, LogDeliveryConfigurations: List[LogDeliveryConfigurationRequest]=None) -> ModifyReplicationGroupResult:
        r"""Modifies the settings for a replication group. <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/scaling-redis-cluster-mode-enabled.html">Scaling for Amazon ElastiCache for Redis (cluster mode enabled)</a> in the ElastiCache User Guide </li> <li>  <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyReplicationGroupShardConfiguration.html">ModifyReplicationGroupShardConfiguration</a> in the ElastiCache API Reference </li> </ul> <note> This operation is valid for Redis only. </note>

        :param self:
        :param LogDeliveryConfigurations:  Specifies the destination, format and type of the logs.<br/>RemoveUserGroups:  Removes the user groups that can access this replication group.<br/>UserGroupIdsToRemove:  The user group to remove, meaning the users in the group no longer can access the replication group.<br/>UserGroupIdsToAdd:  The user group you are associating with the replication group.<br/>AuthTokenUpdateStrategy:  Specifies the strategy to use to update the AUTH token. This parameter must be specified with the <code>auth-token</code> parameter. Possible values: <ul> <li> Rotate </li> <li> Set </li> </ul>  For more information, see <a href="http://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/auth.html">Authenticating Users with Redis AUTH</a> <br/>AuthToken:  Reserved parameter. The password used to access a password protected server. This parameter must be specified with the <code>auth-token-update-strategy </code> parameter. Password constraints: <ul> <li> Must be only printable ASCII characters </li> <li> Must be at least 16 characters and no more than 128 characters in length </li> <li> Cannot contain any of the following characters: '/', '"', or '@', '%' </li> </ul>  For more information, see AUTH password at <a href="http://redis.io/commands/AUTH">AUTH</a>.<br/>CacheNodeType:  A valid cache node type that you want to scale this replication group to.<br/>SnapshotWindow:  The daily time range (in UTC) during which ElastiCache begins taking a daily snapshot of the node group (shard) specified by <code>SnapshottingClusterId</code>. Example: <code>05:00-09:00</code>  If you do not specify this parameter, ElastiCache automatically chooses an appropriate time range.<br/>SnapshotRetentionLimit:  The number of days for which ElastiCache retains automatic node group (shard) snapshots before deleting them. For example, if you set <code>SnapshotRetentionLimit</code> to 5, a snapshot that was taken today is retained for 5 days before being deleted.  <b>Important</b> If the value of SnapshotRetentionLimit is set to zero (0), backups are turned off.<br/>AutoMinorVersionUpgrade:  This parameter is currently disabled.<br/>EngineVersion:  The upgraded version of the cache engine to be run on the clusters in the replication group.  <b>Important:</b> You can upgrade to a newer engine version (see <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/SelectEngine.html#VersionManagement">Selecting a Cache Engine and Version</a>), but you cannot downgrade to an earlier engine version. If you want to use an earlier engine version, you must delete the existing replication group and create it anew with the earlier engine version. <br/>ApplyImmediately:  If <code>true</code>, this parameter causes the modifications in this request and any pending modifications to be applied, asynchronously and as soon as possible, regardless of the <code>PreferredMaintenanceWindow</code> setting for the replication group. If <code>false</code>, changes to the nodes in the replication group are applied on the next maintenance reboot, or the next failure reboot, whichever occurs first. Valid values: <code>true</code> | <code>false</code>  Default: <code>false</code> <br/>NotificationTopicStatus:  The status of the Amazon SNS notification topic for the replication group. Notifications are sent only if the status is <code>active</code>. Valid values: <code>active</code> | <code>inactive</code> <br/>CacheParameterGroupName:  The name of the cache parameter group to apply to all of the clusters in this replication group. This change is asynchronously applied as soon as possible for parameters when the <code>ApplyImmediately</code> parameter is specified as <code>true</code> for this request.<br/>NotificationTopicArn:  The Amazon Resource Name (ARN) of the Amazon SNS topic to which notifications are sent. <note> The Amazon SNS topic owner must be same as the replication group owner.  </note><br/>PreferredMaintenanceWindow:  Specifies the weekly time range during which maintenance on the cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period. Valid values for <code>ddd</code> are: <ul> <li>  <code>sun</code>  </li> <li>  <code>mon</code>  </li> <li>  <code>tue</code>  </li> <li>  <code>wed</code>  </li> <li>  <code>thu</code>  </li> <li>  <code>fri</code>  </li> <li>  <code>sat</code>  </li> </ul> Example: <code>sun:23:00-mon:01:30</code> <br/>SecurityGroupIds:  Specifies the VPC Security Groups associated with the clusters in the replication group. This parameter can be used only with replication group containing clusters running in an Amazon Virtual Private Cloud (Amazon VPC).<br/>CacheSecurityGroupNames:  A list of cache security group names to authorize for the clusters in this replication group. This change is asynchronously applied as soon as possible. This parameter can be used only with replication group containing clusters running outside of an Amazon Virtual Private Cloud (Amazon VPC). Constraints: Must contain no more than 255 alphanumeric characters. Must not be <code>Default</code>.<br/>NodeGroupId:  Deprecated. This parameter is not used.<br/>MultiAZEnabled:  A list of tags to be added to this resource. A tag is a key-value pair. A tag key must be accompanied by a tag value, although null is accepted.<br/>AutomaticFailoverEnabled:  Determines whether a read replica is automatically promoted to read/write primary if the existing primary encounters a failure. Valid values: <code>true</code> | <code>false</code> <br/>SnapshottingClusterId:  The cluster ID that is used as the daily snapshot source for the replication group. This parameter cannot be set for Redis (cluster mode enabled) replication groups.<br/>PrimaryClusterId:  For replication groups with a single primary, if this parameter is specified, ElastiCache promotes the specified cluster in the specified replication group to the primary role. The nodes of all other clusters in the replication group are read replicas.<br/>ReplicationGroupDescription:  A description for the replication group. Maximum length is 255 characters.<br/>ReplicationGroupId:  The identifier of the replication group to modify.<br/>
        :return: ReplicationGroup:  Contains all of the attributes of a specific Redis replication group.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogDeliveryConfigurations</i> Returns the destination, format and type of the logs. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserGroupIds</i> The list of user group IDs that have access to the replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ARN</i> The ARN (Amazon Resource Name) of the replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The ID of the KMS key used to encrypt the disk in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MemberClustersOutpostArns</i> The outpost ARNs of the replication group's member clusters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AtRestEncryptionEnabled</i> A flag that enables encryption at-rest when set to <code>true</code>. You cannot modify the value of <code>AtRestEncryptionEnabled</code> after the cluster is created. To enable encryption at-rest on a cluster you must set <code>AtRestEncryptionEnabled</code> to <code>true</code> when you create a cluster.  <b>Required:</b> Only available when creating a replication group in an Amazon VPC using redis version <code>3.2.6</code>, <code>4.x</code> or later. Default: <code>false</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitEncryptionEnabled</i> A flag that enables in-transit encryption when set to <code>true</code>. You cannot modify the value of <code>TransitEncryptionEnabled</code> after the cluster is created. To enable in-transit encryption on a cluster you must set <code>TransitEncryptionEnabled</code> to <code>true</code> when you create a cluster.  <b>Required:</b> Only available when creating a replication group in an Amazon VPC using redis version <code>3.2.6</code>, <code>4.x</code> or later. Default: <code>false</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AuthTokenLastModifiedDate</i> The date the auth token was last modified<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AuthTokenEnabled</i> A flag that enables using an <code>AuthToken</code> (password) when issuing Redis commands. Default: <code>false</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheNodeType</i> The name of the compute and memory capacity node type for each node in the replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterEnabled</i> A flag indicating whether or not this replication group is cluster enabled; i.e., whether its data can be partitioned across multiple shards (API/CLI: node groups). Valid values: <code>true</code> | <code>false</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotWindow</i> The daily time range (in UTC) during which ElastiCache begins taking a daily snapshot of your node group (shard). Example: <code>05:00-09:00</code>  If you do not specify this parameter, ElastiCache automatically chooses an appropriate time range. <note> This parameter is only valid if the <code>Engine</code> parameter is <code>redis</code>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotRetentionLimit</i> The number of days for which ElastiCache retains automatic cluster snapshots before deleting them. For example, if you set <code>SnapshotRetentionLimit</code> to 5, a snapshot that was taken today is retained for 5 days before being deleted. <important>  If the value of <code>SnapshotRetentionLimit</code> is set to zero (0), backups are turned off. </important><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConfigurationEndpoint</i> The configuration endpoint for this replication group. Use the configuration endpoint to connect to this replication group.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ConfigurationEndpoint</b>: The configuration endpoint for this replication group. Use the configuration endpoint to connect to this replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiAZ</i> A flag indicating if you have Multi-AZ enabled to enhance fault tolerance. For more information, see <a href="http://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/AutoFailover.html">Minimizing Downtime: Multi-AZ</a> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomaticFailover</i> Indicates the status of automatic failover for this Redis replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshottingClusterId</i> The cluster ID that is used as the daily snapshot source for the replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NodeGroups</i> A list of node groups in this replication group. For Redis (cluster mode disabled) replication groups, this is a single-element list. For Redis (cluster mode enabled) replication groups, the list contains an entry for each node group (shard).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MemberClusters</i> The names of all the cache clusters that are part of this replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingModifiedValues</i> A group of settings to be applied to the replication group, either immediately or during the next maintenance window.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingModifiedValues</b>: A group of settings to be applied to the replication group, either immediately or during the next maintenance window.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current state of this replication group - <code>creating</code>, <code>available</code>, <code>modifying</code>, <code>deleting</code>, <code>create-failed</code>, <code>snapshotting</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalReplicationGroupInfo</i> The name of the Global datastore and role of this replication group in the Global datastore.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>GlobalReplicationGroupInfo</b>: The name of the Global datastore and role of this replication group in the Global datastore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The user supplied description of the replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationGroupId</i> The identifier for the replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalReplicationGroupMemberRole</i> The role of the replication group in a Global datastore. Can be primary or secondary.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalReplicationGroupId</i> The name of the Global datastore<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomaticFailoverStatus</i> Indicates the status of automatic failover for this Redis replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PrimaryClusterId</i> The primary cluster ID that is applied immediately (if <code>--apply-immediately</code> was specified), or during the next maintenance window.<br/>The status of an online resharding operation.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Resharding</b>: The status of an online resharding operation.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> The port number that the cache engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Address</i> The DNS hostname of the cache node.<br/>        """
        pass

    def modify_replication_group_shard_configuration(self, ApplyImmediately: Boolean, NodeGroupCount: int, ReplicationGroupId: str, ReshardingConfiguration: List[ReshardingConfiguration]=None, NodeGroupsToRemove: List[AllowedNodeGroupId]=None, NodeGroupsToRetain: List[AllowedNodeGroupId]=None) -> ModifyReplicationGroupShardConfigurationResult:
        r"""Modifies a replication group's shards (node groups) by allowing you to add shards, remove shards, or rebalance the keyspaces among existing shards.

        :param self:
        :param NodeGroupsToRetain:  If the value of <code>NodeGroupCount</code> is less than the current number of node groups (shards), then either <code>NodeGroupsToRemove</code> or <code>NodeGroupsToRetain</code> is required. <code>NodeGroupsToRetain</code> is a list of <code>NodeGroupId</code>s to retain in the cluster. ElastiCache for Redis will attempt to remove all node groups except those listed by <code>NodeGroupsToRetain</code> from the cluster.<br/>NodeGroupsToRemove:  If the value of <code>NodeGroupCount</code> is less than the current number of node groups (shards), then either <code>NodeGroupsToRemove</code> or <code>NodeGroupsToRetain</code> is required. <code>NodeGroupsToRemove</code> is a list of <code>NodeGroupId</code>s to remove from the cluster. ElastiCache for Redis will attempt to remove all node groups listed by <code>NodeGroupsToRemove</code> from the cluster.<br/>ReshardingConfiguration:  Specifies the preferred availability zones for each node group in the cluster. If the value of <code>NodeGroupCount</code> is greater than the current number of node groups (shards), you can use this parameter to specify the preferred availability zones of the cluster's shards. If you omit this parameter ElastiCache selects availability zones for you. You can specify this parameter only if the value of <code>NodeGroupCount</code> is greater than the current number of node groups (shards).<br/>ApplyImmediately:  Indicates that the shard reconfiguration process begins immediately. At present, the only permitted value for this parameter is <code>true</code>. Value: true<br/>NodeGroupCount:  The number of node groups (shards) that results from the modification of the shard configuration.<br/>ReplicationGroupId:  The name of the Redis (cluster mode enabled) cluster (replication group) on which the shards are to be configured.<br/>
        :return: ReplicationGroup:  Contains all of the attributes of a specific Redis replication group.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogDeliveryConfigurations</i> Returns the destination, format and type of the logs. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserGroupIds</i> The list of user group IDs that have access to the replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ARN</i> The ARN (Amazon Resource Name) of the replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The ID of the KMS key used to encrypt the disk in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MemberClustersOutpostArns</i> The outpost ARNs of the replication group's member clusters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AtRestEncryptionEnabled</i> A flag that enables encryption at-rest when set to <code>true</code>. You cannot modify the value of <code>AtRestEncryptionEnabled</code> after the cluster is created. To enable encryption at-rest on a cluster you must set <code>AtRestEncryptionEnabled</code> to <code>true</code> when you create a cluster.  <b>Required:</b> Only available when creating a replication group in an Amazon VPC using redis version <code>3.2.6</code>, <code>4.x</code> or later. Default: <code>false</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitEncryptionEnabled</i> A flag that enables in-transit encryption when set to <code>true</code>. You cannot modify the value of <code>TransitEncryptionEnabled</code> after the cluster is created. To enable in-transit encryption on a cluster you must set <code>TransitEncryptionEnabled</code> to <code>true</code> when you create a cluster.  <b>Required:</b> Only available when creating a replication group in an Amazon VPC using redis version <code>3.2.6</code>, <code>4.x</code> or later. Default: <code>false</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AuthTokenLastModifiedDate</i> The date the auth token was last modified<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AuthTokenEnabled</i> A flag that enables using an <code>AuthToken</code> (password) when issuing Redis commands. Default: <code>false</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheNodeType</i> The name of the compute and memory capacity node type for each node in the replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterEnabled</i> A flag indicating whether or not this replication group is cluster enabled; i.e., whether its data can be partitioned across multiple shards (API/CLI: node groups). Valid values: <code>true</code> | <code>false</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotWindow</i> The daily time range (in UTC) during which ElastiCache begins taking a daily snapshot of your node group (shard). Example: <code>05:00-09:00</code>  If you do not specify this parameter, ElastiCache automatically chooses an appropriate time range. <note> This parameter is only valid if the <code>Engine</code> parameter is <code>redis</code>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotRetentionLimit</i> The number of days for which ElastiCache retains automatic cluster snapshots before deleting them. For example, if you set <code>SnapshotRetentionLimit</code> to 5, a snapshot that was taken today is retained for 5 days before being deleted. <important>  If the value of <code>SnapshotRetentionLimit</code> is set to zero (0), backups are turned off. </important><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConfigurationEndpoint</i> The configuration endpoint for this replication group. Use the configuration endpoint to connect to this replication group.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ConfigurationEndpoint</b>: The configuration endpoint for this replication group. Use the configuration endpoint to connect to this replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiAZ</i> A flag indicating if you have Multi-AZ enabled to enhance fault tolerance. For more information, see <a href="http://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/AutoFailover.html">Minimizing Downtime: Multi-AZ</a> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomaticFailover</i> Indicates the status of automatic failover for this Redis replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshottingClusterId</i> The cluster ID that is used as the daily snapshot source for the replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NodeGroups</i> A list of node groups in this replication group. For Redis (cluster mode disabled) replication groups, this is a single-element list. For Redis (cluster mode enabled) replication groups, the list contains an entry for each node group (shard).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MemberClusters</i> The names of all the cache clusters that are part of this replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingModifiedValues</i> A group of settings to be applied to the replication group, either immediately or during the next maintenance window.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingModifiedValues</b>: A group of settings to be applied to the replication group, either immediately or during the next maintenance window.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current state of this replication group - <code>creating</code>, <code>available</code>, <code>modifying</code>, <code>deleting</code>, <code>create-failed</code>, <code>snapshotting</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalReplicationGroupInfo</i> The name of the Global datastore and role of this replication group in the Global datastore.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>GlobalReplicationGroupInfo</b>: The name of the Global datastore and role of this replication group in the Global datastore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The user supplied description of the replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationGroupId</i> The identifier for the replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalReplicationGroupMemberRole</i> The role of the replication group in a Global datastore. Can be primary or secondary.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalReplicationGroupId</i> The name of the Global datastore<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomaticFailoverStatus</i> Indicates the status of automatic failover for this Redis replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PrimaryClusterId</i> The primary cluster ID that is applied immediately (if <code>--apply-immediately</code> was specified), or during the next maintenance window.<br/>The status of an online resharding operation.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Resharding</b>: The status of an online resharding operation.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> The port number that the cache engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Address</i> The DNS hostname of the cache node.<br/>        """
        pass

    def modify_user(self, UserId: str, AccessString: str=None, AppendAccessString: str=None, Passwords: List[String]=None, NoPasswordRequired: BooleanOptional=None) -> User:
        r"""Changes user password(s) and/or access string.

        :param self:
        :param NoPasswordRequired:  Indicates no password is required for the user.<br/>Passwords:  The passwords belonging to the user. You are allowed up to two.<br/>AppendAccessString:  Adds additional user permissions to the access string.<br/>AccessString:  Access permissions string used for this user.<br/>UserId:  The ID of the user.<br/>
        :return: ARN:  The Amazon Resource Name (ARN) of the user.<br/>Authentication:  Denotes whether the user requires a password to authenticate.:<br/>UserGroupIds:  Returns a list of the user group IDs the user belongs to.<br/>AccessString:  Access permissions string used for this user.<br/>Engine:  The current supported value is Redis.<br/>Status:  Indicates the user status. Can be "active", "modifying" or "deleting".<br/>UserName:  The username of the user.<br/>UserId:  The ID of the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PasswordCount</i> The number of passwords belonging to the user. The maximum is two.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> Indicates whether the user requires a password to authenticate.<br/>        """
        pass

    def modify_user_group(self, UserGroupId: str, UserIdsToAdd: List[UserId]=None, UserIdsToRemove: List[UserId]=None) -> UserGroup:
        r"""Changes the list of users that belong to the user group.

        :param self:
        :param UserIdsToRemove:  The list of user IDs to remove from the user group.<br/>UserIdsToAdd:  The list of user IDs to add to the user group.<br/>UserGroupId:  The ID of the user group.<br/>
        :return: ARN:  The Amazon Resource Name (ARN) of the user group.<br/>ReplicationGroups:  A list of replication groups that the user group can access.<br/>PendingChanges:  A list of updates being applied to the user groups.:<br/>UserIds:  The list of user IDs that belong to the user group.<br/>Engine:  The current supported value is Redis. <br/>Status:  Indicates user group status. Can be "creating", "active", "modifying", "deleting".<br/>UserGroupId:  The ID of the user group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserIdsToAdd</i> The list of user IDs to add.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserIdsToRemove</i> The list of user IDs to remove.<br/>        """
        pass

    def purchase_reserved_cache_nodes_offering(self, ReservedCacheNodesOfferingId: str, ReservedCacheNodeId: str=None, CacheNodeCount: int=None, Tags: List[Tag]=None) -> PurchaseReservedCacheNodesOfferingResult:
        r"""Allows you to purchase a reserved cache node offering. Reserved nodes are not eligible for cancellation and are non-refundable. For more information, see <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/reserved-nodes.html">Managing Costs with Reserved Nodes</a> for Redis or <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/mem-ug/reserved-nodes.html">Managing Costs with Reserved Nodes</a> for Memcached.

        :param self:
        :param Tags:  A list of tags to be added to this resource. A tag is a key-value pair. A tag key must be accompanied by a tag value, although null is accepted.<br/>CacheNodeCount:  The number of cache node instances to reserve. Default: <code>1</code> <br/>ReservedCacheNodeId:  A customer-specified identifier to track this reservation. <note> The Reserved Cache Node ID is an unique customer-specified identifier to track this reservation. If this parameter is not specified, ElastiCache automatically generates an identifier for the reservation. </note> Example: myreservationID<br/>ReservedCacheNodesOfferingId:  The ID of the reserved cache node offering to purchase. Example: <code>438012d3-4052-4cc7-b2e3-8d3372e0e706</code> <br/>
        :return: ReservedCacheNode:  Represents the output of a <code>PurchaseReservedCacheNodesOffering</code> operation.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReservationARN</i> The Amazon Resource Name (ARN) of the reserved cache node. Example: <code>arn:aws:elasticache:us-east-1:123456789012:reserved-instance:ri-2017-03-27-08-33-25-582</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecurringCharges</i> The recurring price charged to run this reserved cache node.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the reserved cache node.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OfferingType</i> The offering type of this reserved cache node.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProductDescription</i> The description of the reserved cache node.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheNodeCount</i> The number of cache nodes that have been reserved.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UsagePrice</i> The hourly price charged for this reserved cache node.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FixedPrice</i> The fixed price charged for this reserved cache node.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Duration</i> The duration of the reservation in seconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StartTime</i> The time the reservation started.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheNodeType</i> The cache node type for the reserved cache nodes. The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts. <ul> <li> General purpose: <ul> <li> Current generation:   <b>M6g node types</b> (available only for Redis engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward).  <code>cache.m6g.large</code>, <code>cache.m6g.xlarge</code>, <code>cache.m6g.2xlarge</code>, <code>cache.m6g.4xlarge</code>, <code>cache.m6g.8xlarge</code>, <code>cache.m6g.12xlarge</code>, <code>cache.m6g.16xlarge</code>  <note> For region availability, see <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion">Supported Node Types</a>  </note>  <b>M5 node types:</b> <code>cache.m5.large</code>, <code>cache.m5.xlarge</code>, <code>cache.m5.2xlarge</code>, <code>cache.m5.4xlarge</code>, <code>cache.m5.12xlarge</code>, <code>cache.m5.24xlarge</code>   <b>M4 node types:</b> <code>cache.m4.large</code>, <code>cache.m4.xlarge</code>, <code>cache.m4.2xlarge</code>, <code>cache.m4.4xlarge</code>, <code>cache.m4.10xlarge</code>   <b>T3 node types:</b> <code>cache.t3.micro</code>, <code>cache.t3.small</code>, <code>cache.t3.medium</code>   <b>T2 node types:</b> <code>cache.t2.micro</code>, <code>cache.t2.small</code>, <code>cache.t2.medium</code>  </li> <li> Previous generation: (not recommended)  <b>T1 node types:</b> <code>cache.t1.micro</code>   <b>M1 node types:</b> <code>cache.m1.small</code>, <code>cache.m1.medium</code>, <code>cache.m1.large</code>, <code>cache.m1.xlarge</code>   <b>M3 node types:</b> <code>cache.m3.medium</code>, <code>cache.m3.large</code>, <code>cache.m3.xlarge</code>, <code>cache.m3.2xlarge</code>  </li> </ul> </li> <li> Compute optimized: <ul> <li> Previous generation: (not recommended)  <b>C1 node types:</b> <code>cache.c1.xlarge</code>  </li> </ul> </li> <li> Memory optimized: <ul> <li> Current generation:   <b>R6g node types</b> (available only for Redis engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward).  <code>cache.r6g.large</code>, <code>cache.r6g.xlarge</code>, <code>cache.r6g.2xlarge</code>, <code>cache.r6g.4xlarge</code>, <code>cache.r6g.8xlarge</code>, <code>cache.r6g.12xlarge</code>, <code>cache.r6g.16xlarge</code>  <note> For region availability, see <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion">Supported Node Types</a>  </note>  <b>R5 node types:</b> <code>cache.r5.large</code>, <code>cache.r5.xlarge</code>, <code>cache.r5.2xlarge</code>, <code>cache.r5.4xlarge</code>, <code>cache.r5.12xlarge</code>, <code>cache.r5.24xlarge</code>   <b>R4 node types:</b> <code>cache.r4.large</code>, <code>cache.r4.xlarge</code>, <code>cache.r4.2xlarge</code>, <code>cache.r4.4xlarge</code>, <code>cache.r4.8xlarge</code>, <code>cache.r4.16xlarge</code>  </li> <li> Previous generation: (not recommended)  <b>M2 node types:</b> <code>cache.m2.xlarge</code>, <code>cache.m2.2xlarge</code>, <code>cache.m2.4xlarge</code>   <b>R3 node types:</b> <code>cache.r3.large</code>, <code>cache.r3.xlarge</code>, <code>cache.r3.2xlarge</code>, <code>cache.r3.4xlarge</code>, <code>cache.r3.8xlarge</code>  </li> </ul> </li> </ul>  <b>Additional node type info</b>  <ul> <li> All current generation instance types are created in Amazon VPC by default. </li> <li> Redis append-only files (AOF) are not supported for T1 or T2 instances. </li> <li> Redis Multi-AZ with automatic failover is not supported on T1 instances. </li> <li> Redis configuration variables <code>appendonly</code> and <code>appendfsync</code> are not supported on Redis version 2.8.22 and later. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReservedCacheNodesOfferingId</i> The offering identifier.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReservedCacheNodeId</i> The unique identifier for the reservation.<br/>        """
        pass

    def rebalance_slots_in_global_replication_group(self, ApplyImmediately: Boolean, GlobalReplicationGroupId: str) -> RebalanceSlotsInGlobalReplicationGroupResult:
        r"""Redistribute slots to ensure uniform distribution across existing shards in the cluster.

        :param self:
        :param ApplyImmediately:  If <code>True</code>, redistribution is applied immediately.<br/>GlobalReplicationGroupId:  The name of the Global datastore<br/>
        :return: GlobalReplicationGroup:  Consists of a primary cluster that accepts writes and an associated secondary cluster that resides in a different AWS region. The secondary cluster accepts only reads. The primary cluster automatically replicates updates to the secondary cluster. <ul> <li> The <b>GlobalReplicationGroupIdSuffix</b> represents the name of the Global datastore, which is what you use to associate a secondary cluster. </li> </ul>:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ARN</i> The ARN (Amazon Resource Name) of the global replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AtRestEncryptionEnabled</i> A flag that enables encryption at rest when set to <code>true</code>. You cannot modify the value of <code>AtRestEncryptionEnabled</code> after the replication group is created. To enable encryption at rest on a replication group you must set <code>AtRestEncryptionEnabled</code> to <code>true</code> when you create the replication group.   <b>Required:</b> Only available when creating a replication group in an Amazon VPC using redis version <code>3.2.6</code>, <code>4.x</code> or later.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitEncryptionEnabled</i> A flag that enables in-transit encryption when set to true. You cannot modify the value of <code>TransitEncryptionEnabled</code> after the cluster is created. To enable in-transit encryption on a cluster you must set <code>TransitEncryptionEnabled</code> to true when you create a cluster.   <b>Required:</b> Only available when creating a replication group in an Amazon VPC using redis version <code>3.2.6</code>, <code>4.x</code> or later.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AuthTokenEnabled</i> A flag that enables using an <code>AuthToken</code> (password) when issuing Redis commands. Default: <code>false</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalNodeGroups</i> Indicates the slot configuration and global identifier for each slice group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterEnabled</i> A flag that indicates whether the Global datastore is cluster enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Members</i> The replication groups that comprise the Global datastore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> The Elasticache Redis engine version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> The Elasticache engine. For Redis only.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheNodeType</i> The cache node type of the Global datastore<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the Global datastore<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalReplicationGroupDescription</i> The optional description of the Global datastore<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalReplicationGroupId</i> The name of the Global datastore<br/>        """
        pass

    def reboot_cache_cluster(self, CacheNodeIdsToReboot: List[String], CacheClusterId: str) -> RebootCacheClusterResult:
        r"""Reboots some, or all, of the cache nodes within a provisioned cluster. This operation applies any modified cache parameter groups to the cluster. The reboot operation takes place as soon as possible, and results in a momentary outage to the cluster. During the reboot, the cluster status is set to REBOOTING. The reboot causes the contents of the cache (for each cache node being rebooted) to be lost. When the reboot is complete, a cluster event is created. Rebooting a cluster is currently supported on Memcached and Redis (cluster mode disabled) clusters. Rebooting is not supported on Redis (cluster mode enabled) clusters. If you make changes to parameters that require a Redis (cluster mode enabled) cluster reboot for the changes to be applied, see <a href="http://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Clusters.Rebooting.html">Rebooting a Cluster</a> for an alternate process.

        :param self:
        :param CacheNodeIdsToReboot:  A list of cache node IDs to reboot. A node ID is a numeric identifier (0001, 0002, etc.). To reboot an entire cluster, specify all of the cache node IDs.<br/>CacheClusterId:  The cluster identifier. This parameter is stored as a lowercase string.<br/>
        :return: CacheCluster:  Contains all of the attributes of a specific cluster.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogDeliveryConfigurations</i> Returns the destination, format and type of the logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationGroupLogDeliveryEnabled</i> A boolean value indicating whether log delivery is enabled for the replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ARN</i> The ARN (Amazon Resource Name) of the cache cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AtRestEncryptionEnabled</i> A flag that enables encryption at-rest when set to <code>true</code>. You cannot modify the value of <code>AtRestEncryptionEnabled</code> after the cluster is created. To enable at-rest encryption on a cluster you must set <code>AtRestEncryptionEnabled</code> to <code>true</code> when you create a cluster.  <b>Required:</b> Only available when creating a replication group in an Amazon VPC using redis version <code>3.2.6</code>, <code>4.x</code> or later. Default: <code>false</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitEncryptionEnabled</i> A flag that enables in-transit encryption when set to <code>true</code>. You cannot modify the value of <code>TransitEncryptionEnabled</code> after the cluster is created. To enable in-transit encryption on a cluster you must set <code>TransitEncryptionEnabled</code> to <code>true</code> when you create a cluster.  <b>Required:</b> Only available when creating a replication group in an Amazon VPC using redis version <code>3.2.6</code>, <code>4.x</code> or later. Default: <code>false</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AuthTokenLastModifiedDate</i> The date the auth token was last modified<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AuthTokenEnabled</i> A flag that enables using an <code>AuthToken</code> (password) when issuing Redis commands. Default: <code>false</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotWindow</i> The daily time range (in UTC) during which ElastiCache begins taking a daily snapshot of your cluster. Example: <code>05:00-09:00</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotRetentionLimit</i> The number of days for which ElastiCache retains automatic cluster snapshots before deleting them. For example, if you set <code>SnapshotRetentionLimit</code> to 5, a snapshot that was taken today is retained for 5 days before being deleted. <important>  If the value of SnapshotRetentionLimit is set to zero (0), backups are turned off. </important><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationGroupId</i> The replication group to which this cluster belongs. If this field is empty, the cluster is not associated with any replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroups</i> A list of VPC Security Groups associated with the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoMinorVersionUpgrade</i> This parameter is currently disabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheNodes</i> A list of cache nodes that are members of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheSubnetGroupName</i> The name of the cache subnet group associated with the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheParameterGroup</i> Status of the cache parameter group.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CacheParameterGroup</b>: Status of the cache parameter group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheSecurityGroups</i> A list of cache security group elements, composed of name and status sub-elements.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NotificationConfiguration</i> Describes a notification topic and its status. Notification topics are used for publishing ElastiCache events to subscribers using Amazon Simple Notification Service (SNS). &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>NotificationConfiguration</b>: Describes a notification topic and its status. Notification topics are used for publishing ElastiCache events to subscribers using Amazon Simple Notification Service (SNS). <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingModifiedValues</i> A group of settings that are applied to the cluster in the future, or that are currently being applied.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingModifiedValues</b>: A group of settings that are applied to the cluster in the future, or that are currently being applied.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i> Specifies the weekly time range during which maintenance on the cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period. Valid values for <code>ddd</code> are: <ul> <li>  <code>sun</code>  </li> <li>  <code>mon</code>  </li> <li>  <code>tue</code>  </li> <li>  <code>wed</code>  </li> <li>  <code>thu</code>  </li> <li>  <code>fri</code>  </li> <li>  <code>sat</code>  </li> </ul> Example: <code>sun:23:00-mon:01:30</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheClusterCreateTime</i> The date and time when the cluster was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredOutpostArn</i> The outpost ARN in which the cache cluster is created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredAvailabilityZone</i> The name of the Availability Zone in which the cluster is located or "Multiple" if the cache nodes are located in different Availability Zones.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NumCacheNodes</i> The number of cache nodes in the cluster. For clusters running Redis, this value must be 1. For clusters running Memcached, this value must be between 1 and 40.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheClusterStatus</i> The current state of this cluster, one of the following values: <code>available</code>, <code>creating</code>, <code>deleted</code>, <code>deleting</code>, <code>incompatible-network</code>, <code>modifying</code>, <code>rebooting cluster nodes</code>, <code>restore-failed</code>, or <code>snapshotting</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> The version of the cache engine that is used in this cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> The name of the cache engine (<code>memcached</code> or <code>redis</code>) to be used for this cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheNodeType</i> The name of the compute and memory capacity node type for the cluster. The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts. <ul> <li> General purpose: <ul> <li> Current generation:   <b>M6g node types</b> (available only for Redis engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward).  <code>cache.m6g.large</code>, <code>cache.m6g.xlarge</code>, <code>cache.m6g.2xlarge</code>, <code>cache.m6g.4xlarge</code>, <code>cache.m6g.8xlarge</code>, <code>cache.m6g.12xlarge</code>, <code>cache.m6g.16xlarge</code>  <note> For region availability, see <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion">Supported Node Types</a>  </note>  <b>M5 node types:</b> <code>cache.m5.large</code>, <code>cache.m5.xlarge</code>, <code>cache.m5.2xlarge</code>, <code>cache.m5.4xlarge</code>, <code>cache.m5.12xlarge</code>, <code>cache.m5.24xlarge</code>   <b>M4 node types:</b> <code>cache.m4.large</code>, <code>cache.m4.xlarge</code>, <code>cache.m4.2xlarge</code>, <code>cache.m4.4xlarge</code>, <code>cache.m4.10xlarge</code>   <b>T3 node types:</b> <code>cache.t3.micro</code>, <code>cache.t3.small</code>, <code>cache.t3.medium</code>   <b>T2 node types:</b> <code>cache.t2.micro</code>, <code>cache.t2.small</code>, <code>cache.t2.medium</code>  </li> <li> Previous generation: (not recommended)  <b>T1 node types:</b> <code>cache.t1.micro</code>   <b>M1 node types:</b> <code>cache.m1.small</code>, <code>cache.m1.medium</code>, <code>cache.m1.large</code>, <code>cache.m1.xlarge</code>   <b>M3 node types:</b> <code>cache.m3.medium</code>, <code>cache.m3.large</code>, <code>cache.m3.xlarge</code>, <code>cache.m3.2xlarge</code>  </li> </ul> </li> <li> Compute optimized: <ul> <li> Previous generation: (not recommended)  <b>C1 node types:</b> <code>cache.c1.xlarge</code>  </li> </ul> </li> <li> Memory optimized: <ul> <li> Current generation:   <b>R6g node types</b> (available only for Redis engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward).  <code>cache.r6g.large</code>, <code>cache.r6g.xlarge</code>, <code>cache.r6g.2xlarge</code>, <code>cache.r6g.4xlarge</code>, <code>cache.r6g.8xlarge</code>, <code>cache.r6g.12xlarge</code>, <code>cache.r6g.16xlarge</code>  <note> For region availability, see <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion">Supported Node Types</a>  </note>  <b>R5 node types:</b> <code>cache.r5.large</code>, <code>cache.r5.xlarge</code>, <code>cache.r5.2xlarge</code>, <code>cache.r5.4xlarge</code>, <code>cache.r5.12xlarge</code>, <code>cache.r5.24xlarge</code>   <b>R4 node types:</b> <code>cache.r4.large</code>, <code>cache.r4.xlarge</code>, <code>cache.r4.2xlarge</code>, <code>cache.r4.4xlarge</code>, <code>cache.r4.8xlarge</code>, <code>cache.r4.16xlarge</code>  </li> <li> Previous generation: (not recommended)  <b>M2 node types:</b> <code>cache.m2.xlarge</code>, <code>cache.m2.2xlarge</code>, <code>cache.m2.4xlarge</code>   <b>R3 node types:</b> <code>cache.r3.large</code>, <code>cache.r3.xlarge</code>, <code>cache.r3.2xlarge</code>, <code>cache.r3.4xlarge</code>, <code>cache.r3.8xlarge</code>  </li> </ul> </li> </ul>  <b>Additional node type info</b>  <ul> <li> All current generation instance types are created in Amazon VPC by default. </li> <li> Redis append-only files (AOF) are not supported for T1 or T2 instances. </li> <li> Redis Multi-AZ with automatic failover is not supported on T1 instances. </li> <li> Redis configuration variables <code>appendonly</code> and <code>appendfsync</code> are not supported on Redis version 2.8.22 and later. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClientDownloadLandingPage</i> The URL of the web page where you can download the latest ElastiCache client library.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConfigurationEndpoint</i> Represents a Memcached cluster endpoint which can be used by an application to connect to any node in the cluster. The configuration endpoint will always have <code>.cfg</code> in it. Example: <code>mem-3.9dvc4r<u>.cfg</u>.usw2.cache.amazonaws.com:11211</code> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ConfigurationEndpoint</b>: Represents a Memcached cluster endpoint which can be used by an application to connect to any node in the cluster. The configuration endpoint will always have <code>.cfg</code> in it. Example: <code>mem-3.9dvc4r<u>.cfg</u>.usw2.cache.amazonaws.com:11211</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheClusterId</i> The user-supplied identifier of the cluster. This identifier is a unique key that identifies a cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> The port number that the cache engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Address</i> The DNS hostname of the cache node.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LogDeliveryConfigurations</i> The log delivery configurations being modified <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AuthTokenStatus</i> The auth token status<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheNodeType</i> The cache node type that this cluster or replication group is scaled to.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> The new cache engine version that the cluster runs.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheNodeIdsToRemove</i> A list of cache node IDs that are being removed (or will be removed) from the cluster. A node ID is a 4-digit numeric identifier (0001, 0002, etc.).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NumCacheNodes</i> The new number of cache nodes for the cluster. For clusters running Redis, this value must be 1. For clusters running Memcached, this value must be between 1 and 40.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TopicStatus</i> The current state of the topic.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TopicArn</i> The Amazon Resource Name (ARN) that identifies the topic.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheNodeIdsToReboot</i> A list of the cache node IDs which need to be rebooted for parameter changes to be applied. A node ID is a numeric identifier (0001, 0002, etc.).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ParameterApplyStatus</i> The status of parameter updates.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheParameterGroupName</i> The name of the cache parameter group.<br/>        """
        pass

    def remove_tags_from_resource(self, TagKeys: List[String], ResourceName: str) -> TagListMessage:
        r"""Removes the tags identified by the <code>TagKeys</code> list from the named resource. A tag is a key-value pair where the key and value are case-sensitive. You can use tags to categorize and track all your ElastiCache resources, with the exception of global replication group. When you add or remove tags on replication groups, those actions will be replicated to all nodes in the replication group. For more information, see <a href="http://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/IAM.ResourceLevelPermissions.html">Resource-level permissions</a>.

        :param self:
        :param TagKeys:  A list of <code>TagKeys</code> identifying the tags you want removed from the named resource.<br/>ResourceName:  The Amazon Resource Name (ARN) of the resource from which you want the tags removed, for example <code>arn:aws:elasticache:us-west-2:0123456789:cluster:myCluster</code> or <code>arn:aws:elasticache:us-west-2:0123456789:snapshot:mySnapshot</code>. For more information about ARNs, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a>.<br/>
        :return: TagList:  A list of tags as key-value pairs.<br/>        """
        pass

    def reset_cache_parameter_group(self, CacheParameterGroupName: str, ResetAllParameters: Boolean=None, ParameterNameValues: List[ParameterNameValue]=None) -> CacheParameterGroupNameMessage:
        r"""Modifies the parameters of a cache parameter group to the engine or system default value. You can reset specific parameters by submitting a list of parameter names. To reset the entire cache parameter group, specify the <code>ResetAllParameters</code> and <code>CacheParameterGroupName</code> parameters.

        :param self:
        :param ParameterNameValues:  An array of parameter names to reset to their default values. If <code>ResetAllParameters</code> is <code>true</code>, do not use <code>ParameterNameValues</code>. If <code>ResetAllParameters</code> is <code>false</code>, you must specify the name of at least one parameter to reset.<br/>ResetAllParameters:  If <code>true</code>, all parameters in the cache parameter group are reset to their default values. If <code>false</code>, only the parameters listed by <code>ParameterNameValues</code> are reset to their default values. Valid values: <code>true</code> | <code>false</code> <br/>CacheParameterGroupName:  The name of the cache parameter group to reset.<br/>
        :return: CacheParameterGroupName:  The name of the cache parameter group.<br/>        """
        pass

    def revoke_cache_security_group_ingress(self, EC2SecurityGroupOwnerId: str, EC2SecurityGroupName: str, CacheSecurityGroupName: str) -> RevokeCacheSecurityGroupIngressResult:
        r"""Revokes ingress from a cache security group. Use this operation to disallow access from an Amazon EC2 security group that had been previously authorized.

        :param self:
        :param EC2SecurityGroupOwnerId:  The AWS account number of the Amazon EC2 security group owner. Note that this is not the same thing as an AWS access key ID - you must provide a valid AWS account number for this parameter.<br/>EC2SecurityGroupName:  The name of the Amazon EC2 security group to revoke access from.<br/>CacheSecurityGroupName:  The name of the cache security group to revoke ingress from.<br/>
        :return: CacheSecurityGroup:  Represents the output of one of the following operations: <ul> <li>  <code>AuthorizeCacheSecurityGroupIngress</code>  </li> <li>  <code>CreateCacheSecurityGroup</code>  </li> <li>  <code>RevokeCacheSecurityGroupIngress</code>  </li> </ul>:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ARN</i> The ARN of the cache security group,<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EC2SecurityGroups</i> A list of Amazon EC2 security groups that are associated with this cache security group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the cache security group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheSecurityGroupName</i> The name of the cache security group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> The AWS account ID of the cache security group owner.<br/>        """
        pass

    def start_migration(self, CustomerNodeEndpointList: List[CustomerNodeEndpoint], ReplicationGroupId: str) -> StartMigrationResponse:
        r"""Start the migration of data.

        :param self:
        :param CustomerNodeEndpointList:  List of endpoints from which data should be migrated. For Redis (cluster mode disabled), list should have only one element.<br/>ReplicationGroupId:  The ID of the replication group to which data should be migrated.<br/>
        :return: ReplicationGroup:  Contains all of the attributes of a specific Redis replication group.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogDeliveryConfigurations</i> Returns the destination, format and type of the logs. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserGroupIds</i> The list of user group IDs that have access to the replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ARN</i> The ARN (Amazon Resource Name) of the replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The ID of the KMS key used to encrypt the disk in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MemberClustersOutpostArns</i> The outpost ARNs of the replication group's member clusters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AtRestEncryptionEnabled</i> A flag that enables encryption at-rest when set to <code>true</code>. You cannot modify the value of <code>AtRestEncryptionEnabled</code> after the cluster is created. To enable encryption at-rest on a cluster you must set <code>AtRestEncryptionEnabled</code> to <code>true</code> when you create a cluster.  <b>Required:</b> Only available when creating a replication group in an Amazon VPC using redis version <code>3.2.6</code>, <code>4.x</code> or later. Default: <code>false</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitEncryptionEnabled</i> A flag that enables in-transit encryption when set to <code>true</code>. You cannot modify the value of <code>TransitEncryptionEnabled</code> after the cluster is created. To enable in-transit encryption on a cluster you must set <code>TransitEncryptionEnabled</code> to <code>true</code> when you create a cluster.  <b>Required:</b> Only available when creating a replication group in an Amazon VPC using redis version <code>3.2.6</code>, <code>4.x</code> or later. Default: <code>false</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AuthTokenLastModifiedDate</i> The date the auth token was last modified<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AuthTokenEnabled</i> A flag that enables using an <code>AuthToken</code> (password) when issuing Redis commands. Default: <code>false</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheNodeType</i> The name of the compute and memory capacity node type for each node in the replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterEnabled</i> A flag indicating whether or not this replication group is cluster enabled; i.e., whether its data can be partitioned across multiple shards (API/CLI: node groups). Valid values: <code>true</code> | <code>false</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotWindow</i> The daily time range (in UTC) during which ElastiCache begins taking a daily snapshot of your node group (shard). Example: <code>05:00-09:00</code>  If you do not specify this parameter, ElastiCache automatically chooses an appropriate time range. <note> This parameter is only valid if the <code>Engine</code> parameter is <code>redis</code>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotRetentionLimit</i> The number of days for which ElastiCache retains automatic cluster snapshots before deleting them. For example, if you set <code>SnapshotRetentionLimit</code> to 5, a snapshot that was taken today is retained for 5 days before being deleted. <important>  If the value of <code>SnapshotRetentionLimit</code> is set to zero (0), backups are turned off. </important><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConfigurationEndpoint</i> The configuration endpoint for this replication group. Use the configuration endpoint to connect to this replication group.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ConfigurationEndpoint</b>: The configuration endpoint for this replication group. Use the configuration endpoint to connect to this replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiAZ</i> A flag indicating if you have Multi-AZ enabled to enhance fault tolerance. For more information, see <a href="http://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/AutoFailover.html">Minimizing Downtime: Multi-AZ</a> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomaticFailover</i> Indicates the status of automatic failover for this Redis replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshottingClusterId</i> The cluster ID that is used as the daily snapshot source for the replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NodeGroups</i> A list of node groups in this replication group. For Redis (cluster mode disabled) replication groups, this is a single-element list. For Redis (cluster mode enabled) replication groups, the list contains an entry for each node group (shard).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MemberClusters</i> The names of all the cache clusters that are part of this replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingModifiedValues</i> A group of settings to be applied to the replication group, either immediately or during the next maintenance window.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingModifiedValues</b>: A group of settings to be applied to the replication group, either immediately or during the next maintenance window.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current state of this replication group - <code>creating</code>, <code>available</code>, <code>modifying</code>, <code>deleting</code>, <code>create-failed</code>, <code>snapshotting</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalReplicationGroupInfo</i> The name of the Global datastore and role of this replication group in the Global datastore.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>GlobalReplicationGroupInfo</b>: The name of the Global datastore and role of this replication group in the Global datastore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The user supplied description of the replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationGroupId</i> The identifier for the replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalReplicationGroupMemberRole</i> The role of the replication group in a Global datastore. Can be primary or secondary.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalReplicationGroupId</i> The name of the Global datastore<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomaticFailoverStatus</i> Indicates the status of automatic failover for this Redis replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PrimaryClusterId</i> The primary cluster ID that is applied immediately (if <code>--apply-immediately</code> was specified), or during the next maintenance window.<br/>The status of an online resharding operation.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Resharding</b>: The status of an online resharding operation.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> The port number that the cache engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Address</i> The DNS hostname of the cache node.<br/>        """
        pass

    def test_failover(self, NodeGroupId: str, ReplicationGroupId: str) -> TestFailoverResult:
        r"""Represents the input of a <code>TestFailover</code> operation which test automatic failover on a specified node group (called shard in the console) in a replication group (called cluster in the console). <p class="title"> <b>Note the following</b>  <ul> <li> A customer can use this operation to test automatic failover on up to 5 shards (called node groups in the ElastiCache API and AWS CLI) in any rolling 24-hour period. </li> <li> If calling this operation on shards in different clusters (called replication groups in the API and CLI), the calls can be made concurrently.   </li> <li> If calling this operation multiple times on different shards in the same Redis (cluster mode enabled) replication group, the first node replacement must complete before a subsequent call can be made. </li> <li> To determine whether the node replacement is complete you can check Events using the Amazon ElastiCache console, the AWS CLI, or the ElastiCache API. Look for the following automatic failover related events, listed here in order of occurrance: <ol> <li> Replication group message: <code>Test Failover API called for node group &lt;node-group-id&gt;</code>  </li> <li> Cache cluster message: <code>Failover from primary node &lt;primary-node-id&gt; to replica node &lt;node-id&gt; completed</code>  </li> <li> Replication group message: <code>Failover from primary node &lt;primary-node-id&gt; to replica node &lt;node-id&gt; completed</code>  </li> <li> Cache cluster message: <code>Recovering cache nodes &lt;node-id&gt;</code>  </li> <li> Cache cluster message: <code>Finished recovery for cache nodes &lt;node-id&gt;</code>  </li> </ol> For more information see: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/ECEvents.Viewing.html">Viewing ElastiCache Events</a> in the <i>ElastiCache User Guide</i>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeEvents.html">DescribeEvents</a> in the ElastiCache API Reference </li> </ul> </li> </ul> Also see, <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/AutoFailover.html#auto-failover-test">Testing Multi-AZ </a> in the <i>ElastiCache User Guide</i>.

        :param self:
        :param NodeGroupId:  The name of the node group (called shard in the console) in this replication group on which automatic failover is to be tested. You may test automatic failover on up to 5 node groups in any rolling 24-hour period.<br/>ReplicationGroupId:  The name of the replication group (console: cluster) whose automatic failover is being tested by this operation.<br/>
        :return: ReplicationGroup:  Contains all of the attributes of a specific Redis replication group.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogDeliveryConfigurations</i> Returns the destination, format and type of the logs. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserGroupIds</i> The list of user group IDs that have access to the replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ARN</i> The ARN (Amazon Resource Name) of the replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The ID of the KMS key used to encrypt the disk in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MemberClustersOutpostArns</i> The outpost ARNs of the replication group's member clusters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AtRestEncryptionEnabled</i> A flag that enables encryption at-rest when set to <code>true</code>. You cannot modify the value of <code>AtRestEncryptionEnabled</code> after the cluster is created. To enable encryption at-rest on a cluster you must set <code>AtRestEncryptionEnabled</code> to <code>true</code> when you create a cluster.  <b>Required:</b> Only available when creating a replication group in an Amazon VPC using redis version <code>3.2.6</code>, <code>4.x</code> or later. Default: <code>false</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitEncryptionEnabled</i> A flag that enables in-transit encryption when set to <code>true</code>. You cannot modify the value of <code>TransitEncryptionEnabled</code> after the cluster is created. To enable in-transit encryption on a cluster you must set <code>TransitEncryptionEnabled</code> to <code>true</code> when you create a cluster.  <b>Required:</b> Only available when creating a replication group in an Amazon VPC using redis version <code>3.2.6</code>, <code>4.x</code> or later. Default: <code>false</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AuthTokenLastModifiedDate</i> The date the auth token was last modified<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AuthTokenEnabled</i> A flag that enables using an <code>AuthToken</code> (password) when issuing Redis commands. Default: <code>false</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheNodeType</i> The name of the compute and memory capacity node type for each node in the replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterEnabled</i> A flag indicating whether or not this replication group is cluster enabled; i.e., whether its data can be partitioned across multiple shards (API/CLI: node groups). Valid values: <code>true</code> | <code>false</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotWindow</i> The daily time range (in UTC) during which ElastiCache begins taking a daily snapshot of your node group (shard). Example: <code>05:00-09:00</code>  If you do not specify this parameter, ElastiCache automatically chooses an appropriate time range. <note> This parameter is only valid if the <code>Engine</code> parameter is <code>redis</code>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotRetentionLimit</i> The number of days for which ElastiCache retains automatic cluster snapshots before deleting them. For example, if you set <code>SnapshotRetentionLimit</code> to 5, a snapshot that was taken today is retained for 5 days before being deleted. <important>  If the value of <code>SnapshotRetentionLimit</code> is set to zero (0), backups are turned off. </important><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConfigurationEndpoint</i> The configuration endpoint for this replication group. Use the configuration endpoint to connect to this replication group.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ConfigurationEndpoint</b>: The configuration endpoint for this replication group. Use the configuration endpoint to connect to this replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiAZ</i> A flag indicating if you have Multi-AZ enabled to enhance fault tolerance. For more information, see <a href="http://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/AutoFailover.html">Minimizing Downtime: Multi-AZ</a> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomaticFailover</i> Indicates the status of automatic failover for this Redis replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshottingClusterId</i> The cluster ID that is used as the daily snapshot source for the replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NodeGroups</i> A list of node groups in this replication group. For Redis (cluster mode disabled) replication groups, this is a single-element list. For Redis (cluster mode enabled) replication groups, the list contains an entry for each node group (shard).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MemberClusters</i> The names of all the cache clusters that are part of this replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingModifiedValues</i> A group of settings to be applied to the replication group, either immediately or during the next maintenance window.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingModifiedValues</b>: A group of settings to be applied to the replication group, either immediately or during the next maintenance window.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current state of this replication group - <code>creating</code>, <code>available</code>, <code>modifying</code>, <code>deleting</code>, <code>create-failed</code>, <code>snapshotting</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalReplicationGroupInfo</i> The name of the Global datastore and role of this replication group in the Global datastore.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>GlobalReplicationGroupInfo</b>: The name of the Global datastore and role of this replication group in the Global datastore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The user supplied description of the replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationGroupId</i> The identifier for the replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalReplicationGroupMemberRole</i> The role of the replication group in a Global datastore. Can be primary or secondary.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalReplicationGroupId</i> The name of the Global datastore<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomaticFailoverStatus</i> Indicates the status of automatic failover for this Redis replication group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PrimaryClusterId</i> The primary cluster ID that is applied immediately (if <code>--apply-immediately</code> was specified), or during the next maintenance window.<br/>The status of an online resharding operation.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Resharding</b>: The status of an online resharding operation.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> The port number that the cache engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Address</i> The DNS hostname of the cache node.<br/>        """
        pass





class ElasticBeanstalk(BaseClient):
    r"""<fullname>AWS Elastic Beanstalk</fullname> AWS Elastic Beanstalk makes it easy for you to create, deploy, and manage scalable, fault-tolerant applications running on the Amazon Web Services cloud. For more information about this product, go to the <a href="http://aws.amazon.com/elasticbeanstalk/">AWS Elastic Beanstalk</a> details page. The location of the latest AWS Elastic Beanstalk WSDL is <a href="https://elasticbeanstalk.s3.amazonaws.com/doc/2010-12-01/AWSElasticBeanstalk.wsdl">https://elasticbeanstalk.s3.amazonaws.com/doc/2010-12-01/AWSElasticBeanstalk.wsdl</a>. To install the Software Development Kits (SDKs), Integrated Development Environment (IDE) Toolkits, and command line tools that enable you to access the API, go to <a href="http://aws.amazon.com/tools/">Tools for Amazon Web Services</a>.  <b>Endpoints</b>  For a list of region-specific endpoints that AWS Elastic Beanstalk supports, go to <a href="https://docs.aws.amazon.com/general/latest/gr/rande.html#elasticbeanstalk_region">Regions and Endpoints</a> in the <i>Amazon Web Services Glossary</i>."""

    class EnvironmentExistsWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_environments` for valid parameters"""
            pass
    class EnvironmentTerminatedWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_environments` for valid parameters"""
            pass
    class EnvironmentUpdatedWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_environments` for valid parameters"""
            pass


    class DescribeEventsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_events` for valid parameters"""
            pass
    class DescribeApplicationVersionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_application_versions` for valid parameters"""
            pass
    class DescribeEnvironmentManagedActionHistoryPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_environment_managed_action_history` for valid parameters"""
            pass
    class DescribeEnvironmentsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_environments` for valid parameters"""
            pass
    class ListPlatformVersionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_platform_versions` for valid parameters"""
            pass


    class AbortEnvironmentUpdateMessage(Mapping):
        pass
    
    class ApplyEnvironmentManagedActionRequest(Mapping):
        pass
    
    class ApplyEnvironmentManagedActionResult(Mapping):
        pass
    
    class AssociateEnvironmentOperationsRoleMessage(Mapping):
        pass
    
    class CheckDNSAvailabilityMessage(Mapping):
        pass
    
    class CheckDNSAvailabilityResultMessage(Mapping):
        pass
    
    class ComposeEnvironmentsMessage(Mapping):
        pass
    
    class EnvironmentDescriptionsMessage(Mapping):
        pass
    
    class VersionLabel(object):
        pass
    
    class CreateApplicationMessage(Mapping):
        pass
    
    class ApplicationDescriptionMessage(Mapping):
        pass
    
    class ApplicationResourceLifecycleConfig(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class CreateApplicationVersionMessage(Mapping):
        pass
    
    class ApplicationVersionDescriptionMessage(Mapping):
        pass
    
    class SourceBuildInformation(Mapping):
        pass
    
    class S3Location(Mapping):
        pass
    
    class BuildConfiguration(Mapping):
        pass
    
    class AutoCreateApplication(object):
        pass
    
    class ApplicationVersionProccess(object):
        pass
    
    class CreateConfigurationTemplateMessage(Mapping):
        pass
    
    class ConfigurationSettingsDescription(Mapping):
        pass
    
    class SourceConfiguration(Mapping):
        pass
    
    class ConfigurationOptionSetting(Mapping):
        pass
    
    class CreateEnvironmentMessage(Mapping):
        pass
    
    class EnvironmentDescription(Mapping):
        pass
    
    class EnvironmentTier(Mapping):
        pass
    
    class OptionSpecification(Mapping):
        pass
    
    class CreatePlatformVersionRequest(Mapping):
        pass
    
    class CreatePlatformVersionResult(Mapping):
        pass
    
    class CreateStorageLocationResultMessage(Mapping):
        pass
    
    class DeleteApplicationMessage(Mapping):
        pass
    
    class TerminateEnvForce(object):
        pass
    
    class DeleteApplicationVersionMessage(Mapping):
        pass
    
    class DeleteSourceBundle(object):
        pass
    
    class DeleteConfigurationTemplateMessage(Mapping):
        pass
    
    class DeleteEnvironmentConfigurationMessage(Mapping):
        pass
    
    class DeletePlatformVersionRequest(Mapping):
        pass
    
    class DeletePlatformVersionResult(Mapping):
        pass
    
    class DescribeAccountAttributesResult(Mapping):
        pass
    
    class DescribeApplicationVersionsMessage(Mapping):
        pass
    
    class ApplicationVersionDescriptionsMessage(Mapping):
        pass
    
    class DescribeApplicationsMessage(Mapping):
        pass
    
    class ApplicationDescriptionsMessage(Mapping):
        pass
    
    class ApplicationName(object):
        pass
    
    class DescribeConfigurationOptionsMessage(Mapping):
        pass
    
    class ConfigurationOptionsDescription(Mapping):
        pass
    
    class DescribeConfigurationSettingsMessage(Mapping):
        pass
    
    class ConfigurationSettingsDescriptions(Mapping):
        pass
    
    class DescribeEnvironmentHealthRequest(Mapping):
        pass
    
    class DescribeEnvironmentHealthResult(Mapping):
        pass
    
    class EnvironmentHealthAttribute(object):
        pass
    
    class DescribeEnvironmentManagedActionHistoryRequest(Mapping):
        pass
    
    class DescribeEnvironmentManagedActionHistoryResult(Mapping):
        pass
    
    class DescribeEnvironmentManagedActionsRequest(Mapping):
        pass
    
    class DescribeEnvironmentManagedActionsResult(Mapping):
        pass
    
    class DescribeEnvironmentResourcesMessage(Mapping):
        pass
    
    class EnvironmentResourceDescriptionsMessage(Mapping):
        pass
    
    class DescribeEnvironmentsMessage(Mapping):
        pass
    
    class EnvironmentId(object):
        pass
    
    class EnvironmentName(object):
        pass
    
    class IncludeDeleted(object):
        pass
    
    class IncludeDeletedBackTo(object):
        pass
    
    class DescribeEventsMessage(Mapping):
        pass
    
    class EventDescriptionsMessage(Mapping):
        pass
    
    class TimeFilterStart(object):
        pass
    
    class TimeFilterEnd(object):
        pass
    
    class DescribeInstancesHealthRequest(Mapping):
        pass
    
    class DescribeInstancesHealthResult(Mapping):
        pass
    
    class InstancesHealthAttribute(object):
        pass
    
    class DescribePlatformVersionRequest(Mapping):
        pass
    
    class DescribePlatformVersionResult(Mapping):
        pass
    
    class DisassociateEnvironmentOperationsRoleMessage(Mapping):
        pass
    
    class ListAvailableSolutionStacksResultMessage(Mapping):
        pass
    
    class ListPlatformBranchesRequest(Mapping):
        pass
    
    class ListPlatformBranchesResult(Mapping):
        pass
    
    class SearchFilter(Mapping):
        pass
    
    class ListPlatformVersionsRequest(Mapping):
        pass
    
    class ListPlatformVersionsResult(Mapping):
        pass
    
    class PlatformFilter(Mapping):
        pass
    
    class ListTagsForResourceMessage(Mapping):
        pass
    
    class ResourceTagsDescriptionMessage(Mapping):
        pass
    
    class RebuildEnvironmentMessage(Mapping):
        pass
    
    class RequestEnvironmentInfoMessage(Mapping):
        pass
    
    class RestartAppServerMessage(Mapping):
        pass
    
    class RetrieveEnvironmentInfoMessage(Mapping):
        pass
    
    class RetrieveEnvironmentInfoResultMessage(Mapping):
        pass
    
    class SwapEnvironmentCNAMEsMessage(Mapping):
        pass
    
    class TerminateEnvironmentMessage(Mapping):
        pass
    
    class TerminateEnvironmentResources(object):
        pass
    
    class ForceTerminate(object):
        pass
    
    class UpdateApplicationMessage(Mapping):
        pass
    
    class UpdateApplicationResourceLifecycleMessage(Mapping):
        pass
    
    class ApplicationResourceLifecycleDescriptionMessage(Mapping):
        pass
    
    class UpdateApplicationVersionMessage(Mapping):
        pass
    
    class UpdateConfigurationTemplateMessage(Mapping):
        pass
    
    class UpdateEnvironmentMessage(Mapping):
        pass
    
    class UpdateTagsForResourceMessage(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class ValidateConfigurationSettingsMessage(Mapping):
        pass
    
    class ConfigurationSettingsValidationMessages(Mapping):
        pass
    
    def abort_environment_update(self, EnvironmentId: str=None, EnvironmentName: str=None):
        r"""Cancels in-progress environment configuration update or application version deployment.

        :param self:
        :param EnvironmentName:  This specifies the name of the environment with the in-progress update that you want to cancel.<br/>EnvironmentId:  This specifies the ID of the environment with the in-progress update that you want to cancel.<br/>
        :return:         """
        pass

    def apply_environment_managed_action(self, ActionId: str, EnvironmentName: str=None, EnvironmentId: str=None) -> ApplyEnvironmentManagedActionResult:
        r"""Applies a scheduled managed action immediately. A managed action can be applied only if its status is <code>Scheduled</code>. Get the status and action ID of a managed action with <a>DescribeEnvironmentManagedActions</a>.

        :param self:
        :param ActionId:  The action ID of the scheduled managed action to execute.<br/>EnvironmentId:  The environment ID of the target environment.<br/>EnvironmentName:  The name of the target environment.<br/>
        :return: Status:  The status of the managed action.<br/>ActionType:  The type of managed action.<br/>ActionDescription:  A description of the managed action.<br/>ActionId:  The action ID of the managed action.<br/>        """
        pass

    def associate_environment_operations_role(self, OperationsRole: str, EnvironmentName: str):
        r"""Add or change the operations role used by an environment. After this call is made, Elastic Beanstalk uses the associated operations role for permissions to downstream services during subsequent calls acting on this environment. For more information, see <a href="https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/iam-operationsrole.html">Operations roles</a> in the <i>AWS Elastic Beanstalk Developer Guide</i>.

        :param self:
        :param OperationsRole:  The Amazon Resource Name (ARN) of an existing IAM role to be used as the environment's operations role.<br/>EnvironmentName:  The name of the environment to which to set the operations role.<br/>
        :return:         """
        pass

    def check_dns_availability(self, CNAMEPrefix: str) -> CheckDNSAvailabilityResultMessage:
        r"""Checks if the specified CNAME is available.

        :param self:
        :param CNAMEPrefix:  The prefix used when this CNAME is reserved.<br/>
        :return: FullyQualifiedCNAME:  The fully qualified CNAME to reserve when <a>CreateEnvironment</a> is called with the provided prefix.<br/>Available:  Indicates if the specified CNAME is available: <ul> <li>  <code>true</code> : The CNAME is available. </li> <li>  <code>false</code> : The CNAME is not available. </li> </ul><br/>        """
        pass

    def compose_environments(self, ApplicationName: str=None, GroupName: str=None, VersionLabels: List[VersionLabel]=None) -> EnvironmentDescriptionsMessage:
        r"""Create or update a group of environments that each run a separate component of a single application. Takes a list of version labels that specify application source bundles for each of the environments to create or update. The name of each environment and other required information must be included in the source bundles in an environment manifest named <code>env.yaml</code>. See <a href="https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/environment-mgmt-compose.html">Compose Environments</a> for details.

        :param self:
        :param VersionLabels:  A list of version labels, specifying one or more application source bundles that belong to the target application. Each source bundle must include an environment manifest that specifies the name of the environment and the name of the solution stack to use, and optionally can specify environment links to create.<br/>GroupName:  The name of the group to which the target environments belong. Specify a group name only if the environment name defined in each target environment's manifest ends with a + (plus) character. See <a href="https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/environment-cfg-manifest.html">Environment Manifest (env.yaml)</a> for details.<br/>ApplicationName:  The name of the application to which the specified source bundles belong.<br/>
        :return: NextToken:  In a paginated request, the token that you can pass in a subsequent request to get the next response page.<br/>Environments:   Returns an <a>EnvironmentDescription</a> list. <br/>        """
        pass

    def create_application(self, ApplicationName: str, Description: str=None, ResourceLifecycleConfig: ApplicationResourceLifecycleConfig=None, Tags: List[Tag]=None) -> ApplicationDescriptionMessage:
        r"""Creates an application that has one configuration template named <code>default</code> and no application versions.

        :param self:
        :param Tags:  Specifies the tags applied to the application. Elastic Beanstalk applies these tags only to the application. Environments that you create in the application don't inherit the tags.<br/>ResourceLifecycleConfig:  Specifies an application resource lifecycle configuration to prevent your application from accumulating too many versions.:<br/>Description:  Your description of the application.<br/>ApplicationName:  The name of the application. Must be unique within your account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VersionLifecycleConfig</i> Defines lifecycle settings for application versions.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>VersionLifecycleConfig</b>: Defines lifecycle settings for application versions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceRole</i> The ARN of an IAM service role that Elastic Beanstalk has permission to assume. The <code>ServiceRole</code> property is required the first time that you provide a <code>VersionLifecycleConfig</code> for the application in one of the supporting calls (<code>CreateApplication</code> or <code>UpdateApplicationResourceLifecycle</code>). After you provide it once, in either one of the calls, Elastic Beanstalk persists the Service Role with the application, and you don't need to specify it again in subsequent <code>UpdateApplicationResourceLifecycle</code> calls. You can, however, specify it in subsequent calls to change the Service Role to another value.<br/>Specify a max count rule to restrict the number of application versions that are retained for an application.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>MaxCountRule</b>: Specify a max count rule to restrict the number of application versions that are retained for an application.
        :return: Application:   The <a>ApplicationDescription</a> of the application. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceLifecycleConfig</i> The lifecycle settings for the application.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ResourceLifecycleConfig</b>: The lifecycle settings for the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConfigurationTemplates</i> The names of the configuration templates associated with this application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Versions</i> The names of the versions for this application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DateUpdated</i> The date when the application was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DateCreated</i> The date when the application was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> User-defined description of the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationName</i> The name of the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationArn</i> The Amazon Resource Name (ARN) of the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceRole</i> The ARN of an IAM service role that Elastic Beanstalk has permission to assume. The <code>ServiceRole</code> property is required the first time that you provide a <code>VersionLifecycleConfig</code> for the application in one of the supporting calls (<code>CreateApplication</code> or <code>UpdateApplicationResourceLifecycle</code>). After you provide it once, in either one of the calls, Elastic Beanstalk persists the Service Role with the application, and you don't need to specify it again in subsequent <code>UpdateApplicationResourceLifecycle</code> calls. You can, however, specify it in subsequent calls to change the Service Role to another value.<br/>Defines lifecycle settings for application versions.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>VersionLifecycleConfig</b>: Defines lifecycle settings for application versions.        """
        pass

    def create_application_version(self, VersionLabel: str, ApplicationName: str, Description: str=None, SourceBuildInformation: SourceBuildInformation=None, SourceBundle: S3Location=None, BuildConfiguration: BuildConfiguration=None, AutoCreateApplication: AutoCreateApplication=None, Process: ApplicationVersionProccess=None, Tags: List[Tag]=None) -> ApplicationVersionDescriptionMessage:
        r"""Creates an application version for the specified application. You can create an application version from a source bundle in Amazon S3, a commit in AWS CodeCommit, or the output of an AWS CodeBuild build as follows: Specify a commit in an AWS CodeCommit repository with <code>SourceBuildInformation</code>. Specify a build in an AWS CodeBuild with <code>SourceBuildInformation</code> and <code>BuildConfiguration</code>. Specify a source bundle in S3 with <code>SourceBundle</code>  Omit both <code>SourceBuildInformation</code> and <code>SourceBundle</code> to use the default sample application. <note> After you create an application version with a specified Amazon S3 bucket and key location, you can't change that Amazon S3 location. If you change the Amazon S3 location, you receive an exception when you attempt to launch an environment from the application version. </note>

        :param self:
        :param Tags:  Specifies the tags applied to the application version. Elastic Beanstalk applies these tags only to the application version. Environments that use the application version don't inherit the tags.<br/>Process:  Pre-processes and validates the environment manifest (<code>env.yaml</code>) and configuration files (<code>*.config</code> files in the <code>.ebextensions</code> folder) in the source bundle. Validating configuration files can identify issues prior to deploying the application version to an environment. You must turn processing on for application versions that you create using AWS CodeBuild or AWS CodeCommit. For application versions built from a source bundle in Amazon S3, processing is optional. <note> The <code>Process</code> option validates Elastic Beanstalk configuration files. It doesn't validate your application's configuration files, like proxy server or Docker configuration. </note><br/>AutoCreateApplication:  Set to <code>true</code> to create an application with the specified name if it doesn't already exist.<br/>BuildConfiguration:  Settings for an AWS CodeBuild build.:<br/>SourceBundle:  The Amazon S3 bucket and key that identify the location of the source bundle for this version. <note> The Amazon S3 bucket must be in the same region as the environment. </note> Specify a source bundle in S3 or a commit in an AWS CodeCommit repository (with <code>SourceBuildInformation</code>), but not both. If neither <code>SourceBundle</code> nor <code>SourceBuildInformation</code> are provided, Elastic Beanstalk uses a sample application.:<br/>SourceBuildInformation:  Specify a commit in an AWS CodeCommit Git repository to use as the source code for the application version.:<br/>Description:  A description of this application version.<br/>VersionLabel:  A label identifying this version. Constraint: Must be unique per application. If an application version already exists with this label for the specified application, AWS Elastic Beanstalk returns an <code>InvalidParameterValue</code> error. <br/>ApplicationName:   The name of the application. If no application is found with this name, and <code>AutoCreateApplication</code> is <code>false</code>, returns an <code>InvalidParameterValue</code> error. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceLocation</i> The location of the source code, as a formatted string, depending on the value of <code>SourceRepository</code>  <ul> <li> For <code>CodeCommit</code>, the format is the repository name and commit ID, separated by a forward slash. For example, <code>my-git-repo/265cfa0cf6af46153527f55d6503ec030551f57a</code>. </li> <li> For <code>S3</code>, the format is the S3 bucket name and object key, separated by a forward slash. For example, <code>my-s3-bucket/Folders/my-source-file</code>. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceRepository</i> Location where the repository is stored. <ul> <li>  <code>CodeCommit</code>  </li> <li>  <code>S3</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceType</i> The type of repository. <ul> <li>  <code>Git</code>  </li> <li>  <code>Zip</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Key</i> The Amazon S3 key where the data is located.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Bucket</i> The Amazon S3 bucket where the data is located.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TimeoutInMinutes</i> How long in minutes, from 5 to 480 (8 hours), for AWS CodeBuild to wait until timing out any related build that does not get marked as completed. The default is 60 minutes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Image</i> The ID of the Docker image to use for this build project.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ComputeType</i> Information about the compute resources the build project will use. <ul> <li>  <code>BUILD_GENERAL1_SMALL: Use up to 3 GB memory and 2 vCPUs for builds</code>  </li> <li>  <code>BUILD_GENERAL1_MEDIUM: Use up to 7 GB memory and 4 vCPUs for builds</code>  </li> <li>  <code>BUILD_GENERAL1_LARGE: Use up to 15 GB memory and 8 vCPUs for builds</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CodeBuildServiceRole</i> The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that enables AWS CodeBuild to interact with dependent AWS services on behalf of the AWS account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ArtifactName</i> The name of the artifact of the CodeBuild build. If provided, Elastic Beanstalk stores the build artifact in the S3 location <i>S3-bucket</i>/resources/<i>application-name</i>/codebuild/codebuild-<i>version-label</i>-<i>artifact-name</i>.zip. If not provided, Elastic Beanstalk stores the build artifact in the S3 location <i>S3-bucket</i>/resources/<i>application-name</i>/codebuild/codebuild-<i>version-label</i>.zip. <br/>
        :return: ApplicationVersion:   The <a>ApplicationVersionDescription</a> of the application version. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The processing status of the application version. Reflects the state of the application version during its creation. Many of the values are only applicable if you specified <code>True</code> for the <code>Process</code> parameter of the <code>CreateApplicationVersion</code> action. The following list describes the possible values. <ul> <li>  <code>Unprocessed</code> – Application version wasn't pre-processed or validated. Elastic Beanstalk will validate configuration files during deployment of the application version to an environment. </li> <li>  <code>Processing</code> – Elastic Beanstalk is currently processing the application version. </li> <li>  <code>Building</code> – Application version is currently undergoing an AWS CodeBuild build. </li> <li>  <code>Processed</code> – Elastic Beanstalk was successfully pre-processed and validated. </li> <li>  <code>Failed</code> – Either the AWS CodeBuild build failed or configuration files didn't pass validation. This application version isn't usable. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DateUpdated</i> The last modified date of the application version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DateCreated</i> The creation date of the application version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceBundle</i> The storage location of the application version's source bundle in Amazon S3.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SourceBundle</b>: The storage location of the application version's source bundle in Amazon S3.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BuildArn</i> Reference to the artifact from the AWS CodeBuild build.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceBuildInformation</i> If the version's source code was retrieved from AWS CodeCommit, the location of the source code for the application version.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SourceBuildInformation</b>: If the version's source code was retrieved from AWS CodeCommit, the location of the source code for the application version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VersionLabel</i> A unique identifier for the application version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the application version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationName</i> The name of the application to which the application version belongs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationVersionArn</i> The Amazon Resource Name (ARN) of the application version.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceLocation</i> The location of the source code, as a formatted string, depending on the value of <code>SourceRepository</code>  <ul> <li> For <code>CodeCommit</code>, the format is the repository name and commit ID, separated by a forward slash. For example, <code>my-git-repo/265cfa0cf6af46153527f55d6503ec030551f57a</code>. </li> <li> For <code>S3</code>, the format is the S3 bucket name and object key, separated by a forward slash. For example, <code>my-s3-bucket/Folders/my-source-file</code>. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceRepository</i> Location where the repository is stored. <ul> <li>  <code>CodeCommit</code>  </li> <li>  <code>S3</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceType</i> The type of repository. <ul> <li>  <code>Git</code>  </li> <li>  <code>Zip</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Key</i> The Amazon S3 key where the data is located.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Bucket</i> The Amazon S3 bucket where the data is located.<br/>        """
        pass

    def create_configuration_template(self, TemplateName: str, ApplicationName: str, SolutionStackName: str=None, PlatformArn: str=None, SourceConfiguration: SourceConfiguration=None, EnvironmentId: str=None, Description: str=None, OptionSettings: List[ConfigurationOptionSetting]=None, Tags: List[Tag]=None) -> ConfigurationSettingsDescription:
        r"""Creates an AWS Elastic Beanstalk configuration template, associated with a specific Elastic Beanstalk application. You define application configuration settings in a configuration template. You can then use the configuration template to deploy different versions of the application with the same configuration settings. Templates aren't associated with any environment. The <code>EnvironmentName</code> response element is always <code>null</code>. Related Topics <ul> <li>  <a>DescribeConfigurationOptions</a>  </li> <li>  <a>DescribeConfigurationSettings</a>  </li> <li>  <a>ListAvailableSolutionStacks</a>  </li> </ul>

        :param self:
        :param Tags:  Specifies the tags applied to the configuration template.<br/>OptionSettings:  Option values for the Elastic Beanstalk configuration, such as the instance type. If specified, these values override the values obtained from the solution stack or the source configuration template. For a complete list of Elastic Beanstalk configuration options, see <a href="https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/command-options.html">Option Values</a> in the <i>AWS Elastic Beanstalk Developer Guide</i>.<br/>Description:  An optional description for this configuration.<br/>EnvironmentId:  The ID of an environment whose settings you want to use to create the configuration template. You must specify <code>EnvironmentId</code> if you don't specify <code>PlatformArn</code>, <code>SolutionStackName</code>, or <code>SourceConfiguration</code>.<br/>SourceConfiguration:  An Elastic Beanstalk configuration template to base this one on. If specified, Elastic Beanstalk uses the configuration values from the specified configuration template to create a new configuration. Values specified in <code>OptionSettings</code> override any values obtained from the <code>SourceConfiguration</code>. You must specify <code>SourceConfiguration</code> if you don't specify <code>PlatformArn</code>, <code>EnvironmentId</code>, or <code>SolutionStackName</code>. Constraint: If both solution stack name and source configuration are specified, the solution stack of the source configuration template must match the specified solution stack name.:<br/>PlatformArn:  The Amazon Resource Name (ARN) of the custom platform. For more information, see <a href="https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/custom-platforms.html"> Custom Platforms</a> in the <i>AWS Elastic Beanstalk Developer Guide</i>. <note> If you specify <code>PlatformArn</code>, then don't specify <code>SolutionStackName</code>. </note><br/>SolutionStackName:  The name of an Elastic Beanstalk solution stack (platform version) that this configuration uses. For example, <code>64bit Amazon Linux 2013.09 running Tomcat 7 Java 7</code>. A solution stack specifies the operating system, runtime, and application server for a configuration template. It also determines the set of configuration options as well as the possible and default values. For more information, see <a href="https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/concepts.platforms.html">Supported Platforms</a> in the <i>AWS Elastic Beanstalk Developer Guide</i>. You must specify <code>SolutionStackName</code> if you don't specify <code>PlatformArn</code>, <code>EnvironmentId</code>, or <code>SourceConfiguration</code>. Use the <a href="https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_ListAvailableSolutionStacks.html"> <code>ListAvailableSolutionStacks</code> </a> API to obtain a list of available solution stacks.<br/>TemplateName:  The name of the configuration template. Constraint: This name must be unique per application.<br/>ApplicationName:  The name of the Elastic Beanstalk application to associate with this configuration template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TemplateName</i> The name of the configuration template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationName</i> The name of the application associated with the configuration.<br/>
        :return: OptionSettings:  A list of the configuration options and their values in this configuration set.<br/>DateUpdated:  The date (in UTC time) when this configuration set was last modified.<br/>DateCreated:  The date (in UTC time) when this configuration set was created.<br/>DeploymentStatus:   If this configuration set is associated with an environment, the <code>DeploymentStatus</code> parameter indicates the deployment status of this configuration set:  <ul> <li>  <code>null</code>: This configuration is not associated with a running environment. </li> <li>  <code>pending</code>: This is a draft configuration that is not deployed to the associated environment but is in the process of deploying. </li> <li>  <code>deployed</code>: This is the configuration that is currently deployed to the associated running environment. </li> <li>  <code>failed</code>: This is a draft configuration that failed to successfully deploy. </li> </ul><br/>EnvironmentName:   If not <code>null</code>, the name of the environment for this configuration set. <br/>Description:  Describes this configuration set.<br/>TemplateName:   If not <code>null</code>, the name of the configuration template for this configuration set. <br/>ApplicationName:  The name of the application associated with this configuration set.<br/>PlatformArn:  The ARN of the platform version.<br/>SolutionStackName:  The name of the solution stack this configuration set uses.<br/>        """
        pass

    def create_environment(self, ApplicationName: str, EnvironmentName: str=None, GroupName: str=None, Description: str=None, CNAMEPrefix: str=None, Tier: EnvironmentTier=None, Tags: List[Tag]=None, VersionLabel: str=None, TemplateName: str=None, SolutionStackName: str=None, PlatformArn: str=None, OptionSettings: List[ConfigurationOptionSetting]=None, OptionsToRemove: List[OptionSpecification]=None, OperationsRole: str=None) -> EnvironmentDescription:
        r"""Launches an AWS Elastic Beanstalk environment for the specified application using the specified configuration.

        :param self:
        :param OperationsRole:  The Amazon Resource Name (ARN) of an existing IAM role to be used as the environment's operations role. If specified, Elastic Beanstalk uses the operations role for permissions to downstream services during this call and during subsequent calls acting on this environment. To specify an operations role, you must have the <code>iam:PassRole</code> permission for the role. For more information, see <a href="https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/iam-operationsrole.html">Operations roles</a> in the <i>AWS Elastic Beanstalk Developer Guide</i>.<br/>OptionsToRemove:  A list of custom user-defined configuration options to remove from the configuration set for this new environment.<br/>OptionSettings:  If specified, AWS Elastic Beanstalk sets the specified configuration options to the requested value in the configuration set for the new environment. These override the values obtained from the solution stack or the configuration template.<br/>PlatformArn:  The Amazon Resource Name (ARN) of the custom platform to use with the environment. For more information, see <a href="https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/custom-platforms.html">Custom Platforms</a> in the <i>AWS Elastic Beanstalk Developer Guide</i>. <note> If you specify <code>PlatformArn</code>, don't specify <code>SolutionStackName</code>. </note><br/>SolutionStackName:  The name of an Elastic Beanstalk solution stack (platform version) to use with the environment. If specified, Elastic Beanstalk sets the configuration values to the default values associated with the specified solution stack. For a list of current solution stacks, see <a href="https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-supported.html">Elastic Beanstalk Supported Platforms</a> in the <i>AWS Elastic Beanstalk Platforms</i> guide. <note> If you specify <code>SolutionStackName</code>, don't specify <code>PlatformArn</code> or <code>TemplateName</code>. </note><br/>TemplateName:  The name of the Elastic Beanstalk configuration template to use with the environment. <note> If you specify <code>TemplateName</code>, then don't specify <code>SolutionStackName</code>. </note><br/>VersionLabel:  The name of the application version to deploy. Default: If not specified, Elastic Beanstalk attempts to deploy the sample application.<br/>Tags:  Specifies the tags applied to resources in the environment.<br/>Tier:  Specifies the tier to use in creating this environment. The environment tier that you choose determines whether Elastic Beanstalk provisions resources to support a web application that handles HTTP(S) requests or a web application that handles background-processing tasks.:<br/>CNAMEPrefix:  If specified, the environment attempts to use this value as the prefix for the CNAME in your Elastic Beanstalk environment URL. If not specified, the CNAME is generated automatically by appending a random alphanumeric string to the environment name.<br/>Description:  Your description for this environment.<br/>GroupName:  The name of the group to which the target environment belongs. Specify a group name only if the environment's name is specified in an environment manifest and not with the environment name parameter. See <a href="https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/environment-cfg-manifest.html">Environment Manifest (env.yaml)</a> for details.<br/>EnvironmentName:  A unique name for the environment. Constraint: Must be from 4 to 40 characters in length. The name can contain only letters, numbers, and hyphens. It can't start or end with a hyphen. This name must be unique within a region in your account. If the specified name already exists in the region, Elastic Beanstalk returns an <code>InvalidParameterValue</code> error.  If you don't specify the <code>CNAMEPrefix</code> parameter, the environment name becomes part of the CNAME, and therefore part of the visible URL for your application.<br/>ApplicationName:  The name of the application that is associated with this environment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The version of this environment tier. When you don't set a value to it, Elastic Beanstalk uses the latest compatible worker tier version. <note> This member is deprecated. Any specific version that you set may become out of date. We recommend leaving it unspecified. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of this environment tier. Valid values: <ul> <li> For <i>Web server tier</i> – <code>Standard</code>  </li> <li> For <i>Worker tier</i> – <code>SQS/HTTP</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of this environment tier. Valid values: <ul> <li> For <i>Web server tier</i> – <code>WebServer</code>  </li> <li> For <i>Worker tier</i> – <code>Worker</code>  </li> </ul><br/>
        :return: OperationsRole:  The Amazon Resource Name (ARN) of the environment's operations role. For more information, see <a href="https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/iam-operationsrole.html">Operations roles</a> in the <i>AWS Elastic Beanstalk Developer Guide</i>.<br/>EnvironmentArn:  The environment's Amazon Resource Name (ARN), which can be used in other API requests that require an ARN.<br/>EnvironmentLinks:  A list of links to other environments in the same group.<br/>Tier:  Describes the current tier of this environment.:<br/>Resources:  The description of the AWS resources used by this environment.:<br/>HealthStatus:  Returns the health status of the application running in your environment. For more information, see <a href="https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/health-enhanced-status.html">Health Colors and Statuses</a>.<br/>Health:  Describes the health status of the environment. AWS Elastic Beanstalk indicates the failure levels for a running environment: <ul> <li>  <code>Red</code>: Indicates the environment is not responsive. Occurs when three or more consecutive failures occur for an environment. </li> <li>  <code>Yellow</code>: Indicates that something is wrong. Occurs when two consecutive failures occur for an environment. </li> <li>  <code>Green</code>: Indicates the environment is healthy and fully functional. </li> <li>  <code>Grey</code>: Default health for a new environment. The environment is not fully launched and health checks have not started or health checks are suspended during an <code>UpdateEnvironment</code> or <code>RestartEnvironment</code> request. </li> </ul>  Default: <code>Grey</code> <br/>AbortableOperationInProgress:  Indicates if there is an in-progress environment configuration update or application version deployment that you can cancel.  <code>true:</code> There is an update in progress.   <code>false:</code> There are no updates currently in progress. <br/>Status:  The current operational status of the environment: <ul> <li>  <code>Launching</code>: Environment is in the process of initial deployment. </li> <li>  <code>Updating</code>: Environment is in the process of updating its configuration settings or application version. </li> <li>  <code>Ready</code>: Environment is available to have an action performed on it, such as update or terminate. </li> <li>  <code>Terminating</code>: Environment is in the shut-down process. </li> <li>  <code>Terminated</code>: Environment is not running. </li> </ul><br/>DateUpdated:  The last modified date for this environment.<br/>DateCreated:  The creation date for this environment.<br/>CNAME:  The URL to the CNAME for this environment.<br/>EndpointURL:  For load-balanced, autoscaling environments, the URL to the LoadBalancer. For single-instance environments, the IP address of the instance.<br/>Description:  Describes this environment.<br/>TemplateName:  The name of the configuration template used to originally launch this environment.<br/>PlatformArn:  The ARN of the platform version.<br/>SolutionStackName:   The name of the <code>SolutionStack</code> deployed with this environment. <br/>VersionLabel:  The application version deployed in this environment.<br/>ApplicationName:  The name of the application associated with this environment.<br/>EnvironmentId:  The ID of this environment.<br/>EnvironmentName:  The name of this environment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LoadBalancer</i> Describes the LoadBalancer.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>LoadBalancer</b>: Describes the LoadBalancer.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Listeners</i> A list of Listeners used by the LoadBalancer.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Domain</i> The domain name of the LoadBalancer.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LoadBalancerName</i> The name of the LoadBalancer.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The version of this environment tier. When you don't set a value to it, Elastic Beanstalk uses the latest compatible worker tier version. <note> This member is deprecated. Any specific version that you set may become out of date. We recommend leaving it unspecified. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of this environment tier. Valid values: <ul> <li> For <i>Web server tier</i> – <code>Standard</code>  </li> <li> For <i>Worker tier</i> – <code>SQS/HTTP</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of this environment tier. Valid values: <ul> <li> For <i>Web server tier</i> – <code>WebServer</code>  </li> <li> For <i>Worker tier</i> – <code>Worker</code>  </li> </ul><br/>        """
        pass

    def create_platform_version(self, PlatformDefinitionBundle: S3Location, PlatformVersion: str, PlatformName: str, EnvironmentName: str=None, OptionSettings: List[ConfigurationOptionSetting]=None, Tags: List[Tag]=None) -> CreatePlatformVersionResult:
        r"""Create a new version of your custom platform.

        :param self:
        :param Tags:  Specifies the tags applied to the new platform version. Elastic Beanstalk applies these tags only to the platform version. Environments that you create using the platform version don't inherit the tags.<br/>OptionSettings:  The configuration option settings to apply to the builder environment.<br/>EnvironmentName:  The name of the builder environment.<br/>PlatformDefinitionBundle:  The location of the platform definition archive in Amazon S3.:<br/>PlatformVersion:  The number, such as 1.0.2, for the new platform version.<br/>PlatformName:  The name of your custom platform.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Key</i> The Amazon S3 key where the data is located.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Bucket</i> The Amazon S3 bucket where the data is located.<br/>
        :return: Builder:  The builder used to create the custom platform.:<br/>PlatformSummary:  Detailed information about the new version of the custom platform.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PlatformBranchLifecycleState</i> The state of the platform version's branch in its lifecycle. Possible values: <code>beta</code> | <code>supported</code> | <code>deprecated</code> | <code>retired</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PlatformBranchName</i> The platform branch to which the platform version belongs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PlatformVersion</i> The version string of the platform version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PlatformLifecycleState</i> The state of the platform version in its lifecycle. Possible values: <code>recommended</code> | empty If an empty value is returned, the platform version is supported but isn't the recommended one for its branch.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SupportedAddonList</i> The additions associated with the platform version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SupportedTierList</i> The tiers in which the platform version runs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OperatingSystemVersion</i> The version of the operating system used by the platform version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OperatingSystemName</i> The operating system used by the platform version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PlatformCategory</i> The category of platform version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PlatformStatus</i> The status of the platform version. You can create an environment from the platform version once it is ready.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PlatformOwner</i> The AWS account ID of the person who created the platform version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PlatformArn</i> The ARN of the platform version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ARN</i> The ARN of the builder.<br/>        """
        pass

    def create_storage_location(self) -> CreateStorageLocationResultMessage:
        r"""Creates a bucket in Amazon S3 to store application versions, logs, and other files used by Elastic Beanstalk environments. The Elastic Beanstalk console and EB CLI call this API the first time you create an environment in a region. If the storage location already exists, <code>CreateStorageLocation</code> still returns the bucket name but does not create a new bucket.

        :param self:
        :param 
        :return: S3Bucket:  The name of the Amazon S3 bucket created.<br/>        """
        pass

    def delete_application(self, ApplicationName: str, TerminateEnvByForce: TerminateEnvForce=None):
        r"""Deletes the specified application along with all associated versions and configurations. The application versions will not be deleted from your Amazon S3 bucket. <note> You cannot delete an application that has a running environment. </note>

        :param self:
        :param TerminateEnvByForce:  When set to true, running environments will be terminated before deleting the application.<br/>ApplicationName:  The name of the application to delete.<br/>
        :return:         """
        pass

    def delete_application_version(self, VersionLabel: str, ApplicationName: str, DeleteSourceBundle: DeleteSourceBundle=None):
        r"""Deletes the specified version from the specified application. <note> You cannot delete an application version that is associated with a running environment. </note>

        :param self:
        :param DeleteSourceBundle:  Set to <code>true</code> to delete the source bundle from your storage bucket. Otherwise, the application version is deleted only from Elastic Beanstalk and the source bundle remains in Amazon S3.<br/>VersionLabel:  The label of the version to delete.<br/>ApplicationName:  The name of the application to which the version belongs.<br/>
        :return:         """
        pass

    def delete_configuration_template(self, TemplateName: str, ApplicationName: str):
        r"""Deletes the specified configuration template. <note> When you launch an environment using a configuration template, the environment gets a copy of the template. You can delete or modify the environment's copy of the template without affecting the running environment. </note>

        :param self:
        :param TemplateName:  The name of the configuration template to delete.<br/>ApplicationName:  The name of the application to delete the configuration template from.<br/>
        :return:         """
        pass

    def delete_environment_configuration(self, EnvironmentName: str, ApplicationName: str):
        r"""Deletes the draft configuration associated with the running environment. Updating a running environment with any configuration changes creates a draft configuration set. You can get the draft configuration using <a>DescribeConfigurationSettings</a> while the update is in progress or if the update fails. The <code>DeploymentStatus</code> for the draft configuration indicates whether the deployment is in process or has failed. The draft configuration remains in existence until it is deleted with this action.

        :param self:
        :param EnvironmentName:  The name of the environment to delete the draft configuration from.<br/>ApplicationName:  The name of the application the environment is associated with.<br/>
        :return:         """
        pass

    def delete_platform_version(self, PlatformArn: str=None) -> DeletePlatformVersionResult:
        r"""Deletes the specified version of a custom platform.

        :param self:
        :param PlatformArn:  The ARN of the version of the custom platform.<br/>
        :return: PlatformSummary:  Detailed information about the version of the custom platform.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PlatformBranchLifecycleState</i> The state of the platform version's branch in its lifecycle. Possible values: <code>beta</code> | <code>supported</code> | <code>deprecated</code> | <code>retired</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PlatformBranchName</i> The platform branch to which the platform version belongs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PlatformVersion</i> The version string of the platform version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PlatformLifecycleState</i> The state of the platform version in its lifecycle. Possible values: <code>recommended</code> | empty If an empty value is returned, the platform version is supported but isn't the recommended one for its branch.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SupportedAddonList</i> The additions associated with the platform version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SupportedTierList</i> The tiers in which the platform version runs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OperatingSystemVersion</i> The version of the operating system used by the platform version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OperatingSystemName</i> The operating system used by the platform version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PlatformCategory</i> The category of platform version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PlatformStatus</i> The status of the platform version. You can create an environment from the platform version once it is ready.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PlatformOwner</i> The AWS account ID of the person who created the platform version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PlatformArn</i> The ARN of the platform version.<br/>        """
        pass

    def describe_account_attributes(self) -> DescribeAccountAttributesResult:
        r"""Returns attributes related to AWS Elastic Beanstalk that are associated with the calling AWS account. The result currently has one set of attributes—resource quotas.

        :param self:
        :param 
        :return: ResourceQuotas:  The Elastic Beanstalk resource quotas associated with the calling AWS account.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomPlatformQuota</i> The quota for custom platforms in the AWS account.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CustomPlatformQuota</b>: The quota for custom platforms in the AWS account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConfigurationTemplateQuota</i> The quota for configuration templates in the AWS account.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ConfigurationTemplateQuota</b>: The quota for configuration templates in the AWS account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnvironmentQuota</i> The quota for environments in the AWS account.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EnvironmentQuota</b>: The quota for environments in the AWS account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationVersionQuota</i> The quota for application versions in the AWS account.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ApplicationVersionQuota</b>: The quota for application versions in the AWS account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationQuota</i> The quota for applications in the AWS account.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ApplicationQuota</b>: The quota for applications in the AWS account.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Maximum</i> The maximum number of instances of this Elastic Beanstalk resource type that an AWS account can use.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Maximum</i> The maximum number of instances of this Elastic Beanstalk resource type that an AWS account can use.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Maximum</i> The maximum number of instances of this Elastic Beanstalk resource type that an AWS account can use.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Maximum</i> The maximum number of instances of this Elastic Beanstalk resource type that an AWS account can use.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Maximum</i> The maximum number of instances of this Elastic Beanstalk resource type that an AWS account can use.<br/>        """
        pass

    def describe_application_versions(self, ApplicationName: str=None, VersionLabels: List[VersionLabel]=None, MaxRecords: int=None, NextToken: str=None) -> ApplicationVersionDescriptionsMessage:
        r"""Retrieve a list of application versions.

        :param self:
        :param NextToken:  For a paginated request. Specify a token from a previous response page to retrieve the next response page. All other parameter values must be identical to the ones specified in the initial request. If no <code>NextToken</code> is specified, the first page is retrieved.<br/>MaxRecords:  For a paginated request. Specify a maximum number of application versions to include in each response. If no <code>MaxRecords</code> is specified, all available application versions are retrieved in a single response.<br/>VersionLabels:  Specify a version label to show a specific application version.<br/>ApplicationName:  Specify an application name to show only application versions for that application.<br/>
        :return: NextToken:  In a paginated request, the token that you can pass in a subsequent request to get the next response page.<br/>ApplicationVersions:  List of <code>ApplicationVersionDescription</code> objects sorted in order of creation.<br/>        """
        pass

    def describe_applications(self, ApplicationNames: List[ApplicationName]=None) -> ApplicationDescriptionsMessage:
        r"""Returns the descriptions of existing applications.

        :param self:
        :param ApplicationNames:  If specified, AWS Elastic Beanstalk restricts the returned descriptions to only include those with the specified names.<br/>
        :return: Applications:  This parameter contains a list of <a>ApplicationDescription</a>.<br/>        """
        pass

    def describe_configuration_options(self, ApplicationName: str=None, TemplateName: str=None, EnvironmentName: str=None, SolutionStackName: str=None, PlatformArn: str=None, Options: List[OptionSpecification]=None) -> ConfigurationOptionsDescription:
        r"""Describes the configuration options that are used in a particular configuration template or environment, or that a specified solution stack defines. The description includes the values the options, their default values, and an indication of the required action on a running environment if an option value is changed.

        :param self:
        :param Options:  If specified, restricts the descriptions to only the specified options.<br/>PlatformArn:  The ARN of the custom platform.<br/>SolutionStackName:  The name of the solution stack whose configuration options you want to describe.<br/>EnvironmentName:  The name of the environment whose configuration options you want to describe.<br/>TemplateName:  The name of the configuration template whose configuration options you want to describe.<br/>ApplicationName:  The name of the application associated with the configuration template or environment. Only needed if you want to describe the configuration options associated with either the configuration template or environment.<br/>
        :return: Options:   A list of <a>ConfigurationOptionDescription</a>. <br/>PlatformArn:  The ARN of the platform version.<br/>SolutionStackName:  The name of the solution stack these configuration options belong to.<br/>        """
        pass

    def describe_configuration_settings(self, ApplicationName: str, TemplateName: str=None, EnvironmentName: str=None) -> ConfigurationSettingsDescriptions:
        r"""Returns a description of the settings for the specified configuration set, that is, either a configuration template or the configuration set associated with a running environment. When describing the settings for the configuration set associated with a running environment, it is possible to receive two sets of setting descriptions. One is the deployed configuration set, and the other is a draft configuration of an environment that is either in the process of deployment or that failed to deploy. Related Topics <ul> <li>  <a>DeleteEnvironmentConfiguration</a>  </li> </ul>

        :param self:
        :param EnvironmentName:  The name of the environment to describe.  Condition: You must specify either this or a TemplateName, but not both. If you specify both, AWS Elastic Beanstalk returns an <code>InvalidParameterCombination</code> error. If you do not specify either, AWS Elastic Beanstalk returns <code>MissingRequiredParameter</code> error. <br/>TemplateName:  The name of the configuration template to describe.  Conditional: You must specify either this parameter or an EnvironmentName, but not both. If you specify both, AWS Elastic Beanstalk returns an <code>InvalidParameterCombination</code> error. If you do not specify either, AWS Elastic Beanstalk returns a <code>MissingRequiredParameter</code> error. <br/>ApplicationName:  The application for the environment or configuration template.<br/>
        :return: ConfigurationSettings:   A list of <a>ConfigurationSettingsDescription</a>. <br/>        """
        pass

    def describe_environment_health(self, EnvironmentName: str=None, EnvironmentId: str=None, AttributeNames: List[EnvironmentHealthAttribute]=None) -> DescribeEnvironmentHealthResult:
        r"""Returns information about the overall health of the specified environment. The <b>DescribeEnvironmentHealth</b> operation is only available with AWS Elastic Beanstalk Enhanced Health.

        :param self:
        :param AttributeNames:  Specify the response elements to return. To retrieve all attributes, set to <code>All</code>. If no attribute names are specified, returns the name of the environment.<br/>EnvironmentId:  Specify the environment by ID. You must specify either this or an EnvironmentName, or both.<br/>EnvironmentName:  Specify the environment by name. You must specify either this or an EnvironmentName, or both.<br/>
        :return: RefreshedAt:  The date and time that the health information was retrieved.<br/>InstancesHealth:  Summary health information for the instances in the environment.:<br/>ApplicationMetrics:  Application request metrics for the environment.:<br/>Causes:  Descriptions of the data that contributed to the environment's current health status.<br/>Color:  The <a href="https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/health-enhanced-status.html">health color</a> of the environment.<br/>Status:  The environment's operational status. <code>Ready</code>, <code>Launching</code>, <code>Updating</code>, <code>Terminating</code>, or <code>Terminated</code>.<br/>HealthStatus:  The <a href="https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/health-enhanced-status.html">health status</a> of the environment. For example, <code>Ok</code>.<br/>EnvironmentName:  The environment's name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Latency</i> Represents the average latency for the slowest X percent of requests over the last 10 seconds. Latencies are in seconds with one millisecond resolution.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Latency</b>: Represents the average latency for the slowest X percent of requests over the last 10 seconds. Latencies are in seconds with one millisecond resolution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusCodes</i> Represents the percentage of requests over the last 10 seconds that resulted in each type of status code response.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StatusCodes</b>: Represents the percentage of requests over the last 10 seconds that resulted in each type of status code response.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequestCount</i> Average number of requests handled by the web server per second over the last 10 seconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Duration</i> The amount of time that the metrics cover (usually 10 seconds). For example, you might have 5 requests (<code>request_count</code>) within the most recent time slice of 10 seconds (<code>duration</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status5xx</i> The percentage of requests over the last 10 seconds that resulted in a 5xx (500, 501, etc.) status code.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status4xx</i> The percentage of requests over the last 10 seconds that resulted in a 4xx (400, 401, etc.) status code.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status3xx</i> The percentage of requests over the last 10 seconds that resulted in a 3xx (300, 301, etc.) status code.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status2xx</i> The percentage of requests over the last 10 seconds that resulted in a 2xx (200, 201, etc.) status code.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>P10</i> The average latency for the slowest 90 percent of requests over the last 10 seconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>P50</i> The average latency for the slowest 50 percent of requests over the last 10 seconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>P75</i> The average latency for the slowest 25 percent of requests over the last 10 seconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>P85</i> The average latency for the slowest 15 percent of requests over the last 10 seconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>P90</i> The average latency for the slowest 10 percent of requests over the last 10 seconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>P95</i> The average latency for the slowest 5 percent of requests over the last 10 seconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>P99</i> The average latency for the slowest 1 percent of requests over the last 10 seconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>P999</i> The average latency for the slowest 0.1 percent of requests over the last 10 seconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Severe</i>  <b>Red.</b> The health agent is reporting a very high number of request failures or other issues for an instance or environment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Degraded</i>  <b>Red.</b> The health agent is reporting a high number of request failures or other issues for an instance or environment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Warning</i>  <b>Yellow.</b> The health agent is reporting a moderate number of request failures or other issues for an instance or environment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Info</i>  <b>Green.</b> An operation is in progress on an instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Ok</i>  <b>Green.</b> An instance is passing health checks and the health agent is not reporting any problems.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Pending</i>  <b>Grey.</b> An operation is in progress on an instance within the command timeout.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Unknown</i>  <b>Grey.</b> AWS Elastic Beanstalk and the health agent are reporting an insufficient amount of data on an instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NoData</i>  <b>Grey.</b> AWS Elastic Beanstalk and the health agent are reporting no data on an instance.<br/>        """
        pass

    def describe_environment_managed_action_history(self, EnvironmentId: str=None, EnvironmentName: str=None, NextToken: str=None, MaxItems: int=None) -> DescribeEnvironmentManagedActionHistoryResult:
        r"""Lists an environment's completed and failed managed actions.

        :param self:
        :param MaxItems:  The maximum number of items to return for a single request.<br/>NextToken:  The pagination token returned by a previous request.<br/>EnvironmentName:  The name of the target environment.<br/>EnvironmentId:  The environment ID of the target environment.<br/>
        :return: NextToken:  A pagination token that you pass to <a>DescribeEnvironmentManagedActionHistory</a> to get the next page of results.<br/>ManagedActionHistoryItems:  A list of completed and failed managed actions.<br/>        """
        pass

    def describe_environment_managed_actions(self, EnvironmentName: str=None, EnvironmentId: str=None, Status: str=None) -> DescribeEnvironmentManagedActionsResult:
        r"""Lists an environment's upcoming and in-progress managed actions.

        :param self:
        :param Status:  To show only actions with a particular status, specify a status.<br/>EnvironmentId:  The environment ID of the target environment.<br/>EnvironmentName:  The name of the target environment.<br/>
        :return: ManagedActions:  A list of upcoming and in-progress managed actions.<br/>        """
        pass

    def describe_environment_resources(self, EnvironmentId: str=None, EnvironmentName: str=None) -> EnvironmentResourceDescriptionsMessage:
        r"""Returns AWS resources for this environment.

        :param self:
        :param EnvironmentName:  The name of the environment to retrieve AWS resource usage data.  Condition: You must specify either this or an EnvironmentId, or both. If you do not specify either, AWS Elastic Beanstalk returns <code>MissingRequiredParameter</code> error. <br/>EnvironmentId:  The ID of the environment to retrieve AWS resource usage data.  Condition: You must specify either this or an EnvironmentName, or both. If you do not specify either, AWS Elastic Beanstalk returns <code>MissingRequiredParameter</code> error. <br/>
        :return: EnvironmentResources:   A list of <a>EnvironmentResourceDescription</a>. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Queues</i> The queues used by this environment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Triggers</i> The <code>AutoScaling</code> triggers in use by this environment. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LoadBalancers</i> The LoadBalancers in use by this environment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LaunchTemplates</i> The Amazon EC2 launch templates in use by this environment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LaunchConfigurations</i> The Auto Scaling launch configurations in use by this environment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Instances</i> The Amazon EC2 instances used by this environment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoScalingGroups</i>  The <code>AutoScalingGroups</code> used by this environment. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnvironmentName</i> The name of the environment.<br/>        """
        pass

    def describe_environments(self, ApplicationName: str=None, VersionLabel: str=None, EnvironmentIds: List[EnvironmentId]=None, EnvironmentNames: List[EnvironmentName]=None, IncludeDeleted: IncludeDeleted=None, IncludedDeletedBackTo: IncludeDeletedBackTo=None, MaxRecords: int=None, NextToken: str=None) -> EnvironmentDescriptionsMessage:
        r"""Returns descriptions for existing environments.

        :param self:
        :param NextToken:  For a paginated request. Specify a token from a previous response page to retrieve the next response page. All other parameter values must be identical to the ones specified in the initial request. If no <code>NextToken</code> is specified, the first page is retrieved.<br/>MaxRecords:  For a paginated request. Specify a maximum number of environments to include in each response. If no <code>MaxRecords</code> is specified, all available environments are retrieved in a single response.<br/>IncludedDeletedBackTo:   If specified when <code>IncludeDeleted</code> is set to <code>true</code>, then environments deleted after this date are displayed. <br/>IncludeDeleted:  Indicates whether to include deleted environments:  <code>true</code>: Environments that have been deleted after <code>IncludedDeletedBackTo</code> are displayed.  <code>false</code>: Do not include deleted environments.<br/>EnvironmentNames:  If specified, AWS Elastic Beanstalk restricts the returned descriptions to include only those that have the specified names.<br/>EnvironmentIds:  If specified, AWS Elastic Beanstalk restricts the returned descriptions to include only those that have the specified IDs.<br/>VersionLabel:  If specified, AWS Elastic Beanstalk restricts the returned descriptions to include only those that are associated with this application version.<br/>ApplicationName:  If specified, AWS Elastic Beanstalk restricts the returned descriptions to include only those that are associated with this application.<br/>
        :return: NextToken:  In a paginated request, the token that you can pass in a subsequent request to get the next response page.<br/>Environments:   Returns an <a>EnvironmentDescription</a> list. <br/>        """
        pass

    def describe_events(self, ApplicationName: str=None, VersionLabel: str=None, TemplateName: str=None, EnvironmentId: str=None, EnvironmentName: str=None, PlatformArn: str=None, RequestId: str=None, Severity: str=None, StartTime: TimeFilterStart=None, EndTime: TimeFilterEnd=None, MaxRecords: int=None, NextToken: str=None) -> EventDescriptionsMessage:
        r"""Returns list of event descriptions matching criteria up to the last 6 weeks. <note> This action returns the most recent 1,000 events from the specified <code>NextToken</code>. </note>

        :param self:
        :param NextToken:  Pagination token. If specified, the events return the next batch of results.<br/>MaxRecords:  Specifies the maximum number of events that can be returned, beginning with the most recent event.<br/>EndTime:   If specified, AWS Elastic Beanstalk restricts the returned descriptions to those that occur up to, but not including, the <code>EndTime</code>. <br/>StartTime:  If specified, AWS Elastic Beanstalk restricts the returned descriptions to those that occur on or after this time.<br/>Severity:  If specified, limits the events returned from this call to include only those with the specified severity or higher.<br/>RequestId:  If specified, AWS Elastic Beanstalk restricts the described events to include only those associated with this request ID.<br/>PlatformArn:  The ARN of a custom platform version. If specified, AWS Elastic Beanstalk restricts the returned descriptions to those associated with this custom platform version.<br/>EnvironmentName:  If specified, AWS Elastic Beanstalk restricts the returned descriptions to those associated with this environment.<br/>EnvironmentId:  If specified, AWS Elastic Beanstalk restricts the returned descriptions to those associated with this environment.<br/>TemplateName:  If specified, AWS Elastic Beanstalk restricts the returned descriptions to those that are associated with this environment configuration.<br/>VersionLabel:  If specified, AWS Elastic Beanstalk restricts the returned descriptions to those associated with this application version.<br/>ApplicationName:  If specified, AWS Elastic Beanstalk restricts the returned descriptions to include only those associated with this application.<br/>
        :return: NextToken:   If returned, this indicates that there are more results to obtain. Use this token in the next <a>DescribeEvents</a> call to get the next batch of events. <br/>Events:   A list of <a>EventDescription</a>. <br/>        """
        pass

    def describe_instances_health(self, EnvironmentName: str=None, EnvironmentId: str=None, AttributeNames: List[InstancesHealthAttribute]=None, NextToken: str=None) -> DescribeInstancesHealthResult:
        r"""Retrieves detailed information about the health of instances in your AWS Elastic Beanstalk. This operation requires <a href="https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/health-enhanced.html">enhanced health reporting</a>.

        :param self:
        :param NextToken:  Specify the pagination token returned by a previous call.<br/>AttributeNames:  Specifies the response elements you wish to receive. To retrieve all attributes, set to <code>All</code>. If no attribute names are specified, returns a list of instances.<br/>EnvironmentId:  Specify the AWS Elastic Beanstalk environment by ID.<br/>EnvironmentName:  Specify the AWS Elastic Beanstalk environment by name.<br/>
        :return: NextToken:  Pagination token for the next page of results, if available.<br/>RefreshedAt:  The date and time that the health information was retrieved.<br/>InstanceHealthList:  Detailed health information about each instance. The output differs slightly between Linux and Windows environments. There is a difference in the members that are supported under the <code>&lt;CPUUtilization&gt;</code> type.<br/>        """
        pass

    def describe_platform_version(self, PlatformArn: str=None) -> DescribePlatformVersionResult:
        r"""Describes a platform version. Provides full details. Compare to <a>ListPlatformVersions</a>, which provides summary information about a list of platform versions. For definitions of platform version and other platform-related terms, see <a href="https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/platforms-glossary.html">AWS Elastic Beanstalk Platforms Glossary</a>.

        :param self:
        :param PlatformArn:  The ARN of the platform version.<br/>
        :return: PlatformDescription:  Detailed information about the platform version.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PlatformBranchLifecycleState</i> The state of the platform version's branch in its lifecycle. Possible values: <code>Beta</code> | <code>Supported</code> | <code>Deprecated</code> | <code>Retired</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PlatformBranchName</i> The platform branch to which the platform version belongs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PlatformLifecycleState</i> The state of the platform version in its lifecycle. Possible values: <code>Recommended</code> | <code>null</code>  If a null value is returned, the platform version isn't the recommended one for its branch. Each platform branch has a single recommended platform version, typically the most recent one.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SupportedAddonList</i> The additions supported by the platform version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SupportedTierList</i> The tiers supported by the platform version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomAmiList</i> The custom AMIs supported by the platform version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Frameworks</i> The frameworks supported by the platform version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProgrammingLanguages</i> The programming languages supported by the platform version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OperatingSystemVersion</i> The version of the operating system used by the platform version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OperatingSystemName</i> The operating system used by the platform version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Maintainer</i> Information about the maintainer of the platform version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the platform version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PlatformCategory</i> The category of the platform version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DateUpdated</i> The date when the platform version was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DateCreated</i> The date when the platform version was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PlatformStatus</i> The status of the platform version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SolutionStackName</i> The name of the solution stack used by the platform version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PlatformVersion</i> The version of the platform version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PlatformName</i> The name of the platform version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PlatformOwner</i> The AWS account ID of the person who created the platform version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PlatformArn</i> The ARN of the platform version.<br/>        """
        pass

    def disassociate_environment_operations_role(self, EnvironmentName: str):
        r"""Disassociate the operations role from an environment. After this call is made, Elastic Beanstalk uses the caller's permissions for permissions to downstream services during subsequent calls acting on this environment. For more information, see <a href="https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/iam-operationsrole.html">Operations roles</a> in the <i>AWS Elastic Beanstalk Developer Guide</i>.

        :param self:
        :param EnvironmentName:  The name of the environment from which to disassociate the operations role.<br/>
        :return:         """
        pass

    def list_available_solution_stacks(self) -> ListAvailableSolutionStacksResultMessage:
        r"""Returns a list of the available solution stack names, with the public version first and then in reverse chronological order.

        :param self:
        :param 
        :return: SolutionStackDetails:   A list of available solution stacks and their <a>SolutionStackDescription</a>. <br/>SolutionStacks:  A list of available solution stacks.<br/>        """
        pass

    def list_platform_branches(self, Filters: List[SearchFilter]=None, MaxRecords: int=None, NextToken: str=None) -> ListPlatformBranchesResult:
        r"""Lists the platform branches available for your account in an AWS Region. Provides summary information about each platform branch. For definitions of platform branch and other platform-related terms, see <a href="https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/platforms-glossary.html">AWS Elastic Beanstalk Platforms Glossary</a>.

        :param self:
        :param NextToken:  For a paginated request. Specify a token from a previous response page to retrieve the next response page. All other parameter values must be identical to the ones specified in the initial request. If no <code>NextToken</code> is specified, the first page is retrieved.<br/>MaxRecords:  The maximum number of platform branch values returned in one call.<br/>Filters:  Criteria for restricting the resulting list of platform branches. The filter is evaluated as a logical conjunction (AND) of the separate <code>SearchFilter</code> terms. The following list shows valid attribute values for each of the <code>SearchFilter</code> terms. Most operators take a single value. The <code>in</code> and <code>not_in</code> operators can take multiple values. <ul> <li>  <code>Attribute = BranchName</code>: <ul> <li>  <code>Operator</code>: <code>=</code> | <code>!=</code> | <code>begins_with</code> | <code>ends_with</code> | <code>contains</code> | <code>in</code> | <code>not_in</code>  </li> </ul> </li> <li>  <code>Attribute = LifecycleState</code>: <ul> <li>  <code>Operator</code>: <code>=</code> | <code>!=</code> | <code>in</code> | <code>not_in</code>  </li> <li>  <code>Values</code>: <code>beta</code> | <code>supported</code> | <code>deprecated</code> | <code>retired</code>  </li> </ul> </li> <li>  <code>Attribute = PlatformName</code>: <ul> <li>  <code>Operator</code>: <code>=</code> | <code>!=</code> | <code>begins_with</code> | <code>ends_with</code> | <code>contains</code> | <code>in</code> | <code>not_in</code>  </li> </ul> </li> <li>  <code>Attribute = TierType</code>: <ul> <li>  <code>Operator</code>: <code>=</code> | <code>!=</code>  </li> <li>  <code>Values</code>: <code>WebServer/Standard</code> | <code>Worker/SQS/HTTP</code>  </li> </ul> </li> </ul> Array size: limited to 10 <code>SearchFilter</code> objects. Within each <code>SearchFilter</code> item, the <code>Values</code> array is limited to 10 items.<br/>
        :return: NextToken:  In a paginated request, if this value isn't <code>null</code>, it's the token that you can pass in a subsequent request to get the next response page.<br/>PlatformBranchSummaryList:  Summary information about the platform branches.<br/>        """
        pass

    def list_platform_versions(self, Filters: List[PlatformFilter]=None, MaxRecords: int=None, NextToken: str=None) -> ListPlatformVersionsResult:
        r"""Lists the platform versions available for your account in an AWS Region. Provides summary information about each platform version. Compare to <a>DescribePlatformVersion</a>, which provides full details about a single platform version. For definitions of platform version and other platform-related terms, see <a href="https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/platforms-glossary.html">AWS Elastic Beanstalk Platforms Glossary</a>.

        :param self:
        :param NextToken:  For a paginated request. Specify a token from a previous response page to retrieve the next response page. All other parameter values must be identical to the ones specified in the initial request. If no <code>NextToken</code> is specified, the first page is retrieved.<br/>MaxRecords:  The maximum number of platform version values returned in one call.<br/>Filters:  Criteria for restricting the resulting list of platform versions. The filter is interpreted as a logical conjunction (AND) of the separate <code>PlatformFilter</code> terms.<br/>
        :return: NextToken:  In a paginated request, if this value isn't <code>null</code>, it's the token that you can pass in a subsequent request to get the next response page.<br/>PlatformSummaryList:  Summary information about the platform versions.<br/>        """
        pass

    def list_tags_for_resource(self, ResourceArn: str) -> ResourceTagsDescriptionMessage:
        r"""Return the tags applied to an AWS Elastic Beanstalk resource. The response contains a list of tag key-value pairs. Elastic Beanstalk supports tagging of all of its resources. For details about resource tagging, see <a href="https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/applications-tagging-resources.html">Tagging Application Resources</a>.

        :param self:
        :param ResourceArn:  The Amazon Resource Name (ARN) of the resouce for which a tag list is requested. Must be the ARN of an Elastic Beanstalk resource.<br/>
        :return: ResourceTags:  A list of tag key-value pairs.<br/>ResourceArn:  The Amazon Resource Name (ARN) of the resource for which a tag list was requested.<br/>        """
        pass

    def rebuild_environment(self, EnvironmentId: str=None, EnvironmentName: str=None):
        r"""Deletes and recreates all of the AWS resources (for example: the Auto Scaling group, load balancer, etc.) for a specified environment and forces a restart.

        :param self:
        :param EnvironmentName:  The name of the environment to rebuild.  Condition: You must specify either this or an EnvironmentId, or both. If you do not specify either, AWS Elastic Beanstalk returns <code>MissingRequiredParameter</code> error. <br/>EnvironmentId:  The ID of the environment to rebuild.  Condition: You must specify either this or an EnvironmentName, or both. If you do not specify either, AWS Elastic Beanstalk returns <code>MissingRequiredParameter</code> error. <br/>
        :return:         """
        pass

    def request_environment_info(self, InfoType: str, EnvironmentId: str=None, EnvironmentName: str=None):
        r"""Initiates a request to compile the specified type of information of the deployed environment.  Setting the <code>InfoType</code> to <code>tail</code> compiles the last lines from the application server log files of every Amazon EC2 instance in your environment.   Setting the <code>InfoType</code> to <code>bundle</code> compresses the application server log files for every Amazon EC2 instance into a <code>.zip</code> file. Legacy and .NET containers do not support bundle logs.   Use <a>RetrieveEnvironmentInfo</a> to obtain the set of logs.  Related Topics <ul> <li>  <a>RetrieveEnvironmentInfo</a>  </li> </ul>

        :param self:
        :param InfoType:  The type of information to request.<br/>EnvironmentName:  The name of the environment of the requested data. If no such environment is found, <code>RequestEnvironmentInfo</code> returns an <code>InvalidParameterValue</code> error.  Condition: You must specify either this or an EnvironmentId, or both. If you do not specify either, AWS Elastic Beanstalk returns <code>MissingRequiredParameter</code> error. <br/>EnvironmentId:  The ID of the environment of the requested data. If no such environment is found, <code>RequestEnvironmentInfo</code> returns an <code>InvalidParameterValue</code> error.  Condition: You must specify either this or an EnvironmentName, or both. If you do not specify either, AWS Elastic Beanstalk returns <code>MissingRequiredParameter</code> error. <br/>
        :return:         """
        pass

    def restart_app_server(self, EnvironmentId: str=None, EnvironmentName: str=None):
        r"""Causes the environment to restart the application container server running on each Amazon EC2 instance.

        :param self:
        :param EnvironmentName:  The name of the environment to restart the server for.  Condition: You must specify either this or an EnvironmentId, or both. If you do not specify either, AWS Elastic Beanstalk returns <code>MissingRequiredParameter</code> error. <br/>EnvironmentId:  The ID of the environment to restart the server for.  Condition: You must specify either this or an EnvironmentName, or both. If you do not specify either, AWS Elastic Beanstalk returns <code>MissingRequiredParameter</code> error. <br/>
        :return:         """
        pass

    def retrieve_environment_info(self, InfoType: str, EnvironmentId: str=None, EnvironmentName: str=None) -> RetrieveEnvironmentInfoResultMessage:
        r"""Retrieves the compiled information from a <a>RequestEnvironmentInfo</a> request. Related Topics <ul> <li>  <a>RequestEnvironmentInfo</a>  </li> </ul>

        :param self:
        :param InfoType:  The type of information to retrieve.<br/>EnvironmentName:  The name of the data's environment.  If no such environment is found, returns an <code>InvalidParameterValue</code> error.   Condition: You must specify either this or an EnvironmentId, or both. If you do not specify either, AWS Elastic Beanstalk returns <code>MissingRequiredParameter</code> error. <br/>EnvironmentId:  The ID of the data's environment. If no such environment is found, returns an <code>InvalidParameterValue</code> error. Condition: You must specify either this or an EnvironmentName, or both. If you do not specify either, AWS Elastic Beanstalk returns <code>MissingRequiredParameter</code> error.<br/>
        :return: EnvironmentInfo:   The <a>EnvironmentInfoDescription</a> of the environment. <br/>        """
        pass

    def swap_environment_cnames(self, SourceEnvironmentId: str=None, SourceEnvironmentName: str=None, DestinationEnvironmentId: str=None, DestinationEnvironmentName: str=None):
        r"""Swaps the CNAMEs of two environments.

        :param self:
        :param DestinationEnvironmentName:  The name of the destination environment.  Condition: You must specify at least the <code>DestinationEnvironmentID</code> or the <code>DestinationEnvironmentName</code>. You may also specify both. You must specify the <code>SourceEnvironmentName</code> with the <code>DestinationEnvironmentName</code>. <br/>DestinationEnvironmentId:  The ID of the destination environment.  Condition: You must specify at least the <code>DestinationEnvironmentID</code> or the <code>DestinationEnvironmentName</code>. You may also specify both. You must specify the <code>SourceEnvironmentId</code> with the <code>DestinationEnvironmentId</code>. <br/>SourceEnvironmentName:  The name of the source environment.  Condition: You must specify at least the <code>SourceEnvironmentID</code> or the <code>SourceEnvironmentName</code>. You may also specify both. If you specify the <code>SourceEnvironmentName</code>, you must specify the <code>DestinationEnvironmentName</code>. <br/>SourceEnvironmentId:  The ID of the source environment.  Condition: You must specify at least the <code>SourceEnvironmentID</code> or the <code>SourceEnvironmentName</code>. You may also specify both. If you specify the <code>SourceEnvironmentId</code>, you must specify the <code>DestinationEnvironmentId</code>. <br/>
        :return:         """
        pass

    def terminate_environment(self, EnvironmentId: str=None, EnvironmentName: str=None, TerminateResources: TerminateEnvironmentResources=None, ForceTerminate: ForceTerminate=None) -> EnvironmentDescription:
        r"""Terminates the specified environment.

        :param self:
        :param ForceTerminate:  Terminates the target environment even if another environment in the same group is dependent on it.<br/>TerminateResources:  Indicates whether the associated AWS resources should shut down when the environment is terminated: <ul> <li>  <code>true</code>: The specified environment as well as the associated AWS resources, such as Auto Scaling group and LoadBalancer, are terminated. </li> <li>  <code>false</code>: AWS Elastic Beanstalk resource management is removed from the environment, but the AWS resources continue to operate. </li> </ul>  For more information, see the <a href="https://docs.aws.amazon.com/elasticbeanstalk/latest/ug/"> AWS Elastic Beanstalk User Guide. </a>   Default: <code>true</code>   Valid Values: <code>true</code> | <code>false</code> <br/>EnvironmentName:  The name of the environment to terminate.  Condition: You must specify either this or an EnvironmentId, or both. If you do not specify either, AWS Elastic Beanstalk returns <code>MissingRequiredParameter</code> error. <br/>EnvironmentId:  The ID of the environment to terminate.  Condition: You must specify either this or an EnvironmentName, or both. If you do not specify either, AWS Elastic Beanstalk returns <code>MissingRequiredParameter</code> error. <br/>
        :return: OperationsRole:  The Amazon Resource Name (ARN) of the environment's operations role. For more information, see <a href="https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/iam-operationsrole.html">Operations roles</a> in the <i>AWS Elastic Beanstalk Developer Guide</i>.<br/>EnvironmentArn:  The environment's Amazon Resource Name (ARN), which can be used in other API requests that require an ARN.<br/>EnvironmentLinks:  A list of links to other environments in the same group.<br/>Tier:  Describes the current tier of this environment.:<br/>Resources:  The description of the AWS resources used by this environment.:<br/>HealthStatus:  Returns the health status of the application running in your environment. For more information, see <a href="https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/health-enhanced-status.html">Health Colors and Statuses</a>.<br/>Health:  Describes the health status of the environment. AWS Elastic Beanstalk indicates the failure levels for a running environment: <ul> <li>  <code>Red</code>: Indicates the environment is not responsive. Occurs when three or more consecutive failures occur for an environment. </li> <li>  <code>Yellow</code>: Indicates that something is wrong. Occurs when two consecutive failures occur for an environment. </li> <li>  <code>Green</code>: Indicates the environment is healthy and fully functional. </li> <li>  <code>Grey</code>: Default health for a new environment. The environment is not fully launched and health checks have not started or health checks are suspended during an <code>UpdateEnvironment</code> or <code>RestartEnvironment</code> request. </li> </ul>  Default: <code>Grey</code> <br/>AbortableOperationInProgress:  Indicates if there is an in-progress environment configuration update or application version deployment that you can cancel.  <code>true:</code> There is an update in progress.   <code>false:</code> There are no updates currently in progress. <br/>Status:  The current operational status of the environment: <ul> <li>  <code>Launching</code>: Environment is in the process of initial deployment. </li> <li>  <code>Updating</code>: Environment is in the process of updating its configuration settings or application version. </li> <li>  <code>Ready</code>: Environment is available to have an action performed on it, such as update or terminate. </li> <li>  <code>Terminating</code>: Environment is in the shut-down process. </li> <li>  <code>Terminated</code>: Environment is not running. </li> </ul><br/>DateUpdated:  The last modified date for this environment.<br/>DateCreated:  The creation date for this environment.<br/>CNAME:  The URL to the CNAME for this environment.<br/>EndpointURL:  For load-balanced, autoscaling environments, the URL to the LoadBalancer. For single-instance environments, the IP address of the instance.<br/>Description:  Describes this environment.<br/>TemplateName:  The name of the configuration template used to originally launch this environment.<br/>PlatformArn:  The ARN of the platform version.<br/>SolutionStackName:   The name of the <code>SolutionStack</code> deployed with this environment. <br/>VersionLabel:  The application version deployed in this environment.<br/>ApplicationName:  The name of the application associated with this environment.<br/>EnvironmentId:  The ID of this environment.<br/>EnvironmentName:  The name of this environment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LoadBalancer</i> Describes the LoadBalancer.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>LoadBalancer</b>: Describes the LoadBalancer.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Listeners</i> A list of Listeners used by the LoadBalancer.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Domain</i> The domain name of the LoadBalancer.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LoadBalancerName</i> The name of the LoadBalancer.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The version of this environment tier. When you don't set a value to it, Elastic Beanstalk uses the latest compatible worker tier version. <note> This member is deprecated. Any specific version that you set may become out of date. We recommend leaving it unspecified. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of this environment tier. Valid values: <ul> <li> For <i>Web server tier</i> – <code>Standard</code>  </li> <li> For <i>Worker tier</i> – <code>SQS/HTTP</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of this environment tier. Valid values: <ul> <li> For <i>Web server tier</i> – <code>WebServer</code>  </li> <li> For <i>Worker tier</i> – <code>Worker</code>  </li> </ul><br/>        """
        pass

    def update_application(self, ApplicationName: str, Description: str=None) -> ApplicationDescriptionMessage:
        r"""Updates the specified application to have the specified properties. <note> If a property (for example, <code>description</code>) is not provided, the value remains unchanged. To clear these properties, specify an empty string. </note>

        :param self:
        :param Description:  A new description for the application. Default: If not specified, AWS Elastic Beanstalk does not update the description.<br/>ApplicationName:  The name of the application to update. If no such application is found, <code>UpdateApplication</code> returns an <code>InvalidParameterValue</code> error. <br/>
        :return: Application:   The <a>ApplicationDescription</a> of the application. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceLifecycleConfig</i> The lifecycle settings for the application.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ResourceLifecycleConfig</b>: The lifecycle settings for the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConfigurationTemplates</i> The names of the configuration templates associated with this application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Versions</i> The names of the versions for this application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DateUpdated</i> The date when the application was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DateCreated</i> The date when the application was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> User-defined description of the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationName</i> The name of the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationArn</i> The Amazon Resource Name (ARN) of the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceRole</i> The ARN of an IAM service role that Elastic Beanstalk has permission to assume. The <code>ServiceRole</code> property is required the first time that you provide a <code>VersionLifecycleConfig</code> for the application in one of the supporting calls (<code>CreateApplication</code> or <code>UpdateApplicationResourceLifecycle</code>). After you provide it once, in either one of the calls, Elastic Beanstalk persists the Service Role with the application, and you don't need to specify it again in subsequent <code>UpdateApplicationResourceLifecycle</code> calls. You can, however, specify it in subsequent calls to change the Service Role to another value.<br/>Defines lifecycle settings for application versions.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>VersionLifecycleConfig</b>: Defines lifecycle settings for application versions.        """
        pass

    def update_application_resource_lifecycle(self, ResourceLifecycleConfig: ApplicationResourceLifecycleConfig, ApplicationName: str) -> ApplicationResourceLifecycleDescriptionMessage:
        r"""Modifies lifecycle settings for an application.

        :param self:
        :param ResourceLifecycleConfig:  The lifecycle configuration.:<br/>ApplicationName:  The name of the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VersionLifecycleConfig</i> Defines lifecycle settings for application versions.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>VersionLifecycleConfig</b>: Defines lifecycle settings for application versions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceRole</i> The ARN of an IAM service role that Elastic Beanstalk has permission to assume. The <code>ServiceRole</code> property is required the first time that you provide a <code>VersionLifecycleConfig</code> for the application in one of the supporting calls (<code>CreateApplication</code> or <code>UpdateApplicationResourceLifecycle</code>). After you provide it once, in either one of the calls, Elastic Beanstalk persists the Service Role with the application, and you don't need to specify it again in subsequent <code>UpdateApplicationResourceLifecycle</code> calls. You can, however, specify it in subsequent calls to change the Service Role to another value.<br/>Specify a max count rule to restrict the number of application versions that are retained for an application.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>MaxCountRule</b>: Specify a max count rule to restrict the number of application versions that are retained for an application.
        :return: ResourceLifecycleConfig:  The lifecycle configuration.:<br/>ApplicationName:  The name of the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VersionLifecycleConfig</i> Defines lifecycle settings for application versions.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>VersionLifecycleConfig</b>: Defines lifecycle settings for application versions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceRole</i> The ARN of an IAM service role that Elastic Beanstalk has permission to assume. The <code>ServiceRole</code> property is required the first time that you provide a <code>VersionLifecycleConfig</code> for the application in one of the supporting calls (<code>CreateApplication</code> or <code>UpdateApplicationResourceLifecycle</code>). After you provide it once, in either one of the calls, Elastic Beanstalk persists the Service Role with the application, and you don't need to specify it again in subsequent <code>UpdateApplicationResourceLifecycle</code> calls. You can, however, specify it in subsequent calls to change the Service Role to another value.<br/>Specify a max count rule to restrict the number of application versions that are retained for an application.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>MaxCountRule</b>: Specify a max count rule to restrict the number of application versions that are retained for an application.        """
        pass

    def update_application_version(self, VersionLabel: str, ApplicationName: str, Description: str=None) -> ApplicationVersionDescriptionMessage:
        r"""Updates the specified application version to have the specified properties. <note> If a property (for example, <code>description</code>) is not provided, the value remains unchanged. To clear properties, specify an empty string. </note>

        :param self:
        :param Description:  A new description for this version.<br/>VersionLabel:  The name of the version to update. If no application version is found with this label, <code>UpdateApplication</code> returns an <code>InvalidParameterValue</code> error. <br/>ApplicationName:  The name of the application associated with this version.  If no application is found with this name, <code>UpdateApplication</code> returns an <code>InvalidParameterValue</code> error.<br/>
        :return: ApplicationVersion:   The <a>ApplicationVersionDescription</a> of the application version. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The processing status of the application version. Reflects the state of the application version during its creation. Many of the values are only applicable if you specified <code>True</code> for the <code>Process</code> parameter of the <code>CreateApplicationVersion</code> action. The following list describes the possible values. <ul> <li>  <code>Unprocessed</code> – Application version wasn't pre-processed or validated. Elastic Beanstalk will validate configuration files during deployment of the application version to an environment. </li> <li>  <code>Processing</code> – Elastic Beanstalk is currently processing the application version. </li> <li>  <code>Building</code> – Application version is currently undergoing an AWS CodeBuild build. </li> <li>  <code>Processed</code> – Elastic Beanstalk was successfully pre-processed and validated. </li> <li>  <code>Failed</code> – Either the AWS CodeBuild build failed or configuration files didn't pass validation. This application version isn't usable. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DateUpdated</i> The last modified date of the application version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DateCreated</i> The creation date of the application version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceBundle</i> The storage location of the application version's source bundle in Amazon S3.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SourceBundle</b>: The storage location of the application version's source bundle in Amazon S3.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BuildArn</i> Reference to the artifact from the AWS CodeBuild build.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceBuildInformation</i> If the version's source code was retrieved from AWS CodeCommit, the location of the source code for the application version.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SourceBuildInformation</b>: If the version's source code was retrieved from AWS CodeCommit, the location of the source code for the application version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VersionLabel</i> A unique identifier for the application version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the application version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationName</i> The name of the application to which the application version belongs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationVersionArn</i> The Amazon Resource Name (ARN) of the application version.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceLocation</i> The location of the source code, as a formatted string, depending on the value of <code>SourceRepository</code>  <ul> <li> For <code>CodeCommit</code>, the format is the repository name and commit ID, separated by a forward slash. For example, <code>my-git-repo/265cfa0cf6af46153527f55d6503ec030551f57a</code>. </li> <li> For <code>S3</code>, the format is the S3 bucket name and object key, separated by a forward slash. For example, <code>my-s3-bucket/Folders/my-source-file</code>. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceRepository</i> Location where the repository is stored. <ul> <li>  <code>CodeCommit</code>  </li> <li>  <code>S3</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceType</i> The type of repository. <ul> <li>  <code>Git</code>  </li> <li>  <code>Zip</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Key</i> The Amazon S3 key where the data is located.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Bucket</i> The Amazon S3 bucket where the data is located.<br/>        """
        pass

    def update_configuration_template(self, TemplateName: str, ApplicationName: str, Description: str=None, OptionSettings: List[ConfigurationOptionSetting]=None, OptionsToRemove: List[OptionSpecification]=None) -> ConfigurationSettingsDescription:
        r"""Updates the specified configuration template to have the specified properties or configuration option values. <note> If a property (for example, <code>ApplicationName</code>) is not provided, its value remains unchanged. To clear such properties, specify an empty string. </note> Related Topics <ul> <li>  <a>DescribeConfigurationOptions</a>  </li> </ul>

        :param self:
        :param OptionsToRemove:  A list of configuration options to remove from the configuration set.  Constraint: You can remove only <code>UserDefined</code> configuration options. <br/>OptionSettings:  A list of configuration option settings to update with the new specified option value.<br/>Description:  A new description for the configuration.<br/>TemplateName:  The name of the configuration template to update.  If no configuration template is found with this name, <code>UpdateConfigurationTemplate</code> returns an <code>InvalidParameterValue</code> error. <br/>ApplicationName:  The name of the application associated with the configuration template to update.  If no application is found with this name, <code>UpdateConfigurationTemplate</code> returns an <code>InvalidParameterValue</code> error. <br/>
        :return: OptionSettings:  A list of the configuration options and their values in this configuration set.<br/>DateUpdated:  The date (in UTC time) when this configuration set was last modified.<br/>DateCreated:  The date (in UTC time) when this configuration set was created.<br/>DeploymentStatus:   If this configuration set is associated with an environment, the <code>DeploymentStatus</code> parameter indicates the deployment status of this configuration set:  <ul> <li>  <code>null</code>: This configuration is not associated with a running environment. </li> <li>  <code>pending</code>: This is a draft configuration that is not deployed to the associated environment but is in the process of deploying. </li> <li>  <code>deployed</code>: This is the configuration that is currently deployed to the associated running environment. </li> <li>  <code>failed</code>: This is a draft configuration that failed to successfully deploy. </li> </ul><br/>EnvironmentName:   If not <code>null</code>, the name of the environment for this configuration set. <br/>Description:  Describes this configuration set.<br/>TemplateName:   If not <code>null</code>, the name of the configuration template for this configuration set. <br/>ApplicationName:  The name of the application associated with this configuration set.<br/>PlatformArn:  The ARN of the platform version.<br/>SolutionStackName:  The name of the solution stack this configuration set uses.<br/>        """
        pass

    def update_environment(self, ApplicationName: str=None, EnvironmentId: str=None, EnvironmentName: str=None, GroupName: str=None, Description: str=None, Tier: EnvironmentTier=None, VersionLabel: str=None, TemplateName: str=None, SolutionStackName: str=None, PlatformArn: str=None, OptionSettings: List[ConfigurationOptionSetting]=None, OptionsToRemove: List[OptionSpecification]=None) -> EnvironmentDescription:
        r"""Updates the environment description, deploys a new application version, updates the configuration settings to an entirely new configuration template, or updates select configuration option values in the running environment.  Attempting to update both the release and configuration is not allowed and AWS Elastic Beanstalk returns an <code>InvalidParameterCombination</code> error.   When updating the configuration settings to a new template or individual settings, a draft configuration is created and <a>DescribeConfigurationSettings</a> for this environment returns two setting descriptions with different <code>DeploymentStatus</code> values. 

        :param self:
        :param OptionsToRemove:  A list of custom user-defined configuration options to remove from the configuration set for this environment.<br/>OptionSettings:  If specified, AWS Elastic Beanstalk updates the configuration set associated with the running environment and sets the specified configuration options to the requested value.<br/>PlatformArn:  The ARN of the platform, if used.<br/>SolutionStackName:  This specifies the platform version that the environment will run after the environment is updated.<br/>TemplateName:  If this parameter is specified, AWS Elastic Beanstalk deploys this configuration template to the environment. If no such configuration template is found, AWS Elastic Beanstalk returns an <code>InvalidParameterValue</code> error. <br/>VersionLabel:  If this parameter is specified, AWS Elastic Beanstalk deploys the named application version to the environment. If no such application version is found, returns an <code>InvalidParameterValue</code> error. <br/>Tier:  This specifies the tier to use to update the environment. Condition: At this time, if you change the tier version, name, or type, AWS Elastic Beanstalk returns <code>InvalidParameterValue</code> error. :<br/>Description:  If this parameter is specified, AWS Elastic Beanstalk updates the description of this environment.<br/>GroupName:  The name of the group to which the target environment belongs. Specify a group name only if the environment's name is specified in an environment manifest and not with the environment name or environment ID parameters. See <a href="https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/environment-cfg-manifest.html">Environment Manifest (env.yaml)</a> for details.<br/>EnvironmentName:  The name of the environment to update. If no environment with this name exists, AWS Elastic Beanstalk returns an <code>InvalidParameterValue</code> error.  Condition: You must specify either this or an EnvironmentId, or both. If you do not specify either, AWS Elastic Beanstalk returns <code>MissingRequiredParameter</code> error. <br/>EnvironmentId:  The ID of the environment to update. If no environment with this ID exists, AWS Elastic Beanstalk returns an <code>InvalidParameterValue</code> error. Condition: You must specify either this or an EnvironmentName, or both. If you do not specify either, AWS Elastic Beanstalk returns <code>MissingRequiredParameter</code> error. <br/>ApplicationName:  The name of the application with which the environment is associated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The version of this environment tier. When you don't set a value to it, Elastic Beanstalk uses the latest compatible worker tier version. <note> This member is deprecated. Any specific version that you set may become out of date. We recommend leaving it unspecified. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of this environment tier. Valid values: <ul> <li> For <i>Web server tier</i> – <code>Standard</code>  </li> <li> For <i>Worker tier</i> – <code>SQS/HTTP</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of this environment tier. Valid values: <ul> <li> For <i>Web server tier</i> – <code>WebServer</code>  </li> <li> For <i>Worker tier</i> – <code>Worker</code>  </li> </ul><br/>
        :return: OperationsRole:  The Amazon Resource Name (ARN) of the environment's operations role. For more information, see <a href="https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/iam-operationsrole.html">Operations roles</a> in the <i>AWS Elastic Beanstalk Developer Guide</i>.<br/>EnvironmentArn:  The environment's Amazon Resource Name (ARN), which can be used in other API requests that require an ARN.<br/>EnvironmentLinks:  A list of links to other environments in the same group.<br/>Tier:  Describes the current tier of this environment.:<br/>Resources:  The description of the AWS resources used by this environment.:<br/>HealthStatus:  Returns the health status of the application running in your environment. For more information, see <a href="https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/health-enhanced-status.html">Health Colors and Statuses</a>.<br/>Health:  Describes the health status of the environment. AWS Elastic Beanstalk indicates the failure levels for a running environment: <ul> <li>  <code>Red</code>: Indicates the environment is not responsive. Occurs when three or more consecutive failures occur for an environment. </li> <li>  <code>Yellow</code>: Indicates that something is wrong. Occurs when two consecutive failures occur for an environment. </li> <li>  <code>Green</code>: Indicates the environment is healthy and fully functional. </li> <li>  <code>Grey</code>: Default health for a new environment. The environment is not fully launched and health checks have not started or health checks are suspended during an <code>UpdateEnvironment</code> or <code>RestartEnvironment</code> request. </li> </ul>  Default: <code>Grey</code> <br/>AbortableOperationInProgress:  Indicates if there is an in-progress environment configuration update or application version deployment that you can cancel.  <code>true:</code> There is an update in progress.   <code>false:</code> There are no updates currently in progress. <br/>Status:  The current operational status of the environment: <ul> <li>  <code>Launching</code>: Environment is in the process of initial deployment. </li> <li>  <code>Updating</code>: Environment is in the process of updating its configuration settings or application version. </li> <li>  <code>Ready</code>: Environment is available to have an action performed on it, such as update or terminate. </li> <li>  <code>Terminating</code>: Environment is in the shut-down process. </li> <li>  <code>Terminated</code>: Environment is not running. </li> </ul><br/>DateUpdated:  The last modified date for this environment.<br/>DateCreated:  The creation date for this environment.<br/>CNAME:  The URL to the CNAME for this environment.<br/>EndpointURL:  For load-balanced, autoscaling environments, the URL to the LoadBalancer. For single-instance environments, the IP address of the instance.<br/>Description:  Describes this environment.<br/>TemplateName:  The name of the configuration template used to originally launch this environment.<br/>PlatformArn:  The ARN of the platform version.<br/>SolutionStackName:   The name of the <code>SolutionStack</code> deployed with this environment. <br/>VersionLabel:  The application version deployed in this environment.<br/>ApplicationName:  The name of the application associated with this environment.<br/>EnvironmentId:  The ID of this environment.<br/>EnvironmentName:  The name of this environment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LoadBalancer</i> Describes the LoadBalancer.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>LoadBalancer</b>: Describes the LoadBalancer.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Listeners</i> A list of Listeners used by the LoadBalancer.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Domain</i> The domain name of the LoadBalancer.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LoadBalancerName</i> The name of the LoadBalancer.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The version of this environment tier. When you don't set a value to it, Elastic Beanstalk uses the latest compatible worker tier version. <note> This member is deprecated. Any specific version that you set may become out of date. We recommend leaving it unspecified. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of this environment tier. Valid values: <ul> <li> For <i>Web server tier</i> – <code>Standard</code>  </li> <li> For <i>Worker tier</i> – <code>SQS/HTTP</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of this environment tier. Valid values: <ul> <li> For <i>Web server tier</i> – <code>WebServer</code>  </li> <li> For <i>Worker tier</i> – <code>Worker</code>  </li> </ul><br/>        """
        pass

    def update_tags_for_resource(self, ResourceArn: str, TagsToAdd: List[Tag]=None, TagsToRemove: List[TagKey]=None):
        r"""Update the list of tags applied to an AWS Elastic Beanstalk resource. Two lists can be passed: <code>TagsToAdd</code> for tags to add or update, and <code>TagsToRemove</code>. Elastic Beanstalk supports tagging of all of its resources. For details about resource tagging, see <a href="https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/applications-tagging-resources.html">Tagging Application Resources</a>. If you create a custom IAM user policy to control permission to this operation, specify one of the following two virtual actions (or both) instead of the API operation name: <dl> <dt>elasticbeanstalk:AddTags</dt> <dd> Controls permission to call <code>UpdateTagsForResource</code> and pass a list of tags to add in the <code>TagsToAdd</code> parameter. </dd> <dt>elasticbeanstalk:RemoveTags</dt> <dd> Controls permission to call <code>UpdateTagsForResource</code> and pass a list of tag keys to remove in the <code>TagsToRemove</code> parameter. </dd> </dl> For details about creating a custom user policy, see <a href="https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/AWSHowTo.iam.managed-policies.html#AWSHowTo.iam.policies">Creating a Custom User Policy</a>.

        :param self:
        :param TagsToRemove:  A list of tag keys to remove. If a tag key doesn't exist, it is silently ignored. Specify at least one of these parameters: <code>TagsToAdd</code>, <code>TagsToRemove</code>.<br/>TagsToAdd:  A list of tags to add or update. If a key of an existing tag is added, the tag's value is updated. Specify at least one of these parameters: <code>TagsToAdd</code>, <code>TagsToRemove</code>.<br/>ResourceArn:  The Amazon Resource Name (ARN) of the resouce to be updated. Must be the ARN of an Elastic Beanstalk resource.<br/>
        :return:         """
        pass

    def validate_configuration_settings(self, OptionSettings: List[ConfigurationOptionSetting], ApplicationName: str, TemplateName: str=None, EnvironmentName: str=None) -> ConfigurationSettingsValidationMessages:
        r"""Takes a set of configuration settings and either a configuration template or environment, and determines whether those values are valid. This action returns a list of messages indicating any errors or warnings associated with the selection of option values.

        :param self:
        :param OptionSettings:  A list of the options and desired values to evaluate.<br/>EnvironmentName:  The name of the environment to validate the settings against. Condition: You cannot specify both this and a configuration template name.<br/>TemplateName:  The name of the configuration template to validate the settings against. Condition: You cannot specify both this and an environment name.<br/>ApplicationName:  The name of the application that the configuration template or environment belongs to.<br/>
        :return: Messages:   A list of <a>ValidationMessage</a>. <br/>        """
        pass





class ElasticTranscoder(BaseClient):
    r"""<fullname>AWS Elastic Transcoder Service</fullname> The AWS Elastic Transcoder Service."""

    class JobCompleteWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `read_job` for valid parameters"""
            pass


    class ListJobsByPipelinePaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_jobs_by_pipeline` for valid parameters"""
            pass
    class ListJobsByStatusPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_jobs_by_status` for valid parameters"""
            pass
    class ListPipelinesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_pipelines` for valid parameters"""
            pass
    class ListPresetsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_presets` for valid parameters"""
            pass


    class CancelJobRequest(Mapping):
        pass
    
    class CancelJobResponse(Mapping):
        pass
    
    class CreateJobRequest(Mapping):
        pass
    
    class CreateJobResponse(Mapping):
        pass
    
    class JobInput(Mapping):
        pass
    
    class CreateJobOutput(Mapping):
        pass
    
    class CreateJobPlaylist(Mapping):
        pass
    
    class UserMetadata(object):
        pass
    
    class CreatePipelineRequest(Mapping):
        pass
    
    class CreatePipelineResponse(Mapping):
        pass
    
    class Notifications(Mapping):
        pass
    
    class PipelineOutputConfig(Mapping):
        pass
    
    class CreatePresetRequest(Mapping):
        pass
    
    class CreatePresetResponse(Mapping):
        pass
    
    class VideoParameters(Mapping):
        pass
    
    class AudioParameters(Mapping):
        pass
    
    class Thumbnails(Mapping):
        pass
    
    class DeletePipelineRequest(Mapping):
        pass
    
    class DeletePipelineResponse(Mapping):
        pass
    
    class DeletePresetRequest(Mapping):
        pass
    
    class DeletePresetResponse(Mapping):
        pass
    
    class ListJobsByPipelineRequest(Mapping):
        pass
    
    class ListJobsByPipelineResponse(Mapping):
        pass
    
    class ListJobsByStatusRequest(Mapping):
        pass
    
    class ListJobsByStatusResponse(Mapping):
        pass
    
    class ListPipelinesRequest(Mapping):
        pass
    
    class ListPipelinesResponse(Mapping):
        pass
    
    class ListPresetsRequest(Mapping):
        pass
    
    class ListPresetsResponse(Mapping):
        pass
    
    class ReadJobRequest(Mapping):
        pass
    
    class ReadJobResponse(Mapping):
        pass
    
    class ReadPipelineRequest(Mapping):
        pass
    
    class ReadPipelineResponse(Mapping):
        pass
    
    class ReadPresetRequest(Mapping):
        pass
    
    class ReadPresetResponse(Mapping):
        pass
    
    class TestRoleRequest(Mapping):
        pass
    
    class TestRoleResponse(Mapping):
        pass
    
    class SnsTopic(object):
        pass
    
    class UpdatePipelineRequest(Mapping):
        pass
    
    class UpdatePipelineResponse(Mapping):
        pass
    
    class UpdatePipelineNotificationsRequest(Mapping):
        pass
    
    class UpdatePipelineNotificationsResponse(Mapping):
        pass
    
    class UpdatePipelineStatusRequest(Mapping):
        pass
    
    class UpdatePipelineStatusResponse(Mapping):
        pass
    
    def cancel_job(self, Id: str) -> CancelJobResponse:
        r"""The CancelJob operation cancels an unfinished job. <note> You can only cancel a job that has a status of <code>Submitted</code>. To prevent a pipeline from starting to process a job while you're getting the job identifier, use <a>UpdatePipelineStatus</a> to temporarily pause the pipeline. </note>

        :param self:
        :param Id:  The identifier of the job that you want to cancel. To get a list of the jobs (including their <code>jobId</code>) that have a status of <code>Submitted</code>, use the <a>ListJobsByStatus</a> API action.<br/>
        :return:         """
        pass

    def create_job(self, PipelineId: str, Input: JobInput=None, Inputs: List[JobInput]=None, Output: CreateJobOutput=None, Outputs: List[CreateJobOutput]=None, OutputKeyPrefix: str=None, Playlists: List[CreateJobPlaylist]=None, UserMetadata: UserMetadata=None) -> CreateJobResponse:
        r"""When you create a job, Elastic Transcoder returns JSON data that includes the values that you specified plus information about the job that is created. If you have specified more than one output for your jobs (for example, one output for the Kindle Fire and another output for the Apple iPhone 4s), you currently must use the Elastic Transcoder API to list the jobs (as opposed to the AWS Console).

        :param self:
        :param UserMetadata:  User-defined metadata that you want to associate with an Elastic Transcoder job. You specify metadata in <code>key/value</code> pairs, and you can add up to 10 <code>key/value</code> pairs per job. Elastic Transcoder does not guarantee that <code>key/value</code> pairs are returned in the same order in which you specify them.<br/>Playlists:  If you specify a preset in <code>PresetId</code> for which the value of <code>Container</code> is fmp4 (Fragmented MP4) or ts (MPEG-TS), Playlists contains information about the master playlists that you want Elastic Transcoder to create. The maximum number of master playlists in a job is 30.<br/>OutputKeyPrefix:  The value, if any, that you want Elastic Transcoder to prepend to the names of all files that this job creates, including output files, thumbnails, and playlists.<br/>Outputs:   A section of the request body that provides information about the transcoded (target) files. We recommend that you use the <code>Outputs</code> syntax instead of the <code>Output</code> syntax. <br/>Output:   A section of the request body that provides information about the transcoded (target) file. We strongly recommend that you use the <code>Outputs</code> syntax instead of the <code>Output</code> syntax. :<br/>Inputs:  A section of the request body that provides information about the files that are being transcoded.<br/>Input:  A section of the request body that provides information about the file that is being transcoded.:<br/>PipelineId:  The <code>Id</code> of the pipeline that you want Elastic Transcoder to use for transcoding. The pipeline determines several settings, including the Amazon S3 bucket from which Elastic Transcoder gets the files to transcode and the bucket into which Elastic Transcoder puts the transcoded files.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DetectedProperties</i> The detected properties of the input file.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DetectedProperties</b>: The detected properties of the input file.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InputCaptions</i> You can configure Elastic Transcoder to transcode captions, or subtitles, from one format to another. All captions must be in UTF-8. Elastic Transcoder supports two types of captions: <ul> <li>  <b>Embedded:</b> Embedded captions are included in the same file as the audio and video. Elastic Transcoder supports only one embedded caption per language, to a maximum of 300 embedded captions per file. Valid input values include: <code>CEA-608 (EIA-608</code>, first non-empty channel only), <code>CEA-708 (EIA-708</code>, first non-empty channel only), and <code>mov-text</code>  Valid outputs include: <code>mov-text</code>  Elastic Transcoder supports a maximum of one embedded format per output. </li> <li>  <b>Sidecar:</b> Sidecar captions are kept in a separate metadata file from the audio and video data. Sidecar captions require a player that is capable of understanding the relationship between the video file and the sidecar file. Elastic Transcoder supports only one sidecar caption per language, to a maximum of 20 sidecar captions per file. Valid input values include: <code>dfxp</code> (first div element only), <code>ebu-tt</code>, <code>scc</code>, <code>smpt</code>, <code>srt</code>, <code>ttml</code> (first div element only), and <code>webvtt</code>  Valid outputs include: <code>dfxp</code> (first div element only), <code>scc</code>, <code>srt</code>, and <code>webvtt</code>. </li> </ul> If you want ttml or smpte-tt compatible captions, specify dfxp as your output format. Elastic Transcoder does not support OCR (Optical Character Recognition), does not accept pictures as a valid input for captions, and is not available for audio-only transcoding. Elastic Transcoder does not preserve text formatting (for example, italics) during the transcoding process. To remove captions or leave the captions empty, set <code>Captions</code> to null. To pass through existing captions unchanged, set the <code>MergePolicy</code> to <code>MergeRetain</code>, and pass in a null <code>CaptionSources</code> array. For more information on embedded files, see the Subtitles Wikipedia page. For more information on sidecar files, see the Extensible Metadata Platform and Sidecar file Wikipedia pages.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>InputCaptions</b>: You can configure Elastic Transcoder to transcode captions, or subtitles, from one format to another. All captions must be in UTF-8. Elastic Transcoder supports two types of captions: <ul> <li>  <b>Embedded:</b> Embedded captions are included in the same file as the audio and video. Elastic Transcoder supports only one embedded caption per language, to a maximum of 300 embedded captions per file. Valid input values include: <code>CEA-608 (EIA-608</code>, first non-empty channel only), <code>CEA-708 (EIA-708</code>, first non-empty channel only), and <code>mov-text</code>  Valid outputs include: <code>mov-text</code>  Elastic Transcoder supports a maximum of one embedded format per output. </li> <li>  <b>Sidecar:</b> Sidecar captions are kept in a separate metadata file from the audio and video data. Sidecar captions require a player that is capable of understanding the relationship between the video file and the sidecar file. Elastic Transcoder supports only one sidecar caption per language, to a maximum of 20 sidecar captions per file. Valid input values include: <code>dfxp</code> (first div element only), <code>ebu-tt</code>, <code>scc</code>, <code>smpt</code>, <code>srt</code>, <code>ttml</code> (first div element only), and <code>webvtt</code>  Valid outputs include: <code>dfxp</code> (first div element only), <code>scc</code>, <code>srt</code>, and <code>webvtt</code>. </li> </ul> If you want ttml or smpte-tt compatible captions, specify dfxp as your output format. Elastic Transcoder does not support OCR (Optical Character Recognition), does not accept pictures as a valid input for captions, and is not available for audio-only transcoding. Elastic Transcoder does not preserve text formatting (for example, italics) during the transcoding process. To remove captions or leave the captions empty, set <code>Captions</code> to null. To pass through existing captions unchanged, set the <code>MergePolicy</code> to <code>MergeRetain</code>, and pass in a null <code>CaptionSources</code> array. For more information on embedded files, see the Subtitles Wikipedia page. For more information on sidecar files, see the Extensible Metadata Platform and Sidecar file Wikipedia pages.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TimeSpan</i> Settings for clipping an input. Each input can have different clip settings.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TimeSpan</b>: Settings for clipping an input. Each input can have different clip settings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Encryption</i> The encryption settings, if any, that are used for decrypting your input files. If your input file is encrypted, you must specify the mode that Elastic Transcoder uses to decrypt your file.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Encryption</b>: The encryption settings, if any, that are used for decrypting your input files. If your input file is encrypted, you must specify the mode that Elastic Transcoder uses to decrypt your file.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Container</i> The container type for the input file. If you want Elastic Transcoder to automatically detect the container type of the input file, specify <code>auto</code>. If you want to specify the container type for the input file, enter one of the following values:   <code>3gp</code>, <code>aac</code>, <code>asf</code>, <code>avi</code>, <code>divx</code>, <code>flv</code>, <code>m4a</code>, <code>mkv</code>, <code>mov</code>, <code>mp3</code>, <code>mp4</code>, <code>mpeg</code>, <code>mpeg-ps</code>, <code>mpeg-ts</code>, <code>mxf</code>, <code>ogg</code>, <code>vob</code>, <code>wav</code>, <code>webm</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Interlaced</i> Whether the input file is interlaced. If you want Elastic Transcoder to automatically detect whether the input file is interlaced, specify <code>auto</code>. If you want to specify whether the input file is interlaced, enter one of the following values:  <code>true</code>, <code>false</code>  If you specify a value other than <code>auto</code>, Elastic Transcoder disables automatic detection of interlacing.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AspectRatio</i>  The aspect ratio of the input file. If you want Elastic Transcoder to automatically detect the aspect ratio of the input file, specify <code>auto</code>. If you want to specify the aspect ratio for the output file, enter one of the following values:   <code>1:1</code>, <code>4:3</code>, <code>3:2</code>, <code>16:9</code>   If you specify a value other than <code>auto</code>, Elastic Transcoder disables automatic detection of the aspect ratio. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Resolution</i> This value must be <code>auto</code>, which causes Elastic Transcoder to automatically detect the resolution of the input file.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FrameRate</i> The frame rate of the input file. If you want Elastic Transcoder to automatically detect the frame rate of the input file, specify <code>auto</code>. If you want to specify the frame rate for the input file, enter one of the following values:   <code>10</code>, <code>15</code>, <code>23.97</code>, <code>24</code>, <code>25</code>, <code>29.97</code>, <code>30</code>, <code>60</code>  If you specify a value other than <code>auto</code>, Elastic Transcoder disables automatic detection of the frame rate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i>  The name of the file to transcode. Elsewhere in the body of the JSON block is the the ID of the pipeline to use for processing the job. The <code>InputBucket</code> object in that pipeline tells Elastic Transcoder which Amazon S3 bucket to get the file from.  If the file name includes a prefix, such as <code>cooking/lasagna.mpg</code>, include the prefix in the key. If the file isn't in the specified bucket, Elastic Transcoder returns an error.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InitializationVector</i> The series of random bits created by a random bit generator, unique for every encryption operation, that you used to encrypt your input files or that you want Elastic Transcoder to use to encrypt your output files. The initialization vector must be base64-encoded, and it must be exactly 16 bytes long before being base64-encoded.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KeyMd5</i> The MD5 digest of the key that you used to encrypt your input file, or that you want Elastic Transcoder to use to encrypt your output file. Elastic Transcoder uses the key digest as a checksum to make sure your key was not corrupted in transit. The key MD5 must be base64-encoded, and it must be exactly 16 bytes long before being base64-encoded.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The data encryption key that you want Elastic Transcoder to use to encrypt your output file, or that was used to encrypt your input file. The key must be base64-encoded and it must be one of the following bit lengths before being base64-encoded:  <code>128</code>, <code>192</code>, or <code>256</code>.  The key must also be encrypted by using the Amazon Key Management Service.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Mode</i> The specific server-side encryption mode that you want Elastic Transcoder to use when decrypting your input files or encrypting your output files. Elastic Transcoder supports the following options: <ul> <li>  <b>s3:</b> Amazon S3 creates and manages the keys used for encrypting your files. </li> <li>  <b>s3-aws-kms:</b> Amazon S3 calls the Amazon Key Management Service, which creates and manages the keys that are used for encrypting your files. If you specify <code>s3-aws-kms</code> and you don't want to use the default key, you must add the AWS-KMS key that you want to use to your pipeline. </li> <li>  <b>aes-cbc-pkcs7:</b> A padded cipher-block mode of operation originally used for HLS files. </li> <li>  <b>aes-ctr:</b> AES Counter Mode. </li> <li>  <b>aes-gcm:</b> AES Galois Counter Mode, a mode of operation that is an authenticated encryption format, meaning that a file, key, or initialization vector that has been tampered with fails the decryption process. </li> </ul> For all three AES options, you must provide the following settings, which must be base64-encoded: <ul> <li>  <b>Key</b>  </li> <li>  <b>Key MD5</b>  </li> <li>  <b>Initialization Vector</b>  </li> </ul> <important> For the AES modes, your private encryption keys and your unencrypted data are never stored by AWS; therefore, it is important that you safely manage your encryption keys. If you lose them, you won't be able to unencrypt your data. </important><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Duration</i> The duration of the clip. The format can be either HH:mm:ss.SSS (maximum value: 23:59:59.999; SSS is thousandths of a second) or sssss.SSS (maximum value: 86399.999). If you don't specify a value, Elastic Transcoder creates an output file from StartTime to the end of the file. If you specify a value longer than the duration of the input file, Elastic Transcoder transcodes the file and returns a warning message.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StartTime</i> The place in the input file where you want a clip to start. The format can be either HH:mm:ss.SSS (maximum value: 23:59:59.999; SSS is thousandths of a second) or sssss.SSS (maximum value: 86399.999). If you don't specify a value, Elastic Transcoder starts at the beginning of the input file.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CaptionSources</i> Source files for the input sidecar captions used during the transcoding process. To omit all sidecar captions, leave <code>CaptionSources</code> blank.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MergePolicy</i> A policy that determines how Elastic Transcoder handles the existence of multiple captions. <ul> <li>  <b>MergeOverride:</b> Elastic Transcoder transcodes both embedded and sidecar captions into outputs. If captions for a language are embedded in the input file and also appear in a sidecar file, Elastic Transcoder uses the sidecar captions and ignores the embedded captions for that language. </li> <li>  <b>MergeRetain:</b> Elastic Transcoder transcodes both embedded and sidecar captions into outputs. If captions for a language are embedded in the input file and also appear in a sidecar file, Elastic Transcoder uses the embedded captions and ignores the sidecar captions for that language. If <code>CaptionSources</code> is empty, Elastic Transcoder omits all sidecar captions from the output files. </li> <li>  <b>Override:</b> Elastic Transcoder transcodes only the sidecar captions that you specify in <code>CaptionSources</code>. </li> </ul>  <code>MergePolicy</code> cannot be null.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DurationMillis</i> The detected duration of the input file, in milliseconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FileSize</i> The detected file size of the input file, in bytes.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FrameRate</i> The detected frame rate of the input file, in frames per second.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Height</i> The detected height of the input file, in pixels.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Width</i> The detected width of the input file, in pixels.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Encryption</i> You can specify encryption settings for any output files that you want to use for a transcoding job. This includes the output file and any watermarks, thumbnails, album art, or captions that you want to use. You must specify encryption settings for each file individually.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Encryption</b>: You can specify encryption settings for any output files that you want to use for a transcoding job. This includes the output file and any watermarks, thumbnails, album art, or captions that you want to use. You must specify encryption settings for each file individually.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Captions</i> You can configure Elastic Transcoder to transcode captions, or subtitles, from one format to another. All captions must be in UTF-8. Elastic Transcoder supports two types of captions: <ul> <li>  <b>Embedded:</b> Embedded captions are included in the same file as the audio and video. Elastic Transcoder supports only one embedded caption per language, to a maximum of 300 embedded captions per file. Valid input values include: <code>CEA-608 (EIA-608</code>, first non-empty channel only), <code>CEA-708 (EIA-708</code>, first non-empty channel only), and <code>mov-text</code>  Valid outputs include: <code>mov-text</code>  Elastic Transcoder supports a maximum of one embedded format per output. </li> <li>  <b>Sidecar:</b> Sidecar captions are kept in a separate metadata file from the audio and video data. Sidecar captions require a player that is capable of understanding the relationship between the video file and the sidecar file. Elastic Transcoder supports only one sidecar caption per language, to a maximum of 20 sidecar captions per file. Valid input values include: <code>dfxp</code> (first div element only), <code>ebu-tt</code>, <code>scc</code>, <code>smpt</code>, <code>srt</code>, <code>ttml</code> (first div element only), and <code>webvtt</code>  Valid outputs include: <code>dfxp</code> (first div element only), <code>scc</code>, <code>srt</code>, and <code>webvtt</code>. </li> </ul> If you want ttml or smpte-tt compatible captions, specify dfxp as your output format. Elastic Transcoder does not support OCR (Optical Character Recognition), does not accept pictures as a valid input for captions, and is not available for audio-only transcoding. Elastic Transcoder does not preserve text formatting (for example, italics) during the transcoding process. To remove captions or leave the captions empty, set <code>Captions</code> to null. To pass through existing captions unchanged, set the <code>MergePolicy</code> to <code>MergeRetain</code>, and pass in a null <code>CaptionSources</code> array. For more information on embedded files, see the Subtitles Wikipedia page. For more information on sidecar files, see the Extensible Metadata Platform and Sidecar file Wikipedia pages.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Captions</b>: You can configure Elastic Transcoder to transcode captions, or subtitles, from one format to another. All captions must be in UTF-8. Elastic Transcoder supports two types of captions: <ul> <li>  <b>Embedded:</b> Embedded captions are included in the same file as the audio and video. Elastic Transcoder supports only one embedded caption per language, to a maximum of 300 embedded captions per file. Valid input values include: <code>CEA-608 (EIA-608</code>, first non-empty channel only), <code>CEA-708 (EIA-708</code>, first non-empty channel only), and <code>mov-text</code>  Valid outputs include: <code>mov-text</code>  Elastic Transcoder supports a maximum of one embedded format per output. </li> <li>  <b>Sidecar:</b> Sidecar captions are kept in a separate metadata file from the audio and video data. Sidecar captions require a player that is capable of understanding the relationship between the video file and the sidecar file. Elastic Transcoder supports only one sidecar caption per language, to a maximum of 20 sidecar captions per file. Valid input values include: <code>dfxp</code> (first div element only), <code>ebu-tt</code>, <code>scc</code>, <code>smpt</code>, <code>srt</code>, <code>ttml</code> (first div element only), and <code>webvtt</code>  Valid outputs include: <code>dfxp</code> (first div element only), <code>scc</code>, <code>srt</code>, and <code>webvtt</code>. </li> </ul> If you want ttml or smpte-tt compatible captions, specify dfxp as your output format. Elastic Transcoder does not support OCR (Optical Character Recognition), does not accept pictures as a valid input for captions, and is not available for audio-only transcoding. Elastic Transcoder does not preserve text formatting (for example, italics) during the transcoding process. To remove captions or leave the captions empty, set <code>Captions</code> to null. To pass through existing captions unchanged, set the <code>MergePolicy</code> to <code>MergeRetain</code>, and pass in a null <code>CaptionSources</code> array. For more information on embedded files, see the Subtitles Wikipedia page. For more information on sidecar files, see the Extensible Metadata Platform and Sidecar file Wikipedia pages.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Composition</i> You can create an output file that contains an excerpt from the input file. This excerpt, called a clip, can come from the beginning, middle, or end of the file. The Composition object contains settings for the clips that make up an output file. For the current release, you can only specify settings for a single clip per output file. The Composition object cannot be null.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AlbumArt</i> Information about the album art that you want Elastic Transcoder to add to the file during transcoding. You can specify up to twenty album artworks for each output. Settings for each artwork must be defined in the job for the current output.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AlbumArt</b>: Information about the album art that you want Elastic Transcoder to add to the file during transcoding. You can specify up to twenty album artworks for each output. Settings for each artwork must be defined in the job for the current output.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Watermarks</i> Information about the watermarks that you want Elastic Transcoder to add to the video during transcoding. You can specify up to four watermarks for each output. Settings for each watermark must be defined in the preset for the current output.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentDuration</i> <important> (Outputs in Fragmented MP4 or MPEG-TS format only. </important> If you specify a preset in <code>PresetId</code> for which the value of <code>Container</code> is <code>fmp4</code> (Fragmented MP4) or <code>ts</code> (MPEG-TS), <code>SegmentDuration</code> is the target maximum duration of each segment in seconds. For <code>HLSv3</code> format playlists, each media segment is stored in a separate <code>.ts</code> file. For <code>HLSv4</code> and <code>Smooth</code> playlists, all media segments for an output are stored in a single file. Each segment is approximately the length of the <code>SegmentDuration</code>, though individual segments might be shorter or longer. The range of valid values is 1 to 60 seconds. If the duration of the video is not evenly divisible by <code>SegmentDuration</code>, the duration of the last segment is the remainder of total length/SegmentDuration. Elastic Transcoder creates an output-specific playlist for each output <code>HLS</code> output that you specify in OutputKeys. To add an output to the master playlist for this job, include it in the <code>OutputKeys</code> of the associated playlist.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PresetId</i>  The <code>Id</code> of the preset to use for this job. The preset determines the audio, video, and thumbnail settings that Elastic Transcoder uses for transcoding. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Rotate</i>  The number of degrees clockwise by which you want Elastic Transcoder to rotate the output relative to the input. Enter one of the following values: <code>auto</code>, <code>0</code>, <code>90</code>, <code>180</code>, <code>270</code>. The value <code>auto</code> generally works only if the file that you're transcoding contains rotation metadata. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ThumbnailEncryption</i> The encryption settings, if any, that you want Elastic Transcoder to apply to your thumbnail.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ThumbnailEncryption</b>: The encryption settings, if any, that you want Elastic Transcoder to apply to your thumbnail.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ThumbnailPattern</i> Whether you want Elastic Transcoder to create thumbnails for your videos and, if so, how you want Elastic Transcoder to name the files. If you don't want Elastic Transcoder to create thumbnails, specify "". If you do want Elastic Transcoder to create thumbnails, specify the information that you want to include in the file name for each thumbnail. You can specify the following values in any sequence: <ul> <li>  <b> <code>{count}</code> (Required)</b>: If you want to create thumbnails, you must include <code>{count}</code> in the <code>ThumbnailPattern</code> object. Wherever you specify <code>{count}</code>, Elastic Transcoder adds a five-digit sequence number (beginning with <b>00001</b>) to thumbnail file names. The number indicates where a given thumbnail appears in the sequence of thumbnails for a transcoded file.  <important> If you specify a literal value and/or <code>{resolution}</code> but you omit <code>{count}</code>, Elastic Transcoder returns a validation error and does not create the job. </important> </li> <li>  <b>Literal values (Optional)</b>: You can specify literal values anywhere in the <code>ThumbnailPattern</code> object. For example, you can include them as a file name prefix or as a delimiter between <code>{resolution}</code> and <code>{count}</code>.  </li> <li>  <b> <code>{resolution}</code> (Optional)</b>: If you want Elastic Transcoder to include the resolution in the file name, include <code>{resolution}</code> in the <code>ThumbnailPattern</code> object.  </li> </ul> When creating thumbnails, Elastic Transcoder automatically saves the files in the format (.jpg or .png) that appears in the preset that you specified in the <code>PresetID</code> value of <code>CreateJobOutput</code>. Elastic Transcoder also appends the applicable file name extension.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i>  The name to assign to the transcoded file. Elastic Transcoder saves the file in the Amazon S3 bucket specified by the <code>OutputBucket</code> object in the pipeline that is specified by the pipeline ID. If a file with the specified name already exists in the output bucket, the job fails. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InitializationVector</i> The series of random bits created by a random bit generator, unique for every encryption operation, that you used to encrypt your input files or that you want Elastic Transcoder to use to encrypt your output files. The initialization vector must be base64-encoded, and it must be exactly 16 bytes long before being base64-encoded.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KeyMd5</i> The MD5 digest of the key that you used to encrypt your input file, or that you want Elastic Transcoder to use to encrypt your output file. Elastic Transcoder uses the key digest as a checksum to make sure your key was not corrupted in transit. The key MD5 must be base64-encoded, and it must be exactly 16 bytes long before being base64-encoded.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The data encryption key that you want Elastic Transcoder to use to encrypt your output file, or that was used to encrypt your input file. The key must be base64-encoded and it must be one of the following bit lengths before being base64-encoded:  <code>128</code>, <code>192</code>, or <code>256</code>.  The key must also be encrypted by using the Amazon Key Management Service.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Mode</i> The specific server-side encryption mode that you want Elastic Transcoder to use when decrypting your input files or encrypting your output files. Elastic Transcoder supports the following options: <ul> <li>  <b>s3:</b> Amazon S3 creates and manages the keys used for encrypting your files. </li> <li>  <b>s3-aws-kms:</b> Amazon S3 calls the Amazon Key Management Service, which creates and manages the keys that are used for encrypting your files. If you specify <code>s3-aws-kms</code> and you don't want to use the default key, you must add the AWS-KMS key that you want to use to your pipeline. </li> <li>  <b>aes-cbc-pkcs7:</b> A padded cipher-block mode of operation originally used for HLS files. </li> <li>  <b>aes-ctr:</b> AES Counter Mode. </li> <li>  <b>aes-gcm:</b> AES Galois Counter Mode, a mode of operation that is an authenticated encryption format, meaning that a file, key, or initialization vector that has been tampered with fails the decryption process. </li> </ul> For all three AES options, you must provide the following settings, which must be base64-encoded: <ul> <li>  <b>Key</b>  </li> <li>  <b>Key MD5</b>  </li> <li>  <b>Initialization Vector</b>  </li> </ul> <important> For the AES modes, your private encryption keys and your unencrypted data are never stored by AWS; therefore, it is important that you safely manage your encryption keys. If you lose them, you won't be able to unencrypt your data. </important><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Artwork</i> The file to be used as album art. There can be multiple artworks associated with an audio file, to a maximum of 20. Valid formats are <code>.jpg</code> and <code>.png</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MergePolicy</i> A policy that determines how Elastic Transcoder handles the existence of multiple album artwork files. <ul> <li>  <code>Replace:</code> The specified album art replaces any existing album art. </li> <li>  <code>Prepend:</code> The specified album art is placed in front of any existing album art. </li> <li>  <code>Append:</code> The specified album art is placed after any existing album art. </li> <li>  <code>Fallback:</code> If the original input file contains artwork, Elastic Transcoder uses that artwork for the output. If the original input does not contain artwork, Elastic Transcoder uses the specified album art file. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CaptionFormats</i> The array of file formats for the output captions. If you leave this value blank, Elastic Transcoder returns an error.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CaptionSources</i> Source files for the input sidecar captions used during the transcoding process. To omit all sidecar captions, leave <code>CaptionSources</code> blank.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MergePolicy</i> A policy that determines how Elastic Transcoder handles the existence of multiple captions. <ul> <li>  <b>MergeOverride:</b> Elastic Transcoder transcodes both embedded and sidecar captions into outputs. If captions for a language are embedded in the input file and also appear in a sidecar file, Elastic Transcoder uses the sidecar captions and ignores the embedded captions for that language. </li> <li>  <b>MergeRetain:</b> Elastic Transcoder transcodes both embedded and sidecar captions into outputs. If captions for a language are embedded in the input file and also appear in a sidecar file, Elastic Transcoder uses the embedded captions and ignores the sidecar captions for that language. If <code>CaptionSources</code> is empty, Elastic Transcoder omits all sidecar captions from the output files. </li> <li>  <b>Override:</b> Elastic Transcoder transcodes only the sidecar captions that you specify in <code>CaptionSources</code>. </li> </ul>  <code>MergePolicy</code> cannot be null.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InitializationVector</i> The series of random bits created by a random bit generator, unique for every encryption operation, that you used to encrypt your input files or that you want Elastic Transcoder to use to encrypt your output files. The initialization vector must be base64-encoded, and it must be exactly 16 bytes long before being base64-encoded.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KeyMd5</i> The MD5 digest of the key that you used to encrypt your input file, or that you want Elastic Transcoder to use to encrypt your output file. Elastic Transcoder uses the key digest as a checksum to make sure your key was not corrupted in transit. The key MD5 must be base64-encoded, and it must be exactly 16 bytes long before being base64-encoded.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The data encryption key that you want Elastic Transcoder to use to encrypt your output file, or that was used to encrypt your input file. The key must be base64-encoded and it must be one of the following bit lengths before being base64-encoded:  <code>128</code>, <code>192</code>, or <code>256</code>.  The key must also be encrypted by using the Amazon Key Management Service.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Mode</i> The specific server-side encryption mode that you want Elastic Transcoder to use when decrypting your input files or encrypting your output files. Elastic Transcoder supports the following options: <ul> <li>  <b>s3:</b> Amazon S3 creates and manages the keys used for encrypting your files. </li> <li>  <b>s3-aws-kms:</b> Amazon S3 calls the Amazon Key Management Service, which creates and manages the keys that are used for encrypting your files. If you specify <code>s3-aws-kms</code> and you don't want to use the default key, you must add the AWS-KMS key that you want to use to your pipeline. </li> <li>  <b>aes-cbc-pkcs7:</b> A padded cipher-block mode of operation originally used for HLS files. </li> <li>  <b>aes-ctr:</b> AES Counter Mode. </li> <li>  <b>aes-gcm:</b> AES Galois Counter Mode, a mode of operation that is an authenticated encryption format, meaning that a file, key, or initialization vector that has been tampered with fails the decryption process. </li> </ul> For all three AES options, you must provide the following settings, which must be base64-encoded: <ul> <li>  <b>Key</b>  </li> <li>  <b>Key MD5</b>  </li> <li>  <b>Initialization Vector</b>  </li> </ul> <important> For the AES modes, your private encryption keys and your unencrypted data are never stored by AWS; therefore, it is important that you safely manage your encryption keys. If you lose them, you won't be able to unencrypt your data. </important><br/>
        :return: Job:  A section of the response body that provides information about the job that is created.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Timing</i> Details about the timing of a job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Timing</b>: Details about the timing of a job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserMetadata</i> User-defined metadata that you want to associate with an Elastic Transcoder job. You specify metadata in <code>key/value</code> pairs, and you can add up to 10 <code>key/value</code> pairs per job. Elastic Transcoder does not guarantee that <code>key/value</code> pairs are returned in the same order in which you specify them. Metadata <code>keys</code> and <code>values</code> must use characters from the following list: <ul> <li>  <code>0-9</code>  </li> <li>  <code>A-Z</code> and <code>a-z</code>  </li> <li>  <code>Space</code>  </li> <li> The following symbols: <code>_.:/=+-%@</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i>  The status of the job: <code>Submitted</code>, <code>Progressing</code>, <code>Complete</code>, <code>Canceled</code>, or <code>Error</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Playlists</i> <important> Outputs in Fragmented MP4 or MPEG-TS format only. </important> If you specify a preset in <code>PresetId</code> for which the value of <code>Container</code> is fmp4 (Fragmented MP4) or ts (MPEG-TS), <code>Playlists</code> contains information about the master playlists that you want Elastic Transcoder to create. The maximum number of master playlists in a job is 30.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OutputKeyPrefix</i> The value, if any, that you want Elastic Transcoder to prepend to the names of all files that this job creates, including output files, thumbnails, and playlists. We recommend that you add a / or some other delimiter to the end of the <code>OutputKeyPrefix</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Outputs</i> Information about the output files. We recommend that you use the <code>Outputs</code> syntax for all jobs, even when you want Elastic Transcoder to transcode a file into only one format. Do not use both the <code>Outputs</code> and <code>Output</code> syntaxes in the same request. You can create a maximum of 30 outputs per job.  If you specify more than one output for a job, Elastic Transcoder creates the files for each output in the order in which you specify them in the job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Output</i> If you specified one output for a job, information about that output. If you specified multiple outputs for a job, the Output object lists information about the first output. This duplicates the information that is listed for the first output in the Outputs object. <important> Outputs recommended instead. </important> A section of the request or response body that provides information about the transcoded (target) file. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Output</b>: If you specified one output for a job, information about that output. If you specified multiple outputs for a job, the Output object lists information about the first output. This duplicates the information that is listed for the first output in the Outputs object. <important> Outputs recommended instead. </important> A section of the request or response body that provides information about the transcoded (target) file. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Inputs</i> Information about the files that you're transcoding. If you specified multiple files for this job, Elastic Transcoder stitches the files together to make one output.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Input</i> A section of the request or response body that provides information about the file that is being transcoded.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Input</b>: A section of the request or response body that provides information about the file that is being transcoded.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PipelineId</i>  The <code>Id</code> of the pipeline that you want Elastic Transcoder to use for transcoding. The pipeline determines several settings, including the Amazon S3 bucket from which Elastic Transcoder gets the files to transcode and the bucket into which Elastic Transcoder puts the transcoded files. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) for the job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The identifier that Elastic Transcoder assigned to the job. You use this value to get settings for the job or to delete the job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Container</i> The container type for the input file. If you want Elastic Transcoder to automatically detect the container type of the input file, specify <code>auto</code>. If you want to specify the container type for the input file, enter one of the following values:   <code>3gp</code>, <code>aac</code>, <code>asf</code>, <code>avi</code>, <code>divx</code>, <code>flv</code>, <code>m4a</code>, <code>mkv</code>, <code>mov</code>, <code>mp3</code>, <code>mp4</code>, <code>mpeg</code>, <code>mpeg-ps</code>, <code>mpeg-ts</code>, <code>mxf</code>, <code>ogg</code>, <code>vob</code>, <code>wav</code>, <code>webm</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Interlaced</i> Whether the input file is interlaced. If you want Elastic Transcoder to automatically detect whether the input file is interlaced, specify <code>auto</code>. If you want to specify whether the input file is interlaced, enter one of the following values:  <code>true</code>, <code>false</code>  If you specify a value other than <code>auto</code>, Elastic Transcoder disables automatic detection of interlacing.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AspectRatio</i>  The aspect ratio of the input file. If you want Elastic Transcoder to automatically detect the aspect ratio of the input file, specify <code>auto</code>. If you want to specify the aspect ratio for the output file, enter one of the following values:   <code>1:1</code>, <code>4:3</code>, <code>3:2</code>, <code>16:9</code>   If you specify a value other than <code>auto</code>, Elastic Transcoder disables automatic detection of the aspect ratio. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Resolution</i> This value must be <code>auto</code>, which causes Elastic Transcoder to automatically detect the resolution of the input file.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FrameRate</i> The frame rate of the input file. If you want Elastic Transcoder to automatically detect the frame rate of the input file, specify <code>auto</code>. If you want to specify the frame rate for the input file, enter one of the following values:   <code>10</code>, <code>15</code>, <code>23.97</code>, <code>24</code>, <code>25</code>, <code>29.97</code>, <code>30</code>, <code>60</code>  If you specify a value other than <code>auto</code>, Elastic Transcoder disables automatic detection of the frame rate.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i>  The name of the file to transcode. Elsewhere in the body of the JSON block is the the ID of the pipeline to use for processing the job. The <code>InputBucket</code> object in that pipeline tells Elastic Transcoder which Amazon S3 bucket to get the file from.  If the file name includes a prefix, such as <code>cooking/lasagna.mpg</code>, include the prefix in the key. If the file isn't in the specified bucket, Elastic Transcoder returns an error.<br/>The encryption settings, if any, that are used for decrypting your input files. If your input file is encrypted, you must specify the mode that Elastic Transcoder uses to decrypt your file.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Encryption</b>: The encryption settings, if any, that are used for decrypting your input files. If your input file is encrypted, you must specify the mode that Elastic Transcoder uses to decrypt your file.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ThumbnailPattern</i> Whether you want Elastic Transcoder to create thumbnails for your videos and, if so, how you want Elastic Transcoder to name the files. If you don't want Elastic Transcoder to create thumbnails, specify "". If you do want Elastic Transcoder to create thumbnails, specify the information that you want to include in the file name for each thumbnail. You can specify the following values in any sequence: <ul> <li>  <b> <code>{count}</code> (Required)</b>: If you want to create thumbnails, you must include <code>{count}</code> in the <code>ThumbnailPattern</code> object. Wherever you specify <code>{count}</code>, Elastic Transcoder adds a five-digit sequence number (beginning with <b>00001</b>) to thumbnail file names. The number indicates where a given thumbnail appears in the sequence of thumbnails for a transcoded file.  <important> If you specify a literal value and/or <code>{resolution}</code> but you omit <code>{count}</code>, Elastic Transcoder returns a validation error and does not create the job. </important> </li> <li>  <b>Literal values (Optional)</b>: You can specify literal values anywhere in the <code>ThumbnailPattern</code> object. For example, you can include them as a file name prefix or as a delimiter between <code>{resolution}</code> and <code>{count}</code>.  </li> <li>  <b> <code>{resolution}</code> (Optional)</b>: If you want Elastic Transcoder to include the resolution in the file name, include <code>{resolution}</code> in the <code>ThumbnailPattern</code> object.  </li> </ul> When creating thumbnails, Elastic Transcoder automatically saves the files in the format (.jpg or .png) that appears in the preset that you specified in the <code>PresetID</code> value of <code>CreateJobOutput</code>. Elastic Transcoder also appends the applicable file name extension.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i>  The name to assign to the transcoded file. Elastic Transcoder saves the file in the Amazon S3 bucket specified by the <code>OutputBucket</code> object in the pipeline that is specified by the pipeline ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> A sequential counter, starting with 1, that identifies an output among the outputs from the current job. In the Output syntax, this value is always 1.<br/>The encryption settings, if any, that you want Elastic Transcoder to apply to your thumbnail.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ThumbnailEncryption</b>: The encryption settings, if any, that you want Elastic Transcoder to apply to your thumbnail.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FinishTimeMillis</i> The time the job finished transcoding, in epoch milliseconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StartTimeMillis</i> The time the job began transcoding, in epoch milliseconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SubmitTimeMillis</i> The time the job was submitted to Elastic Transcoder, in epoch milliseconds.<br/>        """
        pass

    def create_pipeline(self, Role: str, InputBucket: str, Name: str, OutputBucket: str=None, AwsKmsKeyArn: str=None, Notifications: Notifications=None, ContentConfig: PipelineOutputConfig=None, ThumbnailConfig: PipelineOutputConfig=None) -> CreatePipelineResponse:
        r"""The CreatePipeline operation creates a pipeline with settings that you specify.

        :param self:
        :param ThumbnailConfig:  The <code>ThumbnailConfig</code> object specifies several values, including the Amazon S3 bucket in which you want Elastic Transcoder to save thumbnail files, which users you want to have access to the files, the type of access you want users to have, and the storage class that you want to assign to the files. If you specify values for <code>ContentConfig</code>, you must also specify values for <code>ThumbnailConfig</code> even if you don't want to create thumbnails. If you specify values for <code>ContentConfig</code> and <code>ThumbnailConfig</code>, omit the <code>OutputBucket</code> object. <ul> <li>  <b>Bucket</b>: The Amazon S3 bucket in which you want Elastic Transcoder to save thumbnail files. </li> <li>  <b>Permissions</b> (Optional): The <code>Permissions</code> object specifies which users and/or predefined Amazon S3 groups you want to have access to thumbnail files, and the type of access you want them to have. You can grant permissions to a maximum of 30 users and/or predefined Amazon S3 groups. </li> <li>  <b>GranteeType</b>: Specify the type of value that appears in the Grantee object:  <ul> <li>  <b>Canonical</b>: The value in the <code>Grantee</code> object is either the canonical user ID for an AWS account or an origin access identity for an Amazon CloudFront distribution. <important> A canonical user ID is not the same as an AWS account number. </important> </li> <li>  <b>Email</b>: The value in the <code>Grantee</code> object is the registered email address of an AWS account.  </li> <li>  <b>Group</b>: The value in the <code>Grantee</code> object is one of the following predefined Amazon S3 groups: <code>AllUsers</code>, <code>AuthenticatedUsers</code>, or <code>LogDelivery</code>. </li> </ul> </li> <li>  <b>Grantee</b>: The AWS user or group that you want to have access to thumbnail files. To identify the user or group, you can specify the canonical user ID for an AWS account, an origin access identity for a CloudFront distribution, the registered email address of an AWS account, or a predefined Amazon S3 group.  </li> <li>  <b>Access</b>: The permission that you want to give to the AWS user that you specified in <code>Grantee</code>. Permissions are granted on the thumbnail files that Elastic Transcoder adds to the bucket. Valid values include:  <ul> <li>  <code>READ</code>: The grantee can read the thumbnails and metadata for objects that Elastic Transcoder adds to the Amazon S3 bucket. </li> <li>  <code>READ_ACP</code>: The grantee can read the object ACL for thumbnails that Elastic Transcoder adds to the Amazon S3 bucket. </li> <li>  <code>WRITE_ACP</code>: The grantee can write the ACL for the thumbnails that Elastic Transcoder adds to the Amazon S3 bucket. </li> <li>  <code>FULL_CONTROL</code>: The grantee has <code>READ</code>, <code>READ_ACP</code>, and <code>WRITE_ACP</code> permissions for the thumbnails that Elastic Transcoder adds to the Amazon S3 bucket. </li> </ul> </li> <li>  <b>StorageClass</b>: The Amazon S3 storage class, <code>Standard</code> or <code>ReducedRedundancy</code>, that you want Elastic Transcoder to assign to the thumbnails that it stores in your Amazon S3 bucket. </li> </ul>:<br/>ContentConfig:  The optional <code>ContentConfig</code> object specifies information about the Amazon S3 bucket in which you want Elastic Transcoder to save transcoded files and playlists: which bucket to use, which users you want to have access to the files, the type of access you want users to have, and the storage class that you want to assign to the files. If you specify values for <code>ContentConfig</code>, you must also specify values for <code>ThumbnailConfig</code>. If you specify values for <code>ContentConfig</code> and <code>ThumbnailConfig</code>, omit the <code>OutputBucket</code> object. <ul> <li>  <b>Bucket</b>: The Amazon S3 bucket in which you want Elastic Transcoder to save transcoded files and playlists. </li> <li>  <b>Permissions</b> (Optional): The Permissions object specifies which users you want to have access to transcoded files and the type of access you want them to have. You can grant permissions to a maximum of 30 users and/or predefined Amazon S3 groups. </li> <li>  <b>Grantee Type</b>: Specify the type of value that appears in the <code>Grantee</code> object:  <ul> <li>  <b>Canonical</b>: The value in the <code>Grantee</code> object is either the canonical user ID for an AWS account or an origin access identity for an Amazon CloudFront distribution. For more information about canonical user IDs, see Access Control List (ACL) Overview in the Amazon Simple Storage Service Developer Guide. For more information about using CloudFront origin access identities to require that users use CloudFront URLs instead of Amazon S3 URLs, see Using an Origin Access Identity to Restrict Access to Your Amazon S3 Content. <important> A canonical user ID is not the same as an AWS account number. </important> </li> <li>  <b>Email</b>: The value in the <code>Grantee</code> object is the registered email address of an AWS account. </li> <li>  <b>Group</b>: The value in the <code>Grantee</code> object is one of the following predefined Amazon S3 groups: <code>AllUsers</code>, <code>AuthenticatedUsers</code>, or <code>LogDelivery</code>. </li> </ul> </li> <li>  <b>Grantee</b>: The AWS user or group that you want to have access to transcoded files and playlists. To identify the user or group, you can specify the canonical user ID for an AWS account, an origin access identity for a CloudFront distribution, the registered email address of an AWS account, or a predefined Amazon S3 group  </li> <li>  <b>Access</b>: The permission that you want to give to the AWS user that you specified in <code>Grantee</code>. Permissions are granted on the files that Elastic Transcoder adds to the bucket, including playlists and video files. Valid values include:  <ul> <li>  <code>READ</code>: The grantee can read the objects and metadata for objects that Elastic Transcoder adds to the Amazon S3 bucket. </li> <li>  <code>READ_ACP</code>: The grantee can read the object ACL for objects that Elastic Transcoder adds to the Amazon S3 bucket. </li> <li>  <code>WRITE_ACP</code>: The grantee can write the ACL for the objects that Elastic Transcoder adds to the Amazon S3 bucket. </li> <li>  <code>FULL_CONTROL</code>: The grantee has <code>READ</code>, <code>READ_ACP</code>, and <code>WRITE_ACP</code> permissions for the objects that Elastic Transcoder adds to the Amazon S3 bucket. </li> </ul> </li> <li>  <b>StorageClass</b>: The Amazon S3 storage class, <code>Standard</code> or <code>ReducedRedundancy</code>, that you want Elastic Transcoder to assign to the video files and playlists that it stores in your Amazon S3 bucket. </li> </ul>:<br/>Notifications:  The Amazon Simple Notification Service (Amazon SNS) topic that you want to notify to report job status. <important> To receive notifications, you must also subscribe to the new topic in the Amazon SNS console. </important> <ul> <li>  <b>Progressing</b>: The topic ARN for the Amazon Simple Notification Service (Amazon SNS) topic that you want to notify when Elastic Transcoder has started to process a job in this pipeline. This is the ARN that Amazon SNS returned when you created the topic. For more information, see Create a Topic in the Amazon Simple Notification Service Developer Guide. </li> <li>  <b>Complete</b>: The topic ARN for the Amazon SNS topic that you want to notify when Elastic Transcoder has finished processing a job in this pipeline. This is the ARN that Amazon SNS returned when you created the topic. </li> <li>  <b>Warning</b>: The topic ARN for the Amazon SNS topic that you want to notify when Elastic Transcoder encounters a warning condition while processing a job in this pipeline. This is the ARN that Amazon SNS returned when you created the topic. </li> <li>  <b>Error</b>: The topic ARN for the Amazon SNS topic that you want to notify when Elastic Transcoder encounters an error condition while processing a job in this pipeline. This is the ARN that Amazon SNS returned when you created the topic. </li> </ul>:<br/>AwsKmsKeyArn:  The AWS Key Management Service (AWS KMS) key that you want to use with this pipeline. If you use either <code>s3</code> or <code>s3-aws-kms</code> as your <code>Encryption:Mode</code>, you don't need to provide a key with your job because a default key, known as an AWS-KMS key, is created for you automatically. You need to provide an AWS-KMS key only if you want to use a non-default AWS-KMS key, or if you are using an <code>Encryption:Mode</code> of <code>aes-cbc-pkcs7</code>, <code>aes-ctr</code>, or <code>aes-gcm</code>.<br/>Role:  The IAM Amazon Resource Name (ARN) for the role that you want Elastic Transcoder to use to create the pipeline.<br/>OutputBucket:  The Amazon S3 bucket in which you want Elastic Transcoder to save the transcoded files. (Use this, or use ContentConfig:Bucket plus ThumbnailConfig:Bucket.) Specify this value when all of the following are true: <ul> <li> You want to save transcoded files, thumbnails (if any), and playlists (if any) together in one bucket. </li> <li> You do not want to specify the users or groups who have access to the transcoded files, thumbnails, and playlists. </li> <li> You do not want to specify the permissions that Elastic Transcoder grants to the files.  <important> When Elastic Transcoder saves files in <code>OutputBucket</code>, it grants full control over the files only to the AWS account that owns the role that is specified by <code>Role</code>. </important> </li> <li> You want to associate the transcoded files and thumbnails with the Amazon S3 Standard storage class. </li> </ul> If you want to save transcoded files and playlists in one bucket and thumbnails in another bucket, specify which users can access the transcoded files or the permissions the users have, or change the Amazon S3 storage class, omit <code>OutputBucket</code> and specify values for <code>ContentConfig</code> and <code>ThumbnailConfig</code> instead.<br/>InputBucket:  The Amazon S3 bucket in which you saved the media files that you want to transcode.<br/>Name:  The name of the pipeline. We recommend that the name be unique within the AWS account, but uniqueness is not enforced. Constraints: Maximum 40 characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Error</i> The Amazon SNS topic that you want to notify when Elastic Transcoder encounters an error condition.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Warning</i> The Amazon SNS topic that you want to notify when Elastic Transcoder encounters a warning condition.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Completed</i> The Amazon SNS topic that you want to notify when Elastic Transcoder has finished processing the job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Progressing</i> The Amazon Simple Notification Service (Amazon SNS) topic that you want to notify when Elastic Transcoder has started to process the job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Permissions</i> Optional. The <code>Permissions</code> object specifies which users and/or predefined Amazon S3 groups you want to have access to transcoded files and playlists, and the type of access you want them to have. You can grant permissions to a maximum of 30 users and/or predefined Amazon S3 groups. If you include <code>Permissions</code>, Elastic Transcoder grants only the permissions that you specify. It does not grant full permissions to the owner of the role specified by <code>Role</code>. If you want that user to have full control, you must explicitly grant full control to the user.  If you omit <code>Permissions</code>, Elastic Transcoder grants full control over the transcoded files and playlists to the owner of the role specified by <code>Role</code>, and grants no other permissions to any other user or group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageClass</i>  The Amazon S3 storage class, <code>Standard</code> or <code>ReducedRedundancy</code>, that you want Elastic Transcoder to assign to the video files and playlists that it stores in your Amazon S3 bucket. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i>  The Amazon S3 bucket in which you want Elastic Transcoder to save the transcoded files. Specify this value when all of the following are true: <ul> <li> You want to save transcoded files, thumbnails (if any), and playlists (if any) together in one bucket. </li> <li> You do not want to specify the users or groups who have access to the transcoded files, thumbnails, and playlists. </li> <li> You do not want to specify the permissions that Elastic Transcoder grants to the files. </li> <li> You want to associate the transcoded files and thumbnails with the Amazon S3 Standard storage class. </li> </ul> If you want to save transcoded files and playlists in one bucket and thumbnails in another bucket, specify which users can access the transcoded files or the permissions the users have, or change the Amazon S3 storage class, omit OutputBucket and specify values for <code>ContentConfig</code> and <code>ThumbnailConfig</code> instead. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Permissions</i> Optional. The <code>Permissions</code> object specifies which users and/or predefined Amazon S3 groups you want to have access to transcoded files and playlists, and the type of access you want them to have. You can grant permissions to a maximum of 30 users and/or predefined Amazon S3 groups. If you include <code>Permissions</code>, Elastic Transcoder grants only the permissions that you specify. It does not grant full permissions to the owner of the role specified by <code>Role</code>. If you want that user to have full control, you must explicitly grant full control to the user.  If you omit <code>Permissions</code>, Elastic Transcoder grants full control over the transcoded files and playlists to the owner of the role specified by <code>Role</code>, and grants no other permissions to any other user or group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageClass</i>  The Amazon S3 storage class, <code>Standard</code> or <code>ReducedRedundancy</code>, that you want Elastic Transcoder to assign to the video files and playlists that it stores in your Amazon S3 bucket. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i>  The Amazon S3 bucket in which you want Elastic Transcoder to save the transcoded files. Specify this value when all of the following are true: <ul> <li> You want to save transcoded files, thumbnails (if any), and playlists (if any) together in one bucket. </li> <li> You do not want to specify the users or groups who have access to the transcoded files, thumbnails, and playlists. </li> <li> You do not want to specify the permissions that Elastic Transcoder grants to the files. </li> <li> You want to associate the transcoded files and thumbnails with the Amazon S3 Standard storage class. </li> </ul> If you want to save transcoded files and playlists in one bucket and thumbnails in another bucket, specify which users can access the transcoded files or the permissions the users have, or change the Amazon S3 storage class, omit OutputBucket and specify values for <code>ContentConfig</code> and <code>ThumbnailConfig</code> instead. <br/>
        :return: Warnings:  Elastic Transcoder returns a warning if the resources used by your pipeline are not in the same region as the pipeline. Using resources in the same region, such as your Amazon S3 buckets, Amazon SNS notification topics, and AWS KMS key, reduces processing time and prevents cross-regional charges.<br/>Pipeline:  A section of the response body that provides information about the pipeline that is created.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ThumbnailConfig</i> Information about the Amazon S3 bucket in which you want Elastic Transcoder to save thumbnail files. Either you specify both <code>ContentConfig</code> and <code>ThumbnailConfig</code>, or you specify <code>OutputBucket</code>. <ul> <li>  <code>Bucket</code>: The Amazon S3 bucket in which you want Elastic Transcoder to save thumbnail files.  </li> <li>  <code>Permissions</code>: A list of the users and/or predefined Amazon S3 groups you want to have access to thumbnail files, and the type of access that you want them to have.  <ul> <li> GranteeType: The type of value that appears in the Grantee object: <ul> <li>  <code>Canonical</code>: Either the canonical user ID for an AWS account or an origin access identity for an Amazon CloudFront distribution. <important> A canonical user ID is not the same as an AWS account number. </important> </li> <li>  <code>Email</code>: The registered email address of an AWS account. </li> <li>  <code>Group</code>: One of the following predefined Amazon S3 groups: <code>AllUsers</code>, <code>AuthenticatedUsers</code>, or <code>LogDelivery</code>. </li> </ul> </li> <li>  <code>Grantee</code>: The AWS user or group that you want to have access to thumbnail files. </li> <li> Access: The permission that you want to give to the AWS user that is listed in Grantee. Valid values include:  <ul> <li>  <code>READ</code>: The grantee can read the thumbnails and metadata for thumbnails that Elastic Transcoder adds to the Amazon S3 bucket. </li> <li>  <code>READ_ACP</code>: The grantee can read the object ACL for thumbnails that Elastic Transcoder adds to the Amazon S3 bucket. </li> <li>  <code>WRITE_ACP</code>: The grantee can write the ACL for the thumbnails that Elastic Transcoder adds to the Amazon S3 bucket. </li> <li>  <code>FULL_CONTROL</code>: The grantee has READ, READ_ACP, and WRITE_ACP permissions for the thumbnails that Elastic Transcoder adds to the Amazon S3 bucket. </li> </ul> </li> </ul> </li> <li>  <code>StorageClass</code>: The Amazon S3 storage class, <code>Standard</code> or <code>ReducedRedundancy</code>, that you want Elastic Transcoder to assign to the thumbnails that it stores in your Amazon S3 bucket. </li> </ul>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ThumbnailConfig</b>: Information about the Amazon S3 bucket in which you want Elastic Transcoder to save thumbnail files. Either you specify both <code>ContentConfig</code> and <code>ThumbnailConfig</code>, or you specify <code>OutputBucket</code>. <ul> <li>  <code>Bucket</code>: The Amazon S3 bucket in which you want Elastic Transcoder to save thumbnail files.  </li> <li>  <code>Permissions</code>: A list of the users and/or predefined Amazon S3 groups you want to have access to thumbnail files, and the type of access that you want them to have.  <ul> <li> GranteeType: The type of value that appears in the Grantee object: <ul> <li>  <code>Canonical</code>: Either the canonical user ID for an AWS account or an origin access identity for an Amazon CloudFront distribution. <important> A canonical user ID is not the same as an AWS account number. </important> </li> <li>  <code>Email</code>: The registered email address of an AWS account. </li> <li>  <code>Group</code>: One of the following predefined Amazon S3 groups: <code>AllUsers</code>, <code>AuthenticatedUsers</code>, or <code>LogDelivery</code>. </li> </ul> </li> <li>  <code>Grantee</code>: The AWS user or group that you want to have access to thumbnail files. </li> <li> Access: The permission that you want to give to the AWS user that is listed in Grantee. Valid values include:  <ul> <li>  <code>READ</code>: The grantee can read the thumbnails and metadata for thumbnails that Elastic Transcoder adds to the Amazon S3 bucket. </li> <li>  <code>READ_ACP</code>: The grantee can read the object ACL for thumbnails that Elastic Transcoder adds to the Amazon S3 bucket. </li> <li>  <code>WRITE_ACP</code>: The grantee can write the ACL for the thumbnails that Elastic Transcoder adds to the Amazon S3 bucket. </li> <li>  <code>FULL_CONTROL</code>: The grantee has READ, READ_ACP, and WRITE_ACP permissions for the thumbnails that Elastic Transcoder adds to the Amazon S3 bucket. </li> </ul> </li> </ul> </li> <li>  <code>StorageClass</code>: The Amazon S3 storage class, <code>Standard</code> or <code>ReducedRedundancy</code>, that you want Elastic Transcoder to assign to the thumbnails that it stores in your Amazon S3 bucket. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ContentConfig</i> Information about the Amazon S3 bucket in which you want Elastic Transcoder to save transcoded files and playlists. Either you specify both <code>ContentConfig</code> and <code>ThumbnailConfig</code>, or you specify <code>OutputBucket</code>. <ul> <li>  <b>Bucket</b>: The Amazon S3 bucket in which you want Elastic Transcoder to save transcoded files and playlists. </li> <li>  <b>Permissions</b>: A list of the users and/or predefined Amazon S3 groups you want to have access to transcoded files and playlists, and the type of access that you want them to have.  <ul> <li> GranteeType: The type of value that appears in the <code>Grantee</code> object:  <ul> <li>  <code>Canonical</code>: Either the canonical user ID for an AWS account or an origin access identity for an Amazon CloudFront distribution. </li> <li>  <code>Email</code>: The registered email address of an AWS account. </li> <li>  <code>Group</code>: One of the following predefined Amazon S3 groups: <code>AllUsers</code>, <code>AuthenticatedUsers</code>, or <code>LogDelivery</code>. </li> </ul> </li> <li>  <code>Grantee</code>: The AWS user or group that you want to have access to transcoded files and playlists. </li> <li>  <code>Access</code>: The permission that you want to give to the AWS user that is listed in <code>Grantee</code>. Valid values include: <ul> <li>  <code>READ</code>: The grantee can read the objects and metadata for objects that Elastic Transcoder adds to the Amazon S3 bucket. </li> <li>  <code>READ_ACP</code>: The grantee can read the object ACL for objects that Elastic Transcoder adds to the Amazon S3 bucket. </li> <li>  <code>WRITE_ACP</code>: The grantee can write the ACL for the objects that Elastic Transcoder adds to the Amazon S3 bucket. </li> <li>  <code>FULL_CONTROL</code>: The grantee has <code>READ</code>, <code>READ_ACP</code>, and <code>WRITE_ACP</code> permissions for the objects that Elastic Transcoder adds to the Amazon S3 bucket. </li> </ul> </li> </ul> </li> <li>  <b>StorageClass</b>: The Amazon S3 storage class, Standard or ReducedRedundancy, that you want Elastic Transcoder to assign to the video files and playlists that it stores in your Amazon S3 bucket.  </li> </ul>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ContentConfig</b>: Information about the Amazon S3 bucket in which you want Elastic Transcoder to save transcoded files and playlists. Either you specify both <code>ContentConfig</code> and <code>ThumbnailConfig</code>, or you specify <code>OutputBucket</code>. <ul> <li>  <b>Bucket</b>: The Amazon S3 bucket in which you want Elastic Transcoder to save transcoded files and playlists. </li> <li>  <b>Permissions</b>: A list of the users and/or predefined Amazon S3 groups you want to have access to transcoded files and playlists, and the type of access that you want them to have.  <ul> <li> GranteeType: The type of value that appears in the <code>Grantee</code> object:  <ul> <li>  <code>Canonical</code>: Either the canonical user ID for an AWS account or an origin access identity for an Amazon CloudFront distribution. </li> <li>  <code>Email</code>: The registered email address of an AWS account. </li> <li>  <code>Group</code>: One of the following predefined Amazon S3 groups: <code>AllUsers</code>, <code>AuthenticatedUsers</code>, or <code>LogDelivery</code>. </li> </ul> </li> <li>  <code>Grantee</code>: The AWS user or group that you want to have access to transcoded files and playlists. </li> <li>  <code>Access</code>: The permission that you want to give to the AWS user that is listed in <code>Grantee</code>. Valid values include: <ul> <li>  <code>READ</code>: The grantee can read the objects and metadata for objects that Elastic Transcoder adds to the Amazon S3 bucket. </li> <li>  <code>READ_ACP</code>: The grantee can read the object ACL for objects that Elastic Transcoder adds to the Amazon S3 bucket. </li> <li>  <code>WRITE_ACP</code>: The grantee can write the ACL for the objects that Elastic Transcoder adds to the Amazon S3 bucket. </li> <li>  <code>FULL_CONTROL</code>: The grantee has <code>READ</code>, <code>READ_ACP</code>, and <code>WRITE_ACP</code> permissions for the objects that Elastic Transcoder adds to the Amazon S3 bucket. </li> </ul> </li> </ul> </li> <li>  <b>StorageClass</b>: The Amazon S3 storage class, Standard or ReducedRedundancy, that you want Elastic Transcoder to assign to the video files and playlists that it stores in your Amazon S3 bucket.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Notifications</i> The Amazon Simple Notification Service (Amazon SNS) topic that you want to notify to report job status. <important> To receive notifications, you must also subscribe to the new topic in the Amazon SNS console. </important> <ul> <li>  <b>Progressing</b> (optional): The Amazon Simple Notification Service (Amazon SNS) topic that you want to notify when Elastic Transcoder has started to process the job. </li> <li>  <b>Complete</b> (optional): The Amazon SNS topic that you want to notify when Elastic Transcoder has finished processing the job. </li> <li>  <b>Warning</b> (optional): The Amazon SNS topic that you want to notify when Elastic Transcoder encounters a warning condition. </li> <li>  <b>Error</b> (optional): The Amazon SNS topic that you want to notify when Elastic Transcoder encounters an error condition. </li> </ul>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Notifications</b>: The Amazon Simple Notification Service (Amazon SNS) topic that you want to notify to report job status. <important> To receive notifications, you must also subscribe to the new topic in the Amazon SNS console. </important> <ul> <li>  <b>Progressing</b> (optional): The Amazon Simple Notification Service (Amazon SNS) topic that you want to notify when Elastic Transcoder has started to process the job. </li> <li>  <b>Complete</b> (optional): The Amazon SNS topic that you want to notify when Elastic Transcoder has finished processing the job. </li> <li>  <b>Warning</b> (optional): The Amazon SNS topic that you want to notify when Elastic Transcoder encounters a warning condition. </li> <li>  <b>Error</b> (optional): The Amazon SNS topic that you want to notify when Elastic Transcoder encounters an error condition. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AwsKmsKeyArn</i> The AWS Key Management Service (AWS KMS) key that you want to use with this pipeline. If you use either <code>s3</code> or <code>s3-aws-kms</code> as your <code>Encryption:Mode</code>, you don't need to provide a key with your job because a default key, known as an AWS-KMS key, is created for you automatically. You need to provide an AWS-KMS key only if you want to use a non-default AWS-KMS key, or if you are using an <code>Encryption:Mode</code> of <code>aes-cbc-pkcs7</code>, <code>aes-ctr</code>, or <code>aes-gcm</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Role</i> The IAM Amazon Resource Name (ARN) for the role that Elastic Transcoder uses to transcode jobs for this pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OutputBucket</i> The Amazon S3 bucket in which you want Elastic Transcoder to save transcoded files, thumbnails, and playlists. Either you specify this value, or you specify both <code>ContentConfig</code> and <code>ThumbnailConfig</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InputBucket</i> The Amazon S3 bucket from which Elastic Transcoder gets media files for transcoding and the graphics files, if any, that you want to use for watermarks.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current status of the pipeline: <ul> <li>  <code>Active</code>: The pipeline is processing jobs. </li> <li>  <code>Paused</code>: The pipeline is not currently processing jobs. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the pipeline. We recommend that the name be unique within the AWS account, but uniqueness is not enforced. Constraints: Maximum 40 characters<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) for the pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The identifier for the pipeline. You use this value to identify the pipeline in which you want to perform a variety of operations, such as creating a job or a preset.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Error</i> The Amazon SNS topic that you want to notify when Elastic Transcoder encounters an error condition.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Warning</i> The Amazon SNS topic that you want to notify when Elastic Transcoder encounters a warning condition.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Completed</i> The Amazon SNS topic that you want to notify when Elastic Transcoder has finished processing the job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Progressing</i> The Amazon Simple Notification Service (Amazon SNS) topic that you want to notify when Elastic Transcoder has started to process the job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Permissions</i> Optional. The <code>Permissions</code> object specifies which users and/or predefined Amazon S3 groups you want to have access to transcoded files and playlists, and the type of access you want them to have. You can grant permissions to a maximum of 30 users and/or predefined Amazon S3 groups. If you include <code>Permissions</code>, Elastic Transcoder grants only the permissions that you specify. It does not grant full permissions to the owner of the role specified by <code>Role</code>. If you want that user to have full control, you must explicitly grant full control to the user.  If you omit <code>Permissions</code>, Elastic Transcoder grants full control over the transcoded files and playlists to the owner of the role specified by <code>Role</code>, and grants no other permissions to any other user or group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageClass</i>  The Amazon S3 storage class, <code>Standard</code> or <code>ReducedRedundancy</code>, that you want Elastic Transcoder to assign to the video files and playlists that it stores in your Amazon S3 bucket. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i>  The Amazon S3 bucket in which you want Elastic Transcoder to save the transcoded files. Specify this value when all of the following are true: <ul> <li> You want to save transcoded files, thumbnails (if any), and playlists (if any) together in one bucket. </li> <li> You do not want to specify the users or groups who have access to the transcoded files, thumbnails, and playlists. </li> <li> You do not want to specify the permissions that Elastic Transcoder grants to the files. </li> <li> You want to associate the transcoded files and thumbnails with the Amazon S3 Standard storage class. </li> </ul> If you want to save transcoded files and playlists in one bucket and thumbnails in another bucket, specify which users can access the transcoded files or the permissions the users have, or change the Amazon S3 storage class, omit OutputBucket and specify values for <code>ContentConfig</code> and <code>ThumbnailConfig</code> instead. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Permissions</i> Optional. The <code>Permissions</code> object specifies which users and/or predefined Amazon S3 groups you want to have access to transcoded files and playlists, and the type of access you want them to have. You can grant permissions to a maximum of 30 users and/or predefined Amazon S3 groups. If you include <code>Permissions</code>, Elastic Transcoder grants only the permissions that you specify. It does not grant full permissions to the owner of the role specified by <code>Role</code>. If you want that user to have full control, you must explicitly grant full control to the user.  If you omit <code>Permissions</code>, Elastic Transcoder grants full control over the transcoded files and playlists to the owner of the role specified by <code>Role</code>, and grants no other permissions to any other user or group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageClass</i>  The Amazon S3 storage class, <code>Standard</code> or <code>ReducedRedundancy</code>, that you want Elastic Transcoder to assign to the video files and playlists that it stores in your Amazon S3 bucket. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i>  The Amazon S3 bucket in which you want Elastic Transcoder to save the transcoded files. Specify this value when all of the following are true: <ul> <li> You want to save transcoded files, thumbnails (if any), and playlists (if any) together in one bucket. </li> <li> You do not want to specify the users or groups who have access to the transcoded files, thumbnails, and playlists. </li> <li> You do not want to specify the permissions that Elastic Transcoder grants to the files. </li> <li> You want to associate the transcoded files and thumbnails with the Amazon S3 Standard storage class. </li> </ul> If you want to save transcoded files and playlists in one bucket and thumbnails in another bucket, specify which users can access the transcoded files or the permissions the users have, or change the Amazon S3 storage class, omit OutputBucket and specify values for <code>ContentConfig</code> and <code>ThumbnailConfig</code> instead. <br/>        """
        pass

    def create_preset(self, Container: str, Name: str, Description: str=None, Video: VideoParameters=None, Audio: AudioParameters=None, Thumbnails: Thumbnails=None) -> CreatePresetResponse:
        r"""The CreatePreset operation creates a preset with settings that you specify. <important> Elastic Transcoder checks the CreatePreset settings to ensure that they meet Elastic Transcoder requirements and to determine whether they comply with H.264 standards. If your settings are not valid for Elastic Transcoder, Elastic Transcoder returns an HTTP 400 response (<code>ValidationException</code>) and does not create the preset. If the settings are valid for Elastic Transcoder but aren't strictly compliant with the H.264 standard, Elastic Transcoder creates the preset and returns a warning message in the response. This helps you determine whether your settings comply with the H.264 standard while giving you greater flexibility with respect to the video that Elastic Transcoder produces. </important> Elastic Transcoder uses the H.264 video-compression format. For more information, see the International Telecommunication Union publication <i>Recommendation ITU-T H.264: Advanced video coding for generic audiovisual services</i>.

        :param self:
        :param Thumbnails:  A section of the request body that specifies the thumbnail parameters, if any.:<br/>Audio:  A section of the request body that specifies the audio parameters.:<br/>Video:  A section of the request body that specifies the video parameters.:<br/>Container:  The container type for the output file. Valid values include <code>flac</code>, <code>flv</code>, <code>fmp4</code>, <code>gif</code>, <code>mp3</code>, <code>mp4</code>, <code>mpg</code>, <code>mxf</code>, <code>oga</code>, <code>ogg</code>, <code>ts</code>, and <code>webm</code>.<br/>Description:  A description of the preset.<br/>Name:  The name of the preset. We recommend that the name be unique within the AWS account, but uniqueness is not enforced.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Watermarks</i> Settings for the size, location, and opacity of graphics that you want Elastic Transcoder to overlay over videos that are transcoded using this preset. You can specify settings for up to four watermarks. Watermarks appear in the specified size and location, and with the specified opacity for the duration of the transcoded video. Watermarks can be in .png or .jpg format. If you want to display a watermark that is not rectangular, use the .png format, which supports transparency. When you create a job that uses this preset, you specify the .png or .jpg graphics that you want Elastic Transcoder to include in the transcoded videos. You can specify fewer graphics in the job than you specify watermark settings in the preset, which allows you to use the same preset for up to four watermarks that have different dimensions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PaddingPolicy</i> When you set <code>PaddingPolicy</code> to <code>Pad</code>, Elastic Transcoder may add black bars to the top and bottom and/or left and right sides of the output video to make the total size of the output video match the values that you specified for <code>MaxWidth</code> and <code>MaxHeight</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SizingPolicy</i> Specify one of the following values to control scaling of the output video: <ul> <li>  <code>Fit</code>: Elastic Transcoder scales the output video so it matches the value that you specified in either <code>MaxWidth</code> or <code>MaxHeight</code> without exceeding the other value. </li> <li>  <code>Fill</code>: Elastic Transcoder scales the output video so it matches the value that you specified in either <code>MaxWidth</code> or <code>MaxHeight</code> and matches or exceeds the other value. Elastic Transcoder centers the output video and then crops it in the dimension (if any) that exceeds the maximum value. </li> <li>  <code>Stretch</code>: Elastic Transcoder stretches the output video to match the values that you specified for <code>MaxWidth</code> and <code>MaxHeight</code>. If the relative proportions of the input video and the output video are different, the output video will be distorted. </li> <li>  <code>Keep</code>: Elastic Transcoder does not scale the output video. If either dimension of the input video exceeds the values that you specified for <code>MaxWidth</code> and <code>MaxHeight</code>, Elastic Transcoder crops the output video. </li> <li>  <code>ShrinkToFit</code>: Elastic Transcoder scales the output video down so that its dimensions match the values that you specified for at least one of <code>MaxWidth</code> and <code>MaxHeight</code> without exceeding either value. If you specify this option, Elastic Transcoder does not scale the video up. </li> <li>  <code>ShrinkToFill</code>: Elastic Transcoder scales the output video down so that its dimensions match the values that you specified for at least one of <code>MaxWidth</code> and <code>MaxHeight</code> without dropping below either value. If you specify this option, Elastic Transcoder does not scale the video up. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DisplayAspectRatio</i> The value that Elastic Transcoder adds to the metadata in the output file.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxHeight</i> The maximum height of the output video in pixels. If you specify <code>auto</code>, Elastic Transcoder uses 1080 (Full HD) as the default value. If you specify a numeric value, enter an even integer between 96 and 3072.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxWidth</i>  The maximum width of the output video in pixels. If you specify <code>auto</code>, Elastic Transcoder uses 1920 (Full HD) as the default value. If you specify a numeric value, enter an even integer between 128 and 4096. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AspectRatio</i> <important> To better control resolution and aspect ratio of output videos, we recommend that you use the values <code>MaxWidth</code>, <code>MaxHeight</code>, <code>SizingPolicy</code>, <code>PaddingPolicy</code>, and <code>DisplayAspectRatio</code> instead of <code>Resolution</code> and <code>AspectRatio</code>. The two groups of settings are mutually exclusive. Do not use them together. </important> The display aspect ratio of the video in the output file. Valid values include:  <code>auto</code>, <code>1:1</code>, <code>4:3</code>, <code>3:2</code>, <code>16:9</code>  If you specify <code>auto</code>, Elastic Transcoder tries to preserve the aspect ratio of the input file. If you specify an aspect ratio for the output file that differs from aspect ratio of the input file, Elastic Transcoder adds pillarboxing (black bars on the sides) or letterboxing (black bars on the top and bottom) to maintain the aspect ratio of the active region of the video.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Resolution</i> <important> To better control resolution and aspect ratio of output videos, we recommend that you use the values <code>MaxWidth</code>, <code>MaxHeight</code>, <code>SizingPolicy</code>, <code>PaddingPolicy</code>, and <code>DisplayAspectRatio</code> instead of <code>Resolution</code> and <code>AspectRatio</code>. The two groups of settings are mutually exclusive. Do not use them together. </important> The width and height of the video in the output file, in pixels. Valid values are <code>auto</code> and <i>width</i> x <i>height</i>: <ul> <li>  <code>auto</code>: Elastic Transcoder attempts to preserve the width and height of the input file, subject to the following rules. </li> <li>  <code> <i>width</i> x <i>height</i> </code>: The width and height of the output video in pixels. </li> </ul> Note the following about specifying the width and height: <ul> <li> The width must be an even integer between 128 and 4096, inclusive. </li> <li> The height must be an even integer between 96 and 3072, inclusive. </li> <li> If you specify a resolution that is less than the resolution of the input file, Elastic Transcoder rescales the output file to the lower resolution. </li> <li> If you specify a resolution that is greater than the resolution of the input file, Elastic Transcoder rescales the output to the higher resolution. </li> <li> We recommend that you specify a resolution for which the product of width and height is less than or equal to the applicable value in the following list (<i>List - Max width x height value</i>): <ul> <li> 1 - 25344 </li> <li> 1b - 25344 </li> <li> 1.1 - 101376 </li> <li> 1.2 - 101376 </li> <li> 1.3 - 101376 </li> <li> 2 - 101376 </li> <li> 2.1 - 202752 </li> <li> 2.2 - 404720 </li> <li> 3 - 404720 </li> <li> 3.1 - 921600 </li> <li> 3.2 - 1310720 </li> <li> 4 - 2097152 </li> <li> 4.1 - 2097152 </li> </ul> </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxFrameRate</i> If you specify <code>auto</code> for <code>FrameRate</code>, Elastic Transcoder uses the frame rate of the input video for the frame rate of the output video. Specify the maximum frame rate that you want Elastic Transcoder to use when the frame rate of the input video is greater than the desired maximum frame rate of the output video. Valid values include: <code>10</code>, <code>15</code>, <code>23.97</code>, <code>24</code>, <code>25</code>, <code>29.97</code>, <code>30</code>, <code>60</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FrameRate</i> The frames per second for the video stream in the output file. Valid values include:  <code>auto</code>, <code>10</code>, <code>15</code>, <code>23.97</code>, <code>24</code>, <code>25</code>, <code>29.97</code>, <code>30</code>, <code>60</code>  If you specify <code>auto</code>, Elastic Transcoder uses the detected frame rate of the input source. If you specify a frame rate, we recommend that you perform the following calculation:  <code>Frame rate = maximum recommended decoding speed in luma samples/second / (width in pixels * height in pixels)</code>  where: <ul> <li>  <i>width in pixels</i> and <i>height in pixels</i> represent the Resolution of the output video. </li> <li>  <i>maximum recommended decoding speed in Luma samples/second</i> is less than or equal to the maximum value listed in the following table, based on the value that you specified for Level. </li> </ul> The maximum recommended decoding speed in Luma samples/second for each level is described in the following list (<i>Level - Decoding speed</i>): <ul> <li> 1 - 380160 </li> <li> 1b - 380160 </li> <li> 1.1 - 76800 </li> <li> 1.2 - 1536000 </li> <li> 1.3 - 3041280 </li> <li> 2 - 3041280 </li> <li> 2.1 - 5068800 </li> <li> 2.2 - 5184000 </li> <li> 3 - 10368000 </li> <li> 3.1 - 27648000 </li> <li> 3.2 - 55296000 </li> <li> 4 - 62914560 </li> <li> 4.1 - 62914560 </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BitRate</i> The bit rate of the video stream in the output file, in kilobits/second. Valid values depend on the values of <code>Level</code> and <code>Profile</code>. If you specify <code>auto</code>, Elastic Transcoder uses the detected bit rate of the input source. If you specify a value other than <code>auto</code>, we recommend that you specify a value less than or equal to the maximum H.264-compliant value listed for your level and profile:  <i>Level - Maximum video bit rate in kilobits/second (baseline and main Profile) : maximum video bit rate in kilobits/second (high Profile)</i>  <ul> <li> 1 - 64 : 80 </li> <li> 1b - 128 : 160 </li> <li> 1.1 - 192 : 240 </li> <li> 1.2 - 384 : 480 </li> <li> 1.3 - 768 : 960 </li> <li> 2 - 2000 : 2500 </li> <li> 3 - 10000 : 12500 </li> <li> 3.1 - 14000 : 17500 </li> <li> 3.2 - 20000 : 25000 </li> <li> 4 - 20000 : 25000 </li> <li> 4.1 - 50000 : 62500 </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FixedGOP</i> Applicable only when the value of Video:Codec is one of <code>H.264</code>, <code>MPEG2</code>, or <code>VP8</code>. Whether to use a fixed value for <code>FixedGOP</code>. Valid values are <code>true</code> and <code>false</code>: <ul> <li>  <code>true</code>: Elastic Transcoder uses the value of <code>KeyframesMaxDist</code> for the distance between key frames (the number of frames in a group of pictures, or GOP). </li> <li>  <code>false</code>: The distance between key frames can vary. </li> </ul> <important>  <code>FixedGOP</code> must be set to <code>true</code> for <code>fmp4</code> containers. </important><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KeyframesMaxDist</i> Applicable only when the value of Video:Codec is one of <code>H.264</code>, <code>MPEG2</code>, or <code>VP8</code>. The maximum number of frames between key frames. Key frames are fully encoded frames; the frames between key frames are encoded based, in part, on the content of the key frames. The value is an integer formatted as a string; valid values are between 1 (every frame is a key frame) and 100000, inclusive. A higher value results in higher compression but may also discernibly decrease video quality. For <code>Smooth</code> outputs, the <code>FrameRate</code> must have a constant ratio to the <code>KeyframesMaxDist</code>. This allows <code>Smooth</code> playlists to switch between different quality levels while the file is being played. For example, an input file can have a <code>FrameRate</code> of 30 with a <code>KeyframesMaxDist</code> of 90. The output file then needs to have a ratio of 1:3. Valid outputs would have <code>FrameRate</code> of 30, 25, and 10, and <code>KeyframesMaxDist</code> of 90, 75, and 30, respectively. Alternately, this can be achieved by setting <code>FrameRate</code> to auto and having the same values for <code>MaxFrameRate</code> and <code>KeyframesMaxDist</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CodecOptions</i>  <b>Profile (H.264/VP8/VP9 Only)</b>  The H.264 profile that you want to use for the output file. Elastic Transcoder supports the following profiles: <ul> <li>  <code>baseline</code>: The profile most commonly used for videoconferencing and for mobile applications. </li> <li>  <code>main</code>: The profile used for standard-definition digital TV broadcasts. </li> <li>  <code>high</code>: The profile used for high-definition digital TV broadcasts and for Blu-ray discs. </li> </ul>  <b>Level (H.264 Only)</b>  The H.264 level that you want to use for the output file. Elastic Transcoder supports the following levels:  <code>1</code>, <code>1b</code>, <code>1.1</code>, <code>1.2</code>, <code>1.3</code>, <code>2</code>, <code>2.1</code>, <code>2.2</code>, <code>3</code>, <code>3.1</code>, <code>3.2</code>, <code>4</code>, <code>4.1</code>   <b>MaxReferenceFrames (H.264 Only)</b>  Applicable only when the value of Video:Codec is H.264. The maximum number of previously decoded frames to use as a reference for decoding future frames. Valid values are integers 0 through 16, but we recommend that you not use a value greater than the following:  <code>Min(Floor(Maximum decoded picture buffer in macroblocks * 256 / (Width in pixels * Height in pixels)), 16)</code>  where <i>Width in pixels</i> and <i>Height in pixels</i> represent either MaxWidth and MaxHeight, or Resolution. <i>Maximum decoded picture buffer in macroblocks</i> depends on the value of the <code>Level</code> object. See the list below. (A macroblock is a block of pixels measuring 16x16.)  <ul> <li> 1 - 396 </li> <li> 1b - 396 </li> <li> 1.1 - 900 </li> <li> 1.2 - 2376 </li> <li> 1.3 - 2376 </li> <li> 2 - 2376 </li> <li> 2.1 - 4752 </li> <li> 2.2 - 8100 </li> <li> 3 - 8100 </li> <li> 3.1 - 18000 </li> <li> 3.2 - 20480 </li> <li> 4 - 32768 </li> <li> 4.1 - 32768 </li> </ul>  <b>MaxBitRate (Optional, H.264/MPEG2/VP8/VP9 only)</b>  The maximum number of bits per second in a video buffer; the size of the buffer is specified by <code>BufferSize</code>. Specify a value between 16 and 62,500. You can reduce the bandwidth required to stream a video by reducing the maximum bit rate, but this also reduces the quality of the video.  <b>BufferSize (Optional, H.264/MPEG2/VP8/VP9 only)</b>  The maximum number of bits in any x seconds of the output video. This window is commonly 10 seconds, the standard segment duration when you're using FMP4 or MPEG-TS for the container type of the output video. Specify an integer greater than 0. If you specify <code>MaxBitRate</code> and omit <code>BufferSize</code>, Elastic Transcoder sets <code>BufferSize</code> to 10 times the value of <code>MaxBitRate</code>.  <b>InterlacedMode (Optional, H.264/MPEG2 Only)</b>  The interlace mode for the output video. Interlaced video is used to double the perceived frame rate for a video by interlacing two fields (one field on every other line, the other field on the other lines) so that the human eye registers multiple pictures per frame. Interlacing reduces the bandwidth required for transmitting a video, but can result in blurred images and flickering. Valid values include <code>Progressive</code> (no interlacing, top to bottom), <code>TopFirst</code> (top field first), <code>BottomFirst</code> (bottom field first), and <code>Auto</code>. If <code>InterlaceMode</code> is not specified, Elastic Transcoder uses <code>Progressive</code> for the output. If <code>Auto</code> is specified, Elastic Transcoder interlaces the output.  <b>ColorSpaceConversionMode (Optional, H.264/MPEG2 Only)</b>  The color space conversion Elastic Transcoder applies to the output video. Color spaces are the algorithms used by the computer to store information about how to render color. <code>Bt.601</code> is the standard for standard definition video, while <code>Bt.709</code> is the standard for high definition video. Valid values include <code>None</code>, <code>Bt709toBt601</code>, <code>Bt601toBt709</code>, and <code>Auto</code>. If you chose <code>Auto</code> for <code>ColorSpaceConversionMode</code> and your output is interlaced, your frame rate is one of <code>23.97</code>, <code>24</code>, <code>25</code>, <code>29.97</code>, <code>50</code>, or <code>60</code>, your <code>SegmentDuration</code> is null, and you are using one of the resolution changes from the list below, Elastic Transcoder applies the following color space conversions: <ul> <li>  <i>Standard to HD, 720x480 to 1920x1080</i> - Elastic Transcoder applies <code>Bt601ToBt709</code>  </li> <li>  <i>Standard to HD, 720x576 to 1920x1080</i> - Elastic Transcoder applies <code>Bt601ToBt709</code>  </li> <li>  <i>HD to Standard, 1920x1080 to 720x480</i> - Elastic Transcoder applies <code>Bt709ToBt601</code>  </li> <li>  <i>HD to Standard, 1920x1080 to 720x576</i> - Elastic Transcoder applies <code>Bt709ToBt601</code>  </li> </ul> <note> Elastic Transcoder may change the behavior of the <code>ColorspaceConversionMode</code> <code>Auto</code> mode in the future. All outputs in a playlist must use the same <code>ColorSpaceConversionMode</code>. </note> If you do not specify a <code>ColorSpaceConversionMode</code>, Elastic Transcoder does not change the color space of a file. If you are unsure what <code>ColorSpaceConversionMode</code> was applied to your output file, you can check the <code>AppliedColorSpaceConversion</code> parameter included in your job response. If your job does not have an <code>AppliedColorSpaceConversion</code> in its response, no <code>ColorSpaceConversionMode</code> was applied.  <b>ChromaSubsampling</b>  The sampling pattern for the chroma (color) channels of the output video. Valid values include <code>yuv420p</code> and <code>yuv422p</code>.  <code>yuv420p</code> samples the chroma information of every other horizontal and every other vertical line, <code>yuv422p</code> samples the color information of every horizontal line and every other vertical line.  <b>LoopCount (Gif Only)</b>  The number of times you want the output gif to loop. Valid values include <code>Infinite</code> and integers between <code>0</code> and <code>100</code>, inclusive.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Codec</i> The video codec for the output file. Valid values include <code>gif</code>, <code>H.264</code>, <code>mpeg2</code>, <code>vp8</code>, and <code>vp9</code>. You can only specify <code>vp8</code> and <code>vp9</code> when the container type is <code>webm</code>, <code>gif</code> when the container type is <code>gif</code>, and <code>mpeg2</code> when the container type is <code>mpg</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CodecOptions</i> If you specified <code>AAC</code> for <code>Audio:Codec</code>, this is the <code>AAC</code> compression profile to use. Valid values include:  <code>auto</code>, <code>AAC-LC</code>, <code>HE-AAC</code>, <code>HE-AACv2</code>  If you specify <code>auto</code>, Elastic Transcoder chooses a profile based on the bit rate of the output file.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CodecOptions</b>: If you specified <code>AAC</code> for <code>Audio:Codec</code>, this is the <code>AAC</code> compression profile to use. Valid values include:  <code>auto</code>, <code>AAC-LC</code>, <code>HE-AAC</code>, <code>HE-AACv2</code>  If you specify <code>auto</code>, Elastic Transcoder chooses a profile based on the bit rate of the output file.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AudioPackingMode</i> The method of organizing audio channels and tracks. Use <code>Audio:Channels</code> to specify the number of channels in your output, and <code>Audio:AudioPackingMode</code> to specify the number of tracks and their relation to the channels. If you do not specify an <code>Audio:AudioPackingMode</code>, Elastic Transcoder uses <code>SingleTrack</code>. The following values are valid:  <code>SingleTrack</code>, <code>OneChannelPerTrack</code>, and <code>OneChannelPerTrackWithMosTo8Tracks</code>  When you specify <code>SingleTrack</code>, Elastic Transcoder creates a single track for your output. The track can have up to eight channels. Use <code>SingleTrack</code> for all non-<code>mxf</code> containers. The outputs of <code>SingleTrack</code> for a specific channel value and inputs are as follows: <ul> <li>  <code>0</code> <b> channels with any input:</b> Audio omitted from the output </li> <li>  <code>1, 2, or auto </code> <b>channels with no audio input:</b> Audio omitted from the output </li> <li>  <code>1 </code> <b>channel with any input with audio:</b> One track with one channel, downmixed if necessary </li> <li>  <code>2 </code> <b>channels with one track with one channel:</b> One track with two identical channels </li> <li>  <code>2 or auto </code> <b>channels with two tracks with one channel each:</b> One track with two channels </li> <li>  <code>2 or auto </code> <b>channels with one track with two channels:</b> One track with two channels </li> <li>  <code>2 </code> <b>channels with one track with multiple channels:</b> One track with two channels </li> <li>  <code>auto </code> <b>channels with one track with one channel:</b> One track with one channel </li> <li>  <code>auto </code> <b>channels with one track with multiple channels:</b> One track with multiple channels </li> </ul> When you specify <code>OneChannelPerTrack</code>, Elastic Transcoder creates a new track for every channel in your output. Your output can have up to eight single-channel tracks. The outputs of <code>OneChannelPerTrack</code> for a specific channel value and inputs are as follows: <ul> <li>  <code>0 </code> <b>channels with any input:</b> Audio omitted from the output </li> <li>  <code>1, 2, or auto </code> <b>channels with no audio input:</b> Audio omitted from the output </li> <li>  <code>1 </code> <b>channel with any input with audio:</b> One track with one channel, downmixed if necessary </li> <li>  <code>2 </code> <b>channels with one track with one channel:</b> Two tracks with one identical channel each </li> <li>  <code>2 or auto </code> <b>channels with two tracks with one channel each:</b> Two tracks with one channel each </li> <li>  <code>2 or auto </code> <b>channels with one track with two channels:</b> Two tracks with one channel each </li> <li>  <code>2 </code> <b>channels with one track with multiple channels:</b> Two tracks with one channel each </li> <li>  <code>auto </code> <b>channels with one track with one channel:</b> One track with one channel </li> <li>  <code>auto </code> <b>channels with one track with multiple channels:</b> Up to eight tracks with one channel each </li> </ul> When you specify <code>OneChannelPerTrackWithMosTo8Tracks</code>, Elastic Transcoder creates eight single-channel tracks for your output. All tracks that do not contain audio data from an input channel are MOS, or Mit Out Sound, tracks. The outputs of <code>OneChannelPerTrackWithMosTo8Tracks</code> for a specific channel value and inputs are as follows: <ul> <li>  <code>0 </code> <b>channels with any input:</b> Audio omitted from the output </li> <li>  <code>1, 2, or auto </code> <b>channels with no audio input:</b> Audio omitted from the output </li> <li>  <code>1 </code> <b>channel with any input with audio:</b> One track with one channel, downmixed if necessary, plus six MOS tracks </li> <li>  <code>2 </code> <b>channels with one track with one channel:</b> Two tracks with one identical channel each, plus six MOS tracks </li> <li>  <code>2 or auto </code> <b>channels with two tracks with one channel each:</b> Two tracks with one channel each, plus six MOS tracks </li> <li>  <code>2 or auto </code> <b>channels with one track with two channels:</b> Two tracks with one channel each, plus six MOS tracks </li> <li>  <code>2 </code> <b>channels with one track with multiple channels:</b> Two tracks with one channel each, plus six MOS tracks </li> <li>  <code>auto </code> <b>channels with one track with one channel:</b> One track with one channel, plus seven MOS tracks </li> <li>  <code>auto </code> <b>channels with one track with multiple channels:</b> Up to eight tracks with one channel each, plus MOS tracks until there are eight tracks in all </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Channels</i> The number of audio channels in the output file. The following values are valid:  <code>auto</code>, <code>0</code>, <code>1</code>, <code>2</code>  One channel carries the information played by a single speaker. For example, a stereo track with two channels sends one channel to the left speaker, and the other channel to the right speaker. The output channels are organized into tracks. If you want Elastic Transcoder to automatically detect the number of audio channels in the input file and use that value for the output file, select <code>auto</code>. The output of a specific channel value and inputs are as follows: <ul> <li>  <code>auto</code> <b> channel specified, with any input:</b> Pass through up to eight input channels. </li> <li>  <code>0</code> <b> channels specified, with any input:</b> Audio omitted from the output. </li> <li>  <code>1</code> <b> channel specified, with at least one input channel:</b> Mono sound. </li> <li>  <code>2</code> <b> channels specified, with any input:</b> Two identical mono channels or stereo. For more information about tracks, see <code>Audio:AudioPackingMode.</code>  </li> </ul>  For more information about how Elastic Transcoder organizes channels and tracks, see <code>Audio:AudioPackingMode</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BitRate</i> The bit rate of the audio stream in the output file, in kilobits/second. Enter an integer between 64 and 320, inclusive.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SampleRate</i> The sample rate of the audio stream in the output file, in Hertz. Valid values include:  <code>auto</code>, <code>22050</code>, <code>32000</code>, <code>44100</code>, <code>48000</code>, <code>96000</code>  If you specify <code>auto</code>, Elastic Transcoder automatically detects the sample rate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Codec</i> The audio codec for the output file. Valid values include <code>aac</code>, <code>flac</code>, <code>mp2</code>, <code>mp3</code>, <code>pcm</code>, and <code>vorbis</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Signed</i> You can only choose whether an audio sample is signed when you specify <code>pcm</code> for the value of Audio:Codec. Whether audio samples are represented with negative and positive numbers (signed) or only positive numbers (unsigned). The supported value is <code>Signed</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BitOrder</i> You can only choose an audio bit order when you specify <code>pcm</code> for the value of Audio:Codec. The order the bits of a PCM sample are stored in. The supported value is <code>LittleEndian</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BitDepth</i> You can only choose an audio bit depth when you specify <code>flac</code> or <code>pcm</code> for the value of Audio:Codec. The bit depth of a sample is how many bits of information are included in the audio samples. The higher the bit depth, the better the audio, but the larger the file. Valid values are <code>16</code> and <code>24</code>. The most common bit depth is <code>24</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Profile</i> You can only choose an audio profile when you specify AAC for the value of Audio:Codec. Specify the AAC profile for the output file. Elastic Transcoder supports the following profiles: <ul> <li>  <code>auto</code>: If you specify <code>auto</code>, Elastic Transcoder selects the profile based on the bit rate selected for the output file. </li> <li>  <code>AAC-LC</code>: The most common AAC profile. Use for bit rates larger than 64 kbps. </li> <li>  <code>HE-AAC</code>: Not supported on some older players and devices. Use for bit rates between 40 and 80 kbps. </li> <li>  <code>HE-AACv2</code>: Not supported on some players and devices. Use for bit rates less than 48 kbps. </li> </ul> All outputs in a <code>Smooth</code> playlist must have the same value for <code>Profile</code>. <note> If you created any presets before AAC profiles were added, Elastic Transcoder automatically updated your presets to use AAC-LC. You can change the value as required. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PaddingPolicy</i> When you set <code>PaddingPolicy</code> to <code>Pad</code>, Elastic Transcoder may add black bars to the top and bottom and/or left and right sides of thumbnails to make the total size of the thumbnails match the values that you specified for thumbnail <code>MaxWidth</code> and <code>MaxHeight</code> settings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SizingPolicy</i> Specify one of the following values to control scaling of thumbnails: <ul> <li>  <code>Fit</code>: Elastic Transcoder scales thumbnails so they match the value that you specified in thumbnail MaxWidth or MaxHeight settings without exceeding the other value.  </li> <li>  <code>Fill</code>: Elastic Transcoder scales thumbnails so they match the value that you specified in thumbnail <code>MaxWidth</code> or <code>MaxHeight</code> settings and matches or exceeds the other value. Elastic Transcoder centers the image in thumbnails and then crops in the dimension (if any) that exceeds the maximum value. </li> <li>  <code>Stretch</code>: Elastic Transcoder stretches thumbnails to match the values that you specified for thumbnail <code>MaxWidth</code> and <code>MaxHeight</code> settings. If the relative proportions of the input video and thumbnails are different, the thumbnails will be distorted. </li> <li>  <code>Keep</code>: Elastic Transcoder does not scale thumbnails. If either dimension of the input video exceeds the values that you specified for thumbnail <code>MaxWidth</code> and <code>MaxHeight</code> settings, Elastic Transcoder crops the thumbnails. </li> <li>  <code>ShrinkToFit</code>: Elastic Transcoder scales thumbnails down so that their dimensions match the values that you specified for at least one of thumbnail <code>MaxWidth</code> and <code>MaxHeight</code> without exceeding either value. If you specify this option, Elastic Transcoder does not scale thumbnails up. </li> <li>  <code>ShrinkToFill</code>: Elastic Transcoder scales thumbnails down so that their dimensions match the values that you specified for at least one of <code>MaxWidth</code> and <code>MaxHeight</code> without dropping below either value. If you specify this option, Elastic Transcoder does not scale thumbnails up. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxHeight</i> The maximum height of thumbnails in pixels. If you specify auto, Elastic Transcoder uses 1080 (Full HD) as the default value. If you specify a numeric value, enter an even integer between 32 and 3072.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxWidth</i> The maximum width of thumbnails in pixels. If you specify auto, Elastic Transcoder uses 1920 (Full HD) as the default value. If you specify a numeric value, enter an even integer between 32 and 4096.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AspectRatio</i> <important> To better control resolution and aspect ratio of thumbnails, we recommend that you use the values <code>MaxWidth</code>, <code>MaxHeight</code>, <code>SizingPolicy</code>, and <code>PaddingPolicy</code> instead of <code>Resolution</code> and <code>AspectRatio</code>. The two groups of settings are mutually exclusive. Do not use them together. </important> The aspect ratio of thumbnails. Valid values include:  <code>auto</code>, <code>1:1</code>, <code>4:3</code>, <code>3:2</code>, <code>16:9</code>  If you specify <code>auto</code>, Elastic Transcoder tries to preserve the aspect ratio of the video in the output file.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Resolution</i> <important> To better control resolution and aspect ratio of thumbnails, we recommend that you use the values <code>MaxWidth</code>, <code>MaxHeight</code>, <code>SizingPolicy</code>, and <code>PaddingPolicy</code> instead of <code>Resolution</code> and <code>AspectRatio</code>. The two groups of settings are mutually exclusive. Do not use them together. </important> The width and height of thumbnail files in pixels. Specify a value in the format <code> <i>width</i> </code> x <code> <i>height</i> </code> where both values are even integers. The values cannot exceed the width and height that you specified in the <code>Video:Resolution</code> object.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Interval</i> The approximate number of seconds between thumbnails. Specify an integer value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Format</i> The format of thumbnails, if any. Valid values are <code>jpg</code> and <code>png</code>.  You specify whether you want Elastic Transcoder to create thumbnails when you create a job.<br/>
        :return: Warning:  If the preset settings don't comply with the standards for the video codec but Elastic Transcoder created the preset, this message explains the reason the preset settings don't meet the standard. Elastic Transcoder created the preset because the settings might produce acceptable output.<br/>Preset:  A section of the response body that provides information about the preset that is created.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> Whether the preset is a default preset provided by Elastic Transcoder (<code>System</code>) or a preset that you have defined (<code>Custom</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Thumbnails</i> A section of the response body that provides information about the thumbnail preset values, if any.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Thumbnails</b>: A section of the response body that provides information about the thumbnail preset values, if any.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Video</i> A section of the response body that provides information about the video preset values.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Video</b>: A section of the response body that provides information about the video preset values.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Audio</i> A section of the response body that provides information about the audio preset values.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Audio</b>: A section of the response body that provides information about the audio preset values.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Container</i> The container type for the output file. Valid values include <code>flac</code>, <code>flv</code>, <code>fmp4</code>, <code>gif</code>, <code>mp3</code>, <code>mp4</code>, <code>mpg</code>, <code>mxf</code>, <code>oga</code>, <code>ogg</code>, <code>ts</code>, and <code>webm</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A description of the preset.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the preset.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) for the preset.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> Identifier for the new preset. You use this value to get settings for the preset or to delete it.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AudioPackingMode</i> The method of organizing audio channels and tracks. Use <code>Audio:Channels</code> to specify the number of channels in your output, and <code>Audio:AudioPackingMode</code> to specify the number of tracks and their relation to the channels. If you do not specify an <code>Audio:AudioPackingMode</code>, Elastic Transcoder uses <code>SingleTrack</code>. The following values are valid:  <code>SingleTrack</code>, <code>OneChannelPerTrack</code>, and <code>OneChannelPerTrackWithMosTo8Tracks</code>  When you specify <code>SingleTrack</code>, Elastic Transcoder creates a single track for your output. The track can have up to eight channels. Use <code>SingleTrack</code> for all non-<code>mxf</code> containers. The outputs of <code>SingleTrack</code> for a specific channel value and inputs are as follows: <ul> <li>  <code>0</code> <b> channels with any input:</b> Audio omitted from the output </li> <li>  <code>1, 2, or auto </code> <b>channels with no audio input:</b> Audio omitted from the output </li> <li>  <code>1 </code> <b>channel with any input with audio:</b> One track with one channel, downmixed if necessary </li> <li>  <code>2 </code> <b>channels with one track with one channel:</b> One track with two identical channels </li> <li>  <code>2 or auto </code> <b>channels with two tracks with one channel each:</b> One track with two channels </li> <li>  <code>2 or auto </code> <b>channels with one track with two channels:</b> One track with two channels </li> <li>  <code>2 </code> <b>channels with one track with multiple channels:</b> One track with two channels </li> <li>  <code>auto </code> <b>channels with one track with one channel:</b> One track with one channel </li> <li>  <code>auto </code> <b>channels with one track with multiple channels:</b> One track with multiple channels </li> </ul> When you specify <code>OneChannelPerTrack</code>, Elastic Transcoder creates a new track for every channel in your output. Your output can have up to eight single-channel tracks. The outputs of <code>OneChannelPerTrack</code> for a specific channel value and inputs are as follows: <ul> <li>  <code>0 </code> <b>channels with any input:</b> Audio omitted from the output </li> <li>  <code>1, 2, or auto </code> <b>channels with no audio input:</b> Audio omitted from the output </li> <li>  <code>1 </code> <b>channel with any input with audio:</b> One track with one channel, downmixed if necessary </li> <li>  <code>2 </code> <b>channels with one track with one channel:</b> Two tracks with one identical channel each </li> <li>  <code>2 or auto </code> <b>channels with two tracks with one channel each:</b> Two tracks with one channel each </li> <li>  <code>2 or auto </code> <b>channels with one track with two channels:</b> Two tracks with one channel each </li> <li>  <code>2 </code> <b>channels with one track with multiple channels:</b> Two tracks with one channel each </li> <li>  <code>auto </code> <b>channels with one track with one channel:</b> One track with one channel </li> <li>  <code>auto </code> <b>channels with one track with multiple channels:</b> Up to eight tracks with one channel each </li> </ul> When you specify <code>OneChannelPerTrackWithMosTo8Tracks</code>, Elastic Transcoder creates eight single-channel tracks for your output. All tracks that do not contain audio data from an input channel are MOS, or Mit Out Sound, tracks. The outputs of <code>OneChannelPerTrackWithMosTo8Tracks</code> for a specific channel value and inputs are as follows: <ul> <li>  <code>0 </code> <b>channels with any input:</b> Audio omitted from the output </li> <li>  <code>1, 2, or auto </code> <b>channels with no audio input:</b> Audio omitted from the output </li> <li>  <code>1 </code> <b>channel with any input with audio:</b> One track with one channel, downmixed if necessary, plus six MOS tracks </li> <li>  <code>2 </code> <b>channels with one track with one channel:</b> Two tracks with one identical channel each, plus six MOS tracks </li> <li>  <code>2 or auto </code> <b>channels with two tracks with one channel each:</b> Two tracks with one channel each, plus six MOS tracks </li> <li>  <code>2 or auto </code> <b>channels with one track with two channels:</b> Two tracks with one channel each, plus six MOS tracks </li> <li>  <code>2 </code> <b>channels with one track with multiple channels:</b> Two tracks with one channel each, plus six MOS tracks </li> <li>  <code>auto </code> <b>channels with one track with one channel:</b> One track with one channel, plus seven MOS tracks </li> <li>  <code>auto </code> <b>channels with one track with multiple channels:</b> Up to eight tracks with one channel each, plus MOS tracks until there are eight tracks in all </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Channels</i> The number of audio channels in the output file. The following values are valid:  <code>auto</code>, <code>0</code>, <code>1</code>, <code>2</code>  One channel carries the information played by a single speaker. For example, a stereo track with two channels sends one channel to the left speaker, and the other channel to the right speaker. The output channels are organized into tracks. If you want Elastic Transcoder to automatically detect the number of audio channels in the input file and use that value for the output file, select <code>auto</code>. The output of a specific channel value and inputs are as follows: <ul> <li>  <code>auto</code> <b> channel specified, with any input:</b> Pass through up to eight input channels. </li> <li>  <code>0</code> <b> channels specified, with any input:</b> Audio omitted from the output. </li> <li>  <code>1</code> <b> channel specified, with at least one input channel:</b> Mono sound. </li> <li>  <code>2</code> <b> channels specified, with any input:</b> Two identical mono channels or stereo. For more information about tracks, see <code>Audio:AudioPackingMode.</code>  </li> </ul>  For more information about how Elastic Transcoder organizes channels and tracks, see <code>Audio:AudioPackingMode</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BitRate</i> The bit rate of the audio stream in the output file, in kilobits/second. Enter an integer between 64 and 320, inclusive.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SampleRate</i> The sample rate of the audio stream in the output file, in Hertz. Valid values include:  <code>auto</code>, <code>22050</code>, <code>32000</code>, <code>44100</code>, <code>48000</code>, <code>96000</code>  If you specify <code>auto</code>, Elastic Transcoder automatically detects the sample rate.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Codec</i> The audio codec for the output file. Valid values include <code>aac</code>, <code>flac</code>, <code>mp2</code>, <code>mp3</code>, <code>pcm</code>, and <code>vorbis</code>.<br/>If you specified <code>AAC</code> for <code>Audio:Codec</code>, this is the <code>AAC</code> compression profile to use. Valid values include:  <code>auto</code>, <code>AAC-LC</code>, <code>HE-AAC</code>, <code>HE-AACv2</code>  If you specify <code>auto</code>, Elastic Transcoder chooses a profile based on the bit rate of the output file.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CodecOptions</b>: If you specified <code>AAC</code> for <code>Audio:Codec</code>, this is the <code>AAC</code> compression profile to use. Valid values include:  <code>auto</code>, <code>AAC-LC</code>, <code>HE-AAC</code>, <code>HE-AACv2</code>  If you specify <code>auto</code>, Elastic Transcoder chooses a profile based on the bit rate of the output file.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Watermarks</i> Settings for the size, location, and opacity of graphics that you want Elastic Transcoder to overlay over videos that are transcoded using this preset. You can specify settings for up to four watermarks. Watermarks appear in the specified size and location, and with the specified opacity for the duration of the transcoded video. Watermarks can be in .png or .jpg format. If you want to display a watermark that is not rectangular, use the .png format, which supports transparency. When you create a job that uses this preset, you specify the .png or .jpg graphics that you want Elastic Transcoder to include in the transcoded videos. You can specify fewer graphics in the job than you specify watermark settings in the preset, which allows you to use the same preset for up to four watermarks that have different dimensions.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PaddingPolicy</i> When you set <code>PaddingPolicy</code> to <code>Pad</code>, Elastic Transcoder may add black bars to the top and bottom and/or left and right sides of the output video to make the total size of the output video match the values that you specified for <code>MaxWidth</code> and <code>MaxHeight</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SizingPolicy</i> Specify one of the following values to control scaling of the output video: <ul> <li>  <code>Fit</code>: Elastic Transcoder scales the output video so it matches the value that you specified in either <code>MaxWidth</code> or <code>MaxHeight</code> without exceeding the other value. </li> <li>  <code>Fill</code>: Elastic Transcoder scales the output video so it matches the value that you specified in either <code>MaxWidth</code> or <code>MaxHeight</code> and matches or exceeds the other value. Elastic Transcoder centers the output video and then crops it in the dimension (if any) that exceeds the maximum value. </li> <li>  <code>Stretch</code>: Elastic Transcoder stretches the output video to match the values that you specified for <code>MaxWidth</code> and <code>MaxHeight</code>. If the relative proportions of the input video and the output video are different, the output video will be distorted. </li> <li>  <code>Keep</code>: Elastic Transcoder does not scale the output video. If either dimension of the input video exceeds the values that you specified for <code>MaxWidth</code> and <code>MaxHeight</code>, Elastic Transcoder crops the output video. </li> <li>  <code>ShrinkToFit</code>: Elastic Transcoder scales the output video down so that its dimensions match the values that you specified for at least one of <code>MaxWidth</code> and <code>MaxHeight</code> without exceeding either value. If you specify this option, Elastic Transcoder does not scale the video up. </li> <li>  <code>ShrinkToFill</code>: Elastic Transcoder scales the output video down so that its dimensions match the values that you specified for at least one of <code>MaxWidth</code> and <code>MaxHeight</code> without dropping below either value. If you specify this option, Elastic Transcoder does not scale the video up. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DisplayAspectRatio</i> The value that Elastic Transcoder adds to the metadata in the output file.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxHeight</i> The maximum height of the output video in pixels. If you specify <code>auto</code>, Elastic Transcoder uses 1080 (Full HD) as the default value. If you specify a numeric value, enter an even integer between 96 and 3072.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxWidth</i>  The maximum width of the output video in pixels. If you specify <code>auto</code>, Elastic Transcoder uses 1920 (Full HD) as the default value. If you specify a numeric value, enter an even integer between 128 and 4096. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AspectRatio</i> <important> To better control resolution and aspect ratio of output videos, we recommend that you use the values <code>MaxWidth</code>, <code>MaxHeight</code>, <code>SizingPolicy</code>, <code>PaddingPolicy</code>, and <code>DisplayAspectRatio</code> instead of <code>Resolution</code> and <code>AspectRatio</code>. The two groups of settings are mutually exclusive. Do not use them together. </important> The display aspect ratio of the video in the output file. Valid values include:  <code>auto</code>, <code>1:1</code>, <code>4:3</code>, <code>3:2</code>, <code>16:9</code>  If you specify <code>auto</code>, Elastic Transcoder tries to preserve the aspect ratio of the input file. If you specify an aspect ratio for the output file that differs from aspect ratio of the input file, Elastic Transcoder adds pillarboxing (black bars on the sides) or letterboxing (black bars on the top and bottom) to maintain the aspect ratio of the active region of the video.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Resolution</i> <important> To better control resolution and aspect ratio of output videos, we recommend that you use the values <code>MaxWidth</code>, <code>MaxHeight</code>, <code>SizingPolicy</code>, <code>PaddingPolicy</code>, and <code>DisplayAspectRatio</code> instead of <code>Resolution</code> and <code>AspectRatio</code>. The two groups of settings are mutually exclusive. Do not use them together. </important> The width and height of the video in the output file, in pixels. Valid values are <code>auto</code> and <i>width</i> x <i>height</i>: <ul> <li>  <code>auto</code>: Elastic Transcoder attempts to preserve the width and height of the input file, subject to the following rules. </li> <li>  <code> <i>width</i> x <i>height</i> </code>: The width and height of the output video in pixels. </li> </ul> Note the following about specifying the width and height: <ul> <li> The width must be an even integer between 128 and 4096, inclusive. </li> <li> The height must be an even integer between 96 and 3072, inclusive. </li> <li> If you specify a resolution that is less than the resolution of the input file, Elastic Transcoder rescales the output file to the lower resolution. </li> <li> If you specify a resolution that is greater than the resolution of the input file, Elastic Transcoder rescales the output to the higher resolution. </li> <li> We recommend that you specify a resolution for which the product of width and height is less than or equal to the applicable value in the following list (<i>List - Max width x height value</i>): <ul> <li> 1 - 25344 </li> <li> 1b - 25344 </li> <li> 1.1 - 101376 </li> <li> 1.2 - 101376 </li> <li> 1.3 - 101376 </li> <li> 2 - 101376 </li> <li> 2.1 - 202752 </li> <li> 2.2 - 404720 </li> <li> 3 - 404720 </li> <li> 3.1 - 921600 </li> <li> 3.2 - 1310720 </li> <li> 4 - 2097152 </li> <li> 4.1 - 2097152 </li> </ul> </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxFrameRate</i> If you specify <code>auto</code> for <code>FrameRate</code>, Elastic Transcoder uses the frame rate of the input video for the frame rate of the output video. Specify the maximum frame rate that you want Elastic Transcoder to use when the frame rate of the input video is greater than the desired maximum frame rate of the output video. Valid values include: <code>10</code>, <code>15</code>, <code>23.97</code>, <code>24</code>, <code>25</code>, <code>29.97</code>, <code>30</code>, <code>60</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FrameRate</i> The frames per second for the video stream in the output file. Valid values include:  <code>auto</code>, <code>10</code>, <code>15</code>, <code>23.97</code>, <code>24</code>, <code>25</code>, <code>29.97</code>, <code>30</code>, <code>60</code>  If you specify <code>auto</code>, Elastic Transcoder uses the detected frame rate of the input source. If you specify a frame rate, we recommend that you perform the following calculation:  <code>Frame rate = maximum recommended decoding speed in luma samples/second / (width in pixels * height in pixels)</code>  where: <ul> <li>  <i>width in pixels</i> and <i>height in pixels</i> represent the Resolution of the output video. </li> <li>  <i>maximum recommended decoding speed in Luma samples/second</i> is less than or equal to the maximum value listed in the following table, based on the value that you specified for Level. </li> </ul> The maximum recommended decoding speed in Luma samples/second for each level is described in the following list (<i>Level - Decoding speed</i>): <ul> <li> 1 - 380160 </li> <li> 1b - 380160 </li> <li> 1.1 - 76800 </li> <li> 1.2 - 1536000 </li> <li> 1.3 - 3041280 </li> <li> 2 - 3041280 </li> <li> 2.1 - 5068800 </li> <li> 2.2 - 5184000 </li> <li> 3 - 10368000 </li> <li> 3.1 - 27648000 </li> <li> 3.2 - 55296000 </li> <li> 4 - 62914560 </li> <li> 4.1 - 62914560 </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BitRate</i> The bit rate of the video stream in the output file, in kilobits/second. Valid values depend on the values of <code>Level</code> and <code>Profile</code>. If you specify <code>auto</code>, Elastic Transcoder uses the detected bit rate of the input source. If you specify a value other than <code>auto</code>, we recommend that you specify a value less than or equal to the maximum H.264-compliant value listed for your level and profile:  <i>Level - Maximum video bit rate in kilobits/second (baseline and main Profile) : maximum video bit rate in kilobits/second (high Profile)</i>  <ul> <li> 1 - 64 : 80 </li> <li> 1b - 128 : 160 </li> <li> 1.1 - 192 : 240 </li> <li> 1.2 - 384 : 480 </li> <li> 1.3 - 768 : 960 </li> <li> 2 - 2000 : 2500 </li> <li> 3 - 10000 : 12500 </li> <li> 3.1 - 14000 : 17500 </li> <li> 3.2 - 20000 : 25000 </li> <li> 4 - 20000 : 25000 </li> <li> 4.1 - 50000 : 62500 </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FixedGOP</i> Applicable only when the value of Video:Codec is one of <code>H.264</code>, <code>MPEG2</code>, or <code>VP8</code>. Whether to use a fixed value for <code>FixedGOP</code>. Valid values are <code>true</code> and <code>false</code>: <ul> <li>  <code>true</code>: Elastic Transcoder uses the value of <code>KeyframesMaxDist</code> for the distance between key frames (the number of frames in a group of pictures, or GOP). </li> <li>  <code>false</code>: The distance between key frames can vary. </li> </ul> <important>  <code>FixedGOP</code> must be set to <code>true</code> for <code>fmp4</code> containers. </important><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KeyframesMaxDist</i> Applicable only when the value of Video:Codec is one of <code>H.264</code>, <code>MPEG2</code>, or <code>VP8</code>. The maximum number of frames between key frames. Key frames are fully encoded frames; the frames between key frames are encoded based, in part, on the content of the key frames. The value is an integer formatted as a string; valid values are between 1 (every frame is a key frame) and 100000, inclusive. A higher value results in higher compression but may also discernibly decrease video quality. For <code>Smooth</code> outputs, the <code>FrameRate</code> must have a constant ratio to the <code>KeyframesMaxDist</code>. This allows <code>Smooth</code> playlists to switch between different quality levels while the file is being played. For example, an input file can have a <code>FrameRate</code> of 30 with a <code>KeyframesMaxDist</code> of 90. The output file then needs to have a ratio of 1:3. Valid outputs would have <code>FrameRate</code> of 30, 25, and 10, and <code>KeyframesMaxDist</code> of 90, 75, and 30, respectively. Alternately, this can be achieved by setting <code>FrameRate</code> to auto and having the same values for <code>MaxFrameRate</code> and <code>KeyframesMaxDist</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CodecOptions</i>  <b>Profile (H.264/VP8/VP9 Only)</b>  The H.264 profile that you want to use for the output file. Elastic Transcoder supports the following profiles: <ul> <li>  <code>baseline</code>: The profile most commonly used for videoconferencing and for mobile applications. </li> <li>  <code>main</code>: The profile used for standard-definition digital TV broadcasts. </li> <li>  <code>high</code>: The profile used for high-definition digital TV broadcasts and for Blu-ray discs. </li> </ul>  <b>Level (H.264 Only)</b>  The H.264 level that you want to use for the output file. Elastic Transcoder supports the following levels:  <code>1</code>, <code>1b</code>, <code>1.1</code>, <code>1.2</code>, <code>1.3</code>, <code>2</code>, <code>2.1</code>, <code>2.2</code>, <code>3</code>, <code>3.1</code>, <code>3.2</code>, <code>4</code>, <code>4.1</code>   <b>MaxReferenceFrames (H.264 Only)</b>  Applicable only when the value of Video:Codec is H.264. The maximum number of previously decoded frames to use as a reference for decoding future frames. Valid values are integers 0 through 16, but we recommend that you not use a value greater than the following:  <code>Min(Floor(Maximum decoded picture buffer in macroblocks * 256 / (Width in pixels * Height in pixels)), 16)</code>  where <i>Width in pixels</i> and <i>Height in pixels</i> represent either MaxWidth and MaxHeight, or Resolution. <i>Maximum decoded picture buffer in macroblocks</i> depends on the value of the <code>Level</code> object. See the list below. (A macroblock is a block of pixels measuring 16x16.)  <ul> <li> 1 - 396 </li> <li> 1b - 396 </li> <li> 1.1 - 900 </li> <li> 1.2 - 2376 </li> <li> 1.3 - 2376 </li> <li> 2 - 2376 </li> <li> 2.1 - 4752 </li> <li> 2.2 - 8100 </li> <li> 3 - 8100 </li> <li> 3.1 - 18000 </li> <li> 3.2 - 20480 </li> <li> 4 - 32768 </li> <li> 4.1 - 32768 </li> </ul>  <b>MaxBitRate (Optional, H.264/MPEG2/VP8/VP9 only)</b>  The maximum number of bits per second in a video buffer; the size of the buffer is specified by <code>BufferSize</code>. Specify a value between 16 and 62,500. You can reduce the bandwidth required to stream a video by reducing the maximum bit rate, but this also reduces the quality of the video.  <b>BufferSize (Optional, H.264/MPEG2/VP8/VP9 only)</b>  The maximum number of bits in any x seconds of the output video. This window is commonly 10 seconds, the standard segment duration when you're using FMP4 or MPEG-TS for the container type of the output video. Specify an integer greater than 0. If you specify <code>MaxBitRate</code> and omit <code>BufferSize</code>, Elastic Transcoder sets <code>BufferSize</code> to 10 times the value of <code>MaxBitRate</code>.  <b>InterlacedMode (Optional, H.264/MPEG2 Only)</b>  The interlace mode for the output video. Interlaced video is used to double the perceived frame rate for a video by interlacing two fields (one field on every other line, the other field on the other lines) so that the human eye registers multiple pictures per frame. Interlacing reduces the bandwidth required for transmitting a video, but can result in blurred images and flickering. Valid values include <code>Progressive</code> (no interlacing, top to bottom), <code>TopFirst</code> (top field first), <code>BottomFirst</code> (bottom field first), and <code>Auto</code>. If <code>InterlaceMode</code> is not specified, Elastic Transcoder uses <code>Progressive</code> for the output. If <code>Auto</code> is specified, Elastic Transcoder interlaces the output.  <b>ColorSpaceConversionMode (Optional, H.264/MPEG2 Only)</b>  The color space conversion Elastic Transcoder applies to the output video. Color spaces are the algorithms used by the computer to store information about how to render color. <code>Bt.601</code> is the standard for standard definition video, while <code>Bt.709</code> is the standard for high definition video. Valid values include <code>None</code>, <code>Bt709toBt601</code>, <code>Bt601toBt709</code>, and <code>Auto</code>. If you chose <code>Auto</code> for <code>ColorSpaceConversionMode</code> and your output is interlaced, your frame rate is one of <code>23.97</code>, <code>24</code>, <code>25</code>, <code>29.97</code>, <code>50</code>, or <code>60</code>, your <code>SegmentDuration</code> is null, and you are using one of the resolution changes from the list below, Elastic Transcoder applies the following color space conversions: <ul> <li>  <i>Standard to HD, 720x480 to 1920x1080</i> - Elastic Transcoder applies <code>Bt601ToBt709</code>  </li> <li>  <i>Standard to HD, 720x576 to 1920x1080</i> - Elastic Transcoder applies <code>Bt601ToBt709</code>  </li> <li>  <i>HD to Standard, 1920x1080 to 720x480</i> - Elastic Transcoder applies <code>Bt709ToBt601</code>  </li> <li>  <i>HD to Standard, 1920x1080 to 720x576</i> - Elastic Transcoder applies <code>Bt709ToBt601</code>  </li> </ul> <note> Elastic Transcoder may change the behavior of the <code>ColorspaceConversionMode</code> <code>Auto</code> mode in the future. All outputs in a playlist must use the same <code>ColorSpaceConversionMode</code>. </note> If you do not specify a <code>ColorSpaceConversionMode</code>, Elastic Transcoder does not change the color space of a file. If you are unsure what <code>ColorSpaceConversionMode</code> was applied to your output file, you can check the <code>AppliedColorSpaceConversion</code> parameter included in your job response. If your job does not have an <code>AppliedColorSpaceConversion</code> in its response, no <code>ColorSpaceConversionMode</code> was applied.  <b>ChromaSubsampling</b>  The sampling pattern for the chroma (color) channels of the output video. Valid values include <code>yuv420p</code> and <code>yuv422p</code>.  <code>yuv420p</code> samples the chroma information of every other horizontal and every other vertical line, <code>yuv422p</code> samples the color information of every horizontal line and every other vertical line.  <b>LoopCount (Gif Only)</b>  The number of times you want the output gif to loop. Valid values include <code>Infinite</code> and integers between <code>0</code> and <code>100</code>, inclusive.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Codec</i> The video codec for the output file. Valid values include <code>gif</code>, <code>H.264</code>, <code>mpeg2</code>, <code>vp8</code>, and <code>vp9</code>. You can only specify <code>vp8</code> and <code>vp9</code> when the container type is <code>webm</code>, <code>gif</code> when the container type is <code>gif</code>, and <code>mpeg2</code> when the container type is <code>mpg</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PaddingPolicy</i> When you set <code>PaddingPolicy</code> to <code>Pad</code>, Elastic Transcoder may add black bars to the top and bottom and/or left and right sides of thumbnails to make the total size of the thumbnails match the values that you specified for thumbnail <code>MaxWidth</code> and <code>MaxHeight</code> settings.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SizingPolicy</i> Specify one of the following values to control scaling of thumbnails: <ul> <li>  <code>Fit</code>: Elastic Transcoder scales thumbnails so they match the value that you specified in thumbnail MaxWidth or MaxHeight settings without exceeding the other value.  </li> <li>  <code>Fill</code>: Elastic Transcoder scales thumbnails so they match the value that you specified in thumbnail <code>MaxWidth</code> or <code>MaxHeight</code> settings and matches or exceeds the other value. Elastic Transcoder centers the image in thumbnails and then crops in the dimension (if any) that exceeds the maximum value. </li> <li>  <code>Stretch</code>: Elastic Transcoder stretches thumbnails to match the values that you specified for thumbnail <code>MaxWidth</code> and <code>MaxHeight</code> settings. If the relative proportions of the input video and thumbnails are different, the thumbnails will be distorted. </li> <li>  <code>Keep</code>: Elastic Transcoder does not scale thumbnails. If either dimension of the input video exceeds the values that you specified for thumbnail <code>MaxWidth</code> and <code>MaxHeight</code> settings, Elastic Transcoder crops the thumbnails. </li> <li>  <code>ShrinkToFit</code>: Elastic Transcoder scales thumbnails down so that their dimensions match the values that you specified for at least one of thumbnail <code>MaxWidth</code> and <code>MaxHeight</code> without exceeding either value. If you specify this option, Elastic Transcoder does not scale thumbnails up. </li> <li>  <code>ShrinkToFill</code>: Elastic Transcoder scales thumbnails down so that their dimensions match the values that you specified for at least one of <code>MaxWidth</code> and <code>MaxHeight</code> without dropping below either value. If you specify this option, Elastic Transcoder does not scale thumbnails up. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxHeight</i> The maximum height of thumbnails in pixels. If you specify auto, Elastic Transcoder uses 1080 (Full HD) as the default value. If you specify a numeric value, enter an even integer between 32 and 3072.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxWidth</i> The maximum width of thumbnails in pixels. If you specify auto, Elastic Transcoder uses 1920 (Full HD) as the default value. If you specify a numeric value, enter an even integer between 32 and 4096.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AspectRatio</i> <important> To better control resolution and aspect ratio of thumbnails, we recommend that you use the values <code>MaxWidth</code>, <code>MaxHeight</code>, <code>SizingPolicy</code>, and <code>PaddingPolicy</code> instead of <code>Resolution</code> and <code>AspectRatio</code>. The two groups of settings are mutually exclusive. Do not use them together. </important> The aspect ratio of thumbnails. Valid values include:  <code>auto</code>, <code>1:1</code>, <code>4:3</code>, <code>3:2</code>, <code>16:9</code>  If you specify <code>auto</code>, Elastic Transcoder tries to preserve the aspect ratio of the video in the output file.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Resolution</i> <important> To better control resolution and aspect ratio of thumbnails, we recommend that you use the values <code>MaxWidth</code>, <code>MaxHeight</code>, <code>SizingPolicy</code>, and <code>PaddingPolicy</code> instead of <code>Resolution</code> and <code>AspectRatio</code>. The two groups of settings are mutually exclusive. Do not use them together. </important> The width and height of thumbnail files in pixels. Specify a value in the format <code> <i>width</i> </code> x <code> <i>height</i> </code> where both values are even integers. The values cannot exceed the width and height that you specified in the <code>Video:Resolution</code> object.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Interval</i> The approximate number of seconds between thumbnails. Specify an integer value.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Format</i> The format of thumbnails, if any. Valid values are <code>jpg</code> and <code>png</code>.  You specify whether you want Elastic Transcoder to create thumbnails when you create a job.<br/>        """
        pass

    def delete_pipeline(self, Id: str) -> DeletePipelineResponse:
        r"""The DeletePipeline operation removes a pipeline.  You can only delete a pipeline that has never been used or that is not currently in use (doesn't contain any active jobs). If the pipeline is currently in use, <code>DeletePipeline</code> returns an error. 

        :param self:
        :param Id:  The identifier of the pipeline that you want to delete.<br/>
        :return:         """
        pass

    def delete_preset(self, Id: str) -> DeletePresetResponse:
        r"""The DeletePreset operation removes a preset that you've added in an AWS region. <note> You can't delete the default presets that are included with Elastic Transcoder. </note>

        :param self:
        :param Id:  The identifier of the preset for which you want to get detailed information.<br/>
        :return:         """
        pass

    def list_jobs_by_pipeline(self, PipelineId: str, Ascending: str=None, PageToken: str=None) -> ListJobsByPipelineResponse:
        r"""The ListJobsByPipeline operation gets a list of the jobs currently in a pipeline. Elastic Transcoder returns all of the jobs currently in the specified pipeline. The response body contains one element for each job that satisfies the search criteria.

        :param self:
        :param PageToken:   When Elastic Transcoder returns more than one page of results, use <code>pageToken</code> in subsequent <code>GET</code> requests to get each successive page of results. <br/>Ascending:   To list jobs in chronological order by the date and time that they were submitted, enter <code>true</code>. To list jobs in reverse chronological order, enter <code>false</code>. <br/>PipelineId:  The ID of the pipeline for which you want to get job information.<br/>
        :return: NextPageToken:   A value that you use to access the second and subsequent pages of results, if any. When the jobs in the specified pipeline fit on one page or when you've reached the last page of results, the value of <code>NextPageToken</code> is <code>null</code>. <br/>Jobs:  An array of <code>Job</code> objects that are in the specified pipeline.<br/>        """
        pass

    def list_jobs_by_status(self, Status: str, Ascending: str=None, PageToken: str=None) -> ListJobsByStatusResponse:
        r"""The ListJobsByStatus operation gets a list of jobs that have a specified status. The response body contains one element for each job that satisfies the search criteria.

        :param self:
        :param PageToken:   When Elastic Transcoder returns more than one page of results, use <code>pageToken</code> in subsequent <code>GET</code> requests to get each successive page of results. <br/>Ascending:   To list jobs in chronological order by the date and time that they were submitted, enter <code>true</code>. To list jobs in reverse chronological order, enter <code>false</code>. <br/>Status:  To get information about all of the jobs associated with the current AWS account that have a given status, specify the following status: <code>Submitted</code>, <code>Progressing</code>, <code>Complete</code>, <code>Canceled</code>, or <code>Error</code>.<br/>
        :return: NextPageToken:   A value that you use to access the second and subsequent pages of results, if any. When the jobs in the specified pipeline fit on one page or when you've reached the last page of results, the value of <code>NextPageToken</code> is <code>null</code>. <br/>Jobs:  An array of <code>Job</code> objects that have the specified status.<br/>        """
        pass

    def list_pipelines(self, Ascending: str=None, PageToken: str=None) -> ListPipelinesResponse:
        r"""The ListPipelines operation gets a list of the pipelines associated with the current AWS account.

        :param self:
        :param PageToken:  When Elastic Transcoder returns more than one page of results, use <code>pageToken</code> in subsequent <code>GET</code> requests to get each successive page of results. <br/>Ascending:  To list pipelines in chronological order by the date and time that they were created, enter <code>true</code>. To list pipelines in reverse chronological order, enter <code>false</code>.<br/>
        :return: NextPageToken:  A value that you use to access the second and subsequent pages of results, if any. When the pipelines fit on one page or when you've reached the last page of results, the value of <code>NextPageToken</code> is <code>null</code>.<br/>Pipelines:  An array of <code>Pipeline</code> objects.<br/>        """
        pass

    def list_presets(self, Ascending: str=None, PageToken: str=None) -> ListPresetsResponse:
        r"""The ListPresets operation gets a list of the default presets included with Elastic Transcoder and the presets that you've added in an AWS region.

        :param self:
        :param PageToken:  When Elastic Transcoder returns more than one page of results, use <code>pageToken</code> in subsequent <code>GET</code> requests to get each successive page of results. <br/>Ascending:  To list presets in chronological order by the date and time that they were created, enter <code>true</code>. To list presets in reverse chronological order, enter <code>false</code>.<br/>
        :return: NextPageToken:  A value that you use to access the second and subsequent pages of results, if any. When the presets fit on one page or when you've reached the last page of results, the value of <code>NextPageToken</code> is <code>null</code>.<br/>Presets:  An array of <code>Preset</code> objects.<br/>        """
        pass

    def read_job(self, Id: str) -> ReadJobResponse:
        r"""The ReadJob operation returns detailed information about a job.

        :param self:
        :param Id:  The identifier of the job for which you want to get detailed information.<br/>
        :return: Job:  A section of the response body that provides information about the job.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Timing</i> Details about the timing of a job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Timing</b>: Details about the timing of a job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserMetadata</i> User-defined metadata that you want to associate with an Elastic Transcoder job. You specify metadata in <code>key/value</code> pairs, and you can add up to 10 <code>key/value</code> pairs per job. Elastic Transcoder does not guarantee that <code>key/value</code> pairs are returned in the same order in which you specify them. Metadata <code>keys</code> and <code>values</code> must use characters from the following list: <ul> <li>  <code>0-9</code>  </li> <li>  <code>A-Z</code> and <code>a-z</code>  </li> <li>  <code>Space</code>  </li> <li> The following symbols: <code>_.:/=+-%@</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i>  The status of the job: <code>Submitted</code>, <code>Progressing</code>, <code>Complete</code>, <code>Canceled</code>, or <code>Error</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Playlists</i> <important> Outputs in Fragmented MP4 or MPEG-TS format only. </important> If you specify a preset in <code>PresetId</code> for which the value of <code>Container</code> is fmp4 (Fragmented MP4) or ts (MPEG-TS), <code>Playlists</code> contains information about the master playlists that you want Elastic Transcoder to create. The maximum number of master playlists in a job is 30.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OutputKeyPrefix</i> The value, if any, that you want Elastic Transcoder to prepend to the names of all files that this job creates, including output files, thumbnails, and playlists. We recommend that you add a / or some other delimiter to the end of the <code>OutputKeyPrefix</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Outputs</i> Information about the output files. We recommend that you use the <code>Outputs</code> syntax for all jobs, even when you want Elastic Transcoder to transcode a file into only one format. Do not use both the <code>Outputs</code> and <code>Output</code> syntaxes in the same request. You can create a maximum of 30 outputs per job.  If you specify more than one output for a job, Elastic Transcoder creates the files for each output in the order in which you specify them in the job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Output</i> If you specified one output for a job, information about that output. If you specified multiple outputs for a job, the Output object lists information about the first output. This duplicates the information that is listed for the first output in the Outputs object. <important> Outputs recommended instead. </important> A section of the request or response body that provides information about the transcoded (target) file. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Output</b>: If you specified one output for a job, information about that output. If you specified multiple outputs for a job, the Output object lists information about the first output. This duplicates the information that is listed for the first output in the Outputs object. <important> Outputs recommended instead. </important> A section of the request or response body that provides information about the transcoded (target) file. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Inputs</i> Information about the files that you're transcoding. If you specified multiple files for this job, Elastic Transcoder stitches the files together to make one output.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Input</i> A section of the request or response body that provides information about the file that is being transcoded.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Input</b>: A section of the request or response body that provides information about the file that is being transcoded.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PipelineId</i>  The <code>Id</code> of the pipeline that you want Elastic Transcoder to use for transcoding. The pipeline determines several settings, including the Amazon S3 bucket from which Elastic Transcoder gets the files to transcode and the bucket into which Elastic Transcoder puts the transcoded files. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) for the job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The identifier that Elastic Transcoder assigned to the job. You use this value to get settings for the job or to delete the job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Container</i> The container type for the input file. If you want Elastic Transcoder to automatically detect the container type of the input file, specify <code>auto</code>. If you want to specify the container type for the input file, enter one of the following values:   <code>3gp</code>, <code>aac</code>, <code>asf</code>, <code>avi</code>, <code>divx</code>, <code>flv</code>, <code>m4a</code>, <code>mkv</code>, <code>mov</code>, <code>mp3</code>, <code>mp4</code>, <code>mpeg</code>, <code>mpeg-ps</code>, <code>mpeg-ts</code>, <code>mxf</code>, <code>ogg</code>, <code>vob</code>, <code>wav</code>, <code>webm</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Interlaced</i> Whether the input file is interlaced. If you want Elastic Transcoder to automatically detect whether the input file is interlaced, specify <code>auto</code>. If you want to specify whether the input file is interlaced, enter one of the following values:  <code>true</code>, <code>false</code>  If you specify a value other than <code>auto</code>, Elastic Transcoder disables automatic detection of interlacing.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AspectRatio</i>  The aspect ratio of the input file. If you want Elastic Transcoder to automatically detect the aspect ratio of the input file, specify <code>auto</code>. If you want to specify the aspect ratio for the output file, enter one of the following values:   <code>1:1</code>, <code>4:3</code>, <code>3:2</code>, <code>16:9</code>   If you specify a value other than <code>auto</code>, Elastic Transcoder disables automatic detection of the aspect ratio. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Resolution</i> This value must be <code>auto</code>, which causes Elastic Transcoder to automatically detect the resolution of the input file.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FrameRate</i> The frame rate of the input file. If you want Elastic Transcoder to automatically detect the frame rate of the input file, specify <code>auto</code>. If you want to specify the frame rate for the input file, enter one of the following values:   <code>10</code>, <code>15</code>, <code>23.97</code>, <code>24</code>, <code>25</code>, <code>29.97</code>, <code>30</code>, <code>60</code>  If you specify a value other than <code>auto</code>, Elastic Transcoder disables automatic detection of the frame rate.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i>  The name of the file to transcode. Elsewhere in the body of the JSON block is the the ID of the pipeline to use for processing the job. The <code>InputBucket</code> object in that pipeline tells Elastic Transcoder which Amazon S3 bucket to get the file from.  If the file name includes a prefix, such as <code>cooking/lasagna.mpg</code>, include the prefix in the key. If the file isn't in the specified bucket, Elastic Transcoder returns an error.<br/>The encryption settings, if any, that are used for decrypting your input files. If your input file is encrypted, you must specify the mode that Elastic Transcoder uses to decrypt your file.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Encryption</b>: The encryption settings, if any, that are used for decrypting your input files. If your input file is encrypted, you must specify the mode that Elastic Transcoder uses to decrypt your file.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ThumbnailPattern</i> Whether you want Elastic Transcoder to create thumbnails for your videos and, if so, how you want Elastic Transcoder to name the files. If you don't want Elastic Transcoder to create thumbnails, specify "". If you do want Elastic Transcoder to create thumbnails, specify the information that you want to include in the file name for each thumbnail. You can specify the following values in any sequence: <ul> <li>  <b> <code>{count}</code> (Required)</b>: If you want to create thumbnails, you must include <code>{count}</code> in the <code>ThumbnailPattern</code> object. Wherever you specify <code>{count}</code>, Elastic Transcoder adds a five-digit sequence number (beginning with <b>00001</b>) to thumbnail file names. The number indicates where a given thumbnail appears in the sequence of thumbnails for a transcoded file.  <important> If you specify a literal value and/or <code>{resolution}</code> but you omit <code>{count}</code>, Elastic Transcoder returns a validation error and does not create the job. </important> </li> <li>  <b>Literal values (Optional)</b>: You can specify literal values anywhere in the <code>ThumbnailPattern</code> object. For example, you can include them as a file name prefix or as a delimiter between <code>{resolution}</code> and <code>{count}</code>.  </li> <li>  <b> <code>{resolution}</code> (Optional)</b>: If you want Elastic Transcoder to include the resolution in the file name, include <code>{resolution}</code> in the <code>ThumbnailPattern</code> object.  </li> </ul> When creating thumbnails, Elastic Transcoder automatically saves the files in the format (.jpg or .png) that appears in the preset that you specified in the <code>PresetID</code> value of <code>CreateJobOutput</code>. Elastic Transcoder also appends the applicable file name extension.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i>  The name to assign to the transcoded file. Elastic Transcoder saves the file in the Amazon S3 bucket specified by the <code>OutputBucket</code> object in the pipeline that is specified by the pipeline ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> A sequential counter, starting with 1, that identifies an output among the outputs from the current job. In the Output syntax, this value is always 1.<br/>The encryption settings, if any, that you want Elastic Transcoder to apply to your thumbnail.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ThumbnailEncryption</b>: The encryption settings, if any, that you want Elastic Transcoder to apply to your thumbnail.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FinishTimeMillis</i> The time the job finished transcoding, in epoch milliseconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StartTimeMillis</i> The time the job began transcoding, in epoch milliseconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SubmitTimeMillis</i> The time the job was submitted to Elastic Transcoder, in epoch milliseconds.<br/>        """
        pass

    def read_pipeline(self, Id: str) -> ReadPipelineResponse:
        r"""The ReadPipeline operation gets detailed information about a pipeline.

        :param self:
        :param Id:  The identifier of the pipeline to read.<br/>
        :return: Warnings:  Elastic Transcoder returns a warning if the resources used by your pipeline are not in the same region as the pipeline. Using resources in the same region, such as your Amazon S3 buckets, Amazon SNS notification topics, and AWS KMS key, reduces processing time and prevents cross-regional charges.<br/>Pipeline:  A section of the response body that provides information about the pipeline.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ThumbnailConfig</i> Information about the Amazon S3 bucket in which you want Elastic Transcoder to save thumbnail files. Either you specify both <code>ContentConfig</code> and <code>ThumbnailConfig</code>, or you specify <code>OutputBucket</code>. <ul> <li>  <code>Bucket</code>: The Amazon S3 bucket in which you want Elastic Transcoder to save thumbnail files.  </li> <li>  <code>Permissions</code>: A list of the users and/or predefined Amazon S3 groups you want to have access to thumbnail files, and the type of access that you want them to have.  <ul> <li> GranteeType: The type of value that appears in the Grantee object: <ul> <li>  <code>Canonical</code>: Either the canonical user ID for an AWS account or an origin access identity for an Amazon CloudFront distribution. <important> A canonical user ID is not the same as an AWS account number. </important> </li> <li>  <code>Email</code>: The registered email address of an AWS account. </li> <li>  <code>Group</code>: One of the following predefined Amazon S3 groups: <code>AllUsers</code>, <code>AuthenticatedUsers</code>, or <code>LogDelivery</code>. </li> </ul> </li> <li>  <code>Grantee</code>: The AWS user or group that you want to have access to thumbnail files. </li> <li> Access: The permission that you want to give to the AWS user that is listed in Grantee. Valid values include:  <ul> <li>  <code>READ</code>: The grantee can read the thumbnails and metadata for thumbnails that Elastic Transcoder adds to the Amazon S3 bucket. </li> <li>  <code>READ_ACP</code>: The grantee can read the object ACL for thumbnails that Elastic Transcoder adds to the Amazon S3 bucket. </li> <li>  <code>WRITE_ACP</code>: The grantee can write the ACL for the thumbnails that Elastic Transcoder adds to the Amazon S3 bucket. </li> <li>  <code>FULL_CONTROL</code>: The grantee has READ, READ_ACP, and WRITE_ACP permissions for the thumbnails that Elastic Transcoder adds to the Amazon S3 bucket. </li> </ul> </li> </ul> </li> <li>  <code>StorageClass</code>: The Amazon S3 storage class, <code>Standard</code> or <code>ReducedRedundancy</code>, that you want Elastic Transcoder to assign to the thumbnails that it stores in your Amazon S3 bucket. </li> </ul>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ThumbnailConfig</b>: Information about the Amazon S3 bucket in which you want Elastic Transcoder to save thumbnail files. Either you specify both <code>ContentConfig</code> and <code>ThumbnailConfig</code>, or you specify <code>OutputBucket</code>. <ul> <li>  <code>Bucket</code>: The Amazon S3 bucket in which you want Elastic Transcoder to save thumbnail files.  </li> <li>  <code>Permissions</code>: A list of the users and/or predefined Amazon S3 groups you want to have access to thumbnail files, and the type of access that you want them to have.  <ul> <li> GranteeType: The type of value that appears in the Grantee object: <ul> <li>  <code>Canonical</code>: Either the canonical user ID for an AWS account or an origin access identity for an Amazon CloudFront distribution. <important> A canonical user ID is not the same as an AWS account number. </important> </li> <li>  <code>Email</code>: The registered email address of an AWS account. </li> <li>  <code>Group</code>: One of the following predefined Amazon S3 groups: <code>AllUsers</code>, <code>AuthenticatedUsers</code>, or <code>LogDelivery</code>. </li> </ul> </li> <li>  <code>Grantee</code>: The AWS user or group that you want to have access to thumbnail files. </li> <li> Access: The permission that you want to give to the AWS user that is listed in Grantee. Valid values include:  <ul> <li>  <code>READ</code>: The grantee can read the thumbnails and metadata for thumbnails that Elastic Transcoder adds to the Amazon S3 bucket. </li> <li>  <code>READ_ACP</code>: The grantee can read the object ACL for thumbnails that Elastic Transcoder adds to the Amazon S3 bucket. </li> <li>  <code>WRITE_ACP</code>: The grantee can write the ACL for the thumbnails that Elastic Transcoder adds to the Amazon S3 bucket. </li> <li>  <code>FULL_CONTROL</code>: The grantee has READ, READ_ACP, and WRITE_ACP permissions for the thumbnails that Elastic Transcoder adds to the Amazon S3 bucket. </li> </ul> </li> </ul> </li> <li>  <code>StorageClass</code>: The Amazon S3 storage class, <code>Standard</code> or <code>ReducedRedundancy</code>, that you want Elastic Transcoder to assign to the thumbnails that it stores in your Amazon S3 bucket. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ContentConfig</i> Information about the Amazon S3 bucket in which you want Elastic Transcoder to save transcoded files and playlists. Either you specify both <code>ContentConfig</code> and <code>ThumbnailConfig</code>, or you specify <code>OutputBucket</code>. <ul> <li>  <b>Bucket</b>: The Amazon S3 bucket in which you want Elastic Transcoder to save transcoded files and playlists. </li> <li>  <b>Permissions</b>: A list of the users and/or predefined Amazon S3 groups you want to have access to transcoded files and playlists, and the type of access that you want them to have.  <ul> <li> GranteeType: The type of value that appears in the <code>Grantee</code> object:  <ul> <li>  <code>Canonical</code>: Either the canonical user ID for an AWS account or an origin access identity for an Amazon CloudFront distribution. </li> <li>  <code>Email</code>: The registered email address of an AWS account. </li> <li>  <code>Group</code>: One of the following predefined Amazon S3 groups: <code>AllUsers</code>, <code>AuthenticatedUsers</code>, or <code>LogDelivery</code>. </li> </ul> </li> <li>  <code>Grantee</code>: The AWS user or group that you want to have access to transcoded files and playlists. </li> <li>  <code>Access</code>: The permission that you want to give to the AWS user that is listed in <code>Grantee</code>. Valid values include: <ul> <li>  <code>READ</code>: The grantee can read the objects and metadata for objects that Elastic Transcoder adds to the Amazon S3 bucket. </li> <li>  <code>READ_ACP</code>: The grantee can read the object ACL for objects that Elastic Transcoder adds to the Amazon S3 bucket. </li> <li>  <code>WRITE_ACP</code>: The grantee can write the ACL for the objects that Elastic Transcoder adds to the Amazon S3 bucket. </li> <li>  <code>FULL_CONTROL</code>: The grantee has <code>READ</code>, <code>READ_ACP</code>, and <code>WRITE_ACP</code> permissions for the objects that Elastic Transcoder adds to the Amazon S3 bucket. </li> </ul> </li> </ul> </li> <li>  <b>StorageClass</b>: The Amazon S3 storage class, Standard or ReducedRedundancy, that you want Elastic Transcoder to assign to the video files and playlists that it stores in your Amazon S3 bucket.  </li> </ul>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ContentConfig</b>: Information about the Amazon S3 bucket in which you want Elastic Transcoder to save transcoded files and playlists. Either you specify both <code>ContentConfig</code> and <code>ThumbnailConfig</code>, or you specify <code>OutputBucket</code>. <ul> <li>  <b>Bucket</b>: The Amazon S3 bucket in which you want Elastic Transcoder to save transcoded files and playlists. </li> <li>  <b>Permissions</b>: A list of the users and/or predefined Amazon S3 groups you want to have access to transcoded files and playlists, and the type of access that you want them to have.  <ul> <li> GranteeType: The type of value that appears in the <code>Grantee</code> object:  <ul> <li>  <code>Canonical</code>: Either the canonical user ID for an AWS account or an origin access identity for an Amazon CloudFront distribution. </li> <li>  <code>Email</code>: The registered email address of an AWS account. </li> <li>  <code>Group</code>: One of the following predefined Amazon S3 groups: <code>AllUsers</code>, <code>AuthenticatedUsers</code>, or <code>LogDelivery</code>. </li> </ul> </li> <li>  <code>Grantee</code>: The AWS user or group that you want to have access to transcoded files and playlists. </li> <li>  <code>Access</code>: The permission that you want to give to the AWS user that is listed in <code>Grantee</code>. Valid values include: <ul> <li>  <code>READ</code>: The grantee can read the objects and metadata for objects that Elastic Transcoder adds to the Amazon S3 bucket. </li> <li>  <code>READ_ACP</code>: The grantee can read the object ACL for objects that Elastic Transcoder adds to the Amazon S3 bucket. </li> <li>  <code>WRITE_ACP</code>: The grantee can write the ACL for the objects that Elastic Transcoder adds to the Amazon S3 bucket. </li> <li>  <code>FULL_CONTROL</code>: The grantee has <code>READ</code>, <code>READ_ACP</code>, and <code>WRITE_ACP</code> permissions for the objects that Elastic Transcoder adds to the Amazon S3 bucket. </li> </ul> </li> </ul> </li> <li>  <b>StorageClass</b>: The Amazon S3 storage class, Standard or ReducedRedundancy, that you want Elastic Transcoder to assign to the video files and playlists that it stores in your Amazon S3 bucket.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Notifications</i> The Amazon Simple Notification Service (Amazon SNS) topic that you want to notify to report job status. <important> To receive notifications, you must also subscribe to the new topic in the Amazon SNS console. </important> <ul> <li>  <b>Progressing</b> (optional): The Amazon Simple Notification Service (Amazon SNS) topic that you want to notify when Elastic Transcoder has started to process the job. </li> <li>  <b>Complete</b> (optional): The Amazon SNS topic that you want to notify when Elastic Transcoder has finished processing the job. </li> <li>  <b>Warning</b> (optional): The Amazon SNS topic that you want to notify when Elastic Transcoder encounters a warning condition. </li> <li>  <b>Error</b> (optional): The Amazon SNS topic that you want to notify when Elastic Transcoder encounters an error condition. </li> </ul>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Notifications</b>: The Amazon Simple Notification Service (Amazon SNS) topic that you want to notify to report job status. <important> To receive notifications, you must also subscribe to the new topic in the Amazon SNS console. </important> <ul> <li>  <b>Progressing</b> (optional): The Amazon Simple Notification Service (Amazon SNS) topic that you want to notify when Elastic Transcoder has started to process the job. </li> <li>  <b>Complete</b> (optional): The Amazon SNS topic that you want to notify when Elastic Transcoder has finished processing the job. </li> <li>  <b>Warning</b> (optional): The Amazon SNS topic that you want to notify when Elastic Transcoder encounters a warning condition. </li> <li>  <b>Error</b> (optional): The Amazon SNS topic that you want to notify when Elastic Transcoder encounters an error condition. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AwsKmsKeyArn</i> The AWS Key Management Service (AWS KMS) key that you want to use with this pipeline. If you use either <code>s3</code> or <code>s3-aws-kms</code> as your <code>Encryption:Mode</code>, you don't need to provide a key with your job because a default key, known as an AWS-KMS key, is created for you automatically. You need to provide an AWS-KMS key only if you want to use a non-default AWS-KMS key, or if you are using an <code>Encryption:Mode</code> of <code>aes-cbc-pkcs7</code>, <code>aes-ctr</code>, or <code>aes-gcm</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Role</i> The IAM Amazon Resource Name (ARN) for the role that Elastic Transcoder uses to transcode jobs for this pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OutputBucket</i> The Amazon S3 bucket in which you want Elastic Transcoder to save transcoded files, thumbnails, and playlists. Either you specify this value, or you specify both <code>ContentConfig</code> and <code>ThumbnailConfig</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InputBucket</i> The Amazon S3 bucket from which Elastic Transcoder gets media files for transcoding and the graphics files, if any, that you want to use for watermarks.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current status of the pipeline: <ul> <li>  <code>Active</code>: The pipeline is processing jobs. </li> <li>  <code>Paused</code>: The pipeline is not currently processing jobs. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the pipeline. We recommend that the name be unique within the AWS account, but uniqueness is not enforced. Constraints: Maximum 40 characters<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) for the pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The identifier for the pipeline. You use this value to identify the pipeline in which you want to perform a variety of operations, such as creating a job or a preset.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Error</i> The Amazon SNS topic that you want to notify when Elastic Transcoder encounters an error condition.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Warning</i> The Amazon SNS topic that you want to notify when Elastic Transcoder encounters a warning condition.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Completed</i> The Amazon SNS topic that you want to notify when Elastic Transcoder has finished processing the job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Progressing</i> The Amazon Simple Notification Service (Amazon SNS) topic that you want to notify when Elastic Transcoder has started to process the job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Permissions</i> Optional. The <code>Permissions</code> object specifies which users and/or predefined Amazon S3 groups you want to have access to transcoded files and playlists, and the type of access you want them to have. You can grant permissions to a maximum of 30 users and/or predefined Amazon S3 groups. If you include <code>Permissions</code>, Elastic Transcoder grants only the permissions that you specify. It does not grant full permissions to the owner of the role specified by <code>Role</code>. If you want that user to have full control, you must explicitly grant full control to the user.  If you omit <code>Permissions</code>, Elastic Transcoder grants full control over the transcoded files and playlists to the owner of the role specified by <code>Role</code>, and grants no other permissions to any other user or group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageClass</i>  The Amazon S3 storage class, <code>Standard</code> or <code>ReducedRedundancy</code>, that you want Elastic Transcoder to assign to the video files and playlists that it stores in your Amazon S3 bucket. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i>  The Amazon S3 bucket in which you want Elastic Transcoder to save the transcoded files. Specify this value when all of the following are true: <ul> <li> You want to save transcoded files, thumbnails (if any), and playlists (if any) together in one bucket. </li> <li> You do not want to specify the users or groups who have access to the transcoded files, thumbnails, and playlists. </li> <li> You do not want to specify the permissions that Elastic Transcoder grants to the files. </li> <li> You want to associate the transcoded files and thumbnails with the Amazon S3 Standard storage class. </li> </ul> If you want to save transcoded files and playlists in one bucket and thumbnails in another bucket, specify which users can access the transcoded files or the permissions the users have, or change the Amazon S3 storage class, omit OutputBucket and specify values for <code>ContentConfig</code> and <code>ThumbnailConfig</code> instead. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Permissions</i> Optional. The <code>Permissions</code> object specifies which users and/or predefined Amazon S3 groups you want to have access to transcoded files and playlists, and the type of access you want them to have. You can grant permissions to a maximum of 30 users and/or predefined Amazon S3 groups. If you include <code>Permissions</code>, Elastic Transcoder grants only the permissions that you specify. It does not grant full permissions to the owner of the role specified by <code>Role</code>. If you want that user to have full control, you must explicitly grant full control to the user.  If you omit <code>Permissions</code>, Elastic Transcoder grants full control over the transcoded files and playlists to the owner of the role specified by <code>Role</code>, and grants no other permissions to any other user or group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageClass</i>  The Amazon S3 storage class, <code>Standard</code> or <code>ReducedRedundancy</code>, that you want Elastic Transcoder to assign to the video files and playlists that it stores in your Amazon S3 bucket. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i>  The Amazon S3 bucket in which you want Elastic Transcoder to save the transcoded files. Specify this value when all of the following are true: <ul> <li> You want to save transcoded files, thumbnails (if any), and playlists (if any) together in one bucket. </li> <li> You do not want to specify the users or groups who have access to the transcoded files, thumbnails, and playlists. </li> <li> You do not want to specify the permissions that Elastic Transcoder grants to the files. </li> <li> You want to associate the transcoded files and thumbnails with the Amazon S3 Standard storage class. </li> </ul> If you want to save transcoded files and playlists in one bucket and thumbnails in another bucket, specify which users can access the transcoded files or the permissions the users have, or change the Amazon S3 storage class, omit OutputBucket and specify values for <code>ContentConfig</code> and <code>ThumbnailConfig</code> instead. <br/>        """
        pass

    def read_preset(self, Id: str) -> ReadPresetResponse:
        r"""The ReadPreset operation gets detailed information about a preset.

        :param self:
        :param Id:  The identifier of the preset for which you want to get detailed information.<br/>
        :return: Preset:  A section of the response body that provides information about the preset.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> Whether the preset is a default preset provided by Elastic Transcoder (<code>System</code>) or a preset that you have defined (<code>Custom</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Thumbnails</i> A section of the response body that provides information about the thumbnail preset values, if any.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Thumbnails</b>: A section of the response body that provides information about the thumbnail preset values, if any.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Video</i> A section of the response body that provides information about the video preset values.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Video</b>: A section of the response body that provides information about the video preset values.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Audio</i> A section of the response body that provides information about the audio preset values.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Audio</b>: A section of the response body that provides information about the audio preset values.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Container</i> The container type for the output file. Valid values include <code>flac</code>, <code>flv</code>, <code>fmp4</code>, <code>gif</code>, <code>mp3</code>, <code>mp4</code>, <code>mpg</code>, <code>mxf</code>, <code>oga</code>, <code>ogg</code>, <code>ts</code>, and <code>webm</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A description of the preset.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the preset.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) for the preset.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> Identifier for the new preset. You use this value to get settings for the preset or to delete it.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AudioPackingMode</i> The method of organizing audio channels and tracks. Use <code>Audio:Channels</code> to specify the number of channels in your output, and <code>Audio:AudioPackingMode</code> to specify the number of tracks and their relation to the channels. If you do not specify an <code>Audio:AudioPackingMode</code>, Elastic Transcoder uses <code>SingleTrack</code>. The following values are valid:  <code>SingleTrack</code>, <code>OneChannelPerTrack</code>, and <code>OneChannelPerTrackWithMosTo8Tracks</code>  When you specify <code>SingleTrack</code>, Elastic Transcoder creates a single track for your output. The track can have up to eight channels. Use <code>SingleTrack</code> for all non-<code>mxf</code> containers. The outputs of <code>SingleTrack</code> for a specific channel value and inputs are as follows: <ul> <li>  <code>0</code> <b> channels with any input:</b> Audio omitted from the output </li> <li>  <code>1, 2, or auto </code> <b>channels with no audio input:</b> Audio omitted from the output </li> <li>  <code>1 </code> <b>channel with any input with audio:</b> One track with one channel, downmixed if necessary </li> <li>  <code>2 </code> <b>channels with one track with one channel:</b> One track with two identical channels </li> <li>  <code>2 or auto </code> <b>channels with two tracks with one channel each:</b> One track with two channels </li> <li>  <code>2 or auto </code> <b>channels with one track with two channels:</b> One track with two channels </li> <li>  <code>2 </code> <b>channels with one track with multiple channels:</b> One track with two channels </li> <li>  <code>auto </code> <b>channels with one track with one channel:</b> One track with one channel </li> <li>  <code>auto </code> <b>channels with one track with multiple channels:</b> One track with multiple channels </li> </ul> When you specify <code>OneChannelPerTrack</code>, Elastic Transcoder creates a new track for every channel in your output. Your output can have up to eight single-channel tracks. The outputs of <code>OneChannelPerTrack</code> for a specific channel value and inputs are as follows: <ul> <li>  <code>0 </code> <b>channels with any input:</b> Audio omitted from the output </li> <li>  <code>1, 2, or auto </code> <b>channels with no audio input:</b> Audio omitted from the output </li> <li>  <code>1 </code> <b>channel with any input with audio:</b> One track with one channel, downmixed if necessary </li> <li>  <code>2 </code> <b>channels with one track with one channel:</b> Two tracks with one identical channel each </li> <li>  <code>2 or auto </code> <b>channels with two tracks with one channel each:</b> Two tracks with one channel each </li> <li>  <code>2 or auto </code> <b>channels with one track with two channels:</b> Two tracks with one channel each </li> <li>  <code>2 </code> <b>channels with one track with multiple channels:</b> Two tracks with one channel each </li> <li>  <code>auto </code> <b>channels with one track with one channel:</b> One track with one channel </li> <li>  <code>auto </code> <b>channels with one track with multiple channels:</b> Up to eight tracks with one channel each </li> </ul> When you specify <code>OneChannelPerTrackWithMosTo8Tracks</code>, Elastic Transcoder creates eight single-channel tracks for your output. All tracks that do not contain audio data from an input channel are MOS, or Mit Out Sound, tracks. The outputs of <code>OneChannelPerTrackWithMosTo8Tracks</code> for a specific channel value and inputs are as follows: <ul> <li>  <code>0 </code> <b>channels with any input:</b> Audio omitted from the output </li> <li>  <code>1, 2, or auto </code> <b>channels with no audio input:</b> Audio omitted from the output </li> <li>  <code>1 </code> <b>channel with any input with audio:</b> One track with one channel, downmixed if necessary, plus six MOS tracks </li> <li>  <code>2 </code> <b>channels with one track with one channel:</b> Two tracks with one identical channel each, plus six MOS tracks </li> <li>  <code>2 or auto </code> <b>channels with two tracks with one channel each:</b> Two tracks with one channel each, plus six MOS tracks </li> <li>  <code>2 or auto </code> <b>channels with one track with two channels:</b> Two tracks with one channel each, plus six MOS tracks </li> <li>  <code>2 </code> <b>channels with one track with multiple channels:</b> Two tracks with one channel each, plus six MOS tracks </li> <li>  <code>auto </code> <b>channels with one track with one channel:</b> One track with one channel, plus seven MOS tracks </li> <li>  <code>auto </code> <b>channels with one track with multiple channels:</b> Up to eight tracks with one channel each, plus MOS tracks until there are eight tracks in all </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Channels</i> The number of audio channels in the output file. The following values are valid:  <code>auto</code>, <code>0</code>, <code>1</code>, <code>2</code>  One channel carries the information played by a single speaker. For example, a stereo track with two channels sends one channel to the left speaker, and the other channel to the right speaker. The output channels are organized into tracks. If you want Elastic Transcoder to automatically detect the number of audio channels in the input file and use that value for the output file, select <code>auto</code>. The output of a specific channel value and inputs are as follows: <ul> <li>  <code>auto</code> <b> channel specified, with any input:</b> Pass through up to eight input channels. </li> <li>  <code>0</code> <b> channels specified, with any input:</b> Audio omitted from the output. </li> <li>  <code>1</code> <b> channel specified, with at least one input channel:</b> Mono sound. </li> <li>  <code>2</code> <b> channels specified, with any input:</b> Two identical mono channels or stereo. For more information about tracks, see <code>Audio:AudioPackingMode.</code>  </li> </ul>  For more information about how Elastic Transcoder organizes channels and tracks, see <code>Audio:AudioPackingMode</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BitRate</i> The bit rate of the audio stream in the output file, in kilobits/second. Enter an integer between 64 and 320, inclusive.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SampleRate</i> The sample rate of the audio stream in the output file, in Hertz. Valid values include:  <code>auto</code>, <code>22050</code>, <code>32000</code>, <code>44100</code>, <code>48000</code>, <code>96000</code>  If you specify <code>auto</code>, Elastic Transcoder automatically detects the sample rate.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Codec</i> The audio codec for the output file. Valid values include <code>aac</code>, <code>flac</code>, <code>mp2</code>, <code>mp3</code>, <code>pcm</code>, and <code>vorbis</code>.<br/>If you specified <code>AAC</code> for <code>Audio:Codec</code>, this is the <code>AAC</code> compression profile to use. Valid values include:  <code>auto</code>, <code>AAC-LC</code>, <code>HE-AAC</code>, <code>HE-AACv2</code>  If you specify <code>auto</code>, Elastic Transcoder chooses a profile based on the bit rate of the output file.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CodecOptions</b>: If you specified <code>AAC</code> for <code>Audio:Codec</code>, this is the <code>AAC</code> compression profile to use. Valid values include:  <code>auto</code>, <code>AAC-LC</code>, <code>HE-AAC</code>, <code>HE-AACv2</code>  If you specify <code>auto</code>, Elastic Transcoder chooses a profile based on the bit rate of the output file.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Watermarks</i> Settings for the size, location, and opacity of graphics that you want Elastic Transcoder to overlay over videos that are transcoded using this preset. You can specify settings for up to four watermarks. Watermarks appear in the specified size and location, and with the specified opacity for the duration of the transcoded video. Watermarks can be in .png or .jpg format. If you want to display a watermark that is not rectangular, use the .png format, which supports transparency. When you create a job that uses this preset, you specify the .png or .jpg graphics that you want Elastic Transcoder to include in the transcoded videos. You can specify fewer graphics in the job than you specify watermark settings in the preset, which allows you to use the same preset for up to four watermarks that have different dimensions.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PaddingPolicy</i> When you set <code>PaddingPolicy</code> to <code>Pad</code>, Elastic Transcoder may add black bars to the top and bottom and/or left and right sides of the output video to make the total size of the output video match the values that you specified for <code>MaxWidth</code> and <code>MaxHeight</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SizingPolicy</i> Specify one of the following values to control scaling of the output video: <ul> <li>  <code>Fit</code>: Elastic Transcoder scales the output video so it matches the value that you specified in either <code>MaxWidth</code> or <code>MaxHeight</code> without exceeding the other value. </li> <li>  <code>Fill</code>: Elastic Transcoder scales the output video so it matches the value that you specified in either <code>MaxWidth</code> or <code>MaxHeight</code> and matches or exceeds the other value. Elastic Transcoder centers the output video and then crops it in the dimension (if any) that exceeds the maximum value. </li> <li>  <code>Stretch</code>: Elastic Transcoder stretches the output video to match the values that you specified for <code>MaxWidth</code> and <code>MaxHeight</code>. If the relative proportions of the input video and the output video are different, the output video will be distorted. </li> <li>  <code>Keep</code>: Elastic Transcoder does not scale the output video. If either dimension of the input video exceeds the values that you specified for <code>MaxWidth</code> and <code>MaxHeight</code>, Elastic Transcoder crops the output video. </li> <li>  <code>ShrinkToFit</code>: Elastic Transcoder scales the output video down so that its dimensions match the values that you specified for at least one of <code>MaxWidth</code> and <code>MaxHeight</code> without exceeding either value. If you specify this option, Elastic Transcoder does not scale the video up. </li> <li>  <code>ShrinkToFill</code>: Elastic Transcoder scales the output video down so that its dimensions match the values that you specified for at least one of <code>MaxWidth</code> and <code>MaxHeight</code> without dropping below either value. If you specify this option, Elastic Transcoder does not scale the video up. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DisplayAspectRatio</i> The value that Elastic Transcoder adds to the metadata in the output file.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxHeight</i> The maximum height of the output video in pixels. If you specify <code>auto</code>, Elastic Transcoder uses 1080 (Full HD) as the default value. If you specify a numeric value, enter an even integer between 96 and 3072.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxWidth</i>  The maximum width of the output video in pixels. If you specify <code>auto</code>, Elastic Transcoder uses 1920 (Full HD) as the default value. If you specify a numeric value, enter an even integer between 128 and 4096. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AspectRatio</i> <important> To better control resolution and aspect ratio of output videos, we recommend that you use the values <code>MaxWidth</code>, <code>MaxHeight</code>, <code>SizingPolicy</code>, <code>PaddingPolicy</code>, and <code>DisplayAspectRatio</code> instead of <code>Resolution</code> and <code>AspectRatio</code>. The two groups of settings are mutually exclusive. Do not use them together. </important> The display aspect ratio of the video in the output file. Valid values include:  <code>auto</code>, <code>1:1</code>, <code>4:3</code>, <code>3:2</code>, <code>16:9</code>  If you specify <code>auto</code>, Elastic Transcoder tries to preserve the aspect ratio of the input file. If you specify an aspect ratio for the output file that differs from aspect ratio of the input file, Elastic Transcoder adds pillarboxing (black bars on the sides) or letterboxing (black bars on the top and bottom) to maintain the aspect ratio of the active region of the video.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Resolution</i> <important> To better control resolution and aspect ratio of output videos, we recommend that you use the values <code>MaxWidth</code>, <code>MaxHeight</code>, <code>SizingPolicy</code>, <code>PaddingPolicy</code>, and <code>DisplayAspectRatio</code> instead of <code>Resolution</code> and <code>AspectRatio</code>. The two groups of settings are mutually exclusive. Do not use them together. </important> The width and height of the video in the output file, in pixels. Valid values are <code>auto</code> and <i>width</i> x <i>height</i>: <ul> <li>  <code>auto</code>: Elastic Transcoder attempts to preserve the width and height of the input file, subject to the following rules. </li> <li>  <code> <i>width</i> x <i>height</i> </code>: The width and height of the output video in pixels. </li> </ul> Note the following about specifying the width and height: <ul> <li> The width must be an even integer between 128 and 4096, inclusive. </li> <li> The height must be an even integer between 96 and 3072, inclusive. </li> <li> If you specify a resolution that is less than the resolution of the input file, Elastic Transcoder rescales the output file to the lower resolution. </li> <li> If you specify a resolution that is greater than the resolution of the input file, Elastic Transcoder rescales the output to the higher resolution. </li> <li> We recommend that you specify a resolution for which the product of width and height is less than or equal to the applicable value in the following list (<i>List - Max width x height value</i>): <ul> <li> 1 - 25344 </li> <li> 1b - 25344 </li> <li> 1.1 - 101376 </li> <li> 1.2 - 101376 </li> <li> 1.3 - 101376 </li> <li> 2 - 101376 </li> <li> 2.1 - 202752 </li> <li> 2.2 - 404720 </li> <li> 3 - 404720 </li> <li> 3.1 - 921600 </li> <li> 3.2 - 1310720 </li> <li> 4 - 2097152 </li> <li> 4.1 - 2097152 </li> </ul> </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxFrameRate</i> If you specify <code>auto</code> for <code>FrameRate</code>, Elastic Transcoder uses the frame rate of the input video for the frame rate of the output video. Specify the maximum frame rate that you want Elastic Transcoder to use when the frame rate of the input video is greater than the desired maximum frame rate of the output video. Valid values include: <code>10</code>, <code>15</code>, <code>23.97</code>, <code>24</code>, <code>25</code>, <code>29.97</code>, <code>30</code>, <code>60</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FrameRate</i> The frames per second for the video stream in the output file. Valid values include:  <code>auto</code>, <code>10</code>, <code>15</code>, <code>23.97</code>, <code>24</code>, <code>25</code>, <code>29.97</code>, <code>30</code>, <code>60</code>  If you specify <code>auto</code>, Elastic Transcoder uses the detected frame rate of the input source. If you specify a frame rate, we recommend that you perform the following calculation:  <code>Frame rate = maximum recommended decoding speed in luma samples/second / (width in pixels * height in pixels)</code>  where: <ul> <li>  <i>width in pixels</i> and <i>height in pixels</i> represent the Resolution of the output video. </li> <li>  <i>maximum recommended decoding speed in Luma samples/second</i> is less than or equal to the maximum value listed in the following table, based on the value that you specified for Level. </li> </ul> The maximum recommended decoding speed in Luma samples/second for each level is described in the following list (<i>Level - Decoding speed</i>): <ul> <li> 1 - 380160 </li> <li> 1b - 380160 </li> <li> 1.1 - 76800 </li> <li> 1.2 - 1536000 </li> <li> 1.3 - 3041280 </li> <li> 2 - 3041280 </li> <li> 2.1 - 5068800 </li> <li> 2.2 - 5184000 </li> <li> 3 - 10368000 </li> <li> 3.1 - 27648000 </li> <li> 3.2 - 55296000 </li> <li> 4 - 62914560 </li> <li> 4.1 - 62914560 </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BitRate</i> The bit rate of the video stream in the output file, in kilobits/second. Valid values depend on the values of <code>Level</code> and <code>Profile</code>. If you specify <code>auto</code>, Elastic Transcoder uses the detected bit rate of the input source. If you specify a value other than <code>auto</code>, we recommend that you specify a value less than or equal to the maximum H.264-compliant value listed for your level and profile:  <i>Level - Maximum video bit rate in kilobits/second (baseline and main Profile) : maximum video bit rate in kilobits/second (high Profile)</i>  <ul> <li> 1 - 64 : 80 </li> <li> 1b - 128 : 160 </li> <li> 1.1 - 192 : 240 </li> <li> 1.2 - 384 : 480 </li> <li> 1.3 - 768 : 960 </li> <li> 2 - 2000 : 2500 </li> <li> 3 - 10000 : 12500 </li> <li> 3.1 - 14000 : 17500 </li> <li> 3.2 - 20000 : 25000 </li> <li> 4 - 20000 : 25000 </li> <li> 4.1 - 50000 : 62500 </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FixedGOP</i> Applicable only when the value of Video:Codec is one of <code>H.264</code>, <code>MPEG2</code>, or <code>VP8</code>. Whether to use a fixed value for <code>FixedGOP</code>. Valid values are <code>true</code> and <code>false</code>: <ul> <li>  <code>true</code>: Elastic Transcoder uses the value of <code>KeyframesMaxDist</code> for the distance between key frames (the number of frames in a group of pictures, or GOP). </li> <li>  <code>false</code>: The distance between key frames can vary. </li> </ul> <important>  <code>FixedGOP</code> must be set to <code>true</code> for <code>fmp4</code> containers. </important><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KeyframesMaxDist</i> Applicable only when the value of Video:Codec is one of <code>H.264</code>, <code>MPEG2</code>, or <code>VP8</code>. The maximum number of frames between key frames. Key frames are fully encoded frames; the frames between key frames are encoded based, in part, on the content of the key frames. The value is an integer formatted as a string; valid values are between 1 (every frame is a key frame) and 100000, inclusive. A higher value results in higher compression but may also discernibly decrease video quality. For <code>Smooth</code> outputs, the <code>FrameRate</code> must have a constant ratio to the <code>KeyframesMaxDist</code>. This allows <code>Smooth</code> playlists to switch between different quality levels while the file is being played. For example, an input file can have a <code>FrameRate</code> of 30 with a <code>KeyframesMaxDist</code> of 90. The output file then needs to have a ratio of 1:3. Valid outputs would have <code>FrameRate</code> of 30, 25, and 10, and <code>KeyframesMaxDist</code> of 90, 75, and 30, respectively. Alternately, this can be achieved by setting <code>FrameRate</code> to auto and having the same values for <code>MaxFrameRate</code> and <code>KeyframesMaxDist</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CodecOptions</i>  <b>Profile (H.264/VP8/VP9 Only)</b>  The H.264 profile that you want to use for the output file. Elastic Transcoder supports the following profiles: <ul> <li>  <code>baseline</code>: The profile most commonly used for videoconferencing and for mobile applications. </li> <li>  <code>main</code>: The profile used for standard-definition digital TV broadcasts. </li> <li>  <code>high</code>: The profile used for high-definition digital TV broadcasts and for Blu-ray discs. </li> </ul>  <b>Level (H.264 Only)</b>  The H.264 level that you want to use for the output file. Elastic Transcoder supports the following levels:  <code>1</code>, <code>1b</code>, <code>1.1</code>, <code>1.2</code>, <code>1.3</code>, <code>2</code>, <code>2.1</code>, <code>2.2</code>, <code>3</code>, <code>3.1</code>, <code>3.2</code>, <code>4</code>, <code>4.1</code>   <b>MaxReferenceFrames (H.264 Only)</b>  Applicable only when the value of Video:Codec is H.264. The maximum number of previously decoded frames to use as a reference for decoding future frames. Valid values are integers 0 through 16, but we recommend that you not use a value greater than the following:  <code>Min(Floor(Maximum decoded picture buffer in macroblocks * 256 / (Width in pixels * Height in pixels)), 16)</code>  where <i>Width in pixels</i> and <i>Height in pixels</i> represent either MaxWidth and MaxHeight, or Resolution. <i>Maximum decoded picture buffer in macroblocks</i> depends on the value of the <code>Level</code> object. See the list below. (A macroblock is a block of pixels measuring 16x16.)  <ul> <li> 1 - 396 </li> <li> 1b - 396 </li> <li> 1.1 - 900 </li> <li> 1.2 - 2376 </li> <li> 1.3 - 2376 </li> <li> 2 - 2376 </li> <li> 2.1 - 4752 </li> <li> 2.2 - 8100 </li> <li> 3 - 8100 </li> <li> 3.1 - 18000 </li> <li> 3.2 - 20480 </li> <li> 4 - 32768 </li> <li> 4.1 - 32768 </li> </ul>  <b>MaxBitRate (Optional, H.264/MPEG2/VP8/VP9 only)</b>  The maximum number of bits per second in a video buffer; the size of the buffer is specified by <code>BufferSize</code>. Specify a value between 16 and 62,500. You can reduce the bandwidth required to stream a video by reducing the maximum bit rate, but this also reduces the quality of the video.  <b>BufferSize (Optional, H.264/MPEG2/VP8/VP9 only)</b>  The maximum number of bits in any x seconds of the output video. This window is commonly 10 seconds, the standard segment duration when you're using FMP4 or MPEG-TS for the container type of the output video. Specify an integer greater than 0. If you specify <code>MaxBitRate</code> and omit <code>BufferSize</code>, Elastic Transcoder sets <code>BufferSize</code> to 10 times the value of <code>MaxBitRate</code>.  <b>InterlacedMode (Optional, H.264/MPEG2 Only)</b>  The interlace mode for the output video. Interlaced video is used to double the perceived frame rate for a video by interlacing two fields (one field on every other line, the other field on the other lines) so that the human eye registers multiple pictures per frame. Interlacing reduces the bandwidth required for transmitting a video, but can result in blurred images and flickering. Valid values include <code>Progressive</code> (no interlacing, top to bottom), <code>TopFirst</code> (top field first), <code>BottomFirst</code> (bottom field first), and <code>Auto</code>. If <code>InterlaceMode</code> is not specified, Elastic Transcoder uses <code>Progressive</code> for the output. If <code>Auto</code> is specified, Elastic Transcoder interlaces the output.  <b>ColorSpaceConversionMode (Optional, H.264/MPEG2 Only)</b>  The color space conversion Elastic Transcoder applies to the output video. Color spaces are the algorithms used by the computer to store information about how to render color. <code>Bt.601</code> is the standard for standard definition video, while <code>Bt.709</code> is the standard for high definition video. Valid values include <code>None</code>, <code>Bt709toBt601</code>, <code>Bt601toBt709</code>, and <code>Auto</code>. If you chose <code>Auto</code> for <code>ColorSpaceConversionMode</code> and your output is interlaced, your frame rate is one of <code>23.97</code>, <code>24</code>, <code>25</code>, <code>29.97</code>, <code>50</code>, or <code>60</code>, your <code>SegmentDuration</code> is null, and you are using one of the resolution changes from the list below, Elastic Transcoder applies the following color space conversions: <ul> <li>  <i>Standard to HD, 720x480 to 1920x1080</i> - Elastic Transcoder applies <code>Bt601ToBt709</code>  </li> <li>  <i>Standard to HD, 720x576 to 1920x1080</i> - Elastic Transcoder applies <code>Bt601ToBt709</code>  </li> <li>  <i>HD to Standard, 1920x1080 to 720x480</i> - Elastic Transcoder applies <code>Bt709ToBt601</code>  </li> <li>  <i>HD to Standard, 1920x1080 to 720x576</i> - Elastic Transcoder applies <code>Bt709ToBt601</code>  </li> </ul> <note> Elastic Transcoder may change the behavior of the <code>ColorspaceConversionMode</code> <code>Auto</code> mode in the future. All outputs in a playlist must use the same <code>ColorSpaceConversionMode</code>. </note> If you do not specify a <code>ColorSpaceConversionMode</code>, Elastic Transcoder does not change the color space of a file. If you are unsure what <code>ColorSpaceConversionMode</code> was applied to your output file, you can check the <code>AppliedColorSpaceConversion</code> parameter included in your job response. If your job does not have an <code>AppliedColorSpaceConversion</code> in its response, no <code>ColorSpaceConversionMode</code> was applied.  <b>ChromaSubsampling</b>  The sampling pattern for the chroma (color) channels of the output video. Valid values include <code>yuv420p</code> and <code>yuv422p</code>.  <code>yuv420p</code> samples the chroma information of every other horizontal and every other vertical line, <code>yuv422p</code> samples the color information of every horizontal line and every other vertical line.  <b>LoopCount (Gif Only)</b>  The number of times you want the output gif to loop. Valid values include <code>Infinite</code> and integers between <code>0</code> and <code>100</code>, inclusive.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Codec</i> The video codec for the output file. Valid values include <code>gif</code>, <code>H.264</code>, <code>mpeg2</code>, <code>vp8</code>, and <code>vp9</code>. You can only specify <code>vp8</code> and <code>vp9</code> when the container type is <code>webm</code>, <code>gif</code> when the container type is <code>gif</code>, and <code>mpeg2</code> when the container type is <code>mpg</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PaddingPolicy</i> When you set <code>PaddingPolicy</code> to <code>Pad</code>, Elastic Transcoder may add black bars to the top and bottom and/or left and right sides of thumbnails to make the total size of the thumbnails match the values that you specified for thumbnail <code>MaxWidth</code> and <code>MaxHeight</code> settings.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SizingPolicy</i> Specify one of the following values to control scaling of thumbnails: <ul> <li>  <code>Fit</code>: Elastic Transcoder scales thumbnails so they match the value that you specified in thumbnail MaxWidth or MaxHeight settings without exceeding the other value.  </li> <li>  <code>Fill</code>: Elastic Transcoder scales thumbnails so they match the value that you specified in thumbnail <code>MaxWidth</code> or <code>MaxHeight</code> settings and matches or exceeds the other value. Elastic Transcoder centers the image in thumbnails and then crops in the dimension (if any) that exceeds the maximum value. </li> <li>  <code>Stretch</code>: Elastic Transcoder stretches thumbnails to match the values that you specified for thumbnail <code>MaxWidth</code> and <code>MaxHeight</code> settings. If the relative proportions of the input video and thumbnails are different, the thumbnails will be distorted. </li> <li>  <code>Keep</code>: Elastic Transcoder does not scale thumbnails. If either dimension of the input video exceeds the values that you specified for thumbnail <code>MaxWidth</code> and <code>MaxHeight</code> settings, Elastic Transcoder crops the thumbnails. </li> <li>  <code>ShrinkToFit</code>: Elastic Transcoder scales thumbnails down so that their dimensions match the values that you specified for at least one of thumbnail <code>MaxWidth</code> and <code>MaxHeight</code> without exceeding either value. If you specify this option, Elastic Transcoder does not scale thumbnails up. </li> <li>  <code>ShrinkToFill</code>: Elastic Transcoder scales thumbnails down so that their dimensions match the values that you specified for at least one of <code>MaxWidth</code> and <code>MaxHeight</code> without dropping below either value. If you specify this option, Elastic Transcoder does not scale thumbnails up. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxHeight</i> The maximum height of thumbnails in pixels. If you specify auto, Elastic Transcoder uses 1080 (Full HD) as the default value. If you specify a numeric value, enter an even integer between 32 and 3072.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxWidth</i> The maximum width of thumbnails in pixels. If you specify auto, Elastic Transcoder uses 1920 (Full HD) as the default value. If you specify a numeric value, enter an even integer between 32 and 4096.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AspectRatio</i> <important> To better control resolution and aspect ratio of thumbnails, we recommend that you use the values <code>MaxWidth</code>, <code>MaxHeight</code>, <code>SizingPolicy</code>, and <code>PaddingPolicy</code> instead of <code>Resolution</code> and <code>AspectRatio</code>. The two groups of settings are mutually exclusive. Do not use them together. </important> The aspect ratio of thumbnails. Valid values include:  <code>auto</code>, <code>1:1</code>, <code>4:3</code>, <code>3:2</code>, <code>16:9</code>  If you specify <code>auto</code>, Elastic Transcoder tries to preserve the aspect ratio of the video in the output file.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Resolution</i> <important> To better control resolution and aspect ratio of thumbnails, we recommend that you use the values <code>MaxWidth</code>, <code>MaxHeight</code>, <code>SizingPolicy</code>, and <code>PaddingPolicy</code> instead of <code>Resolution</code> and <code>AspectRatio</code>. The two groups of settings are mutually exclusive. Do not use them together. </important> The width and height of thumbnail files in pixels. Specify a value in the format <code> <i>width</i> </code> x <code> <i>height</i> </code> where both values are even integers. The values cannot exceed the width and height that you specified in the <code>Video:Resolution</code> object.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Interval</i> The approximate number of seconds between thumbnails. Specify an integer value.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Format</i> The format of thumbnails, if any. Valid values are <code>jpg</code> and <code>png</code>.  You specify whether you want Elastic Transcoder to create thumbnails when you create a job.<br/>        """
        pass

    def test_role(self, Topics: List[SnsTopic], OutputBucket: str, InputBucket: str, Role: str) -> TestRoleResponse:
        r"""The TestRole operation tests the IAM role used to create the pipeline. The <code>TestRole</code> action lets you determine whether the IAM role you are using has sufficient permissions to let Elastic Transcoder perform tasks associated with the transcoding process. The action attempts to assume the specified IAM role, checks read access to the input and output buckets, and tries to send a test notification to Amazon SNS topics that you specify.

        :param self:
        :param Topics:  The ARNs of one or more Amazon Simple Notification Service (Amazon SNS) topics that you want the action to send a test notification to.<br/>OutputBucket:  The Amazon S3 bucket that Elastic Transcoder writes transcoded media files to. The action attempts to read from this bucket.<br/>InputBucket:  The Amazon S3 bucket that contains media files to be transcoded. The action attempts to read from this bucket.<br/>Role:  The IAM Amazon Resource Name (ARN) for the role that you want Elastic Transcoder to test.<br/>
        :return: Messages:  If the <code>Success</code> element contains <code>false</code>, this value is an array of one or more error messages that were generated during the test process.<br/>Success:  If the operation is successful, this value is <code>true</code>; otherwise, the value is <code>false</code>.<br/>        """
        pass

    def update_pipeline(self, Id: str, Name: str=None, InputBucket: str=None, Role: str=None, AwsKmsKeyArn: str=None, Notifications: Notifications=None, ContentConfig: PipelineOutputConfig=None, ThumbnailConfig: PipelineOutputConfig=None) -> UpdatePipelineResponse:
        r""" Use the <code>UpdatePipeline</code> operation to update settings for a pipeline. <important> When you change pipeline settings, your changes take effect immediately. Jobs that you have already submitted and that Elastic Transcoder has not started to process are affected in addition to jobs that you submit after you change settings.  </important>

        :param self:
        :param ThumbnailConfig:  The <code>ThumbnailConfig</code> object specifies several values, including the Amazon S3 bucket in which you want Elastic Transcoder to save thumbnail files, which users you want to have access to the files, the type of access you want users to have, and the storage class that you want to assign to the files. If you specify values for <code>ContentConfig</code>, you must also specify values for <code>ThumbnailConfig</code> even if you don't want to create thumbnails. If you specify values for <code>ContentConfig</code> and <code>ThumbnailConfig</code>, omit the <code>OutputBucket</code> object. <ul> <li>  <b>Bucket</b>: The Amazon S3 bucket in which you want Elastic Transcoder to save thumbnail files. </li> <li>  <b>Permissions</b> (Optional): The <code>Permissions</code> object specifies which users and/or predefined Amazon S3 groups you want to have access to thumbnail files, and the type of access you want them to have. You can grant permissions to a maximum of 30 users and/or predefined Amazon S3 groups. </li> <li>  <b>GranteeType</b>: Specify the type of value that appears in the Grantee object: <ul> <li>  <b>Canonical</b>: The value in the <code>Grantee</code> object is either the canonical user ID for an AWS account or an origin access identity for an Amazon CloudFront distribution. <important> A canonical user ID is not the same as an AWS account number. </important> </li> <li>  <b>Email</b>: The value in the <code>Grantee</code> object is the registered email address of an AWS account. </li> <li>  <b>Group</b>: The value in the <code>Grantee</code> object is one of the following predefined Amazon S3 groups: <code>AllUsers</code>, <code>AuthenticatedUsers</code>, or <code>LogDelivery</code>. </li> </ul> </li> <li>  <b>Grantee</b>: The AWS user or group that you want to have access to thumbnail files. To identify the user or group, you can specify the canonical user ID for an AWS account, an origin access identity for a CloudFront distribution, the registered email address of an AWS account, or a predefined Amazon S3 group.  </li> <li>  <b>Access</b>: The permission that you want to give to the AWS user that you specified in <code>Grantee</code>. Permissions are granted on the thumbnail files that Elastic Transcoder adds to the bucket. Valid values include:  <ul> <li>  <code>READ</code>: The grantee can read the thumbnails and metadata for objects that Elastic Transcoder adds to the Amazon S3 bucket. </li> <li>  <code>READ_ACP</code>: The grantee can read the object ACL for thumbnails that Elastic Transcoder adds to the Amazon S3 bucket. </li> <li>  <code>WRITE_ACP</code>: The grantee can write the ACL for the thumbnails that Elastic Transcoder adds to the Amazon S3 bucket. </li> <li>  <code>FULL_CONTROL</code>: The grantee has <code>READ</code>, <code>READ_ACP</code>, and <code>WRITE_ACP</code> permissions for the thumbnails that Elastic Transcoder adds to the Amazon S3 bucket.  </li> </ul> </li> <li>  <b>StorageClass</b>: The Amazon S3 storage class, <code>Standard</code> or <code>ReducedRedundancy</code>, that you want Elastic Transcoder to assign to the thumbnails that it stores in your Amazon S3 bucket. </li> </ul>:<br/>ContentConfig:  The optional <code>ContentConfig</code> object specifies information about the Amazon S3 bucket in which you want Elastic Transcoder to save transcoded files and playlists: which bucket to use, which users you want to have access to the files, the type of access you want users to have, and the storage class that you want to assign to the files. If you specify values for <code>ContentConfig</code>, you must also specify values for <code>ThumbnailConfig</code>. If you specify values for <code>ContentConfig</code> and <code>ThumbnailConfig</code>, omit the <code>OutputBucket</code> object. <ul> <li>  <b>Bucket</b>: The Amazon S3 bucket in which you want Elastic Transcoder to save transcoded files and playlists. </li> <li>  <b>Permissions</b> (Optional): The Permissions object specifies which users you want to have access to transcoded files and the type of access you want them to have. You can grant permissions to a maximum of 30 users and/or predefined Amazon S3 groups. </li> <li>  <b>Grantee Type</b>: Specify the type of value that appears in the <code>Grantee</code> object: <ul> <li>  <b>Canonical</b>: The value in the <code>Grantee</code> object is either the canonical user ID for an AWS account or an origin access identity for an Amazon CloudFront distribution. For more information about canonical user IDs, see Access Control List (ACL) Overview in the Amazon Simple Storage Service Developer Guide. For more information about using CloudFront origin access identities to require that users use CloudFront URLs instead of Amazon S3 URLs, see Using an Origin Access Identity to Restrict Access to Your Amazon S3 Content. <important> A canonical user ID is not the same as an AWS account number. </important> </li> <li>  <b>Email</b>: The value in the <code>Grantee</code> object is the registered email address of an AWS account. </li> <li>  <b>Group</b>: The value in the <code>Grantee</code> object is one of the following predefined Amazon S3 groups: <code>AllUsers</code>, <code>AuthenticatedUsers</code>, or <code>LogDelivery</code>. </li> </ul> </li> <li>  <b>Grantee</b>: The AWS user or group that you want to have access to transcoded files and playlists. To identify the user or group, you can specify the canonical user ID for an AWS account, an origin access identity for a CloudFront distribution, the registered email address of an AWS account, or a predefined Amazon S3 group  </li> <li>  <b>Access</b>: The permission that you want to give to the AWS user that you specified in <code>Grantee</code>. Permissions are granted on the files that Elastic Transcoder adds to the bucket, including playlists and video files. Valid values include:  <ul> <li>  <code>READ</code>: The grantee can read the objects and metadata for objects that Elastic Transcoder adds to the Amazon S3 bucket. </li> <li>  <code>READ_ACP</code>: The grantee can read the object ACL for objects that Elastic Transcoder adds to the Amazon S3 bucket.  </li> <li>  <code>WRITE_ACP</code>: The grantee can write the ACL for the objects that Elastic Transcoder adds to the Amazon S3 bucket. </li> <li>  <code>FULL_CONTROL</code>: The grantee has <code>READ</code>, <code>READ_ACP</code>, and <code>WRITE_ACP</code> permissions for the objects that Elastic Transcoder adds to the Amazon S3 bucket. </li> </ul> </li> <li>  <b>StorageClass</b>: The Amazon S3 storage class, <code>Standard</code> or <code>ReducedRedundancy</code>, that you want Elastic Transcoder to assign to the video files and playlists that it stores in your Amazon S3 bucket. </li> </ul>:<br/>Notifications:  The topic ARN for the Amazon Simple Notification Service (Amazon SNS) topic that you want to notify to report job status. <important> To receive notifications, you must also subscribe to the new topic in the Amazon SNS console. </important> <ul> <li>  <b>Progressing</b>: The topic ARN for the Amazon Simple Notification Service (Amazon SNS) topic that you want to notify when Elastic Transcoder has started to process jobs that are added to this pipeline. This is the ARN that Amazon SNS returned when you created the topic. </li> <li>  <b>Complete</b>: The topic ARN for the Amazon SNS topic that you want to notify when Elastic Transcoder has finished processing a job. This is the ARN that Amazon SNS returned when you created the topic. </li> <li>  <b>Warning</b>: The topic ARN for the Amazon SNS topic that you want to notify when Elastic Transcoder encounters a warning condition. This is the ARN that Amazon SNS returned when you created the topic. </li> <li>  <b>Error</b>: The topic ARN for the Amazon SNS topic that you want to notify when Elastic Transcoder encounters an error condition. This is the ARN that Amazon SNS returned when you created the topic. </li> </ul>:<br/>AwsKmsKeyArn:  The AWS Key Management Service (AWS KMS) key that you want to use with this pipeline. If you use either <code>s3</code> or <code>s3-aws-kms</code> as your <code>Encryption:Mode</code>, you don't need to provide a key with your job because a default key, known as an AWS-KMS key, is created for you automatically. You need to provide an AWS-KMS key only if you want to use a non-default AWS-KMS key, or if you are using an <code>Encryption:Mode</code> of <code>aes-cbc-pkcs7</code>, <code>aes-ctr</code>, or <code>aes-gcm</code>.<br/>Role:  The IAM Amazon Resource Name (ARN) for the role that you want Elastic Transcoder to use to transcode jobs for this pipeline.<br/>InputBucket:  The Amazon S3 bucket in which you saved the media files that you want to transcode and the graphics that you want to use as watermarks.<br/>Name:  The name of the pipeline. We recommend that the name be unique within the AWS account, but uniqueness is not enforced. Constraints: Maximum 40 characters<br/>Id:  The ID of the pipeline that you want to update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Error</i> The Amazon SNS topic that you want to notify when Elastic Transcoder encounters an error condition.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Warning</i> The Amazon SNS topic that you want to notify when Elastic Transcoder encounters a warning condition.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Completed</i> The Amazon SNS topic that you want to notify when Elastic Transcoder has finished processing the job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Progressing</i> The Amazon Simple Notification Service (Amazon SNS) topic that you want to notify when Elastic Transcoder has started to process the job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Permissions</i> Optional. The <code>Permissions</code> object specifies which users and/or predefined Amazon S3 groups you want to have access to transcoded files and playlists, and the type of access you want them to have. You can grant permissions to a maximum of 30 users and/or predefined Amazon S3 groups. If you include <code>Permissions</code>, Elastic Transcoder grants only the permissions that you specify. It does not grant full permissions to the owner of the role specified by <code>Role</code>. If you want that user to have full control, you must explicitly grant full control to the user.  If you omit <code>Permissions</code>, Elastic Transcoder grants full control over the transcoded files and playlists to the owner of the role specified by <code>Role</code>, and grants no other permissions to any other user or group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageClass</i>  The Amazon S3 storage class, <code>Standard</code> or <code>ReducedRedundancy</code>, that you want Elastic Transcoder to assign to the video files and playlists that it stores in your Amazon S3 bucket. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i>  The Amazon S3 bucket in which you want Elastic Transcoder to save the transcoded files. Specify this value when all of the following are true: <ul> <li> You want to save transcoded files, thumbnails (if any), and playlists (if any) together in one bucket. </li> <li> You do not want to specify the users or groups who have access to the transcoded files, thumbnails, and playlists. </li> <li> You do not want to specify the permissions that Elastic Transcoder grants to the files. </li> <li> You want to associate the transcoded files and thumbnails with the Amazon S3 Standard storage class. </li> </ul> If you want to save transcoded files and playlists in one bucket and thumbnails in another bucket, specify which users can access the transcoded files or the permissions the users have, or change the Amazon S3 storage class, omit OutputBucket and specify values for <code>ContentConfig</code> and <code>ThumbnailConfig</code> instead. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Permissions</i> Optional. The <code>Permissions</code> object specifies which users and/or predefined Amazon S3 groups you want to have access to transcoded files and playlists, and the type of access you want them to have. You can grant permissions to a maximum of 30 users and/or predefined Amazon S3 groups. If you include <code>Permissions</code>, Elastic Transcoder grants only the permissions that you specify. It does not grant full permissions to the owner of the role specified by <code>Role</code>. If you want that user to have full control, you must explicitly grant full control to the user.  If you omit <code>Permissions</code>, Elastic Transcoder grants full control over the transcoded files and playlists to the owner of the role specified by <code>Role</code>, and grants no other permissions to any other user or group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageClass</i>  The Amazon S3 storage class, <code>Standard</code> or <code>ReducedRedundancy</code>, that you want Elastic Transcoder to assign to the video files and playlists that it stores in your Amazon S3 bucket. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i>  The Amazon S3 bucket in which you want Elastic Transcoder to save the transcoded files. Specify this value when all of the following are true: <ul> <li> You want to save transcoded files, thumbnails (if any), and playlists (if any) together in one bucket. </li> <li> You do not want to specify the users or groups who have access to the transcoded files, thumbnails, and playlists. </li> <li> You do not want to specify the permissions that Elastic Transcoder grants to the files. </li> <li> You want to associate the transcoded files and thumbnails with the Amazon S3 Standard storage class. </li> </ul> If you want to save transcoded files and playlists in one bucket and thumbnails in another bucket, specify which users can access the transcoded files or the permissions the users have, or change the Amazon S3 storage class, omit OutputBucket and specify values for <code>ContentConfig</code> and <code>ThumbnailConfig</code> instead. <br/>
        :return: Warnings:  Elastic Transcoder returns a warning if the resources used by your pipeline are not in the same region as the pipeline. Using resources in the same region, such as your Amazon S3 buckets, Amazon SNS notification topics, and AWS KMS key, reduces processing time and prevents cross-regional charges.<br/>Pipeline:  The pipeline updated by this <code>UpdatePipelineResponse</code> call.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ThumbnailConfig</i> Information about the Amazon S3 bucket in which you want Elastic Transcoder to save thumbnail files. Either you specify both <code>ContentConfig</code> and <code>ThumbnailConfig</code>, or you specify <code>OutputBucket</code>. <ul> <li>  <code>Bucket</code>: The Amazon S3 bucket in which you want Elastic Transcoder to save thumbnail files.  </li> <li>  <code>Permissions</code>: A list of the users and/or predefined Amazon S3 groups you want to have access to thumbnail files, and the type of access that you want them to have.  <ul> <li> GranteeType: The type of value that appears in the Grantee object: <ul> <li>  <code>Canonical</code>: Either the canonical user ID for an AWS account or an origin access identity for an Amazon CloudFront distribution. <important> A canonical user ID is not the same as an AWS account number. </important> </li> <li>  <code>Email</code>: The registered email address of an AWS account. </li> <li>  <code>Group</code>: One of the following predefined Amazon S3 groups: <code>AllUsers</code>, <code>AuthenticatedUsers</code>, or <code>LogDelivery</code>. </li> </ul> </li> <li>  <code>Grantee</code>: The AWS user or group that you want to have access to thumbnail files. </li> <li> Access: The permission that you want to give to the AWS user that is listed in Grantee. Valid values include:  <ul> <li>  <code>READ</code>: The grantee can read the thumbnails and metadata for thumbnails that Elastic Transcoder adds to the Amazon S3 bucket. </li> <li>  <code>READ_ACP</code>: The grantee can read the object ACL for thumbnails that Elastic Transcoder adds to the Amazon S3 bucket. </li> <li>  <code>WRITE_ACP</code>: The grantee can write the ACL for the thumbnails that Elastic Transcoder adds to the Amazon S3 bucket. </li> <li>  <code>FULL_CONTROL</code>: The grantee has READ, READ_ACP, and WRITE_ACP permissions for the thumbnails that Elastic Transcoder adds to the Amazon S3 bucket. </li> </ul> </li> </ul> </li> <li>  <code>StorageClass</code>: The Amazon S3 storage class, <code>Standard</code> or <code>ReducedRedundancy</code>, that you want Elastic Transcoder to assign to the thumbnails that it stores in your Amazon S3 bucket. </li> </ul>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ThumbnailConfig</b>: Information about the Amazon S3 bucket in which you want Elastic Transcoder to save thumbnail files. Either you specify both <code>ContentConfig</code> and <code>ThumbnailConfig</code>, or you specify <code>OutputBucket</code>. <ul> <li>  <code>Bucket</code>: The Amazon S3 bucket in which you want Elastic Transcoder to save thumbnail files.  </li> <li>  <code>Permissions</code>: A list of the users and/or predefined Amazon S3 groups you want to have access to thumbnail files, and the type of access that you want them to have.  <ul> <li> GranteeType: The type of value that appears in the Grantee object: <ul> <li>  <code>Canonical</code>: Either the canonical user ID for an AWS account or an origin access identity for an Amazon CloudFront distribution. <important> A canonical user ID is not the same as an AWS account number. </important> </li> <li>  <code>Email</code>: The registered email address of an AWS account. </li> <li>  <code>Group</code>: One of the following predefined Amazon S3 groups: <code>AllUsers</code>, <code>AuthenticatedUsers</code>, or <code>LogDelivery</code>. </li> </ul> </li> <li>  <code>Grantee</code>: The AWS user or group that you want to have access to thumbnail files. </li> <li> Access: The permission that you want to give to the AWS user that is listed in Grantee. Valid values include:  <ul> <li>  <code>READ</code>: The grantee can read the thumbnails and metadata for thumbnails that Elastic Transcoder adds to the Amazon S3 bucket. </li> <li>  <code>READ_ACP</code>: The grantee can read the object ACL for thumbnails that Elastic Transcoder adds to the Amazon S3 bucket. </li> <li>  <code>WRITE_ACP</code>: The grantee can write the ACL for the thumbnails that Elastic Transcoder adds to the Amazon S3 bucket. </li> <li>  <code>FULL_CONTROL</code>: The grantee has READ, READ_ACP, and WRITE_ACP permissions for the thumbnails that Elastic Transcoder adds to the Amazon S3 bucket. </li> </ul> </li> </ul> </li> <li>  <code>StorageClass</code>: The Amazon S3 storage class, <code>Standard</code> or <code>ReducedRedundancy</code>, that you want Elastic Transcoder to assign to the thumbnails that it stores in your Amazon S3 bucket. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ContentConfig</i> Information about the Amazon S3 bucket in which you want Elastic Transcoder to save transcoded files and playlists. Either you specify both <code>ContentConfig</code> and <code>ThumbnailConfig</code>, or you specify <code>OutputBucket</code>. <ul> <li>  <b>Bucket</b>: The Amazon S3 bucket in which you want Elastic Transcoder to save transcoded files and playlists. </li> <li>  <b>Permissions</b>: A list of the users and/or predefined Amazon S3 groups you want to have access to transcoded files and playlists, and the type of access that you want them to have.  <ul> <li> GranteeType: The type of value that appears in the <code>Grantee</code> object:  <ul> <li>  <code>Canonical</code>: Either the canonical user ID for an AWS account or an origin access identity for an Amazon CloudFront distribution. </li> <li>  <code>Email</code>: The registered email address of an AWS account. </li> <li>  <code>Group</code>: One of the following predefined Amazon S3 groups: <code>AllUsers</code>, <code>AuthenticatedUsers</code>, or <code>LogDelivery</code>. </li> </ul> </li> <li>  <code>Grantee</code>: The AWS user or group that you want to have access to transcoded files and playlists. </li> <li>  <code>Access</code>: The permission that you want to give to the AWS user that is listed in <code>Grantee</code>. Valid values include: <ul> <li>  <code>READ</code>: The grantee can read the objects and metadata for objects that Elastic Transcoder adds to the Amazon S3 bucket. </li> <li>  <code>READ_ACP</code>: The grantee can read the object ACL for objects that Elastic Transcoder adds to the Amazon S3 bucket. </li> <li>  <code>WRITE_ACP</code>: The grantee can write the ACL for the objects that Elastic Transcoder adds to the Amazon S3 bucket. </li> <li>  <code>FULL_CONTROL</code>: The grantee has <code>READ</code>, <code>READ_ACP</code>, and <code>WRITE_ACP</code> permissions for the objects that Elastic Transcoder adds to the Amazon S3 bucket. </li> </ul> </li> </ul> </li> <li>  <b>StorageClass</b>: The Amazon S3 storage class, Standard or ReducedRedundancy, that you want Elastic Transcoder to assign to the video files and playlists that it stores in your Amazon S3 bucket.  </li> </ul>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ContentConfig</b>: Information about the Amazon S3 bucket in which you want Elastic Transcoder to save transcoded files and playlists. Either you specify both <code>ContentConfig</code> and <code>ThumbnailConfig</code>, or you specify <code>OutputBucket</code>. <ul> <li>  <b>Bucket</b>: The Amazon S3 bucket in which you want Elastic Transcoder to save transcoded files and playlists. </li> <li>  <b>Permissions</b>: A list of the users and/or predefined Amazon S3 groups you want to have access to transcoded files and playlists, and the type of access that you want them to have.  <ul> <li> GranteeType: The type of value that appears in the <code>Grantee</code> object:  <ul> <li>  <code>Canonical</code>: Either the canonical user ID for an AWS account or an origin access identity for an Amazon CloudFront distribution. </li> <li>  <code>Email</code>: The registered email address of an AWS account. </li> <li>  <code>Group</code>: One of the following predefined Amazon S3 groups: <code>AllUsers</code>, <code>AuthenticatedUsers</code>, or <code>LogDelivery</code>. </li> </ul> </li> <li>  <code>Grantee</code>: The AWS user or group that you want to have access to transcoded files and playlists. </li> <li>  <code>Access</code>: The permission that you want to give to the AWS user that is listed in <code>Grantee</code>. Valid values include: <ul> <li>  <code>READ</code>: The grantee can read the objects and metadata for objects that Elastic Transcoder adds to the Amazon S3 bucket. </li> <li>  <code>READ_ACP</code>: The grantee can read the object ACL for objects that Elastic Transcoder adds to the Amazon S3 bucket. </li> <li>  <code>WRITE_ACP</code>: The grantee can write the ACL for the objects that Elastic Transcoder adds to the Amazon S3 bucket. </li> <li>  <code>FULL_CONTROL</code>: The grantee has <code>READ</code>, <code>READ_ACP</code>, and <code>WRITE_ACP</code> permissions for the objects that Elastic Transcoder adds to the Amazon S3 bucket. </li> </ul> </li> </ul> </li> <li>  <b>StorageClass</b>: The Amazon S3 storage class, Standard or ReducedRedundancy, that you want Elastic Transcoder to assign to the video files and playlists that it stores in your Amazon S3 bucket.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Notifications</i> The Amazon Simple Notification Service (Amazon SNS) topic that you want to notify to report job status. <important> To receive notifications, you must also subscribe to the new topic in the Amazon SNS console. </important> <ul> <li>  <b>Progressing</b> (optional): The Amazon Simple Notification Service (Amazon SNS) topic that you want to notify when Elastic Transcoder has started to process the job. </li> <li>  <b>Complete</b> (optional): The Amazon SNS topic that you want to notify when Elastic Transcoder has finished processing the job. </li> <li>  <b>Warning</b> (optional): The Amazon SNS topic that you want to notify when Elastic Transcoder encounters a warning condition. </li> <li>  <b>Error</b> (optional): The Amazon SNS topic that you want to notify when Elastic Transcoder encounters an error condition. </li> </ul>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Notifications</b>: The Amazon Simple Notification Service (Amazon SNS) topic that you want to notify to report job status. <important> To receive notifications, you must also subscribe to the new topic in the Amazon SNS console. </important> <ul> <li>  <b>Progressing</b> (optional): The Amazon Simple Notification Service (Amazon SNS) topic that you want to notify when Elastic Transcoder has started to process the job. </li> <li>  <b>Complete</b> (optional): The Amazon SNS topic that you want to notify when Elastic Transcoder has finished processing the job. </li> <li>  <b>Warning</b> (optional): The Amazon SNS topic that you want to notify when Elastic Transcoder encounters a warning condition. </li> <li>  <b>Error</b> (optional): The Amazon SNS topic that you want to notify when Elastic Transcoder encounters an error condition. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AwsKmsKeyArn</i> The AWS Key Management Service (AWS KMS) key that you want to use with this pipeline. If you use either <code>s3</code> or <code>s3-aws-kms</code> as your <code>Encryption:Mode</code>, you don't need to provide a key with your job because a default key, known as an AWS-KMS key, is created for you automatically. You need to provide an AWS-KMS key only if you want to use a non-default AWS-KMS key, or if you are using an <code>Encryption:Mode</code> of <code>aes-cbc-pkcs7</code>, <code>aes-ctr</code>, or <code>aes-gcm</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Role</i> The IAM Amazon Resource Name (ARN) for the role that Elastic Transcoder uses to transcode jobs for this pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OutputBucket</i> The Amazon S3 bucket in which you want Elastic Transcoder to save transcoded files, thumbnails, and playlists. Either you specify this value, or you specify both <code>ContentConfig</code> and <code>ThumbnailConfig</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InputBucket</i> The Amazon S3 bucket from which Elastic Transcoder gets media files for transcoding and the graphics files, if any, that you want to use for watermarks.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current status of the pipeline: <ul> <li>  <code>Active</code>: The pipeline is processing jobs. </li> <li>  <code>Paused</code>: The pipeline is not currently processing jobs. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the pipeline. We recommend that the name be unique within the AWS account, but uniqueness is not enforced. Constraints: Maximum 40 characters<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) for the pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The identifier for the pipeline. You use this value to identify the pipeline in which you want to perform a variety of operations, such as creating a job or a preset.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Error</i> The Amazon SNS topic that you want to notify when Elastic Transcoder encounters an error condition.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Warning</i> The Amazon SNS topic that you want to notify when Elastic Transcoder encounters a warning condition.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Completed</i> The Amazon SNS topic that you want to notify when Elastic Transcoder has finished processing the job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Progressing</i> The Amazon Simple Notification Service (Amazon SNS) topic that you want to notify when Elastic Transcoder has started to process the job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Permissions</i> Optional. The <code>Permissions</code> object specifies which users and/or predefined Amazon S3 groups you want to have access to transcoded files and playlists, and the type of access you want them to have. You can grant permissions to a maximum of 30 users and/or predefined Amazon S3 groups. If you include <code>Permissions</code>, Elastic Transcoder grants only the permissions that you specify. It does not grant full permissions to the owner of the role specified by <code>Role</code>. If you want that user to have full control, you must explicitly grant full control to the user.  If you omit <code>Permissions</code>, Elastic Transcoder grants full control over the transcoded files and playlists to the owner of the role specified by <code>Role</code>, and grants no other permissions to any other user or group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageClass</i>  The Amazon S3 storage class, <code>Standard</code> or <code>ReducedRedundancy</code>, that you want Elastic Transcoder to assign to the video files and playlists that it stores in your Amazon S3 bucket. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i>  The Amazon S3 bucket in which you want Elastic Transcoder to save the transcoded files. Specify this value when all of the following are true: <ul> <li> You want to save transcoded files, thumbnails (if any), and playlists (if any) together in one bucket. </li> <li> You do not want to specify the users or groups who have access to the transcoded files, thumbnails, and playlists. </li> <li> You do not want to specify the permissions that Elastic Transcoder grants to the files. </li> <li> You want to associate the transcoded files and thumbnails with the Amazon S3 Standard storage class. </li> </ul> If you want to save transcoded files and playlists in one bucket and thumbnails in another bucket, specify which users can access the transcoded files or the permissions the users have, or change the Amazon S3 storage class, omit OutputBucket and specify values for <code>ContentConfig</code> and <code>ThumbnailConfig</code> instead. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Permissions</i> Optional. The <code>Permissions</code> object specifies which users and/or predefined Amazon S3 groups you want to have access to transcoded files and playlists, and the type of access you want them to have. You can grant permissions to a maximum of 30 users and/or predefined Amazon S3 groups. If you include <code>Permissions</code>, Elastic Transcoder grants only the permissions that you specify. It does not grant full permissions to the owner of the role specified by <code>Role</code>. If you want that user to have full control, you must explicitly grant full control to the user.  If you omit <code>Permissions</code>, Elastic Transcoder grants full control over the transcoded files and playlists to the owner of the role specified by <code>Role</code>, and grants no other permissions to any other user or group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageClass</i>  The Amazon S3 storage class, <code>Standard</code> or <code>ReducedRedundancy</code>, that you want Elastic Transcoder to assign to the video files and playlists that it stores in your Amazon S3 bucket. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i>  The Amazon S3 bucket in which you want Elastic Transcoder to save the transcoded files. Specify this value when all of the following are true: <ul> <li> You want to save transcoded files, thumbnails (if any), and playlists (if any) together in one bucket. </li> <li> You do not want to specify the users or groups who have access to the transcoded files, thumbnails, and playlists. </li> <li> You do not want to specify the permissions that Elastic Transcoder grants to the files. </li> <li> You want to associate the transcoded files and thumbnails with the Amazon S3 Standard storage class. </li> </ul> If you want to save transcoded files and playlists in one bucket and thumbnails in another bucket, specify which users can access the transcoded files or the permissions the users have, or change the Amazon S3 storage class, omit OutputBucket and specify values for <code>ContentConfig</code> and <code>ThumbnailConfig</code> instead. <br/>        """
        pass

    def update_pipeline_notifications(self, Notifications: Notifications, Id: str) -> UpdatePipelineNotificationsResponse:
        r"""With the UpdatePipelineNotifications operation, you can update Amazon Simple Notification Service (Amazon SNS) notifications for a pipeline. When you update notifications for a pipeline, Elastic Transcoder returns the values that you specified in the request.

        :param self:
        :param Notifications:  The topic ARN for the Amazon Simple Notification Service (Amazon SNS) topic that you want to notify to report job status. <important> To receive notifications, you must also subscribe to the new topic in the Amazon SNS console. </important> <ul> <li>  <b>Progressing</b>: The topic ARN for the Amazon Simple Notification Service (Amazon SNS) topic that you want to notify when Elastic Transcoder has started to process jobs that are added to this pipeline. This is the ARN that Amazon SNS returned when you created the topic. </li> <li>  <b>Complete</b>: The topic ARN for the Amazon SNS topic that you want to notify when Elastic Transcoder has finished processing a job. This is the ARN that Amazon SNS returned when you created the topic. </li> <li>  <b>Warning</b>: The topic ARN for the Amazon SNS topic that you want to notify when Elastic Transcoder encounters a warning condition. This is the ARN that Amazon SNS returned when you created the topic. </li> <li>  <b>Error</b>: The topic ARN for the Amazon SNS topic that you want to notify when Elastic Transcoder encounters an error condition. This is the ARN that Amazon SNS returned when you created the topic. </li> </ul>:<br/>Id:  The identifier of the pipeline for which you want to change notification settings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Error</i> The Amazon SNS topic that you want to notify when Elastic Transcoder encounters an error condition.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Warning</i> The Amazon SNS topic that you want to notify when Elastic Transcoder encounters a warning condition.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Completed</i> The Amazon SNS topic that you want to notify when Elastic Transcoder has finished processing the job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Progressing</i> The Amazon Simple Notification Service (Amazon SNS) topic that you want to notify when Elastic Transcoder has started to process the job.<br/>
        :return: Pipeline:  A section of the response body that provides information about the pipeline associated with this notification.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ThumbnailConfig</i> Information about the Amazon S3 bucket in which you want Elastic Transcoder to save thumbnail files. Either you specify both <code>ContentConfig</code> and <code>ThumbnailConfig</code>, or you specify <code>OutputBucket</code>. <ul> <li>  <code>Bucket</code>: The Amazon S3 bucket in which you want Elastic Transcoder to save thumbnail files.  </li> <li>  <code>Permissions</code>: A list of the users and/or predefined Amazon S3 groups you want to have access to thumbnail files, and the type of access that you want them to have.  <ul> <li> GranteeType: The type of value that appears in the Grantee object: <ul> <li>  <code>Canonical</code>: Either the canonical user ID for an AWS account or an origin access identity for an Amazon CloudFront distribution. <important> A canonical user ID is not the same as an AWS account number. </important> </li> <li>  <code>Email</code>: The registered email address of an AWS account. </li> <li>  <code>Group</code>: One of the following predefined Amazon S3 groups: <code>AllUsers</code>, <code>AuthenticatedUsers</code>, or <code>LogDelivery</code>. </li> </ul> </li> <li>  <code>Grantee</code>: The AWS user or group that you want to have access to thumbnail files. </li> <li> Access: The permission that you want to give to the AWS user that is listed in Grantee. Valid values include:  <ul> <li>  <code>READ</code>: The grantee can read the thumbnails and metadata for thumbnails that Elastic Transcoder adds to the Amazon S3 bucket. </li> <li>  <code>READ_ACP</code>: The grantee can read the object ACL for thumbnails that Elastic Transcoder adds to the Amazon S3 bucket. </li> <li>  <code>WRITE_ACP</code>: The grantee can write the ACL for the thumbnails that Elastic Transcoder adds to the Amazon S3 bucket. </li> <li>  <code>FULL_CONTROL</code>: The grantee has READ, READ_ACP, and WRITE_ACP permissions for the thumbnails that Elastic Transcoder adds to the Amazon S3 bucket. </li> </ul> </li> </ul> </li> <li>  <code>StorageClass</code>: The Amazon S3 storage class, <code>Standard</code> or <code>ReducedRedundancy</code>, that you want Elastic Transcoder to assign to the thumbnails that it stores in your Amazon S3 bucket. </li> </ul>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ThumbnailConfig</b>: Information about the Amazon S3 bucket in which you want Elastic Transcoder to save thumbnail files. Either you specify both <code>ContentConfig</code> and <code>ThumbnailConfig</code>, or you specify <code>OutputBucket</code>. <ul> <li>  <code>Bucket</code>: The Amazon S3 bucket in which you want Elastic Transcoder to save thumbnail files.  </li> <li>  <code>Permissions</code>: A list of the users and/or predefined Amazon S3 groups you want to have access to thumbnail files, and the type of access that you want them to have.  <ul> <li> GranteeType: The type of value that appears in the Grantee object: <ul> <li>  <code>Canonical</code>: Either the canonical user ID for an AWS account or an origin access identity for an Amazon CloudFront distribution. <important> A canonical user ID is not the same as an AWS account number. </important> </li> <li>  <code>Email</code>: The registered email address of an AWS account. </li> <li>  <code>Group</code>: One of the following predefined Amazon S3 groups: <code>AllUsers</code>, <code>AuthenticatedUsers</code>, or <code>LogDelivery</code>. </li> </ul> </li> <li>  <code>Grantee</code>: The AWS user or group that you want to have access to thumbnail files. </li> <li> Access: The permission that you want to give to the AWS user that is listed in Grantee. Valid values include:  <ul> <li>  <code>READ</code>: The grantee can read the thumbnails and metadata for thumbnails that Elastic Transcoder adds to the Amazon S3 bucket. </li> <li>  <code>READ_ACP</code>: The grantee can read the object ACL for thumbnails that Elastic Transcoder adds to the Amazon S3 bucket. </li> <li>  <code>WRITE_ACP</code>: The grantee can write the ACL for the thumbnails that Elastic Transcoder adds to the Amazon S3 bucket. </li> <li>  <code>FULL_CONTROL</code>: The grantee has READ, READ_ACP, and WRITE_ACP permissions for the thumbnails that Elastic Transcoder adds to the Amazon S3 bucket. </li> </ul> </li> </ul> </li> <li>  <code>StorageClass</code>: The Amazon S3 storage class, <code>Standard</code> or <code>ReducedRedundancy</code>, that you want Elastic Transcoder to assign to the thumbnails that it stores in your Amazon S3 bucket. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ContentConfig</i> Information about the Amazon S3 bucket in which you want Elastic Transcoder to save transcoded files and playlists. Either you specify both <code>ContentConfig</code> and <code>ThumbnailConfig</code>, or you specify <code>OutputBucket</code>. <ul> <li>  <b>Bucket</b>: The Amazon S3 bucket in which you want Elastic Transcoder to save transcoded files and playlists. </li> <li>  <b>Permissions</b>: A list of the users and/or predefined Amazon S3 groups you want to have access to transcoded files and playlists, and the type of access that you want them to have.  <ul> <li> GranteeType: The type of value that appears in the <code>Grantee</code> object:  <ul> <li>  <code>Canonical</code>: Either the canonical user ID for an AWS account or an origin access identity for an Amazon CloudFront distribution. </li> <li>  <code>Email</code>: The registered email address of an AWS account. </li> <li>  <code>Group</code>: One of the following predefined Amazon S3 groups: <code>AllUsers</code>, <code>AuthenticatedUsers</code>, or <code>LogDelivery</code>. </li> </ul> </li> <li>  <code>Grantee</code>: The AWS user or group that you want to have access to transcoded files and playlists. </li> <li>  <code>Access</code>: The permission that you want to give to the AWS user that is listed in <code>Grantee</code>. Valid values include: <ul> <li>  <code>READ</code>: The grantee can read the objects and metadata for objects that Elastic Transcoder adds to the Amazon S3 bucket. </li> <li>  <code>READ_ACP</code>: The grantee can read the object ACL for objects that Elastic Transcoder adds to the Amazon S3 bucket. </li> <li>  <code>WRITE_ACP</code>: The grantee can write the ACL for the objects that Elastic Transcoder adds to the Amazon S3 bucket. </li> <li>  <code>FULL_CONTROL</code>: The grantee has <code>READ</code>, <code>READ_ACP</code>, and <code>WRITE_ACP</code> permissions for the objects that Elastic Transcoder adds to the Amazon S3 bucket. </li> </ul> </li> </ul> </li> <li>  <b>StorageClass</b>: The Amazon S3 storage class, Standard or ReducedRedundancy, that you want Elastic Transcoder to assign to the video files and playlists that it stores in your Amazon S3 bucket.  </li> </ul>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ContentConfig</b>: Information about the Amazon S3 bucket in which you want Elastic Transcoder to save transcoded files and playlists. Either you specify both <code>ContentConfig</code> and <code>ThumbnailConfig</code>, or you specify <code>OutputBucket</code>. <ul> <li>  <b>Bucket</b>: The Amazon S3 bucket in which you want Elastic Transcoder to save transcoded files and playlists. </li> <li>  <b>Permissions</b>: A list of the users and/or predefined Amazon S3 groups you want to have access to transcoded files and playlists, and the type of access that you want them to have.  <ul> <li> GranteeType: The type of value that appears in the <code>Grantee</code> object:  <ul> <li>  <code>Canonical</code>: Either the canonical user ID for an AWS account or an origin access identity for an Amazon CloudFront distribution. </li> <li>  <code>Email</code>: The registered email address of an AWS account. </li> <li>  <code>Group</code>: One of the following predefined Amazon S3 groups: <code>AllUsers</code>, <code>AuthenticatedUsers</code>, or <code>LogDelivery</code>. </li> </ul> </li> <li>  <code>Grantee</code>: The AWS user or group that you want to have access to transcoded files and playlists. </li> <li>  <code>Access</code>: The permission that you want to give to the AWS user that is listed in <code>Grantee</code>. Valid values include: <ul> <li>  <code>READ</code>: The grantee can read the objects and metadata for objects that Elastic Transcoder adds to the Amazon S3 bucket. </li> <li>  <code>READ_ACP</code>: The grantee can read the object ACL for objects that Elastic Transcoder adds to the Amazon S3 bucket. </li> <li>  <code>WRITE_ACP</code>: The grantee can write the ACL for the objects that Elastic Transcoder adds to the Amazon S3 bucket. </li> <li>  <code>FULL_CONTROL</code>: The grantee has <code>READ</code>, <code>READ_ACP</code>, and <code>WRITE_ACP</code> permissions for the objects that Elastic Transcoder adds to the Amazon S3 bucket. </li> </ul> </li> </ul> </li> <li>  <b>StorageClass</b>: The Amazon S3 storage class, Standard or ReducedRedundancy, that you want Elastic Transcoder to assign to the video files and playlists that it stores in your Amazon S3 bucket.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Notifications</i> The Amazon Simple Notification Service (Amazon SNS) topic that you want to notify to report job status. <important> To receive notifications, you must also subscribe to the new topic in the Amazon SNS console. </important> <ul> <li>  <b>Progressing</b> (optional): The Amazon Simple Notification Service (Amazon SNS) topic that you want to notify when Elastic Transcoder has started to process the job. </li> <li>  <b>Complete</b> (optional): The Amazon SNS topic that you want to notify when Elastic Transcoder has finished processing the job. </li> <li>  <b>Warning</b> (optional): The Amazon SNS topic that you want to notify when Elastic Transcoder encounters a warning condition. </li> <li>  <b>Error</b> (optional): The Amazon SNS topic that you want to notify when Elastic Transcoder encounters an error condition. </li> </ul>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Notifications</b>: The Amazon Simple Notification Service (Amazon SNS) topic that you want to notify to report job status. <important> To receive notifications, you must also subscribe to the new topic in the Amazon SNS console. </important> <ul> <li>  <b>Progressing</b> (optional): The Amazon Simple Notification Service (Amazon SNS) topic that you want to notify when Elastic Transcoder has started to process the job. </li> <li>  <b>Complete</b> (optional): The Amazon SNS topic that you want to notify when Elastic Transcoder has finished processing the job. </li> <li>  <b>Warning</b> (optional): The Amazon SNS topic that you want to notify when Elastic Transcoder encounters a warning condition. </li> <li>  <b>Error</b> (optional): The Amazon SNS topic that you want to notify when Elastic Transcoder encounters an error condition. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AwsKmsKeyArn</i> The AWS Key Management Service (AWS KMS) key that you want to use with this pipeline. If you use either <code>s3</code> or <code>s3-aws-kms</code> as your <code>Encryption:Mode</code>, you don't need to provide a key with your job because a default key, known as an AWS-KMS key, is created for you automatically. You need to provide an AWS-KMS key only if you want to use a non-default AWS-KMS key, or if you are using an <code>Encryption:Mode</code> of <code>aes-cbc-pkcs7</code>, <code>aes-ctr</code>, or <code>aes-gcm</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Role</i> The IAM Amazon Resource Name (ARN) for the role that Elastic Transcoder uses to transcode jobs for this pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OutputBucket</i> The Amazon S3 bucket in which you want Elastic Transcoder to save transcoded files, thumbnails, and playlists. Either you specify this value, or you specify both <code>ContentConfig</code> and <code>ThumbnailConfig</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InputBucket</i> The Amazon S3 bucket from which Elastic Transcoder gets media files for transcoding and the graphics files, if any, that you want to use for watermarks.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current status of the pipeline: <ul> <li>  <code>Active</code>: The pipeline is processing jobs. </li> <li>  <code>Paused</code>: The pipeline is not currently processing jobs. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the pipeline. We recommend that the name be unique within the AWS account, but uniqueness is not enforced. Constraints: Maximum 40 characters<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) for the pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The identifier for the pipeline. You use this value to identify the pipeline in which you want to perform a variety of operations, such as creating a job or a preset.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Error</i> The Amazon SNS topic that you want to notify when Elastic Transcoder encounters an error condition.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Warning</i> The Amazon SNS topic that you want to notify when Elastic Transcoder encounters a warning condition.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Completed</i> The Amazon SNS topic that you want to notify when Elastic Transcoder has finished processing the job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Progressing</i> The Amazon Simple Notification Service (Amazon SNS) topic that you want to notify when Elastic Transcoder has started to process the job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Permissions</i> Optional. The <code>Permissions</code> object specifies which users and/or predefined Amazon S3 groups you want to have access to transcoded files and playlists, and the type of access you want them to have. You can grant permissions to a maximum of 30 users and/or predefined Amazon S3 groups. If you include <code>Permissions</code>, Elastic Transcoder grants only the permissions that you specify. It does not grant full permissions to the owner of the role specified by <code>Role</code>. If you want that user to have full control, you must explicitly grant full control to the user.  If you omit <code>Permissions</code>, Elastic Transcoder grants full control over the transcoded files and playlists to the owner of the role specified by <code>Role</code>, and grants no other permissions to any other user or group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageClass</i>  The Amazon S3 storage class, <code>Standard</code> or <code>ReducedRedundancy</code>, that you want Elastic Transcoder to assign to the video files and playlists that it stores in your Amazon S3 bucket. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i>  The Amazon S3 bucket in which you want Elastic Transcoder to save the transcoded files. Specify this value when all of the following are true: <ul> <li> You want to save transcoded files, thumbnails (if any), and playlists (if any) together in one bucket. </li> <li> You do not want to specify the users or groups who have access to the transcoded files, thumbnails, and playlists. </li> <li> You do not want to specify the permissions that Elastic Transcoder grants to the files. </li> <li> You want to associate the transcoded files and thumbnails with the Amazon S3 Standard storage class. </li> </ul> If you want to save transcoded files and playlists in one bucket and thumbnails in another bucket, specify which users can access the transcoded files or the permissions the users have, or change the Amazon S3 storage class, omit OutputBucket and specify values for <code>ContentConfig</code> and <code>ThumbnailConfig</code> instead. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Permissions</i> Optional. The <code>Permissions</code> object specifies which users and/or predefined Amazon S3 groups you want to have access to transcoded files and playlists, and the type of access you want them to have. You can grant permissions to a maximum of 30 users and/or predefined Amazon S3 groups. If you include <code>Permissions</code>, Elastic Transcoder grants only the permissions that you specify. It does not grant full permissions to the owner of the role specified by <code>Role</code>. If you want that user to have full control, you must explicitly grant full control to the user.  If you omit <code>Permissions</code>, Elastic Transcoder grants full control over the transcoded files and playlists to the owner of the role specified by <code>Role</code>, and grants no other permissions to any other user or group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageClass</i>  The Amazon S3 storage class, <code>Standard</code> or <code>ReducedRedundancy</code>, that you want Elastic Transcoder to assign to the video files and playlists that it stores in your Amazon S3 bucket. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i>  The Amazon S3 bucket in which you want Elastic Transcoder to save the transcoded files. Specify this value when all of the following are true: <ul> <li> You want to save transcoded files, thumbnails (if any), and playlists (if any) together in one bucket. </li> <li> You do not want to specify the users or groups who have access to the transcoded files, thumbnails, and playlists. </li> <li> You do not want to specify the permissions that Elastic Transcoder grants to the files. </li> <li> You want to associate the transcoded files and thumbnails with the Amazon S3 Standard storage class. </li> </ul> If you want to save transcoded files and playlists in one bucket and thumbnails in another bucket, specify which users can access the transcoded files or the permissions the users have, or change the Amazon S3 storage class, omit OutputBucket and specify values for <code>ContentConfig</code> and <code>ThumbnailConfig</code> instead. <br/>        """
        pass

    def update_pipeline_status(self, Status: str, Id: str) -> UpdatePipelineStatusResponse:
        r"""The UpdatePipelineStatus operation pauses or reactivates a pipeline, so that the pipeline stops or restarts the processing of jobs. Changing the pipeline status is useful if you want to cancel one or more jobs. You can't cancel jobs after Elastic Transcoder has started processing them; if you pause the pipeline to which you submitted the jobs, you have more time to get the job IDs for the jobs that you want to cancel, and to send a <a>CancelJob</a> request. 

        :param self:
        :param Status:  The desired status of the pipeline: <ul> <li>  <code>Active</code>: The pipeline is processing jobs. </li> <li>  <code>Paused</code>: The pipeline is not currently processing jobs. </li> </ul><br/>Id:  The identifier of the pipeline to update.<br/>
        :return: Pipeline:  A section of the response body that provides information about the pipeline.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ThumbnailConfig</i> Information about the Amazon S3 bucket in which you want Elastic Transcoder to save thumbnail files. Either you specify both <code>ContentConfig</code> and <code>ThumbnailConfig</code>, or you specify <code>OutputBucket</code>. <ul> <li>  <code>Bucket</code>: The Amazon S3 bucket in which you want Elastic Transcoder to save thumbnail files.  </li> <li>  <code>Permissions</code>: A list of the users and/or predefined Amazon S3 groups you want to have access to thumbnail files, and the type of access that you want them to have.  <ul> <li> GranteeType: The type of value that appears in the Grantee object: <ul> <li>  <code>Canonical</code>: Either the canonical user ID for an AWS account or an origin access identity for an Amazon CloudFront distribution. <important> A canonical user ID is not the same as an AWS account number. </important> </li> <li>  <code>Email</code>: The registered email address of an AWS account. </li> <li>  <code>Group</code>: One of the following predefined Amazon S3 groups: <code>AllUsers</code>, <code>AuthenticatedUsers</code>, or <code>LogDelivery</code>. </li> </ul> </li> <li>  <code>Grantee</code>: The AWS user or group that you want to have access to thumbnail files. </li> <li> Access: The permission that you want to give to the AWS user that is listed in Grantee. Valid values include:  <ul> <li>  <code>READ</code>: The grantee can read the thumbnails and metadata for thumbnails that Elastic Transcoder adds to the Amazon S3 bucket. </li> <li>  <code>READ_ACP</code>: The grantee can read the object ACL for thumbnails that Elastic Transcoder adds to the Amazon S3 bucket. </li> <li>  <code>WRITE_ACP</code>: The grantee can write the ACL for the thumbnails that Elastic Transcoder adds to the Amazon S3 bucket. </li> <li>  <code>FULL_CONTROL</code>: The grantee has READ, READ_ACP, and WRITE_ACP permissions for the thumbnails that Elastic Transcoder adds to the Amazon S3 bucket. </li> </ul> </li> </ul> </li> <li>  <code>StorageClass</code>: The Amazon S3 storage class, <code>Standard</code> or <code>ReducedRedundancy</code>, that you want Elastic Transcoder to assign to the thumbnails that it stores in your Amazon S3 bucket. </li> </ul>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ThumbnailConfig</b>: Information about the Amazon S3 bucket in which you want Elastic Transcoder to save thumbnail files. Either you specify both <code>ContentConfig</code> and <code>ThumbnailConfig</code>, or you specify <code>OutputBucket</code>. <ul> <li>  <code>Bucket</code>: The Amazon S3 bucket in which you want Elastic Transcoder to save thumbnail files.  </li> <li>  <code>Permissions</code>: A list of the users and/or predefined Amazon S3 groups you want to have access to thumbnail files, and the type of access that you want them to have.  <ul> <li> GranteeType: The type of value that appears in the Grantee object: <ul> <li>  <code>Canonical</code>: Either the canonical user ID for an AWS account or an origin access identity for an Amazon CloudFront distribution. <important> A canonical user ID is not the same as an AWS account number. </important> </li> <li>  <code>Email</code>: The registered email address of an AWS account. </li> <li>  <code>Group</code>: One of the following predefined Amazon S3 groups: <code>AllUsers</code>, <code>AuthenticatedUsers</code>, or <code>LogDelivery</code>. </li> </ul> </li> <li>  <code>Grantee</code>: The AWS user or group that you want to have access to thumbnail files. </li> <li> Access: The permission that you want to give to the AWS user that is listed in Grantee. Valid values include:  <ul> <li>  <code>READ</code>: The grantee can read the thumbnails and metadata for thumbnails that Elastic Transcoder adds to the Amazon S3 bucket. </li> <li>  <code>READ_ACP</code>: The grantee can read the object ACL for thumbnails that Elastic Transcoder adds to the Amazon S3 bucket. </li> <li>  <code>WRITE_ACP</code>: The grantee can write the ACL for the thumbnails that Elastic Transcoder adds to the Amazon S3 bucket. </li> <li>  <code>FULL_CONTROL</code>: The grantee has READ, READ_ACP, and WRITE_ACP permissions for the thumbnails that Elastic Transcoder adds to the Amazon S3 bucket. </li> </ul> </li> </ul> </li> <li>  <code>StorageClass</code>: The Amazon S3 storage class, <code>Standard</code> or <code>ReducedRedundancy</code>, that you want Elastic Transcoder to assign to the thumbnails that it stores in your Amazon S3 bucket. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ContentConfig</i> Information about the Amazon S3 bucket in which you want Elastic Transcoder to save transcoded files and playlists. Either you specify both <code>ContentConfig</code> and <code>ThumbnailConfig</code>, or you specify <code>OutputBucket</code>. <ul> <li>  <b>Bucket</b>: The Amazon S3 bucket in which you want Elastic Transcoder to save transcoded files and playlists. </li> <li>  <b>Permissions</b>: A list of the users and/or predefined Amazon S3 groups you want to have access to transcoded files and playlists, and the type of access that you want them to have.  <ul> <li> GranteeType: The type of value that appears in the <code>Grantee</code> object:  <ul> <li>  <code>Canonical</code>: Either the canonical user ID for an AWS account or an origin access identity for an Amazon CloudFront distribution. </li> <li>  <code>Email</code>: The registered email address of an AWS account. </li> <li>  <code>Group</code>: One of the following predefined Amazon S3 groups: <code>AllUsers</code>, <code>AuthenticatedUsers</code>, or <code>LogDelivery</code>. </li> </ul> </li> <li>  <code>Grantee</code>: The AWS user or group that you want to have access to transcoded files and playlists. </li> <li>  <code>Access</code>: The permission that you want to give to the AWS user that is listed in <code>Grantee</code>. Valid values include: <ul> <li>  <code>READ</code>: The grantee can read the objects and metadata for objects that Elastic Transcoder adds to the Amazon S3 bucket. </li> <li>  <code>READ_ACP</code>: The grantee can read the object ACL for objects that Elastic Transcoder adds to the Amazon S3 bucket. </li> <li>  <code>WRITE_ACP</code>: The grantee can write the ACL for the objects that Elastic Transcoder adds to the Amazon S3 bucket. </li> <li>  <code>FULL_CONTROL</code>: The grantee has <code>READ</code>, <code>READ_ACP</code>, and <code>WRITE_ACP</code> permissions for the objects that Elastic Transcoder adds to the Amazon S3 bucket. </li> </ul> </li> </ul> </li> <li>  <b>StorageClass</b>: The Amazon S3 storage class, Standard or ReducedRedundancy, that you want Elastic Transcoder to assign to the video files and playlists that it stores in your Amazon S3 bucket.  </li> </ul>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ContentConfig</b>: Information about the Amazon S3 bucket in which you want Elastic Transcoder to save transcoded files and playlists. Either you specify both <code>ContentConfig</code> and <code>ThumbnailConfig</code>, or you specify <code>OutputBucket</code>. <ul> <li>  <b>Bucket</b>: The Amazon S3 bucket in which you want Elastic Transcoder to save transcoded files and playlists. </li> <li>  <b>Permissions</b>: A list of the users and/or predefined Amazon S3 groups you want to have access to transcoded files and playlists, and the type of access that you want them to have.  <ul> <li> GranteeType: The type of value that appears in the <code>Grantee</code> object:  <ul> <li>  <code>Canonical</code>: Either the canonical user ID for an AWS account or an origin access identity for an Amazon CloudFront distribution. </li> <li>  <code>Email</code>: The registered email address of an AWS account. </li> <li>  <code>Group</code>: One of the following predefined Amazon S3 groups: <code>AllUsers</code>, <code>AuthenticatedUsers</code>, or <code>LogDelivery</code>. </li> </ul> </li> <li>  <code>Grantee</code>: The AWS user or group that you want to have access to transcoded files and playlists. </li> <li>  <code>Access</code>: The permission that you want to give to the AWS user that is listed in <code>Grantee</code>. Valid values include: <ul> <li>  <code>READ</code>: The grantee can read the objects and metadata for objects that Elastic Transcoder adds to the Amazon S3 bucket. </li> <li>  <code>READ_ACP</code>: The grantee can read the object ACL for objects that Elastic Transcoder adds to the Amazon S3 bucket. </li> <li>  <code>WRITE_ACP</code>: The grantee can write the ACL for the objects that Elastic Transcoder adds to the Amazon S3 bucket. </li> <li>  <code>FULL_CONTROL</code>: The grantee has <code>READ</code>, <code>READ_ACP</code>, and <code>WRITE_ACP</code> permissions for the objects that Elastic Transcoder adds to the Amazon S3 bucket. </li> </ul> </li> </ul> </li> <li>  <b>StorageClass</b>: The Amazon S3 storage class, Standard or ReducedRedundancy, that you want Elastic Transcoder to assign to the video files and playlists that it stores in your Amazon S3 bucket.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Notifications</i> The Amazon Simple Notification Service (Amazon SNS) topic that you want to notify to report job status. <important> To receive notifications, you must also subscribe to the new topic in the Amazon SNS console. </important> <ul> <li>  <b>Progressing</b> (optional): The Amazon Simple Notification Service (Amazon SNS) topic that you want to notify when Elastic Transcoder has started to process the job. </li> <li>  <b>Complete</b> (optional): The Amazon SNS topic that you want to notify when Elastic Transcoder has finished processing the job. </li> <li>  <b>Warning</b> (optional): The Amazon SNS topic that you want to notify when Elastic Transcoder encounters a warning condition. </li> <li>  <b>Error</b> (optional): The Amazon SNS topic that you want to notify when Elastic Transcoder encounters an error condition. </li> </ul>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Notifications</b>: The Amazon Simple Notification Service (Amazon SNS) topic that you want to notify to report job status. <important> To receive notifications, you must also subscribe to the new topic in the Amazon SNS console. </important> <ul> <li>  <b>Progressing</b> (optional): The Amazon Simple Notification Service (Amazon SNS) topic that you want to notify when Elastic Transcoder has started to process the job. </li> <li>  <b>Complete</b> (optional): The Amazon SNS topic that you want to notify when Elastic Transcoder has finished processing the job. </li> <li>  <b>Warning</b> (optional): The Amazon SNS topic that you want to notify when Elastic Transcoder encounters a warning condition. </li> <li>  <b>Error</b> (optional): The Amazon SNS topic that you want to notify when Elastic Transcoder encounters an error condition. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AwsKmsKeyArn</i> The AWS Key Management Service (AWS KMS) key that you want to use with this pipeline. If you use either <code>s3</code> or <code>s3-aws-kms</code> as your <code>Encryption:Mode</code>, you don't need to provide a key with your job because a default key, known as an AWS-KMS key, is created for you automatically. You need to provide an AWS-KMS key only if you want to use a non-default AWS-KMS key, or if you are using an <code>Encryption:Mode</code> of <code>aes-cbc-pkcs7</code>, <code>aes-ctr</code>, or <code>aes-gcm</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Role</i> The IAM Amazon Resource Name (ARN) for the role that Elastic Transcoder uses to transcode jobs for this pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OutputBucket</i> The Amazon S3 bucket in which you want Elastic Transcoder to save transcoded files, thumbnails, and playlists. Either you specify this value, or you specify both <code>ContentConfig</code> and <code>ThumbnailConfig</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InputBucket</i> The Amazon S3 bucket from which Elastic Transcoder gets media files for transcoding and the graphics files, if any, that you want to use for watermarks.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current status of the pipeline: <ul> <li>  <code>Active</code>: The pipeline is processing jobs. </li> <li>  <code>Paused</code>: The pipeline is not currently processing jobs. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the pipeline. We recommend that the name be unique within the AWS account, but uniqueness is not enforced. Constraints: Maximum 40 characters<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) for the pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The identifier for the pipeline. You use this value to identify the pipeline in which you want to perform a variety of operations, such as creating a job or a preset.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Error</i> The Amazon SNS topic that you want to notify when Elastic Transcoder encounters an error condition.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Warning</i> The Amazon SNS topic that you want to notify when Elastic Transcoder encounters a warning condition.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Completed</i> The Amazon SNS topic that you want to notify when Elastic Transcoder has finished processing the job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Progressing</i> The Amazon Simple Notification Service (Amazon SNS) topic that you want to notify when Elastic Transcoder has started to process the job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Permissions</i> Optional. The <code>Permissions</code> object specifies which users and/or predefined Amazon S3 groups you want to have access to transcoded files and playlists, and the type of access you want them to have. You can grant permissions to a maximum of 30 users and/or predefined Amazon S3 groups. If you include <code>Permissions</code>, Elastic Transcoder grants only the permissions that you specify. It does not grant full permissions to the owner of the role specified by <code>Role</code>. If you want that user to have full control, you must explicitly grant full control to the user.  If you omit <code>Permissions</code>, Elastic Transcoder grants full control over the transcoded files and playlists to the owner of the role specified by <code>Role</code>, and grants no other permissions to any other user or group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageClass</i>  The Amazon S3 storage class, <code>Standard</code> or <code>ReducedRedundancy</code>, that you want Elastic Transcoder to assign to the video files and playlists that it stores in your Amazon S3 bucket. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i>  The Amazon S3 bucket in which you want Elastic Transcoder to save the transcoded files. Specify this value when all of the following are true: <ul> <li> You want to save transcoded files, thumbnails (if any), and playlists (if any) together in one bucket. </li> <li> You do not want to specify the users or groups who have access to the transcoded files, thumbnails, and playlists. </li> <li> You do not want to specify the permissions that Elastic Transcoder grants to the files. </li> <li> You want to associate the transcoded files and thumbnails with the Amazon S3 Standard storage class. </li> </ul> If you want to save transcoded files and playlists in one bucket and thumbnails in another bucket, specify which users can access the transcoded files or the permissions the users have, or change the Amazon S3 storage class, omit OutputBucket and specify values for <code>ContentConfig</code> and <code>ThumbnailConfig</code> instead. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Permissions</i> Optional. The <code>Permissions</code> object specifies which users and/or predefined Amazon S3 groups you want to have access to transcoded files and playlists, and the type of access you want them to have. You can grant permissions to a maximum of 30 users and/or predefined Amazon S3 groups. If you include <code>Permissions</code>, Elastic Transcoder grants only the permissions that you specify. It does not grant full permissions to the owner of the role specified by <code>Role</code>. If you want that user to have full control, you must explicitly grant full control to the user.  If you omit <code>Permissions</code>, Elastic Transcoder grants full control over the transcoded files and playlists to the owner of the role specified by <code>Role</code>, and grants no other permissions to any other user or group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageClass</i>  The Amazon S3 storage class, <code>Standard</code> or <code>ReducedRedundancy</code>, that you want Elastic Transcoder to assign to the video files and playlists that it stores in your Amazon S3 bucket. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i>  The Amazon S3 bucket in which you want Elastic Transcoder to save the transcoded files. Specify this value when all of the following are true: <ul> <li> You want to save transcoded files, thumbnails (if any), and playlists (if any) together in one bucket. </li> <li> You do not want to specify the users or groups who have access to the transcoded files, thumbnails, and playlists. </li> <li> You do not want to specify the permissions that Elastic Transcoder grants to the files. </li> <li> You want to associate the transcoded files and thumbnails with the Amazon S3 Standard storage class. </li> </ul> If you want to save transcoded files and playlists in one bucket and thumbnails in another bucket, specify which users can access the transcoded files or the permissions the users have, or change the Amazon S3 storage class, omit OutputBucket and specify values for <code>ContentConfig</code> and <code>ThumbnailConfig</code> instead. <br/>        """
        pass





class ElasticLoadBalancing(BaseClient):
    r"""<fullname>Elastic Load Balancing</fullname> A load balancer can distribute incoming traffic across your EC2 instances. This enables you to increase the availability of your application. The load balancer also monitors the health of its registered instances and ensures that it routes traffic only to healthy instances. You configure your load balancer to accept incoming traffic by specifying one or more listeners, which are configured with a protocol and port number for connections from clients to the load balancer and a protocol and port number for connections from the load balancer to the instances. Elastic Load Balancing supports three types of load balancers: Application Load Balancers, Network Load Balancers, and Classic Load Balancers. You can select a load balancer based on your application needs. For more information, see the <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/">Elastic Load Balancing User Guide</a>. This reference covers the 2012-06-01 API, which supports Classic Load Balancers. The 2015-12-01 API supports Application Load Balancers and Network Load Balancers. To get started, create a load balancer with one or more listeners using <a>CreateLoadBalancer</a>. Register your instances with the load balancer using <a>RegisterInstancesWithLoadBalancer</a>. All Elastic Load Balancing operations are <i>idempotent</i>, which means that they complete at most one time. If you repeat an operation, it succeeds with a 200 OK response code."""

    class AnyInstanceInServiceWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_instance_health` for valid parameters"""
            pass
    class InstanceDeregisteredWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_instance_health` for valid parameters"""
            pass
    class InstanceInServiceWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_instance_health` for valid parameters"""
            pass


    class DescribeLoadBalancersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_load_balancers` for valid parameters"""
            pass
    class DescribeAccountLimitsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_account_limits` for valid parameters"""
            pass


    class AddTagsInput(Mapping):
        pass
    
    class AddTagsOutput(Mapping):
        pass
    
    class AccessPointName(object):
        pass
    
    class Tag(Mapping):
        pass
    
    class ApplySecurityGroupsToLoadBalancerInput(Mapping):
        pass
    
    class ApplySecurityGroupsToLoadBalancerOutput(Mapping):
        pass
    
    class SecurityGroupId(object):
        pass
    
    class AttachLoadBalancerToSubnetsInput(Mapping):
        pass
    
    class AttachLoadBalancerToSubnetsOutput(Mapping):
        pass
    
    class SubnetId(object):
        pass
    
    class ConfigureHealthCheckInput(Mapping):
        pass
    
    class ConfigureHealthCheckOutput(Mapping):
        pass
    
    class HealthCheck(Mapping):
        pass
    
    class CreateAppCookieStickinessPolicyInput(Mapping):
        pass
    
    class CreateAppCookieStickinessPolicyOutput(Mapping):
        pass
    
    class CreateLBCookieStickinessPolicyInput(Mapping):
        pass
    
    class CreateLBCookieStickinessPolicyOutput(Mapping):
        pass
    
    class CookieExpirationPeriod(object):
        pass
    
    class CreateAccessPointInput(Mapping):
        pass
    
    class CreateAccessPointOutput(Mapping):
        pass
    
    class Listener(Mapping):
        pass
    
    class AvailabilityZone(object):
        pass
    
    class CreateLoadBalancerListenerInput(Mapping):
        pass
    
    class CreateLoadBalancerListenerOutput(Mapping):
        pass
    
    class CreateLoadBalancerPolicyInput(Mapping):
        pass
    
    class CreateLoadBalancerPolicyOutput(Mapping):
        pass
    
    class PolicyAttribute(Mapping):
        pass
    
    class DeleteAccessPointInput(Mapping):
        pass
    
    class DeleteAccessPointOutput(Mapping):
        pass
    
    class DeleteLoadBalancerListenerInput(Mapping):
        pass
    
    class DeleteLoadBalancerListenerOutput(Mapping):
        pass
    
    class AccessPointPort(object):
        pass
    
    class DeleteLoadBalancerPolicyInput(Mapping):
        pass
    
    class DeleteLoadBalancerPolicyOutput(Mapping):
        pass
    
    class DeregisterEndPointsInput(Mapping):
        pass
    
    class DeregisterEndPointsOutput(Mapping):
        pass
    
    class Instance(Mapping):
        pass
    
    class DescribeAccountLimitsInput(Mapping):
        pass
    
    class DescribeAccountLimitsOutput(Mapping):
        pass
    
    class DescribeEndPointStateInput(Mapping):
        pass
    
    class DescribeEndPointStateOutput(Mapping):
        pass
    
    class DescribeLoadBalancerAttributesInput(Mapping):
        pass
    
    class DescribeLoadBalancerAttributesOutput(Mapping):
        pass
    
    class DescribeLoadBalancerPoliciesInput(Mapping):
        pass
    
    class DescribeLoadBalancerPoliciesOutput(Mapping):
        pass
    
    class PolicyName(object):
        pass
    
    class DescribeLoadBalancerPolicyTypesInput(Mapping):
        pass
    
    class DescribeLoadBalancerPolicyTypesOutput(Mapping):
        pass
    
    class PolicyTypeName(object):
        pass
    
    class DescribeAccessPointsInput(Mapping):
        pass
    
    class DescribeAccessPointsOutput(Mapping):
        pass
    
    class DescribeTagsInput(Mapping):
        pass
    
    class DescribeTagsOutput(Mapping):
        pass
    
    class DetachLoadBalancerFromSubnetsInput(Mapping):
        pass
    
    class DetachLoadBalancerFromSubnetsOutput(Mapping):
        pass
    
    class RemoveAvailabilityZonesInput(Mapping):
        pass
    
    class RemoveAvailabilityZonesOutput(Mapping):
        pass
    
    class AddAvailabilityZonesInput(Mapping):
        pass
    
    class AddAvailabilityZonesOutput(Mapping):
        pass
    
    class ModifyLoadBalancerAttributesInput(Mapping):
        pass
    
    class ModifyLoadBalancerAttributesOutput(Mapping):
        pass
    
    class LoadBalancerAttributes(Mapping):
        pass
    
    class RegisterEndPointsInput(Mapping):
        pass
    
    class RegisterEndPointsOutput(Mapping):
        pass
    
    class RemoveTagsInput(Mapping):
        pass
    
    class RemoveTagsOutput(Mapping):
        pass
    
    class TagKeyOnly(Mapping):
        pass
    
    class SetLoadBalancerListenerSSLCertificateInput(Mapping):
        pass
    
    class SetLoadBalancerListenerSSLCertificateOutput(Mapping):
        pass
    
    class SetLoadBalancerPoliciesForBackendServerInput(Mapping):
        pass
    
    class SetLoadBalancerPoliciesForBackendServerOutput(Mapping):
        pass
    
    class SetLoadBalancerPoliciesOfListenerInput(Mapping):
        pass
    
    class SetLoadBalancerPoliciesOfListenerOutput(Mapping):
        pass
    
    def add_tags(self, Tags: List[Tag], LoadBalancerNames: List[AccessPointName]) -> AddTagsOutput:
        r"""Adds the specified tags to the specified load balancer. Each load balancer can have a maximum of 10 tags. Each tag consists of a key and an optional value. If a tag with the same key is already associated with the load balancer, <code>AddTags</code> updates its value. For more information, see <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/add-remove-tags.html">Tag Your Classic Load Balancer</a> in the <i>Classic Load Balancers Guide</i>.

        :param self:
        :param Tags:  The tags.<br/>LoadBalancerNames:  The name of the load balancer. You can specify one load balancer only.<br/>
        :return:         """
        pass

    def apply_security_groups_to_load_balancer(self, SecurityGroups: List[SecurityGroupId], LoadBalancerName: str) -> ApplySecurityGroupsToLoadBalancerOutput:
        r"""Associates one or more security groups with your load balancer in a virtual private cloud (VPC). The specified security groups override the previously associated security groups. For more information, see <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-security-groups.html#elb-vpc-security-groups">Security Groups for Load Balancers in a VPC</a> in the <i>Classic Load Balancers Guide</i>.

        :param self:
        :param SecurityGroups:  The IDs of the security groups to associate with the load balancer. Note that you cannot specify the name of the security group.<br/>LoadBalancerName:  The name of the load balancer.<br/>
        :return: SecurityGroups:  The IDs of the security groups associated with the load balancer.<br/>        """
        pass

    def attach_load_balancer_to_subnets(self, Subnets: List[SubnetId], LoadBalancerName: str) -> AttachLoadBalancerToSubnetsOutput:
        r"""Adds one or more subnets to the set of configured subnets for the specified load balancer. The load balancer evenly distributes requests across all registered subnets. For more information, see <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-manage-subnets.html">Add or Remove Subnets for Your Load Balancer in a VPC</a> in the <i>Classic Load Balancers Guide</i>.

        :param self:
        :param Subnets:  The IDs of the subnets to add. You can add only one subnet per Availability Zone.<br/>LoadBalancerName:  The name of the load balancer.<br/>
        :return: Subnets:  The IDs of the subnets attached to the load balancer.<br/>        """
        pass

    def configure_health_check(self, HealthCheck: HealthCheck, LoadBalancerName: str) -> ConfigureHealthCheckOutput:
        r"""Specifies the health check settings to use when evaluating the health state of your EC2 instances. For more information, see <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-healthchecks.html">Configure Health Checks for Your Load Balancer</a> in the <i>Classic Load Balancers Guide</i>.

        :param self:
        :param HealthCheck:  The configuration information.:<br/>LoadBalancerName:  The name of the load balancer.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HealthyThreshold</i> The number of consecutive health checks successes required before moving the instance to the <code>Healthy</code> state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UnhealthyThreshold</i> The number of consecutive health check failures required before moving the instance to the <code>Unhealthy</code> state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Timeout</i> The amount of time, in seconds, during which no response means a failed health check. This value must be less than the <code>Interval</code> value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Interval</i> The approximate interval, in seconds, between health checks of an individual instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Target</i> The instance being checked. The protocol is either TCP, HTTP, HTTPS, or SSL. The range of valid ports is one (1) through 65535. TCP is the default, specified as a TCP: port pair, for example "TCP:5000". In this case, a health check simply attempts to open a TCP connection to the instance on the specified port. Failure to connect within the configured timeout is considered unhealthy. SSL is also specified as SSL: port pair, for example, SSL:5000. For HTTP/HTTPS, you must include a ping path in the string. HTTP is specified as a HTTP:port;/;PathToPing; grouping, for example "HTTP:80/weather/us/wa/seattle". In this case, a HTTP GET request is issued to the instance on the given port and path. Any answer other than "200 OK" within the timeout period is considered unhealthy. The total length of the HTTP ping target must be 1024 16-bit Unicode characters or less.<br/>
        :return: HealthCheck:  The updated health check.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HealthyThreshold</i> The number of consecutive health checks successes required before moving the instance to the <code>Healthy</code> state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UnhealthyThreshold</i> The number of consecutive health check failures required before moving the instance to the <code>Unhealthy</code> state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Timeout</i> The amount of time, in seconds, during which no response means a failed health check. This value must be less than the <code>Interval</code> value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Interval</i> The approximate interval, in seconds, between health checks of an individual instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Target</i> The instance being checked. The protocol is either TCP, HTTP, HTTPS, or SSL. The range of valid ports is one (1) through 65535. TCP is the default, specified as a TCP: port pair, for example "TCP:5000". In this case, a health check simply attempts to open a TCP connection to the instance on the specified port. Failure to connect within the configured timeout is considered unhealthy. SSL is also specified as SSL: port pair, for example, SSL:5000. For HTTP/HTTPS, you must include a ping path in the string. HTTP is specified as a HTTP:port;/;PathToPing; grouping, for example "HTTP:80/weather/us/wa/seattle". In this case, a HTTP GET request is issued to the instance on the given port and path. Any answer other than "200 OK" within the timeout period is considered unhealthy. The total length of the HTTP ping target must be 1024 16-bit Unicode characters or less.<br/>        """
        pass

    def create_app_cookie_stickiness_policy(self, CookieName: str, PolicyName: str, LoadBalancerName: str) -> CreateAppCookieStickinessPolicyOutput:
        r"""Generates a stickiness policy with sticky session lifetimes that follow that of an application-generated cookie. This policy can be associated only with HTTP/HTTPS listeners. This policy is similar to the policy created by <a>CreateLBCookieStickinessPolicy</a>, except that the lifetime of the special Elastic Load Balancing cookie, <code>AWSELB</code>, follows the lifetime of the application-generated cookie specified in the policy configuration. The load balancer only inserts a new stickiness cookie when the application response includes a new application cookie. If the application cookie is explicitly removed or expires, the session stops being sticky until a new application cookie is issued. For more information, see <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-sticky-sessions.html#enable-sticky-sessions-application">Application-Controlled Session Stickiness</a> in the <i>Classic Load Balancers Guide</i>.

        :param self:
        :param CookieName:  The name of the application cookie used for stickiness.<br/>PolicyName:  The name of the policy being created. Policy names must consist of alphanumeric characters and dashes (-). This name must be unique within the set of policies for this load balancer.<br/>LoadBalancerName:  The name of the load balancer.<br/>
        :return:         """
        pass

    def create_lb_cookie_stickiness_policy(self, PolicyName: str, LoadBalancerName: str, CookieExpirationPeriod: CookieExpirationPeriod=None) -> CreateLBCookieStickinessPolicyOutput:
        r"""Generates a stickiness policy with sticky session lifetimes controlled by the lifetime of the browser (user-agent) or a specified expiration period. This policy can be associated only with HTTP/HTTPS listeners. When a load balancer implements this policy, the load balancer uses a special cookie to track the instance for each request. When the load balancer receives a request, it first checks to see if this cookie is present in the request. If so, the load balancer sends the request to the application server specified in the cookie. If not, the load balancer sends the request to a server that is chosen based on the existing load-balancing algorithm. A cookie is inserted into the response for binding subsequent requests from the same user to that server. The validity of the cookie is based on the cookie expiration time, which is specified in the policy configuration. For more information, see <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-sticky-sessions.html#enable-sticky-sessions-duration">Duration-Based Session Stickiness</a> in the <i>Classic Load Balancers Guide</i>.

        :param self:
        :param CookieExpirationPeriod:  The time period, in seconds, after which the cookie should be considered stale. If you do not specify this parameter, the default value is 0, which indicates that the sticky session should last for the duration of the browser session.<br/>PolicyName:  The name of the policy being created. Policy names must consist of alphanumeric characters and dashes (-). This name must be unique within the set of policies for this load balancer.<br/>LoadBalancerName:  The name of the load balancer.<br/>
        :return:         """
        pass

    def create_load_balancer(self, Listeners: List[Listener], LoadBalancerName: str, AvailabilityZones: List[AvailabilityZone]=None, Subnets: List[SubnetId]=None, SecurityGroups: List[SecurityGroupId]=None, Scheme: str=None, Tags: List[Tag]=None) -> CreateAccessPointOutput:
        r"""Creates a Classic Load Balancer. You can add listeners, security groups, subnets, and tags when you create your load balancer, or you can add them later using <a>CreateLoadBalancerListeners</a>, <a>ApplySecurityGroupsToLoadBalancer</a>, <a>AttachLoadBalancerToSubnets</a>, and <a>AddTags</a>. To describe your current load balancers, see <a>DescribeLoadBalancers</a>. When you are finished with a load balancer, you can delete it using <a>DeleteLoadBalancer</a>. You can create up to 20 load balancers per region per account. You can request an increase for the number of load balancers for your account. For more information, see <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-limits.html">Limits for Your Classic Load Balancer</a> in the <i>Classic Load Balancers Guide</i>.

        :param self:
        :param Tags:  A list of tags to assign to the load balancer. For more information about tagging your load balancer, see <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/add-remove-tags.html">Tag Your Classic Load Balancer</a> in the <i>Classic Load Balancers Guide</i>.<br/>Scheme:  The type of a load balancer. Valid only for load balancers in a VPC. By default, Elastic Load Balancing creates an Internet-facing load balancer with a DNS name that resolves to public IP addresses. For more information about Internet-facing and Internal load balancers, see <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/how-elastic-load-balancing-works.html#load-balancer-scheme">Load Balancer Scheme</a> in the <i>Elastic Load Balancing User Guide</i>. Specify <code>internal</code> to create a load balancer with a DNS name that resolves to private IP addresses.<br/>SecurityGroups:  The IDs of the security groups to assign to the load balancer.<br/>Subnets:  The IDs of the subnets in your VPC to attach to the load balancer. Specify one subnet per Availability Zone specified in <code>AvailabilityZones</code>.<br/>AvailabilityZones:  One or more Availability Zones from the same region as the load balancer. You must specify at least one Availability Zone. You can add more Availability Zones after you create the load balancer using <a>EnableAvailabilityZonesForLoadBalancer</a>.<br/>Listeners:  The listeners. For more information, see <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-listener-config.html">Listeners for Your Classic Load Balancer</a> in the <i>Classic Load Balancers Guide</i>.<br/>LoadBalancerName:  The name of the load balancer. This name must be unique within your set of load balancers for the region, must have a maximum of 32 characters, must contain only alphanumeric characters or hyphens, and cannot begin or end with a hyphen.<br/>
        :return: DNSName:  The DNS name of the load balancer.<br/>        """
        pass

    def create_load_balancer_listeners(self, Listeners: List[Listener], LoadBalancerName: str) -> CreateLoadBalancerListenerOutput:
        r"""Creates one or more listeners for the specified load balancer. If a listener with the specified port does not already exist, it is created; otherwise, the properties of the new listener must match the properties of the existing listener. For more information, see <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-listener-config.html">Listeners for Your Classic Load Balancer</a> in the <i>Classic Load Balancers Guide</i>.

        :param self:
        :param Listeners:  The listeners.<br/>LoadBalancerName:  The name of the load balancer.<br/>
        :return:         """
        pass

    def create_load_balancer_policy(self, PolicyTypeName: str, PolicyName: str, LoadBalancerName: str, PolicyAttributes: List[PolicyAttribute]=None) -> CreateLoadBalancerPolicyOutput:
        r"""Creates a policy with the specified attributes for the specified load balancer. Policies are settings that are saved for your load balancer and that can be applied to the listener or the application server, depending on the policy type.

        :param self:
        :param PolicyAttributes:  The policy attributes.<br/>PolicyTypeName:  The name of the base policy type. To get the list of policy types, use <a>DescribeLoadBalancerPolicyTypes</a>.<br/>PolicyName:  The name of the load balancer policy to be created. This name must be unique within the set of policies for this load balancer.<br/>LoadBalancerName:  The name of the load balancer.<br/>
        :return:         """
        pass

    def delete_load_balancer(self, LoadBalancerName: str) -> DeleteAccessPointOutput:
        r"""Deletes the specified load balancer. If you are attempting to recreate a load balancer, you must reconfigure all settings. The DNS name associated with a deleted load balancer are no longer usable. The name and associated DNS record of the deleted load balancer no longer exist and traffic sent to any of its IP addresses is no longer delivered to your instances. If the load balancer does not exist or has already been deleted, the call to <code>DeleteLoadBalancer</code> still succeeds.

        :param self:
        :param LoadBalancerName:  The name of the load balancer.<br/>
        :return:         """
        pass

    def delete_load_balancer_listeners(self, LoadBalancerPorts: List[AccessPointPort], LoadBalancerName: str) -> DeleteLoadBalancerListenerOutput:
        r"""Deletes the specified listeners from the specified load balancer.

        :param self:
        :param LoadBalancerPorts:  The client port numbers of the listeners.<br/>LoadBalancerName:  The name of the load balancer.<br/>
        :return:         """
        pass

    def delete_load_balancer_policy(self, PolicyName: str, LoadBalancerName: str) -> DeleteLoadBalancerPolicyOutput:
        r"""Deletes the specified policy from the specified load balancer. This policy must not be enabled for any listeners.

        :param self:
        :param PolicyName:  The name of the policy.<br/>LoadBalancerName:  The name of the load balancer.<br/>
        :return:         """
        pass

    def deregister_instances_from_load_balancer(self, Instances: List[Instance], LoadBalancerName: str) -> DeregisterEndPointsOutput:
        r"""Deregisters the specified instances from the specified load balancer. After the instance is deregistered, it no longer receives traffic from the load balancer. You can use <a>DescribeLoadBalancers</a> to verify that the instance is deregistered from the load balancer. For more information, see <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-deregister-register-instances.html">Register or De-Register EC2 Instances</a> in the <i>Classic Load Balancers Guide</i>.

        :param self:
        :param Instances:  The IDs of the instances.<br/>LoadBalancerName:  The name of the load balancer.<br/>
        :return: Instances:  The remaining instances registered with the load balancer.<br/>        """
        pass

    def describe_account_limits(self, Marker: str=None, PageSize: int=None) -> DescribeAccountLimitsOutput:
        r"""Describes the current Elastic Load Balancing resource limits for your AWS account. For more information, see <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-limits.html">Limits for Your Classic Load Balancer</a> in the <i>Classic Load Balancers Guide</i>.

        :param self:
        :param PageSize:  The maximum number of results to return with this call.<br/>Marker:  The marker for the next set of results. (You received this marker from a previous call.)<br/>
        :return: NextMarker:  The marker to use when requesting the next set of results. If there are no additional results, the string is empty.<br/>Limits:  Information about the limits.<br/>        """
        pass

    def describe_instance_health(self, LoadBalancerName: str, Instances: List[Instance]=None) -> DescribeEndPointStateOutput:
        r"""Describes the state of the specified instances with respect to the specified load balancer. If no instances are specified, the call describes the state of all instances that are currently registered with the load balancer. If instances are specified, their state is returned even if they are no longer registered with the load balancer. The state of terminated instances is not returned.

        :param self:
        :param Instances:  The IDs of the instances.<br/>LoadBalancerName:  The name of the load balancer.<br/>
        :return: InstanceStates:  Information about the health of the instances.<br/>        """
        pass

    def describe_load_balancer_attributes(self, LoadBalancerName: str) -> DescribeLoadBalancerAttributesOutput:
        r"""Describes the attributes for the specified load balancer.

        :param self:
        :param LoadBalancerName:  The name of the load balancer.<br/>
        :return: LoadBalancerAttributes:  Information about the load balancer attributes.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdditionalAttributes</i> Any additional attributes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConnectionSettings</i> If enabled, the load balancer allows the connections to remain idle (no data is sent over the connection) for the specified duration. By default, Elastic Load Balancing maintains a 60-second idle connection timeout for both front-end and back-end connections of your load balancer. For more information, see <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/config-idle-timeout.html">Configure Idle Connection Timeout</a> in the <i>Classic Load Balancers Guide</i>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ConnectionSettings</b>: If enabled, the load balancer allows the connections to remain idle (no data is sent over the connection) for the specified duration. By default, Elastic Load Balancing maintains a 60-second idle connection timeout for both front-end and back-end connections of your load balancer. For more information, see <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/config-idle-timeout.html">Configure Idle Connection Timeout</a> in the <i>Classic Load Balancers Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConnectionDraining</i> If enabled, the load balancer allows existing requests to complete before the load balancer shifts traffic away from a deregistered or unhealthy instance. For more information, see <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/config-conn-drain.html">Configure Connection Draining</a> in the <i>Classic Load Balancers Guide</i>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ConnectionDraining</b>: If enabled, the load balancer allows existing requests to complete before the load balancer shifts traffic away from a deregistered or unhealthy instance. For more information, see <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/config-conn-drain.html">Configure Connection Draining</a> in the <i>Classic Load Balancers Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccessLog</i> If enabled, the load balancer captures detailed information of all requests and delivers the information to the Amazon S3 bucket that you specify. For more information, see <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/enable-access-logs.html">Enable Access Logs</a> in the <i>Classic Load Balancers Guide</i>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AccessLog</b>: If enabled, the load balancer captures detailed information of all requests and delivers the information to the Amazon S3 bucket that you specify. For more information, see <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/enable-access-logs.html">Enable Access Logs</a> in the <i>Classic Load Balancers Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CrossZoneLoadBalancing</i> If enabled, the load balancer routes the request traffic evenly across all instances regardless of the Availability Zones. For more information, see <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/enable-disable-crosszone-lb.html">Configure Cross-Zone Load Balancing</a> in the <i>Classic Load Balancers Guide</i>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CrossZoneLoadBalancing</b>: If enabled, the load balancer routes the request traffic evenly across all instances regardless of the Availability Zones. For more information, see <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/enable-disable-crosszone-lb.html">Configure Cross-Zone Load Balancing</a> in the <i>Classic Load Balancers Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specifies whether cross-zone load balancing is enabled for the load balancer.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3BucketPrefix</i> The logical hierarchy you created for your Amazon S3 bucket, for example <code>my-bucket-prefix/prod</code>. If the prefix is not provided, the log is placed at the root level of the bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EmitInterval</i> The interval for publishing the access logs. You can specify an interval of either 5 minutes or 60 minutes. Default: 60 minutes<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3BucketName</i> The name of the Amazon S3 bucket where the access logs are stored.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specifies whether access logs are enabled for the load balancer.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Timeout</i> The maximum time, in seconds, to keep the existing connections open before deregistering the instances.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specifies whether connection draining is enabled for the load balancer.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IdleTimeout</i> The time, in seconds, that the connection is allowed to be idle (no data has been sent over the connection) before it is closed by the load balancer.<br/>        """
        pass

    def describe_load_balancer_policies(self, LoadBalancerName: str=None, PolicyNames: List[PolicyName]=None) -> DescribeLoadBalancerPoliciesOutput:
        r"""Describes the specified policies. If you specify a load balancer name, the action returns the descriptions of all policies created for the load balancer. If you specify a policy name associated with your load balancer, the action returns the description of that policy. If you don't specify a load balancer name, the action returns descriptions of the specified sample policies, or descriptions of all sample policies. The names of the sample policies have the <code>ELBSample-</code> prefix.

        :param self:
        :param PolicyNames:  The names of the policies.<br/>LoadBalancerName:  The name of the load balancer.<br/>
        :return: PolicyDescriptions:  Information about the policies.<br/>        """
        pass

    def describe_load_balancer_policy_types(self, PolicyTypeNames: List[PolicyTypeName]=None) -> DescribeLoadBalancerPolicyTypesOutput:
        r"""Describes the specified load balancer policy types or all load balancer policy types. The description of each type indicates how it can be used. For example, some policies can be used only with layer 7 listeners, some policies can be used only with layer 4 listeners, and some policies can be used only with your EC2 instances. You can use <a>CreateLoadBalancerPolicy</a> to create a policy configuration for any of these policy types. Then, depending on the policy type, use either <a>SetLoadBalancerPoliciesOfListener</a> or <a>SetLoadBalancerPoliciesForBackendServer</a> to set the policy.

        :param self:
        :param PolicyTypeNames:  The names of the policy types. If no names are specified, describes all policy types defined by Elastic Load Balancing.<br/>
        :return: PolicyTypeDescriptions:  Information about the policy types.<br/>        """
        pass

    def describe_load_balancers(self, LoadBalancerNames: List[AccessPointName]=None, Marker: str=None, PageSize: int=None) -> DescribeAccessPointsOutput:
        r"""Describes the specified the load balancers. If no load balancers are specified, the call describes all of your load balancers.

        :param self:
        :param PageSize:  The maximum number of results to return with this call (a number from 1 to 400). The default is 400.<br/>Marker:  The marker for the next set of results. (You received this marker from a previous call.)<br/>LoadBalancerNames:  The names of the load balancers.<br/>
        :return: NextMarker:  The marker to use when requesting the next set of results. If there are no additional results, the string is empty.<br/>LoadBalancerDescriptions:  Information about the load balancers.<br/>        """
        pass

    def describe_tags(self, LoadBalancerNames: List[AccessPointName]) -> DescribeTagsOutput:
        r"""Describes the tags associated with the specified load balancers.

        :param self:
        :param LoadBalancerNames:  The names of the load balancers.<br/>
        :return: TagDescriptions:  Information about the tags.<br/>        """
        pass

    def detach_load_balancer_from_subnets(self, Subnets: List[SubnetId], LoadBalancerName: str) -> DetachLoadBalancerFromSubnetsOutput:
        r"""Removes the specified subnets from the set of configured subnets for the load balancer. After a subnet is removed, all EC2 instances registered with the load balancer in the removed subnet go into the <code>OutOfService</code> state. Then, the load balancer balances the traffic among the remaining routable subnets.

        :param self:
        :param Subnets:  The IDs of the subnets.<br/>LoadBalancerName:  The name of the load balancer.<br/>
        :return: Subnets:  The IDs of the remaining subnets for the load balancer.<br/>        """
        pass

    def disable_availability_zones_for_load_balancer(self, AvailabilityZones: List[AvailabilityZone], LoadBalancerName: str) -> RemoveAvailabilityZonesOutput:
        r"""Removes the specified Availability Zones from the set of Availability Zones for the specified load balancer in EC2-Classic or a default VPC. For load balancers in a non-default VPC, use <a>DetachLoadBalancerFromSubnets</a>. There must be at least one Availability Zone registered with a load balancer at all times. After an Availability Zone is removed, all instances registered with the load balancer that are in the removed Availability Zone go into the <code>OutOfService</code> state. Then, the load balancer attempts to equally balance the traffic among its remaining Availability Zones. For more information, see <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/enable-disable-az.html">Add or Remove Availability Zones</a> in the <i>Classic Load Balancers Guide</i>.

        :param self:
        :param AvailabilityZones:  The Availability Zones.<br/>LoadBalancerName:  The name of the load balancer.<br/>
        :return: AvailabilityZones:  The remaining Availability Zones for the load balancer.<br/>        """
        pass

    def enable_availability_zones_for_load_balancer(self, AvailabilityZones: List[AvailabilityZone], LoadBalancerName: str) -> AddAvailabilityZonesOutput:
        r"""Adds the specified Availability Zones to the set of Availability Zones for the specified load balancer in EC2-Classic or a default VPC. For load balancers in a non-default VPC, use <a>AttachLoadBalancerToSubnets</a>. The load balancer evenly distributes requests across all its registered Availability Zones that contain instances. For more information, see <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/enable-disable-az.html">Add or Remove Availability Zones</a> in the <i>Classic Load Balancers Guide</i>.

        :param self:
        :param AvailabilityZones:  The Availability Zones. These must be in the same region as the load balancer.<br/>LoadBalancerName:  The name of the load balancer.<br/>
        :return: AvailabilityZones:  The updated list of Availability Zones for the load balancer.<br/>        """
        pass

    def modify_load_balancer_attributes(self, LoadBalancerAttributes: LoadBalancerAttributes, LoadBalancerName: str) -> ModifyLoadBalancerAttributesOutput:
        r"""Modifies the attributes of the specified load balancer. You can modify the load balancer attributes, such as <code>AccessLogs</code>, <code>ConnectionDraining</code>, and <code>CrossZoneLoadBalancing</code> by either enabling or disabling them. Or, you can modify the load balancer attribute <code>ConnectionSettings</code> by specifying an idle connection timeout value for your load balancer. For more information, see the following in the <i>Classic Load Balancers Guide</i>: <ul> <li>  <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/enable-disable-crosszone-lb.html">Cross-Zone Load Balancing</a>  </li> <li>  <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/config-conn-drain.html">Connection Draining</a>  </li> <li>  <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/access-log-collection.html">Access Logs</a>  </li> <li>  <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/config-idle-timeout.html">Idle Connection Timeout</a>  </li> </ul>

        :param self:
        :param LoadBalancerAttributes:  The attributes for the load balancer.:<br/>LoadBalancerName:  The name of the load balancer.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdditionalAttributes</i> Any additional attributes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConnectionSettings</i> If enabled, the load balancer allows the connections to remain idle (no data is sent over the connection) for the specified duration. By default, Elastic Load Balancing maintains a 60-second idle connection timeout for both front-end and back-end connections of your load balancer. For more information, see <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/config-idle-timeout.html">Configure Idle Connection Timeout</a> in the <i>Classic Load Balancers Guide</i>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ConnectionSettings</b>: If enabled, the load balancer allows the connections to remain idle (no data is sent over the connection) for the specified duration. By default, Elastic Load Balancing maintains a 60-second idle connection timeout for both front-end and back-end connections of your load balancer. For more information, see <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/config-idle-timeout.html">Configure Idle Connection Timeout</a> in the <i>Classic Load Balancers Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConnectionDraining</i> If enabled, the load balancer allows existing requests to complete before the load balancer shifts traffic away from a deregistered or unhealthy instance. For more information, see <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/config-conn-drain.html">Configure Connection Draining</a> in the <i>Classic Load Balancers Guide</i>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ConnectionDraining</b>: If enabled, the load balancer allows existing requests to complete before the load balancer shifts traffic away from a deregistered or unhealthy instance. For more information, see <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/config-conn-drain.html">Configure Connection Draining</a> in the <i>Classic Load Balancers Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccessLog</i> If enabled, the load balancer captures detailed information of all requests and delivers the information to the Amazon S3 bucket that you specify. For more information, see <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/enable-access-logs.html">Enable Access Logs</a> in the <i>Classic Load Balancers Guide</i>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AccessLog</b>: If enabled, the load balancer captures detailed information of all requests and delivers the information to the Amazon S3 bucket that you specify. For more information, see <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/enable-access-logs.html">Enable Access Logs</a> in the <i>Classic Load Balancers Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CrossZoneLoadBalancing</i> If enabled, the load balancer routes the request traffic evenly across all instances regardless of the Availability Zones. For more information, see <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/enable-disable-crosszone-lb.html">Configure Cross-Zone Load Balancing</a> in the <i>Classic Load Balancers Guide</i>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CrossZoneLoadBalancing</b>: If enabled, the load balancer routes the request traffic evenly across all instances regardless of the Availability Zones. For more information, see <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/enable-disable-crosszone-lb.html">Configure Cross-Zone Load Balancing</a> in the <i>Classic Load Balancers Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specifies whether cross-zone load balancing is enabled for the load balancer.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3BucketPrefix</i> The logical hierarchy you created for your Amazon S3 bucket, for example <code>my-bucket-prefix/prod</code>. If the prefix is not provided, the log is placed at the root level of the bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EmitInterval</i> The interval for publishing the access logs. You can specify an interval of either 5 minutes or 60 minutes. Default: 60 minutes<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3BucketName</i> The name of the Amazon S3 bucket where the access logs are stored.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specifies whether access logs are enabled for the load balancer.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Timeout</i> The maximum time, in seconds, to keep the existing connections open before deregistering the instances.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specifies whether connection draining is enabled for the load balancer.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IdleTimeout</i> The time, in seconds, that the connection is allowed to be idle (no data has been sent over the connection) before it is closed by the load balancer.<br/>
        :return: LoadBalancerAttributes:  Information about the load balancer attributes.:<br/>LoadBalancerName:  The name of the load balancer.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdditionalAttributes</i> Any additional attributes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConnectionSettings</i> If enabled, the load balancer allows the connections to remain idle (no data is sent over the connection) for the specified duration. By default, Elastic Load Balancing maintains a 60-second idle connection timeout for both front-end and back-end connections of your load balancer. For more information, see <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/config-idle-timeout.html">Configure Idle Connection Timeout</a> in the <i>Classic Load Balancers Guide</i>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ConnectionSettings</b>: If enabled, the load balancer allows the connections to remain idle (no data is sent over the connection) for the specified duration. By default, Elastic Load Balancing maintains a 60-second idle connection timeout for both front-end and back-end connections of your load balancer. For more information, see <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/config-idle-timeout.html">Configure Idle Connection Timeout</a> in the <i>Classic Load Balancers Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConnectionDraining</i> If enabled, the load balancer allows existing requests to complete before the load balancer shifts traffic away from a deregistered or unhealthy instance. For more information, see <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/config-conn-drain.html">Configure Connection Draining</a> in the <i>Classic Load Balancers Guide</i>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ConnectionDraining</b>: If enabled, the load balancer allows existing requests to complete before the load balancer shifts traffic away from a deregistered or unhealthy instance. For more information, see <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/config-conn-drain.html">Configure Connection Draining</a> in the <i>Classic Load Balancers Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccessLog</i> If enabled, the load balancer captures detailed information of all requests and delivers the information to the Amazon S3 bucket that you specify. For more information, see <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/enable-access-logs.html">Enable Access Logs</a> in the <i>Classic Load Balancers Guide</i>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AccessLog</b>: If enabled, the load balancer captures detailed information of all requests and delivers the information to the Amazon S3 bucket that you specify. For more information, see <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/enable-access-logs.html">Enable Access Logs</a> in the <i>Classic Load Balancers Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CrossZoneLoadBalancing</i> If enabled, the load balancer routes the request traffic evenly across all instances regardless of the Availability Zones. For more information, see <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/enable-disable-crosszone-lb.html">Configure Cross-Zone Load Balancing</a> in the <i>Classic Load Balancers Guide</i>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CrossZoneLoadBalancing</b>: If enabled, the load balancer routes the request traffic evenly across all instances regardless of the Availability Zones. For more information, see <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/enable-disable-crosszone-lb.html">Configure Cross-Zone Load Balancing</a> in the <i>Classic Load Balancers Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specifies whether cross-zone load balancing is enabled for the load balancer.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3BucketPrefix</i> The logical hierarchy you created for your Amazon S3 bucket, for example <code>my-bucket-prefix/prod</code>. If the prefix is not provided, the log is placed at the root level of the bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EmitInterval</i> The interval for publishing the access logs. You can specify an interval of either 5 minutes or 60 minutes. Default: 60 minutes<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3BucketName</i> The name of the Amazon S3 bucket where the access logs are stored.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specifies whether access logs are enabled for the load balancer.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Timeout</i> The maximum time, in seconds, to keep the existing connections open before deregistering the instances.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specifies whether connection draining is enabled for the load balancer.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IdleTimeout</i> The time, in seconds, that the connection is allowed to be idle (no data has been sent over the connection) before it is closed by the load balancer.<br/>        """
        pass

    def register_instances_with_load_balancer(self, Instances: List[Instance], LoadBalancerName: str) -> RegisterEndPointsOutput:
        r"""Adds the specified instances to the specified load balancer. The instance must be a running instance in the same network as the load balancer (EC2-Classic or the same VPC). If you have EC2-Classic instances and a load balancer in a VPC with ClassicLink enabled, you can link the EC2-Classic instances to that VPC and then register the linked EC2-Classic instances with the load balancer in the VPC. Note that <code>RegisterInstanceWithLoadBalancer</code> completes when the request has been registered. Instance registration takes a little time to complete. To check the state of the registered instances, use <a>DescribeLoadBalancers</a> or <a>DescribeInstanceHealth</a>. After the instance is registered, it starts receiving traffic and requests from the load balancer. Any instance that is not in one of the Availability Zones registered for the load balancer is moved to the <code>OutOfService</code> state. If an Availability Zone is added to the load balancer later, any instances registered with the load balancer move to the <code>InService</code> state. To deregister instances from a load balancer, use <a>DeregisterInstancesFromLoadBalancer</a>. For more information, see <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-deregister-register-instances.html">Register or De-Register EC2 Instances</a> in the <i>Classic Load Balancers Guide</i>.

        :param self:
        :param Instances:  The IDs of the instances.<br/>LoadBalancerName:  The name of the load balancer.<br/>
        :return: Instances:  The updated list of instances for the load balancer.<br/>        """
        pass

    def remove_tags(self, Tags: List[TagKeyOnly], LoadBalancerNames: List[AccessPointName]) -> RemoveTagsOutput:
        r"""Removes one or more tags from the specified load balancer.

        :param self:
        :param Tags:  The list of tag keys to remove.<br/>LoadBalancerNames:  The name of the load balancer. You can specify a maximum of one load balancer name.<br/>
        :return:         """
        pass

    def set_load_balancer_listener_ssl_certificate(self, SSLCertificateId: str, LoadBalancerPort: int, LoadBalancerName: str) -> SetLoadBalancerListenerSSLCertificateOutput:
        r"""Sets the certificate that terminates the specified listener's SSL connections. The specified certificate replaces any prior certificate that was used on the same load balancer and port. For more information about updating your SSL certificate, see <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-update-ssl-cert.html">Replace the SSL Certificate for Your Load Balancer</a> in the <i>Classic Load Balancers Guide</i>.

        :param self:
        :param SSLCertificateId:  The Amazon Resource Name (ARN) of the SSL certificate.<br/>LoadBalancerPort:  The port that uses the specified SSL certificate.<br/>LoadBalancerName:  The name of the load balancer.<br/>
        :return:         """
        pass

    def set_load_balancer_policies_for_backend_server(self, PolicyNames: List[PolicyName], InstancePort: int, LoadBalancerName: str) -> SetLoadBalancerPoliciesForBackendServerOutput:
        r"""Replaces the set of policies associated with the specified port on which the EC2 instance is listening with a new set of policies. At this time, only the back-end server authentication policy type can be applied to the instance ports; this policy type is composed of multiple public key policies. Each time you use <code>SetLoadBalancerPoliciesForBackendServer</code> to enable the policies, use the <code>PolicyNames</code> parameter to list the policies that you want to enable. You can use <a>DescribeLoadBalancers</a> or <a>DescribeLoadBalancerPolicies</a> to verify that the policy is associated with the EC2 instance. For more information about enabling back-end instance authentication, see <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-create-https-ssl-load-balancer.html#configure_backendauth_clt">Configure Back-end Instance Authentication</a> in the <i>Classic Load Balancers Guide</i>. For more information about Proxy Protocol, see <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/enable-proxy-protocol.html">Configure Proxy Protocol Support</a> in the <i>Classic Load Balancers Guide</i>.

        :param self:
        :param PolicyNames:  The names of the policies. If the list is empty, then all current polices are removed from the EC2 instance.<br/>InstancePort:  The port number associated with the EC2 instance.<br/>LoadBalancerName:  The name of the load balancer.<br/>
        :return:         """
        pass

    def set_load_balancer_policies_of_listener(self, PolicyNames: List[PolicyName], LoadBalancerPort: int, LoadBalancerName: str) -> SetLoadBalancerPoliciesOfListenerOutput:
        r"""Replaces the current set of policies for the specified load balancer port with the specified set of policies. To enable back-end server authentication, use <a>SetLoadBalancerPoliciesForBackendServer</a>. For more information about setting policies, see <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/ssl-config-update.html">Update the SSL Negotiation Configuration</a>, <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-sticky-sessions.html#enable-sticky-sessions-duration">Duration-Based Session Stickiness</a>, and <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-sticky-sessions.html#enable-sticky-sessions-application">Application-Controlled Session Stickiness</a> in the <i>Classic Load Balancers Guide</i>.

        :param self:
        :param PolicyNames:  The names of the policies. This list must include all policies to be enabled. If you omit a policy that is currently enabled, it is disabled. If the list is empty, all current policies are disabled.<br/>LoadBalancerPort:  The external port of the load balancer.<br/>LoadBalancerName:  The name of the load balancer.<br/>
        :return:         """
        pass





class ElasticLoadBalancingv2(BaseClient):
    r"""<fullname>Elastic Load Balancing</fullname> A load balancer distributes incoming traffic across targets, such as your EC2 instances. This enables you to increase the availability of your application. The load balancer also monitors the health of its registered targets and ensures that it routes traffic only to healthy targets. You configure your load balancer to accept incoming traffic by specifying one or more listeners, which are configured with a protocol and port number for connections from clients to the load balancer. You configure a target group with a protocol and port number for connections from the load balancer to the targets, and with health check settings to be used when checking the health status of the targets. Elastic Load Balancing supports the following types of load balancers: Application Load Balancers, Network Load Balancers, Gateway Load Balancers, and Classic Load Balancers. This reference covers the following load balancer types: <ul> <li> Application Load Balancer - Operates at the application layer (layer 7) and supports HTTP and HTTPS. </li> <li> Network Load Balancer - Operates at the transport layer (layer 4) and supports TCP, TLS, and UDP. </li> <li> Gateway Load Balancer - Operates at the network layer (layer 3). </li> </ul> For more information, see the <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/">Elastic Load Balancing User Guide</a>. All Elastic Load Balancing operations are idempotent, which means that they complete at most one time. If you repeat an operation, it succeeds."""

    class LoadBalancerAvailableWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_load_balancers` for valid parameters"""
            pass
    class LoadBalancerExistsWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_load_balancers` for valid parameters"""
            pass
    class LoadBalancersDeletedWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_load_balancers` for valid parameters"""
            pass
    class TargetDeregisteredWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_target_health` for valid parameters"""
            pass
    class TargetInServiceWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_target_health` for valid parameters"""
            pass


    class DescribeLoadBalancersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_load_balancers` for valid parameters"""
            pass
    class DescribeTargetGroupsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_target_groups` for valid parameters"""
            pass
    class DescribeListenersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_listeners` for valid parameters"""
            pass
    class DescribeAccountLimitsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_account_limits` for valid parameters"""
            pass
    class DescribeListenerCertificatesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_listener_certificates` for valid parameters"""
            pass
    class DescribeRulesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_rules` for valid parameters"""
            pass
    class DescribeSSLPoliciesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_ssl_policies` for valid parameters"""
            pass


    class AddListenerCertificatesInput(Mapping):
        pass
    
    class AddListenerCertificatesOutput(Mapping):
        pass
    
    class Certificate(Mapping):
        pass
    
    class AddTagsInput(Mapping):
        pass
    
    class AddTagsOutput(Mapping):
        pass
    
    class ResourceArn(object):
        pass
    
    class Tag(Mapping):
        pass
    
    class CreateListenerInput(Mapping):
        pass
    
    class CreateListenerOutput(Mapping):
        pass
    
    class Action(Mapping):
        pass
    
    class AlpnPolicyValue(object):
        pass
    
    class CreateLoadBalancerInput(Mapping):
        pass
    
    class CreateLoadBalancerOutput(Mapping):
        pass
    
    class SubnetId(object):
        pass
    
    class SubnetMapping(Mapping):
        pass
    
    class SecurityGroupId(object):
        pass
    
    class CreateRuleInput(Mapping):
        pass
    
    class CreateRuleOutput(Mapping):
        pass
    
    class RuleCondition(Mapping):
        pass
    
    class CreateTargetGroupInput(Mapping):
        pass
    
    class CreateTargetGroupOutput(Mapping):
        pass
    
    class HealthCheckEnabled(object):
        pass
    
    class Matcher(Mapping):
        pass
    
    class DeleteListenerInput(Mapping):
        pass
    
    class DeleteListenerOutput(Mapping):
        pass
    
    class DeleteLoadBalancerInput(Mapping):
        pass
    
    class DeleteLoadBalancerOutput(Mapping):
        pass
    
    class DeleteRuleInput(Mapping):
        pass
    
    class DeleteRuleOutput(Mapping):
        pass
    
    class DeleteTargetGroupInput(Mapping):
        pass
    
    class DeleteTargetGroupOutput(Mapping):
        pass
    
    class DeregisterTargetsInput(Mapping):
        pass
    
    class DeregisterTargetsOutput(Mapping):
        pass
    
    class TargetDescription(Mapping):
        pass
    
    class DescribeAccountLimitsInput(Mapping):
        pass
    
    class DescribeAccountLimitsOutput(Mapping):
        pass
    
    class DescribeListenerCertificatesInput(Mapping):
        pass
    
    class DescribeListenerCertificatesOutput(Mapping):
        pass
    
    class DescribeListenersInput(Mapping):
        pass
    
    class DescribeListenersOutput(Mapping):
        pass
    
    class ListenerArn(object):
        pass
    
    class DescribeLoadBalancerAttributesInput(Mapping):
        pass
    
    class DescribeLoadBalancerAttributesOutput(Mapping):
        pass
    
    class DescribeLoadBalancersInput(Mapping):
        pass
    
    class DescribeLoadBalancersOutput(Mapping):
        pass
    
    class LoadBalancerArn(object):
        pass
    
    class LoadBalancerName(object):
        pass
    
    class DescribeRulesInput(Mapping):
        pass
    
    class DescribeRulesOutput(Mapping):
        pass
    
    class RuleArn(object):
        pass
    
    class DescribeSSLPoliciesInput(Mapping):
        pass
    
    class DescribeSSLPoliciesOutput(Mapping):
        pass
    
    class SslPolicyName(object):
        pass
    
    class DescribeTagsInput(Mapping):
        pass
    
    class DescribeTagsOutput(Mapping):
        pass
    
    class DescribeTargetGroupAttributesInput(Mapping):
        pass
    
    class DescribeTargetGroupAttributesOutput(Mapping):
        pass
    
    class DescribeTargetGroupsInput(Mapping):
        pass
    
    class DescribeTargetGroupsOutput(Mapping):
        pass
    
    class TargetGroupArn(object):
        pass
    
    class TargetGroupName(object):
        pass
    
    class DescribeTargetHealthInput(Mapping):
        pass
    
    class DescribeTargetHealthOutput(Mapping):
        pass
    
    class ModifyListenerInput(Mapping):
        pass
    
    class ModifyListenerOutput(Mapping):
        pass
    
    class ModifyLoadBalancerAttributesInput(Mapping):
        pass
    
    class ModifyLoadBalancerAttributesOutput(Mapping):
        pass
    
    class LoadBalancerAttribute(Mapping):
        pass
    
    class ModifyRuleInput(Mapping):
        pass
    
    class ModifyRuleOutput(Mapping):
        pass
    
    class ModifyTargetGroupInput(Mapping):
        pass
    
    class ModifyTargetGroupOutput(Mapping):
        pass
    
    class ModifyTargetGroupAttributesInput(Mapping):
        pass
    
    class ModifyTargetGroupAttributesOutput(Mapping):
        pass
    
    class TargetGroupAttribute(Mapping):
        pass
    
    class RegisterTargetsInput(Mapping):
        pass
    
    class RegisterTargetsOutput(Mapping):
        pass
    
    class RemoveListenerCertificatesInput(Mapping):
        pass
    
    class RemoveListenerCertificatesOutput(Mapping):
        pass
    
    class RemoveTagsInput(Mapping):
        pass
    
    class RemoveTagsOutput(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class SetIpAddressTypeInput(Mapping):
        pass
    
    class SetIpAddressTypeOutput(Mapping):
        pass
    
    class SetRulePrioritiesInput(Mapping):
        pass
    
    class SetRulePrioritiesOutput(Mapping):
        pass
    
    class RulePriorityPair(Mapping):
        pass
    
    class SetSecurityGroupsInput(Mapping):
        pass
    
    class SetSecurityGroupsOutput(Mapping):
        pass
    
    class SetSubnetsInput(Mapping):
        pass
    
    class SetSubnetsOutput(Mapping):
        pass
    
    def add_listener_certificates(self, Certificates: List[Certificate], ListenerArn: str) -> AddListenerCertificatesOutput:
        r"""Adds the specified SSL server certificate to the certificate list for the specified HTTPS or TLS listener. If the certificate in already in the certificate list, the call is successful but the certificate is not added again. For more information, see <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-https-listener.html">HTTPS listeners</a> in the <i>Application Load Balancers Guide</i> or <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-tls-listener.html">TLS listeners</a> in the <i>Network Load Balancers Guide</i>.

        :param self:
        :param Certificates:  The certificate to add. You can specify one certificate per call. Set <code>CertificateArn</code> to the certificate ARN but do not set <code>IsDefault</code>.<br/>ListenerArn:  The Amazon Resource Name (ARN) of the listener.<br/>
        :return: Certificates:  Information about the certificates in the certificate list.<br/>        """
        pass

    def add_tags(self, Tags: List[Tag], ResourceArns: List[ResourceArn]) -> AddTagsOutput:
        r"""Adds the specified tags to the specified Elastic Load Balancing resource. You can tag your Application Load Balancers, Network Load Balancers, Gateway Load Balancers, target groups, listeners, and rules. Each tag consists of a key and an optional value. If a resource already has a tag with the same key, <code>AddTags</code> updates its value.

        :param self:
        :param Tags:  The tags.<br/>ResourceArns:  The Amazon Resource Name (ARN) of the resource.<br/>
        :return:         """
        pass

    def create_listener(self, DefaultActions: List[Action], LoadBalancerArn: str, Protocol: str=None, Port: int=None, SslPolicy: str=None, Certificates: List[Certificate]=None, AlpnPolicy: List[AlpnPolicyValue]=None, Tags: List[Tag]=None) -> CreateListenerOutput:
        r"""Creates a listener for the specified Application Load Balancer, Network Load Balancer, or Gateway Load Balancer. For more information, see the following: <ul> <li>  <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-listeners.html">Listeners for your Application Load Balancers</a>  </li> <li>  <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-listeners.html">Listeners for your Network Load Balancers</a>  </li> <li>  <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/gateway/gateway-listeners.html">Listeners for your Gateway Load Balancers</a>  </li> </ul> This operation is idempotent, which means that it completes at most one time. If you attempt to create multiple listeners with the same settings, each call succeeds.

        :param self:
        :param Tags:  The tags to assign to the listener.<br/>AlpnPolicy:  [TLS listeners] The name of the Application-Layer Protocol Negotiation (ALPN) policy. You can specify one policy name. The following are the possible values: <ul> <li>  <code>HTTP1Only</code>  </li> <li>  <code>HTTP2Only</code>  </li> <li>  <code>HTTP2Optional</code>  </li> <li>  <code>HTTP2Preferred</code>  </li> <li>  <code>None</code>  </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-tls-listener.html#alpn-policies">ALPN policies</a> in the <i>Network Load Balancers Guide</i>.<br/>DefaultActions:  The actions for the default rule.<br/>Certificates:  [HTTPS and TLS listeners] The default certificate for the listener. You must provide exactly one certificate. Set <code>CertificateArn</code> to the certificate ARN but do not set <code>IsDefault</code>.<br/>SslPolicy:  [HTTPS and TLS listeners] The security policy that defines which protocols and ciphers are supported. For more information, see <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-https-listener.html#describe-ssl-policies">Security policies</a> in the <i>Application Load Balancers Guide</i> and <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-tls-listener.html#describe-ssl-policies">Security policies</a> in the <i>Network Load Balancers Guide</i>.<br/>Port:  The port on which the load balancer is listening. You cannot specify a port for a Gateway Load Balancer.<br/>Protocol:  The protocol for connections from clients to the load balancer. For Application Load Balancers, the supported protocols are HTTP and HTTPS. For Network Load Balancers, the supported protocols are TCP, TLS, UDP, and TCP_UDP. You can’t specify the UDP or TCP_UDP protocol if dual-stack mode is enabled. You cannot specify a protocol for a Gateway Load Balancer.<br/>LoadBalancerArn:  The Amazon Resource Name (ARN) of the load balancer.<br/>
        :return: Listeners:  Information about the listener.<br/>        """
        pass

    def create_load_balancer(self, Name: str, Subnets: List[SubnetId]=None, SubnetMappings: List[SubnetMapping]=None, SecurityGroups: List[SecurityGroupId]=None, Scheme: str=None, Tags: List[Tag]=None, Type: str=None, IpAddressType: str=None, CustomerOwnedIpv4Pool: str=None) -> CreateLoadBalancerOutput:
        r"""Creates an Application Load Balancer, Network Load Balancer, or Gateway Load Balancer. For more information, see the following: <ul> <li>  <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/application/application-load-balancers.html">Application Load Balancers</a>  </li> <li>  <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/network/network-load-balancers.html">Network Load Balancers</a>  </li> <li>  <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/gateway/gateway-load-balancers.html">Gateway Load Balancers</a>  </li> </ul> This operation is idempotent, which means that it completes at most one time. If you attempt to create multiple load balancers with the same settings, each call succeeds.

        :param self:
        :param CustomerOwnedIpv4Pool:  [Application Load Balancers on Outposts] The ID of the customer-owned address pool (CoIP pool).<br/>IpAddressType:  The type of IP addresses used by the subnets for your load balancer. The possible values are <code>ipv4</code> (for IPv4 addresses) and <code>dualstack</code> (for IPv4 and IPv6 addresses). Internal load balancers must use <code>ipv4</code>.<br/>Type:  The type of load balancer. The default is <code>application</code>.<br/>Tags:  The tags to assign to the load balancer.<br/>Scheme:  The nodes of an Internet-facing load balancer have public IP addresses. The DNS name of an Internet-facing load balancer is publicly resolvable to the public IP addresses of the nodes. Therefore, Internet-facing load balancers can route requests from clients over the internet. The nodes of an internal load balancer have only private IP addresses. The DNS name of an internal load balancer is publicly resolvable to the private IP addresses of the nodes. Therefore, internal load balancers can route requests only from clients with access to the VPC for the load balancer. The default is an Internet-facing load balancer. You cannot specify a scheme for a Gateway Load Balancer.<br/>SecurityGroups:  [Application Load Balancers] The IDs of the security groups for the load balancer.<br/>SubnetMappings:  The IDs of the public subnets. You can specify only one subnet per Availability Zone. You must specify either subnets or subnet mappings. [Application Load Balancers] You must specify subnets from at least two Availability Zones. You cannot specify Elastic IP addresses for your subnets. [Application Load Balancers on Outposts] You must specify one Outpost subnet. [Application Load Balancers on Local Zones] You can specify subnets from one or more Local Zones. [Network Load Balancers] You can specify subnets from one or more Availability Zones. You can specify one Elastic IP address per subnet if you need static IP addresses for your internet-facing load balancer. For internal load balancers, you can specify one private IP address per subnet from the IPv4 range of the subnet. For internet-facing load balancer, you can specify one IPv6 address per subnet. [Gateway Load Balancers] You can specify subnets from one or more Availability Zones. You cannot specify Elastic IP addresses for your subnets.<br/>Subnets:  The IDs of the public subnets. You can specify only one subnet per Availability Zone. You must specify either subnets or subnet mappings. [Application Load Balancers] You must specify subnets from at least two Availability Zones. [Application Load Balancers on Outposts] You must specify one Outpost subnet. [Application Load Balancers on Local Zones] You can specify subnets from one or more Local Zones. [Network Load Balancers] You can specify subnets from one or more Availability Zones. [Gateway Load Balancers] You can specify subnets from one or more Availability Zones.<br/>Name:  The name of the load balancer. This name must be unique per region per account, can have a maximum of 32 characters, must contain only alphanumeric characters or hyphens, must not begin or end with a hyphen, and must not begin with "internal-".<br/>
        :return: LoadBalancers:  Information about the load balancer.<br/>        """
        pass

    def create_rule(self, Actions: List[Action], Priority: int, Conditions: List[RuleCondition], ListenerArn: str, Tags: List[Tag]=None) -> CreateRuleOutput:
        r"""Creates a rule for the specified listener. The listener must be associated with an Application Load Balancer. Each rule consists of a priority, one or more actions, and one or more conditions. Rules are evaluated in priority order, from the lowest value to the highest value. When the conditions for a rule are met, its actions are performed. If the conditions for no rules are met, the actions for the default rule are performed. For more information, see <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-listeners.html#listener-rules">Listener rules</a> in the <i>Application Load Balancers Guide</i>.

        :param self:
        :param Tags:  The tags to assign to the rule.<br/>Actions:  The actions.<br/>Priority:  The rule priority. A listener can't have multiple rules with the same priority.<br/>Conditions:  The conditions.<br/>ListenerArn:  The Amazon Resource Name (ARN) of the listener.<br/>
        :return: Rules:  Information about the rule.<br/>        """
        pass

    def create_target_group(self, Name: str, Protocol: str=None, ProtocolVersion: str=None, Port: int=None, VpcId: str=None, HealthCheckProtocol: str=None, HealthCheckPort: str=None, HealthCheckEnabled: HealthCheckEnabled=None, HealthCheckPath: str=None, HealthCheckIntervalSeconds: int=None, HealthCheckTimeoutSeconds: int=None, HealthyThresholdCount: int=None, UnhealthyThresholdCount: int=None, Matcher: Matcher=None, TargetType: str=None, Tags: List[Tag]=None) -> CreateTargetGroupOutput:
        r"""Creates a target group. For more information, see the following: <ul> <li>  <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-target-groups.html">Target groups for your Application Load Balancers</a>  </li> <li>  <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-target-groups.html">Target groups for your Network Load Balancers</a>  </li> <li>  <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/gateway/target-groups.html">Target groups for your Gateway Load Balancers</a>  </li> </ul> This operation is idempotent, which means that it completes at most one time. If you attempt to create multiple target groups with the same settings, each call succeeds.

        :param self:
        :param Tags:  The tags to assign to the target group.<br/>TargetType:  The type of target that you must specify when registering targets with this target group. You can't specify targets for a target group using more than one target type. <ul> <li>  <code>instance</code> - Register targets by instance ID. This is the default value. </li> <li>  <code>ip</code> - Register targets by IP address. You can specify IP addresses from the subnets of the virtual private cloud (VPC) for the target group, the RFC 1918 range (10.0.0.0/8, 172.16.0.0/12, and 192.168.0.0/16), and the RFC 6598 range (100.64.0.0/10). You can't specify publicly routable IP addresses. </li> <li>  <code>lambda</code> - Register a single Lambda function as a target. </li> </ul><br/>Matcher:  [HTTP/HTTPS health checks] The HTTP or gRPC codes to use when checking for a successful response from a target.:<br/>UnhealthyThresholdCount:  The number of consecutive health check failures required before considering a target unhealthy. If the target group protocol is HTTP or HTTPS, the default is 2. If the target group protocol is TCP or TLS, this value must be the same as the healthy threshold count. If the target group protocol is GENEVE, the default is 3. If the target type is <code>lambda</code>, the default is 2.<br/>HealthyThresholdCount:  The number of consecutive health checks successes required before considering an unhealthy target healthy. For target groups with a protocol of HTTP or HTTPS, the default is 5. For target groups with a protocol of TCP, TLS, or GENEVE, the default is 3. If the target type is <code>lambda</code>, the default is 5.<br/>HealthCheckTimeoutSeconds:  The amount of time, in seconds, during which no response from a target means a failed health check. For target groups with a protocol of HTTP, HTTPS, or GENEVE, the default is 5 seconds. For target groups with a protocol of TCP or TLS, this value must be 6 seconds for HTTP health checks and 10 seconds for TCP and HTTPS health checks. If the target type is <code>lambda</code>, the default is 30 seconds.<br/>HealthCheckIntervalSeconds:  The approximate amount of time, in seconds, between health checks of an individual target. If the target group protocol is TCP, TLS, UDP, or TCP_UDP, the supported values are 10 and 30 seconds. If the target group protocol is HTTP or HTTPS, the default is 30 seconds. If the target group protocol is GENEVE, the default is 10 seconds. If the target type is <code>lambda</code>, the default is 35 seconds.<br/>HealthCheckPath:  [HTTP/HTTPS health checks] The destination for health checks on the targets. [HTTP1 or HTTP2 protocol version] The ping path. The default is /. [GRPC protocol version] The path of a custom health check method with the format /package.service/method. The default is /Amazon Web Services.ALB/healthcheck.<br/>HealthCheckEnabled:  Indicates whether health checks are enabled. If the target type is <code>lambda</code>, health checks are disabled by default but can be enabled. If the target type is <code>instance</code> or <code>ip</code>, health checks are always enabled and cannot be disabled.<br/>HealthCheckPort:  The port the load balancer uses when performing health checks on targets. If the protocol is HTTP, HTTPS, TCP, TLS, UDP, or TCP_UDP, the default is <code>traffic-port</code>, which is the port on which each target receives traffic from the load balancer. If the protocol is GENEVE, the default is port 80.<br/>HealthCheckProtocol:  The protocol the load balancer uses when performing health checks on targets. For Application Load Balancers, the default is HTTP. For Network Load Balancers and Gateway Load Balancers, the default is TCP. The TCP protocol is not supported for health checks if the protocol of the target group is HTTP or HTTPS. The GENEVE, TLS, UDP, and TCP_UDP protocols are not supported for health checks.<br/>VpcId:  The identifier of the virtual private cloud (VPC). If the target is a Lambda function, this parameter does not apply. Otherwise, this parameter is required.<br/>Port:  The port on which the targets receive traffic. This port is used unless you specify a port override when registering the target. If the target is a Lambda function, this parameter does not apply. If the protocol is GENEVE, the supported port is 6081.<br/>ProtocolVersion:  [HTTP/HTTPS protocol] The protocol version. Specify <code>GRPC</code> to send requests to targets using gRPC. Specify <code>HTTP2</code> to send requests to targets using HTTP/2. The default is <code>HTTP1</code>, which sends requests to targets using HTTP/1.1.<br/>Protocol:  The protocol to use for routing traffic to the targets. For Application Load Balancers, the supported protocols are HTTP and HTTPS. For Network Load Balancers, the supported protocols are TCP, TLS, UDP, or TCP_UDP. For Gateway Load Balancers, the supported protocol is GENEVE. A TCP_UDP listener must be associated with a TCP_UDP target group. If the target is a Lambda function, this parameter does not apply.<br/>Name:  The name of the target group. This name must be unique per region per account, can have a maximum of 32 characters, must contain only alphanumeric characters or hyphens, and must not begin or end with a hyphen.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GrpcCode</i> You can specify values between 0 and 99. You can specify multiple values (for example, "0,1") or a range of values (for example, "0-5"). The default value is 12.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HttpCode</i> For Application Load Balancers, you can specify values between 200 and 499, and the default value is 200. You can specify multiple values (for example, "200,202") or a range of values (for example, "200-299"). For Network Load Balancers and Gateway Load Balancers, this must be "200–399".<br/>
        :return: TargetGroups:  Information about the target group.<br/>        """
        pass

    def delete_listener(self, ListenerArn: str) -> DeleteListenerOutput:
        r"""Deletes the specified listener. Alternatively, your listener is deleted when you delete the load balancer to which it is attached.

        :param self:
        :param ListenerArn:  The Amazon Resource Name (ARN) of the listener.<br/>
        :return:         """
        pass

    def delete_load_balancer(self, LoadBalancerArn: str) -> DeleteLoadBalancerOutput:
        r"""Deletes the specified Application Load Balancer, Network Load Balancer, or Gateway Load Balancer. Deleting a load balancer also deletes its listeners. You can't delete a load balancer if deletion protection is enabled. If the load balancer does not exist or has already been deleted, the call succeeds. Deleting a load balancer does not affect its registered targets. For example, your EC2 instances continue to run and are still registered to their target groups. If you no longer need these EC2 instances, you can stop or terminate them.

        :param self:
        :param LoadBalancerArn:  The Amazon Resource Name (ARN) of the load balancer.<br/>
        :return:         """
        pass

    def delete_rule(self, RuleArn: str) -> DeleteRuleOutput:
        r"""Deletes the specified rule. You can't delete the default rule.

        :param self:
        :param RuleArn:  The Amazon Resource Name (ARN) of the rule.<br/>
        :return:         """
        pass

    def delete_target_group(self, TargetGroupArn: str) -> DeleteTargetGroupOutput:
        r"""Deletes the specified target group. You can delete a target group if it is not referenced by any actions. Deleting a target group also deletes any associated health checks. Deleting a target group does not affect its registered targets. For example, any EC2 instances continue to run until you stop or terminate them.

        :param self:
        :param TargetGroupArn:  The Amazon Resource Name (ARN) of the target group.<br/>
        :return:         """
        pass

    def deregister_targets(self, Targets: List[TargetDescription], TargetGroupArn: str) -> DeregisterTargetsOutput:
        r"""Deregisters the specified targets from the specified target group. After the targets are deregistered, they no longer receive traffic from the load balancer.

        :param self:
        :param Targets:  The targets. If you specified a port override when you registered a target, you must specify both the target ID and the port when you deregister it.<br/>TargetGroupArn:  The Amazon Resource Name (ARN) of the target group.<br/>
        :return:         """
        pass

    def describe_account_limits(self, Marker: str=None, PageSize: int=None) -> DescribeAccountLimitsOutput:
        r"""Describes the current Elastic Load Balancing resource limits for your Amazon Web Services account. For more information, see the following: <ul> <li>  <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-limits.html">Quotas for your Application Load Balancers</a>  </li> <li>  <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-limits.html">Quotas for your Network Load Balancers</a>  </li> <li>  <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/gateway/quotas-limits.html">Quotas for your Gateway Load Balancers</a>  </li> </ul>

        :param self:
        :param PageSize:  The maximum number of results to return with this call.<br/>Marker:  The marker for the next set of results. (You received this marker from a previous call.)<br/>
        :return: NextMarker:  If there are additional results, this is the marker for the next set of results. Otherwise, this is null.<br/>Limits:  Information about the limits.<br/>        """
        pass

    def describe_listener_certificates(self, ListenerArn: str, Marker: str=None, PageSize: int=None) -> DescribeListenerCertificatesOutput:
        r"""Describes the default certificate and the certificate list for the specified HTTPS or TLS listener. If the default certificate is also in the certificate list, it appears twice in the results (once with <code>IsDefault</code> set to true and once with <code>IsDefault</code> set to false). For more information, see <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-https-listener.html#https-listener-certificates">SSL certificates</a> in the <i>Application Load Balancers Guide</i> or <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-tls-listener.html#tls-listener-certificate">Server certificates</a> in the <i>Network Load Balancers Guide</i>.

        :param self:
        :param PageSize:  The maximum number of results to return with this call.<br/>Marker:  The marker for the next set of results. (You received this marker from a previous call.)<br/>ListenerArn:  The Amazon Resource Names (ARN) of the listener.<br/>
        :return: NextMarker:  If there are additional results, this is the marker for the next set of results. Otherwise, this is null.<br/>Certificates:  Information about the certificates.<br/>        """
        pass

    def describe_listeners(self, LoadBalancerArn: str=None, ListenerArns: List[ListenerArn]=None, Marker: str=None, PageSize: int=None) -> DescribeListenersOutput:
        r"""Describes the specified listeners or the listeners for the specified Application Load Balancer, Network Load Balancer, or Gateway Load Balancer. You must specify either a load balancer or one or more listeners.

        :param self:
        :param PageSize:  The maximum number of results to return with this call.<br/>Marker:  The marker for the next set of results. (You received this marker from a previous call.)<br/>ListenerArns:  The Amazon Resource Names (ARN) of the listeners.<br/>LoadBalancerArn:  The Amazon Resource Name (ARN) of the load balancer.<br/>
        :return: NextMarker:  If there are additional results, this is the marker for the next set of results. Otherwise, this is null.<br/>Listeners:  Information about the listeners.<br/>        """
        pass

    def describe_load_balancer_attributes(self, LoadBalancerArn: str) -> DescribeLoadBalancerAttributesOutput:
        r"""Describes the attributes for the specified Application Load Balancer, Network Load Balancer, or Gateway Load Balancer. For more information, see the following: <ul> <li>  <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/application/application-load-balancers.html#load-balancer-attributes">Load balancer attributes</a> in the <i>Application Load Balancers Guide</i>  </li> <li>  <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/network/network-load-balancers.html#load-balancer-attributes">Load balancer attributes</a> in the <i>Network Load Balancers Guide</i>  </li> <li>  <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/gateway/gateway-load-balancers.html#load-balancer-attributes">Load balancer attributes</a> in the <i>Gateway Load Balancers Guide</i>  </li> </ul>

        :param self:
        :param LoadBalancerArn:  The Amazon Resource Name (ARN) of the load balancer.<br/>
        :return: Attributes:  Information about the load balancer attributes.<br/>        """
        pass

    def describe_load_balancers(self, LoadBalancerArns: List[LoadBalancerArn]=None, Names: List[LoadBalancerName]=None, Marker: str=None, PageSize: int=None) -> DescribeLoadBalancersOutput:
        r"""Describes the specified load balancers or all of your load balancers.

        :param self:
        :param PageSize:  The maximum number of results to return with this call.<br/>Marker:  The marker for the next set of results. (You received this marker from a previous call.)<br/>Names:  The names of the load balancers.<br/>LoadBalancerArns:  The Amazon Resource Names (ARN) of the load balancers. You can specify up to 20 load balancers in a single call.<br/>
        :return: NextMarker:  If there are additional results, this is the marker for the next set of results. Otherwise, this is null.<br/>LoadBalancers:  Information about the load balancers.<br/>        """
        pass

    def describe_rules(self, ListenerArn: str=None, RuleArns: List[RuleArn]=None, Marker: str=None, PageSize: int=None) -> DescribeRulesOutput:
        r"""Describes the specified rules or the rules for the specified listener. You must specify either a listener or one or more rules.

        :param self:
        :param PageSize:  The maximum number of results to return with this call.<br/>Marker:  The marker for the next set of results. (You received this marker from a previous call.)<br/>RuleArns:  The Amazon Resource Names (ARN) of the rules.<br/>ListenerArn:  The Amazon Resource Name (ARN) of the listener.<br/>
        :return: NextMarker:  If there are additional results, this is the marker for the next set of results. Otherwise, this is null.<br/>Rules:  Information about the rules.<br/>        """
        pass

    def describe_ssl_policies(self, Names: List[SslPolicyName]=None, Marker: str=None, PageSize: int=None) -> DescribeSSLPoliciesOutput:
        r"""Describes the specified policies or all policies used for SSL negotiation. For more information, see <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-https-listener.html#describe-ssl-policies">Security policies</a> in the <i>Application Load Balancers Guide</i> or <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-tls-listener.html#describe-ssl-policies">Security policies</a> in the <i>Network Load Balancers Guide</i>.

        :param self:
        :param PageSize:  The maximum number of results to return with this call.<br/>Marker:  The marker for the next set of results. (You received this marker from a previous call.)<br/>Names:  The names of the policies.<br/>
        :return: NextMarker:  If there are additional results, this is the marker for the next set of results. Otherwise, this is null.<br/>SslPolicies:  Information about the security policies.<br/>        """
        pass

    def describe_tags(self, ResourceArns: List[ResourceArn]) -> DescribeTagsOutput:
        r"""Describes the tags for the specified Elastic Load Balancing resources. You can describe the tags for one or more Application Load Balancers, Network Load Balancers, Gateway Load Balancers, target groups, listeners, or rules.

        :param self:
        :param ResourceArns:  The Amazon Resource Names (ARN) of the resources. You can specify up to 20 resources in a single call.<br/>
        :return: TagDescriptions:  Information about the tags.<br/>        """
        pass

    def describe_target_group_attributes(self, TargetGroupArn: str) -> DescribeTargetGroupAttributesOutput:
        r"""Describes the attributes for the specified target group. For more information, see the following: <ul> <li>  <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-target-groups.html#target-group-attributes">Target group attributes</a> in the <i>Application Load Balancers Guide</i>  </li> <li>  <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-target-groups.html#target-group-attributes">Target group attributes</a> in the <i>Network Load Balancers Guide</i>  </li> <li>  <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/gateway/target-groups.html#target-group-attributes">Target group attributes</a> in the <i>Gateway Load Balancers Guide</i>  </li> </ul>

        :param self:
        :param TargetGroupArn:  The Amazon Resource Name (ARN) of the target group.<br/>
        :return: Attributes:  Information about the target group attributes<br/>        """
        pass

    def describe_target_groups(self, LoadBalancerArn: str=None, TargetGroupArns: List[TargetGroupArn]=None, Names: List[TargetGroupName]=None, Marker: str=None, PageSize: int=None) -> DescribeTargetGroupsOutput:
        r"""Describes the specified target groups or all of your target groups. By default, all target groups are described. Alternatively, you can specify one of the following to filter the results: the ARN of the load balancer, the names of one or more target groups, or the ARNs of one or more target groups.

        :param self:
        :param PageSize:  The maximum number of results to return with this call.<br/>Marker:  The marker for the next set of results. (You received this marker from a previous call.)<br/>Names:  The names of the target groups.<br/>TargetGroupArns:  The Amazon Resource Names (ARN) of the target groups.<br/>LoadBalancerArn:  The Amazon Resource Name (ARN) of the load balancer.<br/>
        :return: NextMarker:  If there are additional results, this is the marker for the next set of results. Otherwise, this is null.<br/>TargetGroups:  Information about the target groups.<br/>        """
        pass

    def describe_target_health(self, TargetGroupArn: str, Targets: List[TargetDescription]=None) -> DescribeTargetHealthOutput:
        r"""Describes the health of the specified targets or all of your targets.

        :param self:
        :param Targets:  The targets.<br/>TargetGroupArn:  The Amazon Resource Name (ARN) of the target group.<br/>
        :return: TargetHealthDescriptions:  Information about the health of the targets.<br/>        """
        pass

    def modify_listener(self, ListenerArn: str, Port: int=None, Protocol: str=None, SslPolicy: str=None, Certificates: List[Certificate]=None, DefaultActions: List[Action]=None, AlpnPolicy: List[AlpnPolicyValue]=None) -> ModifyListenerOutput:
        r"""Replaces the specified properties of the specified listener. Any properties that you do not specify remain unchanged. Changing the protocol from HTTPS to HTTP, or from TLS to TCP, removes the security policy and default certificate properties. If you change the protocol from HTTP to HTTPS, or from TCP to TLS, you must add the security policy and default certificate properties. To add an item to a list, remove an item from a list, or update an item in a list, you must provide the entire list. For example, to add an action, specify a list with the current actions plus the new action.

        :param self:
        :param AlpnPolicy:  [TLS listeners] The name of the Application-Layer Protocol Negotiation (ALPN) policy. You can specify one policy name. The following are the possible values: <ul> <li>  <code>HTTP1Only</code>  </li> <li>  <code>HTTP2Only</code>  </li> <li>  <code>HTTP2Optional</code>  </li> <li>  <code>HTTP2Preferred</code>  </li> <li>  <code>None</code>  </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-tls-listener.html#alpn-policies">ALPN policies</a> in the <i>Network Load Balancers Guide</i>.<br/>DefaultActions:  The actions for the default rule.<br/>Certificates:  [HTTPS and TLS listeners] The default certificate for the listener. You must provide exactly one certificate. Set <code>CertificateArn</code> to the certificate ARN but do not set <code>IsDefault</code>.<br/>SslPolicy:  [HTTPS and TLS listeners] The security policy that defines which protocols and ciphers are supported. For more information, see <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-https-listener.html#describe-ssl-policies">Security policies</a> in the <i>Application Load Balancers Guide</i> or <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-tls-listener.html#describe-ssl-policies">Security policies</a> in the <i>Network Load Balancers Guide</i>.<br/>Protocol:  The protocol for connections from clients to the load balancer. Application Load Balancers support the HTTP and HTTPS protocols. Network Load Balancers support the TCP, TLS, UDP, and TCP_UDP protocols. You can’t change the protocol to UDP or TCP_UDP if dual-stack mode is enabled. You cannot specify a protocol for a Gateway Load Balancer.<br/>Port:  The port for connections from clients to the load balancer. You cannot specify a port for a Gateway Load Balancer.<br/>ListenerArn:  The Amazon Resource Name (ARN) of the listener.<br/>
        :return: Listeners:  Information about the modified listener.<br/>        """
        pass

    def modify_load_balancer_attributes(self, Attributes: List[LoadBalancerAttribute], LoadBalancerArn: str) -> ModifyLoadBalancerAttributesOutput:
        r"""Modifies the specified attributes of the specified Application Load Balancer, Network Load Balancer, or Gateway Load Balancer. If any of the specified attributes can't be modified as requested, the call fails. Any existing attributes that you do not modify retain their current values.

        :param self:
        :param Attributes:  The load balancer attributes.<br/>LoadBalancerArn:  The Amazon Resource Name (ARN) of the load balancer.<br/>
        :return: Attributes:  Information about the load balancer attributes.<br/>        """
        pass

    def modify_rule(self, RuleArn: str, Conditions: List[RuleCondition]=None, Actions: List[Action]=None) -> ModifyRuleOutput:
        r"""Replaces the specified properties of the specified rule. Any properties that you do not specify are unchanged. To add an item to a list, remove an item from a list, or update an item in a list, you must provide the entire list. For example, to add an action, specify a list with the current actions plus the new action.

        :param self:
        :param Actions:  The actions.<br/>Conditions:  The conditions.<br/>RuleArn:  The Amazon Resource Name (ARN) of the rule.<br/>
        :return: Rules:  Information about the modified rule.<br/>        """
        pass

    def modify_target_group(self, TargetGroupArn: str, HealthCheckProtocol: str=None, HealthCheckPort: str=None, HealthCheckPath: str=None, HealthCheckEnabled: HealthCheckEnabled=None, HealthCheckIntervalSeconds: int=None, HealthCheckTimeoutSeconds: int=None, HealthyThresholdCount: int=None, UnhealthyThresholdCount: int=None, Matcher: Matcher=None) -> ModifyTargetGroupOutput:
        r"""Modifies the health checks used when evaluating the health state of the targets in the specified target group.

        :param self:
        :param Matcher:  [HTTP/HTTPS health checks] The HTTP or gRPC codes to use when checking for a successful response from a target. With Network Load Balancers, you can't modify this setting.:<br/>UnhealthyThresholdCount:  The number of consecutive health check failures required before considering the target unhealthy. For target groups with a protocol of TCP or TLS, this value must be the same as the healthy threshold count.<br/>HealthyThresholdCount:  The number of consecutive health checks successes required before considering an unhealthy target healthy.<br/>HealthCheckTimeoutSeconds:  [HTTP/HTTPS health checks] The amount of time, in seconds, during which no response means a failed health check. With Network Load Balancers, you can't modify this setting.<br/>HealthCheckIntervalSeconds:  The approximate amount of time, in seconds, between health checks of an individual target. For TCP health checks, the supported values are 10 or 30 seconds. With Network Load Balancers, you can't modify this setting.<br/>HealthCheckEnabled:  Indicates whether health checks are enabled.<br/>HealthCheckPath:  [HTTP/HTTPS health checks] The destination for health checks on the targets. [HTTP1 or HTTP2 protocol version] The ping path. The default is /. [GRPC protocol version] The path of a custom health check method with the format /package.service/method. The default is /Amazon Web Services.ALB/healthcheck.<br/>HealthCheckPort:  The port the load balancer uses when performing health checks on targets.<br/>HealthCheckProtocol:  The protocol the load balancer uses when performing health checks on targets. For Application Load Balancers, the default is HTTP. For Network Load Balancers and Gateway Load Balancers, the default is TCP. The TCP protocol is not supported for health checks if the protocol of the target group is HTTP or HTTPS. It is supported for health checks only if the protocol of the target group is TCP, TLS, UDP, or TCP_UDP. The GENEVE, TLS, UDP, and TCP_UDP protocols are not supported for health checks. With Network Load Balancers, you can't modify this setting.<br/>TargetGroupArn:  The Amazon Resource Name (ARN) of the target group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GrpcCode</i> You can specify values between 0 and 99. You can specify multiple values (for example, "0,1") or a range of values (for example, "0-5"). The default value is 12.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HttpCode</i> For Application Load Balancers, you can specify values between 200 and 499, and the default value is 200. You can specify multiple values (for example, "200,202") or a range of values (for example, "200-299"). For Network Load Balancers and Gateway Load Balancers, this must be "200–399".<br/>
        :return: TargetGroups:  Information about the modified target group.<br/>        """
        pass

    def modify_target_group_attributes(self, Attributes: List[TargetGroupAttribute], TargetGroupArn: str) -> ModifyTargetGroupAttributesOutput:
        r"""Modifies the specified attributes of the specified target group.

        :param self:
        :param Attributes:  The attributes.<br/>TargetGroupArn:  The Amazon Resource Name (ARN) of the target group.<br/>
        :return: Attributes:  Information about the attributes.<br/>        """
        pass

    def register_targets(self, Targets: List[TargetDescription], TargetGroupArn: str) -> RegisterTargetsOutput:
        r"""Registers the specified targets with the specified target group. If the target is an EC2 instance, it must be in the <code>running</code> state when you register it. By default, the load balancer routes requests to registered targets using the protocol and port for the target group. Alternatively, you can override the port for a target when you register it. You can register each EC2 instance or IP address with the same target group multiple times using different ports. With a Network Load Balancer, you cannot register instances by instance ID if they have the following instance types: C1, CC1, CC2, CG1, CG2, CR1, CS1, G1, G2, HI1, HS1, M1, M2, M3, and T1. You can register instances of these types by IP address.

        :param self:
        :param Targets:  The targets.<br/>TargetGroupArn:  The Amazon Resource Name (ARN) of the target group.<br/>
        :return:         """
        pass

    def remove_listener_certificates(self, Certificates: List[Certificate], ListenerArn: str) -> RemoveListenerCertificatesOutput:
        r"""Removes the specified certificate from the certificate list for the specified HTTPS or TLS listener.

        :param self:
        :param Certificates:  The certificate to remove. You can specify one certificate per call. Set <code>CertificateArn</code> to the certificate ARN but do not set <code>IsDefault</code>.<br/>ListenerArn:  The Amazon Resource Name (ARN) of the listener.<br/>
        :return:         """
        pass

    def remove_tags(self, TagKeys: List[TagKey], ResourceArns: List[ResourceArn]) -> RemoveTagsOutput:
        r"""Removes the specified tags from the specified Elastic Load Balancing resources. You can remove the tags for one or more Application Load Balancers, Network Load Balancers, Gateway Load Balancers, target groups, listeners, or rules.

        :param self:
        :param TagKeys:  The tag keys for the tags to remove.<br/>ResourceArns:  The Amazon Resource Name (ARN) of the resource.<br/>
        :return:         """
        pass

    def set_ip_address_type(self, IpAddressType: str, LoadBalancerArn: str) -> SetIpAddressTypeOutput:
        r"""Sets the type of IP addresses used by the subnets of the specified Application Load Balancer or Network Load Balancer.

        :param self:
        :param IpAddressType:  The IP address type. The possible values are <code>ipv4</code> (for IPv4 addresses) and <code>dualstack</code> (for IPv4 and IPv6 addresses). Internal load balancers must use <code>ipv4</code>. You can’t specify <code>dualstack</code> for a load balancer with a UDP or TCP_UDP listener.<br/>LoadBalancerArn:  The Amazon Resource Name (ARN) of the load balancer.<br/>
        :return: IpAddressType:  The IP address type.<br/>        """
        pass

    def set_rule_priorities(self, RulePriorities: List[RulePriorityPair]) -> SetRulePrioritiesOutput:
        r"""Sets the priorities of the specified rules. You can reorder the rules as long as there are no priority conflicts in the new order. Any existing rules that you do not specify retain their current priority.

        :param self:
        :param RulePriorities:  The rule priorities.<br/>
        :return: Rules:  Information about the rules.<br/>        """
        pass

    def set_security_groups(self, SecurityGroups: List[SecurityGroupId], LoadBalancerArn: str) -> SetSecurityGroupsOutput:
        r"""Associates the specified security groups with the specified Application Load Balancer. The specified security groups override the previously associated security groups. You can't specify a security group for a Network Load Balancer or Gateway Load Balancer.

        :param self:
        :param SecurityGroups:  The IDs of the security groups.<br/>LoadBalancerArn:  The Amazon Resource Name (ARN) of the load balancer.<br/>
        :return: SecurityGroupIds:  The IDs of the security groups associated with the load balancer.<br/>        """
        pass

    def set_subnets(self, LoadBalancerArn: str, Subnets: List[SubnetId]=None, SubnetMappings: List[SubnetMapping]=None, IpAddressType: str=None) -> SetSubnetsOutput:
        r"""Enables the Availability Zones for the specified public subnets for the specified Application Load Balancer or Network Load Balancer. The specified subnets replace the previously enabled subnets. When you specify subnets for a Network Load Balancer, you must include all subnets that were enabled previously, with their existing configurations, plus any additional subnets.

        :param self:
        :param IpAddressType:  [Network Load Balancers] The type of IP addresses used by the subnets for your load balancer. The possible values are <code>ipv4</code> (for IPv4 addresses) and <code>dualstack</code> (for IPv4 and IPv6 addresses). You can’t specify <code>dualstack</code> for a load balancer with a UDP or TCP_UDP listener. Internal load balancers must use <code>ipv4</code>.<br/>SubnetMappings:  The IDs of the public subnets. You can specify only one subnet per Availability Zone. You must specify either subnets or subnet mappings. [Application Load Balancers] You must specify subnets from at least two Availability Zones. You cannot specify Elastic IP addresses for your subnets. [Application Load Balancers on Outposts] You must specify one Outpost subnet. [Application Load Balancers on Local Zones] You can specify subnets from one or more Local Zones. [Network Load Balancers] You can specify subnets from one or more Availability Zones. You can specify one Elastic IP address per subnet if you need static IP addresses for your internet-facing load balancer. For internal load balancers, you can specify one private IP address per subnet from the IPv4 range of the subnet. For internet-facing load balancer, you can specify one IPv6 address per subnet.<br/>Subnets:  The IDs of the public subnets. You can specify only one subnet per Availability Zone. You must specify either subnets or subnet mappings. [Application Load Balancers] You must specify subnets from at least two Availability Zones. [Application Load Balancers on Outposts] You must specify one Outpost subnet. [Application Load Balancers on Local Zones] You can specify subnets from one or more Local Zones. [Network Load Balancers] You can specify subnets from one or more Availability Zones.<br/>LoadBalancerArn:  The Amazon Resource Name (ARN) of the load balancer.<br/>
        :return: IpAddressType:  [Network Load Balancers] The IP address type.<br/>AvailabilityZones:  Information about the subnets.<br/>        """
        pass





class EMR(BaseClient):
    r"""Amazon EMR is a web service that makes it easier to process large amounts of data efficiently. Amazon EMR uses Hadoop processing combined with several AWS services to do tasks such as web indexing, data mining, log file analysis, machine learning, scientific simulation, and data warehouse management."""

    class ClusterRunningWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_cluster` for valid parameters"""
            pass
    class ClusterTerminatedWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_cluster` for valid parameters"""
            pass
    class StepCompleteWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_step` for valid parameters"""
            pass


    class ListBootstrapActionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_bootstrap_actions` for valid parameters"""
            pass
    class ListClustersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_clusters` for valid parameters"""
            pass
    class ListInstanceGroupsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_instance_groups` for valid parameters"""
            pass
    class ListInstancesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_instances` for valid parameters"""
            pass
    class ListStepsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_steps` for valid parameters"""
            pass
    class ListInstanceFleetsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_instance_fleets` for valid parameters"""
            pass
    class ListSecurityConfigurationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_security_configurations` for valid parameters"""
            pass
    class ListNotebookExecutionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_notebook_executions` for valid parameters"""
            pass
    class ListStudioSessionMappingsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_studio_session_mappings` for valid parameters"""
            pass
    class ListStudiosPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_studios` for valid parameters"""
            pass


    class AddInstanceFleetInput(Mapping):
        pass
    
    class AddInstanceFleetOutput(Mapping):
        pass
    
    class InstanceFleetConfig(Mapping):
        pass
    
    class AddInstanceGroupsInput(Mapping):
        pass
    
    class AddInstanceGroupsOutput(Mapping):
        pass
    
    class InstanceGroupConfig(Mapping):
        pass
    
    class AddJobFlowStepsInput(Mapping):
        pass
    
    class AddJobFlowStepsOutput(Mapping):
        pass
    
    class StepConfig(Mapping):
        pass
    
    class AddTagsInput(Mapping):
        pass
    
    class AddTagsOutput(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class CancelStepsInput(Mapping):
        pass
    
    class CancelStepsOutput(Mapping):
        pass
    
    class XmlStringMaxLen256(object):
        pass
    
    class CreateSecurityConfigurationInput(Mapping):
        pass
    
    class CreateSecurityConfigurationOutput(Mapping):
        pass
    
    class CreateStudioInput(Mapping):
        pass
    
    class CreateStudioOutput(Mapping):
        pass
    
    class String(object):
        pass
    
    class CreateStudioSessionMappingInput(Mapping):
        pass
    
    class DeleteSecurityConfigurationInput(Mapping):
        pass
    
    class DeleteSecurityConfigurationOutput(Mapping):
        pass
    
    class DeleteStudioInput(Mapping):
        pass
    
    class DeleteStudioSessionMappingInput(Mapping):
        pass
    
    class DescribeClusterInput(Mapping):
        pass
    
    class DescribeClusterOutput(Mapping):
        pass
    
    class DescribeJobFlowsInput(Mapping):
        pass
    
    class DescribeJobFlowsOutput(Mapping):
        pass
    
    class Date(object):
        pass
    
    class XmlString(object):
        pass
    
    class JobFlowExecutionState(object):
        pass
    
    class DescribeNotebookExecutionInput(Mapping):
        pass
    
    class DescribeNotebookExecutionOutput(Mapping):
        pass
    
    class DescribeSecurityConfigurationInput(Mapping):
        pass
    
    class DescribeSecurityConfigurationOutput(Mapping):
        pass
    
    class DescribeStepInput(Mapping):
        pass
    
    class DescribeStepOutput(Mapping):
        pass
    
    class DescribeStudioInput(Mapping):
        pass
    
    class DescribeStudioOutput(Mapping):
        pass
    
    class GetBlockPublicAccessConfigurationInput(Mapping):
        pass
    
    class GetBlockPublicAccessConfigurationOutput(Mapping):
        pass
    
    class GetManagedScalingPolicyInput(Mapping):
        pass
    
    class GetManagedScalingPolicyOutput(Mapping):
        pass
    
    class GetStudioSessionMappingInput(Mapping):
        pass
    
    class GetStudioSessionMappingOutput(Mapping):
        pass
    
    class ListBootstrapActionsInput(Mapping):
        pass
    
    class ListBootstrapActionsOutput(Mapping):
        pass
    
    class ListClustersInput(Mapping):
        pass
    
    class ListClustersOutput(Mapping):
        pass
    
    class ClusterState(object):
        pass
    
    class ListInstanceFleetsInput(Mapping):
        pass
    
    class ListInstanceFleetsOutput(Mapping):
        pass
    
    class ListInstanceGroupsInput(Mapping):
        pass
    
    class ListInstanceGroupsOutput(Mapping):
        pass
    
    class ListInstancesInput(Mapping):
        pass
    
    class ListInstancesOutput(Mapping):
        pass
    
    class InstanceGroupType(object):
        pass
    
    class InstanceState(object):
        pass
    
    class ListNotebookExecutionsInput(Mapping):
        pass
    
    class ListNotebookExecutionsOutput(Mapping):
        pass
    
    class ListSecurityConfigurationsInput(Mapping):
        pass
    
    class ListSecurityConfigurationsOutput(Mapping):
        pass
    
    class ListStepsInput(Mapping):
        pass
    
    class ListStepsOutput(Mapping):
        pass
    
    class StepState(object):
        pass
    
    class ListStudioSessionMappingsInput(Mapping):
        pass
    
    class ListStudioSessionMappingsOutput(Mapping):
        pass
    
    class ListStudiosInput(Mapping):
        pass
    
    class ListStudiosOutput(Mapping):
        pass
    
    class ModifyClusterInput(Mapping):
        pass
    
    class ModifyClusterOutput(Mapping):
        pass
    
    class ModifyInstanceFleetInput(Mapping):
        pass
    
    class InstanceFleetModifyConfig(Mapping):
        pass
    
    class ModifyInstanceGroupsInput(Mapping):
        pass
    
    class InstanceGroupModifyConfig(Mapping):
        pass
    
    class PutAutoScalingPolicyInput(Mapping):
        pass
    
    class PutAutoScalingPolicyOutput(Mapping):
        pass
    
    class AutoScalingPolicy(Mapping):
        pass
    
    class PutBlockPublicAccessConfigurationInput(Mapping):
        pass
    
    class PutBlockPublicAccessConfigurationOutput(Mapping):
        pass
    
    class BlockPublicAccessConfiguration(Mapping):
        pass
    
    class PutManagedScalingPolicyInput(Mapping):
        pass
    
    class PutManagedScalingPolicyOutput(Mapping):
        pass
    
    class ManagedScalingPolicy(Mapping):
        pass
    
    class RemoveAutoScalingPolicyInput(Mapping):
        pass
    
    class RemoveAutoScalingPolicyOutput(Mapping):
        pass
    
    class RemoveManagedScalingPolicyInput(Mapping):
        pass
    
    class RemoveManagedScalingPolicyOutput(Mapping):
        pass
    
    class RemoveTagsInput(Mapping):
        pass
    
    class RemoveTagsOutput(Mapping):
        pass
    
    class RunJobFlowInput(Mapping):
        pass
    
    class RunJobFlowOutput(Mapping):
        pass
    
    class JobFlowInstancesConfig(Mapping):
        pass
    
    class BootstrapActionConfig(Mapping):
        pass
    
    class SupportedProductConfig(Mapping):
        pass
    
    class Application(Mapping):
        pass
    
    class Configuration(Mapping):
        pass
    
    class Boolean(object):
        pass
    
    class KerberosAttributes(Mapping):
        pass
    
    class PlacementGroupConfig(Mapping):
        pass
    
    class SetTerminationProtectionInput(Mapping):
        pass
    
    class SetVisibleToAllUsersInput(Mapping):
        pass
    
    class StartNotebookExecutionInput(Mapping):
        pass
    
    class StartNotebookExecutionOutput(Mapping):
        pass
    
    class ExecutionEngineConfig(Mapping):
        pass
    
    class StopNotebookExecutionInput(Mapping):
        pass
    
    class TerminateJobFlowsInput(Mapping):
        pass
    
    class UpdateStudioInput(Mapping):
        pass
    
    class UpdateStudioSessionMappingInput(Mapping):
        pass
    
    def add_instance_fleet(self, InstanceFleet: InstanceFleetConfig, ClusterId: str) -> AddInstanceFleetOutput:
        r"""Adds an instance fleet to a running cluster. <note> The instance fleet configuration is available only in Amazon EMR versions 4.8.0 and later, excluding 5.0.x. </note>

        :param self:
        :param InstanceFleet:  Specifies the configuration of the instance fleet.:<br/>ClusterId:  The unique identifier of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LaunchSpecifications</i> The launch specification for the instance fleet.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>LaunchSpecifications</b>: The launch specification for the instance fleet.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceTypeConfigs</i> The instance type configurations that define the EC2 instances in the instance fleet.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetSpotCapacity</i> The target capacity of Spot units for the instance fleet, which determines how many Spot Instances to provision. When the instance fleet launches, Amazon EMR tries to provision Spot Instances as specified by <a>InstanceTypeConfig</a>. Each instance configuration has a specified <code>WeightedCapacity</code>. When a Spot Instance is provisioned, the <code>WeightedCapacity</code> units count toward the target capacity. Amazon EMR provisions instances until the target capacity is totally fulfilled, even if this results in an overage. For example, if there are 2 units remaining to fulfill capacity, and Amazon EMR can only provision an instance with a <code>WeightedCapacity</code> of 5 units, the instance is provisioned, and the target capacity is exceeded by 3 units. <note> If not specified or set to 0, only On-Demand Instances are provisioned for the instance fleet. At least one of <code>TargetSpotCapacity</code> and <code>TargetOnDemandCapacity</code> should be greater than 0. For a master instance fleet, only one of <code>TargetSpotCapacity</code> and <code>TargetOnDemandCapacity</code> can be specified, and its value must be 1. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetOnDemandCapacity</i> The target capacity of On-Demand units for the instance fleet, which determines how many On-Demand Instances to provision. When the instance fleet launches, Amazon EMR tries to provision On-Demand Instances as specified by <a>InstanceTypeConfig</a>. Each instance configuration has a specified <code>WeightedCapacity</code>. When an On-Demand Instance is provisioned, the <code>WeightedCapacity</code> units count toward the target capacity. Amazon EMR provisions instances until the target capacity is totally fulfilled, even if this results in an overage. For example, if there are 2 units remaining to fulfill capacity, and Amazon EMR can only provision an instance with a <code>WeightedCapacity</code> of 5 units, the instance is provisioned, and the target capacity is exceeded by 3 units. <note> If not specified or set to 0, only Spot Instances are provisioned for the instance fleet using <code>TargetSpotCapacity</code>. At least one of <code>TargetSpotCapacity</code> and <code>TargetOnDemandCapacity</code> should be greater than 0. For a master instance fleet, only one of <code>TargetSpotCapacity</code> and <code>TargetOnDemandCapacity</code> can be specified, and its value must be 1. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceFleetType</i> The node type that the instance fleet hosts. Valid values are MASTER, CORE, and TASK.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The friendly name of the instance fleet.<br/>The launch specification for Spot Instances in the fleet, which determines the defined duration, provisioning timeout behavior, and allocation strategy.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SpotSpecification</b>: The launch specification for Spot Instances in the fleet, which determines the defined duration, provisioning timeout behavior, and allocation strategy.
        :return: ClusterArn:  The Amazon Resource Name of the cluster.<br/>InstanceFleetId:  The unique identifier of the instance fleet.<br/>ClusterId:  The unique identifier of the cluster.<br/>        """
        pass

    def add_instance_groups(self, JobFlowId: str, InstanceGroups: List[InstanceGroupConfig]) -> AddInstanceGroupsOutput:
        r"""Adds one or more instance groups to a running cluster.

        :param self:
        :param JobFlowId:  Job flow in which to add the instance groups.<br/>InstanceGroups:  Instance groups to add.<br/>
        :return: ClusterArn:  The Amazon Resource Name of the cluster.<br/>InstanceGroupIds:  Instance group IDs of the newly created instance groups.<br/>JobFlowId:  The job flow ID in which the instance groups are added.<br/>        """
        pass

    def add_job_flow_steps(self, Steps: List[StepConfig], JobFlowId: str) -> AddJobFlowStepsOutput:
        r"""AddJobFlowSteps adds new steps to a running cluster. A maximum of 256 steps are allowed in each job flow. If your cluster is long-running (such as a Hive data warehouse) or complex, you may require more than 256 steps to process your data. You can bypass the 256-step limitation in various ways, including using SSH to connect to the master node and submitting queries directly to the software running on the master node, such as Hive and Hadoop. For more information on how to do this, see <a href="https://docs.aws.amazon.com/emr/latest/ManagementGuide/AddMoreThan256Steps.html">Add More than 256 Steps to a Cluster</a> in the <i>Amazon EMR Management Guide</i>. A step specifies the location of a JAR file stored either on the master node of the cluster or in Amazon S3. Each step is performed by the main function of the main class of the JAR file. The main class can be specified either in the manifest of the JAR or by using the MainFunction parameter of the step. Amazon EMR executes each step in the order listed. For a step to be considered complete, the main function must exit with a zero exit code and all Hadoop jobs started while the step was running must have completed and run successfully. You can only add steps to a cluster that is in one of the following states: STARTING, BOOTSTRAPPING, RUNNING, or WAITING.

        :param self:
        :param Steps:   A list of <a>StepConfig</a> to be executed by the job flow. <br/>JobFlowId:  A string that uniquely identifies the job flow. This identifier is returned by <a>RunJobFlow</a> and can also be obtained from <a>ListClusters</a>. <br/>
        :return: StepIds:  The identifiers of the list of steps added to the job flow.<br/>        """
        pass

    def add_tags(self, Tags: List[Tag], ResourceId: str) -> AddTagsOutput:
        r"""Adds tags to an Amazon EMR resource. Tags make it easier to associate clusters in various ways, such as grouping clusters to track your Amazon EMR resource allocation costs. For more information, see <a href="https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-tags.html">Tag Clusters</a>. 

        :param self:
        :param Tags:  A list of tags to associate with a cluster and propagate to EC2 instances. Tags are user-defined key-value pairs that consist of a required key string with a maximum of 128 characters, and an optional value string with a maximum of 256 characters.<br/>ResourceId:  The Amazon EMR resource identifier to which tags will be added. This value must be a cluster identifier.<br/>
        :return:         """
        pass

    def cancel_steps(self, StepIds: List[XmlStringMaxLen256], ClusterId: str, StepCancellationOption: str=None) -> CancelStepsOutput:
        r"""Cancels a pending step or steps in a running cluster. Available only in Amazon EMR versions 4.8.0 and later, excluding version 5.0.0. A maximum of 256 steps are allowed in each CancelSteps request. CancelSteps is idempotent but asynchronous; it does not guarantee that a step will be canceled, even if the request is successfully submitted. You can only cancel steps that are in a <code>PENDING</code> state.

        :param self:
        :param StepCancellationOption:  The option to choose to cancel <code>RUNNING</code> steps. By default, the value is <code>SEND_INTERRUPT</code>.<br/>StepIds:  The list of <code>StepIDs</code> to cancel. Use <a>ListSteps</a> to get steps and their states for the specified cluster.<br/>ClusterId:  The <code>ClusterID</code> for the specified steps that will be canceled. Use <a>RunJobFlow</a> and <a>ListClusters</a> to get ClusterIDs. <br/>
        :return: CancelStepsInfoList:  A list of <a>CancelStepsInfo</a>, which shows the status of specified cancel requests for each <code>StepID</code> specified.<br/>        """
        pass

    def create_security_configuration(self, SecurityConfiguration: str, Name: str) -> CreateSecurityConfigurationOutput:
        r"""Creates a security configuration, which is stored in the service and can be specified when a cluster is created.

        :param self:
        :param SecurityConfiguration:  The security configuration details in JSON format. For JSON parameters and examples, see <a href="https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-security-configurations.html">Use Security Configurations to Set Up Cluster Security</a> in the <i>Amazon EMR Management Guide</i>.<br/>Name:  The name of the security configuration.<br/>
        :return: CreationDateTime:  The date and time the security configuration was created.<br/>Name:  The name of the security configuration.<br/>        """
        pass

    def create_studio(self, DefaultS3Location: str, EngineSecurityGroupId: str, WorkspaceSecurityGroupId: str, UserRole: str, ServiceRole: str, SubnetIds: List[String], VpcId: str, AuthMode: str, Name: str, Description: str=None, Tags: List[Tag]=None) -> CreateStudioOutput:
        r"""Creates a new Amazon EMR Studio.

        :param self:
        :param Tags:  A list of tags to associate with the Amazon EMR Studio. Tags are user-defined key-value pairs that consist of a required key string with a maximum of 128 characters, and an optional value string with a maximum of 256 characters.<br/>DefaultS3Location:  The Amazon S3 location to back up Amazon EMR Studio Workspaces and notebook files.<br/>EngineSecurityGroupId:  The ID of the Amazon EMR Studio Engine security group. The Engine security group allows inbound network traffic from the Workspace security group, and it must be in the same VPC specified by <code>VpcId</code>.<br/>WorkspaceSecurityGroupId:  The ID of the Amazon EMR Studio Workspace security group. The Workspace security group allows outbound network traffic to resources in the Engine security group, and it must be in the same VPC specified by <code>VpcId</code>.<br/>UserRole:  The IAM user role that will be assumed by users and groups logged in to an Amazon EMR Studio. The permissions attached to this IAM role can be scoped down for each user or group using session policies.<br/>ServiceRole:  The IAM role that will be assumed by the Amazon EMR Studio. The service role provides a way for Amazon EMR Studio to interoperate with other AWS services.<br/>SubnetIds:  A list of subnet IDs to associate with the Amazon EMR Studio. A Studio can have a maximum of 5 subnets. The subnets must belong to the VPC specified by <code>VpcId</code>. Studio users can create a Workspace in any of the specified subnets.<br/>VpcId:  The ID of the Amazon Virtual Private Cloud (Amazon VPC) to associate with the Studio.<br/>AuthMode:  Specifies whether the Studio authenticates users using single sign-on (SSO) or IAM. Amazon EMR Studio currently only supports SSO authentication.<br/>Description:  A detailed description of the Amazon EMR Studio.<br/>Name:  A descriptive name for the Amazon EMR Studio.<br/>
        :return: Url:  The unique Studio access URL.<br/>StudioId:  The ID of the Amazon EMR Studio.<br/>        """
        pass

    def create_studio_session_mapping(self, SessionPolicyArn: str, IdentityType: str, StudioId: str, IdentityId: str=None, IdentityName: str=None):
        r"""Maps a user or group to the Amazon EMR Studio specified by <code>StudioId</code>, and applies a session policy to refine Studio permissions for that user or group.

        :param self:
        :param SessionPolicyArn:  The Amazon Resource Name (ARN) for the session policy that will be applied to the user or group. Session policies refine Studio user permissions without the need to use multiple IAM user roles.<br/>IdentityType:  Specifies whether the identity to map to the Amazon EMR Studio is a user or a group.<br/>IdentityName:  The name of the user or group. For more information, see <a href="https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_User.html#singlesignon-Type-User-UserName">UserName</a> and <a href="https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-DisplayName">DisplayName</a> in the <i>AWS SSO Identity Store API Reference</i>. Either <code>IdentityName</code> or <code>IdentityId</code> must be specified.<br/>IdentityId:  The globally unique identifier (GUID) of the user or group from the AWS SSO Identity Store. For more information, see <a href="https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_User.html#singlesignon-Type-User-UserId">UserId</a> and <a href="https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-GroupId">GroupId</a> in the <i>AWS SSO Identity Store API Reference</i>. Either <code>IdentityName</code> or <code>IdentityId</code> must be specified.<br/>StudioId:  The ID of the Amazon EMR Studio to which the user or group will be mapped.<br/>
        :return:         """
        pass

    def delete_security_configuration(self, Name: str) -> DeleteSecurityConfigurationOutput:
        r"""Deletes a security configuration.

        :param self:
        :param Name:  The name of the security configuration.<br/>
        :return:         """
        pass

    def delete_studio(self, StudioId: str):
        r"""Removes an Amazon EMR Studio from the Studio metadata store.

        :param self:
        :param StudioId:  The ID of the Amazon EMR Studio.<br/>
        :return:         """
        pass

    def delete_studio_session_mapping(self, IdentityType: str, StudioId: str, IdentityId: str=None, IdentityName: str=None):
        r"""Removes a user or group from an Amazon EMR Studio.

        :param self:
        :param IdentityType:  Specifies whether the identity to delete from the Amazon EMR Studio is a user or a group.<br/>IdentityName:  The name of the user name or group to remove from the Amazon EMR Studio. For more information, see <a href="https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_User.html#singlesignon-Type-User-UserName">UserName</a> and <a href="https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-DisplayName">DisplayName</a> in the <i>AWS SSO Identity Store API Reference</i>. Either <code>IdentityName</code> or <code>IdentityId</code> must be specified.<br/>IdentityId:  The globally unique identifier (GUID) of the user or group to remove from the Amazon EMR Studio. For more information, see <a href="https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_User.html#singlesignon-Type-User-UserId">UserId</a> and <a href="https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-GroupId">GroupId</a> in the <i>AWS SSO Identity Store API Reference</i>. Either <code>IdentityName</code> or <code>IdentityId</code> must be specified.<br/>StudioId:  The ID of the Amazon EMR Studio.<br/>
        :return:         """
        pass

    def describe_cluster(self, ClusterId: str) -> DescribeClusterOutput:
        r"""Provides cluster-level details including status, hardware and software configuration, VPC settings, and so on. 

        :param self:
        :param ClusterId:  The identifier of the cluster to describe.<br/>
        :return: Cluster:  This output contains the details for the requested cluster.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PlacementGroups</i> Placement group configured for an Amazon EMR cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StepConcurrencyLevel</i> Specifies the number of steps that can be executed concurrently.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OutpostArn</i>  The Amazon Resource Name (ARN) of the Outpost where the cluster is launched. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterArn</i> The Amazon Resource Name of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KerberosAttributes</i> Attributes for Kerberos configuration when Kerberos authentication is enabled using a security configuration. For more information see <a href="https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-kerberos.html">Use Kerberos Authentication</a> in the <i>Amazon EMR Management Guide</i>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>KerberosAttributes</b>: Attributes for Kerberos configuration when Kerberos authentication is enabled using a security configuration. For more information see <a href="https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-kerberos.html">Use Kerberos Authentication</a> in the <i>Amazon EMR Management Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RepoUpgradeOnBoot</i> Applies only when <code>CustomAmiID</code> is used. Specifies the type of updates that are applied from the Amazon Linux AMI package repositories when an instance boots using the AMI.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EbsRootVolumeSize</i> The size, in GiB, of the Amazon EBS root device volume of the Linux AMI that is used for each EC2 instance. Available in Amazon EMR version 4.x and later.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomAmiId</i> Available only in Amazon EMR version 5.7.0 and later. The ID of a custom Amazon EBS-backed Linux AMI if the cluster uses a custom AMI.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ScaleDownBehavior</i> The way that individual Amazon EC2 instances terminate when an automatic scale-in activity occurs or an instance group is resized. <code>TERMINATE_AT_INSTANCE_HOUR</code> indicates that Amazon EMR terminates nodes at the instance-hour boundary, regardless of when the request to terminate the instance was submitted. This option is only available with Amazon EMR 5.1.0 and later and is the default for clusters created using that version. <code>TERMINATE_AT_TASK_COMPLETION</code> indicates that Amazon EMR adds nodes to a deny list and drains tasks from nodes before terminating the Amazon EC2 instances, regardless of the instance-hour boundary. With either behavior, Amazon EMR removes the least active nodes first and blocks instance termination if it could lead to HDFS corruption. <code>TERMINATE_AT_TASK_COMPLETION</code> is available only in Amazon EMR version 4.1.0 and later, and is the default for versions of Amazon EMR earlier than 5.1.0.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoScalingRole</i> An IAM role for automatic scaling policies. The default role is <code>EMR_AutoScaling_DefaultRole</code>. The IAM role provides permissions that the automatic scaling feature requires to launch and terminate EC2 instances in an instance group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityConfiguration</i> The name of the security configuration applied to the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Configurations</i> Applies only to Amazon EMR releases 4.x and later. The list of Configurations supplied to the EMR cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterPublicDnsName</i> The DNS name of the master node. If the cluster is on a private subnet, this is the private DNS name. On a public subnet, this is the public DNS name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NormalizedInstanceHours</i> An approximation of the cost of the cluster, represented in m1.small/hours. This value is incremented one time for every hour an m1.small instance runs. Larger instances are weighted more, so an EC2 instance that is roughly four times more expensive would result in the normalized instance hours being incremented by four. This result is only an approximation and does not reflect the actual billing rate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceRole</i> The IAM role that will be assumed by the Amazon EMR service to access AWS resources on your behalf.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> A list of tags associated with a cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Applications</i> The applications installed on this cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VisibleToAllUsers</i> Indicates whether the cluster is visible to all IAM users of the AWS account associated with the cluster. The default value, <code>true</code>, indicates that all IAM users in the AWS account can perform cluster actions if they have the proper IAM policy permissions. If this value is <code>false</code>, only the IAM user that created the cluster can perform actions. This value can be changed on a running cluster by using the <a>SetVisibleToAllUsers</a> action. You can override the default value of <code>true</code> when you create a cluster by using the <code>VisibleToAllUsers</code> parameter of the <code>RunJobFlow</code> action.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TerminationProtected</i> Indicates whether Amazon EMR will lock the cluster to prevent the EC2 instances from being terminated by an API call or user intervention, or in the event of a cluster error.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoTerminate</i> Specifies whether the cluster should terminate after completing all steps.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReleaseLabel</i> The Amazon EMR release label, which determines the version of open-source application packages installed on the cluster. Release labels are in the form <code>emr-x.x.x</code>, where x.x.x is an Amazon EMR release version such as <code>emr-5.14.0</code>. For more information about Amazon EMR release versions and included application versions and features, see <a href="https://docs.aws.amazon.com/emr/latest/ReleaseGuide/">https://docs.aws.amazon.com/emr/latest/ReleaseGuide/</a>. The release label applies only to Amazon EMR releases version 4.0 and later. Earlier versions use <code>AmiVersion</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RunningAmiVersion</i> The AMI version running on this cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequestedAmiVersion</i> The AMI version requested for this cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogEncryptionKmsKeyId</i>  The AWS KMS customer master key (CMK) used for encrypting log files. This attribute is only available with EMR version 5.30.0 and later, excluding EMR 6.0.0. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogUri</i> The path to the Amazon S3 location where logs for this cluster are stored.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceCollectionType</i> <note> The instance fleet configuration is available only in Amazon EMR versions 4.8.0 and later, excluding 5.0.x versions. </note> The instance group configuration of the cluster. A value of <code>INSTANCE_GROUP</code> indicates a uniform instance group configuration. A value of <code>INSTANCE_FLEET</code> indicates an instance fleets configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Ec2InstanceAttributes</i> Provides information about the EC2 instances in a cluster grouped by category. For example, key name, subnet ID, IAM instance profile, and so on.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Ec2InstanceAttributes</b>: Provides information about the EC2 instances in a cluster grouped by category. For example, key name, subnet ID, IAM instance profile, and so on.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current status details about the cluster.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Status</b>: The current status details about the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The unique identifier for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The current state of the cluster.<br/>The reason for the cluster status change.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StateChangeReason</b>: The reason for the cluster status change.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AdditionalSlaveSecurityGroups</i> A list of additional Amazon EC2 security group IDs for the core and task nodes.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AdditionalMasterSecurityGroups</i> A list of additional Amazon EC2 security group IDs for the master node.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceAccessSecurityGroup</i> The identifier of the Amazon EC2 security group for the Amazon EMR service to access clusters in VPC private subnets.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EmrManagedSlaveSecurityGroup</i> The identifier of the Amazon EC2 security group for the core and task nodes.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EmrManagedMasterSecurityGroup</i> The identifier of the Amazon EC2 security group for the master node.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IamInstanceProfile</i> The IAM role that was specified when the cluster was launched. The EC2 instances of the cluster assume this role.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RequestedEc2AvailabilityZones</i> Applies to clusters configured with the instance fleets option. Specifies one or more Availability Zones in which to launch EC2 cluster instances when the EC2-Classic network configuration is supported. Amazon EMR chooses the Availability Zone with the best fit from among the list of <code>RequestedEc2AvailabilityZones</code>, and then launches all cluster instances within that Availability Zone. If you do not specify this value, Amazon EMR chooses the Availability Zone for you. <code>RequestedEc2SubnetIDs</code> and <code>RequestedEc2AvailabilityZones</code> cannot be specified together.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Ec2AvailabilityZone</i> The Availability Zone in which the cluster will run. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RequestedEc2SubnetIds</i> Applies to clusters configured with the instance fleets option. Specifies the unique identifier of one or more Amazon EC2 subnets in which to launch EC2 cluster instances. Subnets must exist within the same VPC. Amazon EMR chooses the EC2 subnet with the best fit from among the list of <code>RequestedEc2SubnetIds</code>, and then launches all cluster instances within that Subnet. If this value is not specified, and the account and Region support EC2-Classic networks, the cluster launches instances in the EC2-Classic network and uses <code>RequestedEc2AvailabilityZones</code> instead of this setting. If EC2-Classic is not supported, and no Subnet is specified, Amazon EMR chooses the subnet for you. <code>RequestedEc2SubnetIDs</code> and <code>RequestedEc2AvailabilityZones</code> cannot be specified together.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Ec2SubnetId</i> Set this parameter to the identifier of the Amazon VPC subnet where you want the cluster to launch. If you do not specify this value, and your account supports EC2-Classic, the cluster launches in EC2-Classic.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Ec2KeyName</i> The name of the Amazon EC2 key pair to use when connecting with SSH into the master node as a user named "hadoop".<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ADDomainJoinPassword</i> The Active Directory password for <code>ADDomainJoinUser</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ADDomainJoinUser</i> Required only when establishing a cross-realm trust with an Active Directory domain. A user with sufficient privileges to join resources to the domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CrossRealmTrustPrincipalPassword</i> Required only when establishing a cross-realm trust with a KDC in a different realm. The cross-realm principal password, which must be identical across realms.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KdcAdminPassword</i> The password used within the cluster for the kadmin service on the cluster-dedicated KDC, which maintains Kerberos principals, password policies, and keytabs for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Realm</i> The name of the Kerberos realm to which all nodes in a cluster belong. For example, <code>EC2.INTERNAL</code>. <br/>        """
        pass

    def describe_job_flows(self, CreatedAfter: Date=None, CreatedBefore: Date=None, JobFlowIds: List[XmlString]=None, JobFlowStates: List[JobFlowExecutionState]=None) -> DescribeJobFlowsOutput:
        r"""This API is no longer supported and will eventually be removed. We recommend you use <a>ListClusters</a>, <a>DescribeCluster</a>, <a>ListSteps</a>, <a>ListInstanceGroups</a> and <a>ListBootstrapActions</a> instead. DescribeJobFlows returns a list of job flows that match all of the supplied parameters. The parameters can include a list of job flow IDs, job flow states, and restrictions on job flow creation date and time. Regardless of supplied parameters, only job flows created within the last two months are returned. If no parameters are supplied, then job flows matching either of the following criteria are returned: <ul> <li> Job flows created and completed in the last two weeks </li> <li>  Job flows created within the last two months that are in one of the following states: <code>RUNNING</code>, <code>WAITING</code>, <code>SHUTTING_DOWN</code>, <code>STARTING</code>  </li> </ul> Amazon EMR can return a maximum of 512 job flow descriptions.

        :param self:
        :param JobFlowStates:  Return only job flows whose state is contained in this list.<br/>JobFlowIds:  Return only job flows whose job flow ID is contained in this list.<br/>CreatedBefore:  Return only job flows created before this date and time.<br/>CreatedAfter:  Return only job flows created after this date and time.<br/>
        :return: JobFlows:  A list of job flows matching the parameters supplied.<br/>        """
        pass

    def describe_notebook_execution(self, NotebookExecutionId: str) -> DescribeNotebookExecutionOutput:
        r"""Provides details of a notebook execution.

        :param self:
        :param NotebookExecutionId:  The unique identifier of the notebook execution.<br/>
        :return: NotebookExecution:  Properties of the notebook execution.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> A list of tags associated with a notebook execution. Tags are user-defined key-value pairs that consist of a required key string with a maximum of 128 characters and an optional value string with a maximum of 256 characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NotebookInstanceSecurityGroupId</i> The unique identifier of the EC2 security group associated with the EMR Notebook instance. For more information see <a href="https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-managed-notebooks-security-groups.html">Specifying EC2 Security Groups for EMR Notebooks</a> in the <i>EMR Management Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastStateChangeReason</i> The reason for the latest status change of the notebook execution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OutputNotebookURI</i> The location of the notebook execution's output file in Amazon S3.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the notebook execution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndTime</i> The timestamp when notebook execution ended.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StartTime</i> The timestamp when notebook execution started.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the notebook execution. <ul> <li>  <code>START_PENDING</code> indicates that the cluster has received the execution request but execution has not begun. </li> <li>  <code>STARTING</code> indicates that the execution is starting on the cluster. </li> <li>  <code>RUNNING</code> indicates that the execution is being processed by the cluster. </li> <li>  <code>FINISHING</code> indicates that execution processing is in the final stages. </li> <li>  <code>FINISHED</code> indicates that the execution has completed without error. </li> <li>  <code>FAILING</code> indicates that the execution is failing and will not finish successfully. </li> <li>  <code>FAILED</code> indicates that the execution failed. </li> <li>  <code>STOP_PENDING</code> indicates that the cluster has received a <code>StopNotebookExecution</code> request and the stop is pending. </li> <li>  <code>STOPPING</code> indicates that the cluster is in the process of stopping the execution as a result of a <code>StopNotebookExecution</code> request. </li> <li>  <code>STOPPED</code> indicates that the execution stopped because of a <code>StopNotebookExecution</code> request. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NotebookParams</i> Input parameters in JSON format passed to the EMR Notebook at runtime for execution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NotebookExecutionName</i> A name for the notebook execution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExecutionEngine</i> The execution engine, such as an EMR cluster, used to run the EMR notebook and perform the notebook execution.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ExecutionEngine</b>: The execution engine, such as an EMR cluster, used to run the EMR notebook and perform the notebook execution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EditorId</i> The unique identifier of the EMR Notebook that is used for the notebook execution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NotebookExecutionId</i> The unique identifier of a notebook execution.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterInstanceSecurityGroupId</i> An optional unique ID of an EC2 security group to associate with the master instance of the EMR cluster for this notebook execution. For more information see <a href="https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-managed-notebooks-security-groups.html">Specifying EC2 Security Groups for EMR Notebooks</a> in the <i>EMR Management Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of execution engine. A value of <code>EMR</code> specifies an EMR cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The unique identifier of the execution engine. For an EMR cluster, this is the cluster ID.<br/>        """
        pass

    def describe_security_configuration(self, Name: str) -> DescribeSecurityConfigurationOutput:
        r"""Provides the details of a security configuration by returning the configuration JSON.

        :param self:
        :param Name:  The name of the security configuration.<br/>
        :return: CreationDateTime:  The date and time the security configuration was created<br/>SecurityConfiguration:  The security configuration details in JSON format.<br/>Name:  The name of the security configuration.<br/>        """
        pass

    def describe_step(self, StepId: str, ClusterId: str) -> DescribeStepOutput:
        r"""Provides more detail about the cluster step.

        :param self:
        :param StepId:  The identifier of the step to describe.<br/>ClusterId:  The identifier of the cluster with steps to describe.<br/>
        :return: Step:  The step details for the requested step identifier.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current execution status details of the cluster step.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Status</b>: The current execution status details of the cluster step.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActionOnFailure</i> The action to take when the cluster step fails. Possible values are TERMINATE_CLUSTER, CANCEL_AND_WAIT, and CONTINUE. TERMINATE_JOB_FLOW is provided for backward compatibility. We recommend using TERMINATE_CLUSTER instead.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Config</i> The Hadoop job configuration of the cluster step.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Config</b>: The Hadoop job configuration of the cluster step.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the cluster step.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The identifier of the cluster step.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Args</i> The list of command line arguments to pass to the JAR file's main function for execution.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MainClass</i> The name of the main class in the specified Java file. If not specified, the JAR file should specify a main class in its manifest file.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Properties</i> The list of Java properties that are set when the step runs. You can use these properties to pass key-value pairs to your main function.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Jar</i> The path to the JAR file that runs during the step.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The execution state of the cluster step.<br/>The reason for the step execution status change.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StateChangeReason</b>: The reason for the step execution status change.        """
        pass

    def describe_studio(self, StudioId: str) -> DescribeStudioOutput:
        r"""Returns details for the specified Amazon EMR Studio including ID, Name, VPC, Studio access URL, and so on.

        :param self:
        :param StudioId:  The Amazon EMR Studio ID.<br/>
        :return: Studio:  The Amazon EMR Studio details.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> A list of tags associated with the Amazon EMR Studio.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultS3Location</i> The Amazon S3 location to back up Amazon EMR Studio Workspaces and notebook files.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The time the Amazon EMR Studio was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Url</i> The unique access URL of the Amazon EMR Studio.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineSecurityGroupId</i> The ID of the Engine security group associated with the Amazon EMR Studio. The Engine security group allows inbound network traffic from resources in the Workspace security group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WorkspaceSecurityGroupId</i> The ID of the Workspace security group associated with the Amazon EMR Studio. The Workspace security group allows outbound network traffic to resources in the Engine security group and to the internet.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserRole</i> The name of the IAM role assumed by users logged in to the Amazon EMR Studio.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceRole</i> The name of the IAM role assumed by the Amazon EMR Studio.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetIds</i> The list of IDs of the subnets associated with the Amazon EMR Studio.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The ID of the VPC associated with the Amazon EMR Studio.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AuthMode</i> Specifies whether the Amazon EMR Studio authenticates users using single sign-on (SSO) or IAM.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The detailed description of the Amazon EMR Studio.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the Amazon EMR Studio.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StudioArn</i> The Amazon Resource Name (ARN) of the Amazon EMR Studio.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StudioId</i> The ID of the Amazon EMR Studio.<br/>        """
        pass

    def get_block_public_access_configuration(self) -> GetBlockPublicAccessConfigurationOutput:
        r"""Returns the Amazon EMR block public access configuration for your AWS account in the current Region. For more information see <a href="https://docs.aws.amazon.com/emr/latest/ManagementGuide/configure-block-public-access.html">Configure Block Public Access for Amazon EMR</a> in the <i>Amazon EMR Management Guide</i>.

        :param self:
        :param 
        :return: BlockPublicAccessConfigurationMetadata:  Properties that describe the AWS principal that created the <code>BlockPublicAccessConfiguration</code> using the <code>PutBlockPublicAccessConfiguration</code> action as well as the date and time that the configuration was created. Each time a configuration for block public access is updated, Amazon EMR updates this metadata.:<br/>BlockPublicAccessConfiguration:  A configuration for Amazon EMR block public access. The configuration applies to all clusters created in your account for the current Region. The configuration specifies whether block public access is enabled. If block public access is enabled, security groups associated with the cluster cannot have rules that allow inbound traffic from 0.0.0.0/0 or ::/0 on a port, unless the port is specified as an exception using <code>PermittedPublicSecurityGroupRuleRanges</code> in the <code>BlockPublicAccessConfiguration</code>. By default, Port 22 (SSH) is an exception, and public access is allowed on this port. You can change this by updating the block public access configuration to remove the exception. <note> For accounts that created clusters in a Region before November 25, 2019, block public access is disabled by default in that Region. To use this feature, you must manually enable and configure it. For accounts that did not create an EMR cluster in a Region before this date, block public access is enabled by default in that Region. </note>:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PermittedPublicSecurityGroupRuleRanges</i> Specifies ports and port ranges that are permitted to have security group rules that allow inbound traffic from all public sources. For example, if Port 23 (Telnet) is specified for <code>PermittedPublicSecurityGroupRuleRanges</code>, Amazon EMR allows cluster creation if a security group associated with the cluster has a rule that allows inbound traffic on Port 23 from IPv4 0.0.0.0/0 or IPv6 port ::/0 as the source. By default, Port 22, which is used for SSH access to the cluster EC2 instances, is in the list of <code>PermittedPublicSecurityGroupRuleRanges</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BlockPublicSecurityGroupRules</i> Indicates whether Amazon EMR block public access is enabled (<code>true</code>) or disabled (<code>false</code>). By default, the value is <code>false</code> for accounts that have created EMR clusters before July 2019. For accounts created after this, the default is <code>true</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedByArn</i> The Amazon Resource Name that created or last modified the configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDateTime</i> The date and time that the configuration was created.<br/>        """
        pass

    def get_managed_scaling_policy(self, ClusterId: str) -> GetManagedScalingPolicyOutput:
        r"""Fetches the attached managed scaling policy for an Amazon EMR cluster. 

        :param self:
        :param ClusterId:  Specifies the ID of the cluster for which the managed scaling policy will be fetched. <br/>
        :return: ManagedScalingPolicy:  Specifies the managed scaling policy that is attached to an Amazon EMR cluster. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ComputeLimits</i> The EC2 unit limits for a managed scaling policy. The managed scaling activity of a cluster is not allowed to go above or below these limits. The limit only applies to the core and task nodes. The master node cannot be scaled after initial configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ComputeLimits</b>: The EC2 unit limits for a managed scaling policy. The managed scaling activity of a cluster is not allowed to go above or below these limits. The limit only applies to the core and task nodes. The master node cannot be scaled after initial configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaximumCoreCapacityUnits</i>  The upper boundary of EC2 units for core node type in a cluster. It is measured through vCPU cores or instances for instance groups and measured through units for instance fleets. The core units are not allowed to scale beyond this boundary. The parameter is used to split capacity allocation between core and task nodes. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaximumOnDemandCapacityUnits</i>  The upper boundary of On-Demand EC2 units. It is measured through vCPU cores or instances for instance groups and measured through units for instance fleets. The On-Demand units are not allowed to scale beyond this boundary. The parameter is used to split capacity allocation between On-Demand and Spot Instances. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaximumCapacityUnits</i>  The upper boundary of EC2 units. It is measured through vCPU cores or instances for instance groups and measured through units for instance fleets. Managed scaling activities are not allowed beyond this boundary. The limit only applies to the core and task nodes. The master node cannot be scaled after initial configuration. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MinimumCapacityUnits</i>  The lower boundary of EC2 units. It is measured through vCPU cores or instances for instance groups and measured through units for instance fleets. Managed scaling activities are not allowed beyond this boundary. The limit only applies to the core and task nodes. The master node cannot be scaled after initial configuration. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UnitType</i>  The unit type used for specifying a managed scaling policy. <br/>        """
        pass

    def get_studio_session_mapping(self, IdentityType: str, StudioId: str, IdentityId: str=None, IdentityName: str=None) -> GetStudioSessionMappingOutput:
        r"""Fetches mapping details for the specified Amazon EMR Studio and identity (user or group).

        :param self:
        :param IdentityType:  Specifies whether the identity to fetch is a user or a group.<br/>IdentityName:  The name of the user or group to fetch. For more information, see <a href="https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_User.html#singlesignon-Type-User-UserName">UserName</a> and <a href="https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-DisplayName">DisplayName</a> in the <i>AWS SSO Identity Store API Reference</i>. Either <code>IdentityName</code> or <code>IdentityId</code> must be specified.<br/>IdentityId:  The globally unique identifier (GUID) of the user or group. For more information, see <a href="https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_User.html#singlesignon-Type-User-UserId">UserId</a> and <a href="https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-GroupId">GroupId</a> in the <i>AWS SSO Identity Store API Reference</i>. Either <code>IdentityName</code> or <code>IdentityId</code> must be specified.<br/>StudioId:  The ID of the Amazon EMR Studio.<br/>
        :return: SessionMapping:  The session mapping details for the specified Amazon EMR Studio and identity, including session policy ARN and creation time.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedTime</i> The time the session mapping was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The time the session mapping was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SessionPolicyArn</i> The Amazon Resource Name (ARN) of the session policy associated with the user or group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IdentityType</i> Specifies whether the identity mapped to the Amazon EMR Studio is a user or a group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IdentityName</i> The name of the user or group. For more information, see <a href="https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_User.html#singlesignon-Type-User-UserName">UserName</a> and <a href="https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-DisplayName">DisplayName</a> in the <i>AWS SSO Identity Store API Reference</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IdentityId</i> The globally unique identifier (GUID) of the user or group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StudioId</i> The ID of the Amazon EMR Studio.<br/>        """
        pass

    def list_bootstrap_actions(self, ClusterId: str, Marker: str=None) -> ListBootstrapActionsOutput:
        r"""Provides information about the bootstrap actions associated with a cluster.

        :param self:
        :param Marker:  The pagination token that indicates the next set of results to retrieve.<br/>ClusterId:  The cluster identifier for the bootstrap actions to list.<br/>
        :return: Marker:  The pagination token that indicates the next set of results to retrieve.<br/>BootstrapActions:  The bootstrap actions associated with the cluster.<br/>        """
        pass

    def list_clusters(self, CreatedAfter: Date=None, CreatedBefore: Date=None, ClusterStates: List[ClusterState]=None, Marker: str=None) -> ListClustersOutput:
        r"""Provides the status of all clusters visible to this AWS account. Allows you to filter the list of clusters based on certain criteria; for example, filtering by cluster creation date and time or by status. This call returns a maximum of 50 clusters per call, but returns a marker to track the paging of the cluster list across multiple ListClusters calls.

        :param self:
        :param Marker:  The pagination token that indicates the next set of results to retrieve.<br/>ClusterStates:  The cluster state filters to apply when listing clusters.<br/>CreatedBefore:  The creation date and time end value filter for listing clusters.<br/>CreatedAfter:  The creation date and time beginning value filter for listing clusters.<br/>
        :return: Marker:  The pagination token that indicates the next set of results to retrieve.<br/>Clusters:  The list of clusters for the account based on the given filters.<br/>        """
        pass

    def list_instance_fleets(self, ClusterId: str, Marker: str=None) -> ListInstanceFleetsOutput:
        r"""Lists all available details about the instance fleets in a cluster. <note> The instance fleet configuration is available only in Amazon EMR versions 4.8.0 and later, excluding 5.0.x versions. </note>

        :param self:
        :param Marker:  The pagination token that indicates the next set of results to retrieve.<br/>ClusterId:  The unique identifier of the cluster.<br/>
        :return: Marker:  The pagination token that indicates the next set of results to retrieve.<br/>InstanceFleets:  The list of instance fleets for the cluster and given filters.<br/>        """
        pass

    def list_instance_groups(self, ClusterId: str, Marker: str=None) -> ListInstanceGroupsOutput:
        r"""Provides all available details about the instance groups in a cluster.

        :param self:
        :param Marker:  The pagination token that indicates the next set of results to retrieve.<br/>ClusterId:  The identifier of the cluster for which to list the instance groups.<br/>
        :return: Marker:  The pagination token that indicates the next set of results to retrieve.<br/>InstanceGroups:  The list of instance groups for the cluster and given filters.<br/>        """
        pass

    def list_instances(self, ClusterId: str, InstanceGroupId: str=None, InstanceGroupTypes: List[InstanceGroupType]=None, InstanceFleetId: str=None, InstanceFleetType: str=None, InstanceStates: List[InstanceState]=None, Marker: str=None) -> ListInstancesOutput:
        r"""Provides information for all active EC2 instances and EC2 instances terminated in the last 30 days, up to a maximum of 2,000. EC2 instances in any of the following states are considered active: AWAITING_FULFILLMENT, PROVISIONING, BOOTSTRAPPING, RUNNING.

        :param self:
        :param Marker:  The pagination token that indicates the next set of results to retrieve.<br/>InstanceStates:  A list of instance states that will filter the instances returned with this request.<br/>InstanceFleetType:  The node type of the instance fleet. For example MASTER, CORE, or TASK.<br/>InstanceFleetId:  The unique identifier of the instance fleet.<br/>InstanceGroupTypes:  The type of instance group for which to list the instances.<br/>InstanceGroupId:  The identifier of the instance group for which to list the instances.<br/>ClusterId:  The identifier of the cluster for which to list the instances.<br/>
        :return: Marker:  The pagination token that indicates the next set of results to retrieve.<br/>Instances:  The list of instances for the cluster and given filters.<br/>        """
        pass

    def list_notebook_executions(self, EditorId: str=None, Status: str=None, From: Date=None, To: Date=None, Marker: str=None) -> ListNotebookExecutionsOutput:
        r"""Provides summaries of all notebook executions. You can filter the list based on multiple criteria such as status, time range, and editor id. Returns a maximum of 50 notebook executions and a marker to track the paging of a longer notebook execution list across multiple <code>ListNotebookExecution</code> calls.

        :param self:
        :param Marker:  The pagination token, returned by a previous <code>ListNotebookExecutions</code> call, that indicates the start of the list for this <code>ListNotebookExecutions</code> call.<br/>To:  The end of time range filter for listing notebook executions. The default is the current timestamp.<br/>From:  The beginning of time range filter for listing notebook executions. The default is the timestamp of 30 days ago.<br/>Status:  The status filter for listing notebook executions. <ul> <li>  <code>START_PENDING</code> indicates that the cluster has received the execution request but execution has not begun. </li> <li>  <code>STARTING</code> indicates that the execution is starting on the cluster. </li> <li>  <code>RUNNING</code> indicates that the execution is being processed by the cluster. </li> <li>  <code>FINISHING</code> indicates that execution processing is in the final stages. </li> <li>  <code>FINISHED</code> indicates that the execution has completed without error. </li> <li>  <code>FAILING</code> indicates that the execution is failing and will not finish successfully. </li> <li>  <code>FAILED</code> indicates that the execution failed. </li> <li>  <code>STOP_PENDING</code> indicates that the cluster has received a <code>StopNotebookExecution</code> request and the stop is pending. </li> <li>  <code>STOPPING</code> indicates that the cluster is in the process of stopping the execution as a result of a <code>StopNotebookExecution</code> request. </li> <li>  <code>STOPPED</code> indicates that the execution stopped because of a <code>StopNotebookExecution</code> request. </li> </ul><br/>EditorId:  The unique ID of the editor associated with the notebook execution.<br/>
        :return: Marker:  A pagination token that a subsequent <code>ListNotebookExecutions</code> can use to determine the next set of results to retrieve.<br/>NotebookExecutions:  A list of notebook executions.<br/>        """
        pass

    def list_security_configurations(self, Marker: str=None) -> ListSecurityConfigurationsOutput:
        r"""Lists all the security configurations visible to this account, providing their creation dates and times, and their names. This call returns a maximum of 50 clusters per call, but returns a marker to track the paging of the cluster list across multiple ListSecurityConfigurations calls.

        :param self:
        :param Marker:  The pagination token that indicates the set of results to retrieve.<br/>
        :return: Marker:  A pagination token that indicates the next set of results to retrieve. Include the marker in the next ListSecurityConfiguration call to retrieve the next page of results, if required.<br/>SecurityConfigurations:  The creation date and time, and name, of each security configuration.<br/>        """
        pass

    def list_steps(self, ClusterId: str, StepStates: List[StepState]=None, StepIds: List[XmlString]=None, Marker: str=None) -> ListStepsOutput:
        r"""Provides a list of steps for the cluster in reverse order unless you specify <code>stepIds</code> with the request of filter by <code>StepStates</code>. You can specify a maximum of 10 <code>stepIDs</code>.

        :param self:
        :param Marker:  The pagination token that indicates the next set of results to retrieve.<br/>StepIds:  The filter to limit the step list based on the identifier of the steps. You can specify a maximum of ten Step IDs. The character constraint applies to the overall length of the array.<br/>StepStates:  The filter to limit the step list based on certain states.<br/>ClusterId:  The identifier of the cluster for which to list the steps.<br/>
        :return: Marker:  The pagination token that indicates the next set of results to retrieve.<br/>Steps:  The filtered list of steps for the cluster.<br/>        """
        pass

    def list_studio_session_mappings(self, StudioId: str=None, IdentityType: str=None, Marker: str=None) -> ListStudioSessionMappingsOutput:
        r"""Returns a list of all user or group session mappings for the Amazon EMR Studio specified by <code>StudioId</code>.

        :param self:
        :param Marker:  The pagination token that indicates the set of results to retrieve.<br/>IdentityType:  Specifies whether to return session mappings for users or groups. If not specified, the results include session mapping details for both users and groups.<br/>StudioId:  The ID of the Amazon EMR Studio.<br/>
        :return: Marker:  The pagination token that indicates the next set of results to retrieve.<br/>SessionMappings:  A list of session mapping summary objects. Each object includes session mapping details such as creation time, identity type (user or group), and Amazon EMR Studio ID.<br/>        """
        pass

    def list_studios(self, Marker: str=None) -> ListStudiosOutput:
        r"""Returns a list of all Amazon EMR Studios associated with the AWS account. The list includes details such as ID, Studio Access URL, and creation time for each Studio.

        :param self:
        :param Marker:  The pagination token that indicates the set of results to retrieve.<br/>
        :return: Marker:  The pagination token that indicates the next set of results to retrieve.<br/>Studios:  The list of Studio summary objects.<br/>        """
        pass

    def modify_cluster(self, ClusterId: str, StepConcurrencyLevel: int=None) -> ModifyClusterOutput:
        r"""Modifies the number of steps that can be executed concurrently for the cluster specified using ClusterID.

        :param self:
        :param StepConcurrencyLevel:  The number of steps that can be executed concurrently. You can specify a minimum of 1 step and a maximum of 256 steps. <br/>ClusterId:  The unique identifier of the cluster.<br/>
        :return: StepConcurrencyLevel:  The number of steps that can be executed concurrently.<br/>        """
        pass

    def modify_instance_fleet(self, InstanceFleet: InstanceFleetModifyConfig, ClusterId: str):
        r"""Modifies the target On-Demand and target Spot capacities for the instance fleet with the specified InstanceFleetID within the cluster specified using ClusterID. The call either succeeds or fails atomically. <note> The instance fleet configuration is available only in Amazon EMR versions 4.8.0 and later, excluding 5.0.x versions. </note>

        :param self:
        :param InstanceFleet:  The unique identifier of the instance fleet.:<br/>ClusterId:  The unique identifier of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetSpotCapacity</i> The target capacity of Spot units for the instance fleet. For more information, see <a>InstanceFleetConfig$TargetSpotCapacity</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetOnDemandCapacity</i> The target capacity of On-Demand units for the instance fleet. For more information see <a>InstanceFleetConfig$TargetOnDemandCapacity</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceFleetId</i> A unique identifier for the instance fleet.<br/>
        :return:         """
        pass

    def modify_instance_groups(self, ClusterId: str=None, InstanceGroups: List[InstanceGroupModifyConfig]=None):
        r"""ModifyInstanceGroups modifies the number of nodes and configuration settings of an instance group. The input parameters include the new target instance count for the group and the instance group ID. The call will either succeed or fail atomically.

        :param self:
        :param InstanceGroups:  Instance groups to change.<br/>ClusterId:  The ID of the cluster to which the instance group belongs.<br/>
        :return:         """
        pass

    def put_auto_scaling_policy(self, AutoScalingPolicy: AutoScalingPolicy, InstanceGroupId: str, ClusterId: str) -> PutAutoScalingPolicyOutput:
        r"""Creates or updates an automatic scaling policy for a core instance group or task instance group in an Amazon EMR cluster. The automatic scaling policy defines how an instance group dynamically adds and terminates EC2 instances in response to the value of a CloudWatch metric.

        :param self:
        :param AutoScalingPolicy:  Specifies the definition of the automatic scaling policy.:<br/>InstanceGroupId:  Specifies the ID of the instance group to which the automatic scaling policy is applied.<br/>ClusterId:  Specifies the ID of a cluster. The instance group to which the automatic scaling policy is applied is within this cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Rules</i> The scale-in and scale-out rules that comprise the automatic scaling policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Constraints</i> The upper and lower EC2 instance limits for an automatic scaling policy. Automatic scaling activity will not cause an instance group to grow above or below these limits.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Constraints</b>: The upper and lower EC2 instance limits for an automatic scaling policy. Automatic scaling activity will not cause an instance group to grow above or below these limits.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxCapacity</i> The upper boundary of EC2 instances in an instance group beyond which scaling activities are not allowed to grow. Scale-out activities will not add instances beyond this boundary.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MinCapacity</i> The lower boundary of EC2 instances in an instance group below which scaling activities are not allowed to shrink. Scale-in activities will not terminate instances below this boundary.<br/>
        :return: ClusterArn:  The Amazon Resource Name (ARN) of the cluster.<br/>AutoScalingPolicy:  The automatic scaling policy definition.:<br/>InstanceGroupId:  Specifies the ID of the instance group to which the scaling policy is applied.<br/>ClusterId:  Specifies the ID of a cluster. The instance group to which the automatic scaling policy is applied is within this cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Rules</i> The scale-in and scale-out rules that comprise the automatic scaling policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Constraints</i> The upper and lower EC2 instance limits for an automatic scaling policy. Automatic scaling activity will not cause an instance group to grow above or below these limits.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Constraints</b>: The upper and lower EC2 instance limits for an automatic scaling policy. Automatic scaling activity will not cause an instance group to grow above or below these limits.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of an automatic scaling policy. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Status</b>: The status of an automatic scaling policy. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> Indicates the status of the automatic scaling policy.<br/>The reason for a change in status.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StateChangeReason</b>: The reason for a change in status.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxCapacity</i> The upper boundary of EC2 instances in an instance group beyond which scaling activities are not allowed to grow. Scale-out activities will not add instances beyond this boundary.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MinCapacity</i> The lower boundary of EC2 instances in an instance group below which scaling activities are not allowed to shrink. Scale-in activities will not terminate instances below this boundary.<br/>        """
        pass

    def put_block_public_access_configuration(self, BlockPublicAccessConfiguration: BlockPublicAccessConfiguration) -> PutBlockPublicAccessConfigurationOutput:
        r"""Creates or updates an Amazon EMR block public access configuration for your AWS account in the current Region. For more information see <a href="https://docs.aws.amazon.com/emr/latest/ManagementGuide/configure-block-public-access.html">Configure Block Public Access for Amazon EMR</a> in the <i>Amazon EMR Management Guide</i>.

        :param self:
        :param BlockPublicAccessConfiguration:  A configuration for Amazon EMR block public access. The configuration applies to all clusters created in your account for the current Region. The configuration specifies whether block public access is enabled. If block public access is enabled, security groups associated with the cluster cannot have rules that allow inbound traffic from 0.0.0.0/0 or ::/0 on a port, unless the port is specified as an exception using <code>PermittedPublicSecurityGroupRuleRanges</code> in the <code>BlockPublicAccessConfiguration</code>. By default, Port 22 (SSH) is an exception, and public access is allowed on this port. You can change this by updating <code>BlockPublicSecurityGroupRules</code> to remove the exception. <note> For accounts that created clusters in a Region before November 25, 2019, block public access is disabled by default in that Region. To use this feature, you must manually enable and configure it. For accounts that did not create an EMR cluster in a Region before this date, block public access is enabled by default in that Region. </note>:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PermittedPublicSecurityGroupRuleRanges</i> Specifies ports and port ranges that are permitted to have security group rules that allow inbound traffic from all public sources. For example, if Port 23 (Telnet) is specified for <code>PermittedPublicSecurityGroupRuleRanges</code>, Amazon EMR allows cluster creation if a security group associated with the cluster has a rule that allows inbound traffic on Port 23 from IPv4 0.0.0.0/0 or IPv6 port ::/0 as the source. By default, Port 22, which is used for SSH access to the cluster EC2 instances, is in the list of <code>PermittedPublicSecurityGroupRuleRanges</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BlockPublicSecurityGroupRules</i> Indicates whether Amazon EMR block public access is enabled (<code>true</code>) or disabled (<code>false</code>). By default, the value is <code>false</code> for accounts that have created EMR clusters before July 2019. For accounts created after this, the default is <code>true</code>.<br/>
        :return:         """
        pass

    def put_managed_scaling_policy(self, ManagedScalingPolicy: ManagedScalingPolicy, ClusterId: str) -> PutManagedScalingPolicyOutput:
        r"""Creates or updates a managed scaling policy for an Amazon EMR cluster. The managed scaling policy defines the limits for resources, such as EC2 instances that can be added or terminated from a cluster. The policy only applies to the core and task nodes. The master node cannot be scaled after initial configuration. 

        :param self:
        :param ManagedScalingPolicy:  Specifies the constraints for the managed scaling policy. :<br/>ClusterId:  Specifies the ID of an EMR cluster where the managed scaling policy is attached. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ComputeLimits</i> The EC2 unit limits for a managed scaling policy. The managed scaling activity of a cluster is not allowed to go above or below these limits. The limit only applies to the core and task nodes. The master node cannot be scaled after initial configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ComputeLimits</b>: The EC2 unit limits for a managed scaling policy. The managed scaling activity of a cluster is not allowed to go above or below these limits. The limit only applies to the core and task nodes. The master node cannot be scaled after initial configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaximumCoreCapacityUnits</i>  The upper boundary of EC2 units for core node type in a cluster. It is measured through vCPU cores or instances for instance groups and measured through units for instance fleets. The core units are not allowed to scale beyond this boundary. The parameter is used to split capacity allocation between core and task nodes. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaximumOnDemandCapacityUnits</i>  The upper boundary of On-Demand EC2 units. It is measured through vCPU cores or instances for instance groups and measured through units for instance fleets. The On-Demand units are not allowed to scale beyond this boundary. The parameter is used to split capacity allocation between On-Demand and Spot Instances. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaximumCapacityUnits</i>  The upper boundary of EC2 units. It is measured through vCPU cores or instances for instance groups and measured through units for instance fleets. Managed scaling activities are not allowed beyond this boundary. The limit only applies to the core and task nodes. The master node cannot be scaled after initial configuration. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MinimumCapacityUnits</i>  The lower boundary of EC2 units. It is measured through vCPU cores or instances for instance groups and measured through units for instance fleets. Managed scaling activities are not allowed beyond this boundary. The limit only applies to the core and task nodes. The master node cannot be scaled after initial configuration. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UnitType</i>  The unit type used for specifying a managed scaling policy. <br/>
        :return:         """
        pass

    def remove_auto_scaling_policy(self, InstanceGroupId: str, ClusterId: str) -> RemoveAutoScalingPolicyOutput:
        r"""Removes an automatic scaling policy from a specified instance group within an EMR cluster.

        :param self:
        :param InstanceGroupId:  Specifies the ID of the instance group to which the scaling policy is applied.<br/>ClusterId:  Specifies the ID of a cluster. The instance group to which the automatic scaling policy is applied is within this cluster.<br/>
        :return:         """
        pass

    def remove_managed_scaling_policy(self, ClusterId: str) -> RemoveManagedScalingPolicyOutput:
        r""" Removes a managed scaling policy from a specified EMR cluster. 

        :param self:
        :param ClusterId:   Specifies the ID of the cluster from which the managed scaling policy will be removed. <br/>
        :return:         """
        pass

    def remove_tags(self, TagKeys: List[String], ResourceId: str) -> RemoveTagsOutput:
        r"""Removes tags from an Amazon EMR resource. Tags make it easier to associate clusters in various ways, such as grouping clusters to track your Amazon EMR resource allocation costs. For more information, see <a href="https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-tags.html">Tag Clusters</a>.  The following example removes the stack tag with value Prod from a cluster:

        :param self:
        :param TagKeys:  A list of tag keys to remove from a resource.<br/>ResourceId:  The Amazon EMR resource identifier from which tags will be removed. This value must be a cluster identifier.<br/>
        :return:         """
        pass

    def run_job_flow(self, Instances: JobFlowInstancesConfig, Name: str, LogUri: str=None, LogEncryptionKmsKeyId: str=None, AdditionalInfo: str=None, AmiVersion: str=None, ReleaseLabel: str=None, Steps: List[StepConfig]=None, BootstrapActions: List[BootstrapActionConfig]=None, SupportedProducts: List[XmlStringMaxLen256]=None, NewSupportedProducts: List[SupportedProductConfig]=None, Applications: List[Application]=None, Configurations: List[Configuration]=None, VisibleToAllUsers: Boolean=None, JobFlowRole: str=None, ServiceRole: str=None, Tags: List[Tag]=None, SecurityConfiguration: str=None, AutoScalingRole: str=None, ScaleDownBehavior: str=None, CustomAmiId: str=None, EbsRootVolumeSize: int=None, RepoUpgradeOnBoot: str=None, KerberosAttributes: KerberosAttributes=None, StepConcurrencyLevel: int=None, ManagedScalingPolicy: ManagedScalingPolicy=None, PlacementGroupConfigs: List[PlacementGroupConfig]=None) -> RunJobFlowOutput:
        r"""RunJobFlow creates and starts running a new cluster (job flow). The cluster runs the steps specified. After the steps complete, the cluster stops and the HDFS partition is lost. To prevent loss of data, configure the last step of the job flow to store results in Amazon S3. If the <a>JobFlowInstancesConfig</a> <code>KeepJobFlowAliveWhenNoSteps</code> parameter is set to <code>TRUE</code>, the cluster transitions to the WAITING state rather than shutting down after the steps have completed.  For additional protection, you can set the <a>JobFlowInstancesConfig</a> <code>TerminationProtected</code> parameter to <code>TRUE</code> to lock the cluster and prevent it from being terminated by API call, user intervention, or in the event of a job flow error. A maximum of 256 steps are allowed in each job flow. If your cluster is long-running (such as a Hive data warehouse) or complex, you may require more than 256 steps to process your data. You can bypass the 256-step limitation in various ways, including using the SSH shell to connect to the master node and submitting queries directly to the software running on the master node, such as Hive and Hadoop. For more information on how to do this, see <a href="https://docs.aws.amazon.com/emr/latest/ManagementGuide/AddMoreThan256Steps.html">Add More than 256 Steps to a Cluster</a> in the <i>Amazon EMR Management Guide</i>. For long running clusters, we recommend that you periodically store your results. <note> The instance fleets configuration is available only in Amazon EMR versions 4.8.0 and later, excluding 5.0.x versions. The RunJobFlow request can contain InstanceFleets parameters or InstanceGroups parameters, but not both. </note>

        :param self:
        :param PlacementGroupConfigs:  The specified placement group configuration for an Amazon EMR cluster.<br/>ManagedScalingPolicy:   The specified managed scaling policy for an Amazon EMR cluster. :<br/>StepConcurrencyLevel:  Specifies the number of steps that can be executed concurrently. The default value is <code>1</code>. The maximum value is <code>256</code>.<br/>KerberosAttributes:  Attributes for Kerberos configuration when Kerberos authentication is enabled using a security configuration. For more information see <a href="https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-kerberos.html">Use Kerberos Authentication</a> in the <i>Amazon EMR Management Guide</i>.:<br/>RepoUpgradeOnBoot:  Applies only when <code>CustomAmiID</code> is used. Specifies which updates from the Amazon Linux AMI package repositories to apply automatically when the instance boots using the AMI. If omitted, the default is <code>SECURITY</code>, which indicates that only security updates are applied. If <code>NONE</code> is specified, no updates are applied, and all updates must be applied manually.<br/>EbsRootVolumeSize:  The size, in GiB, of the Amazon EBS root device volume of the Linux AMI that is used for each EC2 instance. Available in Amazon EMR version 4.x and later.<br/>CustomAmiId:  Available only in Amazon EMR version 5.7.0 and later. The ID of a custom Amazon EBS-backed Linux AMI. If specified, Amazon EMR uses this AMI when it launches cluster EC2 instances. For more information about custom AMIs in Amazon EMR, see <a href="https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-custom-ami.html">Using a Custom AMI</a> in the <i>Amazon EMR Management Guide</i>. If omitted, the cluster uses the base Linux AMI for the <code>ReleaseLabel</code> specified. For Amazon EMR versions 2.x and 3.x, use <code>AmiVersion</code> instead. For information about creating a custom AMI, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-ebs.html">Creating an Amazon EBS-Backed Linux AMI</a> in the <i>Amazon Elastic Compute Cloud User Guide for Linux Instances</i>. For information about finding an AMI ID, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/finding-an-ami.html">Finding a Linux AMI</a>. <br/>ScaleDownBehavior:  Specifies the way that individual Amazon EC2 instances terminate when an automatic scale-in activity occurs or an instance group is resized. <code>TERMINATE_AT_INSTANCE_HOUR</code> indicates that Amazon EMR terminates nodes at the instance-hour boundary, regardless of when the request to terminate the instance was submitted. This option is only available with Amazon EMR 5.1.0 and later and is the default for clusters created using that version. <code>TERMINATE_AT_TASK_COMPLETION</code> indicates that Amazon EMR adds nodes to a deny list and drains tasks from nodes before terminating the Amazon EC2 instances, regardless of the instance-hour boundary. With either behavior, Amazon EMR removes the least active nodes first and blocks instance termination if it could lead to HDFS corruption. <code>TERMINATE_AT_TASK_COMPLETION</code> available only in Amazon EMR version 4.1.0 and later, and is the default for versions of Amazon EMR earlier than 5.1.0.<br/>AutoScalingRole:  An IAM role for automatic scaling policies. The default role is <code>EMR_AutoScaling_DefaultRole</code>. The IAM role provides permissions that the automatic scaling feature requires to launch and terminate EC2 instances in an instance group.<br/>SecurityConfiguration:  The name of a security configuration to apply to the cluster.<br/>Tags:  A list of tags to associate with a cluster and propagate to Amazon EC2 instances.<br/>ServiceRole:  The IAM role that will be assumed by the Amazon EMR service to access AWS resources on your behalf.<br/>JobFlowRole:  Also called instance profile and EC2 role. An IAM role for an EMR cluster. The EC2 instances of the cluster assume this role. The default role is <code>EMR_EC2_DefaultRole</code>. In order to use the default role, you must have already created it using the CLI or console.<br/>VisibleToAllUsers:  A value of <code>true</code> indicates that all IAM users in the AWS account can perform cluster actions if they have the proper IAM policy permissions. This is the default. A value of <code>false</code> indicates that only the IAM user who created the cluster can perform actions.<br/>Configurations:  For Amazon EMR releases 4.0 and later. The list of configurations supplied for the EMR cluster you are creating.<br/>Applications:  Applies to Amazon EMR releases 4.0 and later. A case-insensitive list of applications for Amazon EMR to install and configure when launching the cluster. For a list of applications available for each Amazon EMR release version, see the <a href="https://docs.aws.amazon.com/emr/latest/ReleaseGuide/">Amazon EMR Release Guide</a>.<br/>NewSupportedProducts:  <note> For Amazon EMR releases 3.x and 2.x. For Amazon EMR releases 4.x and later, use Applications. </note> A list of strings that indicates third-party software to use with the job flow that accepts a user argument list. EMR accepts and forwards the argument list to the corresponding installation script as bootstrap action arguments. For more information, see "Launch a Job Flow on the MapR Distribution for Hadoop" in the <a href="https://docs.aws.amazon.com/emr/latest/DeveloperGuide/emr-dg.pdf">Amazon EMR Developer Guide</a>. Supported values are: <ul> <li> "mapr-m3" - launch the cluster using MapR M3 Edition. </li> <li> "mapr-m5" - launch the cluster using MapR M5 Edition. </li> <li> "mapr" with the user arguments specifying "--edition,m3" or "--edition,m5" - launch the job flow using MapR M3 or M5 Edition respectively. </li> <li> "mapr-m7" - launch the cluster using MapR M7 Edition. </li> <li> "hunk" - launch the cluster with the Hunk Big Data Analytics Platform. </li> <li> "hue"- launch the cluster with Hue installed. </li> <li> "spark" - launch the cluster with Apache Spark installed. </li> <li> "ganglia" - launch the cluster with the Ganglia Monitoring System installed. </li> </ul><br/>SupportedProducts:  <note> For Amazon EMR releases 3.x and 2.x. For Amazon EMR releases 4.x and later, use Applications. </note> A list of strings that indicates third-party software to use. For more information, see the <a href="https://docs.aws.amazon.com/emr/latest/DeveloperGuide/emr-dg.pdf">Amazon EMR Developer Guide</a>. Currently supported values are: <ul> <li> "mapr-m3" - launch the job flow using MapR M3 Edition. </li> <li> "mapr-m5" - launch the job flow using MapR M5 Edition. </li> </ul><br/>BootstrapActions:  A list of bootstrap actions to run before Hadoop starts on the cluster nodes.<br/>Steps:  A list of steps to run.<br/>Instances:  A specification of the number and type of Amazon EC2 instances.:<br/>ReleaseLabel:  The Amazon EMR release label, which determines the version of open-source application packages installed on the cluster. Release labels are in the form <code>emr-x.x.x</code>, where x.x.x is an Amazon EMR release version such as <code>emr-5.14.0</code>. For more information about Amazon EMR release versions and included application versions and features, see <a href="https://docs.aws.amazon.com/emr/latest/ReleaseGuide/">https://docs.aws.amazon.com/emr/latest/ReleaseGuide/</a>. The release label applies only to Amazon EMR releases version 4.0 and later. Earlier versions use <code>AmiVersion</code>.<br/>AmiVersion:  Applies only to Amazon EMR AMI versions 3.x and 2.x. For Amazon EMR releases 4.0 and later, <code>ReleaseLabel</code> is used. To specify a custom AMI, use <code>CustomAmiID</code>.<br/>AdditionalInfo:  A JSON string for selecting additional features.<br/>LogEncryptionKmsKeyId:  The AWS KMS customer master key (CMK) used for encrypting log files. If a value is not provided, the logs remain encrypted by AES-256. This attribute is only available with Amazon EMR version 5.30.0 and later, excluding Amazon EMR 6.0.0.<br/>LogUri:  The location in Amazon S3 to write the log files of the job flow. If a value is not provided, logs are not created.<br/>Name:  The name of the job flow.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdditionalSlaveSecurityGroups</i> A list of additional Amazon EC2 security group IDs for the core and task nodes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdditionalMasterSecurityGroups</i> A list of additional Amazon EC2 security group IDs for the master node.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceAccessSecurityGroup</i> The identifier of the Amazon EC2 security group for the Amazon EMR service to access clusters in VPC private subnets.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EmrManagedSlaveSecurityGroup</i> The identifier of the Amazon EC2 security group for the core and task nodes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EmrManagedMasterSecurityGroup</i> The identifier of the Amazon EC2 security group for the master node.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Ec2SubnetIds</i> Applies to clusters that use the instance fleet configuration. When multiple EC2 subnet IDs are specified, Amazon EMR evaluates them and launches instances in the optimal subnet. <note> The instance fleet configuration is available only in Amazon EMR versions 4.8.0 and later, excluding 5.0.x versions. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Ec2SubnetId</i> Applies to clusters that use the uniform instance group configuration. To launch the cluster in Amazon Virtual Private Cloud (Amazon VPC), set this parameter to the identifier of the Amazon VPC subnet where you want the cluster to launch. If you do not specify this value and your account supports EC2-Classic, the cluster launches in EC2-Classic.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HadoopVersion</i> Applies only to Amazon EMR release versions earlier than 4.0. The Hadoop version for the cluster. Valid inputs are "0.18" (no longer maintained), "0.20" (no longer maintained), "0.20.205" (no longer maintained), "1.0.3", "2.2.0", or "2.4.0". If you do not set this value, the default of 0.18 is used, unless the <code>AmiVersion</code> parameter is set in the RunJobFlow call, in which case the default version of Hadoop for that AMI version is used.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TerminationProtected</i> Specifies whether to lock the cluster to prevent the Amazon EC2 instances from being terminated by API call, user intervention, or in the event of a job-flow error.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KeepJobFlowAliveWhenNoSteps</i> Specifies whether the cluster should remain available after completing all steps.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Placement</i> The Availability Zone in which the cluster runs.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Placement</b>: The Availability Zone in which the cluster runs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Ec2KeyName</i> The name of the EC2 key pair that can be used to connect to the master node using SSH as the user called "hadoop."<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceFleets</i> <note> The instance fleet configuration is available only in Amazon EMR versions 4.8.0 and later, excluding 5.0.x versions. </note> Describes the EC2 instances and instance configurations for clusters that use the instance fleet configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceGroups</i> Configuration for the instance groups in a cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceCount</i> The number of EC2 instances in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SlaveInstanceType</i> The EC2 instance type of the core and task nodes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterInstanceType</i> The EC2 instance type of the master node.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZones</i> When multiple Availability Zones are specified, Amazon EMR evaluates them and launches instances in the optimal Availability Zone. <code>AvailabilityZones</code> is used for instance fleets, while <code>AvailabilityZone</code> (singular) is used for uniform instance groups. <note> The instance fleet configuration is available only in Amazon EMR versions 4.8.0 and later, excluding 5.0.x versions. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZone</i> The Amazon EC2 Availability Zone for the cluster. <code>AvailabilityZone</code> is used for uniform instance groups, while <code>AvailabilityZones</code> (plural) is used for instance fleets.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ADDomainJoinPassword</i> The Active Directory password for <code>ADDomainJoinUser</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ADDomainJoinUser</i> Required only when establishing a cross-realm trust with an Active Directory domain. A user with sufficient privileges to join resources to the domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CrossRealmTrustPrincipalPassword</i> Required only when establishing a cross-realm trust with a KDC in a different realm. The cross-realm principal password, which must be identical across realms.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KdcAdminPassword</i> The password used within the cluster for the kadmin service on the cluster-dedicated KDC, which maintains Kerberos principals, password policies, and keytabs for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Realm</i> The name of the Kerberos realm to which all nodes in a cluster belong. For example, <code>EC2.INTERNAL</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ComputeLimits</i> The EC2 unit limits for a managed scaling policy. The managed scaling activity of a cluster is not allowed to go above or below these limits. The limit only applies to the core and task nodes. The master node cannot be scaled after initial configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ComputeLimits</b>: The EC2 unit limits for a managed scaling policy. The managed scaling activity of a cluster is not allowed to go above or below these limits. The limit only applies to the core and task nodes. The master node cannot be scaled after initial configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaximumCoreCapacityUnits</i>  The upper boundary of EC2 units for core node type in a cluster. It is measured through vCPU cores or instances for instance groups and measured through units for instance fleets. The core units are not allowed to scale beyond this boundary. The parameter is used to split capacity allocation between core and task nodes. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaximumOnDemandCapacityUnits</i>  The upper boundary of On-Demand EC2 units. It is measured through vCPU cores or instances for instance groups and measured through units for instance fleets. The On-Demand units are not allowed to scale beyond this boundary. The parameter is used to split capacity allocation between On-Demand and Spot Instances. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaximumCapacityUnits</i>  The upper boundary of EC2 units. It is measured through vCPU cores or instances for instance groups and measured through units for instance fleets. Managed scaling activities are not allowed beyond this boundary. The limit only applies to the core and task nodes. The master node cannot be scaled after initial configuration. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MinimumCapacityUnits</i>  The lower boundary of EC2 units. It is measured through vCPU cores or instances for instance groups and measured through units for instance fleets. Managed scaling activities are not allowed beyond this boundary. The limit only applies to the core and task nodes. The master node cannot be scaled after initial configuration. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UnitType</i>  The unit type used for specifying a managed scaling policy. <br/>
        :return: ClusterArn:  The Amazon Resource Name (ARN) of the cluster.<br/>JobFlowId:  A unique identifier for the job flow.<br/>        """
        pass

    def set_termination_protection(self, TerminationProtected: Boolean, JobFlowIds: List[XmlString]):
        r"""SetTerminationProtection locks a cluster (job flow) so the EC2 instances in the cluster cannot be terminated by user intervention, an API call, or in the event of a job-flow error. The cluster still terminates upon successful completion of the job flow. Calling <code>SetTerminationProtection</code> on a cluster is similar to calling the Amazon EC2 <code>DisableAPITermination</code> API on all EC2 instances in a cluster.  <code>SetTerminationProtection</code> is used to prevent accidental termination of a cluster and to ensure that in the event of an error, the instances persist so that you can recover any data stored in their ephemeral instance storage.  To terminate a cluster that has been locked by setting <code>SetTerminationProtection</code> to <code>true</code>, you must first unlock the job flow by a subsequent call to <code>SetTerminationProtection</code> in which you set the value to <code>false</code>.   For more information, see<a href="https://docs.aws.amazon.com/emr/latest/ManagementGuide/UsingEMR_TerminationProtection.html">Managing Cluster Termination</a> in the <i>Amazon EMR Management Guide</i>. 

        :param self:
        :param TerminationProtected:  A Boolean that indicates whether to protect the cluster and prevent the Amazon EC2 instances in the cluster from shutting down due to API calls, user intervention, or job-flow error.<br/>JobFlowIds:   A list of strings that uniquely identify the clusters to protect. This identifier is returned by <a>RunJobFlow</a> and can also be obtained from <a>DescribeJobFlows</a> . <br/>
        :return:         """
        pass

    def set_visible_to_all_users(self, VisibleToAllUsers: Boolean, JobFlowIds: List[XmlString]):
        r"""Sets the <a>Cluster$VisibleToAllUsers</a> value, which determines whether the cluster is visible to all IAM users of the AWS account associated with the cluster. Only the IAM user who created the cluster or the AWS account root user can call this action. The default value, <code>true</code>, indicates that all IAM users in the AWS account can perform cluster actions if they have the proper IAM policy permissions. If set to <code>false</code>, only the IAM user that created the cluster can perform actions. This action works on running clusters. You can override the default <code>true</code> setting when you create a cluster by using the <code>VisibleToAllUsers</code> parameter with <code>RunJobFlow</code>.

        :param self:
        :param VisibleToAllUsers:  A value of <code>true</code> indicates that all IAM users in the AWS account can perform cluster actions if they have the proper IAM policy permissions. This is the default. A value of <code>false</code> indicates that only the IAM user who created the cluster can perform actions.<br/>JobFlowIds:  The unique identifier of the job flow (cluster).<br/>
        :return:         """
        pass

    def start_notebook_execution(self, ServiceRole: str, ExecutionEngine: ExecutionEngineConfig, RelativePath: str, EditorId: str, NotebookExecutionName: str=None, NotebookParams: str=None, NotebookInstanceSecurityGroupId: str=None, Tags: List[Tag]=None) -> StartNotebookExecutionOutput:
        r"""Starts a notebook execution.

        :param self:
        :param Tags:  A list of tags associated with a notebook execution. Tags are user-defined key-value pairs that consist of a required key string with a maximum of 128 characters and an optional value string with a maximum of 256 characters.<br/>NotebookInstanceSecurityGroupId:  The unique identifier of the Amazon EC2 security group to associate with the EMR Notebook for this notebook execution.<br/>ServiceRole:  The name or ARN of the IAM role that is used as the service role for Amazon EMR (the EMR role) for the notebook execution.<br/>ExecutionEngine:  Specifies the execution engine (cluster) that runs the notebook execution.:<br/>NotebookParams:  Input parameters in JSON format passed to the EMR Notebook at runtime for execution.<br/>NotebookExecutionName:  An optional name for the notebook execution.<br/>RelativePath:  The path and file name of the notebook file for this execution, relative to the path specified for the EMR Notebook. For example, if you specify a path of <code>s3://MyBucket/MyNotebooks</code> when you create an EMR Notebook for a notebook with an ID of <code>e-ABCDEFGHIJK1234567890ABCD</code> (the <code>EditorID</code> of this request), and you specify a <code>RelativePath</code> of <code>my_notebook_executions/notebook_execution.ipynb</code>, the location of the file for the notebook execution is <code>s3://MyBucket/MyNotebooks/e-ABCDEFGHIJK1234567890ABCD/my_notebook_executions/notebook_execution.ipynb</code>.<br/>EditorId:  The unique identifier of the EMR Notebook to use for notebook execution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterInstanceSecurityGroupId</i> An optional unique ID of an EC2 security group to associate with the master instance of the EMR cluster for this notebook execution. For more information see <a href="https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-managed-notebooks-security-groups.html">Specifying EC2 Security Groups for EMR Notebooks</a> in the <i>EMR Management Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of execution engine. A value of <code>EMR</code> specifies an EMR cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The unique identifier of the execution engine. For an EMR cluster, this is the cluster ID.<br/>
        :return: NotebookExecutionId:  The unique identifier of the notebook execution.<br/>        """
        pass

    def stop_notebook_execution(self, NotebookExecutionId: str):
        r"""Stops a notebook execution.

        :param self:
        :param NotebookExecutionId:  The unique identifier of the notebook execution.<br/>
        :return:         """
        pass

    def terminate_job_flows(self, JobFlowIds: List[XmlString]):
        r"""TerminateJobFlows shuts a list of clusters (job flows) down. When a job flow is shut down, any step not yet completed is canceled and the EC2 instances on which the cluster is running are stopped. Any log files not already saved are uploaded to Amazon S3 if a LogUri was specified when the cluster was created. The maximum number of clusters allowed is 10. The call to <code>TerminateJobFlows</code> is asynchronous. Depending on the configuration of the cluster, it may take up to 1-5 minutes for the cluster to completely terminate and release allocated resources, such as Amazon EC2 instances.

        :param self:
        :param JobFlowIds:  A list of job flows to be shut down.<br/>
        :return:         """
        pass

    def update_studio(self, StudioId: str, Name: str=None, Description: str=None, SubnetIds: List[String]=None, DefaultS3Location: str=None):
        r"""Updates an Amazon EMR Studio configuration, including attributes such as name, description, and subnets.

        :param self:
        :param DefaultS3Location:  The Amazon S3 location to back up Workspaces and notebook files for the Amazon EMR Studio.<br/>SubnetIds:  A list of subnet IDs to associate with the Amazon EMR Studio. The list can include new subnet IDs, but must also include all of the subnet IDs previously associated with the Studio. The list order does not matter. A Studio can have a maximum of 5 subnets. The subnets must belong to the same VPC as the Studio. <br/>Description:  A detailed description to assign to the Amazon EMR Studio.<br/>Name:  A descriptive name for the Amazon EMR Studio.<br/>StudioId:  The ID of the Amazon EMR Studio to update.<br/>
        :return:         """
        pass

    def update_studio_session_mapping(self, SessionPolicyArn: str, IdentityType: str, StudioId: str, IdentityId: str=None, IdentityName: str=None):
        r"""Updates the session policy attached to the user or group for the specified Amazon EMR Studio.

        :param self:
        :param SessionPolicyArn:  The Amazon Resource Name (ARN) of the session policy to associate with the specified user or group.<br/>IdentityType:  Specifies whether the identity to update is a user or a group.<br/>IdentityName:  The name of the user or group to update. For more information, see <a href="https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_User.html#singlesignon-Type-User-UserName">UserName</a> and <a href="https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-DisplayName">DisplayName</a> in the <i>AWS SSO Identity Store API Reference</i>. Either <code>IdentityName</code> or <code>IdentityId</code> must be specified.<br/>IdentityId:  The globally unique identifier (GUID) of the user or group. For more information, see <a href="https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_User.html#singlesignon-Type-User-UserId">UserId</a> and <a href="https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-GroupId">GroupId</a> in the <i>AWS SSO Identity Store API Reference</i>. Either <code>IdentityName</code> or <code>IdentityId</code> must be specified.<br/>StudioId:  The ID of the Amazon EMR Studio.<br/>
        :return:         """
        pass





class EMRContainers(BaseClient):
    r"""Amazon EMR on EKS provides a deployment option for Amazon EMR that allows you to run open-source big data frameworks on Amazon Elastic Kubernetes Service (Amazon EKS). With this deployment option, you can focus on running analytics workloads while Amazon EMR on EKS builds, configures, and manages containers for open-source applications. For more information about Amazon EMR on EKS concepts and tasks, see <a href="https://docs.aws.amazon.com/emr/latest/EMR-on-EKS-DevelopmentGuide/emr-eks.html">What is Amazon EMR on EKS</a>.  <i>Amazon EMR containers</i> is the API name for Amazon EMR on EKS. The <code>emr-containers</code> prefix is used in the following scenarios:  <ul> <li> It is the prefix in the CLI commands for Amazon EMR on EKS. For example, <code>aws emr-containers start-job-run</code>. </li> <li> It is the prefix before IAM policy actions for Amazon EMR on EKS. For example, <code>"Action": [ "emr-containers:StartJobRun"]</code>. For more information, see <a href="https://docs.aws.amazon.com/emr/latest/EMR-on-EKS-DevelopmentGuide/security_iam_service-with-iam.html#security_iam_service-with-iam-id-based-policies-actions">Policy actions for Amazon EMR on EKS</a>. </li> <li> It is the prefix used in Amazon EMR on EKS service endpoints. For example, <code>emr-containers.us-east-2.amazonaws.com</code>. For more information, see <a href="https://docs.aws.amazon.com/emr/latest/EMR-on-EKS-DevelopmentGuide/service-quotas.html#service-endpoints">Amazon EMR on EKS Service Endpoints</a>. </li> </ul>"""


    class ListJobRunsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_job_runs` for valid parameters"""
            pass
    class ListManagedEndpointsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_managed_endpoints` for valid parameters"""
            pass
    class ListVirtualClustersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_virtual_clusters` for valid parameters"""
            pass


    class CancelJobRunRequest(Mapping):
        pass
    
    class CancelJobRunResponse(Mapping):
        pass
    
    class CreateManagedEndpointRequest(Mapping):
        pass
    
    class CreateManagedEndpointResponse(Mapping):
        pass
    
    class ConfigurationOverrides(Mapping):
        pass
    
    class TagMap(object):
        pass
    
    class CreateVirtualClusterRequest(Mapping):
        pass
    
    class CreateVirtualClusterResponse(Mapping):
        pass
    
    class ContainerProvider(Mapping):
        pass
    
    class DeleteManagedEndpointRequest(Mapping):
        pass
    
    class DeleteManagedEndpointResponse(Mapping):
        pass
    
    class DeleteVirtualClusterRequest(Mapping):
        pass
    
    class DeleteVirtualClusterResponse(Mapping):
        pass
    
    class DescribeJobRunRequest(Mapping):
        pass
    
    class DescribeJobRunResponse(Mapping):
        pass
    
    class DescribeManagedEndpointRequest(Mapping):
        pass
    
    class DescribeManagedEndpointResponse(Mapping):
        pass
    
    class DescribeVirtualClusterRequest(Mapping):
        pass
    
    class DescribeVirtualClusterResponse(Mapping):
        pass
    
    class ListJobRunsRequest(Mapping):
        pass
    
    class ListJobRunsResponse(Mapping):
        pass
    
    class Date(object):
        pass
    
    class JobRunState(object):
        pass
    
    class ListManagedEndpointsRequest(Mapping):
        pass
    
    class ListManagedEndpointsResponse(Mapping):
        pass
    
    class EndpointType(object):
        pass
    
    class EndpointState(object):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class ListVirtualClustersRequest(Mapping):
        pass
    
    class ListVirtualClustersResponse(Mapping):
        pass
    
    class VirtualClusterState(object):
        pass
    
    class StartJobRunRequest(Mapping):
        pass
    
    class StartJobRunResponse(Mapping):
        pass
    
    class JobDriver(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class String128(object):
        pass
    
    def cancel_job_run(self, virtualClusterId: str, id: str) -> CancelJobRunResponse:
        r"""Cancels a job run. A job run is a unit of work, such as a Spark jar, PySpark script, or SparkSQL query, that you submit to Amazon EMR on EKS.

        :param self:
        :param virtualClusterId:  The ID of the virtual cluster for which the job run will be canceled.<br/>id:  The ID of the job run to cancel.<br/>
        :return: virtualClusterId:  The output contains the virtual cluster ID for which the job run is cancelled.<br/>id:  The output contains the ID of the cancelled job run.<br/>        """
        pass

    def create_managed_endpoint(self, clientToken: str, certificateArn: str, executionRoleArn: str, releaseLabel: str, type: str, virtualClusterId: str, name: str, configurationOverrides: ConfigurationOverrides=None, tags: TagMap=None) -> CreateManagedEndpointResponse:
        r"""Creates a managed endpoint. A managed endpoint is a gateway that connects EMR Studio to Amazon EMR on EKS so that EMR Studio can communicate with your virtual cluster.

        :param self:
        :param tags:  The tags of the managed endpoint. <br/>clientToken:  The client idempotency token for this create call.<br/>configurationOverrides:  The configuration settings that will be used to override existing configurations.:<br/>certificateArn:  The certificate ARN of the managed endpoint.<br/>executionRoleArn:  The ARN of the execution role.<br/>releaseLabel:  The Amazon EMR release version.<br/>type:  The type of the managed endpoint.<br/>virtualClusterId:  The ID of the virtual cluster for which a managed endpoint is created.<br/>name:  The name of the managed endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>monitoringConfiguration</i> The configurations for monitoring.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>monitoringConfiguration</b>: The configurations for monitoring.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>applicationConfiguration</i> The configurations for the application running by the job run. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>persistentAppUI</i> Monitoring configurations for the persistent application UI. <br/>Monitoring configurations for CloudWatch.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>cloudWatchMonitoringConfiguration</b>: Monitoring configurations for CloudWatch.
        :return: virtualClusterId:  The output contains the ID of the virtual cluster.<br/>arn:  The output contains the ARN of the managed endpoint.<br/>name:  The output contains the name of the managed endpoint.<br/>id:  The output contains the ID of the managed endpoint.<br/>        """
        pass

    def create_virtual_cluster(self, clientToken: str, containerProvider: ContainerProvider, name: str, tags: TagMap=None) -> CreateVirtualClusterResponse:
        r"""Creates a virtual cluster. Virtual cluster is a managed entity on Amazon EMR on EKS. You can create, describe, list and delete virtual clusters. They do not consume any additional resource in your system. A single virtual cluster maps to a single Kubernetes namespace. Given this relationship, you can model virtual clusters the same way you model Kubernetes namespaces to meet your requirements.

        :param self:
        :param tags:  The tags assigned to the virtual cluster.<br/>clientToken:  The client token of the virtual cluster.<br/>containerProvider:  The container provider of the virtual cluster.:<br/>name:  The specified name of the virtual cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>info</i> The information about the container cluster.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>info</b>: The information about the container cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The ID of the container cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of the container provider. EKS is the only supported type as of now.<br/>The information about the EKS cluster.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>eksInfo</b>: The information about the EKS cluster.
        :return: arn:  This output contains the ARN of virtual cluster.<br/>name:  This output contains the name of the virtual cluster.<br/>id:  This output contains the virtual cluster ID.<br/>        """
        pass

    def delete_managed_endpoint(self, virtualClusterId: str, id: str) -> DeleteManagedEndpointResponse:
        r"""Deletes a managed endpoint. A managed endpoint is a gateway that connects EMR Studio to Amazon EMR on EKS so that EMR Studio can communicate with your virtual cluster.

        :param self:
        :param virtualClusterId:  The ID of the endpoint's virtual cluster.<br/>id:  The ID of the managed endpoint.<br/>
        :return: virtualClusterId:  The output displays the ID of the endpoint's virtual cluster.<br/>id:  The output displays the ID of the managed endpoint.<br/>        """
        pass

    def delete_virtual_cluster(self, id: str) -> DeleteVirtualClusterResponse:
        r"""Deletes a virtual cluster. Virtual cluster is a managed entity on Amazon EMR on EKS. You can create, describe, list and delete virtual clusters. They do not consume any additional resource in your system. A single virtual cluster maps to a single Kubernetes namespace. Given this relationship, you can model virtual clusters the same way you model Kubernetes namespaces to meet your requirements.

        :param self:
        :param id:  The ID of the virtual cluster that will be deleted.<br/>
        :return: id:  This output contains the ID of the virtual cluster that will be deleted. <br/>        """
        pass

    def describe_job_run(self, virtualClusterId: str, id: str) -> DescribeJobRunResponse:
        r"""Displays detailed information about a job run. A job run is a unit of work, such as a Spark jar, PySpark script, or SparkSQL query, that you submit to Amazon EMR on EKS.

        :param self:
        :param virtualClusterId:  The ID of the virtual cluster for which the job run is submitted.<br/>id:  The ID of the job run request. <br/>
        :return: jobRun:  The output displays information about a job run.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The assigned tags of the job run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>failureReason</i> The reasons why the job run has failed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>stateDetails</i> Additional details of the job run state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>finishedAt</i> The date and time when the job run has finished.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdBy</i> The user who created the job run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The date and time when the job run was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>jobDriver</i> Parameters of job driver for the job run.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>jobDriver</b>: Parameters of job driver for the job run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>configurationOverrides</i> The configuration settings that are used to override default configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>configurationOverrides</b>: The configuration settings that are used to override default configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>releaseLabel</i> The release version of Amazon EMR.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>executionRoleArn</i> The execution role ARN of the job run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>clientToken</i> The client token used to start a job run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>state</i> The state of the job run. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The ARN of job run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>virtualClusterId</i> The ID of the job run's virtual cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the job run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The ID of the job run.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>applicationConfiguration</i> The configurations for the application running by the job run. <br/>The configurations for monitoring.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>monitoringConfiguration</b>: The configurations for monitoring.The job driver parameters specified for spark submit.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>sparkSubmitJobDriver</b>: The job driver parameters specified for spark submit.        """
        pass

    def describe_managed_endpoint(self, virtualClusterId: str, id: str) -> DescribeManagedEndpointResponse:
        r"""Displays detailed information about a managed endpoint. A managed endpoint is a gateway that connects EMR Studio to Amazon EMR on EKS so that EMR Studio can communicate with your virtual cluster.

        :param self:
        :param virtualClusterId:  The ID of the endpoint's virtual cluster.<br/>id:  This output displays ID of the managed endpoint.<br/>
        :return: endpoint:  This output displays information about a managed endpoint.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The tags of the endpoint. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>subnetIds</i> The subnet IDs of the endpoint. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>securityGroup</i> The security group configuration of the endpoint. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The date and time when the endpoint was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>serverUrl</i> The server URL of the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>configurationOverrides</i> The configuration settings that are used to override existing configurations for endpoints.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>configurationOverrides</b>: The configuration settings that are used to override existing configurations for endpoints.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>certificateArn</i> The certificate ARN of the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>executionRoleArn</i> The execution role ARN of the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>releaseLabel</i> The EMR release version to be used for the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>state</i> The state of the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>virtualClusterId</i> The ID of the endpoint's virtual cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The ARN of the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The ID of the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>applicationConfiguration</i> The configurations for the application running by the job run. <br/>The configurations for monitoring.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>monitoringConfiguration</b>: The configurations for monitoring.        """
        pass

    def describe_virtual_cluster(self, id: str) -> DescribeVirtualClusterResponse:
        r"""Displays detailed information about a specified virtual cluster. Virtual cluster is a managed entity on Amazon EMR on EKS. You can create, describe, list and delete virtual clusters. They do not consume any additional resource in your system. A single virtual cluster maps to a single Kubernetes namespace. Given this relationship, you can model virtual clusters the same way you model Kubernetes namespaces to meet your requirements.

        :param self:
        :param id:  The ID of the virtual cluster that will be described.<br/>
        :return: virtualCluster:  This output displays information about the specified virtual cluster.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The assigned tags of the virtual cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The date and time when the virtual cluster is created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>containerProvider</i> The container provider of the virtual cluster.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>containerProvider</b>: The container provider of the virtual cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>state</i> The state of the virtual cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The ARN of the virtual cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the virtual cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The ID of the virtual cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The ID of the container cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of the container provider. EKS is the only supported type as of now.<br/>The information about the container cluster.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>info</b>: The information about the container cluster.        """
        pass

    def list_job_runs(self, virtualClusterId: str, createdBefore: Date=None, createdAfter: Date=None, name: str=None, states: List[JobRunState]=None, maxResults: int=None, nextToken: str=None) -> ListJobRunsResponse:
        r"""Lists job runs based on a set of parameters. A job run is a unit of work, such as a Spark jar, PySpark script, or SparkSQL query, that you submit to Amazon EMR on EKS.

        :param self:
        :param nextToken:  The token for the next set of job runs to return.<br/>maxResults:  The maximum number of job runs that can be listed.<br/>states:  The states of the job run.<br/>name:  The name of the job run.<br/>createdAfter:  The date and time after which the job runs were submitted.<br/>createdBefore:  The date and time before which the job runs were submitted.<br/>virtualClusterId:  The ID of the virtual cluster for which to list the job run. <br/>
        :return: nextToken:  This output displays the token for the next set of job runs.<br/>jobRuns:  This output lists information about the specified job runs.<br/>        """
        pass

    def list_managed_endpoints(self, virtualClusterId: str, createdBefore: Date=None, createdAfter: Date=None, types: List[EndpointType]=None, states: List[EndpointState]=None, maxResults: int=None, nextToken: str=None) -> ListManagedEndpointsResponse:
        r"""Lists managed endpoints based on a set of parameters. A managed endpoint is a gateway that connects EMR Studio to Amazon EMR on EKS so that EMR Studio can communicate with your virtual cluster.

        :param self:
        :param nextToken:   The token for the next set of managed endpoints to return. <br/>maxResults:  The maximum number of managed endpoints that can be listed.<br/>states:  The states of the managed endpoints.<br/>types:  The types of the managed endpoints.<br/>createdAfter:   The date and time after which the endpoints are created.<br/>createdBefore:  The date and time before which the endpoints are created.<br/>virtualClusterId:  The ID of the virtual cluster.<br/>
        :return: nextToken:   The token for the next set of endpoints to return. <br/>endpoints:  The managed endpoints to be listed.<br/>        """
        pass

    def list_tags_for_resource(self, resourceArn: str) -> ListTagsForResourceResponse:
        r"""Lists the tags assigned to the resources.

        :param self:
        :param resourceArn:  The ARN of tagged resources.<br/>
        :return: tags:  The tags assigned to resources.<br/>        """
        pass

    def list_virtual_clusters(self, containerProviderId: str=None, containerProviderType: str=None, createdAfter: Date=None, createdBefore: Date=None, states: List[VirtualClusterState]=None, maxResults: int=None, nextToken: str=None) -> ListVirtualClustersResponse:
        r"""Lists information about the specified virtual cluster. Virtual cluster is a managed entity on Amazon EMR on EKS. You can create, describe, list and delete virtual clusters. They do not consume any additional resource in your system. A single virtual cluster maps to a single Kubernetes namespace. Given this relationship, you can model virtual clusters the same way you model Kubernetes namespaces to meet your requirements.

        :param self:
        :param nextToken:  The token for the next set of virtual clusters to return. <br/>maxResults:  The maximum number of virtual clusters that can be listed.<br/>states:  The states of the requested virtual clusters.<br/>createdBefore:  The date and time before which the virtual clusters are created.<br/>createdAfter:  The date and time after which the virtual clusters are created.<br/>containerProviderType:  The container provider type of the virtual cluster. EKS is the only supported type as of now.<br/>containerProviderId:  The container provider ID of the virtual cluster.<br/>
        :return: nextToken:  This output displays the token for the next set of virtual clusters.<br/>virtualClusters:  This output lists the specified virtual clusters.<br/>        """
        pass

    def start_job_run(self, jobDriver: JobDriver, releaseLabel: str, executionRoleArn: str, clientToken: str, virtualClusterId: str, name: str=None, configurationOverrides: ConfigurationOverrides=None, tags: TagMap=None) -> StartJobRunResponse:
        r"""Starts a job run. A job run is a unit of work, such as a Spark jar, PySpark script, or SparkSQL query, that you submit to Amazon EMR on EKS.

        :param self:
        :param tags:  The tags assigned to job runs.<br/>configurationOverrides:  The configuration overrides for the job run.:<br/>jobDriver:  The job driver for the job run.:<br/>releaseLabel:  The Amazon EMR release version to use for the job run.<br/>executionRoleArn:  The execution role ARN for the job run.<br/>clientToken:  The client idempotency token of the job run request. <br/>virtualClusterId:  The virtual cluster ID for which the job run request is submitted.<br/>name:  The name of the job run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>sparkSubmitJobDriver</i> The job driver parameters specified for spark submit.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>sparkSubmitJobDriver</b>: The job driver parameters specified for spark submit.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>sparkSubmitParameters</i> The Spark submit parameters that are used for job runs.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>entryPointArguments</i> The arguments for job application.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>entryPoint</i> The entry point of job application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>monitoringConfiguration</i> The configurations for monitoring.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>monitoringConfiguration</b>: The configurations for monitoring.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>applicationConfiguration</i> The configurations for the application running by the job run. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>persistentAppUI</i> Monitoring configurations for the persistent application UI. <br/>Monitoring configurations for CloudWatch.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>cloudWatchMonitoringConfiguration</b>: Monitoring configurations for CloudWatch.
        :return: virtualClusterId:  This output displays the virtual cluster ID for which the job run was submitted.<br/>arn:  This output lists the ARN of job run.<br/>name:  This output displays the name of the started job run.<br/>id:  This output displays the started job run ID.<br/>        """
        pass

    def tag_resource(self, tags: TagMap, resourceArn: str) -> TagResourceResponse:
        r"""Assigns tags to resources. A tag is a label that you assign to an AWS resource. Each tag consists of a key and an optional value, both of which you define. Tags enable you to categorize your AWS resources by attributes such as purpose, owner, or environment. When you have many resources of the same type, you can quickly identify a specific resource based on the tags you've assigned to it. For example, you can define a set of tags for your Amazon EMR on EKS clusters to help you track each cluster's owner and stack level. We recommend that you devise a consistent set of tag keys for each resource type. You can then search and filter the resources based on the tags that you add.

        :param self:
        :param tags:  The tags assigned to resources.<br/>resourceArn:  The ARN of resources.<br/>
        :return:         """
        pass

    def untag_resource(self, tagKeys: List[String128], resourceArn: str) -> UntagResourceResponse:
        r"""Removes tags from resources.

        :param self:
        :param tagKeys:  The tag keys of the resources.<br/>resourceArn:  The ARN of resources.<br/>
        :return:         """
        pass





class ElasticsearchService(BaseClient):
    r"""<fullname>Amazon Elasticsearch Configuration Service</fullname> Use the Amazon Elasticsearch Configuration API to create, configure, and manage Elasticsearch domains. For sample code that uses the Configuration API, see the <a href="https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-configuration-samples.html">Amazon Elasticsearch Service Developer Guide</a>. The guide also contains <a href="https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-request-signing.html">sample code for sending signed HTTP requests to the Elasticsearch APIs</a>. The endpoint for configuration service requests is region-specific: es.<i>region</i>.amazonaws.com. For example, es.us-east-1.amazonaws.com. For a current list of supported regions and endpoints, see <a href="http://docs.aws.amazon.com/general/latest/gr/rande.html#elasticsearch-service-regions" target="_blank">Regions and Endpoints</a>."""


    class ListElasticsearchInstanceTypesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_elasticsearch_instance_types` for valid parameters"""
            pass
    class ListElasticsearchVersionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_elasticsearch_versions` for valid parameters"""
            pass
    class DescribeReservedElasticsearchInstanceOfferingsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_reserved_elasticsearch_instance_offerings` for valid parameters"""
            pass
    class DescribeReservedElasticsearchInstancesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_reserved_elasticsearch_instances` for valid parameters"""
            pass
    class GetUpgradeHistoryPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_upgrade_history` for valid parameters"""
            pass


    class AcceptInboundCrossClusterSearchConnectionRequest(Mapping):
        pass
    
    class AcceptInboundCrossClusterSearchConnectionResponse(Mapping):
        pass
    
    class AddTagsRequest(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class AssociatePackageRequest(Mapping):
        pass
    
    class AssociatePackageResponse(Mapping):
        pass
    
    class CancelElasticsearchServiceSoftwareUpdateRequest(Mapping):
        pass
    
    class CancelElasticsearchServiceSoftwareUpdateResponse(Mapping):
        pass
    
    class CreateElasticsearchDomainRequest(Mapping):
        pass
    
    class CreateElasticsearchDomainResponse(Mapping):
        pass
    
    class ElasticsearchClusterConfig(Mapping):
        pass
    
    class EBSOptions(Mapping):
        pass
    
    class SnapshotOptions(Mapping):
        pass
    
    class VPCOptions(Mapping):
        pass
    
    class CognitoOptions(Mapping):
        pass
    
    class EncryptionAtRestOptions(Mapping):
        pass
    
    class NodeToNodeEncryptionOptions(Mapping):
        pass
    
    class AdvancedOptions(object):
        pass
    
    class LogPublishingOptions(object):
        pass
    
    class DomainEndpointOptions(Mapping):
        pass
    
    class AdvancedSecurityOptionsInput(Mapping):
        pass
    
    class AutoTuneOptionsInput(Mapping):
        pass
    
    class CreateOutboundCrossClusterSearchConnectionRequest(Mapping):
        pass
    
    class CreateOutboundCrossClusterSearchConnectionResponse(Mapping):
        pass
    
    class DomainInformation(Mapping):
        pass
    
    class CreatePackageRequest(Mapping):
        pass
    
    class CreatePackageResponse(Mapping):
        pass
    
    class PackageSource(Mapping):
        pass
    
    class DeleteElasticsearchDomainRequest(Mapping):
        pass
    
    class DeleteElasticsearchDomainResponse(Mapping):
        pass
    
    class DeleteInboundCrossClusterSearchConnectionRequest(Mapping):
        pass
    
    class DeleteInboundCrossClusterSearchConnectionResponse(Mapping):
        pass
    
    class DeleteOutboundCrossClusterSearchConnectionRequest(Mapping):
        pass
    
    class DeleteOutboundCrossClusterSearchConnectionResponse(Mapping):
        pass
    
    class DeletePackageRequest(Mapping):
        pass
    
    class DeletePackageResponse(Mapping):
        pass
    
    class DescribeDomainAutoTunesRequest(Mapping):
        pass
    
    class DescribeDomainAutoTunesResponse(Mapping):
        pass
    
    class DescribeElasticsearchDomainRequest(Mapping):
        pass
    
    class DescribeElasticsearchDomainResponse(Mapping):
        pass
    
    class DescribeElasticsearchDomainConfigRequest(Mapping):
        pass
    
    class DescribeElasticsearchDomainConfigResponse(Mapping):
        pass
    
    class DescribeElasticsearchDomainsRequest(Mapping):
        pass
    
    class DescribeElasticsearchDomainsResponse(Mapping):
        pass
    
    class DomainName(object):
        pass
    
    class DescribeElasticsearchInstanceTypeLimitsRequest(Mapping):
        pass
    
    class DescribeElasticsearchInstanceTypeLimitsResponse(Mapping):
        pass
    
    class DescribeInboundCrossClusterSearchConnectionsRequest(Mapping):
        pass
    
    class DescribeInboundCrossClusterSearchConnectionsResponse(Mapping):
        pass
    
    class Filter(Mapping):
        pass
    
    class DescribeOutboundCrossClusterSearchConnectionsRequest(Mapping):
        pass
    
    class DescribeOutboundCrossClusterSearchConnectionsResponse(Mapping):
        pass
    
    class DescribePackagesRequest(Mapping):
        pass
    
    class DescribePackagesResponse(Mapping):
        pass
    
    class DescribePackagesFilter(Mapping):
        pass
    
    class DescribeReservedElasticsearchInstanceOfferingsRequest(Mapping):
        pass
    
    class DescribeReservedElasticsearchInstanceOfferingsResponse(Mapping):
        pass
    
    class DescribeReservedElasticsearchInstancesRequest(Mapping):
        pass
    
    class DescribeReservedElasticsearchInstancesResponse(Mapping):
        pass
    
    class DissociatePackageRequest(Mapping):
        pass
    
    class DissociatePackageResponse(Mapping):
        pass
    
    class GetCompatibleElasticsearchVersionsRequest(Mapping):
        pass
    
    class GetCompatibleElasticsearchVersionsResponse(Mapping):
        pass
    
    class GetPackageVersionHistoryRequest(Mapping):
        pass
    
    class GetPackageVersionHistoryResponse(Mapping):
        pass
    
    class GetUpgradeHistoryRequest(Mapping):
        pass
    
    class GetUpgradeHistoryResponse(Mapping):
        pass
    
    class GetUpgradeStatusRequest(Mapping):
        pass
    
    class GetUpgradeStatusResponse(Mapping):
        pass
    
    class ListDomainNamesResponse(Mapping):
        pass
    
    class ListDomainsForPackageRequest(Mapping):
        pass
    
    class ListDomainsForPackageResponse(Mapping):
        pass
    
    class ListElasticsearchInstanceTypesRequest(Mapping):
        pass
    
    class ListElasticsearchInstanceTypesResponse(Mapping):
        pass
    
    class ListElasticsearchVersionsRequest(Mapping):
        pass
    
    class ListElasticsearchVersionsResponse(Mapping):
        pass
    
    class ListPackagesForDomainRequest(Mapping):
        pass
    
    class ListPackagesForDomainResponse(Mapping):
        pass
    
    class ListTagsRequest(Mapping):
        pass
    
    class ListTagsResponse(Mapping):
        pass
    
    class PurchaseReservedElasticsearchInstanceOfferingRequest(Mapping):
        pass
    
    class PurchaseReservedElasticsearchInstanceOfferingResponse(Mapping):
        pass
    
    class RejectInboundCrossClusterSearchConnectionRequest(Mapping):
        pass
    
    class RejectInboundCrossClusterSearchConnectionResponse(Mapping):
        pass
    
    class RemoveTagsRequest(Mapping):
        pass
    
    class String(object):
        pass
    
    class StartElasticsearchServiceSoftwareUpdateRequest(Mapping):
        pass
    
    class StartElasticsearchServiceSoftwareUpdateResponse(Mapping):
        pass
    
    class UpdateElasticsearchDomainConfigRequest(Mapping):
        pass
    
    class UpdateElasticsearchDomainConfigResponse(Mapping):
        pass
    
    class AutoTuneOptions(Mapping):
        pass
    
    class UpdatePackageRequest(Mapping):
        pass
    
    class UpdatePackageResponse(Mapping):
        pass
    
    class UpgradeElasticsearchDomainRequest(Mapping):
        pass
    
    class UpgradeElasticsearchDomainResponse(Mapping):
        pass
    
    class Boolean(object):
        pass
    
    def accept_inbound_cross_cluster_search_connection(self, CrossClusterSearchConnectionId: str) -> AcceptInboundCrossClusterSearchConnectionResponse:
        r"""Allows the destination domain owner to accept an inbound cross-cluster search connection request.

        :param self:
        :param CrossClusterSearchConnectionId:  The id of the inbound connection that you want to accept.<br/>
        :return: CrossClusterSearchConnection:  Specifies the <code><a>InboundCrossClusterSearchConnection</a></code> of accepted inbound connection. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConnectionStatus</i> Specifies the <code><a>InboundCrossClusterSearchConnectionStatus</a></code> for the outbound connection.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ConnectionStatus</b>: Specifies the <code><a>InboundCrossClusterSearchConnectionStatus</a></code> for the outbound connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CrossClusterSearchConnectionId</i> Specifies the connection id for the inbound cross-cluster search connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DestinationDomainInfo</i> Specifies the <code><a>DomainInformation</a></code> for the destination Elasticsearch domain.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DestinationDomainInfo</b>: Specifies the <code><a>DomainInformation</a></code> for the destination Elasticsearch domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceDomainInfo</i> Specifies the <code><a>DomainInformation</a></code> for the source Elasticsearch domain.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SourceDomainInfo</b>: Specifies the <code><a>DomainInformation</a></code> for the source Elasticsearch domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Region</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainName</i> The name of an Elasticsearch domain. Domain names are unique across the domains owned by an account within an AWS region. Domain names start with a letter or number and can contain the following characters: a-z (lowercase), 0-9, and - (hyphen).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Region</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainName</i> The name of an Elasticsearch domain. Domain names are unique across the domains owned by an account within an AWS region. Domain names start with a letter or number and can contain the following characters: a-z (lowercase), 0-9, and - (hyphen).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> Specifies verbose information for the inbound connection status.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusCode</i> The state code for inbound connection. This can be one of the following: <ul> <li>PENDING_ACCEPTANCE: Inbound connection is not yet accepted by destination domain owner.</li> <li>APPROVED: Inbound connection is pending acceptance by destination domain owner.</li> <li>REJECTING: Inbound connection rejection is in process.</li> <li>REJECTED: Inbound connection is rejected.</li> <li>DELETING: Inbound connection deletion is in progress.</li> <li>DELETED: Inbound connection is deleted and cannot be used further.</li> </ul><br/>        """
        pass

    def add_tags(self, TagList: List[Tag], ARN: str):
        r"""Attaches tags to an existing Elasticsearch domain. Tags are a set of case-sensitive key value pairs. An Elasticsearch domain may have up to 10 tags. See <a href="http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-managedomains.html#es-managedomains-awsresorcetagging" target="_blank"> Tagging Amazon Elasticsearch Service Domains for more information.</a>

        :param self:
        :param TagList:   List of <code>Tag</code> that need to be added for the Elasticsearch domain. <br/>ARN:   Specify the <code>ARN</code> for which you want to add the tags.<br/>
        :return:         """
        pass

    def associate_package(self, DomainName: str, PackageID: str) -> AssociatePackageResponse:
        r"""Associates a package with an Amazon ES domain.

        :param self:
        :param DomainName:  Name of the domain that you want to associate the package with.<br/>PackageID:  Internal ID of the package that you want to associate with a domain. Use <code>DescribePackages</code> to find this value.<br/>
        :return: DomainPackageDetails:  <code>DomainPackageDetails</code>:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorDetails</i> Additional information if the package is in an error state. Null otherwise.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ErrorDetails</b>: Additional information if the package is in an error state. Null otherwise.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReferencePath</i> The relative path on Amazon ES nodes, which can be used as synonym_path when the package is synonym file.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PackageVersion</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainPackageStatus</i> State of the association. Values are ASSOCIATING/ASSOCIATION_FAILED/ACTIVE/DISSOCIATING/DISSOCIATION_FAILED.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainName</i> Name of the domain you've associated a package with.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdated</i> Timestamp of the most-recent update to the association status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PackageType</i> Currently supports only TXT-DICTIONARY.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PackageName</i> User specified name of the package.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PackageID</i> Internal ID of the package.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorMessage</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorType</i> <br/>        """
        pass

    def cancel_elasticsearch_service_software_update(self, DomainName: str) -> CancelElasticsearchServiceSoftwareUpdateResponse:
        r"""Cancels a scheduled service software update for an Amazon ES domain. You can only perform this operation before the <code>AutomatedUpdateDate</code> and when the <code>UpdateStatus</code> is in the <code>PENDING_UPDATE</code> state.

        :param self:
        :param DomainName:  The name of the domain that you want to stop the latest service software update on.<br/>
        :return: ServiceSoftwareOptions:  The current status of the Elasticsearch service software update.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OptionalDeployment</i> <code>True</code> if a service software is never automatically updated. <code>False</code> if a service software is automatically updated after <code>AutomatedUpdateDate</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomatedUpdateDate</i> Timestamp, in Epoch time, until which you can manually request a service software update. After this date, we automatically update your service software.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the <code>UpdateStatus</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdateStatus</i> The status of your service software update. This field can take the following values: <code>ELIGIBLE</code>, <code>PENDING_UPDATE</code>, <code>IN_PROGRESS</code>, <code>COMPLETED</code>, and <code>NOT_ELIGIBLE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Cancellable</i> <code>True</code> if you are able to cancel your service software version update. <code>False</code> if you are not able to cancel your service software version. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdateAvailable</i> <code>True</code> if you are able to update you service software version. <code>False</code> if you are not able to update your service software version. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NewVersion</i> The new service software version if one is available.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CurrentVersion</i> The current service software version that is present on the domain.<br/>        """
        pass

    def create_elasticsearch_domain(self, DomainName: str, ElasticsearchVersion: str=None, ElasticsearchClusterConfig: ElasticsearchClusterConfig=None, EBSOptions: EBSOptions=None, AccessPolicies: str=None, SnapshotOptions: SnapshotOptions=None, VPCOptions: VPCOptions=None, CognitoOptions: CognitoOptions=None, EncryptionAtRestOptions: EncryptionAtRestOptions=None, NodeToNodeEncryptionOptions: NodeToNodeEncryptionOptions=None, AdvancedOptions: AdvancedOptions=None, LogPublishingOptions: LogPublishingOptions=None, DomainEndpointOptions: DomainEndpointOptions=None, AdvancedSecurityOptions: AdvancedSecurityOptionsInput=None, AutoTuneOptions: AutoTuneOptionsInput=None, TagList: List[Tag]=None) -> CreateElasticsearchDomainResponse:
        r"""Creates a new Elasticsearch domain. For more information, see <a href="http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-createupdatedomains.html#es-createdomains" target="_blank">Creating Elasticsearch Domains</a> in the <i>Amazon Elasticsearch Service Developer Guide</i>.

        :param self:
        :param TagList:  A list of <code>Tag</code> added during domain creation.<br/>AutoTuneOptions:  Specifies Auto-Tune options.:<br/>AdvancedSecurityOptions:  Specifies advanced security options.:<br/>DomainEndpointOptions:  Options to specify configuration that will be applied to the domain endpoint.:<br/>LogPublishingOptions:  Map of <code>LogType</code> and <code>LogPublishingOption</code>, each containing options to publish a given type of Elasticsearch log.<br/>AdvancedOptions:   Option to allow references to indices in an HTTP request body. Must be <code>false</code> when configuring access to individual sub-resources. By default, the value is <code>true</code>. See <a href="http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-createupdatedomains.html#es-createdomain-configure-advanced-options" target="_blank">Configuration Advanced Options</a> for more information.<br/>NodeToNodeEncryptionOptions:  Specifies the NodeToNodeEncryptionOptions.:<br/>EncryptionAtRestOptions:  Specifies the Encryption At Rest Options.:<br/>CognitoOptions:  Options to specify the Cognito user and identity pools for Kibana authentication. For more information, see <a href="http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-cognito-auth.html" target="_blank">Amazon Cognito Authentication for Kibana</a>.:<br/>VPCOptions:  Options to specify the subnets and security groups for VPC endpoint. For more information, see <a href="http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-vpc.html#es-creating-vpc" target="_blank">Creating a VPC</a> in <i>VPC Endpoints for Amazon Elasticsearch Service Domains</i>:<br/>SnapshotOptions:  Option to set time, in UTC format, of the daily automated snapshot. Default value is 0 hours. :<br/>AccessPolicies:   IAM access policy as a JSON-formatted string.<br/>EBSOptions:  Options to enable, disable and specify the type and size of EBS storage volumes. :<br/>ElasticsearchClusterConfig:  Configuration options for an Elasticsearch domain. Specifies the instance type and number of instances in the domain cluster. :<br/>ElasticsearchVersion:  String of format X.Y to specify version for the Elasticsearch domain eg. "1.5" or "2.3". For more information, see <a href="http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-createupdatedomains.html#es-createdomains" target="_blank">Creating Elasticsearch Domains</a> in the <i>Amazon Elasticsearch Service Developer Guide</i>.<br/>DomainName:  The name of the Elasticsearch domain that you are creating. Domain names are unique across the domains owned by an account within an AWS region. Domain names must start with a lowercase letter and can contain the following characters: a-z (lowercase), 0-9, and - (hyphen).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ColdStorageOptions</i> Specifies the <code>ColdStorageOptions</code> configuration for an Elasticsearch domain.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ColdStorageOptions</b>: Specifies the <code>ColdStorageOptions</code> configuration for an Elasticsearch domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WarmCount</i> The number of warm nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WarmType</i> The instance type for the Elasticsearch cluster's warm nodes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WarmEnabled</i> True to enable warm storage.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DedicatedMasterCount</i> Total number of dedicated master nodes, active and on standby, for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DedicatedMasterType</i> The instance type for a dedicated master node.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ZoneAwarenessConfig</i> Specifies the zone awareness configuration for a domain when zone awareness is enabled.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ZoneAwarenessConfig</b>: Specifies the zone awareness configuration for a domain when zone awareness is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ZoneAwarenessEnabled</i> A boolean value to indicate whether zone awareness is enabled. See <a href="http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-managedomains.html#es-managedomains-zoneawareness" target="_blank">About Zone Awareness</a> for more information.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DedicatedMasterEnabled</i> A boolean value to indicate whether a dedicated master node is enabled. See <a href="http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-managedomains.html#es-managedomains-dedicatedmasternodes" target="_blank">About Dedicated Master Nodes</a> for more information.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceCount</i> The number of instances in the specified domain cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceType</i> The instance type for an Elasticsearch cluster. UltraWarm instance types are not supported for data instances.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZoneCount</i> An integer value to indicate the number of availability zones for a domain when zone awareness is enabled. This should be equal to number of subnets if VPC endpoints is enabled<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> True to enable cold storage for an Elasticsearch domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Iops</i> Specifies the IOPD for a Provisioned IOPS EBS volume (SSD).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VolumeSize</i>  Integer to specify the size of an EBS volume.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VolumeType</i>  Specifies the volume type for EBS-based storage.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EBSEnabled</i> Specifies whether EBS-based storage is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomatedSnapshotStartHour</i> Specifies the time, in UTC format, when the service takes a daily automated snapshot of the specified Elasticsearch domain. Default value is <code>0</code> hours.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> Specifies the security groups for VPC endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetIds</i> Specifies the subnets for VPC endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> Specifies the role ARN that provides Elasticsearch permissions for accessing Cognito resources.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IdentityPoolId</i> Specifies the Cognito identity pool ID for Kibana authentication.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserPoolId</i> Specifies the Cognito user pool ID for Kibana authentication.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specifies the option to enable Cognito for Kibana authentication.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i>  Specifies the KMS Key ID for Encryption At Rest options.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specifies the option to enable Encryption At Rest.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specify true to enable node-to-node encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomEndpointCertificateArn</i> Specify ACM certificate ARN for your custom endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomEndpoint</i> Specify the fully qualified domain for your custom endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomEndpointEnabled</i> Specify if custom endpoint should be enabled for the Elasticsearch domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TLSSecurityPolicy</i> Specify the TLS security policy that needs to be applied to the HTTPS endpoint of Elasticsearch domain. <br/> It can be one of the following values: <ul> <li><b>Policy-Min-TLS-1-0-2019-07: </b> TLS security policy which supports TLSv1.0 and higher.</li> <li><b>Policy-Min-TLS-1-2-2019-07: </b> TLS security policy which supports only TLSv1.2</li> </ul> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnforceHTTPS</i> Specify if only HTTPS endpoint should be enabled for the Elasticsearch domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SAMLOptions</i> Specifies the SAML application configuration for the domain.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SAMLOptions</b>: Specifies the SAML application configuration for the domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUserOptions</i> Credentials for the master user: username and password, ARN, or both.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>MasterUserOptions</b>: Credentials for the master user: username and password, ARN, or both.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InternalUserDatabaseEnabled</i> True if the internal user database is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> True if advanced security is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUserPassword</i> The master user's password, which is stored in the Amazon Elasticsearch Service domain's internal database.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUserName</i> The master user's username, which is stored in the Amazon Elasticsearch Service domain's internal database.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUserARN</i> ARN for the master user (if IAM is enabled).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> True if SAML is enabled.<br/>Specifies the SAML Identity Provider's information.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Idp</b>: Specifies the SAML Identity Provider's information.&nbsp;&nbsp;&nbsp;&nbsp; <i>MaintenanceSchedules</i> Specifies list of maitenance schedules. See the <a href="https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/auto-tune.html" target="_blank">Developer Guide</a> for more information.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DesiredState</i> Specifies the Auto-Tune desired state. Valid values are ENABLED, DISABLED. <br/>
        :return: DomainStatus:  The status of the newly created Elasticsearch domain. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoTuneOptions</i> The current status of the Elasticsearch domain's Auto-Tune options.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AutoTuneOptions</b>: The current status of the Elasticsearch domain's Auto-Tune options.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdvancedSecurityOptions</i> The current status of the Elasticsearch domain's advanced security options.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AdvancedSecurityOptions</b>: The current status of the Elasticsearch domain's advanced security options.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainEndpointOptions</i> The current status of the Elasticsearch domain's endpoint options.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DomainEndpointOptions</b>: The current status of the Elasticsearch domain's endpoint options.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceSoftwareOptions</i> The current status of the Elasticsearch domain's service software.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ServiceSoftwareOptions</b>: The current status of the Elasticsearch domain's service software.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogPublishingOptions</i> Log publishing options for the given domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdvancedOptions</i> Specifies the status of the <code>AdvancedOptions</code><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NodeToNodeEncryptionOptions</i> Specifies the status of the <code>NodeToNodeEncryptionOptions</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>NodeToNodeEncryptionOptions</b>: Specifies the status of the <code>NodeToNodeEncryptionOptions</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EncryptionAtRestOptions</i>  Specifies the status of the <code>EncryptionAtRestOptions</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EncryptionAtRestOptions</b>:  Specifies the status of the <code>EncryptionAtRestOptions</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CognitoOptions</i> The <code>CognitoOptions</code> for the specified domain. For more information, see <a href="http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-cognito-auth.html" target="_blank">Amazon Cognito Authentication for Kibana</a>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CognitoOptions</b>: The <code>CognitoOptions</code> for the specified domain. For more information, see <a href="http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-cognito-auth.html" target="_blank">Amazon Cognito Authentication for Kibana</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VPCOptions</i> The <code>VPCOptions</code> for the specified domain. For more information, see <a href="http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-vpc.html" target="_blank">VPC Endpoints for Amazon Elasticsearch Service Domains</a>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>VPCOptions</b>: The <code>VPCOptions</code> for the specified domain. For more information, see <a href="http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-vpc.html" target="_blank">VPC Endpoints for Amazon Elasticsearch Service Domains</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotOptions</i> Specifies the status of the <code>SnapshotOptions</code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SnapshotOptions</b>: Specifies the status of the <code>SnapshotOptions</code><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccessPolicies</i>  IAM access policy as a JSON-formatted string.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EBSOptions</i> The <code>EBSOptions</code> for the specified domain. See <a href="http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-createupdatedomains.html#es-createdomain-configure-ebs" target="_blank">Configuring EBS-based Storage</a> for more information.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EBSOptions</b>: The <code>EBSOptions</code> for the specified domain. See <a href="http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-createupdatedomains.html#es-createdomain-configure-ebs" target="_blank">Configuring EBS-based Storage</a> for more information.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ElasticsearchClusterConfig</i> The type and number of instances in the domain cluster.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ElasticsearchClusterConfig</b>: The type and number of instances in the domain cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ElasticsearchVersion</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UpgradeProcessing</i> The status of an Elasticsearch domain version upgrade. <code>True</code> if Amazon Elasticsearch Service is undergoing a version upgrade. <code>False</code> if the configuration is active.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Processing</i> The status of the Elasticsearch domain configuration. <code>True</code> if Amazon Elasticsearch Service is processing configuration changes. <code>False</code> if the configuration is active.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoints</i> Map containing the Elasticsearch domain endpoints used to submit index and search requests. Example <code>key, value</code>: <code>'vpc','vpc-endpoint-h2dsd34efgyghrtguk5gt6j2foh4.us-east-1.es.amazonaws.com'</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i> The Elasticsearch domain endpoint that you use to submit index and search requests.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Deleted</i> The domain deletion status. <code>True</code> if a delete request has been received for the domain but resource cleanup is still in progress. <code>False</code> if the domain has not been deleted. Once domain deletion is complete, the status of the domain is no longer returned.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Created</i> The domain creation status. <code>True</code> if the creation of an Elasticsearch domain is complete. <code>False</code> if domain creation is still in progress.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ARN</i> The Amazon resource name (ARN) of an Elasticsearch domain. See <a href="http://docs.aws.amazon.com/IAM/latest/UserGuide/index.html?Using_Identifiers.html" target="_blank">Identifiers for IAM Entities</a> in <i>Using AWS Identity and Access Management</i> for more information.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainName</i> The name of an Elasticsearch domain. Domain names are unique across the domains owned by an account within an AWS region. Domain names start with a letter or number and can contain the following characters: a-z (lowercase), 0-9, and - (hyphen).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainId</i> The unique identifier for the specified Elasticsearch domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ZoneAwarenessEnabled</i> A boolean value to indicate whether zone awareness is enabled. See <a href="http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-managedomains.html#es-managedomains-zoneawareness" target="_blank">About Zone Awareness</a> for more information.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DedicatedMasterEnabled</i> A boolean value to indicate whether a dedicated master node is enabled. See <a href="http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-managedomains.html#es-managedomains-dedicatedmasternodes" target="_blank">About Dedicated Master Nodes</a> for more information.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceCount</i> The number of instances in the specified domain cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceType</i> The instance type for an Elasticsearch cluster. UltraWarm instance types are not supported for data instances.<br/>Specifies the zone awareness configuration for a domain when zone awareness is enabled.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ZoneAwarenessConfig</b>: Specifies the zone awareness configuration for a domain when zone awareness is enabled.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Iops</i> Specifies the IOPD for a Provisioned IOPS EBS volume (SSD).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VolumeSize</i>  Integer to specify the size of an EBS volume.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VolumeType</i>  Specifies the volume type for EBS-based storage.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EBSEnabled</i> Specifies whether EBS-based storage is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomatedSnapshotStartHour</i> Specifies the time, in UTC format, when the service takes a daily automated snapshot of the specified Elasticsearch domain. Default value is <code>0</code> hours.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> Specifies the security groups for VPC endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZones</i> The availability zones for the Elasticsearch domain. Exists only if the domain was created with VPCOptions.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetIds</i> Specifies the subnets for VPC endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VPCId</i> The VPC Id for the Elasticsearch domain. Exists only if the domain was created with VPCOptions.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> Specifies the role ARN that provides Elasticsearch permissions for accessing Cognito resources.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IdentityPoolId</i> Specifies the Cognito identity pool ID for Kibana authentication.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UserPoolId</i> Specifies the Cognito user pool ID for Kibana authentication.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specifies the option to enable Cognito for Kibana authentication.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i>  Specifies the KMS Key ID for Encryption At Rest options.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specifies the option to enable Encryption At Rest.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specify true to enable node-to-node encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OptionalDeployment</i> <code>True</code> if a service software is never automatically updated. <code>False</code> if a service software is automatically updated after <code>AutomatedUpdateDate</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomatedUpdateDate</i> Timestamp, in Epoch time, until which you can manually request a service software update. After this date, we automatically update your service software.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the <code>UpdateStatus</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdateStatus</i> The status of your service software update. This field can take the following values: <code>ELIGIBLE</code>, <code>PENDING_UPDATE</code>, <code>IN_PROGRESS</code>, <code>COMPLETED</code>, and <code>NOT_ELIGIBLE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Cancellable</i> <code>True</code> if you are able to cancel your service software version update. <code>False</code> if you are not able to cancel your service software version. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdateAvailable</i> <code>True</code> if you are able to update you service software version. <code>False</code> if you are not able to update your service software version. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NewVersion</i> The new service software version if one is available.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CurrentVersion</i> The current service software version that is present on the domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomEndpointCertificateArn</i> Specify ACM certificate ARN for your custom endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomEndpoint</i> Specify the fully qualified domain for your custom endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomEndpointEnabled</i> Specify if custom endpoint should be enabled for the Elasticsearch domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TLSSecurityPolicy</i> Specify the TLS security policy that needs to be applied to the HTTPS endpoint of Elasticsearch domain. <br/> It can be one of the following values: <ul> <li><b>Policy-Min-TLS-1-0-2019-07: </b> TLS security policy which supports TLSv1.0 and higher.</li> <li><b>Policy-Min-TLS-1-2-2019-07: </b> TLS security policy which supports only TLSv1.2</li> </ul> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EnforceHTTPS</i> Specify if only HTTPS endpoint should be enabled for the Elasticsearch domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InternalUserDatabaseEnabled</i> True if the internal user database is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> True if advanced security is enabled.<br/>Describes the SAML application configured for a domain.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SAMLOptions</b>: Describes the SAML application configured for a domain.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorMessage</i> Specifies the error message while enabling or disabling the Auto-Tune.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> Specifies the <code>AutoTuneState</code> for the Elasticsearch domain.<br/>        """
        pass

    def create_outbound_cross_cluster_search_connection(self, ConnectionAlias: str, DestinationDomainInfo: DomainInformation, SourceDomainInfo: DomainInformation) -> CreateOutboundCrossClusterSearchConnectionResponse:
        r"""Creates a new cross-cluster search connection from a source domain to a destination domain.

        :param self:
        :param ConnectionAlias:  Specifies the connection alias that will be used by the customer for this connection.<br/>DestinationDomainInfo:  Specifies the <code><a>DomainInformation</a></code> for the destination Elasticsearch domain.:<br/>SourceDomainInfo:  Specifies the <code><a>DomainInformation</a></code> for the source Elasticsearch domain.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Region</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainName</i> The name of an Elasticsearch domain. Domain names are unique across the domains owned by an account within an AWS region. Domain names start with a letter or number and can contain the following characters: a-z (lowercase), 0-9, and - (hyphen).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Region</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainName</i> The name of an Elasticsearch domain. Domain names are unique across the domains owned by an account within an AWS region. Domain names start with a letter or number and can contain the following characters: a-z (lowercase), 0-9, and - (hyphen).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> <br/>
        :return: CrossClusterSearchConnectionId:  Unique id for the created outbound connection, which is used for subsequent operations on connection.<br/>ConnectionStatus:  Specifies the <code><a>OutboundCrossClusterSearchConnectionStatus</a></code> for the newly created connection.:<br/>ConnectionAlias:  Specifies the connection alias provided during the create connection request.<br/>DestinationDomainInfo:  Specifies the <code><a>DomainInformation</a></code> for the destination Elasticsearch domain.:<br/>SourceDomainInfo:  Specifies the <code><a>DomainInformation</a></code> for the source Elasticsearch domain.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Region</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainName</i> The name of an Elasticsearch domain. Domain names are unique across the domains owned by an account within an AWS region. Domain names start with a letter or number and can contain the following characters: a-z (lowercase), 0-9, and - (hyphen).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Region</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainName</i> The name of an Elasticsearch domain. Domain names are unique across the domains owned by an account within an AWS region. Domain names start with a letter or number and can contain the following characters: a-z (lowercase), 0-9, and - (hyphen).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> Specifies verbose information for the outbound connection status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusCode</i> The state code for outbound connection. This can be one of the following: <ul> <li>VALIDATING: The outbound connection request is being validated.</li> <li>VALIDATION_FAILED: Validation failed for the connection request.</li> <li>PENDING_ACCEPTANCE: Outbound connection request is validated and is not yet accepted by destination domain owner.</li> <li>PROVISIONING: Outbound connection request is in process.</li> <li>ACTIVE: Outbound connection is active and ready to use.</li> <li>REJECTED: Outbound connection request is rejected by destination domain owner.</li> <li>DELETING: Outbound connection deletion is in progress.</li> <li>DELETED: Outbound connection is deleted and cannot be used further.</li> </ul><br/>        """
        pass

    def create_package(self, PackageSource: PackageSource, PackageType: str, PackageName: str, PackageDescription: str=None) -> CreatePackageResponse:
        r"""Create a package for use with Amazon ES domains.

        :param self:
        :param PackageSource:  The customer S3 location <code>PackageSource</code> for importing the package.:<br/>PackageDescription:  Description of the package.<br/>PackageType:  Type of package. Currently supports only TXT-DICTIONARY.<br/>PackageName:  Unique identifier for the package.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Key</i> Key (file name) of the package.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3BucketName</i> Name of the bucket containing the package.<br/>
        :return: PackageDetails:  Information about the package <code>PackageDetails</code>.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorDetails</i> Additional information if the package is in an error state. Null otherwise.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ErrorDetails</b>: Additional information if the package is in an error state. Null otherwise.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailablePackageVersion</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdatedAt</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedAt</i> Timestamp which tells creation date of the package.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PackageStatus</i> Current state of the package. Values are COPYING/COPY_FAILED/AVAILABLE/DELETING/DELETE_FAILED<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PackageDescription</i> User-specified description of the package.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PackageType</i> Currently supports only TXT-DICTIONARY.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PackageName</i> User specified name of the package.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PackageID</i> Internal ID of the package.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorMessage</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorType</i> <br/>        """
        pass

    def delete_elasticsearch_domain(self, DomainName: str) -> DeleteElasticsearchDomainResponse:
        r"""Permanently deletes the specified Elasticsearch domain and all of its data. Once a domain is deleted, it cannot be recovered.

        :param self:
        :param DomainName:  The name of the Elasticsearch domain that you want to permanently delete.<br/>
        :return: DomainStatus:  The status of the Elasticsearch domain being deleted.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoTuneOptions</i> The current status of the Elasticsearch domain's Auto-Tune options.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AutoTuneOptions</b>: The current status of the Elasticsearch domain's Auto-Tune options.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdvancedSecurityOptions</i> The current status of the Elasticsearch domain's advanced security options.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AdvancedSecurityOptions</b>: The current status of the Elasticsearch domain's advanced security options.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainEndpointOptions</i> The current status of the Elasticsearch domain's endpoint options.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DomainEndpointOptions</b>: The current status of the Elasticsearch domain's endpoint options.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceSoftwareOptions</i> The current status of the Elasticsearch domain's service software.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ServiceSoftwareOptions</b>: The current status of the Elasticsearch domain's service software.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogPublishingOptions</i> Log publishing options for the given domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdvancedOptions</i> Specifies the status of the <code>AdvancedOptions</code><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NodeToNodeEncryptionOptions</i> Specifies the status of the <code>NodeToNodeEncryptionOptions</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>NodeToNodeEncryptionOptions</b>: Specifies the status of the <code>NodeToNodeEncryptionOptions</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EncryptionAtRestOptions</i>  Specifies the status of the <code>EncryptionAtRestOptions</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EncryptionAtRestOptions</b>:  Specifies the status of the <code>EncryptionAtRestOptions</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CognitoOptions</i> The <code>CognitoOptions</code> for the specified domain. For more information, see <a href="http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-cognito-auth.html" target="_blank">Amazon Cognito Authentication for Kibana</a>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CognitoOptions</b>: The <code>CognitoOptions</code> for the specified domain. For more information, see <a href="http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-cognito-auth.html" target="_blank">Amazon Cognito Authentication for Kibana</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VPCOptions</i> The <code>VPCOptions</code> for the specified domain. For more information, see <a href="http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-vpc.html" target="_blank">VPC Endpoints for Amazon Elasticsearch Service Domains</a>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>VPCOptions</b>: The <code>VPCOptions</code> for the specified domain. For more information, see <a href="http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-vpc.html" target="_blank">VPC Endpoints for Amazon Elasticsearch Service Domains</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotOptions</i> Specifies the status of the <code>SnapshotOptions</code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SnapshotOptions</b>: Specifies the status of the <code>SnapshotOptions</code><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccessPolicies</i>  IAM access policy as a JSON-formatted string.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EBSOptions</i> The <code>EBSOptions</code> for the specified domain. See <a href="http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-createupdatedomains.html#es-createdomain-configure-ebs" target="_blank">Configuring EBS-based Storage</a> for more information.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EBSOptions</b>: The <code>EBSOptions</code> for the specified domain. See <a href="http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-createupdatedomains.html#es-createdomain-configure-ebs" target="_blank">Configuring EBS-based Storage</a> for more information.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ElasticsearchClusterConfig</i> The type and number of instances in the domain cluster.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ElasticsearchClusterConfig</b>: The type and number of instances in the domain cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ElasticsearchVersion</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UpgradeProcessing</i> The status of an Elasticsearch domain version upgrade. <code>True</code> if Amazon Elasticsearch Service is undergoing a version upgrade. <code>False</code> if the configuration is active.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Processing</i> The status of the Elasticsearch domain configuration. <code>True</code> if Amazon Elasticsearch Service is processing configuration changes. <code>False</code> if the configuration is active.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoints</i> Map containing the Elasticsearch domain endpoints used to submit index and search requests. Example <code>key, value</code>: <code>'vpc','vpc-endpoint-h2dsd34efgyghrtguk5gt6j2foh4.us-east-1.es.amazonaws.com'</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i> The Elasticsearch domain endpoint that you use to submit index and search requests.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Deleted</i> The domain deletion status. <code>True</code> if a delete request has been received for the domain but resource cleanup is still in progress. <code>False</code> if the domain has not been deleted. Once domain deletion is complete, the status of the domain is no longer returned.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Created</i> The domain creation status. <code>True</code> if the creation of an Elasticsearch domain is complete. <code>False</code> if domain creation is still in progress.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ARN</i> The Amazon resource name (ARN) of an Elasticsearch domain. See <a href="http://docs.aws.amazon.com/IAM/latest/UserGuide/index.html?Using_Identifiers.html" target="_blank">Identifiers for IAM Entities</a> in <i>Using AWS Identity and Access Management</i> for more information.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainName</i> The name of an Elasticsearch domain. Domain names are unique across the domains owned by an account within an AWS region. Domain names start with a letter or number and can contain the following characters: a-z (lowercase), 0-9, and - (hyphen).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainId</i> The unique identifier for the specified Elasticsearch domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ZoneAwarenessEnabled</i> A boolean value to indicate whether zone awareness is enabled. See <a href="http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-managedomains.html#es-managedomains-zoneawareness" target="_blank">About Zone Awareness</a> for more information.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DedicatedMasterEnabled</i> A boolean value to indicate whether a dedicated master node is enabled. See <a href="http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-managedomains.html#es-managedomains-dedicatedmasternodes" target="_blank">About Dedicated Master Nodes</a> for more information.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceCount</i> The number of instances in the specified domain cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceType</i> The instance type for an Elasticsearch cluster. UltraWarm instance types are not supported for data instances.<br/>Specifies the zone awareness configuration for a domain when zone awareness is enabled.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ZoneAwarenessConfig</b>: Specifies the zone awareness configuration for a domain when zone awareness is enabled.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Iops</i> Specifies the IOPD for a Provisioned IOPS EBS volume (SSD).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VolumeSize</i>  Integer to specify the size of an EBS volume.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VolumeType</i>  Specifies the volume type for EBS-based storage.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EBSEnabled</i> Specifies whether EBS-based storage is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomatedSnapshotStartHour</i> Specifies the time, in UTC format, when the service takes a daily automated snapshot of the specified Elasticsearch domain. Default value is <code>0</code> hours.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> Specifies the security groups for VPC endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZones</i> The availability zones for the Elasticsearch domain. Exists only if the domain was created with VPCOptions.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetIds</i> Specifies the subnets for VPC endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VPCId</i> The VPC Id for the Elasticsearch domain. Exists only if the domain was created with VPCOptions.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> Specifies the role ARN that provides Elasticsearch permissions for accessing Cognito resources.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IdentityPoolId</i> Specifies the Cognito identity pool ID for Kibana authentication.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UserPoolId</i> Specifies the Cognito user pool ID for Kibana authentication.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specifies the option to enable Cognito for Kibana authentication.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i>  Specifies the KMS Key ID for Encryption At Rest options.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specifies the option to enable Encryption At Rest.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specify true to enable node-to-node encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OptionalDeployment</i> <code>True</code> if a service software is never automatically updated. <code>False</code> if a service software is automatically updated after <code>AutomatedUpdateDate</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomatedUpdateDate</i> Timestamp, in Epoch time, until which you can manually request a service software update. After this date, we automatically update your service software.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the <code>UpdateStatus</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdateStatus</i> The status of your service software update. This field can take the following values: <code>ELIGIBLE</code>, <code>PENDING_UPDATE</code>, <code>IN_PROGRESS</code>, <code>COMPLETED</code>, and <code>NOT_ELIGIBLE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Cancellable</i> <code>True</code> if you are able to cancel your service software version update. <code>False</code> if you are not able to cancel your service software version. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdateAvailable</i> <code>True</code> if you are able to update you service software version. <code>False</code> if you are not able to update your service software version. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NewVersion</i> The new service software version if one is available.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CurrentVersion</i> The current service software version that is present on the domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomEndpointCertificateArn</i> Specify ACM certificate ARN for your custom endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomEndpoint</i> Specify the fully qualified domain for your custom endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomEndpointEnabled</i> Specify if custom endpoint should be enabled for the Elasticsearch domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TLSSecurityPolicy</i> Specify the TLS security policy that needs to be applied to the HTTPS endpoint of Elasticsearch domain. <br/> It can be one of the following values: <ul> <li><b>Policy-Min-TLS-1-0-2019-07: </b> TLS security policy which supports TLSv1.0 and higher.</li> <li><b>Policy-Min-TLS-1-2-2019-07: </b> TLS security policy which supports only TLSv1.2</li> </ul> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EnforceHTTPS</i> Specify if only HTTPS endpoint should be enabled for the Elasticsearch domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InternalUserDatabaseEnabled</i> True if the internal user database is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> True if advanced security is enabled.<br/>Describes the SAML application configured for a domain.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SAMLOptions</b>: Describes the SAML application configured for a domain.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorMessage</i> Specifies the error message while enabling or disabling the Auto-Tune.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> Specifies the <code>AutoTuneState</code> for the Elasticsearch domain.<br/>        """
        pass

    def delete_elasticsearch_service_role(self):
        r"""Deletes the service-linked role that Elasticsearch Service uses to manage and maintain VPC domains. Role deletion will fail if any existing VPC domains use the role. You must delete any such Elasticsearch domains before deleting the role. See <a href="http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-vpc.html#es-enabling-slr" target="_blank">Deleting Elasticsearch Service Role</a> in <i>VPC Endpoints for Amazon Elasticsearch Service Domains</i>.

        :param self:
        :param 
        :return:         """
        pass

    def delete_inbound_cross_cluster_search_connection(self, CrossClusterSearchConnectionId: str) -> DeleteInboundCrossClusterSearchConnectionResponse:
        r"""Allows the destination domain owner to delete an existing inbound cross-cluster search connection.

        :param self:
        :param CrossClusterSearchConnectionId:  The id of the inbound connection that you want to permanently delete.<br/>
        :return: CrossClusterSearchConnection:  Specifies the <code><a>InboundCrossClusterSearchConnection</a></code> of deleted inbound connection. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConnectionStatus</i> Specifies the <code><a>InboundCrossClusterSearchConnectionStatus</a></code> for the outbound connection.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ConnectionStatus</b>: Specifies the <code><a>InboundCrossClusterSearchConnectionStatus</a></code> for the outbound connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CrossClusterSearchConnectionId</i> Specifies the connection id for the inbound cross-cluster search connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DestinationDomainInfo</i> Specifies the <code><a>DomainInformation</a></code> for the destination Elasticsearch domain.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DestinationDomainInfo</b>: Specifies the <code><a>DomainInformation</a></code> for the destination Elasticsearch domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceDomainInfo</i> Specifies the <code><a>DomainInformation</a></code> for the source Elasticsearch domain.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SourceDomainInfo</b>: Specifies the <code><a>DomainInformation</a></code> for the source Elasticsearch domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Region</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainName</i> The name of an Elasticsearch domain. Domain names are unique across the domains owned by an account within an AWS region. Domain names start with a letter or number and can contain the following characters: a-z (lowercase), 0-9, and - (hyphen).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Region</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainName</i> The name of an Elasticsearch domain. Domain names are unique across the domains owned by an account within an AWS region. Domain names start with a letter or number and can contain the following characters: a-z (lowercase), 0-9, and - (hyphen).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> Specifies verbose information for the inbound connection status.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusCode</i> The state code for inbound connection. This can be one of the following: <ul> <li>PENDING_ACCEPTANCE: Inbound connection is not yet accepted by destination domain owner.</li> <li>APPROVED: Inbound connection is pending acceptance by destination domain owner.</li> <li>REJECTING: Inbound connection rejection is in process.</li> <li>REJECTED: Inbound connection is rejected.</li> <li>DELETING: Inbound connection deletion is in progress.</li> <li>DELETED: Inbound connection is deleted and cannot be used further.</li> </ul><br/>        """
        pass

    def delete_outbound_cross_cluster_search_connection(self, CrossClusterSearchConnectionId: str) -> DeleteOutboundCrossClusterSearchConnectionResponse:
        r"""Allows the source domain owner to delete an existing outbound cross-cluster search connection.

        :param self:
        :param CrossClusterSearchConnectionId:  The id of the outbound connection that you want to permanently delete.<br/>
        :return: CrossClusterSearchConnection:  Specifies the <code><a>OutboundCrossClusterSearchConnection</a></code> of deleted outbound connection. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConnectionStatus</i> Specifies the <code><a>OutboundCrossClusterSearchConnectionStatus</a></code> for the outbound connection.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ConnectionStatus</b>: Specifies the <code><a>OutboundCrossClusterSearchConnectionStatus</a></code> for the outbound connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConnectionAlias</i> Specifies the connection alias for the outbound cross-cluster search connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CrossClusterSearchConnectionId</i> Specifies the connection id for the outbound cross-cluster search connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DestinationDomainInfo</i> Specifies the <code><a>DomainInformation</a></code> for the destination Elasticsearch domain.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DestinationDomainInfo</b>: Specifies the <code><a>DomainInformation</a></code> for the destination Elasticsearch domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceDomainInfo</i> Specifies the <code><a>DomainInformation</a></code> for the source Elasticsearch domain.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SourceDomainInfo</b>: Specifies the <code><a>DomainInformation</a></code> for the source Elasticsearch domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Region</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainName</i> The name of an Elasticsearch domain. Domain names are unique across the domains owned by an account within an AWS region. Domain names start with a letter or number and can contain the following characters: a-z (lowercase), 0-9, and - (hyphen).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Region</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainName</i> The name of an Elasticsearch domain. Domain names are unique across the domains owned by an account within an AWS region. Domain names start with a letter or number and can contain the following characters: a-z (lowercase), 0-9, and - (hyphen).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> Specifies verbose information for the outbound connection status.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusCode</i> The state code for outbound connection. This can be one of the following: <ul> <li>VALIDATING: The outbound connection request is being validated.</li> <li>VALIDATION_FAILED: Validation failed for the connection request.</li> <li>PENDING_ACCEPTANCE: Outbound connection request is validated and is not yet accepted by destination domain owner.</li> <li>PROVISIONING: Outbound connection request is in process.</li> <li>ACTIVE: Outbound connection is active and ready to use.</li> <li>REJECTED: Outbound connection request is rejected by destination domain owner.</li> <li>DELETING: Outbound connection deletion is in progress.</li> <li>DELETED: Outbound connection is deleted and cannot be used further.</li> </ul><br/>        """
        pass

    def delete_package(self, PackageID: str) -> DeletePackageResponse:
        r"""Delete the package.

        :param self:
        :param PackageID:  Internal ID of the package that you want to delete. Use <code>DescribePackages</code> to find this value.<br/>
        :return: PackageDetails:  <code>PackageDetails</code>:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorDetails</i> Additional information if the package is in an error state. Null otherwise.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ErrorDetails</b>: Additional information if the package is in an error state. Null otherwise.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailablePackageVersion</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdatedAt</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedAt</i> Timestamp which tells creation date of the package.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PackageStatus</i> Current state of the package. Values are COPYING/COPY_FAILED/AVAILABLE/DELETING/DELETE_FAILED<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PackageDescription</i> User-specified description of the package.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PackageType</i> Currently supports only TXT-DICTIONARY.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PackageName</i> User specified name of the package.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PackageID</i> Internal ID of the package.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorMessage</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorType</i> <br/>        """
        pass

    def describe_domain_auto_tunes(self, DomainName: str, MaxResults: int=None, NextToken: str=None) -> DescribeDomainAutoTunesResponse:
        r"""Provides scheduled Auto-Tune action details for the Elasticsearch domain, such as Auto-Tune action type, description, severity, and scheduled date.

        :param self:
        :param NextToken:  NextToken is sent in case the earlier API call results contain the NextToken. It is used for pagination.<br/>MaxResults:  Set this value to limit the number of results returned. If not specified, defaults to 100.<br/>DomainName:  Specifies the domain name for which you want Auto-Tune action details.<br/>
        :return: NextToken:  Specifies an identifier to allow retrieval of paginated results.<br/>AutoTunes:  Specifies the list of setting adjustments that Auto-Tune has made to the domain. See the <a href="https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/auto-tune.html" target="_blank">Developer Guide</a> for more information.<br/>        """
        pass

    def describe_elasticsearch_domain(self, DomainName: str) -> DescribeElasticsearchDomainResponse:
        r"""Returns domain configuration information about the specified Elasticsearch domain, including the domain ID, domain endpoint, and domain ARN.

        :param self:
        :param DomainName:  The name of the Elasticsearch domain for which you want information.<br/>
        :return: DomainStatus:  The current status of the Elasticsearch domain.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoTuneOptions</i> The current status of the Elasticsearch domain's Auto-Tune options.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AutoTuneOptions</b>: The current status of the Elasticsearch domain's Auto-Tune options.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdvancedSecurityOptions</i> The current status of the Elasticsearch domain's advanced security options.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AdvancedSecurityOptions</b>: The current status of the Elasticsearch domain's advanced security options.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainEndpointOptions</i> The current status of the Elasticsearch domain's endpoint options.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DomainEndpointOptions</b>: The current status of the Elasticsearch domain's endpoint options.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceSoftwareOptions</i> The current status of the Elasticsearch domain's service software.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ServiceSoftwareOptions</b>: The current status of the Elasticsearch domain's service software.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogPublishingOptions</i> Log publishing options for the given domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdvancedOptions</i> Specifies the status of the <code>AdvancedOptions</code><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NodeToNodeEncryptionOptions</i> Specifies the status of the <code>NodeToNodeEncryptionOptions</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>NodeToNodeEncryptionOptions</b>: Specifies the status of the <code>NodeToNodeEncryptionOptions</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EncryptionAtRestOptions</i>  Specifies the status of the <code>EncryptionAtRestOptions</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EncryptionAtRestOptions</b>:  Specifies the status of the <code>EncryptionAtRestOptions</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CognitoOptions</i> The <code>CognitoOptions</code> for the specified domain. For more information, see <a href="http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-cognito-auth.html" target="_blank">Amazon Cognito Authentication for Kibana</a>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CognitoOptions</b>: The <code>CognitoOptions</code> for the specified domain. For more information, see <a href="http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-cognito-auth.html" target="_blank">Amazon Cognito Authentication for Kibana</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VPCOptions</i> The <code>VPCOptions</code> for the specified domain. For more information, see <a href="http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-vpc.html" target="_blank">VPC Endpoints for Amazon Elasticsearch Service Domains</a>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>VPCOptions</b>: The <code>VPCOptions</code> for the specified domain. For more information, see <a href="http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-vpc.html" target="_blank">VPC Endpoints for Amazon Elasticsearch Service Domains</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotOptions</i> Specifies the status of the <code>SnapshotOptions</code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SnapshotOptions</b>: Specifies the status of the <code>SnapshotOptions</code><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccessPolicies</i>  IAM access policy as a JSON-formatted string.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EBSOptions</i> The <code>EBSOptions</code> for the specified domain. See <a href="http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-createupdatedomains.html#es-createdomain-configure-ebs" target="_blank">Configuring EBS-based Storage</a> for more information.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EBSOptions</b>: The <code>EBSOptions</code> for the specified domain. See <a href="http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-createupdatedomains.html#es-createdomain-configure-ebs" target="_blank">Configuring EBS-based Storage</a> for more information.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ElasticsearchClusterConfig</i> The type and number of instances in the domain cluster.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ElasticsearchClusterConfig</b>: The type and number of instances in the domain cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ElasticsearchVersion</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UpgradeProcessing</i> The status of an Elasticsearch domain version upgrade. <code>True</code> if Amazon Elasticsearch Service is undergoing a version upgrade. <code>False</code> if the configuration is active.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Processing</i> The status of the Elasticsearch domain configuration. <code>True</code> if Amazon Elasticsearch Service is processing configuration changes. <code>False</code> if the configuration is active.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoints</i> Map containing the Elasticsearch domain endpoints used to submit index and search requests. Example <code>key, value</code>: <code>'vpc','vpc-endpoint-h2dsd34efgyghrtguk5gt6j2foh4.us-east-1.es.amazonaws.com'</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i> The Elasticsearch domain endpoint that you use to submit index and search requests.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Deleted</i> The domain deletion status. <code>True</code> if a delete request has been received for the domain but resource cleanup is still in progress. <code>False</code> if the domain has not been deleted. Once domain deletion is complete, the status of the domain is no longer returned.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Created</i> The domain creation status. <code>True</code> if the creation of an Elasticsearch domain is complete. <code>False</code> if domain creation is still in progress.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ARN</i> The Amazon resource name (ARN) of an Elasticsearch domain. See <a href="http://docs.aws.amazon.com/IAM/latest/UserGuide/index.html?Using_Identifiers.html" target="_blank">Identifiers for IAM Entities</a> in <i>Using AWS Identity and Access Management</i> for more information.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainName</i> The name of an Elasticsearch domain. Domain names are unique across the domains owned by an account within an AWS region. Domain names start with a letter or number and can contain the following characters: a-z (lowercase), 0-9, and - (hyphen).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainId</i> The unique identifier for the specified Elasticsearch domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ZoneAwarenessEnabled</i> A boolean value to indicate whether zone awareness is enabled. See <a href="http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-managedomains.html#es-managedomains-zoneawareness" target="_blank">About Zone Awareness</a> for more information.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DedicatedMasterEnabled</i> A boolean value to indicate whether a dedicated master node is enabled. See <a href="http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-managedomains.html#es-managedomains-dedicatedmasternodes" target="_blank">About Dedicated Master Nodes</a> for more information.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceCount</i> The number of instances in the specified domain cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceType</i> The instance type for an Elasticsearch cluster. UltraWarm instance types are not supported for data instances.<br/>Specifies the zone awareness configuration for a domain when zone awareness is enabled.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ZoneAwarenessConfig</b>: Specifies the zone awareness configuration for a domain when zone awareness is enabled.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Iops</i> Specifies the IOPD for a Provisioned IOPS EBS volume (SSD).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VolumeSize</i>  Integer to specify the size of an EBS volume.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VolumeType</i>  Specifies the volume type for EBS-based storage.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EBSEnabled</i> Specifies whether EBS-based storage is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomatedSnapshotStartHour</i> Specifies the time, in UTC format, when the service takes a daily automated snapshot of the specified Elasticsearch domain. Default value is <code>0</code> hours.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> Specifies the security groups for VPC endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZones</i> The availability zones for the Elasticsearch domain. Exists only if the domain was created with VPCOptions.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetIds</i> Specifies the subnets for VPC endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VPCId</i> The VPC Id for the Elasticsearch domain. Exists only if the domain was created with VPCOptions.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> Specifies the role ARN that provides Elasticsearch permissions for accessing Cognito resources.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IdentityPoolId</i> Specifies the Cognito identity pool ID for Kibana authentication.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UserPoolId</i> Specifies the Cognito user pool ID for Kibana authentication.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specifies the option to enable Cognito for Kibana authentication.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i>  Specifies the KMS Key ID for Encryption At Rest options.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specifies the option to enable Encryption At Rest.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specify true to enable node-to-node encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OptionalDeployment</i> <code>True</code> if a service software is never automatically updated. <code>False</code> if a service software is automatically updated after <code>AutomatedUpdateDate</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomatedUpdateDate</i> Timestamp, in Epoch time, until which you can manually request a service software update. After this date, we automatically update your service software.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the <code>UpdateStatus</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdateStatus</i> The status of your service software update. This field can take the following values: <code>ELIGIBLE</code>, <code>PENDING_UPDATE</code>, <code>IN_PROGRESS</code>, <code>COMPLETED</code>, and <code>NOT_ELIGIBLE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Cancellable</i> <code>True</code> if you are able to cancel your service software version update. <code>False</code> if you are not able to cancel your service software version. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdateAvailable</i> <code>True</code> if you are able to update you service software version. <code>False</code> if you are not able to update your service software version. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NewVersion</i> The new service software version if one is available.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CurrentVersion</i> The current service software version that is present on the domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomEndpointCertificateArn</i> Specify ACM certificate ARN for your custom endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomEndpoint</i> Specify the fully qualified domain for your custom endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomEndpointEnabled</i> Specify if custom endpoint should be enabled for the Elasticsearch domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TLSSecurityPolicy</i> Specify the TLS security policy that needs to be applied to the HTTPS endpoint of Elasticsearch domain. <br/> It can be one of the following values: <ul> <li><b>Policy-Min-TLS-1-0-2019-07: </b> TLS security policy which supports TLSv1.0 and higher.</li> <li><b>Policy-Min-TLS-1-2-2019-07: </b> TLS security policy which supports only TLSv1.2</li> </ul> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EnforceHTTPS</i> Specify if only HTTPS endpoint should be enabled for the Elasticsearch domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InternalUserDatabaseEnabled</i> True if the internal user database is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> True if advanced security is enabled.<br/>Describes the SAML application configured for a domain.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SAMLOptions</b>: Describes the SAML application configured for a domain.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorMessage</i> Specifies the error message while enabling or disabling the Auto-Tune.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> Specifies the <code>AutoTuneState</code> for the Elasticsearch domain.<br/>        """
        pass

    def describe_elasticsearch_domain_config(self, DomainName: str) -> DescribeElasticsearchDomainConfigResponse:
        r"""Provides cluster configuration information about the specified Elasticsearch domain, such as the state, creation date, update version, and update date for cluster options.

        :param self:
        :param DomainName:  The Elasticsearch domain that you want to get information about.<br/>
        :return: DomainConfig:  The configuration information of the domain requested in the <code>DescribeElasticsearchDomainConfig</code> request.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoTuneOptions</i> Specifies <code>AutoTuneOptions</code> for the domain. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AutoTuneOptions</b>: Specifies <code>AutoTuneOptions</code> for the domain. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdvancedSecurityOptions</i> Specifies <code>AdvancedSecurityOptions</code> for the domain. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AdvancedSecurityOptions</b>: Specifies <code>AdvancedSecurityOptions</code> for the domain. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainEndpointOptions</i> Specifies the <code>DomainEndpointOptions</code> for the Elasticsearch domain.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DomainEndpointOptions</b>: Specifies the <code>DomainEndpointOptions</code> for the Elasticsearch domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogPublishingOptions</i> Log publishing options for the given domain.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>LogPublishingOptions</b>: Log publishing options for the given domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdvancedOptions</i> Specifies the <code>AdvancedOptions</code> for the domain. See <a href="http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-createupdatedomains.html#es-createdomain-configure-advanced-options" target="_blank">Configuring Advanced Options</a> for more information.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AdvancedOptions</b>: Specifies the <code>AdvancedOptions</code> for the domain. See <a href="http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-createupdatedomains.html#es-createdomain-configure-advanced-options" target="_blank">Configuring Advanced Options</a> for more information.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NodeToNodeEncryptionOptions</i> Specifies the <code>NodeToNodeEncryptionOptions</code> for the Elasticsearch domain.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>NodeToNodeEncryptionOptions</b>: Specifies the <code>NodeToNodeEncryptionOptions</code> for the Elasticsearch domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EncryptionAtRestOptions</i> Specifies the <code>EncryptionAtRestOptions</code> for the Elasticsearch domain.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EncryptionAtRestOptions</b>: Specifies the <code>EncryptionAtRestOptions</code> for the Elasticsearch domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CognitoOptions</i> The <code>CognitoOptions</code> for the specified domain. For more information, see <a href="http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-cognito-auth.html" target="_blank">Amazon Cognito Authentication for Kibana</a>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CognitoOptions</b>: The <code>CognitoOptions</code> for the specified domain. For more information, see <a href="http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-cognito-auth.html" target="_blank">Amazon Cognito Authentication for Kibana</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VPCOptions</i> The <code>VPCOptions</code> for the specified domain. For more information, see <a href="http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-vpc.html" target="_blank">VPC Endpoints for Amazon Elasticsearch Service Domains</a>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>VPCOptions</b>: The <code>VPCOptions</code> for the specified domain. For more information, see <a href="http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-vpc.html" target="_blank">VPC Endpoints for Amazon Elasticsearch Service Domains</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotOptions</i> Specifies the <code>SnapshotOptions</code> for the Elasticsearch domain.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SnapshotOptions</b>: Specifies the <code>SnapshotOptions</code> for the Elasticsearch domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccessPolicies</i> IAM access policy as a JSON-formatted string.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AccessPolicies</b>: IAM access policy as a JSON-formatted string.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EBSOptions</i> Specifies the <code>EBSOptions</code> for the Elasticsearch domain.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EBSOptions</b>: Specifies the <code>EBSOptions</code> for the Elasticsearch domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ElasticsearchClusterConfig</i> Specifies the <code>ElasticsearchClusterConfig</code> for the Elasticsearch domain.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ElasticsearchClusterConfig</b>: Specifies the <code>ElasticsearchClusterConfig</code> for the Elasticsearch domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ElasticsearchVersion</i> String of format X.Y to specify version for the Elasticsearch domain.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ElasticsearchVersion</b>: String of format X.Y to specify version for the Elasticsearch domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Options</i>  Specifies the Elasticsearch version for the specified Elasticsearch domain.<br/> Specifies the status of the Elasticsearch version options for the specified Elasticsearch domain.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Status</b>:  Specifies the status of the Elasticsearch version options for the specified Elasticsearch domain. Specifies the cluster configuration for the specified Elasticsearch domain.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Options</b>:  Specifies the cluster configuration for the specified Elasticsearch domain. Specifies the EBS options for the specified Elasticsearch domain.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Options</b>:  Specifies the EBS options for the specified Elasticsearch domain.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Options</i> The access policy configured for the Elasticsearch domain. Access policies may be resource-based, IP-based, or IAM-based. See <a href="http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-createupdatedomains.html#es-createdomain-configure-access-policies" target="_blank"> Configuring Access Policies</a>for more information.<br/>The status of the access policy for the Elasticsearch domain. See <code>OptionStatus</code> for the status information that's included. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Status</b>: The status of the access policy for the Elasticsearch domain. See <code>OptionStatus</code> for the status information that's included. Specifies the daily snapshot options specified for the Elasticsearch domain.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Options</b>: Specifies the daily snapshot options specified for the Elasticsearch domain. Specifies the VPC options for the specified Elasticsearch domain.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Options</b>:  Specifies the VPC options for the specified Elasticsearch domain.Specifies the Cognito options for the specified Elasticsearch domain.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Options</b>: Specifies the Cognito options for the specified Elasticsearch domain. Specifies the Encryption At Rest options for the specified Elasticsearch domain.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Options</b>:  Specifies the Encryption At Rest options for the specified Elasticsearch domain.Specifies the node-to-node encryption options for the specified Elasticsearch domain.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Options</b>: Specifies the node-to-node encryption options for the specified Elasticsearch domain.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Options</i>  Specifies the status of advanced options for the specified Elasticsearch domain.<br/> Specifies the status of <code>OptionStatus</code> for advanced options for the specified Elasticsearch domain.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Status</b>:  Specifies the status of <code>OptionStatus</code> for advanced options for the specified Elasticsearch domain.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Options</i> The log publishing options configured for the Elasticsearch domain.<br/>The status of the log publishing options for the Elasticsearch domain. See <code>OptionStatus</code> for the status information that's included. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Status</b>: The status of the log publishing options for the Elasticsearch domain. See <code>OptionStatus</code> for the status information that's included. Options to configure endpoint for the Elasticsearch domain.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Options</b>: Options to configure endpoint for the Elasticsearch domain. Specifies advanced security options for the specified Elasticsearch domain.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Options</b>:  Specifies advanced security options for the specified Elasticsearch domain. Specifies Auto-Tune options for the specified Elasticsearch domain.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Options</b>:  Specifies Auto-Tune options for the specified Elasticsearch domain.        """
        pass

    def describe_elasticsearch_domains(self, DomainNames: List[DomainName]) -> DescribeElasticsearchDomainsResponse:
        r"""Returns domain configuration information about the specified Elasticsearch domains, including the domain ID, domain endpoint, and domain ARN.

        :param self:
        :param DomainNames:  The Elasticsearch domains for which you want information.<br/>
        :return: DomainStatusList:  The status of the domains requested in the <code>DescribeElasticsearchDomains</code> request.<br/>        """
        pass

    def describe_elasticsearch_instance_type_limits(self, ElasticsearchVersion: str, InstanceType: str, DomainName: str=None) -> DescribeElasticsearchInstanceTypeLimitsResponse:
        r""" Describe Elasticsearch Limits for a given InstanceType and ElasticsearchVersion. When modifying existing Domain, specify the <code> <a>DomainName</a> </code> to know what Limits are supported for modifying. 

        :param self:
        :param ElasticsearchVersion:   Version of Elasticsearch for which <code> <a>Limits</a> </code> are needed. <br/>InstanceType:   The instance type for an Elasticsearch cluster for which Elasticsearch <code> <a>Limits</a> </code> are needed. <br/>DomainName:   DomainName represents the name of the Domain that we are trying to modify. This should be present only if we are querying for Elasticsearch <code> <a>Limits</a> </code> for existing domain. <br/>
        :return: LimitsByRole:   Map of Role of the Instance and Limits that are applicable. Role performed by given Instance in Elasticsearch can be one of the following: <ul> <li>data: If the given InstanceType is used as data node</li> <li>master: If the given InstanceType is used as master node</li> <li>ultra_warm: If the given InstanceType is used as warm node</li> </ul> <br/>        """
        pass

    def describe_inbound_cross_cluster_search_connections(self, Filters: List[Filter]=None, MaxResults: int=None, NextToken: str=None) -> DescribeInboundCrossClusterSearchConnectionsResponse:
        r"""Lists all the inbound cross-cluster search connections for a destination domain.

        :param self:
        :param NextToken:   NextToken is sent in case the earlier API call results contain the NextToken. It is used for pagination.<br/>MaxResults:  Set this value to limit the number of results returned. If not specified, defaults to 100.<br/>Filters:   A list of filters used to match properties for inbound cross-cluster search connection. Available <code><a>Filter</a></code> names for this operation are: <ul> <li>cross-cluster-search-connection-id</li> <li>source-domain-info.domain-name</li> <li>source-domain-info.owner-id</li> <li>source-domain-info.region</li> <li>destination-domain-info.domain-name</li> </ul> <br/>
        :return: NextToken:  If more results are available and NextToken is present, make the next request to the same API with the received NextToken to paginate the remaining results. <br/>CrossClusterSearchConnections:  Consists of list of <code><a>InboundCrossClusterSearchConnection</a></code> matching the specified filter criteria.<br/>        """
        pass

    def describe_outbound_cross_cluster_search_connections(self, Filters: List[Filter]=None, MaxResults: int=None, NextToken: str=None) -> DescribeOutboundCrossClusterSearchConnectionsResponse:
        r"""Lists all the outbound cross-cluster search connections for a source domain.

        :param self:
        :param NextToken:   NextToken is sent in case the earlier API call results contain the NextToken. It is used for pagination.<br/>MaxResults:  Set this value to limit the number of results returned. If not specified, defaults to 100.<br/>Filters:   A list of filters used to match properties for outbound cross-cluster search connection. Available <code><a>Filter</a></code> names for this operation are: <ul> <li>cross-cluster-search-connection-id</li> <li>destination-domain-info.domain-name</li> <li>destination-domain-info.owner-id</li> <li>destination-domain-info.region</li> <li>source-domain-info.domain-name</li> </ul> <br/>
        :return: NextToken:  If more results are available and NextToken is present, make the next request to the same API with the received NextToken to paginate the remaining results. <br/>CrossClusterSearchConnections:  Consists of list of <code><a>OutboundCrossClusterSearchConnection</a></code> matching the specified filter criteria.<br/>        """
        pass

    def describe_packages(self, Filters: List[DescribePackagesFilter]=None, MaxResults: int=None, NextToken: str=None) -> DescribePackagesResponse:
        r"""Describes all packages available to Amazon ES. Includes options for filtering, limiting the number of results, and pagination.

        :param self:
        :param NextToken:  Used for pagination. Only necessary if a previous API call includes a non-null NextToken value. If provided, returns results for the next page.<br/>MaxResults:  Limits results to a maximum number of packages.<br/>Filters:  Only returns packages that match the <code>DescribePackagesFilterList</code> values.<br/>
        :return: NextToken:  <br/>PackageDetailsList:  List of <code>PackageDetails</code> objects.<br/>        """
        pass

    def describe_reserved_elasticsearch_instance_offerings(self, ReservedElasticsearchInstanceOfferingId: str=None, MaxResults: int=None, NextToken: str=None) -> DescribeReservedElasticsearchInstanceOfferingsResponse:
        r"""Lists available reserved Elasticsearch instance offerings.

        :param self:
        :param NextToken:  NextToken should be sent in case if earlier API call produced result containing NextToken. It is used for pagination.<br/>MaxResults:  Set this value to limit the number of results returned. If not specified, defaults to 100.<br/>ReservedElasticsearchInstanceOfferingId:  The offering identifier filter value. Use this parameter to show only the available offering that matches the specified reservation identifier.<br/>
        :return: ReservedElasticsearchInstanceOfferings:  List of reserved Elasticsearch instance offerings<br/>NextToken:  Provides an identifier to allow retrieval of paginated results.<br/>        """
        pass

    def describe_reserved_elasticsearch_instances(self, ReservedElasticsearchInstanceId: str=None, MaxResults: int=None, NextToken: str=None) -> DescribeReservedElasticsearchInstancesResponse:
        r"""Returns information about reserved Elasticsearch instances for this account.

        :param self:
        :param NextToken:  NextToken should be sent in case if earlier API call produced result containing NextToken. It is used for pagination.<br/>MaxResults:  Set this value to limit the number of results returned. If not specified, defaults to 100.<br/>ReservedElasticsearchInstanceId:  The reserved instance identifier filter value. Use this parameter to show only the reservation that matches the specified reserved Elasticsearch instance ID.<br/>
        :return: ReservedElasticsearchInstances:  List of reserved Elasticsearch instances.<br/>NextToken:  Provides an identifier to allow retrieval of paginated results.<br/>        """
        pass

    def dissociate_package(self, DomainName: str, PackageID: str) -> DissociatePackageResponse:
        r"""Dissociates a package from the Amazon ES domain.

        :param self:
        :param DomainName:  Name of the domain that you want to associate the package with.<br/>PackageID:  Internal ID of the package that you want to associate with a domain. Use <code>DescribePackages</code> to find this value.<br/>
        :return: DomainPackageDetails:  <code>DomainPackageDetails</code>:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorDetails</i> Additional information if the package is in an error state. Null otherwise.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ErrorDetails</b>: Additional information if the package is in an error state. Null otherwise.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReferencePath</i> The relative path on Amazon ES nodes, which can be used as synonym_path when the package is synonym file.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PackageVersion</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainPackageStatus</i> State of the association. Values are ASSOCIATING/ASSOCIATION_FAILED/ACTIVE/DISSOCIATING/DISSOCIATION_FAILED.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainName</i> Name of the domain you've associated a package with.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdated</i> Timestamp of the most-recent update to the association status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PackageType</i> Currently supports only TXT-DICTIONARY.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PackageName</i> User specified name of the package.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PackageID</i> Internal ID of the package.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorMessage</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorType</i> <br/>        """
        pass

    def get_compatible_elasticsearch_versions(self, DomainName: str=None) -> GetCompatibleElasticsearchVersionsResponse:
        r""" Returns a list of upgrade compatible Elastisearch versions. You can optionally pass a <code> <a>DomainName</a> </code> to get all upgrade compatible Elasticsearch versions for that specific domain. 

        :param self:
        :param DomainName:  The name of an Elasticsearch domain. Domain names are unique across the domains owned by an account within an AWS region. Domain names start with a letter or number and can contain the following characters: a-z (lowercase), 0-9, and - (hyphen).<br/>
        :return: CompatibleElasticsearchVersions:   A map of compatible Elasticsearch versions returned as part of the <code> <a>GetCompatibleElasticsearchVersions</a> </code> operation. <br/>        """
        pass

    def get_package_version_history(self, PackageID: str, MaxResults: int=None, NextToken: str=None) -> GetPackageVersionHistoryResponse:
        r"""Returns a list of versions of the package, along with their creation time and commit message.

        :param self:
        :param NextToken:  Used for pagination. Only necessary if a previous API call includes a non-null NextToken value. If provided, returns results for the next page.<br/>MaxResults:  Limits results to a maximum number of versions.<br/>PackageID:  Returns an audit history of versions of the package.<br/>
        :return: NextToken:  <br/>PackageVersionHistoryList:  List of <code>PackageVersionHistory</code> objects.<br/>PackageID:  <br/>        """
        pass

    def get_upgrade_history(self, DomainName: str, MaxResults: int=None, NextToken: str=None) -> GetUpgradeHistoryResponse:
        r"""Retrieves the complete history of the last 10 upgrades that were performed on the domain.

        :param self:
        :param NextToken:   Paginated APIs accepts NextToken input to returns next page results and provides a NextToken output in the response which can be used by the client to retrieve more results. <br/>MaxResults:   Set this value to limit the number of results returned. <br/>DomainName:  The name of an Elasticsearch domain. Domain names are unique across the domains owned by an account within an AWS region. Domain names start with a letter or number and can contain the following characters: a-z (lowercase), 0-9, and - (hyphen).<br/>
        :return: NextToken:  Pagination token that needs to be supplied to the next call to get the next page of results<br/>UpgradeHistories:   A list of <code> <a>UpgradeHistory</a> </code> objects corresponding to each Upgrade or Upgrade Eligibility Check performed on a domain returned as part of <code> <a>GetUpgradeHistoryResponse</a> </code> object. <br/>        """
        pass

    def get_upgrade_status(self, DomainName: str) -> GetUpgradeStatusResponse:
        r"""Retrieves the latest status of the last upgrade or upgrade eligibility check that was performed on the domain.

        :param self:
        :param DomainName:  The name of an Elasticsearch domain. Domain names are unique across the domains owned by an account within an AWS region. Domain names start with a letter or number and can contain the following characters: a-z (lowercase), 0-9, and - (hyphen).<br/>
        :return: UpgradeName:  A string that describes the update briefly<br/>StepStatus:   One of 4 statuses that a step can go through returned as part of the <code> <a>GetUpgradeStatusResponse</a> </code> object. The status can take one of the following values: <ul> <li>In Progress</li> <li>Succeeded</li> <li>Succeeded with Issues</li> <li>Failed</li> </ul> <br/>UpgradeStep:   Represents one of 3 steps that an Upgrade or Upgrade Eligibility Check does through: <ul> <li>PreUpgradeCheck</li> <li>Snapshot</li> <li>Upgrade</li> </ul> <br/>        """
        pass

    def list_domain_names(self) -> ListDomainNamesResponse:
        r"""Returns the name of all Elasticsearch domains owned by the current user's account. 

        :param self:
        :param 
        :return: DomainNames:  List of Elasticsearch domain names.<br/>        """
        pass

    def list_domains_for_package(self, PackageID: str, MaxResults: int=None, NextToken: str=None) -> ListDomainsForPackageResponse:
        r"""Lists all Amazon ES domains associated with the package.

        :param self:
        :param NextToken:  Used for pagination. Only necessary if a previous API call includes a non-null NextToken value. If provided, returns results for the next page.<br/>MaxResults:  Limits results to a maximum number of domains.<br/>PackageID:  The package for which to list domains.<br/>
        :return: NextToken:  <br/>DomainPackageDetailsList:  List of <code>DomainPackageDetails</code> objects.<br/>        """
        pass

    def list_elasticsearch_instance_types(self, ElasticsearchVersion: str, DomainName: str=None, MaxResults: int=None, NextToken: str=None) -> ListElasticsearchInstanceTypesResponse:
        r"""List all Elasticsearch instance types that are supported for given ElasticsearchVersion

        :param self:
        :param NextToken:  NextToken should be sent in case if earlier API call produced result containing NextToken. It is used for pagination. <br/>MaxResults:   Set this value to limit the number of results returned. Value provided must be greater than 30 else it wont be honored. <br/>DomainName:  DomainName represents the name of the Domain that we are trying to modify. This should be present only if we are querying for list of available Elasticsearch instance types when modifying existing domain. <br/>ElasticsearchVersion:  Version of Elasticsearch for which list of supported elasticsearch instance types are needed. <br/>
        :return: NextToken:  In case if there are more results available NextToken would be present, make further request to the same API with received NextToken to paginate remaining results. <br/>ElasticsearchInstanceTypes:   List of instance types supported by Amazon Elasticsearch service for given <code> <a>ElasticsearchVersion</a> </code> <br/>        """
        pass

    def list_elasticsearch_versions(self, MaxResults: int=None, NextToken: str=None) -> ListElasticsearchVersionsResponse:
        r"""List all supported Elasticsearch versions

        :param self:
        :param NextToken:   Paginated APIs accepts NextToken input to returns next page results and provides a NextToken output in the response which can be used by the client to retrieve more results. <br/>MaxResults:   Set this value to limit the number of results returned. Value provided must be greater than 10 else it wont be honored. <br/>
        :return: NextToken:   Paginated APIs accepts NextToken input to returns next page results and provides a NextToken output in the response which can be used by the client to retrieve more results. <br/>ElasticsearchVersions:  List of supported elastic search versions. <br/>        """
        pass

    def list_packages_for_domain(self, DomainName: str, MaxResults: int=None, NextToken: str=None) -> ListPackagesForDomainResponse:
        r"""Lists all packages associated with the Amazon ES domain.

        :param self:
        :param NextToken:  Used for pagination. Only necessary if a previous API call includes a non-null NextToken value. If provided, returns results for the next page.<br/>MaxResults:  Limits results to a maximum number of packages.<br/>DomainName:  The name of the domain for which you want to list associated packages.<br/>
        :return: NextToken:  Pagination token that needs to be supplied to the next call to get the next page of results.<br/>DomainPackageDetailsList:  List of <code>DomainPackageDetails</code> objects.<br/>        """
        pass

    def list_tags(self, ARN: str) -> ListTagsResponse:
        r"""Returns all tags for the given Elasticsearch domain.

        :param self:
        :param ARN:   Specify the <code>ARN</code> for the Elasticsearch domain to which the tags are attached that you want to view.<br/>
        :return: TagList:   List of <code>Tag</code> for the requested Elasticsearch domain.<br/>        """
        pass

    def purchase_reserved_elasticsearch_instance_offering(self, ReservationName: str, ReservedElasticsearchInstanceOfferingId: str, InstanceCount: int=None) -> PurchaseReservedElasticsearchInstanceOfferingResponse:
        r"""Allows you to purchase reserved Elasticsearch instances.

        :param self:
        :param InstanceCount:  The number of Elasticsearch instances to reserve.<br/>ReservationName:  A customer-specified identifier to track this reservation.<br/>ReservedElasticsearchInstanceOfferingId:  The ID of the reserved Elasticsearch instance offering to purchase.<br/>
        :return: ReservationName:  The customer-specified identifier used to track this reservation.<br/>ReservedElasticsearchInstanceId:  Details of the reserved Elasticsearch instance which was purchased.<br/>        """
        pass

    def reject_inbound_cross_cluster_search_connection(self, CrossClusterSearchConnectionId: str) -> RejectInboundCrossClusterSearchConnectionResponse:
        r"""Allows the destination domain owner to reject an inbound cross-cluster search connection request.

        :param self:
        :param CrossClusterSearchConnectionId:  The id of the inbound connection that you want to reject.<br/>
        :return: CrossClusterSearchConnection:  Specifies the <code><a>InboundCrossClusterSearchConnection</a></code> of rejected inbound connection. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConnectionStatus</i> Specifies the <code><a>InboundCrossClusterSearchConnectionStatus</a></code> for the outbound connection.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ConnectionStatus</b>: Specifies the <code><a>InboundCrossClusterSearchConnectionStatus</a></code> for the outbound connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CrossClusterSearchConnectionId</i> Specifies the connection id for the inbound cross-cluster search connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DestinationDomainInfo</i> Specifies the <code><a>DomainInformation</a></code> for the destination Elasticsearch domain.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DestinationDomainInfo</b>: Specifies the <code><a>DomainInformation</a></code> for the destination Elasticsearch domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceDomainInfo</i> Specifies the <code><a>DomainInformation</a></code> for the source Elasticsearch domain.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SourceDomainInfo</b>: Specifies the <code><a>DomainInformation</a></code> for the source Elasticsearch domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Region</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainName</i> The name of an Elasticsearch domain. Domain names are unique across the domains owned by an account within an AWS region. Domain names start with a letter or number and can contain the following characters: a-z (lowercase), 0-9, and - (hyphen).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Region</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainName</i> The name of an Elasticsearch domain. Domain names are unique across the domains owned by an account within an AWS region. Domain names start with a letter or number and can contain the following characters: a-z (lowercase), 0-9, and - (hyphen).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> Specifies verbose information for the inbound connection status.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusCode</i> The state code for inbound connection. This can be one of the following: <ul> <li>PENDING_ACCEPTANCE: Inbound connection is not yet accepted by destination domain owner.</li> <li>APPROVED: Inbound connection is pending acceptance by destination domain owner.</li> <li>REJECTING: Inbound connection rejection is in process.</li> <li>REJECTED: Inbound connection is rejected.</li> <li>DELETING: Inbound connection deletion is in progress.</li> <li>DELETED: Inbound connection is deleted and cannot be used further.</li> </ul><br/>        """
        pass

    def remove_tags(self, TagKeys: List[String], ARN: str):
        r"""Removes the specified set of tags from the specified Elasticsearch domain.

        :param self:
        :param TagKeys:  Specifies the <code>TagKey</code> list which you want to remove from the Elasticsearch domain.<br/>ARN:  Specifies the <code>ARN</code> for the Elasticsearch domain from which you want to delete the specified tags.<br/>
        :return:         """
        pass

    def start_elasticsearch_service_software_update(self, DomainName: str) -> StartElasticsearchServiceSoftwareUpdateResponse:
        r"""Schedules a service software update for an Amazon ES domain.

        :param self:
        :param DomainName:  The name of the domain that you want to update to the latest service software.<br/>
        :return: ServiceSoftwareOptions:  The current status of the Elasticsearch service software update.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OptionalDeployment</i> <code>True</code> if a service software is never automatically updated. <code>False</code> if a service software is automatically updated after <code>AutomatedUpdateDate</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomatedUpdateDate</i> Timestamp, in Epoch time, until which you can manually request a service software update. After this date, we automatically update your service software.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the <code>UpdateStatus</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdateStatus</i> The status of your service software update. This field can take the following values: <code>ELIGIBLE</code>, <code>PENDING_UPDATE</code>, <code>IN_PROGRESS</code>, <code>COMPLETED</code>, and <code>NOT_ELIGIBLE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Cancellable</i> <code>True</code> if you are able to cancel your service software version update. <code>False</code> if you are not able to cancel your service software version. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdateAvailable</i> <code>True</code> if you are able to update you service software version. <code>False</code> if you are not able to update your service software version. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NewVersion</i> The new service software version if one is available.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CurrentVersion</i> The current service software version that is present on the domain.<br/>        """
        pass

    def update_elasticsearch_domain_config(self, DomainName: str, ElasticsearchClusterConfig: ElasticsearchClusterConfig=None, EBSOptions: EBSOptions=None, SnapshotOptions: SnapshotOptions=None, VPCOptions: VPCOptions=None, CognitoOptions: CognitoOptions=None, AdvancedOptions: AdvancedOptions=None, AccessPolicies: str=None, LogPublishingOptions: LogPublishingOptions=None, DomainEndpointOptions: DomainEndpointOptions=None, AdvancedSecurityOptions: AdvancedSecurityOptionsInput=None, NodeToNodeEncryptionOptions: NodeToNodeEncryptionOptions=None, EncryptionAtRestOptions: EncryptionAtRestOptions=None, AutoTuneOptions: AutoTuneOptions=None) -> UpdateElasticsearchDomainConfigResponse:
        r"""Modifies the cluster configuration of the specified Elasticsearch domain, setting as setting the instance type and the number of instances. 

        :param self:
        :param AutoTuneOptions:  Specifies Auto-Tune options.:<br/>EncryptionAtRestOptions:  Specifies the Encryption At Rest Options.:<br/>NodeToNodeEncryptionOptions:  Specifies the NodeToNodeEncryptionOptions.:<br/>AdvancedSecurityOptions:  Specifies advanced security options.:<br/>DomainEndpointOptions:  Options to specify configuration that will be applied to the domain endpoint.:<br/>LogPublishingOptions:  Map of <code>LogType</code> and <code>LogPublishingOption</code>, each containing options to publish a given type of Elasticsearch log.<br/>AccessPolicies:  IAM access policy as a JSON-formatted string.<br/>AdvancedOptions:  Modifies the advanced option to allow references to indices in an HTTP request body. Must be <code>false</code> when configuring access to individual sub-resources. By default, the value is <code>true</code>. See <a href="http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-createupdatedomains.html#es-createdomain-configure-advanced-options" target="_blank">Configuration Advanced Options</a> for more information.<br/>CognitoOptions:  Options to specify the Cognito user and identity pools for Kibana authentication. For more information, see <a href="http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-cognito-auth.html" target="_blank">Amazon Cognito Authentication for Kibana</a>.:<br/>VPCOptions:  Options to specify the subnets and security groups for VPC endpoint. For more information, see <a href="http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-vpc.html#es-creating-vpc" target="_blank">Creating a VPC</a> in <i>VPC Endpoints for Amazon Elasticsearch Service Domains</i>:<br/>SnapshotOptions:  Option to set the time, in UTC format, for the daily automated snapshot. Default value is <code>0</code> hours. :<br/>EBSOptions:  Specify the type and size of the EBS volume that you want to use. :<br/>ElasticsearchClusterConfig:  The type and number of instances to instantiate for the domain cluster.:<br/>DomainName:  The name of the Elasticsearch domain that you are updating. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ColdStorageOptions</i> Specifies the <code>ColdStorageOptions</code> configuration for an Elasticsearch domain.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ColdStorageOptions</b>: Specifies the <code>ColdStorageOptions</code> configuration for an Elasticsearch domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WarmCount</i> The number of warm nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WarmType</i> The instance type for the Elasticsearch cluster's warm nodes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WarmEnabled</i> True to enable warm storage.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DedicatedMasterCount</i> Total number of dedicated master nodes, active and on standby, for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DedicatedMasterType</i> The instance type for a dedicated master node.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ZoneAwarenessConfig</i> Specifies the zone awareness configuration for a domain when zone awareness is enabled.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ZoneAwarenessConfig</b>: Specifies the zone awareness configuration for a domain when zone awareness is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ZoneAwarenessEnabled</i> A boolean value to indicate whether zone awareness is enabled. See <a href="http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-managedomains.html#es-managedomains-zoneawareness" target="_blank">About Zone Awareness</a> for more information.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DedicatedMasterEnabled</i> A boolean value to indicate whether a dedicated master node is enabled. See <a href="http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-managedomains.html#es-managedomains-dedicatedmasternodes" target="_blank">About Dedicated Master Nodes</a> for more information.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceCount</i> The number of instances in the specified domain cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceType</i> The instance type for an Elasticsearch cluster. UltraWarm instance types are not supported for data instances.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZoneCount</i> An integer value to indicate the number of availability zones for a domain when zone awareness is enabled. This should be equal to number of subnets if VPC endpoints is enabled<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> True to enable cold storage for an Elasticsearch domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Iops</i> Specifies the IOPD for a Provisioned IOPS EBS volume (SSD).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VolumeSize</i>  Integer to specify the size of an EBS volume.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VolumeType</i>  Specifies the volume type for EBS-based storage.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EBSEnabled</i> Specifies whether EBS-based storage is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomatedSnapshotStartHour</i> Specifies the time, in UTC format, when the service takes a daily automated snapshot of the specified Elasticsearch domain. Default value is <code>0</code> hours.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> Specifies the security groups for VPC endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetIds</i> Specifies the subnets for VPC endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> Specifies the role ARN that provides Elasticsearch permissions for accessing Cognito resources.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IdentityPoolId</i> Specifies the Cognito identity pool ID for Kibana authentication.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserPoolId</i> Specifies the Cognito user pool ID for Kibana authentication.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specifies the option to enable Cognito for Kibana authentication.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomEndpointCertificateArn</i> Specify ACM certificate ARN for your custom endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomEndpoint</i> Specify the fully qualified domain for your custom endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomEndpointEnabled</i> Specify if custom endpoint should be enabled for the Elasticsearch domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TLSSecurityPolicy</i> Specify the TLS security policy that needs to be applied to the HTTPS endpoint of Elasticsearch domain. <br/> It can be one of the following values: <ul> <li><b>Policy-Min-TLS-1-0-2019-07: </b> TLS security policy which supports TLSv1.0 and higher.</li> <li><b>Policy-Min-TLS-1-2-2019-07: </b> TLS security policy which supports only TLSv1.2</li> </ul> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnforceHTTPS</i> Specify if only HTTPS endpoint should be enabled for the Elasticsearch domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SAMLOptions</i> Specifies the SAML application configuration for the domain.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SAMLOptions</b>: Specifies the SAML application configuration for the domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUserOptions</i> Credentials for the master user: username and password, ARN, or both.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>MasterUserOptions</b>: Credentials for the master user: username and password, ARN, or both.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InternalUserDatabaseEnabled</i> True if the internal user database is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> True if advanced security is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUserPassword</i> The master user's password, which is stored in the Amazon Elasticsearch Service domain's internal database.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUserName</i> The master user's username, which is stored in the Amazon Elasticsearch Service domain's internal database.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUserARN</i> ARN for the master user (if IAM is enabled).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> True if SAML is enabled.<br/>Specifies the SAML Identity Provider's information.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Idp</b>: Specifies the SAML Identity Provider's information.&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specify true to enable node-to-node encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i>  Specifies the KMS Key ID for Encryption At Rest options.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specifies the option to enable Encryption At Rest.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaintenanceSchedules</i> Specifies list of maitenance schedules. See the <a href="https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/auto-tune.html" target="_blank">Developer Guide</a> for more information.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RollbackOnDisable</i> Specifies the rollback state while disabling Auto-Tune for the domain. Valid values are NO_ROLLBACK, DEFAULT_ROLLBACK. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DesiredState</i> Specifies the Auto-Tune desired state. Valid values are ENABLED, DISABLED. <br/>
        :return: DomainConfig:  The status of the updated Elasticsearch domain. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoTuneOptions</i> Specifies <code>AutoTuneOptions</code> for the domain. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AutoTuneOptions</b>: Specifies <code>AutoTuneOptions</code> for the domain. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdvancedSecurityOptions</i> Specifies <code>AdvancedSecurityOptions</code> for the domain. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AdvancedSecurityOptions</b>: Specifies <code>AdvancedSecurityOptions</code> for the domain. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainEndpointOptions</i> Specifies the <code>DomainEndpointOptions</code> for the Elasticsearch domain.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DomainEndpointOptions</b>: Specifies the <code>DomainEndpointOptions</code> for the Elasticsearch domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogPublishingOptions</i> Log publishing options for the given domain.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>LogPublishingOptions</b>: Log publishing options for the given domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdvancedOptions</i> Specifies the <code>AdvancedOptions</code> for the domain. See <a href="http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-createupdatedomains.html#es-createdomain-configure-advanced-options" target="_blank">Configuring Advanced Options</a> for more information.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AdvancedOptions</b>: Specifies the <code>AdvancedOptions</code> for the domain. See <a href="http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-createupdatedomains.html#es-createdomain-configure-advanced-options" target="_blank">Configuring Advanced Options</a> for more information.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NodeToNodeEncryptionOptions</i> Specifies the <code>NodeToNodeEncryptionOptions</code> for the Elasticsearch domain.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>NodeToNodeEncryptionOptions</b>: Specifies the <code>NodeToNodeEncryptionOptions</code> for the Elasticsearch domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EncryptionAtRestOptions</i> Specifies the <code>EncryptionAtRestOptions</code> for the Elasticsearch domain.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EncryptionAtRestOptions</b>: Specifies the <code>EncryptionAtRestOptions</code> for the Elasticsearch domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CognitoOptions</i> The <code>CognitoOptions</code> for the specified domain. For more information, see <a href="http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-cognito-auth.html" target="_blank">Amazon Cognito Authentication for Kibana</a>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CognitoOptions</b>: The <code>CognitoOptions</code> for the specified domain. For more information, see <a href="http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-cognito-auth.html" target="_blank">Amazon Cognito Authentication for Kibana</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VPCOptions</i> The <code>VPCOptions</code> for the specified domain. For more information, see <a href="http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-vpc.html" target="_blank">VPC Endpoints for Amazon Elasticsearch Service Domains</a>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>VPCOptions</b>: The <code>VPCOptions</code> for the specified domain. For more information, see <a href="http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-vpc.html" target="_blank">VPC Endpoints for Amazon Elasticsearch Service Domains</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotOptions</i> Specifies the <code>SnapshotOptions</code> for the Elasticsearch domain.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SnapshotOptions</b>: Specifies the <code>SnapshotOptions</code> for the Elasticsearch domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccessPolicies</i> IAM access policy as a JSON-formatted string.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AccessPolicies</b>: IAM access policy as a JSON-formatted string.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EBSOptions</i> Specifies the <code>EBSOptions</code> for the Elasticsearch domain.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EBSOptions</b>: Specifies the <code>EBSOptions</code> for the Elasticsearch domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ElasticsearchClusterConfig</i> Specifies the <code>ElasticsearchClusterConfig</code> for the Elasticsearch domain.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ElasticsearchClusterConfig</b>: Specifies the <code>ElasticsearchClusterConfig</code> for the Elasticsearch domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ElasticsearchVersion</i> String of format X.Y to specify version for the Elasticsearch domain.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ElasticsearchVersion</b>: String of format X.Y to specify version for the Elasticsearch domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Options</i>  Specifies the Elasticsearch version for the specified Elasticsearch domain.<br/> Specifies the status of the Elasticsearch version options for the specified Elasticsearch domain.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Status</b>:  Specifies the status of the Elasticsearch version options for the specified Elasticsearch domain. Specifies the cluster configuration for the specified Elasticsearch domain.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Options</b>:  Specifies the cluster configuration for the specified Elasticsearch domain. Specifies the EBS options for the specified Elasticsearch domain.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Options</b>:  Specifies the EBS options for the specified Elasticsearch domain.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Options</i> The access policy configured for the Elasticsearch domain. Access policies may be resource-based, IP-based, or IAM-based. See <a href="http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-createupdatedomains.html#es-createdomain-configure-access-policies" target="_blank"> Configuring Access Policies</a>for more information.<br/>The status of the access policy for the Elasticsearch domain. See <code>OptionStatus</code> for the status information that's included. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Status</b>: The status of the access policy for the Elasticsearch domain. See <code>OptionStatus</code> for the status information that's included. Specifies the daily snapshot options specified for the Elasticsearch domain.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Options</b>: Specifies the daily snapshot options specified for the Elasticsearch domain. Specifies the VPC options for the specified Elasticsearch domain.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Options</b>:  Specifies the VPC options for the specified Elasticsearch domain.Specifies the Cognito options for the specified Elasticsearch domain.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Options</b>: Specifies the Cognito options for the specified Elasticsearch domain. Specifies the Encryption At Rest options for the specified Elasticsearch domain.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Options</b>:  Specifies the Encryption At Rest options for the specified Elasticsearch domain.Specifies the node-to-node encryption options for the specified Elasticsearch domain.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Options</b>: Specifies the node-to-node encryption options for the specified Elasticsearch domain.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Options</i>  Specifies the status of advanced options for the specified Elasticsearch domain.<br/> Specifies the status of <code>OptionStatus</code> for advanced options for the specified Elasticsearch domain.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Status</b>:  Specifies the status of <code>OptionStatus</code> for advanced options for the specified Elasticsearch domain.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Options</i> The log publishing options configured for the Elasticsearch domain.<br/>The status of the log publishing options for the Elasticsearch domain. See <code>OptionStatus</code> for the status information that's included. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Status</b>: The status of the log publishing options for the Elasticsearch domain. See <code>OptionStatus</code> for the status information that's included. Options to configure endpoint for the Elasticsearch domain.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Options</b>: Options to configure endpoint for the Elasticsearch domain. Specifies advanced security options for the specified Elasticsearch domain.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Options</b>:  Specifies advanced security options for the specified Elasticsearch domain. Specifies Auto-Tune options for the specified Elasticsearch domain.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Options</b>:  Specifies Auto-Tune options for the specified Elasticsearch domain.        """
        pass

    def update_package(self, PackageSource: PackageSource, PackageID: str, PackageDescription: str=None, CommitMessage: str=None) -> UpdatePackageResponse:
        r"""Updates a package for use with Amazon ES domains.

        :param self:
        :param CommitMessage:  An info message for the new version which will be shown as part of <code>GetPackageVersionHistoryResponse</code>.<br/>PackageDescription:  New description of the package.<br/>PackageSource:  The S3 location for importing the package specified as <code>S3BucketName</code> and <code>S3Key</code>:<br/>PackageID:  Unique identifier for the package.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Key</i> Key (file name) of the package.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3BucketName</i> Name of the bucket containing the package.<br/>
        :return: PackageDetails:  Information about the package <code>PackageDetails</code>.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorDetails</i> Additional information if the package is in an error state. Null otherwise.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ErrorDetails</b>: Additional information if the package is in an error state. Null otherwise.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailablePackageVersion</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdatedAt</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedAt</i> Timestamp which tells creation date of the package.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PackageStatus</i> Current state of the package. Values are COPYING/COPY_FAILED/AVAILABLE/DELETING/DELETE_FAILED<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PackageDescription</i> User-specified description of the package.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PackageType</i> Currently supports only TXT-DICTIONARY.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PackageName</i> User specified name of the package.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PackageID</i> Internal ID of the package.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorMessage</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorType</i> <br/>        """
        pass

    def upgrade_elasticsearch_domain(self, TargetVersion: str, DomainName: str, PerformCheckOnly: Boolean=None) -> UpgradeElasticsearchDomainResponse:
        r"""Allows you to either upgrade your domain or perform an Upgrade eligibility check to a compatible Elasticsearch version.

        :param self:
        :param PerformCheckOnly:   This flag, when set to True, indicates that an Upgrade Eligibility Check needs to be performed. This will not actually perform the Upgrade. <br/>TargetVersion:  The version of Elasticsearch that you intend to upgrade the domain to.<br/>DomainName:  The name of an Elasticsearch domain. Domain names are unique across the domains owned by an account within an AWS region. Domain names start with a letter or number and can contain the following characters: a-z (lowercase), 0-9, and - (hyphen).<br/>
        :return: PerformCheckOnly:   This flag, when set to True, indicates that an Upgrade Eligibility Check needs to be performed. This will not actually perform the Upgrade. <br/>TargetVersion:  The version of Elasticsearch that you intend to upgrade the domain to.<br/>DomainName:  The name of an Elasticsearch domain. Domain names are unique across the domains owned by an account within an AWS region. Domain names start with a letter or number and can contain the following characters: a-z (lowercase), 0-9, and - (hyphen).<br/>        """
        pass





class EventBridge(BaseClient):
    r"""Amazon EventBridge helps you to respond to state changes in your AWS resources. When your resources change state, they automatically send events into an event stream. You can create rules that match selected events in the stream and route them to targets to take action. You can also use rules to take action on a predetermined schedule. For example, you can configure rules to: <ul> <li> Automatically invoke an AWS Lambda function to update DNS entries when an event notifies you that Amazon EC2 instance enters the running state. </li> <li> Direct specific API records from AWS CloudTrail to an Amazon Kinesis data stream for detailed analysis of potential security or availability risks. </li> <li> Periodically invoke a built-in target to create a snapshot of an Amazon EBS volume. </li> </ul> For more information about the features of Amazon EventBridge, see the <a href="https://docs.aws.amazon.com/eventbridge/latest/userguide">Amazon EventBridge User Guide</a>."""


    class ListRuleNamesByTargetPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_rule_names_by_target` for valid parameters"""
            pass
    class ListRulesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_rules` for valid parameters"""
            pass
    class ListTargetsByRulePaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_targets_by_rule` for valid parameters"""
            pass


    class ActivateEventSourceRequest(Mapping):
        pass
    
    class CancelReplayRequest(Mapping):
        pass
    
    class CancelReplayResponse(Mapping):
        pass
    
    class CreateApiDestinationRequest(Mapping):
        pass
    
    class CreateApiDestinationResponse(Mapping):
        pass
    
    class CreateArchiveRequest(Mapping):
        pass
    
    class CreateArchiveResponse(Mapping):
        pass
    
    class CreateConnectionRequest(Mapping):
        pass
    
    class CreateConnectionResponse(Mapping):
        pass
    
    class CreateConnectionAuthRequestParameters(Mapping):
        pass
    
    class CreateEventBusRequest(Mapping):
        pass
    
    class CreateEventBusResponse(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class CreatePartnerEventSourceRequest(Mapping):
        pass
    
    class CreatePartnerEventSourceResponse(Mapping):
        pass
    
    class DeactivateEventSourceRequest(Mapping):
        pass
    
    class DeauthorizeConnectionRequest(Mapping):
        pass
    
    class DeauthorizeConnectionResponse(Mapping):
        pass
    
    class DeleteApiDestinationRequest(Mapping):
        pass
    
    class DeleteApiDestinationResponse(Mapping):
        pass
    
    class DeleteArchiveRequest(Mapping):
        pass
    
    class DeleteArchiveResponse(Mapping):
        pass
    
    class DeleteConnectionRequest(Mapping):
        pass
    
    class DeleteConnectionResponse(Mapping):
        pass
    
    class DeleteEventBusRequest(Mapping):
        pass
    
    class DeletePartnerEventSourceRequest(Mapping):
        pass
    
    class DeleteRuleRequest(Mapping):
        pass
    
    class Boolean(object):
        pass
    
    class DescribeApiDestinationRequest(Mapping):
        pass
    
    class DescribeApiDestinationResponse(Mapping):
        pass
    
    class DescribeArchiveRequest(Mapping):
        pass
    
    class DescribeArchiveResponse(Mapping):
        pass
    
    class DescribeConnectionRequest(Mapping):
        pass
    
    class DescribeConnectionResponse(Mapping):
        pass
    
    class DescribeEventBusRequest(Mapping):
        pass
    
    class DescribeEventBusResponse(Mapping):
        pass
    
    class DescribeEventSourceRequest(Mapping):
        pass
    
    class DescribeEventSourceResponse(Mapping):
        pass
    
    class DescribePartnerEventSourceRequest(Mapping):
        pass
    
    class DescribePartnerEventSourceResponse(Mapping):
        pass
    
    class DescribeReplayRequest(Mapping):
        pass
    
    class DescribeReplayResponse(Mapping):
        pass
    
    class DescribeRuleRequest(Mapping):
        pass
    
    class DescribeRuleResponse(Mapping):
        pass
    
    class DisableRuleRequest(Mapping):
        pass
    
    class EnableRuleRequest(Mapping):
        pass
    
    class ListApiDestinationsRequest(Mapping):
        pass
    
    class ListApiDestinationsResponse(Mapping):
        pass
    
    class ListArchivesRequest(Mapping):
        pass
    
    class ListArchivesResponse(Mapping):
        pass
    
    class ListConnectionsRequest(Mapping):
        pass
    
    class ListConnectionsResponse(Mapping):
        pass
    
    class ListEventBusesRequest(Mapping):
        pass
    
    class ListEventBusesResponse(Mapping):
        pass
    
    class ListEventSourcesRequest(Mapping):
        pass
    
    class ListEventSourcesResponse(Mapping):
        pass
    
    class ListPartnerEventSourceAccountsRequest(Mapping):
        pass
    
    class ListPartnerEventSourceAccountsResponse(Mapping):
        pass
    
    class ListPartnerEventSourcesRequest(Mapping):
        pass
    
    class ListPartnerEventSourcesResponse(Mapping):
        pass
    
    class ListReplaysRequest(Mapping):
        pass
    
    class ListReplaysResponse(Mapping):
        pass
    
    class ListRuleNamesByTargetRequest(Mapping):
        pass
    
    class ListRuleNamesByTargetResponse(Mapping):
        pass
    
    class ListRulesRequest(Mapping):
        pass
    
    class ListRulesResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class ListTargetsByRuleRequest(Mapping):
        pass
    
    class ListTargetsByRuleResponse(Mapping):
        pass
    
    class PutEventsRequest(Mapping):
        pass
    
    class PutEventsResponse(Mapping):
        pass
    
    class PutEventsRequestEntry(Mapping):
        pass
    
    class PutPartnerEventsRequest(Mapping):
        pass
    
    class PutPartnerEventsResponse(Mapping):
        pass
    
    class PutPartnerEventsRequestEntry(Mapping):
        pass
    
    class PutPermissionRequest(Mapping):
        pass
    
    class Condition(Mapping):
        pass
    
    class PutRuleRequest(Mapping):
        pass
    
    class PutRuleResponse(Mapping):
        pass
    
    class PutTargetsRequest(Mapping):
        pass
    
    class PutTargetsResponse(Mapping):
        pass
    
    class Target(Mapping):
        pass
    
    class RemovePermissionRequest(Mapping):
        pass
    
    class RemoveTargetsRequest(Mapping):
        pass
    
    class RemoveTargetsResponse(Mapping):
        pass
    
    class TargetId(object):
        pass
    
    class StartReplayRequest(Mapping):
        pass
    
    class StartReplayResponse(Mapping):
        pass
    
    class Timestamp(object):
        pass
    
    class ReplayDestination(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class TestEventPatternRequest(Mapping):
        pass
    
    class TestEventPatternResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateApiDestinationRequest(Mapping):
        pass
    
    class UpdateApiDestinationResponse(Mapping):
        pass
    
    class UpdateArchiveRequest(Mapping):
        pass
    
    class UpdateArchiveResponse(Mapping):
        pass
    
    class UpdateConnectionRequest(Mapping):
        pass
    
    class UpdateConnectionResponse(Mapping):
        pass
    
    class UpdateConnectionAuthRequestParameters(Mapping):
        pass
    
    def activate_event_source(self, Name: str):
        r"""Activates a partner event source that has been deactivated. Once activated, your matching event bus will start receiving events from the event source.

        :param self:
        :param Name:  The name of the partner event source to activate.<br/>
        :return:         """
        pass

    def cancel_replay(self, ReplayName: str) -> CancelReplayResponse:
        r"""Cancels the specified replay.

        :param self:
        :param ReplayName:  The name of the replay to cancel.<br/>
        :return: StateReason:  The reason that the replay is in the current state.<br/>State:  The current state of the replay.<br/>ReplayArn:  The ARN of the replay to cancel.<br/>        """
        pass

    def create_api_destination(self, HttpMethod: str, InvocationEndpoint: str, ConnectionArn: str, Name: str, Description: str=None, InvocationRateLimitPerSecond: int=None) -> CreateApiDestinationResponse:
        r"""Creates an API destination, which is an HTTP invocation endpoint configured as a target for events.

        :param self:
        :param InvocationRateLimitPerSecond:  The maximum number of requests per second to send to the HTTP invocation endpoint.<br/>HttpMethod:  The method to use for the request to the HTTP invocation endpoint.<br/>InvocationEndpoint:  The URL to the HTTP invocation endpoint for the API destination.<br/>ConnectionArn:  The ARN of the connection to use for the API destination. The destination endpoint must support the authorization type specified for the connection.<br/>Description:  A description for the API destination to create.<br/>Name:  The name for the API destination to create.<br/>
        :return: LastModifiedTime:  A time stamp indicating the time that the API destination was last modified.<br/>CreationTime:  A time stamp indicating the time that the API destination was created.<br/>ApiDestinationState:  The state of the API destination that was created by the request.<br/>ApiDestinationArn:  The ARN of the API destination that was created by the request.<br/>        """
        pass

    def create_archive(self, EventSourceArn: str, ArchiveName: str, Description: str=None, EventPattern: str=None, RetentionDays: int=None) -> CreateArchiveResponse:
        r"""Creates an archive of events with the specified settings. When you create an archive, incoming events might not immediately start being sent to the archive. Allow a short period of time for changes to take effect. If you do not specify a pattern to filter events sent to the archive, all events are sent to the archive except replayed events. Replayed events are not sent to an archive.

        :param self:
        :param RetentionDays:  The number of days to retain events for. Default value is 0. If set to 0, events are retained indefinitely<br/>EventPattern:  An event pattern to use to filter events sent to the archive.<br/>Description:  A description for the archive.<br/>EventSourceArn:  The ARN of the event source associated with the archive.<br/>ArchiveName:  The name for the archive to create.<br/>
        :return: CreationTime:  The time at which the archive was created.<br/>StateReason:  The reason that the archive is in the state.<br/>State:  The state of the archive that was created.<br/>ArchiveArn:  The ARN of the archive that was created.<br/>        """
        pass

    def create_connection(self, AuthParameters: CreateConnectionAuthRequestParameters, AuthorizationType: str, Name: str, Description: str=None) -> CreateConnectionResponse:
        r"""Creates a connection. A connection defines the authorization type and credentials to use for authorization with an API destination HTTP endpoint.

        :param self:
        :param AuthParameters:  A <code>CreateConnectionAuthRequestParameters</code> object that contains the authorization parameters to use to authorize with the endpoint. :<br/>AuthorizationType:  The type of authorization to use for the connection.<br/>Description:  A description for the connection to create.<br/>Name:  The name for the connection to create.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InvocationHttpParameters</i> A <code>ConnectionHttpParameters</code> object that contains the API key authorization parameters to use for the connection. Note that if you include additional parameters for the target of a rule via <code>HttpParameters</code>, including query strings, the parameters added for the connection take precedence.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>InvocationHttpParameters</b>: A <code>ConnectionHttpParameters</code> object that contains the API key authorization parameters to use for the connection. Note that if you include additional parameters for the target of a rule via <code>HttpParameters</code>, including query strings, the parameters added for the connection take precedence.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApiKeyAuthParameters</i> A <code>CreateConnectionApiKeyAuthRequestParameters</code> object that contains the API key authorization parameters to use for the connection.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ApiKeyAuthParameters</b>: A <code>CreateConnectionApiKeyAuthRequestParameters</code> object that contains the API key authorization parameters to use for the connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OAuthParameters</i> A <code>CreateConnectionOAuthRequestParameters</code> object that contains the OAuth authorization parameters to use for the connection.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>OAuthParameters</b>: A <code>CreateConnectionOAuthRequestParameters</code> object that contains the OAuth authorization parameters to use for the connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BasicAuthParameters</i> A <code>CreateConnectionBasicAuthRequestParameters</code> object that contains the Basic authorization parameters to use for the connection.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>BasicAuthParameters</b>: A <code>CreateConnectionBasicAuthRequestParameters</code> object that contains the Basic authorization parameters to use for the connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Password</i> The password associated with the user name to use for Basic authorization.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Username</i> The user name to use for Basic authorization.<br/>A <code>CreateConnectionOAuthClientRequestParameters</code> object that contains the client parameters for OAuth authorization.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ClientParameters</b>: A <code>CreateConnectionOAuthClientRequestParameters</code> object that contains the client parameters for OAuth authorization.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ApiKeyValue</i> The value for the API key to use for authorization.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ApiKeyName</i> The name of the API key to use for authorization.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BodyParameters</i> Contains additional body string parameters for the connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>QueryStringParameters</i> Contains additional query string parameters for the connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HeaderParameters</i> Contains additional header parameters for the connection.<br/>
        :return: LastModifiedTime:  A time stamp for the time that the connection was last updated.<br/>CreationTime:  A time stamp for the time that the connection was created.<br/>ConnectionState:  The state of the connection that was created by the request.<br/>ConnectionArn:  The ARN of the connection that was created by the request.<br/>        """
        pass

    def create_event_bus(self, Name: str, EventSourceName: str=None, Tags: List[Tag]=None) -> CreateEventBusResponse:
        r"""Creates a new event bus within your account. This can be a custom event bus which you can use to receive events from your custom applications and services, or it can be a partner event bus which can be matched to a partner event source.

        :param self:
        :param Tags:  Tags to associate with the event bus.<br/>EventSourceName:  If you are creating a partner event bus, this specifies the partner event source that the new event bus will be matched with.<br/>Name:  The name of the new event bus.  Event bus names cannot contain the / character. You can't use the name <code>default</code> for a custom event bus, as this name is already used for your account's default event bus. If this is a partner event bus, the name must exactly match the name of the partner event source that this event bus is matched to.<br/>
        :return: EventBusArn:  The ARN of the new event bus.<br/>        """
        pass

    def create_partner_event_source(self, Account: str, Name: str) -> CreatePartnerEventSourceResponse:
        r"""Called by an SaaS partner to create a partner event source. This operation is not used by AWS customers. Each partner event source can be used by one AWS account to create a matching partner event bus in that AWS account. A SaaS partner must create one partner event source for each AWS account that wants to receive those event types.  A partner event source creates events based on resources within the SaaS partner's service or application. An AWS account that creates a partner event bus that matches the partner event source can use that event bus to receive events from the partner, and then process them using AWS Events rules and targets. Partner event source names follow this format:  <code> <i>partner_name</i>/<i>event_namespace</i>/<i>event_name</i> </code>   <i>partner_name</i> is determined during partner registration and identifies the partner to AWS customers. <i>event_namespace</i> is determined by the partner and is a way for the partner to categorize their events. <i>event_name</i> is determined by the partner, and should uniquely identify an event-generating resource within the partner system. The combination of <i>event_namespace</i> and <i>event_name</i> should help AWS customers decide whether to create an event bus to receive these events.

        :param self:
        :param Account:  The AWS account ID that is permitted to create a matching partner event bus for this partner event source.<br/>Name:  The name of the partner event source. This name must be unique and must be in the format <code> <i>partner_name</i>/<i>event_namespace</i>/<i>event_name</i> </code>. The AWS account that wants to use this partner event source must create a partner event bus with a name that matches the name of the partner event source.<br/>
        :return: EventSourceArn:  The ARN of the partner event source.<br/>        """
        pass

    def deactivate_event_source(self, Name: str):
        r"""You can use this operation to temporarily stop receiving events from the specified partner event source. The matching event bus is not deleted.  When you deactivate a partner event source, the source goes into PENDING state. If it remains in PENDING state for more than two weeks, it is deleted. To activate a deactivated partner event source, use <a>ActivateEventSource</a>.

        :param self:
        :param Name:  The name of the partner event source to deactivate.<br/>
        :return:         """
        pass

    def deauthorize_connection(self, Name: str) -> DeauthorizeConnectionResponse:
        r"""Removes all authorization parameters from the connection. This lets you remove the secret from the connection so you can reuse it without having to create a new connection.

        :param self:
        :param Name:  The name of the connection to remove authorization from.<br/>
        :return: LastAuthorizedTime:  A time stamp for the time that the connection was last authorized.<br/>LastModifiedTime:  A time stamp for the time that the connection was last updated.<br/>CreationTime:  A time stamp for the time that the connection was created.<br/>ConnectionState:  The state of the connection.<br/>ConnectionArn:  The ARN of the connection that authorization was removed from.<br/>        """
        pass

    def delete_api_destination(self, Name: str) -> DeleteApiDestinationResponse:
        r"""Deletes the specified API destination.

        :param self:
        :param Name:  The name of the destination to delete.<br/>
        :return:         """
        pass

    def delete_archive(self, ArchiveName: str) -> DeleteArchiveResponse:
        r"""Deletes the specified archive.

        :param self:
        :param ArchiveName:  The name of the archive to delete.<br/>
        :return:         """
        pass

    def delete_connection(self, Name: str) -> DeleteConnectionResponse:
        r"""Deletes a connection.

        :param self:
        :param Name:  The name of the connection to delete.<br/>
        :return: LastAuthorizedTime:  A time stamp for the time that the connection was last authorized before it wa deleted.<br/>LastModifiedTime:  A time stamp for the time that the connection was last modified before it was deleted.<br/>CreationTime:  A time stamp for the time that the connection was created.<br/>ConnectionState:  The state of the connection before it was deleted.<br/>ConnectionArn:  The ARN of the connection that was deleted.<br/>        """
        pass

    def delete_event_bus(self, Name: str):
        r"""Deletes the specified custom event bus or partner event bus. All rules associated with this event bus need to be deleted. You can't delete your account's default event bus.

        :param self:
        :param Name:  The name of the event bus to delete.<br/>
        :return:         """
        pass

    def delete_partner_event_source(self, Account: str, Name: str):
        r"""This operation is used by SaaS partners to delete a partner event source. This operation is not used by AWS customers. When you delete an event source, the status of the corresponding partner event bus in the AWS customer account becomes DELETED. <p/>

        :param self:
        :param Account:  The AWS account ID of the AWS customer that the event source was created for.<br/>Name:  The name of the event source to delete.<br/>
        :return:         """
        pass

    def delete_rule(self, Name: str, EventBusName: str=None, Force: Boolean=None):
        r"""Deletes the specified rule. Before you can delete the rule, you must remove all targets, using <a>RemoveTargets</a>. When you delete a rule, incoming events might continue to match to the deleted rule. Allow a short period of time for changes to take effect. If you call delete rule multiple times for the same rule, all calls will succeed. When you call delete rule for a non-existent custom eventbus, <code>ResourceNotFoundException</code> is returned. Managed rules are rules created and managed by another AWS service on your behalf. These rules are created by those other AWS services to support functionality in those services. You can delete these rules using the <code>Force</code> option, but you should do so only if you are sure the other service is not still using that rule.

        :param self:
        :param Force:  If this is a managed rule, created by an AWS service on your behalf, you must specify <code>Force</code> as <code>True</code> to delete the rule. This parameter is ignored for rules that are not managed rules. You can check whether a rule is a managed rule by using <code>DescribeRule</code> or <code>ListRules</code> and checking the <code>ManagedBy</code> field of the response.<br/>EventBusName:  The name or ARN of the event bus associated with the rule. If you omit this, the default event bus is used.<br/>Name:  The name of the rule.<br/>
        :return:         """
        pass

    def describe_api_destination(self, Name: str) -> DescribeApiDestinationResponse:
        r"""Retrieves details about an API destination.

        :param self:
        :param Name:  The name of the API destination to retrieve.<br/>
        :return: LastModifiedTime:  A time stamp for the time that the API destination was last modified.<br/>CreationTime:  A time stamp for the time that the API destination was created.<br/>InvocationRateLimitPerSecond:  The maximum number of invocations per second to specified for the API destination. Note that if you set the invocation rate maximum to a value lower the rate necessary to send all events received on to the destination HTTP endpoint, some events may not be delivered within the 24-hour retry window. If you plan to set the rate lower than the rate necessary to deliver all events, consider using a dead-letter queue to catch events that are not delivered within 24 hours.<br/>HttpMethod:  The method to use to connect to the HTTP endpoint.<br/>InvocationEndpoint:  The URL to use to connect to the HTTP endpoint.<br/>ConnectionArn:  The ARN of the connection specified for the API destination retrieved.<br/>ApiDestinationState:  The state of the API destination retrieved.<br/>Description:  The description for the API destination retrieved.<br/>Name:  The name of the API destination retrieved.<br/>ApiDestinationArn:  The ARN of the API destination retrieved.<br/>        """
        pass

    def describe_archive(self, ArchiveName: str) -> DescribeArchiveResponse:
        r"""Retrieves details about an archive.

        :param self:
        :param ArchiveName:  The name of the archive to retrieve.<br/>
        :return: CreationTime:  The time at which the archive was created.<br/>EventCount:  The number of events in the archive.<br/>SizeBytes:  The size of the archive in bytes.<br/>RetentionDays:  The number of days to retain events for in the archive.<br/>StateReason:  The reason that the archive is in the state.<br/>State:  The state of the archive.<br/>EventPattern:  The event pattern used to filter events sent to the archive.<br/>Description:  The description of the archive.<br/>EventSourceArn:  The ARN of the event source associated with the archive.<br/>ArchiveName:  The name of the archive.<br/>ArchiveArn:  The ARN of the archive.<br/>        """
        pass

    def describe_connection(self, Name: str) -> DescribeConnectionResponse:
        r"""Retrieves details about a connection.

        :param self:
        :param Name:  The name of the connection to retrieve.<br/>
        :return: LastAuthorizedTime:  A time stamp for the time that the connection was last authorized.<br/>LastModifiedTime:  A time stamp for the time that the connection was last modified.<br/>CreationTime:  A time stamp for the time that the connection was created.<br/>AuthParameters:  The parameters to use for authorization for the connection.:<br/>SecretArn:  The ARN of the secret created from the authorization parameters specified for the connection.<br/>AuthorizationType:  The type of authorization specified for the connection.<br/>StateReason:  The reason that the connection is in the current connection state.<br/>ConnectionState:  The state of the connection retrieved.<br/>Description:  The description for the connection retrieved.<br/>Name:  The name of the connection retrieved.<br/>ConnectionArn:  The ARN of the connection retrieved.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InvocationHttpParameters</i> Additional parameters for the connection that are passed through with every invocation to the HTTP endpoint.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>InvocationHttpParameters</b>: Additional parameters for the connection that are passed through with every invocation to the HTTP endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApiKeyAuthParameters</i> The API Key parameters to use for authorization.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ApiKeyAuthParameters</b>: The API Key parameters to use for authorization.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OAuthParameters</i> The OAuth parameters to use for authorization.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>OAuthParameters</b>: The OAuth parameters to use for authorization.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BasicAuthParameters</i> The authorization parameters for Basic authorization.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>BasicAuthParameters</b>: The authorization parameters for Basic authorization.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Username</i> The user name to use for Basic authorization.<br/>A <code>ConnectionOAuthClientResponseParameters</code> object that contains details about the client parameters returned when OAuth is specified as the authorization type.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ClientParameters</b>: A <code>ConnectionOAuthClientResponseParameters</code> object that contains details about the client parameters returned when OAuth is specified as the authorization type.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ApiKeyName</i> The name of the header to use for the <code>APIKeyValue</code> used for authorization.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BodyParameters</i> Contains additional body string parameters for the connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>QueryStringParameters</i> Contains additional query string parameters for the connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HeaderParameters</i> Contains additional header parameters for the connection.<br/>        """
        pass

    def describe_event_bus(self, Name: str=None) -> DescribeEventBusResponse:
        r"""Displays details about an event bus in your account. This can include the external AWS accounts that are permitted to write events to your default event bus, and the associated policy. For custom event buses and partner event buses, it displays the name, ARN, policy, state, and creation time.  To enable your account to receive events from other accounts on its default event bus, use <a>PutPermission</a>. For more information about partner event buses, see <a>CreateEventBus</a>.

        :param self:
        :param Name:  The name or ARN of the event bus to show details for. If you omit this, the default event bus is displayed.<br/>
        :return: Policy:  The policy that enables the external account to send events to your account.<br/>Arn:  The Amazon Resource Name (ARN) of the account permitted to write events to the current account.<br/>Name:  The name of the event bus. Currently, this is always <code>default</code>.<br/>        """
        pass

    def describe_event_source(self, Name: str) -> DescribeEventSourceResponse:
        r"""This operation lists details about a partner event source that is shared with your account.

        :param self:
        :param Name:  The name of the partner event source to display the details of.<br/>
        :return: State:  The state of the event source. If it is ACTIVE, you have already created a matching event bus for this event source, and that event bus is active. If it is PENDING, either you haven't yet created a matching event bus, or that event bus is deactivated. If it is DELETED, you have created a matching event bus, but the event source has since been deleted.<br/>Name:  The name of the partner event source.<br/>ExpirationTime:  The date and time that the event source will expire if you do not create a matching event bus.<br/>CreationTime:  The date and time that the event source was created.<br/>CreatedBy:  The name of the SaaS partner that created the event source.<br/>Arn:  The ARN of the partner event source.<br/>        """
        pass

    def describe_partner_event_source(self, Name: str) -> DescribePartnerEventSourceResponse:
        r"""An SaaS partner can use this operation to list details about a partner event source that they have created. AWS customers do not use this operation. Instead, AWS customers can use <a>DescribeEventSource</a> to see details about a partner event source that is shared with them.

        :param self:
        :param Name:  The name of the event source to display.<br/>
        :return: Name:  The name of the event source.<br/>Arn:  The ARN of the event source.<br/>        """
        pass

    def describe_replay(self, ReplayName: str) -> DescribeReplayResponse:
        r"""Retrieves details about a replay. Use <code>DescribeReplay</code> to determine the progress of a running replay. A replay processes events to replay based on the time in the event, and replays them using 1 minute intervals. If you use <code>StartReplay</code> and specify an <code>EventStartTime</code> and an <code>EventEndTime</code> that covers a 20 minute time range, the events are replayed from the first minute of that 20 minute range first. Then the events from the second minute are replayed. You can use <code>DescribeReplay</code> to determine the progress of a replay. The value returned for <code>EventLastReplayedTime</code> indicates the time within the specified time range associated with the last event replayed.

        :param self:
        :param ReplayName:  The name of the replay to retrieve.<br/>
        :return: ReplayEndTime:  A time stamp for the time that the replay stopped.<br/>ReplayStartTime:  A time stamp for the time that the replay started.<br/>EventLastReplayedTime:  The time that the event was last replayed.<br/>EventEndTime:  The time stamp for the last event that was replayed from the archive.<br/>EventStartTime:  The time stamp of the first event that was last replayed from the archive.<br/>Destination:  A <code>ReplayDestination</code> object that contains details about the replay.:<br/>EventSourceArn:  The ARN of the archive events were replayed from.<br/>StateReason:  The reason that the replay is in the current state.<br/>State:  The current state of the replay.<br/>Description:  The description of the replay.<br/>ReplayArn:  The ARN of the replay.<br/>ReplayName:  The name of the replay.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FilterArns</i> A list of ARNs for rules to replay events to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The ARN of the event bus to replay event to. You can replay events only to the event bus specified to create the archive.<br/>        """
        pass

    def describe_rule(self, Name: str, EventBusName: str=None) -> DescribeRuleResponse:
        r"""Describes the specified rule. DescribeRule does not list the targets of a rule. To see the targets associated with a rule, use <a>ListTargetsByRule</a>.

        :param self:
        :param EventBusName:  The name or ARN of the event bus associated with the rule. If you omit this, the default event bus is used.<br/>Name:  The name of the rule.<br/>
        :return: CreatedBy:  The account ID of the user that created the rule. If you use <code>PutRule</code> to put a rule on an event bus in another account, the other account is the owner of the rule, and the rule ARN includes the account ID for that account. However, the value for <code>CreatedBy</code> is the account ID as the account that created the rule in the other account.<br/>EventBusName:  The name of the event bus associated with the rule.<br/>ManagedBy:  If this is a managed rule, created by an AWS service on your behalf, this field displays the principal name of the AWS service that created the rule.<br/>RoleArn:  The Amazon Resource Name (ARN) of the IAM role associated with the rule.<br/>Description:  The description of the rule.<br/>State:  Specifies whether the rule is enabled or disabled.<br/>ScheduleExpression:  The scheduling expression. For example, "cron(0 20 * * ? *)", "rate(5 minutes)".<br/>EventPattern:  The event pattern. For more information, see <a href="https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-and-event-patterns.html">Events and Event Patterns</a> in the <i>Amazon EventBridge User Guide</i>.<br/>Arn:  The Amazon Resource Name (ARN) of the rule.<br/>Name:  The name of the rule.<br/>        """
        pass

    def disable_rule(self, Name: str, EventBusName: str=None):
        r"""Disables the specified rule. A disabled rule won't match any events, and won't self-trigger if it has a schedule expression. When you disable a rule, incoming events might continue to match to the disabled rule. Allow a short period of time for changes to take effect.

        :param self:
        :param EventBusName:  The name or ARN of the event bus associated with the rule. If you omit this, the default event bus is used.<br/>Name:  The name of the rule.<br/>
        :return:         """
        pass

    def enable_rule(self, Name: str, EventBusName: str=None):
        r"""Enables the specified rule. If the rule does not exist, the operation fails. When you enable a rule, incoming events might not immediately start matching to a newly enabled rule. Allow a short period of time for changes to take effect.

        :param self:
        :param EventBusName:  The name or ARN of the event bus associated with the rule. If you omit this, the default event bus is used.<br/>Name:  The name of the rule.<br/>
        :return:         """
        pass

    def list_api_destinations(self, NamePrefix: str=None, ConnectionArn: str=None, NextToken: str=None, Limit: int=None) -> ListApiDestinationsResponse:
        r"""Retrieves a list of API destination in the account in the current Region.

        :param self:
        :param Limit:  The maximum number of API destinations to include in the response.<br/>NextToken:  The token returned by a previous call to retrieve the next set of results.<br/>ConnectionArn:  The ARN of the connection specified for the API destination.<br/>NamePrefix:  A name prefix to filter results returned. Only API destinations with a name that starts with the prefix are returned.<br/>
        :return: NextToken:  A token you can use in a subsequent request to retrieve the next set of results.<br/>ApiDestinations:  An array of <code>ApiDestination</code> objects that include information about an API destination.<br/>        """
        pass

    def list_archives(self, NamePrefix: str=None, EventSourceArn: str=None, State: str=None, NextToken: str=None, Limit: int=None) -> ListArchivesResponse:
        r"""Lists your archives. You can either list all the archives or you can provide a prefix to match to the archive names. Filter parameters are exclusive.

        :param self:
        :param Limit:  The maximum number of results to return.<br/>NextToken:  The token returned by a previous call to retrieve the next set of results.<br/>State:  The state of the archive.<br/>EventSourceArn:  The ARN of the event source associated with the archive.<br/>NamePrefix:  A name prefix to filter the archives returned. Only archives with name that match the prefix are returned.<br/>
        :return: NextToken:  The token returned by a previous call to retrieve the next set of results.<br/>Archives:  An array of <code>Archive</code> objects that include details about an archive.<br/>        """
        pass

    def list_connections(self, NamePrefix: str=None, ConnectionState: str=None, NextToken: str=None, Limit: int=None) -> ListConnectionsResponse:
        r"""Retrieves a list of connections from the account.

        :param self:
        :param Limit:  The maximum number of connections to return.<br/>NextToken:  The token returned by a previous call to retrieve the next set of results.<br/>ConnectionState:  The state of the connection.<br/>NamePrefix:  A name prefix to filter results returned. Only connections with a name that starts with the prefix are returned.<br/>
        :return: NextToken:  A token you can use in a subsequent request to retrieve the next set of results.<br/>Connections:  An array of connections objects that include details about the connections.<br/>        """
        pass

    def list_event_buses(self, NamePrefix: str=None, NextToken: str=None, Limit: int=None) -> ListEventBusesResponse:
        r"""Lists all the event buses in your account, including the default event bus, custom event buses, and partner event buses.

        :param self:
        :param Limit:  Specifying this limits the number of results returned by this operation. The operation also returns a NextToken which you can use in a subsequent operation to retrieve the next set of results.<br/>NextToken:  The token returned by a previous call to retrieve the next set of results.<br/>NamePrefix:  Specifying this limits the results to only those event buses with names that start with the specified prefix.<br/>
        :return: NextToken:  A token you can use in a subsequent operation to retrieve the next set of results.<br/>EventBuses:  This list of event buses.<br/>        """
        pass

    def list_event_sources(self, NamePrefix: str=None, NextToken: str=None, Limit: int=None) -> ListEventSourcesResponse:
        r"""You can use this to see all the partner event sources that have been shared with your AWS account. For more information about partner event sources, see <a>CreateEventBus</a>.

        :param self:
        :param Limit:  Specifying this limits the number of results returned by this operation. The operation also returns a NextToken which you can use in a subsequent operation to retrieve the next set of results.<br/>NextToken:  The token returned by a previous call to retrieve the next set of results.<br/>NamePrefix:  Specifying this limits the results to only those partner event sources with names that start with the specified prefix.<br/>
        :return: NextToken:  A token you can use in a subsequent operation to retrieve the next set of results.<br/>EventSources:  The list of event sources.<br/>        """
        pass

    def list_partner_event_source_accounts(self, EventSourceName: str, NextToken: str=None, Limit: int=None) -> ListPartnerEventSourceAccountsResponse:
        r"""An SaaS partner can use this operation to display the AWS account ID that a particular partner event source name is associated with. This operation is not used by AWS customers.

        :param self:
        :param Limit:  Specifying this limits the number of results returned by this operation. The operation also returns a NextToken which you can use in a subsequent operation to retrieve the next set of results.<br/>NextToken:  The token returned by a previous call to this operation. Specifying this retrieves the next set of results.<br/>EventSourceName:  The name of the partner event source to display account information about.<br/>
        :return: NextToken:  A token you can use in a subsequent operation to retrieve the next set of results.<br/>PartnerEventSourceAccounts:  The list of partner event sources returned by the operation.<br/>        """
        pass

    def list_partner_event_sources(self, NamePrefix: str, NextToken: str=None, Limit: int=None) -> ListPartnerEventSourcesResponse:
        r"""An SaaS partner can use this operation to list all the partner event source names that they have created. This operation is not used by AWS customers.

        :param self:
        :param Limit:  pecifying this limits the number of results returned by this operation. The operation also returns a NextToken which you can use in a subsequent operation to retrieve the next set of results.<br/>NextToken:  The token returned by a previous call to this operation. Specifying this retrieves the next set of results.<br/>NamePrefix:  If you specify this, the results are limited to only those partner event sources that start with the string you specify.<br/>
        :return: NextToken:  A token you can use in a subsequent operation to retrieve the next set of results.<br/>PartnerEventSources:  The list of partner event sources returned by the operation.<br/>        """
        pass

    def list_replays(self, NamePrefix: str=None, State: str=None, EventSourceArn: str=None, NextToken: str=None, Limit: int=None) -> ListReplaysResponse:
        r"""Lists your replays. You can either list all the replays or you can provide a prefix to match to the replay names. Filter parameters are exclusive.

        :param self:
        :param Limit:  The maximum number of replays to retrieve.<br/>NextToken:  The token returned by a previous call to retrieve the next set of results.<br/>EventSourceArn:  The ARN of the event source associated with the replay.<br/>State:  The state of the replay.<br/>NamePrefix:  A name prefix to filter the replays returned. Only replays with name that match the prefix are returned.<br/>
        :return: NextToken:  The token returned by a previous call to retrieve the next set of results.<br/>Replays:  An array of <code>Replay</code> objects that contain information about the replay.<br/>        """
        pass

    def list_rule_names_by_target(self, TargetArn: str, EventBusName: str=None, NextToken: str=None, Limit: int=None) -> ListRuleNamesByTargetResponse:
        r"""Lists the rules for the specified target. You can see which of the rules in Amazon EventBridge can invoke a specific target in your account.

        :param self:
        :param Limit:  The maximum number of results to return.<br/>NextToken:  The token returned by a previous call to retrieve the next set of results.<br/>EventBusName:  The name or ARN of the event bus to list rules for. If you omit this, the default event bus is used.<br/>TargetArn:  The Amazon Resource Name (ARN) of the target resource.<br/>
        :return: NextToken:  Indicates whether there are additional results to retrieve. If there are no more results, the value is null.<br/>RuleNames:  The names of the rules that can invoke the given target.<br/>        """
        pass

    def list_rules(self, NamePrefix: str=None, EventBusName: str=None, NextToken: str=None, Limit: int=None) -> ListRulesResponse:
        r"""Lists your Amazon EventBridge rules. You can either list all the rules or you can provide a prefix to match to the rule names. ListRules does not list the targets of a rule. To see the targets associated with a rule, use <a>ListTargetsByRule</a>.

        :param self:
        :param Limit:  The maximum number of results to return.<br/>NextToken:  The token returned by a previous call to retrieve the next set of results.<br/>EventBusName:  The name or ARN of the event bus to list the rules for. If you omit this, the default event bus is used.<br/>NamePrefix:  The prefix matching the rule name.<br/>
        :return: NextToken:  Indicates whether there are additional results to retrieve. If there are no more results, the value is null.<br/>Rules:  The rules that match the specified criteria.<br/>        """
        pass

    def list_tags_for_resource(self, ResourceARN: str) -> ListTagsForResourceResponse:
        r"""Displays the tags associated with an EventBridge resource. In EventBridge, rules and event buses can be tagged.

        :param self:
        :param ResourceARN:  The ARN of the EventBridge resource for which you want to view tags.<br/>
        :return: Tags:  The list of tag keys and values associated with the resource you specified<br/>        """
        pass

    def list_targets_by_rule(self, Rule: str, EventBusName: str=None, NextToken: str=None, Limit: int=None) -> ListTargetsByRuleResponse:
        r"""Lists the targets assigned to the specified rule.

        :param self:
        :param Limit:  The maximum number of results to return.<br/>NextToken:  The token returned by a previous call to retrieve the next set of results.<br/>EventBusName:  The name or ARN of the event bus associated with the rule. If you omit this, the default event bus is used.<br/>Rule:  The name of the rule.<br/>
        :return: NextToken:  Indicates whether there are additional results to retrieve. If there are no more results, the value is null.<br/>Targets:  The targets assigned to the rule.<br/>        """
        pass

    def put_events(self, Entries: List[PutEventsRequestEntry]) -> PutEventsResponse:
        r"""Sends custom events to Amazon EventBridge so that they can be matched to rules.

        :param self:
        :param Entries:  The entry that defines an event in your system. You can specify several parameters for the entry such as the source and type of the event, resources associated with the event, and so on.<br/>
        :return: Entries:  The successfully and unsuccessfully ingested events results. If the ingestion was successful, the entry has the event ID in it. Otherwise, you can use the error code and error message to identify the problem with the entry.<br/>FailedEntryCount:  The number of failed entries.<br/>        """
        pass

    def put_partner_events(self, Entries: List[PutPartnerEventsRequestEntry]) -> PutPartnerEventsResponse:
        r"""This is used by SaaS partners to write events to a customer's partner event bus. AWS customers do not use this operation.

        :param self:
        :param Entries:  The list of events to write to the event bus.<br/>
        :return: Entries:  The list of events from this operation that were successfully written to the partner event bus.<br/>FailedEntryCount:  The number of events from this operation that could not be written to the partner event bus.<br/>        """
        pass

    def put_permission(self, EventBusName: str=None, Action: str=None, Principal: str=None, StatementId: str=None, Condition: Condition=None, Policy: str=None):
        r"""Running <code>PutPermission</code> permits the specified AWS account or AWS organization to put events to the specified <i>event bus</i>. Amazon EventBridge (CloudWatch Events) rules in your account are triggered by these events arriving to an event bus in your account.  For another account to send events to your account, that external account must have an EventBridge rule with your account's event bus as a target. To enable multiple AWS accounts to put events to your event bus, run <code>PutPermission</code> once for each of these accounts. Or, if all the accounts are members of the same AWS organization, you can run <code>PutPermission</code> once specifying <code>Principal</code> as "*" and specifying the AWS organization ID in <code>Condition</code>, to grant permissions to all accounts in that organization. If you grant permissions using an organization, then accounts in that organization must specify a <code>RoleArn</code> with proper permissions when they use <code>PutTarget</code> to add your account's event bus as a target. For more information, see <a href="https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-cross-account-event-delivery.html">Sending and Receiving Events Between AWS Accounts</a> in the <i>Amazon EventBridge User Guide</i>. The permission policy on the default event bus cannot exceed 10 KB in size.

        :param self:
        :param Policy:  A JSON string that describes the permission policy statement. You can include a <code>Policy</code> parameter in the request instead of using the <code>StatementId</code>, <code>Action</code>, <code>Principal</code>, or <code>Condition</code> parameters.<br/>Condition:  This parameter enables you to limit the permission to accounts that fulfill a certain condition, such as being a member of a certain AWS organization. For more information about AWS Organizations, see <a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html">What Is AWS Organizations</a> in the <i>AWS Organizations User Guide</i>. If you specify <code>Condition</code> with an AWS organization ID, and specify "*" as the value for <code>Principal</code>, you grant permission to all the accounts in the named organization. The <code>Condition</code> is a JSON string which must contain <code>Type</code>, <code>Key</code>, and <code>Value</code> fields.:<br/>StatementId:  An identifier string for the external account that you are granting permissions to. If you later want to revoke the permission for this external account, specify this <code>StatementId</code> when you run <a>RemovePermission</a>.<br/>Principal:  The 12-digit AWS account ID that you are permitting to put events to your default event bus. Specify "*" to permit any account to put events to your default event bus. If you specify "*" without specifying <code>Condition</code>, avoid creating rules that may match undesirable events. To create more secure rules, make sure that the event pattern for each rule contains an <code>account</code> field with a specific account ID from which to receive events. Rules with an account field do not match any events sent from other accounts.<br/>Action:  The action that you are enabling the other account to perform. Currently, this must be <code>events:PutEvents</code>.<br/>EventBusName:  The name of the event bus associated with the rule. If you omit this, the default event bus is used.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Value</i> Specifies the value for the key. Currently, this must be the ID of the organization.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> Specifies the key for the condition. Currently the only supported key is <code>aws:PrincipalOrgID</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> Specifies the type of condition. Currently the only supported value is <code>StringEquals</code>.<br/>
        :return:         """
        pass

    def put_rule(self, Name: str, ScheduleExpression: str=None, EventPattern: str=None, State: str=None, Description: str=None, RoleArn: str=None, Tags: List[Tag]=None, EventBusName: str=None) -> PutRuleResponse:
        r"""Creates or updates the specified rule. Rules are enabled by default, or based on value of the state. You can disable a rule using <a>DisableRule</a>. A single rule watches for events from a single event bus. Events generated by AWS services go to your account's default event bus. Events generated by SaaS partner services or applications go to the matching partner event bus. If you have custom applications or services, you can specify whether their events go to your default event bus or a custom event bus that you have created. For more information, see <a>CreateEventBus</a>. If you are updating an existing rule, the rule is replaced with what you specify in this <code>PutRule</code> command. If you omit arguments in <code>PutRule</code>, the old values for those arguments are not kept. Instead, they are replaced with null values. When you create or update a rule, incoming events might not immediately start matching to new or updated rules. Allow a short period of time for changes to take effect. A rule must contain at least an EventPattern or ScheduleExpression. Rules with EventPatterns are triggered when a matching event is observed. Rules with ScheduleExpressions self-trigger based on the given schedule. A rule can have both an EventPattern and a ScheduleExpression, in which case the rule triggers on matching events as well as on a schedule. When you initially create a rule, you can optionally assign one or more tags to the rule. Tags can help you organize and categorize your resources. You can also use them to scope user permissions, by granting a user permission to access or change only rules with certain tag values. To use the <code>PutRule</code> operation and assign tags, you must have both the <code>events:PutRule</code> and <code>events:TagResource</code> permissions. If you are updating an existing rule, any tags you specify in the <code>PutRule</code> operation are ignored. To update the tags of an existing rule, use <a>TagResource</a> and <a>UntagResource</a>. Most services in AWS treat : or / as the same character in Amazon Resource Names (ARNs). However, EventBridge uses an exact match in event patterns and rules. Be sure to use the correct ARN characters when creating event patterns so that they match the ARN syntax in the event you want to match. In EventBridge, it is possible to create rules that lead to infinite loops, where a rule is fired repeatedly. For example, a rule might detect that ACLs have changed on an S3 bucket, and trigger software to change them to the desired state. If the rule is not written carefully, the subsequent change to the ACLs fires the rule again, creating an infinite loop. To prevent this, write the rules so that the triggered actions do not re-fire the same rule. For example, your rule could fire only if ACLs are found to be in a bad state, instead of after any change.  An infinite loop can quickly cause higher than expected charges. We recommend that you use budgeting, which alerts you when charges exceed your specified limit. For more information, see <a href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/budgets-managing-costs.html">Managing Your Costs with Budgets</a>.

        :param self:
        :param EventBusName:  The name or ARN of the event bus to associate with this rule. If you omit this, the default event bus is used.<br/>Tags:  The list of key-value pairs to associate with the rule.<br/>RoleArn:  The Amazon Resource Name (ARN) of the IAM role associated with the rule.<br/>Description:  A description of the rule.<br/>State:  Indicates whether the rule is enabled or disabled.<br/>EventPattern:  The event pattern. For more information, see <a href="https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-and-event-patterns.html">Events and Event Patterns</a> in the <i>Amazon EventBridge User Guide</i>.<br/>ScheduleExpression:  The scheduling expression. For example, "cron(0 20 * * ? *)" or "rate(5 minutes)".<br/>Name:  The name of the rule that you are creating or updating.<br/>
        :return: RuleArn:  The Amazon Resource Name (ARN) of the rule.<br/>        """
        pass

    def put_targets(self, Targets: List[Target], Rule: str, EventBusName: str=None) -> PutTargetsResponse:
        r"""Adds the specified targets to the specified rule, or updates the targets if they are already associated with the rule. Targets are the resources that are invoked when a rule is triggered. You can configure the following as targets for Events: <ul> <li>  <a href="https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-api-destinations.html">API destination</a>  </li> <li> Amazon API Gateway REST API endpoints </li> <li> API Gateway </li> <li> AWS Batch job queue </li> <li> CloudWatch Logs group </li> <li> CodeBuild project </li> <li> CodePineline </li> <li> Amazon EC2 <code>CreateSnapshot</code> API call </li> <li> Amazon EC2 <code>RebootInstances</code> API call </li> <li> Amazon EC2 <code>StopInstances</code> API call </li> <li> Amazon EC2 <code>TerminateInstances</code> API call </li> <li> Amazon ECS tasks </li> <li> Event bus in a different AWS account or Region. You can use an event bus in the US East (N. Virginia) us-east-1, US West (Oregon) us-west-2, or Europe (Ireland) eu-west-1 Regions as a target for a rule. </li> <li> Firehose delivery stream (Kinesis Data Firehose) </li> <li> Inspector assessment template (Amazon Inspector) </li> <li> Kinesis stream (Kinesis Data Stream) </li> <li> AWS Lambda function </li> <li> Redshift clusters (Data API statement execution) </li> <li> Amazon SNS topic </li> <li> Amazon SQS queues (includes FIFO queues </li> <li> SSM Automation </li> <li> SSM OpsItem </li> <li> SSM Run Command </li> <li> Step Functions state machines </li> </ul> Creating rules with built-in targets is supported only in the AWS Management Console. The built-in targets are <code>EC2 CreateSnapshot API call</code>, <code>EC2 RebootInstances API call</code>, <code>EC2 StopInstances API call</code>, and <code>EC2 TerminateInstances API call</code>.  For some target types, <code>PutTargets</code> provides target-specific parameters. If the target is a Kinesis data stream, you can optionally specify which shard the event goes to by using the <code>KinesisParameters</code> argument. To invoke a command on multiple EC2 instances with one rule, you can use the <code>RunCommandParameters</code> field. To be able to make API calls against the resources that you own, Amazon EventBridge (CloudWatch Events) needs the appropriate permissions. For AWS Lambda and Amazon SNS resources, EventBridge relies on resource-based policies. For EC2 instances, Kinesis data streams, AWS Step Functions state machines and API Gateway REST APIs, EventBridge relies on IAM roles that you specify in the <code>RoleARN</code> argument in <code>PutTargets</code>. For more information, see <a href="https://docs.aws.amazon.com/eventbridge/latest/userguide/auth-and-access-control-eventbridge.html">Authentication and Access Control</a> in the <i>Amazon EventBridge User Guide</i>. If another AWS account is in the same region and has granted you permission (using <code>PutPermission</code>), you can send events to that account. Set that account's event bus as a target of the rules in your account. To send the matched events to the other account, specify that account's event bus as the <code>Arn</code> value when you run <code>PutTargets</code>. If your account sends events to another account, your account is charged for each sent event. Each event sent to another account is charged as a custom event. The account receiving the event is not charged. For more information, see <a href="https://aws.amazon.com/eventbridge/pricing/">Amazon EventBridge (CloudWatch Events) Pricing</a>. <note>  <code>Input</code>, <code>InputPath</code>, and <code>InputTransformer</code> are not available with <code>PutTarget</code> if the target is an event bus of a different AWS account. </note> If you are setting the event bus of another account as the target, and that account granted permission to your account through an organization instead of directly by the account ID, then you must specify a <code>RoleArn</code> with proper permissions in the <code>Target</code> structure. For more information, see <a href="https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-cross-account-event-delivery.html">Sending and Receiving Events Between AWS Accounts</a> in the <i>Amazon EventBridge User Guide</i>. For more information about enabling cross-account events, see <a>PutPermission</a>.  <b>Input</b>, <b>InputPath</b>, and <b>InputTransformer</b> are mutually exclusive and optional parameters of a target. When a rule is triggered due to a matched event: <ul> <li> If none of the following arguments are specified for a target, then the entire event is passed to the target in JSON format (unless the target is Amazon EC2 Run Command or Amazon ECS task, in which case nothing from the event is passed to the target). </li> <li> If <b>Input</b> is specified in the form of valid JSON, then the matched event is overridden with this constant. </li> <li> If <b>InputPath</b> is specified in the form of JSONPath (for example, <code>$.detail</code>), then only the part of the event specified in the path is passed to the target (for example, only the detail part of the event is passed). </li> <li> If <b>InputTransformer</b> is specified, then one or more specified JSONPaths are extracted from the event and used as values in a template that you specify as the input to the target. </li> </ul> When you specify <code>InputPath</code> or <code>InputTransformer</code>, you must use JSON dot notation, not bracket notation. When you add targets to a rule and the associated rule triggers soon after, new or updated targets might not be immediately invoked. Allow a short period of time for changes to take effect. This action can partially fail if too many requests are made at the same time. If that happens, <code>FailedEntryCount</code> is non-zero in the response and each entry in <code>FailedEntries</code> provides the ID of the failed target and the error code.

        :param self:
        :param Targets:  The targets to update or add to the rule.<br/>EventBusName:  The name or ARN of the event bus associated with the rule. If you omit this, the default event bus is used.<br/>Rule:  The name of the rule.<br/>
        :return: FailedEntries:  The failed target entries.<br/>FailedEntryCount:  The number of failed entries.<br/>        """
        pass

    def remove_permission(self, StatementId: str=None, RemoveAllPermissions: Boolean=None, EventBusName: str=None):
        r"""Revokes the permission of another AWS account to be able to put events to the specified event bus. Specify the account to revoke by the <code>StatementId</code> value that you associated with the account when you granted it permission with <code>PutPermission</code>. You can find the <code>StatementId</code> by using <a>DescribeEventBus</a>.

        :param self:
        :param EventBusName:  The name of the event bus to revoke permissions for. If you omit this, the default event bus is used.<br/>RemoveAllPermissions:  Specifies whether to remove all permissions.<br/>StatementId:  The statement ID corresponding to the account that is no longer allowed to put events to the default event bus.<br/>
        :return:         """
        pass

    def remove_targets(self, Ids: List[TargetId], Rule: str, EventBusName: str=None, Force: Boolean=None) -> RemoveTargetsResponse:
        r"""Removes the specified targets from the specified rule. When the rule is triggered, those targets are no longer be invoked. When you remove a target, when the associated rule triggers, removed targets might continue to be invoked. Allow a short period of time for changes to take effect. This action can partially fail if too many requests are made at the same time. If that happens, <code>FailedEntryCount</code> is non-zero in the response and each entry in <code>FailedEntries</code> provides the ID of the failed target and the error code.

        :param self:
        :param Force:  If this is a managed rule, created by an AWS service on your behalf, you must specify <code>Force</code> as <code>True</code> to remove targets. This parameter is ignored for rules that are not managed rules. You can check whether a rule is a managed rule by using <code>DescribeRule</code> or <code>ListRules</code> and checking the <code>ManagedBy</code> field of the response.<br/>Ids:  The IDs of the targets to remove from the rule.<br/>EventBusName:  The name or ARN of the event bus associated with the rule. If you omit this, the default event bus is used.<br/>Rule:  The name of the rule.<br/>
        :return: FailedEntries:  The failed target entries.<br/>FailedEntryCount:  The number of failed entries.<br/>        """
        pass

    def start_replay(self, Destination: ReplayDestination, EventEndTime: Timestamp, EventStartTime: Timestamp, EventSourceArn: str, ReplayName: str, Description: str=None) -> StartReplayResponse:
        r"""Starts the specified replay. Events are not necessarily replayed in the exact same order that they were added to the archive. A replay processes events to replay based on the time in the event, and replays them using 1 minute intervals. If you specify an <code>EventStartTime</code> and an <code>EventEndTime</code> that covers a 20 minute time range, the events are replayed from the first minute of that 20 minute range first. Then the events from the second minute are replayed. You can use <code>DescribeReplay</code> to determine the progress of a replay. The value returned for <code>EventLastReplayedTime</code> indicates the time within the specified time range associated with the last event replayed.

        :param self:
        :param Destination:  A <code>ReplayDestination</code> object that includes details about the destination for the replay.:<br/>EventEndTime:  A time stamp for the time to stop replaying events. Only events that occurred between the <code>EventStartTime</code> and <code>EventEndTime</code> are replayed.<br/>EventStartTime:  A time stamp for the time to start replaying events. Only events that occurred between the <code>EventStartTime</code> and <code>EventEndTime</code> are replayed.<br/>EventSourceArn:  The ARN of the archive to replay events from.<br/>Description:  A description for the replay to start.<br/>ReplayName:  The name of the replay to start.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FilterArns</i> A list of ARNs for rules to replay events to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The ARN of the event bus to replay event to. You can replay events only to the event bus specified to create the archive.<br/>
        :return: ReplayStartTime:  The time at which the replay started.<br/>StateReason:  The reason that the replay is in the state.<br/>State:  The state of the replay.<br/>ReplayArn:  The ARN of the replay.<br/>        """
        pass

    def tag_resource(self, Tags: List[Tag], ResourceARN: str) -> TagResourceResponse:
        r"""Assigns one or more tags (key-value pairs) to the specified EventBridge resource. Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values. In EventBridge, rules and event buses can be tagged. Tags don't have any semantic meaning to AWS and are interpreted strictly as strings of characters. You can use the <code>TagResource</code> action with a resource that already has tags. If you specify a new tag key, this tag is appended to the list of tags associated with the resource. If you specify a tag key that is already associated with the resource, the new tag value that you specify replaces the previous value for that tag. You can associate as many as 50 tags with a resource.

        :param self:
        :param Tags:  The list of key-value pairs to associate with the resource.<br/>ResourceARN:  The ARN of the EventBridge resource that you're adding tags to.<br/>
        :return:         """
        pass

    def test_event_pattern(self, Event: str, EventPattern: str) -> TestEventPatternResponse:
        r"""Tests whether the specified event pattern matches the provided event. Most services in AWS treat : or / as the same character in Amazon Resource Names (ARNs). However, EventBridge uses an exact match in event patterns and rules. Be sure to use the correct ARN characters when creating event patterns so that they match the ARN syntax in the event you want to match.

        :param self:
        :param Event:  The event, in JSON format, to test against the event pattern. The JSON must follow the format specified in <a href="https://docs.aws.amazon.com/eventbridge/latest/userguide/aws-events.html">AWS Events</a>, and the following fields are mandatory: <ul> <li>  <code>id</code>  </li> <li>  <code>account</code>  </li> <li>  <code>source</code>  </li> <li>  <code>time</code>  </li> <li>  <code>region</code>  </li> <li>  <code>resources</code>  </li> <li>  <code>detail-type</code>  </li> </ul><br/>EventPattern:  The event pattern. For more information, see <a href="https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-and-event-patterns.html">Events and Event Patterns</a> in the <i>Amazon EventBridge User Guide</i>.<br/>
        :return: Result:  Indicates whether the event matches the event pattern.<br/>        """
        pass

    def untag_resource(self, TagKeys: List[TagKey], ResourceARN: str) -> UntagResourceResponse:
        r"""Removes one or more tags from the specified EventBridge resource. In Amazon EventBridge (CloudWatch Events), rules and event buses can be tagged.

        :param self:
        :param TagKeys:  The list of tag keys to remove from the resource.<br/>ResourceARN:  The ARN of the EventBridge resource from which you are removing tags.<br/>
        :return:         """
        pass

    def update_api_destination(self, Name: str, Description: str=None, ConnectionArn: str=None, InvocationEndpoint: str=None, HttpMethod: str=None, InvocationRateLimitPerSecond: int=None) -> UpdateApiDestinationResponse:
        r"""Updates an API destination.

        :param self:
        :param InvocationRateLimitPerSecond:  The maximum number of invocations per second to send to the API destination.<br/>HttpMethod:  The method to use for the API destination.<br/>InvocationEndpoint:  The URL to the endpoint to use for the API destination.<br/>ConnectionArn:  The ARN of the connection to use for the API destination.<br/>Description:  The name of the API destination to update.<br/>Name:  The name of the API destination to update.<br/>
        :return: LastModifiedTime:  A time stamp for the time that the API destination was last modified.<br/>CreationTime:  A time stamp for the time that the API destination was created.<br/>ApiDestinationState:  The state of the API destination that was updated.<br/>ApiDestinationArn:  The ARN of the API destination that was updated.<br/>        """
        pass

    def update_archive(self, ArchiveName: str, Description: str=None, EventPattern: str=None, RetentionDays: int=None) -> UpdateArchiveResponse:
        r"""Updates the specified archive.

        :param self:
        :param RetentionDays:  The number of days to retain events in the archive.<br/>EventPattern:  The event pattern to use to filter events sent to the archive.<br/>Description:  The description for the archive.<br/>ArchiveName:  The name of the archive to update.<br/>
        :return: CreationTime:  The time at which the archive was updated.<br/>StateReason:  The reason that the archive is in the current state.<br/>State:  The state of the archive.<br/>ArchiveArn:  The ARN of the archive.<br/>        """
        pass

    def update_connection(self, Name: str, Description: str=None, AuthorizationType: str=None, AuthParameters: UpdateConnectionAuthRequestParameters=None) -> UpdateConnectionResponse:
        r"""Updates settings for a connection.

        :param self:
        :param AuthParameters:  The authorization parameters to use for the connection.:<br/>AuthorizationType:  The type of authorization to use for the connection.<br/>Description:  A description for the connection.<br/>Name:  The name of the connection to update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InvocationHttpParameters</i> A <code>ConnectionHttpParameters</code> object that contains the additional parameters to use for the connection.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>InvocationHttpParameters</b>: A <code>ConnectionHttpParameters</code> object that contains the additional parameters to use for the connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApiKeyAuthParameters</i> A <code>UpdateConnectionApiKeyAuthRequestParameters</code> object that contains the authorization parameters for API key authorization.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ApiKeyAuthParameters</b>: A <code>UpdateConnectionApiKeyAuthRequestParameters</code> object that contains the authorization parameters for API key authorization.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OAuthParameters</i> A <code>UpdateConnectionOAuthRequestParameters</code> object that contains the authorization parameters for OAuth authorization.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>OAuthParameters</b>: A <code>UpdateConnectionOAuthRequestParameters</code> object that contains the authorization parameters for OAuth authorization.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BasicAuthParameters</i> A <code>UpdateConnectionBasicAuthRequestParameters</code> object that contains the authorization parameters for Basic authorization.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>BasicAuthParameters</b>: A <code>UpdateConnectionBasicAuthRequestParameters</code> object that contains the authorization parameters for Basic authorization.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Password</i> The password associated with the user name to use for Basic authorization.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Username</i> The user name to use for Basic authorization.<br/>A <code>UpdateConnectionOAuthClientRequestParameters</code> object that contains the client parameters to use for the connection when OAuth is specified as the authorization type.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ClientParameters</b>: A <code>UpdateConnectionOAuthClientRequestParameters</code> object that contains the client parameters to use for the connection when OAuth is specified as the authorization type.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ApiKeyValue</i> The value associated with teh API key to use for authorization.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ApiKeyName</i> The name of the API key to use for authorization.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BodyParameters</i> Contains additional body string parameters for the connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>QueryStringParameters</i> Contains additional query string parameters for the connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HeaderParameters</i> Contains additional header parameters for the connection.<br/>
        :return: LastAuthorizedTime:  A time stamp for the time that the connection was last authorized.<br/>LastModifiedTime:  A time stamp for the time that the connection was last modified.<br/>CreationTime:  A time stamp for the time that the connection was created.<br/>ConnectionState:  The state of the connection that was updated.<br/>ConnectionArn:  The ARN of the connection that was updated.<br/>        """
        pass





class finspace(BaseClient):
    r"""The FinSpace management service provides the APIs for managing the FinSpace environments. """




    class CreateEnvironmentRequest(Mapping):
        pass
    
    class CreateEnvironmentResponse(Mapping):
        pass
    
    class TagMap(object):
        pass
    
    class FederationParameters(Mapping):
        pass
    
    class DeleteEnvironmentRequest(Mapping):
        pass
    
    class DeleteEnvironmentResponse(Mapping):
        pass
    
    class GetEnvironmentRequest(Mapping):
        pass
    
    class GetEnvironmentResponse(Mapping):
        pass
    
    class ListEnvironmentsRequest(Mapping):
        pass
    
    class ListEnvironmentsResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateEnvironmentRequest(Mapping):
        pass
    
    class UpdateEnvironmentResponse(Mapping):
        pass
    
    def create_environment(self, name: str, description: str=None, kmsKeyId: str=None, tags: TagMap=None, federationMode: str=None, federationParameters: FederationParameters=None) -> CreateEnvironmentResponse:
        r"""Create a new FinSpace environment.

        :param self:
        :param federationParameters:  Configuration information when authentication mode is FEDERATED.:<br/>federationMode:  Authentication mode for the environment. <ul> <li>  <code>FEDERATED</code> - Users access FinSpace through Single Sign On (SSO) via your Identity provider. </li> <li>  <code>LOCAL</code> - Users access FinSpace via email and password managed within the FinSpace environment. </li> </ul><br/>tags:  Add tags to your FinSpace environment.<br/>kmsKeyId:  The KMS key id to encrypt your data in the FinSpace environment.<br/>description:  The description of the FinSpace environment to be created.<br/>name:  The name of the FinSpace environment to be created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>attributeMap</i> SAML attribute name and value. The name must always be <code>Email</code> and the value should be set to the attribute definition in which user email is set. For example, name would be <code>Email</code> and value <code>http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress</code>. Please check your SAML 2.0 compliant identity provider (IdP) documentation for details.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>federationProviderName</i> Name of the identity provider (IdP).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>federationURN</i> The Uniform Resource Name (URN). Also referred as Service Provider URN or Audience URI or Service Provider Entity ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>applicationCallBackURL</i> The redirect or sign-in URL that should be entered into the SAML 2.0 compliant identity provider configuration (IdP).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>samlMetadataURL</i> Provide the metadata URL from your SAML 2.0 compliant identity provider (IdP).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>samlMetadataDocument</i> SAML 2.0 Metadata document from identity provider (IdP).<br/>
        :return: environmentUrl:  The sign-in url for the web application of the FinSpace environment you created.<br/>environmentArn:  The Amazon Resource Name (ARN) of the FinSpace environment that you created.<br/>environmentId:  The unique identifier for FinSpace environment that you created.<br/>        """
        pass

    def delete_environment(self, environmentId: str) -> DeleteEnvironmentResponse:
        r"""Delete an FinSpace environment.

        :param self:
        :param environmentId:  The identifier for the FinSpace environment.<br/>
        :return:         """
        pass

    def get_environment(self, environmentId: str) -> GetEnvironmentResponse:
        r"""Returns the FinSpace environment object.

        :param self:
        :param environmentId:  The identifier of the FinSpace environment.<br/>
        :return: environment:  The name of the FinSpace environment.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>federationParameters</i> Configuration information when authentication mode is FEDERATED.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>federationParameters</b>: Configuration information when authentication mode is FEDERATED.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>federationMode</i> The authentication mode for the environment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>dedicatedServiceAccountId</i> The AWS account ID of the dedicated service account associated with your FinSpace environment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>kmsKeyId</i> The KMS key id used to encrypt in the FinSpace environment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>sageMakerStudioDomainUrl</i> The url of the integrated FinSpace notebook environment in your web application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>environmentArn</i> The Amazon Resource Name (ARN) of your FinSpace environment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> The description of the FinSpace environment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>environmentUrl</i> The sign-in url for the web application of your FinSpace environment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current status of creation of the FinSpace environment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>awsAccountId</i> The ID of the AWS account in which the FinSpace environment is created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>environmentId</i> The identifier of the FinSpace environment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the FinSpace environment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>attributeMap</i> SAML attribute name and value. The name must always be <code>Email</code> and the value should be set to the attribute definition in which user email is set. For example, name would be <code>Email</code> and value <code>http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress</code>. Please check your SAML 2.0 compliant identity provider (IdP) documentation for details.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>federationProviderName</i> Name of the identity provider (IdP).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>federationURN</i> The Uniform Resource Name (URN). Also referred as Service Provider URN or Audience URI or Service Provider Entity ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>applicationCallBackURL</i> The redirect or sign-in URL that should be entered into the SAML 2.0 compliant identity provider configuration (IdP).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>samlMetadataURL</i> Provide the metadata URL from your SAML 2.0 compliant identity provider (IdP).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>samlMetadataDocument</i> SAML 2.0 Metadata document from identity provider (IdP).<br/>        """
        pass

    def list_environments(self, nextToken: str=None, maxResults: int=None) -> ListEnvironmentsResponse:
        r"""A list of all of your FinSpace environments.

        :param self:
        :param maxResults:  The maximum number of results to return in this request.<br/>nextToken:  A token generated by FinSpace that specifies where to continue pagination if a previous request was truncated. To get the next set of pages, pass in the nextToken value from the response object of the previous page call.<br/>
        :return: nextToken:  A token that you can use in a subsequent call to retrieve the next set of results.<br/>environments:  A list of all of your FinSpace environments.<br/>        """
        pass

    def list_tags_for_resource(self, resourceArn: str) -> ListTagsForResourceResponse:
        r"""A list of all tags for a resource.

        :param self:
        :param resourceArn:  The Amazon Resource Name of the resource.<br/>
        :return: tags:  A list of all tags for a resource.<br/>        """
        pass

    def tag_resource(self, tags: TagMap, resourceArn: str) -> TagResourceResponse:
        r"""Adds metadata tags to a FinSpace resource.

        :param self:
        :param tags:  One or more tags to be assigned to the resource.<br/>resourceArn:  The Amazon Resource Name (ARN) for the resource.<br/>
        :return:         """
        pass

    def untag_resource(self, tagKeys: List[TagKey], resourceArn: str) -> UntagResourceResponse:
        r"""Removes metadata tags from a FinSpace resource.

        :param self:
        :param tagKeys:  The tag keys (names) of one or more tags to be removed.<br/>resourceArn:  A FinSpace resource from which you want to remove a tag or tags. The value for this parameter is an Amazon Resource Name (ARN).<br/>
        :return:         """
        pass

    def update_environment(self, environmentId: str, name: str=None, description: str=None, federationMode: str=None, federationParameters: FederationParameters=None) -> UpdateEnvironmentResponse:
        r"""Update your FinSpace environment.

        :param self:
        :param federationParameters:  Configuration information when authentication mode is FEDERATED.:<br/>federationMode:  Authentication mode for the environment. <ul> <li>  <code>FEDERATED</code> - Users access FinSpace through Single Sign On (SSO) via your Identity provider. </li> <li>  <code>LOCAL</code> - Users access FinSpace via email and password managed within the FinSpace environment. </li> </ul><br/>description:  The description of the environment.<br/>name:  The name of the environment.<br/>environmentId:  The identifier of the FinSpace environment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>attributeMap</i> SAML attribute name and value. The name must always be <code>Email</code> and the value should be set to the attribute definition in which user email is set. For example, name would be <code>Email</code> and value <code>http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress</code>. Please check your SAML 2.0 compliant identity provider (IdP) documentation for details.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>federationProviderName</i> Name of the identity provider (IdP).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>federationURN</i> The Uniform Resource Name (URN). Also referred as Service Provider URN or Audience URI or Service Provider Entity ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>applicationCallBackURL</i> The redirect or sign-in URL that should be entered into the SAML 2.0 compliant identity provider configuration (IdP).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>samlMetadataURL</i> Provide the metadata URL from your SAML 2.0 compliant identity provider (IdP).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>samlMetadataDocument</i> SAML 2.0 Metadata document from identity provider (IdP).<br/>
        :return: environment:  Returns the FinSpace environment object.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>federationParameters</i> Configuration information when authentication mode is FEDERATED.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>federationParameters</b>: Configuration information when authentication mode is FEDERATED.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>federationMode</i> The authentication mode for the environment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>dedicatedServiceAccountId</i> The AWS account ID of the dedicated service account associated with your FinSpace environment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>kmsKeyId</i> The KMS key id used to encrypt in the FinSpace environment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>sageMakerStudioDomainUrl</i> The url of the integrated FinSpace notebook environment in your web application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>environmentArn</i> The Amazon Resource Name (ARN) of your FinSpace environment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> The description of the FinSpace environment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>environmentUrl</i> The sign-in url for the web application of your FinSpace environment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current status of creation of the FinSpace environment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>awsAccountId</i> The ID of the AWS account in which the FinSpace environment is created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>environmentId</i> The identifier of the FinSpace environment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the FinSpace environment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>attributeMap</i> SAML attribute name and value. The name must always be <code>Email</code> and the value should be set to the attribute definition in which user email is set. For example, name would be <code>Email</code> and value <code>http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress</code>. Please check your SAML 2.0 compliant identity provider (IdP) documentation for details.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>federationProviderName</i> Name of the identity provider (IdP).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>federationURN</i> The Uniform Resource Name (URN). Also referred as Service Provider URN or Audience URI or Service Provider Entity ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>applicationCallBackURL</i> The redirect or sign-in URL that should be entered into the SAML 2.0 compliant identity provider configuration (IdP).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>samlMetadataURL</i> Provide the metadata URL from your SAML 2.0 compliant identity provider (IdP).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>samlMetadataDocument</i> SAML 2.0 Metadata document from identity provider (IdP).<br/>        """
        pass





class FinSpaceData(BaseClient):
    r""" The FinSpace APIs let you take actions inside the FinSpace environment. """




    class CreateChangesetRequest(Mapping):
        pass
    
    class CreateChangesetResponse(Mapping):
        pass
    
    class stringMap(object):
        pass
    
    class GetProgrammaticAccessCredentialsRequest(Mapping):
        pass
    
    class GetProgrammaticAccessCredentialsResponse(Mapping):
        pass
    
    class SessionDuration(object):
        pass
    
    class GetWorkingLocationRequest(Mapping):
        pass
    
    class GetWorkingLocationResponse(Mapping):
        pass
    
    def create_changeset(self, sourceParams: stringMap, sourceType: str, changeType: str, datasetId: str, formatType: str=None, formatParams: stringMap=None, tags: stringMap=None) -> CreateChangesetResponse:
        r"""Creates a new changeset in a FinSpace dataset.

        :param self:
        :param tags:  Metadata tags to apply to this changeset.<br/>formatParams:  Options that define the structure of the source file(s).<br/>formatType:  Format type of the input files being loaded into the changeset.<br/>sourceParams:  Source path from which the files to create the changeset will be sourced.<br/>sourceType:  Type of the data source from which the files to create the changeset will be sourced. <ul> <li>  <code>S3</code> - Amazon S3. </li> </ul><br/>changeType:  Option to indicate how a changeset will be applied to a dataset. <ul> <li>  <code>REPLACE</code> - Changeset will be considered as a replacement to all prior loaded changesets. </li> <li>  <code>APPEND</code> - Changeset will be considered as an addition to the end of all prior loaded changesets. </li> </ul><br/>datasetId:  The unique identifier for the FinSpace dataset in which the changeset will be created.<br/>
        :return: changeset:  Returns the changeset details.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>updatedByChangesetId</i> Unique identifier of the changeset that is updated a changeset.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>updatesChangesetId</i> Unique identifier of the changeset that is updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>changesetLabels</i> Tags associated with the changeset.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>errorInfo</i> The structure with error messages.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>errorInfo</b>: The structure with error messages.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of changeset creation operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createTimestamp</i> The timestamp at which the changeset was created in FinSpace.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>formatParams</i> Structure of the source file(s).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>formatType</i> Format type of the input files loaded into the changeset.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>sourceParams</i> Source path from which the files to create the changeset are sourced.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>sourceType</i> Type of the data source from which the files to create the changeset are sourced. <ul> <li>  <code>S3</code> - Amazon S3. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>changeType</i> Change type indicates how a changeset is applied to a dataset. <ul> <li>  <code>REPLACE</code> - Changeset is considered as a replacement to all prior loaded changesets. </li> <li>  <code>APPEND</code> - Changeset is considered as an addition to the end of all prior loaded changesets. </li> <li>  <code>MODIFY</code> - Changeset is considered as a replacement to a specific prior ingested changeset. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>datasetId</i> The unique identifier for the FinSpace dataset in which the changeset is created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>changesetArn</i> The ARN identifier of the changeset.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> Unique identifier for a changeset.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>errorCategory</i> The category of the error. <ul> <li>  <code>VALIDATION</code> -The inputs to this request are invalid. </li> <li>  <code>SERVICE_QUOTA_EXCEEDED</code> - Service quotas have been exceeded. Please contact AWS support to increase quotas. </li> <li>  <code>ACCESS_DENIED</code> - Missing required permission to perform this request. </li> <li>  <code>RESOURCE_NOT_FOUND</code> - One or more inputs to this request were not found. </li> <li>  <code>THROTTLING</code> - The system temporarily lacks sufficient resources to process the request. </li> <li>  <code>INTERNAL_SERVICE_EXCEPTION</code> - An internal service error has occurred. </li> <li>  <code>CANCELLED</code> - A user recoverable error has occurred. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>errorMessage</i> The text of the error message.<br/>        """
        pass

    def get_programmatic_access_credentials(self, environmentId: str, durationInMinutes: SessionDuration=None) -> GetProgrammaticAccessCredentialsResponse:
        r"""Request programmatic credentials to use with Habanero SDK.

        :param self:
        :param environmentId:  The habanero environment identifier.<br/>durationInMinutes:  The time duration in which the credentials remain valid. <br/>
        :return: durationInMinutes:  Returns the duration in which the credentials will remain valid.<br/>credentials:  Returns the programmatic credentials.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>sessionToken</i> The session token.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>secretAccessKey</i> The access key.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>accessKeyId</i> The access key identifier.<br/>        """
        pass

    def get_working_location(self, locationType: str=None) -> GetWorkingLocationResponse:
        r"""A temporary Amazon S3 location to copy your files from a source location to stage or use as a scratch space in Habanero notebook.

        :param self:
        :param locationType:  Specify the type of the working location. <ul> <li>  <code>SAGEMAKER</code> - Use the Amazon S3 location as a temporary location to store data content when working with FinSpace Notebooks that run on SageMaker studio. </li> <li>  <code>INGESTION</code> - Use the Amazon S3 location as a staging location to copy your data content and then use the location with the changeset creation operation. </li> </ul><br/>
        :return: s3Bucket:  Returns the Amazon S3 bucket name for the working location.<br/>s3Path:  Returns the Amazon S3 Path for the working location.<br/>s3Uri:  Returns the Amazon S3 URI for the working location.<br/>        """
        pass





class Firehose(BaseClient):
    r"""<fullname>Amazon Kinesis Data Firehose API Reference</fullname> Amazon Kinesis Data Firehose is a fully managed service that delivers real-time streaming data to destinations such as Amazon Simple Storage Service (Amazon S3), Amazon Elasticsearch Service (Amazon ES), Amazon Redshift, and Splunk."""




    class CreateDeliveryStreamInput(Mapping):
        pass
    
    class CreateDeliveryStreamOutput(Mapping):
        pass
    
    class KinesisStreamSourceConfiguration(Mapping):
        pass
    
    class DeliveryStreamEncryptionConfigurationInput(Mapping):
        pass
    
    class S3DestinationConfiguration(Mapping):
        pass
    
    class ExtendedS3DestinationConfiguration(Mapping):
        pass
    
    class RedshiftDestinationConfiguration(Mapping):
        pass
    
    class ElasticsearchDestinationConfiguration(Mapping):
        pass
    
    class SplunkDestinationConfiguration(Mapping):
        pass
    
    class HttpEndpointDestinationConfiguration(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class DeleteDeliveryStreamInput(Mapping):
        pass
    
    class DeleteDeliveryStreamOutput(Mapping):
        pass
    
    class BooleanObject(object):
        pass
    
    class DescribeDeliveryStreamInput(Mapping):
        pass
    
    class DescribeDeliveryStreamOutput(Mapping):
        pass
    
    class ListDeliveryStreamsInput(Mapping):
        pass
    
    class ListDeliveryStreamsOutput(Mapping):
        pass
    
    class ListTagsForDeliveryStreamInput(Mapping):
        pass
    
    class ListTagsForDeliveryStreamOutput(Mapping):
        pass
    
    class PutRecordInput(Mapping):
        pass
    
    class PutRecordOutput(Mapping):
        pass
    
    class Record(Mapping):
        pass
    
    class PutRecordBatchInput(Mapping):
        pass
    
    class PutRecordBatchOutput(Mapping):
        pass
    
    class StartDeliveryStreamEncryptionInput(Mapping):
        pass
    
    class StartDeliveryStreamEncryptionOutput(Mapping):
        pass
    
    class StopDeliveryStreamEncryptionInput(Mapping):
        pass
    
    class StopDeliveryStreamEncryptionOutput(Mapping):
        pass
    
    class TagDeliveryStreamInput(Mapping):
        pass
    
    class TagDeliveryStreamOutput(Mapping):
        pass
    
    class UntagDeliveryStreamInput(Mapping):
        pass
    
    class UntagDeliveryStreamOutput(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateDestinationInput(Mapping):
        pass
    
    class UpdateDestinationOutput(Mapping):
        pass
    
    class S3DestinationUpdate(Mapping):
        pass
    
    class ExtendedS3DestinationUpdate(Mapping):
        pass
    
    class RedshiftDestinationUpdate(Mapping):
        pass
    
    class ElasticsearchDestinationUpdate(Mapping):
        pass
    
    class SplunkDestinationUpdate(Mapping):
        pass
    
    class HttpEndpointDestinationUpdate(Mapping):
        pass
    
    def create_delivery_stream(self, DeliveryStreamName: str, DeliveryStreamType: str=None, KinesisStreamSourceConfiguration: KinesisStreamSourceConfiguration=None, DeliveryStreamEncryptionConfigurationInput: DeliveryStreamEncryptionConfigurationInput=None, S3DestinationConfiguration: S3DestinationConfiguration=None, ExtendedS3DestinationConfiguration: ExtendedS3DestinationConfiguration=None, RedshiftDestinationConfiguration: RedshiftDestinationConfiguration=None, ElasticsearchDestinationConfiguration: ElasticsearchDestinationConfiguration=None, SplunkDestinationConfiguration: SplunkDestinationConfiguration=None, HttpEndpointDestinationConfiguration: HttpEndpointDestinationConfiguration=None, Tags: List[Tag]=None) -> CreateDeliveryStreamOutput:
        r"""Creates a Kinesis Data Firehose delivery stream. By default, you can create up to 50 delivery streams per AWS Region. This is an asynchronous operation that immediately returns. The initial status of the delivery stream is <code>CREATING</code>. After the delivery stream is created, its status is <code>ACTIVE</code> and it now accepts data. If the delivery stream creation fails, the status transitions to <code>CREATING_FAILED</code>. Attempts to send data to a delivery stream that is not in the <code>ACTIVE</code> state cause an exception. To check the state of a delivery stream, use <a>DescribeDeliveryStream</a>. If the status of a delivery stream is <code>CREATING_FAILED</code>, this status doesn't change, and you can't invoke <code>CreateDeliveryStream</code> again on it. However, you can invoke the <a>DeleteDeliveryStream</a> operation to delete it. A Kinesis Data Firehose delivery stream can be configured to receive records directly from providers using <a>PutRecord</a> or <a>PutRecordBatch</a>, or it can be configured to use an existing Kinesis stream as its source. To specify a Kinesis data stream as input, set the <code>DeliveryStreamType</code> parameter to <code>KinesisStreamAsSource</code>, and provide the Kinesis stream Amazon Resource Name (ARN) and role ARN in the <code>KinesisStreamSourceConfiguration</code> parameter. To create a delivery stream with server-side encryption (SSE) enabled, include <a>DeliveryStreamEncryptionConfigurationInput</a> in your request. This is optional. You can also invoke <a>StartDeliveryStreamEncryption</a> to turn on SSE for an existing delivery stream that doesn't have SSE enabled. A delivery stream is configured with a single destination: Amazon S3, Amazon ES, Amazon Redshift, or Splunk. You must specify only one of the following destination configuration parameters: <code>ExtendedS3DestinationConfiguration</code>, <code>S3DestinationConfiguration</code>, <code>ElasticsearchDestinationConfiguration</code>, <code>RedshiftDestinationConfiguration</code>, or <code>SplunkDestinationConfiguration</code>. When you specify <code>S3DestinationConfiguration</code>, you can also provide the following optional values: BufferingHints, <code>EncryptionConfiguration</code>, and <code>CompressionFormat</code>. By default, if no <code>BufferingHints</code> value is provided, Kinesis Data Firehose buffers data up to 5 MB or for 5 minutes, whichever condition is satisfied first. <code>BufferingHints</code> is a hint, so there are some cases where the service cannot adhere to these conditions strictly. For example, record boundaries might be such that the size is a little over or under the configured buffering size. By default, no encryption is performed. We strongly recommend that you enable encryption to ensure secure data storage in Amazon S3. A few notes about Amazon Redshift as a destination: <ul> <li> An Amazon Redshift destination requires an S3 bucket as intermediate location. Kinesis Data Firehose first delivers data to Amazon S3 and then uses <code>COPY</code> syntax to load data into an Amazon Redshift table. This is specified in the <code>RedshiftDestinationConfiguration.S3Configuration</code> parameter. </li> <li> The compression formats <code>SNAPPY</code> or <code>ZIP</code> cannot be specified in <code>RedshiftDestinationConfiguration.S3Configuration</code> because the Amazon Redshift <code>COPY</code> operation that reads from the S3 bucket doesn't support these compression formats. </li> <li> We strongly recommend that you use the user name and password you provide exclusively with Kinesis Data Firehose, and that the permissions for the account are restricted for Amazon Redshift <code>INSERT</code> permissions. </li> </ul> Kinesis Data Firehose assumes the IAM role that is configured as part of the destination. The role should allow the Kinesis Data Firehose principal to assume the role, and the role should have permissions that allow the service to deliver the data. For more information, see <a href="https://docs.aws.amazon.com/firehose/latest/dev/controlling-access.html#using-iam-s3">Grant Kinesis Data Firehose Access to an Amazon S3 Destination</a> in the <i>Amazon Kinesis Data Firehose Developer Guide</i>.

        :param self:
        :param Tags:  A set of tags to assign to the delivery stream. A tag is a key-value pair that you can define and assign to AWS resources. Tags are metadata. For example, you can add friendly names and descriptions or other types of information that can help you distinguish the delivery stream. For more information about tags, see <a href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html">Using Cost Allocation Tags</a> in the AWS Billing and Cost Management User Guide. You can specify up to 50 tags when creating a delivery stream.<br/>HttpEndpointDestinationConfiguration:  Enables configuring Kinesis Firehose to deliver data to any HTTP endpoint destination. You can specify only one destination.:<br/>SplunkDestinationConfiguration:  The destination in Splunk. You can specify only one destination.:<br/>ElasticsearchDestinationConfiguration:  The destination in Amazon ES. You can specify only one destination.:<br/>RedshiftDestinationConfiguration:  The destination in Amazon Redshift. You can specify only one destination.:<br/>ExtendedS3DestinationConfiguration:  The destination in Amazon S3. You can specify only one destination.:<br/>S3DestinationConfiguration:  [Deprecated] The destination in Amazon S3. You can specify only one destination.:<br/>DeliveryStreamEncryptionConfigurationInput:  Used to specify the type and Amazon Resource Name (ARN) of the KMS key needed for Server-Side Encryption (SSE).:<br/>KinesisStreamSourceConfiguration:  When a Kinesis data stream is used as the source for the delivery stream, a <a>KinesisStreamSourceConfiguration</a> containing the Kinesis data stream Amazon Resource Name (ARN) and the role ARN for the source stream.:<br/>DeliveryStreamType:  The delivery stream type. This parameter can be one of the following values: <ul> <li>  <code>DirectPut</code>: Provider applications access the delivery stream directly. </li> <li>  <code>KinesisStreamAsSource</code>: The delivery stream uses a Kinesis data stream as a source. </li> </ul><br/>DeliveryStreamName:  The name of the delivery stream. This name must be unique per AWS account in the same AWS Region. If the delivery streams are in different accounts or different Regions, you can have multiple delivery streams with the same name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleARN</i> The ARN of the role that provides access to the source Kinesis data stream. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-iam">AWS Identity and Access Management (IAM) ARN Format</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KinesisStreamARN</i> The ARN of the source Kinesis data stream. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-kinesis-streams">Amazon Kinesis Data Streams ARN Format</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KeyType</i> Indicates the type of customer master key (CMK) to use for encryption. The default setting is <code>AWS_OWNED_CMK</code>. For more information about CMKs, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#master_keys">Customer Master Keys (CMKs)</a>. When you invoke <a>CreateDeliveryStream</a> or <a>StartDeliveryStreamEncryption</a> with <code>KeyType</code> set to CUSTOMER_MANAGED_CMK, Kinesis Data Firehose invokes the Amazon KMS operation <a href="https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html">CreateGrant</a> to create a grant that allows the Kinesis Data Firehose service to use the customer managed CMK to perform encryption and decryption. Kinesis Data Firehose manages that grant.  When you invoke <a>StartDeliveryStreamEncryption</a> to change the CMK for a delivery stream that is encrypted with a customer managed CMK, Kinesis Data Firehose schedules the grant it had on the old CMK for retirement. You can use a CMK of type CUSTOMER_MANAGED_CMK to encrypt up to 500 delivery streams. If a <a>CreateDeliveryStream</a> or <a>StartDeliveryStreamEncryption</a> operation exceeds this limit, Kinesis Data Firehose throws a <code>LimitExceededException</code>.  <important> To encrypt your delivery stream, use symmetric CMKs. Kinesis Data Firehose doesn't support asymmetric CMKs. For information about symmetric and asymmetric CMKs, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/symm-asymm-concepts.html">About Symmetric and Asymmetric CMKs</a> in the AWS Key Management Service developer guide. </important><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KeyARN</i> If you set <code>KeyType</code> to <code>CUSTOMER_MANAGED_CMK</code>, you must specify the Amazon Resource Name (ARN) of the CMK. If you set <code>KeyType</code> to <code>AWS_OWNED_CMK</code>, Kinesis Data Firehose uses a service-account CMK.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudWatchLoggingOptions</i> The CloudWatch logging options for your delivery stream.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CloudWatchLoggingOptions</b>: The CloudWatch logging options for your delivery stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EncryptionConfiguration</i> The encryption configuration. If no value is specified, the default is no encryption.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EncryptionConfiguration</b>: The encryption configuration. If no value is specified, the default is no encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CompressionFormat</i> The compression format. If no value is specified, the default is <code>UNCOMPRESSED</code>. The compression formats <code>SNAPPY</code> or <code>ZIP</code> cannot be specified for Amazon Redshift destinations because they are not supported by the Amazon Redshift <code>COPY</code> operation that reads from the S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BufferingHints</i> The buffering option. If no value is specified, <code>BufferingHints</code> object default values are used.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>BufferingHints</b>: The buffering option. If no value is specified, <code>BufferingHints</code> object default values are used.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorOutputPrefix</i> A prefix that Kinesis Data Firehose evaluates and adds to failed records before writing them to S3. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see <a href="https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html">Custom Prefixes for Amazon S3 Objects</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Prefix</i> The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered Amazon S3 files. You can also specify a custom prefix, as described in <a href="https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html">Custom Prefixes for Amazon S3 Objects</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BucketARN</i> The ARN of the S3 bucket. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleARN</i> The Amazon Resource Name (ARN) of the AWS credentials. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IntervalInSeconds</i> Buffer incoming data for the specified period of time, in seconds, before delivering it to the destination. The default value is 300. This parameter is optional but if you specify a value for it, you must also specify a value for <code>SizeInMBs</code>, and vice versa.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SizeInMBs</i> Buffer incoming data to the specified size, in MiBs, before delivering it to the destination. The default value is 5. This parameter is optional but if you specify a value for it, you must also specify a value for <code>IntervalInSeconds</code>, and vice versa. We recommend setting this parameter to a value greater than the amount of data you typically ingest into the delivery stream in 10 seconds. For example, if you typically ingest data at 1 MiB/sec, the value should be 10 MiB or higher.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NoEncryptionConfig</i> Specifically override existing encryption information to ensure that no encryption is used.<br/>The encryption key.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>KMSEncryptionConfig</b>: The encryption key.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LogStreamName</i> The CloudWatch log stream name for logging. This value is required if CloudWatch logging is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LogGroupName</i> The CloudWatch group name for logging. This value is required if CloudWatch logging is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Enables or disables CloudWatch logging.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataFormatConversionConfiguration</i> The serializer, deserializer, and schema for converting data from the JSON format to the Parquet or ORC format before writing it to Amazon S3.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DataFormatConversionConfiguration</b>: The serializer, deserializer, and schema for converting data from the JSON format to the Parquet or ORC format before writing it to Amazon S3.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3BackupConfiguration</i> The configuration for backup in Amazon S3.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3BackupConfiguration</b>: The configuration for backup in Amazon S3.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3BackupMode</i> The Amazon S3 backup mode. After you create a delivery stream, you can update it to enable Amazon S3 backup if it is disabled. If backup is enabled, you can't update the delivery stream to disable it. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProcessingConfiguration</i> The data processing configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ProcessingConfiguration</b>: The data processing configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudWatchLoggingOptions</i> The Amazon CloudWatch logging options for your delivery stream.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CloudWatchLoggingOptions</b>: The Amazon CloudWatch logging options for your delivery stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EncryptionConfiguration</i> The encryption configuration. If no value is specified, the default is no encryption.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EncryptionConfiguration</b>: The encryption configuration. If no value is specified, the default is no encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CompressionFormat</i> The compression format. If no value is specified, the default is UNCOMPRESSED.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BufferingHints</i> The buffering option.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>BufferingHints</b>: The buffering option.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorOutputPrefix</i> A prefix that Kinesis Data Firehose evaluates and adds to failed records before writing them to S3. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see <a href="https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html">Custom Prefixes for Amazon S3 Objects</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Prefix</i> The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered Amazon S3 files. You can also specify a custom prefix, as described in <a href="https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html">Custom Prefixes for Amazon S3 Objects</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BucketARN</i> The ARN of the S3 bucket. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleARN</i> The Amazon Resource Name (ARN) of the AWS credentials. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IntervalInSeconds</i> Buffer incoming data for the specified period of time, in seconds, before delivering it to the destination. The default value is 300. This parameter is optional but if you specify a value for it, you must also specify a value for <code>SizeInMBs</code>, and vice versa.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SizeInMBs</i> Buffer incoming data to the specified size, in MiBs, before delivering it to the destination. The default value is 5. This parameter is optional but if you specify a value for it, you must also specify a value for <code>IntervalInSeconds</code>, and vice versa. We recommend setting this parameter to a value greater than the amount of data you typically ingest into the delivery stream in 10 seconds. For example, if you typically ingest data at 1 MiB/sec, the value should be 10 MiB or higher.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NoEncryptionConfig</i> Specifically override existing encryption information to ensure that no encryption is used.<br/>The encryption key.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>KMSEncryptionConfig</b>: The encryption key.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LogStreamName</i> The CloudWatch log stream name for logging. This value is required if CloudWatch logging is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LogGroupName</i> The CloudWatch group name for logging. This value is required if CloudWatch logging is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Enables or disables CloudWatch logging.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Processors</i> The data processors.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Enables or disables data processing.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorOutputPrefix</i> A prefix that Kinesis Data Firehose evaluates and adds to failed records before writing them to S3. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see <a href="https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html">Custom Prefixes for Amazon S3 Objects</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Prefix</i> The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered Amazon S3 files. You can also specify a custom prefix, as described in <a href="https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html">Custom Prefixes for Amazon S3 Objects</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BucketARN</i> The ARN of the S3 bucket. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleARN</i> The Amazon Resource Name (ARN) of the AWS credentials. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a>.<br/>The buffering option. If no value is specified, <code>BufferingHints</code> object default values are used.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>BufferingHints</b>: The buffering option. If no value is specified, <code>BufferingHints</code> object default values are used.Specifies the AWS Glue Data Catalog table that contains the column information. This parameter is required if <code>Enabled</code> is set to true.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SchemaConfiguration</b>: Specifies the AWS Glue Data Catalog table that contains the column information. This parameter is required if <code>Enabled</code> is set to true.&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudWatchLoggingOptions</i> The CloudWatch logging options for your delivery stream.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CloudWatchLoggingOptions</b>: The CloudWatch logging options for your delivery stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3BackupConfiguration</i> The configuration for backup in Amazon S3.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3BackupConfiguration</b>: The configuration for backup in Amazon S3.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3BackupMode</i> The Amazon S3 backup mode. After you create a delivery stream, you can update it to enable Amazon S3 backup if it is disabled. If backup is enabled, you can't update the delivery stream to disable it. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProcessingConfiguration</i> The data processing configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ProcessingConfiguration</b>: The data processing configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Configuration</i> The configuration for the intermediate Amazon S3 location from which Amazon Redshift obtains data. Restrictions are described in the topic for <a>CreateDeliveryStream</a>. The compression formats <code>SNAPPY</code> or <code>ZIP</code> cannot be specified in <code>RedshiftDestinationConfiguration.S3Configuration</code> because the Amazon Redshift <code>COPY</code> operation that reads from the S3 bucket doesn't support these compression formats.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3Configuration</b>: The configuration for the intermediate Amazon S3 location from which Amazon Redshift obtains data. Restrictions are described in the topic for <a>CreateDeliveryStream</a>. The compression formats <code>SNAPPY</code> or <code>ZIP</code> cannot be specified in <code>RedshiftDestinationConfiguration.S3Configuration</code> because the Amazon Redshift <code>COPY</code> operation that reads from the S3 bucket doesn't support these compression formats.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RetryOptions</i> The retry behavior in case Kinesis Data Firehose is unable to deliver documents to Amazon Redshift. Default value is 3600 (60 minutes).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RetryOptions</b>: The retry behavior in case Kinesis Data Firehose is unable to deliver documents to Amazon Redshift. Default value is 3600 (60 minutes).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Password</i> The user password.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Username</i> The name of the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CopyCommand</i> The <code>COPY</code> command.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CopyCommand</b>: The <code>COPY</code> command.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterJDBCURL</i> The database connection string.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleARN</i> The Amazon Resource Name (ARN) of the AWS credentials. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CopyOptions</i> Optional parameters to use with the Amazon Redshift <code>COPY</code> command. For more information, see the "Optional Parameters" section of <a href="https://docs.aws.amazon.com/redshift/latest/dg/r_COPY.html">Amazon Redshift COPY command</a>. Some possible examples that would apply to Kinesis Data Firehose are as follows:  <code>delimiter '\t' lzop;</code> - fields are delimited with "\t" (TAB character) and compressed using lzop.  <code>delimiter '|'</code> - fields are delimited with "|" (this is the default delimiter).  <code>delimiter '|' escape</code> - the delimiter should be escaped.  <code>fixedwidth 'venueid:3,venuename:25,venuecity:12,venuestate:2,venueseats:6'</code> - fields are fixed width in the source, with each width specified after every column in the table.  <code>JSON 's3://mybucket/jsonpaths.txt'</code> - data is in JSON format, and the path specified is the format of the data. For more examples, see <a href="https://docs.aws.amazon.com/redshift/latest/dg/r_COPY_command_examples.html">Amazon Redshift COPY command examples</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DataTableColumns</i> A comma-separated list of column names.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DataTableName</i> The name of the target table. The table must already exist in the database.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DurationInSeconds</i> The length of time during which Kinesis Data Firehose retries delivery after a failure, starting from the initial request and including the first attempt. The default value is 3600 seconds (60 minutes). Kinesis Data Firehose does not retry if the value of <code>DurationInSeconds</code> is 0 (zero) or if the first delivery attempt takes longer than the current value.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorOutputPrefix</i> A prefix that Kinesis Data Firehose evaluates and adds to failed records before writing them to S3. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see <a href="https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html">Custom Prefixes for Amazon S3 Objects</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Prefix</i> The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered Amazon S3 files. You can also specify a custom prefix, as described in <a href="https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html">Custom Prefixes for Amazon S3 Objects</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BucketARN</i> The ARN of the S3 bucket. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleARN</i> The Amazon Resource Name (ARN) of the AWS credentials. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a>.<br/>The buffering option. If no value is specified, <code>BufferingHints</code> object default values are used.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>BufferingHints</b>: The buffering option. If no value is specified, <code>BufferingHints</code> object default values are used.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Processors</i> The data processors.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Enables or disables data processing.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorOutputPrefix</i> A prefix that Kinesis Data Firehose evaluates and adds to failed records before writing them to S3. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see <a href="https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html">Custom Prefixes for Amazon S3 Objects</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Prefix</i> The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered Amazon S3 files. You can also specify a custom prefix, as described in <a href="https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html">Custom Prefixes for Amazon S3 Objects</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BucketARN</i> The ARN of the S3 bucket. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleARN</i> The Amazon Resource Name (ARN) of the AWS credentials. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a>.<br/>The buffering option. If no value is specified, <code>BufferingHints</code> object default values are used.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>BufferingHints</b>: The buffering option. If no value is specified, <code>BufferingHints</code> object default values are used.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LogStreamName</i> The CloudWatch log stream name for logging. This value is required if CloudWatch logging is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LogGroupName</i> The CloudWatch group name for logging. This value is required if CloudWatch logging is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Enables or disables CloudWatch logging.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcConfiguration</i> The details of the VPC of the Amazon ES destination.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>VpcConfiguration</b>: The details of the VPC of the Amazon ES destination.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudWatchLoggingOptions</i> The Amazon CloudWatch logging options for your delivery stream.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CloudWatchLoggingOptions</b>: The Amazon CloudWatch logging options for your delivery stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProcessingConfiguration</i> The data processing configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ProcessingConfiguration</b>: The data processing configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Configuration</i> The configuration for the backup Amazon S3 location.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3Configuration</b>: The configuration for the backup Amazon S3 location.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3BackupMode</i> Defines how documents should be delivered to Amazon S3. When it is set to <code>FailedDocumentsOnly</code>, Kinesis Data Firehose writes any documents that could not be indexed to the configured Amazon S3 destination, with <code>elasticsearch-failed/</code> appended to the key prefix. When set to <code>AllDocuments</code>, Kinesis Data Firehose delivers all incoming records to Amazon S3, and also writes failed documents with <code>elasticsearch-failed/</code> appended to the prefix. For more information, see <a href="https://docs.aws.amazon.com/firehose/latest/dev/basic-deliver.html#es-s3-backup">Amazon S3 Backup for the Amazon ES Destination</a>. Default value is <code>FailedDocumentsOnly</code>. You can't change this backup mode after you create the delivery stream. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RetryOptions</i> The retry behavior in case Kinesis Data Firehose is unable to deliver documents to Amazon ES. The default value is 300 (5 minutes).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RetryOptions</b>: The retry behavior in case Kinesis Data Firehose is unable to deliver documents to Amazon ES. The default value is 300 (5 minutes).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BufferingHints</i> The buffering options. If no value is specified, the default values for <code>ElasticsearchBufferingHints</code> are used.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>BufferingHints</b>: The buffering options. If no value is specified, the default values for <code>ElasticsearchBufferingHints</code> are used.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IndexRotationPeriod</i> The Elasticsearch index rotation period. Index rotation appends a timestamp to the <code>IndexName</code> to facilitate the expiration of old data. For more information, see <a href="https://docs.aws.amazon.com/firehose/latest/dev/basic-deliver.html#es-index-rotation">Index Rotation for the Amazon ES Destination</a>. The default value is <code>OneDay</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TypeName</i> The Elasticsearch type name. For Elasticsearch 6.x, there can be only one type per index. If you try to specify a new type for an existing index that already has another type, Kinesis Data Firehose returns an error during run time. For Elasticsearch 7.x, don't specify a <code>TypeName</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IndexName</i> The Elasticsearch index name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterEndpoint</i> The endpoint to use when communicating with the cluster. Specify either this <code>ClusterEndpoint</code> or the <code>DomainARN</code> field.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainARN</i> The ARN of the Amazon ES domain. The IAM role must have permissions for <code>DescribeElasticsearchDomain</code>, <code>DescribeElasticsearchDomains</code>, and <code>DescribeElasticsearchDomainConfig</code> after assuming the role specified in <b>RoleARN</b>. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a>. Specify either <code>ClusterEndpoint</code> or <code>DomainARN</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleARN</i> The Amazon Resource Name (ARN) of the IAM role to be assumed by Kinesis Data Firehose for calling the Amazon ES Configuration API and for indexing documents. For more information, see <a href="https://docs.aws.amazon.com/firehose/latest/dev/controlling-access.html#using-iam-s3">Grant Kinesis Data Firehose Access to an Amazon S3 Destination</a> and <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SizeInMBs</i> Buffer incoming data to the specified size, in MBs, before delivering it to the destination. The default value is 5. We recommend setting this parameter to a value greater than the amount of data you typically ingest into the delivery stream in 10 seconds. For example, if you typically ingest data at 1 MB/sec, the value should be 10 MB or higher.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IntervalInSeconds</i> Buffer incoming data for the specified period of time, in seconds, before delivering it to the destination. The default value is 300 (5 minutes).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DurationInSeconds</i> After an initial failure to deliver to Amazon ES, the total amount of time during which Kinesis Data Firehose retries delivery (including the first attempt). After this time has elapsed, the failed documents are written to Amazon S3. Default value is 300 seconds (5 minutes). A value of 0 (zero) results in no retries.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorOutputPrefix</i> A prefix that Kinesis Data Firehose evaluates and adds to failed records before writing them to S3. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see <a href="https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html">Custom Prefixes for Amazon S3 Objects</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Prefix</i> The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered Amazon S3 files. You can also specify a custom prefix, as described in <a href="https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html">Custom Prefixes for Amazon S3 Objects</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BucketARN</i> The ARN of the S3 bucket. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleARN</i> The Amazon Resource Name (ARN) of the AWS credentials. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a>.<br/>The buffering option. If no value is specified, <code>BufferingHints</code> object default values are used.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>BufferingHints</b>: The buffering option. If no value is specified, <code>BufferingHints</code> object default values are used.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Processors</i> The data processors.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Enables or disables data processing.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LogStreamName</i> The CloudWatch log stream name for logging. This value is required if CloudWatch logging is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LogGroupName</i> The CloudWatch group name for logging. This value is required if CloudWatch logging is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Enables or disables CloudWatch logging.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> The IDs of the security groups that you want Kinesis Data Firehose to use when it creates ENIs in the VPC of the Amazon ES destination. You can use the same security group that the Amazon ES domain uses or different ones. If you specify different security groups here, ensure that they allow outbound HTTPS traffic to the Amazon ES domain's security group. Also ensure that the Amazon ES domain's security group allows HTTPS traffic from the security groups specified here. If you use the same security group for both your delivery stream and the Amazon ES domain, make sure the security group inbound rule allows HTTPS traffic. For more information about security group rules, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html#SecurityGroupRules">Security group rules</a> in the Amazon VPC documentation.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleARN</i> The ARN of the IAM role that you want the delivery stream to use to create endpoints in the destination VPC. You can use your existing Kinesis Data Firehose delivery role or you can specify a new role. In either case, make sure that the role trusts the Kinesis Data Firehose service principal and that it grants the following permissions: <ul> <li>  <code>ec2:DescribeVpcs</code>  </li> <li>  <code>ec2:DescribeVpcAttribute</code>  </li> <li>  <code>ec2:DescribeSubnets</code>  </li> <li>  <code>ec2:DescribeSecurityGroups</code>  </li> <li>  <code>ec2:DescribeNetworkInterfaces</code>  </li> <li>  <code>ec2:CreateNetworkInterface</code>  </li> <li>  <code>ec2:CreateNetworkInterfacePermission</code>  </li> <li>  <code>ec2:DeleteNetworkInterface</code>  </li> </ul> If you revoke these permissions after you create the delivery stream, Kinesis Data Firehose can't scale out by creating more ENIs when necessary. You might therefore see a degradation in performance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetIds</i> The IDs of the subnets that you want Kinesis Data Firehose to use to create ENIs in the VPC of the Amazon ES destination. Make sure that the routing tables and inbound and outbound rules allow traffic to flow from the subnets whose IDs are specified here to the subnets that have the destination Amazon ES endpoints. Kinesis Data Firehose creates at least one ENI in each of the subnets that are specified here. Do not delete or modify these ENIs. The number of ENIs that Kinesis Data Firehose creates in the subnets specified here scales up and down automatically based on throughput. To enable Kinesis Data Firehose to scale up the number of ENIs to match throughput, ensure that you have sufficient quota. To help you calculate the quota you need, assume that Kinesis Data Firehose can create up to three ENIs for this delivery stream for each of the subnets specified here. For more information about ENI quota, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/amazon-vpc-limits.html#vpc-limits-enis">Network Interfaces </a> in the Amazon VPC Quotas topic.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudWatchLoggingOptions</i> The Amazon CloudWatch logging options for your delivery stream.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CloudWatchLoggingOptions</b>: The Amazon CloudWatch logging options for your delivery stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProcessingConfiguration</i> The data processing configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ProcessingConfiguration</b>: The data processing configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Configuration</i> The configuration for the backup Amazon S3 location.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3Configuration</b>: The configuration for the backup Amazon S3 location.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3BackupMode</i> Defines how documents should be delivered to Amazon S3. When set to <code>FailedEventsOnly</code>, Kinesis Data Firehose writes any data that could not be indexed to the configured Amazon S3 destination. When set to <code>AllEvents</code>, Kinesis Data Firehose delivers all incoming records to Amazon S3, and also writes failed documents to Amazon S3. The default value is <code>FailedEventsOnly</code>. You can update this backup mode from <code>FailedEventsOnly</code> to <code>AllEvents</code>. You can't update it from <code>AllEvents</code> to <code>FailedEventsOnly</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RetryOptions</i> The retry behavior in case Kinesis Data Firehose is unable to deliver data to Splunk, or if it doesn't receive an acknowledgment of receipt from Splunk.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RetryOptions</b>: The retry behavior in case Kinesis Data Firehose is unable to deliver data to Splunk, or if it doesn't receive an acknowledgment of receipt from Splunk.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HECAcknowledgmentTimeoutInSeconds</i> The amount of time that Kinesis Data Firehose waits to receive an acknowledgment from Splunk after it sends it data. At the end of the timeout period, Kinesis Data Firehose either tries to send the data again or considers it an error, based on your retry settings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HECToken</i> This is a GUID that you obtain from your Splunk cluster when you create a new HEC endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HECEndpointType</i> This type can be either "Raw" or "Event."<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HECEndpoint</i> The HTTP Event Collector (HEC) endpoint to which Kinesis Data Firehose sends your data.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DurationInSeconds</i> The total amount of time that Kinesis Data Firehose spends on retries. This duration starts after the initial attempt to send data to Splunk fails. It doesn't include the periods during which Kinesis Data Firehose waits for acknowledgment from Splunk after each attempt.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorOutputPrefix</i> A prefix that Kinesis Data Firehose evaluates and adds to failed records before writing them to S3. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see <a href="https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html">Custom Prefixes for Amazon S3 Objects</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Prefix</i> The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered Amazon S3 files. You can also specify a custom prefix, as described in <a href="https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html">Custom Prefixes for Amazon S3 Objects</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BucketARN</i> The ARN of the S3 bucket. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleARN</i> The Amazon Resource Name (ARN) of the AWS credentials. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a>.<br/>The buffering option. If no value is specified, <code>BufferingHints</code> object default values are used.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>BufferingHints</b>: The buffering option. If no value is specified, <code>BufferingHints</code> object default values are used.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Processors</i> The data processors.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Enables or disables data processing.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LogStreamName</i> The CloudWatch log stream name for logging. This value is required if CloudWatch logging is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LogGroupName</i> The CloudWatch group name for logging. This value is required if CloudWatch logging is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Enables or disables CloudWatch logging.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Configuration</i> Describes the configuration of a destination in Amazon S3.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3Configuration</b>: Describes the configuration of a destination in Amazon S3.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3BackupMode</i> Describes the S3 bucket backup options for the data that Kinesis Data Firehose delivers to the HTTP endpoint destination. You can back up all documents (<code>AllData</code>) or only the documents that Kinesis Data Firehose could not deliver to the specified HTTP endpoint destination (<code>FailedDataOnly</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RetryOptions</i> Describes the retry behavior in case Kinesis Data Firehose is unable to deliver data to the specified HTTP endpoint destination, or if it doesn't receive a valid acknowledgment of receipt from the specified HTTP endpoint destination.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RetryOptions</b>: Describes the retry behavior in case Kinesis Data Firehose is unable to deliver data to the specified HTTP endpoint destination, or if it doesn't receive a valid acknowledgment of receipt from the specified HTTP endpoint destination.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleARN</i> Kinesis Data Firehose uses this IAM role for all the permissions that the delivery stream needs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProcessingConfiguration</i> Describes a data processing configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ProcessingConfiguration</b>: Describes a data processing configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequestConfiguration</i> The configuration of the requeste sent to the HTTP endpoint specified as the destination.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RequestConfiguration</b>: The configuration of the requeste sent to the HTTP endpoint specified as the destination.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudWatchLoggingOptions</i> Describes the Amazon CloudWatch logging options for your delivery stream.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CloudWatchLoggingOptions</b>: Describes the Amazon CloudWatch logging options for your delivery stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BufferingHints</i> The buffering options that can be used before data is delivered to the specified destination. Kinesis Data Firehose treats these options as hints, and it might choose to use more optimal values. The <code>SizeInMBs</code> and <code>IntervalInSeconds</code> parameters are optional. However, if you specify a value for one of them, you must also provide a value for the other. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>BufferingHints</b>: The buffering options that can be used before data is delivered to the specified destination. Kinesis Data Firehose treats these options as hints, and it might choose to use more optimal values. The <code>SizeInMBs</code> and <code>IntervalInSeconds</code> parameters are optional. However, if you specify a value for one of them, you must also provide a value for the other. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointConfiguration</i> The configuration of the HTTP endpoint selected as the destination.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EndpointConfiguration</b>: The configuration of the HTTP endpoint selected as the destination.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AccessKey</i> The access key required for Kinesis Firehose to authenticate with the HTTP endpoint selected as the destination.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the HTTP endpoint selected as the destination.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Url</i> The URL of the HTTP endpoint selected as the destination.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IntervalInSeconds</i> Buffer incoming data for the specified period of time, in seconds, before delivering it to the destination. The default value is 300 (5 minutes). <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SizeInMBs</i> Buffer incoming data to the specified size, in MBs, before delivering it to the destination. The default value is 5.  We recommend setting this parameter to a value greater than the amount of data you typically ingest into the delivery stream in 10 seconds. For example, if you typically ingest data at 1 MB/sec, the value should be 10 MB or higher. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LogStreamName</i> The CloudWatch log stream name for logging. This value is required if CloudWatch logging is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LogGroupName</i> The CloudWatch group name for logging. This value is required if CloudWatch logging is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Enables or disables CloudWatch logging.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CommonAttributes</i> Describes the metadata sent to the HTTP endpoint destination.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ContentEncoding</i> Kinesis Data Firehose uses the content encoding to compress the body of a request before sending the request to the destination. For more information, see <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Encoding">Content-Encoding</a> in MDN Web Docs, the official Mozilla documentation.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Processors</i> The data processors.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Enables or disables data processing.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DurationInSeconds</i> The total amount of time that Kinesis Data Firehose spends on retries. This duration starts after the initial attempt to send data to the custom destination via HTTPS endpoint fails. It doesn't include the periods during which Kinesis Data Firehose waits for acknowledgment from the specified destination after each attempt. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorOutputPrefix</i> A prefix that Kinesis Data Firehose evaluates and adds to failed records before writing them to S3. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see <a href="https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html">Custom Prefixes for Amazon S3 Objects</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Prefix</i> The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered Amazon S3 files. You can also specify a custom prefix, as described in <a href="https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html">Custom Prefixes for Amazon S3 Objects</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BucketARN</i> The ARN of the S3 bucket. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleARN</i> The Amazon Resource Name (ARN) of the AWS credentials. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a>.<br/>The buffering option. If no value is specified, <code>BufferingHints</code> object default values are used.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>BufferingHints</b>: The buffering option. If no value is specified, <code>BufferingHints</code> object default values are used.
        :return: DeliveryStreamARN:  The ARN of the delivery stream.<br/>        """
        pass

    def delete_delivery_stream(self, DeliveryStreamName: str, AllowForceDelete: BooleanObject=None) -> DeleteDeliveryStreamOutput:
        r"""Deletes a delivery stream and its data. To check the state of a delivery stream, use <a>DescribeDeliveryStream</a>. You can delete a delivery stream only if it is in one of the following states: <code>ACTIVE</code>, <code>DELETING</code>, <code>CREATING_FAILED</code>, or <code>DELETING_FAILED</code>. You can't delete a delivery stream that is in the <code>CREATING</code> state. While the deletion request is in process, the delivery stream is in the <code>DELETING</code> state. While the delivery stream is in the <code>DELETING</code> state, the service might continue to accept records, but it doesn't make any guarantees with respect to delivering the data. Therefore, as a best practice, first stop any applications that are sending records before you delete a delivery stream.

        :param self:
        :param AllowForceDelete:  Set this to true if you want to delete the delivery stream even if Kinesis Data Firehose is unable to retire the grant for the CMK. Kinesis Data Firehose might be unable to retire the grant due to a customer error, such as when the CMK or the grant are in an invalid state. If you force deletion, you can then use the <a href="https://docs.aws.amazon.com/kms/latest/APIReference/API_RevokeGrant.html">RevokeGrant</a> operation to revoke the grant you gave to Kinesis Data Firehose. If a failure to retire the grant happens due to an AWS KMS issue, Kinesis Data Firehose keeps retrying the delete operation. The default value is false.<br/>DeliveryStreamName:  The name of the delivery stream.<br/>
        :return:         """
        pass

    def describe_delivery_stream(self, DeliveryStreamName: str, Limit: int=None, ExclusiveStartDestinationId: str=None) -> DescribeDeliveryStreamOutput:
        r"""Describes the specified delivery stream and its status. For example, after your delivery stream is created, call <code>DescribeDeliveryStream</code> to see whether the delivery stream is <code>ACTIVE</code> and therefore ready for data to be sent to it.  If the status of a delivery stream is <code>CREATING_FAILED</code>, this status doesn't change, and you can't invoke <a>CreateDeliveryStream</a> again on it. However, you can invoke the <a>DeleteDeliveryStream</a> operation to delete it. If the status is <code>DELETING_FAILED</code>, you can force deletion by invoking <a>DeleteDeliveryStream</a> again but with <a>DeleteDeliveryStreamInput$AllowForceDelete</a> set to true.

        :param self:
        :param ExclusiveStartDestinationId:  The ID of the destination to start returning the destination information. Kinesis Data Firehose supports one destination per delivery stream.<br/>Limit:  The limit on the number of destinations to return. You can have one destination per delivery stream.<br/>DeliveryStreamName:  The name of the delivery stream.<br/>
        :return: DeliveryStreamDescription:  Information about the delivery stream.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HasMoreDestinations</i> Indicates whether there are more destinations available to list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Destinations</i> The destinations.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Source</i> If the <code>DeliveryStreamType</code> parameter is <code>KinesisStreamAsSource</code>, a <a>SourceDescription</a> object describing the source Kinesis data stream.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Source</b>: If the <code>DeliveryStreamType</code> parameter is <code>KinesisStreamAsSource</code>, a <a>SourceDescription</a> object describing the source Kinesis data stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdateTimestamp</i> The date and time that the delivery stream was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreateTimestamp</i> The date and time that the delivery stream was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VersionId</i> Each time the destination is updated for a delivery stream, the version ID is changed, and the current version ID is required when updating the destination. This is so that the service knows it is applying the changes to the correct version of the delivery stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeliveryStreamType</i> The delivery stream type. This can be one of the following values: <ul> <li>  <code>DirectPut</code>: Provider applications access the delivery stream directly. </li> <li>  <code>KinesisStreamAsSource</code>: The delivery stream uses a Kinesis data stream as a source. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeliveryStreamEncryptionConfiguration</i> Indicates the server-side encryption (SSE) status for the delivery stream.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DeliveryStreamEncryptionConfiguration</b>: Indicates the server-side encryption (SSE) status for the delivery stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FailureDescription</i> Provides details in case one of the following operations fails due to an error related to KMS: <a>CreateDeliveryStream</a>, <a>DeleteDeliveryStream</a>, <a>StartDeliveryStreamEncryption</a>, <a>StopDeliveryStreamEncryption</a>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>FailureDescription</b>: Provides details in case one of the following operations fails due to an error related to KMS: <a>CreateDeliveryStream</a>, <a>DeleteDeliveryStream</a>, <a>StartDeliveryStreamEncryption</a>, <a>StopDeliveryStreamEncryption</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeliveryStreamStatus</i> The status of the delivery stream. If the status of a delivery stream is <code>CREATING_FAILED</code>, this status doesn't change, and you can't invoke <code>CreateDeliveryStream</code> again on it. However, you can invoke the <a>DeleteDeliveryStream</a> operation to delete it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeliveryStreamARN</i> The Amazon Resource Name (ARN) of the delivery stream. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeliveryStreamName</i> The name of the delivery stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Details</i> A message providing details about the error that caused the failure.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of error that caused the failure.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> This is the server-side encryption (SSE) status for the delivery stream. For a full description of the different values of this status, see <a>StartDeliveryStreamEncryption</a> and <a>StopDeliveryStreamEncryption</a>. If this status is <code>ENABLING_FAILED</code> or <code>DISABLING_FAILED</code>, it is the status of the most recent attempt to enable or disable SSE, respectively.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KeyType</i> Indicates the type of customer master key (CMK) that is used for encryption. The default setting is <code>AWS_OWNED_CMK</code>. For more information about CMKs, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#master_keys">Customer Master Keys (CMKs)</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KeyARN</i> If <code>KeyType</code> is <code>CUSTOMER_MANAGED_CMK</code>, this field contains the ARN of the customer managed CMK. If <code>KeyType</code> is <code>AWS_OWNED_CMK</code>, <code>DeliveryStreamEncryptionConfiguration</code> doesn't contain a value for <code>KeyARN</code>.<br/>Provides details in case one of the following operations fails due to an error related to KMS: <a>CreateDeliveryStream</a>, <a>DeleteDeliveryStream</a>, <a>StartDeliveryStreamEncryption</a>, <a>StopDeliveryStreamEncryption</a>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>FailureDescription</b>: Provides details in case one of the following operations fails due to an error related to KMS: <a>CreateDeliveryStream</a>, <a>DeleteDeliveryStream</a>, <a>StartDeliveryStreamEncryption</a>, <a>StopDeliveryStreamEncryption</a>.The <a>KinesisStreamSourceDescription</a> value for the source Kinesis data stream.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>KinesisStreamSourceDescription</b>: The <a>KinesisStreamSourceDescription</a> value for the source Kinesis data stream.        """
        pass

    def list_delivery_streams(self, Limit: int=None, DeliveryStreamType: str=None, ExclusiveStartDeliveryStreamName: str=None) -> ListDeliveryStreamsOutput:
        r"""Lists your delivery streams in alphabetical order of their names. The number of delivery streams might be too large to return using a single call to <code>ListDeliveryStreams</code>. You can limit the number of delivery streams returned, using the <code>Limit</code> parameter. To determine whether there are more delivery streams to list, check the value of <code>HasMoreDeliveryStreams</code> in the output. If there are more delivery streams to list, you can request them by calling this operation again and setting the <code>ExclusiveStartDeliveryStreamName</code> parameter to the name of the last delivery stream returned in the last call.

        :param self:
        :param ExclusiveStartDeliveryStreamName:  The list of delivery streams returned by this call to <code>ListDeliveryStreams</code> will start with the delivery stream whose name comes alphabetically immediately after the name you specify in <code>ExclusiveStartDeliveryStreamName</code>.<br/>DeliveryStreamType:  The delivery stream type. This can be one of the following values: <ul> <li>  <code>DirectPut</code>: Provider applications access the delivery stream directly. </li> <li>  <code>KinesisStreamAsSource</code>: The delivery stream uses a Kinesis data stream as a source. </li> </ul> This parameter is optional. If this parameter is omitted, delivery streams of all types are returned.<br/>Limit:  The maximum number of delivery streams to list. The default value is 10.<br/>
        :return: HasMoreDeliveryStreams:  Indicates whether there are more delivery streams available to list.<br/>DeliveryStreamNames:  The names of the delivery streams.<br/>        """
        pass

    def list_tags_for_delivery_stream(self, DeliveryStreamName: str, ExclusiveStartTagKey: str=None, Limit: int=None) -> ListTagsForDeliveryStreamOutput:
        r"""Lists the tags for the specified delivery stream. This operation has a limit of five transactions per second per account. 

        :param self:
        :param Limit:  The number of tags to return. If this number is less than the total number of tags associated with the delivery stream, <code>HasMoreTags</code> is set to <code>true</code> in the response. To list additional tags, set <code>ExclusiveStartTagKey</code> to the last key in the response. <br/>ExclusiveStartTagKey:  The key to use as the starting point for the list of tags. If you set this parameter, <code>ListTagsForDeliveryStream</code> gets all tags that occur after <code>ExclusiveStartTagKey</code>.<br/>DeliveryStreamName:  The name of the delivery stream whose tags you want to list.<br/>
        :return: HasMoreTags:  If this is <code>true</code> in the response, more tags are available. To list the remaining tags, set <code>ExclusiveStartTagKey</code> to the key of the last tag returned and call <code>ListTagsForDeliveryStream</code> again.<br/>Tags:  A list of tags associated with <code>DeliveryStreamName</code>, starting with the first tag after <code>ExclusiveStartTagKey</code> and up to the specified <code>Limit</code>.<br/>        """
        pass

    def put_record(self, Record: Record, DeliveryStreamName: str) -> PutRecordOutput:
        r"""Writes a single data record into an Amazon Kinesis Data Firehose delivery stream. To write multiple data records into a delivery stream, use <a>PutRecordBatch</a>. Applications using these operations are referred to as producers. By default, each delivery stream can take in up to 2,000 transactions per second, 5,000 records per second, or 5 MB per second. If you use <a>PutRecord</a> and <a>PutRecordBatch</a>, the limits are an aggregate across these two operations for each delivery stream. For more information about limits and how to request an increase, see <a href="https://docs.aws.amazon.com/firehose/latest/dev/limits.html">Amazon Kinesis Data Firehose Limits</a>.  You must specify the name of the delivery stream and the data record when using <a>PutRecord</a>. The data record consists of a data blob that can be up to 1,000 KB in size, and any kind of data. For example, it can be a segment from a log file, geographic location data, website clickstream data, and so on. Kinesis Data Firehose buffers records before delivering them to the destination. To disambiguate the data blobs at the destination, a common solution is to use delimiters in the data, such as a newline (<code>\n</code>) or some other character unique within the data. This allows the consumer application to parse individual data items when reading the data from the destination. The <code>PutRecord</code> operation returns a <code>RecordId</code>, which is a unique string assigned to each record. Producer applications can use this ID for purposes such as auditability and investigation. If the <code>PutRecord</code> operation throws a <code>ServiceUnavailableException</code>, back off and retry. If the exception persists, it is possible that the throughput limits have been exceeded for the delivery stream.  Data records sent to Kinesis Data Firehose are stored for 24 hours from the time they are added to a delivery stream as it tries to send the records to the destination. If the destination is unreachable for more than 24 hours, the data is no longer available. <important> Don't concatenate two or more base64 strings to form the data fields of your records. Instead, concatenate the raw data, then perform base64 encoding. </important>

        :param self:
        :param Record:  The record.:<br/>DeliveryStreamName:  The name of the delivery stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Data</i> The data blob, which is base64-encoded when the blob is serialized. The maximum size of the data blob, before base64-encoding, is 1,000 KiB.<br/>
        :return: Encrypted:  Indicates whether server-side encryption (SSE) was enabled during this operation.<br/>RecordId:  The ID of the record.<br/>        """
        pass

    def put_record_batch(self, Records: List[Record], DeliveryStreamName: str) -> PutRecordBatchOutput:
        r"""Writes multiple data records into a delivery stream in a single call, which can achieve higher throughput per producer than when writing single records. To write single data records into a delivery stream, use <a>PutRecord</a>. Applications using these operations are referred to as producers. For information about service quota, see <a href="https://docs.aws.amazon.com/firehose/latest/dev/limits.html">Amazon Kinesis Data Firehose Quota</a>. Each <a>PutRecordBatch</a> request supports up to 500 records. Each record in the request can be as large as 1,000 KB (before 64-bit encoding), up to a limit of 4 MB for the entire request. These limits cannot be changed. You must specify the name of the delivery stream and the data record when using <a>PutRecord</a>. The data record consists of a data blob that can be up to 1,000 KB in size, and any kind of data. For example, it could be a segment from a log file, geographic location data, website clickstream data, and so on. Kinesis Data Firehose buffers records before delivering them to the destination. To disambiguate the data blobs at the destination, a common solution is to use delimiters in the data, such as a newline (<code>\n</code>) or some other character unique within the data. This allows the consumer application to parse individual data items when reading the data from the destination. The <a>PutRecordBatch</a> response includes a count of failed records, <code>FailedPutCount</code>, and an array of responses, <code>RequestResponses</code>. Even if the <a>PutRecordBatch</a> call succeeds, the value of <code>FailedPutCount</code> may be greater than 0, indicating that there are records for which the operation didn't succeed. Each entry in the <code>RequestResponses</code> array provides additional information about the processed record. It directly correlates with a record in the request array using the same ordering, from the top to the bottom. The response array always includes the same number of records as the request array. <code>RequestResponses</code> includes both successfully and unsuccessfully processed records. Kinesis Data Firehose tries to process all records in each <a>PutRecordBatch</a> request. A single record failure does not stop the processing of subsequent records.  A successfully processed record includes a <code>RecordId</code> value, which is unique for the record. An unsuccessfully processed record includes <code>ErrorCode</code> and <code>ErrorMessage</code> values. <code>ErrorCode</code> reflects the type of error, and is one of the following values: <code>ServiceUnavailableException</code> or <code>InternalFailure</code>. <code>ErrorMessage</code> provides more detailed information about the error. If there is an internal server error or a timeout, the write might have completed or it might have failed. If <code>FailedPutCount</code> is greater than 0, retry the request, resending only those records that might have failed processing. This minimizes the possible duplicate records and also reduces the total bytes sent (and corresponding charges). We recommend that you handle any duplicates at the destination. If <a>PutRecordBatch</a> throws <code>ServiceUnavailableException</code>, back off and retry. If the exception persists, it is possible that the throughput limits have been exceeded for the delivery stream. Data records sent to Kinesis Data Firehose are stored for 24 hours from the time they are added to a delivery stream as it attempts to send the records to the destination. If the destination is unreachable for more than 24 hours, the data is no longer available. <important> Don't concatenate two or more base64 strings to form the data fields of your records. Instead, concatenate the raw data, then perform base64 encoding. </important>

        :param self:
        :param Records:  One or more records.<br/>DeliveryStreamName:  The name of the delivery stream.<br/>
        :return: RequestResponses:  The results array. For each record, the index of the response element is the same as the index used in the request array.<br/>Encrypted:  Indicates whether server-side encryption (SSE) was enabled during this operation.<br/>FailedPutCount:  The number of records that might have failed processing. This number might be greater than 0 even if the <a>PutRecordBatch</a> call succeeds. Check <code>FailedPutCount</code> to determine whether there are records that you need to resend.<br/>        """
        pass

    def start_delivery_stream_encryption(self, DeliveryStreamName: str, DeliveryStreamEncryptionConfigurationInput: DeliveryStreamEncryptionConfigurationInput=None) -> StartDeliveryStreamEncryptionOutput:
        r"""Enables server-side encryption (SSE) for the delivery stream.  This operation is asynchronous. It returns immediately. When you invoke it, Kinesis Data Firehose first sets the encryption status of the stream to <code>ENABLING</code>, and then to <code>ENABLED</code>. The encryption status of a delivery stream is the <code>Status</code> property in <a>DeliveryStreamEncryptionConfiguration</a>. If the operation fails, the encryption status changes to <code>ENABLING_FAILED</code>. You can continue to read and write data to your delivery stream while the encryption status is <code>ENABLING</code>, but the data is not encrypted. It can take up to 5 seconds after the encryption status changes to <code>ENABLED</code> before all records written to the delivery stream are encrypted. To find out whether a record or a batch of records was encrypted, check the response elements <a>PutRecordOutput$Encrypted</a> and <a>PutRecordBatchOutput$Encrypted</a>, respectively. To check the encryption status of a delivery stream, use <a>DescribeDeliveryStream</a>. Even if encryption is currently enabled for a delivery stream, you can still invoke this operation on it to change the ARN of the CMK or both its type and ARN. If you invoke this method to change the CMK, and the old CMK is of type <code>CUSTOMER_MANAGED_CMK</code>, Kinesis Data Firehose schedules the grant it had on the old CMK for retirement. If the new CMK is of type <code>CUSTOMER_MANAGED_CMK</code>, Kinesis Data Firehose creates a grant that enables it to use the new CMK to encrypt and decrypt data and to manage the grant. If a delivery stream already has encryption enabled and then you invoke this operation to change the ARN of the CMK or both its type and ARN and you get <code>ENABLING_FAILED</code>, this only means that the attempt to change the CMK failed. In this case, encryption remains enabled with the old CMK. If the encryption status of your delivery stream is <code>ENABLING_FAILED</code>, you can invoke this operation again with a valid CMK. The CMK must be enabled and the key policy mustn't explicitly deny the permission for Kinesis Data Firehose to invoke KMS encrypt and decrypt operations. You can enable SSE for a delivery stream only if it's a delivery stream that uses <code>DirectPut</code> as its source.  The <code>StartDeliveryStreamEncryption</code> and <code>StopDeliveryStreamEncryption</code> operations have a combined limit of 25 calls per delivery stream per 24 hours. For example, you reach the limit if you call <code>StartDeliveryStreamEncryption</code> 13 times and <code>StopDeliveryStreamEncryption</code> 12 times for the same delivery stream in a 24-hour period.

        :param self:
        :param DeliveryStreamEncryptionConfigurationInput:  Used to specify the type and Amazon Resource Name (ARN) of the KMS key needed for Server-Side Encryption (SSE).:<br/>DeliveryStreamName:  The name of the delivery stream for which you want to enable server-side encryption (SSE).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KeyType</i> Indicates the type of customer master key (CMK) to use for encryption. The default setting is <code>AWS_OWNED_CMK</code>. For more information about CMKs, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#master_keys">Customer Master Keys (CMKs)</a>. When you invoke <a>CreateDeliveryStream</a> or <a>StartDeliveryStreamEncryption</a> with <code>KeyType</code> set to CUSTOMER_MANAGED_CMK, Kinesis Data Firehose invokes the Amazon KMS operation <a href="https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html">CreateGrant</a> to create a grant that allows the Kinesis Data Firehose service to use the customer managed CMK to perform encryption and decryption. Kinesis Data Firehose manages that grant.  When you invoke <a>StartDeliveryStreamEncryption</a> to change the CMK for a delivery stream that is encrypted with a customer managed CMK, Kinesis Data Firehose schedules the grant it had on the old CMK for retirement. You can use a CMK of type CUSTOMER_MANAGED_CMK to encrypt up to 500 delivery streams. If a <a>CreateDeliveryStream</a> or <a>StartDeliveryStreamEncryption</a> operation exceeds this limit, Kinesis Data Firehose throws a <code>LimitExceededException</code>.  <important> To encrypt your delivery stream, use symmetric CMKs. Kinesis Data Firehose doesn't support asymmetric CMKs. For information about symmetric and asymmetric CMKs, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/symm-asymm-concepts.html">About Symmetric and Asymmetric CMKs</a> in the AWS Key Management Service developer guide. </important><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KeyARN</i> If you set <code>KeyType</code> to <code>CUSTOMER_MANAGED_CMK</code>, you must specify the Amazon Resource Name (ARN) of the CMK. If you set <code>KeyType</code> to <code>AWS_OWNED_CMK</code>, Kinesis Data Firehose uses a service-account CMK.<br/>
        :return:         """
        pass

    def stop_delivery_stream_encryption(self, DeliveryStreamName: str) -> StopDeliveryStreamEncryptionOutput:
        r"""Disables server-side encryption (SSE) for the delivery stream.  This operation is asynchronous. It returns immediately. When you invoke it, Kinesis Data Firehose first sets the encryption status of the stream to <code>DISABLING</code>, and then to <code>DISABLED</code>. You can continue to read and write data to your stream while its status is <code>DISABLING</code>. It can take up to 5 seconds after the encryption status changes to <code>DISABLED</code> before all records written to the delivery stream are no longer subject to encryption. To find out whether a record or a batch of records was encrypted, check the response elements <a>PutRecordOutput$Encrypted</a> and <a>PutRecordBatchOutput$Encrypted</a>, respectively. To check the encryption state of a delivery stream, use <a>DescribeDeliveryStream</a>.  If SSE is enabled using a customer managed CMK and then you invoke <code>StopDeliveryStreamEncryption</code>, Kinesis Data Firehose schedules the related KMS grant for retirement and then retires it after it ensures that it is finished delivering records to the destination. The <code>StartDeliveryStreamEncryption</code> and <code>StopDeliveryStreamEncryption</code> operations have a combined limit of 25 calls per delivery stream per 24 hours. For example, you reach the limit if you call <code>StartDeliveryStreamEncryption</code> 13 times and <code>StopDeliveryStreamEncryption</code> 12 times for the same delivery stream in a 24-hour period.

        :param self:
        :param DeliveryStreamName:  The name of the delivery stream for which you want to disable server-side encryption (SSE).<br/>
        :return:         """
        pass

    def tag_delivery_stream(self, Tags: List[Tag], DeliveryStreamName: str) -> TagDeliveryStreamOutput:
        r"""Adds or updates tags for the specified delivery stream. A tag is a key-value pair that you can define and assign to AWS resources. If you specify a tag that already exists, the tag value is replaced with the value that you specify in the request. Tags are metadata. For example, you can add friendly names and descriptions or other types of information that can help you distinguish the delivery stream. For more information about tags, see <a href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html">Using Cost Allocation Tags</a> in the <i>AWS Billing and Cost Management User Guide</i>.  Each delivery stream can have up to 50 tags.  This operation has a limit of five transactions per second per account. 

        :param self:
        :param Tags:  A set of key-value pairs to use to create the tags.<br/>DeliveryStreamName:  The name of the delivery stream to which you want to add the tags.<br/>
        :return:         """
        pass

    def untag_delivery_stream(self, TagKeys: List[TagKey], DeliveryStreamName: str) -> UntagDeliveryStreamOutput:
        r"""Removes tags from the specified delivery stream. Removed tags are deleted, and you can't recover them after this operation successfully completes. If you specify a tag that doesn't exist, the operation ignores it. This operation has a limit of five transactions per second per account. 

        :param self:
        :param TagKeys:  A list of tag keys. Each corresponding tag is removed from the delivery stream.<br/>DeliveryStreamName:  The name of the delivery stream.<br/>
        :return:         """
        pass

    def update_destination(self, DestinationId: str, CurrentDeliveryStreamVersionId: str, DeliveryStreamName: str, S3DestinationUpdate: S3DestinationUpdate=None, ExtendedS3DestinationUpdate: ExtendedS3DestinationUpdate=None, RedshiftDestinationUpdate: RedshiftDestinationUpdate=None, ElasticsearchDestinationUpdate: ElasticsearchDestinationUpdate=None, SplunkDestinationUpdate: SplunkDestinationUpdate=None, HttpEndpointDestinationUpdate: HttpEndpointDestinationUpdate=None) -> UpdateDestinationOutput:
        r"""Updates the specified destination of the specified delivery stream. Use this operation to change the destination type (for example, to replace the Amazon S3 destination with Amazon Redshift) or change the parameters associated with a destination (for example, to change the bucket name of the Amazon S3 destination). The update might not occur immediately. The target delivery stream remains active while the configurations are updated, so data writes to the delivery stream can continue during this process. The updated configurations are usually effective within a few minutes. Switching between Amazon ES and other services is not supported. For an Amazon ES destination, you can only update to another Amazon ES destination. If the destination type is the same, Kinesis Data Firehose merges the configuration parameters specified with the destination configuration that already exists on the delivery stream. If any of the parameters are not specified in the call, the existing values are retained. For example, in the Amazon S3 destination, if <a>EncryptionConfiguration</a> is not specified, then the existing <code>EncryptionConfiguration</code> is maintained on the destination. If the destination type is not the same, for example, changing the destination from Amazon S3 to Amazon Redshift, Kinesis Data Firehose does not merge any parameters. In this case, all parameters must be specified. Kinesis Data Firehose uses <code>CurrentDeliveryStreamVersionId</code> to avoid race conditions and conflicting merges. This is a required field, and the service updates the configuration only if the existing configuration has a version ID that matches. After the update is applied successfully, the version ID is updated, and can be retrieved using <a>DescribeDeliveryStream</a>. Use the new version ID to set <code>CurrentDeliveryStreamVersionId</code> in the next call.

        :param self:
        :param HttpEndpointDestinationUpdate:  Describes an update to the specified HTTP endpoint destination.:<br/>SplunkDestinationUpdate:  Describes an update for a destination in Splunk.:<br/>ElasticsearchDestinationUpdate:  Describes an update for a destination in Amazon ES.:<br/>RedshiftDestinationUpdate:  Describes an update for a destination in Amazon Redshift.:<br/>ExtendedS3DestinationUpdate:  Describes an update for a destination in Amazon S3.:<br/>S3DestinationUpdate:  [Deprecated] Describes an update for a destination in Amazon S3.:<br/>DestinationId:  The ID of the destination.<br/>CurrentDeliveryStreamVersionId:  Obtain this value from the <code>VersionId</code> result of <a>DeliveryStreamDescription</a>. This value is required, and helps the service perform conditional operations. For example, if there is an interleaving update and this value is null, then the update destination fails. After the update is successful, the <code>VersionId</code> value is updated. The service then performs a merge of the old configuration with the new configuration.<br/>DeliveryStreamName:  The name of the delivery stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudWatchLoggingOptions</i> The CloudWatch logging options for your delivery stream.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CloudWatchLoggingOptions</b>: The CloudWatch logging options for your delivery stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EncryptionConfiguration</i> The encryption configuration. If no value is specified, the default is no encryption.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EncryptionConfiguration</b>: The encryption configuration. If no value is specified, the default is no encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CompressionFormat</i> The compression format. If no value is specified, the default is <code>UNCOMPRESSED</code>. The compression formats <code>SNAPPY</code> or <code>ZIP</code> cannot be specified for Amazon Redshift destinations because they are not supported by the Amazon Redshift <code>COPY</code> operation that reads from the S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BufferingHints</i> The buffering option. If no value is specified, <code>BufferingHints</code> object default values are used.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>BufferingHints</b>: The buffering option. If no value is specified, <code>BufferingHints</code> object default values are used.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorOutputPrefix</i> A prefix that Kinesis Data Firehose evaluates and adds to failed records before writing them to S3. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see <a href="https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html">Custom Prefixes for Amazon S3 Objects</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Prefix</i> The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered Amazon S3 files. You can also specify a custom prefix, as described in <a href="https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html">Custom Prefixes for Amazon S3 Objects</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BucketARN</i> The ARN of the S3 bucket. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleARN</i> The Amazon Resource Name (ARN) of the AWS credentials. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IntervalInSeconds</i> Buffer incoming data for the specified period of time, in seconds, before delivering it to the destination. The default value is 300. This parameter is optional but if you specify a value for it, you must also specify a value for <code>SizeInMBs</code>, and vice versa.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SizeInMBs</i> Buffer incoming data to the specified size, in MiBs, before delivering it to the destination. The default value is 5. This parameter is optional but if you specify a value for it, you must also specify a value for <code>IntervalInSeconds</code>, and vice versa. We recommend setting this parameter to a value greater than the amount of data you typically ingest into the delivery stream in 10 seconds. For example, if you typically ingest data at 1 MiB/sec, the value should be 10 MiB or higher.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NoEncryptionConfig</i> Specifically override existing encryption information to ensure that no encryption is used.<br/>The encryption key.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>KMSEncryptionConfig</b>: The encryption key.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LogStreamName</i> The CloudWatch log stream name for logging. This value is required if CloudWatch logging is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LogGroupName</i> The CloudWatch group name for logging. This value is required if CloudWatch logging is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Enables or disables CloudWatch logging.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataFormatConversionConfiguration</i> The serializer, deserializer, and schema for converting data from the JSON format to the Parquet or ORC format before writing it to Amazon S3.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DataFormatConversionConfiguration</b>: The serializer, deserializer, and schema for converting data from the JSON format to the Parquet or ORC format before writing it to Amazon S3.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3BackupUpdate</i> The Amazon S3 destination for backup.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3BackupUpdate</b>: The Amazon S3 destination for backup.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3BackupMode</i> You can update a delivery stream to enable Amazon S3 backup if it is disabled. If backup is enabled, you can't update the delivery stream to disable it. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProcessingConfiguration</i> The data processing configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ProcessingConfiguration</b>: The data processing configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudWatchLoggingOptions</i> The Amazon CloudWatch logging options for your delivery stream.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CloudWatchLoggingOptions</b>: The Amazon CloudWatch logging options for your delivery stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EncryptionConfiguration</i> The encryption configuration. If no value is specified, the default is no encryption.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EncryptionConfiguration</b>: The encryption configuration. If no value is specified, the default is no encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CompressionFormat</i> The compression format. If no value is specified, the default is <code>UNCOMPRESSED</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BufferingHints</i> The buffering option.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>BufferingHints</b>: The buffering option.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorOutputPrefix</i> A prefix that Kinesis Data Firehose evaluates and adds to failed records before writing them to S3. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see <a href="https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html">Custom Prefixes for Amazon S3 Objects</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Prefix</i> The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered Amazon S3 files. You can also specify a custom prefix, as described in <a href="https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html">Custom Prefixes for Amazon S3 Objects</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BucketARN</i> The ARN of the S3 bucket. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleARN</i> The Amazon Resource Name (ARN) of the AWS credentials. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IntervalInSeconds</i> Buffer incoming data for the specified period of time, in seconds, before delivering it to the destination. The default value is 300. This parameter is optional but if you specify a value for it, you must also specify a value for <code>SizeInMBs</code>, and vice versa.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SizeInMBs</i> Buffer incoming data to the specified size, in MiBs, before delivering it to the destination. The default value is 5. This parameter is optional but if you specify a value for it, you must also specify a value for <code>IntervalInSeconds</code>, and vice versa. We recommend setting this parameter to a value greater than the amount of data you typically ingest into the delivery stream in 10 seconds. For example, if you typically ingest data at 1 MiB/sec, the value should be 10 MiB or higher.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NoEncryptionConfig</i> Specifically override existing encryption information to ensure that no encryption is used.<br/>The encryption key.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>KMSEncryptionConfig</b>: The encryption key.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LogStreamName</i> The CloudWatch log stream name for logging. This value is required if CloudWatch logging is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LogGroupName</i> The CloudWatch group name for logging. This value is required if CloudWatch logging is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Enables or disables CloudWatch logging.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Processors</i> The data processors.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Enables or disables data processing.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorOutputPrefix</i> A prefix that Kinesis Data Firehose evaluates and adds to failed records before writing them to S3. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see <a href="https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html">Custom Prefixes for Amazon S3 Objects</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Prefix</i> The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered Amazon S3 files. You can also specify a custom prefix, as described in <a href="https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html">Custom Prefixes for Amazon S3 Objects</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BucketARN</i> The ARN of the S3 bucket. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleARN</i> The Amazon Resource Name (ARN) of the AWS credentials. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a>.<br/>The buffering option. If no value is specified, <code>BufferingHints</code> object default values are used.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>BufferingHints</b>: The buffering option. If no value is specified, <code>BufferingHints</code> object default values are used.Specifies the AWS Glue Data Catalog table that contains the column information. This parameter is required if <code>Enabled</code> is set to true.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SchemaConfiguration</b>: Specifies the AWS Glue Data Catalog table that contains the column information. This parameter is required if <code>Enabled</code> is set to true.&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudWatchLoggingOptions</i> The Amazon CloudWatch logging options for your delivery stream.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CloudWatchLoggingOptions</b>: The Amazon CloudWatch logging options for your delivery stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3BackupUpdate</i> The Amazon S3 destination for backup.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3BackupUpdate</b>: The Amazon S3 destination for backup.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3BackupMode</i> You can update a delivery stream to enable Amazon S3 backup if it is disabled. If backup is enabled, you can't update the delivery stream to disable it. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProcessingConfiguration</i> The data processing configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ProcessingConfiguration</b>: The data processing configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Update</i> The Amazon S3 destination. The compression formats <code>SNAPPY</code> or <code>ZIP</code> cannot be specified in <code>RedshiftDestinationUpdate.S3Update</code> because the Amazon Redshift <code>COPY</code> operation that reads from the S3 bucket doesn't support these compression formats.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3Update</b>: The Amazon S3 destination. The compression formats <code>SNAPPY</code> or <code>ZIP</code> cannot be specified in <code>RedshiftDestinationUpdate.S3Update</code> because the Amazon Redshift <code>COPY</code> operation that reads from the S3 bucket doesn't support these compression formats.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RetryOptions</i> The retry behavior in case Kinesis Data Firehose is unable to deliver documents to Amazon Redshift. Default value is 3600 (60 minutes).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RetryOptions</b>: The retry behavior in case Kinesis Data Firehose is unable to deliver documents to Amazon Redshift. Default value is 3600 (60 minutes).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Password</i> The user password.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Username</i> The name of the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CopyCommand</i> The <code>COPY</code> command.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CopyCommand</b>: The <code>COPY</code> command.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterJDBCURL</i> The database connection string.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleARN</i> The Amazon Resource Name (ARN) of the AWS credentials. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CopyOptions</i> Optional parameters to use with the Amazon Redshift <code>COPY</code> command. For more information, see the "Optional Parameters" section of <a href="https://docs.aws.amazon.com/redshift/latest/dg/r_COPY.html">Amazon Redshift COPY command</a>. Some possible examples that would apply to Kinesis Data Firehose are as follows:  <code>delimiter '\t' lzop;</code> - fields are delimited with "\t" (TAB character) and compressed using lzop.  <code>delimiter '|'</code> - fields are delimited with "|" (this is the default delimiter).  <code>delimiter '|' escape</code> - the delimiter should be escaped.  <code>fixedwidth 'venueid:3,venuename:25,venuecity:12,venuestate:2,venueseats:6'</code> - fields are fixed width in the source, with each width specified after every column in the table.  <code>JSON 's3://mybucket/jsonpaths.txt'</code> - data is in JSON format, and the path specified is the format of the data. For more examples, see <a href="https://docs.aws.amazon.com/redshift/latest/dg/r_COPY_command_examples.html">Amazon Redshift COPY command examples</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DataTableColumns</i> A comma-separated list of column names.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DataTableName</i> The name of the target table. The table must already exist in the database.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DurationInSeconds</i> The length of time during which Kinesis Data Firehose retries delivery after a failure, starting from the initial request and including the first attempt. The default value is 3600 seconds (60 minutes). Kinesis Data Firehose does not retry if the value of <code>DurationInSeconds</code> is 0 (zero) or if the first delivery attempt takes longer than the current value.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorOutputPrefix</i> A prefix that Kinesis Data Firehose evaluates and adds to failed records before writing them to S3. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see <a href="https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html">Custom Prefixes for Amazon S3 Objects</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Prefix</i> The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered Amazon S3 files. You can also specify a custom prefix, as described in <a href="https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html">Custom Prefixes for Amazon S3 Objects</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BucketARN</i> The ARN of the S3 bucket. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleARN</i> The Amazon Resource Name (ARN) of the AWS credentials. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a>.<br/>The buffering option. If no value is specified, <code>BufferingHints</code> object default values are used.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>BufferingHints</b>: The buffering option. If no value is specified, <code>BufferingHints</code> object default values are used.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Processors</i> The data processors.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Enables or disables data processing.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorOutputPrefix</i> A prefix that Kinesis Data Firehose evaluates and adds to failed records before writing them to S3. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see <a href="https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html">Custom Prefixes for Amazon S3 Objects</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Prefix</i> The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered Amazon S3 files. You can also specify a custom prefix, as described in <a href="https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html">Custom Prefixes for Amazon S3 Objects</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BucketARN</i> The ARN of the S3 bucket. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleARN</i> The Amazon Resource Name (ARN) of the AWS credentials. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a>.<br/>The buffering option. If no value is specified, <code>BufferingHints</code> object default values are used.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>BufferingHints</b>: The buffering option. If no value is specified, <code>BufferingHints</code> object default values are used.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LogStreamName</i> The CloudWatch log stream name for logging. This value is required if CloudWatch logging is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LogGroupName</i> The CloudWatch group name for logging. This value is required if CloudWatch logging is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Enables or disables CloudWatch logging.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudWatchLoggingOptions</i> The CloudWatch logging options for your delivery stream.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CloudWatchLoggingOptions</b>: The CloudWatch logging options for your delivery stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProcessingConfiguration</i> The data processing configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ProcessingConfiguration</b>: The data processing configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Update</i> The Amazon S3 destination.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3Update</b>: The Amazon S3 destination.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RetryOptions</i> The retry behavior in case Kinesis Data Firehose is unable to deliver documents to Amazon ES. The default value is 300 (5 minutes).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RetryOptions</b>: The retry behavior in case Kinesis Data Firehose is unable to deliver documents to Amazon ES. The default value is 300 (5 minutes).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BufferingHints</i> The buffering options. If no value is specified, <code>ElasticsearchBufferingHints</code> object default values are used. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>BufferingHints</b>: The buffering options. If no value is specified, <code>ElasticsearchBufferingHints</code> object default values are used. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IndexRotationPeriod</i> The Elasticsearch index rotation period. Index rotation appends a timestamp to <code>IndexName</code> to facilitate the expiration of old data. For more information, see <a href="https://docs.aws.amazon.com/firehose/latest/dev/basic-deliver.html#es-index-rotation">Index Rotation for the Amazon ES Destination</a>. Default value is <code>OneDay</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TypeName</i> The Elasticsearch type name. For Elasticsearch 6.x, there can be only one type per index. If you try to specify a new type for an existing index that already has another type, Kinesis Data Firehose returns an error during runtime. If you upgrade Elasticsearch from 6.x to 7.x and don’t update your delivery stream, Kinesis Data Firehose still delivers data to Elasticsearch with the old index name and type name. If you want to update your delivery stream with a new index name, provide an empty string for <code>TypeName</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IndexName</i> The Elasticsearch index name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterEndpoint</i> The endpoint to use when communicating with the cluster. Specify either this <code>ClusterEndpoint</code> or the <code>DomainARN</code> field.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainARN</i> The ARN of the Amazon ES domain. The IAM role must have permissions for <code>DescribeElasticsearchDomain</code>, <code>DescribeElasticsearchDomains</code>, and <code>DescribeElasticsearchDomainConfig</code> after assuming the IAM role specified in <code>RoleARN</code>. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a>. Specify either <code>ClusterEndpoint</code> or <code>DomainARN</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleARN</i> The Amazon Resource Name (ARN) of the IAM role to be assumed by Kinesis Data Firehose for calling the Amazon ES Configuration API and for indexing documents. For more information, see <a href="https://docs.aws.amazon.com/firehose/latest/dev/controlling-access.html#using-iam-s3">Grant Kinesis Data Firehose Access to an Amazon S3 Destination</a> and <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SizeInMBs</i> Buffer incoming data to the specified size, in MBs, before delivering it to the destination. The default value is 5. We recommend setting this parameter to a value greater than the amount of data you typically ingest into the delivery stream in 10 seconds. For example, if you typically ingest data at 1 MB/sec, the value should be 10 MB or higher.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IntervalInSeconds</i> Buffer incoming data for the specified period of time, in seconds, before delivering it to the destination. The default value is 300 (5 minutes).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DurationInSeconds</i> After an initial failure to deliver to Amazon ES, the total amount of time during which Kinesis Data Firehose retries delivery (including the first attempt). After this time has elapsed, the failed documents are written to Amazon S3. Default value is 300 seconds (5 minutes). A value of 0 (zero) results in no retries.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorOutputPrefix</i> A prefix that Kinesis Data Firehose evaluates and adds to failed records before writing them to S3. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see <a href="https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html">Custom Prefixes for Amazon S3 Objects</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Prefix</i> The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered Amazon S3 files. You can also specify a custom prefix, as described in <a href="https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html">Custom Prefixes for Amazon S3 Objects</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BucketARN</i> The ARN of the S3 bucket. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleARN</i> The Amazon Resource Name (ARN) of the AWS credentials. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a>.<br/>The buffering option. If no value is specified, <code>BufferingHints</code> object default values are used.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>BufferingHints</b>: The buffering option. If no value is specified, <code>BufferingHints</code> object default values are used.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Processors</i> The data processors.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Enables or disables data processing.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LogStreamName</i> The CloudWatch log stream name for logging. This value is required if CloudWatch logging is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LogGroupName</i> The CloudWatch group name for logging. This value is required if CloudWatch logging is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Enables or disables CloudWatch logging.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudWatchLoggingOptions</i> The Amazon CloudWatch logging options for your delivery stream.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CloudWatchLoggingOptions</b>: The Amazon CloudWatch logging options for your delivery stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProcessingConfiguration</i> The data processing configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ProcessingConfiguration</b>: The data processing configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Update</i> Your update to the configuration of the backup Amazon S3 location.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3Update</b>: Your update to the configuration of the backup Amazon S3 location.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3BackupMode</i> Specifies how you want Kinesis Data Firehose to back up documents to Amazon S3. When set to <code>FailedDocumentsOnly</code>, Kinesis Data Firehose writes any data that could not be indexed to the configured Amazon S3 destination. When set to <code>AllEvents</code>, Kinesis Data Firehose delivers all incoming records to Amazon S3, and also writes failed documents to Amazon S3. The default value is <code>FailedEventsOnly</code>. You can update this backup mode from <code>FailedEventsOnly</code> to <code>AllEvents</code>. You can't update it from <code>AllEvents</code> to <code>FailedEventsOnly</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RetryOptions</i> The retry behavior in case Kinesis Data Firehose is unable to deliver data to Splunk or if it doesn't receive an acknowledgment of receipt from Splunk.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RetryOptions</b>: The retry behavior in case Kinesis Data Firehose is unable to deliver data to Splunk or if it doesn't receive an acknowledgment of receipt from Splunk.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HECAcknowledgmentTimeoutInSeconds</i> The amount of time that Kinesis Data Firehose waits to receive an acknowledgment from Splunk after it sends data. At the end of the timeout period, Kinesis Data Firehose either tries to send the data again or considers it an error, based on your retry settings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HECToken</i> A GUID that you obtain from your Splunk cluster when you create a new HEC endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HECEndpointType</i> This type can be either "Raw" or "Event."<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HECEndpoint</i> The HTTP Event Collector (HEC) endpoint to which Kinesis Data Firehose sends your data.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DurationInSeconds</i> The total amount of time that Kinesis Data Firehose spends on retries. This duration starts after the initial attempt to send data to Splunk fails. It doesn't include the periods during which Kinesis Data Firehose waits for acknowledgment from Splunk after each attempt.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorOutputPrefix</i> A prefix that Kinesis Data Firehose evaluates and adds to failed records before writing them to S3. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see <a href="https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html">Custom Prefixes for Amazon S3 Objects</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Prefix</i> The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered Amazon S3 files. You can also specify a custom prefix, as described in <a href="https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html">Custom Prefixes for Amazon S3 Objects</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BucketARN</i> The ARN of the S3 bucket. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleARN</i> The Amazon Resource Name (ARN) of the AWS credentials. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a>.<br/>The buffering option. If no value is specified, <code>BufferingHints</code> object default values are used.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>BufferingHints</b>: The buffering option. If no value is specified, <code>BufferingHints</code> object default values are used.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Processors</i> The data processors.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Enables or disables data processing.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LogStreamName</i> The CloudWatch log stream name for logging. This value is required if CloudWatch logging is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LogGroupName</i> The CloudWatch group name for logging. This value is required if CloudWatch logging is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Enables or disables CloudWatch logging.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Update</i> Describes an update for a destination in Amazon S3.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3Update</b>: Describes an update for a destination in Amazon S3.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3BackupMode</i> Describes the S3 bucket backup options for the data that Kinesis Firehose delivers to the HTTP endpoint destination. You can back up all documents (<code>AllData</code>) or only the documents that Kinesis Data Firehose could not deliver to the specified HTTP endpoint destination (<code>FailedDataOnly</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RetryOptions</i> Describes the retry behavior in case Kinesis Data Firehose is unable to deliver data to the specified HTTP endpoint destination, or if it doesn't receive a valid acknowledgment of receipt from the specified HTTP endpoint destination.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RetryOptions</b>: Describes the retry behavior in case Kinesis Data Firehose is unable to deliver data to the specified HTTP endpoint destination, or if it doesn't receive a valid acknowledgment of receipt from the specified HTTP endpoint destination.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleARN</i> Kinesis Data Firehose uses this IAM role for all the permissions that the delivery stream needs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProcessingConfiguration</i> Describes a data processing configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ProcessingConfiguration</b>: Describes a data processing configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequestConfiguration</i> The configuration of the request sent to the HTTP endpoint specified as the destination.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RequestConfiguration</b>: The configuration of the request sent to the HTTP endpoint specified as the destination.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudWatchLoggingOptions</i> Describes the Amazon CloudWatch logging options for your delivery stream.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CloudWatchLoggingOptions</b>: Describes the Amazon CloudWatch logging options for your delivery stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BufferingHints</i> Describes buffering options that can be applied to the data before it is delivered to the HTTPS endpoint destination. Kinesis Data Firehose teats these options as hints, and it might choose to use more optimal values. The <code>SizeInMBs</code> and <code>IntervalInSeconds</code> parameters are optional. However, if specify a value for one of them, you must also provide a value for the other. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>BufferingHints</b>: Describes buffering options that can be applied to the data before it is delivered to the HTTPS endpoint destination. Kinesis Data Firehose teats these options as hints, and it might choose to use more optimal values. The <code>SizeInMBs</code> and <code>IntervalInSeconds</code> parameters are optional. However, if specify a value for one of them, you must also provide a value for the other. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointConfiguration</i> Describes the configuration of the HTTP endpoint destination.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EndpointConfiguration</b>: Describes the configuration of the HTTP endpoint destination.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AccessKey</i> The access key required for Kinesis Firehose to authenticate with the HTTP endpoint selected as the destination.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the HTTP endpoint selected as the destination.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Url</i> The URL of the HTTP endpoint selected as the destination.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IntervalInSeconds</i> Buffer incoming data for the specified period of time, in seconds, before delivering it to the destination. The default value is 300 (5 minutes). <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SizeInMBs</i> Buffer incoming data to the specified size, in MBs, before delivering it to the destination. The default value is 5.  We recommend setting this parameter to a value greater than the amount of data you typically ingest into the delivery stream in 10 seconds. For example, if you typically ingest data at 1 MB/sec, the value should be 10 MB or higher. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LogStreamName</i> The CloudWatch log stream name for logging. This value is required if CloudWatch logging is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LogGroupName</i> The CloudWatch group name for logging. This value is required if CloudWatch logging is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Enables or disables CloudWatch logging.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CommonAttributes</i> Describes the metadata sent to the HTTP endpoint destination.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ContentEncoding</i> Kinesis Data Firehose uses the content encoding to compress the body of a request before sending the request to the destination. For more information, see <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Encoding">Content-Encoding</a> in MDN Web Docs, the official Mozilla documentation.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Processors</i> The data processors.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Enables or disables data processing.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DurationInSeconds</i> The total amount of time that Kinesis Data Firehose spends on retries. This duration starts after the initial attempt to send data to the custom destination via HTTPS endpoint fails. It doesn't include the periods during which Kinesis Data Firehose waits for acknowledgment from the specified destination after each attempt. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorOutputPrefix</i> A prefix that Kinesis Data Firehose evaluates and adds to failed records before writing them to S3. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see <a href="https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html">Custom Prefixes for Amazon S3 Objects</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Prefix</i> The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered Amazon S3 files. You can also specify a custom prefix, as described in <a href="https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html">Custom Prefixes for Amazon S3 Objects</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BucketARN</i> The ARN of the S3 bucket. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleARN</i> The Amazon Resource Name (ARN) of the AWS credentials. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a>.<br/>The buffering option. If no value is specified, <code>BufferingHints</code> object default values are used.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>BufferingHints</b>: The buffering option. If no value is specified, <code>BufferingHints</code> object default values are used.
        :return:         """
        pass





class FIS(BaseClient):
    r"""AWS Fault Injection Simulator is a managed service that enables you to perform fault injection experiments on your AWS workloads. For more information, see the <a href="https://docs.aws.amazon.com/fis/latest/userguide/">AWS Fault Injection Simulator User Guide</a>."""




    class CreateExperimentTemplateRequest(Mapping):
        pass
    
    class CreateExperimentTemplateResponse(Mapping):
        pass
    
    class CreateExperimentTemplateStopConditionInput(Mapping):
        pass
    
    class CreateExperimentTemplateTargetInputMap(object):
        pass
    
    class CreateExperimentTemplateActionInputMap(object):
        pass
    
    class TagMap(object):
        pass
    
    class DeleteExperimentTemplateRequest(Mapping):
        pass
    
    class DeleteExperimentTemplateResponse(Mapping):
        pass
    
    class GetActionRequest(Mapping):
        pass
    
    class GetActionResponse(Mapping):
        pass
    
    class GetExperimentRequest(Mapping):
        pass
    
    class GetExperimentResponse(Mapping):
        pass
    
    class GetExperimentTemplateRequest(Mapping):
        pass
    
    class GetExperimentTemplateResponse(Mapping):
        pass
    
    class ListActionsRequest(Mapping):
        pass
    
    class ListActionsResponse(Mapping):
        pass
    
    class ListExperimentTemplatesRequest(Mapping):
        pass
    
    class ListExperimentTemplatesResponse(Mapping):
        pass
    
    class ListExperimentsRequest(Mapping):
        pass
    
    class ListExperimentsResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class StartExperimentRequest(Mapping):
        pass
    
    class StartExperimentResponse(Mapping):
        pass
    
    class StopExperimentRequest(Mapping):
        pass
    
    class StopExperimentResponse(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateExperimentTemplateRequest(Mapping):
        pass
    
    class UpdateExperimentTemplateResponse(Mapping):
        pass
    
    class UpdateExperimentTemplateStopConditionInput(Mapping):
        pass
    
    class UpdateExperimentTemplateTargetInputMap(object):
        pass
    
    class UpdateExperimentTemplateActionInputMap(object):
        pass
    
    def create_experiment_template(self, roleArn: str, actions: CreateExperimentTemplateActionInputMap, stopConditions: List[CreateExperimentTemplateStopConditionInput], description: str, clientToken: str, targets: CreateExperimentTemplateTargetInputMap=None, tags: TagMap=None) -> CreateExperimentTemplateResponse:
        r"""Creates an experiment template.  To create a template, specify the following information:  <ul> <li>  <b>Targets</b>: A target can be a specific resource in your AWS environment, or one or more resources that match criteria that you specify, for example, resources that have specific tags. </li> <li>  <b>Actions</b>: The actions to carry out on the target. You can specify multiple actions, the duration of each action, and when to start each action during an experiment. </li> <li>  <b>Stop conditions</b>: If a stop condition is triggered while an experiment is running, the experiment is automatically stopped. You can define a stop condition as a CloudWatch alarm. </li> </ul> For more information, see the <a href="https://docs.aws.amazon.com/fis/latest/userguide/">AWS Fault Injection Simulator User Guide</a>.

        :param self:
        :param tags:  The tags to apply to the experiment template.<br/>roleArn:  The Amazon Resource Name (ARN) of an IAM role that grants the AWS FIS service permission to perform service actions on your behalf.<br/>actions:  The actions for the experiment.<br/>targets:  The targets for the experiment.<br/>stopConditions:  The stop conditions.<br/>description:  A description for the experiment template. Can contain up to 64 letters (A-Z and a-z).<br/>clientToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.<br/>
        :return: experimentTemplate:  Information about the experiment template.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The tags for the experiment template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>roleArn</i> The Amazon Resource Name (ARN) of an IAM role.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdateTime</i> The time the experiment template was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationTime</i> The time the experiment template was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>stopConditions</i> The stop conditions for the experiment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>actions</i> The actions for the experiment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>targets</i> The targets for the experiment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> The description for the experiment template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The ID of the experiment template.<br/>        """
        pass

    def delete_experiment_template(self, id: str) -> DeleteExperimentTemplateResponse:
        r"""Deletes the specified experiment template.

        :param self:
        :param id:  The ID of the experiment template.<br/>
        :return: experimentTemplate:  Information about the experiment template.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The tags for the experiment template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>roleArn</i> The Amazon Resource Name (ARN) of an IAM role.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdateTime</i> The time the experiment template was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationTime</i> The time the experiment template was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>stopConditions</i> The stop conditions for the experiment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>actions</i> The actions for the experiment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>targets</i> The targets for the experiment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> The description for the experiment template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The ID of the experiment template.<br/>        """
        pass

    def get_action(self, id: str) -> GetActionResponse:
        r"""Gets information about the specified AWS FIS action.

        :param self:
        :param id:  The ID of the action.<br/>
        :return: action:  Information about the action.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The tags for the action.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>targets</i> The supported targets for the action.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>parameters</i> The action parameters, if applicable.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> The description for the action.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The ID of the action.<br/>        """
        pass

    def get_experiment(self, id: str) -> GetExperimentResponse:
        r"""Gets information about the specified experiment.

        :param self:
        :param id:  The ID of the experiment.<br/>
        :return: experiment:  Information about the experiment.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The tags for the experiment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>endTime</i> The time that the experiment ended.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>startTime</i> The time that the experiment was started.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationTime</i> The time the experiment was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>stopConditions</i> The stop conditions for the experiment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>actions</i> The actions for the experiment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>targets</i> The targets for the experiment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>state</i> The state of the experiment.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>state</b>: The state of the experiment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>roleArn</i> The Amazon Resource Name (ARN) of an IAM role that grants the AWS FIS service permission to perform service actions on your behalf.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>experimentTemplateId</i> The ID of the experiment template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The ID of the experiment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>reason</i> The reason for the state.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The state of the experiment.<br/>        """
        pass

    def get_experiment_template(self, id: str) -> GetExperimentTemplateResponse:
        r"""Gets information about the specified experiment template.

        :param self:
        :param id:  The ID of the experiment template.<br/>
        :return: experimentTemplate:  Information about the experiment template.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The tags for the experiment template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>roleArn</i> The Amazon Resource Name (ARN) of an IAM role.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdateTime</i> The time the experiment template was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationTime</i> The time the experiment template was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>stopConditions</i> The stop conditions for the experiment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>actions</i> The actions for the experiment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>targets</i> The targets for the experiment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> The description for the experiment template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The ID of the experiment template.<br/>        """
        pass

    def list_actions(self, maxResults: int=None, nextToken: str=None) -> ListActionsResponse:
        r"""Lists the available AWS FIS actions.

        :param self:
        :param nextToken:  The token for the next page of results.<br/>maxResults:  The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.<br/>
        :return: nextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>actions:  The actions.<br/>        """
        pass

    def list_experiment_templates(self, maxResults: int=None, nextToken: str=None) -> ListExperimentTemplatesResponse:
        r"""Lists your experiment templates.

        :param self:
        :param nextToken:  The token for the next page of results.<br/>maxResults:  The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.<br/>
        :return: nextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>experimentTemplates:  The experiment templates.<br/>        """
        pass

    def list_experiments(self, maxResults: int=None, nextToken: str=None) -> ListExperimentsResponse:
        r"""Lists your experiments.

        :param self:
        :param nextToken:  The token for the next page of results.<br/>maxResults:  The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.<br/>
        :return: nextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>experiments:  The experiments.<br/>        """
        pass

    def list_tags_for_resource(self, resourceArn: str) -> ListTagsForResourceResponse:
        r"""Lists the tags for the specified resource.

        :param self:
        :param resourceArn:  The Amazon Resource Name (ARN) of the resource.<br/>
        :return: tags:  The tags for the resource.<br/>        """
        pass

    def start_experiment(self, experimentTemplateId: str, clientToken: str, tags: TagMap=None) -> StartExperimentResponse:
        r"""Starts running an experiment from the specified experiment template.

        :param self:
        :param tags:  The tags to apply to the experiment.<br/>experimentTemplateId:  The ID of the experiment template.<br/>clientToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.<br/>
        :return: experiment:  Information about the experiment.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The tags for the experiment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>endTime</i> The time that the experiment ended.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>startTime</i> The time that the experiment was started.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationTime</i> The time the experiment was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>stopConditions</i> The stop conditions for the experiment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>actions</i> The actions for the experiment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>targets</i> The targets for the experiment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>state</i> The state of the experiment.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>state</b>: The state of the experiment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>roleArn</i> The Amazon Resource Name (ARN) of an IAM role that grants the AWS FIS service permission to perform service actions on your behalf.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>experimentTemplateId</i> The ID of the experiment template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The ID of the experiment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>reason</i> The reason for the state.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The state of the experiment.<br/>        """
        pass

    def stop_experiment(self, id: str) -> StopExperimentResponse:
        r"""Stops the specified experiment.

        :param self:
        :param id:  The ID of the experiment.<br/>
        :return: experiment:  Information about the experiment.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The tags for the experiment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>endTime</i> The time that the experiment ended.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>startTime</i> The time that the experiment was started.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationTime</i> The time the experiment was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>stopConditions</i> The stop conditions for the experiment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>actions</i> The actions for the experiment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>targets</i> The targets for the experiment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>state</i> The state of the experiment.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>state</b>: The state of the experiment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>roleArn</i> The Amazon Resource Name (ARN) of an IAM role that grants the AWS FIS service permission to perform service actions on your behalf.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>experimentTemplateId</i> The ID of the experiment template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The ID of the experiment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>reason</i> The reason for the state.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The state of the experiment.<br/>        """
        pass

    def tag_resource(self, tags: TagMap, resourceArn: str) -> TagResourceResponse:
        r"""Applies the specified tags to the specified resource.

        :param self:
        :param tags:  The tags for the resource.<br/>resourceArn:  The Amazon Resource Name (ARN) of the resource.<br/>
        :return:         """
        pass

    def untag_resource(self, resourceArn: str, tagKeys: List[TagKey]=None) -> UntagResourceResponse:
        r"""Removes the specified tags from the specified resource.

        :param self:
        :param tagKeys:  The tag keys to remove.<br/>resourceArn:  The Amazon Resource Name (ARN) of the resource.<br/>
        :return:         """
        pass

    def update_experiment_template(self, id: str, description: str=None, stopConditions: List[UpdateExperimentTemplateStopConditionInput]=None, targets: UpdateExperimentTemplateTargetInputMap=None, actions: UpdateExperimentTemplateActionInputMap=None, roleArn: str=None) -> UpdateExperimentTemplateResponse:
        r"""Updates the specified experiment template.

        :param self:
        :param roleArn:  The Amazon Resource Name (ARN) of an IAM role that grants the AWS FIS service permission to perform service actions on your behalf.<br/>actions:  The actions for the experiment.<br/>targets:  The targets for the experiment.<br/>stopConditions:  The stop conditions for the experiment.<br/>description:  A description for the template.<br/>id:  The ID of the experiment template.<br/>
        :return: experimentTemplate:  Information about the experiment template.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The tags for the experiment template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>roleArn</i> The Amazon Resource Name (ARN) of an IAM role.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdateTime</i> The time the experiment template was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationTime</i> The time the experiment template was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>stopConditions</i> The stop conditions for the experiment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>actions</i> The actions for the experiment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>targets</i> The targets for the experiment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> The description for the experiment template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The ID of the experiment template.<br/>        """
        pass





class FMS(BaseClient):
    r"""This is the <i>Firewall Manager API Reference</i>. This guide is for developers who need detailed information about the Firewall Manager API actions, data types, and errors. For detailed information about Firewall Manager features, see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/fms-chapter.html">Firewall Manager Developer Guide</a>. Some API actions require explicit resource permissions. For information, see the developer guide topic <a href="https://docs.aws.amazon.com/waf/latest/developerguide/fms-api-permissions-ref.html">Firewall Manager required permissions for API actions</a>. """


    class ListComplianceStatusPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_compliance_status` for valid parameters"""
            pass
    class ListMemberAccountsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_member_accounts` for valid parameters"""
            pass
    class ListPoliciesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_policies` for valid parameters"""
            pass
    class ListAppsListsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_apps_lists` for valid parameters"""
            pass
    class ListProtocolsListsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_protocols_lists` for valid parameters"""
            pass


    class AssociateAdminAccountRequest(Mapping):
        pass
    
    class DeleteAppsListRequest(Mapping):
        pass
    
    class DeleteNotificationChannelRequest(Mapping):
        pass
    
    class DeletePolicyRequest(Mapping):
        pass
    
    class Boolean(object):
        pass
    
    class DeleteProtocolsListRequest(Mapping):
        pass
    
    class DisassociateAdminAccountRequest(Mapping):
        pass
    
    class GetAdminAccountRequest(Mapping):
        pass
    
    class GetAdminAccountResponse(Mapping):
        pass
    
    class GetAppsListRequest(Mapping):
        pass
    
    class GetAppsListResponse(Mapping):
        pass
    
    class GetComplianceDetailRequest(Mapping):
        pass
    
    class GetComplianceDetailResponse(Mapping):
        pass
    
    class GetNotificationChannelRequest(Mapping):
        pass
    
    class GetNotificationChannelResponse(Mapping):
        pass
    
    class GetPolicyRequest(Mapping):
        pass
    
    class GetPolicyResponse(Mapping):
        pass
    
    class GetProtectionStatusRequest(Mapping):
        pass
    
    class GetProtectionStatusResponse(Mapping):
        pass
    
    class TimeStamp(object):
        pass
    
    class GetProtocolsListRequest(Mapping):
        pass
    
    class GetProtocolsListResponse(Mapping):
        pass
    
    class GetViolationDetailsRequest(Mapping):
        pass
    
    class GetViolationDetailsResponse(Mapping):
        pass
    
    class ListAppsListsRequest(Mapping):
        pass
    
    class ListAppsListsResponse(Mapping):
        pass
    
    class ListComplianceStatusRequest(Mapping):
        pass
    
    class ListComplianceStatusResponse(Mapping):
        pass
    
    class ListMemberAccountsRequest(Mapping):
        pass
    
    class ListMemberAccountsResponse(Mapping):
        pass
    
    class ListPoliciesRequest(Mapping):
        pass
    
    class ListPoliciesResponse(Mapping):
        pass
    
    class ListProtocolsListsRequest(Mapping):
        pass
    
    class ListProtocolsListsResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class PutAppsListRequest(Mapping):
        pass
    
    class PutAppsListResponse(Mapping):
        pass
    
    class AppsListData(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class PutNotificationChannelRequest(Mapping):
        pass
    
    class PutPolicyRequest(Mapping):
        pass
    
    class PutPolicyResponse(Mapping):
        pass
    
    class Policy(Mapping):
        pass
    
    class PutProtocolsListRequest(Mapping):
        pass
    
    class PutProtocolsListResponse(Mapping):
        pass
    
    class ProtocolsListData(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    def associate_admin_account(self, AdminAccount: str):
        r"""Sets the Firewall Manager administrator account. The account must be a member of the organization in Organizations whose resources you want to protect. Firewall Manager sets the permissions that allow the account to administer your Firewall Manager policies. The account that you associate with Firewall Manager is called the Firewall Manager administrator account. 

        :param self:
        :param AdminAccount:  The Amazon Web Services account ID to associate with Firewall Manager as the Firewall Manager administrator account. This must be an Organizations member account. For more information about Organizations, see <a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_accounts.html">Managing the Amazon Web Services Accounts in Your Organization</a>. <br/>
        :return:         """
        pass

    def delete_apps_list(self, ListId: str):
        r"""Permanently deletes an Firewall Manager applications list.

        :param self:
        :param ListId:  The ID of the applications list that you want to delete. You can retrieve this ID from <code>PutAppsList</code>, <code>ListAppsLists</code>, and <code>GetAppsList</code>.<br/>
        :return:         """
        pass

    def delete_notification_channel(self):
        r"""Deletes an Firewall Manager association with the IAM role and the Amazon Simple Notification Service (SNS) topic that is used to record Firewall Manager SNS logs.

        :param self:
        :param 
        :return:         """
        pass

    def delete_policy(self, PolicyId: str, DeleteAllPolicyResources: Boolean=None):
        r"""Permanently deletes an Firewall Manager policy. 

        :param self:
        :param DeleteAllPolicyResources:  If <code>True</code>, the request performs cleanup according to the policy type.  For WAF and Shield Advanced policies, the cleanup does the following: <ul> <li> Deletes rule groups created by Firewall Manager </li> <li> Removes web ACLs from in-scope resources </li> <li> Deletes web ACLs that contain no rules or rule groups </li> </ul> For security group policies, the cleanup does the following for each security group in the policy: <ul> <li> Disassociates the security group from in-scope resources  </li> <li> Deletes the security group if it was created through Firewall Manager and if it's no longer associated with any resources through another policy </li> </ul> After the cleanup, in-scope resources are no longer protected by web ACLs in this policy. Protection of out-of-scope resources remains unchanged. Scope is determined by tags that you create and accounts that you associate with the policy. When creating the policy, if you specify that only resources in specific accounts or with specific tags are in scope of the policy, those accounts and resources are handled by the policy. All others are out of scope. If you don't specify tags or accounts, all resources are in scope. <br/>PolicyId:  The ID of the policy that you want to delete. You can retrieve this ID from <code>PutPolicy</code> and <code>ListPolicies</code>.<br/>
        :return:         """
        pass

    def delete_protocols_list(self, ListId: str):
        r"""Permanently deletes an Firewall Manager protocols list.

        :param self:
        :param ListId:  The ID of the protocols list that you want to delete. You can retrieve this ID from <code>PutProtocolsList</code>, <code>ListProtocolsLists</code>, and <code>GetProtocolsLost</code>.<br/>
        :return:         """
        pass

    def disassociate_admin_account(self):
        r"""Disassociates the account that has been set as the Firewall Manager administrator account. To set a different account as the administrator account, you must submit an <code>AssociateAdminAccount</code> request.

        :param self:
        :param 
        :return:         """
        pass

    def get_admin_account(self) -> GetAdminAccountResponse:
        r"""Returns the Organizations account that is associated with Firewall Manager as the Firewall Manager administrator.

        :param self:
        :param 
        :return: RoleStatus:  The status of the Amazon Web Services account that you set as the Firewall Manager administrator.<br/>AdminAccount:  The Amazon Web Services account that is set as the Firewall Manager administrator.<br/>        """
        pass

    def get_apps_list(self, ListId: str, DefaultList: Boolean=None) -> GetAppsListResponse:
        r"""Returns information about the specified Firewall Manager applications list.

        :param self:
        :param DefaultList:  Specifies whether the list to retrieve is a default list owned by Firewall Manager.<br/>ListId:  The ID of the Firewall Manager applications list that you want the details for.<br/>
        :return: AppsListArn:  The Amazon Resource Name (ARN) of the applications list.<br/>AppsList:  Information about the specified Firewall Manager applications list.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreviousAppsList</i> A map of previous version numbers to their corresponding <code>App</code> object arrays.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AppsList</i> An array of applications in the Firewall Manager applications list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdateTime</i> The time that the Firewall Manager applications list was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreateTime</i> The time that the Firewall Manager applications list was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ListUpdateToken</i> A unique identifier for each update to the list. When you update the list, the update token must match the token of the current version of the application list. You can retrieve the update token by getting the list. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ListName</i> The name of the Firewall Manager applications list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ListId</i> The ID of the Firewall Manager applications list.<br/>        """
        pass

    def get_compliance_detail(self, MemberAccount: str, PolicyId: str) -> GetComplianceDetailResponse:
        r"""Returns detailed compliance information about the specified member account. Details include resources that are in and out of compliance with the specified policy.  <ul> <li> Resources are considered noncompliant for WAF and Shield Advanced policies if the specified policy has not been applied to them. </li> <li> Resources are considered noncompliant for security group policies if they are in scope of the policy, they violate one or more of the policy rules, and remediation is disabled or not possible. </li> <li> Resources are considered noncompliant for Network Firewall policies if a firewall is missing in the VPC, if the firewall endpoint isn't set up in an expected Availability Zone and subnet, if a subnet created by the Firewall Manager doesn't have the expected route table, and for modifications to a firewall policy that violate the Firewall Manager policy's rules. </li> <li> Resources are considered noncompliant for DNS Firewall policies if a DNS Firewall rule group is missing from the rule group associations for the VPC.  </li> </ul>

        :param self:
        :param MemberAccount:  The Amazon Web Services account that owns the resources that you want to get the details for.<br/>PolicyId:  The ID of the policy that you want to get the details for. <code>PolicyId</code> is returned by <code>PutPolicy</code> and by <code>ListPolicies</code>.<br/>
        :return: PolicyComplianceDetail:  Information about the resources and the policy that you specified in the <code>GetComplianceDetail</code> request.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IssueInfoMap</i> Details about problems with dependent services, such as WAF or Config, and the error message received that indicates the problem with the service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExpiredAt</i> A timestamp that indicates when the returned information should be considered out of date.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EvaluationLimitExceeded</i> Indicates if over 100 resources are noncompliant with the Firewall Manager policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Violators</i> An array of resources that aren't protected by the WAF or Shield Advanced policy or that aren't in compliance with the security group policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MemberAccount</i> The Amazon Web Services account ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PolicyId</i> The ID of the Firewall Manager policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PolicyOwner</i> The Amazon Web Services account that created the Firewall Manager policy.<br/>        """
        pass

    def get_notification_channel(self) -> GetNotificationChannelResponse:
        r"""Information about the Amazon Simple Notification Service (SNS) topic that is used to record Firewall Manager SNS logs.

        :param self:
        :param 
        :return: SnsRoleName:  The IAM role that is used by Firewall Manager to record activity to SNS.<br/>SnsTopicArn:  The SNS topic that records Firewall Manager activity. <br/>        """
        pass

    def get_policy(self, PolicyId: str) -> GetPolicyResponse:
        r"""Returns information about the specified Firewall Manager policy.

        :param self:
        :param PolicyId:  The ID of the Firewall Manager policy that you want the details for.<br/>
        :return: PolicyArn:  The Amazon Resource Name (ARN) of the specified policy.<br/>Policy:  Information about the specified Firewall Manager policy.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExcludeMap</i> Specifies the Amazon Web Services account IDs and Organizations organizational units (OUs) to exclude from the policy. Specifying an OU is the equivalent of specifying all accounts in the OU and in any of its child OUs, including any child OUs and accounts that are added at a later time. You can specify inclusions or exclusions, but not both. If you specify an <code>IncludeMap</code>, Firewall Manager applies the policy to all accounts specified by the <code>IncludeMap</code>, and does not evaluate any <code>ExcludeMap</code> specifications. If you do not specify an <code>IncludeMap</code>, then Firewall Manager applies the policy to all accounts except for those specified by the <code>ExcludeMap</code>. You can specify account IDs, OUs, or a combination:  <ul> <li> Specify account IDs by setting the key to <code>ACCOUNT</code>. For example, the following is a valid map: <code>{“ACCOUNT” : [“accountID1”, “accountID2”]}</code>. </li> <li> Specify OUs by setting the key to <code>ORG_UNIT</code>. For example, the following is a valid map: <code>{“ORG_UNIT” : [“ouid111”, “ouid112”]}</code>. </li> <li> Specify accounts and OUs together in a single map, separated with a comma. For example, the following is a valid map: <code>{“ACCOUNT” : [“accountID1”, “accountID2”], “ORG_UNIT” : [“ouid111”, “ouid112”]}</code>. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeMap</i> Specifies the Amazon Web Services account IDs and Organizations organizational units (OUs) to include in the policy. Specifying an OU is the equivalent of specifying all accounts in the OU and in any of its child OUs, including any child OUs and accounts that are added at a later time. You can specify inclusions or exclusions, but not both. If you specify an <code>IncludeMap</code>, Firewall Manager applies the policy to all accounts specified by the <code>IncludeMap</code>, and does not evaluate any <code>ExcludeMap</code> specifications. If you do not specify an <code>IncludeMap</code>, then Firewall Manager applies the policy to all accounts except for those specified by the <code>ExcludeMap</code>. You can specify account IDs, OUs, or a combination:  <ul> <li> Specify account IDs by setting the key to <code>ACCOUNT</code>. For example, the following is a valid map: <code>{“ACCOUNT” : [“accountID1”, “accountID2”]}</code>. </li> <li> Specify OUs by setting the key to <code>ORG_UNIT</code>. For example, the following is a valid map: <code>{“ORG_UNIT” : [“ouid111”, “ouid112”]}</code>. </li> <li> Specify accounts and OUs together in a single map, separated with a comma. For example, the following is a valid map: <code>{“ACCOUNT” : [“accountID1”, “accountID2”], “ORG_UNIT” : [“ouid111”, “ouid112”]}</code>. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RemediationEnabled</i> Indicates if the policy should be automatically applied to new resources.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExcludeResourceTags</i> If set to <code>True</code>, resources with the tags that are specified in the <code>ResourceTag</code> array are not in scope of the policy. If set to <code>False</code>, and the <code>ResourceTag</code> array is not null, only resources with the specified tags are in scope of the policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceTags</i> An array of <code>ResourceTag</code> objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceTypeList</i> An array of <code>ResourceType</code> objects. Use this only to specify multiple resource types. To specify a single resource type, use <code>ResourceType</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceType</i> The type of resource protected by or in scope of the policy. This is in the format shown in the <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html">Amazon Web Services Resource Types Reference</a>. To apply this policy to multiple resource types, specify a resource type of <code>ResourceTypeList</code> and then specify the resource types in a <code>ResourceTypeList</code>. For WAF and Shield Advanced, example resource types include <code>AWS::ElasticLoadBalancingV2::LoadBalancer</code> and <code>AWS::CloudFront::Distribution</code>. For a security group common policy, valid values are <code>AWS::EC2::NetworkInterface</code> and <code>AWS::EC2::Instance</code>. For a security group content audit policy, valid values are <code>AWS::EC2::SecurityGroup</code>, <code>AWS::EC2::NetworkInterface</code>, and <code>AWS::EC2::Instance</code>. For a security group usage audit policy, the value is <code>AWS::EC2::SecurityGroup</code>. For an Network Firewall policy or DNS Firewall policy, the value is <code>AWS::EC2::VPC</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityServicePolicyData</i> Details about the security service that is being used to protect the resources.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SecurityServicePolicyData</b>: Details about the security service that is being used to protect the resources.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PolicyUpdateToken</i> A unique identifier for each update to the policy. When issuing a <code>PutPolicy</code> request, the <code>PolicyUpdateToken</code> in the request must match the <code>PolicyUpdateToken</code> of the current policy version. To get the <code>PolicyUpdateToken</code> of the current policy version, use a <code>GetPolicy</code> request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PolicyName</i> The name of the Firewall Manager policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PolicyId</i> The ID of the Firewall Manager policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ManagedServiceData</i> Details about the service that are specific to the service type, in JSON format. For service type <code>SHIELD_ADVANCED</code>, this is an empty string. <ul> <li> Example: <code>DNS_FIREWALL</code>   <code>"{\"type\":\"DNS_FIREWALL\",\"preProcessRuleGroups\":[{\"ruleGroupId\":\"rslvr-frg-1\",\"priority\":10}],\"postProcessRuleGroups\":[{\"ruleGroupId\":\"rslvr-frg-2\",\"priority\":9911}]}"</code>  </li> <li> Example: <code>NETWORK_FIREWALL</code>   <code>"{\"type\":\"NETWORK_FIREWALL\",\"networkFirewallStatelessRuleGroupReferences\":[{\"resourceARN\":\"arn:aws:network-firewall:us-west-1:1234567891011:stateless-rulegroup/rulegroup2\",\"priority\":10}],\"networkFirewallStatelessDefaultActions\":[\"aws:pass\",\"custom1\"],\"networkFirewallStatelessFragmentDefaultActions\":[\"custom2\",\"aws:pass\"],\"networkFirewallStatelessCustomActions\":[{\"actionName\":\"custom1\",\"actionDefinition\":{\"publishMetricAction\":{\"dimensions\":[{\"value\":\"dimension1\"}]}}},{\"actionName\":\"custom2\",\"actionDefinition\":{\"publishMetricAction\":{\"dimensions\":[{\"value\":\"dimension2\"}]}}}],\"networkFirewallStatefulRuleGroupReferences\":[{\"resourceARN\":\"arn:aws:network-firewall:us-west-1:1234567891011:stateful-rulegroup/rulegroup1\"}],\"networkFirewallOrchestrationConfig\":{\"singleFirewallEndpointPerVPC\":true,\"allowedIPV4CidrList\":[\"10.24.34.0/28\"]} }"</code>  </li> <li> Example: <code>WAFV2</code>   <code>"{\"type\":\"WAFV2\",\"preProcessRuleGroups\":[{\"ruleGroupArn\":null,\"overrideAction\":{\"type\":\"NONE\"},\"managedRuleGroupIdentifier\":{\"version\":null,\"vendorName\":\"AWS\",\"managedRuleGroupName\":\"AWSManagedRulesAmazonIpReputationList\"},\"ruleGroupType\":\"ManagedRuleGroup\",\"excludeRules\":[]}],\"postProcessRuleGroups\":[],\"defaultAction\":{\"type\":\"ALLOW\"},\"overrideCustomerWebACLAssociation\":false,\"loggingConfiguration\":{\"logDestinationConfigs\":[\"arn:aws:firehose:us-west-2:12345678912:deliverystream/aws-waf-logs-fms-admin-destination\"],\"redactedFields\":[{\"redactedFieldType\":\"SingleHeader\",\"redactedFieldValue\":\"Cookies\"},{\"redactedFieldType\":\"Method\"}]}}"</code>  In the <code>loggingConfiguration</code>, you can specify one <code>logDestinationConfigs</code>, you can optionally provide up to 20 <code>redactedFields</code>, and the <code>RedactedFieldType</code> must be one of <code>URI</code>, <code>QUERY_STRING</code>, <code>HEADER</code>, or <code>METHOD</code>. </li> <li> Example: <code>WAF Classic</code>   <code>"{\"type\": \"WAF\", \"ruleGroups\": [{\"id\":\"12345678-1bcd-9012-efga-0987654321ab\", \"overrideAction\" : {\"type\": \"COUNT\"}}], \"defaultAction\": {\"type\": \"BLOCK\"}}"</code>  </li> <li> Example: <code>SECURITY_GROUPS_COMMON</code>   <code>"{\"type\":\"SECURITY_GROUPS_COMMON\",\"revertManualSecurityGroupChanges\":false,\"exclusiveResourceSecurityGroupManagement\":false, \"applyToAllEC2InstanceENIs\":false,\"securityGroups\":[{\"id\":\" sg-000e55995d61a06bd\"}]}"</code>  </li> <li> Example: Shared VPCs. Apply the preceding policy to resources in shared VPCs as well as to those in VPCs that the account owns   <code>"{\"type\":\"SECURITY_GROUPS_COMMON\",\"revertManualSecurityGroupChanges\":false,\"exclusiveResourceSecurityGroupManagement\":false, \"applyToAllEC2InstanceENIs\":false,\"includeSharedVPC\":true,\"securityGroups\":[{\"id\":\" sg-000e55995d61a06bd\"}]}"</code>  </li> <li> Example: <code>SECURITY_GROUPS_CONTENT_AUDIT</code>   <code>"{\"type\":\"SECURITY_GROUPS_CONTENT_AUDIT\",\"securityGroups\":[{\"id\":\"sg-000e55995d61a06bd\"}],\"securityGroupAction\":{\"type\":\"ALLOW\"}}"</code>  The security group action for content audit can be <code>ALLOW</code> or <code>DENY</code>. For <code>ALLOW</code>, all in-scope security group rules must be within the allowed range of the policy's security group rules. For <code>DENY</code>, all in-scope security group rules must not contain a value or a range that matches a rule value or range in the policy security group. </li> <li> Example: <code>SECURITY_GROUPS_USAGE_AUDIT</code>   <code>"{\"type\":\"SECURITY_GROUPS_USAGE_AUDIT\",\"deleteUnusedSecurityGroups\":true,\"coalesceRedundantSecurityGroups\":true}"</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The service that the policy is using to protect the resources. This specifies the type of policy that is created, either an WAF policy, a Shield Advanced policy, or a security group policy. For security group policies, Firewall Manager supports one security group for each common policy and for each content audit policy. This is an adjustable limit that you can increase by contacting Amazon Web Services Support.<br/>        """
        pass

    def get_protection_status(self, PolicyId: str, MemberAccountId: str=None, StartTime: TimeStamp=None, EndTime: TimeStamp=None, NextToken: str=None, MaxResults: int=None) -> GetProtectionStatusResponse:
        r"""If you created a Shield Advanced policy, returns policy-level attack summary information in the event of a potential DDoS attack. Other policy types are currently unsupported.

        :param self:
        :param MaxResults:  Specifies the number of objects that you want Firewall Manager to return for this request. If you have more objects than the number that you specify for <code>MaxResults</code>, the response includes a <code>NextToken</code> value that you can use to get another batch of objects.<br/>NextToken:  If you specify a value for <code>MaxResults</code> and you have more objects than the number that you specify for <code>MaxResults</code>, Firewall Manager returns a <code>NextToken</code> value in the response, which you can use to retrieve another group of objects. For the second and subsequent <code>GetProtectionStatus</code> requests, specify the value of <code>NextToken</code> from the previous response to get information about another batch of objects.<br/>EndTime:  The end of the time period to query for the attacks. This is a <code>timestamp</code> type. The request syntax listing indicates a <code>number</code> type because the default used by Firewall Manager is Unix time in seconds. However, any valid <code>timestamp</code> format is allowed.<br/>StartTime:  The start of the time period to query for the attacks. This is a <code>timestamp</code> type. The request syntax listing indicates a <code>number</code> type because the default used by Firewall Manager is Unix time in seconds. However, any valid <code>timestamp</code> format is allowed.<br/>MemberAccountId:  The Amazon Web Services account that is in scope of the policy that you want to get the details for.<br/>PolicyId:  The ID of the policy for which you want to get the attack information.<br/>
        :return: NextToken:  If you have more objects than the number that you specified for <code>MaxResults</code> in the request, the response includes a <code>NextToken</code> value. To list more objects, submit another <code>GetProtectionStatus</code> request, and specify the <code>NextToken</code> value from the response in the <code>NextToken</code> value in the next request. Amazon Web Services SDKs provide auto-pagination that identify <code>NextToken</code> in a response and make subsequent request calls automatically on your behalf. However, this feature is not supported by <code>GetProtectionStatus</code>. You must submit subsequent requests with <code>NextToken</code> using your own processes. <br/>Data:  Details about the attack, including the following: <ul> <li> Attack type </li> <li> Account ID </li> <li> ARN of the resource attacked </li> <li> Start time of the attack </li> <li> End time of the attack (ongoing attacks will not have an end time) </li> </ul> The details are in JSON format. <br/>ServiceType:  The service type that is protected by the policy. Currently, this is always <code>SHIELD_ADVANCED</code>.<br/>AdminAccountId:  The ID of the Firewall Manager administrator account for this policy.<br/>        """
        pass

    def get_protocols_list(self, ListId: str, DefaultList: Boolean=None) -> GetProtocolsListResponse:
        r"""Returns information about the specified Firewall Manager protocols list.

        :param self:
        :param DefaultList:  Specifies whether the list to retrieve is a default list owned by Firewall Manager.<br/>ListId:  The ID of the Firewall Manager protocols list that you want the details for.<br/>
        :return: ProtocolsListArn:  The Amazon Resource Name (ARN) of the specified protocols list.<br/>ProtocolsList:  Information about the specified Firewall Manager protocols list.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreviousProtocolsList</i> A map of previous version numbers to their corresponding protocol arrays.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProtocolsList</i> An array of protocols in the Firewall Manager protocols list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdateTime</i> The time that the Firewall Manager protocols list was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreateTime</i> The time that the Firewall Manager protocols list was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ListUpdateToken</i> A unique identifier for each update to the list. When you update the list, the update token must match the token of the current version of the application list. You can retrieve the update token by getting the list. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ListName</i> The name of the Firewall Manager protocols list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ListId</i> The ID of the Firewall Manager protocols list.<br/>        """
        pass

    def get_violation_details(self, ResourceType: str, ResourceId: str, MemberAccount: str, PolicyId: str) -> GetViolationDetailsResponse:
        r"""Retrieves violations for a resource based on the specified Firewall Manager policy and Amazon Web Services account.

        :param self:
        :param ResourceType:  The resource type. This is in the format shown in the <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html">Amazon Web Services Resource Types Reference</a>. Supported resource types are: <code>AWS::EC2::Instance</code>, <code>AWS::EC2::NetworkInterface</code>, <code>AWS::EC2::SecurityGroup</code>, <code>AWS::NetworkFirewall::FirewallPolicy</code>, and <code>AWS::EC2::Subnet</code>. <br/>ResourceId:  The ID of the resource that has violations.<br/>MemberAccount:  The Amazon Web Services account ID that you want the details for.<br/>PolicyId:  The ID of the Firewall Manager policy that you want the details for. This currently only supports security group content audit policies.<br/>
        :return: ViolationDetail:  Violation detail for a resource.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceDescription</i> Brief description for the requested resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceTags</i> The <code>ResourceTag</code> objects associated with the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceViolations</i> List of violations for the requested resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceType</i> The resource type that the violation details were requested for.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceId</i> The resource ID that the violation details were requested for.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MemberAccount</i> The Amazon Web Services account that the violation details were requested for.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PolicyId</i> The ID of the Firewall Manager policy that the violation details were requested for.<br/>        """
        pass

    def list_apps_lists(self, MaxResults: int, DefaultLists: Boolean=None, NextToken: str=None) -> ListAppsListsResponse:
        r"""Returns an array of <code>AppsListDataSummary</code> objects.

        :param self:
        :param MaxResults:  The maximum number of objects that you want Firewall Manager to return for this request. If more objects are available, in the response, Firewall Manager provides a <code>NextToken</code> value that you can use in a subsequent call to get the next batch of objects. If you don't specify this, Firewall Manager returns all available objects.<br/>NextToken:  If you specify a value for <code>MaxResults</code> in your list request, and you have more objects than the maximum, Firewall Manager returns this token in the response. For all but the first request, you provide the token returned by the prior request in the request parameters, to retrieve the next batch of objects.<br/>DefaultLists:  Specifies whether the lists to retrieve are default lists owned by Firewall Manager.<br/>
        :return: NextToken:  If you specify a value for <code>MaxResults</code> in your list request, and you have more objects than the maximum, Firewall Manager returns this token in the response. You can use this token in subsequent requests to retrieve the next batch of objects.<br/>AppsLists:  An array of <code>AppsListDataSummary</code> objects.<br/>        """
        pass

    def list_compliance_status(self, PolicyId: str, NextToken: str=None, MaxResults: int=None) -> ListComplianceStatusResponse:
        r"""Returns an array of <code>PolicyComplianceStatus</code> objects. Use <code>PolicyComplianceStatus</code> to get a summary of which member accounts are protected by the specified policy. 

        :param self:
        :param MaxResults:  Specifies the number of <code>PolicyComplianceStatus</code> objects that you want Firewall Manager to return for this request. If you have more <code>PolicyComplianceStatus</code> objects than the number that you specify for <code>MaxResults</code>, the response includes a <code>NextToken</code> value that you can use to get another batch of <code>PolicyComplianceStatus</code> objects.<br/>NextToken:  If you specify a value for <code>MaxResults</code> and you have more <code>PolicyComplianceStatus</code> objects than the number that you specify for <code>MaxResults</code>, Firewall Manager returns a <code>NextToken</code> value in the response that allows you to list another group of <code>PolicyComplianceStatus</code> objects. For the second and subsequent <code>ListComplianceStatus</code> requests, specify the value of <code>NextToken</code> from the previous response to get information about another batch of <code>PolicyComplianceStatus</code> objects.<br/>PolicyId:  The ID of the Firewall Manager policy that you want the details for.<br/>
        :return: NextToken:  If you have more <code>PolicyComplianceStatus</code> objects than the number that you specified for <code>MaxResults</code> in the request, the response includes a <code>NextToken</code> value. To list more <code>PolicyComplianceStatus</code> objects, submit another <code>ListComplianceStatus</code> request, and specify the <code>NextToken</code> value from the response in the <code>NextToken</code> value in the next request.<br/>PolicyComplianceStatusList:  An array of <code>PolicyComplianceStatus</code> objects.<br/>        """
        pass

    def list_member_accounts(self, NextToken: str=None, MaxResults: int=None) -> ListMemberAccountsResponse:
        r"""Returns a <code>MemberAccounts</code> object that lists the member accounts in the administrator's Amazon Web Services organization. The <code>ListMemberAccounts</code> must be submitted by the account that is set as the Firewall Manager administrator.

        :param self:
        :param MaxResults:  Specifies the number of member account IDs that you want Firewall Manager to return for this request. If you have more IDs than the number that you specify for <code>MaxResults</code>, the response includes a <code>NextToken</code> value that you can use to get another batch of member account IDs.<br/>NextToken:  If you specify a value for <code>MaxResults</code> and you have more account IDs than the number that you specify for <code>MaxResults</code>, Firewall Manager returns a <code>NextToken</code> value in the response that allows you to list another group of IDs. For the second and subsequent <code>ListMemberAccountsRequest</code> requests, specify the value of <code>NextToken</code> from the previous response to get information about another batch of member account IDs.<br/>
        :return: NextToken:  If you have more member account IDs than the number that you specified for <code>MaxResults</code> in the request, the response includes a <code>NextToken</code> value. To list more IDs, submit another <code>ListMemberAccounts</code> request, and specify the <code>NextToken</code> value from the response in the <code>NextToken</code> value in the next request.<br/>MemberAccounts:  An array of account IDs.<br/>        """
        pass

    def list_policies(self, NextToken: str=None, MaxResults: int=None) -> ListPoliciesResponse:
        r"""Returns an array of <code>PolicySummary</code> objects.

        :param self:
        :param MaxResults:  Specifies the number of <code>PolicySummary</code> objects that you want Firewall Manager to return for this request. If you have more <code>PolicySummary</code> objects than the number that you specify for <code>MaxResults</code>, the response includes a <code>NextToken</code> value that you can use to get another batch of <code>PolicySummary</code> objects.<br/>NextToken:  If you specify a value for <code>MaxResults</code> and you have more <code>PolicySummary</code> objects than the number that you specify for <code>MaxResults</code>, Firewall Manager returns a <code>NextToken</code> value in the response that allows you to list another group of <code>PolicySummary</code> objects. For the second and subsequent <code>ListPolicies</code> requests, specify the value of <code>NextToken</code> from the previous response to get information about another batch of <code>PolicySummary</code> objects.<br/>
        :return: NextToken:  If you have more <code>PolicySummary</code> objects than the number that you specified for <code>MaxResults</code> in the request, the response includes a <code>NextToken</code> value. To list more <code>PolicySummary</code> objects, submit another <code>ListPolicies</code> request, and specify the <code>NextToken</code> value from the response in the <code>NextToken</code> value in the next request.<br/>PolicyList:  An array of <code>PolicySummary</code> objects.<br/>        """
        pass

    def list_protocols_lists(self, MaxResults: int, DefaultLists: Boolean=None, NextToken: str=None) -> ListProtocolsListsResponse:
        r"""Returns an array of <code>ProtocolsListDataSummary</code> objects.

        :param self:
        :param MaxResults:  The maximum number of objects that you want Firewall Manager to return for this request. If more objects are available, in the response, Firewall Manager provides a <code>NextToken</code> value that you can use in a subsequent call to get the next batch of objects. If you don't specify this, Firewall Manager returns all available objects.<br/>NextToken:  If you specify a value for <code>MaxResults</code> in your list request, and you have more objects than the maximum, Firewall Manager returns this token in the response. For all but the first request, you provide the token returned by the prior request in the request parameters, to retrieve the next batch of objects.<br/>DefaultLists:  Specifies whether the lists to retrieve are default lists owned by Firewall Manager.<br/>
        :return: NextToken:  If you specify a value for <code>MaxResults</code> in your list request, and you have more objects than the maximum, Firewall Manager returns this token in the response. You can use this token in subsequent requests to retrieve the next batch of objects.<br/>ProtocolsLists:  An array of <code>ProtocolsListDataSummary</code> objects.<br/>        """
        pass

    def list_tags_for_resource(self, ResourceArn: str) -> ListTagsForResourceResponse:
        r"""Retrieves the list of tags for the specified Amazon Web Services resource. 

        :param self:
        :param ResourceArn:  The Amazon Resource Name (ARN) of the resource to return tags for. The Firewall Manager resources that support tagging are policies, applications lists, and protocols lists. <br/>
        :return: TagList:  The tags associated with the resource.<br/>        """
        pass

    def put_apps_list(self, AppsList: AppsListData, TagList: List[Tag]=None) -> PutAppsListResponse:
        r"""Creates an Firewall Manager applications list.

        :param self:
        :param TagList:  The tags associated with the resource.<br/>AppsList:  The details of the Firewall Manager applications list to be created.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreviousAppsList</i> A map of previous version numbers to their corresponding <code>App</code> object arrays.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AppsList</i> An array of applications in the Firewall Manager applications list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdateTime</i> The time that the Firewall Manager applications list was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreateTime</i> The time that the Firewall Manager applications list was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ListUpdateToken</i> A unique identifier for each update to the list. When you update the list, the update token must match the token of the current version of the application list. You can retrieve the update token by getting the list. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ListName</i> The name of the Firewall Manager applications list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ListId</i> The ID of the Firewall Manager applications list.<br/>
        :return: AppsListArn:  The Amazon Resource Name (ARN) of the applications list.<br/>AppsList:  The details of the Firewall Manager applications list.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreviousAppsList</i> A map of previous version numbers to their corresponding <code>App</code> object arrays.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AppsList</i> An array of applications in the Firewall Manager applications list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdateTime</i> The time that the Firewall Manager applications list was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreateTime</i> The time that the Firewall Manager applications list was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ListUpdateToken</i> A unique identifier for each update to the list. When you update the list, the update token must match the token of the current version of the application list. You can retrieve the update token by getting the list. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ListName</i> The name of the Firewall Manager applications list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ListId</i> The ID of the Firewall Manager applications list.<br/>        """
        pass

    def put_notification_channel(self, SnsRoleName: str, SnsTopicArn: str):
        r"""Designates the IAM role and Amazon Simple Notification Service (SNS) topic that Firewall Manager uses to record SNS logs. To perform this action outside of the console, you must configure the SNS topic to allow the Firewall Manager role <code>AWSServiceRoleForFMS</code> to publish SNS logs. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/fms-api-permissions-ref.html">Firewall Manager required permissions for API actions</a> in the <i>Firewall Manager Developer Guide</i>.

        :param self:
        :param SnsRoleName:  The Amazon Resource Name (ARN) of the IAM role that allows Amazon SNS to record Firewall Manager activity. <br/>SnsTopicArn:  The Amazon Resource Name (ARN) of the SNS topic that collects notifications from Firewall Manager.<br/>
        :return:         """
        pass

    def put_policy(self, Policy: Policy, TagList: List[Tag]=None) -> PutPolicyResponse:
        r"""Creates an Firewall Manager policy. Firewall Manager provides the following types of policies:  <ul> <li> An WAF policy (type WAFV2), which defines rule groups to run first in the corresponding WAF web ACL and rule groups to run last in the web ACL. </li> <li> An WAF Classic policy (type WAF), which defines a rule group.  </li> <li> A Shield Advanced policy, which applies Shield Advanced protection to specified accounts and resources. </li> <li> A security group policy, which manages VPC security groups across your Amazon Web Services organization.  </li> <li> An Network Firewall policy, which provides firewall rules to filter network traffic in specified Amazon VPCs. </li> <li> A DNS Firewall policy, which provides Route 53 Resolver DNS Firewall rules to filter DNS queries for specified VPCs. </li> </ul> Each policy is specific to one of the types. If you want to enforce more than one policy type across accounts, create multiple policies. You can create multiple policies for each type. You must be subscribed to Shield Advanced to create a Shield Advanced policy. For more information about subscribing to Shield Advanced, see <a href="https://docs.aws.amazon.com/waf/latest/DDOSAPIReference/API_CreateSubscription.html">CreateSubscription</a>.

        :param self:
        :param TagList:  The tags to add to the Amazon Web Services resource.<br/>Policy:  The details of the Firewall Manager policy to be created.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExcludeMap</i> Specifies the Amazon Web Services account IDs and Organizations organizational units (OUs) to exclude from the policy. Specifying an OU is the equivalent of specifying all accounts in the OU and in any of its child OUs, including any child OUs and accounts that are added at a later time. You can specify inclusions or exclusions, but not both. If you specify an <code>IncludeMap</code>, Firewall Manager applies the policy to all accounts specified by the <code>IncludeMap</code>, and does not evaluate any <code>ExcludeMap</code> specifications. If you do not specify an <code>IncludeMap</code>, then Firewall Manager applies the policy to all accounts except for those specified by the <code>ExcludeMap</code>. You can specify account IDs, OUs, or a combination:  <ul> <li> Specify account IDs by setting the key to <code>ACCOUNT</code>. For example, the following is a valid map: <code>{“ACCOUNT” : [“accountID1”, “accountID2”]}</code>. </li> <li> Specify OUs by setting the key to <code>ORG_UNIT</code>. For example, the following is a valid map: <code>{“ORG_UNIT” : [“ouid111”, “ouid112”]}</code>. </li> <li> Specify accounts and OUs together in a single map, separated with a comma. For example, the following is a valid map: <code>{“ACCOUNT” : [“accountID1”, “accountID2”], “ORG_UNIT” : [“ouid111”, “ouid112”]}</code>. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeMap</i> Specifies the Amazon Web Services account IDs and Organizations organizational units (OUs) to include in the policy. Specifying an OU is the equivalent of specifying all accounts in the OU and in any of its child OUs, including any child OUs and accounts that are added at a later time. You can specify inclusions or exclusions, but not both. If you specify an <code>IncludeMap</code>, Firewall Manager applies the policy to all accounts specified by the <code>IncludeMap</code>, and does not evaluate any <code>ExcludeMap</code> specifications. If you do not specify an <code>IncludeMap</code>, then Firewall Manager applies the policy to all accounts except for those specified by the <code>ExcludeMap</code>. You can specify account IDs, OUs, or a combination:  <ul> <li> Specify account IDs by setting the key to <code>ACCOUNT</code>. For example, the following is a valid map: <code>{“ACCOUNT” : [“accountID1”, “accountID2”]}</code>. </li> <li> Specify OUs by setting the key to <code>ORG_UNIT</code>. For example, the following is a valid map: <code>{“ORG_UNIT” : [“ouid111”, “ouid112”]}</code>. </li> <li> Specify accounts and OUs together in a single map, separated with a comma. For example, the following is a valid map: <code>{“ACCOUNT” : [“accountID1”, “accountID2”], “ORG_UNIT” : [“ouid111”, “ouid112”]}</code>. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RemediationEnabled</i> Indicates if the policy should be automatically applied to new resources.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExcludeResourceTags</i> If set to <code>True</code>, resources with the tags that are specified in the <code>ResourceTag</code> array are not in scope of the policy. If set to <code>False</code>, and the <code>ResourceTag</code> array is not null, only resources with the specified tags are in scope of the policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceTags</i> An array of <code>ResourceTag</code> objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceTypeList</i> An array of <code>ResourceType</code> objects. Use this only to specify multiple resource types. To specify a single resource type, use <code>ResourceType</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceType</i> The type of resource protected by or in scope of the policy. This is in the format shown in the <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html">Amazon Web Services Resource Types Reference</a>. To apply this policy to multiple resource types, specify a resource type of <code>ResourceTypeList</code> and then specify the resource types in a <code>ResourceTypeList</code>. For WAF and Shield Advanced, example resource types include <code>AWS::ElasticLoadBalancingV2::LoadBalancer</code> and <code>AWS::CloudFront::Distribution</code>. For a security group common policy, valid values are <code>AWS::EC2::NetworkInterface</code> and <code>AWS::EC2::Instance</code>. For a security group content audit policy, valid values are <code>AWS::EC2::SecurityGroup</code>, <code>AWS::EC2::NetworkInterface</code>, and <code>AWS::EC2::Instance</code>. For a security group usage audit policy, the value is <code>AWS::EC2::SecurityGroup</code>. For an Network Firewall policy or DNS Firewall policy, the value is <code>AWS::EC2::VPC</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityServicePolicyData</i> Details about the security service that is being used to protect the resources.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SecurityServicePolicyData</b>: Details about the security service that is being used to protect the resources.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PolicyUpdateToken</i> A unique identifier for each update to the policy. When issuing a <code>PutPolicy</code> request, the <code>PolicyUpdateToken</code> in the request must match the <code>PolicyUpdateToken</code> of the current policy version. To get the <code>PolicyUpdateToken</code> of the current policy version, use a <code>GetPolicy</code> request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PolicyName</i> The name of the Firewall Manager policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PolicyId</i> The ID of the Firewall Manager policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ManagedServiceData</i> Details about the service that are specific to the service type, in JSON format. For service type <code>SHIELD_ADVANCED</code>, this is an empty string. <ul> <li> Example: <code>DNS_FIREWALL</code>   <code>"{\"type\":\"DNS_FIREWALL\",\"preProcessRuleGroups\":[{\"ruleGroupId\":\"rslvr-frg-1\",\"priority\":10}],\"postProcessRuleGroups\":[{\"ruleGroupId\":\"rslvr-frg-2\",\"priority\":9911}]}"</code>  </li> <li> Example: <code>NETWORK_FIREWALL</code>   <code>"{\"type\":\"NETWORK_FIREWALL\",\"networkFirewallStatelessRuleGroupReferences\":[{\"resourceARN\":\"arn:aws:network-firewall:us-west-1:1234567891011:stateless-rulegroup/rulegroup2\",\"priority\":10}],\"networkFirewallStatelessDefaultActions\":[\"aws:pass\",\"custom1\"],\"networkFirewallStatelessFragmentDefaultActions\":[\"custom2\",\"aws:pass\"],\"networkFirewallStatelessCustomActions\":[{\"actionName\":\"custom1\",\"actionDefinition\":{\"publishMetricAction\":{\"dimensions\":[{\"value\":\"dimension1\"}]}}},{\"actionName\":\"custom2\",\"actionDefinition\":{\"publishMetricAction\":{\"dimensions\":[{\"value\":\"dimension2\"}]}}}],\"networkFirewallStatefulRuleGroupReferences\":[{\"resourceARN\":\"arn:aws:network-firewall:us-west-1:1234567891011:stateful-rulegroup/rulegroup1\"}],\"networkFirewallOrchestrationConfig\":{\"singleFirewallEndpointPerVPC\":true,\"allowedIPV4CidrList\":[\"10.24.34.0/28\"]} }"</code>  </li> <li> Example: <code>WAFV2</code>   <code>"{\"type\":\"WAFV2\",\"preProcessRuleGroups\":[{\"ruleGroupArn\":null,\"overrideAction\":{\"type\":\"NONE\"},\"managedRuleGroupIdentifier\":{\"version\":null,\"vendorName\":\"AWS\",\"managedRuleGroupName\":\"AWSManagedRulesAmazonIpReputationList\"},\"ruleGroupType\":\"ManagedRuleGroup\",\"excludeRules\":[]}],\"postProcessRuleGroups\":[],\"defaultAction\":{\"type\":\"ALLOW\"},\"overrideCustomerWebACLAssociation\":false,\"loggingConfiguration\":{\"logDestinationConfigs\":[\"arn:aws:firehose:us-west-2:12345678912:deliverystream/aws-waf-logs-fms-admin-destination\"],\"redactedFields\":[{\"redactedFieldType\":\"SingleHeader\",\"redactedFieldValue\":\"Cookies\"},{\"redactedFieldType\":\"Method\"}]}}"</code>  In the <code>loggingConfiguration</code>, you can specify one <code>logDestinationConfigs</code>, you can optionally provide up to 20 <code>redactedFields</code>, and the <code>RedactedFieldType</code> must be one of <code>URI</code>, <code>QUERY_STRING</code>, <code>HEADER</code>, or <code>METHOD</code>. </li> <li> Example: <code>WAF Classic</code>   <code>"{\"type\": \"WAF\", \"ruleGroups\": [{\"id\":\"12345678-1bcd-9012-efga-0987654321ab\", \"overrideAction\" : {\"type\": \"COUNT\"}}], \"defaultAction\": {\"type\": \"BLOCK\"}}"</code>  </li> <li> Example: <code>SECURITY_GROUPS_COMMON</code>   <code>"{\"type\":\"SECURITY_GROUPS_COMMON\",\"revertManualSecurityGroupChanges\":false,\"exclusiveResourceSecurityGroupManagement\":false, \"applyToAllEC2InstanceENIs\":false,\"securityGroups\":[{\"id\":\" sg-000e55995d61a06bd\"}]}"</code>  </li> <li> Example: Shared VPCs. Apply the preceding policy to resources in shared VPCs as well as to those in VPCs that the account owns   <code>"{\"type\":\"SECURITY_GROUPS_COMMON\",\"revertManualSecurityGroupChanges\":false,\"exclusiveResourceSecurityGroupManagement\":false, \"applyToAllEC2InstanceENIs\":false,\"includeSharedVPC\":true,\"securityGroups\":[{\"id\":\" sg-000e55995d61a06bd\"}]}"</code>  </li> <li> Example: <code>SECURITY_GROUPS_CONTENT_AUDIT</code>   <code>"{\"type\":\"SECURITY_GROUPS_CONTENT_AUDIT\",\"securityGroups\":[{\"id\":\"sg-000e55995d61a06bd\"}],\"securityGroupAction\":{\"type\":\"ALLOW\"}}"</code>  The security group action for content audit can be <code>ALLOW</code> or <code>DENY</code>. For <code>ALLOW</code>, all in-scope security group rules must be within the allowed range of the policy's security group rules. For <code>DENY</code>, all in-scope security group rules must not contain a value or a range that matches a rule value or range in the policy security group. </li> <li> Example: <code>SECURITY_GROUPS_USAGE_AUDIT</code>   <code>"{\"type\":\"SECURITY_GROUPS_USAGE_AUDIT\",\"deleteUnusedSecurityGroups\":true,\"coalesceRedundantSecurityGroups\":true}"</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The service that the policy is using to protect the resources. This specifies the type of policy that is created, either an WAF policy, a Shield Advanced policy, or a security group policy. For security group policies, Firewall Manager supports one security group for each common policy and for each content audit policy. This is an adjustable limit that you can increase by contacting Amazon Web Services Support.<br/>
        :return: PolicyArn:  The Amazon Resource Name (ARN) of the policy.<br/>Policy:  The details of the Firewall Manager policy.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExcludeMap</i> Specifies the Amazon Web Services account IDs and Organizations organizational units (OUs) to exclude from the policy. Specifying an OU is the equivalent of specifying all accounts in the OU and in any of its child OUs, including any child OUs and accounts that are added at a later time. You can specify inclusions or exclusions, but not both. If you specify an <code>IncludeMap</code>, Firewall Manager applies the policy to all accounts specified by the <code>IncludeMap</code>, and does not evaluate any <code>ExcludeMap</code> specifications. If you do not specify an <code>IncludeMap</code>, then Firewall Manager applies the policy to all accounts except for those specified by the <code>ExcludeMap</code>. You can specify account IDs, OUs, or a combination:  <ul> <li> Specify account IDs by setting the key to <code>ACCOUNT</code>. For example, the following is a valid map: <code>{“ACCOUNT” : [“accountID1”, “accountID2”]}</code>. </li> <li> Specify OUs by setting the key to <code>ORG_UNIT</code>. For example, the following is a valid map: <code>{“ORG_UNIT” : [“ouid111”, “ouid112”]}</code>. </li> <li> Specify accounts and OUs together in a single map, separated with a comma. For example, the following is a valid map: <code>{“ACCOUNT” : [“accountID1”, “accountID2”], “ORG_UNIT” : [“ouid111”, “ouid112”]}</code>. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeMap</i> Specifies the Amazon Web Services account IDs and Organizations organizational units (OUs) to include in the policy. Specifying an OU is the equivalent of specifying all accounts in the OU and in any of its child OUs, including any child OUs and accounts that are added at a later time. You can specify inclusions or exclusions, but not both. If you specify an <code>IncludeMap</code>, Firewall Manager applies the policy to all accounts specified by the <code>IncludeMap</code>, and does not evaluate any <code>ExcludeMap</code> specifications. If you do not specify an <code>IncludeMap</code>, then Firewall Manager applies the policy to all accounts except for those specified by the <code>ExcludeMap</code>. You can specify account IDs, OUs, or a combination:  <ul> <li> Specify account IDs by setting the key to <code>ACCOUNT</code>. For example, the following is a valid map: <code>{“ACCOUNT” : [“accountID1”, “accountID2”]}</code>. </li> <li> Specify OUs by setting the key to <code>ORG_UNIT</code>. For example, the following is a valid map: <code>{“ORG_UNIT” : [“ouid111”, “ouid112”]}</code>. </li> <li> Specify accounts and OUs together in a single map, separated with a comma. For example, the following is a valid map: <code>{“ACCOUNT” : [“accountID1”, “accountID2”], “ORG_UNIT” : [“ouid111”, “ouid112”]}</code>. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RemediationEnabled</i> Indicates if the policy should be automatically applied to new resources.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExcludeResourceTags</i> If set to <code>True</code>, resources with the tags that are specified in the <code>ResourceTag</code> array are not in scope of the policy. If set to <code>False</code>, and the <code>ResourceTag</code> array is not null, only resources with the specified tags are in scope of the policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceTags</i> An array of <code>ResourceTag</code> objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceTypeList</i> An array of <code>ResourceType</code> objects. Use this only to specify multiple resource types. To specify a single resource type, use <code>ResourceType</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceType</i> The type of resource protected by or in scope of the policy. This is in the format shown in the <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html">Amazon Web Services Resource Types Reference</a>. To apply this policy to multiple resource types, specify a resource type of <code>ResourceTypeList</code> and then specify the resource types in a <code>ResourceTypeList</code>. For WAF and Shield Advanced, example resource types include <code>AWS::ElasticLoadBalancingV2::LoadBalancer</code> and <code>AWS::CloudFront::Distribution</code>. For a security group common policy, valid values are <code>AWS::EC2::NetworkInterface</code> and <code>AWS::EC2::Instance</code>. For a security group content audit policy, valid values are <code>AWS::EC2::SecurityGroup</code>, <code>AWS::EC2::NetworkInterface</code>, and <code>AWS::EC2::Instance</code>. For a security group usage audit policy, the value is <code>AWS::EC2::SecurityGroup</code>. For an Network Firewall policy or DNS Firewall policy, the value is <code>AWS::EC2::VPC</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityServicePolicyData</i> Details about the security service that is being used to protect the resources.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SecurityServicePolicyData</b>: Details about the security service that is being used to protect the resources.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PolicyUpdateToken</i> A unique identifier for each update to the policy. When issuing a <code>PutPolicy</code> request, the <code>PolicyUpdateToken</code> in the request must match the <code>PolicyUpdateToken</code> of the current policy version. To get the <code>PolicyUpdateToken</code> of the current policy version, use a <code>GetPolicy</code> request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PolicyName</i> The name of the Firewall Manager policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PolicyId</i> The ID of the Firewall Manager policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ManagedServiceData</i> Details about the service that are specific to the service type, in JSON format. For service type <code>SHIELD_ADVANCED</code>, this is an empty string. <ul> <li> Example: <code>DNS_FIREWALL</code>   <code>"{\"type\":\"DNS_FIREWALL\",\"preProcessRuleGroups\":[{\"ruleGroupId\":\"rslvr-frg-1\",\"priority\":10}],\"postProcessRuleGroups\":[{\"ruleGroupId\":\"rslvr-frg-2\",\"priority\":9911}]}"</code>  </li> <li> Example: <code>NETWORK_FIREWALL</code>   <code>"{\"type\":\"NETWORK_FIREWALL\",\"networkFirewallStatelessRuleGroupReferences\":[{\"resourceARN\":\"arn:aws:network-firewall:us-west-1:1234567891011:stateless-rulegroup/rulegroup2\",\"priority\":10}],\"networkFirewallStatelessDefaultActions\":[\"aws:pass\",\"custom1\"],\"networkFirewallStatelessFragmentDefaultActions\":[\"custom2\",\"aws:pass\"],\"networkFirewallStatelessCustomActions\":[{\"actionName\":\"custom1\",\"actionDefinition\":{\"publishMetricAction\":{\"dimensions\":[{\"value\":\"dimension1\"}]}}},{\"actionName\":\"custom2\",\"actionDefinition\":{\"publishMetricAction\":{\"dimensions\":[{\"value\":\"dimension2\"}]}}}],\"networkFirewallStatefulRuleGroupReferences\":[{\"resourceARN\":\"arn:aws:network-firewall:us-west-1:1234567891011:stateful-rulegroup/rulegroup1\"}],\"networkFirewallOrchestrationConfig\":{\"singleFirewallEndpointPerVPC\":true,\"allowedIPV4CidrList\":[\"10.24.34.0/28\"]} }"</code>  </li> <li> Example: <code>WAFV2</code>   <code>"{\"type\":\"WAFV2\",\"preProcessRuleGroups\":[{\"ruleGroupArn\":null,\"overrideAction\":{\"type\":\"NONE\"},\"managedRuleGroupIdentifier\":{\"version\":null,\"vendorName\":\"AWS\",\"managedRuleGroupName\":\"AWSManagedRulesAmazonIpReputationList\"},\"ruleGroupType\":\"ManagedRuleGroup\",\"excludeRules\":[]}],\"postProcessRuleGroups\":[],\"defaultAction\":{\"type\":\"ALLOW\"},\"overrideCustomerWebACLAssociation\":false,\"loggingConfiguration\":{\"logDestinationConfigs\":[\"arn:aws:firehose:us-west-2:12345678912:deliverystream/aws-waf-logs-fms-admin-destination\"],\"redactedFields\":[{\"redactedFieldType\":\"SingleHeader\",\"redactedFieldValue\":\"Cookies\"},{\"redactedFieldType\":\"Method\"}]}}"</code>  In the <code>loggingConfiguration</code>, you can specify one <code>logDestinationConfigs</code>, you can optionally provide up to 20 <code>redactedFields</code>, and the <code>RedactedFieldType</code> must be one of <code>URI</code>, <code>QUERY_STRING</code>, <code>HEADER</code>, or <code>METHOD</code>. </li> <li> Example: <code>WAF Classic</code>   <code>"{\"type\": \"WAF\", \"ruleGroups\": [{\"id\":\"12345678-1bcd-9012-efga-0987654321ab\", \"overrideAction\" : {\"type\": \"COUNT\"}}], \"defaultAction\": {\"type\": \"BLOCK\"}}"</code>  </li> <li> Example: <code>SECURITY_GROUPS_COMMON</code>   <code>"{\"type\":\"SECURITY_GROUPS_COMMON\",\"revertManualSecurityGroupChanges\":false,\"exclusiveResourceSecurityGroupManagement\":false, \"applyToAllEC2InstanceENIs\":false,\"securityGroups\":[{\"id\":\" sg-000e55995d61a06bd\"}]}"</code>  </li> <li> Example: Shared VPCs. Apply the preceding policy to resources in shared VPCs as well as to those in VPCs that the account owns   <code>"{\"type\":\"SECURITY_GROUPS_COMMON\",\"revertManualSecurityGroupChanges\":false,\"exclusiveResourceSecurityGroupManagement\":false, \"applyToAllEC2InstanceENIs\":false,\"includeSharedVPC\":true,\"securityGroups\":[{\"id\":\" sg-000e55995d61a06bd\"}]}"</code>  </li> <li> Example: <code>SECURITY_GROUPS_CONTENT_AUDIT</code>   <code>"{\"type\":\"SECURITY_GROUPS_CONTENT_AUDIT\",\"securityGroups\":[{\"id\":\"sg-000e55995d61a06bd\"}],\"securityGroupAction\":{\"type\":\"ALLOW\"}}"</code>  The security group action for content audit can be <code>ALLOW</code> or <code>DENY</code>. For <code>ALLOW</code>, all in-scope security group rules must be within the allowed range of the policy's security group rules. For <code>DENY</code>, all in-scope security group rules must not contain a value or a range that matches a rule value or range in the policy security group. </li> <li> Example: <code>SECURITY_GROUPS_USAGE_AUDIT</code>   <code>"{\"type\":\"SECURITY_GROUPS_USAGE_AUDIT\",\"deleteUnusedSecurityGroups\":true,\"coalesceRedundantSecurityGroups\":true}"</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The service that the policy is using to protect the resources. This specifies the type of policy that is created, either an WAF policy, a Shield Advanced policy, or a security group policy. For security group policies, Firewall Manager supports one security group for each common policy and for each content audit policy. This is an adjustable limit that you can increase by contacting Amazon Web Services Support.<br/>        """
        pass

    def put_protocols_list(self, ProtocolsList: ProtocolsListData, TagList: List[Tag]=None) -> PutProtocolsListResponse:
        r"""Creates an Firewall Manager protocols list.

        :param self:
        :param TagList:  The tags associated with the resource.<br/>ProtocolsList:  The details of the Firewall Manager protocols list to be created.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreviousProtocolsList</i> A map of previous version numbers to their corresponding protocol arrays.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProtocolsList</i> An array of protocols in the Firewall Manager protocols list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdateTime</i> The time that the Firewall Manager protocols list was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreateTime</i> The time that the Firewall Manager protocols list was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ListUpdateToken</i> A unique identifier for each update to the list. When you update the list, the update token must match the token of the current version of the application list. You can retrieve the update token by getting the list. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ListName</i> The name of the Firewall Manager protocols list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ListId</i> The ID of the Firewall Manager protocols list.<br/>
        :return: ProtocolsListArn:  The Amazon Resource Name (ARN) of the protocols list.<br/>ProtocolsList:  The details of the Firewall Manager protocols list.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreviousProtocolsList</i> A map of previous version numbers to their corresponding protocol arrays.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProtocolsList</i> An array of protocols in the Firewall Manager protocols list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdateTime</i> The time that the Firewall Manager protocols list was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreateTime</i> The time that the Firewall Manager protocols list was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ListUpdateToken</i> A unique identifier for each update to the list. When you update the list, the update token must match the token of the current version of the application list. You can retrieve the update token by getting the list. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ListName</i> The name of the Firewall Manager protocols list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ListId</i> The ID of the Firewall Manager protocols list.<br/>        """
        pass

    def tag_resource(self, TagList: List[Tag], ResourceArn: str) -> TagResourceResponse:
        r"""Adds one or more tags to an Amazon Web Services resource.

        :param self:
        :param TagList:  The tags to add to the resource.<br/>ResourceArn:  The Amazon Resource Name (ARN) of the resource to return tags for. The Firewall Manager resources that support tagging are policies, applications lists, and protocols lists. <br/>
        :return:         """
        pass

    def untag_resource(self, TagKeys: List[TagKey], ResourceArn: str) -> UntagResourceResponse:
        r"""Removes one or more tags from an Amazon Web Services resource.

        :param self:
        :param TagKeys:  The keys of the tags to remove from the resource. <br/>ResourceArn:  The Amazon Resource Name (ARN) of the resource to return tags for. The Firewall Manager resources that support tagging are policies, applications lists, and protocols lists. <br/>
        :return:         """
        pass





class ForecastService(BaseClient):
    r"""Provides APIs for creating and managing Amazon Forecast resources."""


    class ListDatasetGroupsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_dataset_groups` for valid parameters"""
            pass
    class ListDatasetImportJobsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_dataset_import_jobs` for valid parameters"""
            pass
    class ListDatasetsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_datasets` for valid parameters"""
            pass
    class ListForecastExportJobsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_forecast_export_jobs` for valid parameters"""
            pass
    class ListForecastsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_forecasts` for valid parameters"""
            pass
    class ListPredictorsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_predictors` for valid parameters"""
            pass
    class ListPredictorBacktestExportJobsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_predictor_backtest_export_jobs` for valid parameters"""
            pass


    class CreateDatasetRequest(Mapping):
        pass
    
    class CreateDatasetResponse(Mapping):
        pass
    
    class Schema(Mapping):
        pass
    
    class EncryptionConfig(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class CreateDatasetGroupRequest(Mapping):
        pass
    
    class CreateDatasetGroupResponse(Mapping):
        pass
    
    class Arn(object):
        pass
    
    class CreateDatasetImportJobRequest(Mapping):
        pass
    
    class CreateDatasetImportJobResponse(Mapping):
        pass
    
    class DataSource(Mapping):
        pass
    
    class UseGeolocationForTimeZone(object):
        pass
    
    class CreateForecastRequest(Mapping):
        pass
    
    class CreateForecastResponse(Mapping):
        pass
    
    class ForecastType(object):
        pass
    
    class CreateForecastExportJobRequest(Mapping):
        pass
    
    class CreateForecastExportJobResponse(Mapping):
        pass
    
    class DataDestination(Mapping):
        pass
    
    class CreatePredictorRequest(Mapping):
        pass
    
    class CreatePredictorResponse(Mapping):
        pass
    
    class Boolean(object):
        pass
    
    class TrainingParameters(object):
        pass
    
    class EvaluationParameters(Mapping):
        pass
    
    class HyperParameterTuningJobConfig(Mapping):
        pass
    
    class InputDataConfig(Mapping):
        pass
    
    class FeaturizationConfig(Mapping):
        pass
    
    class CreatePredictorBacktestExportJobRequest(Mapping):
        pass
    
    class CreatePredictorBacktestExportJobResponse(Mapping):
        pass
    
    class DeleteDatasetRequest(Mapping):
        pass
    
    class DeleteDatasetGroupRequest(Mapping):
        pass
    
    class DeleteDatasetImportJobRequest(Mapping):
        pass
    
    class DeleteForecastRequest(Mapping):
        pass
    
    class DeleteForecastExportJobRequest(Mapping):
        pass
    
    class DeletePredictorRequest(Mapping):
        pass
    
    class DeletePredictorBacktestExportJobRequest(Mapping):
        pass
    
    class DeleteResourceTreeRequest(Mapping):
        pass
    
    class DescribeDatasetRequest(Mapping):
        pass
    
    class DescribeDatasetResponse(Mapping):
        pass
    
    class DescribeDatasetGroupRequest(Mapping):
        pass
    
    class DescribeDatasetGroupResponse(Mapping):
        pass
    
    class DescribeDatasetImportJobRequest(Mapping):
        pass
    
    class DescribeDatasetImportJobResponse(Mapping):
        pass
    
    class DescribeForecastRequest(Mapping):
        pass
    
    class DescribeForecastResponse(Mapping):
        pass
    
    class DescribeForecastExportJobRequest(Mapping):
        pass
    
    class DescribeForecastExportJobResponse(Mapping):
        pass
    
    class DescribePredictorRequest(Mapping):
        pass
    
    class DescribePredictorResponse(Mapping):
        pass
    
    class DescribePredictorBacktestExportJobRequest(Mapping):
        pass
    
    class DescribePredictorBacktestExportJobResponse(Mapping):
        pass
    
    class GetAccuracyMetricsRequest(Mapping):
        pass
    
    class GetAccuracyMetricsResponse(Mapping):
        pass
    
    class ListDatasetGroupsRequest(Mapping):
        pass
    
    class ListDatasetGroupsResponse(Mapping):
        pass
    
    class ListDatasetImportJobsRequest(Mapping):
        pass
    
    class ListDatasetImportJobsResponse(Mapping):
        pass
    
    class Filter(Mapping):
        pass
    
    class ListDatasetsRequest(Mapping):
        pass
    
    class ListDatasetsResponse(Mapping):
        pass
    
    class ListForecastExportJobsRequest(Mapping):
        pass
    
    class ListForecastExportJobsResponse(Mapping):
        pass
    
    class ListForecastsRequest(Mapping):
        pass
    
    class ListForecastsResponse(Mapping):
        pass
    
    class ListPredictorBacktestExportJobsRequest(Mapping):
        pass
    
    class ListPredictorBacktestExportJobsResponse(Mapping):
        pass
    
    class ListPredictorsRequest(Mapping):
        pass
    
    class ListPredictorsResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class StopResourceRequest(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateDatasetGroupRequest(Mapping):
        pass
    
    class UpdateDatasetGroupResponse(Mapping):
        pass
    
    def create_dataset(self, Schema: Schema, DatasetType: str, Domain: str, DatasetName: str, DataFrequency: str=None, EncryptionConfig: EncryptionConfig=None, Tags: List[Tag]=None) -> CreateDatasetResponse:
        r"""Creates an Amazon Forecast dataset. The information about the dataset that you provide helps Forecast understand how to consume the data for model training. This includes the following: <ul> <li>  <i> <code>DataFrequency</code> </i> - How frequently your historical time-series data is collected. </li> <li>  <i> <code>Domain</code> </i> and <i> <code>DatasetType</code> </i> - Each dataset has an associated dataset domain and a type within the domain. Amazon Forecast provides a list of predefined domains and types within each domain. For each unique dataset domain and type within the domain, Amazon Forecast requires your data to include a minimum set of predefined fields. </li> <li>  <i> <code>Schema</code> </i> - A schema specifies the fields in the dataset, including the field name and data type. </li> </ul> After creating a dataset, you import your training data into it and add the dataset to a dataset group. You use the dataset group to create a predictor. For more information, see <a>howitworks-datasets-groups</a>. To get a list of all your datasets, use the <a>ListDatasets</a> operation. For example Forecast datasets, see the <a href="https://github.com/aws-samples/amazon-forecast-samples">Amazon Forecast Sample GitHub repository</a>. <note> The <code>Status</code> of a dataset must be <code>ACTIVE</code> before you can import training data. Use the <a>DescribeDataset</a> operation to get the status. </note>

        :param self:
        :param Tags:  The optional metadata that you apply to the dataset to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define. The following basic restrictions apply to tags: <ul> <li> Maximum number of tags per resource - 50. </li> <li> For each resource, each tag key must be unique, and each tag key can have only one value. </li> <li> Maximum key length - 128 Unicode characters in UTF-8. </li> <li> Maximum value length - 256 Unicode characters in UTF-8. </li> <li> If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @. </li> <li> Tag keys and values are case sensitive. </li> <li> Do not use <code>aws:</code>, <code>AWS:</code>, or any upper or lowercase combination of such as a prefix for keys as it is reserved for AWS use. You cannot edit or delete tag keys with this prefix. Values can have this prefix. If a tag value has <code>aws</code> as its prefix but the key does not, then Forecast considers it to be a user tag and will count against the limit of 50 tags. Tags with only the key prefix of <code>aws</code> do not count against your tags per resource limit. </li> </ul><br/>EncryptionConfig:  An AWS Key Management Service (KMS) key and the AWS Identity and Access Management (IAM) role that Amazon Forecast can assume to access the key.:<br/>Schema:  The schema for the dataset. The schema attributes and their order must match the fields in your data. The dataset <code>Domain</code> and <code>DatasetType</code> that you choose determine the minimum required fields in your training data. For information about the required fields for a specific dataset domain and type, see <a>howitworks-domains-ds-types</a>.:<br/>DataFrequency:  The frequency of data collection. This parameter is required for RELATED_TIME_SERIES datasets. Valid intervals are Y (Year), M (Month), W (Week), D (Day), H (Hour), 30min (30 minutes), 15min (15 minutes), 10min (10 minutes), 5min (5 minutes), and 1min (1 minute). For example, "D" indicates every day and "15min" indicates every 15 minutes.<br/>DatasetType:  The dataset type. Valid values depend on the chosen <code>Domain</code>.<br/>Domain:  The domain associated with the dataset. When you add a dataset to a dataset group, this value and the value specified for the <code>Domain</code> parameter of the <a>CreateDatasetGroup</a> operation must match. The <code>Domain</code> and <code>DatasetType</code> that you choose determine the fields that must be present in the training data that you import to the dataset. For example, if you choose the <code>RETAIL</code> domain and <code>TARGET_TIME_SERIES</code> as the <code>DatasetType</code>, Amazon Forecast requires <code>item_id</code>, <code>timestamp</code>, and <code>demand</code> fields to be present in your data. For more information, see <a>howitworks-datasets-groups</a>.<br/>DatasetName:  A name for the dataset.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Attributes</i> An array of attributes specifying the name and type of each field in a dataset.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KMSKeyArn</i> The Amazon Resource Name (ARN) of the KMS key.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The ARN of the IAM role that Amazon Forecast can assume to access the AWS KMS key. Passing a role across AWS accounts is not allowed. If you pass a role that isn't in your account, you get an <code>InvalidInputException</code> error.<br/>
        :return: DatasetArn:  The Amazon Resource Name (ARN) of the dataset.<br/>        """
        pass

    def create_dataset_group(self, Domain: str, DatasetGroupName: str, DatasetArns: List[Arn]=None, Tags: List[Tag]=None) -> CreateDatasetGroupResponse:
        r"""Creates a dataset group, which holds a collection of related datasets. You can add datasets to the dataset group when you create the dataset group, or later by using the <a>UpdateDatasetGroup</a> operation. After creating a dataset group and adding datasets, you use the dataset group when you create a predictor. For more information, see <a>howitworks-datasets-groups</a>. To get a list of all your datasets groups, use the <a>ListDatasetGroups</a> operation. <note> The <code>Status</code> of a dataset group must be <code>ACTIVE</code> before you can use the dataset group to create a predictor. To get the status, use the <a>DescribeDatasetGroup</a> operation. </note>

        :param self:
        :param Tags:  The optional metadata that you apply to the dataset group to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define. The following basic restrictions apply to tags: <ul> <li> Maximum number of tags per resource - 50. </li> <li> For each resource, each tag key must be unique, and each tag key can have only one value. </li> <li> Maximum key length - 128 Unicode characters in UTF-8. </li> <li> Maximum value length - 256 Unicode characters in UTF-8. </li> <li> If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @. </li> <li> Tag keys and values are case sensitive. </li> <li> Do not use <code>aws:</code>, <code>AWS:</code>, or any upper or lowercase combination of such as a prefix for keys as it is reserved for AWS use. You cannot edit or delete tag keys with this prefix. Values can have this prefix. If a tag value has <code>aws</code> as its prefix but the key does not, then Forecast considers it to be a user tag and will count against the limit of 50 tags. Tags with only the key prefix of <code>aws</code> do not count against your tags per resource limit. </li> </ul><br/>DatasetArns:  An array of Amazon Resource Names (ARNs) of the datasets that you want to include in the dataset group.<br/>Domain:  The domain associated with the dataset group. When you add a dataset to a dataset group, this value and the value specified for the <code>Domain</code> parameter of the <a>CreateDataset</a> operation must match. The <code>Domain</code> and <code>DatasetType</code> that you choose determine the fields that must be present in training data that you import to a dataset. For example, if you choose the <code>RETAIL</code> domain and <code>TARGET_TIME_SERIES</code> as the <code>DatasetType</code>, Amazon Forecast requires that <code>item_id</code>, <code>timestamp</code>, and <code>demand</code> fields are present in your data. For more information, see <a>howitworks-datasets-groups</a>.<br/>DatasetGroupName:  A name for the dataset group.<br/>
        :return: DatasetGroupArn:  The Amazon Resource Name (ARN) of the dataset group.<br/>        """
        pass

    def create_dataset_import_job(self, DataSource: DataSource, DatasetArn: str, DatasetImportJobName: str, TimestampFormat: str=None, TimeZone: str=None, UseGeolocationForTimeZone: UseGeolocationForTimeZone=None, GeolocationFormat: str=None, Tags: List[Tag]=None) -> CreateDatasetImportJobResponse:
        r"""Imports your training data to an Amazon Forecast dataset. You provide the location of your training data in an Amazon Simple Storage Service (Amazon S3) bucket and the Amazon Resource Name (ARN) of the dataset that you want to import the data to. You must specify a <a>DataSource</a> object that includes an AWS Identity and Access Management (IAM) role that Amazon Forecast can assume to access the data, as Amazon Forecast makes a copy of your data and processes it in an internal AWS system. For more information, see <a>aws-forecast-iam-roles</a>. The training data must be in CSV format. The delimiter must be a comma (,). You can specify the path to a specific CSV file, the S3 bucket, or to a folder in the S3 bucket. For the latter two cases, Amazon Forecast imports all files up to the limit of 10,000 files. Because dataset imports are not aggregated, your most recent dataset import is the one that is used when training a predictor or generating a forecast. Make sure that your most recent dataset import contains all of the data you want to model off of, and not just the new data collected since the previous import. To get a list of all your dataset import jobs, filtered by specified criteria, use the <a>ListDatasetImportJobs</a> operation.

        :param self:
        :param Tags:  The optional metadata that you apply to the dataset import job to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define. The following basic restrictions apply to tags: <ul> <li> Maximum number of tags per resource - 50. </li> <li> For each resource, each tag key must be unique, and each tag key can have only one value. </li> <li> Maximum key length - 128 Unicode characters in UTF-8. </li> <li> Maximum value length - 256 Unicode characters in UTF-8. </li> <li> If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @. </li> <li> Tag keys and values are case sensitive. </li> <li> Do not use <code>aws:</code>, <code>AWS:</code>, or any upper or lowercase combination of such as a prefix for keys as it is reserved for AWS use. You cannot edit or delete tag keys with this prefix. Values can have this prefix. If a tag value has <code>aws</code> as its prefix but the key does not, then Forecast considers it to be a user tag and will count against the limit of 50 tags. Tags with only the key prefix of <code>aws</code> do not count against your tags per resource limit. </li> </ul><br/>GeolocationFormat:  The format of the geolocation attribute. The geolocation attribute can be formatted in one of two ways: <ul> <li>  <code>LAT_LONG</code> - the latitude and longitude in decimal format (Example: 47.61_-122.33). </li> <li>  <code>CC_POSTALCODE</code> (US Only) - the country code (US), followed by the 5-digit ZIP code (Example: US_98121). </li> </ul><br/>UseGeolocationForTimeZone:  Automatically derive time zone information from the geolocation attribute. This option is ideal for datasets that contain timestamps in multiple time zones and those timestamps are expressed in local time.<br/>TimeZone:  A single time zone for every item in your dataset. This option is ideal for datasets with all timestamps within a single time zone, or if all timestamps are normalized to a single time zone.  Refer to the <a href="http://joda-time.sourceforge.net/timezones.html">Joda-Time API</a> for a complete list of valid time zone names.<br/>TimestampFormat:  The format of timestamps in the dataset. The format that you specify depends on the <code>DataFrequency</code> specified when the dataset was created. The following formats are supported <ul> <li> "yyyy-MM-dd" For the following data frequencies: Y, M, W, and D </li> <li> "yyyy-MM-dd HH:mm:ss" For the following data frequencies: H, 30min, 15min, and 1min; and optionally, for: Y, M, W, and D </li> </ul> If the format isn't specified, Amazon Forecast expects the format to be "yyyy-MM-dd HH:mm:ss".<br/>DataSource:  The location of the training data to import and an AWS Identity and Access Management (IAM) role that Amazon Forecast can assume to access the data. The training data must be stored in an Amazon S3 bucket. If encryption is used, <code>DataSource</code> must include an AWS Key Management Service (KMS) key and the IAM role must allow Amazon Forecast permission to access the key. The KMS key and IAM role must match those specified in the <code>EncryptionConfig</code> parameter of the <a>CreateDataset</a> operation.:<br/>DatasetArn:  The Amazon Resource Name (ARN) of the Amazon Forecast dataset that you want to import data to.<br/>DatasetImportJobName:  The name for the dataset import job. We recommend including the current timestamp in the name, for example, <code>20190721DatasetImport</code>. This can help you avoid getting a <code>ResourceAlreadyExistsException</code> exception.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Config</i> The path to the training data stored in an Amazon Simple Storage Service (Amazon S3) bucket along with the credentials to access the data.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3Config</b>: The path to the training data stored in an Amazon Simple Storage Service (Amazon S3) bucket along with the credentials to access the data.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KMSKeyArn</i> The Amazon Resource Name (ARN) of an AWS Key Management Service (KMS) key.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The ARN of the AWS Identity and Access Management (IAM) role that Amazon Forecast can assume to access the Amazon S3 bucket or files. If you provide a value for the <code>KMSKeyArn</code> key, the role must allow access to the key. Passing a role across AWS accounts is not allowed. If you pass a role that isn't in your account, you get an <code>InvalidInputException</code> error.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Path</i> The path to an Amazon Simple Storage Service (Amazon S3) bucket or file(s) in an Amazon S3 bucket.<br/>
        :return: DatasetImportJobArn:  The Amazon Resource Name (ARN) of the dataset import job.<br/>        """
        pass

    def create_forecast(self, PredictorArn: str, ForecastName: str, ForecastTypes: List[ForecastType]=None, Tags: List[Tag]=None) -> CreateForecastResponse:
        r"""Creates a forecast for each item in the <code>TARGET_TIME_SERIES</code> dataset that was used to train the predictor. This is known as inference. To retrieve the forecast for a single item at low latency, use the operation. To export the complete forecast into your Amazon Simple Storage Service (Amazon S3) bucket, use the <a>CreateForecastExportJob</a> operation. The range of the forecast is determined by the <code>ForecastHorizon</code> value, which you specify in the <a>CreatePredictor</a> request. When you query a forecast, you can request a specific date range within the forecast. To get a list of all your forecasts, use the <a>ListForecasts</a> operation. <note> The forecasts generated by Amazon Forecast are in the same time zone as the dataset that was used to create the predictor. </note> For more information, see <a>howitworks-forecast</a>. <note> The <code>Status</code> of the forecast must be <code>ACTIVE</code> before you can query or export the forecast. Use the <a>DescribeForecast</a> operation to get the status. </note>

        :param self:
        :param Tags:  The optional metadata that you apply to the forecast to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define. The following basic restrictions apply to tags: <ul> <li> Maximum number of tags per resource - 50. </li> <li> For each resource, each tag key must be unique, and each tag key can have only one value. </li> <li> Maximum key length - 128 Unicode characters in UTF-8. </li> <li> Maximum value length - 256 Unicode characters in UTF-8. </li> <li> If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @. </li> <li> Tag keys and values are case sensitive. </li> <li> Do not use <code>aws:</code>, <code>AWS:</code>, or any upper or lowercase combination of such as a prefix for keys as it is reserved for AWS use. You cannot edit or delete tag keys with this prefix. Values can have this prefix. If a tag value has <code>aws</code> as its prefix but the key does not, then Forecast considers it to be a user tag and will count against the limit of 50 tags. Tags with only the key prefix of <code>aws</code> do not count against your tags per resource limit. </li> </ul><br/>ForecastTypes:  The quantiles at which probabilistic forecasts are generated. <b>You can currently specify up to 5 quantiles per forecast</b>. Accepted values include <code>0.01 to 0.99</code> (increments of .01 only) and <code>mean</code>. The mean forecast is different from the median (0.50) when the distribution is not symmetric (for example, Beta and Negative Binomial). The default value is <code>["0.1", "0.5", "0.9"]</code>.<br/>PredictorArn:  The Amazon Resource Name (ARN) of the predictor to use to generate the forecast.<br/>ForecastName:  A name for the forecast.<br/>
        :return: ForecastArn:  The Amazon Resource Name (ARN) of the forecast.<br/>        """
        pass

    def create_forecast_export_job(self, Destination: DataDestination, ForecastArn: str, ForecastExportJobName: str, Tags: List[Tag]=None) -> CreateForecastExportJobResponse:
        r"""Exports a forecast created by the <a>CreateForecast</a> operation to your Amazon Simple Storage Service (Amazon S3) bucket. The forecast file name will match the following conventions: &lt;ForecastExportJobName&gt;_&lt;ExportTimestamp&gt;_&lt;PartNumber&gt; where the &lt;ExportTimestamp&gt; component is in Java SimpleDateFormat (yyyy-MM-ddTHH-mm-ssZ). You must specify a <a>DataDestination</a> object that includes an AWS Identity and Access Management (IAM) role that Amazon Forecast can assume to access the Amazon S3 bucket. For more information, see <a>aws-forecast-iam-roles</a>. For more information, see <a>howitworks-forecast</a>. To get a list of all your forecast export jobs, use the <a>ListForecastExportJobs</a> operation. <note> The <code>Status</code> of the forecast export job must be <code>ACTIVE</code> before you can access the forecast in your Amazon S3 bucket. To get the status, use the <a>DescribeForecastExportJob</a> operation. </note>

        :param self:
        :param Tags:  The optional metadata that you apply to the forecast export job to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define. The following basic restrictions apply to tags: <ul> <li> Maximum number of tags per resource - 50. </li> <li> For each resource, each tag key must be unique, and each tag key can have only one value. </li> <li> Maximum key length - 128 Unicode characters in UTF-8. </li> <li> Maximum value length - 256 Unicode characters in UTF-8. </li> <li> If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @. </li> <li> Tag keys and values are case sensitive. </li> <li> Do not use <code>aws:</code>, <code>AWS:</code>, or any upper or lowercase combination of such as a prefix for keys as it is reserved for AWS use. You cannot edit or delete tag keys with this prefix. Values can have this prefix. If a tag value has <code>aws</code> as its prefix but the key does not, then Forecast considers it to be a user tag and will count against the limit of 50 tags. Tags with only the key prefix of <code>aws</code> do not count against your tags per resource limit. </li> </ul><br/>Destination:  The location where you want to save the forecast and an AWS Identity and Access Management (IAM) role that Amazon Forecast can assume to access the location. The forecast must be exported to an Amazon S3 bucket. If encryption is used, <code>Destination</code> must include an AWS Key Management Service (KMS) key. The IAM role must allow Amazon Forecast permission to access the key.:<br/>ForecastArn:  The Amazon Resource Name (ARN) of the forecast that you want to export.<br/>ForecastExportJobName:  The name for the forecast export job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Config</i> The path to an Amazon Simple Storage Service (Amazon S3) bucket along with the credentials to access the bucket.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3Config</b>: The path to an Amazon Simple Storage Service (Amazon S3) bucket along with the credentials to access the bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KMSKeyArn</i> The Amazon Resource Name (ARN) of an AWS Key Management Service (KMS) key.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The ARN of the AWS Identity and Access Management (IAM) role that Amazon Forecast can assume to access the Amazon S3 bucket or files. If you provide a value for the <code>KMSKeyArn</code> key, the role must allow access to the key. Passing a role across AWS accounts is not allowed. If you pass a role that isn't in your account, you get an <code>InvalidInputException</code> error.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Path</i> The path to an Amazon Simple Storage Service (Amazon S3) bucket or file(s) in an Amazon S3 bucket.<br/>
        :return: ForecastExportJobArn:  The Amazon Resource Name (ARN) of the export job.<br/>        """
        pass

    def create_predictor(self, FeaturizationConfig: FeaturizationConfig, InputDataConfig: InputDataConfig, ForecastHorizon: int, PredictorName: str, AlgorithmArn: str=None, ForecastTypes: List[ForecastType]=None, PerformAutoML: Boolean=None, AutoMLOverrideStrategy: str=None, PerformHPO: Boolean=None, TrainingParameters: TrainingParameters=None, EvaluationParameters: EvaluationParameters=None, HPOConfig: HyperParameterTuningJobConfig=None, EncryptionConfig: EncryptionConfig=None, Tags: List[Tag]=None) -> CreatePredictorResponse:
        r"""Creates an Amazon Forecast predictor. In the request, provide a dataset group and either specify an algorithm or let Amazon Forecast choose an algorithm for you using AutoML. If you specify an algorithm, you also can override algorithm-specific hyperparameters. Amazon Forecast uses the algorithm to train a predictor using the latest version of the datasets in the specified dataset group. You can then generate a forecast using the <a>CreateForecast</a> operation.  To see the evaluation metrics, use the <a>GetAccuracyMetrics</a> operation.  You can specify a featurization configuration to fill and aggregate the data fields in the <code>TARGET_TIME_SERIES</code> dataset to improve model training. For more information, see <a>FeaturizationConfig</a>. For RELATED_TIME_SERIES datasets, <code>CreatePredictor</code> verifies that the <code>DataFrequency</code> specified when the dataset was created matches the <code>ForecastFrequency</code>. TARGET_TIME_SERIES datasets don't have this restriction. Amazon Forecast also verifies the delimiter and timestamp format. For more information, see <a>howitworks-datasets-groups</a>. By default, predictors are trained and evaluated at the 0.1 (P10), 0.5 (P50), and 0.9 (P90) quantiles. You can choose custom forecast types to train and evaluate your predictor by setting the <code>ForecastTypes</code>.   <b>AutoML</b>  If you want Amazon Forecast to evaluate each algorithm and choose the one that minimizes the <code>objective function</code>, set <code>PerformAutoML</code> to <code>true</code>. The <code>objective function</code> is defined as the mean of the weighted losses over the forecast types. By default, these are the p10, p50, and p90 quantile losses. For more information, see <a>EvaluationResult</a>. When AutoML is enabled, the following properties are disallowed: <ul> <li>  <code>AlgorithmArn</code>  </li> <li>  <code>HPOConfig</code>  </li> <li>  <code>PerformHPO</code>  </li> <li>  <code>TrainingParameters</code>  </li> </ul> To get a list of all of your predictors, use the <a>ListPredictors</a> operation. <note> Before you can use the predictor to create a forecast, the <code>Status</code> of the predictor must be <code>ACTIVE</code>, signifying that training has completed. To get the status, use the <a>DescribePredictor</a> operation. </note>

        :param self:
        :param Tags:  The optional metadata that you apply to the predictor to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define. The following basic restrictions apply to tags: <ul> <li> Maximum number of tags per resource - 50. </li> <li> For each resource, each tag key must be unique, and each tag key can have only one value. </li> <li> Maximum key length - 128 Unicode characters in UTF-8. </li> <li> Maximum value length - 256 Unicode characters in UTF-8. </li> <li> If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @. </li> <li> Tag keys and values are case sensitive. </li> <li> Do not use <code>aws:</code>, <code>AWS:</code>, or any upper or lowercase combination of such as a prefix for keys as it is reserved for AWS use. You cannot edit or delete tag keys with this prefix. Values can have this prefix. If a tag value has <code>aws</code> as its prefix but the key does not, then Forecast considers it to be a user tag and will count against the limit of 50 tags. Tags with only the key prefix of <code>aws</code> do not count against your tags per resource limit. </li> </ul><br/>EncryptionConfig:  An AWS Key Management Service (KMS) key and the AWS Identity and Access Management (IAM) role that Amazon Forecast can assume to access the key.:<br/>FeaturizationConfig:  The featurization configuration.:<br/>InputDataConfig:  Describes the dataset group that contains the data to use to train the predictor.:<br/>HPOConfig:  Provides hyperparameter override values for the algorithm. If you don't provide this parameter, Amazon Forecast uses default values. The individual algorithms specify which hyperparameters support hyperparameter optimization (HPO). For more information, see <a>aws-forecast-choosing-recipes</a>. If you included the <code>HPOConfig</code> object, you must set <code>PerformHPO</code> to true.:<br/>EvaluationParameters:  Used to override the default evaluation parameters of the specified algorithm. Amazon Forecast evaluates a predictor by splitting a dataset into training data and testing data. The evaluation parameters define how to perform the split and the number of iterations.:<br/>TrainingParameters:  The hyperparameters to override for model training. The hyperparameters that you can override are listed in the individual algorithms. For the list of supported algorithms, see <a>aws-forecast-choosing-recipes</a>.<br/>PerformHPO:  Whether to perform hyperparameter optimization (HPO). HPO finds optimal hyperparameter values for your training data. The process of performing HPO is known as running a hyperparameter tuning job. The default value is <code>false</code>. In this case, Amazon Forecast uses default hyperparameter values from the chosen algorithm. To override the default values, set <code>PerformHPO</code> to <code>true</code> and, optionally, supply the <a>HyperParameterTuningJobConfig</a> object. The tuning job specifies a metric to optimize, which hyperparameters participate in tuning, and the valid range for each tunable hyperparameter. In this case, you are required to specify an algorithm and <code>PerformAutoML</code> must be false. The following algorithms support HPO: <ul> <li> DeepAR+ </li> <li> CNN-QR </li> </ul><br/>AutoMLOverrideStrategy:  Used to overide the default AutoML strategy, which is to optimize predictor accuracy. To apply an AutoML strategy that minimizes training time, use <code>LatencyOptimized</code>. This parameter is only valid for predictors trained using AutoML.<br/>PerformAutoML:  Whether to perform AutoML. When Amazon Forecast performs AutoML, it evaluates the algorithms it provides and chooses the best algorithm and configuration for your training dataset. The default value is <code>false</code>. In this case, you are required to specify an algorithm. Set <code>PerformAutoML</code> to <code>true</code> to have Amazon Forecast perform AutoML. This is a good option if you aren't sure which algorithm is suitable for your training data. In this case, <code>PerformHPO</code> must be false.<br/>ForecastTypes:  Specifies the forecast types used to train a predictor. You can specify up to five forecast types. Forecast types can be quantiles from 0.01 to 0.99, by increments of 0.01 or higher. You can also specify the mean forecast with <code>mean</code>.  The default value is <code>["0.10", "0.50", "0.9"]</code>.<br/>ForecastHorizon:  Specifies the number of time-steps that the model is trained to predict. The forecast horizon is also called the prediction length. For example, if you configure a dataset for daily data collection (using the <code>DataFrequency</code> parameter of the <a>CreateDataset</a> operation) and set the forecast horizon to 10, the model returns predictions for 10 days. The maximum forecast horizon is the lesser of 500 time-steps or 1/3 of the TARGET_TIME_SERIES dataset length.<br/>AlgorithmArn:  The Amazon Resource Name (ARN) of the algorithm to use for model training. Required if <code>PerformAutoML</code> is not set to <code>true</code>. <p class="title"> <b>Supported algorithms:</b>  <ul> <li>  <code>arn:aws:forecast:::algorithm/ARIMA</code>  </li> <li>  <code>arn:aws:forecast:::algorithm/CNN-QR</code>  </li> <li>  <code>arn:aws:forecast:::algorithm/Deep_AR_Plus</code>  </li> <li>  <code>arn:aws:forecast:::algorithm/ETS</code>  </li> <li>  <code>arn:aws:forecast:::algorithm/NPTS</code>  </li> <li>  <code>arn:aws:forecast:::algorithm/Prophet</code>  </li> </ul><br/>PredictorName:  A name for the predictor.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackTestWindowOffset</i> The point from the end of the dataset where you want to split the data for model training and testing (evaluation). Specify the value as the number of data points. The default is the value of the forecast horizon. <code>BackTestWindowOffset</code> can be used to mimic a past virtual forecast start date. This value must be greater than or equal to the forecast horizon and less than half of the TARGET_TIME_SERIES dataset length.  <code>ForecastHorizon</code> &lt;= <code>BackTestWindowOffset</code> &lt; 1/2 * TARGET_TIME_SERIES dataset length<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberOfBacktestWindows</i> The number of times to split the input data. The default is 1. Valid values are 1 through 5.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ParameterRanges</i> Specifies the ranges of valid values for the hyperparameters.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ParameterRanges</b>: Specifies the ranges of valid values for the hyperparameters.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IntegerParameterRanges</i> Specifies the tunable range for each integer hyperparameter.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ContinuousParameterRanges</i> Specifies the tunable range for each continuous hyperparameter.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CategoricalParameterRanges</i> Specifies the tunable range for each categorical hyperparameter.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SupplementaryFeatures</i> An array of supplementary features. The only supported feature is a holiday calendar.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatasetGroupArn</i> The Amazon Resource Name (ARN) of the dataset group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Featurizations</i> An array of featurization (transformation) information for the fields of a dataset.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ForecastDimensions</i> An array of dimension (field) names that specify how to group the generated forecast. For example, suppose that you are generating a forecast for item sales across all of your stores, and your dataset contains a <code>store_id</code> field. If you want the sales forecast for each item by store, you would specify <code>store_id</code> as the dimension. All forecast dimensions specified in the <code>TARGET_TIME_SERIES</code> dataset don't need to be specified in the <code>CreatePredictor</code> request. All forecast dimensions specified in the <code>RELATED_TIME_SERIES</code> dataset must be specified in the <code>CreatePredictor</code> request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ForecastFrequency</i> The frequency of predictions in a forecast. Valid intervals are Y (Year), M (Month), W (Week), D (Day), H (Hour), 30min (30 minutes), 15min (15 minutes), 10min (10 minutes), 5min (5 minutes), and 1min (1 minute). For example, "Y" indicates every year and "5min" indicates every five minutes. The frequency must be greater than or equal to the TARGET_TIME_SERIES dataset frequency. When a RELATED_TIME_SERIES dataset is provided, the frequency must be equal to the RELATED_TIME_SERIES dataset frequency.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KMSKeyArn</i> The Amazon Resource Name (ARN) of the KMS key.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The ARN of the IAM role that Amazon Forecast can assume to access the AWS KMS key. Passing a role across AWS accounts is not allowed. If you pass a role that isn't in your account, you get an <code>InvalidInputException</code> error.<br/>
        :return: PredictorArn:  The Amazon Resource Name (ARN) of the predictor.<br/>        """
        pass

    def create_predictor_backtest_export_job(self, Destination: DataDestination, PredictorArn: str, PredictorBacktestExportJobName: str, Tags: List[Tag]=None) -> CreatePredictorBacktestExportJobResponse:
        r"""Exports backtest forecasts and accuracy metrics generated by the <a>CreatePredictor</a> operation. Two folders containing CSV files are exported to your specified S3 bucket.  The export file names will match the following conventions:  <code>&lt;ExportJobName&gt;_&lt;ExportTimestamp&gt;_&lt;PartNumber&gt;.csv</code>  The &lt;ExportTimestamp&gt; component is in Java SimpleDate format (yyyy-MM-ddTHH-mm-ssZ). You must specify a <a>DataDestination</a> object that includes an Amazon S3 bucket and an AWS Identity and Access Management (IAM) role that Amazon Forecast can assume to access the Amazon S3 bucket. For more information, see <a>aws-forecast-iam-roles</a>. <note> The <code>Status</code> of the export job must be <code>ACTIVE</code> before you can access the export in your Amazon S3 bucket. To get the status, use the <a>DescribePredictorBacktestExportJob</a> operation. </note>

        :param self:
        :param Tags:  Optional metadata to help you categorize and organize your backtests. Each tag consists of a key and an optional value, both of which you define. Tag keys and values are case sensitive. The following restrictions apply to tags: <ul> <li> For each resource, each tag key must be unique and each tag key must have one value. </li> <li> Maximum number of tags per resource: 50. </li> <li> Maximum key length: 128 Unicode characters in UTF-8. </li> <li> Maximum value length: 256 Unicode characters in UTF-8. </li> <li> Accepted characters: all letters and numbers, spaces representable in UTF-8, and + - = . _ : / @. If your tagging schema is used across other services and resources, the character restrictions of those services also apply.  </li> <li> Key prefixes cannot include any upper or lowercase combination of <code>aws:</code> or <code>AWS:</code>. Values can have this prefix. If a tag value has <code>aws</code> as its prefix but the key does not, Forecast considers it to be a user tag and will count against the limit of 50 tags. Tags with only the key prefix of <code>aws</code> do not count against your tags per resource limit. You cannot edit or delete tag keys with this prefix. </li> </ul><br/>Destination:  The destination for an export job. Provide an S3 path, an AWS Identity and Access Management (IAM) role that allows Amazon Forecast to access the location, and an AWS Key Management Service (KMS) key (optional). :<br/>PredictorArn:  The Amazon Resource Name (ARN) of the predictor that you want to export.<br/>PredictorBacktestExportJobName:  The name for the backtest export job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Config</i> The path to an Amazon Simple Storage Service (Amazon S3) bucket along with the credentials to access the bucket.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3Config</b>: The path to an Amazon Simple Storage Service (Amazon S3) bucket along with the credentials to access the bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KMSKeyArn</i> The Amazon Resource Name (ARN) of an AWS Key Management Service (KMS) key.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The ARN of the AWS Identity and Access Management (IAM) role that Amazon Forecast can assume to access the Amazon S3 bucket or files. If you provide a value for the <code>KMSKeyArn</code> key, the role must allow access to the key. Passing a role across AWS accounts is not allowed. If you pass a role that isn't in your account, you get an <code>InvalidInputException</code> error.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Path</i> The path to an Amazon Simple Storage Service (Amazon S3) bucket or file(s) in an Amazon S3 bucket.<br/>
        :return: PredictorBacktestExportJobArn:  The Amazon Resource Name (ARN) of the predictor backtest export job that you want to export.<br/>        """
        pass

    def delete_dataset(self, DatasetArn: str):
        r"""Deletes an Amazon Forecast dataset that was created using the <a>CreateDataset</a> operation. You can only delete datasets that have a status of <code>ACTIVE</code> or <code>CREATE_FAILED</code>. To get the status use the <a>DescribeDataset</a> operation. <note> Forecast does not automatically update any dataset groups that contain the deleted dataset. In order to update the dataset group, use the operation, omitting the deleted dataset's ARN. </note>

        :param self:
        :param DatasetArn:  The Amazon Resource Name (ARN) of the dataset to delete.<br/>
        :return:         """
        pass

    def delete_dataset_group(self, DatasetGroupArn: str):
        r"""Deletes a dataset group created using the <a>CreateDatasetGroup</a> operation. You can only delete dataset groups that have a status of <code>ACTIVE</code>, <code>CREATE_FAILED</code>, or <code>UPDATE_FAILED</code>. To get the status, use the <a>DescribeDatasetGroup</a> operation. This operation deletes only the dataset group, not the datasets in the group.

        :param self:
        :param DatasetGroupArn:  The Amazon Resource Name (ARN) of the dataset group to delete.<br/>
        :return:         """
        pass

    def delete_dataset_import_job(self, DatasetImportJobArn: str):
        r"""Deletes a dataset import job created using the <a>CreateDatasetImportJob</a> operation. You can delete only dataset import jobs that have a status of <code>ACTIVE</code> or <code>CREATE_FAILED</code>. To get the status, use the <a>DescribeDatasetImportJob</a> operation.

        :param self:
        :param DatasetImportJobArn:  The Amazon Resource Name (ARN) of the dataset import job to delete.<br/>
        :return:         """
        pass

    def delete_forecast(self, ForecastArn: str):
        r"""Deletes a forecast created using the <a>CreateForecast</a> operation. You can delete only forecasts that have a status of <code>ACTIVE</code> or <code>CREATE_FAILED</code>. To get the status, use the <a>DescribeForecast</a> operation. You can't delete a forecast while it is being exported. After a forecast is deleted, you can no longer query the forecast.

        :param self:
        :param ForecastArn:  The Amazon Resource Name (ARN) of the forecast to delete.<br/>
        :return:         """
        pass

    def delete_forecast_export_job(self, ForecastExportJobArn: str):
        r"""Deletes a forecast export job created using the <a>CreateForecastExportJob</a> operation. You can delete only export jobs that have a status of <code>ACTIVE</code> or <code>CREATE_FAILED</code>. To get the status, use the <a>DescribeForecastExportJob</a> operation.

        :param self:
        :param ForecastExportJobArn:  The Amazon Resource Name (ARN) of the forecast export job to delete.<br/>
        :return:         """
        pass

    def delete_predictor(self, PredictorArn: str):
        r"""Deletes a predictor created using the <a>CreatePredictor</a> operation. You can delete only predictor that have a status of <code>ACTIVE</code> or <code>CREATE_FAILED</code>. To get the status, use the <a>DescribePredictor</a> operation.

        :param self:
        :param PredictorArn:  The Amazon Resource Name (ARN) of the predictor to delete.<br/>
        :return:         """
        pass

    def delete_predictor_backtest_export_job(self, PredictorBacktestExportJobArn: str):
        r"""Deletes a predictor backtest export job.

        :param self:
        :param PredictorBacktestExportJobArn:  The Amazon Resource Name (ARN) of the predictor backtest export job to delete.<br/>
        :return:         """
        pass

    def delete_resource_tree(self, ResourceArn: str):
        r"""Deletes an entire resource tree. This operation will delete the parent resource and its child resources. Child resources are resources that were created from another resource. For example, when a forecast is generated from a predictor, the forecast is the child resource and the predictor is the parent resource. Amazon Forecast resources possess the following parent-child resource hierarchies: <ul> <li>  <b>Dataset</b>: dataset import jobs </li> <li>  <b>Dataset Group</b>: predictors, predictor backtest export jobs, forecasts, forecast export jobs </li> <li>  <b>Predictor</b>: predictor backtest export jobs, forecasts, forecast export jobs </li> <li>  <b>Forecast</b>: forecast export jobs </li> </ul> <note>  <code>DeleteResourceTree</code> will only delete Amazon Forecast resources, and will not delete datasets or exported files stored in Amazon S3.  </note>

        :param self:
        :param ResourceArn:  The Amazon Resource Name (ARN) of the parent resource to delete. All child resources of the parent resource will also be deleted.<br/>
        :return:         """
        pass

    def describe_dataset(self, DatasetArn: str) -> DescribeDatasetResponse:
        r"""Describes an Amazon Forecast dataset created using the <a>CreateDataset</a> operation. In addition to listing the parameters specified in the <code>CreateDataset</code> request, this operation includes the following dataset properties: <ul> <li>  <code>CreationTime</code>  </li> <li>  <code>LastModificationTime</code>  </li> <li>  <code>Status</code>  </li> </ul>

        :param self:
        :param DatasetArn:  The Amazon Resource Name (ARN) of the dataset.<br/>
        :return: LastModificationTime:  When you create a dataset, <code>LastModificationTime</code> is the same as <code>CreationTime</code>. While data is being imported to the dataset, <code>LastModificationTime</code> is the current time of the <code>DescribeDataset</code> call. After a <a>CreateDatasetImportJob</a> operation has finished, <code>LastModificationTime</code> is when the import job completed or failed.<br/>CreationTime:  When the dataset was created.<br/>Status:  The status of the dataset. States include: <ul> <li>  <code>ACTIVE</code>  </li> <li>  <code>CREATE_PENDING</code>, <code>CREATE_IN_PROGRESS</code>, <code>CREATE_FAILED</code>  </li> <li>  <code>DELETE_PENDING</code>, <code>DELETE_IN_PROGRESS</code>, <code>DELETE_FAILED</code>  </li> <li>  <code>UPDATE_PENDING</code>, <code>UPDATE_IN_PROGRESS</code>, <code>UPDATE_FAILED</code>  </li> </ul> The <code>UPDATE</code> states apply while data is imported to the dataset from a call to the <a>CreateDatasetImportJob</a> operation and reflect the status of the dataset import job. For example, when the import job status is <code>CREATE_IN_PROGRESS</code>, the status of the dataset is <code>UPDATE_IN_PROGRESS</code>. <note> The <code>Status</code> of the dataset must be <code>ACTIVE</code> before you can import training data. </note><br/>EncryptionConfig:  The AWS Key Management Service (KMS) key and the AWS Identity and Access Management (IAM) role that Amazon Forecast can assume to access the key.:<br/>Schema:  An array of <code>SchemaAttribute</code> objects that specify the dataset fields. Each <code>SchemaAttribute</code> specifies the name and data type of a field.:<br/>DataFrequency:  The frequency of data collection. Valid intervals are Y (Year), M (Month), W (Week), D (Day), H (Hour), 30min (30 minutes), 15min (15 minutes), 10min (10 minutes), 5min (5 minutes), and 1min (1 minute). For example, "M" indicates every month and "30min" indicates every 30 minutes.<br/>DatasetType:  The dataset type.<br/>Domain:  The domain associated with the dataset.<br/>DatasetName:  The name of the dataset.<br/>DatasetArn:  The Amazon Resource Name (ARN) of the dataset.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Attributes</i> An array of attributes specifying the name and type of each field in a dataset.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KMSKeyArn</i> The Amazon Resource Name (ARN) of the KMS key.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The ARN of the IAM role that Amazon Forecast can assume to access the AWS KMS key. Passing a role across AWS accounts is not allowed. If you pass a role that isn't in your account, you get an <code>InvalidInputException</code> error.<br/>        """
        pass

    def describe_dataset_group(self, DatasetGroupArn: str) -> DescribeDatasetGroupResponse:
        r"""Describes a dataset group created using the <a>CreateDatasetGroup</a> operation. In addition to listing the parameters provided in the <code>CreateDatasetGroup</code> request, this operation includes the following properties: <ul> <li>  <code>DatasetArns</code> - The datasets belonging to the group. </li> <li>  <code>CreationTime</code>  </li> <li>  <code>LastModificationTime</code>  </li> <li>  <code>Status</code>  </li> </ul>

        :param self:
        :param DatasetGroupArn:  The Amazon Resource Name (ARN) of the dataset group.<br/>
        :return: LastModificationTime:  When the dataset group was created or last updated from a call to the <a>UpdateDatasetGroup</a> operation. While the dataset group is being updated, <code>LastModificationTime</code> is the current time of the <code>DescribeDatasetGroup</code> call.<br/>CreationTime:  When the dataset group was created.<br/>Status:  The status of the dataset group. States include: <ul> <li>  <code>ACTIVE</code>  </li> <li>  <code>CREATE_PENDING</code>, <code>CREATE_IN_PROGRESS</code>, <code>CREATE_FAILED</code>  </li> <li>  <code>DELETE_PENDING</code>, <code>DELETE_IN_PROGRESS</code>, <code>DELETE_FAILED</code>  </li> <li>  <code>UPDATE_PENDING</code>, <code>UPDATE_IN_PROGRESS</code>, <code>UPDATE_FAILED</code>  </li> </ul> The <code>UPDATE</code> states apply when you call the <a>UpdateDatasetGroup</a> operation. <note> The <code>Status</code> of the dataset group must be <code>ACTIVE</code> before you can use the dataset group to create a predictor. </note><br/>Domain:  The domain associated with the dataset group.<br/>DatasetArns:  An array of Amazon Resource Names (ARNs) of the datasets contained in the dataset group.<br/>DatasetGroupArn:  The ARN of the dataset group.<br/>DatasetGroupName:  The name of the dataset group.<br/>        """
        pass

    def describe_dataset_import_job(self, DatasetImportJobArn: str) -> DescribeDatasetImportJobResponse:
        r"""Describes a dataset import job created using the <a>CreateDatasetImportJob</a> operation. In addition to listing the parameters provided in the <code>CreateDatasetImportJob</code> request, this operation includes the following properties: <ul> <li>  <code>CreationTime</code>  </li> <li>  <code>LastModificationTime</code>  </li> <li>  <code>DataSize</code>  </li> <li>  <code>FieldStatistics</code>  </li> <li>  <code>Status</code>  </li> <li>  <code>Message</code> - If an error occurred, information about the error. </li> </ul>

        :param self:
        :param DatasetImportJobArn:  The Amazon Resource Name (ARN) of the dataset import job.<br/>
        :return: LastModificationTime:  The last time the resource was modified. The timestamp depends on the status of the job: <ul> <li>  <code>CREATE_PENDING</code> - The <code>CreationTime</code>. </li> <li>  <code>CREATE_IN_PROGRESS</code> - The current timestamp. </li> <li>  <code>CREATE_STOPPING</code> - The current timestamp. </li> <li>  <code>CREATE_STOPPED</code> - When the job stopped. </li> <li>  <code>ACTIVE</code> or <code>CREATE_FAILED</code> - When the job finished or failed. </li> </ul><br/>CreationTime:  When the dataset import job was created.<br/>Message:  If an error occurred, an informational message about the error.<br/>Status:  The status of the dataset import job. States include: <ul> <li>  <code>ACTIVE</code>  </li> <li>  <code>CREATE_PENDING</code>, <code>CREATE_IN_PROGRESS</code>, <code>CREATE_FAILED</code>  </li> <li>  <code>DELETE_PENDING</code>, <code>DELETE_IN_PROGRESS</code>, <code>DELETE_FAILED</code>  </li> <li>  <code>CREATE_STOPPING</code>, <code>CREATE_STOPPED</code>  </li> </ul><br/>DataSize:  The size of the dataset in gigabytes (GB) after the import job has finished.<br/>FieldStatistics:  Statistical information about each field in the input data.<br/>EstimatedTimeRemainingInMinutes:  The estimated time remaining in minutes for the dataset import job to complete.<br/>DataSource:  The location of the training data to import and an AWS Identity and Access Management (IAM) role that Amazon Forecast can assume to access the data. If encryption is used, <code>DataSource</code> includes an AWS Key Management Service (KMS) key.:<br/>GeolocationFormat:  The format of the geolocation attribute. Valid Values:<code>"LAT_LONG"</code> and <code>"CC_POSTALCODE"</code>.<br/>UseGeolocationForTimeZone:  Whether <code>TimeZone</code> is automatically derived from the geolocation attribute.<br/>TimeZone:  The single time zone applied to every item in the dataset<br/>TimestampFormat:  The format of timestamps in the dataset. The format that you specify depends on the <code>DataFrequency</code> specified when the dataset was created. The following formats are supported <ul> <li> "yyyy-MM-dd" For the following data frequencies: Y, M, W, and D </li> <li> "yyyy-MM-dd HH:mm:ss" For the following data frequencies: H, 30min, 15min, and 1min; and optionally, for: Y, M, W, and D </li> </ul><br/>DatasetArn:  The Amazon Resource Name (ARN) of the dataset that the training data was imported to.<br/>DatasetImportJobArn:  The ARN of the dataset import job.<br/>DatasetImportJobName:  The name of the dataset import job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Config</i> The path to the training data stored in an Amazon Simple Storage Service (Amazon S3) bucket along with the credentials to access the data.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3Config</b>: The path to the training data stored in an Amazon Simple Storage Service (Amazon S3) bucket along with the credentials to access the data.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KMSKeyArn</i> The Amazon Resource Name (ARN) of an AWS Key Management Service (KMS) key.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The ARN of the AWS Identity and Access Management (IAM) role that Amazon Forecast can assume to access the Amazon S3 bucket or files. If you provide a value for the <code>KMSKeyArn</code> key, the role must allow access to the key. Passing a role across AWS accounts is not allowed. If you pass a role that isn't in your account, you get an <code>InvalidInputException</code> error.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Path</i> The path to an Amazon Simple Storage Service (Amazon S3) bucket or file(s) in an Amazon S3 bucket.<br/>        """
        pass

    def describe_forecast(self, ForecastArn: str) -> DescribeForecastResponse:
        r"""Describes a forecast created using the <a>CreateForecast</a> operation. In addition to listing the properties provided in the <code>CreateForecast</code> request, this operation lists the following properties: <ul> <li>  <code>DatasetGroupArn</code> - The dataset group that provided the training data. </li> <li>  <code>CreationTime</code>  </li> <li>  <code>LastModificationTime</code>  </li> <li>  <code>Status</code>  </li> <li>  <code>Message</code> - If an error occurred, information about the error. </li> </ul>

        :param self:
        :param ForecastArn:  The Amazon Resource Name (ARN) of the forecast.<br/>
        :return: LastModificationTime:  The last time the resource was modified. The timestamp depends on the status of the job: <ul> <li>  <code>CREATE_PENDING</code> - The <code>CreationTime</code>. </li> <li>  <code>CREATE_IN_PROGRESS</code> - The current timestamp. </li> <li>  <code>CREATE_STOPPING</code> - The current timestamp. </li> <li>  <code>CREATE_STOPPED</code> - When the job stopped. </li> <li>  <code>ACTIVE</code> or <code>CREATE_FAILED</code> - When the job finished or failed. </li> </ul><br/>CreationTime:  When the forecast creation task was created.<br/>Message:  If an error occurred, an informational message about the error.<br/>Status:  The status of the forecast. States include: <ul> <li>  <code>ACTIVE</code>  </li> <li>  <code>CREATE_PENDING</code>, <code>CREATE_IN_PROGRESS</code>, <code>CREATE_FAILED</code>  </li> <li>  <code>CREATE_STOPPING</code>, <code>CREATE_STOPPED</code>  </li> <li>  <code>DELETE_PENDING</code>, <code>DELETE_IN_PROGRESS</code>, <code>DELETE_FAILED</code>  </li> </ul> <note> The <code>Status</code> of the forecast must be <code>ACTIVE</code> before you can query or export the forecast. </note><br/>EstimatedTimeRemainingInMinutes:  The estimated time remaining in minutes for the forecast job to complete.<br/>DatasetGroupArn:  The ARN of the dataset group that provided the data used to train the predictor.<br/>PredictorArn:  The ARN of the predictor used to generate the forecast.<br/>ForecastTypes:  The quantiles at which probabilistic forecasts were generated.<br/>ForecastName:  The name of the forecast.<br/>ForecastArn:  The forecast ARN as specified in the request.<br/>        """
        pass

    def describe_forecast_export_job(self, ForecastExportJobArn: str) -> DescribeForecastExportJobResponse:
        r"""Describes a forecast export job created using the <a>CreateForecastExportJob</a> operation. In addition to listing the properties provided by the user in the <code>CreateForecastExportJob</code> request, this operation lists the following properties: <ul> <li>  <code>CreationTime</code>  </li> <li>  <code>LastModificationTime</code>  </li> <li>  <code>Status</code>  </li> <li>  <code>Message</code> - If an error occurred, information about the error. </li> </ul>

        :param self:
        :param ForecastExportJobArn:  The Amazon Resource Name (ARN) of the forecast export job.<br/>
        :return: LastModificationTime:  The last time the resource was modified. The timestamp depends on the status of the job: <ul> <li>  <code>CREATE_PENDING</code> - The <code>CreationTime</code>. </li> <li>  <code>CREATE_IN_PROGRESS</code> - The current timestamp. </li> <li>  <code>CREATE_STOPPING</code> - The current timestamp. </li> <li>  <code>CREATE_STOPPED</code> - When the job stopped. </li> <li>  <code>ACTIVE</code> or <code>CREATE_FAILED</code> - When the job finished or failed. </li> </ul><br/>CreationTime:  When the forecast export job was created.<br/>Status:  The status of the forecast export job. States include: <ul> <li>  <code>ACTIVE</code>  </li> <li>  <code>CREATE_PENDING</code>, <code>CREATE_IN_PROGRESS</code>, <code>CREATE_FAILED</code>  </li> <li>  <code>CREATE_STOPPING</code>, <code>CREATE_STOPPED</code>  </li> <li>  <code>DELETE_PENDING</code>, <code>DELETE_IN_PROGRESS</code>, <code>DELETE_FAILED</code>  </li> </ul> <note> The <code>Status</code> of the forecast export job must be <code>ACTIVE</code> before you can access the forecast in your S3 bucket. </note><br/>Message:  If an error occurred, an informational message about the error.<br/>Destination:  The path to the Amazon Simple Storage Service (Amazon S3) bucket where the forecast is exported.:<br/>ForecastArn:  The Amazon Resource Name (ARN) of the exported forecast.<br/>ForecastExportJobName:  The name of the forecast export job.<br/>ForecastExportJobArn:  The ARN of the forecast export job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Config</i> The path to an Amazon Simple Storage Service (Amazon S3) bucket along with the credentials to access the bucket.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3Config</b>: The path to an Amazon Simple Storage Service (Amazon S3) bucket along with the credentials to access the bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KMSKeyArn</i> The Amazon Resource Name (ARN) of an AWS Key Management Service (KMS) key.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The ARN of the AWS Identity and Access Management (IAM) role that Amazon Forecast can assume to access the Amazon S3 bucket or files. If you provide a value for the <code>KMSKeyArn</code> key, the role must allow access to the key. Passing a role across AWS accounts is not allowed. If you pass a role that isn't in your account, you get an <code>InvalidInputException</code> error.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Path</i> The path to an Amazon Simple Storage Service (Amazon S3) bucket or file(s) in an Amazon S3 bucket.<br/>        """
        pass

    def describe_predictor(self, PredictorArn: str) -> DescribePredictorResponse:
        r"""Describes a predictor created using the <a>CreatePredictor</a> operation. In addition to listing the properties provided in the <code>CreatePredictor</code> request, this operation lists the following properties: <ul> <li>  <code>DatasetImportJobArns</code> - The dataset import jobs used to import training data. </li> <li>  <code>AutoMLAlgorithmArns</code> - If AutoML is performed, the algorithms that were evaluated. </li> <li>  <code>CreationTime</code>  </li> <li>  <code>LastModificationTime</code>  </li> <li>  <code>Status</code>  </li> <li>  <code>Message</code> - If an error occurred, information about the error. </li> </ul>

        :param self:
        :param PredictorArn:  The Amazon Resource Name (ARN) of the predictor that you want information about.<br/>
        :return: LastModificationTime:  The last time the resource was modified. The timestamp depends on the status of the job: <ul> <li>  <code>CREATE_PENDING</code> - The <code>CreationTime</code>. </li> <li>  <code>CREATE_IN_PROGRESS</code> - The current timestamp. </li> <li>  <code>CREATE_STOPPING</code> - The current timestamp. </li> <li>  <code>CREATE_STOPPED</code> - When the job stopped. </li> <li>  <code>ACTIVE</code> or <code>CREATE_FAILED</code> - When the job finished or failed. </li> </ul><br/>CreationTime:  When the model training task was created.<br/>Message:  If an error occurred, an informational message about the error.<br/>Status:  The status of the predictor. States include: <ul> <li>  <code>ACTIVE</code>  </li> <li>  <code>CREATE_PENDING</code>, <code>CREATE_IN_PROGRESS</code>, <code>CREATE_FAILED</code>  </li> <li>  <code>DELETE_PENDING</code>, <code>DELETE_IN_PROGRESS</code>, <code>DELETE_FAILED</code>  </li> <li>  <code>CREATE_STOPPING</code>, <code>CREATE_STOPPED</code>  </li> </ul> <note> The <code>Status</code> of the predictor must be <code>ACTIVE</code> before you can use the predictor to create a forecast. </note><br/>AutoMLAlgorithmArns:  When <code>PerformAutoML</code> is specified, the ARN of the chosen algorithm.<br/>DatasetImportJobArns:  An array of the ARNs of the dataset import jobs used to import training data for the predictor.<br/>EstimatedTimeRemainingInMinutes:  The estimated time remaining in minutes for the predictor training job to complete.<br/>PredictorExecutionDetails:  Details on the the status and results of the backtests performed to evaluate the accuracy of the predictor. You specify the number of backtests to perform when you call the operation.:<br/>EncryptionConfig:  An AWS Key Management Service (KMS) key and the AWS Identity and Access Management (IAM) role that Amazon Forecast can assume to access the key.:<br/>FeaturizationConfig:  The featurization configuration.:<br/>InputDataConfig:  Describes the dataset group that contains the data to use to train the predictor.:<br/>HPOConfig:  The hyperparameter override values for the algorithm.:<br/>EvaluationParameters:  Used to override the default evaluation parameters of the specified algorithm. Amazon Forecast evaluates a predictor by splitting a dataset into training data and testing data. The evaluation parameters define how to perform the split and the number of iterations.:<br/>TrainingParameters:  The default training parameters or overrides selected during model training. When running AutoML or choosing HPO with CNN-QR or DeepAR+, the optimized values for the chosen hyperparameters are returned. For more information, see <a>aws-forecast-choosing-recipes</a>.<br/>PerformHPO:  Whether the predictor is set to perform hyperparameter optimization (HPO).<br/>AutoMLOverrideStrategy:  The AutoML strategy used to train the predictor. Unless <code>LatencyOptimized</code> is specified, the AutoML strategy optimizes predictor accuracy. This parameter is only valid for predictors trained using AutoML.<br/>PerformAutoML:  Whether the predictor is set to perform AutoML.<br/>ForecastTypes:  The forecast types used during predictor training. Default value is <code>["0.1","0.5","0.9"]</code> <br/>ForecastHorizon:  The number of time-steps of the forecast. The forecast horizon is also called the prediction length.<br/>AlgorithmArn:  The Amazon Resource Name (ARN) of the algorithm used for model training.<br/>PredictorName:  The name of the predictor.<br/>PredictorArn:  The ARN of the predictor.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackTestWindowOffset</i> The point from the end of the dataset where you want to split the data for model training and testing (evaluation). Specify the value as the number of data points. The default is the value of the forecast horizon. <code>BackTestWindowOffset</code> can be used to mimic a past virtual forecast start date. This value must be greater than or equal to the forecast horizon and less than half of the TARGET_TIME_SERIES dataset length.  <code>ForecastHorizon</code> &lt;= <code>BackTestWindowOffset</code> &lt; 1/2 * TARGET_TIME_SERIES dataset length<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberOfBacktestWindows</i> The number of times to split the input data. The default is 1. Valid values are 1 through 5.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ParameterRanges</i> Specifies the ranges of valid values for the hyperparameters.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ParameterRanges</b>: Specifies the ranges of valid values for the hyperparameters.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IntegerParameterRanges</i> Specifies the tunable range for each integer hyperparameter.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ContinuousParameterRanges</i> Specifies the tunable range for each continuous hyperparameter.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CategoricalParameterRanges</i> Specifies the tunable range for each categorical hyperparameter.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SupplementaryFeatures</i> An array of supplementary features. The only supported feature is a holiday calendar.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatasetGroupArn</i> The Amazon Resource Name (ARN) of the dataset group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Featurizations</i> An array of featurization (transformation) information for the fields of a dataset.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ForecastDimensions</i> An array of dimension (field) names that specify how to group the generated forecast. For example, suppose that you are generating a forecast for item sales across all of your stores, and your dataset contains a <code>store_id</code> field. If you want the sales forecast for each item by store, you would specify <code>store_id</code> as the dimension. All forecast dimensions specified in the <code>TARGET_TIME_SERIES</code> dataset don't need to be specified in the <code>CreatePredictor</code> request. All forecast dimensions specified in the <code>RELATED_TIME_SERIES</code> dataset must be specified in the <code>CreatePredictor</code> request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ForecastFrequency</i> The frequency of predictions in a forecast. Valid intervals are Y (Year), M (Month), W (Week), D (Day), H (Hour), 30min (30 minutes), 15min (15 minutes), 10min (10 minutes), 5min (5 minutes), and 1min (1 minute). For example, "Y" indicates every year and "5min" indicates every five minutes. The frequency must be greater than or equal to the TARGET_TIME_SERIES dataset frequency. When a RELATED_TIME_SERIES dataset is provided, the frequency must be equal to the RELATED_TIME_SERIES dataset frequency.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KMSKeyArn</i> The Amazon Resource Name (ARN) of the KMS key.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The ARN of the IAM role that Amazon Forecast can assume to access the AWS KMS key. Passing a role across AWS accounts is not allowed. If you pass a role that isn't in your account, you get an <code>InvalidInputException</code> error.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PredictorExecutions</i> An array of the backtests performed to evaluate the accuracy of the predictor against a particular algorithm. The <code>NumberOfBacktestWindows</code> from the object determines the number of windows in the array.<br/>        """
        pass

    def describe_predictor_backtest_export_job(self, PredictorBacktestExportJobArn: str) -> DescribePredictorBacktestExportJobResponse:
        r"""Describes a predictor backtest export job created using the <a>CreatePredictorBacktestExportJob</a> operation. In addition to listing the properties provided by the user in the <code>CreatePredictorBacktestExportJob</code> request, this operation lists the following properties: <ul> <li>  <code>CreationTime</code>  </li> <li>  <code>LastModificationTime</code>  </li> <li>  <code>Status</code>  </li> <li>  <code>Message</code> (if an error occurred) </li> </ul>

        :param self:
        :param PredictorBacktestExportJobArn:  The Amazon Resource Name (ARN) of the predictor backtest export job.<br/>
        :return: LastModificationTime:  The last time the resource was modified. The timestamp depends on the status of the job: <ul> <li>  <code>CREATE_PENDING</code> - The <code>CreationTime</code>. </li> <li>  <code>CREATE_IN_PROGRESS</code> - The current timestamp. </li> <li>  <code>CREATE_STOPPING</code> - The current timestamp. </li> <li>  <code>CREATE_STOPPED</code> - When the job stopped. </li> <li>  <code>ACTIVE</code> or <code>CREATE_FAILED</code> - When the job finished or failed. </li> </ul><br/>CreationTime:  When the predictor backtest export job was created.<br/>Status:  The status of the predictor backtest export job. States include:  <ul> <li>  <code>ACTIVE</code>  </li> <li>  <code>CREATE_PENDING</code>, <code>CREATE_IN_PROGRESS</code>, <code>CREATE_FAILED</code>  </li> <li>  <code>CREATE_STOPPING</code>, <code>CREATE_STOPPED</code>  </li> <li>  <code>DELETE_PENDING</code>, <code>DELETE_IN_PROGRESS</code>, <code>DELETE_FAILED</code>  </li> </ul><br/>Message:  Information about any errors that may have occurred during the backtest export.<br/>Destination:  The destination for an export job. Provide an S3 path, an AWS Identity and Access Management (IAM) role that allows Amazon Forecast to access the location, and an AWS Key Management Service (KMS) key (optional). :<br/>PredictorArn:  The Amazon Resource Name (ARN) of the predictor.<br/>PredictorBacktestExportJobName:  The name of the predictor backtest export job.<br/>PredictorBacktestExportJobArn:  The Amazon Resource Name (ARN) of the predictor backtest export job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Config</i> The path to an Amazon Simple Storage Service (Amazon S3) bucket along with the credentials to access the bucket.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3Config</b>: The path to an Amazon Simple Storage Service (Amazon S3) bucket along with the credentials to access the bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KMSKeyArn</i> The Amazon Resource Name (ARN) of an AWS Key Management Service (KMS) key.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The ARN of the AWS Identity and Access Management (IAM) role that Amazon Forecast can assume to access the Amazon S3 bucket or files. If you provide a value for the <code>KMSKeyArn</code> key, the role must allow access to the key. Passing a role across AWS accounts is not allowed. If you pass a role that isn't in your account, you get an <code>InvalidInputException</code> error.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Path</i> The path to an Amazon Simple Storage Service (Amazon S3) bucket or file(s) in an Amazon S3 bucket.<br/>        """
        pass

    def get_accuracy_metrics(self, PredictorArn: str) -> GetAccuracyMetricsResponse:
        r"""Provides metrics on the accuracy of the models that were trained by the <a>CreatePredictor</a> operation. Use metrics to see how well the model performed and to decide whether to use the predictor to generate a forecast. For more information, see <a href="https://docs.aws.amazon.com/forecast/latest/dg/metrics.html">Predictor Metrics</a>. This operation generates metrics for each backtest window that was evaluated. The number of backtest windows (<code>NumberOfBacktestWindows</code>) is specified using the <a>EvaluationParameters</a> object, which is optionally included in the <code>CreatePredictor</code> request. If <code>NumberOfBacktestWindows</code> isn't specified, the number defaults to one. The parameters of the <code>filling</code> method determine which items contribute to the metrics. If you want all items to contribute, specify <code>zero</code>. If you want only those items that have complete data in the range being evaluated to contribute, specify <code>nan</code>. For more information, see <a>FeaturizationMethod</a>. <note> Before you can get accuracy metrics, the <code>Status</code> of the predictor must be <code>ACTIVE</code>, signifying that training has completed. To get the status, use the <a>DescribePredictor</a> operation. </note>

        :param self:
        :param PredictorArn:  The Amazon Resource Name (ARN) of the predictor to get metrics for.<br/>
        :return: AutoMLOverrideStrategy:  The AutoML strategy used to train the predictor. Unless <code>LatencyOptimized</code> is specified, the AutoML strategy optimizes predictor accuracy. This parameter is only valid for predictors trained using AutoML.<br/>PredictorEvaluationResults:  An array of results from evaluating the predictor.<br/>        """
        pass

    def list_dataset_groups(self, NextToken: str=None, MaxResults: int=None) -> ListDatasetGroupsResponse:
        r"""Returns a list of dataset groups created using the <a>CreateDatasetGroup</a> operation. For each dataset group, this operation returns a summary of its properties, including its Amazon Resource Name (ARN). You can retrieve the complete set of properties by using the dataset group ARN with the <a>DescribeDatasetGroup</a> operation.

        :param self:
        :param MaxResults:  The number of items to return in the response.<br/>NextToken:  If the result of the previous request was truncated, the response includes a <code>NextToken</code>. To retrieve the next set of results, use the token in the next request. Tokens expire after 24 hours.<br/>
        :return: NextToken:  If the response is truncated, Amazon Forecast returns this token. To retrieve the next set of results, use the token in the next request.<br/>DatasetGroups:  An array of objects that summarize each dataset group's properties.<br/>        """
        pass

    def list_dataset_import_jobs(self, NextToken: str=None, MaxResults: int=None, Filters: List[Filter]=None) -> ListDatasetImportJobsResponse:
        r"""Returns a list of dataset import jobs created using the <a>CreateDatasetImportJob</a> operation. For each import job, this operation returns a summary of its properties, including its Amazon Resource Name (ARN). You can retrieve the complete set of properties by using the ARN with the <a>DescribeDatasetImportJob</a> operation. You can filter the list by providing an array of <a>Filter</a> objects.

        :param self:
        :param Filters:  An array of filters. For each filter, you provide a condition and a match statement. The condition is either <code>IS</code> or <code>IS_NOT</code>, which specifies whether to include or exclude the datasets that match the statement from the list, respectively. The match statement consists of a key and a value.  <b>Filter properties</b>  <ul> <li>  <code>Condition</code> - The condition to apply. Valid values are <code>IS</code> and <code>IS_NOT</code>. To include the datasets that match the statement, specify <code>IS</code>. To exclude matching datasets, specify <code>IS_NOT</code>. </li> <li>  <code>Key</code> - The name of the parameter to filter on. Valid values are <code>DatasetArn</code> and <code>Status</code>. </li> <li>  <code>Value</code> - The value to match. </li> </ul> For example, to list all dataset import jobs whose status is ACTIVE, you specify the following filter:  <code>"Filters": [ { "Condition": "IS", "Key": "Status", "Value": "ACTIVE" } ]</code> <br/>MaxResults:  The number of items to return in the response.<br/>NextToken:  If the result of the previous request was truncated, the response includes a <code>NextToken</code>. To retrieve the next set of results, use the token in the next request. Tokens expire after 24 hours.<br/>
        :return: NextToken:  If the response is truncated, Amazon Forecast returns this token. To retrieve the next set of results, use the token in the next request.<br/>DatasetImportJobs:  An array of objects that summarize each dataset import job's properties.<br/>        """
        pass

    def list_datasets(self, NextToken: str=None, MaxResults: int=None) -> ListDatasetsResponse:
        r"""Returns a list of datasets created using the <a>CreateDataset</a> operation. For each dataset, a summary of its properties, including its Amazon Resource Name (ARN), is returned. To retrieve the complete set of properties, use the ARN with the <a>DescribeDataset</a> operation.

        :param self:
        :param MaxResults:  The number of items to return in the response.<br/>NextToken:  If the result of the previous request was truncated, the response includes a <code>NextToken</code>. To retrieve the next set of results, use the token in the next request. Tokens expire after 24 hours.<br/>
        :return: NextToken:  If the response is truncated, Amazon Forecast returns this token. To retrieve the next set of results, use the token in the next request.<br/>Datasets:  An array of objects that summarize each dataset's properties.<br/>        """
        pass

    def list_forecast_export_jobs(self, NextToken: str=None, MaxResults: int=None, Filters: List[Filter]=None) -> ListForecastExportJobsResponse:
        r"""Returns a list of forecast export jobs created using the <a>CreateForecastExportJob</a> operation. For each forecast export job, this operation returns a summary of its properties, including its Amazon Resource Name (ARN). To retrieve the complete set of properties, use the ARN with the <a>DescribeForecastExportJob</a> operation. You can filter the list using an array of <a>Filter</a> objects.

        :param self:
        :param Filters:  An array of filters. For each filter, you provide a condition and a match statement. The condition is either <code>IS</code> or <code>IS_NOT</code>, which specifies whether to include or exclude the forecast export jobs that match the statement from the list, respectively. The match statement consists of a key and a value.  <b>Filter properties</b>  <ul> <li>  <code>Condition</code> - The condition to apply. Valid values are <code>IS</code> and <code>IS_NOT</code>. To include the forecast export jobs that match the statement, specify <code>IS</code>. To exclude matching forecast export jobs, specify <code>IS_NOT</code>. </li> <li>  <code>Key</code> - The name of the parameter to filter on. Valid values are <code>ForecastArn</code> and <code>Status</code>. </li> <li>  <code>Value</code> - The value to match. </li> </ul> For example, to list all jobs that export a forecast named <i>electricityforecast</i>, specify the following filter:  <code>"Filters": [ { "Condition": "IS", "Key": "ForecastArn", "Value": "arn:aws:forecast:us-west-2:&lt;acct-id&gt;:forecast/electricityforecast" } ]</code> <br/>MaxResults:  The number of items to return in the response.<br/>NextToken:  If the result of the previous request was truncated, the response includes a <code>NextToken</code>. To retrieve the next set of results, use the token in the next request. Tokens expire after 24 hours.<br/>
        :return: NextToken:  If the response is truncated, Amazon Forecast returns this token. To retrieve the next set of results, use the token in the next request.<br/>ForecastExportJobs:  An array of objects that summarize each export job's properties.<br/>        """
        pass

    def list_forecasts(self, NextToken: str=None, MaxResults: int=None, Filters: List[Filter]=None) -> ListForecastsResponse:
        r"""Returns a list of forecasts created using the <a>CreateForecast</a> operation. For each forecast, this operation returns a summary of its properties, including its Amazon Resource Name (ARN). To retrieve the complete set of properties, specify the ARN with the <a>DescribeForecast</a> operation. You can filter the list using an array of <a>Filter</a> objects.

        :param self:
        :param Filters:  An array of filters. For each filter, you provide a condition and a match statement. The condition is either <code>IS</code> or <code>IS_NOT</code>, which specifies whether to include or exclude the forecasts that match the statement from the list, respectively. The match statement consists of a key and a value.  <b>Filter properties</b>  <ul> <li>  <code>Condition</code> - The condition to apply. Valid values are <code>IS</code> and <code>IS_NOT</code>. To include the forecasts that match the statement, specify <code>IS</code>. To exclude matching forecasts, specify <code>IS_NOT</code>. </li> <li>  <code>Key</code> - The name of the parameter to filter on. Valid values are <code>DatasetGroupArn</code>, <code>PredictorArn</code>, and <code>Status</code>. </li> <li>  <code>Value</code> - The value to match. </li> </ul> For example, to list all forecasts whose status is not ACTIVE, you would specify:  <code>"Filters": [ { "Condition": "IS_NOT", "Key": "Status", "Value": "ACTIVE" } ]</code> <br/>MaxResults:  The number of items to return in the response.<br/>NextToken:  If the result of the previous request was truncated, the response includes a <code>NextToken</code>. To retrieve the next set of results, use the token in the next request. Tokens expire after 24 hours.<br/>
        :return: NextToken:  If the response is truncated, Amazon Forecast returns this token. To retrieve the next set of results, use the token in the next request.<br/>Forecasts:  An array of objects that summarize each forecast's properties.<br/>        """
        pass

    def list_predictor_backtest_export_jobs(self, NextToken: str=None, MaxResults: int=None, Filters: List[Filter]=None) -> ListPredictorBacktestExportJobsResponse:
        r"""Returns a list of predictor backtest export jobs created using the <a>CreatePredictorBacktestExportJob</a> operation. This operation returns a summary for each backtest export job. You can filter the list using an array of <a>Filter</a> objects. To retrieve the complete set of properties for a particular backtest export job, use the ARN with the <a>DescribePredictorBacktestExportJob</a> operation.

        :param self:
        :param Filters:  An array of filters. For each filter, provide a condition and a match statement. The condition is either <code>IS</code> or <code>IS_NOT</code>, which specifies whether to include or exclude the predictor backtest export jobs that match the statement from the list. The match statement consists of a key and a value.  <b>Filter properties</b>  <ul> <li>  <code>Condition</code> - The condition to apply. Valid values are <code>IS</code> and <code>IS_NOT</code>. To include the predictor backtest export jobs that match the statement, specify <code>IS</code>. To exclude matching predictor backtest export jobs, specify <code>IS_NOT</code>. </li> <li>  <code>Key</code> - The name of the parameter to filter on. Valid values are <code>PredictorArn</code> and <code>Status</code>. </li> <li>  <code>Value</code> - The value to match. </li> </ul><br/>MaxResults:  The number of items to return in the response.<br/>NextToken:  If the result of the previous request was truncated, the response includes a NextToken. To retrieve the next set of results, use the token in the next request. Tokens expire after 24 hours.<br/>
        :return: NextToken:  Returns this token if the response is truncated. To retrieve the next set of results, use the token in the next request.<br/>PredictorBacktestExportJobs:  An array of objects that summarize the properties of each predictor backtest export job.<br/>        """
        pass

    def list_predictors(self, NextToken: str=None, MaxResults: int=None, Filters: List[Filter]=None) -> ListPredictorsResponse:
        r"""Returns a list of predictors created using the <a>CreatePredictor</a> operation. For each predictor, this operation returns a summary of its properties, including its Amazon Resource Name (ARN). You can retrieve the complete set of properties by using the ARN with the <a>DescribePredictor</a> operation. You can filter the list using an array of <a>Filter</a> objects.

        :param self:
        :param Filters:  An array of filters. For each filter, you provide a condition and a match statement. The condition is either <code>IS</code> or <code>IS_NOT</code>, which specifies whether to include or exclude the predictors that match the statement from the list, respectively. The match statement consists of a key and a value.  <b>Filter properties</b>  <ul> <li>  <code>Condition</code> - The condition to apply. Valid values are <code>IS</code> and <code>IS_NOT</code>. To include the predictors that match the statement, specify <code>IS</code>. To exclude matching predictors, specify <code>IS_NOT</code>. </li> <li>  <code>Key</code> - The name of the parameter to filter on. Valid values are <code>DatasetGroupArn</code> and <code>Status</code>. </li> <li>  <code>Value</code> - The value to match. </li> </ul> For example, to list all predictors whose status is ACTIVE, you would specify:  <code>"Filters": [ { "Condition": "IS", "Key": "Status", "Value": "ACTIVE" } ]</code> <br/>MaxResults:  The number of items to return in the response.<br/>NextToken:  If the result of the previous request was truncated, the response includes a <code>NextToken</code>. To retrieve the next set of results, use the token in the next request. Tokens expire after 24 hours.<br/>
        :return: NextToken:  If the response is truncated, Amazon Forecast returns this token. To retrieve the next set of results, use the token in the next request.<br/>Predictors:  An array of objects that summarize each predictor's properties.<br/>        """
        pass

    def list_tags_for_resource(self, ResourceArn: str) -> ListTagsForResourceResponse:
        r"""Lists the tags for an Amazon Forecast resource.

        :param self:
        :param ResourceArn:  The Amazon Resource Name (ARN) that identifies the resource for which to list the tags. Currently, the supported resources are Forecast dataset groups, datasets, dataset import jobs, predictors, forecasts, and forecast export jobs.<br/>
        :return: Tags:  The tags for the resource.<br/>        """
        pass

    def stop_resource(self, ResourceArn: str):
        r"""Stops a resource. The resource undergoes the following states: <code>CREATE_STOPPING</code> and <code>CREATE_STOPPED</code>. You cannot resume a resource once it has been stopped. This operation can be applied to the following resources (and their corresponding child resources): <ul> <li> Dataset Import Job </li> <li> Predictor Job </li> <li> Forecast Job </li> <li> Forecast Export Job </li> <li> Predictor Backtest Export Job </li> </ul>

        :param self:
        :param ResourceArn:  The Amazon Resource Name (ARN) that identifies the resource to stop. The supported ARNs are <code>DatasetImportJobArn</code>, <code>PredictorArn</code>, <code>PredictorBacktestExportJobArn</code>, <code>ForecastArn</code>, and <code>ForecastExportJobArn</code>. <br/>
        :return:         """
        pass

    def tag_resource(self, Tags: List[Tag], ResourceArn: str) -> TagResourceResponse:
        r"""Associates the specified tags to a resource with the specified <code>resourceArn</code>. If existing tags on a resource are not specified in the request parameters, they are not changed. When a resource is deleted, the tags associated with that resource are also deleted.

        :param self:
        :param Tags:  The tags to add to the resource. A tag is an array of key-value pairs. The following basic restrictions apply to tags: <ul> <li> Maximum number of tags per resource - 50. </li> <li> For each resource, each tag key must be unique, and each tag key can have only one value. </li> <li> Maximum key length - 128 Unicode characters in UTF-8. </li> <li> Maximum value length - 256 Unicode characters in UTF-8. </li> <li> If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @. </li> <li> Tag keys and values are case sensitive. </li> <li> Do not use <code>aws:</code>, <code>AWS:</code>, or any upper or lowercase combination of such as a prefix for keys as it is reserved for AWS use. You cannot edit or delete tag keys with this prefix. Values can have this prefix. If a tag value has <code>aws</code> as its prefix but the key does not, then Forecast considers it to be a user tag and will count against the limit of 50 tags. Tags with only the key prefix of <code>aws</code> do not count against your tags per resource limit. </li> </ul><br/>ResourceArn:  The Amazon Resource Name (ARN) that identifies the resource for which to list the tags. Currently, the supported resources are Forecast dataset groups, datasets, dataset import jobs, predictors, forecasts, and forecast export jobs.<br/>
        :return:         """
        pass

    def untag_resource(self, TagKeys: List[TagKey], ResourceArn: str) -> UntagResourceResponse:
        r"""Deletes the specified tags from a resource.

        :param self:
        :param TagKeys:  The keys of the tags to be removed.<br/>ResourceArn:  The Amazon Resource Name (ARN) that identifies the resource for which to list the tags. Currently, the supported resources are Forecast dataset groups, datasets, dataset import jobs, predictors, forecasts, and forecast exports.<br/>
        :return:         """
        pass

    def update_dataset_group(self, DatasetArns: List[Arn], DatasetGroupArn: str) -> UpdateDatasetGroupResponse:
        r"""Replaces the datasets in a dataset group with the specified datasets. <note> The <code>Status</code> of the dataset group must be <code>ACTIVE</code> before you can use the dataset group to create a predictor. Use the <a>DescribeDatasetGroup</a> operation to get the status. </note>

        :param self:
        :param DatasetArns:  An array of the Amazon Resource Names (ARNs) of the datasets to add to the dataset group.<br/>DatasetGroupArn:  The ARN of the dataset group.<br/>
        :return:         """
        pass





class ForecastQueryService(BaseClient):
    r"""Provides APIs for creating and managing Amazon Forecast resources."""




    class QueryForecastRequest(Mapping):
        pass
    
    class QueryForecastResponse(Mapping):
        pass
    
    class Filters(object):
        pass
    
    def query_forecast(self, Filters: Filters, ForecastArn: str, StartDate: str=None, EndDate: str=None, NextToken: str=None) -> QueryForecastResponse:
        r"""Retrieves a forecast for a single item, filtered by the supplied criteria. The criteria is a key-value pair. The key is either <code>item_id</code> (or the equivalent non-timestamp, non-target field) from the <code>TARGET_TIME_SERIES</code> dataset, or one of the forecast dimensions specified as part of the <code>FeaturizationConfig</code> object. By default, <code>QueryForecast</code> returns the complete date range for the filtered forecast. You can request a specific date range. To get the full forecast, use the <a href="https://docs.aws.amazon.com/en_us/forecast/latest/dg/API_CreateForecastExportJob.html">CreateForecastExportJob</a> operation. <note> The forecasts generated by Amazon Forecast are in the same timezone as the dataset that was used to create the predictor. </note>

        :param self:
        :param NextToken:  If the result of the previous request was truncated, the response includes a <code>NextToken</code>. To retrieve the next set of results, use the token in the next request. Tokens expire after 24 hours.<br/>Filters:  The filtering criteria to apply when retrieving the forecast. For example, to get the forecast for <code>client_21</code> in the electricity usage dataset, specify the following:  <code>{"item_id" : "client_21"}</code>  To get the full forecast, use the <a href="https://docs.aws.amazon.com/en_us/forecast/latest/dg/API_CreateForecastExportJob.html">CreateForecastExportJob</a> operation.<br/>EndDate:  The end date for the forecast. Specify the date using this format: yyyy-MM-dd'T'HH:mm:ss (ISO 8601 format). For example, 2015-01-01T20:00:00. <br/>StartDate:  The start date for the forecast. Specify the date using this format: yyyy-MM-dd'T'HH:mm:ss (ISO 8601 format). For example, 2015-01-01T08:00:00.<br/>ForecastArn:  The Amazon Resource Name (ARN) of the forecast to query.<br/>
        :return: Forecast:  The forecast.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Predictions</i> The forecast. The <i>string</i> of the string-to-array map is one of the following values: <ul> <li> p10 </li> <li> p50 </li> <li> p90 </li> </ul><br/>        """
        pass





class FraudDetector(BaseClient):
    r"""This is the Amazon Fraud Detector API Reference. This guide is for developers who need detailed information about Amazon Fraud Detector API actions, data types, and errors. For more information about Amazon Fraud Detector features, see the <a href="https://docs.aws.amazon.com/frauddetector/latest/ug/">Amazon Fraud Detector User Guide</a>."""




    class BatchCreateVariableRequest(Mapping):
        pass
    
    class BatchCreateVariableResult(Mapping):
        pass
    
    class VariableEntry(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class BatchGetVariableRequest(Mapping):
        pass
    
    class BatchGetVariableResult(Mapping):
        pass
    
    class string(object):
        pass
    
    class CancelBatchPredictionJobRequest(Mapping):
        pass
    
    class CancelBatchPredictionJobResult(Mapping):
        pass
    
    class CreateBatchPredictionJobRequest(Mapping):
        pass
    
    class CreateBatchPredictionJobResult(Mapping):
        pass
    
    class CreateDetectorVersionRequest(Mapping):
        pass
    
    class CreateDetectorVersionResult(Mapping):
        pass
    
    class Rule(Mapping):
        pass
    
    class ModelVersion(Mapping):
        pass
    
    class CreateModelRequest(Mapping):
        pass
    
    class CreateModelResult(Mapping):
        pass
    
    class CreateModelVersionRequest(Mapping):
        pass
    
    class CreateModelVersionResult(Mapping):
        pass
    
    class TrainingDataSchema(Mapping):
        pass
    
    class ExternalEventsDetail(Mapping):
        pass
    
    class CreateRuleRequest(Mapping):
        pass
    
    class CreateRuleResult(Mapping):
        pass
    
    class CreateVariableRequest(Mapping):
        pass
    
    class CreateVariableResult(Mapping):
        pass
    
    class DeleteBatchPredictionJobRequest(Mapping):
        pass
    
    class DeleteBatchPredictionJobResult(Mapping):
        pass
    
    class DeleteDetectorRequest(Mapping):
        pass
    
    class DeleteDetectorResult(Mapping):
        pass
    
    class DeleteDetectorVersionRequest(Mapping):
        pass
    
    class DeleteDetectorVersionResult(Mapping):
        pass
    
    class DeleteEntityTypeRequest(Mapping):
        pass
    
    class DeleteEntityTypeResult(Mapping):
        pass
    
    class DeleteEventRequest(Mapping):
        pass
    
    class DeleteEventResult(Mapping):
        pass
    
    class DeleteEventTypeRequest(Mapping):
        pass
    
    class DeleteEventTypeResult(Mapping):
        pass
    
    class DeleteExternalModelRequest(Mapping):
        pass
    
    class DeleteExternalModelResult(Mapping):
        pass
    
    class DeleteLabelRequest(Mapping):
        pass
    
    class DeleteLabelResult(Mapping):
        pass
    
    class DeleteModelRequest(Mapping):
        pass
    
    class DeleteModelResult(Mapping):
        pass
    
    class DeleteModelVersionRequest(Mapping):
        pass
    
    class DeleteModelVersionResult(Mapping):
        pass
    
    class DeleteOutcomeRequest(Mapping):
        pass
    
    class DeleteOutcomeResult(Mapping):
        pass
    
    class DeleteRuleRequest(Mapping):
        pass
    
    class DeleteRuleResult(Mapping):
        pass
    
    class DeleteVariableRequest(Mapping):
        pass
    
    class DeleteVariableResult(Mapping):
        pass
    
    class DescribeDetectorRequest(Mapping):
        pass
    
    class DescribeDetectorResult(Mapping):
        pass
    
    class DescribeModelVersionsRequest(Mapping):
        pass
    
    class DescribeModelVersionsResult(Mapping):
        pass
    
    class GetBatchPredictionJobsRequest(Mapping):
        pass
    
    class GetBatchPredictionJobsResult(Mapping):
        pass
    
    class GetDetectorVersionRequest(Mapping):
        pass
    
    class GetDetectorVersionResult(Mapping):
        pass
    
    class GetDetectorsRequest(Mapping):
        pass
    
    class GetDetectorsResult(Mapping):
        pass
    
    class GetEntityTypesRequest(Mapping):
        pass
    
    class GetEntityTypesResult(Mapping):
        pass
    
    class GetEventPredictionRequest(Mapping):
        pass
    
    class GetEventPredictionResult(Mapping):
        pass
    
    class Entity(Mapping):
        pass
    
    class EventVariableMap(object):
        pass
    
    class ExternalModelEndpointDataBlobMap(object):
        pass
    
    class GetEventTypesRequest(Mapping):
        pass
    
    class GetEventTypesResult(Mapping):
        pass
    
    class GetExternalModelsRequest(Mapping):
        pass
    
    class GetExternalModelsResult(Mapping):
        pass
    
    class GetKMSEncryptionKeyResult(Mapping):
        pass
    
    class GetLabelsRequest(Mapping):
        pass
    
    class GetLabelsResult(Mapping):
        pass
    
    class GetModelVersionRequest(Mapping):
        pass
    
    class GetModelVersionResult(Mapping):
        pass
    
    class GetModelsRequest(Mapping):
        pass
    
    class GetModelsResult(Mapping):
        pass
    
    class GetOutcomesRequest(Mapping):
        pass
    
    class GetOutcomesResult(Mapping):
        pass
    
    class GetRulesRequest(Mapping):
        pass
    
    class GetRulesResult(Mapping):
        pass
    
    class GetVariablesRequest(Mapping):
        pass
    
    class GetVariablesResult(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResult(Mapping):
        pass
    
    class PutDetectorRequest(Mapping):
        pass
    
    class PutDetectorResult(Mapping):
        pass
    
    class PutEntityTypeRequest(Mapping):
        pass
    
    class PutEntityTypeResult(Mapping):
        pass
    
    class PutEventTypeRequest(Mapping):
        pass
    
    class PutEventTypeResult(Mapping):
        pass
    
    class PutExternalModelRequest(Mapping):
        pass
    
    class PutExternalModelResult(Mapping):
        pass
    
    class ModelInputConfiguration(Mapping):
        pass
    
    class ModelOutputConfiguration(Mapping):
        pass
    
    class PutKMSEncryptionKeyRequest(Mapping):
        pass
    
    class PutKMSEncryptionKeyResult(Mapping):
        pass
    
    class PutLabelRequest(Mapping):
        pass
    
    class PutLabelResult(Mapping):
        pass
    
    class PutOutcomeRequest(Mapping):
        pass
    
    class PutOutcomeResult(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResult(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResult(Mapping):
        pass
    
    class tagKey(object):
        pass
    
    class UpdateDetectorVersionRequest(Mapping):
        pass
    
    class UpdateDetectorVersionResult(Mapping):
        pass
    
    class UpdateDetectorVersionMetadataRequest(Mapping):
        pass
    
    class UpdateDetectorVersionMetadataResult(Mapping):
        pass
    
    class UpdateDetectorVersionStatusRequest(Mapping):
        pass
    
    class UpdateDetectorVersionStatusResult(Mapping):
        pass
    
    class UpdateModelRequest(Mapping):
        pass
    
    class UpdateModelResult(Mapping):
        pass
    
    class UpdateModelVersionRequest(Mapping):
        pass
    
    class UpdateModelVersionResult(Mapping):
        pass
    
    class UpdateModelVersionStatusRequest(Mapping):
        pass
    
    class UpdateModelVersionStatusResult(Mapping):
        pass
    
    class UpdateRuleMetadataRequest(Mapping):
        pass
    
    class UpdateRuleMetadataResult(Mapping):
        pass
    
    class UpdateRuleVersionRequest(Mapping):
        pass
    
    class UpdateRuleVersionResult(Mapping):
        pass
    
    class UpdateVariableRequest(Mapping):
        pass
    
    class UpdateVariableResult(Mapping):
        pass
    
    def batch_create_variable(self, variableEntries: List[VariableEntry], tags: List[Tag]=None) -> BatchCreateVariableResult:
        r"""Creates a batch of variables.

        :param self:
        :param tags:  A collection of key and value pairs.<br/>variableEntries:  The list of variables for the batch create variable request.<br/>
        :return: errors:  Provides the errors for the <code>BatchCreateVariable</code> request.<br/>        """
        pass

    def batch_get_variable(self, names: List[string]) -> BatchGetVariableResult:
        r"""Gets a batch of variables.

        :param self:
        :param names:  The list of variable names to get.<br/>
        :return: errors:  The errors from the request.<br/>variables:  The returned variables.<br/>        """
        pass

    def cancel_batch_prediction_job(self, jobId: str) -> CancelBatchPredictionJobResult:
        r"""Cancels the specified batch prediction job.

        :param self:
        :param jobId:  The ID of the batch prediction job to cancel.<br/>
        :return:         """
        pass

    def create_batch_prediction_job(self, iamRoleArn: str, detectorName: str, eventTypeName: str, outputPath: str, inputPath: str, jobId: str, detectorVersion: str=None, tags: List[Tag]=None) -> CreateBatchPredictionJobResult:
        r"""Creates a batch prediction job.

        :param self:
        :param tags:  A collection of key and value pairs.<br/>iamRoleArn:  The ARN of the IAM role to use for this job request.<br/>detectorVersion:  The detector version.<br/>detectorName:  The name of the detector.<br/>eventTypeName:  The name of the event type.<br/>outputPath:  The Amazon S3 location of your output file.<br/>inputPath:  The Amazon S3 location of your training file.<br/>jobId:  The ID of the batch prediction job.<br/>
        :return:         """
        pass

    def create_detector_version(self, rules: List[Rule], detectorId: str, description: str=None, externalModelEndpoints: List[string]=None, modelVersions: List[ModelVersion]=None, ruleExecutionMode: str=None, tags: List[Tag]=None) -> CreateDetectorVersionResult:
        r"""Creates a detector version. The detector version starts in a <code>DRAFT</code> status.

        :param self:
        :param tags:  A collection of key and value pairs.<br/>ruleExecutionMode:  The rule execution mode for the rules included in the detector version. You can define and edit the rule mode at the detector version level, when it is in draft status. If you specify <code>FIRST_MATCHED</code>, Amazon Fraud Detector evaluates rules sequentially, first to last, stopping at the first matched rule. Amazon Fraud dectector then provides the outcomes for that single rule. If you specifiy <code>ALL_MATCHED</code>, Amazon Fraud Detector evaluates all rules and returns the outcomes for all matched rules.  The default behavior is <code>FIRST_MATCHED</code>.<br/>modelVersions:  The model versions to include in the detector version.<br/>rules:  The rules to include in the detector version.<br/>externalModelEndpoints:  The Amazon Sagemaker model endpoints to include in the detector version.<br/>description:  The description of the detector version.<br/>detectorId:  The ID of the detector under which you want to create a new version.<br/>
        :return: status:  The status of the detector version.<br/>detectorVersionId:  The ID for the created detector. <br/>detectorId:  The ID for the created version's parent detector.<br/>        """
        pass

    def create_model(self, eventTypeName: str, modelType: str, modelId: str, description: str=None, tags: List[Tag]=None) -> CreateModelResult:
        r"""Creates a model using the specified model type.

        :param self:
        :param tags:  A collection of key and value pairs.<br/>eventTypeName:  The name of the event type.<br/>description:  The model description. <br/>modelType:  The model type. <br/>modelId:  The model ID.<br/>
        :return:         """
        pass

    def create_model_version(self, trainingDataSchema: TrainingDataSchema, trainingDataSource: str, modelType: str, modelId: str, externalEventsDetail: ExternalEventsDetail=None, tags: List[Tag]=None) -> CreateModelVersionResult:
        r"""Creates a version of the model using the specified model type and model id. 

        :param self:
        :param tags:  A collection of key and value pairs.<br/>externalEventsDetail:  Details for the external events data used for model version training. Required if <code>trainingDataSource</code> is <code>EXTERNAL_EVENTS</code>.:<br/>trainingDataSchema:  The training data schema.:<br/>trainingDataSource:  The training data source location in Amazon S3. <br/>modelType:  The model type.<br/>modelId:  The model ID. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>labelSchema</i> The label schema.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>labelSchema</b>: The label schema.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>modelVariables</i> The training data schema variables.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>labelMapper</i> The label mapper maps the Amazon Fraud Detector supported model classification labels (<code>FRAUD</code>, <code>LEGIT</code>) to the appropriate event type labels. For example, if "<code>FRAUD</code>" and "<code>LEGIT</code>" are Amazon Fraud Detector supported labels, this mapper could be: <code>{"FRAUD" =&gt; ["0"]</code>, <code>"LEGIT" =&gt; ["1"]}</code> or <code>{"FRAUD" =&gt; ["false"]</code>, <code>"LEGIT" =&gt; ["true"]}</code> or <code>{"FRAUD" =&gt; ["fraud", "abuse"]</code>, <code>"LEGIT" =&gt; ["legit", "safe"]}</code>. The value part of the mapper is a list, because you may have multiple label variants from your event type for a single Amazon Fraud Detector label. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>dataAccessRoleArn</i> The ARN of the role that provides Amazon Fraud Detector access to the data location.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>dataLocation</i> The Amazon S3 bucket location for the data.<br/>
        :return: status:  The model version status. <br/>modelVersionNumber:  The model version number of the model version created.<br/>modelType:  The model type.<br/>modelId:  The model ID.<br/>        """
        pass

    def create_rule(self, outcomes: List[string], language: str, expression: str, detectorId: str, ruleId: str, description: str=None, tags: List[Tag]=None) -> CreateRuleResult:
        r"""Creates a rule for use with the specified detector. 

        :param self:
        :param tags:  A collection of key and value pairs.<br/>outcomes:  The outcome or outcomes returned when the rule expression matches.<br/>language:  The language of the rule.<br/>expression:  The rule expression.<br/>description:  The rule description.<br/>detectorId:  The detector ID for the rule's parent detector.<br/>ruleId:  The rule ID.<br/>
        :return: rule:  The created rule.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ruleVersion</i> The rule version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ruleId</i> The rule ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>detectorId</i> The detector for which the rule is associated.<br/>        """
        pass

    def create_variable(self, defaultValue: str, dataSource: str, dataType: str, name: str, description: str=None, variableType: str=None, tags: List[Tag]=None) -> CreateVariableResult:
        r"""Creates a variable.

        :param self:
        :param tags:  A collection of key and value pairs.<br/>variableType:  The variable type. For more information see <a href="https://docs.aws.amazon.com/frauddetector/latest/ug/create-a-variable.html#variable-types">Variable types</a>.  Valid Values: <code>AUTH_CODE | AVS | BILLING_ADDRESS_L1 | BILLING_ADDRESS_L2 | BILLING_CITY | BILLING_COUNTRY | BILLING_NAME | BILLING_PHONE | BILLING_STATE | BILLING_ZIP | CARD_BIN | CATEGORICAL | CURRENCY_CODE | EMAIL_ADDRESS | FINGERPRINT | FRAUD_LABEL | FREE_FORM_TEXT | IP_ADDRESS | NUMERIC | ORDER_ID | PAYMENT_TYPE | PHONE_NUMBER | PRICE | PRODUCT_CATEGORY | SHIPPING_ADDRESS_L1 | SHIPPING_ADDRESS_L2 | SHIPPING_CITY | SHIPPING_COUNTRY | SHIPPING_NAME | SHIPPING_PHONE | SHIPPING_STATE | SHIPPING_ZIP | USERAGENT</code> <br/>description:  The description.<br/>defaultValue:  The default value for the variable when no value is received.<br/>dataSource:  The source of the data.<br/>dataType:  The data type.<br/>name:  The name of the variable.<br/>
        :return:         """
        pass

    def delete_batch_prediction_job(self, jobId: str) -> DeleteBatchPredictionJobResult:
        r"""Deletes a batch prediction job.

        :param self:
        :param jobId:  The ID of the batch prediction job to delete.<br/>
        :return:         """
        pass

    def delete_detector(self, detectorId: str) -> DeleteDetectorResult:
        r"""Deletes the detector. Before deleting a detector, you must first delete all detector versions and rule versions associated with the detector. When you delete a detector, Amazon Fraud Detector permanently deletes the detector and the data is no longer stored in Amazon Fraud Detector.

        :param self:
        :param detectorId:  The ID of the detector to delete.<br/>
        :return:         """
        pass

    def delete_detector_version(self, detectorVersionId: str, detectorId: str) -> DeleteDetectorVersionResult:
        r"""Deletes the detector version. You cannot delete detector versions that are in <code>ACTIVE</code> status. When you delete a detector version, Amazon Fraud Detector permanently deletes the detector and the data is no longer stored in Amazon Fraud Detector.

        :param self:
        :param detectorVersionId:  The ID of the detector version to delete.<br/>detectorId:  The ID of the parent detector for the detector version to delete.<br/>
        :return:         """
        pass

    def delete_entity_type(self, name: str) -> DeleteEntityTypeResult:
        r"""Deletes an entity type. You cannot delete an entity type that is included in an event type. When you delete an entity type, Amazon Fraud Detector permanently deletes that entity type and the data is no longer stored in Amazon Fraud Detector.

        :param self:
        :param name:  The name of the entity type to delete.<br/>
        :return:         """
        pass

    def delete_event(self, eventTypeName: str, eventId: str) -> DeleteEventResult:
        r"""Deletes the specified event. When you delete an event, Amazon Fraud Detector permanently deletes that event and the event data is no longer stored in Amazon Fraud Detector.

        :param self:
        :param eventTypeName:  The name of the event type.<br/>eventId:  The ID of the event to delete.<br/>
        :return:         """
        pass

    def delete_event_type(self, name: str) -> DeleteEventTypeResult:
        r"""Deletes an event type. You cannot delete an event type that is used in a detector or a model. When you delete an entity type, Amazon Fraud Detector permanently deletes that entity type and the data is no longer stored in Amazon Fraud Detector.

        :param self:
        :param name:  The name of the event type to delete.<br/>
        :return:         """
        pass

    def delete_external_model(self, modelEndpoint: str) -> DeleteExternalModelResult:
        r"""Removes a SageMaker model from Amazon Fraud Detector. You can remove an Amazon SageMaker model if it is not associated with a detector version. Removing a SageMaker model disconnects it from Amazon Fraud Detector, but the model remains available in SageMaker.

        :param self:
        :param modelEndpoint:  The endpoint of the Amazon Sagemaker model to delete.<br/>
        :return:         """
        pass

    def delete_label(self, name: str) -> DeleteLabelResult:
        r"""Deletes a label. You cannot delete labels that are included in an event type in Amazon Fraud Detector. You cannot delete a label assigned to an event ID. You must first delete the relevant event ID. When you delete a label, Amazon Fraud Detector permanently deletes that label and the data is no longer stored in Amazon Fraud Detector.

        :param self:
        :param name:  The name of the label to delete.<br/>
        :return:         """
        pass

    def delete_model(self, modelType: str, modelId: str) -> DeleteModelResult:
        r"""Deletes a model. You can delete models and model versions in Amazon Fraud Detector, provided that they are not associated with a detector version.  When you delete a model, Amazon Fraud Detector permanently deletes that model and the data is no longer stored in Amazon Fraud Detector.

        :param self:
        :param modelType:  The model type of the model to delete.<br/>modelId:  The model ID of the model to delete.<br/>
        :return:         """
        pass

    def delete_model_version(self, modelVersionNumber: str, modelType: str, modelId: str) -> DeleteModelVersionResult:
        r"""Deletes a model version. You can delete models and model versions in Amazon Fraud Detector, provided that they are not associated with a detector version.  When you delete a model version, Amazon Fraud Detector permanently deletes that model version and the data is no longer stored in Amazon Fraud Detector.

        :param self:
        :param modelVersionNumber:  The model version number of the model version to delete.<br/>modelType:  The model type of the model version to delete.<br/>modelId:  The model ID of the model version to delete.<br/>
        :return:         """
        pass

    def delete_outcome(self, name: str) -> DeleteOutcomeResult:
        r"""Deletes an outcome. You cannot delete an outcome that is used in a rule version. When you delete an outcome, Amazon Fraud Detector permanently deletes that outcome and the data is no longer stored in Amazon Fraud Detector.

        :param self:
        :param name:  The name of the outcome to delete.<br/>
        :return:         """
        pass

    def delete_rule(self, rule: Rule) -> DeleteRuleResult:
        r"""Deletes the rule. You cannot delete a rule if it is used by an <code>ACTIVE</code> or <code>INACTIVE</code> detector version. When you delete a rule, Amazon Fraud Detector permanently deletes that rule and the data is no longer stored in Amazon Fraud Detector.

        :param self:
        :param rule:  A rule.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ruleVersion</i> The rule version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ruleId</i> The rule ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>detectorId</i> The detector for which the rule is associated.<br/>
        :return:         """
        pass

    def delete_variable(self, name: str) -> DeleteVariableResult:
        r"""Deletes a variable. You can't delete variables that are included in an event type in Amazon Fraud Detector. Amazon Fraud Detector automatically deletes model output variables and SageMaker model output variables when you delete the model. You can't delete these variables manually. When you delete a variable, Amazon Fraud Detector permanently deletes that variable and the data is no longer stored in Amazon Fraud Detector.

        :param self:
        :param name:  The name of the variable to delete.<br/>
        :return:         """
        pass

    def describe_detector(self, detectorId: str, nextToken: str=None, maxResults: int=None) -> DescribeDetectorResult:
        r"""Gets all versions for a specified detector.

        :param self:
        :param maxResults:  The maximum number of results to return for the request.<br/>nextToken:  The next token from the previous response.<br/>detectorId:  The detector ID.<br/>
        :return: arn:  The detector ARN.<br/>nextToken:  The next token to be used for subsequent requests.<br/>detectorVersionSummaries:  The status and description for each detector version.<br/>detectorId:  The detector ID.<br/>        """
        pass

    def describe_model_versions(self, modelId: str=None, modelVersionNumber: str=None, modelType: str=None, nextToken: str=None, maxResults: int=None) -> DescribeModelVersionsResult:
        r"""Gets all of the model versions for the specified model type or for the specified model type and model ID. You can also get details for a single, specified model version. 

        :param self:
        :param maxResults:  The maximum number of results to return.<br/>nextToken:  The next token from the previous results.<br/>modelType:  The model type.<br/>modelVersionNumber:  The model version number.<br/>modelId:  The model ID.<br/>
        :return: nextToken:  The next token.<br/>modelVersionDetails:  The model version details.<br/>        """
        pass

    def get_batch_prediction_jobs(self, jobId: str=None, maxResults: int=None, nextToken: str=None) -> GetBatchPredictionJobsResult:
        r"""Gets all batch prediction jobs or a specific job if you specify a job ID. This is a paginated API. If you provide a null maxResults, this action retrieves a maximum of 50 records per page. If you provide a maxResults, the value must be between 1 and 50. To get the next page results, provide the pagination token from the GetBatchPredictionJobsResponse as part of your request. A null pagination token fetches the records from the beginning.

        :param self:
        :param nextToken:  The next token from the previous request.<br/>maxResults:  The maximum number of objects to return for the request.<br/>jobId:  The batch prediction job for which to get the details.<br/>
        :return: nextToken:  The next token for the subsequent request.<br/>batchPredictions:  An array containing the details of each batch prediction job.<br/>        """
        pass

    def get_detector_version(self, detectorVersionId: str, detectorId: str) -> GetDetectorVersionResult:
        r"""Gets a particular detector version. 

        :param self:
        :param detectorVersionId:  The detector version ID.<br/>detectorId:  The detector ID.<br/>
        :return: arn:  The detector version ARN.<br/>ruleExecutionMode:  The execution mode of the rule in the dectector  <code>FIRST_MATCHED</code> indicates that Amazon Fraud Detector evaluates rules sequentially, first to last, stopping at the first matched rule. Amazon Fraud dectector then provides the outcomes for that single rule.  <code>ALL_MATCHED</code> indicates that Amazon Fraud Detector evaluates all rules and returns the outcomes for all matched rules. You can define and edit the rule mode at the detector version level, when it is in draft status.<br/>createdTime:  The timestamp when the detector version was created. <br/>lastUpdatedTime:  The timestamp when the detector version was last updated. <br/>status:  The status of the detector version.<br/>rules:  The rules included in the detector version.<br/>modelVersions:  The model versions included in the detector version. <br/>externalModelEndpoints:  The Amazon SageMaker model endpoints included in the detector version.<br/>description:  The detector version description.<br/>detectorVersionId:  The detector version ID.<br/>detectorId:  The detector ID.<br/>        """
        pass

    def get_detectors(self, detectorId: str=None, nextToken: str=None, maxResults: int=None) -> GetDetectorsResult:
        r"""Gets all detectors or a single detector if a <code>detectorId</code> is specified. This is a paginated API. If you provide a null <code>maxResults</code>, this action retrieves a maximum of 10 records per page. If you provide a <code>maxResults</code>, the value must be between 5 and 10. To get the next page results, provide the pagination token from the <code>GetDetectorsResponse</code> as part of your request. A null pagination token fetches the records from the beginning. 

        :param self:
        :param maxResults:  The maximum number of objects to return for the request.<br/>nextToken:  The next token for the subsequent request.<br/>detectorId:  The detector ID.<br/>
        :return: nextToken:  The next page token.<br/>detectors:  The detectors.<br/>        """
        pass

    def get_entity_types(self, name: str=None, nextToken: str=None, maxResults: int=None) -> GetEntityTypesResult:
        r"""Gets all entity types or a specific entity type if a name is specified. This is a paginated API. If you provide a null <code>maxResults</code>, this action retrieves a maximum of 10 records per page. If you provide a <code>maxResults</code>, the value must be between 5 and 10. To get the next page results, provide the pagination token from the <code>GetEntityTypesResponse</code> as part of your request. A null pagination token fetches the records from the beginning. 

        :param self:
        :param maxResults:  The maximum number of objects to return for the request.<br/>nextToken:  The next token for the subsequent request.<br/>name:  The name.<br/>
        :return: nextToken:  The next page token.<br/>entityTypes:  An array of entity types.<br/>        """
        pass

    def get_event_prediction(self, eventVariables: EventVariableMap, eventTimestamp: str, entities: List[Entity], eventTypeName: str, eventId: str, detectorId: str, detectorVersionId: str=None, externalModelEndpointDataBlobs: ExternalModelEndpointDataBlobMap=None) -> GetEventPredictionResult:
        r"""Evaluates an event against a detector version. If a version ID is not provided, the detector’s (<code>ACTIVE</code>) version is used.

        :param self:
        :param externalModelEndpointDataBlobs:  The Amazon SageMaker model endpoint input data blobs.<br/>eventVariables:  Names of the event type's variables you defined in Amazon Fraud Detector to represent data elements and their corresponding values for the event you are sending for evaluation. <important> <ul> <li> You must provide at least one eventVariable </li> <li> If detectorVersion is associated with a modelVersion, you must provide at least one associated eventVariable </li> </ul> </important> To ensure highest possible fraud prediction and to simplify your data preparation, Amazon Fraud Detector will replace all missing variables or values as follows:  <b>For Amazon Fraud Detector trained models:</b>  If a null value is provided explicitly for a variable or if a variable is missing, model will replace the null value or the missing variable (no variable name in the eventVariables map) with calculated default mean/medians for numeric variables and with special values for categorical variables.  <b>For External models ( for example, imported SageMaker):</b>  If a null value is provided explicitly for a variable, the model and rules will use “null” as the value. If a variable is not provided (no variable name in the eventVariables map), model and rules will use the default value that is provided for the variable. <br/>eventTimestamp:  Timestamp that defines when the event under evaluation occurred.<br/>entities:  The entity type (associated with the detector's event type) and specific entity ID representing who performed the event. If an entity id is not available, use "UNKNOWN."<br/>eventTypeName:  The event type associated with the detector specified for the prediction.<br/>eventId:  The unique ID used to identify the event.<br/>detectorVersionId:  The detector version ID.<br/>detectorId:  The detector ID.<br/>
        :return: ruleResults:  The results.<br/>modelScores:  The model scores. Amazon Fraud Detector generates model scores between 0 and 1000, where 0 is low fraud risk and 1000 is high fraud risk. Model scores are directly related to the false positive rate (FPR). For example, a score of 600 corresponds to an estimated 10% false positive rate whereas a score of 900 corresponds to an estimated 2% false positive rate.<br/>        """
        pass

    def get_event_types(self, name: str=None, nextToken: str=None, maxResults: int=None) -> GetEventTypesResult:
        r"""Gets all event types or a specific event type if name is provided. This is a paginated API. If you provide a null <code>maxResults</code>, this action retrieves a maximum of 10 records per page. If you provide a <code>maxResults</code>, the value must be between 5 and 10. To get the next page results, provide the pagination token from the <code>GetEventTypesResponse</code> as part of your request. A null pagination token fetches the records from the beginning. 

        :param self:
        :param maxResults:  The maximum number of objects to return for the request.<br/>nextToken:  The next token for the subsequent request.<br/>name:  The name.<br/>
        :return: nextToken:  The next page token.<br/>eventTypes:  An array of event types.<br/>        """
        pass

    def get_external_models(self, modelEndpoint: str=None, nextToken: str=None, maxResults: int=None) -> GetExternalModelsResult:
        r"""Gets the details for one or more Amazon SageMaker models that have been imported into the service. This is a paginated API. If you provide a null <code>maxResults</code>, this actions retrieves a maximum of 10 records per page. If you provide a <code>maxResults</code>, the value must be between 5 and 10. To get the next page results, provide the pagination token from the <code>GetExternalModelsResult</code> as part of your request. A null pagination token fetches the records from the beginning. 

        :param self:
        :param maxResults:  The maximum number of objects to return for the request.<br/>nextToken:  The next page token for the request.<br/>modelEndpoint:  The Amazon SageMaker model endpoint.<br/>
        :return: nextToken:  The next page token to be used in subsequent requests.<br/>externalModels:  Gets the Amazon SageMaker models.<br/>        """
        pass

    def get_kms_encryption_key(self) -> GetKMSEncryptionKeyResult:
        r"""Gets the encryption key if a Key Management Service (KMS) customer master key (CMK) has been specified to be used to encrypt content in Amazon Fraud Detector.

        :param self:
        :param 
        :return: kmsKey:  The KMS encryption key.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>kmsEncryptionKeyArn</i> The encryption key ARN.<br/>        """
        pass

    def get_labels(self, name: str=None, nextToken: str=None, maxResults: int=None) -> GetLabelsResult:
        r"""Gets all labels or a specific label if name is provided. This is a paginated API. If you provide a null <code>maxResults</code>, this action retrieves a maximum of 50 records per page. If you provide a <code>maxResults</code>, the value must be between 10 and 50. To get the next page results, provide the pagination token from the <code>GetGetLabelsResponse</code> as part of your request. A null pagination token fetches the records from the beginning. 

        :param self:
        :param maxResults:  The maximum number of objects to return for the request.<br/>nextToken:  The next token for the subsequent request.<br/>name:  The name of the label or labels to get.<br/>
        :return: nextToken:  The next page token.<br/>labels:  An array of labels.<br/>        """
        pass

    def get_model_version(self, modelVersionNumber: str, modelType: str, modelId: str) -> GetModelVersionResult:
        r"""Gets the details of the specified model version.

        :param self:
        :param modelVersionNumber:  The model version number.<br/>modelType:  The model type.<br/>modelId:  The model ID.<br/>
        :return: arn:  The model version ARN.<br/>status:  The model version status. Possible values are: <ul> <li>  <code>TRAINING_IN_PROGRESS</code>  </li> <li>  <code>TRAINING_COMPLETE</code>  </li> <li>  <code>ACTIVATE_REQUESTED</code>  </li> <li>  <code>ACTIVATE_IN_PROGRESS</code>  </li> <li>  <code>ACTIVE</code>  </li> <li>  <code>INACTIVATE_REQUESTED</code>  </li> <li>  <code>INACTIVATE_IN_PROGRESS</code>  </li> <li>  <code>INACTIVE</code>  </li> <li>  <code>ERROR</code>  </li> </ul><br/>externalEventsDetail:  The event details.:<br/>trainingDataSchema:  The training data schema.:<br/>trainingDataSource:  The training data source.<br/>modelVersionNumber:  The model version number.<br/>modelType:  The model type.<br/>modelId:  The model ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>labelSchema</i> The label schema.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>labelSchema</b>: The label schema.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>modelVariables</i> The training data schema variables.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>labelMapper</i> The label mapper maps the Amazon Fraud Detector supported model classification labels (<code>FRAUD</code>, <code>LEGIT</code>) to the appropriate event type labels. For example, if "<code>FRAUD</code>" and "<code>LEGIT</code>" are Amazon Fraud Detector supported labels, this mapper could be: <code>{"FRAUD" =&gt; ["0"]</code>, <code>"LEGIT" =&gt; ["1"]}</code> or <code>{"FRAUD" =&gt; ["false"]</code>, <code>"LEGIT" =&gt; ["true"]}</code> or <code>{"FRAUD" =&gt; ["fraud", "abuse"]</code>, <code>"LEGIT" =&gt; ["legit", "safe"]}</code>. The value part of the mapper is a list, because you may have multiple label variants from your event type for a single Amazon Fraud Detector label. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>dataAccessRoleArn</i> The ARN of the role that provides Amazon Fraud Detector access to the data location.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>dataLocation</i> The Amazon S3 bucket location for the data.<br/>        """
        pass

    def get_models(self, modelId: str=None, modelType: str=None, nextToken: str=None, maxResults: int=None) -> GetModelsResult:
        r"""Gets one or more models. Gets all models for the AWS account if no model type and no model id provided. Gets all models for the AWS account and model type, if the model type is specified but model id is not provided. Gets a specific model if (model type, model id) tuple is specified.  This is a paginated API. If you provide a null <code>maxResults</code>, this action retrieves a maximum of 10 records per page. If you provide a <code>maxResults</code>, the value must be between 1 and 10. To get the next page results, provide the pagination token from the response as part of your request. A null pagination token fetches the records from the beginning.

        :param self:
        :param maxResults:  The maximum number of objects to return for the request. <br/>nextToken:  The next token for the subsequent request.<br/>modelType:  The model type.<br/>modelId:  The model ID.<br/>
        :return: models:  The array of models.<br/>nextToken:  The next page token to be used in subsequent requests.<br/>        """
        pass

    def get_outcomes(self, name: str=None, nextToken: str=None, maxResults: int=None) -> GetOutcomesResult:
        r"""Gets one or more outcomes. This is a paginated API. If you provide a null <code>maxResults</code>, this actions retrieves a maximum of 100 records per page. If you provide a <code>maxResults</code>, the value must be between 50 and 100. To get the next page results, provide the pagination token from the <code>GetOutcomesResult</code> as part of your request. A null pagination token fetches the records from the beginning. 

        :param self:
        :param maxResults:  The maximum number of objects to return for the request. <br/>nextToken:  The next page token for the request. <br/>name:  The name of the outcome or outcomes to get.<br/>
        :return: nextToken:  The next page token for subsequent requests.<br/>outcomes:  The outcomes. <br/>        """
        pass

    def get_rules(self, detectorId: str, ruleId: str=None, ruleVersion: str=None, nextToken: str=None, maxResults: int=None) -> GetRulesResult:
        r"""Get all rules for a detector (paginated) if <code>ruleId</code> and <code>ruleVersion</code> are not specified. Gets all rules for the detector and the <code>ruleId</code> if present (paginated). Gets a specific rule if both the <code>ruleId</code> and the <code>ruleVersion</code> are specified. This is a paginated API. Providing null maxResults results in retrieving maximum of 100 records per page. If you provide maxResults the value must be between 50 and 100. To get the next page result, a provide a pagination token from GetRulesResult as part of your request. Null pagination token fetches the records from the beginning.

        :param self:
        :param maxResults:  The maximum number of rules to return for the request.<br/>nextToken:  The next page token.<br/>ruleVersion:  The rule version.<br/>detectorId:  The detector ID.<br/>ruleId:  The rule ID.<br/>
        :return: nextToken:  The next page token to be used in subsequent requests.<br/>ruleDetails:  The details of the requested rule.<br/>        """
        pass

    def get_variables(self, name: str=None, nextToken: str=None, maxResults: int=None) -> GetVariablesResult:
        r"""Gets all of the variables or the specific variable. This is a paginated API. Providing null <code>maxSizePerPage</code> results in retrieving maximum of 100 records per page. If you provide <code>maxSizePerPage</code> the value must be between 50 and 100. To get the next page result, a provide a pagination token from <code>GetVariablesResult</code> as part of your request. Null pagination token fetches the records from the beginning. 

        :param self:
        :param maxResults:  The max size per page determined for the get variable request. <br/>nextToken:  The next page token of the get variable request. <br/>name:  The name of the variable. <br/>
        :return: nextToken:  The next page token to be used in subsequent requests. <br/>variables:  The names of the variables returned. <br/>        """
        pass

    def list_tags_for_resource(self, resourceARN: str, nextToken: str=None, maxResults: int=None) -> ListTagsForResourceResult:
        r"""Lists all tags associated with the resource. This is a paginated API. To get the next page results, provide the pagination token from the response as part of your request. A null pagination token fetches the records from the beginning. 

        :param self:
        :param maxResults:  The maximum number of objects to return for the request. <br/>nextToken:  The next token from the previous results.<br/>resourceARN:  The ARN that specifies the resource whose tags you want to list.<br/>
        :return: nextToken:  The next token for subsequent requests. <br/>tags:  A collection of key and value pairs.<br/>        """
        pass

    def put_detector(self, eventTypeName: str, detectorId: str, description: str=None, tags: List[Tag]=None) -> PutDetectorResult:
        r"""Creates or updates a detector. 

        :param self:
        :param tags:  A collection of key and value pairs.<br/>eventTypeName:  The name of the event type.<br/>description:  The description of the detector.<br/>detectorId:  The detector ID. <br/>
        :return:         """
        pass

    def put_entity_type(self, name: str, description: str=None, tags: List[Tag]=None) -> PutEntityTypeResult:
        r"""Creates or updates an entity type. An entity represents who is performing the event. As part of a fraud prediction, you pass the entity ID to indicate the specific entity who performed the event. An entity type classifies the entity. Example classifications include customer, merchant, or account.

        :param self:
        :param tags:  A collection of key and value pairs.<br/>description:  The description.<br/>name:  The name of the entity type.<br/>
        :return:         """
        pass

    def put_event_type(self, entityTypes: List[string], eventVariables: List[string], name: str, description: str=None, labels: List[string]=None, tags: List[Tag]=None) -> PutEventTypeResult:
        r"""Creates or updates an event type. An event is a business activity that is evaluated for fraud risk. With Amazon Fraud Detector, you generate fraud predictions for events. An event type defines the structure for an event sent to Amazon Fraud Detector. This includes the variables sent as part of the event, the entity performing the event (such as a customer), and the labels that classify the event. Example event types include online payment transactions, account registrations, and authentications.

        :param self:
        :param tags:  A collection of key and value pairs.<br/>entityTypes:  The entity type for the event type. Example entity types: customer, merchant, account.<br/>labels:  The event type labels.<br/>eventVariables:  The event type variables.<br/>description:  The description of the event type.<br/>name:  The name.<br/>
        :return:         """
        pass

    def put_external_model(self, modelEndpointStatus: str, outputConfiguration: ModelOutputConfiguration, inputConfiguration: ModelInputConfiguration, invokeModelEndpointRoleArn: str, modelSource: str, modelEndpoint: str, tags: List[Tag]=None) -> PutExternalModelResult:
        r"""Creates or updates an Amazon SageMaker model endpoint. You can also use this action to update the configuration of the model endpoint, including the IAM role and/or the mapped variables. 

        :param self:
        :param tags:  A collection of key and value pairs.<br/>modelEndpointStatus:  The model endpoint’s status in Amazon Fraud Detector.<br/>outputConfiguration:  The model endpoint output configuration.:<br/>inputConfiguration:  The model endpoint input configuration.:<br/>invokeModelEndpointRoleArn:  The IAM role used to invoke the model endpoint.<br/>modelSource:  The source of the model.<br/>modelEndpoint:  The model endpoints name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>csvInputTemplate</i>  Template for constructing the CSV input-data sent to SageMaker. At event-evaluation, the placeholders for variable-names in the template will be replaced with the variable values before being sent to SageMaker. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>jsonInputTemplate</i>  Template for constructing the JSON input-data sent to SageMaker. At event-evaluation, the placeholders for variable names in the template will be replaced with the variable values before being sent to SageMaker. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>useEventVariables</i> The event variables.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>format</i>  The format of the model input configuration. The format differs depending on if it is passed through to SageMaker or constructed by Amazon Fraud Detector.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>eventTypeName</i> The event type name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>csvIndexToVariableMap</i> A map of CSV index values in the SageMaker response to the Amazon Fraud Detector variables. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>jsonKeyToVariableMap</i> A map of JSON keys in response from SageMaker to the Amazon Fraud Detector variables. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>format</i> The format of the model output configuration.<br/>
        :return:         """
        pass

    def put_kms_encryption_key(self, kmsEncryptionKeyArn: str) -> PutKMSEncryptionKeyResult:
        r"""Specifies the Key Management Service (KMS) customer master key (CMK) to be used to encrypt content in Amazon Fraud Detector.

        :param self:
        :param kmsEncryptionKeyArn:  The KMS encryption key ARN.<br/>
        :return:         """
        pass

    def put_label(self, name: str, description: str=None, tags: List[Tag]=None) -> PutLabelResult:
        r"""Creates or updates label. A label classifies an event as fraudulent or legitimate. Labels are associated with event types and used to train supervised machine learning models in Amazon Fraud Detector. 

        :param self:
        :param tags:  <p/><br/>description:  The label description.<br/>name:  The label name.<br/>
        :return:         """
        pass

    def put_outcome(self, name: str, description: str=None, tags: List[Tag]=None) -> PutOutcomeResult:
        r"""Creates or updates an outcome. 

        :param self:
        :param tags:  A collection of key and value pairs.<br/>description:  The outcome description.<br/>name:  The name of the outcome.<br/>
        :return:         """
        pass

    def tag_resource(self, tags: List[Tag], resourceARN: str) -> TagResourceResult:
        r"""Assigns tags to a resource.

        :param self:
        :param tags:  The tags to assign to the resource.<br/>resourceARN:  The resource ARN.<br/>
        :return:         """
        pass

    def untag_resource(self, tagKeys: List[tagKey], resourceARN: str) -> UntagResourceResult:
        r"""Removes tags from a resource.

        :param self:
        :param tagKeys:  The resource ARN.<br/>resourceARN:  The ARN of the resource from which to remove the tag.<br/>
        :return:         """
        pass

    def update_detector_version(self, rules: List[Rule], externalModelEndpoints: List[string], detectorVersionId: str, detectorId: str, description: str=None, modelVersions: List[ModelVersion]=None, ruleExecutionMode: str=None) -> UpdateDetectorVersionResult:
        r""" Updates a detector version. The detector version attributes that you can update include models, external model endpoints, rules, rule execution mode, and description. You can only update a <code>DRAFT</code> detector version.

        :param self:
        :param ruleExecutionMode:  The rule execution mode to add to the detector. If you specify <code>FIRST_MATCHED</code>, Amazon Fraud Detector evaluates rules sequentially, first to last, stopping at the first matched rule. Amazon Fraud dectector then provides the outcomes for that single rule. If you specifiy <code>ALL_MATCHED</code>, Amazon Fraud Detector evaluates all rules and returns the outcomes for all matched rules. You can define and edit the rule mode at the detector version level, when it is in draft status. The default behavior is <code>FIRST_MATCHED</code>.<br/>modelVersions:  The model versions to include in the detector version.<br/>description:  The detector version description. <br/>rules:  The rules to include in the detector version.<br/>externalModelEndpoints:  The Amazon SageMaker model endpoints to include in the detector version.<br/>detectorVersionId:  The detector version ID. <br/>detectorId:  The parent detector ID for the detector version you want to update.<br/>
        :return:         """
        pass

    def update_detector_version_metadata(self, description: str, detectorVersionId: str, detectorId: str) -> UpdateDetectorVersionMetadataResult:
        r"""Updates the detector version's description. You can update the metadata for any detector version (<code>DRAFT, ACTIVE,</code> or <code>INACTIVE</code>). 

        :param self:
        :param description:  The description.<br/>detectorVersionId:  The detector version ID. <br/>detectorId:  The detector ID.<br/>
        :return:         """
        pass

    def update_detector_version_status(self, status: str, detectorVersionId: str, detectorId: str) -> UpdateDetectorVersionStatusResult:
        r"""Updates the detector version’s status. You can perform the following promotions or demotions using <code>UpdateDetectorVersionStatus</code>: <code>DRAFT</code> to <code>ACTIVE</code>, <code>ACTIVE</code> to <code>INACTIVE</code>, and <code>INACTIVE</code> to <code>ACTIVE</code>.

        :param self:
        :param status:  The new status.<br/>detectorVersionId:  The detector version ID. <br/>detectorId:  The detector ID. <br/>
        :return:         """
        pass

    def update_model(self, modelType: str, modelId: str, description: str=None) -> UpdateModelResult:
        r"""Updates a model. You can update the description attribute using this action.

        :param self:
        :param description:  The new model description.<br/>modelType:  The model type.<br/>modelId:  The model ID.<br/>
        :return:         """
        pass

    def update_model_version(self, majorVersionNumber: str, modelType: str, modelId: str, externalEventsDetail: ExternalEventsDetail=None, tags: List[Tag]=None) -> UpdateModelVersionResult:
        r"""Updates a model version. Updating a model version retrains an existing model version using updated training data and produces a new minor version of the model. You can update the training data set location and data access role attributes using this action. This action creates and trains a new minor version of the model, for example version 1.01, 1.02, 1.03.

        :param self:
        :param tags:  A collection of key and value pairs.<br/>externalEventsDetail:  The event details.:<br/>majorVersionNumber:  The major version number.<br/>modelType:  The model type.<br/>modelId:  The model ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>dataAccessRoleArn</i> The ARN of the role that provides Amazon Fraud Detector access to the data location.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>dataLocation</i> The Amazon S3 bucket location for the data.<br/>
        :return: status:  The status of the updated model version.<br/>modelVersionNumber:  The model version number of the model version updated.<br/>modelType:  The model type.<br/>modelId:  The model ID.<br/>        """
        pass

    def update_model_version_status(self, status: str, modelVersionNumber: str, modelType: str, modelId: str) -> UpdateModelVersionStatusResult:
        r"""Updates the status of a model version. You can perform the following status updates: <ol> <li> Change the <code>TRAINING_COMPLETE</code> status to <code>ACTIVE</code>. </li> <li> Change <code>ACTIVE</code>to <code>INACTIVE</code>. </li> </ol>

        :param self:
        :param status:  The model version status.<br/>modelVersionNumber:  The model version number.<br/>modelType:  The model type.<br/>modelId:  The model ID of the model version to update.<br/>
        :return:         """
        pass

    def update_rule_metadata(self, description: str, rule: Rule) -> UpdateRuleMetadataResult:
        r"""Updates a rule's metadata. The description attribute can be updated.

        :param self:
        :param description:  The rule description.<br/>rule:  The rule to update.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ruleVersion</i> The rule version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ruleId</i> The rule ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>detectorId</i> The detector for which the rule is associated.<br/>
        :return:         """
        pass

    def update_rule_version(self, outcomes: List[string], language: str, expression: str, rule: Rule, description: str=None, tags: List[Tag]=None) -> UpdateRuleVersionResult:
        r"""Updates a rule version resulting in a new rule version. Updates a rule version resulting in a new rule version (version 1, 2, 3 ...). 

        :param self:
        :param tags:  The tags to assign to the rule version.<br/>outcomes:  The outcomes.<br/>language:  The language.<br/>expression:  The rule expression.<br/>description:  The description.<br/>rule:  The rule to update.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ruleVersion</i> The rule version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ruleId</i> The rule ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>detectorId</i> The detector for which the rule is associated.<br/>
        :return: rule:  The new rule version that was created.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ruleVersion</i> The rule version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ruleId</i> The rule ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>detectorId</i> The detector for which the rule is associated.<br/>        """
        pass

    def update_variable(self, name: str, defaultValue: str=None, description: str=None, variableType: str=None) -> UpdateVariableResult:
        r"""Updates a variable.

        :param self:
        :param variableType:  The variable type. For more information see <a href="https://docs.aws.amazon.com/frauddetector/latest/ug/create-a-variable.html#variable-types">Variable types</a>.<br/>description:  The new description.<br/>defaultValue:  The new default value of the variable.<br/>name:  The name of the variable.<br/>
        :return:         """
        pass





class FSx(BaseClient):
    r"""Amazon FSx is a fully managed service that makes it easy for storage and application administrators to launch and use shared file storage."""


    class DescribeBackupsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_backups` for valid parameters"""
            pass
    class DescribeFileSystemsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_file_systems` for valid parameters"""
            pass
    class ListTagsForResourcePaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_tags_for_resource` for valid parameters"""
            pass


    class AssociateFileSystemAliasesRequest(Mapping):
        pass
    
    class AssociateFileSystemAliasesResponse(Mapping):
        pass
    
    class AlternateDNSName(object):
        pass
    
    class CancelDataRepositoryTaskRequest(Mapping):
        pass
    
    class CancelDataRepositoryTaskResponse(Mapping):
        pass
    
    class CopyBackupRequest(Mapping):
        pass
    
    class CopyBackupResponse(Mapping):
        pass
    
    class Flag(object):
        pass
    
    class Tag(Mapping):
        pass
    
    class CreateBackupRequest(Mapping):
        pass
    
    class CreateBackupResponse(Mapping):
        pass
    
    class CreateDataRepositoryTaskRequest(Mapping):
        pass
    
    class CreateDataRepositoryTaskResponse(Mapping):
        pass
    
    class DataRepositoryTaskPath(object):
        pass
    
    class CompletionReport(Mapping):
        pass
    
    class CreateFileSystemRequest(Mapping):
        pass
    
    class CreateFileSystemResponse(Mapping):
        pass
    
    class SubnetId(object):
        pass
    
    class SecurityGroupId(object):
        pass
    
    class CreateFileSystemWindowsConfiguration(Mapping):
        pass
    
    class CreateFileSystemLustreConfiguration(Mapping):
        pass
    
    class CreateFileSystemFromBackupRequest(Mapping):
        pass
    
    class CreateFileSystemFromBackupResponse(Mapping):
        pass
    
    class DeleteBackupRequest(Mapping):
        pass
    
    class DeleteBackupResponse(Mapping):
        pass
    
    class DeleteFileSystemRequest(Mapping):
        pass
    
    class DeleteFileSystemResponse(Mapping):
        pass
    
    class DeleteFileSystemWindowsConfiguration(Mapping):
        pass
    
    class DeleteFileSystemLustreConfiguration(Mapping):
        pass
    
    class DescribeBackupsRequest(Mapping):
        pass
    
    class DescribeBackupsResponse(Mapping):
        pass
    
    class BackupId(object):
        pass
    
    class Filter(Mapping):
        pass
    
    class DescribeDataRepositoryTasksRequest(Mapping):
        pass
    
    class DescribeDataRepositoryTasksResponse(Mapping):
        pass
    
    class TaskId(object):
        pass
    
    class DataRepositoryTaskFilter(Mapping):
        pass
    
    class DescribeFileSystemAliasesRequest(Mapping):
        pass
    
    class DescribeFileSystemAliasesResponse(Mapping):
        pass
    
    class DescribeFileSystemsRequest(Mapping):
        pass
    
    class DescribeFileSystemsResponse(Mapping):
        pass
    
    class FileSystemId(object):
        pass
    
    class DisassociateFileSystemAliasesRequest(Mapping):
        pass
    
    class DisassociateFileSystemAliasesResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateFileSystemRequest(Mapping):
        pass
    
    class UpdateFileSystemResponse(Mapping):
        pass
    
    class UpdateFileSystemWindowsConfiguration(Mapping):
        pass
    
    class UpdateFileSystemLustreConfiguration(Mapping):
        pass
    
    def associate_file_system_aliases(self, Aliases: List[AlternateDNSName], FileSystemId: str, ClientRequestToken: str=None) -> AssociateFileSystemAliasesResponse:
        r"""Use this action to associate one or more Domain Name Server (DNS) aliases with an existing Amazon FSx for Windows File Server file system. A file systen can have a maximum of 50 DNS aliases associated with it at any one time. If you try to associate a DNS alias that is already associated with the file system, FSx takes no action on that alias in the request. For more information, see <a href="https://docs.aws.amazon.com/fsx/latest/WindowsGuide/managing-dns-aliases.html">Working with DNS Aliases</a> and <a href="https://docs.aws.amazon.com/fsx/latest/WindowsGuide/walkthrough05-file-system-custom-CNAME.html">Walkthrough 5: Using DNS aliases to access your file system</a>, including additional steps you must take to be able to access your file system using a DNS alias. The system response shows the DNS aliases that Amazon FSx is attempting to associate with the file system. Use the API operation to monitor the status of the aliases Amazon FSx is associating with the file system.

        :param self:
        :param Aliases:  An array of one or more DNS alias names to associate with the file system. The alias name has to comply with the following formatting requirements: <ul> <li> Formatted as a fully-qualified domain name (FQDN), <i> <code>hostname.domain</code> </i>, for example, <code>accounting.corp.example.com</code>. </li> <li> Can contain alphanumeric characters and the hyphen (-). </li> <li> Cannot start or end with a hyphen. </li> <li> Can start with a numeric. </li> </ul> For DNS alias names, Amazon FSx stores alphabetic characters as lowercase letters (a-z), regardless of how you specify them: as uppercase letters, lowercase letters, or the corresponding letters in escape codes.<br/>FileSystemId:  Specifies the file system with which you want to associate one or more DNS aliases.<br/>ClientRequestToken:  (Optional) An idempotency token for resource creation, in a string of up to 64 ASCII characters. This token is automatically filled on your behalf when you use the AWS Command Line Interface (AWS CLI) or an AWS SDK.<br/>
        :return: Aliases:  An array of the DNS aliases that Amazon FSx is associating with the file system.<br/>        """
        pass

    def cancel_data_repository_task(self, TaskId: str) -> CancelDataRepositoryTaskResponse:
        r"""Cancels an existing Amazon FSx for Lustre data repository task if that task is in either the <code>PENDING</code> or <code>EXECUTING</code> state. When you cancel a task, Amazon FSx does the following. <ul> <li> Any files that FSx has already exported are not reverted. </li> <li> FSx continues to export any files that are "in-flight" when the cancel operation is received. </li> <li> FSx does not export any files that have not yet been exported. </li> </ul>

        :param self:
        :param TaskId:  Specifies the data repository task to cancel.<br/>
        :return: TaskId:  The ID of the task being canceled.<br/>Lifecycle:  The lifecycle status of the data repository task, as follows: <ul> <li>  <code>PENDING</code> - Amazon FSx has not started the task. </li> <li>  <code>EXECUTING</code> - Amazon FSx is processing the task. </li> <li>  <code>FAILED</code> - Amazon FSx was not able to complete the task. For example, there may be files the task failed to process. The <a>DataRepositoryTaskFailureDetails</a> property provides more information about task failures. </li> <li>  <code>SUCCEEDED</code> - FSx completed the task successfully. </li> <li>  <code>CANCELED</code> - Amazon FSx canceled the task and it did not complete. </li> <li>  <code>CANCELING</code> - FSx is in process of canceling the task. </li> </ul><br/>        """
        pass

    def copy_backup(self, SourceBackupId: str, ClientRequestToken: str=None, SourceRegion: str=None, KmsKeyId: str=None, CopyTags: Flag=None, Tags: List[Tag]=None) -> CopyBackupResponse:
        r"""Copies an existing backup within the same AWS account to another Region (cross-Region copy) or within the same Region (in-Region copy). You can have up to five backup copy requests in progress to a single destination Region per account. You can use cross-Region backup copies for cross-region disaster recovery. You periodically take backups and copy them to another Region so that in the event of a disaster in the primary Region, you can restore from backup and recover availability quickly in the other Region. You can make cross-Region copies only within your AWS partition.  You can also use backup copies to clone your file data set to another Region or within the same Region. You can use the <code>SourceRegion</code> parameter to specify the AWS Region from which the backup will be copied. For example, if you make the call from the <code>us-west-1</code> Region and want to copy a backup from the <code>us-east-2</code> Region, you specify <code>us-east-2</code> in the <code>SourceRegion</code> parameter to make a cross-Region copy. If you don't specify a Region, the backup copy is created in the same Region where the request is sent from (in-Region copy). For more information on creating backup copies, see <a href="https://docs.aws.amazon.com/fsx/latest/WindowsGuide/using-backups.html#copy-backups"> Copying backups</a> in the <i>Amazon FSx for Windows User Guide</i> and <a href="https://docs.aws.amazon.com/fsx/latest/LustreGuide/using-backups-fsx.html#copy-backups">Copying backups</a> in the <i>Amazon FSx for Lustre User Guide</i>.

        :param self:
        :param Tags:  A list of <code>Tag</code> values, with a maximum of 50 elements.<br/>CopyTags:  A boolean flag indicating whether tags from the source backup should be copied to the backup copy. This value defaults to false. If you set <code>CopyTags</code> to true and the source backup has existing tags, you can use the <code>Tags</code> parameter to create new tags, provided that the sum of the source backup tags and the new tags doesn't exceed 50. Both sets of tags are merged. If there are tag conflicts (for example, two tags with the same key but different values), the tags created with the <code>Tags</code> parameter take precedence.<br/>KmsKeyId:  The ID of the AWS Key Management Service (AWS KMS) key used to encrypt the file system's data for Amazon FSx for Windows File Server file systems and Amazon FSx for Lustre <code>PERSISTENT_1</code> file systems at rest. In either case, if not specified, the Amazon FSx managed key is used. The Amazon FSx for Lustre <code>SCRATCH_1</code> and <code>SCRATCH_2</code> file systems are always encrypted at rest using Amazon FSx managed keys. For more information, see <a href="https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html">Encrypt</a> in the <i>AWS Key Management Service API Reference</i>.<br/>SourceRegion:  The source AWS Region of the backup. Specifies the AWS Region from which the backup is being copied. The source and destination Regions must be in the same AWS partition. If you don't specify a Region, it defaults to the Region where the request is sent from (in-Region copy).<br/>SourceBackupId:  The ID of the source backup. Specifies the ID of the backup that is being copied.<br/>ClientRequestToken:  (Optional) An idempotency token for resource creation, in a string of up to 64 ASCII characters. This token is automatically filled on your behalf when you use the AWS Command Line Interface (AWS CLI) or an AWS SDK.<br/>
        :return: Backup:  A backup of an Amazon FSx file system.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceBackupRegion</i> The source Region of the backup. Specifies the Region from where this backup is copied.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceBackupId</i> The ID of the source backup. Specifies the backup you are copying.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> An AWS account ID. This ID is a 12-digit number that you use to construct Amazon Resource Names (ARNs) for resources.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DirectoryInformation</i> The configuration of the self-managed Microsoft Active Directory (AD) to which the Windows File Server instance is joined.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DirectoryInformation</b>: The configuration of the self-managed Microsoft Active Directory (AD) to which the Windows File Server instance is joined.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FileSystem</i> Metadata of the file system associated with the backup. This metadata is persisted even if the file system is deleted.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>FileSystem</b>: Metadata of the file system associated with the backup. This metadata is persisted even if the file system is deleted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> Tags associated with a particular file system.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceARN</i> The Amazon Resource Name (ARN) for the backup resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The ID of the AWS Key Management Service (AWS KMS) key used to encrypt the backup of the Amazon FSx file system's data at rest. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The time when a particular backup was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProgressPercent</i> The current percent of progress of an asynchronous task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of the file system backup.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FailureDetails</i> Details explaining any failures that occur when creating a backup.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>FailureDetails</b>: Details explaining any failures that occur when creating a backup.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Lifecycle</i> The lifecycle status of the backup. <ul> <li>  <code>AVAILABLE</code> - The backup is fully available. </li> <li>  <code>PENDING</code> - For user-initiated backups on Lustre file systems only; Amazon FSx has not started creating the backup. </li> <li>  <code>CREATING</code> - Amazon FSx is creating the backup. </li> <li>  <code>TRANSFERRING</code> - For user-initiated backups on Lustre file systems only; Amazon FSx is transferring the backup to S3. </li> <li>  <code>COPYING</code> - Amazon FSx is copying the backup. </li> <li>  <code>DELETED</code> - Amazon FSx deleted the backup and it is no longer available. </li> <li>  <code>FAILED</code> - Amazon FSx could not complete the backup. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupId</i> The ID of the backup.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> A message describing the backup creation failure.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Lifecycle</i> The lifecycle status of the file system, following are the possible values and what they mean: <ul> <li>  <code>AVAILABLE</code> - The file system is in a healthy state, and is reachable and available for use. </li> <li>  <code>CREATING</code> - Amazon FSx is creating the new file system. </li> <li>  <code>DELETING</code> - Amazon FSx is deleting an existing file system. </li> <li>  <code>FAILED</code> - An existing file system has experienced an unrecoverable failure. When creating a new file system, Amazon FSx was unable to create the file system. </li> <li>  <code>MISCONFIGURED</code> indicates that the file system is in a failed but recoverable state. </li> <li>  <code>UPDATING</code> indicates that the file system is undergoing a customer initiated update. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FileSystemType</i> The type of Amazon FSx file system, either <code>LUSTRE</code> or <code>WINDOWS</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FileSystemId</i> The system-generated, unique 17-digit ID of the file system.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The time that the file system was created, in seconds (since 1970-01-01T00:00:00Z), also known as Unix time.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> The AWS account that created the file system. If the file system was created by an AWS Identity and Access Management (IAM) user, the AWS account to which the IAM user belongs is the owner.<br/>A structure providing details of any failures that occur when creating the file system has failed.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>FailureDetails</b>: A structure providing details of any failures that occur when creating the file system has failed.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceARN</i> The Amazon Resource Name (ARN) for a given resource. ARNs uniquely identify AWS resources. We require an ARN when you need to specify a resource unambiguously across all of AWS. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a> in the <i>AWS General Reference</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ActiveDirectoryId</i> The ID of the AWS Managed Microsoft Active Directory instance to which the file system is joined.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainName</i> The fully qualified domain name of the self-managed AD directory.<br/>        """
        pass

    def create_backup(self, FileSystemId: str, ClientRequestToken: str=None, Tags: List[Tag]=None) -> CreateBackupResponse:
        r"""Creates a backup of an existing Amazon FSx file system. Creating regular backups for your file system is a best practice, enabling you to restore a file system from a backup if an issue arises with the original file system. For Amazon FSx for Lustre file systems, you can create a backup only for file systems with the following configuration: <ul> <li> a Persistent deployment type </li> <li> is <i>not</i> linked to a data respository. </li> </ul> For more information about backing up Amazon FSx for Lustre file systems, see <a href="https://docs.aws.amazon.com/fsx/latest/LustreGuide/using-backups-fsx.html">Working with FSx for Lustre backups</a>. For more information about backing up Amazon FSx for Windows file systems, see <a href="https://docs.aws.amazon.com/fsx/latest/WindowsGuide/using-backups.html">Working with FSx for Windows backups</a>. If a backup with the specified client request token exists, and the parameters match, this operation returns the description of the existing backup. If a backup specified client request token exists, and the parameters don't match, this operation returns <code>IncompatibleParameterError</code>. If a backup with the specified client request token doesn't exist, <code>CreateBackup</code> does the following:  <ul> <li> Creates a new Amazon FSx backup with an assigned ID, and an initial lifecycle state of <code>CREATING</code>. </li> <li> Returns the description of the backup. </li> </ul> By using the idempotent operation, you can retry a <code>CreateBackup</code> operation without the risk of creating an extra backup. This approach can be useful when an initial call fails in a way that makes it unclear whether a backup was created. If you use the same client request token and the initial call created a backup, the operation returns a successful result because all the parameters are the same. The <code>CreateBackup</code> operation returns while the backup's lifecycle state is still <code>CREATING</code>. You can check the backup creation status by calling the <a>DescribeBackups</a> operation, which returns the backup state along with other information.

        :param self:
        :param Tags:  (Optional) The tags to apply to the backup at backup creation. The key value of the <code>Name</code> tag appears in the console as the backup name. If you have set <code>CopyTagsToBackups</code> to true, and you specify one or more tags using the <code>CreateBackup</code> action, no existing file system tags are copied from the file system to the backup.<br/>ClientRequestToken:  (Optional) A string of up to 64 ASCII characters that Amazon FSx uses to ensure idempotent creation. This string is automatically filled on your behalf when you use the AWS Command Line Interface (AWS CLI) or an AWS SDK.<br/>FileSystemId:  The ID of the file system to back up.<br/>
        :return: Backup:  A description of the backup.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceBackupRegion</i> The source Region of the backup. Specifies the Region from where this backup is copied.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceBackupId</i> The ID of the source backup. Specifies the backup you are copying.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> An AWS account ID. This ID is a 12-digit number that you use to construct Amazon Resource Names (ARNs) for resources.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DirectoryInformation</i> The configuration of the self-managed Microsoft Active Directory (AD) to which the Windows File Server instance is joined.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DirectoryInformation</b>: The configuration of the self-managed Microsoft Active Directory (AD) to which the Windows File Server instance is joined.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FileSystem</i> Metadata of the file system associated with the backup. This metadata is persisted even if the file system is deleted.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>FileSystem</b>: Metadata of the file system associated with the backup. This metadata is persisted even if the file system is deleted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> Tags associated with a particular file system.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceARN</i> The Amazon Resource Name (ARN) for the backup resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The ID of the AWS Key Management Service (AWS KMS) key used to encrypt the backup of the Amazon FSx file system's data at rest. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The time when a particular backup was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProgressPercent</i> The current percent of progress of an asynchronous task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of the file system backup.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FailureDetails</i> Details explaining any failures that occur when creating a backup.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>FailureDetails</b>: Details explaining any failures that occur when creating a backup.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Lifecycle</i> The lifecycle status of the backup. <ul> <li>  <code>AVAILABLE</code> - The backup is fully available. </li> <li>  <code>PENDING</code> - For user-initiated backups on Lustre file systems only; Amazon FSx has not started creating the backup. </li> <li>  <code>CREATING</code> - Amazon FSx is creating the backup. </li> <li>  <code>TRANSFERRING</code> - For user-initiated backups on Lustre file systems only; Amazon FSx is transferring the backup to S3. </li> <li>  <code>COPYING</code> - Amazon FSx is copying the backup. </li> <li>  <code>DELETED</code> - Amazon FSx deleted the backup and it is no longer available. </li> <li>  <code>FAILED</code> - Amazon FSx could not complete the backup. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupId</i> The ID of the backup.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> A message describing the backup creation failure.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Lifecycle</i> The lifecycle status of the file system, following are the possible values and what they mean: <ul> <li>  <code>AVAILABLE</code> - The file system is in a healthy state, and is reachable and available for use. </li> <li>  <code>CREATING</code> - Amazon FSx is creating the new file system. </li> <li>  <code>DELETING</code> - Amazon FSx is deleting an existing file system. </li> <li>  <code>FAILED</code> - An existing file system has experienced an unrecoverable failure. When creating a new file system, Amazon FSx was unable to create the file system. </li> <li>  <code>MISCONFIGURED</code> indicates that the file system is in a failed but recoverable state. </li> <li>  <code>UPDATING</code> indicates that the file system is undergoing a customer initiated update. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FileSystemType</i> The type of Amazon FSx file system, either <code>LUSTRE</code> or <code>WINDOWS</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FileSystemId</i> The system-generated, unique 17-digit ID of the file system.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The time that the file system was created, in seconds (since 1970-01-01T00:00:00Z), also known as Unix time.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> The AWS account that created the file system. If the file system was created by an AWS Identity and Access Management (IAM) user, the AWS account to which the IAM user belongs is the owner.<br/>A structure providing details of any failures that occur when creating the file system has failed.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>FailureDetails</b>: A structure providing details of any failures that occur when creating the file system has failed.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceARN</i> The Amazon Resource Name (ARN) for a given resource. ARNs uniquely identify AWS resources. We require an ARN when you need to specify a resource unambiguously across all of AWS. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a> in the <i>AWS General Reference</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ActiveDirectoryId</i> The ID of the AWS Managed Microsoft Active Directory instance to which the file system is joined.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainName</i> The fully qualified domain name of the self-managed AD directory.<br/>        """
        pass

    def create_data_repository_task(self, Report: CompletionReport, FileSystemId: str, Type: str, Paths: List[DataRepositoryTaskPath]=None, ClientRequestToken: str=None, Tags: List[Tag]=None) -> CreateDataRepositoryTaskResponse:
        r"""Creates an Amazon FSx for Lustre data repository task. You use data repository tasks to perform bulk operations between your Amazon FSx file system and its linked data repository. An example of a data repository task is exporting any data and metadata changes, including POSIX metadata, to files, directories, and symbolic links (symlinks) from your FSx file system to its linked data repository. A <code>CreateDataRepositoryTask</code> operation will fail if a data repository is not linked to the FSx file system. To learn more about data repository tasks, see <a href="https://docs.aws.amazon.com/fsx/latest/LustreGuide/data-repository-tasks.html">Data Repository Tasks</a>. To learn more about linking a data repository to your file system, see <a href="https://docs.aws.amazon.com/fsx/latest/LustreGuide/create-fs-linked-data-repo.html">Linking your file system to an S3 bucket</a>.

        :param self:
        :param Tags:  A list of <code>Tag</code> values, with a maximum of 50 elements.<br/>ClientRequestToken:  (Optional) An idempotency token for resource creation, in a string of up to 64 ASCII characters. This token is automatically filled on your behalf when you use the AWS Command Line Interface (AWS CLI) or an AWS SDK.<br/>Report:  Defines whether or not Amazon FSx provides a CompletionReport once the task has completed. A CompletionReport provides a detailed report on the files that Amazon FSx processed that meet the criteria specified by the <code>Scope</code> parameter. For more information, see <a href="https://docs.aws.amazon.com/fsx/latest/LustreGuide/task-completion-report.html">Working with Task Completion Reports</a>.:<br/>FileSystemId:  The globally unique ID of the file system, assigned by Amazon FSx.<br/>Paths:  (Optional) The path or paths on the Amazon FSx file system to use when the data repository task is processed. The default path is the file system root directory. The paths you provide need to be relative to the mount point of the file system. If the mount point is <code>/mnt/fsx</code> and <code>/mnt/fsx/path1</code> is a directory or file on the file system you want to export, then the path to provide is <code>path1</code>. If a path that you provide isn't valid, the task fails.<br/>Type:  Specifies the type of data repository task to create.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Scope</i> Required if <code>Enabled</code> is set to <code>true</code>. Specifies the scope of the <code>CompletionReport</code>; <code>FAILED_FILES_ONLY</code> is the only scope currently supported. When <code>Scope</code> is set to <code>FAILED_FILES_ONLY</code>, the <code>CompletionReport</code> only contains information about files that the data repository task failed to process.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Format</i> Required if <code>Enabled</code> is set to <code>true</code>. Specifies the format of the <code>CompletionReport</code>. <code>REPORT_CSV_20191124</code> is the only format currently supported. When <code>Format</code> is set to <code>REPORT_CSV_20191124</code>, the <code>CompletionReport</code> is provided in CSV format, and is delivered to <code>{path}/task-{id}/failures.csv</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Path</i> Required if <code>Enabled</code> is set to <code>true</code>. Specifies the location of the report on the file system's linked S3 data repository. An absolute path that defines where the completion report will be stored in the destination location. The <code>Path</code> you provide must be located within the file system’s ExportPath. An example <code>Path</code> value is "s3://myBucket/myExportPath/optionalPrefix". The report provides the following information for each file in the report: FilePath, FileStatus, and ErrorCode. To learn more about a file system's <code>ExportPath</code>, see . <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Set <code>Enabled</code> to <code>True</code> to generate a <code>CompletionReport</code> when the task completes. If set to <code>true</code>, then you need to provide a report <code>Scope</code>, <code>Path</code>, and <code>Format</code>. Set <code>Enabled</code> to <code>False</code> if you do not want a <code>CompletionReport</code> generated when the task completes.<br/>
        :return: DataRepositoryTask:  The description of the data repository task that you just created.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Report</i> Provides a report detailing the data repository task results of the files processed that match the criteria specified in the report <code>Scope</code> parameter. FSx delivers the report to the file system's linked data repository in Amazon S3, using the path specified in the report <code>Path</code> parameter. You can specify whether or not a report gets generated for a task using the <code>Enabled</code> parameter.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Report</b>: Provides a report detailing the data repository task results of the files processed that match the criteria specified in the report <code>Scope</code> parameter. FSx delivers the report to the file system's linked data repository in Amazon S3, using the path specified in the report <code>Path</code> parameter. You can specify whether or not a report gets generated for a task using the <code>Enabled</code> parameter.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Provides the status of the number of files that the task has processed successfully and failed to process.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Status</b>: Provides the status of the number of files that the task has processed successfully and failed to process.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FailureDetails</i> Failure message describing why the task failed, it is populated only when <code>Lifecycle</code> is set to <code>FAILED</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>FailureDetails</b>: Failure message describing why the task failed, it is populated only when <code>Lifecycle</code> is set to <code>FAILED</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Paths</i> An array of paths on the Amazon FSx for Lustre file system that specify the data for the data repository task to process. For example, in an EXPORT_TO_REPOSITORY task, the paths specify which data to export to the linked data repository. (Default) If <code>Paths</code> is not specified, Amazon FSx uses the file system root directory.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FileSystemId</i> The globally unique ID of the file system, assigned by Amazon FSx.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> A list of <code>Tag</code> values, with a maximum of 50 elements.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceARN</i> The Amazon Resource Name (ARN) for a given resource. ARNs uniquely identify AWS resources. We require an ARN when you need to specify a resource unambiguously across all of AWS. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a> in the <i>AWS General Reference</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndTime</i> The time that Amazon FSx completed processing the task, populated after the task is complete.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StartTime</i> The time that Amazon FSx began processing the task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The time that the resource was created, in seconds (since 1970-01-01T00:00:00Z), also known as Unix time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of data repository task; EXPORT_TO_REPOSITORY is the only type currently supported.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Lifecycle</i> The lifecycle status of the data repository task, as follows: <ul> <li>  <code>PENDING</code> - Amazon FSx has not started the task. </li> <li>  <code>EXECUTING</code> - Amazon FSx is processing the task. </li> <li>  <code>FAILED</code> - Amazon FSx was not able to complete the task. For example, there may be files the task failed to process. The <a>DataRepositoryTaskFailureDetails</a> property provides more information about task failures. </li> <li>  <code>SUCCEEDED</code> - FSx completed the task successfully. </li> <li>  <code>CANCELED</code> - Amazon FSx canceled the task and it did not complete. </li> <li>  <code>CANCELING</code> - FSx is in process of canceling the task. </li> </ul> <note> You cannot delete an FSx for Lustre file system if there are data repository tasks for the file system in the <code>PENDING</code> or <code>EXECUTING</code> states. Please retry when the data repository task is finished (with a status of <code>CANCELED</code>, <code>SUCCEEDED</code>, or <code>FAILED</code>). You can use the DescribeDataRepositoryTask action to monitor the task status. Contact the FSx team if you need to delete your file system immediately. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TaskId</i> The system-generated, unique 17-digit ID of the data repository task.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> A detailed error message.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdatedTime</i> The time at which the task status was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FailedCount</i> A running total of the number of files that the task failed to process.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SucceededCount</i> A running total of the number of files that the task has successfully processed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalCount</i> The total number of files that the task will process. While a task is executing, the sum of <code>SucceededCount</code> plus <code>FailedCount</code> may not equal <code>TotalCount</code>. When the task is complete, <code>TotalCount</code> equals the sum of <code>SucceededCount</code> plus <code>FailedCount</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Scope</i> Required if <code>Enabled</code> is set to <code>true</code>. Specifies the scope of the <code>CompletionReport</code>; <code>FAILED_FILES_ONLY</code> is the only scope currently supported. When <code>Scope</code> is set to <code>FAILED_FILES_ONLY</code>, the <code>CompletionReport</code> only contains information about files that the data repository task failed to process.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Format</i> Required if <code>Enabled</code> is set to <code>true</code>. Specifies the format of the <code>CompletionReport</code>. <code>REPORT_CSV_20191124</code> is the only format currently supported. When <code>Format</code> is set to <code>REPORT_CSV_20191124</code>, the <code>CompletionReport</code> is provided in CSV format, and is delivered to <code>{path}/task-{id}/failures.csv</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Path</i> Required if <code>Enabled</code> is set to <code>true</code>. Specifies the location of the report on the file system's linked S3 data repository. An absolute path that defines where the completion report will be stored in the destination location. The <code>Path</code> you provide must be located within the file system’s ExportPath. An example <code>Path</code> value is "s3://myBucket/myExportPath/optionalPrefix". The report provides the following information for each file in the report: FilePath, FileStatus, and ErrorCode. To learn more about a file system's <code>ExportPath</code>, see . <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Set <code>Enabled</code> to <code>True</code> to generate a <code>CompletionReport</code> when the task completes. If set to <code>true</code>, then you need to provide a report <code>Scope</code>, <code>Path</code>, and <code>Format</code>. Set <code>Enabled</code> to <code>False</code> if you do not want a <code>CompletionReport</code> generated when the task completes.<br/>        """
        pass

    def create_file_system(self, SubnetIds: List[SubnetId], StorageCapacity: int, FileSystemType: str, ClientRequestToken: str=None, StorageType: str=None, SecurityGroupIds: List[SecurityGroupId]=None, Tags: List[Tag]=None, KmsKeyId: str=None, WindowsConfiguration: CreateFileSystemWindowsConfiguration=None, LustreConfiguration: CreateFileSystemLustreConfiguration=None) -> CreateFileSystemResponse:
        r"""Creates a new, empty Amazon FSx file system. If a file system with the specified client request token exists and the parameters match, <code>CreateFileSystem</code> returns the description of the existing file system. If a file system specified client request token exists and the parameters don't match, this call returns <code>IncompatibleParameterError</code>. If a file system with the specified client request token doesn't exist, <code>CreateFileSystem</code> does the following:  <ul> <li> Creates a new, empty Amazon FSx file system with an assigned ID, and an initial lifecycle state of <code>CREATING</code>. </li> <li> Returns the description of the file system. </li> </ul> This operation requires a client request token in the request that Amazon FSx uses to ensure idempotent creation. This means that calling the operation multiple times with the same client request token has no effect. By using the idempotent operation, you can retry a <code>CreateFileSystem</code> operation without the risk of creating an extra file system. This approach can be useful when an initial call fails in a way that makes it unclear whether a file system was created. Examples are if a transport level timeout occurred, or your connection was reset. If you use the same client request token and the initial call created a file system, the client receives success as long as the parameters are the same. <note> The <code>CreateFileSystem</code> call returns while the file system's lifecycle state is still <code>CREATING</code>. You can check the file-system creation status by calling the <a>DescribeFileSystems</a> operation, which returns the file system state along with other information. </note>

        :param self:
        :param LustreConfiguration:  The Lustre configuration for the file system being created. :<br/>WindowsConfiguration:  The Microsoft Windows configuration for the file system being created. :<br/>KmsKeyId:  The ID of the AWS Key Management Service (AWS KMS) key used to encrypt the file system's data for Amazon FSx for Windows File Server file systems and Amazon FSx for Lustre <code>PERSISTENT_1</code> file systems at rest. In either case, if not specified, the Amazon FSx managed key is used. The Amazon FSx for Lustre <code>SCRATCH_1</code> and <code>SCRATCH_2</code> file systems are always encrypted at rest using Amazon FSx managed keys. For more information, see <a href="https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html">Encrypt</a> in the <i>AWS Key Management Service API Reference</i>.<br/>Tags:  The tags to apply to the file system being created. The key value of the <code>Name</code> tag appears in the console as the file system name.<br/>SecurityGroupIds:  A list of IDs specifying the security groups to apply to all network interfaces created for file system access. This list isn't returned in later requests to describe the file system.<br/>SubnetIds:  Specifies the IDs of the subnets that the file system will be accessible from. For Windows <code>MULTI_AZ_1</code> file system deployment types, provide exactly two subnet IDs, one for the preferred file server and one for the standby file server. You specify one of these subnets as the preferred subnet using the <code>WindowsConfiguration &gt; PreferredSubnetID</code> property. For more information, see <a href="https://docs.aws.amazon.com/fsx/latest/WindowsGuide/high-availability-multiAZ.html"> Availability and durability: Single-AZ and Multi-AZ file systems</a>. For Windows <code>SINGLE_AZ_1</code> and <code>SINGLE_AZ_2</code> file system deployment types and Lustre file systems, provide exactly one subnet ID. The file server is launched in that subnet's Availability Zone.<br/>StorageType:  Sets the storage type for the file system you're creating. Valid values are <code>SSD</code> and <code>HDD</code>. <ul> <li> Set to <code>SSD</code> to use solid state drive storage. SSD is supported on all Windows and Lustre deployment types. </li> <li> Set to <code>HDD</code> to use hard disk drive storage. HDD is supported on <code>SINGLE_AZ_2</code> and <code>MULTI_AZ_1</code> Windows file system deployment types, and on <code>PERSISTENT</code> Lustre file system deployment types.  </li> </ul>  Default value is <code>SSD</code>. For more information, see <a href="https://docs.aws.amazon.com/fsx/latest/WindowsGuide/optimize-fsx-costs.html#storage-type-options"> Storage Type Options</a> in the <i>Amazon FSx for Windows User Guide</i> and <a href="https://docs.aws.amazon.com/fsx/latest/LustreGuide/what-is.html#storage-options">Multiple Storage Options</a> in the <i>Amazon FSx for Lustre User Guide</i>. <br/>StorageCapacity:  Sets the storage capacity of the file system that you're creating. For Lustre file systems: <ul> <li> For <code>SCRATCH_2</code> and <code>PERSISTENT_1 SSD</code> deployment types, valid values are 1200 GiB, 2400 GiB, and increments of 2400 GiB. </li> <li> For <code>PERSISTENT HDD</code> file systems, valid values are increments of 6000 GiB for 12 MB/s/TiB file systems and increments of 1800 GiB for 40 MB/s/TiB file systems. </li> <li> For <code>SCRATCH_1</code> deployment type, valid values are 1200 GiB, 2400 GiB, and increments of 3600 GiB. </li> </ul> For Windows file systems: <ul> <li> If <code>StorageType=SSD</code>, valid values are 32 GiB - 65,536 GiB (64 TiB). </li> <li> If <code>StorageType=HDD</code>, valid values are 2000 GiB - 65,536 GiB (64 TiB). </li> </ul><br/>FileSystemType:  The type of Amazon FSx file system to create, either <code>WINDOWS</code> or <code>LUSTRE</code>.<br/>ClientRequestToken:  A string of up to 64 ASCII characters that Amazon FSx uses to ensure idempotent creation. This string is automatically filled on your behalf when you use the AWS Command Line Interface (AWS CLI) or an AWS SDK.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AuditLogConfiguration</i> The configuration that Amazon FSx for Windows File Server uses to audit and log user accesses of files, folders, and file shares on the Amazon FSx for Windows File Server file system.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AuditLogConfiguration</b>: The configuration that Amazon FSx for Windows File Server uses to audit and log user accesses of files, folders, and file shares on the Amazon FSx for Windows File Server file system.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Aliases</i> An array of one or more DNS alias names that you want to associate with the Amazon FSx file system. Aliases allow you to use existing DNS names to access the data in your Amazon FSx file system. You can associate up to 50 aliases with a file system at any time. You can associate additional DNS aliases after you create the file system using the AssociateFileSystemAliases operation. You can remove DNS aliases from the file system after it is created using the DisassociateFileSystemAliases operation. You only need to specify the alias name in the request payload. For more information, see <a href="https://docs.aws.amazon.com/fsx/latest/WindowsGuide/managing-dns-aliases.html">Working with DNS Aliases</a> and <a href="https://docs.aws.amazon.com/fsx/latest/WindowsGuide/walkthrough05-file-system-custom-CNAME.html">Walkthrough 5: Using DNS aliases to access your file system</a>, including additional steps you must take to be able to access your file system using a DNS alias. An alias name has to meet the following requirements: <ul> <li> Formatted as a fully-qualified domain name (FQDN), <code>hostname.domain</code>, for example, <code>accounting.example.com</code>. </li> <li> Can contain alphanumeric characters, the underscore (_), and the hyphen (-). </li> <li> Cannot start or end with a hyphen. </li> <li> Can start with a numeric. </li> </ul> For DNS alias names, Amazon FSx stores alphabetic characters as lowercase letters (a-z), regardless of how you specify them: as uppercase letters, lowercase letters, or the corresponding letters in escape codes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CopyTagsToBackups</i> A boolean flag indicating whether tags for the file system should be copied to backups. This value defaults to false. If it's set to true, all tags for the file system are copied to all automatic and user-initiated backups where the user doesn't specify tags. If this value is true, and you specify one or more tags, only the specified tags are copied to backups. If you specify one or more tags when creating a user-initiated backup, no tags are copied from the file system, regardless of this value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomaticBackupRetentionDays</i> The number of days to retain automatic backups. The default is to retain backups for 7 days. Setting this value to 0 disables the creation of automatic backups. The maximum retention period for backups is 90 days.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DailyAutomaticBackupStartTime</i> The preferred time to take daily automatic backups, formatted HH:MM in the UTC time zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WeeklyMaintenanceStartTime</i> The preferred start time to perform weekly maintenance, formatted d:HH:MM in the UTC time zone, where d is the weekday number, from 1 through 7, beginning with Monday and ending with Sunday.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ThroughputCapacity</i> The throughput of an Amazon FSx file system, measured in megabytes per second, in 2 to the <i>n</i>th increments, between 2^3 (8) and 2^11 (2048).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredSubnetId</i> Required when <code>DeploymentType</code> is set to <code>MULTI_AZ_1</code>. This specifies the subnet in which you want the preferred file server to be located. For in-AWS applications, we recommend that you launch your clients in the same Availability Zone (AZ) as your preferred file server to reduce cross-AZ data transfer costs and minimize latency. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeploymentType</i> Specifies the file system deployment type, valid values are the following: <ul> <li>  <code>MULTI_AZ_1</code> - Deploys a high availability file system that is configured for Multi-AZ redundancy to tolerate temporary Availability Zone (AZ) unavailability. You can only deploy a Multi-AZ file system in AWS Regions that have a minimum of three Availability Zones. Also supports HDD storage type </li> <li>  <code>SINGLE_AZ_1</code> - (Default) Choose to deploy a file system that is configured for single AZ redundancy. </li> <li>  <code>SINGLE_AZ_2</code> - The latest generation Single AZ file system. Specifies a file system that is configured for single AZ redundancy and supports HDD storage type. </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/fsx/latest/WindowsGuide/high-availability-multiAZ.html"> Availability and Durability: Single-AZ and Multi-AZ File Systems</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SelfManagedActiveDirectoryConfiguration</i> The configuration that Amazon FSx uses to join the Windows File Server instance to your self-managed (including on-premises) Microsoft Active Directory (AD) directory. For more information, see <a href="https://docs.aws.amazon.com/fsx/latest/WindowsGuide/self-managed-AD.html"> Using Amazon FSx with your self-managed Microsoft Active Directory</a>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SelfManagedActiveDirectoryConfiguration</b>: The configuration that Amazon FSx uses to join the Windows File Server instance to your self-managed (including on-premises) Microsoft Active Directory (AD) directory. For more information, see <a href="https://docs.aws.amazon.com/fsx/latest/WindowsGuide/self-managed-AD.html"> Using Amazon FSx with your self-managed Microsoft Active Directory</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActiveDirectoryId</i> The ID for an existing AWS Managed Microsoft Active Directory (AD) instance that the file system should join when it's created.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DnsIps</i> A list of up to two IP addresses of DNS servers or domain controllers in the self-managed AD directory. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Password</i> The password for the service account on your self-managed AD domain that Amazon FSx will use to join to your AD domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UserName</i> The user name for the service account on your self-managed AD domain that Amazon FSx will use to join to your AD domain. This account must have the permission to join computers to the domain in the organizational unit provided in <code>OrganizationalUnitDistinguishedName</code>, or in the default location of your AD domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FileSystemAdministratorsGroup</i> (Optional) The name of the domain group whose members are granted administrative privileges for the file system. Administrative privileges include taking ownership of files and folders, setting audit controls (audit ACLs) on files and folders, and administering the file system remotely by using the FSx Remote PowerShell. The group that you specify must already exist in your domain. If you don't provide one, your AD domain's Domain Admins group is used.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OrganizationalUnitDistinguishedName</i> (Optional) The fully qualified distinguished name of the organizational unit within your self-managed AD directory that the Windows File Server instance will join. Amazon FSx only accepts OU as the direct parent of the file system. An example is <code>OU=FSx,DC=yourdomain,DC=corp,DC=com</code>. To learn more, see <a href="https://tools.ietf.org/html/rfc2253">RFC 2253</a>. If none is provided, the FSx file system is created in the default location of your self-managed AD directory.  <important> Only Organizational Unit (OU) objects can be the direct parent of the file system that you're creating. </important><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainName</i> The fully qualified domain name of the self-managed AD directory, such as <code>corp.example.com</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AuditLogDestination</i> The Amazon Resource Name (ARN) that specifies the destination of the audit logs. The destination can be any Amazon CloudWatch Logs log group ARN or Amazon Kinesis Data Firehose delivery stream ARN, with the following requirements: <ul> <li> The destination ARN that you provide (either CloudWatch Logs log group or Kinesis Data Firehose delivery stream) must be in the same AWS partition, AWS region, and AWS account as your Amazon FSx file system. </li> <li> The name of the Amazon CloudWatch Logs log group must begin with the <code>/aws/fsx</code> prefix. The name of the Amazon Kinesis Data Firehouse delivery stream must begin with the <code>aws-fsx</code> prefix. </li> <li> If you do not provide a destination in <code>AuditLogDestination</code>, Amazon FSx will create and use a log stream in the CloudWatch Logs <code>/aws/fsx/windows</code> log group. </li> <li> If <code>AuditLogDestination</code> is provided and the resource does not exist, the request will fail with a <code>BadRequest</code> error. </li> <li> If <code>FileAccessAuditLogLevel</code> and <code>FileShareAccessAuditLogLevel</code> are both set to <code>DISABLED</code>, you cannot specify a destination in <code>AuditLogDestination</code>. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FileShareAccessAuditLogLevel</i> Sets which attempt type is logged by Amazon FSx for file share accesses. <ul> <li>  <code>SUCCESS_ONLY</code> - only successful attempts to access file shares are logged. </li> <li>  <code>FAILURE_ONLY</code> - only failed attempts to access file shares are logged. </li> <li>  <code>SUCCESS_AND_FAILURE</code> - both successful attempts and failed attempts to access file shares are logged. </li> <li>  <code>DISABLED</code> - access auditing of file shares is turned off. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FileAccessAuditLogLevel</i> Sets which attempt type is logged by Amazon FSx for file and folder accesses. <ul> <li>  <code>SUCCESS_ONLY</code> - only successful attempts to access files or folders are logged. </li> <li>  <code>FAILURE_ONLY</code> - only failed attempts to access files or folders are logged. </li> <li>  <code>SUCCESS_AND_FAILURE</code> - both successful attempts and failed attempts to access files or folders are logged. </li> <li>  <code>DISABLED</code> - access auditing of files and folders is turned off. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataCompressionType</i> Sets the data compression configuration for the file system. <code>DataCompressionType</code> can have the following values: <ul> <li>  <code>NONE</code> - (Default) Data compression is turned off when the file system is created. </li> <li>  <code>LZ4</code> - Data compression is turned on with the LZ4 algorithm. </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/fsx/latest/LustreGuide/data-compression.html">Lustre data compression</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DriveCacheType</i> The type of drive cache used by PERSISTENT_1 file systems that are provisioned with HDD storage devices. This parameter is required when storage type is HDD. Set to <code>READ</code>, improve the performance for frequently accessed files and allows 20% of the total storage capacity of the file system to be cached.  This parameter is required when <code>StorageType</code> is set to HDD.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CopyTagsToBackups</i> (Optional) Not available to use with file systems that are linked to a data repository. A boolean flag indicating whether tags for the file system should be copied to backups. The default value is false. If it's set to true, all file system tags are copied to all automatic and user-initiated backups when the user doesn't specify any backup-specific tags. If this value is true, and you specify one or more backup tags, only the specified tags are copied to backups. If you specify one or more tags when creating a user-initiated backup, no tags are copied from the file system, regardless of this value. For more information, see <a href="https://docs.aws.amazon.com/fsx/latest/LustreGuide/using-backups-fsx.html">Working with backups</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomaticBackupRetentionDays</i> The number of days to retain automatic backups. Setting this to 0 disables automatic backups. You can retain automatic backups for a maximum of 90 days. The default is 0.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DailyAutomaticBackupStartTime</i> A recurring daily time, in the format <code>HH:MM</code>. <code>HH</code> is the zero-padded hour of the day (0-23), and <code>MM</code> is the zero-padded minute of the hour. For example, <code>05:00</code> specifies 5 AM daily. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PerUnitStorageThroughput</i>  Required for the <code>PERSISTENT_1</code> deployment type, describes the amount of read and write throughput for each 1 tebibyte of storage, in MB/s/TiB. File system throughput capacity is calculated by multiplying ﬁle system storage capacity (TiB) by the PerUnitStorageThroughput (MB/s/TiB). For a 2.4 TiB ﬁle system, provisioning 50 MB/s/TiB of PerUnitStorageThroughput yields 120 MB/s of ﬁle system throughput. You pay for the amount of throughput that you provision.  Valid values for SSD storage: 50, 100, 200. Valid values for HDD storage: 12, 40.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoImportPolicy</i>  (Optional) When you create your file system, your existing S3 objects appear as file and directory listings. Use this property to choose how Amazon FSx keeps your file and directory listings up to date as you add or modify objects in your linked S3 bucket. <code>AutoImportPolicy</code> can have the following values: <ul> <li>  <code>NONE</code> - (Default) AutoImport is off. Amazon FSx only updates file and directory listings from the linked S3 bucket when the file system is created. FSx does not update file and directory listings for any new or changed objects after choosing this option. </li> <li>  <code>NEW</code> - AutoImport is on. Amazon FSx automatically imports directory listings of any new objects added to the linked S3 bucket that do not currently exist in the FSx file system.  </li> <li>  <code>NEW_CHANGED</code> - AutoImport is on. Amazon FSx automatically imports file and directory listings of any new objects added to the S3 bucket and any existing objects that are changed in the S3 bucket after you choose this option.  </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/fsx/latest/LustreGuide/autoimport-data-repo.html">Automatically import updates from your S3 bucket</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeploymentType</i>  Choose <code>SCRATCH_1</code> and <code>SCRATCH_2</code> deployment types when you need temporary storage and shorter-term processing of data. The <code>SCRATCH_2</code> deployment type provides in-transit encryption of data and higher burst throughput capacity than <code>SCRATCH_1</code>. Choose <code>PERSISTENT_1</code> deployment type for longer-term storage and workloads and encryption of data in transit. To learn more about deployment types, see <a href="https://docs.aws.amazon.com/fsx/latest/LustreGuide/lustre-deployment-types.html"> FSx for Lustre Deployment Options</a>. Encryption of data in-transit is automatically enabled when you access a <code>SCRATCH_2</code> or <code>PERSISTENT_1</code> file system from Amazon EC2 instances that <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/data- protection.html">support this feature</a>. (Default = <code>SCRATCH_1</code>)  Encryption of data in-transit for <code>SCRATCH_2</code> and <code>PERSISTENT_1</code> deployment types is supported when accessed from supported instance types in supported AWS Regions. To learn more, <a href="https://docs.aws.amazon.com/fsx/latest/LustreGuide/encryption-in-transit-fsxl.html">Encrypting Data in Transit</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImportedFileChunkSize</i> (Optional) For files imported from a data repository, this value determines the stripe count and maximum amount of data per file (in MiB) stored on a single physical disk. The maximum number of disks that a single file can be striped across is limited by the total number of disks that make up the file system. The default chunk size is 1,024 MiB (1 GiB) and can go as high as 512,000 MiB (500 GiB). Amazon S3 objects have a maximum size of 5 TB.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExportPath</i> (Optional) The path in Amazon S3 where the root of your Amazon FSx file system is exported. The path must use the same Amazon S3 bucket as specified in ImportPath. You can provide an optional prefix to which new and changed data is to be exported from your Amazon FSx for Lustre file system. If an <code>ExportPath</code> value is not provided, Amazon FSx sets a default export path, <code>s3://import-bucket/FSxLustre[creation-timestamp]</code>. The timestamp is in UTC format, for example <code>s3://import-bucket/FSxLustre20181105T222312Z</code>. The Amazon S3 export bucket must be the same as the import bucket specified by <code>ImportPath</code>. If you only specify a bucket name, such as <code>s3://import-bucket</code>, you get a 1:1 mapping of file system objects to S3 bucket objects. This mapping means that the input data in S3 is overwritten on export. If you provide a custom prefix in the export path, such as <code>s3://import-bucket/[custom-optional-prefix]</code>, Amazon FSx exports the contents of your file system to that export prefix in the Amazon S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImportPath</i> (Optional) The path to the Amazon S3 bucket (including the optional prefix) that you're using as the data repository for your Amazon FSx for Lustre file system. The root of your FSx for Lustre file system will be mapped to the root of the Amazon S3 bucket you select. An example is <code>s3://import-bucket/optional-prefix</code>. If you specify a prefix after the Amazon S3 bucket name, only object keys with that prefix are loaded into the file system.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WeeklyMaintenanceStartTime</i> (Optional) The preferred start time to perform weekly maintenance, formatted d:HH:MM in the UTC time zone, where d is the weekday number, from 1 through 7, beginning with Monday and ending with Sunday.<br/>
        :return: FileSystem:  The configuration of the file system that was created.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdministrativeActions</i> A list of administrative actions for the file system that are in process or waiting to be processed. Administrative actions describe changes to the Windows file system that you have initiated using the <code>UpdateFileSystem</code> action. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LustreConfiguration</i> The configuration for the Amazon FSx for Lustre file system.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>LustreConfiguration</b>: The configuration for the Amazon FSx for Lustre file system.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WindowsConfiguration</i> The configuration for this Microsoft Windows file system.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>WindowsConfiguration</b>: The configuration for this Microsoft Windows file system.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The tags to associate with the file system. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html">Tagging Your Amazon EC2 Resources</a> in the <i>Amazon EC2 User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceARN</i> The Amazon Resource Name (ARN) for the file system resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The ID of the AWS Key Management Service (AWS KMS) key used to encrypt the file system's data for Amazon FSx for Windows File Server file systems and persistent Amazon FSx for Lustre file systems at rest. In either case, if not specified, the Amazon FSx managed key is used. The scratch Amazon FSx for Lustre file systems are always encrypted at rest using Amazon FSx managed keys. For more information, see <a href="https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html">Encrypt</a> in the <i>AWS Key Management Service API Reference</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DNSName</i> The DNS name for the file system.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkInterfaceIds</i> The IDs of the elastic network interface from which a specific file system is accessible. The elastic network interface is automatically created in the same VPC that the Amazon FSx file system was created in. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html">Elastic Network Interfaces</a> in the <i>Amazon EC2 User Guide.</i>  For an Amazon FSx for Windows File Server file system, you can have one network interface ID. For an Amazon FSx for Lustre file system, you can have more than one.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetIds</i> Specifies the IDs of the subnets that the file system is accessible from. For Windows <code>MULTI_AZ_1</code> file system deployment type, there are two subnet IDs, one for the preferred file server and one for the standby file server. The preferred file server subnet identified in the <code>PreferredSubnetID</code> property. All other file systems have only one subnet ID. For Lustre file systems, and Single-AZ Windows file systems, this is the ID of the subnet that contains the endpoint for the file system. For <code>MULTI_AZ_1</code> Windows file systems, the endpoint for the file system is available in the <code>PreferredSubnetID</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The ID of the primary VPC for the file system.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageType</i> The storage type of the file system. Valid values are <code>SSD</code> and <code>HDD</code>. If set to <code>SSD</code>, the file system uses solid state drive storage. If set to <code>HDD</code>, the file system uses hard disk drive storage. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageCapacity</i> The storage capacity of the file system in gibibytes (GiB).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FailureDetails</i> A structure providing details of any failures that occur when creating the file system has failed.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>FailureDetails</b>: A structure providing details of any failures that occur when creating the file system has failed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Lifecycle</i> The lifecycle status of the file system, following are the possible values and what they mean: <ul> <li>  <code>AVAILABLE</code> - The file system is in a healthy state, and is reachable and available for use. </li> <li>  <code>CREATING</code> - Amazon FSx is creating the new file system. </li> <li>  <code>DELETING</code> - Amazon FSx is deleting an existing file system. </li> <li>  <code>FAILED</code> - An existing file system has experienced an unrecoverable failure. When creating a new file system, Amazon FSx was unable to create the file system. </li> <li>  <code>MISCONFIGURED</code> indicates that the file system is in a failed but recoverable state. </li> <li>  <code>UPDATING</code> indicates that the file system is undergoing a customer initiated update. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FileSystemType</i> The type of Amazon FSx file system, either <code>LUSTRE</code> or <code>WINDOWS</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FileSystemId</i> The system-generated, unique 17-digit ID of the file system.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The time that the file system was created, in seconds (since 1970-01-01T00:00:00Z), also known as Unix time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> The AWS account that created the file system. If the file system was created by an AWS Identity and Access Management (IAM) user, the AWS account to which the IAM user belongs is the owner.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> A message describing any failures that occurred during file system creation.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ActiveDirectoryId</i> The ID for an existing AWS Managed Microsoft Active Directory instance that the file system is joined to.<br/>The configuration of the self-managed Microsoft Active Directory (AD) directory to which the Windows File Server instance is joined.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SelfManagedActiveDirectoryConfiguration</b>: The configuration of the self-managed Microsoft Active Directory (AD) directory to which the Windows File Server instance is joined.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>WeeklyMaintenanceStartTime</i> The preferred start time to perform weekly maintenance, formatted d:HH:MM in the UTC time zone. d is the weekday number, from 1 through 7, beginning with Monday and ending with Sunday.<br/>The data repository configuration object for Lustre file systems returned in the response of the <code>CreateFileSystem</code> operation.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DataRepositoryConfiguration</b>: The data repository configuration object for Lustre file systems returned in the response of the <code>CreateFileSystem</code> operation.        """
        pass

    def create_file_system_from_backup(self, SubnetIds: List[SubnetId], BackupId: str, ClientRequestToken: str=None, SecurityGroupIds: List[SecurityGroupId]=None, Tags: List[Tag]=None, WindowsConfiguration: CreateFileSystemWindowsConfiguration=None, LustreConfiguration: CreateFileSystemLustreConfiguration=None, StorageType: str=None, KmsKeyId: str=None) -> CreateFileSystemFromBackupResponse:
        r"""Creates a new Amazon FSx file system from an existing Amazon FSx backup. If a file system with the specified client request token exists and the parameters match, this operation returns the description of the file system. If a client request token specified by the file system exists and the parameters don't match, this call returns <code>IncompatibleParameterError</code>. If a file system with the specified client request token doesn't exist, this operation does the following: <ul> <li> Creates a new Amazon FSx file system from backup with an assigned ID, and an initial lifecycle state of <code>CREATING</code>. </li> <li> Returns the description of the file system. </li> </ul> Parameters like Active Directory, default share name, automatic backup, and backup settings default to the parameters of the file system that was backed up, unless overridden. You can explicitly supply other settings. By using the idempotent operation, you can retry a <code>CreateFileSystemFromBackup</code> call without the risk of creating an extra file system. This approach can be useful when an initial call fails in a way that makes it unclear whether a file system was created. Examples are if a transport level timeout occurred, or your connection was reset. If you use the same client request token and the initial call created a file system, the client receives success as long as the parameters are the same. <note> The <code>CreateFileSystemFromBackup</code> call returns while the file system's lifecycle state is still <code>CREATING</code>. You can check the file-system creation status by calling the <a>DescribeFileSystems</a> operation, which returns the file system state along with other information. </note>

        :param self:
        :param KmsKeyId:  The ID of the AWS Key Management Service (AWS KMS) key used to encrypt the file system's data for Amazon FSx for Windows File Server file systems and Amazon FSx for Lustre <code>PERSISTENT_1</code> file systems at rest. In either case, if not specified, the Amazon FSx managed key is used. The Amazon FSx for Lustre <code>SCRATCH_1</code> and <code>SCRATCH_2</code> file systems are always encrypted at rest using Amazon FSx managed keys. For more information, see <a href="https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html">Encrypt</a> in the <i>AWS Key Management Service API Reference</i>.<br/>StorageType:  Sets the storage type for the Windows file system you're creating from a backup. Valid values are <code>SSD</code> and <code>HDD</code>. <ul> <li> Set to <code>SSD</code> to use solid state drive storage. Supported on all Windows deployment types. </li> <li> Set to <code>HDD</code> to use hard disk drive storage. Supported on <code>SINGLE_AZ_2</code> and <code>MULTI_AZ_1</code> Windows file system deployment types.  </li> </ul>  Default value is <code>SSD</code>.  <note> HDD and SSD storage types have different minimum storage capacity requirements. A restored file system's storage capacity is tied to the file system that was backed up. You can create a file system that uses HDD storage from a backup of a file system that used SSD storage only if the original SSD file system had a storage capacity of at least 2000 GiB.  </note><br/>LustreConfiguration:  The Lustre configuration for the file system being created. :<br/>WindowsConfiguration:  The configuration for this Microsoft Windows file system.:<br/>Tags:  The tags to be applied to the file system at file system creation. The key value of the <code>Name</code> tag appears in the console as the file system name.<br/>SecurityGroupIds:  A list of IDs for the security groups that apply to the specified network interfaces created for file system access. These security groups apply to all network interfaces. This value isn't returned in later DescribeFileSystem requests.<br/>SubnetIds:  Specifies the IDs of the subnets that the file system will be accessible from. For Windows <code>MULTI_AZ_1</code> file system deployment types, provide exactly two subnet IDs, one for the preferred file server and one for the standby file server. You specify one of these subnets as the preferred subnet using the <code>WindowsConfiguration &gt; PreferredSubnetID</code> property. For Windows <code>SINGLE_AZ_1</code> and <code>SINGLE_AZ_2</code> deployment types and Lustre file systems, provide exactly one subnet ID. The file server is launched in that subnet's Availability Zone.<br/>ClientRequestToken:  A string of up to 64 ASCII characters that Amazon FSx uses to ensure idempotent creation. This string is automatically filled on your behalf when you use the AWS Command Line Interface (AWS CLI) or an AWS SDK.<br/>BackupId:  The ID of the source backup. Specifies the backup you are copying.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AuditLogConfiguration</i> The configuration that Amazon FSx for Windows File Server uses to audit and log user accesses of files, folders, and file shares on the Amazon FSx for Windows File Server file system.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AuditLogConfiguration</b>: The configuration that Amazon FSx for Windows File Server uses to audit and log user accesses of files, folders, and file shares on the Amazon FSx for Windows File Server file system.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Aliases</i> An array of one or more DNS alias names that you want to associate with the Amazon FSx file system. Aliases allow you to use existing DNS names to access the data in your Amazon FSx file system. You can associate up to 50 aliases with a file system at any time. You can associate additional DNS aliases after you create the file system using the AssociateFileSystemAliases operation. You can remove DNS aliases from the file system after it is created using the DisassociateFileSystemAliases operation. You only need to specify the alias name in the request payload. For more information, see <a href="https://docs.aws.amazon.com/fsx/latest/WindowsGuide/managing-dns-aliases.html">Working with DNS Aliases</a> and <a href="https://docs.aws.amazon.com/fsx/latest/WindowsGuide/walkthrough05-file-system-custom-CNAME.html">Walkthrough 5: Using DNS aliases to access your file system</a>, including additional steps you must take to be able to access your file system using a DNS alias. An alias name has to meet the following requirements: <ul> <li> Formatted as a fully-qualified domain name (FQDN), <code>hostname.domain</code>, for example, <code>accounting.example.com</code>. </li> <li> Can contain alphanumeric characters, the underscore (_), and the hyphen (-). </li> <li> Cannot start or end with a hyphen. </li> <li> Can start with a numeric. </li> </ul> For DNS alias names, Amazon FSx stores alphabetic characters as lowercase letters (a-z), regardless of how you specify them: as uppercase letters, lowercase letters, or the corresponding letters in escape codes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CopyTagsToBackups</i> A boolean flag indicating whether tags for the file system should be copied to backups. This value defaults to false. If it's set to true, all tags for the file system are copied to all automatic and user-initiated backups where the user doesn't specify tags. If this value is true, and you specify one or more tags, only the specified tags are copied to backups. If you specify one or more tags when creating a user-initiated backup, no tags are copied from the file system, regardless of this value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomaticBackupRetentionDays</i> The number of days to retain automatic backups. The default is to retain backups for 7 days. Setting this value to 0 disables the creation of automatic backups. The maximum retention period for backups is 90 days.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DailyAutomaticBackupStartTime</i> The preferred time to take daily automatic backups, formatted HH:MM in the UTC time zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WeeklyMaintenanceStartTime</i> The preferred start time to perform weekly maintenance, formatted d:HH:MM in the UTC time zone, where d is the weekday number, from 1 through 7, beginning with Monday and ending with Sunday.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ThroughputCapacity</i> The throughput of an Amazon FSx file system, measured in megabytes per second, in 2 to the <i>n</i>th increments, between 2^3 (8) and 2^11 (2048).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredSubnetId</i> Required when <code>DeploymentType</code> is set to <code>MULTI_AZ_1</code>. This specifies the subnet in which you want the preferred file server to be located. For in-AWS applications, we recommend that you launch your clients in the same Availability Zone (AZ) as your preferred file server to reduce cross-AZ data transfer costs and minimize latency. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeploymentType</i> Specifies the file system deployment type, valid values are the following: <ul> <li>  <code>MULTI_AZ_1</code> - Deploys a high availability file system that is configured for Multi-AZ redundancy to tolerate temporary Availability Zone (AZ) unavailability. You can only deploy a Multi-AZ file system in AWS Regions that have a minimum of three Availability Zones. Also supports HDD storage type </li> <li>  <code>SINGLE_AZ_1</code> - (Default) Choose to deploy a file system that is configured for single AZ redundancy. </li> <li>  <code>SINGLE_AZ_2</code> - The latest generation Single AZ file system. Specifies a file system that is configured for single AZ redundancy and supports HDD storage type. </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/fsx/latest/WindowsGuide/high-availability-multiAZ.html"> Availability and Durability: Single-AZ and Multi-AZ File Systems</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SelfManagedActiveDirectoryConfiguration</i> The configuration that Amazon FSx uses to join the Windows File Server instance to your self-managed (including on-premises) Microsoft Active Directory (AD) directory. For more information, see <a href="https://docs.aws.amazon.com/fsx/latest/WindowsGuide/self-managed-AD.html"> Using Amazon FSx with your self-managed Microsoft Active Directory</a>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SelfManagedActiveDirectoryConfiguration</b>: The configuration that Amazon FSx uses to join the Windows File Server instance to your self-managed (including on-premises) Microsoft Active Directory (AD) directory. For more information, see <a href="https://docs.aws.amazon.com/fsx/latest/WindowsGuide/self-managed-AD.html"> Using Amazon FSx with your self-managed Microsoft Active Directory</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActiveDirectoryId</i> The ID for an existing AWS Managed Microsoft Active Directory (AD) instance that the file system should join when it's created.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DnsIps</i> A list of up to two IP addresses of DNS servers or domain controllers in the self-managed AD directory. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Password</i> The password for the service account on your self-managed AD domain that Amazon FSx will use to join to your AD domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UserName</i> The user name for the service account on your self-managed AD domain that Amazon FSx will use to join to your AD domain. This account must have the permission to join computers to the domain in the organizational unit provided in <code>OrganizationalUnitDistinguishedName</code>, or in the default location of your AD domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FileSystemAdministratorsGroup</i> (Optional) The name of the domain group whose members are granted administrative privileges for the file system. Administrative privileges include taking ownership of files and folders, setting audit controls (audit ACLs) on files and folders, and administering the file system remotely by using the FSx Remote PowerShell. The group that you specify must already exist in your domain. If you don't provide one, your AD domain's Domain Admins group is used.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OrganizationalUnitDistinguishedName</i> (Optional) The fully qualified distinguished name of the organizational unit within your self-managed AD directory that the Windows File Server instance will join. Amazon FSx only accepts OU as the direct parent of the file system. An example is <code>OU=FSx,DC=yourdomain,DC=corp,DC=com</code>. To learn more, see <a href="https://tools.ietf.org/html/rfc2253">RFC 2253</a>. If none is provided, the FSx file system is created in the default location of your self-managed AD directory.  <important> Only Organizational Unit (OU) objects can be the direct parent of the file system that you're creating. </important><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainName</i> The fully qualified domain name of the self-managed AD directory, such as <code>corp.example.com</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AuditLogDestination</i> The Amazon Resource Name (ARN) that specifies the destination of the audit logs. The destination can be any Amazon CloudWatch Logs log group ARN or Amazon Kinesis Data Firehose delivery stream ARN, with the following requirements: <ul> <li> The destination ARN that you provide (either CloudWatch Logs log group or Kinesis Data Firehose delivery stream) must be in the same AWS partition, AWS region, and AWS account as your Amazon FSx file system. </li> <li> The name of the Amazon CloudWatch Logs log group must begin with the <code>/aws/fsx</code> prefix. The name of the Amazon Kinesis Data Firehouse delivery stream must begin with the <code>aws-fsx</code> prefix. </li> <li> If you do not provide a destination in <code>AuditLogDestination</code>, Amazon FSx will create and use a log stream in the CloudWatch Logs <code>/aws/fsx/windows</code> log group. </li> <li> If <code>AuditLogDestination</code> is provided and the resource does not exist, the request will fail with a <code>BadRequest</code> error. </li> <li> If <code>FileAccessAuditLogLevel</code> and <code>FileShareAccessAuditLogLevel</code> are both set to <code>DISABLED</code>, you cannot specify a destination in <code>AuditLogDestination</code>. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FileShareAccessAuditLogLevel</i> Sets which attempt type is logged by Amazon FSx for file share accesses. <ul> <li>  <code>SUCCESS_ONLY</code> - only successful attempts to access file shares are logged. </li> <li>  <code>FAILURE_ONLY</code> - only failed attempts to access file shares are logged. </li> <li>  <code>SUCCESS_AND_FAILURE</code> - both successful attempts and failed attempts to access file shares are logged. </li> <li>  <code>DISABLED</code> - access auditing of file shares is turned off. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FileAccessAuditLogLevel</i> Sets which attempt type is logged by Amazon FSx for file and folder accesses. <ul> <li>  <code>SUCCESS_ONLY</code> - only successful attempts to access files or folders are logged. </li> <li>  <code>FAILURE_ONLY</code> - only failed attempts to access files or folders are logged. </li> <li>  <code>SUCCESS_AND_FAILURE</code> - both successful attempts and failed attempts to access files or folders are logged. </li> <li>  <code>DISABLED</code> - access auditing of files and folders is turned off. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataCompressionType</i> Sets the data compression configuration for the file system. <code>DataCompressionType</code> can have the following values: <ul> <li>  <code>NONE</code> - (Default) Data compression is turned off when the file system is created. </li> <li>  <code>LZ4</code> - Data compression is turned on with the LZ4 algorithm. </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/fsx/latest/LustreGuide/data-compression.html">Lustre data compression</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DriveCacheType</i> The type of drive cache used by PERSISTENT_1 file systems that are provisioned with HDD storage devices. This parameter is required when storage type is HDD. Set to <code>READ</code>, improve the performance for frequently accessed files and allows 20% of the total storage capacity of the file system to be cached.  This parameter is required when <code>StorageType</code> is set to HDD.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CopyTagsToBackups</i> (Optional) Not available to use with file systems that are linked to a data repository. A boolean flag indicating whether tags for the file system should be copied to backups. The default value is false. If it's set to true, all file system tags are copied to all automatic and user-initiated backups when the user doesn't specify any backup-specific tags. If this value is true, and you specify one or more backup tags, only the specified tags are copied to backups. If you specify one or more tags when creating a user-initiated backup, no tags are copied from the file system, regardless of this value. For more information, see <a href="https://docs.aws.amazon.com/fsx/latest/LustreGuide/using-backups-fsx.html">Working with backups</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomaticBackupRetentionDays</i> The number of days to retain automatic backups. Setting this to 0 disables automatic backups. You can retain automatic backups for a maximum of 90 days. The default is 0.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DailyAutomaticBackupStartTime</i> A recurring daily time, in the format <code>HH:MM</code>. <code>HH</code> is the zero-padded hour of the day (0-23), and <code>MM</code> is the zero-padded minute of the hour. For example, <code>05:00</code> specifies 5 AM daily. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PerUnitStorageThroughput</i>  Required for the <code>PERSISTENT_1</code> deployment type, describes the amount of read and write throughput for each 1 tebibyte of storage, in MB/s/TiB. File system throughput capacity is calculated by multiplying ﬁle system storage capacity (TiB) by the PerUnitStorageThroughput (MB/s/TiB). For a 2.4 TiB ﬁle system, provisioning 50 MB/s/TiB of PerUnitStorageThroughput yields 120 MB/s of ﬁle system throughput. You pay for the amount of throughput that you provision.  Valid values for SSD storage: 50, 100, 200. Valid values for HDD storage: 12, 40.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoImportPolicy</i>  (Optional) When you create your file system, your existing S3 objects appear as file and directory listings. Use this property to choose how Amazon FSx keeps your file and directory listings up to date as you add or modify objects in your linked S3 bucket. <code>AutoImportPolicy</code> can have the following values: <ul> <li>  <code>NONE</code> - (Default) AutoImport is off. Amazon FSx only updates file and directory listings from the linked S3 bucket when the file system is created. FSx does not update file and directory listings for any new or changed objects after choosing this option. </li> <li>  <code>NEW</code> - AutoImport is on. Amazon FSx automatically imports directory listings of any new objects added to the linked S3 bucket that do not currently exist in the FSx file system.  </li> <li>  <code>NEW_CHANGED</code> - AutoImport is on. Amazon FSx automatically imports file and directory listings of any new objects added to the S3 bucket and any existing objects that are changed in the S3 bucket after you choose this option.  </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/fsx/latest/LustreGuide/autoimport-data-repo.html">Automatically import updates from your S3 bucket</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeploymentType</i>  Choose <code>SCRATCH_1</code> and <code>SCRATCH_2</code> deployment types when you need temporary storage and shorter-term processing of data. The <code>SCRATCH_2</code> deployment type provides in-transit encryption of data and higher burst throughput capacity than <code>SCRATCH_1</code>. Choose <code>PERSISTENT_1</code> deployment type for longer-term storage and workloads and encryption of data in transit. To learn more about deployment types, see <a href="https://docs.aws.amazon.com/fsx/latest/LustreGuide/lustre-deployment-types.html"> FSx for Lustre Deployment Options</a>. Encryption of data in-transit is automatically enabled when you access a <code>SCRATCH_2</code> or <code>PERSISTENT_1</code> file system from Amazon EC2 instances that <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/data- protection.html">support this feature</a>. (Default = <code>SCRATCH_1</code>)  Encryption of data in-transit for <code>SCRATCH_2</code> and <code>PERSISTENT_1</code> deployment types is supported when accessed from supported instance types in supported AWS Regions. To learn more, <a href="https://docs.aws.amazon.com/fsx/latest/LustreGuide/encryption-in-transit-fsxl.html">Encrypting Data in Transit</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImportedFileChunkSize</i> (Optional) For files imported from a data repository, this value determines the stripe count and maximum amount of data per file (in MiB) stored on a single physical disk. The maximum number of disks that a single file can be striped across is limited by the total number of disks that make up the file system. The default chunk size is 1,024 MiB (1 GiB) and can go as high as 512,000 MiB (500 GiB). Amazon S3 objects have a maximum size of 5 TB.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExportPath</i> (Optional) The path in Amazon S3 where the root of your Amazon FSx file system is exported. The path must use the same Amazon S3 bucket as specified in ImportPath. You can provide an optional prefix to which new and changed data is to be exported from your Amazon FSx for Lustre file system. If an <code>ExportPath</code> value is not provided, Amazon FSx sets a default export path, <code>s3://import-bucket/FSxLustre[creation-timestamp]</code>. The timestamp is in UTC format, for example <code>s3://import-bucket/FSxLustre20181105T222312Z</code>. The Amazon S3 export bucket must be the same as the import bucket specified by <code>ImportPath</code>. If you only specify a bucket name, such as <code>s3://import-bucket</code>, you get a 1:1 mapping of file system objects to S3 bucket objects. This mapping means that the input data in S3 is overwritten on export. If you provide a custom prefix in the export path, such as <code>s3://import-bucket/[custom-optional-prefix]</code>, Amazon FSx exports the contents of your file system to that export prefix in the Amazon S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImportPath</i> (Optional) The path to the Amazon S3 bucket (including the optional prefix) that you're using as the data repository for your Amazon FSx for Lustre file system. The root of your FSx for Lustre file system will be mapped to the root of the Amazon S3 bucket you select. An example is <code>s3://import-bucket/optional-prefix</code>. If you specify a prefix after the Amazon S3 bucket name, only object keys with that prefix are loaded into the file system.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WeeklyMaintenanceStartTime</i> (Optional) The preferred start time to perform weekly maintenance, formatted d:HH:MM in the UTC time zone, where d is the weekday number, from 1 through 7, beginning with Monday and ending with Sunday.<br/>
        :return: FileSystem:  A description of the file system.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdministrativeActions</i> A list of administrative actions for the file system that are in process or waiting to be processed. Administrative actions describe changes to the Windows file system that you have initiated using the <code>UpdateFileSystem</code> action. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LustreConfiguration</i> The configuration for the Amazon FSx for Lustre file system.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>LustreConfiguration</b>: The configuration for the Amazon FSx for Lustre file system.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WindowsConfiguration</i> The configuration for this Microsoft Windows file system.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>WindowsConfiguration</b>: The configuration for this Microsoft Windows file system.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The tags to associate with the file system. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html">Tagging Your Amazon EC2 Resources</a> in the <i>Amazon EC2 User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceARN</i> The Amazon Resource Name (ARN) for the file system resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The ID of the AWS Key Management Service (AWS KMS) key used to encrypt the file system's data for Amazon FSx for Windows File Server file systems and persistent Amazon FSx for Lustre file systems at rest. In either case, if not specified, the Amazon FSx managed key is used. The scratch Amazon FSx for Lustre file systems are always encrypted at rest using Amazon FSx managed keys. For more information, see <a href="https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html">Encrypt</a> in the <i>AWS Key Management Service API Reference</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DNSName</i> The DNS name for the file system.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkInterfaceIds</i> The IDs of the elastic network interface from which a specific file system is accessible. The elastic network interface is automatically created in the same VPC that the Amazon FSx file system was created in. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html">Elastic Network Interfaces</a> in the <i>Amazon EC2 User Guide.</i>  For an Amazon FSx for Windows File Server file system, you can have one network interface ID. For an Amazon FSx for Lustre file system, you can have more than one.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetIds</i> Specifies the IDs of the subnets that the file system is accessible from. For Windows <code>MULTI_AZ_1</code> file system deployment type, there are two subnet IDs, one for the preferred file server and one for the standby file server. The preferred file server subnet identified in the <code>PreferredSubnetID</code> property. All other file systems have only one subnet ID. For Lustre file systems, and Single-AZ Windows file systems, this is the ID of the subnet that contains the endpoint for the file system. For <code>MULTI_AZ_1</code> Windows file systems, the endpoint for the file system is available in the <code>PreferredSubnetID</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The ID of the primary VPC for the file system.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageType</i> The storage type of the file system. Valid values are <code>SSD</code> and <code>HDD</code>. If set to <code>SSD</code>, the file system uses solid state drive storage. If set to <code>HDD</code>, the file system uses hard disk drive storage. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageCapacity</i> The storage capacity of the file system in gibibytes (GiB).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FailureDetails</i> A structure providing details of any failures that occur when creating the file system has failed.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>FailureDetails</b>: A structure providing details of any failures that occur when creating the file system has failed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Lifecycle</i> The lifecycle status of the file system, following are the possible values and what they mean: <ul> <li>  <code>AVAILABLE</code> - The file system is in a healthy state, and is reachable and available for use. </li> <li>  <code>CREATING</code> - Amazon FSx is creating the new file system. </li> <li>  <code>DELETING</code> - Amazon FSx is deleting an existing file system. </li> <li>  <code>FAILED</code> - An existing file system has experienced an unrecoverable failure. When creating a new file system, Amazon FSx was unable to create the file system. </li> <li>  <code>MISCONFIGURED</code> indicates that the file system is in a failed but recoverable state. </li> <li>  <code>UPDATING</code> indicates that the file system is undergoing a customer initiated update. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FileSystemType</i> The type of Amazon FSx file system, either <code>LUSTRE</code> or <code>WINDOWS</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FileSystemId</i> The system-generated, unique 17-digit ID of the file system.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The time that the file system was created, in seconds (since 1970-01-01T00:00:00Z), also known as Unix time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> The AWS account that created the file system. If the file system was created by an AWS Identity and Access Management (IAM) user, the AWS account to which the IAM user belongs is the owner.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> A message describing any failures that occurred during file system creation.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ActiveDirectoryId</i> The ID for an existing AWS Managed Microsoft Active Directory instance that the file system is joined to.<br/>The configuration of the self-managed Microsoft Active Directory (AD) directory to which the Windows File Server instance is joined.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SelfManagedActiveDirectoryConfiguration</b>: The configuration of the self-managed Microsoft Active Directory (AD) directory to which the Windows File Server instance is joined.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>WeeklyMaintenanceStartTime</i> The preferred start time to perform weekly maintenance, formatted d:HH:MM in the UTC time zone. d is the weekday number, from 1 through 7, beginning with Monday and ending with Sunday.<br/>The data repository configuration object for Lustre file systems returned in the response of the <code>CreateFileSystem</code> operation.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DataRepositoryConfiguration</b>: The data repository configuration object for Lustre file systems returned in the response of the <code>CreateFileSystem</code> operation.        """
        pass

    def delete_backup(self, BackupId: str, ClientRequestToken: str=None) -> DeleteBackupResponse:
        r"""Deletes an Amazon FSx backup, deleting its contents. After deletion, the backup no longer exists, and its data is gone. The <code>DeleteBackup</code> call returns instantly. The backup will not show up in later <code>DescribeBackups</code> calls. <important> The data in a deleted backup is also deleted and can't be recovered by any means. </important>

        :param self:
        :param ClientRequestToken:  A string of up to 64 ASCII characters that Amazon FSx uses to ensure idempotent deletion. This is automatically filled on your behalf when using the AWS CLI or SDK.<br/>BackupId:  The ID of the backup you want to delete.<br/>
        :return: Lifecycle:  The lifecycle of the backup. Should be <code>DELETED</code>.<br/>BackupId:  The ID of the backup deleted.<br/>        """
        pass

    def delete_file_system(self, FileSystemId: str, ClientRequestToken: str=None, WindowsConfiguration: DeleteFileSystemWindowsConfiguration=None, LustreConfiguration: DeleteFileSystemLustreConfiguration=None) -> DeleteFileSystemResponse:
        r"""Deletes a file system, deleting its contents. After deletion, the file system no longer exists, and its data is gone. Any existing automatic backups will also be deleted. By default, when you delete an Amazon FSx for Windows File Server file system, a final backup is created upon deletion. This final backup is not subject to the file system's retention policy, and must be manually deleted. The <code>DeleteFileSystem</code> action returns while the file system has the <code>DELETING</code> status. You can check the file system deletion status by calling the <a>DescribeFileSystems</a> action, which returns a list of file systems in your account. If you pass the file system ID for a deleted file system, the <a>DescribeFileSystems</a> returns a <code>FileSystemNotFound</code> error. <note> Deleting an Amazon FSx for Lustre file system will fail with a 400 BadRequest if a data repository task is in a <code>PENDING</code> or <code>EXECUTING</code> state. </note> <important> The data in a deleted file system is also deleted and can't be recovered by any means. </important>

        :param self:
        :param LustreConfiguration:  The configuration object for the Amazon FSx for Lustre file system being deleted in the <code>DeleteFileSystem</code> operation.:<br/>WindowsConfiguration:  The configuration object for the Microsoft Windows file system used in the <code>DeleteFileSystem</code> operation.:<br/>ClientRequestToken:  A string of up to 64 ASCII characters that Amazon FSx uses to ensure idempotent deletion. This is automatically filled on your behalf when using the AWS CLI or SDK.<br/>FileSystemId:  The ID of the file system you want to delete.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FinalBackupTags</i> A set of tags for your final backup.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SkipFinalBackup</i> By default, Amazon FSx for Windows takes a final backup on your behalf when the <code>DeleteFileSystem</code> operation is invoked. Doing this helps protect you from data loss, and we highly recommend taking the final backup. If you want to skip this backup, use this flag to do so.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FinalBackupTags</i> Use if <code>SkipFinalBackup</code> is set to <code>false</code>, and you want to apply an array of tags to the final backup. If you have set the file system property <code>CopyTagsToBackups</code> to true, and you specify one or more <code>FinalBackupTags</code> when deleting a file system, Amazon FSx will not copy any existing file system tags to the backup.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SkipFinalBackup</i> Set <code>SkipFinalBackup</code> to false if you want to take a final backup of the file system you are deleting. By default, Amazon FSx will not take a final backup on your behalf when the <code>DeleteFileSystem</code> operation is invoked. (Default = true)<br/>
        :return: LustreResponse:  The response object for the Amazon FSx for Lustre file system being deleted in the <code>DeleteFileSystem</code> operation.:<br/>WindowsResponse:  The response object for the Microsoft Windows file system used in the <code>DeleteFileSystem</code> operation.:<br/>Lifecycle:  The file system lifecycle for the deletion request. Should be <code>DELETING</code>.<br/>FileSystemId:  The ID of the file system being deleted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FinalBackupTags</i> The set of tags applied to the final backup.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FinalBackupId</i> The ID of the final backup for this file system.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FinalBackupTags</i> The set of tags applied to the final backup.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FinalBackupId</i> The ID of the final backup for this file system.<br/>        """
        pass

    def describe_backups(self, BackupIds: List[BackupId]=None, Filters: List[Filter]=None, MaxResults: int=None, NextToken: str=None) -> DescribeBackupsResponse:
        r"""Returns the description of specific Amazon FSx backups, if a <code>BackupIds</code> value is provided for that backup. Otherwise, it returns all backups owned by your AWS account in the AWS Region of the endpoint that you're calling. When retrieving all backups, you can optionally specify the <code>MaxResults</code> parameter to limit the number of backups in a response. If more backups remain, Amazon FSx returns a <code>NextToken</code> value in the response. In this case, send a later request with the <code>NextToken</code> request parameter set to the value of <code>NextToken</code> from the last response. This action is used in an iterative process to retrieve a list of your backups. <code>DescribeBackups</code> is called first without a <code>NextToken</code>value. Then the action continues to be called with the <code>NextToken</code> parameter set to the value of the last <code>NextToken</code> value until a response has no <code>NextToken</code>. When using this action, keep the following in mind: <ul> <li> The implementation might return fewer than <code>MaxResults</code> file system descriptions while still including a <code>NextToken</code> value. </li> <li> The order of backups returned in the response of one <code>DescribeBackups</code> call and the order of backups returned across the responses of a multi-call iteration is unspecified. </li> </ul>

        :param self:
        :param NextToken:  Opaque pagination token returned from a previous <code>DescribeBackups</code> operation (String). If a token present, the action continues the list from where the returning call left off.<br/>MaxResults:  Maximum number of backups to return in the response (integer). This parameter value must be greater than 0. The number of items that Amazon FSx returns is the minimum of the <code>MaxResults</code> parameter specified in the request and the service's internal maximum number of items per page.<br/>Filters:  Filters structure. Supported names are file-system-id and backup-type.<br/>BackupIds:  IDs of the backups you want to retrieve (String). This overrides any filters. If any IDs are not found, BackupNotFound will be thrown.<br/>
        :return: NextToken:  This is present if there are more backups than returned in the response (String). You can use the <code>NextToken</code> value in the later request to fetch the backups. <br/>Backups:  An array of backups.<br/>        """
        pass

    def describe_data_repository_tasks(self, TaskIds: List[TaskId]=None, Filters: List[DataRepositoryTaskFilter]=None, MaxResults: int=None, NextToken: str=None) -> DescribeDataRepositoryTasksResponse:
        r"""Returns the description of specific Amazon FSx for Lustre data repository tasks, if one or more <code>TaskIds</code> values are provided in the request, or if filters are used in the request. You can use filters to narrow the response to include just tasks for specific file systems, or tasks in a specific lifecycle state. Otherwise, it returns all data repository tasks owned by your AWS account in the AWS Region of the endpoint that you're calling. When retrieving all tasks, you can paginate the response by using the optional <code>MaxResults</code> parameter to limit the number of tasks returned in a response. If more tasks remain, Amazon FSx returns a <code>NextToken</code> value in the response. In this case, send a later request with the <code>NextToken</code> request parameter set to the value of <code>NextToken</code> from the last response.

        :param self:
        :param NextToken:  (Optional) Opaque pagination token returned from a previous operation (String). If present, this token indicates from what point you can continue processing the request, where the previous <code>NextToken</code> value left off.<br/>MaxResults:  The maximum number of resources to return in the response. This value must be an integer greater than zero.<br/>Filters:  (Optional) You can use filters to narrow the <code>DescribeDataRepositoryTasks</code> response to include just tasks for specific file systems, or tasks in a specific lifecycle state.<br/>TaskIds:  (Optional) IDs of the tasks whose descriptions you want to retrieve (String).<br/>
        :return: NextToken:  (Optional) Opaque pagination token returned from a previous operation (String). If present, this token indicates from what point you can continue processing the request, where the previous <code>NextToken</code> value left off.<br/>DataRepositoryTasks:  The collection of data repository task descriptions returned.<br/>        """
        pass

    def describe_file_system_aliases(self, FileSystemId: str, ClientRequestToken: str=None, MaxResults: int=None, NextToken: str=None) -> DescribeFileSystemAliasesResponse:
        r"""Returns the DNS aliases that are associated with the specified Amazon FSx for Windows File Server file system. A history of all DNS aliases that have been associated with and disassociated from the file system is available in the list of <a>AdministrativeAction</a> provided in the <a>DescribeFileSystems</a> operation response.

        :param self:
        :param NextToken:  Opaque pagination token returned from a previous <code>DescribeFileSystemAliases</code> operation (String). If a token is included in the request, the action continues the list from where the previous returning call left off.<br/>MaxResults:  Maximum number of DNS aliases to return in the response (integer). This parameter value must be greater than 0. The number of items that Amazon FSx returns is the minimum of the <code>MaxResults</code> parameter specified in the request and the service's internal maximum number of items per page.<br/>FileSystemId:  The ID of the file system to return the associated DNS aliases for (String).<br/>ClientRequestToken:  (Optional) An idempotency token for resource creation, in a string of up to 64 ASCII characters. This token is automatically filled on your behalf when you use the AWS Command Line Interface (AWS CLI) or an AWS SDK.<br/>
        :return: NextToken:  Present if there are more DNS aliases than returned in the response (String). You can use the <code>NextToken</code> value in a later request to fetch additional descriptions. <br/>Aliases:  An array of one or more DNS aliases currently associated with the specified file system.<br/>        """
        pass

    def describe_file_systems(self, FileSystemIds: List[FileSystemId]=None, MaxResults: int=None, NextToken: str=None) -> DescribeFileSystemsResponse:
        r"""Returns the description of specific Amazon FSx file systems, if a <code>FileSystemIds</code> value is provided for that file system. Otherwise, it returns descriptions of all file systems owned by your AWS account in the AWS Region of the endpoint that you're calling. When retrieving all file system descriptions, you can optionally specify the <code>MaxResults</code> parameter to limit the number of descriptions in a response. If more file system descriptions remain, Amazon FSx returns a <code>NextToken</code> value in the response. In this case, send a later request with the <code>NextToken</code> request parameter set to the value of <code>NextToken</code> from the last response. This action is used in an iterative process to retrieve a list of your file system descriptions. <code>DescribeFileSystems</code> is called first without a <code>NextToken</code>value. Then the action continues to be called with the <code>NextToken</code> parameter set to the value of the last <code>NextToken</code> value until a response has no <code>NextToken</code>. When using this action, keep the following in mind: <ul> <li> The implementation might return fewer than <code>MaxResults</code> file system descriptions while still including a <code>NextToken</code> value. </li> <li> The order of file systems returned in the response of one <code>DescribeFileSystems</code> call and the order of file systems returned across the responses of a multicall iteration is unspecified. </li> </ul>

        :param self:
        :param NextToken:  Opaque pagination token returned from a previous <code>DescribeFileSystems</code> operation (String). If a token present, the action continues the list from where the returning call left off.<br/>MaxResults:  Maximum number of file systems to return in the response (integer). This parameter value must be greater than 0. The number of items that Amazon FSx returns is the minimum of the <code>MaxResults</code> parameter specified in the request and the service's internal maximum number of items per page.<br/>FileSystemIds:  IDs of the file systems whose descriptions you want to retrieve (String).<br/>
        :return: NextToken:  Present if there are more file systems than returned in the response (String). You can use the <code>NextToken</code> value in the later request to fetch the descriptions. <br/>FileSystems:  An array of file system descriptions.<br/>        """
        pass

    def disassociate_file_system_aliases(self, Aliases: List[AlternateDNSName], FileSystemId: str, ClientRequestToken: str=None) -> DisassociateFileSystemAliasesResponse:
        r"""Use this action to disassociate, or remove, one or more Domain Name Service (DNS) aliases from an Amazon FSx for Windows File Server file system. If you attempt to disassociate a DNS alias that is not associated with the file system, Amazon FSx responds with a 400 Bad Request. For more information, see <a href="https://docs.aws.amazon.com/fsx/latest/WindowsGuide/managing-dns-aliases.html">Working with DNS Aliases</a>. The system generated response showing the DNS aliases that Amazon FSx is attempting to disassociate from the file system. Use the API operation to monitor the status of the aliases Amazon FSx is disassociating with the file system.

        :param self:
        :param Aliases:  An array of one or more DNS alias names to disassociate, or remove, from the file system.<br/>FileSystemId:  Specifies the file system from which to disassociate the DNS aliases.<br/>ClientRequestToken:  (Optional) An idempotency token for resource creation, in a string of up to 64 ASCII characters. This token is automatically filled on your behalf when you use the AWS Command Line Interface (AWS CLI) or an AWS SDK.<br/>
        :return: Aliases:  An array of one or more DNS aliases that Amazon FSx is attempting to disassociate from the file system.<br/>        """
        pass

    def list_tags_for_resource(self, ResourceARN: str, MaxResults: int=None, NextToken: str=None) -> ListTagsForResourceResponse:
        r"""Lists tags for an Amazon FSx file systems and backups in the case of Amazon FSx for Windows File Server. When retrieving all tags, you can optionally specify the <code>MaxResults</code> parameter to limit the number of tags in a response. If more tags remain, Amazon FSx returns a <code>NextToken</code> value in the response. In this case, send a later request with the <code>NextToken</code> request parameter set to the value of <code>NextToken</code> from the last response. This action is used in an iterative process to retrieve a list of your tags. <code>ListTagsForResource</code> is called first without a <code>NextToken</code>value. Then the action continues to be called with the <code>NextToken</code> parameter set to the value of the last <code>NextToken</code> value until a response has no <code>NextToken</code>. When using this action, keep the following in mind: <ul> <li> The implementation might return fewer than <code>MaxResults</code> file system descriptions while still including a <code>NextToken</code> value. </li> <li> The order of tags returned in the response of one <code>ListTagsForResource</code> call and the order of tags returned across the responses of a multi-call iteration is unspecified. </li> </ul>

        :param self:
        :param NextToken:  Opaque pagination token returned from a previous <code>ListTagsForResource</code> operation (String). If a token present, the action continues the list from where the returning call left off.<br/>MaxResults:  Maximum number of tags to return in the response (integer). This parameter value must be greater than 0. The number of items that Amazon FSx returns is the minimum of the <code>MaxResults</code> parameter specified in the request and the service's internal maximum number of items per page.<br/>ResourceARN:  The ARN of the Amazon FSx resource that will have its tags listed.<br/>
        :return: NextToken:  This is present if there are more tags than returned in the response (String). You can use the <code>NextToken</code> value in the later request to fetch the tags. <br/>Tags:  A list of tags on the resource.<br/>        """
        pass

    def tag_resource(self, Tags: List[Tag], ResourceARN: str) -> TagResourceResponse:
        r"""Tags an Amazon FSx resource.

        :param self:
        :param Tags:  A list of tags for the resource. If a tag with a given key already exists, the value is replaced by the one specified in this parameter.<br/>ResourceARN:  The Amazon Resource Name (ARN) of the Amazon FSx resource that you want to tag.<br/>
        :return:         """
        pass

    def untag_resource(self, TagKeys: List[TagKey], ResourceARN: str) -> UntagResourceResponse:
        r"""This action removes a tag from an Amazon FSx resource.

        :param self:
        :param TagKeys:  A list of keys of tags on the resource to untag. In case the tag key doesn't exist, the call will still succeed to be idempotent.<br/>ResourceARN:  The ARN of the Amazon FSx resource to untag.<br/>
        :return:         """
        pass

    def update_file_system(self, FileSystemId: str, ClientRequestToken: str=None, StorageCapacity: int=None, WindowsConfiguration: UpdateFileSystemWindowsConfiguration=None, LustreConfiguration: UpdateFileSystemLustreConfiguration=None) -> UpdateFileSystemResponse:
        r"""Use this operation to update the configuration of an existing Amazon FSx file system. You can update multiple properties in a single request. For Amazon FSx for Windows File Server file systems, you can update the following properties: <ul> <li> AuditLogConfiguration </li> <li> AutomaticBackupRetentionDays </li> <li> DailyAutomaticBackupStartTime </li> <li> SelfManagedActiveDirectoryConfiguration </li> <li> StorageCapacity </li> <li> ThroughputCapacity </li> <li> WeeklyMaintenanceStartTime </li> </ul> For Amazon FSx for Lustre file systems, you can update the following properties: <ul> <li> AutoImportPolicy </li> <li> AutomaticBackupRetentionDays </li> <li> DailyAutomaticBackupStartTime </li> <li> DataCompressionType </li> <li> StorageCapacity </li> <li> WeeklyMaintenanceStartTime </li> </ul>

        :param self:
        :param LustreConfiguration:  The configuration object for Amazon FSx for Lustre file systems used in the <code>UpdateFileSystem</code> operation.:<br/>WindowsConfiguration:  The configuration updates for an Amazon FSx for Windows File Server file system.:<br/>StorageCapacity:  Use this parameter to increase the storage capacity of an Amazon FSx file system. Specifies the storage capacity target value, GiB, to increase the storage capacity for the file system that you're updating. You cannot make a storage capacity increase request if there is an existing storage capacity increase request in progress. For Windows file systems, the storage capacity target value must be at least 10 percent (%) greater than the current storage capacity value. In order to increase storage capacity, the file system must have at least 16 MB/s of throughput capacity. For Lustre file systems, the storage capacity target value can be the following: <ul> <li> For <code>SCRATCH_2</code> and <code>PERSISTENT_1 SSD</code> deployment types, valid values are in multiples of 2400 GiB. The value must be greater than the current storage capacity. </li> <li> For <code>PERSISTENT HDD</code> file systems, valid values are multiples of 6000 GiB for 12 MB/s/TiB file systems and multiples of 1800 GiB for 40 MB/s/TiB file systems. The values must be greater than the current storage capacity. </li> <li> For <code>SCRATCH_1</code> file systems, you cannot increase the storage capacity. </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/fsx/latest/WindowsGuide/managing-storage-capacity.html">Managing storage capacity</a> in the <i>Amazon FSx for Windows File Server User Guide</i> and <a href="https://docs.aws.amazon.com/fsx/latest/LustreGuide/managing-storage-capacity.html">Managing storage and throughput capacity</a> in the <i>Amazon FSx for Lustre User Guide</i>.<br/>ClientRequestToken:  A string of up to 64 ASCII characters that Amazon FSx uses to ensure idempotent updates. This string is automatically filled on your behalf when you use the AWS Command Line Interface (AWS CLI) or an AWS SDK.<br/>FileSystemId:  Identifies the file system that you are updating.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AuditLogConfiguration</i> The configuration that Amazon FSx for Windows File Server uses to audit and log user accesses of files, folders, and file shares on the Amazon FSx for Windows File Server file system..&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AuditLogConfiguration</b>: The configuration that Amazon FSx for Windows File Server uses to audit and log user accesses of files, folders, and file shares on the Amazon FSx for Windows File Server file system..<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SelfManagedActiveDirectoryConfiguration</i> The configuration Amazon FSx uses to join the Windows File Server instance to the self-managed Microsoft AD directory. You cannot make a self-managed Microsoft AD update request if there is an existing self-managed Microsoft AD update request in progress.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SelfManagedActiveDirectoryConfiguration</b>: The configuration Amazon FSx uses to join the Windows File Server instance to the self-managed Microsoft AD directory. You cannot make a self-managed Microsoft AD update request if there is an existing self-managed Microsoft AD update request in progress.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ThroughputCapacity</i> Sets the target value for a file system's throughput capacity, in MB/s, that you are updating the file system to. Valid values are 8, 16, 32, 64, 128, 256, 512, 1024, 2048. You cannot make a throughput capacity update request if there is an existing throughput capacity update request in progress. For more information, see <a href="https://docs.aws.amazon.com/fsx/latest/WindowsGuide/managing-throughput-capacity.html">Managing Throughput Capacity</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomaticBackupRetentionDays</i> The number of days to retain automatic daily backups. Setting this to zero (0) disables automatic daily backups. You can retain automatic daily backups for a maximum of 90 days. For more information, see <a href="https://docs.aws.amazon.com/fsx/latest/WindowsGuide/using-backups.html#automatic-backups">Working with Automatic Daily Backups</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DailyAutomaticBackupStartTime</i> The preferred time to start the daily automatic backup, in the UTC time zone, for example, <code>02:00</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WeeklyMaintenanceStartTime</i> The preferred start time to perform weekly maintenance, formatted d:HH:MM in the UTC time zone. Where d is the weekday number, from 1 through 7, with 1 = Monday and 7 = Sunday.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DnsIps</i> A list of up to two IP addresses of DNS servers or domain controllers in the self-managed AD directory.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Password</i> The password for the service account on your self-managed AD domain that Amazon FSx will use to join to your AD domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UserName</i> The user name for the service account on your self-managed AD domain that Amazon FSx will use to join to your AD domain. This account must have the permission to join computers to the domain in the organizational unit provided in <code>OrganizationalUnitDistinguishedName</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AuditLogDestination</i> The Amazon Resource Name (ARN) that specifies the destination of the audit logs. The destination can be any Amazon CloudWatch Logs log group ARN or Amazon Kinesis Data Firehose delivery stream ARN, with the following requirements: <ul> <li> The destination ARN that you provide (either CloudWatch Logs log group or Kinesis Data Firehose delivery stream) must be in the same AWS partition, AWS region, and AWS account as your Amazon FSx file system. </li> <li> The name of the Amazon CloudWatch Logs log group must begin with the <code>/aws/fsx</code> prefix. The name of the Amazon Kinesis Data Firehouse delivery stream must begin with the <code>aws-fsx</code> prefix. </li> <li> If you do not provide a destination in <code>AuditLogDestination</code>, Amazon FSx will create and use a log stream in the CloudWatch Logs <code>/aws/fsx/windows</code> log group. </li> <li> If <code>AuditLogDestination</code> is provided and the resource does not exist, the request will fail with a <code>BadRequest</code> error. </li> <li> If <code>FileAccessAuditLogLevel</code> and <code>FileShareAccessAuditLogLevel</code> are both set to <code>DISABLED</code>, you cannot specify a destination in <code>AuditLogDestination</code>. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FileShareAccessAuditLogLevel</i> Sets which attempt type is logged by Amazon FSx for file share accesses. <ul> <li>  <code>SUCCESS_ONLY</code> - only successful attempts to access file shares are logged. </li> <li>  <code>FAILURE_ONLY</code> - only failed attempts to access file shares are logged. </li> <li>  <code>SUCCESS_AND_FAILURE</code> - both successful attempts and failed attempts to access file shares are logged. </li> <li>  <code>DISABLED</code> - access auditing of file shares is turned off. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FileAccessAuditLogLevel</i> Sets which attempt type is logged by Amazon FSx for file and folder accesses. <ul> <li>  <code>SUCCESS_ONLY</code> - only successful attempts to access files or folders are logged. </li> <li>  <code>FAILURE_ONLY</code> - only failed attempts to access files or folders are logged. </li> <li>  <code>SUCCESS_AND_FAILURE</code> - both successful attempts and failed attempts to access files or folders are logged. </li> <li>  <code>DISABLED</code> - access auditing of files and folders is turned off. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataCompressionType</i> Sets the data compression configuration for the file system. <code>DataCompressionType</code> can have the following values: <ul> <li>  <code>NONE</code> - Data compression is turned off for the file system. </li> <li>  <code>LZ4</code> - Data compression is turned on with the LZ4 algorithm. </li> </ul> If you don't use <code>DataCompressionType</code>, the file system retains its current data compression configuration. For more information, see <a href="https://docs.aws.amazon.com/fsx/latest/LustreGuide/data-compression.html">Lustre data compression</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoImportPolicy</i>  (Optional) When you create your file system, your existing S3 objects appear as file and directory listings. Use this property to choose how Amazon FSx keeps your file and directory listing up to date as you add or modify objects in your linked S3 bucket. <code>AutoImportPolicy</code> can have the following values: <ul> <li>  <code>NONE</code> - (Default) AutoImport is off. Amazon FSx only updates file and directory listings from the linked S3 bucket when the file system is created. FSx does not update the file and directory listing for any new or changed objects after choosing this option. </li> <li>  <code>NEW</code> - AutoImport is on. Amazon FSx automatically imports directory listings of any new objects added to the linked S3 bucket that do not currently exist in the FSx file system.  </li> <li>  <code>NEW_CHANGED</code> - AutoImport is on. Amazon FSx automatically imports file and directory listings of any new objects added to the S3 bucket and any existing objects that are changed in the S3 bucket after you choose this option.  </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/fsx/latest/LustreGuide/autoimport-data-repo.html">Automatically import updates from your S3 bucket</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomaticBackupRetentionDays</i> The number of days to retain automatic backups. Setting this to 0 disables automatic backups. You can retain automatic backups for a maximum of 90 days. The default is 0.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DailyAutomaticBackupStartTime</i> A recurring daily time, in the format <code>HH:MM</code>. <code>HH</code> is the zero-padded hour of the day (0-23), and <code>MM</code> is the zero-padded minute of the hour. For example, <code>05:00</code> specifies 5 AM daily. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WeeklyMaintenanceStartTime</i> (Optional) The preferred start time to perform weekly maintenance, formatted d:HH:MM in the UTC time zone. d is the weekday number, from 1 through 7, beginning with Monday and ending with Sunday.<br/>
        :return: FileSystem:  A description of the file system that was updated.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdministrativeActions</i> A list of administrative actions for the file system that are in process or waiting to be processed. Administrative actions describe changes to the Windows file system that you have initiated using the <code>UpdateFileSystem</code> action. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LustreConfiguration</i> The configuration for the Amazon FSx for Lustre file system.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>LustreConfiguration</b>: The configuration for the Amazon FSx for Lustre file system.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WindowsConfiguration</i> The configuration for this Microsoft Windows file system.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>WindowsConfiguration</b>: The configuration for this Microsoft Windows file system.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The tags to associate with the file system. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html">Tagging Your Amazon EC2 Resources</a> in the <i>Amazon EC2 User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceARN</i> The Amazon Resource Name (ARN) for the file system resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The ID of the AWS Key Management Service (AWS KMS) key used to encrypt the file system's data for Amazon FSx for Windows File Server file systems and persistent Amazon FSx for Lustre file systems at rest. In either case, if not specified, the Amazon FSx managed key is used. The scratch Amazon FSx for Lustre file systems are always encrypted at rest using Amazon FSx managed keys. For more information, see <a href="https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html">Encrypt</a> in the <i>AWS Key Management Service API Reference</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DNSName</i> The DNS name for the file system.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkInterfaceIds</i> The IDs of the elastic network interface from which a specific file system is accessible. The elastic network interface is automatically created in the same VPC that the Amazon FSx file system was created in. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html">Elastic Network Interfaces</a> in the <i>Amazon EC2 User Guide.</i>  For an Amazon FSx for Windows File Server file system, you can have one network interface ID. For an Amazon FSx for Lustre file system, you can have more than one.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetIds</i> Specifies the IDs of the subnets that the file system is accessible from. For Windows <code>MULTI_AZ_1</code> file system deployment type, there are two subnet IDs, one for the preferred file server and one for the standby file server. The preferred file server subnet identified in the <code>PreferredSubnetID</code> property. All other file systems have only one subnet ID. For Lustre file systems, and Single-AZ Windows file systems, this is the ID of the subnet that contains the endpoint for the file system. For <code>MULTI_AZ_1</code> Windows file systems, the endpoint for the file system is available in the <code>PreferredSubnetID</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The ID of the primary VPC for the file system.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageType</i> The storage type of the file system. Valid values are <code>SSD</code> and <code>HDD</code>. If set to <code>SSD</code>, the file system uses solid state drive storage. If set to <code>HDD</code>, the file system uses hard disk drive storage. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageCapacity</i> The storage capacity of the file system in gibibytes (GiB).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FailureDetails</i> A structure providing details of any failures that occur when creating the file system has failed.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>FailureDetails</b>: A structure providing details of any failures that occur when creating the file system has failed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Lifecycle</i> The lifecycle status of the file system, following are the possible values and what they mean: <ul> <li>  <code>AVAILABLE</code> - The file system is in a healthy state, and is reachable and available for use. </li> <li>  <code>CREATING</code> - Amazon FSx is creating the new file system. </li> <li>  <code>DELETING</code> - Amazon FSx is deleting an existing file system. </li> <li>  <code>FAILED</code> - An existing file system has experienced an unrecoverable failure. When creating a new file system, Amazon FSx was unable to create the file system. </li> <li>  <code>MISCONFIGURED</code> indicates that the file system is in a failed but recoverable state. </li> <li>  <code>UPDATING</code> indicates that the file system is undergoing a customer initiated update. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FileSystemType</i> The type of Amazon FSx file system, either <code>LUSTRE</code> or <code>WINDOWS</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FileSystemId</i> The system-generated, unique 17-digit ID of the file system.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The time that the file system was created, in seconds (since 1970-01-01T00:00:00Z), also known as Unix time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> The AWS account that created the file system. If the file system was created by an AWS Identity and Access Management (IAM) user, the AWS account to which the IAM user belongs is the owner.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> A message describing any failures that occurred during file system creation.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ActiveDirectoryId</i> The ID for an existing AWS Managed Microsoft Active Directory instance that the file system is joined to.<br/>The configuration of the self-managed Microsoft Active Directory (AD) directory to which the Windows File Server instance is joined.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SelfManagedActiveDirectoryConfiguration</b>: The configuration of the self-managed Microsoft Active Directory (AD) directory to which the Windows File Server instance is joined.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>WeeklyMaintenanceStartTime</i> The preferred start time to perform weekly maintenance, formatted d:HH:MM in the UTC time zone. d is the weekday number, from 1 through 7, beginning with Monday and ending with Sunday.<br/>The data repository configuration object for Lustre file systems returned in the response of the <code>CreateFileSystem</code> operation.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DataRepositoryConfiguration</b>: The data repository configuration object for Lustre file systems returned in the response of the <code>CreateFileSystem</code> operation.        """
        pass





class GameLift(BaseClient):
    r"""<fullname>Amazon GameLift Service</fullname> GameLift provides solutions for hosting session-based multiplayer game servers in the cloud, including tools for deploying, operating, and scaling game servers. Built on AWS global computing infrastructure, GameLift helps you deliver high-performance, high-reliability, low-cost game servers while dynamically scaling your resource usage to meet player demand.   <b>About GameLift solutions</b>  Get more information on these GameLift solutions in the <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/">GameLift Developer Guide</a>. <ul> <li> GameLift managed hosting -- GameLift offers a fully managed service to set up and maintain computing machines for hosting, manage game session and player session life cycle, and handle security, storage, and performance tracking. You can use automatic scaling tools to balance player demand and hosting costs, configure your game session management to minimize player latency, and add FlexMatch for matchmaking. </li> <li> Managed hosting with Realtime Servers -- With GameLift Realtime Servers, you can quickly configure and set up ready-to-go game servers for your game. Realtime Servers provides a game server framework with core GameLift infrastructure already built in. Then use the full range of GameLift managed hosting features, including FlexMatch, for your game. </li> <li> GameLift FleetIQ -- Use GameLift FleetIQ as a standalone service while hosting your games using EC2 instances and Auto Scaling groups. GameLift FleetIQ provides optimizations for game hosting, including boosting the viability of low-cost Spot Instances gaming. For a complete solution, pair the GameLift FleetIQ and FlexMatch standalone services. </li> <li> GameLift FlexMatch -- Add matchmaking to your game hosting solution. FlexMatch is a customizable matchmaking service for multiplayer games. Use FlexMatch as integrated with GameLift managed hosting or incorporate FlexMatch as a standalone service into your own hosting solution. </li> </ul>  <b>About this API Reference</b>  This reference guide describes the low-level service API for Amazon GameLift. With each topic in this guide, you can find links to language-specific SDK guides and the AWS CLI reference. Useful links: <ul> <li>  <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html">GameLift API operations listed by tasks</a>  </li> <li>  <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-components.html"> GameLift tools and resources</a>  </li> </ul>"""


    class DescribeFleetAttributesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_fleet_attributes` for valid parameters"""
            pass
    class DescribeFleetCapacityPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_fleet_capacity` for valid parameters"""
            pass
    class DescribeFleetEventsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_fleet_events` for valid parameters"""
            pass
    class DescribeFleetUtilizationPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_fleet_utilization` for valid parameters"""
            pass
    class DescribeGameSessionDetailsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_game_session_details` for valid parameters"""
            pass
    class DescribeGameSessionQueuesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_game_session_queues` for valid parameters"""
            pass
    class DescribeGameSessionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_game_sessions` for valid parameters"""
            pass
    class DescribeInstancesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_instances` for valid parameters"""
            pass
    class DescribeMatchmakingConfigurationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_matchmaking_configurations` for valid parameters"""
            pass
    class DescribeMatchmakingRuleSetsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_matchmaking_rule_sets` for valid parameters"""
            pass
    class DescribePlayerSessionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_player_sessions` for valid parameters"""
            pass
    class DescribeScalingPoliciesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_scaling_policies` for valid parameters"""
            pass
    class ListAliasesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_aliases` for valid parameters"""
            pass
    class ListBuildsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_builds` for valid parameters"""
            pass
    class ListFleetsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_fleets` for valid parameters"""
            pass
    class SearchGameSessionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `search_game_sessions` for valid parameters"""
            pass
    class DescribeGameServerInstancesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_game_server_instances` for valid parameters"""
            pass
    class ListGameServerGroupsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_game_server_groups` for valid parameters"""
            pass
    class ListGameServersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_game_servers` for valid parameters"""
            pass
    class ListScriptsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_scripts` for valid parameters"""
            pass


    class AcceptMatchInput(Mapping):
        pass
    
    class AcceptMatchOutput(Mapping):
        pass
    
    class NonZeroAndMaxString(object):
        pass
    
    class ClaimGameServerInput(Mapping):
        pass
    
    class ClaimGameServerOutput(Mapping):
        pass
    
    class CreateAliasInput(Mapping):
        pass
    
    class CreateAliasOutput(Mapping):
        pass
    
    class RoutingStrategy(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class CreateBuildInput(Mapping):
        pass
    
    class CreateBuildOutput(Mapping):
        pass
    
    class S3Location(Mapping):
        pass
    
    class CreateFleetInput(Mapping):
        pass
    
    class CreateFleetOutput(Mapping):
        pass
    
    class IpPermission(Mapping):
        pass
    
    class RuntimeConfiguration(Mapping):
        pass
    
    class ResourceCreationLimitPolicy(Mapping):
        pass
    
    class MetricGroup(object):
        pass
    
    class CertificateConfiguration(Mapping):
        pass
    
    class LocationConfiguration(Mapping):
        pass
    
    class CreateFleetLocationsInput(Mapping):
        pass
    
    class CreateFleetLocationsOutput(Mapping):
        pass
    
    class CreateGameServerGroupInput(Mapping):
        pass
    
    class CreateGameServerGroupOutput(Mapping):
        pass
    
    class LaunchTemplateSpecification(Mapping):
        pass
    
    class InstanceDefinition(Mapping):
        pass
    
    class GameServerGroupAutoScalingPolicy(Mapping):
        pass
    
    class VpcSubnet(object):
        pass
    
    class CreateGameSessionInput(Mapping):
        pass
    
    class CreateGameSessionOutput(Mapping):
        pass
    
    class GameProperty(Mapping):
        pass
    
    class CreateGameSessionQueueInput(Mapping):
        pass
    
    class CreateGameSessionQueueOutput(Mapping):
        pass
    
    class PlayerLatencyPolicy(Mapping):
        pass
    
    class GameSessionQueueDestination(Mapping):
        pass
    
    class FilterConfiguration(Mapping):
        pass
    
    class PriorityConfiguration(Mapping):
        pass
    
    class CreateMatchmakingConfigurationInput(Mapping):
        pass
    
    class CreateMatchmakingConfigurationOutput(Mapping):
        pass
    
    class ArnStringModel(object):
        pass
    
    class BooleanModel(object):
        pass
    
    class CreateMatchmakingRuleSetInput(Mapping):
        pass
    
    class CreateMatchmakingRuleSetOutput(Mapping):
        pass
    
    class CreatePlayerSessionInput(Mapping):
        pass
    
    class CreatePlayerSessionOutput(Mapping):
        pass
    
    class CreatePlayerSessionsInput(Mapping):
        pass
    
    class CreatePlayerSessionsOutput(Mapping):
        pass
    
    class PlayerDataMap(object):
        pass
    
    class CreateScriptInput(Mapping):
        pass
    
    class CreateScriptOutput(Mapping):
        pass
    
    class ZipBlob(object):
        pass
    
    class CreateVpcPeeringAuthorizationInput(Mapping):
        pass
    
    class CreateVpcPeeringAuthorizationOutput(Mapping):
        pass
    
    class CreateVpcPeeringConnectionInput(Mapping):
        pass
    
    class CreateVpcPeeringConnectionOutput(Mapping):
        pass
    
    class DeleteAliasInput(Mapping):
        pass
    
    class DeleteBuildInput(Mapping):
        pass
    
    class DeleteFleetInput(Mapping):
        pass
    
    class DeleteFleetLocationsInput(Mapping):
        pass
    
    class DeleteFleetLocationsOutput(Mapping):
        pass
    
    class LocationStringModel(object):
        pass
    
    class DeleteGameServerGroupInput(Mapping):
        pass
    
    class DeleteGameServerGroupOutput(Mapping):
        pass
    
    class DeleteGameSessionQueueInput(Mapping):
        pass
    
    class DeleteGameSessionQueueOutput(Mapping):
        pass
    
    class DeleteMatchmakingConfigurationInput(Mapping):
        pass
    
    class DeleteMatchmakingConfigurationOutput(Mapping):
        pass
    
    class DeleteMatchmakingRuleSetInput(Mapping):
        pass
    
    class DeleteMatchmakingRuleSetOutput(Mapping):
        pass
    
    class DeleteScalingPolicyInput(Mapping):
        pass
    
    class DeleteScriptInput(Mapping):
        pass
    
    class DeleteVpcPeeringAuthorizationInput(Mapping):
        pass
    
    class DeleteVpcPeeringAuthorizationOutput(Mapping):
        pass
    
    class DeleteVpcPeeringConnectionInput(Mapping):
        pass
    
    class DeleteVpcPeeringConnectionOutput(Mapping):
        pass
    
    class DeregisterGameServerInput(Mapping):
        pass
    
    class DescribeAliasInput(Mapping):
        pass
    
    class DescribeAliasOutput(Mapping):
        pass
    
    class DescribeBuildInput(Mapping):
        pass
    
    class DescribeBuildOutput(Mapping):
        pass
    
    class DescribeEC2InstanceLimitsInput(Mapping):
        pass
    
    class DescribeEC2InstanceLimitsOutput(Mapping):
        pass
    
    class DescribeFleetAttributesInput(Mapping):
        pass
    
    class DescribeFleetAttributesOutput(Mapping):
        pass
    
    class FleetIdOrArn(object):
        pass
    
    class DescribeFleetCapacityInput(Mapping):
        pass
    
    class DescribeFleetCapacityOutput(Mapping):
        pass
    
    class DescribeFleetEventsInput(Mapping):
        pass
    
    class DescribeFleetEventsOutput(Mapping):
        pass
    
    class Timestamp(object):
        pass
    
    class DescribeFleetLocationAttributesInput(Mapping):
        pass
    
    class DescribeFleetLocationAttributesOutput(Mapping):
        pass
    
    class DescribeFleetLocationCapacityInput(Mapping):
        pass
    
    class DescribeFleetLocationCapacityOutput(Mapping):
        pass
    
    class DescribeFleetLocationUtilizationInput(Mapping):
        pass
    
    class DescribeFleetLocationUtilizationOutput(Mapping):
        pass
    
    class DescribeFleetPortSettingsInput(Mapping):
        pass
    
    class DescribeFleetPortSettingsOutput(Mapping):
        pass
    
    class DescribeFleetUtilizationInput(Mapping):
        pass
    
    class DescribeFleetUtilizationOutput(Mapping):
        pass
    
    class DescribeGameServerInput(Mapping):
        pass
    
    class DescribeGameServerOutput(Mapping):
        pass
    
    class DescribeGameServerGroupInput(Mapping):
        pass
    
    class DescribeGameServerGroupOutput(Mapping):
        pass
    
    class DescribeGameServerInstancesInput(Mapping):
        pass
    
    class DescribeGameServerInstancesOutput(Mapping):
        pass
    
    class GameServerInstanceId(object):
        pass
    
    class DescribeGameSessionDetailsInput(Mapping):
        pass
    
    class DescribeGameSessionDetailsOutput(Mapping):
        pass
    
    class DescribeGameSessionPlacementInput(Mapping):
        pass
    
    class DescribeGameSessionPlacementOutput(Mapping):
        pass
    
    class DescribeGameSessionQueuesInput(Mapping):
        pass
    
    class DescribeGameSessionQueuesOutput(Mapping):
        pass
    
    class GameSessionQueueNameOrArn(object):
        pass
    
    class DescribeGameSessionsInput(Mapping):
        pass
    
    class DescribeGameSessionsOutput(Mapping):
        pass
    
    class DescribeInstancesInput(Mapping):
        pass
    
    class DescribeInstancesOutput(Mapping):
        pass
    
    class DescribeMatchmakingInput(Mapping):
        pass
    
    class DescribeMatchmakingOutput(Mapping):
        pass
    
    class MatchmakingIdStringModel(object):
        pass
    
    class DescribeMatchmakingConfigurationsInput(Mapping):
        pass
    
    class DescribeMatchmakingConfigurationsOutput(Mapping):
        pass
    
    class MatchmakingConfigurationName(object):
        pass
    
    class DescribeMatchmakingRuleSetsInput(Mapping):
        pass
    
    class DescribeMatchmakingRuleSetsOutput(Mapping):
        pass
    
    class MatchmakingRuleSetName(object):
        pass
    
    class DescribePlayerSessionsInput(Mapping):
        pass
    
    class DescribePlayerSessionsOutput(Mapping):
        pass
    
    class DescribeRuntimeConfigurationInput(Mapping):
        pass
    
    class DescribeRuntimeConfigurationOutput(Mapping):
        pass
    
    class DescribeScalingPoliciesInput(Mapping):
        pass
    
    class DescribeScalingPoliciesOutput(Mapping):
        pass
    
    class DescribeScriptInput(Mapping):
        pass
    
    class DescribeScriptOutput(Mapping):
        pass
    
    class DescribeVpcPeeringAuthorizationsInput(Mapping):
        pass
    
    class DescribeVpcPeeringAuthorizationsOutput(Mapping):
        pass
    
    class DescribeVpcPeeringConnectionsInput(Mapping):
        pass
    
    class DescribeVpcPeeringConnectionsOutput(Mapping):
        pass
    
    class GetGameSessionLogUrlInput(Mapping):
        pass
    
    class GetGameSessionLogUrlOutput(Mapping):
        pass
    
    class GetInstanceAccessInput(Mapping):
        pass
    
    class GetInstanceAccessOutput(Mapping):
        pass
    
    class ListAliasesInput(Mapping):
        pass
    
    class ListAliasesOutput(Mapping):
        pass
    
    class ListBuildsInput(Mapping):
        pass
    
    class ListBuildsOutput(Mapping):
        pass
    
    class ListFleetsInput(Mapping):
        pass
    
    class ListFleetsOutput(Mapping):
        pass
    
    class ListGameServerGroupsInput(Mapping):
        pass
    
    class ListGameServerGroupsOutput(Mapping):
        pass
    
    class ListGameServersInput(Mapping):
        pass
    
    class ListGameServersOutput(Mapping):
        pass
    
    class ListScriptsInput(Mapping):
        pass
    
    class ListScriptsOutput(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class PutScalingPolicyInput(Mapping):
        pass
    
    class PutScalingPolicyOutput(Mapping):
        pass
    
    class Double(object):
        pass
    
    class TargetConfiguration(Mapping):
        pass
    
    class RegisterGameServerInput(Mapping):
        pass
    
    class RegisterGameServerOutput(Mapping):
        pass
    
    class RequestUploadCredentialsInput(Mapping):
        pass
    
    class RequestUploadCredentialsOutput(Mapping):
        pass
    
    class ResolveAliasInput(Mapping):
        pass
    
    class ResolveAliasOutput(Mapping):
        pass
    
    class ResumeGameServerGroupInput(Mapping):
        pass
    
    class ResumeGameServerGroupOutput(Mapping):
        pass
    
    class GameServerGroupAction(object):
        pass
    
    class SearchGameSessionsInput(Mapping):
        pass
    
    class SearchGameSessionsOutput(Mapping):
        pass
    
    class StartFleetActionsInput(Mapping):
        pass
    
    class StartFleetActionsOutput(Mapping):
        pass
    
    class FleetAction(object):
        pass
    
    class StartGameSessionPlacementInput(Mapping):
        pass
    
    class StartGameSessionPlacementOutput(Mapping):
        pass
    
    class PlayerLatency(Mapping):
        pass
    
    class DesiredPlayerSession(Mapping):
        pass
    
    class StartMatchBackfillInput(Mapping):
        pass
    
    class StartMatchBackfillOutput(Mapping):
        pass
    
    class Player(Mapping):
        pass
    
    class StartMatchmakingInput(Mapping):
        pass
    
    class StartMatchmakingOutput(Mapping):
        pass
    
    class StopFleetActionsInput(Mapping):
        pass
    
    class StopFleetActionsOutput(Mapping):
        pass
    
    class StopGameSessionPlacementInput(Mapping):
        pass
    
    class StopGameSessionPlacementOutput(Mapping):
        pass
    
    class StopMatchmakingInput(Mapping):
        pass
    
    class StopMatchmakingOutput(Mapping):
        pass
    
    class SuspendGameServerGroupInput(Mapping):
        pass
    
    class SuspendGameServerGroupOutput(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateAliasInput(Mapping):
        pass
    
    class UpdateAliasOutput(Mapping):
        pass
    
    class UpdateBuildInput(Mapping):
        pass
    
    class UpdateBuildOutput(Mapping):
        pass
    
    class UpdateFleetAttributesInput(Mapping):
        pass
    
    class UpdateFleetAttributesOutput(Mapping):
        pass
    
    class UpdateFleetCapacityInput(Mapping):
        pass
    
    class UpdateFleetCapacityOutput(Mapping):
        pass
    
    class UpdateFleetPortSettingsInput(Mapping):
        pass
    
    class UpdateFleetPortSettingsOutput(Mapping):
        pass
    
    class UpdateGameServerInput(Mapping):
        pass
    
    class UpdateGameServerOutput(Mapping):
        pass
    
    class UpdateGameServerGroupInput(Mapping):
        pass
    
    class UpdateGameServerGroupOutput(Mapping):
        pass
    
    class UpdateGameSessionInput(Mapping):
        pass
    
    class UpdateGameSessionOutput(Mapping):
        pass
    
    class UpdateGameSessionQueueInput(Mapping):
        pass
    
    class UpdateGameSessionQueueOutput(Mapping):
        pass
    
    class UpdateMatchmakingConfigurationInput(Mapping):
        pass
    
    class UpdateMatchmakingConfigurationOutput(Mapping):
        pass
    
    class UpdateRuntimeConfigurationInput(Mapping):
        pass
    
    class UpdateRuntimeConfigurationOutput(Mapping):
        pass
    
    class UpdateScriptInput(Mapping):
        pass
    
    class UpdateScriptOutput(Mapping):
        pass
    
    class ValidateMatchmakingRuleSetInput(Mapping):
        pass
    
    class ValidateMatchmakingRuleSetOutput(Mapping):
        pass
    
    def accept_match(self, AcceptanceType: str, PlayerIds: List[NonZeroAndMaxString], TicketId: str) -> AcceptMatchOutput:
        r"""Registers a player's acceptance or rejection of a proposed FlexMatch match. A matchmaking configuration may require player acceptance; if so, then matches built with that configuration cannot be completed unless all players accept the proposed match within a specified time limit.  When FlexMatch builds a match, all the matchmaking tickets involved in the proposed match are placed into status <code>REQUIRES_ACCEPTANCE</code>. This is a trigger for your game to get acceptance from all players in the ticket. Acceptances are only valid for tickets when they are in this status; all other acceptances result in an error. To register acceptance, specify the ticket ID, a response, and one or more players. Once all players have registered acceptance, the matchmaking tickets advance to status <code>PLACING</code>, where a new game session is created for the match.  If any player rejects the match, or if acceptances are not received before a specified timeout, the proposed match is dropped. The matchmaking tickets are then handled in one of two ways: For tickets where one or more players rejected the match, the ticket status is returned to <code>SEARCHING</code> to find a new match. For tickets where one or more players failed to respond, the ticket status is set to <code>CANCELLED</code>, and processing is terminated. A new matchmaking request for these players can be submitted as needed.   <b>Learn more</b>   <a href="https://docs.aws.amazon.com/gamelift/latest/flexmatchguide/match-client.html"> Add FlexMatch to a game client</a>   <a href="https://docs.aws.amazon.com/gamelift/latest/flexmatchguide/match-events.html"> FlexMatch events</a> (reference)  <b>Related actions</b>   <a>StartMatchmaking</a> | <a>DescribeMatchmaking</a> | <a>StopMatchmaking</a> | <a>AcceptMatch</a> | <a>StartMatchBackfill</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets">All APIs by task</a> 

        :param self:
        :param AcceptanceType:  Player response to the proposed match.<br/>PlayerIds:  A unique identifier for a player delivering the response. This parameter can include one or multiple player IDs.<br/>TicketId:  A unique identifier for a matchmaking ticket. The ticket must be in status <code>REQUIRES_ACCEPTANCE</code>; otherwise this request will fail.<br/>
        :return:         """
        pass

    def claim_game_server(self, GameServerGroupName: str, GameServerId: str=None, GameServerData: str=None) -> ClaimGameServerOutput:
        r""" <b>This operation is used with the GameLift FleetIQ solution and game server groups.</b>  Locates an available game server and temporarily reserves it to host gameplay and players. This operation is called from a game client or client service (such as a matchmaker) to request hosting resources for a new game session. In response, GameLift FleetIQ locates an available game server, places it in <code>CLAIMED</code> status for 60 seconds, and returns connection information that players can use to connect to the game server.  To claim a game server, identify a game server group. You can also specify a game server ID, although this approach bypasses GameLift FleetIQ placement optimization. Optionally, include game data to pass to the game server at the start of a game session, such as a game map or player information.  When a game server is successfully claimed, connection information is returned. A claimed game server's utilization status remains <code>AVAILABLE</code> while the claim status is set to <code>CLAIMED</code> for up to 60 seconds. This time period gives the game server time to update its status to <code>UTILIZED</code> (using <a>UpdateGameServer</a>) once players join. If the game server's status is not updated within 60 seconds, the game server reverts to unclaimed status and is available to be claimed by another request. The claim time period is a fixed value and is not configurable. If you try to claim a specific game server, this request will fail in the following cases: <ul> <li> If the game server utilization status is <code>UTILIZED</code>. </li> <li> If the game server claim status is <code>CLAIMED</code>. </li> </ul> <note> When claiming a specific game server, this request will succeed even if the game server is running on an instance in <code>DRAINING</code> status. To avoid this, first check the instance status by calling <a>DescribeGameServerInstances</a>. </note>  <b>Learn more</b>   <a href="https://docs.aws.amazon.com/gamelift/latest/fleetiqguide/gsg-intro.html">GameLift FleetIQ Guide</a>   <b>Related actions</b>   <a>RegisterGameServer</a> | <a>ListGameServers</a> | <a>ClaimGameServer</a> | <a>DescribeGameServer</a> | <a>UpdateGameServer</a> | <a>DeregisterGameServer</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/fleetiqguide/reference-awssdk-fleetiq.html">All APIs by task</a> 

        :param self:
        :param GameServerData:  A set of custom game server properties, formatted as a single string value. This data is passed to a game client or service when it requests information on game servers using <a>ListGameServers</a> or <a>ClaimGameServer</a>. <br/>GameServerId:  A custom string that uniquely identifies the game server to claim. If this parameter is left empty, GameLift FleetIQ searches for an available game server in the specified game server group.<br/>GameServerGroupName:  A unique identifier for the game server group where the game server is running. Use either the <a>GameServerGroup</a> name or ARN value. If you are not specifying a game server to claim, this value identifies where you want GameLift FleetIQ to look for an available game server to claim. <br/>
        :return: GameServer:  Object that describes the newly claimed game server.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastHealthCheckTime</i> Timestamp that indicates the last time the game server was updated with health status using an <a>UpdateGameServer</a> request. The format is a number expressed in Unix time as milliseconds (for example <code>"1469498468.057"</code>). After game server registration, this property is only changed when a game server update specifies a health check value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastClaimTime</i> Timestamp that indicates the last time the game server was claimed with a <a>ClaimGameServer</a> request. The format is a number expressed in Unix time as milliseconds (for example <code>"1469498468.057"</code>). This value is used to calculate when a claimed game server's status should revert to null.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RegistrationTime</i> Timestamp that indicates when the game server was created with a <a>RegisterGameServer</a> request. The format is a number expressed in Unix time as milliseconds (for example <code>"1469498468.057"</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UtilizationStatus</i> Indicates whether the game server is currently available for new games or is busy. Possible statuses include: <ul> <li>  <code>AVAILABLE</code> - The game server is available to be claimed. A game server that has been claimed remains in this status until it reports game hosting activity.  </li> <li>  <code>UTILIZED</code> - The game server is currently hosting a game session with players.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClaimStatus</i> Indicates when an available game server has been reserved for gameplay but has not yet started hosting a game. Once it is claimed, the game server remains in <code>CLAIMED</code> status for a maximum of one minute. During this time, game clients connect to the game server to start the game and trigger the game server to update its utilization status. After one minute, the game server claim status reverts to null.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GameServerData</i> A set of custom game server properties, formatted as a single string value. This data is passed to a game client or service when it requests information on game servers using <a>ListGameServers</a> or <a>ClaimGameServer</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConnectionInfo</i> The port and IP address that must be used to establish a client connection to the game server.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceId</i> The unique identifier for the instance where the game server is running. This ID is available in the instance metadata. EC2 instance IDs use a 17-character format, for example: <code>i-1234567890abcdef0</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GameServerId</i> A custom string that uniquely identifies the game server. Game server IDs are developer-defined and are unique across all game server groups in an AWS account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GameServerGroupArn</i> The ARN identifier for the game server group where the game server is located.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GameServerGroupName</i> A unique identifier for the game server group where the game server is running. Use either the <a>GameServerGroup</a> name or ARN value.<br/>        """
        pass

    def create_alias(self, RoutingStrategy: RoutingStrategy, Name: str, Description: str=None, Tags: List[Tag]=None) -> CreateAliasOutput:
        r"""Creates an alias for a fleet. In most situations, you can use an alias ID in place of a fleet ID. An alias provides a level of abstraction for a fleet that is useful when redirecting player traffic from one fleet to another, such as when updating your game build.  Amazon GameLift supports two types of routing strategies for aliases: simple and terminal. A simple alias points to an active fleet. A terminal alias is used to display messaging or link to a URL instead of routing players to an active fleet. For example, you might use a terminal alias when a game version is no longer supported and you want to direct players to an upgrade site.  To create a fleet alias, specify an alias name, routing strategy, and optional description. Each simple alias can point to only one fleet, but a fleet can have multiple aliases. If successful, a new alias record is returned, including an alias ID and an ARN. You can reassign an alias to another fleet by calling <code>UpdateAlias</code>.  <b>Related actions</b>   <a>CreateAlias</a> | <a>ListAliases</a> | <a>DescribeAlias</a> | <a>UpdateAlias</a> | <a>DeleteAlias</a> | <a>ResolveAlias</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets">All APIs by task</a> 

        :param self:
        :param Tags:  A list of labels to assign to the new alias resource. Tags are developer-defined key-value pairs. Tagging AWS resources are useful for resource management, access management and cost allocation. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html"> Tagging AWS Resources</a> in the <i>AWS General Reference</i>. Once the resource is created, you can use <a>TagResource</a>, <a>UntagResource</a>, and <a>ListTagsForResource</a> to add, remove, and view tags. The maximum tag limit may be lower than stated. See the AWS General Reference for actual tagging limits.<br/>RoutingStrategy:  The routing configuration, including routing type and fleet target, for the alias. :<br/>Description:  A human-readable description of the alias.<br/>Name:  A descriptive label that is associated with an alias. Alias names do not need to be unique.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> The message text to be used with a terminal routing strategy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FleetId</i> A unique identifier for the fleet that the alias points to. This value is the fleet ID, not the fleet ARN.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of routing strategy for the alias. Possible routing types include the following: <ul> <li>  <b>SIMPLE</b> - The alias resolves to one specific fleet. Use this type when routing to active fleets. </li> <li>  <b>TERMINAL</b> - The alias does not resolve to a fleet but instead can be used to display a message to the user. A terminal alias throws a TerminalRoutingStrategyException with the <a>RoutingStrategy</a> message embedded. </li> </ul><br/>
        :return: Alias:  The newly created alias resource.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdatedTime</i> The time that this data object was last modified. Format is a number expressed in Unix time as milliseconds (for example <code>"1469498468.057"</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> A time stamp indicating when this data object was created. Format is a number expressed in Unix time as milliseconds (for example <code>"1469498468.057"</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoutingStrategy</i> The routing configuration, including routing type and fleet target, for the alias. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RoutingStrategy</b>: The routing configuration, including routing type and fleet target, for the alias. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A human-readable description of an alias.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AliasArn</i> The Amazon Resource Name (<a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html">ARN</a>) that is assigned to a GameLift alias resource and uniquely identifies it. ARNs are unique across all Regions. Format is <code>arn:aws:gamelift:&lt;region&gt;::alias/alias-a1234567-b8c9-0d1e-2fa3-b45c6d7e8912</code>. In a GameLift alias ARN, the resource ID matches the alias ID value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A descriptive label that is associated with an alias. Alias names do not need to be unique.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AliasId</i> A unique identifier for the alias. Alias IDs are unique within a Region.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> The message text to be used with a terminal routing strategy.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FleetId</i> A unique identifier for the fleet that the alias points to. This value is the fleet ID, not the fleet ARN.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of routing strategy for the alias. Possible routing types include the following: <ul> <li>  <b>SIMPLE</b> - The alias resolves to one specific fleet. Use this type when routing to active fleets. </li> <li>  <b>TERMINAL</b> - The alias does not resolve to a fleet but instead can be used to display a message to the user. A terminal alias throws a TerminalRoutingStrategyException with the <a>RoutingStrategy</a> message embedded. </li> </ul><br/>        """
        pass

    def create_build(self, Name: str=None, Version: str=None, StorageLocation: S3Location=None, OperatingSystem: str=None, Tags: List[Tag]=None) -> CreateBuildOutput:
        r"""Creates a new Amazon GameLift build resource for your game server binary files. Game server binaries must be combined into a zip file for use with Amazon GameLift.  <important> When setting up a new game build for GameLift, we recommend using the AWS CLI command <b> <a href="https://docs.aws.amazon.com/cli/latest/reference/gamelift/upload-build.html">upload-build</a> </b>. This helper command combines two tasks: (1) it uploads your build files from a file directory to a GameLift Amazon S3 location, and (2) it creates a new build resource.  </important> The <code>CreateBuild</code> operation can used in the following scenarios: <ul> <li> To create a new game build with build files that are in an Amazon S3 location under an AWS account that you control. To use this option, you must first give Amazon GameLift access to the Amazon S3 bucket. With permissions in place, call <code>CreateBuild</code> and specify a build name, operating system, and the Amazon S3 storage location of your game build. </li> <li> To directly upload your build files to a GameLift Amazon S3 location. To use this option, first call <code>CreateBuild</code> and specify a build name and operating system. This operation creates a new build resource and also returns an Amazon S3 location with temporary access credentials. Use the credentials to manually upload your build files to the specified Amazon S3 location. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UploadingObjects.html">Uploading Objects</a> in the <i>Amazon S3 Developer Guide</i>. Build files can be uploaded to the GameLift Amazon S3 location once only; that can't be updated.  </li> </ul> If successful, this operation creates a new build resource with a unique build ID and places it in <code>INITIALIZED</code> status. A build must be in <code>READY</code> status before you can create fleets with it.  <b>Learn more</b>   <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-build-intro.html">Uploading Your Game</a>   <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-build-cli-uploading.html#gamelift-build-cli-uploading-create-build"> Create a Build with Files in Amazon S3</a>   <b>Related actions</b>   <a>CreateBuild</a> | <a>ListBuilds</a> | <a>DescribeBuild</a> | <a>UpdateBuild</a> | <a>DeleteBuild</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets">All APIs by task</a> 

        :param self:
        :param Tags:  A list of labels to assign to the new build resource. Tags are developer-defined key-value pairs. Tagging AWS resources are useful for resource management, access management and cost allocation. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html"> Tagging AWS Resources</a> in the <i>AWS General Reference</i>. Once the resource is created, you can use <a>TagResource</a>, <a>UntagResource</a>, and <a>ListTagsForResource</a> to add, remove, and view tags. The maximum tag limit may be lower than stated. See the AWS General Reference for actual tagging limits.<br/>OperatingSystem:  The operating system that the game server binaries are built to run on. This value determines the type of fleet resources that you can use for this build. If your game build contains multiple executables, they all must run on the same operating system. If an operating system is not specified when creating a build, Amazon GameLift uses the default value (WINDOWS_2012). This value cannot be changed later.<br/>StorageLocation:  Information indicating where your game build files are stored. Use this parameter only when creating a build with files stored in an Amazon S3 bucket that you own. The storage location must specify an Amazon S3 bucket name and key. The location must also specify a role ARN that you set up to allow Amazon GameLift to access your Amazon S3 bucket. The S3 bucket and your new build must be in the same Region.:<br/>Version:  Version information that is associated with a build or script. Version strings do not need to be unique. You can use <a>UpdateBuild</a> to change this value later. <br/>Name:  A descriptive label that is associated with a build. Build names do not need to be unique. You can use <a>UpdateBuild</a> to change this value later. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ObjectVersion</i> The version of the file, if object versioning is turned on for the bucket. Amazon GameLift uses this information when retrieving files from an S3 bucket that you own. Use this parameter to specify a specific version of the file. If not set, the latest version of the file is retrieved. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The Amazon Resource Name (<a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html">ARN</a>) for an IAM role that allows Amazon GameLift to access the S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The name of the zip file that contains the build files or script files. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i> An Amazon S3 bucket identifier. This is the name of the S3 bucket. <note> GameLift currently does not support uploading from Amazon S3 buckets with names that contain a dot (.). </note><br/>
        :return: StorageLocation:  Amazon S3 location for your game build file, including bucket name and key.:<br/>UploadCredentials:  This element is returned only when the operation is called without a storage location. It contains credentials to use when you are uploading a build file to an Amazon S3 bucket that is owned by Amazon GameLift. Credentials have a limited life span. To refresh these credentials, call <a>RequestUploadCredentials</a>. :<br/>Build:  The newly created build resource, including a unique build IDs and status. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> A time stamp indicating when this data object was created. Format is a number expressed in Unix time as milliseconds (for example <code>"1469498468.057"</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OperatingSystem</i> Operating system that the game server binaries are built to run on. This value determines the type of fleet resources that you can use for this build.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SizeOnDisk</i> File size of the uploaded game build, expressed in bytes. When the build status is <code>INITIALIZED</code>, this value is 0.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Current status of the build. Possible build statuses include the following: <ul> <li>  <b>INITIALIZED</b> -- A new build has been defined, but no files have been uploaded. You cannot create fleets for builds that are in this status. When a build is successfully created, the build status is set to this value.  </li> <li>  <b>READY</b> -- The game build has been successfully uploaded. You can now create new fleets for this build. </li> <li>  <b>FAILED</b> -- The game build upload failed. You cannot create new fleets for this build.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> Version information that is associated with a build or script. Version strings do not need to be unique. This value can be set using <a>CreateBuild</a> or <a>UpdateBuild</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A descriptive label that is associated with a build. Build names do not need to be unique. It can be set using <a>CreateBuild</a> or <a>UpdateBuild</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BuildArn</i> The Amazon Resource Name (<a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html">ARN</a>) that is assigned to a GameLift build resource and uniquely identifies it. ARNs are unique across all Regions. Format is <code>arn:aws:gamelift:&lt;region&gt;::build/build-a1234567-b8c9-0d1e-2fa3-b45c6d7e8912</code>. In a GameLift build ARN, the resource ID matches the <i>BuildId</i> value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BuildId</i> A unique identifier for the build.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SessionToken</i> Token used to associate a specific build ID with the files uploaded using these credentials.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretAccessKey</i> Temporary secret key allowing access to the Amazon GameLift S3 account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccessKeyId</i> Temporary key allowing access to the Amazon GameLift S3 account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ObjectVersion</i> The version of the file, if object versioning is turned on for the bucket. Amazon GameLift uses this information when retrieving files from an S3 bucket that you own. Use this parameter to specify a specific version of the file. If not set, the latest version of the file is retrieved. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The Amazon Resource Name (<a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html">ARN</a>) for an IAM role that allows Amazon GameLift to access the S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The name of the zip file that contains the build files or script files. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i> An Amazon S3 bucket identifier. This is the name of the S3 bucket. <note> GameLift currently does not support uploading from Amazon S3 buckets with names that contain a dot (.). </note><br/>        """
        pass

    def create_fleet(self, EC2InstanceType: str, Name: str, Description: str=None, BuildId: str=None, ScriptId: str=None, ServerLaunchPath: str=None, ServerLaunchParameters: str=None, LogPaths: List[NonZeroAndMaxString]=None, EC2InboundPermissions: List[IpPermission]=None, NewGameSessionProtectionPolicy: str=None, RuntimeConfiguration: RuntimeConfiguration=None, ResourceCreationLimitPolicy: ResourceCreationLimitPolicy=None, MetricGroups: List[MetricGroup]=None, PeerVpcAwsAccountId: str=None, PeerVpcId: str=None, FleetType: str=None, InstanceRoleArn: str=None, CertificateConfiguration: CertificateConfiguration=None, Locations: List[LocationConfiguration]=None, Tags: List[Tag]=None) -> CreateFleetOutput:
        r"""Creates a fleet of Amazon Elastic Compute Cloud (Amazon EC2) instances to host your custom game server or Realtime Servers. Use this operation to configure the computing resources for your fleet and provide instructions for running game servers on each instance. Most GameLift fleets can deploy instances to multiple locations, including the home Region (where the fleet is created) and an optional set of remote locations. Fleets that are created in the following AWS Regions support multiple locations: us-east-1 (N. Virginia), us-west-2 (Oregon), eu-central-1 (Frankfurt), eu-west-1 (Ireland), ap-southeast-2 (Sydney), ap-northeast-1 (Tokyo), and ap-northeast-2 (Seoul). Fleets that are created in other GameLift Regions can deploy instances in the fleet's home Region only. All fleet instances use the same configuration regardless of location; however, you can adjust capacity settings and turn auto-scaling on/off for each location. To create a fleet, choose the hardware for your instances, specify a game server build or Realtime script to deploy, and provide a runtime configuration to direct GameLift how to start and run game servers on each instance in the fleet. Set permissions for inbound traffic to your game servers, and enable optional features as needed. When creating a multi-location fleet, provide a list of additional remote locations. If successful, this operation creates a new Fleet resource and places it in <code>NEW</code> status, which prompts GameLift to initiate the <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/fleets-creation-workflow.html">fleet creation workflow</a>. You can track fleet creation by checking fleet status using <a>DescribeFleetAttributes</a> and <a>DescribeFleetLocationAttributes</a>/, or by monitoring fleet creation events using <a>DescribeFleetEvents</a>. As soon as the fleet status changes to <code>ACTIVE</code>, you can enable automatic scaling for the fleet with <a>PutScalingPolicy</a> and set capacity for the home Region with <a>UpdateFleetCapacity</a>. When the status of each remote location reaches <code>ACTIVE</code>, you can set capacity by location using <a>UpdateFleetCapacity</a>.  <b>Learn more</b>   <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/fleets-intro.html">Setting up fleets</a>   <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/fleets-creating-debug.html#fleets-creating-debug-creation">Debug fleet creation issues</a>   <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/fleets-intro.html">Multi-location fleets</a>   <b>Related actions</b>   <a>CreateFleet</a> | <a>UpdateFleetCapacity</a> | <a>PutScalingPolicy</a> | <a>DescribeEC2InstanceLimits</a> | <a>DescribeFleetAttributes</a> | <a>DescribeFleetLocationAttributes</a> | <a>UpdateFleetAttributes</a> | <a>StopFleetActions</a> | <a>DeleteFleet</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets">All APIs by task</a> 

        :param self:
        :param Tags:  A list of labels to assign to the new fleet resource. Tags are developer-defined key-value pairs. Tagging AWS resources are useful for resource management, access management and cost allocation. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html"> Tagging AWS Resources</a> in the <i>AWS General Reference</i>. Once the fleet is created, you can use <a>TagResource</a>, <a>UntagResource</a>, and <a>ListTagsForResource</a> to add, remove, and view tags. The maximum tag limit may be lower than stated. See the <i>AWS General Reference</i> for actual tagging limits.<br/>Locations:  A set of remote locations to deploy additional instances to and manage as part of the fleet. This parameter can only be used when creating fleets in AWS Regions that support multiple locations. You can add any GameLift-supported AWS Region as a remote location, in the form of an AWS Region code such as <code>us-west-2</code>. To create a fleet with instances in the home Region only, omit this parameter. <br/>CertificateConfiguration:  Prompts GameLift to generate a TLS/SSL certificate for the fleet. TLS certificates are used for encrypting traffic between game clients and the game servers that are running on GameLift. By default, the <code>CertificateConfiguration</code> is set to <code>DISABLED</code>. Learn more at <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-howitworks.html#gamelift-howitworks-security">Securing Client/Server Communication</a>. This property cannot be changed after the fleet is created.  Note: This feature requires the AWS Certificate Manager (ACM) service, which is not available in all AWS regions. When working in a region that does not support this feature, a fleet creation request with certificate generation fails with a 4xx error.:<br/>InstanceRoleArn:  A unique identifier for an AWS IAM role that manages access to your AWS services. With an instance role ARN set, any application that runs on an instance in this fleet can assume the role, including install scripts, server processes, and daemons (background processes). Create a role or look up a role's ARN by using the <a href="https://console.aws.amazon.com/iam/">IAM dashboard</a> in the AWS Management Console. Learn more about using on-box credentials for your game servers at <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-resources.html"> Access external resources from a game server</a>. This property cannot be changed after the fleet is created.<br/>FleetType:  Indicates whether to use On-Demand or Spot instances for this fleet. By default, this property is set to <code>ON_DEMAND</code>. Learn more about when to use <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-ec2-instances.html#gamelift-ec2-instances-spot"> On-Demand versus Spot Instances</a>. This property cannot be changed after the fleet is created.<br/>PeerVpcId:  A unique identifier for a VPC with resources to be accessed by your GameLift fleet. The VPC must be in the same Region as your fleet. To look up a VPC ID, use the <a href="https://console.aws.amazon.com/vpc/">VPC Dashboard</a> in the AWS Management Console. Learn more about VPC peering in <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/vpc-peering.html">VPC Peering with GameLift Fleets</a>. <br/>PeerVpcAwsAccountId:  Used when peering your GameLift fleet with a VPC, the unique identifier for the AWS account that owns the VPC. You can find your account ID in the AWS Management Console under account settings. <br/>MetricGroups:  The name of an AWS CloudWatch metric group to add this fleet to. A metric group is used to aggregate the metrics for multiple fleets. You can specify an existing metric group name or set a new name to create a new metric group. A fleet can be included in only one metric group at a time. <br/>ResourceCreationLimitPolicy:  A policy that limits the number of game sessions that an individual player can create on instances in this fleet within a specified span of time.:<br/>RuntimeConfiguration:  Instructions for how to launch and maintain server processes on instances in the fleet. The runtime configuration defines one or more server process configurations, each identifying a build executable or Realtime script file and the number of processes of that type to run concurrently.  <note> The <code>RuntimeConfiguration</code> parameter is required unless the fleet is being configured using the older parameters <code>ServerLaunchPath</code> and <code>ServerLaunchParameters</code>, which are still supported for backward compatibility. </note>:<br/>NewGameSessionProtectionPolicy:  The status of termination protection for active game sessions on the fleet. By default, this property is set to <code>NoProtection</code>. You can also set game session protection for an individual game session by calling <a>UpdateGameSession</a>. <ul> <li>  <b>NoProtection</b> - Game sessions can be terminated during active gameplay as a result of a scale-down event.  </li> <li>  <b>FullProtection</b> - Game sessions in <code>ACTIVE</code> status cannot be terminated during a scale-down event. </li> </ul><br/>EC2InboundPermissions:  The allowed IP address ranges and port settings that allow inbound traffic to access game sessions on this fleet. If the fleet is hosting a custom game build, this property must be set before players can connect to game sessions. For Realtime Servers fleets, GameLift automatically sets TCP and UDP ranges. <br/>EC2InstanceType:  The GameLift-supported EC2 instance type to use for all fleet instances. Instance type determines the computing resources that will be used to host your game servers, including CPU, memory, storage, and networking capacity. See <a href="http://aws.amazon.com/ec2/instance-types/">Amazon EC2 Instance Types</a> for detailed descriptions of EC2 instance types.<br/>LogPaths:   <b>This parameter is no longer used.</b> To specify where GameLift should store log files once a server process shuts down, use the GameLift server API <code>ProcessReady()</code> and specify one or more directory paths in <code>logParameters</code>. See more information in the <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api-ref.html#gamelift-sdk-server-api-ref-dataypes-process">Server API Reference</a>. <br/>ServerLaunchParameters:   <b>This parameter is no longer used.</b> Specify server launch parameters using the <code>RuntimeConfiguration</code> parameter. Requests that use this parameter instead continue to be valid.<br/>ServerLaunchPath:   <b>This parameter is no longer used.</b> Specify a server launch path using the <code>RuntimeConfiguration</code> parameter. Requests that use this parameter instead continue to be valid.<br/>ScriptId:  The unique identifier for a Realtime configuration script to be deployed on fleet instances. You can use either the script ID or ARN. Scripts must be uploaded to GameLift prior to creating the fleet. This fleet property cannot be changed later.<br/>BuildId:  The unique identifier for a custom game server build to be deployed on fleet instances. You can use either the build ID or ARN. The build must be uploaded to GameLift and in <code>READY</code> status. This fleet property cannot be changed later.<br/>Description:  A human-readable description of the fleet.<br/>Name:  A descriptive label that is associated with a fleet. Fleet names do not need to be unique.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GameSessionActivationTimeoutSeconds</i> The maximum amount of time (in seconds) allowed to launch a new game session and have it report ready to host players. During this time, the game session is in status <code>ACTIVATING</code>. If the game session does not become active before the timeout, it is ended and the game session status is changed to <code>TERMINATED</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxConcurrentGameSessionActivations</i> The number of game sessions in status <code>ACTIVATING</code> to allow on an instance. This setting limits the instance resources that can be used for new game activations at any one time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerProcesses</i> A collection of server process configurations that identify what server processes to run on each instance in a fleet.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PolicyPeriodInMinutes</i> The time span used in evaluating the resource creation limit policy. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NewGameSessionsPerCreator</i> The maximum number of game sessions that an individual can create during the policy period. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CertificateType</i> Indicates whether a TLS/SSL certificate is generated for a fleet.  Valid values include:  <ul> <li>  <b>GENERATED</b> - Generate a TLS/SSL certificate for this fleet. </li> <li>  <b>DISABLED</b> - (default) Do not generate a TLS/SSL certificate for this fleet.  </li> </ul>  <br/>
        :return: LocationStates:  The fleet's locations and life-cycle status of each location. For new fleets, the status of all locations is set to <code>NEW</code>. During fleet creation, GameLift updates each location status as instances are deployed there and prepared for game hosting. This list includes an entry for the fleet's home Region. For fleets with no remote locations, only one entry, representing the home Region, is returned.<br/>FleetAttributes:  The properties for the new fleet, including the current status. All fleets are placed in <code>NEW</code> status on creation. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CertificateConfiguration</i> Indicates whether a TLS/SSL certificate was generated for the fleet. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CertificateConfiguration</b>: Indicates whether a TLS/SSL certificate was generated for the fleet. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceRoleArn</i> A unique identifier for an AWS IAM role that manages access to your AWS services. With an instance role ARN set, any application that runs on an instance in this fleet can assume the role, including install scripts, server processes, and daemons (background processes). Create a role or look up a role's ARN by using the <a href="https://console.aws.amazon.com/iam/">IAM dashboard</a> in the AWS Management Console. Learn more about using on-box credentials for your game servers at <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-resources.html"> Access external resources from a game server</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StoppedActions</i> A list of fleet activity that has been suspended using <a>StopFleetActions</a>. This includes fleet auto-scaling.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MetricGroups</i> Name of a metric group that metrics for this fleet are added to. In Amazon CloudWatch, you can view aggregated metrics for fleets that are in a metric group. A fleet can be included in only one metric group at a time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceCreationLimitPolicy</i> The fleet policy that limits the number of game sessions an individual player can create over a span of time.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ResourceCreationLimitPolicy</b>: The fleet policy that limits the number of game sessions an individual player can create over a span of time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OperatingSystem</i> The operating system of the fleet's computing resources. A fleet's operating system is determined by the OS of the build or script that is deployed on this fleet.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NewGameSessionProtectionPolicy</i> The type of game session protection to set on all new instances that are started in the fleet. <ul> <li>  <b>NoProtection</b> -- The game session can be terminated during a scale-down event. </li> <li>  <b>FullProtection</b> -- If the game session is in an <code>ACTIVE</code> status, it cannot be terminated during a scale-down event. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogPaths</i>  <b>This parameter is no longer used.</b> Game session log paths are now defined using the GameLift server API <code>ProcessReady()</code> <code>logParameters</code>. See more information in the <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api-ref.html#gamelift-sdk-server-api-ref-dataypes-process">Server API Reference</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerLaunchParameters</i>  <b>This parameter is no longer used.</b> Server launch parameters are now defined using the fleet's <a>RuntimeConfiguration</a> parameter. Requests that use this parameter instead continue to be valid.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerLaunchPath</i>  <b>This parameter is no longer used.</b> Server launch paths are now defined using the fleet's <a>RuntimeConfiguration</a> parameter. Requests that use this parameter instead continue to be valid.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ScriptArn</i>  The Amazon Resource Name (<a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html">ARN</a>) associated with the GameLift script resource that is deployed on instances in this fleet. In a GameLift script ARN, the resource ID matches the <code>ScriptId</code> value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ScriptId</i> A unique identifier for the Realtime script resource that is deployed on instances in this fleet.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BuildArn</i>  The Amazon Resource Name (<a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html">ARN</a>) associated with the GameLift build resource that is deployed on instances in this fleet. In a GameLift build ARN, the resource ID matches the <code>BuildId</code> value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BuildId</i> A unique identifier for the build resource that is deployed on instances in this fleet.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Current status of the fleet. Possible fleet statuses include the following: <ul> <li>  <b>NEW</b> -- A new fleet has been defined and desired instances is set to 1.  </li> <li>  <b>DOWNLOADING/VALIDATING/BUILDING/ACTIVATING</b> -- GameLift is setting up the new fleet, creating new instances with the game build or Realtime script and starting server processes. </li> <li>  <b>ACTIVE</b> -- Hosts can now accept game sessions. </li> <li>  <b>ERROR</b> -- An error occurred when downloading, validating, building, or activating the fleet. </li> <li>  <b>DELETING</b> -- Hosts are responding to a delete fleet request. </li> <li>  <b>TERMINATED</b> -- The fleet no longer exists. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TerminationTime</i> A time stamp indicating when this data object was terminated. Format is a number expressed in Unix time as milliseconds (for example <code>"1469498468.057"</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> A time stamp indicating when this data object was created. Format is a number expressed in Unix time as milliseconds (for example <code>"1469498468.057"</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A descriptive label that is associated with a fleet. Fleet names do not need to be unique.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A human-readable description of the fleet.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceType</i> The EC2 instance type that determines the computing resources of each instance in the fleet. Instance type defines the CPU, memory, storage, and networking capacity. See <a href="http://aws.amazon.com/ec2/instance-types/">Amazon EC2 Instance Types</a> for detailed descriptions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FleetType</i> The kind of instances, On-Demand or Spot, that this fleet uses.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FleetArn</i> The Amazon Resource Name (<a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html">ARN</a>) that is assigned to a GameLift fleet resource and uniquely identifies it. ARNs are unique across all Regions. Format is <code>arn:aws:gamelift:&lt;region&gt;::fleet/fleet-a1234567-b8c9-0d1e-2fa3-b45c6d7e8912</code>. In a GameLift fleet ARN, the resource ID matches the <code>FleetId</code> value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FleetId</i> A unique identifier for the fleet.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PolicyPeriodInMinutes</i> The time span used in evaluating the resource creation limit policy. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NewGameSessionsPerCreator</i> The maximum number of game sessions that an individual can create during the policy period. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CertificateType</i> Indicates whether a TLS/SSL certificate is generated for a fleet.  Valid values include:  <ul> <li>  <b>GENERATED</b> - Generate a TLS/SSL certificate for this fleet. </li> <li>  <b>DISABLED</b> - (default) Do not generate a TLS/SSL certificate for this fleet.  </li> </ul>  <br/>        """
        pass

    def create_fleet_locations(self, Locations: List[LocationConfiguration], FleetId: str) -> CreateFleetLocationsOutput:
        r"""Adds remote locations to a fleet and begins populating the new locations with EC2 instances. The new instances conform to the fleet's instance type, auto-scaling, and other configuration settings.  <note> This operation cannot be used with fleets that don't support remote locations. Fleets can have multiple locations only if they reside in AWS Regions that support this feature (see <a>CreateFleet</a> for the complete list) and were created after the feature was released in March 2021. </note> To add fleet locations, specify the fleet to be updated and provide a list of one or more locations.  If successful, this operation returns the list of added locations with their status set to <code>NEW</code>. GameLift initiates the process of starting an instance in each added location. You can track the status of each new location by monitoring location creation events using <a>DescribeFleetEvents</a>. Alternatively, you can poll location status by calling <a>DescribeFleetLocationAttributes</a>. After a location status becomes <code>ACTIVE</code>, you can adjust the location's capacity as needed with <a>UpdateFleetCapacity</a>.  <b>Learn more</b>   <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/fleets-intro.html">Setting up fleets</a>   <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/fleets-intro.html">Multi-location fleets</a>   <b>Related actions</b>   <a>CreateFleetLocations</a> | <a>DescribeFleetLocationAttributes</a> | <a>DescribeFleetLocationCapacity</a> | <a>DescribeFleetLocationUtilization</a> | <a>DescribeFleetAttributes</a> | <a>DescribeFleetCapacity</a> | <a>DescribeFleetUtilization</a> | <a>UpdateFleetCapacity</a> | <a>StopFleetActions</a> | <a>DeleteFleetLocations</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets">All APIs by task</a> 

        :param self:
        :param Locations:  A list of locations to deploy additional instances to and manage as part of the fleet. You can add any GameLift-supported AWS Region as a remote location, in the form of an AWS Region code such as <code>us-west-2</code>. <br/>FleetId:  A unique identifier for the fleet to add locations to. You can use either the fleet ID or ARN value.<br/>
        :return: LocationStates:  The remote locations that are being added to the fleet, and the life-cycle status of each location. For new locations, the status is set to <code>NEW</code>. During location creation, GameLift updates each location's status as instances are deployed there and prepared for game hosting. This list does not include the fleet home Region or any remote locations that were already added to the fleet.<br/>FleetArn:  The Amazon Resource Name (<a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html">ARN</a>) that is assigned to a GameLift fleet resource and uniquely identifies it. ARNs are unique across all Regions. Format is <code>arn:aws:gamelift:&lt;region&gt;::fleet/fleet-a1234567-b8c9-0d1e-2fa3-b45c6d7e8912</code>. <br/>FleetId:  A unique identifier for the fleet that was updated with new locations.<br/>        """
        pass

    def create_game_server_group(self, InstanceDefinitions: List[InstanceDefinition], LaunchTemplate: LaunchTemplateSpecification, MaxSize: int, MinSize: int, RoleArn: str, GameServerGroupName: str, AutoScalingPolicy: GameServerGroupAutoScalingPolicy=None, BalancingStrategy: str=None, GameServerProtectionPolicy: str=None, VpcSubnets: List[VpcSubnet]=None, Tags: List[Tag]=None) -> CreateGameServerGroupOutput:
        r""" <b>This operation is used with the GameLift FleetIQ solution and game server groups.</b>  Creates a GameLift FleetIQ game server group for managing game hosting on a collection of Amazon EC2 instances for game hosting. This operation creates the game server group, creates an Auto Scaling group in your AWS account, and establishes a link between the two groups. You can view the status of your game server groups in the GameLift console. Game server group metrics and events are emitted to Amazon CloudWatch. Before creating a new game server group, you must have the following:  <ul> <li> An Amazon EC2 launch template that specifies how to launch Amazon EC2 instances with your game server build. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html"> Launching an Instance from a Launch Template</a> in the <i>Amazon EC2 User Guide</i>.  </li> <li> An IAM role that extends limited access to your AWS account to allow GameLift FleetIQ to create and interact with the Auto Scaling group. For more information, see <a href="https://docs.aws.amazon.com/gamelift/latest/fleetiqguide/gsg-iam-permissions-roles.html">Create IAM roles for cross-service interaction</a> in the <i>GameLift FleetIQ Developer Guide</i>. </li> </ul> To create a new game server group, specify a unique group name, IAM role and Amazon EC2 launch template, and provide a list of instance types that can be used in the group. You must also set initial maximum and minimum limits on the group's instance count. You can optionally set an Auto Scaling policy with target tracking based on a GameLift FleetIQ metric. Once the game server group and corresponding Auto Scaling group are created, you have full access to change the Auto Scaling group's configuration as needed. Several properties that are set when creating a game server group, including maximum/minimum size and auto-scaling policy settings, must be updated directly in the Auto Scaling group. Keep in mind that some Auto Scaling group properties are periodically updated by GameLift FleetIQ as part of its balancing activities to optimize for availability and cost.  <b>Learn more</b>   <a href="https://docs.aws.amazon.com/gamelift/latest/fleetiqguide/gsg-intro.html">GameLift FleetIQ Guide</a>   <b>Related actions</b>   <a>CreateGameServerGroup</a> | <a>ListGameServerGroups</a> | <a>DescribeGameServerGroup</a> | <a>UpdateGameServerGroup</a> | <a>DeleteGameServerGroup</a> | <a>ResumeGameServerGroup</a> | <a>SuspendGameServerGroup</a> | <a>DescribeGameServerInstances</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/fleetiqguide/reference-awssdk-fleetiq.html">All APIs by task</a> 

        :param self:
        :param Tags:  A list of labels to assign to the new game server group resource. Tags are developer-defined key-value pairs. Tagging AWS resources is useful for resource management, access management, and cost allocation. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html"> Tagging AWS Resources</a> in the <i>AWS General Reference</i>. Once the resource is created, you can use <a>TagResource</a>, <a>UntagResource</a>, and <a>ListTagsForResource</a> to add, remove, and view tags, respectively. The maximum tag limit may be lower than stated. See the AWS General Reference for actual tagging limits.<br/>VpcSubnets:  A list of virtual private cloud (VPC) subnets to use with instances in the game server group. By default, all GameLift FleetIQ-supported Availability Zones are used. You can use this parameter to specify VPCs that you've set up. This property cannot be updated after the game server group is created, and the corresponding Auto Scaling group will always use the property value that is set with this request, even if the Auto Scaling group is updated directly.<br/>GameServerProtectionPolicy:  A flag that indicates whether instances in the game server group are protected from early termination. Unprotected instances that have active game servers running might be terminated during a scale-down event, causing players to be dropped from the game. Protected instances cannot be terminated while there are active game servers running except in the event of a forced game server group deletion (see ). An exception to this is with Spot Instances, which can be terminated by AWS regardless of protection status. This property is set to <code>NO_PROTECTION</code> by default.<br/>BalancingStrategy:  Indicates how GameLift FleetIQ balances the use of Spot Instances and On-Demand Instances in the game server group. Method options include the following: <ul> <li>  <code>SPOT_ONLY</code> - Only Spot Instances are used in the game server group. If Spot Instances are unavailable or not viable for game hosting, the game server group provides no hosting capacity until Spot Instances can again be used. Until then, no new instances are started, and the existing nonviable Spot Instances are terminated (after current gameplay ends) and are not replaced. </li> <li>  <code>SPOT_PREFERRED</code> - (default value) Spot Instances are used whenever available in the game server group. If Spot Instances are unavailable, the game server group continues to provide hosting capacity by falling back to On-Demand Instances. Existing nonviable Spot Instances are terminated (after current gameplay ends) and are replaced with new On-Demand Instances. </li> <li>  <code>ON_DEMAND_ONLY</code> - Only On-Demand Instances are used in the game server group. No Spot Instances are used, even when available, while this balancing strategy is in force. </li> </ul><br/>AutoScalingPolicy:  Configuration settings to define a scaling policy for the Auto Scaling group that is optimized for game hosting. The scaling policy uses the metric <code>"PercentUtilizedGameServers"</code> to maintain a buffer of idle game servers that can immediately accommodate new games and players. After the Auto Scaling group is created, update this value directly in the Auto Scaling group using the AWS console or APIs.:<br/>InstanceDefinitions:  The EC2 instance types and sizes to use in the Auto Scaling group. The instance definitions must specify at least two different instance types that are supported by GameLift FleetIQ. For more information on instance types, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html">EC2 Instance Types</a> in the <i>Amazon EC2 User Guide</i>. You can optionally specify capacity weighting for each instance type. If no weight value is specified for an instance type, it is set to the default value "1". For more information about capacity weighting, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-instance-weighting.html"> Instance Weighting for Amazon EC2 Auto Scaling</a> in the Amazon EC2 Auto Scaling User Guide.<br/>LaunchTemplate:  The EC2 launch template that contains configuration settings and game server code to be deployed to all instances in the game server group. You can specify the template using either the template name or ID. For help with creating a launch template, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-launch-template.html">Creating a Launch Template for an Auto Scaling Group</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>. After the Auto Scaling group is created, update this value directly in the Auto Scaling group using the AWS console or APIs. <note> If you specify network interfaces in your launch template, you must explicitly set the property <code>AssociatePublicIpAddress</code> to "true". If no network interface is specified in the launch template, GameLift FleetIQ uses your account's default VPC. </note>:<br/>MaxSize:  The maximum number of instances allowed in the EC2 Auto Scaling group. During automatic scaling events, GameLift FleetIQ and EC2 do not scale up the group above this maximum. After the Auto Scaling group is created, update this value directly in the Auto Scaling group using the AWS console or APIs.<br/>MinSize:  The minimum number of instances allowed in the EC2 Auto Scaling group. During automatic scaling events, GameLift FleetIQ and EC2 do not scale down the group below this minimum. In production, this value should be set to at least 1. After the Auto Scaling group is created, update this value directly in the Auto Scaling group using the AWS console or APIs.<br/>RoleArn:  The Amazon Resource Name (<a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html">ARN</a>) for an IAM role that allows Amazon GameLift to access your EC2 Auto Scaling groups.<br/>GameServerGroupName:  An identifier for the new game server group. This value is used to generate unique ARN identifiers for the EC2 Auto Scaling group and the GameLift FleetIQ game server group. The name must be unique per Region per AWS account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The version of the EC2 launch template to use. If no version is specified, the default version will be used. With Amazon EC2, you can specify a default version for a launch template. If none is set, the default is the first version created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LaunchTemplateName</i> A readable identifier for an existing EC2 launch template. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LaunchTemplateId</i> A unique identifier for an existing EC2 launch template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetTrackingConfiguration</i> Settings for a target-based scaling policy applied to Auto Scaling group. These settings are used to create a target-based policy that tracks the GameLift FleetIQ metric <code>"PercentUtilizedGameServers"</code> and specifies a target value for the metric. As player usage changes, the policy triggers to adjust the game server group capacity so that the metric returns to the target value. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TargetTrackingConfiguration</b>: Settings for a target-based scaling policy applied to Auto Scaling group. These settings are used to create a target-based policy that tracks the GameLift FleetIQ metric <code>"PercentUtilizedGameServers"</code> and specifies a target value for the metric. As player usage changes, the policy triggers to adjust the game server group capacity so that the metric returns to the target value. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EstimatedInstanceWarmup</i> Length of time, in seconds, it takes for a new instance to start new game server processes and register with GameLift FleetIQ. Specifying a warm-up time can be useful, particularly with game servers that take a long time to start up, because it avoids prematurely starting new instances. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetValue</i> Desired value to use with a game server group target-based scaling policy. <br/>
        :return: GameServerGroup:  The newly created game server group object, including the new ARN value for the GameLift FleetIQ game server group and the object's status. The EC2 Auto Scaling group ARN is initially null, since the group has not yet been created. This value is added once the game server group status reaches <code>ACTIVE</code>. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdatedTime</i> A timestamp that indicates when this game server group was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> A time stamp indicating when this data object was created. Format is a number expressed in Unix time as milliseconds (for example <code>"1469498468.057"</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SuspendedActions</i> A list of activities that are currently suspended for this game server group. If this property is empty, all activities are occurring.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusReason</i> Additional information about the current game server group status. This information might provide additional insight on groups that are in <code>ERROR</code> status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current status of the game server group. Possible statuses include: <ul> <li>  <code>NEW</code> - GameLift FleetIQ has validated the <code>CreateGameServerGroup()</code> request.  </li> <li>  <code>ACTIVATING</code> - GameLift FleetIQ is setting up a game server group, which includes creating an Auto Scaling group in your AWS account.  </li> <li>  <code>ACTIVE</code> - The game server group has been successfully created.  </li> <li>  <code>DELETE_SCHEDULED</code> - A request to delete the game server group has been received.  </li> <li>  <code>DELETING</code> - GameLift FleetIQ has received a valid <code>DeleteGameServerGroup()</code> request and is processing it. GameLift FleetIQ must first complete and release hosts before it deletes the Auto Scaling group and the game server group.  </li> <li>  <code>DELETED</code> - The game server group has been successfully deleted.  </li> <li>  <code>ERROR</code> - The asynchronous processes of activating or deleting a game server group has failed, resulting in an error state. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoScalingGroupArn</i> A generated unique ID for the EC2 Auto Scaling group that is associated with this game server group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GameServerProtectionPolicy</i> A flag that indicates whether instances in the game server group are protected from early termination. Unprotected instances that have active game servers running might be terminated during a scale-down event, causing players to be dropped from the game. Protected instances cannot be terminated while there are active game servers running except in the event of a forced game server group deletion (see ). An exception to this is with Spot Instances, which can be terminated by AWS regardless of protection status. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BalancingStrategy</i> Indicates how GameLift FleetIQ balances the use of Spot Instances and On-Demand Instances in the game server group. Method options include the following: <ul> <li>  <code>SPOT_ONLY</code> - Only Spot Instances are used in the game server group. If Spot Instances are unavailable or not viable for game hosting, the game server group provides no hosting capacity until Spot Instances can again be used. Until then, no new instances are started, and the existing nonviable Spot Instances are terminated (after current gameplay ends) and are not replaced. </li> <li>  <code>SPOT_PREFERRED</code> - (default value) Spot Instances are used whenever available in the game server group. If Spot Instances are unavailable, the game server group continues to provide hosting capacity by falling back to On-Demand Instances. Existing nonviable Spot Instances are terminated (after current gameplay ends) and are replaced with new On-Demand Instances. </li> <li>  <code>ON_DEMAND_ONLY</code> - Only On-Demand Instances are used in the game server group. No Spot Instances are used, even when available, while this balancing strategy is in force. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceDefinitions</i> The set of EC2 instance types that GameLift FleetIQ can use when balancing and automatically scaling instances in the corresponding Auto Scaling group. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The Amazon Resource Name (<a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html">ARN</a>) for an IAM role that allows Amazon GameLift to access your EC2 Auto Scaling groups.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GameServerGroupArn</i> A generated unique ID for the game server group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GameServerGroupName</i> A developer-defined identifier for the game server group. The name is unique for each Region in each AWS account.<br/>        """
        pass

    def create_game_session(self, MaximumPlayerSessionCount: int, FleetId: str=None, AliasId: str=None, Name: str=None, GameProperties: List[GameProperty]=None, CreatorId: str=None, GameSessionId: str=None, IdempotencyToken: str=None, GameSessionData: str=None, Location: str=None) -> CreateGameSessionOutput:
        r"""Creates a multiplayer game session for players in a specific fleet location. This operation prompts an available server process to start a game session and retrieves connection information for the new game session. As an alternative, consider using the GameLift game session placement feature with  with <a>StartGameSessionPlacement</a>, which uses FleetIQ algorithms and queues to optimize the placement process. When creating a game session, you specify exactly where you want to place it and provide a set of game session configuration settings. The fleet must be in <code>ACTIVE</code> status before a game session can be created in it.  This operation can be used in the following ways:  <ul> <li> To create a game session on an instance in a fleet's home Region, provide a fleet or alias ID along with your game session configuration.  </li> <li> To create a game session on an instance in a fleet's remote location, provide a fleet or alias ID and a location name, along with your game session configuration.  </li> </ul> If successful, a workflow is initiated to start a new game session. A <code>GameSession</code> object is returned containing the game session configuration and status. When the status is <code>ACTIVE</code>, game session connection information is provided and player sessions can be created for the game session. By default, newly created game sessions are open to new players. You can restrict new player access by using <a>UpdateGameSession</a> to change the game session's player session creation policy. Game session logs are retained for all active game sessions for 14 days. To access the logs, call <a>GetGameSessionLogUrl</a> to download the log files.  <i>Available in GameLift Local.</i>   <b>Learn more</b>   <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession">Start a game session</a>   <b>Related actions</b>   <a>CreateGameSession</a> | <a>DescribeGameSessions</a> | <a>DescribeGameSessionDetails</a> | <a>SearchGameSessions</a> | <a>UpdateGameSession</a> | <a>GetGameSessionLogUrl</a> | <a>StartGameSessionPlacement</a> | <a>DescribeGameSessionPlacement</a> | <a>StopGameSessionPlacement</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets">All APIs by task</a> 

        :param self:
        :param Location:  A fleet's remote location to place the new game session in. If this parameter is not set, the new game session is placed in the fleet's home Region. Specify a remote location with an AWS Region code such as <code>us-west-2</code>. <br/>GameSessionData:  A set of custom game session properties, formatted as a single string value. This data is passed to a game server process in the <a>GameSession</a> object with a request to start a new game session.<br/>IdempotencyToken:  Custom string that uniquely identifies the new game session request. This is useful for ensuring that game session requests with the same idempotency token are processed only once. Subsequent requests with the same string return the original <code>GameSession</code> object, with an updated status. Maximum token length is 48 characters. If provided, this string is included in the new game session's ID. A game session ARN has the following format: <code>arn:aws:gamelift:&lt;region&gt;::gamesession/&lt;fleet ID&gt;/&lt;custom ID string or idempotency token&gt;</code>. Idempotency tokens remain in use for 30 days after a game session has ended; game session objects are retained for this time period and then deleted.<br/>GameSessionId:   <i>This parameter is no longer preferred. Please use <code>IdempotencyToken</code> instead.</i> Custom string that uniquely identifies a request for a new game session. Maximum token length is 48 characters. If provided, this string is included in the new game session's ID.<br/>CreatorId:  A unique identifier for a player or entity creating the game session. This parameter is required when requesting a new game session on a fleet with a resource creation limit policy. This type of policy limits the number of concurrent active game sessions that one player can create within a certain time span. GameLift uses the CreatorId to evaluate the new request against the policy.<br/>GameProperties:  A set of custom properties for a game session, formatted as key:value pairs. These properties are passed to a game server process in the <a>GameSession</a> object with a request to start a new game session.<br/>Name:  A descriptive label that is associated with a game session. Session names do not need to be unique.<br/>MaximumPlayerSessionCount:  The maximum number of players that can be connected simultaneously to the game session.<br/>AliasId:  A unique identifier for the alias associated with the fleet to create a game session in. You can use either the alias ID or ARN value. Each request must reference either a fleet ID or alias ID, but not both.<br/>FleetId:  A unique identifier for the fleet to create a game session in. You can use either the fleet ID or ARN value. Each request must reference either a fleet ID or alias ID, but not both.<br/>
        :return: GameSession:  Object that describes the newly created game session record.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Location</i> The fleet location where the game session is running. This value might specify the fleet's home Region or a remote location. Location is expressed as an AWS Region code such as <code>us-west-2</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MatchmakerData</i> Information about the matchmaking process that was used to create the game session. It is in JSON syntax, formatted as a string. In addition the matchmaking configuration used, it contains data on all players assigned to the match, including player attributes and team assignments. For more details on matchmaker data, see <a href="https://docs.aws.amazon.com/gamelift/latest/flexmatchguide/match-server.html#match-server-data">Match Data</a>. Matchmaker data is useful when requesting match backfills, and is updated whenever new players are added during a successful backfill (see <a>StartMatchBackfill</a>). <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GameSessionData</i> A set of custom game session properties, formatted as a single string value. This data is passed to a game server process in the <a>GameSession</a> object with a request to start a new game session.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatorId</i> A unique identifier for a player. This ID is used to enforce a resource protection policy (if one exists), that limits the number of game sessions a player can create.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PlayerSessionCreationPolicy</i> Indicates whether or not the game session is accepting new players.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> The port number for the game session. To connect to a GameLift game server, an app needs both the IP address and port number.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DnsName</i> The DNS identifier assigned to the instance that is running the game session. Values have the following format: <ul> <li> TLS-enabled fleets: <code>&lt;unique identifier&gt;.&lt;region identifier&gt;.amazongamelift.com</code>. </li> <li> Non-TLS-enabled fleets: <code>ec2-&lt;unique identifier&gt;.compute.amazonaws.com</code>. (See <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-instance-addressing.html#concepts-public-addresses">Amazon EC2 Instance IP Addressing</a>.) </li> </ul> When connecting to a game session that is running on a TLS-enabled fleet, you must use the DNS name, not the IP address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IpAddress</i> The IP address of the game session. To connect to a GameLift game server, an app needs both the IP address and port number.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GameProperties</i> A set of custom properties for a game session, formatted as key:value pairs. These properties are passed to a game server process in the <a>GameSession</a> object with a request to start a new game session. You can search for active game sessions based on this custom data with <a>SearchGameSessions</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusReason</i> Provides additional information about game session status. <code>INTERRUPTED</code> indicates that the game session was hosted on a spot instance that was reclaimed, causing the active game session to be terminated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Current status of the game session. A game session must have an <code>ACTIVE</code> status to have player sessions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaximumPlayerSessionCount</i> The maximum number of players that can be connected simultaneously to the game session.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CurrentPlayerSessionCount</i> Number of players currently in the game session.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TerminationTime</i> A time stamp indicating when this data object was terminated. Format is a number expressed in Unix time as milliseconds (for example <code>"1469498468.057"</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> A time stamp indicating when this data object was created. Format is a number expressed in Unix time as milliseconds (for example <code>"1469498468.057"</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FleetArn</i>  The Amazon Resource Name (<a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html">ARN</a>) associated with the GameLift fleet that this game session is running on. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FleetId</i> A unique identifier for the fleet that the game session is running on.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A descriptive label that is associated with a game session. Session names do not need to be unique.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GameSessionId</i> A unique identifier for the game session. A game session ARN has the following format: <code>arn:aws:gamelift:&lt;region&gt;::gamesession/&lt;fleet ID&gt;/&lt;custom ID string or idempotency token&gt;</code>.<br/>        """
        pass

    def create_game_session_queue(self, Name: str, TimeoutInSeconds: int=None, PlayerLatencyPolicies: List[PlayerLatencyPolicy]=None, Destinations: List[GameSessionQueueDestination]=None, FilterConfiguration: FilterConfiguration=None, PriorityConfiguration: PriorityConfiguration=None, CustomEventData: str=None, NotificationTarget: str=None, Tags: List[Tag]=None) -> CreateGameSessionQueueOutput:
        r"""Creates a placement queue that processes requests for new game sessions. A queue uses FleetIQ algorithms to determine the best placement locations and find an available game server there, then prompts the game server process to start a new game session.  A game session queue is configured with a set of destinations (GameLift fleets or aliases), which determine the locations where the queue can place new game sessions. These destinations can span multiple fleet types (Spot and On-Demand), instance types, and AWS Regions. If the queue includes multi-location fleets, the queue is able to place game sessions in all of a fleet's remote locations. You can opt to filter out individual locations if needed. The queue configuration also determines how FleetIQ selects the best available placement for a new game session. Before searching for an available game server, FleetIQ first prioritizes the queue's destinations and locations, with the best placement locations on top. You can set up the queue to use the FleetIQ default prioritization or provide an alternate set of priorities. To create a new queue, provide a name, timeout value, and a list of destinations. Optionally, specify a sort configuration and/or a filter, and define a set of latency cap policies. You can also include the ARN for an Amazon Simple Notification Service (SNS) topic to receive notifications of game session placement activity. Notifications using SNS or CloudWatch events is the preferred way to track placement activity. If successful, a new <code>GameSessionQueue</code> object is returned with an assigned queue ARN. New game session requests, which are submitted to the queue with <a>StartGameSessionPlacement</a> or <a>StartMatchmaking</a>, reference a queue's name or ARN.   <b>Learn more</b>   <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/queues-design.html"> Design a game session queue</a>   <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/queues-creating.html"> Create a game session queue</a>   <b>Related actions</b>   <a>CreateGameSessionQueue</a> | <a>DescribeGameSessionQueues</a> | <a>UpdateGameSessionQueue</a> | <a>DeleteGameSessionQueue</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets">All APIs by task</a> 

        :param self:
        :param Tags:  A list of labels to assign to the new game session queue resource. Tags are developer-defined key-value pairs. Tagging AWS resources are useful for resource management, access management and cost allocation. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html"> Tagging AWS Resources</a> in the <i>AWS General Reference</i>. Once the resource is created, you can use <a>TagResource</a>, <a>UntagResource</a>, and <a>ListTagsForResource</a> to add, remove, and view tags. The maximum tag limit may be lower than stated. See the AWS General Reference for actual tagging limits.<br/>NotificationTarget:  An SNS topic ARN that is set up to receive game session placement notifications. See <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/queue-notification.html"> Setting up notifications for game session placement</a>.<br/>CustomEventData:   Information to be added to all events that are related to this game session queue. <br/>PriorityConfiguration:  Custom settings to use when prioritizing destinations and locations for game session placements. This configuration replaces the FleetIQ default prioritization process. Priority types that are not explicitly named will be automatically applied at the end of the prioritization process. :<br/>FilterConfiguration:  A list of locations where a queue is allowed to place new game sessions. Locations are specified in the form of AWS Region codes, such as <code>us-west-2</code>. If this parameter is not set, game sessions can be placed in any queue location. :<br/>Destinations:  A list of fleets and/or fleet aliases that can be used to fulfill game session placement requests in the queue. Destinations are identified by either a fleet ARN or a fleet alias ARN, and are listed in order of placement preference.<br/>PlayerLatencyPolicies:  A set of policies that act as a sliding cap on player latency. FleetIQ works to deliver low latency for most players in a game session. These policies ensure that no individual player can be placed into a game with unreasonably high latency. Use multiple policies to gradually relax latency requirements a step at a time. Multiple policies are applied based on their maximum allowed latency, starting with the lowest value.<br/>TimeoutInSeconds:  The maximum time, in seconds, that a new game session placement request remains in the queue. When a request exceeds this time, the game session placement changes to a <code>TIMED_OUT</code> status.<br/>Name:  A descriptive label that is associated with game session queue. Queue names must be unique within each Region.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowedLocations</i>  A list of locations to allow game session placement in, in the form of AWS Region codes such as <code>us-west-2</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LocationOrder</i> The prioritization order to use for fleet locations, when the <code>PriorityOrder</code> property includes <code>LOCATION</code>. Locations are identified by AWS Region codes such as <code>us-west-2</code>. Each location can only be listed once. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PriorityOrder</i> The recommended sequence to use when prioritizing where to place new game sessions. Each type can only be listed once. <ul> <li>  <code>LATENCY</code> -- FleetIQ prioritizes locations where the average player latency (provided in each game session request) is lowest.  </li> <li>  <code>COST</code> -- FleetIQ prioritizes destinations with the lowest current hosting costs. Cost is evaluated based on the location, instance type, and fleet type (Spot or On-Demand) for each destination in the queue. </li> <li>  <code>DESTINATION</code> -- FleetIQ prioritizes based on the order that destinations are listed in the queue configuration. </li> <li>  <code>LOCATION</code> -- FleetIQ prioritizes based on the provided order of locations, as defined in <code>LocationOrder</code>.  </li> </ul><br/>
        :return: GameSessionQueue:  An object that describes the newly created game session queue.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NotificationTarget</i> An SNS topic ARN that is set up to receive game session placement notifications. See <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/queue-notification.html"> Setting up notifications for game session placement</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomEventData</i>  Information that is added to all events that are related to this game session queue. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PriorityConfiguration</i> Custom settings to use when prioritizing destinations and locations for game session placements. This configuration replaces the FleetIQ default prioritization process. Priority types that are not explicitly named will be automatically applied at the end of the prioritization process. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PriorityConfiguration</b>: Custom settings to use when prioritizing destinations and locations for game session placements. This configuration replaces the FleetIQ default prioritization process. Priority types that are not explicitly named will be automatically applied at the end of the prioritization process. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FilterConfiguration</i> A list of locations where a queue is allowed to place new game sessions. Locations are specified in the form of AWS Region codes, such as <code>us-west-2</code>. If this parameter is not set, game sessions can be placed in any queue location. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>FilterConfiguration</b>: A list of locations where a queue is allowed to place new game sessions. Locations are specified in the form of AWS Region codes, such as <code>us-west-2</code>. If this parameter is not set, game sessions can be placed in any queue location. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Destinations</i> A list of fleets and/or fleet aliases that can be used to fulfill game session placement requests in the queue. Destinations are identified by either a fleet ARN or a fleet alias ARN, and are listed in order of placement preference.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PlayerLatencyPolicies</i> A set of policies that act as a sliding cap on player latency. FleetIQ works to deliver low latency for most players in a game session. These policies ensure that no individual player can be placed into a game with unreasonably high latency. Use multiple policies to gradually relax latency requirements a step at a time. Multiple policies are applied based on their maximum allowed latency, starting with the lowest value. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TimeoutInSeconds</i> The maximum time, in seconds, that a new game session placement request remains in the queue. When a request exceeds this time, the game session placement changes to a <code>TIMED_OUT</code> status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GameSessionQueueArn</i> The Amazon Resource Name (<a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html">ARN</a>) that is assigned to a GameLift game session queue resource and uniquely identifies it. ARNs are unique across all Regions. Format is <code>arn:aws:gamelift:&lt;region&gt;::gamesessionqueue/&lt;queue name&gt;</code>. In a GameLift game session queue ARN, the resource ID matches the <i>Name</i> value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A descriptive label that is associated with game session queue. Queue names must be unique within each Region.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowedLocations</i>  A list of locations to allow game session placement in, in the form of AWS Region codes such as <code>us-west-2</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LocationOrder</i> The prioritization order to use for fleet locations, when the <code>PriorityOrder</code> property includes <code>LOCATION</code>. Locations are identified by AWS Region codes such as <code>us-west-2</code>. Each location can only be listed once. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PriorityOrder</i> The recommended sequence to use when prioritizing where to place new game sessions. Each type can only be listed once. <ul> <li>  <code>LATENCY</code> -- FleetIQ prioritizes locations where the average player latency (provided in each game session request) is lowest.  </li> <li>  <code>COST</code> -- FleetIQ prioritizes destinations with the lowest current hosting costs. Cost is evaluated based on the location, instance type, and fleet type (Spot or On-Demand) for each destination in the queue. </li> <li>  <code>DESTINATION</code> -- FleetIQ prioritizes based on the order that destinations are listed in the queue configuration. </li> <li>  <code>LOCATION</code> -- FleetIQ prioritizes based on the provided order of locations, as defined in <code>LocationOrder</code>.  </li> </ul><br/>        """
        pass

    def create_matchmaking_configuration(self, RuleSetName: str, AcceptanceRequired: BooleanModel, RequestTimeoutSeconds: int, Name: str, Description: str=None, GameSessionQueueArns: List[ArnStringModel]=None, AcceptanceTimeoutSeconds: int=None, NotificationTarget: str=None, AdditionalPlayerCount: int=None, CustomEventData: str=None, GameProperties: List[GameProperty]=None, GameSessionData: str=None, BackfillMode: str=None, FlexMatchMode: str=None, Tags: List[Tag]=None) -> CreateMatchmakingConfigurationOutput:
        r"""Defines a new matchmaking configuration for use with FlexMatch. Whether your are using FlexMatch with GameLift hosting or as a standalone matchmaking service, the matchmaking configuration sets out rules for matching players and forming teams. If you're also using GameLift hosting, it defines how to start game sessions for each match. Your matchmaking system can use multiple configurations to handle different game scenarios. All matchmaking requests (<a>StartMatchmaking</a> or <a>StartMatchBackfill</a>) identify the matchmaking configuration to use and provide player attributes consistent with that configuration.  To create a matchmaking configuration, you must provide the following: configuration name and FlexMatch mode (with or without GameLift hosting); a rule set that specifies how to evaluate players and find acceptable matches; whether player acceptance is required; and the maximum time allowed for a matchmaking attempt. When using FlexMatch with GameLift hosting, you also need to identify the game session queue to use when starting a game session for the match. In addition, you must set up an Amazon Simple Notification Service (SNS) topic to receive matchmaking notifications. Provide the topic ARN in the matchmaking configuration. An alternative method, continuously polling ticket status with <a>DescribeMatchmaking</a>, is only suitable for games in development with low matchmaking usage.  <b>Learn more</b>   <a href="https://docs.aws.amazon.com/gamelift/latest/flexmatchguide/match-configuration.html"> Design a FlexMatch matchmaker</a>   <a href="https://docs.aws.amazon.com/gamelift/latest/flexmatchguide/match-notification.html"> Set up FlexMatch event notification</a>   <b>Related actions</b>   <a>CreateMatchmakingConfiguration</a> | <a>DescribeMatchmakingConfigurations</a> | <a>UpdateMatchmakingConfiguration</a> | <a>DeleteMatchmakingConfiguration</a> | <a>CreateMatchmakingRuleSet</a> | <a>DescribeMatchmakingRuleSets</a> | <a>ValidateMatchmakingRuleSet</a> | <a>DeleteMatchmakingRuleSet</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets">All APIs by task</a> 

        :param self:
        :param Tags:  A list of labels to assign to the new matchmaking configuration resource. Tags are developer-defined key-value pairs. Tagging AWS resources are useful for resource management, access management and cost allocation. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html"> Tagging AWS Resources</a> in the <i>AWS General Reference</i>. Once the resource is created, you can use <a>TagResource</a>, <a>UntagResource</a>, and <a>ListTagsForResource</a> to add, remove, and view tags. The maximum tag limit may be lower than stated. See the AWS General Reference for actual tagging limits.<br/>FlexMatchMode:  Indicates whether this matchmaking configuration is being used with GameLift hosting or as a standalone matchmaking solution.  <ul> <li>  <b>STANDALONE</b> - FlexMatch forms matches and returns match information, including players and team assignments, in a <a href="https://docs.aws.amazon.com/gamelift/latest/flexmatchguide/match-events.html#match-events-matchmakingsucceeded"> MatchmakingSucceeded</a> event. </li> <li>  <b>WITH_QUEUE</b> - FlexMatch forms matches and uses the specified GameLift queue to start a game session for the match.  </li> </ul><br/>BackfillMode:  The method used to backfill game sessions that are created with this matchmaking configuration. Specify <code>MANUAL</code> when your game manages backfill requests manually or does not use the match backfill feature. Specify <code>AUTOMATIC</code> to have GameLift create a <a>StartMatchBackfill</a> request whenever a game session has one or more open slots. Learn more about manual and automatic backfill in <a href="https://docs.aws.amazon.com/gamelift/latest/flexmatchguide/match-backfill.html"> Backfill Existing Games with FlexMatch</a>. Automatic backfill is not available when <code>FlexMatchMode</code> is set to <code>STANDALONE</code>.<br/>GameSessionData:  A set of custom game session properties, formatted as a single string value. This data is passed to a game server process in the <a>GameSession</a> object with a request to start a new game session (see <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession">Start a Game Session</a>). This information is added to the new <a>GameSession</a> object that is created for a successful match. This parameter is not used if <code>FlexMatchMode</code> is set to <code>STANDALONE</code>.<br/>GameProperties:  A set of custom properties for a game session, formatted as key:value pairs. These properties are passed to a game server process in the <a>GameSession</a> object with a request to start a new game session (see <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession">Start a Game Session</a>). This information is added to the new <a>GameSession</a> object that is created for a successful match. This parameter is not used if <code>FlexMatchMode</code> is set to <code>STANDALONE</code>.<br/>CustomEventData:  Information to be added to all events related to this matchmaking configuration. <br/>AdditionalPlayerCount:  The number of player slots in a match to keep open for future players. For example, if the configuration's rule set specifies a match for a single 12-person team, and the additional player count is set to 2, only 10 players are selected for the match. This parameter is not used if <code>FlexMatchMode</code> is set to <code>STANDALONE</code>.<br/>NotificationTarget:  An SNS topic ARN that is set up to receive matchmaking notifications. See <a href="https://docs.aws.amazon.com/gamelift/latest/flexmatchguide/match-notification.html"> Setting up notifications for matchmaking</a> for more information.<br/>RuleSetName:  A unique identifier for the matchmaking rule set to use with this configuration. You can use either the rule set name or ARN value. A matchmaking configuration can only use rule sets that are defined in the same Region.<br/>AcceptanceRequired:  A flag that determines whether a match that was created with this configuration must be accepted by the matched players. To require acceptance, set to <code>TRUE</code>. With this option enabled, matchmaking tickets use the status <code>REQUIRES_ACCEPTANCE</code> to indicate when a completed potential match is waiting for player acceptance. <br/>AcceptanceTimeoutSeconds:  The length of time (in seconds) to wait for players to accept a proposed match, if acceptance is required. <br/>RequestTimeoutSeconds:  The maximum duration, in seconds, that a matchmaking ticket can remain in process before timing out. Requests that fail due to timing out can be resubmitted as needed.<br/>GameSessionQueueArns:  The Amazon Resource Name (<a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html">ARN</a>) that is assigned to a GameLift game session queue resource and uniquely identifies it. ARNs are unique across all Regions. Format is <code>arn:aws:gamelift:&lt;region&gt;::gamesessionqueue/&lt;queue name&gt;</code>. Queues can be located in any Region. Queues are used to start new GameLift-hosted game sessions for matches that are created with this matchmaking configuration. If <code>FlexMatchMode</code> is set to <code>STANDALONE</code>, do not set this parameter. <br/>Description:  A human-readable description of the matchmaking configuration. <br/>Name:  A unique identifier for the matchmaking configuration. This name is used to identify the configuration associated with a matchmaking request or ticket.<br/>
        :return: Configuration:  Object that describes the newly created matchmaking configuration.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FlexMatchMode</i> Indicates whether this matchmaking configuration is being used with GameLift hosting or as a standalone matchmaking solution.  <ul> <li>  <b>STANDALONE</b> - FlexMatch forms matches and returns match information, including players and team assignments, in a <a href="https://docs.aws.amazon.com/gamelift/latest/flexmatchguide/match-events.html#match-events-matchmakingsucceeded"> MatchmakingSucceeded</a> event. </li> <li>  <b>WITH_QUEUE</b> - FlexMatch forms matches and uses the specified GameLift queue to start a game session for the match.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackfillMode</i> The method used to backfill game sessions created with this matchmaking configuration. MANUAL indicates that the game makes backfill requests or does not use the match backfill feature. AUTOMATIC indicates that GameLift creates <a>StartMatchBackfill</a> requests whenever a game session has one or more open slots. Learn more about manual and automatic backfill in <a href="https://docs.aws.amazon.com/gamelift/latest/flexmatchguide/match-backfill.html">Backfill existing games with FlexMatch</a>. Automatic backfill is not available when <code>FlexMatchMode</code> is set to <code>STANDALONE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GameSessionData</i> A set of custom game session properties, formatted as a single string value. This data is passed to a game server process in the <a>GameSession</a> object with a request to start a new game session (see <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession">Start a Game Session</a>). This information is added to the new <a>GameSession</a> object that is created for a successful match. This parameter is not used when <code>FlexMatchMode</code> is set to <code>STANDALONE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GameProperties</i> A set of custom properties for a game session, formatted as key:value pairs. These properties are passed to a game server process in the <a>GameSession</a> object with a request to start a new game session (see <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession">Start a Game Session</a>). This information is added to the new <a>GameSession</a> object that is created for a successful match. This parameter is not used when <code>FlexMatchMode</code> is set to <code>STANDALONE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> A time stamp indicating when this data object was created. Format is a number expressed in Unix time as milliseconds (for example <code>"1469498468.057"</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomEventData</i> Information to attach to all events related to the matchmaking configuration. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdditionalPlayerCount</i> The number of player slots in a match to keep open for future players. For example, if the configuration's rule set specifies a match for a single 12-person team, and the additional player count is set to 2, only 10 players are selected for the match. This parameter is not used when <code>FlexMatchMode</code> is set to <code>STANDALONE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NotificationTarget</i> An SNS topic ARN that is set up to receive matchmaking notifications.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RuleSetArn</i> The Amazon Resource Name (<a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html">ARN</a>) associated with the GameLift matchmaking rule set resource that this configuration uses.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RuleSetName</i> A unique identifier for the matchmaking rule set to use with this configuration. A matchmaking configuration can only use rule sets that are defined in the same Region.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AcceptanceRequired</i> A flag that indicates whether a match that was created with this configuration must be accepted by the matched players. To require acceptance, set to TRUE. When this option is enabled, matchmaking tickets use the status <code>REQUIRES_ACCEPTANCE</code> to indicate when a completed potential match is waiting for player acceptance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AcceptanceTimeoutSeconds</i> The length of time (in seconds) to wait for players to accept a proposed match, if acceptance is required. If any player rejects the match or fails to accept before the timeout, the ticket continues to look for an acceptable match.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequestTimeoutSeconds</i> The maximum duration, in seconds, that a matchmaking ticket can remain in process before timing out. Requests that fail due to timing out can be resubmitted as needed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GameSessionQueueArns</i> The Amazon Resource Name (<a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html">ARN</a>) that is assigned to a GameLift game session queue resource and uniquely identifies it. ARNs are unique across all Regions. Format is <code>arn:aws:gamelift:&lt;region&gt;::gamesessionqueue/&lt;queue name&gt;</code>. Queues can be located in any Region. Queues are used to start new GameLift-hosted game sessions for matches that are created with this matchmaking configuration. This property is not set when <code>FlexMatchMode</code> is set to <code>STANDALONE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A descriptive label that is associated with matchmaking configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConfigurationArn</i> The Amazon Resource Name (<a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html">ARN</a>) that is assigned to a GameLift matchmaking configuration resource and uniquely identifies it. ARNs are unique across all Regions. Format is <code>arn:aws:gamelift:&lt;region&gt;::matchmakingconfiguration/&lt;matchmaking configuration name&gt;</code>. In a GameLift configuration ARN, the resource ID matches the <i>Name</i> value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A unique identifier for the matchmaking configuration. This name is used to identify the configuration associated with a matchmaking request or ticket.<br/>        """
        pass

    def create_matchmaking_rule_set(self, RuleSetBody: str, Name: str, Tags: List[Tag]=None) -> CreateMatchmakingRuleSetOutput:
        r"""Creates a new rule set for FlexMatch matchmaking. A rule set describes the type of match to create, such as the number and size of teams. It also sets the parameters for acceptable player matches, such as minimum skill level or character type. A rule set is used by a <a>MatchmakingConfiguration</a>.  To create a matchmaking rule set, provide unique rule set name and the rule set body in JSON format. Rule sets must be defined in the same Region as the matchmaking configuration they are used with. Since matchmaking rule sets cannot be edited, it is a good idea to check the rule set syntax using <a>ValidateMatchmakingRuleSet</a> before creating a new rule set.  <b>Learn more</b>  <ul> <li>  <a href="https://docs.aws.amazon.com/gamelift/latest/flexmatchguide/match-rulesets.html">Build a rule set</a>  </li> <li>  <a href="https://docs.aws.amazon.com/gamelift/latest/flexmatchguide/match-configuration.html">Design a matchmaker</a>  </li> <li>  <a href="https://docs.aws.amazon.com/gamelift/latest/flexmatchguide/match-intro.html">Matchmaking with FlexMatch</a>  </li> </ul>  <b>Related actions</b>   <a>CreateMatchmakingConfiguration</a> | <a>DescribeMatchmakingConfigurations</a> | <a>UpdateMatchmakingConfiguration</a> | <a>DeleteMatchmakingConfiguration</a> | <a>CreateMatchmakingRuleSet</a> | <a>DescribeMatchmakingRuleSets</a> | <a>ValidateMatchmakingRuleSet</a> | <a>DeleteMatchmakingRuleSet</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets">All APIs by task</a> 

        :param self:
        :param Tags:  A list of labels to assign to the new matchmaking rule set resource. Tags are developer-defined key-value pairs. Tagging AWS resources are useful for resource management, access management and cost allocation. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html"> Tagging AWS Resources</a> in the <i>AWS General Reference</i>. Once the resource is created, you can use <a>TagResource</a>, <a>UntagResource</a>, and <a>ListTagsForResource</a> to add, remove, and view tags. The maximum tag limit may be lower than stated. See the AWS General Reference for actual tagging limits.<br/>RuleSetBody:  A collection of matchmaking rules, formatted as a JSON string. Comments are not allowed in JSON, but most elements support a description field.<br/>Name:  A unique identifier for the matchmaking rule set. A matchmaking configuration identifies the rule set it uses by this name value. Note that the rule set name is different from the optional <code>name</code> field in the rule set body.<br/>
        :return: RuleSet:  The newly created matchmaking rule set.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> A time stamp indicating when this data object was created. Format is a number expressed in Unix time as milliseconds (for example <code>"1469498468.057"</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RuleSetBody</i> A collection of matchmaking rules, formatted as a JSON string. Comments are not allowed in JSON, but most elements support a description field.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RuleSetArn</i> The Amazon Resource Name (<a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html">ARN</a>) that is assigned to a GameLift matchmaking rule set resource and uniquely identifies it. ARNs are unique across all Regions. Format is <code>arn:aws:gamelift:&lt;region&gt;::matchmakingruleset/&lt;ruleset name&gt;</code>. In a GameLift rule set ARN, the resource ID matches the <i>RuleSetName</i> value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RuleSetName</i> A unique identifier for the matchmaking rule set<br/>        """
        pass

    def create_player_session(self, PlayerId: str, GameSessionId: str, PlayerData: str=None) -> CreatePlayerSessionOutput:
        r"""Reserves an open player slot in a game session for a player. New player sessions can be created in any game session with an open slot that is in <code>ACTIVE</code> status and has a player creation policy of <code>ACCEPT_ALL</code>. You can add a group of players to a game session with <a>CreatePlayerSessions</a>.  To create a player session, specify a game session ID, player ID, and optionally a set of player data.  If successful, a slot is reserved in the game session for the player and a new <a>PlayerSession</a> object is returned with a player session ID. The player references the player session ID when sending a connection request to the game session, and the game server can use it to validate the player reservation with the GameLift service. Player sessions cannot be updated.   <i>Available in Amazon GameLift Local.</i>   <b>Related actions</b>   <a>CreatePlayerSession</a> | <a>CreatePlayerSessions</a> | <a>DescribePlayerSessions</a> | <a>StartGameSessionPlacement</a> | <a>DescribeGameSessionPlacement</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets">All APIs by task</a> 

        :param self:
        :param PlayerData:  Developer-defined information related to a player. GameLift does not use this data, so it can be formatted as needed for use in the game.<br/>PlayerId:  A unique identifier for a player. Player IDs are developer-defined.<br/>GameSessionId:  A unique identifier for the game session to add a player to.<br/>
        :return: PlayerSession:  Object that describes the newly created player session record.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PlayerData</i> Developer-defined information related to a player. GameLift does not use this data, so it can be formatted as needed for use in the game. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Port number for the game session. To connect to a Amazon GameLift server process, an app needs both the IP address and port number.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DnsName</i> The DNS identifier assigned to the instance that is running the game session. Values have the following format: <ul> <li> TLS-enabled fleets: <code>&lt;unique identifier&gt;.&lt;region identifier&gt;.amazongamelift.com</code>. </li> <li> Non-TLS-enabled fleets: <code>ec2-&lt;unique identifier&gt;.compute.amazonaws.com</code>. (See <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-instance-addressing.html#concepts-public-addresses">Amazon EC2 Instance IP Addressing</a>.) </li> </ul> When connecting to a game session that is running on a TLS-enabled fleet, you must use the DNS name, not the IP address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IpAddress</i> The IP address of the game session. To connect to a GameLift game server, an app needs both the IP address and port number.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Current status of the player session. Possible player session statuses include the following: <ul> <li>  <b>RESERVED</b> -- The player session request has been received, but the player has not yet connected to the server process and/or been validated.  </li> <li>  <b>ACTIVE</b> -- The player has been validated by the server process and is currently connected. </li> <li>  <b>COMPLETED</b> -- The player connection has been dropped. </li> <li>  <b>TIMEDOUT</b> -- A player session request was received, but the player did not connect and/or was not validated within the timeout limit (60 seconds). </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TerminationTime</i> A time stamp indicating when this data object was terminated. Format is a number expressed in Unix time as milliseconds (for example <code>"1469498468.057"</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> A time stamp indicating when this data object was created. Format is a number expressed in Unix time as milliseconds (for example <code>"1469498468.057"</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FleetArn</i>  The Amazon Resource Name (<a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html">ARN</a>) associated with the GameLift fleet that the player's game session is running on. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FleetId</i> A unique identifier for the fleet that the player's game session is running on.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GameSessionId</i> A unique identifier for the game session that the player session is connected to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PlayerId</i> A unique identifier for a player that is associated with this player session.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PlayerSessionId</i> A unique identifier for a player session.<br/>        """
        pass

    def create_player_sessions(self, PlayerIds: List[NonZeroAndMaxString], GameSessionId: str, PlayerDataMap: PlayerDataMap=None) -> CreatePlayerSessionsOutput:
        r"""Reserves open slots in a game session for a group of players. New player sessions can be created in any game session with an open slot that is in <code>ACTIVE</code> status and has a player creation policy of <code>ACCEPT_ALL</code>. To add a single player to a game session, use <a>CreatePlayerSession</a>.  To create player sessions, specify a game session ID and a list of player IDs. Optionally, provide a set of player data for each player ID.  If successful, a slot is reserved in the game session for each player, and new <a>PlayerSession</a> objects are returned with player session IDs. Each player references their player session ID when sending a connection request to the game session, and the game server can use it to validate the player reservation with the GameLift service. Player sessions cannot be updated.  <i>Available in Amazon GameLift Local.</i>   <b>Related actions</b>   <a>CreatePlayerSession</a> | <a>CreatePlayerSessions</a> | <a>DescribePlayerSessions</a> | <a>StartGameSessionPlacement</a> | <a>DescribeGameSessionPlacement</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets">All APIs by task</a> 

        :param self:
        :param PlayerDataMap:  Map of string pairs, each specifying a player ID and a set of developer-defined information related to the player. Amazon GameLift does not use this data, so it can be formatted as needed for use in the game. Any player data strings for player IDs that are not included in the <code>PlayerIds</code> parameter are ignored. <br/>PlayerIds:  List of unique identifiers for the players to be added.<br/>GameSessionId:  A unique identifier for the game session to add players to.<br/>
        :return: PlayerSessions:  A collection of player session objects created for the added players.<br/>        """
        pass

    def create_script(self, Name: str=None, Version: str=None, StorageLocation: S3Location=None, ZipFile: ZipBlob=None, Tags: List[Tag]=None) -> CreateScriptOutput:
        r"""Creates a new script record for your Realtime Servers script. Realtime scripts are JavaScript that provide configuration settings and optional custom game logic for your game. The script is deployed when you create a Realtime Servers fleet to host your game sessions. Script logic is executed during an active game session.  To create a new script record, specify a script name and provide the script file(s). The script files and all dependencies must be zipped into a single file. You can pull the zip file from either of these locations:  <ul> <li> A locally available directory. Use the <i>ZipFile</i> parameter for this option. </li> <li> An Amazon Simple Storage Service (Amazon S3) bucket under your AWS account. Use the <i>StorageLocation</i> parameter for this option. You'll need to have an Identity Access Management (IAM) role that allows the Amazon GameLift service to access your S3 bucket.  </li> </ul> If the call is successful, a new script record is created with a unique script ID. If the script file is provided as a local file, the file is uploaded to an Amazon GameLift-owned S3 bucket and the script record's storage location reflects this location. If the script file is provided as an S3 bucket, Amazon GameLift accesses the file at this storage location as needed for deployment.  <b>Learn more</b>   <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/realtime-intro.html">Amazon GameLift Realtime Servers</a>   <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/setting-up-role.html">Set Up a Role for Amazon GameLift Access</a>   <b>Related actions</b>   <a>CreateScript</a> | <a>ListScripts</a> | <a>DescribeScript</a> | <a>UpdateScript</a> | <a>DeleteScript</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets">All APIs by task</a> 

        :param self:
        :param Tags:  A list of labels to assign to the new script resource. Tags are developer-defined key-value pairs. Tagging AWS resources are useful for resource management, access management and cost allocation. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html"> Tagging AWS Resources</a> in the <i>AWS General Reference</i>. Once the resource is created, you can use <a>TagResource</a>, <a>UntagResource</a>, and <a>ListTagsForResource</a> to add, remove, and view tags. The maximum tag limit may be lower than stated. See the AWS General Reference for actual tagging limits.<br/>ZipFile:  A data object containing your Realtime scripts and dependencies as a zip file. The zip file can have one or multiple files. Maximum size of a zip file is 5 MB. When using the AWS CLI tool to create a script, this parameter is set to the zip file name. It must be prepended with the string "fileb://" to indicate that the file data is a binary object. For example: <code>--zip-file fileb://myRealtimeScript.zip</code>.<br/>StorageLocation:  The location of the Amazon S3 bucket where a zipped file containing your Realtime scripts is stored. The storage location must specify the Amazon S3 bucket name, the zip file name (the "key"), and a role ARN that allows Amazon GameLift to access the Amazon S3 storage location. The S3 bucket must be in the same Region where you want to create a new script. By default, Amazon GameLift uploads the latest version of the zip file; if you have S3 object versioning turned on, you can use the <code>ObjectVersion</code> parameter to specify an earlier version. :<br/>Version:  Version information that is associated with a build or script. Version strings do not need to be unique. You can use <a>UpdateScript</a> to change this value later. <br/>Name:  A descriptive label that is associated with a script. Script names do not need to be unique. You can use <a>UpdateScript</a> to change this value later. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ObjectVersion</i> The version of the file, if object versioning is turned on for the bucket. Amazon GameLift uses this information when retrieving files from an S3 bucket that you own. Use this parameter to specify a specific version of the file. If not set, the latest version of the file is retrieved. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The Amazon Resource Name (<a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html">ARN</a>) for an IAM role that allows Amazon GameLift to access the S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The name of the zip file that contains the build files or script files. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i> An Amazon S3 bucket identifier. This is the name of the S3 bucket. <note> GameLift currently does not support uploading from Amazon S3 buckets with names that contain a dot (.). </note><br/>
        :return: Script:  The newly created script record with a unique script ID and ARN. The new script's storage location reflects an Amazon S3 location: (1) If the script was uploaded from an S3 bucket under your account, the storage location reflects the information that was provided in the <i>CreateScript</i> request; (2) If the script file was uploaded from a local zip file, the storage location reflects an S3 location controls by the Amazon GameLift service.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageLocation</i> The location in Amazon S3 where build or script files are stored for access by Amazon GameLift. This location is specified in <a>CreateBuild</a>, <a>CreateScript</a>, and <a>UpdateScript</a> requests. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StorageLocation</b>: The location in Amazon S3 where build or script files are stored for access by Amazon GameLift. This location is specified in <a>CreateBuild</a>, <a>CreateScript</a>, and <a>UpdateScript</a> requests. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> A time stamp indicating when this data object was created. Format is a number expressed in Unix time as milliseconds (for example <code>"1469498468.057"</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SizeOnDisk</i> The file size of the uploaded Realtime script, expressed in bytes. When files are uploaded from an S3 location, this value remains at "0".<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> Version information that is associated with a build or script. Version strings do not need to be unique.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A descriptive label that is associated with a script. Script names do not need to be unique.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ScriptArn</i> The Amazon Resource Name (<a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html">ARN</a>) that is assigned to a GameLift script resource and uniquely identifies it. ARNs are unique across all Regions. In a GameLift script ARN, the resource ID matches the <i>ScriptId</i> value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ScriptId</i> A unique identifier for the Realtime script<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ObjectVersion</i> The version of the file, if object versioning is turned on for the bucket. Amazon GameLift uses this information when retrieving files from an S3 bucket that you own. Use this parameter to specify a specific version of the file. If not set, the latest version of the file is retrieved. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The Amazon Resource Name (<a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html">ARN</a>) for an IAM role that allows Amazon GameLift to access the S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The name of the zip file that contains the build files or script files. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i> An Amazon S3 bucket identifier. This is the name of the S3 bucket. <note> GameLift currently does not support uploading from Amazon S3 buckets with names that contain a dot (.). </note><br/>        """
        pass

    def create_vpc_peering_authorization(self, PeerVpcId: str, GameLiftAwsAccountId: str) -> CreateVpcPeeringAuthorizationOutput:
        r"""Requests authorization to create or delete a peer connection between the VPC for your Amazon GameLift fleet and a virtual private cloud (VPC) in your AWS account. VPC peering enables the game servers on your fleet to communicate directly with other AWS resources. Once you've received authorization, call <a>CreateVpcPeeringConnection</a> to establish the peering connection. For more information, see <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/vpc-peering.html">VPC Peering with Amazon GameLift Fleets</a>. You can peer with VPCs that are owned by any AWS account you have access to, including the account that you use to manage your Amazon GameLift fleets. You cannot peer with VPCs that are in different Regions. To request authorization to create a connection, call this operation from the AWS account with the VPC that you want to peer to your Amazon GameLift fleet. For example, to enable your game servers to retrieve data from a DynamoDB table, use the account that manages that DynamoDB resource. Identify the following values: (1) The ID of the VPC that you want to peer with, and (2) the ID of the AWS account that you use to manage Amazon GameLift. If successful, VPC peering is authorized for the specified VPC.  To request authorization to delete a connection, call this operation from the AWS account with the VPC that is peered with your Amazon GameLift fleet. Identify the following values: (1) VPC ID that you want to delete the peering connection for, and (2) ID of the AWS account that you use to manage Amazon GameLift.  The authorization remains valid for 24 hours unless it is canceled by a call to <a>DeleteVpcPeeringAuthorization</a>. You must create or delete the peering connection while the authorization is valid.   <b>Related actions</b>   <a>CreateVpcPeeringAuthorization</a> | <a>DescribeVpcPeeringAuthorizations</a> | <a>DeleteVpcPeeringAuthorization</a> | <a>CreateVpcPeeringConnection</a> | <a>DescribeVpcPeeringConnections</a> | <a>DeleteVpcPeeringConnection</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets">All APIs by task</a> 

        :param self:
        :param PeerVpcId:  A unique identifier for a VPC with resources to be accessed by your GameLift fleet. The VPC must be in the same Region as your fleet. To look up a VPC ID, use the <a href="https://console.aws.amazon.com/vpc/">VPC Dashboard</a> in the AWS Management Console. Learn more about VPC peering in <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/vpc-peering.html">VPC Peering with GameLift Fleets</a>.<br/>GameLiftAwsAccountId:  A unique identifier for the AWS account that you use to manage your GameLift fleet. You can find your Account ID in the AWS Management Console under account settings.<br/>
        :return: VpcPeeringAuthorization:  Details on the requested VPC peering authorization, including expiration.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExpirationTime</i> Time stamp indicating when this authorization expires (24 hours after issuance). Format is a number expressed in Unix time as milliseconds (for example <code>"1469498468.057"</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> Time stamp indicating when this authorization was issued. Format is a number expressed in Unix time as milliseconds (for example <code>"1469498468.057"</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PeerVpcId</i> A unique identifier for a VPC with resources to be accessed by your GameLift fleet. The VPC must be in the same Region as your fleet. To look up a VPC ID, use the <a href="https://console.aws.amazon.com/vpc/">VPC Dashboard</a> in the AWS Management Console. Learn more about VPC peering in <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/vpc-peering.html">VPC Peering with GameLift Fleets</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PeerVpcAwsAccountId</i> <p/><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GameLiftAwsAccountId</i> A unique identifier for the AWS account that you use to manage your GameLift fleet. You can find your Account ID in the AWS Management Console under account settings.<br/>        """
        pass

    def create_vpc_peering_connection(self, PeerVpcId: str, PeerVpcAwsAccountId: str, FleetId: str) -> CreateVpcPeeringConnectionOutput:
        r"""Establishes a VPC peering connection between a virtual private cloud (VPC) in an AWS account with the VPC for your Amazon GameLift fleet. VPC peering enables the game servers on your fleet to communicate directly with other AWS resources. You can peer with VPCs in any AWS account that you have access to, including the account that you use to manage your Amazon GameLift fleets. You cannot peer with VPCs that are in different Regions. For more information, see <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/vpc-peering.html">VPC Peering with Amazon GameLift Fleets</a>. Before calling this operation to establish the peering connection, you first need to call <a>CreateVpcPeeringAuthorization</a> and identify the VPC you want to peer with. Once the authorization for the specified VPC is issued, you have 24 hours to establish the connection. These two operations handle all tasks necessary to peer the two VPCs, including acceptance, updating routing tables, etc.  To establish the connection, call this operation from the AWS account that is used to manage the Amazon GameLift fleets. Identify the following values: (1) The ID of the fleet you want to be enable a VPC peering connection for; (2) The AWS account with the VPC that you want to peer with; and (3) The ID of the VPC you want to peer with. This operation is asynchronous. If successful, a <a>VpcPeeringConnection</a> request is created. You can use continuous polling to track the request's status using <a>DescribeVpcPeeringConnections</a>, or by monitoring fleet events for success or failure using <a>DescribeFleetEvents</a>.   <b>Related actions</b>   <a>CreateVpcPeeringAuthorization</a> | <a>DescribeVpcPeeringAuthorizations</a> | <a>DeleteVpcPeeringAuthorization</a> | <a>CreateVpcPeeringConnection</a> | <a>DescribeVpcPeeringConnections</a> | <a>DeleteVpcPeeringConnection</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets">All APIs by task</a> 

        :param self:
        :param PeerVpcId:  A unique identifier for a VPC with resources to be accessed by your GameLift fleet. The VPC must be in the same Region as your fleet. To look up a VPC ID, use the <a href="https://console.aws.amazon.com/vpc/">VPC Dashboard</a> in the AWS Management Console. Learn more about VPC peering in <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/vpc-peering.html">VPC Peering with GameLift Fleets</a>.<br/>PeerVpcAwsAccountId:  A unique identifier for the AWS account with the VPC that you want to peer your Amazon GameLift fleet with. You can find your Account ID in the AWS Management Console under account settings.<br/>FleetId:  A unique identifier for the fleet. You can use either the fleet ID or ARN value. This tells Amazon GameLift which GameLift VPC to peer with. <br/>
        :return:         """
        pass

    def delete_alias(self, AliasId: str):
        r"""Deletes an alias. This operation removes all record of the alias. Game clients attempting to access a server process using the deleted alias receive an error. To delete an alias, specify the alias ID to be deleted.  <b>Related actions</b>   <a>CreateAlias</a> | <a>ListAliases</a> | <a>DescribeAlias</a> | <a>UpdateAlias</a> | <a>DeleteAlias</a> | <a>ResolveAlias</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets">All APIs by task</a> 

        :param self:
        :param AliasId:  A unique identifier of the alias that you want to delete. You can use either the alias ID or ARN value.<br/>
        :return:         """
        pass

    def delete_build(self, BuildId: str):
        r"""Deletes a build. This operation permanently deletes the build resource and any uploaded build files. Deleting a build does not affect the status of any active fleets using the build, but you can no longer create new fleets with the deleted build. To delete a build, specify the build ID.   <b>Learn more</b>   <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-build-intro.html"> Upload a Custom Server Build</a>   <b>Related actions</b>   <a>CreateBuild</a> | <a>ListBuilds</a> | <a>DescribeBuild</a> | <a>UpdateBuild</a> | <a>DeleteBuild</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets">All APIs by task</a> 

        :param self:
        :param BuildId:  A unique identifier for the build to delete. You can use either the build ID or ARN value. <br/>
        :return:         """
        pass

    def delete_fleet(self, FleetId: str):
        r"""Deletes all resources and information related a fleet. Any current fleet instances, including those in remote locations, are shut down. You don't need to call <code>DeleteFleetLocations</code> separately. <note> If the fleet being deleted has a VPC peering connection, you first need to get a valid authorization (good for 24 hours) by calling <a>CreateVpcPeeringAuthorization</a>. You do not need to explicitly delete the VPC peering connection--this is done as part of the delete fleet process. </note> To delete a fleet, specify the fleet ID to be terminated. During the deletion process the fleet status is changed to <code>DELETING</code>. When completed, the status switches to <code>TERMINATED</code> and the fleet event <code>FLEET_DELETED</code> is sent.  <b>Learn more</b>   <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/fleets-intro.html">Setting up GameLift Fleets</a>   <b>Related actions</b>   <a>CreateFleetLocations</a> | <a>UpdateFleetAttributes</a> | <a>UpdateFleetCapacity</a> | <a>UpdateFleetPortSettings</a> | <a>UpdateRuntimeConfiguration</a> | <a>StopFleetActions</a> | <a>StartFleetActions</a> | <a>PutScalingPolicy</a> | <a>DeleteFleet</a> | <a>DeleteFleetLocations</a> | <a>DeleteScalingPolicy</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets">All APIs by task</a> 

        :param self:
        :param FleetId:  A unique identifier for the fleet to be deleted. You can use either the fleet ID or ARN value.<br/>
        :return:         """
        pass

    def delete_fleet_locations(self, Locations: List[LocationStringModel], FleetId: str) -> DeleteFleetLocationsOutput:
        r"""Removes locations from a multi-location fleet. When deleting a location, all game server process and all instances that are still active in the location are shut down.  To delete fleet locations, identify the fleet ID and provide a list of the locations to be deleted.  If successful, GameLift sets the location status to <code>DELETING</code>, and begins to shut down existing server processes and terminate instances in each location being deleted. When completed, the location status changes to <code>TERMINATED</code>.  <b>Learn more</b>   <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/fleets-intro.html">Setting up GameLift fleets</a>   <b>Related actions</b>   <a>CreateFleetLocations</a> | <a>DescribeFleetLocationAttributes</a> | <a>DescribeFleetLocationCapacity</a> | <a>DescribeFleetLocationUtilization</a> | <a>DescribeFleetAttributes</a> | <a>DescribeFleetCapacity</a> | <a>DescribeFleetUtilization</a> | <a>UpdateFleetCapacity</a> | <a>StopFleetActions</a> | <a>DeleteFleetLocations</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets">All APIs by task</a> 

        :param self:
        :param Locations:  The list of fleet locations to delete. Specify locations in the form of an AWS Region code, such as <code>us-west-2</code>.<br/>FleetId:  A unique identifier for the fleet to delete locations for. You can use either the fleet ID or ARN value.<br/>
        :return: LocationStates:  The remote locations that are being deleted, with each location status set to <code>DELETING</code>.<br/>FleetArn:  The Amazon Resource Name (<a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html">ARN</a>) that is assigned to a GameLift fleet resource and uniquely identifies it. ARNs are unique across all Regions. Format is <code>arn:aws:gamelift:&lt;region&gt;::fleet/fleet-a1234567-b8c9-0d1e-2fa3-b45c6d7e8912</code>.<br/>FleetId:  A unique identifier for the fleet that location attributes are being deleted for.<br/>        """
        pass

    def delete_game_server_group(self, GameServerGroupName: str, DeleteOption: str=None) -> DeleteGameServerGroupOutput:
        r""" <b>This operation is used with the GameLift FleetIQ solution and game server groups.</b>  Terminates a game server group and permanently deletes the game server group record. You have several options for how these resources are impacted when deleting the game server group. Depending on the type of delete operation selected, this operation might affect these resources: <ul> <li> The game server group </li> <li> The corresponding Auto Scaling group </li> <li> All game servers that are currently running in the group </li> </ul> To delete a game server group, identify the game server group to delete and specify the type of delete operation to initiate. Game server groups can only be deleted if they are in <code>ACTIVE</code> or <code>ERROR</code> status. If the delete request is successful, a series of operations are kicked off. The game server group status is changed to <code>DELETE_SCHEDULED</code>, which prevents new game servers from being registered and stops automatic scaling activity. Once all game servers in the game server group are deregistered, GameLift FleetIQ can begin deleting resources. If any of the delete operations fail, the game server group is placed in <code>ERROR</code> status. GameLift FleetIQ emits delete events to Amazon CloudWatch.  <b>Learn more</b>   <a href="https://docs.aws.amazon.com/gamelift/latest/fleetiqguide/gsg-intro.html">GameLift FleetIQ Guide</a>   <b>Related actions</b>   <a>CreateGameServerGroup</a> | <a>ListGameServerGroups</a> | <a>DescribeGameServerGroup</a> | <a>UpdateGameServerGroup</a> | <a>DeleteGameServerGroup</a> | <a>ResumeGameServerGroup</a> | <a>SuspendGameServerGroup</a> | <a>DescribeGameServerInstances</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/fleetiqguide/reference-awssdk-fleetiq.html">All APIs by task</a> 

        :param self:
        :param DeleteOption:  The type of delete to perform. Options include the following: <ul> <li>  <code>SAFE_DELETE</code> – (default) Terminates the game server group and EC2 Auto Scaling group only when it has no game servers that are in <code>UTILIZED</code> status. </li> <li>  <code>FORCE_DELETE</code> – Terminates the game server group, including all active game servers regardless of their utilization status, and the EC2 Auto Scaling group.  </li> <li>  <code>RETAIN</code> – Does a safe delete of the game server group but retains the EC2 Auto Scaling group as is. </li> </ul><br/>GameServerGroupName:  A unique identifier for the game server group. Use either the <a>GameServerGroup</a> name or ARN value.<br/>
        :return: GameServerGroup:  An object that describes the deleted game server group resource, with status updated to <code>DELETE_SCHEDULED</code>. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdatedTime</i> A timestamp that indicates when this game server group was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> A time stamp indicating when this data object was created. Format is a number expressed in Unix time as milliseconds (for example <code>"1469498468.057"</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SuspendedActions</i> A list of activities that are currently suspended for this game server group. If this property is empty, all activities are occurring.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusReason</i> Additional information about the current game server group status. This information might provide additional insight on groups that are in <code>ERROR</code> status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current status of the game server group. Possible statuses include: <ul> <li>  <code>NEW</code> - GameLift FleetIQ has validated the <code>CreateGameServerGroup()</code> request.  </li> <li>  <code>ACTIVATING</code> - GameLift FleetIQ is setting up a game server group, which includes creating an Auto Scaling group in your AWS account.  </li> <li>  <code>ACTIVE</code> - The game server group has been successfully created.  </li> <li>  <code>DELETE_SCHEDULED</code> - A request to delete the game server group has been received.  </li> <li>  <code>DELETING</code> - GameLift FleetIQ has received a valid <code>DeleteGameServerGroup()</code> request and is processing it. GameLift FleetIQ must first complete and release hosts before it deletes the Auto Scaling group and the game server group.  </li> <li>  <code>DELETED</code> - The game server group has been successfully deleted.  </li> <li>  <code>ERROR</code> - The asynchronous processes of activating or deleting a game server group has failed, resulting in an error state. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoScalingGroupArn</i> A generated unique ID for the EC2 Auto Scaling group that is associated with this game server group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GameServerProtectionPolicy</i> A flag that indicates whether instances in the game server group are protected from early termination. Unprotected instances that have active game servers running might be terminated during a scale-down event, causing players to be dropped from the game. Protected instances cannot be terminated while there are active game servers running except in the event of a forced game server group deletion (see ). An exception to this is with Spot Instances, which can be terminated by AWS regardless of protection status. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BalancingStrategy</i> Indicates how GameLift FleetIQ balances the use of Spot Instances and On-Demand Instances in the game server group. Method options include the following: <ul> <li>  <code>SPOT_ONLY</code> - Only Spot Instances are used in the game server group. If Spot Instances are unavailable or not viable for game hosting, the game server group provides no hosting capacity until Spot Instances can again be used. Until then, no new instances are started, and the existing nonviable Spot Instances are terminated (after current gameplay ends) and are not replaced. </li> <li>  <code>SPOT_PREFERRED</code> - (default value) Spot Instances are used whenever available in the game server group. If Spot Instances are unavailable, the game server group continues to provide hosting capacity by falling back to On-Demand Instances. Existing nonviable Spot Instances are terminated (after current gameplay ends) and are replaced with new On-Demand Instances. </li> <li>  <code>ON_DEMAND_ONLY</code> - Only On-Demand Instances are used in the game server group. No Spot Instances are used, even when available, while this balancing strategy is in force. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceDefinitions</i> The set of EC2 instance types that GameLift FleetIQ can use when balancing and automatically scaling instances in the corresponding Auto Scaling group. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The Amazon Resource Name (<a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html">ARN</a>) for an IAM role that allows Amazon GameLift to access your EC2 Auto Scaling groups.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GameServerGroupArn</i> A generated unique ID for the game server group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GameServerGroupName</i> A developer-defined identifier for the game server group. The name is unique for each Region in each AWS account.<br/>        """
        pass

    def delete_game_session_queue(self, Name: str) -> DeleteGameSessionQueueOutput:
        r"""Deletes a game session queue. Once a queue is successfully deleted, unfulfilled <a>StartGameSessionPlacement</a> requests that reference the queue will fail. To delete a queue, specify the queue name.  <b>Learn more</b>   <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/queues-intro.html"> Using Multi-Region Queues</a>   <b>Related actions</b>   <a>CreateGameSessionQueue</a> | <a>DescribeGameSessionQueues</a> | <a>UpdateGameSessionQueue</a> | <a>DeleteGameSessionQueue</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets">All APIs by task</a> 

        :param self:
        :param Name:  A descriptive label that is associated with game session queue. Queue names must be unique within each Region. You can use either the queue ID or ARN value. <br/>
        :return:         """
        pass

    def delete_matchmaking_configuration(self, Name: str) -> DeleteMatchmakingConfigurationOutput:
        r"""Permanently removes a FlexMatch matchmaking configuration. To delete, specify the configuration name. A matchmaking configuration cannot be deleted if it is being used in any active matchmaking tickets.  <b>Related actions</b>   <a>CreateMatchmakingConfiguration</a> | <a>DescribeMatchmakingConfigurations</a> | <a>UpdateMatchmakingConfiguration</a> | <a>DeleteMatchmakingConfiguration</a> | <a>CreateMatchmakingRuleSet</a> | <a>DescribeMatchmakingRuleSets</a> | <a>ValidateMatchmakingRuleSet</a> | <a>DeleteMatchmakingRuleSet</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets">All APIs by task</a> 

        :param self:
        :param Name:  A unique identifier for the matchmaking configuration. You can use either the configuration name or ARN value.<br/>
        :return:         """
        pass

    def delete_matchmaking_rule_set(self, Name: str) -> DeleteMatchmakingRuleSetOutput:
        r"""Deletes an existing matchmaking rule set. To delete the rule set, provide the rule set name. Rule sets cannot be deleted if they are currently being used by a matchmaking configuration.   <b>Learn more</b>  <ul> <li>  <a href="https://docs.aws.amazon.com/gamelift/latest/flexmatchguide/match-rulesets.html">Build a rule set</a>  </li> </ul>  <b>Related actions</b>   <a>CreateMatchmakingConfiguration</a> | <a>DescribeMatchmakingConfigurations</a> | <a>UpdateMatchmakingConfiguration</a> | <a>DeleteMatchmakingConfiguration</a> | <a>CreateMatchmakingRuleSet</a> | <a>DescribeMatchmakingRuleSets</a> | <a>ValidateMatchmakingRuleSet</a> | <a>DeleteMatchmakingRuleSet</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets">All APIs by task</a> 

        :param self:
        :param Name:  A unique identifier for the matchmaking rule set to be deleted. (Note: The rule set name is different from the optional "name" field in the rule set body.) You can use either the rule set name or ARN value.<br/>
        :return:         """
        pass

    def delete_scaling_policy(self, FleetId: str, Name: str):
        r"""Deletes a fleet scaling policy. Once deleted, the policy is no longer in force and GameLift removes all record of it. To delete a scaling policy, specify both the scaling policy name and the fleet ID it is associated with. To temporarily suspend scaling policies, call <a>StopFleetActions</a>. This operation suspends all policies for the fleet.  <b>Related actions</b>   <a>DescribeFleetCapacity</a> | <a>UpdateFleetCapacity</a> | <a>DescribeEC2InstanceLimits</a> | <a>PutScalingPolicy</a> | <a>DescribeScalingPolicies</a> | <a>DeleteScalingPolicy</a> | <a>StopFleetActions</a> | <a>StartFleetActions</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets">All APIs by task</a> 

        :param self:
        :param FleetId:  A unique identifier for the fleet to be deleted. You can use either the fleet ID or ARN value.<br/>Name:  A descriptive label that is associated with a fleet's scaling policy. Policy names do not need to be unique.<br/>
        :return:         """
        pass

    def delete_script(self, ScriptId: str):
        r"""Deletes a Realtime script. This operation permanently deletes the script record. If script files were uploaded, they are also deleted (files stored in an S3 bucket are not deleted).  To delete a script, specify the script ID. Before deleting a script, be sure to terminate all fleets that are deployed with the script being deleted. Fleet instances periodically check for script updates, and if the script record no longer exists, the instance will go into an error state and be unable to host game sessions.  <b>Learn more</b>   <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/realtime-intro.html">Amazon GameLift Realtime Servers</a>   <b>Related actions</b>   <a>CreateScript</a> | <a>ListScripts</a> | <a>DescribeScript</a> | <a>UpdateScript</a> | <a>DeleteScript</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets">All APIs by task</a> 

        :param self:
        :param ScriptId:  A unique identifier for the Realtime script to delete. You can use either the script ID or ARN value.<br/>
        :return:         """
        pass

    def delete_vpc_peering_authorization(self, PeerVpcId: str, GameLiftAwsAccountId: str) -> DeleteVpcPeeringAuthorizationOutput:
        r"""Cancels a pending VPC peering authorization for the specified VPC. If you need to delete an existing VPC peering connection, call <a>DeleteVpcPeeringConnection</a>.   <b>Related actions</b>   <a>CreateVpcPeeringAuthorization</a> | <a>DescribeVpcPeeringAuthorizations</a> | <a>DeleteVpcPeeringAuthorization</a> | <a>CreateVpcPeeringConnection</a> | <a>DescribeVpcPeeringConnections</a> | <a>DeleteVpcPeeringConnection</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets">All APIs by task</a> 

        :param self:
        :param PeerVpcId:  A unique identifier for a VPC with resources to be accessed by your GameLift fleet. The VPC must be in the same Region as your fleet. To look up a VPC ID, use the <a href="https://console.aws.amazon.com/vpc/">VPC Dashboard</a> in the AWS Management Console. Learn more about VPC peering in <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/vpc-peering.html">VPC Peering with GameLift Fleets</a>.<br/>GameLiftAwsAccountId:  A unique identifier for the AWS account that you use to manage your GameLift fleet. You can find your Account ID in the AWS Management Console under account settings.<br/>
        :return:         """
        pass

    def delete_vpc_peering_connection(self, VpcPeeringConnectionId: str, FleetId: str) -> DeleteVpcPeeringConnectionOutput:
        r"""Removes a VPC peering connection. To delete the connection, you must have a valid authorization for the VPC peering connection that you want to delete. You can check for an authorization by calling <a>DescribeVpcPeeringAuthorizations</a> or request a new one using <a>CreateVpcPeeringAuthorization</a>.  Once a valid authorization exists, call this operation from the AWS account that is used to manage the Amazon GameLift fleets. Identify the connection to delete by the connection ID and fleet ID. If successful, the connection is removed.   <b>Related actions</b>   <a>CreateVpcPeeringAuthorization</a> | <a>DescribeVpcPeeringAuthorizations</a> | <a>DeleteVpcPeeringAuthorization</a> | <a>CreateVpcPeeringConnection</a> | <a>DescribeVpcPeeringConnections</a> | <a>DeleteVpcPeeringConnection</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets">All APIs by task</a> 

        :param self:
        :param VpcPeeringConnectionId:  A unique identifier for a VPC peering connection. This value is included in the <a>VpcPeeringConnection</a> object, which can be retrieved by calling <a>DescribeVpcPeeringConnections</a>.<br/>FleetId:  A unique identifier for the fleet. This fleet specified must match the fleet referenced in the VPC peering connection record. You can use either the fleet ID or ARN value.<br/>
        :return:         """
        pass

    def deregister_game_server(self, GameServerId: str, GameServerGroupName: str):
        r""" <b>This operation is used with the GameLift FleetIQ solution and game server groups.</b>  Removes the game server from a game server group. As a result of this operation, the deregistered game server can no longer be claimed and will not be returned in a list of active game servers.  To deregister a game server, specify the game server group and game server ID. If successful, this operation emits a CloudWatch event with termination timestamp and reason.  <b>Learn more</b>   <a href="https://docs.aws.amazon.com/gamelift/latest/fleetiqguide/gsg-intro.html">GameLift FleetIQ Guide</a>   <b>Related actions</b>   <a>RegisterGameServer</a> | <a>ListGameServers</a> | <a>ClaimGameServer</a> | <a>DescribeGameServer</a> | <a>UpdateGameServer</a> | <a>DeregisterGameServer</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/fleetiqguide/reference-awssdk-fleetiq.html">All APIs by task</a> 

        :param self:
        :param GameServerId:  A custom string that uniquely identifies the game server to deregister.<br/>GameServerGroupName:  A unique identifier for the game server group where the game server is running. Use either the <a>GameServerGroup</a> name or ARN value.<br/>
        :return:         """
        pass

    def describe_alias(self, AliasId: str) -> DescribeAliasOutput:
        r"""Retrieves properties for an alias. This operation returns all alias metadata and settings. To get an alias's target fleet ID only, use <code>ResolveAlias</code>.  To get alias properties, specify the alias ID. If successful, the requested alias record is returned.  <b>Related actions</b>   <a>CreateAlias</a> | <a>ListAliases</a> | <a>DescribeAlias</a> | <a>UpdateAlias</a> | <a>DeleteAlias</a> | <a>ResolveAlias</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets">All APIs by task</a> 

        :param self:
        :param AliasId:  The unique identifier for the fleet alias that you want to retrieve. You can use either the alias ID or ARN value. <br/>
        :return: Alias:  The requested alias resource.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdatedTime</i> The time that this data object was last modified. Format is a number expressed in Unix time as milliseconds (for example <code>"1469498468.057"</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> A time stamp indicating when this data object was created. Format is a number expressed in Unix time as milliseconds (for example <code>"1469498468.057"</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoutingStrategy</i> The routing configuration, including routing type and fleet target, for the alias. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RoutingStrategy</b>: The routing configuration, including routing type and fleet target, for the alias. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A human-readable description of an alias.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AliasArn</i> The Amazon Resource Name (<a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html">ARN</a>) that is assigned to a GameLift alias resource and uniquely identifies it. ARNs are unique across all Regions. Format is <code>arn:aws:gamelift:&lt;region&gt;::alias/alias-a1234567-b8c9-0d1e-2fa3-b45c6d7e8912</code>. In a GameLift alias ARN, the resource ID matches the alias ID value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A descriptive label that is associated with an alias. Alias names do not need to be unique.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AliasId</i> A unique identifier for the alias. Alias IDs are unique within a Region.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> The message text to be used with a terminal routing strategy.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FleetId</i> A unique identifier for the fleet that the alias points to. This value is the fleet ID, not the fleet ARN.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of routing strategy for the alias. Possible routing types include the following: <ul> <li>  <b>SIMPLE</b> - The alias resolves to one specific fleet. Use this type when routing to active fleets. </li> <li>  <b>TERMINAL</b> - The alias does not resolve to a fleet but instead can be used to display a message to the user. A terminal alias throws a TerminalRoutingStrategyException with the <a>RoutingStrategy</a> message embedded. </li> </ul><br/>        """
        pass

    def describe_build(self, BuildId: str) -> DescribeBuildOutput:
        r"""Retrieves properties for a custom game build. To request a build resource, specify a build ID. If successful, an object containing the build properties is returned.  <b>Learn more</b>   <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-build-intro.html"> Upload a Custom Server Build</a>   <b>Related actions</b>   <a>CreateBuild</a> | <a>ListBuilds</a> | <a>DescribeBuild</a> | <a>UpdateBuild</a> | <a>DeleteBuild</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets">All APIs by task</a> 

        :param self:
        :param BuildId:  A unique identifier for the build to retrieve properties for. You can use either the build ID or ARN value. <br/>
        :return: Build:  Set of properties describing the requested build.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> A time stamp indicating when this data object was created. Format is a number expressed in Unix time as milliseconds (for example <code>"1469498468.057"</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OperatingSystem</i> Operating system that the game server binaries are built to run on. This value determines the type of fleet resources that you can use for this build.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SizeOnDisk</i> File size of the uploaded game build, expressed in bytes. When the build status is <code>INITIALIZED</code>, this value is 0.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Current status of the build. Possible build statuses include the following: <ul> <li>  <b>INITIALIZED</b> -- A new build has been defined, but no files have been uploaded. You cannot create fleets for builds that are in this status. When a build is successfully created, the build status is set to this value.  </li> <li>  <b>READY</b> -- The game build has been successfully uploaded. You can now create new fleets for this build. </li> <li>  <b>FAILED</b> -- The game build upload failed. You cannot create new fleets for this build.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> Version information that is associated with a build or script. Version strings do not need to be unique. This value can be set using <a>CreateBuild</a> or <a>UpdateBuild</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A descriptive label that is associated with a build. Build names do not need to be unique. It can be set using <a>CreateBuild</a> or <a>UpdateBuild</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BuildArn</i> The Amazon Resource Name (<a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html">ARN</a>) that is assigned to a GameLift build resource and uniquely identifies it. ARNs are unique across all Regions. Format is <code>arn:aws:gamelift:&lt;region&gt;::build/build-a1234567-b8c9-0d1e-2fa3-b45c6d7e8912</code>. In a GameLift build ARN, the resource ID matches the <i>BuildId</i> value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BuildId</i> A unique identifier for the build.<br/>        """
        pass

    def describe_ec2_instance_limits(self, EC2InstanceType: str=None, Location: str=None) -> DescribeEC2InstanceLimitsOutput:
        r"""The GameLift service limits and current utilization for an AWS Region or location. Instance limits control the number of instances, per instance type, per location, that your AWS account can use. Learn more at <a href="http://aws.amazon.com/ec2/instance-types/">Amazon EC2 Instance Types</a>. The information returned includes the maximum number of instances allowed and your account's current usage across all fleets. This information can affect your ability to scale your GameLift fleets. You can request a limit increase for your account by using the <b>Service limits</b> page in the GameLift console. Instance limits differ based on whether the instances are deployed in a fleet's home Region or in a remote location. For remote locations, limits also differ based on the combination of home Region and remote location. All requests must specify an AWS Region (either explicitly or as your default settings). To get the limit for a remote location, you must also specify the location. For example, the following requests all return different results:  <ul> <li> Request specifies the Region <code>ap-northeast-1</code> with no location. The result is limits and usage data on all instance types that are deployed in <code>us-east-2</code>, by all of the fleets that reside in <code>ap-northeast-1</code>.  </li> <li> Request specifies the Region <code>us-east-1</code> with location <code>ca-central-1</code>. The result is limits and usage data on all instance types that are deployed in <code>ca-central-1</code>, by all of the fleets that reside in <code>us-east-2</code>. These limits do not affect fleets in any other Regions that deploy instances to <code>ca-central-1</code>. </li> <li> Request specifies the Region <code>eu-west-1</code> with location <code>ca-central-1</code>. The result is limits and usage data on all instance types that are deployed in <code>ca-central-1</code>, by all of the fleets that reside in <code>eu-west-1</code>. </li> </ul> This operation can be used in the following ways: <ul> <li> To get limit and usage data for all instance types that are deployed in an AWS Region by fleets that reside in the same Region: Specify the Region only. Optionally, specify a single instance type to retrieve information for. </li> <li> To get limit and usage data for all instance types that are deployed to a remote location by fleets that reside in different AWS Region: Provide both the AWS Region and the remote location. Optionally, specify a single instance type to retrieve information for. </li> </ul> If successful, an <code>EC2InstanceLimits</code> object is returned with limits and usage data for each requested instance type.  <b>Learn more</b>   <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/fleets-intro.html">Setting up GameLift fleets</a>   <b>Related actions</b>   <a>CreateFleet</a> | <a>UpdateFleetCapacity</a> | <a>PutScalingPolicy</a> | <a>DescribeEC2InstanceLimits</a> | <a>DescribeFleetAttributes</a> | <a>DescribeFleetLocationAttributes</a> | <a>UpdateFleetAttributes</a> | <a>StopFleetActions</a> | <a>DeleteFleet</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets">All APIs by task</a> 

        :param self:
        :param Location:  The name of a remote location to request instance limits for, in the form of an AWS Region code such as <code>us-west-2</code>.<br/>EC2InstanceType:  Name of an EC2 instance type that is supported in GameLift. A fleet instance type determines the computing resources of each instance in the fleet, including CPU, memory, storage, and networking capacity. Do not specify a value for this parameter to retrieve limits for all instance types.<br/>
        :return: EC2InstanceLimits:  The maximum number of instances for the specified instance type.<br/>        """
        pass

    def describe_fleet_attributes(self, FleetIds: List[FleetIdOrArn]=None, Limit: int=None, NextToken: str=None) -> DescribeFleetAttributesOutput:
        r"""Retrieves core fleet-wide properties, including the computing hardware and deployment configuration for all instances in the fleet. This operation can be used in the following ways:  <ul> <li> To get attributes for one or more specific fleets, provide a list of fleet IDs or fleet ARNs.  </li> <li> To get attributes for all fleets, do not provide a fleet identifier.  </li> </ul> When requesting attributes for multiple fleets, use the pagination parameters to retrieve results as a set of sequential pages.  If successful, a <code>FleetAttributes</code> object is returned for each fleet requested, unless the fleet identifier is not found.  <note> Some API operations limit the number of fleet IDs that allowed in one request. If a request exceeds this limit, the request fails and the error message contains the maximum allowed number. </note>  <b>Learn more</b>   <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/fleets-intro.html">Setting up GameLift fleets</a>   <b>Related actions</b>   <a>ListFleets</a> | <a>DescribeEC2InstanceLimits</a> | <a>DescribeFleetAttributes</a> | <a>DescribeFleetCapacity</a> | <a>DescribeFleetEvents</a> | <a>DescribeFleetLocationAttributes</a> | <a>DescribeFleetPortSettings</a> | <a>DescribeFleetUtilization</a> | <a>DescribeRuntimeConfiguration</a> | <a>DescribeScalingPolicies</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets">All APIs by task</a> 

        :param self:
        :param NextToken:  A token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this operation. To start at the beginning of the result set, do not specify a value. This parameter is ignored when the request specifies one or a list of fleet IDs.<br/>Limit:  The maximum number of results to return. Use this parameter with <code>NextToken</code> to get results as a set of sequential pages. This parameter is ignored when the request specifies one or a list of fleet IDs.<br/>FleetIds:  A list of unique fleet identifiers to retrieve attributes for. You can use either the fleet ID or ARN value. To retrieve attributes for all current fleets, do not include this parameter. <br/>
        :return: NextToken:  A token that indicates where to resume retrieving results on the next call to this operation. If no token is returned, these results represent the end of the list.<br/>FleetAttributes:  A collection of objects containing attribute metadata for each requested fleet ID. Attribute objects are returned only for fleets that currently exist.<br/>        """
        pass

    def describe_fleet_capacity(self, FleetIds: List[FleetIdOrArn]=None, Limit: int=None, NextToken: str=None) -> DescribeFleetCapacityOutput:
        r"""Retrieves the resource capacity settings for one or more fleets. The data returned includes the current fleet capacity (number of EC2 instances), and settings that can control how capacity scaling. For fleets with remote locations, this operation retrieves data for the fleet's home Region only. See <a>DescribeFleetLocationCapacity</a> to get capacity settings for a fleet's remote locations. This operation can be used in the following ways:  <ul> <li> To get capacity data for one or more specific fleets, provide a list of fleet IDs or fleet ARNs.  </li> <li> To get capacity data for all fleets, do not provide a fleet identifier.  </li> </ul> When requesting multiple fleets, use the pagination parameters to retrieve results as a set of sequential pages.  If successful, a <a>FleetCapacity</a> object is returned for each requested fleet ID. Each FleetCapacity object includes a <code>Location</code> property, which is set to the fleet's home Region. When a list of fleet IDs is provided, attribute objects are returned only for fleets that currently exist. <note> Some API operations may limit the number of fleet IDs that are allowed in one request. If a request exceeds this limit, the request fails and the error message includes the maximum allowed. </note>  <b>Learn more</b>   <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/fleets-intro.html">Setting up GameLift fleets</a>   <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/monitoring-cloudwatch.html#gamelift-metrics-fleet">GameLift metrics for fleets</a>   <b>Related actions</b>   <a>ListFleets</a> | <a>DescribeEC2InstanceLimits</a> | <a>DescribeFleetAttributes</a> | <a>DescribeFleetCapacity</a> | <a>DescribeFleetEvents</a> | <a>DescribeFleetLocationAttributes</a> | <a>DescribeFleetPortSettings</a> | <a>DescribeFleetUtilization</a> | <a>DescribeRuntimeConfiguration</a> | <a>DescribeScalingPolicies</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets">All APIs by task</a> 

        :param self:
        :param NextToken:  A token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this operation. To start at the beginning of the result set, do not specify a value. This parameter is ignored when the request specifies one or a list of fleet IDs.<br/>Limit:  The maximum number of results to return. Use this parameter with <code>NextToken</code> to get results as a set of sequential pages. This parameter is ignored when the request specifies one or a list of fleet IDs.<br/>FleetIds:  A unique identifier for the fleet(s) to retrieve capacity information for. You can use either the fleet ID or ARN value. Leave this parameter empty to retrieve capacity information for all fleets.<br/>
        :return: NextToken:  A token that indicates where to resume retrieving results on the next call to this operation. If no token is returned, these results represent the end of the list.<br/>FleetCapacity:  A collection of objects that contains capacity information for each requested fleet ID. Capacity objects are returned only for fleets that currently exist.<br/>        """
        pass

    def describe_fleet_events(self, FleetId: str, StartTime: Timestamp=None, EndTime: Timestamp=None, Limit: int=None, NextToken: str=None) -> DescribeFleetEventsOutput:
        r"""Retrieves entries from a fleet's event log. Fleet events are initiated by changes in status, such as during fleet creation and termination, changes in capacity, etc. If a fleet has multiple locations, events are also initiated by changes to status and capacity in remote locations.  You can specify a time range to limit the result set. Use the pagination parameters to retrieve results as a set of sequential pages.  If successful, a collection of event log entries matching the request are returned.  <b>Learn more</b>   <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/fleets-intro.html">Setting up GameLift fleets</a>   <b>Related actions</b>   <a>ListFleets</a> | <a>DescribeEC2InstanceLimits</a> | <a>DescribeFleetAttributes</a> | <a>DescribeFleetCapacity</a> | <a>DescribeFleetEvents</a> | <a>DescribeFleetLocationAttributes</a> | <a>DescribeFleetPortSettings</a> | <a>DescribeFleetUtilization</a> | <a>DescribeRuntimeConfiguration</a> | <a>DescribeScalingPolicies</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets">All APIs by task</a> 

        :param self:
        :param NextToken:  A token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this operation. To start at the beginning of the result set, do not specify a value.<br/>Limit:  The maximum number of results to return. Use this parameter with <code>NextToken</code> to get results as a set of sequential pages.<br/>EndTime:  The most recent date to retrieve event logs for. If no end time is specified, this call returns entries from the specified start time up to the present. Format is a number expressed in Unix time as milliseconds (ex: "1469498468.057").<br/>StartTime:  The earliest date to retrieve event logs for. If no start time is specified, this call returns entries starting from when the fleet was created to the specified end time. Format is a number expressed in Unix time as milliseconds (ex: "1469498468.057").<br/>FleetId:  A unique identifier for the fleet to get event logs for. You can use either the fleet ID or ARN value.<br/>
        :return: NextToken:  A token that indicates where to resume retrieving results on the next call to this operation. If no token is returned, these results represent the end of the list.<br/>Events:  A collection of objects containing event log entries for the specified fleet.<br/>        """
        pass

    def describe_fleet_location_attributes(self, FleetId: str, Locations: List[LocationStringModel]=None, Limit: int=None, NextToken: str=None) -> DescribeFleetLocationAttributesOutput:
        r"""Retrieves information on a fleet's remote locations, including life-cycle status and any suspended fleet activity.  This operation can be used in the following ways:  <ul> <li> To get data for specific locations, provide a fleet identifier and a list of locations. Location data is returned in the order that it is requested.  </li> <li> To get data for all locations, provide a fleet identifier only. Location data is returned in no particular order.  </li> </ul> When requesting attributes for multiple locations, use the pagination parameters to retrieve results as a set of sequential pages.  If successful, a <code>LocationAttributes</code> object is returned for each requested location. If the fleet does not have a requested location, no information is returned. This operation does not return the home Region. To get information on a fleet's home Region, call <code>DescribeFleetAttributes</code>.  <b>Learn more</b>   <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/fleets-intro.html">Setting up GameLift fleets</a>   <b>Related actions</b>   <a>CreateFleetLocations</a> | <a>DescribeFleetLocationAttributes</a> | <a>DescribeFleetLocationCapacity</a> | <a>DescribeFleetLocationUtilization</a> | <a>DescribeFleetAttributes</a> | <a>DescribeFleetCapacity</a> | <a>DescribeFleetUtilization</a> | <a>UpdateFleetCapacity</a> | <a>StopFleetActions</a> | <a>DeleteFleetLocations</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets">All APIs by task</a> 

        :param self:
        :param NextToken:  A token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this operation. To start at the beginning of the result set, do not specify a value.<br/>Limit:  The maximum number of results to return. Use this parameter with <code>NextToken</code> to get results as a set of sequential pages. This limit is not currently enforced. <br/>Locations:  A list of fleet locations to retrieve information for. Specify locations in the form of an AWS Region code, such as <code>us-west-2</code>.<br/>FleetId:  A unique identifier for the fleet to retrieve remote locations for. You can use either the fleet ID or ARN value.<br/>
        :return: NextToken:  A token that indicates where to resume retrieving results on the next call to this operation. If no token is returned, these results represent the end of the list.<br/>LocationAttributes:   Location-specific information on the requested fleet's remote locations. <br/>FleetArn:  The Amazon Resource Name (<a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html">ARN</a>) that is assigned to a GameLift fleet resource and uniquely identifies it. ARNs are unique across all Regions. Format is <code>arn:aws:gamelift:&lt;region&gt;::fleet/fleet-a1234567-b8c9-0d1e-2fa3-b45c6d7e8912</code>. <br/>FleetId:  A unique identifier for the fleet that location attributes were requested for.<br/>        """
        pass

    def describe_fleet_location_capacity(self, Location: str, FleetId: str) -> DescribeFleetLocationCapacityOutput:
        r"""Retrieves the resource capacity settings for a fleet location. The data returned includes the current capacity (number of EC2 instances) and some scaling settings for the requested fleet location. Use this operation to retrieve capacity information for a fleet's remote location or home Region (you can also retrieve home Region capacity by calling <code>DescribeFleetCapacity</code>). To retrieve capacity data, identify a fleet and location.  If successful, a <code>FleetCapacity</code> object is returned for the requested fleet location.   <b>Learn more</b>   <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/fleets-intro.html">Setting up GameLift fleets</a>   <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/monitoring-cloudwatch.html#gamelift-metrics-fleet">GameLift metrics for fleets</a>   <b>Related actions</b>   <a>CreateFleetLocations</a> | <a>DescribeFleetLocationAttributes</a> | <a>DescribeFleetLocationCapacity</a> | <a>DescribeFleetLocationUtilization</a> | <a>DescribeFleetAttributes</a> | <a>DescribeFleetCapacity</a> | <a>DescribeFleetUtilization</a> | <a>UpdateFleetCapacity</a> | <a>StopFleetActions</a> | <a>DeleteFleetLocations</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets">All APIs by task</a> 

        :param self:
        :param Location:  The fleet location to retrieve capacity information for. Specify a location in the form of an AWS Region code, such as <code>us-west-2</code>.<br/>FleetId:  A unique identifier for the fleet to request location capacity for. You can use either the fleet ID or ARN value.<br/>
        :return: FleetCapacity:  Resource capacity information for the requested fleet location. Capacity objects are returned only for fleets and locations that currently exist.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Location</i> The fleet location for the instance count information, expressed as an AWS Region code, such as <code>us-west-2</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceCounts</i> The current instance count and capacity settings for the fleet location. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>InstanceCounts</b>: The current instance count and capacity settings for the fleet location. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceType</i> The EC2 instance type that is used for all instances in a fleet. The instance type determines the computing resources in use, including CPU, memory, storage, and networking capacity. See <a href="http://aws.amazon.com/ec2/instance-types/">Amazon EC2 Instance Types</a> for detailed descriptions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FleetArn</i> The Amazon Resource Name (<a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html">ARN</a>) that is assigned to a GameLift fleet resource and uniquely identifies it. ARNs are unique across all Regions. Format is <code>arn:aws:gamelift:&lt;region&gt;::fleet/fleet-a1234567-b8c9-0d1e-2fa3-b45c6d7e8912</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FleetId</i> A unique identifier for the fleet associated with the location.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TERMINATING</i> Number of instances that are no longer active but haven't yet been terminated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IDLE</i> Number of active instances that are not currently hosting a game session.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ACTIVE</i> Actual number of instances that are ready to host game sessions.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PENDING</i> Number of instances that are starting but not yet active.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MAXIMUM</i> The maximum instance count value allowed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MINIMUM</i> The minimum instance count value allowed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DESIRED</i> Ideal number of active instances. GameLift will always try to maintain the desired number of instances. Capacity is scaled up or down by changing the desired instances. <br/>        """
        pass

    def describe_fleet_location_utilization(self, Location: str, FleetId: str) -> DescribeFleetLocationUtilizationOutput:
        r"""Retrieves current usage data for a fleet location. Utilization data provides a snapshot of current game hosting activity at the requested location. Use this operation to retrieve utilization information for a fleet's remote location or home Region (you can also retrieve home Region utilization by calling <code>DescribeFleetUtilization</code>). To retrieve utilization data, identify a fleet and location.  If successful, a <code>FleetUtilization</code> object is returned for the requested fleet location.   <b>Learn more</b>   <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/fleets-intro.html">Setting up GameLift fleets</a>   <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/monitoring-cloudwatch.html#gamelift-metrics-fleet">GameLift metrics for fleets</a>   <b>Related actions</b>   <a>CreateFleetLocations</a> | <a>DescribeFleetLocationAttributes</a> | <a>DescribeFleetLocationCapacity</a> | <a>DescribeFleetLocationUtilization</a> | <a>DescribeFleetAttributes</a> | <a>DescribeFleetCapacity</a> | <a>DescribeFleetUtilization</a> | <a>UpdateFleetCapacity</a> | <a>StopFleetActions</a> | <a>DeleteFleetLocations</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets">All APIs by task</a> 

        :param self:
        :param Location:  The fleet location to retrieve utilization information for. Specify a location in the form of an AWS Region code, such as <code>us-west-2</code>.<br/>FleetId:  A unique identifier for the fleet to request location utilization for. You can use either the fleet ID or ARN value.<br/>
        :return: FleetUtilization:  Utilization information for the requested fleet location. Utilization objects are returned only for fleets and locations that currently exist.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Location</i> The fleet location for the fleet utilization information, expressed as an AWS Region code, such as <code>us-west-2</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaximumPlayerSessionCount</i> The maximum number of players allowed across all game sessions that are currently being hosted across all instances in the fleet location.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CurrentPlayerSessionCount</i> The number of active player sessions that are currently being hosted across all instances in the fleet location.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActiveGameSessionCount</i> The number of active game sessions that are currently being hosted across all instances in the fleet location.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActiveServerProcessCount</i> The number of server processes in <code>ACTIVE</code> status that are currently running across all instances in the fleet location. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FleetArn</i> The Amazon Resource Name (<a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html">ARN</a>) that is assigned to a GameLift fleet resource and uniquely identifies it. ARNs are unique across all Regions. Format is <code>arn:aws:gamelift:&lt;region&gt;::fleet/fleet-a1234567-b8c9-0d1e-2fa3-b45c6d7e8912</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FleetId</i> A unique identifier for the fleet associated with the location.<br/>        """
        pass

    def describe_fleet_port_settings(self, FleetId: str, Location: str=None) -> DescribeFleetPortSettingsOutput:
        r"""Retrieves a fleet's inbound connection permissions. Connection permissions specify the range of IP addresses and port settings that incoming traffic can use to access server processes in the fleet. Game sessions that are running on instances in the fleet must use connections that fall in this range. This operation can be used in the following ways:  <ul> <li> To retrieve the inbound connection permissions for a fleet, identify the fleet's unique identifier.  </li> <li> To check the status of recent updates to a fleet remote location, specify the fleet ID and a location. Port setting updates can take time to propagate across all locations.  </li> </ul> If successful, a set of <a>IpPermission</a> objects is returned for the requested fleet ID. When a location is specified, a pending status is included. If the requested fleet has been deleted, the result set is empty.  <b>Learn more</b>   <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/fleets-intro.html">Setting up GameLift fleets</a>   <b>Related actions</b>   <a>ListFleets</a> | <a>DescribeEC2InstanceLimits</a> | <a>DescribeFleetAttributes</a> | <a>DescribeFleetCapacity</a> | <a>DescribeFleetEvents</a> | <a>DescribeFleetLocationAttributes</a> | <a>DescribeFleetPortSettings</a> | <a>DescribeFleetUtilization</a> | <a>DescribeRuntimeConfiguration</a> | <a>DescribeScalingPolicies</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets">All APIs by task</a> 

        :param self:
        :param Location:  A remote location to check for status of port setting updates. Use the AWS Region code format, such as <code>us-west-2</code>.<br/>FleetId:  A unique identifier for the fleet to retrieve port settings for. You can use either the fleet ID or ARN value.<br/>
        :return: Location:  The requested fleet location, expressed as an AWS Region code, such as <code>us-west-2</code>. <br/>UpdateStatus:  The current status of updates to the fleet's port settings in the requested fleet location. A status of <code>PENDING_UPDATE</code> indicates that an update was requested for the fleet but has not yet been completed for the location.<br/>InboundPermissions:  The port settings for the requested fleet ID.<br/>FleetArn:  The Amazon Resource Name (<a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html">ARN</a>) that is assigned to a GameLift fleet resource and uniquely identifies it. ARNs are unique across all Regions. Format is <code>arn:aws:gamelift:&lt;region&gt;::fleet/fleet-a1234567-b8c9-0d1e-2fa3-b45c6d7e8912</code>.<br/>FleetId:  A unique identifier for the fleet that was requested. <br/>        """
        pass

    def describe_fleet_utilization(self, FleetIds: List[FleetIdOrArn]=None, Limit: int=None, NextToken: str=None) -> DescribeFleetUtilizationOutput:
        r"""Retrieves utilization statistics for one or more fleets. Utilization data provides a snapshot of how the fleet's hosting resources are currently being used. For fleets with remote locations, this operation retrieves data for the fleet's home Region only. See <a>DescribeFleetLocationUtilization</a> to get utilization statistics for a fleet's remote locations. This operation can be used in the following ways:  <ul> <li> To get utilization data for one or more specific fleets, provide a list of fleet IDs or fleet ARNs.  </li> <li> To get utilization data for all fleets, do not provide a fleet identifier.  </li> </ul> When requesting multiple fleets, use the pagination parameters to retrieve results as a set of sequential pages.  If successful, a <a>FleetUtilization</a> object is returned for each requested fleet ID, unless the fleet identifier is not found. Each fleet utilization object includes a <code>Location</code> property, which is set to the fleet's home Region.  <note> Some API operations may limit the number of fleet IDs allowed in one request. If a request exceeds this limit, the request fails and the error message includes the maximum allowed. </note>  <b>Learn more</b>   <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/fleets-intro.html">Setting up GameLift Fleets</a>   <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/monitoring-cloudwatch.html#gamelift-metrics-fleet">GameLift Metrics for Fleets</a>   <b>Related actions</b>   <a>ListFleets</a> | <a>DescribeEC2InstanceLimits</a> | <a>DescribeFleetAttributes</a> | <a>DescribeFleetCapacity</a> | <a>DescribeFleetEvents</a> | <a>DescribeFleetLocationAttributes</a> | <a>DescribeFleetPortSettings</a> | <a>DescribeFleetUtilization</a> | <a>DescribeRuntimeConfiguration</a> | <a>DescribeScalingPolicies</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets">All APIs by task</a> 

        :param self:
        :param NextToken:  A token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this operation. To start at the beginning of the result set, do not specify a value. This parameter is ignored when the request specifies one or a list of fleet IDs.<br/>Limit:  The maximum number of results to return. Use this parameter with <code>NextToken</code> to get results as a set of sequential pages. This parameter is ignored when the request specifies one or a list of fleet IDs.<br/>FleetIds:  A unique identifier for the fleet(s) to retrieve utilization data for. You can use either the fleet ID or ARN value. To retrieve attributes for all current fleets, do not include this parameter. <br/>
        :return: NextToken:  A token that indicates where to resume retrieving results on the next call to this operation. If no token is returned, these results represent the end of the list.<br/>FleetUtilization:  A collection of objects containing utilization information for each requested fleet ID. Utilization objects are returned only for fleets that currently exist.<br/>        """
        pass

    def describe_game_server(self, GameServerId: str, GameServerGroupName: str) -> DescribeGameServerOutput:
        r""" <b>This operation is used with the GameLift FleetIQ solution and game server groups.</b>  Retrieves information for a registered game server. Information includes game server status, health check info, and the instance that the game server is running on.  To retrieve game server information, specify the game server ID. If successful, the requested game server object is returned.   <b>Learn more</b>   <a href="https://docs.aws.amazon.com/gamelift/latest/fleetiqguide/gsg-intro.html">GameLift FleetIQ Guide</a>   <b>Related actions</b>   <a>RegisterGameServer</a> | <a>ListGameServers</a> | <a>ClaimGameServer</a> | <a>DescribeGameServer</a> | <a>UpdateGameServer</a> | <a>DeregisterGameServer</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/fleetiqguide/reference-awssdk-fleetiq.html">All APIs by task</a> 

        :param self:
        :param GameServerId:  A custom string that uniquely identifies the game server information to be retrieved.<br/>GameServerGroupName:  A unique identifier for the game server group where the game server is running. Use either the <a>GameServerGroup</a> name or ARN value.<br/>
        :return: GameServer:  Object that describes the requested game server.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastHealthCheckTime</i> Timestamp that indicates the last time the game server was updated with health status using an <a>UpdateGameServer</a> request. The format is a number expressed in Unix time as milliseconds (for example <code>"1469498468.057"</code>). After game server registration, this property is only changed when a game server update specifies a health check value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastClaimTime</i> Timestamp that indicates the last time the game server was claimed with a <a>ClaimGameServer</a> request. The format is a number expressed in Unix time as milliseconds (for example <code>"1469498468.057"</code>). This value is used to calculate when a claimed game server's status should revert to null.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RegistrationTime</i> Timestamp that indicates when the game server was created with a <a>RegisterGameServer</a> request. The format is a number expressed in Unix time as milliseconds (for example <code>"1469498468.057"</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UtilizationStatus</i> Indicates whether the game server is currently available for new games or is busy. Possible statuses include: <ul> <li>  <code>AVAILABLE</code> - The game server is available to be claimed. A game server that has been claimed remains in this status until it reports game hosting activity.  </li> <li>  <code>UTILIZED</code> - The game server is currently hosting a game session with players.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClaimStatus</i> Indicates when an available game server has been reserved for gameplay but has not yet started hosting a game. Once it is claimed, the game server remains in <code>CLAIMED</code> status for a maximum of one minute. During this time, game clients connect to the game server to start the game and trigger the game server to update its utilization status. After one minute, the game server claim status reverts to null.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GameServerData</i> A set of custom game server properties, formatted as a single string value. This data is passed to a game client or service when it requests information on game servers using <a>ListGameServers</a> or <a>ClaimGameServer</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConnectionInfo</i> The port and IP address that must be used to establish a client connection to the game server.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceId</i> The unique identifier for the instance where the game server is running. This ID is available in the instance metadata. EC2 instance IDs use a 17-character format, for example: <code>i-1234567890abcdef0</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GameServerId</i> A custom string that uniquely identifies the game server. Game server IDs are developer-defined and are unique across all game server groups in an AWS account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GameServerGroupArn</i> The ARN identifier for the game server group where the game server is located.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GameServerGroupName</i> A unique identifier for the game server group where the game server is running. Use either the <a>GameServerGroup</a> name or ARN value.<br/>        """
        pass

    def describe_game_server_group(self, GameServerGroupName: str) -> DescribeGameServerGroupOutput:
        r""" <b>This operation is used with the GameLift FleetIQ solution and game server groups.</b>  Retrieves information on a game server group. This operation returns only properties related to GameLift FleetIQ. To view or update properties for the corresponding Auto Scaling group, such as launch template, auto scaling policies, and maximum/minimum group size, access the Auto Scaling group directly. To get attributes for a game server group, provide a group name or ARN value. If successful, a <a>GameServerGroup</a> object is returned.  <b>Learn more</b>   <a href="https://docs.aws.amazon.com/gamelift/latest/fleetiqguide/gsg-intro.html">GameLift FleetIQ Guide</a>   <b>Related actions</b>   <a>CreateGameServerGroup</a> | <a>ListGameServerGroups</a> | <a>DescribeGameServerGroup</a> | <a>UpdateGameServerGroup</a> | <a>DeleteGameServerGroup</a> | <a>ResumeGameServerGroup</a> | <a>SuspendGameServerGroup</a> | <a>DescribeGameServerInstances</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/fleetiqguide/reference-awssdk-fleetiq.html">All APIs by task</a> 

        :param self:
        :param GameServerGroupName:  A unique identifier for the game server group. Use either the <a>GameServerGroup</a> name or ARN value.<br/>
        :return: GameServerGroup:  An object with the property settings for the requested game server group resource. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdatedTime</i> A timestamp that indicates when this game server group was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> A time stamp indicating when this data object was created. Format is a number expressed in Unix time as milliseconds (for example <code>"1469498468.057"</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SuspendedActions</i> A list of activities that are currently suspended for this game server group. If this property is empty, all activities are occurring.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusReason</i> Additional information about the current game server group status. This information might provide additional insight on groups that are in <code>ERROR</code> status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current status of the game server group. Possible statuses include: <ul> <li>  <code>NEW</code> - GameLift FleetIQ has validated the <code>CreateGameServerGroup()</code> request.  </li> <li>  <code>ACTIVATING</code> - GameLift FleetIQ is setting up a game server group, which includes creating an Auto Scaling group in your AWS account.  </li> <li>  <code>ACTIVE</code> - The game server group has been successfully created.  </li> <li>  <code>DELETE_SCHEDULED</code> - A request to delete the game server group has been received.  </li> <li>  <code>DELETING</code> - GameLift FleetIQ has received a valid <code>DeleteGameServerGroup()</code> request and is processing it. GameLift FleetIQ must first complete and release hosts before it deletes the Auto Scaling group and the game server group.  </li> <li>  <code>DELETED</code> - The game server group has been successfully deleted.  </li> <li>  <code>ERROR</code> - The asynchronous processes of activating or deleting a game server group has failed, resulting in an error state. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoScalingGroupArn</i> A generated unique ID for the EC2 Auto Scaling group that is associated with this game server group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GameServerProtectionPolicy</i> A flag that indicates whether instances in the game server group are protected from early termination. Unprotected instances that have active game servers running might be terminated during a scale-down event, causing players to be dropped from the game. Protected instances cannot be terminated while there are active game servers running except in the event of a forced game server group deletion (see ). An exception to this is with Spot Instances, which can be terminated by AWS regardless of protection status. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BalancingStrategy</i> Indicates how GameLift FleetIQ balances the use of Spot Instances and On-Demand Instances in the game server group. Method options include the following: <ul> <li>  <code>SPOT_ONLY</code> - Only Spot Instances are used in the game server group. If Spot Instances are unavailable or not viable for game hosting, the game server group provides no hosting capacity until Spot Instances can again be used. Until then, no new instances are started, and the existing nonviable Spot Instances are terminated (after current gameplay ends) and are not replaced. </li> <li>  <code>SPOT_PREFERRED</code> - (default value) Spot Instances are used whenever available in the game server group. If Spot Instances are unavailable, the game server group continues to provide hosting capacity by falling back to On-Demand Instances. Existing nonviable Spot Instances are terminated (after current gameplay ends) and are replaced with new On-Demand Instances. </li> <li>  <code>ON_DEMAND_ONLY</code> - Only On-Demand Instances are used in the game server group. No Spot Instances are used, even when available, while this balancing strategy is in force. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceDefinitions</i> The set of EC2 instance types that GameLift FleetIQ can use when balancing and automatically scaling instances in the corresponding Auto Scaling group. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The Amazon Resource Name (<a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html">ARN</a>) for an IAM role that allows Amazon GameLift to access your EC2 Auto Scaling groups.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GameServerGroupArn</i> A generated unique ID for the game server group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GameServerGroupName</i> A developer-defined identifier for the game server group. The name is unique for each Region in each AWS account.<br/>        """
        pass

    def describe_game_server_instances(self, GameServerGroupName: str, InstanceIds: List[GameServerInstanceId]=None, Limit: int=None, NextToken: str=None) -> DescribeGameServerInstancesOutput:
        r""" <b>This operation is used with the GameLift FleetIQ solution and game server groups.</b>  Retrieves status information about the Amazon EC2 instances associated with a GameLift FleetIQ game server group. Use this operation to detect when instances are active or not available to host new game servers. If you are looking for instance configuration information, call <a>DescribeGameServerGroup</a> or access the corresponding Auto Scaling group properties. To request status for all instances in the game server group, provide a game server group ID only. To request status for specific instances, provide the game server group ID and one or more instance IDs. Use the pagination parameters to retrieve results in sequential segments. If successful, a collection of <code>GameServerInstance</code> objects is returned.  This operation is not designed to be called with every game server claim request; this practice can cause you to exceed your API limit, which results in errors. Instead, as a best practice, cache the results and refresh your cache no more than once every 10 seconds.  <b>Learn more</b>   <a href="https://docs.aws.amazon.com/gamelift/latest/fleetiqguide/gsg-intro.html">GameLift FleetIQ Guide</a>   <b>Related actions</b>   <a>CreateGameServerGroup</a> | <a>ListGameServerGroups</a> | <a>DescribeGameServerGroup</a> | <a>UpdateGameServerGroup</a> | <a>DeleteGameServerGroup</a> | <a>ResumeGameServerGroup</a> | <a>SuspendGameServerGroup</a> | <a>DescribeGameServerInstances</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/fleetiqguide/reference-awssdk-fleetiq.html">All APIs by task</a> 

        :param self:
        :param NextToken:   A token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this operation. To start at the beginning of the result set, do not specify a value. <br/>Limit:   The maximum number of results to return. Use this parameter with <code>NextToken</code> to get results as a set of sequential pages. <br/>InstanceIds:  The EC2 instance IDs that you want to retrieve status on. EC2 instance IDs use a 17-character format, for example: <code>i-1234567890abcdef0</code>. To retrieve all instances in the game server group, leave this parameter empty. <br/>GameServerGroupName:  A unique identifier for the game server group. Use either the <a>GameServerGroup</a> name or ARN value.<br/>
        :return: NextToken:   A token that indicates where to resume retrieving results on the next call to this operation. If no token is returned, these results represent the end of the list. <br/>GameServerInstances:   The collection of requested game server instances. <br/>        """
        pass

    def describe_game_session_details(self, FleetId: str=None, GameSessionId: str=None, AliasId: str=None, Location: str=None, StatusFilter: str=None, Limit: int=None, NextToken: str=None) -> DescribeGameSessionDetailsOutput:
        r"""Retrieves additional game session properties, including the game session protection policy in force, a set of one or more game sessions in a specific fleet location. You can optionally filter the results by current game session status. Alternatively, use <a>SearchGameSessions</a> to request a set of active game sessions that are filtered by certain criteria. To retrieve all game session properties, use <a>DescribeGameSessions</a>.  This operation can be used in the following ways:  <ul> <li> To retrieve details for all game sessions that are currently running on all locations in a fleet, provide a fleet or alias ID, with an optional status filter. This approach returns details from the fleet's home Region and all remote locations. </li> <li> To retrieve details for all game sessions that are currently running on a specific fleet location, provide a fleet or alias ID and a location name, with optional status filter. The location can be the fleet's home Region or any remote location. </li> <li> To retrieve details for a specific game session, provide the game session ID. This approach looks for the game session ID in all fleets that reside in the AWS Region defined in the request. </li> </ul> Use the pagination parameters to retrieve results as a set of sequential pages.  If successful, a <code>GameSessionDetail</code> object is returned for each game session that matches the request.  <b>Learn more</b>   <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-client-api.html#gamelift-sdk-client-api-find">Find a game session</a>   <b>Related actions</b>   <a>CreateGameSession</a> | <a>DescribeGameSessions</a> | <a>DescribeGameSessionDetails</a> | <a>SearchGameSessions</a> | <a>UpdateGameSession</a> | <a>GetGameSessionLogUrl</a> | <a>StartGameSessionPlacement</a> | <a>DescribeGameSessionPlacement</a> | <a>StopGameSessionPlacement</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets">All APIs by task</a> 

        :param self:
        :param NextToken:  A token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this operation. To start at the beginning of the result set, do not specify a value.<br/>Limit:  The maximum number of results to return. Use this parameter with <code>NextToken</code> to get results as a set of sequential pages.<br/>StatusFilter:  Game session status to filter results on. Possible game session statuses include <code>ACTIVE</code>, <code>TERMINATED</code>, <code>ACTIVATING</code> and <code>TERMINATING</code> (the last two are transitory). <br/>Location:  A fleet location to get game sessions for. You can specify a fleet's home Region or a remote location. Use the AWS Region code format, such as <code>us-west-2</code>. <br/>AliasId:  A unique identifier for the alias associated with the fleet to retrieve all game sessions for. You can use either the alias ID or ARN value.<br/>GameSessionId:  A unique identifier for the game session to retrieve. <br/>FleetId:  A unique identifier for the fleet to retrieve all game sessions active on the fleet. You can use either the fleet ID or ARN value.<br/>
        :return: NextToken:  A token that indicates where to resume retrieving results on the next call to this operation. If no token is returned, these results represent the end of the list.<br/>GameSessionDetails:  A collection of properties for each game session that matches the request.<br/>        """
        pass

    def describe_game_session_placement(self, PlacementId: str) -> DescribeGameSessionPlacementOutput:
        r"""Retrieves information, including current status, about a game session placement request.  To get game session placement details, specify the placement ID. If successful, a <a>GameSessionPlacement</a> object is returned.  <b>Related actions</b>   <a>CreateGameSession</a> | <a>DescribeGameSessions</a> | <a>DescribeGameSessionDetails</a> | <a>SearchGameSessions</a> | <a>UpdateGameSession</a> | <a>GetGameSessionLogUrl</a> | <a>StartGameSessionPlacement</a> | <a>DescribeGameSessionPlacement</a> | <a>StopGameSessionPlacement</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets">All APIs by task</a> 

        :param self:
        :param PlacementId:  A unique identifier for a game session placement to retrieve.<br/>
        :return: GameSessionPlacement:  Object that describes the requested game session placement.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MatchmakerData</i> Information on the matchmaking process for this game. Data is in JSON syntax, formatted as a string. It identifies the matchmaking configuration used to create the match, and contains data on all players assigned to the match, including player attributes and team assignments. For more details on matchmaker data, see <a href="https://docs.aws.amazon.com/gamelift/latest/flexmatchguide/match-server.html#match-server-data">Match Data</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GameSessionData</i> A set of custom game session properties, formatted as a single string value. This data is passed to a game server process in the <a>GameSession</a> object with a request to start a new game session (see <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession">Start a Game Session</a>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PlacedPlayerSessions</i> A collection of information on player sessions created in response to the game session placement request. These player sessions are created only once a new game session is successfully placed (placement status is <code>FULFILLED</code>). This information includes the player ID (as provided in the placement request) and the corresponding player session ID. Retrieve full player sessions by calling <a>DescribePlayerSessions</a> with the player session ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> The port number for the game session. To connect to a GameLift game server, an app needs both the IP address and port number. This value is set once the new game session is placed (placement status is <code>FULFILLED</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DnsName</i> The DNS identifier assigned to the instance that is running the game session. Values have the following format: <ul> <li> TLS-enabled fleets: <code>&lt;unique identifier&gt;.&lt;region identifier&gt;.amazongamelift.com</code>. </li> <li> Non-TLS-enabled fleets: <code>ec2-&lt;unique identifier&gt;.compute.amazonaws.com</code>. (See <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-instance-addressing.html#concepts-public-addresses">Amazon EC2 Instance IP Addressing</a>.) </li> </ul> When connecting to a game session that is running on a TLS-enabled fleet, you must use the DNS name, not the IP address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IpAddress</i> The IP address of the game session. To connect to a GameLift game server, an app needs both the IP address and port number. This value is set once the new game session is placed (placement status is <code>FULFILLED</code>). <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndTime</i> Time stamp indicating when this request was completed, canceled, or timed out.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StartTime</i> Time stamp indicating when this request was placed in the queue. Format is a number expressed in Unix time as milliseconds (for example <code>"1469498468.057"</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PlayerLatencies</i> A set of values, expressed in milliseconds, that indicates the amount of latency that a player experiences when connected to AWS Regions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GameSessionRegion</i> Name of the Region where the game session created by this placement request is running. This value is set once the new game session is placed (placement status is <code>FULFILLED</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GameSessionArn</i> Identifier for the game session created by this placement request. This value is set once the new game session is placed (placement status is <code>FULFILLED</code>). This identifier is unique across all Regions. You can use this value as a <code>GameSessionId</code> value as needed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GameSessionId</i> A unique identifier for the game session. This value is set once the new game session is placed (placement status is <code>FULFILLED</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GameSessionName</i> A descriptive label that is associated with a game session. Session names do not need to be unique.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaximumPlayerSessionCount</i> The maximum number of players that can be connected simultaneously to the game session.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GameProperties</i> A set of custom properties for a game session, formatted as key:value pairs. These properties are passed to a game server process in the <a>GameSession</a> object with a request to start a new game session (see <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession">Start a Game Session</a>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Current status of the game session placement request. <ul> <li>  <b>PENDING</b> -- The placement request is currently in the queue waiting to be processed. </li> <li>  <b>FULFILLED</b> -- A new game session and player sessions (if requested) have been successfully created. Values for <i>GameSessionArn</i> and <i>GameSessionRegion</i> are available.  </li> <li>  <b>CANCELLED</b> -- The placement request was canceled with a call to <a>StopGameSessionPlacement</a>. </li> <li>  <b>TIMED_OUT</b> -- A new game session was not successfully created before the time limit expired. You can resubmit the placement request as needed. </li> <li>  <b>FAILED</b> -- GameLift is not able to complete the process of placing the game session. Common reasons are the game session terminated before the placement process was completed, or an unexpected internal error. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GameSessionQueueName</i> A descriptive label that is associated with game session queue. Queue names must be unique within each Region.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PlacementId</i> A unique identifier for a game session placement.<br/>        """
        pass

    def describe_game_session_queues(self, Names: List[GameSessionQueueNameOrArn]=None, Limit: int=None, NextToken: str=None) -> DescribeGameSessionQueuesOutput:
        r"""Retrieves the properties for one or more game session queues. When requesting multiple queues, use the pagination parameters to retrieve results as a set of sequential pages. If successful, a <a>GameSessionQueue</a> object is returned for each requested queue. When specifying a list of queues, objects are returned only for queues that currently exist in the Region.  <b>Learn more</b>   <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/queues-console.html"> View Your Queues</a>   <b>Related actions</b>   <a>CreateGameSessionQueue</a> | <a>DescribeGameSessionQueues</a> | <a>UpdateGameSessionQueue</a> | <a>DeleteGameSessionQueue</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets">All APIs by task</a> 

        :param self:
        :param NextToken:  A token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this operation. To start at the beginning of the result set, do not specify a value.<br/>Limit:  The maximum number of results to return. Use this parameter with <code>NextToken</code> to get results as a set of sequential pages. You can request up to 50 results.<br/>Names:  A list of queue names to retrieve information for. You can use either the queue ID or ARN value. To request settings for all queues, leave this parameter empty. <br/>
        :return: NextToken:  A token that indicates where to resume retrieving results on the next call to this operation. If no token is returned, these results represent the end of the list.<br/>GameSessionQueues:  A collection of objects that describe the requested game session queues.<br/>        """
        pass

    def describe_game_sessions(self, FleetId: str=None, GameSessionId: str=None, AliasId: str=None, Location: str=None, StatusFilter: str=None, Limit: int=None, NextToken: str=None) -> DescribeGameSessionsOutput:
        r"""Retrieves a set of one or more game sessions in a specific fleet location. You can optionally filter the results by current game session status. Alternatively, use <a>SearchGameSessions</a> to request a set of active game sessions that are filtered by certain criteria. To retrieve the protection policy for game sessions, use <a>DescribeGameSessionDetails</a>. This operation can be used in the following ways:  <ul> <li> To retrieve all game sessions that are currently running on all locations in a fleet, provide a fleet or alias ID, with an optional status filter. This approach returns all game sessions in the fleet's home Region and all remote locations. </li> <li> To retrieve all game sessions that are currently running on a specific fleet location, provide a fleet or alias ID and a location name, with optional status filter. The location can be the fleet's home Region or any remote location. </li> <li> To retrieve a specific game session, provide the game session ID. This approach looks for the game session ID in all fleets that reside in the AWS Region defined in the request. </li> </ul> Use the pagination parameters to retrieve results as a set of sequential pages.  If successful, a <code>GameSession</code> object is returned for each game session that matches the request.  <i>Available in GameLift Local.</i>   <b>Learn more</b>   <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-client-api.html#gamelift-sdk-client-api-find">Find a game session</a>   <b>Related actions</b>   <a>CreateGameSession</a> | <a>DescribeGameSessions</a> | <a>DescribeGameSessionDetails</a> | <a>SearchGameSessions</a> | <a>UpdateGameSession</a> | <a>GetGameSessionLogUrl</a> | <a>StartGameSessionPlacement</a> | <a>DescribeGameSessionPlacement</a> | <a>StopGameSessionPlacement</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets">All APIs by task</a> 

        :param self:
        :param NextToken:  A token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this operation. To start at the beginning of the result set, do not specify a value.<br/>Limit:  The maximum number of results to return. Use this parameter with <code>NextToken</code> to get results as a set of sequential pages.<br/>StatusFilter:  Game session status to filter results on. You can filter on the following states: <code>ACTIVE</code>, <code>TERMINATED</code>, <code>ACTIVATING</code>, and <code>TERMINATING</code>. The last two are transitory and used for only very brief periods of time. <br/>Location:  A fleet location to get game session details for. You can specify a fleet's home Region or a remote location. Use the AWS Region code format, such as <code>us-west-2</code>. <br/>AliasId:  A unique identifier for the alias associated with the fleet to retrieve game sessions for. You can use either the alias ID or ARN value.<br/>GameSessionId:  A unique identifier for the game session to retrieve. <br/>FleetId:  A unique identifier for the fleet to retrieve game sessions for. You can use either the fleet ID or ARN value. <br/>
        :return: NextToken:  A token that indicates where to resume retrieving results on the next call to this operation. If no token is returned, these results represent the end of the list.<br/>GameSessions:  A collection of properties for each game session that matches the request.<br/>        """
        pass

    def describe_instances(self, FleetId: str, InstanceId: str=None, Limit: int=None, NextToken: str=None, Location: str=None) -> DescribeInstancesOutput:
        r"""Retrieves information about a fleet's instances, including instance IDs, connection data, and status.  This operation can be used in the following ways: <ul> <li> To get information on all instances that are deployed to a fleet's home Region, provide the fleet ID. </li> <li> To get information on all instances that are deployed to a fleet's remote location, provide the fleet ID and location name. </li> <li> To get information on a specific instance in a fleet, provide the fleet ID and instance ID. </li> </ul> Use the pagination parameters to retrieve results as a set of sequential pages.  If successful, an <code>Instance</code> object is returned for each requested instance. Instances are not returned in any particular order.   <b>Learn more</b>   <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/fleets-remote-access.html">Remotely Access Fleet Instances</a>   <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/fleets-creating-debug.html">Debug Fleet Issues</a>   <b>Related actions</b>   <a>DescribeInstances</a> | <a>GetInstanceAccess</a> | <a>DescribeEC2InstanceLimits</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets">All APIs by task</a> 

        :param self:
        :param Location:  The name of a location to retrieve instance information for, in the form of an AWS Region code such as <code>us-west-2</code>. <br/>NextToken:  A token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this operation. To start at the beginning of the result set, do not specify a value.<br/>Limit:  The maximum number of results to return. Use this parameter with <code>NextToken</code> to get results as a set of sequential pages.<br/>InstanceId:  A unique identifier for an instance to retrieve. Specify an instance ID or leave blank to retrieve all instances in the fleet.<br/>FleetId:  A unique identifier for the fleet to retrieve instance information for. You can use either the fleet ID or ARN value.<br/>
        :return: NextToken:  A token that indicates where to resume retrieving results on the next call to this operation. If no token is returned, these results represent the end of the list.<br/>Instances:  A collection of objects containing properties for each instance returned.<br/>        """
        pass

    def describe_matchmaking(self, TicketIds: List[MatchmakingIdStringModel]) -> DescribeMatchmakingOutput:
        r"""Retrieves one or more matchmaking tickets. Use this operation to retrieve ticket information, including--after a successful match is made--connection information for the resulting new game session.  To request matchmaking tickets, provide a list of up to 10 ticket IDs. If the request is successful, a ticket object is returned for each requested ID that currently exists. This operation is not designed to be continually called to track matchmaking ticket status. This practice can cause you to exceed your API limit, which results in errors. Instead, as a best practice, set up an Amazon Simple Notification Service (SNS) to receive notifications, and provide the topic ARN in the matchmaking configuration. Continuously poling ticket status with <a>DescribeMatchmaking</a> should only be used for games in development with low matchmaking usage. <p/>  <b>Learn more</b>   <a href="https://docs.aws.amazon.com/gamelift/latest/flexmatchguide/match-client.html"> Add FlexMatch to a game client</a>   <a href="https://docs.aws.amazon.com/gamelift/latest/flexmatchguide/match-notification.html"> Set Up FlexMatch event notification</a>   <b>Related actions</b>   <a>StartMatchmaking</a> | <a>DescribeMatchmaking</a> | <a>StopMatchmaking</a> | <a>AcceptMatch</a> | <a>StartMatchBackfill</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets">All APIs by task</a> 

        :param self:
        :param TicketIds:  A unique identifier for a matchmaking ticket. You can include up to 10 ID values. <br/>
        :return: TicketList:  A collection of existing matchmaking ticket objects matching the request.<br/>        """
        pass

    def describe_matchmaking_configurations(self, Names: List[MatchmakingConfigurationName]=None, RuleSetName: str=None, Limit: int=None, NextToken: str=None) -> DescribeMatchmakingConfigurationsOutput:
        r"""Retrieves the details of FlexMatch matchmaking configurations.  This operation offers the following options: (1) retrieve all matchmaking configurations, (2) retrieve configurations for a specified list, or (3) retrieve all configurations that use a specified rule set name. When requesting multiple items, use the pagination parameters to retrieve results as a set of sequential pages.  If successful, a configuration is returned for each requested name. When specifying a list of names, only configurations that currently exist are returned.   <b>Learn more</b>   <a href="https://docs.aws.amazon.com/gamelift/latest/flexmatchguide/matchmaker-build.html"> Setting up FlexMatch matchmakers</a>   <b>Related actions</b>   <a>CreateMatchmakingConfiguration</a> | <a>DescribeMatchmakingConfigurations</a> | <a>UpdateMatchmakingConfiguration</a> | <a>DeleteMatchmakingConfiguration</a> | <a>CreateMatchmakingRuleSet</a> | <a>DescribeMatchmakingRuleSets</a> | <a>ValidateMatchmakingRuleSet</a> | <a>DeleteMatchmakingRuleSet</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets">All APIs by task</a> 

        :param self:
        :param NextToken:  A token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this operation. To start at the beginning of the result set, do not specify a value.<br/>Limit:  The maximum number of results to return. Use this parameter with <code>NextToken</code> to get results as a set of sequential pages. This parameter is limited to 10.<br/>RuleSetName:  A unique identifier for the matchmaking rule set. You can use either the rule set name or ARN value. Use this parameter to retrieve all matchmaking configurations that use this rule set.<br/>Names:  A unique identifier for the matchmaking configuration(s) to retrieve. You can use either the configuration name or ARN value. To request all existing configurations, leave this parameter empty.<br/>
        :return: NextToken:  A token that indicates where to resume retrieving results on the next call to this operation. If no token is returned, these results represent the end of the list.<br/>Configurations:  A collection of requested matchmaking configurations.<br/>        """
        pass

    def describe_matchmaking_rule_sets(self, Names: List[MatchmakingRuleSetName]=None, Limit: int=None, NextToken: str=None) -> DescribeMatchmakingRuleSetsOutput:
        r"""Retrieves the details for FlexMatch matchmaking rule sets. You can request all existing rule sets for the Region, or provide a list of one or more rule set names. When requesting multiple items, use the pagination parameters to retrieve results as a set of sequential pages. If successful, a rule set is returned for each requested name.   <b>Learn more</b>  <ul> <li>  <a href="https://docs.aws.amazon.com/gamelift/latest/flexmatchguide/match-rulesets.html">Build a rule set</a>  </li> </ul>  <b>Related actions</b>   <a>CreateMatchmakingConfiguration</a> | <a>DescribeMatchmakingConfigurations</a> | <a>UpdateMatchmakingConfiguration</a> | <a>DeleteMatchmakingConfiguration</a> | <a>CreateMatchmakingRuleSet</a> | <a>DescribeMatchmakingRuleSets</a> | <a>ValidateMatchmakingRuleSet</a> | <a>DeleteMatchmakingRuleSet</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets">All APIs by task</a> 

        :param self:
        :param NextToken:  A token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this operation. To start at the beginning of the result set, do not specify a value.<br/>Limit:  The maximum number of results to return. Use this parameter with <code>NextToken</code> to get results as a set of sequential pages.<br/>Names:  A list of one or more matchmaking rule set names to retrieve details for. (Note: The rule set name is different from the optional "name" field in the rule set body.) You can use either the rule set name or ARN value. <br/>
        :return: NextToken:  A token that indicates where to resume retrieving results on the next call to this operation. If no token is returned, these results represent the end of the list.<br/>RuleSets:  A collection of requested matchmaking rule set objects. <br/>        """
        pass

    def describe_player_sessions(self, GameSessionId: str=None, PlayerId: str=None, PlayerSessionId: str=None, PlayerSessionStatusFilter: str=None, Limit: int=None, NextToken: str=None) -> DescribePlayerSessionsOutput:
        r"""Retrieves properties for one or more player sessions.  This action can be used in the following ways:  <ul> <li> To retrieve a specific player session, provide the player session ID only. </li> <li> To retrieve all player sessions in a game session, provide the game session ID only. </li> <li> To retrieve all player sessions for a specific player, provide a player ID only. </li> </ul> To request player sessions, specify either a player session ID, game session ID, or player ID. You can filter this request by player session status. Use the pagination parameters to retrieve results as a set of sequential pages.  If successful, a <code>PlayerSession</code> object is returned for each session that matches the request.  <i>Available in Amazon GameLift Local.</i>   <b>Related actions</b>   <a>CreatePlayerSession</a> | <a>CreatePlayerSessions</a> | <a>DescribePlayerSessions</a> | <a>StartGameSessionPlacement</a> | <a>DescribeGameSessionPlacement</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets">All APIs by task</a> 

        :param self:
        :param NextToken:  A token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this operation. To start at the beginning of the result set, do not specify a value. If a player session ID is specified, this parameter is ignored.<br/>Limit:  The maximum number of results to return. Use this parameter with <code>NextToken</code> to get results as a set of sequential pages. If a player session ID is specified, this parameter is ignored.<br/>PlayerSessionStatusFilter:  Player session status to filter results on. Possible player session statuses include the following: <ul> <li>  <b>RESERVED</b> -- The player session request has been received, but the player has not yet connected to the server process and/or been validated.  </li> <li>  <b>ACTIVE</b> -- The player has been validated by the server process and is currently connected. </li> <li>  <b>COMPLETED</b> -- The player connection has been dropped. </li> <li>  <b>TIMEDOUT</b> -- A player session request was received, but the player did not connect and/or was not validated within the timeout limit (60 seconds). </li> </ul><br/>PlayerSessionId:  A unique identifier for a player session to retrieve.<br/>PlayerId:  A unique identifier for a player to retrieve player sessions for.<br/>GameSessionId:  A unique identifier for the game session to retrieve player sessions for.<br/>
        :return: NextToken:  A token that indicates where to resume retrieving results on the next call to this operation. If no token is returned, these results represent the end of the list.<br/>PlayerSessions:  A collection of objects containing properties for each player session that matches the request.<br/>        """
        pass

    def describe_runtime_configuration(self, FleetId: str) -> DescribeRuntimeConfigurationOutput:
        r"""Retrieves a fleet's runtime configuration settings. The runtime configuration tells GameLift which server processes to run (and how) on each instance in the fleet. To get the runtime configuration that is currently in forces for a fleet, provide the fleet ID.  If successful, a <a>RuntimeConfiguration</a> object is returned for the requested fleet. If the requested fleet has been deleted, the result set is empty.  <b>Learn more</b>   <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/fleets-intro.html">Setting up GameLift fleets</a>   <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/fleets-multiprocess.html">Running multiple processes on a fleet</a>   <b>Related actions</b>   <a>ListFleets</a> | <a>DescribeEC2InstanceLimits</a> | <a>DescribeFleetAttributes</a> | <a>DescribeFleetCapacity</a> | <a>DescribeFleetEvents</a> | <a>DescribeFleetLocationAttributes</a> | <a>DescribeFleetPortSettings</a> | <a>DescribeFleetUtilization</a> | <a>DescribeRuntimeConfiguration</a> | <a>DescribeScalingPolicies</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets">All APIs by task</a> 

        :param self:
        :param FleetId:  A unique identifier for the fleet to get the runtime configuration for. You can use either the fleet ID or ARN value.<br/>
        :return: RuntimeConfiguration:  Instructions that describe how server processes should be launched and maintained on each instance in the fleet.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GameSessionActivationTimeoutSeconds</i> The maximum amount of time (in seconds) allowed to launch a new game session and have it report ready to host players. During this time, the game session is in status <code>ACTIVATING</code>. If the game session does not become active before the timeout, it is ended and the game session status is changed to <code>TERMINATED</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxConcurrentGameSessionActivations</i> The number of game sessions in status <code>ACTIVATING</code> to allow on an instance. This setting limits the instance resources that can be used for new game activations at any one time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerProcesses</i> A collection of server process configurations that identify what server processes to run on each instance in a fleet.<br/>        """
        pass

    def describe_scaling_policies(self, FleetId: str, StatusFilter: str=None, Limit: int=None, NextToken: str=None, Location: str=None) -> DescribeScalingPoliciesOutput:
        r"""Retrieves all scaling policies applied to a fleet. To get a fleet's scaling policies, specify the fleet ID. You can filter this request by policy status, such as to retrieve only active scaling policies. Use the pagination parameters to retrieve results as a set of sequential pages. If successful, set of <a>ScalingPolicy</a> objects is returned for the fleet. A fleet may have all of its scaling policies suspended (<a>StopFleetActions</a>). This operation does not affect the status of the scaling policies, which remains ACTIVE. To see whether a fleet's scaling policies are in force or suspended, call <a>DescribeFleetAttributes</a> and check the stopped actions.  <b>Related actions</b>   <a>DescribeFleetCapacity</a> | <a>UpdateFleetCapacity</a> | <a>DescribeEC2InstanceLimits</a> | <a>PutScalingPolicy</a> | <a>DescribeScalingPolicies</a> | <a>DeleteScalingPolicy</a> | <a>StopFleetActions</a> | <a>StartFleetActions</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets">All APIs by task</a> 

        :param self:
        :param Location:   CONTENT TODO <br/>NextToken:  A token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this operation. To start at the beginning of the result set, do not specify a value.<br/>Limit:  The maximum number of results to return. Use this parameter with <code>NextToken</code> to get results as a set of sequential pages.<br/>StatusFilter:  Scaling policy status to filter results on. A scaling policy is only in force when in an <code>ACTIVE</code> status. <ul> <li>  <b>ACTIVE</b> -- The scaling policy is currently in force. </li> <li>  <b>UPDATEREQUESTED</b> -- A request to update the scaling policy has been received. </li> <li>  <b>UPDATING</b> -- A change is being made to the scaling policy. </li> <li>  <b>DELETEREQUESTED</b> -- A request to delete the scaling policy has been received. </li> <li>  <b>DELETING</b> -- The scaling policy is being deleted. </li> <li>  <b>DELETED</b> -- The scaling policy has been deleted. </li> <li>  <b>ERROR</b> -- An error occurred in creating the policy. It should be removed and recreated. </li> </ul><br/>FleetId:  A unique identifier for the fleet to retrieve scaling policies for. You can use either the fleet ID or ARN value.<br/>
        :return: NextToken:  A token that indicates where to resume retrieving results on the next call to this operation. If no token is returned, these results represent the end of the list.<br/>ScalingPolicies:  A collection of objects containing the scaling policies matching the request.<br/>        """
        pass

    def describe_script(self, ScriptId: str) -> DescribeScriptOutput:
        r"""Retrieves properties for a Realtime script.  To request a script record, specify the script ID. If successful, an object containing the script properties is returned.  <b>Learn more</b>   <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/realtime-intro.html">Amazon GameLift Realtime Servers</a>   <b>Related actions</b>   <a>CreateScript</a> | <a>ListScripts</a> | <a>DescribeScript</a> | <a>UpdateScript</a> | <a>DeleteScript</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets">All APIs by task</a> 

        :param self:
        :param ScriptId:  A unique identifier for the Realtime script to retrieve properties for. You can use either the script ID or ARN value.<br/>
        :return: Script:  A set of properties describing the requested script.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageLocation</i> The location in Amazon S3 where build or script files are stored for access by Amazon GameLift. This location is specified in <a>CreateBuild</a>, <a>CreateScript</a>, and <a>UpdateScript</a> requests. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StorageLocation</b>: The location in Amazon S3 where build or script files are stored for access by Amazon GameLift. This location is specified in <a>CreateBuild</a>, <a>CreateScript</a>, and <a>UpdateScript</a> requests. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> A time stamp indicating when this data object was created. Format is a number expressed in Unix time as milliseconds (for example <code>"1469498468.057"</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SizeOnDisk</i> The file size of the uploaded Realtime script, expressed in bytes. When files are uploaded from an S3 location, this value remains at "0".<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> Version information that is associated with a build or script. Version strings do not need to be unique.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A descriptive label that is associated with a script. Script names do not need to be unique.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ScriptArn</i> The Amazon Resource Name (<a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html">ARN</a>) that is assigned to a GameLift script resource and uniquely identifies it. ARNs are unique across all Regions. In a GameLift script ARN, the resource ID matches the <i>ScriptId</i> value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ScriptId</i> A unique identifier for the Realtime script<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ObjectVersion</i> The version of the file, if object versioning is turned on for the bucket. Amazon GameLift uses this information when retrieving files from an S3 bucket that you own. Use this parameter to specify a specific version of the file. If not set, the latest version of the file is retrieved. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The Amazon Resource Name (<a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html">ARN</a>) for an IAM role that allows Amazon GameLift to access the S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The name of the zip file that contains the build files or script files. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i> An Amazon S3 bucket identifier. This is the name of the S3 bucket. <note> GameLift currently does not support uploading from Amazon S3 buckets with names that contain a dot (.). </note><br/>        """
        pass

    def describe_vpc_peering_authorizations(self) -> DescribeVpcPeeringAuthorizationsOutput:
        r"""Retrieves valid VPC peering authorizations that are pending for the AWS account. This operation returns all VPC peering authorizations and requests for peering. This includes those initiated and received by this account.   <b>Related actions</b>   <a>CreateVpcPeeringAuthorization</a> | <a>DescribeVpcPeeringAuthorizations</a> | <a>DeleteVpcPeeringAuthorization</a> | <a>CreateVpcPeeringConnection</a> | <a>DescribeVpcPeeringConnections</a> | <a>DeleteVpcPeeringConnection</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets">All APIs by task</a> 

        :param self:
        :param 
        :return: VpcPeeringAuthorizations:  A collection of objects that describe all valid VPC peering operations for the current AWS account.<br/>        """
        pass

    def describe_vpc_peering_connections(self, FleetId: str=None) -> DescribeVpcPeeringConnectionsOutput:
        r"""Retrieves information on VPC peering connections. Use this operation to get peering information for all fleets or for one specific fleet ID.  To retrieve connection information, call this operation from the AWS account that is used to manage the Amazon GameLift fleets. Specify a fleet ID or leave the parameter empty to retrieve all connection records. If successful, the retrieved information includes both active and pending connections. Active connections identify the IpV4 CIDR block that the VPC uses to connect.   <b>Related actions</b>   <a>CreateVpcPeeringAuthorization</a> | <a>DescribeVpcPeeringAuthorizations</a> | <a>DeleteVpcPeeringAuthorization</a> | <a>CreateVpcPeeringConnection</a> | <a>DescribeVpcPeeringConnections</a> | <a>DeleteVpcPeeringConnection</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets">All APIs by task</a> 

        :param self:
        :param FleetId:  A unique identifier for the fleet. You can use either the fleet ID or ARN value.<br/>
        :return: VpcPeeringConnections:  A collection of VPC peering connection records that match the request.<br/>        """
        pass

    def get_game_session_log_url(self, GameSessionId: str) -> GetGameSessionLogUrlOutput:
        r"""Retrieves the location of stored game session logs for a specified game session. When a game session is terminated, GameLift automatically stores the logs in Amazon S3 and retains them for 14 days. Use this URL to download the logs. <note> See the <a href="https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html#limits_gamelift">AWS Service Limits</a> page for maximum log file sizes. Log files that exceed this limit are not saved. </note>  <b>Related actions</b>   <a>CreateGameSession</a> | <a>DescribeGameSessions</a> | <a>DescribeGameSessionDetails</a> | <a>SearchGameSessions</a> | <a>UpdateGameSession</a> | <a>GetGameSessionLogUrl</a> | <a>StartGameSessionPlacement</a> | <a>DescribeGameSessionPlacement</a> | <a>StopGameSessionPlacement</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets">All APIs by task</a> 

        :param self:
        :param GameSessionId:  A unique identifier for the game session to get logs for. <br/>
        :return: PreSignedUrl:  Location of the requested game session logs, available for download. This URL is valid for 15 minutes, after which S3 will reject any download request using this URL. You can request a new URL any time within the 14-day period that the logs are retained.<br/>        """
        pass

    def get_instance_access(self, InstanceId: str, FleetId: str) -> GetInstanceAccessOutput:
        r"""Requests remote access to a fleet instance. Remote access is useful for debugging, gathering benchmarking data, or observing activity in real time.  To remotely access an instance, you need credentials that match the operating system of the instance. For a Windows instance, GameLift returns a user name and password as strings for use with a Windows Remote Desktop client. For a Linux instance, GameLift returns a user name and RSA private key, also as strings, for use with an SSH client. The private key must be saved in the proper format to a <code>.pem</code> file before using. If you're making this request using the AWS CLI, saving the secret can be handled as part of the <code>GetInstanceAccess</code> request, as shown in one of the examples for this operation.  To request access to a specific instance, specify the IDs of both the instance and the fleet it belongs to. You can retrieve a fleet's instance IDs by calling <a>DescribeInstances</a>. If successful, an <a>InstanceAccess</a> object is returned that contains the instance's IP address and a set of credentials.  <b>Learn more</b>   <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/fleets-remote-access.html">Remotely Access Fleet Instances</a>   <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/fleets-creating-debug.html">Debug Fleet Issues</a>   <b>Related actions</b>   <a>DescribeInstances</a> | <a>GetInstanceAccess</a> | <a>DescribeEC2InstanceLimits</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets">All APIs by task</a> 

        :param self:
        :param InstanceId:  A unique identifier for the instance you want to get access to. You can access an instance in any status.<br/>FleetId:  A unique identifier for the fleet that contains the instance you want access to. You can use either the fleet ID or ARN value. The fleet can be in any of the following statuses: <code>ACTIVATING</code>, <code>ACTIVE</code>, or <code>ERROR</code>. Fleets with an <code>ERROR</code> status may be accessible for a short time before they are deleted.<br/>
        :return: InstanceAccess:  The connection information for a fleet instance, including IP address and access credentials.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Credentials</i> Credentials required to access the instance.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Credentials</b>: Credentials required to access the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OperatingSystem</i> Operating system that is running on the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IpAddress</i> IP address that is assigned to the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceId</i> A unique identifier for the instance being accessed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FleetId</i> A unique identifier for the fleet containing the instance being accessed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Secret</i> Secret string. For Windows instances, the secret is a password for use with Windows Remote Desktop. For Linux instances, it is a private key (which must be saved as a <code>.pem</code> file) for use with SSH.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UserName</i> User login string.<br/>        """
        pass

    def list_aliases(self, RoutingStrategyType: str=None, Name: str=None, Limit: int=None, NextToken: str=None) -> ListAliasesOutput:
        r"""Retrieves all aliases for this AWS account. You can filter the result set by alias name and/or routing strategy type. Use the pagination parameters to retrieve results in sequential pages. <note> Returned aliases are not listed in any particular order. </note>  <b>Related actions</b>   <a>CreateAlias</a> | <a>ListAliases</a> | <a>DescribeAlias</a> | <a>UpdateAlias</a> | <a>DeleteAlias</a> | <a>ResolveAlias</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets">All APIs by task</a> 

        :param self:
        :param NextToken:  A token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this operation. To start at the beginning of the result set, do not specify a value.<br/>Limit:  The maximum number of results to return. Use this parameter with <code>NextToken</code> to get results as a set of sequential pages.<br/>Name:  A descriptive label that is associated with an alias. Alias names do not need to be unique.<br/>RoutingStrategyType:  The routing type to filter results on. Use this parameter to retrieve only aliases with a certain routing type. To retrieve all aliases, leave this parameter empty. Possible routing types include the following: <ul> <li>  <b>SIMPLE</b> -- The alias resolves to one specific fleet. Use this type when routing to active fleets. </li> <li>  <b>TERMINAL</b> -- The alias does not resolve to a fleet but instead can be used to display a message to the user. A terminal alias throws a TerminalRoutingStrategyException with the <a>RoutingStrategy</a> message embedded. </li> </ul><br/>
        :return: NextToken:  A token that indicates where to resume retrieving results on the next call to this operation. If no token is returned, these results represent the end of the list.<br/>Aliases:  A collection of alias resources that match the request parameters.<br/>        """
        pass

    def list_builds(self, Status: str=None, Limit: int=None, NextToken: str=None) -> ListBuildsOutput:
        r"""Retrieves build resources for all builds associated with the AWS account in use. You can limit results to builds that are in a specific status by using the <code>Status</code> parameter. Use the pagination parameters to retrieve results in a set of sequential pages.  <note> Build resources are not listed in any particular order. </note>  <b>Learn more</b>   <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-build-intro.html"> Upload a Custom Server Build</a>   <b>Related actions</b>   <a>CreateBuild</a> | <a>ListBuilds</a> | <a>DescribeBuild</a> | <a>UpdateBuild</a> | <a>DeleteBuild</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets">All APIs by task</a> 

        :param self:
        :param NextToken:  A token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this operation. To start at the beginning of the result set, do not specify a value.<br/>Limit:  The maximum number of results to return. Use this parameter with <code>NextToken</code> to get results as a set of sequential pages.<br/>Status:  Build status to filter results by. To retrieve all builds, leave this parameter empty. Possible build statuses include the following: <ul> <li>  <b>INITIALIZED</b> -- A new build has been defined, but no files have been uploaded. You cannot create fleets for builds that are in this status. When a build is successfully created, the build status is set to this value.  </li> <li>  <b>READY</b> -- The game build has been successfully uploaded. You can now create new fleets for this build. </li> <li>  <b>FAILED</b> -- The game build upload failed. You cannot create new fleets for this build.  </li> </ul><br/>
        :return: NextToken:  A token that indicates where to resume retrieving results on the next call to this operation. If no token is returned, these results represent the end of the list.<br/>Builds:  A collection of build resources that match the request.<br/>        """
        pass

    def list_fleets(self, BuildId: str=None, ScriptId: str=None, Limit: int=None, NextToken: str=None) -> ListFleetsOutput:
        r"""Retrieves a collection of fleet resources in an AWS Region. You can call this operation to get fleets in a previously selected default Region (see <a href="https://docs.aws.amazon.com/credref/latest/refdocs/setting-global-region.html">https://docs.aws.amazon.com/credref/latest/refdocs/setting-global-region.html</a>or specify a Region in your request. You can filter the result set to find only those fleets that are deployed with a specific build or script. For fleets that have multiple locations, this operation retrieves fleets based on their home Region only. This operation can be used in the following ways:  <ul> <li> To get a list of all fleets in a Region, don't provide a build or script identifier.  </li> <li> To get a list of all fleets where a specific custom game build is deployed, provide the build ID. </li> <li> To get a list of all Realtime Servers fleets with a specific configuration script, provide the script ID.  </li> </ul> Use the pagination parameters to retrieve results as a set of sequential pages.  If successful, a list of fleet IDs that match the request parameters is returned. A NextToken value is also returned if there are more result pages to retrieve. <note> Fleet resources are not listed in a particular order. </note>  <b>Learn more</b>   <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/fleets-intro.html">Setting up GameLift fleets</a>   <b>Related actions</b>   <a>CreateFleet</a> | <a>UpdateFleetCapacity</a> | <a>PutScalingPolicy</a> | <a>DescribeEC2InstanceLimits</a> | <a>DescribeFleetAttributes</a> | <a>DescribeFleetLocationAttributes</a> | <a>UpdateFleetAttributes</a> | <a>StopFleetActions</a> | <a>DeleteFleet</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets">All APIs by task</a> 

        :param self:
        :param NextToken:  A token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this operation. To start at the beginning of the result set, do not specify a value.<br/>Limit:  The maximum number of results to return. Use this parameter with <code>NextToken</code> to get results as a set of sequential pages.<br/>ScriptId:  A unique identifier for the Realtime script to request fleets for. Use this parameter to return only fleets using a specified script. Use either the script ID or ARN value.<br/>BuildId:  A unique identifier for the build to request fleets for. Use this parameter to return only fleets using a specified build. Use either the build ID or ARN value.<br/>
        :return: NextToken:  A token that indicates where to resume retrieving results on the next call to this operation. If no token is returned, these results represent the end of the list.<br/>FleetIds:  A set of fleet IDs that match the list request. You can retrieve additional information about all returned fleets by passing this result set to a <a>DescribeFleetAttributes</a>, <a>DescribeFleetCapacity</a>, or <a>DescribeFleetUtilization</a> call.<br/>        """
        pass

    def list_game_server_groups(self, Limit: int=None, NextToken: str=None) -> ListGameServerGroupsOutput:
        r""" <b>This operation is used with the GameLift FleetIQ solution and game server groups.</b>  Retrieves information on all game servers groups that exist in the current AWS account for the selected Region. Use the pagination parameters to retrieve results in a set of sequential segments.   <b>Learn more</b>   <a href="https://docs.aws.amazon.com/gamelift/latest/fleetiqguide/gsg-intro.html">GameLift FleetIQ Guide</a>   <b>Related actions</b>   <a>CreateGameServerGroup</a> | <a>ListGameServerGroups</a> | <a>DescribeGameServerGroup</a> | <a>UpdateGameServerGroup</a> | <a>DeleteGameServerGroup</a> | <a>ResumeGameServerGroup</a> | <a>SuspendGameServerGroup</a> | <a>DescribeGameServerInstances</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/fleetiqguide/reference-awssdk-fleetiq.html">All APIs by task</a> 

        :param self:
        :param NextToken:  A token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this operation. To start at the beginning of the result set, do not specify a value.<br/>Limit:  The maximum number of results to return. Use this parameter with <code>NextToken</code> to get results as a set of sequential pages.<br/>
        :return: NextToken:  A token that indicates where to resume retrieving results on the next call to this operation. If no token is returned, these results represent the end of the list.<br/>GameServerGroups:  A collection of game server group objects that match the request.<br/>        """
        pass

    def list_game_servers(self, GameServerGroupName: str, SortOrder: str=None, Limit: int=None, NextToken: str=None) -> ListGameServersOutput:
        r""" <b>This operation is used with the GameLift FleetIQ solution and game server groups.</b>  Retrieves information on all game servers that are currently active in a specified game server group. You can opt to sort the list by game server age. Use the pagination parameters to retrieve results in a set of sequential segments.   <b>Learn more</b>   <a href="https://docs.aws.amazon.com/gamelift/latest/fleetiqguide/gsg-intro.html">GameLift FleetIQ Guide</a>   <b>Related actions</b>   <a>RegisterGameServer</a> | <a>ListGameServers</a> | <a>ClaimGameServer</a> | <a>DescribeGameServer</a> | <a>UpdateGameServer</a> | <a>DeregisterGameServer</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/fleetiqguide/reference-awssdk-fleetiq.html">All APIs by task</a> 

        :param self:
        :param NextToken:  A token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this operation. To start at the beginning of the result set, do not specify a value.<br/>Limit:  The maximum number of results to return. Use this parameter with <code>NextToken</code> to get results as a set of sequential pages.<br/>SortOrder:  Indicates how to sort the returned data based on game server registration timestamp. Use <code>ASCENDING</code> to retrieve oldest game servers first, or use <code>DESCENDING</code> to retrieve newest game servers first. If this parameter is left empty, game servers are returned in no particular order.<br/>GameServerGroupName:  An identifier for the game server group to retrieve a list of game servers from. Use either the <a>GameServerGroup</a> name or ARN value.<br/>
        :return: NextToken:  A token that indicates where to resume retrieving results on the next call to this operation. If no token is returned, these results represent the end of the list.<br/>GameServers:  A collection of game server objects that match the request.<br/>        """
        pass

    def list_scripts(self, Limit: int=None, NextToken: str=None) -> ListScriptsOutput:
        r"""Retrieves script records for all Realtime scripts that are associated with the AWS account in use.   <b>Learn more</b>   <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/realtime-intro.html">Amazon GameLift Realtime Servers</a>   <b>Related actions</b>   <a>CreateScript</a> | <a>ListScripts</a> | <a>DescribeScript</a> | <a>UpdateScript</a> | <a>DeleteScript</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets">All APIs by task</a> 

        :param self:
        :param NextToken:  A token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this operation. To start at the beginning of the result set, do not specify a value.<br/>Limit:  The maximum number of results to return. Use this parameter with <code>NextToken</code> to get results as a set of sequential pages.<br/>
        :return: NextToken:  A token that indicates where to resume retrieving results on the next call to this operation. If no token is returned, these results represent the end of the list.<br/>Scripts:  A set of properties describing the requested script.<br/>        """
        pass

    def list_tags_for_resource(self, ResourceARN: str) -> ListTagsForResourceResponse:
        r""" Retrieves all tags that are assigned to a GameLift resource. Resource tags are used to organize AWS resources for a range of purposes. This operation handles the permissions necessary to manage tags for the following GameLift resource types: <ul> <li> Build </li> <li> Script </li> <li> Fleet </li> <li> Alias </li> <li> GameSessionQueue </li> <li> MatchmakingConfiguration </li> <li> MatchmakingRuleSet </li> </ul> To list tags for a resource, specify the unique ARN value for the resource.  <b>Learn more</b>   <a href="https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html">Tagging AWS Resources</a> in the <i>AWS General Reference</i>   <a href="http://aws.amazon.com/answers/account-management/aws-tagging-strategies/"> AWS Tagging Strategies</a>   <b>Related actions</b>   <a>TagResource</a> | <a>UntagResource</a> | <a>ListTagsForResource</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets">All APIs by task</a> 

        :param self:
        :param ResourceARN:   The Amazon Resource Name (<a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html">ARN</a>) that is assigned to and uniquely identifies the GameLift resource that you want to retrieve tags for. GameLift resource ARNs are included in the data object for the resource, which can be retrieved by calling a List or Describe operation for the resource type. <br/>
        :return: Tags:   The collection of tags that have been assigned to the specified resource. <br/>        """
        pass

    def put_scaling_policy(self, MetricName: str, FleetId: str, Name: str, ScalingAdjustment: int=None, ScalingAdjustmentType: str=None, Threshold: Double=None, ComparisonOperator: str=None, EvaluationPeriods: int=None, PolicyType: str=None, TargetConfiguration: TargetConfiguration=None) -> PutScalingPolicyOutput:
        r"""Creates or updates a scaling policy for a fleet. Scaling policies are used to automatically scale a fleet's hosting capacity to meet player demand. An active scaling policy instructs Amazon GameLift to track a fleet metric and automatically change the fleet's capacity when a certain threshold is reached. There are two types of scaling policies: target-based and rule-based. Use a target-based policy to quickly and efficiently manage fleet scaling; this option is the most commonly used. Use rule-based policies when you need to exert fine-grained control over auto-scaling.  Fleets can have multiple scaling policies of each type in force at the same time; you can have one target-based policy, one or multiple rule-based scaling policies, or both. We recommend caution, however, because multiple auto-scaling policies can have unintended consequences. You can temporarily suspend all scaling policies for a fleet by calling <a>StopFleetActions</a> with the fleet action AUTO_SCALING. To resume scaling policies, call <a>StartFleetActions</a> with the same fleet action. To stop just one scaling policy--or to permanently remove it, you must delete the policy with <a>DeleteScalingPolicy</a>. Learn more about how to work with auto-scaling in <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/fleets-autoscaling.html">Set Up Fleet Automatic Scaling</a>.  <b>Target-based policy</b>  A target-based policy tracks a single metric: PercentAvailableGameSessions. This metric tells us how much of a fleet's hosting capacity is ready to host game sessions but is not currently in use. This is the fleet's buffer; it measures the additional player demand that the fleet could handle at current capacity. With a target-based policy, you set your ideal buffer size and leave it to Amazon GameLift to take whatever action is needed to maintain that target.  For example, you might choose to maintain a 10% buffer for a fleet that has the capacity to host 100 simultaneous game sessions. This policy tells Amazon GameLift to take action whenever the fleet's available capacity falls below or rises above 10 game sessions. Amazon GameLift will start new instances or stop unused instances in order to return to the 10% buffer.  To create or update a target-based policy, specify a fleet ID and name, and set the policy type to "TargetBased". Specify the metric to track (PercentAvailableGameSessions) and reference a <a>TargetConfiguration</a> object with your desired buffer value. Exclude all other parameters. On a successful request, the policy name is returned. The scaling policy is automatically in force as soon as it's successfully created. If the fleet's auto-scaling actions are temporarily suspended, the new policy will be in force once the fleet actions are restarted.  <b>Rule-based policy</b>  A rule-based policy tracks specified fleet metric, sets a threshold value, and specifies the type of action to initiate when triggered. With a rule-based policy, you can select from several available fleet metrics. Each policy specifies whether to scale up or scale down (and by how much), so you need one policy for each type of action.  For example, a policy may make the following statement: "If the percentage of idle instances is greater than 20% for more than 15 minutes, then reduce the fleet capacity by 10%." A policy's rule statement has the following structure: If <code>[MetricName]</code> is <code>[ComparisonOperator]</code> <code>[Threshold]</code> for <code>[EvaluationPeriods]</code> minutes, then <code>[ScalingAdjustmentType]</code> to/by <code>[ScalingAdjustment]</code>. To implement the example, the rule statement would look like this: If <code>[PercentIdleInstances]</code> is <code>[GreaterThanThreshold]</code> <code>[20]</code> for <code>[15]</code> minutes, then <code>[PercentChangeInCapacity]</code> to/by <code>[10]</code>. To create or update a scaling policy, specify a unique combination of name and fleet ID, and set the policy type to "RuleBased". Specify the parameter values for a policy rule statement. On a successful request, the policy name is returned. Scaling policies are automatically in force as soon as they're successfully created. If the fleet's auto-scaling actions are temporarily suspended, the new policy will be in force once the fleet actions are restarted.  <b>Related actions</b>   <a>DescribeFleetCapacity</a> | <a>UpdateFleetCapacity</a> | <a>DescribeEC2InstanceLimits</a> | <a>PutScalingPolicy</a> | <a>DescribeScalingPolicies</a> | <a>DeleteScalingPolicy</a> | <a>StopFleetActions</a> | <a>StartFleetActions</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets">All APIs by task</a> 

        :param self:
        :param TargetConfiguration:  An object that contains settings for a target-based scaling policy.:<br/>PolicyType:  The type of scaling policy to create. For a target-based policy, set the parameter <i>MetricName</i> to 'PercentAvailableGameSessions' and specify a <i>TargetConfiguration</i>. For a rule-based policy set the following parameters: <i>MetricName</i>, <i>ComparisonOperator</i>, <i>Threshold</i>, <i>EvaluationPeriods</i>, <i>ScalingAdjustmentType</i>, and <i>ScalingAdjustment</i>.<br/>MetricName:  Name of the Amazon GameLift-defined metric that is used to trigger a scaling adjustment. For detailed descriptions of fleet metrics, see <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/monitoring-cloudwatch.html">Monitor Amazon GameLift with Amazon CloudWatch</a>.  <ul> <li>  <b>ActivatingGameSessions</b> -- Game sessions in the process of being created. </li> <li>  <b>ActiveGameSessions</b> -- Game sessions that are currently running. </li> <li>  <b>ActiveInstances</b> -- Fleet instances that are currently running at least one game session. </li> <li>  <b>AvailableGameSessions</b> -- Additional game sessions that fleet could host simultaneously, given current capacity. </li> <li>  <b>AvailablePlayerSessions</b> -- Empty player slots in currently active game sessions. This includes game sessions that are not currently accepting players. Reserved player slots are not included. </li> <li>  <b>CurrentPlayerSessions</b> -- Player slots in active game sessions that are being used by a player or are reserved for a player.  </li> <li>  <b>IdleInstances</b> -- Active instances that are currently hosting zero game sessions.  </li> <li>  <b>PercentAvailableGameSessions</b> -- Unused percentage of the total number of game sessions that a fleet could host simultaneously, given current capacity. Use this metric for a target-based scaling policy. </li> <li>  <b>PercentIdleInstances</b> -- Percentage of the total number of active instances that are hosting zero game sessions. </li> <li>  <b>QueueDepth</b> -- Pending game session placement requests, in any queue, where the current fleet is the top-priority destination. </li> <li>  <b>WaitTime</b> -- Current wait time for pending game session placement requests, in any queue, where the current fleet is the top-priority destination.  </li> </ul><br/>EvaluationPeriods:  Length of time (in minutes) the metric must be at or beyond the threshold before a scaling event is triggered.<br/>ComparisonOperator:  Comparison operator to use when measuring the metric against the threshold value.<br/>Threshold:  Metric value used to trigger a scaling event.<br/>ScalingAdjustmentType:  The type of adjustment to make to a fleet's instance count (see <a>FleetCapacity</a>): <ul> <li>  <b>ChangeInCapacity</b> -- add (or subtract) the scaling adjustment value from the current instance count. Positive values scale up while negative values scale down. </li> <li>  <b>ExactCapacity</b> -- set the instance count to the scaling adjustment value. </li> <li>  <b>PercentChangeInCapacity</b> -- increase or reduce the current instance count by the scaling adjustment, read as a percentage. Positive values scale up while negative values scale down; for example, a value of "-10" scales the fleet down by 10%. </li> </ul><br/>ScalingAdjustment:  Amount of adjustment to make, based on the scaling adjustment type.<br/>FleetId:  A unique identifier for the fleet to apply this policy to. You can use either the fleet ID or ARN value. The fleet cannot be in any of the following statuses: ERROR or DELETING.<br/>Name:  A descriptive label that is associated with a fleet's scaling policy. Policy names do not need to be unique. A fleet can have only one scaling policy with the same name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetValue</i> Desired value to use with a target-based scaling policy. The value must be relevant for whatever metric the scaling policy is using. For example, in a policy using the metric PercentAvailableGameSessions, the target value should be the preferred size of the fleet's buffer (the percent of capacity that should be idle and ready for new game sessions).<br/>
        :return: Name:  A descriptive label that is associated with a fleet's scaling policy. Policy names do not need to be unique.<br/>        """
        pass

    def register_game_server(self, InstanceId: str, GameServerId: str, GameServerGroupName: str, ConnectionInfo: str=None, GameServerData: str=None) -> RegisterGameServerOutput:
        r""" <b>This operation is used with the GameLift FleetIQ solution and game server groups.</b>  Creates a new game server resource and notifies GameLift FleetIQ that the game server is ready to host gameplay and players. This operation is called by a game server process that is running on an instance in a game server group. Registering game servers enables GameLift FleetIQ to track available game servers and enables game clients and services to claim a game server for a new game session.  To register a game server, identify the game server group and instance where the game server is running, and provide a unique identifier for the game server. You can also include connection and game server data. When a game client or service requests a game server by calling <a>ClaimGameServer</a>, this information is returned in the response. Once a game server is successfully registered, it is put in status <code>AVAILABLE</code>. A request to register a game server may fail if the instance it is running on is in the process of shutting down as part of instance balancing or scale-down activity.   <b>Learn more</b>   <a href="https://docs.aws.amazon.com/gamelift/latest/fleetiqguide/gsg-intro.html">GameLift FleetIQ Guide</a>   <b>Related actions</b>   <a>RegisterGameServer</a> | <a>ListGameServers</a> | <a>ClaimGameServer</a> | <a>DescribeGameServer</a> | <a>UpdateGameServer</a> | <a>DeregisterGameServer</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/fleetiqguide/reference-awssdk-fleetiq.html">All APIs by task</a> 

        :param self:
        :param GameServerData:  A set of custom game server properties, formatted as a single string value. This data is passed to a game client or service when it requests information on game servers using <a>ListGameServers</a> or <a>ClaimGameServer</a>. <br/>ConnectionInfo:  Information that is needed to make inbound client connections to the game server. This might include the IP address and port, DNS name, and other information.<br/>InstanceId:  The unique identifier for the instance where the game server is running. This ID is available in the instance metadata. EC2 instance IDs use a 17-character format, for example: <code>i-1234567890abcdef0</code>.<br/>GameServerId:  A custom string that uniquely identifies the game server to register. Game server IDs are developer-defined and must be unique across all game server groups in your AWS account.<br/>GameServerGroupName:  A unique identifier for the game server group where the game server is running. Use either the <a>GameServerGroup</a> name or ARN value.<br/>
        :return: GameServer:  Object that describes the newly registered game server.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastHealthCheckTime</i> Timestamp that indicates the last time the game server was updated with health status using an <a>UpdateGameServer</a> request. The format is a number expressed in Unix time as milliseconds (for example <code>"1469498468.057"</code>). After game server registration, this property is only changed when a game server update specifies a health check value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastClaimTime</i> Timestamp that indicates the last time the game server was claimed with a <a>ClaimGameServer</a> request. The format is a number expressed in Unix time as milliseconds (for example <code>"1469498468.057"</code>). This value is used to calculate when a claimed game server's status should revert to null.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RegistrationTime</i> Timestamp that indicates when the game server was created with a <a>RegisterGameServer</a> request. The format is a number expressed in Unix time as milliseconds (for example <code>"1469498468.057"</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UtilizationStatus</i> Indicates whether the game server is currently available for new games or is busy. Possible statuses include: <ul> <li>  <code>AVAILABLE</code> - The game server is available to be claimed. A game server that has been claimed remains in this status until it reports game hosting activity.  </li> <li>  <code>UTILIZED</code> - The game server is currently hosting a game session with players.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClaimStatus</i> Indicates when an available game server has been reserved for gameplay but has not yet started hosting a game. Once it is claimed, the game server remains in <code>CLAIMED</code> status for a maximum of one minute. During this time, game clients connect to the game server to start the game and trigger the game server to update its utilization status. After one minute, the game server claim status reverts to null.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GameServerData</i> A set of custom game server properties, formatted as a single string value. This data is passed to a game client or service when it requests information on game servers using <a>ListGameServers</a> or <a>ClaimGameServer</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConnectionInfo</i> The port and IP address that must be used to establish a client connection to the game server.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceId</i> The unique identifier for the instance where the game server is running. This ID is available in the instance metadata. EC2 instance IDs use a 17-character format, for example: <code>i-1234567890abcdef0</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GameServerId</i> A custom string that uniquely identifies the game server. Game server IDs are developer-defined and are unique across all game server groups in an AWS account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GameServerGroupArn</i> The ARN identifier for the game server group where the game server is located.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GameServerGroupName</i> A unique identifier for the game server group where the game server is running. Use either the <a>GameServerGroup</a> name or ARN value.<br/>        """
        pass

    def request_upload_credentials(self, BuildId: str) -> RequestUploadCredentialsOutput:
        r"""Retrieves a fresh set of credentials for use when uploading a new set of game build files to Amazon GameLift's Amazon S3. This is done as part of the build creation process; see <a>CreateBuild</a>. To request new credentials, specify the build ID as returned with an initial <code>CreateBuild</code> request. If successful, a new set of credentials are returned, along with the S3 storage location associated with the build ID.  <b>Learn more</b>   <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-build-cli-uploading.html#gamelift-build-cli-uploading-create-build"> Create a Build with Files in S3</a>   <b>Related actions</b>   <a>CreateBuild</a> | <a>ListBuilds</a> | <a>DescribeBuild</a> | <a>UpdateBuild</a> | <a>DeleteBuild</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets">All APIs by task</a> 

        :param self:
        :param BuildId:  A unique identifier for the build to get credentials for. You can use either the build ID or ARN value. <br/>
        :return: StorageLocation:  Amazon S3 path and key, identifying where the game build files are stored.:<br/>UploadCredentials:  AWS credentials required when uploading a game build to the storage location. These credentials have a limited lifespan and are valid only for the build they were issued for.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SessionToken</i> Token used to associate a specific build ID with the files uploaded using these credentials.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretAccessKey</i> Temporary secret key allowing access to the Amazon GameLift S3 account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccessKeyId</i> Temporary key allowing access to the Amazon GameLift S3 account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ObjectVersion</i> The version of the file, if object versioning is turned on for the bucket. Amazon GameLift uses this information when retrieving files from an S3 bucket that you own. Use this parameter to specify a specific version of the file. If not set, the latest version of the file is retrieved. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The Amazon Resource Name (<a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html">ARN</a>) for an IAM role that allows Amazon GameLift to access the S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The name of the zip file that contains the build files or script files. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i> An Amazon S3 bucket identifier. This is the name of the S3 bucket. <note> GameLift currently does not support uploading from Amazon S3 buckets with names that contain a dot (.). </note><br/>        """
        pass

    def resolve_alias(self, AliasId: str) -> ResolveAliasOutput:
        r"""Retrieves the fleet ID that an alias is currently pointing to.  <b>Related actions</b>   <a>CreateAlias</a> | <a>ListAliases</a> | <a>DescribeAlias</a> | <a>UpdateAlias</a> | <a>DeleteAlias</a> | <a>ResolveAlias</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets">All APIs by task</a> 

        :param self:
        :param AliasId:  The unique identifier of the alias that you want to retrieve a fleet ID for. You can use either the alias ID or ARN value.<br/>
        :return: FleetArn:   The Amazon Resource Name (<a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html">ARN</a>) associated with the GameLift fleet resource that this alias points to. <br/>FleetId:  The fleet identifier that the alias is pointing to.<br/>        """
        pass

    def resume_game_server_group(self, ResumeActions: List[GameServerGroupAction], GameServerGroupName: str) -> ResumeGameServerGroupOutput:
        r""" <b>This operation is used with the GameLift FleetIQ solution and game server groups.</b>  Reinstates activity on a game server group after it has been suspended. A game server group might be suspended by the<a>SuspendGameServerGroup</a> operation, or it might be suspended involuntarily due to a configuration problem. In the second case, you can manually resume activity on the group once the configuration problem has been resolved. Refer to the game server group status and status reason for more information on why group activity is suspended. To resume activity, specify a game server group ARN and the type of activity to be resumed. If successful, a <a>GameServerGroup</a> object is returned showing that the resumed activity is no longer listed in <code>SuspendedActions</code>.   <b>Learn more</b>   <a href="https://docs.aws.amazon.com/gamelift/latest/fleetiqguide/gsg-intro.html">GameLift FleetIQ Guide</a>   <b>Related actions</b>   <a>CreateGameServerGroup</a> | <a>ListGameServerGroups</a> | <a>DescribeGameServerGroup</a> | <a>UpdateGameServerGroup</a> | <a>DeleteGameServerGroup</a> | <a>ResumeGameServerGroup</a> | <a>SuspendGameServerGroup</a> | <a>DescribeGameServerInstances</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/fleetiqguide/reference-awssdk-fleetiq.html">All APIs by task</a> 

        :param self:
        :param ResumeActions:  The activity to resume for this game server group.<br/>GameServerGroupName:  A unique identifier for the game server group. Use either the <a>GameServerGroup</a> name or ARN value.<br/>
        :return: GameServerGroup:  An object that describes the game server group resource, with the <code>SuspendedActions</code> property updated to reflect the resumed activity.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdatedTime</i> A timestamp that indicates when this game server group was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> A time stamp indicating when this data object was created. Format is a number expressed in Unix time as milliseconds (for example <code>"1469498468.057"</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SuspendedActions</i> A list of activities that are currently suspended for this game server group. If this property is empty, all activities are occurring.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusReason</i> Additional information about the current game server group status. This information might provide additional insight on groups that are in <code>ERROR</code> status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current status of the game server group. Possible statuses include: <ul> <li>  <code>NEW</code> - GameLift FleetIQ has validated the <code>CreateGameServerGroup()</code> request.  </li> <li>  <code>ACTIVATING</code> - GameLift FleetIQ is setting up a game server group, which includes creating an Auto Scaling group in your AWS account.  </li> <li>  <code>ACTIVE</code> - The game server group has been successfully created.  </li> <li>  <code>DELETE_SCHEDULED</code> - A request to delete the game server group has been received.  </li> <li>  <code>DELETING</code> - GameLift FleetIQ has received a valid <code>DeleteGameServerGroup()</code> request and is processing it. GameLift FleetIQ must first complete and release hosts before it deletes the Auto Scaling group and the game server group.  </li> <li>  <code>DELETED</code> - The game server group has been successfully deleted.  </li> <li>  <code>ERROR</code> - The asynchronous processes of activating or deleting a game server group has failed, resulting in an error state. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoScalingGroupArn</i> A generated unique ID for the EC2 Auto Scaling group that is associated with this game server group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GameServerProtectionPolicy</i> A flag that indicates whether instances in the game server group are protected from early termination. Unprotected instances that have active game servers running might be terminated during a scale-down event, causing players to be dropped from the game. Protected instances cannot be terminated while there are active game servers running except in the event of a forced game server group deletion (see ). An exception to this is with Spot Instances, which can be terminated by AWS regardless of protection status. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BalancingStrategy</i> Indicates how GameLift FleetIQ balances the use of Spot Instances and On-Demand Instances in the game server group. Method options include the following: <ul> <li>  <code>SPOT_ONLY</code> - Only Spot Instances are used in the game server group. If Spot Instances are unavailable or not viable for game hosting, the game server group provides no hosting capacity until Spot Instances can again be used. Until then, no new instances are started, and the existing nonviable Spot Instances are terminated (after current gameplay ends) and are not replaced. </li> <li>  <code>SPOT_PREFERRED</code> - (default value) Spot Instances are used whenever available in the game server group. If Spot Instances are unavailable, the game server group continues to provide hosting capacity by falling back to On-Demand Instances. Existing nonviable Spot Instances are terminated (after current gameplay ends) and are replaced with new On-Demand Instances. </li> <li>  <code>ON_DEMAND_ONLY</code> - Only On-Demand Instances are used in the game server group. No Spot Instances are used, even when available, while this balancing strategy is in force. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceDefinitions</i> The set of EC2 instance types that GameLift FleetIQ can use when balancing and automatically scaling instances in the corresponding Auto Scaling group. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The Amazon Resource Name (<a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html">ARN</a>) for an IAM role that allows Amazon GameLift to access your EC2 Auto Scaling groups.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GameServerGroupArn</i> A generated unique ID for the game server group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GameServerGroupName</i> A developer-defined identifier for the game server group. The name is unique for each Region in each AWS account.<br/>        """
        pass

    def search_game_sessions(self, FleetId: str=None, AliasId: str=None, Location: str=None, FilterExpression: str=None, SortExpression: str=None, Limit: int=None, NextToken: str=None) -> SearchGameSessionsOutput:
        r"""Retrieves all active game sessions that match a set of search criteria and sorts them into a specified order.  When searching for game sessions, you specify exactly where you want to search and provide a search filter expression, a sort expression, or both. A search request can search only one fleet, but it can search all of a fleet's locations.  This operation can be used in the following ways:  <ul> <li> To search all game sessions that are currently running on all locations in a fleet, provide a fleet or alias ID. This approach returns game sessions in the fleet's home Region and all remote locations that fit the search criteria. </li> <li> To search all game sessions that are currently running on a specific fleet location, provide a fleet or alias ID and a location name. For location, you can specify a fleet's home Region or any remote location. </li> </ul> Use the pagination parameters to retrieve results as a set of sequential pages.  If successful, a <code>GameSession</code> object is returned for each game session that matches the request. Search finds game sessions that are in <code>ACTIVE</code> status only. To retrieve information on game sessions in other statuses, use <a>DescribeGameSessions</a>. You can search or sort by the following game session attributes: <ul> <li>  <b>gameSessionId</b> -- A unique identifier for the game session. You can use either a <code>GameSessionId</code> or <code>GameSessionArn</code> value.  </li> <li>  <b>gameSessionName</b> -- Name assigned to a game session. This value is set when requesting a new game session with <a>CreateGameSession</a> or updating with <a>UpdateGameSession</a>. Game session names do not need to be unique to a game session. </li> <li>  <b>gameSessionProperties</b> -- Custom data defined in a game session's <code>GameProperty</code> parameter. <code>GameProperty</code> values are stored as key:value pairs; the filter expression must indicate the key and a string to search the data values for. For example, to search for game sessions with custom data containing the key:value pair "gameMode:brawl", specify the following: <code>gameSessionProperties.gameMode = "brawl"</code>. All custom data values are searched as strings. </li> <li>  <b>maximumSessions</b> -- Maximum number of player sessions allowed for a game session. This value is set when requesting a new game session with <a>CreateGameSession</a> or updating with <a>UpdateGameSession</a>. </li> <li>  <b>creationTimeMillis</b> -- Value indicating when a game session was created. It is expressed in Unix time as milliseconds. </li> <li>  <b>playerSessionCount</b> -- Number of players currently connected to a game session. This value changes rapidly as players join the session or drop out. </li> <li>  <b>hasAvailablePlayerSessions</b> -- Boolean value indicating whether a game session has reached its maximum number of players. It is highly recommended that all search requests include this filter attribute to optimize search performance and return only sessions that players can join.  </li> </ul> <note> Returned values for <code>playerSessionCount</code> and <code>hasAvailablePlayerSessions</code> change quickly as players join sessions and others drop out. Results should be considered a snapshot in time. Be sure to refresh search results often, and handle sessions that fill up before a player can join.  </note>  <b>Related actions</b>   <a>CreateGameSession</a> | <a>DescribeGameSessions</a> | <a>DescribeGameSessionDetails</a> | <a>SearchGameSessions</a> | <a>UpdateGameSession</a> | <a>GetGameSessionLogUrl</a> | <a>StartGameSessionPlacement</a> | <a>DescribeGameSessionPlacement</a> | <a>StopGameSessionPlacement</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets">All APIs by task</a> 

        :param self:
        :param NextToken:  A token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this operation. To start at the beginning of the result set, do not specify a value.<br/>Limit:  The maximum number of results to return. Use this parameter with <code>NextToken</code> to get results as a set of sequential pages. The maximum number of results returned is 20, even if this value is not set or is set higher than 20. <br/>SortExpression:  Instructions on how to sort the search results. If no sort expression is included, the request returns results in random order. A sort expression consists of the following elements: <ul> <li>  <b>Operand</b> -- Name of a game session attribute. Valid values are <code>gameSessionName</code>, <code>gameSessionId</code>, <code>gameSessionProperties</code>, <code>maximumSessions</code>, <code>creationTimeMillis</code>, <code>playerSessionCount</code>, <code>hasAvailablePlayerSessions</code>. </li> <li>  <b>Order</b> -- Valid sort orders are <code>ASC</code> (ascending) and <code>DESC</code> (descending). </li> </ul> For example, this sort expression returns the oldest active sessions first: <code>"SortExpression": "creationTimeMillis ASC"</code>. Results with a null value for the sort operand are returned at the end of the list.<br/>FilterExpression:  String containing the search criteria for the session search. If no filter expression is included, the request returns results for all game sessions in the fleet that are in <code>ACTIVE</code> status. A filter expression can contain one or multiple conditions. Each condition consists of the following: <ul> <li>  <b>Operand</b> -- Name of a game session attribute. Valid values are <code>gameSessionName</code>, <code>gameSessionId</code>, <code>gameSessionProperties</code>, <code>maximumSessions</code>, <code>creationTimeMillis</code>, <code>playerSessionCount</code>, <code>hasAvailablePlayerSessions</code>. </li> <li>  <b>Comparator</b> -- Valid comparators are: <code>=</code>, <code>&lt;&gt;</code>, <code>&lt;</code>, <code>&gt;</code>, <code>&lt;=</code>, <code>&gt;=</code>.  </li> <li>  <b>Value</b> -- Value to be searched for. Values may be numbers, boolean values (true/false) or strings depending on the operand. String values are case sensitive and must be enclosed in single quotes. Special characters must be escaped. Boolean and string values can only be used with the comparators <code>=</code> and <code>&lt;&gt;</code>. For example, the following filter expression searches on <code>gameSessionName</code>: "<code>FilterExpression": "gameSessionName = 'Matt\\'s Awesome Game 1'"</code>.  </li> </ul> To chain multiple conditions in a single expression, use the logical keywords <code>AND</code>, <code>OR</code>, and <code>NOT</code> and parentheses as needed. For example: <code>x AND y AND NOT z</code>, <code>NOT (x OR y)</code>. Session search evaluates conditions from left to right using the following precedence rules: <ol> <li>  <code>=</code>, <code>&lt;&gt;</code>, <code>&lt;</code>, <code>&gt;</code>, <code>&lt;=</code>, <code>&gt;=</code>  </li> <li> Parentheses </li> <li> NOT </li> <li> AND </li> <li> OR </li> </ol> For example, this filter expression retrieves game sessions hosting at least ten players that have an open player slot: <code>"maximumSessions&gt;=10 AND hasAvailablePlayerSessions=true"</code>. <br/>Location:  A fleet location to search for game sessions. You can specify a fleet's home Region or a remote location. Use the AWS Region code format, such as <code>us-west-2</code>.   <br/>AliasId:  A unique identifier for the alias associated with the fleet to search for active game sessions. You can use either the alias ID or ARN value. Each request must reference either a fleet ID or alias ID, but not both.<br/>FleetId:  A unique identifier for the fleet to search for active game sessions. You can use either the fleet ID or ARN value. Each request must reference either a fleet ID or alias ID, but not both.<br/>
        :return: NextToken:  A token that indicates where to resume retrieving results on the next call to this operation. If no token is returned, these results represent the end of the list.<br/>GameSessions:  A collection of objects containing game session properties for each session that matches the request.<br/>        """
        pass

    def start_fleet_actions(self, Actions: List[FleetAction], FleetId: str, Location: str=None) -> StartFleetActionsOutput:
        r"""Resumes certain types of activity on fleet instances that were suspended with <a>StopFleetActions</a>. For multi-location fleets, fleet actions are managed separately for each location. Currently, this operation is used to restart a fleet's auto-scaling activity. This operation can be used in the following ways:  <ul> <li> To restart actions on instances in the fleet's home Region, provide a fleet ID and the type of actions to resume.  </li> <li> To restart actions on instances in one of the fleet's remote locations, provide a fleet ID, a location name, and the type of actions to resume.  </li> </ul> If successful, GameLift once again initiates scaling events as triggered by the fleet's scaling policies. If actions on the fleet location were never stopped, this operation will have no effect. You can view a fleet's stopped actions using <a>DescribeFleetAttributes</a> or <a>DescribeFleetLocationAttributes</a>.  <b>Learn more</b>   <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/fleets-intro.html">Setting up GameLift fleets</a>   <b>Related actions</b>   <a>CreateFleet</a> | <a>UpdateFleetCapacity</a> | <a>PutScalingPolicy</a> | <a>DescribeEC2InstanceLimits</a> | <a>DescribeFleetAttributes</a> | <a>DescribeFleetLocationAttributes</a> | <a>UpdateFleetAttributes</a> | <a>StopFleetActions</a> | <a>DeleteFleet</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets">All APIs by task</a> 

        :param self:
        :param Location:  The fleet location to restart fleet actions for. Specify a location in the form of an AWS Region code, such as <code>us-west-2</code>.<br/>Actions:  List of actions to restart on the fleet.<br/>FleetId:  A unique identifier for the fleet to restart actions on. You can use either the fleet ID or ARN value.<br/>
        :return: FleetArn:  The Amazon Resource Name (<a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html">ARN</a>) that is assigned to a GameLift fleet resource and uniquely identifies it. ARNs are unique across all Regions. Format is <code>arn:aws:gamelift:&lt;region&gt;::fleet/fleet-a1234567-b8c9-0d1e-2fa3-b45c6d7e8912</code>.<br/>FleetId:  A unique identifier for the fleet to restart actions on.<br/>        """
        pass

    def start_game_session_placement(self, MaximumPlayerSessionCount: int, GameSessionQueueName: str, PlacementId: str, GameProperties: List[GameProperty]=None, GameSessionName: str=None, PlayerLatencies: List[PlayerLatency]=None, DesiredPlayerSessions: List[DesiredPlayerSession]=None, GameSessionData: str=None) -> StartGameSessionPlacementOutput:
        r"""Places a request for a new game session in a queue (see <a>CreateGameSessionQueue</a>). When processing a placement request, Amazon GameLift searches for available resources on the queue's destinations, scanning each until it finds resources or the placement request times out. A game session placement request can also request player sessions. When a new game session is successfully created, Amazon GameLift creates a player session for each player included in the request. When placing a game session, by default Amazon GameLift tries each fleet in the order they are listed in the queue configuration. Ideally, a queue's destinations are listed in preference order. Alternatively, when requesting a game session with players, you can also provide latency data for each player in relevant Regions. Latency data indicates the performance lag a player experiences when connected to a fleet in the Region. Amazon GameLift uses latency data to reorder the list of destinations to place the game session in a Region with minimal lag. If latency data is provided for multiple players, Amazon GameLift calculates each Region's average lag for all players and reorders to get the best game play across all players.  To place a new game session request, specify the following: <ul> <li> The queue name and a set of game session properties and settings </li> <li> A unique ID (such as a UUID) for the placement. You use this ID to track the status of the placement request </li> <li> (Optional) A set of player data and a unique player ID for each player that you are joining to the new game session (player data is optional, but if you include it, you must also provide a unique ID for each player) </li> <li> Latency data for all players (if you want to optimize game play for the players) </li> </ul> If successful, a new game session placement is created. To track the status of a placement request, call <a>DescribeGameSessionPlacement</a> and check the request's status. If the status is <code>FULFILLED</code>, a new game session has been created and a game session ARN and Region are referenced. If the placement request times out, you can resubmit the request or retry it with a different queue.   <b>Related actions</b>   <a>CreateGameSession</a> | <a>DescribeGameSessions</a> | <a>DescribeGameSessionDetails</a> | <a>SearchGameSessions</a> | <a>UpdateGameSession</a> | <a>GetGameSessionLogUrl</a> | <a>StartGameSessionPlacement</a> | <a>DescribeGameSessionPlacement</a> | <a>StopGameSessionPlacement</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets">All APIs by task</a> 

        :param self:
        :param GameSessionData:  A set of custom game session properties, formatted as a single string value. This data is passed to a game server process in the <a>GameSession</a> object with a request to start a new game session (see <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession">Start a Game Session</a>).<br/>DesiredPlayerSessions:  Set of information on each player to create a player session for.<br/>PlayerLatencies:  A set of values, expressed in milliseconds, that indicates the amount of latency that a player experiences when connected to AWS Regions. This information is used to try to place the new game session where it can offer the best possible gameplay experience for the players. <br/>GameSessionName:  A descriptive label that is associated with a game session. Session names do not need to be unique.<br/>MaximumPlayerSessionCount:  The maximum number of players that can be connected simultaneously to the game session.<br/>GameProperties:  A set of custom properties for a game session, formatted as key:value pairs. These properties are passed to a game server process in the <a>GameSession</a> object with a request to start a new game session (see <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession">Start a Game Session</a>).<br/>GameSessionQueueName:  Name of the queue to use to place the new game session. You can use either the queue name or ARN value. <br/>PlacementId:  A unique identifier to assign to the new game session placement. This value is developer-defined. The value must be unique across all Regions and cannot be reused unless you are resubmitting a canceled or timed-out placement request.<br/>
        :return: GameSessionPlacement:  Object that describes the newly created game session placement. This object includes all the information provided in the request, as well as start/end time stamps and placement status. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MatchmakerData</i> Information on the matchmaking process for this game. Data is in JSON syntax, formatted as a string. It identifies the matchmaking configuration used to create the match, and contains data on all players assigned to the match, including player attributes and team assignments. For more details on matchmaker data, see <a href="https://docs.aws.amazon.com/gamelift/latest/flexmatchguide/match-server.html#match-server-data">Match Data</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GameSessionData</i> A set of custom game session properties, formatted as a single string value. This data is passed to a game server process in the <a>GameSession</a> object with a request to start a new game session (see <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession">Start a Game Session</a>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PlacedPlayerSessions</i> A collection of information on player sessions created in response to the game session placement request. These player sessions are created only once a new game session is successfully placed (placement status is <code>FULFILLED</code>). This information includes the player ID (as provided in the placement request) and the corresponding player session ID. Retrieve full player sessions by calling <a>DescribePlayerSessions</a> with the player session ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> The port number for the game session. To connect to a GameLift game server, an app needs both the IP address and port number. This value is set once the new game session is placed (placement status is <code>FULFILLED</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DnsName</i> The DNS identifier assigned to the instance that is running the game session. Values have the following format: <ul> <li> TLS-enabled fleets: <code>&lt;unique identifier&gt;.&lt;region identifier&gt;.amazongamelift.com</code>. </li> <li> Non-TLS-enabled fleets: <code>ec2-&lt;unique identifier&gt;.compute.amazonaws.com</code>. (See <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-instance-addressing.html#concepts-public-addresses">Amazon EC2 Instance IP Addressing</a>.) </li> </ul> When connecting to a game session that is running on a TLS-enabled fleet, you must use the DNS name, not the IP address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IpAddress</i> The IP address of the game session. To connect to a GameLift game server, an app needs both the IP address and port number. This value is set once the new game session is placed (placement status is <code>FULFILLED</code>). <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndTime</i> Time stamp indicating when this request was completed, canceled, or timed out.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StartTime</i> Time stamp indicating when this request was placed in the queue. Format is a number expressed in Unix time as milliseconds (for example <code>"1469498468.057"</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PlayerLatencies</i> A set of values, expressed in milliseconds, that indicates the amount of latency that a player experiences when connected to AWS Regions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GameSessionRegion</i> Name of the Region where the game session created by this placement request is running. This value is set once the new game session is placed (placement status is <code>FULFILLED</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GameSessionArn</i> Identifier for the game session created by this placement request. This value is set once the new game session is placed (placement status is <code>FULFILLED</code>). This identifier is unique across all Regions. You can use this value as a <code>GameSessionId</code> value as needed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GameSessionId</i> A unique identifier for the game session. This value is set once the new game session is placed (placement status is <code>FULFILLED</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GameSessionName</i> A descriptive label that is associated with a game session. Session names do not need to be unique.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaximumPlayerSessionCount</i> The maximum number of players that can be connected simultaneously to the game session.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GameProperties</i> A set of custom properties for a game session, formatted as key:value pairs. These properties are passed to a game server process in the <a>GameSession</a> object with a request to start a new game session (see <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession">Start a Game Session</a>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Current status of the game session placement request. <ul> <li>  <b>PENDING</b> -- The placement request is currently in the queue waiting to be processed. </li> <li>  <b>FULFILLED</b> -- A new game session and player sessions (if requested) have been successfully created. Values for <i>GameSessionArn</i> and <i>GameSessionRegion</i> are available.  </li> <li>  <b>CANCELLED</b> -- The placement request was canceled with a call to <a>StopGameSessionPlacement</a>. </li> <li>  <b>TIMED_OUT</b> -- A new game session was not successfully created before the time limit expired. You can resubmit the placement request as needed. </li> <li>  <b>FAILED</b> -- GameLift is not able to complete the process of placing the game session. Common reasons are the game session terminated before the placement process was completed, or an unexpected internal error. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GameSessionQueueName</i> A descriptive label that is associated with game session queue. Queue names must be unique within each Region.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PlacementId</i> A unique identifier for a game session placement.<br/>        """
        pass

    def start_match_backfill(self, Players: List[Player], ConfigurationName: str, TicketId: str=None, GameSessionArn: str=None) -> StartMatchBackfillOutput:
        r"""Finds new players to fill open slots in currently running game sessions. The backfill match process is essentially identical to the process of forming new matches. Backfill requests use the same matchmaker that was used to make the original match, and they provide matchmaking data for all players currently in the game session. FlexMatch uses this information to select new players so that backfilled match continues to meet the original match requirements.  When using FlexMatch with GameLift managed hosting, you can request a backfill match from a client service by calling this operation with a <a>GameSession</a> identifier. You also have the option of making backfill requests directly from your game server. In response to a request, FlexMatch creates player sessions for the new players, updates the <code>GameSession</code> resource, and sends updated matchmaking data to the game server. You can request a backfill match at any point after a game session is started. Each game session can have only one active backfill request at a time; a subsequent request automatically replaces the earlier request. When using FlexMatch as a standalone component, request a backfill match by calling this operation without a game session identifier. As with newly formed matches, matchmaking results are returned in a matchmaking event so that your game can update the game session that is being backfilled. To request a backfill match, specify a unique ticket ID, the original matchmaking configuration, and matchmaking data for all current players in the game session being backfilled. Optionally, specify the <code>GameSession</code> ARN. If successful, a match backfill ticket is created and returned with status set to QUEUED. Track the status of backfill tickets using the same method for tracking tickets for new matches.  <b>Learn more</b>   <a href="https://docs.aws.amazon.com/gamelift/latest/flexmatchguide/match-backfill.html"> Backfill existing games with FlexMatch</a>   <a href="https://docs.aws.amazon.com/gamelift/latest/flexmatchguide/match-events.html"> Matchmaking events</a> (reference)  <a href="https://docs.aws.amazon.com/gamelift/latest/flexmatchguide/gamelift-match.html"> How GameLift FlexMatch works</a>   <b>Related actions</b>   <a>StartMatchmaking</a> | <a>DescribeMatchmaking</a> | <a>StopMatchmaking</a> | <a>AcceptMatch</a> | <a>StartMatchBackfill</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets">All APIs by task</a> 

        :param self:
        :param Players:  Match information on all players that are currently assigned to the game session. This information is used by the matchmaker to find new players and add them to the existing game. <ul> <li> PlayerID, PlayerAttributes, Team -- This information is maintained in the <a>GameSession</a> object, <code>MatchmakerData</code> property, for all players who are currently assigned to the game session. The matchmaker data is in JSON syntax, formatted as a string. For more details, see <a href="https://docs.aws.amazon.com/gamelift/latest/flexmatchguide/match-server.html#match-server-data"> Match Data</a>.  </li> <li> LatencyInMs -- If the matchmaker uses player latency, include a latency value, in milliseconds, for the Region that the game session is currently in. Do not include latency values for any other Region. </li> </ul><br/>GameSessionArn:  A unique identifier for the game session. Use the game session ID. When using FlexMatch as a standalone matchmaking solution, this parameter is not needed. <br/>ConfigurationName:  Name of the matchmaker to use for this request. You can use either the configuration name or ARN value. The ARN of the matchmaker that was used with the original game session is listed in the <a>GameSession</a> object, <code>MatchmakerData</code> property.<br/>TicketId:  A unique identifier for a matchmaking ticket. If no ticket ID is specified here, Amazon GameLift will generate one in the form of a UUID. Use this identifier to track the match backfill ticket status and retrieve match results.<br/>
        :return: MatchmakingTicket:  Ticket representing the backfill matchmaking request. This object includes the information in the request, ticket status, and match results as generated during the matchmaking process.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EstimatedWaitTime</i> Average amount of time (in seconds) that players are currently waiting for a match. If there is not enough recent data, this property may be empty.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GameSessionConnectionInfo</i> Identifier and connection information of the game session created for the match. This information is added to the ticket only after the matchmaking request has been successfully completed. This parameter is not set when FlexMatch is being used without GameLift hosting.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>GameSessionConnectionInfo</b>: Identifier and connection information of the game session created for the match. This information is added to the ticket only after the matchmaking request has been successfully completed. This parameter is not set when FlexMatch is being used without GameLift hosting.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Players</i> A set of <code>Player</code> objects, each representing a player to find matches for. Players are identified by a unique player ID and may include latency data for use during matchmaking. If the ticket is in status <code>COMPLETED</code>, the <code>Player</code> objects include the team the players were assigned to in the resulting match.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndTime</i> Time stamp indicating when this matchmaking request stopped being processed due to success, failure, or cancellation. Format is a number expressed in Unix time as milliseconds (for example <code>"1469498468.057"</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StartTime</i> Time stamp indicating when this matchmaking request was received. Format is a number expressed in Unix time as milliseconds (for example <code>"1469498468.057"</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusMessage</i> Additional information about the current status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusReason</i> Code to explain the current status. For example, a status reason may indicate when a ticket has returned to <code>SEARCHING</code> status after a proposed match fails to receive player acceptances.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Current status of the matchmaking request. <ul> <li>  <b>QUEUED</b> -- The matchmaking request has been received and is currently waiting to be processed. </li> <li>  <b>SEARCHING</b> -- The matchmaking request is currently being processed.  </li> <li>  <b>REQUIRES_ACCEPTANCE</b> -- A match has been proposed and the players must accept the match (see <a>AcceptMatch</a>). This status is used only with requests that use a matchmaking configuration with a player acceptance requirement. </li> <li>  <b>PLACING</b> -- The FlexMatch engine has matched players and is in the process of placing a new game session for the match. </li> <li>  <b>COMPLETED</b> -- Players have been matched and a game session is ready to host the players. A ticket in this state contains the necessary connection information for players. </li> <li>  <b>FAILED</b> -- The matchmaking request was not completed. </li> <li>  <b>CANCELLED</b> -- The matchmaking request was canceled. This may be the result of a call to <a>StopMatchmaking</a> or a proposed match that one or more players failed to accept. </li> <li>  <b>TIMED_OUT</b> -- The matchmaking request was not successful within the duration specified in the matchmaking configuration.  </li> </ul> <note> Matchmaking requests that fail to successfully complete (statuses FAILED, CANCELLED, TIMED_OUT) can be resubmitted as new requests with new ticket IDs. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConfigurationArn</i> The Amazon Resource Name (<a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html">ARN</a>) associated with the GameLift matchmaking configuration resource that is used with this ticket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConfigurationName</i> Name of the <a>MatchmakingConfiguration</a> that is used with this ticket. Matchmaking configurations determine how players are grouped into a match and how a new game session is created for the match.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TicketId</i> A unique identifier for a matchmaking ticket.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MatchedPlayerSessions</i> A collection of player session IDs, one for each player ID that was included in the original matchmaking request. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> The port number for the game session. To connect to a GameLift game server, an app needs both the IP address and port number.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DnsName</i> The DNS identifier assigned to the instance that is running the game session. Values have the following format: <ul> <li> TLS-enabled fleets: <code>&lt;unique identifier&gt;.&lt;region identifier&gt;.amazongamelift.com</code>. </li> <li> Non-TLS-enabled fleets: <code>ec2-&lt;unique identifier&gt;.compute.amazonaws.com</code>. (See <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-instance-addressing.html#concepts-public-addresses">Amazon EC2 Instance IP Addressing</a>.) </li> </ul> When connecting to a game session that is running on a TLS-enabled fleet, you must use the DNS name, not the IP address.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IpAddress</i> The IP address of the game session. To connect to a GameLift game server, an app needs both the IP address and port number.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>GameSessionArn</i> A unique identifier for the game session. Use the game session ID.<br/>        """
        pass

    def start_matchmaking(self, Players: List[Player], ConfigurationName: str, TicketId: str=None) -> StartMatchmakingOutput:
        r"""Uses FlexMatch to create a game match for a group of players based on custom matchmaking rules. With games that use GameLift managed hosting, this operation also triggers GameLift to find hosting resources and start a new game session for the new match. Each matchmaking request includes information on one or more players and specifies the FlexMatch matchmaker to use. When a request is for multiple players, FlexMatch attempts to build a match that includes all players in the request, placing them in the same team and finding additional players as needed to fill the match.  To start matchmaking, provide a unique ticket ID, specify a matchmaking configuration, and include the players to be matched. You must also include any player attributes that are required by the matchmaking configuration's rule set. If successful, a matchmaking ticket is returned with status set to <code>QUEUED</code>.  Track matchmaking events to respond as needed and acquire game session connection information for successfully completed matches. Ticket status updates are tracked using event notification through Amazon Simple Notification Service (SNS), which is defined in the matchmaking configuration.  <b>Learn more</b>   <a href="https://docs.aws.amazon.com/gamelift/latest/flexmatchguide/match-client.html"> Add FlexMatch to a game client</a>   <a href="https://docs.aws.amazon.com/gamelift/latest/flexmatchguide/match-notification.html"> Set Up FlexMatch event notification</a>   <a href="https://docs.aws.amazon.com/gamelift/latest/flexmatchguide/gamelift-match.html"> How GameLift FlexMatch works</a>   <b>Related actions</b>   <a>StartMatchmaking</a> | <a>DescribeMatchmaking</a> | <a>StopMatchmaking</a> | <a>AcceptMatch</a> | <a>StartMatchBackfill</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets">All APIs by task</a> 

        :param self:
        :param Players:  Information on each player to be matched. This information must include a player ID, and may contain player attributes and latency data to be used in the matchmaking process. After a successful match, <code>Player</code> objects contain the name of the team the player is assigned to.<br/>ConfigurationName:  Name of the matchmaking configuration to use for this request. Matchmaking configurations must exist in the same Region as this request. You can use either the configuration name or ARN value.<br/>TicketId:  A unique identifier for a matchmaking ticket. If no ticket ID is specified here, Amazon GameLift will generate one in the form of a UUID. Use this identifier to track the matchmaking ticket status and retrieve match results.<br/>
        :return: MatchmakingTicket:  Ticket representing the matchmaking request. This object include the information included in the request, ticket status, and match results as generated during the matchmaking process.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EstimatedWaitTime</i> Average amount of time (in seconds) that players are currently waiting for a match. If there is not enough recent data, this property may be empty.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GameSessionConnectionInfo</i> Identifier and connection information of the game session created for the match. This information is added to the ticket only after the matchmaking request has been successfully completed. This parameter is not set when FlexMatch is being used without GameLift hosting.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>GameSessionConnectionInfo</b>: Identifier and connection information of the game session created for the match. This information is added to the ticket only after the matchmaking request has been successfully completed. This parameter is not set when FlexMatch is being used without GameLift hosting.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Players</i> A set of <code>Player</code> objects, each representing a player to find matches for. Players are identified by a unique player ID and may include latency data for use during matchmaking. If the ticket is in status <code>COMPLETED</code>, the <code>Player</code> objects include the team the players were assigned to in the resulting match.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndTime</i> Time stamp indicating when this matchmaking request stopped being processed due to success, failure, or cancellation. Format is a number expressed in Unix time as milliseconds (for example <code>"1469498468.057"</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StartTime</i> Time stamp indicating when this matchmaking request was received. Format is a number expressed in Unix time as milliseconds (for example <code>"1469498468.057"</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusMessage</i> Additional information about the current status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusReason</i> Code to explain the current status. For example, a status reason may indicate when a ticket has returned to <code>SEARCHING</code> status after a proposed match fails to receive player acceptances.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Current status of the matchmaking request. <ul> <li>  <b>QUEUED</b> -- The matchmaking request has been received and is currently waiting to be processed. </li> <li>  <b>SEARCHING</b> -- The matchmaking request is currently being processed.  </li> <li>  <b>REQUIRES_ACCEPTANCE</b> -- A match has been proposed and the players must accept the match (see <a>AcceptMatch</a>). This status is used only with requests that use a matchmaking configuration with a player acceptance requirement. </li> <li>  <b>PLACING</b> -- The FlexMatch engine has matched players and is in the process of placing a new game session for the match. </li> <li>  <b>COMPLETED</b> -- Players have been matched and a game session is ready to host the players. A ticket in this state contains the necessary connection information for players. </li> <li>  <b>FAILED</b> -- The matchmaking request was not completed. </li> <li>  <b>CANCELLED</b> -- The matchmaking request was canceled. This may be the result of a call to <a>StopMatchmaking</a> or a proposed match that one or more players failed to accept. </li> <li>  <b>TIMED_OUT</b> -- The matchmaking request was not successful within the duration specified in the matchmaking configuration.  </li> </ul> <note> Matchmaking requests that fail to successfully complete (statuses FAILED, CANCELLED, TIMED_OUT) can be resubmitted as new requests with new ticket IDs. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConfigurationArn</i> The Amazon Resource Name (<a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html">ARN</a>) associated with the GameLift matchmaking configuration resource that is used with this ticket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConfigurationName</i> Name of the <a>MatchmakingConfiguration</a> that is used with this ticket. Matchmaking configurations determine how players are grouped into a match and how a new game session is created for the match.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TicketId</i> A unique identifier for a matchmaking ticket.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MatchedPlayerSessions</i> A collection of player session IDs, one for each player ID that was included in the original matchmaking request. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> The port number for the game session. To connect to a GameLift game server, an app needs both the IP address and port number.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DnsName</i> The DNS identifier assigned to the instance that is running the game session. Values have the following format: <ul> <li> TLS-enabled fleets: <code>&lt;unique identifier&gt;.&lt;region identifier&gt;.amazongamelift.com</code>. </li> <li> Non-TLS-enabled fleets: <code>ec2-&lt;unique identifier&gt;.compute.amazonaws.com</code>. (See <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-instance-addressing.html#concepts-public-addresses">Amazon EC2 Instance IP Addressing</a>.) </li> </ul> When connecting to a game session that is running on a TLS-enabled fleet, you must use the DNS name, not the IP address.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IpAddress</i> The IP address of the game session. To connect to a GameLift game server, an app needs both the IP address and port number.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>GameSessionArn</i> A unique identifier for the game session. Use the game session ID.<br/>        """
        pass

    def stop_fleet_actions(self, Actions: List[FleetAction], FleetId: str, Location: str=None) -> StopFleetActionsOutput:
        r"""Suspends certain types of activity in a fleet location. Currently, this operation is used to stop auto-scaling activity. For multi-location fleets, fleet actions are managed separately for each location.  Stopping fleet actions has several potential purposes. It allows you to temporarily stop auto-scaling activity but retain your scaling policies for use in the future. For multi-location fleets, you can set up fleet-wide auto-scaling, and then opt out of it for certain locations.  This operation can be used in the following ways:  <ul> <li> To stop actions on instances in the fleet's home Region, provide a fleet ID and the type of actions to suspend.  </li> <li> To stop actions on instances in one of the fleet's remote locations, provide a fleet ID, a location name, and the type of actions to suspend.  </li> </ul> If successful, GameLift no longer initiates scaling events except in response to manual changes using <a>UpdateFleetCapacity</a>. You can view a fleet's stopped actions using <a>DescribeFleetAttributes</a> or <a>DescribeFleetLocationAttributes</a>. Suspended activity can be restarted using <a>StartFleetActions</a>.  <b>Learn more</b>   <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/fleets-intro.html">Setting up GameLift Fleets</a>   <b>Related actions</b>   <a>CreateFleet</a> | <a>UpdateFleetCapacity</a> | <a>PutScalingPolicy</a> | <a>DescribeEC2InstanceLimits</a> | <a>DescribeFleetAttributes</a> | <a>DescribeFleetLocationAttributes</a> | <a>UpdateFleetAttributes</a> | <a>StopFleetActions</a> | <a>DeleteFleet</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets">All APIs by task</a> 

        :param self:
        :param Location:  The fleet location to stop fleet actions for. Specify a location in the form of an AWS Region code, such as <code>us-west-2</code>.<br/>Actions:  List of actions to suspend on the fleet. <br/>FleetId:  A unique identifier for the fleet to stop actions on. You can use either the fleet ID or ARN value.<br/>
        :return: FleetArn:  The Amazon Resource Name (<a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html">ARN</a>) that is assigned to a GameLift fleet resource and uniquely identifies it. ARNs are unique across all Regions. Format is <code>arn:aws:gamelift:&lt;region&gt;::fleet/fleet-a1234567-b8c9-0d1e-2fa3-b45c6d7e8912</code>.<br/>FleetId:  A unique identifier for the fleet to stop actions on.<br/>        """
        pass

    def stop_game_session_placement(self, PlacementId: str) -> StopGameSessionPlacementOutput:
        r"""Cancels a game session placement that is in <code>PENDING</code> status. To stop a placement, provide the placement ID values. If successful, the placement is moved to <code>CANCELLED</code> status.  <b>Related actions</b>   <a>CreateGameSession</a> | <a>DescribeGameSessions</a> | <a>DescribeGameSessionDetails</a> | <a>SearchGameSessions</a> | <a>UpdateGameSession</a> | <a>GetGameSessionLogUrl</a> | <a>StartGameSessionPlacement</a> | <a>DescribeGameSessionPlacement</a> | <a>StopGameSessionPlacement</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets">All APIs by task</a> 

        :param self:
        :param PlacementId:  A unique identifier for a game session placement to cancel.<br/>
        :return: GameSessionPlacement:  Object that describes the canceled game session placement, with <code>CANCELLED</code> status and an end time stamp. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MatchmakerData</i> Information on the matchmaking process for this game. Data is in JSON syntax, formatted as a string. It identifies the matchmaking configuration used to create the match, and contains data on all players assigned to the match, including player attributes and team assignments. For more details on matchmaker data, see <a href="https://docs.aws.amazon.com/gamelift/latest/flexmatchguide/match-server.html#match-server-data">Match Data</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GameSessionData</i> A set of custom game session properties, formatted as a single string value. This data is passed to a game server process in the <a>GameSession</a> object with a request to start a new game session (see <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession">Start a Game Session</a>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PlacedPlayerSessions</i> A collection of information on player sessions created in response to the game session placement request. These player sessions are created only once a new game session is successfully placed (placement status is <code>FULFILLED</code>). This information includes the player ID (as provided in the placement request) and the corresponding player session ID. Retrieve full player sessions by calling <a>DescribePlayerSessions</a> with the player session ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> The port number for the game session. To connect to a GameLift game server, an app needs both the IP address and port number. This value is set once the new game session is placed (placement status is <code>FULFILLED</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DnsName</i> The DNS identifier assigned to the instance that is running the game session. Values have the following format: <ul> <li> TLS-enabled fleets: <code>&lt;unique identifier&gt;.&lt;region identifier&gt;.amazongamelift.com</code>. </li> <li> Non-TLS-enabled fleets: <code>ec2-&lt;unique identifier&gt;.compute.amazonaws.com</code>. (See <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-instance-addressing.html#concepts-public-addresses">Amazon EC2 Instance IP Addressing</a>.) </li> </ul> When connecting to a game session that is running on a TLS-enabled fleet, you must use the DNS name, not the IP address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IpAddress</i> The IP address of the game session. To connect to a GameLift game server, an app needs both the IP address and port number. This value is set once the new game session is placed (placement status is <code>FULFILLED</code>). <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndTime</i> Time stamp indicating when this request was completed, canceled, or timed out.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StartTime</i> Time stamp indicating when this request was placed in the queue. Format is a number expressed in Unix time as milliseconds (for example <code>"1469498468.057"</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PlayerLatencies</i> A set of values, expressed in milliseconds, that indicates the amount of latency that a player experiences when connected to AWS Regions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GameSessionRegion</i> Name of the Region where the game session created by this placement request is running. This value is set once the new game session is placed (placement status is <code>FULFILLED</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GameSessionArn</i> Identifier for the game session created by this placement request. This value is set once the new game session is placed (placement status is <code>FULFILLED</code>). This identifier is unique across all Regions. You can use this value as a <code>GameSessionId</code> value as needed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GameSessionId</i> A unique identifier for the game session. This value is set once the new game session is placed (placement status is <code>FULFILLED</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GameSessionName</i> A descriptive label that is associated with a game session. Session names do not need to be unique.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaximumPlayerSessionCount</i> The maximum number of players that can be connected simultaneously to the game session.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GameProperties</i> A set of custom properties for a game session, formatted as key:value pairs. These properties are passed to a game server process in the <a>GameSession</a> object with a request to start a new game session (see <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession">Start a Game Session</a>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Current status of the game session placement request. <ul> <li>  <b>PENDING</b> -- The placement request is currently in the queue waiting to be processed. </li> <li>  <b>FULFILLED</b> -- A new game session and player sessions (if requested) have been successfully created. Values for <i>GameSessionArn</i> and <i>GameSessionRegion</i> are available.  </li> <li>  <b>CANCELLED</b> -- The placement request was canceled with a call to <a>StopGameSessionPlacement</a>. </li> <li>  <b>TIMED_OUT</b> -- A new game session was not successfully created before the time limit expired. You can resubmit the placement request as needed. </li> <li>  <b>FAILED</b> -- GameLift is not able to complete the process of placing the game session. Common reasons are the game session terminated before the placement process was completed, or an unexpected internal error. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GameSessionQueueName</i> A descriptive label that is associated with game session queue. Queue names must be unique within each Region.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PlacementId</i> A unique identifier for a game session placement.<br/>        """
        pass

    def stop_matchmaking(self, TicketId: str) -> StopMatchmakingOutput:
        r"""Cancels a matchmaking ticket or match backfill ticket that is currently being processed. To stop the matchmaking operation, specify the ticket ID. If successful, work on the ticket is stopped, and the ticket status is changed to <code>CANCELLED</code>. This call is also used to turn off automatic backfill for an individual game session. This is for game sessions that are created with a matchmaking configuration that has automatic backfill enabled. The ticket ID is included in the <code>MatchmakerData</code> of an updated game session object, which is provided to the game server. <note> If the operation is successful, the service sends back an empty JSON struct with the HTTP 200 response (not an empty HTTP body). </note>  <b>Learn more</b>   <a href="https://docs.aws.amazon.com/gamelift/latest/flexmatchguide/match-client.html"> Add FlexMatch to a game client</a>   <b>Related actions</b>   <a>StartMatchmaking</a> | <a>DescribeMatchmaking</a> | <a>StopMatchmaking</a> | <a>AcceptMatch</a> | <a>StartMatchBackfill</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets">All APIs by task</a> 

        :param self:
        :param TicketId:  A unique identifier for a matchmaking ticket.<br/>
        :return:         """
        pass

    def suspend_game_server_group(self, SuspendActions: List[GameServerGroupAction], GameServerGroupName: str) -> SuspendGameServerGroupOutput:
        r""" <b>This operation is used with the GameLift FleetIQ solution and game server groups.</b>  Temporarily stops activity on a game server group without terminating instances or the game server group. You can restart activity by calling <a>ResumeGameServerGroup</a>. You can suspend the following activity: <ul> <li>  <b>Instance type replacement</b> - This activity evaluates the current game hosting viability of all Spot instance types that are defined for the game server group. It updates the Auto Scaling group to remove nonviable Spot Instance types, which have a higher chance of game server interruptions. It then balances capacity across the remaining viable Spot Instance types. When this activity is suspended, the Auto Scaling group continues with its current balance, regardless of viability. Instance protection, utilization metrics, and capacity scaling activities continue to be active.  </li> </ul> To suspend activity, specify a game server group ARN and the type of activity to be suspended. If successful, a <a>GameServerGroup</a> object is returned showing that the activity is listed in <code>SuspendedActions</code>.  <b>Learn more</b>   <a href="https://docs.aws.amazon.com/gamelift/latest/fleetiqguide/gsg-intro.html">GameLift FleetIQ Guide</a>   <b>Related actions</b>   <a>CreateGameServerGroup</a> | <a>ListGameServerGroups</a> | <a>DescribeGameServerGroup</a> | <a>UpdateGameServerGroup</a> | <a>DeleteGameServerGroup</a> | <a>ResumeGameServerGroup</a> | <a>SuspendGameServerGroup</a> | <a>DescribeGameServerInstances</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/fleetiqguide/reference-awssdk-fleetiq.html">All APIs by task</a> 

        :param self:
        :param SuspendActions:  The activity to suspend for this game server group.<br/>GameServerGroupName:  A unique identifier for the game server group. Use either the <a>GameServerGroup</a> name or ARN value.<br/>
        :return: GameServerGroup:  An object that describes the game server group resource, with the <code>SuspendedActions</code> property updated to reflect the suspended activity.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdatedTime</i> A timestamp that indicates when this game server group was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> A time stamp indicating when this data object was created. Format is a number expressed in Unix time as milliseconds (for example <code>"1469498468.057"</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SuspendedActions</i> A list of activities that are currently suspended for this game server group. If this property is empty, all activities are occurring.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusReason</i> Additional information about the current game server group status. This information might provide additional insight on groups that are in <code>ERROR</code> status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current status of the game server group. Possible statuses include: <ul> <li>  <code>NEW</code> - GameLift FleetIQ has validated the <code>CreateGameServerGroup()</code> request.  </li> <li>  <code>ACTIVATING</code> - GameLift FleetIQ is setting up a game server group, which includes creating an Auto Scaling group in your AWS account.  </li> <li>  <code>ACTIVE</code> - The game server group has been successfully created.  </li> <li>  <code>DELETE_SCHEDULED</code> - A request to delete the game server group has been received.  </li> <li>  <code>DELETING</code> - GameLift FleetIQ has received a valid <code>DeleteGameServerGroup()</code> request and is processing it. GameLift FleetIQ must first complete and release hosts before it deletes the Auto Scaling group and the game server group.  </li> <li>  <code>DELETED</code> - The game server group has been successfully deleted.  </li> <li>  <code>ERROR</code> - The asynchronous processes of activating or deleting a game server group has failed, resulting in an error state. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoScalingGroupArn</i> A generated unique ID for the EC2 Auto Scaling group that is associated with this game server group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GameServerProtectionPolicy</i> A flag that indicates whether instances in the game server group are protected from early termination. Unprotected instances that have active game servers running might be terminated during a scale-down event, causing players to be dropped from the game. Protected instances cannot be terminated while there are active game servers running except in the event of a forced game server group deletion (see ). An exception to this is with Spot Instances, which can be terminated by AWS regardless of protection status. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BalancingStrategy</i> Indicates how GameLift FleetIQ balances the use of Spot Instances and On-Demand Instances in the game server group. Method options include the following: <ul> <li>  <code>SPOT_ONLY</code> - Only Spot Instances are used in the game server group. If Spot Instances are unavailable or not viable for game hosting, the game server group provides no hosting capacity until Spot Instances can again be used. Until then, no new instances are started, and the existing nonviable Spot Instances are terminated (after current gameplay ends) and are not replaced. </li> <li>  <code>SPOT_PREFERRED</code> - (default value) Spot Instances are used whenever available in the game server group. If Spot Instances are unavailable, the game server group continues to provide hosting capacity by falling back to On-Demand Instances. Existing nonviable Spot Instances are terminated (after current gameplay ends) and are replaced with new On-Demand Instances. </li> <li>  <code>ON_DEMAND_ONLY</code> - Only On-Demand Instances are used in the game server group. No Spot Instances are used, even when available, while this balancing strategy is in force. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceDefinitions</i> The set of EC2 instance types that GameLift FleetIQ can use when balancing and automatically scaling instances in the corresponding Auto Scaling group. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The Amazon Resource Name (<a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html">ARN</a>) for an IAM role that allows Amazon GameLift to access your EC2 Auto Scaling groups.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GameServerGroupArn</i> A generated unique ID for the game server group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GameServerGroupName</i> A developer-defined identifier for the game server group. The name is unique for each Region in each AWS account.<br/>        """
        pass

    def tag_resource(self, Tags: List[Tag], ResourceARN: str) -> TagResourceResponse:
        r""" Assigns a tag to a GameLift resource. AWS resource tags provide an additional management tool set. You can use tags to organize resources, create IAM permissions policies to manage access to groups of resources, customize AWS cost breakdowns, etc. This operation handles the permissions necessary to manage tags for the following GameLift resource types: <ul> <li> Build </li> <li> Script </li> <li> Fleet </li> <li> Alias </li> <li> GameSessionQueue </li> <li> MatchmakingConfiguration </li> <li> MatchmakingRuleSet </li> </ul> To add a tag to a resource, specify the unique ARN value for the resource and provide a tag list containing one or more tags. The operation succeeds even if the list includes tags that are already assigned to the specified resource.   <b>Learn more</b>   <a href="https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html">Tagging AWS Resources</a> in the <i>AWS General Reference</i>   <a href="http://aws.amazon.com/answers/account-management/aws-tagging-strategies/"> AWS Tagging Strategies</a>   <b>Related actions</b>   <a>TagResource</a> | <a>UntagResource</a> | <a>ListTagsForResource</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets">All APIs by task</a> 

        :param self:
        :param Tags:  A list of one or more tags to assign to the specified GameLift resource. Tags are developer-defined and structured as key-value pairs. The maximum tag limit may be lower than stated. See <a href="https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html"> Tagging AWS Resources</a> for actual tagging limits.<br/>ResourceARN:   The Amazon Resource Name (<a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html">ARN</a>) that is assigned to and uniquely identifies the GameLift resource that you want to assign tags to. GameLift resource ARNs are included in the data object for the resource, which can be retrieved by calling a List or Describe operation for the resource type. <br/>
        :return:         """
        pass

    def untag_resource(self, TagKeys: List[TagKey], ResourceARN: str) -> UntagResourceResponse:
        r"""Removes a tag that is assigned to a GameLift resource. Resource tags are used to organize AWS resources for a range of purposes. This operation handles the permissions necessary to manage tags for the following GameLift resource types: <ul> <li> Build </li> <li> Script </li> <li> Fleet </li> <li> Alias </li> <li> GameSessionQueue </li> <li> MatchmakingConfiguration </li> <li> MatchmakingRuleSet </li> </ul> To remove a tag from a resource, specify the unique ARN value for the resource and provide a string list containing one or more tags to be removed. This operation succeeds even if the list includes tags that are not currently assigned to the specified resource.  <b>Learn more</b>   <a href="https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html">Tagging AWS Resources</a> in the <i>AWS General Reference</i>   <a href="http://aws.amazon.com/answers/account-management/aws-tagging-strategies/"> AWS Tagging Strategies</a>   <b>Related actions</b>   <a>TagResource</a> | <a>UntagResource</a> | <a>ListTagsForResource</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets">All APIs by task</a> 

        :param self:
        :param TagKeys:  A list of one or more tag keys to remove from the specified GameLift resource. An AWS resource can have only one tag with a specific tag key, so specifying the tag key identifies which tag to remove. <br/>ResourceARN:  The Amazon Resource Name (<a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html">ARN</a>) that is assigned to and uniquely identifies the GameLift resource that you want to remove tags from. GameLift resource ARNs are included in the data object for the resource, which can be retrieved by calling a List or Describe operation for the resource type. <br/>
        :return:         """
        pass

    def update_alias(self, AliasId: str, Name: str=None, Description: str=None, RoutingStrategy: RoutingStrategy=None) -> UpdateAliasOutput:
        r"""Updates properties for an alias. To update properties, specify the alias ID to be updated and provide the information to be changed. To reassign an alias to another fleet, provide an updated routing strategy. If successful, the updated alias record is returned.  <b>Related actions</b>   <a>CreateAlias</a> | <a>ListAliases</a> | <a>DescribeAlias</a> | <a>UpdateAlias</a> | <a>DeleteAlias</a> | <a>ResolveAlias</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets">All APIs by task</a> 

        :param self:
        :param RoutingStrategy:  The routing configuration, including routing type and fleet target, for the alias.:<br/>Description:  A human-readable description of the alias.<br/>Name:  A descriptive label that is associated with an alias. Alias names do not need to be unique.<br/>AliasId:  A unique identifier for the alias that you want to update. You can use either the alias ID or ARN value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> The message text to be used with a terminal routing strategy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FleetId</i> A unique identifier for the fleet that the alias points to. This value is the fleet ID, not the fleet ARN.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of routing strategy for the alias. Possible routing types include the following: <ul> <li>  <b>SIMPLE</b> - The alias resolves to one specific fleet. Use this type when routing to active fleets. </li> <li>  <b>TERMINAL</b> - The alias does not resolve to a fleet but instead can be used to display a message to the user. A terminal alias throws a TerminalRoutingStrategyException with the <a>RoutingStrategy</a> message embedded. </li> </ul><br/>
        :return: Alias:  The updated alias resource.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdatedTime</i> The time that this data object was last modified. Format is a number expressed in Unix time as milliseconds (for example <code>"1469498468.057"</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> A time stamp indicating when this data object was created. Format is a number expressed in Unix time as milliseconds (for example <code>"1469498468.057"</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoutingStrategy</i> The routing configuration, including routing type and fleet target, for the alias. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RoutingStrategy</b>: The routing configuration, including routing type and fleet target, for the alias. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A human-readable description of an alias.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AliasArn</i> The Amazon Resource Name (<a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html">ARN</a>) that is assigned to a GameLift alias resource and uniquely identifies it. ARNs are unique across all Regions. Format is <code>arn:aws:gamelift:&lt;region&gt;::alias/alias-a1234567-b8c9-0d1e-2fa3-b45c6d7e8912</code>. In a GameLift alias ARN, the resource ID matches the alias ID value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A descriptive label that is associated with an alias. Alias names do not need to be unique.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AliasId</i> A unique identifier for the alias. Alias IDs are unique within a Region.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> The message text to be used with a terminal routing strategy.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FleetId</i> A unique identifier for the fleet that the alias points to. This value is the fleet ID, not the fleet ARN.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of routing strategy for the alias. Possible routing types include the following: <ul> <li>  <b>SIMPLE</b> - The alias resolves to one specific fleet. Use this type when routing to active fleets. </li> <li>  <b>TERMINAL</b> - The alias does not resolve to a fleet but instead can be used to display a message to the user. A terminal alias throws a TerminalRoutingStrategyException with the <a>RoutingStrategy</a> message embedded. </li> </ul><br/>        """
        pass

    def update_build(self, BuildId: str, Name: str=None, Version: str=None) -> UpdateBuildOutput:
        r"""Updates metadata in a build resource, including the build name and version. To update the metadata, specify the build ID to update and provide the new values. If successful, a build object containing the updated metadata is returned.  <b>Learn more</b>   <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-build-intro.html"> Upload a Custom Server Build</a>   <b>Related actions</b>   <a>CreateBuild</a> | <a>ListBuilds</a> | <a>DescribeBuild</a> | <a>UpdateBuild</a> | <a>DeleteBuild</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets">All APIs by task</a> 

        :param self:
        :param Version:  Version information that is associated with a build or script. Version strings do not need to be unique.<br/>Name:  A descriptive label that is associated with a build. Build names do not need to be unique. <br/>BuildId:  A unique identifier for the build to update. You can use either the build ID or ARN value. <br/>
        :return: Build:  The updated build resource.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> A time stamp indicating when this data object was created. Format is a number expressed in Unix time as milliseconds (for example <code>"1469498468.057"</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OperatingSystem</i> Operating system that the game server binaries are built to run on. This value determines the type of fleet resources that you can use for this build.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SizeOnDisk</i> File size of the uploaded game build, expressed in bytes. When the build status is <code>INITIALIZED</code>, this value is 0.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Current status of the build. Possible build statuses include the following: <ul> <li>  <b>INITIALIZED</b> -- A new build has been defined, but no files have been uploaded. You cannot create fleets for builds that are in this status. When a build is successfully created, the build status is set to this value.  </li> <li>  <b>READY</b> -- The game build has been successfully uploaded. You can now create new fleets for this build. </li> <li>  <b>FAILED</b> -- The game build upload failed. You cannot create new fleets for this build.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> Version information that is associated with a build or script. Version strings do not need to be unique. This value can be set using <a>CreateBuild</a> or <a>UpdateBuild</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A descriptive label that is associated with a build. Build names do not need to be unique. It can be set using <a>CreateBuild</a> or <a>UpdateBuild</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BuildArn</i> The Amazon Resource Name (<a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html">ARN</a>) that is assigned to a GameLift build resource and uniquely identifies it. ARNs are unique across all Regions. Format is <code>arn:aws:gamelift:&lt;region&gt;::build/build-a1234567-b8c9-0d1e-2fa3-b45c6d7e8912</code>. In a GameLift build ARN, the resource ID matches the <i>BuildId</i> value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BuildId</i> A unique identifier for the build.<br/>        """
        pass

    def update_fleet_attributes(self, FleetId: str, Name: str=None, Description: str=None, NewGameSessionProtectionPolicy: str=None, ResourceCreationLimitPolicy: ResourceCreationLimitPolicy=None, MetricGroups: List[MetricGroup]=None) -> UpdateFleetAttributesOutput:
        r"""Updates a fleet's mutable attributes, including game session protection and resource creation limits. To update fleet attributes, specify the fleet ID and the property values that you want to change.  If successful, an updated <code>FleetAttributes</code> object is returned.  <b>Learn more</b>   <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/fleets-intro.html">Setting up GameLift fleets</a>   <b>Related actions</b>   <a>CreateFleetLocations</a> | <a>UpdateFleetAttributes</a> | <a>UpdateFleetCapacity</a> | <a>UpdateFleetPortSettings</a> | <a>UpdateRuntimeConfiguration</a> | <a>StopFleetActions</a> | <a>StartFleetActions</a> | <a>PutScalingPolicy</a> | <a>DeleteFleet</a> | <a>DeleteFleetLocations</a> | <a>DeleteScalingPolicy</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets">All APIs by task</a> 

        :param self:
        :param MetricGroups:  The name of a metric group to add this fleet to. Use a metric group in Amazon CloudWatch to aggregate the metrics from multiple fleets. Provide an existing metric group name, or create a new metric group by providing a new name. A fleet can only be in one metric group at a time.<br/>ResourceCreationLimitPolicy:  Policy settings that limit the number of game sessions an individual player can create over a span of time. :<br/>NewGameSessionProtectionPolicy:  The game session protection policy to apply to all new instances created in this fleet. Instances that already exist are not affected. You can set protection for individual instances using <a>UpdateGameSession</a>. <ul> <li>  <b>NoProtection</b> -- The game session can be terminated during a scale-down event. </li> <li>  <b>FullProtection</b> -- If the game session is in an <code>ACTIVE</code> status, it cannot be terminated during a scale-down event. </li> </ul><br/>Description:  A human-readable description of a fleet.<br/>Name:  A descriptive label that is associated with a fleet. Fleet names do not need to be unique.<br/>FleetId:  A unique identifier for the fleet to update attribute metadata for. You can use either the fleet ID or ARN value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PolicyPeriodInMinutes</i> The time span used in evaluating the resource creation limit policy. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NewGameSessionsPerCreator</i> The maximum number of game sessions that an individual can create during the policy period. <br/>
        :return: FleetId:  A unique identifier for the fleet that was updated.<br/>        """
        pass

    def update_fleet_capacity(self, FleetId: str, DesiredInstances: int=None, MinSize: int=None, MaxSize: int=None, Location: str=None) -> UpdateFleetCapacityOutput:
        r"""Updates capacity settings for a fleet. For fleets with multiple locations, use this operation to manage capacity settings in each location individually. Fleet capacity determines the number of game sessions and players that can be hosted based on the fleet configuration. Use this operation to set the following fleet capacity properties:  <ul> <li> Minimum/maximum size: Set hard limits on fleet capacity. GameLift cannot set the fleet's capacity to a value outside of this range, whether the capacity is changed manually or through automatic scaling.  </li> <li> Desired capacity: Manually set the number of EC2 instances to be maintained in a fleet location. Before changing a fleet's desired capacity, you may want to call <a>DescribeEC2InstanceLimits</a> to get the maximum capacity of the fleet's EC2 instance type. Alternatively, consider using automatic scaling to adjust capacity based on player demand. </li> </ul> This operation can be used in the following ways:  <ul> <li> To update capacity for a fleet's home Region, or if the fleet has no remote locations, omit the <code>Location</code> parameter. The fleet must be in <code>ACTIVE</code> status.  </li> <li> To update capacity for a fleet's remote location, include the <code>Location</code> parameter set to the location to be updated. The location must be in <code>ACTIVE</code> status. </li> </ul> If successful, capacity settings are updated immediately. In response a change in desired capacity, GameLift initiates steps to start new instances or terminate existing instances in the requested fleet location. This continues until the location's active instance count matches the new desired instance count. You can track a fleet's current capacity by calling <a>DescribeFleetCapacity</a> or <a>DescribeFleetLocationCapacity</a>. If the requested desired instance count is higher than the instance type's limit, the <code>LimitExceeded</code> exception occurs.  <b>Learn more</b>   <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/fleets-manage-capacity.html">Scaling fleet capacity</a>   <b>Related actions</b>   <a>CreateFleetLocations</a> | <a>UpdateFleetAttributes</a> | <a>UpdateFleetCapacity</a> | <a>UpdateFleetPortSettings</a> | <a>UpdateRuntimeConfiguration</a> | <a>StopFleetActions</a> | <a>StartFleetActions</a> | <a>PutScalingPolicy</a> | <a>DeleteFleet</a> | <a>DeleteFleetLocations</a> | <a>DeleteScalingPolicy</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets">All APIs by task</a> 

        :param self:
        :param Location:  The name of a remote location to update fleet capacity settings for, in the form of an AWS Region code such as <code>us-west-2</code>.<br/>MaxSize:  The maximum number of instances that are allowed in the specified fleet location. If this parameter is not set, the default is 1.<br/>MinSize:  The minimum number of instances that are allowed in the specified fleet location. If this parameter is not set, the default is 0.<br/>DesiredInstances:  The number of EC2 instances you want to maintain in the specified fleet location. This value must fall between the minimum and maximum size limits.<br/>FleetId:  A unique identifier for the fleet to update capacity settings for. You can use either the fleet ID or ARN value.<br/>
        :return: Location:  The remote location being updated, expressed as an AWS Region code, such as <code>us-west-2</code>.<br/>FleetArn:  The Amazon Resource Name (<a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html">ARN</a>) that is assigned to a GameLift fleet resource and uniquely identifies it. ARNs are unique across all Regions. Format is <code>arn:aws:gamelift:&lt;region&gt;::fleet/fleet-a1234567-b8c9-0d1e-2fa3-b45c6d7e8912</code>. <br/>FleetId:  A unique identifier for the fleet that was updated.<br/>        """
        pass

    def update_fleet_port_settings(self, FleetId: str, InboundPermissionAuthorizations: List[IpPermission]=None, InboundPermissionRevocations: List[IpPermission]=None) -> UpdateFleetPortSettingsOutput:
        r"""Updates permissions that allow inbound traffic to connect to game sessions that are being hosted on instances in the fleet.  To update settings, specify the fleet ID to be updated and specify the changes to be made. List the permissions you want to add in <code>InboundPermissionAuthorizations</code>, and permissions you want to remove in <code>InboundPermissionRevocations</code>. Permissions to be removed must match existing fleet permissions.  If successful, the fleet ID for the updated fleet is returned. For fleets with remote locations, port setting updates can take time to propagate across all locations. You can check the status of updates in each location by calling <code>DescribeFleetPortSettings</code> with a location name.  <b>Learn more</b>   <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/fleets-intro.html">Setting up GameLift fleets</a>   <b>Related actions</b>   <a>CreateFleetLocations</a> | <a>UpdateFleetAttributes</a> | <a>UpdateFleetCapacity</a> | <a>UpdateFleetPortSettings</a> | <a>UpdateRuntimeConfiguration</a> | <a>StopFleetActions</a> | <a>StartFleetActions</a> | <a>PutScalingPolicy</a> | <a>DeleteFleet</a> | <a>DeleteFleetLocations</a> | <a>DeleteScalingPolicy</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets">All APIs by task</a> 

        :param self:
        :param InboundPermissionRevocations:  A collection of port settings to be removed from the fleet resource.<br/>InboundPermissionAuthorizations:  A collection of port settings to be added to the fleet resource.<br/>FleetId:  A unique identifier for the fleet to update port settings for. You can use either the fleet ID or ARN value.<br/>
        :return: FleetId:  A unique identifier for the fleet that was updated.<br/>        """
        pass

    def update_game_server(self, GameServerId: str, GameServerGroupName: str, GameServerData: str=None, UtilizationStatus: str=None, HealthCheck: str=None) -> UpdateGameServerOutput:
        r""" <b>This operation is used with the GameLift FleetIQ solution and game server groups.</b>  Updates information about a registered game server to help GameLift FleetIQ to track game server availability. This operation is called by a game server process that is running on an instance in a game server group.  Use this operation to update the following types of game server information. You can make all three types of updates in the same request: <ul> <li> To update the game server's utilization status, identify the game server and game server group and specify the current utilization status. Use this status to identify when game servers are currently hosting games and when they are available to be claimed. </li> <li> To report health status, identify the game server and game server group and set health check to <code>HEALTHY</code>. If a game server does not report health status for a certain length of time, the game server is no longer considered healthy. As a result, it will be eventually deregistered from the game server group to avoid affecting utilization metrics. The best practice is to report health every 60 seconds. </li> <li> To change game server metadata, provide updated game server data. </li> </ul> Once a game server is successfully updated, the relevant statuses and timestamps are updated.  <b>Learn more</b>   <a href="https://docs.aws.amazon.com/gamelift/latest/fleetiqguide/gsg-intro.html">GameLift FleetIQ Guide</a>   <b>Related actions</b>   <a>RegisterGameServer</a> | <a>ListGameServers</a> | <a>ClaimGameServer</a> | <a>DescribeGameServer</a> | <a>UpdateGameServer</a> | <a>DeregisterGameServer</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/fleetiqguide/reference-awssdk-fleetiq.html">All APIs by task</a> 

        :param self:
        :param HealthCheck:  Indicates health status of the game server. A request that includes this parameter updates the game server's <i>LastHealthCheckTime</i> timestamp. <br/>UtilizationStatus:  Indicates whether the game server is available or is currently hosting gameplay.<br/>GameServerData:  A set of custom game server properties, formatted as a single string value. This data is passed to a game client or service when it requests information on game servers using <a>ListGameServers</a> or <a>ClaimGameServer</a>. <br/>GameServerId:  A custom string that uniquely identifies the game server to update.<br/>GameServerGroupName:  A unique identifier for the game server group where the game server is running. Use either the <a>GameServerGroup</a> name or ARN value.<br/>
        :return: GameServer:  Object that describes the newly updated game server.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastHealthCheckTime</i> Timestamp that indicates the last time the game server was updated with health status using an <a>UpdateGameServer</a> request. The format is a number expressed in Unix time as milliseconds (for example <code>"1469498468.057"</code>). After game server registration, this property is only changed when a game server update specifies a health check value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastClaimTime</i> Timestamp that indicates the last time the game server was claimed with a <a>ClaimGameServer</a> request. The format is a number expressed in Unix time as milliseconds (for example <code>"1469498468.057"</code>). This value is used to calculate when a claimed game server's status should revert to null.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RegistrationTime</i> Timestamp that indicates when the game server was created with a <a>RegisterGameServer</a> request. The format is a number expressed in Unix time as milliseconds (for example <code>"1469498468.057"</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UtilizationStatus</i> Indicates whether the game server is currently available for new games or is busy. Possible statuses include: <ul> <li>  <code>AVAILABLE</code> - The game server is available to be claimed. A game server that has been claimed remains in this status until it reports game hosting activity.  </li> <li>  <code>UTILIZED</code> - The game server is currently hosting a game session with players.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClaimStatus</i> Indicates when an available game server has been reserved for gameplay but has not yet started hosting a game. Once it is claimed, the game server remains in <code>CLAIMED</code> status for a maximum of one minute. During this time, game clients connect to the game server to start the game and trigger the game server to update its utilization status. After one minute, the game server claim status reverts to null.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GameServerData</i> A set of custom game server properties, formatted as a single string value. This data is passed to a game client or service when it requests information on game servers using <a>ListGameServers</a> or <a>ClaimGameServer</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConnectionInfo</i> The port and IP address that must be used to establish a client connection to the game server.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceId</i> The unique identifier for the instance where the game server is running. This ID is available in the instance metadata. EC2 instance IDs use a 17-character format, for example: <code>i-1234567890abcdef0</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GameServerId</i> A custom string that uniquely identifies the game server. Game server IDs are developer-defined and are unique across all game server groups in an AWS account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GameServerGroupArn</i> The ARN identifier for the game server group where the game server is located.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GameServerGroupName</i> A unique identifier for the game server group where the game server is running. Use either the <a>GameServerGroup</a> name or ARN value.<br/>        """
        pass

    def update_game_server_group(self, GameServerGroupName: str, RoleArn: str=None, InstanceDefinitions: List[InstanceDefinition]=None, GameServerProtectionPolicy: str=None, BalancingStrategy: str=None) -> UpdateGameServerGroupOutput:
        r""" <b>This operation is used with the GameLift FleetIQ solution and game server groups.</b>  Updates GameLift FleetIQ-specific properties for a game server group. Many Auto Scaling group properties are updated on the Auto Scaling group directly, including the launch template, Auto Scaling policies, and maximum/minimum/desired instance counts. To update the game server group, specify the game server group ID and provide the updated values. Before applying the updates, the new values are validated to ensure that GameLift FleetIQ can continue to perform instance balancing activity. If successful, a <a>GameServerGroup</a> object is returned.  <b>Learn more</b>   <a href="https://docs.aws.amazon.com/gamelift/latest/fleetiqguide/gsg-intro.html">GameLift FleetIQ Guide</a>   <b>Related actions</b>   <a>CreateGameServerGroup</a> | <a>ListGameServerGroups</a> | <a>DescribeGameServerGroup</a> | <a>UpdateGameServerGroup</a> | <a>DeleteGameServerGroup</a> | <a>ResumeGameServerGroup</a> | <a>SuspendGameServerGroup</a> | <a>DescribeGameServerInstances</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/fleetiqguide/reference-awssdk-fleetiq.html">All APIs by task</a> 

        :param self:
        :param BalancingStrategy:  Indicates how GameLift FleetIQ balances the use of Spot Instances and On-Demand Instances in the game server group. Method options include the following: <ul> <li>  <code>SPOT_ONLY</code> - Only Spot Instances are used in the game server group. If Spot Instances are unavailable or not viable for game hosting, the game server group provides no hosting capacity until Spot Instances can again be used. Until then, no new instances are started, and the existing nonviable Spot Instances are terminated (after current gameplay ends) and are not replaced. </li> <li>  <code>SPOT_PREFERRED</code> - (default value) Spot Instances are used whenever available in the game server group. If Spot Instances are unavailable, the game server group continues to provide hosting capacity by falling back to On-Demand Instances. Existing nonviable Spot Instances are terminated (after current gameplay ends) and are replaced with new On-Demand Instances. </li> <li>  <code>ON_DEMAND_ONLY</code> - Only On-Demand Instances are used in the game server group. No Spot Instances are used, even when available, while this balancing strategy is in force. </li> </ul><br/>GameServerProtectionPolicy:  A flag that indicates whether instances in the game server group are protected from early termination. Unprotected instances that have active game servers running might be terminated during a scale-down event, causing players to be dropped from the game. Protected instances cannot be terminated while there are active game servers running except in the event of a forced game server group deletion (see ). An exception to this is with Spot Instances, which can be terminated by AWS regardless of protection status. This property is set to <code>NO_PROTECTION</code> by default.<br/>InstanceDefinitions:  An updated list of EC2 instance types to use in the Auto Scaling group. The instance definitions must specify at least two different instance types that are supported by GameLift FleetIQ. This updated list replaces the entire current list of instance definitions for the game server group. For more information on instance types, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html">EC2 Instance Types</a> in the <i>Amazon EC2 User Guide</i>. You can optionally specify capacity weighting for each instance type. If no weight value is specified for an instance type, it is set to the default value "1". For more information about capacity weighting, see <a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-instance-weighting.html"> Instance Weighting for Amazon EC2 Auto Scaling</a> in the Amazon EC2 Auto Scaling User Guide.<br/>RoleArn:  The Amazon Resource Name (<a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html">ARN</a>) for an IAM role that allows Amazon GameLift to access your EC2 Auto Scaling groups.<br/>GameServerGroupName:  A unique identifier for the game server group. Use either the <a>GameServerGroup</a> name or ARN value.<br/>
        :return: GameServerGroup:  An object that describes the game server group resource with updated properties. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdatedTime</i> A timestamp that indicates when this game server group was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> A time stamp indicating when this data object was created. Format is a number expressed in Unix time as milliseconds (for example <code>"1469498468.057"</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SuspendedActions</i> A list of activities that are currently suspended for this game server group. If this property is empty, all activities are occurring.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusReason</i> Additional information about the current game server group status. This information might provide additional insight on groups that are in <code>ERROR</code> status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current status of the game server group. Possible statuses include: <ul> <li>  <code>NEW</code> - GameLift FleetIQ has validated the <code>CreateGameServerGroup()</code> request.  </li> <li>  <code>ACTIVATING</code> - GameLift FleetIQ is setting up a game server group, which includes creating an Auto Scaling group in your AWS account.  </li> <li>  <code>ACTIVE</code> - The game server group has been successfully created.  </li> <li>  <code>DELETE_SCHEDULED</code> - A request to delete the game server group has been received.  </li> <li>  <code>DELETING</code> - GameLift FleetIQ has received a valid <code>DeleteGameServerGroup()</code> request and is processing it. GameLift FleetIQ must first complete and release hosts before it deletes the Auto Scaling group and the game server group.  </li> <li>  <code>DELETED</code> - The game server group has been successfully deleted.  </li> <li>  <code>ERROR</code> - The asynchronous processes of activating or deleting a game server group has failed, resulting in an error state. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoScalingGroupArn</i> A generated unique ID for the EC2 Auto Scaling group that is associated with this game server group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GameServerProtectionPolicy</i> A flag that indicates whether instances in the game server group are protected from early termination. Unprotected instances that have active game servers running might be terminated during a scale-down event, causing players to be dropped from the game. Protected instances cannot be terminated while there are active game servers running except in the event of a forced game server group deletion (see ). An exception to this is with Spot Instances, which can be terminated by AWS regardless of protection status. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BalancingStrategy</i> Indicates how GameLift FleetIQ balances the use of Spot Instances and On-Demand Instances in the game server group. Method options include the following: <ul> <li>  <code>SPOT_ONLY</code> - Only Spot Instances are used in the game server group. If Spot Instances are unavailable or not viable for game hosting, the game server group provides no hosting capacity until Spot Instances can again be used. Until then, no new instances are started, and the existing nonviable Spot Instances are terminated (after current gameplay ends) and are not replaced. </li> <li>  <code>SPOT_PREFERRED</code> - (default value) Spot Instances are used whenever available in the game server group. If Spot Instances are unavailable, the game server group continues to provide hosting capacity by falling back to On-Demand Instances. Existing nonviable Spot Instances are terminated (after current gameplay ends) and are replaced with new On-Demand Instances. </li> <li>  <code>ON_DEMAND_ONLY</code> - Only On-Demand Instances are used in the game server group. No Spot Instances are used, even when available, while this balancing strategy is in force. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceDefinitions</i> The set of EC2 instance types that GameLift FleetIQ can use when balancing and automatically scaling instances in the corresponding Auto Scaling group. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The Amazon Resource Name (<a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html">ARN</a>) for an IAM role that allows Amazon GameLift to access your EC2 Auto Scaling groups.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GameServerGroupArn</i> A generated unique ID for the game server group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GameServerGroupName</i> A developer-defined identifier for the game server group. The name is unique for each Region in each AWS account.<br/>        """
        pass

    def update_game_session(self, GameSessionId: str, MaximumPlayerSessionCount: int=None, Name: str=None, PlayerSessionCreationPolicy: str=None, ProtectionPolicy: str=None) -> UpdateGameSessionOutput:
        r"""Updates the mutable properties of a game session.  To update a game session, specify the game session ID and the values you want to change.  If successful, the updated <code>GameSession</code> object is returned.   <b>Related actions</b>   <a>CreateGameSession</a> | <a>DescribeGameSessions</a> | <a>DescribeGameSessionDetails</a> | <a>SearchGameSessions</a> | <a>UpdateGameSession</a> | <a>GetGameSessionLogUrl</a> | <a>StartGameSessionPlacement</a> | <a>DescribeGameSessionPlacement</a> | <a>StopGameSessionPlacement</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets">All APIs by task</a> 

        :param self:
        :param ProtectionPolicy:  Game session protection policy to apply to this game session only. <ul> <li>  <b>NoProtection</b> -- The game session can be terminated during a scale-down event. </li> <li>  <b>FullProtection</b> -- If the game session is in an <code>ACTIVE</code> status, it cannot be terminated during a scale-down event. </li> </ul><br/>PlayerSessionCreationPolicy:  A policy that determines whether the game session is accepting new players.<br/>Name:  A descriptive label that is associated with a game session. Session names do not need to be unique.<br/>MaximumPlayerSessionCount:  The maximum number of players that can be connected simultaneously to the game session.<br/>GameSessionId:  A unique identifier for the game session to update. <br/>
        :return: GameSession:  The updated game session properties.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Location</i> The fleet location where the game session is running. This value might specify the fleet's home Region or a remote location. Location is expressed as an AWS Region code such as <code>us-west-2</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MatchmakerData</i> Information about the matchmaking process that was used to create the game session. It is in JSON syntax, formatted as a string. In addition the matchmaking configuration used, it contains data on all players assigned to the match, including player attributes and team assignments. For more details on matchmaker data, see <a href="https://docs.aws.amazon.com/gamelift/latest/flexmatchguide/match-server.html#match-server-data">Match Data</a>. Matchmaker data is useful when requesting match backfills, and is updated whenever new players are added during a successful backfill (see <a>StartMatchBackfill</a>). <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GameSessionData</i> A set of custom game session properties, formatted as a single string value. This data is passed to a game server process in the <a>GameSession</a> object with a request to start a new game session.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatorId</i> A unique identifier for a player. This ID is used to enforce a resource protection policy (if one exists), that limits the number of game sessions a player can create.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PlayerSessionCreationPolicy</i> Indicates whether or not the game session is accepting new players.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> The port number for the game session. To connect to a GameLift game server, an app needs both the IP address and port number.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DnsName</i> The DNS identifier assigned to the instance that is running the game session. Values have the following format: <ul> <li> TLS-enabled fleets: <code>&lt;unique identifier&gt;.&lt;region identifier&gt;.amazongamelift.com</code>. </li> <li> Non-TLS-enabled fleets: <code>ec2-&lt;unique identifier&gt;.compute.amazonaws.com</code>. (See <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-instance-addressing.html#concepts-public-addresses">Amazon EC2 Instance IP Addressing</a>.) </li> </ul> When connecting to a game session that is running on a TLS-enabled fleet, you must use the DNS name, not the IP address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IpAddress</i> The IP address of the game session. To connect to a GameLift game server, an app needs both the IP address and port number.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GameProperties</i> A set of custom properties for a game session, formatted as key:value pairs. These properties are passed to a game server process in the <a>GameSession</a> object with a request to start a new game session. You can search for active game sessions based on this custom data with <a>SearchGameSessions</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusReason</i> Provides additional information about game session status. <code>INTERRUPTED</code> indicates that the game session was hosted on a spot instance that was reclaimed, causing the active game session to be terminated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Current status of the game session. A game session must have an <code>ACTIVE</code> status to have player sessions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaximumPlayerSessionCount</i> The maximum number of players that can be connected simultaneously to the game session.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CurrentPlayerSessionCount</i> Number of players currently in the game session.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TerminationTime</i> A time stamp indicating when this data object was terminated. Format is a number expressed in Unix time as milliseconds (for example <code>"1469498468.057"</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> A time stamp indicating when this data object was created. Format is a number expressed in Unix time as milliseconds (for example <code>"1469498468.057"</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FleetArn</i>  The Amazon Resource Name (<a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html">ARN</a>) associated with the GameLift fleet that this game session is running on. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FleetId</i> A unique identifier for the fleet that the game session is running on.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A descriptive label that is associated with a game session. Session names do not need to be unique.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GameSessionId</i> A unique identifier for the game session. A game session ARN has the following format: <code>arn:aws:gamelift:&lt;region&gt;::gamesession/&lt;fleet ID&gt;/&lt;custom ID string or idempotency token&gt;</code>.<br/>        """
        pass

    def update_game_session_queue(self, Name: str, TimeoutInSeconds: int=None, PlayerLatencyPolicies: List[PlayerLatencyPolicy]=None, Destinations: List[GameSessionQueueDestination]=None, FilterConfiguration: FilterConfiguration=None, PriorityConfiguration: PriorityConfiguration=None, CustomEventData: str=None, NotificationTarget: str=None) -> UpdateGameSessionQueueOutput:
        r"""Updates the configuration of a game session queue, which determines how the queue processes new game session requests. To update settings, specify the queue name to be updated and provide the new settings. When updating destinations, provide a complete list of destinations.   <b>Learn more</b>   <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/queues-intro.html"> Using Multi-Region Queues</a>   <b>Related actions</b>   <a>CreateGameSessionQueue</a> | <a>DescribeGameSessionQueues</a> | <a>UpdateGameSessionQueue</a> | <a>DeleteGameSessionQueue</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets">All APIs by task</a> 

        :param self:
        :param NotificationTarget:  An SNS topic ARN that is set up to receive game session placement notifications. See <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/queue-notification.html"> Setting up notifications for game session placement</a>.<br/>CustomEventData:   Information to be added to all events that are related to this game session queue. <br/>PriorityConfiguration:  Custom settings to use when prioritizing destinations and locations for game session placements. This configuration replaces the FleetIQ default prioritization process. Priority types that are not explicitly named will be automatically applied at the end of the prioritization process. To remove an existing priority configuration, pass in an empty set.:<br/>FilterConfiguration:  A list of locations where a queue is allowed to place new game sessions. Locations are specified in the form of AWS Region codes, such as <code>us-west-2</code>. If this parameter is not set, game sessions can be placed in any queue location. To remove an existing filter configuration, pass in an empty set.:<br/>Destinations:  A list of fleets and/or fleet aliases that can be used to fulfill game session placement requests in the queue. Destinations are identified by either a fleet ARN or a fleet alias ARN, and are listed in order of placement preference. When updating this list, provide a complete list of destinations.<br/>PlayerLatencyPolicies:  A set of policies that act as a sliding cap on player latency. FleetIQ works to deliver low latency for most players in a game session. These policies ensure that no individual player can be placed into a game with unreasonably high latency. Use multiple policies to gradually relax latency requirements a step at a time. Multiple policies are applied based on their maximum allowed latency, starting with the lowest value. When updating policies, provide a complete collection of policies.<br/>TimeoutInSeconds:  The maximum time, in seconds, that a new game session placement request remains in the queue. When a request exceeds this time, the game session placement changes to a <code>TIMED_OUT</code> status.<br/>Name:  A descriptive label that is associated with game session queue. Queue names must be unique within each Region. You can use either the queue ID or ARN value. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowedLocations</i>  A list of locations to allow game session placement in, in the form of AWS Region codes such as <code>us-west-2</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LocationOrder</i> The prioritization order to use for fleet locations, when the <code>PriorityOrder</code> property includes <code>LOCATION</code>. Locations are identified by AWS Region codes such as <code>us-west-2</code>. Each location can only be listed once. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PriorityOrder</i> The recommended sequence to use when prioritizing where to place new game sessions. Each type can only be listed once. <ul> <li>  <code>LATENCY</code> -- FleetIQ prioritizes locations where the average player latency (provided in each game session request) is lowest.  </li> <li>  <code>COST</code> -- FleetIQ prioritizes destinations with the lowest current hosting costs. Cost is evaluated based on the location, instance type, and fleet type (Spot or On-Demand) for each destination in the queue. </li> <li>  <code>DESTINATION</code> -- FleetIQ prioritizes based on the order that destinations are listed in the queue configuration. </li> <li>  <code>LOCATION</code> -- FleetIQ prioritizes based on the provided order of locations, as defined in <code>LocationOrder</code>.  </li> </ul><br/>
        :return: GameSessionQueue:  An object that describes the newly updated game session queue.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NotificationTarget</i> An SNS topic ARN that is set up to receive game session placement notifications. See <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/queue-notification.html"> Setting up notifications for game session placement</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomEventData</i>  Information that is added to all events that are related to this game session queue. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PriorityConfiguration</i> Custom settings to use when prioritizing destinations and locations for game session placements. This configuration replaces the FleetIQ default prioritization process. Priority types that are not explicitly named will be automatically applied at the end of the prioritization process. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PriorityConfiguration</b>: Custom settings to use when prioritizing destinations and locations for game session placements. This configuration replaces the FleetIQ default prioritization process. Priority types that are not explicitly named will be automatically applied at the end of the prioritization process. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FilterConfiguration</i> A list of locations where a queue is allowed to place new game sessions. Locations are specified in the form of AWS Region codes, such as <code>us-west-2</code>. If this parameter is not set, game sessions can be placed in any queue location. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>FilterConfiguration</b>: A list of locations where a queue is allowed to place new game sessions. Locations are specified in the form of AWS Region codes, such as <code>us-west-2</code>. If this parameter is not set, game sessions can be placed in any queue location. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Destinations</i> A list of fleets and/or fleet aliases that can be used to fulfill game session placement requests in the queue. Destinations are identified by either a fleet ARN or a fleet alias ARN, and are listed in order of placement preference.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PlayerLatencyPolicies</i> A set of policies that act as a sliding cap on player latency. FleetIQ works to deliver low latency for most players in a game session. These policies ensure that no individual player can be placed into a game with unreasonably high latency. Use multiple policies to gradually relax latency requirements a step at a time. Multiple policies are applied based on their maximum allowed latency, starting with the lowest value. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TimeoutInSeconds</i> The maximum time, in seconds, that a new game session placement request remains in the queue. When a request exceeds this time, the game session placement changes to a <code>TIMED_OUT</code> status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GameSessionQueueArn</i> The Amazon Resource Name (<a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html">ARN</a>) that is assigned to a GameLift game session queue resource and uniquely identifies it. ARNs are unique across all Regions. Format is <code>arn:aws:gamelift:&lt;region&gt;::gamesessionqueue/&lt;queue name&gt;</code>. In a GameLift game session queue ARN, the resource ID matches the <i>Name</i> value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A descriptive label that is associated with game session queue. Queue names must be unique within each Region.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowedLocations</i>  A list of locations to allow game session placement in, in the form of AWS Region codes such as <code>us-west-2</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LocationOrder</i> The prioritization order to use for fleet locations, when the <code>PriorityOrder</code> property includes <code>LOCATION</code>. Locations are identified by AWS Region codes such as <code>us-west-2</code>. Each location can only be listed once. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PriorityOrder</i> The recommended sequence to use when prioritizing where to place new game sessions. Each type can only be listed once. <ul> <li>  <code>LATENCY</code> -- FleetIQ prioritizes locations where the average player latency (provided in each game session request) is lowest.  </li> <li>  <code>COST</code> -- FleetIQ prioritizes destinations with the lowest current hosting costs. Cost is evaluated based on the location, instance type, and fleet type (Spot or On-Demand) for each destination in the queue. </li> <li>  <code>DESTINATION</code> -- FleetIQ prioritizes based on the order that destinations are listed in the queue configuration. </li> <li>  <code>LOCATION</code> -- FleetIQ prioritizes based on the provided order of locations, as defined in <code>LocationOrder</code>.  </li> </ul><br/>        """
        pass

    def update_matchmaking_configuration(self, Name: str, Description: str=None, GameSessionQueueArns: List[ArnStringModel]=None, RequestTimeoutSeconds: int=None, AcceptanceTimeoutSeconds: int=None, AcceptanceRequired: BooleanModel=None, RuleSetName: str=None, NotificationTarget: str=None, AdditionalPlayerCount: int=None, CustomEventData: str=None, GameProperties: List[GameProperty]=None, GameSessionData: str=None, BackfillMode: str=None, FlexMatchMode: str=None) -> UpdateMatchmakingConfigurationOutput:
        r"""Updates settings for a FlexMatch matchmaking configuration. These changes affect all matches and game sessions that are created after the update. To update settings, specify the configuration name to be updated and provide the new settings.   <b>Learn more</b>   <a href="https://docs.aws.amazon.com/gamelift/latest/flexmatchguide/match-configuration.html"> Design a FlexMatch matchmaker</a>   <b>Related actions</b>   <a>CreateMatchmakingConfiguration</a> | <a>DescribeMatchmakingConfigurations</a> | <a>UpdateMatchmakingConfiguration</a> | <a>DeleteMatchmakingConfiguration</a> | <a>CreateMatchmakingRuleSet</a> | <a>DescribeMatchmakingRuleSets</a> | <a>ValidateMatchmakingRuleSet</a> | <a>DeleteMatchmakingRuleSet</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets">All APIs by task</a> 

        :param self:
        :param FlexMatchMode:  Indicates whether this matchmaking configuration is being used with GameLift hosting or as a standalone matchmaking solution.  <ul> <li>  <b>STANDALONE</b> - FlexMatch forms matches and returns match information, including players and team assignments, in a <a href="https://docs.aws.amazon.com/gamelift/latest/flexmatchguide/match-events.html#match-events-matchmakingsucceeded"> MatchmakingSucceeded</a> event. </li> <li>  <b>WITH_QUEUE</b> - FlexMatch forms matches and uses the specified GameLift queue to start a game session for the match.  </li> </ul><br/>BackfillMode:  The method that is used to backfill game sessions created with this matchmaking configuration. Specify MANUAL when your game manages backfill requests manually or does not use the match backfill feature. Specify AUTOMATIC to have GameLift create a <a>StartMatchBackfill</a> request whenever a game session has one or more open slots. Learn more about manual and automatic backfill in <a href="https://docs.aws.amazon.com/gamelift/latest/flexmatchguide/match-backfill.html">Backfill Existing Games with FlexMatch</a>. Automatic backfill is not available when <code>FlexMatchMode</code> is set to <code>STANDALONE</code>.<br/>GameSessionData:  A set of custom game session properties, formatted as a single string value. This data is passed to a game server process in the <a>GameSession</a> object with a request to start a new game session (see <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession">Start a Game Session</a>). This information is added to the new <a>GameSession</a> object that is created for a successful match. This parameter is not used if <code>FlexMatchMode</code> is set to <code>STANDALONE</code>.<br/>GameProperties:  A set of custom properties for a game session, formatted as key:value pairs. These properties are passed to a game server process in the <a>GameSession</a> object with a request to start a new game session (see <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession">Start a Game Session</a>). This information is added to the new <a>GameSession</a> object that is created for a successful match. This parameter is not used if <code>FlexMatchMode</code> is set to <code>STANDALONE</code>.<br/>CustomEventData:  Information to add to all events related to the matchmaking configuration. <br/>AdditionalPlayerCount:  The number of player slots in a match to keep open for future players. For example, if the configuration's rule set specifies a match for a single 12-person team, and the additional player count is set to 2, only 10 players are selected for the match. This parameter is not used if <code>FlexMatchMode</code> is set to <code>STANDALONE</code>.<br/>NotificationTarget:  An SNS topic ARN that is set up to receive matchmaking notifications. See <a href="https://docs.aws.amazon.com/gamelift/latest/flexmatchguide/match-notification.html"> Setting up notifications for matchmaking</a> for more information.<br/>RuleSetName:  A unique identifier for the matchmaking rule set to use with this configuration. You can use either the rule set name or ARN value. A matchmaking configuration can only use rule sets that are defined in the same Region.<br/>AcceptanceRequired:  A flag that indicates whether a match that was created with this configuration must be accepted by the matched players. To require acceptance, set to TRUE. With this option enabled, matchmaking tickets use the status <code>REQUIRES_ACCEPTANCE</code> to indicate when a completed potential match is waiting for player acceptance. <br/>AcceptanceTimeoutSeconds:  The length of time (in seconds) to wait for players to accept a proposed match, if acceptance is required.<br/>RequestTimeoutSeconds:  The maximum duration, in seconds, that a matchmaking ticket can remain in process before timing out. Requests that fail due to timing out can be resubmitted as needed.<br/>GameSessionQueueArns:  The Amazon Resource Name (<a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html">ARN</a>) that is assigned to a GameLift game session queue resource and uniquely identifies it. ARNs are unique across all Regions. Format is <code>arn:aws:gamelift:&lt;region&gt;::gamesessionqueue/&lt;queue name&gt;</code>. Queues can be located in any Region. Queues are used to start new GameLift-hosted game sessions for matches that are created with this matchmaking configuration. If <code>FlexMatchMode</code> is set to <code>STANDALONE</code>, do not set this parameter.<br/>Description:  A descriptive label that is associated with matchmaking configuration.<br/>Name:  A unique identifier for the matchmaking configuration to update. You can use either the configuration name or ARN value. <br/>
        :return: Configuration:  The updated matchmaking configuration.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FlexMatchMode</i> Indicates whether this matchmaking configuration is being used with GameLift hosting or as a standalone matchmaking solution.  <ul> <li>  <b>STANDALONE</b> - FlexMatch forms matches and returns match information, including players and team assignments, in a <a href="https://docs.aws.amazon.com/gamelift/latest/flexmatchguide/match-events.html#match-events-matchmakingsucceeded"> MatchmakingSucceeded</a> event. </li> <li>  <b>WITH_QUEUE</b> - FlexMatch forms matches and uses the specified GameLift queue to start a game session for the match.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackfillMode</i> The method used to backfill game sessions created with this matchmaking configuration. MANUAL indicates that the game makes backfill requests or does not use the match backfill feature. AUTOMATIC indicates that GameLift creates <a>StartMatchBackfill</a> requests whenever a game session has one or more open slots. Learn more about manual and automatic backfill in <a href="https://docs.aws.amazon.com/gamelift/latest/flexmatchguide/match-backfill.html">Backfill existing games with FlexMatch</a>. Automatic backfill is not available when <code>FlexMatchMode</code> is set to <code>STANDALONE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GameSessionData</i> A set of custom game session properties, formatted as a single string value. This data is passed to a game server process in the <a>GameSession</a> object with a request to start a new game session (see <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession">Start a Game Session</a>). This information is added to the new <a>GameSession</a> object that is created for a successful match. This parameter is not used when <code>FlexMatchMode</code> is set to <code>STANDALONE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GameProperties</i> A set of custom properties for a game session, formatted as key:value pairs. These properties are passed to a game server process in the <a>GameSession</a> object with a request to start a new game session (see <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession">Start a Game Session</a>). This information is added to the new <a>GameSession</a> object that is created for a successful match. This parameter is not used when <code>FlexMatchMode</code> is set to <code>STANDALONE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> A time stamp indicating when this data object was created. Format is a number expressed in Unix time as milliseconds (for example <code>"1469498468.057"</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomEventData</i> Information to attach to all events related to the matchmaking configuration. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdditionalPlayerCount</i> The number of player slots in a match to keep open for future players. For example, if the configuration's rule set specifies a match for a single 12-person team, and the additional player count is set to 2, only 10 players are selected for the match. This parameter is not used when <code>FlexMatchMode</code> is set to <code>STANDALONE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NotificationTarget</i> An SNS topic ARN that is set up to receive matchmaking notifications.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RuleSetArn</i> The Amazon Resource Name (<a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html">ARN</a>) associated with the GameLift matchmaking rule set resource that this configuration uses.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RuleSetName</i> A unique identifier for the matchmaking rule set to use with this configuration. A matchmaking configuration can only use rule sets that are defined in the same Region.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AcceptanceRequired</i> A flag that indicates whether a match that was created with this configuration must be accepted by the matched players. To require acceptance, set to TRUE. When this option is enabled, matchmaking tickets use the status <code>REQUIRES_ACCEPTANCE</code> to indicate when a completed potential match is waiting for player acceptance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AcceptanceTimeoutSeconds</i> The length of time (in seconds) to wait for players to accept a proposed match, if acceptance is required. If any player rejects the match or fails to accept before the timeout, the ticket continues to look for an acceptable match.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequestTimeoutSeconds</i> The maximum duration, in seconds, that a matchmaking ticket can remain in process before timing out. Requests that fail due to timing out can be resubmitted as needed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GameSessionQueueArns</i> The Amazon Resource Name (<a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html">ARN</a>) that is assigned to a GameLift game session queue resource and uniquely identifies it. ARNs are unique across all Regions. Format is <code>arn:aws:gamelift:&lt;region&gt;::gamesessionqueue/&lt;queue name&gt;</code>. Queues can be located in any Region. Queues are used to start new GameLift-hosted game sessions for matches that are created with this matchmaking configuration. This property is not set when <code>FlexMatchMode</code> is set to <code>STANDALONE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A descriptive label that is associated with matchmaking configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConfigurationArn</i> The Amazon Resource Name (<a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html">ARN</a>) that is assigned to a GameLift matchmaking configuration resource and uniquely identifies it. ARNs are unique across all Regions. Format is <code>arn:aws:gamelift:&lt;region&gt;::matchmakingconfiguration/&lt;matchmaking configuration name&gt;</code>. In a GameLift configuration ARN, the resource ID matches the <i>Name</i> value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A unique identifier for the matchmaking configuration. This name is used to identify the configuration associated with a matchmaking request or ticket.<br/>        """
        pass

    def update_runtime_configuration(self, RuntimeConfiguration: RuntimeConfiguration, FleetId: str) -> UpdateRuntimeConfigurationOutput:
        r"""Updates the current runtime configuration for the specified fleet, which tells GameLift how to launch server processes on all instances in the fleet. You can update a fleet's runtime configuration at any time after the fleet is created; it does not need to be in <code>ACTIVE</code> status. To update runtime configuration, specify the fleet ID and provide a <code>RuntimeConfiguration</code> with an updated set of server process configurations. If successful, the fleet's runtime configuration settings are updated. Each instance in the fleet regularly checks for and retrieves updated runtime configurations. Instances immediately begin complying with the new configuration by launching new server processes or not replacing existing processes when they shut down. Updating a fleet's runtime configuration never affects existing server processes.  <b>Learn more</b>   <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/fleets-intro.html">Setting up GameLift fleets</a>   <b>Related actions</b>   <a>CreateFleetLocations</a> | <a>UpdateFleetAttributes</a> | <a>UpdateFleetCapacity</a> | <a>UpdateFleetPortSettings</a> | <a>UpdateRuntimeConfiguration</a> | <a>StopFleetActions</a> | <a>StartFleetActions</a> | <a>PutScalingPolicy</a> | <a>DeleteFleet</a> | <a>DeleteFleetLocations</a> | <a>DeleteScalingPolicy</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets">All APIs by task</a> 

        :param self:
        :param RuntimeConfiguration:  Instructions for launching server processes on each instance in the fleet. Server processes run either a custom game build executable or a Realtime Servers script. The runtime configuration lists the types of server processes to run on an instance, how to launch them, and the number of processes to run concurrently.:<br/>FleetId:  A unique identifier for the fleet to update runtime configuration for. You can use either the fleet ID or ARN value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GameSessionActivationTimeoutSeconds</i> The maximum amount of time (in seconds) allowed to launch a new game session and have it report ready to host players. During this time, the game session is in status <code>ACTIVATING</code>. If the game session does not become active before the timeout, it is ended and the game session status is changed to <code>TERMINATED</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxConcurrentGameSessionActivations</i> The number of game sessions in status <code>ACTIVATING</code> to allow on an instance. This setting limits the instance resources that can be used for new game activations at any one time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerProcesses</i> A collection of server process configurations that identify what server processes to run on each instance in a fleet.<br/>
        :return: RuntimeConfiguration:  The runtime configuration currently in use by all instances in the fleet. If the update was successful, all property changes are shown. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GameSessionActivationTimeoutSeconds</i> The maximum amount of time (in seconds) allowed to launch a new game session and have it report ready to host players. During this time, the game session is in status <code>ACTIVATING</code>. If the game session does not become active before the timeout, it is ended and the game session status is changed to <code>TERMINATED</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxConcurrentGameSessionActivations</i> The number of game sessions in status <code>ACTIVATING</code> to allow on an instance. This setting limits the instance resources that can be used for new game activations at any one time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerProcesses</i> A collection of server process configurations that identify what server processes to run on each instance in a fleet.<br/>        """
        pass

    def update_script(self, ScriptId: str, Name: str=None, Version: str=None, StorageLocation: S3Location=None, ZipFile: ZipBlob=None) -> UpdateScriptOutput:
        r"""Updates Realtime script metadata and content. To update script metadata, specify the script ID and provide updated name and/or version values.  To update script content, provide an updated zip file by pointing to either a local file or an Amazon S3 bucket location. You can use either method regardless of how the original script was uploaded. Use the <i>Version</i> parameter to track updates to the script. If the call is successful, the updated metadata is stored in the script record and a revised script is uploaded to the Amazon GameLift service. Once the script is updated and acquired by a fleet instance, the new version is used for all new game sessions.   <b>Learn more</b>   <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/realtime-intro.html">Amazon GameLift Realtime Servers</a>   <b>Related actions</b>   <a>CreateScript</a> | <a>ListScripts</a> | <a>DescribeScript</a> | <a>UpdateScript</a> | <a>DeleteScript</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets">All APIs by task</a> 

        :param self:
        :param ZipFile:  A data object containing your Realtime scripts and dependencies as a zip file. The zip file can have one or multiple files. Maximum size of a zip file is 5 MB. When using the AWS CLI tool to create a script, this parameter is set to the zip file name. It must be prepended with the string "fileb://" to indicate that the file data is a binary object. For example: <code>--zip-file fileb://myRealtimeScript.zip</code>.<br/>StorageLocation:  The location of the Amazon S3 bucket where a zipped file containing your Realtime scripts is stored. The storage location must specify the Amazon S3 bucket name, the zip file name (the "key"), and a role ARN that allows Amazon GameLift to access the Amazon S3 storage location. The S3 bucket must be in the same Region where you want to create a new script. By default, Amazon GameLift uploads the latest version of the zip file; if you have S3 object versioning turned on, you can use the <code>ObjectVersion</code> parameter to specify an earlier version. :<br/>Version:  Version information that is associated with a build or script. Version strings do not need to be unique.<br/>Name:  A descriptive label that is associated with a script. Script names do not need to be unique.<br/>ScriptId:  A unique identifier for the Realtime script to update. You can use either the script ID or ARN value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ObjectVersion</i> The version of the file, if object versioning is turned on for the bucket. Amazon GameLift uses this information when retrieving files from an S3 bucket that you own. Use this parameter to specify a specific version of the file. If not set, the latest version of the file is retrieved. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The Amazon Resource Name (<a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html">ARN</a>) for an IAM role that allows Amazon GameLift to access the S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The name of the zip file that contains the build files or script files. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i> An Amazon S3 bucket identifier. This is the name of the S3 bucket. <note> GameLift currently does not support uploading from Amazon S3 buckets with names that contain a dot (.). </note><br/>
        :return: Script:  The newly created script record with a unique script ID. The new script's storage location reflects an Amazon S3 location: (1) If the script was uploaded from an S3 bucket under your account, the storage location reflects the information that was provided in the <i>CreateScript</i> request; (2) If the script file was uploaded from a local zip file, the storage location reflects an S3 location controls by the Amazon GameLift service.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageLocation</i> The location in Amazon S3 where build or script files are stored for access by Amazon GameLift. This location is specified in <a>CreateBuild</a>, <a>CreateScript</a>, and <a>UpdateScript</a> requests. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StorageLocation</b>: The location in Amazon S3 where build or script files are stored for access by Amazon GameLift. This location is specified in <a>CreateBuild</a>, <a>CreateScript</a>, and <a>UpdateScript</a> requests. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> A time stamp indicating when this data object was created. Format is a number expressed in Unix time as milliseconds (for example <code>"1469498468.057"</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SizeOnDisk</i> The file size of the uploaded Realtime script, expressed in bytes. When files are uploaded from an S3 location, this value remains at "0".<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> Version information that is associated with a build or script. Version strings do not need to be unique.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A descriptive label that is associated with a script. Script names do not need to be unique.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ScriptArn</i> The Amazon Resource Name (<a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html">ARN</a>) that is assigned to a GameLift script resource and uniquely identifies it. ARNs are unique across all Regions. In a GameLift script ARN, the resource ID matches the <i>ScriptId</i> value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ScriptId</i> A unique identifier for the Realtime script<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ObjectVersion</i> The version of the file, if object versioning is turned on for the bucket. Amazon GameLift uses this information when retrieving files from an S3 bucket that you own. Use this parameter to specify a specific version of the file. If not set, the latest version of the file is retrieved. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The Amazon Resource Name (<a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html">ARN</a>) for an IAM role that allows Amazon GameLift to access the S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The name of the zip file that contains the build files or script files. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i> An Amazon S3 bucket identifier. This is the name of the S3 bucket. <note> GameLift currently does not support uploading from Amazon S3 buckets with names that contain a dot (.). </note><br/>        """
        pass

    def validate_matchmaking_rule_set(self, RuleSetBody: str) -> ValidateMatchmakingRuleSetOutput:
        r"""Validates the syntax of a matchmaking rule or rule set. This operation checks that the rule set is using syntactically correct JSON and that it conforms to allowed property expressions. To validate syntax, provide a rule set JSON string.  <b>Learn more</b>  <ul> <li>  <a href="https://docs.aws.amazon.com/gamelift/latest/flexmatchguide/match-rulesets.html">Build a rule set</a>  </li> </ul>  <b>Related actions</b>   <a>CreateMatchmakingConfiguration</a> | <a>DescribeMatchmakingConfigurations</a> | <a>UpdateMatchmakingConfiguration</a> | <a>DeleteMatchmakingConfiguration</a> | <a>CreateMatchmakingRuleSet</a> | <a>DescribeMatchmakingRuleSets</a> | <a>ValidateMatchmakingRuleSet</a> | <a>DeleteMatchmakingRuleSet</a> | <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets">All APIs by task</a> 

        :param self:
        :param RuleSetBody:  A collection of matchmaking rules to validate, formatted as a JSON string.<br/>
        :return: Valid:  A response indicating whether the rule set is valid.<br/>        """
        pass





class Glacier(BaseClient):
    r""" Amazon S3 Glacier (Glacier) is a storage solution for "cold data." Glacier is an extremely low-cost storage service that provides secure, durable, and easy-to-use storage for data backup and archival. With Glacier, customers can store their data cost effectively for months, years, or decades. Glacier also enables customers to offload the administrative burdens of operating and scaling storage to AWS, so they don't have to worry about capacity planning, hardware provisioning, data replication, hardware failure and recovery, or time-consuming hardware migrations. Glacier is a great storage choice when low storage cost is paramount and your data is rarely retrieved. If your application requires fast or frequent access to your data, consider using Amazon S3. For more information, see <a href="http://aws.amazon.com/s3/">Amazon Simple Storage Service (Amazon S3)</a>. You can store any kind of data in any format. There is no maximum limit on the total amount of data you can store in Glacier. If you are a first-time user of Glacier, we recommend that you begin by reading the following sections in the <i>Amazon S3 Glacier Developer Guide</i>: <ul> <li>  <a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/introduction.html">What is Amazon S3 Glacier</a> - This section of the Developer Guide describes the underlying data model, the operations it supports, and the AWS SDKs that you can use to interact with the service. </li> <li>  <a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/amazon-glacier-getting-started.html">Getting Started with Amazon S3 Glacier</a> - The Getting Started section walks you through the process of creating a vault, uploading archives, creating jobs to download archives, retrieving the job output, and deleting archives. </li> </ul>"""

    class VaultExistsWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_vault` for valid parameters"""
            pass
    class VaultNotExistsWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_vault` for valid parameters"""
            pass


    class ListJobsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_jobs` for valid parameters"""
            pass
    class ListMultipartUploadsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_multipart_uploads` for valid parameters"""
            pass
    class ListPartsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_parts` for valid parameters"""
            pass
    class ListVaultsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_vaults` for valid parameters"""
            pass


    class AbortMultipartUploadInput(Mapping):
        pass
    
    class AbortVaultLockInput(Mapping):
        pass
    
    class AddTagsToVaultInput(Mapping):
        pass
    
    class TagMap(object):
        pass
    
    class CompleteMultipartUploadInput(Mapping):
        pass
    
    class ArchiveCreationOutput(Mapping):
        pass
    
    class CompleteVaultLockInput(Mapping):
        pass
    
    class CreateVaultInput(Mapping):
        pass
    
    class CreateVaultOutput(Mapping):
        pass
    
    class DeleteArchiveInput(Mapping):
        pass
    
    class DeleteVaultInput(Mapping):
        pass
    
    class DeleteVaultAccessPolicyInput(Mapping):
        pass
    
    class DeleteVaultNotificationsInput(Mapping):
        pass
    
    class DescribeJobInput(Mapping):
        pass
    
    class GlacierJobDescription(Mapping):
        pass
    
    class DescribeVaultInput(Mapping):
        pass
    
    class DescribeVaultOutput(Mapping):
        pass
    
    class GetDataRetrievalPolicyInput(Mapping):
        pass
    
    class GetDataRetrievalPolicyOutput(Mapping):
        pass
    
    class GetJobOutputInput(Mapping):
        pass
    
    class GetJobOutputOutput(Mapping):
        pass
    
    class GetVaultAccessPolicyInput(Mapping):
        pass
    
    class GetVaultAccessPolicyOutput(Mapping):
        pass
    
    class GetVaultLockInput(Mapping):
        pass
    
    class GetVaultLockOutput(Mapping):
        pass
    
    class GetVaultNotificationsInput(Mapping):
        pass
    
    class GetVaultNotificationsOutput(Mapping):
        pass
    
    class InitiateJobInput(Mapping):
        pass
    
    class InitiateJobOutput(Mapping):
        pass
    
    class JobParameters(Mapping):
        pass
    
    class InitiateMultipartUploadInput(Mapping):
        pass
    
    class InitiateMultipartUploadOutput(Mapping):
        pass
    
    class InitiateVaultLockInput(Mapping):
        pass
    
    class InitiateVaultLockOutput(Mapping):
        pass
    
    class VaultLockPolicy(Mapping):
        pass
    
    class ListJobsInput(Mapping):
        pass
    
    class ListJobsOutput(Mapping):
        pass
    
    class ListMultipartUploadsInput(Mapping):
        pass
    
    class ListMultipartUploadsOutput(Mapping):
        pass
    
    class ListPartsInput(Mapping):
        pass
    
    class ListPartsOutput(Mapping):
        pass
    
    class ListProvisionedCapacityInput(Mapping):
        pass
    
    class ListProvisionedCapacityOutput(Mapping):
        pass
    
    class ListTagsForVaultInput(Mapping):
        pass
    
    class ListTagsForVaultOutput(Mapping):
        pass
    
    class ListVaultsInput(Mapping):
        pass
    
    class ListVaultsOutput(Mapping):
        pass
    
    class PurchaseProvisionedCapacityInput(Mapping):
        pass
    
    class PurchaseProvisionedCapacityOutput(Mapping):
        pass
    
    class RemoveTagsFromVaultInput(Mapping):
        pass
    
    class string(object):
        pass
    
    class SetDataRetrievalPolicyInput(Mapping):
        pass
    
    class DataRetrievalPolicy(Mapping):
        pass
    
    class SetVaultAccessPolicyInput(Mapping):
        pass
    
    class VaultAccessPolicy(Mapping):
        pass
    
    class SetVaultNotificationsInput(Mapping):
        pass
    
    class VaultNotificationConfig(Mapping):
        pass
    
    class UploadArchiveInput(Mapping):
        pass
    
    class Stream(object):
        pass
    
    class UploadMultipartPartInput(Mapping):
        pass
    
    class UploadMultipartPartOutput(Mapping):
        pass
    
    def abort_multipart_upload(self, uploadId: str, vaultName: str, accountId: str):
        r"""This operation aborts a multipart upload identified by the upload ID. After the Abort Multipart Upload request succeeds, you cannot upload any more parts to the multipart upload or complete the multipart upload. Aborting a completed upload fails. However, aborting an already-aborted upload will succeed, for a short time. For more information about uploading a part and completing a multipart upload, see <a>UploadMultipartPart</a> and <a>CompleteMultipartUpload</a>. This operation is idempotent. An AWS account has full permission to perform all operations (actions). However, AWS Identity and Access Management (IAM) users don't have any permissions by default. You must grant them explicit permission to perform specific actions. For more information, see <a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/using-iam-with-amazon-glacier.html">Access Control Using AWS Identity and Access Management (IAM)</a>.  For conceptual information and underlying REST API, see <a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/working-with-archives.html">Working with Archives in Amazon S3 Glacier</a> and <a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/api-multipart-abort-upload.html">Abort Multipart Upload</a> in the <i>Amazon Glacier Developer Guide</i>. 

        :param self:
        :param uploadId:  The upload ID of the multipart upload to delete.<br/>vaultName:  The name of the vault.<br/>accountId:  The <code>AccountId</code> value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '<code>-</code>' (hyphen), in which case Amazon S3 Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID.<br/>
        :return:         """
        pass

    def abort_vault_lock(self, vaultName: str, accountId: str):
        r"""This operation aborts the vault locking process if the vault lock is not in the <code>Locked</code> state. If the vault lock is in the <code>Locked</code> state when this operation is requested, the operation returns an <code>AccessDeniedException</code> error. Aborting the vault locking process removes the vault lock policy from the specified vault.  A vault lock is put into the <code>InProgress</code> state by calling <a>InitiateVaultLock</a>. A vault lock is put into the <code>Locked</code> state by calling <a>CompleteVaultLock</a>. You can get the state of a vault lock by calling <a>GetVaultLock</a>. For more information about the vault locking process, see <a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/vault-lock.html">Amazon Glacier Vault Lock</a>. For more information about vault lock policies, see <a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/vault-lock-policy.html">Amazon Glacier Access Control with Vault Lock Policies</a>.  This operation is idempotent. You can successfully invoke this operation multiple times, if the vault lock is in the <code>InProgress</code> state or if there is no policy associated with the vault.

        :param self:
        :param vaultName:  The name of the vault.<br/>accountId:  The <code>AccountId</code> value is the AWS account ID. This value must match the AWS account ID associated with the credentials used to sign the request. You can either specify an AWS account ID or optionally a single '<code>-</code>' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you specify your account ID, do not include any hyphens ('-') in the ID.<br/>
        :return:         """
        pass

    def add_tags_to_vault(self, vaultName: str, accountId: str, Tags: TagMap=None):
        r"""This operation adds the specified tags to a vault. Each tag is composed of a key and a value. Each vault can have up to 10 tags. If your request would cause the tag limit for the vault to be exceeded, the operation throws the <code>LimitExceededException</code> error. If a tag already exists on the vault under a specified key, the existing key value will be overwritten. For more information about tags, see <a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/tagging.html">Tagging Amazon S3 Glacier Resources</a>. 

        :param self:
        :param Tags:  The tags to add to the vault. Each tag is composed of a key and a value. The value can be an empty string.<br/>vaultName:  The name of the vault.<br/>accountId:  The <code>AccountId</code> value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '<code>-</code>' (hyphen), in which case Amazon S3 Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID.<br/>
        :return:         """
        pass

    def complete_multipart_upload(self, uploadId: str, vaultName: str, accountId: str, archiveSize: str=None, checksum: str=None) -> ArchiveCreationOutput:
        r"""You call this operation to inform Amazon S3 Glacier (Glacier) that all the archive parts have been uploaded and that Glacier can now assemble the archive from the uploaded parts. After assembling and saving the archive to the vault, Glacier returns the URI path of the newly created archive resource. Using the URI path, you can then access the archive. After you upload an archive, you should save the archive ID returned to retrieve the archive at a later point. You can also get the vault inventory to obtain a list of archive IDs in a vault. For more information, see <a>InitiateJob</a>. In the request, you must include the computed SHA256 tree hash of the entire archive you have uploaded. For information about computing a SHA256 tree hash, see <a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/checksum-calculations.html">Computing Checksums</a>. On the server side, Glacier also constructs the SHA256 tree hash of the assembled archive. If the values match, Glacier saves the archive to the vault; otherwise, it returns an error, and the operation fails. The <a>ListParts</a> operation returns a list of parts uploaded for a specific multipart upload. It includes checksum information for each uploaded part that can be used to debug a bad checksum issue. Additionally, Glacier also checks for any missing content ranges when assembling the archive, if missing content ranges are found, Glacier returns an error and the operation fails. Complete Multipart Upload is an idempotent operation. After your first successful complete multipart upload, if you call the operation again within a short period, the operation will succeed and return the same archive ID. This is useful in the event you experience a network issue that causes an aborted connection or receive a 500 server error, in which case you can repeat your Complete Multipart Upload request and get the same archive ID without creating duplicate archives. Note, however, that after the multipart upload completes, you cannot call the List Parts operation and the multipart upload will not appear in List Multipart Uploads response, even if idempotent complete is possible. An AWS account has full permission to perform all operations (actions). However, AWS Identity and Access Management (IAM) users don't have any permissions by default. You must grant them explicit permission to perform specific actions. For more information, see <a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/using-iam-with-amazon-glacier.html">Access Control Using AWS Identity and Access Management (IAM)</a>.  For conceptual information and underlying REST API, see <a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/uploading-archive-mpu.html">Uploading Large Archives in Parts (Multipart Upload)</a> and <a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/api-multipart-complete-upload.html">Complete Multipart Upload</a> in the <i>Amazon Glacier Developer Guide</i>. 

        :param self:
        :param checksum:  The SHA256 tree hash of the entire archive. It is the tree hash of SHA256 tree hash of the individual parts. If the value you specify in the request does not match the SHA256 tree hash of the final assembled archive as computed by Amazon S3 Glacier (Glacier), Glacier returns an error and the request fails.<br/>archiveSize:  The total size, in bytes, of the entire archive. This value should be the sum of all the sizes of the individual parts that you uploaded.<br/>uploadId:  The upload ID of the multipart upload.<br/>vaultName:  The name of the vault.<br/>accountId:  The <code>AccountId</code> value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '<code>-</code>' (hyphen), in which case Amazon S3 Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID.<br/>
        :return: archiveId:  The ID of the archive. This value is also included as part of the location.<br/>checksum:  The checksum of the archive computed by Amazon S3 Glacier.<br/>location:  The relative URI path of the newly added archive resource.<br/>        """
        pass

    def complete_vault_lock(self, lockId: str, vaultName: str, accountId: str):
        r"""This operation completes the vault locking process by transitioning the vault lock from the <code>InProgress</code> state to the <code>Locked</code> state, which causes the vault lock policy to become unchangeable. A vault lock is put into the <code>InProgress</code> state by calling <a>InitiateVaultLock</a>. You can obtain the state of the vault lock by calling <a>GetVaultLock</a>. For more information about the vault locking process, <a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/vault-lock.html">Amazon Glacier Vault Lock</a>.  This operation is idempotent. This request is always successful if the vault lock is in the <code>Locked</code> state and the provided lock ID matches the lock ID originally used to lock the vault. If an invalid lock ID is passed in the request when the vault lock is in the <code>Locked</code> state, the operation returns an <code>AccessDeniedException</code> error. If an invalid lock ID is passed in the request when the vault lock is in the <code>InProgress</code> state, the operation throws an <code>InvalidParameter</code> error.

        :param self:
        :param lockId:  The <code>lockId</code> value is the lock ID obtained from a <a>InitiateVaultLock</a> request.<br/>vaultName:  The name of the vault.<br/>accountId:  The <code>AccountId</code> value is the AWS account ID. This value must match the AWS account ID associated with the credentials used to sign the request. You can either specify an AWS account ID or optionally a single '<code>-</code>' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you specify your account ID, do not include any hyphens ('-') in the ID.<br/>
        :return:         """
        pass

    def create_vault(self, vaultName: str, accountId: str) -> CreateVaultOutput:
        r"""This operation creates a new vault with the specified name. The name of the vault must be unique within a region for an AWS account. You can create up to 1,000 vaults per account. If you need to create more vaults, contact Amazon S3 Glacier. You must use the following guidelines when naming a vault. <ul> <li> Names can be between 1 and 255 characters long. </li> <li> Allowed characters are a-z, A-Z, 0-9, '_' (underscore), '-' (hyphen), and '.' (period). </li> </ul> This operation is idempotent. An AWS account has full permission to perform all operations (actions). However, AWS Identity and Access Management (IAM) users don't have any permissions by default. You must grant them explicit permission to perform specific actions. For more information, see <a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/using-iam-with-amazon-glacier.html">Access Control Using AWS Identity and Access Management (IAM)</a>.  For conceptual information and underlying REST API, see <a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/creating-vaults.html">Creating a Vault in Amazon Glacier</a> and <a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/api-vault-put.html">Create Vault </a> in the <i>Amazon Glacier Developer Guide</i>. 

        :param self:
        :param vaultName:  The name of the vault.<br/>accountId:  The <code>AccountId</code> value is the AWS account ID. This value must match the AWS account ID associated with the credentials used to sign the request. You can either specify an AWS account ID or optionally a single '<code>-</code>' (hyphen), in which case Amazon S3 Glacier uses the AWS account ID associated with the credentials used to sign the request. If you specify your account ID, do not include any hyphens ('-') in the ID.<br/>
        :return: location:  The URI of the vault that was created.<br/>        """
        pass

    def delete_archive(self, archiveId: str, vaultName: str, accountId: str):
        r"""This operation deletes an archive from a vault. Subsequent requests to initiate a retrieval of this archive will fail. Archive retrievals that are in progress for this archive ID may or may not succeed according to the following scenarios: <ul> <li> If the archive retrieval job is actively preparing the data for download when Amazon S3 Glacier receives the delete archive request, the archival retrieval operation might fail. </li> <li> If the archive retrieval job has successfully prepared the archive for download when Amazon S3 Glacier receives the delete archive request, you will be able to download the output. </li> </ul> This operation is idempotent. Attempting to delete an already-deleted archive does not result in an error. An AWS account has full permission to perform all operations (actions). However, AWS Identity and Access Management (IAM) users don't have any permissions by default. You must grant them explicit permission to perform specific actions. For more information, see <a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/using-iam-with-amazon-glacier.html">Access Control Using AWS Identity and Access Management (IAM)</a>.  For conceptual information and underlying REST API, see <a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/deleting-an-archive.html">Deleting an Archive in Amazon Glacier</a> and <a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/api-archive-delete.html">Delete Archive</a> in the <i>Amazon Glacier Developer Guide</i>. 

        :param self:
        :param archiveId:  The ID of the archive to delete.<br/>vaultName:  The name of the vault.<br/>accountId:  The <code>AccountId</code> value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '<code>-</code>' (hyphen), in which case Amazon S3 Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID.<br/>
        :return:         """
        pass

    def delete_vault(self, vaultName: str, accountId: str):
        r"""This operation deletes a vault. Amazon S3 Glacier will delete a vault only if there are no archives in the vault as of the last inventory and there have been no writes to the vault since the last inventory. If either of these conditions is not satisfied, the vault deletion fails (that is, the vault is not removed) and Amazon S3 Glacier returns an error. You can use <a>DescribeVault</a> to return the number of archives in a vault, and you can use <a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/api-initiate-job-post.html">Initiate a Job (POST jobs)</a> to initiate a new inventory retrieval for a vault. The inventory contains the archive IDs you use to delete archives using <a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/api-archive-delete.html">Delete Archive (DELETE archive)</a>. This operation is idempotent. An AWS account has full permission to perform all operations (actions). However, AWS Identity and Access Management (IAM) users don't have any permissions by default. You must grant them explicit permission to perform specific actions. For more information, see <a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/using-iam-with-amazon-glacier.html">Access Control Using AWS Identity and Access Management (IAM)</a>.  For conceptual information and underlying REST API, see <a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/deleting-vaults.html">Deleting a Vault in Amazon Glacier</a> and <a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/api-vault-delete.html">Delete Vault </a> in the <i>Amazon S3 Glacier Developer Guide</i>. 

        :param self:
        :param vaultName:  The name of the vault.<br/>accountId:  The <code>AccountId</code> value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '<code>-</code>' (hyphen), in which case Amazon S3 Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID.<br/>
        :return:         """
        pass

    def delete_vault_access_policy(self, vaultName: str, accountId: str):
        r"""This operation deletes the access policy associated with the specified vault. The operation is eventually consistent; that is, it might take some time for Amazon S3 Glacier to completely remove the access policy, and you might still see the effect of the policy for a short time after you send the delete request. This operation is idempotent. You can invoke delete multiple times, even if there is no policy associated with the vault. For more information about vault access policies, see <a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/vault-access-policy.html">Amazon Glacier Access Control with Vault Access Policies</a>. 

        :param self:
        :param vaultName:  The name of the vault.<br/>accountId:  The <code>AccountId</code> value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '<code>-</code>' (hyphen), in which case Amazon S3 Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID. <br/>
        :return:         """
        pass

    def delete_vault_notifications(self, vaultName: str, accountId: str):
        r"""This operation deletes the notification configuration set for a vault. The operation is eventually consistent; that is, it might take some time for Amazon S3 Glacier to completely disable the notifications and you might still receive some notifications for a short time after you send the delete request. An AWS account has full permission to perform all operations (actions). However, AWS Identity and Access Management (IAM) users don't have any permissions by default. You must grant them explicit permission to perform specific actions. For more information, see <a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/using-iam-with-amazon-glacier.html">Access Control Using AWS Identity and Access Management (IAM)</a>.  For conceptual information and underlying REST API, see <a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/configuring-notifications.html">Configuring Vault Notifications in Amazon S3 Glacier</a> and <a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/api-vault-notifications-delete.html">Delete Vault Notification Configuration </a> in the Amazon S3 Glacier Developer Guide. 

        :param self:
        :param vaultName:  The name of the vault.<br/>accountId:  The <code>AccountId</code> value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '<code>-</code>' (hyphen), in which case Amazon S3 Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID. <br/>
        :return:         """
        pass

    def describe_job(self, jobId: str, vaultName: str, accountId: str) -> GlacierJobDescription:
        r"""This operation returns information about a job you previously initiated, including the job initiation date, the user who initiated the job, the job status code/message and the Amazon SNS topic to notify after Amazon S3 Glacier (Glacier) completes the job. For more information about initiating a job, see <a>InitiateJob</a>.  <note> This operation enables you to check the status of your job. However, it is strongly recommended that you set up an Amazon SNS topic and specify it in your initiate job request so that Glacier can notify the topic after it completes the job. </note> A job ID will not expire for at least 24 hours after Glacier completes the job. An AWS account has full permission to perform all operations (actions). However, AWS Identity and Access Management (IAM) users don't have any permissions by default. You must grant them explicit permission to perform specific actions. For more information, see <a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/using-iam-with-amazon-glacier.html">Access Control Using AWS Identity and Access Management (IAM)</a>.  For more information about using this operation, see the documentation for the underlying REST API <a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/api-describe-job-get.html">Describe Job</a> in the <i>Amazon Glacier Developer Guide</i>. 

        :param self:
        :param jobId:  The ID of the job to describe.<br/>vaultName:  The name of the vault.<br/>accountId:  The <code>AccountId</code> value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '<code>-</code>' (hyphen), in which case Amazon S3 Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID. <br/>
        :return: OutputLocation:  Contains the location where the data from the select job is stored.:<br/>SelectParameters:  Contains the parameters used for a select.:<br/>JobOutputPath:  Contains the job output location.<br/>InventoryRetrievalParameters:  Parameters used for range inventory retrieval.:<br/>Tier:  The tier to use for a select or an archive retrieval. Valid values are <code>Expedited</code>, <code>Standard</code>, or <code>Bulk</code>. <code>Standard</code> is the default.<br/>RetrievalByteRange:  The retrieved byte range for archive retrieval jobs in the form <i>StartByteValue</i>-<i>EndByteValue</i>. If no range was specified in the archive retrieval, then the whole archive is retrieved. In this case, <i>StartByteValue</i> equals 0 and <i>EndByteValue</i> equals the size of the archive minus 1. For inventory retrieval or select jobs, this field is null. <br/>ArchiveSHA256TreeHash:  The SHA256 tree hash of the entire archive for an archive retrieval. For inventory retrieval or select jobs, this field is null.<br/>SHA256TreeHash:  For an archive retrieval job, this value is the checksum of the archive. Otherwise, this value is null. The SHA256 tree hash value for the requested range of an archive. If the <b>InitiateJob</b> request for an archive specified a tree-hash aligned range, then this field returns a value. If the whole archive is retrieved, this value is the same as the ArchiveSHA256TreeHash value. This field is null for the following: <ul> <li> Archive retrieval jobs that specify a range that is not tree-hash aligned </li> </ul> <ul> <li> Archival jobs that specify a range that is equal to the whole archive, when the job status is <code>InProgress</code>  </li> </ul> <ul> <li> Inventory jobs </li> <li> Select jobs </li> </ul><br/>CompletionDate:  The UTC time that the job request completed. While the job is in progress, the value is null.<br/>SNSTopic:  An Amazon SNS topic that receives notification.<br/>InventorySizeInBytes:  For an inventory retrieval job, this value is the size in bytes of the inventory requested for download. For an archive retrieval or select job, this value is null.<br/>ArchiveSizeInBytes:  For an archive retrieval job, this value is the size in bytes of the archive being requested for download. For an inventory retrieval or select job, this value is null.<br/>StatusMessage:  A friendly message that describes the job status.<br/>StatusCode:  The status code can be <code>InProgress</code>, <code>Succeeded</code>, or <code>Failed</code>, and indicates the status of the job.<br/>Completed:  The job status. When a job is completed, you get the job's output using Get Job Output (GET output).<br/>CreationDate:  The UTC date when the job was created. This value is a string representation of ISO 8601 date format, for example <code>"2012-03-20T17:03:43.221Z"</code>.<br/>VaultARN:  The Amazon Resource Name (ARN) of the vault from which an archive retrieval was requested.<br/>ArchiveId:  The archive ID requested for a select job or archive retrieval. Otherwise, this field is null.<br/>Action:  The job type. This value is either <code>ArchiveRetrieval</code>, <code>InventoryRetrieval</code>, or <code>Select</code>. <br/>JobDescription:  The job description provided when initiating the job.<br/>JobId:  An opaque string that identifies an Amazon S3 Glacier job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Marker</i> An opaque string that represents where to continue pagination of the vault inventory retrieval results. You use the marker in a new <b>InitiateJob</b> request to obtain additional inventory items. If there are no more inventory items, this value is <code>null</code>. For more information, see <a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/api-initiate-job-post.html#api-initiate-job-post-vault-inventory-list-filtering"> Range Inventory Retrieval</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Limit</i> The maximum number of inventory items returned per vault inventory retrieval request. This limit is set when initiating the job with the a <b>InitiateJob</b> request. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndDate</i> The end of the date range in UTC for vault inventory retrieval that includes archives created before this date. This value should be a string in the ISO 8601 date format, for example <code>2013-03-20T17:03:43Z</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StartDate</i> The start of the date range in Universal Coordinated Time (UTC) for vault inventory retrieval that includes archives created on or after this date. This value should be a string in the ISO 8601 date format, for example <code>2013-03-20T17:03:43Z</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Format</i> The output format for the vault inventory list, which is set by the <b>InitiateJob</b> request when initiating a job to retrieve a vault inventory. Valid values are <code>CSV</code> and <code>JSON</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OutputSerialization</i> Describes how the results of the select job are serialized.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>OutputSerialization</b>: Describes how the results of the select job are serialized.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Expression</i> The expression that is used to select the object.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExpressionType</i> The type of the provided expression, for example <code>SQL</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InputSerialization</i> Describes the serialization format of the object.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>InputSerialization</b>: Describes the serialization format of the object.<br/>Describes the serialization of a CSV-encoded object.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>csv</b>: Describes the serialization of a CSV-encoded object.Describes the serialization of CSV-encoded query results.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>csv</b>: Describes the serialization of CSV-encoded query results.&nbsp;&nbsp;&nbsp;&nbsp; <i>S3</i> Describes an S3 location that will receive the results of the job request.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3</b>: Describes an S3 location that will receive the results of the job request.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Prefix</i> The prefix that is prepended to the results for this request.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BucketName</i> The name of the Amazon S3 bucket where the job results are stored.<br/>Contains information about the encryption used to store the job results in Amazon S3.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Encryption</b>: Contains information about the encryption used to store the job results in Amazon S3.        """
        pass

    def describe_vault(self, vaultName: str, accountId: str) -> DescribeVaultOutput:
        r"""This operation returns information about a vault, including the vault's Amazon Resource Name (ARN), the date the vault was created, the number of archives it contains, and the total size of all the archives in the vault. The number of archives and their total size are as of the last inventory generation. This means that if you add or remove an archive from a vault, and then immediately use Describe Vault, the change in contents will not be immediately reflected. If you want to retrieve the latest inventory of the vault, use <a>InitiateJob</a>. Amazon S3 Glacier generates vault inventories approximately daily. For more information, see <a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/vault-inventory.html">Downloading a Vault Inventory in Amazon S3 Glacier</a>.  An AWS account has full permission to perform all operations (actions). However, AWS Identity and Access Management (IAM) users don't have any permissions by default. You must grant them explicit permission to perform specific actions. For more information, see <a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/using-iam-with-amazon-glacier.html">Access Control Using AWS Identity and Access Management (IAM)</a>. For conceptual information and underlying REST API, see <a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/retrieving-vault-info.html">Retrieving Vault Metadata in Amazon S3 Glacier</a> and <a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/api-vault-get.html">Describe Vault </a> in the <i>Amazon Glacier Developer Guide</i>. 

        :param self:
        :param vaultName:  The name of the vault.<br/>accountId:  The <code>AccountId</code> value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '<code>-</code>' (hyphen), in which case Amazon S3 Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID. <br/>
        :return: SizeInBytes:  Total size, in bytes, of the archives in the vault as of the last inventory date. This field will return null if an inventory has not yet run on the vault, for example if you just created the vault.<br/>NumberOfArchives:  The number of archives in the vault as of the last inventory date. This field will return <code>null</code> if an inventory has not yet run on the vault, for example if you just created the vault.<br/>LastInventoryDate:  The Universal Coordinated Time (UTC) date when Amazon S3 Glacier completed the last vault inventory. This value should be a string in the ISO 8601 date format, for example <code>2012-03-20T17:03:43.221Z</code>.<br/>CreationDate:  The Universal Coordinated Time (UTC) date when the vault was created. This value should be a string in the ISO 8601 date format, for example <code>2012-03-20T17:03:43.221Z</code>.<br/>VaultName:  The name of the vault.<br/>VaultARN:  The Amazon Resource Name (ARN) of the vault.<br/>        """
        pass

    def get_data_retrieval_policy(self, accountId: str) -> GetDataRetrievalPolicyOutput:
        r"""This operation returns the current data retrieval policy for the account and region specified in the GET request. For more information about data retrieval policies, see <a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/data-retrieval-policy.html">Amazon Glacier Data Retrieval Policies</a>.

        :param self:
        :param accountId:  The <code>AccountId</code> value is the AWS account ID. This value must match the AWS account ID associated with the credentials used to sign the request. You can either specify an AWS account ID or optionally a single '<code>-</code>' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you specify your account ID, do not include any hyphens ('-') in the ID. <br/>
        :return: Policy:  Contains the returned data retrieval policy in JSON format.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Rules</i> The policy rule. Although this is a list type, currently there must be only one rule, which contains a Strategy field and optionally a BytesPerHour field.<br/>        """
        pass

    def get_job_output(self, jobId: str, vaultName: str, accountId: str, range: str=None) -> GetJobOutputOutput:
        r"""This operation downloads the output of the job you initiated using <a>InitiateJob</a>. Depending on the job type you specified when you initiated the job, the output will be either the content of an archive or a vault inventory. You can download all the job output or download a portion of the output by specifying a byte range. In the case of an archive retrieval job, depending on the byte range you specify, Amazon S3 Glacier (Glacier) returns the checksum for the portion of the data. You can compute the checksum on the client and verify that the values match to ensure the portion you downloaded is the correct data. A job ID will not expire for at least 24 hours after Glacier completes the job. That a byte range. For both archive and inventory retrieval jobs, you should verify the downloaded size against the size returned in the headers from the <b>Get Job Output</b> response. For archive retrieval jobs, you should also verify that the size is what you expected. If you download a portion of the output, the expected size is based on the range of bytes you specified. For example, if you specify a range of <code>bytes=0-1048575</code>, you should verify your download size is 1,048,576 bytes. If you download an entire archive, the expected size is the size of the archive when you uploaded it to Amazon S3 Glacier The expected size is also returned in the headers from the <b>Get Job Output</b> response. In the case of an archive retrieval job, depending on the byte range you specify, Glacier returns the checksum for the portion of the data. To ensure the portion you downloaded is the correct data, compute the checksum on the client, verify that the values match, and verify that the size is what you expected. A job ID does not expire for at least 24 hours after Glacier completes the job. That is, you can download the job output within the 24 hours period after Amazon Glacier completes the job. An AWS account has full permission to perform all operations (actions). However, AWS Identity and Access Management (IAM) users don't have any permissions by default. You must grant them explicit permission to perform specific actions. For more information, see <a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/using-iam-with-amazon-glacier.html">Access Control Using AWS Identity and Access Management (IAM)</a>. For conceptual information and the underlying REST API, see <a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/vault-inventory.html">Downloading a Vault Inventory</a>, <a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/downloading-an-archive.html">Downloading an Archive</a>, and <a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/api-job-output-get.html">Get Job Output </a> 

        :param self:
        :param range:  The range of bytes to retrieve from the output. For example, if you want to download the first 1,048,576 bytes, specify the range as <code>bytes=0-1048575</code>. By default, this operation downloads the entire output. If the job output is large, then you can use a range to retrieve a portion of the output. This allows you to download the entire output in smaller chunks of bytes. For example, suppose you have 1 GB of job output you want to download and you decide to download 128 MB chunks of data at a time, which is a total of eight Get Job Output requests. You use the following process to download the job output: <ol> <li> Download a 128 MB chunk of output by specifying the appropriate byte range. Verify that all 128 MB of data was received. </li> <li> Along with the data, the response includes a SHA256 tree hash of the payload. You compute the checksum of the payload on the client and compare it with the checksum you received in the response to ensure you received all the expected data. </li> <li> Repeat steps 1 and 2 for all the eight 128 MB chunks of output data, each time specifying the appropriate byte range. </li> <li> After downloading all the parts of the job output, you have a list of eight checksum values. Compute the tree hash of these values to find the checksum of the entire output. Using the <a>DescribeJob</a> API, obtain job information of the job that provided you the output. The response includes the checksum of the entire archive stored in Amazon S3 Glacier. You compare this value with the checksum you computed to ensure you have downloaded the entire archive content with no errors. <p/> </li> </ol><br/>jobId:  The job ID whose data is downloaded.<br/>vaultName:  The name of the vault.<br/>accountId:  The <code>AccountId</code> value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '<code>-</code>' (hyphen), in which case Amazon S3 Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID.<br/>
        :return: archiveDescription:  The description of an archive.<br/>contentType:  The Content-Type depends on whether the job output is an archive or a vault inventory. For archive data, the Content-Type is application/octet-stream. For vault inventory, if you requested CSV format when you initiated the job, the Content-Type is text/csv. Otherwise, by default, vault inventory is returned as JSON, and the Content-Type is application/json.<br/>acceptRanges:  Indicates the range units accepted. For more information, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html">RFC2616</a>. <br/>contentRange:  The range of bytes returned by Amazon S3 Glacier. If only partial output is downloaded, the response provides the range of bytes Amazon S3 Glacier returned. For example, bytes 0-1048575/8388608 returns the first 1 MB from 8 MB.<br/>status:  The HTTP response code for a job output request. The value depends on whether a range was specified in the request.<br/>checksum:  The checksum of the data in the response. This header is returned only when retrieving the output for an archive retrieval job. Furthermore, this header appears only under the following conditions: <ul> <li> You get the entire range of the archive. </li> <li> You request a range to return of the archive that starts and ends on a multiple of 1 MB. For example, if you have an 3.1 MB archive and you specify a range to return that starts at 1 MB and ends at 2 MB, then the x-amz-sha256-tree-hash is returned as a response header. </li> <li> You request a range of the archive to return that starts on a multiple of 1 MB and goes to the end of the archive. For example, if you have a 3.1 MB archive and you specify a range that starts at 2 MB and ends at 3.1 MB (the end of the archive), then the x-amz-sha256-tree-hash is returned as a response header. </li> </ul><br/>body:  The job data, either archive data or inventory data.<br/>        """
        pass

    def get_vault_access_policy(self, vaultName: str, accountId: str) -> GetVaultAccessPolicyOutput:
        r"""This operation retrieves the <code>access-policy</code> subresource set on the vault; for more information on setting this subresource, see <a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/api-SetVaultAccessPolicy.html">Set Vault Access Policy (PUT access-policy)</a>. If there is no access policy set on the vault, the operation returns a <code>404 Not found</code> error. For more information about vault access policies, see <a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/vault-access-policy.html">Amazon Glacier Access Control with Vault Access Policies</a>.

        :param self:
        :param vaultName:  The name of the vault.<br/>accountId:  The <code>AccountId</code> value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '<code>-</code>' (hyphen), in which case Amazon S3 Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID.<br/>
        :return: policy:  Contains the returned vault access policy as a JSON string.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Policy</i> The vault access policy.<br/>        """
        pass

    def get_vault_lock(self, vaultName: str, accountId: str) -> GetVaultLockOutput:
        r"""This operation retrieves the following attributes from the <code>lock-policy</code> subresource set on the specified vault:  <ul> <li> The vault lock policy set on the vault. </li> <li> The state of the vault lock, which is either <code>InProgess</code> or <code>Locked</code>. </li> <li> When the lock ID expires. The lock ID is used to complete the vault locking process. </li> <li> When the vault lock was initiated and put into the <code>InProgress</code> state. </li> </ul> A vault lock is put into the <code>InProgress</code> state by calling <a>InitiateVaultLock</a>. A vault lock is put into the <code>Locked</code> state by calling <a>CompleteVaultLock</a>. You can abort the vault locking process by calling <a>AbortVaultLock</a>. For more information about the vault locking process, <a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/vault-lock.html">Amazon Glacier Vault Lock</a>.  If there is no vault lock policy set on the vault, the operation returns a <code>404 Not found</code> error. For more information about vault lock policies, <a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/vault-lock-policy.html">Amazon Glacier Access Control with Vault Lock Policies</a>. 

        :param self:
        :param vaultName:  The name of the vault.<br/>accountId:  The <code>AccountId</code> value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '<code>-</code>' (hyphen), in which case Amazon S3 Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID.<br/>
        :return: CreationDate:  The UTC date and time at which the vault lock was put into the <code>InProgress</code> state.<br/>ExpirationDate:  The UTC date and time at which the lock ID expires. This value can be <code>null</code> if the vault lock is in a <code>Locked</code> state.<br/>State:  The state of the vault lock. <code>InProgress</code> or <code>Locked</code>.<br/>Policy:  The vault lock policy as a JSON string, which uses "\" as an escape character.<br/>        """
        pass

    def get_vault_notifications(self, vaultName: str, accountId: str) -> GetVaultNotificationsOutput:
        r"""This operation retrieves the <code>notification-configuration</code> subresource of the specified vault. For information about setting a notification configuration on a vault, see <a>SetVaultNotifications</a>. If a notification configuration for a vault is not set, the operation returns a <code>404 Not Found</code> error. For more information about vault notifications, see <a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/configuring-notifications.html">Configuring Vault Notifications in Amazon S3 Glacier</a>.  An AWS account has full permission to perform all operations (actions). However, AWS Identity and Access Management (IAM) users don't have any permissions by default. You must grant them explicit permission to perform specific actions. For more information, see <a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/using-iam-with-amazon-glacier.html">Access Control Using AWS Identity and Access Management (IAM)</a>. For conceptual information and underlying REST API, see <a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/configuring-notifications.html">Configuring Vault Notifications in Amazon S3 Glacier</a> and <a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/api-vault-notifications-get.html">Get Vault Notification Configuration </a> in the <i>Amazon Glacier Developer Guide</i>. 

        :param self:
        :param vaultName:  The name of the vault.<br/>accountId:  The <code>AccountId</code> value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '<code>-</code>' (hyphen), in which case Amazon S3 Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID.<br/>
        :return: vaultNotificationConfig:  Returns the notification configuration set on the vault.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Events</i> A list of one or more events for which Amazon S3 Glacier will send a notification to the specified Amazon SNS topic.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SNSTopic</i> The Amazon Simple Notification Service (Amazon SNS) topic Amazon Resource Name (ARN).<br/>        """
        pass

    def initiate_job(self, vaultName: str, accountId: str, jobParameters: JobParameters=None) -> InitiateJobOutput:
        r"""This operation initiates a job of the specified type, which can be a select, an archival retrieval, or a vault retrieval. For more information about using this operation, see the documentation for the underlying REST API <a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/api-initiate-job-post.html">Initiate a Job</a>. 

        :param self:
        :param jobParameters:  Provides options for specifying job information.:<br/>vaultName:  The name of the vault.<br/>accountId:  The <code>AccountId</code> value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '<code>-</code>' (hyphen), in which case Amazon S3 Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OutputLocation</i> Contains information about the location where the select job results are stored.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>OutputLocation</b>: Contains information about the location where the select job results are stored.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SelectParameters</i> Contains the parameters that define a job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SelectParameters</b>: Contains the parameters that define a job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InventoryRetrievalParameters</i> Input parameters used for range inventory retrieval.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>InventoryRetrievalParameters</b>: Input parameters used for range inventory retrieval.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tier</i> The tier to use for a select or an archive retrieval job. Valid values are <code>Expedited</code>, <code>Standard</code>, or <code>Bulk</code>. <code>Standard</code> is the default.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RetrievalByteRange</i> The byte range to retrieve for an archive retrieval. in the form "<i>StartByteValue</i>-<i>EndByteValue</i>" If not specified, the whole archive is retrieved. If specified, the byte range must be megabyte (1024*1024) aligned which means that <i>StartByteValue</i> must be divisible by 1 MB and <i>EndByteValue</i> plus 1 must be divisible by 1 MB or be the end of the archive specified as the archive byte size value minus 1. If RetrievalByteRange is not megabyte aligned, this operation returns a 400 response.  An error occurs if you specify this field for an inventory retrieval job request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SNSTopic</i> The Amazon SNS topic ARN to which Amazon S3 Glacier sends a notification when the job is completed and the output is ready for you to download. The specified topic publishes the notification to its subscribers. The SNS topic must exist.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The optional description for the job. The description must be less than or equal to 1,024 bytes. The allowable characters are 7-bit ASCII without control codes-specifically, ASCII values 32-126 decimal or 0x20-0x7E hexadecimal.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ArchiveId</i> The ID of the archive that you want to retrieve. This field is required only if <code>Type</code> is set to <code>select</code> or <code>archive-retrieval</code>code&gt;. An error occurs if you specify this request parameter for an inventory retrieval job request. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The job type. You can initiate a job to perform a select query on an archive, retrieve an archive, or get an inventory of a vault. Valid values are "select", "archive-retrieval" and "inventory-retrieval".<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Format</i> When initiating a job to retrieve a vault inventory, you can optionally add this parameter to your request to specify the output format. If you are initiating an inventory job and do not specify a Format field, JSON is the default format. Valid values are "CSV" and "JSON".<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Marker</i> An opaque string that represents where to continue pagination of the vault inventory retrieval results. You use the marker in a new <b>InitiateJob</b> request to obtain additional inventory items. If there are no more inventory items, this value is <code>null</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Limit</i> Specifies the maximum number of inventory items returned per vault inventory retrieval request. Valid values are greater than or equal to 1.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EndDate</i> The end of the date range in UTC for vault inventory retrieval that includes archives created before this date. This value should be a string in the ISO 8601 date format, for example <code>2013-03-20T17:03:43Z</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StartDate</i> The start of the date range in UTC for vault inventory retrieval that includes archives created on or after this date. This value should be a string in the ISO 8601 date format, for example <code>2013-03-20T17:03:43Z</code>.<br/>Describes the serialization format of the object.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>InputSerialization</b>: Describes the serialization format of the object.Describes an S3 location that will receive the results of the job request.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3</b>: Describes an S3 location that will receive the results of the job request.
        :return: jobOutputPath:  The path to the location of where the select results are stored.<br/>jobId:  The ID of the job.<br/>location:  The relative URI path of the job.<br/>        """
        pass

    def initiate_multipart_upload(self, vaultName: str, accountId: str, archiveDescription: str=None, partSize: str=None) -> InitiateMultipartUploadOutput:
        r"""This operation initiates a multipart upload. Amazon S3 Glacier creates a multipart upload resource and returns its ID in the response. The multipart upload ID is used in subsequent requests to upload parts of an archive (see <a>UploadMultipartPart</a>). When you initiate a multipart upload, you specify the part size in number of bytes. The part size must be a megabyte (1024 KB) multiplied by a power of 2-for example, 1048576 (1 MB), 2097152 (2 MB), 4194304 (4 MB), 8388608 (8 MB), and so on. The minimum allowable part size is 1 MB, and the maximum is 4 GB. Every part you upload to this resource (see <a>UploadMultipartPart</a>), except the last one, must have the same size. The last one can be the same size or smaller. For example, suppose you want to upload a 16.2 MB file. If you initiate the multipart upload with a part size of 4 MB, you will upload four parts of 4 MB each and one part of 0.2 MB.  <note> You don't need to know the size of the archive when you start a multipart upload because Amazon S3 Glacier does not require you to specify the overall archive size. </note> After you complete the multipart upload, Amazon S3 Glacier (Glacier) removes the multipart upload resource referenced by the ID. Glacier also removes the multipart upload resource if you cancel the multipart upload or it may be removed if there is no activity for a period of 24 hours. An AWS account has full permission to perform all operations (actions). However, AWS Identity and Access Management (IAM) users don't have any permissions by default. You must grant them explicit permission to perform specific actions. For more information, see <a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/using-iam-with-amazon-glacier.html">Access Control Using AWS Identity and Access Management (IAM)</a>. For conceptual information and underlying REST API, see <a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/uploading-archive-mpu.html">Uploading Large Archives in Parts (Multipart Upload)</a> and <a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/api-multipart-initiate-upload.html">Initiate Multipart Upload</a> in the <i>Amazon Glacier Developer Guide</i>.

        :param self:
        :param partSize:  The size of each part except the last, in bytes. The last part can be smaller than this part size.<br/>archiveDescription:  The archive description that you are uploading in parts. The part size must be a megabyte (1024 KB) multiplied by a power of 2, for example 1048576 (1 MB), 2097152 (2 MB), 4194304 (4 MB), 8388608 (8 MB), and so on. The minimum allowable part size is 1 MB, and the maximum is 4 GB (4096 MB).<br/>vaultName:  The name of the vault.<br/>accountId:  The <code>AccountId</code> value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '<code>-</code>' (hyphen), in which case Amazon S3 Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID. <br/>
        :return: uploadId:  The ID of the multipart upload. This value is also included as part of the location.<br/>location:  The relative URI path of the multipart upload ID Amazon S3 Glacier created.<br/>        """
        pass

    def initiate_vault_lock(self, vaultName: str, accountId: str, policy: VaultLockPolicy=None) -> InitiateVaultLockOutput:
        r"""This operation initiates the vault locking process by doing the following: <ul> <li> Installing a vault lock policy on the specified vault. </li> <li> Setting the lock state of vault lock to <code>InProgress</code>. </li> <li> Returning a lock ID, which is used to complete the vault locking process. </li> </ul> You can set one vault lock policy for each vault and this policy can be up to 20 KB in size. For more information about vault lock policies, see <a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/vault-lock-policy.html">Amazon Glacier Access Control with Vault Lock Policies</a>.  You must complete the vault locking process within 24 hours after the vault lock enters the <code>InProgress</code> state. After the 24 hour window ends, the lock ID expires, the vault automatically exits the <code>InProgress</code> state, and the vault lock policy is removed from the vault. You call <a>CompleteVaultLock</a> to complete the vault locking process by setting the state of the vault lock to <code>Locked</code>.  After a vault lock is in the <code>Locked</code> state, you cannot initiate a new vault lock for the vault. You can abort the vault locking process by calling <a>AbortVaultLock</a>. You can get the state of the vault lock by calling <a>GetVaultLock</a>. For more information about the vault locking process, <a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/vault-lock.html">Amazon Glacier Vault Lock</a>. If this operation is called when the vault lock is in the <code>InProgress</code> state, the operation returns an <code>AccessDeniedException</code> error. When the vault lock is in the <code>InProgress</code> state you must call <a>AbortVaultLock</a> before you can initiate a new vault lock policy. 

        :param self:
        :param policy:  The vault lock policy as a JSON string, which uses "\" as an escape character.:<br/>vaultName:  The name of the vault.<br/>accountId:  The <code>AccountId</code> value is the AWS account ID. This value must match the AWS account ID associated with the credentials used to sign the request. You can either specify an AWS account ID or optionally a single '<code>-</code>' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you specify your account ID, do not include any hyphens ('-') in the ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Policy</i> The vault lock policy.<br/>
        :return: lockId:  The lock ID, which is used to complete the vault locking process.<br/>        """
        pass

    def list_jobs(self, vaultName: str, accountId: str, limit: str=None, marker: str=None, statuscode: str=None, completed: str=None) -> ListJobsOutput:
        r"""This operation lists jobs for a vault, including jobs that are in-progress and jobs that have recently finished. The List Job operation returns a list of these jobs sorted by job initiation time. <note> Amazon Glacier retains recently completed jobs for a period before deleting them; however, it eventually removes completed jobs. The output of completed jobs can be retrieved. Retaining completed jobs for a period of time after they have completed enables you to get a job output in the event you miss the job completion notification or your first attempt to download it fails. For example, suppose you start an archive retrieval job to download an archive. After the job completes, you start to download the archive but encounter a network error. In this scenario, you can retry and download the archive while the job exists. </note> The List Jobs operation supports pagination. You should always check the response <code>Marker</code> field. If there are no more jobs to list, the <code>Marker</code> field is set to <code>null</code>. If there are more jobs to list, the <code>Marker</code> field is set to a non-null value, which you can use to continue the pagination of the list. To return a list of jobs that begins at a specific job, set the marker request parameter to the <code>Marker</code> value for that job that you obtained from a previous List Jobs request. You can set a maximum limit for the number of jobs returned in the response by specifying the <code>limit</code> parameter in the request. The default limit is 50. The number of jobs returned might be fewer than the limit, but the number of returned jobs never exceeds the limit. Additionally, you can filter the jobs list returned by specifying the optional <code>statuscode</code> parameter or <code>completed</code> parameter, or both. Using the <code>statuscode</code> parameter, you can specify to return only jobs that match either the <code>InProgress</code>, <code>Succeeded</code>, or <code>Failed</code> status. Using the <code>completed</code> parameter, you can specify to return only jobs that were completed (<code>true</code>) or jobs that were not completed (<code>false</code>). For more information about using this operation, see the documentation for the underlying REST API <a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/api-jobs-get.html">List Jobs</a>. 

        :param self:
        :param completed:  The state of the jobs to return. You can specify <code>true</code> or <code>false</code>.<br/>statuscode:  The type of job status to return. You can specify the following values: <code>InProgress</code>, <code>Succeeded</code>, or <code>Failed</code>.<br/>marker:  An opaque string used for pagination. This value specifies the job at which the listing of jobs should begin. Get the marker value from a previous List Jobs response. You only need to include the marker if you are continuing the pagination of results started in a previous List Jobs request.<br/>limit:  The maximum number of jobs to be returned. The default limit is 50. The number of jobs returned might be fewer than the specified limit, but the number of returned jobs never exceeds the limit.<br/>vaultName:  The name of the vault.<br/>accountId:  The <code>AccountId</code> value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '<code>-</code>' (hyphen), in which case Amazon S3 Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID. <br/>
        :return: Marker:   An opaque string used for pagination that specifies the job at which the listing of jobs should begin. You get the <code>marker</code> value from a previous List Jobs response. You only need to include the marker if you are continuing the pagination of the results started in a previous List Jobs request. <br/>JobList:  A list of job objects. Each job object contains metadata describing the job.<br/>        """
        pass

    def list_multipart_uploads(self, vaultName: str, accountId: str, marker: str=None, limit: str=None) -> ListMultipartUploadsOutput:
        r"""This operation lists in-progress multipart uploads for the specified vault. An in-progress multipart upload is a multipart upload that has been initiated by an <a>InitiateMultipartUpload</a> request, but has not yet been completed or aborted. The list returned in the List Multipart Upload response has no guaranteed order.  The List Multipart Uploads operation supports pagination. By default, this operation returns up to 50 multipart uploads in the response. You should always check the response for a <code>marker</code> at which to continue the list; if there are no more items the <code>marker</code> is <code>null</code>. To return a list of multipart uploads that begins at a specific upload, set the <code>marker</code> request parameter to the value you obtained from a previous List Multipart Upload request. You can also limit the number of uploads returned in the response by specifying the <code>limit</code> parameter in the request. Note the difference between this operation and listing parts (<a>ListParts</a>). The List Multipart Uploads operation lists all multipart uploads for a vault and does not require a multipart upload ID. The List Parts operation requires a multipart upload ID since parts are associated with a single upload. An AWS account has full permission to perform all operations (actions). However, AWS Identity and Access Management (IAM) users don't have any permissions by default. You must grant them explicit permission to perform specific actions. For more information, see <a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/using-iam-with-amazon-glacier.html">Access Control Using AWS Identity and Access Management (IAM)</a>. For conceptual information and the underlying REST API, see <a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/working-with-archives.html">Working with Archives in Amazon S3 Glacier</a> and <a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/api-multipart-list-uploads.html">List Multipart Uploads </a> in the <i>Amazon Glacier Developer Guide</i>.

        :param self:
        :param limit:  Specifies the maximum number of uploads returned in the response body. If this value is not specified, the List Uploads operation returns up to 50 uploads.<br/>marker:  An opaque string used for pagination. This value specifies the upload at which the listing of uploads should begin. Get the marker value from a previous List Uploads response. You need only include the marker if you are continuing the pagination of results started in a previous List Uploads request.<br/>vaultName:  The name of the vault.<br/>accountId:  The <code>AccountId</code> value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '<code>-</code>' (hyphen), in which case Amazon S3 Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID. <br/>
        :return: Marker:  An opaque string that represents where to continue pagination of the results. You use the marker in a new List Multipart Uploads request to obtain more uploads in the list. If there are no more uploads, this value is <code>null</code>.<br/>UploadsList:  A list of in-progress multipart uploads.<br/>        """
        pass

    def list_parts(self, uploadId: str, vaultName: str, accountId: str, marker: str=None, limit: str=None) -> ListPartsOutput:
        r"""This operation lists the parts of an archive that have been uploaded in a specific multipart upload. You can make this request at any time during an in-progress multipart upload before you complete the upload (see <a>CompleteMultipartUpload</a>. List Parts returns an error for completed uploads. The list returned in the List Parts response is sorted by part range.  The List Parts operation supports pagination. By default, this operation returns up to 50 uploaded parts in the response. You should always check the response for a <code>marker</code> at which to continue the list; if there are no more items the <code>marker</code> is <code>null</code>. To return a list of parts that begins at a specific part, set the <code>marker</code> request parameter to the value you obtained from a previous List Parts request. You can also limit the number of parts returned in the response by specifying the <code>limit</code> parameter in the request.  An AWS account has full permission to perform all operations (actions). However, AWS Identity and Access Management (IAM) users don't have any permissions by default. You must grant them explicit permission to perform specific actions. For more information, see <a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/using-iam-with-amazon-glacier.html">Access Control Using AWS Identity and Access Management (IAM)</a>. For conceptual information and the underlying REST API, see <a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/working-with-archives.html">Working with Archives in Amazon S3 Glacier</a> and <a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/api-multipart-list-parts.html">List Parts</a> in the <i>Amazon Glacier Developer Guide</i>.

        :param self:
        :param limit:  The maximum number of parts to be returned. The default limit is 50. The number of parts returned might be fewer than the specified limit, but the number of returned parts never exceeds the limit.<br/>marker:  An opaque string used for pagination. This value specifies the part at which the listing of parts should begin. Get the marker value from the response of a previous List Parts response. You need only include the marker if you are continuing the pagination of results started in a previous List Parts request.<br/>uploadId:  The upload ID of the multipart upload.<br/>vaultName:  The name of the vault.<br/>accountId:  The <code>AccountId</code> value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '<code>-</code>' (hyphen), in which case Amazon S3 Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID. <br/>
        :return: Marker:  An opaque string that represents where to continue pagination of the results. You use the marker in a new List Parts request to obtain more jobs in the list. If there are no more parts, this value is <code>null</code>.<br/>Parts:  A list of the part sizes of the multipart upload. Each object in the array contains a <code>RangeBytes</code> and <code>sha256-tree-hash</code> name/value pair.<br/>CreationDate:  The UTC time at which the multipart upload was initiated.<br/>PartSizeInBytes:  The part size in bytes. This is the same value that you specified in the Initiate Multipart Upload request.<br/>ArchiveDescription:  The description of the archive that was specified in the Initiate Multipart Upload request.<br/>VaultARN:  The Amazon Resource Name (ARN) of the vault to which the multipart upload was initiated.<br/>MultipartUploadId:  The ID of the upload to which the parts are associated.<br/>        """
        pass

    def list_provisioned_capacity(self, accountId: str) -> ListProvisionedCapacityOutput:
        r"""This operation lists the provisioned capacity units for the specified AWS account.

        :param self:
        :param accountId:  The AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon S3 Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, don't include any hyphens ('-') in the ID. <br/>
        :return: ProvisionedCapacityList:  The response body contains the following JSON fields.<br/>        """
        pass

    def list_tags_for_vault(self, vaultName: str, accountId: str) -> ListTagsForVaultOutput:
        r"""This operation lists all the tags attached to a vault. The operation returns an empty map if there are no tags. For more information about tags, see <a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/tagging.html">Tagging Amazon S3 Glacier Resources</a>.

        :param self:
        :param vaultName:  The name of the vault.<br/>accountId:  The <code>AccountId</code> value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '<code>-</code>' (hyphen), in which case Amazon S3 Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID.<br/>
        :return: Tags:  The tags attached to the vault. Each tag is composed of a key and a value.<br/>        """
        pass

    def list_vaults(self, accountId: str, marker: str=None, limit: str=None) -> ListVaultsOutput:
        r"""This operation lists all vaults owned by the calling user's account. The list returned in the response is ASCII-sorted by vault name. By default, this operation returns up to 10 items. If there are more vaults to list, the response <code>marker</code> field contains the vault Amazon Resource Name (ARN) at which to continue the list with a new List Vaults request; otherwise, the <code>marker</code> field is <code>null</code>. To return a list of vaults that begins at a specific vault, set the <code>marker</code> request parameter to the vault ARN you obtained from a previous List Vaults request. You can also limit the number of vaults returned in the response by specifying the <code>limit</code> parameter in the request.  An AWS account has full permission to perform all operations (actions). However, AWS Identity and Access Management (IAM) users don't have any permissions by default. You must grant them explicit permission to perform specific actions. For more information, see <a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/using-iam-with-amazon-glacier.html">Access Control Using AWS Identity and Access Management (IAM)</a>. For conceptual information and underlying REST API, see <a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/retrieving-vault-info.html">Retrieving Vault Metadata in Amazon S3 Glacier</a> and <a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/api-vaults-get.html">List Vaults </a> in the <i>Amazon Glacier Developer Guide</i>. 

        :param self:
        :param limit:  The maximum number of vaults to be returned. The default limit is 10. The number of vaults returned might be fewer than the specified limit, but the number of returned vaults never exceeds the limit.<br/>marker:  A string used for pagination. The marker specifies the vault ARN after which the listing of vaults should begin.<br/>accountId:  The <code>AccountId</code> value is the AWS account ID. This value must match the AWS account ID associated with the credentials used to sign the request. You can either specify an AWS account ID or optionally a single '<code>-</code>' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you specify your account ID, do not include any hyphens ('-') in the ID.<br/>
        :return: Marker:  The vault ARN at which to continue pagination of the results. You use the marker in another List Vaults request to obtain more vaults in the list.<br/>VaultList:  List of vaults.<br/>        """
        pass

    def purchase_provisioned_capacity(self, accountId: str) -> PurchaseProvisionedCapacityOutput:
        r"""This operation purchases a provisioned capacity unit for an AWS account. 

        :param self:
        :param accountId:  The AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '-' (hyphen), in which case Amazon S3 Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, don't include any hyphens ('-') in the ID. <br/>
        :return: capacityId:  The ID that identifies the provisioned capacity unit.<br/>        """
        pass

    def remove_tags_from_vault(self, vaultName: str, accountId: str, TagKeys: List[string]=None):
        r"""This operation removes one or more tags from the set of tags attached to a vault. For more information about tags, see <a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/tagging.html">Tagging Amazon S3 Glacier Resources</a>. This operation is idempotent. The operation will be successful, even if there are no tags attached to the vault. 

        :param self:
        :param TagKeys:  A list of tag keys. Each corresponding tag is removed from the vault.<br/>vaultName:  The name of the vault.<br/>accountId:  The <code>AccountId</code> value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '<code>-</code>' (hyphen), in which case Amazon S3 Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID.<br/>
        :return:         """
        pass

    def set_data_retrieval_policy(self, accountId: str, Policy: DataRetrievalPolicy=None):
        r"""This operation sets and then enacts a data retrieval policy in the region specified in the PUT request. You can set one policy per region for an AWS account. The policy is enacted within a few minutes of a successful PUT operation. The set policy operation does not affect retrieval jobs that were in progress before the policy was enacted. For more information about data retrieval policies, see <a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/data-retrieval-policy.html">Amazon Glacier Data Retrieval Policies</a>. 

        :param self:
        :param Policy:  The data retrieval policy in JSON format.:<br/>accountId:  The <code>AccountId</code> value is the AWS account ID. This value must match the AWS account ID associated with the credentials used to sign the request. You can either specify an AWS account ID or optionally a single '<code>-</code>' (hyphen), in which case Amazon Glacier uses the AWS account ID associated with the credentials used to sign the request. If you specify your account ID, do not include any hyphens ('-') in the ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Rules</i> The policy rule. Although this is a list type, currently there must be only one rule, which contains a Strategy field and optionally a BytesPerHour field.<br/>
        :return:         """
        pass

    def set_vault_access_policy(self, vaultName: str, accountId: str, policy: VaultAccessPolicy=None):
        r"""This operation configures an access policy for a vault and will overwrite an existing policy. To configure a vault access policy, send a PUT request to the <code>access-policy</code> subresource of the vault. An access policy is specific to a vault and is also called a vault subresource. You can set one access policy per vault and the policy can be up to 20 KB in size. For more information about vault access policies, see <a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/vault-access-policy.html">Amazon Glacier Access Control with Vault Access Policies</a>. 

        :param self:
        :param policy:  The vault access policy as a JSON string.:<br/>vaultName:  The name of the vault.<br/>accountId:  The <code>AccountId</code> value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '<code>-</code>' (hyphen), in which case Amazon S3 Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Policy</i> The vault access policy.<br/>
        :return:         """
        pass

    def set_vault_notifications(self, vaultName: str, accountId: str, vaultNotificationConfig: VaultNotificationConfig=None):
        r"""This operation configures notifications that will be sent when specific events happen to a vault. By default, you don't get any notifications. To configure vault notifications, send a PUT request to the <code>notification-configuration</code> subresource of the vault. The request should include a JSON document that provides an Amazon SNS topic and specific events for which you want Amazon S3 Glacier to send notifications to the topic. Amazon SNS topics must grant permission to the vault to be allowed to publish notifications to the topic. You can configure a vault to publish a notification for the following vault events: <ul> <li>  <b>ArchiveRetrievalCompleted</b> This event occurs when a job that was initiated for an archive retrieval is completed (<a>InitiateJob</a>). The status of the completed job can be "Succeeded" or "Failed". The notification sent to the SNS topic is the same output as returned from <a>DescribeJob</a>.  </li> <li>  <b>InventoryRetrievalCompleted</b> This event occurs when a job that was initiated for an inventory retrieval is completed (<a>InitiateJob</a>). The status of the completed job can be "Succeeded" or "Failed". The notification sent to the SNS topic is the same output as returned from <a>DescribeJob</a>.  </li> </ul> An AWS account has full permission to perform all operations (actions). However, AWS Identity and Access Management (IAM) users don't have any permissions by default. You must grant them explicit permission to perform specific actions. For more information, see <a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/using-iam-with-amazon-glacier.html">Access Control Using AWS Identity and Access Management (IAM)</a>. For conceptual information and underlying REST API, see <a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/configuring-notifications.html">Configuring Vault Notifications in Amazon S3 Glacier</a> and <a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/api-vault-notifications-put.html">Set Vault Notification Configuration </a> in the <i>Amazon Glacier Developer Guide</i>. 

        :param self:
        :param vaultNotificationConfig:  Provides options for specifying notification configuration.:<br/>vaultName:  The name of the vault.<br/>accountId:  The <code>AccountId</code> value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '<code>-</code>' (hyphen), in which case Amazon S3 Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Events</i> A list of one or more events for which Amazon S3 Glacier will send a notification to the specified Amazon SNS topic.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SNSTopic</i> The Amazon Simple Notification Service (Amazon SNS) topic Amazon Resource Name (ARN).<br/>
        :return:         """
        pass

    def upload_archive(self, accountId: str, vaultName: str, archiveDescription: str=None, checksum: str=None, body: Stream=None) -> ArchiveCreationOutput:
        r"""This operation adds an archive to a vault. This is a synchronous operation, and for a successful upload, your data is durably persisted. Amazon S3 Glacier returns the archive ID in the <code>x-amz-archive-id</code> header of the response.  You must use the archive ID to access your data in Amazon S3 Glacier. After you upload an archive, you should save the archive ID returned so that you can retrieve or delete the archive later. Besides saving the archive ID, you can also index it and give it a friendly name to allow for better searching. You can also use the optional archive description field to specify how the archive is referred to in an external index of archives, such as you might create in Amazon DynamoDB. You can also get the vault inventory to obtain a list of archive IDs in a vault. For more information, see <a>InitiateJob</a>.  You must provide a SHA256 tree hash of the data you are uploading. For information about computing a SHA256 tree hash, see <a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/checksum-calculations.html">Computing Checksums</a>.  You can optionally specify an archive description of up to 1,024 printable ASCII characters. You can get the archive description when you either retrieve the archive or get the vault inventory. For more information, see <a>InitiateJob</a>. Amazon Glacier does not interpret the description in any way. An archive description does not need to be unique. You cannot use the description to retrieve or sort the archive list.  Archives are immutable. After you upload an archive, you cannot edit the archive or its description. An AWS account has full permission to perform all operations (actions). However, AWS Identity and Access Management (IAM) users don't have any permissions by default. You must grant them explicit permission to perform specific actions. For more information, see <a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/using-iam-with-amazon-glacier.html">Access Control Using AWS Identity and Access Management (IAM)</a>.  For conceptual information and underlying REST API, see <a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/uploading-an-archive.html">Uploading an Archive in Amazon Glacier</a> and <a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/api-archive-post.html">Upload Archive</a> in the <i>Amazon Glacier Developer Guide</i>. 

        :param self:
        :param body:  The data to upload.<br/>checksum:  The SHA256 tree hash of the data being uploaded.<br/>archiveDescription:  The optional description of the archive you are uploading.<br/>accountId:  The <code>AccountId</code> value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '<code>-</code>' (hyphen), in which case Amazon S3 Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID. <br/>vaultName:  The name of the vault.<br/>
        :return: archiveId:  The ID of the archive. This value is also included as part of the location.<br/>checksum:  The checksum of the archive computed by Amazon S3 Glacier.<br/>location:  The relative URI path of the newly added archive resource.<br/>        """
        pass

    def upload_multipart_part(self, uploadId: str, vaultName: str, accountId: str, checksum: str=None, range: str=None, body: Stream=None) -> UploadMultipartPartOutput:
        r"""This operation uploads a part of an archive. You can upload archive parts in any order. You can also upload them in parallel. You can upload up to 10,000 parts for a multipart upload. Amazon Glacier rejects your upload part request if any of the following conditions is true: <ul> <li>  <b>SHA256 tree hash does not match</b>To ensure that part data is not corrupted in transmission, you compute a SHA256 tree hash of the part and include it in your request. Upon receiving the part data, Amazon S3 Glacier also computes a SHA256 tree hash. If these hash values don't match, the operation fails. For information about computing a SHA256 tree hash, see <a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/checksum-calculations.html">Computing Checksums</a>. </li> <li>  <b>Part size does not match</b>The size of each part except the last must match the size specified in the corresponding <a>InitiateMultipartUpload</a> request. The size of the last part must be the same size as, or smaller than, the specified size. <note> If you upload a part whose size is smaller than the part size you specified in your initiate multipart upload request and that part is not the last part, then the upload part request will succeed. However, the subsequent Complete Multipart Upload request will fail. </note> </li> <li>  <b>Range does not align</b>The byte range value in the request does not align with the part size specified in the corresponding initiate request. For example, if you specify a part size of 4194304 bytes (4 MB), then 0 to 4194303 bytes (4 MB - 1) and 4194304 (4 MB) to 8388607 (8 MB - 1) are valid part ranges. However, if you set a range value of 2 MB to 6 MB, the range does not align with the part size and the upload will fail.  </li> </ul> This operation is idempotent. If you upload the same part multiple times, the data included in the most recent request overwrites the previously uploaded data. An AWS account has full permission to perform all operations (actions). However, AWS Identity and Access Management (IAM) users don't have any permissions by default. You must grant them explicit permission to perform specific actions. For more information, see <a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/using-iam-with-amazon-glacier.html">Access Control Using AWS Identity and Access Management (IAM)</a>.  For conceptual information and underlying REST API, see <a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/uploading-archive-mpu.html">Uploading Large Archives in Parts (Multipart Upload)</a> and <a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/api-upload-part.html">Upload Part </a> in the <i>Amazon Glacier Developer Guide</i>.

        :param self:
        :param body:  The data to upload.<br/>range:  Identifies the range of bytes in the assembled archive that will be uploaded in this part. Amazon S3 Glacier uses this information to assemble the archive in the proper sequence. The format of this header follows RFC 2616. An example header is Content-Range:bytes 0-4194303/*.<br/>checksum:  The SHA256 tree hash of the data being uploaded.<br/>uploadId:  The upload ID of the multipart upload.<br/>vaultName:  The name of the vault.<br/>accountId:  The <code>AccountId</code> value is the AWS account ID of the account that owns the vault. You can either specify an AWS account ID or optionally a single '<code>-</code>' (hyphen), in which case Amazon S3 Glacier uses the AWS account ID associated with the credentials used to sign the request. If you use an account ID, do not include any hyphens ('-') in the ID. <br/>
        :return: checksum:  The SHA256 tree hash that Amazon S3 Glacier computed for the uploaded part.<br/>        """
        pass



    class GlacierResource:
        
        class Account:
            r"""Creates a Account resource.::

  account = glacier.Account('id')

:type id: string
:param id: The Account's id identifier. This **must** be set.

:rtype: :py:class:`Glacier.Account`
:returns: A Account resource"""

            def __init__(self, id):
                pass
            
        
            
            def create_vault(self, **kwargs):
                # type: (object) -> Vault
                return Vault()


        
        class Archive:
            r"""Creates a Archive resource.::

  archive = glacier.Archive('account_id','vault_name','id')

:type account_id: string
:param account_id: The Archive's account_id identifier. This **must** be set.
:type vault_name: string
:param vault_name: The Archive's vault_name identifier. This **must** be set.
:type id: string
:param id: The Archive's id identifier. This **must** be set.

:rtype: :py:class:`Glacier.Archive`
:returns: A Archive resource"""

            def __init__(self, account_id, vault_name, id):
                pass
            
        
            
            def delete(self, **kwargs):
                # type: (object) -> dict
                return {}

            def initiate_archive_retrieval(self, **kwargs):
                # type: (object) -> Job
                return Job()


        
        class Job:
            r"""Creates a Job resource.::

  job = glacier.Job('account_id','vault_name','id')

:type account_id: string
:param account_id: The Job's account_id identifier. This **must** be set.
:type vault_name: string
:param vault_name: The Job's vault_name identifier. This **must** be set.
:type id: string
:param id: The Job's id identifier. This **must** be set.

:rtype: :py:class:`Glacier.Job`
:returns: A Job resource"""

            def __init__(self, account_id, vault_name, id):
                pass
            
            class OutputLocation(Mapping):
                pass

            class Size(object):
                pass

            class boolean(object):
                pass

            class InventoryRetrievalJobDescription(Mapping):
                pass

            class SelectParameters(Mapping):
                pass
        
            job_id: str=None
            job_description: str=None
            action: str=None
            archive_id: str=None
            vault_arn: str=None
            creation_date: str=None
            completed: boolean=None
            status_code: str=None
            status_message: str=None
            archive_size_in_bytes: Size=None
            inventory_size_in_bytes: Size=None
            sns_topic: str=None
            completion_date: str=None
            sha256_tree_hash: str=None
            archive_sha256_tree_hash: str=None
            retrieval_byte_range: str=None
            tier: str=None
            inventory_retrieval_parameters: InventoryRetrievalJobDescription=None
            job_output_path: str=None
            select_parameters: SelectParameters=None
            output_location: OutputLocation=None
            
            def get_output(self, **kwargs):
                # type: (object) -> dict
                return {}


        
        class MultipartUpload:
            r"""Creates a MultipartUpload resource.::

  multipart_upload = glacier.MultipartUpload('account_id','vault_name','id')

:type account_id: string
:param account_id: The MultipartUpload's account_id identifier. This **must** be set.
:type vault_name: string
:param vault_name: The MultipartUpload's vault_name identifier. This **must** be set.
:type id: string
:param id: The MultipartUpload's id identifier. This **must** be set.

:rtype: :py:class:`Glacier.MultipartUpload`
:returns: A MultipartUpload resource"""

            def __init__(self, account_id, vault_name, id):
                pass
            
            class long(object):
                pass
        
            multipart_upload_id: str=None
            vault_arn: str=None
            archive_description: str=None
            part_size_in_bytes: long=None
            creation_date: str=None
            
            def abort(self, **kwargs):
                # type: (object) -> dict
                return {}

            def complete(self, **kwargs):
                # type: (object) -> dict
                return {}

            def parts(self, **kwargs):
                # type: (object) -> dict
                return {}

            def upload_part(self, **kwargs):
                # type: (object) -> dict
                return {}


        
        class Notification:
            r"""Creates a Notification resource.::

  notification = glacier.Notification('account_id','vault_name')

:type account_id: string
:param account_id: The Notification's account_id identifier. This **must** be set.
:type vault_name: string
:param vault_name: The Notification's vault_name identifier. This **must** be set.

:rtype: :py:class:`Glacier.Notification`
:returns: A Notification resource"""

            def __init__(self, account_id, vault_name):
                pass
            
            class string(object):
                pass
        
            sns_topic: str=None
            events: List[string]=None
            
            def delete(self, **kwargs):
                # type: (object) -> dict
                return {}

            def set(self, **kwargs):
                # type: (object) -> dict
                return {}


        
        class Vault:
            r"""Creates a Vault resource.::

  vault = glacier.Vault('account_id','name')

:type account_id: string
:param account_id: The Vault's account_id identifier. This **must** be set.
:type name: string
:param name: The Vault's name identifier. This **must** be set.

:rtype: :py:class:`Glacier.Vault`
:returns: A Vault resource"""

            def __init__(self, account_id, name):
                pass
            
            class long(object):
                pass
        
            vault_arn: str=None
            vault_name: str=None
            creation_date: str=None
            last_inventory_date: str=None
            number_of_archives: long=None
            size_in_bytes: long=None
            
            def create(self, **kwargs):
                # type: (object) -> dict
                return {}

            def delete(self, **kwargs):
                # type: (object) -> dict
                return {}

            def initiate_inventory_retrieval(self, **kwargs):
                # type: (object) -> Job
                return Job()

            def initiate_multipart_upload(self, **kwargs):
                # type: (object) -> MultipartUpload
                return MultipartUpload()

            def upload_archive(self, **kwargs):
                # type: (object) -> Archive
                return Archive()


        def create_vault(self, **kwargs):
            # type: (object) -> Vault
            pass

        def get_available_subresources(self) -> List[str]:
            pass

        class VaultResourceCollection(List[Vault], ResourceCollection):
            pass

        vaults: VaultResourceCollection = None




class GlobalAccelerator(BaseClient):
    r"""<fullname>AWS Global Accelerator</fullname> This is the <i>AWS Global Accelerator API Reference</i>. This guide is for developers who need detailed information about AWS Global Accelerator API actions, data types, and errors. For more information about Global Accelerator features, see the <a href="https://docs.aws.amazon.com/global-accelerator/latest/dg/Welcome.html">AWS Global Accelerator Developer Guide</a>. AWS Global Accelerator is a service in which you create <i>accelerators</i> to improve the performance of your applications for local and global users. Depending on the type of accelerator you choose, you can gain additional benefits.  <ul> <li> By using a standard accelerator, you can improve availability of your internet applications that are used by a global audience. With a standard accelerator, Global Accelerator directs traffic to optimal endpoints over the AWS global network.  </li> <li> For other scenarios, you might choose a custom routing accelerator. With a custom routing accelerator, you can use application logic to directly map one or more users to a specific endpoint among many endpoints. </li> </ul> <important> Global Accelerator is a global service that supports endpoints in multiple AWS Regions but you must specify the US West (Oregon) Region to create or update accelerators. </important> By default, Global Accelerator provides you with two static IP addresses that you associate with your accelerator. With a standard accelerator, instead of using the IP addresses that Global Accelerator provides, you can configure these entry points to be IPv4 addresses from your own IP address ranges that you bring to Global Accelerator. The static IP addresses are anycast from the AWS edge network. For a standard accelerator, they distribute incoming application traffic across multiple endpoint resources in multiple AWS Regions, which increases the availability of your applications. Endpoints for standard accelerators can be Network Load Balancers, Application Load Balancers, Amazon EC2 instances, or Elastic IP addresses that are located in one AWS Region or multiple Regions. For custom routing accelerators, you map traffic that arrives to the static IP addresses to specific Amazon EC2 servers in endpoints that are virtual private cloud (VPC) subnets. <important> The static IP addresses remain assigned to your accelerator for as long as it exists, even if you disable the accelerator and it no longer accepts or routes traffic. However, when you <i>delete</i> an accelerator, you lose the static IP addresses that are assigned to it, so you can no longer route traffic by using them. You can use IAM policies like tag-based permissions with Global Accelerator to limit the users who have permissions to delete an accelerator. For more information, see <a href="https://docs.aws.amazon.com/global-accelerator/latest/dg/access-control-manage-access-tag-policies.html">Tag-based policies</a>. </important> For standard accelerators, Global Accelerator uses the AWS global network to route traffic to the optimal regional endpoint based on health, client location, and policies that you configure. The service reacts instantly to changes in health or configuration to ensure that internet traffic from clients is always directed to healthy endpoints. For a list of the AWS Regions where Global Accelerator and other services are currently supported, see the <a href="https://docs.aws.amazon.com/about-aws/global-infrastructure/regional-product-services/">AWS Region Table</a>. AWS Global Accelerator includes the following components: <dl> <dt>Static IP addresses</dt> <dd> Global Accelerator provides you with a set of two static IP addresses that are anycast from the AWS edge network. If you bring your own IP address range to AWS (BYOIP) to use with a standard accelerator, you can instead assign IP addresses from your own pool to use with your accelerator. For more information, see <a href="https://docs.aws.amazon.com/global-accelerator/latest/dg/using-byoip.html"> Bring your own IP addresses (BYOIP) in AWS Global Accelerator</a>. The IP addresses serve as single fixed entry points for your clients. If you already have Elastic Load Balancing load balancers, Amazon EC2 instances, or Elastic IP address resources set up for your applications, you can easily add those to a standard accelerator in Global Accelerator. This allows Global Accelerator to use static IP addresses to access the resources. The static IP addresses remain assigned to your accelerator for as long as it exists, even if you disable the accelerator and it no longer accepts or routes traffic. However, when you <i>delete</i> an accelerator, you lose the static IP addresses that are assigned to it, so you can no longer route traffic by using them. You can use IAM policies like tag-based permissions with Global Accelerator to delete an accelerator. For more information, see <a href="https://docs.aws.amazon.com/global-accelerator/latest/dg/access-control-manage-access-tag-policies.html">Tag-based policies</a>. </dd> <dt>Accelerator</dt> <dd> An accelerator directs traffic to endpoints over the AWS global network to improve the performance of your internet applications. Each accelerator includes one or more listeners. There are two types of accelerators: <ul> <li> A <i>standard</i> accelerator directs traffic to the optimal AWS endpoint based on several factors, including the user’s location, the health of the endpoint, and the endpoint weights that you configure. This improves the availability and performance of your applications. Endpoints can be Network Load Balancers, Application Load Balancers, Amazon EC2 instances, or Elastic IP addresses. </li> <li> A <i>custom routing</i> accelerator directs traffic to one of possibly thousands of Amazon EC2 instances running in a single or multiple virtual private clouds (VPCs). With custom routing, listener ports are mapped to statically associate port ranges with VPC subnets, which allows Global Accelerator to determine an EC2 instance IP address at the time of connection. By default, all port mapping destinations in a VPC subnet can't receive traffic. You can choose to configure all destinations in the subnet to receive traffic, or to specify individual port mappings that can receive traffic. </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/global-accelerator/latest/dg/introduction-accelerator-types.html">Types of accelerators</a>. </dd> <dt>DNS name</dt> <dd> Global Accelerator assigns each accelerator a default Domain Name System (DNS) name, similar to <code>a1234567890abcdef.awsglobalaccelerator.com</code>, that points to the static IP addresses that Global Accelerator assigns to you or that you choose from your own IP address range. Depending on the use case, you can use your accelerator's static IP addresses or DNS name to route traffic to your accelerator, or set up DNS records to route traffic using your own custom domain name. </dd> <dt>Network zone</dt> <dd> A network zone services the static IP addresses for your accelerator from a unique IP subnet. Similar to an AWS Availability Zone, a network zone is an isolated unit with its own set of physical infrastructure. When you configure an accelerator, by default, Global Accelerator allocates two IPv4 addresses for it. If one IP address from a network zone becomes unavailable due to IP address blocking by certain client networks, or network disruptions, then client applications can retry on the healthy static IP address from the other isolated network zone. </dd> <dt>Listener</dt> <dd> A listener processes inbound connections from clients to Global Accelerator, based on the port (or port range) and protocol (or protocols) that you configure. A listener can be configured for TCP, UDP, or both TCP and UDP protocols. Each listener has one or more endpoint groups associated with it, and traffic is forwarded to endpoints in one of the groups. You associate endpoint groups with listeners by specifying the Regions that you want to distribute traffic to. With a standard accelerator, traffic is distributed to optimal endpoints within the endpoint groups associated with a listener. </dd> <dt>Endpoint group</dt> <dd> Each endpoint group is associated with a specific AWS Region. Endpoint groups include one or more endpoints in the Region. With a standard accelerator, you can increase or reduce the percentage of traffic that would be otherwise directed to an endpoint group by adjusting a setting called a <i>traffic dial</i>. The traffic dial lets you easily do performance testing or blue/green deployment testing, for example, for new releases across different AWS Regions.  </dd> <dt>Endpoint</dt> <dd> An endpoint is a resource that Global Accelerator directs traffic to. Endpoints for standard accelerators can be Network Load Balancers, Application Load Balancers, Amazon EC2 instances, or Elastic IP addresses. An Application Load Balancer endpoint can be internet-facing or internal. Traffic for standard accelerators is routed to endpoints based on the health of the endpoint along with configuration options that you choose, such as endpoint weights. For each endpoint, you can configure weights, which are numbers that you can use to specify the proportion of traffic to route to each one. This can be useful, for example, to do performance testing within a Region. Endpoints for custom routing accelerators are virtual private cloud (VPC) subnets with one or many EC2 instances. </dd> </dl>"""


    class ListAcceleratorsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_accelerators` for valid parameters"""
            pass
    class ListEndpointGroupsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_endpoint_groups` for valid parameters"""
            pass
    class ListListenersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_listeners` for valid parameters"""
            pass
    class ListByoipCidrsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_byoip_cidrs` for valid parameters"""
            pass
    class ListCustomRoutingAcceleratorsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_custom_routing_accelerators` for valid parameters"""
            pass
    class ListCustomRoutingListenersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_custom_routing_listeners` for valid parameters"""
            pass
    class ListCustomRoutingPortMappingsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_custom_routing_port_mappings` for valid parameters"""
            pass
    class ListCustomRoutingPortMappingsByDestinationPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_custom_routing_port_mappings_by_destination` for valid parameters"""
            pass


    class AddCustomRoutingEndpointsRequest(Mapping):
        pass
    
    class AddCustomRoutingEndpointsResponse(Mapping):
        pass
    
    class CustomRoutingEndpointConfiguration(Mapping):
        pass
    
    class AdvertiseByoipCidrRequest(Mapping):
        pass
    
    class AdvertiseByoipCidrResponse(Mapping):
        pass
    
    class AllowCustomRoutingTrafficRequest(Mapping):
        pass
    
    class IpAddress(object):
        pass
    
    class PortNumber(object):
        pass
    
    class GenericBoolean(object):
        pass
    
    class CreateAcceleratorRequest(Mapping):
        pass
    
    class CreateAcceleratorResponse(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class CreateCustomRoutingAcceleratorRequest(Mapping):
        pass
    
    class CreateCustomRoutingAcceleratorResponse(Mapping):
        pass
    
    class CreateCustomRoutingEndpointGroupRequest(Mapping):
        pass
    
    class CreateCustomRoutingEndpointGroupResponse(Mapping):
        pass
    
    class CustomRoutingDestinationConfiguration(Mapping):
        pass
    
    class CreateCustomRoutingListenerRequest(Mapping):
        pass
    
    class CreateCustomRoutingListenerResponse(Mapping):
        pass
    
    class PortRange(Mapping):
        pass
    
    class CreateEndpointGroupRequest(Mapping):
        pass
    
    class CreateEndpointGroupResponse(Mapping):
        pass
    
    class EndpointConfiguration(Mapping):
        pass
    
    class TrafficDialPercentage(object):
        pass
    
    class PortOverride(Mapping):
        pass
    
    class CreateListenerRequest(Mapping):
        pass
    
    class CreateListenerResponse(Mapping):
        pass
    
    class DeleteAcceleratorRequest(Mapping):
        pass
    
    class DeleteCustomRoutingAcceleratorRequest(Mapping):
        pass
    
    class DeleteCustomRoutingEndpointGroupRequest(Mapping):
        pass
    
    class DeleteCustomRoutingListenerRequest(Mapping):
        pass
    
    class DeleteEndpointGroupRequest(Mapping):
        pass
    
    class DeleteListenerRequest(Mapping):
        pass
    
    class DenyCustomRoutingTrafficRequest(Mapping):
        pass
    
    class DeprovisionByoipCidrRequest(Mapping):
        pass
    
    class DeprovisionByoipCidrResponse(Mapping):
        pass
    
    class DescribeAcceleratorRequest(Mapping):
        pass
    
    class DescribeAcceleratorResponse(Mapping):
        pass
    
    class DescribeAcceleratorAttributesRequest(Mapping):
        pass
    
    class DescribeAcceleratorAttributesResponse(Mapping):
        pass
    
    class DescribeCustomRoutingAcceleratorRequest(Mapping):
        pass
    
    class DescribeCustomRoutingAcceleratorResponse(Mapping):
        pass
    
    class DescribeCustomRoutingAcceleratorAttributesRequest(Mapping):
        pass
    
    class DescribeCustomRoutingAcceleratorAttributesResponse(Mapping):
        pass
    
    class DescribeCustomRoutingEndpointGroupRequest(Mapping):
        pass
    
    class DescribeCustomRoutingEndpointGroupResponse(Mapping):
        pass
    
    class DescribeCustomRoutingListenerRequest(Mapping):
        pass
    
    class DescribeCustomRoutingListenerResponse(Mapping):
        pass
    
    class DescribeEndpointGroupRequest(Mapping):
        pass
    
    class DescribeEndpointGroupResponse(Mapping):
        pass
    
    class DescribeListenerRequest(Mapping):
        pass
    
    class DescribeListenerResponse(Mapping):
        pass
    
    class ListAcceleratorsRequest(Mapping):
        pass
    
    class ListAcceleratorsResponse(Mapping):
        pass
    
    class ListByoipCidrsRequest(Mapping):
        pass
    
    class ListByoipCidrsResponse(Mapping):
        pass
    
    class ListCustomRoutingAcceleratorsRequest(Mapping):
        pass
    
    class ListCustomRoutingAcceleratorsResponse(Mapping):
        pass
    
    class ListCustomRoutingEndpointGroupsRequest(Mapping):
        pass
    
    class ListCustomRoutingEndpointGroupsResponse(Mapping):
        pass
    
    class ListCustomRoutingListenersRequest(Mapping):
        pass
    
    class ListCustomRoutingListenersResponse(Mapping):
        pass
    
    class ListCustomRoutingPortMappingsRequest(Mapping):
        pass
    
    class ListCustomRoutingPortMappingsResponse(Mapping):
        pass
    
    class ListCustomRoutingPortMappingsByDestinationRequest(Mapping):
        pass
    
    class ListCustomRoutingPortMappingsByDestinationResponse(Mapping):
        pass
    
    class ListEndpointGroupsRequest(Mapping):
        pass
    
    class ListEndpointGroupsResponse(Mapping):
        pass
    
    class ListListenersRequest(Mapping):
        pass
    
    class ListListenersResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class ProvisionByoipCidrRequest(Mapping):
        pass
    
    class ProvisionByoipCidrResponse(Mapping):
        pass
    
    class CidrAuthorizationContext(Mapping):
        pass
    
    class RemoveCustomRoutingEndpointsRequest(Mapping):
        pass
    
    class GenericString(object):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateAcceleratorRequest(Mapping):
        pass
    
    class UpdateAcceleratorResponse(Mapping):
        pass
    
    class UpdateAcceleratorAttributesRequest(Mapping):
        pass
    
    class UpdateAcceleratorAttributesResponse(Mapping):
        pass
    
    class UpdateCustomRoutingAcceleratorRequest(Mapping):
        pass
    
    class UpdateCustomRoutingAcceleratorResponse(Mapping):
        pass
    
    class UpdateCustomRoutingAcceleratorAttributesRequest(Mapping):
        pass
    
    class UpdateCustomRoutingAcceleratorAttributesResponse(Mapping):
        pass
    
    class UpdateCustomRoutingListenerRequest(Mapping):
        pass
    
    class UpdateCustomRoutingListenerResponse(Mapping):
        pass
    
    class UpdateEndpointGroupRequest(Mapping):
        pass
    
    class UpdateEndpointGroupResponse(Mapping):
        pass
    
    class UpdateListenerRequest(Mapping):
        pass
    
    class UpdateListenerResponse(Mapping):
        pass
    
    class WithdrawByoipCidrRequest(Mapping):
        pass
    
    class WithdrawByoipCidrResponse(Mapping):
        pass
    
    def add_custom_routing_endpoints(self, EndpointGroupArn: str, EndpointConfigurations: List[CustomRoutingEndpointConfiguration]) -> AddCustomRoutingEndpointsResponse:
        r"""Associate a virtual private cloud (VPC) subnet endpoint with your custom routing accelerator. The listener port range must be large enough to support the number of IP addresses that can be specified in your subnet. The number of ports required is: subnet size times the number of ports per destination EC2 instances. For example, a subnet defined as /24 requires a listener port range of at least 255 ports.  Note: You must have enough remaining listener ports available to map to the subnet ports, or the call will fail with a LimitExceededException. By default, all destinations in a subnet in a custom routing accelerator cannot receive traffic. To enable all destinations to receive traffic, or to specify individual port mappings that can receive traffic, see the <a href="https://docs.aws.amazon.com/global-accelerator/latest/api/API_AllowCustomRoutingTraffic.html"> AllowCustomRoutingTraffic</a> operation.

        :param self:
        :param EndpointGroupArn:  The Amazon Resource Name (ARN) of the endpoint group for the custom routing endpoint.<br/>EndpointConfigurations:  The list of endpoint objects to add to a custom routing accelerator.<br/>
        :return: EndpointGroupArn:  The Amazon Resource Name (ARN) of the endpoint group for the custom routing endpoint.<br/>EndpointDescriptions:  The endpoint objects added to the custom routing accelerator.<br/>        """
        pass

    def advertise_byoip_cidr(self, Cidr: str) -> AdvertiseByoipCidrResponse:
        r"""Advertises an IPv4 address range that is provisioned for use with your AWS resources through bring your own IP addresses (BYOIP). It can take a few minutes before traffic to the specified addresses starts routing to AWS because of propagation delays.  To stop advertising the BYOIP address range, use <a href="https://docs.aws.amazon.com/global-accelerator/latest/api/WithdrawByoipCidr.html"> WithdrawByoipCidr</a>. For more information, see <a href="https://docs.aws.amazon.com/global-accelerator/latest/dg/using-byoip.html">Bring Your Own IP Addresses (BYOIP)</a> in the <i>AWS Global Accelerator Developer Guide</i>.

        :param self:
        :param Cidr:  The address range, in CIDR notation. This must be the exact range that you provisioned. You can't advertise only a portion of the provisioned range.<br/>
        :return: ByoipCidr:  Information about the address range.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Events</i> A history of status changes for an IP address range that you bring to AWS Global Accelerator through bring your own IP address (BYOIP).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the address pool.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Cidr</i> The address range, in CIDR notation.<br/>        """
        pass

    def allow_custom_routing_traffic(self, EndpointId: str, EndpointGroupArn: str, DestinationAddresses: List[IpAddress]=None, DestinationPorts: List[PortNumber]=None, AllowAllTrafficToEndpoint: GenericBoolean=None):
        r"""Specify the Amazon EC2 instance (destination) IP addresses and ports for a VPC subnet endpoint that can receive traffic for a custom routing accelerator. You can allow traffic to all destinations in the subnet endpoint, or allow traffic to a specified list of destination IP addresses and ports in the subnet. Note that you cannot specify IP addresses or ports outside of the range that you configured for the endpoint group. After you make changes, you can verify that the updates are complete by checking the status of your accelerator: the status changes from IN_PROGRESS to DEPLOYED.

        :param self:
        :param AllowAllTrafficToEndpoint:  Indicates whether all destination IP addresses and ports for a specified VPC subnet endpoint can receive traffic from a custom routing accelerator. The value is TRUE or FALSE.  When set to TRUE, <i>all</i> destinations in the custom routing VPC subnet can receive traffic. Note that you cannot specify destination IP addresses and ports when the value is set to TRUE. When set to FALSE (or not specified), you <i>must</i> specify a list of destination IP addresses that are allowed to receive traffic. A list of ports is optional. If you don't specify a list of ports, the ports that can accept traffic is the same as the ports configured for the endpoint group. The default value is FALSE.<br/>DestinationPorts:  A list of specific Amazon EC2 instance ports (destination ports) that you want to allow to receive traffic.<br/>DestinationAddresses:  A list of specific Amazon EC2 instance IP addresses (destination addresses) in a subnet that you want to allow to receive traffic. The IP addresses must be a subset of the IP addresses that you specified for the endpoint group.  <code>DestinationAddresses</code> is required if <code>AllowAllTrafficToEndpoint</code> is <code>FALSE</code> or is not specified.<br/>EndpointId:  An ID for the endpoint. For custom routing accelerators, this is the virtual private cloud (VPC) subnet ID.<br/>EndpointGroupArn:  The Amazon Resource Name (ARN) of the endpoint group.<br/>
        :return:         """
        pass

    def create_accelerator(self, IdempotencyToken: str, Name: str, IpAddressType: str=None, IpAddresses: List[IpAddress]=None, Enabled: GenericBoolean=None, Tags: List[Tag]=None) -> CreateAcceleratorResponse:
        r"""Create an accelerator. An accelerator includes one or more listeners that process inbound connections and direct traffic to one or more endpoint groups, each of which includes endpoints, such as Network Load Balancers.  <important> Global Accelerator is a global service that supports endpoints in multiple AWS Regions but you must specify the US West (Oregon) Region to create or update accelerators. </important>

        :param self:
        :param Tags:  Create tags for an accelerator. For more information, see <a href="https://docs.aws.amazon.com/global-accelerator/latest/dg/tagging-in-global-accelerator.html">Tagging in AWS Global Accelerator</a> in the <i>AWS Global Accelerator Developer Guide</i>.<br/>IdempotencyToken:  A unique, case-sensitive identifier that you provide to ensure the idempotency—that is, the uniqueness—of an accelerator.<br/>Enabled:  Indicates whether an accelerator is enabled. The value is true or false. The default value is true.  If the value is set to true, an accelerator cannot be deleted. If set to false, the accelerator can be deleted.<br/>IpAddresses:  Optionally, if you've added your own IP address pool to Global Accelerator (BYOIP), you can choose IP addresses from your own pool to use for the accelerator's static IP addresses when you create an accelerator. You can specify one or two addresses, separated by a space. Do not include the /32 suffix. Only one IP address from each of your IP address ranges can be used for each accelerator. If you specify only one IP address from your IP address range, Global Accelerator assigns a second static IP address for the accelerator from the AWS IP address pool. Note that you can't update IP addresses for an existing accelerator. To change them, you must create a new accelerator with the new addresses. For more information, see <a href="https://docs.aws.amazon.com/global-accelerator/latest/dg/using-byoip.html">Bring Your Own IP Addresses (BYOIP)</a> in the <i>AWS Global Accelerator Developer Guide</i>.<br/>IpAddressType:  The value for the address type must be IPv4.<br/>Name:  The name of an accelerator. The name can have a maximum of 32 characters, must contain only alphanumeric characters or hyphens (-), and must not begin or end with a hyphen.<br/>
        :return: Accelerator:  The accelerator that is created by specifying a listener and the supported IP address types.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedTime</i> The date and time that the accelerator was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTime</i> The date and time that the accelerator was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Describes the deployment status of the accelerator.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DnsName</i> The Domain Name System (DNS) name that Global Accelerator creates that points to your accelerator's static IP addresses.  The naming convention for the DNS name is the following: A lowercase letter a, followed by a 16-bit random hex string, followed by .awsglobalaccelerator.com. For example: a1234567890abcdef.awsglobalaccelerator.com. For more information about the default DNS name, see <a href="https://docs.aws.amazon.com/global-accelerator/latest/dg/about-accelerators.html#about-accelerators.dns-addressing"> Support for DNS Addressing in Global Accelerator</a> in the <i>AWS Global Accelerator Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IpSets</i> The static IP addresses that Global Accelerator associates with the accelerator.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Indicates whether the accelerator is enabled. The value is true or false. The default value is true.  If the value is set to true, the accelerator cannot be deleted. If set to false, accelerator can be deleted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IpAddressType</i> The value for the address type must be IPv4. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the accelerator. The name must contain only alphanumeric characters or hyphens (-), and must not begin or end with a hyphen.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AcceleratorArn</i> The Amazon Resource Name (ARN) of the accelerator.<br/>        """
        pass

    def create_custom_routing_accelerator(self, IdempotencyToken: str, Name: str, IpAddressType: str=None, IpAddresses: List[IpAddress]=None, Enabled: GenericBoolean=None, Tags: List[Tag]=None) -> CreateCustomRoutingAcceleratorResponse:
        r"""Create a custom routing accelerator. A custom routing accelerator directs traffic to one of possibly thousands of Amazon EC2 instance destinations running in a single or multiple virtual private clouds (VPC) subnet endpoints. Be aware that, by default, all destination EC2 instances in a VPC subnet endpoint cannot receive traffic. To enable all destinations to receive traffic, or to specify individual port mappings that can receive traffic, see the <a href="https://docs.aws.amazon.com/global-accelerator/latest/api/API_AllowCustomRoutingTraffic.html"> AllowCustomRoutingTraffic</a> operation. <important> Global Accelerator is a global service that supports endpoints in multiple AWS Regions but you must specify the US West (Oregon) Region to create or update accelerators. </important>

        :param self:
        :param Tags:  Create tags for an accelerator. For more information, see <a href="https://docs.aws.amazon.com/global-accelerator/latest/dg/tagging-in-global-accelerator.html">Tagging in AWS Global Accelerator</a> in the <i>AWS Global Accelerator Developer Guide</i>.<br/>IdempotencyToken:  A unique, case-sensitive identifier that you provide to ensure the idempotency—that is, the uniqueness—of the request.<br/>Enabled:  Indicates whether an accelerator is enabled. The value is true or false. The default value is true.  If the value is set to true, an accelerator cannot be deleted. If set to false, the accelerator can be deleted.<br/>IpAddresses:  Optionally, if you've added your own IP address pool to Global Accelerator (BYOIP), you can choose IP addresses from your own pool to use for the accelerator's static IP addresses when you create an accelerator. You can specify one or two addresses, separated by a space. Do not include the /32 suffix. Only one IP address from each of your IP address ranges can be used for each accelerator. If you specify only one IP address from your IP address range, Global Accelerator assigns a second static IP address for the accelerator from the AWS IP address pool. Note that you can't update IP addresses for an existing accelerator. To change them, you must create a new accelerator with the new addresses. For more information, see <a href="https://docs.aws.amazon.com/global-accelerator/latest/dg/using-byoip.html">Bring your own IP addresses (BYOIP)</a> in the <i>AWS Global Accelerator Developer Guide</i>.<br/>IpAddressType:  The value for the address type must be IPv4.<br/>Name:  The name of a custom routing accelerator. The name can have a maximum of 64 characters, must contain only alphanumeric characters or hyphens (-), and must not begin or end with a hyphen.<br/>
        :return: Accelerator:  The accelerator that is created.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedTime</i> The date and time that the accelerator was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTime</i> The date and time that the accelerator was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Describes the deployment status of the accelerator.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DnsName</i> The Domain Name System (DNS) name that Global Accelerator creates that points to your accelerator's static IP addresses.  The naming convention for the DNS name is the following: A lowercase letter a, followed by a 16-bit random hex string, followed by .awsglobalaccelerator.com. For example: a1234567890abcdef.awsglobalaccelerator.com. For more information about the default DNS name, see <a href="https://docs.aws.amazon.com/global-accelerator/latest/dg/about-accelerators.html#about-accelerators.dns-addressing"> Support for DNS Addressing in Global Accelerator</a> in the <i>AWS Global Accelerator Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IpSets</i> The static IP addresses that Global Accelerator associates with the accelerator.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Indicates whether the accelerator is enabled. The value is true or false. The default value is true.  If the value is set to true, the accelerator cannot be deleted. If set to false, accelerator can be deleted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IpAddressType</i> The value for the address type must be IPv4.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the accelerator. The name must contain only alphanumeric characters or hyphens (-), and must not begin or end with a hyphen.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AcceleratorArn</i> The Amazon Resource Name (ARN) of the custom routing accelerator.<br/>        """
        pass

    def create_custom_routing_endpoint_group(self, IdempotencyToken: str, DestinationConfigurations: List[CustomRoutingDestinationConfiguration], EndpointGroupRegion: str, ListenerArn: str) -> CreateCustomRoutingEndpointGroupResponse:
        r"""Create an endpoint group for the specified listener for a custom routing accelerator. An endpoint group is a collection of endpoints in one AWS Region. 

        :param self:
        :param IdempotencyToken:  A unique, case-sensitive identifier that you provide to ensure the idempotency—that is, the uniqueness—of the request.<br/>DestinationConfigurations:  Sets the port range and protocol for all endpoints (virtual private cloud subnets) in a custom routing endpoint group to accept client traffic on.<br/>EndpointGroupRegion:  The AWS Region where the endpoint group is located. A listener can have only one endpoint group in a specific Region.<br/>ListenerArn:  The Amazon Resource Name (ARN) of the listener for a custom routing endpoint.<br/>
        :return: EndpointGroup:  The information about the endpoint group created for a custom routing accelerator.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointDescriptions</i> For a custom routing accelerator, describes the endpoints (virtual private cloud subnets) in an endpoint group to accept client traffic on.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DestinationDescriptions</i> For a custom routing accelerator, describes the port range and protocol for all endpoints (virtual private cloud subnets) in an endpoint group to accept client traffic on.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointGroupRegion</i> The AWS Region where the endpoint group is located.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointGroupArn</i> The Amazon Resource Name (ARN) of the endpoint group.<br/>        """
        pass

    def create_custom_routing_listener(self, IdempotencyToken: str, PortRanges: List[PortRange], AcceleratorArn: str) -> CreateCustomRoutingListenerResponse:
        r"""Create a listener to process inbound connections from clients to a custom routing accelerator. Connections arrive to assigned static IP addresses on the port range that you specify. 

        :param self:
        :param IdempotencyToken:  A unique, case-sensitive identifier that you provide to ensure the idempotency—that is, the uniqueness—of the request.<br/>PortRanges:  The port range to support for connections from clients to your accelerator. Separately, you set port ranges for endpoints. For more information, see <a href="https://docs.aws.amazon.com/global-accelerator/latest/dg/about-custom-routing-endpoints.html">About endpoints for custom routing accelerators</a>.<br/>AcceleratorArn:  The Amazon Resource Name (ARN) of the accelerator for a custom routing listener.<br/>
        :return: Listener:  The listener that you've created for a custom routing accelerator.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PortRanges</i> The port range to support for connections from clients to your accelerator. Separately, you set port ranges for endpoints. For more information, see <a href="https://docs.aws.amazon.com/global-accelerator/latest/dg/about-custom-routing-endpoints.html">About endpoints for custom routing accelerators</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ListenerArn</i> The Amazon Resource Name (ARN) of the listener.<br/>        """
        pass

    def create_endpoint_group(self, IdempotencyToken: str, EndpointGroupRegion: str, ListenerArn: str, EndpointConfigurations: List[EndpointConfiguration]=None, TrafficDialPercentage: TrafficDialPercentage=None, HealthCheckPort: int=None, HealthCheckProtocol: str=None, HealthCheckPath: str=None, HealthCheckIntervalSeconds: int=None, ThresholdCount: int=None, PortOverrides: List[PortOverride]=None) -> CreateEndpointGroupResponse:
        r"""Create an endpoint group for the specified listener. An endpoint group is a collection of endpoints in one AWS Region. A resource must be valid and active when you add it as an endpoint.

        :param self:
        :param PortOverrides:  Override specific listener ports used to route traffic to endpoints that are part of this endpoint group. For example, you can create a port override in which the listener receives user traffic on ports 80 and 443, but your accelerator routes that traffic to ports 1080 and 1443, respectively, on the endpoints. For more information, see <a href="https://docs.aws.amazon.com/global-accelerator/latest/dg/about-endpoint-groups-port-override.html"> Port overrides</a> in the <i>AWS Global Accelerator Developer Guide</i>.<br/>IdempotencyToken:  A unique, case-sensitive identifier that you provide to ensure the idempotency—that is, the uniqueness—of the request.<br/>ThresholdCount:  The number of consecutive health checks required to set the state of a healthy endpoint to unhealthy, or to set an unhealthy endpoint to healthy. The default value is 3.<br/>HealthCheckIntervalSeconds:  The time—10 seconds or 30 seconds—between each health check for an endpoint. The default value is 30.<br/>HealthCheckPath:  If the protocol is HTTP/S, then this specifies the path that is the destination for health check targets. The default value is slash (/).<br/>HealthCheckProtocol:  The protocol that AWS Global Accelerator uses to check the health of endpoints that are part of this endpoint group. The default value is TCP.<br/>HealthCheckPort:  The port that AWS Global Accelerator uses to check the health of endpoints that are part of this endpoint group. The default port is the listener port that this endpoint group is associated with. If listener port is a list of ports, Global Accelerator uses the first port in the list.<br/>TrafficDialPercentage:  The percentage of traffic to send to an AWS Region. Additional traffic is distributed to other endpoint groups for this listener.  Use this action to increase (dial up) or decrease (dial down) traffic to a specific Region. The percentage is applied to the traffic that would otherwise have been routed to the Region based on optimal routing. The default value is 100.<br/>EndpointConfigurations:  The list of endpoint objects.<br/>EndpointGroupRegion:  The AWS Region where the endpoint group is located. A listener can have only one endpoint group in a specific Region.<br/>ListenerArn:  The Amazon Resource Name (ARN) of the listener.<br/>
        :return: EndpointGroup:  The information about the endpoint group that was created.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PortOverrides</i> Allows you to override the destination ports used to route traffic to an endpoint. Using a port override lets you to map a list of external destination ports (that your users send traffic to) to a list of internal destination ports that you want an application endpoint to receive traffic on. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ThresholdCount</i> The number of consecutive health checks required to set the state of a healthy endpoint to unhealthy, or to set an unhealthy endpoint to healthy. The default value is 3.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HealthCheckIntervalSeconds</i> The time—10 seconds or 30 seconds—between health checks for each endpoint. The default value is 30.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HealthCheckPath</i> If the protocol is HTTP/S, then this value provides the ping path that Global Accelerator uses for the destination on the endpoints for health checks. The default is slash (/).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HealthCheckProtocol</i> The protocol that Global Accelerator uses to perform health checks on endpoints that are part of this endpoint group. The default value is TCP.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HealthCheckPort</i> The port that Global Accelerator uses to perform health checks on endpoints that are part of this endpoint group.  The default port is the port for the listener that this endpoint group is associated with. If the listener port is a list, Global Accelerator uses the first specified port in the list of ports.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TrafficDialPercentage</i> The percentage of traffic to send to an AWS Region. Additional traffic is distributed to other endpoint groups for this listener.  Use this action to increase (dial up) or decrease (dial down) traffic to a specific Region. The percentage is applied to the traffic that would otherwise have been routed to the Region based on optimal routing. The default value is 100.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointDescriptions</i> The list of endpoint objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointGroupRegion</i> The AWS Region where the endpoint group is located.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointGroupArn</i> The Amazon Resource Name (ARN) of the endpoint group.<br/>        """
        pass

    def create_listener(self, IdempotencyToken: str, Protocol: str, PortRanges: List[PortRange], AcceleratorArn: str, ClientAffinity: str=None) -> CreateListenerResponse:
        r"""Create a listener to process inbound connections from clients to an accelerator. Connections arrive to assigned static IP addresses on a port, port range, or list of port ranges that you specify. 

        :param self:
        :param IdempotencyToken:  A unique, case-sensitive identifier that you provide to ensure the idempotency—that is, the uniqueness—of the request.<br/>ClientAffinity:  Client affinity lets you direct all requests from a user to the same endpoint, if you have stateful applications, regardless of the port and protocol of the client request. Client affinity gives you control over whether to always route each client to the same specific endpoint. AWS Global Accelerator uses a consistent-flow hashing algorithm to choose the optimal endpoint for a connection. If client affinity is <code>NONE</code>, Global Accelerator uses the "five-tuple" (5-tuple) properties—source IP address, source port, destination IP address, destination port, and protocol—to select the hash value, and then chooses the best endpoint. However, with this setting, if someone uses different ports to connect to Global Accelerator, their connections might not be always routed to the same endpoint because the hash value changes.  If you want a given client to always be routed to the same endpoint, set client affinity to <code>SOURCE_IP</code> instead. When you use the <code>SOURCE_IP</code> setting, Global Accelerator uses the "two-tuple" (2-tuple) properties— source (client) IP address and destination IP address—to select the hash value. The default value is <code>NONE</code>.<br/>Protocol:  The protocol for connections from clients to your accelerator.<br/>PortRanges:  The list of port ranges to support for connections from clients to your accelerator.<br/>AcceleratorArn:  The Amazon Resource Name (ARN) of your accelerator.<br/>
        :return: Listener:  The listener that you've created.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClientAffinity</i> Client affinity lets you direct all requests from a user to the same endpoint, if you have stateful applications, regardless of the port and protocol of the client request. Client affinity gives you control over whether to always route each client to the same specific endpoint. AWS Global Accelerator uses a consistent-flow hashing algorithm to choose the optimal endpoint for a connection. If client affinity is <code>NONE</code>, Global Accelerator uses the "five-tuple" (5-tuple) properties—source IP address, source port, destination IP address, destination port, and protocol—to select the hash value, and then chooses the best endpoint. However, with this setting, if someone uses different ports to connect to Global Accelerator, their connections might not be always routed to the same endpoint because the hash value changes.  If you want a given client to always be routed to the same endpoint, set client affinity to <code>SOURCE_IP</code> instead. When you use the <code>SOURCE_IP</code> setting, Global Accelerator uses the "two-tuple" (2-tuple) properties— source (client) IP address and destination IP address—to select the hash value. The default value is <code>NONE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Protocol</i> The protocol for the connections from clients to the accelerator.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PortRanges</i> The list of port ranges for the connections from clients to the accelerator.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ListenerArn</i> The Amazon Resource Name (ARN) of the listener.<br/>        """
        pass

    def delete_accelerator(self, AcceleratorArn: str):
        r"""Delete an accelerator. Before you can delete an accelerator, you must disable it and remove all dependent resources (listeners and endpoint groups). To disable the accelerator, update the accelerator to set <code>Enabled</code> to false. <important> When you create an accelerator, by default, Global Accelerator provides you with a set of two static IP addresses. Alternatively, you can bring your own IP address ranges to Global Accelerator and assign IP addresses from those ranges.  The IP addresses are assigned to your accelerator for as long as it exists, even if you disable the accelerator and it no longer accepts or routes traffic. However, when you <i>delete</i> an accelerator, you lose the static IP addresses that are assigned to the accelerator, so you can no longer route traffic by using them. As a best practice, ensure that you have permissions in place to avoid inadvertently deleting accelerators. You can use IAM policies with Global Accelerator to limit the users who have permissions to delete an accelerator. For more information, see <a href="https://docs.aws.amazon.com/global-accelerator/latest/dg/auth-and-access-control.html">Authentication and Access Control</a> in the <i>AWS Global Accelerator Developer Guide</i>. </important>

        :param self:
        :param AcceleratorArn:  The Amazon Resource Name (ARN) of an accelerator.<br/>
        :return:         """
        pass

    def delete_custom_routing_accelerator(self, AcceleratorArn: str):
        r"""Delete a custom routing accelerator. Before you can delete an accelerator, you must disable it and remove all dependent resources (listeners and endpoint groups). To disable the accelerator, update the accelerator to set <code>Enabled</code> to false. <important> When you create a custom routing accelerator, by default, Global Accelerator provides you with a set of two static IP addresses.  The IP addresses are assigned to your accelerator for as long as it exists, even if you disable the accelerator and it no longer accepts or routes traffic. However, when you <i>delete</i> an accelerator, you lose the static IP addresses that are assigned to the accelerator, so you can no longer route traffic by using them. As a best practice, ensure that you have permissions in place to avoid inadvertently deleting accelerators. You can use IAM policies with Global Accelerator to limit the users who have permissions to delete an accelerator. For more information, see <a href="https://docs.aws.amazon.com/global-accelerator/latest/dg/auth-and-access-control.html">Authentication and Access Control</a> in the <i>AWS Global Accelerator Developer Guide</i>. </important>

        :param self:
        :param AcceleratorArn:  The Amazon Resource Name (ARN) of the custom routing accelerator to delete.<br/>
        :return:         """
        pass

    def delete_custom_routing_endpoint_group(self, EndpointGroupArn: str):
        r"""Delete an endpoint group from a listener for a custom routing accelerator.

        :param self:
        :param EndpointGroupArn:  The Amazon Resource Name (ARN) of the endpoint group to delete.<br/>
        :return:         """
        pass

    def delete_custom_routing_listener(self, ListenerArn: str):
        r"""Delete a listener for a custom routing accelerator.

        :param self:
        :param ListenerArn:  The Amazon Resource Name (ARN) of the listener to delete.<br/>
        :return:         """
        pass

    def delete_endpoint_group(self, EndpointGroupArn: str):
        r"""Delete an endpoint group from a listener.

        :param self:
        :param EndpointGroupArn:  The Amazon Resource Name (ARN) of the endpoint group to delete.<br/>
        :return:         """
        pass

    def delete_listener(self, ListenerArn: str):
        r"""Delete a listener from an accelerator.

        :param self:
        :param ListenerArn:  The Amazon Resource Name (ARN) of the listener.<br/>
        :return:         """
        pass

    def deny_custom_routing_traffic(self, EndpointId: str, EndpointGroupArn: str, DestinationAddresses: List[IpAddress]=None, DestinationPorts: List[PortNumber]=None, DenyAllTrafficToEndpoint: GenericBoolean=None):
        r"""Specify the Amazon EC2 instance (destination) IP addresses and ports for a VPC subnet endpoint that cannot receive traffic for a custom routing accelerator. You can deny traffic to all destinations in the VPC endpoint, or deny traffic to a specified list of destination IP addresses and ports. Note that you cannot specify IP addresses or ports outside of the range that you configured for the endpoint group. After you make changes, you can verify that the updates are complete by checking the status of your accelerator: the status changes from IN_PROGRESS to DEPLOYED.

        :param self:
        :param DenyAllTrafficToEndpoint:  Indicates whether all destination IP addresses and ports for a specified VPC subnet endpoint <i>cannot</i> receive traffic from a custom routing accelerator. The value is TRUE or FALSE.  When set to TRUE, <i>no</i> destinations in the custom routing VPC subnet can receive traffic. Note that you cannot specify destination IP addresses and ports when the value is set to TRUE. When set to FALSE (or not specified), you <i>must</i> specify a list of destination IP addresses that cannot receive traffic. A list of ports is optional. If you don't specify a list of ports, the ports that can accept traffic is the same as the ports configured for the endpoint group. The default value is FALSE.<br/>DestinationPorts:  A list of specific Amazon EC2 instance ports (destination ports) in a subnet endpoint that you want to prevent from receiving traffic.<br/>DestinationAddresses:  A list of specific Amazon EC2 instance IP addresses (destination addresses) in a subnet that you want to prevent from receiving traffic. The IP addresses must be a subset of the IP addresses allowed for the VPC subnet associated with the endpoint group.<br/>EndpointId:  An ID for the endpoint. For custom routing accelerators, this is the virtual private cloud (VPC) subnet ID.<br/>EndpointGroupArn:  The Amazon Resource Name (ARN) of the endpoint group.<br/>
        :return:         """
        pass

    def deprovision_byoip_cidr(self, Cidr: str) -> DeprovisionByoipCidrResponse:
        r"""Releases the specified address range that you provisioned to use with your AWS resources through bring your own IP addresses (BYOIP) and deletes the corresponding address pool.  Before you can release an address range, you must stop advertising it by using <a href="https://docs.aws.amazon.com/global-accelerator/latest/api/WithdrawByoipCidr.html">WithdrawByoipCidr</a> and you must not have any accelerators that are using static IP addresses allocated from its address range.  For more information, see <a href="https://docs.aws.amazon.com/global-accelerator/latest/dg/using-byoip.html">Bring Your Own IP Addresses (BYOIP)</a> in the <i>AWS Global Accelerator Developer Guide</i>.

        :param self:
        :param Cidr:  The address range, in CIDR notation. The prefix must be the same prefix that you specified when you provisioned the address range.<br/>
        :return: ByoipCidr:  Information about the address range.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Events</i> A history of status changes for an IP address range that you bring to AWS Global Accelerator through bring your own IP address (BYOIP).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the address pool.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Cidr</i> The address range, in CIDR notation.<br/>        """
        pass

    def describe_accelerator(self, AcceleratorArn: str) -> DescribeAcceleratorResponse:
        r"""Describe an accelerator. 

        :param self:
        :param AcceleratorArn:  The Amazon Resource Name (ARN) of the accelerator to describe.<br/>
        :return: Accelerator:  The description of the accelerator.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedTime</i> The date and time that the accelerator was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTime</i> The date and time that the accelerator was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Describes the deployment status of the accelerator.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DnsName</i> The Domain Name System (DNS) name that Global Accelerator creates that points to your accelerator's static IP addresses.  The naming convention for the DNS name is the following: A lowercase letter a, followed by a 16-bit random hex string, followed by .awsglobalaccelerator.com. For example: a1234567890abcdef.awsglobalaccelerator.com. For more information about the default DNS name, see <a href="https://docs.aws.amazon.com/global-accelerator/latest/dg/about-accelerators.html#about-accelerators.dns-addressing"> Support for DNS Addressing in Global Accelerator</a> in the <i>AWS Global Accelerator Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IpSets</i> The static IP addresses that Global Accelerator associates with the accelerator.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Indicates whether the accelerator is enabled. The value is true or false. The default value is true.  If the value is set to true, the accelerator cannot be deleted. If set to false, accelerator can be deleted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IpAddressType</i> The value for the address type must be IPv4. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the accelerator. The name must contain only alphanumeric characters or hyphens (-), and must not begin or end with a hyphen.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AcceleratorArn</i> The Amazon Resource Name (ARN) of the accelerator.<br/>        """
        pass

    def describe_accelerator_attributes(self, AcceleratorArn: str) -> DescribeAcceleratorAttributesResponse:
        r"""Describe the attributes of an accelerator. 

        :param self:
        :param AcceleratorArn:  The Amazon Resource Name (ARN) of the accelerator with the attributes that you want to describe.<br/>
        :return: AcceleratorAttributes:  The attributes of the accelerator.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FlowLogsS3Prefix</i> The prefix for the location in the Amazon S3 bucket for the flow logs. Attribute is required if <code>FlowLogsEnabled</code> is <code>true</code>. If you don’t specify a prefix, the flow logs are stored in the root of the bucket. If you specify slash (/) for the S3 bucket prefix, the log file bucket folder structure will include a double slash (//), like the following: s3-bucket_name//AWSLogs/aws_account_id<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FlowLogsS3Bucket</i> The name of the Amazon S3 bucket for the flow logs. Attribute is required if <code>FlowLogsEnabled</code> is <code>true</code>. The bucket must exist and have a bucket policy that grants AWS Global Accelerator permission to write to the bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FlowLogsEnabled</i> Indicates whether flow logs are enabled. The default value is false. If the value is true, <code>FlowLogsS3Bucket</code> and <code>FlowLogsS3Prefix</code> must be specified. For more information, see <a href="https://docs.aws.amazon.com/global-accelerator/latest/dg/monitoring-global-accelerator.flow-logs.html">Flow Logs</a> in the <i>AWS Global Accelerator Developer Guide</i>.<br/>        """
        pass

    def describe_custom_routing_accelerator(self, AcceleratorArn: str) -> DescribeCustomRoutingAcceleratorResponse:
        r"""Describe a custom routing accelerator. 

        :param self:
        :param AcceleratorArn:  The Amazon Resource Name (ARN) of the accelerator to describe.<br/>
        :return: Accelerator:  The description of the custom routing accelerator.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedTime</i> The date and time that the accelerator was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTime</i> The date and time that the accelerator was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Describes the deployment status of the accelerator.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DnsName</i> The Domain Name System (DNS) name that Global Accelerator creates that points to your accelerator's static IP addresses.  The naming convention for the DNS name is the following: A lowercase letter a, followed by a 16-bit random hex string, followed by .awsglobalaccelerator.com. For example: a1234567890abcdef.awsglobalaccelerator.com. For more information about the default DNS name, see <a href="https://docs.aws.amazon.com/global-accelerator/latest/dg/about-accelerators.html#about-accelerators.dns-addressing"> Support for DNS Addressing in Global Accelerator</a> in the <i>AWS Global Accelerator Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IpSets</i> The static IP addresses that Global Accelerator associates with the accelerator.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Indicates whether the accelerator is enabled. The value is true or false. The default value is true.  If the value is set to true, the accelerator cannot be deleted. If set to false, accelerator can be deleted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IpAddressType</i> The value for the address type must be IPv4.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the accelerator. The name must contain only alphanumeric characters or hyphens (-), and must not begin or end with a hyphen.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AcceleratorArn</i> The Amazon Resource Name (ARN) of the custom routing accelerator.<br/>        """
        pass

    def describe_custom_routing_accelerator_attributes(self, AcceleratorArn: str) -> DescribeCustomRoutingAcceleratorAttributesResponse:
        r"""Describe the attributes of a custom routing accelerator. 

        :param self:
        :param AcceleratorArn:  The Amazon Resource Name (ARN) of the custom routing accelerator to describe the attributes for.<br/>
        :return: AcceleratorAttributes:  The attributes of the custom routing accelerator.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FlowLogsS3Prefix</i> The prefix for the location in the Amazon S3 bucket for the flow logs. Attribute is required if <code>FlowLogsEnabled</code> is <code>true</code>. If you don’t specify a prefix, the flow logs are stored in the root of the bucket. If you specify slash (/) for the S3 bucket prefix, the log file bucket folder structure will include a double slash (//), like the following: DOC-EXAMPLE-BUCKET//AWSLogs/aws_account_id<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FlowLogsS3Bucket</i> The name of the Amazon S3 bucket for the flow logs. Attribute is required if <code>FlowLogsEnabled</code> is <code>true</code>. The bucket must exist and have a bucket policy that grants AWS Global Accelerator permission to write to the bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FlowLogsEnabled</i> Indicates whether flow logs are enabled. The default value is false. If the value is true, <code>FlowLogsS3Bucket</code> and <code>FlowLogsS3Prefix</code> must be specified. For more information, see <a href="https://docs.aws.amazon.com/global-accelerator/latest/dg/monitoring-global-accelerator.flow-logs.html">Flow Logs</a> in the <i>AWS Global Accelerator Developer Guide</i>.<br/>        """
        pass

    def describe_custom_routing_endpoint_group(self, EndpointGroupArn: str) -> DescribeCustomRoutingEndpointGroupResponse:
        r"""Describe an endpoint group for a custom routing accelerator. 

        :param self:
        :param EndpointGroupArn:  The Amazon Resource Name (ARN) of the endpoint group to describe.<br/>
        :return: EndpointGroup:  The description of an endpoint group for a custom routing accelerator.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointDescriptions</i> For a custom routing accelerator, describes the endpoints (virtual private cloud subnets) in an endpoint group to accept client traffic on.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DestinationDescriptions</i> For a custom routing accelerator, describes the port range and protocol for all endpoints (virtual private cloud subnets) in an endpoint group to accept client traffic on.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointGroupRegion</i> The AWS Region where the endpoint group is located.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointGroupArn</i> The Amazon Resource Name (ARN) of the endpoint group.<br/>        """
        pass

    def describe_custom_routing_listener(self, ListenerArn: str) -> DescribeCustomRoutingListenerResponse:
        r"""The description of a listener for a custom routing accelerator.

        :param self:
        :param ListenerArn:  The Amazon Resource Name (ARN) of the listener to describe.<br/>
        :return: Listener:  The description of a listener for a custom routing accelerator.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PortRanges</i> The port range to support for connections from clients to your accelerator. Separately, you set port ranges for endpoints. For more information, see <a href="https://docs.aws.amazon.com/global-accelerator/latest/dg/about-custom-routing-endpoints.html">About endpoints for custom routing accelerators</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ListenerArn</i> The Amazon Resource Name (ARN) of the listener.<br/>        """
        pass

    def describe_endpoint_group(self, EndpointGroupArn: str) -> DescribeEndpointGroupResponse:
        r"""Describe an endpoint group. 

        :param self:
        :param EndpointGroupArn:  The Amazon Resource Name (ARN) of the endpoint group to describe.<br/>
        :return: EndpointGroup:  The description of an endpoint group.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PortOverrides</i> Allows you to override the destination ports used to route traffic to an endpoint. Using a port override lets you to map a list of external destination ports (that your users send traffic to) to a list of internal destination ports that you want an application endpoint to receive traffic on. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ThresholdCount</i> The number of consecutive health checks required to set the state of a healthy endpoint to unhealthy, or to set an unhealthy endpoint to healthy. The default value is 3.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HealthCheckIntervalSeconds</i> The time—10 seconds or 30 seconds—between health checks for each endpoint. The default value is 30.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HealthCheckPath</i> If the protocol is HTTP/S, then this value provides the ping path that Global Accelerator uses for the destination on the endpoints for health checks. The default is slash (/).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HealthCheckProtocol</i> The protocol that Global Accelerator uses to perform health checks on endpoints that are part of this endpoint group. The default value is TCP.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HealthCheckPort</i> The port that Global Accelerator uses to perform health checks on endpoints that are part of this endpoint group.  The default port is the port for the listener that this endpoint group is associated with. If the listener port is a list, Global Accelerator uses the first specified port in the list of ports.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TrafficDialPercentage</i> The percentage of traffic to send to an AWS Region. Additional traffic is distributed to other endpoint groups for this listener.  Use this action to increase (dial up) or decrease (dial down) traffic to a specific Region. The percentage is applied to the traffic that would otherwise have been routed to the Region based on optimal routing. The default value is 100.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointDescriptions</i> The list of endpoint objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointGroupRegion</i> The AWS Region where the endpoint group is located.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointGroupArn</i> The Amazon Resource Name (ARN) of the endpoint group.<br/>        """
        pass

    def describe_listener(self, ListenerArn: str) -> DescribeListenerResponse:
        r"""Describe a listener. 

        :param self:
        :param ListenerArn:  The Amazon Resource Name (ARN) of the listener to describe.<br/>
        :return: Listener:  The description of a listener.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClientAffinity</i> Client affinity lets you direct all requests from a user to the same endpoint, if you have stateful applications, regardless of the port and protocol of the client request. Client affinity gives you control over whether to always route each client to the same specific endpoint. AWS Global Accelerator uses a consistent-flow hashing algorithm to choose the optimal endpoint for a connection. If client affinity is <code>NONE</code>, Global Accelerator uses the "five-tuple" (5-tuple) properties—source IP address, source port, destination IP address, destination port, and protocol—to select the hash value, and then chooses the best endpoint. However, with this setting, if someone uses different ports to connect to Global Accelerator, their connections might not be always routed to the same endpoint because the hash value changes.  If you want a given client to always be routed to the same endpoint, set client affinity to <code>SOURCE_IP</code> instead. When you use the <code>SOURCE_IP</code> setting, Global Accelerator uses the "two-tuple" (2-tuple) properties— source (client) IP address and destination IP address—to select the hash value. The default value is <code>NONE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Protocol</i> The protocol for the connections from clients to the accelerator.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PortRanges</i> The list of port ranges for the connections from clients to the accelerator.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ListenerArn</i> The Amazon Resource Name (ARN) of the listener.<br/>        """
        pass

    def list_accelerators(self, MaxResults: int=None, NextToken: str=None) -> ListAcceleratorsResponse:
        r"""List the accelerators for an AWS account. 

        :param self:
        :param NextToken:  The token for the next set of results. You receive this token from a previous call.<br/>MaxResults:  The number of Global Accelerator objects that you want to return with this call. The default value is 10.<br/>
        :return: NextToken:  The token for the next set of results. You receive this token from a previous call.<br/>Accelerators:  The list of accelerators for a customer account.<br/>        """
        pass

    def list_byoip_cidrs(self, MaxResults: int=None, NextToken: str=None) -> ListByoipCidrsResponse:
        r"""Lists the IP address ranges that were specified in calls to <a href="https://docs.aws.amazon.com/global-accelerator/latest/api/ProvisionByoipCidr.html">ProvisionByoipCidr</a>, including the current state and a history of state changes.

        :param self:
        :param NextToken:  The token for the next page of results.<br/>MaxResults:  The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.<br/>
        :return: NextToken:  The token for the next page of results.<br/>ByoipCidrs:  Information about your address ranges.<br/>        """
        pass

    def list_custom_routing_accelerators(self, MaxResults: int=None, NextToken: str=None) -> ListCustomRoutingAcceleratorsResponse:
        r"""List the custom routing accelerators for an AWS account. 

        :param self:
        :param NextToken:  The token for the next set of results. You receive this token from a previous call.<br/>MaxResults:  The number of custom routing Global Accelerator objects that you want to return with this call. The default value is 10.<br/>
        :return: NextToken:  The token for the next set of results. You receive this token from a previous call.<br/>Accelerators:  The list of custom routing accelerators for a customer account.<br/>        """
        pass

    def list_custom_routing_endpoint_groups(self, ListenerArn: str, MaxResults: int=None, NextToken: str=None) -> ListCustomRoutingEndpointGroupsResponse:
        r"""List the endpoint groups that are associated with a listener for a custom routing accelerator. 

        :param self:
        :param NextToken:  The token for the next set of results. You receive this token from a previous call.<br/>MaxResults:  The number of endpoint group objects that you want to return with this call. The default value is 10.<br/>ListenerArn:  The Amazon Resource Name (ARN) of the listener to list endpoint groups for.<br/>
        :return: NextToken:  The token for the next set of results. You receive this token from a previous call.<br/>EndpointGroups:  The list of the endpoint groups associated with a listener for a custom routing accelerator.<br/>        """
        pass

    def list_custom_routing_listeners(self, AcceleratorArn: str, MaxResults: int=None, NextToken: str=None) -> ListCustomRoutingListenersResponse:
        r"""List the listeners for a custom routing accelerator. 

        :param self:
        :param NextToken:  The token for the next set of results. You receive this token from a previous call.<br/>MaxResults:  The number of listener objects that you want to return with this call. The default value is 10.<br/>AcceleratorArn:  The Amazon Resource Name (ARN) of the accelerator to list listeners for.<br/>
        :return: NextToken:  The token for the next set of results. You receive this token from a previous call.<br/>Listeners:  The list of listeners for a custom routing accelerator.<br/>        """
        pass

    def list_custom_routing_port_mappings(self, AcceleratorArn: str, EndpointGroupArn: str=None, MaxResults: int=None, NextToken: str=None) -> ListCustomRoutingPortMappingsResponse:
        r"""Provides a complete mapping from the public accelerator IP address and port to destination EC2 instance IP addresses and ports in the virtual public cloud (VPC) subnet endpoint for a custom routing accelerator. For each subnet endpoint that you add, Global Accelerator creates a new static port mapping for the accelerator. The port mappings don't change after Global Accelerator generates them, so you can retrieve and cache the full mapping on your servers.  If you remove a subnet from your accelerator, Global Accelerator removes (reclaims) the port mappings. If you add a subnet to your accelerator, Global Accelerator creates new port mappings (the existing ones don't change). If you add or remove EC2 instances in your subnet, the port mappings don't change, because the mappings are created when you add the subnet to Global Accelerator. The mappings also include a flag for each destination denoting which destination IP addresses and ports are allowed or denied traffic.

        :param self:
        :param NextToken:  The token for the next set of results. You receive this token from a previous call.<br/>MaxResults:  The number of destination port mappings that you want to return with this call. The default value is 10.<br/>EndpointGroupArn:  The Amazon Resource Name (ARN) of the endpoint group to list the custom routing port mappings for.<br/>AcceleratorArn:  The Amazon Resource Name (ARN) of the accelerator to list the custom routing port mappings for.<br/>
        :return: NextToken:  The token for the next set of results. You receive this token from a previous call.<br/>PortMappings:  The port mappings for a custom routing accelerator.<br/>        """
        pass

    def list_custom_routing_port_mappings_by_destination(self, DestinationAddress: str, EndpointId: str, MaxResults: int=None, NextToken: str=None) -> ListCustomRoutingPortMappingsByDestinationResponse:
        r"""List the port mappings for a specific EC2 instance (destination) in a VPC subnet endpoint. The response is the mappings for one destination IP address. This is useful when your subnet endpoint has mappings that span multiple custom routing accelerators in your account, or for scenarios where you only want to list the port mappings for a specific destination instance.

        :param self:
        :param NextToken:  The token for the next set of results. You receive this token from a previous call.<br/>MaxResults:  The number of destination port mappings that you want to return with this call. The default value is 10.<br/>DestinationAddress:  The endpoint IP address in a virtual private cloud (VPC) subnet for which you want to receive back port mappings.<br/>EndpointId:  The ID for the virtual private cloud (VPC) subnet.<br/>
        :return: NextToken:  The token for the next set of results. You receive this token from a previous call.<br/>DestinationPortMappings:  The port mappings for the endpoint IP address that you specified in the request.<br/>        """
        pass

    def list_endpoint_groups(self, ListenerArn: str, MaxResults: int=None, NextToken: str=None) -> ListEndpointGroupsResponse:
        r"""List the endpoint groups that are associated with a listener. 

        :param self:
        :param NextToken:  The token for the next set of results. You receive this token from a previous call.<br/>MaxResults:  The number of endpoint group objects that you want to return with this call. The default value is 10.<br/>ListenerArn:  The Amazon Resource Name (ARN) of the listener.<br/>
        :return: NextToken:  The token for the next set of results. You receive this token from a previous call.<br/>EndpointGroups:  The list of the endpoint groups associated with a listener.<br/>        """
        pass

    def list_listeners(self, AcceleratorArn: str, MaxResults: int=None, NextToken: str=None) -> ListListenersResponse:
        r"""List the listeners for an accelerator. 

        :param self:
        :param NextToken:  The token for the next set of results. You receive this token from a previous call.<br/>MaxResults:  The number of listener objects that you want to return with this call. The default value is 10.<br/>AcceleratorArn:  The Amazon Resource Name (ARN) of the accelerator for which you want to list listener objects.<br/>
        :return: NextToken:  The token for the next set of results. You receive this token from a previous call.<br/>Listeners:  The list of listeners for an accelerator.<br/>        """
        pass

    def list_tags_for_resource(self, ResourceArn: str) -> ListTagsForResourceResponse:
        r"""List all tags for an accelerator.  For more information, see <a href="https://docs.aws.amazon.com/global-accelerator/latest/dg/tagging-in-global-accelerator.html">Tagging in AWS Global Accelerator</a> in the <i>AWS Global Accelerator Developer Guide</i>. 

        :param self:
        :param ResourceArn:  The Amazon Resource Name (ARN) of the accelerator to list tags for. An ARN uniquely identifies an accelerator.<br/>
        :return: Tags:  Root level tag for the Tags parameters.<br/>        """
        pass

    def provision_byoip_cidr(self, CidrAuthorizationContext: CidrAuthorizationContext, Cidr: str) -> ProvisionByoipCidrResponse:
        r"""Provisions an IP address range to use with your AWS resources through bring your own IP addresses (BYOIP) and creates a corresponding address pool. After the address range is provisioned, it is ready to be advertised using <a href="https://docs.aws.amazon.com/global-accelerator/latest/api/AdvertiseByoipCidr.html"> AdvertiseByoipCidr</a>. For more information, see <a href="https://docs.aws.amazon.com/global-accelerator/latest/dg/using-byoip.html">Bring Your Own IP Addresses (BYOIP)</a> in the <i>AWS Global Accelerator Developer Guide</i>.

        :param self:
        :param CidrAuthorizationContext:  A signed document that proves that you are authorized to bring the specified IP address range to Amazon using BYOIP. :<br/>Cidr:  The public IPv4 address range, in CIDR notation. The most specific IP prefix that you can specify is /24. The address range cannot overlap with another address range that you've brought to this or another Region.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Signature</i> The signed authorization message for the prefix and account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> The plain-text authorization message for the prefix and account.<br/>
        :return: ByoipCidr:  Information about the address range.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Events</i> A history of status changes for an IP address range that you bring to AWS Global Accelerator through bring your own IP address (BYOIP).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the address pool.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Cidr</i> The address range, in CIDR notation.<br/>        """
        pass

    def remove_custom_routing_endpoints(self, EndpointGroupArn: str, EndpointIds: List[GenericString]):
        r"""Remove endpoints from a custom routing accelerator.

        :param self:
        :param EndpointGroupArn:  The Amazon Resource Name (ARN) of the endpoint group to remove endpoints from.<br/>EndpointIds:  The IDs for the endpoints. For custom routing accelerators, endpoint IDs are the virtual private cloud (VPC) subnet IDs. <br/>
        :return:         """
        pass

    def tag_resource(self, Tags: List[Tag], ResourceArn: str) -> TagResourceResponse:
        r"""Add tags to an accelerator resource.  For more information, see <a href="https://docs.aws.amazon.com/global-accelerator/latest/dg/tagging-in-global-accelerator.html">Tagging in AWS Global Accelerator</a> in the <i>AWS Global Accelerator Developer Guide</i>. 

        :param self:
        :param Tags:  The tags to add to a resource. A tag consists of a key and a value that you define.<br/>ResourceArn:  The Amazon Resource Name (ARN) of the Global Accelerator resource to add tags to. An ARN uniquely identifies a resource.<br/>
        :return:         """
        pass

    def untag_resource(self, TagKeys: List[TagKey], ResourceArn: str) -> UntagResourceResponse:
        r"""Remove tags from a Global Accelerator resource. When you specify a tag key, the action removes both that key and its associated value. The operation succeeds even if you attempt to remove tags from an accelerator that was already removed. For more information, see <a href="https://docs.aws.amazon.com/global-accelerator/latest/dg/tagging-in-global-accelerator.html">Tagging in AWS Global Accelerator</a> in the <i>AWS Global Accelerator Developer Guide</i>.

        :param self:
        :param TagKeys:  The tag key pairs that you want to remove from the specified resources.<br/>ResourceArn:  The Amazon Resource Name (ARN) of the Global Accelerator resource to remove tags from. An ARN uniquely identifies a resource.<br/>
        :return:         """
        pass

    def update_accelerator(self, AcceleratorArn: str, Name: str=None, IpAddressType: str=None, Enabled: GenericBoolean=None) -> UpdateAcceleratorResponse:
        r"""Update an accelerator.  <important> Global Accelerator is a global service that supports endpoints in multiple AWS Regions but you must specify the US West (Oregon) Region to create or update accelerators. </important>

        :param self:
        :param Enabled:  Indicates whether an accelerator is enabled. The value is true or false. The default value is true.  If the value is set to true, the accelerator cannot be deleted. If set to false, the accelerator can be deleted.<br/>IpAddressType:  The IP address type, which must be IPv4.<br/>Name:  The name of the accelerator. The name can have a maximum of 32 characters, must contain only alphanumeric characters or hyphens (-), and must not begin or end with a hyphen.<br/>AcceleratorArn:  The Amazon Resource Name (ARN) of the accelerator to update.<br/>
        :return: Accelerator:  Information about the updated accelerator.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedTime</i> The date and time that the accelerator was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTime</i> The date and time that the accelerator was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Describes the deployment status of the accelerator.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DnsName</i> The Domain Name System (DNS) name that Global Accelerator creates that points to your accelerator's static IP addresses.  The naming convention for the DNS name is the following: A lowercase letter a, followed by a 16-bit random hex string, followed by .awsglobalaccelerator.com. For example: a1234567890abcdef.awsglobalaccelerator.com. For more information about the default DNS name, see <a href="https://docs.aws.amazon.com/global-accelerator/latest/dg/about-accelerators.html#about-accelerators.dns-addressing"> Support for DNS Addressing in Global Accelerator</a> in the <i>AWS Global Accelerator Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IpSets</i> The static IP addresses that Global Accelerator associates with the accelerator.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Indicates whether the accelerator is enabled. The value is true or false. The default value is true.  If the value is set to true, the accelerator cannot be deleted. If set to false, accelerator can be deleted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IpAddressType</i> The value for the address type must be IPv4. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the accelerator. The name must contain only alphanumeric characters or hyphens (-), and must not begin or end with a hyphen.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AcceleratorArn</i> The Amazon Resource Name (ARN) of the accelerator.<br/>        """
        pass

    def update_accelerator_attributes(self, AcceleratorArn: str, FlowLogsEnabled: GenericBoolean=None, FlowLogsS3Bucket: str=None, FlowLogsS3Prefix: str=None) -> UpdateAcceleratorAttributesResponse:
        r"""Update the attributes for an accelerator. 

        :param self:
        :param FlowLogsS3Prefix:  Update the prefix for the location in the Amazon S3 bucket for the flow logs. Attribute is required if <code>FlowLogsEnabled</code> is <code>true</code>.  If you don’t specify a prefix, the flow logs are stored in the root of the bucket. If you specify slash (/) for the S3 bucket prefix, the log file bucket folder structure will include a double slash (//), like the following: s3-bucket_name//AWSLogs/aws_account_id<br/>FlowLogsS3Bucket:  The name of the Amazon S3 bucket for the flow logs. Attribute is required if <code>FlowLogsEnabled</code> is <code>true</code>. The bucket must exist and have a bucket policy that grants AWS Global Accelerator permission to write to the bucket.<br/>FlowLogsEnabled:  Update whether flow logs are enabled. The default value is false. If the value is true, <code>FlowLogsS3Bucket</code> and <code>FlowLogsS3Prefix</code> must be specified. For more information, see <a href="https://docs.aws.amazon.com/global-accelerator/latest/dg/monitoring-global-accelerator.flow-logs.html">Flow Logs</a> in the <i>AWS Global Accelerator Developer Guide</i>.<br/>AcceleratorArn:  The Amazon Resource Name (ARN) of the accelerator that you want to update.<br/>
        :return: AcceleratorAttributes:  Updated attributes for the accelerator.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FlowLogsS3Prefix</i> The prefix for the location in the Amazon S3 bucket for the flow logs. Attribute is required if <code>FlowLogsEnabled</code> is <code>true</code>. If you don’t specify a prefix, the flow logs are stored in the root of the bucket. If you specify slash (/) for the S3 bucket prefix, the log file bucket folder structure will include a double slash (//), like the following: s3-bucket_name//AWSLogs/aws_account_id<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FlowLogsS3Bucket</i> The name of the Amazon S3 bucket for the flow logs. Attribute is required if <code>FlowLogsEnabled</code> is <code>true</code>. The bucket must exist and have a bucket policy that grants AWS Global Accelerator permission to write to the bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FlowLogsEnabled</i> Indicates whether flow logs are enabled. The default value is false. If the value is true, <code>FlowLogsS3Bucket</code> and <code>FlowLogsS3Prefix</code> must be specified. For more information, see <a href="https://docs.aws.amazon.com/global-accelerator/latest/dg/monitoring-global-accelerator.flow-logs.html">Flow Logs</a> in the <i>AWS Global Accelerator Developer Guide</i>.<br/>        """
        pass

    def update_custom_routing_accelerator(self, AcceleratorArn: str, Name: str=None, IpAddressType: str=None, Enabled: GenericBoolean=None) -> UpdateCustomRoutingAcceleratorResponse:
        r"""Update a custom routing accelerator. 

        :param self:
        :param Enabled:  Indicates whether an accelerator is enabled. The value is true or false. The default value is true.  If the value is set to true, the accelerator cannot be deleted. If set to false, the accelerator can be deleted.<br/>IpAddressType:  The value for the address type must be IPv4.<br/>Name:  The name of the accelerator. The name can have a maximum of 32 characters, must contain only alphanumeric characters or hyphens (-), and must not begin or end with a hyphen.<br/>AcceleratorArn:  The Amazon Resource Name (ARN) of the accelerator to update.<br/>
        :return: Accelerator:  Information about the updated custom routing accelerator.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedTime</i> The date and time that the accelerator was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTime</i> The date and time that the accelerator was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Describes the deployment status of the accelerator.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DnsName</i> The Domain Name System (DNS) name that Global Accelerator creates that points to your accelerator's static IP addresses.  The naming convention for the DNS name is the following: A lowercase letter a, followed by a 16-bit random hex string, followed by .awsglobalaccelerator.com. For example: a1234567890abcdef.awsglobalaccelerator.com. For more information about the default DNS name, see <a href="https://docs.aws.amazon.com/global-accelerator/latest/dg/about-accelerators.html#about-accelerators.dns-addressing"> Support for DNS Addressing in Global Accelerator</a> in the <i>AWS Global Accelerator Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IpSets</i> The static IP addresses that Global Accelerator associates with the accelerator.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Indicates whether the accelerator is enabled. The value is true or false. The default value is true.  If the value is set to true, the accelerator cannot be deleted. If set to false, accelerator can be deleted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IpAddressType</i> The value for the address type must be IPv4.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the accelerator. The name must contain only alphanumeric characters or hyphens (-), and must not begin or end with a hyphen.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AcceleratorArn</i> The Amazon Resource Name (ARN) of the custom routing accelerator.<br/>        """
        pass

    def update_custom_routing_accelerator_attributes(self, AcceleratorArn: str, FlowLogsEnabled: GenericBoolean=None, FlowLogsS3Bucket: str=None, FlowLogsS3Prefix: str=None) -> UpdateCustomRoutingAcceleratorAttributesResponse:
        r"""Update the attributes for a custom routing accelerator. 

        :param self:
        :param FlowLogsS3Prefix:  Update the prefix for the location in the Amazon S3 bucket for the flow logs. Attribute is required if <code>FlowLogsEnabled</code> is <code>true</code>.  If you don’t specify a prefix, the flow logs are stored in the root of the bucket. If you specify slash (/) for the S3 bucket prefix, the log file bucket folder structure will include a double slash (//), like the following: DOC-EXAMPLE-BUCKET//AWSLogs/aws_account_id<br/>FlowLogsS3Bucket:  The name of the Amazon S3 bucket for the flow logs. Attribute is required if <code>FlowLogsEnabled</code> is <code>true</code>. The bucket must exist and have a bucket policy that grants AWS Global Accelerator permission to write to the bucket.<br/>FlowLogsEnabled:  Update whether flow logs are enabled. The default value is false. If the value is true, <code>FlowLogsS3Bucket</code> and <code>FlowLogsS3Prefix</code> must be specified. For more information, see <a href="https://docs.aws.amazon.com/global-accelerator/latest/dg/monitoring-global-accelerator.flow-logs.html">Flow Logs</a> in the <i>AWS Global Accelerator Developer Guide</i>.<br/>AcceleratorArn:  The Amazon Resource Name (ARN) of the custom routing accelerator to update attributes for.<br/>
        :return: AcceleratorAttributes:  Updated custom routing accelerator.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FlowLogsS3Prefix</i> The prefix for the location in the Amazon S3 bucket for the flow logs. Attribute is required if <code>FlowLogsEnabled</code> is <code>true</code>. If you don’t specify a prefix, the flow logs are stored in the root of the bucket. If you specify slash (/) for the S3 bucket prefix, the log file bucket folder structure will include a double slash (//), like the following: DOC-EXAMPLE-BUCKET//AWSLogs/aws_account_id<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FlowLogsS3Bucket</i> The name of the Amazon S3 bucket for the flow logs. Attribute is required if <code>FlowLogsEnabled</code> is <code>true</code>. The bucket must exist and have a bucket policy that grants AWS Global Accelerator permission to write to the bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FlowLogsEnabled</i> Indicates whether flow logs are enabled. The default value is false. If the value is true, <code>FlowLogsS3Bucket</code> and <code>FlowLogsS3Prefix</code> must be specified. For more information, see <a href="https://docs.aws.amazon.com/global-accelerator/latest/dg/monitoring-global-accelerator.flow-logs.html">Flow Logs</a> in the <i>AWS Global Accelerator Developer Guide</i>.<br/>        """
        pass

    def update_custom_routing_listener(self, PortRanges: List[PortRange], ListenerArn: str) -> UpdateCustomRoutingListenerResponse:
        r"""Update a listener for a custom routing accelerator. 

        :param self:
        :param PortRanges:  The updated port range to support for connections from clients to your accelerator. If you remove ports that are currently being used by a subnet endpoint, the call fails. Separately, you set port ranges for endpoints. For more information, see <a href="https://docs.aws.amazon.com/global-accelerator/latest/dg/about-custom-routing-endpoints.html">About endpoints for custom routing accelerators</a>.<br/>ListenerArn:  The Amazon Resource Name (ARN) of the listener to update.<br/>
        :return: Listener:  Information for the updated listener for a custom routing accelerator.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PortRanges</i> The port range to support for connections from clients to your accelerator. Separately, you set port ranges for endpoints. For more information, see <a href="https://docs.aws.amazon.com/global-accelerator/latest/dg/about-custom-routing-endpoints.html">About endpoints for custom routing accelerators</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ListenerArn</i> The Amazon Resource Name (ARN) of the listener.<br/>        """
        pass

    def update_endpoint_group(self, EndpointGroupArn: str, EndpointConfigurations: List[EndpointConfiguration]=None, TrafficDialPercentage: TrafficDialPercentage=None, HealthCheckPort: int=None, HealthCheckProtocol: str=None, HealthCheckPath: str=None, HealthCheckIntervalSeconds: int=None, ThresholdCount: int=None, PortOverrides: List[PortOverride]=None) -> UpdateEndpointGroupResponse:
        r"""Update an endpoint group. A resource must be valid and active when you add it as an endpoint.

        :param self:
        :param PortOverrides:  Override specific listener ports used to route traffic to endpoints that are part of this endpoint group. For example, you can create a port override in which the listener receives user traffic on ports 80 and 443, but your accelerator routes that traffic to ports 1080 and 1443, respectively, on the endpoints. For more information, see <a href="https://docs.aws.amazon.com/global-accelerator/latest/dg/about-endpoint-groups-port-override.html"> Port overrides</a> in the <i>AWS Global Accelerator Developer Guide</i>.<br/>ThresholdCount:  The number of consecutive health checks required to set the state of a healthy endpoint to unhealthy, or to set an unhealthy endpoint to healthy. The default value is 3.<br/>HealthCheckIntervalSeconds:  The time—10 seconds or 30 seconds—between each health check for an endpoint. The default value is 30.<br/>HealthCheckPath:  If the protocol is HTTP/S, then this specifies the path that is the destination for health check targets. The default value is slash (/).<br/>HealthCheckProtocol:  The protocol that AWS Global Accelerator uses to check the health of endpoints that are part of this endpoint group. The default value is TCP.<br/>HealthCheckPort:  The port that AWS Global Accelerator uses to check the health of endpoints that are part of this endpoint group. The default port is the listener port that this endpoint group is associated with. If the listener port is a list of ports, Global Accelerator uses the first port in the list.<br/>TrafficDialPercentage:  The percentage of traffic to send to an AWS Region. Additional traffic is distributed to other endpoint groups for this listener.  Use this action to increase (dial up) or decrease (dial down) traffic to a specific Region. The percentage is applied to the traffic that would otherwise have been routed to the Region based on optimal routing. The default value is 100.<br/>EndpointConfigurations:  The list of endpoint objects. A resource must be valid and active when you add it as an endpoint.<br/>EndpointGroupArn:  The Amazon Resource Name (ARN) of the endpoint group.<br/>
        :return: EndpointGroup:  The information about the endpoint group that was updated.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PortOverrides</i> Allows you to override the destination ports used to route traffic to an endpoint. Using a port override lets you to map a list of external destination ports (that your users send traffic to) to a list of internal destination ports that you want an application endpoint to receive traffic on. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ThresholdCount</i> The number of consecutive health checks required to set the state of a healthy endpoint to unhealthy, or to set an unhealthy endpoint to healthy. The default value is 3.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HealthCheckIntervalSeconds</i> The time—10 seconds or 30 seconds—between health checks for each endpoint. The default value is 30.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HealthCheckPath</i> If the protocol is HTTP/S, then this value provides the ping path that Global Accelerator uses for the destination on the endpoints for health checks. The default is slash (/).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HealthCheckProtocol</i> The protocol that Global Accelerator uses to perform health checks on endpoints that are part of this endpoint group. The default value is TCP.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HealthCheckPort</i> The port that Global Accelerator uses to perform health checks on endpoints that are part of this endpoint group.  The default port is the port for the listener that this endpoint group is associated with. If the listener port is a list, Global Accelerator uses the first specified port in the list of ports.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TrafficDialPercentage</i> The percentage of traffic to send to an AWS Region. Additional traffic is distributed to other endpoint groups for this listener.  Use this action to increase (dial up) or decrease (dial down) traffic to a specific Region. The percentage is applied to the traffic that would otherwise have been routed to the Region based on optimal routing. The default value is 100.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointDescriptions</i> The list of endpoint objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointGroupRegion</i> The AWS Region where the endpoint group is located.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointGroupArn</i> The Amazon Resource Name (ARN) of the endpoint group.<br/>        """
        pass

    def update_listener(self, ListenerArn: str, PortRanges: List[PortRange]=None, Protocol: str=None, ClientAffinity: str=None) -> UpdateListenerResponse:
        r"""Update a listener. 

        :param self:
        :param ClientAffinity:  Client affinity lets you direct all requests from a user to the same endpoint, if you have stateful applications, regardless of the port and protocol of the client request. Client affinity gives you control over whether to always route each client to the same specific endpoint. AWS Global Accelerator uses a consistent-flow hashing algorithm to choose the optimal endpoint for a connection. If client affinity is <code>NONE</code>, Global Accelerator uses the "five-tuple" (5-tuple) properties—source IP address, source port, destination IP address, destination port, and protocol—to select the hash value, and then chooses the best endpoint. However, with this setting, if someone uses different ports to connect to Global Accelerator, their connections might not be always routed to the same endpoint because the hash value changes.  If you want a given client to always be routed to the same endpoint, set client affinity to <code>SOURCE_IP</code> instead. When you use the <code>SOURCE_IP</code> setting, Global Accelerator uses the "two-tuple" (2-tuple) properties— source (client) IP address and destination IP address—to select the hash value. The default value is <code>NONE</code>.<br/>Protocol:  The updated protocol for the connections from clients to the accelerator.<br/>PortRanges:  The updated list of port ranges for the connections from clients to the accelerator.<br/>ListenerArn:  The Amazon Resource Name (ARN) of the listener to update.<br/>
        :return: Listener:  Information for the updated listener.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClientAffinity</i> Client affinity lets you direct all requests from a user to the same endpoint, if you have stateful applications, regardless of the port and protocol of the client request. Client affinity gives you control over whether to always route each client to the same specific endpoint. AWS Global Accelerator uses a consistent-flow hashing algorithm to choose the optimal endpoint for a connection. If client affinity is <code>NONE</code>, Global Accelerator uses the "five-tuple" (5-tuple) properties—source IP address, source port, destination IP address, destination port, and protocol—to select the hash value, and then chooses the best endpoint. However, with this setting, if someone uses different ports to connect to Global Accelerator, their connections might not be always routed to the same endpoint because the hash value changes.  If you want a given client to always be routed to the same endpoint, set client affinity to <code>SOURCE_IP</code> instead. When you use the <code>SOURCE_IP</code> setting, Global Accelerator uses the "two-tuple" (2-tuple) properties— source (client) IP address and destination IP address—to select the hash value. The default value is <code>NONE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Protocol</i> The protocol for the connections from clients to the accelerator.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PortRanges</i> The list of port ranges for the connections from clients to the accelerator.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ListenerArn</i> The Amazon Resource Name (ARN) of the listener.<br/>        """
        pass

    def withdraw_byoip_cidr(self, Cidr: str) -> WithdrawByoipCidrResponse:
        r"""Stops advertising an address range that is provisioned as an address pool. You can perform this operation at most once every 10 seconds, even if you specify different address ranges each time. It can take a few minutes before traffic to the specified addresses stops routing to AWS because of propagation delays. For more information, see <a href="https://docs.aws.amazon.com/global-accelerator/latest/dg/using-byoip.html">Bring Your Own IP Addresses (BYOIP)</a> in the <i>AWS Global Accelerator Developer Guide</i>.

        :param self:
        :param Cidr:  The address range, in CIDR notation.<br/>
        :return: ByoipCidr:  Information about the address pool.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Events</i> A history of status changes for an IP address range that you bring to AWS Global Accelerator through bring your own IP address (BYOIP).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the address pool.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Cidr</i> The address range, in CIDR notation.<br/>        """
        pass





class Glue(BaseClient):
    r"""<fullname>Glue</fullname> Defines the public endpoint for the Glue service."""


    class GetJobsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_jobs` for valid parameters"""
            pass
    class GetPartitionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_partitions` for valid parameters"""
            pass
    class GetDatabasesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_databases` for valid parameters"""
            pass
    class GetClassifiersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_classifiers` for valid parameters"""
            pass
    class GetTableVersionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_table_versions` for valid parameters"""
            pass
    class GetCrawlersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_crawlers` for valid parameters"""
            pass
    class GetDevEndpointsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_dev_endpoints` for valid parameters"""
            pass
    class GetJobRunsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_job_runs` for valid parameters"""
            pass
    class GetTriggersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_triggers` for valid parameters"""
            pass
    class GetTablesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_tables` for valid parameters"""
            pass
    class GetUserDefinedFunctionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_user_defined_functions` for valid parameters"""
            pass
    class GetCrawlerMetricsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_crawler_metrics` for valid parameters"""
            pass
    class GetConnectionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_connections` for valid parameters"""
            pass
    class GetSecurityConfigurationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_security_configurations` for valid parameters"""
            pass
    class GetPartitionIndexesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_partition_indexes` for valid parameters"""
            pass
    class GetResourcePoliciesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_resource_policies` for valid parameters"""
            pass
    class ListRegistriesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_registries` for valid parameters"""
            pass
    class ListSchemaVersionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_schema_versions` for valid parameters"""
            pass
    class ListSchemasPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_schemas` for valid parameters"""
            pass


    class BatchCreatePartitionRequest(Mapping):
        pass
    
    class BatchCreatePartitionResponse(Mapping):
        pass
    
    class PartitionInput(Mapping):
        pass
    
    class BatchDeleteConnectionRequest(Mapping):
        pass
    
    class BatchDeleteConnectionResponse(Mapping):
        pass
    
    class NameString(object):
        pass
    
    class BatchDeletePartitionRequest(Mapping):
        pass
    
    class BatchDeletePartitionResponse(Mapping):
        pass
    
    class PartitionValueList(Mapping):
        pass
    
    class BatchDeleteTableRequest(Mapping):
        pass
    
    class BatchDeleteTableResponse(Mapping):
        pass
    
    class BatchDeleteTableVersionRequest(Mapping):
        pass
    
    class BatchDeleteTableVersionResponse(Mapping):
        pass
    
    class VersionString(object):
        pass
    
    class BatchGetCrawlersRequest(Mapping):
        pass
    
    class BatchGetCrawlersResponse(Mapping):
        pass
    
    class BatchGetDevEndpointsRequest(Mapping):
        pass
    
    class BatchGetDevEndpointsResponse(Mapping):
        pass
    
    class GenericString(object):
        pass
    
    class BatchGetJobsRequest(Mapping):
        pass
    
    class BatchGetJobsResponse(Mapping):
        pass
    
    class BatchGetPartitionRequest(Mapping):
        pass
    
    class BatchGetPartitionResponse(Mapping):
        pass
    
    class BatchGetTriggersRequest(Mapping):
        pass
    
    class BatchGetTriggersResponse(Mapping):
        pass
    
    class BatchGetWorkflowsRequest(Mapping):
        pass
    
    class BatchGetWorkflowsResponse(Mapping):
        pass
    
    class NullableBoolean(object):
        pass
    
    class BatchStopJobRunRequest(Mapping):
        pass
    
    class BatchStopJobRunResponse(Mapping):
        pass
    
    class IdString(object):
        pass
    
    class BatchUpdatePartitionRequest(Mapping):
        pass
    
    class BatchUpdatePartitionResponse(Mapping):
        pass
    
    class BatchUpdatePartitionRequestEntry(Mapping):
        pass
    
    class CancelMLTaskRunRequest(Mapping):
        pass
    
    class CancelMLTaskRunResponse(Mapping):
        pass
    
    class CheckSchemaVersionValidityInput(Mapping):
        pass
    
    class CheckSchemaVersionValidityResponse(Mapping):
        pass
    
    class CreateClassifierRequest(Mapping):
        pass
    
    class CreateClassifierResponse(Mapping):
        pass
    
    class CreateGrokClassifierRequest(Mapping):
        pass
    
    class CreateXMLClassifierRequest(Mapping):
        pass
    
    class CreateJsonClassifierRequest(Mapping):
        pass
    
    class CreateCsvClassifierRequest(Mapping):
        pass
    
    class CreateConnectionRequest(Mapping):
        pass
    
    class CreateConnectionResponse(Mapping):
        pass
    
    class ConnectionInput(Mapping):
        pass
    
    class CreateCrawlerRequest(Mapping):
        pass
    
    class CreateCrawlerResponse(Mapping):
        pass
    
    class CrawlerTargets(Mapping):
        pass
    
    class SchemaChangePolicy(Mapping):
        pass
    
    class RecrawlPolicy(Mapping):
        pass
    
    class LineageConfiguration(Mapping):
        pass
    
    class TagsMap(object):
        pass
    
    class CreateDatabaseRequest(Mapping):
        pass
    
    class CreateDatabaseResponse(Mapping):
        pass
    
    class DatabaseInput(Mapping):
        pass
    
    class CreateDevEndpointRequest(Mapping):
        pass
    
    class CreateDevEndpointResponse(Mapping):
        pass
    
    class MapValue(object):
        pass
    
    class CreateJobRequest(Mapping):
        pass
    
    class CreateJobResponse(Mapping):
        pass
    
    class ExecutionProperty(Mapping):
        pass
    
    class JobCommand(Mapping):
        pass
    
    class GenericMap(object):
        pass
    
    class ConnectionsList(Mapping):
        pass
    
    class NullableDouble(object):
        pass
    
    class NotificationProperty(Mapping):
        pass
    
    class CreateMLTransformRequest(Mapping):
        pass
    
    class CreateMLTransformResponse(Mapping):
        pass
    
    class GlueTable(Mapping):
        pass
    
    class TransformParameters(Mapping):
        pass
    
    class TransformEncryption(Mapping):
        pass
    
    class CreatePartitionRequest(Mapping):
        pass
    
    class CreatePartitionResponse(Mapping):
        pass
    
    class CreatePartitionIndexRequest(Mapping):
        pass
    
    class CreatePartitionIndexResponse(Mapping):
        pass
    
    class PartitionIndex(Mapping):
        pass
    
    class CreateRegistryInput(Mapping):
        pass
    
    class CreateRegistryResponse(Mapping):
        pass
    
    class CreateSchemaInput(Mapping):
        pass
    
    class CreateSchemaResponse(Mapping):
        pass
    
    class RegistryId(Mapping):
        pass
    
    class CreateScriptRequest(Mapping):
        pass
    
    class CreateScriptResponse(Mapping):
        pass
    
    class CodeGenNode(Mapping):
        pass
    
    class CodeGenEdge(Mapping):
        pass
    
    class CreateSecurityConfigurationRequest(Mapping):
        pass
    
    class CreateSecurityConfigurationResponse(Mapping):
        pass
    
    class EncryptionConfiguration(Mapping):
        pass
    
    class CreateTableRequest(Mapping):
        pass
    
    class CreateTableResponse(Mapping):
        pass
    
    class TableInput(Mapping):
        pass
    
    class CreateTriggerRequest(Mapping):
        pass
    
    class CreateTriggerResponse(Mapping):
        pass
    
    class Predicate(Mapping):
        pass
    
    class Action(Mapping):
        pass
    
    class BooleanValue(object):
        pass
    
    class CreateUserDefinedFunctionRequest(Mapping):
        pass
    
    class CreateUserDefinedFunctionResponse(Mapping):
        pass
    
    class UserDefinedFunctionInput(Mapping):
        pass
    
    class CreateWorkflowRequest(Mapping):
        pass
    
    class CreateWorkflowResponse(Mapping):
        pass
    
    class WorkflowRunProperties(object):
        pass
    
    class DeleteClassifierRequest(Mapping):
        pass
    
    class DeleteClassifierResponse(Mapping):
        pass
    
    class DeleteColumnStatisticsForPartitionRequest(Mapping):
        pass
    
    class DeleteColumnStatisticsForPartitionResponse(Mapping):
        pass
    
    class ValueString(object):
        pass
    
    class DeleteColumnStatisticsForTableRequest(Mapping):
        pass
    
    class DeleteColumnStatisticsForTableResponse(Mapping):
        pass
    
    class DeleteConnectionRequest(Mapping):
        pass
    
    class DeleteConnectionResponse(Mapping):
        pass
    
    class DeleteCrawlerRequest(Mapping):
        pass
    
    class DeleteCrawlerResponse(Mapping):
        pass
    
    class DeleteDatabaseRequest(Mapping):
        pass
    
    class DeleteDatabaseResponse(Mapping):
        pass
    
    class DeleteDevEndpointRequest(Mapping):
        pass
    
    class DeleteDevEndpointResponse(Mapping):
        pass
    
    class DeleteJobRequest(Mapping):
        pass
    
    class DeleteJobResponse(Mapping):
        pass
    
    class DeleteMLTransformRequest(Mapping):
        pass
    
    class DeleteMLTransformResponse(Mapping):
        pass
    
    class DeletePartitionRequest(Mapping):
        pass
    
    class DeletePartitionResponse(Mapping):
        pass
    
    class DeletePartitionIndexRequest(Mapping):
        pass
    
    class DeletePartitionIndexResponse(Mapping):
        pass
    
    class DeleteRegistryInput(Mapping):
        pass
    
    class DeleteRegistryResponse(Mapping):
        pass
    
    class DeleteResourcePolicyRequest(Mapping):
        pass
    
    class DeleteResourcePolicyResponse(Mapping):
        pass
    
    class DeleteSchemaInput(Mapping):
        pass
    
    class DeleteSchemaResponse(Mapping):
        pass
    
    class SchemaId(Mapping):
        pass
    
    class DeleteSchemaVersionsInput(Mapping):
        pass
    
    class DeleteSchemaVersionsResponse(Mapping):
        pass
    
    class DeleteSecurityConfigurationRequest(Mapping):
        pass
    
    class DeleteSecurityConfigurationResponse(Mapping):
        pass
    
    class DeleteTableRequest(Mapping):
        pass
    
    class DeleteTableResponse(Mapping):
        pass
    
    class DeleteTableVersionRequest(Mapping):
        pass
    
    class DeleteTableVersionResponse(Mapping):
        pass
    
    class DeleteTriggerRequest(Mapping):
        pass
    
    class DeleteTriggerResponse(Mapping):
        pass
    
    class DeleteUserDefinedFunctionRequest(Mapping):
        pass
    
    class DeleteUserDefinedFunctionResponse(Mapping):
        pass
    
    class DeleteWorkflowRequest(Mapping):
        pass
    
    class DeleteWorkflowResponse(Mapping):
        pass
    
    class GetCatalogImportStatusRequest(Mapping):
        pass
    
    class GetCatalogImportStatusResponse(Mapping):
        pass
    
    class GetClassifierRequest(Mapping):
        pass
    
    class GetClassifierResponse(Mapping):
        pass
    
    class GetClassifiersRequest(Mapping):
        pass
    
    class GetClassifiersResponse(Mapping):
        pass
    
    class GetColumnStatisticsForPartitionRequest(Mapping):
        pass
    
    class GetColumnStatisticsForPartitionResponse(Mapping):
        pass
    
    class GetColumnStatisticsForTableRequest(Mapping):
        pass
    
    class GetColumnStatisticsForTableResponse(Mapping):
        pass
    
    class GetConnectionRequest(Mapping):
        pass
    
    class GetConnectionResponse(Mapping):
        pass
    
    class Boolean(object):
        pass
    
    class GetConnectionsRequest(Mapping):
        pass
    
    class GetConnectionsResponse(Mapping):
        pass
    
    class GetConnectionsFilter(Mapping):
        pass
    
    class GetCrawlerRequest(Mapping):
        pass
    
    class GetCrawlerResponse(Mapping):
        pass
    
    class GetCrawlerMetricsRequest(Mapping):
        pass
    
    class GetCrawlerMetricsResponse(Mapping):
        pass
    
    class GetCrawlersRequest(Mapping):
        pass
    
    class GetCrawlersResponse(Mapping):
        pass
    
    class GetDataCatalogEncryptionSettingsRequest(Mapping):
        pass
    
    class GetDataCatalogEncryptionSettingsResponse(Mapping):
        pass
    
    class GetDatabaseRequest(Mapping):
        pass
    
    class GetDatabaseResponse(Mapping):
        pass
    
    class GetDatabasesRequest(Mapping):
        pass
    
    class GetDatabasesResponse(Mapping):
        pass
    
    class GetDataflowGraphRequest(Mapping):
        pass
    
    class GetDataflowGraphResponse(Mapping):
        pass
    
    class GetDevEndpointRequest(Mapping):
        pass
    
    class GetDevEndpointResponse(Mapping):
        pass
    
    class GetDevEndpointsRequest(Mapping):
        pass
    
    class GetDevEndpointsResponse(Mapping):
        pass
    
    class GetJobRequest(Mapping):
        pass
    
    class GetJobResponse(Mapping):
        pass
    
    class GetJobBookmarkRequest(Mapping):
        pass
    
    class GetJobBookmarkResponse(Mapping):
        pass
    
    class GetJobRunRequest(Mapping):
        pass
    
    class GetJobRunResponse(Mapping):
        pass
    
    class GetJobRunsRequest(Mapping):
        pass
    
    class GetJobRunsResponse(Mapping):
        pass
    
    class GetJobsRequest(Mapping):
        pass
    
    class GetJobsResponse(Mapping):
        pass
    
    class GetMLTaskRunRequest(Mapping):
        pass
    
    class GetMLTaskRunResponse(Mapping):
        pass
    
    class GetMLTaskRunsRequest(Mapping):
        pass
    
    class GetMLTaskRunsResponse(Mapping):
        pass
    
    class TaskRunFilterCriteria(Mapping):
        pass
    
    class TaskRunSortCriteria(Mapping):
        pass
    
    class GetMLTransformRequest(Mapping):
        pass
    
    class GetMLTransformResponse(Mapping):
        pass
    
    class GetMLTransformsRequest(Mapping):
        pass
    
    class GetMLTransformsResponse(Mapping):
        pass
    
    class TransformFilterCriteria(Mapping):
        pass
    
    class TransformSortCriteria(Mapping):
        pass
    
    class GetMappingRequest(Mapping):
        pass
    
    class GetMappingResponse(Mapping):
        pass
    
    class CatalogEntry(Mapping):
        pass
    
    class Location(Mapping):
        pass
    
    class GetPartitionRequest(Mapping):
        pass
    
    class GetPartitionResponse(Mapping):
        pass
    
    class GetPartitionIndexesRequest(Mapping):
        pass
    
    class GetPartitionIndexesResponse(Mapping):
        pass
    
    class GetPartitionsRequest(Mapping):
        pass
    
    class GetPartitionsResponse(Mapping):
        pass
    
    class Segment(Mapping):
        pass
    
    class BooleanNullable(object):
        pass
    
    class GetPlanRequest(Mapping):
        pass
    
    class GetPlanResponse(Mapping):
        pass
    
    class MappingEntry(Mapping):
        pass
    
    class AdditionalPlanOptionsMap(object):
        pass
    
    class GetRegistryInput(Mapping):
        pass
    
    class GetRegistryResponse(Mapping):
        pass
    
    class GetResourcePoliciesRequest(Mapping):
        pass
    
    class GetResourcePoliciesResponse(Mapping):
        pass
    
    class GetResourcePolicyRequest(Mapping):
        pass
    
    class GetResourcePolicyResponse(Mapping):
        pass
    
    class GetSchemaInput(Mapping):
        pass
    
    class GetSchemaResponse(Mapping):
        pass
    
    class GetSchemaByDefinitionInput(Mapping):
        pass
    
    class GetSchemaByDefinitionResponse(Mapping):
        pass
    
    class GetSchemaVersionInput(Mapping):
        pass
    
    class GetSchemaVersionResponse(Mapping):
        pass
    
    class SchemaVersionNumber(Mapping):
        pass
    
    class GetSchemaVersionsDiffInput(Mapping):
        pass
    
    class GetSchemaVersionsDiffResponse(Mapping):
        pass
    
    class GetSecurityConfigurationRequest(Mapping):
        pass
    
    class GetSecurityConfigurationResponse(Mapping):
        pass
    
    class GetSecurityConfigurationsRequest(Mapping):
        pass
    
    class GetSecurityConfigurationsResponse(Mapping):
        pass
    
    class GetTableRequest(Mapping):
        pass
    
    class GetTableResponse(Mapping):
        pass
    
    class GetTableVersionRequest(Mapping):
        pass
    
    class GetTableVersionResponse(Mapping):
        pass
    
    class GetTableVersionsRequest(Mapping):
        pass
    
    class GetTableVersionsResponse(Mapping):
        pass
    
    class GetTablesRequest(Mapping):
        pass
    
    class GetTablesResponse(Mapping):
        pass
    
    class GetTagsRequest(Mapping):
        pass
    
    class GetTagsResponse(Mapping):
        pass
    
    class GetTriggerRequest(Mapping):
        pass
    
    class GetTriggerResponse(Mapping):
        pass
    
    class GetTriggersRequest(Mapping):
        pass
    
    class GetTriggersResponse(Mapping):
        pass
    
    class GetUserDefinedFunctionRequest(Mapping):
        pass
    
    class GetUserDefinedFunctionResponse(Mapping):
        pass
    
    class GetUserDefinedFunctionsRequest(Mapping):
        pass
    
    class GetUserDefinedFunctionsResponse(Mapping):
        pass
    
    class GetWorkflowRequest(Mapping):
        pass
    
    class GetWorkflowResponse(Mapping):
        pass
    
    class GetWorkflowRunRequest(Mapping):
        pass
    
    class GetWorkflowRunResponse(Mapping):
        pass
    
    class GetWorkflowRunPropertiesRequest(Mapping):
        pass
    
    class GetWorkflowRunPropertiesResponse(Mapping):
        pass
    
    class GetWorkflowRunsRequest(Mapping):
        pass
    
    class GetWorkflowRunsResponse(Mapping):
        pass
    
    class ImportCatalogToGlueRequest(Mapping):
        pass
    
    class ImportCatalogToGlueResponse(Mapping):
        pass
    
    class ListCrawlersRequest(Mapping):
        pass
    
    class ListCrawlersResponse(Mapping):
        pass
    
    class ListDevEndpointsRequest(Mapping):
        pass
    
    class ListDevEndpointsResponse(Mapping):
        pass
    
    class ListJobsRequest(Mapping):
        pass
    
    class ListJobsResponse(Mapping):
        pass
    
    class ListMLTransformsRequest(Mapping):
        pass
    
    class ListMLTransformsResponse(Mapping):
        pass
    
    class ListRegistriesInput(Mapping):
        pass
    
    class ListRegistriesResponse(Mapping):
        pass
    
    class ListSchemaVersionsInput(Mapping):
        pass
    
    class ListSchemaVersionsResponse(Mapping):
        pass
    
    class ListSchemasInput(Mapping):
        pass
    
    class ListSchemasResponse(Mapping):
        pass
    
    class ListTriggersRequest(Mapping):
        pass
    
    class ListTriggersResponse(Mapping):
        pass
    
    class ListWorkflowsRequest(Mapping):
        pass
    
    class ListWorkflowsResponse(Mapping):
        pass
    
    class PutDataCatalogEncryptionSettingsRequest(Mapping):
        pass
    
    class PutDataCatalogEncryptionSettingsResponse(Mapping):
        pass
    
    class DataCatalogEncryptionSettings(Mapping):
        pass
    
    class PutResourcePolicyRequest(Mapping):
        pass
    
    class PutResourcePolicyResponse(Mapping):
        pass
    
    class PutSchemaVersionMetadataInput(Mapping):
        pass
    
    class PutSchemaVersionMetadataResponse(Mapping):
        pass
    
    class MetadataKeyValuePair(Mapping):
        pass
    
    class PutWorkflowRunPropertiesRequest(Mapping):
        pass
    
    class PutWorkflowRunPropertiesResponse(Mapping):
        pass
    
    class QuerySchemaVersionMetadataInput(Mapping):
        pass
    
    class QuerySchemaVersionMetadataResponse(Mapping):
        pass
    
    class RegisterSchemaVersionInput(Mapping):
        pass
    
    class RegisterSchemaVersionResponse(Mapping):
        pass
    
    class RemoveSchemaVersionMetadataInput(Mapping):
        pass
    
    class RemoveSchemaVersionMetadataResponse(Mapping):
        pass
    
    class ResetJobBookmarkRequest(Mapping):
        pass
    
    class ResetJobBookmarkResponse(Mapping):
        pass
    
    class ResumeWorkflowRunRequest(Mapping):
        pass
    
    class ResumeWorkflowRunResponse(Mapping):
        pass
    
    class SearchTablesRequest(Mapping):
        pass
    
    class SearchTablesResponse(Mapping):
        pass
    
    class PropertyPredicate(Mapping):
        pass
    
    class SortCriterion(Mapping):
        pass
    
    class StartCrawlerRequest(Mapping):
        pass
    
    class StartCrawlerResponse(Mapping):
        pass
    
    class StartCrawlerScheduleRequest(Mapping):
        pass
    
    class StartCrawlerScheduleResponse(Mapping):
        pass
    
    class StartExportLabelsTaskRunRequest(Mapping):
        pass
    
    class StartExportLabelsTaskRunResponse(Mapping):
        pass
    
    class StartImportLabelsTaskRunRequest(Mapping):
        pass
    
    class StartImportLabelsTaskRunResponse(Mapping):
        pass
    
    class ReplaceBoolean(object):
        pass
    
    class StartJobRunRequest(Mapping):
        pass
    
    class StartJobRunResponse(Mapping):
        pass
    
    class StartMLEvaluationTaskRunRequest(Mapping):
        pass
    
    class StartMLEvaluationTaskRunResponse(Mapping):
        pass
    
    class StartMLLabelingSetGenerationTaskRunRequest(Mapping):
        pass
    
    class StartMLLabelingSetGenerationTaskRunResponse(Mapping):
        pass
    
    class StartTriggerRequest(Mapping):
        pass
    
    class StartTriggerResponse(Mapping):
        pass
    
    class StartWorkflowRunRequest(Mapping):
        pass
    
    class StartWorkflowRunResponse(Mapping):
        pass
    
    class StopCrawlerRequest(Mapping):
        pass
    
    class StopCrawlerResponse(Mapping):
        pass
    
    class StopCrawlerScheduleRequest(Mapping):
        pass
    
    class StopCrawlerScheduleResponse(Mapping):
        pass
    
    class StopTriggerRequest(Mapping):
        pass
    
    class StopTriggerResponse(Mapping):
        pass
    
    class StopWorkflowRunRequest(Mapping):
        pass
    
    class StopWorkflowRunResponse(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateClassifierRequest(Mapping):
        pass
    
    class UpdateClassifierResponse(Mapping):
        pass
    
    class UpdateGrokClassifierRequest(Mapping):
        pass
    
    class UpdateXMLClassifierRequest(Mapping):
        pass
    
    class UpdateJsonClassifierRequest(Mapping):
        pass
    
    class UpdateCsvClassifierRequest(Mapping):
        pass
    
    class UpdateColumnStatisticsForPartitionRequest(Mapping):
        pass
    
    class UpdateColumnStatisticsForPartitionResponse(Mapping):
        pass
    
    class ColumnStatistics(Mapping):
        pass
    
    class UpdateColumnStatisticsForTableRequest(Mapping):
        pass
    
    class UpdateColumnStatisticsForTableResponse(Mapping):
        pass
    
    class UpdateConnectionRequest(Mapping):
        pass
    
    class UpdateConnectionResponse(Mapping):
        pass
    
    class UpdateCrawlerRequest(Mapping):
        pass
    
    class UpdateCrawlerResponse(Mapping):
        pass
    
    class UpdateCrawlerScheduleRequest(Mapping):
        pass
    
    class UpdateCrawlerScheduleResponse(Mapping):
        pass
    
    class UpdateDatabaseRequest(Mapping):
        pass
    
    class UpdateDatabaseResponse(Mapping):
        pass
    
    class UpdateDevEndpointRequest(Mapping):
        pass
    
    class UpdateDevEndpointResponse(Mapping):
        pass
    
    class DevEndpointCustomLibraries(Mapping):
        pass
    
    class UpdateJobRequest(Mapping):
        pass
    
    class UpdateJobResponse(Mapping):
        pass
    
    class JobUpdate(Mapping):
        pass
    
    class UpdateMLTransformRequest(Mapping):
        pass
    
    class UpdateMLTransformResponse(Mapping):
        pass
    
    class UpdatePartitionRequest(Mapping):
        pass
    
    class UpdatePartitionResponse(Mapping):
        pass
    
    class UpdateRegistryInput(Mapping):
        pass
    
    class UpdateRegistryResponse(Mapping):
        pass
    
    class UpdateSchemaInput(Mapping):
        pass
    
    class UpdateSchemaResponse(Mapping):
        pass
    
    class UpdateTableRequest(Mapping):
        pass
    
    class UpdateTableResponse(Mapping):
        pass
    
    class UpdateTriggerRequest(Mapping):
        pass
    
    class UpdateTriggerResponse(Mapping):
        pass
    
    class TriggerUpdate(Mapping):
        pass
    
    class UpdateUserDefinedFunctionRequest(Mapping):
        pass
    
    class UpdateUserDefinedFunctionResponse(Mapping):
        pass
    
    class UpdateWorkflowRequest(Mapping):
        pass
    
    class UpdateWorkflowResponse(Mapping):
        pass
    
    def batch_create_partition(self, PartitionInputList: List[PartitionInput], TableName: str, DatabaseName: str, CatalogId: str=None) -> BatchCreatePartitionResponse:
        r"""Creates one or more partitions in a batch operation.

        :param self:
        :param PartitionInputList:  A list of <code>PartitionInput</code> structures that define the partitions to be created.<br/>TableName:  The name of the metadata table in which the partition is to be created.<br/>DatabaseName:  The name of the metadata database in which the partition is to be created.<br/>CatalogId:  The ID of the catalog in which the partition is to be created. Currently, this should be the Amazon Web Services account ID.<br/>
        :return: Errors:  The errors encountered when trying to create the requested partitions.<br/>        """
        pass

    def batch_delete_connection(self, ConnectionNameList: List[NameString], CatalogId: str=None) -> BatchDeleteConnectionResponse:
        r"""Deletes a list of connection definitions from the Data Catalog.

        :param self:
        :param ConnectionNameList:  A list of names of the connections to delete.<br/>CatalogId:  The ID of the Data Catalog in which the connections reside. If none is provided, the Amazon Web Services account ID is used by default.<br/>
        :return: Errors:  A map of the names of connections that were not successfully deleted to error details.<br/>Succeeded:  A list of names of the connection definitions that were successfully deleted.<br/>        """
        pass

    def batch_delete_partition(self, PartitionsToDelete: List[PartitionValueList], TableName: str, DatabaseName: str, CatalogId: str=None) -> BatchDeletePartitionResponse:
        r"""Deletes one or more partitions in a batch operation.

        :param self:
        :param PartitionsToDelete:  A list of <code>PartitionInput</code> structures that define the partitions to be deleted.<br/>TableName:  The name of the table that contains the partitions to be deleted.<br/>DatabaseName:  The name of the catalog database in which the table in question resides.<br/>CatalogId:  The ID of the Data Catalog where the partition to be deleted resides. If none is provided, the Amazon Web Services account ID is used by default.<br/>
        :return: Errors:  The errors encountered when trying to delete the requested partitions.<br/>        """
        pass

    def batch_delete_table(self, TablesToDelete: List[NameString], DatabaseName: str, CatalogId: str=None) -> BatchDeleteTableResponse:
        r"""Deletes multiple tables at once. <note> After completing this operation, you no longer have access to the table versions and partitions that belong to the deleted table. Glue deletes these "orphaned" resources asynchronously in a timely manner, at the discretion of the service. To ensure the immediate deletion of all related resources, before calling <code>BatchDeleteTable</code>, use <code>DeleteTableVersion</code> or <code>BatchDeleteTableVersion</code>, and <code>DeletePartition</code> or <code>BatchDeletePartition</code>, to delete any resources that belong to the table. </note>

        :param self:
        :param TablesToDelete:  A list of the table to delete.<br/>DatabaseName:  The name of the catalog database in which the tables to delete reside. For Hive compatibility, this name is entirely lowercase.<br/>CatalogId:  The ID of the Data Catalog where the table resides. If none is provided, the Amazon Web Services account ID is used by default.<br/>
        :return: Errors:  A list of errors encountered in attempting to delete the specified tables.<br/>        """
        pass

    def batch_delete_table_version(self, VersionIds: List[VersionString], TableName: str, DatabaseName: str, CatalogId: str=None) -> BatchDeleteTableVersionResponse:
        r"""Deletes a specified batch of versions of a table.

        :param self:
        :param VersionIds:  A list of the IDs of versions to be deleted. A <code>VersionId</code> is a string representation of an integer. Each version is incremented by 1.<br/>TableName:  The name of the table. For Hive compatibility, this name is entirely lowercase.<br/>DatabaseName:  The database in the catalog in which the table resides. For Hive compatibility, this name is entirely lowercase.<br/>CatalogId:  The ID of the Data Catalog where the tables reside. If none is provided, the Amazon Web Services account ID is used by default.<br/>
        :return: Errors:  A list of errors encountered while trying to delete the specified table versions.<br/>        """
        pass

    def batch_get_crawlers(self, CrawlerNames: List[NameString]) -> BatchGetCrawlersResponse:
        r"""Returns a list of resource metadata for a given list of crawler names. After calling the <code>ListCrawlers</code> operation, you can call this operation to access the data to which you have been granted permissions. This operation supports all IAM permissions, including permission conditions that uses tags.

        :param self:
        :param CrawlerNames:  A list of crawler names, which might be the names returned from the <code>ListCrawlers</code> operation.<br/>
        :return: CrawlersNotFound:  A list of names of crawlers that were not found.<br/>Crawlers:  A list of crawler definitions.<br/>        """
        pass

    def batch_get_dev_endpoints(self, DevEndpointNames: List[GenericString]) -> BatchGetDevEndpointsResponse:
        r"""Returns a list of resource metadata for a given list of development endpoint names. After calling the <code>ListDevEndpoints</code> operation, you can call this operation to access the data to which you have been granted permissions. This operation supports all IAM permissions, including permission conditions that uses tags.

        :param self:
        :param DevEndpointNames:  The list of <code>DevEndpoint</code> names, which might be the names returned from the <code>ListDevEndpoint</code> operation.<br/>
        :return: DevEndpointsNotFound:  A list of <code>DevEndpoints</code> not found.<br/>DevEndpoints:  A list of <code>DevEndpoint</code> definitions.<br/>        """
        pass

    def batch_get_jobs(self, JobNames: List[NameString]) -> BatchGetJobsResponse:
        r"""Returns a list of resource metadata for a given list of job names. After calling the <code>ListJobs</code> operation, you can call this operation to access the data to which you have been granted permissions. This operation supports all IAM permissions, including permission conditions that uses tags. 

        :param self:
        :param JobNames:  A list of job names, which might be the names returned from the <code>ListJobs</code> operation.<br/>
        :return: JobsNotFound:  A list of names of jobs not found.<br/>Jobs:  A list of job definitions.<br/>        """
        pass

    def batch_get_partition(self, PartitionsToGet: List[PartitionValueList], TableName: str, DatabaseName: str, CatalogId: str=None) -> BatchGetPartitionResponse:
        r"""Retrieves partitions in a batch request.

        :param self:
        :param PartitionsToGet:  A list of partition values identifying the partitions to retrieve.<br/>TableName:  The name of the partitions' table.<br/>DatabaseName:  The name of the catalog database where the partitions reside.<br/>CatalogId:  The ID of the Data Catalog where the partitions in question reside. If none is supplied, the Amazon Web Services account ID is used by default.<br/>
        :return: UnprocessedKeys:  A list of the partition values in the request for which partitions were not returned.<br/>Partitions:  A list of the requested partitions.<br/>        """
        pass

    def batch_get_triggers(self, TriggerNames: List[NameString]) -> BatchGetTriggersResponse:
        r"""Returns a list of resource metadata for a given list of trigger names. After calling the <code>ListTriggers</code> operation, you can call this operation to access the data to which you have been granted permissions. This operation supports all IAM permissions, including permission conditions that uses tags.

        :param self:
        :param TriggerNames:  A list of trigger names, which may be the names returned from the <code>ListTriggers</code> operation.<br/>
        :return: TriggersNotFound:  A list of names of triggers not found.<br/>Triggers:  A list of trigger definitions.<br/>        """
        pass

    def batch_get_workflows(self, Names: List[NameString], IncludeGraph: NullableBoolean=None) -> BatchGetWorkflowsResponse:
        r"""Returns a list of resource metadata for a given list of workflow names. After calling the <code>ListWorkflows</code> operation, you can call this operation to access the data to which you have been granted permissions. This operation supports all IAM permissions, including permission conditions that uses tags.

        :param self:
        :param IncludeGraph:  Specifies whether to include a graph when returning the workflow resource metadata.<br/>Names:  A list of workflow names, which may be the names returned from the <code>ListWorkflows</code> operation.<br/>
        :return: MissingWorkflows:  A list of names of workflows not found.<br/>Workflows:  A list of workflow resource metadata.<br/>        """
        pass

    def batch_stop_job_run(self, JobRunIds: List[IdString], JobName: str) -> BatchStopJobRunResponse:
        r"""Stops one or more job runs for a specified job definition.

        :param self:
        :param JobRunIds:  A list of the <code>JobRunIds</code> that should be stopped for that job definition.<br/>JobName:  The name of the job definition for which to stop job runs.<br/>
        :return: Errors:  A list of the errors that were encountered in trying to stop <code>JobRuns</code>, including the <code>JobRunId</code> for which each error was encountered and details about the error.<br/>SuccessfulSubmissions:  A list of the JobRuns that were successfully submitted for stopping.<br/>        """
        pass

    def batch_update_partition(self, Entries: List[BatchUpdatePartitionRequestEntry], TableName: str, DatabaseName: str, CatalogId: str=None) -> BatchUpdatePartitionResponse:
        r"""Updates one or more partitions in a batch operation.

        :param self:
        :param Entries:  A list of up to 100 <code>BatchUpdatePartitionRequestEntry</code> objects to update.<br/>TableName:  The name of the metadata table in which the partition is to be updated.<br/>DatabaseName:  The name of the metadata database in which the partition is to be updated.<br/>CatalogId:  The ID of the catalog in which the partition is to be updated. Currently, this should be the Amazon Web Services account ID.<br/>
        :return: Errors:  The errors encountered when trying to update the requested partitions. A list of <code>BatchUpdatePartitionFailureEntry</code> objects.<br/>        """
        pass

    def cancel_ml_task_run(self, TaskRunId: str, TransformId: str) -> CancelMLTaskRunResponse:
        r"""Cancels (stops) a task run. Machine learning task runs are asynchronous tasks that Glue runs on your behalf as part of various machine learning workflows. You can cancel a machine learning task run at any time by calling <code>CancelMLTaskRun</code> with a task run's parent transform's <code>TransformID</code> and the task run's <code>TaskRunId</code>. 

        :param self:
        :param TaskRunId:  A unique identifier for the task run.<br/>TransformId:  The unique identifier of the machine learning transform.<br/>
        :return: Status:  The status for this run.<br/>TaskRunId:  The unique identifier for the task run.<br/>TransformId:  The unique identifier of the machine learning transform.<br/>        """
        pass

    def check_schema_version_validity(self, SchemaDefinition: str, DataFormat: str) -> CheckSchemaVersionValidityResponse:
        r"""Validates the supplied schema. This call has no side effects, it simply validates using the supplied schema using <code>DataFormat</code> as the format. Since it does not take a schema set name, no compatibility checks are performed.

        :param self:
        :param SchemaDefinition:  The definition of the schema that has to be validated.<br/>DataFormat:  The data format of the schema definition. Currently <code>AVRO</code> and <code>JSON</code> are supported.<br/>
        :return: Error:  A validation failure error message.<br/>Valid:  Return true, if the schema is valid and false otherwise.<br/>        """
        pass

    def create_classifier(self, GrokClassifier: CreateGrokClassifierRequest=None, XMLClassifier: CreateXMLClassifierRequest=None, JsonClassifier: CreateJsonClassifierRequest=None, CsvClassifier: CreateCsvClassifierRequest=None) -> CreateClassifierResponse:
        r"""Creates a classifier in the user's account. This can be a <code>GrokClassifier</code>, an <code>XMLClassifier</code>, a <code>JsonClassifier</code>, or a <code>CsvClassifier</code>, depending on which field of the request is present.

        :param self:
        :param CsvClassifier:  A <code>CsvClassifier</code> object specifying the classifier to create.:<br/>JsonClassifier:  A <code>JsonClassifier</code> object specifying the classifier to create.:<br/>XMLClassifier:  An <code>XMLClassifier</code> object specifying the classifier to create.:<br/>GrokClassifier:  A <code>GrokClassifier</code> object specifying the classifier to create.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomPatterns</i> Optional custom grok patterns used by this classifier.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GrokPattern</i> The grok pattern used by this classifier.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the new classifier.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Classification</i> An identifier of the data format that the classifier matches, such as Twitter, JSON, Omniture logs, Amazon CloudWatch Logs, and so on.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RowTag</i> The XML tag designating the element that contains each record in an XML document being parsed. This can't identify a self-closing element (closed by <code>/&gt;</code>). An empty row element that contains only attributes can be parsed as long as it ends with a closing tag (for example, <code>&lt;row item_a="A" item_b="B"&gt;&lt;/row&gt;</code> is okay, but <code>&lt;row item_a="A" item_b="B" /&gt;</code> is not).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the classifier.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Classification</i> An identifier of the data format that the classifier matches.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JsonPath</i> A <code>JsonPath</code> string defining the JSON data for the classifier to classify. Glue supports a subset of JsonPath, as described in <a href="https://docs.aws.amazon.com/glue/latest/dg/custom-classifier.html#custom-classifier-json">Writing JsonPath Custom Classifiers</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the classifier.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowSingleColumn</i> Enables the processing of files that contain only one column.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DisableValueTrimming</i> Specifies not to trim values before identifying the type of column values. The default value is true.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Header</i> A list of strings representing column names.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ContainsHeader</i> Indicates whether the CSV file contains a header.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>QuoteSymbol</i> A custom symbol to denote what combines content into a single column value. Must be different from the column delimiter.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Delimiter</i> A custom symbol to denote what separates each column entry in the row.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the classifier.<br/>
        :return:         """
        pass

    def create_connection(self, ConnectionInput: ConnectionInput, CatalogId: str=None) -> CreateConnectionResponse:
        r"""Creates a connection definition in the Data Catalog.

        :param self:
        :param ConnectionInput:  A <code>ConnectionInput</code> object defining the connection to create.:<br/>CatalogId:  The ID of the Data Catalog in which to create the connection. If none is provided, the Amazon Web Services account ID is used by default.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PhysicalConnectionRequirements</i> A map of physical connection requirements, such as virtual private cloud (VPC) and <code>SecurityGroup</code>, that are needed to successfully make this connection.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PhysicalConnectionRequirements</b>: A map of physical connection requirements, such as virtual private cloud (VPC) and <code>SecurityGroup</code>, that are needed to successfully make this connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConnectionProperties</i> These key-value pairs define parameters for the connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MatchCriteria</i> A list of criteria that can be used in selecting this connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConnectionType</i> The type of the connection. Currently, these types are supported: <ul> <li>  <code>JDBC</code> - Designates a connection to a database through Java Database Connectivity (JDBC). </li> <li>  <code>KAFKA</code> - Designates a connection to an Apache Kafka streaming platform. </li> <li>  <code>MONGODB</code> - Designates a connection to a MongoDB document database. </li> <li>  <code>NETWORK</code> - Designates a network connection to a data source within an Amazon Virtual Private Cloud environment (Amazon VPC). </li> <li>  <code>MARKETPLACE</code> - Uses configuration settings contained in a connector purchased from Marketplace to read from and write to data stores that are not natively supported by Glue. </li> <li>  <code>CUSTOM</code> - Uses configuration settings contained in a custom connector to read from and write to data stores that are not natively supported by Glue. </li> </ul> SFTP is not supported.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZone</i> The connection's Availability Zone. This field is redundant because the specified subnet implies the Availability Zone to be used. Currently the field must be populated, but it will be deprecated in the future.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIdList</i> The security group ID list used by the connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetId</i> The subnet ID used by the connection.<br/>
        :return:         """
        pass

    def create_crawler(self, Targets: CrawlerTargets, Role: str, Name: str, DatabaseName: str=None, Description: str=None, Schedule: str=None, Classifiers: List[NameString]=None, TablePrefix: str=None, SchemaChangePolicy: SchemaChangePolicy=None, RecrawlPolicy: RecrawlPolicy=None, LineageConfiguration: LineageConfiguration=None, Configuration: str=None, CrawlerSecurityConfiguration: str=None, Tags: TagsMap=None) -> CreateCrawlerResponse:
        r"""Creates a new crawler with specified targets, role, configuration, and optional schedule. At least one crawl target must be specified, in the <code>s3Targets</code> field, the <code>jdbcTargets</code> field, or the <code>DynamoDBTargets</code> field.

        :param self:
        :param Tags:  The tags to use with this crawler request. You may use tags to limit access to the crawler. For more information about tags in Glue, see <a href="https://docs.aws.amazon.com/glue/latest/dg/monitor-tags.html">Amazon Web Services Tags in Glue</a> in the developer guide.<br/>CrawlerSecurityConfiguration:  The name of the <code>SecurityConfiguration</code> structure to be used by this crawler.<br/>Configuration:  Crawler configuration information. This versioned JSON string allows users to specify aspects of a crawler's behavior. For more information, see <a href="https://docs.aws.amazon.com/glue/latest/dg/crawler-configuration.html">Configuring a Crawler</a>.<br/>LineageConfiguration:  Specifies data lineage configuration settings for the crawler.:<br/>RecrawlPolicy:  A policy that specifies whether to crawl the entire dataset again, or to crawl only folders that were added since the last crawler run.:<br/>SchemaChangePolicy:  The policy for the crawler's update and deletion behavior.:<br/>TablePrefix:  The table prefix used for catalog tables that are created.<br/>Classifiers:  A list of custom classifiers that the user has registered. By default, all built-in classifiers are included in a crawl, but these custom classifiers always override the default classifiers for a given classification.<br/>Schedule:  A <code>cron</code> expression used to specify the schedule (see <a href="https://docs.aws.amazon.com/glue/latest/dg/monitor-data-warehouse-schedule.html">Time-Based Schedules for Jobs and Crawlers</a>. For example, to run something every day at 12:15 UTC, you would specify: <code>cron(15 12 * * ? *)</code>.<br/>Targets:  A list of collection of targets to crawl.:<br/>Description:  A description of the new crawler.<br/>DatabaseName:  The Glue database where results are written, such as: <code>arn:aws:daylight:us-east-1::database/sometable/*</code>.<br/>Role:  The IAM role or Amazon Resource Name (ARN) of an IAM role used by the new crawler to access customer resources.<br/>Name:  Name of the new crawler.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CatalogTargets</i> Specifies Glue Data Catalog targets.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DynamoDBTargets</i> Specifies Amazon DynamoDB targets.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MongoDBTargets</i> Specifies Amazon DocumentDB or MongoDB targets.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JdbcTargets</i> Specifies JDBC targets.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Targets</i> Specifies Amazon Simple Storage Service (Amazon S3) targets.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeleteBehavior</i> The deletion behavior when the crawler finds a deleted object.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdateBehavior</i> The update behavior when the crawler finds a changed schema.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecrawlBehavior</i> Specifies whether to crawl the entire dataset again or to crawl only folders that were added since the last crawler run. A value of <code>CRAWL_EVERYTHING</code> specifies crawling the entire dataset again. A value of <code>CRAWL_NEW_FOLDERS_ONLY</code> specifies crawling only folders that were added since the last crawler run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CrawlerLineageSettings</i> Specifies whether data lineage is enabled for the crawler. Valid values are: <ul> <li> ENABLE: enables data lineage for the crawler </li> <li> DISABLE: disables data lineage for the crawler </li> </ul><br/>
        :return:         """
        pass

    def create_database(self, DatabaseInput: DatabaseInput, CatalogId: str=None) -> CreateDatabaseResponse:
        r"""Creates a new database in a Data Catalog.

        :param self:
        :param DatabaseInput:  The metadata for the database.:<br/>CatalogId:  The ID of the Data Catalog in which to create the database. If none is provided, the Amazon Web Services account ID is used by default.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetDatabase</i> A <code>DatabaseIdentifier</code> structure that describes a target database for resource linking.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TargetDatabase</b>: A <code>DatabaseIdentifier</code> structure that describes a target database for resource linking.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreateTableDefaultPermissions</i> Creates a set of default permissions on the table for principals. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Parameters</i> These key-value pairs define parameters and properties of the database. These key-value pairs define parameters and properties of the database.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LocationUri</i> The location of the database (for example, an HDFS path). <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A description of the database.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the database. For Hive compatibility, this is folded to lowercase when it is stored.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> The name of the catalog database.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CatalogId</i> The ID of the Data Catalog in which the database resides.<br/>
        :return:         """
        pass

    def create_dev_endpoint(self, RoleArn: str, EndpointName: str, SecurityGroupIds: List[GenericString]=None, SubnetId: str=None, PublicKey: str=None, PublicKeys: List[GenericString]=None, NumberOfNodes: int=None, WorkerType: str=None, GlueVersion: str=None, NumberOfWorkers: int=None, ExtraPythonLibsS3Path: str=None, ExtraJarsS3Path: str=None, SecurityConfiguration: str=None, Tags: TagsMap=None, Arguments: MapValue=None) -> CreateDevEndpointResponse:
        r"""Creates a new development endpoint.

        :param self:
        :param Arguments:  A map of arguments used to configure the <code>DevEndpoint</code>.<br/>Tags:  The tags to use with this DevEndpoint. You may use tags to limit access to the DevEndpoint. For more information about tags in Glue, see <a href="https://docs.aws.amazon.com/glue/latest/dg/monitor-tags.html">Amazon Web Services Tags in Glue</a> in the developer guide.<br/>SecurityConfiguration:  The name of the <code>SecurityConfiguration</code> structure to be used with this <code>DevEndpoint</code>.<br/>ExtraJarsS3Path:  The path to one or more Java <code>.jar</code> files in an S3 bucket that should be loaded in your <code>DevEndpoint</code>.<br/>ExtraPythonLibsS3Path:  The paths to one or more Python libraries in an Amazon S3 bucket that should be loaded in your <code>DevEndpoint</code>. Multiple values must be complete paths separated by a comma. <note> You can only use pure Python libraries with a <code>DevEndpoint</code>. Libraries that rely on C extensions, such as the <a href="http://pandas.pydata.org/">pandas</a> Python data analysis library, are not yet supported. </note><br/>NumberOfWorkers:  The number of workers of a defined <code>workerType</code> that are allocated to the development endpoint. The maximum number of workers you can define are 299 for <code>G.1X</code>, and 149 for <code>G.2X</code>. <br/>GlueVersion:  Glue version determines the versions of Apache Spark and Python that Glue supports. The Python version indicates the version supported for running your ETL scripts on development endpoints.  For more information about the available Glue versions and corresponding Spark and Python versions, see <a href="https://docs.aws.amazon.com/glue/latest/dg/add-job.html">Glue version</a> in the developer guide. Development endpoints that are created without specifying a Glue version default to Glue 0.9. You can specify a version of Python support for development endpoints by using the <code>Arguments</code> parameter in the <code>CreateDevEndpoint</code> or <code>UpdateDevEndpoint</code> APIs. If no arguments are provided, the version defaults to Python 2.<br/>WorkerType:  The type of predefined worker that is allocated to the development endpoint. Accepts a value of Standard, G.1X, or G.2X. <ul> <li> For the <code>Standard</code> worker type, each worker provides 4 vCPU, 16 GB of memory and a 50GB disk, and 2 executors per worker. </li> <li> For the <code>G.1X</code> worker type, each worker maps to 1 DPU (4 vCPU, 16 GB of memory, 64 GB disk), and provides 1 executor per worker. We recommend this worker type for memory-intensive jobs. </li> <li> For the <code>G.2X</code> worker type, each worker maps to 2 DPU (8 vCPU, 32 GB of memory, 128 GB disk), and provides 1 executor per worker. We recommend this worker type for memory-intensive jobs. </li> </ul> Known issue: when a development endpoint is created with the <code>G.2X</code> <code>WorkerType</code> configuration, the Spark drivers for the development endpoint will run on 4 vCPU, 16 GB of memory, and a 64 GB disk. <br/>NumberOfNodes:  The number of Glue Data Processing Units (DPUs) to allocate to this <code>DevEndpoint</code>.<br/>PublicKeys:  A list of public keys to be used by the development endpoints for authentication. The use of this attribute is preferred over a single public key because the public keys allow you to have a different private key per client. <note> If you previously created an endpoint with a public key, you must remove that key to be able to set a list of public keys. Call the <code>UpdateDevEndpoint</code> API with the public key content in the <code>deletePublicKeys</code> attribute, and the list of new keys in the <code>addPublicKeys</code> attribute. </note><br/>PublicKey:  The public key to be used by this <code>DevEndpoint</code> for authentication. This attribute is provided for backward compatibility because the recommended attribute to use is public keys.<br/>SubnetId:  The subnet ID for the new <code>DevEndpoint</code> to use.<br/>SecurityGroupIds:  Security group IDs for the security groups to be used by the new <code>DevEndpoint</code>.<br/>RoleArn:  The IAM role for the <code>DevEndpoint</code>.<br/>EndpointName:  The name to be assigned to the new <code>DevEndpoint</code>.<br/>
        :return: Arguments:  The map of arguments used to configure this <code>DevEndpoint</code>. Valid arguments are: <ul> <li>  <code>"--enable-glue-datacatalog": ""</code>  </li> </ul> You can specify a version of Python support for development endpoints by using the <code>Arguments</code> parameter in the <code>CreateDevEndpoint</code> or <code>UpdateDevEndpoint</code> APIs. If no arguments are provided, the version defaults to Python 2.<br/>CreatedTimestamp:  The point in time at which this <code>DevEndpoint</code> was created.<br/>SecurityConfiguration:  The name of the <code>SecurityConfiguration</code> structure being used with this <code>DevEndpoint</code>.<br/>FailureReason:  The reason for a current failure in this <code>DevEndpoint</code>.<br/>ExtraJarsS3Path:  Path to one or more Java <code>.jar</code> files in an S3 bucket that will be loaded in your <code>DevEndpoint</code>.<br/>ExtraPythonLibsS3Path:  The paths to one or more Python libraries in an S3 bucket that will be loaded in your <code>DevEndpoint</code>.<br/>VpcId:  The ID of the virtual private cloud (VPC) used by this <code>DevEndpoint</code>.<br/>AvailabilityZone:  The AWS Availability Zone where this <code>DevEndpoint</code> is located.<br/>NumberOfWorkers:  The number of workers of a defined <code>workerType</code> that are allocated to the development endpoint.<br/>GlueVersion:  Glue version determines the versions of Apache Spark and Python that Glue supports. The Python version indicates the version supported for running your ETL scripts on development endpoints.  For more information about the available Glue versions and corresponding Spark and Python versions, see <a href="https://docs.aws.amazon.com/glue/latest/dg/add-job.html">Glue version</a> in the developer guide.<br/>WorkerType:  The type of predefined worker that is allocated to the development endpoint. May be a value of Standard, G.1X, or G.2X.<br/>NumberOfNodes:  The number of Glue Data Processing Units (DPUs) allocated to this DevEndpoint.<br/>ZeppelinRemoteSparkInterpreterPort:  The Apache Zeppelin port for the remote Apache Spark interpreter.<br/>YarnEndpointAddress:  The address of the YARN endpoint used by this <code>DevEndpoint</code>.<br/>RoleArn:  The Amazon Resource Name (ARN) of the role assigned to the new <code>DevEndpoint</code>.<br/>SubnetId:  The subnet ID assigned to the new <code>DevEndpoint</code>.<br/>SecurityGroupIds:  The security groups assigned to the new <code>DevEndpoint</code>.<br/>Status:  The current status of the new <code>DevEndpoint</code>.<br/>EndpointName:  The name assigned to the new <code>DevEndpoint</code>.<br/>        """
        pass

    def create_job(self, Command: JobCommand, Role: str, Name: str, Description: str=None, LogUri: str=None, ExecutionProperty: ExecutionProperty=None, DefaultArguments: GenericMap=None, NonOverridableArguments: GenericMap=None, Connections: ConnectionsList=None, MaxRetries: int=None, AllocatedCapacity: int=None, Timeout: int=None, MaxCapacity: NullableDouble=None, SecurityConfiguration: str=None, Tags: TagsMap=None, NotificationProperty: NotificationProperty=None, GlueVersion: str=None, NumberOfWorkers: int=None, WorkerType: str=None) -> CreateJobResponse:
        r"""Creates a new job definition.

        :param self:
        :param WorkerType:  The type of predefined worker that is allocated when a job runs. Accepts a value of Standard, G.1X, or G.2X. <ul> <li> For the <code>Standard</code> worker type, each worker provides 4 vCPU, 16 GB of memory and a 50GB disk, and 2 executors per worker. </li> <li> For the <code>G.1X</code> worker type, each worker maps to 1 DPU (4 vCPU, 16 GB of memory, 64 GB disk), and provides 1 executor per worker. We recommend this worker type for memory-intensive jobs. </li> <li> For the <code>G.2X</code> worker type, each worker maps to 2 DPU (8 vCPU, 32 GB of memory, 128 GB disk), and provides 1 executor per worker. We recommend this worker type for memory-intensive jobs. </li> </ul><br/>NumberOfWorkers:  The number of workers of a defined <code>workerType</code> that are allocated when a job runs. The maximum number of workers you can define are 299 for <code>G.1X</code>, and 149 for <code>G.2X</code>. <br/>GlueVersion:  Glue version determines the versions of Apache Spark and Python that Glue supports. The Python version indicates the version supported for jobs of type Spark.  For more information about the available Glue versions and corresponding Spark and Python versions, see <a href="https://docs.aws.amazon.com/glue/latest/dg/add-job.html">Glue version</a> in the developer guide. Jobs that are created without specifying a Glue version default to Glue 0.9.<br/>NotificationProperty:  Specifies configuration properties of a job notification.:<br/>Tags:  The tags to use with this job. You may use tags to limit access to the job. For more information about tags in Glue, see <a href="https://docs.aws.amazon.com/glue/latest/dg/monitor-tags.html">Amazon Web Services Tags in Glue</a> in the developer guide.<br/>SecurityConfiguration:  The name of the <code>SecurityConfiguration</code> structure to be used with this job.<br/>MaxCapacity:  For Glue version 1.0 or earlier jobs, using the standard worker type, the number of Glue data processing units (DPUs) that can be allocated when this job runs. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory. For more information, see the <a href="https://aws.amazon.com/glue/pricing/">Glue pricing page</a>. Do not set <code>Max Capacity</code> if using <code>WorkerType</code> and <code>NumberOfWorkers</code>. The value that can be allocated for <code>MaxCapacity</code> depends on whether you are running a Python shell job or an Apache Spark ETL job: <ul> <li> When you specify a Python shell job (<code>JobCommand.Name</code>="pythonshell"), you can allocate either 0.0625 or 1 DPU. The default is 0.0625 DPU. </li> <li> When you specify an Apache Spark ETL job (<code>JobCommand.Name</code>="glueetl") or Apache Spark streaming ETL job (<code>JobCommand.Name</code>="gluestreaming"), you can allocate from 2 to 100 DPUs. The default is 10 DPUs. This job type cannot have a fractional DPU allocation. </li> </ul> For Glue version 2.0 jobs, you cannot instead specify a <code>Maximum capacity</code>. Instead, you should specify a <code>Worker type</code> and the <code>Number of workers</code>.<br/>Timeout:  The job timeout in minutes. This is the maximum time that a job run can consume resources before it is terminated and enters <code>TIMEOUT</code> status. The default is 2,880 minutes (48 hours).<br/>AllocatedCapacity:  This parameter is deprecated. Use <code>MaxCapacity</code> instead. The number of Glue data processing units (DPUs) to allocate to this Job. You can allocate from 2 to 100 DPUs; the default is 10. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory. For more information, see the <a href="https://aws.amazon.com/glue/pricing/">Glue pricing page</a>.<br/>MaxRetries:  The maximum number of times to retry this job if it fails.<br/>Connections:  The connections used for this job.:<br/>NonOverridableArguments:  Non-overridable arguments for this job, specified as name-value pairs.<br/>DefaultArguments:  The default arguments for this job. You can specify arguments here that your own job-execution script consumes, as well as arguments that Glue itself consumes. For information about how to specify and consume your own Job arguments, see the <a href="https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-python-calling.html">Calling Glue APIs in Python</a> topic in the developer guide. For information about the key-value pairs that Glue consumes to set up your job, see the <a href="https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-glue-arguments.html">Special Parameters Used by Glue</a> topic in the developer guide.<br/>Command:  The <code>JobCommand</code> that runs this job.:<br/>ExecutionProperty:  An <code>ExecutionProperty</code> specifying the maximum number of concurrent runs allowed for this job.:<br/>Role:  The name or Amazon Resource Name (ARN) of the IAM role associated with this job.<br/>LogUri:  This field is reserved for future use.<br/>Description:  Description of the job being defined.<br/>Name:  The name you assign to this job definition. It must be unique in your account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxConcurrentRuns</i> The maximum number of concurrent runs allowed for the job. The default is 1. An error is returned when this threshold is reached. The maximum value you can specify is controlled by a service limit.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PythonVersion</i> The Python version being used to run a Python shell job. Allowed values are 2 or 3.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ScriptLocation</i> Specifies the Amazon Simple Storage Service (Amazon S3) path to a script that runs a job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the job command. For an Apache Spark ETL job, this must be <code>glueetl</code>. For a Python shell job, it must be <code>pythonshell</code>. For an Apache Spark streaming ETL job, this must be <code>gluestreaming</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Connections</i> A list of connections used by the job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NotifyDelayAfter</i> After a job run starts, the number of minutes to wait before sending a job run delay notification.<br/>
        :return: Name:  The unique name that was provided for this job definition.<br/>        """
        pass

    def create_ml_transform(self, Role: str, Parameters: TransformParameters, InputRecordTables: List[GlueTable], Name: str, Description: str=None, GlueVersion: str=None, MaxCapacity: NullableDouble=None, WorkerType: str=None, NumberOfWorkers: int=None, Timeout: int=None, MaxRetries: int=None, Tags: TagsMap=None, TransformEncryption: TransformEncryption=None) -> CreateMLTransformResponse:
        r"""Creates an Glue machine learning transform. This operation creates the transform and all the necessary parameters to train it. Call this operation as the first step in the process of using a machine learning transform (such as the <code>FindMatches</code> transform) for deduplicating data. You can provide an optional <code>Description</code>, in addition to the parameters that you want to use for your algorithm. You must also specify certain parameters for the tasks that Glue runs on your behalf as part of learning from your data and creating a high-quality machine learning transform. These parameters include <code>Role</code>, and optionally, <code>AllocatedCapacity</code>, <code>Timeout</code>, and <code>MaxRetries</code>. For more information, see <a href="https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-jobs-job.html">Jobs</a>.

        :param self:
        :param TransformEncryption:  The encryption-at-rest settings of the transform that apply to accessing user data. Machine learning transforms can access user data encrypted in Amazon S3 using KMS.:<br/>Tags:  The tags to use with this machine learning transform. You may use tags to limit access to the machine learning transform. For more information about tags in Glue, see <a href="https://docs.aws.amazon.com/glue/latest/dg/monitor-tags.html">Amazon Web Services Tags in Glue</a> in the developer guide.<br/>MaxRetries:  The maximum number of times to retry a task for this transform after a task run fails.<br/>Timeout:  The timeout of the task run for this transform in minutes. This is the maximum time that a task run for this transform can consume resources before it is terminated and enters <code>TIMEOUT</code> status. The default is 2,880 minutes (48 hours).<br/>NumberOfWorkers:  The number of workers of a defined <code>workerType</code> that are allocated when this task runs. If <code>WorkerType</code> is set, then <code>NumberOfWorkers</code> is required (and vice versa).<br/>WorkerType:  The type of predefined worker that is allocated when this task runs. Accepts a value of Standard, G.1X, or G.2X. <ul> <li> For the <code>Standard</code> worker type, each worker provides 4 vCPU, 16 GB of memory and a 50GB disk, and 2 executors per worker. </li> <li> For the <code>G.1X</code> worker type, each worker provides 4 vCPU, 16 GB of memory and a 64GB disk, and 1 executor per worker. </li> <li> For the <code>G.2X</code> worker type, each worker provides 8 vCPU, 32 GB of memory and a 128GB disk, and 1 executor per worker. </li> </ul>  <code>MaxCapacity</code> is a mutually exclusive option with <code>NumberOfWorkers</code> and <code>WorkerType</code>. <ul> <li> If either <code>NumberOfWorkers</code> or <code>WorkerType</code> is set, then <code>MaxCapacity</code> cannot be set. </li> <li> If <code>MaxCapacity</code> is set then neither <code>NumberOfWorkers</code> or <code>WorkerType</code> can be set. </li> <li> If <code>WorkerType</code> is set, then <code>NumberOfWorkers</code> is required (and vice versa). </li> <li>  <code>MaxCapacity</code> and <code>NumberOfWorkers</code> must both be at least 1. </li> </ul><br/>MaxCapacity:  The number of Glue data processing units (DPUs) that are allocated to task runs for this transform. You can allocate from 2 to 100 DPUs; the default is 10. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory. For more information, see the <a href="https://aws.amazon.com/glue/pricing/">Glue pricing page</a>.   <code>MaxCapacity</code> is a mutually exclusive option with <code>NumberOfWorkers</code> and <code>WorkerType</code>. <ul> <li> If either <code>NumberOfWorkers</code> or <code>WorkerType</code> is set, then <code>MaxCapacity</code> cannot be set. </li> <li> If <code>MaxCapacity</code> is set then neither <code>NumberOfWorkers</code> or <code>WorkerType</code> can be set. </li> <li> If <code>WorkerType</code> is set, then <code>NumberOfWorkers</code> is required (and vice versa). </li> <li>  <code>MaxCapacity</code> and <code>NumberOfWorkers</code> must both be at least 1. </li> </ul> When the <code>WorkerType</code> field is set to a value other than <code>Standard</code>, the <code>MaxCapacity</code> field is set automatically and becomes read-only. When the <code>WorkerType</code> field is set to a value other than <code>Standard</code>, the <code>MaxCapacity</code> field is set automatically and becomes read-only.<br/>GlueVersion:  This value determines which version of Glue this machine learning transform is compatible with. Glue 1.0 is recommended for most customers. If the value is not set, the Glue compatibility defaults to Glue 0.9. For more information, see <a href="https://docs.aws.amazon.com/glue/latest/dg/release-notes.html#release-notes-versions">Glue Versions</a> in the developer guide.<br/>Role:  The name or Amazon Resource Name (ARN) of the IAM role with the required permissions. The required permissions include both Glue service role permissions to Glue resources, and Amazon S3 permissions required by the transform.  <ul> <li> This role needs Glue service role permissions to allow access to resources in Glue. See <a href="https://docs.aws.amazon.com/glue/latest/dg/attach-policy-iam-user.html">Attach a Policy to IAM Users That Access Glue</a>. </li> <li> This role needs permission to your Amazon Simple Storage Service (Amazon S3) sources, targets, temporary directory, scripts, and any libraries used by the task run for this transform. </li> </ul><br/>Parameters:  The algorithmic parameters that are specific to the transform type used. Conditionally dependent on the transform type.:<br/>InputRecordTables:  A list of Glue table definitions used by the transform.<br/>Description:  A description of the machine learning transform that is being defined. The default is an empty string.<br/>Name:  The unique name that you give the transform when you create it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FindMatchesParameters</i> The parameters for the find matches algorithm.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>FindMatchesParameters</b>: The parameters for the find matches algorithm.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransformType</i> The type of machine learning transform. For information about the types of machine learning transforms, see <a href="https://docs.aws.amazon.com/glue/latest/dg/add-job-machine-learning-transform.html">Creating Machine Learning Transforms</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EnforceProvidedLabels</i> The value to switch on or off to force the output to match the provided labels from users. If the value is <code>True</code>, the <code>find matches</code> transform forces the output to match the provided labels. The results override the normal conflation results. If the value is <code>False</code>, the <code>find matches</code> transform does not ensure all the labels provided are respected, and the results rely on the trained model. Note that setting this value to true may increase the conflation execution time.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AccuracyCostTradeoff</i> The value that is selected when tuning your transform for a balance between accuracy and cost. A value of 0.5 means that the system balances accuracy and cost concerns. A value of 1.0 means a bias purely for accuracy, which typically results in a higher cost, sometimes substantially higher. A value of 0.0 means a bias purely for cost, which results in a less accurate <code>FindMatches</code> transform, sometimes with unacceptable accuracy. Accuracy measures how well the transform finds true positives and true negatives. Increasing accuracy requires more machine resources and cost. But it also results in increased recall.  Cost measures how many compute resources, and thus money, are consumed to run the transform.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PrecisionRecallTradeoff</i> The value selected when tuning your transform for a balance between precision and recall. A value of 0.5 means no preference; a value of 1.0 means a bias purely for precision, and a value of 0.0 means a bias for recall. Because this is a tradeoff, choosing values close to 1.0 means very low recall, and choosing values close to 0.0 results in very low precision. The precision metric indicates how often your model is correct when it predicts a match.  The recall metric indicates that for an actual match, how often your model predicts the match.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PrimaryKeyColumnName</i> The name of a column that uniquely identifies rows in the source table. Used to help identify matching records.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TaskRunSecurityConfigurationName</i> The name of the security configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MlUserDataEncryption</i> An <code>MLUserDataEncryption</code> object containing the encryption mode and customer-provided KMS key ID.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>MlUserDataEncryption</b>: An <code>MLUserDataEncryption</code> object containing the encryption mode and customer-provided KMS key ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The ID for the customer-provided KMS key.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MlUserDataEncryptionMode</i> The encryption mode applied to user data. Valid values are: <ul> <li> DISABLED: encryption is disabled </li> <li> SSEKMS: use of server-side encryption with Key Management Service (SSE-KMS) for user data stored in Amazon S3. </li> </ul><br/>
        :return: TransformId:  A unique identifier that is generated for the transform.<br/>        """
        pass

    def create_partition(self, PartitionInput: PartitionInput, TableName: str, DatabaseName: str, CatalogId: str=None) -> CreatePartitionResponse:
        r"""Creates a new partition.

        :param self:
        :param PartitionInput:  A <code>PartitionInput</code> structure defining the partition to be created.:<br/>TableName:  The name of the metadata table in which the partition is to be created.<br/>DatabaseName:  The name of the metadata database in which the partition is to be created.<br/>CatalogId:  The Amazon Web Services account ID of the catalog in which the partition is to be created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastAnalyzedTime</i> The last time at which column statistics were computed for this partition.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Parameters</i> These key-value pairs define partition parameters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageDescriptor</i> Provides information about the physical location where the partition is stored.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StorageDescriptor</b>: Provides information about the physical location where the partition is stored.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastAccessTime</i> The last time at which the partition was accessed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Values</i> The values of the partition. Although this parameter is not required by the SDK, you must specify this parameter for a valid input. The values for the keys for the new partition must be passed as an array of String objects that must be ordered in the same order as the partition keys appearing in the Amazon S3 prefix. Otherwise Glue will add the values to the wrong keys.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberOfBuckets</i> Must be specified if the table contains any dimension columns.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Compressed</i>  <code>True</code> if the data in the table is compressed, or <code>False</code> if not.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OutputFormat</i> The output format: <code>SequenceFileOutputFormat</code> (binary), or <code>IgnoreKeyTextOutputFormat</code>, or a custom format.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InputFormat</i> The input format: <code>SequenceFileInputFormat</code> (binary), or <code>TextInputFormat</code>, or a custom format.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Location</i> The physical location of the table. By default, this takes the form of the warehouse location, followed by the database location in the warehouse, followed by the table name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Columns</i> A list of the <code>Columns</code> in the table.<br/>The serialization/deserialization (SerDe) information.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SerdeInfo</b>: The serialization/deserialization (SerDe) information.
        :return:         """
        pass

    def create_partition_index(self, PartitionIndex: PartitionIndex, TableName: str, DatabaseName: str, CatalogId: str=None) -> CreatePartitionIndexResponse:
        r"""Creates a specified partition index in an existing table.

        :param self:
        :param PartitionIndex:  Specifies a <code>PartitionIndex</code> structure to create a partition index in an existing table.:<br/>TableName:  Specifies the name of a table in which you want to create a partition index.<br/>DatabaseName:  Specifies the name of a database in which you want to create a partition index.<br/>CatalogId:  The catalog ID where the table resides.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IndexName</i> The name of the partition index.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Keys</i> The keys for the partition index.<br/>
        :return:         """
        pass

    def create_registry(self, RegistryName: str, Description: str=None, Tags: TagsMap=None) -> CreateRegistryResponse:
        r"""Creates a new registry which may be used to hold a collection of schemas.

        :param self:
        :param Tags:  Amazon Web Services tags that contain a key value pair and may be searched by console, command line, or API.<br/>Description:  A description of the registry. If description is not provided, there will not be any default value for this.<br/>RegistryName:  Name of the registry to be created of max length of 255, and may only contain letters, numbers, hyphen, underscore, dollar sign, or hash mark. No whitespace.<br/>
        :return: Tags:  The tags for the registry.<br/>Description:  A description of the registry.<br/>RegistryName:  The name of the registry.<br/>RegistryArn:  The Amazon Resource Name (ARN) of the newly created registry.<br/>        """
        pass

    def create_schema(self, DataFormat: str, SchemaName: str, RegistryId: RegistryId=None, Compatibility: str=None, Description: str=None, Tags: TagsMap=None, SchemaDefinition: str=None) -> CreateSchemaResponse:
        r"""Creates a new schema set and registers the schema definition. Returns an error if the schema set already exists without actually registering the version. When the schema set is created, a version checkpoint will be set to the first version. Compatibility mode "DISABLED" restricts any additional schema versions from being added after the first schema version. For all other compatibility modes, validation of compatibility settings will be applied only from the second version onwards when the <code>RegisterSchemaVersion</code> API is used. When this API is called without a <code>RegistryId</code>, this will create an entry for a "default-registry" in the registry database tables, if it is not already present.

        :param self:
        :param SchemaDefinition:  The schema definition using the <code>DataFormat</code> setting for <code>SchemaName</code>.<br/>Tags:  Amazon Web Services tags that contain a key value pair and may be searched by console, command line, or API. If specified, follows the Amazon Web Services tags-on-create pattern.<br/>Description:  An optional description of the schema. If description is not provided, there will not be any automatic default value for this.<br/>Compatibility:  The compatibility mode of the schema. The possible values are: <ul> <li>  <i>NONE</i>: No compatibility mode applies. You can use this choice in development scenarios or if you do not know the compatibility mode that you want to apply to schemas. Any new version added will be accepted without undergoing a compatibility check. </li> <li>  <i>DISABLED</i>: This compatibility choice prevents versioning for a particular schema. You can use this choice to prevent future versioning of a schema. </li> <li>  <i>BACKWARD</i>: This compatibility choice is recommended as it allows data receivers to read both the current and one previous schema version. This means that for instance, a new schema version cannot drop data fields or change the type of these fields, so they can't be read by readers using the previous version. </li> <li>  <i>BACKWARD_ALL</i>: This compatibility choice allows data receivers to read both the current and all previous schema versions. You can use this choice when you need to delete fields or add optional fields, and check compatibility against all previous schema versions.  </li> <li>  <i>FORWARD</i>: This compatibility choice allows data receivers to read both the current and one next schema version, but not necessarily later versions. You can use this choice when you need to add fields or delete optional fields, but only check compatibility against the last schema version. </li> <li>  <i>FORWARD_ALL</i>: This compatibility choice allows data receivers to read written by producers of any new registered schema. You can use this choice when you need to add fields or delete optional fields, and check compatibility against all previous schema versions. </li> <li>  <i>FULL</i>: This compatibility choice allows data receivers to read data written by producers using the previous or next version of the schema, but not necessarily earlier or later versions. You can use this choice when you need to add or remove optional fields, but only check compatibility against the last schema version. </li> <li>  <i>FULL_ALL</i>: This compatibility choice allows data receivers to read data written by producers using all previous schema versions. You can use this choice when you need to add or remove optional fields, and check compatibility against all previous schema versions. </li> </ul><br/>DataFormat:  The data format of the schema definition. Currently <code>AVRO</code> and <code>JSON</code> are supported.<br/>SchemaName:  Name of the schema to be created of max length of 255, and may only contain letters, numbers, hyphen, underscore, dollar sign, or hash mark. No whitespace.<br/>RegistryId:   This is a wrapper shape to contain the registry identity fields. If this is not provided, the default registry will be used. The ARN format for the same will be: <code>arn:aws:glue:us-east-2:&lt;customer id&gt;:registry/default-registry:random-5-letter-id</code>.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RegistryArn</i> Arn of the registry to be updated. One of <code>RegistryArn</code> or <code>RegistryName</code> has to be provided.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RegistryName</i> Name of the registry. Used only for lookup. One of <code>RegistryArn</code> or <code>RegistryName</code> has to be provided. <br/>
        :return: SchemaVersionStatus:  The status of the first schema version created.<br/>SchemaVersionId:  The unique identifier of the first schema version.<br/>Tags:  The tags for the schema.<br/>SchemaStatus:  The status of the schema. <br/>NextSchemaVersion:  The next version of the schema associated with the returned schema definition.<br/>LatestSchemaVersion:  The latest version of the schema associated with the returned schema definition.<br/>SchemaCheckpoint:  The version number of the checkpoint (the last time the compatibility mode was changed).<br/>Compatibility:  The schema compatibility mode.<br/>DataFormat:  The data format of the schema definition. Currently <code>AVRO</code> and <code>JSON</code> are supported.<br/>Description:  A description of the schema if specified when created.<br/>SchemaArn:  The Amazon Resource Name (ARN) of the schema.<br/>SchemaName:  The name of the schema.<br/>RegistryArn:  The Amazon Resource Name (ARN) of the registry.<br/>RegistryName:  The name of the registry.<br/>        """
        pass

    def create_script(self, DagNodes: List[CodeGenNode]=None, DagEdges: List[CodeGenEdge]=None, Language: str=None) -> CreateScriptResponse:
        r"""Transforms a directed acyclic graph (DAG) into code.

        :param self:
        :param Language:  The programming language of the resulting code from the DAG.<br/>DagEdges:  A list of the edges in the DAG.<br/>DagNodes:  A list of the nodes in the DAG.<br/>
        :return: ScalaCode:  The Scala code generated from the DAG.<br/>PythonScript:  The Python script generated from the DAG.<br/>        """
        pass

    def create_security_configuration(self, EncryptionConfiguration: EncryptionConfiguration, Name: str) -> CreateSecurityConfigurationResponse:
        r"""Creates a new security configuration. A security configuration is a set of security properties that can be used by Glue. You can use a security configuration to encrypt data at rest. For information about using security configurations in Glue, see <a href="https://docs.aws.amazon.com/glue/latest/dg/encryption-security-configuration.html">Encrypting Data Written by Crawlers, Jobs, and Development Endpoints</a>.

        :param self:
        :param EncryptionConfiguration:  The encryption configuration for the new security configuration.:<br/>Name:  The name for the new security configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobBookmarksEncryption</i> The encryption configuration for job bookmarks.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>JobBookmarksEncryption</b>: The encryption configuration for job bookmarks.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudWatchEncryption</i> The encryption configuration for Amazon CloudWatch.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CloudWatchEncryption</b>: The encryption configuration for Amazon CloudWatch.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Encryption</i> The encryption configuration for Amazon Simple Storage Service (Amazon S3) data.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyArn</i> The Amazon Resource Name (ARN) of the KMS key to be used to encrypt the data.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudWatchEncryptionMode</i> The encryption mode to use for CloudWatch data.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyArn</i> The Amazon Resource Name (ARN) of the KMS key to be used to encrypt the data.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>JobBookmarksEncryptionMode</i> The encryption mode to use for job bookmarks data.<br/>
        :return: CreatedTimestamp:  The time at which the new security configuration was created.<br/>Name:  The name assigned to the new security configuration.<br/>        """
        pass

    def create_table(self, TableInput: TableInput, DatabaseName: str, CatalogId: str=None, PartitionIndexes: List[PartitionIndex]=None) -> CreateTableResponse:
        r"""Creates a new table definition in the Data Catalog.

        :param self:
        :param PartitionIndexes:  A list of partition indexes, <code>PartitionIndex</code> structures, to create in the table.<br/>TableInput:  The <code>TableInput</code> object that defines the metadata table to create in the catalog.:<br/>DatabaseName:  The catalog database in which to create the new table. For Hive compatibility, this name is entirely lowercase.<br/>CatalogId:  The ID of the Data Catalog in which to create the <code>Table</code>. If none is supplied, the Amazon Web Services account ID is used by default.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetTable</i> A <code>TableIdentifier</code> structure that describes a target table for resource linking.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TargetTable</b>: A <code>TableIdentifier</code> structure that describes a target table for resource linking.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Parameters</i> These key-value pairs define properties associated with the table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TableType</i> The type of this table (<code>EXTERNAL_TABLE</code>, <code>VIRTUAL_VIEW</code>, etc.).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ViewExpandedText</i> If the table is a view, the expanded text of the view; otherwise <code>null</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ViewOriginalText</i> If the table is a view, the original text of the view; otherwise <code>null</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PartitionKeys</i> A list of columns by which the table is partitioned. Only primitive types are supported as partition keys. When you create a table used by Amazon Athena, and you do not specify any <code>partitionKeys</code>, you must at least set the value of <code>partitionKeys</code> to an empty list. For example:  <code>"PartitionKeys": []</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageDescriptor</i> A storage descriptor containing information about the physical storage of this table.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StorageDescriptor</b>: A storage descriptor containing information about the physical storage of this table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Retention</i> The retention time for this table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastAnalyzedTime</i> The last time that column statistics were computed for this table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastAccessTime</i> The last time that the table was accessed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Owner</i> The table owner.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A description of the table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The table name. For Hive compatibility, this is folded to lowercase when it is stored.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberOfBuckets</i> Must be specified if the table contains any dimension columns.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Compressed</i>  <code>True</code> if the data in the table is compressed, or <code>False</code> if not.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OutputFormat</i> The output format: <code>SequenceFileOutputFormat</code> (binary), or <code>IgnoreKeyTextOutputFormat</code>, or a custom format.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InputFormat</i> The input format: <code>SequenceFileInputFormat</code> (binary), or <code>TextInputFormat</code>, or a custom format.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Location</i> The physical location of the table. By default, this takes the form of the warehouse location, followed by the database location in the warehouse, followed by the table name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Columns</i> A list of the <code>Columns</code> in the table.<br/>The serialization/deserialization (SerDe) information.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SerdeInfo</b>: The serialization/deserialization (SerDe) information.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the target table.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> The name of the catalog database that contains the target table.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CatalogId</i> The ID of the Data Catalog in which the table resides.<br/>
        :return:         """
        pass

    def create_trigger(self, Actions: List[Action], Type: str, Name: str, WorkflowName: str=None, Schedule: str=None, Predicate: Predicate=None, Description: str=None, StartOnCreation: BooleanValue=None, Tags: TagsMap=None) -> CreateTriggerResponse:
        r"""Creates a new trigger.

        :param self:
        :param Tags:  The tags to use with this trigger. You may use tags to limit access to the trigger. For more information about tags in Glue, see <a href="https://docs.aws.amazon.com/glue/latest/dg/monitor-tags.html">Amazon Web Services Tags in Glue</a> in the developer guide. <br/>StartOnCreation:  Set to <code>true</code> to start <code>SCHEDULED</code> and <code>CONDITIONAL</code> triggers when created. True is not supported for <code>ON_DEMAND</code> triggers.<br/>Description:  A description of the new trigger.<br/>Actions:  The actions initiated by this trigger when it fires.<br/>Predicate:  A predicate to specify when the new trigger should fire. This field is required when the trigger type is <code>CONDITIONAL</code>.:<br/>Schedule:  A <code>cron</code> expression used to specify the schedule (see <a href="https://docs.aws.amazon.com/glue/latest/dg/monitor-data-warehouse-schedule.html">Time-Based Schedules for Jobs and Crawlers</a>. For example, to run something every day at 12:15 UTC, you would specify: <code>cron(15 12 * * ? *)</code>. This field is required when the trigger type is SCHEDULED.<br/>Type:  The type of the new trigger.<br/>WorkflowName:  The name of the workflow associated with the trigger.<br/>Name:  The name of the trigger.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Conditions</i> A list of the conditions that determine when the trigger will fire.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Logical</i> An optional field if only one condition is listed. If multiple conditions are listed, then this field is required.<br/>
        :return: Name:  The name of the trigger.<br/>        """
        pass

    def create_user_defined_function(self, FunctionInput: UserDefinedFunctionInput, DatabaseName: str, CatalogId: str=None) -> CreateUserDefinedFunctionResponse:
        r"""Creates a new function definition in the Data Catalog.

        :param self:
        :param FunctionInput:  A <code>FunctionInput</code> object that defines the function to create in the Data Catalog.:<br/>DatabaseName:  The name of the catalog database in which to create the function.<br/>CatalogId:  The ID of the Data Catalog in which to create the function. If none is provided, the Amazon Web Services account ID is used by default.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceUris</i> The resource URIs for the function.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerType</i> The owner type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerName</i> The owner of the function.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClassName</i> The Java class that contains the function code.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FunctionName</i> The name of the function.<br/>
        :return:         """
        pass

    def create_workflow(self, Name: str, Description: str=None, DefaultRunProperties: WorkflowRunProperties=None, Tags: TagsMap=None, MaxConcurrentRuns: int=None) -> CreateWorkflowResponse:
        r"""Creates a new workflow.

        :param self:
        :param MaxConcurrentRuns:  You can use this parameter to prevent unwanted multiple updates to data, to control costs, or in some cases, to prevent exceeding the maximum number of concurrent runs of any of the component jobs. If you leave this parameter blank, there is no limit to the number of concurrent workflow runs.<br/>Tags:  The tags to be used with this workflow.<br/>DefaultRunProperties:  A collection of properties to be used as part of each execution of the workflow.<br/>Description:  A description of the workflow.<br/>Name:  The name to be assigned to the workflow. It should be unique within your account.<br/>
        :return: Name:  The name of the workflow which was provided as part of the request.<br/>        """
        pass

    def delete_classifier(self, Name: str) -> DeleteClassifierResponse:
        r"""Removes a classifier from the Data Catalog.

        :param self:
        :param Name:  Name of the classifier to remove.<br/>
        :return:         """
        pass

    def delete_column_statistics_for_partition(self, ColumnName: str, PartitionValues: List[ValueString], TableName: str, DatabaseName: str, CatalogId: str=None) -> DeleteColumnStatisticsForPartitionResponse:
        r"""Delete the partition column statistics of a column. The Identity and Access Management (IAM) permission required for this operation is <code>DeletePartition</code>.

        :param self:
        :param ColumnName:  Name of the column.<br/>PartitionValues:  A list of partition values identifying the partition.<br/>TableName:  The name of the partitions' table.<br/>DatabaseName:  The name of the catalog database where the partitions reside.<br/>CatalogId:  The ID of the Data Catalog where the partitions in question reside. If none is supplied, the Amazon Web Services account ID is used by default.<br/>
        :return:         """
        pass

    def delete_column_statistics_for_table(self, ColumnName: str, TableName: str, DatabaseName: str, CatalogId: str=None) -> DeleteColumnStatisticsForTableResponse:
        r"""Retrieves table statistics of columns. The Identity and Access Management (IAM) permission required for this operation is <code>DeleteTable</code>.

        :param self:
        :param ColumnName:  The name of the column.<br/>TableName:  The name of the partitions' table.<br/>DatabaseName:  The name of the catalog database where the partitions reside.<br/>CatalogId:  The ID of the Data Catalog where the partitions in question reside. If none is supplied, the Amazon Web Services account ID is used by default.<br/>
        :return:         """
        pass

    def delete_connection(self, ConnectionName: str, CatalogId: str=None) -> DeleteConnectionResponse:
        r"""Deletes a connection from the Data Catalog.

        :param self:
        :param ConnectionName:  The name of the connection to delete.<br/>CatalogId:  The ID of the Data Catalog in which the connection resides. If none is provided, the Amazon Web Services account ID is used by default.<br/>
        :return:         """
        pass

    def delete_crawler(self, Name: str) -> DeleteCrawlerResponse:
        r"""Removes a specified crawler from the Glue Data Catalog, unless the crawler state is <code>RUNNING</code>.

        :param self:
        :param Name:  The name of the crawler to remove.<br/>
        :return:         """
        pass

    def delete_database(self, Name: str, CatalogId: str=None) -> DeleteDatabaseResponse:
        r"""Removes a specified database from a Data Catalog. <note> After completing this operation, you no longer have access to the tables (and all table versions and partitions that might belong to the tables) and the user-defined functions in the deleted database. Glue deletes these "orphaned" resources asynchronously in a timely manner, at the discretion of the service. To ensure the immediate deletion of all related resources, before calling <code>DeleteDatabase</code>, use <code>DeleteTableVersion</code> or <code>BatchDeleteTableVersion</code>, <code>DeletePartition</code> or <code>BatchDeletePartition</code>, <code>DeleteUserDefinedFunction</code>, and <code>DeleteTable</code> or <code>BatchDeleteTable</code>, to delete any resources that belong to the database. </note>

        :param self:
        :param Name:  The name of the database to delete. For Hive compatibility, this must be all lowercase.<br/>CatalogId:  The ID of the Data Catalog in which the database resides. If none is provided, the Amazon Web Services account ID is used by default.<br/>
        :return:         """
        pass

    def delete_dev_endpoint(self, EndpointName: str) -> DeleteDevEndpointResponse:
        r"""Deletes a specified development endpoint.

        :param self:
        :param EndpointName:  The name of the <code>DevEndpoint</code>.<br/>
        :return:         """
        pass

    def delete_job(self, JobName: str) -> DeleteJobResponse:
        r"""Deletes a specified job definition. If the job definition is not found, no exception is thrown.

        :param self:
        :param JobName:  The name of the job definition to delete.<br/>
        :return: JobName:  The name of the job definition that was deleted.<br/>        """
        pass

    def delete_ml_transform(self, TransformId: str) -> DeleteMLTransformResponse:
        r"""Deletes an Glue machine learning transform. Machine learning transforms are a special type of transform that use machine learning to learn the details of the transformation to be performed by learning from examples provided by humans. These transformations are then saved by Glue. If you no longer need a transform, you can delete it by calling <code>DeleteMLTransforms</code>. However, any Glue jobs that still reference the deleted transform will no longer succeed.

        :param self:
        :param TransformId:  The unique identifier of the transform to delete.<br/>
        :return: TransformId:  The unique identifier of the transform that was deleted.<br/>        """
        pass

    def delete_partition(self, PartitionValues: List[ValueString], TableName: str, DatabaseName: str, CatalogId: str=None) -> DeletePartitionResponse:
        r"""Deletes a specified partition.

        :param self:
        :param PartitionValues:  The values that define the partition.<br/>TableName:  The name of the table that contains the partition to be deleted.<br/>DatabaseName:  The name of the catalog database in which the table in question resides.<br/>CatalogId:  The ID of the Data Catalog where the partition to be deleted resides. If none is provided, the Amazon Web Services account ID is used by default.<br/>
        :return:         """
        pass

    def delete_partition_index(self, IndexName: str, TableName: str, DatabaseName: str, CatalogId: str=None) -> DeletePartitionIndexResponse:
        r"""Deletes a specified partition index from an existing table.

        :param self:
        :param IndexName:  The name of the partition index to be deleted.<br/>TableName:  Specifies the name of a table from which you want to delete a partition index.<br/>DatabaseName:  Specifies the name of a database from which you want to delete a partition index.<br/>CatalogId:  The catalog ID where the table resides.<br/>
        :return:         """
        pass

    def delete_registry(self, RegistryId: RegistryId) -> DeleteRegistryResponse:
        r"""Delete the entire registry including schema and all of its versions. To get the status of the delete operation, you can call the <code>GetRegistry</code> API after the asynchronous call. Deleting a registry will deactivate all online operations for the registry such as the <code>UpdateRegistry</code>, <code>CreateSchema</code>, <code>UpdateSchema</code>, and <code>RegisterSchemaVersion</code> APIs. 

        :param self:
        :param RegistryId:  This is a wrapper structure that may contain the registry name and Amazon Resource Name (ARN).:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RegistryArn</i> Arn of the registry to be updated. One of <code>RegistryArn</code> or <code>RegistryName</code> has to be provided.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RegistryName</i> Name of the registry. Used only for lookup. One of <code>RegistryArn</code> or <code>RegistryName</code> has to be provided. <br/>
        :return: Status:  The status of the registry. A successful operation will return the <code>Deleting</code> status.<br/>RegistryArn:  The Amazon Resource Name (ARN) of the registry being deleted.<br/>RegistryName:  The name of the registry being deleted.<br/>        """
        pass

    def delete_resource_policy(self, PolicyHashCondition: str=None, ResourceArn: str=None) -> DeleteResourcePolicyResponse:
        r"""Deletes a specified policy.

        :param self:
        :param ResourceArn:  The ARN of the Glue resource for the resource policy to be deleted.<br/>PolicyHashCondition:  The hash value returned when this policy was set.<br/>
        :return:         """
        pass

    def delete_schema(self, SchemaId: SchemaId) -> DeleteSchemaResponse:
        r"""Deletes the entire schema set, including the schema set and all of its versions. To get the status of the delete operation, you can call <code>GetSchema</code> API after the asynchronous call. Deleting a registry will deactivate all online operations for the schema, such as the <code>GetSchemaByDefinition</code>, and <code>RegisterSchemaVersion</code> APIs.

        :param self:
        :param SchemaId:  This is a wrapper structure that may contain the schema name and Amazon Resource Name (ARN).:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RegistryName</i> The name of the schema registry that contains the schema.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SchemaName</i> The name of the schema. One of <code>SchemaArn</code> or <code>SchemaName</code> has to be provided.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SchemaArn</i> The Amazon Resource Name (ARN) of the schema. One of <code>SchemaArn</code> or <code>SchemaName</code> has to be provided.<br/>
        :return: Status:  The status of the schema.<br/>SchemaName:  The name of the schema being deleted.<br/>SchemaArn:  The Amazon Resource Name (ARN) of the schema being deleted.<br/>        """
        pass

    def delete_schema_versions(self, Versions: str, SchemaId: SchemaId) -> DeleteSchemaVersionsResponse:
        r"""Remove versions from the specified schema. A version number or range may be supplied. If the compatibility mode forbids deleting of a version that is necessary, such as BACKWARDS_FULL, an error is returned. Calling the <code>GetSchemaVersions</code> API after this call will list the status of the deleted versions. When the range of version numbers contain check pointed version, the API will return a 409 conflict and will not proceed with the deletion. You have to remove the checkpoint first using the <code>DeleteSchemaCheckpoint</code> API before using this API. You cannot use the <code>DeleteSchemaVersions</code> API to delete the first schema version in the schema set. The first schema version can only be deleted by the <code>DeleteSchema</code> API. This operation will also delete the attached <code>SchemaVersionMetadata</code> under the schema versions. Hard deletes will be enforced on the database. If the compatibility mode forbids deleting of a version that is necessary, such as BACKWARDS_FULL, an error is returned.

        :param self:
        :param Versions:  A version range may be supplied which may be of the format: <ul> <li> a single version number, 5 </li> <li> a range, 5-8 : deletes versions 5, 6, 7, 8 </li> </ul><br/>SchemaId:  This is a wrapper structure that may contain the schema name and Amazon Resource Name (ARN).:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RegistryName</i> The name of the schema registry that contains the schema.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SchemaName</i> The name of the schema. One of <code>SchemaArn</code> or <code>SchemaName</code> has to be provided.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SchemaArn</i> The Amazon Resource Name (ARN) of the schema. One of <code>SchemaArn</code> or <code>SchemaName</code> has to be provided.<br/>
        :return: SchemaVersionErrors:  A list of <code>SchemaVersionErrorItem</code> objects, each containing an error and schema version.<br/>        """
        pass

    def delete_security_configuration(self, Name: str) -> DeleteSecurityConfigurationResponse:
        r"""Deletes a specified security configuration.

        :param self:
        :param Name:  The name of the security configuration to delete.<br/>
        :return:         """
        pass

    def delete_table(self, Name: str, DatabaseName: str, CatalogId: str=None) -> DeleteTableResponse:
        r"""Removes a table definition from the Data Catalog. <note> After completing this operation, you no longer have access to the table versions and partitions that belong to the deleted table. Glue deletes these "orphaned" resources asynchronously in a timely manner, at the discretion of the service. To ensure the immediate deletion of all related resources, before calling <code>DeleteTable</code>, use <code>DeleteTableVersion</code> or <code>BatchDeleteTableVersion</code>, and <code>DeletePartition</code> or <code>BatchDeletePartition</code>, to delete any resources that belong to the table. </note>

        :param self:
        :param Name:  The name of the table to be deleted. For Hive compatibility, this name is entirely lowercase.<br/>DatabaseName:  The name of the catalog database in which the table resides. For Hive compatibility, this name is entirely lowercase.<br/>CatalogId:  The ID of the Data Catalog where the table resides. If none is provided, the Amazon Web Services account ID is used by default.<br/>
        :return:         """
        pass

    def delete_table_version(self, VersionId: str, TableName: str, DatabaseName: str, CatalogId: str=None) -> DeleteTableVersionResponse:
        r"""Deletes a specified version of a table.

        :param self:
        :param VersionId:  The ID of the table version to be deleted. A <code>VersionID</code> is a string representation of an integer. Each version is incremented by 1.<br/>TableName:  The name of the table. For Hive compatibility, this name is entirely lowercase.<br/>DatabaseName:  The database in the catalog in which the table resides. For Hive compatibility, this name is entirely lowercase.<br/>CatalogId:  The ID of the Data Catalog where the tables reside. If none is provided, the Amazon Web Services account ID is used by default.<br/>
        :return:         """
        pass

    def delete_trigger(self, Name: str) -> DeleteTriggerResponse:
        r"""Deletes a specified trigger. If the trigger is not found, no exception is thrown.

        :param self:
        :param Name:  The name of the trigger to delete.<br/>
        :return: Name:  The name of the trigger that was deleted.<br/>        """
        pass

    def delete_user_defined_function(self, FunctionName: str, DatabaseName: str, CatalogId: str=None) -> DeleteUserDefinedFunctionResponse:
        r"""Deletes an existing function definition from the Data Catalog.

        :param self:
        :param FunctionName:  The name of the function definition to be deleted.<br/>DatabaseName:  The name of the catalog database where the function is located.<br/>CatalogId:  The ID of the Data Catalog where the function to be deleted is located. If none is supplied, the Amazon Web Services account ID is used by default.<br/>
        :return:         """
        pass

    def delete_workflow(self, Name: str) -> DeleteWorkflowResponse:
        r"""Deletes a workflow.

        :param self:
        :param Name:  Name of the workflow to be deleted.<br/>
        :return: Name:  Name of the workflow specified in input.<br/>        """
        pass

    def get_catalog_import_status(self, CatalogId: str=None) -> GetCatalogImportStatusResponse:
        r"""Retrieves the status of a migration operation.

        :param self:
        :param CatalogId:  The ID of the catalog to migrate. Currently, this should be the Amazon Web Services account ID.<br/>
        :return: ImportStatus:  The status of the specified catalog migration.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImportedBy</i> The name of the person who initiated the migration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImportTime</i> The time that the migration was started.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImportCompleted</i>  <code>True</code> if the migration has completed, or <code>False</code> otherwise.<br/>        """
        pass

    def get_classifier(self, Name: str) -> GetClassifierResponse:
        r"""Retrieve a classifier by name.

        :param self:
        :param Name:  Name of the classifier to retrieve.<br/>
        :return: Classifier:  The requested classifier.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CsvClassifier</i> A classifier for comma-separated values (CSV).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CsvClassifier</b>: A classifier for comma-separated values (CSV).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JsonClassifier</i> A classifier for JSON content.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>JsonClassifier</b>: A classifier for JSON content.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>XMLClassifier</i> A classifier for XML content.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>XMLClassifier</b>: A classifier for XML content.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GrokClassifier</i> A classifier that uses <code>grok</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>GrokClassifier</b>: A classifier that uses <code>grok</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomPatterns</i> Optional custom grok patterns defined by this classifier. For more information, see custom patterns in <a href="https://docs.aws.amazon.com/glue/latest/dg/custom-classifier.html">Writing Custom Classifiers</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>GrokPattern</i> The grok pattern applied to a data store by this classifier. For more information, see built-in patterns in <a href="https://docs.aws.amazon.com/glue/latest/dg/custom-classifier.html">Writing Custom Classifiers</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The version of this classifier.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdated</i> The time that this classifier was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The time that this classifier was registered.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Classification</i> An identifier of the data format that the classifier matches, such as Twitter, JSON, Omniture logs, and so on.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the classifier.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RowTag</i> The XML tag designating the element that contains each record in an XML document being parsed. This can't identify a self-closing element (closed by <code>/&gt;</code>). An empty row element that contains only attributes can be parsed as long as it ends with a closing tag (for example, <code>&lt;row item_a="A" item_b="B"&gt;&lt;/row&gt;</code> is okay, but <code>&lt;row item_a="A" item_b="B" /&gt;</code> is not).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The version of this classifier.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdated</i> The time that this classifier was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The time that this classifier was registered.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Classification</i> An identifier of the data format that the classifier matches.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the classifier.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>JsonPath</i> A <code>JsonPath</code> string defining the JSON data for the classifier to classify. Glue supports a subset of JsonPath, as described in <a href="https://docs.aws.amazon.com/glue/latest/dg/custom-classifier.html#custom-classifier-json">Writing JsonPath Custom Classifiers</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The version of this classifier.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdated</i> The time that this classifier was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The time that this classifier was registered.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the classifier.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowSingleColumn</i> Enables the processing of files that contain only one column.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DisableValueTrimming</i> Specifies not to trim values before identifying the type of column values. The default value is <code>true</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Header</i> A list of strings representing column names.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ContainsHeader</i> Indicates whether the CSV file contains a header.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>QuoteSymbol</i> A custom symbol to denote what combines content into a single column value. It must be different from the column delimiter.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Delimiter</i> A custom symbol to denote what separates each column entry in the row.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The version of this classifier.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdated</i> The time that this classifier was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The time that this classifier was registered.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the classifier.<br/>        """
        pass

    def get_classifiers(self, MaxResults: int=None, NextToken: str=None) -> GetClassifiersResponse:
        r"""Lists all classifier objects in the Data Catalog.

        :param self:
        :param NextToken:  An optional continuation token.<br/>MaxResults:  The size of the list to return (optional).<br/>
        :return: NextToken:  A continuation token.<br/>Classifiers:  The requested list of classifier objects.<br/>        """
        pass

    def get_column_statistics_for_partition(self, ColumnNames: List[NameString], PartitionValues: List[ValueString], TableName: str, DatabaseName: str, CatalogId: str=None) -> GetColumnStatisticsForPartitionResponse:
        r"""Retrieves partition statistics of columns. The Identity and Access Management (IAM) permission required for this operation is <code>GetPartition</code>.

        :param self:
        :param ColumnNames:  A list of the column names.<br/>PartitionValues:  A list of partition values identifying the partition.<br/>TableName:  The name of the partitions' table.<br/>DatabaseName:  The name of the catalog database where the partitions reside.<br/>CatalogId:  The ID of the Data Catalog where the partitions in question reside. If none is supplied, the Amazon Web Services account ID is used by default.<br/>
        :return: Errors:  Error occurred during retrieving column statistics data.<br/>ColumnStatisticsList:  List of ColumnStatistics that failed to be retrieved.<br/>        """
        pass

    def get_column_statistics_for_table(self, ColumnNames: List[NameString], TableName: str, DatabaseName: str, CatalogId: str=None) -> GetColumnStatisticsForTableResponse:
        r"""Retrieves table statistics of columns. The Identity and Access Management (IAM) permission required for this operation is <code>GetTable</code>.

        :param self:
        :param ColumnNames:  A list of the column names.<br/>TableName:  The name of the partitions' table.<br/>DatabaseName:  The name of the catalog database where the partitions reside.<br/>CatalogId:  The ID of the Data Catalog where the partitions in question reside. If none is supplied, the Amazon Web Services account ID is used by default.<br/>
        :return: Errors:  List of ColumnStatistics that failed to be retrieved.<br/>ColumnStatisticsList:  List of ColumnStatistics that failed to be retrieved.<br/>        """
        pass

    def get_connection(self, Name: str, CatalogId: str=None, HidePassword: Boolean=None) -> GetConnectionResponse:
        r"""Retrieves a connection definition from the Data Catalog.

        :param self:
        :param HidePassword:  Allows you to retrieve the connection metadata without returning the password. For instance, the AWS Glue console uses this flag to retrieve the connection, and does not display the password. Set this parameter when the caller might not have permission to use the KMS key to decrypt the password, but it does have permission to access the rest of the connection properties.<br/>Name:  The name of the connection definition to retrieve.<br/>CatalogId:  The ID of the Data Catalog in which the connection resides. If none is provided, the Amazon Web Services account ID is used by default.<br/>
        :return: Connection:  The requested connection definition.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdatedBy</i> The user, group, or role that last updated this connection definition.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdatedTime</i> The last time that this connection definition was updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The time that this connection definition was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PhysicalConnectionRequirements</i> A map of physical connection requirements, such as virtual private cloud (VPC) and <code>SecurityGroup</code>, that are needed to make this connection successfully.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PhysicalConnectionRequirements</b>: A map of physical connection requirements, such as virtual private cloud (VPC) and <code>SecurityGroup</code>, that are needed to make this connection successfully.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConnectionProperties</i> These key-value pairs define parameters for the connection: <ul> <li>  <code>HOST</code> - The host URI: either the fully qualified domain name (FQDN) or the IPv4 address of the database host. </li> <li>  <code>PORT</code> - The port number, between 1024 and 65535, of the port on which the database host is listening for database connections. </li> <li>  <code>USER_NAME</code> - The name under which to log in to the database. The value string for <code>USER_NAME</code> is "<code>USERNAME</code>". </li> <li>  <code>PASSWORD</code> - A password, if one is used, for the user name. </li> <li>  <code>ENCRYPTED_PASSWORD</code> - When you enable connection password protection by setting <code>ConnectionPasswordEncryption</code> in the Data Catalog encryption settings, this field stores the encrypted password. </li> <li>  <code>JDBC_DRIVER_JAR_URI</code> - The Amazon Simple Storage Service (Amazon S3) path of the JAR file that contains the JDBC driver to use. </li> <li>  <code>JDBC_DRIVER_CLASS_NAME</code> - The class name of the JDBC driver to use. </li> <li>  <code>JDBC_ENGINE</code> - The name of the JDBC engine to use. </li> <li>  <code>JDBC_ENGINE_VERSION</code> - The version of the JDBC engine to use. </li> <li>  <code>CONFIG_FILES</code> - (Reserved for future use.) </li> <li>  <code>INSTANCE_ID</code> - The instance ID to use. </li> <li>  <code>JDBC_CONNECTION_URL</code> - The URL for connecting to a JDBC data source. </li> <li>  <code>JDBC_ENFORCE_SSL</code> - A Boolean string (true, false) specifying whether Secure Sockets Layer (SSL) with hostname matching is enforced for the JDBC connection on the client. The default is false. </li> <li>  <code>CUSTOM_JDBC_CERT</code> - An Amazon S3 location specifying the customer's root certificate. Glue uses this root certificate to validate the customer’s certificate when connecting to the customer database. Glue only handles X.509 certificates. The certificate provided must be DER-encoded and supplied in Base64 encoding PEM format. </li> <li>  <code>SKIP_CUSTOM_JDBC_CERT_VALIDATION</code> - By default, this is <code>false</code>. Glue validates the Signature algorithm and Subject Public Key Algorithm for the customer certificate. The only permitted algorithms for the Signature algorithm are SHA256withRSA, SHA384withRSA or SHA512withRSA. For the Subject Public Key Algorithm, the key length must be at least 2048. You can set the value of this property to <code>true</code> to skip Glue’s validation of the customer certificate. </li> <li>  <code>CUSTOM_JDBC_CERT_STRING</code> - A custom JDBC certificate string which is used for domain match or distinguished name match to prevent a man-in-the-middle attack. In Oracle database, this is used as the <code>SSL_SERVER_CERT_DN</code>; in Microsoft SQL Server, this is used as the <code>hostNameInCertificate</code>. </li> <li>  <code>CONNECTION_URL</code> - The URL for connecting to a general (non-JDBC) data source. </li> <li>  <code>KAFKA_BOOTSTRAP_SERVERS</code> - A comma-separated list of host and port pairs that are the addresses of the Apache Kafka brokers in a Kafka cluster to which a Kafka client will connect to and bootstrap itself. </li> <li>  <code>KAFKA_SSL_ENABLED</code> - Whether to enable or disable SSL on an Apache Kafka connection. Default value is "true". </li> <li>  <code>KAFKA_CUSTOM_CERT</code> - The Amazon S3 URL for the private CA cert file (.pem format). The default is an empty string. </li> <li>  <code>KAFKA_SKIP_CUSTOM_CERT_VALIDATION</code> - Whether to skip the validation of the CA cert file or not. Glue validates for three algorithms: SHA256withRSA, SHA384withRSA and SHA512withRSA. Default value is "false". </li> <li>  <code>SECRET_ID</code> - The secret ID used for the secret manager of credentials. </li> <li>  <code>CONNECTOR_URL</code> - The connector URL for a MARKETPLACE or CUSTOM connection. </li> <li>  <code>CONNECTOR_TYPE</code> - The connector type for a MARKETPLACE or CUSTOM connection. </li> <li>  <code>CONNECTOR_CLASS_NAME</code> - The connector class name for a MARKETPLACE or CUSTOM connection. </li> <li>  <code>KAFKA_CLIENT_KEYSTORE</code> - The Amazon S3 location of the client keystore file for Kafka client side authentication (Optional). </li> <li>  <code>KAFKA_CLIENT_KEYSTORE_PASSWORD</code> - The password to access the provided keystore (Optional). </li> <li>  <code>KAFKA_CLIENT_KEY_PASSWORD</code> - A keystore can consist of multiple keys, so this is the password to access the client key to be used with the Kafka server side key (Optional). </li> <li>  <code>ENCRYPTED_KAFKA_CLIENT_KEYSTORE_PASSWORD</code> - The encrypted version of the Kafka client keystore password (if the user has the Glue encrypt passwords setting selected). </li> <li>  <code>ENCRYPTED_KAFKA_CLIENT_KEY_PASSWORD</code> - The encrypted version of the Kafka client key password (if the user has the Glue encrypt passwords setting selected). </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MatchCriteria</i> A list of criteria that can be used in selecting this connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConnectionType</i> The type of the connection. Currently, SFTP is not supported.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the connection definition.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZone</i> The connection's Availability Zone. This field is redundant because the specified subnet implies the Availability Zone to be used. Currently the field must be populated, but it will be deprecated in the future.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIdList</i> The security group ID list used by the connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetId</i> The subnet ID used by the connection.<br/>        """
        pass

    def get_connections(self, CatalogId: str=None, Filter: GetConnectionsFilter=None, HidePassword: Boolean=None, NextToken: str=None, MaxResults: int=None) -> GetConnectionsResponse:
        r"""Retrieves a list of connection definitions from the Data Catalog.

        :param self:
        :param MaxResults:  The maximum number of connections to return in one response.<br/>NextToken:  A continuation token, if this is a continuation call.<br/>HidePassword:  Allows you to retrieve the connection metadata without returning the password. For instance, the AWS Glue console uses this flag to retrieve the connection, and does not display the password. Set this parameter when the caller might not have permission to use the KMS key to decrypt the password, but it does have permission to access the rest of the connection properties.<br/>Filter:  A filter that controls which connections are returned.:<br/>CatalogId:  The ID of the Data Catalog in which the connections reside. If none is provided, the Amazon Web Services account ID is used by default.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConnectionType</i> The type of connections to return. Currently, SFTP is not supported.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MatchCriteria</i> A criteria string that must match the criteria recorded in the connection definition for that connection definition to be returned.<br/>
        :return: NextToken:  A continuation token, if the list of connections returned does not include the last of the filtered connections.<br/>ConnectionList:  A list of requested connection definitions.<br/>        """
        pass

    def get_crawler(self, Name: str) -> GetCrawlerResponse:
        r"""Retrieves metadata for a specified crawler.

        :param self:
        :param Name:  The name of the crawler to retrieve metadata for.<br/>
        :return: Crawler:  The metadata for the specified crawler.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CrawlerSecurityConfiguration</i> The name of the <code>SecurityConfiguration</code> structure to be used by this crawler.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Configuration</i> Crawler configuration information. This versioned JSON string allows users to specify aspects of a crawler's behavior. For more information, see <a href="https://docs.aws.amazon.com/glue/latest/dg/define-crawler.html#crawler-data-stores-exclude">Include and Exclude Patterns</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The version of the crawler.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastCrawl</i> The status of the last crawl, and potentially error information if an error occurred.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>LastCrawl</b>: The status of the last crawl, and potentially error information if an error occurred.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdated</i> The time that the crawler was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The time that the crawler was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CrawlElapsedTime</i> If the crawler is running, contains the total time elapsed since the last crawl began.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Schedule</i> For scheduled crawlers, the schedule when the crawler runs.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Schedule</b>: For scheduled crawlers, the schedule when the crawler runs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TablePrefix</i> The prefix added to the names of tables that are created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> Indicates whether the crawler is running, or whether a run is pending.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LineageConfiguration</i> A configuration that specifies whether data lineage is enabled for the crawler.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>LineageConfiguration</b>: A configuration that specifies whether data lineage is enabled for the crawler.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SchemaChangePolicy</i> The policy that specifies update and delete behaviors for the crawler.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SchemaChangePolicy</b>: The policy that specifies update and delete behaviors for the crawler.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecrawlPolicy</i> A policy that specifies whether to crawl the entire dataset again, or to crawl only folders that were added since the last crawler run.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RecrawlPolicy</b>: A policy that specifies whether to crawl the entire dataset again, or to crawl only folders that were added since the last crawler run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Classifiers</i> A list of UTF-8 strings that specify the custom classifiers that are associated with the crawler.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A description of the crawler.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> The name of the database in which the crawler's output is stored.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Targets</i> A collection of targets to crawl.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Targets</b>: A collection of targets to crawl.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Role</i> The Amazon Resource Name (ARN) of an IAM role that's used to access customer resources, such as Amazon Simple Storage Service (Amazon S3) data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the crawler.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CatalogTargets</i> Specifies Glue Data Catalog targets.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DynamoDBTargets</i> Specifies Amazon DynamoDB targets.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MongoDBTargets</i> Specifies Amazon DocumentDB or MongoDB targets.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>JdbcTargets</i> Specifies JDBC targets.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Targets</i> Specifies Amazon Simple Storage Service (Amazon S3) targets.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RecrawlBehavior</i> Specifies whether to crawl the entire dataset again or to crawl only folders that were added since the last crawler run. A value of <code>CRAWL_EVERYTHING</code> specifies crawling the entire dataset again. A value of <code>CRAWL_NEW_FOLDERS_ONLY</code> specifies crawling only folders that were added since the last crawler run.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DeleteBehavior</i> The deletion behavior when the crawler finds a deleted object.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdateBehavior</i> The update behavior when the crawler finds a changed schema.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CrawlerLineageSettings</i> Specifies whether data lineage is enabled for the crawler. Valid values are: <ul> <li> ENABLE: enables data lineage for the crawler </li> <li> DISABLE: disables data lineage for the crawler </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the schedule.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ScheduleExpression</i> A <code>cron</code> expression used to specify the schedule (see <a href="https://docs.aws.amazon.com/glue/latest/dg/monitor-data-warehouse-schedule.html">Time-Based Schedules for Jobs and Crawlers</a>. For example, to run something every day at 12:15 UTC, you would specify: <code>cron(15 12 * * ? *)</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StartTime</i> The time at which the crawl started.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MessagePrefix</i> The prefix for a message about this crawl.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LogStream</i> The log stream for the last crawl.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LogGroup</i> The log group for the last crawl.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorMessage</i> If an error occurred, the error information about the last crawl.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Status of the last crawl.<br/>        """
        pass

    def get_crawler_metrics(self, CrawlerNameList: List[NameString]=None, MaxResults: int=None, NextToken: str=None) -> GetCrawlerMetricsResponse:
        r"""Retrieves metrics about specified crawlers.

        :param self:
        :param NextToken:  A continuation token, if this is a continuation call.<br/>MaxResults:  The maximum size of a list to return.<br/>CrawlerNameList:  A list of the names of crawlers about which to retrieve metrics.<br/>
        :return: NextToken:  A continuation token, if the returned list does not contain the last metric available.<br/>CrawlerMetricsList:  A list of metrics for the specified crawler.<br/>        """
        pass

    def get_crawlers(self, MaxResults: int=None, NextToken: str=None) -> GetCrawlersResponse:
        r"""Retrieves metadata for all crawlers defined in the customer account.

        :param self:
        :param NextToken:  A continuation token, if this is a continuation request.<br/>MaxResults:  The number of crawlers to return on each call.<br/>
        :return: NextToken:  A continuation token, if the returned list has not reached the end of those defined in this customer account.<br/>Crawlers:  A list of crawler metadata.<br/>        """
        pass

    def get_data_catalog_encryption_settings(self, CatalogId: str=None) -> GetDataCatalogEncryptionSettingsResponse:
        r"""Retrieves the security configuration for a specified catalog.

        :param self:
        :param CatalogId:  The ID of the Data Catalog to retrieve the security configuration for. If none is provided, the Amazon Web Services account ID is used by default.<br/>
        :return: DataCatalogEncryptionSettings:  The requested security configuration.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConnectionPasswordEncryption</i> When connection password protection is enabled, the Data Catalog uses a customer-provided key to encrypt the password as part of <code>CreateConnection</code> or <code>UpdateConnection</code> and store it in the <code>ENCRYPTED_PASSWORD</code> field in the connection properties. You can enable catalog encryption or only password encryption.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ConnectionPasswordEncryption</b>: When connection password protection is enabled, the Data Catalog uses a customer-provided key to encrypt the password as part of <code>CreateConnection</code> or <code>UpdateConnection</code> and store it in the <code>ENCRYPTED_PASSWORD</code> field in the connection properties. You can enable catalog encryption or only password encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EncryptionAtRest</i> Specifies the encryption-at-rest configuration for the Data Catalog.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EncryptionAtRest</b>: Specifies the encryption-at-rest configuration for the Data Catalog.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SseAwsKmsKeyId</i> The ID of the KMS key to use for encryption at rest.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CatalogEncryptionMode</i> The encryption-at-rest mode for encrypting Data Catalog data.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AwsKmsKeyId</i> An KMS key that is used to encrypt the connection password.  If connection password protection is enabled, the caller of <code>CreateConnection</code> and <code>UpdateConnection</code> needs at least <code>kms:Encrypt</code> permission on the specified KMS key, to encrypt passwords before storing them in the Data Catalog.  You can set the decrypt permission to enable or restrict access on the password key according to your security requirements.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReturnConnectionPasswordEncrypted</i> When the <code>ReturnConnectionPasswordEncrypted</code> flag is set to "true", passwords remain encrypted in the responses of <code>GetConnection</code> and <code>GetConnections</code>. This encryption takes effect independently from catalog encryption. <br/>        """
        pass

    def get_database(self, Name: str, CatalogId: str=None) -> GetDatabaseResponse:
        r"""Retrieves the definition of a specified database.

        :param self:
        :param Name:  The name of the database to retrieve. For Hive compatibility, this should be all lowercase.<br/>CatalogId:  The ID of the Data Catalog in which the database resides. If none is provided, the Amazon Web Services account ID is used by default.<br/>
        :return: Database:  The definition of the specified database in the Data Catalog.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CatalogId</i> The ID of the Data Catalog in which the database resides.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetDatabase</i> A <code>DatabaseIdentifier</code> structure that describes a target database for resource linking.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TargetDatabase</b>: A <code>DatabaseIdentifier</code> structure that describes a target database for resource linking.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreateTableDefaultPermissions</i> Creates a set of default permissions on the table for principals. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreateTime</i> The time at which the metadata database was created in the catalog.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Parameters</i> These key-value pairs define parameters and properties of the database.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LocationUri</i> The location of the database (for example, an HDFS path).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A description of the database.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the database. For Hive compatibility, this is folded to lowercase when it is stored.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> The name of the catalog database.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CatalogId</i> The ID of the Data Catalog in which the database resides.<br/>        """
        pass

    def get_databases(self, CatalogId: str=None, NextToken: str=None, MaxResults: int=None, ResourceShareType: str=None) -> GetDatabasesResponse:
        r"""Retrieves all databases defined in a given Data Catalog.

        :param self:
        :param ResourceShareType:  Allows you to specify that you want to list the databases shared with your account. The allowable values are <code>FOREIGN</code> or <code>ALL</code>.  <ul> <li> If set to <code>FOREIGN</code>, will list the databases shared with your account.  </li> <li> If set to <code>ALL</code>, will list the databases shared with your account, as well as the databases in yor local account.  </li> </ul><br/>MaxResults:  The maximum number of databases to return in one response.<br/>NextToken:  A continuation token, if this is a continuation call.<br/>CatalogId:  The ID of the Data Catalog from which to retrieve <code>Databases</code>. If none is provided, the Amazon Web Services account ID is used by default.<br/>
        :return: NextToken:  A continuation token for paginating the returned list of tokens, returned if the current segment of the list is not the last.<br/>DatabaseList:  A list of <code>Database</code> objects from the specified catalog.<br/>        """
        pass

    def get_dataflow_graph(self, PythonScript: str=None) -> GetDataflowGraphResponse:
        r"""Transforms a Python script into a directed acyclic graph (DAG). 

        :param self:
        :param PythonScript:  The Python script to transform.<br/>
        :return: DagEdges:  A list of the edges in the resulting DAG.<br/>DagNodes:  A list of the nodes in the resulting DAG.<br/>        """
        pass

    def get_dev_endpoint(self, EndpointName: str) -> GetDevEndpointResponse:
        r"""Retrieves information about a specified development endpoint. <note> When you create a development endpoint in a virtual private cloud (VPC), Glue returns only a private IP address, and the public IP address field is not populated. When you create a non-VPC development endpoint, Glue returns only a public IP address. </note>

        :param self:
        :param EndpointName:  Name of the <code>DevEndpoint</code> to retrieve information for.<br/>
        :return: DevEndpoint:  A <code>DevEndpoint</code> definition.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arguments</i> A map of arguments used to configure the <code>DevEndpoint</code>. Valid arguments are: <ul> <li>  <code>"--enable-glue-datacatalog": ""</code>  </li> </ul> You can specify a version of Python support for development endpoints by using the <code>Arguments</code> parameter in the <code>CreateDevEndpoint</code> or <code>UpdateDevEndpoint</code> APIs. If no arguments are provided, the version defaults to Python 2.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityConfiguration</i> The name of the <code>SecurityConfiguration</code> structure to be used with this <code>DevEndpoint</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PublicKeys</i> A list of public keys to be used by the <code>DevEndpoints</code> for authentication. Using this attribute is preferred over a single public key because the public keys allow you to have a different private key per client. <note> If you previously created an endpoint with a public key, you must remove that key to be able to set a list of public keys. Call the <code>UpdateDevEndpoint</code> API operation with the public key content in the <code>deletePublicKeys</code> attribute, and the list of new keys in the <code>addPublicKeys</code> attribute. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PublicKey</i> The public key to be used by this <code>DevEndpoint</code> for authentication. This attribute is provided for backward compatibility because the recommended attribute to use is public keys.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedTimestamp</i> The point in time at which this <code>DevEndpoint</code> was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTimestamp</i> The point in time at which this DevEndpoint was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdateStatus</i> The status of the last update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FailureReason</i> The reason for a current failure in this <code>DevEndpoint</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExtraJarsS3Path</i> The path to one or more Java <code>.jar</code> files in an S3 bucket that should be loaded in your <code>DevEndpoint</code>. <note> You can only use pure Java/Scala libraries with a <code>DevEndpoint</code>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExtraPythonLibsS3Path</i> The paths to one or more Python libraries in an Amazon S3 bucket that should be loaded in your <code>DevEndpoint</code>. Multiple values must be complete paths separated by a comma. <note> You can only use pure Python libraries with a <code>DevEndpoint</code>. Libraries that rely on C extensions, such as the <a href="http://pandas.pydata.org/">pandas</a> Python data analysis library, are not currently supported. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The ID of the virtual private cloud (VPC) used by this <code>DevEndpoint</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZone</i> The AWS Availability Zone where this <code>DevEndpoint</code> is located.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberOfNodes</i> The number of Glue Data Processing Units (DPUs) allocated to this <code>DevEndpoint</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberOfWorkers</i> The number of workers of a defined <code>workerType</code> that are allocated to the development endpoint. The maximum number of workers you can define are 299 for <code>G.1X</code>, and 149 for <code>G.2X</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlueVersion</i> Glue version determines the versions of Apache Spark and Python that Glue supports. The Python version indicates the version supported for running your ETL scripts on development endpoints.  For more information about the available Glue versions and corresponding Spark and Python versions, see <a href="https://docs.aws.amazon.com/glue/latest/dg/add-job.html">Glue version</a> in the developer guide. Development endpoints that are created without specifying a Glue version default to Glue 0.9. You can specify a version of Python support for development endpoints by using the <code>Arguments</code> parameter in the <code>CreateDevEndpoint</code> or <code>UpdateDevEndpoint</code> APIs. If no arguments are provided, the version defaults to Python 2.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WorkerType</i> The type of predefined worker that is allocated to the development endpoint. Accepts a value of Standard, G.1X, or G.2X. <ul> <li> For the <code>Standard</code> worker type, each worker provides 4 vCPU, 16 GB of memory and a 50GB disk, and 2 executors per worker. </li> <li> For the <code>G.1X</code> worker type, each worker maps to 1 DPU (4 vCPU, 16 GB of memory, 64 GB disk), and provides 1 executor per worker. We recommend this worker type for memory-intensive jobs. </li> <li> For the <code>G.2X</code> worker type, each worker maps to 2 DPU (8 vCPU, 32 GB of memory, 128 GB disk), and provides 1 executor per worker. We recommend this worker type for memory-intensive jobs. </li> </ul> Known issue: when a development endpoint is created with the <code>G.2X</code> <code>WorkerType</code> configuration, the Spark drivers for the development endpoint will run on 4 vCPU, 16 GB of memory, and a 64 GB disk. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current status of this <code>DevEndpoint</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PublicAddress</i> The public IP address used by this <code>DevEndpoint</code>. The <code>PublicAddress</code> field is present only when you create a non-virtual private cloud (VPC) <code>DevEndpoint</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ZeppelinRemoteSparkInterpreterPort</i> The Apache Zeppelin port for the remote Apache Spark interpreter.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PrivateAddress</i> A private IP address to access the <code>DevEndpoint</code> within a VPC if the <code>DevEndpoint</code> is created within one. The <code>PrivateAddress</code> field is present only when you create the <code>DevEndpoint</code> within your VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>YarnEndpointAddress</i> The YARN endpoint address used by this <code>DevEndpoint</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetId</i> The subnet ID for this <code>DevEndpoint</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> A list of security group identifiers used in this <code>DevEndpoint</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The Amazon Resource Name (ARN) of the IAM role used in this <code>DevEndpoint</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointName</i> The name of the <code>DevEndpoint</code>.<br/>        """
        pass

    def get_dev_endpoints(self, MaxResults: int=None, NextToken: str=None) -> GetDevEndpointsResponse:
        r"""Retrieves all the development endpoints in this AWS account. <note> When you create a development endpoint in a virtual private cloud (VPC), Glue returns only a private IP address and the public IP address field is not populated. When you create a non-VPC development endpoint, Glue returns only a public IP address. </note>

        :param self:
        :param NextToken:  A continuation token, if this is a continuation call.<br/>MaxResults:  The maximum size of information to return.<br/>
        :return: NextToken:  A continuation token, if not all <code>DevEndpoint</code> definitions have yet been returned.<br/>DevEndpoints:  A list of <code>DevEndpoint</code> definitions.<br/>        """
        pass

    def get_job(self, JobName: str) -> GetJobResponse:
        r"""Retrieves an existing job definition.

        :param self:
        :param JobName:  The name of the job definition to retrieve.<br/>
        :return: Job:  The requested job definition.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlueVersion</i> Glue version determines the versions of Apache Spark and Python that Glue supports. The Python version indicates the version supported for jobs of type Spark.  For more information about the available Glue versions and corresponding Spark and Python versions, see <a href="https://docs.aws.amazon.com/glue/latest/dg/add-job.html">Glue version</a> in the developer guide. Jobs that are created without specifying a Glue version default to Glue 0.9.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NotificationProperty</i> Specifies configuration properties of a job notification.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>NotificationProperty</b>: Specifies configuration properties of a job notification.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityConfiguration</i> The name of the <code>SecurityConfiguration</code> structure to be used with this job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberOfWorkers</i> The number of workers of a defined <code>workerType</code> that are allocated when a job runs. The maximum number of workers you can define are 299 for <code>G.1X</code>, and 149 for <code>G.2X</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WorkerType</i> The type of predefined worker that is allocated when a job runs. Accepts a value of Standard, G.1X, or G.2X. <ul> <li> For the <code>Standard</code> worker type, each worker provides 4 vCPU, 16 GB of memory and a 50GB disk, and 2 executors per worker. </li> <li> For the <code>G.1X</code> worker type, each worker maps to 1 DPU (4 vCPU, 16 GB of memory, 64 GB disk), and provides 1 executor per worker. We recommend this worker type for memory-intensive jobs. </li> <li> For the <code>G.2X</code> worker type, each worker maps to 2 DPU (8 vCPU, 32 GB of memory, 128 GB disk), and provides 1 executor per worker. We recommend this worker type for memory-intensive jobs. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxCapacity</i> For Glue version 1.0 or earlier jobs, using the standard worker type, the number of Glue data processing units (DPUs) that can be allocated when this job runs. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory. For more information, see the <a href="https://aws.amazon.com/glue/pricing/">Glue pricing page</a>. Do not set <code>Max Capacity</code> if using <code>WorkerType</code> and <code>NumberOfWorkers</code>. The value that can be allocated for <code>MaxCapacity</code> depends on whether you are running a Python shell job, an Apache Spark ETL job, or an Apache Spark streaming ETL job: <ul> <li> When you specify a Python shell job (<code>JobCommand.Name</code>="pythonshell"), you can allocate either 0.0625 or 1 DPU. The default is 0.0625 DPU. </li> <li> When you specify an Apache Spark ETL job (<code>JobCommand.Name</code>="glueetl") or Apache Spark streaming ETL job (<code>JobCommand.Name</code>="gluestreaming"), you can allocate from 2 to 100 DPUs. The default is 10 DPUs. This job type cannot have a fractional DPU allocation. </li> </ul> For Glue version 2.0 jobs, you cannot instead specify a <code>Maximum capacity</code>. Instead, you should specify a <code>Worker type</code> and the <code>Number of workers</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Timeout</i> The job timeout in minutes. This is the maximum time that a job run can consume resources before it is terminated and enters <code>TIMEOUT</code> status. The default is 2,880 minutes (48 hours).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllocatedCapacity</i> This field is deprecated. Use <code>MaxCapacity</code> instead. The number of Glue data processing units (DPUs) allocated to runs of this job. You can allocate from 2 to 100 DPUs; the default is 10. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory. For more information, see the <a href="https://aws.amazon.com/glue/pricing/">Glue pricing page</a>. <p/><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxRetries</i> The maximum number of times to retry this job after a JobRun fails.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Connections</i> The connections used for this job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Connections</b>: The connections used for this job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NonOverridableArguments</i> Non-overridable arguments for this job, specified as name-value pairs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultArguments</i> The default arguments for this job, specified as name-value pairs. You can specify arguments here that your own job-execution script consumes, as well as arguments that Glue itself consumes. For information about how to specify and consume your own Job arguments, see the <a href="https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-python-calling.html">Calling Glue APIs in Python</a> topic in the developer guide. For information about the key-value pairs that Glue consumes to set up your job, see the <a href="https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-glue-arguments.html">Special Parameters Used by Glue</a> topic in the developer guide.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Command</i> The <code>JobCommand</code> that runs this job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Command</b>: The <code>JobCommand</code> that runs this job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExecutionProperty</i> An <code>ExecutionProperty</code> specifying the maximum number of concurrent runs allowed for this job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ExecutionProperty</b>: An <code>ExecutionProperty</code> specifying the maximum number of concurrent runs allowed for this job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedOn</i> The last point in time when this job definition was modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedOn</i> The time and date that this job definition was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Role</i> The name or Amazon Resource Name (ARN) of the IAM role associated with this job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogUri</i> This field is reserved for future use.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A description of the job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name you assign to this job definition.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxConcurrentRuns</i> The maximum number of concurrent runs allowed for the job. The default is 1. An error is returned when this threshold is reached. The maximum value you can specify is controlled by a service limit.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PythonVersion</i> The Python version being used to run a Python shell job. Allowed values are 2 or 3.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ScriptLocation</i> Specifies the Amazon Simple Storage Service (Amazon S3) path to a script that runs a job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the job command. For an Apache Spark ETL job, this must be <code>glueetl</code>. For a Python shell job, it must be <code>pythonshell</code>. For an Apache Spark streaming ETL job, this must be <code>gluestreaming</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Connections</i> A list of connections used by the job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NotifyDelayAfter</i> After a job run starts, the number of minutes to wait before sending a job run delay notification.<br/>        """
        pass

    def get_job_bookmark(self, JobName: str, RunId: str=None) -> GetJobBookmarkResponse:
        r"""Returns information on a job bookmark entry.

        :param self:
        :param RunId:  The unique run identifier associated with this job run.<br/>JobName:  The name of the job in question.<br/>
        :return: JobBookmarkEntry:  A structure that defines a point that a job can resume processing.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobBookmark</i> The bookmark itself.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RunId</i> The run ID number.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreviousRunId</i> The unique run identifier associated with the previous job run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Attempt</i> The attempt ID number.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Run</i> The run ID number.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The version of the job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobName</i> The name of the job in question.<br/>        """
        pass

    def get_job_run(self, RunId: str, JobName: str, PredecessorsIncluded: BooleanValue=None) -> GetJobRunResponse:
        r"""Retrieves the metadata for a given job run.

        :param self:
        :param PredecessorsIncluded:  True if a list of predecessor runs should be returned.<br/>RunId:  The ID of the job run.<br/>JobName:  Name of the job definition being run.<br/>
        :return: JobRun:  The requested job-run metadata.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlueVersion</i> Glue version determines the versions of Apache Spark and Python that Glue supports. The Python version indicates the version supported for jobs of type Spark.  For more information about the available Glue versions and corresponding Spark and Python versions, see <a href="https://docs.aws.amazon.com/glue/latest/dg/add-job.html">Glue version</a> in the developer guide. Jobs that are created without specifying a Glue version default to Glue 0.9.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NotificationProperty</i> Specifies configuration properties of a job run notification.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>NotificationProperty</b>: Specifies configuration properties of a job run notification.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogGroupName</i> The name of the log group for secure logging that can be server-side encrypted in Amazon CloudWatch using KMS. This name can be <code>/aws-glue/jobs/</code>, in which case the default encryption is <code>NONE</code>. If you add a role name and <code>SecurityConfiguration</code> name (in other words, <code>/aws-glue/jobs-yourRoleName-yourSecurityConfigurationName/</code>), then that security configuration is used to encrypt the log group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityConfiguration</i> The name of the <code>SecurityConfiguration</code> structure to be used with this job run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberOfWorkers</i> The number of workers of a defined <code>workerType</code> that are allocated when a job runs. The maximum number of workers you can define are 299 for <code>G.1X</code>, and 149 for <code>G.2X</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WorkerType</i> The type of predefined worker that is allocated when a job runs. Accepts a value of Standard, G.1X, or G.2X. <ul> <li> For the <code>Standard</code> worker type, each worker provides 4 vCPU, 16 GB of memory and a 50GB disk, and 2 executors per worker. </li> <li> For the <code>G.1X</code> worker type, each worker provides 4 vCPU, 16 GB of memory and a 64GB disk, and 1 executor per worker. </li> <li> For the <code>G.2X</code> worker type, each worker provides 8 vCPU, 32 GB of memory and a 128GB disk, and 1 executor per worker. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxCapacity</i> The number of Glue data processing units (DPUs) that can be allocated when this job runs. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory. For more information, see the <a href="https://aws.amazon.com/glue/pricing/">Glue pricing page</a>. Do not set <code>Max Capacity</code> if using <code>WorkerType</code> and <code>NumberOfWorkers</code>. The value that can be allocated for <code>MaxCapacity</code> depends on whether you are running a Python shell job or an Apache Spark ETL job: <ul> <li> When you specify a Python shell job (<code>JobCommand.Name</code>="pythonshell"), you can allocate either 0.0625 or 1 DPU. The default is 0.0625 DPU. </li> <li> When you specify an Apache Spark ETL job (<code>JobCommand.Name</code>="glueetl"), you can allocate from 2 to 100 DPUs. The default is 10 DPUs. This job type cannot have a fractional DPU allocation. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Timeout</i> The <code>JobRun</code> timeout in minutes. This is the maximum time that a job run can consume resources before it is terminated and enters <code>TIMEOUT</code> status. The default is 2,880 minutes (48 hours). This overrides the timeout value set in the parent job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExecutionTime</i> The amount of time (in seconds) that the job run consumed resources.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllocatedCapacity</i> This field is deprecated. Use <code>MaxCapacity</code> instead. The number of Glue data processing units (DPUs) allocated to this JobRun. From 2 to 100 DPUs can be allocated; the default is 10. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory. For more information, see the <a href="https://aws.amazon.com/glue/pricing/">Glue pricing page</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PredecessorRuns</i> A list of predecessors to this job run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorMessage</i> An error message associated with this job run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arguments</i> The job arguments associated with this run. For this job run, they replace the default arguments set in the job definition itself. You can specify arguments here that your own job-execution script consumes, as well as arguments that Glue itself consumes. For information about how to specify and consume your own job arguments, see the <a href="https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-python-calling.html">Calling Glue APIs in Python</a> topic in the developer guide. For information about the key-value pairs that Glue consumes to set up your job, see the <a href="https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-glue-arguments.html">Special Parameters Used by Glue</a> topic in the developer guide.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobRunState</i> The current state of the job run. For more information about the statuses of jobs that have terminated abnormally, see <a href="https://docs.aws.amazon.com/glue/latest/dg/job-run-statuses.html">Glue Job Run Statuses</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CompletedOn</i> The date and time that this job run completed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedOn</i> The last time that this job run was modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StartedOn</i> The date and time at which this job run was started.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobName</i> The name of the job definition being used in this run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TriggerName</i> The name of the trigger that started this job run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreviousRunId</i> The ID of the previous run of this job. For example, the <code>JobRunId</code> specified in the <code>StartJobRun</code> action.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Attempt</i> The number of the attempt to run this job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID of this job run.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NotifyDelayAfter</i> After a job run starts, the number of minutes to wait before sending a job run delay notification.<br/>        """
        pass

    def get_job_runs(self, JobName: str, NextToken: str=None, MaxResults: int=None) -> GetJobRunsResponse:
        r"""Retrieves metadata for all runs of a given job definition.

        :param self:
        :param MaxResults:  The maximum size of the response.<br/>NextToken:  A continuation token, if this is a continuation call.<br/>JobName:  The name of the job definition for which to retrieve all job runs.<br/>
        :return: NextToken:  A continuation token, if not all requested job runs have been returned.<br/>JobRuns:  A list of job-run metadata objects.<br/>        """
        pass

    def get_jobs(self, NextToken: str=None, MaxResults: int=None) -> GetJobsResponse:
        r"""Retrieves all current job definitions.

        :param self:
        :param MaxResults:  The maximum size of the response.<br/>NextToken:  A continuation token, if this is a continuation call.<br/>
        :return: NextToken:  A continuation token, if not all job definitions have yet been returned.<br/>Jobs:  A list of job definitions.<br/>        """
        pass

    def get_ml_task_run(self, TaskRunId: str, TransformId: str) -> GetMLTaskRunResponse:
        r"""Gets details for a specific task run on a machine learning transform. Machine learning task runs are asynchronous tasks that Glue runs on your behalf as part of various machine learning workflows. You can check the stats of any task run by calling <code>GetMLTaskRun</code> with the <code>TaskRunID</code> and its parent transform's <code>TransformID</code>.

        :param self:
        :param TaskRunId:  The unique identifier of the task run.<br/>TransformId:  The unique identifier of the machine learning transform.<br/>
        :return: ExecutionTime:  The amount of time (in seconds) that the task run consumed resources.<br/>CompletedOn:  The date and time when this task run was completed.<br/>LastModifiedOn:  The date and time when this task run was last modified.<br/>StartedOn:  The date and time when this task run started.<br/>ErrorString:  The error strings that are associated with the task run.<br/>Properties:  The list of properties that are associated with the task run.:<br/>LogGroupName:  The names of the log groups that are associated with the task run.<br/>Status:  The status for this task run.<br/>TaskRunId:  The unique run identifier associated with this run.<br/>TransformId:  The unique identifier of the task run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FindMatchesTaskRunProperties</i> The configuration properties for a find matches task run.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>FindMatchesTaskRunProperties</b>: The configuration properties for a find matches task run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LabelingSetGenerationTaskRunProperties</i> The configuration properties for a labeling set generation task run.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>LabelingSetGenerationTaskRunProperties</b>: The configuration properties for a labeling set generation task run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExportLabelsTaskRunProperties</i> The configuration properties for an exporting labels task run.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ExportLabelsTaskRunProperties</b>: The configuration properties for an exporting labels task run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImportLabelsTaskRunProperties</i> The configuration properties for an importing labels task run.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ImportLabelsTaskRunProperties</b>: The configuration properties for an importing labels task run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TaskType</i> The type of task run.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Replace</i> Indicates whether to overwrite your existing labels.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InputS3Path</i> The Amazon Simple Storage Service (Amazon S3) path from where you will import the labels.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OutputS3Path</i> The Amazon Simple Storage Service (Amazon S3) path where you will export the labels.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OutputS3Path</i> The Amazon Simple Storage Service (Amazon S3) path where you will generate the labeling set.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>JobRunId</i> The job run ID for the Find Matches task run.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>JobName</i> The name assigned to the job for the Find Matches task run.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>JobId</i> The job ID for the Find Matches task run.<br/>        """
        pass

    def get_ml_task_runs(self, TransformId: str, NextToken: str=None, MaxResults: int=None, Filter: TaskRunFilterCriteria=None, Sort: TaskRunSortCriteria=None) -> GetMLTaskRunsResponse:
        r"""Gets a list of runs for a machine learning transform. Machine learning task runs are asynchronous tasks that Glue runs on your behalf as part of various machine learning workflows. You can get a sortable, filterable list of machine learning task runs by calling <code>GetMLTaskRuns</code> with their parent transform's <code>TransformID</code> and other optional parameters as documented in this section. This operation returns a list of historic runs and must be paginated.

        :param self:
        :param Sort:  The sorting criteria, in the <code>TaskRunSortCriteria</code> structure, for the task run.:<br/>Filter:  The filter criteria, in the <code>TaskRunFilterCriteria</code> structure, for the task run.:<br/>MaxResults:  The maximum number of results to return. <br/>NextToken:  A token for pagination of the results. The default is empty.<br/>TransformId:  The unique identifier of the machine learning transform.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StartedAfter</i> Filter on task runs started after this date.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StartedBefore</i> Filter on task runs started before this date.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current status of the task run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TaskRunType</i> The type of task run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SortDirection</i> The sort direction to be used to sort the list of task runs for the machine learning transform.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Column</i> The column to be used to sort the list of task runs for the machine learning transform.<br/>
        :return: NextToken:  A pagination token, if more results are available.<br/>TaskRuns:  A list of task runs that are associated with the transform.<br/>        """
        pass

    def get_ml_transform(self, TransformId: str) -> GetMLTransformResponse:
        r"""Gets an Glue machine learning transform artifact and all its corresponding metadata. Machine learning transforms are a special type of transform that use machine learning to learn the details of the transformation to be performed by learning from examples provided by humans. These transformations are then saved by Glue. You can retrieve their metadata by calling <code>GetMLTransform</code>.

        :param self:
        :param TransformId:  The unique identifier of the transform, generated at the time that the transform was created.<br/>
        :return: TransformEncryption:  The encryption-at-rest settings of the transform that apply to accessing user data. Machine learning transforms can access user data encrypted in Amazon S3 using KMS.:<br/>MaxRetries:  The maximum number of times to retry a task for this transform after a task run fails.<br/>Timeout:  The timeout for a task run for this transform in minutes. This is the maximum time that a task run for this transform can consume resources before it is terminated and enters <code>TIMEOUT</code> status. The default is 2,880 minutes (48 hours).<br/>NumberOfWorkers:  The number of workers of a defined <code>workerType</code> that are allocated when this task runs.<br/>WorkerType:  The type of predefined worker that is allocated when this task runs. Accepts a value of Standard, G.1X, or G.2X. <ul> <li> For the <code>Standard</code> worker type, each worker provides 4 vCPU, 16 GB of memory and a 50GB disk, and 2 executors per worker. </li> <li> For the <code>G.1X</code> worker type, each worker provides 4 vCPU, 16 GB of memory and a 64GB disk, and 1 executor per worker. </li> <li> For the <code>G.2X</code> worker type, each worker provides 8 vCPU, 32 GB of memory and a 128GB disk, and 1 executor per worker. </li> </ul><br/>MaxCapacity:  The number of Glue data processing units (DPUs) that are allocated to task runs for this transform. You can allocate from 2 to 100 DPUs; the default is 10. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory. For more information, see the <a href="https://aws.amazon.com/glue/pricing/">Glue pricing page</a>.  When the <code>WorkerType</code> field is set to a value other than <code>Standard</code>, the <code>MaxCapacity</code> field is set automatically and becomes read-only.<br/>GlueVersion:  This value determines which version of Glue this machine learning transform is compatible with. Glue 1.0 is recommended for most customers. If the value is not set, the Glue compatibility defaults to Glue 0.9. For more information, see <a href="https://docs.aws.amazon.com/glue/latest/dg/release-notes.html#release-notes-versions">Glue Versions</a> in the developer guide.<br/>Role:  The name or Amazon Resource Name (ARN) of the IAM role with the required permissions.<br/>Schema:  The <code>Map&lt;Column, Type&gt;</code> object that represents the schema that this transform accepts. Has an upper bound of 100 columns.<br/>LabelCount:  The number of labels available for this transform.<br/>EvaluationMetrics:  The latest evaluation metrics.:<br/>Parameters:  The configuration parameters that are specific to the algorithm used.:<br/>InputRecordTables:  A list of Glue table definitions used by the transform.<br/>LastModifiedOn:  The date and time when the transform was last modified.<br/>CreatedOn:  The date and time when the transform was created.<br/>Status:  The last known status of the transform (to indicate whether it can be used or not). One of "NOT_READY", "READY", or "DELETING".<br/>Description:  A description of the transform.<br/>Name:  The unique name given to the transform when it was created.<br/>TransformId:  The unique identifier of the transform, generated at the time that the transform was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FindMatchesParameters</i> The parameters for the find matches algorithm.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>FindMatchesParameters</b>: The parameters for the find matches algorithm.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransformType</i> The type of machine learning transform. For information about the types of machine learning transforms, see <a href="https://docs.aws.amazon.com/glue/latest/dg/add-job-machine-learning-transform.html">Creating Machine Learning Transforms</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EnforceProvidedLabels</i> The value to switch on or off to force the output to match the provided labels from users. If the value is <code>True</code>, the <code>find matches</code> transform forces the output to match the provided labels. The results override the normal conflation results. If the value is <code>False</code>, the <code>find matches</code> transform does not ensure all the labels provided are respected, and the results rely on the trained model. Note that setting this value to true may increase the conflation execution time.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AccuracyCostTradeoff</i> The value that is selected when tuning your transform for a balance between accuracy and cost. A value of 0.5 means that the system balances accuracy and cost concerns. A value of 1.0 means a bias purely for accuracy, which typically results in a higher cost, sometimes substantially higher. A value of 0.0 means a bias purely for cost, which results in a less accurate <code>FindMatches</code> transform, sometimes with unacceptable accuracy. Accuracy measures how well the transform finds true positives and true negatives. Increasing accuracy requires more machine resources and cost. But it also results in increased recall.  Cost measures how many compute resources, and thus money, are consumed to run the transform.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PrecisionRecallTradeoff</i> The value selected when tuning your transform for a balance between precision and recall. A value of 0.5 means no preference; a value of 1.0 means a bias purely for precision, and a value of 0.0 means a bias for recall. Because this is a tradeoff, choosing values close to 1.0 means very low recall, and choosing values close to 0.0 results in very low precision. The precision metric indicates how often your model is correct when it predicts a match.  The recall metric indicates that for an actual match, how often your model predicts the match.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PrimaryKeyColumnName</i> The name of a column that uniquely identifies rows in the source table. Used to help identify matching records.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FindMatchesMetrics</i> The evaluation metrics for the find matches algorithm.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>FindMatchesMetrics</b>: The evaluation metrics for the find matches algorithm.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransformType</i> The type of machine learning transform.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>F1</i> The maximum F1 metric indicates the transform's accuracy between 0 and 1, where 1 is the best accuracy. For more information, see <a href="https://en.wikipedia.org/wiki/F1_score">F1 score</a> in Wikipedia.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Recall</i> The recall metric indicates that for an actual match, how often your transform predicts the match. Specifically, it measures how well the transform finds true positives from the total records in the source data. For more information, see <a href="https://en.wikipedia.org/wiki/Precision_and_recall">Precision and recall</a> in Wikipedia.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Precision</i> The precision metric indicates when often your transform is correct when it predicts a match. Specifically, it measures how well the transform finds true positives from the total true positives possible. For more information, see <a href="https://en.wikipedia.org/wiki/Precision_and_recall">Precision and recall</a> in Wikipedia.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AreaUnderPRCurve</i> The area under the precision/recall curve (AUPRC) is a single number measuring the overall quality of the transform, that is independent of the choice made for precision vs. recall. Higher values indicate that you have a more attractive precision vs. recall tradeoff. For more information, see <a href="https://en.wikipedia.org/wiki/Precision_and_recall">Precision and recall</a> in Wikipedia.<br/>The confusion matrix shows you what your transform is predicting accurately and what types of errors it is making. For more information, see <a href="https://en.wikipedia.org/wiki/Confusion_matrix">Confusion matrix</a> in Wikipedia.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ConfusionMatrix</b>: The confusion matrix shows you what your transform is predicting accurately and what types of errors it is making. For more information, see <a href="https://en.wikipedia.org/wiki/Confusion_matrix">Confusion matrix</a> in Wikipedia.&nbsp;&nbsp;&nbsp;&nbsp; <i>TaskRunSecurityConfigurationName</i> The name of the security configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MlUserDataEncryption</i> An <code>MLUserDataEncryption</code> object containing the encryption mode and customer-provided KMS key ID.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>MlUserDataEncryption</b>: An <code>MLUserDataEncryption</code> object containing the encryption mode and customer-provided KMS key ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The ID for the customer-provided KMS key.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MlUserDataEncryptionMode</i> The encryption mode applied to user data. Valid values are: <ul> <li> DISABLED: encryption is disabled </li> <li> SSEKMS: use of server-side encryption with Key Management Service (SSE-KMS) for user data stored in Amazon S3. </li> </ul><br/>        """
        pass

    def get_ml_transforms(self, NextToken: str=None, MaxResults: int=None, Filter: TransformFilterCriteria=None, Sort: TransformSortCriteria=None) -> GetMLTransformsResponse:
        r"""Gets a sortable, filterable list of existing Glue machine learning transforms. Machine learning transforms are a special type of transform that use machine learning to learn the details of the transformation to be performed by learning from examples provided by humans. These transformations are then saved by Glue, and you can retrieve their metadata by calling <code>GetMLTransforms</code>.

        :param self:
        :param Sort:  The sorting criteria.:<br/>Filter:  The filter transformation criteria.:<br/>MaxResults:  The maximum number of results to return.<br/>NextToken:  A paginated token to offset the results.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Schema</i> Filters on datasets with a specific schema. The <code>Map&lt;Column, Type&gt;</code> object is an array of key-value pairs representing the schema this transform accepts, where <code>Column</code> is the name of a column, and <code>Type</code> is the type of the data such as an integer or string. Has an upper bound of 100 columns.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedAfter</i> Filter on transforms last modified after this date.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedBefore</i> Filter on transforms last modified before this date.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedAfter</i> The time and date after which the transforms were created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedBefore</i> The time and date before which the transforms were created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlueVersion</i> This value determines which version of Glue this machine learning transform is compatible with. Glue 1.0 is recommended for most customers. If the value is not set, the Glue compatibility defaults to Glue 0.9. For more information, see <a href="https://docs.aws.amazon.com/glue/latest/dg/release-notes.html#release-notes-versions">Glue Versions</a> in the developer guide.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Filters the list of machine learning transforms by the last known status of the transforms (to indicate whether a transform can be used or not). One of "NOT_READY", "READY", or "DELETING".<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransformType</i> The type of machine learning transform that is used to filter the machine learning transforms.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A unique transform name that is used to filter the machine learning transforms.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SortDirection</i> The sort direction to be used in the sorting criteria that are associated with the machine learning transform.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Column</i> The column to be used in the sorting criteria that are associated with the machine learning transform.<br/>
        :return: NextToken:  A pagination token, if more results are available.<br/>Transforms:  A list of machine learning transforms.<br/>        """
        pass

    def get_mapping(self, Source: CatalogEntry, Sinks: List[CatalogEntry]=None, Location: Location=None) -> GetMappingResponse:
        r"""Creates mappings.

        :param self:
        :param Location:  Parameters for the mapping.:<br/>Sinks:  A list of target tables.<br/>Source:  Specifies the source table.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TableName</i> The name of the table in question.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> The database in which the table metadata resides.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DynamoDB</i> An Amazon DynamoDB table location.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3</i> An Amazon Simple Storage Service (Amazon S3) location.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Jdbc</i> A JDBC location.<br/>
        :return: Mapping:  A list of mappings to the specified targets.<br/>        """
        pass

    def get_partition(self, PartitionValues: List[ValueString], TableName: str, DatabaseName: str, CatalogId: str=None) -> GetPartitionResponse:
        r"""Retrieves information about a specified partition.

        :param self:
        :param PartitionValues:  The values that define the partition.<br/>TableName:  The name of the partition's table.<br/>DatabaseName:  The name of the catalog database where the partition resides.<br/>CatalogId:  The ID of the Data Catalog where the partition in question resides. If none is provided, the Amazon Web Services account ID is used by default.<br/>
        :return: Partition:  The requested information, in the form of a <code>Partition</code> object.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CatalogId</i> The ID of the Data Catalog in which the partition resides.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastAnalyzedTime</i> The last time at which column statistics were computed for this partition.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Parameters</i> These key-value pairs define partition parameters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageDescriptor</i> Provides information about the physical location where the partition is stored.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StorageDescriptor</b>: Provides information about the physical location where the partition is stored.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastAccessTime</i> The last time at which the partition was accessed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The time at which the partition was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TableName</i> The name of the database table in which to create the partition.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> The name of the catalog database in which to create the partition.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Values</i> The values of the partition.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberOfBuckets</i> Must be specified if the table contains any dimension columns.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Compressed</i>  <code>True</code> if the data in the table is compressed, or <code>False</code> if not.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OutputFormat</i> The output format: <code>SequenceFileOutputFormat</code> (binary), or <code>IgnoreKeyTextOutputFormat</code>, or a custom format.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InputFormat</i> The input format: <code>SequenceFileInputFormat</code> (binary), or <code>TextInputFormat</code>, or a custom format.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Location</i> The physical location of the table. By default, this takes the form of the warehouse location, followed by the database location in the warehouse, followed by the table name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Columns</i> A list of the <code>Columns</code> in the table.<br/>The serialization/deserialization (SerDe) information.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SerdeInfo</b>: The serialization/deserialization (SerDe) information.        """
        pass

    def get_partition_indexes(self, TableName: str, DatabaseName: str, CatalogId: str=None, NextToken: str=None) -> GetPartitionIndexesResponse:
        r"""Retrieves the partition indexes associated with a table.

        :param self:
        :param NextToken:  A continuation token, included if this is a continuation call.<br/>TableName:  Specifies the name of a table for which you want to retrieve the partition indexes.<br/>DatabaseName:  Specifies the name of a database from which you want to retrieve partition indexes.<br/>CatalogId:  The catalog ID where the table resides.<br/>
        :return: NextToken:  A continuation token, present if the current list segment is not the last.<br/>PartitionIndexDescriptorList:  A list of index descriptors.<br/>        """
        pass

    def get_partitions(self, TableName: str, DatabaseName: str, CatalogId: str=None, Expression: str=None, NextToken: str=None, Segment: Segment=None, MaxResults: int=None, ExcludeColumnSchema: BooleanNullable=None) -> GetPartitionsResponse:
        r"""Retrieves information about the partitions in a table.

        :param self:
        :param ExcludeColumnSchema:  <br/>MaxResults:  The maximum number of partitions to return in a single response.<br/>Segment:  The segment of the table's partitions to scan in this request.:<br/>NextToken:  A continuation token, if this is not the first call to retrieve these partitions.<br/>Expression:  An expression that filters the partitions to be returned. The expression uses SQL syntax similar to the SQL <code>WHERE</code> filter clause. The SQL statement parser <a href="http://jsqlparser.sourceforge.net/home.php">JSQLParser</a> parses the expression.   <i>Operators</i>: The following are the operators that you can use in the <code>Expression</code> API call: <dl> <dt>=</dt> <dd> Checks whether the values of the two operands are equal; if yes, then the condition becomes true. Example: Assume 'variable a' holds 10 and 'variable b' holds 20.  (a = b) is not true. </dd> <dt>&lt; &gt;</dt> <dd> Checks whether the values of two operands are equal; if the values are not equal, then the condition becomes true. Example: (a &lt; &gt; b) is true. </dd> <dt>&gt;</dt> <dd> Checks whether the value of the left operand is greater than the value of the right operand; if yes, then the condition becomes true. Example: (a &gt; b) is not true. </dd> <dt>&lt;</dt> <dd> Checks whether the value of the left operand is less than the value of the right operand; if yes, then the condition becomes true. Example: (a &lt; b) is true. </dd> <dt>&gt;=</dt> <dd> Checks whether the value of the left operand is greater than or equal to the value of the right operand; if yes, then the condition becomes true. Example: (a &gt;= b) is not true. </dd> <dt>&lt;=</dt> <dd> Checks whether the value of the left operand is less than or equal to the value of the right operand; if yes, then the condition becomes true. Example: (a &lt;= b) is true. </dd> <dt>AND, OR, IN, BETWEEN, LIKE, NOT, IS NULL</dt> <dd> Logical operators. </dd> </dl>  <i>Supported Partition Key Types</i>: The following are the supported partition keys. <ul> <li>  <code>string</code>  </li> <li>  <code>date</code>  </li> <li>  <code>timestamp</code>  </li> <li>  <code>int</code>  </li> <li>  <code>bigint</code>  </li> <li>  <code>long</code>  </li> <li>  <code>tinyint</code>  </li> <li>  <code>smallint</code>  </li> <li>  <code>decimal</code>  </li> </ul> If an type is encountered that is not valid, an exception is thrown.  The following list shows the valid operators on each type. When you define a crawler, the <code>partitionKey</code> type is created as a <code>STRING</code>, to be compatible with the catalog partitions.   <i>Sample API Call</i>: <br/>TableName:  The name of the partitions' table.<br/>DatabaseName:  The name of the catalog database where the partitions reside.<br/>CatalogId:  The ID of the Data Catalog where the partitions in question reside. If none is provided, the Amazon Web Services account ID is used by default.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalSegments</i> The total number of segments.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentNumber</i> The zero-based index number of the segment. For example, if the total number of segments is 4, <code>SegmentNumber</code> values range from 0 through 3.<br/>
        :return: NextToken:  A continuation token, if the returned list of partitions does not include the last one.<br/>Partitions:  A list of requested partitions.<br/>        """
        pass

    def get_plan(self, Source: CatalogEntry, Mapping: List[MappingEntry], Sinks: List[CatalogEntry]=None, Location: Location=None, Language: str=None, AdditionalPlanOptionsMap: AdditionalPlanOptionsMap=None) -> GetPlanResponse:
        r"""Gets code to perform a specified mapping.

        :param self:
        :param AdditionalPlanOptionsMap:  A map to hold additional optional key-value parameters. Currently, these key-value pairs are supported: <ul> <li>  <code>inferSchema</code>  —  Specifies whether to set <code>inferSchema</code> to true or false for the default script generated by an Glue job. For example, to set <code>inferSchema</code> to true, pass the following key value pair:  <code>--additional-plan-options-map '{"inferSchema":"true"}'</code>  </li> </ul><br/>Language:  The programming language of the code to perform the mapping.<br/>Location:  The parameters for the mapping.:<br/>Sinks:  The target tables.<br/>Source:  The source table.:<br/>Mapping:  The list of mappings from a source table to target tables.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TableName</i> The name of the table in question.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> The database in which the table metadata resides.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DynamoDB</i> An Amazon DynamoDB table location.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3</i> An Amazon Simple Storage Service (Amazon S3) location.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Jdbc</i> A JDBC location.<br/>
        :return: ScalaCode:  The Scala code to perform the mapping.<br/>PythonScript:  A Python script to perform the mapping.<br/>        """
        pass

    def get_registry(self, RegistryId: RegistryId) -> GetRegistryResponse:
        r"""Describes the specified registry in detail.

        :param self:
        :param RegistryId:  This is a wrapper structure that may contain the registry name and Amazon Resource Name (ARN).:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RegistryArn</i> Arn of the registry to be updated. One of <code>RegistryArn</code> or <code>RegistryName</code> has to be provided.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RegistryName</i> Name of the registry. Used only for lookup. One of <code>RegistryArn</code> or <code>RegistryName</code> has to be provided. <br/>
        :return: UpdatedTime:  The date and time the registry was updated.<br/>CreatedTime:  The date and time the registry was created.<br/>Status:  The status of the registry.<br/>Description:  A description of the registry.<br/>RegistryArn:  The Amazon Resource Name (ARN) of the registry.<br/>RegistryName:  The name of the registry.<br/>        """
        pass

    def get_resource_policies(self, NextToken: str=None, MaxResults: int=None) -> GetResourcePoliciesResponse:
        r"""Retrieves the resource policies set on individual resources by Resource Access Manager during cross-account permission grants. Also retrieves the Data Catalog resource policy. If you enabled metadata encryption in Data Catalog settings, and you do not have permission on the KMS key, the operation can't return the Data Catalog resource policy.

        :param self:
        :param MaxResults:  The maximum size of a list to return.<br/>NextToken:  A continuation token, if this is a continuation request.<br/>
        :return: NextToken:  A continuation token, if the returned list does not contain the last resource policy available.<br/>GetResourcePoliciesResponseList:  A list of the individual resource policies and the account-level resource policy.<br/>        """
        pass

    def get_resource_policy(self, ResourceArn: str=None) -> GetResourcePolicyResponse:
        r"""Retrieves a specified resource policy.

        :param self:
        :param ResourceArn:  The ARN of the Glue resource for which to retrieve the resource policy. If not supplied, the Data Catalog resource policy is returned. Use <code>GetResourcePolicies</code> to view all existing resource policies. For more information see <a href="https://docs.aws.amazon.com/glue/latest/dg/glue-specifying-resource-arns.html">Specifying Glue Resource ARNs</a>. <br/>
        :return: UpdateTime:  The date and time at which the policy was last updated.<br/>CreateTime:  The date and time at which the policy was created.<br/>PolicyHash:  Contains the hash value associated with this policy.<br/>PolicyInJson:  Contains the requested policy document, in JSON format.<br/>        """
        pass

    def get_schema(self, SchemaId: SchemaId) -> GetSchemaResponse:
        r"""Describes the specified schema in detail.

        :param self:
        :param SchemaId:  This is a wrapper structure to contain schema identity fields. The structure contains: <ul> <li> SchemaId$SchemaArn: The Amazon Resource Name (ARN) of the schema. Either <code>SchemaArn</code> or <code>SchemaName</code> and <code>RegistryName</code> has to be provided. </li> <li> SchemaId$SchemaName: The name of the schema. Either <code>SchemaArn</code> or <code>SchemaName</code> and <code>RegistryName</code> has to be provided. </li> </ul>:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RegistryName</i> The name of the schema registry that contains the schema.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SchemaName</i> The name of the schema. One of <code>SchemaArn</code> or <code>SchemaName</code> has to be provided.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SchemaArn</i> The Amazon Resource Name (ARN) of the schema. One of <code>SchemaArn</code> or <code>SchemaName</code> has to be provided.<br/>
        :return: UpdatedTime:  The date and time the schema was updated.<br/>CreatedTime:  The date and time the schema was created.<br/>SchemaStatus:  The status of the schema.<br/>NextSchemaVersion:  The next version of the schema associated with the returned schema definition.<br/>LatestSchemaVersion:  The latest version of the schema associated with the returned schema definition.<br/>SchemaCheckpoint:  The version number of the checkpoint (the last time the compatibility mode was changed).<br/>Compatibility:  The compatibility mode of the schema.<br/>DataFormat:  The data format of the schema definition. Currently <code>AVRO</code> and <code>JSON</code> are supported.<br/>Description:  A description of schema if specified when created<br/>SchemaArn:  The Amazon Resource Name (ARN) of the schema.<br/>SchemaName:  The name of the schema.<br/>RegistryArn:  The Amazon Resource Name (ARN) of the registry.<br/>RegistryName:  The name of the registry.<br/>        """
        pass

    def get_schema_by_definition(self, SchemaDefinition: str, SchemaId: SchemaId) -> GetSchemaByDefinitionResponse:
        r"""Retrieves a schema by the <code>SchemaDefinition</code>. The schema definition is sent to the Schema Registry, canonicalized, and hashed. If the hash is matched within the scope of the <code>SchemaName</code> or ARN (or the default registry, if none is supplied), that schema’s metadata is returned. Otherwise, a 404 or NotFound error is returned. Schema versions in <code>Deleted</code> statuses will not be included in the results.

        :param self:
        :param SchemaDefinition:  The definition of the schema for which schema details are required.<br/>SchemaId:  This is a wrapper structure to contain schema identity fields. The structure contains: <ul> <li> SchemaId$SchemaArn: The Amazon Resource Name (ARN) of the schema. One of <code>SchemaArn</code> or <code>SchemaName</code> has to be provided. </li> <li> SchemaId$SchemaName: The name of the schema. One of <code>SchemaArn</code> or <code>SchemaName</code> has to be provided. </li> </ul>:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RegistryName</i> The name of the schema registry that contains the schema.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SchemaName</i> The name of the schema. One of <code>SchemaArn</code> or <code>SchemaName</code> has to be provided.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SchemaArn</i> The Amazon Resource Name (ARN) of the schema. One of <code>SchemaArn</code> or <code>SchemaName</code> has to be provided.<br/>
        :return: CreatedTime:  The date and time the schema was created.<br/>Status:  The status of the schema version.<br/>DataFormat:  The data format of the schema definition. Currently only <code>AVRO</code> and <code>JSON</code> are supported.<br/>SchemaArn:  The Amazon Resource Name (ARN) of the schema.<br/>SchemaVersionId:  The schema ID of the schema version.<br/>        """
        pass

    def get_schema_version(self, SchemaId: SchemaId=None, SchemaVersionId: str=None, SchemaVersionNumber: SchemaVersionNumber=None) -> GetSchemaVersionResponse:
        r"""Get the specified schema by its unique ID assigned when a version of the schema is created or registered. Schema versions in Deleted status will not be included in the results.

        :param self:
        :param SchemaVersionNumber:  The version number of the schema.:<br/>SchemaVersionId:  The <code>SchemaVersionId</code> of the schema version. This field is required for fetching by schema ID. Either this or the <code>SchemaId</code> wrapper has to be provided.<br/>SchemaId:  This is a wrapper structure to contain schema identity fields. The structure contains: <ul> <li> SchemaId$SchemaArn: The Amazon Resource Name (ARN) of the schema. Either <code>SchemaArn</code> or <code>SchemaName</code> and <code>RegistryName</code> has to be provided. </li> <li> SchemaId$SchemaName: The name of the schema. Either <code>SchemaArn</code> or <code>SchemaName</code> and <code>RegistryName</code> has to be provided. </li> </ul>:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RegistryName</i> The name of the schema registry that contains the schema.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SchemaName</i> The name of the schema. One of <code>SchemaArn</code> or <code>SchemaName</code> has to be provided.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SchemaArn</i> The Amazon Resource Name (ARN) of the schema. One of <code>SchemaArn</code> or <code>SchemaName</code> has to be provided.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VersionNumber</i> The version number of the schema.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestVersion</i> The latest version available for the schema.<br/>
        :return: CreatedTime:  The date and time the schema version was created.<br/>Status:  The status of the schema version. <br/>VersionNumber:  The version number of the schema.<br/>SchemaArn:  The Amazon Resource Name (ARN) of the schema.<br/>DataFormat:  The data format of the schema definition. Currently <code>AVRO</code> and <code>JSON</code> are supported.<br/>SchemaDefinition:  The schema definition for the schema ID.<br/>SchemaVersionId:  The <code>SchemaVersionId</code> of the schema version.<br/>        """
        pass

    def get_schema_versions_diff(self, SchemaDiffType: str, SecondSchemaVersionNumber: SchemaVersionNumber, FirstSchemaVersionNumber: SchemaVersionNumber, SchemaId: SchemaId) -> GetSchemaVersionsDiffResponse:
        r"""Fetches the schema version difference in the specified difference type between two stored schema versions in the Schema Registry. This API allows you to compare two schema versions between two schema definitions under the same schema.

        :param self:
        :param SchemaDiffType:  Refers to <code>SYNTAX_DIFF</code>, which is the currently supported diff type.<br/>SecondSchemaVersionNumber:  The second of the two schema versions to be compared.:<br/>FirstSchemaVersionNumber:  The first of the two schema versions to be compared.:<br/>SchemaId:  This is a wrapper structure to contain schema identity fields. The structure contains: <ul> <li> SchemaId$SchemaArn: The Amazon Resource Name (ARN) of the schema. One of <code>SchemaArn</code> or <code>SchemaName</code> has to be provided. </li> <li> SchemaId$SchemaName: The name of the schema. One of <code>SchemaArn</code> or <code>SchemaName</code> has to be provided. </li> </ul>:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RegistryName</i> The name of the schema registry that contains the schema.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SchemaName</i> The name of the schema. One of <code>SchemaArn</code> or <code>SchemaName</code> has to be provided.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SchemaArn</i> The Amazon Resource Name (ARN) of the schema. One of <code>SchemaArn</code> or <code>SchemaName</code> has to be provided.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VersionNumber</i> The version number of the schema.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestVersion</i> The latest version available for the schema.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VersionNumber</i> The version number of the schema.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestVersion</i> The latest version available for the schema.<br/>
        :return: Diff:  The difference between schemas as a string in JsonPatch format.<br/>        """
        pass

    def get_security_configuration(self, Name: str) -> GetSecurityConfigurationResponse:
        r"""Retrieves a specified security configuration.

        :param self:
        :param Name:  The name of the security configuration to retrieve.<br/>
        :return: SecurityConfiguration:  The requested security configuration.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EncryptionConfiguration</i> The encryption configuration associated with this security configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EncryptionConfiguration</b>: The encryption configuration associated with this security configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTimeStamp</i> The time at which this security configuration was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the security configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Encryption</i> The encryption configuration for Amazon Simple Storage Service (Amazon S3) data.<br/>The encryption configuration for Amazon CloudWatch.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CloudWatchEncryption</b>: The encryption configuration for Amazon CloudWatch.        """
        pass

    def get_security_configurations(self, MaxResults: int=None, NextToken: str=None) -> GetSecurityConfigurationsResponse:
        r"""Retrieves a list of all security configurations.

        :param self:
        :param NextToken:  A continuation token, if this is a continuation call.<br/>MaxResults:  The maximum number of results to return.<br/>
        :return: NextToken:  A continuation token, if there are more security configurations to return.<br/>SecurityConfigurations:  A list of security configurations.<br/>        """
        pass

    def get_table(self, Name: str, DatabaseName: str, CatalogId: str=None) -> GetTableResponse:
        r"""Retrieves the <code>Table</code> definition in a Data Catalog for a specified table.

        :param self:
        :param Name:  The name of the table for which to retrieve the definition. For Hive compatibility, this name is entirely lowercase.<br/>DatabaseName:  The name of the database in the catalog in which the table resides. For Hive compatibility, this name is entirely lowercase.<br/>CatalogId:  The ID of the Data Catalog where the table resides. If none is provided, the Amazon Web Services account ID is used by default.<br/>
        :return: Table:  The <code>Table</code> object that defines the specified table.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CatalogId</i> The ID of the Data Catalog in which the table resides.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetTable</i> A <code>TableIdentifier</code> structure that describes a target table for resource linking.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TargetTable</b>: A <code>TableIdentifier</code> structure that describes a target table for resource linking.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsRegisteredWithLakeFormation</i> Indicates whether the table has been registered with Lake Formation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedBy</i> The person or entity who created the table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Parameters</i> These key-value pairs define properties associated with the table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TableType</i> The type of this table (<code>EXTERNAL_TABLE</code>, <code>VIRTUAL_VIEW</code>, etc.).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ViewExpandedText</i> If the table is a view, the expanded text of the view; otherwise <code>null</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ViewOriginalText</i> If the table is a view, the original text of the view; otherwise <code>null</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PartitionKeys</i> A list of columns by which the table is partitioned. Only primitive types are supported as partition keys. When you create a table used by Amazon Athena, and you do not specify any <code>partitionKeys</code>, you must at least set the value of <code>partitionKeys</code> to an empty list. For example:  <code>"PartitionKeys": []</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageDescriptor</i> A storage descriptor containing information about the physical storage of this table.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StorageDescriptor</b>: A storage descriptor containing information about the physical storage of this table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Retention</i> The retention time for this table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastAnalyzedTime</i> The last time that column statistics were computed for this table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastAccessTime</i> The last time that the table was accessed. This is usually taken from HDFS, and might not be reliable.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdateTime</i> The last time that the table was updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreateTime</i> The time when the table definition was created in the Data Catalog.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Owner</i> The owner of the table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A description of the table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> The name of the database where the table metadata resides. For Hive compatibility, this must be all lowercase.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The table name. For Hive compatibility, this must be entirely lowercase.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberOfBuckets</i> Must be specified if the table contains any dimension columns.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Compressed</i>  <code>True</code> if the data in the table is compressed, or <code>False</code> if not.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OutputFormat</i> The output format: <code>SequenceFileOutputFormat</code> (binary), or <code>IgnoreKeyTextOutputFormat</code>, or a custom format.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InputFormat</i> The input format: <code>SequenceFileInputFormat</code> (binary), or <code>TextInputFormat</code>, or a custom format.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Location</i> The physical location of the table. By default, this takes the form of the warehouse location, followed by the database location in the warehouse, followed by the table name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Columns</i> A list of the <code>Columns</code> in the table.<br/>The serialization/deserialization (SerDe) information.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SerdeInfo</b>: The serialization/deserialization (SerDe) information.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the target table.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> The name of the catalog database that contains the target table.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CatalogId</i> The ID of the Data Catalog in which the table resides.<br/>        """
        pass

    def get_table_version(self, TableName: str, DatabaseName: str, CatalogId: str=None, VersionId: str=None) -> GetTableVersionResponse:
        r"""Retrieves a specified version of a table.

        :param self:
        :param VersionId:  The ID value of the table version to be retrieved. A <code>VersionID</code> is a string representation of an integer. Each version is incremented by 1. <br/>TableName:  The name of the table. For Hive compatibility, this name is entirely lowercase.<br/>DatabaseName:  The database in the catalog in which the table resides. For Hive compatibility, this name is entirely lowercase.<br/>CatalogId:  The ID of the Data Catalog where the tables reside. If none is provided, the Amazon Web Services account ID is used by default.<br/>
        :return: TableVersion:  The requested table version.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VersionId</i> The ID value that identifies this table version. A <code>VersionId</code> is a string representation of an integer. Each version is incremented by 1.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Table</i> The table in question.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Table</b>: The table in question.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Retention</i> The retention time for this table.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LastAnalyzedTime</i> The last time that column statistics were computed for this table.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LastAccessTime</i> The last time that the table was accessed. This is usually taken from HDFS, and might not be reliable.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdateTime</i> The last time that the table was updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CreateTime</i> The time when the table definition was created in the Data Catalog.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Owner</i> The owner of the table.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A description of the table.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> The name of the database where the table metadata resides. For Hive compatibility, this must be all lowercase.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The table name. For Hive compatibility, this must be entirely lowercase.<br/>A storage descriptor containing information about the physical storage of this table.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StorageDescriptor</b>: A storage descriptor containing information about the physical storage of this table.        """
        pass

    def get_table_versions(self, TableName: str, DatabaseName: str, CatalogId: str=None, NextToken: str=None, MaxResults: int=None) -> GetTableVersionsResponse:
        r"""Retrieves a list of strings that identify available versions of a specified table.

        :param self:
        :param MaxResults:  The maximum number of table versions to return in one response.<br/>NextToken:  A continuation token, if this is not the first call.<br/>TableName:  The name of the table. For Hive compatibility, this name is entirely lowercase.<br/>DatabaseName:  The database in the catalog in which the table resides. For Hive compatibility, this name is entirely lowercase.<br/>CatalogId:  The ID of the Data Catalog where the tables reside. If none is provided, the Amazon Web Services account ID is used by default.<br/>
        :return: NextToken:  A continuation token, if the list of available versions does not include the last one.<br/>TableVersions:  A list of strings identifying available versions of the specified table.<br/>        """
        pass

    def get_tables(self, DatabaseName: str, CatalogId: str=None, Expression: str=None, NextToken: str=None, MaxResults: int=None) -> GetTablesResponse:
        r"""Retrieves the definitions of some or all of the tables in a given <code>Database</code>.

        :param self:
        :param MaxResults:  The maximum number of tables to return in a single response.<br/>NextToken:  A continuation token, included if this is a continuation call.<br/>Expression:  A regular expression pattern. If present, only those tables whose names match the pattern are returned.<br/>DatabaseName:  The database in the catalog whose tables to list. For Hive compatibility, this name is entirely lowercase.<br/>CatalogId:  The ID of the Data Catalog where the tables reside. If none is provided, the Amazon Web Services account ID is used by default.<br/>
        :return: NextToken:  A continuation token, present if the current list segment is not the last.<br/>TableList:  A list of the requested <code>Table</code> objects.<br/>        """
        pass

    def get_tags(self, ResourceArn: str) -> GetTagsResponse:
        r"""Retrieves a list of tags associated with a resource.

        :param self:
        :param ResourceArn:  The Amazon Resource Name (ARN) of the resource for which to retrieve tags.<br/>
        :return: Tags:  The requested tags.<br/>        """
        pass

    def get_trigger(self, Name: str) -> GetTriggerResponse:
        r"""Retrieves the definition of a trigger.

        :param self:
        :param Name:  The name of the trigger to retrieve.<br/>
        :return: Trigger:  The requested trigger definition.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Predicate</i> The predicate of this trigger, which defines when it will fire.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Predicate</b>: The predicate of this trigger, which defines when it will fire.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Actions</i> The actions initiated by this trigger.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Schedule</i> A <code>cron</code> expression used to specify the schedule (see <a href="https://docs.aws.amazon.com/glue/latest/dg/monitor-data-warehouse-schedule.html">Time-Based Schedules for Jobs and Crawlers</a>. For example, to run something every day at 12:15 UTC, you would specify: <code>cron(15 12 * * ? *)</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A description of this trigger.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The current state of the trigger.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of trigger that this is.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> Reserved for future use.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WorkflowName</i> The name of the workflow associated with the trigger.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the trigger.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Conditions</i> A list of the conditions that determine when the trigger will fire.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Logical</i> An optional field if only one condition is listed. If multiple conditions are listed, then this field is required.<br/>        """
        pass

    def get_triggers(self, NextToken: str=None, DependentJobName: str=None, MaxResults: int=None) -> GetTriggersResponse:
        r"""Gets all the triggers associated with a job.

        :param self:
        :param MaxResults:  The maximum size of the response.<br/>DependentJobName:  The name of the job to retrieve triggers for. The trigger that can start this job is returned, and if there is no such trigger, all triggers are returned.<br/>NextToken:  A continuation token, if this is a continuation call.<br/>
        :return: NextToken:  A continuation token, if not all the requested triggers have yet been returned.<br/>Triggers:  A list of triggers for the specified job.<br/>        """
        pass

    def get_user_defined_function(self, FunctionName: str, DatabaseName: str, CatalogId: str=None) -> GetUserDefinedFunctionResponse:
        r"""Retrieves a specified function definition from the Data Catalog.

        :param self:
        :param FunctionName:  The name of the function.<br/>DatabaseName:  The name of the catalog database where the function is located.<br/>CatalogId:  The ID of the Data Catalog where the function to be retrieved is located. If none is provided, the Amazon Web Services account ID is used by default.<br/>
        :return: UserDefinedFunction:  The requested function definition.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CatalogId</i> The ID of the Data Catalog in which the function resides.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceUris</i> The resource URIs for the function.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreateTime</i> The time at which the function was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerType</i> The owner type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerName</i> The owner of the function.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClassName</i> The Java class that contains the function code.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> The name of the catalog database that contains the function.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FunctionName</i> The name of the function.<br/>        """
        pass

    def get_user_defined_functions(self, Pattern: str, CatalogId: str=None, DatabaseName: str=None, NextToken: str=None, MaxResults: int=None) -> GetUserDefinedFunctionsResponse:
        r"""Retrieves multiple function definitions from the Data Catalog.

        :param self:
        :param MaxResults:  The maximum number of functions to return in one response.<br/>NextToken:  A continuation token, if this is a continuation call.<br/>Pattern:  An optional function-name pattern string that filters the function definitions returned.<br/>DatabaseName:  The name of the catalog database where the functions are located. If none is provided, functions from all the databases across the catalog will be returned.<br/>CatalogId:  The ID of the Data Catalog where the functions to be retrieved are located. If none is provided, the Amazon Web Services account ID is used by default.<br/>
        :return: NextToken:  A continuation token, if the list of functions returned does not include the last requested function.<br/>UserDefinedFunctions:  A list of requested function definitions.<br/>        """
        pass

    def get_workflow(self, Name: str, IncludeGraph: NullableBoolean=None) -> GetWorkflowResponse:
        r"""Retrieves resource metadata for a workflow.

        :param self:
        :param IncludeGraph:  Specifies whether to include a graph when returning the workflow resource metadata.<br/>Name:  The name of the workflow to retrieve.<br/>
        :return: Workflow:  The resource metadata for the workflow.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxConcurrentRuns</i> You can use this parameter to prevent unwanted multiple updates to data, to control costs, or in some cases, to prevent exceeding the maximum number of concurrent runs of any of the component jobs. If you leave this parameter blank, there is no limit to the number of concurrent workflow runs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Graph</i> The graph representing all the Glue components that belong to the workflow as nodes and directed connections between them as edges.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Graph</b>: The graph representing all the Glue components that belong to the workflow as nodes and directed connections between them as edges.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastRun</i> The information about the last execution of the workflow.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>LastRun</b>: The information about the last execution of the workflow.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedOn</i> The date and time when the workflow was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedOn</i> The date and time when the workflow was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultRunProperties</i> A collection of properties to be used as part of each execution of the workflow.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A description of the workflow.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the workflow representing the flow.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorMessage</i> This error message describes any error that may have occurred in starting the workflow run. Currently the only error message is "Concurrent runs exceeded for workflow: <code>foo</code>."<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the workflow run.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CompletedOn</i> The date and time when the workflow run completed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StartedOn</i> The date and time when the workflow run was started.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>WorkflowRunProperties</i> The workflow run properties which were set during the run.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PreviousRunId</i> The ID of the previous workflow run.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>WorkflowRunId</i> The ID of this workflow run.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> Name of the workflow that was run.<br/>The statistics of the run.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Statistics</b>: The statistics of the run.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Edges</i> A list of all the directed connections between the nodes belonging to the workflow.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Nodes</i> A list of the the Glue components belong to the workflow represented as nodes.<br/>        """
        pass

    def get_workflow_run(self, RunId: str, Name: str, IncludeGraph: NullableBoolean=None) -> GetWorkflowRunResponse:
        r"""Retrieves the metadata for a given workflow run. 

        :param self:
        :param IncludeGraph:  Specifies whether to include the workflow graph in response or not.<br/>RunId:  The ID of the workflow run.<br/>Name:  Name of the workflow being run.<br/>
        :return: Run:  The requested workflow run metadata.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Graph</i> The graph representing all the Glue components that belong to the workflow as nodes and directed connections between them as edges.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Graph</b>: The graph representing all the Glue components that belong to the workflow as nodes and directed connections between them as edges.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Statistics</i> The statistics of the run.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Statistics</b>: The statistics of the run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorMessage</i> This error message describes any error that may have occurred in starting the workflow run. Currently the only error message is "Concurrent runs exceeded for workflow: <code>foo</code>."<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the workflow run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CompletedOn</i> The date and time when the workflow run completed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StartedOn</i> The date and time when the workflow run was started.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WorkflowRunProperties</i> The workflow run properties which were set during the run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreviousRunId</i> The ID of the previous workflow run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WorkflowRunId</i> The ID of this workflow run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> Name of the workflow that was run.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RunningActions</i> Total number Actions in running state.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SucceededActions</i> Total number of Actions that have succeeded.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StoppedActions</i> Total number of Actions that have stopped.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FailedActions</i> Total number of Actions that have failed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TimeoutActions</i> Total number of Actions that timed out.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalActions</i> Total number of Actions in the workflow run.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Edges</i> A list of all the directed connections between the nodes belonging to the workflow.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Nodes</i> A list of the the Glue components belong to the workflow represented as nodes.<br/>        """
        pass

    def get_workflow_run_properties(self, RunId: str, Name: str) -> GetWorkflowRunPropertiesResponse:
        r"""Retrieves the workflow run properties which were set during the run.

        :param self:
        :param RunId:  The ID of the workflow run whose run properties should be returned.<br/>Name:  Name of the workflow which was run.<br/>
        :return: RunProperties:  The workflow run properties which were set during the specified run.<br/>        """
        pass

    def get_workflow_runs(self, Name: str, IncludeGraph: NullableBoolean=None, NextToken: str=None, MaxResults: int=None) -> GetWorkflowRunsResponse:
        r"""Retrieves metadata for all runs of a given workflow.

        :param self:
        :param MaxResults:  The maximum number of workflow runs to be included in the response.<br/>NextToken:  The maximum size of the response.<br/>IncludeGraph:  Specifies whether to include the workflow graph in response or not.<br/>Name:  Name of the workflow whose metadata of runs should be returned.<br/>
        :return: NextToken:  A continuation token, if not all requested workflow runs have been returned.<br/>Runs:  A list of workflow run metadata objects.<br/>        """
        pass

    def import_catalog_to_glue(self, CatalogId: str=None) -> ImportCatalogToGlueResponse:
        r"""Imports an existing Amazon Athena Data Catalog to Glue.

        :param self:
        :param CatalogId:  The ID of the catalog to import. Currently, this should be the Amazon Web Services account ID.<br/>
        :return:         """
        pass

    def list_crawlers(self, MaxResults: int=None, NextToken: str=None, Tags: TagsMap=None) -> ListCrawlersResponse:
        r"""Retrieves the names of all crawler resources in this Amazon Web Services account, or the resources with the specified tag. This operation allows you to see which resources are available in your account, and their names. This operation takes the optional <code>Tags</code> field, which you can use as a filter on the response so that tagged resources can be retrieved as a group. If you choose to use tags filtering, only resources with the tag are retrieved.

        :param self:
        :param Tags:  Specifies to return only these tagged resources.<br/>NextToken:  A continuation token, if this is a continuation request.<br/>MaxResults:  The maximum size of a list to return.<br/>
        :return: NextToken:  A continuation token, if the returned list does not contain the last metric available.<br/>CrawlerNames:  The names of all crawlers in the account, or the crawlers with the specified tags.<br/>        """
        pass

    def list_dev_endpoints(self, NextToken: str=None, MaxResults: int=None, Tags: TagsMap=None) -> ListDevEndpointsResponse:
        r"""Retrieves the names of all <code>DevEndpoint</code> resources in this Amazon Web Services account, or the resources with the specified tag. This operation allows you to see which resources are available in your account, and their names. This operation takes the optional <code>Tags</code> field, which you can use as a filter on the response so that tagged resources can be retrieved as a group. If you choose to use tags filtering, only resources with the tag are retrieved.

        :param self:
        :param Tags:  Specifies to return only these tagged resources.<br/>MaxResults:  The maximum size of a list to return.<br/>NextToken:  A continuation token, if this is a continuation request.<br/>
        :return: NextToken:  A continuation token, if the returned list does not contain the last metric available.<br/>DevEndpointNames:  The names of all the <code>DevEndpoint</code>s in the account, or the <code>DevEndpoint</code>s with the specified tags.<br/>        """
        pass

    def list_jobs(self, NextToken: str=None, MaxResults: int=None, Tags: TagsMap=None) -> ListJobsResponse:
        r"""Retrieves the names of all job resources in this Amazon Web Services account, or the resources with the specified tag. This operation allows you to see which resources are available in your account, and their names. This operation takes the optional <code>Tags</code> field, which you can use as a filter on the response so that tagged resources can be retrieved as a group. If you choose to use tags filtering, only resources with the tag are retrieved.

        :param self:
        :param Tags:  Specifies to return only these tagged resources.<br/>MaxResults:  The maximum size of a list to return.<br/>NextToken:  A continuation token, if this is a continuation request.<br/>
        :return: NextToken:  A continuation token, if the returned list does not contain the last metric available.<br/>JobNames:  The names of all jobs in the account, or the jobs with the specified tags.<br/>        """
        pass

    def list_ml_transforms(self, NextToken: str=None, MaxResults: int=None, Filter: TransformFilterCriteria=None, Sort: TransformSortCriteria=None, Tags: TagsMap=None) -> ListMLTransformsResponse:
        r""" Retrieves a sortable, filterable list of existing Glue machine learning transforms in this Amazon Web Services account, or the resources with the specified tag. This operation takes the optional <code>Tags</code> field, which you can use as a filter of the responses so that tagged resources can be retrieved as a group. If you choose to use tag filtering, only resources with the tags are retrieved. 

        :param self:
        :param Tags:  Specifies to return only these tagged resources.<br/>Sort:  A <code>TransformSortCriteria</code> used to sort the machine learning transforms.:<br/>Filter:  A <code>TransformFilterCriteria</code> used to filter the machine learning transforms.:<br/>MaxResults:  The maximum size of a list to return.<br/>NextToken:  A continuation token, if this is a continuation request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Schema</i> Filters on datasets with a specific schema. The <code>Map&lt;Column, Type&gt;</code> object is an array of key-value pairs representing the schema this transform accepts, where <code>Column</code> is the name of a column, and <code>Type</code> is the type of the data such as an integer or string. Has an upper bound of 100 columns.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedAfter</i> Filter on transforms last modified after this date.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedBefore</i> Filter on transforms last modified before this date.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedAfter</i> The time and date after which the transforms were created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedBefore</i> The time and date before which the transforms were created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlueVersion</i> This value determines which version of Glue this machine learning transform is compatible with. Glue 1.0 is recommended for most customers. If the value is not set, the Glue compatibility defaults to Glue 0.9. For more information, see <a href="https://docs.aws.amazon.com/glue/latest/dg/release-notes.html#release-notes-versions">Glue Versions</a> in the developer guide.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Filters the list of machine learning transforms by the last known status of the transforms (to indicate whether a transform can be used or not). One of "NOT_READY", "READY", or "DELETING".<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransformType</i> The type of machine learning transform that is used to filter the machine learning transforms.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A unique transform name that is used to filter the machine learning transforms.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SortDirection</i> The sort direction to be used in the sorting criteria that are associated with the machine learning transform.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Column</i> The column to be used in the sorting criteria that are associated with the machine learning transform.<br/>
        :return: NextToken:  A continuation token, if the returned list does not contain the last metric available.<br/>TransformIds:  The identifiers of all the machine learning transforms in the account, or the machine learning transforms with the specified tags.<br/>        """
        pass

    def list_registries(self, MaxResults: int=None, NextToken: str=None) -> ListRegistriesResponse:
        r"""Returns a list of registries that you have created, with minimal registry information. Registries in the <code>Deleting</code> status will not be included in the results. Empty results will be returned if there are no registries available.

        :param self:
        :param NextToken:  A continuation token, if this is a continuation call.<br/>MaxResults:  Maximum number of results required per page. If the value is not supplied, this will be defaulted to 25 per page.<br/>
        :return: NextToken:  A continuation token for paginating the returned list of tokens, returned if the current segment of the list is not the last.<br/>Registries:  An array of <code>RegistryDetailedListItem</code> objects containing minimal details of each registry.<br/>        """
        pass

    def list_schema_versions(self, SchemaId: SchemaId, MaxResults: int=None, NextToken: str=None) -> ListSchemaVersionsResponse:
        r"""Returns a list of schema versions that you have created, with minimal information. Schema versions in Deleted status will not be included in the results. Empty results will be returned if there are no schema versions available.

        :param self:
        :param NextToken:  A continuation token, if this is a continuation call.<br/>MaxResults:  Maximum number of results required per page. If the value is not supplied, this will be defaulted to 25 per page.<br/>SchemaId:  This is a wrapper structure to contain schema identity fields. The structure contains: <ul> <li> SchemaId$SchemaArn: The Amazon Resource Name (ARN) of the schema. Either <code>SchemaArn</code> or <code>SchemaName</code> and <code>RegistryName</code> has to be provided. </li> <li> SchemaId$SchemaName: The name of the schema. Either <code>SchemaArn</code> or <code>SchemaName</code> and <code>RegistryName</code> has to be provided. </li> </ul>:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RegistryName</i> The name of the schema registry that contains the schema.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SchemaName</i> The name of the schema. One of <code>SchemaArn</code> or <code>SchemaName</code> has to be provided.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SchemaArn</i> The Amazon Resource Name (ARN) of the schema. One of <code>SchemaArn</code> or <code>SchemaName</code> has to be provided.<br/>
        :return: NextToken:  A continuation token for paginating the returned list of tokens, returned if the current segment of the list is not the last.<br/>Schemas:  An array of <code>SchemaVersionList</code> objects containing details of each schema version.<br/>        """
        pass

    def list_schemas(self, RegistryId: RegistryId=None, MaxResults: int=None, NextToken: str=None) -> ListSchemasResponse:
        r"""Returns a list of schemas with minimal details. Schemas in Deleting status will not be included in the results. Empty results will be returned if there are no schemas available. When the <code>RegistryId</code> is not provided, all the schemas across registries will be part of the API response.

        :param self:
        :param NextToken:  A continuation token, if this is a continuation call.<br/>MaxResults:  Maximum number of results required per page. If the value is not supplied, this will be defaulted to 25 per page.<br/>RegistryId:  A wrapper structure that may contain the registry name and Amazon Resource Name (ARN).:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RegistryArn</i> Arn of the registry to be updated. One of <code>RegistryArn</code> or <code>RegistryName</code> has to be provided.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RegistryName</i> Name of the registry. Used only for lookup. One of <code>RegistryArn</code> or <code>RegistryName</code> has to be provided. <br/>
        :return: NextToken:  A continuation token for paginating the returned list of tokens, returned if the current segment of the list is not the last.<br/>Schemas:  An array of <code>SchemaListItem</code> objects containing details of each schema.<br/>        """
        pass

    def list_triggers(self, NextToken: str=None, DependentJobName: str=None, MaxResults: int=None, Tags: TagsMap=None) -> ListTriggersResponse:
        r"""Retrieves the names of all trigger resources in this Amazon Web Services account, or the resources with the specified tag. This operation allows you to see which resources are available in your account, and their names. This operation takes the optional <code>Tags</code> field, which you can use as a filter on the response so that tagged resources can be retrieved as a group. If you choose to use tags filtering, only resources with the tag are retrieved.

        :param self:
        :param Tags:  Specifies to return only these tagged resources.<br/>MaxResults:  The maximum size of a list to return.<br/>DependentJobName:   The name of the job for which to retrieve triggers. The trigger that can start this job is returned. If there is no such trigger, all triggers are returned.<br/>NextToken:  A continuation token, if this is a continuation request.<br/>
        :return: NextToken:  A continuation token, if the returned list does not contain the last metric available.<br/>TriggerNames:  The names of all triggers in the account, or the triggers with the specified tags.<br/>        """
        pass

    def list_workflows(self, NextToken: str=None, MaxResults: int=None) -> ListWorkflowsResponse:
        r"""Lists names of workflows created in the account.

        :param self:
        :param MaxResults:  The maximum size of a list to return.<br/>NextToken:  A continuation token, if this is a continuation request.<br/>
        :return: NextToken:  A continuation token, if not all workflow names have been returned.<br/>Workflows:  List of names of workflows in the account.<br/>        """
        pass

    def put_data_catalog_encryption_settings(self, DataCatalogEncryptionSettings: DataCatalogEncryptionSettings, CatalogId: str=None) -> PutDataCatalogEncryptionSettingsResponse:
        r"""Sets the security configuration for a specified catalog. After the configuration has been set, the specified encryption is applied to every catalog write thereafter.

        :param self:
        :param DataCatalogEncryptionSettings:  The security configuration to set.:<br/>CatalogId:  The ID of the Data Catalog to set the security configuration for. If none is provided, the Amazon Web Services account ID is used by default.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConnectionPasswordEncryption</i> When connection password protection is enabled, the Data Catalog uses a customer-provided key to encrypt the password as part of <code>CreateConnection</code> or <code>UpdateConnection</code> and store it in the <code>ENCRYPTED_PASSWORD</code> field in the connection properties. You can enable catalog encryption or only password encryption.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ConnectionPasswordEncryption</b>: When connection password protection is enabled, the Data Catalog uses a customer-provided key to encrypt the password as part of <code>CreateConnection</code> or <code>UpdateConnection</code> and store it in the <code>ENCRYPTED_PASSWORD</code> field in the connection properties. You can enable catalog encryption or only password encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EncryptionAtRest</i> Specifies the encryption-at-rest configuration for the Data Catalog.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EncryptionAtRest</b>: Specifies the encryption-at-rest configuration for the Data Catalog.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SseAwsKmsKeyId</i> The ID of the KMS key to use for encryption at rest.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CatalogEncryptionMode</i> The encryption-at-rest mode for encrypting Data Catalog data.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AwsKmsKeyId</i> An KMS key that is used to encrypt the connection password.  If connection password protection is enabled, the caller of <code>CreateConnection</code> and <code>UpdateConnection</code> needs at least <code>kms:Encrypt</code> permission on the specified KMS key, to encrypt passwords before storing them in the Data Catalog.  You can set the decrypt permission to enable or restrict access on the password key according to your security requirements.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReturnConnectionPasswordEncrypted</i> When the <code>ReturnConnectionPasswordEncrypted</code> flag is set to "true", passwords remain encrypted in the responses of <code>GetConnection</code> and <code>GetConnections</code>. This encryption takes effect independently from catalog encryption. <br/>
        :return:         """
        pass

    def put_resource_policy(self, PolicyInJson: str, ResourceArn: str=None, PolicyHashCondition: str=None, PolicyExistsCondition: str=None, EnableHybrid: str=None) -> PutResourcePolicyResponse:
        r"""Sets the Data Catalog resource policy for access control.

        :param self:
        :param EnableHybrid:  If <code>'TRUE'</code>, indicates that you are using both methods to grant cross-account access to Data Catalog resources: <ul> <li> By directly updating the resource policy with <code>PutResourePolicy</code>  </li> <li> By using the <b>Grant permissions</b> command on the Management Console. </li> </ul> Must be set to <code>'TRUE'</code> if you have already used the Management Console to grant cross-account access, otherwise the call fails. Default is 'FALSE'.<br/>PolicyExistsCondition:  A value of <code>MUST_EXIST</code> is used to update a policy. A value of <code>NOT_EXIST</code> is used to create a new policy. If a value of <code>NONE</code> or a null value is used, the call does not depend on the existence of a policy.<br/>PolicyHashCondition:  The hash value returned when the previous policy was set using <code>PutResourcePolicy</code>. Its purpose is to prevent concurrent modifications of a policy. Do not use this parameter if no previous policy has been set.<br/>ResourceArn:  Do not use. For internal use only.<br/>PolicyInJson:  Contains the policy document to set, in JSON format.<br/>
        :return: PolicyHash:  A hash of the policy that has just been set. This must be included in a subsequent call that overwrites or updates this policy.<br/>        """
        pass

    def put_schema_version_metadata(self, MetadataKeyValue: MetadataKeyValuePair, SchemaId: SchemaId=None, SchemaVersionNumber: SchemaVersionNumber=None, SchemaVersionId: str=None) -> PutSchemaVersionMetadataResponse:
        r"""Puts the metadata key value pair for a specified schema version ID. A maximum of 10 key value pairs will be allowed per schema version. They can be added over one or more calls.

        :param self:
        :param MetadataKeyValue:  The metadata key's corresponding value.:<br/>SchemaVersionId:  The unique version ID of the schema version.<br/>SchemaVersionNumber:  The version number of the schema.:<br/>SchemaId:  The unique ID for the schema.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RegistryName</i> The name of the schema registry that contains the schema.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SchemaName</i> The name of the schema. One of <code>SchemaArn</code> or <code>SchemaName</code> has to be provided.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SchemaArn</i> The Amazon Resource Name (ARN) of the schema. One of <code>SchemaArn</code> or <code>SchemaName</code> has to be provided.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VersionNumber</i> The version number of the schema.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestVersion</i> The latest version available for the schema.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MetadataValue</i> A metadata key’s corresponding value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MetadataKey</i> A metadata key.<br/>
        :return: MetadataValue:  The value of the metadata key.<br/>MetadataKey:  The metadata key.<br/>SchemaVersionId:  The unique version ID of the schema version.<br/>VersionNumber:  The version number of the schema.<br/>LatestVersion:  The latest version of the schema.<br/>RegistryName:  The name for the registry.<br/>SchemaName:  The name for the schema.<br/>SchemaArn:  The Amazon Resource Name (ARN) for the schema.<br/>        """
        pass

    def put_workflow_run_properties(self, RunProperties: WorkflowRunProperties, RunId: str, Name: str) -> PutWorkflowRunPropertiesResponse:
        r"""Puts the specified workflow run properties for the given workflow run. If a property already exists for the specified run, then it overrides the value otherwise adds the property to existing properties.

        :param self:
        :param RunProperties:  The properties to put for the specified run.<br/>RunId:  The ID of the workflow run for which the run properties should be updated.<br/>Name:  Name of the workflow which was run.<br/>
        :return:         """
        pass

    def query_schema_version_metadata(self, SchemaId: SchemaId=None, SchemaVersionNumber: SchemaVersionNumber=None, SchemaVersionId: str=None, MetadataList: List[MetadataKeyValuePair]=None, MaxResults: int=None, NextToken: str=None) -> QuerySchemaVersionMetadataResponse:
        r"""Queries for the schema version metadata information. 

        :param self:
        :param NextToken:  A continuation token, if this is a continuation call.<br/>MaxResults:  Maximum number of results required per page. If the value is not supplied, this will be defaulted to 25 per page.<br/>MetadataList:  Search key-value pairs for metadata, if they are not provided all the metadata information will be fetched.<br/>SchemaVersionId:  The unique version ID of the schema version.<br/>SchemaVersionNumber:  The version number of the schema.:<br/>SchemaId:  A wrapper structure that may contain the schema name and Amazon Resource Name (ARN).:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RegistryName</i> The name of the schema registry that contains the schema.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SchemaName</i> The name of the schema. One of <code>SchemaArn</code> or <code>SchemaName</code> has to be provided.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SchemaArn</i> The Amazon Resource Name (ARN) of the schema. One of <code>SchemaArn</code> or <code>SchemaName</code> has to be provided.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VersionNumber</i> The version number of the schema.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestVersion</i> The latest version available for the schema.<br/>
        :return: NextToken:  A continuation token for paginating the returned list of tokens, returned if the current segment of the list is not the last.<br/>SchemaVersionId:  The unique version ID of the schema version.<br/>MetadataInfoMap:  A map of a metadata key and associated values.<br/>        """
        pass

    def register_schema_version(self, SchemaDefinition: str, SchemaId: SchemaId) -> RegisterSchemaVersionResponse:
        r"""Adds a new version to the existing schema. Returns an error if new version of schema does not meet the compatibility requirements of the schema set. This API will not create a new schema set and will return a 404 error if the schema set is not already present in the Schema Registry. If this is the first schema definition to be registered in the Schema Registry, this API will store the schema version and return immediately. Otherwise, this call has the potential to run longer than other operations due to compatibility modes. You can call the <code>GetSchemaVersion</code> API with the <code>SchemaVersionId</code> to check compatibility modes. If the same schema definition is already stored in Schema Registry as a version, the schema ID of the existing schema is returned to the caller.

        :param self:
        :param SchemaDefinition:  The schema definition using the <code>DataFormat</code> setting for the <code>SchemaName</code>.<br/>SchemaId:  This is a wrapper structure to contain schema identity fields. The structure contains: <ul> <li> SchemaId$SchemaArn: The Amazon Resource Name (ARN) of the schema. Either <code>SchemaArn</code> or <code>SchemaName</code> and <code>RegistryName</code> has to be provided. </li> <li> SchemaId$SchemaName: The name of the schema. Either <code>SchemaArn</code> or <code>SchemaName</code> and <code>RegistryName</code> has to be provided. </li> </ul>:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RegistryName</i> The name of the schema registry that contains the schema.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SchemaName</i> The name of the schema. One of <code>SchemaArn</code> or <code>SchemaName</code> has to be provided.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SchemaArn</i> The Amazon Resource Name (ARN) of the schema. One of <code>SchemaArn</code> or <code>SchemaName</code> has to be provided.<br/>
        :return: Status:  The status of the schema version.<br/>VersionNumber:  The version of this schema (for sync flow only, in case this is the first version).<br/>SchemaVersionId:  The unique ID that represents the version of this schema.<br/>        """
        pass

    def remove_schema_version_metadata(self, MetadataKeyValue: MetadataKeyValuePair, SchemaId: SchemaId=None, SchemaVersionNumber: SchemaVersionNumber=None, SchemaVersionId: str=None) -> RemoveSchemaVersionMetadataResponse:
        r"""Removes a key value pair from the schema version metadata for the specified schema version ID.

        :param self:
        :param MetadataKeyValue:  The value of the metadata key.:<br/>SchemaVersionId:  The unique version ID of the schema version.<br/>SchemaVersionNumber:  The version number of the schema.:<br/>SchemaId:  A wrapper structure that may contain the schema name and Amazon Resource Name (ARN).:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RegistryName</i> The name of the schema registry that contains the schema.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SchemaName</i> The name of the schema. One of <code>SchemaArn</code> or <code>SchemaName</code> has to be provided.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SchemaArn</i> The Amazon Resource Name (ARN) of the schema. One of <code>SchemaArn</code> or <code>SchemaName</code> has to be provided.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VersionNumber</i> The version number of the schema.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestVersion</i> The latest version available for the schema.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MetadataValue</i> A metadata key’s corresponding value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MetadataKey</i> A metadata key.<br/>
        :return: MetadataValue:  The value of the metadata key.<br/>MetadataKey:  The metadata key.<br/>SchemaVersionId:  The version ID for the schema version.<br/>VersionNumber:  The version number of the schema.<br/>LatestVersion:  The latest version of the schema.<br/>RegistryName:  The name of the registry.<br/>SchemaName:  The name of the schema.<br/>SchemaArn:  The Amazon Resource Name (ARN) of the schema.<br/>        """
        pass

    def reset_job_bookmark(self, JobName: str, RunId: str=None) -> ResetJobBookmarkResponse:
        r"""Resets a bookmark entry.

        :param self:
        :param RunId:  The unique run identifier associated with this job run.<br/>JobName:  The name of the job in question.<br/>
        :return: JobBookmarkEntry:  The reset bookmark entry.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobBookmark</i> The bookmark itself.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RunId</i> The run ID number.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreviousRunId</i> The unique run identifier associated with the previous job run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Attempt</i> The attempt ID number.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Run</i> The run ID number.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The version of the job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobName</i> The name of the job in question.<br/>        """
        pass

    def resume_workflow_run(self, NodeIds: List[NameString], RunId: str, Name: str) -> ResumeWorkflowRunResponse:
        r"""Restarts selected nodes of a previous partially completed workflow run and resumes the workflow run. The selected nodes and all nodes that are downstream from the selected nodes are run.

        :param self:
        :param NodeIds:  A list of the node IDs for the nodes you want to restart. The nodes that are to be restarted must have a run attempt in the original run.<br/>RunId:  The ID of the workflow run to resume.<br/>Name:  The name of the workflow to resume.<br/>
        :return: NodeIds:  A list of the node IDs for the nodes that were actually restarted.<br/>RunId:  The new ID assigned to the resumed workflow run. Each resume of a workflow run will have a new run ID.<br/>        """
        pass

    def search_tables(self, CatalogId: str=None, NextToken: str=None, Filters: List[PropertyPredicate]=None, SearchText: str=None, SortCriteria: List[SortCriterion]=None, MaxResults: int=None, ResourceShareType: str=None) -> SearchTablesResponse:
        r"""Searches a set of tables based on properties in the table metadata as well as on the parent database. You can search against text or filter conditions.  You can only get tables that you have access to based on the security policies defined in Lake Formation. You need at least a read-only access to the table for it to be returned. If you do not have access to all the columns in the table, these columns will not be searched against when returning the list of tables back to you. If you have access to the columns but not the data in the columns, those columns and the associated metadata for those columns will be included in the search. 

        :param self:
        :param ResourceShareType:  Allows you to specify that you want to search the tables shared with your account. The allowable values are <code>FOREIGN</code> or <code>ALL</code>.  <ul> <li> If set to <code>FOREIGN</code>, will search the tables shared with your account.  </li> <li> If set to <code>ALL</code>, will search the tables shared with your account, as well as the tables in yor local account.  </li> </ul><br/>MaxResults:  The maximum number of tables to return in a single response.<br/>SortCriteria:  A list of criteria for sorting the results by a field name, in an ascending or descending order.<br/>SearchText:  A string used for a text search. Specifying a value in quotes filters based on an exact match to the value.<br/>Filters:  A list of key-value pairs, and a comparator used to filter the search results. Returns all entities matching the predicate. The <code>Comparator</code> member of the <code>PropertyPredicate</code> struct is used only for time fields, and can be omitted for other field types. Also, when comparing string values, such as when <code>Key=Name</code>, a fuzzy match algorithm is used. The <code>Key</code> field (for example, the value of the <code>Name</code> field) is split on certain punctuation characters, for example, -, :, #, etc. into tokens. Then each token is exact-match compared with the <code>Value</code> member of <code>PropertyPredicate</code>. For example, if <code>Key=Name</code> and <code>Value=link</code>, tables named <code>customer-link</code> and <code>xx-link-yy</code> are returned, but <code>xxlinkyy</code> is not returned.<br/>NextToken:  A continuation token, included if this is a continuation call.<br/>CatalogId:  A unique identifier, consisting of <code> <i>account_id</i> </code>.<br/>
        :return: TableList:  A list of the requested <code>Table</code> objects. The <code>SearchTables</code> response returns only the tables that you have access to.<br/>NextToken:  A continuation token, present if the current list segment is not the last.<br/>        """
        pass

    def start_crawler(self, Name: str) -> StartCrawlerResponse:
        r"""Starts a crawl using the specified crawler, regardless of what is scheduled. If the crawler is already running, returns a <a href="https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-exceptions.html#aws-glue-api-exceptions-CrawlerRunningException">CrawlerRunningException</a>.

        :param self:
        :param Name:  Name of the crawler to start.<br/>
        :return:         """
        pass

    def start_crawler_schedule(self, CrawlerName: str) -> StartCrawlerScheduleResponse:
        r"""Changes the schedule state of the specified crawler to <code>SCHEDULED</code>, unless the crawler is already running or the schedule state is already <code>SCHEDULED</code>.

        :param self:
        :param CrawlerName:  Name of the crawler to schedule.<br/>
        :return:         """
        pass

    def start_export_labels_task_run(self, OutputS3Path: str, TransformId: str) -> StartExportLabelsTaskRunResponse:
        r"""Begins an asynchronous task to export all labeled data for a particular transform. This task is the only label-related API call that is not part of the typical active learning workflow. You typically use <code>StartExportLabelsTaskRun</code> when you want to work with all of your existing labels at the same time, such as when you want to remove or change labels that were previously submitted as truth. This API operation accepts the <code>TransformId</code> whose labels you want to export and an Amazon Simple Storage Service (Amazon S3) path to export the labels to. The operation returns a <code>TaskRunId</code>. You can check on the status of your task run by calling the <code>GetMLTaskRun</code> API.

        :param self:
        :param OutputS3Path:  The Amazon S3 path where you export the labels.<br/>TransformId:  The unique identifier of the machine learning transform.<br/>
        :return: TaskRunId:  The unique identifier for the task run.<br/>        """
        pass

    def start_import_labels_task_run(self, InputS3Path: str, TransformId: str, ReplaceAllLabels: ReplaceBoolean=None) -> StartImportLabelsTaskRunResponse:
        r"""Enables you to provide additional labels (examples of truth) to be used to teach the machine learning transform and improve its quality. This API operation is generally used as part of the active learning workflow that starts with the <code>StartMLLabelingSetGenerationTaskRun</code> call and that ultimately results in improving the quality of your machine learning transform.  After the <code>StartMLLabelingSetGenerationTaskRun</code> finishes, Glue machine learning will have generated a series of questions for humans to answer. (Answering these questions is often called 'labeling' in the machine learning workflows). In the case of the <code>FindMatches</code> transform, these questions are of the form, “What is the correct way to group these rows together into groups composed entirely of matching records?” After the labeling process is finished, users upload their answers/labels with a call to <code>StartImportLabelsTaskRun</code>. After <code>StartImportLabelsTaskRun</code> finishes, all future runs of the machine learning transform use the new and improved labels and perform a higher-quality transformation. By default, <code>StartMLLabelingSetGenerationTaskRun</code> continually learns from and combines all labels that you upload unless you set <code>Replace</code> to true. If you set <code>Replace</code> to true, <code>StartImportLabelsTaskRun</code> deletes and forgets all previously uploaded labels and learns only from the exact set that you upload. Replacing labels can be helpful if you realize that you previously uploaded incorrect labels, and you believe that they are having a negative effect on your transform quality. You can check on the status of your task run by calling the <code>GetMLTaskRun</code> operation. 

        :param self:
        :param ReplaceAllLabels:  Indicates whether to overwrite your existing labels.<br/>InputS3Path:  The Amazon Simple Storage Service (Amazon S3) path from where you import the labels.<br/>TransformId:  The unique identifier of the machine learning transform.<br/>
        :return: TaskRunId:  The unique identifier for the task run.<br/>        """
        pass

    def start_job_run(self, JobName: str, JobRunId: str=None, Arguments: GenericMap=None, AllocatedCapacity: int=None, Timeout: int=None, MaxCapacity: NullableDouble=None, SecurityConfiguration: str=None, NotificationProperty: NotificationProperty=None, WorkerType: str=None, NumberOfWorkers: int=None) -> StartJobRunResponse:
        r"""Starts a job run using a job definition.

        :param self:
        :param NumberOfWorkers:  The number of workers of a defined <code>workerType</code> that are allocated when a job runs. The maximum number of workers you can define are 299 for <code>G.1X</code>, and 149 for <code>G.2X</code>. <br/>WorkerType:  The type of predefined worker that is allocated when a job runs. Accepts a value of Standard, G.1X, or G.2X. <ul> <li> For the <code>Standard</code> worker type, each worker provides 4 vCPU, 16 GB of memory and a 50GB disk, and 2 executors per worker. </li> <li> For the <code>G.1X</code> worker type, each worker provides 4 vCPU, 16 GB of memory and a 64GB disk, and 1 executor per worker. </li> <li> For the <code>G.2X</code> worker type, each worker provides 8 vCPU, 32 GB of memory and a 128GB disk, and 1 executor per worker. </li> </ul><br/>NotificationProperty:  Specifies configuration properties of a job run notification.:<br/>SecurityConfiguration:  The name of the <code>SecurityConfiguration</code> structure to be used with this job run.<br/>MaxCapacity:  The number of Glue data processing units (DPUs) that can be allocated when this job runs. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory. For more information, see the <a href="https://aws.amazon.com/glue/pricing/">Glue pricing page</a>. Do not set <code>Max Capacity</code> if using <code>WorkerType</code> and <code>NumberOfWorkers</code>. The value that can be allocated for <code>MaxCapacity</code> depends on whether you are running a Python shell job, or an Apache Spark ETL job: <ul> <li> When you specify a Python shell job (<code>JobCommand.Name</code>="pythonshell"), you can allocate either 0.0625 or 1 DPU. The default is 0.0625 DPU. </li> <li> When you specify an Apache Spark ETL job (<code>JobCommand.Name</code>="glueetl"), you can allocate from 2 to 100 DPUs. The default is 10 DPUs. This job type cannot have a fractional DPU allocation. </li> </ul><br/>Timeout:  The <code>JobRun</code> timeout in minutes. This is the maximum time that a job run can consume resources before it is terminated and enters <code>TIMEOUT</code> status. The default is 2,880 minutes (48 hours). This overrides the timeout value set in the parent job.<br/>AllocatedCapacity:  This field is deprecated. Use <code>MaxCapacity</code> instead. The number of Glue data processing units (DPUs) to allocate to this JobRun. From 2 to 100 DPUs can be allocated; the default is 10. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory. For more information, see the <a href="https://aws.amazon.com/glue/pricing/">Glue pricing page</a>.<br/>Arguments:  The job arguments specifically for this run. For this job run, they replace the default arguments set in the job definition itself. You can specify arguments here that your own job-execution script consumes, as well as arguments that Glue itself consumes. For information about how to specify and consume your own Job arguments, see the <a href="https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-python-calling.html">Calling Glue APIs in Python</a> topic in the developer guide. For information about the key-value pairs that Glue consumes to set up your job, see the <a href="https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-glue-arguments.html">Special Parameters Used by Glue</a> topic in the developer guide.<br/>JobRunId:  The ID of a previous <code>JobRun</code> to retry.<br/>JobName:  The name of the job definition to use.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NotifyDelayAfter</i> After a job run starts, the number of minutes to wait before sending a job run delay notification.<br/>
        :return: JobRunId:  The ID assigned to this job run.<br/>        """
        pass

    def start_ml_evaluation_task_run(self, TransformId: str) -> StartMLEvaluationTaskRunResponse:
        r"""Starts a task to estimate the quality of the transform.  When you provide label sets as examples of truth, Glue machine learning uses some of those examples to learn from them. The rest of the labels are used as a test to estimate quality. Returns a unique identifier for the run. You can call <code>GetMLTaskRun</code> to get more information about the stats of the <code>EvaluationTaskRun</code>.

        :param self:
        :param TransformId:  The unique identifier of the machine learning transform.<br/>
        :return: TaskRunId:  The unique identifier associated with this run.<br/>        """
        pass

    def start_ml_labeling_set_generation_task_run(self, OutputS3Path: str, TransformId: str) -> StartMLLabelingSetGenerationTaskRunResponse:
        r"""Starts the active learning workflow for your machine learning transform to improve the transform's quality by generating label sets and adding labels. When the <code>StartMLLabelingSetGenerationTaskRun</code> finishes, Glue will have generated a "labeling set" or a set of questions for humans to answer. In the case of the <code>FindMatches</code> transform, these questions are of the form, “What is the correct way to group these rows together into groups composed entirely of matching records?”  After the labeling process is finished, you can upload your labels with a call to <code>StartImportLabelsTaskRun</code>. After <code>StartImportLabelsTaskRun</code> finishes, all future runs of the machine learning transform will use the new and improved labels and perform a higher-quality transformation.

        :param self:
        :param OutputS3Path:  The Amazon Simple Storage Service (Amazon S3) path where you generate the labeling set.<br/>TransformId:  The unique identifier of the machine learning transform.<br/>
        :return: TaskRunId:  The unique run identifier that is associated with this task run.<br/>        """
        pass

    def start_trigger(self, Name: str) -> StartTriggerResponse:
        r"""Starts an existing trigger. See <a href="https://docs.aws.amazon.com/glue/latest/dg/trigger-job.html">Triggering Jobs</a> for information about how different types of trigger are started.

        :param self:
        :param Name:  The name of the trigger to start.<br/>
        :return: Name:  The name of the trigger that was started.<br/>        """
        pass

    def start_workflow_run(self, Name: str) -> StartWorkflowRunResponse:
        r"""Starts a new run of the specified workflow.

        :param self:
        :param Name:  The name of the workflow to start.<br/>
        :return: RunId:  An Id for the new run.<br/>        """
        pass

    def stop_crawler(self, Name: str) -> StopCrawlerResponse:
        r"""If the specified crawler is running, stops the crawl.

        :param self:
        :param Name:  Name of the crawler to stop.<br/>
        :return:         """
        pass

    def stop_crawler_schedule(self, CrawlerName: str) -> StopCrawlerScheduleResponse:
        r"""Sets the schedule state of the specified crawler to <code>NOT_SCHEDULED</code>, but does not stop the crawler if it is already running.

        :param self:
        :param CrawlerName:  Name of the crawler whose schedule state to set.<br/>
        :return:         """
        pass

    def stop_trigger(self, Name: str) -> StopTriggerResponse:
        r"""Stops a specified trigger.

        :param self:
        :param Name:  The name of the trigger to stop.<br/>
        :return: Name:  The name of the trigger that was stopped.<br/>        """
        pass

    def stop_workflow_run(self, RunId: str, Name: str) -> StopWorkflowRunResponse:
        r"""Stops the execution of the specified workflow run.

        :param self:
        :param RunId:  The ID of the workflow run to stop.<br/>Name:  The name of the workflow to stop.<br/>
        :return:         """
        pass

    def tag_resource(self, TagsToAdd: TagsMap, ResourceArn: str) -> TagResourceResponse:
        r"""Adds tags to a resource. A tag is a label you can assign to an Amazon Web Services resource. In Glue, you can tag only certain resources. For information about what resources you can tag, see <a href="https://docs.aws.amazon.com/glue/latest/dg/monitor-tags.html">Amazon Web Services Tags in Glue</a>.

        :param self:
        :param TagsToAdd:  Tags to add to this resource.<br/>ResourceArn:  The ARN of the Glue resource to which to add the tags. For more information about Glue resource ARNs, see the <a href="https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-common.html#aws-glue-api-regex-aws-glue-arn-id">Glue ARN string pattern</a>.<br/>
        :return:         """
        pass

    def untag_resource(self, TagsToRemove: List[TagKey], ResourceArn: str) -> UntagResourceResponse:
        r"""Removes tags from a resource.

        :param self:
        :param TagsToRemove:  Tags to remove from this resource.<br/>ResourceArn:  The Amazon Resource Name (ARN) of the resource from which to remove the tags.<br/>
        :return:         """
        pass

    def update_classifier(self, GrokClassifier: UpdateGrokClassifierRequest=None, XMLClassifier: UpdateXMLClassifierRequest=None, JsonClassifier: UpdateJsonClassifierRequest=None, CsvClassifier: UpdateCsvClassifierRequest=None) -> UpdateClassifierResponse:
        r"""Modifies an existing classifier (a <code>GrokClassifier</code>, an <code>XMLClassifier</code>, a <code>JsonClassifier</code>, or a <code>CsvClassifier</code>, depending on which field is present).

        :param self:
        :param CsvClassifier:  A <code>CsvClassifier</code> object with updated fields.:<br/>JsonClassifier:  A <code>JsonClassifier</code> object with updated fields.:<br/>XMLClassifier:  An <code>XMLClassifier</code> object with updated fields.:<br/>GrokClassifier:  A <code>GrokClassifier</code> object with updated fields.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomPatterns</i> Optional custom grok patterns used by this classifier.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GrokPattern</i> The grok pattern used by this classifier.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Classification</i> An identifier of the data format that the classifier matches, such as Twitter, JSON, Omniture logs, Amazon CloudWatch Logs, and so on.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the <code>GrokClassifier</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RowTag</i> The XML tag designating the element that contains each record in an XML document being parsed. This cannot identify a self-closing element (closed by <code>/&gt;</code>). An empty row element that contains only attributes can be parsed as long as it ends with a closing tag (for example, <code>&lt;row item_a="A" item_b="B"&gt;&lt;/row&gt;</code> is okay, but <code>&lt;row item_a="A" item_b="B" /&gt;</code> is not).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Classification</i> An identifier of the data format that the classifier matches.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the classifier.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JsonPath</i> A <code>JsonPath</code> string defining the JSON data for the classifier to classify. Glue supports a subset of JsonPath, as described in <a href="https://docs.aws.amazon.com/glue/latest/dg/custom-classifier.html#custom-classifier-json">Writing JsonPath Custom Classifiers</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the classifier.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowSingleColumn</i> Enables the processing of files that contain only one column.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DisableValueTrimming</i> Specifies not to trim values before identifying the type of column values. The default value is true.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Header</i> A list of strings representing column names.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ContainsHeader</i> Indicates whether the CSV file contains a header.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>QuoteSymbol</i> A custom symbol to denote what combines content into a single column value. It must be different from the column delimiter.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Delimiter</i> A custom symbol to denote what separates each column entry in the row.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the classifier.<br/>
        :return:         """
        pass

    def update_column_statistics_for_partition(self, ColumnStatisticsList: List[ColumnStatistics], PartitionValues: List[ValueString], TableName: str, DatabaseName: str, CatalogId: str=None) -> UpdateColumnStatisticsForPartitionResponse:
        r"""Creates or updates partition statistics of columns. The Identity and Access Management (IAM) permission required for this operation is <code>UpdatePartition</code>.

        :param self:
        :param ColumnStatisticsList:  A list of the column statistics.<br/>PartitionValues:  A list of partition values identifying the partition.<br/>TableName:  The name of the partitions' table.<br/>DatabaseName:  The name of the catalog database where the partitions reside.<br/>CatalogId:  The ID of the Data Catalog where the partitions in question reside. If none is supplied, the Amazon Web Services account ID is used by default.<br/>
        :return: Errors:  Error occurred during updating column statistics data.<br/>        """
        pass

    def update_column_statistics_for_table(self, ColumnStatisticsList: List[ColumnStatistics], TableName: str, DatabaseName: str, CatalogId: str=None) -> UpdateColumnStatisticsForTableResponse:
        r"""Creates or updates table statistics of columns. The Identity and Access Management (IAM) permission required for this operation is <code>UpdateTable</code>.

        :param self:
        :param ColumnStatisticsList:  A list of the column statistics.<br/>TableName:  The name of the partitions' table.<br/>DatabaseName:  The name of the catalog database where the partitions reside.<br/>CatalogId:  The ID of the Data Catalog where the partitions in question reside. If none is supplied, the Amazon Web Services account ID is used by default.<br/>
        :return: Errors:  List of ColumnStatisticsErrors.<br/>        """
        pass

    def update_connection(self, ConnectionInput: ConnectionInput, Name: str, CatalogId: str=None) -> UpdateConnectionResponse:
        r"""Updates a connection definition in the Data Catalog.

        :param self:
        :param ConnectionInput:  A <code>ConnectionInput</code> object that redefines the connection in question.:<br/>Name:  The name of the connection definition to update.<br/>CatalogId:  The ID of the Data Catalog in which the connection resides. If none is provided, the Amazon Web Services account ID is used by default.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PhysicalConnectionRequirements</i> A map of physical connection requirements, such as virtual private cloud (VPC) and <code>SecurityGroup</code>, that are needed to successfully make this connection.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PhysicalConnectionRequirements</b>: A map of physical connection requirements, such as virtual private cloud (VPC) and <code>SecurityGroup</code>, that are needed to successfully make this connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConnectionProperties</i> These key-value pairs define parameters for the connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MatchCriteria</i> A list of criteria that can be used in selecting this connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConnectionType</i> The type of the connection. Currently, these types are supported: <ul> <li>  <code>JDBC</code> - Designates a connection to a database through Java Database Connectivity (JDBC). </li> <li>  <code>KAFKA</code> - Designates a connection to an Apache Kafka streaming platform. </li> <li>  <code>MONGODB</code> - Designates a connection to a MongoDB document database. </li> <li>  <code>NETWORK</code> - Designates a network connection to a data source within an Amazon Virtual Private Cloud environment (Amazon VPC). </li> <li>  <code>MARKETPLACE</code> - Uses configuration settings contained in a connector purchased from Marketplace to read from and write to data stores that are not natively supported by Glue. </li> <li>  <code>CUSTOM</code> - Uses configuration settings contained in a custom connector to read from and write to data stores that are not natively supported by Glue. </li> </ul> SFTP is not supported.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZone</i> The connection's Availability Zone. This field is redundant because the specified subnet implies the Availability Zone to be used. Currently the field must be populated, but it will be deprecated in the future.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIdList</i> The security group ID list used by the connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetId</i> The subnet ID used by the connection.<br/>
        :return:         """
        pass

    def update_crawler(self, Name: str, Role: str=None, DatabaseName: str=None, Description: str=None, Targets: CrawlerTargets=None, Schedule: str=None, Classifiers: List[NameString]=None, TablePrefix: str=None, SchemaChangePolicy: SchemaChangePolicy=None, RecrawlPolicy: RecrawlPolicy=None, LineageConfiguration: LineageConfiguration=None, Configuration: str=None, CrawlerSecurityConfiguration: str=None) -> UpdateCrawlerResponse:
        r"""Updates a crawler. If a crawler is running, you must stop it using <code>StopCrawler</code> before updating it.

        :param self:
        :param CrawlerSecurityConfiguration:  The name of the <code>SecurityConfiguration</code> structure to be used by this crawler.<br/>Configuration:  Crawler configuration information. This versioned JSON string allows users to specify aspects of a crawler's behavior. For more information, see <a href="https://docs.aws.amazon.com/glue/latest/dg/crawler-configuration.html">Configuring a Crawler</a>.<br/>LineageConfiguration:  Specifies data lineage configuration settings for the crawler.:<br/>RecrawlPolicy:  A policy that specifies whether to crawl the entire dataset again, or to crawl only folders that were added since the last crawler run.:<br/>SchemaChangePolicy:  The policy for the crawler's update and deletion behavior.:<br/>TablePrefix:  The table prefix used for catalog tables that are created.<br/>Classifiers:  A list of custom classifiers that the user has registered. By default, all built-in classifiers are included in a crawl, but these custom classifiers always override the default classifiers for a given classification.<br/>Schedule:  A <code>cron</code> expression used to specify the schedule (see <a href="https://docs.aws.amazon.com/glue/latest/dg/monitor-data-warehouse-schedule.html">Time-Based Schedules for Jobs and Crawlers</a>. For example, to run something every day at 12:15 UTC, you would specify: <code>cron(15 12 * * ? *)</code>.<br/>Targets:  A list of targets to crawl.:<br/>Description:  A description of the new crawler.<br/>DatabaseName:  The Glue database where results are stored, such as: <code>arn:aws:daylight:us-east-1::database/sometable/*</code>.<br/>Role:  The IAM role or Amazon Resource Name (ARN) of an IAM role that is used by the new crawler to access customer resources.<br/>Name:  Name of the new crawler.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CatalogTargets</i> Specifies Glue Data Catalog targets.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DynamoDBTargets</i> Specifies Amazon DynamoDB targets.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MongoDBTargets</i> Specifies Amazon DocumentDB or MongoDB targets.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JdbcTargets</i> Specifies JDBC targets.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Targets</i> Specifies Amazon Simple Storage Service (Amazon S3) targets.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeleteBehavior</i> The deletion behavior when the crawler finds a deleted object.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdateBehavior</i> The update behavior when the crawler finds a changed schema.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecrawlBehavior</i> Specifies whether to crawl the entire dataset again or to crawl only folders that were added since the last crawler run. A value of <code>CRAWL_EVERYTHING</code> specifies crawling the entire dataset again. A value of <code>CRAWL_NEW_FOLDERS_ONLY</code> specifies crawling only folders that were added since the last crawler run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CrawlerLineageSettings</i> Specifies whether data lineage is enabled for the crawler. Valid values are: <ul> <li> ENABLE: enables data lineage for the crawler </li> <li> DISABLE: disables data lineage for the crawler </li> </ul><br/>
        :return:         """
        pass

    def update_crawler_schedule(self, CrawlerName: str, Schedule: str=None) -> UpdateCrawlerScheduleResponse:
        r"""Updates the schedule of a crawler using a <code>cron</code> expression. 

        :param self:
        :param Schedule:  The updated <code>cron</code> expression used to specify the schedule (see <a href="https://docs.aws.amazon.com/glue/latest/dg/monitor-data-warehouse-schedule.html">Time-Based Schedules for Jobs and Crawlers</a>. For example, to run something every day at 12:15 UTC, you would specify: <code>cron(15 12 * * ? *)</code>.<br/>CrawlerName:  The name of the crawler whose schedule to update.<br/>
        :return:         """
        pass

    def update_database(self, DatabaseInput: DatabaseInput, Name: str, CatalogId: str=None) -> UpdateDatabaseResponse:
        r"""Updates an existing database definition in a Data Catalog.

        :param self:
        :param DatabaseInput:  A <code>DatabaseInput</code> object specifying the new definition of the metadata database in the catalog.:<br/>Name:  The name of the database to update in the catalog. For Hive compatibility, this is folded to lowercase.<br/>CatalogId:  The ID of the Data Catalog in which the metadata database resides. If none is provided, the Amazon Web Services account ID is used by default.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetDatabase</i> A <code>DatabaseIdentifier</code> structure that describes a target database for resource linking.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TargetDatabase</b>: A <code>DatabaseIdentifier</code> structure that describes a target database for resource linking.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreateTableDefaultPermissions</i> Creates a set of default permissions on the table for principals. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Parameters</i> These key-value pairs define parameters and properties of the database. These key-value pairs define parameters and properties of the database.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LocationUri</i> The location of the database (for example, an HDFS path). <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A description of the database.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the database. For Hive compatibility, this is folded to lowercase when it is stored.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> The name of the catalog database.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CatalogId</i> The ID of the Data Catalog in which the database resides.<br/>
        :return:         """
        pass

    def update_dev_endpoint(self, EndpointName: str, PublicKey: str=None, AddPublicKeys: List[GenericString]=None, DeletePublicKeys: List[GenericString]=None, CustomLibraries: DevEndpointCustomLibraries=None, UpdateEtlLibraries: BooleanValue=None, DeleteArguments: List[GenericString]=None, AddArguments: MapValue=None) -> UpdateDevEndpointResponse:
        r"""Updates a specified development endpoint.

        :param self:
        :param AddArguments:  The map of arguments to add the map of arguments used to configure the <code>DevEndpoint</code>. Valid arguments are: <ul> <li>  <code>"--enable-glue-datacatalog": ""</code>  </li> </ul> You can specify a version of Python support for development endpoints by using the <code>Arguments</code> parameter in the <code>CreateDevEndpoint</code> or <code>UpdateDevEndpoint</code> APIs. If no arguments are provided, the version defaults to Python 2.<br/>DeleteArguments:  The list of argument keys to be deleted from the map of arguments used to configure the <code>DevEndpoint</code>.<br/>UpdateEtlLibraries:   <code>True</code> if the list of custom libraries to be loaded in the development endpoint needs to be updated, or <code>False</code> if otherwise.<br/>CustomLibraries:  Custom Python or Java libraries to be loaded in the <code>DevEndpoint</code>.:<br/>DeletePublicKeys:  The list of public keys to be deleted from the <code>DevEndpoint</code>.<br/>AddPublicKeys:  The list of public keys for the <code>DevEndpoint</code> to use.<br/>PublicKey:  The public key for the <code>DevEndpoint</code> to use.<br/>EndpointName:  The name of the <code>DevEndpoint</code> to be updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExtraJarsS3Path</i> The path to one or more Java <code>.jar</code> files in an S3 bucket that should be loaded in your <code>DevEndpoint</code>. <note> You can only use pure Java/Scala libraries with a <code>DevEndpoint</code>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExtraPythonLibsS3Path</i> The paths to one or more Python libraries in an Amazon Simple Storage Service (Amazon S3) bucket that should be loaded in your <code>DevEndpoint</code>. Multiple values must be complete paths separated by a comma. <note> You can only use pure Python libraries with a <code>DevEndpoint</code>. Libraries that rely on C extensions, such as the <a href="http://pandas.pydata.org/">pandas</a> Python data analysis library, are not currently supported. </note><br/>
        :return:         """
        pass

    def update_job(self, JobUpdate: JobUpdate, JobName: str) -> UpdateJobResponse:
        r"""Updates an existing job definition.

        :param self:
        :param JobUpdate:  Specifies the values with which to update the job definition.:<br/>JobName:  The name of the job definition to update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlueVersion</i> Glue version determines the versions of Apache Spark and Python that Glue supports. The Python version indicates the version supported for jobs of type Spark.  For more information about the available Glue versions and corresponding Spark and Python versions, see <a href="https://docs.aws.amazon.com/glue/latest/dg/add-job.html">Glue version</a> in the developer guide.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NotificationProperty</i> Specifies the configuration properties of a job notification.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>NotificationProperty</b>: Specifies the configuration properties of a job notification.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityConfiguration</i> The name of the <code>SecurityConfiguration</code> structure to be used with this job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberOfWorkers</i> The number of workers of a defined <code>workerType</code> that are allocated when a job runs. The maximum number of workers you can define are 299 for <code>G.1X</code>, and 149 for <code>G.2X</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WorkerType</i> The type of predefined worker that is allocated when a job runs. Accepts a value of Standard, G.1X, or G.2X. <ul> <li> For the <code>Standard</code> worker type, each worker provides 4 vCPU, 16 GB of memory and a 50GB disk, and 2 executors per worker. </li> <li> For the <code>G.1X</code> worker type, each worker maps to 1 DPU (4 vCPU, 16 GB of memory, 64 GB disk), and provides 1 executor per worker. We recommend this worker type for memory-intensive jobs. </li> <li> For the <code>G.2X</code> worker type, each worker maps to 2 DPU (8 vCPU, 32 GB of memory, 128 GB disk), and provides 1 executor per worker. We recommend this worker type for memory-intensive jobs. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxCapacity</i> For Glue version 1.0 or earlier jobs, using the standard worker type, the number of Glue data processing units (DPUs) that can be allocated when this job runs. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory. For more information, see the <a href="https://aws.amazon.com/glue/pricing/">Glue pricing page</a>. Do not set <code>Max Capacity</code> if using <code>WorkerType</code> and <code>NumberOfWorkers</code>. The value that can be allocated for <code>MaxCapacity</code> depends on whether you are running a Python shell job or an Apache Spark ETL job: <ul> <li> When you specify a Python shell job (<code>JobCommand.Name</code>="pythonshell"), you can allocate either 0.0625 or 1 DPU. The default is 0.0625 DPU. </li> <li> When you specify an Apache Spark ETL job (<code>JobCommand.Name</code>="glueetl") or Apache Spark streaming ETL job (<code>JobCommand.Name</code>="gluestreaming"), you can allocate from 2 to 100 DPUs. The default is 10 DPUs. This job type cannot have a fractional DPU allocation. </li> </ul> For Glue version 2.0 jobs, you cannot instead specify a <code>Maximum capacity</code>. Instead, you should specify a <code>Worker type</code> and the <code>Number of workers</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Timeout</i> The job timeout in minutes. This is the maximum time that a job run can consume resources before it is terminated and enters <code>TIMEOUT</code> status. The default is 2,880 minutes (48 hours).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllocatedCapacity</i> This field is deprecated. Use <code>MaxCapacity</code> instead. The number of Glue data processing units (DPUs) to allocate to this job. You can allocate from 2 to 100 DPUs; the default is 10. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory. For more information, see the <a href="https://aws.amazon.com/glue/pricing/">Glue pricing page</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxRetries</i> The maximum number of times to retry this job if it fails.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Connections</i> The connections used for this job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Connections</b>: The connections used for this job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NonOverridableArguments</i> Non-overridable arguments for this job, specified as name-value pairs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultArguments</i> The default arguments for this job. You can specify arguments here that your own job-execution script consumes, as well as arguments that Glue itself consumes. For information about how to specify and consume your own Job arguments, see the <a href="https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-python-calling.html">Calling Glue APIs in Python</a> topic in the developer guide. For information about the key-value pairs that Glue consumes to set up your job, see the <a href="https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-glue-arguments.html">Special Parameters Used by Glue</a> topic in the developer guide.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Command</i> The <code>JobCommand</code> that runs this job (required).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Command</b>: The <code>JobCommand</code> that runs this job (required).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExecutionProperty</i> An <code>ExecutionProperty</code> specifying the maximum number of concurrent runs allowed for this job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ExecutionProperty</b>: An <code>ExecutionProperty</code> specifying the maximum number of concurrent runs allowed for this job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Role</i> The name or Amazon Resource Name (ARN) of the IAM role associated with this job (required).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogUri</i> This field is reserved for future use.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> Description of the job being defined.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxConcurrentRuns</i> The maximum number of concurrent runs allowed for the job. The default is 1. An error is returned when this threshold is reached. The maximum value you can specify is controlled by a service limit.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PythonVersion</i> The Python version being used to run a Python shell job. Allowed values are 2 or 3.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ScriptLocation</i> Specifies the Amazon Simple Storage Service (Amazon S3) path to a script that runs a job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the job command. For an Apache Spark ETL job, this must be <code>glueetl</code>. For a Python shell job, it must be <code>pythonshell</code>. For an Apache Spark streaming ETL job, this must be <code>gluestreaming</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Connections</i> A list of connections used by the job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NotifyDelayAfter</i> After a job run starts, the number of minutes to wait before sending a job run delay notification.<br/>
        :return: JobName:  Returns the name of the updated job definition.<br/>        """
        pass

    def update_ml_transform(self, TransformId: str, Name: str=None, Description: str=None, Parameters: TransformParameters=None, Role: str=None, GlueVersion: str=None, MaxCapacity: NullableDouble=None, WorkerType: str=None, NumberOfWorkers: int=None, Timeout: int=None, MaxRetries: int=None) -> UpdateMLTransformResponse:
        r"""Updates an existing machine learning transform. Call this operation to tune the algorithm parameters to achieve better results. After calling this operation, you can call the <code>StartMLEvaluationTaskRun</code> operation to assess how well your new parameters achieved your goals (such as improving the quality of your machine learning transform, or making it more cost-effective).

        :param self:
        :param MaxRetries:  The maximum number of times to retry a task for this transform after a task run fails.<br/>Timeout:  The timeout for a task run for this transform in minutes. This is the maximum time that a task run for this transform can consume resources before it is terminated and enters <code>TIMEOUT</code> status. The default is 2,880 minutes (48 hours).<br/>NumberOfWorkers:  The number of workers of a defined <code>workerType</code> that are allocated when this task runs.<br/>WorkerType:  The type of predefined worker that is allocated when this task runs. Accepts a value of Standard, G.1X, or G.2X. <ul> <li> For the <code>Standard</code> worker type, each worker provides 4 vCPU, 16 GB of memory and a 50GB disk, and 2 executors per worker. </li> <li> For the <code>G.1X</code> worker type, each worker provides 4 vCPU, 16 GB of memory and a 64GB disk, and 1 executor per worker. </li> <li> For the <code>G.2X</code> worker type, each worker provides 8 vCPU, 32 GB of memory and a 128GB disk, and 1 executor per worker. </li> </ul><br/>MaxCapacity:  The number of Glue data processing units (DPUs) that are allocated to task runs for this transform. You can allocate from 2 to 100 DPUs; the default is 10. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory. For more information, see the <a href="https://aws.amazon.com/glue/pricing/">Glue pricing page</a>.  When the <code>WorkerType</code> field is set to a value other than <code>Standard</code>, the <code>MaxCapacity</code> field is set automatically and becomes read-only.<br/>GlueVersion:  This value determines which version of Glue this machine learning transform is compatible with. Glue 1.0 is recommended for most customers. If the value is not set, the Glue compatibility defaults to Glue 0.9. For more information, see <a href="https://docs.aws.amazon.com/glue/latest/dg/release-notes.html#release-notes-versions">Glue Versions</a> in the developer guide.<br/>Role:  The name or Amazon Resource Name (ARN) of the IAM role with the required permissions.<br/>Parameters:  The configuration parameters that are specific to the transform type (algorithm) used. Conditionally dependent on the transform type.:<br/>Description:  A description of the transform. The default is an empty string.<br/>Name:  The unique name that you gave the transform when you created it.<br/>TransformId:  A unique identifier that was generated when the transform was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FindMatchesParameters</i> The parameters for the find matches algorithm.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>FindMatchesParameters</b>: The parameters for the find matches algorithm.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransformType</i> The type of machine learning transform. For information about the types of machine learning transforms, see <a href="https://docs.aws.amazon.com/glue/latest/dg/add-job-machine-learning-transform.html">Creating Machine Learning Transforms</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EnforceProvidedLabels</i> The value to switch on or off to force the output to match the provided labels from users. If the value is <code>True</code>, the <code>find matches</code> transform forces the output to match the provided labels. The results override the normal conflation results. If the value is <code>False</code>, the <code>find matches</code> transform does not ensure all the labels provided are respected, and the results rely on the trained model. Note that setting this value to true may increase the conflation execution time.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AccuracyCostTradeoff</i> The value that is selected when tuning your transform for a balance between accuracy and cost. A value of 0.5 means that the system balances accuracy and cost concerns. A value of 1.0 means a bias purely for accuracy, which typically results in a higher cost, sometimes substantially higher. A value of 0.0 means a bias purely for cost, which results in a less accurate <code>FindMatches</code> transform, sometimes with unacceptable accuracy. Accuracy measures how well the transform finds true positives and true negatives. Increasing accuracy requires more machine resources and cost. But it also results in increased recall.  Cost measures how many compute resources, and thus money, are consumed to run the transform.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PrecisionRecallTradeoff</i> The value selected when tuning your transform for a balance between precision and recall. A value of 0.5 means no preference; a value of 1.0 means a bias purely for precision, and a value of 0.0 means a bias for recall. Because this is a tradeoff, choosing values close to 1.0 means very low recall, and choosing values close to 0.0 results in very low precision. The precision metric indicates how often your model is correct when it predicts a match.  The recall metric indicates that for an actual match, how often your model predicts the match.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PrimaryKeyColumnName</i> The name of a column that uniquely identifies rows in the source table. Used to help identify matching records.<br/>
        :return: TransformId:  The unique identifier for the transform that was updated.<br/>        """
        pass

    def update_partition(self, PartitionInput: PartitionInput, PartitionValueList: List[ValueString], TableName: str, DatabaseName: str, CatalogId: str=None) -> UpdatePartitionResponse:
        r"""Updates a partition.

        :param self:
        :param PartitionInput:  The new partition object to update the partition to. The <code>Values</code> property can't be changed. If you want to change the partition key values for a partition, delete and recreate the partition.:<br/>PartitionValueList:  List of partition key values that define the partition to update.<br/>TableName:  The name of the table in which the partition to be updated is located.<br/>DatabaseName:  The name of the catalog database in which the table in question resides.<br/>CatalogId:  The ID of the Data Catalog where the partition to be updated resides. If none is provided, the Amazon Web Services account ID is used by default.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastAnalyzedTime</i> The last time at which column statistics were computed for this partition.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Parameters</i> These key-value pairs define partition parameters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageDescriptor</i> Provides information about the physical location where the partition is stored.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StorageDescriptor</b>: Provides information about the physical location where the partition is stored.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastAccessTime</i> The last time at which the partition was accessed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Values</i> The values of the partition. Although this parameter is not required by the SDK, you must specify this parameter for a valid input. The values for the keys for the new partition must be passed as an array of String objects that must be ordered in the same order as the partition keys appearing in the Amazon S3 prefix. Otherwise Glue will add the values to the wrong keys.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberOfBuckets</i> Must be specified if the table contains any dimension columns.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Compressed</i>  <code>True</code> if the data in the table is compressed, or <code>False</code> if not.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OutputFormat</i> The output format: <code>SequenceFileOutputFormat</code> (binary), or <code>IgnoreKeyTextOutputFormat</code>, or a custom format.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InputFormat</i> The input format: <code>SequenceFileInputFormat</code> (binary), or <code>TextInputFormat</code>, or a custom format.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Location</i> The physical location of the table. By default, this takes the form of the warehouse location, followed by the database location in the warehouse, followed by the table name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Columns</i> A list of the <code>Columns</code> in the table.<br/>The serialization/deserialization (SerDe) information.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SerdeInfo</b>: The serialization/deserialization (SerDe) information.
        :return:         """
        pass

    def update_registry(self, Description: str, RegistryId: RegistryId) -> UpdateRegistryResponse:
        r"""Updates an existing registry which is used to hold a collection of schemas. The updated properties relate to the registry, and do not modify any of the schemas within the registry. 

        :param self:
        :param Description:  A description of the registry. If description is not provided, this field will not be updated.<br/>RegistryId:  This is a wrapper structure that may contain the registry name and Amazon Resource Name (ARN).:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RegistryArn</i> Arn of the registry to be updated. One of <code>RegistryArn</code> or <code>RegistryName</code> has to be provided.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RegistryName</i> Name of the registry. Used only for lookup. One of <code>RegistryArn</code> or <code>RegistryName</code> has to be provided. <br/>
        :return: RegistryArn:  The Amazon Resource name (ARN) of the updated registry.<br/>RegistryName:  The name of the updated registry.<br/>        """
        pass

    def update_schema(self, SchemaId: SchemaId, SchemaVersionNumber: SchemaVersionNumber=None, Compatibility: str=None, Description: str=None) -> UpdateSchemaResponse:
        r"""Updates the description, compatibility setting, or version checkpoint for a schema set. For updating the compatibility setting, the call will not validate compatibility for the entire set of schema versions with the new compatibility setting. If the value for <code>Compatibility</code> is provided, the <code>VersionNumber</code> (a checkpoint) is also required. The API will validate the checkpoint version number for consistency. If the value for the <code>VersionNumber</code> (checkpoint) is provided, <code>Compatibility</code> is optional and this can be used to set/reset a checkpoint for the schema. This update will happen only if the schema is in the AVAILABLE state.

        :param self:
        :param Description:  The new description for the schema.<br/>Compatibility:  The new compatibility setting for the schema.<br/>SchemaVersionNumber:  Version number required for check pointing. One of <code>VersionNumber</code> or <code>Compatibility</code> has to be provided.:<br/>SchemaId:  This is a wrapper structure to contain schema identity fields. The structure contains: <ul> <li> SchemaId$SchemaArn: The Amazon Resource Name (ARN) of the schema. One of <code>SchemaArn</code> or <code>SchemaName</code> has to be provided. </li> <li> SchemaId$SchemaName: The name of the schema. One of <code>SchemaArn</code> or <code>SchemaName</code> has to be provided. </li> </ul>:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RegistryName</i> The name of the schema registry that contains the schema.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SchemaName</i> The name of the schema. One of <code>SchemaArn</code> or <code>SchemaName</code> has to be provided.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SchemaArn</i> The Amazon Resource Name (ARN) of the schema. One of <code>SchemaArn</code> or <code>SchemaName</code> has to be provided.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VersionNumber</i> The version number of the schema.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestVersion</i> The latest version available for the schema.<br/>
        :return: RegistryName:  The name of the registry that contains the schema.<br/>SchemaName:  The name of the schema.<br/>SchemaArn:  The Amazon Resource Name (ARN) of the schema.<br/>        """
        pass

    def update_table(self, TableInput: TableInput, DatabaseName: str, CatalogId: str=None, SkipArchive: BooleanNullable=None) -> UpdateTableResponse:
        r"""Updates a metadata table in the Data Catalog.

        :param self:
        :param SkipArchive:  By default, <code>UpdateTable</code> always creates an archived version of the table before updating it. However, if <code>skipArchive</code> is set to true, <code>UpdateTable</code> does not create the archived version.<br/>TableInput:  An updated <code>TableInput</code> object to define the metadata table in the catalog.:<br/>DatabaseName:  The name of the catalog database in which the table resides. For Hive compatibility, this name is entirely lowercase.<br/>CatalogId:  The ID of the Data Catalog where the table resides. If none is provided, the Amazon Web Services account ID is used by default.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetTable</i> A <code>TableIdentifier</code> structure that describes a target table for resource linking.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TargetTable</b>: A <code>TableIdentifier</code> structure that describes a target table for resource linking.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Parameters</i> These key-value pairs define properties associated with the table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TableType</i> The type of this table (<code>EXTERNAL_TABLE</code>, <code>VIRTUAL_VIEW</code>, etc.).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ViewExpandedText</i> If the table is a view, the expanded text of the view; otherwise <code>null</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ViewOriginalText</i> If the table is a view, the original text of the view; otherwise <code>null</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PartitionKeys</i> A list of columns by which the table is partitioned. Only primitive types are supported as partition keys. When you create a table used by Amazon Athena, and you do not specify any <code>partitionKeys</code>, you must at least set the value of <code>partitionKeys</code> to an empty list. For example:  <code>"PartitionKeys": []</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageDescriptor</i> A storage descriptor containing information about the physical storage of this table.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StorageDescriptor</b>: A storage descriptor containing information about the physical storage of this table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Retention</i> The retention time for this table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastAnalyzedTime</i> The last time that column statistics were computed for this table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastAccessTime</i> The last time that the table was accessed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Owner</i> The table owner.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A description of the table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The table name. For Hive compatibility, this is folded to lowercase when it is stored.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberOfBuckets</i> Must be specified if the table contains any dimension columns.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Compressed</i>  <code>True</code> if the data in the table is compressed, or <code>False</code> if not.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OutputFormat</i> The output format: <code>SequenceFileOutputFormat</code> (binary), or <code>IgnoreKeyTextOutputFormat</code>, or a custom format.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InputFormat</i> The input format: <code>SequenceFileInputFormat</code> (binary), or <code>TextInputFormat</code>, or a custom format.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Location</i> The physical location of the table. By default, this takes the form of the warehouse location, followed by the database location in the warehouse, followed by the table name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Columns</i> A list of the <code>Columns</code> in the table.<br/>The serialization/deserialization (SerDe) information.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SerdeInfo</b>: The serialization/deserialization (SerDe) information.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the target table.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> The name of the catalog database that contains the target table.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CatalogId</i> The ID of the Data Catalog in which the table resides.<br/>
        :return:         """
        pass

    def update_trigger(self, TriggerUpdate: TriggerUpdate, Name: str) -> UpdateTriggerResponse:
        r"""Updates a trigger definition.

        :param self:
        :param TriggerUpdate:  The new values with which to update the trigger.:<br/>Name:  The name of the trigger to update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Predicate</i> The predicate of this trigger, which defines when it will fire.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Predicate</b>: The predicate of this trigger, which defines when it will fire.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Actions</i> The actions initiated by this trigger.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Schedule</i> A <code>cron</code> expression used to specify the schedule (see <a href="https://docs.aws.amazon.com/glue/latest/dg/monitor-data-warehouse-schedule.html">Time-Based Schedules for Jobs and Crawlers</a>. For example, to run something every day at 12:15 UTC, you would specify: <code>cron(15 12 * * ? *)</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A description of this trigger.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> Reserved for future use.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Conditions</i> A list of the conditions that determine when the trigger will fire.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Logical</i> An optional field if only one condition is listed. If multiple conditions are listed, then this field is required.<br/>
        :return: Trigger:  The resulting trigger definition.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Predicate</i> The predicate of this trigger, which defines when it will fire.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Predicate</b>: The predicate of this trigger, which defines when it will fire.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Actions</i> The actions initiated by this trigger.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Schedule</i> A <code>cron</code> expression used to specify the schedule (see <a href="https://docs.aws.amazon.com/glue/latest/dg/monitor-data-warehouse-schedule.html">Time-Based Schedules for Jobs and Crawlers</a>. For example, to run something every day at 12:15 UTC, you would specify: <code>cron(15 12 * * ? *)</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A description of this trigger.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The current state of the trigger.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of trigger that this is.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> Reserved for future use.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WorkflowName</i> The name of the workflow associated with the trigger.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the trigger.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Conditions</i> A list of the conditions that determine when the trigger will fire.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Logical</i> An optional field if only one condition is listed. If multiple conditions are listed, then this field is required.<br/>        """
        pass

    def update_user_defined_function(self, FunctionInput: UserDefinedFunctionInput, FunctionName: str, DatabaseName: str, CatalogId: str=None) -> UpdateUserDefinedFunctionResponse:
        r"""Updates an existing function definition in the Data Catalog.

        :param self:
        :param FunctionInput:  A <code>FunctionInput</code> object that redefines the function in the Data Catalog.:<br/>FunctionName:  The name of the function.<br/>DatabaseName:  The name of the catalog database where the function to be updated is located.<br/>CatalogId:  The ID of the Data Catalog where the function to be updated is located. If none is provided, the Amazon Web Services account ID is used by default.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceUris</i> The resource URIs for the function.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerType</i> The owner type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerName</i> The owner of the function.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClassName</i> The Java class that contains the function code.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FunctionName</i> The name of the function.<br/>
        :return:         """
        pass

    def update_workflow(self, Name: str, Description: str=None, DefaultRunProperties: WorkflowRunProperties=None, MaxConcurrentRuns: int=None) -> UpdateWorkflowResponse:
        r"""Updates an existing workflow.

        :param self:
        :param MaxConcurrentRuns:  You can use this parameter to prevent unwanted multiple updates to data, to control costs, or in some cases, to prevent exceeding the maximum number of concurrent runs of any of the component jobs. If you leave this parameter blank, there is no limit to the number of concurrent workflow runs.<br/>DefaultRunProperties:  A collection of properties to be used as part of each execution of the workflow.<br/>Description:  The description of the workflow.<br/>Name:  Name of the workflow to be updated.<br/>
        :return: Name:  The name of the workflow which was specified in input.<br/>        """
        pass





class Greengrass(BaseClient):
    r"""AWS IoT Greengrass seamlessly extends AWS onto physical devices so they can act locally on the data they generate, while still using the cloud for management, analytics, and durable storage. AWS IoT Greengrass ensures your devices can respond quickly to local events and operate with intermittent connectivity. AWS IoT Greengrass minimizes the cost of transmitting data to the cloud by allowing you to author AWS Lambda functions that execute locally."""


    class ListBulkDeploymentDetailedReportsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_bulk_deployment_detailed_reports` for valid parameters"""
            pass
    class ListBulkDeploymentsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_bulk_deployments` for valid parameters"""
            pass
    class ListConnectorDefinitionVersionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_connector_definition_versions` for valid parameters"""
            pass
    class ListConnectorDefinitionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_connector_definitions` for valid parameters"""
            pass
    class ListCoreDefinitionVersionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_core_definition_versions` for valid parameters"""
            pass
    class ListCoreDefinitionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_core_definitions` for valid parameters"""
            pass
    class ListDeploymentsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_deployments` for valid parameters"""
            pass
    class ListDeviceDefinitionVersionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_device_definition_versions` for valid parameters"""
            pass
    class ListDeviceDefinitionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_device_definitions` for valid parameters"""
            pass
    class ListFunctionDefinitionVersionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_function_definition_versions` for valid parameters"""
            pass
    class ListFunctionDefinitionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_function_definitions` for valid parameters"""
            pass
    class ListGroupVersionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_group_versions` for valid parameters"""
            pass
    class ListGroupsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_groups` for valid parameters"""
            pass
    class ListLoggerDefinitionVersionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_logger_definition_versions` for valid parameters"""
            pass
    class ListLoggerDefinitionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_logger_definitions` for valid parameters"""
            pass
    class ListResourceDefinitionVersionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_resource_definition_versions` for valid parameters"""
            pass
    class ListResourceDefinitionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_resource_definitions` for valid parameters"""
            pass
    class ListSubscriptionDefinitionVersionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_subscription_definition_versions` for valid parameters"""
            pass
    class ListSubscriptionDefinitionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_subscription_definitions` for valid parameters"""
            pass


    class AssociateRoleToGroupRequest(Mapping):
        pass
    
    class AssociateRoleToGroupResponse(Mapping):
        pass
    
    class AssociateServiceRoleToAccountRequest(Mapping):
        pass
    
    class AssociateServiceRoleToAccountResponse(Mapping):
        pass
    
    class CreateConnectorDefinitionRequest(Mapping):
        pass
    
    class CreateConnectorDefinitionResponse(Mapping):
        pass
    
    class ConnectorDefinitionVersion(Mapping):
        pass
    
    class Tags(object):
        pass
    
    class CreateConnectorDefinitionVersionRequest(Mapping):
        pass
    
    class CreateConnectorDefinitionVersionResponse(Mapping):
        pass
    
    class Connector(Mapping):
        pass
    
    class CreateCoreDefinitionRequest(Mapping):
        pass
    
    class CreateCoreDefinitionResponse(Mapping):
        pass
    
    class CoreDefinitionVersion(Mapping):
        pass
    
    class CreateCoreDefinitionVersionRequest(Mapping):
        pass
    
    class CreateCoreDefinitionVersionResponse(Mapping):
        pass
    
    class Core(Mapping):
        pass
    
    class CreateDeploymentRequest(Mapping):
        pass
    
    class CreateDeploymentResponse(Mapping):
        pass
    
    class CreateDeviceDefinitionRequest(Mapping):
        pass
    
    class CreateDeviceDefinitionResponse(Mapping):
        pass
    
    class DeviceDefinitionVersion(Mapping):
        pass
    
    class CreateDeviceDefinitionVersionRequest(Mapping):
        pass
    
    class CreateDeviceDefinitionVersionResponse(Mapping):
        pass
    
    class Device(Mapping):
        pass
    
    class CreateFunctionDefinitionRequest(Mapping):
        pass
    
    class CreateFunctionDefinitionResponse(Mapping):
        pass
    
    class FunctionDefinitionVersion(Mapping):
        pass
    
    class CreateFunctionDefinitionVersionRequest(Mapping):
        pass
    
    class CreateFunctionDefinitionVersionResponse(Mapping):
        pass
    
    class FunctionDefaultConfig(Mapping):
        pass
    
    class Function(Mapping):
        pass
    
    class CreateGroupRequest(Mapping):
        pass
    
    class CreateGroupResponse(Mapping):
        pass
    
    class GroupVersion(Mapping):
        pass
    
    class CreateGroupCertificateAuthorityRequest(Mapping):
        pass
    
    class CreateGroupCertificateAuthorityResponse(Mapping):
        pass
    
    class CreateGroupVersionRequest(Mapping):
        pass
    
    class CreateGroupVersionResponse(Mapping):
        pass
    
    class CreateLoggerDefinitionRequest(Mapping):
        pass
    
    class CreateLoggerDefinitionResponse(Mapping):
        pass
    
    class LoggerDefinitionVersion(Mapping):
        pass
    
    class CreateLoggerDefinitionVersionRequest(Mapping):
        pass
    
    class CreateLoggerDefinitionVersionResponse(Mapping):
        pass
    
    class Logger(Mapping):
        pass
    
    class CreateResourceDefinitionRequest(Mapping):
        pass
    
    class CreateResourceDefinitionResponse(Mapping):
        pass
    
    class ResourceDefinitionVersion(Mapping):
        pass
    
    class CreateResourceDefinitionVersionRequest(Mapping):
        pass
    
    class CreateResourceDefinitionVersionResponse(Mapping):
        pass
    
    class Resource(Mapping):
        pass
    
    class CreateSoftwareUpdateJobRequest(Mapping):
        pass
    
    class CreateSoftwareUpdateJobResponse(Mapping):
        pass
    
    class __string(object):
        pass
    
    class CreateSubscriptionDefinitionRequest(Mapping):
        pass
    
    class CreateSubscriptionDefinitionResponse(Mapping):
        pass
    
    class SubscriptionDefinitionVersion(Mapping):
        pass
    
    class CreateSubscriptionDefinitionVersionRequest(Mapping):
        pass
    
    class CreateSubscriptionDefinitionVersionResponse(Mapping):
        pass
    
    class Subscription(Mapping):
        pass
    
    class DeleteConnectorDefinitionRequest(Mapping):
        pass
    
    class DeleteConnectorDefinitionResponse(Mapping):
        pass
    
    class DeleteCoreDefinitionRequest(Mapping):
        pass
    
    class DeleteCoreDefinitionResponse(Mapping):
        pass
    
    class DeleteDeviceDefinitionRequest(Mapping):
        pass
    
    class DeleteDeviceDefinitionResponse(Mapping):
        pass
    
    class DeleteFunctionDefinitionRequest(Mapping):
        pass
    
    class DeleteFunctionDefinitionResponse(Mapping):
        pass
    
    class DeleteGroupRequest(Mapping):
        pass
    
    class DeleteGroupResponse(Mapping):
        pass
    
    class DeleteLoggerDefinitionRequest(Mapping):
        pass
    
    class DeleteLoggerDefinitionResponse(Mapping):
        pass
    
    class DeleteResourceDefinitionRequest(Mapping):
        pass
    
    class DeleteResourceDefinitionResponse(Mapping):
        pass
    
    class DeleteSubscriptionDefinitionRequest(Mapping):
        pass
    
    class DeleteSubscriptionDefinitionResponse(Mapping):
        pass
    
    class DisassociateRoleFromGroupRequest(Mapping):
        pass
    
    class DisassociateRoleFromGroupResponse(Mapping):
        pass
    
    class DisassociateServiceRoleFromAccountRequest(Mapping):
        pass
    
    class DisassociateServiceRoleFromAccountResponse(Mapping):
        pass
    
    class GetAssociatedRoleRequest(Mapping):
        pass
    
    class GetAssociatedRoleResponse(Mapping):
        pass
    
    class GetBulkDeploymentStatusRequest(Mapping):
        pass
    
    class GetBulkDeploymentStatusResponse(Mapping):
        pass
    
    class GetConnectivityInfoRequest(Mapping):
        pass
    
    class GetConnectivityInfoResponse(Mapping):
        pass
    
    class GetConnectorDefinitionRequest(Mapping):
        pass
    
    class GetConnectorDefinitionResponse(Mapping):
        pass
    
    class GetConnectorDefinitionVersionRequest(Mapping):
        pass
    
    class GetConnectorDefinitionVersionResponse(Mapping):
        pass
    
    class GetCoreDefinitionRequest(Mapping):
        pass
    
    class GetCoreDefinitionResponse(Mapping):
        pass
    
    class GetCoreDefinitionVersionRequest(Mapping):
        pass
    
    class GetCoreDefinitionVersionResponse(Mapping):
        pass
    
    class GetDeploymentStatusRequest(Mapping):
        pass
    
    class GetDeploymentStatusResponse(Mapping):
        pass
    
    class GetDeviceDefinitionRequest(Mapping):
        pass
    
    class GetDeviceDefinitionResponse(Mapping):
        pass
    
    class GetDeviceDefinitionVersionRequest(Mapping):
        pass
    
    class GetDeviceDefinitionVersionResponse(Mapping):
        pass
    
    class GetFunctionDefinitionRequest(Mapping):
        pass
    
    class GetFunctionDefinitionResponse(Mapping):
        pass
    
    class GetFunctionDefinitionVersionRequest(Mapping):
        pass
    
    class GetFunctionDefinitionVersionResponse(Mapping):
        pass
    
    class GetGroupRequest(Mapping):
        pass
    
    class GetGroupResponse(Mapping):
        pass
    
    class GetGroupCertificateAuthorityRequest(Mapping):
        pass
    
    class GetGroupCertificateAuthorityResponse(Mapping):
        pass
    
    class GetGroupCertificateConfigurationRequest(Mapping):
        pass
    
    class GetGroupCertificateConfigurationResponse(Mapping):
        pass
    
    class GetGroupVersionRequest(Mapping):
        pass
    
    class GetGroupVersionResponse(Mapping):
        pass
    
    class GetLoggerDefinitionRequest(Mapping):
        pass
    
    class GetLoggerDefinitionResponse(Mapping):
        pass
    
    class GetLoggerDefinitionVersionRequest(Mapping):
        pass
    
    class GetLoggerDefinitionVersionResponse(Mapping):
        pass
    
    class GetResourceDefinitionRequest(Mapping):
        pass
    
    class GetResourceDefinitionResponse(Mapping):
        pass
    
    class GetResourceDefinitionVersionRequest(Mapping):
        pass
    
    class GetResourceDefinitionVersionResponse(Mapping):
        pass
    
    class GetServiceRoleForAccountRequest(Mapping):
        pass
    
    class GetServiceRoleForAccountResponse(Mapping):
        pass
    
    class GetSubscriptionDefinitionRequest(Mapping):
        pass
    
    class GetSubscriptionDefinitionResponse(Mapping):
        pass
    
    class GetSubscriptionDefinitionVersionRequest(Mapping):
        pass
    
    class GetSubscriptionDefinitionVersionResponse(Mapping):
        pass
    
    class GetThingRuntimeConfigurationRequest(Mapping):
        pass
    
    class GetThingRuntimeConfigurationResponse(Mapping):
        pass
    
    class ListBulkDeploymentDetailedReportsRequest(Mapping):
        pass
    
    class ListBulkDeploymentDetailedReportsResponse(Mapping):
        pass
    
    class ListBulkDeploymentsRequest(Mapping):
        pass
    
    class ListBulkDeploymentsResponse(Mapping):
        pass
    
    class ListConnectorDefinitionVersionsRequest(Mapping):
        pass
    
    class ListConnectorDefinitionVersionsResponse(Mapping):
        pass
    
    class ListConnectorDefinitionsRequest(Mapping):
        pass
    
    class ListConnectorDefinitionsResponse(Mapping):
        pass
    
    class ListCoreDefinitionVersionsRequest(Mapping):
        pass
    
    class ListCoreDefinitionVersionsResponse(Mapping):
        pass
    
    class ListCoreDefinitionsRequest(Mapping):
        pass
    
    class ListCoreDefinitionsResponse(Mapping):
        pass
    
    class ListDeploymentsRequest(Mapping):
        pass
    
    class ListDeploymentsResponse(Mapping):
        pass
    
    class ListDeviceDefinitionVersionsRequest(Mapping):
        pass
    
    class ListDeviceDefinitionVersionsResponse(Mapping):
        pass
    
    class ListDeviceDefinitionsRequest(Mapping):
        pass
    
    class ListDeviceDefinitionsResponse(Mapping):
        pass
    
    class ListFunctionDefinitionVersionsRequest(Mapping):
        pass
    
    class ListFunctionDefinitionVersionsResponse(Mapping):
        pass
    
    class ListFunctionDefinitionsRequest(Mapping):
        pass
    
    class ListFunctionDefinitionsResponse(Mapping):
        pass
    
    class ListGroupCertificateAuthoritiesRequest(Mapping):
        pass
    
    class ListGroupCertificateAuthoritiesResponse(Mapping):
        pass
    
    class ListGroupVersionsRequest(Mapping):
        pass
    
    class ListGroupVersionsResponse(Mapping):
        pass
    
    class ListGroupsRequest(Mapping):
        pass
    
    class ListGroupsResponse(Mapping):
        pass
    
    class ListLoggerDefinitionVersionsRequest(Mapping):
        pass
    
    class ListLoggerDefinitionVersionsResponse(Mapping):
        pass
    
    class ListLoggerDefinitionsRequest(Mapping):
        pass
    
    class ListLoggerDefinitionsResponse(Mapping):
        pass
    
    class ListResourceDefinitionVersionsRequest(Mapping):
        pass
    
    class ListResourceDefinitionVersionsResponse(Mapping):
        pass
    
    class ListResourceDefinitionsRequest(Mapping):
        pass
    
    class ListResourceDefinitionsResponse(Mapping):
        pass
    
    class ListSubscriptionDefinitionVersionsRequest(Mapping):
        pass
    
    class ListSubscriptionDefinitionVersionsResponse(Mapping):
        pass
    
    class ListSubscriptionDefinitionsRequest(Mapping):
        pass
    
    class ListSubscriptionDefinitionsResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class ResetDeploymentsRequest(Mapping):
        pass
    
    class ResetDeploymentsResponse(Mapping):
        pass
    
    class __boolean(object):
        pass
    
    class StartBulkDeploymentRequest(Mapping):
        pass
    
    class StartBulkDeploymentResponse(Mapping):
        pass
    
    class StopBulkDeploymentRequest(Mapping):
        pass
    
    class StopBulkDeploymentResponse(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UpdateConnectivityInfoRequest(Mapping):
        pass
    
    class UpdateConnectivityInfoResponse(Mapping):
        pass
    
    class ConnectivityInfo(Mapping):
        pass
    
    class UpdateConnectorDefinitionRequest(Mapping):
        pass
    
    class UpdateConnectorDefinitionResponse(Mapping):
        pass
    
    class UpdateCoreDefinitionRequest(Mapping):
        pass
    
    class UpdateCoreDefinitionResponse(Mapping):
        pass
    
    class UpdateDeviceDefinitionRequest(Mapping):
        pass
    
    class UpdateDeviceDefinitionResponse(Mapping):
        pass
    
    class UpdateFunctionDefinitionRequest(Mapping):
        pass
    
    class UpdateFunctionDefinitionResponse(Mapping):
        pass
    
    class UpdateGroupRequest(Mapping):
        pass
    
    class UpdateGroupResponse(Mapping):
        pass
    
    class UpdateGroupCertificateConfigurationRequest(Mapping):
        pass
    
    class UpdateGroupCertificateConfigurationResponse(Mapping):
        pass
    
    class UpdateLoggerDefinitionRequest(Mapping):
        pass
    
    class UpdateLoggerDefinitionResponse(Mapping):
        pass
    
    class UpdateResourceDefinitionRequest(Mapping):
        pass
    
    class UpdateResourceDefinitionResponse(Mapping):
        pass
    
    class UpdateSubscriptionDefinitionRequest(Mapping):
        pass
    
    class UpdateSubscriptionDefinitionResponse(Mapping):
        pass
    
    class UpdateThingRuntimeConfigurationRequest(Mapping):
        pass
    
    class UpdateThingRuntimeConfigurationResponse(Mapping):
        pass
    
    class TelemetryConfigurationUpdate(Mapping):
        pass
    
    def associate_role_to_group(self, RoleArn: str, GroupId: str) -> AssociateRoleToGroupResponse:
        r"""Associates a role with a group. Your Greengrass core will use the role to access AWS cloud services. The role's permissions should allow Greengrass core Lambda functions to perform actions against the cloud.

        :param self:
        :param RoleArn:  The ARN of the role you wish to associate with this group. The existence of the role is not validated.<br/>GroupId:  The ID of the Greengrass group.<br/>
        :return: AssociatedAt:  The time, in milliseconds since the epoch, when the role ARN was associated with the group.<br/>        """
        pass

    def associate_service_role_to_account(self, RoleArn: str) -> AssociateServiceRoleToAccountResponse:
        r"""Associates a role with your account. AWS IoT Greengrass will use the role to access your Lambda functions and AWS IoT resources. This is necessary for deployments to succeed. The role must have at least minimum permissions in the policy ''AWSGreengrassResourceAccessRolePolicy''.

        :param self:
        :param RoleArn:  The ARN of the service role you wish to associate with your account.<br/>
        :return: AssociatedAt:  The time when the service role was associated with the account.<br/>        """
        pass

    def create_connector_definition(self, AmznClientToken: str=None, InitialVersion: ConnectorDefinitionVersion=None, Name: str=None, tags: Tags=None) -> CreateConnectorDefinitionResponse:
        r"""Creates a connector definition. You may provide the initial version of the connector definition now or use ''CreateConnectorDefinitionVersion'' at a later time.

        :param self:
        :param tags:  Tag(s) to add to the new resource.<br/>Name:  The name of the connector definition.<br/>InitialVersion:  Information about the initial version of the connector definition.:<br/>AmznClientToken:  A client token used to correlate requests and responses.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Connectors</i> A list of references to connectors in this version, with their corresponding configuration settings.<br/>
        :return: Name:  The name of the definition.<br/>LatestVersionArn:  The ARN of the latest version associated with the definition.<br/>LatestVersion:  The ID of the latest version associated with the definition.<br/>LastUpdatedTimestamp:  The time, in milliseconds since the epoch, when the definition was last updated.<br/>Id:  The ID of the definition.<br/>CreationTimestamp:  The time, in milliseconds since the epoch, when the definition was created.<br/>Arn:  The ARN of the definition.<br/>        """
        pass

    def create_connector_definition_version(self, ConnectorDefinitionId: str, AmznClientToken: str=None, Connectors: List[Connector]=None) -> CreateConnectorDefinitionVersionResponse:
        r"""Creates a version of a connector definition which has already been defined.

        :param self:
        :param Connectors:  A list of references to connectors in this version, with their corresponding configuration settings.<br/>ConnectorDefinitionId:  The ID of the connector definition.<br/>AmznClientToken:  A client token used to correlate requests and responses.<br/>
        :return: Version:  The ID of the version.<br/>Id:  The ID of the parent definition that the version is associated with.<br/>CreationTimestamp:  The time, in milliseconds since the epoch, when the version was created.<br/>Arn:  The ARN of the version.<br/>        """
        pass

    def create_core_definition(self, AmznClientToken: str=None, InitialVersion: CoreDefinitionVersion=None, Name: str=None, tags: Tags=None) -> CreateCoreDefinitionResponse:
        r"""Creates a core definition. You may provide the initial version of the core definition now or use ''CreateCoreDefinitionVersion'' at a later time. Greengrass groups must each contain exactly one Greengrass core.

        :param self:
        :param tags:  Tag(s) to add to the new resource.<br/>Name:  The name of the core definition.<br/>InitialVersion:  Information about the initial version of the core definition.:<br/>AmznClientToken:  A client token used to correlate requests and responses.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Cores</i> A list of cores in the core definition version.<br/>
        :return: Name:  The name of the definition.<br/>LatestVersionArn:  The ARN of the latest version associated with the definition.<br/>LatestVersion:  The ID of the latest version associated with the definition.<br/>LastUpdatedTimestamp:  The time, in milliseconds since the epoch, when the definition was last updated.<br/>Id:  The ID of the definition.<br/>CreationTimestamp:  The time, in milliseconds since the epoch, when the definition was created.<br/>Arn:  The ARN of the definition.<br/>        """
        pass

    def create_core_definition_version(self, CoreDefinitionId: str, AmznClientToken: str=None, Cores: List[Core]=None) -> CreateCoreDefinitionVersionResponse:
        r"""Creates a version of a core definition that has already been defined. Greengrass groups must each contain exactly one Greengrass core.

        :param self:
        :param Cores:  A list of cores in the core definition version.<br/>CoreDefinitionId:  The ID of the core definition.<br/>AmznClientToken:  A client token used to correlate requests and responses.<br/>
        :return: Version:  The ID of the version.<br/>Id:  The ID of the parent definition that the version is associated with.<br/>CreationTimestamp:  The time, in milliseconds since the epoch, when the version was created.<br/>Arn:  The ARN of the version.<br/>        """
        pass

    def create_deployment(self, GroupId: str, DeploymentType: str, AmznClientToken: str=None, DeploymentId: str=None, GroupVersionId: str=None) -> CreateDeploymentResponse:
        r"""Creates a deployment. ''CreateDeployment'' requests are idempotent with respect to the ''X-Amzn-Client-Token'' token and the request parameters.

        :param self:
        :param GroupVersionId:  The ID of the group version to be deployed.<br/>GroupId:  The ID of the Greengrass group.<br/>DeploymentType:  The type of deployment. When used for ''CreateDeployment'', only ''NewDeployment'' and ''Redeployment'' are valid.<br/>DeploymentId:  The ID of the deployment if you wish to redeploy a previous deployment.<br/>AmznClientToken:  A client token used to correlate requests and responses.<br/>
        :return: DeploymentId:  The ID of the deployment.<br/>DeploymentArn:  The ARN of the deployment.<br/>        """
        pass

    def create_device_definition(self, AmznClientToken: str=None, InitialVersion: DeviceDefinitionVersion=None, Name: str=None, tags: Tags=None) -> CreateDeviceDefinitionResponse:
        r"""Creates a device definition. You may provide the initial version of the device definition now or use ''CreateDeviceDefinitionVersion'' at a later time.

        :param self:
        :param tags:  Tag(s) to add to the new resource.<br/>Name:  The name of the device definition.<br/>InitialVersion:  Information about the initial version of the device definition.:<br/>AmznClientToken:  A client token used to correlate requests and responses.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Devices</i> A list of devices in the definition version.<br/>
        :return: Name:  The name of the definition.<br/>LatestVersionArn:  The ARN of the latest version associated with the definition.<br/>LatestVersion:  The ID of the latest version associated with the definition.<br/>LastUpdatedTimestamp:  The time, in milliseconds since the epoch, when the definition was last updated.<br/>Id:  The ID of the definition.<br/>CreationTimestamp:  The time, in milliseconds since the epoch, when the definition was created.<br/>Arn:  The ARN of the definition.<br/>        """
        pass

    def create_device_definition_version(self, DeviceDefinitionId: str, AmznClientToken: str=None, Devices: List[Device]=None) -> CreateDeviceDefinitionVersionResponse:
        r"""Creates a version of a device definition that has already been defined.

        :param self:
        :param Devices:  A list of devices in the definition version.<br/>DeviceDefinitionId:  The ID of the device definition.<br/>AmznClientToken:  A client token used to correlate requests and responses.<br/>
        :return: Version:  The ID of the version.<br/>Id:  The ID of the parent definition that the version is associated with.<br/>CreationTimestamp:  The time, in milliseconds since the epoch, when the version was created.<br/>Arn:  The ARN of the version.<br/>        """
        pass

    def create_function_definition(self, AmznClientToken: str=None, InitialVersion: FunctionDefinitionVersion=None, Name: str=None, tags: Tags=None) -> CreateFunctionDefinitionResponse:
        r"""Creates a Lambda function definition which contains a list of Lambda functions and their configurations to be used in a group. You can create an initial version of the definition by providing a list of Lambda functions and their configurations now, or use ''CreateFunctionDefinitionVersion'' later.

        :param self:
        :param tags:  Tag(s) to add to the new resource.<br/>Name:  The name of the function definition.<br/>InitialVersion:  Information about the initial version of the function definition.:<br/>AmznClientToken:  A client token used to correlate requests and responses.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Functions</i> A list of Lambda functions in this function definition version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultConfig</i> The default configuration that applies to all Lambda functions in this function definition version. Individual Lambda functions can override these settings.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DefaultConfig</b>: The default configuration that applies to all Lambda functions in this function definition version. Individual Lambda functions can override these settings.<br/>Configuration information that specifies how a Lambda function runs. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Execution</b>: Configuration information that specifies how a Lambda function runs. 
        :return: Name:  The name of the definition.<br/>LatestVersionArn:  The ARN of the latest version associated with the definition.<br/>LatestVersion:  The ID of the latest version associated with the definition.<br/>LastUpdatedTimestamp:  The time, in milliseconds since the epoch, when the definition was last updated.<br/>Id:  The ID of the definition.<br/>CreationTimestamp:  The time, in milliseconds since the epoch, when the definition was created.<br/>Arn:  The ARN of the definition.<br/>        """
        pass

    def create_function_definition_version(self, FunctionDefinitionId: str, AmznClientToken: str=None, DefaultConfig: FunctionDefaultConfig=None, Functions: List[Function]=None) -> CreateFunctionDefinitionVersionResponse:
        r"""Creates a version of a Lambda function definition that has already been defined.

        :param self:
        :param Functions:  A list of Lambda functions in this function definition version.<br/>FunctionDefinitionId:  The ID of the Lambda function definition.<br/>DefaultConfig:  The default configuration that applies to all Lambda functions in this function definition version. Individual Lambda functions can override these settings.:<br/>AmznClientToken:  A client token used to correlate requests and responses.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Execution</i> Configuration information that specifies how a Lambda function runs. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Execution</b>: Configuration information that specifies how a Lambda function runs. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IsolationMode</i> Specifies whether the Lambda function runs in a Greengrass container (default) or without containerization. Unless your scenario requires that you run without containerization, we recommend that you run in a Greengrass container. Omit this value to run the Lambda function with the default containerization for the group.<br/>Specifies the user and group whose permissions are used when running the Lambda function. You can specify one or both values to override the default values. We recommend that you avoid running as root unless absolutely necessary to minimize the risk of unintended changes or malicious attacks. To run as root, you must set ''IsolationMode'' to ''NoContainer'' and update config.json in ''greengrass-root/config'' to set ''allowFunctionsToRunAsRoot'' to ''yes''.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RunAs</b>: Specifies the user and group whose permissions are used when running the Lambda function. You can specify one or both values to override the default values. We recommend that you avoid running as root unless absolutely necessary to minimize the risk of unintended changes or malicious attacks. To run as root, you must set ''IsolationMode'' to ''NoContainer'' and update config.json in ''greengrass-root/config'' to set ''allowFunctionsToRunAsRoot'' to ''yes''.
        :return: Version:  The ID of the version.<br/>Id:  The ID of the parent definition that the version is associated with.<br/>CreationTimestamp:  The time, in milliseconds since the epoch, when the version was created.<br/>Arn:  The ARN of the version.<br/>        """
        pass

    def create_group(self, Name: str, AmznClientToken: str=None, InitialVersion: GroupVersion=None, tags: Tags=None) -> CreateGroupResponse:
        r"""Creates a group. You may provide the initial version of the group or use ''CreateGroupVersion'' at a later time. Tip: You can use the ''gg_group_setup'' package (https://github.com/awslabs/aws-greengrass-group-setup) as a library or command-line application to create and deploy Greengrass groups.

        :param self:
        :param tags:  Tag(s) to add to the new resource.<br/>Name:  The name of the group.<br/>InitialVersion:  Information about the initial version of the group.:<br/>AmznClientToken:  A client token used to correlate requests and responses.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubscriptionDefinitionVersionArn</i> The ARN of the subscription definition version for this group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceDefinitionVersionArn</i> The ARN of the resource definition version for this group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LoggerDefinitionVersionArn</i> The ARN of the logger definition version for this group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FunctionDefinitionVersionArn</i> The ARN of the function definition version for this group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeviceDefinitionVersionArn</i> The ARN of the device definition version for this group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CoreDefinitionVersionArn</i> The ARN of the core definition version for this group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConnectorDefinitionVersionArn</i> The ARN of the connector definition version for this group.<br/>
        :return: Name:  The name of the definition.<br/>LatestVersionArn:  The ARN of the latest version associated with the definition.<br/>LatestVersion:  The ID of the latest version associated with the definition.<br/>LastUpdatedTimestamp:  The time, in milliseconds since the epoch, when the definition was last updated.<br/>Id:  The ID of the definition.<br/>CreationTimestamp:  The time, in milliseconds since the epoch, when the definition was created.<br/>Arn:  The ARN of the definition.<br/>        """
        pass

    def create_group_certificate_authority(self, GroupId: str, AmznClientToken: str=None) -> CreateGroupCertificateAuthorityResponse:
        r"""Creates a CA for the group. If a CA already exists, it will rotate the existing CA.

        :param self:
        :param GroupId:  The ID of the Greengrass group.<br/>AmznClientToken:  A client token used to correlate requests and responses.<br/>
        :return: GroupCertificateAuthorityArn:  The ARN of the group certificate authority.<br/>        """
        pass

    def create_group_version(self, GroupId: str, AmznClientToken: str=None, ConnectorDefinitionVersionArn: str=None, CoreDefinitionVersionArn: str=None, DeviceDefinitionVersionArn: str=None, FunctionDefinitionVersionArn: str=None, LoggerDefinitionVersionArn: str=None, ResourceDefinitionVersionArn: str=None, SubscriptionDefinitionVersionArn: str=None) -> CreateGroupVersionResponse:
        r"""Creates a version of a group which has already been defined.

        :param self:
        :param SubscriptionDefinitionVersionArn:  The ARN of the subscription definition version for this group.<br/>ResourceDefinitionVersionArn:  The ARN of the resource definition version for this group.<br/>LoggerDefinitionVersionArn:  The ARN of the logger definition version for this group.<br/>GroupId:  The ID of the Greengrass group.<br/>FunctionDefinitionVersionArn:  The ARN of the function definition version for this group.<br/>DeviceDefinitionVersionArn:  The ARN of the device definition version for this group.<br/>CoreDefinitionVersionArn:  The ARN of the core definition version for this group.<br/>ConnectorDefinitionVersionArn:  The ARN of the connector definition version for this group.<br/>AmznClientToken:  A client token used to correlate requests and responses.<br/>
        :return: Version:  The ID of the version.<br/>Id:  The ID of the parent definition that the version is associated with.<br/>CreationTimestamp:  The time, in milliseconds since the epoch, when the version was created.<br/>Arn:  The ARN of the version.<br/>        """
        pass

    def create_logger_definition(self, AmznClientToken: str=None, InitialVersion: LoggerDefinitionVersion=None, Name: str=None, tags: Tags=None) -> CreateLoggerDefinitionResponse:
        r"""Creates a logger definition. You may provide the initial version of the logger definition now or use ''CreateLoggerDefinitionVersion'' at a later time.

        :param self:
        :param tags:  Tag(s) to add to the new resource.<br/>Name:  The name of the logger definition.<br/>InitialVersion:  Information about the initial version of the logger definition.:<br/>AmznClientToken:  A client token used to correlate requests and responses.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Loggers</i> A list of loggers.<br/>
        :return: Name:  The name of the definition.<br/>LatestVersionArn:  The ARN of the latest version associated with the definition.<br/>LatestVersion:  The ID of the latest version associated with the definition.<br/>LastUpdatedTimestamp:  The time, in milliseconds since the epoch, when the definition was last updated.<br/>Id:  The ID of the definition.<br/>CreationTimestamp:  The time, in milliseconds since the epoch, when the definition was created.<br/>Arn:  The ARN of the definition.<br/>        """
        pass

    def create_logger_definition_version(self, LoggerDefinitionId: str, AmznClientToken: str=None, Loggers: List[Logger]=None) -> CreateLoggerDefinitionVersionResponse:
        r"""Creates a version of a logger definition that has already been defined.

        :param self:
        :param Loggers:  A list of loggers.<br/>LoggerDefinitionId:  The ID of the logger definition.<br/>AmznClientToken:  A client token used to correlate requests and responses.<br/>
        :return: Version:  The ID of the version.<br/>Id:  The ID of the parent definition that the version is associated with.<br/>CreationTimestamp:  The time, in milliseconds since the epoch, when the version was created.<br/>Arn:  The ARN of the version.<br/>        """
        pass

    def create_resource_definition(self, AmznClientToken: str=None, InitialVersion: ResourceDefinitionVersion=None, Name: str=None, tags: Tags=None) -> CreateResourceDefinitionResponse:
        r"""Creates a resource definition which contains a list of resources to be used in a group. You can create an initial version of the definition by providing a list of resources now, or use ''CreateResourceDefinitionVersion'' later.

        :param self:
        :param tags:  Tag(s) to add to the new resource.<br/>Name:  The name of the resource definition.<br/>InitialVersion:  Information about the initial version of the resource definition.:<br/>AmznClientToken:  A client token used to correlate requests and responses.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Resources</i> A list of resources.<br/>
        :return: Name:  The name of the definition.<br/>LatestVersionArn:  The ARN of the latest version associated with the definition.<br/>LatestVersion:  The ID of the latest version associated with the definition.<br/>LastUpdatedTimestamp:  The time, in milliseconds since the epoch, when the definition was last updated.<br/>Id:  The ID of the definition.<br/>CreationTimestamp:  The time, in milliseconds since the epoch, when the definition was created.<br/>Arn:  The ARN of the definition.<br/>        """
        pass

    def create_resource_definition_version(self, ResourceDefinitionId: str, AmznClientToken: str=None, Resources: List[Resource]=None) -> CreateResourceDefinitionVersionResponse:
        r"""Creates a version of a resource definition that has already been defined.

        :param self:
        :param Resources:  A list of resources.<br/>ResourceDefinitionId:  The ID of the resource definition.<br/>AmznClientToken:  A client token used to correlate requests and responses.<br/>
        :return: Version:  The ID of the version.<br/>Id:  The ID of the parent definition that the version is associated with.<br/>CreationTimestamp:  The time, in milliseconds since the epoch, when the version was created.<br/>Arn:  The ARN of the version.<br/>        """
        pass

    def create_software_update_job(self, UpdateTargetsOperatingSystem: str, UpdateTargetsArchitecture: str, UpdateTargets: List[__string], SoftwareToUpdate: str, S3UrlSignerRole: str, AmznClientToken: str=None, UpdateAgentLogLevel: str=None) -> CreateSoftwareUpdateJobResponse:
        r"""Creates a software update for a core or group of cores (specified as an IoT thing group.) Use this to update the OTA Agent as well as the Greengrass core software. It makes use of the IoT Jobs feature which provides additional commands to manage a Greengrass core software update job.

        :param self:
        :param UpdateTargetsOperatingSystem:  The operating system of the cores which are the targets of an update.<br/>UpdateTargetsArchitecture:  The architecture of the cores which are the targets of an update.<br/>UpdateTargets:  The ARNs of the targets (IoT things or IoT thing groups) that this update will be applied to.<br/>UpdateAgentLogLevel:  The minimum level of log statements that should be logged by the OTA Agent during an update.<br/>SoftwareToUpdate:  The piece of software on the Greengrass core that will be updated.<br/>S3UrlSignerRole:  The IAM Role that Greengrass will use to create pre-signed URLs pointing towards the update artifact.<br/>AmznClientToken:  A client token used to correlate requests and responses.<br/>
        :return: PlatformSoftwareVersion:  The software version installed on the device or devices after the update.<br/>IotJobId:  The IoT Job Id corresponding to this update.<br/>IotJobArn:  The IoT Job ARN corresponding to this update.<br/>        """
        pass

    def create_subscription_definition(self, AmznClientToken: str=None, InitialVersion: SubscriptionDefinitionVersion=None, Name: str=None, tags: Tags=None) -> CreateSubscriptionDefinitionResponse:
        r"""Creates a subscription definition. You may provide the initial version of the subscription definition now or use ''CreateSubscriptionDefinitionVersion'' at a later time.

        :param self:
        :param tags:  Tag(s) to add to the new resource.<br/>Name:  The name of the subscription definition.<br/>InitialVersion:  Information about the initial version of the subscription definition.:<br/>AmznClientToken:  A client token used to correlate requests and responses.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Subscriptions</i> A list of subscriptions.<br/>
        :return: Name:  The name of the definition.<br/>LatestVersionArn:  The ARN of the latest version associated with the definition.<br/>LatestVersion:  The ID of the latest version associated with the definition.<br/>LastUpdatedTimestamp:  The time, in milliseconds since the epoch, when the definition was last updated.<br/>Id:  The ID of the definition.<br/>CreationTimestamp:  The time, in milliseconds since the epoch, when the definition was created.<br/>Arn:  The ARN of the definition.<br/>        """
        pass

    def create_subscription_definition_version(self, SubscriptionDefinitionId: str, AmznClientToken: str=None, Subscriptions: List[Subscription]=None) -> CreateSubscriptionDefinitionVersionResponse:
        r"""Creates a version of a subscription definition which has already been defined.

        :param self:
        :param Subscriptions:  A list of subscriptions.<br/>SubscriptionDefinitionId:  The ID of the subscription definition.<br/>AmznClientToken:  A client token used to correlate requests and responses.<br/>
        :return: Version:  The ID of the version.<br/>Id:  The ID of the parent definition that the version is associated with.<br/>CreationTimestamp:  The time, in milliseconds since the epoch, when the version was created.<br/>Arn:  The ARN of the version.<br/>        """
        pass

    def delete_connector_definition(self, ConnectorDefinitionId: str) -> DeleteConnectorDefinitionResponse:
        r"""Deletes a connector definition.

        :param self:
        :param ConnectorDefinitionId:  The ID of the connector definition.<br/>
        :return:         """
        pass

    def delete_core_definition(self, CoreDefinitionId: str) -> DeleteCoreDefinitionResponse:
        r"""Deletes a core definition.

        :param self:
        :param CoreDefinitionId:  The ID of the core definition.<br/>
        :return:         """
        pass

    def delete_device_definition(self, DeviceDefinitionId: str) -> DeleteDeviceDefinitionResponse:
        r"""Deletes a device definition.

        :param self:
        :param DeviceDefinitionId:  The ID of the device definition.<br/>
        :return:         """
        pass

    def delete_function_definition(self, FunctionDefinitionId: str) -> DeleteFunctionDefinitionResponse:
        r"""Deletes a Lambda function definition.

        :param self:
        :param FunctionDefinitionId:  The ID of the Lambda function definition.<br/>
        :return:         """
        pass

    def delete_group(self, GroupId: str) -> DeleteGroupResponse:
        r"""Deletes a group.

        :param self:
        :param GroupId:  The ID of the Greengrass group.<br/>
        :return:         """
        pass

    def delete_logger_definition(self, LoggerDefinitionId: str) -> DeleteLoggerDefinitionResponse:
        r"""Deletes a logger definition.

        :param self:
        :param LoggerDefinitionId:  The ID of the logger definition.<br/>
        :return:         """
        pass

    def delete_resource_definition(self, ResourceDefinitionId: str) -> DeleteResourceDefinitionResponse:
        r"""Deletes a resource definition.

        :param self:
        :param ResourceDefinitionId:  The ID of the resource definition.<br/>
        :return:         """
        pass

    def delete_subscription_definition(self, SubscriptionDefinitionId: str) -> DeleteSubscriptionDefinitionResponse:
        r"""Deletes a subscription definition.

        :param self:
        :param SubscriptionDefinitionId:  The ID of the subscription definition.<br/>
        :return:         """
        pass

    def disassociate_role_from_group(self, GroupId: str) -> DisassociateRoleFromGroupResponse:
        r"""Disassociates the role from a group.

        :param self:
        :param GroupId:  The ID of the Greengrass group.<br/>
        :return: DisassociatedAt:  The time, in milliseconds since the epoch, when the role was disassociated from the group.<br/>        """
        pass

    def disassociate_service_role_from_account(self) -> DisassociateServiceRoleFromAccountResponse:
        r"""Disassociates the service role from your account. Without a service role, deployments will not work.

        :param self:
        :param 
        :return: DisassociatedAt:  The time when the service role was disassociated from the account.<br/>        """
        pass

    def get_associated_role(self, GroupId: str) -> GetAssociatedRoleResponse:
        r"""Retrieves the role associated with a particular group.

        :param self:
        :param GroupId:  The ID of the Greengrass group.<br/>
        :return: RoleArn:  The ARN of the role that is associated with the group.<br/>AssociatedAt:  The time when the role was associated with the group.<br/>        """
        pass

    def get_bulk_deployment_status(self, BulkDeploymentId: str) -> GetBulkDeploymentStatusResponse:
        r"""Returns the status of a bulk deployment.

        :param self:
        :param BulkDeploymentId:  The ID of the bulk deployment.<br/>
        :return: tags:  Tag(s) attached to the resource arn.<br/>ErrorMessage:  Error message<br/>ErrorDetails:  Error details<br/>CreatedAt:  The time, in ISO format, when the deployment was created.<br/>BulkDeploymentStatus:  The status of the bulk deployment.<br/>BulkDeploymentMetrics:  Relevant metrics on input records processed during bulk deployment.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RetryAttempts</i> The total number of deployment attempts that returned a retryable error. For example, a retry is triggered if the attempt to deploy a group returns a throttling error. ''StartBulkDeployment'' retries a group deployment up to five times.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecordsProcessed</i> The total number of group records from the input file that have been processed so far, or attempted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InvalidInputRecords</i> The total number of records that returned a non-retryable error. For example, this can occur if a group record from the input file uses an invalid format or specifies a nonexistent group version, or if the execution role doesn't grant permission to deploy a group or group version.<br/>        """
        pass

    def get_connectivity_info(self, ThingName: str) -> GetConnectivityInfoResponse:
        r"""Retrieves the connectivity information for a core.

        :param self:
        :param ThingName:  The thing name.<br/>
        :return: Message:  A message about the connectivity info request.<br/>ConnectivityInfo:  Connectivity info list.<br/>        """
        pass

    def get_connector_definition(self, ConnectorDefinitionId: str) -> GetConnectorDefinitionResponse:
        r"""Retrieves information about a connector definition.

        :param self:
        :param ConnectorDefinitionId:  The ID of the connector definition.<br/>
        :return: tags:  Tag(s) attached to the resource arn.<br/>Name:  The name of the definition.<br/>LatestVersionArn:  The ARN of the latest version associated with the definition.<br/>LatestVersion:  The ID of the latest version associated with the definition.<br/>LastUpdatedTimestamp:  The time, in milliseconds since the epoch, when the definition was last updated.<br/>Id:  The ID of the definition.<br/>CreationTimestamp:  The time, in milliseconds since the epoch, when the definition was created.<br/>Arn:  The ARN of the definition.<br/>        """
        pass

    def get_connector_definition_version(self, ConnectorDefinitionVersionId: str, ConnectorDefinitionId: str, NextToken: str=None) -> GetConnectorDefinitionVersionResponse:
        r"""Retrieves information about a connector definition version, including the connectors that the version contains. Connectors are prebuilt modules that interact with local infrastructure, device protocols, AWS, and other cloud services.

        :param self:
        :param NextToken:  The token for the next set of results, or ''null'' if there are no additional results.<br/>ConnectorDefinitionVersionId:  The ID of the connector definition version. This value maps to the ''Version'' property of the corresponding ''VersionInformation'' object, which is returned by ''ListConnectorDefinitionVersions'' requests. If the version is the last one that was associated with a connector definition, the value also maps to the ''LatestVersion'' property of the corresponding ''DefinitionInformation'' object.<br/>ConnectorDefinitionId:  The ID of the connector definition.<br/>
        :return: Version:  The version of the connector definition version.<br/>NextToken:  The token for the next set of results, or ''null'' if there are no additional results.<br/>Id:  The ID of the connector definition version.<br/>Definition:  Information about the connector definition version.:<br/>CreationTimestamp:  The time, in milliseconds since the epoch, when the connector definition version was created.<br/>Arn:  The ARN of the connector definition version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Connectors</i> A list of references to connectors in this version, with their corresponding configuration settings.<br/>        """
        pass

    def get_core_definition(self, CoreDefinitionId: str) -> GetCoreDefinitionResponse:
        r"""Retrieves information about a core definition version.

        :param self:
        :param CoreDefinitionId:  The ID of the core definition.<br/>
        :return: tags:  Tag(s) attached to the resource arn.<br/>Name:  The name of the definition.<br/>LatestVersionArn:  The ARN of the latest version associated with the definition.<br/>LatestVersion:  The ID of the latest version associated with the definition.<br/>LastUpdatedTimestamp:  The time, in milliseconds since the epoch, when the definition was last updated.<br/>Id:  The ID of the definition.<br/>CreationTimestamp:  The time, in milliseconds since the epoch, when the definition was created.<br/>Arn:  The ARN of the definition.<br/>        """
        pass

    def get_core_definition_version(self, CoreDefinitionVersionId: str, CoreDefinitionId: str) -> GetCoreDefinitionVersionResponse:
        r"""Retrieves information about a core definition version.

        :param self:
        :param CoreDefinitionVersionId:  The ID of the core definition version. This value maps to the ''Version'' property of the corresponding ''VersionInformation'' object, which is returned by ''ListCoreDefinitionVersions'' requests. If the version is the last one that was associated with a core definition, the value also maps to the ''LatestVersion'' property of the corresponding ''DefinitionInformation'' object.<br/>CoreDefinitionId:  The ID of the core definition.<br/>
        :return: Version:  The version of the core definition version.<br/>NextToken:  The token for the next set of results, or ''null'' if there are no additional results.<br/>Id:  The ID of the core definition version.<br/>Definition:  Information about the core definition version.:<br/>CreationTimestamp:  The time, in milliseconds since the epoch, when the core definition version was created.<br/>Arn:  The ARN of the core definition version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Cores</i> A list of cores in the core definition version.<br/>        """
        pass

    def get_deployment_status(self, GroupId: str, DeploymentId: str) -> GetDeploymentStatusResponse:
        r"""Returns the status of a deployment.

        :param self:
        :param GroupId:  The ID of the Greengrass group.<br/>DeploymentId:  The ID of the deployment.<br/>
        :return: UpdatedAt:  The time, in milliseconds since the epoch, when the deployment status was updated.<br/>ErrorMessage:  Error message<br/>ErrorDetails:  Error details<br/>DeploymentType:  The type of the deployment.<br/>DeploymentStatus:  The status of the deployment: ''InProgress'', ''Building'', ''Success'', or ''Failure''.<br/>        """
        pass

    def get_device_definition(self, DeviceDefinitionId: str) -> GetDeviceDefinitionResponse:
        r"""Retrieves information about a device definition.

        :param self:
        :param DeviceDefinitionId:  The ID of the device definition.<br/>
        :return: tags:  Tag(s) attached to the resource arn.<br/>Name:  The name of the definition.<br/>LatestVersionArn:  The ARN of the latest version associated with the definition.<br/>LatestVersion:  The ID of the latest version associated with the definition.<br/>LastUpdatedTimestamp:  The time, in milliseconds since the epoch, when the definition was last updated.<br/>Id:  The ID of the definition.<br/>CreationTimestamp:  The time, in milliseconds since the epoch, when the definition was created.<br/>Arn:  The ARN of the definition.<br/>        """
        pass

    def get_device_definition_version(self, DeviceDefinitionVersionId: str, DeviceDefinitionId: str, NextToken: str=None) -> GetDeviceDefinitionVersionResponse:
        r"""Retrieves information about a device definition version.

        :param self:
        :param NextToken:  The token for the next set of results, or ''null'' if there are no additional results.<br/>DeviceDefinitionVersionId:  The ID of the device definition version. This value maps to the ''Version'' property of the corresponding ''VersionInformation'' object, which is returned by ''ListDeviceDefinitionVersions'' requests. If the version is the last one that was associated with a device definition, the value also maps to the ''LatestVersion'' property of the corresponding ''DefinitionInformation'' object.<br/>DeviceDefinitionId:  The ID of the device definition.<br/>
        :return: Version:  The version of the device definition version.<br/>NextToken:  The token for the next set of results, or ''null'' if there are no additional results.<br/>Id:  The ID of the device definition version.<br/>Definition:  Information about the device definition version.:<br/>CreationTimestamp:  The time, in milliseconds since the epoch, when the device definition version was created.<br/>Arn:  The ARN of the device definition version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Devices</i> A list of devices in the definition version.<br/>        """
        pass

    def get_function_definition(self, FunctionDefinitionId: str) -> GetFunctionDefinitionResponse:
        r"""Retrieves information about a Lambda function definition, including its creation time and latest version.

        :param self:
        :param FunctionDefinitionId:  The ID of the Lambda function definition.<br/>
        :return: tags:  Tag(s) attached to the resource arn.<br/>Name:  The name of the definition.<br/>LatestVersionArn:  The ARN of the latest version associated with the definition.<br/>LatestVersion:  The ID of the latest version associated with the definition.<br/>LastUpdatedTimestamp:  The time, in milliseconds since the epoch, when the definition was last updated.<br/>Id:  The ID of the definition.<br/>CreationTimestamp:  The time, in milliseconds since the epoch, when the definition was created.<br/>Arn:  The ARN of the definition.<br/>        """
        pass

    def get_function_definition_version(self, FunctionDefinitionVersionId: str, FunctionDefinitionId: str, NextToken: str=None) -> GetFunctionDefinitionVersionResponse:
        r"""Retrieves information about a Lambda function definition version, including which Lambda functions are included in the version and their configurations.

        :param self:
        :param NextToken:  The token for the next set of results, or ''null'' if there are no additional results.<br/>FunctionDefinitionVersionId:  The ID of the function definition version. This value maps to the ''Version'' property of the corresponding ''VersionInformation'' object, which is returned by ''ListFunctionDefinitionVersions'' requests. If the version is the last one that was associated with a function definition, the value also maps to the ''LatestVersion'' property of the corresponding ''DefinitionInformation'' object.<br/>FunctionDefinitionId:  The ID of the Lambda function definition.<br/>
        :return: Version:  The version of the function definition version.<br/>NextToken:  The token for the next set of results, or ''null'' if there are no additional results.<br/>Id:  The ID of the function definition version.<br/>Definition:  Information on the definition.:<br/>CreationTimestamp:  The time, in milliseconds since the epoch, when the function definition version was created.<br/>Arn:  The ARN of the function definition version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Functions</i> A list of Lambda functions in this function definition version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultConfig</i> The default configuration that applies to all Lambda functions in this function definition version. Individual Lambda functions can override these settings.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DefaultConfig</b>: The default configuration that applies to all Lambda functions in this function definition version. Individual Lambda functions can override these settings.<br/>Configuration information that specifies how a Lambda function runs. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Execution</b>: Configuration information that specifies how a Lambda function runs.         """
        pass

    def get_group(self, GroupId: str) -> GetGroupResponse:
        r"""Retrieves information about a group.

        :param self:
        :param GroupId:  The ID of the Greengrass group.<br/>
        :return: tags:  Tag(s) attached to the resource arn.<br/>Name:  The name of the definition.<br/>LatestVersionArn:  The ARN of the latest version associated with the definition.<br/>LatestVersion:  The ID of the latest version associated with the definition.<br/>LastUpdatedTimestamp:  The time, in milliseconds since the epoch, when the definition was last updated.<br/>Id:  The ID of the definition.<br/>CreationTimestamp:  The time, in milliseconds since the epoch, when the definition was created.<br/>Arn:  The ARN of the definition.<br/>        """
        pass

    def get_group_certificate_authority(self, GroupId: str, CertificateAuthorityId: str) -> GetGroupCertificateAuthorityResponse:
        r"""Retreives the CA associated with a group. Returns the public key of the CA.

        :param self:
        :param GroupId:  The ID of the Greengrass group.<br/>CertificateAuthorityId:  The ID of the certificate authority.<br/>
        :return: PemEncodedCertificate:  The PEM encoded certificate for the group.<br/>GroupCertificateAuthorityId:  The ID of the certificate authority for the group.<br/>GroupCertificateAuthorityArn:  The ARN of the certificate authority for the group.<br/>        """
        pass

    def get_group_certificate_configuration(self, GroupId: str) -> GetGroupCertificateConfigurationResponse:
        r"""Retrieves the current configuration for the CA used by the group.

        :param self:
        :param GroupId:  The ID of the Greengrass group.<br/>
        :return: GroupId:  The ID of the group certificate configuration.<br/>CertificateExpiryInMilliseconds:  The amount of time remaining before the certificate expires, in milliseconds.<br/>CertificateAuthorityExpiryInMilliseconds:  The amount of time remaining before the certificate authority expires, in milliseconds.<br/>        """
        pass

    def get_group_version(self, GroupVersionId: str, GroupId: str) -> GetGroupVersionResponse:
        r"""Retrieves information about a group version.

        :param self:
        :param GroupVersionId:  The ID of the group version. This value maps to the ''Version'' property of the corresponding ''VersionInformation'' object, which is returned by ''ListGroupVersions'' requests. If the version is the last one that was associated with a group, the value also maps to the ''LatestVersion'' property of the corresponding ''GroupInformation'' object.<br/>GroupId:  The ID of the Greengrass group.<br/>
        :return: Version:  The ID of the group version.<br/>Id:  The ID of the group that the version is associated with.<br/>Definition:  Information about the group version definition.:<br/>CreationTimestamp:  The time, in milliseconds since the epoch, when the group version was created.<br/>Arn:  The ARN of the group version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubscriptionDefinitionVersionArn</i> The ARN of the subscription definition version for this group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceDefinitionVersionArn</i> The ARN of the resource definition version for this group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LoggerDefinitionVersionArn</i> The ARN of the logger definition version for this group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FunctionDefinitionVersionArn</i> The ARN of the function definition version for this group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeviceDefinitionVersionArn</i> The ARN of the device definition version for this group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CoreDefinitionVersionArn</i> The ARN of the core definition version for this group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConnectorDefinitionVersionArn</i> The ARN of the connector definition version for this group.<br/>        """
        pass

    def get_logger_definition(self, LoggerDefinitionId: str) -> GetLoggerDefinitionResponse:
        r"""Retrieves information about a logger definition.

        :param self:
        :param LoggerDefinitionId:  The ID of the logger definition.<br/>
        :return: tags:  Tag(s) attached to the resource arn.<br/>Name:  The name of the definition.<br/>LatestVersionArn:  The ARN of the latest version associated with the definition.<br/>LatestVersion:  The ID of the latest version associated with the definition.<br/>LastUpdatedTimestamp:  The time, in milliseconds since the epoch, when the definition was last updated.<br/>Id:  The ID of the definition.<br/>CreationTimestamp:  The time, in milliseconds since the epoch, when the definition was created.<br/>Arn:  The ARN of the definition.<br/>        """
        pass

    def get_logger_definition_version(self, LoggerDefinitionVersionId: str, LoggerDefinitionId: str, NextToken: str=None) -> GetLoggerDefinitionVersionResponse:
        r"""Retrieves information about a logger definition version.

        :param self:
        :param NextToken:  The token for the next set of results, or ''null'' if there are no additional results.<br/>LoggerDefinitionVersionId:  The ID of the logger definition version. This value maps to the ''Version'' property of the corresponding ''VersionInformation'' object, which is returned by ''ListLoggerDefinitionVersions'' requests. If the version is the last one that was associated with a logger definition, the value also maps to the ''LatestVersion'' property of the corresponding ''DefinitionInformation'' object.<br/>LoggerDefinitionId:  The ID of the logger definition.<br/>
        :return: Version:  The version of the logger definition version.<br/>Id:  The ID of the logger definition version.<br/>Definition:  Information about the logger definition version.:<br/>CreationTimestamp:  The time, in milliseconds since the epoch, when the logger definition version was created.<br/>Arn:  The ARN of the logger definition version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Loggers</i> A list of loggers.<br/>        """
        pass

    def get_resource_definition(self, ResourceDefinitionId: str) -> GetResourceDefinitionResponse:
        r"""Retrieves information about a resource definition, including its creation time and latest version.

        :param self:
        :param ResourceDefinitionId:  The ID of the resource definition.<br/>
        :return: tags:  Tag(s) attached to the resource arn.<br/>Name:  The name of the definition.<br/>LatestVersionArn:  The ARN of the latest version associated with the definition.<br/>LatestVersion:  The ID of the latest version associated with the definition.<br/>LastUpdatedTimestamp:  The time, in milliseconds since the epoch, when the definition was last updated.<br/>Id:  The ID of the definition.<br/>CreationTimestamp:  The time, in milliseconds since the epoch, when the definition was created.<br/>Arn:  The ARN of the definition.<br/>        """
        pass

    def get_resource_definition_version(self, ResourceDefinitionVersionId: str, ResourceDefinitionId: str) -> GetResourceDefinitionVersionResponse:
        r"""Retrieves information about a resource definition version, including which resources are included in the version.

        :param self:
        :param ResourceDefinitionVersionId:  The ID of the resource definition version. This value maps to the ''Version'' property of the corresponding ''VersionInformation'' object, which is returned by ''ListResourceDefinitionVersions'' requests. If the version is the last one that was associated with a resource definition, the value also maps to the ''LatestVersion'' property of the corresponding ''DefinitionInformation'' object.<br/>ResourceDefinitionId:  The ID of the resource definition.<br/>
        :return: Version:  The version of the resource definition version.<br/>Id:  The ID of the resource definition version.<br/>Definition:  Information about the definition.:<br/>CreationTimestamp:  The time, in milliseconds since the epoch, when the resource definition version was created.<br/>Arn:  Arn of the resource definition version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Resources</i> A list of resources.<br/>        """
        pass

    def get_service_role_for_account(self) -> GetServiceRoleForAccountResponse:
        r"""Retrieves the service role that is attached to your account.

        :param self:
        :param 
        :return: RoleArn:  The ARN of the role which is associated with the account.<br/>AssociatedAt:  The time when the service role was associated with the account.<br/>        """
        pass

    def get_subscription_definition(self, SubscriptionDefinitionId: str) -> GetSubscriptionDefinitionResponse:
        r"""Retrieves information about a subscription definition.

        :param self:
        :param SubscriptionDefinitionId:  The ID of the subscription definition.<br/>
        :return: tags:  Tag(s) attached to the resource arn.<br/>Name:  The name of the definition.<br/>LatestVersionArn:  The ARN of the latest version associated with the definition.<br/>LatestVersion:  The ID of the latest version associated with the definition.<br/>LastUpdatedTimestamp:  The time, in milliseconds since the epoch, when the definition was last updated.<br/>Id:  The ID of the definition.<br/>CreationTimestamp:  The time, in milliseconds since the epoch, when the definition was created.<br/>Arn:  The ARN of the definition.<br/>        """
        pass

    def get_subscription_definition_version(self, SubscriptionDefinitionVersionId: str, SubscriptionDefinitionId: str, NextToken: str=None) -> GetSubscriptionDefinitionVersionResponse:
        r"""Retrieves information about a subscription definition version.

        :param self:
        :param SubscriptionDefinitionVersionId:  The ID of the subscription definition version. This value maps to the ''Version'' property of the corresponding ''VersionInformation'' object, which is returned by ''ListSubscriptionDefinitionVersions'' requests. If the version is the last one that was associated with a subscription definition, the value also maps to the ''LatestVersion'' property of the corresponding ''DefinitionInformation'' object.<br/>SubscriptionDefinitionId:  The ID of the subscription definition.<br/>NextToken:  The token for the next set of results, or ''null'' if there are no additional results.<br/>
        :return: Version:  The version of the subscription definition version.<br/>NextToken:  The token for the next set of results, or ''null'' if there are no additional results.<br/>Id:  The ID of the subscription definition version.<br/>Definition:  Information about the subscription definition version.:<br/>CreationTimestamp:  The time, in milliseconds since the epoch, when the subscription definition version was created.<br/>Arn:  The ARN of the subscription definition version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Subscriptions</i> A list of subscriptions.<br/>        """
        pass

    def get_thing_runtime_configuration(self, ThingName: str) -> GetThingRuntimeConfigurationResponse:
        r"""Get the runtime configuration of a thing.

        :param self:
        :param ThingName:  The thing name.<br/>
        :return: RuntimeConfiguration:  Runtime configuration for a thing.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TelemetryConfiguration</i> Configuration for telemetry service.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TelemetryConfiguration</b>: Configuration for telemetry service.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Telemetry</i> Configure telemetry to be on or off.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ConfigurationSyncStatus</i> Synchronization status of the device reported configuration with the desired configuration.<br/>        """
        pass

    def list_bulk_deployment_detailed_reports(self, BulkDeploymentId: str, MaxResults: str=None, NextToken: str=None) -> ListBulkDeploymentDetailedReportsResponse:
        r"""Gets a paginated list of the deployments that have been started in a bulk deployment operation, and their current deployment status.

        :param self:
        :param NextToken:  The token for the next set of results, or ''null'' if there are no additional results.<br/>MaxResults:  The maximum number of results to be returned per request.<br/>BulkDeploymentId:  The ID of the bulk deployment.<br/>
        :return: NextToken:  The token for the next set of results, or ''null'' if there are no additional results.<br/>Deployments:  A list of the individual group deployments in the bulk deployment operation.<br/>        """
        pass

    def list_bulk_deployments(self, MaxResults: str=None, NextToken: str=None) -> ListBulkDeploymentsResponse:
        r"""Returns a list of bulk deployments.

        :param self:
        :param NextToken:  The token for the next set of results, or ''null'' if there are no additional results.<br/>MaxResults:  The maximum number of results to be returned per request.<br/>
        :return: NextToken:  The token for the next set of results, or ''null'' if there are no additional results.<br/>BulkDeployments:  A list of bulk deployments.<br/>        """
        pass

    def list_connector_definition_versions(self, ConnectorDefinitionId: str, MaxResults: str=None, NextToken: str=None) -> ListConnectorDefinitionVersionsResponse:
        r"""Lists the versions of a connector definition, which are containers for connectors. Connectors run on the Greengrass core and contain built-in integration with local infrastructure, device protocols, AWS, and other cloud services.

        :param self:
        :param NextToken:  The token for the next set of results, or ''null'' if there are no additional results.<br/>MaxResults:  The maximum number of results to be returned per request.<br/>ConnectorDefinitionId:  The ID of the connector definition.<br/>
        :return: Versions:  Information about a version.<br/>NextToken:  The token for the next set of results, or ''null'' if there are no additional results.<br/>        """
        pass

    def list_connector_definitions(self, MaxResults: str=None, NextToken: str=None) -> ListConnectorDefinitionsResponse:
        r"""Retrieves a list of connector definitions.

        :param self:
        :param NextToken:  The token for the next set of results, or ''null'' if there are no additional results.<br/>MaxResults:  The maximum number of results to be returned per request.<br/>
        :return: NextToken:  The token for the next set of results, or ''null'' if there are no additional results.<br/>Definitions:  Information about a definition.<br/>        """
        pass

    def list_core_definition_versions(self, CoreDefinitionId: str, MaxResults: str=None, NextToken: str=None) -> ListCoreDefinitionVersionsResponse:
        r"""Lists the versions of a core definition.

        :param self:
        :param NextToken:  The token for the next set of results, or ''null'' if there are no additional results.<br/>MaxResults:  The maximum number of results to be returned per request.<br/>CoreDefinitionId:  The ID of the core definition.<br/>
        :return: Versions:  Information about a version.<br/>NextToken:  The token for the next set of results, or ''null'' if there are no additional results.<br/>        """
        pass

    def list_core_definitions(self, MaxResults: str=None, NextToken: str=None) -> ListCoreDefinitionsResponse:
        r"""Retrieves a list of core definitions.

        :param self:
        :param NextToken:  The token for the next set of results, or ''null'' if there are no additional results.<br/>MaxResults:  The maximum number of results to be returned per request.<br/>
        :return: NextToken:  The token for the next set of results, or ''null'' if there are no additional results.<br/>Definitions:  Information about a definition.<br/>        """
        pass

    def list_deployments(self, GroupId: str, MaxResults: str=None, NextToken: str=None) -> ListDeploymentsResponse:
        r"""Returns a history of deployments for the group.

        :param self:
        :param NextToken:  The token for the next set of results, or ''null'' if there are no additional results.<br/>MaxResults:  The maximum number of results to be returned per request.<br/>GroupId:  The ID of the Greengrass group.<br/>
        :return: NextToken:  The token for the next set of results, or ''null'' if there are no additional results.<br/>Deployments:  A list of deployments for the requested groups.<br/>        """
        pass

    def list_device_definition_versions(self, DeviceDefinitionId: str, MaxResults: str=None, NextToken: str=None) -> ListDeviceDefinitionVersionsResponse:
        r"""Lists the versions of a device definition.

        :param self:
        :param NextToken:  The token for the next set of results, or ''null'' if there are no additional results.<br/>MaxResults:  The maximum number of results to be returned per request.<br/>DeviceDefinitionId:  The ID of the device definition.<br/>
        :return: Versions:  Information about a version.<br/>NextToken:  The token for the next set of results, or ''null'' if there are no additional results.<br/>        """
        pass

    def list_device_definitions(self, MaxResults: str=None, NextToken: str=None) -> ListDeviceDefinitionsResponse:
        r"""Retrieves a list of device definitions.

        :param self:
        :param NextToken:  The token for the next set of results, or ''null'' if there are no additional results.<br/>MaxResults:  The maximum number of results to be returned per request.<br/>
        :return: NextToken:  The token for the next set of results, or ''null'' if there are no additional results.<br/>Definitions:  Information about a definition.<br/>        """
        pass

    def list_function_definition_versions(self, FunctionDefinitionId: str, MaxResults: str=None, NextToken: str=None) -> ListFunctionDefinitionVersionsResponse:
        r"""Lists the versions of a Lambda function definition.

        :param self:
        :param NextToken:  The token for the next set of results, or ''null'' if there are no additional results.<br/>MaxResults:  The maximum number of results to be returned per request.<br/>FunctionDefinitionId:  The ID of the Lambda function definition.<br/>
        :return: Versions:  Information about a version.<br/>NextToken:  The token for the next set of results, or ''null'' if there are no additional results.<br/>        """
        pass

    def list_function_definitions(self, MaxResults: str=None, NextToken: str=None) -> ListFunctionDefinitionsResponse:
        r"""Retrieves a list of Lambda function definitions.

        :param self:
        :param NextToken:  The token for the next set of results, or ''null'' if there are no additional results.<br/>MaxResults:  The maximum number of results to be returned per request.<br/>
        :return: NextToken:  The token for the next set of results, or ''null'' if there are no additional results.<br/>Definitions:  Information about a definition.<br/>        """
        pass

    def list_group_certificate_authorities(self, GroupId: str) -> ListGroupCertificateAuthoritiesResponse:
        r"""Retrieves the current CAs for a group.

        :param self:
        :param GroupId:  The ID of the Greengrass group.<br/>
        :return: GroupCertificateAuthorities:  A list of certificate authorities associated with the group.<br/>        """
        pass

    def list_group_versions(self, GroupId: str, MaxResults: str=None, NextToken: str=None) -> ListGroupVersionsResponse:
        r"""Lists the versions of a group.

        :param self:
        :param NextToken:  The token for the next set of results, or ''null'' if there are no additional results.<br/>MaxResults:  The maximum number of results to be returned per request.<br/>GroupId:  The ID of the Greengrass group.<br/>
        :return: Versions:  Information about a version.<br/>NextToken:  The token for the next set of results, or ''null'' if there are no additional results.<br/>        """
        pass

    def list_groups(self, MaxResults: str=None, NextToken: str=None) -> ListGroupsResponse:
        r"""Retrieves a list of groups.

        :param self:
        :param NextToken:  The token for the next set of results, or ''null'' if there are no additional results.<br/>MaxResults:  The maximum number of results to be returned per request.<br/>
        :return: NextToken:  The token for the next set of results, or ''null'' if there are no additional results.<br/>Groups:  Information about a group.<br/>        """
        pass

    def list_logger_definition_versions(self, LoggerDefinitionId: str, MaxResults: str=None, NextToken: str=None) -> ListLoggerDefinitionVersionsResponse:
        r"""Lists the versions of a logger definition.

        :param self:
        :param NextToken:  The token for the next set of results, or ''null'' if there are no additional results.<br/>MaxResults:  The maximum number of results to be returned per request.<br/>LoggerDefinitionId:  The ID of the logger definition.<br/>
        :return: Versions:  Information about a version.<br/>NextToken:  The token for the next set of results, or ''null'' if there are no additional results.<br/>        """
        pass

    def list_logger_definitions(self, MaxResults: str=None, NextToken: str=None) -> ListLoggerDefinitionsResponse:
        r"""Retrieves a list of logger definitions.

        :param self:
        :param NextToken:  The token for the next set of results, or ''null'' if there are no additional results.<br/>MaxResults:  The maximum number of results to be returned per request.<br/>
        :return: NextToken:  The token for the next set of results, or ''null'' if there are no additional results.<br/>Definitions:  Information about a definition.<br/>        """
        pass

    def list_resource_definition_versions(self, ResourceDefinitionId: str, MaxResults: str=None, NextToken: str=None) -> ListResourceDefinitionVersionsResponse:
        r"""Lists the versions of a resource definition.

        :param self:
        :param ResourceDefinitionId:  The ID of the resource definition.<br/>NextToken:  The token for the next set of results, or ''null'' if there are no additional results.<br/>MaxResults:  The maximum number of results to be returned per request.<br/>
        :return: Versions:  Information about a version.<br/>NextToken:  The token for the next set of results, or ''null'' if there are no additional results.<br/>        """
        pass

    def list_resource_definitions(self, MaxResults: str=None, NextToken: str=None) -> ListResourceDefinitionsResponse:
        r"""Retrieves a list of resource definitions.

        :param self:
        :param NextToken:  The token for the next set of results, or ''null'' if there are no additional results.<br/>MaxResults:  The maximum number of results to be returned per request.<br/>
        :return: NextToken:  The token for the next set of results, or ''null'' if there are no additional results.<br/>Definitions:  Information about a definition.<br/>        """
        pass

    def list_subscription_definition_versions(self, SubscriptionDefinitionId: str, MaxResults: str=None, NextToken: str=None) -> ListSubscriptionDefinitionVersionsResponse:
        r"""Lists the versions of a subscription definition.

        :param self:
        :param SubscriptionDefinitionId:  The ID of the subscription definition.<br/>NextToken:  The token for the next set of results, or ''null'' if there are no additional results.<br/>MaxResults:  The maximum number of results to be returned per request.<br/>
        :return: Versions:  Information about a version.<br/>NextToken:  The token for the next set of results, or ''null'' if there are no additional results.<br/>        """
        pass

    def list_subscription_definitions(self, MaxResults: str=None, NextToken: str=None) -> ListSubscriptionDefinitionsResponse:
        r"""Retrieves a list of subscription definitions.

        :param self:
        :param NextToken:  The token for the next set of results, or ''null'' if there are no additional results.<br/>MaxResults:  The maximum number of results to be returned per request.<br/>
        :return: NextToken:  The token for the next set of results, or ''null'' if there are no additional results.<br/>Definitions:  Information about a definition.<br/>        """
        pass

    def list_tags_for_resource(self, ResourceArn: str) -> ListTagsForResourceResponse:
        r"""Retrieves a list of resource tags for a resource arn.

        :param self:
        :param ResourceArn:  The Amazon Resource Name (ARN) of the resource.<br/>
        :return: tags:  The key-value pair for the resource tag.<br/>        """
        pass

    def reset_deployments(self, GroupId: str, AmznClientToken: str=None, Force: __boolean=None) -> ResetDeploymentsResponse:
        r"""Resets a group's deployments.

        :param self:
        :param GroupId:  The ID of the Greengrass group.<br/>Force:  If true, performs a best-effort only core reset.<br/>AmznClientToken:  A client token used to correlate requests and responses.<br/>
        :return: DeploymentId:  The ID of the deployment.<br/>DeploymentArn:  The ARN of the deployment.<br/>        """
        pass

    def start_bulk_deployment(self, InputFileUri: str, ExecutionRoleArn: str, AmznClientToken: str=None, tags: Tags=None) -> StartBulkDeploymentResponse:
        r"""Deploys multiple groups in one operation. This action starts the bulk deployment of a specified set of group versions. Each group version deployment will be triggered with an adaptive rate that has a fixed upper limit. We recommend that you include an ''X-Amzn-Client-Token'' token in every ''StartBulkDeployment'' request. These requests are idempotent with respect to the token and the request parameters.

        :param self:
        :param tags:  Tag(s) to add to the new resource.<br/>InputFileUri:  The URI of the input file contained in the S3 bucket. The execution role must have ''getObject'' permissions on this bucket to access the input file. The input file is a JSON-serialized, line delimited file with UTF-8 encoding that provides a list of group and version IDs and the deployment type. This file must be less than 100 MB. Currently, AWS IoT Greengrass supports only ''NewDeployment'' deployment types.<br/>ExecutionRoleArn:  The ARN of the execution role to associate with the bulk deployment operation. This IAM role must allow the ''greengrass:CreateDeployment'' action for all group versions that are listed in the input file. This IAM role must have access to the S3 bucket containing the input file.<br/>AmznClientToken:  A client token used to correlate requests and responses.<br/>
        :return: BulkDeploymentId:  The ID of the bulk deployment.<br/>BulkDeploymentArn:  The ARN of the bulk deployment.<br/>        """
        pass

    def stop_bulk_deployment(self, BulkDeploymentId: str) -> StopBulkDeploymentResponse:
        r"""Stops the execution of a bulk deployment. This action returns a status of ''Stopping'' until the deployment is stopped. You cannot start a new bulk deployment while a previous deployment is in the ''Stopping'' state. This action doesn't rollback completed deployments or cancel pending deployments.

        :param self:
        :param BulkDeploymentId:  The ID of the bulk deployment.<br/>
        :return:         """
        pass

    def tag_resource(self, ResourceArn: str, tags: Tags=None):
        r"""Adds tags to a Greengrass resource. Valid resources are 'Group', 'ConnectorDefinition', 'CoreDefinition', 'DeviceDefinition', 'FunctionDefinition', 'LoggerDefinition', 'SubscriptionDefinition', 'ResourceDefinition', and 'BulkDeployment'.

        :param self:
        :param tags:  The key-value pair for the resource tag.<br/>ResourceArn:  The Amazon Resource Name (ARN) of the resource.<br/>
        :return:         """
        pass

    def untag_resource(self, TagKeys: List[__string], ResourceArn: str):
        r"""Remove resource tags from a Greengrass Resource.

        :param self:
        :param TagKeys:  An array of tag keys to delete<br/>ResourceArn:  The Amazon Resource Name (ARN) of the resource.<br/>
        :return:         """
        pass

    def update_connectivity_info(self, ThingName: str, ConnectivityInfo: List[ConnectivityInfo]=None) -> UpdateConnectivityInfoResponse:
        r"""Updates the connectivity information for the core. Any devices that belong to the group which has this core will receive this information in order to find the location of the core and connect to it.

        :param self:
        :param ThingName:  The thing name.<br/>ConnectivityInfo:  A list of connectivity info.<br/>
        :return: Version:  The new version of the connectivity info.<br/>Message:  A message about the connectivity info update request.<br/>        """
        pass

    def update_connector_definition(self, ConnectorDefinitionId: str, Name: str=None) -> UpdateConnectorDefinitionResponse:
        r"""Updates a connector definition.

        :param self:
        :param Name:  The name of the definition.<br/>ConnectorDefinitionId:  The ID of the connector definition.<br/>
        :return:         """
        pass

    def update_core_definition(self, CoreDefinitionId: str, Name: str=None) -> UpdateCoreDefinitionResponse:
        r"""Updates a core definition.

        :param self:
        :param Name:  The name of the definition.<br/>CoreDefinitionId:  The ID of the core definition.<br/>
        :return:         """
        pass

    def update_device_definition(self, DeviceDefinitionId: str, Name: str=None) -> UpdateDeviceDefinitionResponse:
        r"""Updates a device definition.

        :param self:
        :param Name:  The name of the definition.<br/>DeviceDefinitionId:  The ID of the device definition.<br/>
        :return:         """
        pass

    def update_function_definition(self, FunctionDefinitionId: str, Name: str=None) -> UpdateFunctionDefinitionResponse:
        r"""Updates a Lambda function definition.

        :param self:
        :param Name:  The name of the definition.<br/>FunctionDefinitionId:  The ID of the Lambda function definition.<br/>
        :return:         """
        pass

    def update_group(self, GroupId: str, Name: str=None) -> UpdateGroupResponse:
        r"""Updates a group.

        :param self:
        :param Name:  The name of the definition.<br/>GroupId:  The ID of the Greengrass group.<br/>
        :return:         """
        pass

    def update_group_certificate_configuration(self, GroupId: str, CertificateExpiryInMilliseconds: str=None) -> UpdateGroupCertificateConfigurationResponse:
        r"""Updates the Certificate expiry time for a group.

        :param self:
        :param GroupId:  The ID of the Greengrass group.<br/>CertificateExpiryInMilliseconds:  The amount of time remaining before the certificate expires, in milliseconds.<br/>
        :return: GroupId:  The ID of the group certificate configuration.<br/>CertificateExpiryInMilliseconds:  The amount of time remaining before the certificate expires, in milliseconds.<br/>CertificateAuthorityExpiryInMilliseconds:  The amount of time remaining before the certificate authority expires, in milliseconds.<br/>        """
        pass

    def update_logger_definition(self, LoggerDefinitionId: str, Name: str=None) -> UpdateLoggerDefinitionResponse:
        r"""Updates a logger definition.

        :param self:
        :param Name:  The name of the definition.<br/>LoggerDefinitionId:  The ID of the logger definition.<br/>
        :return:         """
        pass

    def update_resource_definition(self, ResourceDefinitionId: str, Name: str=None) -> UpdateResourceDefinitionResponse:
        r"""Updates a resource definition.

        :param self:
        :param ResourceDefinitionId:  The ID of the resource definition.<br/>Name:  The name of the definition.<br/>
        :return:         """
        pass

    def update_subscription_definition(self, SubscriptionDefinitionId: str, Name: str=None) -> UpdateSubscriptionDefinitionResponse:
        r"""Updates a subscription definition.

        :param self:
        :param SubscriptionDefinitionId:  The ID of the subscription definition.<br/>Name:  The name of the definition.<br/>
        :return:         """
        pass

    def update_thing_runtime_configuration(self, ThingName: str, TelemetryConfiguration: TelemetryConfigurationUpdate=None) -> UpdateThingRuntimeConfigurationResponse:
        r"""Updates the runtime configuration of a thing.

        :param self:
        :param ThingName:  The thing name.<br/>TelemetryConfiguration:  Configuration for telemetry service.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Telemetry</i> Configure telemetry to be on or off.<br/>
        :return:         """
        pass





class GreengrassV2(BaseClient):
    r"""AWS IoT Greengrass brings local compute, messaging, data management, sync, and ML inference capabilities to edge devices. This enables devices to collect and analyze data closer to the source of information, react autonomously to local events, and communicate securely with each other on local networks. Local devices can also communicate securely with AWS IoT Core and export IoT data to the AWS Cloud. AWS IoT Greengrass developers can use AWS Lambda functions and components to create and deploy applications to fleets of edge devices for local operation. AWS IoT Greengrass Version 2 provides a new major version of the AWS IoT Greengrass Core software, new APIs, and a new console. Use this API reference to learn how to use the AWS IoT Greengrass V2 API operations to manage components, manage deployments, and core devices. For more information, see <a href="https://docs.aws.amazon.com/greengrass/v2/developerguide/what-is-iot-greengrass.html">What is AWS IoT Greengrass?</a> in the <i>AWS IoT Greengrass V2 Developer Guide</i>."""


    class ListComponentVersionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_component_versions` for valid parameters"""
            pass
    class ListComponentsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_components` for valid parameters"""
            pass
    class ListCoreDevicesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_core_devices` for valid parameters"""
            pass
    class ListDeploymentsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_deployments` for valid parameters"""
            pass
    class ListEffectiveDeploymentsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_effective_deployments` for valid parameters"""
            pass
    class ListInstalledComponentsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_installed_components` for valid parameters"""
            pass
    class ListClientDevicesAssociatedWithCoreDevicePaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_client_devices_associated_with_core_device` for valid parameters"""
            pass


    class BatchAssociateClientDeviceWithCoreDeviceRequest(Mapping):
        pass
    
    class BatchAssociateClientDeviceWithCoreDeviceResponse(Mapping):
        pass
    
    class AssociateClientDeviceWithCoreDeviceEntry(Mapping):
        pass
    
    class BatchDisassociateClientDeviceFromCoreDeviceRequest(Mapping):
        pass
    
    class BatchDisassociateClientDeviceFromCoreDeviceResponse(Mapping):
        pass
    
    class DisassociateClientDeviceFromCoreDeviceEntry(Mapping):
        pass
    
    class CancelDeploymentRequest(Mapping):
        pass
    
    class CancelDeploymentResponse(Mapping):
        pass
    
    class CreateComponentVersionRequest(Mapping):
        pass
    
    class CreateComponentVersionResponse(Mapping):
        pass
    
    class RecipeBlob(object):
        pass
    
    class LambdaFunctionRecipeSource(Mapping):
        pass
    
    class TagMap(object):
        pass
    
    class CreateDeploymentRequest(Mapping):
        pass
    
    class CreateDeploymentResponse(Mapping):
        pass
    
    class ComponentDeploymentSpecifications(object):
        pass
    
    class DeploymentIoTJobConfiguration(Mapping):
        pass
    
    class DeploymentPolicies(Mapping):
        pass
    
    class DeleteComponentRequest(Mapping):
        pass
    
    class DeleteCoreDeviceRequest(Mapping):
        pass
    
    class DescribeComponentRequest(Mapping):
        pass
    
    class DescribeComponentResponse(Mapping):
        pass
    
    class GetComponentRequest(Mapping):
        pass
    
    class GetComponentResponse(Mapping):
        pass
    
    class GetComponentVersionArtifactRequest(Mapping):
        pass
    
    class GetComponentVersionArtifactResponse(Mapping):
        pass
    
    class GetCoreDeviceRequest(Mapping):
        pass
    
    class GetCoreDeviceResponse(Mapping):
        pass
    
    class GetDeploymentRequest(Mapping):
        pass
    
    class GetDeploymentResponse(Mapping):
        pass
    
    class ListClientDevicesAssociatedWithCoreDeviceRequest(Mapping):
        pass
    
    class ListClientDevicesAssociatedWithCoreDeviceResponse(Mapping):
        pass
    
    class ListComponentVersionsRequest(Mapping):
        pass
    
    class ListComponentVersionsResponse(Mapping):
        pass
    
    class ListComponentsRequest(Mapping):
        pass
    
    class ListComponentsResponse(Mapping):
        pass
    
    class ListCoreDevicesRequest(Mapping):
        pass
    
    class ListCoreDevicesResponse(Mapping):
        pass
    
    class ListDeploymentsRequest(Mapping):
        pass
    
    class ListDeploymentsResponse(Mapping):
        pass
    
    class ListEffectiveDeploymentsRequest(Mapping):
        pass
    
    class ListEffectiveDeploymentsResponse(Mapping):
        pass
    
    class ListInstalledComponentsRequest(Mapping):
        pass
    
    class ListInstalledComponentsResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class ResolveComponentCandidatesRequest(Mapping):
        pass
    
    class ResolveComponentCandidatesResponse(Mapping):
        pass
    
    class ComponentPlatform(Mapping):
        pass
    
    class ComponentCandidate(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    def batch_associate_client_device_with_core_device(self, coreDeviceThingName: str, entries: List[AssociateClientDeviceWithCoreDeviceEntry]=None) -> BatchAssociateClientDeviceWithCoreDeviceResponse:
        r"""Associate a list of client devices with a core device. Use this API operation to specify which client devices can discover a core device through cloud discovery. With cloud discovery, client devices connect to AWS IoT Greengrass to retrieve associated core devices' connectivity information and certificates. For more information, see <a href="https://docs.aws.amazon.com/greengrass/v2/developerguide/configure-cloud-discovery.html">Configure cloud discovery</a> in the <i>AWS IoT Greengrass V2 Developer Guide</i>. <note> Client devices are local IoT devices that connect to and communicate with an AWS IoT Greengrass core device over MQTT. You can connect client devices to a core device to sync MQTT messages and data to AWS IoT Core and interact with client devices in AWS IoT Greengrass components. For more information, see <a href="https://docs.aws.amazon.com/greengrass/v2/developerguide/interact-with-local-iot-devices.html">Interact with local IoT devices</a> in the <i>AWS IoT Greengrass V2 Developer Guide</i>. </note>

        :param self:
        :param coreDeviceThingName:  The name of the core device. This is also the name of the AWS IoT thing.<br/>entries:  The list of client devices to associate.<br/>
        :return: errorEntries:  The list of any errors for the entries in the request. Each error entry contains the name of the AWS IoT thing that failed to associate.<br/>        """
        pass

    def batch_disassociate_client_device_from_core_device(self, coreDeviceThingName: str, entries: List[DisassociateClientDeviceFromCoreDeviceEntry]=None) -> BatchDisassociateClientDeviceFromCoreDeviceResponse:
        r"""Disassociate a list of client devices from a core device. After you disassociate a client device from a core device, the client device won't be able to use cloud discovery to retrieve the core device's connectivity information and certificates.

        :param self:
        :param coreDeviceThingName:  The name of the core device. This is also the name of the AWS IoT thing.<br/>entries:  The list of client devices to disassociate.<br/>
        :return: errorEntries:  The list of errors (if any) for the entries in the request. Each error entry contains the name of the AWS IoT thing that failed to disassociate.<br/>        """
        pass

    def cancel_deployment(self, deploymentId: str) -> CancelDeploymentResponse:
        r"""Cancels a deployment. This operation cancels the deployment for devices that haven't yet received it. If a device already received the deployment, this operation doesn't change anything for that device.

        :param self:
        :param deploymentId:  The ID of the deployment.<br/>
        :return: message:  A message that communicates if the cancel was successful.<br/>        """
        pass

    def create_component_version(self, inlineRecipe: RecipeBlob=None, lambdaFunction: LambdaFunctionRecipeSource=None, tags: TagMap=None) -> CreateComponentVersionResponse:
        r"""Creates a component. Components are software that run on AWS IoT Greengrass core devices. After you develop and test a component on your core device, you can use this operation to upload your component to AWS IoT Greengrass. Then, you can deploy the component to other core devices. You can use this operation to do the following: <ul> <li>  <b>Create components from recipes</b>  Create a component from a recipe, which is a file that defines the component's metadata, parameters, dependencies, lifecycle, artifacts, and platform capability. For more information, see <a href="https://docs.aws.amazon.com/greengrass/v2/developerguide/component-recipe-reference.html">AWS IoT Greengrass component recipe reference</a> in the <i>AWS IoT Greengrass V2 Developer Guide</i>. To create a component from a recipe, specify <code>inlineRecipe</code> when you call this operation. </li> <li>  <b>Create components from Lambda functions</b>  Create a component from an AWS Lambda function that runs on AWS IoT Greengrass. This creates a recipe and artifacts from the Lambda function's deployment package. You can use this operation to migrate Lambda functions from AWS IoT Greengrass V1 to AWS IoT Greengrass V2. This function only accepts Lambda functions that use the following runtimes: <ul> <li> Python 2.7 – <code>python2.7</code>  </li> <li> Python 3.7 – <code>python3.7</code>  </li> <li> Python 3.8 – <code>python3.8</code>  </li> <li> Java 8 – <code>java8</code>  </li> <li> Node.js 10 – <code>nodejs10.x</code>  </li> <li> Node.js 12 – <code>nodejs12.x</code>  </li> </ul> To create a component from a Lambda function, specify <code>lambdaFunction</code> when you call this operation. </li> </ul>

        :param self:
        :param tags:  A list of key-value pairs that contain metadata for the resource. For more information, see <a href="https://docs.aws.amazon.com/greengrass/v2/developerguide/tag-resources.html">Tag your resources</a> in the <i>AWS IoT Greengrass V2 Developer Guide</i>.<br/>lambdaFunction:  The parameters to create a component from a Lambda function. You must specify either <code>inlineRecipe</code> or <code>lambdaFunction</code>.:<br/>inlineRecipe:  The recipe to use to create the component. The recipe defines the component's metadata, parameters, dependencies, lifecycle, artifacts, and platform compatibility. You must specify either <code>inlineRecipe</code> or <code>lambdaFunction</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>componentLambdaParameters</i> The system and runtime parameters for the Lambda function as it runs on the AWS IoT Greengrass core device.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>componentLambdaParameters</b>: The system and runtime parameters for the Lambda function as it runs on the AWS IoT Greengrass core device.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>componentDependencies</i> The component versions on which this Lambda function component depends.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>componentPlatforms</i> The platforms that the component version supports.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>componentVersion</i> The version of the component. Defaults to the version of the Lambda function as a semantic version. For example, if your function version is <code>3</code>, the component version becomes <code>3.0.0</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>componentName</i> The name of the component. Defaults to the name of the Lambda function.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lambdaArn</i> The <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">ARN</a> of the Lambda function. The ARN must include the version of the function to import. You can't use version aliases like <code>$LATEST</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>environmentVariables</i> The map of environment variables that are available to the Lambda function when it runs.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>execArgs</i> The list of arguments to pass to the Lambda function when it runs.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>inputPayloadEncodingType</i> The encoding type that the Lambda function supports. Default: <code>json</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>pinned</i> Whether or not the Lambda function is pinned, or long-lived. <ul> <li> A pinned Lambda function starts when AWS IoT Greengrass starts and keeps running in its own container. </li> <li> A non-pinned Lambda function starts only when it receives a work item and exists after it idles for <code>maxIdleTimeInSeconds</code>. If the function has multiple work items, the AWS IoT Greengrass Core software creates multiple instances of the function. </li> </ul> Default: <code>true</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>statusTimeoutInSeconds</i> The interval in seconds at which a pinned (also known as long-lived) Lambda function component sends status updates to the Lambda manager component.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>timeoutInSeconds</i> The maximum amount of time in seconds that the Lambda function can process a work item.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>maxIdleTimeInSeconds</i> The maximum amount of time in seconds that a non-pinned Lambda function can idle before the AWS IoT Greengrass Core software stops its process.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>maxInstancesCount</i> The maximum number of instances that a non-pinned Lambda function can run at the same time.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>maxQueueSize</i> The maximum size of the message queue for the Lambda function component. The AWS IoT Greengrass core stores messages in a FIFO (first-in-first-out) queue until it can run the Lambda function to consume each message.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>eventSources</i> The list of event sources to which to subscribe to receive work messages. The Lambda function runs when it receives a message from an event source. You can subscribe this function to local publish/subscribe messages and AWS IoT Core MQTT messages.<br/>The parameters for the Linux process that contains the Lambda function.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>linuxProcessParams</b>: The parameters for the Linux process that contains the Lambda function.
        :return: status:  The status of the component version in AWS IoT Greengrass V2. This status is different from the status of the component on a core device.:<br/>creationTimestamp:  The time at which the component was created, expressed in ISO 8601 format.<br/>componentVersion:  The version of the component.<br/>componentName:  The name of the component.<br/>arn:  The <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">ARN</a> of the component version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>errors</i> A dictionary of errors that communicate why the component is in an error state. For example, if AWS IoT Greengrass can't access an artifact for the component, then <code>errors</code> contains the artifact's URI as a key, and the error message as the value for that key.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>message</i> A message that communicates details, such as errors, about the status of the component.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>componentState</i> The state of the component.<br/>        """
        pass

    def create_deployment(self, targetArn: str, deploymentName: str=None, components: ComponentDeploymentSpecifications=None, iotJobConfiguration: DeploymentIoTJobConfiguration=None, deploymentPolicies: DeploymentPolicies=None, tags: TagMap=None) -> CreateDeploymentResponse:
        r"""Creates a continuous deployment for a target, which is a AWS IoT Greengrass core device or group of core devices. When you add a new core device to a group of core devices that has a deployment, AWS IoT Greengrass deploys that group's deployment to the new device. You can define one deployment for each target. When you create a new deployment for a target that has an existing deployment, you replace the previous deployment. AWS IoT Greengrass applies the new deployment to the target devices. Every deployment has a revision number that indicates how many deployment revisions you define for a target. Use this operation to create a new revision of an existing deployment. This operation returns the revision number of the new deployment when you create it. For more information, see the <a href="https://docs.aws.amazon.com/greengrass/v2/developerguide/create-deployments.html">Create deployments</a> in the <i>AWS IoT Greengrass V2 Developer Guide</i>.

        :param self:
        :param tags:  A list of key-value pairs that contain metadata for the resource. For more information, see <a href="https://docs.aws.amazon.com/greengrass/v2/developerguide/tag-resources.html">Tag your resources</a> in the <i>AWS IoT Greengrass V2 Developer Guide</i>.<br/>deploymentPolicies:  The deployment policies for the deployment. These policies define how the deployment updates components and handles failure.:<br/>iotJobConfiguration:  The job configuration for the deployment configuration. The job configuration specifies the rollout, timeout, and stop configurations for the deployment configuration.:<br/>components:  The components to deploy. This is a dictionary, where each key is the name of a component, and each key's value is the version and configuration to deploy for that component.<br/>deploymentName:  The name of the deployment. You can create deployments without names. If you create a deployment without a name, the AWS IoT Greengrass V2 console shows the deployment name as <code>&lt;targetType&gt;:&lt;targetName&gt;</code>, where <code>targetType</code> and <code>targetName</code> are the type and name of the deployment target.<br/>targetArn:  The <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">ARN</a> of the target AWS IoT thing or thing group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>timeoutConfig</i> The timeout configuration for the job. This configuration defines the amount of time each device has to complete the job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>timeoutConfig</b>: The timeout configuration for the job. This configuration defines the amount of time each device has to complete the job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>abortConfig</i> The stop configuration for the job. This configuration defines when and how to stop a job rollout.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>abortConfig</b>: The stop configuration for the job. This configuration defines when and how to stop a job rollout.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>jobExecutionsRolloutConfig</i> The rollout configuration for the job. This configuration defines the rate at which the job rolls out to the fleet of target devices.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>jobExecutionsRolloutConfig</b>: The rollout configuration for the job. This configuration defines the rate at which the job rolls out to the fleet of target devices.<br/>The exponential rate to increase the job rollout rate.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>exponentialRate</b>: The exponential rate to increase the job rollout rate.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>criteriaList</i> The list of criteria that define when and how to cancel the configuration deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>inProgressTimeoutInMinutes</i> The amount of time, in minutes, that devices have to complete the job. The timer starts when the job status is set to <code>IN_PROGRESS</code>. If the job status doesn't change to a terminal state before the time expires, then the job status is set to <code>TIMED_OUT</code>. The timeout interval must be between 1 minute and 7 days (10080 minutes).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>configurationValidationPolicy</i> The configuration validation policy for the configuration deployment. This policy defines how long each component has to validate its configure updates.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>configurationValidationPolicy</b>: The configuration validation policy for the configuration deployment. This policy defines how long each component has to validate its configure updates.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>componentUpdatePolicy</i> The component update policy for the configuration deployment. This policy defines when it's safe to deploy the configuration to devices.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>componentUpdatePolicy</b>: The component update policy for the configuration deployment. This policy defines when it's safe to deploy the configuration to devices.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>failureHandlingPolicy</i> The failure handling policy for the configuration deployment. This policy defines what to do if the deployment fails. Default: <code>ROLLBACK</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>action</i> Whether or not to notify components and wait for components to become safe to update. Choose from the following options: <ul> <li>  <code>NOTIFY_COMPONENTS</code> – The deployment notifies each component before it stops and updates that component. Components can use the <a href="https://docs.aws.amazon.com/greengrass/v2/developerguide/interprocess-communication.html#ipc-operation-subscribetocomponentupdates">SubscribeToComponentUpdates</a> IPC operation to receive these notifications. Then, components can respond with the <a href="https://docs.aws.amazon.com/greengrass/v2/developerguide/interprocess-communication.html#ipc-operation-defercomponentupdate">DeferComponentUpdate</a> IPC operation. For more information, see <a href="https://docs.aws.amazon.com/greengrass/v2/developerguide/create-deployments.html">Create deployments</a> in the <i>AWS IoT Greengrass V2 Developer Guide</i>. </li> <li>  <code>SKIP_NOTIFY_COMPONENTS</code> – The deployment doesn't notify components or wait for them to be safe to update. </li> </ul> Default: <code>NOTIFY_COMPONENTS</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>timeoutInSeconds</i> The amount of time in seconds that each component on a device has to report that it's safe to update. If the component waits for longer than this timeout, then the deployment proceeds on the device. Default: <code>60</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>timeoutInSeconds</i> The amount of time in seconds that a component can validate its configuration updates. If the validation time exceeds this timeout, then the deployment proceeds for the device. Default: <code>30</code> <br/>
        :return: iotJobArn:  The <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">ARN</a> of the AWS IoT job that applies the deployment to target devices.<br/>iotJobId:  The ID of the AWS IoT job that applies the deployment to target devices.<br/>deploymentId:  The ID of the deployment.<br/>        """
        pass

    def delete_component(self, arn: str):
        r"""Deletes a version of a component from AWS IoT Greengrass. <note> This operation deletes the component's recipe and artifacts. As a result, deployments that refer to this component version will fail. If you have deployments that use this component version, you can remove the component from the deployment or update the deployment to use a valid version. </note>

        :param self:
        :param arn:  The <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">ARN</a> of the component version.<br/>
        :return:         """
        pass

    def delete_core_device(self, coreDeviceThingName: str):
        r"""Deletes a AWS IoT Greengrass core device, which is an AWS IoT thing. This operation removes the core device from the list of core devices. This operation doesn't delete the AWS IoT thing. For more information about how to delete the AWS IoT thing, see <a href="https://docs.aws.amazon.com/iot/latest/apireference/API_DeleteThing.html">DeleteThing</a> in the <i>AWS IoT API Reference</i>.

        :param self:
        :param coreDeviceThingName:  The name of the core device. This is also the name of the AWS IoT thing.<br/>
        :return:         """
        pass

    def describe_component(self, arn: str) -> DescribeComponentResponse:
        r"""Retrieves metadata for a version of a component.

        :param self:
        :param arn:  The <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">ARN</a> of the component version.<br/>
        :return: tags:  A list of key-value pairs that contain metadata for the resource. For more information, see <a href="https://docs.aws.amazon.com/greengrass/v2/developerguide/tag-resources.html">Tag your resources</a> in the <i>AWS IoT Greengrass V2 Developer Guide</i>.<br/>platforms:  The platforms that the component version supports.<br/>status:  The status of the component version in AWS IoT Greengrass V2. This status is different from the status of the component on a core device.:<br/>description:  The description of the component version.<br/>publisher:  The publisher of the component version.<br/>creationTimestamp:  The time at which the component was created, expressed in ISO 8601 format.<br/>componentVersion:  The version of the component.<br/>componentName:  The name of the component.<br/>arn:  The <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">ARN</a> of the component version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>errors</i> A dictionary of errors that communicate why the component is in an error state. For example, if AWS IoT Greengrass can't access an artifact for the component, then <code>errors</code> contains the artifact's URI as a key, and the error message as the value for that key.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>message</i> A message that communicates details, such as errors, about the status of the component.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>componentState</i> The state of the component.<br/>        """
        pass

    def get_component(self, arn: str, recipeOutputFormat: str=None) -> GetComponentResponse:
        r"""Gets the recipe for a version of a component. Core devices can call this operation to identify the artifacts and requirements to install a component.

        :param self:
        :param arn:  The <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">ARN</a> of the component version.<br/>recipeOutputFormat:  The format of the recipe.<br/>
        :return: tags:  A list of key-value pairs that contain metadata for the resource. For more information, see <a href="https://docs.aws.amazon.com/greengrass/v2/developerguide/tag-resources.html">Tag your resources</a> in the <i>AWS IoT Greengrass V2 Developer Guide</i>.<br/>recipe:  The recipe of the component version.<br/>recipeOutputFormat:  The format of the recipe.<br/>        """
        pass

    def get_component_version_artifact(self, artifactName: str, arn: str) -> GetComponentVersionArtifactResponse:
        r"""Gets the pre-signed URL to download a public component artifact. Core devices call this operation to identify the URL that they can use to download an artifact to install.

        :param self:
        :param artifactName:  The name of the artifact. You can use the <a href="https://docs.aws.amazon.com/greengrass/v2/APIReference/API_GetComponent.html">GetComponent</a> operation to download the component recipe, which includes the URI of the artifact. The artifact name is the section of the URI after the scheme. For example, in the artifact URI <code>greengrass:SomeArtifact.zip</code>, the artifact name is <code>SomeArtifact.zip</code>.<br/>arn:  The <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">ARN</a> of the component version. Specify the ARN of a public component version.<br/>
        :return: preSignedUrl:  The URL of the artifact.<br/>        """
        pass

    def get_core_device(self, coreDeviceThingName: str) -> GetCoreDeviceResponse:
        r"""Retrieves metadata for a AWS IoT Greengrass core device.

        :param self:
        :param coreDeviceThingName:  The name of the core device. This is also the name of the AWS IoT thing.<br/>
        :return: tags:  A list of key-value pairs that contain metadata for the resource. For more information, see <a href="https://docs.aws.amazon.com/greengrass/v2/developerguide/tag-resources.html">Tag your resources</a> in the <i>AWS IoT Greengrass V2 Developer Guide</i>.<br/>lastStatusUpdateTimestamp:  The time at which the core device's status last updated, expressed in ISO 8601 format.<br/>status:  The status of the core device. The core device status can be: <ul> <li>  <code>HEALTHY</code> – The AWS IoT Greengrass Core software and all components run on the core device without issue. </li> <li>  <code>UNHEALTHY</code> – The AWS IoT Greengrass Core software or a component is in a failed state on the core device. </li> </ul><br/>architecture:  The computer architecture of the core device.<br/>platform:  The operating system platform that the core device runs.<br/>coreVersion:  The version of the AWS IoT Greengrass Core software that the core device runs. This version is equivalent to the version of the AWS IoT Greengrass nucleus component that runs on the core device. For more information, see the <a href="https://docs.aws.amazon.com/greengrass/v2/developerguide/greengrass-nucleus-component.html">AWS IoT Greengrass nucleus component</a> in the <i>AWS IoT Greengrass V2 Developer Guide</i>.<br/>coreDeviceThingName:  The name of the core device. This is also the name of the AWS IoT thing.<br/>        """
        pass

    def get_deployment(self, deploymentId: str) -> GetDeploymentResponse:
        r"""Gets a deployment. Deployments define the components that run on AWS IoT Greengrass core devices.

        :param self:
        :param deploymentId:  The ID of the deployment.<br/>
        :return: tags:  A list of key-value pairs that contain metadata for the resource. For more information, see <a href="https://docs.aws.amazon.com/greengrass/v2/developerguide/tag-resources.html">Tag your resources</a> in the <i>AWS IoT Greengrass V2 Developer Guide</i>.<br/>isLatestForTarget:  Whether or not the deployment is the latest revision for its target.<br/>creationTimestamp:  The time at which the deployment was created, expressed in ISO 8601 format.<br/>iotJobConfiguration:  The job configuration for the deployment configuration. The job configuration specifies the rollout, timeout, and stop configurations for the deployment configuration.:<br/>deploymentPolicies:  The deployment policies for the deployment. These policies define how the deployment updates components and handles failure.:<br/>components:  The components to deploy. This is a dictionary, where each key is the name of a component, and each key's value is the version and configuration to deploy for that component.<br/>iotJobArn:  The <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">ARN</a> of the AWS IoT job that applies the deployment to target devices.<br/>iotJobId:  The ID of the AWS IoT job that applies the deployment to target devices.<br/>deploymentStatus:  The status of the deployment.<br/>deploymentName:  The name of the deployment. You can create deployments without names. If you create a deployment without a name, the AWS IoT Greengrass V2 console shows the deployment name as <code>&lt;targetType&gt;:&lt;targetName&gt;</code>, where <code>targetType</code> and <code>targetName</code> are the type and name of the deployment target.<br/>deploymentId:  The ID of the deployment.<br/>revisionId:  The revision number of the deployment.<br/>targetArn:  The <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">ARN</a> of the target AWS IoT thing or thing group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>configurationValidationPolicy</i> The configuration validation policy for the configuration deployment. This policy defines how long each component has to validate its configure updates.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>configurationValidationPolicy</b>: The configuration validation policy for the configuration deployment. This policy defines how long each component has to validate its configure updates.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>componentUpdatePolicy</i> The component update policy for the configuration deployment. This policy defines when it's safe to deploy the configuration to devices.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>componentUpdatePolicy</b>: The component update policy for the configuration deployment. This policy defines when it's safe to deploy the configuration to devices.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>failureHandlingPolicy</i> The failure handling policy for the configuration deployment. This policy defines what to do if the deployment fails. Default: <code>ROLLBACK</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>action</i> Whether or not to notify components and wait for components to become safe to update. Choose from the following options: <ul> <li>  <code>NOTIFY_COMPONENTS</code> – The deployment notifies each component before it stops and updates that component. Components can use the <a href="https://docs.aws.amazon.com/greengrass/v2/developerguide/interprocess-communication.html#ipc-operation-subscribetocomponentupdates">SubscribeToComponentUpdates</a> IPC operation to receive these notifications. Then, components can respond with the <a href="https://docs.aws.amazon.com/greengrass/v2/developerguide/interprocess-communication.html#ipc-operation-defercomponentupdate">DeferComponentUpdate</a> IPC operation. For more information, see <a href="https://docs.aws.amazon.com/greengrass/v2/developerguide/create-deployments.html">Create deployments</a> in the <i>AWS IoT Greengrass V2 Developer Guide</i>. </li> <li>  <code>SKIP_NOTIFY_COMPONENTS</code> – The deployment doesn't notify components or wait for them to be safe to update. </li> </ul> Default: <code>NOTIFY_COMPONENTS</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>timeoutInSeconds</i> The amount of time in seconds that each component on a device has to report that it's safe to update. If the component waits for longer than this timeout, then the deployment proceeds on the device. Default: <code>60</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>timeoutInSeconds</i> The amount of time in seconds that a component can validate its configuration updates. If the validation time exceeds this timeout, then the deployment proceeds for the device. Default: <code>30</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>timeoutConfig</i> The timeout configuration for the job. This configuration defines the amount of time each device has to complete the job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>timeoutConfig</b>: The timeout configuration for the job. This configuration defines the amount of time each device has to complete the job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>abortConfig</i> The stop configuration for the job. This configuration defines when and how to stop a job rollout.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>abortConfig</b>: The stop configuration for the job. This configuration defines when and how to stop a job rollout.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>jobExecutionsRolloutConfig</i> The rollout configuration for the job. This configuration defines the rate at which the job rolls out to the fleet of target devices.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>jobExecutionsRolloutConfig</b>: The rollout configuration for the job. This configuration defines the rate at which the job rolls out to the fleet of target devices.<br/>The exponential rate to increase the job rollout rate.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>exponentialRate</b>: The exponential rate to increase the job rollout rate.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>criteriaList</i> The list of criteria that define when and how to cancel the configuration deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>inProgressTimeoutInMinutes</i> The amount of time, in minutes, that devices have to complete the job. The timer starts when the job status is set to <code>IN_PROGRESS</code>. If the job status doesn't change to a terminal state before the time expires, then the job status is set to <code>TIMED_OUT</code>. The timeout interval must be between 1 minute and 7 days (10080 minutes).<br/>        """
        pass

    def list_client_devices_associated_with_core_device(self, coreDeviceThingName: str, maxResults: int=None, nextToken: str=None) -> ListClientDevicesAssociatedWithCoreDeviceResponse:
        r"""Retrieves a paginated list of client devices that are associated with a core device.

        :param self:
        :param nextToken:  The token to be used for the next set of paginated results.<br/>maxResults:  The maximum number of results to be returned per paginated request.<br/>coreDeviceThingName:  The name of the core device. This is also the name of the AWS IoT thing.<br/>
        :return: nextToken:  The token for the next set of results, or null if there are no additional results.<br/>associatedClientDevices:  A list that describes the client devices that are associated with the core device.<br/>        """
        pass

    def list_component_versions(self, arn: str, maxResults: int=None, nextToken: str=None) -> ListComponentVersionsResponse:
        r"""Retrieves a paginated list of all versions for a component. Greater versions are listed first.

        :param self:
        :param nextToken:  The token to be used for the next set of paginated results.<br/>maxResults:  The maximum number of results to be returned per paginated request.<br/>arn:  The <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">ARN</a> of the component version.<br/>
        :return: nextToken:  The token for the next set of results, or null if there are no additional results.<br/>componentVersions:  A list of versions that exist for the component.<br/>        """
        pass

    def list_components(self, scope: str=None, maxResults: int=None, nextToken: str=None) -> ListComponentsResponse:
        r"""Retrieves a paginated list of component summaries. This list includes components that you have permission to view.

        :param self:
        :param nextToken:  The token to be used for the next set of paginated results.<br/>maxResults:  The maximum number of results to be returned per paginated request.<br/>scope:  The scope of the components to list. Default: <code>PRIVATE</code> <br/>
        :return: nextToken:  The token for the next set of results, or null if there are no additional results.<br/>components:  A list that summarizes each component.<br/>        """
        pass

    def list_core_devices(self, thingGroupArn: str=None, status: str=None, maxResults: int=None, nextToken: str=None) -> ListCoreDevicesResponse:
        r"""Retrieves a paginated list of AWS IoT Greengrass core devices.

        :param self:
        :param nextToken:  The token to be used for the next set of paginated results.<br/>maxResults:  The maximum number of results to be returned per paginated request.<br/>status:  The core device status by which to filter. If you specify this parameter, the list includes only core devices that have this status. Choose one of the following options: <ul> <li>  <code>HEALTHY</code> – The AWS IoT Greengrass Core software and all components run on the core device without issue. </li> <li>  <code>UNHEALTHY</code> – The AWS IoT Greengrass Core software or a component is in a failed state on the core device. </li> </ul><br/>thingGroupArn:  The <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">ARN</a> of the AWS IoT thing group by which to filter. If you specify this parameter, the list includes only core devices that are members of this thing group.<br/>
        :return: nextToken:  The token for the next set of results, or null if there are no additional results.<br/>coreDevices:  A list that summarizes each core device.<br/>        """
        pass

    def list_deployments(self, targetArn: str=None, historyFilter: str=None, maxResults: int=None, nextToken: str=None) -> ListDeploymentsResponse:
        r"""Retrieves a paginated list of deployments.

        :param self:
        :param nextToken:  The token to be used for the next set of paginated results.<br/>maxResults:  The maximum number of results to be returned per paginated request.<br/>historyFilter:  The filter for the list of deployments. Choose one of the following options: <ul> <li>  <code>ALL</code> – The list includes all deployments. </li> <li>  <code>LATEST_ONLY</code> – The list includes only the latest revision of each deployment. </li> </ul> Default: <code>LATEST_ONLY</code> <br/>targetArn:  The <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">ARN</a> of the target AWS IoT thing or thing group.<br/>
        :return: nextToken:  The token for the next set of results, or null if there are no additional results.<br/>deployments:  A list that summarizes each deployment.<br/>        """
        pass

    def list_effective_deployments(self, coreDeviceThingName: str, maxResults: int=None, nextToken: str=None) -> ListEffectiveDeploymentsResponse:
        r"""Retrieves a paginated list of deployment jobs that AWS IoT Greengrass sends to AWS IoT Greengrass core devices.

        :param self:
        :param nextToken:  The token to be used for the next set of paginated results.<br/>maxResults:  The maximum number of results to be returned per paginated request.<br/>coreDeviceThingName:  The name of the core device. This is also the name of the AWS IoT thing.<br/>
        :return: nextToken:  The token for the next set of results, or null if there are no additional results.<br/>effectiveDeployments:  A list that summarizes each deployment on the core device.<br/>        """
        pass

    def list_installed_components(self, coreDeviceThingName: str, maxResults: int=None, nextToken: str=None) -> ListInstalledComponentsResponse:
        r"""Retrieves a paginated list of the components that a AWS IoT Greengrass core device runs.

        :param self:
        :param nextToken:  The token to be used for the next set of paginated results.<br/>maxResults:  The maximum number of results to be returned per paginated request.<br/>coreDeviceThingName:  The name of the core device. This is also the name of the AWS IoT thing.<br/>
        :return: nextToken:  The token for the next set of results, or null if there are no additional results.<br/>installedComponents:  A list that summarizes each component on the core device.<br/>        """
        pass

    def list_tags_for_resource(self, resourceArn: str) -> ListTagsForResourceResponse:
        r"""Retrieves the list of tags for an AWS IoT Greengrass resource.

        :param self:
        :param resourceArn:  The <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">ARN</a> of the resource.<br/>
        :return: tags:  A list of key-value pairs that contain metadata for the resource. For more information, see <a href="https://docs.aws.amazon.com/greengrass/v2/developerguide/tag-resources.html">Tag your resources</a> in the <i>AWS IoT Greengrass V2 Developer Guide</i>.<br/>        """
        pass

    def resolve_component_candidates(self, componentCandidates: List[ComponentCandidate], platform: ComponentPlatform) -> ResolveComponentCandidatesResponse:
        r"""Retrieves a list of components that meet the component, version, and platform requirements of a deployment. AWS IoT Greengrass core devices call this operation when they receive a deployment to identify the components to install. This operation identifies components that meet all dependency requirements for a deployment. If the requirements conflict, then this operation returns an error and the deployment fails. For example, this occurs if component <code>A</code> requires version <code>&gt;2.0.0</code> and component <code>B</code> requires version <code>&lt;2.0.0</code> of a component dependency. When you specify the component candidates to resolve, AWS IoT Greengrass compares each component's digest from the core device with the component's digest in the AWS Cloud. If the digests don't match, then AWS IoT Greengrass specifies to use the version from the AWS Cloud. <important> To use this operation, you must use the data plane API endpoint and authenticate with an AWS IoT device certificate. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/greengrass.html">AWS IoT Greengrass endpoints and quotas</a>. </important>

        :param self:
        :param componentCandidates:  The list of components to resolve.<br/>platform:  The platform to use to resolve compatible components.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>attributes</i> A dictionary of attributes for the platform. The AWS IoT Greengrass Core software defines the <code>os</code> and <code>platform</code> by default. You can specify additional platform attributes for a core device when you deploy the AWS IoT Greengrass nucleus component. For more information, see the <a href="https://docs.aws.amazon.com/greengrass/v2/developerguide/greengrass-nucleus-component.html">AWS IoT Greengrass nucleus component</a> in the <i>AWS IoT Greengrass V2 Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The friendly name of the platform. This name helps you identify the platform. If you omit this parameter, AWS IoT Greengrass creates a friendly name from the <code>os</code> and <code>architecture</code> of the platform.<br/>
        :return: resolvedComponentVersions:  A list of components that meet the requirements that you specify in the request. This list includes each component's recipe that you can use to install the component.<br/>        """
        pass

    def tag_resource(self, tags: TagMap, resourceArn: str) -> TagResourceResponse:
        r"""Adds tags to an AWS IoT Greengrass resource. If a tag already exists for the resource, this operation updates the tag's value.

        :param self:
        :param tags:  A list of key-value pairs that contain metadata for the resource. For more information, see <a href="https://docs.aws.amazon.com/greengrass/v2/developerguide/tag-resources.html">Tag your resources</a> in the <i>AWS IoT Greengrass V2 Developer Guide</i>.<br/>resourceArn:  The <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">ARN</a> of the resource to tag.<br/>
        :return:         """
        pass

    def untag_resource(self, tagKeys: List[TagKey], resourceArn: str) -> UntagResourceResponse:
        r"""Removes a tag from an AWS IoT Greengrass resource.

        :param self:
        :param tagKeys:  A list of keys for tags to remove from the resource.<br/>resourceArn:  The <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">ARN</a> of the resource to untag.<br/>
        :return:         """
        pass





class GroundStation(BaseClient):
    r"""Welcome to the AWS Ground Station API Reference. AWS Ground Station is a fully managed service that enables you to control satellite communications, downlink and process satellite data, and scale your satellite operations efficiently and cost-effectively without having to build or manage your own ground station infrastructure."""


    class ListConfigsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_configs` for valid parameters"""
            pass
    class ListContactsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_contacts` for valid parameters"""
            pass
    class ListDataflowEndpointGroupsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_dataflow_endpoint_groups` for valid parameters"""
            pass
    class ListMissionProfilesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_mission_profiles` for valid parameters"""
            pass
    class ListGroundStationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_ground_stations` for valid parameters"""
            pass
    class ListSatellitesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_satellites` for valid parameters"""
            pass


    class CancelContactRequest(Mapping):
        pass
    
    class ContactIdResponse(Mapping):
        pass
    
    class CreateConfigRequest(Mapping):
        pass
    
    class ConfigIdResponse(Mapping):
        pass
    
    class ConfigTypeData(Mapping):
        pass
    
    class TagsMap(object):
        pass
    
    class CreateDataflowEndpointGroupRequest(Mapping):
        pass
    
    class DataflowEndpointGroupIdResponse(Mapping):
        pass
    
    class EndpointDetails(Mapping):
        pass
    
    class CreateMissionProfileRequest(Mapping):
        pass
    
    class MissionProfileIdResponse(Mapping):
        pass
    
    class DataflowEdge(object):
        pass
    
    class DeleteConfigRequest(Mapping):
        pass
    
    class DeleteDataflowEndpointGroupRequest(Mapping):
        pass
    
    class DeleteMissionProfileRequest(Mapping):
        pass
    
    class DescribeContactRequest(Mapping):
        pass
    
    class DescribeContactResponse(Mapping):
        pass
    
    class GetConfigRequest(Mapping):
        pass
    
    class GetConfigResponse(Mapping):
        pass
    
    class GetDataflowEndpointGroupRequest(Mapping):
        pass
    
    class GetDataflowEndpointGroupResponse(Mapping):
        pass
    
    class GetMinuteUsageRequest(Mapping):
        pass
    
    class GetMinuteUsageResponse(Mapping):
        pass
    
    class GetMissionProfileRequest(Mapping):
        pass
    
    class GetMissionProfileResponse(Mapping):
        pass
    
    class GetSatelliteRequest(Mapping):
        pass
    
    class GetSatelliteResponse(Mapping):
        pass
    
    class ListConfigsRequest(Mapping):
        pass
    
    class ListConfigsResponse(Mapping):
        pass
    
    class ListContactsRequest(Mapping):
        pass
    
    class ListContactsResponse(Mapping):
        pass
    
    class Timestamp(object):
        pass
    
    class ContactStatus(object):
        pass
    
    class ListDataflowEndpointGroupsRequest(Mapping):
        pass
    
    class ListDataflowEndpointGroupsResponse(Mapping):
        pass
    
    class ListGroundStationsRequest(Mapping):
        pass
    
    class ListGroundStationsResponse(Mapping):
        pass
    
    class ListMissionProfilesRequest(Mapping):
        pass
    
    class ListMissionProfilesResponse(Mapping):
        pass
    
    class ListSatellitesRequest(Mapping):
        pass
    
    class ListSatellitesResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class ReserveContactRequest(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class String(object):
        pass
    
    class UpdateConfigRequest(Mapping):
        pass
    
    class UpdateMissionProfileRequest(Mapping):
        pass
    
    def cancel_contact(self, contactId: str) -> ContactIdResponse:
        r"""Cancels a contact with a specified contact ID.

        :param self:
        :param contactId:  UUID of a contact.<br/>
        :return: contactId:  UUID of a contact.<br/>        """
        pass

    def create_config(self, name: str, configData: ConfigTypeData, tags: TagsMap=None) -> ConfigIdResponse:
        r"""Creates a <code>Config</code> with the specified <code>configData</code> parameters. Only one type of <code>configData</code> can be specified.

        :param self:
        :param tags:  Tags assigned to a <code>Config</code>.<br/>name:  Name of a <code>Config</code>.<br/>configData:  Parameters of a <code>Config</code>.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>uplinkEchoConfig</i> Information about an uplink echo <code>Config</code>. Parameters from the <code>AntennaUplinkConfig</code>, corresponding to the specified <code>AntennaUplinkConfigArn</code>, are used when this <code>UplinkEchoConfig</code> is used in a contact.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>uplinkEchoConfig</b>: Information about an uplink echo <code>Config</code>. Parameters from the <code>AntennaUplinkConfig</code>, corresponding to the specified <code>AntennaUplinkConfigArn</code>, are used when this <code>UplinkEchoConfig</code> is used in a contact.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>trackingConfig</i> Object that determines whether tracking should be used during a contact executed with this <code>Config</code> in the mission profile. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>trackingConfig</b>: Object that determines whether tracking should be used during a contact executed with this <code>Config</code> in the mission profile. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>s3RecordingConfig</i> Information about an S3 recording <code>Config</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>s3RecordingConfig</b>: Information about an S3 recording <code>Config</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>dataflowEndpointConfig</i> Information about the dataflow endpoint <code>Config</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>dataflowEndpointConfig</b>: Information about the dataflow endpoint <code>Config</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>antennaUplinkConfig</i> Information about how AWS Ground Station should conﬁgure an antenna for uplink during a contact.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>antennaUplinkConfig</b>: Information about how AWS Ground Station should conﬁgure an antenna for uplink during a contact.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>antennaDownlinkDemodDecodeConfig</i> Information about how AWS Ground Station should conﬁgure an antenna for downlink demod decode during a contact.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>antennaDownlinkDemodDecodeConfig</b>: Information about how AWS Ground Station should conﬁgure an antenna for downlink demod decode during a contact.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>antennaDownlinkConfig</i> Information about how AWS Ground Station should configure an antenna for downlink during a contact.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>antennaDownlinkConfig</b>: Information about how AWS Ground Station should configure an antenna for downlink during a contact.<br/>Object that describes a spectral <code>Config</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>spectrumConfig</b>: Object that describes a spectral <code>Config</code>.Information about the decode <code>Config</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>decodeConfig</b>: Information about the decode <code>Config</code>.Information about the uplink spectral <code>Config</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>spectrumConfig</b>: Information about the uplink spectral <code>Config</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>dataflowEndpointRegion</i> Region of a dataflow endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>dataflowEndpointName</i> Name of a dataflow endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>roleArn</i> ARN of the role Ground Station assumes to write data to the bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>prefix</i> S3 Key prefix to prefice data files.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>bucketArn</i> ARN of the bucket to record to.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>autotrack</i> Current setting for autotrack.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>enabled</i> Whether or not an uplink <code>Config</code> is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>antennaUplinkConfigArn</i> ARN of an uplink <code>Config</code>.<br/>
        :return: configType:  Type of a <code>Config</code>.<br/>configId:  UUID of a <code>Config</code>.<br/>configArn:  ARN of a <code>Config</code>.<br/>        """
        pass

    def create_dataflow_endpoint_group(self, endpointDetails: List[EndpointDetails], tags: TagsMap=None) -> DataflowEndpointGroupIdResponse:
        r"""Creates a <code>DataflowEndpoint</code> group containing the specified list of <code>DataflowEndpoint</code> objects. The <code>name</code> field in each endpoint is used in your mission profile <code>DataflowEndpointConfig</code> to specify which endpoints to use during a contact. When a contact uses multiple <code>DataflowEndpointConfig</code> objects, each <code>Config</code> must match a <code>DataflowEndpoint</code> in the same group.

        :param self:
        :param tags:  Tags of a dataflow endpoint group.<br/>endpointDetails:  Endpoint details of each endpoint in the dataflow endpoint group.<br/>
        :return: dataflowEndpointGroupId:  UUID of a dataflow endpoint group.<br/>        """
        pass

    def create_mission_profile(self, trackingConfigArn: str, name: str, minimumViableContactDurationSeconds: int, dataflowEdges: List[DataflowEdge], contactPostPassDurationSeconds: int=None, contactPrePassDurationSeconds: int=None, tags: TagsMap=None) -> MissionProfileIdResponse:
        r"""Creates a mission profile.  <code>dataflowEdges</code> is a list of lists of strings. Each lower level list of strings has two elements: a <i>from</i> ARN and a <i>to</i> ARN.

        :param self:
        :param trackingConfigArn:  ARN of a tracking <code>Config</code>.<br/>tags:  Tags assigned to a mission profile.<br/>name:  Name of a mission profile.<br/>minimumViableContactDurationSeconds:  Smallest amount of time in seconds that you’d like to see for an available contact. AWS Ground Station will not present you with contacts shorter than this duration.<br/>dataflowEdges:  A list of lists of ARNs. Each list of ARNs is an edge, with a <i>from</i> <code>Config</code> and a <i>to</i> <code>Config</code>.<br/>contactPrePassDurationSeconds:  Amount of time prior to contact start you’d like to receive a CloudWatch event indicating an upcoming pass.<br/>contactPostPassDurationSeconds:  Amount of time after a contact ends that you’d like to receive a CloudWatch event indicating the pass has finished.<br/>
        :return: missionProfileId:  UUID of a mission profile.<br/>        """
        pass

    def delete_config(self, configType: str, configId: str) -> ConfigIdResponse:
        r"""Deletes a <code>Config</code>.

        :param self:
        :param configType:  Type of a <code>Config</code>.<br/>configId:  UUID of a <code>Config</code>.<br/>
        :return: configType:  Type of a <code>Config</code>.<br/>configId:  UUID of a <code>Config</code>.<br/>configArn:  ARN of a <code>Config</code>.<br/>        """
        pass

    def delete_dataflow_endpoint_group(self, dataflowEndpointGroupId: str) -> DataflowEndpointGroupIdResponse:
        r"""Deletes a dataflow endpoint group.

        :param self:
        :param dataflowEndpointGroupId:  UUID of a dataflow endpoint group.<br/>
        :return: dataflowEndpointGroupId:  UUID of a dataflow endpoint group.<br/>        """
        pass

    def delete_mission_profile(self, missionProfileId: str) -> MissionProfileIdResponse:
        r"""Deletes a mission profile.

        :param self:
        :param missionProfileId:  UUID of a mission profile.<br/>
        :return: missionProfileId:  UUID of a mission profile.<br/>        """
        pass

    def describe_contact(self, contactId: str) -> DescribeContactResponse:
        r"""Describes an existing contact.

        :param self:
        :param contactId:  UUID of a contact.<br/>
        :return: tags:  Tags assigned to a contact.<br/>startTime:  Start time of a contact.<br/>satelliteArn:  ARN of a satellite.<br/>region:  Region of a contact.<br/>prePassStartTime:  Amount of time prior to contact start you’d like to receive a CloudWatch event indicating an upcoming pass.<br/>postPassEndTime:  Amount of time after a contact ends that you’d like to receive a CloudWatch event indicating the pass has finished.<br/>missionProfileArn:  ARN of a mission profile.<br/>maximumElevation:  Maximum elevation angle of a contact.:<br/>groundStation:  Ground station for a contact.<br/>errorMessage:  Error message for a contact.<br/>endTime:  End time of a contact.<br/>dataflowList:  List describing source and destination details for each dataflow edge.<br/>contactStatus:  Status of a contact.<br/>contactId:  UUID of a contact.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>value</i> Elevation angle value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>unit</i> Elevation angle units.<br/>        """
        pass

    def get_config(self, configType: str, configId: str) -> GetConfigResponse:
        r"""Returns <code>Config</code> information. Only one <code>Config</code> response can be returned.

        :param self:
        :param configType:  Type of a <code>Config</code>.<br/>configId:  UUID of a <code>Config</code>.<br/>
        :return: tags:  Tags assigned to a <code>Config</code>.<br/>name:  Name of a <code>Config</code>.<br/>configType:  Type of a <code>Config</code>.<br/>configId:  UUID of a <code>Config</code>.<br/>configData:  Data elements in a <code>Config</code>.:<br/>configArn:  ARN of a <code>Config</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>uplinkEchoConfig</i> Information about an uplink echo <code>Config</code>. Parameters from the <code>AntennaUplinkConfig</code>, corresponding to the specified <code>AntennaUplinkConfigArn</code>, are used when this <code>UplinkEchoConfig</code> is used in a contact.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>uplinkEchoConfig</b>: Information about an uplink echo <code>Config</code>. Parameters from the <code>AntennaUplinkConfig</code>, corresponding to the specified <code>AntennaUplinkConfigArn</code>, are used when this <code>UplinkEchoConfig</code> is used in a contact.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>trackingConfig</i> Object that determines whether tracking should be used during a contact executed with this <code>Config</code> in the mission profile. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>trackingConfig</b>: Object that determines whether tracking should be used during a contact executed with this <code>Config</code> in the mission profile. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>s3RecordingConfig</i> Information about an S3 recording <code>Config</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>s3RecordingConfig</b>: Information about an S3 recording <code>Config</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>dataflowEndpointConfig</i> Information about the dataflow endpoint <code>Config</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>dataflowEndpointConfig</b>: Information about the dataflow endpoint <code>Config</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>antennaUplinkConfig</i> Information about how AWS Ground Station should conﬁgure an antenna for uplink during a contact.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>antennaUplinkConfig</b>: Information about how AWS Ground Station should conﬁgure an antenna for uplink during a contact.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>antennaDownlinkDemodDecodeConfig</i> Information about how AWS Ground Station should conﬁgure an antenna for downlink demod decode during a contact.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>antennaDownlinkDemodDecodeConfig</b>: Information about how AWS Ground Station should conﬁgure an antenna for downlink demod decode during a contact.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>antennaDownlinkConfig</i> Information about how AWS Ground Station should configure an antenna for downlink during a contact.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>antennaDownlinkConfig</b>: Information about how AWS Ground Station should configure an antenna for downlink during a contact.<br/>Object that describes a spectral <code>Config</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>spectrumConfig</b>: Object that describes a spectral <code>Config</code>.Information about the decode <code>Config</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>decodeConfig</b>: Information about the decode <code>Config</code>.Information about the uplink spectral <code>Config</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>spectrumConfig</b>: Information about the uplink spectral <code>Config</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>dataflowEndpointRegion</i> Region of a dataflow endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>dataflowEndpointName</i> Name of a dataflow endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>roleArn</i> ARN of the role Ground Station assumes to write data to the bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>prefix</i> S3 Key prefix to prefice data files.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>bucketArn</i> ARN of the bucket to record to.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>autotrack</i> Current setting for autotrack.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>enabled</i> Whether or not an uplink <code>Config</code> is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>antennaUplinkConfigArn</i> ARN of an uplink <code>Config</code>.<br/>        """
        pass

    def get_dataflow_endpoint_group(self, dataflowEndpointGroupId: str) -> GetDataflowEndpointGroupResponse:
        r"""Returns the dataflow endpoint group.

        :param self:
        :param dataflowEndpointGroupId:  UUID of a dataflow endpoint group.<br/>
        :return: tags:  Tags assigned to a dataflow endpoint group.<br/>endpointsDetails:  Details of a dataflow endpoint.<br/>dataflowEndpointGroupId:  UUID of a dataflow endpoint group.<br/>dataflowEndpointGroupArn:  ARN of a dataflow endpoint group.<br/>        """
        pass

    def get_minute_usage(self, year: int, month: int) -> GetMinuteUsageResponse:
        r"""Returns the number of minutes used by account.

        :param self:
        :param year:  The year being requested, in the format of YYYY.<br/>month:  The month being requested, with a value of 1-12.<br/>
        :return: upcomingMinutesScheduled:  Upcoming minutes scheduled for an account, specific to the month being requested.<br/>totalScheduledMinutes:  Total scheduled minutes for an account, specific to the month being requested.<br/>totalReservedMinuteAllocation:  Total number of reserved minutes allocated, specific to the month being requested.<br/>isReservedMinutesCustomer:  Returns whether or not an account has signed up for the reserved minutes pricing plan, specific to the month being requested.<br/>estimatedMinutesRemaining:  Estimated number of minutes remaining for an account, specific to the month being requested.<br/>        """
        pass

    def get_mission_profile(self, missionProfileId: str) -> GetMissionProfileResponse:
        r"""Returns a mission profile.

        :param self:
        :param missionProfileId:  UUID of a mission profile.<br/>
        :return: trackingConfigArn:  ARN of a tracking <code>Config</code>.<br/>tags:  Tags assigned to a mission profile.<br/>region:  Region of a mission profile.<br/>name:  Name of a mission profile.<br/>missionProfileId:  UUID of a mission profile.<br/>missionProfileArn:  ARN of a mission profile.<br/>minimumViableContactDurationSeconds:  Smallest amount of time in seconds that you’d like to see for an available contact. AWS Ground Station will not present you with contacts shorter than this duration.<br/>dataflowEdges:  A list of lists of ARNs. Each list of ARNs is an edge, with a <i>from</i> <code>Config</code> and a <i>to</i> <code>Config</code>.<br/>contactPrePassDurationSeconds:  Amount of time prior to contact start you’d like to receive a CloudWatch event indicating an upcoming pass.<br/>contactPostPassDurationSeconds:  Amount of time after a contact ends that you’d like to receive a CloudWatch event indicating the pass has finished.<br/>        """
        pass

    def get_satellite(self, satelliteId: str) -> GetSatelliteResponse:
        r"""Returns a satellite.

        :param self:
        :param satelliteId:  UUID of a satellite.<br/>
        :return: satelliteId:  UUID of a satellite.<br/>satelliteArn:  ARN of a satellite.<br/>noradSatelliteID:  NORAD satellite ID number.<br/>groundStations:  A list of ground stations to which the satellite is on-boarded.<br/>        """
        pass

    def list_configs(self, maxResults: int=None, nextToken: str=None) -> ListConfigsResponse:
        r"""Returns a list of <code>Config</code> objects.

        :param self:
        :param nextToken:  Next token returned in the request of a previous <code>ListConfigs</code> call. Used to get the next page of results.<br/>maxResults:  Maximum number of <code>Configs</code> returned.<br/>
        :return: nextToken:  Next token returned in the response of a previous <code>ListConfigs</code> call. Used to get the next page of results.<br/>configList:  List of <code>Config</code> items.<br/>        """
        pass

    def list_contacts(self, statusList: List[ContactStatus], startTime: Timestamp, endTime: Timestamp, groundStation: str=None, maxResults: int=None, missionProfileArn: str=None, nextToken: str=None, satelliteArn: str=None) -> ListContactsResponse:
        r"""Returns a list of contacts. If <code>statusList</code> contains AVAILABLE, the request must include <code>groundStation</code>, <code>missionprofileArn</code>, and <code>satelliteArn</code>. 

        :param self:
        :param statusList:  Status of a contact reservation.<br/>startTime:  Start time of a contact.<br/>satelliteArn:  ARN of a satellite.<br/>nextToken:  Next token returned in the request of a previous <code>ListContacts</code> call. Used to get the next page of results.<br/>missionProfileArn:  ARN of a mission profile.<br/>maxResults:  Maximum number of contacts returned.<br/>groundStation:  Name of a ground station.<br/>endTime:  End time of a contact.<br/>
        :return: nextToken:  Next token returned in the response of a previous <code>ListContacts</code> call. Used to get the next page of results.<br/>contactList:  List of contacts.<br/>        """
        pass

    def list_dataflow_endpoint_groups(self, maxResults: int=None, nextToken: str=None) -> ListDataflowEndpointGroupsResponse:
        r"""Returns a list of <code>DataflowEndpoint</code> groups.

        :param self:
        :param nextToken:  Next token returned in the request of a previous <code>ListDataflowEndpointGroups</code> call. Used to get the next page of results.<br/>maxResults:  Maximum number of dataflow endpoint groups returned.<br/>
        :return: nextToken:  Next token returned in the response of a previous <code>ListDataflowEndpointGroups</code> call. Used to get the next page of results.<br/>dataflowEndpointGroupList:  A list of dataflow endpoint groups.<br/>        """
        pass

    def list_ground_stations(self, maxResults: int=None, nextToken: str=None, satelliteId: str=None) -> ListGroundStationsResponse:
        r"""Returns a list of ground stations. 

        :param self:
        :param satelliteId:  Satellite ID to retrieve on-boarded ground stations.<br/>nextToken:  Next token that can be supplied in the next call to get the next page of ground stations.<br/>maxResults:  Maximum number of ground stations returned.<br/>
        :return: nextToken:  Next token that can be supplied in the next call to get the next page of ground stations.<br/>groundStationList:  List of ground stations.<br/>        """
        pass

    def list_mission_profiles(self, maxResults: int=None, nextToken: str=None) -> ListMissionProfilesResponse:
        r"""Returns a list of mission profiles.

        :param self:
        :param nextToken:  Next token returned in the request of a previous <code>ListMissionProfiles</code> call. Used to get the next page of results.<br/>maxResults:  Maximum number of mission profiles returned.<br/>
        :return: nextToken:  Next token returned in the response of a previous <code>ListMissionProfiles</code> call. Used to get the next page of results.<br/>missionProfileList:  List of mission profiles.<br/>        """
        pass

    def list_satellites(self, maxResults: int=None, nextToken: str=None) -> ListSatellitesResponse:
        r"""Returns a list of satellites.

        :param self:
        :param nextToken:  Next token that can be supplied in the next call to get the next page of satellites.<br/>maxResults:  Maximum number of satellites returned.<br/>
        :return: satellites:  List of satellites.<br/>nextToken:  Next token that can be supplied in the next call to get the next page of satellites.<br/>        """
        pass

    def list_tags_for_resource(self, resourceArn: str) -> ListTagsForResourceResponse:
        r"""Returns a list of tags for a specified resource.

        :param self:
        :param resourceArn:  ARN of a resource.<br/>
        :return: tags:  Tags assigned to a resource.<br/>        """
        pass

    def reserve_contact(self, startTime: Timestamp, satelliteArn: str, missionProfileArn: str, groundStation: str, endTime: Timestamp, tags: TagsMap=None) -> ContactIdResponse:
        r"""Reserves a contact using specified parameters.

        :param self:
        :param tags:  Tags assigned to a contact.<br/>startTime:  Start time of a contact.<br/>satelliteArn:  ARN of a satellite<br/>missionProfileArn:  ARN of a mission profile.<br/>groundStation:  Name of a ground station.<br/>endTime:  End time of a contact.<br/>
        :return: contactId:  UUID of a contact.<br/>        """
        pass

    def tag_resource(self, tags: TagsMap, resourceArn: str) -> TagResourceResponse:
        r"""Assigns a tag to a resource.

        :param self:
        :param tags:  Tags assigned to a resource.<br/>resourceArn:  ARN of a resource tag.<br/>
        :return:         """
        pass

    def untag_resource(self, tagKeys: List[String], resourceArn: str) -> UntagResourceResponse:
        r"""Deassigns a resource tag.

        :param self:
        :param tagKeys:  Keys of a resource tag.<br/>resourceArn:  ARN of a resource.<br/>
        :return:         """
        pass

    def update_config(self, name: str, configType: str, configId: str, configData: ConfigTypeData) -> ConfigIdResponse:
        r"""Updates the <code>Config</code> used when scheduling contacts. Updating a <code>Config</code> will not update the execution parameters for existing future contacts scheduled with this <code>Config</code>.

        :param self:
        :param name:  Name of a <code>Config</code>.<br/>configType:  Type of a <code>Config</code>.<br/>configId:  UUID of a <code>Config</code>.<br/>configData:  Parameters of a <code>Config</code>.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>uplinkEchoConfig</i> Information about an uplink echo <code>Config</code>. Parameters from the <code>AntennaUplinkConfig</code>, corresponding to the specified <code>AntennaUplinkConfigArn</code>, are used when this <code>UplinkEchoConfig</code> is used in a contact.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>uplinkEchoConfig</b>: Information about an uplink echo <code>Config</code>. Parameters from the <code>AntennaUplinkConfig</code>, corresponding to the specified <code>AntennaUplinkConfigArn</code>, are used when this <code>UplinkEchoConfig</code> is used in a contact.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>trackingConfig</i> Object that determines whether tracking should be used during a contact executed with this <code>Config</code> in the mission profile. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>trackingConfig</b>: Object that determines whether tracking should be used during a contact executed with this <code>Config</code> in the mission profile. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>s3RecordingConfig</i> Information about an S3 recording <code>Config</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>s3RecordingConfig</b>: Information about an S3 recording <code>Config</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>dataflowEndpointConfig</i> Information about the dataflow endpoint <code>Config</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>dataflowEndpointConfig</b>: Information about the dataflow endpoint <code>Config</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>antennaUplinkConfig</i> Information about how AWS Ground Station should conﬁgure an antenna for uplink during a contact.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>antennaUplinkConfig</b>: Information about how AWS Ground Station should conﬁgure an antenna for uplink during a contact.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>antennaDownlinkDemodDecodeConfig</i> Information about how AWS Ground Station should conﬁgure an antenna for downlink demod decode during a contact.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>antennaDownlinkDemodDecodeConfig</b>: Information about how AWS Ground Station should conﬁgure an antenna for downlink demod decode during a contact.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>antennaDownlinkConfig</i> Information about how AWS Ground Station should configure an antenna for downlink during a contact.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>antennaDownlinkConfig</b>: Information about how AWS Ground Station should configure an antenna for downlink during a contact.<br/>Object that describes a spectral <code>Config</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>spectrumConfig</b>: Object that describes a spectral <code>Config</code>.Information about the decode <code>Config</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>decodeConfig</b>: Information about the decode <code>Config</code>.Information about the uplink spectral <code>Config</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>spectrumConfig</b>: Information about the uplink spectral <code>Config</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>dataflowEndpointRegion</i> Region of a dataflow endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>dataflowEndpointName</i> Name of a dataflow endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>roleArn</i> ARN of the role Ground Station assumes to write data to the bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>prefix</i> S3 Key prefix to prefice data files.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>bucketArn</i> ARN of the bucket to record to.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>autotrack</i> Current setting for autotrack.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>enabled</i> Whether or not an uplink <code>Config</code> is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>antennaUplinkConfigArn</i> ARN of an uplink <code>Config</code>.<br/>
        :return: configType:  Type of a <code>Config</code>.<br/>configId:  UUID of a <code>Config</code>.<br/>configArn:  ARN of a <code>Config</code>.<br/>        """
        pass

    def update_mission_profile(self, missionProfileId: str, contactPostPassDurationSeconds: int=None, contactPrePassDurationSeconds: int=None, dataflowEdges: List[DataflowEdge]=None, minimumViableContactDurationSeconds: int=None, name: str=None, trackingConfigArn: str=None) -> MissionProfileIdResponse:
        r"""Updates a mission profile. Updating a mission profile will not update the execution parameters for existing future contacts.

        :param self:
        :param trackingConfigArn:  ARN of a tracking <code>Config</code>.<br/>name:  Name of a mission profile.<br/>missionProfileId:  UUID of a mission profile.<br/>minimumViableContactDurationSeconds:  Smallest amount of time in seconds that you’d like to see for an available contact. AWS Ground Station will not present you with contacts shorter than this duration.<br/>dataflowEdges:  A list of lists of ARNs. Each list of ARNs is an edge, with a <i>from</i> <code>Config</code> and a <i>to</i> <code>Config</code>.<br/>contactPrePassDurationSeconds:  Amount of time after a contact ends that you’d like to receive a CloudWatch event indicating the pass has finished.<br/>contactPostPassDurationSeconds:  Amount of time after a contact ends that you’d like to receive a CloudWatch event indicating the pass has finished.<br/>
        :return: missionProfileId:  UUID of a mission profile.<br/>        """
        pass





class GuardDuty(BaseClient):
    r"""Amazon GuardDuty is a continuous security monitoring service that analyzes and processes the following data sources: VPC Flow Logs, AWS CloudTrail event logs, and DNS logs. It uses threat intelligence feeds (such as lists of malicious IPs and domains) and machine learning to identify unexpected, potentially unauthorized, and malicious activity within your AWS environment. This can include issues like escalations of privileges, uses of exposed credentials, or communication with malicious IPs, URLs, or domains. For example, GuardDuty can detect compromised EC2 instances that serve malware or mine bitcoin.  GuardDuty also monitors AWS account access behavior for signs of compromise. Some examples of this are unauthorized infrastructure deployments such as EC2 instances deployed in a Region that has never been used, or unusual API calls like a password policy change to reduce password strength.  GuardDuty informs you of the status of your AWS environment by producing security findings that you can view in the GuardDuty console or through Amazon CloudWatch events. For more information, see the <i> <a href="https://docs.aws.amazon.com/guardduty/latest/ug/what-is-guardduty.html">Amazon GuardDuty User Guide</a> </i>. """


    class ListDetectorsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_detectors` for valid parameters"""
            pass
    class ListFindingsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_findings` for valid parameters"""
            pass
    class ListIPSetsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_ip_sets` for valid parameters"""
            pass
    class ListThreatIntelSetsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_threat_intel_sets` for valid parameters"""
            pass
    class ListInvitationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_invitations` for valid parameters"""
            pass
    class ListMembersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_members` for valid parameters"""
            pass
    class ListFiltersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_filters` for valid parameters"""
            pass
    class ListOrganizationAdminAccountsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_organization_admin_accounts` for valid parameters"""
            pass


    class AcceptInvitationRequest(Mapping):
        pass
    
    class AcceptInvitationResponse(Mapping):
        pass
    
    class ArchiveFindingsRequest(Mapping):
        pass
    
    class ArchiveFindingsResponse(Mapping):
        pass
    
    class FindingId(object):
        pass
    
    class CreateDetectorRequest(Mapping):
        pass
    
    class CreateDetectorResponse(Mapping):
        pass
    
    class Boolean(object):
        pass
    
    class DataSourceConfigurations(Mapping):
        pass
    
    class TagMap(object):
        pass
    
    class CreateFilterRequest(Mapping):
        pass
    
    class CreateFilterResponse(Mapping):
        pass
    
    class FindingCriteria(Mapping):
        pass
    
    class CreateIPSetRequest(Mapping):
        pass
    
    class CreateIPSetResponse(Mapping):
        pass
    
    class CreateMembersRequest(Mapping):
        pass
    
    class CreateMembersResponse(Mapping):
        pass
    
    class AccountDetail(Mapping):
        pass
    
    class CreatePublishingDestinationRequest(Mapping):
        pass
    
    class CreatePublishingDestinationResponse(Mapping):
        pass
    
    class DestinationProperties(Mapping):
        pass
    
    class CreateSampleFindingsRequest(Mapping):
        pass
    
    class CreateSampleFindingsResponse(Mapping):
        pass
    
    class FindingType(object):
        pass
    
    class CreateThreatIntelSetRequest(Mapping):
        pass
    
    class CreateThreatIntelSetResponse(Mapping):
        pass
    
    class DeclineInvitationsRequest(Mapping):
        pass
    
    class DeclineInvitationsResponse(Mapping):
        pass
    
    class AccountId(object):
        pass
    
    class DeleteDetectorRequest(Mapping):
        pass
    
    class DeleteDetectorResponse(Mapping):
        pass
    
    class DeleteFilterRequest(Mapping):
        pass
    
    class DeleteFilterResponse(Mapping):
        pass
    
    class DeleteIPSetRequest(Mapping):
        pass
    
    class DeleteIPSetResponse(Mapping):
        pass
    
    class DeleteInvitationsRequest(Mapping):
        pass
    
    class DeleteInvitationsResponse(Mapping):
        pass
    
    class DeleteMembersRequest(Mapping):
        pass
    
    class DeleteMembersResponse(Mapping):
        pass
    
    class DeletePublishingDestinationRequest(Mapping):
        pass
    
    class DeletePublishingDestinationResponse(Mapping):
        pass
    
    class DeleteThreatIntelSetRequest(Mapping):
        pass
    
    class DeleteThreatIntelSetResponse(Mapping):
        pass
    
    class DescribeOrganizationConfigurationRequest(Mapping):
        pass
    
    class DescribeOrganizationConfigurationResponse(Mapping):
        pass
    
    class DescribePublishingDestinationRequest(Mapping):
        pass
    
    class DescribePublishingDestinationResponse(Mapping):
        pass
    
    class DisableOrganizationAdminAccountRequest(Mapping):
        pass
    
    class DisableOrganizationAdminAccountResponse(Mapping):
        pass
    
    class DisassociateFromMasterAccountRequest(Mapping):
        pass
    
    class DisassociateFromMasterAccountResponse(Mapping):
        pass
    
    class DisassociateMembersRequest(Mapping):
        pass
    
    class DisassociateMembersResponse(Mapping):
        pass
    
    class EnableOrganizationAdminAccountRequest(Mapping):
        pass
    
    class EnableOrganizationAdminAccountResponse(Mapping):
        pass
    
    class GetDetectorRequest(Mapping):
        pass
    
    class GetDetectorResponse(Mapping):
        pass
    
    class GetFilterRequest(Mapping):
        pass
    
    class GetFilterResponse(Mapping):
        pass
    
    class GetFindingsRequest(Mapping):
        pass
    
    class GetFindingsResponse(Mapping):
        pass
    
    class SortCriteria(Mapping):
        pass
    
    class GetFindingsStatisticsRequest(Mapping):
        pass
    
    class GetFindingsStatisticsResponse(Mapping):
        pass
    
    class FindingStatisticType(object):
        pass
    
    class GetIPSetRequest(Mapping):
        pass
    
    class GetIPSetResponse(Mapping):
        pass
    
    class GetInvitationsCountRequest(Mapping):
        pass
    
    class GetInvitationsCountResponse(Mapping):
        pass
    
    class GetMasterAccountRequest(Mapping):
        pass
    
    class GetMasterAccountResponse(Mapping):
        pass
    
    class GetMemberDetectorsRequest(Mapping):
        pass
    
    class GetMemberDetectorsResponse(Mapping):
        pass
    
    class GetMembersRequest(Mapping):
        pass
    
    class GetMembersResponse(Mapping):
        pass
    
    class GetThreatIntelSetRequest(Mapping):
        pass
    
    class GetThreatIntelSetResponse(Mapping):
        pass
    
    class GetUsageStatisticsRequest(Mapping):
        pass
    
    class GetUsageStatisticsResponse(Mapping):
        pass
    
    class UsageCriteria(Mapping):
        pass
    
    class InviteMembersRequest(Mapping):
        pass
    
    class InviteMembersResponse(Mapping):
        pass
    
    class ListDetectorsRequest(Mapping):
        pass
    
    class ListDetectorsResponse(Mapping):
        pass
    
    class ListFiltersRequest(Mapping):
        pass
    
    class ListFiltersResponse(Mapping):
        pass
    
    class ListFindingsRequest(Mapping):
        pass
    
    class ListFindingsResponse(Mapping):
        pass
    
    class ListIPSetsRequest(Mapping):
        pass
    
    class ListIPSetsResponse(Mapping):
        pass
    
    class ListInvitationsRequest(Mapping):
        pass
    
    class ListInvitationsResponse(Mapping):
        pass
    
    class ListMembersRequest(Mapping):
        pass
    
    class ListMembersResponse(Mapping):
        pass
    
    class ListOrganizationAdminAccountsRequest(Mapping):
        pass
    
    class ListOrganizationAdminAccountsResponse(Mapping):
        pass
    
    class ListPublishingDestinationsRequest(Mapping):
        pass
    
    class ListPublishingDestinationsResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class ListThreatIntelSetsRequest(Mapping):
        pass
    
    class ListThreatIntelSetsResponse(Mapping):
        pass
    
    class StartMonitoringMembersRequest(Mapping):
        pass
    
    class StartMonitoringMembersResponse(Mapping):
        pass
    
    class StopMonitoringMembersRequest(Mapping):
        pass
    
    class StopMonitoringMembersResponse(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UnarchiveFindingsRequest(Mapping):
        pass
    
    class UnarchiveFindingsResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateDetectorRequest(Mapping):
        pass
    
    class UpdateDetectorResponse(Mapping):
        pass
    
    class UpdateFilterRequest(Mapping):
        pass
    
    class UpdateFilterResponse(Mapping):
        pass
    
    class UpdateFindingsFeedbackRequest(Mapping):
        pass
    
    class UpdateFindingsFeedbackResponse(Mapping):
        pass
    
    class UpdateIPSetRequest(Mapping):
        pass
    
    class UpdateIPSetResponse(Mapping):
        pass
    
    class UpdateMemberDetectorsRequest(Mapping):
        pass
    
    class UpdateMemberDetectorsResponse(Mapping):
        pass
    
    class UpdateOrganizationConfigurationRequest(Mapping):
        pass
    
    class UpdateOrganizationConfigurationResponse(Mapping):
        pass
    
    class OrganizationDataSourceConfigurations(Mapping):
        pass
    
    class UpdatePublishingDestinationRequest(Mapping):
        pass
    
    class UpdatePublishingDestinationResponse(Mapping):
        pass
    
    class UpdateThreatIntelSetRequest(Mapping):
        pass
    
    class UpdateThreatIntelSetResponse(Mapping):
        pass
    
    def accept_invitation(self, InvitationId: str, MasterId: str, DetectorId: str) -> AcceptInvitationResponse:
        r"""Accepts the invitation to be monitored by a GuardDuty administrator account.

        :param self:
        :param InvitationId:  The value that is used to validate the administrator account to the member account.<br/>MasterId:  The account ID of the GuardDuty administrator account whose invitation you're accepting.<br/>DetectorId:  The unique ID of the detector of the GuardDuty member account.<br/>
        :return:         """
        pass

    def archive_findings(self, FindingIds: List[FindingId], DetectorId: str) -> ArchiveFindingsResponse:
        r"""Archives GuardDuty findings that are specified by the list of finding IDs. <note> Only the administrator account can archive findings. Member accounts don't have permission to archive findings from their accounts. </note>

        :param self:
        :param FindingIds:  The IDs of the findings that you want to archive.<br/>DetectorId:  The ID of the detector that specifies the GuardDuty service whose findings you want to archive.<br/>
        :return:         """
        pass

    def create_detector(self, Enable: Boolean, ClientToken: str=None, FindingPublishingFrequency: str=None, DataSources: DataSourceConfigurations=None, Tags: TagMap=None) -> CreateDetectorResponse:
        r"""Creates a single Amazon GuardDuty detector. A detector is a resource that represents the GuardDuty service. To start using GuardDuty, you must create a detector in each Region where you enable the service. You can have only one detector per account per Region. All data sources are enabled in a new detector by default.

        :param self:
        :param Tags:  The tags to be added to a new detector resource.<br/>DataSources:  Describes which data sources will be enabled for the detector.:<br/>FindingPublishingFrequency:  A value that specifies how frequently updated findings are exported.<br/>ClientToken:  The idempotency token for the create request.<br/>Enable:  A Boolean value that specifies whether the detector is to be enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Logs</i> Describes whether S3 data event logs are enabled as a data source.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3Logs</b>: Describes whether S3 data event logs are enabled as a data source.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enable</i>  The status of S3 data event logs as a data source.<br/>
        :return: DetectorId:  The unique ID of the created detector.<br/>        """
        pass

    def create_filter(self, FindingCriteria: FindingCriteria, Name: str, DetectorId: str, Description: str=None, Action: str=None, Rank: int=None, ClientToken: str=None, Tags: TagMap=None) -> CreateFilterResponse:
        r"""Creates a filter using the specified finding criteria.

        :param self:
        :param Tags:  The tags to be added to a new filter resource.<br/>ClientToken:  The idempotency token for the create request.<br/>FindingCriteria:  Represents the criteria to be used in the filter for querying findings. You can only use the following attributes to query findings: <ul> <li> accountId </li> <li> region </li> <li> confidence </li> <li> id </li> <li> resource.accessKeyDetails.accessKeyId </li> <li> resource.accessKeyDetails.principalId </li> <li> resource.accessKeyDetails.userName </li> <li> resource.accessKeyDetails.userType </li> <li> resource.instanceDetails.iamInstanceProfile.id </li> <li> resource.instanceDetails.imageId </li> <li> resource.instanceDetails.instanceId </li> <li> resource.instanceDetails.outpostArn </li> <li> resource.instanceDetails.networkInterfaces.ipv6Addresses </li> <li> resource.instanceDetails.networkInterfaces.privateIpAddresses.privateIpAddress </li> <li> resource.instanceDetails.networkInterfaces.publicDnsName </li> <li> resource.instanceDetails.networkInterfaces.publicIp </li> <li> resource.instanceDetails.networkInterfaces.securityGroups.groupId </li> <li> resource.instanceDetails.networkInterfaces.securityGroups.groupName </li> <li> resource.instanceDetails.networkInterfaces.subnetId </li> <li> resource.instanceDetails.networkInterfaces.vpcId </li> <li> resource.instanceDetails.tags.key </li> <li> resource.instanceDetails.tags.value </li> <li> resource.resourceType </li> <li> service.action.actionType </li> <li> service.action.awsApiCallAction.api </li> <li> service.action.awsApiCallAction.callerType </li> <li> service.action.awsApiCallAction.errorCode </li> <li> service.action.awsApiCallAction.remoteIpDetails.city.cityName </li> <li> service.action.awsApiCallAction.remoteIpDetails.country.countryName </li> <li> service.action.awsApiCallAction.remoteIpDetails.ipAddressV4 </li> <li> service.action.awsApiCallAction.remoteIpDetails.organization.asn </li> <li> service.action.awsApiCallAction.remoteIpDetails.organization.asnOrg </li> <li> service.action.awsApiCallAction.serviceName </li> <li> service.action.dnsRequestAction.domain </li> <li> service.action.networkConnectionAction.blocked </li> <li> service.action.networkConnectionAction.connectionDirection </li> <li> service.action.networkConnectionAction.localPortDetails.port </li> <li> service.action.networkConnectionAction.protocol </li> <li> service.action.networkConnectionAction.localIpDetails.ipAddressV4 </li> <li> service.action.networkConnectionAction.remoteIpDetails.city.cityName </li> <li> service.action.networkConnectionAction.remoteIpDetails.country.countryName </li> <li> service.action.networkConnectionAction.remoteIpDetails.ipAddressV4 </li> <li> service.action.networkConnectionAction.remoteIpDetails.organization.asn </li> <li> service.action.networkConnectionAction.remoteIpDetails.organization.asnOrg </li> <li> service.action.networkConnectionAction.remotePortDetails.port </li> <li> service.additionalInfo.threatListName </li> <li> service.archived When this attribute is set to TRUE, only archived findings are listed. When it's set to FALSE, only unarchived findings are listed. When this attribute is not set, all existing findings are listed. </li> <li> service.resourceRole </li> <li> severity </li> <li> type </li> <li> updatedAt Type: ISO 8601 string format: YYYY-MM-DDTHH:MM:SS.SSSZ or YYYY-MM-DDTHH:MM:SSZ depending on whether the value contains milliseconds. </li> </ul>:<br/>Rank:  Specifies the position of the filter in the list of current filters. Also specifies the order in which this filter is applied to the findings.<br/>Action:  Specifies the action that is to be applied to the findings that match the filter.<br/>Description:  The description of the filter.<br/>Name:  The name of the filter. Minimum length of 3. Maximum length of 64. Valid characters include alphanumeric characters, dot (.), underscore (_), and dash (-). Spaces are not allowed.<br/>DetectorId:  The ID of the detector belonging to the GuardDuty account that you want to create a filter for.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Criterion</i> Represents a map of finding properties that match specified conditions and values when querying findings.<br/>
        :return: Name:  The name of the successfully created filter.<br/>        """
        pass

    def create_ip_set(self, Activate: Boolean, Location: str, Format: str, Name: str, DetectorId: str, ClientToken: str=None, Tags: TagMap=None) -> CreateIPSetResponse:
        r"""Creates a new IPSet, which is called a trusted IP list in the console user interface. An IPSet is a list of IP addresses that are trusted for secure communication with AWS infrastructure and applications. GuardDuty doesn't generate findings for IP addresses that are included in IPSets. Only users from the administrator account can use this operation.

        :param self:
        :param Tags:  The tags to be added to a new IP set resource.<br/>ClientToken:  The idempotency token for the create request.<br/>Activate:  A Boolean value that indicates whether GuardDuty is to start using the uploaded IPSet.<br/>Location:  The URI of the file that contains the IPSet. For example: https://s3.us-west-2.amazonaws.com/my-bucket/my-object-key.<br/>Format:  The format of the file that contains the IPSet.<br/>Name:  The user-friendly name to identify the IPSet.  Allowed characters are alphanumerics, spaces, hyphens (-), and underscores (_).<br/>DetectorId:  The unique ID of the detector of the GuardDuty account that you want to create an IPSet for.<br/>
        :return: IpSetId:  The ID of the IPSet resource.<br/>        """
        pass

    def create_members(self, AccountDetails: List[AccountDetail], DetectorId: str) -> CreateMembersResponse:
        r"""Creates member accounts of the current AWS account by specifying a list of AWS account IDs. This step is a prerequisite for managing the associated member accounts either by invitation or through an organization. When using <code>Create Members</code> as an organizations delegated administrator this action will enable GuardDuty in the added member accounts, with the exception of the organization delegated administrator account, which must enable GuardDuty prior to being added as a member. If you are adding accounts by invitation use this action after GuardDuty has been enabled in potential member accounts and before using <a href="https://docs.aws.amazon.com/guardduty/latest/APIReference/API_InviteMembers.html"> <code>Invite Members</code> </a>.

        :param self:
        :param AccountDetails:  A list of account ID and email address pairs of the accounts that you want to associate with the GuardDuty administrator account.<br/>DetectorId:  The unique ID of the detector of the GuardDuty account that you want to associate member accounts with.<br/>
        :return: UnprocessedAccounts:  A list of objects that include the <code>accountIds</code> of the unprocessed accounts and a result string that explains why each was unprocessed.<br/>        """
        pass

    def create_publishing_destination(self, DestinationProperties: DestinationProperties, DestinationType: str, DetectorId: str, ClientToken: str=None) -> CreatePublishingDestinationResponse:
        r"""Creates a publishing destination to export findings to. The resource to export findings to must exist before you use this operation.

        :param self:
        :param ClientToken:  The idempotency token for the request.<br/>DestinationProperties:  The properties of the publishing destination, including the ARNs for the destination and the KMS key used for encryption.:<br/>DestinationType:  The type of resource for the publishing destination. Currently only Amazon S3 buckets are supported.<br/>DetectorId:  The ID of the GuardDuty detector associated with the publishing destination.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyArn</i> The ARN of the KMS key to use for encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DestinationArn</i> The ARN of the resource to publish to.<br/>
        :return: DestinationId:  The ID of the publishing destination that is created.<br/>        """
        pass

    def create_sample_findings(self, DetectorId: str, FindingTypes: List[FindingType]=None) -> CreateSampleFindingsResponse:
        r"""Generates example findings of types specified by the list of finding types. If 'NULL' is specified for <code>findingTypes</code>, the API generates example findings of all supported finding types.

        :param self:
        :param FindingTypes:  The types of sample findings to generate.<br/>DetectorId:  The ID of the detector to create sample findings for.<br/>
        :return:         """
        pass

    def create_threat_intel_set(self, Activate: Boolean, Location: str, Format: str, Name: str, DetectorId: str, ClientToken: str=None, Tags: TagMap=None) -> CreateThreatIntelSetResponse:
        r"""Creates a new ThreatIntelSet. ThreatIntelSets consist of known malicious IP addresses. GuardDuty generates findings based on ThreatIntelSets. Only users of the administrator account can use this operation.

        :param self:
        :param Tags:  The tags to be added to a new threat list resource.<br/>ClientToken:  The idempotency token for the create request.<br/>Activate:  A Boolean value that indicates whether GuardDuty is to start using the uploaded ThreatIntelSet.<br/>Location:  The URI of the file that contains the ThreatIntelSet. For example: https://s3.us-west-2.amazonaws.com/my-bucket/my-object-key.<br/>Format:  The format of the file that contains the ThreatIntelSet.<br/>Name:  A user-friendly ThreatIntelSet name displayed in all findings that are generated by activity that involves IP addresses included in this ThreatIntelSet.<br/>DetectorId:  The unique ID of the detector of the GuardDuty account that you want to create a threatIntelSet for.<br/>
        :return: ThreatIntelSetId:  The ID of the ThreatIntelSet resource.<br/>        """
        pass

    def decline_invitations(self, AccountIds: List[AccountId]) -> DeclineInvitationsResponse:
        r"""Declines invitations sent to the current member account by AWS accounts specified by their account IDs.

        :param self:
        :param AccountIds:  A list of account IDs of the AWS accounts that sent invitations to the current member account that you want to decline invitations from.<br/>
        :return: UnprocessedAccounts:  A list of objects that contain the unprocessed account and a result string that explains why it was unprocessed.<br/>        """
        pass

    def delete_detector(self, DetectorId: str) -> DeleteDetectorResponse:
        r"""Deletes an Amazon GuardDuty detector that is specified by the detector ID.

        :param self:
        :param DetectorId:  The unique ID of the detector that you want to delete.<br/>
        :return:         """
        pass

    def delete_filter(self, FilterName: str, DetectorId: str) -> DeleteFilterResponse:
        r"""Deletes the filter specified by the filter name.

        :param self:
        :param FilterName:  The name of the filter that you want to delete.<br/>DetectorId:  The unique ID of the detector that the filter is associated with.<br/>
        :return:         """
        pass

    def delete_ip_set(self, IpSetId: str, DetectorId: str) -> DeleteIPSetResponse:
        r"""Deletes the IPSet specified by the <code>ipSetId</code>. IPSets are called trusted IP lists in the console user interface.

        :param self:
        :param IpSetId:  The unique ID of the IPSet to delete.<br/>DetectorId:  The unique ID of the detector associated with the IPSet.<br/>
        :return:         """
        pass

    def delete_invitations(self, AccountIds: List[AccountId]) -> DeleteInvitationsResponse:
        r"""Deletes invitations sent to the current member account by AWS accounts specified by their account IDs.

        :param self:
        :param AccountIds:  A list of account IDs of the AWS accounts that sent invitations to the current member account that you want to delete invitations from.<br/>
        :return: UnprocessedAccounts:  A list of objects that contain the unprocessed account and a result string that explains why it was unprocessed.<br/>        """
        pass

    def delete_members(self, AccountIds: List[AccountId], DetectorId: str) -> DeleteMembersResponse:
        r"""Deletes GuardDuty member accounts (to the current GuardDuty administrator account) specified by the account IDs.

        :param self:
        :param AccountIds:  A list of account IDs of the GuardDuty member accounts that you want to delete.<br/>DetectorId:  The unique ID of the detector of the GuardDuty account whose members you want to delete.<br/>
        :return: UnprocessedAccounts:  The accounts that could not be processed.<br/>        """
        pass

    def delete_publishing_destination(self, DestinationId: str, DetectorId: str) -> DeletePublishingDestinationResponse:
        r"""Deletes the publishing definition with the specified <code>destinationId</code>.

        :param self:
        :param DestinationId:  The ID of the publishing destination to delete.<br/>DetectorId:  The unique ID of the detector associated with the publishing destination to delete.<br/>
        :return:         """
        pass

    def delete_threat_intel_set(self, ThreatIntelSetId: str, DetectorId: str) -> DeleteThreatIntelSetResponse:
        r"""Deletes the ThreatIntelSet specified by the ThreatIntelSet ID.

        :param self:
        :param ThreatIntelSetId:  The unique ID of the threatIntelSet that you want to delete.<br/>DetectorId:  The unique ID of the detector that the threatIntelSet is associated with.<br/>
        :return:         """
        pass

    def describe_organization_configuration(self, DetectorId: str) -> DescribeOrganizationConfigurationResponse:
        r"""Returns information about the account selected as the delegated administrator for GuardDuty.

        :param self:
        :param DetectorId:  The ID of the detector to retrieve information about the delegated administrator from.<br/>
        :return: DataSources:  Describes which data sources are enabled automatically for member accounts.:<br/>MemberAccountLimitReached:  Indicates whether the maximum number of allowed member accounts are already associated with the delegated administrator account for your organization.<br/>AutoEnable:  Indicates whether GuardDuty is automatically enabled for accounts added to the organization.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Logs</i> Describes whether S3 data event logs are enabled as a data source.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3Logs</b>: Describes whether S3 data event logs are enabled as a data source.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoEnable</i> A value that describes whether S3 data event logs are automatically enabled for new members of the organization.<br/>        """
        pass

    def describe_publishing_destination(self, DestinationId: str, DetectorId: str) -> DescribePublishingDestinationResponse:
        r"""Returns information about the publishing destination specified by the provided <code>destinationId</code>.

        :param self:
        :param DestinationId:  The ID of the publishing destination to retrieve.<br/>DetectorId:  The unique ID of the detector associated with the publishing destination to retrieve.<br/>
        :return: DestinationProperties:  A <code>DestinationProperties</code> object that includes the <code>DestinationArn</code> and <code>KmsKeyArn</code> of the publishing destination.:<br/>PublishingFailureStartTimestamp:  The time, in epoch millisecond format, at which GuardDuty was first unable to publish findings to the destination.<br/>Status:  The status of the publishing destination.<br/>DestinationType:  The type of publishing destination. Currently, only Amazon S3 buckets are supported.<br/>DestinationId:  The ID of the publishing destination.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyArn</i> The ARN of the KMS key to use for encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DestinationArn</i> The ARN of the resource to publish to.<br/>        """
        pass

    def disable_organization_admin_account(self, AdminAccountId: str) -> DisableOrganizationAdminAccountResponse:
        r"""Disables an AWS account within the Organization as the GuardDuty delegated administrator.

        :param self:
        :param AdminAccountId:  The AWS Account ID for the organizations account to be disabled as a GuardDuty delegated administrator.<br/>
        :return:         """
        pass

    def disassociate_from_master_account(self, DetectorId: str) -> DisassociateFromMasterAccountResponse:
        r"""Disassociates the current GuardDuty member account from its administrator account.

        :param self:
        :param DetectorId:  The unique ID of the detector of the GuardDuty member account.<br/>
        :return:         """
        pass

    def disassociate_members(self, AccountIds: List[AccountId], DetectorId: str) -> DisassociateMembersResponse:
        r"""Disassociates GuardDuty member accounts (to the current GuardDuty administrator account) specified by the account IDs.

        :param self:
        :param AccountIds:  A list of account IDs of the GuardDuty member accounts that you want to disassociate from the administrator account.<br/>DetectorId:  The unique ID of the detector of the GuardDuty account whose members you want to disassociate from the administrator account.<br/>
        :return: UnprocessedAccounts:  A list of objects that contain the unprocessed account and a result string that explains why it was unprocessed.<br/>        """
        pass

    def enable_organization_admin_account(self, AdminAccountId: str) -> EnableOrganizationAdminAccountResponse:
        r"""Enables an AWS account within the organization as the GuardDuty delegated administrator.

        :param self:
        :param AdminAccountId:  The AWS Account ID for the organization account to be enabled as a GuardDuty delegated administrator.<br/>
        :return:         """
        pass

    def get_detector(self, DetectorId: str) -> GetDetectorResponse:
        r"""Retrieves an Amazon GuardDuty detector specified by the detectorId.

        :param self:
        :param DetectorId:  The unique ID of the detector that you want to get.<br/>
        :return: Tags:  The tags of the detector resource.<br/>DataSources:  Describes which data sources are enabled for the detector.:<br/>UpdatedAt:  The last-updated timestamp for the detector.<br/>Status:  The detector status.<br/>ServiceRole:  The GuardDuty service role.<br/>FindingPublishingFrequency:  The publishing frequency of the finding.<br/>CreatedAt:  The timestamp of when the detector was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Logs</i> An object that contains information on the status of S3 Data event logs as a data source.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3Logs</b>: An object that contains information on the status of S3 Data event logs as a data source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FlowLogs</i> An object that contains information on the status of VPC flow logs as a data source.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>FlowLogs</b>: An object that contains information on the status of VPC flow logs as a data source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DNSLogs</i> An object that contains information on the status of DNS logs as a data source.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DNSLogs</b>: An object that contains information on the status of DNS logs as a data source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudTrail</i> An object that contains information on the status of CloudTrail as a data source.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CloudTrail</b>: An object that contains information on the status of CloudTrail as a data source.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Describes whether CloudTrail is enabled as a data source for the detector.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Denotes whether DNS logs is enabled as a data source.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Denotes whether VPC flow logs is enabled as a data source.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> A value that describes whether S3 data event logs are automatically enabled for new members of the organization.<br/>        """
        pass

    def get_filter(self, FilterName: str, DetectorId: str) -> GetFilterResponse:
        r"""Returns the details of the filter specified by the filter name.

        :param self:
        :param FilterName:  The name of the filter you want to get.<br/>DetectorId:  The unique ID of the detector that the filter is associated with.<br/>
        :return: Tags:  The tags of the filter resource.<br/>FindingCriteria:  Represents the criteria to be used in the filter for querying findings.:<br/>Rank:  Specifies the position of the filter in the list of current filters. Also specifies the order in which this filter is applied to the findings.<br/>Action:  Specifies the action that is to be applied to the findings that match the filter.<br/>Description:  The description of the filter.<br/>Name:  The name of the filter.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Criterion</i> Represents a map of finding properties that match specified conditions and values when querying findings.<br/>        """
        pass

    def get_findings(self, FindingIds: List[FindingId], DetectorId: str, SortCriteria: SortCriteria=None) -> GetFindingsResponse:
        r"""Describes Amazon GuardDuty findings specified by finding IDs.

        :param self:
        :param SortCriteria:  Represents the criteria used for sorting findings.:<br/>FindingIds:  The IDs of the findings that you want to retrieve.<br/>DetectorId:  The ID of the detector that specifies the GuardDuty service whose findings you want to retrieve.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OrderBy</i> The order by which the sorted findings are to be displayed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AttributeName</i> Represents the finding attribute (for example, accountId) to sort findings by.<br/>
        :return: Findings:  A list of findings.<br/>        """
        pass

    def get_findings_statistics(self, FindingStatisticTypes: List[FindingStatisticType], DetectorId: str, FindingCriteria: FindingCriteria=None) -> GetFindingsStatisticsResponse:
        r"""Lists Amazon GuardDuty findings statistics for the specified detector ID.

        :param self:
        :param FindingCriteria:  Represents the criteria that is used for querying findings.:<br/>FindingStatisticTypes:  The types of finding statistics to retrieve.<br/>DetectorId:  The ID of the detector that specifies the GuardDuty service whose findings' statistics you want to retrieve.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Criterion</i> Represents a map of finding properties that match specified conditions and values when querying findings.<br/>
        :return: FindingStatistics:  The finding statistics object.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CountBySeverity</i> Represents a map of severity to count statistics for a set of findings.<br/>        """
        pass

    def get_ip_set(self, IpSetId: str, DetectorId: str) -> GetIPSetResponse:
        r"""Retrieves the IPSet specified by the <code>ipSetId</code>.

        :param self:
        :param IpSetId:  The unique ID of the IPSet to retrieve.<br/>DetectorId:  The unique ID of the detector that the IPSet is associated with.<br/>
        :return: Tags:  The tags of the IPSet resource.<br/>Status:  The status of IPSet file that was uploaded.<br/>Location:  The URI of the file that contains the IPSet. For example: https://s3.us-west-2.amazonaws.com/my-bucket/my-object-key.<br/>Format:  The format of the file that contains the IPSet.<br/>Name:  The user-friendly name for the IPSet.<br/>        """
        pass

    def get_invitations_count(self) -> GetInvitationsCountResponse:
        r"""Returns the count of all GuardDuty membership invitations that were sent to the current member account except the currently accepted invitation.

        :param self:
        :param 
        :return: InvitationsCount:  The number of received invitations.<br/>        """
        pass

    def get_master_account(self, DetectorId: str) -> GetMasterAccountResponse:
        r"""Provides the details for the GuardDuty administrator account associated with the current GuardDuty member account.

        :param self:
        :param DetectorId:  The unique ID of the detector of the GuardDuty member account.<br/>
        :return: Master:  The administrator account details.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InvitedAt</i> The timestamp when the invitation was sent.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RelationshipStatus</i> The status of the relationship between the administrator and member accounts.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InvitationId</i> The value used to validate the administrator account to the member account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccountId</i> The ID of the account used as the administrator account.<br/>        """
        pass

    def get_member_detectors(self, AccountIds: List[AccountId], DetectorId: str) -> GetMemberDetectorsResponse:
        r"""Describes which data sources are enabled for the member account's detector.

        :param self:
        :param AccountIds:  The account ID of the member account.<br/>DetectorId:  The detector ID for the administrator account.<br/>
        :return: UnprocessedAccounts:  A list of member account IDs that were unable to be processed along with an explanation for why they were not processed.<br/>MemberDataSourceConfigurations:  An object that describes which data sources are enabled for a member account.<br/>        """
        pass

    def get_members(self, AccountIds: List[AccountId], DetectorId: str) -> GetMembersResponse:
        r"""Retrieves GuardDuty member accounts (of the current GuardDuty administrator account) specified by the account IDs.

        :param self:
        :param AccountIds:  A list of account IDs of the GuardDuty member accounts that you want to describe.<br/>DetectorId:  The unique ID of the detector of the GuardDuty account whose members you want to retrieve.<br/>
        :return: UnprocessedAccounts:  A list of objects that contain the unprocessed account and a result string that explains why it was unprocessed.<br/>Members:  A list of members.<br/>        """
        pass

    def get_threat_intel_set(self, ThreatIntelSetId: str, DetectorId: str) -> GetThreatIntelSetResponse:
        r"""Retrieves the ThreatIntelSet that is specified by the ThreatIntelSet ID.

        :param self:
        :param ThreatIntelSetId:  The unique ID of the threatIntelSet that you want to get.<br/>DetectorId:  The unique ID of the detector that the threatIntelSet is associated with.<br/>
        :return: Tags:  The tags of the threat list resource.<br/>Status:  The status of threatIntelSet file uploaded.<br/>Location:  The URI of the file that contains the ThreatIntelSet. For example: https://s3.us-west-2.amazonaws.com/my-bucket/my-object-key.<br/>Format:  The format of the threatIntelSet.<br/>Name:  A user-friendly ThreatIntelSet name displayed in all findings that are generated by activity that involves IP addresses included in this ThreatIntelSet.<br/>        """
        pass

    def get_usage_statistics(self, UsageCriteria: UsageCriteria, UsageStatisticType: str, DetectorId: str, Unit: str=None, MaxResults: int=None, NextToken: str=None) -> GetUsageStatisticsResponse:
        r"""Lists Amazon GuardDuty usage statistics over the last 30 days for the specified detector ID. For newly enabled detectors or data sources the cost returned will include only the usage so far under 30 days, this may differ from the cost metrics in the console, which projects usage over 30 days to provide a monthly cost estimate. For more information see <a href="https://docs.aws.amazon.com/guardduty/latest/ug/monitoring_costs.html#usage-calculations">Understanding How Usage Costs are Calculated</a>.

        :param self:
        :param NextToken:  A token to use for paginating results that are returned in the response. Set the value of this parameter to null for the first request to a list action. For subsequent calls, use the NextToken value returned from the previous request to continue listing results after the first page.<br/>MaxResults:  The maximum number of results to return in the response.<br/>Unit:  The currency unit you would like to view your usage statistics in. Current valid values are USD.<br/>UsageCriteria:  Represents the criteria used for querying usage.:<br/>UsageStatisticType:  The type of usage statistics to retrieve.<br/>DetectorId:  The ID of the detector that specifies the GuardDuty service whose usage statistics you want to retrieve.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Resources</i> The resources to aggregate usage statistics from. Only accepts exact resource names.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataSources</i> The data sources to aggregate usage statistics from.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccountIds</i> The account IDs to aggregate usage statistics from.<br/>
        :return: NextToken:  The pagination parameter to be used on the next list operation to retrieve more items.<br/>UsageStatistics:  The usage statistics object. If a UsageStatisticType was provided, the objects representing other types will be null.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TopResources</i> Lists the top 50 resources that have generated the most GuardDuty usage, in order from most to least expensive.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SumByResource</i> The usage statistic sum organized by resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SumByDataSource</i> The usage statistic sum organized by on data source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SumByAccount</i> The usage statistic sum organized by account ID.<br/>        """
        pass

    def invite_members(self, AccountIds: List[AccountId], DetectorId: str, DisableEmailNotification: Boolean=None, Message: str=None) -> InviteMembersResponse:
        r"""Invites other AWS accounts (created as members of the current AWS account by CreateMembers) to enable GuardDuty, and allow the current AWS account to view and manage these accounts' findings on their behalf as the GuardDuty administrator account.

        :param self:
        :param Message:  The invitation message that you want to send to the accounts that you're inviting to GuardDuty as members.<br/>DisableEmailNotification:  A Boolean value that specifies whether you want to disable email notification to the accounts that you are inviting to GuardDuty as members.<br/>AccountIds:  A list of account IDs of the accounts that you want to invite to GuardDuty as members.<br/>DetectorId:  The unique ID of the detector of the GuardDuty account that you want to invite members with.<br/>
        :return: UnprocessedAccounts:  A list of objects that contain the unprocessed account and a result string that explains why it was unprocessed.<br/>        """
        pass

    def list_detectors(self, MaxResults: int=None, NextToken: str=None) -> ListDetectorsResponse:
        r"""Lists detectorIds of all the existing Amazon GuardDuty detector resources.

        :param self:
        :param NextToken:  You can use this parameter when paginating results. Set the value of this parameter to null on your first call to the list action. For subsequent calls to the action, fill nextToken in the request with the value of NextToken from the previous response to continue listing data.<br/>MaxResults:  You can use this parameter to indicate the maximum number of items that you want in the response. The default value is 50. The maximum value is 50.<br/>
        :return: NextToken:  The pagination parameter to be used on the next list operation to retrieve more items.<br/>DetectorIds:  A list of detector IDs.<br/>        """
        pass

    def list_filters(self, DetectorId: str, MaxResults: int=None, NextToken: str=None) -> ListFiltersResponse:
        r"""Returns a paginated list of the current filters.

        :param self:
        :param NextToken:  You can use this parameter when paginating results. Set the value of this parameter to null on your first call to the list action. For subsequent calls to the action, fill nextToken in the request with the value of NextToken from the previous response to continue listing data.<br/>MaxResults:  You can use this parameter to indicate the maximum number of items that you want in the response. The default value is 50. The maximum value is 50.<br/>DetectorId:  The unique ID of the detector that the filter is associated with.<br/>
        :return: NextToken:  The pagination parameter to be used on the next list operation to retrieve more items.<br/>FilterNames:  A list of filter names.<br/>        """
        pass

    def list_findings(self, DetectorId: str, FindingCriteria: FindingCriteria=None, SortCriteria: SortCriteria=None, MaxResults: int=None, NextToken: str=None) -> ListFindingsResponse:
        r"""Lists Amazon GuardDuty findings for the specified detector ID.

        :param self:
        :param NextToken:  You can use this parameter when paginating results. Set the value of this parameter to null on your first call to the list action. For subsequent calls to the action, fill nextToken in the request with the value of NextToken from the previous response to continue listing data.<br/>MaxResults:  You can use this parameter to indicate the maximum number of items you want in the response. The default value is 50. The maximum value is 50.<br/>SortCriteria:  Represents the criteria used for sorting findings.:<br/>FindingCriteria:  Represents the criteria used for querying findings. Valid values include: <ul> <li> JSON field name </li> <li> accountId </li> <li> region </li> <li> confidence </li> <li> id </li> <li> resource.accessKeyDetails.accessKeyId </li> <li> resource.accessKeyDetails.principalId </li> <li> resource.accessKeyDetails.userName </li> <li> resource.accessKeyDetails.userType </li> <li> resource.instanceDetails.iamInstanceProfile.id </li> <li> resource.instanceDetails.imageId </li> <li> resource.instanceDetails.instanceId </li> <li> resource.instanceDetails.networkInterfaces.ipv6Addresses </li> <li> resource.instanceDetails.networkInterfaces.privateIpAddresses.privateIpAddress </li> <li> resource.instanceDetails.networkInterfaces.publicDnsName </li> <li> resource.instanceDetails.networkInterfaces.publicIp </li> <li> resource.instanceDetails.networkInterfaces.securityGroups.groupId </li> <li> resource.instanceDetails.networkInterfaces.securityGroups.groupName </li> <li> resource.instanceDetails.networkInterfaces.subnetId </li> <li> resource.instanceDetails.networkInterfaces.vpcId </li> <li> resource.instanceDetails.tags.key </li> <li> resource.instanceDetails.tags.value </li> <li> resource.resourceType </li> <li> service.action.actionType </li> <li> service.action.awsApiCallAction.api </li> <li> service.action.awsApiCallAction.callerType </li> <li> service.action.awsApiCallAction.remoteIpDetails.city.cityName </li> <li> service.action.awsApiCallAction.remoteIpDetails.country.countryName </li> <li> service.action.awsApiCallAction.remoteIpDetails.ipAddressV4 </li> <li> service.action.awsApiCallAction.remoteIpDetails.organization.asn </li> <li> service.action.awsApiCallAction.remoteIpDetails.organization.asnOrg </li> <li> service.action.awsApiCallAction.serviceName </li> <li> service.action.dnsRequestAction.domain </li> <li> service.action.networkConnectionAction.blocked </li> <li> service.action.networkConnectionAction.connectionDirection </li> <li> service.action.networkConnectionAction.localPortDetails.port </li> <li> service.action.networkConnectionAction.protocol </li> <li> service.action.networkConnectionAction.remoteIpDetails.city.cityName </li> <li> service.action.networkConnectionAction.remoteIpDetails.country.countryName </li> <li> service.action.networkConnectionAction.remoteIpDetails.ipAddressV4 </li> <li> service.action.networkConnectionAction.remoteIpDetails.organization.asn </li> <li> service.action.networkConnectionAction.remoteIpDetails.organization.asnOrg </li> <li> service.action.networkConnectionAction.remotePortDetails.port </li> <li> service.additionalInfo.threatListName </li> <li> service.archived When this attribute is set to 'true', only archived findings are listed. When it's set to 'false', only unarchived findings are listed. When this attribute is not set, all existing findings are listed. </li> <li> service.resourceRole </li> <li> severity </li> <li> type </li> <li> updatedAt Type: Timestamp in Unix Epoch millisecond format: 1486685375000 </li> </ul>:<br/>DetectorId:  The ID of the detector that specifies the GuardDuty service whose findings you want to list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Criterion</i> Represents a map of finding properties that match specified conditions and values when querying findings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OrderBy</i> The order by which the sorted findings are to be displayed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AttributeName</i> Represents the finding attribute (for example, accountId) to sort findings by.<br/>
        :return: NextToken:  The pagination parameter to be used on the next list operation to retrieve more items.<br/>FindingIds:  The IDs of the findings that you're listing.<br/>        """
        pass

    def list_ip_sets(self, DetectorId: str, MaxResults: int=None, NextToken: str=None) -> ListIPSetsResponse:
        r"""Lists the IPSets of the GuardDuty service specified by the detector ID. If you use this operation from a member account, the IPSets returned are the IPSets from the associated administrator account.

        :param self:
        :param NextToken:  You can use this parameter when paginating results. Set the value of this parameter to null on your first call to the list action. For subsequent calls to the action, fill nextToken in the request with the value of NextToken from the previous response to continue listing data.<br/>MaxResults:  You can use this parameter to indicate the maximum number of items you want in the response. The default value is 50. The maximum value is 50.<br/>DetectorId:  The unique ID of the detector that the IPSet is associated with.<br/>
        :return: NextToken:  The pagination parameter to be used on the next list operation to retrieve more items.<br/>IpSetIds:  The IDs of the IPSet resources.<br/>        """
        pass

    def list_invitations(self, MaxResults: int=None, NextToken: str=None) -> ListInvitationsResponse:
        r"""Lists all GuardDuty membership invitations that were sent to the current AWS account.

        :param self:
        :param NextToken:  You can use this parameter when paginating results. Set the value of this parameter to null on your first call to the list action. For subsequent calls to the action, fill nextToken in the request with the value of NextToken from the previous response to continue listing data.<br/>MaxResults:  You can use this parameter to indicate the maximum number of items that you want in the response. The default value is 50. The maximum value is 50.<br/>
        :return: NextToken:  The pagination parameter to be used on the next list operation to retrieve more items.<br/>Invitations:  A list of invitation descriptions.<br/>        """
        pass

    def list_members(self, DetectorId: str, MaxResults: int=None, NextToken: str=None, OnlyAssociated: str=None) -> ListMembersResponse:
        r"""Lists details about all member accounts for the current GuardDuty administrator account.

        :param self:
        :param OnlyAssociated:  Specifies whether to only return associated members or to return all members (including members who haven't been invited yet or have been disassociated).<br/>NextToken:  You can use this parameter when paginating results. Set the value of this parameter to null on your first call to the list action. For subsequent calls to the action, fill nextToken in the request with the value of NextToken from the previous response to continue listing data.<br/>MaxResults:  You can use this parameter to indicate the maximum number of items you want in the response. The default value is 50. The maximum value is 50.<br/>DetectorId:  The unique ID of the detector the member is associated with.<br/>
        :return: NextToken:  The pagination parameter to be used on the next list operation to retrieve more items.<br/>Members:  A list of members.<br/>        """
        pass

    def list_organization_admin_accounts(self, MaxResults: int=None, NextToken: str=None) -> ListOrganizationAdminAccountsResponse:
        r"""Lists the accounts configured as GuardDuty delegated administrators.

        :param self:
        :param NextToken:  A token to use for paginating results that are returned in the response. Set the value of this parameter to null for the first request to a list action. For subsequent calls, use the <code>NextToken</code> value returned from the previous request to continue listing results after the first page.<br/>MaxResults:  The maximum number of results to return in the response.<br/>
        :return: NextToken:  The pagination parameter to be used on the next list operation to retrieve more items.<br/>AdminAccounts:  A list of accounts configured as GuardDuty delegated administrators.<br/>        """
        pass

    def list_publishing_destinations(self, DetectorId: str, MaxResults: int=None, NextToken: str=None) -> ListPublishingDestinationsResponse:
        r"""Returns a list of publishing destinations associated with the specified <code>dectectorId</code>.

        :param self:
        :param NextToken:  A token to use for paginating results that are returned in the response. Set the value of this parameter to null for the first request to a list action. For subsequent calls, use the <code>NextToken</code> value returned from the previous request to continue listing results after the first page.<br/>MaxResults:  The maximum number of results to return in the response.<br/>DetectorId:  The ID of the detector to retrieve publishing destinations for.<br/>
        :return: NextToken:  A token to use for paginating results that are returned in the response. Set the value of this parameter to null for the first request to a list action. For subsequent calls, use the <code>NextToken</code> value returned from the previous request to continue listing results after the first page.<br/>Destinations:  A <code>Destinations</code> object that includes information about each publishing destination returned.<br/>        """
        pass

    def list_tags_for_resource(self, ResourceArn: str) -> ListTagsForResourceResponse:
        r"""Lists tags for a resource. Tagging is currently supported for detectors, finding filters, IP sets, and threat intel sets, with a limit of 50 tags per resource. When invoked, this operation returns all assigned tags for a given resource.

        :param self:
        :param ResourceArn:  The Amazon Resource Name (ARN) for the given GuardDuty resource. <br/>
        :return: Tags:  The tags associated with the resource.<br/>        """
        pass

    def list_threat_intel_sets(self, DetectorId: str, MaxResults: int=None, NextToken: str=None) -> ListThreatIntelSetsResponse:
        r"""Lists the ThreatIntelSets of the GuardDuty service specified by the detector ID. If you use this operation from a member account, the ThreatIntelSets associated with the administrator account are returned.

        :param self:
        :param NextToken:  You can use this parameter to paginate results in the response. Set the value of this parameter to null on your first call to the list action. For subsequent calls to the action, fill nextToken in the request with the value of NextToken from the previous response to continue listing data.<br/>MaxResults:  You can use this parameter to indicate the maximum number of items that you want in the response. The default value is 50. The maximum value is 50.<br/>DetectorId:  The unique ID of the detector that the threatIntelSet is associated with.<br/>
        :return: NextToken:  The pagination parameter to be used on the next list operation to retrieve more items.<br/>ThreatIntelSetIds:  The IDs of the ThreatIntelSet resources.<br/>        """
        pass

    def start_monitoring_members(self, AccountIds: List[AccountId], DetectorId: str) -> StartMonitoringMembersResponse:
        r"""Turns on GuardDuty monitoring of the specified member accounts. Use this operation to restart monitoring of accounts that you stopped monitoring with the <code>StopMonitoringMembers</code> operation.

        :param self:
        :param AccountIds:  A list of account IDs of the GuardDuty member accounts to start monitoring.<br/>DetectorId:  The unique ID of the detector of the GuardDuty administrator account associated with the member accounts to monitor.<br/>
        :return: UnprocessedAccounts:  A list of objects that contain the unprocessed account and a result string that explains why it was unprocessed.<br/>        """
        pass

    def stop_monitoring_members(self, AccountIds: List[AccountId], DetectorId: str) -> StopMonitoringMembersResponse:
        r"""Stops GuardDuty monitoring for the specified member accounts. Use the <code>StartMonitoringMembers</code> operation to restart monitoring for those accounts.

        :param self:
        :param AccountIds:  A list of account IDs for the member accounts to stop monitoring.<br/>DetectorId:  The unique ID of the detector associated with the GuardDuty administrator account that is monitoring member accounts.<br/>
        :return: UnprocessedAccounts:  A list of objects that contain an accountId for each account that could not be processed, and a result string that indicates why the account was not processed. <br/>        """
        pass

    def tag_resource(self, Tags: TagMap, ResourceArn: str) -> TagResourceResponse:
        r"""Adds tags to a resource.

        :param self:
        :param Tags:  The tags to be added to a resource.<br/>ResourceArn:  The Amazon Resource Name (ARN) for the GuardDuty resource to apply a tag to.<br/>
        :return:         """
        pass

    def unarchive_findings(self, FindingIds: List[FindingId], DetectorId: str) -> UnarchiveFindingsResponse:
        r"""Unarchives GuardDuty findings specified by the <code>findingIds</code>.

        :param self:
        :param FindingIds:  The IDs of the findings to unarchive.<br/>DetectorId:  The ID of the detector associated with the findings to unarchive.<br/>
        :return:         """
        pass

    def untag_resource(self, TagKeys: List[TagKey], ResourceArn: str) -> UntagResourceResponse:
        r"""Removes tags from a resource.

        :param self:
        :param TagKeys:  The tag keys to remove from the resource.<br/>ResourceArn:  The Amazon Resource Name (ARN) for the resource to remove tags from.<br/>
        :return:         """
        pass

    def update_detector(self, DetectorId: str, Enable: Boolean=None, FindingPublishingFrequency: str=None, DataSources: DataSourceConfigurations=None) -> UpdateDetectorResponse:
        r"""Updates the Amazon GuardDuty detector specified by the detectorId.

        :param self:
        :param DataSources:  Describes which data sources will be updated.:<br/>FindingPublishingFrequency:  An enum value that specifies how frequently findings are exported, such as to CloudWatch Events.<br/>Enable:  Specifies whether the detector is enabled or not enabled.<br/>DetectorId:  The unique ID of the detector to update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Logs</i> Describes whether S3 data event logs are enabled as a data source.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3Logs</b>: Describes whether S3 data event logs are enabled as a data source.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enable</i>  The status of S3 data event logs as a data source.<br/>
        :return:         """
        pass

    def update_filter(self, FilterName: str, DetectorId: str, Description: str=None, Action: str=None, Rank: int=None, FindingCriteria: FindingCriteria=None) -> UpdateFilterResponse:
        r"""Updates the filter specified by the filter name.

        :param self:
        :param FindingCriteria:  Represents the criteria to be used in the filter for querying findings.:<br/>Rank:  Specifies the position of the filter in the list of current filters. Also specifies the order in which this filter is applied to the findings.<br/>Action:  Specifies the action that is to be applied to the findings that match the filter.<br/>Description:  The description of the filter.<br/>FilterName:  The name of the filter.<br/>DetectorId:  The unique ID of the detector that specifies the GuardDuty service where you want to update a filter.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Criterion</i> Represents a map of finding properties that match specified conditions and values when querying findings.<br/>
        :return: Name:  The name of the filter.<br/>        """
        pass

    def update_findings_feedback(self, Feedback: str, FindingIds: List[FindingId], DetectorId: str, Comments: str=None) -> UpdateFindingsFeedbackResponse:
        r"""Marks the specified GuardDuty findings as useful or not useful.

        :param self:
        :param Comments:  Additional feedback about the GuardDuty findings.<br/>Feedback:  The feedback for the finding.<br/>FindingIds:  The IDs of the findings that you want to mark as useful or not useful.<br/>DetectorId:  The ID of the detector associated with the findings to update feedback for.<br/>
        :return:         """
        pass

    def update_ip_set(self, IpSetId: str, DetectorId: str, Name: str=None, Location: str=None, Activate: Boolean=None) -> UpdateIPSetResponse:
        r"""Updates the IPSet specified by the IPSet ID.

        :param self:
        :param Activate:  The updated Boolean value that specifies whether the IPSet is active or not.<br/>Location:  The updated URI of the file that contains the IPSet. For example: https://s3.us-west-2.amazonaws.com/my-bucket/my-object-key.<br/>Name:  The unique ID that specifies the IPSet that you want to update.<br/>IpSetId:  The unique ID that specifies the IPSet that you want to update.<br/>DetectorId:  The detectorID that specifies the GuardDuty service whose IPSet you want to update.<br/>
        :return:         """
        pass

    def update_member_detectors(self, AccountIds: List[AccountId], DetectorId: str, DataSources: DataSourceConfigurations=None) -> UpdateMemberDetectorsResponse:
        r"""Contains information on member accounts to be updated.

        :param self:
        :param DataSources:  Describes which data sources will be updated.:<br/>AccountIds:  A list of member account IDs to be updated.<br/>DetectorId:  The detector ID of the administrator account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Logs</i> Describes whether S3 data event logs are enabled as a data source.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3Logs</b>: Describes whether S3 data event logs are enabled as a data source.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enable</i>  The status of S3 data event logs as a data source.<br/>
        :return: UnprocessedAccounts:  A list of member account IDs that were unable to be processed along with an explanation for why they were not processed.<br/>        """
        pass

    def update_organization_configuration(self, AutoEnable: Boolean, DetectorId: str, DataSources: OrganizationDataSourceConfigurations=None) -> UpdateOrganizationConfigurationResponse:
        r"""Updates the delegated administrator account with the values provided.

        :param self:
        :param DataSources:  Describes which data sources will be updated.:<br/>AutoEnable:  Indicates whether to automatically enable member accounts in the organization.<br/>DetectorId:  The ID of the detector to update the delegated administrator for.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Logs</i> Describes whether S3 data event logs are enabled for new members of the organization.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3Logs</b>: Describes whether S3 data event logs are enabled for new members of the organization.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoEnable</i> A value that contains information on whether S3 data event logs will be enabled automatically as a data source for the organization.<br/>
        :return:         """
        pass

    def update_publishing_destination(self, DestinationId: str, DetectorId: str, DestinationProperties: DestinationProperties=None) -> UpdatePublishingDestinationResponse:
        r"""Updates information about the publishing destination specified by the <code>destinationId</code>.

        :param self:
        :param DestinationProperties:  A <code>DestinationProperties</code> object that includes the <code>DestinationArn</code> and <code>KmsKeyArn</code> of the publishing destination.:<br/>DestinationId:  The ID of the publishing destination to update.<br/>DetectorId:  The ID of the detector associated with the publishing destinations to update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyArn</i> The ARN of the KMS key to use for encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DestinationArn</i> The ARN of the resource to publish to.<br/>
        :return:         """
        pass

    def update_threat_intel_set(self, ThreatIntelSetId: str, DetectorId: str, Name: str=None, Location: str=None, Activate: Boolean=None) -> UpdateThreatIntelSetResponse:
        r"""Updates the ThreatIntelSet specified by the ThreatIntelSet ID.

        :param self:
        :param Activate:  The updated Boolean value that specifies whether the ThreateIntelSet is active or not.<br/>Location:  The updated URI of the file that contains the ThreateIntelSet.<br/>Name:  The unique ID that specifies the ThreatIntelSet that you want to update.<br/>ThreatIntelSetId:  The unique ID that specifies the ThreatIntelSet that you want to update.<br/>DetectorId:  The detectorID that specifies the GuardDuty service whose ThreatIntelSet you want to update.<br/>
        :return:         """
        pass





class Health(BaseClient):
    r"""<fullname>AWS Health</fullname> The AWS Health API provides programmatic access to the AWS Health information that appears in the <a href="https://phd.aws.amazon.com/phd/home#/">AWS Personal Health Dashboard</a>. You can use the API operations to get information about AWS Health events that affect your AWS services and resources. <note> <ul> <li> You must have a Business or Enterprise Support plan from <a href="http://aws.amazon.com/premiumsupport/">AWS Support</a> to use the AWS Health API. If you call the AWS Health API from an AWS account that doesn't have a Business or Enterprise Support plan, you receive a <code>SubscriptionRequiredException</code> error. </li> <li> You can use the AWS Health endpoint health.us-east-1.amazonaws.com (HTTPS) to call the AWS Health API operations. AWS Health supports a multi-Region application architecture and has two regional endpoints in an active-passive configuration. You can use the high availability endpoint example to determine which AWS Region is active, so that you can get the latest information from the API. For more information, see <a href="https://docs.aws.amazon.com/health/latest/ug/health-api.html">Accessing the AWS Health API</a> in the <i>AWS Health User Guide</i>. </li> </ul> </note> For authentication of requests, AWS Health uses the <a href="https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html">Signature Version 4 Signing Process</a>. If your AWS account is part of AWS Organizations, you can use the AWS Health organizational view feature. This feature provides a centralized view of AWS Health events across all accounts in your organization. You can aggregate AWS Health events in real time to identify accounts in your organization that are affected by an operational event or get notified of security vulnerabilities. Use the organizational view API operations to enable this feature and return event information. For more information, see <a href="https://docs.aws.amazon.com/health/latest/ug/aggregate-events.html">Aggregating AWS Health events</a> in the <i>AWS Health User Guide</i>. <note> When you use the AWS Health API operations to return AWS Health events, see the following recommendations: <ul> <li> Use the <a href="https://docs.aws.amazon.com/health/latest/APIReference/API_Event.html#AWSHealth-Type-Event-eventScopeCode">eventScopeCode</a> parameter to specify whether to return AWS Health events that are public or account-specific. </li> <li> Use pagination to view all events from the response. For example, if you call the <code>DescribeEventsForOrganization</code> operation to get all events in your organization, you might receive several page results. Specify the <code>nextToken</code> in the next request to return more results. </li> </ul> </note>"""


    class DescribeAffectedEntitiesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_affected_entities` for valid parameters"""
            pass
    class DescribeEventAggregatesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_event_aggregates` for valid parameters"""
            pass
    class DescribeEventsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_events` for valid parameters"""
            pass
    class DescribeEventTypesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_event_types` for valid parameters"""
            pass
    class DescribeAffectedAccountsForOrganizationPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_affected_accounts_for_organization` for valid parameters"""
            pass
    class DescribeAffectedEntitiesForOrganizationPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_affected_entities_for_organization` for valid parameters"""
            pass
    class DescribeEventsForOrganizationPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_events_for_organization` for valid parameters"""
            pass


    class DescribeAffectedAccountsForOrganizationRequest(Mapping):
        pass
    
    class DescribeAffectedAccountsForOrganizationResponse(Mapping):
        pass
    
    class DescribeAffectedEntitiesRequest(Mapping):
        pass
    
    class DescribeAffectedEntitiesResponse(Mapping):
        pass
    
    class EntityFilter(Mapping):
        pass
    
    class DescribeAffectedEntitiesForOrganizationRequest(Mapping):
        pass
    
    class DescribeAffectedEntitiesForOrganizationResponse(Mapping):
        pass
    
    class EventAccountFilter(Mapping):
        pass
    
    class DescribeEntityAggregatesRequest(Mapping):
        pass
    
    class DescribeEntityAggregatesResponse(Mapping):
        pass
    
    class eventArn(object):
        pass
    
    class DescribeEventAggregatesRequest(Mapping):
        pass
    
    class DescribeEventAggregatesResponse(Mapping):
        pass
    
    class EventFilter(Mapping):
        pass
    
    class DescribeEventDetailsRequest(Mapping):
        pass
    
    class DescribeEventDetailsResponse(Mapping):
        pass
    
    class DescribeEventDetailsForOrganizationRequest(Mapping):
        pass
    
    class DescribeEventDetailsForOrganizationResponse(Mapping):
        pass
    
    class DescribeEventTypesRequest(Mapping):
        pass
    
    class DescribeEventTypesResponse(Mapping):
        pass
    
    class EventTypeFilter(Mapping):
        pass
    
    class DescribeEventsRequest(Mapping):
        pass
    
    class DescribeEventsResponse(Mapping):
        pass
    
    class DescribeEventsForOrganizationRequest(Mapping):
        pass
    
    class DescribeEventsForOrganizationResponse(Mapping):
        pass
    
    class OrganizationEventFilter(Mapping):
        pass
    
    class DescribeHealthServiceStatusForOrganizationResponse(Mapping):
        pass
    
    def describe_affected_accounts_for_organization(self, eventArn: str, nextToken: str=None, maxResults: int=None) -> DescribeAffectedAccountsForOrganizationResponse:
        r"""Returns a list of accounts in the organization from AWS Organizations that are affected by the provided event. For more information about the different types of AWS Health events, see <a href="https://docs.aws.amazon.com/health/latest/APIReference/API_Event.html">Event</a>.  Before you can call this operation, you must first enable AWS Health to work with AWS Organizations. To do this, call the <a href="https://docs.aws.amazon.com/health/latest/APIReference/API_EnableHealthServiceAccessForOrganization.html">EnableHealthServiceAccessForOrganization</a> operation from your organization's management account. <note> This API operation uses pagination. Specify the <code>nextToken</code> parameter in the next request to return more results. </note>

        :param self:
        :param maxResults:  The maximum number of items to return in one batch, between 10 and 100, inclusive.<br/>nextToken:  If the results of a search are large, only a portion of the results are returned, and a <code>nextToken</code> pagination token is returned in the response. To retrieve the next batch of results, reissue the search request and include the returned token. When all results have been returned, the response does not contain a pagination token value.<br/>eventArn:  The unique identifier for the event. The event ARN has the <code>arn:aws:health:<i>event-region</i>::event/<i>SERVICE</i>/<i>EVENT_TYPE_CODE</i>/<i>EVENT_TYPE_PLUS_ID</i> </code> format. For example, an event ARN might look like the following:  <code>arn:aws:health:us-east-1::event/EC2/EC2_INSTANCE_RETIREMENT_SCHEDULED/EC2_INSTANCE_RETIREMENT_SCHEDULED_ABC123-DEF456</code> <br/>
        :return: nextToken:  If the results of a search are large, only a portion of the results are returned, and a <code>nextToken</code> pagination token is returned in the response. To retrieve the next batch of results, reissue the search request and include the returned token. When all results have been returned, the response does not contain a pagination token value.<br/>eventScopeCode:  This parameter specifies if the AWS Health event is a public AWS service event or an account-specific event. <ul> <li> If the <code>eventScopeCode</code> value is <code>PUBLIC</code>, then the <code>affectedAccounts</code> value is always empty. </li> <li> If the <code>eventScopeCode</code> value is <code>ACCOUNT_SPECIFIC</code>, then the <code>affectedAccounts</code> value lists the affected AWS accounts in your organization. For example, if an event affects a service such as Amazon Elastic Compute Cloud and you have AWS accounts that use that service, those account IDs appear in the response. </li> <li> If the <code>eventScopeCode</code> value is <code>NONE</code>, then the <code>eventArn</code> that you specified in the request is invalid or doesn't exist. </li> </ul><br/>affectedAccounts:  A JSON set of elements of the affected accounts.<br/>        """
        pass

    def describe_affected_entities(self, filter: EntityFilter, locale: str=None, nextToken: str=None, maxResults: int=None) -> DescribeAffectedEntitiesResponse:
        r"""Returns a list of entities that have been affected by the specified events, based on the specified filter criteria. Entities can refer to individual customer resources, groups of customer resources, or any other construct, depending on the AWS service. Events that have impact beyond that of the affected entities, or where the extent of impact is unknown, include at least one entity indicating this. At least one event ARN is required. Results are sorted by the <code>lastUpdatedTime</code> of the entity, starting with the most recent. <note> <ul> <li> This API operation uses pagination. Specify the <code>nextToken</code> parameter in the next request to return more results. </li> <li> This operation supports resource-level permissions. You can use this operation to allow or deny access to specific AWS Health events. For more information, see <a href="https://docs.aws.amazon.com/health/latest/ug/security_iam_id-based-policy-examples.html#resource-action-based-conditions">Resource- and action-based conditions</a> in the <i>AWS Health User Guide</i>. </li> </ul> </note>

        :param self:
        :param maxResults:  The maximum number of items to return in one batch, between 10 and 100, inclusive.<br/>nextToken:  If the results of a search are large, only a portion of the results are returned, and a <code>nextToken</code> pagination token is returned in the response. To retrieve the next batch of results, reissue the search request and include the returned token. When all results have been returned, the response does not contain a pagination token value.<br/>locale:  The locale (language) to return information in. English (en) is the default and the only supported value at this time.<br/>filter:  Values to narrow the results returned. At least one event ARN is required.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusCodes</i> A list of entity status codes (<code>IMPAIRED</code>, <code>UNIMPAIRED</code>, or <code>UNKNOWN</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> A map of entity tags attached to the affected entity. <note> Currently, the <code>tags</code> property isn't supported. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedTimes</i> A list of the most recent dates and times that the entity was updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>entityValues</i> A list of IDs for affected entities.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>entityArns</i> A list of entity ARNs (unique identifiers).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>eventArns</i> A list of event ARNs (unique identifiers). For example: <code>"arn:aws:health:us-east-1::event/EC2/EC2_INSTANCE_RETIREMENT_SCHEDULED/EC2_INSTANCE_RETIREMENT_SCHEDULED_ABC123-CDE456", "arn:aws:health:us-west-1::event/EBS/AWS_EBS_LOST_VOLUME/AWS_EBS_LOST_VOLUME_CHI789_JKL101"</code> <br/>
        :return: nextToken:  If the results of a search are large, only a portion of the results are returned, and a <code>nextToken</code> pagination token is returned in the response. To retrieve the next batch of results, reissue the search request and include the returned token. When all results have been returned, the response does not contain a pagination token value.<br/>entities:  The entities that match the filter criteria.<br/>        """
        pass

    def describe_affected_entities_for_organization(self, organizationEntityFilters: List[EventAccountFilter], locale: str=None, nextToken: str=None, maxResults: int=None) -> DescribeAffectedEntitiesForOrganizationResponse:
        r"""Returns a list of entities that have been affected by one or more events for one or more accounts in your organization in AWS Organizations, based on the filter criteria. Entities can refer to individual customer resources, groups of customer resources, or any other construct, depending on the AWS service. At least one event Amazon Resource Name (ARN) and account ID are required. Results are sorted by the <code>lastUpdatedTime</code> of the entity, starting with the most recent. Before you can call this operation, you must first enable AWS Health to work with AWS Organizations. To do this, call the <a href="https://docs.aws.amazon.com/health/latest/APIReference/API_EnableHealthServiceAccessForOrganization.html">EnableHealthServiceAccessForOrganization</a> operation from your organization's management account. <note> <ul> <li> This API operation uses pagination. Specify the <code>nextToken</code> parameter in the next request to return more results. </li> <li> This operation doesn't support resource-level permissions. You can't use this operation to allow or deny access to specific AWS Health events. For more information, see <a href="https://docs.aws.amazon.com/health/latest/ug/security_iam_id-based-policy-examples.html#resource-action-based-conditions">Resource- and action-based conditions</a> in the <i>AWS Health User Guide</i>. </li> </ul> </note>

        :param self:
        :param maxResults:  The maximum number of items to return in one batch, between 10 and 100, inclusive.<br/>nextToken:  If the results of a search are large, only a portion of the results are returned, and a <code>nextToken</code> pagination token is returned in the response. To retrieve the next batch of results, reissue the search request and include the returned token. When all results have been returned, the response does not contain a pagination token value.<br/>locale:  The locale (language) to return information in. English (en) is the default and the only supported value at this time.<br/>organizationEntityFilters:  A JSON set of elements including the <code>awsAccountId</code> and the <code>eventArn</code>.<br/>
        :return: nextToken:  If the results of a search are large, only a portion of the results are returned, and a <code>nextToken</code> pagination token is returned in the response. To retrieve the next batch of results, reissue the search request and include the returned token. When all results have been returned, the response does not contain a pagination token value.<br/>failedSet:  A JSON set of elements of the failed response, including the <code>awsAccountId</code>, <code>errorMessage</code>, <code>errorName</code>, and <code>eventArn</code>.<br/>entities:  A JSON set of elements including the <code>awsAccountId</code> and its <code>entityArn</code>, <code>entityValue</code> and its <code>entityArn</code>, <code>lastUpdatedTime</code>, and <code>statusCode</code>.<br/>        """
        pass

    def describe_entity_aggregates(self, eventArns: List[eventArn]=None) -> DescribeEntityAggregatesResponse:
        r"""Returns the number of entities that are affected by each of the specified events. If no events are specified, the counts of all affected entities are returned.

        :param self:
        :param eventArns:  A list of event ARNs (unique identifiers). For example: <code>"arn:aws:health:us-east-1::event/EC2/EC2_INSTANCE_RETIREMENT_SCHEDULED/EC2_INSTANCE_RETIREMENT_SCHEDULED_ABC123-CDE456", "arn:aws:health:us-west-1::event/EBS/AWS_EBS_LOST_VOLUME/AWS_EBS_LOST_VOLUME_CHI789_JKL101"</code> <br/>
        :return: entityAggregates:  The number of entities that are affected by each of the specified events.<br/>        """
        pass

    def describe_event_aggregates(self, aggregateField: str, filter: EventFilter=None, maxResults: int=None, nextToken: str=None) -> DescribeEventAggregatesResponse:
        r"""Returns the number of events of each event type (issue, scheduled change, and account notification). If no filter is specified, the counts of all events in each category are returned. <note> This API operation uses pagination. Specify the <code>nextToken</code> parameter in the next request to return more results. </note>

        :param self:
        :param nextToken:  If the results of a search are large, only a portion of the results are returned, and a <code>nextToken</code> pagination token is returned in the response. To retrieve the next batch of results, reissue the search request and include the returned token. When all results have been returned, the response does not contain a pagination token value.<br/>maxResults:  The maximum number of items to return in one batch, between 10 and 100, inclusive.<br/>aggregateField:  The only currently supported value is <code>eventTypeCategory</code>.<br/>filter:  Values to narrow the results returned.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>eventStatusCodes</i> A list of event status codes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> A map of entity tags attached to the affected entity. <note> Currently, the <code>tags</code> property isn't supported. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>eventTypeCategories</i> A list of event type category codes (<code>issue</code>, <code>scheduledChange</code>, or <code>accountNotification</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>entityValues</i> A list of entity identifiers, such as EC2 instance IDs (<code>i-34ab692e</code>) or EBS volumes (<code>vol-426ab23e</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>entityArns</i> A list of entity ARNs (unique identifiers).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedTimes</i> A list of dates and times that the event was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>endTimes</i> A list of dates and times that the event ended.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>startTimes</i> A list of dates and times that the event began.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>availabilityZones</i> A list of AWS Availability Zones.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>regions</i> A list of AWS Regions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>services</i> The AWS services associated with the event. For example, <code>EC2</code>, <code>RDS</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>eventTypeCodes</i> A list of unique identifiers for event types. For example, <code>"AWS_EC2_SYSTEM_MAINTENANCE_EVENT","AWS_RDS_MAINTENANCE_SCHEDULED".</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>eventArns</i> A list of event ARNs (unique identifiers). For example: <code>"arn:aws:health:us-east-1::event/EC2/EC2_INSTANCE_RETIREMENT_SCHEDULED/EC2_INSTANCE_RETIREMENT_SCHEDULED_ABC123-CDE456", "arn:aws:health:us-west-1::event/EBS/AWS_EBS_LOST_VOLUME/AWS_EBS_LOST_VOLUME_CHI789_JKL101"</code> <br/>
        :return: nextToken:  If the results of a search are large, only a portion of the results are returned, and a <code>nextToken</code> pagination token is returned in the response. To retrieve the next batch of results, reissue the search request and include the returned token. When all results have been returned, the response does not contain a pagination token value.<br/>eventAggregates:  The number of events in each category that meet the optional filter criteria.<br/>        """
        pass

    def describe_event_details(self, eventArns: List[eventArn], locale: str=None) -> DescribeEventDetailsResponse:
        r"""Returns detailed information about one or more specified events. Information includes standard event data (AWS Region, service, and so on, as returned by <a href="https://docs.aws.amazon.com/health/latest/APIReference/API_DescribeEvents.html">DescribeEvents</a>), a detailed event description, and possible additional metadata that depends upon the nature of the event. Affected entities are not included. To retrieve the entities, use the <a href="https://docs.aws.amazon.com/health/latest/APIReference/API_DescribeAffectedEntities.html">DescribeAffectedEntities</a> operation. If a specified event can't be retrieved, an error message is returned for that event. <note> This operation supports resource-level permissions. You can use this operation to allow or deny access to specific AWS Health events. For more information, see <a href="https://docs.aws.amazon.com/health/latest/ug/security_iam_id-based-policy-examples.html#resource-action-based-conditions">Resource- and action-based conditions</a> in the <i>AWS Health User Guide</i>. </note>

        :param self:
        :param locale:  The locale (language) to return information in. English (en) is the default and the only supported value at this time.<br/>eventArns:  A list of event ARNs (unique identifiers). For example: <code>"arn:aws:health:us-east-1::event/EC2/EC2_INSTANCE_RETIREMENT_SCHEDULED/EC2_INSTANCE_RETIREMENT_SCHEDULED_ABC123-CDE456", "arn:aws:health:us-west-1::event/EBS/AWS_EBS_LOST_VOLUME/AWS_EBS_LOST_VOLUME_CHI789_JKL101"</code> <br/>
        :return: failedSet:  Error messages for any events that could not be retrieved.<br/>successfulSet:  Information about the events that could be retrieved.<br/>        """
        pass

    def describe_event_details_for_organization(self, organizationEventDetailFilters: List[EventAccountFilter], locale: str=None) -> DescribeEventDetailsForOrganizationResponse:
        r"""Returns detailed information about one or more specified events for one or more AWS accounts in your organization. This information includes standard event data (such as the AWS Region and service), an event description, and (depending on the event) possible metadata. This operation doesn't return affected entities, such as the resources related to the event. To return affected entities, use the <a href="https://docs.aws.amazon.com/health/latest/APIReference/API_DescribeAffectedEntitiesForOrganization.html">DescribeAffectedEntitiesForOrganization</a> operation. <note> Before you can call this operation, you must first enable AWS Health to work with AWS Organizations. To do this, call the <a href="https://docs.aws.amazon.com/health/latest/APIReference/API_EnableHealthServiceAccessForOrganization.html">EnableHealthServiceAccessForOrganization</a> operation from your organization's management account. </note> When you call the <code>DescribeEventDetailsForOrganization</code> operation, specify the <code>organizationEventDetailFilters</code> object in the request. Depending on the AWS Health event type, note the following differences: <ul> <li> To return event details for a public event, you must specify a null value for the <code>awsAccountId</code> parameter. If you specify an account ID for a public event, AWS Health returns an error message because public events aren't specific to an account. </li> <li> To return event details for an event that is specific to an account in your organization, you must specify the <code>awsAccountId</code> parameter in the request. If you don't specify an account ID, AWS Health returns an error message because the event is specific to an account in your organization.  </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/health/latest/APIReference/API_Event.html">Event</a>. <note> This operation doesn't support resource-level permissions. You can't use this operation to allow or deny access to specific AWS Health events. For more information, see <a href="https://docs.aws.amazon.com/health/latest/ug/security_iam_id-based-policy-examples.html#resource-action-based-conditions">Resource- and action-based conditions</a> in the <i>AWS Health User Guide</i>. </note>

        :param self:
        :param locale:  The locale (language) to return information in. English (en) is the default and the only supported value at this time.<br/>organizationEventDetailFilters:  A set of JSON elements that includes the <code>awsAccountId</code> and the <code>eventArn</code>.<br/>
        :return: failedSet:  Error messages for any events that could not be retrieved.<br/>successfulSet:  Information about the events that could be retrieved.<br/>        """
        pass

    def describe_event_types(self, filter: EventTypeFilter=None, locale: str=None, nextToken: str=None, maxResults: int=None) -> DescribeEventTypesResponse:
        r"""Returns the event types that meet the specified filter criteria. You can use this API operation to find information about the AWS Health event, such as the category, AWS service, and event code. The metadata for each event appears in the <a href="https://docs.aws.amazon.com/health/latest/APIReference/API_EventType.html">EventType</a> object.  If you don't specify a filter criteria, the API operation returns all event types, in no particular order.  <note> This API operation uses pagination. Specify the <code>nextToken</code> parameter in the next request to return more results. </note>

        :param self:
        :param maxResults:  The maximum number of items to return in one batch, between 10 and 100, inclusive.<br/>nextToken:  If the results of a search are large, only a portion of the results are returned, and a <code>nextToken</code> pagination token is returned in the response. To retrieve the next batch of results, reissue the search request and include the returned token. When all results have been returned, the response does not contain a pagination token value.<br/>locale:  The locale (language) to return information in. English (en) is the default and the only supported value at this time.<br/>filter:  Values to narrow the results returned.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>eventTypeCategories</i> A list of event type category codes (<code>issue</code>, <code>scheduledChange</code>, or <code>accountNotification</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>services</i> The AWS services associated with the event. For example, <code>EC2</code>, <code>RDS</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>eventTypeCodes</i> A list of event type codes.<br/>
        :return: nextToken:  If the results of a search are large, only a portion of the results are returned, and a <code>nextToken</code> pagination token is returned in the response. To retrieve the next batch of results, reissue the search request and include the returned token. When all results have been returned, the response does not contain a pagination token value.<br/>eventTypes:  A list of event types that match the filter criteria. Event types have a category (<code>issue</code>, <code>accountNotification</code>, or <code>scheduledChange</code>), a service (for example, <code>EC2</code>, <code>RDS</code>, <code>DATAPIPELINE</code>, <code>BILLING</code>), and a code (in the format <code>AWS_<i>SERVICE</i>_<i>DESCRIPTION</i> </code>; for example, <code>AWS_EC2_SYSTEM_MAINTENANCE_EVENT</code>).<br/>        """
        pass

    def describe_events(self, filter: EventFilter=None, nextToken: str=None, maxResults: int=None, locale: str=None) -> DescribeEventsResponse:
        r""" Returns information about events that meet the specified filter criteria. Events are returned in a summary form and do not include the detailed description, any additional metadata that depends on the event type, or any affected resources. To retrieve that information, use the <a href="https://docs.aws.amazon.com/health/latest/APIReference/API_DescribeEventDetails.html">DescribeEventDetails</a> and <a href="https://docs.aws.amazon.com/health/latest/APIReference/API_DescribeAffectedEntities.html">DescribeAffectedEntities</a> operations. If no filter criteria are specified, all events are returned. Results are sorted by <code>lastModifiedTime</code>, starting with the most recent event. <note> <ul> <li> When you call the <code>DescribeEvents</code> operation and specify an entity for the <code>entityValues</code> parameter, AWS Health might return public events that aren't specific to that resource. For example, if you call <code>DescribeEvents</code> and specify an ID for an Amazon Elastic Compute Cloud (Amazon EC2) instance, AWS Health might return events that aren't specific to that resource or service. To get events that are specific to a service, use the <code>services</code> parameter in the <code>filter</code> object. For more information, see <a href="https://docs.aws.amazon.com/health/latest/APIReference/API_Event.html">Event</a>. </li> <li> This API operation uses pagination. Specify the <code>nextToken</code> parameter in the next request to return more results. </li> </ul> </note>

        :param self:
        :param locale:  The locale (language) to return information in. English (en) is the default and the only supported value at this time.<br/>maxResults:  The maximum number of items to return in one batch, between 10 and 100, inclusive.<br/>nextToken:  If the results of a search are large, only a portion of the results are returned, and a <code>nextToken</code> pagination token is returned in the response. To retrieve the next batch of results, reissue the search request and include the returned token. When all results have been returned, the response does not contain a pagination token value.<br/>filter:  Values to narrow the results returned.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>eventStatusCodes</i> A list of event status codes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> A map of entity tags attached to the affected entity. <note> Currently, the <code>tags</code> property isn't supported. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>eventTypeCategories</i> A list of event type category codes (<code>issue</code>, <code>scheduledChange</code>, or <code>accountNotification</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>entityValues</i> A list of entity identifiers, such as EC2 instance IDs (<code>i-34ab692e</code>) or EBS volumes (<code>vol-426ab23e</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>entityArns</i> A list of entity ARNs (unique identifiers).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedTimes</i> A list of dates and times that the event was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>endTimes</i> A list of dates and times that the event ended.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>startTimes</i> A list of dates and times that the event began.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>availabilityZones</i> A list of AWS Availability Zones.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>regions</i> A list of AWS Regions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>services</i> The AWS services associated with the event. For example, <code>EC2</code>, <code>RDS</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>eventTypeCodes</i> A list of unique identifiers for event types. For example, <code>"AWS_EC2_SYSTEM_MAINTENANCE_EVENT","AWS_RDS_MAINTENANCE_SCHEDULED".</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>eventArns</i> A list of event ARNs (unique identifiers). For example: <code>"arn:aws:health:us-east-1::event/EC2/EC2_INSTANCE_RETIREMENT_SCHEDULED/EC2_INSTANCE_RETIREMENT_SCHEDULED_ABC123-CDE456", "arn:aws:health:us-west-1::event/EBS/AWS_EBS_LOST_VOLUME/AWS_EBS_LOST_VOLUME_CHI789_JKL101"</code> <br/>
        :return: nextToken:  If the results of a search are large, only a portion of the results are returned, and a <code>nextToken</code> pagination token is returned in the response. To retrieve the next batch of results, reissue the search request and include the returned token. When all results have been returned, the response does not contain a pagination token value.<br/>events:  The events that match the specified filter criteria.<br/>        """
        pass

    def describe_events_for_organization(self, filter: OrganizationEventFilter=None, nextToken: str=None, maxResults: int=None, locale: str=None) -> DescribeEventsForOrganizationResponse:
        r"""Returns information about events across your organization in AWS Organizations. You can use the<code>filters</code> parameter to specify the events that you want to return. Events are returned in a summary form and don't include the affected accounts, detailed description, any additional metadata that depends on the event type, or any affected resources. To retrieve that information, use the following operations: <ul> <li>  <a href="https://docs.aws.amazon.com/health/latest/APIReference/API_DescribeAffectedAccountsForOrganization.html">DescribeAffectedAccountsForOrganization</a>  </li> <li>  <a href="https://docs.aws.amazon.com/health/latest/APIReference/API_DescribeEventDetailsForOrganization.html">DescribeEventDetailsForOrganization</a>  </li> <li>  <a href="https://docs.aws.amazon.com/health/latest/APIReference/API_DescribeAffectedEntitiesForOrganization.html">DescribeAffectedEntitiesForOrganization</a>  </li> </ul> If you don't specify a <code>filter</code>, the <code>DescribeEventsForOrganizations</code> returns all events across your organization. Results are sorted by <code>lastModifiedTime</code>, starting with the most recent event.  For more information about the different types of AWS Health events, see <a href="https://docs.aws.amazon.com/health/latest/APIReference/API_Event.html">Event</a>. Before you can call this operation, you must first enable AWS Health to work with AWS Organizations. To do this, call the <a href="https://docs.aws.amazon.com/health/latest/APIReference/API_EnableHealthServiceAccessForOrganization.html">EnableHealthServiceAccessForOrganization</a> operation from your organization's management account. <note> This API operation uses pagination. Specify the <code>nextToken</code> parameter in the next request to return more results. </note>

        :param self:
        :param locale:  The locale (language) to return information in. English (en) is the default and the only supported value at this time.<br/>maxResults:  The maximum number of items to return in one batch, between 10 and 100, inclusive.<br/>nextToken:  If the results of a search are large, only a portion of the results are returned, and a <code>nextToken</code> pagination token is returned in the response. To retrieve the next batch of results, reissue the search request and include the returned token. When all results have been returned, the response does not contain a pagination token value.<br/>filter:  Values to narrow the results returned.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>eventStatusCodes</i> A list of event status codes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>eventTypeCategories</i> A list of event type category codes (issue, scheduledChange, or accountNotification).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>entityValues</i> A list of entity identifiers, such as EC2 instance IDs (i-34ab692e) or EBS volumes (vol-426ab23e).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>entityArns</i> A list of entity ARNs (unique identifiers).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedTime</i> A range of dates and times that is used by the <a href="https://docs.aws.amazon.com/health/latest/APIReference/API_EventFilter.html">EventFilter</a> and <a href="https://docs.aws.amazon.com/health/latest/APIReference/API_EntityFilter.html">EntityFilter</a> objects. If <code>from</code> is set and <code>to</code> is set: match items where the timestamp (<code>startTime</code>, <code>endTime</code>, or <code>lastUpdatedTime</code>) is between <code>from</code> and <code>to</code> inclusive. If <code>from</code> is set and <code>to</code> is not set: match items where the timestamp value is equal to or after <code>from</code>. If <code>from</code> is not set and <code>to</code> is set: match items where the timestamp value is equal to or before <code>to</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>lastUpdatedTime</b>: A range of dates and times that is used by the <a href="https://docs.aws.amazon.com/health/latest/APIReference/API_EventFilter.html">EventFilter</a> and <a href="https://docs.aws.amazon.com/health/latest/APIReference/API_EntityFilter.html">EntityFilter</a> objects. If <code>from</code> is set and <code>to</code> is set: match items where the timestamp (<code>startTime</code>, <code>endTime</code>, or <code>lastUpdatedTime</code>) is between <code>from</code> and <code>to</code> inclusive. If <code>from</code> is set and <code>to</code> is not set: match items where the timestamp value is equal to or after <code>from</code>. If <code>from</code> is not set and <code>to</code> is set: match items where the timestamp value is equal to or before <code>to</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>endTime</i> A range of dates and times that is used by the <a href="https://docs.aws.amazon.com/health/latest/APIReference/API_EventFilter.html">EventFilter</a> and <a href="https://docs.aws.amazon.com/health/latest/APIReference/API_EntityFilter.html">EntityFilter</a> objects. If <code>from</code> is set and <code>to</code> is set: match items where the timestamp (<code>startTime</code>, <code>endTime</code>, or <code>lastUpdatedTime</code>) is between <code>from</code> and <code>to</code> inclusive. If <code>from</code> is set and <code>to</code> is not set: match items where the timestamp value is equal to or after <code>from</code>. If <code>from</code> is not set and <code>to</code> is set: match items where the timestamp value is equal to or before <code>to</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>endTime</b>: A range of dates and times that is used by the <a href="https://docs.aws.amazon.com/health/latest/APIReference/API_EventFilter.html">EventFilter</a> and <a href="https://docs.aws.amazon.com/health/latest/APIReference/API_EntityFilter.html">EntityFilter</a> objects. If <code>from</code> is set and <code>to</code> is set: match items where the timestamp (<code>startTime</code>, <code>endTime</code>, or <code>lastUpdatedTime</code>) is between <code>from</code> and <code>to</code> inclusive. If <code>from</code> is set and <code>to</code> is not set: match items where the timestamp value is equal to or after <code>from</code>. If <code>from</code> is not set and <code>to</code> is set: match items where the timestamp value is equal to or before <code>to</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>startTime</i> A range of dates and times that is used by the <a href="https://docs.aws.amazon.com/health/latest/APIReference/API_EventFilter.html">EventFilter</a> and <a href="https://docs.aws.amazon.com/health/latest/APIReference/API_EntityFilter.html">EntityFilter</a> objects. If <code>from</code> is set and <code>to</code> is set: match items where the timestamp (<code>startTime</code>, <code>endTime</code>, or <code>lastUpdatedTime</code>) is between <code>from</code> and <code>to</code> inclusive. If <code>from</code> is set and <code>to</code> is not set: match items where the timestamp value is equal to or after <code>from</code>. If <code>from</code> is not set and <code>to</code> is set: match items where the timestamp value is equal to or before <code>to</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>startTime</b>: A range of dates and times that is used by the <a href="https://docs.aws.amazon.com/health/latest/APIReference/API_EventFilter.html">EventFilter</a> and <a href="https://docs.aws.amazon.com/health/latest/APIReference/API_EntityFilter.html">EntityFilter</a> objects. If <code>from</code> is set and <code>to</code> is set: match items where the timestamp (<code>startTime</code>, <code>endTime</code>, or <code>lastUpdatedTime</code>) is between <code>from</code> and <code>to</code> inclusive. If <code>from</code> is set and <code>to</code> is not set: match items where the timestamp value is equal to or after <code>from</code>. If <code>from</code> is not set and <code>to</code> is set: match items where the timestamp value is equal to or before <code>to</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>regions</i> A list of AWS Regions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>services</i> The AWS services associated with the event. For example, <code>EC2</code>, <code>RDS</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>awsAccountIds</i> A list of 12-digit AWS account numbers that contains the affected entities.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>eventTypeCodes</i> A list of unique identifiers for event types. For example, <code>"AWS_EC2_SYSTEM_MAINTENANCE_EVENT","AWS_RDS_MAINTENANCE_SCHEDULED".</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>to</i> The ending date and time of a time range.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>from</i> The starting date and time of a time range.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>to</i> The ending date and time of a time range.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>from</i> The starting date and time of a time range.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>to</i> The ending date and time of a time range.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>from</i> The starting date and time of a time range.<br/>
        :return: nextToken:  If the results of a search are large, only a portion of the results are returned, and a <code>nextToken</code> pagination token is returned in the response. To retrieve the next batch of results, reissue the search request and include the returned token. When all results have been returned, the response does not contain a pagination token value.<br/>events:  The events that match the specified filter criteria.<br/>        """
        pass

    def describe_health_service_status_for_organization(self) -> DescribeHealthServiceStatusForOrganizationResponse:
        r"""This operation provides status information on enabling or disabling AWS Health to work with your organization. To call this operation, you must sign in as an IAM user, assume an IAM role, or sign in as the root user (not recommended) in the organization's management account.

        :param self:
        :param 
        :return: healthServiceAccessStatusForOrganization:  Information about the status of enabling or disabling AWS Health Organizational View in your organization. Valid values are <code>ENABLED | DISABLED | PENDING</code>. <br/>        """
        pass

    def disable_health_service_access_for_organization(self):
        r"""Disables AWS Health from working with AWS Organizations. To call this operation, you must sign in as an AWS Identity and Access Management (IAM) user, assume an IAM role, or sign in as the root user (not recommended) in the organization's management account. For more information, see <a href="https://docs.aws.amazon.com/health/latest/ug/aggregate-events.html">Aggregating AWS Health events</a> in the <i>AWS Health User Guide</i>. This operation doesn't remove the service-linked role from the management account in your organization. You must use the IAM console, API, or AWS Command Line Interface (AWS CLI) to remove the service-linked role. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#delete-service-linked-role">Deleting a Service-Linked Role</a> in the <i>IAM User Guide</i>. <note> You can also disable the organizational feature by using the Organizations <a href="https://docs.aws.amazon.com/organizations/latest/APIReference/API_DisableAWSServiceAccess.html">DisableAWSServiceAccess</a> API operation. After you call this operation, AWS Health stops aggregating events for all other AWS accounts in your organization. If you call the AWS Health API operations for organizational view, AWS Health returns an error. AWS Health continues to aggregate health events for your AWS account. </note>

        :param self:
        :param 
        :return:         """
        pass

    def enable_health_service_access_for_organization(self):
        r"""Enables AWS Health to work with AWS Organizations. You can use the organizational view feature to aggregate events from all AWS accounts in your organization in a centralized location.  This operation also creates a service-linked role for the management account in the organization.  <note> To call this operation, you must meet the following requirements: <ul> <li> You must have a Business or Enterprise Support plan from <a href="http://aws.amazon.com/premiumsupport/">AWS Support</a> to use the AWS Health API. If you call the AWS Health API from an AWS account that doesn't have a Business or Enterprise Support plan, you receive a <code>SubscriptionRequiredException</code> error. </li> <li> You must have permission to call this operation from the organization's management account. For example IAM policies, see <a href="https://docs.aws.amazon.com/health/latest/ug/security_iam_id-based-policy-examples.html">AWS Health identity-based policy examples</a>. </li> </ul> </note> If you don't have the required support plan, you can instead use the AWS Health console to enable the organizational view feature. For more information, see <a href="https://docs.aws.amazon.com/health/latest/ug/aggregate-events.html">Aggregating AWS Health events</a> in the <i>AWS Health User Guide</i>.

        :param self:
        :param 
        :return:         """
        pass





class HealthLake(BaseClient):
    r"""Amazon HealthLake is a HIPAA eligibile service that allows customers to store, transform, query, and analyze their FHIR-formatted data in a consistent fashion in the cloud."""




    class CreateFHIRDatastoreRequest(Mapping):
        pass
    
    class CreateFHIRDatastoreResponse(Mapping):
        pass
    
    class PreloadDataConfig(Mapping):
        pass
    
    class DeleteFHIRDatastoreRequest(Mapping):
        pass
    
    class DeleteFHIRDatastoreResponse(Mapping):
        pass
    
    class DescribeFHIRDatastoreRequest(Mapping):
        pass
    
    class DescribeFHIRDatastoreResponse(Mapping):
        pass
    
    class DescribeFHIRExportJobRequest(Mapping):
        pass
    
    class DescribeFHIRExportJobResponse(Mapping):
        pass
    
    class DescribeFHIRImportJobRequest(Mapping):
        pass
    
    class DescribeFHIRImportJobResponse(Mapping):
        pass
    
    class ListFHIRDatastoresRequest(Mapping):
        pass
    
    class ListFHIRDatastoresResponse(Mapping):
        pass
    
    class DatastoreFilter(Mapping):
        pass
    
    class StartFHIRExportJobRequest(Mapping):
        pass
    
    class StartFHIRExportJobResponse(Mapping):
        pass
    
    class OutputDataConfig(Mapping):
        pass
    
    class StartFHIRImportJobRequest(Mapping):
        pass
    
    class StartFHIRImportJobResponse(Mapping):
        pass
    
    class InputDataConfig(Mapping):
        pass
    
    def create_fhir_datastore(self, DatastoreTypeVersion: str, DatastoreName: str=None, PreloadDataConfig: PreloadDataConfig=None, ClientToken: str=None) -> CreateFHIRDatastoreResponse:
        r"""Creates a Data Store that can ingest and export FHIR formatted data.

        :param self:
        :param ClientToken:  Optional user provided token used for ensuring idempotency.<br/>PreloadDataConfig:  Optional parameter to preload data upon creation of the Data Store. Currently, the only supported preloaded data is synthetic data generated from Synthea.:<br/>DatastoreTypeVersion:  The FHIR version of the Data Store. The only supported version is R4.<br/>DatastoreName:  The user generated name for the Data Store.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreloadDataType</i> The type of preloaded data. Only Synthea preloaded data is supported.<br/>
        :return: DatastoreEndpoint:  The AWS endpoint for the created Data Store. For preview, only US-east-1 endpoints are supported.<br/>DatastoreStatus:  The status of the FHIR Data Store. Possible statuses are ‘CREATING’, ‘ACTIVE’, ‘DELETING’, ‘DELETED’.<br/>DatastoreArn:  The datastore ARN is generated during the creation of the Data Store and can be found in the output from the initial Data Store creation call.<br/>DatastoreId:  The AWS-generated Data Store id. This id is in the output from the initial Data Store creation call.<br/>        """
        pass

    def delete_fhir_datastore(self, DatastoreId: str=None) -> DeleteFHIRDatastoreResponse:
        r"""Deletes a Data Store. 

        :param self:
        :param DatastoreId:   The AWS-generated ID for the Data Store to be deleted.<br/>
        :return: DatastoreEndpoint:  The AWS endpoint for the Data Store the user has requested to be deleted.<br/>DatastoreStatus:  The status of the Data Store that the user has requested to be deleted. <br/>DatastoreArn:  The Amazon Resource Name (ARN) that gives Amazon HealthLake access permission.<br/>DatastoreId:  The AWS-generated ID for the Data Store to be deleted.<br/>        """
        pass

    def describe_fhir_datastore(self, DatastoreId: str=None) -> DescribeFHIRDatastoreResponse:
        r"""Gets the properties associated with the FHIR Data Store, including the Data Store ID, Data Store ARN, Data Store name, Data Store status, created at, Data Store type version, and Data Store endpoint.

        :param self:
        :param DatastoreId:  The AWS-generated Data Store id. This is part of the ‘CreateFHIRDatastore’ output.<br/>
        :return: DatastoreProperties:  All properties associated with a Data Store, including the Data Store ID, Data Store ARN, Data Store name, Data Store status, created at, Data Store type version, and Data Store endpoint.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreloadDataConfig</i> The preloaded data configuration for the Data Store. Only data preloaded from Synthea is supported.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PreloadDataConfig</b>: The preloaded data configuration for the Data Store. Only data preloaded from Synthea is supported.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatastoreEndpoint</i> The AWS endpoint for the Data Store. Each Data Store will have it's own endpoint with Data Store ID in the endpoint URL.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatastoreTypeVersion</i> The FHIR version. Only R4 version data is supported.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedAt</i> The time that a Data Store was created. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatastoreStatus</i> The status of the Data Store. Possible statuses are 'CREATING', 'ACTIVE', 'DELETING', or 'DELETED'.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatastoreName</i> The user-generated name for the Data Store.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatastoreArn</i> The Amazon Resource Name used in the creation of the Data Store.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatastoreId</i> The AWS-generated ID number for the Data Store.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PreloadDataType</i> The type of preloaded data. Only Synthea preloaded data is supported.<br/>        """
        pass

    def describe_fhir_export_job(self, JobId: str, DatastoreId: str) -> DescribeFHIRExportJobResponse:
        r"""Displays the properties of a FHIR export job, including the ID, ARN, name, and the status of the job.

        :param self:
        :param JobId:  The AWS generated ID for an export job.<br/>DatastoreId:  The AWS generated ID for the Data Store from which files are being exported from for an export job.<br/>
        :return: ExportJobProperties:  Displays the properties of the export job, including the ID, Arn, Name, and the status of the job. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> An explanation of any errors that may have occurred during the export job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataAccessRoleArn</i> The Amazon Resource Name used during the initiation of the job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OutputDataConfig</i> The output data configuration that was supplied when the export job was created.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>OutputDataConfig</b>: The output data configuration that was supplied when the export job was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatastoreId</i> The AWS generated ID for the Data Store from which files are being exported for an export job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndTime</i> The time an export job completed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubmitTime</i> The time an export job was initiated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobStatus</i> The status of a FHIR export job. Possible statuses are SUBMITTED, IN_PROGRESS, COMPLETED, or FAILED.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobName</i> The user generated name for an export job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobId</i> The AWS generated ID for an export job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Uri</i> The S3Uri is the user specified S3 location to which data will be exported from a FHIR Data Store.<br/>        """
        pass

    def describe_fhir_import_job(self, JobId: str, DatastoreId: str) -> DescribeFHIRImportJobResponse:
        r"""Displays the properties of a FHIR import job, including the ID, ARN, name, and the status of the job.

        :param self:
        :param JobId:  The AWS-generated job ID.<br/>DatastoreId:  The AWS-generated ID of the Data Store.<br/>
        :return: ImportJobProperties:  The properties of the Import job request, including the ID, ARN, name, and the status of the job.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> An explanation of any errors that may have occurred during the FHIR import job. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataAccessRoleArn</i> The Amazon Resource Name (ARN) that gives Amazon HealthLake access to your input data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InputDataConfig</i> The input data configuration that was supplied when the Import job was created.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>InputDataConfig</b>: The input data configuration that was supplied when the Import job was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatastoreId</i> The datastore id used when the Import job was created. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndTime</i> The time that the Import job was completed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubmitTime</i> The time that the Import job was submitted for processing.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobStatus</i> The job status for an Import job. Possible statuses are SUBMITTED, IN_PROGRESS, COMPLETED, FAILED.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobName</i> The user-generated name for an Import job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobId</i> The AWS-generated id number for the Import job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Uri</i> The S3Uri is the user specified S3 location of the FHIR data to be imported into Amazon HealthLake. <br/>        """
        pass

    def list_fhir_datastores(self, Filter: DatastoreFilter=None, NextToken: str=None, MaxResults: int=None) -> ListFHIRDatastoresResponse:
        r"""Lists all FHIR Data Stores that are in the user’s account, regardless of Data Store status.

        :param self:
        :param MaxResults:  The maximum number of Data Stores returned in a single page of a ListFHIRDatastoresRequest call.<br/>NextToken:  Fetches the next page of Data Stores when results are paginated.<br/>Filter:  Lists all filters associated with a FHIR Data Store request.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedAfter</i> A filter that allows the user to set cutoff dates for records. All Data Stores created after the specified date will be included in the results.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedBefore</i> A filter that allows the user to set cutoff dates for records. All Data Stores created before the specified date will be included in the results. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatastoreStatus</i> Allows the user to filter Data Store results by status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatastoreName</i> Allows the user to filter Data Store results by name.<br/>
        :return: NextToken:  Pagination token that can be used to retrieve the next page of results.<br/>DatastorePropertiesList:  All properties associated with the listed Data Stores.<br/>        """
        pass

    def start_fhir_export_job(self, ClientToken: str, DataAccessRoleArn: str, DatastoreId: str, OutputDataConfig: OutputDataConfig, JobName: str=None) -> StartFHIRExportJobResponse:
        r"""Begins a FHIR export job.

        :param self:
        :param ClientToken:  An optional user provided token used for ensuring idempotency.<br/>DataAccessRoleArn:  The Amazon Resource Name used during the initiation of the job.<br/>DatastoreId:  The AWS generated ID for the Data Store from which files are being exported for an export job.<br/>OutputDataConfig:  The output data configuration that was supplied when the export job was created.:<br/>JobName:  The user generated name for an export job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Uri</i> The S3Uri is the user specified S3 location to which data will be exported from a FHIR Data Store.<br/>
        :return: DatastoreId:  The AWS generated ID for the Data Store from which files are being exported for an export job.<br/>JobStatus:  The status of a FHIR export job. Possible statuses are SUBMITTED, IN_PROGRESS, COMPLETED, or FAILED.<br/>JobId:  The AWS generated ID for an export job.<br/>        """
        pass

    def start_fhir_import_job(self, ClientToken: str, DataAccessRoleArn: str, DatastoreId: str, InputDataConfig: InputDataConfig, JobName: str=None) -> StartFHIRImportJobResponse:
        r"""Begins a FHIR Import job.

        :param self:
        :param ClientToken:  Optional user provided token used for ensuring idempotency.<br/>DataAccessRoleArn:  The Amazon Resource Name (ARN) that gives Amazon HealthLake access permission.<br/>DatastoreId:  The AWS-generated Data Store ID.<br/>InputDataConfig:  The input properties of the FHIR Import job in the StartFHIRImport job request.:<br/>JobName:  The name of the FHIR Import job in the StartFHIRImport job request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Uri</i> The S3Uri is the user specified S3 location of the FHIR data to be imported into Amazon HealthLake. <br/>
        :return: DatastoreId:  The AWS-generated Data Store ID.<br/>JobStatus:  The status of an import job.<br/>JobId:  The AWS-generated job ID.<br/>        """
        pass





class Honeycode(BaseClient):
    r""" Amazon Honeycode is a fully managed service that allows you to quickly build mobile and web apps for teams—without programming. Build Honeycode apps for managing almost anything, like projects, customers, operations, approvals, resources, and even your team. """


    class ListTableColumnsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_table_columns` for valid parameters"""
            pass
    class ListTableRowsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_table_rows` for valid parameters"""
            pass
    class ListTablesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_tables` for valid parameters"""
            pass
    class QueryTableRowsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `query_table_rows` for valid parameters"""
            pass


    class BatchCreateTableRowsRequest(Mapping):
        pass
    
    class BatchCreateTableRowsResult(Mapping):
        pass
    
    class CreateRowData(Mapping):
        pass
    
    class BatchDeleteTableRowsRequest(Mapping):
        pass
    
    class BatchDeleteTableRowsResult(Mapping):
        pass
    
    class RowId(object):
        pass
    
    class BatchUpdateTableRowsRequest(Mapping):
        pass
    
    class BatchUpdateTableRowsResult(Mapping):
        pass
    
    class UpdateRowData(Mapping):
        pass
    
    class BatchUpsertTableRowsRequest(Mapping):
        pass
    
    class BatchUpsertTableRowsResult(Mapping):
        pass
    
    class UpsertRowData(Mapping):
        pass
    
    class DescribeTableDataImportJobRequest(Mapping):
        pass
    
    class DescribeTableDataImportJobResult(Mapping):
        pass
    
    class GetScreenDataRequest(Mapping):
        pass
    
    class GetScreenDataResult(Mapping):
        pass
    
    class VariableValueMap(object):
        pass
    
    class InvokeScreenAutomationRequest(Mapping):
        pass
    
    class InvokeScreenAutomationResult(Mapping):
        pass
    
    class ListTableColumnsRequest(Mapping):
        pass
    
    class ListTableColumnsResult(Mapping):
        pass
    
    class ListTableRowsRequest(Mapping):
        pass
    
    class ListTableRowsResult(Mapping):
        pass
    
    class ListTablesRequest(Mapping):
        pass
    
    class ListTablesResult(Mapping):
        pass
    
    class QueryTableRowsRequest(Mapping):
        pass
    
    class QueryTableRowsResult(Mapping):
        pass
    
    class Filter(Mapping):
        pass
    
    class StartTableDataImportJobRequest(Mapping):
        pass
    
    class StartTableDataImportJobResult(Mapping):
        pass
    
    class ImportDataSource(Mapping):
        pass
    
    class ImportOptions(Mapping):
        pass
    
    def batch_create_table_rows(self, rowsToCreate: List[CreateRowData], tableId: str, workbookId: str, clientRequestToken: str=None) -> BatchCreateTableRowsResult:
        r""" The BatchCreateTableRows API allows you to create one or more rows at the end of a table in a workbook. The API allows you to specify the values to set in some or all of the columns in the new rows.   If a column is not explicitly set in a specific row, then the column level formula specified in the table will be applied to the new row. If there is no column level formula but the last row of the table has a formula, then that formula will be copied down to the new row. If there is no column level formula and no formula in the last row of the table, then that column will be left blank for the new rows. 

        :param self:
        :param clientRequestToken:   The request token for performing the batch create operation. Request tokens help to identify duplicate requests. If a call times out or fails due to a transient error like a failed network connection, you can retry the call with the same request token. The service ensures that if the first call using that request token is successfully performed, the second call will not perform the operation again.   Note that request tokens are valid only for a few minutes. You cannot use request tokens to dedupe requests spanning hours or days. <br/>rowsToCreate:   The list of rows to create at the end of the table. Each item in this list needs to have a batch item id to uniquely identify the element in the request and the cells to create for that row. You need to specify at least one item in this list.   Note that if one of the column ids in any of the rows in the request does not exist in the table, then the request fails and no updates are made to the table. <br/>tableId:  The ID of the table where the new rows are being added.  If a table with the specified ID could not be found, this API throws ResourceNotFoundException. <br/>workbookId:  The ID of the workbook where the new rows are being added.  If a workbook with the specified ID could not be found, this API throws ResourceNotFoundException. <br/>
        :return: failedBatchItems:   The list of batch items in the request that could not be added to the table. Each element in this list contains one item from the request that could not be added to the table along with the reason why that item could not be added. <br/>createdRows:  The map of batch item id to the row id that was created for that item.<br/>workbookCursor:  The updated workbook cursor after adding the new rows at the end of the table.<br/>        """
        pass

    def batch_delete_table_rows(self, rowIds: List[RowId], tableId: str, workbookId: str, clientRequestToken: str=None) -> BatchDeleteTableRowsResult:
        r""" The BatchDeleteTableRows API allows you to delete one or more rows from a table in a workbook. You need to specify the ids of the rows that you want to delete from the table. 

        :param self:
        :param clientRequestToken:   The request token for performing the delete action. Request tokens help to identify duplicate requests. If a call times out or fails due to a transient error like a failed network connection, you can retry the call with the same request token. The service ensures that if the first call using that request token is successfully performed, the second call will not perform the action again.   Note that request tokens are valid only for a few minutes. You cannot use request tokens to dedupe requests spanning hours or days. <br/>rowIds:   The list of row ids to delete from the table. You need to specify at least one row id in this list.   Note that if one of the row ids provided in the request does not exist in the table, then the request fails and no rows are deleted from the table. <br/>tableId:  The ID of the table where the rows are being deleted.  If a table with the specified id could not be found, this API throws ResourceNotFoundException. <br/>workbookId:  The ID of the workbook where the rows are being deleted.  If a workbook with the specified id could not be found, this API throws ResourceNotFoundException. <br/>
        :return: failedBatchItems:   The list of row ids in the request that could not be deleted from the table. Each element in this list contains one row id from the request that could not be deleted along with the reason why that item could not be deleted. <br/>workbookCursor:  The updated workbook cursor after deleting the rows from the table.<br/>        """
        pass

    def batch_update_table_rows(self, rowsToUpdate: List[UpdateRowData], tableId: str, workbookId: str, clientRequestToken: str=None) -> BatchUpdateTableRowsResult:
        r""" The BatchUpdateTableRows API allows you to update one or more rows in a table in a workbook.   You can specify the values to set in some or all of the columns in the table for the specified rows. If a column is not explicitly specified in a particular row, then that column will not be updated for that row. To clear out the data in a specific cell, you need to set the value as an empty string (""). 

        :param self:
        :param clientRequestToken:   The request token for performing the update action. Request tokens help to identify duplicate requests. If a call times out or fails due to a transient error like a failed network connection, you can retry the call with the same request token. The service ensures that if the first call using that request token is successfully performed, the second call will not perform the action again.   Note that request tokens are valid only for a few minutes. You cannot use request tokens to dedupe requests spanning hours or days. <br/>rowsToUpdate:   The list of rows to update in the table. Each item in this list needs to contain the row id to update along with the map of column id to cell values for each column in that row that needs to be updated. You need to specify at least one row in this list, and for each row, you need to specify at least one column to update.   Note that if one of the row or column ids in the request does not exist in the table, then the request fails and no updates are made to the table. <br/>tableId:  The ID of the table where the rows are being updated.  If a table with the specified id could not be found, this API throws ResourceNotFoundException. <br/>workbookId:  The ID of the workbook where the rows are being updated.  If a workbook with the specified id could not be found, this API throws ResourceNotFoundException. <br/>
        :return: failedBatchItems:   The list of batch items in the request that could not be updated in the table. Each element in this list contains one item from the request that could not be updated in the table along with the reason why that item could not be updated. <br/>workbookCursor:  The updated workbook cursor after adding the new rows at the end of the table.<br/>        """
        pass

    def batch_upsert_table_rows(self, rowsToUpsert: List[UpsertRowData], tableId: str, workbookId: str, clientRequestToken: str=None) -> BatchUpsertTableRowsResult:
        r""" The BatchUpsertTableRows API allows you to upsert one or more rows in a table. The upsert operation takes a filter expression as input and evaluates it to find matching rows on the destination table. If matching rows are found, it will update the cells in the matching rows to new values specified in the request. If no matching rows are found, a new row is added at the end of the table and the cells in that row are set to the new values specified in the request.   You can specify the values to set in some or all of the columns in the table for the matching or newly appended rows. If a column is not explicitly specified for a particular row, then that column will not be updated for that row. To clear out the data in a specific cell, you need to set the value as an empty string (""). 

        :param self:
        :param clientRequestToken:   The request token for performing the update action. Request tokens help to identify duplicate requests. If a call times out or fails due to a transient error like a failed network connection, you can retry the call with the same request token. The service ensures that if the first call using that request token is successfully performed, the second call will not perform the action again.   Note that request tokens are valid only for a few minutes. You cannot use request tokens to dedupe requests spanning hours or days. <br/>rowsToUpsert:   The list of rows to upsert in the table. Each item in this list needs to have a batch item id to uniquely identify the element in the request, a filter expression to find the rows to update for that element and the cell values to set for each column in the upserted rows. You need to specify at least one item in this list.   Note that if one of the filter formulas in the request fails to evaluate because of an error or one of the column ids in any of the rows does not exist in the table, then the request fails and no updates are made to the table. <br/>tableId:  The ID of the table where the rows are being upserted.  If a table with the specified id could not be found, this API throws ResourceNotFoundException. <br/>workbookId:  The ID of the workbook where the rows are being upserted.  If a workbook with the specified id could not be found, this API throws ResourceNotFoundException. <br/>
        :return: failedBatchItems:   The list of batch items in the request that could not be updated or appended in the table. Each element in this list contains one item from the request that could not be updated in the table along with the reason why that item could not be updated or appended. <br/>workbookCursor:  The updated workbook cursor after updating or appending rows in the table.<br/>rows:   A map with the batch item id as the key and the result of the upsert operation as the value. The result of the upsert operation specifies whether existing rows were updated or a new row was appended, along with the list of row ids that were affected. <br/>        """
        pass

    def describe_table_data_import_job(self, jobId: str, tableId: str, workbookId: str) -> DescribeTableDataImportJobResult:
        r""" The DescribeTableDataImportJob API allows you to retrieve the status and details of a table data import job. 

        :param self:
        :param jobId:  The ID of the job that was returned by the StartTableDataImportJob request.  If a job with the specified id could not be found, this API throws ResourceNotFoundException. <br/>tableId:  The ID of the table into which data was imported.  If a table with the specified id could not be found, this API throws ResourceNotFoundException. <br/>workbookId:  The ID of the workbook into which data was imported.  If a workbook with the specified id could not be found, this API throws ResourceNotFoundException. <br/>
        :return: jobMetadata:   The metadata about the job that was submitted for import. :<br/>message:   A message providing more details about the current status of the import job. <br/>jobStatus:   The current status of the import job. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>dataSource</i> The source of the data that was submitted for import.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>dataSource</b>: The source of the data that was submitted for import.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>importOptions</i> The options that was specified at the time of submitting the import request.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>importOptions</b>: The options that was specified at the time of submitting the import request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>submitTime</i> The timestamp when the job was submitted for import.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>submitter</i> Details about the submitter of the import request.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>submitter</b>: Details about the submitter of the import request.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>userArn</i> The AWS user ARN of the submitter of the import job, if available.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>email</i> The email id of the submitter of the import job, if available.<br/>Options relating to the destination of the import request.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>destinationOptions</b>: Options relating to the destination of the import request.The configuration parameters for the data source of the import&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>dataSourceConfig</b>: The configuration parameters for the data source of the import        """
        pass

    def get_screen_data(self, screenId: str, appId: str, workbookId: str, variables: VariableValueMap=None, maxResults: int=None, nextToken: str=None) -> GetScreenDataResult:
        r""" The GetScreenData API allows retrieval of data from a screen in a Honeycode app. The API allows setting local variables in the screen to filter, sort or otherwise affect what will be displayed on the screen. 

        :param self:
        :param nextToken:   This parameter is optional. If a nextToken is not specified, the API returns the first page of data.   Pagination tokens expire after 1 hour. If you use a token that was returned more than an hour back, the API will throw ValidationException. <br/>maxResults:   The number of results to be returned on a single page. Specify a number between 1 and 100. The maximum value is 100.   This parameter is optional. If you don't specify this parameter, the default page size is 100. <br/>variables:   Variables are optional and are needed only if the screen requires them to render correctly. Variables are specified as a map where the key is the name of the variable as defined on the screen. The value is an object which currently has only one property, rawValue, which holds the value of the variable to be passed to the screen. <br/>screenId:  The ID of the screen.<br/>appId:  The ID of the app that contains the screem.<br/>workbookId:  The ID of the workbook that contains the screen.<br/>
        :return: nextToken:   Provides the pagination token to load the next page if there are more results matching the request. If a pagination token is not present in the response, it means that all data matching the query has been loaded. <br/>workbookCursor:   Indicates the cursor of the workbook at which the data returned by this workbook is read. Workbook cursor keeps increasing with every update and the increments are not sequential. <br/>results:  A map of all the rows on the screen keyed by block name.<br/>        """
        pass

    def invoke_screen_automation(self, screenAutomationId: str, screenId: str, appId: str, workbookId: str, variables: VariableValueMap=None, rowId: str=None, clientRequestToken: str=None) -> InvokeScreenAutomationResult:
        r""" The InvokeScreenAutomation API allows invoking an action defined in a screen in a Honeycode app. The API allows setting local variables, which can then be used in the automation being invoked. This allows automating the Honeycode app interactions to write, update or delete data in the workbook. 

        :param self:
        :param clientRequestToken:   The request token for performing the automation action. Request tokens help to identify duplicate requests. If a call times out or fails due to a transient error like a failed network connection, you can retry the call with the same request token. The service ensures that if the first call using that request token is successfully performed, the second call will return the response of the previous call rather than performing the action again.   Note that request tokens are valid only for a few minutes. You cannot use request tokens to dedupe requests spanning hours or days. <br/>rowId:   The row ID for the automation if the automation is defined inside a block with source or list. <br/>variables:   Variables are specified as a map where the key is the name of the variable as defined on the screen. The value is an object which currently has only one property, rawValue, which holds the value of the variable to be passed to the screen. Any variables defined in a screen are required to be passed in the call. <br/>screenAutomationId:  The ID of the automation action to be performed.<br/>screenId:  The ID of the screen that contains the screen automation.<br/>appId:  The ID of the app that contains the screen automation.<br/>workbookId:  The ID of the workbook that contains the screen automation.<br/>
        :return: workbookCursor:  The updated workbook cursor after performing the automation action.<br/>        """
        pass

    def list_table_columns(self, tableId: str, workbookId: str, nextToken: str=None) -> ListTableColumnsResult:
        r""" The ListTableColumns API allows you to retrieve a list of all the columns in a table in a workbook. 

        :param self:
        :param nextToken:   This parameter is optional. If a nextToken is not specified, the API returns the first page of data.   Pagination tokens expire after 1 hour. If you use a token that was returned more than an hour back, the API will throw ValidationException. <br/>tableId:  The ID of the table whose columns are being retrieved.  If a table with the specified id could not be found, this API throws ResourceNotFoundException. <br/>workbookId:  The ID of the workbook that contains the table whose columns are being retrieved.  If a workbook with the specified id could not be found, this API throws ResourceNotFoundException. <br/>
        :return: workbookCursor:   Indicates the cursor of the workbook at which the data returned by this request is read. Workbook cursor keeps increasing with every update and the increments are not sequential. <br/>nextToken:   Provides the pagination token to load the next page if there are more results matching the request. If a pagination token is not present in the response, it means that all data matching the request has been loaded. <br/>tableColumns:   The list of columns in the table. <br/>        """
        pass

    def list_table_rows(self, tableId: str, workbookId: str, rowIds: List[RowId]=None, maxResults: int=None, nextToken: str=None) -> ListTableRowsResult:
        r""" The ListTableRows API allows you to retrieve a list of all the rows in a table in a workbook. 

        :param self:
        :param nextToken:   This parameter is optional. If a nextToken is not specified, the API returns the first page of data.   Pagination tokens expire after 1 hour. If you use a token that was returned more than an hour back, the API will throw ValidationException. <br/>maxResults:  The maximum number of rows to return in each page of the results.<br/>rowIds:   This parameter is optional. If one or more row ids are specified in this list, then only the specified row ids are returned in the result. If no row ids are specified here, then all the rows in the table are returned. <br/>tableId:  The ID of the table whose rows are being retrieved.  If a table with the specified id could not be found, this API throws ResourceNotFoundException. <br/>workbookId:  The ID of the workbook that contains the table whose rows are being retrieved.  If a workbook with the specified id could not be found, this API throws ResourceNotFoundException. <br/>
        :return: workbookCursor:   Indicates the cursor of the workbook at which the data returned by this request is read. Workbook cursor keeps increasing with every update and the increments are not sequential. <br/>nextToken:   Provides the pagination token to load the next page if there are more results matching the request. If a pagination token is not present in the response, it means that all data matching the request has been loaded. <br/>rowIdsNotFound:   The list of row ids included in the request that were not found in the table. <br/>rows:   The list of rows in the table. Note that this result is paginated, so this list contains a maximum of 100 rows. <br/>columnIds:   The list of columns in the table whose row data is returned in the result. <br/>        """
        pass

    def list_tables(self, workbookId: str, maxResults: int=None, nextToken: str=None) -> ListTablesResult:
        r""" The ListTables API allows you to retrieve a list of all the tables in a workbook. 

        :param self:
        :param nextToken:   This parameter is optional. If a nextToken is not specified, the API returns the first page of data.   Pagination tokens expire after 1 hour. If you use a token that was returned more than an hour back, the API will throw ValidationException. <br/>maxResults:  The maximum number of tables to return in each page of the results.<br/>workbookId:  The ID of the workbook whose tables are being retrieved.  If a workbook with the specified id could not be found, this API throws ResourceNotFoundException. <br/>
        :return: workbookCursor:   Indicates the cursor of the workbook at which the data returned by this request is read. Workbook cursor keeps increasing with every update and the increments are not sequential. <br/>nextToken:   Provides the pagination token to load the next page if there are more results matching the request. If a pagination token is not present in the response, it means that all data matching the request has been loaded. <br/>tables:   The list of tables in the workbook. <br/>        """
        pass

    def query_table_rows(self, filterFormula: Filter, tableId: str, workbookId: str, maxResults: int=None, nextToken: str=None) -> QueryTableRowsResult:
        r""" The QueryTableRows API allows you to use a filter formula to query for specific rows in a table. 

        :param self:
        :param nextToken:   This parameter is optional. If a nextToken is not specified, the API returns the first page of data.   Pagination tokens expire after 1 hour. If you use a token that was returned more than an hour back, the API will throw ValidationException. <br/>maxResults:  The maximum number of rows to return in each page of the results.<br/>filterFormula:  An object that represents a filter formula along with the id of the context row under which the filter function needs to evaluate.:<br/>tableId:  The ID of the table whose rows are being queried.  If a table with the specified id could not be found, this API throws ResourceNotFoundException. <br/>workbookId:  The ID of the workbook whose table rows are being queried.  If a workbook with the specified id could not be found, this API throws ResourceNotFoundException. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>contextRowId</i>  The optional contextRowId attribute can be used to specify the row id of the context row if the filter formula contains unqualified references to table columns and needs a context row to evaluate them successfully. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>formula</i>  A formula representing a filter function that returns zero or more matching rows from a table. Valid formulas in this field return a list of rows from a table. The most common ways of writing a formula to return a list of rows are to use the FindRow() or Filter() functions. Any other formula that returns zero or more rows is also acceptable. For example, you can use a formula that points to a cell that contains a filter function. <br/>
        :return: workbookCursor:   Indicates the cursor of the workbook at which the data returned by this request is read. Workbook cursor keeps increasing with every update and the increments are not sequential. <br/>nextToken:   Provides the pagination token to load the next page if there are more results matching the request. If a pagination token is not present in the response, it means that all data matching the request has been loaded. <br/>rows:   The list of rows in the table that match the query filter. <br/>columnIds:   The list of columns in the table whose row data is returned in the result. <br/>        """
        pass

    def start_table_data_import_job(self, clientRequestToken: str, importOptions: ImportOptions, destinationTableId: str, dataFormat: str, dataSource: ImportDataSource, workbookId: str) -> StartTableDataImportJobResult:
        r""" The StartTableDataImportJob API allows you to start an import job on a table. This API will only return the id of the job that was started. To find out the status of the import request, you need to call the DescribeTableDataImportJob API. 

        :param self:
        :param clientRequestToken:   The request token for performing the update action. Request tokens help to identify duplicate requests. If a call times out or fails due to a transient error like a failed network connection, you can retry the call with the same request token. The service ensures that if the first call using that request token is successfully performed, the second call will not perform the action again.   Note that request tokens are valid only for a few minutes. You cannot use request tokens to dedupe requests spanning hours or days. <br/>importOptions:   The options for customizing this import request. :<br/>destinationTableId:  The ID of the table where the rows are being imported.  If a table with the specified id could not be found, this API throws ResourceNotFoundException. <br/>dataFormat:   The format of the data that is being imported. Currently the only option supported is "DELIMITED_TEXT". <br/>dataSource:   The source of the data that is being imported. The size of source must be no larger than 100 MB. Source must have no more than 100,000 cells and no more than 1,000 rows. :<br/>workbookId:  The ID of the workbook where the rows are being imported.  If a workbook with the specified id could not be found, this API throws ResourceNotFoundException. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>dataSourceConfig</i> The configuration parameters for the data source of the import&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>dataSourceConfig</b>: The configuration parameters for the data source of the import<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>dataSourceUrl</i>  The URL from which source data will be downloaded for the import request. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>delimitedTextOptions</i> Options relating to parsing delimited text. Required if dataFormat is DELIMITED_TEXT.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>delimitedTextOptions</b>: Options relating to parsing delimited text. Required if dataFormat is DELIMITED_TEXT.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>destinationOptions</i> Options relating to the destination of the import request.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>destinationOptions</b>: Options relating to the destination of the import request.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>columnMap</i> A map of the column id to the import properties for each column.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>dataCharacterEncoding</i> The encoding of the data in the input file.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ignoreEmptyRows</i> A parameter to indicate whether empty rows should be ignored or be included in the import.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>hasHeaderRow</i> Indicates whether the input file has a header row at the top containing the column names.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>delimiter</i> The delimiter to use for separating columns in a single row of the input.<br/>
        :return: jobStatus:   The status of the import job immediately after submitting the request. <br/>jobId:   The id that is assigned to this import job. Future requests to find out the status of this import job need to send this id in the appropriate parameter in the request. <br/>        """
        pass





class IAM(BaseClient):
    r"""<fullname>Identity and Access Management</fullname> Identity and Access Management (IAM) is a web service for securely controlling access to Amazon Web Services services. With IAM, you can centrally manage users, security credentials such as access keys, and permissions that control which Amazon Web Services resources users and applications can access. For more information about IAM, see <a href="http://aws.amazon.com/iam/">Identity and Access Management (IAM)</a> and the <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/">Identity and Access Management User Guide</a>."""

    class InstanceProfileExistsWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `get_instance_profile` for valid parameters"""
            pass
    class PolicyExistsWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `get_policy` for valid parameters"""
            pass
    class RoleExistsWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `get_role` for valid parameters"""
            pass
    class UserExistsWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `get_user` for valid parameters"""
            pass


    class GetAccountAuthorizationDetailsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_account_authorization_details` for valid parameters"""
            pass
    class GetGroupPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_group` for valid parameters"""
            pass
    class ListAccessKeysPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_access_keys` for valid parameters"""
            pass
    class ListAccountAliasesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_account_aliases` for valid parameters"""
            pass
    class ListAttachedGroupPoliciesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_attached_group_policies` for valid parameters"""
            pass
    class ListAttachedRolePoliciesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_attached_role_policies` for valid parameters"""
            pass
    class ListAttachedUserPoliciesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_attached_user_policies` for valid parameters"""
            pass
    class ListEntitiesForPolicyPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_entities_for_policy` for valid parameters"""
            pass
    class ListGroupPoliciesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_group_policies` for valid parameters"""
            pass
    class ListGroupsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_groups` for valid parameters"""
            pass
    class ListGroupsForUserPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_groups_for_user` for valid parameters"""
            pass
    class ListInstanceProfilesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_instance_profiles` for valid parameters"""
            pass
    class ListInstanceProfilesForRolePaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_instance_profiles_for_role` for valid parameters"""
            pass
    class ListMFADevicesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_mfa_devices` for valid parameters"""
            pass
    class ListPoliciesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_policies` for valid parameters"""
            pass
    class ListPolicyVersionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_policy_versions` for valid parameters"""
            pass
    class ListRolePoliciesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_role_policies` for valid parameters"""
            pass
    class ListRolesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_roles` for valid parameters"""
            pass
    class ListServerCertificatesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_server_certificates` for valid parameters"""
            pass
    class ListSigningCertificatesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_signing_certificates` for valid parameters"""
            pass
    class ListSSHPublicKeysPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_ssh_public_keys` for valid parameters"""
            pass
    class ListUserPoliciesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_user_policies` for valid parameters"""
            pass
    class ListUsersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_users` for valid parameters"""
            pass
    class ListVirtualMFADevicesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_virtual_mfa_devices` for valid parameters"""
            pass
    class SimulateCustomPolicyPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `simulate_custom_policy` for valid parameters"""
            pass
    class SimulatePrincipalPolicyPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `simulate_principal_policy` for valid parameters"""
            pass
    class ListUserTagsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_user_tags` for valid parameters"""
            pass


    class AddClientIDToOpenIDConnectProviderRequest(Mapping):
        pass
    
    class AddRoleToInstanceProfileRequest(Mapping):
        pass
    
    class AddUserToGroupRequest(Mapping):
        pass
    
    class AttachGroupPolicyRequest(Mapping):
        pass
    
    class AttachRolePolicyRequest(Mapping):
        pass
    
    class AttachUserPolicyRequest(Mapping):
        pass
    
    class ChangePasswordRequest(Mapping):
        pass
    
    class CreateAccessKeyRequest(Mapping):
        pass
    
    class CreateAccessKeyResponse(Mapping):
        pass
    
    class CreateAccountAliasRequest(Mapping):
        pass
    
    class CreateGroupRequest(Mapping):
        pass
    
    class CreateGroupResponse(Mapping):
        pass
    
    class CreateInstanceProfileRequest(Mapping):
        pass
    
    class CreateInstanceProfileResponse(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class CreateLoginProfileRequest(Mapping):
        pass
    
    class CreateLoginProfileResponse(Mapping):
        pass
    
    class booleanType(object):
        pass
    
    class CreateOpenIDConnectProviderRequest(Mapping):
        pass
    
    class CreateOpenIDConnectProviderResponse(Mapping):
        pass
    
    class clientIDType(object):
        pass
    
    class thumbprintType(object):
        pass
    
    class CreatePolicyRequest(Mapping):
        pass
    
    class CreatePolicyResponse(Mapping):
        pass
    
    class CreatePolicyVersionRequest(Mapping):
        pass
    
    class CreatePolicyVersionResponse(Mapping):
        pass
    
    class CreateRoleRequest(Mapping):
        pass
    
    class CreateRoleResponse(Mapping):
        pass
    
    class CreateSAMLProviderRequest(Mapping):
        pass
    
    class CreateSAMLProviderResponse(Mapping):
        pass
    
    class CreateServiceLinkedRoleRequest(Mapping):
        pass
    
    class CreateServiceLinkedRoleResponse(Mapping):
        pass
    
    class CreateServiceSpecificCredentialRequest(Mapping):
        pass
    
    class CreateServiceSpecificCredentialResponse(Mapping):
        pass
    
    class CreateUserRequest(Mapping):
        pass
    
    class CreateUserResponse(Mapping):
        pass
    
    class CreateVirtualMFADeviceRequest(Mapping):
        pass
    
    class CreateVirtualMFADeviceResponse(Mapping):
        pass
    
    class DeactivateMFADeviceRequest(Mapping):
        pass
    
    class DeleteAccessKeyRequest(Mapping):
        pass
    
    class DeleteAccountAliasRequest(Mapping):
        pass
    
    class DeleteGroupRequest(Mapping):
        pass
    
    class DeleteGroupPolicyRequest(Mapping):
        pass
    
    class DeleteInstanceProfileRequest(Mapping):
        pass
    
    class DeleteLoginProfileRequest(Mapping):
        pass
    
    class DeleteOpenIDConnectProviderRequest(Mapping):
        pass
    
    class DeletePolicyRequest(Mapping):
        pass
    
    class DeletePolicyVersionRequest(Mapping):
        pass
    
    class DeleteRoleRequest(Mapping):
        pass
    
    class DeleteRolePermissionsBoundaryRequest(Mapping):
        pass
    
    class DeleteRolePolicyRequest(Mapping):
        pass
    
    class DeleteSAMLProviderRequest(Mapping):
        pass
    
    class DeleteSSHPublicKeyRequest(Mapping):
        pass
    
    class DeleteServerCertificateRequest(Mapping):
        pass
    
    class DeleteServiceLinkedRoleRequest(Mapping):
        pass
    
    class DeleteServiceLinkedRoleResponse(Mapping):
        pass
    
    class DeleteServiceSpecificCredentialRequest(Mapping):
        pass
    
    class DeleteSigningCertificateRequest(Mapping):
        pass
    
    class DeleteUserRequest(Mapping):
        pass
    
    class DeleteUserPermissionsBoundaryRequest(Mapping):
        pass
    
    class DeleteUserPolicyRequest(Mapping):
        pass
    
    class DeleteVirtualMFADeviceRequest(Mapping):
        pass
    
    class DetachGroupPolicyRequest(Mapping):
        pass
    
    class DetachRolePolicyRequest(Mapping):
        pass
    
    class DetachUserPolicyRequest(Mapping):
        pass
    
    class EnableMFADeviceRequest(Mapping):
        pass
    
    class GenerateCredentialReportResponse(Mapping):
        pass
    
    class GenerateOrganizationsAccessReportRequest(Mapping):
        pass
    
    class GenerateOrganizationsAccessReportResponse(Mapping):
        pass
    
    class GenerateServiceLastAccessedDetailsRequest(Mapping):
        pass
    
    class GenerateServiceLastAccessedDetailsResponse(Mapping):
        pass
    
    class GetAccessKeyLastUsedRequest(Mapping):
        pass
    
    class GetAccessKeyLastUsedResponse(Mapping):
        pass
    
    class GetAccountAuthorizationDetailsRequest(Mapping):
        pass
    
    class GetAccountAuthorizationDetailsResponse(Mapping):
        pass
    
    class EntityType(object):
        pass
    
    class GetAccountPasswordPolicyResponse(Mapping):
        pass
    
    class GetAccountSummaryResponse(Mapping):
        pass
    
    class GetContextKeysForCustomPolicyRequest(Mapping):
        pass
    
    class GetContextKeysForPolicyResponse(Mapping):
        pass
    
    class policyDocumentType(object):
        pass
    
    class GetContextKeysForPrincipalPolicyRequest(Mapping):
        pass
    
    class GetCredentialReportResponse(Mapping):
        pass
    
    class GetGroupRequest(Mapping):
        pass
    
    class GetGroupResponse(Mapping):
        pass
    
    class GetGroupPolicyRequest(Mapping):
        pass
    
    class GetGroupPolicyResponse(Mapping):
        pass
    
    class GetInstanceProfileRequest(Mapping):
        pass
    
    class GetInstanceProfileResponse(Mapping):
        pass
    
    class GetLoginProfileRequest(Mapping):
        pass
    
    class GetLoginProfileResponse(Mapping):
        pass
    
    class GetOpenIDConnectProviderRequest(Mapping):
        pass
    
    class GetOpenIDConnectProviderResponse(Mapping):
        pass
    
    class GetOrganizationsAccessReportRequest(Mapping):
        pass
    
    class GetOrganizationsAccessReportResponse(Mapping):
        pass
    
    class GetPolicyRequest(Mapping):
        pass
    
    class GetPolicyResponse(Mapping):
        pass
    
    class GetPolicyVersionRequest(Mapping):
        pass
    
    class GetPolicyVersionResponse(Mapping):
        pass
    
    class GetRoleRequest(Mapping):
        pass
    
    class GetRoleResponse(Mapping):
        pass
    
    class GetRolePolicyRequest(Mapping):
        pass
    
    class GetRolePolicyResponse(Mapping):
        pass
    
    class GetSAMLProviderRequest(Mapping):
        pass
    
    class GetSAMLProviderResponse(Mapping):
        pass
    
    class GetSSHPublicKeyRequest(Mapping):
        pass
    
    class GetSSHPublicKeyResponse(Mapping):
        pass
    
    class GetServerCertificateRequest(Mapping):
        pass
    
    class GetServerCertificateResponse(Mapping):
        pass
    
    class GetServiceLastAccessedDetailsRequest(Mapping):
        pass
    
    class GetServiceLastAccessedDetailsResponse(Mapping):
        pass
    
    class GetServiceLastAccessedDetailsWithEntitiesRequest(Mapping):
        pass
    
    class GetServiceLastAccessedDetailsWithEntitiesResponse(Mapping):
        pass
    
    class GetServiceLinkedRoleDeletionStatusRequest(Mapping):
        pass
    
    class GetServiceLinkedRoleDeletionStatusResponse(Mapping):
        pass
    
    class GetUserRequest(Mapping):
        pass
    
    class GetUserResponse(Mapping):
        pass
    
    class GetUserPolicyRequest(Mapping):
        pass
    
    class GetUserPolicyResponse(Mapping):
        pass
    
    class ListAccessKeysRequest(Mapping):
        pass
    
    class ListAccessKeysResponse(Mapping):
        pass
    
    class ListAccountAliasesRequest(Mapping):
        pass
    
    class ListAccountAliasesResponse(Mapping):
        pass
    
    class ListAttachedGroupPoliciesRequest(Mapping):
        pass
    
    class ListAttachedGroupPoliciesResponse(Mapping):
        pass
    
    class ListAttachedRolePoliciesRequest(Mapping):
        pass
    
    class ListAttachedRolePoliciesResponse(Mapping):
        pass
    
    class ListAttachedUserPoliciesRequest(Mapping):
        pass
    
    class ListAttachedUserPoliciesResponse(Mapping):
        pass
    
    class ListEntitiesForPolicyRequest(Mapping):
        pass
    
    class ListEntitiesForPolicyResponse(Mapping):
        pass
    
    class ListGroupPoliciesRequest(Mapping):
        pass
    
    class ListGroupPoliciesResponse(Mapping):
        pass
    
    class ListGroupsRequest(Mapping):
        pass
    
    class ListGroupsResponse(Mapping):
        pass
    
    class ListGroupsForUserRequest(Mapping):
        pass
    
    class ListGroupsForUserResponse(Mapping):
        pass
    
    class ListInstanceProfileTagsRequest(Mapping):
        pass
    
    class ListInstanceProfileTagsResponse(Mapping):
        pass
    
    class ListInstanceProfilesRequest(Mapping):
        pass
    
    class ListInstanceProfilesResponse(Mapping):
        pass
    
    class ListInstanceProfilesForRoleRequest(Mapping):
        pass
    
    class ListInstanceProfilesForRoleResponse(Mapping):
        pass
    
    class ListMFADeviceTagsRequest(Mapping):
        pass
    
    class ListMFADeviceTagsResponse(Mapping):
        pass
    
    class ListMFADevicesRequest(Mapping):
        pass
    
    class ListMFADevicesResponse(Mapping):
        pass
    
    class ListOpenIDConnectProviderTagsRequest(Mapping):
        pass
    
    class ListOpenIDConnectProviderTagsResponse(Mapping):
        pass
    
    class ListOpenIDConnectProvidersRequest(Mapping):
        pass
    
    class ListOpenIDConnectProvidersResponse(Mapping):
        pass
    
    class ListPoliciesRequest(Mapping):
        pass
    
    class ListPoliciesResponse(Mapping):
        pass
    
    class ListPoliciesGrantingServiceAccessRequest(Mapping):
        pass
    
    class ListPoliciesGrantingServiceAccessResponse(Mapping):
        pass
    
    class serviceNamespaceType(object):
        pass
    
    class ListPolicyTagsRequest(Mapping):
        pass
    
    class ListPolicyTagsResponse(Mapping):
        pass
    
    class ListPolicyVersionsRequest(Mapping):
        pass
    
    class ListPolicyVersionsResponse(Mapping):
        pass
    
    class ListRolePoliciesRequest(Mapping):
        pass
    
    class ListRolePoliciesResponse(Mapping):
        pass
    
    class ListRoleTagsRequest(Mapping):
        pass
    
    class ListRoleTagsResponse(Mapping):
        pass
    
    class ListRolesRequest(Mapping):
        pass
    
    class ListRolesResponse(Mapping):
        pass
    
    class ListSAMLProviderTagsRequest(Mapping):
        pass
    
    class ListSAMLProviderTagsResponse(Mapping):
        pass
    
    class ListSAMLProvidersRequest(Mapping):
        pass
    
    class ListSAMLProvidersResponse(Mapping):
        pass
    
    class ListSSHPublicKeysRequest(Mapping):
        pass
    
    class ListSSHPublicKeysResponse(Mapping):
        pass
    
    class ListServerCertificateTagsRequest(Mapping):
        pass
    
    class ListServerCertificateTagsResponse(Mapping):
        pass
    
    class ListServerCertificatesRequest(Mapping):
        pass
    
    class ListServerCertificatesResponse(Mapping):
        pass
    
    class ListServiceSpecificCredentialsRequest(Mapping):
        pass
    
    class ListServiceSpecificCredentialsResponse(Mapping):
        pass
    
    class ListSigningCertificatesRequest(Mapping):
        pass
    
    class ListSigningCertificatesResponse(Mapping):
        pass
    
    class ListUserPoliciesRequest(Mapping):
        pass
    
    class ListUserPoliciesResponse(Mapping):
        pass
    
    class ListUserTagsRequest(Mapping):
        pass
    
    class ListUserTagsResponse(Mapping):
        pass
    
    class ListUsersRequest(Mapping):
        pass
    
    class ListUsersResponse(Mapping):
        pass
    
    class ListVirtualMFADevicesRequest(Mapping):
        pass
    
    class ListVirtualMFADevicesResponse(Mapping):
        pass
    
    class PutGroupPolicyRequest(Mapping):
        pass
    
    class PutRolePermissionsBoundaryRequest(Mapping):
        pass
    
    class PutRolePolicyRequest(Mapping):
        pass
    
    class PutUserPermissionsBoundaryRequest(Mapping):
        pass
    
    class PutUserPolicyRequest(Mapping):
        pass
    
    class RemoveClientIDFromOpenIDConnectProviderRequest(Mapping):
        pass
    
    class RemoveRoleFromInstanceProfileRequest(Mapping):
        pass
    
    class RemoveUserFromGroupRequest(Mapping):
        pass
    
    class ResetServiceSpecificCredentialRequest(Mapping):
        pass
    
    class ResetServiceSpecificCredentialResponse(Mapping):
        pass
    
    class ResyncMFADeviceRequest(Mapping):
        pass
    
    class SetDefaultPolicyVersionRequest(Mapping):
        pass
    
    class SetSecurityTokenServicePreferencesRequest(Mapping):
        pass
    
    class SimulateCustomPolicyRequest(Mapping):
        pass
    
    class SimulatePolicyResponse(Mapping):
        pass
    
    class ActionNameType(object):
        pass
    
    class ResourceNameType(object):
        pass
    
    class ContextEntry(Mapping):
        pass
    
    class SimulatePrincipalPolicyRequest(Mapping):
        pass
    
    class TagInstanceProfileRequest(Mapping):
        pass
    
    class TagMFADeviceRequest(Mapping):
        pass
    
    class TagOpenIDConnectProviderRequest(Mapping):
        pass
    
    class TagPolicyRequest(Mapping):
        pass
    
    class TagRoleRequest(Mapping):
        pass
    
    class TagSAMLProviderRequest(Mapping):
        pass
    
    class TagServerCertificateRequest(Mapping):
        pass
    
    class TagUserRequest(Mapping):
        pass
    
    class UntagInstanceProfileRequest(Mapping):
        pass
    
    class tagKeyType(object):
        pass
    
    class UntagMFADeviceRequest(Mapping):
        pass
    
    class UntagOpenIDConnectProviderRequest(Mapping):
        pass
    
    class UntagPolicyRequest(Mapping):
        pass
    
    class UntagRoleRequest(Mapping):
        pass
    
    class UntagSAMLProviderRequest(Mapping):
        pass
    
    class UntagServerCertificateRequest(Mapping):
        pass
    
    class UntagUserRequest(Mapping):
        pass
    
    class UpdateAccessKeyRequest(Mapping):
        pass
    
    class UpdateAccountPasswordPolicyRequest(Mapping):
        pass
    
    class booleanObjectType(object):
        pass
    
    class UpdateAssumeRolePolicyRequest(Mapping):
        pass
    
    class UpdateGroupRequest(Mapping):
        pass
    
    class UpdateLoginProfileRequest(Mapping):
        pass
    
    class UpdateOpenIDConnectProviderThumbprintRequest(Mapping):
        pass
    
    class UpdateRoleRequest(Mapping):
        pass
    
    class UpdateRoleResponse(Mapping):
        pass
    
    class UpdateRoleDescriptionRequest(Mapping):
        pass
    
    class UpdateRoleDescriptionResponse(Mapping):
        pass
    
    class UpdateSAMLProviderRequest(Mapping):
        pass
    
    class UpdateSAMLProviderResponse(Mapping):
        pass
    
    class UpdateSSHPublicKeyRequest(Mapping):
        pass
    
    class UpdateServerCertificateRequest(Mapping):
        pass
    
    class UpdateServiceSpecificCredentialRequest(Mapping):
        pass
    
    class UpdateSigningCertificateRequest(Mapping):
        pass
    
    class UpdateUserRequest(Mapping):
        pass
    
    class UploadSSHPublicKeyRequest(Mapping):
        pass
    
    class UploadSSHPublicKeyResponse(Mapping):
        pass
    
    class UploadServerCertificateRequest(Mapping):
        pass
    
    class UploadServerCertificateResponse(Mapping):
        pass
    
    class UploadSigningCertificateRequest(Mapping):
        pass
    
    class UploadSigningCertificateResponse(Mapping):
        pass
    
    def add_client_id_to_open_id_connect_provider(self, ClientID: str, OpenIDConnectProviderArn: str):
        r"""Adds a new client ID (also known as audience) to the list of client IDs already registered for the specified IAM OpenID Connect (OIDC) provider resource. This operation is idempotent; it does not fail or return an error if you add an existing client ID to the provider.

        :param self:
        :param ClientID:  The client ID (also known as audience) to add to the IAM OpenID Connect provider resource.<br/>OpenIDConnectProviderArn:  The Amazon Resource Name (ARN) of the IAM OpenID Connect (OIDC) provider resource to add the client ID to. You can get a list of OIDC provider ARNs by using the <a>ListOpenIDConnectProviders</a> operation.<br/>
        :return:         """
        pass

    def add_role_to_instance_profile(self, RoleName: str, InstanceProfileName: str):
        r"""Adds the specified IAM role to the specified instance profile. An instance profile can contain only one role, and this quota cannot be increased. You can remove the existing role and then add a different role to an instance profile. You must then wait for the change to appear across all of Amazon Web Services because of <a href="https://en.wikipedia.org/wiki/Eventual_consistency">eventual consistency</a>. To force the change, you must <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DisassociateIamInstanceProfile.html">disassociate the instance profile</a> and then <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_AssociateIamInstanceProfile.html">associate the instance profile</a>, or you can stop your instance and then restart it. <note> The caller of this operation must be granted the <code>PassRole</code> permission on the IAM role by a permissions policy. </note> For more information about roles, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/WorkingWithRoles.html">Working with roles</a>. For more information about instance profiles, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/AboutInstanceProfiles.html">About instance profiles</a>.

        :param self:
        :param RoleName:  The name of the role to add. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>InstanceProfileName:  The name of the instance profile to update. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return:         """
        pass

    def add_user_to_group(self, UserName: str, GroupName: str):
        r"""Adds the specified user to the specified group.

        :param self:
        :param UserName:  The name of the user to add. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>GroupName:  The name of the group to update. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return:         """
        pass

    def attach_group_policy(self, PolicyArn: str, GroupName: str):
        r"""Attaches the specified managed policy to the specified IAM group. You use this operation to attach a managed policy to a group. To embed an inline policy in a group, use <a>PutGroupPolicy</a>. As a best practice, you can validate your IAM policies. To learn more, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_policy-validator.html">Validating IAM policies</a> in the <i>IAM User Guide</i>. For more information about policies, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html">Managed policies and inline policies</a> in the <i>IAM User Guide</i>.

        :param self:
        :param PolicyArn:  The Amazon Resource Name (ARN) of the IAM policy you want to attach. For more information about ARNs, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs)</a> in the <i>Amazon Web Services General Reference</i>.<br/>GroupName:  The name (friendly name, not ARN) of the group to attach the policy to. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return:         """
        pass

    def attach_role_policy(self, PolicyArn: str, RoleName: str):
        r"""Attaches the specified managed policy to the specified IAM role. When you attach a managed policy to a role, the managed policy becomes part of the role's permission (access) policy. <note> You cannot use a managed policy as the role's trust policy. The role's trust policy is created at the same time as the role, using <a>CreateRole</a>. You can update a role's trust policy using <a>UpdateAssumeRolePolicy</a>. </note> Use this operation to attach a <i>managed</i> policy to a role. To embed an inline policy in a role, use <a>PutRolePolicy</a>. For more information about policies, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html">Managed policies and inline policies</a> in the <i>IAM User Guide</i>. As a best practice, you can validate your IAM policies. To learn more, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_policy-validator.html">Validating IAM policies</a> in the <i>IAM User Guide</i>.

        :param self:
        :param PolicyArn:  The Amazon Resource Name (ARN) of the IAM policy you want to attach. For more information about ARNs, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs)</a> in the <i>Amazon Web Services General Reference</i>.<br/>RoleName:  The name (friendly name, not ARN) of the role to attach the policy to. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return:         """
        pass

    def attach_user_policy(self, PolicyArn: str, UserName: str):
        r"""Attaches the specified managed policy to the specified user. You use this operation to attach a <i>managed</i> policy to a user. To embed an inline policy in a user, use <a>PutUserPolicy</a>. As a best practice, you can validate your IAM policies. To learn more, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_policy-validator.html">Validating IAM policies</a> in the <i>IAM User Guide</i>. For more information about policies, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html">Managed policies and inline policies</a> in the <i>IAM User Guide</i>.

        :param self:
        :param PolicyArn:  The Amazon Resource Name (ARN) of the IAM policy you want to attach. For more information about ARNs, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs)</a> in the <i>Amazon Web Services General Reference</i>.<br/>UserName:  The name (friendly name, not ARN) of the IAM user to attach the policy to. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return:         """
        pass

    def change_password(self, NewPassword: str, OldPassword: str):
        r"""Changes the password of the IAM user who is calling this operation. This operation can be performed using the CLI, the Amazon Web Services API, or the <b>My Security Credentials</b> page in the Management Console. The account root user password is not affected by this operation. Use <a>UpdateLoginProfile</a> to use the CLI, the Amazon Web Services API, or the <b>Users</b> page in the IAM console to change the password for any IAM user. For more information about modifying passwords, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_ManagingLogins.html">Managing passwords</a> in the <i>IAM User Guide</i>.

        :param self:
        :param NewPassword:  The new password. The new password must conform to the account's password policy, if one exists. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> that is used to validate this parameter is a string of characters. That string can include almost any printable ASCII character from the space (<code>\u0020</code>) through the end of the ASCII character range (<code>\u00FF</code>). You can also include the tab (<code>\u0009</code>), line feed (<code>\u000A</code>), and carriage return (<code>\u000D</code>) characters. Any of these characters are valid in a password. However, many tools, such as the Management Console, might restrict the ability to type certain characters because they have special meaning within that tool.<br/>OldPassword:  The IAM user's current password.<br/>
        :return:         """
        pass

    def create_access_key(self, UserName: str=None) -> CreateAccessKeyResponse:
        r""" Creates a new Amazon Web Services secret access key and corresponding Amazon Web Services access key ID for the specified user. The default status for new keys is <code>Active</code>. If you do not specify a user name, IAM determines the user name implicitly based on the Amazon Web Services access key ID signing the request. This operation works for access keys under the account. Consequently, you can use this operation to manage account root user credentials. This is true even if the account has no associated users.  For information about quotas on the number of keys you can create, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html">IAM and STS quotas</a> in the <i>IAM User Guide</i>. <important> To ensure the security of your account, the secret access key is accessible only during key and user creation. You must save the key (for example, in a text file) if you want to be able to access it again. If a secret key is lost, you can delete the access keys for the associated user and then create new keys. </important>

        :param self:
        :param UserName:  The name of the IAM user that the new key will belong to. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return: AccessKey:  A structure with details about the access key.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreateDate</i> The date when the access key was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretAccessKey</i> The secret key used to sign requests.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the access key. <code>Active</code> means that the key is valid for API calls, while <code>Inactive</code> means it is not. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccessKeyId</i> The ID for this access key.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserName</i> The name of the IAM user that the access key is associated with.<br/>        """
        pass

    def create_account_alias(self, AccountAlias: str):
        r"""Creates an alias for your account. For information about using an account alias, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/AccountAlias.html">Using an alias for your account ID</a> in the <i>IAM User Guide</i>.

        :param self:
        :param AccountAlias:  The account alias to create. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of lowercase letters, digits, and dashes. You cannot start or finish with a dash, nor can you have two dashes in a row.<br/>
        :return:         """
        pass

    def create_group(self, GroupName: str, Path: str=None) -> CreateGroupResponse:
        r"""Creates a new group.  For information about the number of groups you can create, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html">IAM and STS quotas</a> in the <i>IAM User Guide</i>.

        :param self:
        :param GroupName:  The name of the group to create. Do not include the path in this value. IAM user, group, role, and policy names must be unique within the account. Names are not distinguished by case. For example, you cannot create resources named both "MyResource" and "myresource".<br/>Path:   The path to the group. For more information about paths, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html">IAM identifiers</a> in the <i>IAM User Guide</i>. This parameter is optional. If it is not included, it defaults to a slash (/). This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes. In addition, it can contain any ASCII character from the ! (<code>\u0021</code>) through the DEL character (<code>\u007F</code>), including most punctuation characters, digits, and upper and lowercased letters.<br/>
        :return: Group:  A structure containing details about the new group.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreateDate</i> The date and time, in <a href="http://www.iso.org/iso/iso8601">ISO 8601 date-time format</a>, when the group was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i>  The Amazon Resource Name (ARN) specifying the group. For more information about ARNs and how to use them in policies, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html">IAM identifiers</a> in the <i>IAM User Guide</i>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GroupId</i>  The stable and unique string identifying the group. For more information about IDs, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html">IAM identifiers</a> in the <i>IAM User Guide</i>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GroupName</i> The friendly name that identifies the group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Path</i> The path to the group. For more information about paths, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html">IAM identifiers</a> in the <i>IAM User Guide</i>. <br/>        """
        pass

    def create_instance_profile(self, InstanceProfileName: str, Path: str=None, Tags: List[Tag]=None) -> CreateInstanceProfileResponse:
        r""" Creates a new instance profile. For information about instance profiles, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html">Using roles for applications on Amazon EC2</a> in the <i>IAM User Guide</i>, and <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html#ec2-instance-profile">Instance profiles</a> in the <i>Amazon EC2 User Guide</i>.  For information about the number of instance profiles you can create, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html">IAM object quotas</a> in the <i>IAM User Guide</i>.

        :param self:
        :param Tags:  A list of tags that you want to attach to the newly created IAM instance profile. Each tag consists of a key name and an associated value. For more information about tagging, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html">Tagging IAM resources</a> in the <i>IAM User Guide</i>. <note> If any one of the tags is invalid or if you exceed the allowed maximum number of tags, then the entire request fails and the resource is not created. </note><br/>Path:   The path to the instance profile. For more information about paths, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html">IAM Identifiers</a> in the <i>IAM User Guide</i>. This parameter is optional. If it is not included, it defaults to a slash (/). This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes. In addition, it can contain any ASCII character from the ! (<code>\u0021</code>) through the DEL character (<code>\u007F</code>), including most punctuation characters, digits, and upper and lowercased letters.<br/>InstanceProfileName:  The name of the instance profile to create. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return: InstanceProfile:  A structure containing details about the new instance profile.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> A list of tags that are attached to the instance profile. For more information about tagging, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html">Tagging IAM resources</a> in the <i>IAM User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Roles</i> The role associated with the instance profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreateDate</i> The date when the instance profile was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i>  The Amazon Resource Name (ARN) specifying the instance profile. For more information about ARNs and how to use them in policies, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html">IAM identifiers</a> in the <i>IAM User Guide</i>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceProfileId</i>  The stable and unique string identifying the instance profile. For more information about IDs, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html">IAM identifiers</a> in the <i>IAM User Guide</i>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceProfileName</i> The name identifying the instance profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Path</i>  The path to the instance profile. For more information about paths, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html">IAM identifiers</a> in the <i>IAM User Guide</i>. <br/>        """
        pass

    def create_login_profile(self, Password: str, UserName: str, PasswordResetRequired: booleanType=None) -> CreateLoginProfileResponse:
        r"""Creates a password for the specified IAM user. A password allows an IAM user to access Amazon Web Services services through the Management Console. You can use the CLI, the Amazon Web Services API, or the <b>Users</b> page in the IAM console to create a password for any IAM user. Use <a>ChangePassword</a> to update your own existing password in the <b>My Security Credentials</b> page in the Management Console. For more information about managing passwords, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_ManagingLogins.html">Managing passwords</a> in the <i>IAM User Guide</i>.

        :param self:
        :param PasswordResetRequired:  Specifies whether the user is required to set a new password on next sign-in.<br/>Password:  The new password for the user. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> that is used to validate this parameter is a string of characters. That string can include almost any printable ASCII character from the space (<code>\u0020</code>) through the end of the ASCII character range (<code>\u00FF</code>). You can also include the tab (<code>\u0009</code>), line feed (<code>\u000A</code>), and carriage return (<code>\u000D</code>) characters. Any of these characters are valid in a password. However, many tools, such as the Management Console, might restrict the ability to type certain characters because they have special meaning within that tool.<br/>UserName:  The name of the IAM user to create a password for. The user must already exist. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return: LoginProfile:  A structure containing the user name and password create date.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PasswordResetRequired</i> Specifies whether the user is required to set a new password on next sign-in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreateDate</i> The date when the password for the user was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserName</i> The name of the user, which can be used for signing in to the Management Console.<br/>        """
        pass

    def create_open_id_connect_provider(self, ThumbprintList: List[thumbprintType], Url: str, ClientIDList: List[clientIDType]=None, Tags: List[Tag]=None) -> CreateOpenIDConnectProviderResponse:
        r"""Creates an IAM entity to describe an identity provider (IdP) that supports <a href="http://openid.net/connect/">OpenID Connect (OIDC)</a>. The OIDC provider that you create with this operation can be used as a principal in a role's trust policy. Such a policy establishes a trust relationship between Amazon Web Services and the OIDC provider. If you are using an OIDC identity provider from Google, Facebook, or Amazon Cognito, you don't need to create a separate IAM identity provider. These OIDC identity providers are already built-in to Amazon Web Services and are available for your use. Instead, you can move directly to creating new roles using your identity provider. To learn more, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-idp_oidc.html">Creating a role for web identity or OpenID connect federation</a> in the <i>IAM User Guide</i>. When you create the IAM OIDC provider, you specify the following: <ul> <li> The URL of the OIDC identity provider (IdP) to trust </li> <li> A list of client IDs (also known as audiences) that identify the application or applications allowed to authenticate using the OIDC provider </li> <li> A list of thumbprints of one or more server certificates that the IdP uses </li> </ul> You get all of this information from the OIDC IdP that you want to use to access Amazon Web Services. <note> The trust for the OIDC provider is derived from the IAM provider that this operation creates. Therefore, it is best to limit access to the <a>CreateOpenIDConnectProvider</a> operation to highly privileged users. </note>

        :param self:
        :param Tags:  A list of tags that you want to attach to the new IAM OpenID Connect (OIDC) provider. Each tag consists of a key name and an associated value. For more information about tagging, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html">Tagging IAM resources</a> in the <i>IAM User Guide</i>. <note> If any one of the tags is invalid or if you exceed the allowed maximum number of tags, then the entire request fails and the resource is not created. </note><br/>ThumbprintList:  A list of server certificate thumbprints for the OpenID Connect (OIDC) identity provider's server certificates. Typically this list includes only one entry. However, IAM lets you have up to five thumbprints for an OIDC provider. This lets you maintain multiple thumbprints if the identity provider is rotating certificates. The server certificate thumbprint is the hex-encoded SHA-1 hash value of the X.509 certificate used by the domain where the OpenID Connect provider makes its keys available. It is always a 40-character string. You must provide at least one thumbprint when creating an IAM OIDC provider. For example, assume that the OIDC provider is <code>server.example.com</code> and the provider stores its keys at https://keys.server.example.com/openid-connect. In that case, the thumbprint string would be the hex-encoded SHA-1 hash value of the certificate used by https://keys.server.example.com. For more information about obtaining the OIDC provider's thumbprint, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/identity-providers-oidc-obtain-thumbprint.html">Obtaining the thumbprint for an OpenID Connect provider</a> in the <i>IAM User Guide</i>.<br/>ClientIDList:  A list of client IDs (also known as audiences). When a mobile or web app registers with an OpenID Connect provider, they establish a value that identifies the application. (This is the value that's sent as the <code>client_id</code> parameter on OAuth requests.) You can register multiple client IDs with the same provider. For example, you might have multiple applications that use the same OIDC provider. You cannot register more than 100 client IDs with a single IAM OIDC provider. There is no defined format for a client ID. The <code>CreateOpenIDConnectProviderRequest</code> operation accepts client IDs up to 255 characters long.<br/>Url:  The URL of the identity provider. The URL must begin with <code>https://</code> and should correspond to the <code>iss</code> claim in the provider's OpenID Connect ID tokens. Per the OIDC standard, path components are allowed but query parameters are not. Typically the URL consists of only a hostname, like <code>https://server.example.org</code> or <code>https://example.com</code>. You cannot register the same provider multiple times in a single account. If you try to submit a URL that has already been used for an OpenID Connect provider in the account, you will get an error.<br/>
        :return: Tags:  A list of tags that are attached to the new IAM OIDC provider. The returned list of tags is sorted by tag key. For more information about tagging, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html">Tagging IAM resources</a> in the <i>IAM User Guide</i>.<br/>OpenIDConnectProviderArn:  The Amazon Resource Name (ARN) of the new IAM OpenID Connect provider that is created. For more information, see <a>OpenIDConnectProviderListEntry</a>. <br/>        """
        pass

    def create_policy(self, PolicyDocument: str, PolicyName: str, Path: str=None, Description: str=None, Tags: List[Tag]=None) -> CreatePolicyResponse:
        r"""Creates a new managed policy for your account. This operation creates a policy version with a version identifier of <code>v1</code> and sets v1 as the policy's default version. For more information about policy versions, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-versions.html">Versioning for managed policies</a> in the <i>IAM User Guide</i>. As a best practice, you can validate your IAM policies. To learn more, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_policy-validator.html">Validating IAM policies</a> in the <i>IAM User Guide</i>. For more information about managed policies in general, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html">Managed policies and inline policies</a> in the <i>IAM User Guide</i>.

        :param self:
        :param Tags:  A list of tags that you want to attach to the new IAM customer managed policy. Each tag consists of a key name and an associated value. For more information about tagging, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html">Tagging IAM resources</a> in the <i>IAM User Guide</i>. <note> If any one of the tags is invalid or if you exceed the allowed maximum number of tags, then the entire request fails and the resource is not created. </note><br/>Description:  A friendly description of the policy. Typically used to store information about the permissions defined in the policy. For example, "Grants access to production DynamoDB tables." The policy description is immutable. After a value is assigned, it cannot be changed.<br/>PolicyDocument:  The JSON policy document that you want to use as the content for the new policy. You must provide policies in JSON format in IAM. However, for CloudFormation templates formatted in YAML, you can provide the policy in JSON or YAML format. CloudFormation always converts a YAML policy to JSON format before submitting it to IAM. The maximum length of the policy document that you can pass in this operation, including whitespace, is listed below. To view the maximum character counts of a managed policy with no whitespaces, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html#reference_iam-quotas-entity-length">IAM and STS character quotas</a>. To learn more about JSON policy grammar, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_grammar.html">Grammar of the IAM JSON policy language</a> in the <i>IAM User Guide</i>.  The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> used to validate this parameter is a string of characters consisting of the following: <ul> <li> Any printable ASCII character ranging from the space character (<code>\u0020</code>) through the end of the ASCII character range </li> <li> The printable characters in the Basic Latin and Latin-1 Supplement character set (through <code>\u00FF</code>) </li> <li> The special characters tab (<code>\u0009</code>), line feed (<code>\u000A</code>), and carriage return (<code>\u000D</code>) </li> </ul><br/>Path:  The path for the policy. For more information about paths, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html">IAM identifiers</a> in the <i>IAM User Guide</i>. This parameter is optional. If it is not included, it defaults to a slash (/). This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes. In addition, it can contain any ASCII character from the ! (<code>\u0021</code>) through the DEL character (<code>\u007F</code>), including most punctuation characters, digits, and upper and lowercased letters.<br/>PolicyName:  The friendly name of the policy. IAM user, group, role, and policy names must be unique within the account. Names are not distinguished by case. For example, you cannot create resources named both "MyResource" and "myresource".<br/>
        :return: Policy:  A structure containing details about the new policy.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> A list of tags that are attached to the instance profile. For more information about tagging, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html">Tagging IAM resources</a> in the <i>IAM User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdateDate</i> The date and time, in <a href="http://www.iso.org/iso/iso8601">ISO 8601 date-time format</a>, when the policy was last updated. When a policy has only one version, this field contains the date and time when the policy was created. When a policy has more than one version, this field contains the date and time when the most recent policy version was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreateDate</i> The date and time, in <a href="http://www.iso.org/iso/iso8601">ISO 8601 date-time format</a>, when the policy was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A friendly description of the policy. This element is included in the response to the <a>GetPolicy</a> operation. It is not included in the response to the <a>ListPolicies</a> operation. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsAttachable</i> Specifies whether the policy can be attached to an IAM user, group, or role.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PermissionsBoundaryUsageCount</i> The number of entities (users and roles) for which the policy is used to set the permissions boundary.  For more information about permissions boundaries, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html">Permissions boundaries for IAM identities </a> in the <i>IAM User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AttachmentCount</i> The number of entities (users, groups, and roles) that the policy is attached to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultVersionId</i> The identifier for the version of the policy that is set as the default version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Path</i> The path to the policy. For more information about paths, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html">IAM identifiers</a> in the <i>IAM User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN). ARNs are unique identifiers for Amazon Web Services resources. For more information about ARNs, go to <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs)</a> in the <i>Amazon Web Services General Reference</i>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PolicyId</i> The stable and unique string identifying the policy. For more information about IDs, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html">IAM identifiers</a> in the <i>IAM User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PolicyName</i> The friendly name (not ARN) identifying the policy.<br/>        """
        pass

    def create_policy_version(self, PolicyDocument: str, PolicyArn: str, SetAsDefault: booleanType=None) -> CreatePolicyVersionResponse:
        r"""Creates a new version of the specified managed policy. To update a managed policy, you create a new policy version. A managed policy can have up to five versions. If the policy has five versions, you must delete an existing version using <a>DeletePolicyVersion</a> before you create a new version. Optionally, you can set the new version as the policy's default version. The default version is the version that is in effect for the IAM users, groups, and roles to which the policy is attached. For more information about managed policy versions, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-versions.html">Versioning for managed policies</a> in the <i>IAM User Guide</i>.

        :param self:
        :param SetAsDefault:  Specifies whether to set this version as the policy's default version. When this parameter is <code>true</code>, the new policy version becomes the operative version. That is, it becomes the version that is in effect for the IAM users, groups, and roles that the policy is attached to. For more information about managed policy versions, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-versions.html">Versioning for managed policies</a> in the <i>IAM User Guide</i>.<br/>PolicyDocument:  The JSON policy document that you want to use as the content for this new version of the policy. You must provide policies in JSON format in IAM. However, for CloudFormation templates formatted in YAML, you can provide the policy in JSON or YAML format. CloudFormation always converts a YAML policy to JSON format before submitting it to IAM. The maximum length of the policy document that you can pass in this operation, including whitespace, is listed below. To view the maximum character counts of a managed policy with no whitespaces, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html#reference_iam-quotas-entity-length">IAM and STS character quotas</a>. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> used to validate this parameter is a string of characters consisting of the following: <ul> <li> Any printable ASCII character ranging from the space character (<code>\u0020</code>) through the end of the ASCII character range </li> <li> The printable characters in the Basic Latin and Latin-1 Supplement character set (through <code>\u00FF</code>) </li> <li> The special characters tab (<code>\u0009</code>), line feed (<code>\u000A</code>), and carriage return (<code>\u000D</code>) </li> </ul><br/>PolicyArn:  The Amazon Resource Name (ARN) of the IAM policy to which you want to add a new version. For more information about ARNs, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs)</a> in the <i>Amazon Web Services General Reference</i>.<br/>
        :return: PolicyVersion:  A structure containing details about the new policy version.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreateDate</i> The date and time, in <a href="http://www.iso.org/iso/iso8601">ISO 8601 date-time format</a>, when the policy version was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsDefaultVersion</i> Specifies whether the policy version is set as the policy's default version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VersionId</i> The identifier for the policy version. Policy version identifiers always begin with <code>v</code> (always lowercase). When a policy is created, the first policy version is <code>v1</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Document</i> The policy document. The policy document is returned in the response to the <a>GetPolicyVersion</a> and <a>GetAccountAuthorizationDetails</a> operations. It is not returned in the response to the <a>CreatePolicyVersion</a> or <a>ListPolicyVersions</a> operations.  The policy document returned in this structure is URL-encoded compliant with <a href="https://tools.ietf.org/html/rfc3986">RFC 3986</a>. You can use a URL decoding method to convert the policy back to plain JSON text. For example, if you use Java, you can use the <code>decode</code> method of the <code>java.net.URLDecoder</code> utility class in the Java SDK. Other languages and SDKs provide similar functionality.<br/>        """
        pass

    def create_role(self, AssumeRolePolicyDocument: str, RoleName: str, Path: str=None, Description: str=None, MaxSessionDuration: int=None, PermissionsBoundary: str=None, Tags: List[Tag]=None) -> CreateRoleResponse:
        r"""Creates a new role for your account. For more information about roles, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/WorkingWithRoles.html">IAM roles</a>. For information about quotas for role names and the number of roles you can create, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html">IAM and STS quotas</a> in the <i>IAM User Guide</i>.

        :param self:
        :param Tags:  A list of tags that you want to attach to the new role. Each tag consists of a key name and an associated value. For more information about tagging, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html">Tagging IAM resources</a> in the <i>IAM User Guide</i>. <note> If any one of the tags is invalid or if you exceed the allowed maximum number of tags, then the entire request fails and the resource is not created. </note><br/>PermissionsBoundary:  The ARN of the policy that is used to set the permissions boundary for the role.<br/>MaxSessionDuration:  The maximum session duration (in seconds) that you want to set for the specified role. If you do not specify a value for this setting, the default maximum of one hour is applied. This setting can have a value from 1 hour to 12 hours. Anyone who assumes the role from the or API can use the <code>DurationSeconds</code> API parameter or the <code>duration-seconds</code> CLI parameter to request a longer session. The <code>MaxSessionDuration</code> setting determines the maximum duration that can be requested using the <code>DurationSeconds</code> parameter. If users don't specify a value for the <code>DurationSeconds</code> parameter, their security credentials are valid for one hour by default. This applies when you use the <code>AssumeRole*</code> API operations or the <code>assume-role*</code> CLI operations but does not apply when you use those operations to create a console URL. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html">Using IAM roles</a> in the <i>IAM User Guide</i>.<br/>Description:  A description of the role.<br/>AssumeRolePolicyDocument:  The trust relationship policy document that grants an entity permission to assume the role. In IAM, you must provide a JSON policy that has been converted to a string. However, for CloudFormation templates formatted in YAML, you can provide the policy in JSON or YAML format. CloudFormation always converts a YAML policy to JSON format before submitting it to IAM. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> used to validate this parameter is a string of characters consisting of the following: <ul> <li> Any printable ASCII character ranging from the space character (<code>\u0020</code>) through the end of the ASCII character range </li> <li> The printable characters in the Basic Latin and Latin-1 Supplement character set (through <code>\u00FF</code>) </li> <li> The special characters tab (<code>\u0009</code>), line feed (<code>\u000A</code>), and carriage return (<code>\u000D</code>) </li> </ul>  Upon success, the response includes the same trust policy in JSON format.<br/>RoleName:  The name of the role to create. IAM user, group, role, and policy names must be unique within the account. Names are not distinguished by case. For example, you cannot create resources named both "MyResource" and "myresource".<br/>Path:   The path to the role. For more information about paths, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html">IAM Identifiers</a> in the <i>IAM User Guide</i>. This parameter is optional. If it is not included, it defaults to a slash (/). This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes. In addition, it can contain any ASCII character from the ! (<code>\u0021</code>) through the DEL character (<code>\u007F</code>), including most punctuation characters, digits, and upper and lowercased letters.<br/>
        :return: Role:  A structure containing details about the new role.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleLastUsed</i> Contains information about the last time that an IAM role was used. This includes the date and time and the Region in which the role was last used. Activity is only reported for the trailing 400 days. This period can be shorter if your Region began supporting these features within the last year. The role might have been used more than 400 days ago. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor.html#access-advisor_tracking-period">Regions where data is tracked</a> in the <i>IAM User Guide</i>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RoleLastUsed</b>: Contains information about the last time that an IAM role was used. This includes the date and time and the Region in which the role was last used. Activity is only reported for the trailing 400 days. This period can be shorter if your Region began supporting these features within the last year. The role might have been used more than 400 days ago. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor.html#access-advisor_tracking-period">Regions where data is tracked</a> in the <i>IAM User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> A list of tags that are attached to the role. For more information about tagging, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html">Tagging IAM resources</a> in the <i>IAM User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PermissionsBoundary</i> The ARN of the policy used to set the permissions boundary for the role. For more information about permissions boundaries, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html">Permissions boundaries for IAM identities </a> in the <i>IAM User Guide</i>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PermissionsBoundary</b>: The ARN of the policy used to set the permissions boundary for the role. For more information about permissions boundaries, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html">Permissions boundaries for IAM identities </a> in the <i>IAM User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxSessionDuration</i> The maximum session duration (in seconds) for the specified role. Anyone who uses the CLI, or API to assume the role can specify the duration using the optional <code>DurationSeconds</code> API parameter or <code>duration-seconds</code> CLI parameter.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A description of the role that you provide.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssumeRolePolicyDocument</i> The policy that grants an entity permission to assume the role.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreateDate</i> The date and time, in <a href="http://www.iso.org/iso/iso8601">ISO 8601 date-time format</a>, when the role was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i>  The Amazon Resource Name (ARN) specifying the role. For more information about ARNs and how to use them in policies, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html">IAM identifiers</a> in the <i>IAM User Guide</i> guide. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleId</i>  The stable and unique string identifying the role. For more information about IDs, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html">IAM identifiers</a> in the <i>IAM User Guide</i>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleName</i> The friendly name that identifies the role.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Path</i>  The path to the role. For more information about paths, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html">IAM identifiers</a> in the <i>IAM User Guide</i>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PermissionsBoundaryArn</i>  The ARN of the policy used to set the permissions boundary for the user or role.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PermissionsBoundaryType</i>  The permissions boundary usage type that indicates what type of IAM resource is used as the permissions boundary for an entity. This data type can only have a value of <code>Policy</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Region</i> The name of the Region in which the role was last used.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUsedDate</i> The date and time, in <a href="http://www.iso.org/iso/iso8601">ISO 8601 date-time format</a> that the role was last used. This field is null if the role has not been used within the IAM tracking period. For more information about the tracking period, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor.html#access-advisor_tracking-period">Regions where data is tracked</a> in the <i>IAM User Guide</i>. <br/>        """
        pass

    def create_saml_provider(self, Name: str, SAMLMetadataDocument: str, Tags: List[Tag]=None) -> CreateSAMLProviderResponse:
        r"""Creates an IAM resource that describes an identity provider (IdP) that supports SAML 2.0. The SAML provider resource that you create with this operation can be used as a principal in an IAM role's trust policy. Such a policy can enable federated users who sign in using the SAML IdP to assume the role. You can create an IAM role that supports Web-based single sign-on (SSO) to the Management Console or one that supports API access to Amazon Web Services. When you create the SAML provider resource, you upload a SAML metadata document that you get from your IdP. That document includes the issuer's name, expiration information, and keys that can be used to validate the SAML authentication response (assertions) that the IdP sends. You must generate the metadata document using the identity management software that is used as your organization's IdP. <note>  This operation requires <a href="https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html">Signature Version 4</a>. </note>  For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_enable-console-saml.html">Enabling SAML 2.0 federated users to access the Management Console</a> and <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_saml.html">About SAML 2.0-based federation</a> in the <i>IAM User Guide</i>.

        :param self:
        :param Tags:  A list of tags that you want to attach to the new IAM SAML provider. Each tag consists of a key name and an associated value. For more information about tagging, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html">Tagging IAM resources</a> in the <i>IAM User Guide</i>. <note> If any one of the tags is invalid or if you exceed the allowed maximum number of tags, then the entire request fails and the resource is not created. </note><br/>Name:  The name of the provider to create. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>SAMLMetadataDocument:  An XML document generated by an identity provider (IdP) that supports SAML 2.0. The document includes the issuer's name, expiration information, and keys that can be used to validate the SAML authentication response (assertions) that are received from the IdP. You must generate the metadata document using the identity management software that is used as your organization's IdP. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_saml.html">About SAML 2.0-based federation</a> in the <i>IAM User Guide</i> <br/>
        :return: Tags:  A list of tags that are attached to the new IAM SAML provider. The returned list of tags is sorted by tag key. For more information about tagging, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html">Tagging IAM resources</a> in the <i>IAM User Guide</i>.<br/>SAMLProviderArn:  The Amazon Resource Name (ARN) of the new SAML provider resource in IAM.<br/>        """
        pass

    def create_service_linked_role(self, AWSServiceName: str, Description: str=None, CustomSuffix: str=None) -> CreateServiceLinkedRoleResponse:
        r"""Creates an IAM role that is linked to a specific Amazon Web Services service. The service controls the attached policies and when the role can be deleted. This helps ensure that the service is not broken by an unexpectedly changed or deleted role, which could put your Amazon Web Services resources into an unknown state. Allowing the service to control the role helps improve service stability and proper cleanup when a service and its role are no longer needed. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html">Using service-linked roles</a> in the <i>IAM User Guide</i>.  To attach a policy to this service-linked role, you must make the request using the Amazon Web Services service that depends on this role.

        :param self:
        :param CustomSuffix:  <p/> A string that you provide, which is combined with the service-provided prefix to form the complete role name. If you make multiple requests for the same service, then you must supply a different <code>CustomSuffix</code> for each request. Otherwise the request fails with a duplicate role name error. For example, you could add <code>-1</code> or <code>-debug</code> to the suffix. Some services do not support the <code>CustomSuffix</code> parameter. If you provide an optional suffix and the operation fails, try the operation again without the suffix.<br/>Description:  The description of the role.<br/>AWSServiceName:  The service principal for the Amazon Web Services service to which this role is attached. You use a string similar to a URL but without the http:// in front. For example: <code>elasticbeanstalk.amazonaws.com</code>.  Service principals are unique and case-sensitive. To find the exact service principal for your service-linked role, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html">Amazon Web Services services that work with IAM</a> in the <i>IAM User Guide</i>. Look for the services that have <b>Yes </b>in the <b>Service-Linked Role</b> column. Choose the <b>Yes</b> link to view the service-linked role documentation for that service.<br/>
        :return: Role:  A <a>Role</a> object that contains details about the newly created role.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleLastUsed</i> Contains information about the last time that an IAM role was used. This includes the date and time and the Region in which the role was last used. Activity is only reported for the trailing 400 days. This period can be shorter if your Region began supporting these features within the last year. The role might have been used more than 400 days ago. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor.html#access-advisor_tracking-period">Regions where data is tracked</a> in the <i>IAM User Guide</i>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RoleLastUsed</b>: Contains information about the last time that an IAM role was used. This includes the date and time and the Region in which the role was last used. Activity is only reported for the trailing 400 days. This period can be shorter if your Region began supporting these features within the last year. The role might have been used more than 400 days ago. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor.html#access-advisor_tracking-period">Regions where data is tracked</a> in the <i>IAM User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> A list of tags that are attached to the role. For more information about tagging, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html">Tagging IAM resources</a> in the <i>IAM User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PermissionsBoundary</i> The ARN of the policy used to set the permissions boundary for the role. For more information about permissions boundaries, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html">Permissions boundaries for IAM identities </a> in the <i>IAM User Guide</i>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PermissionsBoundary</b>: The ARN of the policy used to set the permissions boundary for the role. For more information about permissions boundaries, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html">Permissions boundaries for IAM identities </a> in the <i>IAM User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxSessionDuration</i> The maximum session duration (in seconds) for the specified role. Anyone who uses the CLI, or API to assume the role can specify the duration using the optional <code>DurationSeconds</code> API parameter or <code>duration-seconds</code> CLI parameter.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A description of the role that you provide.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssumeRolePolicyDocument</i> The policy that grants an entity permission to assume the role.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreateDate</i> The date and time, in <a href="http://www.iso.org/iso/iso8601">ISO 8601 date-time format</a>, when the role was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i>  The Amazon Resource Name (ARN) specifying the role. For more information about ARNs and how to use them in policies, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html">IAM identifiers</a> in the <i>IAM User Guide</i> guide. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleId</i>  The stable and unique string identifying the role. For more information about IDs, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html">IAM identifiers</a> in the <i>IAM User Guide</i>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleName</i> The friendly name that identifies the role.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Path</i>  The path to the role. For more information about paths, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html">IAM identifiers</a> in the <i>IAM User Guide</i>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PermissionsBoundaryArn</i>  The ARN of the policy used to set the permissions boundary for the user or role.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PermissionsBoundaryType</i>  The permissions boundary usage type that indicates what type of IAM resource is used as the permissions boundary for an entity. This data type can only have a value of <code>Policy</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Region</i> The name of the Region in which the role was last used.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUsedDate</i> The date and time, in <a href="http://www.iso.org/iso/iso8601">ISO 8601 date-time format</a> that the role was last used. This field is null if the role has not been used within the IAM tracking period. For more information about the tracking period, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor.html#access-advisor_tracking-period">Regions where data is tracked</a> in the <i>IAM User Guide</i>. <br/>        """
        pass

    def create_service_specific_credential(self, ServiceName: str, UserName: str) -> CreateServiceSpecificCredentialResponse:
        r"""Generates a set of credentials consisting of a user name and password that can be used to access the service specified in the request. These credentials are generated by IAM, and can be used only for the specified service.  You can have a maximum of two sets of service-specific credentials for each supported service per user. You can create service-specific credentials for CodeCommit and Amazon Keyspaces (for Apache Cassandra). You can reset the password to a new service-generated value by calling <a>ResetServiceSpecificCredential</a>. For more information about service-specific credentials, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_ssh-keys.html">Using IAM with CodeCommit: Git credentials, SSH keys, and Amazon Web Services access keys</a> in the <i>IAM User Guide</i>.

        :param self:
        :param ServiceName:  The name of the Amazon Web Services service that is to be associated with the credentials. The service you specify here is the only service that can be accessed using these credentials.<br/>UserName:  The name of the IAM user that is to be associated with the credentials. The new service-specific credentials have the same permissions as the associated user except that they can be used only to access the specified service. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return: ServiceSpecificCredential:  A structure that contains information about the newly created service-specific credential. <important> This is the only time that the password for this credential set is available. It cannot be recovered later. Instead, you must reset the password with <a>ResetServiceSpecificCredential</a>. </important>:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the service-specific credential. <code>Active</code> means that the key is valid for API calls, while <code>Inactive</code> means it is not.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserName</i> The name of the IAM user associated with the service-specific credential.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceSpecificCredentialId</i> The unique identifier for the service-specific credential.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServicePassword</i> The generated password for the service-specific credential.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceUserName</i> The generated user name for the service-specific credential. This value is generated by combining the IAM user's name combined with the ID number of the Amazon Web Services account, as in <code>jane-at-123456789012</code>, for example. This value cannot be configured by the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceName</i> The name of the service associated with the service-specific credential.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreateDate</i> The date and time, in <a href="http://www.iso.org/iso/iso8601">ISO 8601 date-time format</a>, when the service-specific credential were created.<br/>        """
        pass

    def create_user(self, UserName: str, Path: str=None, PermissionsBoundary: str=None, Tags: List[Tag]=None) -> CreateUserResponse:
        r"""Creates a new IAM user for your account.  For information about quotas for the number of IAM users you can create, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html">IAM and STS quotas</a> in the <i>IAM User Guide</i>.

        :param self:
        :param Tags:  A list of tags that you want to attach to the new user. Each tag consists of a key name and an associated value. For more information about tagging, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html">Tagging IAM resources</a> in the <i>IAM User Guide</i>. <note> If any one of the tags is invalid or if you exceed the allowed maximum number of tags, then the entire request fails and the resource is not created. </note><br/>PermissionsBoundary:  The ARN of the policy that is used to set the permissions boundary for the user.<br/>UserName:  The name of the user to create. IAM user, group, role, and policy names must be unique within the account. Names are not distinguished by case. For example, you cannot create resources named both "MyResource" and "myresource".<br/>Path:   The path for the user name. For more information about paths, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html">IAM identifiers</a> in the <i>IAM User Guide</i>. This parameter is optional. If it is not included, it defaults to a slash (/). This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes. In addition, it can contain any ASCII character from the ! (<code>\u0021</code>) through the DEL character (<code>\u007F</code>), including most punctuation characters, digits, and upper and lowercased letters.<br/>
        :return: User:  A structure with details about the new IAM user.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> A list of tags that are associated with the user. For more information about tagging, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html">Tagging IAM resources</a> in the <i>IAM User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PermissionsBoundary</i> For more information about permissions boundaries, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html">Permissions boundaries for IAM identities </a> in the <i>IAM User Guide</i>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PermissionsBoundary</b>: For more information about permissions boundaries, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html">Permissions boundaries for IAM identities </a> in the <i>IAM User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PasswordLastUsed</i> The date and time, in <a href="http://www.iso.org/iso/iso8601">ISO 8601 date-time format</a>, when the user's password was last used to sign in to an Amazon Web Services website. For a list of Amazon Web Services websites that capture a user's last sign-in time, see the <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/credential-reports.html">Credential reports</a> topic in the <i>IAM User Guide</i>. If a password is used more than once in a five-minute span, only the first use is returned in this field. If the field is null (no value), then it indicates that they never signed in with a password. This can be because: <ul> <li> The user never had a password. </li> <li> A password exists but has not been used since IAM started tracking this information on October 20, 2014. </li> </ul> A null value does not mean that the user <i>never</i> had a password. Also, if the user does not currently have a password but had one in the past, then this field contains the date and time the most recent password was used. This value is returned only in the <a>GetUser</a> and <a>ListUsers</a> operations. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreateDate</i> The date and time, in <a href="http://www.iso.org/iso/iso8601">ISO 8601 date-time format</a>, when the user was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) that identifies the user. For more information about ARNs and how to use ARNs in policies, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html">IAM Identifiers</a> in the <i>IAM User Guide</i>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserId</i> The stable and unique string identifying the user. For more information about IDs, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html">IAM identifiers</a> in the <i>IAM User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserName</i> The friendly name identifying the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Path</i> The path to the user. For more information about paths, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html">IAM identifiers</a> in the <i>IAM User Guide</i>. The ARN of the policy used to set the permissions boundary for the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PermissionsBoundaryArn</i>  The ARN of the policy used to set the permissions boundary for the user or role.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PermissionsBoundaryType</i>  The permissions boundary usage type that indicates what type of IAM resource is used as the permissions boundary for an entity. This data type can only have a value of <code>Policy</code>.<br/>        """
        pass

    def create_virtual_mfa_device(self, VirtualMFADeviceName: str, Path: str=None, Tags: List[Tag]=None) -> CreateVirtualMFADeviceResponse:
        r"""Creates a new virtual MFA device for the account. After creating the virtual MFA, use <a>EnableMFADevice</a> to attach the MFA device to an IAM user. For more information about creating and working with virtual MFA devices, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_VirtualMFA.html">Using a virtual MFA device</a> in the <i>IAM User Guide</i>. For information about the maximum number of MFA devices you can create, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html">IAM and STS quotas</a> in the <i>IAM User Guide</i>. <important> The seed information contained in the QR code and the Base32 string should be treated like any other secret access information. In other words, protect the seed information as you would your Amazon Web Services access keys or your passwords. After you provision your virtual device, you should ensure that the information is destroyed following secure procedures. </important>

        :param self:
        :param Tags:  A list of tags that you want to attach to the new IAM virtual MFA device. Each tag consists of a key name and an associated value. For more information about tagging, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html">Tagging IAM resources</a> in the <i>IAM User Guide</i>. <note> If any one of the tags is invalid or if you exceed the allowed maximum number of tags, then the entire request fails and the resource is not created. </note><br/>VirtualMFADeviceName:  The name of the virtual MFA device. Use with path to uniquely identify a virtual MFA device. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>Path:   The path for the virtual MFA device. For more information about paths, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html">IAM identifiers</a> in the <i>IAM User Guide</i>. This parameter is optional. If it is not included, it defaults to a slash (/). This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes. In addition, it can contain any ASCII character from the ! (<code>\u0021</code>) through the DEL character (<code>\u007F</code>), including most punctuation characters, digits, and upper and lowercased letters.<br/>
        :return: VirtualMFADevice:  A structure containing details about the new virtual MFA device.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> A list of tags that are attached to the virtual MFA device. For more information about tagging, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html">Tagging IAM resources</a> in the <i>IAM User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableDate</i> The date and time on which the virtual MFA device was enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>User</i> The IAM user associated with this virtual MFA device.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>User</b>: The IAM user associated with this virtual MFA device.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>QRCodePNG</i>  A QR code PNG image that encodes <code>otpauth://totp/$virtualMFADeviceName@$AccountName?secret=$Base32String</code> where <code>$virtualMFADeviceName</code> is one of the create call arguments. <code>AccountName</code> is the user name if set (otherwise, the account ID otherwise), and <code>Base32String</code> is the seed in base32 format. The <code>Base32String</code> value is base64-encoded. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Base32StringSeed</i>  The base32 seed defined as specified in <a href="https://tools.ietf.org/html/rfc3548.txt">RFC3548</a>. The <code>Base32StringSeed</code> is base64-encoded. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SerialNumber</i> The serial number associated with <code>VirtualMFADevice</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PasswordLastUsed</i> The date and time, in <a href="http://www.iso.org/iso/iso8601">ISO 8601 date-time format</a>, when the user's password was last used to sign in to an Amazon Web Services website. For a list of Amazon Web Services websites that capture a user's last sign-in time, see the <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/credential-reports.html">Credential reports</a> topic in the <i>IAM User Guide</i>. If a password is used more than once in a five-minute span, only the first use is returned in this field. If the field is null (no value), then it indicates that they never signed in with a password. This can be because: <ul> <li> The user never had a password. </li> <li> A password exists but has not been used since IAM started tracking this information on October 20, 2014. </li> </ul> A null value does not mean that the user <i>never</i> had a password. Also, if the user does not currently have a password but had one in the past, then this field contains the date and time the most recent password was used. This value is returned only in the <a>GetUser</a> and <a>ListUsers</a> operations. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CreateDate</i> The date and time, in <a href="http://www.iso.org/iso/iso8601">ISO 8601 date-time format</a>, when the user was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) that identifies the user. For more information about ARNs and how to use ARNs in policies, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html">IAM Identifiers</a> in the <i>IAM User Guide</i>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UserId</i> The stable and unique string identifying the user. For more information about IDs, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html">IAM identifiers</a> in the <i>IAM User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UserName</i> The friendly name identifying the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Path</i> The path to the user. For more information about paths, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html">IAM identifiers</a> in the <i>IAM User Guide</i>. The ARN of the policy used to set the permissions boundary for the user.<br/>For more information about permissions boundaries, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html">Permissions boundaries for IAM identities </a> in the <i>IAM User Guide</i>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PermissionsBoundary</b>: For more information about permissions boundaries, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html">Permissions boundaries for IAM identities </a> in the <i>IAM User Guide</i>.        """
        pass

    def deactivate_mfa_device(self, SerialNumber: str, UserName: str):
        r"""Deactivates the specified MFA device and removes it from association with the user name for which it was originally enabled. For more information about creating and working with virtual MFA devices, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_VirtualMFA.html">Enabling a virtual multi-factor authentication (MFA) device</a> in the <i>IAM User Guide</i>.

        :param self:
        :param SerialNumber:  The serial number that uniquely identifies the MFA device. For virtual MFA devices, the serial number is the device ARN. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@:/-<br/>UserName:  The name of the user whose MFA device you want to deactivate. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return:         """
        pass

    def delete_access_key(self, AccessKeyId: str, UserName: str=None):
        r"""Deletes the access key pair associated with the specified IAM user. If you do not specify a user name, IAM determines the user name implicitly based on the Amazon Web Services access key ID signing the request. This operation works for access keys under the account. Consequently, you can use this operation to manage account root user credentials even if the account has no associated users.

        :param self:
        :param AccessKeyId:  The access key ID for the access key ID and secret access key you want to delete. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters that can consist of any upper or lowercased letter or digit.<br/>UserName:  The name of the user whose access key pair you want to delete. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return:         """
        pass

    def delete_account_alias(self, AccountAlias: str):
        r""" Deletes the specified account alias. For information about using an Amazon Web Services account alias, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/AccountAlias.html">Using an alias for your account ID</a> in the <i>IAM User Guide</i>.

        :param self:
        :param AccountAlias:  The name of the account alias to delete. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of lowercase letters, digits, and dashes. You cannot start or finish with a dash, nor can you have two dashes in a row.<br/>
        :return:         """
        pass

    def delete_account_password_policy(self):
        r"""Deletes the password policy for the account. There are no parameters.

        :param self:
        :param 
        :return:         """
        pass

    def delete_group(self, GroupName: str):
        r"""Deletes the specified IAM group. The group must not contain any users or have any attached policies.

        :param self:
        :param GroupName:  The name of the IAM group to delete. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return:         """
        pass

    def delete_group_policy(self, PolicyName: str, GroupName: str):
        r"""Deletes the specified inline policy that is embedded in the specified IAM group. A group can also have managed policies attached to it. To detach a managed policy from a group, use <a>DetachGroupPolicy</a>. For more information about policies, refer to <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html">Managed policies and inline policies</a> in the <i>IAM User Guide</i>.

        :param self:
        :param PolicyName:  The name identifying the policy document to delete. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>GroupName:  The name (friendly name, not ARN) identifying the group that the policy is embedded in. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return:         """
        pass

    def delete_instance_profile(self, InstanceProfileName: str):
        r"""Deletes the specified instance profile. The instance profile must not have an associated role. <important> Make sure that you do not have any Amazon EC2 instances running with the instance profile you are about to delete. Deleting a role or instance profile that is associated with a running instance will break any applications running on the instance. </important> For more information about instance profiles, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/AboutInstanceProfiles.html">About instance profiles</a>.

        :param self:
        :param InstanceProfileName:  The name of the instance profile to delete. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return:         """
        pass

    def delete_login_profile(self, UserName: str):
        r"""Deletes the password for the specified IAM user, which terminates the user's ability to access Amazon Web Services services through the Management Console. You can use the CLI, the Amazon Web Services API, or the <b>Users</b> page in the IAM console to delete a password for any IAM user. You can use <a>ChangePassword</a> to update, but not delete, your own password in the <b>My Security Credentials</b> page in the Management Console. <important>  Deleting a user's password does not prevent a user from accessing Amazon Web Services through the command line interface or the API. To prevent all user access, you must also either make any access keys inactive or delete them. For more information about making keys inactive or deleting them, see <a>UpdateAccessKey</a> and <a>DeleteAccessKey</a>.  </important>

        :param self:
        :param UserName:  The name of the user whose password you want to delete. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return:         """
        pass

    def delete_open_id_connect_provider(self, OpenIDConnectProviderArn: str):
        r"""Deletes an OpenID Connect identity provider (IdP) resource object in IAM. Deleting an IAM OIDC provider resource does not update any roles that reference the provider as a principal in their trust policies. Any attempt to assume a role that references a deleted provider fails. This operation is idempotent; it does not fail or return an error if you call the operation for a provider that does not exist.

        :param self:
        :param OpenIDConnectProviderArn:  The Amazon Resource Name (ARN) of the IAM OpenID Connect provider resource object to delete. You can get a list of OpenID Connect provider resource ARNs by using the <a>ListOpenIDConnectProviders</a> operation.<br/>
        :return:         """
        pass

    def delete_policy(self, PolicyArn: str):
        r"""Deletes the specified managed policy. Before you can delete a managed policy, you must first detach the policy from all users, groups, and roles that it is attached to. In addition, you must delete all the policy's versions. The following steps describe the process for deleting a managed policy: <ul> <li> Detach the policy from all users, groups, and roles that the policy is attached to, using <a>DetachUserPolicy</a>, <a>DetachGroupPolicy</a>, or <a>DetachRolePolicy</a>. To list all the users, groups, and roles that a policy is attached to, use <a>ListEntitiesForPolicy</a>. </li> <li> Delete all versions of the policy using <a>DeletePolicyVersion</a>. To list the policy's versions, use <a>ListPolicyVersions</a>. You cannot use <a>DeletePolicyVersion</a> to delete the version that is marked as the default version. You delete the policy's default version in the next step of the process. </li> <li> Delete the policy (this automatically deletes the policy's default version) using this operation. </li> </ul> For information about managed policies, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html">Managed policies and inline policies</a> in the <i>IAM User Guide</i>.

        :param self:
        :param PolicyArn:  The Amazon Resource Name (ARN) of the IAM policy you want to delete. For more information about ARNs, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs)</a> in the <i>Amazon Web Services General Reference</i>.<br/>
        :return:         """
        pass

    def delete_policy_version(self, VersionId: str, PolicyArn: str):
        r"""Deletes the specified version from the specified managed policy. You cannot delete the default version from a policy using this operation. To delete the default version from a policy, use <a>DeletePolicy</a>. To find out which version of a policy is marked as the default version, use <a>ListPolicyVersions</a>. For information about versions for managed policies, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-versions.html">Versioning for managed policies</a> in the <i>IAM User Guide</i>.

        :param self:
        :param VersionId:  The policy version to delete. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters that consists of the lowercase letter 'v' followed by one or two digits, and optionally followed by a period '.' and a string of letters and digits. For more information about managed policy versions, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-versions.html">Versioning for managed policies</a> in the <i>IAM User Guide</i>.<br/>PolicyArn:  The Amazon Resource Name (ARN) of the IAM policy from which you want to delete a version. For more information about ARNs, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs)</a> in the <i>Amazon Web Services General Reference</i>.<br/>
        :return:         """
        pass

    def delete_role(self, RoleName: str):
        r"""Deletes the specified role. The role must not have any policies attached. For more information about roles, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/WorkingWithRoles.html">Working with roles</a>. <important> Make sure that you do not have any Amazon EC2 instances running with the role you are about to delete. Deleting a role or instance profile that is associated with a running instance will break any applications running on the instance. </important>

        :param self:
        :param RoleName:  The name of the role to delete. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return:         """
        pass

    def delete_role_permissions_boundary(self, RoleName: str):
        r"""Deletes the permissions boundary for the specified IAM role.  <important> Deleting the permissions boundary for a role might increase its permissions. For example, it might allow anyone who assumes the role to perform all the actions granted in its permissions policies.  </important>

        :param self:
        :param RoleName:  The name (friendly name, not ARN) of the IAM role from which you want to remove the permissions boundary.<br/>
        :return:         """
        pass

    def delete_role_policy(self, PolicyName: str, RoleName: str):
        r"""Deletes the specified inline policy that is embedded in the specified IAM role. A role can also have managed policies attached to it. To detach a managed policy from a role, use <a>DetachRolePolicy</a>. For more information about policies, refer to <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html">Managed policies and inline policies</a> in the <i>IAM User Guide</i>.

        :param self:
        :param PolicyName:  The name of the inline policy to delete from the specified IAM role. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>RoleName:  The name (friendly name, not ARN) identifying the role that the policy is embedded in. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return:         """
        pass

    def delete_saml_provider(self, SAMLProviderArn: str):
        r"""Deletes a SAML provider resource in IAM. Deleting the provider resource from IAM does not update any roles that reference the SAML provider resource's ARN as a principal in their trust policies. Any attempt to assume a role that references a non-existent provider resource ARN fails. <note>  This operation requires <a href="https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html">Signature Version 4</a>. </note>

        :param self:
        :param SAMLProviderArn:  The Amazon Resource Name (ARN) of the SAML provider to delete.<br/>
        :return:         """
        pass

    def delete_ssh_public_key(self, SSHPublicKeyId: str, UserName: str):
        r"""Deletes the specified SSH public key. The SSH public key deleted by this operation is used only for authenticating the associated IAM user to an CodeCommit repository. For more information about using SSH keys to authenticate to an CodeCommit repository, see <a href="https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-credentials-ssh.html">Set up CodeCommit for SSH connections</a> in the <i>CodeCommit User Guide</i>.

        :param self:
        :param SSHPublicKeyId:  The unique identifier for the SSH public key. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters that can consist of any upper or lowercased letter or digit.<br/>UserName:  The name of the IAM user associated with the SSH public key. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return:         """
        pass

    def delete_server_certificate(self, ServerCertificateName: str):
        r"""Deletes the specified server certificate. For more information about working with server certificates, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html">Working with server certificates</a> in the <i>IAM User Guide</i>. This topic also includes a list of Amazon Web Services services that can use the server certificates that you manage with IAM. <important>  If you are using a server certificate with Elastic Load Balancing, deleting the certificate could have implications for your application. If Elastic Load Balancing doesn't detect the deletion of bound certificates, it may continue to use the certificates. This could cause Elastic Load Balancing to stop accepting traffic. We recommend that you remove the reference to the certificate from Elastic Load Balancing before using this command to delete the certificate. For more information, see <a href="https://docs.aws.amazon.com/ElasticLoadBalancing/latest/APIReference/API_DeleteLoadBalancerListeners.html">DeleteLoadBalancerListeners</a> in the <i>Elastic Load Balancing API Reference</i>. </important>

        :param self:
        :param ServerCertificateName:  The name of the server certificate you want to delete. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return:         """
        pass

    def delete_service_linked_role(self, RoleName: str) -> DeleteServiceLinkedRoleResponse:
        r"""Submits a service-linked role deletion request and returns a <code>DeletionTaskId</code>, which you can use to check the status of the deletion. Before you call this operation, confirm that the role has no active sessions and that any resources used by the role in the linked service are deleted. If you call this operation more than once for the same service-linked role and an earlier deletion task is not complete, then the <code>DeletionTaskId</code> of the earlier request is returned. If you submit a deletion request for a service-linked role whose linked service is still accessing a resource, then the deletion task fails. If it fails, the <a>GetServiceLinkedRoleDeletionStatus</a> operation returns the reason for the failure, usually including the resources that must be deleted. To delete the service-linked role, you must first remove those resources from the linked service and then submit the deletion request again. Resources are specific to the service that is linked to the role. For more information about removing resources from a service, see the <a href="http://docs.aws.amazon.com/">Amazon Web Services documentation</a> for your service. For more information about service-linked roles, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role">Roles terms and concepts: Amazon Web Services service-linked role</a> in the <i>IAM User Guide</i>.

        :param self:
        :param RoleName:  The name of the service-linked role to be deleted.<br/>
        :return: DeletionTaskId:  The deletion task identifier that you can use to check the status of the deletion. This identifier is returned in the format <code>task/aws-service-role/&lt;service-principal-name&gt;/&lt;role-name&gt;/&lt;task-uuid&gt;</code>.<br/>        """
        pass

    def delete_service_specific_credential(self, ServiceSpecificCredentialId: str, UserName: str=None):
        r"""Deletes the specified service-specific credential.

        :param self:
        :param ServiceSpecificCredentialId:  The unique identifier of the service-specific credential. You can get this value by calling <a>ListServiceSpecificCredentials</a>. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters that can consist of any upper or lowercased letter or digit.<br/>UserName:  The name of the IAM user associated with the service-specific credential. If this value is not specified, then the operation assumes the user whose credentials are used to call the operation. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return:         """
        pass

    def delete_signing_certificate(self, CertificateId: str, UserName: str=None):
        r"""Deletes a signing certificate associated with the specified IAM user. If you do not specify a user name, IAM determines the user name implicitly based on the Amazon Web Services access key ID signing the request. This operation works for access keys under the account. Consequently, you can use this operation to manage account root user credentials even if the account has no associated IAM users.

        :param self:
        :param CertificateId:  The ID of the signing certificate to delete. The format of this parameter, as described by its <a href="http://wikipedia.org/wiki/regex">regex</a> pattern, is a string of characters that can be upper- or lower-cased letters or digits.<br/>UserName:  The name of the user the signing certificate belongs to. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return:         """
        pass

    def delete_user(self, UserName: str):
        r"""Deletes the specified IAM user. Unlike the Management Console, when you delete a user programmatically, you must delete the items attached to the user manually, or the deletion fails. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_manage.html#id_users_deleting_cli">Deleting an IAM user</a>. Before attempting to delete a user, remove the following items: <ul> <li> Password (<a>DeleteLoginProfile</a>) </li> <li> Access keys (<a>DeleteAccessKey</a>) </li> <li> Signing certificate (<a>DeleteSigningCertificate</a>) </li> <li> SSH public key (<a>DeleteSSHPublicKey</a>) </li> <li> Git credentials (<a>DeleteServiceSpecificCredential</a>) </li> <li> Multi-factor authentication (MFA) device (<a>DeactivateMFADevice</a>, <a>DeleteVirtualMFADevice</a>) </li> <li> Inline policies (<a>DeleteUserPolicy</a>) </li> <li> Attached managed policies (<a>DetachUserPolicy</a>) </li> <li> Group memberships (<a>RemoveUserFromGroup</a>) </li> </ul>

        :param self:
        :param UserName:  The name of the user to delete. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return:         """
        pass

    def delete_user_permissions_boundary(self, UserName: str):
        r"""Deletes the permissions boundary for the specified IAM user. <important> Deleting the permissions boundary for a user might increase its permissions by allowing the user to perform all the actions granted in its permissions policies.  </important>

        :param self:
        :param UserName:  The name (friendly name, not ARN) of the IAM user from which you want to remove the permissions boundary.<br/>
        :return:         """
        pass

    def delete_user_policy(self, PolicyName: str, UserName: str):
        r"""Deletes the specified inline policy that is embedded in the specified IAM user. A user can also have managed policies attached to it. To detach a managed policy from a user, use <a>DetachUserPolicy</a>. For more information about policies, refer to <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html">Managed policies and inline policies</a> in the <i>IAM User Guide</i>.

        :param self:
        :param PolicyName:  The name identifying the policy document to delete. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>UserName:  The name (friendly name, not ARN) identifying the user that the policy is embedded in. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return:         """
        pass

    def delete_virtual_mfa_device(self, SerialNumber: str):
        r"""Deletes a virtual MFA device. <note>  You must deactivate a user's virtual MFA device before you can delete it. For information about deactivating MFA devices, see <a>DeactivateMFADevice</a>.  </note>

        :param self:
        :param SerialNumber:  The serial number that uniquely identifies the MFA device. For virtual MFA devices, the serial number is the same as the ARN. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@:/-<br/>
        :return:         """
        pass

    def detach_group_policy(self, PolicyArn: str, GroupName: str):
        r"""Removes the specified managed policy from the specified IAM group. A group can also have inline policies embedded with it. To delete an inline policy, use <a>DeleteGroupPolicy</a>. For information about policies, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html">Managed policies and inline policies</a> in the <i>IAM User Guide</i>.

        :param self:
        :param PolicyArn:  The Amazon Resource Name (ARN) of the IAM policy you want to detach. For more information about ARNs, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs)</a> in the <i>Amazon Web Services General Reference</i>.<br/>GroupName:  The name (friendly name, not ARN) of the IAM group to detach the policy from. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return:         """
        pass

    def detach_role_policy(self, PolicyArn: str, RoleName: str):
        r"""Removes the specified managed policy from the specified role. A role can also have inline policies embedded with it. To delete an inline policy, use <a>DeleteRolePolicy</a>. For information about policies, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html">Managed policies and inline policies</a> in the <i>IAM User Guide</i>.

        :param self:
        :param PolicyArn:  The Amazon Resource Name (ARN) of the IAM policy you want to detach. For more information about ARNs, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs)</a> in the <i>Amazon Web Services General Reference</i>.<br/>RoleName:  The name (friendly name, not ARN) of the IAM role to detach the policy from. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return:         """
        pass

    def detach_user_policy(self, PolicyArn: str, UserName: str):
        r"""Removes the specified managed policy from the specified user. A user can also have inline policies embedded with it. To delete an inline policy, use <a>DeleteUserPolicy</a>. For information about policies, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html">Managed policies and inline policies</a> in the <i>IAM User Guide</i>.

        :param self:
        :param PolicyArn:  The Amazon Resource Name (ARN) of the IAM policy you want to detach. For more information about ARNs, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs)</a> in the <i>Amazon Web Services General Reference</i>.<br/>UserName:  The name (friendly name, not ARN) of the IAM user to detach the policy from. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return:         """
        pass

    def enable_mfa_device(self, AuthenticationCode2: str, AuthenticationCode1: str, SerialNumber: str, UserName: str):
        r"""Enables the specified MFA device and associates it with the specified IAM user. When enabled, the MFA device is required for every subsequent login by the IAM user associated with the device.

        :param self:
        :param AuthenticationCode2:  A subsequent authentication code emitted by the device. The format for this parameter is a string of six digits. <important> Submit your request immediately after generating the authentication codes. If you generate the codes and then wait too long to submit the request, the MFA device successfully associates with the user but the MFA device becomes out of sync. This happens because time-based one-time passwords (TOTP) expire after a short period of time. If this happens, you can <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_sync.html">resync the device</a>. </important><br/>AuthenticationCode1:  An authentication code emitted by the device.  The format for this parameter is a string of six digits. <important> Submit your request immediately after generating the authentication codes. If you generate the codes and then wait too long to submit the request, the MFA device successfully associates with the user but the MFA device becomes out of sync. This happens because time-based one-time passwords (TOTP) expire after a short period of time. If this happens, you can <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_sync.html">resync the device</a>. </important><br/>SerialNumber:  The serial number that uniquely identifies the MFA device. For virtual MFA devices, the serial number is the device ARN. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@:/-<br/>UserName:  The name of the IAM user for whom you want to enable the MFA device. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return:         """
        pass

    def generate_credential_report(self) -> GenerateCredentialReportResponse:
        r""" Generates a credential report for the account. For more information about the credential report, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/credential-reports.html">Getting credential reports</a> in the <i>IAM User Guide</i>.

        :param self:
        :param 
        :return: Description:  Information about the credential report.<br/>State:  Information about the state of the credential report.<br/>        """
        pass

    def generate_organizations_access_report(self, EntityPath: str, OrganizationsPolicyId: str=None) -> GenerateOrganizationsAccessReportResponse:
        r"""Generates a report for service last accessed data for Organizations. You can generate a report for any entities (organization root, organizational unit, or account) or policies in your organization. To call this operation, you must be signed in using your Organizations management account credentials. You can use your long-term IAM user or root user credentials, or temporary credentials from assuming an IAM role. SCPs must be enabled for your organization root. You must have the required IAM and Organizations permissions. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor.html">Refining permissions using service last accessed data</a> in the <i>IAM User Guide</i>. You can generate a service last accessed data report for entities by specifying only the entity's path. This data includes a list of services that are allowed by any service control policies (SCPs) that apply to the entity. You can generate a service last accessed data report for a policy by specifying an entity's path and an optional Organizations policy ID. This data includes a list of services that are allowed by the specified SCP. For each service in both report types, the data includes the most recent account activity that the policy allows to account principals in the entity or the entity's children. For important information about the data, reporting period, permissions required, troubleshooting, and supported Regions see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor.html">Reducing permissions using service last accessed data</a> in the <i>IAM User Guide</i>. <important> The data includes all attempts to access Amazon Web Services, not just the successful ones. This includes all attempts that were made using the Management Console, the Amazon Web Services API through any of the SDKs, or any of the command line tools. An unexpected entry in the service last accessed data does not mean that an account has been compromised, because the request might have been denied. Refer to your CloudTrail logs as the authoritative source for information about all API calls and whether they were successful or denied access. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/cloudtrail-integration.html">Logging IAM events with CloudTrail</a> in the <i>IAM User Guide</i>. </important> This operation returns a <code>JobId</code>. Use this parameter in the <code> <a>GetOrganizationsAccessReport</a> </code> operation to check the status of the report generation. To check the status of this request, use the <code>JobId</code> parameter in the <code> <a>GetOrganizationsAccessReport</a> </code> operation and test the <code>JobStatus</code> response parameter. When the job is complete, you can retrieve the report. To generate a service last accessed data report for entities, specify an entity path without specifying the optional Organizations policy ID. The type of entity that you specify determines the data returned in the report. <ul> <li>  <b>Root</b> – When you specify the organizations root as the entity, the resulting report lists all of the services allowed by SCPs that are attached to your root. For each service, the report includes data for all accounts in your organization except the management account, because the management account is not limited by SCPs. </li> <li>  <b>OU</b> – When you specify an organizational unit (OU) as the entity, the resulting report lists all of the services allowed by SCPs that are attached to the OU and its parents. For each service, the report includes data for all accounts in the OU or its children. This data excludes the management account, because the management account is not limited by SCPs. </li> <li>  <b>management account</b> – When you specify the management account, the resulting report lists all Amazon Web Services services, because the management account is not limited by SCPs. For each service, the report includes data for only the management account. </li> <li>  <b>Account</b> – When you specify another account as the entity, the resulting report lists all of the services allowed by SCPs that are attached to the account and its parents. For each service, the report includes data for only the specified account. </li> </ul> To generate a service last accessed data report for policies, specify an entity path and the optional Organizations policy ID. The type of entity that you specify determines the data returned for each service. <ul> <li>  <b>Root</b> – When you specify the root entity and a policy ID, the resulting report lists all of the services that are allowed by the specified SCP. For each service, the report includes data for all accounts in your organization to which the SCP applies. This data excludes the management account, because the management account is not limited by SCPs. If the SCP is not attached to any entities in the organization, then the report will return a list of services with no data. </li> <li>  <b>OU</b> – When you specify an OU entity and a policy ID, the resulting report lists all of the services that are allowed by the specified SCP. For each service, the report includes data for all accounts in the OU or its children to which the SCP applies. This means that other accounts outside the OU that are affected by the SCP might not be included in the data. This data excludes the management account, because the management account is not limited by SCPs. If the SCP is not attached to the OU or one of its children, the report will return a list of services with no data. </li> <li>  <b>management account</b> – When you specify the management account, the resulting report lists all Amazon Web Services services, because the management account is not limited by SCPs. If you specify a policy ID in the CLI or API, the policy is ignored. For each service, the report includes data for only the management account. </li> <li>  <b>Account</b> – When you specify another account entity and a policy ID, the resulting report lists all of the services that are allowed by the specified SCP. For each service, the report includes data for only the specified account. This means that other accounts in the organization that are affected by the SCP might not be included in the data. If the SCP is not attached to the account, the report will return a list of services with no data. </li> </ul> <note> Service last accessed data does not use other policy types when determining whether a principal could access a service. These other policy types include identity-based policies, resource-based policies, access control lists, IAM permissions boundaries, and STS assume role policies. It only applies SCP logic. For more about the evaluation of policy types, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html#policy-eval-basics">Evaluating policies</a> in the <i>IAM User Guide</i>. </note> For more information about service last accessed data, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor.html">Reducing policy scope by viewing user activity</a> in the <i>IAM User Guide</i>.

        :param self:
        :param OrganizationsPolicyId:  The identifier of the Organizations service control policy (SCP). This parameter is optional. This ID is used to generate information about when an account principal that is limited by the SCP attempted to access an Amazon Web Services service.<br/>EntityPath:  The path of the Organizations entity (root, OU, or account). You can build an entity path using the known structure of your organization. For example, assume that your account ID is <code>123456789012</code> and its parent OU ID is <code>ou-rge0-awsabcde</code>. The organization root ID is <code>r-f6g7h8i9j0example</code> and your organization ID is <code>o-a1b2c3d4e5</code>. Your entity path is <code>o-a1b2c3d4e5/r-f6g7h8i9j0example/ou-rge0-awsabcde/123456789012</code>.<br/>
        :return: JobId:  The job identifier that you can use in the <a>GetOrganizationsAccessReport</a> operation.<br/>        """
        pass

    def generate_service_last_accessed_details(self, Arn: str, Granularity: str=None) -> GenerateServiceLastAccessedDetailsResponse:
        r"""Generates a report that includes details about when an IAM resource (user, group, role, or policy) was last used in an attempt to access Amazon Web Services services. Recent activity usually appears within four hours. IAM reports activity for the last 365 days, or less if your Region began supporting this feature within the last year. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor.html#access-advisor_tracking-period">Regions where data is tracked</a>. <important> The service last accessed data includes all attempts to access an Amazon Web Services API, not just the successful ones. This includes all attempts that were made using the Management Console, the Amazon Web Services API through any of the SDKs, or any of the command line tools. An unexpected entry in the service last accessed data does not mean that your account has been compromised, because the request might have been denied. Refer to your CloudTrail logs as the authoritative source for information about all API calls and whether they were successful or denied access. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/cloudtrail-integration.html">Logging IAM events with CloudTrail</a> in the <i>IAM User Guide</i>. </important> The <code>GenerateServiceLastAccessedDetails</code> operation returns a <code>JobId</code>. Use this parameter in the following operations to retrieve the following details from your report:  <ul> <li>  <a>GetServiceLastAccessedDetails</a> – Use this operation for users, groups, roles, or policies to list every Amazon Web Services service that the resource could access using permissions policies. For each service, the response includes information about the most recent access attempt. The <code>JobId</code> returned by <code>GenerateServiceLastAccessedDetail</code> must be used by the same role within a session, or by the same user when used to call <code>GetServiceLastAccessedDetail</code>. </li> <li>  <a>GetServiceLastAccessedDetailsWithEntities</a> – Use this operation for groups and policies to list information about the associated entities (users or roles) that attempted to access a specific Amazon Web Services service.  </li> </ul> To check the status of the <code>GenerateServiceLastAccessedDetails</code> request, use the <code>JobId</code> parameter in the same operations and test the <code>JobStatus</code> response parameter. For additional information about the permissions policies that allow an identity (user, group, or role) to access specific services, use the <a>ListPoliciesGrantingServiceAccess</a> operation. <note> Service last accessed data does not use other policy types when determining whether a resource could access a service. These other policy types include resource-based policies, access control lists, Organizations policies, IAM permissions boundaries, and STS assume role policies. It only applies permissions policy logic. For more about the evaluation of policy types, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html#policy-eval-basics">Evaluating policies</a> in the <i>IAM User Guide</i>. </note> For more information about service and action last accessed data, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor.html">Reducing permissions using service last accessed data</a> in the <i>IAM User Guide</i>.

        :param self:
        :param Granularity:  The level of detail that you want to generate. You can specify whether you want to generate information about the last attempt to access services or actions. If you specify service-level granularity, this operation generates only service data. If you specify action-level granularity, it generates service and action data. If you don't include this optional parameter, the operation generates service data.<br/>Arn:  The ARN of the IAM resource (user, group, role, or managed policy) used to generate information about when the resource was last used in an attempt to access an Amazon Web Services service.<br/>
        :return: JobId:  The <code>JobId</code> that you can use in the <a>GetServiceLastAccessedDetails</a> or <a>GetServiceLastAccessedDetailsWithEntities</a> operations. The <code>JobId</code> returned by <code>GenerateServiceLastAccessedDetail</code> must be used by the same role within a session, or by the same user when used to call <code>GetServiceLastAccessedDetail</code>.<br/>        """
        pass

    def get_access_key_last_used(self, AccessKeyId: str) -> GetAccessKeyLastUsedResponse:
        r"""Retrieves information about when the specified access key was last used. The information includes the date and time of last use, along with the Amazon Web Services service and Region that were specified in the last request made with that key.

        :param self:
        :param AccessKeyId:  The identifier of an access key. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters that can consist of any upper or lowercased letter or digit.<br/>
        :return: AccessKeyLastUsed:  Contains information about the last time the access key was used.:<br/>UserName:  The name of the IAM user that owns this access key. <p/><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Region</i> The Region where this access key was most recently used. The value for this field is "N/A" in the following situations: <ul> <li> The user does not have an access key. </li> <li> An access key exists but has not been used since IAM began tracking this information. </li> <li> There is no sign-in data associated with the user. </li> </ul> For more information about Regions, see <a href="https://docs.aws.amazon.com/general/latest/gr/rande.html">Regions and endpoints</a> in the Amazon Web Services General Reference.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceName</i> The name of the Amazon Web Services service with which this access key was most recently used. The value of this field is "N/A" in the following situations: <ul> <li> The user does not have an access key. </li> <li> An access key exists but has not been used since IAM started tracking this information. </li> <li> There is no sign-in data associated with the user. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUsedDate</i> The date and time, in <a href="http://www.iso.org/iso/iso8601">ISO 8601 date-time format</a>, when the access key was most recently used. This field is null in the following situations: <ul> <li> The user does not have an access key. </li> <li> An access key exists but has not been used since IAM began tracking this information. </li> <li> There is no sign-in data associated with the user. </li> </ul><br/>        """
        pass

    def get_account_authorization_details(self, Filter: List[EntityType]=None, MaxItems: int=None, Marker: str=None) -> GetAccountAuthorizationDetailsResponse:
        r"""Retrieves information about all IAM users, groups, roles, and policies in your Amazon Web Services account, including their relationships to one another. Use this operation to obtain a snapshot of the configuration of IAM permissions (users, groups, roles, and policies) in your account. <note> Policies returned by this operation are URL-encoded compliant with <a href="https://tools.ietf.org/html/rfc3986">RFC 3986</a>. You can use a URL decoding method to convert the policy back to plain JSON text. For example, if you use Java, you can use the <code>decode</code> method of the <code>java.net.URLDecoder</code> utility class in the Java SDK. Other languages and SDKs provide similar functionality. </note> You can optionally filter the results using the <code>Filter</code> parameter. You can paginate the results using the <code>MaxItems</code> and <code>Marker</code> parameters.

        :param self:
        :param Marker:  Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the <code>Marker</code> element in the response that you received to indicate where the next call should start.<br/>MaxItems:  Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the <code>IsTruncated</code> response element is <code>true</code>. If you do not include this parameter, the number of items defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the <code>IsTruncated</code> response element returns <code>true</code>, and <code>Marker</code> contains a value to include in the subsequent call that tells the service where to continue from.<br/>Filter:  A list of entity types used to filter the results. Only the entities that match the types you specify are included in the output. Use the value <code>LocalManagedPolicy</code> to include customer managed policies. The format for this parameter is a comma-separated (if more than one) list of strings. Each string value in the list must be one of the valid values listed below.<br/>
        :return: Marker:  When <code>IsTruncated</code> is <code>true</code>, this element is present and contains the value to use for the <code>Marker</code> parameter in a subsequent pagination request.<br/>IsTruncated:  A flag that indicates whether there are more items to return. If your results were truncated, you can make a subsequent pagination request using the <code>Marker</code> request parameter to retrieve more items. Note that IAM might return fewer than the <code>MaxItems</code> number of results even when there are more results available. We recommend that you check <code>IsTruncated</code> after every call to ensure that you receive all your results.<br/>Policies:  A list containing information about managed policies.<br/>RoleDetailList:  A list containing information about IAM roles.<br/>GroupDetailList:  A list containing information about IAM groups.<br/>UserDetailList:  A list containing information about IAM users.<br/>        """
        pass

    def get_account_password_policy(self) -> GetAccountPasswordPolicyResponse:
        r"""Retrieves the password policy for the account. This tells you the complexity requirements and mandatory rotation periods for the IAM user passwords in your account. For more information about using a password policy, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_ManagingPasswordPolicies.html">Managing an IAM password policy</a>.

        :param self:
        :param 
        :return: PasswordPolicy:  A structure that contains details about the account's password policy.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HardExpiry</i> Specifies whether IAM users are prevented from setting a new password after their password has expired.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PasswordReusePrevention</i> Specifies the number of previous passwords that IAM users are prevented from reusing.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxPasswordAge</i> The number of days that an IAM user password is valid.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExpirePasswords</i> Indicates whether passwords in the account expire. Returns true if <code>MaxPasswordAge</code> contains a value greater than 0. Returns false if MaxPasswordAge is 0 or not present.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowUsersToChangePassword</i> Specifies whether IAM users are allowed to change their own password.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequireLowercaseCharacters</i> Specifies whether IAM user passwords must contain at least one lowercase character (a to z).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequireUppercaseCharacters</i> Specifies whether IAM user passwords must contain at least one uppercase character (A to Z).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequireNumbers</i> Specifies whether IAM user passwords must contain at least one numeric character (0 to 9).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequireSymbols</i> Specifies whether IAM user passwords must contain at least one of the following symbols: ! @ # $ % ^ &amp; * ( ) _ + - = [ ] { } | '<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MinimumPasswordLength</i> Minimum length to require for IAM user passwords.<br/>        """
        pass

    def get_account_summary(self) -> GetAccountSummaryResponse:
        r"""Retrieves information about IAM entity usage and IAM quotas in the Amazon Web Services account.  For information about IAM quotas, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html">IAM and STS quotas</a> in the <i>IAM User Guide</i>.

        :param self:
        :param 
        :return: SummaryMap:  A set of key–value pairs containing information about IAM entity usage and IAM quotas.<br/>        """
        pass

    def get_context_keys_for_custom_policy(self, PolicyInputList: List[policyDocumentType]) -> GetContextKeysForPolicyResponse:
        r"""Gets a list of all of the context keys referenced in the input policies. The policies are supplied as a list of one or more strings. To get the context keys from policies associated with an IAM user, group, or role, use <a>GetContextKeysForPrincipalPolicy</a>. Context keys are variables maintained by Amazon Web Services and its services that provide details about the context of an API query request. Context keys can be evaluated by testing against a value specified in an IAM policy. Use <code>GetContextKeysForCustomPolicy</code> to understand what key names and values you must supply when you call <a>SimulateCustomPolicy</a>. Note that all parameters are shown in unencoded form here for clarity but must be URL encoded to be included as a part of a real HTML request.

        :param self:
        :param PolicyInputList:  A list of policies for which you want the list of context keys referenced in those policies. Each document is specified as a string containing the complete, valid JSON text of an IAM policy. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> used to validate this parameter is a string of characters consisting of the following: <ul> <li> Any printable ASCII character ranging from the space character (<code>\u0020</code>) through the end of the ASCII character range </li> <li> The printable characters in the Basic Latin and Latin-1 Supplement character set (through <code>\u00FF</code>) </li> <li> The special characters tab (<code>\u0009</code>), line feed (<code>\u000A</code>), and carriage return (<code>\u000D</code>) </li> </ul><br/>
        :return: ContextKeyNames:  The list of context keys that are referenced in the input policies.<br/>        """
        pass

    def get_context_keys_for_principal_policy(self, PolicySourceArn: str, PolicyInputList: List[policyDocumentType]=None) -> GetContextKeysForPolicyResponse:
        r"""Gets a list of all of the context keys referenced in all the IAM policies that are attached to the specified IAM entity. The entity can be an IAM user, group, or role. If you specify a user, then the request also includes all of the policies attached to groups that the user is a member of. You can optionally include a list of one or more additional policies, specified as strings. If you want to include <i>only</i> a list of policies by string, use <a>GetContextKeysForCustomPolicy</a> instead.  <b>Note:</b> This operation discloses information about the permissions granted to other users. If you do not want users to see other user's permissions, then consider allowing them to use <a>GetContextKeysForCustomPolicy</a> instead. Context keys are variables maintained by Amazon Web Services and its services that provide details about the context of an API query request. Context keys can be evaluated by testing against a value in an IAM policy. Use <a>GetContextKeysForPrincipalPolicy</a> to understand what key names and values you must supply when you call <a>SimulatePrincipalPolicy</a>.

        :param self:
        :param PolicyInputList:  An optional list of additional policies for which you want the list of context keys that are referenced. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> used to validate this parameter is a string of characters consisting of the following: <ul> <li> Any printable ASCII character ranging from the space character (<code>\u0020</code>) through the end of the ASCII character range </li> <li> The printable characters in the Basic Latin and Latin-1 Supplement character set (through <code>\u00FF</code>) </li> <li> The special characters tab (<code>\u0009</code>), line feed (<code>\u000A</code>), and carriage return (<code>\u000D</code>) </li> </ul><br/>PolicySourceArn:  The ARN of a user, group, or role whose policies contain the context keys that you want listed. If you specify a user, the list includes context keys that are found in all policies that are attached to the user. The list also includes all groups that the user is a member of. If you pick a group or a role, then it includes only those context keys that are found in policies attached to that entity. Note that all parameters are shown in unencoded form here for clarity, but must be URL encoded to be included as a part of a real HTML request. For more information about ARNs, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs)</a> in the <i>Amazon Web Services General Reference</i>.<br/>
        :return: ContextKeyNames:  The list of context keys that are referenced in the input policies.<br/>        """
        pass

    def get_credential_report(self) -> GetCredentialReportResponse:
        r""" Retrieves a credential report for the account. For more information about the credential report, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/credential-reports.html">Getting credential reports</a> in the <i>IAM User Guide</i>.

        :param self:
        :param 
        :return: GeneratedTime:   The date and time when the credential report was created, in <a href="http://www.iso.org/iso/iso8601">ISO 8601 date-time format</a>.<br/>ReportFormat:  The format (MIME type) of the credential report.<br/>Content:  Contains the credential report. The report is Base64-encoded.<br/>        """
        pass

    def get_group(self, GroupName: str, Marker: str=None, MaxItems: int=None) -> GetGroupResponse:
        r""" Returns a list of IAM users that are in the specified IAM group. You can paginate the results using the <code>MaxItems</code> and <code>Marker</code> parameters.

        :param self:
        :param MaxItems:  Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the <code>IsTruncated</code> response element is <code>true</code>. If you do not include this parameter, the number of items defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the <code>IsTruncated</code> response element returns <code>true</code>, and <code>Marker</code> contains a value to include in the subsequent call that tells the service where to continue from.<br/>Marker:  Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the <code>Marker</code> element in the response that you received to indicate where the next call should start.<br/>GroupName:  The name of the group. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return: Marker:  When <code>IsTruncated</code> is <code>true</code>, this element is present and contains the value to use for the <code>Marker</code> parameter in a subsequent pagination request.<br/>IsTruncated:  A flag that indicates whether there are more items to return. If your results were truncated, you can make a subsequent pagination request using the <code>Marker</code> request parameter to retrieve more items. Note that IAM might return fewer than the <code>MaxItems</code> number of results even when there are more results available. We recommend that you check <code>IsTruncated</code> after every call to ensure that you receive all your results.<br/>Users:  A list of users in the group.<br/>Group:  A structure that contains details about the group.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreateDate</i> The date and time, in <a href="http://www.iso.org/iso/iso8601">ISO 8601 date-time format</a>, when the group was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i>  The Amazon Resource Name (ARN) specifying the group. For more information about ARNs and how to use them in policies, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html">IAM identifiers</a> in the <i>IAM User Guide</i>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GroupId</i>  The stable and unique string identifying the group. For more information about IDs, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html">IAM identifiers</a> in the <i>IAM User Guide</i>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GroupName</i> The friendly name that identifies the group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Path</i> The path to the group. For more information about paths, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html">IAM identifiers</a> in the <i>IAM User Guide</i>. <br/>        """
        pass

    def get_group_policy(self, PolicyName: str, GroupName: str) -> GetGroupPolicyResponse:
        r"""Retrieves the specified inline policy document that is embedded in the specified IAM group. <note> Policies returned by this operation are URL-encoded compliant with <a href="https://tools.ietf.org/html/rfc3986">RFC 3986</a>. You can use a URL decoding method to convert the policy back to plain JSON text. For example, if you use Java, you can use the <code>decode</code> method of the <code>java.net.URLDecoder</code> utility class in the Java SDK. Other languages and SDKs provide similar functionality. </note> An IAM group can also have managed policies attached to it. To retrieve a managed policy document that is attached to a group, use <a>GetPolicy</a> to determine the policy's default version, then use <a>GetPolicyVersion</a> to retrieve the policy document. For more information about policies, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html">Managed policies and inline policies</a> in the <i>IAM User Guide</i>.

        :param self:
        :param PolicyName:  The name of the policy document to get. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>GroupName:  The name of the group the policy is associated with. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return: PolicyDocument:  The policy document. IAM stores policies in JSON format. However, resources that were created using CloudFormation templates can be formatted in YAML. CloudFormation always converts a YAML policy to JSON format before submitting it to IAM.<br/>PolicyName:  The name of the policy.<br/>GroupName:  The group the policy is associated with.<br/>        """
        pass

    def get_instance_profile(self, InstanceProfileName: str) -> GetInstanceProfileResponse:
        r""" Retrieves information about the specified instance profile, including the instance profile's path, GUID, ARN, and role. For more information about instance profiles, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/AboutInstanceProfiles.html">About instance profiles</a> in the <i>IAM User Guide</i>.

        :param self:
        :param InstanceProfileName:  The name of the instance profile to get information about. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return: InstanceProfile:  A structure containing details about the instance profile.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> A list of tags that are attached to the instance profile. For more information about tagging, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html">Tagging IAM resources</a> in the <i>IAM User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Roles</i> The role associated with the instance profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreateDate</i> The date when the instance profile was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i>  The Amazon Resource Name (ARN) specifying the instance profile. For more information about ARNs and how to use them in policies, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html">IAM identifiers</a> in the <i>IAM User Guide</i>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceProfileId</i>  The stable and unique string identifying the instance profile. For more information about IDs, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html">IAM identifiers</a> in the <i>IAM User Guide</i>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceProfileName</i> The name identifying the instance profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Path</i>  The path to the instance profile. For more information about paths, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html">IAM identifiers</a> in the <i>IAM User Guide</i>. <br/>        """
        pass

    def get_login_profile(self, UserName: str) -> GetLoginProfileResponse:
        r"""Retrieves the user name for the specified IAM user. A login profile is created when you create a password for the user to access the Management Console. If the user does not exist or does not have a password, the operation returns a 404 (<code>NoSuchEntity</code>) error. If you create an IAM user with access to the console, the <code>CreateDate</code> reflects the date you created the initial password for the user. If you create an IAM user with programmatic access, and then later add a password for the user to access the Management Console, the <code>CreateDate</code> reflects the initial password creation date. A user with programmatic access does not have a login profile unless you create a password for the user to access the Management Console.

        :param self:
        :param UserName:  The name of the user whose login profile you want to retrieve. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return: LoginProfile:  A structure containing the user name and the profile creation date for the user.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PasswordResetRequired</i> Specifies whether the user is required to set a new password on next sign-in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreateDate</i> The date when the password for the user was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserName</i> The name of the user, which can be used for signing in to the Management Console.<br/>        """
        pass

    def get_open_id_connect_provider(self, OpenIDConnectProviderArn: str) -> GetOpenIDConnectProviderResponse:
        r"""Returns information about the specified OpenID Connect (OIDC) provider resource object in IAM.

        :param self:
        :param OpenIDConnectProviderArn:  The Amazon Resource Name (ARN) of the OIDC provider resource object in IAM to get information for. You can get a list of OIDC provider resource ARNs by using the <a>ListOpenIDConnectProviders</a> operation. For more information about ARNs, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs)</a> in the <i>Amazon Web Services General Reference</i>.<br/>
        :return: Tags:  A list of tags that are attached to the specified IAM OIDC provider. The returned list of tags is sorted by tag key. For more information about tagging, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html">Tagging IAM resources</a> in the <i>IAM User Guide</i>.<br/>CreateDate:  The date and time when the IAM OIDC provider resource object was created in the account.<br/>ThumbprintList:  A list of certificate thumbprints that are associated with the specified IAM OIDC provider resource object. For more information, see <a>CreateOpenIDConnectProvider</a>. <br/>ClientIDList:  A list of client IDs (also known as audiences) that are associated with the specified IAM OIDC provider resource object. For more information, see <a>CreateOpenIDConnectProvider</a>.<br/>Url:  The URL that the IAM OIDC provider resource object is associated with. For more information, see <a>CreateOpenIDConnectProvider</a>.<br/>        """
        pass

    def get_organizations_access_report(self, JobId: str, MaxItems: int=None, Marker: str=None, SortKey: str=None) -> GetOrganizationsAccessReportResponse:
        r"""Retrieves the service last accessed data report for Organizations that was previously generated using the <code> <a>GenerateOrganizationsAccessReport</a> </code> operation. This operation retrieves the status of your report job and the report contents. Depending on the parameters that you passed when you generated the report, the data returned could include different information. For details, see <a>GenerateOrganizationsAccessReport</a>. To call this operation, you must be signed in to the management account in your organization. SCPs must be enabled for your organization root. You must have permissions to perform this operation. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor.html">Refining permissions using service last accessed data</a> in the <i>IAM User Guide</i>. For each service that principals in an account (root users, IAM users, or IAM roles) could access using SCPs, the operation returns details about the most recent access attempt. If there was no attempt, the service is listed without details about the most recent attempt to access the service. If the operation fails, it returns the reason that it failed. By default, the list is sorted by service namespace.

        :param self:
        :param SortKey:  The key that is used to sort the results. If you choose the namespace key, the results are returned in alphabetical order. If you choose the time key, the results are sorted numerically by the date and time.<br/>Marker:  Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the <code>Marker</code> element in the response that you received to indicate where the next call should start.<br/>MaxItems:  Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the <code>IsTruncated</code> response element is <code>true</code>. If you do not include this parameter, the number of items defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the <code>IsTruncated</code> response element returns <code>true</code>, and <code>Marker</code> contains a value to include in the subsequent call that tells the service where to continue from.<br/>JobId:  The identifier of the request generated by the <a>GenerateOrganizationsAccessReport</a> operation.<br/>
        :return: ErrorDetails:  Contains information about the reason that the operation failed. This data type is used as a response element in the <a>GetOrganizationsAccessReport</a>, <a>GetServiceLastAccessedDetails</a>, and <a>GetServiceLastAccessedDetailsWithEntities</a> operations.:<br/>Marker:  When <code>IsTruncated</code> is <code>true</code>, this element is present and contains the value to use for the <code>Marker</code> parameter in a subsequent pagination request.<br/>IsTruncated:  A flag that indicates whether there are more items to return. If your results were truncated, you can make a subsequent pagination request using the <code>Marker</code> request parameter to retrieve more items. Note that IAM might return fewer than the <code>MaxItems</code> number of results even when there are more results available. We recommend that you check <code>IsTruncated</code> after every call to ensure that you receive all your results.<br/>AccessDetails:  An object that contains details about the most recent attempt to access the service.<br/>NumberOfServicesNotAccessed:  The number of services that account principals are allowed but did not attempt to access.<br/>NumberOfServicesAccessible:  The number of services that the applicable SCPs allow account principals to access.<br/>JobCompletionDate:  The date and time, in <a href="http://www.iso.org/iso/iso8601">ISO 8601 date-time format</a>, when the generated report job was completed or failed. This field is null if the job is still in progress, as indicated by a job status value of <code>IN_PROGRESS</code>.<br/>JobCreationDate:  The date and time, in <a href="http://www.iso.org/iso/iso8601">ISO 8601 date-time format</a>, when the report job was created.<br/>JobStatus:  The status of the job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Code</i> The error code associated with the operation failure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> Detailed information about the reason that the operation failed.<br/>        """
        pass

    def get_policy(self, PolicyArn: str) -> GetPolicyResponse:
        r"""Retrieves information about the specified managed policy, including the policy's default version and the total number of IAM users, groups, and roles to which the policy is attached. To retrieve the list of the specific users, groups, and roles that the policy is attached to, use <a>ListEntitiesForPolicy</a>. This operation returns metadata about the policy. To retrieve the actual policy document for a specific version of the policy, use <a>GetPolicyVersion</a>. This operation retrieves information about managed policies. To retrieve information about an inline policy that is embedded with an IAM user, group, or role, use <a>GetUserPolicy</a>, <a>GetGroupPolicy</a>, or <a>GetRolePolicy</a>. For more information about policies, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html">Managed policies and inline policies</a> in the <i>IAM User Guide</i>.

        :param self:
        :param PolicyArn:  The Amazon Resource Name (ARN) of the managed policy that you want information about. For more information about ARNs, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs)</a> in the <i>Amazon Web Services General Reference</i>.<br/>
        :return: Policy:  A structure containing details about the policy.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> A list of tags that are attached to the instance profile. For more information about tagging, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html">Tagging IAM resources</a> in the <i>IAM User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdateDate</i> The date and time, in <a href="http://www.iso.org/iso/iso8601">ISO 8601 date-time format</a>, when the policy was last updated. When a policy has only one version, this field contains the date and time when the policy was created. When a policy has more than one version, this field contains the date and time when the most recent policy version was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreateDate</i> The date and time, in <a href="http://www.iso.org/iso/iso8601">ISO 8601 date-time format</a>, when the policy was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A friendly description of the policy. This element is included in the response to the <a>GetPolicy</a> operation. It is not included in the response to the <a>ListPolicies</a> operation. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsAttachable</i> Specifies whether the policy can be attached to an IAM user, group, or role.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PermissionsBoundaryUsageCount</i> The number of entities (users and roles) for which the policy is used to set the permissions boundary.  For more information about permissions boundaries, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html">Permissions boundaries for IAM identities </a> in the <i>IAM User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AttachmentCount</i> The number of entities (users, groups, and roles) that the policy is attached to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultVersionId</i> The identifier for the version of the policy that is set as the default version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Path</i> The path to the policy. For more information about paths, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html">IAM identifiers</a> in the <i>IAM User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN). ARNs are unique identifiers for Amazon Web Services resources. For more information about ARNs, go to <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs)</a> in the <i>Amazon Web Services General Reference</i>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PolicyId</i> The stable and unique string identifying the policy. For more information about IDs, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html">IAM identifiers</a> in the <i>IAM User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PolicyName</i> The friendly name (not ARN) identifying the policy.<br/>        """
        pass

    def get_policy_version(self, VersionId: str, PolicyArn: str) -> GetPolicyVersionResponse:
        r"""Retrieves information about the specified version of the specified managed policy, including the policy document. <note> Policies returned by this operation are URL-encoded compliant with <a href="https://tools.ietf.org/html/rfc3986">RFC 3986</a>. You can use a URL decoding method to convert the policy back to plain JSON text. For example, if you use Java, you can use the <code>decode</code> method of the <code>java.net.URLDecoder</code> utility class in the Java SDK. Other languages and SDKs provide similar functionality. </note> To list the available versions for a policy, use <a>ListPolicyVersions</a>. This operation retrieves information about managed policies. To retrieve information about an inline policy that is embedded in a user, group, or role, use <a>GetUserPolicy</a>, <a>GetGroupPolicy</a>, or <a>GetRolePolicy</a>. For more information about the types of policies, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html">Managed policies and inline policies</a> in the <i>IAM User Guide</i>. For more information about managed policy versions, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-versions.html">Versioning for managed policies</a> in the <i>IAM User Guide</i>.

        :param self:
        :param VersionId:  Identifies the policy version to retrieve. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters that consists of the lowercase letter 'v' followed by one or two digits, and optionally followed by a period '.' and a string of letters and digits.<br/>PolicyArn:  The Amazon Resource Name (ARN) of the managed policy that you want information about. For more information about ARNs, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs)</a> in the <i>Amazon Web Services General Reference</i>.<br/>
        :return: PolicyVersion:  A structure containing details about the policy version.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreateDate</i> The date and time, in <a href="http://www.iso.org/iso/iso8601">ISO 8601 date-time format</a>, when the policy version was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsDefaultVersion</i> Specifies whether the policy version is set as the policy's default version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VersionId</i> The identifier for the policy version. Policy version identifiers always begin with <code>v</code> (always lowercase). When a policy is created, the first policy version is <code>v1</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Document</i> The policy document. The policy document is returned in the response to the <a>GetPolicyVersion</a> and <a>GetAccountAuthorizationDetails</a> operations. It is not returned in the response to the <a>CreatePolicyVersion</a> or <a>ListPolicyVersions</a> operations.  The policy document returned in this structure is URL-encoded compliant with <a href="https://tools.ietf.org/html/rfc3986">RFC 3986</a>. You can use a URL decoding method to convert the policy back to plain JSON text. For example, if you use Java, you can use the <code>decode</code> method of the <code>java.net.URLDecoder</code> utility class in the Java SDK. Other languages and SDKs provide similar functionality.<br/>        """
        pass

    def get_role(self, RoleName: str) -> GetRoleResponse:
        r"""Retrieves information about the specified role, including the role's path, GUID, ARN, and the role's trust policy that grants permission to assume the role. For more information about roles, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/WorkingWithRoles.html">Working with roles</a>. <note> Policies returned by this operation are URL-encoded compliant with <a href="https://tools.ietf.org/html/rfc3986">RFC 3986</a>. You can use a URL decoding method to convert the policy back to plain JSON text. For example, if you use Java, you can use the <code>decode</code> method of the <code>java.net.URLDecoder</code> utility class in the Java SDK. Other languages and SDKs provide similar functionality. </note>

        :param self:
        :param RoleName:  The name of the IAM role to get information about. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return: Role:  A structure containing details about the IAM role.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleLastUsed</i> Contains information about the last time that an IAM role was used. This includes the date and time and the Region in which the role was last used. Activity is only reported for the trailing 400 days. This period can be shorter if your Region began supporting these features within the last year. The role might have been used more than 400 days ago. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor.html#access-advisor_tracking-period">Regions where data is tracked</a> in the <i>IAM User Guide</i>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RoleLastUsed</b>: Contains information about the last time that an IAM role was used. This includes the date and time and the Region in which the role was last used. Activity is only reported for the trailing 400 days. This period can be shorter if your Region began supporting these features within the last year. The role might have been used more than 400 days ago. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor.html#access-advisor_tracking-period">Regions where data is tracked</a> in the <i>IAM User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> A list of tags that are attached to the role. For more information about tagging, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html">Tagging IAM resources</a> in the <i>IAM User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PermissionsBoundary</i> The ARN of the policy used to set the permissions boundary for the role. For more information about permissions boundaries, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html">Permissions boundaries for IAM identities </a> in the <i>IAM User Guide</i>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PermissionsBoundary</b>: The ARN of the policy used to set the permissions boundary for the role. For more information about permissions boundaries, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html">Permissions boundaries for IAM identities </a> in the <i>IAM User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxSessionDuration</i> The maximum session duration (in seconds) for the specified role. Anyone who uses the CLI, or API to assume the role can specify the duration using the optional <code>DurationSeconds</code> API parameter or <code>duration-seconds</code> CLI parameter.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A description of the role that you provide.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssumeRolePolicyDocument</i> The policy that grants an entity permission to assume the role.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreateDate</i> The date and time, in <a href="http://www.iso.org/iso/iso8601">ISO 8601 date-time format</a>, when the role was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i>  The Amazon Resource Name (ARN) specifying the role. For more information about ARNs and how to use them in policies, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html">IAM identifiers</a> in the <i>IAM User Guide</i> guide. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleId</i>  The stable and unique string identifying the role. For more information about IDs, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html">IAM identifiers</a> in the <i>IAM User Guide</i>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleName</i> The friendly name that identifies the role.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Path</i>  The path to the role. For more information about paths, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html">IAM identifiers</a> in the <i>IAM User Guide</i>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PermissionsBoundaryArn</i>  The ARN of the policy used to set the permissions boundary for the user or role.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PermissionsBoundaryType</i>  The permissions boundary usage type that indicates what type of IAM resource is used as the permissions boundary for an entity. This data type can only have a value of <code>Policy</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Region</i> The name of the Region in which the role was last used.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUsedDate</i> The date and time, in <a href="http://www.iso.org/iso/iso8601">ISO 8601 date-time format</a> that the role was last used. This field is null if the role has not been used within the IAM tracking period. For more information about the tracking period, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor.html#access-advisor_tracking-period">Regions where data is tracked</a> in the <i>IAM User Guide</i>. <br/>        """
        pass

    def get_role_policy(self, PolicyName: str, RoleName: str) -> GetRolePolicyResponse:
        r"""Retrieves the specified inline policy document that is embedded with the specified IAM role. <note> Policies returned by this operation are URL-encoded compliant with <a href="https://tools.ietf.org/html/rfc3986">RFC 3986</a>. You can use a URL decoding method to convert the policy back to plain JSON text. For example, if you use Java, you can use the <code>decode</code> method of the <code>java.net.URLDecoder</code> utility class in the Java SDK. Other languages and SDKs provide similar functionality. </note> An IAM role can also have managed policies attached to it. To retrieve a managed policy document that is attached to a role, use <a>GetPolicy</a> to determine the policy's default version, then use <a>GetPolicyVersion</a> to retrieve the policy document. For more information about policies, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html">Managed policies and inline policies</a> in the <i>IAM User Guide</i>. For more information about roles, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-toplevel.html">Using roles to delegate permissions and federate identities</a>.

        :param self:
        :param PolicyName:  The name of the policy document to get. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>RoleName:  The name of the role associated with the policy. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return: PolicyDocument:  The policy document. IAM stores policies in JSON format. However, resources that were created using CloudFormation templates can be formatted in YAML. CloudFormation always converts a YAML policy to JSON format before submitting it to IAM.<br/>PolicyName:  The name of the policy.<br/>RoleName:  The role the policy is associated with.<br/>        """
        pass

    def get_saml_provider(self, SAMLProviderArn: str) -> GetSAMLProviderResponse:
        r"""Returns the SAML provider metadocument that was uploaded when the IAM SAML provider resource object was created or updated. <note> This operation requires <a href="https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html">Signature Version 4</a>. </note>

        :param self:
        :param SAMLProviderArn:  The Amazon Resource Name (ARN) of the SAML provider resource object in IAM to get information about. For more information about ARNs, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs)</a> in the <i>Amazon Web Services General Reference</i>.<br/>
        :return: Tags:  A list of tags that are attached to the specified IAM SAML provider. The returned list of tags is sorted by tag key. For more information about tagging, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html">Tagging IAM resources</a> in the <i>IAM User Guide</i>.<br/>ValidUntil:  The expiration date and time for the SAML provider.<br/>CreateDate:  The date and time when the SAML provider was created.<br/>SAMLMetadataDocument:  The XML metadata document that includes information about an identity provider.<br/>        """
        pass

    def get_ssh_public_key(self, Encoding: str, SSHPublicKeyId: str, UserName: str) -> GetSSHPublicKeyResponse:
        r"""Retrieves the specified SSH public key, including metadata about the key. The SSH public key retrieved by this operation is used only for authenticating the associated IAM user to an CodeCommit repository. For more information about using SSH keys to authenticate to an CodeCommit repository, see <a href="https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-credentials-ssh.html">Set up CodeCommit for SSH connections</a> in the <i>CodeCommit User Guide</i>.

        :param self:
        :param Encoding:  Specifies the public key encoding format to use in the response. To retrieve the public key in ssh-rsa format, use <code>SSH</code>. To retrieve the public key in PEM format, use <code>PEM</code>.<br/>SSHPublicKeyId:  The unique identifier for the SSH public key. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters that can consist of any upper or lowercased letter or digit.<br/>UserName:  The name of the IAM user associated with the SSH public key. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return: SSHPublicKey:  A structure containing details about the SSH public key.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UploadDate</i> The date and time, in <a href="http://www.iso.org/iso/iso8601">ISO 8601 date-time format</a>, when the SSH public key was uploaded.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the SSH public key. <code>Active</code> means that the key can be used for authentication with an CodeCommit repository. <code>Inactive</code> means that the key cannot be used.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SSHPublicKeyBody</i> The SSH public key.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Fingerprint</i> The MD5 message digest of the SSH public key.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SSHPublicKeyId</i> The unique identifier for the SSH public key.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserName</i> The name of the IAM user associated with the SSH public key.<br/>        """
        pass

    def get_server_certificate(self, ServerCertificateName: str) -> GetServerCertificateResponse:
        r"""Retrieves information about the specified server certificate stored in IAM. For more information about working with server certificates, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html">Working with server certificates</a> in the <i>IAM User Guide</i>. This topic includes a list of Amazon Web Services services that can use the server certificates that you manage with IAM.

        :param self:
        :param ServerCertificateName:  The name of the server certificate you want to retrieve information about. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return: ServerCertificate:  A structure containing details about the server certificate.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> A list of tags that are attached to the server certificate. For more information about tagging, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html">Tagging IAM resources</a> in the <i>IAM User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CertificateChain</i> The contents of the public key certificate chain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CertificateBody</i> The contents of the public key certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerCertificateMetadata</i> The meta information of the server certificate, such as its name, path, ID, and ARN.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ServerCertificateMetadata</b>: The meta information of the server certificate, such as its name, path, ID, and ARN.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Expiration</i> The date on which the certificate is set to expire.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UploadDate</i> The date when the server certificate was uploaded.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i>  The Amazon Resource Name (ARN) specifying the server certificate. For more information about ARNs and how to use them in policies, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html">IAM identifiers</a> in the <i>IAM User Guide</i>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerCertificateId</i>  The stable and unique string identifying the server certificate. For more information about IDs, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html">IAM identifiers</a> in the <i>IAM User Guide</i>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerCertificateName</i> The name that identifies the server certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Path</i>  The path to the server certificate. For more information about paths, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html">IAM identifiers</a> in the <i>IAM User Guide</i>. <br/>        """
        pass

    def get_service_last_accessed_details(self, JobId: str, MaxItems: int=None, Marker: str=None) -> GetServiceLastAccessedDetailsResponse:
        r"""Retrieves a service last accessed report that was created using the <code>GenerateServiceLastAccessedDetails</code> operation. You can use the <code>JobId</code> parameter in <code>GetServiceLastAccessedDetails</code> to retrieve the status of your report job. When the report is complete, you can retrieve the generated report. The report includes a list of Amazon Web Services services that the resource (user, group, role, or managed policy) can access. <note> Service last accessed data does not use other policy types when determining whether a resource could access a service. These other policy types include resource-based policies, access control lists, Organizations policies, IAM permissions boundaries, and STS assume role policies. It only applies permissions policy logic. For more about the evaluation of policy types, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html#policy-eval-basics">Evaluating policies</a> in the <i>IAM User Guide</i>. </note> For each service that the resource could access using permissions policies, the operation returns details about the most recent access attempt. If there was no attempt, the service is listed without details about the most recent attempt to access the service. If the operation fails, the <code>GetServiceLastAccessedDetails</code> operation returns the reason that it failed. The <code>GetServiceLastAccessedDetails</code> operation returns a list of services. This list includes the number of entities that have attempted to access the service and the date and time of the last attempt. It also returns the ARN of the following entity, depending on the resource ARN that you used to generate the report: <ul> <li>  <b>User</b> – Returns the user ARN that you used to generate the report </li> <li>  <b>Group</b> – Returns the ARN of the group member (user) that last attempted to access the service </li> <li>  <b>Role</b> – Returns the role ARN that you used to generate the report </li> <li>  <b>Policy</b> – Returns the ARN of the user or role that last used the policy to attempt to access the service </li> </ul> By default, the list is sorted by service namespace. If you specified <code>ACTION_LEVEL</code> granularity when you generated the report, this operation returns service and action last accessed data. This includes the most recent access attempt for each tracked action within a service. Otherwise, this operation returns only service data. For more information about service and action last accessed data, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor.html">Reducing permissions using service last accessed data</a> in the <i>IAM User Guide</i>.

        :param self:
        :param Marker:  Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the <code>Marker</code> element in the response that you received to indicate where the next call should start.<br/>MaxItems:  Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the <code>IsTruncated</code> response element is <code>true</code>. If you do not include this parameter, the number of items defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the <code>IsTruncated</code> response element returns <code>true</code>, and <code>Marker</code> contains a value to include in the subsequent call that tells the service where to continue from.<br/>JobId:  The ID of the request generated by the <a>GenerateServiceLastAccessedDetails</a> operation. The <code>JobId</code> returned by <code>GenerateServiceLastAccessedDetail</code> must be used by the same role within a session, or by the same user when used to call <code>GetServiceLastAccessedDetail</code>.<br/>
        :return: Error:  An object that contains details about the reason the operation failed.:<br/>Marker:  When <code>IsTruncated</code> is <code>true</code>, this element is present and contains the value to use for the <code>Marker</code> parameter in a subsequent pagination request.<br/>IsTruncated:  A flag that indicates whether there are more items to return. If your results were truncated, you can make a subsequent pagination request using the <code>Marker</code> request parameter to retrieve more items. Note that IAM might return fewer than the <code>MaxItems</code> number of results even when there are more results available. We recommend that you check <code>IsTruncated</code> after every call to ensure that you receive all your results.<br/>JobCompletionDate:  The date and time, in <a href="http://www.iso.org/iso/iso8601">ISO 8601 date-time format</a>, when the generated report job was completed or failed. This field is null if the job is still in progress, as indicated by a job status value of <code>IN_PROGRESS</code>.<br/>ServicesLastAccessed:   A <code>ServiceLastAccessed</code> object that contains details about the most recent attempt to access the service.<br/>JobCreationDate:  The date and time, in <a href="http://www.iso.org/iso/iso8601">ISO 8601 date-time format</a>, when the report job was created.<br/>JobType:  The type of job. Service jobs return information about when each service was last accessed. Action jobs also include information about when tracked actions within the service were last accessed.<br/>JobStatus:  The status of the job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Code</i> The error code associated with the operation failure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> Detailed information about the reason that the operation failed.<br/>        """
        pass

    def get_service_last_accessed_details_with_entities(self, ServiceNamespace: str, JobId: str, MaxItems: int=None, Marker: str=None) -> GetServiceLastAccessedDetailsWithEntitiesResponse:
        r"""After you generate a group or policy report using the <code>GenerateServiceLastAccessedDetails</code> operation, you can use the <code>JobId</code> parameter in <code>GetServiceLastAccessedDetailsWithEntities</code>. This operation retrieves the status of your report job and a list of entities that could have used group or policy permissions to access the specified service. <ul> <li>  <b>Group</b> – For a group report, this operation returns a list of users in the group that could have used the group’s policies in an attempt to access the service. </li> <li>  <b>Policy</b> – For a policy report, this operation returns a list of entities (users or roles) that could have used the policy in an attempt to access the service. </li> </ul> You can also use this operation for user or role reports to retrieve details about those entities. If the operation fails, the <code>GetServiceLastAccessedDetailsWithEntities</code> operation returns the reason that it failed. By default, the list of associated entities is sorted by date, with the most recent access listed first.

        :param self:
        :param Marker:  Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the <code>Marker</code> element in the response that you received to indicate where the next call should start.<br/>MaxItems:  Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the <code>IsTruncated</code> response element is <code>true</code>. If you do not include this parameter, the number of items defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the <code>IsTruncated</code> response element returns <code>true</code>, and <code>Marker</code> contains a value to include in the subsequent call that tells the service where to continue from.<br/>ServiceNamespace:  The service namespace for an Amazon Web Services service. Provide the service namespace to learn when the IAM entity last attempted to access the specified service. To learn the service namespace for a service, see <a href="https://docs.aws.amazon.com/service-authorization/latest/reference/reference_policies_actions-resources-contextkeys.html">Actions, resources, and condition keys for Amazon Web Services services</a> in the <i>IAM User Guide</i>. Choose the name of the service to view details for that service. In the first paragraph, find the service prefix. For example, <code>(service prefix: a4b)</code>. For more information about service namespaces, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#genref-aws-service-namespaces">Amazon Web Services service namespaces</a> in the <i>Amazon Web Services General Reference</i>.<br/>JobId:  The ID of the request generated by the <code>GenerateServiceLastAccessedDetails</code> operation.<br/>
        :return: Error:  An object that contains details about the reason the operation failed.:<br/>Marker:  When <code>IsTruncated</code> is <code>true</code>, this element is present and contains the value to use for the <code>Marker</code> parameter in a subsequent pagination request.<br/>IsTruncated:  A flag that indicates whether there are more items to return. If your results were truncated, you can make a subsequent pagination request using the <code>Marker</code> request parameter to retrieve more items. Note that IAM might return fewer than the <code>MaxItems</code> number of results even when there are more results available. We recommend that you check <code>IsTruncated</code> after every call to ensure that you receive all your results.<br/>EntityDetailsList:  An <code>EntityDetailsList</code> object that contains details about when an IAM entity (user or role) used group or policy permissions in an attempt to access the specified Amazon Web Services service.<br/>JobCompletionDate:  The date and time, in <a href="http://www.iso.org/iso/iso8601">ISO 8601 date-time format</a>, when the generated report job was completed or failed. This field is null if the job is still in progress, as indicated by a job status value of <code>IN_PROGRESS</code>.<br/>JobCreationDate:  The date and time, in <a href="http://www.iso.org/iso/iso8601">ISO 8601 date-time format</a>, when the report job was created.<br/>JobStatus:  The status of the job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Code</i> The error code associated with the operation failure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> Detailed information about the reason that the operation failed.<br/>        """
        pass

    def get_service_linked_role_deletion_status(self, DeletionTaskId: str) -> GetServiceLinkedRoleDeletionStatusResponse:
        r"""Retrieves the status of your service-linked role deletion. After you use <a>DeleteServiceLinkedRole</a> to submit a service-linked role for deletion, you can use the <code>DeletionTaskId</code> parameter in <code>GetServiceLinkedRoleDeletionStatus</code> to check the status of the deletion. If the deletion fails, this operation returns the reason that it failed, if that information is returned by the service.

        :param self:
        :param DeletionTaskId:  The deletion task identifier. This identifier is returned by the <a>DeleteServiceLinkedRole</a> operation in the format <code>task/aws-service-role/&lt;service-principal-name&gt;/&lt;role-name&gt;/&lt;task-uuid&gt;</code>.<br/>
        :return: Reason:  An object that contains details about the reason the deletion failed.:<br/>Status:  The status of the deletion.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleUsageList</i> A list of objects that contains details about the service-linked role deletion failure, if that information is returned by the service. If the service-linked role has active sessions or if any resources that were used by the role have not been deleted from the linked service, the role can't be deleted. This parameter includes a list of the resources that are associated with the role and the Region in which the resources are being used.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Reason</i> A short description of the reason that the service-linked role deletion failed.<br/>        """
        pass

    def get_user(self, UserName: str=None) -> GetUserResponse:
        r"""Retrieves information about the specified IAM user, including the user's creation date, path, unique ID, and ARN. If you do not specify a user name, IAM determines the user name implicitly based on the Amazon Web Services access key ID used to sign the request to this operation.

        :param self:
        :param UserName:  The name of the user to get information about. This parameter is optional. If it is not included, it defaults to the user making the request. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return: User:  A structure containing details about the IAM user. <important> Due to a service issue, password last used data does not include password use from May 3, 2018 22:50 PDT to May 23, 2018 14:08 PDT. This affects <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_finding-unused.html">last sign-in</a> dates shown in the IAM console and password last used dates in the <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_getting-report.html">IAM credential report</a>, and returned by this operation. If users signed in during the affected time, the password last used date that is returned is the date the user last signed in before May 3, 2018. For users that signed in after May 23, 2018 14:08 PDT, the returned password last used date is accurate. You can use password last used information to identify unused credentials for deletion. For example, you might delete users who did not sign in to Amazon Web Services in the last 90 days. In cases like this, we recommend that you adjust your evaluation window to include dates after May 23, 2018. Alternatively, if your users use access keys to access Amazon Web Services programmatically you can refer to access key last used information because it is accurate for all dates.  </important>:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> A list of tags that are associated with the user. For more information about tagging, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html">Tagging IAM resources</a> in the <i>IAM User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PermissionsBoundary</i> For more information about permissions boundaries, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html">Permissions boundaries for IAM identities </a> in the <i>IAM User Guide</i>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PermissionsBoundary</b>: For more information about permissions boundaries, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html">Permissions boundaries for IAM identities </a> in the <i>IAM User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PasswordLastUsed</i> The date and time, in <a href="http://www.iso.org/iso/iso8601">ISO 8601 date-time format</a>, when the user's password was last used to sign in to an Amazon Web Services website. For a list of Amazon Web Services websites that capture a user's last sign-in time, see the <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/credential-reports.html">Credential reports</a> topic in the <i>IAM User Guide</i>. If a password is used more than once in a five-minute span, only the first use is returned in this field. If the field is null (no value), then it indicates that they never signed in with a password. This can be because: <ul> <li> The user never had a password. </li> <li> A password exists but has not been used since IAM started tracking this information on October 20, 2014. </li> </ul> A null value does not mean that the user <i>never</i> had a password. Also, if the user does not currently have a password but had one in the past, then this field contains the date and time the most recent password was used. This value is returned only in the <a>GetUser</a> and <a>ListUsers</a> operations. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreateDate</i> The date and time, in <a href="http://www.iso.org/iso/iso8601">ISO 8601 date-time format</a>, when the user was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) that identifies the user. For more information about ARNs and how to use ARNs in policies, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html">IAM Identifiers</a> in the <i>IAM User Guide</i>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserId</i> The stable and unique string identifying the user. For more information about IDs, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html">IAM identifiers</a> in the <i>IAM User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserName</i> The friendly name identifying the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Path</i> The path to the user. For more information about paths, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html">IAM identifiers</a> in the <i>IAM User Guide</i>. The ARN of the policy used to set the permissions boundary for the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PermissionsBoundaryArn</i>  The ARN of the policy used to set the permissions boundary for the user or role.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PermissionsBoundaryType</i>  The permissions boundary usage type that indicates what type of IAM resource is used as the permissions boundary for an entity. This data type can only have a value of <code>Policy</code>.<br/>        """
        pass

    def get_user_policy(self, PolicyName: str, UserName: str) -> GetUserPolicyResponse:
        r"""Retrieves the specified inline policy document that is embedded in the specified IAM user. <note> Policies returned by this operation are URL-encoded compliant with <a href="https://tools.ietf.org/html/rfc3986">RFC 3986</a>. You can use a URL decoding method to convert the policy back to plain JSON text. For example, if you use Java, you can use the <code>decode</code> method of the <code>java.net.URLDecoder</code> utility class in the Java SDK. Other languages and SDKs provide similar functionality. </note> An IAM user can also have managed policies attached to it. To retrieve a managed policy document that is attached to a user, use <a>GetPolicy</a> to determine the policy's default version. Then use <a>GetPolicyVersion</a> to retrieve the policy document. For more information about policies, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html">Managed policies and inline policies</a> in the <i>IAM User Guide</i>.

        :param self:
        :param PolicyName:  The name of the policy document to get. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>UserName:  The name of the user who the policy is associated with. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return: PolicyDocument:  The policy document. IAM stores policies in JSON format. However, resources that were created using CloudFormation templates can be formatted in YAML. CloudFormation always converts a YAML policy to JSON format before submitting it to IAM.<br/>PolicyName:  The name of the policy.<br/>UserName:  The user the policy is associated with.<br/>        """
        pass

    def list_access_keys(self, UserName: str=None, Marker: str=None, MaxItems: int=None) -> ListAccessKeysResponse:
        r"""Returns information about the access key IDs associated with the specified IAM user. If there is none, the operation returns an empty list. Although each user is limited to a small number of keys, you can still paginate the results using the <code>MaxItems</code> and <code>Marker</code> parameters. If the <code>UserName</code> field is not specified, the user name is determined implicitly based on the Amazon Web Services access key ID used to sign the request. This operation works for access keys under the account. Consequently, you can use this operation to manage account root user credentials even if the account has no associated users. <note> To ensure the security of your account, the secret access key is accessible only during key and user creation. </note>

        :param self:
        :param MaxItems:  Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the <code>IsTruncated</code> response element is <code>true</code>. If you do not include this parameter, the number of items defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the <code>IsTruncated</code> response element returns <code>true</code>, and <code>Marker</code> contains a value to include in the subsequent call that tells the service where to continue from.<br/>Marker:  Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the <code>Marker</code> element in the response that you received to indicate where the next call should start.<br/>UserName:  The name of the user. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return: Marker:  When <code>IsTruncated</code> is <code>true</code>, this element is present and contains the value to use for the <code>Marker</code> parameter in a subsequent pagination request.<br/>IsTruncated:  A flag that indicates whether there are more items to return. If your results were truncated, you can make a subsequent pagination request using the <code>Marker</code> request parameter to retrieve more items. Note that IAM might return fewer than the <code>MaxItems</code> number of results even when there are more results available. We recommend that you check <code>IsTruncated</code> after every call to ensure that you receive all your results.<br/>AccessKeyMetadata:  A list of objects containing metadata about the access keys.<br/>        """
        pass

    def list_account_aliases(self, Marker: str=None, MaxItems: int=None) -> ListAccountAliasesResponse:
        r"""Lists the account alias associated with the account (Note: you can have only one). For information about using an account alias, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/AccountAlias.html">Using an alias for your account ID</a> in the <i>IAM User Guide</i>.

        :param self:
        :param MaxItems:  Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the <code>IsTruncated</code> response element is <code>true</code>. If you do not include this parameter, the number of items defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the <code>IsTruncated</code> response element returns <code>true</code>, and <code>Marker</code> contains a value to include in the subsequent call that tells the service where to continue from.<br/>Marker:  Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the <code>Marker</code> element in the response that you received to indicate where the next call should start.<br/>
        :return: Marker:  When <code>IsTruncated</code> is <code>true</code>, this element is present and contains the value to use for the <code>Marker</code> parameter in a subsequent pagination request.<br/>IsTruncated:  A flag that indicates whether there are more items to return. If your results were truncated, you can make a subsequent pagination request using the <code>Marker</code> request parameter to retrieve more items. Note that IAM might return fewer than the <code>MaxItems</code> number of results even when there are more results available. We recommend that you check <code>IsTruncated</code> after every call to ensure that you receive all your results.<br/>AccountAliases:  A list of aliases associated with the account. Amazon Web Services supports only one alias per account.<br/>        """
        pass

    def list_attached_group_policies(self, GroupName: str, PathPrefix: str=None, Marker: str=None, MaxItems: int=None) -> ListAttachedGroupPoliciesResponse:
        r"""Lists all managed policies that are attached to the specified IAM group. An IAM group can also have inline policies embedded with it. To list the inline policies for a group, use <a>ListGroupPolicies</a>. For information about policies, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html">Managed policies and inline policies</a> in the <i>IAM User Guide</i>. You can paginate the results using the <code>MaxItems</code> and <code>Marker</code> parameters. You can use the <code>PathPrefix</code> parameter to limit the list of policies to only those matching the specified path prefix. If there are no policies attached to the specified group (or none that match the specified path prefix), the operation returns an empty list.

        :param self:
        :param MaxItems:  Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the <code>IsTruncated</code> response element is <code>true</code>. If you do not include this parameter, the number of items defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the <code>IsTruncated</code> response element returns <code>true</code>, and <code>Marker</code> contains a value to include in the subsequent call that tells the service where to continue from.<br/>Marker:  Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the <code>Marker</code> element in the response that you received to indicate where the next call should start.<br/>PathPrefix:  The path prefix for filtering the results. This parameter is optional. If it is not included, it defaults to a slash (/), listing all policies. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes. In addition, it can contain any ASCII character from the ! (<code>\u0021</code>) through the DEL character (<code>\u007F</code>), including most punctuation characters, digits, and upper and lowercased letters.<br/>GroupName:  The name (friendly name, not ARN) of the group to list attached policies for. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return: Marker:  When <code>IsTruncated</code> is <code>true</code>, this element is present and contains the value to use for the <code>Marker</code> parameter in a subsequent pagination request.<br/>IsTruncated:  A flag that indicates whether there are more items to return. If your results were truncated, you can make a subsequent pagination request using the <code>Marker</code> request parameter to retrieve more items. Note that IAM might return fewer than the <code>MaxItems</code> number of results even when there are more results available. We recommend that you check <code>IsTruncated</code> after every call to ensure that you receive all your results.<br/>AttachedPolicies:  A list of the attached policies.<br/>        """
        pass

    def list_attached_role_policies(self, RoleName: str, PathPrefix: str=None, Marker: str=None, MaxItems: int=None) -> ListAttachedRolePoliciesResponse:
        r"""Lists all managed policies that are attached to the specified IAM role. An IAM role can also have inline policies embedded with it. To list the inline policies for a role, use <a>ListRolePolicies</a>. For information about policies, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html">Managed policies and inline policies</a> in the <i>IAM User Guide</i>. You can paginate the results using the <code>MaxItems</code> and <code>Marker</code> parameters. You can use the <code>PathPrefix</code> parameter to limit the list of policies to only those matching the specified path prefix. If there are no policies attached to the specified role (or none that match the specified path prefix), the operation returns an empty list.

        :param self:
        :param MaxItems:  Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the <code>IsTruncated</code> response element is <code>true</code>. If you do not include this parameter, the number of items defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the <code>IsTruncated</code> response element returns <code>true</code>, and <code>Marker</code> contains a value to include in the subsequent call that tells the service where to continue from.<br/>Marker:  Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the <code>Marker</code> element in the response that you received to indicate where the next call should start.<br/>PathPrefix:  The path prefix for filtering the results. This parameter is optional. If it is not included, it defaults to a slash (/), listing all policies. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes. In addition, it can contain any ASCII character from the ! (<code>\u0021</code>) through the DEL character (<code>\u007F</code>), including most punctuation characters, digits, and upper and lowercased letters.<br/>RoleName:  The name (friendly name, not ARN) of the role to list attached policies for. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return: Marker:  When <code>IsTruncated</code> is <code>true</code>, this element is present and contains the value to use for the <code>Marker</code> parameter in a subsequent pagination request.<br/>IsTruncated:  A flag that indicates whether there are more items to return. If your results were truncated, you can make a subsequent pagination request using the <code>Marker</code> request parameter to retrieve more items. Note that IAM might return fewer than the <code>MaxItems</code> number of results even when there are more results available. We recommend that you check <code>IsTruncated</code> after every call to ensure that you receive all your results.<br/>AttachedPolicies:  A list of the attached policies.<br/>        """
        pass

    def list_attached_user_policies(self, UserName: str, PathPrefix: str=None, Marker: str=None, MaxItems: int=None) -> ListAttachedUserPoliciesResponse:
        r"""Lists all managed policies that are attached to the specified IAM user. An IAM user can also have inline policies embedded with it. To list the inline policies for a user, use <a>ListUserPolicies</a>. For information about policies, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html">Managed policies and inline policies</a> in the <i>IAM User Guide</i>. You can paginate the results using the <code>MaxItems</code> and <code>Marker</code> parameters. You can use the <code>PathPrefix</code> parameter to limit the list of policies to only those matching the specified path prefix. If there are no policies attached to the specified group (or none that match the specified path prefix), the operation returns an empty list.

        :param self:
        :param MaxItems:  Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the <code>IsTruncated</code> response element is <code>true</code>. If you do not include this parameter, the number of items defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the <code>IsTruncated</code> response element returns <code>true</code>, and <code>Marker</code> contains a value to include in the subsequent call that tells the service where to continue from.<br/>Marker:  Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the <code>Marker</code> element in the response that you received to indicate where the next call should start.<br/>PathPrefix:  The path prefix for filtering the results. This parameter is optional. If it is not included, it defaults to a slash (/), listing all policies. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes. In addition, it can contain any ASCII character from the ! (<code>\u0021</code>) through the DEL character (<code>\u007F</code>), including most punctuation characters, digits, and upper and lowercased letters.<br/>UserName:  The name (friendly name, not ARN) of the user to list attached policies for. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return: Marker:  When <code>IsTruncated</code> is <code>true</code>, this element is present and contains the value to use for the <code>Marker</code> parameter in a subsequent pagination request.<br/>IsTruncated:  A flag that indicates whether there are more items to return. If your results were truncated, you can make a subsequent pagination request using the <code>Marker</code> request parameter to retrieve more items. Note that IAM might return fewer than the <code>MaxItems</code> number of results even when there are more results available. We recommend that you check <code>IsTruncated</code> after every call to ensure that you receive all your results.<br/>AttachedPolicies:  A list of the attached policies.<br/>        """
        pass

    def list_entities_for_policy(self, PolicyArn: str, EntityFilter: str=None, PathPrefix: str=None, PolicyUsageFilter: str=None, Marker: str=None, MaxItems: int=None) -> ListEntitiesForPolicyResponse:
        r"""Lists all IAM users, groups, and roles that the specified managed policy is attached to. You can use the optional <code>EntityFilter</code> parameter to limit the results to a particular type of entity (users, groups, or roles). For example, to list only the roles that are attached to the specified policy, set <code>EntityFilter</code> to <code>Role</code>. You can paginate the results using the <code>MaxItems</code> and <code>Marker</code> parameters.

        :param self:
        :param MaxItems:  Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the <code>IsTruncated</code> response element is <code>true</code>. If you do not include this parameter, the number of items defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the <code>IsTruncated</code> response element returns <code>true</code>, and <code>Marker</code> contains a value to include in the subsequent call that tells the service where to continue from.<br/>Marker:  Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the <code>Marker</code> element in the response that you received to indicate where the next call should start.<br/>PolicyUsageFilter:  The policy usage method to use for filtering the results. To list only permissions policies, set <code>PolicyUsageFilter</code> to <code>PermissionsPolicy</code>. To list only the policies used to set permissions boundaries, set the value to <code>PermissionsBoundary</code>. This parameter is optional. If it is not included, all policies are returned. <br/>PathPrefix:  The path prefix for filtering the results. This parameter is optional. If it is not included, it defaults to a slash (/), listing all entities. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes. In addition, it can contain any ASCII character from the ! (<code>\u0021</code>) through the DEL character (<code>\u007F</code>), including most punctuation characters, digits, and upper and lowercased letters.<br/>EntityFilter:  The entity type to use for filtering the results. For example, when <code>EntityFilter</code> is <code>Role</code>, only the roles that are attached to the specified policy are returned. This parameter is optional. If it is not included, all attached entities (users, groups, and roles) are returned. The argument for this parameter must be one of the valid values listed below.<br/>PolicyArn:  The Amazon Resource Name (ARN) of the IAM policy for which you want the versions. For more information about ARNs, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs)</a> in the <i>Amazon Web Services General Reference</i>.<br/>
        :return: Marker:  When <code>IsTruncated</code> is <code>true</code>, this element is present and contains the value to use for the <code>Marker</code> parameter in a subsequent pagination request.<br/>IsTruncated:  A flag that indicates whether there are more items to return. If your results were truncated, you can make a subsequent pagination request using the <code>Marker</code> request parameter to retrieve more items. Note that IAM might return fewer than the <code>MaxItems</code> number of results even when there are more results available. We recommend that you check <code>IsTruncated</code> after every call to ensure that you receive all your results.<br/>PolicyRoles:  A list of IAM roles that the policy is attached to.<br/>PolicyUsers:  A list of IAM users that the policy is attached to.<br/>PolicyGroups:  A list of IAM groups that the policy is attached to.<br/>        """
        pass

    def list_group_policies(self, GroupName: str, Marker: str=None, MaxItems: int=None) -> ListGroupPoliciesResponse:
        r"""Lists the names of the inline policies that are embedded in the specified IAM group. An IAM group can also have managed policies attached to it. To list the managed policies that are attached to a group, use <a>ListAttachedGroupPolicies</a>. For more information about policies, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html">Managed policies and inline policies</a> in the <i>IAM User Guide</i>. You can paginate the results using the <code>MaxItems</code> and <code>Marker</code> parameters. If there are no inline policies embedded with the specified group, the operation returns an empty list.

        :param self:
        :param MaxItems:  Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the <code>IsTruncated</code> response element is <code>true</code>. If you do not include this parameter, the number of items defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the <code>IsTruncated</code> response element returns <code>true</code>, and <code>Marker</code> contains a value to include in the subsequent call that tells the service where to continue from.<br/>Marker:  Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the <code>Marker</code> element in the response that you received to indicate where the next call should start.<br/>GroupName:  The name of the group to list policies for. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return: Marker:  When <code>IsTruncated</code> is <code>true</code>, this element is present and contains the value to use for the <code>Marker</code> parameter in a subsequent pagination request.<br/>IsTruncated:  A flag that indicates whether there are more items to return. If your results were truncated, you can make a subsequent pagination request using the <code>Marker</code> request parameter to retrieve more items. Note that IAM might return fewer than the <code>MaxItems</code> number of results even when there are more results available. We recommend that you check <code>IsTruncated</code> after every call to ensure that you receive all your results.<br/>PolicyNames:  A list of policy names. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>        """
        pass

    def list_groups(self, PathPrefix: str=None, Marker: str=None, MaxItems: int=None) -> ListGroupsResponse:
        r"""Lists the IAM groups that have the specified path prefix.  You can paginate the results using the <code>MaxItems</code> and <code>Marker</code> parameters.

        :param self:
        :param MaxItems:  Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the <code>IsTruncated</code> response element is <code>true</code>. If you do not include this parameter, the number of items defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the <code>IsTruncated</code> response element returns <code>true</code>, and <code>Marker</code> contains a value to include in the subsequent call that tells the service where to continue from.<br/>Marker:  Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the <code>Marker</code> element in the response that you received to indicate where the next call should start.<br/>PathPrefix:   The path prefix for filtering the results. For example, the prefix <code>/division_abc/subdivision_xyz/</code> gets all groups whose path starts with <code>/division_abc/subdivision_xyz/</code>. This parameter is optional. If it is not included, it defaults to a slash (/), listing all groups. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes. In addition, it can contain any ASCII character from the ! (<code>\u0021</code>) through the DEL character (<code>\u007F</code>), including most punctuation characters, digits, and upper and lowercased letters.<br/>
        :return: Marker:  When <code>IsTruncated</code> is <code>true</code>, this element is present and contains the value to use for the <code>Marker</code> parameter in a subsequent pagination request.<br/>IsTruncated:  A flag that indicates whether there are more items to return. If your results were truncated, you can make a subsequent pagination request using the <code>Marker</code> request parameter to retrieve more items. Note that IAM might return fewer than the <code>MaxItems</code> number of results even when there are more results available. We recommend that you check <code>IsTruncated</code> after every call to ensure that you receive all your results.<br/>Groups:  A list of groups.<br/>        """
        pass

    def list_groups_for_user(self, UserName: str, Marker: str=None, MaxItems: int=None) -> ListGroupsForUserResponse:
        r"""Lists the IAM groups that the specified IAM user belongs to. You can paginate the results using the <code>MaxItems</code> and <code>Marker</code> parameters.

        :param self:
        :param MaxItems:  Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the <code>IsTruncated</code> response element is <code>true</code>. If you do not include this parameter, the number of items defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the <code>IsTruncated</code> response element returns <code>true</code>, and <code>Marker</code> contains a value to include in the subsequent call that tells the service where to continue from.<br/>Marker:  Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the <code>Marker</code> element in the response that you received to indicate where the next call should start.<br/>UserName:  The name of the user to list groups for. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return: Marker:  When <code>IsTruncated</code> is <code>true</code>, this element is present and contains the value to use for the <code>Marker</code> parameter in a subsequent pagination request.<br/>IsTruncated:  A flag that indicates whether there are more items to return. If your results were truncated, you can make a subsequent pagination request using the <code>Marker</code> request parameter to retrieve more items. Note that IAM might return fewer than the <code>MaxItems</code> number of results even when there are more results available. We recommend that you check <code>IsTruncated</code> after every call to ensure that you receive all your results.<br/>Groups:  A list of groups.<br/>        """
        pass

    def list_instance_profile_tags(self, InstanceProfileName: str, Marker: str=None, MaxItems: int=None) -> ListInstanceProfileTagsResponse:
        r"""Lists the tags that are attached to the specified IAM instance profile. The returned list of tags is sorted by tag key. For more information about tagging, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html">Tagging IAM resources</a> in the <i>IAM User Guide</i>.

        :param self:
        :param MaxItems:  Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the <code>IsTruncated</code> response element is <code>true</code>. If you do not include this parameter, the number of items defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the <code>IsTruncated</code> response element returns <code>true</code>, and <code>Marker</code> contains a value to include in the subsequent call that tells the service where to continue from.<br/>Marker:  Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the <code>Marker</code> element in the response that you received to indicate where the next call should start.<br/>InstanceProfileName:  The name of the IAM instance profile whose tags you want to see. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return: Marker:  When <code>IsTruncated</code> is <code>true</code>, this element is present and contains the value to use for the <code>Marker</code> parameter in a subsequent pagination request.<br/>IsTruncated:  A flag that indicates whether there are more items to return. If your results were truncated, you can make a subsequent pagination request using the <code>Marker</code> request parameter to retrieve more items. Note that IAM might return fewer than the <code>MaxItems</code> number of results even when there are more results available. We recommend that you check <code>IsTruncated</code> after every call to ensure that you receive all your results.<br/>Tags:  The list of tags that are currently attached to the IAM instance profile. Each tag consists of a key name and an associated value. If no tags are attached to the specified resource, the response contains an empty list.<br/>        """
        pass

    def list_instance_profiles(self, PathPrefix: str=None, Marker: str=None, MaxItems: int=None) -> ListInstanceProfilesResponse:
        r"""Lists the instance profiles that have the specified path prefix. If there are none, the operation returns an empty list. For more information about instance profiles, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/AboutInstanceProfiles.html">About instance profiles</a>. <note> IAM resource-listing operations return a subset of the available attributes for the resource. For example, this operation does not return tags, even though they are an attribute of the returned object. To view all of the information for an instance profile, see <a>GetInstanceProfile</a>. </note> You can paginate the results using the <code>MaxItems</code> and <code>Marker</code> parameters.

        :param self:
        :param MaxItems:  Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the <code>IsTruncated</code> response element is <code>true</code>. If you do not include this parameter, the number of items defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the <code>IsTruncated</code> response element returns <code>true</code>, and <code>Marker</code> contains a value to include in the subsequent call that tells the service where to continue from.<br/>Marker:  Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the <code>Marker</code> element in the response that you received to indicate where the next call should start.<br/>PathPrefix:   The path prefix for filtering the results. For example, the prefix <code>/application_abc/component_xyz/</code> gets all instance profiles whose path starts with <code>/application_abc/component_xyz/</code>. This parameter is optional. If it is not included, it defaults to a slash (/), listing all instance profiles. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes. In addition, it can contain any ASCII character from the ! (<code>\u0021</code>) through the DEL character (<code>\u007F</code>), including most punctuation characters, digits, and upper and lowercased letters.<br/>
        :return: Marker:  When <code>IsTruncated</code> is <code>true</code>, this element is present and contains the value to use for the <code>Marker</code> parameter in a subsequent pagination request.<br/>IsTruncated:  A flag that indicates whether there are more items to return. If your results were truncated, you can make a subsequent pagination request using the <code>Marker</code> request parameter to retrieve more items. Note that IAM might return fewer than the <code>MaxItems</code> number of results even when there are more results available. We recommend that you check <code>IsTruncated</code> after every call to ensure that you receive all your results.<br/>InstanceProfiles:  A list of instance profiles.<br/>        """
        pass

    def list_instance_profiles_for_role(self, RoleName: str, Marker: str=None, MaxItems: int=None) -> ListInstanceProfilesForRoleResponse:
        r"""Lists the instance profiles that have the specified associated IAM role. If there are none, the operation returns an empty list. For more information about instance profiles, go to <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/AboutInstanceProfiles.html">About instance profiles</a>. You can paginate the results using the <code>MaxItems</code> and <code>Marker</code> parameters.

        :param self:
        :param MaxItems:  Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the <code>IsTruncated</code> response element is <code>true</code>. If you do not include this parameter, the number of items defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the <code>IsTruncated</code> response element returns <code>true</code>, and <code>Marker</code> contains a value to include in the subsequent call that tells the service where to continue from.<br/>Marker:  Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the <code>Marker</code> element in the response that you received to indicate where the next call should start.<br/>RoleName:  The name of the role to list instance profiles for. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return: Marker:  When <code>IsTruncated</code> is <code>true</code>, this element is present and contains the value to use for the <code>Marker</code> parameter in a subsequent pagination request.<br/>IsTruncated:  A flag that indicates whether there are more items to return. If your results were truncated, you can make a subsequent pagination request using the <code>Marker</code> request parameter to retrieve more items. Note that IAM might return fewer than the <code>MaxItems</code> number of results even when there are more results available. We recommend that you check <code>IsTruncated</code> after every call to ensure that you receive all your results.<br/>InstanceProfiles:  A list of instance profiles.<br/>        """
        pass

    def list_mfa_device_tags(self, SerialNumber: str, Marker: str=None, MaxItems: int=None) -> ListMFADeviceTagsResponse:
        r"""Lists the tags that are attached to the specified IAM virtual multi-factor authentication (MFA) device. The returned list of tags is sorted by tag key. For more information about tagging, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html">Tagging IAM resources</a> in the <i>IAM User Guide</i>.

        :param self:
        :param MaxItems:  Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the <code>IsTruncated</code> response element is <code>true</code>. If you do not include this parameter, the number of items defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the <code>IsTruncated</code> response element returns <code>true</code>, and <code>Marker</code> contains a value to include in the subsequent call that tells the service where to continue from.<br/>Marker:  Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the <code>Marker</code> element in the response that you received to indicate where the next call should start.<br/>SerialNumber:  The unique identifier for the IAM virtual MFA device whose tags you want to see. For virtual MFA devices, the serial number is the same as the ARN. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return: Marker:  When <code>IsTruncated</code> is <code>true</code>, this element is present and contains the value to use for the <code>Marker</code> parameter in a subsequent pagination request.<br/>IsTruncated:  A flag that indicates whether there are more items to return. If your results were truncated, you can make a subsequent pagination request using the <code>Marker</code> request parameter to retrieve more items. Note that IAM might return fewer than the <code>MaxItems</code> number of results even when there are more results available. We recommend that you check <code>IsTruncated</code> after every call to ensure that you receive all your results.<br/>Tags:  The list of tags that are currently attached to the virtual MFA device. Each tag consists of a key name and an associated value. If no tags are attached to the specified resource, the response contains an empty list.<br/>        """
        pass

    def list_mfa_devices(self, UserName: str=None, Marker: str=None, MaxItems: int=None) -> ListMFADevicesResponse:
        r"""Lists the MFA devices for an IAM user. If the request includes a IAM user name, then this operation lists all the MFA devices associated with the specified user. If you do not specify a user name, IAM determines the user name implicitly based on the Amazon Web Services access key ID signing the request for this operation. You can paginate the results using the <code>MaxItems</code> and <code>Marker</code> parameters.

        :param self:
        :param MaxItems:  Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the <code>IsTruncated</code> response element is <code>true</code>. If you do not include this parameter, the number of items defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the <code>IsTruncated</code> response element returns <code>true</code>, and <code>Marker</code> contains a value to include in the subsequent call that tells the service where to continue from.<br/>Marker:  Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the <code>Marker</code> element in the response that you received to indicate where the next call should start.<br/>UserName:  The name of the user whose MFA devices you want to list. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return: Marker:  When <code>IsTruncated</code> is <code>true</code>, this element is present and contains the value to use for the <code>Marker</code> parameter in a subsequent pagination request.<br/>IsTruncated:  A flag that indicates whether there are more items to return. If your results were truncated, you can make a subsequent pagination request using the <code>Marker</code> request parameter to retrieve more items. Note that IAM might return fewer than the <code>MaxItems</code> number of results even when there are more results available. We recommend that you check <code>IsTruncated</code> after every call to ensure that you receive all your results.<br/>MFADevices:  A list of MFA devices.<br/>        """
        pass

    def list_open_id_connect_provider_tags(self, OpenIDConnectProviderArn: str, Marker: str=None, MaxItems: int=None) -> ListOpenIDConnectProviderTagsResponse:
        r"""Lists the tags that are attached to the specified OpenID Connect (OIDC)-compatible identity provider. The returned list of tags is sorted by tag key. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_oidc.html">About web identity federation</a>. For more information about tagging, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html">Tagging IAM resources</a> in the <i>IAM User Guide</i>.

        :param self:
        :param MaxItems:  Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the <code>IsTruncated</code> response element is <code>true</code>. If you do not include this parameter, the number of items defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the <code>IsTruncated</code> response element returns <code>true</code>, and <code>Marker</code> contains a value to include in the subsequent call that tells the service where to continue from.<br/>Marker:  Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the <code>Marker</code> element in the response that you received to indicate where the next call should start.<br/>OpenIDConnectProviderArn:  The ARN of the OpenID Connect (OIDC) identity provider whose tags you want to see. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return: Marker:  When <code>IsTruncated</code> is <code>true</code>, this element is present and contains the value to use for the <code>Marker</code> parameter in a subsequent pagination request.<br/>IsTruncated:  A flag that indicates whether there are more items to return. If your results were truncated, you can make a subsequent pagination request using the <code>Marker</code> request parameter to retrieve more items. Note that IAM might return fewer than the <code>MaxItems</code> number of results even when there are more results available. We recommend that you check <code>IsTruncated</code> after every call to ensure that you receive all your results.<br/>Tags:  The list of tags that are currently attached to the OpenID Connect (OIDC) identity provider. Each tag consists of a key name and an associated value. If no tags are attached to the specified resource, the response contains an empty list.<br/>        """
        pass

    def list_open_id_connect_providers(self) -> ListOpenIDConnectProvidersResponse:
        r"""Lists information about the IAM OpenID Connect (OIDC) provider resource objects defined in the account. <note> IAM resource-listing operations return a subset of the available attributes for the resource. For example, this operation does not return tags, even though they are an attribute of the returned object. To view all of the information for an OIDC provider, see <a>GetOpenIDConnectProvider</a>. </note>

        :param self:
        :param 
        :return: OpenIDConnectProviderList:  The list of IAM OIDC provider resource objects defined in the account.<br/>        """
        pass

    def list_policies(self, Scope: str=None, OnlyAttached: booleanType=None, PathPrefix: str=None, PolicyUsageFilter: str=None, Marker: str=None, MaxItems: int=None) -> ListPoliciesResponse:
        r"""Lists all the managed policies that are available in your account, including your own customer-defined managed policies and all Amazon Web Services managed policies. You can filter the list of policies that is returned using the optional <code>OnlyAttached</code>, <code>Scope</code>, and <code>PathPrefix</code> parameters. For example, to list only the customer managed policies in your Amazon Web Services account, set <code>Scope</code> to <code>Local</code>. To list only Amazon Web Services managed policies, set <code>Scope</code> to <code>AWS</code>. You can paginate the results using the <code>MaxItems</code> and <code>Marker</code> parameters. For more information about managed policies, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html">Managed policies and inline policies</a> in the <i>IAM User Guide</i>. <note> IAM resource-listing operations return a subset of the available attributes for the resource. For example, this operation does not return tags, even though they are an attribute of the returned object. To view all of the information for a customer manged policy, see <a>GetPolicy</a>. </note>

        :param self:
        :param MaxItems:  Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the <code>IsTruncated</code> response element is <code>true</code>. If you do not include this parameter, the number of items defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the <code>IsTruncated</code> response element returns <code>true</code>, and <code>Marker</code> contains a value to include in the subsequent call that tells the service where to continue from.<br/>Marker:  Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the <code>Marker</code> element in the response that you received to indicate where the next call should start.<br/>PolicyUsageFilter:  The policy usage method to use for filtering the results. To list only permissions policies, set <code>PolicyUsageFilter</code> to <code>PermissionsPolicy</code>. To list only the policies used to set permissions boundaries, set the value to <code>PermissionsBoundary</code>. This parameter is optional. If it is not included, all policies are returned. <br/>PathPrefix:  The path prefix for filtering the results. This parameter is optional. If it is not included, it defaults to a slash (/), listing all policies. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes. In addition, it can contain any ASCII character from the ! (<code>\u0021</code>) through the DEL character (<code>\u007F</code>), including most punctuation characters, digits, and upper and lowercased letters.<br/>OnlyAttached:  A flag to filter the results to only the attached policies. When <code>OnlyAttached</code> is <code>true</code>, the returned list contains only the policies that are attached to an IAM user, group, or role. When <code>OnlyAttached</code> is <code>false</code>, or when the parameter is not included, all policies are returned.<br/>Scope:  The scope to use for filtering the results. To list only Amazon Web Services managed policies, set <code>Scope</code> to <code>AWS</code>. To list only the customer managed policies in your account, set <code>Scope</code> to <code>Local</code>. This parameter is optional. If it is not included, or if it is set to <code>All</code>, all policies are returned.<br/>
        :return: Marker:  When <code>IsTruncated</code> is <code>true</code>, this element is present and contains the value to use for the <code>Marker</code> parameter in a subsequent pagination request.<br/>IsTruncated:  A flag that indicates whether there are more items to return. If your results were truncated, you can make a subsequent pagination request using the <code>Marker</code> request parameter to retrieve more items. Note that IAM might return fewer than the <code>MaxItems</code> number of results even when there are more results available. We recommend that you check <code>IsTruncated</code> after every call to ensure that you receive all your results.<br/>Policies:  A list of policies.<br/>        """
        pass

    def list_policies_granting_service_access(self, ServiceNamespaces: List[serviceNamespaceType], Arn: str, Marker: str=None) -> ListPoliciesGrantingServiceAccessResponse:
        r"""Retrieves a list of policies that the IAM identity (user, group, or role) can use to access each specified service. <note> This operation does not use other policy types when determining whether a resource could access a service. These other policy types include resource-based policies, access control lists, Organizations policies, IAM permissions boundaries, and STS assume role policies. It only applies permissions policy logic. For more about the evaluation of policy types, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html#policy-eval-basics">Evaluating policies</a> in the <i>IAM User Guide</i>. </note> The list of policies returned by the operation depends on the ARN of the identity that you provide. <ul> <li>  <b>User</b> – The list of policies includes the managed and inline policies that are attached to the user directly. The list also includes any additional managed and inline policies that are attached to the group to which the user belongs.  </li> <li>  <b>Group</b> – The list of policies includes only the managed and inline policies that are attached to the group directly. Policies that are attached to the group’s user are not included. </li> <li>  <b>Role</b> – The list of policies includes only the managed and inline policies that are attached to the role. </li> </ul> For each managed policy, this operation returns the ARN and policy name. For each inline policy, it returns the policy name and the entity to which it is attached. Inline policies do not have an ARN. For more information about these policy types, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html">Managed policies and inline policies</a> in the <i>IAM User Guide</i>. Policies that are attached to users and roles as permissions boundaries are not returned. To view which managed policy is currently used to set the permissions boundary for a user or role, use the <a>GetUser</a> or <a>GetRole</a> operations.

        :param self:
        :param ServiceNamespaces:  The service namespace for the Amazon Web Services services whose policies you want to list. To learn the service namespace for a service, see <a href="https://docs.aws.amazon.com/service-authorization/latest/reference/reference_policies_actions-resources-contextkeys.html">Actions, resources, and condition keys for Amazon Web Services services</a> in the <i>IAM User Guide</i>. Choose the name of the service to view details for that service. In the first paragraph, find the service prefix. For example, <code>(service prefix: a4b)</code>. For more information about service namespaces, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#genref-aws-service-namespaces">Amazon Web Services service namespaces</a> in the <i>Amazon Web Services General Reference</i>.<br/>Arn:  The ARN of the IAM identity (user, group, or role) whose policies you want to list.<br/>Marker:  Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the <code>Marker</code> element in the response that you received to indicate where the next call should start.<br/>
        :return: Marker:  When <code>IsTruncated</code> is <code>true</code>, this element is present and contains the value to use for the <code>Marker</code> parameter in a subsequent pagination request.<br/>IsTruncated:  A flag that indicates whether there are more items to return. If your results were truncated, you can make a subsequent pagination request using the <code>Marker</code> request parameter to retrieve more items. We recommend that you check <code>IsTruncated</code> after every call to ensure that you receive all your results.<br/>PoliciesGrantingServiceAccess:  A <code>ListPoliciesGrantingServiceAccess</code> object that contains details about the permissions policies attached to the specified identity (user, group, or role).<br/>        """
        pass

    def list_policy_tags(self, PolicyArn: str, Marker: str=None, MaxItems: int=None) -> ListPolicyTagsResponse:
        r"""Lists the tags that are attached to the specified IAM customer managed policy. The returned list of tags is sorted by tag key. For more information about tagging, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html">Tagging IAM resources</a> in the <i>IAM User Guide</i>.

        :param self:
        :param MaxItems:  Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the <code>IsTruncated</code> response element is <code>true</code>. If you do not include this parameter, the number of items defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the <code>IsTruncated</code> response element returns <code>true</code>, and <code>Marker</code> contains a value to include in the subsequent call that tells the service where to continue from.<br/>Marker:  Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the <code>Marker</code> element in the response that you received to indicate where the next call should start.<br/>PolicyArn:  The ARN of the IAM customer managed policy whose tags you want to see. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return: Marker:  When <code>IsTruncated</code> is <code>true</code>, this element is present and contains the value to use for the <code>Marker</code> parameter in a subsequent pagination request.<br/>IsTruncated:  A flag that indicates whether there are more items to return. If your results were truncated, you can make a subsequent pagination request using the <code>Marker</code> request parameter to retrieve more items. Note that IAM might return fewer than the <code>MaxItems</code> number of results even when there are more results available. We recommend that you check <code>IsTruncated</code> after every call to ensure that you receive all your results.<br/>Tags:  The list of tags that are currently attached to the IAM customer managed policy. Each tag consists of a key name and an associated value. If no tags are attached to the specified resource, the response contains an empty list.<br/>        """
        pass

    def list_policy_versions(self, PolicyArn: str, Marker: str=None, MaxItems: int=None) -> ListPolicyVersionsResponse:
        r"""Lists information about the versions of the specified managed policy, including the version that is currently set as the policy's default version. For more information about managed policies, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html">Managed policies and inline policies</a> in the <i>IAM User Guide</i>.

        :param self:
        :param MaxItems:  Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the <code>IsTruncated</code> response element is <code>true</code>. If you do not include this parameter, the number of items defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the <code>IsTruncated</code> response element returns <code>true</code>, and <code>Marker</code> contains a value to include in the subsequent call that tells the service where to continue from.<br/>Marker:  Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the <code>Marker</code> element in the response that you received to indicate where the next call should start.<br/>PolicyArn:  The Amazon Resource Name (ARN) of the IAM policy for which you want the versions. For more information about ARNs, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs)</a> in the <i>Amazon Web Services General Reference</i>.<br/>
        :return: Marker:  When <code>IsTruncated</code> is <code>true</code>, this element is present and contains the value to use for the <code>Marker</code> parameter in a subsequent pagination request.<br/>IsTruncated:  A flag that indicates whether there are more items to return. If your results were truncated, you can make a subsequent pagination request using the <code>Marker</code> request parameter to retrieve more items. Note that IAM might return fewer than the <code>MaxItems</code> number of results even when there are more results available. We recommend that you check <code>IsTruncated</code> after every call to ensure that you receive all your results.<br/>Versions:  A list of policy versions. For more information about managed policy versions, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-versions.html">Versioning for managed policies</a> in the <i>IAM User Guide</i>.<br/>        """
        pass

    def list_role_policies(self, RoleName: str, Marker: str=None, MaxItems: int=None) -> ListRolePoliciesResponse:
        r"""Lists the names of the inline policies that are embedded in the specified IAM role. An IAM role can also have managed policies attached to it. To list the managed policies that are attached to a role, use <a>ListAttachedRolePolicies</a>. For more information about policies, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html">Managed policies and inline policies</a> in the <i>IAM User Guide</i>. You can paginate the results using the <code>MaxItems</code> and <code>Marker</code> parameters. If there are no inline policies embedded with the specified role, the operation returns an empty list.

        :param self:
        :param MaxItems:  Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the <code>IsTruncated</code> response element is <code>true</code>. If you do not include this parameter, the number of items defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the <code>IsTruncated</code> response element returns <code>true</code>, and <code>Marker</code> contains a value to include in the subsequent call that tells the service where to continue from.<br/>Marker:  Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the <code>Marker</code> element in the response that you received to indicate where the next call should start.<br/>RoleName:  The name of the role to list policies for. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return: Marker:  When <code>IsTruncated</code> is <code>true</code>, this element is present and contains the value to use for the <code>Marker</code> parameter in a subsequent pagination request.<br/>IsTruncated:  A flag that indicates whether there are more items to return. If your results were truncated, you can make a subsequent pagination request using the <code>Marker</code> request parameter to retrieve more items. Note that IAM might return fewer than the <code>MaxItems</code> number of results even when there are more results available. We recommend that you check <code>IsTruncated</code> after every call to ensure that you receive all your results.<br/>PolicyNames:  A list of policy names.<br/>        """
        pass

    def list_role_tags(self, RoleName: str, Marker: str=None, MaxItems: int=None) -> ListRoleTagsResponse:
        r"""Lists the tags that are attached to the specified role. The returned list of tags is sorted by tag key. For more information about tagging, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html">Tagging IAM resources</a> in the <i>IAM User Guide</i>.

        :param self:
        :param MaxItems:  Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the <code>IsTruncated</code> response element is <code>true</code>. If you do not include this parameter, the number of items defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the <code>IsTruncated</code> response element returns <code>true</code>, and <code>Marker</code> contains a value to include in the subsequent call that tells the service where to continue from.<br/>Marker:  Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the <code>Marker</code> element in the response that you received to indicate where the next call should start.<br/>RoleName:  The name of the IAM role for which you want to see the list of tags. This parameter accepts (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters that consist of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return: Marker:  When <code>IsTruncated</code> is <code>true</code>, this element is present and contains the value to use for the <code>Marker</code> parameter in a subsequent pagination request.<br/>IsTruncated:  A flag that indicates whether there are more items to return. If your results were truncated, you can make a subsequent pagination request using the <code>Marker</code> request parameter to retrieve more items. Note that IAM might return fewer than the <code>MaxItems</code> number of results even when there are more results available. We recommend that you check <code>IsTruncated</code> after every call to ensure that you receive all your results.<br/>Tags:  The list of tags that are currently attached to the role. Each tag consists of a key name and an associated value. If no tags are attached to the specified resource, the response contains an empty list.<br/>        """
        pass

    def list_roles(self, PathPrefix: str=None, Marker: str=None, MaxItems: int=None) -> ListRolesResponse:
        r"""Lists the IAM roles that have the specified path prefix. If there are none, the operation returns an empty list. For more information about roles, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/WorkingWithRoles.html">Working with roles</a>. <note> IAM resource-listing operations return a subset of the available attributes for the resource. For example, this operation does not return tags, even though they are an attribute of the returned object. To view all of the information for a role, see <a>GetRole</a>. </note> You can paginate the results using the <code>MaxItems</code> and <code>Marker</code> parameters.

        :param self:
        :param MaxItems:  Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the <code>IsTruncated</code> response element is <code>true</code>. If you do not include this parameter, the number of items defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the <code>IsTruncated</code> response element returns <code>true</code>, and <code>Marker</code> contains a value to include in the subsequent call that tells the service where to continue from.<br/>Marker:  Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the <code>Marker</code> element in the response that you received to indicate where the next call should start.<br/>PathPrefix:   The path prefix for filtering the results. For example, the prefix <code>/application_abc/component_xyz/</code> gets all roles whose path starts with <code>/application_abc/component_xyz/</code>. This parameter is optional. If it is not included, it defaults to a slash (/), listing all roles. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes. In addition, it can contain any ASCII character from the ! (<code>\u0021</code>) through the DEL character (<code>\u007F</code>), including most punctuation characters, digits, and upper and lowercased letters.<br/>
        :return: Marker:  When <code>IsTruncated</code> is <code>true</code>, this element is present and contains the value to use for the <code>Marker</code> parameter in a subsequent pagination request.<br/>IsTruncated:  A flag that indicates whether there are more items to return. If your results were truncated, you can make a subsequent pagination request using the <code>Marker</code> request parameter to retrieve more items. Note that IAM might return fewer than the <code>MaxItems</code> number of results even when there are more results available. We recommend that you check <code>IsTruncated</code> after every call to ensure that you receive all your results.<br/>Roles:  A list of roles.<br/>        """
        pass

    def list_saml_provider_tags(self, SAMLProviderArn: str, Marker: str=None, MaxItems: int=None) -> ListSAMLProviderTagsResponse:
        r"""Lists the tags that are attached to the specified Security Assertion Markup Language (SAML) identity provider. The returned list of tags is sorted by tag key. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_saml.html">About SAML 2.0-based federation</a>. For more information about tagging, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html">Tagging IAM resources</a> in the <i>IAM User Guide</i>.

        :param self:
        :param MaxItems:  Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the <code>IsTruncated</code> response element is <code>true</code>. If you do not include this parameter, the number of items defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the <code>IsTruncated</code> response element returns <code>true</code>, and <code>Marker</code> contains a value to include in the subsequent call that tells the service where to continue from.<br/>Marker:  Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the <code>Marker</code> element in the response that you received to indicate where the next call should start.<br/>SAMLProviderArn:  The ARN of the Security Assertion Markup Language (SAML) identity provider whose tags you want to see. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return: Marker:  When <code>IsTruncated</code> is <code>true</code>, this element is present and contains the value to use for the <code>Marker</code> parameter in a subsequent pagination request.<br/>IsTruncated:  A flag that indicates whether there are more items to return. If your results were truncated, you can make a subsequent pagination request using the <code>Marker</code> request parameter to retrieve more items. Note that IAM might return fewer than the <code>MaxItems</code> number of results even when there are more results available. We recommend that you check <code>IsTruncated</code> after every call to ensure that you receive all your results.<br/>Tags:  The list of tags that are currently attached to the Security Assertion Markup Language (SAML) identity provider. Each tag consists of a key name and an associated value. If no tags are attached to the specified resource, the response contains an empty list.<br/>        """
        pass

    def list_saml_providers(self) -> ListSAMLProvidersResponse:
        r"""Lists the SAML provider resource objects defined in IAM in the account. IAM resource-listing operations return a subset of the available attributes for the resource. For example, this operation does not return tags, even though they are an attribute of the returned object. To view all of the information for a SAML provider, see <a>GetSAMLProvider</a>. <important>  This operation requires <a href="https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html">Signature Version 4</a>. </important>

        :param self:
        :param 
        :return: SAMLProviderList:  The list of SAML provider resource objects defined in IAM for this Amazon Web Services account.<br/>        """
        pass

    def list_ssh_public_keys(self, UserName: str=None, Marker: str=None, MaxItems: int=None) -> ListSSHPublicKeysResponse:
        r"""Returns information about the SSH public keys associated with the specified IAM user. If none exists, the operation returns an empty list. The SSH public keys returned by this operation are used only for authenticating the IAM user to an CodeCommit repository. For more information about using SSH keys to authenticate to an CodeCommit repository, see <a href="https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-credentials-ssh.html">Set up CodeCommit for SSH connections</a> in the <i>CodeCommit User Guide</i>. Although each user is limited to a small number of keys, you can still paginate the results using the <code>MaxItems</code> and <code>Marker</code> parameters.

        :param self:
        :param MaxItems:  Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the <code>IsTruncated</code> response element is <code>true</code>. If you do not include this parameter, the number of items defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the <code>IsTruncated</code> response element returns <code>true</code>, and <code>Marker</code> contains a value to include in the subsequent call that tells the service where to continue from.<br/>Marker:  Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the <code>Marker</code> element in the response that you received to indicate where the next call should start.<br/>UserName:  The name of the IAM user to list SSH public keys for. If none is specified, the <code>UserName</code> field is determined implicitly based on the Amazon Web Services access key used to sign the request. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return: Marker:  When <code>IsTruncated</code> is <code>true</code>, this element is present and contains the value to use for the <code>Marker</code> parameter in a subsequent pagination request.<br/>IsTruncated:  A flag that indicates whether there are more items to return. If your results were truncated, you can make a subsequent pagination request using the <code>Marker</code> request parameter to retrieve more items. Note that IAM might return fewer than the <code>MaxItems</code> number of results even when there are more results available. We recommend that you check <code>IsTruncated</code> after every call to ensure that you receive all your results.<br/>SSHPublicKeys:  A list of the SSH public keys assigned to IAM user.<br/>        """
        pass

    def list_server_certificate_tags(self, ServerCertificateName: str, Marker: str=None, MaxItems: int=None) -> ListServerCertificateTagsResponse:
        r"""Lists the tags that are attached to the specified IAM server certificate. The returned list of tags is sorted by tag key. For more information about tagging, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html">Tagging IAM resources</a> in the <i>IAM User Guide</i>. <note> For certificates in a Region supported by Certificate Manager (ACM), we recommend that you don't use IAM server certificates. Instead, use ACM to provision, manage, and deploy your server certificates. For more information about IAM server certificates, <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html">Working with server certificates</a> in the <i>IAM User Guide</i>. </note>

        :param self:
        :param MaxItems:  Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the <code>IsTruncated</code> response element is <code>true</code>. If you do not include this parameter, the number of items defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the <code>IsTruncated</code> response element returns <code>true</code>, and <code>Marker</code> contains a value to include in the subsequent call that tells the service where to continue from.<br/>Marker:  Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the <code>Marker</code> element in the response that you received to indicate where the next call should start.<br/>ServerCertificateName:  The name of the IAM server certificate whose tags you want to see. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return: Marker:  When <code>IsTruncated</code> is <code>true</code>, this element is present and contains the value to use for the <code>Marker</code> parameter in a subsequent pagination request.<br/>IsTruncated:  A flag that indicates whether there are more items to return. If your results were truncated, you can make a subsequent pagination request using the <code>Marker</code> request parameter to retrieve more items. Note that IAM might return fewer than the <code>MaxItems</code> number of results even when there are more results available. We recommend that you check <code>IsTruncated</code> after every call to ensure that you receive all your results.<br/>Tags:  The list of tags that are currently attached to the IAM server certificate. Each tag consists of a key name and an associated value. If no tags are attached to the specified resource, the response contains an empty list.<br/>        """
        pass

    def list_server_certificates(self, PathPrefix: str=None, Marker: str=None, MaxItems: int=None) -> ListServerCertificatesResponse:
        r"""Lists the server certificates stored in IAM that have the specified path prefix. If none exist, the operation returns an empty list.  You can paginate the results using the <code>MaxItems</code> and <code>Marker</code> parameters. For more information about working with server certificates, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html">Working with server certificates</a> in the <i>IAM User Guide</i>. This topic also includes a list of Amazon Web Services services that can use the server certificates that you manage with IAM. <note> IAM resource-listing operations return a subset of the available attributes for the resource. For example, this operation does not return tags, even though they are an attribute of the returned object. To view all of the information for a servercertificate, see <a>GetServerCertificate</a>. </note>

        :param self:
        :param MaxItems:  Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the <code>IsTruncated</code> response element is <code>true</code>. If you do not include this parameter, the number of items defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the <code>IsTruncated</code> response element returns <code>true</code>, and <code>Marker</code> contains a value to include in the subsequent call that tells the service where to continue from.<br/>Marker:  Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the <code>Marker</code> element in the response that you received to indicate where the next call should start.<br/>PathPrefix:   The path prefix for filtering the results. For example: <code>/company/servercerts</code> would get all server certificates for which the path starts with <code>/company/servercerts</code>. This parameter is optional. If it is not included, it defaults to a slash (/), listing all server certificates. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes. In addition, it can contain any ASCII character from the ! (<code>\u0021</code>) through the DEL character (<code>\u007F</code>), including most punctuation characters, digits, and upper and lowercased letters.<br/>
        :return: Marker:  When <code>IsTruncated</code> is <code>true</code>, this element is present and contains the value to use for the <code>Marker</code> parameter in a subsequent pagination request.<br/>IsTruncated:  A flag that indicates whether there are more items to return. If your results were truncated, you can make a subsequent pagination request using the <code>Marker</code> request parameter to retrieve more items. Note that IAM might return fewer than the <code>MaxItems</code> number of results even when there are more results available. We recommend that you check <code>IsTruncated</code> after every call to ensure that you receive all your results.<br/>ServerCertificateMetadataList:  A list of server certificates.<br/>        """
        pass

    def list_service_specific_credentials(self, UserName: str=None, ServiceName: str=None) -> ListServiceSpecificCredentialsResponse:
        r"""Returns information about the service-specific credentials associated with the specified IAM user. If none exists, the operation returns an empty list. The service-specific credentials returned by this operation are used only for authenticating the IAM user to a specific service. For more information about using service-specific credentials to authenticate to an Amazon Web Services service, see <a href="https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-gc.html">Set up service-specific credentials</a> in the CodeCommit User Guide.

        :param self:
        :param ServiceName:  Filters the returned results to only those for the specified Amazon Web Services service. If not specified, then Amazon Web Services returns service-specific credentials for all services.<br/>UserName:  The name of the user whose service-specific credentials you want information about. If this value is not specified, then the operation assumes the user whose credentials are used to call the operation. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return: ServiceSpecificCredentials:  A list of structures that each contain details about a service-specific credential.<br/>        """
        pass

    def list_signing_certificates(self, UserName: str=None, Marker: str=None, MaxItems: int=None) -> ListSigningCertificatesResponse:
        r"""Returns information about the signing certificates associated with the specified IAM user. If none exists, the operation returns an empty list. Although each user is limited to a small number of signing certificates, you can still paginate the results using the <code>MaxItems</code> and <code>Marker</code> parameters. If the <code>UserName</code> field is not specified, the user name is determined implicitly based on the Amazon Web Services access key ID used to sign the request for this operation. This operation works for access keys under the account. Consequently, you can use this operation to manage account root user credentials even if the account has no associated users.

        :param self:
        :param MaxItems:  Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the <code>IsTruncated</code> response element is <code>true</code>. If you do not include this parameter, the number of items defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the <code>IsTruncated</code> response element returns <code>true</code>, and <code>Marker</code> contains a value to include in the subsequent call that tells the service where to continue from.<br/>Marker:  Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the <code>Marker</code> element in the response that you received to indicate where the next call should start.<br/>UserName:  The name of the IAM user whose signing certificates you want to examine. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return: Marker:  When <code>IsTruncated</code> is <code>true</code>, this element is present and contains the value to use for the <code>Marker</code> parameter in a subsequent pagination request.<br/>IsTruncated:  A flag that indicates whether there are more items to return. If your results were truncated, you can make a subsequent pagination request using the <code>Marker</code> request parameter to retrieve more items. Note that IAM might return fewer than the <code>MaxItems</code> number of results even when there are more results available. We recommend that you check <code>IsTruncated</code> after every call to ensure that you receive all your results.<br/>Certificates:  A list of the user's signing certificate information.<br/>        """
        pass

    def list_user_policies(self, UserName: str, Marker: str=None, MaxItems: int=None) -> ListUserPoliciesResponse:
        r"""Lists the names of the inline policies embedded in the specified IAM user. An IAM user can also have managed policies attached to it. To list the managed policies that are attached to a user, use <a>ListAttachedUserPolicies</a>. For more information about policies, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html">Managed policies and inline policies</a> in the <i>IAM User Guide</i>. You can paginate the results using the <code>MaxItems</code> and <code>Marker</code> parameters. If there are no inline policies embedded with the specified user, the operation returns an empty list.

        :param self:
        :param MaxItems:  Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the <code>IsTruncated</code> response element is <code>true</code>. If you do not include this parameter, the number of items defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the <code>IsTruncated</code> response element returns <code>true</code>, and <code>Marker</code> contains a value to include in the subsequent call that tells the service where to continue from.<br/>Marker:  Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the <code>Marker</code> element in the response that you received to indicate where the next call should start.<br/>UserName:  The name of the user to list policies for. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return: Marker:  When <code>IsTruncated</code> is <code>true</code>, this element is present and contains the value to use for the <code>Marker</code> parameter in a subsequent pagination request.<br/>IsTruncated:  A flag that indicates whether there are more items to return. If your results were truncated, you can make a subsequent pagination request using the <code>Marker</code> request parameter to retrieve more items. Note that IAM might return fewer than the <code>MaxItems</code> number of results even when there are more results available. We recommend that you check <code>IsTruncated</code> after every call to ensure that you receive all your results.<br/>PolicyNames:  A list of policy names.<br/>        """
        pass

    def list_user_tags(self, UserName: str, Marker: str=None, MaxItems: int=None) -> ListUserTagsResponse:
        r"""Lists the tags that are attached to the specified IAM user. The returned list of tags is sorted by tag key. For more information about tagging, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html">Tagging IAM resources</a> in the <i>IAM User Guide</i>.

        :param self:
        :param MaxItems:  Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the <code>IsTruncated</code> response element is <code>true</code>. If you do not include this parameter, the number of items defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the <code>IsTruncated</code> response element returns <code>true</code>, and <code>Marker</code> contains a value to include in the subsequent call that tells the service where to continue from.<br/>Marker:  Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the <code>Marker</code> element in the response that you received to indicate where the next call should start.<br/>UserName:  The name of the IAM user whose tags you want to see. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return: Marker:  When <code>IsTruncated</code> is <code>true</code>, this element is present and contains the value to use for the <code>Marker</code> parameter in a subsequent pagination request.<br/>IsTruncated:  A flag that indicates whether there are more items to return. If your results were truncated, you can make a subsequent pagination request using the <code>Marker</code> request parameter to retrieve more items. Note that IAM might return fewer than the <code>MaxItems</code> number of results even when there are more results available. We recommend that you check <code>IsTruncated</code> after every call to ensure that you receive all your results.<br/>Tags:  The list of tags that are currently attached to the user. Each tag consists of a key name and an associated value. If no tags are attached to the specified resource, the response contains an empty list.<br/>        """
        pass

    def list_users(self, PathPrefix: str=None, Marker: str=None, MaxItems: int=None) -> ListUsersResponse:
        r"""Lists the IAM users that have the specified path prefix. If no path prefix is specified, the operation returns all users in the account. If there are none, the operation returns an empty list. <note> IAM resource-listing operations return a subset of the available attributes for the resource. For example, this operation does not return tags, even though they are an attribute of the returned object. To view all of the information for a user, see <a>GetUser</a>. </note> You can paginate the results using the <code>MaxItems</code> and <code>Marker</code> parameters.

        :param self:
        :param MaxItems:  Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the <code>IsTruncated</code> response element is <code>true</code>. If you do not include this parameter, the number of items defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the <code>IsTruncated</code> response element returns <code>true</code>, and <code>Marker</code> contains a value to include in the subsequent call that tells the service where to continue from.<br/>Marker:  Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the <code>Marker</code> element in the response that you received to indicate where the next call should start.<br/>PathPrefix:   The path prefix for filtering the results. For example: <code>/division_abc/subdivision_xyz/</code>, which would get all user names whose path starts with <code>/division_abc/subdivision_xyz/</code>. This parameter is optional. If it is not included, it defaults to a slash (/), listing all user names. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes. In addition, it can contain any ASCII character from the ! (<code>\u0021</code>) through the DEL character (<code>\u007F</code>), including most punctuation characters, digits, and upper and lowercased letters.<br/>
        :return: Marker:  When <code>IsTruncated</code> is <code>true</code>, this element is present and contains the value to use for the <code>Marker</code> parameter in a subsequent pagination request.<br/>IsTruncated:  A flag that indicates whether there are more items to return. If your results were truncated, you can make a subsequent pagination request using the <code>Marker</code> request parameter to retrieve more items. Note that IAM might return fewer than the <code>MaxItems</code> number of results even when there are more results available. We recommend that you check <code>IsTruncated</code> after every call to ensure that you receive all your results.<br/>Users:  A list of users.<br/>        """
        pass

    def list_virtual_mfa_devices(self, AssignmentStatus: str=None, Marker: str=None, MaxItems: int=None) -> ListVirtualMFADevicesResponse:
        r"""Lists the virtual MFA devices defined in the account by assignment status. If you do not specify an assignment status, the operation returns a list of all virtual MFA devices. Assignment status can be <code>Assigned</code>, <code>Unassigned</code>, or <code>Any</code>. <note> IAM resource-listing operations return a subset of the available attributes for the resource. For example, this operation does not return tags, even though they are an attribute of the returned object. To view all of the information for a virtual MFA device, see <a>ListVirtualMFADevices</a>. </note> You can paginate the results using the <code>MaxItems</code> and <code>Marker</code> parameters.

        :param self:
        :param MaxItems:  Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the <code>IsTruncated</code> response element is <code>true</code>. If you do not include this parameter, the number of items defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the <code>IsTruncated</code> response element returns <code>true</code>, and <code>Marker</code> contains a value to include in the subsequent call that tells the service where to continue from.<br/>Marker:  Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the <code>Marker</code> element in the response that you received to indicate where the next call should start.<br/>AssignmentStatus:   The status (<code>Unassigned</code> or <code>Assigned</code>) of the devices to list. If you do not specify an <code>AssignmentStatus</code>, the operation defaults to <code>Any</code>, which lists both assigned and unassigned virtual MFA devices.,<br/>
        :return: Marker:  When <code>IsTruncated</code> is <code>true</code>, this element is present and contains the value to use for the <code>Marker</code> parameter in a subsequent pagination request.<br/>IsTruncated:  A flag that indicates whether there are more items to return. If your results were truncated, you can make a subsequent pagination request using the <code>Marker</code> request parameter to retrieve more items. Note that IAM might return fewer than the <code>MaxItems</code> number of results even when there are more results available. We recommend that you check <code>IsTruncated</code> after every call to ensure that you receive all your results.<br/>VirtualMFADevices:   The list of virtual MFA devices in the current account that match the <code>AssignmentStatus</code> value that was passed in the request.<br/>        """
        pass

    def put_group_policy(self, PolicyDocument: str, PolicyName: str, GroupName: str):
        r"""Adds or updates an inline policy document that is embedded in the specified IAM group. A user can also have managed policies attached to it. To attach a managed policy to a group, use <a>AttachGroupPolicy</a>. To create a new managed policy, use <a>CreatePolicy</a>. For information about policies, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html">Managed policies and inline policies</a> in the <i>IAM User Guide</i>. For information about the maximum number of inline policies that you can embed in a group, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html">IAM and STS quotas</a> in the <i>IAM User Guide</i>. <note> Because policy documents can be large, you should use POST rather than GET when calling <code>PutGroupPolicy</code>. For general information about using the Query API with IAM, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/IAM_UsingQueryAPI.html">Making query requests</a> in the <i>IAM User Guide</i>. </note>

        :param self:
        :param PolicyDocument:  The policy document. You must provide policies in JSON format in IAM. However, for CloudFormation templates formatted in YAML, you can provide the policy in JSON or YAML format. CloudFormation always converts a YAML policy to JSON format before submitting it to = IAM. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> used to validate this parameter is a string of characters consisting of the following: <ul> <li> Any printable ASCII character ranging from the space character (<code>\u0020</code>) through the end of the ASCII character range </li> <li> The printable characters in the Basic Latin and Latin-1 Supplement character set (through <code>\u00FF</code>) </li> <li> The special characters tab (<code>\u0009</code>), line feed (<code>\u000A</code>), and carriage return (<code>\u000D</code>) </li> </ul><br/>PolicyName:  The name of the policy document. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>GroupName:  The name of the group to associate the policy with. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-.<br/>
        :return:         """
        pass

    def put_role_permissions_boundary(self, PermissionsBoundary: str, RoleName: str):
        r"""Adds or updates the policy that is specified as the IAM role's permissions boundary. You can use an Amazon Web Services managed policy or a customer managed policy to set the boundary for a role. Use the boundary to control the maximum permissions that the role can have. Setting a permissions boundary is an advanced feature that can affect the permissions for the role. You cannot set the boundary for a service-linked role.  <important> Policies used as permissions boundaries do not provide permissions. You must also attach a permissions policy to the role. To learn how the effective permissions for a role are evaluated, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html">IAM JSON policy evaluation logic</a> in the IAM User Guide.  </important>

        :param self:
        :param PermissionsBoundary:  The ARN of the policy that is used to set the permissions boundary for the role.<br/>RoleName:  The name (friendly name, not ARN) of the IAM role for which you want to set the permissions boundary.<br/>
        :return:         """
        pass

    def put_role_policy(self, PolicyDocument: str, PolicyName: str, RoleName: str):
        r"""Adds or updates an inline policy document that is embedded in the specified IAM role. When you embed an inline policy in a role, the inline policy is used as part of the role's access (permissions) policy. The role's trust policy is created at the same time as the role, using <a>CreateRole</a>. You can update a role's trust policy using <a>UpdateAssumeRolePolicy</a>. For more information about IAM roles, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-toplevel.html">Using roles to delegate permissions and federate identities</a>. A role can also have a managed policy attached to it. To attach a managed policy to a role, use <a>AttachRolePolicy</a>. To create a new managed policy, use <a>CreatePolicy</a>. For information about policies, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html">Managed policies and inline policies</a> in the <i>IAM User Guide</i>. For information about the maximum number of inline policies that you can embed with a role, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html">IAM and STS quotas</a> in the <i>IAM User Guide</i>. <note> Because policy documents can be large, you should use POST rather than GET when calling <code>PutRolePolicy</code>. For general information about using the Query API with IAM, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/IAM_UsingQueryAPI.html">Making query requests</a> in the <i>IAM User Guide</i>. </note>

        :param self:
        :param PolicyDocument:  The policy document. You must provide policies in JSON format in IAM. However, for CloudFormation templates formatted in YAML, you can provide the policy in JSON or YAML format. CloudFormation always converts a YAML policy to JSON format before submitting it to IAM. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> used to validate this parameter is a string of characters consisting of the following: <ul> <li> Any printable ASCII character ranging from the space character (<code>\u0020</code>) through the end of the ASCII character range </li> <li> The printable characters in the Basic Latin and Latin-1 Supplement character set (through <code>\u00FF</code>) </li> <li> The special characters tab (<code>\u0009</code>), line feed (<code>\u000A</code>), and carriage return (<code>\u000D</code>) </li> </ul><br/>PolicyName:  The name of the policy document. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>RoleName:  The name of the role to associate the policy with. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return:         """
        pass

    def put_user_permissions_boundary(self, PermissionsBoundary: str, UserName: str):
        r"""Adds or updates the policy that is specified as the IAM user's permissions boundary. You can use an Amazon Web Services managed policy or a customer managed policy to set the boundary for a user. Use the boundary to control the maximum permissions that the user can have. Setting a permissions boundary is an advanced feature that can affect the permissions for the user. <important> Policies that are used as permissions boundaries do not provide permissions. You must also attach a permissions policy to the user. To learn how the effective permissions for a user are evaluated, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html">IAM JSON policy evaluation logic</a> in the IAM User Guide.  </important>

        :param self:
        :param PermissionsBoundary:  The ARN of the policy that is used to set the permissions boundary for the user.<br/>UserName:  The name (friendly name, not ARN) of the IAM user for which you want to set the permissions boundary.<br/>
        :return:         """
        pass

    def put_user_policy(self, PolicyDocument: str, PolicyName: str, UserName: str):
        r"""Adds or updates an inline policy document that is embedded in the specified IAM user. An IAM user can also have a managed policy attached to it. To attach a managed policy to a user, use <a>AttachUserPolicy</a>. To create a new managed policy, use <a>CreatePolicy</a>. For information about policies, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html">Managed policies and inline policies</a> in the <i>IAM User Guide</i>. For information about the maximum number of inline policies that you can embed in a user, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html">IAM and STS quotas</a> in the <i>IAM User Guide</i>. <note> Because policy documents can be large, you should use POST rather than GET when calling <code>PutUserPolicy</code>. For general information about using the Query API with IAM, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/IAM_UsingQueryAPI.html">Making query requests</a> in the <i>IAM User Guide</i>. </note>

        :param self:
        :param PolicyDocument:  The policy document. You must provide policies in JSON format in IAM. However, for CloudFormation templates formatted in YAML, you can provide the policy in JSON or YAML format. CloudFormation always converts a YAML policy to JSON format before submitting it to IAM. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> used to validate this parameter is a string of characters consisting of the following: <ul> <li> Any printable ASCII character ranging from the space character (<code>\u0020</code>) through the end of the ASCII character range </li> <li> The printable characters in the Basic Latin and Latin-1 Supplement character set (through <code>\u00FF</code>) </li> <li> The special characters tab (<code>\u0009</code>), line feed (<code>\u000A</code>), and carriage return (<code>\u000D</code>) </li> </ul><br/>PolicyName:  The name of the policy document. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>UserName:  The name of the user to associate the policy with. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return:         """
        pass

    def remove_client_id_from_open_id_connect_provider(self, ClientID: str, OpenIDConnectProviderArn: str):
        r"""Removes the specified client ID (also known as audience) from the list of client IDs registered for the specified IAM OpenID Connect (OIDC) provider resource object. This operation is idempotent; it does not fail or return an error if you try to remove a client ID that does not exist.

        :param self:
        :param ClientID:  The client ID (also known as audience) to remove from the IAM OIDC provider resource. For more information about client IDs, see <a>CreateOpenIDConnectProvider</a>.<br/>OpenIDConnectProviderArn:  The Amazon Resource Name (ARN) of the IAM OIDC provider resource to remove the client ID from. You can get a list of OIDC provider ARNs by using the <a>ListOpenIDConnectProviders</a> operation. For more information about ARNs, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs)</a> in the <i>Amazon Web Services General Reference</i>.<br/>
        :return:         """
        pass

    def remove_role_from_instance_profile(self, RoleName: str, InstanceProfileName: str):
        r"""Removes the specified IAM role from the specified EC2 instance profile. <important> Make sure that you do not have any Amazon EC2 instances running with the role you are about to remove from the instance profile. Removing a role from an instance profile that is associated with a running instance might break any applications running on the instance. </important>  For more information about IAM roles, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/WorkingWithRoles.html">Working with roles</a>. For more information about instance profiles, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/AboutInstanceProfiles.html">About instance profiles</a>.

        :param self:
        :param RoleName:  The name of the role to remove. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>InstanceProfileName:  The name of the instance profile to update. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return:         """
        pass

    def remove_user_from_group(self, UserName: str, GroupName: str):
        r"""Removes the specified user from the specified group.

        :param self:
        :param UserName:  The name of the user to remove. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>GroupName:  The name of the group to update. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return:         """
        pass

    def reset_service_specific_credential(self, ServiceSpecificCredentialId: str, UserName: str=None) -> ResetServiceSpecificCredentialResponse:
        r"""Resets the password for a service-specific credential. The new password is Amazon Web Services generated and cryptographically strong. It cannot be configured by the user. Resetting the password immediately invalidates the previous password associated with this user.

        :param self:
        :param ServiceSpecificCredentialId:  The unique identifier of the service-specific credential. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters that can consist of any upper or lowercased letter or digit.<br/>UserName:  The name of the IAM user associated with the service-specific credential. If this value is not specified, then the operation assumes the user whose credentials are used to call the operation. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return: ServiceSpecificCredential:  A structure with details about the updated service-specific credential, including the new password. <important> This is the <b>only</b> time that you can access the password. You cannot recover the password later, but you can reset it again. </important>:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the service-specific credential. <code>Active</code> means that the key is valid for API calls, while <code>Inactive</code> means it is not.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserName</i> The name of the IAM user associated with the service-specific credential.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceSpecificCredentialId</i> The unique identifier for the service-specific credential.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServicePassword</i> The generated password for the service-specific credential.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceUserName</i> The generated user name for the service-specific credential. This value is generated by combining the IAM user's name combined with the ID number of the Amazon Web Services account, as in <code>jane-at-123456789012</code>, for example. This value cannot be configured by the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceName</i> The name of the service associated with the service-specific credential.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreateDate</i> The date and time, in <a href="http://www.iso.org/iso/iso8601">ISO 8601 date-time format</a>, when the service-specific credential were created.<br/>        """
        pass

    def resync_mfa_device(self, AuthenticationCode2: str, AuthenticationCode1: str, SerialNumber: str, UserName: str):
        r"""Synchronizes the specified MFA device with its IAM resource object on the Amazon Web Services servers. For more information about creating and working with virtual MFA devices, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_VirtualMFA.html">Using a virtual MFA device</a> in the <i>IAM User Guide</i>.

        :param self:
        :param AuthenticationCode2:  A subsequent authentication code emitted by the device. The format for this parameter is a sequence of six digits.<br/>AuthenticationCode1:  An authentication code emitted by the device. The format for this parameter is a sequence of six digits.<br/>SerialNumber:  Serial number that uniquely identifies the MFA device. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>UserName:  The name of the user whose MFA device you want to resynchronize. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return:         """
        pass

    def set_default_policy_version(self, VersionId: str, PolicyArn: str):
        r"""Sets the specified version of the specified policy as the policy's default (operative) version. This operation affects all users, groups, and roles that the policy is attached to. To list the users, groups, and roles that the policy is attached to, use <a>ListEntitiesForPolicy</a>. For information about managed policies, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html">Managed policies and inline policies</a> in the <i>IAM User Guide</i>.

        :param self:
        :param VersionId:  The version of the policy to set as the default (operative) version. For more information about managed policy versions, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-versions.html">Versioning for managed policies</a> in the <i>IAM User Guide</i>.<br/>PolicyArn:  The Amazon Resource Name (ARN) of the IAM policy whose default version you want to set. For more information about ARNs, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs)</a> in the <i>Amazon Web Services General Reference</i>.<br/>
        :return:         """
        pass

    def set_security_token_service_preferences(self, GlobalEndpointTokenVersion: str):
        r"""Sets the specified version of the global endpoint token as the token version used for the account. By default, Security Token Service (STS) is available as a global service, and all STS requests go to a single endpoint at <code>https://sts.amazonaws.com</code>. Amazon Web Services recommends using Regional STS endpoints to reduce latency, build in redundancy, and increase session token availability. For information about Regional endpoints for STS, see <a href="https://docs.aws.amazon.com/general/latest/gr/sts.html">Security Token Service endpoints and quotas</a> in the <i>Amazon Web Services General Reference</i>. If you make an STS call to the global endpoint, the resulting session tokens might be valid in some Regions but not others. It depends on the version that is set in this operation. Version 1 tokens are valid only in Regions that are available by default. These tokens do not work in manually enabled Regions, such as Asia Pacific (Hong Kong). Version 2 tokens are valid in all Regions. However, version 2 tokens are longer and might affect systems where you temporarily store tokens. For information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html">Activating and deactivating STS in an Region</a> in the <i>IAM User Guide</i>. To view the current session token version, see the <code>GlobalEndpointTokenVersion</code> entry in the response of the <a>GetAccountSummary</a> operation.

        :param self:
        :param GlobalEndpointTokenVersion:  The version of the global endpoint token. Version 1 tokens are valid only in Regions that are available by default. These tokens do not work in manually enabled Regions, such as Asia Pacific (Hong Kong). Version 2 tokens are valid in all Regions. However, version 2 tokens are longer and might affect systems where you temporarily store tokens. For information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html">Activating and deactivating STS in an Region</a> in the <i>IAM User Guide</i>.<br/>
        :return:         """
        pass

    def simulate_custom_policy(self, ActionNames: List[ActionNameType], PolicyInputList: List[policyDocumentType], PermissionsBoundaryPolicyInputList: List[policyDocumentType]=None, ResourceArns: List[ResourceNameType]=None, ResourcePolicy: str=None, ResourceOwner: str=None, CallerArn: str=None, ContextEntries: List[ContextEntry]=None, ResourceHandlingOption: str=None, MaxItems: int=None, Marker: str=None) -> SimulatePolicyResponse:
        r"""Simulate how a set of IAM policies and optionally a resource-based policy works with a list of API operations and Amazon Web Services resources to determine the policies' effective permissions. The policies are provided as strings. The simulation does not perform the API operations; it only checks the authorization to determine if the simulated policies allow or deny the operations. You can simulate resources that don't exist in your account. If you want to simulate existing policies that are attached to an IAM user, group, or role, use <a>SimulatePrincipalPolicy</a> instead. Context keys are variables that are maintained by Amazon Web Services and its services and which provide details about the context of an API query request. You can use the <code>Condition</code> element of an IAM policy to evaluate context keys. To get the list of context keys that the policies require for correct simulation, use <a>GetContextKeysForCustomPolicy</a>. If the output is long, you can use <code>MaxItems</code> and <code>Marker</code> parameters to paginate the results. For more information about using the policy simulator, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_testing-policies.html">Testing IAM policies with the IAM policy simulator </a>in the <i>IAM User Guide</i>.

        :param self:
        :param Marker:  Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the <code>Marker</code> element in the response that you received to indicate where the next call should start.<br/>MaxItems:  Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the <code>IsTruncated</code> response element is <code>true</code>. If you do not include this parameter, the number of items defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the <code>IsTruncated</code> response element returns <code>true</code>, and <code>Marker</code> contains a value to include in the subsequent call that tells the service where to continue from.<br/>ResourceHandlingOption:  Specifies the type of simulation to run. Different API operations that support resource-based policies require different combinations of resources. By specifying the type of simulation to run, you enable the policy simulator to enforce the presence of the required resources to ensure reliable simulation results. If your simulation does not match one of the following scenarios, then you can omit this parameter. The following list shows each of the supported scenario values and the resources that you must define to run the simulation. Each of the EC2 scenarios requires that you specify instance, image, and security-group resources. If your scenario includes an EBS volume, then you must specify that volume as a resource. If the EC2 scenario includes VPC, then you must supply the network-interface resource. If it includes an IP subnet, then you must specify the subnet resource. For more information on the EC2 scenario options, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-supported-platforms.html">Supported platforms</a> in the <i>Amazon EC2 User Guide</i>. <ul> <li>  <b>EC2-Classic-InstanceStore</b>  instance, image, security-group </li> <li>  <b>EC2-Classic-EBS</b>  instance, image, security-group, volume </li> <li>  <b>EC2-VPC-InstanceStore</b>  instance, image, security-group, network-interface </li> <li>  <b>EC2-VPC-InstanceStore-Subnet</b>  instance, image, security-group, network-interface, subnet </li> <li>  <b>EC2-VPC-EBS</b>  instance, image, security-group, network-interface, volume </li> <li>  <b>EC2-VPC-EBS-Subnet</b>  instance, image, security-group, network-interface, subnet, volume </li> </ul><br/>ContextEntries:  A list of context keys and corresponding values for the simulation to use. Whenever a context key is evaluated in one of the simulated IAM permissions policies, the corresponding value is supplied.<br/>CallerArn:  The ARN of the IAM user that you want to use as the simulated caller of the API operations. <code>CallerArn</code> is required if you include a <code>ResourcePolicy</code> so that the policy's <code>Principal</code> element has a value to use in evaluating the policy. You can specify only the ARN of an IAM user. You cannot specify the ARN of an assumed role, federated user, or a service principal.<br/>ResourceOwner:  An ARN representing the account ID that specifies the owner of any simulated resource that does not identify its owner in the resource ARN. Examples of resource ARNs include an S3 bucket or object. If <code>ResourceOwner</code> is specified, it is also used as the account owner of any <code>ResourcePolicy</code> included in the simulation. If the <code>ResourceOwner</code> parameter is not specified, then the owner of the resources and the resource policy defaults to the account of the identity provided in <code>CallerArn</code>. This parameter is required only if you specify a resource-based policy and account that owns the resource is different from the account that owns the simulated calling user <code>CallerArn</code>. The ARN for an account uses the following syntax: <code>arn:aws:iam::<i>AWS-account-ID</i>:root</code>. For example, to represent the account with the 112233445566 ID, use the following ARN: <code>arn:aws:iam::112233445566-ID:root</code>. <br/>ResourcePolicy:  A resource-based policy to include in the simulation provided as a string. Each resource in the simulation is treated as if it had this policy attached. You can include only one resource-based policy in a simulation. The maximum length of the policy document that you can pass in this operation, including whitespace, is listed below. To view the maximum character counts of a managed policy with no whitespaces, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html#reference_iam-quotas-entity-length">IAM and STS character quotas</a>. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> used to validate this parameter is a string of characters consisting of the following: <ul> <li> Any printable ASCII character ranging from the space character (<code>\u0020</code>) through the end of the ASCII character range </li> <li> The printable characters in the Basic Latin and Latin-1 Supplement character set (through <code>\u00FF</code>) </li> <li> The special characters tab (<code>\u0009</code>), line feed (<code>\u000A</code>), and carriage return (<code>\u000D</code>) </li> </ul><br/>ResourceArns:  A list of ARNs of Amazon Web Services resources to include in the simulation. If this parameter is not provided, then the value defaults to <code>*</code> (all resources). Each API in the <code>ActionNames</code> parameter is evaluated for each resource in this list. The simulation determines the access result (allowed or denied) of each combination and reports it in the response. You can simulate resources that don't exist in your account. The simulation does not automatically retrieve policies for the specified resources. If you want to include a resource policy in the simulation, then you must include the policy as a string in the <code>ResourcePolicy</code> parameter. If you include a <code>ResourcePolicy</code>, then it must be applicable to all of the resources included in the simulation or you receive an invalid input error. For more information about ARNs, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs)</a> in the <i>Amazon Web Services General Reference</i>.<br/>ActionNames:  A list of names of API operations to evaluate in the simulation. Each operation is evaluated against each resource. Each operation must include the service identifier, such as <code>iam:CreateUser</code>. This operation does not support using wildcards (*) in an action name.<br/>PermissionsBoundaryPolicyInputList:  The IAM permissions boundary policy to simulate. The permissions boundary sets the maximum permissions that an IAM entity can have. You can input only one permissions boundary when you pass a policy to this operation. For more information about permissions boundaries, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html">Permissions boundaries for IAM entities</a> in the <i>IAM User Guide</i>. The policy input is specified as a string that contains the complete, valid JSON text of a permissions boundary policy. The maximum length of the policy document that you can pass in this operation, including whitespace, is listed below. To view the maximum character counts of a managed policy with no whitespaces, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html#reference_iam-quotas-entity-length">IAM and STS character quotas</a>. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> used to validate this parameter is a string of characters consisting of the following: <ul> <li> Any printable ASCII character ranging from the space character (<code>\u0020</code>) through the end of the ASCII character range </li> <li> The printable characters in the Basic Latin and Latin-1 Supplement character set (through <code>\u00FF</code>) </li> <li> The special characters tab (<code>\u0009</code>), line feed (<code>\u000A</code>), and carriage return (<code>\u000D</code>) </li> </ul><br/>PolicyInputList:  A list of policy documents to include in the simulation. Each document is specified as a string containing the complete, valid JSON text of an IAM policy. Do not include any resource-based policies in this parameter. Any resource-based policy must be submitted with the <code>ResourcePolicy</code> parameter. The policies cannot be "scope-down" policies, such as you could include in a call to <a href="https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetFederationToken.html">GetFederationToken</a> or one of the <a href="https://docs.aws.amazon.com/IAM/latest/APIReference/API_AssumeRole.html">AssumeRole</a> API operations. In other words, do not use policies designed to restrict what a user can do while using the temporary credentials. The maximum length of the policy document that you can pass in this operation, including whitespace, is listed below. To view the maximum character counts of a managed policy with no whitespaces, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html#reference_iam-quotas-entity-length">IAM and STS character quotas</a>. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> used to validate this parameter is a string of characters consisting of the following: <ul> <li> Any printable ASCII character ranging from the space character (<code>\u0020</code>) through the end of the ASCII character range </li> <li> The printable characters in the Basic Latin and Latin-1 Supplement character set (through <code>\u00FF</code>) </li> <li> The special characters tab (<code>\u0009</code>), line feed (<code>\u000A</code>), and carriage return (<code>\u000D</code>) </li> </ul><br/>
        :return: Marker:  When <code>IsTruncated</code> is <code>true</code>, this element is present and contains the value to use for the <code>Marker</code> parameter in a subsequent pagination request.<br/>IsTruncated:  A flag that indicates whether there are more items to return. If your results were truncated, you can make a subsequent pagination request using the <code>Marker</code> request parameter to retrieve more items. Note that IAM might return fewer than the <code>MaxItems</code> number of results even when there are more results available. We recommend that you check <code>IsTruncated</code> after every call to ensure that you receive all your results.<br/>EvaluationResults:  The results of the simulation.<br/>        """
        pass

    def simulate_principal_policy(self, ActionNames: List[ActionNameType], PolicySourceArn: str, PolicyInputList: List[policyDocumentType]=None, PermissionsBoundaryPolicyInputList: List[policyDocumentType]=None, ResourceArns: List[ResourceNameType]=None, ResourcePolicy: str=None, ResourceOwner: str=None, CallerArn: str=None, ContextEntries: List[ContextEntry]=None, ResourceHandlingOption: str=None, MaxItems: int=None, Marker: str=None) -> SimulatePolicyResponse:
        r"""Simulate how a set of IAM policies attached to an IAM entity works with a list of API operations and Amazon Web Services resources to determine the policies' effective permissions. The entity can be an IAM user, group, or role. If you specify a user, then the simulation also includes all of the policies that are attached to groups that the user belongs to. You can simulate resources that don't exist in your account. You can optionally include a list of one or more additional policies specified as strings to include in the simulation. If you want to simulate only policies specified as strings, use <a>SimulateCustomPolicy</a> instead. You can also optionally include one resource-based policy to be evaluated with each of the resources included in the simulation. The simulation does not perform the API operations; it only checks the authorization to determine if the simulated policies allow or deny the operations.  <b>Note:</b> This operation discloses information about the permissions granted to other users. If you do not want users to see other user's permissions, then consider allowing them to use <a>SimulateCustomPolicy</a> instead. Context keys are variables maintained by Amazon Web Services and its services that provide details about the context of an API query request. You can use the <code>Condition</code> element of an IAM policy to evaluate context keys. To get the list of context keys that the policies require for correct simulation, use <a>GetContextKeysForPrincipalPolicy</a>. If the output is long, you can use the <code>MaxItems</code> and <code>Marker</code> parameters to paginate the results. For more information about using the policy simulator, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_testing-policies.html">Testing IAM policies with the IAM policy simulator </a>in the <i>IAM User Guide</i>.

        :param self:
        :param Marker:  Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the <code>Marker</code> element in the response that you received to indicate where the next call should start.<br/>MaxItems:  Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the <code>IsTruncated</code> response element is <code>true</code>. If you do not include this parameter, the number of items defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the <code>IsTruncated</code> response element returns <code>true</code>, and <code>Marker</code> contains a value to include in the subsequent call that tells the service where to continue from.<br/>ResourceHandlingOption:  Specifies the type of simulation to run. Different API operations that support resource-based policies require different combinations of resources. By specifying the type of simulation to run, you enable the policy simulator to enforce the presence of the required resources to ensure reliable simulation results. If your simulation does not match one of the following scenarios, then you can omit this parameter. The following list shows each of the supported scenario values and the resources that you must define to run the simulation. Each of the EC2 scenarios requires that you specify instance, image, and security group resources. If your scenario includes an EBS volume, then you must specify that volume as a resource. If the EC2 scenario includes VPC, then you must supply the network interface resource. If it includes an IP subnet, then you must specify the subnet resource. For more information on the EC2 scenario options, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-supported-platforms.html">Supported platforms</a> in the <i>Amazon EC2 User Guide</i>. <ul> <li>  <b>EC2-Classic-InstanceStore</b>  instance, image, security group </li> <li>  <b>EC2-Classic-EBS</b>  instance, image, security group, volume </li> <li>  <b>EC2-VPC-InstanceStore</b>  instance, image, security group, network interface </li> <li>  <b>EC2-VPC-InstanceStore-Subnet</b>  instance, image, security group, network interface, subnet </li> <li>  <b>EC2-VPC-EBS</b>  instance, image, security group, network interface, volume </li> <li>  <b>EC2-VPC-EBS-Subnet</b>  instance, image, security group, network interface, subnet, volume </li> </ul><br/>ContextEntries:  A list of context keys and corresponding values for the simulation to use. Whenever a context key is evaluated in one of the simulated IAM permissions policies, the corresponding value is supplied.<br/>CallerArn:  The ARN of the IAM user that you want to specify as the simulated caller of the API operations. If you do not specify a <code>CallerArn</code>, it defaults to the ARN of the user that you specify in <code>PolicySourceArn</code>, if you specified a user. If you include both a <code>PolicySourceArn</code> (for example, <code>arn:aws:iam::123456789012:user/David</code>) and a <code>CallerArn</code> (for example, <code>arn:aws:iam::123456789012:user/Bob</code>), the result is that you simulate calling the API operations as Bob, as if Bob had David's policies. You can specify only the ARN of an IAM user. You cannot specify the ARN of an assumed role, federated user, or a service principal.  <code>CallerArn</code> is required if you include a <code>ResourcePolicy</code> and the <code>PolicySourceArn</code> is not the ARN for an IAM user. This is required so that the resource-based policy's <code>Principal</code> element has a value to use in evaluating the policy. For more information about ARNs, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs)</a> in the <i>Amazon Web Services General Reference</i>.<br/>ResourceOwner:  An account ID that specifies the owner of any simulated resource that does not identify its owner in the resource ARN. Examples of resource ARNs include an S3 bucket or object. If <code>ResourceOwner</code> is specified, it is also used as the account owner of any <code>ResourcePolicy</code> included in the simulation. If the <code>ResourceOwner</code> parameter is not specified, then the owner of the resources and the resource policy defaults to the account of the identity provided in <code>CallerArn</code>. This parameter is required only if you specify a resource-based policy and account that owns the resource is different from the account that owns the simulated calling user <code>CallerArn</code>.<br/>ResourcePolicy:  A resource-based policy to include in the simulation provided as a string. Each resource in the simulation is treated as if it had this policy attached. You can include only one resource-based policy in a simulation. The maximum length of the policy document that you can pass in this operation, including whitespace, is listed below. To view the maximum character counts of a managed policy with no whitespaces, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html#reference_iam-quotas-entity-length">IAM and STS character quotas</a>. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> used to validate this parameter is a string of characters consisting of the following: <ul> <li> Any printable ASCII character ranging from the space character (<code>\u0020</code>) through the end of the ASCII character range </li> <li> The printable characters in the Basic Latin and Latin-1 Supplement character set (through <code>\u00FF</code>) </li> <li> The special characters tab (<code>\u0009</code>), line feed (<code>\u000A</code>), and carriage return (<code>\u000D</code>) </li> </ul><br/>ResourceArns:  A list of ARNs of Amazon Web Services resources to include in the simulation. If this parameter is not provided, then the value defaults to <code>*</code> (all resources). Each API in the <code>ActionNames</code> parameter is evaluated for each resource in this list. The simulation determines the access result (allowed or denied) of each combination and reports it in the response. You can simulate resources that don't exist in your account. The simulation does not automatically retrieve policies for the specified resources. If you want to include a resource policy in the simulation, then you must include the policy as a string in the <code>ResourcePolicy</code> parameter. For more information about ARNs, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs)</a> in the <i>Amazon Web Services General Reference</i>.<br/>ActionNames:  A list of names of API operations to evaluate in the simulation. Each operation is evaluated for each resource. Each operation must include the service identifier, such as <code>iam:CreateUser</code>.<br/>PermissionsBoundaryPolicyInputList:  The IAM permissions boundary policy to simulate. The permissions boundary sets the maximum permissions that the entity can have. You can input only one permissions boundary when you pass a policy to this operation. An IAM entity can only have one permissions boundary in effect at a time. For example, if a permissions boundary is attached to an entity and you pass in a different permissions boundary policy using this parameter, then the new permissions boundary policy is used for the simulation. For more information about permissions boundaries, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html">Permissions boundaries for IAM entities</a> in the <i>IAM User Guide</i>. The policy input is specified as a string containing the complete, valid JSON text of a permissions boundary policy. The maximum length of the policy document that you can pass in this operation, including whitespace, is listed below. To view the maximum character counts of a managed policy with no whitespaces, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html#reference_iam-quotas-entity-length">IAM and STS character quotas</a>. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> used to validate this parameter is a string of characters consisting of the following: <ul> <li> Any printable ASCII character ranging from the space character (<code>\u0020</code>) through the end of the ASCII character range </li> <li> The printable characters in the Basic Latin and Latin-1 Supplement character set (through <code>\u00FF</code>) </li> <li> The special characters tab (<code>\u0009</code>), line feed (<code>\u000A</code>), and carriage return (<code>\u000D</code>) </li> </ul><br/>PolicyInputList:  An optional list of additional policy documents to include in the simulation. Each document is specified as a string containing the complete, valid JSON text of an IAM policy. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> used to validate this parameter is a string of characters consisting of the following: <ul> <li> Any printable ASCII character ranging from the space character (<code>\u0020</code>) through the end of the ASCII character range </li> <li> The printable characters in the Basic Latin and Latin-1 Supplement character set (through <code>\u00FF</code>) </li> <li> The special characters tab (<code>\u0009</code>), line feed (<code>\u000A</code>), and carriage return (<code>\u000D</code>) </li> </ul><br/>PolicySourceArn:  The Amazon Resource Name (ARN) of a user, group, or role whose policies you want to include in the simulation. If you specify a user, group, or role, the simulation includes all policies that are associated with that entity. If you specify a user, the simulation also includes all policies that are attached to any groups the user belongs to. The maximum length of the policy document that you can pass in this operation, including whitespace, is listed below. To view the maximum character counts of a managed policy with no whitespaces, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html#reference_iam-quotas-entity-length">IAM and STS character quotas</a>. For more information about ARNs, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs)</a> in the <i>Amazon Web Services General Reference</i>.<br/>
        :return: Marker:  When <code>IsTruncated</code> is <code>true</code>, this element is present and contains the value to use for the <code>Marker</code> parameter in a subsequent pagination request.<br/>IsTruncated:  A flag that indicates whether there are more items to return. If your results were truncated, you can make a subsequent pagination request using the <code>Marker</code> request parameter to retrieve more items. Note that IAM might return fewer than the <code>MaxItems</code> number of results even when there are more results available. We recommend that you check <code>IsTruncated</code> after every call to ensure that you receive all your results.<br/>EvaluationResults:  The results of the simulation.<br/>        """
        pass

    def tag_instance_profile(self, Tags: List[Tag], InstanceProfileName: str):
        r"""Adds one or more tags to an IAM instance profile. If a tag with the same key name already exists, then that tag is overwritten with the new value. Each tag consists of a key name and an associated value. By assigning tags to your resources, you can do the following: <ul> <li>  <b>Administrative grouping and discovery</b> - Attach tags to resources to aid in organization and search. For example, you could search for all resources with the key name <i>Project</i> and the value <i>MyImportantProject</i>. Or search for all resources with the key name <i>Cost Center</i> and the value <i>41200</i>.  </li> <li>  <b>Access control</b> - Include tags in IAM user-based and resource-based policies. You can use tags to restrict access to only an IAM instance profile that has a specified tag attached. For examples of policies that show how to use tags to control access, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html">Control access using IAM tags</a> in the <i>IAM User Guide</i>. </li> </ul> <note> <ul> <li> If any one of the tags is invalid or if you exceed the allowed maximum number of tags, then the entire request fails and the resource is not created. For more information about tagging, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html">Tagging IAM resources</a> in the <i>IAM User Guide</i>. </li> <li> Amazon Web Services always interprets the tag <code>Value</code> as a single string. If you need to store an array, you can store comma-separated values in the string. However, you must interpret the value in your code. </li> </ul> </note>

        :param self:
        :param Tags:  The list of tags that you want to attach to the IAM instance profile. Each tag consists of a key name and an associated value.<br/>InstanceProfileName:  The name of the IAM instance profile to which you want to add tags. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return:         """
        pass

    def tag_mfa_device(self, Tags: List[Tag], SerialNumber: str):
        r"""Adds one or more tags to an IAM virtual multi-factor authentication (MFA) device. If a tag with the same key name already exists, then that tag is overwritten with the new value. A tag consists of a key name and an associated value. By assigning tags to your resources, you can do the following: <ul> <li>  <b>Administrative grouping and discovery</b> - Attach tags to resources to aid in organization and search. For example, you could search for all resources with the key name <i>Project</i> and the value <i>MyImportantProject</i>. Or search for all resources with the key name <i>Cost Center</i> and the value <i>41200</i>.  </li> <li>  <b>Access control</b> - Include tags in IAM user-based and resource-based policies. You can use tags to restrict access to only an IAM virtual MFA device that has a specified tag attached. For examples of policies that show how to use tags to control access, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html">Control access using IAM tags</a> in the <i>IAM User Guide</i>. </li> </ul> <note> <ul> <li> If any one of the tags is invalid or if you exceed the allowed maximum number of tags, then the entire request fails and the resource is not created. For more information about tagging, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html">Tagging IAM resources</a> in the <i>IAM User Guide</i>. </li> <li> Amazon Web Services always interprets the tag <code>Value</code> as a single string. If you need to store an array, you can store comma-separated values in the string. However, you must interpret the value in your code. </li> </ul> </note>

        :param self:
        :param Tags:  The list of tags that you want to attach to the IAM virtual MFA device. Each tag consists of a key name and an associated value.<br/>SerialNumber:  The unique identifier for the IAM virtual MFA device to which you want to add tags. For virtual MFA devices, the serial number is the same as the ARN. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return:         """
        pass

    def tag_open_id_connect_provider(self, Tags: List[Tag], OpenIDConnectProviderArn: str):
        r"""Adds one or more tags to an OpenID Connect (OIDC)-compatible identity provider. For more information about these providers, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_oidc.html">About web identity federation</a>. If a tag with the same key name already exists, then that tag is overwritten with the new value. A tag consists of a key name and an associated value. By assigning tags to your resources, you can do the following: <ul> <li>  <b>Administrative grouping and discovery</b> - Attach tags to resources to aid in organization and search. For example, you could search for all resources with the key name <i>Project</i> and the value <i>MyImportantProject</i>. Or search for all resources with the key name <i>Cost Center</i> and the value <i>41200</i>.  </li> <li>  <b>Access control</b> - Include tags in IAM user-based and resource-based policies. You can use tags to restrict access to only an OIDC provider that has a specified tag attached. For examples of policies that show how to use tags to control access, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html">Control access using IAM tags</a> in the <i>IAM User Guide</i>. </li> </ul> <note> <ul> <li> If any one of the tags is invalid or if you exceed the allowed maximum number of tags, then the entire request fails and the resource is not created. For more information about tagging, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html">Tagging IAM resources</a> in the <i>IAM User Guide</i>. </li> <li> Amazon Web Services always interprets the tag <code>Value</code> as a single string. If you need to store an array, you can store comma-separated values in the string. However, you must interpret the value in your code. </li> </ul> </note>

        :param self:
        :param Tags:  The list of tags that you want to attach to the OIDC identity provider in IAM. Each tag consists of a key name and an associated value.<br/>OpenIDConnectProviderArn:  The ARN of the OIDC identity provider in IAM to which you want to add tags. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return:         """
        pass

    def tag_policy(self, Tags: List[Tag], PolicyArn: str):
        r"""Adds one or more tags to an IAM customer managed policy. If a tag with the same key name already exists, then that tag is overwritten with the new value. A tag consists of a key name and an associated value. By assigning tags to your resources, you can do the following: <ul> <li>  <b>Administrative grouping and discovery</b> - Attach tags to resources to aid in organization and search. For example, you could search for all resources with the key name <i>Project</i> and the value <i>MyImportantProject</i>. Or search for all resources with the key name <i>Cost Center</i> and the value <i>41200</i>.  </li> <li>  <b>Access control</b> - Include tags in IAM user-based and resource-based policies. You can use tags to restrict access to only an IAM customer managed policy that has a specified tag attached. For examples of policies that show how to use tags to control access, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html">Control access using IAM tags</a> in the <i>IAM User Guide</i>. </li> </ul> <note> <ul> <li> If any one of the tags is invalid or if you exceed the allowed maximum number of tags, then the entire request fails and the resource is not created. For more information about tagging, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html">Tagging IAM resources</a> in the <i>IAM User Guide</i>. </li> <li> Amazon Web Services always interprets the tag <code>Value</code> as a single string. If you need to store an array, you can store comma-separated values in the string. However, you must interpret the value in your code. </li> </ul> </note>

        :param self:
        :param Tags:  The list of tags that you want to attach to the IAM customer managed policy. Each tag consists of a key name and an associated value.<br/>PolicyArn:  The ARN of the IAM customer managed policy to which you want to add tags. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return:         """
        pass

    def tag_role(self, Tags: List[Tag], RoleName: str):
        r"""Adds one or more tags to an IAM role. The role can be a regular role or a service-linked role. If a tag with the same key name already exists, then that tag is overwritten with the new value. A tag consists of a key name and an associated value. By assigning tags to your resources, you can do the following: <ul> <li>  <b>Administrative grouping and discovery</b> - Attach tags to resources to aid in organization and search. For example, you could search for all resources with the key name <i>Project</i> and the value <i>MyImportantProject</i>. Or search for all resources with the key name <i>Cost Center</i> and the value <i>41200</i>.  </li> <li>  <b>Access control</b> - Include tags in IAM user-based and resource-based policies. You can use tags to restrict access to only an IAM role that has a specified tag attached. You can also restrict access to only those resources that have a certain tag attached. For examples of policies that show how to use tags to control access, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html">Control access using IAM tags</a> in the <i>IAM User Guide</i>. </li> <li>  <b>Cost allocation</b> - Use tags to help track which individuals and teams are using which Amazon Web Services resources. </li> </ul> <note> <ul> <li> If any one of the tags is invalid or if you exceed the allowed maximum number of tags, then the entire request fails and the resource is not created. For more information about tagging, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html">Tagging IAM resources</a> in the <i>IAM User Guide</i>. </li> <li> Amazon Web Services always interprets the tag <code>Value</code> as a single string. If you need to store an array, you can store comma-separated values in the string. However, you must interpret the value in your code. </li> </ul> </note> For more information about tagging, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html">Tagging IAM identities</a> in the <i>IAM User Guide</i>.

        :param self:
        :param Tags:  The list of tags that you want to attach to the IAM role. Each tag consists of a key name and an associated value.<br/>RoleName:  The name of the IAM role to which you want to add tags. This parameter accepts (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters that consist of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return:         """
        pass

    def tag_saml_provider(self, Tags: List[Tag], SAMLProviderArn: str):
        r"""Adds one or more tags to a Security Assertion Markup Language (SAML) identity provider. For more information about these providers, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_saml.html">About SAML 2.0-based federation </a>. If a tag with the same key name already exists, then that tag is overwritten with the new value. A tag consists of a key name and an associated value. By assigning tags to your resources, you can do the following: <ul> <li>  <b>Administrative grouping and discovery</b> - Attach tags to resources to aid in organization and search. For example, you could search for all resources with the key name <i>Project</i> and the value <i>MyImportantProject</i>. Or search for all resources with the key name <i>Cost Center</i> and the value <i>41200</i>.  </li> <li>  <b>Access control</b> - Include tags in IAM user-based and resource-based policies. You can use tags to restrict access to only a SAML identity provider that has a specified tag attached. For examples of policies that show how to use tags to control access, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html">Control access using IAM tags</a> in the <i>IAM User Guide</i>. </li> </ul> <note> <ul> <li> If any one of the tags is invalid or if you exceed the allowed maximum number of tags, then the entire request fails and the resource is not created. For more information about tagging, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html">Tagging IAM resources</a> in the <i>IAM User Guide</i>. </li> <li> Amazon Web Services always interprets the tag <code>Value</code> as a single string. If you need to store an array, you can store comma-separated values in the string. However, you must interpret the value in your code. </li> </ul> </note>

        :param self:
        :param Tags:  The list of tags that you want to attach to the SAML identity provider in IAM. Each tag consists of a key name and an associated value.<br/>SAMLProviderArn:  The ARN of the SAML identity provider in IAM to which you want to add tags. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return:         """
        pass

    def tag_server_certificate(self, Tags: List[Tag], ServerCertificateName: str):
        r"""Adds one or more tags to an IAM server certificate. If a tag with the same key name already exists, then that tag is overwritten with the new value. <note> For certificates in a Region supported by Certificate Manager (ACM), we recommend that you don't use IAM server certificates. Instead, use ACM to provision, manage, and deploy your server certificates. For more information about IAM server certificates, <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html">Working with server certificates</a> in the <i>IAM User Guide</i>. </note> A tag consists of a key name and an associated value. By assigning tags to your resources, you can do the following: <ul> <li>  <b>Administrative grouping and discovery</b> - Attach tags to resources to aid in organization and search. For example, you could search for all resources with the key name <i>Project</i> and the value <i>MyImportantProject</i>. Or search for all resources with the key name <i>Cost Center</i> and the value <i>41200</i>.  </li> <li>  <b>Access control</b> - Include tags in IAM user-based and resource-based policies. You can use tags to restrict access to only a server certificate that has a specified tag attached. For examples of policies that show how to use tags to control access, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html">Control access using IAM tags</a> in the <i>IAM User Guide</i>. </li> <li>  <b>Cost allocation</b> - Use tags to help track which individuals and teams are using which Amazon Web Services resources. </li> </ul> <note> <ul> <li> If any one of the tags is invalid or if you exceed the allowed maximum number of tags, then the entire request fails and the resource is not created. For more information about tagging, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html">Tagging IAM resources</a> in the <i>IAM User Guide</i>. </li> <li> Amazon Web Services always interprets the tag <code>Value</code> as a single string. If you need to store an array, you can store comma-separated values in the string. However, you must interpret the value in your code. </li> </ul> </note>

        :param self:
        :param Tags:  The list of tags that you want to attach to the IAM server certificate. Each tag consists of a key name and an associated value.<br/>ServerCertificateName:  The name of the IAM server certificate to which you want to add tags. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return:         """
        pass

    def tag_user(self, Tags: List[Tag], UserName: str):
        r"""Adds one or more tags to an IAM user. If a tag with the same key name already exists, then that tag is overwritten with the new value. A tag consists of a key name and an associated value. By assigning tags to your resources, you can do the following: <ul> <li>  <b>Administrative grouping and discovery</b> - Attach tags to resources to aid in organization and search. For example, you could search for all resources with the key name <i>Project</i> and the value <i>MyImportantProject</i>. Or search for all resources with the key name <i>Cost Center</i> and the value <i>41200</i>.  </li> <li>  <b>Access control</b> - Include tags in IAM user-based and resource-based policies. You can use tags to restrict access to only an IAM requesting user that has a specified tag attached. You can also restrict access to only those resources that have a certain tag attached. For examples of policies that show how to use tags to control access, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html">Control access using IAM tags</a> in the <i>IAM User Guide</i>. </li> <li>  <b>Cost allocation</b> - Use tags to help track which individuals and teams are using which Amazon Web Services resources. </li> </ul> <note> <ul> <li> If any one of the tags is invalid or if you exceed the allowed maximum number of tags, then the entire request fails and the resource is not created. For more information about tagging, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html">Tagging IAM resources</a> in the <i>IAM User Guide</i>. </li> <li> Amazon Web Services always interprets the tag <code>Value</code> as a single string. If you need to store an array, you can store comma-separated values in the string. However, you must interpret the value in your code. </li> </ul> </note> For more information about tagging, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html">Tagging IAM identities</a> in the <i>IAM User Guide</i>.

        :param self:
        :param Tags:  The list of tags that you want to attach to the IAM user. Each tag consists of a key name and an associated value.<br/>UserName:  The name of the IAM user to which you want to add tags. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return:         """
        pass

    def untag_instance_profile(self, TagKeys: List[tagKeyType], InstanceProfileName: str):
        r"""Removes the specified tags from the IAM instance profile. For more information about tagging, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html">Tagging IAM resources</a> in the <i>IAM User Guide</i>.

        :param self:
        :param TagKeys:  A list of key names as a simple array of strings. The tags with matching keys are removed from the specified instance profile.<br/>InstanceProfileName:  The name of the IAM instance profile from which you want to remove tags. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return:         """
        pass

    def untag_mfa_device(self, TagKeys: List[tagKeyType], SerialNumber: str):
        r"""Removes the specified tags from the IAM virtual multi-factor authentication (MFA) device. For more information about tagging, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html">Tagging IAM resources</a> in the <i>IAM User Guide</i>.

        :param self:
        :param TagKeys:  A list of key names as a simple array of strings. The tags with matching keys are removed from the specified instance profile.<br/>SerialNumber:  The unique identifier for the IAM virtual MFA device from which you want to remove tags. For virtual MFA devices, the serial number is the same as the ARN. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return:         """
        pass

    def untag_open_id_connect_provider(self, TagKeys: List[tagKeyType], OpenIDConnectProviderArn: str):
        r"""Removes the specified tags from the specified OpenID Connect (OIDC)-compatible identity provider in IAM. For more information about OIDC providers, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_oidc.html">About web identity federation</a>. For more information about tagging, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html">Tagging IAM resources</a> in the <i>IAM User Guide</i>.

        :param self:
        :param TagKeys:  A list of key names as a simple array of strings. The tags with matching keys are removed from the specified OIDC provider.<br/>OpenIDConnectProviderArn:  The ARN of the OIDC provider in IAM from which you want to remove tags. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return:         """
        pass

    def untag_policy(self, TagKeys: List[tagKeyType], PolicyArn: str):
        r"""Removes the specified tags from the customer managed policy. For more information about tagging, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html">Tagging IAM resources</a> in the <i>IAM User Guide</i>.

        :param self:
        :param TagKeys:  A list of key names as a simple array of strings. The tags with matching keys are removed from the specified policy.<br/>PolicyArn:  The ARN of the IAM customer managed policy from which you want to remove tags. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return:         """
        pass

    def untag_role(self, TagKeys: List[tagKeyType], RoleName: str):
        r"""Removes the specified tags from the role. For more information about tagging, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html">Tagging IAM resources</a> in the <i>IAM User Guide</i>.

        :param self:
        :param TagKeys:  A list of key names as a simple array of strings. The tags with matching keys are removed from the specified role.<br/>RoleName:  The name of the IAM role from which you want to remove tags. This parameter accepts (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters that consist of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return:         """
        pass

    def untag_saml_provider(self, TagKeys: List[tagKeyType], SAMLProviderArn: str):
        r"""Removes the specified tags from the specified Security Assertion Markup Language (SAML) identity provider in IAM. For more information about these providers, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_oidc.html">About web identity federation</a>. For more information about tagging, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html">Tagging IAM resources</a> in the <i>IAM User Guide</i>.

        :param self:
        :param TagKeys:  A list of key names as a simple array of strings. The tags with matching keys are removed from the specified SAML identity provider.<br/>SAMLProviderArn:  The ARN of the SAML identity provider in IAM from which you want to remove tags. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return:         """
        pass

    def untag_server_certificate(self, TagKeys: List[tagKeyType], ServerCertificateName: str):
        r"""Removes the specified tags from the IAM server certificate. For more information about tagging, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html">Tagging IAM resources</a> in the <i>IAM User Guide</i>. <note> For certificates in a Region supported by Certificate Manager (ACM), we recommend that you don't use IAM server certificates. Instead, use ACM to provision, manage, and deploy your server certificates. For more information about IAM server certificates, <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html">Working with server certificates</a> in the <i>IAM User Guide</i>. </note>

        :param self:
        :param TagKeys:  A list of key names as a simple array of strings. The tags with matching keys are removed from the specified IAM server certificate.<br/>ServerCertificateName:  The name of the IAM server certificate from which you want to remove tags. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return:         """
        pass

    def untag_user(self, TagKeys: List[tagKeyType], UserName: str):
        r"""Removes the specified tags from the user. For more information about tagging, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html">Tagging IAM resources</a> in the <i>IAM User Guide</i>.

        :param self:
        :param TagKeys:  A list of key names as a simple array of strings. The tags with matching keys are removed from the specified user.<br/>UserName:  The name of the IAM user from which you want to remove tags. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return:         """
        pass

    def update_access_key(self, Status: str, AccessKeyId: str, UserName: str=None):
        r"""Changes the status of the specified access key from Active to Inactive, or vice versa. This operation can be used to disable a user's key as part of a key rotation workflow. If the <code>UserName</code> is not specified, the user name is determined implicitly based on the Amazon Web Services access key ID used to sign the request. This operation works for access keys under the account. Consequently, you can use this operation to manage account root user credentials even if the account has no associated users. For information about rotating keys, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/ManagingCredentials.html">Managing keys and certificates</a> in the <i>IAM User Guide</i>.

        :param self:
        :param Status:   The status you want to assign to the secret access key. <code>Active</code> means that the key can be used for programmatic calls to Amazon Web Services, while <code>Inactive</code> means that the key cannot be used.<br/>AccessKeyId:  The access key ID of the secret access key you want to update. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters that can consist of any upper or lowercased letter or digit.<br/>UserName:  The name of the user whose key you want to update. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return:         """
        pass

    def update_account_password_policy(self, MinimumPasswordLength: int=None, RequireSymbols: booleanType=None, RequireNumbers: booleanType=None, RequireUppercaseCharacters: booleanType=None, RequireLowercaseCharacters: booleanType=None, AllowUsersToChangePassword: booleanType=None, MaxPasswordAge: int=None, PasswordReusePrevention: int=None, HardExpiry: booleanObjectType=None):
        r"""Updates the password policy settings for the account. <note> <ul> <li> This operation does not support partial updates. No parameters are required, but if you do not specify a parameter, that parameter's value reverts to its default value. See the <b>Request Parameters</b> section for each parameter's default value. Also note that some parameters do not allow the default parameter to be explicitly set. Instead, to invoke the default value, do not include that parameter when you invoke the operation. </li> </ul> </note>  For more information about using a password policy, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_ManagingPasswordPolicies.html">Managing an IAM password policy</a> in the <i>IAM User Guide</i>.

        :param self:
        :param HardExpiry:  Prevents IAM users from setting a new password after their password has expired. The IAM user cannot be accessed until an administrator resets the password. If you do not specify a value for this parameter, then the operation uses the default value of <code>false</code>. The result is that IAM users can change their passwords after they expire and continue to sign in as the user.<br/>PasswordReusePrevention:  Specifies the number of previous passwords that IAM users are prevented from reusing. If you do not specify a value for this parameter, then the operation uses the default value of <code>0</code>. The result is that IAM users are not prevented from reusing previous passwords.<br/>MaxPasswordAge:  The number of days that an IAM user password is valid. If you do not specify a value for this parameter, then the operation uses the default value of <code>0</code>. The result is that IAM user passwords never expire.<br/>AllowUsersToChangePassword:   Allows all IAM users in your account to use the Management Console to change their own passwords. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/HowToPwdIAMUser.html">Letting IAM users change their own passwords</a> in the <i>IAM User Guide</i>. If you do not specify a value for this parameter, then the operation uses the default value of <code>false</code>. The result is that IAM users in the account do not automatically have permissions to change their own password.<br/>RequireLowercaseCharacters:  Specifies whether IAM user passwords must contain at least one lowercase character from the ISO basic Latin alphabet (a to z). If you do not specify a value for this parameter, then the operation uses the default value of <code>false</code>. The result is that passwords do not require at least one lowercase character.<br/>RequireUppercaseCharacters:  Specifies whether IAM user passwords must contain at least one uppercase character from the ISO basic Latin alphabet (A to Z). If you do not specify a value for this parameter, then the operation uses the default value of <code>false</code>. The result is that passwords do not require at least one uppercase character.<br/>RequireNumbers:  Specifies whether IAM user passwords must contain at least one numeric character (0 to 9). If you do not specify a value for this parameter, then the operation uses the default value of <code>false</code>. The result is that passwords do not require at least one numeric character.<br/>RequireSymbols:  Specifies whether IAM user passwords must contain at least one of the following non-alphanumeric characters: ! @ # $ % ^ &amp; * ( ) _ + - = [ ] { } | ' If you do not specify a value for this parameter, then the operation uses the default value of <code>false</code>. The result is that passwords do not require at least one symbol character.<br/>MinimumPasswordLength:  The minimum number of characters allowed in an IAM user password. If you do not specify a value for this parameter, then the operation uses the default value of <code>6</code>.<br/>
        :return:         """
        pass

    def update_assume_role_policy(self, PolicyDocument: str, RoleName: str):
        r"""Updates the policy that grants an IAM entity permission to assume a role. This is typically referred to as the "role trust policy". For more information about roles, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-toplevel.html">Using roles to delegate permissions and federate identities</a>.

        :param self:
        :param PolicyDocument:  The policy that grants an entity permission to assume the role. You must provide policies in JSON format in IAM. However, for CloudFormation templates formatted in YAML, you can provide the policy in JSON or YAML format. CloudFormation always converts a YAML policy to JSON format before submitting it to IAM. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> used to validate this parameter is a string of characters consisting of the following: <ul> <li> Any printable ASCII character ranging from the space character (<code>\u0020</code>) through the end of the ASCII character range </li> <li> The printable characters in the Basic Latin and Latin-1 Supplement character set (through <code>\u00FF</code>) </li> <li> The special characters tab (<code>\u0009</code>), line feed (<code>\u000A</code>), and carriage return (<code>\u000D</code>) </li> </ul><br/>RoleName:  The name of the role to update with the new policy. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return:         """
        pass

    def update_group(self, GroupName: str, NewPath: str=None, NewGroupName: str=None):
        r"""Updates the name and/or the path of the specified IAM group. <important>  You should understand the implications of changing a group's path or name. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_WorkingWithGroupsAndUsers.html">Renaming users and groups</a> in the <i>IAM User Guide</i>. </important> <note> The person making the request (the principal), must have permission to change the role group with the old name and the new name. For example, to change the group named <code>Managers</code> to <code>MGRs</code>, the principal must have a policy that allows them to update both groups. If the principal has permission to update the <code>Managers</code> group, but not the <code>MGRs</code> group, then the update fails. For more information about permissions, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html">Access management</a>.  </note>

        :param self:
        :param NewGroupName:  New name for the IAM group. Only include this if changing the group's name. IAM user, group, role, and policy names must be unique within the account. Names are not distinguished by case. For example, you cannot create resources named both "MyResource" and "myresource".<br/>NewPath:  New path for the IAM group. Only include this if changing the group's path. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes. In addition, it can contain any ASCII character from the ! (<code>\u0021</code>) through the DEL character (<code>\u007F</code>), including most punctuation characters, digits, and upper and lowercased letters.<br/>GroupName:  Name of the IAM group to update. If you're changing the name of the group, this is the original name. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return:         """
        pass

    def update_login_profile(self, UserName: str, Password: str=None, PasswordResetRequired: booleanObjectType=None):
        r"""Changes the password for the specified IAM user. You can use the CLI, the Amazon Web Services API, or the <b>Users</b> page in the IAM console to change the password for any IAM user. Use <a>ChangePassword</a> to change your own password in the <b>My Security Credentials</b> page in the Management Console. For more information about modifying passwords, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_ManagingLogins.html">Managing passwords</a> in the <i>IAM User Guide</i>.

        :param self:
        :param PasswordResetRequired:  Allows this new password to be used only once by requiring the specified IAM user to set a new password on next sign-in.<br/>Password:  The new password for the specified IAM user. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> used to validate this parameter is a string of characters consisting of the following: <ul> <li> Any printable ASCII character ranging from the space character (<code>\u0020</code>) through the end of the ASCII character range </li> <li> The printable characters in the Basic Latin and Latin-1 Supplement character set (through <code>\u00FF</code>) </li> <li> The special characters tab (<code>\u0009</code>), line feed (<code>\u000A</code>), and carriage return (<code>\u000D</code>) </li> </ul> However, the format can be further restricted by the account administrator by setting a password policy on the account. For more information, see <a>UpdateAccountPasswordPolicy</a>.<br/>UserName:  The name of the user whose password you want to update. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return:         """
        pass

    def update_open_id_connect_provider_thumbprint(self, ThumbprintList: List[thumbprintType], OpenIDConnectProviderArn: str):
        r"""Replaces the existing list of server certificate thumbprints associated with an OpenID Connect (OIDC) provider resource object with a new list of thumbprints. The list that you pass with this operation completely replaces the existing list of thumbprints. (The lists are not merged.) Typically, you need to update a thumbprint only when the identity provider's certificate changes, which occurs rarely. However, if the provider's certificate <i>does</i> change, any attempt to assume an IAM role that specifies the OIDC provider as a principal fails until the certificate thumbprint is updated. <note> Trust for the OIDC provider is derived from the provider's certificate and is validated by the thumbprint. Therefore, it is best to limit access to the <code>UpdateOpenIDConnectProviderThumbprint</code> operation to highly privileged users. </note>

        :param self:
        :param ThumbprintList:  A list of certificate thumbprints that are associated with the specified IAM OpenID Connect provider. For more information, see <a>CreateOpenIDConnectProvider</a>. <br/>OpenIDConnectProviderArn:  The Amazon Resource Name (ARN) of the IAM OIDC provider resource object for which you want to update the thumbprint. You can get a list of OIDC provider ARNs by using the <a>ListOpenIDConnectProviders</a> operation. For more information about ARNs, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs)</a> in the <i>Amazon Web Services General Reference</i>.<br/>
        :return:         """
        pass

    def update_role(self, RoleName: str, Description: str=None, MaxSessionDuration: int=None) -> UpdateRoleResponse:
        r"""Updates the description or maximum session duration setting of a role.

        :param self:
        :param MaxSessionDuration:  The maximum session duration (in seconds) that you want to set for the specified role. If you do not specify a value for this setting, the default maximum of one hour is applied. This setting can have a value from 1 hour to 12 hours. Anyone who assumes the role from the CLI or API can use the <code>DurationSeconds</code> API parameter or the <code>duration-seconds</code> CLI parameter to request a longer session. The <code>MaxSessionDuration</code> setting determines the maximum duration that can be requested using the <code>DurationSeconds</code> parameter. If users don't specify a value for the <code>DurationSeconds</code> parameter, their security credentials are valid for one hour by default. This applies when you use the <code>AssumeRole*</code> API operations or the <code>assume-role*</code> CLI operations but does not apply when you use those operations to create a console URL. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html">Using IAM roles</a> in the <i>IAM User Guide</i>.<br/>Description:  The new description that you want to apply to the specified role.<br/>RoleName:  The name of the role that you want to modify.<br/>
        :return:         """
        pass

    def update_role_description(self, Description: str, RoleName: str) -> UpdateRoleDescriptionResponse:
        r"""Use <a>UpdateRole</a> instead. Modifies only the description of a role. This operation performs the same function as the <code>Description</code> parameter in the <code>UpdateRole</code> operation.

        :param self:
        :param Description:  The new description that you want to apply to the specified role.<br/>RoleName:  The name of the role that you want to modify.<br/>
        :return: Role:  A structure that contains details about the modified role.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleLastUsed</i> Contains information about the last time that an IAM role was used. This includes the date and time and the Region in which the role was last used. Activity is only reported for the trailing 400 days. This period can be shorter if your Region began supporting these features within the last year. The role might have been used more than 400 days ago. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor.html#access-advisor_tracking-period">Regions where data is tracked</a> in the <i>IAM User Guide</i>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RoleLastUsed</b>: Contains information about the last time that an IAM role was used. This includes the date and time and the Region in which the role was last used. Activity is only reported for the trailing 400 days. This period can be shorter if your Region began supporting these features within the last year. The role might have been used more than 400 days ago. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor.html#access-advisor_tracking-period">Regions where data is tracked</a> in the <i>IAM User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> A list of tags that are attached to the role. For more information about tagging, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html">Tagging IAM resources</a> in the <i>IAM User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PermissionsBoundary</i> The ARN of the policy used to set the permissions boundary for the role. For more information about permissions boundaries, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html">Permissions boundaries for IAM identities </a> in the <i>IAM User Guide</i>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PermissionsBoundary</b>: The ARN of the policy used to set the permissions boundary for the role. For more information about permissions boundaries, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html">Permissions boundaries for IAM identities </a> in the <i>IAM User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxSessionDuration</i> The maximum session duration (in seconds) for the specified role. Anyone who uses the CLI, or API to assume the role can specify the duration using the optional <code>DurationSeconds</code> API parameter or <code>duration-seconds</code> CLI parameter.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A description of the role that you provide.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssumeRolePolicyDocument</i> The policy that grants an entity permission to assume the role.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreateDate</i> The date and time, in <a href="http://www.iso.org/iso/iso8601">ISO 8601 date-time format</a>, when the role was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i>  The Amazon Resource Name (ARN) specifying the role. For more information about ARNs and how to use them in policies, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html">IAM identifiers</a> in the <i>IAM User Guide</i> guide. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleId</i>  The stable and unique string identifying the role. For more information about IDs, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html">IAM identifiers</a> in the <i>IAM User Guide</i>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleName</i> The friendly name that identifies the role.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Path</i>  The path to the role. For more information about paths, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html">IAM identifiers</a> in the <i>IAM User Guide</i>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PermissionsBoundaryArn</i>  The ARN of the policy used to set the permissions boundary for the user or role.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PermissionsBoundaryType</i>  The permissions boundary usage type that indicates what type of IAM resource is used as the permissions boundary for an entity. This data type can only have a value of <code>Policy</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Region</i> The name of the Region in which the role was last used.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUsedDate</i> The date and time, in <a href="http://www.iso.org/iso/iso8601">ISO 8601 date-time format</a> that the role was last used. This field is null if the role has not been used within the IAM tracking period. For more information about the tracking period, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor.html#access-advisor_tracking-period">Regions where data is tracked</a> in the <i>IAM User Guide</i>. <br/>        """
        pass

    def update_saml_provider(self, SAMLProviderArn: str, SAMLMetadataDocument: str) -> UpdateSAMLProviderResponse:
        r"""Updates the metadata document for an existing SAML provider resource object. <note> This operation requires <a href="https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html">Signature Version 4</a>. </note>

        :param self:
        :param SAMLProviderArn:  The Amazon Resource Name (ARN) of the SAML provider to update. For more information about ARNs, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs)</a> in the <i>Amazon Web Services General Reference</i>.<br/>SAMLMetadataDocument:  An XML document generated by an identity provider (IdP) that supports SAML 2.0. The document includes the issuer's name, expiration information, and keys that can be used to validate the SAML authentication response (assertions) that are received from the IdP. You must generate the metadata document using the identity management software that is used as your organization's IdP.<br/>
        :return: SAMLProviderArn:  The Amazon Resource Name (ARN) of the SAML provider that was updated.<br/>        """
        pass

    def update_ssh_public_key(self, Status: str, SSHPublicKeyId: str, UserName: str):
        r"""Sets the status of an IAM user's SSH public key to active or inactive. SSH public keys that are inactive cannot be used for authentication. This operation can be used to disable a user's SSH public key as part of a key rotation work flow. The SSH public key affected by this operation is used only for authenticating the associated IAM user to an CodeCommit repository. For more information about using SSH keys to authenticate to an CodeCommit repository, see <a href="https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-credentials-ssh.html">Set up CodeCommit for SSH connections</a> in the <i>CodeCommit User Guide</i>.

        :param self:
        :param Status:  The status to assign to the SSH public key. <code>Active</code> means that the key can be used for authentication with an CodeCommit repository. <code>Inactive</code> means that the key cannot be used.<br/>SSHPublicKeyId:  The unique identifier for the SSH public key. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters that can consist of any upper or lowercased letter or digit.<br/>UserName:  The name of the IAM user associated with the SSH public key. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return:         """
        pass

    def update_server_certificate(self, ServerCertificateName: str, NewPath: str=None, NewServerCertificateName: str=None):
        r"""Updates the name and/or the path of the specified server certificate stored in IAM. For more information about working with server certificates, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html">Working with server certificates</a> in the <i>IAM User Guide</i>. This topic also includes a list of Amazon Web Services services that can use the server certificates that you manage with IAM. <important> You should understand the implications of changing a server certificate's path or name. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs_manage.html#RenamingServerCerts">Renaming a server certificate</a> in the <i>IAM User Guide</i>. </important> <note> The person making the request (the principal), must have permission to change the server certificate with the old name and the new name. For example, to change the certificate named <code>ProductionCert</code> to <code>ProdCert</code>, the principal must have a policy that allows them to update both certificates. If the principal has permission to update the <code>ProductionCert</code> group, but not the <code>ProdCert</code> certificate, then the update fails. For more information about permissions, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html">Access management</a> in the <i>IAM User Guide</i>. </note>

        :param self:
        :param NewServerCertificateName:  The new name for the server certificate. Include this only if you are updating the server certificate's name. The name of the certificate cannot contain any spaces. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>NewPath:  The new path for the server certificate. Include this only if you are updating the server certificate's path. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes. In addition, it can contain any ASCII character from the ! (<code>\u0021</code>) through the DEL character (<code>\u007F</code>), including most punctuation characters, digits, and upper and lowercased letters.<br/>ServerCertificateName:  The name of the server certificate that you want to update. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return:         """
        pass

    def update_service_specific_credential(self, Status: str, ServiceSpecificCredentialId: str, UserName: str=None):
        r"""Sets the status of a service-specific credential to <code>Active</code> or <code>Inactive</code>. Service-specific credentials that are inactive cannot be used for authentication to the service. This operation can be used to disable a user's service-specific credential as part of a credential rotation work flow.

        :param self:
        :param Status:  The status to be assigned to the service-specific credential.<br/>ServiceSpecificCredentialId:  The unique identifier of the service-specific credential. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters that can consist of any upper or lowercased letter or digit.<br/>UserName:  The name of the IAM user associated with the service-specific credential. If you do not specify this value, then the operation assumes the user whose credentials are used to call the operation. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return:         """
        pass

    def update_signing_certificate(self, Status: str, CertificateId: str, UserName: str=None):
        r"""Changes the status of the specified user signing certificate from active to disabled, or vice versa. This operation can be used to disable an IAM user's signing certificate as part of a certificate rotation work flow. If the <code>UserName</code> field is not specified, the user name is determined implicitly based on the Amazon Web Services access key ID used to sign the request. This operation works for access keys under the account. Consequently, you can use this operation to manage account root user credentials even if the account has no associated users.

        :param self:
        :param Status:   The status you want to assign to the certificate. <code>Active</code> means that the certificate can be used for programmatic calls to Amazon Web Services <code>Inactive</code> means that the certificate cannot be used.<br/>CertificateId:  The ID of the signing certificate you want to update. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters that can consist of any upper or lowercased letter or digit.<br/>UserName:  The name of the IAM user the signing certificate belongs to. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return:         """
        pass

    def update_user(self, UserName: str, NewPath: str=None, NewUserName: str=None):
        r"""Updates the name and/or the path of the specified IAM user. <important>  You should understand the implications of changing an IAM user's path or name. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_manage.html#id_users_renaming">Renaming an IAM user</a> and <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups_manage_rename.html">Renaming an IAM group</a> in the <i>IAM User Guide</i>. </important> <note>  To change a user name, the requester must have appropriate permissions on both the source object and the target object. For example, to change Bob to Robert, the entity making the request must have permission on Bob and Robert, or must have permission on all (*). For more information about permissions, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/PermissionsAndPolicies.html">Permissions and policies</a>.  </note>

        :param self:
        :param NewUserName:  New name for the user. Include this parameter only if you're changing the user's name. IAM user, group, role, and policy names must be unique within the account. Names are not distinguished by case. For example, you cannot create resources named both "MyResource" and "myresource".<br/>NewPath:  New path for the IAM user. Include this parameter only if you're changing the user's path. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes. In addition, it can contain any ASCII character from the ! (<code>\u0021</code>) through the DEL character (<code>\u007F</code>), including most punctuation characters, digits, and upper and lowercased letters.<br/>UserName:  Name of the user to update. If you're changing the name of the user, this is the original user name. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return:         """
        pass

    def upload_ssh_public_key(self, SSHPublicKeyBody: str, UserName: str) -> UploadSSHPublicKeyResponse:
        r"""Uploads an SSH public key and associates it with the specified IAM user. The SSH public key uploaded by this operation can be used only for authenticating the associated IAM user to an CodeCommit repository. For more information about using SSH keys to authenticate to an CodeCommit repository, see <a href="https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-credentials-ssh.html">Set up CodeCommit for SSH connections</a> in the <i>CodeCommit User Guide</i>.

        :param self:
        :param SSHPublicKeyBody:  The SSH public key. The public key must be encoded in ssh-rsa format or PEM format. The minimum bit-length of the public key is 2048 bits. For example, you can generate a 2048-bit key, and the resulting PEM file is 1679 bytes long. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> used to validate this parameter is a string of characters consisting of the following: <ul> <li> Any printable ASCII character ranging from the space character (<code>\u0020</code>) through the end of the ASCII character range </li> <li> The printable characters in the Basic Latin and Latin-1 Supplement character set (through <code>\u00FF</code>) </li> <li> The special characters tab (<code>\u0009</code>), line feed (<code>\u000A</code>), and carriage return (<code>\u000D</code>) </li> </ul><br/>UserName:  The name of the IAM user to associate the SSH public key with. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return: SSHPublicKey:  Contains information about the SSH public key.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UploadDate</i> The date and time, in <a href="http://www.iso.org/iso/iso8601">ISO 8601 date-time format</a>, when the SSH public key was uploaded.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the SSH public key. <code>Active</code> means that the key can be used for authentication with an CodeCommit repository. <code>Inactive</code> means that the key cannot be used.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SSHPublicKeyBody</i> The SSH public key.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Fingerprint</i> The MD5 message digest of the SSH public key.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SSHPublicKeyId</i> The unique identifier for the SSH public key.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserName</i> The name of the IAM user associated with the SSH public key.<br/>        """
        pass

    def upload_server_certificate(self, PrivateKey: str, CertificateBody: str, ServerCertificateName: str, Path: str=None, CertificateChain: str=None, Tags: List[Tag]=None) -> UploadServerCertificateResponse:
        r"""Uploads a server certificate entity for the account. The server certificate entity includes a public key certificate, a private key, and an optional certificate chain, which should all be PEM-encoded. We recommend that you use <a href="https://docs.aws.amazon.com/acm/">Certificate Manager</a> to provision, manage, and deploy your server certificates. With ACM you can request a certificate, deploy it to Amazon Web Services resources, and let ACM handle certificate renewals for you. Certificates provided by ACM are free. For more information about using ACM, see the <a href="https://docs.aws.amazon.com/acm/latest/userguide/">Certificate Manager User Guide</a>. For more information about working with server certificates, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html">Working with server certificates</a> in the <i>IAM User Guide</i>. This topic includes a list of Amazon Web Services services that can use the server certificates that you manage with IAM. For information about the number of server certificates you can upload, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html">IAM and STS quotas</a> in the <i>IAM User Guide</i>. <note> Because the body of the public key certificate, private key, and the certificate chain can be large, you should use POST rather than GET when calling <code>UploadServerCertificate</code>. For information about setting up signatures and authorization through the API, see <a href="https://docs.aws.amazon.com/general/latest/gr/signing_aws_api_requests.html">Signing Amazon Web Services API requests</a> in the <i>Amazon Web Services General Reference</i>. For general information about using the Query API with IAM, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/programming.html">Calling the API by making HTTP query requests</a> in the <i>IAM User Guide</i>. </note>

        :param self:
        :param Tags:  A list of tags that you want to attach to the new IAM server certificate resource. Each tag consists of a key name and an associated value. For more information about tagging, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html">Tagging IAM resources</a> in the <i>IAM User Guide</i>. <note> If any one of the tags is invalid or if you exceed the allowed maximum number of tags, then the entire request fails and the resource is not created. </note><br/>CertificateChain:  The contents of the certificate chain. This is typically a concatenation of the PEM-encoded public key certificates of the chain. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> used to validate this parameter is a string of characters consisting of the following: <ul> <li> Any printable ASCII character ranging from the space character (<code>\u0020</code>) through the end of the ASCII character range </li> <li> The printable characters in the Basic Latin and Latin-1 Supplement character set (through <code>\u00FF</code>) </li> <li> The special characters tab (<code>\u0009</code>), line feed (<code>\u000A</code>), and carriage return (<code>\u000D</code>) </li> </ul><br/>PrivateKey:  The contents of the private key in PEM-encoded format. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> used to validate this parameter is a string of characters consisting of the following: <ul> <li> Any printable ASCII character ranging from the space character (<code>\u0020</code>) through the end of the ASCII character range </li> <li> The printable characters in the Basic Latin and Latin-1 Supplement character set (through <code>\u00FF</code>) </li> <li> The special characters tab (<code>\u0009</code>), line feed (<code>\u000A</code>), and carriage return (<code>\u000D</code>) </li> </ul><br/>CertificateBody:  The contents of the public key certificate in PEM-encoded format. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> used to validate this parameter is a string of characters consisting of the following: <ul> <li> Any printable ASCII character ranging from the space character (<code>\u0020</code>) through the end of the ASCII character range </li> <li> The printable characters in the Basic Latin and Latin-1 Supplement character set (through <code>\u00FF</code>) </li> <li> The special characters tab (<code>\u0009</code>), line feed (<code>\u000A</code>), and carriage return (<code>\u000D</code>) </li> </ul><br/>ServerCertificateName:  The name for the server certificate. Do not include the path in this value. The name of the certificate cannot contain any spaces. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>Path:  The path for the server certificate. For more information about paths, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html">IAM identifiers</a> in the <i>IAM User Guide</i>. This parameter is optional. If it is not included, it defaults to a slash (/). This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes. In addition, it can contain any ASCII character from the ! (<code>\u0021</code>) through the DEL character (<code>\u007F</code>), including most punctuation characters, digits, and upper and lowercased letters. <note>  If you are uploading a server certificate specifically for use with Amazon CloudFront distributions, you must specify a path using the <code>path</code> parameter. The path must begin with <code>/cloudfront</code> and must include a trailing slash (for example, <code>/cloudfront/test/</code>). </note><br/>
        :return: Tags:  A list of tags that are attached to the new IAM server certificate. The returned list of tags is sorted by tag key. For more information about tagging, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html">Tagging IAM resources</a> in the <i>IAM User Guide</i>.<br/>ServerCertificateMetadata:  The meta information of the uploaded server certificate without its certificate body, certificate chain, and private key.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Expiration</i> The date on which the certificate is set to expire.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UploadDate</i> The date when the server certificate was uploaded.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i>  The Amazon Resource Name (ARN) specifying the server certificate. For more information about ARNs and how to use them in policies, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html">IAM identifiers</a> in the <i>IAM User Guide</i>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerCertificateId</i>  The stable and unique string identifying the server certificate. For more information about IDs, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html">IAM identifiers</a> in the <i>IAM User Guide</i>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerCertificateName</i> The name that identifies the server certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Path</i>  The path to the server certificate. For more information about paths, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html">IAM identifiers</a> in the <i>IAM User Guide</i>. <br/>        """
        pass

    def upload_signing_certificate(self, CertificateBody: str, UserName: str=None) -> UploadSigningCertificateResponse:
        r"""Uploads an X.509 signing certificate and associates it with the specified IAM user. Some Amazon Web Services services require you to use certificates to validate requests that are signed with a corresponding private key. When you upload the certificate, its default status is <code>Active</code>. For information about when you would use an X.509 signing certificate, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html">Managing server certificates in IAM</a> in the <i>IAM User Guide</i>. If the <code>UserName</code> is not specified, the IAM user name is determined implicitly based on the Amazon Web Services access key ID used to sign the request. This operation works for access keys under the account. Consequently, you can use this operation to manage account root user credentials even if the account has no associated users. <note> Because the body of an X.509 certificate can be large, you should use POST rather than GET when calling <code>UploadSigningCertificate</code>. For information about setting up signatures and authorization through the API, see <a href="https://docs.aws.amazon.com/general/latest/gr/signing_aws_api_requests.html">Signing Amazon Web Services API requests</a> in the <i>Amazon Web Services General Reference</i>. For general information about using the Query API with IAM, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/IAM_UsingQueryAPI.html">Making query requests</a> in the <i>IAM User Guide</i>. </note>

        :param self:
        :param CertificateBody:  The contents of the signing certificate. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> used to validate this parameter is a string of characters consisting of the following: <ul> <li> Any printable ASCII character ranging from the space character (<code>\u0020</code>) through the end of the ASCII character range </li> <li> The printable characters in the Basic Latin and Latin-1 Supplement character set (through <code>\u00FF</code>) </li> <li> The special characters tab (<code>\u0009</code>), line feed (<code>\u000A</code>), and carriage return (<code>\u000D</code>) </li> </ul><br/>UserName:  The name of the user the signing certificate is for. This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-<br/>
        :return: Certificate:  Information about the certificate.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UploadDate</i> The date when the signing certificate was uploaded.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the signing certificate. <code>Active</code> means that the key is valid for API calls, while <code>Inactive</code> means it is not.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CertificateBody</i> The contents of the signing certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CertificateId</i> The ID for the signing certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserName</i> The name of the user the signing certificate is associated with.<br/>        """
        pass



    class IamResource:
        
        class AccessKey:
            r"""Creates a AccessKey resource.::

  access_key = iam.AccessKey('user_name','id')

:type user_name: string
:param user_name: The AccessKey's user_name identifier. This **must** be set.
:type id: string
:param id: The AccessKey's id identifier. This **must** be set.

:rtype: :py:class:`IAM.AccessKey`
:returns: A AccessKey resource"""

            def __init__(self, user_name, id):
                pass
            
            class dateType(object):
                pass
        
            user_name: str=None
            access_key_id: str=None
            status: str=None
            create_date: dateType=None
            
            def activate(self, **kwargs):
                # type: (object) -> dict
                return {}

            def deactivate(self, **kwargs):
                # type: (object) -> dict
                return {}

            def delete(self, **kwargs):
                # type: (object) -> dict
                return {}


        
        class AccessKeyPair:
            r"""Creates a AccessKeyPair resource.::

  access_key_pair = iam.AccessKeyPair('user_name','id','secret')

:type user_name: string
:param user_name: The AccessKeyPair's user_name identifier. This **must** be set.
:type id: string
:param id: The AccessKeyPair's id identifier. This **must** be set.
:type secret: string
:param secret: The AccessKeyPair's secret identifier. This **must** be set.

:rtype: :py:class:`IAM.AccessKeyPair`
:returns: A AccessKeyPair resource"""

            def __init__(self, user_name, id, secret):
                pass
            
            class dateType(object):
                pass
        
            user_name: str=None
            access_key_id: str=None
            status: str=None
            secret_access_key: str=None
            create_date: dateType=None
            
            def activate(self, **kwargs):
                # type: (object) -> dict
                return {}

            def deactivate(self, **kwargs):
                # type: (object) -> dict
                return {}

            def delete(self, **kwargs):
                # type: (object) -> dict
                return {}


        
        class AccountPasswordPolicy:
            r"""Creates a AccountPasswordPolicy resource.::

  account_password_policy = iam.AccountPasswordPolicy()


:rtype: :py:class:`IAM.AccountPasswordPolicy`
:returns: A AccountPasswordPolicy resource"""

            def __init__(self):
                pass
            
            class booleanType(object):
                pass

            class booleanObjectType(object):
                pass
        
            minimum_password_length: int=None
            require_symbols: booleanType=None
            require_numbers: booleanType=None
            require_uppercase_characters: booleanType=None
            require_lowercase_characters: booleanType=None
            allow_users_to_change_password: booleanType=None
            expire_passwords: booleanType=None
            max_password_age: int=None
            password_reuse_prevention: int=None
            hard_expiry: booleanObjectType=None
            
            def delete(self, **kwargs):
                # type: (object) -> dict
                return {}

            def update(self, **kwargs):
                # type: (object) -> dict
                return {}


        
        class AccountSummary:
            r"""Creates a AccountSummary resource.::

  account_summary = iam.AccountSummary()


:rtype: :py:class:`IAM.AccountSummary`
:returns: A AccountSummary resource"""

            def __init__(self):
                pass
            
            class summaryMapType(object):
                pass
        
            summary_map: summaryMapType=None
            

        
        class AssumeRolePolicy:
            r"""Creates a AssumeRolePolicy resource.::

  assume_role_policy = iam.AssumeRolePolicy('role_name')

:type role_name: string
:param role_name: The AssumeRolePolicy's role_name identifier. This **must** be set.

:rtype: :py:class:`IAM.AssumeRolePolicy`
:returns: A AssumeRolePolicy resource"""

            def __init__(self, role_name):
                pass
            
        
            
            def update(self, **kwargs):
                # type: (object) -> dict
                return {}


        
        class CurrentUser:
            r"""Creates a CurrentUser resource.::

  current_user = iam.CurrentUser()


:rtype: :py:class:`IAM.CurrentUser`
:returns: A CurrentUser resource"""

            def __init__(self):
                pass
            
            class Tag(Mapping):
                pass

            class AttachedPermissionsBoundary(Mapping):
                pass

            class dateType(object):
                pass
        
            path: str=None
            user_name: str=None
            user_id: str=None
            arn: str=None
            create_date: dateType=None
            password_last_used: dateType=None
            permissions_boundary: AttachedPermissionsBoundary=None
            tags: List[Tag]=None
            

        
        class Group:
            r"""Creates a Group resource.::

  group = iam.Group('name')

:type name: string
:param name: The Group's name identifier. This **must** be set.

:rtype: :py:class:`IAM.Group`
:returns: A Group resource"""

            def __init__(self, name):
                pass
            
            class dateType(object):
                pass
        
            path: str=None
            group_name: str=None
            group_id: str=None
            arn: str=None
            create_date: dateType=None
            
            def add_user(self, **kwargs):
                # type: (object) -> dict
                return {}

            def attach_policy(self, **kwargs):
                # type: (object) -> dict
                return {}

            def create(self, **kwargs):
                # type: (object) -> Group
                return Group()

            def create_policy(self, **kwargs):
                # type: (object) -> GroupPolicy
                return GroupPolicy()

            def delete(self, **kwargs):
                # type: (object) -> dict
                return {}

            def detach_policy(self, **kwargs):
                # type: (object) -> dict
                return {}

            def remove_user(self, **kwargs):
                # type: (object) -> dict
                return {}

            def update(self, **kwargs):
                # type: (object) -> Group
                return Group()


        
        class GroupPolicy:
            r"""Creates a GroupPolicy resource.::

  group_policy = iam.GroupPolicy('group_name','name')

:type group_name: string
:param group_name: The GroupPolicy's group_name identifier. This **must** be set.
:type name: string
:param name: The GroupPolicy's name identifier. This **must** be set.

:rtype: :py:class:`IAM.GroupPolicy`
:returns: A GroupPolicy resource"""

            def __init__(self, group_name, name):
                pass
            
        
            group_name: str=None
            policy_name: str=None
            policy_document: str=None
            
            def delete(self, **kwargs):
                # type: (object) -> dict
                return {}

            def put(self, **kwargs):
                # type: (object) -> dict
                return {}


        
        class InstanceProfile:
            r"""Creates a InstanceProfile resource.::

  instance_profile = iam.InstanceProfile('name')

:type name: string
:param name: The InstanceProfile's name identifier. This **must** be set.

:rtype: :py:class:`IAM.InstanceProfile`
:returns: A InstanceProfile resource"""

            def __init__(self, name):
                pass
            
            class Role(Mapping):
                pass

            class Tag(Mapping):
                pass

            class dateType(object):
                pass
        
            path: str=None
            instance_profile_name: str=None
            instance_profile_id: str=None
            arn: str=None
            create_date: dateType=None
            roles: List[Role]=None
            tags: List[Tag]=None
            
            def add_role(self, **kwargs):
                # type: (object) -> dict
                return {}

            def delete(self, **kwargs):
                # type: (object) -> dict
                return {}

            def remove_role(self, **kwargs):
                # type: (object) -> dict
                return {}


        
        class LoginProfile:
            r"""Creates a LoginProfile resource.::

  login_profile = iam.LoginProfile('user_name')

:type user_name: string
:param user_name: The LoginProfile's user_name identifier. This **must** be set.

:rtype: :py:class:`IAM.LoginProfile`
:returns: A LoginProfile resource"""

            def __init__(self, user_name):
                pass
            
            class booleanType(object):
                pass

            class dateType(object):
                pass
        
            user_name: str=None
            create_date: dateType=None
            password_reset_required: booleanType=None
            
            def create(self, **kwargs):
                # type: (object) -> LoginProfile
                return LoginProfile()

            def delete(self, **kwargs):
                # type: (object) -> dict
                return {}

            def update(self, **kwargs):
                # type: (object) -> dict
                return {}


        
        class MfaDevice:
            r"""Creates a MfaDevice resource.::

  mfa_device = iam.MfaDevice('user_name','serial_number')

:type user_name: string
:param user_name: The MfaDevice's user_name identifier. This **must** be set.
:type serial_number: string
:param serial_number: The MfaDevice's serial_number identifier. This **must** be set.

:rtype: :py:class:`IAM.MfaDevice`
:returns: A MfaDevice resource"""

            def __init__(self, user_name, serial_number):
                pass
            
            class dateType(object):
                pass
        
            user_name: str=None
            serial_number: str=None
            enable_date: dateType=None
            
            def associate(self, **kwargs):
                # type: (object) -> dict
                return {}

            def disassociate(self, **kwargs):
                # type: (object) -> dict
                return {}

            def resync(self, **kwargs):
                # type: (object) -> dict
                return {}


        
        class Policy:
            r"""Creates a Policy resource.::

  policy = iam.Policy('policy_arn')

:type policy_arn: string
:param policy_arn: The Policy's policy_arn identifier. This **must** be set.

:rtype: :py:class:`IAM.Policy`
:returns: A Policy resource"""

            def __init__(self, policy_arn):
                pass
            
            class booleanType(object):
                pass

            class Tag(Mapping):
                pass

            class dateType(object):
                pass
        
            policy_name: str=None
            policy_id: str=None
            arn: str=None
            path: str=None
            default_version_id: str=None
            attachment_count: int=None
            permissions_boundary_usage_count: int=None
            is_attachable: booleanType=None
            description: str=None
            create_date: dateType=None
            update_date: dateType=None
            tags: List[Tag]=None
            
            def attach_group(self, **kwargs):
                # type: (object) -> dict
                return {}

            def attach_role(self, **kwargs):
                # type: (object) -> dict
                return {}

            def attach_user(self, **kwargs):
                # type: (object) -> dict
                return {}

            def create_version(self, **kwargs):
                # type: (object) -> PolicyVersion
                return PolicyVersion()

            def delete(self, **kwargs):
                # type: (object) -> dict
                return {}

            def detach_group(self, **kwargs):
                # type: (object) -> dict
                return {}

            def detach_role(self, **kwargs):
                # type: (object) -> dict
                return {}

            def detach_user(self, **kwargs):
                # type: (object) -> dict
                return {}


        
        class PolicyVersion:
            r"""Creates a PolicyVersion resource.::

  policy_version = iam.PolicyVersion('arn','version_id')

:type arn: string
:param arn: The PolicyVersion's arn identifier. This **must** be set.
:type version_id: string
:param version_id: The PolicyVersion's version_id identifier. This **must** be set.

:rtype: :py:class:`IAM.PolicyVersion`
:returns: A PolicyVersion resource"""

            def __init__(self, arn, version_id):
                pass
            
            class booleanType(object):
                pass

            class dateType(object):
                pass
        
            document: str=None
            version_id: str=None
            is_default_version: booleanType=None
            create_date: dateType=None
            
            def delete(self, **kwargs):
                # type: (object) -> dict
                return {}

            def set_as_default(self, **kwargs):
                # type: (object) -> dict
                return {}


        
        class Role:
            r"""Creates a Role resource.::

  role = iam.Role('name')

:type name: string
:param name: The Role's name identifier. This **must** be set.

:rtype: :py:class:`IAM.Role`
:returns: A Role resource"""

            def __init__(self, name):
                pass
            
            class Tag(Mapping):
                pass

            class RoleLastUsed(Mapping):
                pass

            class AttachedPermissionsBoundary(Mapping):
                pass

            class dateType(object):
                pass
        
            path: str=None
            role_name: str=None
            role_id: str=None
            arn: str=None
            create_date: dateType=None
            assume_role_policy_document: str=None
            description: str=None
            max_session_duration: int=None
            permissions_boundary: AttachedPermissionsBoundary=None
            tags: List[Tag]=None
            role_last_used: RoleLastUsed=None
            
            def attach_policy(self, **kwargs):
                # type: (object) -> dict
                return {}

            def delete(self, **kwargs):
                # type: (object) -> dict
                return {}

            def detach_policy(self, **kwargs):
                # type: (object) -> dict
                return {}


        
        class RolePolicy:
            r"""Creates a RolePolicy resource.::

  role_policy = iam.RolePolicy('role_name','name')

:type role_name: string
:param role_name: The RolePolicy's role_name identifier. This **must** be set.
:type name: string
:param name: The RolePolicy's name identifier. This **must** be set.

:rtype: :py:class:`IAM.RolePolicy`
:returns: A RolePolicy resource"""

            def __init__(self, role_name, name):
                pass
            
        
            role_name: str=None
            policy_name: str=None
            policy_document: str=None
            
            def delete(self, **kwargs):
                # type: (object) -> dict
                return {}

            def put(self, **kwargs):
                # type: (object) -> dict
                return {}


        
        class SamlProvider:
            r"""Creates a SamlProvider resource.::

  saml_provider = iam.SamlProvider('arn')

:type arn: string
:param arn: The SamlProvider's arn identifier. This **must** be set.

:rtype: :py:class:`IAM.SamlProvider`
:returns: A SamlProvider resource"""

            def __init__(self, arn):
                pass
            
            class Tag(Mapping):
                pass

            class dateType(object):
                pass
        
            saml_metadata_document: str=None
            create_date: dateType=None
            valid_until: dateType=None
            tags: List[Tag]=None
            
            def delete(self, **kwargs):
                # type: (object) -> dict
                return {}

            def update(self, **kwargs):
                # type: (object) -> dict
                return {}


        
        class ServerCertificate:
            r"""Creates a ServerCertificate resource.::

  server_certificate = iam.ServerCertificate('name')

:type name: string
:param name: The ServerCertificate's name identifier. This **must** be set.

:rtype: :py:class:`IAM.ServerCertificate`
:returns: A ServerCertificate resource"""

            def __init__(self, name):
                pass
            
            class Tag(Mapping):
                pass

            class ServerCertificateMetadata(Mapping):
                pass
        
            server_certificate_metadata: ServerCertificateMetadata=None
            certificate_body: str=None
            certificate_chain: str=None
            tags: List[Tag]=None
            
            def delete(self, **kwargs):
                # type: (object) -> dict
                return {}

            def update(self, **kwargs):
                # type: (object) -> ServerCertificate
                return ServerCertificate()


        
        class SigningCertificate:
            r"""Creates a SigningCertificate resource.::

  signing_certificate = iam.SigningCertificate('user_name','id')

:type user_name: string
:param user_name: The SigningCertificate's user_name identifier. This **must** be set.
:type id: string
:param id: The SigningCertificate's id identifier. This **must** be set.

:rtype: :py:class:`IAM.SigningCertificate`
:returns: A SigningCertificate resource"""

            def __init__(self, user_name, id):
                pass
            
            class dateType(object):
                pass
        
            user_name: str=None
            certificate_id: str=None
            certificate_body: str=None
            status: str=None
            upload_date: dateType=None
            
            def activate(self, **kwargs):
                # type: (object) -> dict
                return {}

            def deactivate(self, **kwargs):
                # type: (object) -> dict
                return {}

            def delete(self, **kwargs):
                # type: (object) -> dict
                return {}


        
        class User:
            r"""Creates a User resource.::

  user = iam.User('name')

:type name: string
:param name: The User's name identifier. This **must** be set.

:rtype: :py:class:`IAM.User`
:returns: A User resource"""

            def __init__(self, name):
                pass
            
            class Tag(Mapping):
                pass

            class AttachedPermissionsBoundary(Mapping):
                pass

            class dateType(object):
                pass
        
            path: str=None
            user_name: str=None
            user_id: str=None
            arn: str=None
            create_date: dateType=None
            password_last_used: dateType=None
            permissions_boundary: AttachedPermissionsBoundary=None
            tags: List[Tag]=None
            
            def add_group(self, **kwargs):
                # type: (object) -> dict
                return {}

            def attach_policy(self, **kwargs):
                # type: (object) -> dict
                return {}

            def create(self, **kwargs):
                # type: (object) -> User
                return User()

            def create_access_key_pair(self, **kwargs):
                # type: (object) -> AccessKeyPair
                return AccessKeyPair()

            def create_login_profile(self, **kwargs):
                # type: (object) -> LoginProfile
                return LoginProfile()

            def create_policy(self, **kwargs):
                # type: (object) -> UserPolicy
                return UserPolicy()

            def delete(self, **kwargs):
                # type: (object) -> dict
                return {}

            def detach_policy(self, **kwargs):
                # type: (object) -> dict
                return {}

            def enable_mfa(self, **kwargs):
                # type: (object) -> MfaDevice
                return MfaDevice()

            def remove_group(self, **kwargs):
                # type: (object) -> dict
                return {}

            def update(self, **kwargs):
                # type: (object) -> User
                return User()


        
        class UserPolicy:
            r"""Creates a UserPolicy resource.::

  user_policy = iam.UserPolicy('user_name','name')

:type user_name: string
:param user_name: The UserPolicy's user_name identifier. This **must** be set.
:type name: string
:param name: The UserPolicy's name identifier. This **must** be set.

:rtype: :py:class:`IAM.UserPolicy`
:returns: A UserPolicy resource"""

            def __init__(self, user_name, name):
                pass
            
        
            user_name: str=None
            policy_name: str=None
            policy_document: str=None
            
            def delete(self, **kwargs):
                # type: (object) -> dict
                return {}

            def put(self, **kwargs):
                # type: (object) -> dict
                return {}


        
        class VirtualMfaDevice:
            r"""Creates a VirtualMfaDevice resource.::

  virtual_mfa_device = iam.VirtualMfaDevice('serial_number')

:type serial_number: string
:param serial_number: The VirtualMfaDevice's serial_number identifier. This **must** be set.

:rtype: :py:class:`IAM.VirtualMfaDevice`
:returns: A VirtualMfaDevice resource"""

            def __init__(self, serial_number):
                pass
            
            class BootstrapDatum(object):
                pass

            class User(Mapping):
                pass

            class Tag(Mapping):
                pass

            class dateType(object):
                pass
        
            serial_number: str=None
            base32_string_seed: BootstrapDatum=None
            qr_code_png: BootstrapDatum=None
            user: User=None
            enable_date: dateType=None
            tags: List[Tag]=None
            
            def delete(self, **kwargs):
                # type: (object) -> dict
                return {}


        def change_password(self, **kwargs):
            # type: (object) -> dict
            pass

        def create_account_alias(self, **kwargs):
            # type: (object) -> dict
            pass

        def create_account_password_policy(self, **kwargs):
            # type: (object) -> AccountPasswordPolicy
            pass

        def create_group(self, **kwargs):
            # type: (object) -> Group
            pass

        def create_instance_profile(self, **kwargs):
            # type: (object) -> InstanceProfile
            pass

        def create_policy(self, **kwargs):
            # type: (object) -> Policy
            pass

        def create_role(self, **kwargs):
            # type: (object) -> Role
            pass

        def create_saml_provider(self, **kwargs):
            # type: (object) -> SamlProvider
            pass

        def create_server_certificate(self, **kwargs):
            # type: (object) -> ServerCertificate
            pass

        def create_signing_certificate(self, **kwargs):
            # type: (object) -> SigningCertificate
            pass

        def create_user(self, **kwargs):
            # type: (object) -> User
            pass

        def create_virtual_mfa_device(self, **kwargs):
            # type: (object) -> VirtualMfaDevice
            pass

        def get_available_subresources(self) -> List[str]:
            pass

        class GroupResourceCollection(List[Group], ResourceCollection):
            pass

        groups: GroupResourceCollection = None
        class InstanceProfileResourceCollection(List[InstanceProfile], ResourceCollection):
            pass

        instance_profiles: InstanceProfileResourceCollection = None
        class PolicyResourceCollection(List[Policy], ResourceCollection):
            pass

        policies: PolicyResourceCollection = None
        class RoleResourceCollection(List[Role], ResourceCollection):
            pass

        roles: RoleResourceCollection = None
        class SamlProviderResourceCollection(List[SamlProvider], ResourceCollection):
            pass

        saml_providers: SamlProviderResourceCollection = None
        class ServerCertificateResourceCollection(List[ServerCertificate], ResourceCollection):
            pass

        server_certificates: ServerCertificateResourceCollection = None
        class UserResourceCollection(List[User], ResourceCollection):
            pass

        users: UserResourceCollection = None
        class VirtualMfaDeviceResourceCollection(List[VirtualMfaDevice], ResourceCollection):
            pass

        virtual_mfa_devices: VirtualMfaDeviceResourceCollection = None




class IdentityStore(BaseClient):
    r""""""




    class DescribeGroupRequest(Mapping):
        pass
    
    class DescribeGroupResponse(Mapping):
        pass
    
    class DescribeUserRequest(Mapping):
        pass
    
    class DescribeUserResponse(Mapping):
        pass
    
    class ListGroupsRequest(Mapping):
        pass
    
    class ListGroupsResponse(Mapping):
        pass
    
    class Filter(Mapping):
        pass
    
    class ListUsersRequest(Mapping):
        pass
    
    class ListUsersResponse(Mapping):
        pass
    
    def describe_group(self, GroupId: str, IdentityStoreId: str) -> DescribeGroupResponse:
        r"""Retrieves the group metadata and attributes from <code>GroupId</code> in an identity store.

        :param self:
        :param GroupId:  The identifier for a group in the identity store.<br/>IdentityStoreId:  The globally unique identifier for the identity store, such as d-1234567890. In this example, d- is a fixed prefix, and 1234567890 is a randomly generated string which contains number and lower case letters. This value is generated at the time that a new identity store is created.<br/>
        :return: DisplayName:  Contains the group’s display name value. The length limit is 1024 characters. This value can consist of letters, accented characters, symbols, numbers, punctuation, tab, new line, carriage return, space and non breaking space in this attribute. The characters “&lt;&gt;;:%” are excluded. This value is specified at the time the group is created and stored as an attribute of the group object in the identity store.<br/>GroupId:  The identifier for a group in the identity store.<br/>        """
        pass

    def describe_user(self, UserId: str, IdentityStoreId: str) -> DescribeUserResponse:
        r"""Retrieves the user metadata and attributes from <code>UserId</code> in an identity store.

        :param self:
        :param UserId:  The identifier for a user in the identity store.<br/>IdentityStoreId:  The globally unique identifier for the identity store, such as d-1234567890. In this example, d- is a fixed prefix, and 1234567890 is a randomly generated string which contains number and lower case letters. This value is generated at the time that a new identity store is created.<br/>
        :return: UserId:  The identifier for a user in the identity store.<br/>UserName:  Contains the user’s username value. The length limit is 128 characters. This value can consist of letters, accented characters, symbols, numbers and punctuation. The characters “&lt;&gt;;:%” are excluded. This value is specified at the time the user is created and stored as an attribute of the user object in the identity store.<br/>        """
        pass

    def list_groups(self, IdentityStoreId: str, MaxResults: int=None, NextToken: str=None, Filters: List[Filter]=None) -> ListGroupsResponse:
        r"""Lists the attribute name and value of the group that you specified in the search. We only support <code>DisplayName</code> as a valid filter attribute path currently, and filter is required. This API returns minimum attributes, including <code>GroupId</code> and group <code>DisplayName</code> in the response.

        :param self:
        :param Filters:  A list of <code>Filter</code> objects, which is used in the <code>ListUsers</code> and <code>ListGroups</code> request. <br/>NextToken:  The pagination token used for the <code>ListUsers</code> and <code>ListGroups</code> APIs. This value is generated by the identity store service and is returned in the API response if the total results are more than the size of one page, and when this token is used in the API request to search for the next page.<br/>MaxResults:  The maximum number of results to be returned per request, which is used in the <code>ListUsers</code> and <code>ListGroups</code> request to specify how many results to return in one page. The length limit is 50 characters.<br/>IdentityStoreId:  The globally unique identifier for the identity store, such as d-1234567890. In this example, d- is a fixed prefix, and 1234567890 is a randomly generated string which contains number and lower case letters. This value is generated at the time that a new identity store is created.<br/>
        :return: NextToken:  The pagination token used for the <code>ListUsers</code> and <code>ListGroups</code> APIs. This value is generated by the identity store service and is returned in the API response if the total results are more than the size of one page, and when this token is used in the API request to search for the next page.<br/>Groups:  A list of <code>Group</code> objects in the identity store.<br/>        """
        pass

    def list_users(self, IdentityStoreId: str, MaxResults: int=None, NextToken: str=None, Filters: List[Filter]=None) -> ListUsersResponse:
        r"""Lists the attribute name and value of the user that you specified in the search. We only support <code>UserName</code> as a valid filter attribute path currently, and filter is required. This API returns minimum attributes, including <code>UserId</code> and <code>UserName</code> in the response.

        :param self:
        :param Filters:  A list of <code>Filter</code> objects, which is used in the <code>ListUsers</code> and <code>ListGroups</code> request. <br/>NextToken:  The pagination token used for the <code>ListUsers</code> and <code>ListGroups</code> APIs. This value is generated by the identity store service and is returned in the API response if the total results are more than the size of one page, and when this token is used in the API request to search for the next page.<br/>MaxResults:  The maximum number of results to be returned per request, which is used in the <code>ListUsers</code> and <code>ListGroups</code> request to specify how many results to return in one page. The length limit is 50 characters.<br/>IdentityStoreId:  The globally unique identifier for the identity store, such as d-1234567890. In this example, d- is a fixed prefix, and 1234567890 is a randomly generated string which contains number and lower case letters. This value is generated at the time that a new identity store is created.<br/>
        :return: NextToken:  The pagination token used for the <code>ListUsers</code> and <code>ListGroups</code> APIs. This value is generated by the identity store service and is returned in the API response if the total results are more than the size of one page, and when this token is used in the API request to search for the next page.<br/>Users:  A list of <code>User</code> objects in the identity store.<br/>        """
        pass





class imagebuilder(BaseClient):
    r"""EC2 Image Builder is a fully managed Amazon Web Services service that makes it easier to automate the creation, management, and deployment of customized, secure, and up-to-date "golden" server images that are pre-installed and pre-configured with software and settings to meet specific IT standards."""




    class CancelImageCreationRequest(Mapping):
        pass
    
    class CancelImageCreationResponse(Mapping):
        pass
    
    class CreateComponentRequest(Mapping):
        pass
    
    class CreateComponentResponse(Mapping):
        pass
    
    class OsVersion(object):
        pass
    
    class TagMap(object):
        pass
    
    class CreateContainerRecipeRequest(Mapping):
        pass
    
    class CreateContainerRecipeResponse(Mapping):
        pass
    
    class ComponentConfiguration(Mapping):
        pass
    
    class InstanceConfiguration(Mapping):
        pass
    
    class TargetContainerRepository(Mapping):
        pass
    
    class CreateDistributionConfigurationRequest(Mapping):
        pass
    
    class CreateDistributionConfigurationResponse(Mapping):
        pass
    
    class Distribution(Mapping):
        pass
    
    class CreateImageRequest(Mapping):
        pass
    
    class CreateImageResponse(Mapping):
        pass
    
    class ImageTestsConfiguration(Mapping):
        pass
    
    class NullableBoolean(object):
        pass
    
    class CreateImagePipelineRequest(Mapping):
        pass
    
    class CreateImagePipelineResponse(Mapping):
        pass
    
    class Schedule(Mapping):
        pass
    
    class CreateImageRecipeRequest(Mapping):
        pass
    
    class CreateImageRecipeResponse(Mapping):
        pass
    
    class InstanceBlockDeviceMapping(Mapping):
        pass
    
    class AdditionalInstanceConfiguration(Mapping):
        pass
    
    class CreateInfrastructureConfigurationRequest(Mapping):
        pass
    
    class CreateInfrastructureConfigurationResponse(Mapping):
        pass
    
    class InstanceType(object):
        pass
    
    class NonEmptyString(object):
        pass
    
    class Logging(Mapping):
        pass
    
    class ResourceTagMap(object):
        pass
    
    class DeleteComponentRequest(Mapping):
        pass
    
    class DeleteComponentResponse(Mapping):
        pass
    
    class DeleteContainerRecipeRequest(Mapping):
        pass
    
    class DeleteContainerRecipeResponse(Mapping):
        pass
    
    class DeleteDistributionConfigurationRequest(Mapping):
        pass
    
    class DeleteDistributionConfigurationResponse(Mapping):
        pass
    
    class DeleteImageRequest(Mapping):
        pass
    
    class DeleteImageResponse(Mapping):
        pass
    
    class DeleteImagePipelineRequest(Mapping):
        pass
    
    class DeleteImagePipelineResponse(Mapping):
        pass
    
    class DeleteImageRecipeRequest(Mapping):
        pass
    
    class DeleteImageRecipeResponse(Mapping):
        pass
    
    class DeleteInfrastructureConfigurationRequest(Mapping):
        pass
    
    class DeleteInfrastructureConfigurationResponse(Mapping):
        pass
    
    class GetComponentRequest(Mapping):
        pass
    
    class GetComponentResponse(Mapping):
        pass
    
    class GetComponentPolicyRequest(Mapping):
        pass
    
    class GetComponentPolicyResponse(Mapping):
        pass
    
    class GetContainerRecipeRequest(Mapping):
        pass
    
    class GetContainerRecipeResponse(Mapping):
        pass
    
    class GetContainerRecipePolicyRequest(Mapping):
        pass
    
    class GetContainerRecipePolicyResponse(Mapping):
        pass
    
    class GetDistributionConfigurationRequest(Mapping):
        pass
    
    class GetDistributionConfigurationResponse(Mapping):
        pass
    
    class GetImageRequest(Mapping):
        pass
    
    class GetImageResponse(Mapping):
        pass
    
    class GetImagePipelineRequest(Mapping):
        pass
    
    class GetImagePipelineResponse(Mapping):
        pass
    
    class GetImagePolicyRequest(Mapping):
        pass
    
    class GetImagePolicyResponse(Mapping):
        pass
    
    class GetImageRecipeRequest(Mapping):
        pass
    
    class GetImageRecipeResponse(Mapping):
        pass
    
    class GetImageRecipePolicyRequest(Mapping):
        pass
    
    class GetImageRecipePolicyResponse(Mapping):
        pass
    
    class GetInfrastructureConfigurationRequest(Mapping):
        pass
    
    class GetInfrastructureConfigurationResponse(Mapping):
        pass
    
    class ImportComponentRequest(Mapping):
        pass
    
    class ImportComponentResponse(Mapping):
        pass
    
    class ListComponentBuildVersionsRequest(Mapping):
        pass
    
    class ListComponentBuildVersionsResponse(Mapping):
        pass
    
    class ListComponentsRequest(Mapping):
        pass
    
    class ListComponentsResponse(Mapping):
        pass
    
    class Filter(Mapping):
        pass
    
    class Boolean(object):
        pass
    
    class ListContainerRecipesRequest(Mapping):
        pass
    
    class ListContainerRecipesResponse(Mapping):
        pass
    
    class ListDistributionConfigurationsRequest(Mapping):
        pass
    
    class ListDistributionConfigurationsResponse(Mapping):
        pass
    
    class ListImageBuildVersionsRequest(Mapping):
        pass
    
    class ListImageBuildVersionsResponse(Mapping):
        pass
    
    class ListImagePackagesRequest(Mapping):
        pass
    
    class ListImagePackagesResponse(Mapping):
        pass
    
    class ListImagePipelineImagesRequest(Mapping):
        pass
    
    class ListImagePipelineImagesResponse(Mapping):
        pass
    
    class ListImagePipelinesRequest(Mapping):
        pass
    
    class ListImagePipelinesResponse(Mapping):
        pass
    
    class ListImageRecipesRequest(Mapping):
        pass
    
    class ListImageRecipesResponse(Mapping):
        pass
    
    class ListImagesRequest(Mapping):
        pass
    
    class ListImagesResponse(Mapping):
        pass
    
    class ListInfrastructureConfigurationsRequest(Mapping):
        pass
    
    class ListInfrastructureConfigurationsResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class PutComponentPolicyRequest(Mapping):
        pass
    
    class PutComponentPolicyResponse(Mapping):
        pass
    
    class PutContainerRecipePolicyRequest(Mapping):
        pass
    
    class PutContainerRecipePolicyResponse(Mapping):
        pass
    
    class PutImagePolicyRequest(Mapping):
        pass
    
    class PutImagePolicyResponse(Mapping):
        pass
    
    class PutImageRecipePolicyRequest(Mapping):
        pass
    
    class PutImageRecipePolicyResponse(Mapping):
        pass
    
    class StartImagePipelineExecutionRequest(Mapping):
        pass
    
    class StartImagePipelineExecutionResponse(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateDistributionConfigurationRequest(Mapping):
        pass
    
    class UpdateDistributionConfigurationResponse(Mapping):
        pass
    
    class UpdateImagePipelineRequest(Mapping):
        pass
    
    class UpdateImagePipelineResponse(Mapping):
        pass
    
    class UpdateInfrastructureConfigurationRequest(Mapping):
        pass
    
    class UpdateInfrastructureConfigurationResponse(Mapping):
        pass
    
    def cancel_image_creation(self, clientToken: str, imageBuildVersionArn: str) -> CancelImageCreationResponse:
        r"""CancelImageCreation cancels the creation of Image. This operation can only be used on images in a non-terminal state.

        :param self:
        :param clientToken:  The idempotency token used to make this request idempotent.<br/>imageBuildVersionArn:  The Amazon Resource Name (ARN) of the image whose creation you want to cancel.<br/>
        :return: imageBuildVersionArn:  The Amazon Resource Name (ARN) of the image whose creation has been cancelled.<br/>clientToken:  The idempotency token used to make this request idempotent.<br/>requestId:  The request ID that uniquely identifies this request.<br/>        """
        pass

    def create_component(self, clientToken: str, platform: str, semanticVersion: str, name: str, description: str=None, changeDescription: str=None, supportedOsVersions: List[OsVersion]=None, data: str=None, uri: str=None, kmsKeyId: str=None, tags: TagMap=None) -> CreateComponentResponse:
        r"""Creates a new component that can be used to build, validate, test, and assess your image.

        :param self:
        :param clientToken:  The idempotency token of the component.<br/>tags:  The tags of the component.<br/>kmsKeyId:  The ID of the KMS key that should be used to encrypt this component.<br/>uri:  The uri of the component. Must be an Amazon S3 URL and the requester must have permission to access the Amazon S3 bucket. If you use Amazon S3, you can specify component content up to your service quota. Either <code>data</code> or <code>uri</code> can be used to specify the data within the component.<br/>data:  The data of the component. Used to specify the data inline. Either <code>data</code> or <code>uri</code> can be used to specify the data within the component.<br/>supportedOsVersions:   The operating system (OS) version supported by the component. If the OS information is available, a prefix match is performed against the parent image OS version during image recipe creation.<br/>platform:  The platform of the component.<br/>changeDescription:  The change description of the component. Describes what change has been made in this version, or what makes this version different from other versions of this component.<br/>description:  The description of the component. Describes the contents of the component.<br/>semanticVersion:  The semantic version of the component. This version follows the semantic version syntax. For example, major.minor.patch. This could be versioned like software (2.0.1) or like a date (2019.12.01).<br/>name:  The name of the component.<br/>
        :return: componentBuildVersionArn:  The Amazon Resource Name (ARN) of the component that was created by this request.<br/>clientToken:  The idempotency token used to make this request idempotent.<br/>requestId:  The request ID that uniquely identifies this request.<br/>        """
        pass

    def create_container_recipe(self, clientToken: str, targetRepository: TargetContainerRepository, parentImage: str, components: List[ComponentConfiguration], semanticVersion: str, name: str, containerType: str, description: str=None, instanceConfiguration: InstanceConfiguration=None, dockerfileTemplateData: str=None, dockerfileTemplateUri: str=None, platformOverride: str=None, imageOsVersionOverride: str=None, tags: TagMap=None, workingDirectory: str=None, kmsKeyId: str=None) -> CreateContainerRecipeResponse:
        r"""Creates a new container recipe. Container recipes define how images are configured, tested, and assessed.

        :param self:
        :param clientToken:  The client token used to make this request idempotent.<br/>kmsKeyId:  Identifies which KMS key is used to encrypt the container image.<br/>targetRepository:  The destination repository for the container image.:<br/>workingDirectory:  The working directory for use during build and test workflows.<br/>tags:  Tags that are attached to the container recipe.<br/>parentImage:  The source image for the container recipe.<br/>imageOsVersionOverride:  Specifies the operating system version for the source image.<br/>platformOverride:  Specifies the operating system platform when you use a custom source image.<br/>dockerfileTemplateUri:  The Amazon S3 URI for the Dockerfile that will be used to build your container image.<br/>dockerfileTemplateData:  The Dockerfile template used to build your image as an inline data blob.<br/>instanceConfiguration:  A group of options that can be used to configure an instance for building and testing container images.:<br/>components:  Components for build and test that are included in the container recipe.<br/>semanticVersion:  The semantic version of the container recipe (&lt;major&gt;.&lt;minor&gt;.&lt;patch&gt;).<br/>description:  The description of the container recipe.<br/>name:  The name of the container recipe.<br/>containerType:  The type of container to create.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>blockDeviceMappings</i> Defines the block devices to attach for building an instance from this Image Builder AMI.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>image</i> The AMI ID to use as the base image for a container build and test instance. If not specified, Image Builder will use the appropriate ECS-optimized AMI as a base image.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>repositoryName</i> The name of the container repository where the output container image is stored. This name is prefixed by the repository location.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>service</i> Specifies the service in which this image was registered.<br/>
        :return: containerRecipeArn:  Returns the Amazon Resource Name (ARN) of the container recipe that the request created.<br/>clientToken:  The client token used to make this request idempotent.<br/>requestId:  The request ID that uniquely identifies this request.<br/>        """
        pass

    def create_distribution_configuration(self, clientToken: str, distributions: List[Distribution], name: str, description: str=None, tags: TagMap=None) -> CreateDistributionConfigurationResponse:
        r"""Creates a new distribution configuration. Distribution configurations define and configure the outputs of your pipeline.

        :param self:
        :param clientToken:   The idempotency token of the distribution configuration.<br/>tags:   The tags of the distribution configuration.<br/>distributions:   The distributions of the distribution configuration.<br/>description:   The description of the distribution configuration.<br/>name:   The name of the distribution configuration.<br/>
        :return: distributionConfigurationArn:   The Amazon Resource Name (ARN) of the distribution configuration that was created by this request.<br/>clientToken:   The idempotency token used to make this request idempotent.<br/>requestId:   The request ID that uniquely identifies this request.<br/>        """
        pass

    def create_image(self, clientToken: str, infrastructureConfigurationArn: str, imageRecipeArn: str=None, containerRecipeArn: str=None, distributionConfigurationArn: str=None, imageTestsConfiguration: ImageTestsConfiguration=None, enhancedImageMetadataEnabled: NullableBoolean=None, tags: TagMap=None) -> CreateImageResponse:
        r""" Creates a new image. This request will create a new image along with all of the configured output resources defined in the distribution configuration. You must specify exactly one recipe for your image, using either a ContainerRecipeArn or an ImageRecipeArn.

        :param self:
        :param clientToken:   The idempotency token used to make this request idempotent.<br/>tags:   The tags of the image.<br/>enhancedImageMetadataEnabled:   Collects additional information about the image being created, including the operating system (OS) version and package list. This information is used to enhance the overall experience of using EC2 Image Builder. Enabled by default.<br/>imageTestsConfiguration:   The image tests configuration of the image.:<br/>infrastructureConfigurationArn:   The Amazon Resource Name (ARN) of the infrastructure configuration that defines the environment in which your image will be built and tested.<br/>distributionConfigurationArn:   The Amazon Resource Name (ARN) of the distribution configuration that defines and configures the outputs of your pipeline.<br/>containerRecipeArn:  The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.<br/>imageRecipeArn:   The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>timeoutMinutes</i> The maximum time in minutes that tests are permitted to run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>imageTestsEnabled</i> Defines if tests should be executed when building this image.<br/>
        :return: imageBuildVersionArn:   The Amazon Resource Name (ARN) of the image that was created by this request.<br/>clientToken:   The idempotency token used to make this request idempotent.<br/>requestId:   The request ID that uniquely identifies this request.<br/>        """
        pass

    def create_image_pipeline(self, clientToken: str, infrastructureConfigurationArn: str, name: str, description: str=None, imageRecipeArn: str=None, containerRecipeArn: str=None, distributionConfigurationArn: str=None, imageTestsConfiguration: ImageTestsConfiguration=None, enhancedImageMetadataEnabled: NullableBoolean=None, schedule: Schedule=None, status: str=None, tags: TagMap=None) -> CreateImagePipelineResponse:
        r""" Creates a new image pipeline. Image pipelines enable you to automate the creation and distribution of images.

        :param self:
        :param clientToken:   The idempotency token used to make this request idempotent.<br/>tags:   The tags of the image pipeline.<br/>status:   The status of the image pipeline.<br/>schedule:   The schedule of the image pipeline.:<br/>enhancedImageMetadataEnabled:   Collects additional information about the image being created, including the operating system (OS) version and package list. This information is used to enhance the overall experience of using EC2 Image Builder. Enabled by default.<br/>imageTestsConfiguration:   The image test configuration of the image pipeline.:<br/>distributionConfigurationArn:   The Amazon Resource Name (ARN) of the distribution configuration that will be used to configure and distribute images created by this image pipeline.<br/>infrastructureConfigurationArn:   The Amazon Resource Name (ARN) of the infrastructure configuration that will be used to build images created by this image pipeline.<br/>containerRecipeArn:  The Amazon Resource Name (ARN) of the container recipe that is used to configure images created by this container pipeline.<br/>imageRecipeArn:   The Amazon Resource Name (ARN) of the image recipe that will be used to configure images created by this image pipeline.<br/>description:   The description of the image pipeline.<br/>name:   The name of the image pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>timeoutMinutes</i> The maximum time in minutes that tests are permitted to run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>imageTestsEnabled</i> Defines if tests should be executed when building this image.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>pipelineExecutionStartCondition</i> The condition configures when the pipeline should trigger a new image build. When the <code>pipelineExecutionStartCondition</code> is set to <code>EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE</code>, and you use semantic version filters on the source image or components in your image recipe, EC2 Image Builder will build a new image only when there are new versions of the image or components in your recipe that match the semantic version filter. When it is set to <code>EXPRESSION_MATCH_ONLY</code>, it will build a new image every time the CRON expression matches the current time. For semantic version syntax, see <a href="https://docs.aws.amazon.com/imagebuilder/latest/APIReference/API_CreateComponent.html">CreateComponent</a> in the <i> EC2 Image Builder API Reference</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>timezone</i> The timezone that applies to the scheduling expression. For example, "Etc/UTC", "America/Los_Angeles" in the <a href="https://www.joda.org/joda-time/timezones.html">IANA timezone format</a>. If not specified this defaults to UTC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>scheduleExpression</i> The cron expression determines how often EC2 Image Builder evaluates your <code>pipelineExecutionStartCondition</code>. For information on how to format a cron expression in Image Builder, see <a href="https://docs.aws.amazon.com/imagebuilder/latest/userguide/image-builder-cron.html">Use cron expressions in EC2 Image Builder</a>.<br/>
        :return: imagePipelineArn:   The Amazon Resource Name (ARN) of the image pipeline that was created by this request.<br/>clientToken:   The idempotency token used to make this request idempotent.<br/>requestId:   The request ID that uniquely identifies this request.<br/>        """
        pass

    def create_image_recipe(self, clientToken: str, parentImage: str, components: List[ComponentConfiguration], semanticVersion: str, name: str, description: str=None, blockDeviceMappings: List[InstanceBlockDeviceMapping]=None, tags: TagMap=None, workingDirectory: str=None, additionalInstanceConfiguration: AdditionalInstanceConfiguration=None) -> CreateImageRecipeResponse:
        r""" Creates a new image recipe. Image recipes define how images are configured, tested, and assessed.

        :param self:
        :param clientToken:  The idempotency token used to make this request idempotent.<br/>additionalInstanceConfiguration:  Specify additional settings and launch scripts for your build instances.:<br/>workingDirectory:  The working directory used during build and test workflows.<br/>tags:   The tags of the image recipe.<br/>blockDeviceMappings:  The block device mappings of the image recipe.<br/>parentImage:  The parent image of the image recipe. The value of the string can be the ARN of the parent image or an AMI ID. The format for the ARN follows this example: <code>arn:aws:imagebuilder:us-west-2:aws:image/windows-server-2016-english-full-base-x86/x.x.x</code>. You can provide the specific version that you want to use, or you can use a wildcard in all of the fields. If you enter an AMI ID for the string value, you must have access to the AMI, and the AMI must be in the same Region in which you are using Image Builder.<br/>components:  The components of the image recipe.<br/>semanticVersion:  The semantic version of the image recipe.<br/>description:   The description of the image recipe.<br/>name:   The name of the image recipe.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>userDataOverride</i> Use this property to provide commands or a command script to run when you launch your build instance. <note> The userDataOverride property replaces any commands that Image Builder might have added to ensure that SSM is installed on your Linux build instance. If you override the user data, make sure that you add commands to install SSM, if it is not pre-installed on your source image. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>systemsManagerAgent</i> Contains settings for the SSM agent on your build instance.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>systemsManagerAgent</b>: Contains settings for the SSM agent on your build instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>uninstallAfterBuild</i> This property defaults to true. If Image Builder installs the SSM agent on a build instance, it removes the agent before creating a snapshot for the AMI. To ensure that the AMI you create includes the SSM agent, set this property to false.<br/>
        :return: imageRecipeArn:  The Amazon Resource Name (ARN) of the image recipe that was created by this request.<br/>clientToken:  The idempotency token used to make this request idempotent.<br/>requestId:  The request ID that uniquely identifies this request.<br/>        """
        pass

    def create_infrastructure_configuration(self, clientToken: str, instanceProfileName: str, name: str, description: str=None, instanceTypes: List[InstanceType]=None, securityGroupIds: List[NonEmptyString]=None, subnetId: str=None, logging: Logging=None, keyPair: str=None, terminateInstanceOnFailure: NullableBoolean=None, snsTopicArn: str=None, resourceTags: ResourceTagMap=None, tags: TagMap=None) -> CreateInfrastructureConfigurationResponse:
        r""" Creates a new infrastructure configuration. An infrastructure configuration defines the environment in which your image will be built and tested.

        :param self:
        :param clientToken:  The idempotency token used to make this request idempotent.<br/>tags:  The tags of the infrastructure configuration.<br/>resourceTags:  The tags attached to the resource created by Image Builder.<br/>snsTopicArn:  The SNS topic on which to send image build events.<br/>terminateInstanceOnFailure:  The terminate instance on failure setting of the infrastructure configuration. Set to false if you want Image Builder to retain the instance used to configure your AMI if the build or test phase of your workflow fails.<br/>keyPair:  The key pair of the infrastructure configuration. This can be used to log on to and debug the instance used to create your image.<br/>logging:  The logging configuration of the infrastructure configuration.:<br/>subnetId:  The subnet ID in which to place the instance used to customize your Amazon EC2 AMI.<br/>securityGroupIds:  The security group IDs to associate with the instance used to customize your Amazon EC2 AMI.<br/>instanceProfileName:  The instance profile to associate with the instance used to customize your Amazon EC2 AMI.<br/>instanceTypes:  The instance types of the infrastructure configuration. You can specify one or more instance types to use for this build. The service will pick one of these instance types based on availability.<br/>description:  The description of the infrastructure configuration.<br/>name:  The name of the infrastructure configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>s3Logs</i> The Amazon S3 logging configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>s3Logs</b>: The Amazon S3 logging configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>s3KeyPrefix</i> The Amazon S3 path in which to store the logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>s3BucketName</i> The Amazon S3 bucket in which to store the logs.<br/>
        :return: infrastructureConfigurationArn:  The Amazon Resource Name (ARN) of the infrastructure configuration that was created by this request.<br/>clientToken:  The idempotency token used to make this request idempotent.<br/>requestId:  The request ID that uniquely identifies this request.<br/>        """
        pass

    def delete_component(self, componentBuildVersionArn: str) -> DeleteComponentResponse:
        r""" Deletes a component build version.

        :param self:
        :param componentBuildVersionArn:  The Amazon Resource Name (ARN) of the component build version to delete.<br/>
        :return: componentBuildVersionArn:  The Amazon Resource Name (ARN) of the component build version that was deleted.<br/>requestId:  The request ID that uniquely identifies this request.<br/>        """
        pass

    def delete_container_recipe(self, containerRecipeArn: str) -> DeleteContainerRecipeResponse:
        r"""Deletes a container recipe.

        :param self:
        :param containerRecipeArn:  The Amazon Resource Name (ARN) of the container recipe to delete.<br/>
        :return: containerRecipeArn:  The Amazon Resource Name (ARN) of the container recipe that was deleted.<br/>requestId:  The request ID that uniquely identifies this request.<br/>        """
        pass

    def delete_distribution_configuration(self, distributionConfigurationArn: str) -> DeleteDistributionConfigurationResponse:
        r""" Deletes a distribution configuration.

        :param self:
        :param distributionConfigurationArn:  The Amazon Resource Name (ARN) of the distribution configuration to delete.<br/>
        :return: distributionConfigurationArn:  The Amazon Resource Name (ARN) of the distribution configuration that was deleted.<br/>requestId:  The request ID that uniquely identifies this request.<br/>        """
        pass

    def delete_image(self, imageBuildVersionArn: str) -> DeleteImageResponse:
        r""" Deletes an image.

        :param self:
        :param imageBuildVersionArn:  The Amazon Resource Name (ARN) of the image to delete.<br/>
        :return: imageBuildVersionArn:  The Amazon Resource Name (ARN) of the image that was deleted.<br/>requestId:  The request ID that uniquely identifies this request.<br/>        """
        pass

    def delete_image_pipeline(self, imagePipelineArn: str) -> DeleteImagePipelineResponse:
        r""" Deletes an image pipeline.

        :param self:
        :param imagePipelineArn:  The Amazon Resource Name (ARN) of the image pipeline to delete.<br/>
        :return: imagePipelineArn:  The Amazon Resource Name (ARN) of the image pipeline that was deleted.<br/>requestId:  The request ID that uniquely identifies this request.<br/>        """
        pass

    def delete_image_recipe(self, imageRecipeArn: str) -> DeleteImageRecipeResponse:
        r""" Deletes an image recipe.

        :param self:
        :param imageRecipeArn:  The Amazon Resource Name (ARN) of the image recipe to delete.<br/>
        :return: imageRecipeArn:  The Amazon Resource Name (ARN) of the image recipe that was deleted.<br/>requestId:  The request ID that uniquely identifies this request.<br/>        """
        pass

    def delete_infrastructure_configuration(self, infrastructureConfigurationArn: str) -> DeleteInfrastructureConfigurationResponse:
        r""" Deletes an infrastructure configuration.

        :param self:
        :param infrastructureConfigurationArn:  The Amazon Resource Name (ARN) of the infrastructure configuration to delete.<br/>
        :return: infrastructureConfigurationArn:  The Amazon Resource Name (ARN) of the infrastructure configuration that was deleted.<br/>requestId:  The request ID that uniquely identifies this request.<br/>        """
        pass

    def get_component(self, componentBuildVersionArn: str) -> GetComponentResponse:
        r""" Gets a component object.

        :param self:
        :param componentBuildVersionArn:  The Amazon Resource Name (ARN) of the component that you want to retrieve. Regex requires "/\d+$" suffix.<br/>
        :return: component:  The component object associated with the specified ARN.:<br/>requestId:  The request ID that uniquely identifies this request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The tags associated with the component.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>dateCreated</i> The date that the component was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>encrypted</i> The encryption status of the component.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>kmsKeyId</i> The KMS key identifier used to encrypt the component.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>data</i> The data of the component.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>owner</i> The owner of the component.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>parameters</i> Contains parameter details for each of the parameters that are defined for the component.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>supportedOsVersions</i> The operating system (OS) version supported by the component. If the OS information is available, a prefix match is performed against the parent image OS version during image recipe creation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>platform</i> The platform of the component.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of the component denotes whether the component is used to build the image or only to test it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>changeDescription</i> The change description of the component.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> The description of the component.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The version of the component.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the component.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the component.<br/>        """
        pass

    def get_component_policy(self, componentArn: str) -> GetComponentPolicyResponse:
        r""" Gets a component policy.

        :param self:
        :param componentArn:  The Amazon Resource Name (ARN) of the component whose policy you want to retrieve.<br/>
        :return: policy:  The component policy.<br/>requestId:  The request ID that uniquely identifies this request.<br/>        """
        pass

    def get_container_recipe(self, containerRecipeArn: str) -> GetContainerRecipeResponse:
        r"""Retrieves a container recipe.

        :param self:
        :param containerRecipeArn:  The Amazon Resource Name (ARN) of the container recipe to retrieve.<br/>
        :return: containerRecipe:  The container recipe object that is returned.:<br/>requestId:  The request ID that uniquely identifies this request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>targetRepository</i> The destination repository for the container image.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>targetRepository</b>: The destination repository for the container image.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>workingDirectory</i> The working directory for use during build and test workflows.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> Tags that are attached to the container recipe.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>dateCreated</i> The date when this container recipe was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>parentImage</i> The source image for the container recipe.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>encrypted</i> A flag that indicates if the target container is encrypted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>kmsKeyId</i> Identifies which KMS key is used to encrypt the container image for distribution to the target Region.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>dockerfileTemplateData</i> Dockerfiles are text documents that are used to build Docker containers, and ensure that they contain all of the elements required by the application running inside. The template data consists of contextual variables where Image Builder places build information or scripts, based on your container image recipe.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>instanceConfiguration</i> A group of options that can be used to configure an instance for building and testing container images.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>instanceConfiguration</b>: A group of options that can be used to configure an instance for building and testing container images.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>components</i> Components for build and test that are included in the container recipe.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The semantic version of the container recipe (&lt;major&gt;.&lt;minor&gt;.&lt;patch&gt;).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>owner</i> The owner of the container recipe.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>platform</i> The system platform for the container, such as Windows or Linux.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> The description of the container recipe.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the container recipe.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>containerType</i> Specifies the type of container, such as Docker.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the container recipe.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>blockDeviceMappings</i> Defines the block devices to attach for building an instance from this Image Builder AMI.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>image</i> The AMI ID to use as the base image for a container build and test instance. If not specified, Image Builder will use the appropriate ECS-optimized AMI as a base image.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>repositoryName</i> The name of the container repository where the output container image is stored. This name is prefixed by the repository location.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>service</i> Specifies the service in which this image was registered.<br/>        """
        pass

    def get_container_recipe_policy(self, containerRecipeArn: str) -> GetContainerRecipePolicyResponse:
        r"""Retrieves the policy for a container recipe.

        :param self:
        :param containerRecipeArn:  The Amazon Resource Name (ARN) of the container recipe for the policy being requested.<br/>
        :return: policy:  The container recipe policy object that is returned.<br/>requestId:  The request ID that uniquely identifies this request.<br/>        """
        pass

    def get_distribution_configuration(self, distributionConfigurationArn: str) -> GetDistributionConfigurationResponse:
        r""" Gets a distribution configuration.

        :param self:
        :param distributionConfigurationArn:  The Amazon Resource Name (ARN) of the distribution configuration that you want to retrieve.<br/>
        :return: distributionConfiguration:  The distribution configuration object.:<br/>requestId:  The request ID that uniquely identifies this request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The tags of the distribution configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>dateUpdated</i> The date on which this distribution configuration was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>dateCreated</i> The date on which this distribution configuration was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>timeoutMinutes</i> The maximum duration in minutes for this distribution configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>distributions</i> The distribution objects that apply Region-specific settings for the deployment of the image to targeted Regions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> The description of the distribution configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the distribution configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the distribution configuration.<br/>        """
        pass

    def get_image(self, imageBuildVersionArn: str) -> GetImageResponse:
        r""" Gets an image.

        :param self:
        :param imageBuildVersionArn:  The Amazon Resource Name (ARN) of the image that you want to retrieve.<br/>
        :return: image:  The image object.:<br/>requestId:  The request ID that uniquely identifies this request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The tags of the image.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>outputResources</i> The output resources produced when creating this image.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>outputResources</b>: The output resources produced when creating this image.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>dateCreated</i> The date on which this image was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>imageTestsConfiguration</i> The image tests configuration used when creating this image.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>imageTestsConfiguration</b>: The image tests configuration used when creating this image.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>distributionConfiguration</i> The distribution configuration used when creating this image.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>distributionConfiguration</b>: The distribution configuration used when creating this image.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>infrastructureConfiguration</i> The infrastructure used when creating this image.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>infrastructureConfiguration</b>: The infrastructure used when creating this image.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>sourcePipelineArn</i> The Amazon Resource Name (ARN) of the image pipeline that created this image.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>sourcePipelineName</i> The name of the image pipeline that created this image.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>containerRecipe</i> The container recipe used to create the container image type.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>containerRecipe</b>: The container recipe used to create the container image type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>imageRecipe</i> The image recipe used when creating the image.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>imageRecipe</b>: The image recipe used when creating the image.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>state</i> The state of the image.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>state</b>: The state of the image.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>osVersion</i> The operating system version of the instance. For example, Amazon Linux 2, Ubuntu 18, or Microsoft Windows Server 2019.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>enhancedImageMetadataEnabled</i>  Collects additional information about the image being created, including the operating system (OS) version and package list. This information is used to enhance the overall experience of using EC2 Image Builder. Enabled by default.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>platform</i> The platform of the image.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The semantic version of the image.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the image.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> Specifies whether this is an AMI or container image.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the image.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>reason</i> The reason for the image's status.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the image.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>workingDirectory</i> The working directory to be used during build and test workflows.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The tags of the image recipe.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>dateCreated</i> The date on which this image recipe was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>blockDeviceMappings</i> The block device mappings to apply when creating images from this recipe.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>parentImage</i> The parent image of the image recipe.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>components</i> The components of the image recipe.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The version of the image recipe.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>owner</i> The owner of the image recipe.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>platform</i> The platform of the image recipe.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> The description of the image recipe.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the image recipe.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> Specifies which type of image is created by the recipe - an AMI or a container image.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the image recipe.<br/>Before you create a new AMI, Image Builder launches temporary Amazon EC2 instances to build and test your image configuration. Instance configuration adds a layer of control over those instances. You can define settings and add scripts to run when an instance is launched from your AMI.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>additionalInstanceConfiguration</b>: Before you create a new AMI, Image Builder launches temporary Amazon EC2 instances to build and test your image configuration. Instance configuration adds a layer of control over those instances. You can define settings and add scripts to run when an instance is launched from your AMI.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>components</i> Components for build and test that are included in the container recipe.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The semantic version of the container recipe (&lt;major&gt;.&lt;minor&gt;.&lt;patch&gt;).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>owner</i> The owner of the container recipe.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>platform</i> The system platform for the container, such as Windows or Linux.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> The description of the container recipe.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the container recipe.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>containerType</i> Specifies the type of container, such as Docker.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the container recipe.<br/>A group of options that can be used to configure an instance for building and testing container images.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>instanceConfiguration</b>: A group of options that can be used to configure an instance for building and testing container images.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>subnetId</i> The subnet ID of the infrastructure configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>securityGroupIds</i> The security group IDs of the infrastructure configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>instanceProfileName</i> The instance profile of the infrastructure configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>instanceTypes</i> The instance types of the infrastructure configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> The description of the infrastructure configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the infrastructure configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the infrastructure configuration.<br/>The logging configuration of the infrastructure configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>logging</b>: The logging configuration of the infrastructure configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The tags of the distribution configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>dateUpdated</i> The date on which this distribution configuration was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>dateCreated</i> The date on which this distribution configuration was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>timeoutMinutes</i> The maximum duration in minutes for this distribution configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>distributions</i> The distribution objects that apply Region-specific settings for the deployment of the image to targeted Regions.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> The description of the distribution configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the distribution configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the distribution configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>timeoutMinutes</i> The maximum time in minutes that tests are permitted to run.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>imageTestsEnabled</i> Defines if tests should be executed when building this image.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>containers</i> Container images that the pipeline has generated and stored in the output repository.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>amis</i> The Amazon EC2 AMIs created by this image.<br/>        """
        pass

    def get_image_pipeline(self, imagePipelineArn: str) -> GetImagePipelineResponse:
        r""" Gets an image pipeline.

        :param self:
        :param imagePipelineArn:  The Amazon Resource Name (ARN) of the image pipeline that you want to retrieve.<br/>
        :return: imagePipeline:  The image pipeline object.:<br/>requestId:  The request ID that uniquely identifies this request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The tags of this image pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>dateNextRun</i> The date on which this image pipeline will next be run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>dateLastRun</i> The date on which this image pipeline was last run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>dateUpdated</i> The date on which this image pipeline was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>dateCreated</i> The date on which this image pipeline was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the image pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>schedule</i> The schedule of the image pipeline.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>schedule</b>: The schedule of the image pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>imageTestsConfiguration</i> The image tests configuration of the image pipeline.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>imageTestsConfiguration</b>: The image tests configuration of the image pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>distributionConfigurationArn</i> The Amazon Resource Name (ARN) of the distribution configuration associated with this image pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>infrastructureConfigurationArn</i> The Amazon Resource Name (ARN) of the infrastructure configuration associated with this image pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>containerRecipeArn</i> The Amazon Resource Name (ARN) of the container recipe that is used for this pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>imageRecipeArn</i> The Amazon Resource Name (ARN) of the image recipe associated with this image pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>enhancedImageMetadataEnabled</i>  Collects additional information about the image being created, including the operating system (OS) version and package list. This information is used to enhance the overall experience of using EC2 Image Builder. Enabled by default.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>platform</i> The platform of the image pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> The description of the image pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the image pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the image pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>timeoutMinutes</i> The maximum time in minutes that tests are permitted to run.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>imageTestsEnabled</i> Defines if tests should be executed when building this image.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>pipelineExecutionStartCondition</i> The condition configures when the pipeline should trigger a new image build. When the <code>pipelineExecutionStartCondition</code> is set to <code>EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE</code>, and you use semantic version filters on the source image or components in your image recipe, EC2 Image Builder will build a new image only when there are new versions of the image or components in your recipe that match the semantic version filter. When it is set to <code>EXPRESSION_MATCH_ONLY</code>, it will build a new image every time the CRON expression matches the current time. For semantic version syntax, see <a href="https://docs.aws.amazon.com/imagebuilder/latest/APIReference/API_CreateComponent.html">CreateComponent</a> in the <i> EC2 Image Builder API Reference</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>timezone</i> The timezone that applies to the scheduling expression. For example, "Etc/UTC", "America/Los_Angeles" in the <a href="https://www.joda.org/joda-time/timezones.html">IANA timezone format</a>. If not specified this defaults to UTC.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>scheduleExpression</i> The cron expression determines how often EC2 Image Builder evaluates your <code>pipelineExecutionStartCondition</code>. For information on how to format a cron expression in Image Builder, see <a href="https://docs.aws.amazon.com/imagebuilder/latest/userguide/image-builder-cron.html">Use cron expressions in EC2 Image Builder</a>.<br/>        """
        pass

    def get_image_policy(self, imageArn: str) -> GetImagePolicyResponse:
        r""" Gets an image policy.

        :param self:
        :param imageArn:  The Amazon Resource Name (ARN) of the image whose policy you want to retrieve.<br/>
        :return: policy:  The image policy object.<br/>requestId:  The request ID that uniquely identifies this request.<br/>        """
        pass

    def get_image_recipe(self, imageRecipeArn: str) -> GetImageRecipeResponse:
        r""" Gets an image recipe.

        :param self:
        :param imageRecipeArn:  The Amazon Resource Name (ARN) of the image recipe that you want to retrieve.<br/>
        :return: imageRecipe:  The image recipe object.:<br/>requestId:  The request ID that uniquely identifies this request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>additionalInstanceConfiguration</i> Before you create a new AMI, Image Builder launches temporary Amazon EC2 instances to build and test your image configuration. Instance configuration adds a layer of control over those instances. You can define settings and add scripts to run when an instance is launched from your AMI.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>additionalInstanceConfiguration</b>: Before you create a new AMI, Image Builder launches temporary Amazon EC2 instances to build and test your image configuration. Instance configuration adds a layer of control over those instances. You can define settings and add scripts to run when an instance is launched from your AMI.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>workingDirectory</i> The working directory to be used during build and test workflows.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The tags of the image recipe.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>dateCreated</i> The date on which this image recipe was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>blockDeviceMappings</i> The block device mappings to apply when creating images from this recipe.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>parentImage</i> The parent image of the image recipe.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>components</i> The components of the image recipe.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The version of the image recipe.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>owner</i> The owner of the image recipe.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>platform</i> The platform of the image recipe.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> The description of the image recipe.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the image recipe.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> Specifies which type of image is created by the recipe - an AMI or a container image.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the image recipe.<br/>Contains settings for the SSM agent on your build instance.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>systemsManagerAgent</b>: Contains settings for the SSM agent on your build instance.        """
        pass

    def get_image_recipe_policy(self, imageRecipeArn: str) -> GetImageRecipePolicyResponse:
        r""" Gets an image recipe policy.

        :param self:
        :param imageRecipeArn:  The Amazon Resource Name (ARN) of the image recipe whose policy you want to retrieve.<br/>
        :return: policy:  The image recipe policy object.<br/>requestId:  The request ID that uniquely identifies this request.<br/>        """
        pass

    def get_infrastructure_configuration(self, infrastructureConfigurationArn: str) -> GetInfrastructureConfigurationResponse:
        r""" Gets an infrastructure configuration.

        :param self:
        :param infrastructureConfigurationArn:  The Amazon Resource Name (ARN) of the infrastructure configuration that you want to retrieve.<br/>
        :return: infrastructureConfiguration:  The infrastructure configuration object.:<br/>requestId:  The request ID that uniquely identifies this request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The tags of the infrastructure configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceTags</i> The tags attached to the resource created by Image Builder.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>dateUpdated</i> The date on which the infrastructure configuration was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>dateCreated</i> The date on which the infrastructure configuration was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>snsTopicArn</i> The SNS topic Amazon Resource Name (ARN) of the infrastructure configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>terminateInstanceOnFailure</i> The terminate instance on failure configuration of the infrastructure configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>keyPair</i> The Amazon EC2 key pair of the infrastructure configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>logging</i> The logging configuration of the infrastructure configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>logging</b>: The logging configuration of the infrastructure configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>subnetId</i> The subnet ID of the infrastructure configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>securityGroupIds</i> The security group IDs of the infrastructure configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>instanceProfileName</i> The instance profile of the infrastructure configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>instanceTypes</i> The instance types of the infrastructure configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> The description of the infrastructure configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the infrastructure configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the infrastructure configuration.<br/>The Amazon S3 logging configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>s3Logs</b>: The Amazon S3 logging configuration.        """
        pass

    def import_component(self, clientToken: str, platform: str, format: str, type: str, semanticVersion: str, name: str, description: str=None, changeDescription: str=None, data: str=None, uri: str=None, kmsKeyId: str=None, tags: TagMap=None) -> ImportComponentResponse:
        r"""Imports a component and transforms its data into a component document.

        :param self:
        :param clientToken:  The idempotency token of the component.<br/>tags:  The tags of the component.<br/>kmsKeyId:  The ID of the KMS key that should be used to encrypt this component.<br/>uri:  The uri of the component. Must be an Amazon S3 URL and the requester must have permission to access the Amazon S3 bucket. If you use Amazon S3, you can specify component content up to your service quota. Either <code>data</code> or <code>uri</code> can be used to specify the data within the component.<br/>data:  The data of the component. Used to specify the data inline. Either <code>data</code> or <code>uri</code> can be used to specify the data within the component.<br/>platform:  The platform of the component.<br/>format:  The format of the resource that you want to import as a component.<br/>type:  The type of the component denotes whether the component is used to build the image or only to test it.<br/>changeDescription:  The change description of the component. Describes what change has been made in this version, or what makes this version different from other versions of this component.<br/>description:  The description of the component. Describes the contents of the component.<br/>semanticVersion:  The semantic version of the component. This version follows the semantic version syntax. For example, major.minor.patch. This could be versioned like software (2.0.1) or like a date (2019.12.01).<br/>name:   The name of the component.<br/>
        :return: componentBuildVersionArn:  The Amazon Resource Name (ARN) of the imported component.<br/>clientToken:  The idempotency token used to make this request idempotent.<br/>requestId:  The request ID that uniquely identifies this request.<br/>        """
        pass

    def list_component_build_versions(self, componentVersionArn: str, maxResults: int=None, nextToken: str=None) -> ListComponentBuildVersionsResponse:
        r""" Returns the list of component build versions for the specified semantic version.

        :param self:
        :param nextToken:  A token to specify where to start paginating. This is the NextToken from a previously truncated response.<br/>maxResults:  The maximum items to return in a request.<br/>componentVersionArn:  The component version Amazon Resource Name (ARN) whose versions you want to list.<br/>
        :return: nextToken:  The next token used for paginated responses. When this is not empty, there are additional elements that the service has not included in this request. Use this token with the next request to retrieve additional objects.<br/>componentSummaryList:  The list of component summaries for the specified semantic version.<br/>requestId:  The request ID that uniquely identifies this request.<br/>        """
        pass

    def list_components(self, owner: str=None, filters: List[Filter]=None, byName: Boolean=None, maxResults: int=None, nextToken: str=None) -> ListComponentsResponse:
        r"""Returns the list of component build versions for the specified semantic version.

        :param self:
        :param nextToken:  A token to specify where to start paginating. This is the NextToken from a previously truncated response.<br/>maxResults:  The maximum items to return in a request.<br/>byName:  Returns the list of component build versions for the specified semantic version.<br/>filters:  The filters.<br/>owner:  The owner defines which components you want to list. By default, this request will only show components owned by your account. You can use this field to specify if you want to view components owned by yourself, by Amazon, or those components that have been shared with you by other customers.<br/>
        :return: nextToken:  The next token used for paginated responses. When this is not empty, there are additional elements that the service has not included in this request. Use this token with the next request to retrieve additional objects.<br/>componentVersionList:  The list of component semantic versions.<br/>requestId:  The request ID that uniquely identifies this request.<br/>        """
        pass

    def list_container_recipes(self, owner: str=None, filters: List[Filter]=None, maxResults: int=None, nextToken: str=None) -> ListContainerRecipesResponse:
        r"""Returns a list of container recipes.

        :param self:
        :param nextToken:  Provides a token for pagination, which determines where to begin the next set of results when the current set reaches the maximum for one request.<br/>maxResults:  The maximum number of results to return in the list.<br/>filters:  Request filters that are used to narrow the list of container images that are returned.<br/>owner:  Returns container recipes belonging to the specified owner, that have been shared with you. You can omit this field to return container recipes belonging to your account.<br/>
        :return: nextToken:  The next token field is used for paginated responses. When this is not empty, there are additional container recipes that the service has not included in this response. Use this token with the next request to retrieve additional list items.<br/>containerRecipeSummaryList:  The list of container recipes returned for the request.<br/>requestId:  The request ID that uniquely identifies this request.<br/>        """
        pass

    def list_distribution_configurations(self, filters: List[Filter]=None, maxResults: int=None, nextToken: str=None) -> ListDistributionConfigurationsResponse:
        r"""Returns a list of distribution configurations.

        :param self:
        :param nextToken:  A token to specify where to start paginating. This is the NextToken from a previously truncated response.<br/>maxResults:  The maximum items to return in a request.<br/>filters:  The filters. <ul> <li>  <code>name</code> - The name of this distribution configuration. </li> </ul><br/>
        :return: nextToken:  The next token used for paginated responses. When this is not empty, there are additional elements that the service has not included in this request. Use this token with the next request to retrieve additional objects.<br/>distributionConfigurationSummaryList:  The list of distributions.<br/>requestId:  The request ID that uniquely identifies this request.<br/>        """
        pass

    def list_image_build_versions(self, imageVersionArn: str, filters: List[Filter]=None, maxResults: int=None, nextToken: str=None) -> ListImageBuildVersionsResponse:
        r""" Returns a list of image build versions.

        :param self:
        :param nextToken:  A token to specify where to start paginating. This is the NextToken from a previously truncated response.<br/>maxResults:  The maximum items to return in a request.<br/>filters:  The filters.<br/>imageVersionArn:  The Amazon Resource Name (ARN) of the image whose build versions you want to retrieve.<br/>
        :return: nextToken:  The next token used for paginated responses. When this is not empty, there are additional elements that the service has not included in this request. Use this token with the next request to retrieve additional objects.<br/>imageSummaryList:  The list of image build versions.<br/>requestId:  The request ID that uniquely identifies this request.<br/>        """
        pass

    def list_image_packages(self, imageBuildVersionArn: str, maxResults: int=None, nextToken: str=None) -> ListImagePackagesResponse:
        r"""List the Packages that are associated with an Image Build Version, as determined by Amazon EC2 Systems Manager Inventory at build time.

        :param self:
        :param nextToken:  A token to specify where to start paginating. This is the NextToken from a previously truncated response.<br/>maxResults:  The maxiumum number of results to return from the ListImagePackages request.<br/>imageBuildVersionArn:  Filter results for the ListImagePackages request by the Image Build Version ARN<br/>
        :return: nextToken:  A token to specify where to start paginating. This is the NextToken from a previously truncated response.<br/>imagePackageList:  The list of Image Packages returned in the response.<br/>requestId:  The request ID that uniquely identifies this request.<br/>        """
        pass

    def list_image_pipeline_images(self, imagePipelineArn: str, filters: List[Filter]=None, maxResults: int=None, nextToken: str=None) -> ListImagePipelineImagesResponse:
        r""" Returns a list of images created by the specified pipeline.

        :param self:
        :param nextToken:  A token to specify where to start paginating. This is the NextToken from a previously truncated response.<br/>maxResults:  The maximum items to return in a request.<br/>filters:  The filters.<br/>imagePipelineArn:  The Amazon Resource Name (ARN) of the image pipeline whose images you want to view.<br/>
        :return: nextToken:  The next token used for paginated responses. When this is not empty, there are additional elements that the service has not included in this request. Use this token with the next request to retrieve additional objects.<br/>imageSummaryList:  The list of images built by this pipeline.<br/>requestId:  The request ID that uniquely identifies this request.<br/>        """
        pass

    def list_image_pipelines(self, filters: List[Filter]=None, maxResults: int=None, nextToken: str=None) -> ListImagePipelinesResponse:
        r"""Returns a list of image pipelines.

        :param self:
        :param nextToken:  A token to specify where to start paginating. This is the NextToken from a previously truncated response.<br/>maxResults:  The maximum items to return in a request.<br/>filters:  The filters.<br/>
        :return: nextToken:  The next token used for paginated responses. When this is not empty, there are additional elements that the service has not included in this request. Use this token with the next request to retrieve additional objects.<br/>imagePipelineList:  The list of image pipelines.<br/>requestId:  The request ID that uniquely identifies this request.<br/>        """
        pass

    def list_image_recipes(self, owner: str=None, filters: List[Filter]=None, maxResults: int=None, nextToken: str=None) -> ListImageRecipesResponse:
        r""" Returns a list of image recipes.

        :param self:
        :param nextToken:  A token to specify where to start paginating. This is the NextToken from a previously truncated response.<br/>maxResults:  The maximum items to return in a request.<br/>filters:  The filters.<br/>owner:  The owner defines which image recipes you want to list. By default, this request will only show image recipes owned by your account. You can use this field to specify if you want to view image recipes owned by yourself, by Amazon, or those image recipes that have been shared with you by other customers.<br/>
        :return: nextToken:  The next token used for paginated responses. When this is not empty, there are additional elements that the service has not included in this request. Use this token with the next request to retrieve additional objects.<br/>imageRecipeSummaryList:  The list of image pipelines.<br/>requestId:  The request ID that uniquely identifies this request.<br/>        """
        pass

    def list_images(self, owner: str=None, filters: List[Filter]=None, byName: Boolean=None, maxResults: int=None, nextToken: str=None, includeDeprecated: NullableBoolean=None) -> ListImagesResponse:
        r""" Returns the list of images that you have access to.

        :param self:
        :param includeDeprecated:  Includes deprecated images in the response list.<br/>nextToken:  A token to specify where to start paginating. This is the NextToken from a previously truncated response.<br/>maxResults:  The maximum items to return in a request.<br/>byName:  Requests a list of images with a specific recipe name.<br/>filters:  The filters.<br/>owner:  The owner defines which images you want to list. By default, this request will only show images owned by your account. You can use this field to specify if you want to view images owned by yourself, by Amazon, or those images that have been shared with you by other customers.<br/>
        :return: nextToken:  The next token used for paginated responses. When this is not empty, there are additional elements that the service has not included in this request. Use this token with the next request to retrieve additional objects.<br/>imageVersionList:  The list of image semantic versions.<br/>requestId:  The request ID that uniquely identifies this request.<br/>        """
        pass

    def list_infrastructure_configurations(self, filters: List[Filter]=None, maxResults: int=None, nextToken: str=None) -> ListInfrastructureConfigurationsResponse:
        r""" Returns a list of infrastructure configurations.

        :param self:
        :param nextToken:  A token to specify where to start paginating. This is the NextToken from a previously truncated response.<br/>maxResults:  The maximum items to return in a request.<br/>filters:  The filters.<br/>
        :return: nextToken:  The next token used for paginated responses. When this is not empty, there are additional elements that the service has not included in this request. Use this token with the next request to retrieve additional objects.<br/>infrastructureConfigurationSummaryList:  The list of infrastructure configurations.<br/>requestId:  The request ID that uniquely identifies this request.<br/>        """
        pass

    def list_tags_for_resource(self, resourceArn: str) -> ListTagsForResourceResponse:
        r""" Returns the list of tags for the specified resource.

        :param self:
        :param resourceArn:  The Amazon Resource Name (ARN) of the resource whose tags you want to retrieve.<br/>
        :return: tags:  The tags for the specified resource.<br/>        """
        pass

    def put_component_policy(self, policy: str, componentArn: str) -> PutComponentPolicyResponse:
        r""" Applies a policy to a component. We recommend that you call the RAM API <a href="https://docs.aws.amazon.com/ram/latest/APIReference/API_CreateResourceShare.html">CreateResourceShare</a> to share resources. If you call the Image Builder API <code>PutComponentPolicy</code>, you must also call the RAM API <a href="https://docs.aws.amazon.com/ram/latest/APIReference/API_PromoteResourceShareCreatedFromPolicy.html">PromoteResourceShareCreatedFromPolicy</a> in order for the resource to be visible to all principals with whom the resource is shared.

        :param self:
        :param policy:  The policy to apply.<br/>componentArn:  The Amazon Resource Name (ARN) of the component that this policy should be applied to.<br/>
        :return: componentArn:  The Amazon Resource Name (ARN) of the component that this policy was applied to.<br/>requestId:  The request ID that uniquely identifies this request.<br/>        """
        pass

    def put_container_recipe_policy(self, policy: str, containerRecipeArn: str) -> PutContainerRecipePolicyResponse:
        r"""Applies a policy to a container image. We recommend that you call the RAM API CreateResourceShare (https://docs.aws.amazon.com/ram/latest/APIReference/API_CreateResourceShare.html) to share resources. If you call the Image Builder API <code>PutContainerImagePolicy</code>, you must also call the RAM API PromoteResourceShareCreatedFromPolicy (https://docs.aws.amazon.com/ram/latest/APIReference/API_PromoteResourceShareCreatedFromPolicy.html) in order for the resource to be visible to all principals with whom the resource is shared.

        :param self:
        :param policy:  The policy to apply to the container recipe.<br/>containerRecipeArn:  The Amazon Resource Name (ARN) of the container recipe that this policy should be applied to.<br/>
        :return: containerRecipeArn:  The Amazon Resource Name (ARN) of the container recipe that this policy was applied to.<br/>requestId:  The request ID that uniquely identifies this request.<br/>        """
        pass

    def put_image_policy(self, policy: str, imageArn: str) -> PutImagePolicyResponse:
        r"""Applies a policy to an image. We recommend that you call the RAM API <a href="https://docs.aws.amazon.com/ram/latest/APIReference/API_CreateResourceShare.html">CreateResourceShare</a> to share resources. If you call the Image Builder API <code>PutImagePolicy</code>, you must also call the RAM API <a href="https://docs.aws.amazon.com/ram/latest/APIReference/API_PromoteResourceShareCreatedFromPolicy.html">PromoteResourceShareCreatedFromPolicy</a> in order for the resource to be visible to all principals with whom the resource is shared.

        :param self:
        :param policy:  The policy to apply.<br/>imageArn:  The Amazon Resource Name (ARN) of the image that this policy should be applied to.<br/>
        :return: imageArn:  The Amazon Resource Name (ARN) of the image that this policy was applied to.<br/>requestId:  The request ID that uniquely identifies this request.<br/>        """
        pass

    def put_image_recipe_policy(self, policy: str, imageRecipeArn: str) -> PutImageRecipePolicyResponse:
        r""" Applies a policy to an image recipe. We recommend that you call the RAM API <a href="https://docs.aws.amazon.com/ram/latest/APIReference/API_CreateResourceShare.html">CreateResourceShare</a> to share resources. If you call the Image Builder API <code>PutImageRecipePolicy</code>, you must also call the RAM API <a href="https://docs.aws.amazon.com/ram/latest/APIReference/API_PromoteResourceShareCreatedFromPolicy.html">PromoteResourceShareCreatedFromPolicy</a> in order for the resource to be visible to all principals with whom the resource is shared.

        :param self:
        :param policy:  The policy to apply.<br/>imageRecipeArn:  The Amazon Resource Name (ARN) of the image recipe that this policy should be applied to.<br/>
        :return: imageRecipeArn:  The Amazon Resource Name (ARN) of the image recipe that this policy was applied to.<br/>requestId:  The request ID that uniquely identifies this request.<br/>        """
        pass

    def start_image_pipeline_execution(self, clientToken: str, imagePipelineArn: str) -> StartImagePipelineExecutionResponse:
        r""" Manually triggers a pipeline to create an image.

        :param self:
        :param clientToken:  The idempotency token used to make this request idempotent.<br/>imagePipelineArn:  The Amazon Resource Name (ARN) of the image pipeline that you want to manually invoke.<br/>
        :return: imageBuildVersionArn:  The Amazon Resource Name (ARN) of the image that was created by this request.<br/>clientToken:  The idempotency token used to make this request idempotent.<br/>requestId:  The request ID that uniquely identifies this request.<br/>        """
        pass

    def tag_resource(self, tags: TagMap, resourceArn: str) -> TagResourceResponse:
        r""" Adds a tag to a resource.

        :param self:
        :param tags:  The tags to apply to the resource.<br/>resourceArn:  The Amazon Resource Name (ARN) of the resource that you want to tag.<br/>
        :return:         """
        pass

    def untag_resource(self, tagKeys: List[TagKey], resourceArn: str) -> UntagResourceResponse:
        r""" Removes a tag from a resource.

        :param self:
        :param tagKeys:  The tag keys to remove from the resource.<br/>resourceArn:  The Amazon Resource Name (ARN) of the resource that you want to untag.<br/>
        :return:         """
        pass

    def update_distribution_configuration(self, clientToken: str, distributions: List[Distribution], distributionConfigurationArn: str, description: str=None) -> UpdateDistributionConfigurationResponse:
        r""" Updates a new distribution configuration. Distribution configurations define and configure the outputs of your pipeline.

        :param self:
        :param clientToken:  The idempotency token of the distribution configuration.<br/>distributions:  The distributions of the distribution configuration.<br/>description:  The description of the distribution configuration.<br/>distributionConfigurationArn:  The Amazon Resource Name (ARN) of the distribution configuration that you want to update.<br/>
        :return: distributionConfigurationArn:  The Amazon Resource Name (ARN) of the distribution configuration that was updated by this request.<br/>clientToken:  The idempotency token used to make this request idempotent.<br/>requestId:  The request ID that uniquely identifies this request.<br/>        """
        pass

    def update_image_pipeline(self, clientToken: str, infrastructureConfigurationArn: str, imagePipelineArn: str, description: str=None, imageRecipeArn: str=None, containerRecipeArn: str=None, distributionConfigurationArn: str=None, imageTestsConfiguration: ImageTestsConfiguration=None, enhancedImageMetadataEnabled: NullableBoolean=None, schedule: Schedule=None, status: str=None) -> UpdateImagePipelineResponse:
        r""" Updates an image pipeline. Image pipelines enable you to automate the creation and distribution of images. <note> UpdateImagePipeline does not support selective updates for the pipeline. You must specify all of the required properties in the update request, not just the properties that have changed. </note>

        :param self:
        :param clientToken:  The idempotency token used to make this request idempotent.<br/>status:  The status of the image pipeline.<br/>schedule:  The schedule of the image pipeline.:<br/>enhancedImageMetadataEnabled:   Collects additional information about the image being created, including the operating system (OS) version and package list. This information is used to enhance the overall experience of using EC2 Image Builder. Enabled by default.<br/>imageTestsConfiguration:  The image test configuration of the image pipeline.:<br/>distributionConfigurationArn:  The Amazon Resource Name (ARN) of the distribution configuration that will be used to configure and distribute images updated by this image pipeline.<br/>infrastructureConfigurationArn:  The Amazon Resource Name (ARN) of the infrastructure configuration that will be used to build images updated by this image pipeline.<br/>containerRecipeArn:  The Amazon Resource Name (ARN) of the container pipeline to update.<br/>imageRecipeArn:  The Amazon Resource Name (ARN) of the image recipe that will be used to configure images updated by this image pipeline.<br/>description:  The description of the image pipeline.<br/>imagePipelineArn:  The Amazon Resource Name (ARN) of the image pipeline that you want to update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>timeoutMinutes</i> The maximum time in minutes that tests are permitted to run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>imageTestsEnabled</i> Defines if tests should be executed when building this image.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>pipelineExecutionStartCondition</i> The condition configures when the pipeline should trigger a new image build. When the <code>pipelineExecutionStartCondition</code> is set to <code>EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE</code>, and you use semantic version filters on the source image or components in your image recipe, EC2 Image Builder will build a new image only when there are new versions of the image or components in your recipe that match the semantic version filter. When it is set to <code>EXPRESSION_MATCH_ONLY</code>, it will build a new image every time the CRON expression matches the current time. For semantic version syntax, see <a href="https://docs.aws.amazon.com/imagebuilder/latest/APIReference/API_CreateComponent.html">CreateComponent</a> in the <i> EC2 Image Builder API Reference</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>timezone</i> The timezone that applies to the scheduling expression. For example, "Etc/UTC", "America/Los_Angeles" in the <a href="https://www.joda.org/joda-time/timezones.html">IANA timezone format</a>. If not specified this defaults to UTC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>scheduleExpression</i> The cron expression determines how often EC2 Image Builder evaluates your <code>pipelineExecutionStartCondition</code>. For information on how to format a cron expression in Image Builder, see <a href="https://docs.aws.amazon.com/imagebuilder/latest/userguide/image-builder-cron.html">Use cron expressions in EC2 Image Builder</a>.<br/>
        :return: imagePipelineArn:  The Amazon Resource Name (ARN) of the image pipeline that was updated by this request.<br/>clientToken:  The idempotency token used to make this request idempotent.<br/>requestId:  The request ID that uniquely identifies this request.<br/>        """
        pass

    def update_infrastructure_configuration(self, clientToken: str, instanceProfileName: str, infrastructureConfigurationArn: str, description: str=None, instanceTypes: List[InstanceType]=None, securityGroupIds: List[NonEmptyString]=None, subnetId: str=None, logging: Logging=None, keyPair: str=None, terminateInstanceOnFailure: NullableBoolean=None, snsTopicArn: str=None, resourceTags: ResourceTagMap=None) -> UpdateInfrastructureConfigurationResponse:
        r""" Updates a new infrastructure configuration. An infrastructure configuration defines the environment in which your image will be built and tested.

        :param self:
        :param resourceTags:  The tags attached to the resource created by Image Builder.<br/>clientToken:  The idempotency token used to make this request idempotent.<br/>snsTopicArn:  The SNS topic on which to send image build events.<br/>terminateInstanceOnFailure:  The terminate instance on failure setting of the infrastructure configuration. Set to false if you want Image Builder to retain the instance used to configure your AMI if the build or test phase of your workflow fails.<br/>keyPair:  The key pair of the infrastructure configuration. This can be used to log on to and debug the instance used to create your image.<br/>logging:  The logging configuration of the infrastructure configuration.:<br/>subnetId:  The subnet ID to place the instance used to customize your Amazon EC2 AMI in.<br/>securityGroupIds:  The security group IDs to associate with the instance used to customize your Amazon EC2 AMI.<br/>instanceProfileName:  The instance profile to associate with the instance used to customize your Amazon EC2 AMI.<br/>instanceTypes:  The instance types of the infrastructure configuration. You can specify one or more instance types to use for this build. The service will pick one of these instance types based on availability.<br/>description:  The description of the infrastructure configuration.<br/>infrastructureConfigurationArn:  The Amazon Resource Name (ARN) of the infrastructure configuration that you want to update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>s3Logs</i> The Amazon S3 logging configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>s3Logs</b>: The Amazon S3 logging configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>s3KeyPrefix</i> The Amazon S3 path in which to store the logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>s3BucketName</i> The Amazon S3 bucket in which to store the logs.<br/>
        :return: infrastructureConfigurationArn:  The Amazon Resource Name (ARN) of the infrastructure configuration that was updated by this request.<br/>clientToken:  The idempotency token used to make this request idempotent.<br/>requestId:  The request ID that uniquely identifies this request.<br/>        """
        pass





class ImportExport(BaseClient):
    r"""<fullname>AWS Import/Export Service</fullname> AWS Import/Export accelerates transferring large amounts of data between the AWS cloud and portable storage devices that you mail to us. AWS Import/Export transfers data directly onto and off of your storage devices using Amazon's high-speed internal network and bypassing the Internet. For large data sets, AWS Import/Export is often faster than Internet transfer and more cost effective than upgrading your connectivity."""


    class ListJobsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_jobs` for valid parameters"""
            pass


    class CancelJobInput(Mapping):
        pass
    
    class CancelJobOutput(Mapping):
        pass
    
    class CreateJobInput(Mapping):
        pass
    
    class CreateJobOutput(Mapping):
        pass
    
    class ValidateOnly(object):
        pass
    
    class GetShippingLabelInput(Mapping):
        pass
    
    class GetShippingLabelOutput(Mapping):
        pass
    
    class GenericString(object):
        pass
    
    class GetStatusInput(Mapping):
        pass
    
    class GetStatusOutput(Mapping):
        pass
    
    class ListJobsInput(Mapping):
        pass
    
    class ListJobsOutput(Mapping):
        pass
    
    class UpdateJobInput(Mapping):
        pass
    
    class UpdateJobOutput(Mapping):
        pass
    
    def cancel_job(self, JobId: str, APIVersion: str=None) -> CancelJobOutput:
        r"""This operation cancels a specified job. Only the job owner can cancel it. The operation fails if the job has already started or is complete.

        :param self:
        :param APIVersion:  Specifies the version of the client tool.<br/>JobId:  A unique identifier which refers to a particular job.<br/>
        :return: Success:  Specifies whether (true) or not (false) AWS Import/Export updated your job.<br/>        """
        pass

    def create_job(self, ValidateOnly: ValidateOnly, Manifest: str, JobType: str, ManifestAddendum: str=None, APIVersion: str=None) -> CreateJobOutput:
        r"""This operation initiates the process of scheduling an upload or download of your data. You include in the request a manifest that describes the data transfer specifics. The response to the request includes a job ID, which you can use in other operations, a signature that you use to identify your storage device, and the address where you should ship your storage device.

        :param self:
        :param APIVersion:  Specifies the version of the client tool.<br/>ValidateOnly:  Validate the manifest and parameter values in the request but do not actually create a job.<br/>ManifestAddendum:  For internal use only.<br/>Manifest:  The UTF-8 encoded text of the manifest file.<br/>JobType:  Specifies whether the job to initiate is an import or export job.<br/>
        :return: ArtifactList:  A collection of artifacts.<br/>WarningMessage:  An optional message notifying you of non-fatal issues with the job, such as use of an incompatible Amazon S3 bucket name.<br/>SignatureFileContents:  The actual text of the SIGNATURE file to be written to disk.<br/>Signature:  An encrypted code used to authenticate the request and response, for example, "DV+TpDfx1/TdSE9ktyK9k/bDTVI=". Only use this value is you want to create the signature file yourself. Generally you should use the SignatureFileContents value.<br/>JobType:  Specifies whether the job to initiate is an import or export job.<br/>JobId:  A unique identifier which refers to a particular job.<br/>        """
        pass

    def get_shipping_label(self, jobIds: List[GenericString], name: str=None, company: str=None, phoneNumber: str=None, country: str=None, stateOrProvince: str=None, city: str=None, postalCode: str=None, street1: str=None, street2: str=None, street3: str=None, APIVersion: str=None) -> GetShippingLabelOutput:
        r"""This operation generates a pre-paid UPS shipping label that you will use to ship your device to AWS for processing.

        :param self:
        :param APIVersion:  Specifies the version of the client tool.<br/>street3:  Specifies the optional third part of the street address for the return address, for example c/o Jane Doe.<br/>street2:  Specifies the optional second part of the street address for the return address, for example Suite 100.<br/>street1:  Specifies the first part of the street address for the return address, for example 1234 Main Street.<br/>postalCode:  Specifies the postal code for the return address.<br/>city:  Specifies the name of your city for the return address.<br/>stateOrProvince:  Specifies the name of your state or your province for the return address.<br/>country:  Specifies the name of your country for the return address.<br/>phoneNumber:  Specifies the phone number of the person responsible for shipping this package.<br/>company:  Specifies the name of the company that will ship this package.<br/>name:  Specifies the name of the person responsible for shipping this package.<br/>jobIds:  <br/>
        :return: Warning:  <br/>ShippingLabelURL:  <br/>        """
        pass

    def get_status(self, JobId: str, APIVersion: str=None) -> GetStatusOutput:
        r"""This operation returns information about a job, including where the job is in the processing pipeline, the status of the results, and the signature value associated with the job. You can only return information about jobs you own.

        :param self:
        :param APIVersion:  Specifies the version of the client tool.<br/>JobId:  A unique identifier which refers to a particular job.<br/>
        :return: ArtifactList:  A collection of artifacts.<br/>CreationDate:  Timestamp of the CreateJob request in ISO8601 date format. For example "2010-03-28T20:27:35Z".<br/>CurrentManifest:  The last manifest submitted, which will be used to process the job.<br/>SignatureFileContents:  An encrypted code used to authenticate the request and response, for example, "DV+TpDfx1/TdSE9ktyK9k/bDTVI=". Only use this value is you want to create the signature file yourself. Generally you should use the SignatureFileContents value.<br/>Signature:  An encrypted code used to authenticate the request and response, for example, "DV+TpDfx1/TdSE9ktyK9k/bDTVI=". Only use this value is you want to create the signature file yourself. Generally you should use the SignatureFileContents value.<br/>ErrorCount:  Number of errors. We return this value when the ProgressCode is Success or SuccessWithErrors.<br/>LogKey:  The key where the user logs were stored.<br/>LogBucket:  Amazon S3 bucket for user logs.<br/>TrackingNumber:  The shipping tracking number assigned by AWS Import/Export to the storage device when it's returned to you. We return this value when the LocationCode is "Returned".<br/>Carrier:  Name of the shipping company. This value is included when the LocationCode is "Returned".<br/>ProgressMessage:  A more human readable form of the job status.<br/>ProgressCode:  A token representing the state of the job, such as "Started".<br/>LocationMessage:  A more human readable form of the physical location of the storage device.<br/>LocationCode:  A token representing the location of the storage device, such as "AtAWS".<br/>JobType:  Specifies whether the job to initiate is an import or export job.<br/>JobId:  A unique identifier which refers to a particular job.<br/>        """
        pass

    def list_jobs(self, MaxJobs: int=None, Marker: str=None, APIVersion: str=None) -> ListJobsOutput:
        r"""This operation returns the jobs associated with the requester. AWS Import/Export lists the jobs in reverse chronological order based on the date of creation. For example if Job Test1 was created 2009Dec30 and Test2 was created 2010Feb05, the ListJobs operation would return Test2 followed by Test1.

        :param self:
        :param APIVersion:  Specifies the version of the client tool.<br/>Marker:  Specifies the JOBID to start after when listing the jobs created with your account. AWS Import/Export lists your jobs in reverse chronological order. See MaxJobs.<br/>MaxJobs:  Sets the maximum number of jobs returned in the response. If there are additional jobs that were not returned because MaxJobs was exceeded, the response contains &lt;IsTruncated&gt;true&lt;/IsTruncated&gt;. To return the additional jobs, see Marker.<br/>
        :return: IsTruncated:  Indicates whether the list of jobs was truncated. If true, then call ListJobs again using the last JobId element as the marker.<br/>Jobs:  A list container for Jobs returned by the ListJobs operation.<br/>        """
        pass

    def update_job(self, ValidateOnly: ValidateOnly, JobType: str, Manifest: str, JobId: str, APIVersion: str=None) -> UpdateJobOutput:
        r"""You use this operation to change the parameters specified in the original manifest file by supplying a new manifest file. The manifest file attached to this request replaces the original manifest file. You can only use the operation after a CreateJob request but before the data transfer starts and you can only use it on jobs you own.

        :param self:
        :param APIVersion:  Specifies the version of the client tool.<br/>ValidateOnly:  Validate the manifest and parameter values in the request but do not actually create a job.<br/>JobType:  Specifies whether the job to initiate is an import or export job.<br/>Manifest:  The UTF-8 encoded text of the manifest file.<br/>JobId:  A unique identifier which refers to a particular job.<br/>
        :return: ArtifactList:  A collection of artifacts.<br/>WarningMessage:  An optional message notifying you of non-fatal issues with the job, such as use of an incompatible Amazon S3 bucket name.<br/>Success:  Specifies whether (true) or not (false) AWS Import/Export updated your job.<br/>        """
        pass





class Inspector(BaseClient):
    r"""<fullname>Amazon Inspector</fullname> Amazon Inspector enables you to analyze the behavior of your AWS resources and to identify potential security issues. For more information, see <a href="https://docs.aws.amazon.com/inspector/latest/userguide/inspector_introduction.html"> Amazon Inspector User Guide</a>."""


    class ListFindingsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_findings` for valid parameters"""
            pass
    class ListAssessmentTemplatesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_assessment_templates` for valid parameters"""
            pass
    class PreviewAgentsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `preview_agents` for valid parameters"""
            pass
    class ListEventSubscriptionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_event_subscriptions` for valid parameters"""
            pass
    class ListRulesPackagesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_rules_packages` for valid parameters"""
            pass
    class ListAssessmentRunAgentsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_assessment_run_agents` for valid parameters"""
            pass
    class ListAssessmentRunsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_assessment_runs` for valid parameters"""
            pass
    class ListAssessmentTargetsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_assessment_targets` for valid parameters"""
            pass
    class ListExclusionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_exclusions` for valid parameters"""
            pass


    class AddAttributesToFindingsRequest(Mapping):
        pass
    
    class AddAttributesToFindingsResponse(Mapping):
        pass
    
    class Arn(object):
        pass
    
    class Attribute(Mapping):
        pass
    
    class CreateAssessmentTargetRequest(Mapping):
        pass
    
    class CreateAssessmentTargetResponse(Mapping):
        pass
    
    class CreateAssessmentTemplateRequest(Mapping):
        pass
    
    class CreateAssessmentTemplateResponse(Mapping):
        pass
    
    class CreateExclusionsPreviewRequest(Mapping):
        pass
    
    class CreateExclusionsPreviewResponse(Mapping):
        pass
    
    class CreateResourceGroupRequest(Mapping):
        pass
    
    class CreateResourceGroupResponse(Mapping):
        pass
    
    class ResourceGroupTag(Mapping):
        pass
    
    class DeleteAssessmentRunRequest(Mapping):
        pass
    
    class DeleteAssessmentTargetRequest(Mapping):
        pass
    
    class DeleteAssessmentTemplateRequest(Mapping):
        pass
    
    class DescribeAssessmentRunsRequest(Mapping):
        pass
    
    class DescribeAssessmentRunsResponse(Mapping):
        pass
    
    class DescribeAssessmentTargetsRequest(Mapping):
        pass
    
    class DescribeAssessmentTargetsResponse(Mapping):
        pass
    
    class DescribeAssessmentTemplatesRequest(Mapping):
        pass
    
    class DescribeAssessmentTemplatesResponse(Mapping):
        pass
    
    class DescribeCrossAccountAccessRoleResponse(Mapping):
        pass
    
    class DescribeExclusionsRequest(Mapping):
        pass
    
    class DescribeExclusionsResponse(Mapping):
        pass
    
    class DescribeFindingsRequest(Mapping):
        pass
    
    class DescribeFindingsResponse(Mapping):
        pass
    
    class DescribeResourceGroupsRequest(Mapping):
        pass
    
    class DescribeResourceGroupsResponse(Mapping):
        pass
    
    class DescribeRulesPackagesRequest(Mapping):
        pass
    
    class DescribeRulesPackagesResponse(Mapping):
        pass
    
    class GetAssessmentReportRequest(Mapping):
        pass
    
    class GetAssessmentReportResponse(Mapping):
        pass
    
    class GetExclusionsPreviewRequest(Mapping):
        pass
    
    class GetExclusionsPreviewResponse(Mapping):
        pass
    
    class GetTelemetryMetadataRequest(Mapping):
        pass
    
    class GetTelemetryMetadataResponse(Mapping):
        pass
    
    class ListAssessmentRunAgentsRequest(Mapping):
        pass
    
    class ListAssessmentRunAgentsResponse(Mapping):
        pass
    
    class AgentFilter(Mapping):
        pass
    
    class ListAssessmentRunsRequest(Mapping):
        pass
    
    class ListAssessmentRunsResponse(Mapping):
        pass
    
    class AssessmentRunFilter(Mapping):
        pass
    
    class ListAssessmentTargetsRequest(Mapping):
        pass
    
    class ListAssessmentTargetsResponse(Mapping):
        pass
    
    class AssessmentTargetFilter(Mapping):
        pass
    
    class ListAssessmentTemplatesRequest(Mapping):
        pass
    
    class ListAssessmentTemplatesResponse(Mapping):
        pass
    
    class AssessmentTemplateFilter(Mapping):
        pass
    
    class ListEventSubscriptionsRequest(Mapping):
        pass
    
    class ListEventSubscriptionsResponse(Mapping):
        pass
    
    class ListExclusionsRequest(Mapping):
        pass
    
    class ListExclusionsResponse(Mapping):
        pass
    
    class ListFindingsRequest(Mapping):
        pass
    
    class ListFindingsResponse(Mapping):
        pass
    
    class FindingFilter(Mapping):
        pass
    
    class ListRulesPackagesRequest(Mapping):
        pass
    
    class ListRulesPackagesResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class PreviewAgentsRequest(Mapping):
        pass
    
    class PreviewAgentsResponse(Mapping):
        pass
    
    class RegisterCrossAccountAccessRoleRequest(Mapping):
        pass
    
    class RemoveAttributesFromFindingsRequest(Mapping):
        pass
    
    class RemoveAttributesFromFindingsResponse(Mapping):
        pass
    
    class AttributeKey(object):
        pass
    
    class SetTagsForResourceRequest(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class StartAssessmentRunRequest(Mapping):
        pass
    
    class StartAssessmentRunResponse(Mapping):
        pass
    
    class StopAssessmentRunRequest(Mapping):
        pass
    
    class SubscribeToEventRequest(Mapping):
        pass
    
    class UnsubscribeFromEventRequest(Mapping):
        pass
    
    class UpdateAssessmentTargetRequest(Mapping):
        pass
    
    def add_attributes_to_findings(self, attributes: List[Attribute], findingArns: List[Arn]) -> AddAttributesToFindingsResponse:
        r"""Assigns attributes (key and value pairs) to the findings that are specified by the ARNs of the findings.

        :param self:
        :param attributes:  The array of attributes that you want to assign to specified findings.<br/>findingArns:  The ARNs that specify the findings that you want to assign attributes to.<br/>
        :return: failedItems:  Attribute details that cannot be described. An error code is provided for each failed item.<br/>        """
        pass

    def create_assessment_target(self, assessmentTargetName: str, resourceGroupArn: str=None) -> CreateAssessmentTargetResponse:
        r"""Creates a new assessment target using the ARN of the resource group that is generated by <a>CreateResourceGroup</a>. If resourceGroupArn is not specified, all EC2 instances in the current AWS account and region are included in the assessment target. If the <a href="https://docs.aws.amazon.com/inspector/latest/userguide/inspector_slr.html">service-linked role</a> isn’t already registered, this action also creates and registers a service-linked role to grant Amazon Inspector access to AWS Services needed to perform security assessments. You can create up to 50 assessment targets per AWS account. You can run up to 500 concurrent agents per AWS account. For more information, see <a href="https://docs.aws.amazon.com/inspector/latest/userguide/inspector_applications.html"> Amazon Inspector Assessment Targets</a>.

        :param self:
        :param resourceGroupArn:  The ARN that specifies the resource group that is used to create the assessment target. If resourceGroupArn is not specified, all EC2 instances in the current AWS account and region are included in the assessment target.<br/>assessmentTargetName:  The user-defined name that identifies the assessment target that you want to create. The name must be unique within the AWS account.<br/>
        :return: assessmentTargetArn:  The ARN that specifies the assessment target that is created.<br/>        """
        pass

    def create_assessment_template(self, rulesPackageArns: List[Arn], durationInSeconds: int, assessmentTemplateName: str, assessmentTargetArn: str, userAttributesForFindings: List[Attribute]=None) -> CreateAssessmentTemplateResponse:
        r"""Creates an assessment template for the assessment target that is specified by the ARN of the assessment target. If the <a href="https://docs.aws.amazon.com/inspector/latest/userguide/inspector_slr.html">service-linked role</a> isn’t already registered, this action also creates and registers a service-linked role to grant Amazon Inspector access to AWS Services needed to perform security assessments.

        :param self:
        :param userAttributesForFindings:  The user-defined attributes that are assigned to every finding that is generated by the assessment run that uses this assessment template. An attribute is a key and value pair (an <a>Attribute</a> object). Within an assessment template, each key must be unique.<br/>rulesPackageArns:  The ARNs that specify the rules packages that you want to attach to the assessment template.<br/>durationInSeconds:  The duration of the assessment run in seconds.<br/>assessmentTemplateName:  The user-defined name that identifies the assessment template that you want to create. You can create several assessment templates for an assessment target. The names of the assessment templates that correspond to a particular assessment target must be unique.<br/>assessmentTargetArn:  The ARN that specifies the assessment target for which you want to create the assessment template.<br/>
        :return: assessmentTemplateArn:  The ARN that specifies the assessment template that is created.<br/>        """
        pass

    def create_exclusions_preview(self, assessmentTemplateArn: str) -> CreateExclusionsPreviewResponse:
        r"""Starts the generation of an exclusions preview for the specified assessment template. The exclusions preview lists the potential exclusions (ExclusionPreview) that Inspector can detect before it runs the assessment. 

        :param self:
        :param assessmentTemplateArn:  The ARN that specifies the assessment template for which you want to create an exclusions preview.<br/>
        :return: previewToken:  Specifies the unique identifier of the requested exclusions preview. You can use the unique identifier to retrieve the exclusions preview when running the GetExclusionsPreview API.<br/>        """
        pass

    def create_resource_group(self, resourceGroupTags: List[ResourceGroupTag]) -> CreateResourceGroupResponse:
        r"""Creates a resource group using the specified set of tags (key and value pairs) that are used to select the EC2 instances to be included in an Amazon Inspector assessment target. The created resource group is then used to create an Amazon Inspector assessment target. For more information, see <a>CreateAssessmentTarget</a>.

        :param self:
        :param resourceGroupTags:  A collection of keys and an array of possible values, '[{"key":"key1","values":["Value1","Value2"]},{"key":"Key2","values":["Value3"]}]'. For example,'[{"key":"Name","values":["TestEC2Instance"]}]'.<br/>
        :return: resourceGroupArn:  The ARN that specifies the resource group that is created.<br/>        """
        pass

    def delete_assessment_run(self, assessmentRunArn: str):
        r"""Deletes the assessment run that is specified by the ARN of the assessment run.

        :param self:
        :param assessmentRunArn:  The ARN that specifies the assessment run that you want to delete.<br/>
        :return:         """
        pass

    def delete_assessment_target(self, assessmentTargetArn: str):
        r"""Deletes the assessment target that is specified by the ARN of the assessment target.

        :param self:
        :param assessmentTargetArn:  The ARN that specifies the assessment target that you want to delete.<br/>
        :return:         """
        pass

    def delete_assessment_template(self, assessmentTemplateArn: str):
        r"""Deletes the assessment template that is specified by the ARN of the assessment template.

        :param self:
        :param assessmentTemplateArn:  The ARN that specifies the assessment template that you want to delete.<br/>
        :return:         """
        pass

    def describe_assessment_runs(self, assessmentRunArns: List[Arn]) -> DescribeAssessmentRunsResponse:
        r"""Describes the assessment runs that are specified by the ARNs of the assessment runs.

        :param self:
        :param assessmentRunArns:  The ARN that specifies the assessment run that you want to describe.<br/>
        :return: failedItems:  Assessment run details that cannot be described. An error code is provided for each failed item.<br/>assessmentRuns:  Information about the assessment run.<br/>        """
        pass

    def describe_assessment_targets(self, assessmentTargetArns: List[Arn]) -> DescribeAssessmentTargetsResponse:
        r"""Describes the assessment targets that are specified by the ARNs of the assessment targets.

        :param self:
        :param assessmentTargetArns:  The ARNs that specifies the assessment targets that you want to describe.<br/>
        :return: failedItems:  Assessment target details that cannot be described. An error code is provided for each failed item.<br/>assessmentTargets:  Information about the assessment targets.<br/>        """
        pass

    def describe_assessment_templates(self, assessmentTemplateArns: List[Arn]) -> DescribeAssessmentTemplatesResponse:
        r"""Describes the assessment templates that are specified by the ARNs of the assessment templates.

        :param self:
        :param assessmentTemplateArns:  <br/>
        :return: failedItems:  Assessment template details that cannot be described. An error code is provided for each failed item.<br/>assessmentTemplates:  Information about the assessment templates.<br/>        """
        pass

    def describe_cross_account_access_role(self) -> DescribeCrossAccountAccessRoleResponse:
        r"""Describes the IAM role that enables Amazon Inspector to access your AWS account.

        :param self:
        :param 
        :return: registeredAt:  The date when the cross-account access role was registered.<br/>valid:  A Boolean value that specifies whether the IAM role has the necessary policies attached to enable Amazon Inspector to access your AWS account.<br/>roleArn:  The ARN that specifies the IAM role that Amazon Inspector uses to access your AWS account.<br/>        """
        pass

    def describe_exclusions(self, exclusionArns: List[Arn], locale: str=None) -> DescribeExclusionsResponse:
        r"""Describes the exclusions that are specified by the exclusions' ARNs.

        :param self:
        :param locale:  The locale into which you want to translate the exclusion's title, description, and recommendation.<br/>exclusionArns:  The list of ARNs that specify the exclusions that you want to describe.<br/>
        :return: failedItems:  Exclusion details that cannot be described. An error code is provided for each failed item.<br/>exclusions:  Information about the exclusions.<br/>        """
        pass

    def describe_findings(self, findingArns: List[Arn], locale: str=None) -> DescribeFindingsResponse:
        r"""Describes the findings that are specified by the ARNs of the findings.

        :param self:
        :param locale:  The locale into which you want to translate a finding description, recommendation, and the short description that identifies the finding.<br/>findingArns:  The ARN that specifies the finding that you want to describe.<br/>
        :return: failedItems:  Finding details that cannot be described. An error code is provided for each failed item.<br/>findings:  Information about the finding.<br/>        """
        pass

    def describe_resource_groups(self, resourceGroupArns: List[Arn]) -> DescribeResourceGroupsResponse:
        r"""Describes the resource groups that are specified by the ARNs of the resource groups.

        :param self:
        :param resourceGroupArns:  The ARN that specifies the resource group that you want to describe.<br/>
        :return: failedItems:  Resource group details that cannot be described. An error code is provided for each failed item.<br/>resourceGroups:  Information about a resource group.<br/>        """
        pass

    def describe_rules_packages(self, rulesPackageArns: List[Arn], locale: str=None) -> DescribeRulesPackagesResponse:
        r"""Describes the rules packages that are specified by the ARNs of the rules packages.

        :param self:
        :param locale:  The locale that you want to translate a rules package description into.<br/>rulesPackageArns:  The ARN that specifies the rules package that you want to describe.<br/>
        :return: failedItems:  Rules package details that cannot be described. An error code is provided for each failed item.<br/>rulesPackages:  Information about the rules package.<br/>        """
        pass

    def get_assessment_report(self, reportType: str, reportFileFormat: str, assessmentRunArn: str) -> GetAssessmentReportResponse:
        r"""Produces an assessment report that includes detailed and comprehensive results of a specified assessment run. 

        :param self:
        :param reportType:  Specifies the type of the assessment report that you want to generate. There are two types of assessment reports: a finding report and a full report. For more information, see <a href="https://docs.aws.amazon.com/inspector/latest/userguide/inspector_reports.html">Assessment Reports</a>. <br/>reportFileFormat:  Specifies the file format (html or pdf) of the assessment report that you want to generate.<br/>assessmentRunArn:  The ARN that specifies the assessment run for which you want to generate a report.<br/>
        :return: url:  Specifies the URL where you can find the generated assessment report. This parameter is only returned if the report is successfully generated.<br/>status:  Specifies the status of the request to generate an assessment report. <br/>        """
        pass

    def get_exclusions_preview(self, previewToken: str, assessmentTemplateArn: str, nextToken: str=None, maxResults: int=None, locale: str=None) -> GetExclusionsPreviewResponse:
        r"""Retrieves the exclusions preview (a list of ExclusionPreview objects) specified by the preview token. You can obtain the preview token by running the CreateExclusionsPreview API.

        :param self:
        :param locale:  The locale into which you want to translate the exclusion's title, description, and recommendation.<br/>maxResults:  You can use this parameter to indicate the maximum number of items you want in the response. The default value is 100. The maximum value is 500.<br/>nextToken:  You can use this parameter when paginating results. Set the value of this parameter to null on your first call to the GetExclusionsPreviewRequest action. Subsequent calls to the action fill nextToken in the request with the value of nextToken from the previous response to continue listing data.<br/>previewToken:  The unique identifier associated of the exclusions preview.<br/>assessmentTemplateArn:  The ARN that specifies the assessment template for which the exclusions preview was requested.<br/>
        :return: nextToken:  When a response is generated, if there is more data to be listed, this parameters is present in the response and contains the value to use for the nextToken parameter in a subsequent pagination request. If there is no more data to be listed, this parameter is set to null.<br/>exclusionPreviews:  Information about the exclusions included in the preview.<br/>previewStatus:  Specifies the status of the request to generate an exclusions preview.<br/>        """
        pass

    def get_telemetry_metadata(self, assessmentRunArn: str) -> GetTelemetryMetadataResponse:
        r"""Information about the data that is collected for the specified assessment run.

        :param self:
        :param assessmentRunArn:  The ARN that specifies the assessment run that has the telemetry data that you want to obtain.<br/>
        :return: telemetryMetadata:  Telemetry details.<br/>        """
        pass

    def list_assessment_run_agents(self, assessmentRunArn: str, filter: AgentFilter=None, nextToken: str=None, maxResults: int=None) -> ListAssessmentRunAgentsResponse:
        r"""Lists the agents of the assessment runs that are specified by the ARNs of the assessment runs.

        :param self:
        :param maxResults:  You can use this parameter to indicate the maximum number of items that you want in the response. The default value is 10. The maximum value is 500.<br/>nextToken:  You can use this parameter when paginating results. Set the value of this parameter to null on your first call to the <b>ListAssessmentRunAgents</b> action. Subsequent calls to the action fill <b>nextToken</b> in the request with the value of <b>NextToken</b> from the previous response to continue listing data.<br/>filter:  You can use this parameter to specify a subset of data to be included in the action's response. For a record to match a filter, all specified filter attributes must match. When multiple values are specified for a filter attribute, any of the values can match.:<br/>assessmentRunArn:  The ARN that specifies the assessment run whose agents you want to list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>agentHealthCodes</i> The detailed health state of the agent. Values can be set to <b>IDLE</b>, <b>RUNNING</b>, <b>SHUTDOWN</b>, <b>UNHEALTHY</b>, <b>THROTTLED</b>, and <b>UNKNOWN</b>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>agentHealths</i> The current health state of the agent. Values can be set to <b>HEALTHY</b> or <b>UNHEALTHY</b>.<br/>
        :return: nextToken:   When a response is generated, if there is more data to be listed, this parameter is present in the response and contains the value to use for the <b>nextToken</b> parameter in a subsequent pagination request. If there is no more data to be listed, this parameter is set to null.<br/>assessmentRunAgents:  A list of ARNs that specifies the agents returned by the action.<br/>        """
        pass

    def list_assessment_runs(self, assessmentTemplateArns: List[Arn]=None, filter: AssessmentRunFilter=None, nextToken: str=None, maxResults: int=None) -> ListAssessmentRunsResponse:
        r"""Lists the assessment runs that correspond to the assessment templates that are specified by the ARNs of the assessment templates.

        :param self:
        :param maxResults:  You can use this parameter to indicate the maximum number of items that you want in the response. The default value is 10. The maximum value is 500.<br/>nextToken:  You can use this parameter when paginating results. Set the value of this parameter to null on your first call to the <b>ListAssessmentRuns</b> action. Subsequent calls to the action fill <b>nextToken</b> in the request with the value of <b>NextToken</b> from the previous response to continue listing data.<br/>filter:  You can use this parameter to specify a subset of data to be included in the action's response. For a record to match a filter, all specified filter attributes must match. When multiple values are specified for a filter attribute, any of the values can match.:<br/>assessmentTemplateArns:  The ARNs that specify the assessment templates whose assessment runs you want to list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>stateChangeTimeRange</i> For a record to match a filter, the value that is specified for this data type property must match the <b>stateChangedAt</b> property of the <a>AssessmentRun</a> data type.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>stateChangeTimeRange</b>: For a record to match a filter, the value that is specified for this data type property must match the <b>stateChangedAt</b> property of the <a>AssessmentRun</a> data type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>completionTimeRange</i> For a record to match a filter, the value that is specified for this data type property must inclusively match any value between the specified minimum and maximum values of the <b>completedAt</b> property of the <a>AssessmentRun</a> data type.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>completionTimeRange</b>: For a record to match a filter, the value that is specified for this data type property must inclusively match any value between the specified minimum and maximum values of the <b>completedAt</b> property of the <a>AssessmentRun</a> data type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>startTimeRange</i> For a record to match a filter, the value that is specified for this data type property must inclusively match any value between the specified minimum and maximum values of the <b>startTime</b> property of the <a>AssessmentRun</a> data type.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>startTimeRange</b>: For a record to match a filter, the value that is specified for this data type property must inclusively match any value between the specified minimum and maximum values of the <b>startTime</b> property of the <a>AssessmentRun</a> data type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>rulesPackageArns</i> For a record to match a filter, the value that is specified for this data type property must be contained in the list of values of the <b>rulesPackages</b> property of the <a>AssessmentRun</a> data type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>durationRange</i> For a record to match a filter, the value that is specified for this data type property must inclusively match any value between the specified minimum and maximum values of the <b>durationInSeconds</b> property of the <a>AssessmentRun</a> data type.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>durationRange</b>: For a record to match a filter, the value that is specified for this data type property must inclusively match any value between the specified minimum and maximum values of the <b>durationInSeconds</b> property of the <a>AssessmentRun</a> data type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>states</i> For a record to match a filter, one of the values specified for this data type property must be the exact match of the value of the <b>assessmentRunState</b> property of the <a>AssessmentRun</a> data type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>namePattern</i> For a record to match a filter, an explicit value or a string containing a wildcard that is specified for this data type property must match the value of the <b>assessmentRunName</b> property of the <a>AssessmentRun</a> data type.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>maxSeconds</i> The maximum value of the duration range. Must be less than or equal to 604800 seconds (1 week).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>minSeconds</i> The minimum value of the duration range. Must be greater than zero.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>endDate</i> The maximum value of the timestamp range.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>beginDate</i> The minimum value of the timestamp range.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>endDate</i> The maximum value of the timestamp range.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>beginDate</i> The minimum value of the timestamp range.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>endDate</i> The maximum value of the timestamp range.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>beginDate</i> The minimum value of the timestamp range.<br/>
        :return: nextToken:   When a response is generated, if there is more data to be listed, this parameter is present in the response and contains the value to use for the <b>nextToken</b> parameter in a subsequent pagination request. If there is no more data to be listed, this parameter is set to null.<br/>assessmentRunArns:  A list of ARNs that specifies the assessment runs that are returned by the action.<br/>        """
        pass

    def list_assessment_targets(self, filter: AssessmentTargetFilter=None, nextToken: str=None, maxResults: int=None) -> ListAssessmentTargetsResponse:
        r"""Lists the ARNs of the assessment targets within this AWS account. For more information about assessment targets, see <a href="https://docs.aws.amazon.com/inspector/latest/userguide/inspector_applications.html">Amazon Inspector Assessment Targets</a>.

        :param self:
        :param maxResults:  You can use this parameter to indicate the maximum number of items you want in the response. The default value is 10. The maximum value is 500.<br/>nextToken:  You can use this parameter when paginating results. Set the value of this parameter to null on your first call to the <b>ListAssessmentTargets</b> action. Subsequent calls to the action fill <b>nextToken</b> in the request with the value of <b>NextToken</b> from the previous response to continue listing data.<br/>filter:  You can use this parameter to specify a subset of data to be included in the action's response. For a record to match a filter, all specified filter attributes must match. When multiple values are specified for a filter attribute, any of the values can match.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>assessmentTargetNamePattern</i> For a record to match a filter, an explicit value or a string that contains a wildcard that is specified for this data type property must match the value of the <b>assessmentTargetName</b> property of the <a>AssessmentTarget</a> data type.<br/>
        :return: nextToken:   When a response is generated, if there is more data to be listed, this parameter is present in the response and contains the value to use for the <b>nextToken</b> parameter in a subsequent pagination request. If there is no more data to be listed, this parameter is set to null.<br/>assessmentTargetArns:  A list of ARNs that specifies the assessment targets that are returned by the action.<br/>        """
        pass

    def list_assessment_templates(self, assessmentTargetArns: List[Arn]=None, filter: AssessmentTemplateFilter=None, nextToken: str=None, maxResults: int=None) -> ListAssessmentTemplatesResponse:
        r"""Lists the assessment templates that correspond to the assessment targets that are specified by the ARNs of the assessment targets.

        :param self:
        :param maxResults:  You can use this parameter to indicate the maximum number of items you want in the response. The default value is 10. The maximum value is 500.<br/>nextToken:  You can use this parameter when paginating results. Set the value of this parameter to null on your first call to the <b>ListAssessmentTemplates</b> action. Subsequent calls to the action fill <b>nextToken</b> in the request with the value of <b>NextToken</b> from the previous response to continue listing data.<br/>filter:  You can use this parameter to specify a subset of data to be included in the action's response. For a record to match a filter, all specified filter attributes must match. When multiple values are specified for a filter attribute, any of the values can match.:<br/>assessmentTargetArns:  A list of ARNs that specifies the assessment targets whose assessment templates you want to list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>rulesPackageArns</i> For a record to match a filter, the values that are specified for this data type property must be contained in the list of values of the <b>rulesPackageArns</b> property of the <a>AssessmentTemplate</a> data type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>durationRange</i> For a record to match a filter, the value specified for this data type property must inclusively match any value between the specified minimum and maximum values of the <b>durationInSeconds</b> property of the <a>AssessmentTemplate</a> data type.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>durationRange</b>: For a record to match a filter, the value specified for this data type property must inclusively match any value between the specified minimum and maximum values of the <b>durationInSeconds</b> property of the <a>AssessmentTemplate</a> data type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>namePattern</i> For a record to match a filter, an explicit value or a string that contains a wildcard that is specified for this data type property must match the value of the <b>assessmentTemplateName</b> property of the <a>AssessmentTemplate</a> data type.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>maxSeconds</i> The maximum value of the duration range. Must be less than or equal to 604800 seconds (1 week).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>minSeconds</i> The minimum value of the duration range. Must be greater than zero.<br/>
        :return: nextToken:   When a response is generated, if there is more data to be listed, this parameter is present in the response and contains the value to use for the <b>nextToken</b> parameter in a subsequent pagination request. If there is no more data to be listed, this parameter is set to null.<br/>assessmentTemplateArns:  A list of ARNs that specifies the assessment templates returned by the action.<br/>        """
        pass

    def list_event_subscriptions(self, resourceArn: str=None, nextToken: str=None, maxResults: int=None) -> ListEventSubscriptionsResponse:
        r"""Lists all the event subscriptions for the assessment template that is specified by the ARN of the assessment template. For more information, see <a>SubscribeToEvent</a> and <a>UnsubscribeFromEvent</a>.

        :param self:
        :param maxResults:  You can use this parameter to indicate the maximum number of items you want in the response. The default value is 10. The maximum value is 500.<br/>nextToken:  You can use this parameter when paginating results. Set the value of this parameter to null on your first call to the <b>ListEventSubscriptions</b> action. Subsequent calls to the action fill <b>nextToken</b> in the request with the value of <b>NextToken</b> from the previous response to continue listing data.<br/>resourceArn:  The ARN of the assessment template for which you want to list the existing event subscriptions.<br/>
        :return: nextToken:   When a response is generated, if there is more data to be listed, this parameter is present in the response and contains the value to use for the <b>nextToken</b> parameter in a subsequent pagination request. If there is no more data to be listed, this parameter is set to null.<br/>subscriptions:  Details of the returned event subscriptions.<br/>        """
        pass

    def list_exclusions(self, assessmentRunArn: str, nextToken: str=None, maxResults: int=None) -> ListExclusionsResponse:
        r"""List exclusions that are generated by the assessment run.

        :param self:
        :param maxResults:  You can use this parameter to indicate the maximum number of items you want in the response. The default value is 100. The maximum value is 500.<br/>nextToken:  You can use this parameter when paginating results. Set the value of this parameter to null on your first call to the ListExclusionsRequest action. Subsequent calls to the action fill nextToken in the request with the value of nextToken from the previous response to continue listing data.<br/>assessmentRunArn:  The ARN of the assessment run that generated the exclusions that you want to list.<br/>
        :return: nextToken:  When a response is generated, if there is more data to be listed, this parameters is present in the response and contains the value to use for the nextToken parameter in a subsequent pagination request. If there is no more data to be listed, this parameter is set to null.<br/>exclusionArns:  A list of exclusions' ARNs returned by the action.<br/>        """
        pass

    def list_findings(self, assessmentRunArns: List[Arn]=None, filter: FindingFilter=None, nextToken: str=None, maxResults: int=None) -> ListFindingsResponse:
        r"""Lists findings that are generated by the assessment runs that are specified by the ARNs of the assessment runs.

        :param self:
        :param maxResults:  You can use this parameter to indicate the maximum number of items you want in the response. The default value is 10. The maximum value is 500.<br/>nextToken:  You can use this parameter when paginating results. Set the value of this parameter to null on your first call to the <b>ListFindings</b> action. Subsequent calls to the action fill <b>nextToken</b> in the request with the value of <b>NextToken</b> from the previous response to continue listing data.<br/>filter:  You can use this parameter to specify a subset of data to be included in the action's response. For a record to match a filter, all specified filter attributes must match. When multiple values are specified for a filter attribute, any of the values can match.:<br/>assessmentRunArns:  The ARNs of the assessment runs that generate the findings that you want to list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationTimeRange</i> The time range during which the finding is generated.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>creationTimeRange</b>: The time range during which the finding is generated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>userAttributes</i> For a record to match a filter, the value that is specified for this data type property must be contained in the list of values of the <b>userAttributes</b> property of the <a>Finding</a> data type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>attributes</i> For a record to match a filter, the list of values that are specified for this data type property must be contained in the list of values of the <b>attributes</b> property of the <a>Finding</a> data type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>rulesPackageArns</i> For a record to match a filter, one of the values that is specified for this data type property must be the exact match of the value of the <b>rulesPackageArn</b> property of the <a>Finding</a> data type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>severities</i> For a record to match a filter, one of the values that is specified for this data type property must be the exact match of the value of the <b>severity</b> property of the <a>Finding</a> data type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ruleNames</i> For a record to match a filter, one of the values that is specified for this data type property must be the exact match of the value of the <b>ruleName</b> property of the <a>Finding</a> data type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>autoScalingGroups</i> For a record to match a filter, one of the values that is specified for this data type property must be the exact match of the value of the <b>autoScalingGroup</b> property of the <a>Finding</a> data type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>agentIds</i> For a record to match a filter, one of the values that is specified for this data type property must be the exact match of the value of the <b>agentId</b> property of the <a>Finding</a> data type.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>endDate</i> The maximum value of the timestamp range.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>beginDate</i> The minimum value of the timestamp range.<br/>
        :return: nextToken:   When a response is generated, if there is more data to be listed, this parameter is present in the response and contains the value to use for the <b>nextToken</b> parameter in a subsequent pagination request. If there is no more data to be listed, this parameter is set to null.<br/>findingArns:  A list of ARNs that specifies the findings returned by the action.<br/>        """
        pass

    def list_rules_packages(self, nextToken: str=None, maxResults: int=None) -> ListRulesPackagesResponse:
        r"""Lists all available Amazon Inspector rules packages.

        :param self:
        :param maxResults:  You can use this parameter to indicate the maximum number of items you want in the response. The default value is 10. The maximum value is 500.<br/>nextToken:  You can use this parameter when paginating results. Set the value of this parameter to null on your first call to the <b>ListRulesPackages</b> action. Subsequent calls to the action fill <b>nextToken</b> in the request with the value of <b>NextToken</b> from the previous response to continue listing data.<br/>
        :return: nextToken:   When a response is generated, if there is more data to be listed, this parameter is present in the response and contains the value to use for the <b>nextToken</b> parameter in a subsequent pagination request. If there is no more data to be listed, this parameter is set to null.<br/>rulesPackageArns:  The list of ARNs that specifies the rules packages returned by the action.<br/>        """
        pass

    def list_tags_for_resource(self, resourceArn: str) -> ListTagsForResourceResponse:
        r"""Lists all tags associated with an assessment template.

        :param self:
        :param resourceArn:  The ARN that specifies the assessment template whose tags you want to list.<br/>
        :return: tags:  A collection of key and value pairs.<br/>        """
        pass

    def preview_agents(self, previewAgentsArn: str, nextToken: str=None, maxResults: int=None) -> PreviewAgentsResponse:
        r"""Previews the agents installed on the EC2 instances that are part of the specified assessment target.

        :param self:
        :param maxResults:  You can use this parameter to indicate the maximum number of items you want in the response. The default value is 10. The maximum value is 500.<br/>nextToken:  You can use this parameter when paginating results. Set the value of this parameter to null on your first call to the <b>PreviewAgents</b> action. Subsequent calls to the action fill <b>nextToken</b> in the request with the value of <b>NextToken</b> from the previous response to continue listing data.<br/>previewAgentsArn:  The ARN of the assessment target whose agents you want to preview.<br/>
        :return: nextToken:   When a response is generated, if there is more data to be listed, this parameter is present in the response and contains the value to use for the <b>nextToken</b> parameter in a subsequent pagination request. If there is no more data to be listed, this parameter is set to null.<br/>agentPreviews:  The resulting list of agents.<br/>        """
        pass

    def register_cross_account_access_role(self, roleArn: str):
        r"""Registers the IAM role that grants Amazon Inspector access to AWS Services needed to perform security assessments.

        :param self:
        :param roleArn:  The ARN of the IAM role that grants Amazon Inspector access to AWS Services needed to perform security assessments. <br/>
        :return:         """
        pass

    def remove_attributes_from_findings(self, attributeKeys: List[AttributeKey], findingArns: List[Arn]) -> RemoveAttributesFromFindingsResponse:
        r"""Removes entire attributes (key and value pairs) from the findings that are specified by the ARNs of the findings where an attribute with the specified key exists.

        :param self:
        :param attributeKeys:  The array of attribute keys that you want to remove from specified findings.<br/>findingArns:  The ARNs that specify the findings that you want to remove attributes from.<br/>
        :return: failedItems:  Attributes details that cannot be described. An error code is provided for each failed item.<br/>        """
        pass

    def set_tags_for_resource(self, resourceArn: str, tags: List[Tag]=None):
        r"""Sets tags (key and value pairs) to the assessment template that is specified by the ARN of the assessment template.

        :param self:
        :param tags:  A collection of key and value pairs that you want to set to the assessment template.<br/>resourceArn:  The ARN of the assessment template that you want to set tags to.<br/>
        :return:         """
        pass

    def start_assessment_run(self, assessmentTemplateArn: str, assessmentRunName: str=None) -> StartAssessmentRunResponse:
        r"""Starts the assessment run specified by the ARN of the assessment template. For this API to function properly, you must not exceed the limit of running up to 500 concurrent agents per AWS account.

        :param self:
        :param assessmentRunName:  You can specify the name for the assessment run. The name must be unique for the assessment template whose ARN is used to start the assessment run.<br/>assessmentTemplateArn:  The ARN of the assessment template of the assessment run that you want to start.<br/>
        :return: assessmentRunArn:  The ARN of the assessment run that has been started.<br/>        """
        pass

    def stop_assessment_run(self, assessmentRunArn: str, stopAction: str=None):
        r"""Stops the assessment run that is specified by the ARN of the assessment run.

        :param self:
        :param stopAction:  An input option that can be set to either START_EVALUATION or SKIP_EVALUATION. START_EVALUATION (the default value), stops the AWS agent from collecting data and begins the results evaluation and the findings generation process. SKIP_EVALUATION cancels the assessment run immediately, after which no findings are generated.<br/>assessmentRunArn:  The ARN of the assessment run that you want to stop.<br/>
        :return:         """
        pass

    def subscribe_to_event(self, topicArn: str, event: str, resourceArn: str):
        r"""Enables the process of sending Amazon Simple Notification Service (SNS) notifications about a specified event to a specified SNS topic.

        :param self:
        :param topicArn:  The ARN of the SNS topic to which the SNS notifications are sent.<br/>event:  The event for which you want to receive SNS notifications.<br/>resourceArn:  The ARN of the assessment template that is used during the event for which you want to receive SNS notifications.<br/>
        :return:         """
        pass

    def unsubscribe_from_event(self, topicArn: str, event: str, resourceArn: str):
        r"""Disables the process of sending Amazon Simple Notification Service (SNS) notifications about a specified event to a specified SNS topic.

        :param self:
        :param topicArn:  The ARN of the SNS topic to which SNS notifications are sent.<br/>event:  The event for which you want to stop receiving SNS notifications.<br/>resourceArn:  The ARN of the assessment template that is used during the event for which you want to stop receiving SNS notifications.<br/>
        :return:         """
        pass

    def update_assessment_target(self, assessmentTargetName: str, assessmentTargetArn: str, resourceGroupArn: str=None):
        r"""Updates the assessment target that is specified by the ARN of the assessment target. If resourceGroupArn is not specified, all EC2 instances in the current AWS account and region are included in the assessment target.

        :param self:
        :param resourceGroupArn:  The ARN of the resource group that is used to specify the new resource group to associate with the assessment target.<br/>assessmentTargetName:  The name of the assessment target that you want to update.<br/>assessmentTargetArn:  The ARN of the assessment target that you want to update.<br/>
        :return:         """
        pass





class IoT(BaseClient):
    r"""<fullname>AWS IoT</fullname> AWS IoT provides secure, bi-directional communication between Internet-connected devices (such as sensors, actuators, embedded devices, or smart appliances) and the AWS cloud. You can discover your custom IoT-Data endpoint to communicate with, configure rules for data processing and integration with other services, organize resources associated with each device (Registry), configure logging, and create and manage policies and credentials to authenticate devices. The service endpoints that expose this API are listed in <a href="https://docs.aws.amazon.com/general/latest/gr/iot-core.html">AWS IoT Core Endpoints and Quotas</a>. You must use the endpoint for the region that has the resources you want to access. The service name used by <a href="https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html">AWS Signature Version 4</a> to sign the request is: <i>execute-api</i>. For more information about how AWS IoT works, see the <a href="https://docs.aws.amazon.com/iot/latest/developerguide/aws-iot-how-it-works.html">Developer Guide</a>. For information about how to use the credentials provider for AWS IoT, see <a href="https://docs.aws.amazon.com/iot/latest/developerguide/authorizing-direct-aws.html">Authorizing Direct Calls to AWS Services</a>."""


    class ListCACertificatesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_ca_certificates` for valid parameters"""
            pass
    class ListCertificatesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_certificates` for valid parameters"""
            pass
    class ListCertificatesByCAPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_certificates_by_ca` for valid parameters"""
            pass
    class ListOutgoingCertificatesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_outgoing_certificates` for valid parameters"""
            pass
    class ListPoliciesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_policies` for valid parameters"""
            pass
    class ListPolicyPrincipalsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_policy_principals` for valid parameters"""
            pass
    class ListPrincipalPoliciesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_principal_policies` for valid parameters"""
            pass
    class ListPrincipalThingsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_principal_things` for valid parameters"""
            pass
    class ListThingTypesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_thing_types` for valid parameters"""
            pass
    class ListThingsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_things` for valid parameters"""
            pass
    class ListTopicRulesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_topic_rules` for valid parameters"""
            pass
    class ListActiveViolationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_active_violations` for valid parameters"""
            pass
    class ListAttachedPoliciesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_attached_policies` for valid parameters"""
            pass
    class ListAuditFindingsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_audit_findings` for valid parameters"""
            pass
    class ListAuditTasksPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_audit_tasks` for valid parameters"""
            pass
    class ListAuthorizersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_authorizers` for valid parameters"""
            pass
    class ListBillingGroupsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_billing_groups` for valid parameters"""
            pass
    class ListIndicesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_indices` for valid parameters"""
            pass
    class ListJobExecutionsForJobPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_job_executions_for_job` for valid parameters"""
            pass
    class ListJobExecutionsForThingPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_job_executions_for_thing` for valid parameters"""
            pass
    class ListJobsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_jobs` for valid parameters"""
            pass
    class ListOTAUpdatesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_ota_updates` for valid parameters"""
            pass
    class ListRoleAliasesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_role_aliases` for valid parameters"""
            pass
    class ListScheduledAuditsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_scheduled_audits` for valid parameters"""
            pass
    class ListSecurityProfilesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_security_profiles` for valid parameters"""
            pass
    class ListSecurityProfilesForTargetPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_security_profiles_for_target` for valid parameters"""
            pass
    class ListStreamsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_streams` for valid parameters"""
            pass
    class ListTagsForResourcePaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_tags_for_resource` for valid parameters"""
            pass
    class ListTargetsForPolicyPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_targets_for_policy` for valid parameters"""
            pass
    class ListTargetsForSecurityProfilePaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_targets_for_security_profile` for valid parameters"""
            pass
    class ListThingGroupsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_thing_groups` for valid parameters"""
            pass
    class ListThingGroupsForThingPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_thing_groups_for_thing` for valid parameters"""
            pass
    class ListThingRegistrationTasksPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_thing_registration_tasks` for valid parameters"""
            pass
    class ListThingsInBillingGroupPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_things_in_billing_group` for valid parameters"""
            pass
    class ListThingsInThingGroupPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_things_in_thing_group` for valid parameters"""
            pass
    class ListV2LoggingLevelsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_v2_logging_levels` for valid parameters"""
            pass
    class ListViolationEventsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_violation_events` for valid parameters"""
            pass
    class ListAuditMitigationActionsExecutionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_audit_mitigation_actions_executions` for valid parameters"""
            pass
    class ListAuditMitigationActionsTasksPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_audit_mitigation_actions_tasks` for valid parameters"""
            pass
    class ListAuditSuppressionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_audit_suppressions` for valid parameters"""
            pass
    class ListDimensionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_dimensions` for valid parameters"""
            pass
    class ListDomainConfigurationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_domain_configurations` for valid parameters"""
            pass
    class ListMitigationActionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_mitigation_actions` for valid parameters"""
            pass
    class ListProvisioningTemplateVersionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_provisioning_template_versions` for valid parameters"""
            pass
    class ListProvisioningTemplatesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_provisioning_templates` for valid parameters"""
            pass
    class ListThingRegistrationTaskReportsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_thing_registration_task_reports` for valid parameters"""
            pass
    class ListTopicRuleDestinationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_topic_rule_destinations` for valid parameters"""
            pass
    class ListThingPrincipalsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_thing_principals` for valid parameters"""
            pass
    class GetBehaviorModelTrainingSummariesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_behavior_model_training_summaries` for valid parameters"""
            pass
    class ListCustomMetricsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_custom_metrics` for valid parameters"""
            pass
    class ListDetectMitigationActionsExecutionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_detect_mitigation_actions_executions` for valid parameters"""
            pass
    class ListDetectMitigationActionsTasksPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_detect_mitigation_actions_tasks` for valid parameters"""
            pass


    class AcceptCertificateTransferRequest(Mapping):
        pass
    
    class SetAsActive(object):
        pass
    
    class AddThingToBillingGroupRequest(Mapping):
        pass
    
    class AddThingToBillingGroupResponse(Mapping):
        pass
    
    class AddThingToThingGroupRequest(Mapping):
        pass
    
    class AddThingToThingGroupResponse(Mapping):
        pass
    
    class OverrideDynamicGroups(object):
        pass
    
    class AssociateTargetsWithJobRequest(Mapping):
        pass
    
    class AssociateTargetsWithJobResponse(Mapping):
        pass
    
    class TargetArn(object):
        pass
    
    class AttachPolicyRequest(Mapping):
        pass
    
    class AttachPrincipalPolicyRequest(Mapping):
        pass
    
    class AttachSecurityProfileRequest(Mapping):
        pass
    
    class AttachSecurityProfileResponse(Mapping):
        pass
    
    class AttachThingPrincipalRequest(Mapping):
        pass
    
    class AttachThingPrincipalResponse(Mapping):
        pass
    
    class CancelAuditMitigationActionsTaskRequest(Mapping):
        pass
    
    class CancelAuditMitigationActionsTaskResponse(Mapping):
        pass
    
    class CancelAuditTaskRequest(Mapping):
        pass
    
    class CancelAuditTaskResponse(Mapping):
        pass
    
    class CancelCertificateTransferRequest(Mapping):
        pass
    
    class CancelDetectMitigationActionsTaskRequest(Mapping):
        pass
    
    class CancelDetectMitigationActionsTaskResponse(Mapping):
        pass
    
    class CancelJobRequest(Mapping):
        pass
    
    class CancelJobResponse(Mapping):
        pass
    
    class ForceFlag(object):
        pass
    
    class CancelJobExecutionRequest(Mapping):
        pass
    
    class ExpectedVersion(object):
        pass
    
    class DetailsMap(object):
        pass
    
    class ClearDefaultAuthorizerRequest(Mapping):
        pass
    
    class ClearDefaultAuthorizerResponse(Mapping):
        pass
    
    class ConfirmTopicRuleDestinationRequest(Mapping):
        pass
    
    class ConfirmTopicRuleDestinationResponse(Mapping):
        pass
    
    class CreateAuditSuppressionRequest(Mapping):
        pass
    
    class CreateAuditSuppressionResponse(Mapping):
        pass
    
    class ResourceIdentifier(Mapping):
        pass
    
    class Timestamp(object):
        pass
    
    class SuppressIndefinitely(object):
        pass
    
    class CreateAuthorizerRequest(Mapping):
        pass
    
    class CreateAuthorizerResponse(Mapping):
        pass
    
    class PublicKeyMap(object):
        pass
    
    class Tag(Mapping):
        pass
    
    class BooleanKey(object):
        pass
    
    class CreateBillingGroupRequest(Mapping):
        pass
    
    class CreateBillingGroupResponse(Mapping):
        pass
    
    class BillingGroupProperties(Mapping):
        pass
    
    class CreateCertificateFromCsrRequest(Mapping):
        pass
    
    class CreateCertificateFromCsrResponse(Mapping):
        pass
    
    class CreateCustomMetricRequest(Mapping):
        pass
    
    class CreateCustomMetricResponse(Mapping):
        pass
    
    class CreateDimensionRequest(Mapping):
        pass
    
    class CreateDimensionResponse(Mapping):
        pass
    
    class DimensionStringValue(object):
        pass
    
    class CreateDomainConfigurationRequest(Mapping):
        pass
    
    class CreateDomainConfigurationResponse(Mapping):
        pass
    
    class AcmCertificateArn(object):
        pass
    
    class AuthorizerConfig(Mapping):
        pass
    
    class CreateDynamicThingGroupRequest(Mapping):
        pass
    
    class CreateDynamicThingGroupResponse(Mapping):
        pass
    
    class ThingGroupProperties(Mapping):
        pass
    
    class CreateJobRequest(Mapping):
        pass
    
    class CreateJobResponse(Mapping):
        pass
    
    class PresignedUrlConfig(Mapping):
        pass
    
    class JobExecutionsRolloutConfig(Mapping):
        pass
    
    class AbortConfig(Mapping):
        pass
    
    class TimeoutConfig(Mapping):
        pass
    
    class CreateJobTemplateRequest(Mapping):
        pass
    
    class CreateJobTemplateResponse(Mapping):
        pass
    
    class CreateKeysAndCertificateRequest(Mapping):
        pass
    
    class CreateKeysAndCertificateResponse(Mapping):
        pass
    
    class CreateMitigationActionRequest(Mapping):
        pass
    
    class CreateMitigationActionResponse(Mapping):
        pass
    
    class MitigationActionParams(Mapping):
        pass
    
    class CreateOTAUpdateRequest(Mapping):
        pass
    
    class CreateOTAUpdateResponse(Mapping):
        pass
    
    class Target(object):
        pass
    
    class Protocol(object):
        pass
    
    class AwsJobExecutionsRolloutConfig(Mapping):
        pass
    
    class AwsJobPresignedUrlConfig(Mapping):
        pass
    
    class AwsJobAbortConfig(Mapping):
        pass
    
    class AwsJobTimeoutConfig(Mapping):
        pass
    
    class OTAUpdateFile(Mapping):
        pass
    
    class AdditionalParameterMap(object):
        pass
    
    class CreatePolicyRequest(Mapping):
        pass
    
    class CreatePolicyResponse(Mapping):
        pass
    
    class CreatePolicyVersionRequest(Mapping):
        pass
    
    class CreatePolicyVersionResponse(Mapping):
        pass
    
    class SetAsDefault(object):
        pass
    
    class CreateProvisioningClaimRequest(Mapping):
        pass
    
    class CreateProvisioningClaimResponse(Mapping):
        pass
    
    class CreateProvisioningTemplateRequest(Mapping):
        pass
    
    class CreateProvisioningTemplateResponse(Mapping):
        pass
    
    class Enabled(object):
        pass
    
    class ProvisioningHook(Mapping):
        pass
    
    class CreateProvisioningTemplateVersionRequest(Mapping):
        pass
    
    class CreateProvisioningTemplateVersionResponse(Mapping):
        pass
    
    class CreateRoleAliasRequest(Mapping):
        pass
    
    class CreateRoleAliasResponse(Mapping):
        pass
    
    class CreateScheduledAuditRequest(Mapping):
        pass
    
    class CreateScheduledAuditResponse(Mapping):
        pass
    
    class AuditCheckName(object):
        pass
    
    class CreateSecurityProfileRequest(Mapping):
        pass
    
    class CreateSecurityProfileResponse(Mapping):
        pass
    
    class Behavior(Mapping):
        pass
    
    class AlertTargets(object):
        pass
    
    class BehaviorMetric(object):
        pass
    
    class MetricToRetain(Mapping):
        pass
    
    class CreateStreamRequest(Mapping):
        pass
    
    class CreateStreamResponse(Mapping):
        pass
    
    class StreamFile(Mapping):
        pass
    
    class CreateThingRequest(Mapping):
        pass
    
    class CreateThingResponse(Mapping):
        pass
    
    class AttributePayload(Mapping):
        pass
    
    class CreateThingGroupRequest(Mapping):
        pass
    
    class CreateThingGroupResponse(Mapping):
        pass
    
    class CreateThingTypeRequest(Mapping):
        pass
    
    class CreateThingTypeResponse(Mapping):
        pass
    
    class ThingTypeProperties(Mapping):
        pass
    
    class CreateTopicRuleRequest(Mapping):
        pass
    
    class TopicRulePayload(Mapping):
        pass
    
    class CreateTopicRuleDestinationRequest(Mapping):
        pass
    
    class CreateTopicRuleDestinationResponse(Mapping):
        pass
    
    class TopicRuleDestinationConfiguration(Mapping):
        pass
    
    class DeleteAccountAuditConfigurationRequest(Mapping):
        pass
    
    class DeleteAccountAuditConfigurationResponse(Mapping):
        pass
    
    class DeleteScheduledAudits(object):
        pass
    
    class DeleteAuditSuppressionRequest(Mapping):
        pass
    
    class DeleteAuditSuppressionResponse(Mapping):
        pass
    
    class DeleteAuthorizerRequest(Mapping):
        pass
    
    class DeleteAuthorizerResponse(Mapping):
        pass
    
    class DeleteBillingGroupRequest(Mapping):
        pass
    
    class DeleteBillingGroupResponse(Mapping):
        pass
    
    class OptionalVersion(object):
        pass
    
    class DeleteCACertificateRequest(Mapping):
        pass
    
    class DeleteCACertificateResponse(Mapping):
        pass
    
    class DeleteCertificateRequest(Mapping):
        pass
    
    class ForceDelete(object):
        pass
    
    class DeleteCustomMetricRequest(Mapping):
        pass
    
    class DeleteCustomMetricResponse(Mapping):
        pass
    
    class DeleteDimensionRequest(Mapping):
        pass
    
    class DeleteDimensionResponse(Mapping):
        pass
    
    class DeleteDomainConfigurationRequest(Mapping):
        pass
    
    class DeleteDomainConfigurationResponse(Mapping):
        pass
    
    class DeleteDynamicThingGroupRequest(Mapping):
        pass
    
    class DeleteDynamicThingGroupResponse(Mapping):
        pass
    
    class DeleteJobRequest(Mapping):
        pass
    
    class DeleteJobExecutionRequest(Mapping):
        pass
    
    class ExecutionNumber(object):
        pass
    
    class DeleteJobTemplateRequest(Mapping):
        pass
    
    class DeleteMitigationActionRequest(Mapping):
        pass
    
    class DeleteMitigationActionResponse(Mapping):
        pass
    
    class DeleteOTAUpdateRequest(Mapping):
        pass
    
    class DeleteOTAUpdateResponse(Mapping):
        pass
    
    class DeleteStream(object):
        pass
    
    class ForceDeleteAWSJob(object):
        pass
    
    class DeletePolicyRequest(Mapping):
        pass
    
    class DeletePolicyVersionRequest(Mapping):
        pass
    
    class DeleteProvisioningTemplateRequest(Mapping):
        pass
    
    class DeleteProvisioningTemplateResponse(Mapping):
        pass
    
    class DeleteProvisioningTemplateVersionRequest(Mapping):
        pass
    
    class DeleteProvisioningTemplateVersionResponse(Mapping):
        pass
    
    class DeleteRegistrationCodeRequest(Mapping):
        pass
    
    class DeleteRegistrationCodeResponse(Mapping):
        pass
    
    class DeleteRoleAliasRequest(Mapping):
        pass
    
    class DeleteRoleAliasResponse(Mapping):
        pass
    
    class DeleteScheduledAuditRequest(Mapping):
        pass
    
    class DeleteScheduledAuditResponse(Mapping):
        pass
    
    class DeleteSecurityProfileRequest(Mapping):
        pass
    
    class DeleteSecurityProfileResponse(Mapping):
        pass
    
    class DeleteStreamRequest(Mapping):
        pass
    
    class DeleteStreamResponse(Mapping):
        pass
    
    class DeleteThingRequest(Mapping):
        pass
    
    class DeleteThingResponse(Mapping):
        pass
    
    class DeleteThingGroupRequest(Mapping):
        pass
    
    class DeleteThingGroupResponse(Mapping):
        pass
    
    class DeleteThingTypeRequest(Mapping):
        pass
    
    class DeleteThingTypeResponse(Mapping):
        pass
    
    class DeleteTopicRuleRequest(Mapping):
        pass
    
    class DeleteTopicRuleDestinationRequest(Mapping):
        pass
    
    class DeleteTopicRuleDestinationResponse(Mapping):
        pass
    
    class DeleteV2LoggingLevelRequest(Mapping):
        pass
    
    class DeprecateThingTypeRequest(Mapping):
        pass
    
    class DeprecateThingTypeResponse(Mapping):
        pass
    
    class UndoDeprecate(object):
        pass
    
    class DescribeAccountAuditConfigurationRequest(Mapping):
        pass
    
    class DescribeAccountAuditConfigurationResponse(Mapping):
        pass
    
    class DescribeAuditFindingRequest(Mapping):
        pass
    
    class DescribeAuditFindingResponse(Mapping):
        pass
    
    class DescribeAuditMitigationActionsTaskRequest(Mapping):
        pass
    
    class DescribeAuditMitigationActionsTaskResponse(Mapping):
        pass
    
    class DescribeAuditSuppressionRequest(Mapping):
        pass
    
    class DescribeAuditSuppressionResponse(Mapping):
        pass
    
    class DescribeAuditTaskRequest(Mapping):
        pass
    
    class DescribeAuditTaskResponse(Mapping):
        pass
    
    class DescribeAuthorizerRequest(Mapping):
        pass
    
    class DescribeAuthorizerResponse(Mapping):
        pass
    
    class DescribeBillingGroupRequest(Mapping):
        pass
    
    class DescribeBillingGroupResponse(Mapping):
        pass
    
    class DescribeCACertificateRequest(Mapping):
        pass
    
    class DescribeCACertificateResponse(Mapping):
        pass
    
    class DescribeCertificateRequest(Mapping):
        pass
    
    class DescribeCertificateResponse(Mapping):
        pass
    
    class DescribeCustomMetricRequest(Mapping):
        pass
    
    class DescribeCustomMetricResponse(Mapping):
        pass
    
    class DescribeDefaultAuthorizerRequest(Mapping):
        pass
    
    class DescribeDefaultAuthorizerResponse(Mapping):
        pass
    
    class DescribeDetectMitigationActionsTaskRequest(Mapping):
        pass
    
    class DescribeDetectMitigationActionsTaskResponse(Mapping):
        pass
    
    class DescribeDimensionRequest(Mapping):
        pass
    
    class DescribeDimensionResponse(Mapping):
        pass
    
    class DescribeDomainConfigurationRequest(Mapping):
        pass
    
    class DescribeDomainConfigurationResponse(Mapping):
        pass
    
    class DescribeEndpointRequest(Mapping):
        pass
    
    class DescribeEndpointResponse(Mapping):
        pass
    
    class DescribeEventConfigurationsRequest(Mapping):
        pass
    
    class DescribeEventConfigurationsResponse(Mapping):
        pass
    
    class DescribeIndexRequest(Mapping):
        pass
    
    class DescribeIndexResponse(Mapping):
        pass
    
    class DescribeJobRequest(Mapping):
        pass
    
    class DescribeJobResponse(Mapping):
        pass
    
    class DescribeJobExecutionRequest(Mapping):
        pass
    
    class DescribeJobExecutionResponse(Mapping):
        pass
    
    class DescribeJobTemplateRequest(Mapping):
        pass
    
    class DescribeJobTemplateResponse(Mapping):
        pass
    
    class DescribeMitigationActionRequest(Mapping):
        pass
    
    class DescribeMitigationActionResponse(Mapping):
        pass
    
    class DescribeProvisioningTemplateRequest(Mapping):
        pass
    
    class DescribeProvisioningTemplateResponse(Mapping):
        pass
    
    class DescribeProvisioningTemplateVersionRequest(Mapping):
        pass
    
    class DescribeProvisioningTemplateVersionResponse(Mapping):
        pass
    
    class DescribeRoleAliasRequest(Mapping):
        pass
    
    class DescribeRoleAliasResponse(Mapping):
        pass
    
    class DescribeScheduledAuditRequest(Mapping):
        pass
    
    class DescribeScheduledAuditResponse(Mapping):
        pass
    
    class DescribeSecurityProfileRequest(Mapping):
        pass
    
    class DescribeSecurityProfileResponse(Mapping):
        pass
    
    class DescribeStreamRequest(Mapping):
        pass
    
    class DescribeStreamResponse(Mapping):
        pass
    
    class DescribeThingRequest(Mapping):
        pass
    
    class DescribeThingResponse(Mapping):
        pass
    
    class DescribeThingGroupRequest(Mapping):
        pass
    
    class DescribeThingGroupResponse(Mapping):
        pass
    
    class DescribeThingRegistrationTaskRequest(Mapping):
        pass
    
    class DescribeThingRegistrationTaskResponse(Mapping):
        pass
    
    class DescribeThingTypeRequest(Mapping):
        pass
    
    class DescribeThingTypeResponse(Mapping):
        pass
    
    class DetachPolicyRequest(Mapping):
        pass
    
    class DetachPrincipalPolicyRequest(Mapping):
        pass
    
    class DetachSecurityProfileRequest(Mapping):
        pass
    
    class DetachSecurityProfileResponse(Mapping):
        pass
    
    class DetachThingPrincipalRequest(Mapping):
        pass
    
    class DetachThingPrincipalResponse(Mapping):
        pass
    
    class DisableTopicRuleRequest(Mapping):
        pass
    
    class EnableTopicRuleRequest(Mapping):
        pass
    
    class GetBehaviorModelTrainingSummariesRequest(Mapping):
        pass
    
    class GetBehaviorModelTrainingSummariesResponse(Mapping):
        pass
    
    class GetCardinalityRequest(Mapping):
        pass
    
    class GetCardinalityResponse(Mapping):
        pass
    
    class GetEffectivePoliciesRequest(Mapping):
        pass
    
    class GetEffectivePoliciesResponse(Mapping):
        pass
    
    class GetIndexingConfigurationRequest(Mapping):
        pass
    
    class GetIndexingConfigurationResponse(Mapping):
        pass
    
    class GetJobDocumentRequest(Mapping):
        pass
    
    class GetJobDocumentResponse(Mapping):
        pass
    
    class GetLoggingOptionsRequest(Mapping):
        pass
    
    class GetLoggingOptionsResponse(Mapping):
        pass
    
    class GetOTAUpdateRequest(Mapping):
        pass
    
    class GetOTAUpdateResponse(Mapping):
        pass
    
    class GetPercentilesRequest(Mapping):
        pass
    
    class GetPercentilesResponse(Mapping):
        pass
    
    class Percent(object):
        pass
    
    class GetPolicyRequest(Mapping):
        pass
    
    class GetPolicyResponse(Mapping):
        pass
    
    class GetPolicyVersionRequest(Mapping):
        pass
    
    class GetPolicyVersionResponse(Mapping):
        pass
    
    class GetRegistrationCodeRequest(Mapping):
        pass
    
    class GetRegistrationCodeResponse(Mapping):
        pass
    
    class GetStatisticsRequest(Mapping):
        pass
    
    class GetStatisticsResponse(Mapping):
        pass
    
    class GetTopicRuleRequest(Mapping):
        pass
    
    class GetTopicRuleResponse(Mapping):
        pass
    
    class GetTopicRuleDestinationRequest(Mapping):
        pass
    
    class GetTopicRuleDestinationResponse(Mapping):
        pass
    
    class GetV2LoggingOptionsRequest(Mapping):
        pass
    
    class GetV2LoggingOptionsResponse(Mapping):
        pass
    
    class ListActiveViolationsRequest(Mapping):
        pass
    
    class ListActiveViolationsResponse(Mapping):
        pass
    
    class ListSuppressedAlerts(object):
        pass
    
    class ListAttachedPoliciesRequest(Mapping):
        pass
    
    class ListAttachedPoliciesResponse(Mapping):
        pass
    
    class Recursive(object):
        pass
    
    class ListAuditFindingsRequest(Mapping):
        pass
    
    class ListAuditFindingsResponse(Mapping):
        pass
    
    class ListSuppressedFindings(object):
        pass
    
    class ListAuditMitigationActionsExecutionsRequest(Mapping):
        pass
    
    class ListAuditMitigationActionsExecutionsResponse(Mapping):
        pass
    
    class ListAuditMitigationActionsTasksRequest(Mapping):
        pass
    
    class ListAuditMitigationActionsTasksResponse(Mapping):
        pass
    
    class ListAuditSuppressionsRequest(Mapping):
        pass
    
    class ListAuditSuppressionsResponse(Mapping):
        pass
    
    class AscendingOrder(object):
        pass
    
    class ListAuditTasksRequest(Mapping):
        pass
    
    class ListAuditTasksResponse(Mapping):
        pass
    
    class ListAuthorizersRequest(Mapping):
        pass
    
    class ListAuthorizersResponse(Mapping):
        pass
    
    class ListBillingGroupsRequest(Mapping):
        pass
    
    class ListBillingGroupsResponse(Mapping):
        pass
    
    class ListCACertificatesRequest(Mapping):
        pass
    
    class ListCACertificatesResponse(Mapping):
        pass
    
    class ListCertificatesRequest(Mapping):
        pass
    
    class ListCertificatesResponse(Mapping):
        pass
    
    class ListCertificatesByCARequest(Mapping):
        pass
    
    class ListCertificatesByCAResponse(Mapping):
        pass
    
    class ListCustomMetricsRequest(Mapping):
        pass
    
    class ListCustomMetricsResponse(Mapping):
        pass
    
    class ListDetectMitigationActionsExecutionsRequest(Mapping):
        pass
    
    class ListDetectMitigationActionsExecutionsResponse(Mapping):
        pass
    
    class ListDetectMitigationActionsTasksRequest(Mapping):
        pass
    
    class ListDetectMitigationActionsTasksResponse(Mapping):
        pass
    
    class ListDimensionsRequest(Mapping):
        pass
    
    class ListDimensionsResponse(Mapping):
        pass
    
    class ListDomainConfigurationsRequest(Mapping):
        pass
    
    class ListDomainConfigurationsResponse(Mapping):
        pass
    
    class ListIndicesRequest(Mapping):
        pass
    
    class ListIndicesResponse(Mapping):
        pass
    
    class ListJobExecutionsForJobRequest(Mapping):
        pass
    
    class ListJobExecutionsForJobResponse(Mapping):
        pass
    
    class ListJobExecutionsForThingRequest(Mapping):
        pass
    
    class ListJobExecutionsForThingResponse(Mapping):
        pass
    
    class ListJobTemplatesRequest(Mapping):
        pass
    
    class ListJobTemplatesResponse(Mapping):
        pass
    
    class ListJobsRequest(Mapping):
        pass
    
    class ListJobsResponse(Mapping):
        pass
    
    class ListMitigationActionsRequest(Mapping):
        pass
    
    class ListMitigationActionsResponse(Mapping):
        pass
    
    class ListOTAUpdatesRequest(Mapping):
        pass
    
    class ListOTAUpdatesResponse(Mapping):
        pass
    
    class ListOutgoingCertificatesRequest(Mapping):
        pass
    
    class ListOutgoingCertificatesResponse(Mapping):
        pass
    
    class ListPoliciesRequest(Mapping):
        pass
    
    class ListPoliciesResponse(Mapping):
        pass
    
    class ListPolicyPrincipalsRequest(Mapping):
        pass
    
    class ListPolicyPrincipalsResponse(Mapping):
        pass
    
    class ListPolicyVersionsRequest(Mapping):
        pass
    
    class ListPolicyVersionsResponse(Mapping):
        pass
    
    class ListPrincipalPoliciesRequest(Mapping):
        pass
    
    class ListPrincipalPoliciesResponse(Mapping):
        pass
    
    class ListPrincipalThingsRequest(Mapping):
        pass
    
    class ListPrincipalThingsResponse(Mapping):
        pass
    
    class ListProvisioningTemplateVersionsRequest(Mapping):
        pass
    
    class ListProvisioningTemplateVersionsResponse(Mapping):
        pass
    
    class ListProvisioningTemplatesRequest(Mapping):
        pass
    
    class ListProvisioningTemplatesResponse(Mapping):
        pass
    
    class ListRoleAliasesRequest(Mapping):
        pass
    
    class ListRoleAliasesResponse(Mapping):
        pass
    
    class ListScheduledAuditsRequest(Mapping):
        pass
    
    class ListScheduledAuditsResponse(Mapping):
        pass
    
    class ListSecurityProfilesRequest(Mapping):
        pass
    
    class ListSecurityProfilesResponse(Mapping):
        pass
    
    class ListSecurityProfilesForTargetRequest(Mapping):
        pass
    
    class ListSecurityProfilesForTargetResponse(Mapping):
        pass
    
    class ListStreamsRequest(Mapping):
        pass
    
    class ListStreamsResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class ListTargetsForPolicyRequest(Mapping):
        pass
    
    class ListTargetsForPolicyResponse(Mapping):
        pass
    
    class ListTargetsForSecurityProfileRequest(Mapping):
        pass
    
    class ListTargetsForSecurityProfileResponse(Mapping):
        pass
    
    class ListThingGroupsRequest(Mapping):
        pass
    
    class ListThingGroupsResponse(Mapping):
        pass
    
    class RecursiveWithoutDefault(object):
        pass
    
    class ListThingGroupsForThingRequest(Mapping):
        pass
    
    class ListThingGroupsForThingResponse(Mapping):
        pass
    
    class ListThingPrincipalsRequest(Mapping):
        pass
    
    class ListThingPrincipalsResponse(Mapping):
        pass
    
    class ListThingRegistrationTaskReportsRequest(Mapping):
        pass
    
    class ListThingRegistrationTaskReportsResponse(Mapping):
        pass
    
    class ListThingRegistrationTasksRequest(Mapping):
        pass
    
    class ListThingRegistrationTasksResponse(Mapping):
        pass
    
    class ListThingTypesRequest(Mapping):
        pass
    
    class ListThingTypesResponse(Mapping):
        pass
    
    class ListThingsRequest(Mapping):
        pass
    
    class ListThingsResponse(Mapping):
        pass
    
    class usePrefixAttributeValue(object):
        pass
    
    class ListThingsInBillingGroupRequest(Mapping):
        pass
    
    class ListThingsInBillingGroupResponse(Mapping):
        pass
    
    class ListThingsInThingGroupRequest(Mapping):
        pass
    
    class ListThingsInThingGroupResponse(Mapping):
        pass
    
    class ListTopicRuleDestinationsRequest(Mapping):
        pass
    
    class ListTopicRuleDestinationsResponse(Mapping):
        pass
    
    class ListTopicRulesRequest(Mapping):
        pass
    
    class ListTopicRulesResponse(Mapping):
        pass
    
    class IsDisabled(object):
        pass
    
    class ListV2LoggingLevelsRequest(Mapping):
        pass
    
    class ListV2LoggingLevelsResponse(Mapping):
        pass
    
    class ListViolationEventsRequest(Mapping):
        pass
    
    class ListViolationEventsResponse(Mapping):
        pass
    
    class RegisterCACertificateRequest(Mapping):
        pass
    
    class RegisterCACertificateResponse(Mapping):
        pass
    
    class AllowAutoRegistration(object):
        pass
    
    class RegistrationConfig(Mapping):
        pass
    
    class RegisterCertificateRequest(Mapping):
        pass
    
    class RegisterCertificateResponse(Mapping):
        pass
    
    class SetAsActiveFlag(object):
        pass
    
    class RegisterCertificateWithoutCARequest(Mapping):
        pass
    
    class RegisterCertificateWithoutCAResponse(Mapping):
        pass
    
    class RegisterThingRequest(Mapping):
        pass
    
    class RegisterThingResponse(Mapping):
        pass
    
    class Parameters(object):
        pass
    
    class RejectCertificateTransferRequest(Mapping):
        pass
    
    class RemoveThingFromBillingGroupRequest(Mapping):
        pass
    
    class RemoveThingFromBillingGroupResponse(Mapping):
        pass
    
    class RemoveThingFromThingGroupRequest(Mapping):
        pass
    
    class RemoveThingFromThingGroupResponse(Mapping):
        pass
    
    class ReplaceTopicRuleRequest(Mapping):
        pass
    
    class SearchIndexRequest(Mapping):
        pass
    
    class SearchIndexResponse(Mapping):
        pass
    
    class SetDefaultAuthorizerRequest(Mapping):
        pass
    
    class SetDefaultAuthorizerResponse(Mapping):
        pass
    
    class SetDefaultPolicyVersionRequest(Mapping):
        pass
    
    class SetLoggingOptionsRequest(Mapping):
        pass
    
    class LoggingOptionsPayload(Mapping):
        pass
    
    class SetV2LoggingLevelRequest(Mapping):
        pass
    
    class LogTarget(Mapping):
        pass
    
    class SetV2LoggingOptionsRequest(Mapping):
        pass
    
    class DisableAllLogs(object):
        pass
    
    class StartAuditMitigationActionsTaskRequest(Mapping):
        pass
    
    class StartAuditMitigationActionsTaskResponse(Mapping):
        pass
    
    class AuditMitigationActionsTaskTarget(Mapping):
        pass
    
    class AuditCheckToActionsMapping(object):
        pass
    
    class StartDetectMitigationActionsTaskRequest(Mapping):
        pass
    
    class StartDetectMitigationActionsTaskResponse(Mapping):
        pass
    
    class DetectMitigationActionsTaskTarget(Mapping):
        pass
    
    class MitigationActionName(object):
        pass
    
    class ViolationEventOccurrenceRange(Mapping):
        pass
    
    class NullableBoolean(object):
        pass
    
    class StartOnDemandAuditTaskRequest(Mapping):
        pass
    
    class StartOnDemandAuditTaskResponse(Mapping):
        pass
    
    class StartThingRegistrationTaskRequest(Mapping):
        pass
    
    class StartThingRegistrationTaskResponse(Mapping):
        pass
    
    class StopThingRegistrationTaskRequest(Mapping):
        pass
    
    class StopThingRegistrationTaskResponse(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class TestAuthorizationRequest(Mapping):
        pass
    
    class TestAuthorizationResponse(Mapping):
        pass
    
    class AuthInfo(Mapping):
        pass
    
    class PolicyName(object):
        pass
    
    class TestInvokeAuthorizerRequest(Mapping):
        pass
    
    class TestInvokeAuthorizerResponse(Mapping):
        pass
    
    class HttpContext(Mapping):
        pass
    
    class MqttContext(Mapping):
        pass
    
    class TlsContext(Mapping):
        pass
    
    class TransferCertificateRequest(Mapping):
        pass
    
    class TransferCertificateResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateAccountAuditConfigurationRequest(Mapping):
        pass
    
    class UpdateAccountAuditConfigurationResponse(Mapping):
        pass
    
    class AuditNotificationTargetConfigurations(object):
        pass
    
    class AuditCheckConfigurations(object):
        pass
    
    class UpdateAuditSuppressionRequest(Mapping):
        pass
    
    class UpdateAuditSuppressionResponse(Mapping):
        pass
    
    class UpdateAuthorizerRequest(Mapping):
        pass
    
    class UpdateAuthorizerResponse(Mapping):
        pass
    
    class UpdateBillingGroupRequest(Mapping):
        pass
    
    class UpdateBillingGroupResponse(Mapping):
        pass
    
    class UpdateCACertificateRequest(Mapping):
        pass
    
    class RemoveAutoRegistration(object):
        pass
    
    class UpdateCertificateRequest(Mapping):
        pass
    
    class UpdateCustomMetricRequest(Mapping):
        pass
    
    class UpdateCustomMetricResponse(Mapping):
        pass
    
    class UpdateDimensionRequest(Mapping):
        pass
    
    class UpdateDimensionResponse(Mapping):
        pass
    
    class UpdateDomainConfigurationRequest(Mapping):
        pass
    
    class UpdateDomainConfigurationResponse(Mapping):
        pass
    
    class RemoveAuthorizerConfig(object):
        pass
    
    class UpdateDynamicThingGroupRequest(Mapping):
        pass
    
    class UpdateDynamicThingGroupResponse(Mapping):
        pass
    
    class UpdateEventConfigurationsRequest(Mapping):
        pass
    
    class UpdateEventConfigurationsResponse(Mapping):
        pass
    
    class EventConfigurations(object):
        pass
    
    class UpdateIndexingConfigurationRequest(Mapping):
        pass
    
    class UpdateIndexingConfigurationResponse(Mapping):
        pass
    
    class ThingIndexingConfiguration(Mapping):
        pass
    
    class ThingGroupIndexingConfiguration(Mapping):
        pass
    
    class UpdateJobRequest(Mapping):
        pass
    
    class UpdateMitigationActionRequest(Mapping):
        pass
    
    class UpdateMitigationActionResponse(Mapping):
        pass
    
    class UpdateProvisioningTemplateRequest(Mapping):
        pass
    
    class UpdateProvisioningTemplateResponse(Mapping):
        pass
    
    class RemoveHook(object):
        pass
    
    class UpdateRoleAliasRequest(Mapping):
        pass
    
    class UpdateRoleAliasResponse(Mapping):
        pass
    
    class UpdateScheduledAuditRequest(Mapping):
        pass
    
    class UpdateScheduledAuditResponse(Mapping):
        pass
    
    class UpdateSecurityProfileRequest(Mapping):
        pass
    
    class UpdateSecurityProfileResponse(Mapping):
        pass
    
    class DeleteBehaviors(object):
        pass
    
    class DeleteAlertTargets(object):
        pass
    
    class DeleteAdditionalMetricsToRetain(object):
        pass
    
    class UpdateStreamRequest(Mapping):
        pass
    
    class UpdateStreamResponse(Mapping):
        pass
    
    class UpdateThingRequest(Mapping):
        pass
    
    class UpdateThingResponse(Mapping):
        pass
    
    class RemoveThingType(object):
        pass
    
    class UpdateThingGroupRequest(Mapping):
        pass
    
    class UpdateThingGroupResponse(Mapping):
        pass
    
    class UpdateThingGroupsForThingRequest(Mapping):
        pass
    
    class UpdateThingGroupsForThingResponse(Mapping):
        pass
    
    class ThingGroupName(object):
        pass
    
    class UpdateTopicRuleDestinationRequest(Mapping):
        pass
    
    class UpdateTopicRuleDestinationResponse(Mapping):
        pass
    
    class ValidateSecurityProfileBehaviorsRequest(Mapping):
        pass
    
    class ValidateSecurityProfileBehaviorsResponse(Mapping):
        pass
    
    def accept_certificate_transfer(self, certificateId: str, setAsActive: SetAsActive=None):
        r"""Accepts a pending certificate transfer. The default state of the certificate is INACTIVE. To check for pending certificate transfers, call <a>ListCertificates</a> to enumerate your certificates.

        :param self:
        :param setAsActive:  Specifies whether the certificate is active.<br/>certificateId:  The ID of the certificate. (The last part of the certificate ARN contains the certificate ID.)<br/>
        :return:         """
        pass

    def add_thing_to_billing_group(self, billingGroupName: str=None, billingGroupArn: str=None, thingName: str=None, thingArn: str=None) -> AddThingToBillingGroupResponse:
        r"""Adds a thing to a billing group.

        :param self:
        :param thingArn:  The ARN of the thing to be added to the billing group.<br/>thingName:  The name of the thing to be added to the billing group.<br/>billingGroupArn:  The ARN of the billing group.<br/>billingGroupName:  The name of the billing group.<br/>
        :return:         """
        pass

    def add_thing_to_thing_group(self, thingGroupName: str=None, thingGroupArn: str=None, thingName: str=None, thingArn: str=None, overrideDynamicGroups: OverrideDynamicGroups=None) -> AddThingToThingGroupResponse:
        r"""Adds a thing to a thing group.

        :param self:
        :param overrideDynamicGroups:  Override dynamic thing groups with static thing groups when 10-group limit is reached. If a thing belongs to 10 thing groups, and one or more of those groups are dynamic thing groups, adding a thing to a static group removes the thing from the last dynamic group.<br/>thingArn:  The ARN of the thing to add to a group.<br/>thingName:  The name of the thing to add to a group.<br/>thingGroupArn:  The ARN of the group to which you are adding a thing.<br/>thingGroupName:  The name of the group to which you are adding a thing.<br/>
        :return:         """
        pass

    def associate_targets_with_job(self, jobId: str, targets: List[TargetArn], comment: str=None, namespaceId: str=None) -> AssociateTargetsWithJobResponse:
        r"""Associates a group with a continuous job. The following criteria must be met:  <ul> <li> The job must have been created with the <code>targetSelection</code> field set to "CONTINUOUS". </li> <li> The job status must currently be "IN_PROGRESS". </li> <li> The total number of targets associated with a job must not exceed 100. </li> </ul>

        :param self:
        :param namespaceId:  The namespace used to indicate that a job is a customer-managed job. When you specify a value for this parameter, AWS IoT Core sends jobs notifications to MQTT topics that contain the value in the following format.  <code>$aws/things/<i>THING_NAME</i>/jobs/<i>JOB_ID</i>/notify-namespace-<i>NAMESPACE_ID</i>/</code>  <note> The <code>namespaceId</code> feature is in public preview. </note><br/>comment:  An optional comment string describing why the job was associated with the targets.<br/>jobId:  The unique identifier you assigned to this job when it was created.<br/>targets:  A list of thing group ARNs that define the targets of the job.<br/>
        :return: description:  A short text description of the job.<br/>jobId:  The unique identifier you assigned to this job when it was created.<br/>jobArn:  An ARN identifying the job.<br/>        """
        pass

    def attach_policy(self, target: str, policyName: str):
        r"""Attaches a policy to the specified target.

        :param self:
        :param target:  The <a href="https://docs.aws.amazon.com/iot/latest/developerguide/security-iam.html">identity</a> to which the policy is attached. For example, a thing group or a certificate.<br/>policyName:  The name of the policy to attach.<br/>
        :return:         """
        pass

    def attach_principal_policy(self, principal: str, policyName: str):
        r"""Attaches the specified policy to the specified principal (certificate or other credential).  <b>Note:</b> This API is deprecated. Please use <a>AttachPolicy</a> instead.

        :param self:
        :param principal:  The principal, which can be a certificate ARN (as returned from the CreateCertificate operation) or an Amazon Cognito ID.<br/>policyName:  The policy name.<br/>
        :return:         """
        pass

    def attach_security_profile(self, securityProfileTargetArn: str, securityProfileName: str) -> AttachSecurityProfileResponse:
        r"""Associates a Device Defender security profile with a thing group or this account. Each thing group or account can have up to five security profiles associated with it.

        :param self:
        :param securityProfileTargetArn:  The ARN of the target (thing group) to which the security profile is attached.<br/>securityProfileName:  The security profile that is attached.<br/>
        :return:         """
        pass

    def attach_thing_principal(self, principal: str, thingName: str) -> AttachThingPrincipalResponse:
        r"""Attaches the specified principal to the specified thing. A principal can be X.509 certificates, IAM users, groups, and roles, Amazon Cognito identities or federated identities.

        :param self:
        :param principal:  The principal, which can be a certificate ARN (as returned from the CreateCertificate operation) or an Amazon Cognito ID.<br/>thingName:  The name of the thing.<br/>
        :return:         """
        pass

    def cancel_audit_mitigation_actions_task(self, taskId: str) -> CancelAuditMitigationActionsTaskResponse:
        r"""Cancels a mitigation action task that is in progress. If the task is not in progress, an InvalidRequestException occurs.

        :param self:
        :param taskId:  The unique identifier for the task that you want to cancel. <br/>
        :return:         """
        pass

    def cancel_audit_task(self, taskId: str) -> CancelAuditTaskResponse:
        r"""Cancels an audit that is in progress. The audit can be either scheduled or on demand. If the audit isn't in progress, an "InvalidRequestException" occurs.

        :param self:
        :param taskId:  The ID of the audit you want to cancel. You can only cancel an audit that is "IN_PROGRESS".<br/>
        :return:         """
        pass

    def cancel_certificate_transfer(self, certificateId: str):
        r"""Cancels a pending transfer for the specified certificate.  <b>Note</b> Only the transfer source account can use this operation to cancel a transfer. (Transfer destinations can use <a>RejectCertificateTransfer</a> instead.) After transfer, AWS IoT returns the certificate to the source account in the INACTIVE state. After the destination account has accepted the transfer, the transfer cannot be cancelled. After a certificate transfer is cancelled, the status of the certificate changes from PENDING_TRANSFER to INACTIVE.

        :param self:
        :param certificateId:  The ID of the certificate. (The last part of the certificate ARN contains the certificate ID.)<br/>
        :return:         """
        pass

    def cancel_detect_mitigation_actions_task(self, taskId: str) -> CancelDetectMitigationActionsTaskResponse:
        r""" Cancels a Device Defender ML Detect mitigation action. 

        :param self:
        :param taskId:   The unique identifier of the task. <br/>
        :return:         """
        pass

    def cancel_job(self, jobId: str, reasonCode: str=None, comment: str=None, force: ForceFlag=None) -> CancelJobResponse:
        r"""Cancels a job.

        :param self:
        :param force:  (Optional) If <code>true</code> job executions with status "IN_PROGRESS" and "QUEUED" are canceled, otherwise only job executions with status "QUEUED" are canceled. The default is <code>false</code>. Canceling a job which is "IN_PROGRESS", will cause a device which is executing the job to be unable to update the job execution status. Use caution and ensure that each device executing a job which is canceled is able to recover to a valid state.<br/>comment:  An optional comment string describing why the job was canceled.<br/>reasonCode:  (Optional)A reason code string that explains why the job was canceled.<br/>jobId:  The unique identifier you assigned to this job when it was created.<br/>
        :return: description:  A short text description of the job.<br/>jobId:  The unique identifier you assigned to this job when it was created.<br/>jobArn:  The job ARN.<br/>        """
        pass

    def cancel_job_execution(self, thingName: str, jobId: str, force: ForceFlag=None, expectedVersion: ExpectedVersion=None, statusDetails: DetailsMap=None):
        r"""Cancels the execution of a job for a given thing.

        :param self:
        :param statusDetails:  A collection of name/value pairs that describe the status of the job execution. If not specified, the statusDetails are unchanged. You can specify at most 10 name/value pairs.<br/>expectedVersion:  (Optional) The expected current version of the job execution. Each time you update the job execution, its version is incremented. If the version of the job execution stored in Jobs does not match, the update is rejected with a VersionMismatch error, and an ErrorResponse that contains the current job execution status data is returned. (This makes it unnecessary to perform a separate DescribeJobExecution request in order to obtain the job execution status data.)<br/>force:  (Optional) If <code>true</code> the job execution will be canceled if it has status IN_PROGRESS or QUEUED, otherwise the job execution will be canceled only if it has status QUEUED. If you attempt to cancel a job execution that is IN_PROGRESS, and you do not set <code>force</code> to <code>true</code>, then an <code>InvalidStateTransitionException</code> will be thrown. The default is <code>false</code>. Canceling a job execution which is "IN_PROGRESS", will cause the device to be unable to update the job execution status. Use caution and ensure that the device is able to recover to a valid state.<br/>thingName:  The name of the thing whose execution of the job will be canceled.<br/>jobId:  The ID of the job to be canceled.<br/>
        :return:         """
        pass

    def clear_default_authorizer(self) -> ClearDefaultAuthorizerResponse:
        r"""Clears the default authorizer.

        :param self:
        :param 
        :return:         """
        pass

    def confirm_topic_rule_destination(self, confirmationToken: str) -> ConfirmTopicRuleDestinationResponse:
        r"""Confirms a topic rule destination. When you create a rule requiring a destination, AWS IoT sends a confirmation message to the endpoint or base address you specify. The message includes a token which you pass back when calling <code>ConfirmTopicRuleDestination</code> to confirm that you own or have access to the endpoint.

        :param self:
        :param confirmationToken:  The token used to confirm ownership or access to the topic rule confirmation URL.<br/>
        :return:         """
        pass

    def create_audit_suppression(self, clientRequestToken: str, resourceIdentifier: ResourceIdentifier, checkName: str, expirationDate: Timestamp=None, suppressIndefinitely: SuppressIndefinitely=None, description: str=None) -> CreateAuditSuppressionResponse:
        r""" Creates a Device Defender audit suppression. 

        :param self:
        :param clientRequestToken:   The epoch timestamp in seconds at which this suppression expires. <br/>description:   The description of the audit suppression. <br/>suppressIndefinitely:   Indicates whether a suppression should exist indefinitely or not. <br/>expirationDate:   The epoch timestamp in seconds at which this suppression expires. <br/>resourceIdentifier:  Information that identifies the noncompliant resource.:<br/>checkName:  An audit check name. Checks must be enabled for your account. (Use <code>DescribeAccountAuditConfiguration</code> to see the list of all checks, including those that are enabled or use <code>UpdateAccountAuditConfiguration</code> to select which checks are enabled.)<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>roleAliasArn</i> The ARN of the role alias that has overly permissive actions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>iamRoleArn</i> The ARN of the IAM role that has overly permissive actions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>account</i> The account with which the resource is associated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>policyVersionIdentifier</i> The version of the policy associated with the resource.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>policyVersionIdentifier</b>: The version of the policy associated with the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>clientId</i> The client ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>cognitoIdentityPoolId</i> The ID of the Amazon Cognito identity pool.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>caCertificateId</i> The ID of the CA certificate used to authorize the certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deviceCertificateId</i> The ID of the certificate attached to the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>policyVersionId</i> The ID of the version of the policy associated with the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>policyName</i> The name of the policy.<br/>
        :return:         """
        pass

    def create_authorizer(self, authorizerFunctionArn: str, authorizerName: str, tokenKeyName: str=None, tokenSigningPublicKeys: PublicKeyMap=None, status: str=None, tags: List[Tag]=None, signingDisabled: BooleanKey=None) -> CreateAuthorizerResponse:
        r"""Creates an authorizer.

        :param self:
        :param signingDisabled:  Specifies whether AWS IoT validates the token signature in an authorization request.<br/>tags:  Metadata which can be used to manage the custom authorizer. <note> For URI Request parameters use format: ...key1=value1&amp;key2=value2... For the CLI command-line parameter use format: &amp;&amp;tags "key1=value1&amp;key2=value2..." For the cli-input-json file use format: "tags": "key1=value1&amp;key2=value2..." </note><br/>status:  The status of the create authorizer request.<br/>tokenSigningPublicKeys:  The public keys used to verify the digital signature returned by your custom authentication service.<br/>tokenKeyName:  The name of the token key used to extract the token from the HTTP headers.<br/>authorizerFunctionArn:  The ARN of the authorizer's Lambda function.<br/>authorizerName:  The authorizer name.<br/>
        :return: authorizerArn:  The authorizer ARN.<br/>authorizerName:  The authorizer's name.<br/>        """
        pass

    def create_billing_group(self, billingGroupName: str, billingGroupProperties: BillingGroupProperties=None, tags: List[Tag]=None) -> CreateBillingGroupResponse:
        r"""Creates a billing group.

        :param self:
        :param tags:  Metadata which can be used to manage the billing group.<br/>billingGroupProperties:  The properties of the billing group.:<br/>billingGroupName:  The name you wish to give to the billing group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>billingGroupDescription</i> The description of the billing group.<br/>
        :return: billingGroupId:  The ID of the billing group.<br/>billingGroupArn:  The ARN of the billing group.<br/>billingGroupName:  The name you gave to the billing group.<br/>        """
        pass

    def create_certificate_from_csr(self, certificateSigningRequest: str, setAsActive: SetAsActive=None) -> CreateCertificateFromCsrResponse:
        r"""Creates an X.509 certificate using the specified certificate signing request.  <b>Note:</b> The CSR must include a public key that is either an RSA key with a length of at least 2048 bits or an ECC key from NIST P-256 or NIST P-384 curves.   <b>Note:</b> Reusing the same certificate signing request (CSR) results in a distinct certificate. You can create multiple certificates in a batch by creating a directory, copying multiple .csr files into that directory, and then specifying that directory on the command line. The following commands show how to create a batch of certificates given a batch of CSRs. Assuming a set of CSRs are located inside of the directory my-csr-directory: On Linux and OS X, the command is: $ ls my-csr-directory/ | xargs -I {} aws iot create-certificate-from-csr --certificate-signing-request file://my-csr-directory/{} This command lists all of the CSRs in my-csr-directory and pipes each CSR file name to the aws iot create-certificate-from-csr AWS CLI command to create a certificate for the corresponding CSR. The aws iot create-certificate-from-csr part of the command can also be run in parallel to speed up the certificate creation process: $ ls my-csr-directory/ | xargs -P 10 -I {} aws iot create-certificate-from-csr --certificate-signing-request file://my-csr-directory/{} On Windows PowerShell, the command to create certificates for all CSRs in my-csr-directory is: &gt; ls -Name my-csr-directory | %{aws iot create-certificate-from-csr --certificate-signing-request file://my-csr-directory/$_} On a Windows command prompt, the command to create certificates for all CSRs in my-csr-directory is: &gt; forfiles /p my-csr-directory /c "cmd /c aws iot create-certificate-from-csr --certificate-signing-request file://@path"

        :param self:
        :param setAsActive:  Specifies whether the certificate is active.<br/>certificateSigningRequest:  The certificate signing request (CSR).<br/>
        :return: certificatePem:  The certificate data, in PEM format.<br/>certificateId:  The ID of the certificate. Certificate management operations only take a certificateId.<br/>certificateArn:  The Amazon Resource Name (ARN) of the certificate. You can use the ARN as a principal for policy operations.<br/>        """
        pass

    def create_custom_metric(self, clientRequestToken: str, metricType: str, metricName: str, displayName: str=None, tags: List[Tag]=None) -> CreateCustomMetricResponse:
        r""" Use this API to define a Custom Metric published by your devices to Device Defender. 

        :param self:
        :param clientRequestToken:  Each custom metric must have a unique client request token. If you try to create a new custom metric that already exists with a different token, an exception occurs. If you omit this value, AWS SDKs will automatically generate a unique client request. <br/>tags:   Metadata that can be used to manage the custom metric. <br/>metricType:   The type of the custom metric. Types include <code>string-list</code>, <code>ip-address-list</code>, <code>number-list</code>, and <code>number</code>. <br/>displayName:   Field represents a friendly name in the console for the custom metric; it doesn't have to be unique. Don't use this name as the metric identifier in the device metric report. Can be updated once defined.<br/>metricName:   The name of the custom metric. This will be used in the metric report submitted from the device/thing. Shouldn't begin with <code>aws:</code>. Cannot be updated once defined.<br/>
        :return: metricArn:   The Amazon Resource Number (ARN) of the custom metric, e.g. <code>arn:<i>aws-partition</i>:iot:<i>region</i>:<i>accountId</i>:custommetric/<i>metricName</i> </code> <br/>metricName:   The name of the custom metric to be used in the metric report. <br/>        """
        pass

    def create_dimension(self, clientRequestToken: str, stringValues: List[DimensionStringValue], type: str, name: str, tags: List[Tag]=None) -> CreateDimensionResponse:
        r"""Create a dimension that you can use to limit the scope of a metric used in a security profile for AWS IoT Device Defender. For example, using a <code>TOPIC_FILTER</code> dimension, you can narrow down the scope of the metric only to MQTT topics whose name match the pattern specified in the dimension.

        :param self:
        :param clientRequestToken:  Each dimension must have a unique client request token. If you try to create a new dimension with the same token as a dimension that already exists, an exception occurs. If you omit this value, AWS SDKs will automatically generate a unique client request.<br/>tags:  Metadata that can be used to manage the dimension.<br/>stringValues:  Specifies the value or list of values for the dimension. For <code>TOPIC_FILTER</code> dimensions, this is a pattern used to match the MQTT topic (for example, "admin/#").<br/>type:  Specifies the type of dimension. Supported types: <code>TOPIC_FILTER.</code> <br/>name:  A unique identifier for the dimension. Choose something that describes the type and value to make it easy to remember what it does.<br/>
        :return: arn:  The Amazon Resource Name (ARN) of the created dimension.<br/>name:  A unique identifier for the dimension.<br/>        """
        pass

    def create_domain_configuration(self, domainConfigurationName: str, domainName: str=None, serverCertificateArns: List[AcmCertificateArn]=None, validationCertificateArn: str=None, authorizerConfig: AuthorizerConfig=None, serviceType: str=None, tags: List[Tag]=None) -> CreateDomainConfigurationResponse:
        r"""Creates a domain configuration.

        :param self:
        :param tags:  Metadata which can be used to manage the domain configuration. <note> For URI Request parameters use format: ...key1=value1&amp;key2=value2... For the CLI command-line parameter use format: &amp;&amp;tags "key1=value1&amp;key2=value2..." For the cli-input-json file use format: "tags": "key1=value1&amp;key2=value2..." </note><br/>serviceType:  The type of service delivered by the endpoint. <note> AWS IoT Core currently supports only the <code>DATA</code> service type. </note><br/>authorizerConfig:  An object that specifies the authorization service for a domain.:<br/>validationCertificateArn:  The certificate used to validate the server certificate and prove domain name ownership. This certificate must be signed by a public certificate authority. This value is not required for AWS-managed domains.<br/>serverCertificateArns:  The ARNs of the certificates that AWS IoT passes to the device during the TLS handshake. Currently you can specify only one certificate ARN. This value is not required for AWS-managed domains.<br/>domainName:  The name of the domain.<br/>domainConfigurationName:  The name of the domain configuration. This value must be unique to a region.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>allowAuthorizerOverride</i> A Boolean that specifies whether the domain configuration's authorization service can be overridden.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>defaultAuthorizerName</i> The name of the authorization service for a domain configuration.<br/>
        :return: domainConfigurationArn:  The ARN of the domain configuration.<br/>domainConfigurationName:  The name of the domain configuration.<br/>        """
        pass

    def create_dynamic_thing_group(self, queryString: str, thingGroupName: str, thingGroupProperties: ThingGroupProperties=None, indexName: str=None, queryVersion: str=None, tags: List[Tag]=None) -> CreateDynamicThingGroupResponse:
        r"""Creates a dynamic thing group.

        :param self:
        :param tags:  Metadata which can be used to manage the dynamic thing group.<br/>queryVersion:  The dynamic thing group query version. <note> Currently one query version is supported: "2017-09-30". If not specified, the query version defaults to this value. </note><br/>queryString:  The dynamic thing group search query string. See <a href="https://docs.aws.amazon.com/iot/latest/developerguide/query-syntax.html">Query Syntax</a> for information about query string syntax.<br/>indexName:  The dynamic thing group index name. <note> Currently one index is supported: "AWS_Things". </note><br/>thingGroupProperties:  The dynamic thing group properties.:<br/>thingGroupName:  The dynamic thing group name to create.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>attributePayload</i> The thing group attributes in JSON format.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>attributePayload</b>: The thing group attributes in JSON format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>thingGroupDescription</i> The thing group description.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>merge</i> Specifies whether the list of attributes provided in the <code>AttributePayload</code> is merged with the attributes stored in the registry, instead of overwriting them. To remove an attribute, call <code>UpdateThing</code> with an empty attribute value. <note> The <code>merge</code> attribute is only valid when calling <code>UpdateThing</code> or <code>UpdateThingGroup</code>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>attributes</i> A JSON string containing up to three key-value pair in JSON format. For example:  <code>{\"attributes\":{\"string1\":\"string2\"}}</code> <br/>
        :return: queryVersion:  The dynamic thing group query version.<br/>queryString:  The dynamic thing group search query string.<br/>indexName:  The dynamic thing group index name.<br/>thingGroupId:  The dynamic thing group ID.<br/>thingGroupArn:  The dynamic thing group ARN.<br/>thingGroupName:  The dynamic thing group name.<br/>        """
        pass

    def create_job(self, targets: List[TargetArn], jobId: str, documentSource: str=None, document: str=None, description: str=None, presignedUrlConfig: PresignedUrlConfig=None, targetSelection: str=None, jobExecutionsRolloutConfig: JobExecutionsRolloutConfig=None, abortConfig: AbortConfig=None, timeoutConfig: TimeoutConfig=None, tags: List[Tag]=None, namespaceId: str=None, jobTemplateArn: str=None) -> CreateJobResponse:
        r"""Creates a job.

        :param self:
        :param jobTemplateArn:  The ARN of the job template used to create the job.<br/>namespaceId:  The namespace used to indicate that a job is a customer-managed job. When you specify a value for this parameter, AWS IoT Core sends jobs notifications to MQTT topics that contain the value in the following format.  <code>$aws/things/<i>THING_NAME</i>/jobs/<i>JOB_ID</i>/notify-namespace-<i>NAMESPACE_ID</i>/</code>  <note> The <code>namespaceId</code> feature is in public preview. </note><br/>tags:  Metadata which can be used to manage the job.<br/>timeoutConfig:  Specifies the amount of time each device has to finish its execution of the job. The timer is started when the job execution status is set to <code>IN_PROGRESS</code>. If the job execution status is not set to another terminal state before the time expires, it will be automatically set to <code>TIMED_OUT</code>.:<br/>abortConfig:  Allows you to create criteria to abort a job.:<br/>jobExecutionsRolloutConfig:  Allows you to create a staged rollout of the job.:<br/>targetSelection:  Specifies whether the job will continue to run (CONTINUOUS), or will be complete after all those things specified as targets have completed the job (SNAPSHOT). If continuous, the job may also be run on a thing when a change is detected in a target. For example, a job will run on a thing when the thing is added to a target group, even after the job was completed by all things originally in the group.<br/>presignedUrlConfig:  Configuration information for pre-signed S3 URLs.:<br/>description:  A short text description of the job.<br/>document:  The job document. Required if you don't specify a value for <code>documentSource</code>.<br/>documentSource:  An S3 link to the job document. Required if you don't specify a value for <code>document</code>. <note> If the job document resides in an S3 bucket, you must use a placeholder link when specifying the document. The placeholder link is of the following form:  <code>${aws:iot:s3-presigned-url:https://s3.amazonaws.com/<i>bucket</i>/<i>key</i>}</code>  where <i>bucket</i> is your bucket name and <i>key</i> is the object in the bucket to which you are linking. </note><br/>targets:  A list of things and thing groups to which the job should be sent.<br/>jobId:  A job identifier which must be unique for your AWS account. We recommend using a UUID. Alpha-numeric characters, "-" and "_" are valid for use here.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>expiresInSec</i> How long (in seconds) pre-signed URLs are valid. Valid values are 60 - 3600, the default value is 3600 seconds. Pre-signed URLs are generated when Jobs receives an MQTT request for the job document.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>roleArn</i> The ARN of an IAM role that grants grants permission to download files from the S3 bucket where the job data/updates are stored. The role must also grant permission for IoT to download the files.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>exponentialRate</i> The rate of increase for a job rollout. This parameter allows you to define an exponential rate for a job rollout.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>exponentialRate</b>: The rate of increase for a job rollout. This parameter allows you to define an exponential rate for a job rollout.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>maximumPerMinute</i> The maximum number of things that will be notified of a pending job, per minute. This parameter allows you to create a staged rollout.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>incrementFactor</i> The exponential factor to increase the rate of rollout for a job. AWS IoT supports up to one digit after the decimal (for example, 1.5, but not 1.55).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>baseRatePerMinute</i> The minimum number of things that will be notified of a pending job, per minute at the start of job rollout. This parameter allows you to define the initial rate of rollout.<br/>The criteria to initiate the increase in rate of rollout for a job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>rateIncreaseCriteria</b>: The criteria to initiate the increase in rate of rollout for a job.&nbsp;&nbsp;&nbsp;&nbsp; <i>criteriaList</i> The list of criteria that determine when and how to abort the job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>inProgressTimeoutInMinutes</i> Specifies the amount of time, in minutes, this device has to finish execution of this job. The timeout interval can be anywhere between 1 minute and 7 days (1 to 10080 minutes). The in progress timer can't be updated and will apply to all job executions for the job. Whenever a job execution remains in the IN_PROGRESS status for longer than this interval, the job execution will fail and switch to the terminal <code>TIMED_OUT</code> status.<br/>
        :return: description:  The job description.<br/>jobId:  The unique identifier you assigned to this job.<br/>jobArn:  The job ARN.<br/>        """
        pass

    def create_job_template(self, description: str, jobTemplateId: str, jobArn: str=None, documentSource: str=None, document: str=None, presignedUrlConfig: PresignedUrlConfig=None, jobExecutionsRolloutConfig: JobExecutionsRolloutConfig=None, abortConfig: AbortConfig=None, timeoutConfig: TimeoutConfig=None, tags: List[Tag]=None) -> CreateJobTemplateResponse:
        r"""Creates a job template.

        :param self:
        :param tags:  Metadata that can be used to manage the job template.<br/>timeoutConfig:  Specifies the amount of time each device has to finish its execution of the job. A timer is started when the job execution status is set to <code>IN_PROGRESS</code>. If the job execution status is not set to another terminal state before the timer expires, it will be automatically set to <code>TIMED_OUT</code>.:<br/>abortConfig:  The criteria that determine when and how a job abort takes place.:<br/>jobExecutionsRolloutConfig:  Allows you to create a staged rollout of a job.:<br/>presignedUrlConfig:  Configuration for pre-signed S3 URLs.:<br/>description:  A description of the job document.<br/>document:  The job document. Required if you don't specify a value for <code>documentSource</code>.<br/>documentSource:  An S3 link to the job document to use in the template. Required if you don't specify a value for <code>document</code>. <note> If the job document resides in an S3 bucket, you must use a placeholder link when specifying the document. The placeholder link is of the following form:  <code>${aws:iot:s3-presigned-url:https://s3.amazonaws.com/<i>bucket</i>/<i>key</i>}</code>  where <i>bucket</i> is your bucket name and <i>key</i> is the object in the bucket to which you are linking. </note><br/>jobArn:  The ARN of the job to use as the basis for the job template.<br/>jobTemplateId:  A unique identifier for the job template. We recommend using a UUID. Alpha-numeric characters, "-", and "_" are valid for use here.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>expiresInSec</i> How long (in seconds) pre-signed URLs are valid. Valid values are 60 - 3600, the default value is 3600 seconds. Pre-signed URLs are generated when Jobs receives an MQTT request for the job document.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>roleArn</i> The ARN of an IAM role that grants grants permission to download files from the S3 bucket where the job data/updates are stored. The role must also grant permission for IoT to download the files.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>exponentialRate</i> The rate of increase for a job rollout. This parameter allows you to define an exponential rate for a job rollout.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>exponentialRate</b>: The rate of increase for a job rollout. This parameter allows you to define an exponential rate for a job rollout.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>maximumPerMinute</i> The maximum number of things that will be notified of a pending job, per minute. This parameter allows you to create a staged rollout.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>incrementFactor</i> The exponential factor to increase the rate of rollout for a job. AWS IoT supports up to one digit after the decimal (for example, 1.5, but not 1.55).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>baseRatePerMinute</i> The minimum number of things that will be notified of a pending job, per minute at the start of job rollout. This parameter allows you to define the initial rate of rollout.<br/>The criteria to initiate the increase in rate of rollout for a job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>rateIncreaseCriteria</b>: The criteria to initiate the increase in rate of rollout for a job.&nbsp;&nbsp;&nbsp;&nbsp; <i>criteriaList</i> The list of criteria that determine when and how to abort the job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>inProgressTimeoutInMinutes</i> Specifies the amount of time, in minutes, this device has to finish execution of this job. The timeout interval can be anywhere between 1 minute and 7 days (1 to 10080 minutes). The in progress timer can't be updated and will apply to all job executions for the job. Whenever a job execution remains in the IN_PROGRESS status for longer than this interval, the job execution will fail and switch to the terminal <code>TIMED_OUT</code> status.<br/>
        :return: jobTemplateId:  The unique identifier of the job template.<br/>jobTemplateArn:  The ARN of the job template.<br/>        """
        pass

    def create_keys_and_certificate(self, setAsActive: SetAsActive=None) -> CreateKeysAndCertificateResponse:
        r"""Creates a 2048-bit RSA key pair and issues an X.509 certificate using the issued public key. You can also call <code>CreateKeysAndCertificate</code> over MQTT from a device, for more information, see <a href="https://docs.aws.amazon.com/iot/latest/developerguide/provision-wo-cert.html#provision-mqtt-api">Provisioning MQTT API</a>.  <b>Note</b> This is the only time AWS IoT issues the private key for this certificate, so it is important to keep it in a secure location.

        :param self:
        :param setAsActive:  Specifies whether the certificate is active.<br/>
        :return: keyPair:  The generated key pair.:<br/>certificatePem:  The certificate data, in PEM format.<br/>certificateId:  The ID of the certificate. AWS IoT issues a default subject name for the certificate (for example, AWS IoT Certificate).<br/>certificateArn:  The ARN of the certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PrivateKey</i> The private key.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PublicKey</i> The public key.<br/>        """
        pass

    def create_mitigation_action(self, actionParams: MitigationActionParams, roleArn: str, actionName: str, tags: List[Tag]=None) -> CreateMitigationActionResponse:
        r"""Defines an action that can be applied to audit findings by using StartAuditMitigationActionsTask. Only certain types of mitigation actions can be applied to specific check names. For more information, see <a href="https://docs.aws.amazon.com/iot/latest/developerguide/device-defender-mitigation-actions.html">Mitigation actions</a>. Each mitigation action can apply only one type of change.

        :param self:
        :param tags:  Metadata that can be used to manage the mitigation action.<br/>actionParams:  Defines the type of action and the parameters for that action.:<br/>roleArn:  The ARN of the IAM role that is used to apply the mitigation action.<br/>actionName:  A friendly name for the action. Choose a friendly name that accurately describes the action (for example, <code>EnableLoggingAction</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>publishFindingToSnsParams</i> Parameters to define a mitigation action that publishes findings to Amazon Simple Notification Service (Amazon SNS. You can implement your own custom actions in response to the Amazon SNS messages.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>publishFindingToSnsParams</b>: Parameters to define a mitigation action that publishes findings to Amazon Simple Notification Service (Amazon SNS. You can implement your own custom actions in response to the Amazon SNS messages.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>enableIoTLoggingParams</i> Parameters to define a mitigation action that enables AWS IoT logging at a specified level of detail.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>enableIoTLoggingParams</b>: Parameters to define a mitigation action that enables AWS IoT logging at a specified level of detail.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>replaceDefaultPolicyVersionParams</i> Parameters to define a mitigation action that adds a blank policy to restrict permissions.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>replaceDefaultPolicyVersionParams</b>: Parameters to define a mitigation action that adds a blank policy to restrict permissions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>addThingsToThingGroupParams</i> Parameters to define a mitigation action that moves devices associated with a certificate to one or more specified thing groups, typically for quarantine.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>addThingsToThingGroupParams</b>: Parameters to define a mitigation action that moves devices associated with a certificate to one or more specified thing groups, typically for quarantine.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>updateCACertificateParams</i> Parameters to define a mitigation action that changes the state of the CA certificate to inactive.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>updateCACertificateParams</b>: Parameters to define a mitigation action that changes the state of the CA certificate to inactive.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>updateDeviceCertificateParams</i> Parameters to define a mitigation action that changes the state of the device certificate to inactive.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>updateDeviceCertificateParams</b>: Parameters to define a mitigation action that changes the state of the device certificate to inactive.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>action</i> The action that you want to apply to the device certificate. The only supported value is <code>DEACTIVATE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>action</i> The action that you want to apply to the CA certificate. The only supported value is <code>DEACTIVATE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>overrideDynamicGroups</i> Specifies if this mitigation action can move the things that triggered the mitigation action even if they are part of one or more dynamic thing groups.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>thingGroupNames</i> The list of groups to which you want to add the things that triggered the mitigation action. You can add a thing to a maximum of 10 groups, but you can't add a thing to more than one group in the same hierarchy.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>templateName</i> The name of the template to be applied. The only supported value is <code>BLANK_POLICY</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>logLevel</i> Specifies the type of information to be logged.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>roleArnForLogging</i> The Amazon Resource Name (ARN) of the IAM role used for logging.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>topicArn</i> The ARN of the topic to which you want to publish the findings.<br/>
        :return: actionId:  A unique identifier for the new mitigation action.<br/>actionArn:  The ARN for the new mitigation action.<br/>        """
        pass

    def create_ota_update(self, roleArn: str, files: List[OTAUpdateFile], targets: List[Target], otaUpdateId: str, description: str=None, protocols: List[Protocol]=None, targetSelection: str=None, awsJobExecutionsRolloutConfig: AwsJobExecutionsRolloutConfig=None, awsJobPresignedUrlConfig: AwsJobPresignedUrlConfig=None, awsJobAbortConfig: AwsJobAbortConfig=None, awsJobTimeoutConfig: AwsJobTimeoutConfig=None, additionalParameters: AdditionalParameterMap=None, tags: List[Tag]=None) -> CreateOTAUpdateResponse:
        r"""Creates an AWS IoT OTAUpdate on a target group of things or groups.

        :param self:
        :param tags:  Metadata which can be used to manage updates.<br/>additionalParameters:  A list of additional OTA update parameters which are name-value pairs.<br/>roleArn:  The IAM role that grants AWS IoT access to the Amazon S3, AWS IoT jobs and AWS Code Signing resources to create an OTA update job.<br/>files:  The files to be streamed by the OTA update.<br/>awsJobTimeoutConfig:  Specifies the amount of time each device has to finish its execution of the job. A timer is started when the job execution status is set to <code>IN_PROGRESS</code>. If the job execution status is not set to another terminal state before the timer expires, it will be automatically set to <code>TIMED_OUT</code>.:<br/>awsJobAbortConfig:  The criteria that determine when and how a job abort takes place.:<br/>awsJobPresignedUrlConfig:  Configuration information for pre-signed URLs.:<br/>awsJobExecutionsRolloutConfig:  Configuration for the rollout of OTA updates.:<br/>targetSelection:  Specifies whether the update will continue to run (CONTINUOUS), or will be complete after all the things specified as targets have completed the update (SNAPSHOT). If continuous, the update may also be run on a thing when a change is detected in a target. For example, an update will run on a thing when the thing is added to a target group, even after the update was completed by all things originally in the group. Valid values: CONTINUOUS | SNAPSHOT.<br/>protocols:  The protocol used to transfer the OTA update image. Valid values are [HTTP], [MQTT], [HTTP, MQTT]. When both HTTP and MQTT are specified, the target device can choose the protocol.<br/>targets:  The devices targeted to receive OTA updates.<br/>description:  The description of the OTA update.<br/>otaUpdateId:  The ID of the OTA update to be created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>exponentialRate</i> The rate of increase for a job rollout. This parameter allows you to define an exponential rate increase for a job rollout.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>exponentialRate</b>: The rate of increase for a job rollout. This parameter allows you to define an exponential rate increase for a job rollout.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>maximumPerMinute</i> The maximum number of OTA update job executions started per minute.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>incrementFactor</i> The rate of increase for a job rollout. The number of things notified is multiplied by this factor.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>baseRatePerMinute</i> The minimum number of things that will be notified of a pending job, per minute, at the start of the job rollout. This is the initial rate of the rollout.<br/>The criteria to initiate the increase in rate of rollout for a job. AWS IoT supports up to one digit after the decimal (for example, 1.5, but not 1.55).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>rateIncreaseCriteria</b>: The criteria to initiate the increase in rate of rollout for a job. AWS IoT supports up to one digit after the decimal (for example, 1.5, but not 1.55).&nbsp;&nbsp;&nbsp;&nbsp; <i>expiresInSec</i> How long (in seconds) pre-signed URLs are valid. Valid values are 60 - 3600, the default value is 1800 seconds. Pre-signed URLs are generated when a request for the job document is received.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>abortCriteriaList</i> The list of criteria that determine when and how to abort the job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>inProgressTimeoutInMinutes</i> Specifies the amount of time, in minutes, this device has to finish execution of this job. The timeout interval can be anywhere between 1 minute and 7 days (1 to 10080 minutes). The in progress timer can't be updated and will apply to all job executions for the job. Whenever a job execution remains in the IN_PROGRESS status for longer than this interval, the job execution will fail and switch to the terminal <code>TIMED_OUT</code> status.<br/>
        :return: otaUpdateStatus:  The OTA update status.<br/>awsIotJobArn:  The AWS IoT job ARN associated with the OTA update.<br/>otaUpdateArn:  The OTA update ARN.<br/>awsIotJobId:  The AWS IoT job ID associated with the OTA update.<br/>otaUpdateId:  The OTA update ID.<br/>        """
        pass

    def create_policy(self, policyDocument: str, policyName: str, tags: List[Tag]=None) -> CreatePolicyResponse:
        r"""Creates an AWS IoT policy. The created policy is the default version for the policy. This operation creates a policy version with a version identifier of <b>1</b> and sets <b>1</b> as the policy's default version.

        :param self:
        :param tags:  Metadata which can be used to manage the policy. <note> For URI Request parameters use format: ...key1=value1&amp;key2=value2... For the CLI command-line parameter use format: &amp;&amp;tags "key1=value1&amp;key2=value2..." For the cli-input-json file use format: "tags": "key1=value1&amp;key2=value2..." </note><br/>policyDocument:  The JSON document that describes the policy. <b>policyDocument</b> must have a minimum length of 1, with a maximum length of 2048, excluding whitespace.<br/>policyName:  The policy name.<br/>
        :return: policyVersionId:  The policy version ID.<br/>policyDocument:  The JSON document that describes the policy.<br/>policyArn:  The policy ARN.<br/>policyName:  The policy name.<br/>        """
        pass

    def create_policy_version(self, policyDocument: str, policyName: str, setAsDefault: SetAsDefault=None) -> CreatePolicyVersionResponse:
        r"""Creates a new version of the specified AWS IoT policy. To update a policy, create a new policy version. A managed policy can have up to five versions. If the policy has five versions, you must use <a>DeletePolicyVersion</a> to delete an existing version before you create a new one. Optionally, you can set the new version as the policy's default version. The default version is the operative version (that is, the version that is in effect for the certificates to which the policy is attached).

        :param self:
        :param setAsDefault:  Specifies whether the policy version is set as the default. When this parameter is true, the new policy version becomes the operative version (that is, the version that is in effect for the certificates to which the policy is attached).<br/>policyDocument:  The JSON document that describes the policy. Minimum length of 1. Maximum length of 2048, excluding whitespace.<br/>policyName:  The policy name.<br/>
        :return: isDefaultVersion:  Specifies whether the policy version is the default.<br/>policyVersionId:  The policy version ID.<br/>policyDocument:  The JSON document that describes the policy.<br/>policyArn:  The policy ARN.<br/>        """
        pass

    def create_provisioning_claim(self, templateName: str) -> CreateProvisioningClaimResponse:
        r"""Creates a provisioning claim.

        :param self:
        :param templateName:  The name of the provisioning template to use.<br/>
        :return: expiration:  The provisioning claim expiration time.<br/>keyPair:  The provisioning claim key pair.:<br/>certificatePem:  The provisioning claim certificate.<br/>certificateId:  The ID of the certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PrivateKey</i> The private key.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PublicKey</i> The public key.<br/>        """
        pass

    def create_provisioning_template(self, provisioningRoleArn: str, templateBody: str, templateName: str, description: str=None, enabled: Enabled=None, preProvisioningHook: ProvisioningHook=None, tags: List[Tag]=None) -> CreateProvisioningTemplateResponse:
        r"""Creates a fleet provisioning template.

        :param self:
        :param tags:  Metadata which can be used to manage the fleet provisioning template. <note> For URI Request parameters use format: ...key1=value1&amp;key2=value2... For the CLI command-line parameter use format: &amp;&amp;tags "key1=value1&amp;key2=value2..." For the cli-input-json file use format: "tags": "key1=value1&amp;key2=value2..." </note><br/>preProvisioningHook:  Creates a pre-provisioning hook template.:<br/>provisioningRoleArn:  The role ARN for the role associated with the fleet provisioning template. This IoT role grants permission to provision a device.<br/>enabled:  True to enable the fleet provisioning template, otherwise false.<br/>templateBody:  The JSON formatted contents of the fleet provisioning template.<br/>description:  The description of the fleet provisioning template.<br/>templateName:  The name of the fleet provisioning template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>targetArn</i> The ARN of the target function.  <i>Note:</i> Only Lambda functions are currently supported.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>payloadVersion</i> The payload that was sent to the target function.  <i>Note:</i> Only Lambda functions are currently supported.<br/>
        :return: defaultVersionId:  The default version of the fleet provisioning template.<br/>templateName:  The name of the fleet provisioning template.<br/>templateArn:  The ARN that identifies the provisioning template.<br/>        """
        pass

    def create_provisioning_template_version(self, templateBody: str, templateName: str, setAsDefault: SetAsDefault=None) -> CreateProvisioningTemplateVersionResponse:
        r"""Creates a new version of a fleet provisioning template.

        :param self:
        :param setAsDefault:  Sets a fleet provision template version as the default version.<br/>templateBody:  The JSON formatted contents of the fleet provisioning template.<br/>templateName:  The name of the fleet provisioning template.<br/>
        :return: isDefaultVersion:  True if the fleet provisioning template version is the default version, otherwise false.<br/>versionId:  The version of the fleet provisioning template.<br/>templateName:  The name of the fleet provisioning template.<br/>templateArn:  The ARN that identifies the provisioning template.<br/>        """
        pass

    def create_role_alias(self, roleArn: str, roleAlias: str, credentialDurationSeconds: int=None, tags: List[Tag]=None) -> CreateRoleAliasResponse:
        r"""Creates a role alias.

        :param self:
        :param tags:  Metadata which can be used to manage the role alias. <note> For URI Request parameters use format: ...key1=value1&amp;key2=value2... For the CLI command-line parameter use format: &amp;&amp;tags "key1=value1&amp;key2=value2..." For the cli-input-json file use format: "tags": "key1=value1&amp;key2=value2..." </note><br/>credentialDurationSeconds:  How long (in seconds) the credentials will be valid.<br/>roleArn:  The role ARN.<br/>roleAlias:  The role alias that points to a role ARN. This allows you to change the role without having to update the device.<br/>
        :return: roleAliasArn:  The role alias ARN.<br/>roleAlias:  The role alias.<br/>        """
        pass

    def create_scheduled_audit(self, scheduledAuditName: str, targetCheckNames: List[AuditCheckName], frequency: str, dayOfMonth: str=None, dayOfWeek: str=None, tags: List[Tag]=None) -> CreateScheduledAuditResponse:
        r"""Creates a scheduled audit that is run at a specified time interval.

        :param self:
        :param tags:  Metadata that can be used to manage the scheduled audit.<br/>scheduledAuditName:  The name you want to give to the scheduled audit. (Max. 128 chars)<br/>targetCheckNames:  Which checks are performed during the scheduled audit. Checks must be enabled for your account. (Use <code>DescribeAccountAuditConfiguration</code> to see the list of all checks, including those that are enabled or use <code>UpdateAccountAuditConfiguration</code> to select which checks are enabled.)<br/>dayOfWeek:  The day of the week on which the scheduled audit takes place, either <code>SUN</code>, <code>MON</code>, <code>TUE</code>, <code>WED</code>, <code>THU</code>, <code>FRI</code>, or <code>SAT</code>. This field is required if the <code>frequency</code> parameter is set to <code>WEEKLY</code> or <code>BIWEEKLY</code>.<br/>dayOfMonth:  The day of the month on which the scheduled audit takes place. This can be "1" through "31" or "LAST". This field is required if the "frequency" parameter is set to <code>MONTHLY</code>. If days 29 to 31 are specified, and the month doesn't have that many days, the audit takes place on the <code>LAST</code> day of the month.<br/>frequency:  How often the scheduled audit takes place, either <code>DAILY</code>, <code>WEEKLY</code>, <code>BIWEEKLY</code> or <code>MONTHLY</code>. The start time of each audit is determined by the system.<br/>
        :return: scheduledAuditArn:  The ARN of the scheduled audit.<br/>        """
        pass

    def create_security_profile(self, securityProfileName: str, securityProfileDescription: str=None, behaviors: List[Behavior]=None, alertTargets: AlertTargets=None, additionalMetricsToRetain: List[BehaviorMetric]=None, additionalMetricsToRetainV2: List[MetricToRetain]=None, tags: List[Tag]=None) -> CreateSecurityProfileResponse:
        r"""Creates a Device Defender security profile.

        :param self:
        :param tags:  Metadata that can be used to manage the security profile.<br/>additionalMetricsToRetainV2:  A list of metrics whose data is retained (stored). By default, data is retained for any metric used in the profile's <code>behaviors</code>, but it is also retained for any metric specified here. Can be used with custom metrics; cannot be used with dimensions.<br/>additionalMetricsToRetain:   <i>Please use <a>CreateSecurityProfileRequest$additionalMetricsToRetainV2</a> instead.</i>  A list of metrics whose data is retained (stored). By default, data is retained for any metric used in the profile's <code>behaviors</code>, but it is also retained for any metric specified here. Can be used with custom metrics; cannot be used with dimensions.<br/>alertTargets:  Specifies the destinations to which alerts are sent. (Alerts are always sent to the console.) Alerts are generated when a device (thing) violates a behavior.<br/>behaviors:  Specifies the behaviors that, when violated by a device (thing), cause an alert.<br/>securityProfileDescription:  A description of the security profile.<br/>securityProfileName:  The name you are giving to the security profile.<br/>
        :return: securityProfileArn:  The ARN of the security profile.<br/>securityProfileName:  The name you gave to the security profile.<br/>        """
        pass

    def create_stream(self, roleArn: str, files: List[StreamFile], streamId: str, description: str=None, tags: List[Tag]=None) -> CreateStreamResponse:
        r"""Creates a stream for delivering one or more large files in chunks over MQTT. A stream transports data bytes in chunks or blocks packaged as MQTT messages from a source like S3. You can have one or more files associated with a stream.

        :param self:
        :param tags:  Metadata which can be used to manage streams.<br/>roleArn:  An IAM role that allows the IoT service principal assumes to access your S3 files.<br/>files:  The files to stream.<br/>description:  A description of the stream.<br/>streamId:  The stream ID.<br/>
        :return: streamVersion:  The version of the stream.<br/>description:  A description of the stream.<br/>streamArn:  The stream ARN.<br/>streamId:  The stream ID.<br/>        """
        pass

    def create_thing(self, thingName: str, thingTypeName: str=None, attributePayload: AttributePayload=None, billingGroupName: str=None) -> CreateThingResponse:
        r"""Creates a thing record in the registry. If this call is made multiple times using the same thing name and configuration, the call will succeed. If this call is made with the same thing name but different configuration a <code>ResourceAlreadyExistsException</code> is thrown. <note> This is a control plane operation. See <a href="https://docs.aws.amazon.com/iot/latest/developerguide/iot-authorization.html">Authorization</a> for information about authorizing control plane actions. </note>

        :param self:
        :param billingGroupName:  The name of the billing group the thing will be added to.<br/>attributePayload:  The attribute payload, which consists of up to three name/value pairs in a JSON document. For example:  <code>{\"attributes\":{\"string1\":\"string2\"}}</code> :<br/>thingTypeName:  The name of the thing type associated with the new thing.<br/>thingName:  The name of the thing to create. You can't change a thing's name after you create it. To change a thing's name, you must create a new thing, give it the new name, and then delete the old thing.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>merge</i> Specifies whether the list of attributes provided in the <code>AttributePayload</code> is merged with the attributes stored in the registry, instead of overwriting them. To remove an attribute, call <code>UpdateThing</code> with an empty attribute value. <note> The <code>merge</code> attribute is only valid when calling <code>UpdateThing</code> or <code>UpdateThingGroup</code>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>attributes</i> A JSON string containing up to three key-value pair in JSON format. For example:  <code>{\"attributes\":{\"string1\":\"string2\"}}</code> <br/>
        :return: thingId:  The thing ID.<br/>thingArn:  The ARN of the new thing.<br/>thingName:  The name of the new thing.<br/>        """
        pass

    def create_thing_group(self, thingGroupName: str, parentGroupName: str=None, thingGroupProperties: ThingGroupProperties=None, tags: List[Tag]=None) -> CreateThingGroupResponse:
        r"""Create a thing group. <note> This is a control plane operation. See <a href="https://docs.aws.amazon.com/iot/latest/developerguide/iot-authorization.html">Authorization</a> for information about authorizing control plane actions. </note>

        :param self:
        :param tags:  Metadata which can be used to manage the thing group.<br/>thingGroupProperties:  The thing group properties.:<br/>parentGroupName:  The name of the parent thing group.<br/>thingGroupName:  The thing group name to create.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>attributePayload</i> The thing group attributes in JSON format.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>attributePayload</b>: The thing group attributes in JSON format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>thingGroupDescription</i> The thing group description.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>merge</i> Specifies whether the list of attributes provided in the <code>AttributePayload</code> is merged with the attributes stored in the registry, instead of overwriting them. To remove an attribute, call <code>UpdateThing</code> with an empty attribute value. <note> The <code>merge</code> attribute is only valid when calling <code>UpdateThing</code> or <code>UpdateThingGroup</code>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>attributes</i> A JSON string containing up to three key-value pair in JSON format. For example:  <code>{\"attributes\":{\"string1\":\"string2\"}}</code> <br/>
        :return: thingGroupId:  The thing group ID.<br/>thingGroupArn:  The thing group ARN.<br/>thingGroupName:  The thing group name.<br/>        """
        pass

    def create_thing_type(self, thingTypeName: str, thingTypeProperties: ThingTypeProperties=None, tags: List[Tag]=None) -> CreateThingTypeResponse:
        r"""Creates a new thing type.

        :param self:
        :param tags:  Metadata which can be used to manage the thing type.<br/>thingTypeProperties:  The ThingTypeProperties for the thing type to create. It contains information about the new thing type including a description, and a list of searchable thing attribute names.:<br/>thingTypeName:  The name of the thing type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>searchableAttributes</i> A list of searchable thing attribute names.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>thingTypeDescription</i> The description of the thing type.<br/>
        :return: thingTypeId:  The thing type ID.<br/>thingTypeArn:  The Amazon Resource Name (ARN) of the thing type.<br/>thingTypeName:  The name of the thing type.<br/>        """
        pass

    def create_topic_rule(self, topicRulePayload: TopicRulePayload, ruleName: str, tags: str=None):
        r"""Creates a rule. Creating rules is an administrator-level action. Any user who has permission to create rules will be able to access data processed by the rule.

        :param self:
        :param tags:  Metadata which can be used to manage the topic rule. <note> For URI Request parameters use format: ...key1=value1&amp;key2=value2... For the CLI command-line parameter use format: --tags "key1=value1&amp;key2=value2..." For the cli-input-json file use format: "tags": "key1=value1&amp;key2=value2..." </note><br/>topicRulePayload:  The rule payload.:<br/>ruleName:  The name of the rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>errorAction</i> The action to take when an error occurs.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>errorAction</b>: The action to take when an error occurs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>awsIotSqlVersion</i> The version of the SQL rules engine to use when evaluating the rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ruleDisabled</i> Specifies whether the rule is disabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>actions</i> The actions associated with the rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> The description of the rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>sql</i> The SQL statement used to query the topic. For more information, see <a href="https://docs.aws.amazon.com/iot/latest/developerguide/iot-sql-reference.html">AWS IoT SQL Reference</a> in the <i>AWS IoT Developer Guide</i>.<br/>Write to a DynamoDB table.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>dynamoDB</b>: Write to a DynamoDB table.
        :return:         """
        pass

    def create_topic_rule_destination(self, destinationConfiguration: TopicRuleDestinationConfiguration) -> CreateTopicRuleDestinationResponse:
        r"""Creates a topic rule destination. The destination must be confirmed prior to use.

        :param self:
        :param destinationConfiguration:  The topic rule destination configuration.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>vpcConfiguration</i> Configuration of the virtual private cloud (VPC) connection.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>vpcConfiguration</b>: Configuration of the virtual private cloud (VPC) connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>httpUrlConfiguration</i> Configuration of the HTTP URL.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>httpUrlConfiguration</b>: Configuration of the HTTP URL.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>confirmationUrl</i> The URL AWS IoT uses to confirm ownership of or access to the topic rule destination URL.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>roleArn</i> The ARN of a role that has permission to create and attach to elastic network interfaces (ENIs).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>vpcId</i> The ID of the VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>securityGroups</i> The security groups of the VPC destination.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>subnetIds</i> The subnet IDs of the VPC destination.<br/>
        :return: topicRuleDestination:  The topic rule destination.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>vpcProperties</i> Properties of the virtual private cloud (VPC) connection.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>vpcProperties</b>: Properties of the virtual private cloud (VPC) connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>httpUrlProperties</i> Properties of the HTTP URL.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>httpUrlProperties</b>: Properties of the HTTP URL.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusReason</i> Additional details or reason why the topic rule destination is in the current status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedAt</i> The date and time when the topic rule destination was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The date and time when the topic rule destination was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the topic rule destination. Valid values are: <dl> <dt>IN_PROGRESS</dt> <dd> A topic rule destination was created but has not been confirmed. You can set <code>status</code> to <code>IN_PROGRESS</code> by calling <code>UpdateTopicRuleDestination</code>. Calling <code>UpdateTopicRuleDestination</code> causes a new confirmation challenge to be sent to your confirmation endpoint. </dd> <dt>ENABLED</dt> <dd> Confirmation was completed, and traffic to this destination is allowed. You can set <code>status</code> to <code>DISABLED</code> by calling <code>UpdateTopicRuleDestination</code>. </dd> <dt>DISABLED</dt> <dd> Confirmation was completed, and traffic to this destination is not allowed. You can set <code>status</code> to <code>ENABLED</code> by calling <code>UpdateTopicRuleDestination</code>. </dd> <dt>ERROR</dt> <dd> Confirmation could not be completed, for example if the confirmation timed out. You can call <code>GetTopicRuleDestination</code> for details about the error. You can set <code>status</code> to <code>IN_PROGRESS</code> by calling <code>UpdateTopicRuleDestination</code>. Calling <code>UpdateTopicRuleDestination</code> causes a new confirmation challenge to be sent to your confirmation endpoint. </dd> </dl><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The topic rule destination URL.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>confirmationUrl</i> The URL used to confirm the HTTP topic rule destination URL.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>roleArn</i> The ARN of a role that has permission to create and attach to elastic network interfaces (ENIs).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>vpcId</i> The ID of the VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>securityGroups</i> The security groups of the VPC destination.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>subnetIds</i> The subnet IDs of the VPC destination.<br/>        """
        pass

    def delete_account_audit_configuration(self, deleteScheduledAudits: DeleteScheduledAudits=None) -> DeleteAccountAuditConfigurationResponse:
        r"""Restores the default settings for Device Defender audits for this account. Any configuration data you entered is deleted and all audit checks are reset to disabled. 

        :param self:
        :param deleteScheduledAudits:  If true, all scheduled audits are deleted.<br/>
        :return:         """
        pass

    def delete_audit_suppression(self, resourceIdentifier: ResourceIdentifier, checkName: str) -> DeleteAuditSuppressionResponse:
        r""" Deletes a Device Defender audit suppression. 

        :param self:
        :param resourceIdentifier:  Information that identifies the noncompliant resource.:<br/>checkName:  An audit check name. Checks must be enabled for your account. (Use <code>DescribeAccountAuditConfiguration</code> to see the list of all checks, including those that are enabled or use <code>UpdateAccountAuditConfiguration</code> to select which checks are enabled.)<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>roleAliasArn</i> The ARN of the role alias that has overly permissive actions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>iamRoleArn</i> The ARN of the IAM role that has overly permissive actions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>account</i> The account with which the resource is associated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>policyVersionIdentifier</i> The version of the policy associated with the resource.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>policyVersionIdentifier</b>: The version of the policy associated with the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>clientId</i> The client ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>cognitoIdentityPoolId</i> The ID of the Amazon Cognito identity pool.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>caCertificateId</i> The ID of the CA certificate used to authorize the certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deviceCertificateId</i> The ID of the certificate attached to the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>policyVersionId</i> The ID of the version of the policy associated with the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>policyName</i> The name of the policy.<br/>
        :return:         """
        pass

    def delete_authorizer(self, authorizerName: str) -> DeleteAuthorizerResponse:
        r"""Deletes an authorizer.

        :param self:
        :param authorizerName:  The name of the authorizer to delete.<br/>
        :return:         """
        pass

    def delete_billing_group(self, billingGroupName: str, expectedVersion: OptionalVersion=None) -> DeleteBillingGroupResponse:
        r"""Deletes the billing group.

        :param self:
        :param expectedVersion:  The expected version of the billing group. If the version of the billing group does not match the expected version specified in the request, the <code>DeleteBillingGroup</code> request is rejected with a <code>VersionConflictException</code>.<br/>billingGroupName:  The name of the billing group.<br/>
        :return:         """
        pass

    def delete_ca_certificate(self, certificateId: str) -> DeleteCACertificateResponse:
        r"""Deletes a registered CA certificate.

        :param self:
        :param certificateId:  The ID of the certificate to delete. (The last part of the certificate ARN contains the certificate ID.)<br/>
        :return:         """
        pass

    def delete_certificate(self, certificateId: str, forceDelete: ForceDelete=None):
        r"""Deletes the specified certificate. A certificate cannot be deleted if it has a policy or IoT thing attached to it or if its status is set to ACTIVE. To delete a certificate, first use the <a>DetachPrincipalPolicy</a> API to detach all policies. Next, use the <a>UpdateCertificate</a> API to set the certificate to the INACTIVE status.

        :param self:
        :param forceDelete:  Forces the deletion of a certificate if it is inactive and is not attached to an IoT thing.<br/>certificateId:  The ID of the certificate. (The last part of the certificate ARN contains the certificate ID.)<br/>
        :return:         """
        pass

    def delete_custom_metric(self, metricName: str) -> DeleteCustomMetricResponse:
        r"""<note> Before you can delete a custom metric, you must first remove the custom metric from all security profiles it's a part of. The security profile associated with the custom metric can be found using the <a href="https://docs.aws.amazon.com/iot/latest/apireference/API_ListSecurityProfiles.html">ListSecurityProfiles</a> API with <code>metricName</code> set to your custom metric name. </note>  Deletes a Device Defender detect custom metric. 

        :param self:
        :param metricName:   The name of the custom metric. <br/>
        :return:         """
        pass

    def delete_dimension(self, name: str) -> DeleteDimensionResponse:
        r"""Removes the specified dimension from your AWS account.

        :param self:
        :param name:  The unique identifier for the dimension that you want to delete.<br/>
        :return:         """
        pass

    def delete_domain_configuration(self, domainConfigurationName: str) -> DeleteDomainConfigurationResponse:
        r"""Deletes the specified domain configuration.

        :param self:
        :param domainConfigurationName:  The name of the domain configuration to be deleted.<br/>
        :return:         """
        pass

    def delete_dynamic_thing_group(self, thingGroupName: str, expectedVersion: OptionalVersion=None) -> DeleteDynamicThingGroupResponse:
        r"""Deletes a dynamic thing group.

        :param self:
        :param expectedVersion:  The expected version of the dynamic thing group to delete.<br/>thingGroupName:  The name of the dynamic thing group to delete.<br/>
        :return:         """
        pass

    def delete_job(self, jobId: str, force: ForceFlag=None, namespaceId: str=None):
        r"""Deletes a job and its related job executions. Deleting a job may take time, depending on the number of job executions created for the job and various other factors. While the job is being deleted, the status of the job will be shown as "DELETION_IN_PROGRESS". Attempting to delete or cancel a job whose status is already "DELETION_IN_PROGRESS" will result in an error. Only 10 jobs may have status "DELETION_IN_PROGRESS" at the same time, or a LimitExceededException will occur.

        :param self:
        :param namespaceId:  The namespace used to indicate that a job is a customer-managed job. When you specify a value for this parameter, AWS IoT Core sends jobs notifications to MQTT topics that contain the value in the following format.  <code>$aws/things/<i>THING_NAME</i>/jobs/<i>JOB_ID</i>/notify-namespace-<i>NAMESPACE_ID</i>/</code>  <note> The <code>namespaceId</code> feature is in public preview. </note><br/>force:  (Optional) When true, you can delete a job which is "IN_PROGRESS". Otherwise, you can only delete a job which is in a terminal state ("COMPLETED" or "CANCELED") or an exception will occur. The default is false. <note> Deleting a job which is "IN_PROGRESS", will cause a device which is executing the job to be unable to access job information or update the job execution status. Use caution and ensure that each device executing a job which is deleted is able to recover to a valid state. </note><br/>jobId:  The ID of the job to be deleted. After a job deletion is completed, you may reuse this jobId when you create a new job. However, this is not recommended, and you must ensure that your devices are not using the jobId to refer to the deleted job.<br/>
        :return:         """
        pass

    def delete_job_execution(self, executionNumber: ExecutionNumber, thingName: str, jobId: str, force: ForceFlag=None, namespaceId: str=None):
        r"""Deletes a job execution.

        :param self:
        :param namespaceId:  The namespace used to indicate that a job is a customer-managed job. When you specify a value for this parameter, AWS IoT Core sends jobs notifications to MQTT topics that contain the value in the following format.  <code>$aws/things/<i>THING_NAME</i>/jobs/<i>JOB_ID</i>/notify-namespace-<i>NAMESPACE_ID</i>/</code>  <note> The <code>namespaceId</code> feature is in public preview. </note><br/>force:  (Optional) When true, you can delete a job execution which is "IN_PROGRESS". Otherwise, you can only delete a job execution which is in a terminal state ("SUCCEEDED", "FAILED", "REJECTED", "REMOVED" or "CANCELED") or an exception will occur. The default is false. <note> Deleting a job execution which is "IN_PROGRESS", will cause the device to be unable to access job information or update the job execution status. Use caution and ensure that the device is able to recover to a valid state. </note><br/>executionNumber:  The ID of the job execution to be deleted. The <code>executionNumber</code> refers to the execution of a particular job on a particular device. Note that once a job execution is deleted, the <code>executionNumber</code> may be reused by IoT, so be sure you get and use the correct value here.<br/>thingName:  The name of the thing whose job execution will be deleted.<br/>jobId:  The ID of the job whose execution on a particular device will be deleted.<br/>
        :return:         """
        pass

    def delete_job_template(self, jobTemplateId: str):
        r"""Deletes the specified job template.

        :param self:
        :param jobTemplateId:  The unique identifier of the job template to delete.<br/>
        :return:         """
        pass

    def delete_mitigation_action(self, actionName: str) -> DeleteMitigationActionResponse:
        r"""Deletes a defined mitigation action from your AWS account.

        :param self:
        :param actionName:  The name of the mitigation action that you want to delete.<br/>
        :return:         """
        pass

    def delete_ota_update(self, otaUpdateId: str, deleteStream: DeleteStream=None, forceDeleteAWSJob: ForceDeleteAWSJob=None) -> DeleteOTAUpdateResponse:
        r"""Delete an OTA update.

        :param self:
        :param forceDeleteAWSJob:  When true, deletes the AWS job created by the OTAUpdate process even if it is "IN_PROGRESS". Otherwise, if the job is not in a terminal state ("COMPLETED" or "CANCELED") an exception will occur. The default is false.<br/>deleteStream:  When true, the stream created by the OTAUpdate process is deleted when the OTA update is deleted. Ignored if the stream specified in the OTAUpdate is supplied by the user.<br/>otaUpdateId:  The ID of the OTA update to delete.<br/>
        :return:         """
        pass

    def delete_policy(self, policyName: str):
        r"""Deletes the specified policy. A policy cannot be deleted if it has non-default versions or it is attached to any certificate. To delete a policy, use the DeletePolicyVersion API to delete all non-default versions of the policy; use the DetachPrincipalPolicy API to detach the policy from any certificate; and then use the DeletePolicy API to delete the policy. When a policy is deleted using DeletePolicy, its default version is deleted with it.

        :param self:
        :param policyName:  The name of the policy to delete.<br/>
        :return:         """
        pass

    def delete_policy_version(self, policyVersionId: str, policyName: str):
        r"""Deletes the specified version of the specified policy. You cannot delete the default version of a policy using this API. To delete the default version of a policy, use <a>DeletePolicy</a>. To find out which version of a policy is marked as the default version, use ListPolicyVersions.

        :param self:
        :param policyVersionId:  The policy version ID.<br/>policyName:  The name of the policy.<br/>
        :return:         """
        pass

    def delete_provisioning_template(self, templateName: str) -> DeleteProvisioningTemplateResponse:
        r"""Deletes a fleet provisioning template.

        :param self:
        :param templateName:  The name of the fleet provision template to delete.<br/>
        :return:         """
        pass

    def delete_provisioning_template_version(self, versionId: int, templateName: str) -> DeleteProvisioningTemplateVersionResponse:
        r"""Deletes a fleet provisioning template version.

        :param self:
        :param versionId:  The fleet provisioning template version ID to delete.<br/>templateName:  The name of the fleet provisioning template version to delete.<br/>
        :return:         """
        pass

    def delete_registration_code(self) -> DeleteRegistrationCodeResponse:
        r"""Deletes a CA certificate registration code.

        :param self:
        :param 
        :return:         """
        pass

    def delete_role_alias(self, roleAlias: str) -> DeleteRoleAliasResponse:
        r"""Deletes a role alias

        :param self:
        :param roleAlias:  The role alias to delete.<br/>
        :return:         """
        pass

    def delete_scheduled_audit(self, scheduledAuditName: str) -> DeleteScheduledAuditResponse:
        r"""Deletes a scheduled audit.

        :param self:
        :param scheduledAuditName:  The name of the scheduled audit you want to delete.<br/>
        :return:         """
        pass

    def delete_security_profile(self, securityProfileName: str, expectedVersion: OptionalVersion=None) -> DeleteSecurityProfileResponse:
        r"""Deletes a Device Defender security profile.

        :param self:
        :param expectedVersion:  The expected version of the security profile. A new version is generated whenever the security profile is updated. If you specify a value that is different from the actual version, a <code>VersionConflictException</code> is thrown.<br/>securityProfileName:  The name of the security profile to be deleted.<br/>
        :return:         """
        pass

    def delete_stream(self, streamId: str) -> DeleteStreamResponse:
        r"""Deletes a stream.

        :param self:
        :param streamId:  The stream ID.<br/>
        :return:         """
        pass

    def delete_thing(self, thingName: str, expectedVersion: OptionalVersion=None) -> DeleteThingResponse:
        r"""Deletes the specified thing. Returns successfully with no error if the deletion is successful or you specify a thing that doesn't exist.

        :param self:
        :param expectedVersion:  The expected version of the thing record in the registry. If the version of the record in the registry does not match the expected version specified in the request, the <code>DeleteThing</code> request is rejected with a <code>VersionConflictException</code>.<br/>thingName:  The name of the thing to delete.<br/>
        :return:         """
        pass

    def delete_thing_group(self, thingGroupName: str, expectedVersion: OptionalVersion=None) -> DeleteThingGroupResponse:
        r"""Deletes a thing group.

        :param self:
        :param expectedVersion:  The expected version of the thing group to delete.<br/>thingGroupName:  The name of the thing group to delete.<br/>
        :return:         """
        pass

    def delete_thing_type(self, thingTypeName: str) -> DeleteThingTypeResponse:
        r"""Deletes the specified thing type. You cannot delete a thing type if it has things associated with it. To delete a thing type, first mark it as deprecated by calling <a>DeprecateThingType</a>, then remove any associated things by calling <a>UpdateThing</a> to change the thing type on any associated thing, and finally use <a>DeleteThingType</a> to delete the thing type.

        :param self:
        :param thingTypeName:  The name of the thing type.<br/>
        :return:         """
        pass

    def delete_topic_rule(self, ruleName: str):
        r"""Deletes the rule.

        :param self:
        :param ruleName:  The name of the rule.<br/>
        :return:         """
        pass

    def delete_topic_rule_destination(self, arn: str) -> DeleteTopicRuleDestinationResponse:
        r"""Deletes a topic rule destination.

        :param self:
        :param arn:  The ARN of the topic rule destination to delete.<br/>
        :return:         """
        pass

    def delete_v2_logging_level(self, targetName: str, targetType: str):
        r"""Deletes a logging level.

        :param self:
        :param targetName:  The name of the resource for which you are configuring logging.<br/>targetType:  The type of resource for which you are configuring logging. Must be <code>THING_Group</code>.<br/>
        :return:         """
        pass

    def deprecate_thing_type(self, thingTypeName: str, undoDeprecate: UndoDeprecate=None) -> DeprecateThingTypeResponse:
        r"""Deprecates a thing type. You can not associate new things with deprecated thing type.

        :param self:
        :param undoDeprecate:  Whether to undeprecate a deprecated thing type. If <b>true</b>, the thing type will not be deprecated anymore and you can associate it with things.<br/>thingTypeName:  The name of the thing type to deprecate.<br/>
        :return:         """
        pass

    def describe_account_audit_configuration(self) -> DescribeAccountAuditConfigurationResponse:
        r"""Gets information about the Device Defender audit settings for this account. Settings include how audit notifications are sent and which audit checks are enabled or disabled.

        :param self:
        :param 
        :return: auditCheckConfigurations:  Which audit checks are enabled and disabled for this account.<br/>auditNotificationTargetConfigurations:  Information about the targets to which audit notifications are sent for this account.<br/>roleArn:  The ARN of the role that grants permission to AWS IoT to access information about your devices, policies, certificates, and other items as required when performing an audit. On the first call to <code>UpdateAccountAuditConfiguration</code>, this parameter is required.<br/>        """
        pass

    def describe_audit_finding(self, findingId: str) -> DescribeAuditFindingResponse:
        r"""Gets information about a single audit finding. Properties include the reason for noncompliance, the severity of the issue, and the start time when the audit that returned the finding.

        :param self:
        :param findingId:  A unique identifier for a single audit finding. You can use this identifier to apply mitigation actions to the finding.<br/>
        :return: finding:  The findings (results) of the audit.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>isSuppressed</i>  Indicates whether the audit finding was suppressed or not during reporting. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>reasonForNonComplianceCode</i> A code that indicates the reason that the resource was noncompliant.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>reasonForNonCompliance</i> The reason the resource was noncompliant.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>relatedResources</i> The list of related resources.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>nonCompliantResource</i> The resource that was found to be noncompliant with the audit check.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>nonCompliantResource</b>: The resource that was found to be noncompliant with the audit check.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>severity</i> The severity of the result (finding).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>findingTime</i> The time the result (finding) was discovered.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>taskStartTime</i> The time the audit started.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>checkName</i> The audit check that generated this result.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>taskId</i> The ID of the audit that generated this result (finding).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>findingId</i> A unique identifier for this set of audit findings. This identifier is used to apply mitigation tasks to one or more sets of findings.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceType</i> The type of the noncompliant resource.<br/>Information that identifies the noncompliant resource.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>resourceIdentifier</b>: Information that identifies the noncompliant resource.        """
        pass

    def describe_audit_mitigation_actions_task(self, taskId: str) -> DescribeAuditMitigationActionsTaskResponse:
        r"""Gets information about an audit mitigation task that is used to apply mitigation actions to a set of audit findings. Properties include the actions being applied, the audit checks to which they're being applied, the task status, and aggregated task statistics.

        :param self:
        :param taskId:  The unique identifier for the audit mitigation task.<br/>
        :return: actionsDefinition:  Specifies the mitigation actions and their parameters that are applied as part of this task.<br/>auditCheckToActionsMapping:  Specifies the mitigation actions that should be applied to specific audit checks.<br/>target:  Identifies the findings to which the mitigation actions are applied. This can be by audit checks, by audit task, or a set of findings.:<br/>taskStatistics:  Aggregate counts of the results when the mitigation tasks were applied to the findings for this audit mitigation actions task.<br/>endTime:  The date and time when the task was completed or canceled.<br/>startTime:  The date and time when the task was started.<br/>taskStatus:  The current status of the task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>auditCheckToReasonCodeFilter</i> Specifies a filter in the form of an audit check and set of reason codes that identify the findings from the audit to which the audit mitigation actions task apply.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>findingIds</i> If the task will apply a mitigation action to one or more listed findings, this value uniquely identifies those findings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>auditTaskId</i> If the task will apply a mitigation action to findings from a specific audit, this value uniquely identifies the audit.<br/>        """
        pass

    def describe_audit_suppression(self, resourceIdentifier: ResourceIdentifier, checkName: str) -> DescribeAuditSuppressionResponse:
        r""" Gets information about a Device Defender audit suppression. 

        :param self:
        :param resourceIdentifier:  Information that identifies the noncompliant resource.:<br/>checkName:  An audit check name. Checks must be enabled for your account. (Use <code>DescribeAccountAuditConfiguration</code> to see the list of all checks, including those that are enabled or use <code>UpdateAccountAuditConfiguration</code> to select which checks are enabled.)<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>roleAliasArn</i> The ARN of the role alias that has overly permissive actions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>iamRoleArn</i> The ARN of the IAM role that has overly permissive actions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>account</i> The account with which the resource is associated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>policyVersionIdentifier</i> The version of the policy associated with the resource.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>policyVersionIdentifier</b>: The version of the policy associated with the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>clientId</i> The client ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>cognitoIdentityPoolId</i> The ID of the Amazon Cognito identity pool.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>caCertificateId</i> The ID of the CA certificate used to authorize the certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deviceCertificateId</i> The ID of the certificate attached to the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>policyVersionId</i> The ID of the version of the policy associated with the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>policyName</i> The name of the policy.<br/>
        :return: description:   The description of the audit suppression. <br/>suppressIndefinitely:   Indicates whether a suppression should exist indefinitely or not. <br/>expirationDate:   The epoch timestamp in seconds at which this suppression expires. <br/>resourceIdentifier:  Information that identifies the noncompliant resource.:<br/>checkName:  An audit check name. Checks must be enabled for your account. (Use <code>DescribeAccountAuditConfiguration</code> to see the list of all checks, including those that are enabled or use <code>UpdateAccountAuditConfiguration</code> to select which checks are enabled.)<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>roleAliasArn</i> The ARN of the role alias that has overly permissive actions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>iamRoleArn</i> The ARN of the IAM role that has overly permissive actions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>account</i> The account with which the resource is associated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>policyVersionIdentifier</i> The version of the policy associated with the resource.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>policyVersionIdentifier</b>: The version of the policy associated with the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>clientId</i> The client ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>cognitoIdentityPoolId</i> The ID of the Amazon Cognito identity pool.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>caCertificateId</i> The ID of the CA certificate used to authorize the certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deviceCertificateId</i> The ID of the certificate attached to the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>policyVersionId</i> The ID of the version of the policy associated with the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>policyName</i> The name of the policy.<br/>        """
        pass

    def describe_audit_task(self, taskId: str) -> DescribeAuditTaskResponse:
        r"""Gets information about a Device Defender audit.

        :param self:
        :param taskId:  The ID of the audit whose information you want to get.<br/>
        :return: auditDetails:  Detailed information about each check performed during this audit.<br/>scheduledAuditName:  The name of the scheduled audit (only if the audit was a scheduled audit).<br/>taskStatistics:  Statistical information about the audit.:<br/>taskStartTime:  The time the audit started.<br/>taskType:  The type of audit: "ON_DEMAND_AUDIT_TASK" or "SCHEDULED_AUDIT_TASK".<br/>taskStatus:  The status of the audit: one of "IN_PROGRESS", "COMPLETED", "FAILED", or "CANCELED".<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>canceledChecks</i> The number of checks that did not run because the audit was canceled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>failedChecks</i> The number of checks.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>nonCompliantChecks</i> The number of checks that found noncompliant resources.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>compliantChecks</i> The number of checks that found compliant resources.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>waitingForDataCollectionChecks</i> The number of checks waiting for data collection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>inProgressChecks</i> The number of checks in progress.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>totalChecks</i> The number of checks in this audit.<br/>        """
        pass

    def describe_authorizer(self, authorizerName: str) -> DescribeAuthorizerResponse:
        r"""Describes an authorizer.

        :param self:
        :param authorizerName:  The name of the authorizer to describe.<br/>
        :return: authorizerDescription:  The authorizer description.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>signingDisabled</i> Specifies whether AWS IoT validates the token signature in an authorization request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastModifiedDate</i> The UNIX timestamp of when the authorizer was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationDate</i> The UNIX timestamp of when the authorizer was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the authorizer.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tokenSigningPublicKeys</i> The public keys used to validate the token signature returned by your custom authentication service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tokenKeyName</i> The key used to extract the token from the HTTP headers.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>authorizerFunctionArn</i> The authorizer's Lambda function ARN.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>authorizerArn</i> The authorizer ARN.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>authorizerName</i> The authorizer name.<br/>        """
        pass

    def describe_billing_group(self, billingGroupName: str) -> DescribeBillingGroupResponse:
        r"""Returns information about a billing group.

        :param self:
        :param billingGroupName:  The name of the billing group.<br/>
        :return: billingGroupMetadata:  Additional information about the billing group.:<br/>billingGroupProperties:  The properties of the billing group.:<br/>version:  The version of the billing group.<br/>billingGroupArn:  The ARN of the billing group.<br/>billingGroupId:  The ID of the billing group.<br/>billingGroupName:  The name of the billing group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>billingGroupDescription</i> The description of the billing group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationDate</i> The date the billing group was created.<br/>        """
        pass

    def describe_ca_certificate(self, certificateId: str) -> DescribeCACertificateResponse:
        r"""Describes a registered CA certificate.

        :param self:
        :param certificateId:  The CA certificate identifier.<br/>
        :return: registrationConfig:  Information about the registration configuration.:<br/>certificateDescription:  The CA certificate description.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>validity</i> When the CA certificate is valid.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>validity</b>: When the CA certificate is valid.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>generationId</i> The generation ID of the CA certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>customerVersion</i> The customer version of the CA certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastModifiedDate</i> The date the CA certificate was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>autoRegistrationStatus</i> Whether the CA certificate configured for auto registration of device certificates. Valid values are "ENABLE" and "DISABLE"<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationDate</i> The date the CA certificate was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ownedBy</i> The owner of the CA certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>certificatePem</i> The CA certificate data, in PEM format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of a CA certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>certificateId</i> The CA certificate ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>certificateArn</i> The CA certificate ARN.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>notAfter</i> The certificate is not valid after this date.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>notBefore</i> The certificate is not valid before this date.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>roleArn</i> The ARN of the role.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>templateBody</i> The template body.<br/>        """
        pass

    def describe_certificate(self, certificateId: str) -> DescribeCertificateResponse:
        r"""Gets information about the specified certificate.

        :param self:
        :param certificateId:  The ID of the certificate. (The last part of the certificate ARN contains the certificate ID.)<br/>
        :return: certificateDescription:  The description of the certificate.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>certificateMode</i> The mode of the certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>validity</i> When the certificate is valid.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>validity</b>: When the certificate is valid.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>generationId</i> The generation ID of the certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>transferData</i> The transfer data.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>transferData</b>: The transfer data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>customerVersion</i> The customer version of the certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastModifiedDate</i> The date and time the certificate was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationDate</i> The date and time the certificate was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>previousOwnedBy</i> The ID of the AWS account of the previous owner of the certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ownedBy</i> The ID of the AWS account that owns the certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>certificatePem</i> The certificate data, in PEM format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>caCertificateId</i> The certificate ID of the CA certificate used to sign this certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>certificateId</i> The ID of the certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>certificateArn</i> The ARN of the certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>rejectDate</i> The date the transfer was rejected.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>acceptDate</i> The date the transfer was accepted.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>transferDate</i> The date the transfer took place.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>rejectReason</i> The reason why the transfer was rejected.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>transferMessage</i> The transfer message.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>notAfter</i> The certificate is not valid after this date.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>notBefore</i> The certificate is not valid before this date.<br/>        """
        pass

    def describe_custom_metric(self, metricName: str) -> DescribeCustomMetricResponse:
        r""" Gets information about a Device Defender detect custom metric. 

        :param self:
        :param metricName:   The name of the custom metric. <br/>
        :return: lastModifiedDate:   The time the custom metric was last modified in milliseconds since epoch. <br/>creationDate:   The creation date of the custom metric in milliseconds since epoch. <br/>displayName:   Field represents a friendly name in the console for the custom metric; doesn't have to be unique. Don't use this name as the metric identifier in the device metric report. Can be updated. <br/>metricType:   The type of the custom metric. Types include <code>string-list</code>, <code>ip-address-list</code>, <code>number-list</code>, and <code>number</code>. <br/>metricArn:   The Amazon Resource Number (ARN) of the custom metric. <br/>metricName:   The name of the custom metric. <br/>        """
        pass

    def describe_default_authorizer(self) -> DescribeDefaultAuthorizerResponse:
        r"""Describes the default authorizer.

        :param self:
        :param 
        :return: authorizerDescription:  The default authorizer's description.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>signingDisabled</i> Specifies whether AWS IoT validates the token signature in an authorization request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastModifiedDate</i> The UNIX timestamp of when the authorizer was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationDate</i> The UNIX timestamp of when the authorizer was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the authorizer.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tokenSigningPublicKeys</i> The public keys used to validate the token signature returned by your custom authentication service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tokenKeyName</i> The key used to extract the token from the HTTP headers.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>authorizerFunctionArn</i> The authorizer's Lambda function ARN.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>authorizerArn</i> The authorizer ARN.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>authorizerName</i> The authorizer name.<br/>        """
        pass

    def describe_detect_mitigation_actions_task(self, taskId: str) -> DescribeDetectMitigationActionsTaskResponse:
        r""" Gets information about a Device Defender ML Detect mitigation action. 

        :param self:
        :param taskId:   The unique identifier of the task. <br/>
        :return: taskSummary:   The description of a task. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>taskStatistics</i>  The statistics of a mitigation action task. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>taskStatistics</b>:  The statistics of a mitigation action task. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>actionsDefinition</i>  The definition of the actions. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>suppressedAlertsIncluded</i>  Includes suppressed alerts. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>onlyActiveViolationsIncluded</i>  Includes only active violations. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>violationEventOccurrenceRange</i>  Specifies the time period of which violation events occurred between. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>violationEventOccurrenceRange</b>:  Specifies the time period of which violation events occurred between. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>target</i>  Specifies the ML Detect findings to which the mitigation actions are applied. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>target</b>:  Specifies the ML Detect findings to which the mitigation actions are applied. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>taskEndTime</i>  The date the task ended. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>taskStartTime</i>  The date the task started. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>taskStatus</i>  The status of the task. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>taskId</i>  The unique identifier of the task. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>behaviorName</i>  The name of the behavior. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>securityProfileName</i>  The name of the security profile. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>violationIds</i>  The unique identifiers of the violations. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>endTime</i>  The end date and time of a time period in which violation events occurred. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>startTime</i>  The start date and time of a time period in which violation events occurred. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>actionsFailed</i>  The actions that failed. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>actionsSkipped</i>  The actions that were skipped. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>actionsExecuted</i>  The actions that were performed. <br/>        """
        pass

    def describe_dimension(self, name: str) -> DescribeDimensionResponse:
        r"""Provides details about a dimension that is defined in your AWS account.

        :param self:
        :param name:  The unique identifier for the dimension.<br/>
        :return: lastModifiedDate:  The date the dimension was last modified.<br/>creationDate:  The date the dimension was created.<br/>stringValues:  The value or list of values used to scope the dimension. For example, for topic filters, this is the pattern used to match the MQTT topic name.<br/>type:  The type of the dimension.<br/>arn:  The Amazon Resource Name (ARN) for the dimension.<br/>name:  The unique identifier for the dimension.<br/>        """
        pass

    def describe_domain_configuration(self, domainConfigurationName: str) -> DescribeDomainConfigurationResponse:
        r"""Gets summary information about a domain configuration.

        :param self:
        :param domainConfigurationName:  The name of the domain configuration.<br/>
        :return: lastStatusChangeDate:  The date and time the domain configuration's status was last changed.<br/>domainType:  The type of the domain.<br/>serviceType:  The type of service delivered by the endpoint.<br/>domainConfigurationStatus:  A Boolean value that specifies the current state of the domain configuration.<br/>authorizerConfig:  An object that specifies the authorization service for a domain.:<br/>serverCertificates:  A list containing summary information about the server certificate included in the domain configuration.<br/>domainName:  The name of the domain.<br/>domainConfigurationArn:  The ARN of the domain configuration.<br/>domainConfigurationName:  The name of the domain configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>allowAuthorizerOverride</i> A Boolean that specifies whether the domain configuration's authorization service can be overridden.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>defaultAuthorizerName</i> The name of the authorization service for a domain configuration.<br/>        """
        pass

    def describe_endpoint(self, endpointType: str=None) -> DescribeEndpointResponse:
        r"""Returns a unique endpoint specific to the AWS account making the call.

        :param self:
        :param endpointType:  The endpoint type. Valid endpoint types include: <ul> <li>  <code>iot:Data</code> - Returns a VeriSign signed data endpoint. </li> </ul> <ul> <li>  <code>iot:Data-ATS</code> - Returns an ATS signed data endpoint. </li> </ul> <ul> <li>  <code>iot:CredentialProvider</code> - Returns an AWS IoT credentials provider API endpoint. </li> </ul> <ul> <li>  <code>iot:Jobs</code> - Returns an AWS IoT device management Jobs API endpoint. </li> </ul> We strongly recommend that customers use the newer <code>iot:Data-ATS</code> endpoint type to avoid issues related to the widespread distrust of Symantec certificate authorities.<br/>
        :return: endpointAddress:  The endpoint. The format of the endpoint is as follows: <i>identifier</i>.iot.<i>region</i>.amazonaws.com.<br/>        """
        pass

    def describe_event_configurations(self) -> DescribeEventConfigurationsResponse:
        r"""Describes event configurations.

        :param self:
        :param 
        :return: lastModifiedDate:  The date the event configurations were last modified.<br/>creationDate:  The creation date of the event configuration.<br/>eventConfigurations:  The event configurations.<br/>        """
        pass

    def describe_index(self, indexName: str) -> DescribeIndexResponse:
        r"""Describes a search index.

        :param self:
        :param indexName:  The index name.<br/>
        :return: schema:  Contains a value that specifies the type of indexing performed. Valid values are: <ul> <li> REGISTRY – Your thing index contains only registry data. </li> <li> REGISTRY_AND_SHADOW - Your thing index contains registry data and shadow data. </li> <li> REGISTRY_AND_CONNECTIVITY_STATUS - Your thing index contains registry data and thing connectivity status data. </li> <li> REGISTRY_AND_SHADOW_AND_CONNECTIVITY_STATUS - Your thing index contains registry data, shadow data, and thing connectivity status data. </li> </ul><br/>indexStatus:  The index status.<br/>indexName:  The index name.<br/>        """
        pass

    def describe_job(self, jobId: str) -> DescribeJobResponse:
        r"""Describes a job.

        :param self:
        :param jobId:  The unique identifier you assigned to this job when it was created.<br/>
        :return: job:  Information about the job.:<br/>documentSource:  An S3 link to the job document.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>jobTemplateArn</i> The ARN of the job template used to create the job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>namespaceId</i> The namespace used to indicate that a job is a customer-managed job. When you specify a value for this parameter, AWS IoT Core sends jobs notifications to MQTT topics that contain the value in the following format.  <code>$aws/things/<i>THING_NAME</i>/jobs/<i>JOB_ID</i>/notify-namespace-<i>NAMESPACE_ID</i>/</code>  <note> The <code>namespaceId</code> feature is in public preview. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>timeoutConfig</i> Specifies the amount of time each device has to finish its execution of the job. A timer is started when the job execution status is set to <code>IN_PROGRESS</code>. If the job execution status is not set to another terminal state before the timer expires, it will be automatically set to <code>TIMED_OUT</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>timeoutConfig</b>: Specifies the amount of time each device has to finish its execution of the job. A timer is started when the job execution status is set to <code>IN_PROGRESS</code>. If the job execution status is not set to another terminal state before the timer expires, it will be automatically set to <code>TIMED_OUT</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>jobProcessDetails</i> Details about the job process.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>jobProcessDetails</b>: Details about the job process.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>completedAt</i> The time, in seconds since the epoch, when the job was completed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedAt</i> The time, in seconds since the epoch, when the job was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The time, in seconds since the epoch, when the job was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>abortConfig</i> Configuration for criteria to abort the job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>abortConfig</b>: Configuration for criteria to abort the job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>jobExecutionsRolloutConfig</i> Allows you to create a staged rollout of a job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>jobExecutionsRolloutConfig</b>: Allows you to create a staged rollout of a job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>presignedUrlConfig</i> Configuration for pre-signed S3 URLs.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>presignedUrlConfig</b>: Configuration for pre-signed S3 URLs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> A short text description of the job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>targets</i> A list of IoT things and thing groups to which the job should be sent.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>comment</i> If the job was updated, describes the reason for the update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>reasonCode</i> If the job was updated, provides the reason code for the update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>forceCanceled</i> Will be <code>true</code> if the job was canceled with the optional <code>force</code> parameter set to <code>true</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the job, one of <code>IN_PROGRESS</code>, <code>CANCELED</code>, <code>DELETION_IN_PROGRESS</code> or <code>COMPLETED</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>targetSelection</i> Specifies whether the job will continue to run (CONTINUOUS), or will be complete after all those things specified as targets have completed the job (SNAPSHOT). If continuous, the job may also be run on a thing when a change is detected in a target. For example, a job will run on a device when the thing representing the device is added to a target group, even after the job was completed by all things originally in the group. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>jobId</i> The unique identifier you assigned to this job when it was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>jobArn</i> An ARN identifying the job with format "arn:aws:iot:region:account:job/jobId".<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>expiresInSec</i> How long (in seconds) pre-signed URLs are valid. Valid values are 60 - 3600, the default value is 3600 seconds. Pre-signed URLs are generated when Jobs receives an MQTT request for the job document.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>roleArn</i> The ARN of an IAM role that grants grants permission to download files from the S3 bucket where the job data/updates are stored. The role must also grant permission for IoT to download the files.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>maximumPerMinute</i> The maximum number of things that will be notified of a pending job, per minute. This parameter allows you to create a staged rollout.<br/>The rate of increase for a job rollout. This parameter allows you to define an exponential rate for a job rollout.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>exponentialRate</b>: The rate of increase for a job rollout. This parameter allows you to define an exponential rate for a job rollout.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>criteriaList</i> The list of criteria that determine when and how to abort the job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>numberOfTimedOutThings</i> The number of things whose job execution status is <code>TIMED_OUT</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>numberOfRemovedThings</i> The number of things that are no longer scheduled to execute the job because they have been deleted or have been removed from the group that was a target of the job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>numberOfInProgressThings</i> The number of things currently executing the job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>numberOfQueuedThings</i> The number of things that are awaiting execution of the job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>numberOfRejectedThings</i> The number of things that rejected the job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>numberOfFailedThings</i> The number of things that failed executing the job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>numberOfSucceededThings</i> The number of things which successfully completed the job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>numberOfCanceledThings</i> The number of things that cancelled the job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>processingTargets</i> The target devices to which the job execution is being rolled out. This value will be null after the job execution has finished rolling out to all the target devices.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>inProgressTimeoutInMinutes</i> Specifies the amount of time, in minutes, this device has to finish execution of this job. The timeout interval can be anywhere between 1 minute and 7 days (1 to 10080 minutes). The in progress timer can't be updated and will apply to all job executions for the job. Whenever a job execution remains in the IN_PROGRESS status for longer than this interval, the job execution will fail and switch to the terminal <code>TIMED_OUT</code> status.<br/>        """
        pass

    def describe_job_execution(self, thingName: str, jobId: str, executionNumber: ExecutionNumber=None) -> DescribeJobExecutionResponse:
        r"""Describes a job execution.

        :param self:
        :param executionNumber:  A string (consisting of the digits "0" through "9" which is used to specify a particular job execution on a particular device.<br/>thingName:  The name of the thing on which the job execution is running.<br/>jobId:  The unique identifier you assigned to this job when it was created.<br/>
        :return: execution:  Information about the job execution.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>approximateSecondsBeforeTimedOut</i> The estimated number of seconds that remain before the job execution status will be changed to <code>TIMED_OUT</code>. The timeout interval can be anywhere between 1 minute and 7 days (1 to 10080 minutes). The actual job execution timeout can occur up to 60 seconds later than the estimated duration. This value will not be included if the job execution has reached a terminal status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>versionNumber</i> The version of the job execution. Job execution versions are incremented each time they are updated by a device.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>executionNumber</i> A string (consisting of the digits "0" through "9") which identifies this particular job execution on this particular device. It can be used in commands which return or update job execution information. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedAt</i> The time, in seconds since the epoch, when the job execution was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>startedAt</i> The time, in seconds since the epoch, when the job execution started.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>queuedAt</i> The time, in seconds since the epoch, when the job execution was queued.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>thingArn</i> The ARN of the thing on which the job execution is running.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusDetails</i> A collection of name/value pairs that describe the status of the job execution.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>statusDetails</b>: A collection of name/value pairs that describe the status of the job execution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>forceCanceled</i> Will be <code>true</code> if the job execution was canceled with the optional <code>force</code> parameter set to <code>true</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the job execution (IN_PROGRESS, QUEUED, FAILED, SUCCEEDED, TIMED_OUT, CANCELED, or REJECTED).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>jobId</i> The unique identifier you assigned to the job when it was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>detailsMap</i> The job execution status.<br/>        """
        pass

    def describe_job_template(self, jobTemplateId: str) -> DescribeJobTemplateResponse:
        r"""Returns information about a job template.

        :param self:
        :param jobTemplateId:  The unique identifier of the job template.<br/>
        :return: timeoutConfig:  Specifies the amount of time each device has to finish its execution of the job. A timer is started when the job execution status is set to <code>IN_PROGRESS</code>. If the job execution status is not set to another terminal state before the timer expires, it will be automatically set to <code>TIMED_OUT</code>.:<br/>abortConfig:  The criteria that determine when and how a job abort takes place.:<br/>jobExecutionsRolloutConfig:  Allows you to create a staged rollout of a job.:<br/>presignedUrlConfig:  Configuration for pre-signed S3 URLs.:<br/>createdAt:  The time, in seconds since the epoch, when the job template was created.<br/>document:  The job document.<br/>documentSource:  An S3 link to the job document.<br/>description:  A description of the job template.<br/>jobTemplateId:  The unique identifier of the job template.<br/>jobTemplateArn:  The ARN of the job template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>expiresInSec</i> How long (in seconds) pre-signed URLs are valid. Valid values are 60 - 3600, the default value is 3600 seconds. Pre-signed URLs are generated when Jobs receives an MQTT request for the job document.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>roleArn</i> The ARN of an IAM role that grants grants permission to download files from the S3 bucket where the job data/updates are stored. The role must also grant permission for IoT to download the files.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>exponentialRate</i> The rate of increase for a job rollout. This parameter allows you to define an exponential rate for a job rollout.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>exponentialRate</b>: The rate of increase for a job rollout. This parameter allows you to define an exponential rate for a job rollout.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>maximumPerMinute</i> The maximum number of things that will be notified of a pending job, per minute. This parameter allows you to create a staged rollout.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>incrementFactor</i> The exponential factor to increase the rate of rollout for a job. AWS IoT supports up to one digit after the decimal (for example, 1.5, but not 1.55).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>baseRatePerMinute</i> The minimum number of things that will be notified of a pending job, per minute at the start of job rollout. This parameter allows you to define the initial rate of rollout.<br/>The criteria to initiate the increase in rate of rollout for a job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>rateIncreaseCriteria</b>: The criteria to initiate the increase in rate of rollout for a job.&nbsp;&nbsp;&nbsp;&nbsp; <i>criteriaList</i> The list of criteria that determine when and how to abort the job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>inProgressTimeoutInMinutes</i> Specifies the amount of time, in minutes, this device has to finish execution of this job. The timeout interval can be anywhere between 1 minute and 7 days (1 to 10080 minutes). The in progress timer can't be updated and will apply to all job executions for the job. Whenever a job execution remains in the IN_PROGRESS status for longer than this interval, the job execution will fail and switch to the terminal <code>TIMED_OUT</code> status.<br/>        """
        pass

    def describe_mitigation_action(self, actionName: str) -> DescribeMitigationActionResponse:
        r"""Gets information about a mitigation action.

        :param self:
        :param actionName:  The friendly name that uniquely identifies the mitigation action.<br/>
        :return: lastModifiedDate:  The date and time when the mitigation action was last changed.<br/>creationDate:  The date and time when the mitigation action was added to your AWS account.<br/>actionParams:  Parameters that control how the mitigation action is applied, specific to the type of mitigation action.:<br/>roleArn:  The ARN of the IAM role used to apply this action.<br/>actionId:  A unique identifier for this action.<br/>actionArn:  The ARN that identifies this migration action.<br/>actionType:  The type of mitigation action.<br/>actionName:  The friendly name that uniquely identifies the mitigation action.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>publishFindingToSnsParams</i> Parameters to define a mitigation action that publishes findings to Amazon Simple Notification Service (Amazon SNS. You can implement your own custom actions in response to the Amazon SNS messages.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>publishFindingToSnsParams</b>: Parameters to define a mitigation action that publishes findings to Amazon Simple Notification Service (Amazon SNS. You can implement your own custom actions in response to the Amazon SNS messages.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>enableIoTLoggingParams</i> Parameters to define a mitigation action that enables AWS IoT logging at a specified level of detail.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>enableIoTLoggingParams</b>: Parameters to define a mitigation action that enables AWS IoT logging at a specified level of detail.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>replaceDefaultPolicyVersionParams</i> Parameters to define a mitigation action that adds a blank policy to restrict permissions.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>replaceDefaultPolicyVersionParams</b>: Parameters to define a mitigation action that adds a blank policy to restrict permissions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>addThingsToThingGroupParams</i> Parameters to define a mitigation action that moves devices associated with a certificate to one or more specified thing groups, typically for quarantine.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>addThingsToThingGroupParams</b>: Parameters to define a mitigation action that moves devices associated with a certificate to one or more specified thing groups, typically for quarantine.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>updateCACertificateParams</i> Parameters to define a mitigation action that changes the state of the CA certificate to inactive.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>updateCACertificateParams</b>: Parameters to define a mitigation action that changes the state of the CA certificate to inactive.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>updateDeviceCertificateParams</i> Parameters to define a mitigation action that changes the state of the device certificate to inactive.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>updateDeviceCertificateParams</b>: Parameters to define a mitigation action that changes the state of the device certificate to inactive.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>action</i> The action that you want to apply to the device certificate. The only supported value is <code>DEACTIVATE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>action</i> The action that you want to apply to the CA certificate. The only supported value is <code>DEACTIVATE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>overrideDynamicGroups</i> Specifies if this mitigation action can move the things that triggered the mitigation action even if they are part of one or more dynamic thing groups.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>thingGroupNames</i> The list of groups to which you want to add the things that triggered the mitigation action. You can add a thing to a maximum of 10 groups, but you can't add a thing to more than one group in the same hierarchy.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>templateName</i> The name of the template to be applied. The only supported value is <code>BLANK_POLICY</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>logLevel</i> Specifies the type of information to be logged.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>roleArnForLogging</i> The Amazon Resource Name (ARN) of the IAM role used for logging.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>topicArn</i> The ARN of the topic to which you want to publish the findings.<br/>        """
        pass

    def describe_provisioning_template(self, templateName: str) -> DescribeProvisioningTemplateResponse:
        r"""Returns information about a fleet provisioning template.

        :param self:
        :param templateName:  The name of the fleet provisioning template.<br/>
        :return: preProvisioningHook:  Gets information about a pre-provisioned hook.:<br/>provisioningRoleArn:  The ARN of the role associated with the provisioning template. This IoT role grants permission to provision a device.<br/>enabled:  True if the fleet provisioning template is enabled, otherwise false.<br/>templateBody:  The JSON formatted contents of the fleet provisioning template.<br/>defaultVersionId:  The default fleet template version ID.<br/>lastModifiedDate:  The date when the fleet provisioning template was last modified.<br/>creationDate:  The date when the fleet provisioning template was created.<br/>description:  The description of the fleet provisioning template.<br/>templateName:  The name of the fleet provisioning template.<br/>templateArn:  The ARN of the fleet provisioning template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>targetArn</i> The ARN of the target function.  <i>Note:</i> Only Lambda functions are currently supported.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>payloadVersion</i> The payload that was sent to the target function.  <i>Note:</i> Only Lambda functions are currently supported.<br/>        """
        pass

    def describe_provisioning_template_version(self, versionId: int, templateName: str) -> DescribeProvisioningTemplateVersionResponse:
        r"""Returns information about a fleet provisioning template version.

        :param self:
        :param versionId:  The fleet provisioning template version ID.<br/>templateName:  The template name.<br/>
        :return: isDefaultVersion:  True if the fleet provisioning template version is the default version.<br/>templateBody:  The JSON formatted contents of the fleet provisioning template version.<br/>creationDate:  The date when the fleet provisioning template version was created.<br/>versionId:  The fleet provisioning template version ID.<br/>        """
        pass

    def describe_role_alias(self, roleAlias: str) -> DescribeRoleAliasResponse:
        r"""Describes a role alias.

        :param self:
        :param roleAlias:  The role alias to describe.<br/>
        :return: roleAliasDescription:  The role alias description.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastModifiedDate</i> The UNIX timestamp of when the role alias was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationDate</i> The UNIX timestamp of when the role alias was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>credentialDurationSeconds</i> The number of seconds for which the credential is valid.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>owner</i> The role alias owner.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>roleArn</i> The role ARN.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>roleAliasArn</i> The ARN of the role alias.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>roleAlias</i> The role alias.<br/>        """
        pass

    def describe_scheduled_audit(self, scheduledAuditName: str) -> DescribeScheduledAuditResponse:
        r"""Gets information about a scheduled audit.

        :param self:
        :param scheduledAuditName:  The name of the scheduled audit whose information you want to get.<br/>
        :return: scheduledAuditArn:  The ARN of the scheduled audit.<br/>scheduledAuditName:  The name of the scheduled audit.<br/>targetCheckNames:  Which checks are performed during the scheduled audit. Checks must be enabled for your account. (Use <code>DescribeAccountAuditConfiguration</code> to see the list of all checks, including those that are enabled or use <code>UpdateAccountAuditConfiguration</code> to select which checks are enabled.)<br/>dayOfWeek:  The day of the week on which the scheduled audit takes place, either one of <code>SUN</code>, <code>MON</code>, <code>TUE</code>, <code>WED</code>, <code>THU</code>, <code>FRI</code>, or <code>SAT</code>.<br/>dayOfMonth:  The day of the month on which the scheduled audit takes place. This is will be <code>1</code> through <code>31</code> or <code>LAST</code>. If days <code>29</code>-<code>31</code> are specified, and the month does not have that many days, the audit takes place on the <code>LAST</code> day of the month.<br/>frequency:  How often the scheduled audit takes place, either one of <code>DAILY</code>, <code>WEEKLY</code>, <code>BIWEEKLY</code>, or <code>MONTHLY</code>. The start time of each audit is determined by the system.<br/>        """
        pass

    def describe_security_profile(self, securityProfileName: str) -> DescribeSecurityProfileResponse:
        r"""Gets information about a Device Defender security profile.

        :param self:
        :param securityProfileName:  The name of the security profile whose information you want to get.<br/>
        :return: lastModifiedDate:  The time the security profile was last modified.<br/>creationDate:  The time the security profile was created.<br/>version:  The version of the security profile. A new version is generated whenever the security profile is updated.<br/>additionalMetricsToRetainV2:  A list of metrics whose data is retained (stored). By default, data is retained for any metric used in the profile's behaviors, but it is also retained for any metric specified here.<br/>additionalMetricsToRetain:   <i>Please use <a>DescribeSecurityProfileResponse$additionalMetricsToRetainV2</a> instead.</i>  A list of metrics whose data is retained (stored). By default, data is retained for any metric used in the profile's <code>behaviors</code>, but it is also retained for any metric specified here.<br/>alertTargets:  Where the alerts are sent. (Alerts are always sent to the console.)<br/>behaviors:  Specifies the behaviors that, when violated by a device (thing), cause an alert.<br/>securityProfileDescription:  A description of the security profile (associated with the security profile when it was created or updated).<br/>securityProfileArn:  The ARN of the security profile.<br/>securityProfileName:  The name of the security profile.<br/>        """
        pass

    def describe_stream(self, streamId: str) -> DescribeStreamResponse:
        r"""Gets information about a stream.

        :param self:
        :param streamId:  The stream ID.<br/>
        :return: streamInfo:  Information about the stream.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>roleArn</i> An IAM role AWS IoT assumes to access your S3 files.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedAt</i> The date when the stream was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The date when the stream was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>files</i> The files to stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> The description of the stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>streamVersion</i> The stream version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>streamArn</i> The stream ARN.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>streamId</i> The stream ID.<br/>        """
        pass

    def describe_thing(self, thingName: str) -> DescribeThingResponse:
        r"""Gets information about the specified thing.

        :param self:
        :param thingName:  The name of the thing.<br/>
        :return: billingGroupName:  The name of the billing group the thing belongs to.<br/>version:  The current version of the thing record in the registry. <note> To avoid unintentional changes to the information in the registry, you can pass the version information in the <code>expectedVersion</code> parameter of the <code>UpdateThing</code> and <code>DeleteThing</code> calls. </note><br/>attributes:  The thing attributes.<br/>thingTypeName:  The thing type name.<br/>thingArn:  The ARN of the thing to describe.<br/>thingId:  The ID of the thing to describe.<br/>thingName:  The name of the thing.<br/>defaultClientId:  The default MQTT client ID. For a typical device, the thing name is also used as the default MQTT client ID. Although we don’t require a mapping between a thing's registry name and its use of MQTT client IDs, certificates, or shadow state, we recommend that you choose a thing name and use it as the MQTT client ID for the registry and the Device Shadow service. This lets you better organize your AWS IoT fleet without removing the flexibility of the underlying device certificate model or shadows.<br/>        """
        pass

    def describe_thing_group(self, thingGroupName: str) -> DescribeThingGroupResponse:
        r"""Describe a thing group.

        :param self:
        :param thingGroupName:  The name of the thing group.<br/>
        :return: status:  The dynamic thing group status.<br/>queryVersion:  The dynamic thing group query version.<br/>queryString:  The dynamic thing group search query string.<br/>indexName:  The dynamic thing group index name.<br/>thingGroupMetadata:  Thing group metadata.:<br/>thingGroupProperties:  The thing group properties.:<br/>version:  The version of the thing group.<br/>thingGroupArn:  The thing group ARN.<br/>thingGroupId:  The thing group ID.<br/>thingGroupName:  The name of the thing group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>attributePayload</i> The thing group attributes in JSON format.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>attributePayload</b>: The thing group attributes in JSON format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>thingGroupDescription</i> The thing group description.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>merge</i> Specifies whether the list of attributes provided in the <code>AttributePayload</code> is merged with the attributes stored in the registry, instead of overwriting them. To remove an attribute, call <code>UpdateThing</code> with an empty attribute value. <note> The <code>merge</code> attribute is only valid when calling <code>UpdateThing</code> or <code>UpdateThingGroup</code>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>attributes</i> A JSON string containing up to three key-value pair in JSON format. For example:  <code>{\"attributes\":{\"string1\":\"string2\"}}</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationDate</i> The UNIX timestamp of when the thing group was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>rootToParentThingGroups</i> The root parent thing group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>parentGroupName</i> The parent thing group name.<br/>        """
        pass

    def describe_thing_registration_task(self, taskId: str) -> DescribeThingRegistrationTaskResponse:
        r"""Describes a bulk thing provisioning task.

        :param self:
        :param taskId:  The task ID.<br/>
        :return: percentageProgress:  The progress of the bulk provisioning task expressed as a percentage.<br/>failureCount:  The number of things that failed to be provisioned.<br/>successCount:  The number of things successfully provisioned.<br/>message:  The message.<br/>status:  The status of the bulk thing provisioning task.<br/>roleArn:  The role ARN that grants access to the input file bucket.<br/>inputFileKey:  The input file key.<br/>inputFileBucket:  The S3 bucket that contains the input file.<br/>templateBody:  The task's template.<br/>lastModifiedDate:  The date when the task was last modified.<br/>creationDate:  The task creation date.<br/>taskId:  The task ID.<br/>        """
        pass

    def describe_thing_type(self, thingTypeName: str) -> DescribeThingTypeResponse:
        r"""Gets information about the specified thing type.

        :param self:
        :param thingTypeName:  The name of the thing type.<br/>
        :return: thingTypeMetadata:  The ThingTypeMetadata contains additional information about the thing type including: creation date and time, a value indicating whether the thing type is deprecated, and a date and time when it was deprecated.:<br/>thingTypeProperties:  The ThingTypeProperties contains information about the thing type including description, and a list of searchable thing attribute names.:<br/>thingTypeArn:  The thing type ARN.<br/>thingTypeId:  The thing type ID.<br/>thingTypeName:  The name of the thing type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>searchableAttributes</i> A list of searchable thing attribute names.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>thingTypeDescription</i> The description of the thing type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationDate</i> The date and time when the thing type was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deprecationDate</i> The date and time when the thing type was deprecated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deprecated</i> Whether the thing type is deprecated. If <b>true</b>, no new things could be associated with this type.<br/>        """
        pass

    def detach_policy(self, target: str, policyName: str):
        r"""Detaches a policy from the specified target.

        :param self:
        :param target:  The target from which the policy will be detached.<br/>policyName:  The policy to detach.<br/>
        :return:         """
        pass

    def detach_principal_policy(self, principal: str, policyName: str):
        r"""Removes the specified policy from the specified certificate.  <b>Note:</b> This API is deprecated. Please use <a>DetachPolicy</a> instead.

        :param self:
        :param principal:  The principal. Valid principals are CertificateArn (arn:aws:iot:<i>region</i>:<i>accountId</i>:cert/<i>certificateId</i>), thingGroupArn (arn:aws:iot:<i>region</i>:<i>accountId</i>:thinggroup/<i>groupName</i>) and CognitoId (<i>region</i>:<i>id</i>).<br/>policyName:  The name of the policy to detach.<br/>
        :return:         """
        pass

    def detach_security_profile(self, securityProfileTargetArn: str, securityProfileName: str) -> DetachSecurityProfileResponse:
        r"""Disassociates a Device Defender security profile from a thing group or from this account.

        :param self:
        :param securityProfileTargetArn:  The ARN of the thing group from which the security profile is detached.<br/>securityProfileName:  The security profile that is detached.<br/>
        :return:         """
        pass

    def detach_thing_principal(self, principal: str, thingName: str) -> DetachThingPrincipalResponse:
        r"""Detaches the specified principal from the specified thing. A principal can be X.509 certificates, IAM users, groups, and roles, Amazon Cognito identities or federated identities. <note> This call is asynchronous. It might take several seconds for the detachment to propagate. </note>

        :param self:
        :param principal:  If the principal is a certificate, this value must be ARN of the certificate. If the principal is an Amazon Cognito identity, this value must be the ID of the Amazon Cognito identity.<br/>thingName:  The name of the thing.<br/>
        :return:         """
        pass

    def disable_topic_rule(self, ruleName: str):
        r"""Disables the rule.

        :param self:
        :param ruleName:  The name of the rule to disable.<br/>
        :return:         """
        pass

    def enable_topic_rule(self, ruleName: str):
        r"""Enables the rule.

        :param self:
        :param ruleName:  The name of the topic rule to enable.<br/>
        :return:         """
        pass

    def get_behavior_model_training_summaries(self, securityProfileName: str=None, maxResults: int=None, nextToken: str=None) -> GetBehaviorModelTrainingSummariesResponse:
        r""" Returns a Device Defender's ML Detect Security Profile training model's status. 

        :param self:
        :param nextToken:   The token for the next set of results. <br/>maxResults:   The maximum number of results to return at one time. The default is 25. <br/>securityProfileName:   The name of the security profile. <br/>
        :return: nextToken:   A token that can be used to retrieve the next set of results, or <code>null</code> if there are no additional results. <br/>summaries:   A list of all ML Detect behaviors and their model status for a given Security Profile. <br/>        """
        pass

    def get_cardinality(self, queryString: str, indexName: str=None, aggregationField: str=None, queryVersion: str=None) -> GetCardinalityResponse:
        r"""Returns the approximate count of unique values that match the query.

        :param self:
        :param queryVersion:  The query version.<br/>aggregationField:  The field to aggregate.<br/>queryString:  The search query.<br/>indexName:  The name of the index to search.<br/>
        :return: cardinality:  The approximate count of unique values that match the query.<br/>        """
        pass

    def get_effective_policies(self, principal: str=None, cognitoIdentityPoolId: str=None, thingName: str=None) -> GetEffectivePoliciesResponse:
        r"""Gets a list of the policies that have an effect on the authorization behavior of the specified device when it connects to the AWS IoT device gateway.

        :param self:
        :param thingName:  The thing name.<br/>cognitoIdentityPoolId:  The Cognito identity pool ID.<br/>principal:  The principal. Valid principals are CertificateArn (arn:aws:iot:<i>region</i>:<i>accountId</i>:cert/<i>certificateId</i>), thingGroupArn (arn:aws:iot:<i>region</i>:<i>accountId</i>:thinggroup/<i>groupName</i>) and CognitoId (<i>region</i>:<i>id</i>).<br/>
        :return: effectivePolicies:  The effective policies.<br/>        """
        pass

    def get_indexing_configuration(self) -> GetIndexingConfigurationResponse:
        r"""Gets the indexing configuration.

        :param self:
        :param 
        :return: thingGroupIndexingConfiguration:  The index configuration.:<br/>thingIndexingConfiguration:  Thing indexing configuration.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>customFields</i> Contains custom field names and their data type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>managedFields</i> Contains fields that are indexed and whose types are already known by the Fleet Indexing service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>thingConnectivityIndexingMode</i> Thing connectivity indexing mode. Valid values are:  <ul> <li> STATUS – Your thing index contains connectivity status. To enable thing connectivity indexing, thingIndexMode must not be set to OFF. </li> <li> OFF - Thing connectivity status indexing is disabled. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>thingIndexingMode</i> Thing indexing mode. Valid values are: <ul> <li> REGISTRY – Your thing index contains registry data only. </li> <li> REGISTRY_AND_SHADOW - Your thing index contains registry and shadow data. </li> <li> OFF - Thing indexing is disabled. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>customFields</i> A list of thing group fields to index. This list cannot contain any managed fields. Use the GetIndexingConfiguration API to get a list of managed fields. Contains custom field names and their data type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>managedFields</i> Contains fields that are indexed and whose types are already known by the Fleet Indexing service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>thingGroupIndexingMode</i> Thing group indexing mode.<br/>        """
        pass

    def get_job_document(self, jobId: str) -> GetJobDocumentResponse:
        r"""Gets a job document.

        :param self:
        :param jobId:  The unique identifier you assigned to this job when it was created.<br/>
        :return: document:  The job document content.<br/>        """
        pass

    def get_logging_options(self) -> GetLoggingOptionsResponse:
        r"""Gets the logging options. NOTE: use of this command is not recommended. Use <code>GetV2LoggingOptions</code> instead.

        :param self:
        :param 
        :return: logLevel:  The logging level.<br/>roleArn:  The ARN of the IAM role that grants access.<br/>        """
        pass

    def get_ota_update(self, otaUpdateId: str) -> GetOTAUpdateResponse:
        r"""Gets an OTA update.

        :param self:
        :param otaUpdateId:  The OTA update ID.<br/>
        :return: otaUpdateInfo:  The OTA update info.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>additionalParameters</i> A collection of name/value pairs<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>errorInfo</i> Error information associated with the OTA update.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>errorInfo</b>: Error information associated with the OTA update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>awsIotJobArn</i> The AWS IoT job ARN associated with the OTA update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>awsIotJobId</i> The AWS IoT job ID associated with the OTA update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>otaUpdateStatus</i> The status of the OTA update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>otaUpdateFiles</i> A list of files associated with the OTA update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>targetSelection</i> Specifies whether the OTA update will continue to run (CONTINUOUS), or will be complete after all those things specified as targets have completed the OTA update (SNAPSHOT). If continuous, the OTA update may also be run on a thing when a change is detected in a target. For example, an OTA update will run on a thing when the thing is added to a target group, even after the OTA update was completed by all things originally in the group. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>awsJobPresignedUrlConfig</i> Configuration information for pre-signed URLs. Valid when <code>protocols</code> contains HTTP.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>awsJobPresignedUrlConfig</b>: Configuration information for pre-signed URLs. Valid when <code>protocols</code> contains HTTP.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>awsJobExecutionsRolloutConfig</i> Configuration for the rollout of OTA updates.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>awsJobExecutionsRolloutConfig</b>: Configuration for the rollout of OTA updates.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>protocols</i> The protocol used to transfer the OTA update image. Valid values are [HTTP], [MQTT], [HTTP, MQTT]. When both HTTP and MQTT are specified, the target device can choose the protocol.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>targets</i> The targets of the OTA update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> A description of the OTA update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastModifiedDate</i> The date when the OTA update was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationDate</i> The date when the OTA update was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>otaUpdateArn</i> The OTA update ARN.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>otaUpdateId</i> The OTA update ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>maximumPerMinute</i> The maximum number of OTA update job executions started per minute.<br/>The rate of increase for a job rollout. This parameter allows you to define an exponential rate increase for a job rollout.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>exponentialRate</b>: The rate of increase for a job rollout. This parameter allows you to define an exponential rate increase for a job rollout.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>expiresInSec</i> How long (in seconds) pre-signed URLs are valid. Valid values are 60 - 3600, the default value is 1800 seconds. Pre-signed URLs are generated when a request for the job document is received.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>message</i> The error message.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>code</i> The error code.<br/>        """
        pass

    def get_percentiles(self, queryString: str, indexName: str=None, aggregationField: str=None, queryVersion: str=None, percents: List[Percent]=None) -> GetPercentilesResponse:
        r"""Groups the aggregated values that match the query into percentile groupings. The default percentile groupings are: 1,5,25,50,75,95,99, although you can specify your own when you call <code>GetPercentiles</code>. This function returns a value for each percentile group specified (or the default percentile groupings). The percentile group "1" contains the aggregated field value that occurs in approximately one percent of the values that match the query. The percentile group "5" contains the aggregated field value that occurs in approximately five percent of the values that match the query, and so on. The result is an approximation, the more values that match the query, the more accurate the percentile values.

        :param self:
        :param percents:  The percentile groups returned.<br/>queryVersion:  The query version.<br/>aggregationField:  The field to aggregate.<br/>queryString:  The query string.<br/>indexName:  The name of the index to search.<br/>
        :return: percentiles:  The percentile values of the aggregated fields.<br/>        """
        pass

    def get_policy(self, policyName: str) -> GetPolicyResponse:
        r"""Gets information about the specified policy with the policy document of the default version.

        :param self:
        :param policyName:  The name of the policy.<br/>
        :return: generationId:  The generation ID of the policy.<br/>lastModifiedDate:  The date the policy was last modified.<br/>creationDate:  The date the policy was created.<br/>defaultVersionId:  The default policy version ID.<br/>policyDocument:  The JSON document that describes the policy.<br/>policyArn:  The policy ARN.<br/>policyName:  The policy name.<br/>        """
        pass

    def get_policy_version(self, policyVersionId: str, policyName: str) -> GetPolicyVersionResponse:
        r"""Gets information about the specified policy version.

        :param self:
        :param policyVersionId:  The policy version ID.<br/>policyName:  The name of the policy.<br/>
        :return: generationId:  The generation ID of the policy version.<br/>lastModifiedDate:  The date the policy was last modified.<br/>creationDate:  The date the policy was created.<br/>isDefaultVersion:  Specifies whether the policy version is the default.<br/>policyVersionId:  The policy version ID.<br/>policyDocument:  The JSON document that describes the policy.<br/>policyName:  The policy name.<br/>policyArn:  The policy ARN.<br/>        """
        pass

    def get_registration_code(self) -> GetRegistrationCodeResponse:
        r"""Gets a registration code used to register a CA certificate with AWS IoT.

        :param self:
        :param 
        :return: registrationCode:  The CA certificate registration code.<br/>        """
        pass

    def get_statistics(self, queryString: str, indexName: str=None, aggregationField: str=None, queryVersion: str=None) -> GetStatisticsResponse:
        r"""Returns the count, average, sum, minimum, maximum, sum of squares, variance, and standard deviation for the specified aggregated field. If the aggregation field is of type <code>String</code>, only the count statistic is returned.

        :param self:
        :param queryVersion:  The version of the query used to search.<br/>aggregationField:  The aggregation field name.<br/>queryString:  The query used to search. You can specify "*" for the query string to get the count of all indexed things in your AWS account.<br/>indexName:  The name of the index to search. The default value is <code>AWS_Things</code>.<br/>
        :return: statistics:  The statistics returned by the Fleet Indexing service based on the query and aggregation field.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>stdDeviation</i> The standard deviation of the aggregated field values.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>variance</i> The variance of the aggregated field values.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>sumOfSquares</i> The sum of the squares of the aggregated field values.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>maximum</i> The maximum aggregated field value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>minimum</i> The minimum aggregated field value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>sum</i> The sum of the aggregated field values.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>average</i> The average of the aggregated field values.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>count</i> The count of things that match the query.<br/>        """
        pass

    def get_topic_rule(self, ruleName: str) -> GetTopicRuleResponse:
        r"""Gets information about the rule.

        :param self:
        :param ruleName:  The name of the rule.<br/>
        :return: rule:  The rule.:<br/>ruleArn:  The rule ARN.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>errorAction</i> The action to perform when an error occurs.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>errorAction</b>: The action to perform when an error occurs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>awsIotSqlVersion</i> The version of the SQL rules engine to use when evaluating the rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ruleDisabled</i> Specifies whether the rule is disabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>actions</i> The actions associated with the rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The date and time the rule was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> The description of the rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>sql</i> The SQL statement used to query the topic. When using a SQL query with multiple lines, be sure to escape the newline characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ruleName</i> The name of the rule.<br/>Write to a DynamoDB table.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>dynamoDB</b>: Write to a DynamoDB table.        """
        pass

    def get_topic_rule_destination(self, arn: str) -> GetTopicRuleDestinationResponse:
        r"""Gets information about a topic rule destination.

        :param self:
        :param arn:  The ARN of the topic rule destination.<br/>
        :return: topicRuleDestination:  The topic rule destination.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>vpcProperties</i> Properties of the virtual private cloud (VPC) connection.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>vpcProperties</b>: Properties of the virtual private cloud (VPC) connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>httpUrlProperties</i> Properties of the HTTP URL.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>httpUrlProperties</b>: Properties of the HTTP URL.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusReason</i> Additional details or reason why the topic rule destination is in the current status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedAt</i> The date and time when the topic rule destination was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The date and time when the topic rule destination was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the topic rule destination. Valid values are: <dl> <dt>IN_PROGRESS</dt> <dd> A topic rule destination was created but has not been confirmed. You can set <code>status</code> to <code>IN_PROGRESS</code> by calling <code>UpdateTopicRuleDestination</code>. Calling <code>UpdateTopicRuleDestination</code> causes a new confirmation challenge to be sent to your confirmation endpoint. </dd> <dt>ENABLED</dt> <dd> Confirmation was completed, and traffic to this destination is allowed. You can set <code>status</code> to <code>DISABLED</code> by calling <code>UpdateTopicRuleDestination</code>. </dd> <dt>DISABLED</dt> <dd> Confirmation was completed, and traffic to this destination is not allowed. You can set <code>status</code> to <code>ENABLED</code> by calling <code>UpdateTopicRuleDestination</code>. </dd> <dt>ERROR</dt> <dd> Confirmation could not be completed, for example if the confirmation timed out. You can call <code>GetTopicRuleDestination</code> for details about the error. You can set <code>status</code> to <code>IN_PROGRESS</code> by calling <code>UpdateTopicRuleDestination</code>. Calling <code>UpdateTopicRuleDestination</code> causes a new confirmation challenge to be sent to your confirmation endpoint. </dd> </dl><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The topic rule destination URL.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>confirmationUrl</i> The URL used to confirm the HTTP topic rule destination URL.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>roleArn</i> The ARN of a role that has permission to create and attach to elastic network interfaces (ENIs).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>vpcId</i> The ID of the VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>securityGroups</i> The security groups of the VPC destination.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>subnetIds</i> The subnet IDs of the VPC destination.<br/>        """
        pass

    def get_v2_logging_options(self) -> GetV2LoggingOptionsResponse:
        r"""Gets the fine grained logging options.

        :param self:
        :param 
        :return: disableAllLogs:  Disables all logs.<br/>defaultLogLevel:  The default log level.<br/>roleArn:  The IAM role ARN AWS IoT uses to write to your CloudWatch logs.<br/>        """
        pass

    def list_active_violations(self, thingName: str=None, securityProfileName: str=None, behaviorCriteriaType: str=None, listSuppressedAlerts: ListSuppressedAlerts=None, nextToken: str=None, maxResults: int=None) -> ListActiveViolationsResponse:
        r"""Lists the active violations for a given Device Defender security profile.

        :param self:
        :param maxResults:  The maximum number of results to return at one time.<br/>nextToken:  The token for the next set of results.<br/>listSuppressedAlerts:   A list of all suppressed alerts. <br/>behaviorCriteriaType:   The criteria for a behavior. <br/>securityProfileName:  The name of the Device Defender security profile for which violations are listed.<br/>thingName:  The name of the thing whose active violations are listed.<br/>
        :return: nextToken:  A token that can be used to retrieve the next set of results, or <code>null</code> if there are no additional results.<br/>activeViolations:  The list of active violations.<br/>        """
        pass

    def list_attached_policies(self, target: str, recursive: Recursive=None, marker: str=None, pageSize: int=None) -> ListAttachedPoliciesResponse:
        r"""Lists the policies attached to the specified thing group.

        :param self:
        :param pageSize:  The maximum number of results to be returned per request.<br/>marker:  The token to retrieve the next set of results.<br/>recursive:  When true, recursively list attached policies.<br/>target:  The group or principal for which the policies will be listed. Valid principals are CertificateArn (arn:aws:iot:<i>region</i>:<i>accountId</i>:cert/<i>certificateId</i>), thingGroupArn (arn:aws:iot:<i>region</i>:<i>accountId</i>:thinggroup/<i>groupName</i>) and CognitoId (<i>region</i>:<i>id</i>).<br/>
        :return: nextMarker:  The token to retrieve the next set of results, or ``null`` if there are no more results.<br/>policies:  The policies.<br/>        """
        pass

    def list_audit_findings(self, taskId: str=None, checkName: str=None, resourceIdentifier: ResourceIdentifier=None, maxResults: int=None, nextToken: str=None, startTime: Timestamp=None, endTime: Timestamp=None, listSuppressedFindings: ListSuppressedFindings=None) -> ListAuditFindingsResponse:
        r"""Lists the findings (results) of a Device Defender audit or of the audits performed during a specified time period. (Findings are retained for 90 days.)

        :param self:
        :param listSuppressedFindings:   Boolean flag indicating whether only the suppressed findings or the unsuppressed findings should be listed. If this parameter isn't provided, the response will list both suppressed and unsuppressed findings. <br/>endTime:  A filter to limit results to those found before the specified time. You must specify either the startTime and endTime or the taskId, but not both.<br/>startTime:  A filter to limit results to those found after the specified time. You must specify either the startTime and endTime or the taskId, but not both.<br/>nextToken:  The token for the next set of results.<br/>maxResults:  The maximum number of results to return at one time. The default is 25.<br/>resourceIdentifier:  Information identifying the noncompliant resource.:<br/>checkName:  A filter to limit results to the findings for the specified audit check.<br/>taskId:  A filter to limit results to the audit with the specified ID. You must specify either the taskId or the startTime and endTime, but not both.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>roleAliasArn</i> The ARN of the role alias that has overly permissive actions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>iamRoleArn</i> The ARN of the IAM role that has overly permissive actions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>account</i> The account with which the resource is associated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>policyVersionIdentifier</i> The version of the policy associated with the resource.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>policyVersionIdentifier</b>: The version of the policy associated with the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>clientId</i> The client ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>cognitoIdentityPoolId</i> The ID of the Amazon Cognito identity pool.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>caCertificateId</i> The ID of the CA certificate used to authorize the certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deviceCertificateId</i> The ID of the certificate attached to the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>policyVersionId</i> The ID of the version of the policy associated with the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>policyName</i> The name of the policy.<br/>
        :return: nextToken:  A token that can be used to retrieve the next set of results, or <code>null</code> if there are no additional results.<br/>findings:  The findings (results) of the audit.<br/>        """
        pass

    def list_audit_mitigation_actions_executions(self, findingId: str, taskId: str, actionStatus: str=None, maxResults: int=None, nextToken: str=None) -> ListAuditMitigationActionsExecutionsResponse:
        r"""Gets the status of audit mitigation action tasks that were executed.

        :param self:
        :param nextToken:  The token for the next set of results.<br/>maxResults:  The maximum number of results to return at one time. The default is 25.<br/>findingId:  Specify this filter to limit results to those that were applied to a specific audit finding.<br/>actionStatus:  Specify this filter to limit results to those with a specific status.<br/>taskId:  Specify this filter to limit results to actions for a specific audit mitigation actions task.<br/>
        :return: nextToken:  The token for the next set of results.<br/>actionsExecutions:  A set of task execution results based on the input parameters. Details include the mitigation action applied, start time, and task status.<br/>        """
        pass

    def list_audit_mitigation_actions_tasks(self, endTime: Timestamp, startTime: Timestamp, auditTaskId: str=None, findingId: str=None, taskStatus: str=None, maxResults: int=None, nextToken: str=None) -> ListAuditMitigationActionsTasksResponse:
        r"""Gets a list of audit mitigation action tasks that match the specified filters.

        :param self:
        :param endTime:  Specify this filter to limit results to tasks that were completed or canceled on or before a specific date and time.<br/>startTime:  Specify this filter to limit results to tasks that began on or after a specific date and time.<br/>nextToken:  The token for the next set of results.<br/>maxResults:  The maximum number of results to return at one time. The default is 25.<br/>taskStatus:  Specify this filter to limit results to tasks that are in a specific state.<br/>findingId:  Specify this filter to limit results to tasks that were applied to a specific audit finding.<br/>auditTaskId:  Specify this filter to limit results to tasks that were applied to results for a specific audit.<br/>
        :return: nextToken:  The token for the next set of results.<br/>tasks:  The collection of audit mitigation tasks that matched the filter criteria.<br/>        """
        pass

    def list_audit_suppressions(self, checkName: str=None, resourceIdentifier: ResourceIdentifier=None, ascendingOrder: AscendingOrder=None, nextToken: str=None, maxResults: int=None) -> ListAuditSuppressionsResponse:
        r""" Lists your Device Defender audit listings. 

        :param self:
        :param maxResults:   The maximum number of results to return at one time. The default is 25. <br/>nextToken:   The token for the next set of results. <br/>ascendingOrder:   Determines whether suppressions are listed in ascending order by expiration date or not. If parameter isn't provided, <code>ascendingOrder=true</code>. <br/>resourceIdentifier:  Information that identifies the noncompliant resource.:<br/>checkName:  An audit check name. Checks must be enabled for your account. (Use <code>DescribeAccountAuditConfiguration</code> to see the list of all checks, including those that are enabled or use <code>UpdateAccountAuditConfiguration</code> to select which checks are enabled.)<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>roleAliasArn</i> The ARN of the role alias that has overly permissive actions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>iamRoleArn</i> The ARN of the IAM role that has overly permissive actions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>account</i> The account with which the resource is associated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>policyVersionIdentifier</i> The version of the policy associated with the resource.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>policyVersionIdentifier</b>: The version of the policy associated with the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>clientId</i> The client ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>cognitoIdentityPoolId</i> The ID of the Amazon Cognito identity pool.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>caCertificateId</i> The ID of the CA certificate used to authorize the certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deviceCertificateId</i> The ID of the certificate attached to the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>policyVersionId</i> The ID of the version of the policy associated with the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>policyName</i> The name of the policy.<br/>
        :return: nextToken:   A token that can be used to retrieve the next set of results, or <code>null</code> if there are no additional results. <br/>suppressions:   List of audit suppressions. <br/>        """
        pass

    def list_audit_tasks(self, endTime: Timestamp, startTime: Timestamp, taskType: str=None, taskStatus: str=None, nextToken: str=None, maxResults: int=None) -> ListAuditTasksResponse:
        r"""Lists the Device Defender audits that have been performed during a given time period.

        :param self:
        :param maxResults:  The maximum number of results to return at one time. The default is 25.<br/>nextToken:  The token for the next set of results.<br/>taskStatus:  A filter to limit the output to audits with the specified completion status: can be one of "IN_PROGRESS", "COMPLETED", "FAILED", or "CANCELED".<br/>taskType:  A filter to limit the output to the specified type of audit: can be one of "ON_DEMAND_AUDIT_TASK" or "SCHEDULED__AUDIT_TASK".<br/>endTime:  The end of the time period.<br/>startTime:  The beginning of the time period. Audit information is retained for a limited time (90 days). Requesting a start time prior to what is retained results in an "InvalidRequestException".<br/>
        :return: nextToken:  A token that can be used to retrieve the next set of results, or <code>null</code> if there are no additional results.<br/>tasks:  The audits that were performed during the specified time period.<br/>        """
        pass

    def list_authorizers(self, pageSize: int=None, marker: str=None, ascendingOrder: AscendingOrder=None, status: str=None) -> ListAuthorizersResponse:
        r"""Lists the authorizers registered in your account.

        :param self:
        :param status:  The status of the list authorizers request.<br/>ascendingOrder:  Return the list of authorizers in ascending alphabetical order.<br/>marker:  A marker used to get the next set of results.<br/>pageSize:  The maximum number of results to return at one time.<br/>
        :return: nextMarker:  A marker used to get the next set of results.<br/>authorizers:  The authorizers.<br/>        """
        pass

    def list_billing_groups(self, nextToken: str=None, maxResults: int=None, namePrefixFilter: str=None) -> ListBillingGroupsResponse:
        r"""Lists the billing groups you have created.

        :param self:
        :param namePrefixFilter:  Limit the results to billing groups whose names have the given prefix.<br/>maxResults:  The maximum number of results to return per request.<br/>nextToken:  To retrieve the next set of results, the <code>nextToken</code> value from a previous response; otherwise <b>null</b> to receive the first set of results.<br/>
        :return: nextToken:  The token to use to get the next set of results, or <b>null</b> if there are no additional results.<br/>billingGroups:  The list of billing groups.<br/>        """
        pass

    def list_ca_certificates(self, pageSize: int=None, marker: str=None, ascendingOrder: AscendingOrder=None) -> ListCACertificatesResponse:
        r"""Lists the CA certificates registered for your AWS account. The results are paginated with a default page size of 25. You can use the returned marker to retrieve additional results.

        :param self:
        :param ascendingOrder:  Determines the order of the results.<br/>marker:  The marker for the next set of results.<br/>pageSize:  The result page size.<br/>
        :return: nextMarker:  The current position within the list of CA certificates.<br/>certificates:  The CA certificates registered in your AWS account.<br/>        """
        pass

    def list_certificates(self, pageSize: int=None, marker: str=None, ascendingOrder: AscendingOrder=None) -> ListCertificatesResponse:
        r"""Lists the certificates registered in your AWS account. The results are paginated with a default page size of 25. You can use the returned marker to retrieve additional results.

        :param self:
        :param ascendingOrder:  Specifies the order for results. If True, the results are returned in ascending order, based on the creation date.<br/>marker:  The marker for the next set of results.<br/>pageSize:  The result page size.<br/>
        :return: nextMarker:  The marker for the next set of results, or null if there are no additional results.<br/>certificates:  The descriptions of the certificates.<br/>        """
        pass

    def list_certificates_by_ca(self, caCertificateId: str, pageSize: int=None, marker: str=None, ascendingOrder: AscendingOrder=None) -> ListCertificatesByCAResponse:
        r"""List the device certificates signed by the specified CA certificate.

        :param self:
        :param ascendingOrder:  Specifies the order for results. If True, the results are returned in ascending order, based on the creation date.<br/>marker:  The marker for the next set of results.<br/>pageSize:  The result page size.<br/>caCertificateId:  The ID of the CA certificate. This operation will list all registered device certificate that were signed by this CA certificate.<br/>
        :return: nextMarker:  The marker for the next set of results, or null if there are no additional results.<br/>certificates:  The device certificates signed by the specified CA certificate.<br/>        """
        pass

    def list_custom_metrics(self, nextToken: str=None, maxResults: int=None) -> ListCustomMetricsResponse:
        r""" Lists your Device Defender detect custom metrics. 

        :param self:
        :param maxResults:   The maximum number of results to return at one time. The default is 25. <br/>nextToken:   The token for the next set of results. <br/>
        :return: nextToken:   A token that can be used to retrieve the next set of results, or <code>null</code> if there are no additional results. <br/>metricNames:   The name of the custom metric. <br/>        """
        pass

    def list_detect_mitigation_actions_executions(self, taskId: str=None, violationId: str=None, thingName: str=None, startTime: Timestamp=None, endTime: Timestamp=None, maxResults: int=None, nextToken: str=None) -> ListDetectMitigationActionsExecutionsResponse:
        r""" Lists mitigation actions executions for a Device Defender ML Detect Security Profile. 

        :param self:
        :param nextToken:   The token for the next set of results. <br/>maxResults:   The maximum number of results to return at one time. The default is 25. <br/>endTime:   The end of the time period for which ML Detect mitigation actions executions are returned. <br/>startTime:   A filter to limit results to those found after the specified time. You must specify either the startTime and endTime or the taskId, but not both. <br/>thingName:   The name of the thing whose mitigation actions are listed. <br/>violationId:   The unique identifier of the violation. <br/>taskId:   The unique identifier of the task. <br/>
        :return: nextToken:   A token that can be used to retrieve the next set of results, or <code>null</code> if there are no additional results. <br/>actionsExecutions:   List of actions executions. <br/>        """
        pass

    def list_detect_mitigation_actions_tasks(self, endTime: Timestamp, startTime: Timestamp, maxResults: int=None, nextToken: str=None) -> ListDetectMitigationActionsTasksResponse:
        r""" List of Device Defender ML Detect mitigation actions tasks. 

        :param self:
        :param endTime:   The end of the time period for which ML Detect mitigation actions tasks are returned. <br/>startTime:   A filter to limit results to those found after the specified time. You must specify either the startTime and endTime or the taskId, but not both. <br/>nextToken:   The token for the next set of results. <br/>maxResults:  The maximum number of results to return at one time. The default is 25.<br/>
        :return: nextToken:   A token that can be used to retrieve the next set of results, or <code>null</code> if there are no additional results. <br/>tasks:   The collection of ML Detect mitigation tasks that matched the filter criteria. <br/>        """
        pass

    def list_dimensions(self, nextToken: str=None, maxResults: int=None) -> ListDimensionsResponse:
        r"""List the set of dimensions that are defined for your AWS account.

        :param self:
        :param maxResults:  The maximum number of results to retrieve at one time.<br/>nextToken:  The token for the next set of results.<br/>
        :return: nextToken:  A token that can be used to retrieve the next set of results, or <code>null</code> if there are no additional results.<br/>dimensionNames:  A list of the names of the defined dimensions. Use <code>DescribeDimension</code> to get details for a dimension.<br/>        """
        pass

    def list_domain_configurations(self, marker: str=None, pageSize: int=None, serviceType: str=None) -> ListDomainConfigurationsResponse:
        r"""Gets a list of domain configurations for the user. This list is sorted alphabetically by domain configuration name.

        :param self:
        :param serviceType:  The type of service delivered by the endpoint.<br/>pageSize:  The result page size.<br/>marker:  The marker for the next set of results.<br/>
        :return: nextMarker:  The marker for the next set of results.<br/>domainConfigurations:  A list of objects that contain summary information about the user's domain configurations.<br/>        """
        pass

    def list_indices(self, nextToken: str=None, maxResults: int=None) -> ListIndicesResponse:
        r"""Lists the search indices.

        :param self:
        :param maxResults:  The maximum number of results to return at one time.<br/>nextToken:  The token used to get the next set of results, or <code>null</code> if there are no additional results.<br/>
        :return: nextToken:  The token used to get the next set of results, or <code>null</code> if there are no additional results.<br/>indexNames:  The index names.<br/>        """
        pass

    def list_job_executions_for_job(self, jobId: str, status: str=None, maxResults: int=None, nextToken: str=None) -> ListJobExecutionsForJobResponse:
        r"""Lists the job executions for a job.

        :param self:
        :param nextToken:  The token to retrieve the next set of results.<br/>maxResults:  The maximum number of results to be returned per request.<br/>status:  The status of the job.<br/>jobId:  The unique identifier you assigned to this job when it was created.<br/>
        :return: nextToken:  The token for the next set of results, or <b>null</b> if there are no additional results.<br/>executionSummaries:  A list of job execution summaries.<br/>        """
        pass

    def list_job_executions_for_thing(self, thingName: str, status: str=None, namespaceId: str=None, maxResults: int=None, nextToken: str=None) -> ListJobExecutionsForThingResponse:
        r"""Lists the job executions for the specified thing.

        :param self:
        :param nextToken:  The token to retrieve the next set of results.<br/>maxResults:  The maximum number of results to be returned per request.<br/>namespaceId:  The namespace used to indicate that a job is a customer-managed job. When you specify a value for this parameter, AWS IoT Core sends jobs notifications to MQTT topics that contain the value in the following format.  <code>$aws/things/<i>THING_NAME</i>/jobs/<i>JOB_ID</i>/notify-namespace-<i>NAMESPACE_ID</i>/</code>  <note> The <code>namespaceId</code> feature is in public preview. </note><br/>status:  An optional filter that lets you search for jobs that have the specified status.<br/>thingName:  The thing name.<br/>
        :return: nextToken:  The token for the next set of results, or <b>null</b> if there are no additional results.<br/>executionSummaries:  A list of job execution summaries.<br/>        """
        pass

    def list_job_templates(self, maxResults: int=None, nextToken: str=None) -> ListJobTemplatesResponse:
        r"""Returns a list of job templates.

        :param self:
        :param nextToken:  The token to use to return the next set of results in the list.<br/>maxResults:  The maximum number of results to return in the list.<br/>
        :return: nextToken:  The token for the next set of results, or <b>null</b> if there are no additional results.<br/>jobTemplates:  A list of objects that contain information about the job templates.<br/>        """
        pass

    def list_jobs(self, status: str=None, targetSelection: str=None, maxResults: int=None, nextToken: str=None, thingGroupName: str=None, thingGroupId: str=None, namespaceId: str=None) -> ListJobsResponse:
        r"""Lists jobs.

        :param self:
        :param namespaceId:  The namespace used to indicate that a job is a customer-managed job. When you specify a value for this parameter, AWS IoT Core sends jobs notifications to MQTT topics that contain the value in the following format.  <code>$aws/things/<i>THING_NAME</i>/jobs/<i>JOB_ID</i>/notify-namespace-<i>NAMESPACE_ID</i>/</code>  <note> The <code>namespaceId</code> feature is in public preview. </note><br/>thingGroupId:  A filter that limits the returned jobs to those for the specified group.<br/>thingGroupName:  A filter that limits the returned jobs to those for the specified group.<br/>nextToken:  The token to retrieve the next set of results.<br/>maxResults:  The maximum number of results to return per request.<br/>targetSelection:  Specifies whether the job will continue to run (CONTINUOUS), or will be complete after all those things specified as targets have completed the job (SNAPSHOT). If continuous, the job may also be run on a thing when a change is detected in a target. For example, a job will run on a thing when the thing is added to a target group, even after the job was completed by all things originally in the group. <br/>status:  An optional filter that lets you search for jobs that have the specified status.<br/>
        :return: nextToken:  The token for the next set of results, or <b>null</b> if there are no additional results.<br/>jobs:  A list of jobs.<br/>        """
        pass

    def list_mitigation_actions(self, actionType: str=None, maxResults: int=None, nextToken: str=None) -> ListMitigationActionsResponse:
        r"""Gets a list of all mitigation actions that match the specified filter criteria.

        :param self:
        :param nextToken:  The token for the next set of results.<br/>maxResults:  The maximum number of results to return at one time. The default is 25.<br/>actionType:  Specify a value to limit the result to mitigation actions with a specific action type.<br/>
        :return: nextToken:  The token for the next set of results.<br/>actionIdentifiers:  A set of actions that matched the specified filter criteria.<br/>        """
        pass

    def list_ota_updates(self, maxResults: int=None, nextToken: str=None, otaUpdateStatus: str=None) -> ListOTAUpdatesResponse:
        r"""Lists OTA updates.

        :param self:
        :param otaUpdateStatus:  The OTA update job status.<br/>nextToken:  A token used to retrieve the next set of results.<br/>maxResults:  The maximum number of results to return at one time.<br/>
        :return: nextToken:  A token to use to get the next set of results.<br/>otaUpdates:  A list of OTA update jobs.<br/>        """
        pass

    def list_outgoing_certificates(self, pageSize: int=None, marker: str=None, ascendingOrder: AscendingOrder=None) -> ListOutgoingCertificatesResponse:
        r"""Lists certificates that are being transferred but not yet accepted.

        :param self:
        :param ascendingOrder:  Specifies the order for results. If True, the results are returned in ascending order, based on the creation date.<br/>marker:  The marker for the next set of results.<br/>pageSize:  The result page size.<br/>
        :return: nextMarker:  The marker for the next set of results.<br/>outgoingCertificates:  The certificates that are being transferred but not yet accepted.<br/>        """
        pass

    def list_policies(self, marker: str=None, pageSize: int=None, ascendingOrder: AscendingOrder=None) -> ListPoliciesResponse:
        r"""Lists your policies.

        :param self:
        :param ascendingOrder:  Specifies the order for results. If true, the results are returned in ascending creation order.<br/>pageSize:  The result page size.<br/>marker:  The marker for the next set of results.<br/>
        :return: nextMarker:  The marker for the next set of results, or null if there are no additional results.<br/>policies:  The descriptions of the policies.<br/>        """
        pass

    def list_policy_principals(self, policyName: str, marker: str=None, pageSize: int=None, ascendingOrder: AscendingOrder=None) -> ListPolicyPrincipalsResponse:
        r"""Lists the principals associated with the specified policy.  <b>Note:</b> This API is deprecated. Please use <a>ListTargetsForPolicy</a> instead.

        :param self:
        :param ascendingOrder:  Specifies the order for results. If true, the results are returned in ascending creation order.<br/>pageSize:  The result page size.<br/>marker:  The marker for the next set of results.<br/>policyName:  The policy name.<br/>
        :return: nextMarker:  The marker for the next set of results, or null if there are no additional results.<br/>principals:  The descriptions of the principals.<br/>        """
        pass

    def list_policy_versions(self, policyName: str) -> ListPolicyVersionsResponse:
        r"""Lists the versions of the specified policy and identifies the default version.

        :param self:
        :param policyName:  The policy name.<br/>
        :return: policyVersions:  The policy versions.<br/>        """
        pass

    def list_principal_policies(self, principal: str, marker: str=None, pageSize: int=None, ascendingOrder: AscendingOrder=None) -> ListPrincipalPoliciesResponse:
        r"""Lists the policies attached to the specified principal. If you use an Cognito identity, the ID must be in <a href="https://docs.aws.amazon.com/cognitoidentity/latest/APIReference/API_GetCredentialsForIdentity.html#API_GetCredentialsForIdentity_RequestSyntax">AmazonCognito Identity format</a>.  <b>Note:</b> This API is deprecated. Please use <a>ListAttachedPolicies</a> instead.

        :param self:
        :param ascendingOrder:  Specifies the order for results. If true, results are returned in ascending creation order.<br/>pageSize:  The result page size.<br/>marker:  The marker for the next set of results.<br/>principal:  The principal. Valid principals are CertificateArn (arn:aws:iot:<i>region</i>:<i>accountId</i>:cert/<i>certificateId</i>), thingGroupArn (arn:aws:iot:<i>region</i>:<i>accountId</i>:thinggroup/<i>groupName</i>) and CognitoId (<i>region</i>:<i>id</i>).<br/>
        :return: nextMarker:  The marker for the next set of results, or null if there are no additional results.<br/>policies:  The policies.<br/>        """
        pass

    def list_principal_things(self, principal: str, nextToken: str=None, maxResults: int=None) -> ListPrincipalThingsResponse:
        r"""Lists the things associated with the specified principal. A principal can be X.509 certificates, IAM users, groups, and roles, Amazon Cognito identities or federated identities. 

        :param self:
        :param principal:  The principal.<br/>maxResults:  The maximum number of results to return in this operation.<br/>nextToken:  To retrieve the next set of results, the <code>nextToken</code> value from a previous response; otherwise <b>null</b> to receive the first set of results.<br/>
        :return: nextToken:  The token to use to get the next set of results, or <b>null</b> if there are no additional results.<br/>things:  The things.<br/>        """
        pass

    def list_provisioning_template_versions(self, templateName: str, maxResults: int=None, nextToken: str=None) -> ListProvisioningTemplateVersionsResponse:
        r"""A list of fleet provisioning template versions.

        :param self:
        :param nextToken:  A token to retrieve the next set of results.<br/>maxResults:  The maximum number of results to return at one time.<br/>templateName:  The name of the fleet provisioning template.<br/>
        :return: nextToken:  A token to retrieve the next set of results.<br/>versions:  The list of fleet provisioning template versions.<br/>        """
        pass

    def list_provisioning_templates(self, maxResults: int=None, nextToken: str=None) -> ListProvisioningTemplatesResponse:
        r"""Lists the fleet provisioning templates in your AWS account.

        :param self:
        :param nextToken:  A token to retrieve the next set of results.<br/>maxResults:  The maximum number of results to return at one time.<br/>
        :return: nextToken:  A token to retrieve the next set of results.<br/>templates:  A list of fleet provisioning templates<br/>        """
        pass

    def list_role_aliases(self, pageSize: int=None, marker: str=None, ascendingOrder: AscendingOrder=None) -> ListRoleAliasesResponse:
        r"""Lists the role aliases registered in your account.

        :param self:
        :param ascendingOrder:  Return the list of role aliases in ascending alphabetical order.<br/>marker:  A marker used to get the next set of results.<br/>pageSize:  The maximum number of results to return at one time.<br/>
        :return: nextMarker:  A marker used to get the next set of results.<br/>roleAliases:  The role aliases.<br/>        """
        pass

    def list_scheduled_audits(self, nextToken: str=None, maxResults: int=None) -> ListScheduledAuditsResponse:
        r"""Lists all of your scheduled audits.

        :param self:
        :param maxResults:  The maximum number of results to return at one time. The default is 25.<br/>nextToken:  The token for the next set of results.<br/>
        :return: nextToken:  A token that can be used to retrieve the next set of results, or <code>null</code> if there are no additional results.<br/>scheduledAudits:  The list of scheduled audits.<br/>        """
        pass

    def list_security_profiles(self, nextToken: str=None, maxResults: int=None, dimensionName: str=None, metricName: str=None) -> ListSecurityProfilesResponse:
        r"""Lists the Device Defender security profiles you've created. You can filter security profiles by dimension or custom metric. <note>  <code>dimensionName</code> and <code>metricName</code> cannot be used in the same request. </note>

        :param self:
        :param metricName:   The name of the custom metric. Cannot be used with <code>dimensionName</code>. <br/>dimensionName:  A filter to limit results to the security profiles that use the defined dimension. Cannot be used with <code>metricName</code> <br/>maxResults:  The maximum number of results to return at one time.<br/>nextToken:  The token for the next set of results.<br/>
        :return: nextToken:  A token that can be used to retrieve the next set of results, or <code>null</code> if there are no additional results.<br/>securityProfileIdentifiers:  A list of security profile identifiers (names and ARNs).<br/>        """
        pass

    def list_security_profiles_for_target(self, securityProfileTargetArn: str, nextToken: str=None, maxResults: int=None, recursive: Recursive=None) -> ListSecurityProfilesForTargetResponse:
        r"""Lists the Device Defender security profiles attached to a target (thing group).

        :param self:
        :param securityProfileTargetArn:  The ARN of the target (thing group) whose attached security profiles you want to get.<br/>recursive:  If true, return child groups too.<br/>maxResults:  The maximum number of results to return at one time.<br/>nextToken:  The token for the next set of results.<br/>
        :return: nextToken:  A token that can be used to retrieve the next set of results, or <code>null</code> if there are no additional results.<br/>securityProfileTargetMappings:  A list of security profiles and their associated targets.<br/>        """
        pass

    def list_streams(self, maxResults: int=None, nextToken: str=None, ascendingOrder: AscendingOrder=None) -> ListStreamsResponse:
        r"""Lists all of the streams in your AWS account.

        :param self:
        :param ascendingOrder:  Set to true to return the list of streams in ascending order.<br/>nextToken:  A token used to get the next set of results.<br/>maxResults:  The maximum number of results to return at a time.<br/>
        :return: nextToken:  A token used to get the next set of results.<br/>streams:  A list of streams.<br/>        """
        pass

    def list_tags_for_resource(self, resourceArn: str, nextToken: str=None) -> ListTagsForResourceResponse:
        r"""Lists the tags (metadata) you have assigned to the resource.

        :param self:
        :param nextToken:  To retrieve the next set of results, the <code>nextToken</code> value from a previous response; otherwise <b>null</b> to receive the first set of results.<br/>resourceArn:  The ARN of the resource.<br/>
        :return: nextToken:  The token to use to get the next set of results, or <b>null</b> if there are no additional results.<br/>tags:  The list of tags assigned to the resource.<br/>        """
        pass

    def list_targets_for_policy(self, policyName: str, marker: str=None, pageSize: int=None) -> ListTargetsForPolicyResponse:
        r"""List targets for the specified policy.

        :param self:
        :param pageSize:  The maximum number of results to return at one time.<br/>marker:  A marker used to get the next set of results.<br/>policyName:  The policy name.<br/>
        :return: nextMarker:  A marker used to get the next set of results.<br/>targets:  The policy targets.<br/>        """
        pass

    def list_targets_for_security_profile(self, securityProfileName: str, nextToken: str=None, maxResults: int=None) -> ListTargetsForSecurityProfileResponse:
        r"""Lists the targets (thing groups) associated with a given Device Defender security profile.

        :param self:
        :param maxResults:  The maximum number of results to return at one time.<br/>nextToken:  The token for the next set of results.<br/>securityProfileName:  The security profile.<br/>
        :return: nextToken:  A token that can be used to retrieve the next set of results, or <code>null</code> if there are no additional results.<br/>securityProfileTargets:  The thing groups to which the security profile is attached.<br/>        """
        pass

    def list_thing_groups(self, nextToken: str=None, maxResults: int=None, parentGroup: str=None, namePrefixFilter: str=None, recursive: RecursiveWithoutDefault=None) -> ListThingGroupsResponse:
        r"""List the thing groups in your account.

        :param self:
        :param recursive:  If true, return child groups as well.<br/>namePrefixFilter:  A filter that limits the results to those with the specified name prefix.<br/>parentGroup:  A filter that limits the results to those with the specified parent group.<br/>maxResults:  The maximum number of results to return at one time.<br/>nextToken:  To retrieve the next set of results, the <code>nextToken</code> value from a previous response; otherwise <b>null</b> to receive the first set of results.<br/>
        :return: nextToken:  The token to use to get the next set of results. Will not be returned if operation has returned all results.<br/>thingGroups:  The thing groups.<br/>        """
        pass

    def list_thing_groups_for_thing(self, thingName: str, nextToken: str=None, maxResults: int=None) -> ListThingGroupsForThingResponse:
        r"""List the thing groups to which the specified thing belongs.

        :param self:
        :param maxResults:  The maximum number of results to return at one time.<br/>nextToken:  To retrieve the next set of results, the <code>nextToken</code> value from a previous response; otherwise <b>null</b> to receive the first set of results.<br/>thingName:  The thing name.<br/>
        :return: nextToken:  The token to use to get the next set of results, or <b>null</b> if there are no additional results.<br/>thingGroups:  The thing groups.<br/>        """
        pass

    def list_thing_principals(self, thingName: str, nextToken: str=None, maxResults: int=None) -> ListThingPrincipalsResponse:
        r"""Lists the principals associated with the specified thing. A principal can be X.509 certificates, IAM users, groups, and roles, Amazon Cognito identities or federated identities.

        :param self:
        :param thingName:  The name of the thing.<br/>maxResults:  The maximum number of results to return in this operation.<br/>nextToken:  To retrieve the next set of results, the <code>nextToken</code> value from a previous response; otherwise <b>null</b> to receive the first set of results.<br/>
        :return: nextToken:  The token to use to get the next set of results, or <b>null</b> if there are no additional results.<br/>principals:  The principals associated with the thing.<br/>        """
        pass

    def list_thing_registration_task_reports(self, reportType: str, taskId: str, nextToken: str=None, maxResults: int=None) -> ListThingRegistrationTaskReportsResponse:
        r"""Information about the thing registration tasks.

        :param self:
        :param maxResults:  The maximum number of results to return per request.<br/>nextToken:  To retrieve the next set of results, the <code>nextToken</code> value from a previous response; otherwise <b>null</b> to receive the first set of results.<br/>reportType:  The type of task report.<br/>taskId:  The id of the task.<br/>
        :return: nextToken:  The token to use to get the next set of results, or <b>null</b> if there are no additional results.<br/>reportType:  The type of task report.<br/>resourceLinks:  Links to the task resources.<br/>        """
        pass

    def list_thing_registration_tasks(self, nextToken: str=None, maxResults: int=None, status: str=None) -> ListThingRegistrationTasksResponse:
        r"""List bulk thing provisioning tasks.

        :param self:
        :param status:  The status of the bulk thing provisioning task.<br/>maxResults:  The maximum number of results to return at one time.<br/>nextToken:  To retrieve the next set of results, the <code>nextToken</code> value from a previous response; otherwise <b>null</b> to receive the first set of results.<br/>
        :return: nextToken:  The token to use to get the next set of results, or <b>null</b> if there are no additional results.<br/>taskIds:  A list of bulk thing provisioning task IDs.<br/>        """
        pass

    def list_thing_types(self, nextToken: str=None, maxResults: int=None, thingTypeName: str=None) -> ListThingTypesResponse:
        r"""Lists the existing thing types.

        :param self:
        :param thingTypeName:  The name of the thing type.<br/>maxResults:  The maximum number of results to return in this operation.<br/>nextToken:  To retrieve the next set of results, the <code>nextToken</code> value from a previous response; otherwise <b>null</b> to receive the first set of results.<br/>
        :return: nextToken:  The token for the next set of results. Will not be returned if operation has returned all results.<br/>thingTypes:  The thing types.<br/>        """
        pass

    def list_things(self, nextToken: str=None, maxResults: int=None, attributeName: str=None, attributeValue: str=None, thingTypeName: str=None, usePrefixAttributeValue: usePrefixAttributeValue=None) -> ListThingsResponse:
        r"""Lists your things. Use the <b>attributeName</b> and <b>attributeValue</b> parameters to filter your things. For example, calling <code>ListThings</code> with attributeName=Color and attributeValue=Red retrieves all things in the registry that contain an attribute <b>Color</b> with the value <b>Red</b>.  <note> You will not be charged for calling this API if an <code>Access denied</code> error is returned. You will also not be charged if no attributes or pagination token was provided in request and no pagination token and no results were returned. </note>

        :param self:
        :param usePrefixAttributeValue:  When <code>true</code>, the action returns the thing resources with attribute values that start with the <code>attributeValue</code> provided. When <code>false</code>, or not present, the action returns only the thing resources with attribute values that match the entire <code>attributeValue</code> provided. <br/>thingTypeName:  The name of the thing type used to search for things.<br/>attributeValue:  The attribute value used to search for things.<br/>attributeName:  The attribute name used to search for things.<br/>maxResults:  The maximum number of results to return in this operation.<br/>nextToken:  To retrieve the next set of results, the <code>nextToken</code> value from a previous response; otherwise <b>null</b> to receive the first set of results.<br/>
        :return: nextToken:  The token to use to get the next set of results. Will not be returned if operation has returned all results.<br/>things:  The things.<br/>        """
        pass

    def list_things_in_billing_group(self, billingGroupName: str, nextToken: str=None, maxResults: int=None) -> ListThingsInBillingGroupResponse:
        r"""Lists the things you have added to the given billing group.

        :param self:
        :param maxResults:  The maximum number of results to return per request.<br/>nextToken:  To retrieve the next set of results, the <code>nextToken</code> value from a previous response; otherwise <b>null</b> to receive the first set of results.<br/>billingGroupName:  The name of the billing group.<br/>
        :return: nextToken:  The token to use to get the next set of results. Will not be returned if operation has returned all results.<br/>things:  A list of things in the billing group.<br/>        """
        pass

    def list_things_in_thing_group(self, thingGroupName: str, recursive: Recursive=None, nextToken: str=None, maxResults: int=None) -> ListThingsInThingGroupResponse:
        r"""Lists the things in the specified group.

        :param self:
        :param maxResults:  The maximum number of results to return at one time.<br/>nextToken:  To retrieve the next set of results, the <code>nextToken</code> value from a previous response; otherwise <b>null</b> to receive the first set of results.<br/>recursive:  When true, list things in this thing group and in all child groups as well.<br/>thingGroupName:  The thing group name.<br/>
        :return: nextToken:  The token to use to get the next set of results, or <b>null</b> if there are no additional results.<br/>things:  The things in the specified thing group.<br/>        """
        pass

    def list_topic_rule_destinations(self, maxResults: int=None, nextToken: str=None) -> ListTopicRuleDestinationsResponse:
        r"""Lists all the topic rule destinations in your AWS account.

        :param self:
        :param nextToken:  To retrieve the next set of results, the <code>nextToken</code> value from a previous response; otherwise <b>null</b> to receive the first set of results.<br/>maxResults:  The maximum number of results to return at one time.<br/>
        :return: nextToken:  The token to use to get the next set of results, or <b>null</b> if there are no additional results.<br/>destinationSummaries:  Information about a topic rule destination.<br/>        """
        pass

    def list_topic_rules(self, topic: str=None, maxResults: int=None, nextToken: str=None, ruleDisabled: IsDisabled=None) -> ListTopicRulesResponse:
        r"""Lists the rules for the specific topic.

        :param self:
        :param ruleDisabled:  Specifies whether the rule is disabled.<br/>nextToken:  To retrieve the next set of results, the <code>nextToken</code> value from a previous response; otherwise <b>null</b> to receive the first set of results.<br/>maxResults:  The maximum number of results to return.<br/>topic:  The topic.<br/>
        :return: nextToken:  The token to use to get the next set of results, or <b>null</b> if there are no additional results.<br/>rules:  The rules.<br/>        """
        pass

    def list_v2_logging_levels(self, targetType: str=None, nextToken: str=None, maxResults: int=None) -> ListV2LoggingLevelsResponse:
        r"""Lists logging levels.

        :param self:
        :param maxResults:  The maximum number of results to return at one time.<br/>nextToken:  To retrieve the next set of results, the <code>nextToken</code> value from a previous response; otherwise <b>null</b> to receive the first set of results.<br/>targetType:  The type of resource for which you are configuring logging. Must be <code>THING_Group</code>.<br/>
        :return: nextToken:  The token to use to get the next set of results, or <b>null</b> if there are no additional results.<br/>logTargetConfigurations:  The logging configuration for a target.<br/>        """
        pass

    def list_violation_events(self, endTime: Timestamp, startTime: Timestamp, thingName: str=None, securityProfileName: str=None, behaviorCriteriaType: str=None, listSuppressedAlerts: ListSuppressedAlerts=None, nextToken: str=None, maxResults: int=None) -> ListViolationEventsResponse:
        r"""Lists the Device Defender security profile violations discovered during the given time period. You can use filters to limit the results to those alerts issued for a particular security profile, behavior, or thing (device).

        :param self:
        :param maxResults:  The maximum number of results to return at one time.<br/>nextToken:  The token for the next set of results.<br/>listSuppressedAlerts:   A list of all suppressed alerts. <br/>behaviorCriteriaType:   The criteria for a behavior. <br/>securityProfileName:  A filter to limit results to those alerts generated by the specified security profile.<br/>thingName:  A filter to limit results to those alerts caused by the specified thing.<br/>endTime:  The end time for the alerts to be listed.<br/>startTime:  The start time for the alerts to be listed.<br/>
        :return: nextToken:  A token that can be used to retrieve the next set of results, or <code>null</code> if there are no additional results.<br/>violationEvents:  The security profile violation alerts issued for this account during the given time period, potentially filtered by security profile, behavior violated, or thing (device) violating.<br/>        """
        pass

    def register_ca_certificate(self, verificationCertificate: str, caCertificate: str, setAsActive: SetAsActive=None, allowAutoRegistration: AllowAutoRegistration=None, registrationConfig: RegistrationConfig=None, tags: List[Tag]=None) -> RegisterCACertificateResponse:
        r"""Registers a CA certificate with AWS IoT. This CA certificate can then be used to sign device certificates, which can be then registered with AWS IoT. You can register up to 10 CA certificates per AWS account that have the same subject field. This enables you to have up to 10 certificate authorities sign your device certificates. If you have more than one CA certificate registered, make sure you pass the CA certificate when you register your device certificates with the RegisterCertificate API.

        :param self:
        :param tags:  Metadata which can be used to manage the CA certificate. <note> For URI Request parameters use format: ...key1=value1&amp;key2=value2... For the CLI command-line parameter use format: &amp;&amp;tags "key1=value1&amp;key2=value2..." For the cli-input-json file use format: "tags": "key1=value1&amp;key2=value2..." </note><br/>registrationConfig:  Information about the registration configuration.:<br/>allowAutoRegistration:  Allows this CA certificate to be used for auto registration of device certificates.<br/>setAsActive:  A boolean value that specifies if the CA certificate is set to active.<br/>verificationCertificate:  The private key verification certificate.<br/>caCertificate:  The CA certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>roleArn</i> The ARN of the role.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>templateBody</i> The template body.<br/>
        :return: certificateId:  The CA certificate identifier.<br/>certificateArn:  The CA certificate ARN.<br/>        """
        pass

    def register_certificate(self, certificatePem: str, caCertificatePem: str=None, setAsActive: SetAsActiveFlag=None, status: str=None) -> RegisterCertificateResponse:
        r"""Registers a device certificate with AWS IoT. If you have more than one CA certificate that has the same subject field, you must specify the CA certificate that was used to sign the device certificate being registered.

        :param self:
        :param status:  The status of the register certificate request.<br/>setAsActive:  A boolean value that specifies if the certificate is set to active.<br/>caCertificatePem:  The CA certificate used to sign the device certificate being registered.<br/>certificatePem:  The certificate data, in PEM format.<br/>
        :return: certificateId:  The certificate identifier.<br/>certificateArn:  The certificate ARN.<br/>        """
        pass

    def register_certificate_without_ca(self, certificatePem: str, status: str=None) -> RegisterCertificateWithoutCAResponse:
        r"""Register a certificate that does not have a certificate authority (CA).

        :param self:
        :param status:  The status of the register certificate request.<br/>certificatePem:  The certificate data, in PEM format.<br/>
        :return: certificateId:  The ID of the registered certificate. (The last part of the certificate ARN contains the certificate ID.<br/>certificateArn:  The Amazon Resource Name (ARN) of the registered certificate.<br/>        """
        pass

    def register_thing(self, templateBody: str, parameters: Parameters=None) -> RegisterThingResponse:
        r"""Provisions a thing in the device registry. RegisterThing calls other AWS IoT control plane APIs. These calls might exceed your account level <a href="https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html#limits_iot"> AWS IoT Throttling Limits</a> and cause throttle errors. Please contact <a href="https://console.aws.amazon.com/support/home">AWS Customer Support</a> to raise your throttling limits if necessary.

        :param self:
        :param parameters:  The parameters for provisioning a thing. See <a href="https://docs.aws.amazon.com/iot/latest/developerguide/provision-template.html">Provisioning Templates</a> for more information.<br/>templateBody:  The provisioning template. See <a href="https://docs.aws.amazon.com/iot/latest/developerguide/provision-w-cert.html">Provisioning Devices That Have Device Certificates</a> for more information.<br/>
        :return: resourceArns:  ARNs for the generated resources.<br/>certificatePem:  The certificate data, in PEM format.<br/>        """
        pass

    def reject_certificate_transfer(self, certificateId: str, rejectReason: str=None):
        r"""Rejects a pending certificate transfer. After AWS IoT rejects a certificate transfer, the certificate status changes from <b>PENDING_TRANSFER</b> to <b>INACTIVE</b>. To check for pending certificate transfers, call <a>ListCertificates</a> to enumerate your certificates. This operation can only be called by the transfer destination. After it is called, the certificate will be returned to the source's account in the INACTIVE state.

        :param self:
        :param rejectReason:  The reason the certificate transfer was rejected.<br/>certificateId:  The ID of the certificate. (The last part of the certificate ARN contains the certificate ID.)<br/>
        :return:         """
        pass

    def remove_thing_from_billing_group(self, billingGroupName: str=None, billingGroupArn: str=None, thingName: str=None, thingArn: str=None) -> RemoveThingFromBillingGroupResponse:
        r"""Removes the given thing from the billing group.

        :param self:
        :param thingArn:  The ARN of the thing to be removed from the billing group.<br/>thingName:  The name of the thing to be removed from the billing group.<br/>billingGroupArn:  The ARN of the billing group.<br/>billingGroupName:  The name of the billing group.<br/>
        :return:         """
        pass

    def remove_thing_from_thing_group(self, thingGroupName: str=None, thingGroupArn: str=None, thingName: str=None, thingArn: str=None) -> RemoveThingFromThingGroupResponse:
        r"""Remove the specified thing from the specified group. You must specify either a <code>thingGroupArn</code> or a <code>thingGroupName</code> to identify the thing group and either a <code>thingArn</code> or a <code>thingName</code> to identify the thing to remove from the thing group. 

        :param self:
        :param thingArn:  The ARN of the thing to remove from the group.<br/>thingName:  The name of the thing to remove from the group.<br/>thingGroupArn:  The group ARN.<br/>thingGroupName:  The group name.<br/>
        :return:         """
        pass

    def replace_topic_rule(self, topicRulePayload: TopicRulePayload, ruleName: str):
        r"""Replaces the rule. You must specify all parameters for the new rule. Creating rules is an administrator-level action. Any user who has permission to create rules will be able to access data processed by the rule.

        :param self:
        :param topicRulePayload:  The rule payload.:<br/>ruleName:  The name of the rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>errorAction</i> The action to take when an error occurs.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>errorAction</b>: The action to take when an error occurs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>awsIotSqlVersion</i> The version of the SQL rules engine to use when evaluating the rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ruleDisabled</i> Specifies whether the rule is disabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>actions</i> The actions associated with the rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> The description of the rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>sql</i> The SQL statement used to query the topic. For more information, see <a href="https://docs.aws.amazon.com/iot/latest/developerguide/iot-sql-reference.html">AWS IoT SQL Reference</a> in the <i>AWS IoT Developer Guide</i>.<br/>Write to a DynamoDB table.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>dynamoDB</b>: Write to a DynamoDB table.
        :return:         """
        pass

    def search_index(self, queryString: str, indexName: str=None, nextToken: str=None, maxResults: int=None, queryVersion: str=None) -> SearchIndexResponse:
        r"""The query search index.

        :param self:
        :param queryVersion:  The query version.<br/>maxResults:  The maximum number of results to return at one time.<br/>nextToken:  The token used to get the next set of results, or <code>null</code> if there are no additional results.<br/>queryString:  The search query string.<br/>indexName:  The search index name.<br/>
        :return: thingGroups:  The thing groups that match the search query.<br/>things:  The things that match the search query.<br/>nextToken:  The token used to get the next set of results, or <code>null</code> if there are no additional results.<br/>        """
        pass

    def set_default_authorizer(self, authorizerName: str) -> SetDefaultAuthorizerResponse:
        r"""Sets the default authorizer. This will be used if a websocket connection is made without specifying an authorizer.

        :param self:
        :param authorizerName:  The authorizer name.<br/>
        :return: authorizerArn:  The authorizer ARN.<br/>authorizerName:  The authorizer name.<br/>        """
        pass

    def set_default_policy_version(self, policyVersionId: str, policyName: str):
        r"""Sets the specified version of the specified policy as the policy's default (operative) version. This action affects all certificates to which the policy is attached. To list the principals the policy is attached to, use the ListPrincipalPolicy API.

        :param self:
        :param policyVersionId:  The policy version ID.<br/>policyName:  The policy name.<br/>
        :return:         """
        pass

    def set_logging_options(self, loggingOptionsPayload: LoggingOptionsPayload):
        r"""Sets the logging options. NOTE: use of this command is not recommended. Use <code>SetV2LoggingOptions</code> instead.

        :param self:
        :param loggingOptionsPayload:  The logging options payload.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>logLevel</i> The log level.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>roleArn</i> The ARN of the IAM role that grants access.<br/>
        :return:         """
        pass

    def set_v2_logging_level(self, logLevel: str, logTarget: LogTarget):
        r"""Sets the logging level.

        :param self:
        :param logLevel:  The log level.<br/>logTarget:  The log target.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>targetName</i> The target name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>targetType</i> The target type.<br/>
        :return:         """
        pass

    def set_v2_logging_options(self, roleArn: str=None, defaultLogLevel: str=None, disableAllLogs: DisableAllLogs=None):
        r"""Sets the logging options for the V2 logging service.

        :param self:
        :param disableAllLogs:  If true all logs are disabled. The default is false.<br/>defaultLogLevel:  The default logging level.<br/>roleArn:  The ARN of the role that allows IoT to write to Cloudwatch logs.<br/>
        :return:         """
        pass

    def start_audit_mitigation_actions_task(self, clientRequestToken: str, auditCheckToActionsMapping: AuditCheckToActionsMapping, target: AuditMitigationActionsTaskTarget, taskId: str) -> StartAuditMitigationActionsTaskResponse:
        r"""Starts a task that applies a set of mitigation actions to the specified target.

        :param self:
        :param clientRequestToken:  Each audit mitigation task must have a unique client request token. If you try to start a new task with the same token as a task that already exists, an exception occurs. If you omit this value, a unique client request token is generated automatically.<br/>auditCheckToActionsMapping:  For an audit check, specifies which mitigation actions to apply. Those actions must be defined in your AWS account.<br/>target:  Specifies the audit findings to which the mitigation actions are applied. You can apply them to a type of audit check, to all findings from an audit, or to a specific set of findings.:<br/>taskId:  A unique identifier for the task. You can use this identifier to check the status of the task or to cancel it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>auditCheckToReasonCodeFilter</i> Specifies a filter in the form of an audit check and set of reason codes that identify the findings from the audit to which the audit mitigation actions task apply.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>findingIds</i> If the task will apply a mitigation action to one or more listed findings, this value uniquely identifies those findings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>auditTaskId</i> If the task will apply a mitigation action to findings from a specific audit, this value uniquely identifies the audit.<br/>
        :return: taskId:  The unique identifier for the audit mitigation task. This matches the <code>taskId</code> that you specified in the request.<br/>        """
        pass

    def start_detect_mitigation_actions_task(self, clientRequestToken: str, actions: List[MitigationActionName], target: DetectMitigationActionsTaskTarget, taskId: str, violationEventOccurrenceRange: ViolationEventOccurrenceRange=None, includeOnlyActiveViolations: NullableBoolean=None, includeSuppressedAlerts: NullableBoolean=None) -> StartDetectMitigationActionsTaskResponse:
        r""" Starts a Device Defender ML Detect mitigation actions task. 

        :param self:
        :param clientRequestToken:   Each mitigation action task must have a unique client request token. If you try to create a new task with the same token as a task that already exists, an exception occurs. If you omit this value, AWS SDKs will automatically generate a unique client request. <br/>includeSuppressedAlerts:   Specifies to include suppressed alerts. <br/>includeOnlyActiveViolations:   Specifies to list only active violations. <br/>violationEventOccurrenceRange:   Specifies the time period of which violation events occurred between. :<br/>actions:   The actions to be performed when a device has unexpected behavior. <br/>target:   Specifies the ML Detect findings to which the mitigation actions are applied. :<br/>taskId:   The unique identifier of the task. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>behaviorName</i>  The name of the behavior. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>securityProfileName</i>  The name of the security profile. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>violationIds</i>  The unique identifiers of the violations. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>endTime</i>  The end date and time of a time period in which violation events occurred. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>startTime</i>  The start date and time of a time period in which violation events occurred. <br/>
        :return: taskId:   The unique identifier of the task. <br/>        """
        pass

    def start_on_demand_audit_task(self, targetCheckNames: List[AuditCheckName]) -> StartOnDemandAuditTaskResponse:
        r"""Starts an on-demand Device Defender audit.

        :param self:
        :param targetCheckNames:  Which checks are performed during the audit. The checks you specify must be enabled for your account or an exception occurs. Use <code>DescribeAccountAuditConfiguration</code> to see the list of all checks, including those that are enabled or <code>UpdateAccountAuditConfiguration</code> to select which checks are enabled.<br/>
        :return: taskId:  The ID of the on-demand audit you started.<br/>        """
        pass

    def start_thing_registration_task(self, roleArn: str, inputFileKey: str, inputFileBucket: str, templateBody: str) -> StartThingRegistrationTaskResponse:
        r"""Creates a bulk thing provisioning task.

        :param self:
        :param roleArn:  The IAM role ARN that grants permission the input file.<br/>inputFileKey:  The name of input file within the S3 bucket. This file contains a newline delimited JSON file. Each line contains the parameter values to provision one device (thing).<br/>inputFileBucket:  The S3 bucket that contains the input file.<br/>templateBody:  The provisioning template.<br/>
        :return: taskId:  The bulk thing provisioning task ID.<br/>        """
        pass

    def stop_thing_registration_task(self, taskId: str) -> StopThingRegistrationTaskResponse:
        r"""Cancels a bulk thing provisioning task.

        :param self:
        :param taskId:  The bulk thing provisioning task ID.<br/>
        :return:         """
        pass

    def tag_resource(self, tags: List[Tag], resourceArn: str) -> TagResourceResponse:
        r"""Adds to or modifies the tags of the given resource. Tags are metadata which can be used to manage a resource.

        :param self:
        :param tags:  The new or modified tags for the resource.<br/>resourceArn:  The ARN of the resource.<br/>
        :return:         """
        pass

    def test_authorization(self, authInfos: List[AuthInfo], principal: str=None, cognitoIdentityPoolId: str=None, clientId: str=None, policyNamesToAdd: List[PolicyName]=None, policyNamesToSkip: List[PolicyName]=None) -> TestAuthorizationResponse:
        r"""Tests if a specified principal is authorized to perform an AWS IoT action on a specified resource. Use this to test and debug the authorization behavior of devices that connect to the AWS IoT device gateway.

        :param self:
        :param policyNamesToSkip:  When testing custom authorization, the policies specified here are treated as if they are not attached to the principal being authorized.<br/>policyNamesToAdd:  When testing custom authorization, the policies specified here are treated as if they are attached to the principal being authorized.<br/>clientId:  The MQTT client ID.<br/>authInfos:  A list of authorization info objects. Simulating authorization will create a response for each <code>authInfo</code> object in the list.<br/>cognitoIdentityPoolId:  The Cognito identity pool ID.<br/>principal:  The principal. Valid principals are CertificateArn (arn:aws:iot:<i>region</i>:<i>accountId</i>:cert/<i>certificateId</i>), thingGroupArn (arn:aws:iot:<i>region</i>:<i>accountId</i>:thinggroup/<i>groupName</i>) and CognitoId (<i>region</i>:<i>id</i>).<br/>
        :return: authResults:  The authentication results.<br/>        """
        pass

    def test_invoke_authorizer(self, authorizerName: str, token: str=None, tokenSignature: str=None, httpContext: HttpContext=None, mqttContext: MqttContext=None, tlsContext: TlsContext=None) -> TestInvokeAuthorizerResponse:
        r"""Tests a custom authorization behavior by invoking a specified custom authorizer. Use this to test and debug the custom authorization behavior of devices that connect to the AWS IoT device gateway.

        :param self:
        :param tlsContext:  Specifies a test TLS authorization request.:<br/>mqttContext:  Specifies a test MQTT authorization request.:<br/>httpContext:  Specifies a test HTTP authorization request.:<br/>tokenSignature:  The signature made with the token and your custom authentication service's private key. This value must be Base-64-encoded.<br/>token:  The token returned by your custom authentication service.<br/>authorizerName:  The custom authorizer name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>queryString</i> The query string keys and values in an HTTP authorization request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>headers</i> The header keys and values in an HTTP authorization request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>clientId</i> The value of the <code>clientId</code> key in an MQTT authorization request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>password</i> The value of the <code>password</code> key in an MQTT authorization request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>username</i> The value of the <code>username</code> key in an MQTT authorization request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>serverName</i> The value of the <code>serverName</code> key in a TLS authorization request.<br/>
        :return: disconnectAfterInSeconds:  The number of seconds after which the connection is terminated.<br/>refreshAfterInSeconds:  The number of seconds after which the temporary credentials are refreshed.<br/>policyDocuments:  IAM policy documents.<br/>principalId:  The principal ID.<br/>isAuthenticated:  True if the token is authenticated, otherwise false.<br/>        """
        pass

    def transfer_certificate(self, targetAwsAccount: str, certificateId: str, transferMessage: str=None) -> TransferCertificateResponse:
        r"""Transfers the specified certificate to the specified AWS account. You can cancel the transfer until it is acknowledged by the recipient. No notification is sent to the transfer destination's account. It is up to the caller to notify the transfer target. The certificate being transferred must not be in the ACTIVE state. You can use the UpdateCertificate API to deactivate it. The certificate must not have any policies attached to it. You can use the DetachPrincipalPolicy API to detach them.

        :param self:
        :param transferMessage:  The transfer message.<br/>targetAwsAccount:  The AWS account.<br/>certificateId:  The ID of the certificate. (The last part of the certificate ARN contains the certificate ID.)<br/>
        :return: transferredCertificateArn:  The ARN of the certificate.<br/>        """
        pass

    def untag_resource(self, tagKeys: List[TagKey], resourceArn: str) -> UntagResourceResponse:
        r"""Removes the given tags (metadata) from the resource.

        :param self:
        :param tagKeys:  A list of the keys of the tags to be removed from the resource.<br/>resourceArn:  The ARN of the resource.<br/>
        :return:         """
        pass

    def update_account_audit_configuration(self, roleArn: str=None, auditNotificationTargetConfigurations: AuditNotificationTargetConfigurations=None, auditCheckConfigurations: AuditCheckConfigurations=None) -> UpdateAccountAuditConfigurationResponse:
        r"""Configures or reconfigures the Device Defender audit settings for this account. Settings include how audit notifications are sent and which audit checks are enabled or disabled.

        :param self:
        :param auditCheckConfigurations:  Specifies which audit checks are enabled and disabled for this account. Use <code>DescribeAccountAuditConfiguration</code> to see the list of all checks, including those that are currently enabled. Some data collection might start immediately when certain checks are enabled. When a check is disabled, any data collected so far in relation to the check is deleted. You cannot disable a check if it's used by any scheduled audit. You must first delete the check from the scheduled audit or delete the scheduled audit itself. On the first call to <code>UpdateAccountAuditConfiguration</code>, this parameter is required and must specify at least one enabled check.<br/>auditNotificationTargetConfigurations:  Information about the targets to which audit notifications are sent.<br/>roleArn:  The Amazon Resource Name (ARN) of the role that grants permission to AWS IoT to access information about your devices, policies, certificates, and other items as required when performing an audit.<br/>
        :return:         """
        pass

    def update_audit_suppression(self, resourceIdentifier: ResourceIdentifier, checkName: str, expirationDate: Timestamp=None, suppressIndefinitely: SuppressIndefinitely=None, description: str=None) -> UpdateAuditSuppressionResponse:
        r""" Updates a Device Defender audit suppression. 

        :param self:
        :param description:   The description of the audit suppression. <br/>suppressIndefinitely:   Indicates whether a suppression should exist indefinitely or not. <br/>expirationDate:   The expiration date (epoch timestamp in seconds) that you want the suppression to adhere to. <br/>resourceIdentifier:  Information that identifies the noncompliant resource.:<br/>checkName:  An audit check name. Checks must be enabled for your account. (Use <code>DescribeAccountAuditConfiguration</code> to see the list of all checks, including those that are enabled or use <code>UpdateAccountAuditConfiguration</code> to select which checks are enabled.)<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>roleAliasArn</i> The ARN of the role alias that has overly permissive actions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>iamRoleArn</i> The ARN of the IAM role that has overly permissive actions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>account</i> The account with which the resource is associated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>policyVersionIdentifier</i> The version of the policy associated with the resource.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>policyVersionIdentifier</b>: The version of the policy associated with the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>clientId</i> The client ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>cognitoIdentityPoolId</i> The ID of the Amazon Cognito identity pool.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>caCertificateId</i> The ID of the CA certificate used to authorize the certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deviceCertificateId</i> The ID of the certificate attached to the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>policyVersionId</i> The ID of the version of the policy associated with the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>policyName</i> The name of the policy.<br/>
        :return:         """
        pass

    def update_authorizer(self, authorizerName: str, authorizerFunctionArn: str=None, tokenKeyName: str=None, tokenSigningPublicKeys: PublicKeyMap=None, status: str=None) -> UpdateAuthorizerResponse:
        r"""Updates an authorizer.

        :param self:
        :param status:  The status of the update authorizer request.<br/>tokenSigningPublicKeys:  The public keys used to verify the token signature.<br/>tokenKeyName:  The key used to extract the token from the HTTP headers. <br/>authorizerFunctionArn:  The ARN of the authorizer's Lambda function.<br/>authorizerName:  The authorizer name.<br/>
        :return: authorizerArn:  The authorizer ARN.<br/>authorizerName:  The authorizer name.<br/>        """
        pass

    def update_billing_group(self, billingGroupProperties: BillingGroupProperties, billingGroupName: str, expectedVersion: OptionalVersion=None) -> UpdateBillingGroupResponse:
        r"""Updates information about the billing group.

        :param self:
        :param expectedVersion:  The expected version of the billing group. If the version of the billing group does not match the expected version specified in the request, the <code>UpdateBillingGroup</code> request is rejected with a <code>VersionConflictException</code>.<br/>billingGroupProperties:  The properties of the billing group.:<br/>billingGroupName:  The name of the billing group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>billingGroupDescription</i> The description of the billing group.<br/>
        :return: version:  The latest version of the billing group.<br/>        """
        pass

    def update_ca_certificate(self, certificateId: str, newStatus: str=None, newAutoRegistrationStatus: str=None, registrationConfig: RegistrationConfig=None, removeAutoRegistration: RemoveAutoRegistration=None):
        r"""Updates a registered CA certificate.

        :param self:
        :param removeAutoRegistration:  If true, removes auto registration.<br/>registrationConfig:  Information about the registration configuration.:<br/>newAutoRegistrationStatus:  The new value for the auto registration status. Valid values are: "ENABLE" or "DISABLE".<br/>newStatus:  The updated status of the CA certificate.  <b>Note:</b> The status value REGISTER_INACTIVE is deprecated and should not be used.<br/>certificateId:  The CA certificate identifier.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>roleArn</i> The ARN of the role.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>templateBody</i> The template body.<br/>
        :return:         """
        pass

    def update_certificate(self, newStatus: str, certificateId: str):
        r"""Updates the status of the specified certificate. This operation is idempotent. Certificates must be in the ACTIVE state to authenticate devices that use a certificate to connect to AWS IoT. Within a few minutes of updating a certificate from the ACTIVE state to any other state, AWS IoT disconnects all devices that used that certificate to connect. Devices cannot use a certificate that is not in the ACTIVE state to reconnect.

        :param self:
        :param newStatus:  The new status.  <b>Note:</b> Setting the status to PENDING_TRANSFER or PENDING_ACTIVATION will result in an exception being thrown. PENDING_TRANSFER and PENDING_ACTIVATION are statuses used internally by AWS IoT. They are not intended for developer use.  <b>Note:</b> The status value REGISTER_INACTIVE is deprecated and should not be used.<br/>certificateId:  The ID of the certificate. (The last part of the certificate ARN contains the certificate ID.)<br/>
        :return:         """
        pass

    def update_custom_metric(self, displayName: str, metricName: str) -> UpdateCustomMetricResponse:
        r"""Updates a Device Defender detect custom metric. 

        :param self:
        :param displayName:   Field represents a friendly name in the console for the custom metric, it doesn't have to be unique. Don't use this name as the metric identifier in the device metric report. Can be updated. <br/>metricName:   The name of the custom metric. Cannot be updated. <br/>
        :return: lastModifiedDate:   The time the custom metric was last modified in milliseconds since epoch. <br/>creationDate:   The creation date of the custom metric in milliseconds since epoch. <br/>displayName:   A friendly name in the console for the custom metric <br/>metricType:   The type of the custom metric. Types include <code>string-list</code>, <code>ip-address-list</code>, <code>number-list</code>, and <code>number</code>. <br/>metricArn:   The Amazon Resource Number (ARN) of the custom metric. <br/>metricName:   The name of the custom metric. <br/>        """
        pass

    def update_dimension(self, stringValues: List[DimensionStringValue], name: str) -> UpdateDimensionResponse:
        r"""Updates the definition for a dimension. You cannot change the type of a dimension after it is created (you can delete it and recreate it).

        :param self:
        :param stringValues:  Specifies the value or list of values for the dimension. For <code>TOPIC_FILTER</code> dimensions, this is a pattern used to match the MQTT topic (for example, "admin/#").<br/>name:  A unique identifier for the dimension. Choose something that describes the type and value to make it easy to remember what it does.<br/>
        :return: lastModifiedDate:  The date and time, in milliseconds since epoch, when the dimension was most recently updated.<br/>creationDate:  The date and time, in milliseconds since epoch, when the dimension was initially created.<br/>stringValues:  The value or list of values used to scope the dimension. For example, for topic filters, this is the pattern used to match the MQTT topic name.<br/>type:  The type of the dimension.<br/>arn:  The Amazon Resource Name (ARN)of the created dimension.<br/>name:  A unique identifier for the dimension.<br/>        """
        pass

    def update_domain_configuration(self, domainConfigurationName: str, authorizerConfig: AuthorizerConfig=None, domainConfigurationStatus: str=None, removeAuthorizerConfig: RemoveAuthorizerConfig=None) -> UpdateDomainConfigurationResponse:
        r"""Updates values stored in the domain configuration. Domain configurations for default endpoints can't be updated.

        :param self:
        :param removeAuthorizerConfig:  Removes the authorization configuration from a domain.<br/>domainConfigurationStatus:  The status to which the domain configuration should be updated.<br/>authorizerConfig:  An object that specifies the authorization service for a domain.:<br/>domainConfigurationName:  The name of the domain configuration to be updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>allowAuthorizerOverride</i> A Boolean that specifies whether the domain configuration's authorization service can be overridden.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>defaultAuthorizerName</i> The name of the authorization service for a domain configuration.<br/>
        :return: domainConfigurationArn:  The ARN of the domain configuration that was updated.<br/>domainConfigurationName:  The name of the domain configuration that was updated.<br/>        """
        pass

    def update_dynamic_thing_group(self, thingGroupProperties: ThingGroupProperties, thingGroupName: str, expectedVersion: OptionalVersion=None, indexName: str=None, queryString: str=None, queryVersion: str=None) -> UpdateDynamicThingGroupResponse:
        r"""Updates a dynamic thing group.

        :param self:
        :param queryVersion:  The dynamic thing group query version to update. <note> Currently one query version is supported: "2017-09-30". If not specified, the query version defaults to this value. </note><br/>queryString:  The dynamic thing group search query string to update.<br/>indexName:  The dynamic thing group index to update. <note> Currently one index is supported: 'AWS_Things'. </note><br/>expectedVersion:  The expected version of the dynamic thing group to update.<br/>thingGroupProperties:  The dynamic thing group properties to update.:<br/>thingGroupName:  The name of the dynamic thing group to update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>attributePayload</i> The thing group attributes in JSON format.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>attributePayload</b>: The thing group attributes in JSON format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>thingGroupDescription</i> The thing group description.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>merge</i> Specifies whether the list of attributes provided in the <code>AttributePayload</code> is merged with the attributes stored in the registry, instead of overwriting them. To remove an attribute, call <code>UpdateThing</code> with an empty attribute value. <note> The <code>merge</code> attribute is only valid when calling <code>UpdateThing</code> or <code>UpdateThingGroup</code>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>attributes</i> A JSON string containing up to three key-value pair in JSON format. For example:  <code>{\"attributes\":{\"string1\":\"string2\"}}</code> <br/>
        :return: version:  The dynamic thing group version.<br/>        """
        pass

    def update_event_configurations(self, eventConfigurations: EventConfigurations=None) -> UpdateEventConfigurationsResponse:
        r"""Updates the event configurations.

        :param self:
        :param eventConfigurations:  The new event configuration values.<br/>
        :return:         """
        pass

    def update_indexing_configuration(self, thingIndexingConfiguration: ThingIndexingConfiguration=None, thingGroupIndexingConfiguration: ThingGroupIndexingConfiguration=None) -> UpdateIndexingConfigurationResponse:
        r"""Updates the search configuration.

        :param self:
        :param thingGroupIndexingConfiguration:  Thing group indexing configuration.:<br/>thingIndexingConfiguration:  Thing indexing configuration.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>customFields</i> Contains custom field names and their data type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>managedFields</i> Contains fields that are indexed and whose types are already known by the Fleet Indexing service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>thingConnectivityIndexingMode</i> Thing connectivity indexing mode. Valid values are:  <ul> <li> STATUS – Your thing index contains connectivity status. To enable thing connectivity indexing, thingIndexMode must not be set to OFF. </li> <li> OFF - Thing connectivity status indexing is disabled. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>thingIndexingMode</i> Thing indexing mode. Valid values are: <ul> <li> REGISTRY – Your thing index contains registry data only. </li> <li> REGISTRY_AND_SHADOW - Your thing index contains registry and shadow data. </li> <li> OFF - Thing indexing is disabled. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>customFields</i> A list of thing group fields to index. This list cannot contain any managed fields. Use the GetIndexingConfiguration API to get a list of managed fields. Contains custom field names and their data type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>managedFields</i> Contains fields that are indexed and whose types are already known by the Fleet Indexing service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>thingGroupIndexingMode</i> Thing group indexing mode.<br/>
        :return:         """
        pass

    def update_job(self, jobId: str, description: str=None, presignedUrlConfig: PresignedUrlConfig=None, jobExecutionsRolloutConfig: JobExecutionsRolloutConfig=None, abortConfig: AbortConfig=None, timeoutConfig: TimeoutConfig=None, namespaceId: str=None):
        r"""Updates supported fields of the specified job.

        :param self:
        :param namespaceId:  The namespace used to indicate that a job is a customer-managed job. When you specify a value for this parameter, AWS IoT Core sends jobs notifications to MQTT topics that contain the value in the following format.  <code>$aws/things/<i>THING_NAME</i>/jobs/<i>JOB_ID</i>/notify-namespace-<i>NAMESPACE_ID</i>/</code>  <note> The <code>namespaceId</code> feature is in public preview. </note><br/>timeoutConfig:  Specifies the amount of time each device has to finish its execution of the job. The timer is started when the job execution status is set to <code>IN_PROGRESS</code>. If the job execution status is not set to another terminal state before the time expires, it will be automatically set to <code>TIMED_OUT</code>. :<br/>abortConfig:  Allows you to create criteria to abort a job.:<br/>jobExecutionsRolloutConfig:  Allows you to create a staged rollout of the job.:<br/>presignedUrlConfig:  Configuration information for pre-signed S3 URLs.:<br/>description:  A short text description of the job.<br/>jobId:  The ID of the job to be updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>expiresInSec</i> How long (in seconds) pre-signed URLs are valid. Valid values are 60 - 3600, the default value is 3600 seconds. Pre-signed URLs are generated when Jobs receives an MQTT request for the job document.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>roleArn</i> The ARN of an IAM role that grants grants permission to download files from the S3 bucket where the job data/updates are stored. The role must also grant permission for IoT to download the files.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>exponentialRate</i> The rate of increase for a job rollout. This parameter allows you to define an exponential rate for a job rollout.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>exponentialRate</b>: The rate of increase for a job rollout. This parameter allows you to define an exponential rate for a job rollout.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>maximumPerMinute</i> The maximum number of things that will be notified of a pending job, per minute. This parameter allows you to create a staged rollout.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>incrementFactor</i> The exponential factor to increase the rate of rollout for a job. AWS IoT supports up to one digit after the decimal (for example, 1.5, but not 1.55).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>baseRatePerMinute</i> The minimum number of things that will be notified of a pending job, per minute at the start of job rollout. This parameter allows you to define the initial rate of rollout.<br/>The criteria to initiate the increase in rate of rollout for a job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>rateIncreaseCriteria</b>: The criteria to initiate the increase in rate of rollout for a job.&nbsp;&nbsp;&nbsp;&nbsp; <i>criteriaList</i> The list of criteria that determine when and how to abort the job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>inProgressTimeoutInMinutes</i> Specifies the amount of time, in minutes, this device has to finish execution of this job. The timeout interval can be anywhere between 1 minute and 7 days (1 to 10080 minutes). The in progress timer can't be updated and will apply to all job executions for the job. Whenever a job execution remains in the IN_PROGRESS status for longer than this interval, the job execution will fail and switch to the terminal <code>TIMED_OUT</code> status.<br/>
        :return:         """
        pass

    def update_mitigation_action(self, actionName: str, roleArn: str=None, actionParams: MitigationActionParams=None) -> UpdateMitigationActionResponse:
        r"""Updates the definition for the specified mitigation action.

        :param self:
        :param actionParams:  Defines the type of action and the parameters for that action.:<br/>roleArn:  The ARN of the IAM role that is used to apply the mitigation action.<br/>actionName:  The friendly name for the mitigation action. You cannot change the name by using <code>UpdateMitigationAction</code>. Instead, you must delete and recreate the mitigation action with the new name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>publishFindingToSnsParams</i> Parameters to define a mitigation action that publishes findings to Amazon Simple Notification Service (Amazon SNS. You can implement your own custom actions in response to the Amazon SNS messages.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>publishFindingToSnsParams</b>: Parameters to define a mitigation action that publishes findings to Amazon Simple Notification Service (Amazon SNS. You can implement your own custom actions in response to the Amazon SNS messages.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>enableIoTLoggingParams</i> Parameters to define a mitigation action that enables AWS IoT logging at a specified level of detail.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>enableIoTLoggingParams</b>: Parameters to define a mitigation action that enables AWS IoT logging at a specified level of detail.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>replaceDefaultPolicyVersionParams</i> Parameters to define a mitigation action that adds a blank policy to restrict permissions.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>replaceDefaultPolicyVersionParams</b>: Parameters to define a mitigation action that adds a blank policy to restrict permissions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>addThingsToThingGroupParams</i> Parameters to define a mitigation action that moves devices associated with a certificate to one or more specified thing groups, typically for quarantine.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>addThingsToThingGroupParams</b>: Parameters to define a mitigation action that moves devices associated with a certificate to one or more specified thing groups, typically for quarantine.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>updateCACertificateParams</i> Parameters to define a mitigation action that changes the state of the CA certificate to inactive.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>updateCACertificateParams</b>: Parameters to define a mitigation action that changes the state of the CA certificate to inactive.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>updateDeviceCertificateParams</i> Parameters to define a mitigation action that changes the state of the device certificate to inactive.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>updateDeviceCertificateParams</b>: Parameters to define a mitigation action that changes the state of the device certificate to inactive.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>action</i> The action that you want to apply to the device certificate. The only supported value is <code>DEACTIVATE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>action</i> The action that you want to apply to the CA certificate. The only supported value is <code>DEACTIVATE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>overrideDynamicGroups</i> Specifies if this mitigation action can move the things that triggered the mitigation action even if they are part of one or more dynamic thing groups.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>thingGroupNames</i> The list of groups to which you want to add the things that triggered the mitigation action. You can add a thing to a maximum of 10 groups, but you can't add a thing to more than one group in the same hierarchy.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>templateName</i> The name of the template to be applied. The only supported value is <code>BLANK_POLICY</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>logLevel</i> Specifies the type of information to be logged.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>roleArnForLogging</i> The Amazon Resource Name (ARN) of the IAM role used for logging.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>topicArn</i> The ARN of the topic to which you want to publish the findings.<br/>
        :return: actionId:  A unique identifier for the mitigation action.<br/>actionArn:  The ARN for the new mitigation action.<br/>        """
        pass

    def update_provisioning_template(self, templateName: str, description: str=None, enabled: Enabled=None, defaultVersionId: int=None, provisioningRoleArn: str=None, preProvisioningHook: ProvisioningHook=None, removePreProvisioningHook: RemoveHook=None) -> UpdateProvisioningTemplateResponse:
        r"""Updates a fleet provisioning template.

        :param self:
        :param removePreProvisioningHook:  Removes pre-provisioning hook template.<br/>preProvisioningHook:  Updates the pre-provisioning hook template.:<br/>provisioningRoleArn:  The ARN of the role associated with the provisioning template. This IoT role grants permission to provision a device.<br/>defaultVersionId:  The ID of the default provisioning template version.<br/>enabled:  True to enable the fleet provisioning template, otherwise false.<br/>description:  The description of the fleet provisioning template.<br/>templateName:  The name of the fleet provisioning template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>targetArn</i> The ARN of the target function.  <i>Note:</i> Only Lambda functions are currently supported.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>payloadVersion</i> The payload that was sent to the target function.  <i>Note:</i> Only Lambda functions are currently supported.<br/>
        :return:         """
        pass

    def update_role_alias(self, roleAlias: str, roleArn: str=None, credentialDurationSeconds: int=None) -> UpdateRoleAliasResponse:
        r"""Updates a role alias.

        :param self:
        :param credentialDurationSeconds:  The number of seconds the credential will be valid.<br/>roleArn:  The role ARN.<br/>roleAlias:  The role alias to update.<br/>
        :return: roleAliasArn:  The role alias ARN.<br/>roleAlias:  The role alias.<br/>        """
        pass

    def update_scheduled_audit(self, scheduledAuditName: str, frequency: str=None, dayOfMonth: str=None, dayOfWeek: str=None, targetCheckNames: List[AuditCheckName]=None) -> UpdateScheduledAuditResponse:
        r"""Updates a scheduled audit, including which checks are performed and how often the audit takes place.

        :param self:
        :param scheduledAuditName:  The name of the scheduled audit. (Max. 128 chars)<br/>targetCheckNames:  Which checks are performed during the scheduled audit. Checks must be enabled for your account. (Use <code>DescribeAccountAuditConfiguration</code> to see the list of all checks, including those that are enabled or use <code>UpdateAccountAuditConfiguration</code> to select which checks are enabled.)<br/>dayOfWeek:  The day of the week on which the scheduled audit takes place. This can be one of <code>SUN</code>, <code>MON</code>, <code>TUE</code>, <code>WED</code>, <code>THU</code>, <code>FRI</code>, or <code>SAT</code>. This field is required if the "frequency" parameter is set to <code>WEEKLY</code> or <code>BIWEEKLY</code>.<br/>dayOfMonth:  The day of the month on which the scheduled audit takes place. This can be <code>1</code> through <code>31</code> or <code>LAST</code>. This field is required if the <code>frequency</code> parameter is set to <code>MONTHLY</code>. If days 29-31 are specified, and the month does not have that many days, the audit takes place on the "LAST" day of the month.<br/>frequency:  How often the scheduled audit takes place, either <code>DAILY</code>, <code>WEEKLY</code>, <code>BIWEEKLY</code>, or <code>MONTHLY</code>. The start time of each audit is determined by the system.<br/>
        :return: scheduledAuditArn:  The ARN of the scheduled audit.<br/>        """
        pass

    def update_security_profile(self, securityProfileName: str, securityProfileDescription: str=None, behaviors: List[Behavior]=None, alertTargets: AlertTargets=None, additionalMetricsToRetain: List[BehaviorMetric]=None, additionalMetricsToRetainV2: List[MetricToRetain]=None, deleteBehaviors: DeleteBehaviors=None, deleteAlertTargets: DeleteAlertTargets=None, deleteAdditionalMetricsToRetain: DeleteAdditionalMetricsToRetain=None, expectedVersion: OptionalVersion=None) -> UpdateSecurityProfileResponse:
        r"""Updates a Device Defender security profile.

        :param self:
        :param expectedVersion:  The expected version of the security profile. A new version is generated whenever the security profile is updated. If you specify a value that is different from the actual version, a <code>VersionConflictException</code> is thrown.<br/>deleteAdditionalMetricsToRetain:  If true, delete all <code>additionalMetricsToRetain</code> defined for this security profile. If any <code>additionalMetricsToRetain</code> are defined in the current invocation, an exception occurs.<br/>deleteAlertTargets:  If true, delete all <code>alertTargets</code> defined for this security profile. If any <code>alertTargets</code> are defined in the current invocation, an exception occurs.<br/>deleteBehaviors:  If true, delete all <code>behaviors</code> defined for this security profile. If any <code>behaviors</code> are defined in the current invocation, an exception occurs.<br/>additionalMetricsToRetainV2:  A list of metrics whose data is retained (stored). By default, data is retained for any metric used in the profile's behaviors, but it is also retained for any metric specified here. Can be used with custom metrics; cannot be used with dimensions.<br/>additionalMetricsToRetain:   <i>Please use <a>UpdateSecurityProfileRequest$additionalMetricsToRetainV2</a> instead.</i>  A list of metrics whose data is retained (stored). By default, data is retained for any metric used in the profile's <code>behaviors</code>, but it is also retained for any metric specified here. Can be used with custom metrics; cannot be used with dimensions.<br/>alertTargets:  Where the alerts are sent. (Alerts are always sent to the console.)<br/>behaviors:  Specifies the behaviors that, when violated by a device (thing), cause an alert.<br/>securityProfileDescription:  A description of the security profile.<br/>securityProfileName:  The name of the security profile you want to update.<br/>
        :return: lastModifiedDate:  The time the security profile was last modified.<br/>creationDate:  The time the security profile was created.<br/>version:  The updated version of the security profile.<br/>additionalMetricsToRetainV2:  A list of metrics whose data is retained (stored). By default, data is retained for any metric used in the profile's behaviors, but it is also retained for any metric specified here. Can be used with custom metrics; cannot be used with dimensions.<br/>additionalMetricsToRetain:   <i>Please use <a>UpdateSecurityProfileResponse$additionalMetricsToRetainV2</a> instead.</i>  A list of metrics whose data is retained (stored). By default, data is retained for any metric used in the security profile's <code>behaviors</code>, but it is also retained for any metric specified here.<br/>alertTargets:  Where the alerts are sent. (Alerts are always sent to the console.)<br/>behaviors:  Specifies the behaviors that, when violated by a device (thing), cause an alert.<br/>securityProfileDescription:  The description of the security profile.<br/>securityProfileArn:  The ARN of the security profile that was updated.<br/>securityProfileName:  The name of the security profile that was updated.<br/>        """
        pass

    def update_stream(self, streamId: str, description: str=None, files: List[StreamFile]=None, roleArn: str=None) -> UpdateStreamResponse:
        r"""Updates an existing stream. The stream version will be incremented by one.

        :param self:
        :param roleArn:  An IAM role that allows the IoT service principal assumes to access your S3 files.<br/>files:  The files associated with the stream.<br/>description:  The description of the stream.<br/>streamId:  The stream ID.<br/>
        :return: streamVersion:  The stream version.<br/>description:  A description of the stream.<br/>streamArn:  The stream ARN.<br/>streamId:  The stream ID.<br/>        """
        pass

    def update_thing(self, thingName: str, thingTypeName: str=None, attributePayload: AttributePayload=None, expectedVersion: OptionalVersion=None, removeThingType: RemoveThingType=None) -> UpdateThingResponse:
        r"""Updates the data for a thing.

        :param self:
        :param removeThingType:  Remove a thing type association. If <b>true</b>, the association is removed.<br/>expectedVersion:  The expected version of the thing record in the registry. If the version of the record in the registry does not match the expected version specified in the request, the <code>UpdateThing</code> request is rejected with a <code>VersionConflictException</code>.<br/>attributePayload:  A list of thing attributes, a JSON string containing name-value pairs. For example:  <code>{\"attributes\":{\"name1\":\"value2\"}}</code>  This data is used to add new attributes or update existing attributes.:<br/>thingTypeName:  The name of the thing type.<br/>thingName:  The name of the thing to update. You can't change a thing's name. To change a thing's name, you must create a new thing, give it the new name, and then delete the old thing.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>merge</i> Specifies whether the list of attributes provided in the <code>AttributePayload</code> is merged with the attributes stored in the registry, instead of overwriting them. To remove an attribute, call <code>UpdateThing</code> with an empty attribute value. <note> The <code>merge</code> attribute is only valid when calling <code>UpdateThing</code> or <code>UpdateThingGroup</code>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>attributes</i> A JSON string containing up to three key-value pair in JSON format. For example:  <code>{\"attributes\":{\"string1\":\"string2\"}}</code> <br/>
        :return:         """
        pass

    def update_thing_group(self, thingGroupProperties: ThingGroupProperties, thingGroupName: str, expectedVersion: OptionalVersion=None) -> UpdateThingGroupResponse:
        r"""Update a thing group.

        :param self:
        :param expectedVersion:  The expected version of the thing group. If this does not match the version of the thing group being updated, the update will fail.<br/>thingGroupProperties:  The thing group properties.:<br/>thingGroupName:  The thing group to update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>attributePayload</i> The thing group attributes in JSON format.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>attributePayload</b>: The thing group attributes in JSON format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>thingGroupDescription</i> The thing group description.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>merge</i> Specifies whether the list of attributes provided in the <code>AttributePayload</code> is merged with the attributes stored in the registry, instead of overwriting them. To remove an attribute, call <code>UpdateThing</code> with an empty attribute value. <note> The <code>merge</code> attribute is only valid when calling <code>UpdateThing</code> or <code>UpdateThingGroup</code>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>attributes</i> A JSON string containing up to three key-value pair in JSON format. For example:  <code>{\"attributes\":{\"string1\":\"string2\"}}</code> <br/>
        :return: version:  The version of the updated thing group.<br/>        """
        pass

    def update_thing_groups_for_thing(self, thingName: str=None, thingGroupsToAdd: List[ThingGroupName]=None, thingGroupsToRemove: List[ThingGroupName]=None, overrideDynamicGroups: OverrideDynamicGroups=None) -> UpdateThingGroupsForThingResponse:
        r"""Updates the groups to which the thing belongs.

        :param self:
        :param overrideDynamicGroups:  Override dynamic thing groups with static thing groups when 10-group limit is reached. If a thing belongs to 10 thing groups, and one or more of those groups are dynamic thing groups, adding a thing to a static group removes the thing from the last dynamic group.<br/>thingGroupsToRemove:  The groups from which the thing will be removed.<br/>thingGroupsToAdd:  The groups to which the thing will be added.<br/>thingName:  The thing whose group memberships will be updated.<br/>
        :return:         """
        pass

    def update_topic_rule_destination(self, status: str, arn: str) -> UpdateTopicRuleDestinationResponse:
        r"""Updates a topic rule destination. You use this to change the status, endpoint URL, or confirmation URL of the destination.

        :param self:
        :param status:  The status of the topic rule destination. Valid values are: <dl> <dt>IN_PROGRESS</dt> <dd> A topic rule destination was created but has not been confirmed. You can set <code>status</code> to <code>IN_PROGRESS</code> by calling <code>UpdateTopicRuleDestination</code>. Calling <code>UpdateTopicRuleDestination</code> causes a new confirmation challenge to be sent to your confirmation endpoint. </dd> <dt>ENABLED</dt> <dd> Confirmation was completed, and traffic to this destination is allowed. You can set <code>status</code> to <code>DISABLED</code> by calling <code>UpdateTopicRuleDestination</code>. </dd> <dt>DISABLED</dt> <dd> Confirmation was completed, and traffic to this destination is not allowed. You can set <code>status</code> to <code>ENABLED</code> by calling <code>UpdateTopicRuleDestination</code>. </dd> <dt>ERROR</dt> <dd> Confirmation could not be completed, for example if the confirmation timed out. You can call <code>GetTopicRuleDestination</code> for details about the error. You can set <code>status</code> to <code>IN_PROGRESS</code> by calling <code>UpdateTopicRuleDestination</code>. Calling <code>UpdateTopicRuleDestination</code> causes a new confirmation challenge to be sent to your confirmation endpoint. </dd> </dl><br/>arn:  The ARN of the topic rule destination.<br/>
        :return:         """
        pass

    def validate_security_profile_behaviors(self, behaviors: List[Behavior]) -> ValidateSecurityProfileBehaviorsResponse:
        r"""Validates a Device Defender security profile behaviors specification.

        :param self:
        :param behaviors:  Specifies the behaviors that, when violated by a device (thing), cause an alert.<br/>
        :return: validationErrors:  The list of any errors found in the behaviors.<br/>valid:  True if the behaviors were valid.<br/>        """
        pass





class IoTDataPlane(BaseClient):
    r"""<fullname>AWS IoT</fullname> AWS IoT-Data enables secure, bi-directional communication between Internet-connected things (such as sensors, actuators, embedded devices, or smart appliances) and the AWS cloud. It implements a broker for applications and things to publish messages over HTTP (Publish) and retrieve, update, and delete shadows. A shadow is a persistent representation of your things and their state in the AWS cloud. Find the endpoint address for actions in the AWS IoT data plane by running this CLI command:  <code>aws iot describe-endpoint --endpoint-type iot:Data-ATS</code>  The service name used by <a href="https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html">AWS Signature Version 4</a> to sign requests is: <i>iotdevicegateway</i>."""




    class DeleteThingShadowRequest(Mapping):
        pass
    
    class DeleteThingShadowResponse(Mapping):
        pass
    
    class GetThingShadowRequest(Mapping):
        pass
    
    class GetThingShadowResponse(Mapping):
        pass
    
    class ListNamedShadowsForThingRequest(Mapping):
        pass
    
    class ListNamedShadowsForThingResponse(Mapping):
        pass
    
    class PublishRequest(Mapping):
        pass
    
    class Payload(object):
        pass
    
    class UpdateThingShadowRequest(Mapping):
        pass
    
    class UpdateThingShadowResponse(Mapping):
        pass
    
    class JsonDocument(object):
        pass
    
    def delete_thing_shadow(self, thingName: str, shadowName: str=None) -> DeleteThingShadowResponse:
        r"""Deletes the shadow for the specified thing. For more information, see <a href="http://docs.aws.amazon.com/iot/latest/developerguide/API_DeleteThingShadow.html">DeleteThingShadow</a> in the AWS IoT Developer Guide.

        :param self:
        :param shadowName:  The name of the shadow.<br/>thingName:  The name of the thing.<br/>
        :return: payload:  The state information, in JSON format.<br/>        """
        pass

    def get_thing_shadow(self, thingName: str, shadowName: str=None) -> GetThingShadowResponse:
        r"""Gets the shadow for the specified thing. For more information, see <a href="http://docs.aws.amazon.com/iot/latest/developerguide/API_GetThingShadow.html">GetThingShadow</a> in the AWS IoT Developer Guide.

        :param self:
        :param shadowName:  The name of the shadow.<br/>thingName:  The name of the thing.<br/>
        :return: payload:  The state information, in JSON format.<br/>        """
        pass

    def list_named_shadows_for_thing(self, thingName: str, nextToken: str=None, pageSize: int=None) -> ListNamedShadowsForThingResponse:
        r"""Lists the shadows for the specified thing.

        :param self:
        :param pageSize:  The result page size.<br/>nextToken:  The token to retrieve the next set of results.<br/>thingName:  The name of the thing.<br/>
        :return: timestamp:  The Epoch date and time the response was generated by AWS IoT.<br/>nextToken:  The token for the next set of results, or null if there are no additional results.<br/>results:  The list of shadows for the specified thing.<br/>        """
        pass

    def publish(self, topic: str, qos: int=None, payload: Payload=None):
        r"""Publishes state information. For more information, see <a href="http://docs.aws.amazon.com/iot/latest/developerguide/protocols.html#http">HTTP Protocol</a> in the AWS IoT Developer Guide.

        :param self:
        :param payload:  The state information, in JSON format.<br/>qos:  The Quality of Service (QoS) level.<br/>topic:  The name of the MQTT topic.<br/>
        :return:         """
        pass

    def update_thing_shadow(self, payload: JsonDocument, thingName: str, shadowName: str=None) -> UpdateThingShadowResponse:
        r"""Updates the shadow for the specified thing. For more information, see <a href="http://docs.aws.amazon.com/iot/latest/developerguide/API_UpdateThingShadow.html">UpdateThingShadow</a> in the AWS IoT Developer Guide.

        :param self:
        :param payload:  The state information, in JSON format.<br/>shadowName:  The name of the shadow.<br/>thingName:  The name of the thing.<br/>
        :return: payload:  The state information, in JSON format.<br/>        """
        pass





class IoTJobsDataPlane(BaseClient):
    r"""AWS IoT Jobs is a service that allows you to define a set of jobs — remote operations that are sent to and executed on one or more devices connected to AWS IoT. For example, you can define a job that instructs a set of devices to download and install application or firmware updates, reboot, rotate certificates, or perform remote troubleshooting operations.  To create a job, you make a job document which is a description of the remote operations to be performed, and you specify a list of targets that should perform the operations. The targets can be individual things, thing groups or both.  AWS IoT Jobs sends a message to inform the targets that a job is available. The target starts the execution of the job by downloading the job document, performing the operations it specifies, and reporting its progress to AWS IoT. The Jobs service provides commands to track the progress of a job on a specific target and for all the targets of the job"""




    class DescribeJobExecutionRequest(Mapping):
        pass
    
    class DescribeJobExecutionResponse(Mapping):
        pass
    
    class IncludeJobDocument(object):
        pass
    
    class ExecutionNumber(object):
        pass
    
    class GetPendingJobExecutionsRequest(Mapping):
        pass
    
    class GetPendingJobExecutionsResponse(Mapping):
        pass
    
    class StartNextPendingJobExecutionRequest(Mapping):
        pass
    
    class StartNextPendingJobExecutionResponse(Mapping):
        pass
    
    class DetailsMap(object):
        pass
    
    class StepTimeoutInMinutes(object):
        pass
    
    class UpdateJobExecutionRequest(Mapping):
        pass
    
    class UpdateJobExecutionResponse(Mapping):
        pass
    
    class ExpectedVersion(object):
        pass
    
    class IncludeExecutionState(object):
        pass
    
    def describe_job_execution(self, thingName: str, jobId: str, includeJobDocument: IncludeJobDocument=None, executionNumber: ExecutionNumber=None) -> DescribeJobExecutionResponse:
        r"""Gets details of a job execution.

        :param self:
        :param executionNumber:  Optional. A number that identifies a particular job execution on a particular device. If not specified, the latest job execution is returned.<br/>includeJobDocument:  Optional. When set to true, the response contains the job document. The default is false.<br/>thingName:  The thing name associated with the device the job execution is running on.<br/>jobId:  The unique identifier assigned to this job when it was created.<br/>
        :return: execution:  Contains data about a job execution.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>jobDocument</i> The content of the job document.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>executionNumber</i> A number that identifies a particular job execution on a particular device. It can be used later in commands that return or update job execution information.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>versionNumber</i> The version of the job execution. Job execution versions are incremented each time they are updated by a device.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>approximateSecondsBeforeTimedOut</i> The estimated number of seconds that remain before the job execution status will be changed to <code>TIMED_OUT</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedAt</i> The time, in milliseconds since the epoch, when the job execution was last updated. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>startedAt</i> The time, in milliseconds since the epoch, when the job execution was started.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>queuedAt</i> The time, in milliseconds since the epoch, when the job execution was enqueued.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusDetails</i> A collection of name/value pairs that describe the status of the job execution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the job execution. Can be one of: "QUEUED", "IN_PROGRESS", "FAILED", "SUCCESS", "CANCELED", "REJECTED", or "REMOVED".<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>thingName</i> The name of the thing that is executing the job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>jobId</i> The unique identifier you assigned to this job when it was created.<br/>        """
        pass

    def get_pending_job_executions(self, thingName: str) -> GetPendingJobExecutionsResponse:
        r"""Gets the list of all jobs for a thing that are not in a terminal status.

        :param self:
        :param thingName:  The name of the thing that is executing the job.<br/>
        :return: queuedJobs:  A list of JobExecutionSummary objects with status QUEUED.<br/>inProgressJobs:  A list of JobExecutionSummary objects with status IN_PROGRESS.<br/>        """
        pass

    def start_next_pending_job_execution(self, thingName: str, statusDetails: DetailsMap=None, stepTimeoutInMinutes: StepTimeoutInMinutes=None) -> StartNextPendingJobExecutionResponse:
        r"""Gets and starts the next pending (status IN_PROGRESS or QUEUED) job execution for a thing.

        :param self:
        :param stepTimeoutInMinutes:  Specifies the amount of time this device has to finish execution of this job. If the job execution status is not set to a terminal state before this timer expires, or before the timer is reset (by calling <code>UpdateJobExecution</code>, setting the status to <code>IN_PROGRESS</code> and specifying a new timeout value in field <code>stepTimeoutInMinutes</code>) the job execution status will be automatically set to <code>TIMED_OUT</code>. Note that setting this timeout has no effect on that job execution timeout which may have been specified when the job was created (<code>CreateJob</code> using field <code>timeoutConfig</code>).<br/>statusDetails:  A collection of name/value pairs that describe the status of the job execution. If not specified, the statusDetails are unchanged.<br/>thingName:  The name of the thing associated with the device.<br/>
        :return: execution:  A JobExecution object.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>jobDocument</i> The content of the job document.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>executionNumber</i> A number that identifies a particular job execution on a particular device. It can be used later in commands that return or update job execution information.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>versionNumber</i> The version of the job execution. Job execution versions are incremented each time they are updated by a device.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>approximateSecondsBeforeTimedOut</i> The estimated number of seconds that remain before the job execution status will be changed to <code>TIMED_OUT</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedAt</i> The time, in milliseconds since the epoch, when the job execution was last updated. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>startedAt</i> The time, in milliseconds since the epoch, when the job execution was started.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>queuedAt</i> The time, in milliseconds since the epoch, when the job execution was enqueued.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusDetails</i> A collection of name/value pairs that describe the status of the job execution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the job execution. Can be one of: "QUEUED", "IN_PROGRESS", "FAILED", "SUCCESS", "CANCELED", "REJECTED", or "REMOVED".<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>thingName</i> The name of the thing that is executing the job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>jobId</i> The unique identifier you assigned to this job when it was created.<br/>        """
        pass

    def update_job_execution(self, status: str, thingName: str, jobId: str, statusDetails: DetailsMap=None, stepTimeoutInMinutes: StepTimeoutInMinutes=None, expectedVersion: ExpectedVersion=None, includeJobExecutionState: IncludeExecutionState=None, includeJobDocument: IncludeJobDocument=None, executionNumber: ExecutionNumber=None) -> UpdateJobExecutionResponse:
        r"""Updates the status of a job execution.

        :param self:
        :param executionNumber:  Optional. A number that identifies a particular job execution on a particular device.<br/>includeJobDocument:  Optional. When set to true, the response contains the job document. The default is false.<br/>includeJobExecutionState:  Optional. When included and set to true, the response contains the JobExecutionState data. The default is false.<br/>expectedVersion:  Optional. The expected current version of the job execution. Each time you update the job execution, its version is incremented. If the version of the job execution stored in Jobs does not match, the update is rejected with a VersionMismatch error, and an ErrorResponse that contains the current job execution status data is returned. (This makes it unnecessary to perform a separate DescribeJobExecution request in order to obtain the job execution status data.)<br/>stepTimeoutInMinutes:  Specifies the amount of time this device has to finish execution of this job. If the job execution status is not set to a terminal state before this timer expires, or before the timer is reset (by again calling <code>UpdateJobExecution</code>, setting the status to <code>IN_PROGRESS</code> and specifying a new timeout value in this field) the job execution status will be automatically set to <code>TIMED_OUT</code>. Note that setting or resetting this timeout has no effect on that job execution timeout which may have been specified when the job was created (<code>CreateJob</code> using field <code>timeoutConfig</code>).<br/>statusDetails:   Optional. A collection of name/value pairs that describe the status of the job execution. If not specified, the statusDetails are unchanged.<br/>status:  The new status for the job execution (IN_PROGRESS, FAILED, SUCCESS, or REJECTED). This must be specified on every update.<br/>thingName:  The name of the thing associated with the device.<br/>jobId:  The unique identifier assigned to this job when it was created.<br/>
        :return: jobDocument:  The contents of the Job Documents.<br/>executionState:  A JobExecutionState object.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>versionNumber</i> The version of the job execution. Job execution versions are incremented each time they are updated by a device.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusDetails</i> A collection of name/value pairs that describe the status of the job execution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the job execution. Can be one of: "QUEUED", "IN_PROGRESS", "FAILED", "SUCCESS", "CANCELED", "REJECTED", or "REMOVED".<br/>        """
        pass





class IoT1ClickDevicesService(BaseClient):
    r"""Describes all of the AWS IoT 1-Click device-related API operations for the service.
 Also provides sample requests, responses, and errors for the supported web services
 protocols."""


    class ListDeviceEventsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_device_events` for valid parameters"""
            pass
    class ListDevicesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_devices` for valid parameters"""
            pass


    class ClaimDevicesByClaimCodeRequest(Mapping):
        pass
    
    class ClaimDevicesByClaimCodeResponse(Mapping):
        pass
    
    class DescribeDeviceRequest(Mapping):
        pass
    
    class DescribeDeviceResponse(Mapping):
        pass
    
    class FinalizeDeviceClaimRequest(Mapping):
        pass
    
    class FinalizeDeviceClaimResponse(Mapping):
        pass
    
    class __mapOf__string(object):
        pass
    
    class GetDeviceMethodsRequest(Mapping):
        pass
    
    class GetDeviceMethodsResponse(Mapping):
        pass
    
    class InitiateDeviceClaimRequest(Mapping):
        pass
    
    class InitiateDeviceClaimResponse(Mapping):
        pass
    
    class InvokeDeviceMethodRequest(Mapping):
        pass
    
    class InvokeDeviceMethodResponse(Mapping):
        pass
    
    class DeviceMethod(Mapping):
        pass
    
    class ListDeviceEventsRequest(Mapping):
        pass
    
    class ListDeviceEventsResponse(Mapping):
        pass
    
    class __timestampIso8601(object):
        pass
    
    class ListDevicesRequest(Mapping):
        pass
    
    class ListDevicesResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class UnclaimDeviceRequest(Mapping):
        pass
    
    class UnclaimDeviceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class __string(object):
        pass
    
    class UpdateDeviceStateRequest(Mapping):
        pass
    
    class UpdateDeviceStateResponse(Mapping):
        pass
    
    class __boolean(object):
        pass
    
    def claim_devices_by_claim_code(self, ClaimCode: str) -> ClaimDevicesByClaimCodeResponse:
        r"""Adds device(s) to your account (i.e., claim one or more devices) if and only if you
 received a claim code with the device(s).

        :param self:
        :param ClaimCode:  The claim code, starting with "C-", as provided by the device manufacturer.<br/>
        :return: Total:  The total number of devices associated with the claim code that has been processed in
 the claim request.<br/>ClaimCode:  The claim code provided by the device manufacturer.<br/>        """
        pass

    def describe_device(self, DeviceId: str) -> DescribeDeviceResponse:
        r"""Given a device ID, returns a DescribeDeviceResponse object describing the
 details of the device.

        :param self:
        :param DeviceId:  The unique identifier of the device.<br/>
        :return: DeviceDescription:  Device details.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The tags currently associated with the AWS IoT 1-Click device.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of the device, such as "button".<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RemainingLife</i> A value between 0 and 1 inclusive, representing the fraction of life remaining for the
 device.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> A Boolean value indicating whether or not the device is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeviceId</i> The unique identifier of the device.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Attributes</i> An array of zero or more elements of DeviceAttribute objects providing
 user specified device attributes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The ARN of the device.<br/>        """
        pass

    def finalize_device_claim(self, DeviceId: str, Tags: __mapOf__string=None) -> FinalizeDeviceClaimResponse:
        r"""Given a device ID, finalizes the claim request for the associated device.<note>
 Claiming a device consists of initiating a claim, then publishing a device event,
 and finalizing the claim. For a device of type button, a device event can
 be published by simply clicking the device.
 </note>

        :param self:
        :param Tags:  A collection of key/value pairs defining the resource tags. For example, {
 "tags": {"key1": "value1", "key2": "value2"} }. For more information, see <a href="https://aws.amazon.com/answers/account-management/aws-tagging-strategies/">AWS
 Tagging Strategies</a>.
 
 <br/>DeviceId:  The unique identifier of the device.<br/>
        :return: State:  The device's final claim state.<br/>        """
        pass

    def get_device_methods(self, DeviceId: str) -> GetDeviceMethodsResponse:
        r"""Given a device ID, returns the invokable methods associated with the device.

        :param self:
        :param DeviceId:  The unique identifier of the device.<br/>
        :return: DeviceMethods:  List of available device APIs.<br/>        """
        pass

    def initiate_device_claim(self, DeviceId: str) -> InitiateDeviceClaimResponse:
        r"""Given a device ID, initiates a claim request for the associated device.<note>
 Claiming a device consists of initiating a claim, then publishing a device event,
 and finalizing the claim. For a device of type button, a device event can
 be published by simply clicking the device.
 </note>

        :param self:
        :param DeviceId:  The unique identifier of the device.<br/>
        :return: State:  The device's final claim state.<br/>        """
        pass

    def invoke_device_method(self, DeviceId: str, DeviceMethod: DeviceMethod=None, DeviceMethodParameters: str=None) -> InvokeDeviceMethodResponse:
        r"""Given a device ID, issues a request to invoke a named device method (with possible
 parameters). See the "Example POST" code snippet below.

        :param self:
        :param DeviceMethodParameters:  A JSON encoded string containing the device method request parameters.<br/>DeviceMethod:  The device method to invoke.:<br/>DeviceId:  The unique identifier of the device.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MethodName</i> The name of the method applicable to the deviceType.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeviceType</i> The type of the device, such as "button".<br/>
        :return: DeviceMethodResponse:  A JSON encoded string containing the device method response.<br/>        """
        pass

    def list_device_events(self, ToTimeStamp: __timestampIso8601, FromTimeStamp: __timestampIso8601, DeviceId: str, MaxResults: int=None, NextToken: str=None) -> ListDeviceEventsResponse:
        r"""Using a device ID, returns a DeviceEventsResponse object containing an
 array of events for the device.

        :param self:
        :param ToTimeStamp:  The end date for the device event query, in ISO8061 format. For example,
 2018-03-28T15:45:12.880Z
 <br/>NextToken:  The token to retrieve the next set of results.<br/>MaxResults:  The maximum number of results to return per request. If not set, a default value of
 100 is used.<br/>FromTimeStamp:  The start date for the device event query, in ISO8061 format. For example,
 2018-03-28T15:45:12.880Z
 <br/>DeviceId:  The unique identifier of the device.<br/>
        :return: NextToken:  The token to retrieve the next set of results.<br/>Events:  An array of zero or more elements describing the event(s) associated with the
 device.<br/>        """
        pass

    def list_devices(self, DeviceType: str=None, MaxResults: int=None, NextToken: str=None) -> ListDevicesResponse:
        r"""Lists the 1-Click compatible devices associated with your AWS account.

        :param self:
        :param NextToken:  The token to retrieve the next set of results.<br/>MaxResults:  The maximum number of results to return per request. If not set, a default value of
 100 is used.<br/>DeviceType:  The type of the device, such as "button".<br/>
        :return: NextToken:  The token to retrieve the next set of results.<br/>Devices:  A list of devices.<br/>        """
        pass

    def list_tags_for_resource(self, ResourceArn: str) -> ListTagsForResourceResponse:
        r"""Lists the tags associated with the specified resource ARN.

        :param self:
        :param ResourceArn:  The ARN of the resource.<br/>
        :return: Tags:  A collection of key/value pairs defining the resource tags. For example, {
 "tags": {"key1": "value1", "key2": "value2"} }. For more information, see <a href="https://aws.amazon.com/answers/account-management/aws-tagging-strategies/">AWS
 Tagging Strategies</a>.
 
 <br/>        """
        pass

    def tag_resource(self, Tags: __mapOf__string, ResourceArn: str):
        r"""Adds or updates the tags associated with the resource ARN. See <a href="https://docs.aws.amazon.com/iot-1-click/latest/developerguide/1click-appendix.html#1click-limits">AWS IoT 1-Click Service Limits</a> for the maximum number of tags allowed per
 resource.

        :param self:
        :param Tags:  A collection of key/value pairs defining the resource tags. For example, {
 "tags": {"key1": "value1", "key2": "value2"} }. For more information, see <a href="https://aws.amazon.com/answers/account-management/aws-tagging-strategies/">AWS
 Tagging Strategies</a>.
 
 <br/>ResourceArn:  The ARN of the resource.<br/>
        :return:         """
        pass

    def unclaim_device(self, DeviceId: str) -> UnclaimDeviceResponse:
        r"""Disassociates a device from your AWS account using its device ID.

        :param self:
        :param DeviceId:  The unique identifier of the device.<br/>
        :return: State:  The device's final claim state.<br/>        """
        pass

    def untag_resource(self, TagKeys: List[__string], ResourceArn: str):
        r"""Using tag keys, deletes the tags (key/value pairs) associated with the specified
 resource ARN.

        :param self:
        :param TagKeys:  A collections of tag keys. For example, {"key1","key2"}<br/>ResourceArn:  The ARN of the resource.<br/>
        :return:         """
        pass

    def update_device_state(self, DeviceId: str, Enabled: __boolean=None) -> UpdateDeviceStateResponse:
        r"""Using a Boolean value (true or false), this operation
 enables or disables the device given a device ID.

        :param self:
        :param Enabled:  If true, the device is enabled. If false, the device is
 disabled.<br/>DeviceId:  The unique identifier of the device.<br/>
        :return:         """
        pass





class IoT1ClickProjects(BaseClient):
    r"""The AWS IoT 1-Click Projects API Reference"""


    class ListPlacementsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_placements` for valid parameters"""
            pass
    class ListProjectsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_projects` for valid parameters"""
            pass


    class AssociateDeviceWithPlacementRequest(Mapping):
        pass
    
    class AssociateDeviceWithPlacementResponse(Mapping):
        pass
    
    class CreatePlacementRequest(Mapping):
        pass
    
    class CreatePlacementResponse(Mapping):
        pass
    
    class PlacementAttributeMap(object):
        pass
    
    class CreateProjectRequest(Mapping):
        pass
    
    class CreateProjectResponse(Mapping):
        pass
    
    class PlacementTemplate(Mapping):
        pass
    
    class TagMap(object):
        pass
    
    class DeletePlacementRequest(Mapping):
        pass
    
    class DeletePlacementResponse(Mapping):
        pass
    
    class DeleteProjectRequest(Mapping):
        pass
    
    class DeleteProjectResponse(Mapping):
        pass
    
    class DescribePlacementRequest(Mapping):
        pass
    
    class DescribePlacementResponse(Mapping):
        pass
    
    class DescribeProjectRequest(Mapping):
        pass
    
    class DescribeProjectResponse(Mapping):
        pass
    
    class DisassociateDeviceFromPlacementRequest(Mapping):
        pass
    
    class DisassociateDeviceFromPlacementResponse(Mapping):
        pass
    
    class GetDevicesInPlacementRequest(Mapping):
        pass
    
    class GetDevicesInPlacementResponse(Mapping):
        pass
    
    class ListPlacementsRequest(Mapping):
        pass
    
    class ListPlacementsResponse(Mapping):
        pass
    
    class ListProjectsRequest(Mapping):
        pass
    
    class ListProjectsResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdatePlacementRequest(Mapping):
        pass
    
    class UpdatePlacementResponse(Mapping):
        pass
    
    class UpdateProjectRequest(Mapping):
        pass
    
    class UpdateProjectResponse(Mapping):
        pass
    
    def associate_device_with_placement(self, deviceTemplateName: str, deviceId: str, placementName: str, projectName: str) -> AssociateDeviceWithPlacementResponse:
        r"""Associates a physical device with a placement.

        :param self:
        :param deviceTemplateName:  The device template name to associate with the device ID.<br/>deviceId:  The ID of the physical device to be associated with the given placement in the project. Note that a mandatory 4 character prefix is required for all <code>deviceId</code> values.<br/>placementName:  The name of the placement in which to associate the device.<br/>projectName:  The name of the project containing the placement in which to associate the device.<br/>
        :return:         """
        pass

    def create_placement(self, projectName: str, placementName: str, attributes: PlacementAttributeMap=None) -> CreatePlacementResponse:
        r"""Creates an empty placement.

        :param self:
        :param attributes:  Optional user-defined key/value pairs providing contextual data (such as location or function) for the placement.<br/>projectName:  The name of the project in which to create the placement.<br/>placementName:  The name of the placement to be created.<br/>
        :return:         """
        pass

    def create_project(self, projectName: str, description: str=None, placementTemplate: PlacementTemplate=None, tags: TagMap=None) -> CreateProjectResponse:
        r"""Creates an empty project with a placement template. A project contains zero or more placements that adhere to the placement template defined in the project.

        :param self:
        :param tags:  Optional tags (metadata key/value pairs) to be associated with the project. For example, <code>{ {"key1": "value1", "key2": "value2"} }</code>. For more information, see <a href="https://aws.amazon.com/answers/account-management/aws-tagging-strategies/">AWS Tagging Strategies</a>.<br/>placementTemplate:  The schema defining the placement to be created. A placement template defines placement default attributes and device templates. You cannot add or remove device templates after the project has been created. However, you can update <code>callbackOverrides</code> for the device templates using the <code>UpdateProject</code> API.:<br/>description:  An optional description for the project.<br/>projectName:  The name of the project to create.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deviceTemplates</i> An object specifying the <a>DeviceTemplate</a> for all placements using this (<a>PlacementTemplate</a>) template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>defaultAttributes</i> The default attributes (key/value pairs) to be applied to all placements using this template.<br/>
        :return:         """
        pass

    def delete_placement(self, projectName: str, placementName: str) -> DeletePlacementResponse:
        r"""Deletes a placement. To delete a placement, it must not have any devices associated with it. <note> When you delete a placement, all associated data becomes irretrievable. </note>

        :param self:
        :param projectName:  The project containing the empty placement to delete.<br/>placementName:  The name of the empty placement to delete.<br/>
        :return:         """
        pass

    def delete_project(self, projectName: str) -> DeleteProjectResponse:
        r"""Deletes a project. To delete a project, it must not have any placements associated with it. <note> When you delete a project, all associated data becomes irretrievable. </note>

        :param self:
        :param projectName:  The name of the empty project to delete.<br/>
        :return:         """
        pass

    def describe_placement(self, projectName: str, placementName: str) -> DescribePlacementResponse:
        r"""Describes a placement in a project.

        :param self:
        :param projectName:  The project containing the placement to be described.<br/>placementName:  The name of the placement within a project.<br/>
        :return: placement:  An object describing the placement.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>updatedDate</i> The date when the placement was last updated, in UNIX epoch time format. If the placement was not updated, then <code>createdDate</code> and <code>updatedDate</code> are the same.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdDate</i> The date when the placement was initially created, in UNIX epoch time format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>attributes</i> The user-defined attributes associated with the placement.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>placementName</i> The name of the placement.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>projectName</i> The name of the project containing the placement.<br/>        """
        pass

    def describe_project(self, projectName: str) -> DescribeProjectResponse:
        r"""Returns an object describing a project.

        :param self:
        :param projectName:  The name of the project to be described.<br/>
        :return: project:  An object describing the project.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The tags (metadata key/value pairs) associated with the project.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>placementTemplate</i> An object describing the project's placement specifications.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>placementTemplate</b>: An object describing the project's placement specifications.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>updatedDate</i> The date when the project was last updated, in UNIX epoch time format. If the project was not updated, then <code>createdDate</code> and <code>updatedDate</code> are the same.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdDate</i> The date when the project was originally created, in UNIX epoch time format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> The description of the project.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>projectName</i> The name of the project for which to obtain information from.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The ARN of the project.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>deviceTemplates</i> An object specifying the <a>DeviceTemplate</a> for all placements using this (<a>PlacementTemplate</a>) template.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>defaultAttributes</i> The default attributes (key/value pairs) to be applied to all placements using this template.<br/>        """
        pass

    def disassociate_device_from_placement(self, deviceTemplateName: str, placementName: str, projectName: str) -> DisassociateDeviceFromPlacementResponse:
        r"""Removes a physical device from a placement.

        :param self:
        :param deviceTemplateName:  The device ID that should be removed from the placement.<br/>placementName:  The name of the placement that the device should be removed from.<br/>projectName:  The name of the project that contains the placement.<br/>
        :return:         """
        pass

    def get_devices_in_placement(self, placementName: str, projectName: str) -> GetDevicesInPlacementResponse:
        r"""Returns an object enumerating the devices in a placement.

        :param self:
        :param placementName:  The name of the placement to get the devices from.<br/>projectName:  The name of the project containing the placement.<br/>
        :return: devices:  An object containing the devices (zero or more) within the placement.<br/>        """
        pass

    def list_placements(self, projectName: str, nextToken: str=None, maxResults: int=None) -> ListPlacementsResponse:
        r"""Lists the placement(s) of a project.

        :param self:
        :param maxResults:  The maximum number of results to return per request. If not set, a default value of 100 is used.<br/>nextToken:  The token to retrieve the next set of results.<br/>projectName:  The project containing the placements to be listed.<br/>
        :return: nextToken:  The token used to retrieve the next set of results - will be effectively empty if there are no further results.<br/>placements:  An object listing the requested placements.<br/>        """
        pass

    def list_projects(self, nextToken: str=None, maxResults: int=None) -> ListProjectsResponse:
        r"""Lists the AWS IoT 1-Click project(s) associated with your AWS account and region.

        :param self:
        :param maxResults:  The maximum number of results to return per request. If not set, a default value of 100 is used.<br/>nextToken:  The token to retrieve the next set of results.<br/>
        :return: nextToken:  The token used to retrieve the next set of results - will be effectively empty if there are no further results.<br/>projects:  An object containing the list of projects.<br/>        """
        pass

    def list_tags_for_resource(self, resourceArn: str) -> ListTagsForResourceResponse:
        r"""Lists the tags (metadata key/value pairs) which you have assigned to the resource.

        :param self:
        :param resourceArn:  The ARN of the resource whose tags you want to list.<br/>
        :return: tags:  The tags (metadata key/value pairs) which you have assigned to the resource.<br/>        """
        pass

    def tag_resource(self, tags: TagMap, resourceArn: str) -> TagResourceResponse:
        r"""Creates or modifies tags for a resource. Tags are key/value pairs (metadata) that can be used to manage a resource. For more information, see <a href="https://aws.amazon.com/answers/account-management/aws-tagging-strategies/">AWS Tagging Strategies</a>.

        :param self:
        :param tags:  The new or modifying tag(s) for the resource. See <a href="https://docs.aws.amazon.com/iot-1-click/latest/developerguide/1click-appendix.html#1click-limits">AWS IoT 1-Click Service Limits</a> for the maximum number of tags allowed per resource.<br/>resourceArn:  The ARN of the resouce for which tag(s) should be added or modified.<br/>
        :return:         """
        pass

    def untag_resource(self, tagKeys: List[TagKey], resourceArn: str) -> UntagResourceResponse:
        r"""Removes one or more tags (metadata key/value pairs) from a resource.

        :param self:
        :param tagKeys:  The keys of those tags which you want to remove.<br/>resourceArn:  The ARN of the resource whose tag you want to remove.<br/>
        :return:         """
        pass

    def update_placement(self, projectName: str, placementName: str, attributes: PlacementAttributeMap=None) -> UpdatePlacementResponse:
        r"""Updates a placement with the given attributes. To clear an attribute, pass an empty value (i.e., "").

        :param self:
        :param attributes:  The user-defined object of attributes used to update the placement. The maximum number of key/value pairs is 50.<br/>projectName:  The name of the project containing the placement to be updated.<br/>placementName:  The name of the placement to update.<br/>
        :return:         """
        pass

    def update_project(self, projectName: str, description: str=None, placementTemplate: PlacementTemplate=None) -> UpdateProjectResponse:
        r"""Updates a project associated with your AWS account and region. With the exception of device template names, you can pass just the values that need to be updated because the update request will change only the values that are provided. To clear a value, pass the empty string (i.e., <code>""</code>).

        :param self:
        :param placementTemplate:  An object defining the project update. Once a project has been created, you cannot add device template names to the project. However, for a given <code>placementTemplate</code>, you can update the associated <code>callbackOverrides</code> for the device definition using this API.:<br/>description:  An optional user-defined description for the project.<br/>projectName:  The name of the project to be updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deviceTemplates</i> An object specifying the <a>DeviceTemplate</a> for all placements using this (<a>PlacementTemplate</a>) template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>defaultAttributes</i> The default attributes (key/value pairs) to be applied to all placements using this template.<br/>
        :return:         """
        pass





class IoTAnalytics(BaseClient):
    r"""AWS IoT Analytics allows you to collect large amounts of device data, process messages, and store them. You can then query the data and run sophisticated analytics on it. AWS IoT Analytics enables advanced data exploration through integration with Jupyter Notebooks and data visualization through integration with Amazon QuickSight. Traditional analytics and business intelligence tools are designed to process structured data. IoT data often comes from devices that record noisy processes (such as temperature, motion, or sound). As a result the data from these devices can have significant gaps, corrupted messages, and false readings that must be cleaned up before analysis can occur. Also, IoT data is often only meaningful in the context of other data from external sources.  AWS IoT Analytics automates the steps required to analyze data from IoT devices. AWS IoT Analytics filters, transforms, and enriches IoT data before storing it in a time-series data store for analysis. You can set up the service to collect only the data you need from your devices, apply mathematical transforms to process the data, and enrich the data with device-specific metadata such as device type and location before storing it. Then, you can analyze your data by running queries using the built-in SQL query engine, or perform more complex analytics and machine learning inference. AWS IoT Analytics includes pre-built models for common IoT use cases so you can answer questions like which devices are about to fail or which customers are at risk of abandoning their wearable devices."""


    class ListChannelsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_channels` for valid parameters"""
            pass
    class ListDatasetContentsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_dataset_contents` for valid parameters"""
            pass
    class ListDatasetsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_datasets` for valid parameters"""
            pass
    class ListDatastoresPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_datastores` for valid parameters"""
            pass
    class ListPipelinesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_pipelines` for valid parameters"""
            pass


    class BatchPutMessageRequest(Mapping):
        pass
    
    class BatchPutMessageResponse(Mapping):
        pass
    
    class Message(Mapping):
        pass
    
    class CancelPipelineReprocessingRequest(Mapping):
        pass
    
    class CancelPipelineReprocessingResponse(Mapping):
        pass
    
    class CreateChannelRequest(Mapping):
        pass
    
    class CreateChannelResponse(Mapping):
        pass
    
    class ChannelStorage(Mapping):
        pass
    
    class RetentionPeriod(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class CreateDatasetRequest(Mapping):
        pass
    
    class CreateDatasetResponse(Mapping):
        pass
    
    class DatasetAction(Mapping):
        pass
    
    class DatasetTrigger(Mapping):
        pass
    
    class DatasetContentDeliveryRule(Mapping):
        pass
    
    class VersioningConfiguration(Mapping):
        pass
    
    class LateDataRule(Mapping):
        pass
    
    class CreateDatasetContentRequest(Mapping):
        pass
    
    class CreateDatasetContentResponse(Mapping):
        pass
    
    class CreateDatastoreRequest(Mapping):
        pass
    
    class CreateDatastoreResponse(Mapping):
        pass
    
    class DatastoreStorage(Mapping):
        pass
    
    class FileFormatConfiguration(Mapping):
        pass
    
    class DatastorePartitions(Mapping):
        pass
    
    class CreatePipelineRequest(Mapping):
        pass
    
    class CreatePipelineResponse(Mapping):
        pass
    
    class PipelineActivity(Mapping):
        pass
    
    class DeleteChannelRequest(Mapping):
        pass
    
    class DeleteDatasetRequest(Mapping):
        pass
    
    class DeleteDatasetContentRequest(Mapping):
        pass
    
    class DeleteDatastoreRequest(Mapping):
        pass
    
    class DeletePipelineRequest(Mapping):
        pass
    
    class DescribeChannelRequest(Mapping):
        pass
    
    class DescribeChannelResponse(Mapping):
        pass
    
    class IncludeStatisticsFlag(object):
        pass
    
    class DescribeDatasetRequest(Mapping):
        pass
    
    class DescribeDatasetResponse(Mapping):
        pass
    
    class DescribeDatastoreRequest(Mapping):
        pass
    
    class DescribeDatastoreResponse(Mapping):
        pass
    
    class DescribeLoggingOptionsRequest(Mapping):
        pass
    
    class DescribeLoggingOptionsResponse(Mapping):
        pass
    
    class DescribePipelineRequest(Mapping):
        pass
    
    class DescribePipelineResponse(Mapping):
        pass
    
    class GetDatasetContentRequest(Mapping):
        pass
    
    class GetDatasetContentResponse(Mapping):
        pass
    
    class ListChannelsRequest(Mapping):
        pass
    
    class ListChannelsResponse(Mapping):
        pass
    
    class ListDatasetContentsRequest(Mapping):
        pass
    
    class ListDatasetContentsResponse(Mapping):
        pass
    
    class Timestamp(object):
        pass
    
    class ListDatasetsRequest(Mapping):
        pass
    
    class ListDatasetsResponse(Mapping):
        pass
    
    class ListDatastoresRequest(Mapping):
        pass
    
    class ListDatastoresResponse(Mapping):
        pass
    
    class ListPipelinesRequest(Mapping):
        pass
    
    class ListPipelinesResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class PutLoggingOptionsRequest(Mapping):
        pass
    
    class LoggingOptions(Mapping):
        pass
    
    class RunPipelineActivityRequest(Mapping):
        pass
    
    class RunPipelineActivityResponse(Mapping):
        pass
    
    class MessagePayload(object):
        pass
    
    class SampleChannelDataRequest(Mapping):
        pass
    
    class SampleChannelDataResponse(Mapping):
        pass
    
    class StartTime(object):
        pass
    
    class EndTime(object):
        pass
    
    class StartPipelineReprocessingRequest(Mapping):
        pass
    
    class StartPipelineReprocessingResponse(Mapping):
        pass
    
    class ChannelMessages(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateChannelRequest(Mapping):
        pass
    
    class UpdateDatasetRequest(Mapping):
        pass
    
    class UpdateDatastoreRequest(Mapping):
        pass
    
    class UpdatePipelineRequest(Mapping):
        pass
    
    def batch_put_message(self, messages: List[Message], channelName: str) -> BatchPutMessageResponse:
        r"""Sends messages to a channel.

        :param self:
        :param messages:  The list of messages to be sent. Each message has the format: { "messageId": "string", "payload": "string"}. The field names of message payloads (data) that you send to AWS IoT Analytics: <ul> <li> Must contain only alphanumeric characters and undescores (_). No other special characters are allowed. </li> <li> Must begin with an alphabetic character or single underscore (_). </li> <li> Cannot contain hyphens (-). </li> <li> In regular expression terms: "^[A-Za-z_]([A-Za-z0-9]*|[A-Za-z0-9][A-Za-z0-9_]*)$".  </li> <li> Cannot be more than 255 characters. </li> <li> Are case insensitive. (Fields named foo and FOO in the same payload are considered duplicates.) </li> </ul> For example, {"temp_01": 29} or {"_temp_01": 29} are valid, but {"temp-01": 29}, {"01_temp": 29} or {"__temp_01": 29} are invalid in message payloads. <br/>channelName:  The name of the channel where the messages are sent.<br/>
        :return: batchPutMessageErrorEntries:  A list of any errors encountered when sending the messages to the channel.<br/>        """
        pass

    def cancel_pipeline_reprocessing(self, reprocessingId: str, pipelineName: str) -> CancelPipelineReprocessingResponse:
        r"""Cancels the reprocessing of data through the pipeline.

        :param self:
        :param reprocessingId:  The ID of the reprocessing task (returned by <code>StartPipelineReprocessing</code>).<br/>pipelineName:  The name of pipeline for which data reprocessing is canceled.<br/>
        :return:         """
        pass

    def create_channel(self, channelName: str, channelStorage: ChannelStorage=None, retentionPeriod: RetentionPeriod=None, tags: List[Tag]=None) -> CreateChannelResponse:
        r"""Creates a channel. A channel collects data from an MQTT topic and archives the raw, unprocessed messages before publishing the data to a pipeline.

        :param self:
        :param tags:  Metadata which can be used to manage the channel.<br/>retentionPeriod:  How long, in days, message data is kept for the channel. When <code>customerManagedS3</code> storage is selected, this parameter is ignored.:<br/>channelStorage:  Where channel data is stored. You can choose one of <code>serviceManagedS3</code> or <code>customerManagedS3</code> storage. If not specified, the default is <code>serviceManagedS3</code>. You cannot change this storage option after the channel is created.:<br/>channelName:  The name of the channel.<br/>Use this to store channel data in an S3 bucket managed by AWS IoT Analytics. You cannot change the choice of service-managed or customer-managed S3 storage after the channel is created.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>serviceManagedS3</b>: Use this to store channel data in an S3 bucket managed by AWS IoT Analytics. You cannot change the choice of service-managed or customer-managed S3 storage after the channel is created.&nbsp;&nbsp;&nbsp;&nbsp; <i>numberOfDays</i> The number of days that message data is kept. The <code>unlimited</code> parameter must be false.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>unlimited</i> If true, message data is kept indefinitely.<br/>
        :return: retentionPeriod:  How long, in days, message data is kept for the channel.:<br/>channelArn:  The ARN of the channel.<br/>channelName:  The name of the channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>numberOfDays</i> The number of days that message data is kept. The <code>unlimited</code> parameter must be false.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>unlimited</i> If true, message data is kept indefinitely.<br/>        """
        pass

    def create_dataset(self, actions: List[DatasetAction], datasetName: str, triggers: List[DatasetTrigger]=None, contentDeliveryRules: List[DatasetContentDeliveryRule]=None, retentionPeriod: RetentionPeriod=None, versioningConfiguration: VersioningConfiguration=None, tags: List[Tag]=None, lateDataRules: List[LateDataRule]=None) -> CreateDatasetResponse:
        r"""Creates a dataset. A dataset stores data retrieved from a data store by applying a <code>queryAction</code> (a SQL query) or a <code>containerAction</code> (executing a containerized application). This operation creates the skeleton of a dataset. The dataset can be populated manually by calling <code>CreateDatasetContent</code> or automatically according to a trigger you specify.

        :param self:
        :param lateDataRules:  A list of data rules that send notifications to Amazon CloudWatch, when data arrives late. To specify <code>lateDataRules</code>, the dataset must use a <a href="https://docs.aws.amazon.com/iotanalytics/latest/APIReference/API_DeltaTime.html">DeltaTimer</a> filter.<br/>tags:  Metadata which can be used to manage the data set.<br/>versioningConfiguration:  Optional. How many versions of dataset contents are kept. If not specified or set to null, only the latest version plus the latest succeeded version (if they are different) are kept for the time period specified by the <code>retentionPeriod</code> parameter. For more information, see <a href="https://docs.aws.amazon.com/iotanalytics/latest/userguide/getting-started.html#aws-iot-analytics-dataset-versions">Keeping Multiple Versions of AWS IoT Analytics Data Sets</a> in the <i>AWS IoT Analytics User Guide</i>.:<br/>retentionPeriod:  Optional. How long, in days, versions of dataset contents are kept for the dataset. If not specified or set to <code>null</code>, versions of dataset contents are retained for at most 90 days. The number of versions of dataset contents retained is determined by the <code>versioningConfiguration</code> parameter. For more information, see <a href="https://docs.aws.amazon.com/iotanalytics/latest/userguide/getting-started.html#aws-iot-analytics-dataset-versions">Keeping Multiple Versions of AWS IoT Analytics Data Sets</a> in the <i>AWS IoT Analytics User Guide</i>.:<br/>contentDeliveryRules:  When dataset contents are created, they are delivered to destinations specified here.<br/>triggers:  A list of triggers. A trigger causes data set contents to be populated at a specified time interval or when another data set's contents are created. The list of triggers can be empty or contain up to five <code>DataSetTrigger</code> objects.<br/>actions:  A list of actions that create the data set contents.<br/>datasetName:  The name of the data set.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>numberOfDays</i> The number of days that message data is kept. The <code>unlimited</code> parameter must be false.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>unlimited</i> If true, message data is kept indefinitely.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>maxVersions</i> How many versions of dataset contents are kept. The <code>unlimited</code> parameter must be <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>unlimited</i> If true, unlimited versions of dataset contents are kept.<br/>
        :return: retentionPeriod:  How long, in days, dataset contents are kept for the dataset.:<br/>datasetArn:  The ARN of the dataset.<br/>datasetName:  The name of the dataset.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>numberOfDays</i> The number of days that message data is kept. The <code>unlimited</code> parameter must be false.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>unlimited</i> If true, message data is kept indefinitely.<br/>        """
        pass

    def create_dataset_content(self, datasetName: str, versionId: str=None) -> CreateDatasetContentResponse:
        r"""Creates the content of a data set by applying a <code>queryAction</code> (a SQL query) or a <code>containerAction</code> (executing a containerized application).

        :param self:
        :param versionId:  The version ID of the dataset content. To specify <code>versionId</code> for a dataset content, the dataset must use a <a href="https://docs.aws.amazon.com/iotanalytics/latest/APIReference/API_DeltaTime.html">DeltaTimer</a> filter.<br/>datasetName:  The name of the dataset.<br/>
        :return: versionId:  The version ID of the dataset contents that are being created.<br/>        """
        pass

    def create_datastore(self, datastoreName: str, datastoreStorage: DatastoreStorage=None, retentionPeriod: RetentionPeriod=None, tags: List[Tag]=None, fileFormatConfiguration: FileFormatConfiguration=None, datastorePartitions: DatastorePartitions=None) -> CreateDatastoreResponse:
        r"""Creates a data store, which is a repository for messages. Only data stores that are used to save pipeline data can be configured with <code>ParquetConfiguration</code>.

        :param self:
        :param datastorePartitions:   Contains information about the partitions in a data store. :<br/>fileFormatConfiguration:  Contains the configuration information of file formats. AWS IoT Analytics data stores support JSON and <a href="https://parquet.apache.org/">Parquet</a>. The default file format is JSON. You can specify only one format. You can't change the file format after you create the data store.:<br/>tags:  Metadata which can be used to manage the data store.<br/>retentionPeriod:  How long, in days, message data is kept for the data store. When <code>customerManagedS3</code> storage is selected, this parameter is ignored.:<br/>datastoreStorage:  Where data store data is stored. You can choose one of <code>serviceManagedS3</code> or <code>customerManagedS3</code> storage. If not specified, the default is <code>serviceManagedS3</code>. You cannot change this storage option after the data store is created.:<br/>datastoreName:  The name of the data store.<br/>Use this to store data store data in an S3 bucket managed by AWS IoT Analytics. You cannot change the choice of service-managed or customer-managed S3 storage after the data store is created.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>serviceManagedS3</b>: Use this to store data store data in an S3 bucket managed by AWS IoT Analytics. You cannot change the choice of service-managed or customer-managed S3 storage after the data store is created.&nbsp;&nbsp;&nbsp;&nbsp; <i>numberOfDays</i> The number of days that message data is kept. The <code>unlimited</code> parameter must be false.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>unlimited</i> If true, message data is kept indefinitely.<br/>Contains the configuration information of the JSON format.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>jsonConfiguration</b>: Contains the configuration information of the JSON format.&nbsp;&nbsp;&nbsp;&nbsp; <i>partitions</i>  A list of partitions in a data store. <br/>
        :return: retentionPeriod:  How long, in days, message data is kept for the data store.:<br/>datastoreArn:  The ARN of the data store.<br/>datastoreName:  The name of the data store.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>numberOfDays</i> The number of days that message data is kept. The <code>unlimited</code> parameter must be false.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>unlimited</i> If true, message data is kept indefinitely.<br/>        """
        pass

    def create_pipeline(self, pipelineActivities: List[PipelineActivity], pipelineName: str, tags: List[Tag]=None) -> CreatePipelineResponse:
        r"""Creates a pipeline. A pipeline consumes messages from a channel and allows you to process the messages before storing them in a data store. You must specify both a <code>channel</code> and a <code>datastore</code> activity and, optionally, as many as 23 additional activities in the <code>pipelineActivities</code> array.

        :param self:
        :param tags:  Metadata which can be used to manage the pipeline.<br/>pipelineActivities:  A list of <code>PipelineActivity</code> objects. Activities perform transformations on your messages, such as removing, renaming or adding message attributes; filtering messages based on attribute values; invoking your Lambda functions on messages for advanced processing; or performing mathematical transformations to normalize device data. The list can be 2-25 <code>PipelineActivity</code> objects and must contain both a <code>channel</code> and a <code>datastore</code> activity. Each entry in the list must contain only one activity. For example:  <code>pipelineActivities = [ { "channel": { ... } }, { "lambda": { ... } }, ... ]</code> <br/>pipelineName:  The name of the pipeline.<br/>
        :return: pipelineArn:  The ARN of the pipeline.<br/>pipelineName:  The name of the pipeline.<br/>        """
        pass

    def delete_channel(self, channelName: str):
        r"""Deletes the specified channel.

        :param self:
        :param channelName:  The name of the channel to delete.<br/>
        :return:         """
        pass

    def delete_dataset(self, datasetName: str):
        r"""Deletes the specified dataset. You do not have to delete the content of the dataset before you perform this operation.

        :param self:
        :param datasetName:  The name of the data set to delete.<br/>
        :return:         """
        pass

    def delete_dataset_content(self, datasetName: str, versionId: str=None):
        r"""Deletes the content of the specified dataset.

        :param self:
        :param versionId:  The version of the dataset whose content is deleted. You can also use the strings "$LATEST" or "$LATEST_SUCCEEDED" to delete the latest or latest successfully completed data set. If not specified, "$LATEST_SUCCEEDED" is the default.<br/>datasetName:  The name of the dataset whose content is deleted.<br/>
        :return:         """
        pass

    def delete_datastore(self, datastoreName: str):
        r"""Deletes the specified data store.

        :param self:
        :param datastoreName:  The name of the data store to delete.<br/>
        :return:         """
        pass

    def delete_pipeline(self, pipelineName: str):
        r"""Deletes the specified pipeline.

        :param self:
        :param pipelineName:  The name of the pipeline to delete.<br/>
        :return:         """
        pass

    def describe_channel(self, channelName: str, includeStatistics: IncludeStatisticsFlag=None) -> DescribeChannelResponse:
        r"""Retrieves information about a channel.

        :param self:
        :param includeStatistics:  If true, additional statistical information about the channel is included in the response. This feature cannot be used with a channel whose S3 storage is customer-managed.<br/>channelName:  The name of the channel whose information is retrieved.<br/>
        :return: statistics:  Statistics about the channel. Included if the <code>includeStatistics</code> parameter is set to <code>true</code> in the request.:<br/>channel:  An object that contains information about the channel.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastMessageArrivalTime</i> The last time when a new message arrived in the channel. AWS IoT Analytics updates this value at most once per minute for one channel. Hence, the <code>lastMessageArrivalTime</code> value is an approximation. This feature only applies to messages that arrived in the data store after October 23, 2020. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdateTime</i> When the channel was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationTime</i> When the channel was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>retentionPeriod</i> How long, in days, message data is kept for the channel.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>retentionPeriod</b>: How long, in days, message data is kept for the channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The ARN of the channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>storage</i> Where channel data is stored. You can choose one of <code>serviceManagedS3</code> or <code>customerManagedS3</code> storage. If not specified, the default is <code>serviceManagedS3</code>. You cannot change this storage option after the channel is created.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>storage</b>: Where channel data is stored. You can choose one of <code>serviceManagedS3</code> or <code>customerManagedS3</code> storage. If not specified, the default is <code>serviceManagedS3</code>. You cannot change this storage option after the channel is created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the channel.<br/>Use this to store channel data in an S3 bucket managed by AWS IoT Analytics. You cannot change the choice of service-managed or customer-managed S3 storage after the channel is created.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>serviceManagedS3</b>: Use this to store channel data in an S3 bucket managed by AWS IoT Analytics. You cannot change the choice of service-managed or customer-managed S3 storage after the channel is created.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>numberOfDays</i> The number of days that message data is kept. The <code>unlimited</code> parameter must be false.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>unlimited</i> If true, message data is kept indefinitely.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>size</i> The estimated size of the channel.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>size</b>: The estimated size of the channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>estimatedOn</i> The time when the estimate of the size of the resource was made.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>estimatedSizeInBytes</i> The estimated size of the resource, in bytes.<br/>        """
        pass

    def describe_dataset(self, datasetName: str) -> DescribeDatasetResponse:
        r"""Retrieves information about a dataset.

        :param self:
        :param datasetName:  The name of the data set whose information is retrieved.<br/>
        :return: dataset:  An object that contains information about the data set.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lateDataRules</i> A list of data rules that send notifications to Amazon CloudWatch, when data arrives late. To specify <code>lateDataRules</code>, the dataset must use a <a href="https://docs.aws.amazon.com/iotanalytics/latest/APIReference/API_DeltaTime.html">DeltaTimer</a> filter.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>versioningConfiguration</i> Optional. How many versions of dataset contents are kept. If not specified or set to null, only the latest version plus the latest succeeded version (if they are different) are kept for the time period specified by the <code>retentionPeriod</code> parameter. For more information, see <a href="https://docs.aws.amazon.com/iotanalytics/latest/userguide/getting-started.html#aws-iot-analytics-dataset-versions">Keeping Multiple Versions of AWS IoT Analytics Data Sets</a> in the <i>AWS IoT Analytics User Guide</i>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>versioningConfiguration</b>: Optional. How many versions of dataset contents are kept. If not specified or set to null, only the latest version plus the latest succeeded version (if they are different) are kept for the time period specified by the <code>retentionPeriod</code> parameter. For more information, see <a href="https://docs.aws.amazon.com/iotanalytics/latest/userguide/getting-started.html#aws-iot-analytics-dataset-versions">Keeping Multiple Versions of AWS IoT Analytics Data Sets</a> in the <i>AWS IoT Analytics User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>retentionPeriod</i> Optional. How long, in days, message data is kept for the data set.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>retentionPeriod</b>: Optional. How long, in days, message data is kept for the data set.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdateTime</i> The last time the data set was updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationTime</i> When the data set was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the data set.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>contentDeliveryRules</i> When dataset contents are created they are delivered to destinations specified here.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>triggers</i> The <code>DatasetTrigger</code> objects that specify when the data set is automatically updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>actions</i> The <code>DatasetAction</code> objects that automatically create the data set contents.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The ARN of the data set.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the data set.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>numberOfDays</i> The number of days that message data is kept. The <code>unlimited</code> parameter must be false.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>unlimited</i> If true, message data is kept indefinitely.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>maxVersions</i> How many versions of dataset contents are kept. The <code>unlimited</code> parameter must be <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>unlimited</i> If true, unlimited versions of dataset contents are kept.<br/>        """
        pass

    def describe_datastore(self, datastoreName: str, includeStatistics: IncludeStatisticsFlag=None) -> DescribeDatastoreResponse:
        r"""Retrieves information about a data store.

        :param self:
        :param includeStatistics:  If true, additional statistical information about the data store is included in the response. This feature cannot be used with a data store whose S3 storage is customer-managed.<br/>datastoreName:  The name of the data store<br/>
        :return: statistics:  Additional statistical information about the data store. Included if the <code>includeStatistics</code> parameter is set to <code>true</code> in the request.:<br/>datastore:  Information about the data store.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>datastorePartitions</i>  Contains information about the partitions in a data store. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>datastorePartitions</b>:  Contains information about the partitions in a data store. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>fileFormatConfiguration</i> Contains the configuration information of file formats. AWS IoT Analytics data stores support JSON and <a href="https://parquet.apache.org/">Parquet</a>. The default file format is JSON. You can specify only one format. You can't change the file format after you create the data store.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>fileFormatConfiguration</b>: Contains the configuration information of file formats. AWS IoT Analytics data stores support JSON and <a href="https://parquet.apache.org/">Parquet</a>. The default file format is JSON. You can specify only one format. You can't change the file format after you create the data store.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastMessageArrivalTime</i> The last time when a new message arrived in the data store. AWS IoT Analytics updates this value at most once per minute for one data store. Hence, the <code>lastMessageArrivalTime</code> value is an approximation. This feature only applies to messages that arrived in the data store after October 23, 2020. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdateTime</i> The last time the data store was updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationTime</i> When the data store was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>retentionPeriod</i> How long, in days, message data is kept for the data store. When <code>customerManagedS3</code> storage is selected, this parameter is ignored.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>retentionPeriod</b>: How long, in days, message data is kept for the data store. When <code>customerManagedS3</code> storage is selected, this parameter is ignored.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of a data store: <dl> <dt>CREATING</dt> <dd> The data store is being created. </dd> <dt>ACTIVE</dt> <dd> The data store has been created and can be used. </dd> <dt>DELETING</dt> <dd> The data store is being deleted. </dd> </dl><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The ARN of the data store.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>storage</i> Where data store data is stored. You can choose one of <code>serviceManagedS3</code> or <code>customerManagedS3</code> storage. If not specified, the default is <code>serviceManagedS3</code>. You cannot change this storage option after the data store is created.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>storage</b>: Where data store data is stored. You can choose one of <code>serviceManagedS3</code> or <code>customerManagedS3</code> storage. If not specified, the default is <code>serviceManagedS3</code>. You cannot change this storage option after the data store is created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the data store.<br/>Use this to store data store data in an S3 bucket managed by AWS IoT Analytics. You cannot change the choice of service-managed or customer-managed S3 storage after the data store is created.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>serviceManagedS3</b>: Use this to store data store data in an S3 bucket managed by AWS IoT Analytics. You cannot change the choice of service-managed or customer-managed S3 storage after the data store is created.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>numberOfDays</i> The number of days that message data is kept. The <code>unlimited</code> parameter must be false.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>unlimited</i> If true, message data is kept indefinitely.<br/>Contains the configuration information of the JSON format.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>jsonConfiguration</b>: Contains the configuration information of the JSON format.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>partitions</i>  A list of partitions in a data store. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>size</i> The estimated size of the data store.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>size</b>: The estimated size of the data store.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>estimatedOn</i> The time when the estimate of the size of the resource was made.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>estimatedSizeInBytes</i> The estimated size of the resource, in bytes.<br/>        """
        pass

    def describe_logging_options(self) -> DescribeLoggingOptionsResponse:
        r"""Retrieves the current settings of the AWS IoT Analytics logging options.

        :param self:
        :param 
        :return: loggingOptions:  The current settings of the AWS IoT Analytics logging options.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>enabled</i> If true, logging is enabled for AWS IoT Analytics.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>level</i> The logging level. Currently, only ERROR is supported.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>roleArn</i> The ARN of the role that grants permission to AWS IoT Analytics to perform logging.<br/>        """
        pass

    def describe_pipeline(self, pipelineName: str) -> DescribePipelineResponse:
        r"""Retrieves information about a pipeline.

        :param self:
        :param pipelineName:  The name of the pipeline whose information is retrieved.<br/>
        :return: pipeline:  A <code>Pipeline</code> object that contains information about the pipeline.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdateTime</i> The last time the pipeline was updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationTime</i> When the pipeline was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>reprocessingSummaries</i> A summary of information about the pipeline reprocessing.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>activities</i> The activities that perform transformations on the messages.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The ARN of the pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the pipeline.<br/>        """
        pass

    def get_dataset_content(self, datasetName: str, versionId: str=None) -> GetDatasetContentResponse:
        r"""Retrieves the contents of a data set as presigned URIs.

        :param self:
        :param versionId:  The version of the data set whose contents are retrieved. You can also use the strings "$LATEST" or "$LATEST_SUCCEEDED" to retrieve the contents of the latest or latest successfully completed data set. If not specified, "$LATEST_SUCCEEDED" is the default.<br/>datasetName:  The name of the data set whose contents are retrieved.<br/>
        :return: status:  The status of the data set content.:<br/>timestamp:  The time when the request was made.<br/>entries:  A list of <code>DatasetEntry</code> objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>reason</i> The reason the data set contents are in this state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>state</i> The state of the data set contents. Can be one of READY, CREATING, SUCCEEDED, or FAILED.<br/>        """
        pass

    def list_channels(self, nextToken: str=None, maxResults: int=None) -> ListChannelsResponse:
        r"""Retrieves a list of channels.

        :param self:
        :param maxResults:  The maximum number of results to return in this request. The default value is 100.<br/>nextToken:  The token for the next set of results.<br/>
        :return: nextToken:  The token to retrieve the next set of results, or <code>null</code> if there are no more results.<br/>channelSummaries:  A list of <code>ChannelSummary</code> objects.<br/>        """
        pass

    def list_dataset_contents(self, datasetName: str, nextToken: str=None, maxResults: int=None, scheduledOnOrAfter: Timestamp=None, scheduledBefore: Timestamp=None) -> ListDatasetContentsResponse:
        r"""Lists information about data set contents that have been created.

        :param self:
        :param scheduledBefore:  A filter to limit results to those data set contents whose creation is scheduled before the given time. See the field <code>triggers.schedule</code> in the <code>CreateDataset</code> request. (timestamp)<br/>scheduledOnOrAfter:  A filter to limit results to those data set contents whose creation is scheduled on or after the given time. See the field <code>triggers.schedule</code> in the <code>CreateDataset</code> request. (timestamp)<br/>maxResults:  The maximum number of results to return in this request.<br/>nextToken:  The token for the next set of results.<br/>datasetName:  The name of the data set whose contents information you want to list.<br/>
        :return: nextToken:  The token to retrieve the next set of results, or <code>null</code> if there are no more results.<br/>datasetContentSummaries:  Summary information about data set contents that have been created.<br/>        """
        pass

    def list_datasets(self, nextToken: str=None, maxResults: int=None) -> ListDatasetsResponse:
        r"""Retrieves information about data sets.

        :param self:
        :param maxResults:  The maximum number of results to return in this request. The default value is 100.<br/>nextToken:  The token for the next set of results.<br/>
        :return: nextToken:  The token to retrieve the next set of results, or <code>null</code> if there are no more results.<br/>datasetSummaries:  A list of <code>DatasetSummary</code> objects.<br/>        """
        pass

    def list_datastores(self, nextToken: str=None, maxResults: int=None) -> ListDatastoresResponse:
        r"""Retrieves a list of data stores.

        :param self:
        :param maxResults:  The maximum number of results to return in this request. The default value is 100.<br/>nextToken:  The token for the next set of results.<br/>
        :return: nextToken:  The token to retrieve the next set of results, or <code>null</code> if there are no more results.<br/>datastoreSummaries:  A list of <code>DatastoreSummary</code> objects.<br/>        """
        pass

    def list_pipelines(self, nextToken: str=None, maxResults: int=None) -> ListPipelinesResponse:
        r"""Retrieves a list of pipelines.

        :param self:
        :param maxResults:  The maximum number of results to return in this request. The default value is 100.<br/>nextToken:  The token for the next set of results.<br/>
        :return: nextToken:  The token to retrieve the next set of results, or <code>null</code> if there are no more results.<br/>pipelineSummaries:  A list of <code>PipelineSummary</code> objects.<br/>        """
        pass

    def list_tags_for_resource(self, resourceArn: str) -> ListTagsForResourceResponse:
        r"""Lists the tags (metadata) that you have assigned to the resource.

        :param self:
        :param resourceArn:  The ARN of the resource whose tags you want to list.<br/>
        :return: tags:  The tags (metadata) that you have assigned to the resource.<br/>        """
        pass

    def put_logging_options(self, loggingOptions: LoggingOptions):
        r"""Sets or updates the AWS IoT Analytics logging options. If you update the value of any <code>loggingOptions</code> field, it takes up to one minute for the change to take effect. Also, if you change the policy attached to the role you specified in the <code>roleArn</code> field (for example, to correct an invalid policy), it takes up to five minutes for that change to take effect. 

        :param self:
        :param loggingOptions:  The new values of the AWS IoT Analytics logging options.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>enabled</i> If true, logging is enabled for AWS IoT Analytics.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>level</i> The logging level. Currently, only ERROR is supported.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>roleArn</i> The ARN of the role that grants permission to AWS IoT Analytics to perform logging.<br/>
        :return:         """
        pass

    def run_pipeline_activity(self, payloads: List[MessagePayload], pipelineActivity: PipelineActivity) -> RunPipelineActivityResponse:
        r"""Simulates the results of running a pipeline activity on a message payload.

        :param self:
        :param payloads:  The sample message payloads on which the pipeline activity is run.<br/>pipelineActivity:  The pipeline activity that is run. This must not be a channel activity or a datastore activity because these activities are used in a pipeline only to load the original message and to store the (possibly) transformed message. If a lambda activity is specified, only short-running Lambda functions (those with a timeout of less than 30 seconds or less) can be used.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deviceShadowEnrich</i> Adds information from the AWS IoT Device Shadow service to a message.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>deviceShadowEnrich</b>: Adds information from the AWS IoT Device Shadow service to a message.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deviceRegistryEnrich</i> Adds data from the AWS IoT device registry to your message.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>deviceRegistryEnrich</b>: Adds data from the AWS IoT device registry to your message.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>math</i> Computes an arithmetic expression using the message's attributes and adds it to the message.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>math</b>: Computes an arithmetic expression using the message's attributes and adds it to the message.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>filter</i> Filters a message based on its attributes.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>filter</b>: Filters a message based on its attributes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>selectAttributes</i> Creates a new message using only the specified attributes from the original message. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>selectAttributes</b>: Creates a new message using only the specified attributes from the original message. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>removeAttributes</i> Removes attributes from a message.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>removeAttributes</b>: Removes attributes from a message.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>addAttributes</i> Adds other attributes based on existing attributes in the message.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>addAttributes</b>: Adds other attributes based on existing attributes in the message.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>datastore</i> Specifies where to store the processed message data.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>datastore</b>: Specifies where to store the processed message data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lambda</i> Runs a Lambda function to modify the message.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>lambda</b>: Runs a Lambda function to modify the message.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>channel</i> Determines the source of the messages to be processed.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>channel</b>: Determines the source of the messages to be processed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>next</i> The next activity in the pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>channelName</i> The name of the channel from which the messages are processed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the channel activity.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>next</i> The next activity in the pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>batchSize</i> The number of messages passed to the Lambda function for processing. The Lambda function must be able to process all of these messages within five minutes, which is the maximum timeout duration for Lambda functions.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>lambdaName</i> The name of the Lambda function that is run on the message.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the lambda activity.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>datastoreName</i> The name of the data store where processed messages are stored.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the datastore activity.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>next</i> The next activity in the pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>attributes</i> A list of 1-50 <code>AttributeNameMapping</code> objects that map an existing attribute to a new attribute. <note> The existing attributes remain in the message, so if you want to remove the originals, use <code>RemoveAttributeActivity</code>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the addAttributes activity.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>next</i> The next activity in the pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>attributes</i> A list of 1-50 attributes to remove from the message.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the <code>removeAttributes</code> activity.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>next</i> The next activity in the pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>attributes</i> A list of the attributes to select from the message.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the <code>selectAttributes</code> activity.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>next</i> The next activity in the pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>filter</i> An expression that looks like a SQL WHERE clause that must return a Boolean value. Messages that satisfy the condition are passed to the next activity. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the filter activity.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>next</i> The next activity in the pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>math</i> An expression that uses one or more existing attributes and must return an integer value.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>attribute</i> The name of the attribute that contains the result of the math operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the math activity.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>next</i> The next activity in the pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>roleArn</i> The ARN of the role that allows access to the device's registry information.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>thingName</i> The name of the IoT device whose registry information is added to the message.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>attribute</i> The name of the attribute that is added to the message.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the <code>deviceRegistryEnrich</code> activity.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>next</i> The next activity in the pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>roleArn</i> The ARN of the role that allows access to the device's shadow.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>thingName</i> The name of the IoT device whose shadow information is added to the message.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>attribute</i> The name of the attribute that is added to the message.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the <code>deviceShadowEnrich</code> activity.<br/>
        :return: logResult:  In case the pipeline activity fails, the log message that is generated.<br/>payloads:  The enriched or transformed sample message payloads as base64-encoded strings. (The results of running the pipeline activity on each input sample message payload, encoded in base64.)<br/>        """
        pass

    def sample_channel_data(self, channelName: str, maxMessages: int=None, startTime: StartTime=None, endTime: EndTime=None) -> SampleChannelDataResponse:
        r"""Retrieves a sample of messages from the specified channel ingested during the specified timeframe. Up to 10 messages can be retrieved.

        :param self:
        :param endTime:  The end of the time window from which sample messages are retrieved.<br/>startTime:  The start of the time window from which sample messages are retrieved.<br/>maxMessages:  The number of sample messages to be retrieved. The limit is 10. The default is also 10.<br/>channelName:  The name of the channel whose message samples are retrieved.<br/>
        :return: payloads:  The list of message samples. Each sample message is returned as a base64-encoded string.<br/>        """
        pass

    def start_pipeline_reprocessing(self, pipelineName: str, startTime: StartTime=None, endTime: EndTime=None, channelMessages: ChannelMessages=None) -> StartPipelineReprocessingResponse:
        r"""Starts the reprocessing of raw message data through the pipeline.

        :param self:
        :param channelMessages:  Specifies one or more sets of channel messages that you want to reprocess. If you use the <code>channelMessages</code> object, you must not specify a value for <code>startTime</code> and <code>endTime</code>.:<br/>endTime:  The end time (exclusive) of raw message data that is reprocessed. If you specify a value for the <code>endTime</code> parameter, you must not use the <code>channelMessages</code> object.<br/>startTime:  The start time (inclusive) of raw message data that is reprocessed. If you specify a value for the <code>startTime</code> parameter, you must not use the <code>channelMessages</code> object.<br/>pipelineName:  The name of the pipeline on which to start reprocessing.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>s3Paths</i> Specifies one or more keys that identify the Amazon Simple Storage Service (Amazon S3) objects that save your channel messages. You must use the full path for the key. Example path: <code>channel/mychannel/__dt=2020-02-29 00:00:00/1582940490000_1582940520000_123456789012_mychannel_0_2118.0.json.gz</code> <br/>
        :return: reprocessingId:  The ID of the pipeline reprocessing activity that was started.<br/>        """
        pass

    def tag_resource(self, tags: List[Tag], resourceArn: str) -> TagResourceResponse:
        r"""Adds to or modifies the tags of the given resource. Tags are metadata that can be used to manage a resource.

        :param self:
        :param tags:  The new or modified tags for the resource.<br/>resourceArn:  The ARN of the resource whose tags you want to modify.<br/>
        :return:         """
        pass

    def untag_resource(self, tagKeys: List[TagKey], resourceArn: str) -> UntagResourceResponse:
        r"""Removes the given tags (metadata) from the resource.

        :param self:
        :param tagKeys:  The keys of those tags which you want to remove.<br/>resourceArn:  The ARN of the resource whose tags you want to remove.<br/>
        :return:         """
        pass

    def update_channel(self, channelName: str, channelStorage: ChannelStorage=None, retentionPeriod: RetentionPeriod=None):
        r"""Updates the settings of a channel.

        :param self:
        :param retentionPeriod:  How long, in days, message data is kept for the channel. The retention period cannot be updated if the channel's S3 storage is customer-managed.:<br/>channelStorage:  Where channel data is stored. You can choose one of <code>serviceManagedS3</code> or <code>customerManagedS3</code> storage. If not specified, the default is <code>serviceManagedS3</code>. You cannot change this storage option after the channel is created.:<br/>channelName:  The name of the channel to be updated.<br/>Use this to store channel data in an S3 bucket managed by AWS IoT Analytics. You cannot change the choice of service-managed or customer-managed S3 storage after the channel is created.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>serviceManagedS3</b>: Use this to store channel data in an S3 bucket managed by AWS IoT Analytics. You cannot change the choice of service-managed or customer-managed S3 storage after the channel is created.&nbsp;&nbsp;&nbsp;&nbsp; <i>numberOfDays</i> The number of days that message data is kept. The <code>unlimited</code> parameter must be false.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>unlimited</i> If true, message data is kept indefinitely.<br/>
        :return:         """
        pass

    def update_dataset(self, actions: List[DatasetAction], datasetName: str, triggers: List[DatasetTrigger]=None, contentDeliveryRules: List[DatasetContentDeliveryRule]=None, retentionPeriod: RetentionPeriod=None, versioningConfiguration: VersioningConfiguration=None, lateDataRules: List[LateDataRule]=None):
        r"""Updates the settings of a data set.

        :param self:
        :param lateDataRules:  A list of data rules that send notifications to Amazon CloudWatch, when data arrives late. To specify <code>lateDataRules</code>, the dataset must use a <a href="https://docs.aws.amazon.com/iotanalytics/latest/APIReference/API_DeltaTime.html">DeltaTimer</a> filter.<br/>versioningConfiguration:  Optional. How many versions of dataset contents are kept. If not specified or set to null, only the latest version plus the latest succeeded version (if they are different) are kept for the time period specified by the <code>retentionPeriod</code> parameter. For more information, see <a href="https://docs.aws.amazon.com/iotanalytics/latest/userguide/getting-started.html#aws-iot-analytics-dataset-versions">Keeping Multiple Versions of AWS IoT Analytics Data Sets</a> in the <i>AWS IoT Analytics User Guide</i>.:<br/>retentionPeriod:  How long, in days, dataset contents are kept for the dataset.:<br/>contentDeliveryRules:  When dataset contents are created, they are delivered to destinations specified here.<br/>triggers:  A list of <code>DatasetTrigger</code> objects. The list can be empty or can contain up to five <code>DatasetTrigger</code> objects.<br/>actions:  A list of <code>DatasetAction</code> objects.<br/>datasetName:  The name of the data set to update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>numberOfDays</i> The number of days that message data is kept. The <code>unlimited</code> parameter must be false.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>unlimited</i> If true, message data is kept indefinitely.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>maxVersions</i> How many versions of dataset contents are kept. The <code>unlimited</code> parameter must be <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>unlimited</i> If true, unlimited versions of dataset contents are kept.<br/>
        :return:         """
        pass

    def update_datastore(self, datastoreName: str, retentionPeriod: RetentionPeriod=None, datastoreStorage: DatastoreStorage=None, fileFormatConfiguration: FileFormatConfiguration=None):
        r"""Updates the settings of a data store.

        :param self:
        :param fileFormatConfiguration:  Contains the configuration information of file formats. AWS IoT Analytics data stores support JSON and <a href="https://parquet.apache.org/">Parquet</a>. The default file format is JSON. You can specify only one format. You can't change the file format after you create the data store.:<br/>datastoreStorage:  Where data store data is stored. You can choose one of <code>serviceManagedS3</code> or <code>customerManagedS3</code> storage. If not specified, the default is<code>serviceManagedS3</code>. You cannot change this storage option after the data store is created.:<br/>retentionPeriod:  How long, in days, message data is kept for the data store. The retention period cannot be updated if the data store's S3 storage is customer-managed.:<br/>datastoreName:  The name of the data store to be updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>numberOfDays</i> The number of days that message data is kept. The <code>unlimited</code> parameter must be false.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>unlimited</i> If true, message data is kept indefinitely.<br/>Use this to store data store data in an S3 bucket managed by AWS IoT Analytics. You cannot change the choice of service-managed or customer-managed S3 storage after the data store is created.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>serviceManagedS3</b>: Use this to store data store data in an S3 bucket managed by AWS IoT Analytics. You cannot change the choice of service-managed or customer-managed S3 storage after the data store is created.Contains the configuration information of the JSON format.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>jsonConfiguration</b>: Contains the configuration information of the JSON format.
        :return:         """
        pass

    def update_pipeline(self, pipelineActivities: List[PipelineActivity], pipelineName: str):
        r"""Updates the settings of a pipeline. You must specify both a <code>channel</code> and a <code>datastore</code> activity and, optionally, as many as 23 additional activities in the <code>pipelineActivities</code> array.

        :param self:
        :param pipelineActivities:  A list of <code>PipelineActivity</code> objects. Activities perform transformations on your messages, such as removing, renaming or adding message attributes; filtering messages based on attribute values; invoking your Lambda functions on messages for advanced processing; or performing mathematical transformations to normalize device data. The list can be 2-25 <code>PipelineActivity</code> objects and must contain both a <code>channel</code> and a <code>datastore</code> activity. Each entry in the list must contain only one activity. For example:  <code>pipelineActivities = [ { "channel": { ... } }, { "lambda": { ... } }, ... ]</code> <br/>pipelineName:  The name of the pipeline to update.<br/>
        :return:         """
        pass





class IoTDeviceAdvisor(BaseClient):
    r"""AWS IoT Core Device Advisor is a cloud-based, fully managed test capability for validating IoT devices during device software development. Device Advisor provides pre-built tests that you can use to validate IoT devices for reliable and secure connectivity with AWS IoT Core before deploying devices to production. By using Device Advisor, you can confirm that your devices can connect to AWS IoT Core, follow security best practices and, if applicable, receive software updates from IoT Device Management. You can also download signed qualification reports to submit to the AWS Partner Network to get your device qualified for the AWS Partner Device Catalog without the need to send your device in and wait for it to be tested."""




    class CreateSuiteDefinitionRequest(Mapping):
        pass
    
    class CreateSuiteDefinitionResponse(Mapping):
        pass
    
    class SuiteDefinitionConfiguration(Mapping):
        pass
    
    class TagMap(object):
        pass
    
    class DeleteSuiteDefinitionRequest(Mapping):
        pass
    
    class DeleteSuiteDefinitionResponse(Mapping):
        pass
    
    class GetSuiteDefinitionRequest(Mapping):
        pass
    
    class GetSuiteDefinitionResponse(Mapping):
        pass
    
    class GetSuiteRunRequest(Mapping):
        pass
    
    class GetSuiteRunResponse(Mapping):
        pass
    
    class GetSuiteRunReportRequest(Mapping):
        pass
    
    class GetSuiteRunReportResponse(Mapping):
        pass
    
    class ListSuiteDefinitionsRequest(Mapping):
        pass
    
    class ListSuiteDefinitionsResponse(Mapping):
        pass
    
    class ListSuiteRunsRequest(Mapping):
        pass
    
    class ListSuiteRunsResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class StartSuiteRunRequest(Mapping):
        pass
    
    class StartSuiteRunResponse(Mapping):
        pass
    
    class SuiteRunConfiguration(Mapping):
        pass
    
    class StopSuiteRunRequest(Mapping):
        pass
    
    class StopSuiteRunResponse(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class String128(object):
        pass
    
    class UpdateSuiteDefinitionRequest(Mapping):
        pass
    
    class UpdateSuiteDefinitionResponse(Mapping):
        pass
    
    def create_suite_definition(self, suiteDefinitionConfiguration: SuiteDefinitionConfiguration=None, tags: TagMap=None) -> CreateSuiteDefinitionResponse:
        r"""Creates a Device Advisor test suite.

        :param self:
        :param tags:  The tags to be attached to the suite definition.<br/>suiteDefinitionConfiguration:  Creates a Device Advisor test suite with suite definition configuration.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>devicePermissionRoleArn</i> Gets device permission arn.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>rootGroup</i> Gets test suite root group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>intendedForQualification</i> Gets the tests intended for qualification in a suite.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>devices</i> Gets the devices configured.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>suiteDefinitionName</i> Gets Suite Definition Configuration name.<br/>
        :return: createdAt:  Creates a Device Advisor test suite with TimeStamp of when it was created.<br/>suiteDefinitionName:  Creates a Device Advisor test suite with suite definition name.<br/>suiteDefinitionArn:  Creates a Device Advisor test suite with Amazon Resource name.<br/>suiteDefinitionId:  Creates a Device Advisor test suite with suite UUID.<br/>        """
        pass

    def delete_suite_definition(self, suiteDefinitionId: str) -> DeleteSuiteDefinitionResponse:
        r"""Deletes a Device Advisor test suite.

        :param self:
        :param suiteDefinitionId:  Suite definition Id of the test suite to be deleted.<br/>
        :return:         """
        pass

    def get_suite_definition(self, suiteDefinitionId: str, suiteDefinitionVersion: str=None) -> GetSuiteDefinitionResponse:
        r"""Gets information about a Device Advisor test suite.

        :param self:
        :param suiteDefinitionVersion:  Suite definition version of the test suite to get.<br/>suiteDefinitionId:  Suite definition Id of the test suite to get.<br/>
        :return: tags:  Tags attached to the suite definition.<br/>lastModifiedAt:  Date (in Unix epoch time) when the suite definition was last modified.<br/>createdAt:  Date (in Unix epoch time) when the suite definition was created.<br/>suiteDefinitionConfiguration:  Suite configuration of the suite definition.:<br/>latestVersion:  Latest suite definition version of the suite definition.<br/>suiteDefinitionVersion:  Suite definition version of the suite definition.<br/>suiteDefinitionArn:  The ARN of the suite definition.<br/>suiteDefinitionId:  Suite definition Id of the suite definition.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>devicePermissionRoleArn</i> Gets device permission arn.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>rootGroup</i> Gets test suite root group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>intendedForQualification</i> Gets the tests intended for qualification in a suite.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>devices</i> Gets the devices configured.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>suiteDefinitionName</i> Gets Suite Definition Configuration name.<br/>        """
        pass

    def get_suite_run(self, suiteRunId: str, suiteDefinitionId: str) -> GetSuiteRunResponse:
        r"""Gets information about a Device Advisor test suite run.

        :param self:
        :param suiteRunId:  Suite run Id for the test suite run.<br/>suiteDefinitionId:  Suite definition Id for the test suite run.<br/>
        :return: tags:  The tags attached to the suite run.<br/>errorReason:  Error reason for any test suite run failure.<br/>status:  Status for the test suite run.<br/>endTime:  Date (in Unix epoch time) when the test suite run ended.<br/>startTime:  Date (in Unix epoch time) when the test suite run was started.<br/>testResult:  Test results for the test suite run.:<br/>suiteRunConfiguration:  Suite run configuration for the test suite run.:<br/>suiteRunArn:  The ARN of the suite run.<br/>suiteRunId:  Suite run Id for the test suite run.<br/>suiteDefinitionVersion:  Suite definition version for the test suite run.<br/>suiteDefinitionId:  Suite definition Id for the test suite run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>selectedTestList</i> Gets test case list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>primaryDevice</i> Gets the primary device for suite run.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>primaryDevice</b>: Gets the primary device for suite run.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>certificateArn</i> Lists devices certificate arn<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>thingArn</i> Lists devices thing arn<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>groups</i> Show each group of test results.<br/>        """
        pass

    def get_suite_run_report(self, suiteRunId: str, suiteDefinitionId: str) -> GetSuiteRunReportResponse:
        r"""Gets a report download link for a successful Device Advisor qualifying test suite run.

        :param self:
        :param suiteRunId:  Suite run Id of the test suite run.<br/>suiteDefinitionId:  Suite definition Id of the test suite.<br/>
        :return: qualificationReportDownloadUrl:  Download URL of the qualification report.<br/>        """
        pass

    def list_suite_definitions(self, maxResults: int=None, nextToken: str=None) -> ListSuiteDefinitionsResponse:
        r"""Lists the Device Advisor test suites you have created.

        :param self:
        :param nextToken:  A token used to get the next set of results.<br/>maxResults:  The maximum number of results to return at once.<br/>
        :return: nextToken:  A token used to get the next set of results.<br/>suiteDefinitionInformationList:  An array of objects that provide summaries of information about the suite definitions in the list.<br/>        """
        pass

    def list_suite_runs(self, suiteDefinitionId: str=None, suiteDefinitionVersion: str=None, maxResults: int=None, nextToken: str=None) -> ListSuiteRunsResponse:
        r"""Lists the runs of the specified Device Advisor test suite. You can list all runs of the test suite, or the runs of a specific version of the test suite.

        :param self:
        :param nextToken:  A token to retrieve the next set of results.<br/>maxResults:  The maximum number of results to return at once.<br/>suiteDefinitionVersion:  Must be passed along with suiteDefinitionId. Lists the test suite runs of the specified test suite based on suite definition version.<br/>suiteDefinitionId:  Lists the test suite runs of the specified test suite based on suite definition Id.<br/>
        :return: nextToken:  A token to retrieve the next set of results.<br/>suiteRunsList:  An array of objects that provide summaries of information about the suite runs in the list.<br/>        """
        pass

    def list_tags_for_resource(self, resourceArn: str) -> ListTagsForResourceResponse:
        r"""Lists the tags attached to an IoT Device Advisor resource.

        :param self:
        :param resourceArn:  The ARN of the IoT Device Advisor resource.<br/>
        :return: tags:  The tags attached to the IoT Device Advisor resource.<br/>        """
        pass

    def start_suite_run(self, suiteDefinitionId: str, suiteDefinitionVersion: str=None, suiteRunConfiguration: SuiteRunConfiguration=None, tags: TagMap=None) -> StartSuiteRunResponse:
        r"""Starts a Device Advisor test suite run.

        :param self:
        :param tags:  The tags to be attached to the suite run.<br/>suiteRunConfiguration:  Suite run configuration.:<br/>suiteDefinitionVersion:  Suite definition version of the test suite.<br/>suiteDefinitionId:  Suite definition Id of the test suite.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>selectedTestList</i> Gets test case list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>primaryDevice</i> Gets the primary device for suite run.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>primaryDevice</b>: Gets the primary device for suite run.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>certificateArn</i> Lists devices certificate arn<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>thingArn</i> Lists devices thing arn<br/>
        :return: createdAt:  Date (in Unix epoch time) when the suite run was created.<br/>suiteRunArn:  Amazon resource name of the started suite run.<br/>suiteRunId:  Suite Run Id of the started suite run.<br/>        """
        pass

    def stop_suite_run(self, suiteRunId: str, suiteDefinitionId: str) -> StopSuiteRunResponse:
        r"""Stops a Device Advisor test suite run that is currently running.

        :param self:
        :param suiteRunId:  Suite run Id of the test suite run to be stopped.<br/>suiteDefinitionId:  Suite definition Id of the test suite run to be stopped.<br/>
        :return:         """
        pass

    def tag_resource(self, tags: TagMap, resourceArn: str) -> TagResourceResponse:
        r"""Adds to and modifies existing tags of an IoT Device Advisor resource.

        :param self:
        :param tags:  The tags to be attached to the IoT Device Advisor resource.<br/>resourceArn:  The resource ARN of an IoT Device Advisor resource.<br/>
        :return:         """
        pass

    def untag_resource(self, tagKeys: List[String128], resourceArn: str) -> UntagResourceResponse:
        r"""Removes tags from an IoT Device Advisor resource.

        :param self:
        :param tagKeys:  List of tag keys to remove from the IoT Device Advisor resource.<br/>resourceArn:  The resource ARN of an IoT Device Advisor resource.<br/>
        :return:         """
        pass

    def update_suite_definition(self, suiteDefinitionId: str, suiteDefinitionConfiguration: SuiteDefinitionConfiguration=None) -> UpdateSuiteDefinitionResponse:
        r"""Updates a Device Advisor test suite.

        :param self:
        :param suiteDefinitionConfiguration:  Updates a Device Advisor test suite with suite definition configuration.:<br/>suiteDefinitionId:  Suite definition Id of the test suite to be updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>devicePermissionRoleArn</i> Gets device permission arn.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>rootGroup</i> Gets test suite root group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>intendedForQualification</i> Gets the tests intended for qualification in a suite.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>devices</i> Gets the devices configured.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>suiteDefinitionName</i> Gets Suite Definition Configuration name.<br/>
        :return: lastUpdatedAt:  Timestamp of when the test suite was updated.<br/>createdAt:  Timestamp of when the test suite was created.<br/>suiteDefinitionVersion:  Suite definition version of the updated test suite.<br/>suiteDefinitionName:  Suite definition name of the updated test suite.<br/>suiteDefinitionArn:  Amazon Resource name of the updated test suite.<br/>suiteDefinitionId:  Suite definition Id of the updated test suite.<br/>        """
        pass





class IoTEvents(BaseClient):
    r"""AWS IoT Events monitors your equipment or device fleets for failures or changes in operation, and triggers actions when such events occur. You can use AWS IoT Events API operations to create, read, update, and delete inputs and detector models, and to list their versions."""




    class CreateAlarmModelRequest(Mapping):
        pass
    
    class CreateAlarmModelResponse(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class AlarmRule(Mapping):
        pass
    
    class AlarmNotification(Mapping):
        pass
    
    class AlarmEventActions(Mapping):
        pass
    
    class AlarmCapabilities(Mapping):
        pass
    
    class CreateDetectorModelRequest(Mapping):
        pass
    
    class CreateDetectorModelResponse(Mapping):
        pass
    
    class DetectorModelDefinition(Mapping):
        pass
    
    class CreateInputRequest(Mapping):
        pass
    
    class CreateInputResponse(Mapping):
        pass
    
    class InputDefinition(Mapping):
        pass
    
    class DeleteAlarmModelRequest(Mapping):
        pass
    
    class DeleteAlarmModelResponse(Mapping):
        pass
    
    class DeleteDetectorModelRequest(Mapping):
        pass
    
    class DeleteDetectorModelResponse(Mapping):
        pass
    
    class DeleteInputRequest(Mapping):
        pass
    
    class DeleteInputResponse(Mapping):
        pass
    
    class DescribeAlarmModelRequest(Mapping):
        pass
    
    class DescribeAlarmModelResponse(Mapping):
        pass
    
    class DescribeDetectorModelRequest(Mapping):
        pass
    
    class DescribeDetectorModelResponse(Mapping):
        pass
    
    class DescribeDetectorModelAnalysisRequest(Mapping):
        pass
    
    class DescribeDetectorModelAnalysisResponse(Mapping):
        pass
    
    class DescribeInputRequest(Mapping):
        pass
    
    class DescribeInputResponse(Mapping):
        pass
    
    class DescribeLoggingOptionsRequest(Mapping):
        pass
    
    class DescribeLoggingOptionsResponse(Mapping):
        pass
    
    class GetDetectorModelAnalysisResultsRequest(Mapping):
        pass
    
    class GetDetectorModelAnalysisResultsResponse(Mapping):
        pass
    
    class ListAlarmModelVersionsRequest(Mapping):
        pass
    
    class ListAlarmModelVersionsResponse(Mapping):
        pass
    
    class ListAlarmModelsRequest(Mapping):
        pass
    
    class ListAlarmModelsResponse(Mapping):
        pass
    
    class ListDetectorModelVersionsRequest(Mapping):
        pass
    
    class ListDetectorModelVersionsResponse(Mapping):
        pass
    
    class ListDetectorModelsRequest(Mapping):
        pass
    
    class ListDetectorModelsResponse(Mapping):
        pass
    
    class ListInputRoutingsRequest(Mapping):
        pass
    
    class ListInputRoutingsResponse(Mapping):
        pass
    
    class InputIdentifier(Mapping):
        pass
    
    class ListInputsRequest(Mapping):
        pass
    
    class ListInputsResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class PutLoggingOptionsRequest(Mapping):
        pass
    
    class LoggingOptions(Mapping):
        pass
    
    class StartDetectorModelAnalysisRequest(Mapping):
        pass
    
    class StartDetectorModelAnalysisResponse(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateAlarmModelRequest(Mapping):
        pass
    
    class UpdateAlarmModelResponse(Mapping):
        pass
    
    class UpdateDetectorModelRequest(Mapping):
        pass
    
    class UpdateDetectorModelResponse(Mapping):
        pass
    
    class UpdateInputRequest(Mapping):
        pass
    
    class UpdateInputResponse(Mapping):
        pass
    
    def create_alarm_model(self, alarmRule: AlarmRule, roleArn: str, alarmModelName: str, alarmModelDescription: str=None, tags: List[Tag]=None, key: str=None, severity: int=None, alarmNotification: AlarmNotification=None, alarmEventActions: AlarmEventActions=None, alarmCapabilities: AlarmCapabilities=None) -> CreateAlarmModelResponse:
        r"""Creates an alarm model to monitor an AWS IoT Events input attribute. You can use the alarm to get notified when the value is outside a specified range. For more information, see <a href="https://docs.aws.amazon.com/iotevents/latest/developerguide/create-alarms.html">Create an alarm model</a> in the <i>AWS IoT Events Developer Guide</i>.

        :param self:
        :param alarmCapabilities:  Contains the configuration information of alarm state changes.:<br/>alarmEventActions:  Contains information about one or more alarm actions.:<br/>alarmNotification:  Contains information about one or more notification actions.:<br/>alarmRule:  Defines when your alarm is invoked.:<br/>severity:  A non-negative integer that reflects the severity level of the alarm.<br/>key:  An input attribute used as a key to create an alarm. AWS IoT Events routes <a href="https://docs.aws.amazon.com/iotevents/latest/apireference/API_Input.html">inputs</a> associated with this key to the alarm.<br/>tags:  A list of key-value pairs that contain metadata for the alarm model. The tags help you manage the alarm model. For more information, see <a href="https://docs.aws.amazon.com/iotevents/latest/developerguide/tagging-iotevents.html">Tagging your AWS IoT Events resources</a> in the <i>AWS IoT Events Developer Guide</i>. You can create up to 50 tags for one alarm model.<br/>roleArn:  The ARN of the IAM role that allows the alarm to perform actions and access AWS resources. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs)</a> in the <i>AWS General Reference</i>.<br/>alarmModelDescription:  A description that tells you what the alarm model detects.<br/>alarmModelName:  A unique name that helps you identify the alarm model. You can't change this name after you create the alarm model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>simpleRule</i> A rule that compares an input property value to a threshold value with a comparison operator.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>simpleRule</b>: A rule that compares an input property value to a threshold value with a comparison operator.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>threshold</i> The value on the right side of the comparison operator. You can enter a number or specify an AWS IoT Events input attribute.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>comparisonOperator</i> The comparison operator.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>inputProperty</i> The value on the left side of the comparison operator. You can specify an AWS IoT Events input attribute as an input property.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>notificationActions</i> Contains the notification settings of an alarm model. The settings apply to all alarms that were created based on this alarm model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>alarmActions</i> Specifies one or more supported actions to receive notifications when the alarm state changes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>acknowledgeFlow</i> Specifies whether to get notified for alarm state changes.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>acknowledgeFlow</b>: Specifies whether to get notified for alarm state changes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>initializationConfiguration</i> Specifies the default alarm state. The configuration applies to all alarms that were created based on this alarm model.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>initializationConfiguration</b>: Specifies the default alarm state. The configuration applies to all alarms that were created based on this alarm model.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>disabledOnInitialization</i> The value must be <code>TRUE</code> or <code>FALSE</code>. If <code>FALSE</code>, all alarm instances created based on the alarm model are activated. The default value is <code>TRUE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>enabled</i> The value must be <code>TRUE</code> or <code>FALSE</code>. If <code>TRUE</code>, you receive a notification when the alarm state changes. You must choose to acknowledge the notification before the alarm state can return to <code>NORMAL</code>. If <code>FALSE</code>, you won't receive notifications. The alarm automatically changes to the <code>NORMAL</code> state when the input property value returns to the specified range.<br/>
        :return: status:  The status of the alarm model. The status can be one of the following values: <ul> <li>  <code>ACTIVE</code> - The alarm model is active and it's ready to evaluate data. </li> <li>  <code>ACTIVATING</code> - AWS IoT Events is activating your alarm model. Activating an alarm model can take up to a few minutes. </li> <li>  <code>INACTIVE</code> - The alarm model is inactive, so it isn't ready to evaluate data. Check your alarm model information and update the alarm model. </li> <li>  <code>FAILED</code> - You couldn't create or update the alarm model. Check your alarm model information and try again. </li> </ul><br/>lastUpdateTime:  The time the alarm model was last updated, in the Unix epoch format.<br/>alarmModelVersion:  The version of the alarm model.<br/>alarmModelArn:  The ARN of the alarm model. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs)</a> in the <i>AWS General Reference</i>.<br/>creationTime:  The time the alarm model was created, in the Unix epoch format.<br/>        """
        pass

    def create_detector_model(self, roleArn: str, detectorModelDefinition: DetectorModelDefinition, detectorModelName: str, detectorModelDescription: str=None, key: str=None, tags: List[Tag]=None, evaluationMethod: str=None) -> CreateDetectorModelResponse:
        r"""Creates a detector model.

        :param self:
        :param evaluationMethod:  Information about the order in which events are evaluated and how actions are executed. <br/>tags:  Metadata that can be used to manage the detector model.<br/>roleArn:  The ARN of the role that grants permission to AWS IoT Events to perform its operations.<br/>key:  The input attribute key used to identify a device or system to create a detector (an instance of the detector model) and then to route each input received to the appropriate detector (instance). This parameter uses a JSON-path expression in the message payload of each input to specify the attribute-value pair that is used to identify the device associated with the input.<br/>detectorModelDescription:  A brief description of the detector model.<br/>detectorModelDefinition:  Information that defines how the detectors operate.:<br/>detectorModelName:  The name of the detector model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>initialStateName</i> The state that is entered at the creation of each detector (instance).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>states</i> Information about the states of the detector.<br/>
        :return: detectorModelConfiguration:  Information about how the detector model is configured.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>evaluationMethod</i> Information about the order in which events are evaluated and how actions are executed. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>key</i> The value used to identify a detector instance. When a device or system sends input, a new detector instance with a unique key value is created. AWS IoT Events can continue to route input to its corresponding detector instance based on this identifying information.  This parameter uses a JSON-path expression to select the attribute-value pair in the message payload that is used for identification. To route the message to the correct detector instance, the device must send a message payload that contains the same attribute-value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the detector model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdateTime</i> The time the detector model was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationTime</i> The time the detector model was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>roleArn</i> The ARN of the role that grants permission to AWS IoT Events to perform its operations.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>detectorModelArn</i> The ARN of the detector model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>detectorModelDescription</i> A brief description of the detector model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>detectorModelVersion</i> The version of the detector model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>detectorModelName</i> The name of the detector model.<br/>        """
        pass

    def create_input(self, inputDefinition: InputDefinition, inputName: str, inputDescription: str=None, tags: List[Tag]=None) -> CreateInputResponse:
        r"""Creates an input.

        :param self:
        :param tags:  Metadata that can be used to manage the input.<br/>inputDefinition:  The definition of the input.:<br/>inputDescription:  A brief description of the input.<br/>inputName:  The name you want to give to the input.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>attributes</i> The attributes from the JSON payload that are made available by the input. Inputs are derived from messages sent to the AWS IoT Events system using <code>BatchPutMessage</code>. Each such message contains a JSON payload, and those attributes (and their paired values) specified here are available for use in the <code>condition</code> expressions used by detectors that monitor this input. <br/>
        :return: inputConfiguration:  Information about the configuration of the input.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the input.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdateTime</i> The last time the input was updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationTime</i> The time the input was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>inputArn</i> The ARN of the input.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>inputDescription</i> A brief description of the input.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>inputName</i> The name of the input.<br/>        """
        pass

    def delete_alarm_model(self, alarmModelName: str) -> DeleteAlarmModelResponse:
        r"""Deletes an alarm model. Any alarm instances that were created based on this alarm model are also deleted. This action can't be undone.

        :param self:
        :param alarmModelName:  The name of the alarm model.<br/>
        :return:         """
        pass

    def delete_detector_model(self, detectorModelName: str) -> DeleteDetectorModelResponse:
        r"""Deletes a detector model. Any active instances of the detector model are also deleted.

        :param self:
        :param detectorModelName:  The name of the detector model to be deleted.<br/>
        :return:         """
        pass

    def delete_input(self, inputName: str) -> DeleteInputResponse:
        r"""Deletes an input.

        :param self:
        :param inputName:  The name of the input to delete.<br/>
        :return:         """
        pass

    def describe_alarm_model(self, alarmModelName: str, alarmModelVersion: str=None) -> DescribeAlarmModelResponse:
        r"""Retrieves information about an alarm model. If you don't specify a value for the <code>alarmModelVersion</code> parameter, the latest version is returned.

        :param self:
        :param alarmModelVersion:  The version of the alarm model.<br/>alarmModelName:  The name of the alarm model.<br/>
        :return: alarmCapabilities:  Contains the configuration information of alarm state changes.:<br/>alarmEventActions:  Contains information about one or more alarm actions.:<br/>alarmNotification:  Contains information about one or more notification actions.:<br/>alarmRule:  Defines when your alarm is invoked.:<br/>severity:  A non-negative integer that reflects the severity level of the alarm.<br/>key:  An input attribute used as a key to create an alarm. AWS IoT Events routes <a href="https://docs.aws.amazon.com/iotevents/latest/apireference/API_Input.html">inputs</a> associated with this key to the alarm.<br/>roleArn:  The ARN of the IAM role that allows the alarm to perform actions and access AWS resources. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs)</a> in the <i>AWS General Reference</i>.<br/>alarmModelDescription:  The description of the alarm model.<br/>alarmModelName:  The name of the alarm model.<br/>statusMessage:   Contains information about the status of the alarm model. <br/>status:  The status of the alarm model. The status can be one of the following values: <ul> <li>  <code>ACTIVE</code> - The alarm model is active and it's ready to evaluate data. </li> <li>  <code>ACTIVATING</code> - AWS IoT Events is activating your alarm model. Activating an alarm model can take up to a few minutes. </li> <li>  <code>INACTIVE</code> - The alarm model is inactive, so it isn't ready to evaluate data. Check your alarm model information and update the alarm model. </li> <li>  <code>FAILED</code> - You couldn't create or update the alarm model. Check your alarm model information and try again. </li> </ul><br/>lastUpdateTime:  The time the alarm model was last updated, in the Unix epoch format.<br/>alarmModelVersion:  The version of the alarm model.<br/>alarmModelArn:  The ARN of the alarm model. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs)</a> in the <i>AWS General Reference</i>.<br/>creationTime:  The time the alarm model was created, in the Unix epoch format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>simpleRule</i> A rule that compares an input property value to a threshold value with a comparison operator.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>simpleRule</b>: A rule that compares an input property value to a threshold value with a comparison operator.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>threshold</i> The value on the right side of the comparison operator. You can enter a number or specify an AWS IoT Events input attribute.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>comparisonOperator</i> The comparison operator.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>inputProperty</i> The value on the left side of the comparison operator. You can specify an AWS IoT Events input attribute as an input property.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>notificationActions</i> Contains the notification settings of an alarm model. The settings apply to all alarms that were created based on this alarm model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>alarmActions</i> Specifies one or more supported actions to receive notifications when the alarm state changes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>acknowledgeFlow</i> Specifies whether to get notified for alarm state changes.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>acknowledgeFlow</b>: Specifies whether to get notified for alarm state changes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>initializationConfiguration</i> Specifies the default alarm state. The configuration applies to all alarms that were created based on this alarm model.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>initializationConfiguration</b>: Specifies the default alarm state. The configuration applies to all alarms that were created based on this alarm model.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>disabledOnInitialization</i> The value must be <code>TRUE</code> or <code>FALSE</code>. If <code>FALSE</code>, all alarm instances created based on the alarm model are activated. The default value is <code>TRUE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>enabled</i> The value must be <code>TRUE</code> or <code>FALSE</code>. If <code>TRUE</code>, you receive a notification when the alarm state changes. You must choose to acknowledge the notification before the alarm state can return to <code>NORMAL</code>. If <code>FALSE</code>, you won't receive notifications. The alarm automatically changes to the <code>NORMAL</code> state when the input property value returns to the specified range.<br/>        """
        pass

    def describe_detector_model(self, detectorModelName: str, detectorModelVersion: str=None) -> DescribeDetectorModelResponse:
        r"""Describes a detector model. If the <code>version</code> parameter is not specified, information about the latest version is returned.

        :param self:
        :param detectorModelVersion:  The version of the detector model.<br/>detectorModelName:  The name of the detector model.<br/>
        :return: detectorModel:  Information about the detector model.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>detectorModelConfiguration</i> Information about how the detector is configured.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>detectorModelConfiguration</b>: Information about how the detector is configured.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>detectorModelDefinition</i> Information that defines how a detector operates.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>detectorModelDefinition</b>: Information that defines how a detector operates.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>initialStateName</i> The state that is entered at the creation of each detector (instance).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>states</i> Information about the states of the detector.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>evaluationMethod</i> Information about the order in which events are evaluated and how actions are executed. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>key</i> The value used to identify a detector instance. When a device or system sends input, a new detector instance with a unique key value is created. AWS IoT Events can continue to route input to its corresponding detector instance based on this identifying information.  This parameter uses a JSON-path expression to select the attribute-value pair in the message payload that is used for identification. To route the message to the correct detector instance, the device must send a message payload that contains the same attribute-value.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the detector model.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdateTime</i> The time the detector model was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>creationTime</i> The time the detector model was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>roleArn</i> The ARN of the role that grants permission to AWS IoT Events to perform its operations.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>detectorModelArn</i> The ARN of the detector model.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>detectorModelDescription</i> A brief description of the detector model.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>detectorModelVersion</i> The version of the detector model.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>detectorModelName</i> The name of the detector model.<br/>        """
        pass

    def describe_detector_model_analysis(self, analysisId: str) -> DescribeDetectorModelAnalysisResponse:
        r"""Retrieves runtime information about a detector model analysis. <note> After AWS IoT Events starts analyzing your detector model, you have up to 24 hours to retrieve the analysis results. </note>

        :param self:
        :param analysisId:  The ID of the analysis result that you want to retrieve.<br/>
        :return: status:  The status of the analysis activity. The status can be one of the following values: <ul> <li>  <code>RUNNING</code> - AWS IoT Events is analyzing your detector model. This process can take several minutes to complete. </li> <li>  <code>COMPLETE</code> - AWS IoT Events finished analyzing your detector model. </li> <li>  <code>FAILED</code> - AWS IoT Events couldn't analyze your detector model. Try again later. </li> </ul><br/>        """
        pass

    def describe_input(self, inputName: str) -> DescribeInputResponse:
        r"""Describes an input.

        :param self:
        :param inputName:  The name of the input.<br/>
        :return: input:  Information about the input.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>inputDefinition</i> The definition of the input.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>inputDefinition</b>: The definition of the input.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>inputConfiguration</i> Information about the configuration of an input.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>inputConfiguration</b>: Information about the configuration of an input.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the input.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdateTime</i> The last time the input was updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>creationTime</i> The time the input was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>inputArn</i> The ARN of the input.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>inputDescription</i> A brief description of the input.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>inputName</i> The name of the input.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>attributes</i> The attributes from the JSON payload that are made available by the input. Inputs are derived from messages sent to the AWS IoT Events system using <code>BatchPutMessage</code>. Each such message contains a JSON payload, and those attributes (and their paired values) specified here are available for use in the <code>condition</code> expressions used by detectors that monitor this input. <br/>        """
        pass

    def describe_logging_options(self) -> DescribeLoggingOptionsResponse:
        r"""Retrieves the current settings of the AWS IoT Events logging options.

        :param self:
        :param 
        :return: loggingOptions:  The current settings of the AWS IoT Events logging options.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>detectorDebugOptions</i> Information that identifies those detector models and their detectors (instances) for which the logging level is given.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>enabled</i> If TRUE, logging is enabled for AWS IoT Events.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>level</i> The logging level.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>roleArn</i> The ARN of the role that grants permission to AWS IoT Events to perform logging.<br/>        """
        pass

    def get_detector_model_analysis_results(self, analysisId: str, nextToken: str=None, maxResults: int=None) -> GetDetectorModelAnalysisResultsResponse:
        r"""Retrieves one or more analysis results of the detector model. <note> After AWS IoT Events starts analyzing your detector model, you have up to 24 hours to retrieve the analysis results. </note>

        :param self:
        :param maxResults:  The maximum number of results to be returned per request.<br/>nextToken:  The token that you can use to return the next set of results.<br/>analysisId:  The ID of the analysis result that you want to retrieve.<br/>
        :return: nextToken:  The token that you can use to return the next set of results, or <code>null</code> if there are no more results.<br/>analysisResults:  Contains information about one or more analysis results.<br/>        """
        pass

    def list_alarm_model_versions(self, alarmModelName: str, nextToken: str=None, maxResults: int=None) -> ListAlarmModelVersionsResponse:
        r"""Lists all the versions of an alarm model. The operation returns only the metadata associated with each alarm model version.

        :param self:
        :param maxResults:  The maximum number of results to be returned per request.<br/>nextToken:  The token that you can use to return the next set of results.<br/>alarmModelName:  The name of the alarm model.<br/>
        :return: nextToken:  The token that you can use to return the next set of results, or <code>null</code> if there are no more results.<br/>alarmModelVersionSummaries:  A list that summarizes each alarm model version.<br/>        """
        pass

    def list_alarm_models(self, nextToken: str=None, maxResults: int=None) -> ListAlarmModelsResponse:
        r"""Lists the alarm models that you created. The operation returns only the metadata associated with each alarm model.

        :param self:
        :param maxResults:  The maximum number of results to be returned per request.<br/>nextToken:  The token that you can use to return the next set of results.<br/>
        :return: nextToken:  The token that you can use to return the next set of results, or <code>null</code> if there are no more results.<br/>alarmModelSummaries:  A list that summarizes each alarm model.<br/>        """
        pass

    def list_detector_model_versions(self, detectorModelName: str, nextToken: str=None, maxResults: int=None) -> ListDetectorModelVersionsResponse:
        r"""Lists all the versions of a detector model. Only the metadata associated with each detector model version is returned.

        :param self:
        :param maxResults:  The maximum number of results to be returned per request.<br/>nextToken:  The token that you can use to return the next set of results.<br/>detectorModelName:  The name of the detector model whose versions are returned.<br/>
        :return: nextToken:  The token that you can use to return the next set of results, or <code>null</code> if there are no more results.<br/>detectorModelVersionSummaries:  Summary information about the detector model versions.<br/>        """
        pass

    def list_detector_models(self, nextToken: str=None, maxResults: int=None) -> ListDetectorModelsResponse:
        r"""Lists the detector models you have created. Only the metadata associated with each detector model is returned.

        :param self:
        :param maxResults:  The maximum number of results to be returned per request.<br/>nextToken:  The token that you can use to return the next set of results.<br/>
        :return: nextToken:  The token that you can use to return the next set of results, or <code>null</code> if there are no more results.<br/>detectorModelSummaries:  Summary information about the detector models.<br/>        """
        pass

    def list_input_routings(self, inputIdentifier: InputIdentifier, maxResults: int=None, nextToken: str=None) -> ListInputRoutingsResponse:
        r""" Lists one or more input routings. 

        :param self:
        :param nextToken:   The token that you can use to return the next set of results. <br/>maxResults:   The maximum number of results to be returned per request. <br/>inputIdentifier:   The identifer of the routed input. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>iotSiteWiseInputIdentifier</i>  The identifer of the input routed from AWS IoT SiteWise. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>iotSiteWiseInputIdentifier</b>:  The identifer of the input routed from AWS IoT SiteWise. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>iotEventsInputIdentifier</i>  The identifier of the input routed to AWS IoT Events. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>iotEventsInputIdentifier</b>:  The identifier of the input routed to AWS IoT Events. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>inputName</i>  The name of the input routed to AWS IoT Events. <br/> The identifier of the AWS IoT SiteWise asset model property. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>iotSiteWiseAssetModelPropertyIdentifier</b>:  The identifier of the AWS IoT SiteWise asset model property. 
        :return: nextToken:   The token that you can use to return the next set of results, or <code>null</code> if there are no more results. <br/>routedResources:   Summary information about the routed resources. <br/>        """
        pass

    def list_inputs(self, nextToken: str=None, maxResults: int=None) -> ListInputsResponse:
        r"""Lists the inputs you have created.

        :param self:
        :param maxResults:  The maximum number of results to be returned per request.<br/>nextToken:  The token that you can use to return the next set of results.<br/>
        :return: nextToken:  The token that you can use to return the next set of results, or <code>null</code> if there are no more results.<br/>inputSummaries:  Summary information about the inputs.<br/>        """
        pass

    def list_tags_for_resource(self, resourceArn: str) -> ListTagsForResourceResponse:
        r"""Lists the tags (metadata) you have assigned to the resource.

        :param self:
        :param resourceArn:  The ARN of the resource.<br/>
        :return: tags:  The list of tags assigned to the resource.<br/>        """
        pass

    def put_logging_options(self, loggingOptions: LoggingOptions):
        r"""Sets or updates the AWS IoT Events logging options. If you update the value of any <code>loggingOptions</code> field, it takes up to one minute for the change to take effect. If you change the policy attached to the role you specified in the <code>roleArn</code> field (for example, to correct an invalid policy), it takes up to five minutes for that change to take effect.

        :param self:
        :param loggingOptions:  The new values of the AWS IoT Events logging options.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>detectorDebugOptions</i> Information that identifies those detector models and their detectors (instances) for which the logging level is given.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>enabled</i> If TRUE, logging is enabled for AWS IoT Events.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>level</i> The logging level.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>roleArn</i> The ARN of the role that grants permission to AWS IoT Events to perform logging.<br/>
        :return:         """
        pass

    def start_detector_model_analysis(self, detectorModelDefinition: DetectorModelDefinition) -> StartDetectorModelAnalysisResponse:
        r"""Performs an analysis of your detector model. For more information, see <a href="https://docs.aws.amazon.com/iotevents/latest/developerguide/iotevents-analyze-api.html">Troubleshooting a detector model</a> in the <i>AWS IoT Events Developer Guide</i>.

        :param self:
        :param detectorModelDefinition:  Information that defines how a detector operates.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>initialStateName</i> The state that is entered at the creation of each detector (instance).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>states</i> Information about the states of the detector.<br/>
        :return: analysisId:  The ID that you can use to retrieve the analysis result.<br/>        """
        pass

    def tag_resource(self, tags: List[Tag], resourceArn: str) -> TagResourceResponse:
        r"""Adds to or modifies the tags of the given resource. Tags are metadata that can be used to manage a resource.

        :param self:
        :param tags:  The new or modified tags for the resource.<br/>resourceArn:  The ARN of the resource.<br/>
        :return:         """
        pass

    def untag_resource(self, tagKeys: List[TagKey], resourceArn: str) -> UntagResourceResponse:
        r"""Removes the given tags (metadata) from the resource.

        :param self:
        :param tagKeys:  A list of the keys of the tags to be removed from the resource.<br/>resourceArn:  The ARN of the resource.<br/>
        :return:         """
        pass

    def update_alarm_model(self, alarmRule: AlarmRule, roleArn: str, alarmModelName: str, alarmModelDescription: str=None, severity: int=None, alarmNotification: AlarmNotification=None, alarmEventActions: AlarmEventActions=None, alarmCapabilities: AlarmCapabilities=None) -> UpdateAlarmModelResponse:
        r"""Updates an alarm model. Any alarms that were created based on the previous version are deleted and then created again as new data arrives.

        :param self:
        :param alarmCapabilities:  Contains the configuration information of alarm state changes.:<br/>alarmEventActions:  Contains information about one or more alarm actions.:<br/>alarmNotification:  Contains information about one or more notification actions.:<br/>alarmRule:  Defines when your alarm is invoked.:<br/>severity:  A non-negative integer that reflects the severity level of the alarm.<br/>roleArn:  The ARN of the IAM role that allows the alarm to perform actions and access AWS resources. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs)</a> in the <i>AWS General Reference</i>.<br/>alarmModelDescription:  The description of the alarm model.<br/>alarmModelName:  The name of the alarm model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>simpleRule</i> A rule that compares an input property value to a threshold value with a comparison operator.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>simpleRule</b>: A rule that compares an input property value to a threshold value with a comparison operator.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>threshold</i> The value on the right side of the comparison operator. You can enter a number or specify an AWS IoT Events input attribute.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>comparisonOperator</i> The comparison operator.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>inputProperty</i> The value on the left side of the comparison operator. You can specify an AWS IoT Events input attribute as an input property.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>notificationActions</i> Contains the notification settings of an alarm model. The settings apply to all alarms that were created based on this alarm model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>alarmActions</i> Specifies one or more supported actions to receive notifications when the alarm state changes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>acknowledgeFlow</i> Specifies whether to get notified for alarm state changes.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>acknowledgeFlow</b>: Specifies whether to get notified for alarm state changes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>initializationConfiguration</i> Specifies the default alarm state. The configuration applies to all alarms that were created based on this alarm model.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>initializationConfiguration</b>: Specifies the default alarm state. The configuration applies to all alarms that were created based on this alarm model.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>disabledOnInitialization</i> The value must be <code>TRUE</code> or <code>FALSE</code>. If <code>FALSE</code>, all alarm instances created based on the alarm model are activated. The default value is <code>TRUE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>enabled</i> The value must be <code>TRUE</code> or <code>FALSE</code>. If <code>TRUE</code>, you receive a notification when the alarm state changes. You must choose to acknowledge the notification before the alarm state can return to <code>NORMAL</code>. If <code>FALSE</code>, you won't receive notifications. The alarm automatically changes to the <code>NORMAL</code> state when the input property value returns to the specified range.<br/>
        :return: status:  The status of the alarm model. The status can be one of the following values: <ul> <li>  <code>ACTIVE</code> - The alarm model is active and it's ready to evaluate data. </li> <li>  <code>ACTIVATING</code> - AWS IoT Events is activating your alarm model. Activating an alarm model can take up to a few minutes. </li> <li>  <code>INACTIVE</code> - The alarm model is inactive, so it isn't ready to evaluate data. Check your alarm model information and update the alarm model. </li> <li>  <code>FAILED</code> - You couldn't create or update the alarm model. Check your alarm model information and try again. </li> </ul><br/>lastUpdateTime:  The time the alarm model was last updated, in the Unix epoch format.<br/>alarmModelVersion:  The version of the alarm model.<br/>alarmModelArn:  The ARN of the alarm model. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs)</a> in the <i>AWS General Reference</i>.<br/>creationTime:  The time the alarm model was created, in the Unix epoch format.<br/>        """
        pass

    def update_detector_model(self, roleArn: str, detectorModelDefinition: DetectorModelDefinition, detectorModelName: str, detectorModelDescription: str=None, evaluationMethod: str=None) -> UpdateDetectorModelResponse:
        r"""Updates a detector model. Detectors (instances) spawned by the previous version are deleted and then re-created as new inputs arrive.

        :param self:
        :param evaluationMethod:  Information about the order in which events are evaluated and how actions are executed. <br/>roleArn:  The ARN of the role that grants permission to AWS IoT Events to perform its operations.<br/>detectorModelDescription:  A brief description of the detector model.<br/>detectorModelDefinition:  Information that defines how a detector operates.:<br/>detectorModelName:  The name of the detector model that is updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>initialStateName</i> The state that is entered at the creation of each detector (instance).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>states</i> Information about the states of the detector.<br/>
        :return: detectorModelConfiguration:  Information about how the detector model is configured.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>evaluationMethod</i> Information about the order in which events are evaluated and how actions are executed. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>key</i> The value used to identify a detector instance. When a device or system sends input, a new detector instance with a unique key value is created. AWS IoT Events can continue to route input to its corresponding detector instance based on this identifying information.  This parameter uses a JSON-path expression to select the attribute-value pair in the message payload that is used for identification. To route the message to the correct detector instance, the device must send a message payload that contains the same attribute-value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the detector model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdateTime</i> The time the detector model was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationTime</i> The time the detector model was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>roleArn</i> The ARN of the role that grants permission to AWS IoT Events to perform its operations.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>detectorModelArn</i> The ARN of the detector model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>detectorModelDescription</i> A brief description of the detector model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>detectorModelVersion</i> The version of the detector model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>detectorModelName</i> The name of the detector model.<br/>        """
        pass

    def update_input(self, inputDefinition: InputDefinition, inputName: str, inputDescription: str=None) -> UpdateInputResponse:
        r"""Updates an input.

        :param self:
        :param inputDefinition:  The definition of the input.:<br/>inputDescription:  A brief description of the input.<br/>inputName:  The name of the input you want to update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>attributes</i> The attributes from the JSON payload that are made available by the input. Inputs are derived from messages sent to the AWS IoT Events system using <code>BatchPutMessage</code>. Each such message contains a JSON payload, and those attributes (and their paired values) specified here are available for use in the <code>condition</code> expressions used by detectors that monitor this input. <br/>
        :return: inputConfiguration:  Information about the configuration of the input.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the input.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdateTime</i> The last time the input was updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationTime</i> The time the input was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>inputArn</i> The ARN of the input.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>inputDescription</i> A brief description of the input.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>inputName</i> The name of the input.<br/>        """
        pass





class IoTEventsData(BaseClient):
    r"""AWS IoT Events monitors your equipment or device fleets for failures or changes in operation, and triggers actions when such events occur. You can use AWS IoT Events Data API commands to send inputs to detectors, list detectors, and view or update a detector's status.  For more information, see <a href="https://docs.aws.amazon.com/iotevents/latest/developerguide/what-is-iotevents.html">What is AWS IoT Events?</a> in the <i>AWS IoT Events Developer Guide</i>."""




    class BatchAcknowledgeAlarmRequest(Mapping):
        pass
    
    class BatchAcknowledgeAlarmResponse(Mapping):
        pass
    
    class AcknowledgeAlarmActionRequest(Mapping):
        pass
    
    class BatchDisableAlarmRequest(Mapping):
        pass
    
    class BatchDisableAlarmResponse(Mapping):
        pass
    
    class DisableAlarmActionRequest(Mapping):
        pass
    
    class BatchEnableAlarmRequest(Mapping):
        pass
    
    class BatchEnableAlarmResponse(Mapping):
        pass
    
    class EnableAlarmActionRequest(Mapping):
        pass
    
    class BatchPutMessageRequest(Mapping):
        pass
    
    class BatchPutMessageResponse(Mapping):
        pass
    
    class Message(Mapping):
        pass
    
    class BatchResetAlarmRequest(Mapping):
        pass
    
    class BatchResetAlarmResponse(Mapping):
        pass
    
    class ResetAlarmActionRequest(Mapping):
        pass
    
    class BatchSnoozeAlarmRequest(Mapping):
        pass
    
    class BatchSnoozeAlarmResponse(Mapping):
        pass
    
    class SnoozeAlarmActionRequest(Mapping):
        pass
    
    class BatchUpdateDetectorRequest(Mapping):
        pass
    
    class BatchUpdateDetectorResponse(Mapping):
        pass
    
    class UpdateDetectorRequest(Mapping):
        pass
    
    class DescribeAlarmRequest(Mapping):
        pass
    
    class DescribeAlarmResponse(Mapping):
        pass
    
    class DescribeDetectorRequest(Mapping):
        pass
    
    class DescribeDetectorResponse(Mapping):
        pass
    
    class ListAlarmsRequest(Mapping):
        pass
    
    class ListAlarmsResponse(Mapping):
        pass
    
    class ListDetectorsRequest(Mapping):
        pass
    
    class ListDetectorsResponse(Mapping):
        pass
    
    def batch_acknowledge_alarm(self, acknowledgeActionRequests: List[AcknowledgeAlarmActionRequest]) -> BatchAcknowledgeAlarmResponse:
        r"""Acknowledges one or more alarms. The alarms change to the <code>ACKNOWLEDGED</code> state after you acknowledge them.

        :param self:
        :param acknowledgeActionRequests:  The list of acknowledge action requests. You can specify up to 10 requests per operation.<br/>
        :return: errorEntries:  A list of errors associated with the request, or <code>null</code> if there are no errors. Each error entry contains an entry ID that helps you identify the entry that failed.<br/>        """
        pass

    def batch_disable_alarm(self, disableActionRequests: List[DisableAlarmActionRequest]) -> BatchDisableAlarmResponse:
        r"""Disables one or more alarms. The alarms change to the <code>DISABLED</code> state after you disable them.

        :param self:
        :param disableActionRequests:  The list of disable action requests. You can specify up to 10 requests per operation.<br/>
        :return: errorEntries:  A list of errors associated with the request, or <code>null</code> if there are no errors. Each error entry contains an entry ID that helps you identify the entry that failed.<br/>        """
        pass

    def batch_enable_alarm(self, enableActionRequests: List[EnableAlarmActionRequest]) -> BatchEnableAlarmResponse:
        r"""Enables one or more alarms. The alarms change to the <code>NORMAL</code> state after you enable them.

        :param self:
        :param enableActionRequests:  The list of enable action requests. You can specify up to 10 requests per operation.<br/>
        :return: errorEntries:  A list of errors associated with the request, or <code>null</code> if there are no errors. Each error entry contains an entry ID that helps you identify the entry that failed.<br/>        """
        pass

    def batch_put_message(self, messages: List[Message]) -> BatchPutMessageResponse:
        r"""Sends a set of messages to the AWS IoT Events system. Each message payload is transformed into the input you specify (<code>"inputName"</code>) and ingested into any detectors that monitor that input. If multiple messages are sent, the order in which the messages are processed isn't guaranteed. To guarantee ordering, you must send messages one at a time and wait for a successful response.

        :param self:
        :param messages:  The list of messages to send. Each message has the following format: <code>'{ "messageId": "string", "inputName": "string", "payload": "string"}'</code> <br/>
        :return: BatchPutMessageErrorEntries:  A list of any errors encountered when sending the messages.<br/>        """
        pass

    def batch_reset_alarm(self, resetActionRequests: List[ResetAlarmActionRequest]) -> BatchResetAlarmResponse:
        r"""Resets one or more alarms. The alarms return to the <code>NORMAL</code> state after you reset them.

        :param self:
        :param resetActionRequests:  The list of reset action requests. You can specify up to 10 requests per operation.<br/>
        :return: errorEntries:  A list of errors associated with the request, or <code>null</code> if there are no errors. Each error entry contains an entry ID that helps you identify the entry that failed.<br/>        """
        pass

    def batch_snooze_alarm(self, snoozeActionRequests: List[SnoozeAlarmActionRequest]) -> BatchSnoozeAlarmResponse:
        r"""Changes one or more alarms to the snooze mode. The alarms change to the <code>SNOOZE_DISABLED</code> state after you set them to the snooze mode.

        :param self:
        :param snoozeActionRequests:  The list of snooze action requests. You can specify up to 10 requests per operation.<br/>
        :return: errorEntries:  A list of errors associated with the request, or <code>null</code> if there are no errors. Each error entry contains an entry ID that helps you identify the entry that failed.<br/>        """
        pass

    def batch_update_detector(self, detectors: List[UpdateDetectorRequest]) -> BatchUpdateDetectorResponse:
        r"""Updates the state, variable values, and timer settings of one or more detectors (instances) of a specified detector model.

        :param self:
        :param detectors:  The list of detectors (instances) to update, along with the values to update.<br/>
        :return: batchUpdateDetectorErrorEntries:  A list of those detector updates that resulted in errors. (If an error is listed here, the specific update did not occur.)<br/>        """
        pass

    def describe_alarm(self, alarmModelName: str, keyValue: str=None) -> DescribeAlarmResponse:
        r"""Retrieves information about an alarm.

        :param self:
        :param keyValue:  The value of the key used as a filter to select only the alarms associated with the <a href="https://docs.aws.amazon.com/iotevents/latest/apireference/API_CreateAlarmModel.html#iotevents-CreateAlarmModel-request-key">key</a>.<br/>alarmModelName:  The name of the alarm model.<br/>
        :return: alarm:  Contains information about an alarm.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdateTime</i> The time the alarm was last updated, in the Unix epoch format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationTime</i> The time the alarm was created, in the Unix epoch format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>severity</i> A non-negative integer that reflects the severity level of the alarm.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>alarmState</i> Contains information about the current state of the alarm.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>alarmState</b>: Contains information about the current state of the alarm.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>keyValue</i> The value of the key used as a filter to select only the alarms associated with the <a href="https://docs.aws.amazon.com/iotevents/latest/apireference/API_CreateAlarmModel.html#iotevents-CreateAlarmModel-request-key">key</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>alarmModelVersion</i> The version of the alarm model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>alarmModelName</i> The name of the alarm model.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>stateName</i> The name of the alarm state. The state name can be one of the following values: <ul> <li>  <code>DISABLED</code> - When the alarm is in the <code>DISABLED</code> state, it isn't ready to evaluate data. To enable the alarm, you must change the alarm to the <code>NORMAL</code> state. </li> <li>  <code>NORMAL</code> - When the alarm is in the <code>NORMAL</code> state, it's ready to evaluate data. </li> <li>  <code>ACTIVE</code> - If the alarm is in the <code>ACTIVE</code> state, the alarm is invoked. </li> <li>  <code>ACKNOWLEDGED</code> - When the alarm is in the <code>ACKNOWLEDGED</code> state, the alarm was invoked and you acknowledged the alarm. </li> <li>  <code>SNOOZE_DISABLED</code> - When the alarm is in the <code>SNOOZE_DISABLED</code> state, the alarm is disabled for a specified period of time. After the snooze time, the alarm automatically changes to the <code>NORMAL</code> state.  </li> <li>  <code>LATCHED</code> - When the alarm is in the <code>LATCHED</code> state, the alarm was invoked. However, the data that the alarm is currently evaluating is within the specified range. To change the alarm to the <code>NORMAL</code> state, you must acknowledge the alarm. </li> </ul><br/>Information needed to evaluate data.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ruleEvaluation</b>: Information needed to evaluate data.        """
        pass

    def describe_detector(self, detectorModelName: str, keyValue: str=None) -> DescribeDetectorResponse:
        r"""Returns information about the specified detector (instance).

        :param self:
        :param keyValue:  A filter used to limit results to detectors (instances) created because of the given key ID.<br/>detectorModelName:  The name of the detector model whose detectors (instances) you want information about.<br/>
        :return: detector:  Information about the detector (instance).:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdateTime</i> The time the detector (instance) was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationTime</i> The time the detector (instance) was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>state</i> The current state of the detector (instance).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>state</b>: The current state of the detector (instance).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>detectorModelVersion</i> The version of the detector model that created this detector (instance).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>keyValue</i> The value of the key (identifying the device or system) that caused the creation of this detector (instance).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>detectorModelName</i> The name of the detector model that created this detector (instance).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>timers</i> The current state of the detector's timers.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>variables</i> The current values of the detector's variables.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>stateName</i> The name of the state.<br/>        """
        pass

    def list_alarms(self, alarmModelName: str, nextToken: str=None, maxResults: int=None) -> ListAlarmsResponse:
        r"""Lists one or more alarms. The operation returns only the metadata associated with each alarm.

        :param self:
        :param maxResults:  The maximum number of results to be returned per request.<br/>nextToken:  The token that you can use to return the next set of results.<br/>alarmModelName:  The name of the alarm model.<br/>
        :return: nextToken:  The token that you can use to return the next set of results, or <code>null</code> if there are no more results.<br/>alarmSummaries:  A list that summarizes each alarm.<br/>        """
        pass

    def list_detectors(self, detectorModelName: str, stateName: str=None, nextToken: str=None, maxResults: int=None) -> ListDetectorsResponse:
        r"""Lists detectors (the instances of a detector model).

        :param self:
        :param maxResults:  The maximum number of results to be returned per request.<br/>nextToken:  The token that you can use to return the next set of results.<br/>stateName:  A filter that limits results to those detectors (instances) in the given state.<br/>detectorModelName:  The name of the detector model whose detectors (instances) are listed.<br/>
        :return: nextToken:  The token that you can use to return the next set of results, or <code>null</code> if there are no more results.<br/>detectorSummaries:  A list of summary information about the detectors (instances).<br/>        """
        pass





class IoTFleetHub(BaseClient):
    r"""With Fleet Hub for AWS IoT Device Management you can build stand-alone web applications for monitoring the health of your device fleets. <note> Fleet Hub for AWS IoT Device Management is in public preview and is subject to change. </note>"""


    class ListApplicationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_applications` for valid parameters"""
            pass


    class CreateApplicationRequest(Mapping):
        pass
    
    class CreateApplicationResponse(Mapping):
        pass
    
    class TagMap(object):
        pass
    
    class DeleteApplicationRequest(Mapping):
        pass
    
    class DeleteApplicationResponse(Mapping):
        pass
    
    class DescribeApplicationRequest(Mapping):
        pass
    
    class DescribeApplicationResponse(Mapping):
        pass
    
    class ListApplicationsRequest(Mapping):
        pass
    
    class ListApplicationsResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateApplicationRequest(Mapping):
        pass
    
    class UpdateApplicationResponse(Mapping):
        pass
    
    def create_application(self, roleArn: str, applicationName: str, applicationDescription: str=None, clientToken: str=None, tags: TagMap=None) -> CreateApplicationResponse:
        r"""Creates a Fleet Hub for AWS IoT Device Management web application. <note> Fleet Hub for AWS IoT Device Management is in public preview and is subject to change. </note>

        :param self:
        :param tags:  A set of key/value pairs that you can use to manage the web application resource.<br/>roleArn:  The ARN of the role that the web application assumes when it interacts with AWS IoT Core. <note> The name of the role must be in the form <code>AWSIotFleetHub_<i>random_string</i> </code>. </note><br/>clientToken:  A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.<br/>applicationDescription:  An optional description of the web application.<br/>applicationName:  The name of the web application.<br/>
        :return: applicationArn:  The ARN of the web application.<br/>applicationId:  The unique Id of the web application.<br/>        """
        pass

    def delete_application(self, applicationId: str, clientToken: str=None) -> DeleteApplicationResponse:
        r"""Deletes a Fleet Hub for AWS IoT Device Management web application. <note> Fleet Hub for AWS IoT Device Management is in public preview and is subject to change. </note>

        :param self:
        :param clientToken:  A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.<br/>applicationId:  The unique Id of the web application.<br/>
        :return:         """
        pass

    def describe_application(self, applicationId: str) -> DescribeApplicationResponse:
        r"""Gets information about a Fleet Hub for AWS IoT Device Management web application. <note> Fleet Hub for AWS IoT Device Management is in public preview and is subject to change. </note>

        :param self:
        :param applicationId:  The unique Id of the web application.<br/>
        :return: tags:  A set of key/value pairs that you can use to manage the web application resource.<br/>errorMessage:  A message indicating why the <code>DescribeApplication</code> API failed.<br/>ssoClientId:  The Id of the single sign-on client that you use to authenticate and authorize users on the web application.<br/>roleArn:  The ARN of the role that the web application assumes when it interacts with AWS IoT Core.<br/>applicationLastUpdateDate:  The date (in Unix epoch time) when the application was last updated.<br/>applicationCreationDate:  The date (in Unix epoch time) when the application was created.<br/>applicationState:  The current state of the web application.<br/>applicationUrl:  The URL of the web application.<br/>applicationDescription:  An optional description of the web application.<br/>applicationName:  The name of the web application.<br/>applicationArn:  The ARN of the web application.<br/>applicationId:  The unique Id of the web application.<br/>        """
        pass

    def list_applications(self, nextToken: str=None) -> ListApplicationsResponse:
        r"""Gets a list of Fleet Hub for AWS IoT Device Management web applications for the current account. <note> Fleet Hub for AWS IoT Device Management is in public preview and is subject to change. </note>

        :param self:
        :param nextToken:  A token used to get the next set of results.<br/>
        :return: nextToken:  A token used to get the next set of results.<br/>applicationSummaries:  An array of objects that provide summaries of information about the web applications in the list.<br/>        """
        pass

    def list_tags_for_resource(self, resourceArn: str) -> ListTagsForResourceResponse:
        r"""Lists the tags for the specified resource. <note> Fleet Hub for AWS IoT Device Management is in public preview and is subject to change. </note>

        :param self:
        :param resourceArn:  The ARN of the resource.<br/>
        :return: tags:  The list of tags assigned to the resource.<br/>        """
        pass

    def tag_resource(self, tags: TagMap, resourceArn: str) -> TagResourceResponse:
        r"""Adds to or modifies the tags of the specified resource. Tags are metadata which can be used to manage a resource. <note> Fleet Hub for AWS IoT Device Management is in public preview and is subject to change. </note>

        :param self:
        :param tags:  The new or modified tags for the resource.<br/>resourceArn:  The ARN of the resource.<br/>
        :return:         """
        pass

    def untag_resource(self, tagKeys: List[TagKey], resourceArn: str) -> UntagResourceResponse:
        r"""Removes the specified tags (metadata) from the resource. <note> Fleet Hub for AWS IoT Device Management is in public preview and is subject to change. </note>

        :param self:
        :param tagKeys:  A list of the keys of the tags to be removed from the resource.<br/>resourceArn:  The ARN of the resource.<br/>
        :return:         """
        pass

    def update_application(self, applicationId: str, applicationName: str=None, applicationDescription: str=None, clientToken: str=None) -> UpdateApplicationResponse:
        r"""Updates information about a Fleet Hub for a AWS IoT Device Management web application. <note> Fleet Hub for AWS IoT Device Management is in public preview and is subject to change. </note>

        :param self:
        :param clientToken:  A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.<br/>applicationDescription:  An optional description of the web application.<br/>applicationName:  The name of the web application.<br/>applicationId:  The unique Id of the web application.<br/>
        :return:         """
        pass





class IoTSecureTunneling(BaseClient):
    r"""<fullname>AWS IoT Secure Tunneling</fullname> AWS IoT Secure Tunnling enables you to create remote connections to devices deployed in the field. For more information about how AWS IoT Secure Tunneling works, see <a href="https://docs.aws.amazon.com/iot/latest/developerguide/secure-tunneling.html">AWS IoT Secure Tunneling</a>."""




    class CloseTunnelRequest(Mapping):
        pass
    
    class CloseTunnelResponse(Mapping):
        pass
    
    class DeleteFlag(object):
        pass
    
    class DescribeTunnelRequest(Mapping):
        pass
    
    class DescribeTunnelResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class ListTunnelsRequest(Mapping):
        pass
    
    class ListTunnelsResponse(Mapping):
        pass
    
    class OpenTunnelRequest(Mapping):
        pass
    
    class OpenTunnelResponse(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class DestinationConfig(Mapping):
        pass
    
    class TimeoutConfig(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    def close_tunnel(self, tunnelId: str, delete: DeleteFlag=None) -> CloseTunnelResponse:
        r"""Closes a tunnel identified by the unique tunnel id. When a <code>CloseTunnel</code> request is received, we close the WebSocket connections between the client and proxy server so no data can be transmitted.

        :param self:
        :param delete:  When set to true, AWS IoT Secure Tunneling deletes the tunnel data immediately.<br/>tunnelId:  The ID of the tunnel to close.<br/>
        :return:         """
        pass

    def describe_tunnel(self, tunnelId: str) -> DescribeTunnelResponse:
        r"""Gets information about a tunnel identified by the unique tunnel id.

        :param self:
        :param tunnelId:  The tunnel to describe.<br/>
        :return: tunnel:  The tunnel being described.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedAt</i> The last time the tunnel was updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The time when the tunnel was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> A list of tag metadata associated with the secure tunnel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>timeoutConfig</i> Timeout configuration for the tunnel.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>timeoutConfig</b>: Timeout configuration for the tunnel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>destinationConfig</i> The destination configuration that specifies the thing name of the destination device and a service name that the local proxy uses to connect to the destination application.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>destinationConfig</b>: The destination configuration that specifies the thing name of the destination device and a service name that the local proxy uses to connect to the destination application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> A description of the tunnel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>destinationConnectionState</i> The connection state of the destination application.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>destinationConnectionState</b>: The connection state of the destination application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>sourceConnectionState</i> The connection state of the source application.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>sourceConnectionState</b>: The connection state of the source application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of a tunnel. Valid values are: Open and Closed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tunnelArn</i> The Amazon Resource Name (ARN) of a tunnel. The tunnel ARN format is <code>arn:aws:tunnel:&lt;region&gt;:&lt;account-id&gt;:tunnel/&lt;tunnel-id&gt;</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tunnelId</i> A unique alpha-numeric ID that identifies a tunnel.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedAt</i> The last time the connection status was updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The connection status of the tunnel. Valid values are <code>CONNECTED</code> and <code>DISCONNECTED</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedAt</i> The last time the connection status was updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The connection status of the tunnel. Valid values are <code>CONNECTED</code> and <code>DISCONNECTED</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>services</i> A list of service names that identity the target application. The AWS IoT client running on the destination device reads this value and uses it to look up a port or an IP address and a port. The AWS IoT client instantiates the local proxy which uses this information to connect to the destination application.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>thingName</i> The name of the IoT thing to which you want to connect.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>maxLifetimeTimeoutMinutes</i> The maximum amount of time (in minutes) a tunnel can remain open. If not specified, maxLifetimeTimeoutMinutes defaults to 720 minutes. Valid values are from 1 minute to 12 hours (720 minutes) <br/>        """
        pass

    def list_tags_for_resource(self, resourceArn: str) -> ListTagsForResourceResponse:
        r"""Lists the tags for the specified resource.

        :param self:
        :param resourceArn:  The resource ARN.<br/>
        :return: tags:  The tags for the specified resource.<br/>        """
        pass

    def list_tunnels(self, thingName: str=None, maxResults: int=None, nextToken: str=None) -> ListTunnelsResponse:
        r"""List all tunnels for an AWS account. Tunnels are listed by creation time in descending order, newer tunnels will be listed before older tunnels.

        :param self:
        :param nextToken:  A token to retrieve the next set of results.<br/>maxResults:  The maximum number of results to return at once.<br/>thingName:  The name of the IoT thing associated with the destination device.<br/>
        :return: nextToken:  A token to used to retrieve the next set of results.<br/>tunnelSummaries:  A short description of the tunnels in an AWS account.<br/>        """
        pass

    def open_tunnel(self, description: str=None, tags: List[Tag]=None, destinationConfig: DestinationConfig=None, timeoutConfig: TimeoutConfig=None) -> OpenTunnelResponse:
        r"""Creates a new tunnel, and returns two client access tokens for clients to use to connect to the AWS IoT Secure Tunneling proxy server.

        :param self:
        :param timeoutConfig:  Timeout configuration for a tunnel.:<br/>destinationConfig:  The destination configuration for the OpenTunnel request.:<br/>tags:  A collection of tag metadata.<br/>description:  A short text description of the tunnel. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>services</i> A list of service names that identity the target application. The AWS IoT client running on the destination device reads this value and uses it to look up a port or an IP address and a port. The AWS IoT client instantiates the local proxy which uses this information to connect to the destination application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>thingName</i> The name of the IoT thing to which you want to connect.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>maxLifetimeTimeoutMinutes</i> The maximum amount of time (in minutes) a tunnel can remain open. If not specified, maxLifetimeTimeoutMinutes defaults to 720 minutes. Valid values are from 1 minute to 12 hours (720 minutes) <br/>
        :return: destinationAccessToken:  The access token the destination local proxy uses to connect to AWS IoT Secure Tunneling.<br/>sourceAccessToken:  The access token the source local proxy uses to connect to AWS IoT Secure Tunneling.<br/>tunnelArn:  The Amazon Resource Name for the tunnel. The tunnel ARN format is <code>arn:aws:tunnel:&lt;region&gt;:&lt;account-id&gt;:tunnel/&lt;tunnel-id&gt;</code> <br/>tunnelId:  A unique alpha-numeric tunnel ID.<br/>        """
        pass

    def tag_resource(self, tags: List[Tag], resourceArn: str) -> TagResourceResponse:
        r"""A resource tag.

        :param self:
        :param tags:  The tags for the resource.<br/>resourceArn:  The ARN of the resource.<br/>
        :return:         """
        pass

    def untag_resource(self, tagKeys: List[TagKey], resourceArn: str) -> UntagResourceResponse:
        r"""Removes a tag from a resource.

        :param self:
        :param tagKeys:  The keys of the tags to remove.<br/>resourceArn:  The resource ARN.<br/>
        :return:         """
        pass





class IoTSiteWise(BaseClient):
    r"""Welcome to the IoT SiteWise API Reference. IoT SiteWise is an Amazon Web Services service that connects <a href="https://en.wikipedia.org/wiki/Internet_of_things#Industrial_applications">Industrial Internet of Things (IIoT)</a> devices to the power of the Amazon Web Services Cloud. For more information, see the <a href="https://docs.aws.amazon.com/iot-sitewise/latest/userguide/">IoT SiteWise User Guide</a>. For information about IoT SiteWise quotas, see <a href="https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html">Quotas</a> in the <i>IoT SiteWise User Guide</i>."""

    class AssetActiveWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_asset` for valid parameters"""
            pass
    class AssetModelActiveWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_asset_model` for valid parameters"""
            pass
    class AssetModelNotExistsWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_asset_model` for valid parameters"""
            pass
    class AssetNotExistsWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_asset` for valid parameters"""
            pass
    class PortalActiveWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_portal` for valid parameters"""
            pass
    class PortalNotExistsWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_portal` for valid parameters"""
            pass


    class GetAssetPropertyAggregatesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_asset_property_aggregates` for valid parameters"""
            pass
    class GetAssetPropertyValueHistoryPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_asset_property_value_history` for valid parameters"""
            pass
    class ListAccessPoliciesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_access_policies` for valid parameters"""
            pass
    class ListAssetModelsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_asset_models` for valid parameters"""
            pass
    class ListAssetsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_assets` for valid parameters"""
            pass
    class ListAssociatedAssetsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_associated_assets` for valid parameters"""
            pass
    class ListDashboardsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_dashboards` for valid parameters"""
            pass
    class ListGatewaysPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_gateways` for valid parameters"""
            pass
    class ListPortalsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_portals` for valid parameters"""
            pass
    class ListProjectAssetsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_project_assets` for valid parameters"""
            pass
    class ListProjectsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_projects` for valid parameters"""
            pass
    class ListAssetRelationshipsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_asset_relationships` for valid parameters"""
            pass
    class GetInterpolatedAssetPropertyValuesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_interpolated_asset_property_values` for valid parameters"""
            pass


    class AssociateAssetsRequest(Mapping):
        pass
    
    class BatchAssociateProjectAssetsRequest(Mapping):
        pass
    
    class BatchAssociateProjectAssetsResponse(Mapping):
        pass
    
    class ID(object):
        pass
    
    class BatchDisassociateProjectAssetsRequest(Mapping):
        pass
    
    class BatchDisassociateProjectAssetsResponse(Mapping):
        pass
    
    class BatchPutAssetPropertyValueRequest(Mapping):
        pass
    
    class BatchPutAssetPropertyValueResponse(Mapping):
        pass
    
    class PutAssetPropertyValueEntry(Mapping):
        pass
    
    class CreateAccessPolicyRequest(Mapping):
        pass
    
    class CreateAccessPolicyResponse(Mapping):
        pass
    
    class Identity(Mapping):
        pass
    
    class Resource(Mapping):
        pass
    
    class TagMap(object):
        pass
    
    class CreateAssetRequest(Mapping):
        pass
    
    class CreateAssetResponse(Mapping):
        pass
    
    class CreateAssetModelRequest(Mapping):
        pass
    
    class CreateAssetModelResponse(Mapping):
        pass
    
    class AssetModelPropertyDefinition(Mapping):
        pass
    
    class AssetModelHierarchyDefinition(Mapping):
        pass
    
    class AssetModelCompositeModelDefinition(Mapping):
        pass
    
    class CreateDashboardRequest(Mapping):
        pass
    
    class CreateDashboardResponse(Mapping):
        pass
    
    class CreateGatewayRequest(Mapping):
        pass
    
    class CreateGatewayResponse(Mapping):
        pass
    
    class GatewayPlatform(Mapping):
        pass
    
    class CreatePortalRequest(Mapping):
        pass
    
    class CreatePortalResponse(Mapping):
        pass
    
    class ImageFile(Mapping):
        pass
    
    class Alarms(Mapping):
        pass
    
    class CreateProjectRequest(Mapping):
        pass
    
    class CreateProjectResponse(Mapping):
        pass
    
    class DeleteAccessPolicyRequest(Mapping):
        pass
    
    class DeleteAccessPolicyResponse(Mapping):
        pass
    
    class DeleteAssetRequest(Mapping):
        pass
    
    class DeleteAssetResponse(Mapping):
        pass
    
    class DeleteAssetModelRequest(Mapping):
        pass
    
    class DeleteAssetModelResponse(Mapping):
        pass
    
    class DeleteDashboardRequest(Mapping):
        pass
    
    class DeleteDashboardResponse(Mapping):
        pass
    
    class DeleteGatewayRequest(Mapping):
        pass
    
    class DeletePortalRequest(Mapping):
        pass
    
    class DeletePortalResponse(Mapping):
        pass
    
    class DeleteProjectRequest(Mapping):
        pass
    
    class DeleteProjectResponse(Mapping):
        pass
    
    class DescribeAccessPolicyRequest(Mapping):
        pass
    
    class DescribeAccessPolicyResponse(Mapping):
        pass
    
    class DescribeAssetRequest(Mapping):
        pass
    
    class DescribeAssetResponse(Mapping):
        pass
    
    class DescribeAssetModelRequest(Mapping):
        pass
    
    class DescribeAssetModelResponse(Mapping):
        pass
    
    class DescribeAssetPropertyRequest(Mapping):
        pass
    
    class DescribeAssetPropertyResponse(Mapping):
        pass
    
    class DescribeDashboardRequest(Mapping):
        pass
    
    class DescribeDashboardResponse(Mapping):
        pass
    
    class DescribeDefaultEncryptionConfigurationRequest(Mapping):
        pass
    
    class DescribeDefaultEncryptionConfigurationResponse(Mapping):
        pass
    
    class DescribeGatewayRequest(Mapping):
        pass
    
    class DescribeGatewayResponse(Mapping):
        pass
    
    class DescribeGatewayCapabilityConfigurationRequest(Mapping):
        pass
    
    class DescribeGatewayCapabilityConfigurationResponse(Mapping):
        pass
    
    class DescribeLoggingOptionsRequest(Mapping):
        pass
    
    class DescribeLoggingOptionsResponse(Mapping):
        pass
    
    class DescribePortalRequest(Mapping):
        pass
    
    class DescribePortalResponse(Mapping):
        pass
    
    class DescribeProjectRequest(Mapping):
        pass
    
    class DescribeProjectResponse(Mapping):
        pass
    
    class DescribeStorageConfigurationRequest(Mapping):
        pass
    
    class DescribeStorageConfigurationResponse(Mapping):
        pass
    
    class DisassociateAssetsRequest(Mapping):
        pass
    
    class GetAssetPropertyAggregatesRequest(Mapping):
        pass
    
    class GetAssetPropertyAggregatesResponse(Mapping):
        pass
    
    class AggregateType(object):
        pass
    
    class Quality(object):
        pass
    
    class Timestamp(object):
        pass
    
    class GetAssetPropertyValueRequest(Mapping):
        pass
    
    class GetAssetPropertyValueResponse(Mapping):
        pass
    
    class GetAssetPropertyValueHistoryRequest(Mapping):
        pass
    
    class GetAssetPropertyValueHistoryResponse(Mapping):
        pass
    
    class GetInterpolatedAssetPropertyValuesRequest(Mapping):
        pass
    
    class GetInterpolatedAssetPropertyValuesResponse(Mapping):
        pass
    
    class TimeInSeconds(object):
        pass
    
    class IntervalInSeconds(object):
        pass
    
    class ListAccessPoliciesRequest(Mapping):
        pass
    
    class ListAccessPoliciesResponse(Mapping):
        pass
    
    class ListAssetModelsRequest(Mapping):
        pass
    
    class ListAssetModelsResponse(Mapping):
        pass
    
    class ListAssetRelationshipsRequest(Mapping):
        pass
    
    class ListAssetRelationshipsResponse(Mapping):
        pass
    
    class ListAssetsRequest(Mapping):
        pass
    
    class ListAssetsResponse(Mapping):
        pass
    
    class ListAssociatedAssetsRequest(Mapping):
        pass
    
    class ListAssociatedAssetsResponse(Mapping):
        pass
    
    class ListDashboardsRequest(Mapping):
        pass
    
    class ListDashboardsResponse(Mapping):
        pass
    
    class ListGatewaysRequest(Mapping):
        pass
    
    class ListGatewaysResponse(Mapping):
        pass
    
    class ListPortalsRequest(Mapping):
        pass
    
    class ListPortalsResponse(Mapping):
        pass
    
    class ListProjectAssetsRequest(Mapping):
        pass
    
    class ListProjectAssetsResponse(Mapping):
        pass
    
    class ListProjectsRequest(Mapping):
        pass
    
    class ListProjectsResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class PutDefaultEncryptionConfigurationRequest(Mapping):
        pass
    
    class PutDefaultEncryptionConfigurationResponse(Mapping):
        pass
    
    class PutLoggingOptionsRequest(Mapping):
        pass
    
    class PutLoggingOptionsResponse(Mapping):
        pass
    
    class LoggingOptions(Mapping):
        pass
    
    class PutStorageConfigurationRequest(Mapping):
        pass
    
    class PutStorageConfigurationResponse(Mapping):
        pass
    
    class MultiLayerStorage(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateAccessPolicyRequest(Mapping):
        pass
    
    class UpdateAccessPolicyResponse(Mapping):
        pass
    
    class UpdateAssetRequest(Mapping):
        pass
    
    class UpdateAssetResponse(Mapping):
        pass
    
    class UpdateAssetModelRequest(Mapping):
        pass
    
    class UpdateAssetModelResponse(Mapping):
        pass
    
    class AssetModelProperty(Mapping):
        pass
    
    class AssetModelHierarchy(Mapping):
        pass
    
    class AssetModelCompositeModel(Mapping):
        pass
    
    class UpdateAssetPropertyRequest(Mapping):
        pass
    
    class UpdateDashboardRequest(Mapping):
        pass
    
    class UpdateDashboardResponse(Mapping):
        pass
    
    class UpdateGatewayRequest(Mapping):
        pass
    
    class UpdateGatewayCapabilityConfigurationRequest(Mapping):
        pass
    
    class UpdateGatewayCapabilityConfigurationResponse(Mapping):
        pass
    
    class UpdatePortalRequest(Mapping):
        pass
    
    class UpdatePortalResponse(Mapping):
        pass
    
    class Image(Mapping):
        pass
    
    class UpdateProjectRequest(Mapping):
        pass
    
    class UpdateProjectResponse(Mapping):
        pass
    
    def associate_assets(self, childAssetId: str, hierarchyId: str, assetId: str, clientToken: str=None):
        r"""Associates a child asset with the given parent asset through a hierarchy defined in the parent asset's model. For more information, see <a href="https://docs.aws.amazon.com/iot-sitewise/latest/userguide/add-associated-assets.html">Associating assets</a> in the <i>IoT SiteWise User Guide</i>.

        :param self:
        :param clientToken:  A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.<br/>childAssetId:  The ID of the child asset to be associated.<br/>hierarchyId:  The ID of a hierarchy in the parent asset's model. Hierarchies allow different groupings of assets to be formed that all come from the same asset model. For more information, see <a href="https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html">Asset hierarchies</a> in the <i>IoT SiteWise User Guide</i>.<br/>assetId:  The ID of the parent asset.<br/>
        :return:         """
        pass

    def batch_associate_project_assets(self, assetIds: List[ID], projectId: str, clientToken: str=None) -> BatchAssociateProjectAssetsResponse:
        r"""Associates a group (batch) of assets with an IoT SiteWise Monitor project.

        :param self:
        :param clientToken:  A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.<br/>assetIds:  The IDs of the assets to be associated to the project.<br/>projectId:  The ID of the project to which to associate the assets.<br/>
        :return: errors:  A list of associated error information, if any.<br/>        """
        pass

    def batch_disassociate_project_assets(self, assetIds: List[ID], projectId: str, clientToken: str=None) -> BatchDisassociateProjectAssetsResponse:
        r"""Disassociates a group (batch) of assets from an IoT SiteWise Monitor project.

        :param self:
        :param clientToken:  A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.<br/>assetIds:  The IDs of the assets to be disassociated from the project.<br/>projectId:  The ID of the project from which to disassociate the assets.<br/>
        :return: errors:  A list of associated error information, if any.<br/>        """
        pass

    def batch_put_asset_property_value(self, entries: List[PutAssetPropertyValueEntry]) -> BatchPutAssetPropertyValueResponse:
        r"""Sends a list of asset property values to IoT SiteWise. Each value is a timestamp-quality-value (TQV) data point. For more information, see <a href="https://docs.aws.amazon.com/iot-sitewise/latest/userguide/ingest-api.html">Ingesting data using the API</a> in the <i>IoT SiteWise User Guide</i>. To identify an asset property, you must specify one of the following: <ul> <li> The <code>assetId</code> and <code>propertyId</code> of an asset property. </li> <li> A <code>propertyAlias</code>, which is a data stream alias (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). To define an asset property's alias, see <a href="https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetProperty.html">UpdateAssetProperty</a>. </li> </ul> <important> With respect to Unix epoch time, IoT SiteWise accepts only TQVs that have a timestamp of no more than 7 days in the past and no more than 10 minutes in the future. IoT SiteWise rejects timestamps outside of the inclusive range of [-7 days, +10 minutes] and returns a <code>TimestampOutOfRangeException</code> error. For each asset property, IoT SiteWise overwrites TQVs with duplicate timestamps unless the newer TQV has a different quality. For example, if you store a TQV <code>{T1, GOOD, V1}</code>, then storing <code>{T1, GOOD, V2}</code> replaces the existing TQV. </important> IoT SiteWise authorizes access to each <code>BatchPutAssetPropertyValue</code> entry individually. For more information, see <a href="https://docs.aws.amazon.com/iot-sitewise/latest/userguide/security_iam_service-with-iam.html#security_iam_service-with-iam-id-based-policies-batchputassetpropertyvalue-action">BatchPutAssetPropertyValue authorization</a> in the <i>IoT SiteWise User Guide</i>.

        :param self:
        :param entries:  The list of asset property value entries for the batch put request. You can specify up to 10 entries per request.<br/>
        :return: errorEntries:  A list of the errors (if any) associated with the batch put request. Each error entry contains the <code>entryId</code> of the entry that failed.<br/>        """
        pass

    def create_access_policy(self, accessPolicyPermission: str, accessPolicyResource: Resource, accessPolicyIdentity: Identity, clientToken: str=None, tags: TagMap=None) -> CreateAccessPolicyResponse:
        r"""Creates an access policy that grants the specified identity (Amazon Web Services SSO user, Amazon Web Services SSO group, or IAM user) access to the specified IoT SiteWise Monitor portal or project resource.

        :param self:
        :param tags:  A list of key-value pairs that contain metadata for the access policy. For more information, see <a href="https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html">Tagging your IoT SiteWise resources</a> in the <i>IoT SiteWise User Guide</i>.<br/>clientToken:  A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.<br/>accessPolicyPermission:  The permission level for this access policy. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.<br/>accessPolicyResource:  The IoT SiteWise Monitor resource for this access policy. Choose either a portal or a project.:<br/>accessPolicyIdentity:  The identity for this access policy. Choose an Amazon Web Services SSO user, an Amazon Web Services SSO group, or an IAM user.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>iamRole</i> An IAM role identity.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>iamRole</b>: An IAM role identity.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>iamUser</i> An IAM user identity.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>iamUser</b>: An IAM user identity.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>group</i> An Amazon Web Services SSO group identity.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>group</b>: An Amazon Web Services SSO group identity.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>user</i> An Amazon Web Services SSO user identity.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>user</b>: An Amazon Web Services SSO user identity.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The Amazon Web Services SSO ID of the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The Amazon Web Services SSO ID of the group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The ARN of the IAM user. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html">IAM ARNs</a> in the <i>IAM User Guide</i>. <note> If you delete the IAM user, access policies that contain this identity include an empty <code>arn</code>. You can delete the access policy for the IAM user that no longer exists. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The ARN of the IAM role. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html">IAM ARNs</a> in the <i>IAM User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>project</i> A project resource.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>project</b>: A project resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>portal</i> A portal resource.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>portal</b>: A portal resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The ID of the portal.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The ID of the project.<br/>
        :return: accessPolicyArn:  The <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">ARN</a> of the access policy, which has the following format.  <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code> <br/>accessPolicyId:  The ID of the access policy.<br/>        """
        pass

    def create_asset(self, assetModelId: str, assetName: str, clientToken: str=None, tags: TagMap=None) -> CreateAssetResponse:
        r"""Creates an asset from an existing asset model. For more information, see <a href="https://docs.aws.amazon.com/iot-sitewise/latest/userguide/create-assets.html">Creating assets</a> in the <i>IoT SiteWise User Guide</i>.

        :param self:
        :param tags:  A list of key-value pairs that contain metadata for the asset. For more information, see <a href="https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html">Tagging your IoT SiteWise resources</a> in the <i>IoT SiteWise User Guide</i>.<br/>clientToken:  A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.<br/>assetModelId:  The ID of the asset model from which to create the asset.<br/>assetName:  A unique, friendly name for the asset.<br/>
        :return: assetStatus:  The status of the asset, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.:<br/>assetArn:  The <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">ARN</a> of the asset, which has the following format.  <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> <br/>assetId:  The ID of the asset. This ID uniquely identifies the asset within IoT SiteWise and can be used with other IoT SiteWise APIs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>error</i> Contains associated error information, if any.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>error</b>: Contains associated error information, if any.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>state</i> The current status of the asset.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>message</i> The error message.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>code</i> The error code.<br/>        """
        pass

    def create_asset_model(self, assetModelName: str, assetModelDescription: str=None, assetModelProperties: List[AssetModelPropertyDefinition]=None, assetModelHierarchies: List[AssetModelHierarchyDefinition]=None, assetModelCompositeModels: List[AssetModelCompositeModelDefinition]=None, clientToken: str=None, tags: TagMap=None) -> CreateAssetModelResponse:
        r"""Creates an asset model from specified property and hierarchy definitions. You create assets from asset models. With asset models, you can easily create assets of the same type that have standardized definitions. Each asset created from a model inherits the asset model's property and hierarchy definitions. For more information, see <a href="https://docs.aws.amazon.com/iot-sitewise/latest/userguide/define-models.html">Defining asset models</a> in the <i>IoT SiteWise User Guide</i>.

        :param self:
        :param tags:  A list of key-value pairs that contain metadata for the asset model. For more information, see <a href="https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html">Tagging your IoT SiteWise resources</a> in the <i>IoT SiteWise User Guide</i>.<br/>clientToken:  A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.<br/>assetModelCompositeModels:  The composite asset models that are part of this asset model. Composite asset models are asset models that contain specific properties. Each composite model has a type that defines the properties that the composite model supports. Use composite asset models to define alarms on this asset model.<br/>assetModelHierarchies:  The hierarchy definitions of the asset model. Each hierarchy specifies an asset model whose assets can be children of any other assets created from this asset model. For more information, see <a href="https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html">Asset hierarchies</a> in the <i>IoT SiteWise User Guide</i>. You can specify up to 10 hierarchies per asset model. For more information, see <a href="https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html">Quotas</a> in the <i>IoT SiteWise User Guide</i>.<br/>assetModelProperties:  The property definitions of the asset model. For more information, see <a href="https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-properties.html">Asset properties</a> in the <i>IoT SiteWise User Guide</i>. You can specify up to 200 properties per asset model. For more information, see <a href="https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html">Quotas</a> in the <i>IoT SiteWise User Guide</i>.<br/>assetModelDescription:  A description for the asset model.<br/>assetModelName:  A unique, friendly name for the asset model.<br/>
        :return: assetModelStatus:  The status of the asset model, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.:<br/>assetModelArn:  The <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">ARN</a> of the asset model, which has the following format.  <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code> <br/>assetModelId:  The ID of the asset model. You can use this ID when you call other IoT SiteWise APIs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>error</i> Contains associated error information, if any.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>error</b>: Contains associated error information, if any.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>state</i> The current state of the asset model.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>message</i> The error message.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>code</i> The error code.<br/>        """
        pass

    def create_dashboard(self, dashboardDefinition: str, dashboardName: str, projectId: str, dashboardDescription: str=None, clientToken: str=None, tags: TagMap=None) -> CreateDashboardResponse:
        r"""Creates a dashboard in an IoT SiteWise Monitor project.

        :param self:
        :param tags:  A list of key-value pairs that contain metadata for the dashboard. For more information, see <a href="https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html">Tagging your IoT SiteWise resources</a> in the <i>IoT SiteWise User Guide</i>.<br/>clientToken:  A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.<br/>dashboardDefinition:  The dashboard definition specified in a JSON literal. For detailed information, see <a href="https://docs.aws.amazon.com/iot-sitewise/latest/userguide/create-dashboards-using-aws-cli.html">Creating dashboards (CLI)</a> in the <i>IoT SiteWise User Guide</i>.<br/>dashboardDescription:  A description for the dashboard.<br/>dashboardName:  A friendly name for the dashboard.<br/>projectId:  The ID of the project in which to create the dashboard.<br/>
        :return: dashboardArn:  The <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">ARN</a> of the dashboard, which has the following format.  <code>arn:${Partition}:iotsitewise:${Region}:${Account}:dashboard/${DashboardId}</code> <br/>dashboardId:  The ID of the dashboard.<br/>        """
        pass

    def create_gateway(self, gatewayPlatform: GatewayPlatform, gatewayName: str, tags: TagMap=None) -> CreateGatewayResponse:
        r"""Creates a gateway, which is a virtual or edge device that delivers industrial data streams from local servers to IoT SiteWise. For more information, see <a href="https://docs.aws.amazon.com/iot-sitewise/latest/userguide/gateway-connector.html">Ingesting data using a gateway</a> in the <i>IoT SiteWise User Guide</i>.

        :param self:
        :param tags:  A list of key-value pairs that contain metadata for the gateway. For more information, see <a href="https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html">Tagging your IoT SiteWise resources</a> in the <i>IoT SiteWise User Guide</i>.<br/>gatewayPlatform:  The gateway's platform. You can only specify one platform in a gateway.:<br/>gatewayName:  A unique, friendly name for the gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>greengrass</i> A gateway that runs on IoT Greengrass.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>greengrass</b>: A gateway that runs on IoT Greengrass.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>groupArn</i> The <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">ARN</a> of the Greengrass group. For more information about how to find a group's ARN, see <a href="https://docs.aws.amazon.com/greengrass/latest/apireference/listgroups-get.html">ListGroups</a> and <a href="https://docs.aws.amazon.com/greengrass/latest/apireference/getgroup-get.html">GetGroup</a> in the <i>IoT Greengrass API Reference</i>.<br/>
        :return: gatewayArn:  The <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">ARN</a> of the gateway, which has the following format.  <code>arn:${Partition}:iotsitewise:${Region}:${Account}:gateway/${GatewayId}</code> <br/>gatewayId:  The ID of the gateway device. You can use this ID when you call other IoT SiteWise APIs.<br/>        """
        pass

    def create_portal(self, roleArn: str, portalContactEmail: str, portalName: str, portalDescription: str=None, clientToken: str=None, portalLogoImageFile: ImageFile=None, tags: TagMap=None, portalAuthMode: str=None, notificationSenderEmail: str=None, alarms: Alarms=None) -> CreatePortalResponse:
        r"""Creates a portal, which can contain projects and dashboards. IoT SiteWise Monitor uses Amazon Web Services SSO or IAM to authenticate portal users and manage user permissions. <note> Before you can sign in to a new portal, you must add at least one identity to that portal. For more information, see <a href="https://docs.aws.amazon.com/iot-sitewise/latest/userguide/administer-portals.html#portal-change-admins">Adding or removing portal administrators</a> in the <i>IoT SiteWise User Guide</i>. </note>

        :param self:
        :param alarms:  Contains the configuration information of an alarm created in an IoT SiteWise Monitor portal. You can use the alarm to monitor an asset property and get notified when the asset property value is outside a specified range. For more information, see <a href="https://docs.aws.amazon.com/iot-sitewise/latest/appguide/monitor-alarms.html">Monitoring with alarms</a> in the <i>IoT SiteWise Application Guide</i>.:<br/>notificationSenderEmail:  The email address that sends alarm notifications. <important> If you use the <a href="https://docs.aws.amazon.com/iotevents/latest/developerguide/lambda-support.html">IoT Events managed Lambda function</a> to manage your emails, you must <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/verify-email-addresses.html">verify the sender email address in Amazon SES</a>. </important><br/>portalAuthMode:  The service to use to authenticate users to the portal. Choose from the following options: <ul> <li>  <code>SSO</code> – The portal uses Amazon Web Services Single Sign On to authenticate users and manage user permissions. Before you can create a portal that uses Amazon Web Services SSO, you must enable Amazon Web Services SSO. For more information, see <a href="https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-get-started.html#mon-gs-sso">Enabling Amazon Web Services SSO</a> in the <i>IoT SiteWise User Guide</i>. This option is only available in Amazon Web Services Regions other than the China Regions. </li> <li>  <code>IAM</code> – The portal uses Identity and Access Management to authenticate users and manage user permissions. This option is only available in the China Regions. </li> </ul> You can't change this value after you create a portal. Default: <code>SSO</code> <br/>tags:  A list of key-value pairs that contain metadata for the portal. For more information, see <a href="https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html">Tagging your IoT SiteWise resources</a> in the <i>IoT SiteWise User Guide</i>.<br/>roleArn:  The <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">ARN</a> of a service role that allows the portal's users to access your IoT SiteWise resources on your behalf. For more information, see <a href="https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-service-role.html">Using service roles for IoT SiteWise Monitor</a> in the <i>IoT SiteWise User Guide</i>.<br/>portalLogoImageFile:  A logo image to display in the portal. Upload a square, high-resolution image. The image is displayed on a dark background.:<br/>clientToken:  A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.<br/>portalContactEmail:  The Amazon Web Services administrator's contact email address.<br/>portalDescription:  A description for the portal.<br/>portalName:  A friendly name for the portal.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The file type of the image.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>data</i> The image file contents, represented as a base64-encoded string. The file size must be less than 1 MB.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>notificationLambdaArn</i> The <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">ARN</a> of the Lambda function that manages alarm notifications. For more information, see <a href="https://docs.aws.amazon.com/iotevents/latest/developerguide/lambda-support.html">Managing alarm notifications</a> in the <i>IoT Events Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>alarmRoleArn</i> The <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">ARN</a> of the IAM role that allows the alarm to perform actions and access Amazon Web Services resources and services, such as IoT Events.<br/>
        :return: ssoApplicationId:  The associated Amazon Web Services SSO application ID, if the portal uses Amazon Web Services SSO.<br/>portalStatus:  The status of the portal, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.:<br/>portalStartUrl:  The URL for the IoT SiteWise Monitor portal. You can use this URL to access portals that use Amazon Web Services SSO for authentication. For portals that use IAM for authentication, you must use the IoT SiteWise console to get a URL that you can use to access the portal.<br/>portalArn:  The <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">ARN</a> of the portal, which has the following format.  <code>arn:${Partition}:iotsitewise:${Region}:${Account}:portal/${PortalId}</code> <br/>portalId:  The ID of the created portal.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>error</i> Contains associated error information, if any.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>error</b>: Contains associated error information, if any.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>state</i> The current state of the portal.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>message</i> The error message.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>code</i> The error code.<br/>        """
        pass

    def create_project(self, projectName: str, portalId: str, projectDescription: str=None, clientToken: str=None, tags: TagMap=None) -> CreateProjectResponse:
        r"""Creates a project in the specified portal.

        :param self:
        :param tags:  A list of key-value pairs that contain metadata for the project. For more information, see <a href="https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html">Tagging your IoT SiteWise resources</a> in the <i>IoT SiteWise User Guide</i>.<br/>clientToken:  A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.<br/>projectDescription:  A description for the project.<br/>projectName:  A friendly name for the project.<br/>portalId:  The ID of the portal in which to create the project.<br/>
        :return: projectArn:  The <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">ARN</a> of the project, which has the following format.  <code>arn:${Partition}:iotsitewise:${Region}:${Account}:project/${ProjectId}</code> <br/>projectId:  The ID of the project.<br/>        """
        pass

    def delete_access_policy(self, accessPolicyId: str, clientToken: str=None) -> DeleteAccessPolicyResponse:
        r"""Deletes an access policy that grants the specified identity access to the specified IoT SiteWise Monitor resource. You can use this operation to revoke access to an IoT SiteWise Monitor resource.

        :param self:
        :param clientToken:  A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.<br/>accessPolicyId:  The ID of the access policy to be deleted.<br/>
        :return:         """
        pass

    def delete_asset(self, assetId: str, clientToken: str=None) -> DeleteAssetResponse:
        r"""Deletes an asset. This action can't be undone. For more information, see <a href="https://docs.aws.amazon.com/iot-sitewise/latest/userguide/delete-assets-and-models.html">Deleting assets and models</a> in the <i>IoT SiteWise User Guide</i>.  <note> You can't delete an asset that's associated to another asset. For more information, see <a href="https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_DisassociateAssets.html">DisassociateAssets</a>. </note>

        :param self:
        :param clientToken:  A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.<br/>assetId:  The ID of the asset to delete.<br/>
        :return: assetStatus:  The status of the asset, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>error</i> Contains associated error information, if any.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>error</b>: Contains associated error information, if any.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>state</i> The current status of the asset.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>message</i> The error message.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>code</i> The error code.<br/>        """
        pass

    def delete_asset_model(self, assetModelId: str, clientToken: str=None) -> DeleteAssetModelResponse:
        r"""Deletes an asset model. This action can't be undone. You must delete all assets created from an asset model before you can delete the model. Also, you can't delete an asset model if a parent asset model exists that contains a property formula expression that depends on the asset model that you want to delete. For more information, see <a href="https://docs.aws.amazon.com/iot-sitewise/latest/userguide/delete-assets-and-models.html">Deleting assets and models</a> in the <i>IoT SiteWise User Guide</i>.

        :param self:
        :param clientToken:  A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.<br/>assetModelId:  The ID of the asset model to delete.<br/>
        :return: assetModelStatus:  The status of the asset model, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>error</i> Contains associated error information, if any.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>error</b>: Contains associated error information, if any.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>state</i> The current state of the asset model.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>message</i> The error message.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>code</i> The error code.<br/>        """
        pass

    def delete_dashboard(self, dashboardId: str, clientToken: str=None) -> DeleteDashboardResponse:
        r"""Deletes a dashboard from IoT SiteWise Monitor.

        :param self:
        :param clientToken:  A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.<br/>dashboardId:  The ID of the dashboard to delete.<br/>
        :return:         """
        pass

    def delete_gateway(self, gatewayId: str):
        r"""Deletes a gateway from IoT SiteWise. When you delete a gateway, some of the gateway's files remain in your gateway's file system.

        :param self:
        :param gatewayId:  The ID of the gateway to delete.<br/>
        :return:         """
        pass

    def delete_portal(self, portalId: str, clientToken: str=None) -> DeletePortalResponse:
        r"""Deletes a portal from IoT SiteWise Monitor.

        :param self:
        :param clientToken:  A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.<br/>portalId:  The ID of the portal to delete.<br/>
        :return: portalStatus:  The status of the portal, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>error</i> Contains associated error information, if any.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>error</b>: Contains associated error information, if any.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>state</i> The current state of the portal.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>message</i> The error message.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>code</i> The error code.<br/>        """
        pass

    def delete_project(self, projectId: str, clientToken: str=None) -> DeleteProjectResponse:
        r"""Deletes a project from IoT SiteWise Monitor.

        :param self:
        :param clientToken:  A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.<br/>projectId:  The ID of the project.<br/>
        :return:         """
        pass

    def describe_access_policy(self, accessPolicyId: str) -> DescribeAccessPolicyResponse:
        r"""Describes an access policy, which specifies an identity's access to an IoT SiteWise Monitor portal or project.

        :param self:
        :param accessPolicyId:  The ID of the access policy.<br/>
        :return: accessPolicyLastUpdateDate:  The date the access policy was last updated, in Unix epoch time.<br/>accessPolicyCreationDate:  The date the access policy was created, in Unix epoch time.<br/>accessPolicyPermission:  The access policy permission. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.<br/>accessPolicyResource:  The IoT SiteWise Monitor resource (portal or project) to which this access policy provides access.:<br/>accessPolicyIdentity:  The identity (Amazon Web Services SSO user, Amazon Web Services SSO group, or IAM user) to which this access policy applies.:<br/>accessPolicyArn:  The <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">ARN</a> of the access policy, which has the following format.  <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code> <br/>accessPolicyId:  The ID of the access policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>iamRole</i> An IAM role identity.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>iamRole</b>: An IAM role identity.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>iamUser</i> An IAM user identity.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>iamUser</b>: An IAM user identity.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>group</i> An Amazon Web Services SSO group identity.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>group</b>: An Amazon Web Services SSO group identity.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>user</i> An Amazon Web Services SSO user identity.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>user</b>: An Amazon Web Services SSO user identity.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The Amazon Web Services SSO ID of the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The Amazon Web Services SSO ID of the group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The ARN of the IAM user. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html">IAM ARNs</a> in the <i>IAM User Guide</i>. <note> If you delete the IAM user, access policies that contain this identity include an empty <code>arn</code>. You can delete the access policy for the IAM user that no longer exists. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The ARN of the IAM role. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html">IAM ARNs</a> in the <i>IAM User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>project</i> A project resource.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>project</b>: A project resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>portal</i> A portal resource.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>portal</b>: A portal resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The ID of the portal.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The ID of the project.<br/>        """
        pass

    def describe_asset(self, assetId: str) -> DescribeAssetResponse:
        r"""Retrieves information about an asset.

        :param self:
        :param assetId:  The ID of the asset.<br/>
        :return: assetStatus:  The current status of the asset, which contains a state and any error message.:<br/>assetLastUpdateDate:  The date the asset was last updated, in Unix epoch time.<br/>assetCreationDate:  The date the asset was created, in Unix epoch time.<br/>assetCompositeModels:  The composite models for the asset.<br/>assetHierarchies:  A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.<br/>assetProperties:  The list of asset properties for the asset. This object doesn't include properties that you define in composite models. You can find composite model properties in the <code>assetCompositeModels</code> object.<br/>assetModelId:  The ID of the asset model that was used to create the asset.<br/>assetName:  The name of the asset.<br/>assetArn:  The <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">ARN</a> of the asset, which has the following format.  <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> <br/>assetId:  The ID of the asset.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>error</i> Contains associated error information, if any.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>error</b>: Contains associated error information, if any.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>state</i> The current status of the asset.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>message</i> The error message.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>code</i> The error code.<br/>        """
        pass

    def describe_asset_model(self, assetModelId: str) -> DescribeAssetModelResponse:
        r"""Retrieves information about an asset model.

        :param self:
        :param assetModelId:  The ID of the asset model.<br/>
        :return: assetModelStatus:  The current status of the asset model, which contains a state and any error message.:<br/>assetModelLastUpdateDate:  The date the asset model was last updated, in Unix epoch time.<br/>assetModelCreationDate:  The date the asset model was created, in Unix epoch time.<br/>assetModelCompositeModels:  The list of composite asset models for the asset model.<br/>assetModelHierarchies:  A list of asset model hierarchies that each contain a <code>childAssetModelId</code> and a <code>hierarchyId</code> (named <code>id</code>). A hierarchy specifies allowed parent/child asset relationships for an asset model.<br/>assetModelProperties:  The list of asset properties for the asset model. This object doesn't include properties that you define in composite models. You can find composite model properties in the <code>assetModelCompositeModels</code> object.<br/>assetModelDescription:  The asset model's description.<br/>assetModelName:  The name of the asset model.<br/>assetModelArn:  The <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">ARN</a> of the asset model, which has the following format.  <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code> <br/>assetModelId:  The ID of the asset model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>error</i> Contains associated error information, if any.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>error</b>: Contains associated error information, if any.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>state</i> The current state of the asset model.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>message</i> The error message.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>code</i> The error code.<br/>        """
        pass

    def describe_asset_property(self, propertyId: str, assetId: str) -> DescribeAssetPropertyResponse:
        r"""Retrieves information about an asset property. <note> When you call this operation for an attribute property, this response includes the default attribute value that you define in the asset model. If you update the default value in the model, this operation's response includes the new default value. </note> This operation doesn't return the value of the asset property. To get the value of an asset property, use <a href="https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_GetAssetPropertyValue.html">GetAssetPropertyValue</a>.

        :param self:
        :param propertyId:  The ID of the asset property.<br/>assetId:  The ID of the asset.<br/>
        :return: compositeModel:  The composite asset model that declares this asset property, if this asset property exists in a composite model.:<br/>assetProperty:  The asset property's definition, alias, and notification state. This response includes this object for normal asset properties. If you describe an asset property in a composite model, this response includes the asset property information in <code>compositeModel</code>.:<br/>assetModelId:  The ID of the asset model.<br/>assetName:  The name of the asset.<br/>assetId:  The ID of the asset.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The property type (see <code>PropertyType</code>). A property contains one type.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>type</b>: The property type (see <code>PropertyType</code>). A property contains one type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>unit</i> The unit (such as <code>Newtons</code> or <code>RPM</code>) of the asset property.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>dataType</i> The property data type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>notification</i> The asset property's notification topic and state. For more information, see <a href="https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetProperty.html">UpdateAssetProperty</a>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>notification</b>: The asset property's notification topic and state. For more information, see <a href="https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetProperty.html">UpdateAssetProperty</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>alias</i> The alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href="https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html">Mapping industrial data streams to asset properties</a> in the <i>IoT SiteWise User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the property.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The ID of the asset property.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>state</i> The current notification state.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>topic</i> The MQTT topic to which IoT SiteWise publishes property value update notifications.<br/>Specifies an asset attribute property. An attribute generally contains static information, such as the serial number of an <a href="https://en.wikipedia.org/wiki/Internet_of_things#Industrial_applications">IIoT</a> wind turbine.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>attribute</b>: Specifies an asset attribute property. An attribute generally contains static information, such as the serial number of an <a href="https://en.wikipedia.org/wiki/Internet_of_things#Industrial_applications">IIoT</a> wind turbine.&nbsp;&nbsp;&nbsp;&nbsp; <i>assetProperty</i> Contains asset property information.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>assetProperty</b>: Contains asset property information.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of the composite model that defines this property.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the property.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>alias</i> The alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href="https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html">Mapping industrial data streams to asset properties</a> in the <i>IoT SiteWise User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the property.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The ID of the asset property.<br/>The asset property's notification topic and state. For more information, see <a href="https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetProperty.html">UpdateAssetProperty</a>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>notification</b>: The asset property's notification topic and state. For more information, see <a href="https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetProperty.html">UpdateAssetProperty</a>.        """
        pass

    def describe_dashboard(self, dashboardId: str) -> DescribeDashboardResponse:
        r"""Retrieves information about a dashboard.

        :param self:
        :param dashboardId:  The ID of the dashboard.<br/>
        :return: dashboardLastUpdateDate:  The date the dashboard was last updated, in Unix epoch time.<br/>dashboardCreationDate:  The date the dashboard was created, in Unix epoch time.<br/>dashboardDefinition:  The dashboard's definition JSON literal. For detailed information, see <a href="https://docs.aws.amazon.com/iot-sitewise/latest/userguide/create-dashboards-using-aws-cli.html">Creating dashboards (CLI)</a> in the <i>IoT SiteWise User Guide</i>.<br/>dashboardDescription:  The dashboard's description.<br/>projectId:  The ID of the project that the dashboard is in.<br/>dashboardName:  The name of the dashboard.<br/>dashboardArn:  The <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">ARN</a> of the dashboard, which has the following format.  <code>arn:${Partition}:iotsitewise:${Region}:${Account}:dashboard/${DashboardId}</code> <br/>dashboardId:  The ID of the dashboard.<br/>        """
        pass

    def describe_default_encryption_configuration(self) -> DescribeDefaultEncryptionConfigurationResponse:
        r"""Retrieves information about the default encryption configuration for the Amazon Web Services account in the default or specified Region. For more information, see <a href="https://docs.aws.amazon.com/iot-sitewise/latest/userguide/key-management.html">Key management</a> in the <i>IoT SiteWise User Guide</i>.

        :param self:
        :param 
        :return: configurationStatus:  The status of the account configuration. This contains the <code>ConfigurationState</code>. If there's an error, it also contains the <code>ErrorDetails</code>.:<br/>kmsKeyArn:  The key ARN of the customer managed customer master key (CMK) used for KMS encryption if you use <code>KMS_BASED_ENCRYPTION</code>.<br/>encryptionType:  The type of encryption used for the encryption configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>error</i> Contains associated error information, if any.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>error</b>: Contains associated error information, if any.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>state</i> The current state of the configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>message</i> The error message.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>code</i> The error code.<br/>        """
        pass

    def describe_gateway(self, gatewayId: str) -> DescribeGatewayResponse:
        r"""Retrieves information about a gateway.

        :param self:
        :param gatewayId:  The ID of the gateway device.<br/>
        :return: lastUpdateDate:  The date the gateway was last updated, in Unix epoch time.<br/>creationDate:  The date the gateway was created, in Unix epoch time.<br/>gatewayCapabilitySummaries:  A list of gateway capability summaries that each contain a namespace and status. Each gateway capability defines data sources for the gateway. To retrieve a capability configuration's definition, use <a href="https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_DescribeGatewayCapabilityConfiguration.html">DescribeGatewayCapabilityConfiguration</a>.<br/>gatewayPlatform:  The gateway's platform.:<br/>gatewayArn:  The <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">ARN</a> of the gateway, which has the following format.  <code>arn:${Partition}:iotsitewise:${Region}:${Account}:gateway/${GatewayId}</code> <br/>gatewayName:  The name of the gateway.<br/>gatewayId:  The ID of the gateway device.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>greengrass</i> A gateway that runs on IoT Greengrass.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>greengrass</b>: A gateway that runs on IoT Greengrass.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>groupArn</i> The <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">ARN</a> of the Greengrass group. For more information about how to find a group's ARN, see <a href="https://docs.aws.amazon.com/greengrass/latest/apireference/listgroups-get.html">ListGroups</a> and <a href="https://docs.aws.amazon.com/greengrass/latest/apireference/getgroup-get.html">GetGroup</a> in the <i>IoT Greengrass API Reference</i>.<br/>        """
        pass

    def describe_gateway_capability_configuration(self, capabilityNamespace: str, gatewayId: str) -> DescribeGatewayCapabilityConfigurationResponse:
        r"""Retrieves information about a gateway capability configuration. Each gateway capability defines data sources for a gateway. A capability configuration can contain multiple data source configurations. If you define OPC-UA sources for a gateway in the IoT SiteWise console, all of your OPC-UA sources are stored in one capability configuration. To list all capability configurations for a gateway, use <a href="https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_DescribeGateway.html">DescribeGateway</a>.

        :param self:
        :param capabilityNamespace:  The namespace of the capability configuration. For example, if you configure OPC-UA sources from the IoT SiteWise console, your OPC-UA capability configuration has the namespace <code>iotsitewise:opcuacollector:version</code>, where <code>version</code> is a number such as <code>1</code>.<br/>gatewayId:  The ID of the gateway that defines the capability configuration.<br/>
        :return: capabilitySyncStatus:  The synchronization status of the capability configuration. The sync status can be one of the following: <ul> <li>  <code>IN_SYNC</code> – The gateway is running the capability configuration. </li> <li>  <code>OUT_OF_SYNC</code> – The gateway hasn't received the capability configuration. </li> <li>  <code>SYNC_FAILED</code> – The gateway rejected the capability configuration. </li> </ul><br/>capabilityConfiguration:  The JSON document that defines the gateway capability's configuration. For more information, see <a href="https://docs.aws.amazon.com/iot-sitewise/latest/userguide/configure-sources.html#configure-source-cli">Configuring data sources (CLI)</a> in the <i>IoT SiteWise User Guide</i>.<br/>capabilityNamespace:  The namespace of the gateway capability.<br/>gatewayId:  The ID of the gateway that defines the capability configuration.<br/>        """
        pass

    def describe_logging_options(self) -> DescribeLoggingOptionsResponse:
        r"""Retrieves the current IoT SiteWise logging options.

        :param self:
        :param 
        :return: loggingOptions:  The current logging options.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>level</i> The IoT SiteWise logging verbosity level.<br/>        """
        pass

    def describe_portal(self, portalId: str) -> DescribePortalResponse:
        r"""Retrieves information about a portal.

        :param self:
        :param portalId:  The ID of the portal.<br/>
        :return: alarms:  Contains the configuration information of an alarm created in an IoT SiteWise Monitor portal.:<br/>notificationSenderEmail:  The email address that sends alarm notifications.<br/>portalAuthMode:  The service to use to authenticate users to the portal.<br/>roleArn:  The <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">ARN</a> of the service role that allows the portal's users to access your IoT SiteWise resources on your behalf. For more information, see <a href="https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-service-role.html">Using service roles for IoT SiteWise Monitor</a> in the <i>IoT SiteWise User Guide</i>.<br/>portalLogoImageLocation:  The portal's logo image, which is available at a URL.:<br/>portalLastUpdateDate:  The date the portal was last updated, in Unix epoch time.<br/>portalCreationDate:  The date the portal was created, in Unix epoch time.<br/>portalStatus:  The current status of the portal, which contains a state and any error message.:<br/>portalContactEmail:  The Amazon Web Services administrator's contact email address.<br/>portalStartUrl:  The URL for the IoT SiteWise Monitor portal. You can use this URL to access portals that use Amazon Web Services SSO for authentication. For portals that use IAM for authentication, you must use the IoT SiteWise console to get a URL that you can use to access the portal.<br/>portalClientId:  The Amazon Web Services SSO application generated client ID (used with Amazon Web Services SSO APIs). IoT SiteWise includes <code>portalClientId</code> for only portals that use Amazon Web Services SSO to authenticate users.<br/>portalDescription:  The portal's description.<br/>portalName:  The name of the portal.<br/>portalArn:  The <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">ARN</a> of the portal, which has the following format.  <code>arn:${Partition}:iotsitewise:${Region}:${Account}:portal/${PortalId}</code> <br/>portalId:  The ID of the portal.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>error</i> Contains associated error information, if any.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>error</b>: Contains associated error information, if any.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>state</i> The current state of the portal.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>message</i> The error message.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>code</i> The error code.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>url</i> The URL where the image is available. The URL is valid for 15 minutes so that you can view and download the image<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The ID of the image.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>notificationLambdaArn</i> The <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">ARN</a> of the Lambda function that manages alarm notifications. For more information, see <a href="https://docs.aws.amazon.com/iotevents/latest/developerguide/lambda-support.html">Managing alarm notifications</a> in the <i>IoT Events Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>alarmRoleArn</i> The <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">ARN</a> of the IAM role that allows the alarm to perform actions and access Amazon Web Services resources and services, such as IoT Events.<br/>        """
        pass

    def describe_project(self, projectId: str) -> DescribeProjectResponse:
        r"""Retrieves information about a project.

        :param self:
        :param projectId:  The ID of the project.<br/>
        :return: projectLastUpdateDate:  The date the project was last updated, in Unix epoch time.<br/>projectCreationDate:  The date the project was created, in Unix epoch time.<br/>projectDescription:  The project's description.<br/>portalId:  The ID of the portal that the project is in.<br/>projectName:  The name of the project.<br/>projectArn:  The <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">ARN</a> of the project, which has the following format.  <code>arn:${Partition}:iotsitewise:${Region}:${Account}:project/${ProjectId}</code> <br/>projectId:  The ID of the project.<br/>        """
        pass

    def describe_storage_configuration(self) -> DescribeStorageConfigurationResponse:
        r"""Retrieves information about the storage configuration for IoT SiteWise.

        :param self:
        :param 
        :return: lastUpdateDate:  The date the storage configuration was last updated, in Unix epoch time.<br/>configurationStatus:  Contains current status information for the configuration.:<br/>multiLayerStorage:  Contains information about the storage destination.:<br/>storageType:  The type of storage that you specified for your data. The storage type can be one of the following values: <ul> <li>  <code>SITEWISE_DEFAULT_STORAGE</code> – IoT SiteWise replicates your data into a service managed database. </li> <li>  <code>MULTI_LAYER_STORAGE</code> – IoT SiteWise replicates your data into a service managed database and saves a copy of your raw data and metadata in an Amazon S3 object that you specified. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>customerManagedS3Storage</i> Contains information about a customer managed Amazon S3 bucket.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>customerManagedS3Storage</b>: Contains information about a customer managed Amazon S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>roleArn</i> The <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">ARN</a> of the Identity and Access Management role that allows IoT SiteWise to send data to Amazon S3.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>s3ResourceArn</i> The <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">ARN</a> of the Amazon S3 object. For more information about how to find the ARN for an Amazon S3 object, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-arn-format.html">Amazon S3 resources</a> in the <i>Amazon Simple Storage Service User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>error</i> Contains associated error information, if any.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>error</b>: Contains associated error information, if any.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>state</i> The current state of the configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>message</i> The error message.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>code</i> The error code.<br/>        """
        pass

    def disassociate_assets(self, childAssetId: str, hierarchyId: str, assetId: str, clientToken: str=None):
        r"""Disassociates a child asset from the given parent asset through a hierarchy defined in the parent asset's model.

        :param self:
        :param clientToken:  A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.<br/>childAssetId:  The ID of the child asset to disassociate.<br/>hierarchyId:  The ID of a hierarchy in the parent asset's model. Hierarchies allow different groupings of assets to be formed that all come from the same asset model. You can use the hierarchy ID to identify the correct asset to disassociate. For more information, see <a href="https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html">Asset hierarchies</a> in the <i>IoT SiteWise User Guide</i>.<br/>assetId:  The ID of the parent asset from which to disassociate the child asset.<br/>
        :return:         """
        pass

    def get_asset_property_aggregates(self, endDate: Timestamp, startDate: Timestamp, resolution: str, aggregateTypes: List[AggregateType], assetId: str=None, propertyId: str=None, propertyAlias: str=None, qualities: List[Quality]=None, timeOrdering: str=None, nextToken: str=None, maxResults: int=None) -> GetAssetPropertyAggregatesResponse:
        r"""Gets aggregated values for an asset property. For more information, see <a href="https://docs.aws.amazon.com/iot-sitewise/latest/userguide/query-industrial-data.html#aggregates">Querying aggregates</a> in the <i>IoT SiteWise User Guide</i>. To identify an asset property, you must specify one of the following: <ul> <li> The <code>assetId</code> and <code>propertyId</code> of an asset property. </li> <li> A <code>propertyAlias</code>, which is a data stream alias (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). To define an asset property's alias, see <a href="https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetProperty.html">UpdateAssetProperty</a>. </li> </ul>

        :param self:
        :param maxResults:  The maximum number of results to return for each paginated request. Default: 100<br/>nextToken:  The token to be used for the next set of paginated results.<br/>timeOrdering:  The chronological sorting order of the requested information. Default: <code>ASCENDING</code> <br/>endDate:  The inclusive end of the range from which to query historical data, expressed in seconds in Unix epoch time.<br/>startDate:  The exclusive start of the range from which to query historical data, expressed in seconds in Unix epoch time.<br/>qualities:  The quality by which to filter asset data.<br/>resolution:  The time interval over which to aggregate data.<br/>aggregateTypes:  The data aggregating function.<br/>propertyAlias:  The alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href="https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html">Mapping industrial data streams to asset properties</a> in the <i>IoT SiteWise User Guide</i>.<br/>propertyId:  The ID of the asset property.<br/>assetId:  The ID of the asset.<br/>
        :return: nextToken:  The token for the next set of results, or null if there are no additional results.<br/>aggregatedValues:  The requested aggregated values.<br/>        """
        pass

    def get_asset_property_value(self, assetId: str=None, propertyId: str=None, propertyAlias: str=None) -> GetAssetPropertyValueResponse:
        r"""Gets an asset property's current value. For more information, see <a href="https://docs.aws.amazon.com/iot-sitewise/latest/userguide/query-industrial-data.html#current-values">Querying current values</a> in the <i>IoT SiteWise User Guide</i>. To identify an asset property, you must specify one of the following: <ul> <li> The <code>assetId</code> and <code>propertyId</code> of an asset property. </li> <li> A <code>propertyAlias</code>, which is a data stream alias (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). To define an asset property's alias, see <a href="https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetProperty.html">UpdateAssetProperty</a>. </li> </ul>

        :param self:
        :param propertyAlias:  The alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href="https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html">Mapping industrial data streams to asset properties</a> in the <i>IoT SiteWise User Guide</i>.<br/>propertyId:  The ID of the asset property.<br/>assetId:  The ID of the asset.<br/>
        :return: propertyValue:  The current asset property value.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>quality</i> The quality of the asset property value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>timestamp</i> The timestamp of the asset property value.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>timestamp</b>: The timestamp of the asset property value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>value</i> The value of the asset property (see <code>Variant</code>).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>value</b>: The value of the asset property (see <code>Variant</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>booleanValue</i> Asset property data of type Boolean (true or false).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>doubleValue</i> Asset property data of type double (floating point number).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>integerValue</i> Asset property data of type integer (whole number).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>stringValue</i> Asset property data of type string (sequence of characters).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>offsetInNanos</i> The nanosecond offset from <code>timeInSeconds</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>timeInSeconds</i> The timestamp date, in seconds, in the Unix epoch format. Fractional nanosecond data is provided by <code>offsetInNanos</code>.<br/>        """
        pass

    def get_asset_property_value_history(self, assetId: str=None, propertyId: str=None, propertyAlias: str=None, startDate: Timestamp=None, endDate: Timestamp=None, qualities: List[Quality]=None, timeOrdering: str=None, nextToken: str=None, maxResults: int=None) -> GetAssetPropertyValueHistoryResponse:
        r"""Gets the history of an asset property's values. For more information, see <a href="https://docs.aws.amazon.com/iot-sitewise/latest/userguide/query-industrial-data.html#historical-values">Querying historical values</a> in the <i>IoT SiteWise User Guide</i>. To identify an asset property, you must specify one of the following: <ul> <li> The <code>assetId</code> and <code>propertyId</code> of an asset property. </li> <li> A <code>propertyAlias</code>, which is a data stream alias (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). To define an asset property's alias, see <a href="https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetProperty.html">UpdateAssetProperty</a>. </li> </ul>

        :param self:
        :param maxResults:  The maximum number of results to return for each paginated request. Default: 100<br/>nextToken:  The token to be used for the next set of paginated results.<br/>timeOrdering:  The chronological sorting order of the requested information. Default: <code>ASCENDING</code> <br/>qualities:  The quality by which to filter asset data.<br/>endDate:  The inclusive end of the range from which to query historical data, expressed in seconds in Unix epoch time.<br/>startDate:  The exclusive start of the range from which to query historical data, expressed in seconds in Unix epoch time.<br/>propertyAlias:  The alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href="https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html">Mapping industrial data streams to asset properties</a> in the <i>IoT SiteWise User Guide</i>.<br/>propertyId:  The ID of the asset property.<br/>assetId:  The ID of the asset.<br/>
        :return: nextToken:  The token for the next set of results, or null if there are no additional results.<br/>assetPropertyValueHistory:  The asset property's value history.<br/>        """
        pass

    def get_interpolated_asset_property_values(self, type: str, intervalInSeconds: IntervalInSeconds, quality: str, endTimeInSeconds: TimeInSeconds, startTimeInSeconds: TimeInSeconds, assetId: str=None, propertyId: str=None, propertyAlias: str=None, startTimeOffsetInNanos: int=None, endTimeOffsetInNanos: int=None, nextToken: str=None, maxResults: int=None) -> GetInterpolatedAssetPropertyValuesResponse:
        r"""Get interpolated values for an asset property for a specified time interval, during a period of time. For example, you can use the this operation to return the interpolated temperature values for a wind turbine every 24 hours over a duration of 7 days. To identify an asset property, you must specify one of the following: <ul> <li> The <code>assetId</code> and <code>propertyId</code> of an asset property. </li> <li> A <code>propertyAlias</code>, which is a data stream alias (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). To define an asset property's alias, see <a href="https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetProperty.html">UpdateAssetProperty</a>. </li> </ul>

        :param self:
        :param type:  The interpolation type. Valid values: <code>LINEAR_INTERPOLATION</code> <br/>maxResults:  The maximum number of results to return for each paginated request. If not specified, the default value is 10.<br/>nextToken:  The token to be used for the next set of paginated results.<br/>intervalInSeconds:  The time interval in seconds over which to interpolate data. Each interval starts when the previous one ends.<br/>quality:  The quality of the asset property value. You can use this parameter as a filter to choose only the asset property values that have a specific quality.<br/>endTimeOffsetInNanos:  The nanosecond offset converted from <code>endTimeInSeconds</code>.<br/>endTimeInSeconds:  The inclusive end of the range from which to interpolate data, expressed in seconds in Unix epoch time.<br/>startTimeOffsetInNanos:  The nanosecond offset converted from <code>startTimeInSeconds</code>.<br/>startTimeInSeconds:  The exclusive start of the range from which to interpolate data, expressed in seconds in Unix epoch time.<br/>propertyAlias:  The alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href="https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html">Mapping industrial data streams to asset properties</a> in the <i>IoT SiteWise User Guide</i>.<br/>propertyId:  The ID of the asset property.<br/>assetId:  The ID of the asset.<br/>
        :return: nextToken:  The token for the next set of results, or null if there are no additional results.<br/>interpolatedAssetPropertyValues:  The requested interpolated values.<br/>        """
        pass

    def list_access_policies(self, identityType: str=None, identityId: str=None, resourceType: str=None, resourceId: str=None, iamArn: str=None, nextToken: str=None, maxResults: int=None) -> ListAccessPoliciesResponse:
        r"""Retrieves a paginated list of access policies for an identity (an Amazon Web Services SSO user, an Amazon Web Services SSO group, or an IAM user) or an IoT SiteWise Monitor resource (a portal or project).

        :param self:
        :param maxResults:  The maximum number of results to return for each paginated request. Default: 50<br/>nextToken:  The token to be used for the next set of paginated results.<br/>iamArn:  The ARN of the IAM user. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html">IAM ARNs</a> in the <i>IAM User Guide</i>. This parameter is required if you specify <code>IAM</code> for <code>identityType</code>.<br/>resourceId:  The ID of the resource. This parameter is required if you specify <code>resourceType</code>.<br/>resourceType:  The type of resource (portal or project). This parameter is required if you specify <code>resourceId</code>.<br/>identityId:  The ID of the identity. This parameter is required if you specify <code>USER</code> or <code>GROUP</code> for <code>identityType</code>.<br/>identityType:  The type of identity (Amazon Web Services SSO user, Amazon Web Services SSO group, or IAM user). This parameter is required if you specify <code>identityId</code>.<br/>
        :return: nextToken:  The token for the next set of results, or null if there are no additional results.<br/>accessPolicySummaries:  A list that summarizes each access policy.<br/>        """
        pass

    def list_asset_models(self, nextToken: str=None, maxResults: int=None) -> ListAssetModelsResponse:
        r"""Retrieves a paginated list of summaries of all asset models.

        :param self:
        :param maxResults:  The maximum number of results to return for each paginated request. Default: 50<br/>nextToken:  The token to be used for the next set of paginated results.<br/>
        :return: nextToken:  The token for the next set of results, or null if there are no additional results.<br/>assetModelSummaries:  A list that summarizes each asset model.<br/>        """
        pass

    def list_asset_relationships(self, traversalType: str, assetId: str, nextToken: str=None, maxResults: int=None) -> ListAssetRelationshipsResponse:
        r"""Retrieves a paginated list of asset relationships for an asset. You can use this operation to identify an asset's root asset and all associated assets between that asset and its root.

        :param self:
        :param maxResults:  The maximum number of results to return for each paginated request.<br/>nextToken:  The token to be used for the next set of paginated results.<br/>traversalType:  The type of traversal to use to identify asset relationships. Choose the following option: <ul> <li>  <code>PATH_TO_ROOT</code> – Identify the asset's parent assets up to the root asset. The asset that you specify in <code>assetId</code> is the first result in the list of <code>assetRelationshipSummaries</code>, and the root asset is the last result. </li> </ul><br/>assetId:  The ID of the asset.<br/>
        :return: nextToken:  The token for the next set of results, or null if there are no additional results.<br/>assetRelationshipSummaries:  A list that summarizes each asset relationship.<br/>        """
        pass

    def list_assets(self, nextToken: str=None, maxResults: int=None, assetModelId: str=None, filter: str=None) -> ListAssetsResponse:
        r"""Retrieves a paginated list of asset summaries. You can use this operation to do the following: <ul> <li> List assets based on a specific asset model. </li> <li> List top-level assets. </li> </ul> You can't use this operation to list all assets. To retrieve summaries for all of your assets, use <a href="https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_ListAssetModels.html">ListAssetModels</a> to get all of your asset model IDs. Then, use ListAssets to get all assets for each asset model.

        :param self:
        :param filter:  The filter for the requested list of assets. Choose one of the following options: <ul> <li>  <code>ALL</code> – The list includes all assets for a given asset model ID. The <code>assetModelId</code> parameter is required if you filter by <code>ALL</code>. </li> <li>  <code>TOP_LEVEL</code> – The list includes only top-level assets in the asset hierarchy tree. </li> </ul> Default: <code>ALL</code> <br/>assetModelId:  The ID of the asset model by which to filter the list of assets. This parameter is required if you choose <code>ALL</code> for <code>filter</code>.<br/>maxResults:  The maximum number of results to return for each paginated request. Default: 50<br/>nextToken:  The token to be used for the next set of paginated results.<br/>
        :return: nextToken:  The token for the next set of results, or null if there are no additional results.<br/>assetSummaries:  A list that summarizes each asset.<br/>        """
        pass

    def list_associated_assets(self, assetId: str, hierarchyId: str=None, traversalDirection: str=None, nextToken: str=None, maxResults: int=None) -> ListAssociatedAssetsResponse:
        r"""Retrieves a paginated list of associated assets. You can use this operation to do the following: <ul> <li> List child assets associated to a parent asset by a hierarchy that you specify. </li> <li> List an asset's parent asset. </li> </ul>

        :param self:
        :param maxResults:  The maximum number of results to return for each paginated request. Default: 50<br/>nextToken:  The token to be used for the next set of paginated results.<br/>traversalDirection:  The direction to list associated assets. Choose one of the following options: <ul> <li>  <code>CHILD</code> – The list includes all child assets associated to the asset. The <code>hierarchyId</code> parameter is required if you choose <code>CHILD</code>. </li> <li>  <code>PARENT</code> – The list includes the asset's parent asset. </li> </ul> Default: <code>CHILD</code> <br/>hierarchyId:  The ID of the hierarchy by which child assets are associated to the asset. To find a hierarchy ID, use the <a href="https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_DescribeAsset.html">DescribeAsset</a> or <a href="https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_DescribeAssetModel.html">DescribeAssetModel</a> operations. This parameter is required if you choose <code>CHILD</code> for <code>traversalDirection</code>. For more information, see <a href="https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html">Asset hierarchies</a> in the <i>IoT SiteWise User Guide</i>.<br/>assetId:  The ID of the asset to query.<br/>
        :return: nextToken:  The token for the next set of results, or null if there are no additional results.<br/>assetSummaries:  A list that summarizes the associated assets.<br/>        """
        pass

    def list_dashboards(self, projectId: str, nextToken: str=None, maxResults: int=None) -> ListDashboardsResponse:
        r"""Retrieves a paginated list of dashboards for an IoT SiteWise Monitor project.

        :param self:
        :param maxResults:  The maximum number of results to return for each paginated request. Default: 50<br/>nextToken:  The token to be used for the next set of paginated results.<br/>projectId:  The ID of the project.<br/>
        :return: nextToken:  The token for the next set of results, or null if there are no additional results.<br/>dashboardSummaries:  A list that summarizes each dashboard in the project.<br/>        """
        pass

    def list_gateways(self, nextToken: str=None, maxResults: int=None) -> ListGatewaysResponse:
        r"""Retrieves a paginated list of gateways.

        :param self:
        :param maxResults:  The maximum number of results to return for each paginated request. Default: 50<br/>nextToken:  The token to be used for the next set of paginated results.<br/>
        :return: nextToken:  The token for the next set of results, or null if there are no additional results.<br/>gatewaySummaries:  A list that summarizes each gateway.<br/>        """
        pass

    def list_portals(self, nextToken: str=None, maxResults: int=None) -> ListPortalsResponse:
        r"""Retrieves a paginated list of IoT SiteWise Monitor portals.

        :param self:
        :param maxResults:  The maximum number of results to return for each paginated request. Default: 50<br/>nextToken:  The token to be used for the next set of paginated results.<br/>
        :return: nextToken:  The token for the next set of results, or null if there are no additional results.<br/>portalSummaries:  A list that summarizes each portal.<br/>        """
        pass

    def list_project_assets(self, projectId: str, nextToken: str=None, maxResults: int=None) -> ListProjectAssetsResponse:
        r"""Retrieves a paginated list of assets associated with an IoT SiteWise Monitor project.

        :param self:
        :param maxResults:  The maximum number of results to return for each paginated request. Default: 50<br/>nextToken:  The token to be used for the next set of paginated results.<br/>projectId:  The ID of the project.<br/>
        :return: nextToken:  The token for the next set of results, or null if there are no additional results.<br/>assetIds:  A list that contains the IDs of each asset associated with the project.<br/>        """
        pass

    def list_projects(self, portalId: str, nextToken: str=None, maxResults: int=None) -> ListProjectsResponse:
        r"""Retrieves a paginated list of projects for an IoT SiteWise Monitor portal.

        :param self:
        :param maxResults:  The maximum number of results to return for each paginated request. Default: 50<br/>nextToken:  The token to be used for the next set of paginated results.<br/>portalId:  The ID of the portal.<br/>
        :return: nextToken:  The token for the next set of results, or null if there are no additional results.<br/>projectSummaries:  A list that summarizes each project in the portal.<br/>        """
        pass

    def list_tags_for_resource(self, resourceArn: str) -> ListTagsForResourceResponse:
        r"""Retrieves the list of tags for an IoT SiteWise resource.

        :param self:
        :param resourceArn:  The <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">ARN</a> of the resource.<br/>
        :return: tags:  The list of key-value pairs that contain metadata for the resource. For more information, see <a href="https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html">Tagging your IoT SiteWise resources</a> in the <i>IoT SiteWise User Guide</i>.<br/>        """
        pass

    def put_default_encryption_configuration(self, encryptionType: str, kmsKeyId: str=None) -> PutDefaultEncryptionConfigurationResponse:
        r"""Sets the default encryption configuration for the Amazon Web Services account. For more information, see <a href="https://docs.aws.amazon.com/iot-sitewise/latest/userguide/key-management.html">Key management</a> in the <i>IoT SiteWise User Guide</i>.

        :param self:
        :param kmsKeyId:  The Key ID of the customer managed customer master key (CMK) used for KMS encryption. This is required if you use <code>KMS_BASED_ENCRYPTION</code>.<br/>encryptionType:  The type of encryption used for the encryption configuration.<br/>
        :return: configurationStatus:  The status of the account configuration. This contains the <code>ConfigurationState</code>. If there is an error, it also contains the <code>ErrorDetails</code>.:<br/>kmsKeyArn:  The Key ARN of the KMS CMK used for KMS encryption if you use <code>KMS_BASED_ENCRYPTION</code>.<br/>encryptionType:  The type of encryption used for the encryption configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>error</i> Contains associated error information, if any.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>error</b>: Contains associated error information, if any.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>state</i> The current state of the configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>message</i> The error message.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>code</i> The error code.<br/>        """
        pass

    def put_logging_options(self, loggingOptions: LoggingOptions) -> PutLoggingOptionsResponse:
        r"""Sets logging options for IoT SiteWise.

        :param self:
        :param loggingOptions:  The logging options to set.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>level</i> The IoT SiteWise logging verbosity level.<br/>
        :return:         """
        pass

    def put_storage_configuration(self, storageType: str, multiLayerStorage: MultiLayerStorage=None) -> PutStorageConfigurationResponse:
        r"""Configures storage settings for IoT SiteWise.

        :param self:
        :param multiLayerStorage:  Identifies a storage destination. If you specified <code>MULTI_LAYER_STORAGE</code> for the storage type, you must specify a <code>MultiLayerStorage</code> object.:<br/>storageType:  The type of storage that you specified for your data. The storage type can be one of the following values: <ul> <li>  <code>SITEWISE_DEFAULT_STORAGE</code> – IoT SiteWise replicates your data into a service managed database. </li> <li>  <code>MULTI_LAYER_STORAGE</code> – IoT SiteWise replicates your data into a service managed database and saves a copy of your raw data and metadata in an Amazon S3 object that you specified. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>customerManagedS3Storage</i> Contains information about a customer managed Amazon S3 bucket.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>customerManagedS3Storage</b>: Contains information about a customer managed Amazon S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>roleArn</i> The <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">ARN</a> of the Identity and Access Management role that allows IoT SiteWise to send data to Amazon S3.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>s3ResourceArn</i> The <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">ARN</a> of the Amazon S3 object. For more information about how to find the ARN for an Amazon S3 object, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-arn-format.html">Amazon S3 resources</a> in the <i>Amazon Simple Storage Service User Guide</i>.<br/>
        :return: configurationStatus:  Contains current status information for the configuration.:<br/>multiLayerStorage:  Contains information about the storage destination.:<br/>storageType:  The type of storage that you specified for your data. The storage type can be one of the following values: <ul> <li>  <code>SITEWISE_DEFAULT_STORAGE</code> – IoT SiteWise replicates your data into a service managed database. </li> <li>  <code>MULTI_LAYER_STORAGE</code> – IoT SiteWise replicates your data into a service managed database and saves a copy of your raw data and metadata in an Amazon S3 object that you specified. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>customerManagedS3Storage</i> Contains information about a customer managed Amazon S3 bucket.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>customerManagedS3Storage</b>: Contains information about a customer managed Amazon S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>roleArn</i> The <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">ARN</a> of the Identity and Access Management role that allows IoT SiteWise to send data to Amazon S3.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>s3ResourceArn</i> The <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">ARN</a> of the Amazon S3 object. For more information about how to find the ARN for an Amazon S3 object, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-arn-format.html">Amazon S3 resources</a> in the <i>Amazon Simple Storage Service User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>error</i> Contains associated error information, if any.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>error</b>: Contains associated error information, if any.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>state</i> The current state of the configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>message</i> The error message.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>code</i> The error code.<br/>        """
        pass

    def tag_resource(self, tags: TagMap, resourceArn: str) -> TagResourceResponse:
        r"""Adds tags to an IoT SiteWise resource. If a tag already exists for the resource, this operation updates the tag's value.

        :param self:
        :param tags:  A list of key-value pairs that contain metadata for the resource. For more information, see <a href="https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html">Tagging your IoT SiteWise resources</a> in the <i>IoT SiteWise User Guide</i>.<br/>resourceArn:  The <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">ARN</a> of the resource to tag.<br/>
        :return:         """
        pass

    def untag_resource(self, tagKeys: List[TagKey], resourceArn: str) -> UntagResourceResponse:
        r"""Removes a tag from an IoT SiteWise resource.

        :param self:
        :param tagKeys:  A list of keys for tags to remove from the resource.<br/>resourceArn:  The <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">ARN</a> of the resource to untag.<br/>
        :return:         """
        pass

    def update_access_policy(self, accessPolicyPermission: str, accessPolicyResource: Resource, accessPolicyIdentity: Identity, accessPolicyId: str, clientToken: str=None) -> UpdateAccessPolicyResponse:
        r"""Updates an existing access policy that specifies an identity's access to an IoT SiteWise Monitor portal or project resource.

        :param self:
        :param clientToken:  A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.<br/>accessPolicyPermission:  The permission level for this access policy. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.<br/>accessPolicyResource:  The IoT SiteWise Monitor resource for this access policy. Choose either a portal or a project.:<br/>accessPolicyIdentity:  The identity for this access policy. Choose an Amazon Web Services SSO user, an Amazon Web Services SSO group, or an IAM user.:<br/>accessPolicyId:  The ID of the access policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>iamRole</i> An IAM role identity.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>iamRole</b>: An IAM role identity.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>iamUser</i> An IAM user identity.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>iamUser</b>: An IAM user identity.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>group</i> An Amazon Web Services SSO group identity.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>group</b>: An Amazon Web Services SSO group identity.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>user</i> An Amazon Web Services SSO user identity.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>user</b>: An Amazon Web Services SSO user identity.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The Amazon Web Services SSO ID of the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The Amazon Web Services SSO ID of the group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The ARN of the IAM user. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html">IAM ARNs</a> in the <i>IAM User Guide</i>. <note> If you delete the IAM user, access policies that contain this identity include an empty <code>arn</code>. You can delete the access policy for the IAM user that no longer exists. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The ARN of the IAM role. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html">IAM ARNs</a> in the <i>IAM User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>project</i> A project resource.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>project</b>: A project resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>portal</i> A portal resource.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>portal</b>: A portal resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The ID of the portal.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The ID of the project.<br/>
        :return:         """
        pass

    def update_asset(self, assetName: str, assetId: str, clientToken: str=None) -> UpdateAssetResponse:
        r"""Updates an asset's name. For more information, see <a href="https://docs.aws.amazon.com/iot-sitewise/latest/userguide/update-assets-and-models.html">Updating assets and models</a> in the <i>IoT SiteWise User Guide</i>.

        :param self:
        :param clientToken:  A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.<br/>assetName:  A unique, friendly name for the asset.<br/>assetId:  The ID of the asset to update.<br/>
        :return: assetStatus:  The status of the asset, which contains a state (<code>UPDATING</code> after successfully calling this operation) and any error message.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>error</i> Contains associated error information, if any.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>error</b>: Contains associated error information, if any.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>state</i> The current status of the asset.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>message</i> The error message.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>code</i> The error code.<br/>        """
        pass

    def update_asset_model(self, assetModelName: str, assetModelId: str, assetModelDescription: str=None, assetModelProperties: List[AssetModelProperty]=None, assetModelHierarchies: List[AssetModelHierarchy]=None, assetModelCompositeModels: List[AssetModelCompositeModel]=None, clientToken: str=None) -> UpdateAssetModelResponse:
        r"""Updates an asset model and all of the assets that were created from the model. Each asset created from the model inherits the updated asset model's property and hierarchy definitions. For more information, see <a href="https://docs.aws.amazon.com/iot-sitewise/latest/userguide/update-assets-and-models.html">Updating assets and models</a> in the <i>IoT SiteWise User Guide</i>. <important> This operation overwrites the existing model with the provided model. To avoid deleting your asset model's properties or hierarchies, you must include their IDs and definitions in the updated asset model payload. For more information, see <a href="https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_DescribeAssetModel.html">DescribeAssetModel</a>. If you remove a property from an asset model, IoT SiteWise deletes all previous data for that property. If you remove a hierarchy definition from an asset model, IoT SiteWise disassociates every asset associated with that hierarchy. You can't change the type or data type of an existing property. </important>

        :param self:
        :param clientToken:  A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.<br/>assetModelCompositeModels:  The composite asset models that are part of this asset model. Composite asset models are asset models that contain specific properties. Each composite model has a type that defines the properties that the composite model supports. Use composite asset models to define alarms on this asset model.<br/>assetModelHierarchies:  The updated hierarchy definitions of the asset model. Each hierarchy specifies an asset model whose assets can be children of any other assets created from this asset model. For more information, see <a href="https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html">Asset hierarchies</a> in the <i>IoT SiteWise User Guide</i>. You can specify up to 10 hierarchies per asset model. For more information, see <a href="https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html">Quotas</a> in the <i>IoT SiteWise User Guide</i>.<br/>assetModelProperties:  The updated property definitions of the asset model. For more information, see <a href="https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-properties.html">Asset properties</a> in the <i>IoT SiteWise User Guide</i>. You can specify up to 200 properties per asset model. For more information, see <a href="https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html">Quotas</a> in the <i>IoT SiteWise User Guide</i>.<br/>assetModelDescription:  A description for the asset model.<br/>assetModelName:  A unique, friendly name for the asset model.<br/>assetModelId:  The ID of the asset model to update.<br/>
        :return: assetModelStatus:  The status of the asset model, which contains a state (<code>UPDATING</code> after successfully calling this operation) and any error message.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>error</i> Contains associated error information, if any.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>error</b>: Contains associated error information, if any.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>state</i> The current state of the asset model.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>message</i> The error message.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>code</i> The error code.<br/>        """
        pass

    def update_asset_property(self, propertyId: str, assetId: str, propertyAlias: str=None, propertyNotificationState: str=None, clientToken: str=None):
        r"""Updates an asset property's alias and notification state. <important> This operation overwrites the property's existing alias and notification state. To keep your existing property's alias or notification state, you must include the existing values in the UpdateAssetProperty request. For more information, see <a href="https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_DescribeAssetProperty.html">DescribeAssetProperty</a>. </important>

        :param self:
        :param clientToken:  A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.<br/>propertyNotificationState:  The MQTT notification state (enabled or disabled) for this asset property. When the notification state is enabled, IoT SiteWise publishes property value updates to a unique MQTT topic. For more information, see <a href="https://docs.aws.amazon.com/iot-sitewise/latest/userguide/interact-with-other-services.html">Interacting with other services</a> in the <i>IoT SiteWise User Guide</i>. If you omit this parameter, the notification state is set to <code>DISABLED</code>.<br/>propertyAlias:  The alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href="https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html">Mapping industrial data streams to asset properties</a> in the <i>IoT SiteWise User Guide</i>. If you omit this parameter, the alias is removed from the property.<br/>propertyId:  The ID of the asset property to be updated.<br/>assetId:  The ID of the asset to be updated.<br/>
        :return:         """
        pass

    def update_dashboard(self, dashboardDefinition: str, dashboardName: str, dashboardId: str, dashboardDescription: str=None, clientToken: str=None) -> UpdateDashboardResponse:
        r"""Updates an IoT SiteWise Monitor dashboard.

        :param self:
        :param clientToken:  A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.<br/>dashboardDefinition:  The new dashboard definition, as specified in a JSON literal. For detailed information, see <a href="https://docs.aws.amazon.com/iot-sitewise/latest/userguide/create-dashboards-using-aws-cli.html">Creating dashboards (CLI)</a> in the <i>IoT SiteWise User Guide</i>.<br/>dashboardDescription:  A new description for the dashboard.<br/>dashboardName:  A new friendly name for the dashboard.<br/>dashboardId:  The ID of the dashboard to update.<br/>
        :return:         """
        pass

    def update_gateway(self, gatewayName: str, gatewayId: str):
        r"""Updates a gateway's name.

        :param self:
        :param gatewayName:  A unique, friendly name for the gateway.<br/>gatewayId:  The ID of the gateway to update.<br/>
        :return:         """
        pass

    def update_gateway_capability_configuration(self, capabilityConfiguration: str, capabilityNamespace: str, gatewayId: str) -> UpdateGatewayCapabilityConfigurationResponse:
        r"""Updates a gateway capability configuration or defines a new capability configuration. Each gateway capability defines data sources for a gateway. A capability configuration can contain multiple data source configurations. If you define OPC-UA sources for a gateway in the IoT SiteWise console, all of your OPC-UA sources are stored in one capability configuration. To list all capability configurations for a gateway, use <a href="https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_DescribeGateway.html">DescribeGateway</a>.

        :param self:
        :param capabilityConfiguration:  The JSON document that defines the configuration for the gateway capability. For more information, see <a href="https://docs.aws.amazon.com/iot-sitewise/latest/userguide/configure-sources.html#configure-source-cli">Configuring data sources (CLI)</a> in the <i>IoT SiteWise User Guide</i>.<br/>capabilityNamespace:  The namespace of the gateway capability configuration to be updated. For example, if you configure OPC-UA sources from the IoT SiteWise console, your OPC-UA capability configuration has the namespace <code>iotsitewise:opcuacollector:version</code>, where <code>version</code> is a number such as <code>1</code>.<br/>gatewayId:  The ID of the gateway to be updated.<br/>
        :return: capabilitySyncStatus:  The synchronization status of the capability configuration. The sync status can be one of the following: <ul> <li>  <code>IN_SYNC</code> – The gateway is running the capability configuration. </li> <li>  <code>OUT_OF_SYNC</code> – The gateway hasn't received the capability configuration. </li> <li>  <code>SYNC_FAILED</code> – The gateway rejected the capability configuration. </li> </ul> After you update a capability configuration, its sync status is <code>OUT_OF_SYNC</code> until the gateway receives and applies or rejects the updated configuration.<br/>capabilityNamespace:  The namespace of the gateway capability.<br/>        """
        pass

    def update_portal(self, roleArn: str, portalContactEmail: str, portalName: str, portalId: str, portalDescription: str=None, portalLogoImage: Image=None, clientToken: str=None, notificationSenderEmail: str=None, alarms: Alarms=None) -> UpdatePortalResponse:
        r"""Updates an IoT SiteWise Monitor portal.

        :param self:
        :param alarms:  Contains the configuration information of an alarm created in an IoT SiteWise Monitor portal. You can use the alarm to monitor an asset property and get notified when the asset property value is outside a specified range. For more information, see <a href="https://docs.aws.amazon.com/iot-sitewise/latest/appguide/monitor-alarms.html">Monitoring with alarms</a> in the <i>IoT SiteWise Application Guide</i>.:<br/>notificationSenderEmail:  The email address that sends alarm notifications.<br/>clientToken:  A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.<br/>roleArn:  The <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">ARN</a> of a service role that allows the portal's users to access your IoT SiteWise resources on your behalf. For more information, see <a href="https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-service-role.html">Using service roles for IoT SiteWise Monitor</a> in the <i>IoT SiteWise User Guide</i>.<br/>portalLogoImage:  Contains an image that is one of the following: <ul> <li> An image file. Choose this option to upload a new image. </li> <li> The ID of an existing image. Choose this option to keep an existing image. </li> </ul>:<br/>portalContactEmail:  The Amazon Web Services administrator's contact email address.<br/>portalDescription:  A new description for the portal.<br/>portalName:  A new friendly name for the portal.<br/>portalId:  The ID of the portal to update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>file</i> Contains an image file.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>file</b>: Contains an image file.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The ID of an existing image. Specify this parameter to keep an existing image.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The file type of the image.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>data</i> The image file contents, represented as a base64-encoded string. The file size must be less than 1 MB.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>notificationLambdaArn</i> The <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">ARN</a> of the Lambda function that manages alarm notifications. For more information, see <a href="https://docs.aws.amazon.com/iotevents/latest/developerguide/lambda-support.html">Managing alarm notifications</a> in the <i>IoT Events Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>alarmRoleArn</i> The <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">ARN</a> of the IAM role that allows the alarm to perform actions and access Amazon Web Services resources and services, such as IoT Events.<br/>
        :return: portalStatus:  The status of the portal, which contains a state (<code>UPDATING</code> after successfully calling this operation) and any error message.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>error</i> Contains associated error information, if any.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>error</b>: Contains associated error information, if any.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>state</i> The current state of the portal.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>message</i> The error message.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>code</i> The error code.<br/>        """
        pass

    def update_project(self, projectName: str, projectId: str, projectDescription: str=None, clientToken: str=None) -> UpdateProjectResponse:
        r"""Updates an IoT SiteWise Monitor project.

        :param self:
        :param clientToken:  A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.<br/>projectDescription:  A new description for the project.<br/>projectName:  A new friendly name for the project.<br/>projectId:  The ID of the project to update.<br/>
        :return:         """
        pass





class IoTThingsGraph(BaseClient):
    r"""<fullname>AWS IoT Things Graph</fullname> AWS IoT Things Graph provides an integrated set of tools that enable developers to connect devices and services that use different standards, such as units of measure and communication protocols. AWS IoT Things Graph makes it possible to build IoT applications with little to no code by connecting devices and services and defining how they interact at an abstract level. For more information about how AWS IoT Things Graph works, see the <a href="https://docs.aws.amazon.com/thingsgraph/latest/ug/iot-tg-whatis.html">User Guide</a>."""


    class GetFlowTemplateRevisionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_flow_template_revisions` for valid parameters"""
            pass
    class GetSystemTemplateRevisionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_system_template_revisions` for valid parameters"""
            pass
    class ListFlowExecutionMessagesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_flow_execution_messages` for valid parameters"""
            pass
    class ListTagsForResourcePaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_tags_for_resource` for valid parameters"""
            pass
    class SearchEntitiesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `search_entities` for valid parameters"""
            pass
    class SearchFlowExecutionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `search_flow_executions` for valid parameters"""
            pass
    class SearchFlowTemplatesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `search_flow_templates` for valid parameters"""
            pass
    class SearchSystemInstancesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `search_system_instances` for valid parameters"""
            pass
    class SearchSystemTemplatesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `search_system_templates` for valid parameters"""
            pass
    class SearchThingsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `search_things` for valid parameters"""
            pass


    class AssociateEntityToThingRequest(Mapping):
        pass
    
    class AssociateEntityToThingResponse(Mapping):
        pass
    
    class Version(object):
        pass
    
    class CreateFlowTemplateRequest(Mapping):
        pass
    
    class CreateFlowTemplateResponse(Mapping):
        pass
    
    class DefinitionDocument(Mapping):
        pass
    
    class CreateSystemInstanceRequest(Mapping):
        pass
    
    class CreateSystemInstanceResponse(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class MetricsConfiguration(Mapping):
        pass
    
    class CreateSystemTemplateRequest(Mapping):
        pass
    
    class CreateSystemTemplateResponse(Mapping):
        pass
    
    class DeleteFlowTemplateRequest(Mapping):
        pass
    
    class DeleteFlowTemplateResponse(Mapping):
        pass
    
    class DeleteNamespaceRequest(Mapping):
        pass
    
    class DeleteNamespaceResponse(Mapping):
        pass
    
    class DeleteSystemInstanceRequest(Mapping):
        pass
    
    class DeleteSystemInstanceResponse(Mapping):
        pass
    
    class DeleteSystemTemplateRequest(Mapping):
        pass
    
    class DeleteSystemTemplateResponse(Mapping):
        pass
    
    class DeploySystemInstanceRequest(Mapping):
        pass
    
    class DeploySystemInstanceResponse(Mapping):
        pass
    
    class DeprecateFlowTemplateRequest(Mapping):
        pass
    
    class DeprecateFlowTemplateResponse(Mapping):
        pass
    
    class DeprecateSystemTemplateRequest(Mapping):
        pass
    
    class DeprecateSystemTemplateResponse(Mapping):
        pass
    
    class DescribeNamespaceRequest(Mapping):
        pass
    
    class DescribeNamespaceResponse(Mapping):
        pass
    
    class DissociateEntityFromThingRequest(Mapping):
        pass
    
    class DissociateEntityFromThingResponse(Mapping):
        pass
    
    class GetEntitiesRequest(Mapping):
        pass
    
    class GetEntitiesResponse(Mapping):
        pass
    
    class Urn(object):
        pass
    
    class GetFlowTemplateRequest(Mapping):
        pass
    
    class GetFlowTemplateResponse(Mapping):
        pass
    
    class GetFlowTemplateRevisionsRequest(Mapping):
        pass
    
    class GetFlowTemplateRevisionsResponse(Mapping):
        pass
    
    class GetNamespaceDeletionStatusRequest(Mapping):
        pass
    
    class GetNamespaceDeletionStatusResponse(Mapping):
        pass
    
    class GetSystemInstanceRequest(Mapping):
        pass
    
    class GetSystemInstanceResponse(Mapping):
        pass
    
    class GetSystemTemplateRequest(Mapping):
        pass
    
    class GetSystemTemplateResponse(Mapping):
        pass
    
    class GetSystemTemplateRevisionsRequest(Mapping):
        pass
    
    class GetSystemTemplateRevisionsResponse(Mapping):
        pass
    
    class GetUploadStatusRequest(Mapping):
        pass
    
    class GetUploadStatusResponse(Mapping):
        pass
    
    class ListFlowExecutionMessagesRequest(Mapping):
        pass
    
    class ListFlowExecutionMessagesResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class SearchEntitiesRequest(Mapping):
        pass
    
    class SearchEntitiesResponse(Mapping):
        pass
    
    class EntityType(object):
        pass
    
    class EntityFilter(Mapping):
        pass
    
    class SearchFlowExecutionsRequest(Mapping):
        pass
    
    class SearchFlowExecutionsResponse(Mapping):
        pass
    
    class Timestamp(object):
        pass
    
    class SearchFlowTemplatesRequest(Mapping):
        pass
    
    class SearchFlowTemplatesResponse(Mapping):
        pass
    
    class FlowTemplateFilter(Mapping):
        pass
    
    class SearchSystemInstancesRequest(Mapping):
        pass
    
    class SearchSystemInstancesResponse(Mapping):
        pass
    
    class SystemInstanceFilter(Mapping):
        pass
    
    class SearchSystemTemplatesRequest(Mapping):
        pass
    
    class SearchSystemTemplatesResponse(Mapping):
        pass
    
    class SystemTemplateFilter(Mapping):
        pass
    
    class SearchThingsRequest(Mapping):
        pass
    
    class SearchThingsResponse(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UndeploySystemInstanceRequest(Mapping):
        pass
    
    class UndeploySystemInstanceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateFlowTemplateRequest(Mapping):
        pass
    
    class UpdateFlowTemplateResponse(Mapping):
        pass
    
    class UpdateSystemTemplateRequest(Mapping):
        pass
    
    class UpdateSystemTemplateResponse(Mapping):
        pass
    
    class UploadEntityDefinitionsRequest(Mapping):
        pass
    
    class UploadEntityDefinitionsResponse(Mapping):
        pass
    
    class SyncWithPublicNamespace(object):
        pass
    
    class DeprecateExistingEntities(object):
        pass
    
    def associate_entity_to_thing(self, entityId: str, thingName: str, namespaceVersion: Version=None) -> AssociateEntityToThingResponse:
        r"""Associates a device with a concrete thing that is in the user's registry. A thing can be associated with only one device at a time. If you associate a thing with a new device id, its previous association will be removed.

        :param self:
        :param namespaceVersion:  The version of the user's namespace. Defaults to the latest version of the user's namespace.<br/>entityId:  The ID of the device to be associated with the thing. The ID should be in the following format.  <code>urn:tdm:REGION/ACCOUNT ID/default:device:DEVICENAME</code> <br/>thingName:  The name of the thing to which the entity is to be associated.<br/>
        :return:         """
        pass

    def create_flow_template(self, definition: DefinitionDocument, compatibleNamespaceVersion: Version=None) -> CreateFlowTemplateResponse:
        r"""Creates a workflow template. Workflows can be created only in the user's namespace. (The public namespace contains only entities.) The workflow can contain only entities in the specified namespace. The workflow is validated against the entities in the latest version of the user's namespace unless another namespace version is specified in the request.

        :param self:
        :param compatibleNamespaceVersion:  The namespace version in which the workflow is to be created. If no value is specified, the latest version is used by default.<br/>definition:  The workflow <code>DefinitionDocument</code>.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>text</i> The GraphQL text that defines the entity.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>language</i> The language used to define the entity. <code>GRAPHQL</code> is the only valid value.<br/>
        :return: summary:  The summary object that describes the created workflow.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The date when the workflow was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>revisionNumber</i> The revision number of the workflow.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The ARN of the workflow.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The ID of the workflow.<br/>        """
        pass

    def create_system_instance(self, target: str, definition: DefinitionDocument, tags: List[Tag]=None, greengrassGroupName: str=None, s3BucketName: str=None, metricsConfiguration: MetricsConfiguration=None, flowActionsRoleArn: str=None) -> CreateSystemInstanceResponse:
        r"""Creates a system instance.  This action validates the system instance, prepares the deployment-related resources. For Greengrass deployments, it updates the Greengrass group that is specified by the <code>greengrassGroupName</code> parameter. It also adds a file to the S3 bucket specified by the <code>s3BucketName</code> parameter. You need to call <code>DeploySystemInstance</code> after running this action. For Greengrass deployments, since this action modifies and adds resources to a Greengrass group and an S3 bucket on the caller's behalf, the calling identity must have write permissions to both the specified Greengrass group and S3 bucket. Otherwise, the call will fail with an authorization error. For cloud deployments, this action requires a <code>flowActionsRoleArn</code> value. This is an IAM role that has permissions to access AWS services, such as AWS Lambda and AWS IoT, that the flow uses when it executes. If the definition document doesn't specify a version of the user's namespace, the latest version will be used by default.

        :param self:
        :param flowActionsRoleArn:  The ARN of the IAM role that AWS IoT Things Graph will assume when it executes the flow. This role must have read and write access to AWS Lambda and AWS IoT and any other AWS services that the flow uses when it executes. This value is required if the value of the <code>target</code> parameter is <code>CLOUD</code>.<br/>metricsConfiguration:  An object that specifies whether cloud metrics are collected in a deployment and, if so, what role is used to collect metrics.:<br/>s3BucketName:  The name of the Amazon Simple Storage Service bucket that will be used to store and deploy the system instance's resource file. This value is required if the value of the <code>target</code> parameter is <code>GREENGRASS</code>.<br/>greengrassGroupName:  The name of the Greengrass group where the system instance will be deployed. This value is required if the value of the <code>target</code> parameter is <code>GREENGRASS</code>.<br/>target:  The target type of the deployment. Valid values are <code>GREENGRASS</code> and <code>CLOUD</code>.<br/>definition:  A document that defines an entity. :<br/>tags:  Metadata, consisting of key-value pairs, that can be used to categorize your system instances.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>text</i> The GraphQL text that defines the entity.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>language</i> The language used to define the entity. <code>GRAPHQL</code> is the only valid value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>metricRuleRoleArn</i> The ARN of the role that is used to collect cloud metrics.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>cloudMetricEnabled</i> A Boolean that specifies whether cloud metrics are collected.<br/>
        :return: summary:  The summary object that describes the new system instance.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>greengrassGroupVersionId</i> The version of the Greengrass group where the system instance is deployed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>greengrassGroupId</i> The ID of the Greengrass group where the system instance is deployed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>updatedAt</i>  The date and time when the system instance was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The date when the system instance was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>greengrassGroupName</i> The ID of the Greengrass group where the system instance is deployed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>target</i> The target of the system instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the system instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The ARN of the system instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The ID of the system instance.<br/>        """
        pass

    def create_system_template(self, definition: DefinitionDocument, compatibleNamespaceVersion: Version=None) -> CreateSystemTemplateResponse:
        r"""Creates a system. The system is validated against the entities in the latest version of the user's namespace unless another namespace version is specified in the request.

        :param self:
        :param compatibleNamespaceVersion:  The namespace version in which the system is to be created. If no value is specified, the latest version is used by default.<br/>definition:  The <code>DefinitionDocument</code> used to create the system.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>text</i> The GraphQL text that defines the entity.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>language</i> The language used to define the entity. <code>GRAPHQL</code> is the only valid value.<br/>
        :return: summary:  The summary object that describes the created system.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The date when the system was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>revisionNumber</i> The revision number of the system.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The ARN of the system.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The ID of the system.<br/>        """
        pass

    def delete_flow_template(self, id: str) -> DeleteFlowTemplateResponse:
        r"""Deletes a workflow. Any new system or deployment that contains this workflow will fail to update or deploy. Existing deployments that contain the workflow will continue to run (since they use a snapshot of the workflow taken at the time of deployment).

        :param self:
        :param id:  The ID of the workflow to be deleted. The ID should be in the following format.  <code>urn:tdm:REGION/ACCOUNT ID/default:workflow:WORKFLOWNAME</code> <br/>
        :return:         """
        pass

    def delete_namespace(self) -> DeleteNamespaceResponse:
        r"""Deletes the specified namespace. This action deletes all of the entities in the namespace. Delete the systems and flows that use entities in the namespace before performing this action.

        :param self:
        :param 
        :return: namespaceName:  The name of the namespace to be deleted.<br/>namespaceArn:  The ARN of the namespace to be deleted.<br/>        """
        pass

    def delete_system_instance(self, id: str=None) -> DeleteSystemInstanceResponse:
        r"""Deletes a system instance. Only system instances that have never been deployed, or that have been undeployed can be deleted. Users can create a new system instance that has the same ID as a deleted system instance.

        :param self:
        :param id:  The ID of the system instance to be deleted.<br/>
        :return:         """
        pass

    def delete_system_template(self, id: str) -> DeleteSystemTemplateResponse:
        r"""Deletes a system. New deployments can't contain the system after its deletion. Existing deployments that contain the system will continue to work because they use a snapshot of the system that is taken when it is deployed.

        :param self:
        :param id:  The ID of the system to be deleted. The ID should be in the following format.  <code>urn:tdm:REGION/ACCOUNT ID/default:system:SYSTEMNAME</code> <br/>
        :return:         """
        pass

    def deploy_system_instance(self, id: str=None) -> DeploySystemInstanceResponse:
        r""" <b>Greengrass and Cloud Deployments</b>  Deploys the system instance to the target specified in <code>CreateSystemInstance</code>.   <b>Greengrass Deployments</b>  If the system or any workflows and entities have been updated before this action is called, then the deployment will create a new Amazon Simple Storage Service resource file and then deploy it. Since this action creates a Greengrass deployment on the caller's behalf, the calling identity must have write permissions to the specified Greengrass group. Otherwise, the call will fail with an authorization error. For information about the artifacts that get added to your Greengrass core device when you use this API, see <a href="https://docs.aws.amazon.com/thingsgraph/latest/ug/iot-tg-greengrass.html">AWS IoT Things Graph and AWS IoT Greengrass</a>.

        :param self:
        :param id:  The ID of the system instance. This value is returned by the <code>CreateSystemInstance</code> action. The ID should be in the following format.  <code>urn:tdm:REGION/ACCOUNT ID/default:deployment:DEPLOYMENTNAME</code> <br/>
        :return: greengrassDeploymentId:  The ID of the Greengrass deployment used to deploy the system instance.<br/>summary:  An object that contains summary information about a system instance that was deployed. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>greengrassGroupVersionId</i> The version of the Greengrass group where the system instance is deployed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>greengrassGroupId</i> The ID of the Greengrass group where the system instance is deployed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>updatedAt</i>  The date and time when the system instance was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The date when the system instance was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>greengrassGroupName</i> The ID of the Greengrass group where the system instance is deployed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>target</i> The target of the system instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the system instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The ARN of the system instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The ID of the system instance.<br/>        """
        pass

    def deprecate_flow_template(self, id: str) -> DeprecateFlowTemplateResponse:
        r"""Deprecates the specified workflow. This action marks the workflow for deletion. Deprecated flows can't be deployed, but existing deployments will continue to run.

        :param self:
        :param id:  The ID of the workflow to be deleted. The ID should be in the following format.  <code>urn:tdm:REGION/ACCOUNT ID/default:workflow:WORKFLOWNAME</code> <br/>
        :return:         """
        pass

    def deprecate_system_template(self, id: str) -> DeprecateSystemTemplateResponse:
        r"""Deprecates the specified system.

        :param self:
        :param id:  The ID of the system to delete. The ID should be in the following format.  <code>urn:tdm:REGION/ACCOUNT ID/default:system:SYSTEMNAME</code> <br/>
        :return:         """
        pass

    def describe_namespace(self, namespaceName: str=None) -> DescribeNamespaceResponse:
        r"""Gets the latest version of the user's namespace and the public version that it is tracking.

        :param self:
        :param namespaceName:  The name of the user's namespace. Set this to <code>aws</code> to get the public namespace.<br/>
        :return: namespaceVersion:  The version of the user's namespace to describe.<br/>trackingNamespaceVersion:  The version of the public namespace that the latest version is tracking.<br/>trackingNamespaceName:  The name of the public namespace that the latest namespace version is tracking.<br/>namespaceName:  The name of the namespace.<br/>namespaceArn:  The ARN of the namespace.<br/>        """
        pass

    def dissociate_entity_from_thing(self, entityType: str, thingName: str) -> DissociateEntityFromThingResponse:
        r"""Dissociates a device entity from a concrete thing. The action takes only the type of the entity that you need to dissociate because only one entity of a particular type can be associated with a thing.

        :param self:
        :param entityType:  The entity type from which to disassociate the thing.<br/>thingName:  The name of the thing to disassociate.<br/>
        :return:         """
        pass

    def get_entities(self, ids: List[Urn], namespaceVersion: Version=None) -> GetEntitiesResponse:
        r"""Gets definitions of the specified entities. Uses the latest version of the user's namespace by default. This API returns the following TDM entities. <ul> <li> Properties </li> <li> States </li> <li> Events </li> <li> Actions </li> <li> Capabilities </li> <li> Mappings </li> <li> Devices </li> <li> Device Models </li> <li> Services </li> </ul> This action doesn't return definitions for systems, flows, and deployments.

        :param self:
        :param namespaceVersion:  The version of the user's namespace. Defaults to the latest version of the user's namespace.<br/>ids:  An array of entity IDs. The IDs should be in the following format.  <code>urn:tdm:REGION/ACCOUNT ID/default:device:DEVICENAME</code> <br/>
        :return: descriptions:  An array of descriptions for the specified entities.<br/>        """
        pass

    def get_flow_template(self, id: str, revisionNumber: Version=None) -> GetFlowTemplateResponse:
        r"""Gets the latest version of the <code>DefinitionDocument</code> and <code>FlowTemplateSummary</code> for the specified workflow.

        :param self:
        :param revisionNumber:  The number of the workflow revision to retrieve.<br/>id:  The ID of the workflow. The ID should be in the following format.  <code>urn:tdm:REGION/ACCOUNT ID/default:workflow:WORKFLOWNAME</code> <br/>
        :return: description:  The object that describes the specified workflow.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>validatedNamespaceVersion</i> The version of the user's namespace against which the workflow was validated. Use this value in your system instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>definition</i> A workflow's definition document.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>definition</b>: A workflow's definition document.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>summary</i> An object that contains summary information about a workflow.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>summary</b>: An object that contains summary information about a workflow.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The date when the workflow was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>revisionNumber</i> The revision number of the workflow.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The ARN of the workflow.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The ID of the workflow.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>text</i> The GraphQL text that defines the entity.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>language</i> The language used to define the entity. <code>GRAPHQL</code> is the only valid value.<br/>        """
        pass

    def get_flow_template_revisions(self, id: str, nextToken: str=None, maxResults: int=None) -> GetFlowTemplateRevisionsResponse:
        r"""Gets revisions of the specified workflow. Only the last 100 revisions are stored. If the workflow has been deprecated, this action will return revisions that occurred before the deprecation. This action won't work for workflows that have been deleted.

        :param self:
        :param maxResults:  The maximum number of results to return in the response.<br/>nextToken:  The string that specifies the next page of results. Use this when you're paginating results.<br/>id:  The ID of the workflow. The ID should be in the following format.  <code>urn:tdm:REGION/ACCOUNT ID/default:workflow:WORKFLOWNAME</code> <br/>
        :return: nextToken:  The string to specify as <code>nextToken</code> when you request the next page of results.<br/>summaries:  An array of objects that provide summary data about each revision.<br/>        """
        pass

    def get_namespace_deletion_status(self) -> GetNamespaceDeletionStatusResponse:
        r"""Gets the status of a namespace deletion task.

        :param self:
        :param 
        :return: errorMessage:  An error code returned by the namespace deletion task.<br/>errorCode:  An error code returned by the namespace deletion task.<br/>status:  The status of the deletion request.<br/>namespaceName:  The name of the namespace that is being deleted.<br/>namespaceArn:  The ARN of the namespace that is being deleted.<br/>        """
        pass

    def get_system_instance(self, id: str) -> GetSystemInstanceResponse:
        r"""Gets a system instance.

        :param self:
        :param id:  The ID of the system deployment instance. This value is returned by <code>CreateSystemInstance</code>. The ID should be in the following format.  <code>urn:tdm:REGION/ACCOUNT ID/default:deployment:DEPLOYMENTNAME</code> <br/>
        :return: description:  An object that describes the system instance.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>flowActionsRoleArn</i> The AWS Identity and Access Management (IAM) role that AWS IoT Things Graph assumes during flow execution in a cloud deployment. This role must have read and write permissionss to AWS Lambda and AWS IoT and to any other AWS services that the flow uses.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>validatedDependencyRevisions</i> A list of objects that contain all of the IDs and revision numbers of workflows and systems that are used in a system instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>validatedNamespaceVersion</i> The version of the user's namespace against which the system instance was validated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>metricsConfiguration</i> An object that specifies whether cloud metrics are collected in a deployment and, if so, what role is used to collect metrics.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>metricsConfiguration</b>: An object that specifies whether cloud metrics are collected in a deployment and, if so, what role is used to collect metrics.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>s3BucketName</i> The Amazon Simple Storage Service bucket where information about a system instance is stored.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>definition</i> A document that defines an entity. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>definition</b>: A document that defines an entity. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>summary</i> An object that contains summary information about a system instance.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>summary</b>: An object that contains summary information about a system instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>greengrassGroupVersionId</i> The version of the Greengrass group where the system instance is deployed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>greengrassGroupId</i> The ID of the Greengrass group where the system instance is deployed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>updatedAt</i>  The date and time when the system instance was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The date when the system instance was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>greengrassGroupName</i> The ID of the Greengrass group where the system instance is deployed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>target</i> The target of the system instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the system instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The ARN of the system instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The ID of the system instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>text</i> The GraphQL text that defines the entity.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>language</i> The language used to define the entity. <code>GRAPHQL</code> is the only valid value.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>metricRuleRoleArn</i> The ARN of the role that is used to collect cloud metrics.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>cloudMetricEnabled</i> A Boolean that specifies whether cloud metrics are collected.<br/>        """
        pass

    def get_system_template(self, id: str, revisionNumber: Version=None) -> GetSystemTemplateResponse:
        r"""Gets a system.

        :param self:
        :param revisionNumber:  The number that specifies the revision of the system to get.<br/>id:  The ID of the system to get. This ID must be in the user's namespace. The ID should be in the following format.  <code>urn:tdm:REGION/ACCOUNT ID/default:system:SYSTEMNAME</code> <br/>
        :return: description:  An object that contains summary data about the system.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>validatedNamespaceVersion</i> The namespace version against which the system was validated. Use this value in your system instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>definition</i> The definition document of a system.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>definition</b>: The definition document of a system.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>summary</i> An object that contains summary information about a system.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>summary</b>: An object that contains summary information about a system.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The date when the system was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>revisionNumber</i> The revision number of the system.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The ARN of the system.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The ID of the system.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>text</i> The GraphQL text that defines the entity.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>language</i> The language used to define the entity. <code>GRAPHQL</code> is the only valid value.<br/>        """
        pass

    def get_system_template_revisions(self, id: str, nextToken: str=None, maxResults: int=None) -> GetSystemTemplateRevisionsResponse:
        r"""Gets revisions made to the specified system template. Only the previous 100 revisions are stored. If the system has been deprecated, this action will return the revisions that occurred before its deprecation. This action won't work with systems that have been deleted.

        :param self:
        :param maxResults:  The maximum number of results to return in the response.<br/>nextToken:  The string that specifies the next page of results. Use this when you're paginating results.<br/>id:  The ID of the system template. The ID should be in the following format.  <code>urn:tdm:REGION/ACCOUNT ID/default:system:SYSTEMNAME</code> <br/>
        :return: nextToken:  The string to specify as <code>nextToken</code> when you request the next page of results. <br/>summaries:  An array of objects that contain summary data about the system template revisions.<br/>        """
        pass

    def get_upload_status(self, uploadId: str) -> GetUploadStatusResponse:
        r"""Gets the status of the specified upload.

        :param self:
        :param uploadId:  The ID of the upload. This value is returned by the <code>UploadEntityDefinitions</code> action.<br/>
        :return: createdDate:  The date at which the upload was created.<br/>failureReason:  The reason for an upload failure.<br/>namespaceVersion:  The version of the user's namespace. Defaults to the latest version of the user's namespace.<br/>namespaceName:  The name of the upload's namespace.<br/>namespaceArn:  The ARN of the upload.<br/>uploadStatus:  The status of the upload. The initial status is <code>IN_PROGRESS</code>. The response show all validation failures if the upload fails.<br/>uploadId:  The ID of the upload.<br/>        """
        pass

    def list_flow_execution_messages(self, flowExecutionId: str, nextToken: str=None, maxResults: int=None) -> ListFlowExecutionMessagesResponse:
        r"""Returns a list of objects that contain information about events in a flow execution.

        :param self:
        :param maxResults:  The maximum number of results to return in the response.<br/>nextToken:  The string that specifies the next page of results. Use this when you're paginating results.<br/>flowExecutionId:  The ID of the flow execution.<br/>
        :return: nextToken:  The string to specify as <code>nextToken</code> when you request the next page of results. <br/>messages:  A list of objects that contain information about events in the specified flow execution.<br/>        """
        pass

    def list_tags_for_resource(self, resourceArn: str, maxResults: int=None, nextToken: str=None) -> ListTagsForResourceResponse:
        r"""Lists all tags on an AWS IoT Things Graph resource.

        :param self:
        :param nextToken:  The token that specifies the next page of results to return.<br/>resourceArn:  The Amazon Resource Name (ARN) of the resource whose tags are to be returned.<br/>maxResults:  The maximum number of tags to return.<br/>
        :return: nextToken:  The token that specifies the next page of results to return.<br/>tags:  List of tags returned by the <code>ListTagsForResource</code> operation.<br/>        """
        pass

    def search_entities(self, entityTypes: List[EntityType], filters: List[EntityFilter]=None, nextToken: str=None, maxResults: int=None, namespaceVersion: Version=None) -> SearchEntitiesResponse:
        r"""Searches for entities of the specified type. You can search for entities in your namespace and the public namespace that you're tracking.

        :param self:
        :param namespaceVersion:  The version of the user's namespace. Defaults to the latest version of the user's namespace.<br/>maxResults:  The maximum number of results to return in the response.<br/>nextToken:  The string that specifies the next page of results. Use this when you're paginating results.<br/>filters:  Optional filter to apply to the search. Valid filters are <code>NAME</code> <code>NAMESPACE</code>, <code>SEMANTIC_TYPE_PATH</code> and <code>REFERENCED_ENTITY_ID</code>. <code>REFERENCED_ENTITY_ID</code> filters on entities that are used by the entity in the result set. For example, you can filter on the ID of a property that is used in a state. Multiple filters function as OR criteria in the query. Multiple values passed inside the filter function as AND criteria.<br/>entityTypes:  The entity types for which to search.<br/>
        :return: nextToken:  The string to specify as <code>nextToken</code> when you request the next page of results.<br/>descriptions:  An array of descriptions for each entity returned in the search result.<br/>        """
        pass

    def search_flow_executions(self, systemInstanceId: str, flowExecutionId: str=None, startTime: Timestamp=None, endTime: Timestamp=None, nextToken: str=None, maxResults: int=None) -> SearchFlowExecutionsResponse:
        r"""Searches for AWS IoT Things Graph workflow execution instances.

        :param self:
        :param maxResults:  The maximum number of results to return in the response.<br/>nextToken:  The string that specifies the next page of results. Use this when you're paginating results.<br/>endTime:  The date and time of the latest flow execution to return.<br/>startTime:  The date and time of the earliest flow execution to return.<br/>flowExecutionId:  The ID of a flow execution.<br/>systemInstanceId:  The ID of the system instance that contains the flow.<br/>
        :return: nextToken:  The string to specify as <code>nextToken</code> when you request the next page of results.<br/>summaries:  An array of objects that contain summary information about each workflow execution in the result set.<br/>        """
        pass

    def search_flow_templates(self, filters: List[FlowTemplateFilter]=None, nextToken: str=None, maxResults: int=None) -> SearchFlowTemplatesResponse:
        r"""Searches for summary information about workflows.

        :param self:
        :param maxResults:  The maximum number of results to return in the response.<br/>nextToken:  The string that specifies the next page of results. Use this when you're paginating results.<br/>filters:  An array of objects that limit the result set. The only valid filter is <code>DEVICE_MODEL_ID</code>.<br/>
        :return: nextToken:  The string to specify as <code>nextToken</code> when you request the next page of results.<br/>summaries:  An array of objects that contain summary information about each workflow in the result set.<br/>        """
        pass

    def search_system_instances(self, filters: List[SystemInstanceFilter]=None, nextToken: str=None, maxResults: int=None) -> SearchSystemInstancesResponse:
        r"""Searches for system instances in the user's account.

        :param self:
        :param maxResults:  The maximum number of results to return in the response.<br/>nextToken:  The string that specifies the next page of results. Use this when you're paginating results.<br/>filters:  Optional filter to apply to the search. Valid filters are <code>SYSTEM_TEMPLATE_ID</code>, <code>STATUS</code>, and <code>GREENGRASS_GROUP_NAME</code>. Multiple filters function as OR criteria in the query. Multiple values passed inside the filter function as AND criteria.<br/>
        :return: nextToken:  The string to specify as <code>nextToken</code> when you request the next page of results. <br/>summaries:  An array of objects that contain summary data abour the system instances in the result set.<br/>        """
        pass

    def search_system_templates(self, filters: List[SystemTemplateFilter]=None, nextToken: str=None, maxResults: int=None) -> SearchSystemTemplatesResponse:
        r"""Searches for summary information about systems in the user's account. You can filter by the ID of a workflow to return only systems that use the specified workflow.

        :param self:
        :param maxResults:  The maximum number of results to return in the response.<br/>nextToken:  The string that specifies the next page of results. Use this when you're paginating results.<br/>filters:  An array of filters that limit the result set. The only valid filter is <code>FLOW_TEMPLATE_ID</code>.<br/>
        :return: nextToken:  The string to specify as <code>nextToken</code> when you request the next page of results.<br/>summaries:  An array of objects that contain summary information about each system deployment in the result set.<br/>        """
        pass

    def search_things(self, entityId: str, nextToken: str=None, maxResults: int=None, namespaceVersion: Version=None) -> SearchThingsResponse:
        r"""Searches for things associated with the specified entity. You can search by both device and device model. For example, if two different devices, camera1 and camera2, implement the camera device model, the user can associate thing1 to camera1 and thing2 to camera2. <code>SearchThings(camera2)</code> will return only thing2, but <code>SearchThings(camera)</code> will return both thing1 and thing2. This action searches for exact matches and doesn't perform partial text matching.

        :param self:
        :param namespaceVersion:  The version of the user's namespace. Defaults to the latest version of the user's namespace.<br/>maxResults:  The maximum number of results to return in the response.<br/>nextToken:  The string that specifies the next page of results. Use this when you're paginating results.<br/>entityId:  The ID of the entity to which the things are associated. The IDs should be in the following format.  <code>urn:tdm:REGION/ACCOUNT ID/default:device:DEVICENAME</code> <br/>
        :return: nextToken:  The string to specify as <code>nextToken</code> when you request the next page of results.<br/>things:  An array of things in the result set.<br/>        """
        pass

    def tag_resource(self, tags: List[Tag], resourceArn: str) -> TagResourceResponse:
        r"""Creates a tag for the specified resource.

        :param self:
        :param tags:  A list of tags to add to the resource.&gt;<br/>resourceArn:  The Amazon Resource Name (ARN) of the resource whose tags are returned.<br/>
        :return:         """
        pass

    def undeploy_system_instance(self, id: str=None) -> UndeploySystemInstanceResponse:
        r"""Removes a system instance from its target (Cloud or Greengrass).

        :param self:
        :param id:  The ID of the system instance to remove from its target.<br/>
        :return: summary:  An object that contains summary information about the system instance that was removed from its target.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>greengrassGroupVersionId</i> The version of the Greengrass group where the system instance is deployed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>greengrassGroupId</i> The ID of the Greengrass group where the system instance is deployed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>updatedAt</i>  The date and time when the system instance was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The date when the system instance was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>greengrassGroupName</i> The ID of the Greengrass group where the system instance is deployed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>target</i> The target of the system instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the system instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The ARN of the system instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The ID of the system instance.<br/>        """
        pass

    def untag_resource(self, tagKeys: List[TagKey], resourceArn: str) -> UntagResourceResponse:
        r"""Removes a tag from the specified resource.

        :param self:
        :param tagKeys:  A list of tag key names to remove from the resource. You don't specify the value. Both the key and its associated value are removed.  This parameter to the API requires a JSON text string argument. For information on how to format a JSON parameter for the various command line tool environments, see <a href="https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-parameters.html#cli-using-param-json">Using JSON for Parameters</a> in the <i>AWS CLI User Guide</i>. <br/>resourceArn:  The Amazon Resource Name (ARN) of the resource whose tags are to be removed.<br/>
        :return:         """
        pass

    def update_flow_template(self, definition: DefinitionDocument, id: str, compatibleNamespaceVersion: Version=None) -> UpdateFlowTemplateResponse:
        r"""Updates the specified workflow. All deployed systems and system instances that use the workflow will see the changes in the flow when it is redeployed. If you don't want this behavior, copy the workflow (creating a new workflow with a different ID), and update the copy. The workflow can contain only entities in the specified namespace. 

        :param self:
        :param compatibleNamespaceVersion:  The version of the user's namespace. If no value is specified, the latest version is used by default. Use the <code>GetFlowTemplateRevisions</code> if you want to find earlier revisions of the flow to update.<br/>definition:  The <code>DefinitionDocument</code> that contains the updated workflow definition.:<br/>id:  The ID of the workflow to be updated. The ID should be in the following format.  <code>urn:tdm:REGION/ACCOUNT ID/default:workflow:WORKFLOWNAME</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>text</i> The GraphQL text that defines the entity.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>language</i> The language used to define the entity. <code>GRAPHQL</code> is the only valid value.<br/>
        :return: summary:  An object containing summary information about the updated workflow.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The date when the workflow was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>revisionNumber</i> The revision number of the workflow.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The ARN of the workflow.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The ID of the workflow.<br/>        """
        pass

    def update_system_template(self, definition: DefinitionDocument, id: str, compatibleNamespaceVersion: Version=None) -> UpdateSystemTemplateResponse:
        r"""Updates the specified system. You don't need to run this action after updating a workflow. Any deployment that uses the system will see the changes in the system when it is redeployed.

        :param self:
        :param compatibleNamespaceVersion:  The version of the user's namespace. Defaults to the latest version of the user's namespace. If no value is specified, the latest version is used by default.<br/>definition:  The <code>DefinitionDocument</code> that contains the updated system definition.:<br/>id:  The ID of the system to be updated. The ID should be in the following format.  <code>urn:tdm:REGION/ACCOUNT ID/default:system:SYSTEMNAME</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>text</i> The GraphQL text that defines the entity.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>language</i> The language used to define the entity. <code>GRAPHQL</code> is the only valid value.<br/>
        :return: summary:  An object containing summary information about the updated system.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The date when the system was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>revisionNumber</i> The revision number of the system.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The ARN of the system.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The ID of the system.<br/>        """
        pass

    def upload_entity_definitions(self, document: DefinitionDocument=None, syncWithPublicNamespace: SyncWithPublicNamespace=None, deprecateExistingEntities: DeprecateExistingEntities=None) -> UploadEntityDefinitionsResponse:
        r"""Asynchronously uploads one or more entity definitions to the user's namespace. The <code>document</code> parameter is required if <code>syncWithPublicNamespace</code> and <code>deleteExistingEntites</code> are false. If the <code>syncWithPublicNamespace</code> parameter is set to <code>true</code>, the user's namespace will synchronize with the latest version of the public namespace. If <code>deprecateExistingEntities</code> is set to true, all entities in the latest version will be deleted before the new <code>DefinitionDocument</code> is uploaded. When a user uploads entity definitions for the first time, the service creates a new namespace for the user. The new namespace tracks the public namespace. Currently users can have only one namespace. The namespace version increments whenever a user uploads entity definitions that are backwards-incompatible and whenever a user sets the <code>syncWithPublicNamespace</code> parameter or the <code>deprecateExistingEntities</code> parameter to <code>true</code>. The IDs for all of the entities should be in URN format. Each entity must be in the user's namespace. Users can't create entities in the public namespace, but entity definitions can refer to entities in the public namespace. Valid entities are <code>Device</code>, <code>DeviceModel</code>, <code>Service</code>, <code>Capability</code>, <code>State</code>, <code>Action</code>, <code>Event</code>, <code>Property</code>, <code>Mapping</code>, <code>Enum</code>. 

        :param self:
        :param deprecateExistingEntities:  A Boolean that specifies whether to deprecate all entities in the latest version before uploading the new <code>DefinitionDocument</code>. If set to <code>true</code>, the upload will create a new namespace version.<br/>syncWithPublicNamespace:  A Boolean that specifies whether to synchronize with the latest version of the public namespace. If set to <code>true</code>, the upload will create a new namespace version.<br/>document:  The <code>DefinitionDocument</code> that defines the updated entities.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>text</i> The GraphQL text that defines the entity.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>language</i> The language used to define the entity. <code>GRAPHQL</code> is the only valid value.<br/>
        :return: uploadId:  The ID that specifies the upload action. You can use this to track the status of the upload.<br/>        """
        pass





class IoTWireless(BaseClient):
    r"""AWS IoT Wireless API documentation"""




    class AssociateAwsAccountWithPartnerAccountRequest(Mapping):
        pass
    
    class AssociateAwsAccountWithPartnerAccountResponse(Mapping):
        pass
    
    class SidewalkAccountInfo(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class AssociateWirelessDeviceWithThingRequest(Mapping):
        pass
    
    class AssociateWirelessDeviceWithThingResponse(Mapping):
        pass
    
    class AssociateWirelessGatewayWithCertificateRequest(Mapping):
        pass
    
    class AssociateWirelessGatewayWithCertificateResponse(Mapping):
        pass
    
    class AssociateWirelessGatewayWithThingRequest(Mapping):
        pass
    
    class AssociateWirelessGatewayWithThingResponse(Mapping):
        pass
    
    class CreateDestinationRequest(Mapping):
        pass
    
    class CreateDestinationResponse(Mapping):
        pass
    
    class CreateDeviceProfileRequest(Mapping):
        pass
    
    class CreateDeviceProfileResponse(Mapping):
        pass
    
    class LoRaWANDeviceProfile(Mapping):
        pass
    
    class CreateServiceProfileRequest(Mapping):
        pass
    
    class CreateServiceProfileResponse(Mapping):
        pass
    
    class LoRaWANServiceProfile(Mapping):
        pass
    
    class CreateWirelessDeviceRequest(Mapping):
        pass
    
    class CreateWirelessDeviceResponse(Mapping):
        pass
    
    class LoRaWANDevice(Mapping):
        pass
    
    class CreateWirelessGatewayRequest(Mapping):
        pass
    
    class CreateWirelessGatewayResponse(Mapping):
        pass
    
    class LoRaWANGateway(Mapping):
        pass
    
    class CreateWirelessGatewayTaskRequest(Mapping):
        pass
    
    class CreateWirelessGatewayTaskResponse(Mapping):
        pass
    
    class CreateWirelessGatewayTaskDefinitionRequest(Mapping):
        pass
    
    class CreateWirelessGatewayTaskDefinitionResponse(Mapping):
        pass
    
    class AutoCreateTasks(object):
        pass
    
    class UpdateWirelessGatewayTaskCreate(Mapping):
        pass
    
    class DeleteDestinationRequest(Mapping):
        pass
    
    class DeleteDestinationResponse(Mapping):
        pass
    
    class DeleteDeviceProfileRequest(Mapping):
        pass
    
    class DeleteDeviceProfileResponse(Mapping):
        pass
    
    class DeleteServiceProfileRequest(Mapping):
        pass
    
    class DeleteServiceProfileResponse(Mapping):
        pass
    
    class DeleteWirelessDeviceRequest(Mapping):
        pass
    
    class DeleteWirelessDeviceResponse(Mapping):
        pass
    
    class DeleteWirelessGatewayRequest(Mapping):
        pass
    
    class DeleteWirelessGatewayResponse(Mapping):
        pass
    
    class DeleteWirelessGatewayTaskRequest(Mapping):
        pass
    
    class DeleteWirelessGatewayTaskResponse(Mapping):
        pass
    
    class DeleteWirelessGatewayTaskDefinitionRequest(Mapping):
        pass
    
    class DeleteWirelessGatewayTaskDefinitionResponse(Mapping):
        pass
    
    class DisassociateAwsAccountFromPartnerAccountRequest(Mapping):
        pass
    
    class DisassociateAwsAccountFromPartnerAccountResponse(Mapping):
        pass
    
    class DisassociateWirelessDeviceFromThingRequest(Mapping):
        pass
    
    class DisassociateWirelessDeviceFromThingResponse(Mapping):
        pass
    
    class DisassociateWirelessGatewayFromCertificateRequest(Mapping):
        pass
    
    class DisassociateWirelessGatewayFromCertificateResponse(Mapping):
        pass
    
    class DisassociateWirelessGatewayFromThingRequest(Mapping):
        pass
    
    class DisassociateWirelessGatewayFromThingResponse(Mapping):
        pass
    
    class GetDestinationRequest(Mapping):
        pass
    
    class GetDestinationResponse(Mapping):
        pass
    
    class GetDeviceProfileRequest(Mapping):
        pass
    
    class GetDeviceProfileResponse(Mapping):
        pass
    
    class GetLogLevelsByResourceTypesRequest(Mapping):
        pass
    
    class GetLogLevelsByResourceTypesResponse(Mapping):
        pass
    
    class GetPartnerAccountRequest(Mapping):
        pass
    
    class GetPartnerAccountResponse(Mapping):
        pass
    
    class GetResourceLogLevelRequest(Mapping):
        pass
    
    class GetResourceLogLevelResponse(Mapping):
        pass
    
    class GetServiceEndpointRequest(Mapping):
        pass
    
    class GetServiceEndpointResponse(Mapping):
        pass
    
    class GetServiceProfileRequest(Mapping):
        pass
    
    class GetServiceProfileResponse(Mapping):
        pass
    
    class GetWirelessDeviceRequest(Mapping):
        pass
    
    class GetWirelessDeviceResponse(Mapping):
        pass
    
    class GetWirelessDeviceStatisticsRequest(Mapping):
        pass
    
    class GetWirelessDeviceStatisticsResponse(Mapping):
        pass
    
    class GetWirelessGatewayRequest(Mapping):
        pass
    
    class GetWirelessGatewayResponse(Mapping):
        pass
    
    class GetWirelessGatewayCertificateRequest(Mapping):
        pass
    
    class GetWirelessGatewayCertificateResponse(Mapping):
        pass
    
    class GetWirelessGatewayFirmwareInformationRequest(Mapping):
        pass
    
    class GetWirelessGatewayFirmwareInformationResponse(Mapping):
        pass
    
    class GetWirelessGatewayStatisticsRequest(Mapping):
        pass
    
    class GetWirelessGatewayStatisticsResponse(Mapping):
        pass
    
    class GetWirelessGatewayTaskRequest(Mapping):
        pass
    
    class GetWirelessGatewayTaskResponse(Mapping):
        pass
    
    class GetWirelessGatewayTaskDefinitionRequest(Mapping):
        pass
    
    class GetWirelessGatewayTaskDefinitionResponse(Mapping):
        pass
    
    class ListDestinationsRequest(Mapping):
        pass
    
    class ListDestinationsResponse(Mapping):
        pass
    
    class ListDeviceProfilesRequest(Mapping):
        pass
    
    class ListDeviceProfilesResponse(Mapping):
        pass
    
    class ListPartnerAccountsRequest(Mapping):
        pass
    
    class ListPartnerAccountsResponse(Mapping):
        pass
    
    class ListServiceProfilesRequest(Mapping):
        pass
    
    class ListServiceProfilesResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class ListWirelessDevicesRequest(Mapping):
        pass
    
    class ListWirelessDevicesResponse(Mapping):
        pass
    
    class ListWirelessGatewayTaskDefinitionsRequest(Mapping):
        pass
    
    class ListWirelessGatewayTaskDefinitionsResponse(Mapping):
        pass
    
    class ListWirelessGatewaysRequest(Mapping):
        pass
    
    class ListWirelessGatewaysResponse(Mapping):
        pass
    
    class PutResourceLogLevelRequest(Mapping):
        pass
    
    class PutResourceLogLevelResponse(Mapping):
        pass
    
    class ResetAllResourceLogLevelsRequest(Mapping):
        pass
    
    class ResetAllResourceLogLevelsResponse(Mapping):
        pass
    
    class ResetResourceLogLevelRequest(Mapping):
        pass
    
    class ResetResourceLogLevelResponse(Mapping):
        pass
    
    class SendDataToWirelessDeviceRequest(Mapping):
        pass
    
    class SendDataToWirelessDeviceResponse(Mapping):
        pass
    
    class WirelessMetadata(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class TestWirelessDeviceRequest(Mapping):
        pass
    
    class TestWirelessDeviceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateDestinationRequest(Mapping):
        pass
    
    class UpdateDestinationResponse(Mapping):
        pass
    
    class UpdateLogLevelsByResourceTypesRequest(Mapping):
        pass
    
    class UpdateLogLevelsByResourceTypesResponse(Mapping):
        pass
    
    class WirelessDeviceLogOption(Mapping):
        pass
    
    class WirelessGatewayLogOption(Mapping):
        pass
    
    class UpdatePartnerAccountRequest(Mapping):
        pass
    
    class UpdatePartnerAccountResponse(Mapping):
        pass
    
    class SidewalkUpdateAccount(Mapping):
        pass
    
    class UpdateWirelessDeviceRequest(Mapping):
        pass
    
    class UpdateWirelessDeviceResponse(Mapping):
        pass
    
    class LoRaWANUpdateDevice(Mapping):
        pass
    
    class UpdateWirelessGatewayRequest(Mapping):
        pass
    
    class UpdateWirelessGatewayResponse(Mapping):
        pass
    
    class JoinEuiRange(object):
        pass
    
    class NetId(object):
        pass
    
    def associate_aws_account_with_partner_account(self, Sidewalk: SidewalkAccountInfo, ClientRequestToken: str=None, Tags: List[Tag]=None) -> AssociateAwsAccountWithPartnerAccountResponse:
        r"""Associates a partner account with your AWS account.

        :param self:
        :param Tags:  The tags to attach to the specified resource. Tags are metadata that you can use to manage a resource.<br/>ClientRequestToken:  Each resource must have a unique client request token. If you try to create a new resource with the same token as a resource that already exists, an exception occurs. If you omit this value, AWS SDKs will automatically generate a unique client request. <br/>Sidewalk:  The Sidewalk account credentials.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AppServerPrivateKey</i> The Sidewalk application server private key.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AmazonId</i> The Sidewalk Amazon ID.<br/>
        :return: Arn:  The Amazon Resource Name of the resource.<br/>Sidewalk:  The Sidewalk account credentials.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AppServerPrivateKey</i> The Sidewalk application server private key.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AmazonId</i> The Sidewalk Amazon ID.<br/>        """
        pass

    def associate_wireless_device_with_thing(self, ThingArn: str, Id: str) -> AssociateWirelessDeviceWithThingResponse:
        r"""Associates a wireless device with a thing.

        :param self:
        :param ThingArn:  The ARN of the thing to associate with the wireless device.<br/>Id:  The ID of the resource to update.<br/>
        :return:         """
        pass

    def associate_wireless_gateway_with_certificate(self, IotCertificateId: str, Id: str) -> AssociateWirelessGatewayWithCertificateResponse:
        r"""Associates a wireless gateway with a certificate.

        :param self:
        :param IotCertificateId:  The ID of the certificate to associate with the wireless gateway.<br/>Id:  The ID of the resource to update.<br/>
        :return: IotCertificateId:  The ID of the certificate associated with the wireless gateway.<br/>        """
        pass

    def associate_wireless_gateway_with_thing(self, ThingArn: str, Id: str) -> AssociateWirelessGatewayWithThingResponse:
        r"""Associates a wireless gateway with a thing.

        :param self:
        :param ThingArn:  The ARN of the thing to associate with the wireless gateway.<br/>Id:  The ID of the resource to update.<br/>
        :return:         """
        pass

    def create_destination(self, RoleArn: str, Expression: str, ExpressionType: str, Name: str, Description: str=None, Tags: List[Tag]=None, ClientRequestToken: str=None) -> CreateDestinationResponse:
        r"""Creates a new destination that maps a device message to an AWS IoT rule.

        :param self:
        :param ClientRequestToken:  Each resource must have a unique client request token. If you try to create a new resource with the same token as a resource that already exists, an exception occurs. If you omit this value, AWS SDKs will automatically generate a unique client request. <br/>Tags:  The tags to attach to the new destination. Tags are metadata that you can use to manage a resource.<br/>RoleArn:  The ARN of the IAM Role that authorizes the destination.<br/>Description:  The description of the new resource.<br/>Expression:  The rule name or topic rule to send messages to.<br/>ExpressionType:  The type of value in <code>Expression</code>.<br/>Name:  The name of the new resource.<br/>
        :return: Name:  The name of the new resource.<br/>Arn:  The Amazon Resource Name of the new resource.<br/>        """
        pass

    def create_device_profile(self, Name: str=None, LoRaWAN: LoRaWANDeviceProfile=None, Tags: List[Tag]=None, ClientRequestToken: str=None) -> CreateDeviceProfileResponse:
        r"""Creates a new device profile.

        :param self:
        :param ClientRequestToken:  Each resource must have a unique client request token. If you try to create a new resource with the same token as a resource that already exists, an exception occurs. If you omit this value, AWS SDKs will automatically generate a unique client request. <br/>Tags:  The tags to attach to the new device profile. Tags are metadata that you can use to manage a resource.<br/>LoRaWAN:  The device profile information to use to create the device profile.:<br/>Name:  The name of the new resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Supports32BitFCnt</i> The Supports32BitFCnt value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SupportsJoin</i> The SupportsJoin value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RfRegion</i> The frequency band (RFRegion) value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxDutyCycle</i> The MaxDutyCycle value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxEirp</i> The MaxEIRP value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FactoryPresetFreqsList</i> The list of values that make up the FactoryPresetFreqs value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RxFreq2</i> The RXFreq2 value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RxDataRate2</i> The RXDataRate2 value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RxDrOffset1</i> The RXDROffset1 value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RxDelay1</i> The RXDelay1 value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RegParamsRevision</i> The version of regional parameters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MacVersion</i> The MAC version (such as OTAA 1.1 or OTAA 1.0.3) to use with this device profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClassCTimeout</i> The ClassCTimeout value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SupportsClassC</i> The SupportsClassC value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PingSlotFreq</i> The PingSlotFreq value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PingSlotDr</i> The PingSlotDR value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PingSlotPeriod</i> The PingSlotPeriod value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClassBTimeout</i> The ClassBTimeout value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SupportsClassB</i> The SupportsClassB value.<br/>
        :return: Id:  The ID of the new device profile.<br/>Arn:  The Amazon Resource Name of the new resource.<br/>        """
        pass

    def create_service_profile(self, Name: str=None, LoRaWAN: LoRaWANServiceProfile=None, Tags: List[Tag]=None, ClientRequestToken: str=None) -> CreateServiceProfileResponse:
        r"""Creates a new service profile.

        :param self:
        :param ClientRequestToken:  Each resource must have a unique client request token. If you try to create a new resource with the same token as a resource that already exists, an exception occurs. If you omit this value, AWS SDKs will automatically generate a unique client request. <br/>Tags:  The tags to attach to the new service profile. Tags are metadata that you can use to manage a resource.<br/>LoRaWAN:  The service profile information to use to create the service profile.:<br/>Name:  The name of the new resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AddGwMetadata</i> The AddGWMetaData value.<br/>
        :return: Id:  The ID of the new service profile.<br/>Arn:  The Amazon Resource Name of the new resource.<br/>        """
        pass

    def create_wireless_device(self, DestinationName: str, Type: str, Name: str=None, Description: str=None, ClientRequestToken: str=None, LoRaWAN: LoRaWANDevice=None, Tags: List[Tag]=None) -> CreateWirelessDeviceResponse:
        r"""Provisions a wireless device.

        :param self:
        :param Tags:  The tags to attach to the new wireless device. Tags are metadata that you can use to manage a resource.<br/>LoRaWAN:  The device configuration information to use to create the wireless device.:<br/>ClientRequestToken:  Each resource must have a unique client request token. If you try to create a new resource with the same token as a resource that already exists, an exception occurs. If you omit this value, AWS SDKs will automatically generate a unique client request. <br/>DestinationName:  The name of the destination to assign to the new wireless device.<br/>Description:  The description of the new resource.<br/>Name:  The name of the new resource.<br/>Type:  The wireless device type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AbpV1_0_x</i> LoRaWAN object for create APIs&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AbpV1_0_x</b>: LoRaWAN object for create APIs<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AbpV1_1</i> ABP device object for create APIs for v1.1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AbpV1_1</b>: ABP device object for create APIs for v1.1<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OtaaV1_0_x</i> OTAA device object for create APIs for v1.0.x&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>OtaaV1_0_x</b>: OTAA device object for create APIs for v1.0.x<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OtaaV1_1</i> OTAA device object for v1.1 for create APIs&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>OtaaV1_1</b>: OTAA device object for v1.1 for create APIs<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceProfileId</i> The ID of the service profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeviceProfileId</i> The ID of the device profile for the new wireless device.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DevEui</i> The DevEUI value.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>JoinEui</i> The JoinEUI value.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NwkKey</i> The NwkKey value.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AppKey</i> The AppKey value.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AppEui</i> The AppEUI value.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AppKey</i> The AppKey value.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DevAddr</i> The DevAddr value.<br/>Session keys for ABP v1.1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SessionKeys</b>: Session keys for ABP v1.1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DevAddr</i> The DevAddr value.<br/>Session keys for ABP v1.0.x&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SessionKeys</b>: Session keys for ABP v1.0.x
        :return: Id:  The ID of the new wireless device.<br/>Arn:  The Amazon Resource Name of the new resource.<br/>        """
        pass

    def create_wireless_gateway(self, LoRaWAN: LoRaWANGateway, Name: str=None, Description: str=None, Tags: List[Tag]=None, ClientRequestToken: str=None) -> CreateWirelessGatewayResponse:
        r"""Provisions a wireless gateway.

        :param self:
        :param ClientRequestToken:  Each resource must have a unique client request token. If you try to create a new resource with the same token as a resource that already exists, an exception occurs. If you omit this value, AWS SDKs will automatically generate a unique client request. <br/>Tags:  The tags to attach to the new wireless gateway. Tags are metadata that you can use to manage a resource.<br/>LoRaWAN:  The gateway configuration information to use to create the wireless gateway.:<br/>Description:  The description of the new resource.<br/>Name:  The name of the new resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubBands</i> A list of integer indicating which sub bands are supported by LoRa gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetIdFilters</i> A list of NetId values that are used by LoRa gateways to filter the uplink frames.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JoinEuiFilters</i> A list of JoinEuiRange used by LoRa gateways to filter LoRa frames.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RfRegion</i> The frequency band (RFRegion) value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GatewayEui</i> The gateway's EUI value.<br/>
        :return: Id:  The ID of the new wireless gateway.<br/>Arn:  The Amazon Resource Name of the new resource.<br/>        """
        pass

    def create_wireless_gateway_task(self, WirelessGatewayTaskDefinitionId: str, Id: str) -> CreateWirelessGatewayTaskResponse:
        r"""Creates a task for a wireless gateway.

        :param self:
        :param WirelessGatewayTaskDefinitionId:  The ID of the WirelessGatewayTaskDefinition.<br/>Id:  The ID of the resource to update.<br/>
        :return: Status:  The status of the request.<br/>WirelessGatewayTaskDefinitionId:  The ID of the WirelessGatewayTaskDefinition.<br/>        """
        pass

    def create_wireless_gateway_task_definition(self, AutoCreateTasks: AutoCreateTasks, Name: str=None, Update: UpdateWirelessGatewayTaskCreate=None, ClientRequestToken: str=None, Tags: List[Tag]=None) -> CreateWirelessGatewayTaskDefinitionResponse:
        r"""Creates a gateway task definition.

        :param self:
        :param Tags:  The tags to attach to the specified resource. Tags are metadata that you can use to manage a resource.<br/>ClientRequestToken:  Each resource must have a unique client request token. If you try to create a new resource with the same token as a resource that already exists, an exception occurs. If you omit this value, AWS SDKs will automatically generate a unique client request. <br/>Update:  Information about the gateways to update.:<br/>Name:  The name of the new resource.<br/>AutoCreateTasks:  Whether to automatically create tasks using this task definition for all gateways with the specified current version. If <code>false</code>, the task must me created by calling <code>CreateWirelessGatewayTask</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LoRaWAN</i> The properties that relate to the LoRaWAN wireless gateway.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>LoRaWAN</b>: The properties that relate to the LoRaWAN wireless gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdateDataRole</i> The IAM role used to read data from the S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdateDataSource</i> The link to the S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SigKeyCrc</i> The CRC of the signature private key to check.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdateSignature</i> The signature used to verify the update firmware.<br/>The version of the gateways that should receive the update.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CurrentVersion</b>: The version of the gateways that should receive the update.
        :return: Arn:  The Amazon Resource Name of the resource.<br/>Id:  The ID of the new wireless gateway task definition.<br/>        """
        pass

    def delete_destination(self, Name: str) -> DeleteDestinationResponse:
        r"""Deletes a destination.

        :param self:
        :param Name:  The name of the resource to delete.<br/>
        :return:         """
        pass

    def delete_device_profile(self, Id: str) -> DeleteDeviceProfileResponse:
        r"""Deletes a device profile.

        :param self:
        :param Id:  The ID of the resource to delete.<br/>
        :return:         """
        pass

    def delete_service_profile(self, Id: str) -> DeleteServiceProfileResponse:
        r"""Deletes a service profile.

        :param self:
        :param Id:  The ID of the resource to delete.<br/>
        :return:         """
        pass

    def delete_wireless_device(self, Id: str) -> DeleteWirelessDeviceResponse:
        r"""Deletes a wireless device.

        :param self:
        :param Id:  The ID of the resource to delete.<br/>
        :return:         """
        pass

    def delete_wireless_gateway(self, Id: str) -> DeleteWirelessGatewayResponse:
        r"""Deletes a wireless gateway.

        :param self:
        :param Id:  The ID of the resource to delete.<br/>
        :return:         """
        pass

    def delete_wireless_gateway_task(self, Id: str) -> DeleteWirelessGatewayTaskResponse:
        r"""Deletes a wireless gateway task.

        :param self:
        :param Id:  The ID of the resource to delete.<br/>
        :return:         """
        pass

    def delete_wireless_gateway_task_definition(self, Id: str) -> DeleteWirelessGatewayTaskDefinitionResponse:
        r"""Deletes a wireless gateway task definition. Deleting this task definition does not affect tasks that are currently in progress.

        :param self:
        :param Id:  The ID of the resource to delete.<br/>
        :return:         """
        pass

    def disassociate_aws_account_from_partner_account(self, PartnerType: str, PartnerAccountId: str) -> DisassociateAwsAccountFromPartnerAccountResponse:
        r"""Disassociates your AWS account from a partner account. If <code>PartnerAccountId</code> and <code>PartnerType</code> are <code>null</code>, disassociates your AWS account from all partner accounts.

        :param self:
        :param PartnerType:  The partner type.<br/>PartnerAccountId:  The partner account ID to disassociate from the AWS account.<br/>
        :return:         """
        pass

    def disassociate_wireless_device_from_thing(self, Id: str) -> DisassociateWirelessDeviceFromThingResponse:
        r"""Disassociates a wireless device from its currently associated thing.

        :param self:
        :param Id:  The ID of the resource to update.<br/>
        :return:         """
        pass

    def disassociate_wireless_gateway_from_certificate(self, Id: str) -> DisassociateWirelessGatewayFromCertificateResponse:
        r"""Disassociates a wireless gateway from its currently associated certificate.

        :param self:
        :param Id:  The ID of the resource to update.<br/>
        :return:         """
        pass

    def disassociate_wireless_gateway_from_thing(self, Id: str) -> DisassociateWirelessGatewayFromThingResponse:
        r"""Disassociates a wireless gateway from its currently associated thing.

        :param self:
        :param Id:  The ID of the resource to update.<br/>
        :return:         """
        pass

    def get_destination(self, Name: str) -> GetDestinationResponse:
        r"""Gets information about a destination.

        :param self:
        :param Name:  The name of the resource to get.<br/>
        :return: RoleArn:  The ARN of the IAM Role that authorizes the destination.<br/>Description:  The description of the resource.<br/>ExpressionType:  The type of value in <code>Expression</code>.<br/>Expression:  The rule name or topic rule to send messages to.<br/>Name:  The name of the resource.<br/>Arn:  The Amazon Resource Name of the resource.<br/>        """
        pass

    def get_device_profile(self, Id: str) -> GetDeviceProfileResponse:
        r"""Gets information about a device profile.

        :param self:
        :param Id:  The ID of the resource to get.<br/>
        :return: LoRaWAN:  Information about the device profile.:<br/>Id:  The ID of the device profile.<br/>Name:  The name of the resource.<br/>Arn:  The Amazon Resource Name of the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Supports32BitFCnt</i> The Supports32BitFCnt value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SupportsJoin</i> The SupportsJoin value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RfRegion</i> The frequency band (RFRegion) value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxDutyCycle</i> The MaxDutyCycle value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxEirp</i> The MaxEIRP value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FactoryPresetFreqsList</i> The list of values that make up the FactoryPresetFreqs value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RxFreq2</i> The RXFreq2 value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RxDataRate2</i> The RXDataRate2 value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RxDrOffset1</i> The RXDROffset1 value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RxDelay1</i> The RXDelay1 value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RegParamsRevision</i> The version of regional parameters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MacVersion</i> The MAC version (such as OTAA 1.1 or OTAA 1.0.3) to use with this device profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClassCTimeout</i> The ClassCTimeout value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SupportsClassC</i> The SupportsClassC value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PingSlotFreq</i> The PingSlotFreq value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PingSlotDr</i> The PingSlotDR value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PingSlotPeriod</i> The PingSlotPeriod value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClassBTimeout</i> The ClassBTimeout value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SupportsClassB</i> The SupportsClassB value.<br/>        """
        pass

    def get_log_levels_by_resource_types(self) -> GetLogLevelsByResourceTypesResponse:
        r"""Returns current default log-levels, or log levels by resource types, could be for wireless device log options or wireless gateway log options.

        :param self:
        :param 
        :return: WirelessDeviceLogOptions:  The list of wireless device log options.<br/>WirelessGatewayLogOptions:  The list of wireless gateway log options.<br/>DefaultLogLevel:  The log level for a log message.<br/>        """
        pass

    def get_partner_account(self, PartnerType: str, PartnerAccountId: str) -> GetPartnerAccountResponse:
        r"""Gets information about a partner account. If <code>PartnerAccountId</code> and <code>PartnerType</code> are <code>null</code>, returns all partner accounts.

        :param self:
        :param PartnerType:  The partner type.<br/>PartnerAccountId:  The partner account ID to disassociate from the AWS account.<br/>
        :return: AccountLinked:  Whether the partner account is linked to the AWS account.<br/>Sidewalk:  The Sidewalk account credentials.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name of the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Fingerprint</i> The fingerprint of the Sidewalk application server private key.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AmazonId</i> The Sidewalk Amazon ID.<br/>        """
        pass

    def get_resource_log_level(self, ResourceType: str, ResourceIdentifier: str) -> GetResourceLogLevelResponse:
        r"""Fetches the log-level override if any for a given resource-ID and resource-type, coulde be a wireless device or a wireless gateway.

        :param self:
        :param ResourceType:  The type of the resource, currently support WirelessDevice and WirelessGateway.<br/>ResourceIdentifier:  The identifier of the resource. For a Wireless Device, it is the wireless device id. For a wireless gateway, it is the wireless gateway id.<br/>
        :return: LogLevel:  The log level for a log message.<br/>        """
        pass

    def get_service_endpoint(self, ServiceType: str=None) -> GetServiceEndpointResponse:
        r"""Gets the account-specific endpoint for Configuration and Update Server (CUPS) protocol or LoRaWAN Network Server (LNS) connections.

        :param self:
        :param ServiceType:  The service type for which to get endpoint information about. Can be <code>CUPS</code> for the Configuration and Update Server endpoint, or <code>LNS</code> for the LoRaWAN Network Server endpoint.<br/>
        :return: ServerTrust:  The Root CA of the server trust certificate.<br/>ServiceEndpoint:  The service endpoint value.<br/>ServiceType:  The endpoint's service type.<br/>        """
        pass

    def get_service_profile(self, Id: str) -> GetServiceProfileResponse:
        r"""Gets information about a service profile.

        :param self:
        :param Id:  The ID of the resource to get.<br/>
        :return: LoRaWAN:  Information about the service profile.:<br/>Id:  The ID of the service profile.<br/>Name:  The name of the resource.<br/>Arn:  The Amazon Resource Name of the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MinGwDiversity</i> The MinGwDiversity value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetPer</i> The TargetPER value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NwkGeoLoc</i> The NwkGeoLoc value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RaAllowed</i> The RAAllowed value that describes whether roaming activation is allowed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HrAllowed</i> The HRAllowed value that describes whether handover roaming is allowed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PrAllowed</i> The PRAllowed value that describes whether passive roaming is allowed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ChannelMask</i> The ChannelMask value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DrMax</i> The DRMax value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DrMin</i> The DRMin value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReportDevStatusMargin</i> The ReportDevStatusMargin value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReportDevStatusBattery</i> The ReportDevStatusBattery value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DevStatusReqFreq</i> The DevStatusReqFreq value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AddGwMetadata</i> The AddGWMetaData value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DlRatePolicy</i> The DLRatePolicy value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DlBucketSize</i> The DLBucketSize value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DlRate</i> The DLRate value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UlRatePolicy</i> The ULRatePolicy value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UlBucketSize</i> The ULBucketSize value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UlRate</i> The ULRate value.<br/>        """
        pass

    def get_wireless_device(self, IdentifierType: str, Identifier: str) -> GetWirelessDeviceResponse:
        r"""Gets information about a wireless device.

        :param self:
        :param IdentifierType:  The type of identifier used in <code>identifier</code>.<br/>Identifier:  The identifier of the wireless device to get.<br/>
        :return: Sidewalk:  Sidewalk device object.:<br/>LoRaWAN:  Information about the wireless device.:<br/>ThingArn:  The ARN of the thing associated with the wireless device.<br/>ThingName:  The name of the thing associated with the wireless device. The value is empty if a thing isn't associated with the device.<br/>Arn:  The Amazon Resource Name of the resource.<br/>Id:  The ID of the wireless device.<br/>DestinationName:  The name of the destination to which the device is assigned.<br/>Description:  The description of the resource.<br/>Name:  The name of the resource.<br/>Type:  The wireless device type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AbpV1_0_x</i> LoRaWAN object for create APIs&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AbpV1_0_x</b>: LoRaWAN object for create APIs<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AbpV1_1</i> ABP device object for create APIs for v1.1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AbpV1_1</b>: ABP device object for create APIs for v1.1<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OtaaV1_0_x</i> OTAA device object for create APIs for v1.0.x&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>OtaaV1_0_x</b>: OTAA device object for create APIs for v1.0.x<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OtaaV1_1</i> OTAA device object for v1.1 for create APIs&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>OtaaV1_1</b>: OTAA device object for v1.1 for create APIs<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceProfileId</i> The ID of the service profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeviceProfileId</i> The ID of the device profile for the new wireless device.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DevEui</i> The DevEUI value.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>JoinEui</i> The JoinEUI value.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NwkKey</i> The NwkKey value.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AppKey</i> The AppKey value.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AppEui</i> The AppEUI value.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AppKey</i> The AppKey value.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DevAddr</i> The DevAddr value.<br/>Session keys for ABP v1.1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SessionKeys</b>: Session keys for ABP v1.1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DevAddr</i> The DevAddr value.<br/>Session keys for ABP v1.0.x&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SessionKeys</b>: Session keys for ABP v1.0.x&nbsp;&nbsp;&nbsp;&nbsp; <i>DeviceCertificates</i> The sidewalk device certificates for Ed25519 and P256r1.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SidewalkManufacturingSn</i> The Sidewalk manufacturing series number.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SidewalkId</i> The sidewalk device identification.<br/>        """
        pass

    def get_wireless_device_statistics(self, WirelessDeviceId: str) -> GetWirelessDeviceStatisticsResponse:
        r"""Gets operating information about a wireless device.

        :param self:
        :param WirelessDeviceId:  The ID of the wireless device for which to get the data.<br/>
        :return: Sidewalk:  MetaData for Sidewalk device.:<br/>LoRaWAN:  Information about the wireless device's operations.:<br/>LastUplinkReceivedAt:  The date and time when the most recent uplink was received.<br/>WirelessDeviceId:  The ID of the wireless device.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Gateways</i> Information about the gateways accessed by the device.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Timestamp</i> The date and time of the metadata.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Frequency</i> The device's channel frequency in Hz.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataRate</i> The DataRate value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FPort</i> The FPort value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DevEui</i> The DevEUI value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeviceState</i> Device state defines the device status of sidewalk device.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Event</i> Sidewalk device status notification.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BatteryLevel</i> Sidewalk device battery level.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Rssi</i> The RSSI value.<br/>        """
        pass

    def get_wireless_gateway(self, IdentifierType: str, Identifier: str) -> GetWirelessGatewayResponse:
        r"""Gets information about a wireless gateway.

        :param self:
        :param IdentifierType:  The type of identifier used in <code>identifier</code>.<br/>Identifier:  The identifier of the wireless gateway to get.<br/>
        :return: ThingArn:  The ARN of the thing associated with the wireless gateway.<br/>ThingName:  The name of the thing associated with the wireless gateway. The value is empty if a thing isn't associated with the gateway.<br/>Arn:  The Amazon Resource Name of the resource.<br/>LoRaWAN:  Information about the wireless gateway.:<br/>Description:  The description of the resource.<br/>Id:  The ID of the wireless gateway.<br/>Name:  The name of the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubBands</i> A list of integer indicating which sub bands are supported by LoRa gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetIdFilters</i> A list of NetId values that are used by LoRa gateways to filter the uplink frames.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JoinEuiFilters</i> A list of JoinEuiRange used by LoRa gateways to filter LoRa frames.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RfRegion</i> The frequency band (RFRegion) value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GatewayEui</i> The gateway's EUI value.<br/>        """
        pass

    def get_wireless_gateway_certificate(self, Id: str) -> GetWirelessGatewayCertificateResponse:
        r"""Gets the ID of the certificate that is currently associated with a wireless gateway.

        :param self:
        :param Id:  The ID of the resource to get.<br/>
        :return: LoRaWANNetworkServerCertificateId:  The ID of the certificate that is associated with the wireless gateway and used for the LoRaWANNetworkServer endpoint.<br/>IotCertificateId:  The ID of the certificate associated with the wireless gateway.<br/>        """
        pass

    def get_wireless_gateway_firmware_information(self, Id: str) -> GetWirelessGatewayFirmwareInformationResponse:
        r"""Gets the firmware version and other information about a wireless gateway.

        :param self:
        :param Id:  The ID of the resource to get.<br/>
        :return: LoRaWAN:  Information about the wireless gateway's firmware.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CurrentVersion</i> The version of the gateways that should receive the update.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CurrentVersion</b>: The version of the gateways that should receive the update.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Station</i> The basic station version of the wireless gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Model</i> The model number of the wireless gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PackageVersion</i> The version of the wireless gateway firmware.<br/>        """
        pass

    def get_wireless_gateway_statistics(self, WirelessGatewayId: str) -> GetWirelessGatewayStatisticsResponse:
        r"""Gets operating information about a wireless gateway.

        :param self:
        :param WirelessGatewayId:  The ID of the wireless gateway for which to get the data.<br/>
        :return: ConnectionStatus:  The connection status of the wireless gateway.<br/>LastUplinkReceivedAt:  The date and time when the most recent uplink was received.<br/>WirelessGatewayId:  The ID of the wireless gateway.<br/>        """
        pass

    def get_wireless_gateway_task(self, Id: str) -> GetWirelessGatewayTaskResponse:
        r"""Gets information about a wireless gateway task.

        :param self:
        :param Id:  The ID of the resource to get.<br/>
        :return: Status:  The status of the request.<br/>TaskCreatedAt:  The date and time when the task was created.<br/>LastUplinkReceivedAt:  The date and time when the most recent uplink was received.<br/>WirelessGatewayTaskDefinitionId:  The ID of the WirelessGatewayTask.<br/>WirelessGatewayId:  The ID of the wireless gateway.<br/>        """
        pass

    def get_wireless_gateway_task_definition(self, Id: str) -> GetWirelessGatewayTaskDefinitionResponse:
        r"""Gets information about a wireless gateway task definition.

        :param self:
        :param Id:  The ID of the resource to get.<br/>
        :return: Arn:  The Amazon Resource Name of the resource.<br/>Update:  Information about the gateways to update.:<br/>Name:  The name of the resource.<br/>AutoCreateTasks:  Whether to automatically create tasks using this task definition for all gateways with the specified current version. If <code>false</code>, the task must me created by calling <code>CreateWirelessGatewayTask</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LoRaWAN</i> The properties that relate to the LoRaWAN wireless gateway.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>LoRaWAN</b>: The properties that relate to the LoRaWAN wireless gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdateDataRole</i> The IAM role used to read data from the S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdateDataSource</i> The link to the S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SigKeyCrc</i> The CRC of the signature private key to check.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdateSignature</i> The signature used to verify the update firmware.<br/>The version of the gateways that should receive the update.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CurrentVersion</b>: The version of the gateways that should receive the update.        """
        pass

    def list_destinations(self, MaxResults: int=None, NextToken: str=None) -> ListDestinationsResponse:
        r"""Lists the destinations registered to your AWS account.

        :param self:
        :param NextToken:  To retrieve the next set of results, the <code>nextToken</code> value from a previous response; otherwise <b>null</b> to receive the first set of results.<br/>MaxResults:  The maximum number of results to return in this operation.<br/>
        :return: DestinationList:  The list of destinations.<br/>NextToken:  The token to use to get the next set of results, or <b>null</b> if there are no additional results.<br/>        """
        pass

    def list_device_profiles(self, NextToken: str=None, MaxResults: int=None) -> ListDeviceProfilesResponse:
        r"""Lists the device profiles registered to your AWS account.

        :param self:
        :param MaxResults:  The maximum number of results to return in this operation.<br/>NextToken:  To retrieve the next set of results, the <code>nextToken</code> value from a previous response; otherwise <b>null</b> to receive the first set of results.<br/>
        :return: DeviceProfileList:  The list of device profiles.<br/>NextToken:  The token to use to get the next set of results, or <b>null</b> if there are no additional results.<br/>        """
        pass

    def list_partner_accounts(self, NextToken: str=None, MaxResults: int=None) -> ListPartnerAccountsResponse:
        r"""Lists the partner accounts associated with your AWS account.

        :param self:
        :param MaxResults:  The maximum number of results to return in this operation.<br/>NextToken:  To retrieve the next set of results, the <code>nextToken</code> value from a previous response; otherwise <b>null</b> to receive the first set of results.<br/>
        :return: Sidewalk:  The Sidewalk account credentials.<br/>NextToken:  The token to use to get the next set of results, or <b>null</b> if there are no additional results.<br/>        """
        pass

    def list_service_profiles(self, NextToken: str=None, MaxResults: int=None) -> ListServiceProfilesResponse:
        r"""Lists the service profiles registered to your AWS account.

        :param self:
        :param MaxResults:  The maximum number of results to return in this operation.<br/>NextToken:  To retrieve the next set of results, the <code>nextToken</code> value from a previous response; otherwise <b>null</b> to receive the first set of results.<br/>
        :return: ServiceProfileList:  The list of service profiles.<br/>NextToken:  The token to use to get the next set of results, or <b>null</b> if there are no additional results.<br/>        """
        pass

    def list_tags_for_resource(self, ResourceArn: str) -> ListTagsForResourceResponse:
        r"""Lists the tags (metadata) you have assigned to the resource.

        :param self:
        :param ResourceArn:  The ARN of the resource for which you want to list tags.<br/>
        :return: Tags:  The tags to attach to the specified resource. Tags are metadata that you can use to manage a resource.<br/>        """
        pass

    def list_wireless_devices(self, MaxResults: int=None, NextToken: str=None, DestinationName: str=None, DeviceProfileId: str=None, ServiceProfileId: str=None, WirelessDeviceType: str=None) -> ListWirelessDevicesResponse:
        r"""Lists the wireless devices registered to your AWS account.

        :param self:
        :param WirelessDeviceType:  A filter to list only the wireless devices that use this wireless device type.<br/>ServiceProfileId:  A filter to list only the wireless devices that use this service profile.<br/>DeviceProfileId:  A filter to list only the wireless devices that use this device profile.<br/>DestinationName:  A filter to list only the wireless devices that use this destination.<br/>NextToken:  To retrieve the next set of results, the <code>nextToken</code> value from a previous response; otherwise <b>null</b> to receive the first set of results.<br/>MaxResults:  The maximum number of results to return in this operation.<br/>
        :return: WirelessDeviceList:  The ID of the wireless device.<br/>NextToken:  The token to use to get the next set of results, or <b>null</b> if there are no additional results.<br/>        """
        pass

    def list_wireless_gateway_task_definitions(self, MaxResults: int=None, NextToken: str=None, TaskDefinitionType: str=None) -> ListWirelessGatewayTaskDefinitionsResponse:
        r"""List the wireless gateway tasks definitions registered to your AWS account.

        :param self:
        :param TaskDefinitionType:  A filter to list only the wireless gateway task definitions that use this task definition type.<br/>NextToken:  To retrieve the next set of results, the <code>nextToken</code> value from a previous response; otherwise <b>null</b> to receive the first set of results.<br/>MaxResults:  The maximum number of results to return in this operation.<br/>
        :return: TaskDefinitions:  The list of task definitions.<br/>NextToken:  The token to use to get the next set of results, or <b>null</b> if there are no additional results.<br/>        """
        pass

    def list_wireless_gateways(self, NextToken: str=None, MaxResults: int=None) -> ListWirelessGatewaysResponse:
        r"""Lists the wireless gateways registered to your AWS account.

        :param self:
        :param MaxResults:  The maximum number of results to return in this operation.<br/>NextToken:  To retrieve the next set of results, the <code>nextToken</code> value from a previous response; otherwise <b>null</b> to receive the first set of results.<br/>
        :return: WirelessGatewayList:  The ID of the wireless gateway.<br/>NextToken:  The token to use to get the next set of results, or <b>null</b> if there are no additional results.<br/>        """
        pass

    def put_resource_log_level(self, LogLevel: str, ResourceType: str, ResourceIdentifier: str) -> PutResourceLogLevelResponse:
        r"""Sets the log-level override for a resource-ID and resource-type, could be a wireless gateway or a wireless device.

        :param self:
        :param LogLevel:  The log level for a log message.<br/>ResourceType:  The type of the resource, currently support WirelessDevice and WirelessGateway.<br/>ResourceIdentifier:  The identifier of the resource. For a Wireless Device, it is the wireless device id. For a wireless gateway, it is the wireless gateway id.<br/>
        :return:         """
        pass

    def reset_all_resource_log_levels(self) -> ResetAllResourceLogLevelsResponse:
        r"""Remove log-level overrides if any for all resources (both wireless devices and wireless gateways).

        :param self:
        :param 
        :return:         """
        pass

    def reset_resource_log_level(self, ResourceType: str, ResourceIdentifier: str) -> ResetResourceLogLevelResponse:
        r"""Remove log-level override if any for a specific resource-ID and resource-type, could be a wireless device or a wireless gateway.

        :param self:
        :param ResourceType:  The type of the resource, currently support WirelessDevice and WirelessGateway.<br/>ResourceIdentifier:  The identifier of the resource. For a Wireless Device, it is the wireless device id. For a wireless gateway, it is the wireless gateway id.<br/>
        :return:         """
        pass

    def send_data_to_wireless_device(self, PayloadData: str, TransmitMode: int, Id: str, WirelessMetadata: WirelessMetadata=None) -> SendDataToWirelessDeviceResponse:
        r"""Sends a decrypted application data frame to a device.

        :param self:
        :param WirelessMetadata:  Metadata about the message request.:<br/>PayloadData:  The message payload to send.<br/>TransmitMode:  The transmit mode to use to send data to the wireless device. Can be: <code>0</code> for UM (unacknowledge mode) or <code>1</code> for AM (acknowledge mode).<br/>Id:  The ID of the wireless device to receive the data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Sidewalk</i> The Sidewalk account credentials.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Sidewalk</b>: The Sidewalk account credentials.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LoRaWAN</i> LoRaWAN device info.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>LoRaWAN</b>: LoRaWAN device info.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FPort</i> The Fport value.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MessageType</i> Sidewalk device message type.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Seq</i> The sequence number.<br/>
        :return: MessageId:  The ID of the message sent to the wireless device.<br/>        """
        pass

    def tag_resource(self, Tags: List[Tag], ResourceArn: str) -> TagResourceResponse:
        r"""Adds a tag to a resource.

        :param self:
        :param Tags:  Adds to or modifies the tags of the given resource. Tags are metadata that you can use to manage a resource.<br/>ResourceArn:  The ARN of the resource to add tags to.<br/>
        :return:         """
        pass

    def test_wireless_device(self, Id: str) -> TestWirelessDeviceResponse:
        r"""Simulates a provisioned device by sending an uplink data payload of <code>Hello</code>.

        :param self:
        :param Id:  The ID of the wireless device to test.<br/>
        :return: Result:  The result returned by the test.<br/>        """
        pass

    def untag_resource(self, TagKeys: List[TagKey], ResourceArn: str) -> UntagResourceResponse:
        r"""Removes one or more tags from a resource.

        :param self:
        :param TagKeys:  A list of the keys of the tags to remove from the resource.<br/>ResourceArn:  The ARN of the resource to remove tags from.<br/>
        :return:         """
        pass

    def update_destination(self, Name: str, ExpressionType: str=None, Expression: str=None, Description: str=None, RoleArn: str=None) -> UpdateDestinationResponse:
        r"""Updates properties of a destination.

        :param self:
        :param RoleArn:  The ARN of the IAM Role that authorizes the destination.<br/>Description:  A new description of the resource.<br/>Expression:  The new rule name or topic rule to send messages to.<br/>ExpressionType:  The type of value in <code>Expression</code>.<br/>Name:  The new name of the resource.<br/>
        :return:         """
        pass

    def update_log_levels_by_resource_types(self, DefaultLogLevel: str=None, WirelessDeviceLogOptions: List[WirelessDeviceLogOption]=None, WirelessGatewayLogOptions: List[WirelessGatewayLogOption]=None) -> UpdateLogLevelsByResourceTypesResponse:
        r"""Set default log level, or log levels by resource types, could be for wireless device log options or wireless gateways log options. This is to control the log messages that will be displayed in CloudWatch.

        :param self:
        :param WirelessGatewayLogOptions:  The list of wireless gateway log options.<br/>WirelessDeviceLogOptions:  The list of wireless device log options.<br/>DefaultLogLevel:  The log level for a log message.<br/>
        :return:         """
        pass

    def update_partner_account(self, PartnerType: str, PartnerAccountId: str, Sidewalk: SidewalkUpdateAccount) -> UpdatePartnerAccountResponse:
        r"""Updates properties of a partner account.

        :param self:
        :param PartnerType:  The partner type.<br/>PartnerAccountId:  The ID of the partner account to update.<br/>Sidewalk:  The Sidewalk account credentials.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AppServerPrivateKey</i> The new Sidewalk application server private key.<br/>
        :return:         """
        pass

    def update_wireless_device(self, Id: str, DestinationName: str=None, Name: str=None, Description: str=None, LoRaWAN: LoRaWANUpdateDevice=None) -> UpdateWirelessDeviceResponse:
        r"""Updates properties of a wireless device.

        :param self:
        :param LoRaWAN:  The updated wireless device's configuration.:<br/>Description:  A new description of the resource.<br/>Name:  The new name of the resource.<br/>DestinationName:  The name of the new destination for the device.<br/>Id:  The ID of the resource to update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceProfileId</i> The ID of the service profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeviceProfileId</i> The ID of the device profile for the wireless device.<br/>
        :return:         """
        pass

    def update_wireless_gateway(self, Id: str, Name: str=None, Description: str=None, JoinEuiFilters: List[JoinEuiRange]=None, NetIdFilters: List[NetId]=None) -> UpdateWirelessGatewayResponse:
        r"""Updates properties of a wireless gateway.

        :param self:
        :param NetIdFilters:  A list of NetId values that are used by LoRa gateways to filter the uplink frames.<br/>JoinEuiFilters:  A list of JoinEuiRange used by LoRa gateways to filter LoRa frames.<br/>Description:  A new description of the resource.<br/>Name:  The new name of the resource.<br/>Id:  The ID of the resource to update.<br/>
        :return:         """
        pass





class IVS(BaseClient):
    r""" <b>Introduction</b>  The Amazon Interactive Video Service (IVS) API is REST compatible, using a standard HTTP API and an AWS EventBridge event stream for responses. JSON is used for both requests and responses, including errors. The API is an AWS regional service, currently in these regions: us-west-2, us-east-1, and eu-west-1.  <i> <b>All API request parameters and URLs are case sensitive. </b> </i>  For a summary of notable documentation changes in each release, see <a href="https://docs.aws.amazon.com/ivs/latest/userguide/doc-history.html"> Document History</a>.  <b>Service Endpoints</b>  The following are the Amazon IVS service endpoints (all HTTPS):  Region name: US West (Oregon) <ul> <li> Region: <code>us-west-2</code>  </li> <li> Endpoint: <code>ivs.us-west-2.amazonaws.com</code>  </li> </ul> Region name: US East (Virginia) <ul> <li> Region: <code>us-east-1</code>  </li> <li> Endpoint: <code>ivs.us-east-1.amazonaws.com</code>  </li> </ul> Region name: EU West (Dublin) <ul> <li> Region: <code>eu-west-1</code>  </li> <li> Endpoint: <code>ivs.eu-west-1.amazonaws.com</code>  </li> </ul>  <b>Allowed Header Values</b>  <ul> <li>  <code> <b>Accept:</b> </code> application/json </li> <li>  <code> <b>Accept-Encoding:</b> </code> gzip, deflate </li> <li>  <code> <b>Content-Type:</b> </code>application/json </li> </ul>  <b>Resources</b>  The following resources contain information about your IVS live stream (see <a href="https://docs.aws.amazon.com/ivs/latest/userguide/getting-started.html"> Getting Started with Amazon IVS</a>): <ul> <li> Channel — Stores configuration data related to your live stream. You first create a channel and then use the channel’s stream key to start your live stream. See the Channel endpoints for more information.  </li> <li> Stream key — An identifier assigned by Amazon IVS when you create a channel, which is then used to authorize streaming. See the StreamKey endpoints for more information. <i> <b>Treat the stream key like a secret, since it allows anyone to stream to the channel.</b> </i>  </li> <li> Playback key pair — Video playback may be restricted using playback-authorization tokens, which use public-key encryption. A playback key pair is the public-private pair of keys used to sign and validate the playback-authorization token. See the PlaybackKeyPair endpoints for more information. </li> <li> Recording configuration — Stores configuration related to recording a live stream and where to store the recorded content. Multiple channels can reference the same recording configuration. See the Recording Configuration endpoints for more information. </li> </ul>  <b>Tagging</b>  A <i>tag</i> is a metadata label that you assign to an AWS resource. A tag comprises a <i>key</i> and a <i>value</i>, both set by you. For example, you might set a tag as <code>topic:nature</code> to label a particular video category. See <a href="https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html">Tagging AWS Resources</a> for more information, including restrictions that apply to tags. Tags can help you identify and organize your AWS resources. For example, you can use the same tag for different resources to indicate that they are related. You can also use tags to manage access (see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html"> Access Tags</a>).  The Amazon IVS API has these tag-related endpoints: <a>TagResource</a>, <a>UntagResource</a>, and <a>ListTagsForResource</a>. The following resources support tagging: Channels, Stream Keys, Playback Key Pairs, and Recording Configurations.  <b>Authentication versus Authorization</b>  Note the differences between these concepts: <ul> <li>  <i>Authentication</i> is about verifying identity. You need to be authenticated to sign Amazon IVS API requests. </li> <li>  <i>Authorization</i> is about granting permissions. You need to be authorized to view <a href="https://docs.aws.amazon.com/ivs/latest/userguide/private-channels.html">Amazon IVS private channels</a>. (Private channels are channels that are enabled for "playback authorization.") </li> </ul>  <b>Authentication</b>  All Amazon IVS API requests must be authenticated with a signature. The AWS Command-Line Interface (CLI) and Amazon IVS Player SDKs take care of signing the underlying API calls for you. However, if your application calls the Amazon IVS API directly, it’s your responsibility to sign the requests. You generate a signature using valid AWS credentials that have permission to perform the requested action. For example, you must sign PutMetadata requests with a signature generated from an IAM user account that has the <code>ivs:PutMetadata</code> permission. For more information: <ul> <li> Authentication and generating signatures — See <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html">Authenticating Requests (AWS Signature Version 4)</a> in the <i>AWS General Reference</i>. </li> <li> Managing Amazon IVS permissions — See <a href="https://docs.aws.amazon.com/ivs/latest/userguide/security-iam.html">Identity and Access Management</a> on the Security page of the <i>Amazon IVS User Guide</i>. </li> </ul>  <b>Channel Endpoints</b>  <ul> <li>  <a>CreateChannel</a> — Creates a new channel and an associated stream key to start streaming. </li> <li>  <a>GetChannel</a> — Gets the channel configuration for the specified channel ARN (Amazon Resource Name). </li> <li>  <a>BatchGetChannel</a> — Performs <a>GetChannel</a> on multiple ARNs simultaneously. </li> <li>  <a>ListChannels</a> — Gets summary information about all channels in your account, in the AWS region where the API request is processed. This list can be filtered to match a specified name or recording-configuration ARN. Filters are mutually exclusive and cannot be used together. If you try to use both filters, you will get an error (409 Conflict Exception). </li> <li>  <a>UpdateChannel</a> — Updates a channel's configuration. This does not affect an ongoing stream of this channel. You must stop and restart the stream for the changes to take effect. </li> <li>  <a>DeleteChannel</a> — Deletes the specified channel. </li> </ul>  <b>StreamKey Endpoints</b>  <ul> <li>  <a>CreateStreamKey</a> — Creates a stream key, used to initiate a stream, for the specified channel ARN. </li> <li>  <a>GetStreamKey</a> — Gets stream key information for the specified ARN. </li> <li>  <a>BatchGetStreamKey</a> — Performs <a>GetStreamKey</a> on multiple ARNs simultaneously. </li> <li>  <a>ListStreamKeys</a> — Gets summary information about stream keys for the specified channel. </li> <li>  <a>DeleteStreamKey</a> — Deletes the stream key for the specified ARN, so it can no longer be used to stream. </li> </ul>  <b>Stream Endpoints</b>  <ul> <li>  <a>GetStream</a> — Gets information about the active (live) stream on a specified channel. </li> <li>  <a>ListStreams</a> — Gets summary information about live streams in your account, in the AWS region where the API request is processed. </li> <li>  <a>StopStream</a> — Disconnects the incoming RTMPS stream for the specified channel. Can be used in conjunction with <a>DeleteStreamKey</a> to prevent further streaming to a channel. </li> <li>  <a>PutMetadata</a> — Inserts metadata into the active stream of the specified channel. A maximum of 5 requests per second per channel is allowed, each with a maximum 1 KB payload. (If 5 TPS is not sufficient for your needs, we recommend batching your data into a single PutMetadata call.) </li> </ul>  <b>PlaybackKeyPair Endpoints</b>  For more information, see <a href="https://docs.aws.amazon.com/ivs/latest/userguide/private-channels.html">Setting Up Private Channels</a> in the <i>Amazon IVS User Guide</i>. <ul> <li>  <a>ImportPlaybackKeyPair</a> — Imports the public portion of a new key pair and returns its <code>arn</code> and <code>fingerprint</code>. The <code>privateKey</code> can then be used to generate viewer authorization tokens, to grant viewers access to private channels (channels enabled for playback authorization). </li> <li>  <a>GetPlaybackKeyPair</a> — Gets a specified playback authorization key pair and returns the <code>arn</code> and <code>fingerprint</code>. The <code>privateKey</code> held by the caller can be used to generate viewer authorization tokens, to grant viewers access to private channels. </li> <li>  <a>ListPlaybackKeyPairs</a> — Gets summary information about playback key pairs. </li> <li>  <a>DeletePlaybackKeyPair</a> — Deletes a specified authorization key pair. This invalidates future viewer tokens generated using the key pair’s <code>privateKey</code>. </li> </ul>  <b>RecordingConfiguration Endpoints</b>  <ul> <li>  <a>CreateRecordingConfiguration</a> — Creates a new recording configuration, used to enable recording to Amazon S3. </li> <li>  <a>GetRecordingConfiguration</a> — Gets the recording-configuration metadata for the specified ARN. </li> <li>  <a>ListRecordingConfigurations</a> — Gets summary information about all recording configurations in your account, in the AWS region where the API request is processed. </li> <li>  <a>DeleteRecordingConfiguration</a> — Deletes the recording configuration for the specified ARN. </li> </ul>  <b>AWS Tags Endpoints</b>  <ul> <li>  <a>TagResource</a> — Adds or updates tags for the AWS resource with the specified ARN. </li> <li>  <a>UntagResource</a> — Removes tags from the resource with the specified ARN. </li> <li>  <a>ListTagsForResource</a> — Gets information about AWS tags for the specified ARN. </li> </ul>"""


    class ListChannelsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_channels` for valid parameters"""
            pass
    class ListStreamKeysPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_stream_keys` for valid parameters"""
            pass
    class ListStreamsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_streams` for valid parameters"""
            pass
    class ListPlaybackKeyPairsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_playback_key_pairs` for valid parameters"""
            pass
    class ListRecordingConfigurationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_recording_configurations` for valid parameters"""
            pass


    class BatchGetChannelRequest(Mapping):
        pass
    
    class BatchGetChannelResponse(Mapping):
        pass
    
    class ChannelArn(object):
        pass
    
    class BatchGetStreamKeyRequest(Mapping):
        pass
    
    class BatchGetStreamKeyResponse(Mapping):
        pass
    
    class StreamKeyArn(object):
        pass
    
    class CreateChannelRequest(Mapping):
        pass
    
    class CreateChannelResponse(Mapping):
        pass
    
    class Boolean(object):
        pass
    
    class Tags(object):
        pass
    
    class CreateRecordingConfigurationRequest(Mapping):
        pass
    
    class CreateRecordingConfigurationResponse(Mapping):
        pass
    
    class DestinationConfiguration(Mapping):
        pass
    
    class CreateStreamKeyRequest(Mapping):
        pass
    
    class CreateStreamKeyResponse(Mapping):
        pass
    
    class DeleteChannelRequest(Mapping):
        pass
    
    class DeletePlaybackKeyPairRequest(Mapping):
        pass
    
    class DeletePlaybackKeyPairResponse(Mapping):
        pass
    
    class DeleteRecordingConfigurationRequest(Mapping):
        pass
    
    class DeleteStreamKeyRequest(Mapping):
        pass
    
    class GetChannelRequest(Mapping):
        pass
    
    class GetChannelResponse(Mapping):
        pass
    
    class GetPlaybackKeyPairRequest(Mapping):
        pass
    
    class GetPlaybackKeyPairResponse(Mapping):
        pass
    
    class GetRecordingConfigurationRequest(Mapping):
        pass
    
    class GetRecordingConfigurationResponse(Mapping):
        pass
    
    class GetStreamRequest(Mapping):
        pass
    
    class GetStreamResponse(Mapping):
        pass
    
    class GetStreamKeyRequest(Mapping):
        pass
    
    class GetStreamKeyResponse(Mapping):
        pass
    
    class ImportPlaybackKeyPairRequest(Mapping):
        pass
    
    class ImportPlaybackKeyPairResponse(Mapping):
        pass
    
    class ListChannelsRequest(Mapping):
        pass
    
    class ListChannelsResponse(Mapping):
        pass
    
    class ListPlaybackKeyPairsRequest(Mapping):
        pass
    
    class ListPlaybackKeyPairsResponse(Mapping):
        pass
    
    class ListRecordingConfigurationsRequest(Mapping):
        pass
    
    class ListRecordingConfigurationsResponse(Mapping):
        pass
    
    class ListStreamKeysRequest(Mapping):
        pass
    
    class ListStreamKeysResponse(Mapping):
        pass
    
    class ListStreamsRequest(Mapping):
        pass
    
    class ListStreamsResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class PutMetadataRequest(Mapping):
        pass
    
    class StopStreamRequest(Mapping):
        pass
    
    class StopStreamResponse(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateChannelRequest(Mapping):
        pass
    
    class UpdateChannelResponse(Mapping):
        pass
    
    def batch_get_channel(self, arns: List[ChannelArn]) -> BatchGetChannelResponse:
        r"""Performs <a>GetChannel</a> on multiple ARNs simultaneously.

        :param self:
        :param arns:  Array of ARNs, one per channel.<br/>
        :return: errors:  Each error object is related to a specific ARN in the request.<br/>channels:  <br/>        """
        pass

    def batch_get_stream_key(self, arns: List[StreamKeyArn]) -> BatchGetStreamKeyResponse:
        r"""Performs <a>GetStreamKey</a> on multiple ARNs simultaneously.

        :param self:
        :param arns:  Array of ARNs, one per channel.<br/>
        :return: errors:  <br/>streamKeys:  <br/>        """
        pass

    def create_channel(self, name: str=None, latencyMode: str=None, type: str=None, authorized: Boolean=None, recordingConfigurationArn: str=None, tags: Tags=None) -> CreateChannelResponse:
        r"""Creates a new channel and an associated stream key to start streaming.

        :param self:
        :param tags:  Array of 1-50 maps, each of the form <code>string:string (key:value)</code>.<br/>recordingConfigurationArn:  Recording-configuration ARN. Default: "" (empty string, recording is disabled).<br/>authorized:  Whether the channel is private (enabled for playback authorization). Default: <code>false</code>.<br/>type:  Channel type, which determines the allowable resolution and bitrate. <i>If you exceed the allowable resolution or bitrate, the stream probably will disconnect immediately.</i> Default: <code>STANDARD</code>. Valid values: <ul> <li>  <code>STANDARD</code>: Multiple qualities are generated from the original input, to automatically give viewers the best experience for their devices and network conditions. Vertical resolution can be up to 1080 and bitrate can be up to 8.5 Mbps. </li> <li>  <code>BASIC</code>: Amazon IVS delivers the original input to viewers. The viewer’s video-quality choice is limited to the original input. Vertical resolution can be up to 480 and bitrate can be up to 1.5 Mbps. </li> </ul><br/>latencyMode:  Channel latency mode. Use <code>NORMAL</code> to broadcast and deliver live video up to Full HD. Use <code>LOW</code> for near-real-time interaction with viewers. (Note: In the Amazon IVS console, <code>LOW</code> and <code>NORMAL</code> correspond to Ultra-low and Standard, respectively.) Default: <code>LOW</code>.<br/>name:  Channel name.<br/>
        :return: streamKey:  Object specifying a stream key.:<br/>channel:  Object specifying a channel.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> Array of 1-50 maps, each of the form <code>string:string (key:value)</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>authorized</i> Whether the channel is private (enabled for playback authorization). Default: <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>playbackUrl</i> Channel playback URL.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ingestEndpoint</i> Channel ingest endpoint, part of the definition of an ingest server, used when you set up streaming software.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>recordingConfigurationArn</i> Recording-configuration ARN. A value other than an empty string indicates that recording is enabled. Default: "" (empty string, recording is disabled).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> Channel type, which determines the allowable resolution and bitrate. <i>If you exceed the allowable resolution or bitrate, the stream probably will disconnect immediately.</i> Default: <code>STANDARD</code>. Valid values: <ul> <li>  <code>STANDARD</code>: Multiple qualities are generated from the original input, to automatically give viewers the best experience for their devices and network conditions. Vertical resolution can be up to 1080 and bitrate can be up to 8.5 Mbps. </li> <li>  <code>BASIC</code>: Amazon IVS delivers the original input to viewers. The viewer’s video-quality choice is limited to the original input. Vertical resolution can be up to 480 and bitrate can be up to 1.5 Mbps. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>latencyMode</i> Channel latency mode. Use <code>NORMAL</code> to broadcast and deliver live video up to Full HD. Use <code>LOW</code> for near-real-time interaction with viewers. Default: <code>LOW</code>. (Note: In the Amazon IVS console, <code>LOW</code> and <code>NORMAL</code> correspond to Ultra-low and Standard, respectively.)<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> Channel name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> Channel ARN.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> Array of 1-50 maps, each of the form <code>string:string (key:value)</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>channelArn</i> Channel ARN for the stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>value</i> Stream-key value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> Stream-key ARN.<br/>        """
        pass

    def create_recording_configuration(self, destinationConfiguration: DestinationConfiguration, name: str=None, tags: Tags=None) -> CreateRecordingConfigurationResponse:
        r"""Creates a new recording configuration, used to enable recording to Amazon S3.  <b>Known issue:</b> In the us-east-1 region, if you use the AWS CLI to create a recording configuration, it returns success even if the S3 bucket is in a different region. In this case, the <code>state</code> of the recording configuration is <code>CREATE_FAILED</code> (instead of <code>ACTIVE</code>). (In other regions, the CLI correctly returns failure if the bucket is in a different region.)  <b>Workaround:</b> Ensure that your S3 bucket is in the same region as the recording configuration. If you create a recording configuration in a different region as your S3 bucket, delete that recording configuration and create a new one with an S3 bucket from the correct region.

        :param self:
        :param tags:  Array of 1-50 maps, each of the form <code>string:string (key:value)</code>.<br/>destinationConfiguration:  A complex type that contains a destination configuration for where recorded video will be stored.:<br/>name:  An arbitrary string (a nickname) that helps the customer identify that resource. The value does not need to be unique.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>s3</i> An S3 destination configuration where recorded videos will be stored.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>s3</b>: An S3 destination configuration where recorded videos will be stored.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>bucketName</i> Location (S3 bucket name) where recorded videos will be stored.<br/>
        :return: recordingConfiguration:  An object representing a configuration to record a channel stream.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> Array of 1-50 maps, each of the form <code>string:string (key:value)</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>state</i> Indicates the current state of the recording configuration. When the state is <code>ACTIVE</code>, the configuration is ready for recording a channel stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>destinationConfiguration</i> A complex type that contains information about where recorded video will be stored.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>destinationConfiguration</b>: A complex type that contains information about where recorded video will be stored.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> An arbitrary string (a nickname) assigned to a recording configuration that helps the customer identify that resource. The value does not need to be unique.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> Recording-configuration ARN.<br/>An S3 destination configuration where recorded videos will be stored.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>s3</b>: An S3 destination configuration where recorded videos will be stored.        """
        pass

    def create_stream_key(self, channelArn: str, tags: Tags=None) -> CreateStreamKeyResponse:
        r"""Creates a stream key, used to initiate a stream, for the specified channel ARN. Note that <a>CreateChannel</a> creates a stream key. If you subsequently use CreateStreamKey on the same channel, it will fail because a stream key already exists and there is a limit of 1 stream key per channel. To reset the stream key on a channel, use <a>DeleteStreamKey</a> and then CreateStreamKey.

        :param self:
        :param tags:  Array of 1-50 maps, each of the form <code>string:string (key:value)</code>.<br/>channelArn:  ARN of the channel for which to create the stream key.<br/>
        :return: streamKey:  Stream key used to authenticate an RTMPS stream for ingestion.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> Array of 1-50 maps, each of the form <code>string:string (key:value)</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>channelArn</i> Channel ARN for the stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>value</i> Stream-key value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> Stream-key ARN.<br/>        """
        pass

    def delete_channel(self, arn: str):
        r"""Deletes the specified channel and its associated stream keys. If you try to delete a live channel, you will get an error (409 ConflictException). To delete a channel that is live, call <a>StopStream</a>, wait for the Amazon EventBridge "Stream End" event (to verify that the stream's state was changed from Live to Offline), then call DeleteChannel. (See <a href="https://docs.aws.amazon.com/ivs/latest/userguide/eventbridge.html"> Using EventBridge with Amazon IVS</a>.) 

        :param self:
        :param arn:  ARN of the channel to be deleted.<br/>
        :return:         """
        pass

    def delete_playback_key_pair(self, arn: str) -> DeletePlaybackKeyPairResponse:
        r"""Deletes a specified authorization key pair. This invalidates future viewer tokens generated using the key pair’s <code>privateKey</code>. For more information, see <a href="https://docs.aws.amazon.com/ivs/latest/userguide/private-channels.html">Setting Up Private Channels</a> in the <i>Amazon IVS User Guide</i>.

        :param self:
        :param arn:  ARN of the key pair to be deleted.<br/>
        :return:         """
        pass

    def delete_recording_configuration(self, arn: str):
        r"""Deletes the recording configuration for the specified ARN. If you try to delete a recording configuration that is associated with a channel, you will get an error (409 ConflictException). To avoid this, for all channels that reference the recording configuration, first use <a>UpdateChannel</a> to set the <code>recordingConfigurationArn</code> field to an empty string, then use DeleteRecordingConfiguration.

        :param self:
        :param arn:  ARN of the recording configuration to be deleted.<br/>
        :return:         """
        pass

    def delete_stream_key(self, arn: str):
        r"""Deletes the stream key for the specified ARN, so it can no longer be used to stream.

        :param self:
        :param arn:  ARN of the stream key to be deleted.<br/>
        :return:         """
        pass

    def get_channel(self, arn: str) -> GetChannelResponse:
        r"""Gets the channel configuration for the specified channel ARN. See also <a>BatchGetChannel</a>.

        :param self:
        :param arn:  ARN of the channel for which the configuration is to be retrieved.<br/>
        :return: channel:  Object specifying a channel.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> Array of 1-50 maps, each of the form <code>string:string (key:value)</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>authorized</i> Whether the channel is private (enabled for playback authorization). Default: <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>playbackUrl</i> Channel playback URL.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ingestEndpoint</i> Channel ingest endpoint, part of the definition of an ingest server, used when you set up streaming software.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>recordingConfigurationArn</i> Recording-configuration ARN. A value other than an empty string indicates that recording is enabled. Default: "" (empty string, recording is disabled).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> Channel type, which determines the allowable resolution and bitrate. <i>If you exceed the allowable resolution or bitrate, the stream probably will disconnect immediately.</i> Default: <code>STANDARD</code>. Valid values: <ul> <li>  <code>STANDARD</code>: Multiple qualities are generated from the original input, to automatically give viewers the best experience for their devices and network conditions. Vertical resolution can be up to 1080 and bitrate can be up to 8.5 Mbps. </li> <li>  <code>BASIC</code>: Amazon IVS delivers the original input to viewers. The viewer’s video-quality choice is limited to the original input. Vertical resolution can be up to 480 and bitrate can be up to 1.5 Mbps. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>latencyMode</i> Channel latency mode. Use <code>NORMAL</code> to broadcast and deliver live video up to Full HD. Use <code>LOW</code> for near-real-time interaction with viewers. Default: <code>LOW</code>. (Note: In the Amazon IVS console, <code>LOW</code> and <code>NORMAL</code> correspond to Ultra-low and Standard, respectively.)<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> Channel name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> Channel ARN.<br/>        """
        pass

    def get_playback_key_pair(self, arn: str) -> GetPlaybackKeyPairResponse:
        r"""Gets a specified playback authorization key pair and returns the <code>arn</code> and <code>fingerprint</code>. The <code>privateKey</code> held by the caller can be used to generate viewer authorization tokens, to grant viewers access to private channels. For more information, see <a href="https://docs.aws.amazon.com/ivs/latest/userguide/private-channels.html">Setting Up Private Channels</a> in the <i>Amazon IVS User Guide</i>.

        :param self:
        :param arn:  ARN of the key pair to be returned.<br/>
        :return: keyPair:  A key pair used to sign and validate a playback authorization token.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> Array of 1-50 maps, each of the form <code>string:string (key:value)</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>fingerprint</i> Key-pair identifier.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> An arbitrary string (a nickname) assigned to a playback key pair that helps the customer identify that resource. The value does not need to be unique.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> Key-pair ARN.<br/>        """
        pass

    def get_recording_configuration(self, arn: str) -> GetRecordingConfigurationResponse:
        r"""Gets the recording configuration for the specified ARN.

        :param self:
        :param arn:  ARN of the recording configuration to be retrieved.<br/>
        :return: recordingConfiguration:  An object representing a configuration to record a channel stream.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> Array of 1-50 maps, each of the form <code>string:string (key:value)</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>state</i> Indicates the current state of the recording configuration. When the state is <code>ACTIVE</code>, the configuration is ready for recording a channel stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>destinationConfiguration</i> A complex type that contains information about where recorded video will be stored.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>destinationConfiguration</b>: A complex type that contains information about where recorded video will be stored.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> An arbitrary string (a nickname) assigned to a recording configuration that helps the customer identify that resource. The value does not need to be unique.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> Recording-configuration ARN.<br/>An S3 destination configuration where recorded videos will be stored.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>s3</b>: An S3 destination configuration where recorded videos will be stored.        """
        pass

    def get_stream(self, channelArn: str) -> GetStreamResponse:
        r"""Gets information about the active (live) stream on a specified channel.

        :param self:
        :param channelArn:  Channel ARN for stream to be accessed.<br/>
        :return: stream:  Specifies a live video stream that has been ingested and distributed.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>viewerCount</i> Number of current viewers of the stream. A value of -1 indicates that the request timed out; in this case, retry.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>health</i> The stream’s health.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>state</i> The stream’s state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>startTime</i> ISO-8601 formatted timestamp of the stream’s start.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>playbackUrl</i> URL of the master playlist, required by the video player to play the HLS stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>channelArn</i> Channel ARN for the stream.<br/>        """
        pass

    def get_stream_key(self, arn: str) -> GetStreamKeyResponse:
        r"""Gets stream-key information for a specified ARN.

        :param self:
        :param arn:  ARN for the stream key to be retrieved.<br/>
        :return: streamKey:  Object specifying a stream key.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> Array of 1-50 maps, each of the form <code>string:string (key:value)</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>channelArn</i> Channel ARN for the stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>value</i> Stream-key value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> Stream-key ARN.<br/>        """
        pass

    def import_playback_key_pair(self, publicKeyMaterial: str, name: str=None, tags: Tags=None) -> ImportPlaybackKeyPairResponse:
        r"""Imports the public portion of a new key pair and returns its <code>arn</code> and <code>fingerprint</code>. The <code>privateKey</code> can then be used to generate viewer authorization tokens, to grant viewers access to private channels. For more information, see <a href="https://docs.aws.amazon.com/ivs/latest/userguide/private-channels.html">Setting Up Private Channels</a> in the <i>Amazon IVS User Guide</i>.

        :param self:
        :param tags:  Any tags provided with the request are added to the playback key pair tags.<br/>name:  An arbitrary string (a nickname) assigned to a playback key pair that helps the customer identify that resource. The value does not need to be unique.<br/>publicKeyMaterial:  The public portion of a customer-generated key pair.<br/>
        :return: keyPair:  A key pair used to sign and validate a playback authorization token.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> Array of 1-50 maps, each of the form <code>string:string (key:value)</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>fingerprint</i> Key-pair identifier.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> An arbitrary string (a nickname) assigned to a playback key pair that helps the customer identify that resource. The value does not need to be unique.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> Key-pair ARN.<br/>        """
        pass

    def list_channels(self, filterByName: str=None, filterByRecordingConfigurationArn: str=None, nextToken: str=None, maxResults: int=None) -> ListChannelsResponse:
        r"""Gets summary information about all channels in your account, in the AWS region where the API request is processed. This list can be filtered to match a specified name or recording-configuration ARN. Filters are mutually exclusive and cannot be used together. If you try to use both filters, you will get an error (409 ConflictException).

        :param self:
        :param maxResults:  Maximum number of channels to return. Default: 50.<br/>nextToken:  The first channel to retrieve. This is used for pagination; see the <code>nextToken</code> response field.<br/>filterByRecordingConfigurationArn:  Filters the channel list to match the specified recording-configuration ARN.<br/>filterByName:  Filters the channel list to match the specified name.<br/>
        :return: nextToken:  If there are more channels than <code>maxResults</code>, use <code>nextToken</code> in the request to get the next set.<br/>channels:  List of the matching channels.<br/>        """
        pass

    def list_playback_key_pairs(self, nextToken: str=None, maxResults: int=None) -> ListPlaybackKeyPairsResponse:
        r"""Gets summary information about playback key pairs. For more information, see <a href="https://docs.aws.amazon.com/ivs/latest/userguide/private-channels.html">Setting Up Private Channels</a> in the <i>Amazon IVS User Guide</i>.

        :param self:
        :param maxResults:  The first key pair to retrieve. This is used for pagination; see the <code>nextToken</code> response field. Default: 50.<br/>nextToken:  Maximum number of key pairs to return.<br/>
        :return: nextToken:  If there are more key pairs than <code>maxResults</code>, use <code>nextToken</code> in the request to get the next set.<br/>keyPairs:  List of key pairs.<br/>        """
        pass

    def list_recording_configurations(self, nextToken: str=None, maxResults: int=None) -> ListRecordingConfigurationsResponse:
        r"""Gets summary information about all recording configurations in your account, in the AWS region where the API request is processed.

        :param self:
        :param maxResults:  Maximum number of recording configurations to return. Default: 50. <br/>nextToken:  The first recording configuration to retrieve. This is used for pagination; see the <code>nextToken</code> response field.<br/>
        :return: nextToken:  If there are more recording configurations than <code>maxResults</code>, use <code>nextToken</code> in the request to get the next set.<br/>recordingConfigurations:  List of the matching recording configurations.<br/>        """
        pass

    def list_stream_keys(self, channelArn: str, nextToken: str=None, maxResults: int=None) -> ListStreamKeysResponse:
        r"""Gets summary information about stream keys for the specified channel.

        :param self:
        :param maxResults:  Maximum number of streamKeys to return. Default: 50.<br/>nextToken:  The first stream key to retrieve. This is used for pagination; see the <code>nextToken</code> response field.<br/>channelArn:  Channel ARN used to filter the list.<br/>
        :return: nextToken:  If there are more stream keys than <code>maxResults</code>, use <code>nextToken</code> in the request to get the next set.<br/>streamKeys:  List of stream keys.<br/>        """
        pass

    def list_streams(self, nextToken: str=None, maxResults: int=None) -> ListStreamsResponse:
        r"""Gets summary information about live streams in your account, in the AWS region where the API request is processed.

        :param self:
        :param maxResults:  Maximum number of streams to return. Default: 50.<br/>nextToken:  The first stream to retrieve. This is used for pagination; see the <code>nextToken</code> response field.<br/>
        :return: nextToken:  If there are more streams than <code>maxResults</code>, use <code>nextToken</code> in the request to get the next set.<br/>streams:  List of streams.<br/>        """
        pass

    def list_tags_for_resource(self, resourceArn: str, nextToken: str=None, maxResults: int=None) -> ListTagsForResourceResponse:
        r"""Gets information about AWS tags for the specified ARN.

        :param self:
        :param maxResults:  Maximum number of tags to return. Default: 50.<br/>nextToken:  The first tag to retrieve. This is used for pagination; see the <code>nextToken</code> response field.<br/>resourceArn:  The ARN of the resource to be retrieved.<br/>
        :return: nextToken:  If there are more tags than <code>maxResults</code>, use <code>nextToken</code> in the request to get the next set.<br/>tags:  <br/>        """
        pass

    def put_metadata(self, metadata: str, channelArn: str):
        r"""Inserts metadata into the active stream of the specified channel. A maximum of 5 requests per second per channel is allowed, each with a maximum 1 KB payload. (If 5 TPS is not sufficient for your needs, we recommend batching your data into a single PutMetadata call.) Also see <a href="https://docs.aws.amazon.com/ivs/latest/userguide/metadata.html">Embedding Metadata within a Video Stream</a> in the <i>Amazon IVS User Guide</i>.

        :param self:
        :param metadata:  Metadata to insert into the stream. Maximum: 1 KB per request.<br/>channelArn:  ARN of the channel into which metadata is inserted. This channel must have an active stream.<br/>
        :return:         """
        pass

    def stop_stream(self, channelArn: str) -> StopStreamResponse:
        r"""Disconnects the incoming RTMPS stream for the specified channel. Can be used in conjunction with <a>DeleteStreamKey</a> to prevent further streaming to a channel. <note> Many streaming client-software libraries automatically reconnect a dropped RTMPS session, so to stop the stream permanently, you may want to first revoke the <code>streamKey</code> attached to the channel. </note>

        :param self:
        :param channelArn:  ARN of the channel for which the stream is to be stopped.<br/>
        :return:         """
        pass

    def tag_resource(self, tags: Tags, resourceArn: str) -> TagResourceResponse:
        r"""Adds or updates tags for the AWS resource with the specified ARN.

        :param self:
        :param tags:  Array of tags to be added or updated.<br/>resourceArn:  ARN of the resource for which tags are to be added or updated.<br/>
        :return:         """
        pass

    def untag_resource(self, tagKeys: List[TagKey], resourceArn: str) -> UntagResourceResponse:
        r"""Removes tags from the resource with the specified ARN.

        :param self:
        :param tagKeys:  Array of tags to be removed.<br/>resourceArn:  ARN of the resource for which tags are to be removed.<br/>
        :return:         """
        pass

    def update_channel(self, arn: str, name: str=None, latencyMode: str=None, type: str=None, authorized: Boolean=None, recordingConfigurationArn: str=None) -> UpdateChannelResponse:
        r"""Updates a channel's configuration. This does not affect an ongoing stream of this channel. You must stop and restart the stream for the changes to take effect.

        :param self:
        :param recordingConfigurationArn:  Recording-configuration ARN. If this is set to an empty string, recording is disabled. A value other than an empty string indicates that recording is enabled<br/>authorized:  Whether the channel is private (enabled for playback authorization).<br/>type:  Channel type, which determines the allowable resolution and bitrate. <i>If you exceed the allowable resolution or bitrate, the stream probably will disconnect immediately</i>. Valid values: <ul> <li>  <code>STANDARD</code>: Multiple qualities are generated from the original input, to automatically give viewers the best experience for their devices and network conditions. Vertical resolution can be up to 1080 and bitrate can be up to 8.5 Mbps. </li> <li>  <code>BASIC</code>: Amazon IVS delivers the original input to viewers. The viewer’s video-quality choice is limited to the original input. Vertical resolution can be up to 480 and bitrate can be up to 1.5 Mbps. </li> </ul><br/>latencyMode:  Channel latency mode. Use <code>NORMAL</code> to broadcast and deliver live video up to Full HD. Use <code>LOW</code> for near-real-time interaction with viewers. (Note: In the Amazon IVS console, <code>LOW</code> and <code>NORMAL</code> correspond to Ultra-low and Standard, respectively.)<br/>name:  Channel name.<br/>arn:  ARN of the channel to be updated.<br/>
        :return: channel:  Object specifying a channel.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> Array of 1-50 maps, each of the form <code>string:string (key:value)</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>authorized</i> Whether the channel is private (enabled for playback authorization). Default: <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>playbackUrl</i> Channel playback URL.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ingestEndpoint</i> Channel ingest endpoint, part of the definition of an ingest server, used when you set up streaming software.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>recordingConfigurationArn</i> Recording-configuration ARN. A value other than an empty string indicates that recording is enabled. Default: "" (empty string, recording is disabled).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> Channel type, which determines the allowable resolution and bitrate. <i>If you exceed the allowable resolution or bitrate, the stream probably will disconnect immediately.</i> Default: <code>STANDARD</code>. Valid values: <ul> <li>  <code>STANDARD</code>: Multiple qualities are generated from the original input, to automatically give viewers the best experience for their devices and network conditions. Vertical resolution can be up to 1080 and bitrate can be up to 8.5 Mbps. </li> <li>  <code>BASIC</code>: Amazon IVS delivers the original input to viewers. The viewer’s video-quality choice is limited to the original input. Vertical resolution can be up to 480 and bitrate can be up to 1.5 Mbps. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>latencyMode</i> Channel latency mode. Use <code>NORMAL</code> to broadcast and deliver live video up to Full HD. Use <code>LOW</code> for near-real-time interaction with viewers. Default: <code>LOW</code>. (Note: In the Amazon IVS console, <code>LOW</code> and <code>NORMAL</code> correspond to Ultra-low and Standard, respectively.)<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> Channel name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> Channel ARN.<br/>        """
        pass





class Kafka(BaseClient):
    r"""
               The operations for managing an Amazon MSK cluster.
            """


    class ListClustersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_clusters` for valid parameters"""
            pass
    class ListNodesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_nodes` for valid parameters"""
            pass
    class ListConfigurationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_configurations` for valid parameters"""
            pass
    class ListClusterOperationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_cluster_operations` for valid parameters"""
            pass
    class ListConfigurationRevisionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_configuration_revisions` for valid parameters"""
            pass
    class ListKafkaVersionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_kafka_versions` for valid parameters"""
            pass
    class ListScramSecretsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_scram_secrets` for valid parameters"""
            pass


    class BatchAssociateScramSecretRequest(Mapping):
        pass
    
    class BatchAssociateScramSecretResponse(Mapping):
        pass
    
    class __string(object):
        pass
    
    class CreateClusterRequest(Mapping):
        pass
    
    class CreateClusterResponse(Mapping):
        pass
    
    class BrokerNodeGroupInfo(Mapping):
        pass
    
    class ClientAuthentication(Mapping):
        pass
    
    class ConfigurationInfo(Mapping):
        pass
    
    class EncryptionInfo(Mapping):
        pass
    
    class OpenMonitoringInfo(Mapping):
        pass
    
    class LoggingInfo(Mapping):
        pass
    
    class __mapOf__string(object):
        pass
    
    class CreateConfigurationRequest(Mapping):
        pass
    
    class CreateConfigurationResponse(Mapping):
        pass
    
    class __blob(object):
        pass
    
    class DeleteClusterRequest(Mapping):
        pass
    
    class DeleteClusterResponse(Mapping):
        pass
    
    class DeleteConfigurationRequest(Mapping):
        pass
    
    class DeleteConfigurationResponse(Mapping):
        pass
    
    class DescribeClusterRequest(Mapping):
        pass
    
    class DescribeClusterResponse(Mapping):
        pass
    
    class DescribeClusterOperationRequest(Mapping):
        pass
    
    class DescribeClusterOperationResponse(Mapping):
        pass
    
    class DescribeConfigurationRequest(Mapping):
        pass
    
    class DescribeConfigurationResponse(Mapping):
        pass
    
    class DescribeConfigurationRevisionRequest(Mapping):
        pass
    
    class DescribeConfigurationRevisionResponse(Mapping):
        pass
    
    class __long(object):
        pass
    
    class BatchDisassociateScramSecretRequest(Mapping):
        pass
    
    class BatchDisassociateScramSecretResponse(Mapping):
        pass
    
    class GetBootstrapBrokersRequest(Mapping):
        pass
    
    class GetBootstrapBrokersResponse(Mapping):
        pass
    
    class GetCompatibleKafkaVersionsRequest(Mapping):
        pass
    
    class GetCompatibleKafkaVersionsResponse(Mapping):
        pass
    
    class ListClusterOperationsRequest(Mapping):
        pass
    
    class ListClusterOperationsResponse(Mapping):
        pass
    
    class ListClustersRequest(Mapping):
        pass
    
    class ListClustersResponse(Mapping):
        pass
    
    class ListConfigurationRevisionsRequest(Mapping):
        pass
    
    class ListConfigurationRevisionsResponse(Mapping):
        pass
    
    class ListConfigurationsRequest(Mapping):
        pass
    
    class ListConfigurationsResponse(Mapping):
        pass
    
    class ListKafkaVersionsRequest(Mapping):
        pass
    
    class ListKafkaVersionsResponse(Mapping):
        pass
    
    class ListNodesRequest(Mapping):
        pass
    
    class ListNodesResponse(Mapping):
        pass
    
    class ListScramSecretsRequest(Mapping):
        pass
    
    class ListScramSecretsResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class RebootBrokerRequest(Mapping):
        pass
    
    class RebootBrokerResponse(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UpdateBrokerCountRequest(Mapping):
        pass
    
    class UpdateBrokerCountResponse(Mapping):
        pass
    
    class UpdateBrokerTypeRequest(Mapping):
        pass
    
    class UpdateBrokerTypeResponse(Mapping):
        pass
    
    class UpdateBrokerStorageRequest(Mapping):
        pass
    
    class UpdateBrokerStorageResponse(Mapping):
        pass
    
    class BrokerEBSVolumeInfo(Mapping):
        pass
    
    class UpdateConfigurationRequest(Mapping):
        pass
    
    class UpdateConfigurationResponse(Mapping):
        pass
    
    class UpdateClusterConfigurationRequest(Mapping):
        pass
    
    class UpdateClusterConfigurationResponse(Mapping):
        pass
    
    class UpdateClusterKafkaVersionRequest(Mapping):
        pass
    
    class UpdateClusterKafkaVersionResponse(Mapping):
        pass
    
    class UpdateMonitoringRequest(Mapping):
        pass
    
    class UpdateMonitoringResponse(Mapping):
        pass
    
    def batch_associate_scram_secret(self, SecretArnList: List[__string], ClusterArn: str) -> BatchAssociateScramSecretResponse:
        r"""
            Associates one or more Scram Secrets with an Amazon MSK cluster.
         

        :param self:
        :param SecretArnList:  
            List of AWS Secrets Manager secret ARNs.
         <br/>ClusterArn:  
            The Amazon Resource Name (ARN) of the cluster to be updated.
         <br/>
        :return: UnprocessedScramSecrets:  
            List of errors when associating secrets to cluster.
         <br/>ClusterArn:  
            The Amazon Resource Name (ARN) of the cluster.
         <br/>        """
        pass

    def create_cluster(self, NumberOfBrokerNodes: int, KafkaVersion: str, ClusterName: str, BrokerNodeGroupInfo: BrokerNodeGroupInfo, ClientAuthentication: ClientAuthentication=None, ConfigurationInfo: ConfigurationInfo=None, EncryptionInfo: EncryptionInfo=None, EnhancedMonitoring: str=None, OpenMonitoring: OpenMonitoringInfo=None, LoggingInfo: LoggingInfo=None, Tags: __mapOf__string=None) -> CreateClusterResponse:
        r"""
            Creates a new MSK cluster.
         

        :param self:
        :param Tags:  
            Create tags when creating the cluster.
         <br/>NumberOfBrokerNodes:  
            The number of broker nodes in the cluster.
         <br/>LoggingInfo:  :<br/>KafkaVersion:  
            The version of Apache Kafka.
         <br/>OpenMonitoring:  
            The settings for open monitoring.
         :<br/>EnhancedMonitoring:  
            Specifies the level of monitoring for the MSK cluster. The possible values are DEFAULT, PER_BROKER, PER_TOPIC_PER_BROKER, and PER_TOPIC_PER_PARTITION.
         <br/>EncryptionInfo:  
            Includes all encryption-related information.
         :<br/>ConfigurationInfo:  
            Represents the configuration that you want MSK to use for the brokers in a cluster.
         :<br/>ClusterName:  
            The name of the cluster.
         <br/>ClientAuthentication:  
            Includes all client authentication related information.
         :<br/>BrokerNodeGroupInfo:  
            Information about the broker nodes in the cluster.
         :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageInfo</i> 
            Contains information about storage volumes attached to MSK broker nodes.
         &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StorageInfo</b>: 
            Contains information about storage volumes attached to MSK broker nodes.
         <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroups</i> 
            The AWS security groups to associate with the elastic network interfaces in order to specify who can connect to and communicate with the Amazon MSK cluster. If you don't specify a security group, Amazon MSK uses the default security group associated with the VPC.
         <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceType</i> 
            The type of Amazon EC2 instances to use for Kafka brokers. The following instance types are allowed: kafka.m5.large, kafka.m5.xlarge, kafka.m5.2xlarge,
kafka.m5.4xlarge, kafka.m5.12xlarge, and kafka.m5.24xlarge.
         <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClientSubnets</i> 
            The list of subnets to connect to in the client virtual private cloud (VPC). AWS creates elastic network interfaces inside these subnets. Client applications use elastic network interfaces to produce and consume data. Client subnets can't be in Availability Zone us-east-1e.
         <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BrokerAZDistribution</i> 
            The distribution of broker nodes across Availability Zones. This is an optional parameter. If you don't specify it, Amazon MSK gives it the value DEFAULT. You can also explicitly set this parameter to the value DEFAULT. No other values are currently allowed.
         Amazon MSK distributes the broker nodes evenly across the Availability Zones that correspond to the subnets you provide when you create the cluster.
         <br/>
            EBS volume information.
         &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EbsStorageInfo</b>: 
            EBS volume information.
         &nbsp;&nbsp;&nbsp;&nbsp; <i>Tls</i> 
            Details for ClientAuthentication using TLS.
         &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Tls</b>: 
            Details for ClientAuthentication using TLS.
         <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Sasl</i> 
            Details for ClientAuthentication using SASL.
         &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Sasl</b>: 
            Details for ClientAuthentication using SASL.
         <br/>
            Details for SASL/SCRAM client authentication.
         &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Scram</b>: 
            Details for SASL/SCRAM client authentication.
         &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CertificateAuthorityArnList</i> 
            List of ACM Certificate Authority ARNs.
         <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Revision</i> 
            The revision of the configuration to use.
         <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> 
            ARN of the configuration to use.
         <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EncryptionInTransit</i> 
            The details for encryption in transit.
         &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EncryptionInTransit</b>: 
            The details for encryption in transit.
         <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EncryptionAtRest</i> 
            The data-volume encryption details.
         &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EncryptionAtRest</b>: 
            The data-volume encryption details.
         <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DataVolumeKMSKeyId</i> 
            The ARN of the AWS KMS key for encrypting data at rest. If you don't specify a KMS key, MSK creates one for you and uses it.
         <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InCluster</i> 
            When set to true, it indicates that data communication among the broker nodes of the cluster is encrypted. When set to false, the communication happens in plaintext.
            The default value is true.
         <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClientBroker</i> 
            Indicates the encryption setting for data in transit between clients and brokers. The following are the possible values.
            
               TLS means that client-broker communication is enabled with TLS only.
            
               TLS_PLAINTEXT means that client-broker communication is enabled for both TLS-encrypted, as well as plaintext data.
            
               PLAINTEXT means that client-broker communication is enabled in plaintext only.
            The default value is TLS_PLAINTEXT.
         <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Prometheus</i> 
            Prometheus settings.
         &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Prometheus</b>: 
            Prometheus settings.
         <br/>
            Indicates whether you want to enable or disable the JMX Exporter.
         &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>JmxExporter</b>: 
            Indicates whether you want to enable or disable the JMX Exporter.
         &nbsp;&nbsp;&nbsp;&nbsp; <i>BrokerLogs</i> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>BrokerLogs</b>: <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CloudWatchLogs</b>: 
        :return: State:  
            The state of the cluster. The possible states are ACTIVE, CREATING, DELETING, FAILED, HEALING, MAINTENANCE, REBOOTING_BROKER, and UPDATING.
         <br/>ClusterName:  
            The name of the MSK cluster.
         <br/>ClusterArn:  
            The Amazon Resource Name (ARN) of the cluster.
         <br/>        """
        pass

    def create_configuration(self, ServerProperties: __blob, Name: str, Description: str=None, KafkaVersions: List[__string]=None) -> CreateConfigurationResponse:
        r"""
            Creates a new MSK configuration.
         

        :param self:
        :param ServerProperties:  
            Contents of the <filename>server.properties</filename> file. When using the API, you must ensure that the contents of the file are base64 encoded. 
               When using the AWS Management Console, the SDK, or the AWS CLI, the contents of <filename>server.properties</filename> can be in plaintext.
         <br/>Name:  
            The name of the configuration.
         <br/>KafkaVersions:  
            The versions of Apache Kafka with which you can use this MSK configuration.
         <br/>Description:  
            The description of the configuration.
         <br/>
        :return: State:  
            The state of the configuration. The possible states are ACTIVE, DELETING, and DELETE_FAILED. 
         <br/>Name:  
            The name of the configuration.
         <br/>LatestRevision:  
            Latest revision of the configuration.
         :<br/>CreationTime:  
            The time when the configuration was created.
         <br/>Arn:  
            The Amazon Resource Name (ARN) of the configuration.
         <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Revision</i> 
            The revision number.
         <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> 
            The description of the configuration revision.
         <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> 
            The time when the configuration revision was created.
         <br/>        """
        pass

    def delete_cluster(self, ClusterArn: str, CurrentVersion: str=None) -> DeleteClusterResponse:
        r"""
            Deletes the MSK cluster specified by the Amazon Resource Name (ARN) in the request.
         

        :param self:
        :param CurrentVersion:  
            The current version of the MSK cluster.
         <br/>ClusterArn:  
            The Amazon Resource Name (ARN) that uniquely identifies the cluster.
         <br/>
        :return: State:  
            The state of the cluster. The possible states are ACTIVE, CREATING, DELETING, FAILED, HEALING, MAINTENANCE, REBOOTING_BROKER, and UPDATING.
         <br/>ClusterArn:  
            The Amazon Resource Name (ARN) of the cluster.
         <br/>        """
        pass

    def delete_configuration(self, Arn: str) -> DeleteConfigurationResponse:
        r"""
            Deletes an MSK Configuration.
         

        :param self:
        :param Arn:  
            The Amazon Resource Name (ARN) that uniquely identifies an MSK configuration.
         <br/>
        :return: State:  
            The state of the configuration. The possible states are ACTIVE, DELETING, and DELETE_FAILED. 
         <br/>Arn:  
            The Amazon Resource Name (ARN) that uniquely identifies an MSK configuration.
         <br/>        """
        pass

    def describe_cluster(self, ClusterArn: str) -> DescribeClusterResponse:
        r"""
            Returns a description of the MSK cluster whose Amazon Resource Name (ARN) is specified in the request.
         

        :param self:
        :param ClusterArn:  
            The Amazon Resource Name (ARN) that uniquely identifies the cluster.
         <br/>
        :return: ClusterInfo:  
            The cluster information.
         :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ZookeeperConnectStringTls</i> 
            The connection string to use to connect to zookeeper cluster on Tls port.
         <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ZookeeperConnectString</i> 
            The connection string to use to connect to the Apache ZooKeeper cluster.
         <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> 
            Tags attached to the cluster.
         <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StateInfo</i> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StateInfo</b>: <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> 
            The state of the cluster. The possible states are ACTIVE, CREATING, DELETING, FAILED, HEALING, MAINTENANCE, REBOOTING_BROKER, and UPDATING.
         <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberOfBrokerNodes</i> 
            The number of broker nodes in the cluster.
         <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LoggingInfo</i> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>LoggingInfo</b>: <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OpenMonitoring</i> 
            Settings for open monitoring using Prometheus.
         &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>OpenMonitoring</b>: 
            Settings for open monitoring using Prometheus.
         <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnhancedMonitoring</i> 
            Specifies which metrics are gathered for the MSK cluster. This property has the following possible values: DEFAULT, PER_BROKER, PER_TOPIC_PER_BROKER, and PER_TOPIC_PER_PARTITION. For a list of the metrics associated with each of these levels of monitoring, see <a href="https://docs.aws.amazon.com/msk/latest/developerguide/monitoring.html">Monitoring</a>.
         <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EncryptionInfo</i> 
            Includes all encryption-related information.
         &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EncryptionInfo</b>: 
            Includes all encryption-related information.
         <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CurrentVersion</i> 
            The current version of the MSK cluster.
         <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CurrentBrokerSoftwareInfo</i> 
            Information about the version of software currently deployed on the Kafka brokers in the cluster.
         &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CurrentBrokerSoftwareInfo</b>: 
            Information about the version of software currently deployed on the Kafka brokers in the cluster.
         <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> 
            The time when the cluster was created.
         <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterName</i> 
            The name of the cluster.
         <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterArn</i> 
            The Amazon Resource Name (ARN) that uniquely identifies the cluster.
         <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClientAuthentication</i> 
            Includes all client authentication information.
         &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ClientAuthentication</b>: 
            Includes all client authentication information.
         <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BrokerNodeGroupInfo</i> 
            Information about the broker nodes.
         &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>BrokerNodeGroupInfo</b>: 
            Information about the broker nodes.
         <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActiveOperationArn</i> 
            Arn of active cluster operation.
         <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroups</i> 
            The AWS security groups to associate with the elastic network interfaces in order to specify who can connect to and communicate with the Amazon MSK cluster. If you don't specify a security group, Amazon MSK uses the default security group associated with the VPC.
         <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceType</i> 
            The type of Amazon EC2 instances to use for Kafka brokers. The following instance types are allowed: kafka.m5.large, kafka.m5.xlarge, kafka.m5.2xlarge,
kafka.m5.4xlarge, kafka.m5.12xlarge, and kafka.m5.24xlarge.
         <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClientSubnets</i> 
            The list of subnets to connect to in the client virtual private cloud (VPC). AWS creates elastic network interfaces inside these subnets. Client applications use elastic network interfaces to produce and consume data. Client subnets can't be in Availability Zone us-east-1e.
         <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BrokerAZDistribution</i> 
            The distribution of broker nodes across Availability Zones. This is an optional parameter. If you don't specify it, Amazon MSK gives it the value DEFAULT. You can also explicitly set this parameter to the value DEFAULT. No other values are currently allowed.
         Amazon MSK distributes the broker nodes evenly across the Availability Zones that correspond to the subnets you provide when you create the cluster.
         <br/>
            Contains information about storage volumes attached to MSK broker nodes.
         &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StorageInfo</b>: 
            Contains information about storage volumes attached to MSK broker nodes.
         
            Details for ClientAuthentication using SASL.
         &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Sasl</b>: 
            Details for ClientAuthentication using SASL.
         &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KafkaVersion</i> 
            The version of Apache Kafka.
         <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ConfigurationRevision</i> 
            The revision of the configuration to use. This field isn't visible in this preview release.
         <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ConfigurationArn</i> 
            The Amazon Resource Name (ARN) of the configuration used for the cluster. This field isn't visible in this preview release.
         <br/>
            The data-volume encryption details.
         &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EncryptionAtRest</b>: 
            The data-volume encryption details.
         
            Prometheus settings.
         &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Prometheus</b>: 
            Prometheus settings.
         &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>BrokerLogs</b>: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Code</i> <br/>        """
        pass

    def describe_cluster_operation(self, ClusterOperationArn: str) -> DescribeClusterOperationResponse:
        r"""
            Returns a description of the cluster operation specified by the ARN.
         

        :param self:
        :param ClusterOperationArn:  
            The Amazon Resource Name (ARN) that uniquely identifies the MSK cluster operation.
         <br/>
        :return: ClusterOperationInfo:  
            Cluster operation information
         :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetClusterInfo</i> 
            Information about cluster attributes after a cluster is updated.
         &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TargetClusterInfo</b>: 
            Information about cluster attributes after a cluster is updated.
         <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceClusterInfo</i> 
            Information about cluster attributes before a cluster is updated.
         &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SourceClusterInfo</b>: 
            Information about cluster attributes before a cluster is updated.
         <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OperationType</i> 
            Type of the cluster operation.
         <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OperationSteps</i> 
            Steps completed during the operation.
         <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OperationState</i> 
            State of the cluster operation.
         <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OperationArn</i> 
            ARN of the cluster operation.
         <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorInfo</i> 
            Describes the error if the operation fails.
         &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ErrorInfo</b>: 
            Describes the error if the operation fails.
         <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndTime</i> 
            The time at which the operation finished.
         <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> 
            The time that the operation was created.
         <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterArn</i> 
            ARN of the cluster.
         <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClientRequestId</i> 
            The ID of the API request that triggered this operation.
         <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorString</i> 
            An optional field to provide more details about the error.
         <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorCode</i> 
            A number describing the error programmatically.
         <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BrokerEBSVolumeInfo</i> 
            Specifies the size of the EBS volume and the ID of the associated broker.
         <br/>
            Information about the changes in the configuration of the brokers.
         &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ConfigurationInfo</b>: 
            Information about the changes in the configuration of the brokers.
         &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BrokerEBSVolumeInfo</i> 
            Specifies the size of the EBS volume and the ID of the associated broker.
         <br/>
            Information about the changes in the configuration of the brokers.
         &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ConfigurationInfo</b>: 
            Information about the changes in the configuration of the brokers.
                 """
        pass

    def describe_configuration(self, Arn: str) -> DescribeConfigurationResponse:
        r"""
            Returns a description of this MSK configuration.
         

        :param self:
        :param Arn:  
            The Amazon Resource Name (ARN) that uniquely identifies an MSK configuration and all of its revisions.
         <br/>
        :return: State:  
            The state of the configuration. The possible states are ACTIVE, DELETING, and DELETE_FAILED. 
         <br/>Name:  
            The name of the configuration.
         <br/>LatestRevision:  
            Latest revision of the configuration.
         :<br/>KafkaVersions:  
            The versions of Apache Kafka with which you can use this MSK configuration.
         <br/>Description:  
            The description of the configuration.
         <br/>CreationTime:  
            The time when the configuration was created.
         <br/>Arn:  
            The Amazon Resource Name (ARN) of the configuration.
         <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Revision</i> 
            The revision number.
         <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> 
            The description of the configuration revision.
         <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> 
            The time when the configuration revision was created.
         <br/>        """
        pass

    def describe_configuration_revision(self, Revision: __long, Arn: str) -> DescribeConfigurationRevisionResponse:
        r"""
            Returns a description of this revision of the configuration.
         

        :param self:
        :param Revision:  
            A string that uniquely identifies a revision of an MSK configuration.
         <br/>Arn:  
            The Amazon Resource Name (ARN) that uniquely identifies an MSK configuration and all of its revisions.
         <br/>
        :return: ServerProperties:  
            Contents of the <filename>server.properties</filename> file. When using the API, you must ensure that the contents of the file are base64 encoded. 
               When using the AWS Management Console, the SDK, or the AWS CLI, the contents of <filename>server.properties</filename> can be in plaintext.
         <br/>Revision:  
            The revision number.
         <br/>Description:  
            The description of the configuration.
         <br/>CreationTime:  
            The time when the configuration was created.
         <br/>Arn:  
            The Amazon Resource Name (ARN) of the configuration.
         <br/>        """
        pass

    def batch_disassociate_scram_secret(self, SecretArnList: List[__string], ClusterArn: str) -> BatchDisassociateScramSecretResponse:
        r"""
            Disassociates one or more Scram Secrets from an Amazon MSK cluster.
         

        :param self:
        :param SecretArnList:  
            List of AWS Secrets Manager secret ARNs.
         <br/>ClusterArn:  
            The Amazon Resource Name (ARN) of the cluster to be updated.
         <br/>
        :return: UnprocessedScramSecrets:  
            List of errors when disassociating secrets to cluster.
         <br/>ClusterArn:  
            The Amazon Resource Name (ARN) of the cluster.
         <br/>        """
        pass

    def get_bootstrap_brokers(self, ClusterArn: str) -> GetBootstrapBrokersResponse:
        r"""
            A list of brokers that a client application can use to bootstrap.
         

        :param self:
        :param ClusterArn:  
            The Amazon Resource Name (ARN) that uniquely identifies the cluster.
         <br/>
        :return: BootstrapBrokerStringSaslIam:  
            A string that contains one or more DNS names (or IP addresses) and SASL IAM port pairs.
         <br/>BootstrapBrokerStringSaslScram:  
            A string containing one or more DNS names (or IP) and Sasl Scram port pairs.
         <br/>BootstrapBrokerStringTls:  
            A string containing one or more DNS names (or IP) and TLS port pairs.
         <br/>BootstrapBrokerString:  
            A string containing one or more hostname:port pairs.
         <br/>        """
        pass

    def get_compatible_kafka_versions(self, ClusterArn: str=None) -> GetCompatibleKafkaVersionsResponse:
        r"""
            Gets the Apache Kafka versions to which you can update the MSK cluster.
         

        :param self:
        :param ClusterArn:  
            The Amazon Resource Name (ARN) of the cluster check.
            <br/>
        :return: CompatibleKafkaVersions:  
            A list of CompatibleKafkaVersion objects.
            <br/>        """
        pass

    def list_cluster_operations(self, ClusterArn: str, MaxResults: int=None, NextToken: str=None) -> ListClusterOperationsResponse:
        r"""
            Returns a list of all the operations that have been performed on the specified MSK cluster.
         

        :param self:
        :param NextToken:  
            The paginated results marker. When the result of the operation is truncated, the call returns NextToken in the response. 
            To get the next batch, provide this token in your next request.
         <br/>MaxResults:  
            The maximum number of results to return in the response. If there are more results, the response includes a NextToken parameter.
         <br/>ClusterArn:  
            The Amazon Resource Name (ARN) that uniquely identifies the cluster.
         <br/>
        :return: NextToken:  
            If the response of ListClusterOperations is truncated, it returns a NextToken in the response. This Nexttoken should be sent in the subsequent request to ListClusterOperations.
         <br/>ClusterOperationInfoList:  
            An array of cluster operation information objects.
         <br/>        """
        pass

    def list_clusters(self, ClusterNameFilter: str=None, MaxResults: int=None, NextToken: str=None) -> ListClustersResponse:
        r"""
            Returns a list of all the MSK clusters in the current Region.
         

        :param self:
        :param NextToken:  
            The paginated results marker. When the result of the operation is truncated, the call returns NextToken in the response. 
            To get the next batch, provide this token in your next request.
         <br/>MaxResults:  
            The maximum number of results to return in the response. If there are more results, the response includes a NextToken parameter.
         <br/>ClusterNameFilter:  
            Specify a prefix of the name of the clusters that you want to list. The service lists all the clusters whose names start with this prefix.
         <br/>
        :return: NextToken:  
            The paginated results marker. When the result of a ListClusters operation is truncated, the call returns NextToken in the response. 
               To get another batch of clusters, provide this token in your next request.
         <br/>ClusterInfoList:  
            Information on each of the MSK clusters in the response.
         <br/>        """
        pass

    def list_configuration_revisions(self, Arn: str, MaxResults: int=None, NextToken: str=None) -> ListConfigurationRevisionsResponse:
        r"""
            Returns a list of all the MSK configurations in this Region.
         

        :param self:
        :param NextToken:  
            The paginated results marker. When the result of the operation is truncated, the call returns NextToken in the response. 
            To get the next batch, provide this token in your next request.
         <br/>MaxResults:  
            The maximum number of results to return in the response. If there are more results, the response includes a NextToken parameter.
         <br/>Arn:  
            The Amazon Resource Name (ARN) that uniquely identifies an MSK configuration and all of its revisions.
         <br/>
        :return: Revisions:  
            List of ConfigurationRevision objects.
         <br/>NextToken:  
            Paginated results marker.
         <br/>        """
        pass

    def list_configurations(self, MaxResults: int=None, NextToken: str=None) -> ListConfigurationsResponse:
        r"""
            Returns a list of all the MSK configurations in this Region.
         

        :param self:
        :param NextToken:  
            The paginated results marker. When the result of the operation is truncated, the call returns NextToken in the response. 
            To get the next batch, provide this token in your next request.
         <br/>MaxResults:  
            The maximum number of results to return in the response. If there are more results, the response includes a NextToken parameter.
         <br/>
        :return: NextToken:  
            The paginated results marker. When the result of a ListConfigurations operation is truncated, the call returns NextToken in the response. 
               To get another batch of configurations, provide this token in your next request.
         <br/>Configurations:  
            An array of MSK configurations.
         <br/>        """
        pass

    def list_kafka_versions(self, MaxResults: int=None, NextToken: str=None) -> ListKafkaVersionsResponse:
        r"""
            Returns a list of Kafka versions.
         

        :param self:
        :param NextToken:  
            The paginated results marker. When the result of the operation is truncated, the call returns NextToken in the response. To get the next batch, provide this token in your next request.<br/>MaxResults:  
            The maximum number of results to return in the response. If there are more results, the response includes a NextToken parameter.<br/>
        :return: NextToken:  <br/>KafkaVersions:  <br/>        """
        pass

    def list_nodes(self, ClusterArn: str, MaxResults: int=None, NextToken: str=None) -> ListNodesResponse:
        r"""
            Returns a list of the broker nodes in the cluster.
         

        :param self:
        :param NextToken:  
            The paginated results marker. When the result of the operation is truncated, the call returns NextToken in the response. 
            To get the next batch, provide this token in your next request.
         <br/>MaxResults:  
            The maximum number of results to return in the response. If there are more results, the response includes a NextToken parameter.
         <br/>ClusterArn:  
            The Amazon Resource Name (ARN) that uniquely identifies the cluster.
         <br/>
        :return: NodeInfoList:  
            List containing a NodeInfo object.
         <br/>NextToken:  
            The paginated results marker. When the result of a ListNodes operation is truncated, the call returns NextToken in the response. 
               To get another batch of nodes, provide this token in your next request.
         <br/>        """
        pass

    def list_scram_secrets(self, ClusterArn: str, MaxResults: int=None, NextToken: str=None) -> ListScramSecretsResponse:
        r"""
            Returns a list of the Scram Secrets associated with an Amazon MSK cluster.
         

        :param self:
        :param NextToken:  
            The nextToken of the query.
         <br/>MaxResults:  
            The maxResults of the query.
         <br/>ClusterArn:  
            The arn of the cluster.
         <br/>
        :return: SecretArnList:  
            The list of scram secrets associated with the cluster.
         <br/>NextToken:  
            Paginated results marker.
         <br/>        """
        pass

    def list_tags_for_resource(self, ResourceArn: str) -> ListTagsForResourceResponse:
        r"""
            Returns a list of the tags associated with the specified resource.
         

        :param self:
        :param ResourceArn:  
            The Amazon Resource Name (ARN) that uniquely identifies the resource that's associated with the tags.
         <br/>
        :return: Tags:  
            The key-value pair for the resource tag.
         <br/>        """
        pass

    def reboot_broker(self, ClusterArn: str, BrokerIds: List[__string]) -> RebootBrokerResponse:
        r"""Reboots brokers.

        :param self:
        :param ClusterArn:  
            The Amazon Resource Name (ARN) of the cluster to be updated.
         <br/>BrokerIds:  
            The list of broker IDs to be rebooted. The reboot-broker operation supports rebooting one broker at a time.
         <br/>
        :return: ClusterOperationArn:  
            The Amazon Resource Name (ARN) of the cluster operation.
         <br/>ClusterArn:  
            The Amazon Resource Name (ARN) of the cluster.
         <br/>        """
        pass

    def tag_resource(self, Tags: __mapOf__string, ResourceArn: str):
        r"""
            Adds tags to the specified MSK resource.
         

        :param self:
        :param Tags:  
            The key-value pair for the resource tag.
         <br/>ResourceArn:  
            The Amazon Resource Name (ARN) that uniquely identifies the resource that's associated with the tags.
         <br/>
        :return:         """
        pass

    def untag_resource(self, TagKeys: List[__string], ResourceArn: str):
        r"""
            Removes the tags associated with the keys that are provided in the query.
         

        :param self:
        :param TagKeys:  
            Tag keys must be unique for a given cluster. In addition, the following restrictions apply:
            <ul>
               <li>
                  Each tag key must be unique. If you add a tag with a key that's already in
                  use, your new tag overwrites the existing key-value pair. 
               </li>
               <li>
                  You can't start a tag key with aws: because this prefix is reserved for use
                  by  AWS.  AWS creates tags that begin with this prefix on your behalf, but
                  you can't edit or delete them.
               </li>
               <li>
                  Tag keys must be between 1 and 128 Unicode characters in length.
               </li>
               <li>
                  Tag keys must consist of the following characters: Unicode letters, digits,
                  white space, and the following special characters: _ . / = + -
                     @.
               </li>
            </ul>
         <br/>ResourceArn:  
            The Amazon Resource Name (ARN) that uniquely identifies the resource that's associated with the tags.
         <br/>
        :return:         """
        pass

    def update_broker_count(self, TargetNumberOfBrokerNodes: int, CurrentVersion: str, ClusterArn: str) -> UpdateBrokerCountResponse:
        r"""
            Updates the number of broker nodes in the cluster.
         

        :param self:
        :param TargetNumberOfBrokerNodes:  
            The number of broker nodes that you want the cluster to have after this operation completes successfully.
         <br/>CurrentVersion:  
            The version of cluster to update from. A successful operation will then generate a new version.
         <br/>ClusterArn:  
            The Amazon Resource Name (ARN) that uniquely identifies the cluster.
         <br/>
        :return: ClusterOperationArn:  
            The Amazon Resource Name (ARN) of the cluster operation.
         <br/>ClusterArn:  
            The Amazon Resource Name (ARN) of the cluster.
         <br/>        """
        pass

    def update_broker_type(self, TargetInstanceType: str, CurrentVersion: str, ClusterArn: str) -> UpdateBrokerTypeResponse:
        r"""
            Updates EC2 instance type.
         

        :param self:
        :param TargetInstanceType:  
            The Amazon MSK broker type that you want all of the brokers in this cluster to be.
         <br/>CurrentVersion:  
            The cluster version that you want to change. After this operation completes successfully, the cluster will have a new version.
         <br/>ClusterArn:  
            The Amazon Resource Name (ARN) that uniquely identifies the cluster.
         <br/>
        :return: ClusterOperationArn:  
            The Amazon Resource Name (ARN) of the cluster operation.
         <br/>ClusterArn:  
            The Amazon Resource Name (ARN) of the cluster.
         <br/>        """
        pass

    def update_broker_storage(self, TargetBrokerEBSVolumeInfo: List[BrokerEBSVolumeInfo], CurrentVersion: str, ClusterArn: str) -> UpdateBrokerStorageResponse:
        r"""
            Updates the EBS storage associated with MSK brokers.
         

        :param self:
        :param TargetBrokerEBSVolumeInfo:  
            Describes the target volume size and the ID of the broker to apply the update to.
         <br/>CurrentVersion:  
            The version of cluster to update from. A successful operation will then generate a new version.
         <br/>ClusterArn:  
            The Amazon Resource Name (ARN) that uniquely identifies the cluster.
         <br/>
        :return: ClusterOperationArn:  
            The Amazon Resource Name (ARN) of the cluster operation.
         <br/>ClusterArn:  
            The Amazon Resource Name (ARN) of the cluster.
         <br/>        """
        pass

    def update_configuration(self, ServerProperties: __blob, Arn: str, Description: str=None) -> UpdateConfigurationResponse:
        r"""
            Updates an MSK configuration.
         

        :param self:
        :param ServerProperties:  
            Contents of the <filename>server.properties</filename> file. When using the API, you must ensure that the contents of the file are base64 encoded. 
               When using the AWS Management Console, the SDK, or the AWS CLI, the contents of <filename>server.properties</filename> can be in plaintext.
         <br/>Description:  
            The description of the configuration revision.
         <br/>Arn:  
            The Amazon Resource Name (ARN) of the configuration.
         <br/>
        :return: LatestRevision:  
            Latest revision of the configuration.
         :<br/>Arn:  
            The Amazon Resource Name (ARN) of the configuration.
         <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Revision</i> 
            The revision number.
         <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> 
            The description of the configuration revision.
         <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> 
            The time when the configuration revision was created.
         <br/>        """
        pass

    def update_cluster_configuration(self, CurrentVersion: str, ConfigurationInfo: ConfigurationInfo, ClusterArn: str) -> UpdateClusterConfigurationResponse:
        r"""
            Updates the cluster with the configuration that is specified in the request body.
         

        :param self:
        :param CurrentVersion:  
            The version of the cluster that needs to be updated.
         <br/>ConfigurationInfo:  
            Represents the configuration that you want MSK to use for the brokers in a cluster.
         :<br/>ClusterArn:  
            The Amazon Resource Name (ARN) that uniquely identifies the cluster.
         <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Revision</i> 
            The revision of the configuration to use.
         <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> 
            ARN of the configuration to use.
         <br/>
        :return: ClusterOperationArn:  
            The Amazon Resource Name (ARN) of the cluster operation.
         <br/>ClusterArn:  
            The Amazon Resource Name (ARN) of the cluster.
         <br/>        """
        pass

    def update_cluster_kafka_version(self, TargetKafkaVersion: str, CurrentVersion: str, ClusterArn: str, ConfigurationInfo: ConfigurationInfo=None) -> UpdateClusterKafkaVersionResponse:
        r"""
            Updates the Apache Kafka version for the cluster.
         

        :param self:
        :param TargetKafkaVersion:  
            Target Kafka version.
            <br/>CurrentVersion:  
            Current cluster version.
            <br/>ConfigurationInfo:  
            The custom configuration that should be applied on the new version of cluster.
            :<br/>ClusterArn:  
            The Amazon Resource Name (ARN) of the cluster to be updated.
            <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Revision</i> 
            The revision of the configuration to use.
         <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> 
            ARN of the configuration to use.
         <br/>
        :return: ClusterOperationArn:  
            The Amazon Resource Name (ARN) of the cluster operation.
            <br/>ClusterArn:  
            The Amazon Resource Name (ARN) of the cluster.
            <br/>        """
        pass

    def update_monitoring(self, CurrentVersion: str, ClusterArn: str, EnhancedMonitoring: str=None, OpenMonitoring: OpenMonitoringInfo=None, LoggingInfo: LoggingInfo=None) -> UpdateMonitoringResponse:
        r"""
            Updates the monitoring settings for the cluster. You can use this operation to specify which Apache Kafka metrics you want Amazon MSK to send to Amazon CloudWatch. You can also specify settings for open monitoring with Prometheus.
         

        :param self:
        :param LoggingInfo:  :<br/>OpenMonitoring:  
            The settings for open monitoring.
         :<br/>EnhancedMonitoring:  
            Specifies which Apache Kafka metrics Amazon MSK gathers and sends to Amazon CloudWatch for this cluster.
         <br/>CurrentVersion:  
            The version of the MSK cluster to update. Cluster versions aren't simple numbers. You can describe an MSK cluster to find its version. When this update operation is successful, it generates a new cluster version.
         <br/>ClusterArn:  
            The Amazon Resource Name (ARN) that uniquely identifies the cluster.
         <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Prometheus</i> 
            Prometheus settings.
         &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Prometheus</b>: 
            Prometheus settings.
         <br/>
            Indicates whether you want to enable or disable the JMX Exporter.
         &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>JmxExporter</b>: 
            Indicates whether you want to enable or disable the JMX Exporter.
         &nbsp;&nbsp;&nbsp;&nbsp; <i>BrokerLogs</i> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>BrokerLogs</b>: <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CloudWatchLogs</b>: 
        :return: ClusterOperationArn:  
            The Amazon Resource Name (ARN) of the cluster operation.
         <br/>ClusterArn:  
            The Amazon Resource Name (ARN) of the cluster.
         <br/>        """
        pass





class kendra(BaseClient):
    r"""Amazon Kendra is a service for indexing large document sets."""




    class BatchDeleteDocumentRequest(Mapping):
        pass
    
    class BatchDeleteDocumentResponse(Mapping):
        pass
    
    class DocumentId(object):
        pass
    
    class DataSourceSyncJobMetricTarget(Mapping):
        pass
    
    class BatchGetDocumentStatusRequest(Mapping):
        pass
    
    class BatchGetDocumentStatusResponse(Mapping):
        pass
    
    class DocumentInfo(Mapping):
        pass
    
    class BatchPutDocumentRequest(Mapping):
        pass
    
    class BatchPutDocumentResponse(Mapping):
        pass
    
    class Document(Mapping):
        pass
    
    class ClearQuerySuggestionsRequest(Mapping):
        pass
    
    class CreateDataSourceRequest(Mapping):
        pass
    
    class CreateDataSourceResponse(Mapping):
        pass
    
    class DataSourceConfiguration(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class CreateFaqRequest(Mapping):
        pass
    
    class CreateFaqResponse(Mapping):
        pass
    
    class S3Path(Mapping):
        pass
    
    class CreateIndexRequest(Mapping):
        pass
    
    class CreateIndexResponse(Mapping):
        pass
    
    class ServerSideEncryptionConfiguration(Mapping):
        pass
    
    class UserTokenConfiguration(Mapping):
        pass
    
    class CreateQuerySuggestionsBlockListRequest(Mapping):
        pass
    
    class CreateQuerySuggestionsBlockListResponse(Mapping):
        pass
    
    class CreateThesaurusRequest(Mapping):
        pass
    
    class CreateThesaurusResponse(Mapping):
        pass
    
    class DeleteDataSourceRequest(Mapping):
        pass
    
    class DeleteFaqRequest(Mapping):
        pass
    
    class DeleteIndexRequest(Mapping):
        pass
    
    class DeleteQuerySuggestionsBlockListRequest(Mapping):
        pass
    
    class DeleteThesaurusRequest(Mapping):
        pass
    
    class DescribeDataSourceRequest(Mapping):
        pass
    
    class DescribeDataSourceResponse(Mapping):
        pass
    
    class DescribeFaqRequest(Mapping):
        pass
    
    class DescribeFaqResponse(Mapping):
        pass
    
    class DescribeIndexRequest(Mapping):
        pass
    
    class DescribeIndexResponse(Mapping):
        pass
    
    class DescribeQuerySuggestionsBlockListRequest(Mapping):
        pass
    
    class DescribeQuerySuggestionsBlockListResponse(Mapping):
        pass
    
    class DescribeQuerySuggestionsConfigRequest(Mapping):
        pass
    
    class DescribeQuerySuggestionsConfigResponse(Mapping):
        pass
    
    class DescribeThesaurusRequest(Mapping):
        pass
    
    class DescribeThesaurusResponse(Mapping):
        pass
    
    class GetQuerySuggestionsRequest(Mapping):
        pass
    
    class GetQuerySuggestionsResponse(Mapping):
        pass
    
    class ListDataSourceSyncJobsRequest(Mapping):
        pass
    
    class ListDataSourceSyncJobsResponse(Mapping):
        pass
    
    class TimeRange(Mapping):
        pass
    
    class ListDataSourcesRequest(Mapping):
        pass
    
    class ListDataSourcesResponse(Mapping):
        pass
    
    class ListFaqsRequest(Mapping):
        pass
    
    class ListFaqsResponse(Mapping):
        pass
    
    class ListIndicesRequest(Mapping):
        pass
    
    class ListIndicesResponse(Mapping):
        pass
    
    class ListQuerySuggestionsBlockListsRequest(Mapping):
        pass
    
    class ListQuerySuggestionsBlockListsResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class ListThesauriRequest(Mapping):
        pass
    
    class ListThesauriResponse(Mapping):
        pass
    
    class QueryRequest(Mapping):
        pass
    
    class QueryResult(Mapping):
        pass
    
    class AttributeFilter(Mapping):
        pass
    
    class Facet(Mapping):
        pass
    
    class DocumentAttributeKey(object):
        pass
    
    class DocumentRelevanceConfiguration(Mapping):
        pass
    
    class SortingConfiguration(Mapping):
        pass
    
    class UserContext(Mapping):
        pass
    
    class StartDataSourceSyncJobRequest(Mapping):
        pass
    
    class StartDataSourceSyncJobResponse(Mapping):
        pass
    
    class StopDataSourceSyncJobRequest(Mapping):
        pass
    
    class SubmitFeedbackRequest(Mapping):
        pass
    
    class ClickFeedback(Mapping):
        pass
    
    class RelevanceFeedback(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateDataSourceRequest(Mapping):
        pass
    
    class UpdateIndexRequest(Mapping):
        pass
    
    class DocumentMetadataConfiguration(Mapping):
        pass
    
    class CapacityUnitsConfiguration(Mapping):
        pass
    
    class UpdateQuerySuggestionsBlockListRequest(Mapping):
        pass
    
    class UpdateQuerySuggestionsConfigRequest(Mapping):
        pass
    
    class ObjectBoolean(object):
        pass
    
    class UpdateThesaurusRequest(Mapping):
        pass
    
    def batch_delete_document(self, DocumentIdList: List[DocumentId], IndexId: str, DataSourceSyncJobMetricTarget: DataSourceSyncJobMetricTarget=None) -> BatchDeleteDocumentResponse:
        r"""Removes one or more documents from an index. The documents must have been added with the <code>BatchPutDocument</code> operation. The documents are deleted asynchronously. You can see the progress of the deletion by using AWS CloudWatch. Any error messages related to the processing of the batch are sent to you CloudWatch log.

        :param self:
        :param DataSourceSyncJobMetricTarget:  Maps a particular data source sync job to a particular data source.:<br/>DocumentIdList:  One or more identifiers for documents to delete from the index.<br/>IndexId:  The identifier of the index that contains the documents to delete.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataSourceSyncJobId</i> The ID of the sync job that is running on the data source. If the ID of a sync job is not provided and there is a sync job running, then the ID of this sync job is used and metrics are generated for this sync job. If the ID of a sync job is not provided and there is no sync job running, then no metrics are generated and documents are indexed/deleted at the index level without sync job metrics included.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataSourceId</i> The ID of the data source that is running the sync job.<br/>
        :return: FailedDocuments:  A list of documents that could not be removed from the index. Each entry contains an error message that indicates why the document couldn't be removed from the index.<br/>        """
        pass

    def batch_get_document_status(self, DocumentInfoList: List[DocumentInfo], IndexId: str) -> BatchGetDocumentStatusResponse:
        r"""Returns the indexing status for one or more documents submitted with the <a href="https://docs.aws.amazon.com/kendra/latest/dg/API_BatchPutDocument.html"> BatchPutDocument</a> operation. When you use the <code>BatchPutDocument</code> operation, documents are indexed asynchronously. You can use the <code>BatchGetDocumentStatus</code> operation to get the current status of a list of documents so that you can determine if they have been successfully indexed. You can also use the <code>BatchGetDocumentStatus</code> operation to check the status of the <a href="https://docs.aws.amazon.com/kendra/latest/dg/API_BatchDeleteDocument.html"> BatchDeleteDocument</a> operation. When a document is deleted from the index, Amazon Kendra returns <code>NOT_FOUND</code> as the status.

        :param self:
        :param DocumentInfoList:  A list of <code>DocumentInfo</code> objects that identify the documents for which to get the status. You identify the documents by their document ID and optional attributes.<br/>IndexId:  The identifier of the index to add documents to. The index ID is returned by the <a href="https://docs.aws.amazon.com/kendra/latest/dg/API_CreateIndex.html"> CreateIndex </a> operation.<br/>
        :return: DocumentStatusList:  The status of documents. The status indicates if the document is waiting to be indexed, is in the process of indexing, has completed indexing, or failed indexing. If a document failed indexing, the status provides the reason why.<br/>Errors:  A list of documents that Amazon Kendra couldn't get the status for. The list includes the ID of the document and the reason that the status couldn't be found.<br/>        """
        pass

    def batch_put_document(self, Documents: List[Document], IndexId: str, RoleArn: str=None) -> BatchPutDocumentResponse:
        r"""Adds one or more documents to an index. The <code>BatchPutDocument</code> operation enables you to ingest inline documents or a set of documents stored in an Amazon S3 bucket. Use this operation to ingest your text and unstructured text into an index, add custom attributes to the documents, and to attach an access control list to the documents added to the index. The documents are indexed asynchronously. You can see the progress of the batch using AWS CloudWatch. Any error messages related to processing the batch are sent to your AWS CloudWatch log.

        :param self:
        :param Documents:  One or more documents to add to the index. Documents can include custom attributes. For example, 'DataSourceId' and 'DataSourceSyncJobId' are custom attributes that provide information on the synchronization of documents running on a data source. Note, 'DataSourceSyncJobId' could be an optional custom attribute as Amazon Kendra will use the ID of a running sync job. Documents have the following file size limits. <ul> <li> 5 MB total size for inline documents </li> <li> 50 MB total size for files from an S3 bucket </li> <li> 5 MB extracted text for any file </li> </ul> For more information about file size and transaction per second quotas, see <a href="https://docs.aws.amazon.com/kendra/latest/dg/quotas.html">Quotas</a>.<br/>RoleArn:  The Amazon Resource Name (ARN) of a role that is allowed to run the <code>BatchPutDocument</code> operation. For more information, see <a href="https://docs.aws.amazon.com/kendra/latest/dg/iam-roles.html">IAM Roles for Amazon Kendra</a>.<br/>IndexId:  The identifier of the index to add the documents to. You need to create the index first using the <code>CreateIndex</code> operation.<br/>
        :return: FailedDocuments:  A list of documents that were not added to the index because the document failed a validation check. Each document contains an error message that indicates why the document couldn't be added to the index. If there was an error adding a document to an index the error is reported in your AWS CloudWatch log. For more information, see <a href="https://docs.aws.amazon.com/kendra/latest/dg/cloudwatch-logs.html">Monitoring Amazon Kendra with Amazon CloudWatch Logs</a> <br/>        """
        pass

    def clear_query_suggestions(self, IndexId: str):
        r"""Clears existing query suggestions from an index. This deletes existing suggestions only, not the queries in the query log. After you clear suggestions, Amazon Kendra learns new suggestions based on new queries added to the query log from the time you cleared suggestions. If you do not see any new suggestions, then please allow Amazon Kendra to collect enough queries to learn new suggestions.

        :param self:
        :param IndexId:  The identifier of the index you want to clear query suggestions from.<br/>
        :return:         """
        pass

    def create_data_source(self, Type: str, IndexId: str, Name: str, Configuration: DataSourceConfiguration=None, Description: str=None, Schedule: str=None, RoleArn: str=None, Tags: List[Tag]=None, ClientToken: str=None) -> CreateDataSourceResponse:
        r"""Creates a data source that you use to with an Amazon Kendra index.  You specify a name, data source connector type and description for your data source. You also specify configuration information such as document metadata (author, source URI, and so on) and user context information.  <code>CreateDataSource</code> is a synchronous operation. The operation returns 200 if the data source was successfully created. Otherwise, an exception is raised.

        :param self:
        :param ClientToken:  A token that you provide to identify the request to create a data source. Multiple calls to the <code>CreateDataSource</code> operation with the same client token will create only one data source.<br/>Tags:  A list of key-value pairs that identify the data source. You can use the tags to identify and organize your resources and to control access to resources.<br/>RoleArn:  The Amazon Resource Name (ARN) of a role with permission to access the data source. For more information, see <a href="https://docs.aws.amazon.com/kendra/latest/dg/iam-roles.html">IAM Roles for Amazon Kendra</a>. You can't specify the <code>RoleArn</code> parameter when the <code>Type</code> parameter is set to <code>CUSTOM</code>. If you do, you receive a <code>ValidationException</code> exception. The <code>RoleArn</code> parameter is required for all other data sources.<br/>Schedule:  Sets the frequency that Amazon Kendra will check the documents in your repository and update the index. If you don't set a schedule Amazon Kendra will not periodically update the index. You can call the <code>StartDataSourceSyncJob</code> operation to update the index. You can't specify the <code>Schedule</code> parameter when the <code>Type</code> parameter is set to <code>CUSTOM</code>. If you do, you receive a <code>ValidationException</code> exception.<br/>Description:  A description for the data source.<br/>Configuration:  The connector configuration information that is required to access the repository. You can't specify the <code>Configuration</code> parameter when the <code>Type</code> parameter is set to <code>CUSTOM</code>. If you do, you receive a <code>ValidationException</code> exception. The <code>Configuration</code> parameter is required for all other data sources.:<br/>Type:  The type of repository that contains the data source.<br/>IndexId:  The identifier of the index that should be associated with this data source.<br/>Name:  A unique name for the data source. A data source name can't be changed without deleting and recreating the data source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WebCrawlerConfiguration</i> Provides the configuration information required for Amazon Kendra web crawler.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>WebCrawlerConfiguration</b>: Provides the configuration information required for Amazon Kendra web crawler.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GoogleDriveConfiguration</i> Provides configuration for data sources that connect to Google Drive. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>GoogleDriveConfiguration</b>: Provides configuration for data sources that connect to Google Drive. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConfluenceConfiguration</i> Provides configuration information for connecting to a Confluence data source.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ConfluenceConfiguration</b>: Provides configuration information for connecting to a Confluence data source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceNowConfiguration</i> Provides configuration for data sources that connect to ServiceNow instances.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ServiceNowConfiguration</b>: Provides configuration for data sources that connect to ServiceNow instances.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OneDriveConfiguration</i> Provides configuration for data sources that connect to Microsoft OneDrive.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>OneDriveConfiguration</b>: Provides configuration for data sources that connect to Microsoft OneDrive.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SalesforceConfiguration</i> Provides configuration information for data sources that connect to a Salesforce site.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SalesforceConfiguration</b>: Provides configuration information for data sources that connect to a Salesforce site.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseConfiguration</i> Provides information necessary to create a data source connector for a database.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DatabaseConfiguration</b>: Provides information necessary to create a data source connector for a database.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SharePointConfiguration</i> Provides information necessary to create a data source connector for a Microsoft SharePoint site.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SharePointConfiguration</b>: Provides information necessary to create a data source connector for a Microsoft SharePoint site.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Configuration</i> Provides information to create a data source connector for a document repository in an Amazon S3 bucket.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3Configuration</b>: Provides information to create a data source connector for a document repository in an Amazon S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ExclusionPatterns</i> A list of glob patterns for documents that should not be indexed. If a document that matches an inclusion prefix or inclusion pattern also matches an exclusion pattern, the document is not indexed. Some <a href="https://docs.aws.amazon.com/cli/latest/reference/s3/#use-of-exclude-and-include-filters">examples</a> are: <ul> <li>  <i>*.png , *.jpg</i> will exclude all PNG and JPEG image files in a directory (files with the extensions .png and .jpg). </li> <li>  <i>*internal*</i> will exclude all files in a directory that contain 'internal' in the file name, such as 'internal', 'internal_only', 'company_internal'. </li> <li>  <i>**/*internal*</i> will exclude all internal-related files in a directory and its subdirectories. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InclusionPatterns</i> A list of glob patterns for documents that should be indexed. If a document that matches an inclusion pattern also matches an exclusion pattern, the document is not indexed. Some <a href="https://docs.aws.amazon.com/cli/latest/reference/s3/#use-of-exclude-and-include-filters">examples</a> are: <ul> <li>  <i>*.txt</i> will include all text files in a directory (files with the extension .txt). </li> <li>  <i>**/*.txt</i> will include all text files in a directory and its subdirectories. </li> <li>  <i>*tax*</i> will include all files in a directory that contain 'tax' in the file name, such as 'tax', 'taxes', 'income_tax'. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InclusionPrefixes</i> A list of S3 prefixes for the documents that should be included in the index.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BucketName</i> The name of the bucket that contains the documents.<br/>Document metadata files that contain information such as the document access control information, source URI, document author, and custom attributes. Each metadata file contains metadata about a single document.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DocumentsMetadataConfiguration</b>: Document metadata files that contain information such as the document access control information, source URI, document author, and custom attributes. Each metadata file contains metadata about a single document.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ExclusionPatterns</i> A list of regular expression patterns. Documents that match the patterns are excluded from the index. Documents that don't match the patterns are included in the index. If a document matches both an exclusion pattern and an inclusion pattern, the document is not included in the index. The regex is applied to the display URL of the SharePoint document.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InclusionPatterns</i> A list of regular expression patterns. Documents that match the patterns are included in the index. Documents that don't match the patterns are excluded from the index. If a document matches both an inclusion pattern and an exclusion pattern, the document is not included in the index. The regex is applied to the display URL of the SharePoint document.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UseChangeLog</i> Set to <code>TRUE</code> to use the Microsoft SharePoint change log to determine the documents that need to be updated in the index. Depending on the size of the SharePoint change log, it may take longer for Amazon Kendra to use the change log than it takes it to determine the changed documents using the Amazon Kendra document crawler.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CrawlAttachments</i>  <code>TRUE</code> to include attachments to documents stored in your Microsoft SharePoint site in the index; otherwise, <code>FALSE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretArn</i> The Amazon Resource Name (ARN) of credentials stored in AWS Secrets Manager. The credentials should be a user/password pair. For more information, see <a href="https://docs.aws.amazon.com/kendra/latest/dg/data-source-sharepoint.html">Using a Microsoft SharePoint Data Source</a>. For more information about AWS Secrets Manager, see <a href="https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html"> What Is AWS Secrets Manager </a> in the <i>AWS Secrets Manager</i> user guide.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Urls</i> The URLs of the Microsoft SharePoint site that contains the documents that should be indexed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SharePointVersion</i> The version of Microsoft SharePoint that you are using as a data source.<br/>Provides information for connecting to an Amazon VPC.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>VpcConfiguration</b>: Provides information for connecting to an Amazon VPC.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseEngineType</i> The type of database engine that runs the database.<br/>The information necessary to connect to a database.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ConnectionConfiguration</b>: The information necessary to connect to a database.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StandardObjectConfigurations</i> Specifies the Salesforce standard objects that Amazon Kendra indexes.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretArn</i> The Amazon Resource Name (ARN) of an AWS Secrets Manager secret that contains the key/value pairs required to connect to your Salesforce instance. The secret must contain a JSON structure with the following keys: <ul> <li> authenticationUrl - The OAUTH endpoint that Amazon Kendra connects to get an OAUTH token.  </li> <li> consumerKey - The application public key generated when you created your Salesforce application. </li> <li> consumerSecret - The application private key generated when you created your Salesforce application. </li> <li> password - The password associated with the user logging in to the Salesforce instance. </li> <li> securityToken - The token associated with the user account logging in to the Salesforce instance. </li> <li> username - The user name of the user logging in to the Salesforce instance. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerUrl</i> The instance URL for the Salesforce site that you want to index.<br/>Specifies configuration information for the knowledge article types that Amazon Kendra indexes. Amazon Kendra indexes standard knowledge articles and the standard fields of knowledge articles, or the custom fields of custom knowledge articles, but not both.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>KnowledgeArticleConfiguration</b>: Specifies configuration information for the knowledge article types that Amazon Kendra indexes. Amazon Kendra indexes standard knowledge articles and the standard fields of knowledge articles, or the custom fields of custom knowledge articles, but not both.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretArn</i> The Amazon Resource Name (ARN) of an AWS Secrets Manager secret that contains the user name and password to connect to OneDrive. The user namd should be the application ID for the OneDrive application, and the password is the application key for the OneDrive application.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TenantDomain</i> The Azure Active Directory domain of the organization. <br/>A list of user accounts whose documents should be indexed.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>OneDriveUsers</b>: A list of user accounts whose documents should be indexed.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceNowBuildVersion</i> The identifier of the release that the ServiceNow host is running. If the host is not running the <code>LONDON</code> release, use <code>OTHERS</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretArn</i> The Amazon Resource Name (ARN) of the AWS Secret Manager secret that contains the user name and password required to connect to the ServiceNow instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HostUrl</i> The ServiceNow instance that the data source connects to. The host endpoint should look like the following: <code>{instance}.service-now.com.</code> <br/>Provides configuration information for crawling knowledge articles in the ServiceNow site.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>KnowledgeArticleConfiguration</b>: Provides configuration information for crawling knowledge articles in the ServiceNow site.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> Specifies the version of the Confluence installation that you are connecting to.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretArn</i> The Amazon Resource Name (ARN) of an AWS Secrets Manager secret that contains the key/value pairs required to connect to your Confluence server. The secret must contain a JSON structure with the following keys: <ul> <li> username - The user name or email address of a user with administrative privileges for the Confluence server. </li> <li> password - The password associated with the user logging in to the Confluence server. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerUrl</i> The URL of your Confluence instance. Use the full URL of the server. For example, <code>https://server.example.com:port/</code>. You can also use an IP address, for example, <code>https://192.168.1.113/</code>.<br/>Specifies configuration information for indexing Confluence spaces.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SpaceConfiguration</b>: Specifies configuration information for indexing Confluence spaces.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ExcludeSharedDrives</i> A list of identifiers or shared drives to exclude from the index. All files and folders stored on the shared drive are excluded.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ExcludeUserAccounts</i> A list of email addresses of the users. Documents owned by these users are excluded from the index. Documents shared with excluded users are indexed unless they are excluded in another way.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ExcludeMimeTypes</i> A list of MIME types to exclude from the index. All documents matching the specified MIME type are excluded.  For a list of MIME types, see <a href="https://docs.aws.amazon.com/kendra/latest/dg/data-source-google-drive.html">Using a Google Workspace Drive data source</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FieldMappings</i> Defines mapping between a field in the Google Drive and a Amazon Kendra index field. If you are using the console, you can define index fields when creating the mapping. If you are using the API, you must first create the field using the <code>UpdateIndex</code> operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ExclusionPatterns</i> A list of regular expression patterns that apply to the path on Google Drive. Items that match the pattern are excluded from the index from both shared drives and users' My Drives. Items that don't match the pattern are included in the index. If an item matches both an exclusion pattern and an inclusion pattern, it is excluded from the index.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InclusionPatterns</i> A list of regular expression patterns that apply to path on Google Drive. Items that match the pattern are included in the index from both shared drives and users' My Drives. Items that don't match the pattern are excluded from the index. If an item matches both an inclusion pattern and an exclusion pattern, it is excluded from the index.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretArn</i> The Amazon Resource Name (ARN) of a AWS Secrets Manager secret that contains the credentials required to connect to Google Drive. For more information, see <a href="https://docs.aws.amazon.com/kendra/latest/dg/data-source-google-drive.html">Using a Google Workspace Drive data source</a>.<br/>Specifies the seed or starting point URLs of the websites or the sitemap URLs of the websites you want to crawl. You can include website subdomains. You can list up to 100 seed URLs and up to three sitemap URLs.  <i>When selecting websites to index, you must adhere to the <a href="https://aws.amazon.com/aup/">Amazon Acceptable Use Policy</a> and all other Amazon terms. Remember that you must only use the Amazon Kendra web crawler to index your own webpages, or webpages that you have authorization to index.</i> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Urls</b>: Specifies the seed or starting point URLs of the websites or the sitemap URLs of the websites you want to crawl. You can include website subdomains. You can list up to 100 seed URLs and up to three sitemap URLs.  <i>When selecting websites to index, you must adhere to the <a href="https://aws.amazon.com/aup/">Amazon Acceptable Use Policy</a> and all other Amazon terms. Remember that you must only use the Amazon Kendra web crawler to index your own webpages, or webpages that you have authorization to index.</i> 
        :return: Id:  A unique identifier for the data source.<br/>        """
        pass

    def create_faq(self, RoleArn: str, S3Path: S3Path, Name: str, IndexId: str, Description: str=None, Tags: List[Tag]=None, FileFormat: str=None, ClientToken: str=None) -> CreateFaqResponse:
        r"""Creates an new set of frequently asked question (FAQ) questions and answers.

        :param self:
        :param ClientToken:  A token that you provide to identify the request to create a FAQ. Multiple calls to the <code>CreateFaqRequest</code> operation with the same client token will create only one FAQ. <br/>FileFormat:  The format of the input file. You can choose between a basic CSV format, a CSV format that includes customs attributes in a header, and a JSON format that includes custom attributes. The format must match the format of the file stored in the S3 bucket identified in the <code>S3Path</code> parameter. For more information, see <a href="https://docs.aws.amazon.com/kendra/latest/dg/in-creating-faq.html">Adding questions and answers</a>.<br/>Tags:  A list of key-value pairs that identify the FAQ. You can use the tags to identify and organize your resources and to control access to resources.<br/>RoleArn:  The Amazon Resource Name (ARN) of a role with permission to access the S3 bucket that contains the FAQs. For more information, see <a href="https://docs.aws.amazon.com/kendra/latest/dg/iam-roles.html">IAM Roles for Amazon Kendra</a>.<br/>S3Path:  The S3 location of the FAQ input data.:<br/>Description:  A description of the FAQ.<br/>Name:  The name that should be associated with the FAQ.<br/>IndexId:  The identifier of the index that contains the FAQ.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The name of the file.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i> The name of the S3 bucket that contains the file.<br/>
        :return: Id:  The unique identifier of the FAQ.<br/>        """
        pass

    def create_index(self, RoleArn: str, Name: str, Edition: str=None, ServerSideEncryptionConfiguration: ServerSideEncryptionConfiguration=None, Description: str=None, ClientToken: str=None, Tags: List[Tag]=None, UserTokenConfigurations: List[UserTokenConfiguration]=None, UserContextPolicy: str=None) -> CreateIndexResponse:
        r"""Creates a new Amazon Kendra index. Index creation is an asynchronous operation. To determine if index creation has completed, check the <code>Status</code> field returned from a call to <code>DescribeIndex</code>. The <code>Status</code> field is set to <code>ACTIVE</code> when the index is ready to use. Once the index is active you can index your documents using the <code>BatchPutDocument</code> operation or using one of the supported data sources. 

        :param self:
        :param UserContextPolicy:  The user context policy. <dl> <dt>ATTRIBUTE_FILTER</dt> <dd> All indexed content is searchable and displayable for all users. If there is an access control list, it is ignored. You can filter on user and group attributes.  </dd> <dt>USER_TOKEN</dt> <dd> Enables SSO and token-based user access control. All documents with no access control and all documents accessible to the user will be searchable and displayable.  </dd> </dl><br/>UserTokenConfigurations:  The user token configuration.<br/>Tags:  A list of key-value pairs that identify the index. You can use the tags to identify and organize your resources and to control access to resources.<br/>ClientToken:  A token that you provide to identify the request to create an index. Multiple calls to the <code>CreateIndex</code> operation with the same client token will create only one index.<br/>Description:  A description for the index.<br/>ServerSideEncryptionConfiguration:  The identifier of the AWS KMS customer managed key (CMK) to use to encrypt data indexed by Amazon Kendra. Amazon Kendra doesn't support asymmetric CMKs.:<br/>RoleArn:  An AWS Identity and Access Management (IAM) role that gives Amazon Kendra permissions to access your Amazon CloudWatch logs and metrics. This is also the role used when you use the <code>BatchPutDocument</code> operation to index documents from an Amazon S3 bucket.<br/>Edition:  The Amazon Kendra edition to use for the index. Choose <code>DEVELOPER_EDITION</code> for indexes intended for development, testing, or proof of concept. Use <code>ENTERPRISE_EDITION</code> for your production databases. Once you set the edition for an index, it can't be changed.  The <code>Edition</code> parameter is optional. If you don't supply a value, the default is <code>ENTERPRISE_EDITION</code>. For more information on quota limits for enterprise and developer editions, see <a href="https://docs.aws.amazon.com/kendra/latest/dg/quotas.html">Quotas</a>.<br/>Name:  The name for the new index.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The identifier of the AWS KMS customer master key (CMK). Amazon Kendra doesn't support asymmetric CMKs.<br/>
        :return: Id:  The unique identifier of the index. Use this identifier when you query an index, set up a data source, or index a document.<br/>        """
        pass

    def create_query_suggestions_block_list(self, RoleArn: str, SourceS3Path: S3Path, Name: str, IndexId: str, Description: str=None, ClientToken: str=None, Tags: List[Tag]=None) -> CreateQuerySuggestionsBlockListResponse:
        r"""Creates a block list to exlcude certain queries from suggestions. Any query that contains words or phrases specified in the block list is blocked or filtered out from being shown as a suggestion. You need to provide the file location of your block list text file in your S3 bucket. In your text file, enter each block word or phrase on a separate line. For information on the current quota limits for block lists, see <a href="https://docs.aws.amazon.com/kendra/latest/dg/quotas.html">Quotas for Amazon Kendra</a>.

        :param self:
        :param Tags:  A tag that you can assign to a block list that categorizes the block list.<br/>RoleArn:  The IAM (Identity and Access Management) role used by Amazon Kendra to access the block list text file in your S3 bucket. You need permissions to the role ARN (Amazon Resource Name). The role needs S3 read permissions to your file in S3 and needs to give STS (Security Token Service) assume role permissions to Amazon Kendra.<br/>ClientToken:  A token that you provide to identify the request to create a query suggestions block list.<br/>SourceS3Path:  The S3 path to your block list text file in your S3 bucket. Each block word or phrase should be on a separate line in a text file. For information on the current quota limits for block lists, see <a href="https://docs.aws.amazon.com/kendra/latest/dg/quotas.html">Quotas for Amazon Kendra</a>.:<br/>Description:  A user-friendly description for the block list. For example, the description "List of all offensive words that can appear in user queries and need to be blocked from suggestions."<br/>Name:  A user friendly name for the block list. For example, the block list named 'offensive-words' includes all offensive words that could appear in user queries and need to be blocked from suggestions.<br/>IndexId:  The identifier of the index you want to create a query suggestions block list for.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The name of the file.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i> The name of the S3 bucket that contains the file.<br/>
        :return: Id:  The unique identifier of the created block list.<br/>        """
        pass

    def create_thesaurus(self, SourceS3Path: S3Path, RoleArn: str, Name: str, IndexId: str, Description: str=None, Tags: List[Tag]=None, ClientToken: str=None) -> CreateThesaurusResponse:
        r"""Creates a thesaurus for an index. The thesaurus contains a list of synonyms in Solr format.

        :param self:
        :param ClientToken:  A token that you provide to identify the request to create a thesaurus. Multiple calls to the <code>CreateThesaurus</code> operation with the same client token will create only one index. <br/>SourceS3Path:  The thesaurus file Amazon S3 source path. :<br/>Tags:  A list of key-value pairs that identify the thesaurus. You can use the tags to identify and organize your resources and to control access to resources. <br/>RoleArn:  An AWS Identity and Access Management (IAM) role that gives Amazon Kendra permissions to access thesaurus file specified in <code>SourceS3Path</code>. <br/>Description:  The description for the new thesaurus.<br/>Name:  The name for the new thesaurus.<br/>IndexId:  The unique identifier of the index for the new thesaurus. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The name of the file.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i> The name of the S3 bucket that contains the file.<br/>
        :return: Id:  The unique identifier of the thesaurus. <br/>        """
        pass

    def delete_data_source(self, IndexId: str, Id: str):
        r"""Deletes an Amazon Kendra data source. An exception is not thrown if the data source is already being deleted. While the data source is being deleted, the <code>Status</code> field returned by a call to the <code>DescribeDataSource</code> operation is set to <code>DELETING</code>. For more information, see <a href="https://docs.aws.amazon.com/kendra/latest/dg/delete-data-source.html">Deleting Data Sources</a>.

        :param self:
        :param IndexId:  The unique identifier of the index associated with the data source.<br/>Id:  The unique identifier of the data source to delete.<br/>
        :return:         """
        pass

    def delete_faq(self, IndexId: str, Id: str):
        r"""Removes an FAQ from an index.

        :param self:
        :param IndexId:  The index to remove the FAQ from.<br/>Id:  The identifier of the FAQ to remove.<br/>
        :return:         """
        pass

    def delete_index(self, Id: str):
        r"""Deletes an existing Amazon Kendra index. An exception is not thrown if the index is already being deleted. While the index is being deleted, the <code>Status</code> field returned by a call to the <code>DescribeIndex</code> operation is set to <code>DELETING</code>.

        :param self:
        :param Id:  The identifier of the index to delete.<br/>
        :return:         """
        pass

    def delete_query_suggestions_block_list(self, Id: str, IndexId: str):
        r"""Deletes a block list used for query suggestions for an index. A deleted block list might not take effect right away. Amazon Kendra needs to refresh the entire suggestions list to add back the queries that were previously blocked.

        :param self:
        :param Id:  The unique identifier of the block list that needs to be deleted.<br/>IndexId:  The identifier of the you want to delete a block list from.<br/>
        :return:         """
        pass

    def delete_thesaurus(self, IndexId: str, Id: str):
        r"""Deletes an existing Amazon Kendra thesaurus. 

        :param self:
        :param IndexId:  The identifier of the index associated with the thesaurus to delete.<br/>Id:  The identifier of the thesaurus to delete.<br/>
        :return:         """
        pass

    def describe_data_source(self, IndexId: str, Id: str) -> DescribeDataSourceResponse:
        r"""Gets information about a Amazon Kendra data source.

        :param self:
        :param IndexId:  The identifier of the index that contains the data source.<br/>Id:  The unique identifier of the data source to describe.<br/>
        :return: ErrorMessage:  When the <code>Status</code> field value is <code>FAILED</code>, the <code>ErrorMessage</code> field contains a description of the error that caused the data source to fail.<br/>RoleArn:  The Amazon Resource Name (ARN) of the role that enables the data source to access its resources.<br/>Schedule:  The schedule that Amazon Kendra will update the data source.<br/>Status:  The current status of the data source. When the status is <code>ACTIVE</code> the data source is ready to use. When the status is <code>FAILED</code>, the <code>ErrorMessage</code> field contains the reason that the data source failed.<br/>Description:  The description of the data source.<br/>UpdatedAt:  The Unix timestamp of when the data source was last updated.<br/>CreatedAt:  The Unix timestamp of when the data source was created.<br/>Configuration:  Information that describes where the data source is located and how the data source is configured. The specific information in the description depends on the data source provider.:<br/>Type:  The type of the data source.<br/>Name:  The name that you gave the data source when it was created.<br/>IndexId:  The identifier of the index that contains the data source.<br/>Id:  The identifier of the data source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WebCrawlerConfiguration</i> Provides the configuration information required for Amazon Kendra web crawler.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>WebCrawlerConfiguration</b>: Provides the configuration information required for Amazon Kendra web crawler.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GoogleDriveConfiguration</i> Provides configuration for data sources that connect to Google Drive. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>GoogleDriveConfiguration</b>: Provides configuration for data sources that connect to Google Drive. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConfluenceConfiguration</i> Provides configuration information for connecting to a Confluence data source.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ConfluenceConfiguration</b>: Provides configuration information for connecting to a Confluence data source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceNowConfiguration</i> Provides configuration for data sources that connect to ServiceNow instances.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ServiceNowConfiguration</b>: Provides configuration for data sources that connect to ServiceNow instances.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OneDriveConfiguration</i> Provides configuration for data sources that connect to Microsoft OneDrive.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>OneDriveConfiguration</b>: Provides configuration for data sources that connect to Microsoft OneDrive.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SalesforceConfiguration</i> Provides configuration information for data sources that connect to a Salesforce site.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SalesforceConfiguration</b>: Provides configuration information for data sources that connect to a Salesforce site.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseConfiguration</i> Provides information necessary to create a data source connector for a database.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DatabaseConfiguration</b>: Provides information necessary to create a data source connector for a database.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SharePointConfiguration</i> Provides information necessary to create a data source connector for a Microsoft SharePoint site.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SharePointConfiguration</b>: Provides information necessary to create a data source connector for a Microsoft SharePoint site.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Configuration</i> Provides information to create a data source connector for a document repository in an Amazon S3 bucket.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3Configuration</b>: Provides information to create a data source connector for a document repository in an Amazon S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ExclusionPatterns</i> A list of glob patterns for documents that should not be indexed. If a document that matches an inclusion prefix or inclusion pattern also matches an exclusion pattern, the document is not indexed. Some <a href="https://docs.aws.amazon.com/cli/latest/reference/s3/#use-of-exclude-and-include-filters">examples</a> are: <ul> <li>  <i>*.png , *.jpg</i> will exclude all PNG and JPEG image files in a directory (files with the extensions .png and .jpg). </li> <li>  <i>*internal*</i> will exclude all files in a directory that contain 'internal' in the file name, such as 'internal', 'internal_only', 'company_internal'. </li> <li>  <i>**/*internal*</i> will exclude all internal-related files in a directory and its subdirectories. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InclusionPatterns</i> A list of glob patterns for documents that should be indexed. If a document that matches an inclusion pattern also matches an exclusion pattern, the document is not indexed. Some <a href="https://docs.aws.amazon.com/cli/latest/reference/s3/#use-of-exclude-and-include-filters">examples</a> are: <ul> <li>  <i>*.txt</i> will include all text files in a directory (files with the extension .txt). </li> <li>  <i>**/*.txt</i> will include all text files in a directory and its subdirectories. </li> <li>  <i>*tax*</i> will include all files in a directory that contain 'tax' in the file name, such as 'tax', 'taxes', 'income_tax'. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InclusionPrefixes</i> A list of S3 prefixes for the documents that should be included in the index.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BucketName</i> The name of the bucket that contains the documents.<br/>Document metadata files that contain information such as the document access control information, source URI, document author, and custom attributes. Each metadata file contains metadata about a single document.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DocumentsMetadataConfiguration</b>: Document metadata files that contain information such as the document access control information, source URI, document author, and custom attributes. Each metadata file contains metadata about a single document.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ExclusionPatterns</i> A list of regular expression patterns. Documents that match the patterns are excluded from the index. Documents that don't match the patterns are included in the index. If a document matches both an exclusion pattern and an inclusion pattern, the document is not included in the index. The regex is applied to the display URL of the SharePoint document.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InclusionPatterns</i> A list of regular expression patterns. Documents that match the patterns are included in the index. Documents that don't match the patterns are excluded from the index. If a document matches both an inclusion pattern and an exclusion pattern, the document is not included in the index. The regex is applied to the display URL of the SharePoint document.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UseChangeLog</i> Set to <code>TRUE</code> to use the Microsoft SharePoint change log to determine the documents that need to be updated in the index. Depending on the size of the SharePoint change log, it may take longer for Amazon Kendra to use the change log than it takes it to determine the changed documents using the Amazon Kendra document crawler.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CrawlAttachments</i>  <code>TRUE</code> to include attachments to documents stored in your Microsoft SharePoint site in the index; otherwise, <code>FALSE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretArn</i> The Amazon Resource Name (ARN) of credentials stored in AWS Secrets Manager. The credentials should be a user/password pair. For more information, see <a href="https://docs.aws.amazon.com/kendra/latest/dg/data-source-sharepoint.html">Using a Microsoft SharePoint Data Source</a>. For more information about AWS Secrets Manager, see <a href="https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html"> What Is AWS Secrets Manager </a> in the <i>AWS Secrets Manager</i> user guide.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Urls</i> The URLs of the Microsoft SharePoint site that contains the documents that should be indexed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SharePointVersion</i> The version of Microsoft SharePoint that you are using as a data source.<br/>Provides information for connecting to an Amazon VPC.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>VpcConfiguration</b>: Provides information for connecting to an Amazon VPC.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseEngineType</i> The type of database engine that runs the database.<br/>The information necessary to connect to a database.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ConnectionConfiguration</b>: The information necessary to connect to a database.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StandardObjectConfigurations</i> Specifies the Salesforce standard objects that Amazon Kendra indexes.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretArn</i> The Amazon Resource Name (ARN) of an AWS Secrets Manager secret that contains the key/value pairs required to connect to your Salesforce instance. The secret must contain a JSON structure with the following keys: <ul> <li> authenticationUrl - The OAUTH endpoint that Amazon Kendra connects to get an OAUTH token.  </li> <li> consumerKey - The application public key generated when you created your Salesforce application. </li> <li> consumerSecret - The application private key generated when you created your Salesforce application. </li> <li> password - The password associated with the user logging in to the Salesforce instance. </li> <li> securityToken - The token associated with the user account logging in to the Salesforce instance. </li> <li> username - The user name of the user logging in to the Salesforce instance. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerUrl</i> The instance URL for the Salesforce site that you want to index.<br/>Specifies configuration information for the knowledge article types that Amazon Kendra indexes. Amazon Kendra indexes standard knowledge articles and the standard fields of knowledge articles, or the custom fields of custom knowledge articles, but not both.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>KnowledgeArticleConfiguration</b>: Specifies configuration information for the knowledge article types that Amazon Kendra indexes. Amazon Kendra indexes standard knowledge articles and the standard fields of knowledge articles, or the custom fields of custom knowledge articles, but not both.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretArn</i> The Amazon Resource Name (ARN) of an AWS Secrets Manager secret that contains the user name and password to connect to OneDrive. The user namd should be the application ID for the OneDrive application, and the password is the application key for the OneDrive application.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TenantDomain</i> The Azure Active Directory domain of the organization. <br/>A list of user accounts whose documents should be indexed.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>OneDriveUsers</b>: A list of user accounts whose documents should be indexed.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceNowBuildVersion</i> The identifier of the release that the ServiceNow host is running. If the host is not running the <code>LONDON</code> release, use <code>OTHERS</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretArn</i> The Amazon Resource Name (ARN) of the AWS Secret Manager secret that contains the user name and password required to connect to the ServiceNow instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HostUrl</i> The ServiceNow instance that the data source connects to. The host endpoint should look like the following: <code>{instance}.service-now.com.</code> <br/>Provides configuration information for crawling knowledge articles in the ServiceNow site.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>KnowledgeArticleConfiguration</b>: Provides configuration information for crawling knowledge articles in the ServiceNow site.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> Specifies the version of the Confluence installation that you are connecting to.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretArn</i> The Amazon Resource Name (ARN) of an AWS Secrets Manager secret that contains the key/value pairs required to connect to your Confluence server. The secret must contain a JSON structure with the following keys: <ul> <li> username - The user name or email address of a user with administrative privileges for the Confluence server. </li> <li> password - The password associated with the user logging in to the Confluence server. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerUrl</i> The URL of your Confluence instance. Use the full URL of the server. For example, <code>https://server.example.com:port/</code>. You can also use an IP address, for example, <code>https://192.168.1.113/</code>.<br/>Specifies configuration information for indexing Confluence spaces.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SpaceConfiguration</b>: Specifies configuration information for indexing Confluence spaces.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ExcludeSharedDrives</i> A list of identifiers or shared drives to exclude from the index. All files and folders stored on the shared drive are excluded.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ExcludeUserAccounts</i> A list of email addresses of the users. Documents owned by these users are excluded from the index. Documents shared with excluded users are indexed unless they are excluded in another way.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ExcludeMimeTypes</i> A list of MIME types to exclude from the index. All documents matching the specified MIME type are excluded.  For a list of MIME types, see <a href="https://docs.aws.amazon.com/kendra/latest/dg/data-source-google-drive.html">Using a Google Workspace Drive data source</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FieldMappings</i> Defines mapping between a field in the Google Drive and a Amazon Kendra index field. If you are using the console, you can define index fields when creating the mapping. If you are using the API, you must first create the field using the <code>UpdateIndex</code> operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ExclusionPatterns</i> A list of regular expression patterns that apply to the path on Google Drive. Items that match the pattern are excluded from the index from both shared drives and users' My Drives. Items that don't match the pattern are included in the index. If an item matches both an exclusion pattern and an inclusion pattern, it is excluded from the index.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InclusionPatterns</i> A list of regular expression patterns that apply to path on Google Drive. Items that match the pattern are included in the index from both shared drives and users' My Drives. Items that don't match the pattern are excluded from the index. If an item matches both an inclusion pattern and an exclusion pattern, it is excluded from the index.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretArn</i> The Amazon Resource Name (ARN) of a AWS Secrets Manager secret that contains the credentials required to connect to Google Drive. For more information, see <a href="https://docs.aws.amazon.com/kendra/latest/dg/data-source-google-drive.html">Using a Google Workspace Drive data source</a>.<br/>Specifies the seed or starting point URLs of the websites or the sitemap URLs of the websites you want to crawl. You can include website subdomains. You can list up to 100 seed URLs and up to three sitemap URLs.  <i>When selecting websites to index, you must adhere to the <a href="https://aws.amazon.com/aup/">Amazon Acceptable Use Policy</a> and all other Amazon terms. Remember that you must only use the Amazon Kendra web crawler to index your own webpages, or webpages that you have authorization to index.</i> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Urls</b>: Specifies the seed or starting point URLs of the websites or the sitemap URLs of the websites you want to crawl. You can include website subdomains. You can list up to 100 seed URLs and up to three sitemap URLs.  <i>When selecting websites to index, you must adhere to the <a href="https://aws.amazon.com/aup/">Amazon Acceptable Use Policy</a> and all other Amazon terms. Remember that you must only use the Amazon Kendra web crawler to index your own webpages, or webpages that you have authorization to index.</i>         """
        pass

    def describe_faq(self, IndexId: str, Id: str) -> DescribeFaqResponse:
        r"""Gets information about an FAQ list.

        :param self:
        :param IndexId:  The identifier of the index that contains the FAQ.<br/>Id:  The unique identifier of the FAQ.<br/>
        :return: FileFormat:  The file format used by the input files for the FAQ.<br/>ErrorMessage:  If the <code>Status</code> field is <code>FAILED</code>, the <code>ErrorMessage</code> field contains the reason why the FAQ failed.<br/>RoleArn:  The Amazon Resource Name (ARN) of the role that provides access to the S3 bucket containing the input files for the FAQ.<br/>Status:  The status of the FAQ. It is ready to use when the status is <code>ACTIVE</code>.<br/>S3Path:  Information required to find a specific file in an Amazon S3 bucket.:<br/>UpdatedAt:  The date and time that the FAQ was last updated.<br/>CreatedAt:  The date and time that the FAQ was created.<br/>Description:  The description of the FAQ that you provided when it was created.<br/>Name:  The name that you gave the FAQ when it was created.<br/>IndexId:  The identifier of the index that contains the FAQ.<br/>Id:  The identifier of the FAQ.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The name of the file.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i> The name of the S3 bucket that contains the file.<br/>        """
        pass

    def describe_index(self, Id: str) -> DescribeIndexResponse:
        r"""Describes an existing Amazon Kendra index

        :param self:
        :param Id:  The name of the index to describe.<br/>
        :return: UserContextPolicy:  The user context policy for the Amazon Kendra index.<br/>UserTokenConfigurations:  The user token configuration for the Amazon Kendra index.<br/>CapacityUnits:  For Enterprise edition indexes, you can choose to use additional capacity to meet the needs of your application. This contains the capacity units used for the index. A 0 for the query capacity or the storage capacity indicates that the index is using the default capacity for the index.:<br/>ErrorMessage:  When th e<code>Status</code> field value is <code>FAILED</code>, the <code>ErrorMessage</code> field contains a message that explains why.<br/>IndexStatistics:  Provides information about the number of FAQ questions and answers and the number of text documents indexed.:<br/>DocumentMetadataConfigurations:  Configuration settings for any metadata applied to the documents in the index.<br/>UpdatedAt:  The Unix datetime that the index was last updated.<br/>CreatedAt:  The Unix datetime that the index was created.<br/>Description:  The description of the index.<br/>Status:  The current status of the index. When the value is <code>ACTIVE</code>, the index is ready for use. If the <code>Status</code> field value is <code>FAILED</code>, the <code>ErrorMessage</code> field contains a message that explains why.<br/>ServerSideEncryptionConfiguration:  The identifier of the AWS KMS customer master key (CMK) used to encrypt your data. Amazon Kendra doesn't support asymmetric CMKs.:<br/>RoleArn:  The Amazon Resource Name (ARN) of the IAM role that gives Amazon Kendra permission to write to your Amazon Cloudwatch logs.<br/>Edition:  The Amazon Kendra edition used for the index. You decide the edition when you create the index.<br/>Id:  The name of the index.<br/>Name:  The name of the index.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The identifier of the AWS KMS customer master key (CMK). Amazon Kendra doesn't support asymmetric CMKs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TextDocumentStatistics</i> The number of text documents indexed.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TextDocumentStatistics</b>: The number of text documents indexed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FaqStatistics</i> The number of question and answer topics in the index.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>FaqStatistics</b>: The number of question and answer topics in the index.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IndexedQuestionAnswersCount</i> The total number of FAQ questions and answers contained in the index.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IndexedTextBytes</i> The total size, in bytes, of the indexed documents.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IndexedTextDocumentsCount</i> The number of text documents indexed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>QueryCapacityUnits</i> The amount of extra query capacity for an index and <a href="https://docs.aws.amazon.com/kendra/latest/dg/API_GetQuerySuggestions.html">GetQuerySuggestions</a> capacity. A single extra capacity unit for an index provides 0.1 queries per second or approximately 8,000 queries per day.  <code>GetQuerySuggestions</code> capacity is five times the provisioned query capacity for an index, or the base capacity of 2.5 calls per second, whichever is higher. For example, the base capacity for an index is 0.1 queries per second, and <code>GetQuerySuggestions</code> capacity has a base of 2.5 calls per second. If you add another 0.1 queries per second to total 0.2 queries per second for an index, the <code>GetQuerySuggestions</code> capacity is 2.5 calls per second (higher than five times 0.2 queries per second).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageCapacityUnits</i> The amount of extra storage capacity for an index. A single capacity unit provides 30 GB of storage space or 100,000 documents, whichever is reached first.<br/>        """
        pass

    def describe_query_suggestions_block_list(self, Id: str, IndexId: str) -> DescribeQuerySuggestionsBlockListResponse:
        r"""Describes a block list used for query suggestions for an index. This is used to check the current settings that are applied to a block list.

        :param self:
        :param Id:  The unique identifier of the block list.<br/>IndexId:  The identifier of the index for the block list.<br/>
        :return: RoleArn:  Shows the current IAM (Identity and Access Management) role used by Amazon Kendra to access the block list text file in S3. The role needs S3 read permissions to your file in S3 and needs to give STS (Security Token Service) assume role permissions to Amazon Kendra.<br/>FileSizeBytes:  Shows the current size of the block list text file in S3.<br/>ItemCount:  Shows the current number of valid, non-empty words or phrases in the block list text file.<br/>SourceS3Path:  Shows the current S3 path to your block list text file in your S3 bucket. Each block word or phrase should be on a separate line in a text file. For information on the current quota limits for block lists, see <a href="https://docs.aws.amazon.com/kendra/latest/dg/quotas.html">Quotas for Amazon Kendra</a>.:<br/>UpdatedAt:  Shows the date-time a block list for query suggestions was last updated.<br/>CreatedAt:  Shows the date-time a block list for query suggestions was last created.<br/>ErrorMessage:  Shows the error message with details when there are issues in processing the block list.<br/>Status:  Shows whether the current status of the block list is <code>ACTIVE</code> or <code>INACTIVE</code>.<br/>Description:  Shows the description for the block list.<br/>Name:  Shows the name of the block list.<br/>Id:  Shows the unique identifier of the block list.<br/>IndexId:  Shows the identifier of the index for the block list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The name of the file.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i> The name of the S3 bucket that contains the file.<br/>        """
        pass

    def describe_query_suggestions_config(self, IndexId: str) -> DescribeQuerySuggestionsConfigResponse:
        r"""Describes the settings of query suggestions for an index. This is used to check the current settings applied to query suggestions.

        :param self:
        :param IndexId:  The identifier of the index you want to describe query suggestions settings for.<br/>
        :return: TotalSuggestionsCount:  Shows the current total count of query suggestions for an index. This count can change when you update your query suggestions settings, if you filter out certain queries from suggestions using a block list, and as the query log accumulates more queries for Amazon Kendra to learn from.<br/>LastClearTime:  Shows the date-time query suggestions for an index was last cleared. After you clear suggestions, Amazon Kendra learns new suggestions based on new queries added to the query log from the time you cleared suggestions. Amazon Kendra only considers re-occurences of a query from the time you cleared suggestions. <br/>LastSuggestionsBuildTime:  Shows the date-time query suggestions for an index was last updated.<br/>MinimumQueryCount:  Shows the minimum number of times a query must be searched in order for the query to be eligible to suggest to your users.<br/>MinimumNumberOfQueryingUsers:  Shows the minimum number of unique users who must search a query in order for the query to be eligible to suggest to your users.<br/>IncludeQueriesWithoutUserInformation:  Shows whether Amazon Kendra uses all queries or only uses queries that include user information to generate query suggestions.<br/>QueryLogLookBackWindowInDays:  Shows how recent your queries are in your query log time window (in days).<br/>Status:  Shows whether the status of query suggestions settings is currently Active or Updating. Active means the current settings apply and Updating means your changed settings are in the process of applying.<br/>Mode:  Shows whether query suggestions are currently in <code>ENABLED</code> mode or <code>LEARN_ONLY</code> mode. By default, Amazon Kendra enables query suggestions.<code>LEARN_ONLY</code> turns off query suggestions for your users. You can change the mode using the <a href="https://docs.aws.amazon.com/kendra/latest/dg/API_UpdateQuerySuggestionsConfig.html">UpdateQuerySuggestionsConfig</a> operation.<br/>        """
        pass

    def describe_thesaurus(self, IndexId: str, Id: str) -> DescribeThesaurusResponse:
        r"""Describes an existing Amazon Kendra thesaurus.

        :param self:
        :param IndexId:  The identifier of the index associated with the thesaurus to describe.<br/>Id:  The identifier of the thesaurus to describe.<br/>
        :return: SynonymRuleCount:  The number of synonym rules in the thesaurus file.<br/>TermCount:  The number of unique terms in the thesaurus file. For example, the synonyms <code>a,b,c</code> and <code>a=&gt;d</code>, the term count would be 4. <br/>FileSizeBytes:  The size of the thesaurus file in bytes.<br/>SourceS3Path:  Information required to find a specific file in an Amazon S3 bucket.:<br/>RoleArn:  An AWS Identity and Access Management (IAM) role that gives Amazon Kendra permissions to access thesaurus file specified in <code>SourceS3Path</code>. <br/>UpdatedAt:  The Unix datetime that the thesaurus was last updated.<br/>CreatedAt:  The Unix datetime that the thesaurus was created.<br/>ErrorMessage:  When the <code>Status</code> field value is <code>FAILED</code>, the <code>ErrorMessage</code> field provides more information. <br/>Status:  The current status of the thesaurus. When the value is <code>ACTIVE</code>, queries are able to use the thesaurus. If the <code>Status</code> field value is <code>FAILED</code>, the <code>ErrorMessage</code> field provides more information.  If the status is <code>ACTIVE_BUT_UPDATE_FAILED</code>, it means that Amazon Kendra could not ingest the new thesaurus file. The old thesaurus file is still active. <br/>Description:  The thesaurus description.<br/>Name:  The thesaurus name.<br/>IndexId:  The identifier of the index associated with the thesaurus to describe.<br/>Id:  The identifier of the thesaurus.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The name of the file.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i> The name of the S3 bucket that contains the file.<br/>        """
        pass

    def get_query_suggestions(self, QueryText: str, IndexId: str, MaxSuggestionsCount: int=None) -> GetQuerySuggestionsResponse:
        r"""Fetches the queries that are suggested to your users.

        :param self:
        :param MaxSuggestionsCount:  The maximum number of query suggestions you want to show to your users.<br/>QueryText:  The text of a user's query to generate query suggestions. A query is suggested if the query prefix matches what a user starts to type as their query. Amazon Kendra does not show any suggestions if a user types fewer than two characters or more than 60 characters. A query must also have at least one search result and contain at least one word of more than four characters.<br/>IndexId:  The identifier of the index you want to get query suggestions from.<br/>
        :return: Suggestions:  A list of query suggestions for an index.<br/>QuerySuggestionsId:  The unique identifier for a list of query suggestions for an index.<br/>        """
        pass

    def list_data_source_sync_jobs(self, IndexId: str, Id: str, NextToken: str=None, MaxResults: int=None, StartTimeFilter: TimeRange=None, StatusFilter: str=None) -> ListDataSourceSyncJobsResponse:
        r"""Gets statistics about synchronizing Amazon Kendra with a data source.

        :param self:
        :param StatusFilter:  When specified, only returns synchronization jobs with the <code>Status</code> field equal to the specified status.<br/>StartTimeFilter:  When specified, the synchronization jobs returned in the list are limited to jobs between the specified dates. :<br/>MaxResults:  The maximum number of synchronization jobs to return in the response. If there are fewer results in the list, this response contains only the actual results.<br/>NextToken:  If the result of the previous request to <code>GetDataSourceSyncJobHistory</code> was truncated, include the <code>NextToken</code> to fetch the next set of jobs.<br/>IndexId:  The identifier of the index that contains the data source.<br/>Id:  The identifier of the data source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndTime</i> The UNIX datetime of the end of the time range.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StartTime</i> The UNIX datetime of the beginning of the time range.<br/>
        :return: NextToken:  The <code>GetDataSourceSyncJobHistory</code> operation returns a page of vocabularies at a time. The maximum size of the page is set by the <code>MaxResults</code> parameter. If there are more jobs in the list than the page size, Amazon Kendra returns the NextPage token. Include the token in the next request to the <code>GetDataSourceSyncJobHistory</code> operation to return in the next page of jobs.<br/>History:  A history of synchronization jobs for the data source.<br/>        """
        pass

    def list_data_sources(self, IndexId: str, NextToken: str=None, MaxResults: int=None) -> ListDataSourcesResponse:
        r"""Lists the data sources that you have created.

        :param self:
        :param MaxResults:  The maximum number of data sources to return.<br/>NextToken:  If the previous response was incomplete (because there is more data to retrieve), Amazon Kendra returns a pagination token in the response. You can use this pagination token to retrieve the next set of data sources (<code>DataSourceSummaryItems</code>). <br/>IndexId:  The identifier of the index that contains the data source.<br/>
        :return: NextToken:  If the response is truncated, Amazon Kendra returns this token that you can use in the subsequent request to retrieve the next set of data sources. <br/>SummaryItems:  An array of summary information for one or more data sources.<br/>        """
        pass

    def list_faqs(self, IndexId: str, NextToken: str=None, MaxResults: int=None) -> ListFaqsResponse:
        r"""Gets a list of FAQ lists associated with an index.

        :param self:
        :param MaxResults:  The maximum number of FAQs to return in the response. If there are fewer results in the list, this response contains only the actual results.<br/>NextToken:  If the result of the previous request to <code>ListFaqs</code> was truncated, include the <code>NextToken</code> to fetch the next set of FAQs.<br/>IndexId:  The index that contains the FAQ lists.<br/>
        :return: FaqSummaryItems:  information about the FAQs associated with the specified index.<br/>NextToken:  The <code>ListFaqs</code> operation returns a page of FAQs at a time. The maximum size of the page is set by the <code>MaxResults</code> parameter. If there are more jobs in the list than the page size, Amazon Kendra returns the <code>NextPage</code> token. Include the token in the next request to the <code>ListFaqs</code> operation to return the next page of FAQs.<br/>        """
        pass

    def list_indices(self, NextToken: str=None, MaxResults: int=None) -> ListIndicesResponse:
        r"""Lists the Amazon Kendra indexes that you have created.

        :param self:
        :param MaxResults:  The maximum number of data sources to return.<br/>NextToken:  If the previous response was incomplete (because there is more data to retrieve), Amazon Kendra returns a pagination token in the response. You can use this pagination token to retrieve the next set of indexes (<code>DataSourceSummaryItems</code>). <br/>
        :return: NextToken:  If the response is truncated, Amazon Kendra returns this token that you can use in the subsequent request to retrieve the next set of indexes.<br/>IndexConfigurationSummaryItems:  An array of summary information for one or more indexes.<br/>        """
        pass

    def list_query_suggestions_block_lists(self, IndexId: str, NextToken: str=None, MaxResults: int=None) -> ListQuerySuggestionsBlockListsResponse:
        r"""Lists the block lists used for query suggestions for an index. For information on the current quota limits for block lists, see <a href="https://docs.aws.amazon.com/kendra/latest/dg/quotas.html">Quotas for Amazon Kendra</a>.

        :param self:
        :param MaxResults:  The maximum number of block lists to return.<br/>NextToken:  If the previous response was incomplete (because there is more data to retrieve), Amazon Kendra returns a pagination token in the response. You can use this pagination token to retrieve the next set of block lists (<code>BlockListSummaryItems</code>).<br/>IndexId:  The identifier of the index for a list of all block lists that exist for that index. For information on the current quota limits for block lists, see <a href="https://docs.aws.amazon.com/kendra/latest/dg/quotas.html">Quotas for Amazon Kendra</a>.<br/>
        :return: NextToken:  If the response is truncated, Amazon Kendra returns this token that you can use in the subsequent request to retrieve the next set of block lists.<br/>BlockListSummaryItems:  Summary items for a block list. This includes summary items on the block list ID, block list name, when the block list was created, when the block list was last updated, and the count of block words/phrases in the block list. For information on the current quota limits for block lists, see <a href="https://docs.aws.amazon.com/kendra/latest/dg/quotas.html">Quotas for Amazon Kendra</a>.<br/>        """
        pass

    def list_tags_for_resource(self, ResourceARN: str) -> ListTagsForResourceResponse:
        r"""Gets a list of tags associated with a specified resource. Indexes, FAQs, and data sources can have tags associated with them.

        :param self:
        :param ResourceARN:  The Amazon Resource Name (ARN) of the index, FAQ, or data source to get a list of tags for.<br/>
        :return: Tags:  A list of tags associated with the index, FAQ, or data source.<br/>        """
        pass

    def list_thesauri(self, IndexId: str, NextToken: str=None, MaxResults: int=None) -> ListThesauriResponse:
        r"""Lists the Amazon Kendra thesauri associated with an index.

        :param self:
        :param MaxResults:  The maximum number of thesauri to return.<br/>NextToken:  If the previous response was incomplete (because there is more data to retrieve), Amazon Kendra returns a pagination token in the response. You can use this pagination token to retrieve the next set of thesauri (<code>ThesaurusSummaryItems</code>). <br/>IndexId:  The identifier of the index associated with the thesaurus to list.<br/>
        :return: ThesaurusSummaryItems:  An array of summary information for one or more thesauruses.<br/>NextToken:  If the response is truncated, Amazon Kendra returns this token that you can use in the subsequent request to retrieve the next set of thesauri. <br/>        """
        pass

    def query(self, QueryText: str, IndexId: str, AttributeFilter: AttributeFilter=None, Facets: List[Facet]=None, RequestedDocumentAttributes: List[DocumentAttributeKey]=None, QueryResultTypeFilter: str=None, DocumentRelevanceOverrideConfigurations: List[DocumentRelevanceConfiguration]=None, PageNumber: int=None, PageSize: int=None, SortingConfiguration: SortingConfiguration=None, UserContext: UserContext=None, VisitorId: str=None) -> QueryResult:
        r"""Searches an active index. Use this API to search your documents using query. The <code>Query</code> operation enables to do faceted search and to filter results based on document attributes. It also enables you to provide user context that Amazon Kendra uses to enforce document access control in the search results.  Amazon Kendra searches your index for text content and question and answer (FAQ) content. By default the response contains three types of results. <ul> <li> Relevant passages </li> <li> Matching FAQs </li> <li> Relevant documents </li> </ul> You can specify that the query return only one type of result using the <code>QueryResultTypeConfig</code> parameter. Each query returns the 100 most relevant results. 

        :param self:
        :param VisitorId:  Provides an identifier for a specific user. The <code>VisitorId</code> should be a unique identifier, such as a GUID. Don't use personally identifiable information, such as the user's email address, as the <code>VisitorId</code>.<br/>UserContext:  The user context token.:<br/>SortingConfiguration:  Provides information that determines how the results of the query are sorted. You can set the field that Amazon Kendra should sort the results on, and specify whether the results should be sorted in ascending or descending order. In the case of ties in sorting the results, the results are sorted by relevance. If you don't provide sorting configuration, the results are sorted by the relevance that Amazon Kendra determines for the result.:<br/>PageSize:  Sets the number of results that are returned in each page of results. The default page size is 10. The maximum number of results returned is 100. If you ask for more than 100 results, only 100 are returned.<br/>PageNumber:  Query results are returned in pages the size of the <code>PageSize</code> parameter. By default, Amazon Kendra returns the first page of results. Use this parameter to get result pages after the first one.<br/>DocumentRelevanceOverrideConfigurations:  Overrides relevance tuning configurations of fields or attributes set at the index level. If you use this API to override the relevance tuning configured at the index level, but there is no relevance tuning configured at the index level, then Amazon Kendra does not apply any relevance tuning. If there is relevance tuning configured at the index level, but you do not use this API to override any relevance tuning in the index, then Amazon Kendra uses the relevance tuning that is configured at the index level. If there is relevance tuning configured for fields at the index level, but you use this API to override only some of these fields, then for the fields you did not override, the importance is set to 1.<br/>QueryResultTypeFilter:  Sets the type of query. Only results for the specified query type are returned.<br/>RequestedDocumentAttributes:  An array of document attributes to include in the response. No other document attributes are included in the response. By default all document attributes are included in the response. <br/>Facets:  An array of documents attributes. Amazon Kendra returns a count for each attribute key specified. You can use this information to help narrow the search for your user.<br/>AttributeFilter:  Enables filtered searches based on document attributes. You can only provide one attribute filter; however, the <code>AndAllFilters</code>, <code>NotFilter</code>, and <code>OrAllFilters</code> parameters contain a list of other filters. The <code>AttributeFilter</code> parameter enables you to create a set of filtering rules that a document must satisfy to be included in the query results.:<br/>QueryText:  The text to search for.<br/>IndexId:  The unique identifier of the index to search. The identifier is returned in the response from the <code>CreateIndex</code> operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LessThanOrEquals</i> Performs a less than or equals operation on two document attributes. Use with a document attribute of type <code>Integer</code> or <code>Long</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>LessThanOrEquals</b>: Performs a less than or equals operation on two document attributes. Use with a document attribute of type <code>Integer</code> or <code>Long</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LessThan</i> Performs a less than operation on two document attributes. Use with a document attribute of type <code>Integer</code> or <code>Long</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>LessThan</b>: Performs a less than operation on two document attributes. Use with a document attribute of type <code>Integer</code> or <code>Long</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GreaterThanOrEquals</i> Performs a greater or equals than operation on two document attributes. Use with a document attribute of type <code>Integer</code> or <code>Long</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>GreaterThanOrEquals</b>: Performs a greater or equals than operation on two document attributes. Use with a document attribute of type <code>Integer</code> or <code>Long</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GreaterThan</i> Performs a greater than operation on two document attributes. Use with a document attribute of type <code>Integer</code> or <code>Long</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>GreaterThan</b>: Performs a greater than operation on two document attributes. Use with a document attribute of type <code>Integer</code> or <code>Long</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ContainsAny</i> Returns true when a document contains any of the specified document attributes. This filter is only applicable to <code>StringListValue</code> metadata.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ContainsAny</b>: Returns true when a document contains any of the specified document attributes. This filter is only applicable to <code>StringListValue</code> metadata.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ContainsAll</i> Returns true when a document contains all of the specified document attributes. This filter is only applicable to <code>StringListValue</code> metadata.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ContainsAll</b>: Returns true when a document contains all of the specified document attributes. This filter is only applicable to <code>StringListValue</code> metadata.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EqualsTo</i> Performs an equals operation on two document attributes.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EqualsTo</b>: Performs an equals operation on two document attributes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NotFilter</i> Performs a logical <code>NOT</code> operation on all supplied filters.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>NotFilter</b>: Performs a logical <code>NOT</code> operation on all supplied filters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OrAllFilters</i> Performs a logical <code>OR</code> operation on all supplied filters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AndAllFilters</i> Performs a logical <code>AND</code> operation on all supplied filters.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OrAllFilters</i> Performs a logical <code>OR</code> operation on all supplied filters.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AndAllFilters</i> Performs a logical <code>AND</code> operation on all supplied filters.<br/>Performs a logical <code>NOT</code> operation on all supplied filters.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>NotFilter</b>: Performs a logical <code>NOT</code> operation on all supplied filters.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The identifier for the attribute.<br/>The value of the attribute.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Value</b>: The value of the attribute.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The identifier for the attribute.<br/>The value of the attribute.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Value</b>: The value of the attribute.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The identifier for the attribute.<br/>The value of the attribute.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Value</b>: The value of the attribute.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The identifier for the attribute.<br/>The value of the attribute.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Value</b>: The value of the attribute.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The identifier for the attribute.<br/>The value of the attribute.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Value</b>: The value of the attribute.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The identifier for the attribute.<br/>The value of the attribute.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Value</b>: The value of the attribute.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The identifier for the attribute.<br/>The value of the attribute.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Value</b>: The value of the attribute.&nbsp;&nbsp;&nbsp;&nbsp; <i>SortOrder</i> The order that the results should be returned in. In case of ties, the relevance assigned to the result by Amazon Kendra is used as the tie-breaker.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DocumentAttributeKey</i> The name of the document attribute used to sort the response. You can use any field that has the <code>Sortable</code> flag set to true. You can also sort by any of the following built-in attributes: <ul> <li> _category </li> <li> _created_at </li> <li> _last_updated_at </li> <li> _version </li> <li> _view_count </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Token</i> The user context token. It must be a JWT or a JSON token.<br/>
        :return: TotalNumberOfResults:  The total number of items found by the search; however, you can only retrieve up to 100 items. For example, if the search found 192 items, you can only retrieve the first 100 of the items.<br/>FacetResults:  Contains the facet results. A <code>FacetResult</code> contains the counts for each attribute key that was specified in the <code>Facets</code> input parameter.<br/>ResultItems:  The results of the search.<br/>QueryId:  The unique identifier for the search. You use <code>QueryId</code> to identify the search when using the feedback API.<br/>        """
        pass

    def start_data_source_sync_job(self, IndexId: str, Id: str) -> StartDataSourceSyncJobResponse:
        r"""Starts a synchronization job for a data source. If a synchronization job is already in progress, Amazon Kendra returns a <code>ResourceInUseException</code> exception.

        :param self:
        :param IndexId:  The identifier of the index that contains the data source.<br/>Id:  The identifier of the data source to synchronize.<br/>
        :return: ExecutionId:  Identifies a particular synchronization job.<br/>        """
        pass

    def stop_data_source_sync_job(self, IndexId: str, Id: str):
        r"""Stops a running synchronization job. You can't stop a scheduled synchronization job.

        :param self:
        :param IndexId:  The identifier of the index that contains the data source.<br/>Id:  The identifier of the data source for which to stop the synchronization jobs.<br/>
        :return:         """
        pass

    def submit_feedback(self, QueryId: str, IndexId: str, ClickFeedbackItems: List[ClickFeedback]=None, RelevanceFeedbackItems: List[RelevanceFeedback]=None):
        r"""Enables you to provide feedback to Amazon Kendra to improve the performance of the service. 

        :param self:
        :param RelevanceFeedbackItems:  Provides Amazon Kendra with relevant or not relevant feedback for whether a particular item was relevant to the search.<br/>ClickFeedbackItems:  Tells Amazon Kendra that a particular search result link was chosen by the user. <br/>QueryId:  The identifier of the specific query for which you are submitting feedback. The query ID is returned in the response to the <code>Query</code> operation.<br/>IndexId:  The identifier of the index that was queried.<br/>
        :return:         """
        pass

    def tag_resource(self, Tags: List[Tag], ResourceARN: str) -> TagResourceResponse:
        r"""Adds the specified tag to the specified index, FAQ, or data source resource. If the tag already exists, the existing value is replaced with the new value.

        :param self:
        :param Tags:  A list of tag keys to add to the index, FAQ, or data source. If a tag already exists, the existing value is replaced with the new value.<br/>ResourceARN:  The Amazon Resource Name (ARN) of the index, FAQ, or data source to tag.<br/>
        :return:         """
        pass

    def untag_resource(self, TagKeys: List[TagKey], ResourceARN: str) -> UntagResourceResponse:
        r"""Removes a tag from an index, FAQ, or a data source.

        :param self:
        :param TagKeys:  A list of tag keys to remove from the index, FAQ, or data source. If a tag key does not exist on the resource, it is ignored.<br/>ResourceARN:  The Amazon Resource Name (ARN) of the index, FAQ, or data source to remove the tag from.<br/>
        :return:         """
        pass

    def update_data_source(self, IndexId: str, Id: str, Name: str=None, Configuration: DataSourceConfiguration=None, Description: str=None, Schedule: str=None, RoleArn: str=None):
        r"""Updates an existing Amazon Kendra data source.

        :param self:
        :param RoleArn:  The Amazon Resource Name (ARN) of the new role to use when the data source is accessing resources on your behalf.<br/>Schedule:  The new update schedule for the data source.<br/>Description:  The new description for the data source.<br/>Configuration:  Configuration information for a Amazon Kendra data source.:<br/>IndexId:  The identifier of the index that contains the data source to update.<br/>Name:  The name of the data source to update. The name of the data source can't be updated. To rename a data source you must delete the data source and re-create it.<br/>Id:  The unique identifier of the data source to update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WebCrawlerConfiguration</i> Provides the configuration information required for Amazon Kendra web crawler.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>WebCrawlerConfiguration</b>: Provides the configuration information required for Amazon Kendra web crawler.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GoogleDriveConfiguration</i> Provides configuration for data sources that connect to Google Drive. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>GoogleDriveConfiguration</b>: Provides configuration for data sources that connect to Google Drive. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConfluenceConfiguration</i> Provides configuration information for connecting to a Confluence data source.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ConfluenceConfiguration</b>: Provides configuration information for connecting to a Confluence data source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceNowConfiguration</i> Provides configuration for data sources that connect to ServiceNow instances.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ServiceNowConfiguration</b>: Provides configuration for data sources that connect to ServiceNow instances.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OneDriveConfiguration</i> Provides configuration for data sources that connect to Microsoft OneDrive.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>OneDriveConfiguration</b>: Provides configuration for data sources that connect to Microsoft OneDrive.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SalesforceConfiguration</i> Provides configuration information for data sources that connect to a Salesforce site.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SalesforceConfiguration</b>: Provides configuration information for data sources that connect to a Salesforce site.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseConfiguration</i> Provides information necessary to create a data source connector for a database.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DatabaseConfiguration</b>: Provides information necessary to create a data source connector for a database.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SharePointConfiguration</i> Provides information necessary to create a data source connector for a Microsoft SharePoint site.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SharePointConfiguration</b>: Provides information necessary to create a data source connector for a Microsoft SharePoint site.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Configuration</i> Provides information to create a data source connector for a document repository in an Amazon S3 bucket.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3Configuration</b>: Provides information to create a data source connector for a document repository in an Amazon S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ExclusionPatterns</i> A list of glob patterns for documents that should not be indexed. If a document that matches an inclusion prefix or inclusion pattern also matches an exclusion pattern, the document is not indexed. Some <a href="https://docs.aws.amazon.com/cli/latest/reference/s3/#use-of-exclude-and-include-filters">examples</a> are: <ul> <li>  <i>*.png , *.jpg</i> will exclude all PNG and JPEG image files in a directory (files with the extensions .png and .jpg). </li> <li>  <i>*internal*</i> will exclude all files in a directory that contain 'internal' in the file name, such as 'internal', 'internal_only', 'company_internal'. </li> <li>  <i>**/*internal*</i> will exclude all internal-related files in a directory and its subdirectories. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InclusionPatterns</i> A list of glob patterns for documents that should be indexed. If a document that matches an inclusion pattern also matches an exclusion pattern, the document is not indexed. Some <a href="https://docs.aws.amazon.com/cli/latest/reference/s3/#use-of-exclude-and-include-filters">examples</a> are: <ul> <li>  <i>*.txt</i> will include all text files in a directory (files with the extension .txt). </li> <li>  <i>**/*.txt</i> will include all text files in a directory and its subdirectories. </li> <li>  <i>*tax*</i> will include all files in a directory that contain 'tax' in the file name, such as 'tax', 'taxes', 'income_tax'. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InclusionPrefixes</i> A list of S3 prefixes for the documents that should be included in the index.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BucketName</i> The name of the bucket that contains the documents.<br/>Document metadata files that contain information such as the document access control information, source URI, document author, and custom attributes. Each metadata file contains metadata about a single document.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DocumentsMetadataConfiguration</b>: Document metadata files that contain information such as the document access control information, source URI, document author, and custom attributes. Each metadata file contains metadata about a single document.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ExclusionPatterns</i> A list of regular expression patterns. Documents that match the patterns are excluded from the index. Documents that don't match the patterns are included in the index. If a document matches both an exclusion pattern and an inclusion pattern, the document is not included in the index. The regex is applied to the display URL of the SharePoint document.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InclusionPatterns</i> A list of regular expression patterns. Documents that match the patterns are included in the index. Documents that don't match the patterns are excluded from the index. If a document matches both an inclusion pattern and an exclusion pattern, the document is not included in the index. The regex is applied to the display URL of the SharePoint document.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UseChangeLog</i> Set to <code>TRUE</code> to use the Microsoft SharePoint change log to determine the documents that need to be updated in the index. Depending on the size of the SharePoint change log, it may take longer for Amazon Kendra to use the change log than it takes it to determine the changed documents using the Amazon Kendra document crawler.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CrawlAttachments</i>  <code>TRUE</code> to include attachments to documents stored in your Microsoft SharePoint site in the index; otherwise, <code>FALSE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretArn</i> The Amazon Resource Name (ARN) of credentials stored in AWS Secrets Manager. The credentials should be a user/password pair. For more information, see <a href="https://docs.aws.amazon.com/kendra/latest/dg/data-source-sharepoint.html">Using a Microsoft SharePoint Data Source</a>. For more information about AWS Secrets Manager, see <a href="https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html"> What Is AWS Secrets Manager </a> in the <i>AWS Secrets Manager</i> user guide.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Urls</i> The URLs of the Microsoft SharePoint site that contains the documents that should be indexed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SharePointVersion</i> The version of Microsoft SharePoint that you are using as a data source.<br/>Provides information for connecting to an Amazon VPC.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>VpcConfiguration</b>: Provides information for connecting to an Amazon VPC.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseEngineType</i> The type of database engine that runs the database.<br/>The information necessary to connect to a database.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ConnectionConfiguration</b>: The information necessary to connect to a database.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StandardObjectConfigurations</i> Specifies the Salesforce standard objects that Amazon Kendra indexes.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretArn</i> The Amazon Resource Name (ARN) of an AWS Secrets Manager secret that contains the key/value pairs required to connect to your Salesforce instance. The secret must contain a JSON structure with the following keys: <ul> <li> authenticationUrl - The OAUTH endpoint that Amazon Kendra connects to get an OAUTH token.  </li> <li> consumerKey - The application public key generated when you created your Salesforce application. </li> <li> consumerSecret - The application private key generated when you created your Salesforce application. </li> <li> password - The password associated with the user logging in to the Salesforce instance. </li> <li> securityToken - The token associated with the user account logging in to the Salesforce instance. </li> <li> username - The user name of the user logging in to the Salesforce instance. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerUrl</i> The instance URL for the Salesforce site that you want to index.<br/>Specifies configuration information for the knowledge article types that Amazon Kendra indexes. Amazon Kendra indexes standard knowledge articles and the standard fields of knowledge articles, or the custom fields of custom knowledge articles, but not both.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>KnowledgeArticleConfiguration</b>: Specifies configuration information for the knowledge article types that Amazon Kendra indexes. Amazon Kendra indexes standard knowledge articles and the standard fields of knowledge articles, or the custom fields of custom knowledge articles, but not both.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretArn</i> The Amazon Resource Name (ARN) of an AWS Secrets Manager secret that contains the user name and password to connect to OneDrive. The user namd should be the application ID for the OneDrive application, and the password is the application key for the OneDrive application.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TenantDomain</i> The Azure Active Directory domain of the organization. <br/>A list of user accounts whose documents should be indexed.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>OneDriveUsers</b>: A list of user accounts whose documents should be indexed.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceNowBuildVersion</i> The identifier of the release that the ServiceNow host is running. If the host is not running the <code>LONDON</code> release, use <code>OTHERS</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretArn</i> The Amazon Resource Name (ARN) of the AWS Secret Manager secret that contains the user name and password required to connect to the ServiceNow instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HostUrl</i> The ServiceNow instance that the data source connects to. The host endpoint should look like the following: <code>{instance}.service-now.com.</code> <br/>Provides configuration information for crawling knowledge articles in the ServiceNow site.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>KnowledgeArticleConfiguration</b>: Provides configuration information for crawling knowledge articles in the ServiceNow site.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> Specifies the version of the Confluence installation that you are connecting to.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretArn</i> The Amazon Resource Name (ARN) of an AWS Secrets Manager secret that contains the key/value pairs required to connect to your Confluence server. The secret must contain a JSON structure with the following keys: <ul> <li> username - The user name or email address of a user with administrative privileges for the Confluence server. </li> <li> password - The password associated with the user logging in to the Confluence server. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerUrl</i> The URL of your Confluence instance. Use the full URL of the server. For example, <code>https://server.example.com:port/</code>. You can also use an IP address, for example, <code>https://192.168.1.113/</code>.<br/>Specifies configuration information for indexing Confluence spaces.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SpaceConfiguration</b>: Specifies configuration information for indexing Confluence spaces.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ExcludeSharedDrives</i> A list of identifiers or shared drives to exclude from the index. All files and folders stored on the shared drive are excluded.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ExcludeUserAccounts</i> A list of email addresses of the users. Documents owned by these users are excluded from the index. Documents shared with excluded users are indexed unless they are excluded in another way.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ExcludeMimeTypes</i> A list of MIME types to exclude from the index. All documents matching the specified MIME type are excluded.  For a list of MIME types, see <a href="https://docs.aws.amazon.com/kendra/latest/dg/data-source-google-drive.html">Using a Google Workspace Drive data source</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FieldMappings</i> Defines mapping between a field in the Google Drive and a Amazon Kendra index field. If you are using the console, you can define index fields when creating the mapping. If you are using the API, you must first create the field using the <code>UpdateIndex</code> operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ExclusionPatterns</i> A list of regular expression patterns that apply to the path on Google Drive. Items that match the pattern are excluded from the index from both shared drives and users' My Drives. Items that don't match the pattern are included in the index. If an item matches both an exclusion pattern and an inclusion pattern, it is excluded from the index.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InclusionPatterns</i> A list of regular expression patterns that apply to path on Google Drive. Items that match the pattern are included in the index from both shared drives and users' My Drives. Items that don't match the pattern are excluded from the index. If an item matches both an inclusion pattern and an exclusion pattern, it is excluded from the index.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretArn</i> The Amazon Resource Name (ARN) of a AWS Secrets Manager secret that contains the credentials required to connect to Google Drive. For more information, see <a href="https://docs.aws.amazon.com/kendra/latest/dg/data-source-google-drive.html">Using a Google Workspace Drive data source</a>.<br/>Specifies the seed or starting point URLs of the websites or the sitemap URLs of the websites you want to crawl. You can include website subdomains. You can list up to 100 seed URLs and up to three sitemap URLs.  <i>When selecting websites to index, you must adhere to the <a href="https://aws.amazon.com/aup/">Amazon Acceptable Use Policy</a> and all other Amazon terms. Remember that you must only use the Amazon Kendra web crawler to index your own webpages, or webpages that you have authorization to index.</i> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Urls</b>: Specifies the seed or starting point URLs of the websites or the sitemap URLs of the websites you want to crawl. You can include website subdomains. You can list up to 100 seed URLs and up to three sitemap URLs.  <i>When selecting websites to index, you must adhere to the <a href="https://aws.amazon.com/aup/">Amazon Acceptable Use Policy</a> and all other Amazon terms. Remember that you must only use the Amazon Kendra web crawler to index your own webpages, or webpages that you have authorization to index.</i> 
        :return:         """
        pass

    def update_index(self, Id: str, Name: str=None, RoleArn: str=None, Description: str=None, DocumentMetadataConfigurationUpdates: List[DocumentMetadataConfiguration]=None, CapacityUnits: CapacityUnitsConfiguration=None, UserTokenConfigurations: List[UserTokenConfiguration]=None, UserContextPolicy: str=None):
        r"""Updates an existing Amazon Kendra index.

        :param self:
        :param UserContextPolicy:  The user user token context policy.<br/>UserTokenConfigurations:  The user token configuration.<br/>CapacityUnits:  Sets the number of additional storage and query capacity units that should be used by the index. You can change the capacity of the index up to 5 times per day. If you are using extra storage units, you can't reduce the storage capacity below that required to meet the storage needs for your index.:<br/>DocumentMetadataConfigurationUpdates:  The document metadata to update. <br/>Description:  A new description for the index.<br/>RoleArn:  A new IAM role that gives Amazon Kendra permission to access your Amazon CloudWatch logs.<br/>Name:  The name of the index to update.<br/>Id:  The identifier of the index to update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>QueryCapacityUnits</i> The amount of extra query capacity for an index and <a href="https://docs.aws.amazon.com/kendra/latest/dg/API_GetQuerySuggestions.html">GetQuerySuggestions</a> capacity. A single extra capacity unit for an index provides 0.1 queries per second or approximately 8,000 queries per day.  <code>GetQuerySuggestions</code> capacity is five times the provisioned query capacity for an index, or the base capacity of 2.5 calls per second, whichever is higher. For example, the base capacity for an index is 0.1 queries per second, and <code>GetQuerySuggestions</code> capacity has a base of 2.5 calls per second. If you add another 0.1 queries per second to total 0.2 queries per second for an index, the <code>GetQuerySuggestions</code> capacity is 2.5 calls per second (higher than five times 0.2 queries per second).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageCapacityUnits</i> The amount of extra storage capacity for an index. A single capacity unit provides 30 GB of storage space or 100,000 documents, whichever is reached first.<br/>
        :return:         """
        pass

    def update_query_suggestions_block_list(self, Id: str, IndexId: str, Name: str=None, Description: str=None, SourceS3Path: S3Path=None, RoleArn: str=None):
        r"""Updates a block list used for query suggestions for an index. Updates to a block list might not take effect right away. Amazon Kendra needs to refresh the entire suggestions list to apply any updates to the block list. Other changes not related to the block list apply immediately. If a block list is updating, then you need to wait for the first update to finish before submitting another update. Amazon Kendra supports partial updates, so you only need to provide the fields you want to update.

        :param self:
        :param RoleArn:  The IAM (Identity and Access Management) role used to access the block list text file in S3.<br/>SourceS3Path:  The S3 path where your block list text file sits in S3. If you update your block list and provide the same path to the block list text file in S3, then Amazon Kendra reloads the file to refresh the block list. Amazon Kendra does not automatically refresh your block list. You need to call the <code>UpdateQuerySuggestionsBlockList</code> API to refresh you block list. If you update your block list, then Amazon Kendra asynchronously refreshes all query suggestions with the latest content in the S3 file. This means changes might not take effect immediately.:<br/>Description:  The description for a block list.<br/>Name:  The name of a block list.<br/>Id:  The unique identifier of a block list.<br/>IndexId:  The identifier of the index for a block list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The name of the file.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i> The name of the S3 bucket that contains the file.<br/>
        :return:         """
        pass

    def update_query_suggestions_config(self, IndexId: str, Mode: str=None, QueryLogLookBackWindowInDays: int=None, IncludeQueriesWithoutUserInformation: ObjectBoolean=None, MinimumNumberOfQueryingUsers: int=None, MinimumQueryCount: int=None):
        r"""Updates the settings of query suggestions for an index. Amazon Kendra supports partial updates, so you only need to provide the fields you want to update. If an update is currently processing (i.e. 'happening'), you need to wait for the update to finish before making another update. Updates to query suggestions settings might not take effect right away. The time for your updated settings to take effect depends on the updates made and the number of search queries in your index. You can still enable/disable query suggestions at any time.

        :param self:
        :param MinimumQueryCount:  The the minimum number of times a query must be searched in order to be eligible to suggest to your users. Decreasing this number increases the number of suggestions. However, this affects the quality of suggestions as it sets a low bar for a query to be considered popular to suggest to users. How you tune this setting depends on your specific needs.<br/>MinimumNumberOfQueryingUsers:  The minimum number of unique users who must search a query in order for the query to be eligible to suggest to your users. Increasing this number might decrease the number of suggestions. However, this ensures a query is searched by many users and is truly popular to suggest to users. How you tune this setting depends on your specific needs.<br/>IncludeQueriesWithoutUserInformation:   <code>TRUE</code> to include queries without user information (i.e. all queries, irrespective of the user), otherwise <code>FALSE</code> to only include queries with user information. If you pass user information to Amazon Kendra along with the queries, you can set this flag to <code>FALSE</code> and instruct Amazon Kendra to only consider queries with user information. If you set to <code>FALSE</code>, Amazon Kendra only considers queries searched at least <code>MinimumQueryCount</code> times across <code>MinimumNumberOfQueryingUsers</code> unique users for suggestions. If you set to <code>TRUE</code>, Amazon Kendra ignores all user information and learns from all queries.<br/>QueryLogLookBackWindowInDays:  How recent your queries are in your query log time window. The time window is the number of days from current day to past days. By default, Amazon Kendra sets this to 180.<br/>Mode:  Set the mode to <code>ENABLED</code> or <code>LEARN_ONLY</code>. By default, Amazon Kendra enables query suggestions. <code>LEARN_ONLY</code> mode allows you to turn off query suggestions. You can to update this at any time. In <code>LEARN_ONLY</code> mode, Amazon Kendra continues to learn from new queries to keep suggestions up to date for when you are ready to switch to ENABLED mode again.<br/>IndexId:  The identifier of the index you want to update query suggestions settings for.<br/>
        :return:         """
        pass

    def update_thesaurus(self, IndexId: str, Id: str, Name: str=None, Description: str=None, RoleArn: str=None, SourceS3Path: S3Path=None):
        r"""Updates a thesaurus file associated with an index.

        :param self:
        :param SourceS3Path:  Information required to find a specific file in an Amazon S3 bucket.:<br/>RoleArn:  The updated role ARN of the thesaurus.<br/>Description:  The updated description of the thesaurus.<br/>IndexId:  The identifier of the index associated with the thesaurus to update.<br/>Name:  The updated name of the thesaurus.<br/>Id:  The identifier of the thesaurus to update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The name of the file.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i> The name of the S3 bucket that contains the file.<br/>
        :return:         """
        pass





class Kinesis(BaseClient):
    r"""<fullname>Amazon Kinesis Data Streams Service API Reference</fullname> Amazon Kinesis Data Streams is a managed service that scales elastically for real-time processing of streaming big data."""

    class StreamExistsWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_stream` for valid parameters"""
            pass
    class StreamNotExistsWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_stream` for valid parameters"""
            pass


    class DescribeStreamPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_stream` for valid parameters"""
            pass
    class ListStreamsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_streams` for valid parameters"""
            pass
    class ListShardsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_shards` for valid parameters"""
            pass
    class ListStreamConsumersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_stream_consumers` for valid parameters"""
            pass


    class AddTagsToStreamInput(Mapping):
        pass
    
    class TagMap(object):
        pass
    
    class CreateStreamInput(Mapping):
        pass
    
    class DecreaseStreamRetentionPeriodInput(Mapping):
        pass
    
    class DeleteStreamInput(Mapping):
        pass
    
    class BooleanObject(object):
        pass
    
    class DeregisterStreamConsumerInput(Mapping):
        pass
    
    class DescribeLimitsInput(Mapping):
        pass
    
    class DescribeLimitsOutput(Mapping):
        pass
    
    class DescribeStreamInput(Mapping):
        pass
    
    class DescribeStreamOutput(Mapping):
        pass
    
    class DescribeStreamConsumerInput(Mapping):
        pass
    
    class DescribeStreamConsumerOutput(Mapping):
        pass
    
    class DescribeStreamSummaryInput(Mapping):
        pass
    
    class DescribeStreamSummaryOutput(Mapping):
        pass
    
    class DisableEnhancedMonitoringInput(Mapping):
        pass
    
    class EnhancedMonitoringOutput(Mapping):
        pass
    
    class MetricsName(object):
        pass
    
    class EnableEnhancedMonitoringInput(Mapping):
        pass
    
    class GetRecordsInput(Mapping):
        pass
    
    class GetRecordsOutput(Mapping):
        pass
    
    class GetShardIteratorInput(Mapping):
        pass
    
    class GetShardIteratorOutput(Mapping):
        pass
    
    class Timestamp(object):
        pass
    
    class IncreaseStreamRetentionPeriodInput(Mapping):
        pass
    
    class ListShardsInput(Mapping):
        pass
    
    class ListShardsOutput(Mapping):
        pass
    
    class ShardFilter(Mapping):
        pass
    
    class ListStreamConsumersInput(Mapping):
        pass
    
    class ListStreamConsumersOutput(Mapping):
        pass
    
    class ListStreamsInput(Mapping):
        pass
    
    class ListStreamsOutput(Mapping):
        pass
    
    class ListTagsForStreamInput(Mapping):
        pass
    
    class ListTagsForStreamOutput(Mapping):
        pass
    
    class MergeShardsInput(Mapping):
        pass
    
    class PutRecordInput(Mapping):
        pass
    
    class PutRecordOutput(Mapping):
        pass
    
    class Data(object):
        pass
    
    class PutRecordsInput(Mapping):
        pass
    
    class PutRecordsOutput(Mapping):
        pass
    
    class PutRecordsRequestEntry(Mapping):
        pass
    
    class RegisterStreamConsumerInput(Mapping):
        pass
    
    class RegisterStreamConsumerOutput(Mapping):
        pass
    
    class RemoveTagsFromStreamInput(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class SplitShardInput(Mapping):
        pass
    
    class StartStreamEncryptionInput(Mapping):
        pass
    
    class StopStreamEncryptionInput(Mapping):
        pass
    
    class SubscribeToShardInput(Mapping):
        pass
    
    class SubscribeToShardOutput(Mapping):
        pass
    
    class StartingPosition(Mapping):
        pass
    
    class UpdateShardCountInput(Mapping):
        pass
    
    class UpdateShardCountOutput(Mapping):
        pass
    
    def add_tags_to_stream(self, Tags: TagMap, StreamName: str):
        r"""Adds or updates tags for the specified Kinesis data stream. Each time you invoke this operation, you can specify up to 10 tags. If you want to add more than 10 tags to your stream, you can invoke this operation multiple times. In total, each stream can have up to 50 tags. If tags have already been assigned to the stream, <code>AddTagsToStream</code> overwrites any existing tags that correspond to the specified tag keys.  <a>AddTagsToStream</a> has a limit of five transactions per second per account.

        :param self:
        :param Tags:  A set of up to 10 key-value pairs to use to create the tags.<br/>StreamName:  The name of the stream.<br/>
        :return:         """
        pass

    def create_stream(self, ShardCount: int, StreamName: str):
        r"""Creates a Kinesis data stream. A stream captures and transports data records that are continuously emitted from different data sources or <i>producers</i>. Scale-out within a stream is explicitly supported by means of shards, which are uniquely identified groups of data records in a stream. You specify and control the number of shards that a stream is composed of. Each shard can support reads up to five transactions per second, up to a maximum data read total of 2 MiB per second. Each shard can support writes up to 1,000 records per second, up to a maximum data write total of 1 MiB per second. If the amount of data input increases or decreases, you can add or remove shards. The stream name identifies the stream. The name is scoped to the AWS account used by the application. It is also scoped by AWS Region. That is, two streams in two different accounts can have the same name, and two streams in the same account, but in two different Regions, can have the same name.  <code>CreateStream</code> is an asynchronous operation. Upon receiving a <code>CreateStream</code> request, Kinesis Data Streams immediately returns and sets the stream status to <code>CREATING</code>. After the stream is created, Kinesis Data Streams sets the stream status to <code>ACTIVE</code>. You should perform read and write operations only on an <code>ACTIVE</code> stream.  You receive a <code>LimitExceededException</code> when making a <code>CreateStream</code> request when you try to do one of the following: <ul> <li> Have more than five streams in the <code>CREATING</code> state at any point in time. </li> <li> Create more shards than are authorized for your account. </li> </ul> For the default shard limit for an AWS account, see <a href="https://docs.aws.amazon.com/kinesis/latest/dev/service-sizes-and-limits.html">Amazon Kinesis Data Streams Limits</a> in the <i>Amazon Kinesis Data Streams Developer Guide</i>. To increase this limit, <a href="https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html">contact AWS Support</a>. You can use <code>DescribeStream</code> to check the stream status, which is returned in <code>StreamStatus</code>.  <a>CreateStream</a> has a limit of five transactions per second per account.

        :param self:
        :param ShardCount:  The number of shards that the stream will use. The throughput of the stream is a function of the number of shards; more shards are required for greater provisioned throughput.<br/>StreamName:  A name to identify the stream. The stream name is scoped to the AWS account used by the application that creates the stream. It is also scoped by AWS Region. That is, two streams in two different AWS accounts can have the same name. Two streams in the same AWS account but in two different Regions can also have the same name.<br/>
        :return:         """
        pass

    def decrease_stream_retention_period(self, RetentionPeriodHours: int, StreamName: str):
        r"""Decreases the Kinesis data stream's retention period, which is the length of time data records are accessible after they are added to the stream. The minimum value of a stream's retention period is 24 hours. This operation may result in lost data. For example, if the stream's retention period is 48 hours and is decreased to 24 hours, any data already in the stream that is older than 24 hours is inaccessible.

        :param self:
        :param RetentionPeriodHours:  The new retention period of the stream, in hours. Must be less than the current retention period.<br/>StreamName:  The name of the stream to modify.<br/>
        :return:         """
        pass

    def delete_stream(self, StreamName: str, EnforceConsumerDeletion: BooleanObject=None):
        r"""Deletes a Kinesis data stream and all its shards and data. You must shut down any applications that are operating on the stream before you delete the stream. If an application attempts to operate on a deleted stream, it receives the exception <code>ResourceNotFoundException</code>. If the stream is in the <code>ACTIVE</code> state, you can delete it. After a <code>DeleteStream</code> request, the specified stream is in the <code>DELETING</code> state until Kinesis Data Streams completes the deletion.  <b>Note:</b> Kinesis Data Streams might continue to accept data read and write operations, such as <a>PutRecord</a>, <a>PutRecords</a>, and <a>GetRecords</a>, on a stream in the <code>DELETING</code> state until the stream deletion is complete. When you delete a stream, any shards in that stream are also deleted, and any tags are dissociated from the stream. You can use the <a>DescribeStream</a> operation to check the state of the stream, which is returned in <code>StreamStatus</code>.  <a>DeleteStream</a> has a limit of five transactions per second per account.

        :param self:
        :param EnforceConsumerDeletion:  If this parameter is unset (<code>null</code>) or if you set it to <code>false</code>, and the stream has registered consumers, the call to <code>DeleteStream</code> fails with a <code>ResourceInUseException</code>. <br/>StreamName:  The name of the stream to delete.<br/>
        :return:         """
        pass

    def deregister_stream_consumer(self, StreamARN: str=None, ConsumerName: str=None, ConsumerARN: str=None):
        r"""To deregister a consumer, provide its ARN. Alternatively, you can provide the ARN of the data stream and the name you gave the consumer when you registered it. You may also provide all three parameters, as long as they don't conflict with each other. If you don't know the name or ARN of the consumer that you want to deregister, you can use the <a>ListStreamConsumers</a> operation to get a list of the descriptions of all the consumers that are currently registered with a given data stream. The description of a consumer contains its name and ARN. This operation has a limit of five transactions per second per stream.

        :param self:
        :param ConsumerARN:  The ARN returned by Kinesis Data Streams when you registered the consumer. If you don't know the ARN of the consumer that you want to deregister, you can use the ListStreamConsumers operation to get a list of the descriptions of all the consumers that are currently registered with a given data stream. The description of a consumer contains its ARN.<br/>ConsumerName:  The name that you gave to the consumer.<br/>StreamARN:  The ARN of the Kinesis data stream that the consumer is registered with. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-kinesis-streams">Amazon Resource Names (ARNs) and AWS Service Namespaces</a>.<br/>
        :return:         """
        pass

    def describe_limits(self) -> DescribeLimitsOutput:
        r"""Describes the shard limits and usage for the account. If you update your account limits, the old limits might be returned for a few minutes. This operation has a limit of one transaction per second per account.

        :param self:
        :param 
        :return: OpenShardCount:  The number of open shards.<br/>ShardLimit:  The maximum number of shards.<br/>        """
        pass

    def describe_stream(self, StreamName: str, Limit: int=None, ExclusiveStartShardId: str=None) -> DescribeStreamOutput:
        r"""Describes the specified Kinesis data stream. The information returned includes the stream name, Amazon Resource Name (ARN), creation time, enhanced metric configuration, and shard map. The shard map is an array of shard objects. For each shard object, there is the hash key and sequence number ranges that the shard spans, and the IDs of any earlier shards that played in a role in creating the shard. Every record ingested in the stream is identified by a sequence number, which is assigned when the record is put into the stream. You can limit the number of shards returned by each call. For more information, see <a href="https://docs.aws.amazon.com/kinesis/latest/dev/kinesis-using-sdk-java-retrieve-shards.html">Retrieving Shards from a Stream</a> in the <i>Amazon Kinesis Data Streams Developer Guide</i>. There are no guarantees about the chronological order shards returned. To process shards in chronological order, use the ID of the parent shard to track the lineage to the oldest shard. This operation has a limit of 10 transactions per second per account.

        :param self:
        :param ExclusiveStartShardId:  The shard ID of the shard to start with.<br/>Limit:  The maximum number of shards to return in a single call. The default value is 100. If you specify a value greater than 100, at most 100 shards are returned.<br/>StreamName:  The name of the stream to describe.<br/>
        :return: StreamDescription:  The current status of the stream, the stream Amazon Resource Name (ARN), an array of shard objects that comprise the stream, and whether there are more shards available.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KeyId</i> The GUID for the customer-managed AWS KMS key to use for encryption. This value can be a globally unique identifier, a fully specified ARN to either an alias or a key, or an alias name prefixed by "alias/".You can also use a master key owned by Kinesis Data Streams by specifying the alias <code>aws/kinesis</code>. <ul> <li> Key ARN example: <code>arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012</code>  </li> <li> Alias ARN example: <code>arn:aws:kms:us-east-1:123456789012:alias/MyAliasName</code>  </li> <li> Globally unique key ID example: <code>12345678-1234-1234-1234-123456789012</code>  </li> <li> Alias name example: <code>alias/MyAliasName</code>  </li> <li> Master key owned by Kinesis Data Streams: <code>alias/aws/kinesis</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EncryptionType</i> The server-side encryption type used on the stream. This parameter can be one of the following values: <ul> <li>  <code>NONE</code>: Do not encrypt the records in the stream. </li> <li>  <code>KMS</code>: Use server-side encryption on the records in the stream using a customer-managed AWS KMS key. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnhancedMonitoring</i> Represents the current enhanced monitoring settings of the stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamCreationTimestamp</i> The approximate time that the stream was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RetentionPeriodHours</i> The current retention period, in hours. Minimum value of 24. Maximum value of 168.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HasMoreShards</i> If set to <code>true</code>, more shards in the stream are available to describe.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Shards</i> The shards that comprise the stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamStatus</i> The current status of the stream being described. The stream status is one of the following states: <ul> <li>  <code>CREATING</code> - The stream is being created. Kinesis Data Streams immediately returns and sets <code>StreamStatus</code> to <code>CREATING</code>. </li> <li>  <code>DELETING</code> - The stream is being deleted. The specified stream is in the <code>DELETING</code> state until Kinesis Data Streams completes the deletion. </li> <li>  <code>ACTIVE</code> - The stream exists and is ready for read and write operations or deletion. You should perform read and write operations only on an <code>ACTIVE</code> stream. </li> <li>  <code>UPDATING</code> - Shards in the stream are being merged or split. Read and write operations continue to work while the stream is in the <code>UPDATING</code> state. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamARN</i> The Amazon Resource Name (ARN) for the stream being described.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamName</i> The name of the stream being described.<br/>        """
        pass

    def describe_stream_consumer(self, StreamARN: str=None, ConsumerName: str=None, ConsumerARN: str=None) -> DescribeStreamConsumerOutput:
        r"""To get the description of a registered consumer, provide the ARN of the consumer. Alternatively, you can provide the ARN of the data stream and the name you gave the consumer when you registered it. You may also provide all three parameters, as long as they don't conflict with each other. If you don't know the name or ARN of the consumer that you want to describe, you can use the <a>ListStreamConsumers</a> operation to get a list of the descriptions of all the consumers that are currently registered with a given data stream. This operation has a limit of 20 transactions per second per stream.

        :param self:
        :param ConsumerARN:  The ARN returned by Kinesis Data Streams when you registered the consumer.<br/>ConsumerName:  The name that you gave to the consumer.<br/>StreamARN:  The ARN of the Kinesis data stream that the consumer is registered with. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-kinesis-streams">Amazon Resource Names (ARNs) and AWS Service Namespaces</a>.<br/>
        :return: ConsumerDescription:  An object that represents the details of the consumer.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamARN</i> The ARN of the stream with which you registered the consumer.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConsumerCreationTimestamp</i> <p/><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConsumerStatus</i> A consumer can't read data while in the <code>CREATING</code> or <code>DELETING</code> states.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConsumerARN</i> When you register a consumer, Kinesis Data Streams generates an ARN for it. You need this ARN to be able to call <a>SubscribeToShard</a>. If you delete a consumer and then create a new one with the same name, it won't have the same ARN. That's because consumer ARNs contain the creation timestamp. This is important to keep in mind if you have IAM policies that reference consumer ARNs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConsumerName</i> The name of the consumer is something you choose when you register the consumer.<br/>        """
        pass

    def describe_stream_summary(self, StreamName: str) -> DescribeStreamSummaryOutput:
        r"""Provides a summarized description of the specified Kinesis data stream without the shard list. The information returned includes the stream name, Amazon Resource Name (ARN), status, record retention period, approximate creation time, monitoring, encryption details, and open shard count.   <a>DescribeStreamSummary</a> has a limit of 20 transactions per second per account.

        :param self:
        :param StreamName:  The name of the stream to describe.<br/>
        :return: StreamDescriptionSummary:  A <a>StreamDescriptionSummary</a> containing information about the stream.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConsumerCount</i> The number of enhanced fan-out consumers registered with the stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OpenShardCount</i> The number of open shards in the stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KeyId</i> The GUID for the customer-managed AWS KMS key to use for encryption. This value can be a globally unique identifier, a fully specified ARN to either an alias or a key, or an alias name prefixed by "alias/".You can also use a master key owned by Kinesis Data Streams by specifying the alias <code>aws/kinesis</code>. <ul> <li> Key ARN example: <code>arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012</code>  </li> <li> Alias ARN example: <code> arn:aws:kms:us-east-1:123456789012:alias/MyAliasName</code>  </li> <li> Globally unique key ID example: <code>12345678-1234-1234-1234-123456789012</code>  </li> <li> Alias name example: <code>alias/MyAliasName</code>  </li> <li> Master key owned by Kinesis Data Streams: <code>alias/aws/kinesis</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EncryptionType</i> The encryption type used. This value is one of the following: <ul> <li>  <code>KMS</code>  </li> <li>  <code>NONE</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnhancedMonitoring</i> Represents the current enhanced monitoring settings of the stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamCreationTimestamp</i> The approximate time that the stream was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RetentionPeriodHours</i> The current retention period, in hours.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamStatus</i> The current status of the stream being described. The stream status is one of the following states: <ul> <li>  <code>CREATING</code> - The stream is being created. Kinesis Data Streams immediately returns and sets <code>StreamStatus</code> to <code>CREATING</code>. </li> <li>  <code>DELETING</code> - The stream is being deleted. The specified stream is in the <code>DELETING</code> state until Kinesis Data Streams completes the deletion. </li> <li>  <code>ACTIVE</code> - The stream exists and is ready for read and write operations or deletion. You should perform read and write operations only on an <code>ACTIVE</code> stream. </li> <li>  <code>UPDATING</code> - Shards in the stream are being merged or split. Read and write operations continue to work while the stream is in the <code>UPDATING</code> state. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamARN</i> The Amazon Resource Name (ARN) for the stream being described.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamName</i> The name of the stream being described.<br/>        """
        pass

    def disable_enhanced_monitoring(self, ShardLevelMetrics: List[MetricsName], StreamName: str) -> EnhancedMonitoringOutput:
        r"""Disables enhanced monitoring.

        :param self:
        :param ShardLevelMetrics:  List of shard-level metrics to disable. The following are the valid shard-level metrics. The value "<code>ALL</code>" disables every metric. <ul> <li>  <code>IncomingBytes</code>  </li> <li>  <code>IncomingRecords</code>  </li> <li>  <code>OutgoingBytes</code>  </li> <li>  <code>OutgoingRecords</code>  </li> <li>  <code>WriteProvisionedThroughputExceeded</code>  </li> <li>  <code>ReadProvisionedThroughputExceeded</code>  </li> <li>  <code>IteratorAgeMilliseconds</code>  </li> <li>  <code>ALL</code>  </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/kinesis/latest/dev/monitoring-with-cloudwatch.html">Monitoring the Amazon Kinesis Data Streams Service with Amazon CloudWatch</a> in the <i>Amazon Kinesis Data Streams Developer Guide</i>.<br/>StreamName:  The name of the Kinesis data stream for which to disable enhanced monitoring.<br/>
        :return: DesiredShardLevelMetrics:  Represents the list of all the metrics that would be in the enhanced state after the operation.<br/>CurrentShardLevelMetrics:  Represents the current state of the metrics that are in the enhanced state before the operation.<br/>StreamName:  The name of the Kinesis data stream.<br/>        """
        pass

    def enable_enhanced_monitoring(self, ShardLevelMetrics: List[MetricsName], StreamName: str) -> EnhancedMonitoringOutput:
        r"""Enables enhanced Kinesis data stream monitoring for shard-level metrics.

        :param self:
        :param ShardLevelMetrics:  List of shard-level metrics to enable. The following are the valid shard-level metrics. The value "<code>ALL</code>" enables every metric. <ul> <li>  <code>IncomingBytes</code>  </li> <li>  <code>IncomingRecords</code>  </li> <li>  <code>OutgoingBytes</code>  </li> <li>  <code>OutgoingRecords</code>  </li> <li>  <code>WriteProvisionedThroughputExceeded</code>  </li> <li>  <code>ReadProvisionedThroughputExceeded</code>  </li> <li>  <code>IteratorAgeMilliseconds</code>  </li> <li>  <code>ALL</code>  </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/kinesis/latest/dev/monitoring-with-cloudwatch.html">Monitoring the Amazon Kinesis Data Streams Service with Amazon CloudWatch</a> in the <i>Amazon Kinesis Data Streams Developer Guide</i>.<br/>StreamName:  The name of the stream for which to enable enhanced monitoring.<br/>
        :return: DesiredShardLevelMetrics:  Represents the list of all the metrics that would be in the enhanced state after the operation.<br/>CurrentShardLevelMetrics:  Represents the current state of the metrics that are in the enhanced state before the operation.<br/>StreamName:  The name of the Kinesis data stream.<br/>        """
        pass

    def get_records(self, ShardIterator: str, Limit: int=None) -> GetRecordsOutput:
        r"""Gets data records from a Kinesis data stream's shard. Specify a shard iterator using the <code>ShardIterator</code> parameter. The shard iterator specifies the position in the shard from which you want to start reading data records sequentially. If there are no records available in the portion of the shard that the iterator points to, <a>GetRecords</a> returns an empty list. It might take multiple calls to get to a portion of the shard that contains records. You can scale by provisioning multiple shards per stream while considering service limits (for more information, see <a href="https://docs.aws.amazon.com/kinesis/latest/dev/service-sizes-and-limits.html">Amazon Kinesis Data Streams Limits</a> in the <i>Amazon Kinesis Data Streams Developer Guide</i>). Your application should have one thread per shard, each reading continuously from its stream. To read from a stream continually, call <a>GetRecords</a> in a loop. Use <a>GetShardIterator</a> to get the shard iterator to specify in the first <a>GetRecords</a> call. <a>GetRecords</a> returns a new shard iterator in <code>NextShardIterator</code>. Specify the shard iterator returned in <code>NextShardIterator</code> in subsequent calls to <a>GetRecords</a>. If the shard has been closed, the shard iterator can't return more data and <a>GetRecords</a> returns <code>null</code> in <code>NextShardIterator</code>. You can terminate the loop when the shard is closed, or when the shard iterator reaches the record with the sequence number or other attribute that marks it as the last record to process. Each data record can be up to 1 MiB in size, and each shard can read up to 2 MiB per second. You can ensure that your calls don't exceed the maximum supported size or throughput by using the <code>Limit</code> parameter to specify the maximum number of records that <a>GetRecords</a> can return. Consider your average record size when determining this limit. The maximum number of records that can be returned per call is 10,000. The size of the data returned by <a>GetRecords</a> varies depending on the utilization of the shard. The maximum size of data that <a>GetRecords</a> can return is 10 MiB. If a call returns this amount of data, subsequent calls made within the next 5 seconds throw <code>ProvisionedThroughputExceededException</code>. If there is insufficient provisioned throughput on the stream, subsequent calls made within the next 1 second throw <code>ProvisionedThroughputExceededException</code>. <a>GetRecords</a> doesn't return any data when it throws an exception. For this reason, we recommend that you wait 1 second between calls to <a>GetRecords</a>. However, it's possible that the application will get exceptions for longer than 1 second. To detect whether the application is falling behind in processing, you can use the <code>MillisBehindLatest</code> response attribute. You can also monitor the stream using CloudWatch metrics and other mechanisms (see <a href="https://docs.aws.amazon.com/kinesis/latest/dev/monitoring.html">Monitoring</a> in the <i>Amazon Kinesis Data Streams Developer Guide</i>). Each Amazon Kinesis record includes a value, <code>ApproximateArrivalTimestamp</code>, that is set when a stream successfully receives and stores a record. This is commonly referred to as a server-side time stamp, whereas a client-side time stamp is set when a data producer creates or sends the record to a stream (a data producer is any data source putting data records into a stream, for example with <a>PutRecords</a>). The time stamp has millisecond precision. There are no guarantees about the time stamp accuracy, or that the time stamp is always increasing. For example, records in a shard or across a stream might have time stamps that are out of order. This operation has a limit of five transactions per second per shard.

        :param self:
        :param Limit:  The maximum number of records to return. Specify a value of up to 10,000. If you specify a value that is greater than 10,000, <a>GetRecords</a> throws <code>InvalidArgumentException</code>. The default value is 10,000.<br/>ShardIterator:  The position in the shard from which you want to start sequentially reading data records. A shard iterator specifies this position using the sequence number of a data record in the shard.<br/>
        :return: ChildShards:  <br/>MillisBehindLatest:  The number of milliseconds the <a>GetRecords</a> response is from the tip of the stream, indicating how far behind current time the consumer is. A value of zero indicates that record processing is caught up, and there are no new records to process at this moment.<br/>NextShardIterator:  The next position in the shard from which to start sequentially reading data records. If set to <code>null</code>, the shard has been closed and the requested iterator does not return any more data. <br/>Records:  The data records retrieved from the shard.<br/>        """
        pass

    def get_shard_iterator(self, ShardIteratorType: str, ShardId: str, StreamName: str, StartingSequenceNumber: str=None, Timestamp: Timestamp=None) -> GetShardIteratorOutput:
        r"""Gets an Amazon Kinesis shard iterator. A shard iterator expires 5 minutes after it is returned to the requester. A shard iterator specifies the shard position from which to start reading data records sequentially. The position is specified using the sequence number of a data record in a shard. A sequence number is the identifier associated with every record ingested in the stream, and is assigned when a record is put into the stream. Each stream has one or more shards. You must specify the shard iterator type. For example, you can set the <code>ShardIteratorType</code> parameter to read exactly from the position denoted by a specific sequence number by using the <code>AT_SEQUENCE_NUMBER</code> shard iterator type. Alternatively, the parameter can read right after the sequence number by using the <code>AFTER_SEQUENCE_NUMBER</code> shard iterator type, using sequence numbers returned by earlier calls to <a>PutRecord</a>, <a>PutRecords</a>, <a>GetRecords</a>, or <a>DescribeStream</a>. In the request, you can specify the shard iterator type <code>AT_TIMESTAMP</code> to read records from an arbitrary point in time, <code>TRIM_HORIZON</code> to cause <code>ShardIterator</code> to point to the last untrimmed record in the shard in the system (the oldest data record in the shard), or <code>LATEST</code> so that you always read the most recent data in the shard.  When you read repeatedly from a stream, use a <a>GetShardIterator</a> request to get the first shard iterator for use in your first <a>GetRecords</a> request and for subsequent reads use the shard iterator returned by the <a>GetRecords</a> request in <code>NextShardIterator</code>. A new shard iterator is returned by every <a>GetRecords</a> request in <code>NextShardIterator</code>, which you use in the <code>ShardIterator</code> parameter of the next <a>GetRecords</a> request.  If a <a>GetShardIterator</a> request is made too often, you receive a <code>ProvisionedThroughputExceededException</code>. For more information about throughput limits, see <a>GetRecords</a>, and <a href="https://docs.aws.amazon.com/kinesis/latest/dev/service-sizes-and-limits.html">Streams Limits</a> in the <i>Amazon Kinesis Data Streams Developer Guide</i>. If the shard is closed, <a>GetShardIterator</a> returns a valid iterator for the last sequence number of the shard. A shard can be closed as a result of using <a>SplitShard</a> or <a>MergeShards</a>.  <a>GetShardIterator</a> has a limit of five transactions per second per account per open shard.

        :param self:
        :param Timestamp:  The time stamp of the data record from which to start reading. Used with shard iterator type AT_TIMESTAMP. A time stamp is the Unix epoch date with precision in milliseconds. For example, <code>2016-04-04T19:58:46.480-00:00</code> or <code>1459799926.480</code>. If a record with this exact time stamp does not exist, the iterator returned is for the next (later) record. If the time stamp is older than the current trim horizon, the iterator returned is for the oldest untrimmed data record (TRIM_HORIZON).<br/>StartingSequenceNumber:  The sequence number of the data record in the shard from which to start reading. Used with shard iterator type AT_SEQUENCE_NUMBER and AFTER_SEQUENCE_NUMBER.<br/>ShardIteratorType:  Determines how the shard iterator is used to start reading data records from the shard. The following are the valid Amazon Kinesis shard iterator types: <ul> <li> AT_SEQUENCE_NUMBER - Start reading from the position denoted by a specific sequence number, provided in the value <code>StartingSequenceNumber</code>. </li> <li> AFTER_SEQUENCE_NUMBER - Start reading right after the position denoted by a specific sequence number, provided in the value <code>StartingSequenceNumber</code>. </li> <li> AT_TIMESTAMP - Start reading from the position denoted by a specific time stamp, provided in the value <code>Timestamp</code>. </li> <li> TRIM_HORIZON - Start reading at the last untrimmed record in the shard in the system, which is the oldest data record in the shard. </li> <li> LATEST - Start reading just after the most recent record in the shard, so that you always read the most recent data in the shard. </li> </ul><br/>ShardId:  The shard ID of the Kinesis Data Streams shard to get the iterator for.<br/>StreamName:  The name of the Amazon Kinesis data stream.<br/>
        :return: ShardIterator:  The position in the shard from which to start reading data records sequentially. A shard iterator specifies this position using the sequence number of a data record in a shard.<br/>        """
        pass

    def increase_stream_retention_period(self, RetentionPeriodHours: int, StreamName: str):
        r"""Increases the Kinesis data stream's retention period, which is the length of time data records are accessible after they are added to the stream. The maximum value of a stream's retention period is 168 hours (7 days). If you choose a longer stream retention period, this operation increases the time period during which records that have not yet expired are accessible. However, it does not make previous, expired data (older than the stream's previous retention period) accessible after the operation has been called. For example, if a stream's retention period is set to 24 hours and is increased to 168 hours, any data that is older than 24 hours remains inaccessible to consumer applications.

        :param self:
        :param RetentionPeriodHours:  The new retention period of the stream, in hours. Must be more than the current retention period.<br/>StreamName:  The name of the stream to modify.<br/>
        :return:         """
        pass

    def list_shards(self, StreamName: str=None, NextToken: str=None, ExclusiveStartShardId: str=None, MaxResults: int=None, StreamCreationTimestamp: Timestamp=None, ShardFilter: ShardFilter=None) -> ListShardsOutput:
        r"""Lists the shards in a stream and provides information about each shard. This operation has a limit of 100 transactions per second per data stream. <important> This API is a new operation that is used by the Amazon Kinesis Client Library (KCL). If you have a fine-grained IAM policy that only allows specific operations, you must update your policy to allow calls to this API. For more information, see <a href="https://docs.aws.amazon.com/streams/latest/dev/controlling-access.html">Controlling Access to Amazon Kinesis Data Streams Resources Using IAM</a>. </important>

        :param self:
        :param ShardFilter:  :<br/>StreamCreationTimestamp:  Specify this input parameter to distinguish data streams that have the same name. For example, if you create a data stream and then delete it, and you later create another data stream with the same name, you can use this input parameter to specify which of the two streams you want to list the shards for. You cannot specify this parameter if you specify the <code>NextToken</code> parameter.<br/>MaxResults:  The maximum number of shards to return in a single call to <code>ListShards</code>. The minimum value you can specify for this parameter is 1, and the maximum is 10,000, which is also the default. When the number of shards to be listed is greater than the value of <code>MaxResults</code>, the response contains a <code>NextToken</code> value that you can use in a subsequent call to <code>ListShards</code> to list the next set of shards.<br/>ExclusiveStartShardId:  Specify this parameter to indicate that you want to list the shards starting with the shard whose ID immediately follows <code>ExclusiveStartShardId</code>. If you don't specify this parameter, the default behavior is for <code>ListShards</code> to list the shards starting with the first one in the stream. You cannot specify this parameter if you specify <code>NextToken</code>.<br/>NextToken:  When the number of shards in the data stream is greater than the default value for the <code>MaxResults</code> parameter, or if you explicitly specify a value for <code>MaxResults</code> that is less than the number of shards in the data stream, the response includes a pagination token named <code>NextToken</code>. You can specify this <code>NextToken</code> value in a subsequent call to <code>ListShards</code> to list the next set of shards. Don't specify <code>StreamName</code> or <code>StreamCreationTimestamp</code> if you specify <code>NextToken</code> because the latter unambiguously identifies the stream. You can optionally specify a value for the <code>MaxResults</code> parameter when you specify <code>NextToken</code>. If you specify a <code>MaxResults</code> value that is less than the number of shards that the operation returns if you don't specify <code>MaxResults</code>, the response will contain a new <code>NextToken</code> value. You can use the new <code>NextToken</code> value in a subsequent call to the <code>ListShards</code> operation. <important> Tokens expire after 300 seconds. When you obtain a value for <code>NextToken</code> in the response to a call to <code>ListShards</code>, you have 300 seconds to use that value. If you specify an expired token in a call to <code>ListShards</code>, you get <code>ExpiredNextTokenException</code>. </important><br/>StreamName:  The name of the data stream whose shards you want to list.  You cannot specify this parameter if you specify the <code>NextToken</code> parameter.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Timestamp</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ShardId</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> <br/>
        :return: NextToken:  When the number of shards in the data stream is greater than the default value for the <code>MaxResults</code> parameter, or if you explicitly specify a value for <code>MaxResults</code> that is less than the number of shards in the data stream, the response includes a pagination token named <code>NextToken</code>. You can specify this <code>NextToken</code> value in a subsequent call to <code>ListShards</code> to list the next set of shards. For more information about the use of this pagination token when calling the <code>ListShards</code> operation, see <a>ListShardsInput$NextToken</a>. <important> Tokens expire after 300 seconds. When you obtain a value for <code>NextToken</code> in the response to a call to <code>ListShards</code>, you have 300 seconds to use that value. If you specify an expired token in a call to <code>ListShards</code>, you get <code>ExpiredNextTokenException</code>. </important><br/>Shards:  An array of JSON objects. Each object represents one shard and specifies the IDs of the shard, the shard's parent, and the shard that's adjacent to the shard's parent. Each object also contains the starting and ending hash keys and the starting and ending sequence numbers for the shard.<br/>        """
        pass

    def list_stream_consumers(self, StreamARN: str, NextToken: str=None, MaxResults: int=None, StreamCreationTimestamp: Timestamp=None) -> ListStreamConsumersOutput:
        r"""Lists the consumers registered to receive data from a stream using enhanced fan-out, and provides information about each consumer. This operation has a limit of 5 transactions per second per stream.

        :param self:
        :param StreamCreationTimestamp:  Specify this input parameter to distinguish data streams that have the same name. For example, if you create a data stream and then delete it, and you later create another data stream with the same name, you can use this input parameter to specify which of the two streams you want to list the consumers for.  You can't specify this parameter if you specify the NextToken parameter. <br/>MaxResults:  The maximum number of consumers that you want a single call of <code>ListStreamConsumers</code> to return.<br/>NextToken:  When the number of consumers that are registered with the data stream is greater than the default value for the <code>MaxResults</code> parameter, or if you explicitly specify a value for <code>MaxResults</code> that is less than the number of consumers that are registered with the data stream, the response includes a pagination token named <code>NextToken</code>. You can specify this <code>NextToken</code> value in a subsequent call to <code>ListStreamConsumers</code> to list the next set of registered consumers. Don't specify <code>StreamName</code> or <code>StreamCreationTimestamp</code> if you specify <code>NextToken</code> because the latter unambiguously identifies the stream. You can optionally specify a value for the <code>MaxResults</code> parameter when you specify <code>NextToken</code>. If you specify a <code>MaxResults</code> value that is less than the number of consumers that the operation returns if you don't specify <code>MaxResults</code>, the response will contain a new <code>NextToken</code> value. You can use the new <code>NextToken</code> value in a subsequent call to the <code>ListStreamConsumers</code> operation to list the next set of consumers. <important> Tokens expire after 300 seconds. When you obtain a value for <code>NextToken</code> in the response to a call to <code>ListStreamConsumers</code>, you have 300 seconds to use that value. If you specify an expired token in a call to <code>ListStreamConsumers</code>, you get <code>ExpiredNextTokenException</code>. </important><br/>StreamARN:  The ARN of the Kinesis data stream for which you want to list the registered consumers. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-kinesis-streams">Amazon Resource Names (ARNs) and AWS Service Namespaces</a>.<br/>
        :return: NextToken:  When the number of consumers that are registered with the data stream is greater than the default value for the <code>MaxResults</code> parameter, or if you explicitly specify a value for <code>MaxResults</code> that is less than the number of registered consumers, the response includes a pagination token named <code>NextToken</code>. You can specify this <code>NextToken</code> value in a subsequent call to <code>ListStreamConsumers</code> to list the next set of registered consumers. For more information about the use of this pagination token when calling the <code>ListStreamConsumers</code> operation, see <a>ListStreamConsumersInput$NextToken</a>. <important> Tokens expire after 300 seconds. When you obtain a value for <code>NextToken</code> in the response to a call to <code>ListStreamConsumers</code>, you have 300 seconds to use that value. If you specify an expired token in a call to <code>ListStreamConsumers</code>, you get <code>ExpiredNextTokenException</code>. </important><br/>Consumers:  An array of JSON objects. Each object represents one registered consumer.<br/>        """
        pass

    def list_streams(self, Limit: int=None, ExclusiveStartStreamName: str=None) -> ListStreamsOutput:
        r"""Lists your Kinesis data streams. The number of streams may be too large to return from a single call to <code>ListStreams</code>. You can limit the number of returned streams using the <code>Limit</code> parameter. If you do not specify a value for the <code>Limit</code> parameter, Kinesis Data Streams uses the default limit, which is currently 10. You can detect if there are more streams available to list by using the <code>HasMoreStreams</code> flag from the returned output. If there are more streams available, you can request more streams by using the name of the last stream returned by the <code>ListStreams</code> request in the <code>ExclusiveStartStreamName</code> parameter in a subsequent request to <code>ListStreams</code>. The group of stream names returned by the subsequent request is then added to the list. You can continue this process until all the stream names have been collected in the list.   <a>ListStreams</a> has a limit of five transactions per second per account.

        :param self:
        :param ExclusiveStartStreamName:  The name of the stream to start the list with.<br/>Limit:  The maximum number of streams to list.<br/>
        :return: HasMoreStreams:  If set to <code>true</code>, there are more streams available to list.<br/>StreamNames:  The names of the streams that are associated with the AWS account making the <code>ListStreams</code> request.<br/>        """
        pass

    def list_tags_for_stream(self, StreamName: str, ExclusiveStartTagKey: str=None, Limit: int=None) -> ListTagsForStreamOutput:
        r"""Lists the tags for the specified Kinesis data stream. This operation has a limit of five transactions per second per account.

        :param self:
        :param Limit:  The number of tags to return. If this number is less than the total number of tags associated with the stream, <code>HasMoreTags</code> is set to <code>true</code>. To list additional tags, set <code>ExclusiveStartTagKey</code> to the last key in the response.<br/>ExclusiveStartTagKey:  The key to use as the starting point for the list of tags. If this parameter is set, <code>ListTagsForStream</code> gets all tags that occur after <code>ExclusiveStartTagKey</code>. <br/>StreamName:  The name of the stream.<br/>
        :return: HasMoreTags:  If set to <code>true</code>, more tags are available. To request additional tags, set <code>ExclusiveStartTagKey</code> to the key of the last tag returned.<br/>Tags:  A list of tags associated with <code>StreamName</code>, starting with the first tag after <code>ExclusiveStartTagKey</code> and up to the specified <code>Limit</code>. <br/>        """
        pass

    def merge_shards(self, AdjacentShardToMerge: str, ShardToMerge: str, StreamName: str):
        r"""Merges two adjacent shards in a Kinesis data stream and combines them into a single shard to reduce the stream's capacity to ingest and transport data. Two shards are considered adjacent if the union of the hash key ranges for the two shards form a contiguous set with no gaps. For example, if you have two shards, one with a hash key range of 276...381 and the other with a hash key range of 382...454, then you could merge these two shards into a single shard that would have a hash key range of 276...454. After the merge, the single child shard receives data for all hash key values covered by the two parent shards.  <code>MergeShards</code> is called when there is a need to reduce the overall capacity of a stream because of excess capacity that is not being used. You must specify the shard to be merged and the adjacent shard for a stream. For more information about merging shards, see <a href="https://docs.aws.amazon.com/kinesis/latest/dev/kinesis-using-sdk-java-resharding-merge.html">Merge Two Shards</a> in the <i>Amazon Kinesis Data Streams Developer Guide</i>. If the stream is in the <code>ACTIVE</code> state, you can call <code>MergeShards</code>. If a stream is in the <code>CREATING</code>, <code>UPDATING</code>, or <code>DELETING</code> state, <code>MergeShards</code> returns a <code>ResourceInUseException</code>. If the specified stream does not exist, <code>MergeShards</code> returns a <code>ResourceNotFoundException</code>.  You can use <a>DescribeStream</a> to check the state of the stream, which is returned in <code>StreamStatus</code>.  <code>MergeShards</code> is an asynchronous operation. Upon receiving a <code>MergeShards</code> request, Amazon Kinesis Data Streams immediately returns a response and sets the <code>StreamStatus</code> to <code>UPDATING</code>. After the operation is completed, Kinesis Data Streams sets the <code>StreamStatus</code> to <code>ACTIVE</code>. Read and write operations continue to work while the stream is in the <code>UPDATING</code> state.  You use <a>DescribeStream</a> to determine the shard IDs that are specified in the <code>MergeShards</code> request.  If you try to operate on too many streams in parallel using <a>CreateStream</a>, <a>DeleteStream</a>, <code>MergeShards</code>, or <a>SplitShard</a>, you receive a <code>LimitExceededException</code>.   <code>MergeShards</code> has a limit of five transactions per second per account.

        :param self:
        :param AdjacentShardToMerge:  The shard ID of the adjacent shard for the merge.<br/>ShardToMerge:  The shard ID of the shard to combine with the adjacent shard for the merge.<br/>StreamName:  The name of the stream for the merge.<br/>
        :return:         """
        pass

    def put_record(self, PartitionKey: str, Data: Data, StreamName: str, ExplicitHashKey: str=None, SequenceNumberForOrdering: str=None) -> PutRecordOutput:
        r"""Writes a single data record into an Amazon Kinesis data stream. Call <code>PutRecord</code> to send data into the stream for real-time ingestion and subsequent processing, one record at a time. Each shard can support writes up to 1,000 records per second, up to a maximum data write total of 1 MiB per second. You must specify the name of the stream that captures, stores, and transports the data; a partition key; and the data blob itself. The data blob can be any type of data; for example, a segment from a log file, geographic/location data, website clickstream data, and so on. The partition key is used by Kinesis Data Streams to distribute data across shards. Kinesis Data Streams segregates the data records that belong to a stream into multiple shards, using the partition key associated with each data record to determine the shard to which a given data record belongs. Partition keys are Unicode strings, with a maximum length limit of 256 characters for each key. An MD5 hash function is used to map partition keys to 128-bit integer values and to map associated data records to shards using the hash key ranges of the shards. You can override hashing the partition key to determine the shard by explicitly specifying a hash value using the <code>ExplicitHashKey</code> parameter. For more information, see <a href="https://docs.aws.amazon.com/kinesis/latest/dev/developing-producers-with-sdk.html#kinesis-using-sdk-java-add-data-to-stream">Adding Data to a Stream</a> in the <i>Amazon Kinesis Data Streams Developer Guide</i>.  <code>PutRecord</code> returns the shard ID of where the data record was placed and the sequence number that was assigned to the data record. Sequence numbers increase over time and are specific to a shard within a stream, not across all shards within a stream. To guarantee strictly increasing ordering, write serially to a shard and use the <code>SequenceNumberForOrdering</code> parameter. For more information, see <a href="https://docs.aws.amazon.com/kinesis/latest/dev/developing-producers-with-sdk.html#kinesis-using-sdk-java-add-data-to-stream">Adding Data to a Stream</a> in the <i>Amazon Kinesis Data Streams Developer Guide</i>. <important> After you write a record to a stream, you cannot modify that record or its order within the stream. </important> If a <code>PutRecord</code> request cannot be processed because of insufficient provisioned throughput on the shard involved in the request, <code>PutRecord</code> throws <code>ProvisionedThroughputExceededException</code>.  By default, data records are accessible for 24 hours from the time that they are added to a stream. You can use <a>IncreaseStreamRetentionPeriod</a> or <a>DecreaseStreamRetentionPeriod</a> to modify this retention period.

        :param self:
        :param SequenceNumberForOrdering:  Guarantees strictly increasing sequence numbers, for puts from the same client and to the same partition key. Usage: set the <code>SequenceNumberForOrdering</code> of record <i>n</i> to the sequence number of record <i>n-1</i> (as returned in the result when putting record <i>n-1</i>). If this parameter is not set, records are coarsely ordered based on arrival time.<br/>ExplicitHashKey:  The hash value used to explicitly determine the shard the data record is assigned to by overriding the partition key hash.<br/>PartitionKey:  Determines which shard in the stream the data record is assigned to. Partition keys are Unicode strings with a maximum length limit of 256 characters for each key. Amazon Kinesis Data Streams uses the partition key as input to a hash function that maps the partition key and associated data to a specific shard. Specifically, an MD5 hash function is used to map partition keys to 128-bit integer values and to map associated data records to shards. As a result of this hashing mechanism, all data records with the same partition key map to the same shard within the stream.<br/>Data:  The data blob to put into the record, which is base64-encoded when the blob is serialized. When the data blob (the payload before base64-encoding) is added to the partition key size, the total size must not exceed the maximum record size (1 MiB).<br/>StreamName:  The name of the stream to put the data record into.<br/>
        :return: EncryptionType:  The encryption type to use on the record. This parameter can be one of the following values: <ul> <li>  <code>NONE</code>: Do not encrypt the records in the stream. </li> <li>  <code>KMS</code>: Use server-side encryption on the records in the stream using a customer-managed AWS KMS key. </li> </ul><br/>SequenceNumber:  The sequence number identifier that was assigned to the put data record. The sequence number for the record is unique across all records in the stream. A sequence number is the identifier associated with every record put into the stream.<br/>ShardId:  The shard ID of the shard where the data record was placed.<br/>        """
        pass

    def put_records(self, StreamName: str, Records: List[PutRecordsRequestEntry]) -> PutRecordsOutput:
        r"""Writes multiple data records into a Kinesis data stream in a single call (also referred to as a <code>PutRecords</code> request). Use this operation to send data into the stream for data ingestion and processing.  Each <code>PutRecords</code> request can support up to 500 records. Each record in the request can be as large as 1 MiB, up to a limit of 5 MiB for the entire request, including partition keys. Each shard can support writes up to 1,000 records per second, up to a maximum data write total of 1 MiB per second. You must specify the name of the stream that captures, stores, and transports the data; and an array of request <code>Records</code>, with each record in the array requiring a partition key and data blob. The record size limit applies to the total size of the partition key and data blob. The data blob can be any type of data; for example, a segment from a log file, geographic/location data, website clickstream data, and so on. The partition key is used by Kinesis Data Streams as input to a hash function that maps the partition key and associated data to a specific shard. An MD5 hash function is used to map partition keys to 128-bit integer values and to map associated data records to shards. As a result of this hashing mechanism, all data records with the same partition key map to the same shard within the stream. For more information, see <a href="https://docs.aws.amazon.com/kinesis/latest/dev/developing-producers-with-sdk.html#kinesis-using-sdk-java-add-data-to-stream">Adding Data to a Stream</a> in the <i>Amazon Kinesis Data Streams Developer Guide</i>. Each record in the <code>Records</code> array may include an optional parameter, <code>ExplicitHashKey</code>, which overrides the partition key to shard mapping. This parameter allows a data producer to determine explicitly the shard where the record is stored. For more information, see <a href="https://docs.aws.amazon.com/kinesis/latest/dev/developing-producers-with-sdk.html#kinesis-using-sdk-java-putrecords">Adding Multiple Records with PutRecords</a> in the <i>Amazon Kinesis Data Streams Developer Guide</i>. The <code>PutRecords</code> response includes an array of response <code>Records</code>. Each record in the response array directly correlates with a record in the request array using natural ordering, from the top to the bottom of the request and response. The response <code>Records</code> array always includes the same number of records as the request array. The response <code>Records</code> array includes both successfully and unsuccessfully processed records. Kinesis Data Streams attempts to process all records in each <code>PutRecords</code> request. A single record failure does not stop the processing of subsequent records. As a result, PutRecords doesn't guarantee the ordering of records. If you need to read records in the same order they are written to the stream, use <a>PutRecord</a> instead of <code>PutRecords</code>, and write to the same shard. A successfully processed record includes <code>ShardId</code> and <code>SequenceNumber</code> values. The <code>ShardId</code> parameter identifies the shard in the stream where the record is stored. The <code>SequenceNumber</code> parameter is an identifier assigned to the put record, unique to all records in the stream. An unsuccessfully processed record includes <code>ErrorCode</code> and <code>ErrorMessage</code> values. <code>ErrorCode</code> reflects the type of error and can be one of the following values: <code>ProvisionedThroughputExceededException</code> or <code>InternalFailure</code>. <code>ErrorMessage</code> provides more detailed information about the <code>ProvisionedThroughputExceededException</code> exception including the account ID, stream name, and shard ID of the record that was throttled. For more information about partially successful responses, see <a href="https://docs.aws.amazon.com/kinesis/latest/dev/kinesis-using-sdk-java-add-data-to-stream.html#kinesis-using-sdk-java-putrecords">Adding Multiple Records with PutRecords</a> in the <i>Amazon Kinesis Data Streams Developer Guide</i>. <important> After you write a record to a stream, you cannot modify that record or its order within the stream. </important> By default, data records are accessible for 24 hours from the time that they are added to a stream. You can use <a>IncreaseStreamRetentionPeriod</a> or <a>DecreaseStreamRetentionPeriod</a> to modify this retention period.

        :param self:
        :param StreamName:  The stream name associated with the request.<br/>Records:  The records associated with the request.<br/>
        :return: EncryptionType:  The encryption type used on the records. This parameter can be one of the following values: <ul> <li>  <code>NONE</code>: Do not encrypt the records. </li> <li>  <code>KMS</code>: Use server-side encryption on the records using a customer-managed AWS KMS key. </li> </ul><br/>Records:  An array of successfully and unsuccessfully processed record results, correlated with the request by natural ordering. A record that is successfully added to a stream includes <code>SequenceNumber</code> and <code>ShardId</code> in the result. A record that fails to be added to a stream includes <code>ErrorCode</code> and <code>ErrorMessage</code> in the result.<br/>FailedRecordCount:  The number of unsuccessfully processed records in a <code>PutRecords</code> request.<br/>        """
        pass

    def register_stream_consumer(self, ConsumerName: str, StreamARN: str) -> RegisterStreamConsumerOutput:
        r"""Registers a consumer with a Kinesis data stream. When you use this operation, the consumer you register can then call <a>SubscribeToShard</a> to receive data from the stream using enhanced fan-out, at a rate of up to 2 MiB per second for every shard you subscribe to. This rate is unaffected by the total number of consumers that read from the same stream. You can register up to 20 consumers per stream. A given consumer can only be registered with one stream at a time. For an example of how to use this operations, see <a href="/streams/latest/dev/building-enhanced-consumers-api.html">Enhanced Fan-Out Using the Kinesis Data Streams API</a>. The use of this operation has a limit of five transactions per second per account. Also, only 5 consumers can be created simultaneously. In other words, you cannot have more than 5 consumers in a <code>CREATING</code> status at the same time. Registering a 6th consumer while there are 5 in a <code>CREATING</code> status results in a <code>LimitExceededException</code>.

        :param self:
        :param ConsumerName:  For a given Kinesis data stream, each consumer must have a unique name. However, consumer names don't have to be unique across data streams.<br/>StreamARN:  The ARN of the Kinesis data stream that you want to register the consumer with. For more info, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-kinesis-streams">Amazon Resource Names (ARNs) and AWS Service Namespaces</a>.<br/>
        :return: Consumer:  An object that represents the details of the consumer you registered. When you register a consumer, it gets an ARN that is generated by Kinesis Data Streams.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConsumerCreationTimestamp</i> <p/><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConsumerStatus</i> A consumer can't read data while in the <code>CREATING</code> or <code>DELETING</code> states.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConsumerARN</i> When you register a consumer, Kinesis Data Streams generates an ARN for it. You need this ARN to be able to call <a>SubscribeToShard</a>. If you delete a consumer and then create a new one with the same name, it won't have the same ARN. That's because consumer ARNs contain the creation timestamp. This is important to keep in mind if you have IAM policies that reference consumer ARNs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConsumerName</i> The name of the consumer is something you choose when you register the consumer.<br/>        """
        pass

    def remove_tags_from_stream(self, TagKeys: List[TagKey], StreamName: str):
        r"""Removes tags from the specified Kinesis data stream. Removed tags are deleted and cannot be recovered after this operation successfully completes. If you specify a tag that does not exist, it is ignored.  <a>RemoveTagsFromStream</a> has a limit of five transactions per second per account.

        :param self:
        :param TagKeys:  A list of tag keys. Each corresponding tag is removed from the stream.<br/>StreamName:  The name of the stream.<br/>
        :return:         """
        pass

    def split_shard(self, NewStartingHashKey: str, ShardToSplit: str, StreamName: str):
        r"""Splits a shard into two new shards in the Kinesis data stream, to increase the stream's capacity to ingest and transport data. <code>SplitShard</code> is called when there is a need to increase the overall capacity of a stream because of an expected increase in the volume of data records being ingested.  You can also use <code>SplitShard</code> when a shard appears to be approaching its maximum utilization; for example, the producers sending data into the specific shard are suddenly sending more than previously anticipated. You can also call <code>SplitShard</code> to increase stream capacity, so that more Kinesis Data Streams applications can simultaneously read data from the stream for real-time processing.  You must specify the shard to be split and the new hash key, which is the position in the shard where the shard gets split in two. In many cases, the new hash key might be the average of the beginning and ending hash key, but it can be any hash key value in the range being mapped into the shard. For more information, see <a href="https://docs.aws.amazon.com/kinesis/latest/dev/kinesis-using-sdk-java-resharding-split.html">Split a Shard</a> in the <i>Amazon Kinesis Data Streams Developer Guide</i>. You can use <a>DescribeStream</a> to determine the shard ID and hash key values for the <code>ShardToSplit</code> and <code>NewStartingHashKey</code> parameters that are specified in the <code>SplitShard</code> request.  <code>SplitShard</code> is an asynchronous operation. Upon receiving a <code>SplitShard</code> request, Kinesis Data Streams immediately returns a response and sets the stream status to <code>UPDATING</code>. After the operation is completed, Kinesis Data Streams sets the stream status to <code>ACTIVE</code>. Read and write operations continue to work while the stream is in the <code>UPDATING</code> state.  You can use <code>DescribeStream</code> to check the status of the stream, which is returned in <code>StreamStatus</code>. If the stream is in the <code>ACTIVE</code> state, you can call <code>SplitShard</code>. If a stream is in <code>CREATING</code> or <code>UPDATING</code> or <code>DELETING</code> states, <code>DescribeStream</code> returns a <code>ResourceInUseException</code>. If the specified stream does not exist, <code>DescribeStream</code> returns a <code>ResourceNotFoundException</code>. If you try to create more shards than are authorized for your account, you receive a <code>LimitExceededException</code>.  For the default shard limit for an AWS account, see <a href="https://docs.aws.amazon.com/kinesis/latest/dev/service-sizes-and-limits.html">Kinesis Data Streams Limits</a> in the <i>Amazon Kinesis Data Streams Developer Guide</i>. To increase this limit, <a href="https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html">contact AWS Support</a>. If you try to operate on too many streams simultaneously using <a>CreateStream</a>, <a>DeleteStream</a>, <a>MergeShards</a>, and/or <a>SplitShard</a>, you receive a <code>LimitExceededException</code>.   <code>SplitShard</code> has a limit of five transactions per second per account.

        :param self:
        :param NewStartingHashKey:  A hash key value for the starting hash key of one of the child shards created by the split. The hash key range for a given shard constitutes a set of ordered contiguous positive integers. The value for <code>NewStartingHashKey</code> must be in the range of hash keys being mapped into the shard. The <code>NewStartingHashKey</code> hash key value and all higher hash key values in hash key range are distributed to one of the child shards. All the lower hash key values in the range are distributed to the other child shard.<br/>ShardToSplit:  The shard ID of the shard to split.<br/>StreamName:  The name of the stream for the shard split.<br/>
        :return:         """
        pass

    def start_stream_encryption(self, KeyId: str, EncryptionType: str, StreamName: str):
        r"""Enables or updates server-side encryption using an AWS KMS key for a specified stream.  Starting encryption is an asynchronous operation. Upon receiving the request, Kinesis Data Streams returns immediately and sets the status of the stream to <code>UPDATING</code>. After the update is complete, Kinesis Data Streams sets the status of the stream back to <code>ACTIVE</code>. Updating or applying encryption normally takes a few seconds to complete, but it can take minutes. You can continue to read and write data to your stream while its status is <code>UPDATING</code>. Once the status of the stream is <code>ACTIVE</code>, encryption begins for records written to the stream.  API Limits: You can successfully apply a new AWS KMS key for server-side encryption 25 times in a rolling 24-hour period. Note: It can take up to 5 seconds after the stream is in an <code>ACTIVE</code> status before all records written to the stream are encrypted. After you enable encryption, you can verify that encryption is applied by inspecting the API response from <code>PutRecord</code> or <code>PutRecords</code>.

        :param self:
        :param KeyId:  The GUID for the customer-managed AWS KMS key to use for encryption. This value can be a globally unique identifier, a fully specified Amazon Resource Name (ARN) to either an alias or a key, or an alias name prefixed by "alias/".You can also use a master key owned by Kinesis Data Streams by specifying the alias <code>aws/kinesis</code>. <ul> <li> Key ARN example: <code>arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012</code>  </li> <li> Alias ARN example: <code>arn:aws:kms:us-east-1:123456789012:alias/MyAliasName</code>  </li> <li> Globally unique key ID example: <code>12345678-1234-1234-1234-123456789012</code>  </li> <li> Alias name example: <code>alias/MyAliasName</code>  </li> <li> Master key owned by Kinesis Data Streams: <code>alias/aws/kinesis</code>  </li> </ul><br/>EncryptionType:  The encryption type to use. The only valid value is <code>KMS</code>.<br/>StreamName:  The name of the stream for which to start encrypting records.<br/>
        :return:         """
        pass

    def stop_stream_encryption(self, KeyId: str, EncryptionType: str, StreamName: str):
        r"""Disables server-side encryption for a specified stream.  Stopping encryption is an asynchronous operation. Upon receiving the request, Kinesis Data Streams returns immediately and sets the status of the stream to <code>UPDATING</code>. After the update is complete, Kinesis Data Streams sets the status of the stream back to <code>ACTIVE</code>. Stopping encryption normally takes a few seconds to complete, but it can take minutes. You can continue to read and write data to your stream while its status is <code>UPDATING</code>. Once the status of the stream is <code>ACTIVE</code>, records written to the stream are no longer encrypted by Kinesis Data Streams.  API Limits: You can successfully disable server-side encryption 25 times in a rolling 24-hour period.  Note: It can take up to 5 seconds after the stream is in an <code>ACTIVE</code> status before all records written to the stream are no longer subject to encryption. After you disabled encryption, you can verify that encryption is not applied by inspecting the API response from <code>PutRecord</code> or <code>PutRecords</code>.

        :param self:
        :param KeyId:  The GUID for the customer-managed AWS KMS key to use for encryption. This value can be a globally unique identifier, a fully specified Amazon Resource Name (ARN) to either an alias or a key, or an alias name prefixed by "alias/".You can also use a master key owned by Kinesis Data Streams by specifying the alias <code>aws/kinesis</code>. <ul> <li> Key ARN example: <code>arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012</code>  </li> <li> Alias ARN example: <code>arn:aws:kms:us-east-1:123456789012:alias/MyAliasName</code>  </li> <li> Globally unique key ID example: <code>12345678-1234-1234-1234-123456789012</code>  </li> <li> Alias name example: <code>alias/MyAliasName</code>  </li> <li> Master key owned by Kinesis Data Streams: <code>alias/aws/kinesis</code>  </li> </ul><br/>EncryptionType:  The encryption type. The only valid value is <code>KMS</code>.<br/>StreamName:  The name of the stream on which to stop encrypting records.<br/>
        :return:         """
        pass

    def subscribe_to_shard(self, StartingPosition: StartingPosition, ShardId: str, ConsumerARN: str) -> SubscribeToShardOutput:
        r"""This operation establishes an HTTP/2 connection between the consumer you specify in the <code>ConsumerARN</code> parameter and the shard you specify in the <code>ShardId</code> parameter. After the connection is successfully established, Kinesis Data Streams pushes records from the shard to the consumer over this connection. Before you call this operation, call <a>RegisterStreamConsumer</a> to register the consumer with Kinesis Data Streams. When the <code>SubscribeToShard</code> call succeeds, your consumer starts receiving events of type <a>SubscribeToShardEvent</a> over the HTTP/2 connection for up to 5 minutes, after which time you need to call <code>SubscribeToShard</code> again to renew the subscription if you want to continue to receive records. You can make one call to <code>SubscribeToShard</code> per second per registered consumer per shard. For example, if you have a 4000 shard stream and two registered stream consumers, you can make one <code>SubscribeToShard</code> request per second for each combination of shard and registered consumer, allowing you to subscribe both consumers to all 4000 shards in one second.  If you call <code>SubscribeToShard</code> again with the same <code>ConsumerARN</code> and <code>ShardId</code> within 5 seconds of a successful call, you'll get a <code>ResourceInUseException</code>. If you call <code>SubscribeToShard</code> 5 seconds or more after a successful call, the first connection will expire and the second call will take over the subscription. For an example of how to use this operations, see <a href="/streams/latest/dev/building-enhanced-consumers-api.html">Enhanced Fan-Out Using the Kinesis Data Streams API</a>.

        :param self:
        :param StartingPosition:  <p/>:<br/>ShardId:  The ID of the shard you want to subscribe to. To see a list of all the shards for a given stream, use <a>ListShards</a>.<br/>ConsumerARN:  For this parameter, use the value you obtained when you called <a>RegisterStreamConsumer</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Timestamp</i> The time stamp of the data record from which to start reading. To specify a time stamp, set <code>StartingPosition</code> to <code>Type AT_TIMESTAMP</code>. A time stamp is the Unix epoch date with precision in milliseconds. For example, <code>2016-04-04T19:58:46.480-00:00</code> or <code>1459799926.480</code>. If a record with this exact time stamp does not exist, records will be streamed from the next (later) record. If the time stamp is older than the current trim horizon, records will be streamed from the oldest untrimmed data record (<code>TRIM_HORIZON</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SequenceNumber</i> The sequence number of the data record in the shard from which to start streaming. To specify a sequence number, set <code>StartingPosition</code> to <code>AT_SEQUENCE_NUMBER</code> or <code>AFTER_SEQUENCE_NUMBER</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> You can set the starting position to one of the following values:  <code>AT_SEQUENCE_NUMBER</code>: Start streaming from the position denoted by the sequence number specified in the <code>SequenceNumber</code> field.  <code>AFTER_SEQUENCE_NUMBER</code>: Start streaming right after the position denoted by the sequence number specified in the <code>SequenceNumber</code> field.  <code>AT_TIMESTAMP</code>: Start streaming from the position denoted by the time stamp specified in the <code>Timestamp</code> field.  <code>TRIM_HORIZON</code>: Start streaming at the last untrimmed record in the shard, which is the oldest data record in the shard.  <code>LATEST</code>: Start streaming just after the most recent record in the shard, so that you always read the most recent data in the shard.<br/>
        :return: EventStream:  The event stream that your consumer can use to read records from the shard.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InternalFailureException</i> The processing of the request failed because of an unknown error, exception, or failure.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>InternalFailureException</b>: The processing of the request failed because of an unknown error, exception, or failure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KMSThrottlingException</i> The request was denied due to request throttling. For more information about throttling, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/limits.html#requests-per-second">Limits</a> in the <i>AWS Key Management Service Developer Guide</i>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>KMSThrottlingException</b>: The request was denied due to request throttling. For more information about throttling, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/limits.html#requests-per-second">Limits</a> in the <i>AWS Key Management Service Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KMSOptInRequired</i> The AWS access key ID needs a subscription for the service.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>KMSOptInRequired</b>: The AWS access key ID needs a subscription for the service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KMSNotFoundException</i> The request was rejected because the specified entity or resource can't be found.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>KMSNotFoundException</b>: The request was rejected because the specified entity or resource can't be found.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KMSAccessDeniedException</i> The ciphertext references a key that doesn't exist or that you don't have access to.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>KMSAccessDeniedException</b>: The ciphertext references a key that doesn't exist or that you don't have access to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KMSInvalidStateException</i> The request was rejected because the state of the specified resource isn't valid for this request. For more information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html">How Key State Affects Use of a Customer Master Key</a> in the <i>AWS Key Management Service Developer Guide</i>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>KMSInvalidStateException</b>: The request was rejected because the state of the specified resource isn't valid for this request. For more information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html">How Key State Affects Use of a Customer Master Key</a> in the <i>AWS Key Management Service Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KMSDisabledException</i> The request was rejected because the specified customer master key (CMK) isn't enabled.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>KMSDisabledException</b>: The request was rejected because the specified customer master key (CMK) isn't enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceInUseException</i> The resource is not available for this operation. For successful operation, the resource must be in the <code>ACTIVE</code> state.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ResourceInUseException</b>: The resource is not available for this operation. For successful operation, the resource must be in the <code>ACTIVE</code> state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceNotFoundException</i> The requested resource could not be found. The stream might not be specified correctly.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ResourceNotFoundException</b>: The requested resource could not be found. The stream might not be specified correctly.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubscribeToShardEvent</i> After you call <a>SubscribeToShard</a>, Kinesis Data Streams sends events of this type to your consumer. For an example of how to handle these events, see <a href="/streams/latest/dev/building-enhanced-consumers-api.html">Enhanced Fan-Out Using the Kinesis Data Streams API</a>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SubscribeToShardEvent</b>: After you call <a>SubscribeToShard</a>, Kinesis Data Streams sends events of this type to your consumer. For an example of how to handle these events, see <a href="/streams/latest/dev/building-enhanced-consumers-api.html">Enhanced Fan-Out Using the Kinesis Data Streams API</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ChildShards</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MillisBehindLatest</i> The number of milliseconds the read records are from the tip of the stream, indicating how far behind current time the consumer is. A value of zero indicates that record processing is caught up, and there are no new records to process at this moment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ContinuationSequenceNumber</i> Use this as <code>SequenceNumber</code> in the next call to <a>SubscribeToShard</a>, with <code>StartingPosition</code> set to <code>AT_SEQUENCE_NUMBER</code> or <code>AFTER_SEQUENCE_NUMBER</code>. Use <code>ContinuationSequenceNumber</code> for checkpointing because it captures your shard progress even when no data is written to the shard.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Records</i> <p/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>message</i> A message that provides information about the error.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>message</i> A message that provides information about the error.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>message</i> A message that provides information about the error.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>message</i> A message that provides information about the error.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>message</i> A message that provides information about the error.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>message</i> A message that provides information about the error.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>message</i> A message that provides information about the error.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>message</i> A message that provides information about the error.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>message</i> <br/>        """
        pass

    def update_shard_count(self, ScalingType: str, TargetShardCount: int, StreamName: str) -> UpdateShardCountOutput:
        r"""Updates the shard count of the specified stream to the specified number of shards. Updating the shard count is an asynchronous operation. Upon receiving the request, Kinesis Data Streams returns immediately and sets the status of the stream to <code>UPDATING</code>. After the update is complete, Kinesis Data Streams sets the status of the stream back to <code>ACTIVE</code>. Depending on the size of the stream, the scaling action could take a few minutes to complete. You can continue to read and write data to your stream while its status is <code>UPDATING</code>. To update the shard count, Kinesis Data Streams performs splits or merges on individual shards. This can cause short-lived shards to be created, in addition to the final shards. These short-lived shards count towards your total shard limit for your account in the Region. When using this operation, we recommend that you specify a target shard count that is a multiple of 25% (25%, 50%, 75%, 100%). You can specify any target value within your shard limit. However, if you specify a target that isn't a multiple of 25%, the scaling action might take longer to complete.  This operation has the following default limits. By default, you cannot do the following: <ul> <li> Scale more than ten times per rolling 24-hour period per stream </li> <li> Scale up to more than double your current shard count for a stream </li> <li> Scale down below half your current shard count for a stream </li> <li> Scale up to more than 500 shards in a stream </li> <li> Scale a stream with more than 500 shards down unless the result is less than 500 shards </li> <li> Scale up to more than the shard limit for your account </li> </ul> For the default limits for an AWS account, see <a href="https://docs.aws.amazon.com/kinesis/latest/dev/service-sizes-and-limits.html">Streams Limits</a> in the <i>Amazon Kinesis Data Streams Developer Guide</i>. To request an increase in the call rate limit, the shard limit for this API, or your overall shard limit, use the <a href="https://console.aws.amazon.com/support/v1#/case/create?issueType=service-limit-increase&amp;limitType=service-code-kinesis">limits form</a>.

        :param self:
        :param ScalingType:  The scaling type. Uniform scaling creates shards of equal size.<br/>TargetShardCount:  The new number of shards. This value has the following default limits. By default, you cannot do the following:  <ul> <li> Set this value to more than double your current shard count for a stream. </li> <li> Set this value below half your current shard count for a stream. </li> <li> Set this value to more than 500 shards in a stream (the default limit for shard count per stream is 500 per account per region), unless you request a limit increase. </li> <li> Scale a stream with more than 500 shards down unless you set this value to less than 500 shards. </li> </ul><br/>StreamName:  The name of the stream.<br/>
        :return: TargetShardCount:  The updated number of shards.<br/>CurrentShardCount:  The current number of shards.<br/>StreamName:  The name of the stream.<br/>        """
        pass





class KinesisVideoArchivedMedia(BaseClient):
    r"""<p/>"""


    class ListFragmentsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_fragments` for valid parameters"""
            pass


    class GetClipInput(Mapping):
        pass
    
    class GetClipOutput(Mapping):
        pass
    
    class ClipFragmentSelector(Mapping):
        pass
    
    class GetDASHStreamingSessionURLInput(Mapping):
        pass
    
    class GetDASHStreamingSessionURLOutput(Mapping):
        pass
    
    class DASHFragmentSelector(Mapping):
        pass
    
    class DASHMaxResults(object):
        pass
    
    class GetHLSStreamingSessionURLInput(Mapping):
        pass
    
    class GetHLSStreamingSessionURLOutput(Mapping):
        pass
    
    class HLSFragmentSelector(Mapping):
        pass
    
    class HLSMaxResults(object):
        pass
    
    class GetMediaForFragmentListInput(Mapping):
        pass
    
    class GetMediaForFragmentListOutput(Mapping):
        pass
    
    class FragmentNumberString(object):
        pass
    
    class ListFragmentsInput(Mapping):
        pass
    
    class ListFragmentsOutput(Mapping):
        pass
    
    class ListFragmentsMaxResults(object):
        pass
    
    class FragmentSelector(Mapping):
        pass
    
    def get_clip(self, ClipFragmentSelector: ClipFragmentSelector, StreamName: str=None, StreamARN: str=None) -> GetClipOutput:
        r"""Downloads an MP4 file (clip) containing the archived, on-demand media from the specified video stream over the specified time range.  Both the StreamName and the StreamARN parameters are optional, but you must specify either the StreamName or the StreamARN when invoking this API operation.  As a prerequisite to using GetCLip API, you must obtain an endpoint using <code>GetDataEndpoint</code>, specifying GET_CLIP for<code/> the <code>APIName</code> parameter.  An Amazon Kinesis video stream has the following requirements for providing data through MP4: <ul> <li> The media must contain h.264 or h.265 encoded video and, optionally, AAC or G.711 encoded audio. Specifically, the codec ID of track 1 should be <code>V_MPEG/ISO/AVC</code> (for h.264) or V_MPEGH/ISO/HEVC (for H.265). Optionally, the codec ID of track 2 should be <code>A_AAC</code> (for AAC) or A_MS/ACM (for G.711). </li> <li> Data retention must be greater than 0. </li> <li> The video track of each fragment must contain codec private data in the Advanced Video Coding (AVC) for H.264 format and HEVC for H.265 format. For more information, see <a href="https://www.iso.org/standard/55980.html">MPEG-4 specification ISO/IEC 14496-15</a>. For information about adapting stream data to a given format, see <a href="http://docs.aws.amazon.com/kinesisvideostreams/latest/dg/producer-reference-nal.html">NAL Adaptation Flags</a>. </li> <li> The audio track (if present) of each fragment must contain codec private data in the AAC format (<a href="https://www.iso.org/standard/43345.html">AAC specification ISO/IEC 13818-7</a>) or the <a href="http://www-mmsp.ece.mcgill.ca/Documents/AudioFormats/WAVE/WAVE.html">MS Wave format</a>. </li> </ul> You can monitor the amount of outgoing data by monitoring the <code>GetClip.OutgoingBytes</code> Amazon CloudWatch metric. For information about using CloudWatch to monitor Kinesis Video Streams, see <a href="http://docs.aws.amazon.com/kinesisvideostreams/latest/dg/monitoring.html">Monitoring Kinesis Video Streams</a>. For pricing information, see <a href="https://aws.amazon.com/kinesis/video-streams/pricing/">Amazon Kinesis Video Streams Pricing</a> and <a href="https://aws.amazon.com/pricing/">AWS Pricing</a>. Charges for outgoing AWS data apply.

        :param self:
        :param ClipFragmentSelector:  The time range of the requested clip and the source of the timestamps.:<br/>StreamARN:  The Amazon Resource Name (ARN) of the stream for which to retrieve the media clip.  You must specify either the StreamName or the StreamARN. <br/>StreamName:  The name of the stream for which to retrieve the media clip.  You must specify either the StreamName or the StreamARN. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TimestampRange</i> The range of timestamps to return.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TimestampRange</b>: The range of timestamps to return.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FragmentSelectorType</i> The origin of the timestamps to use (Server or Producer).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EndTimestamp</i> The end of the timestamp range for the requested media. This value must be within 24 hours of the specified <code>StartTimestamp</code>, and it must be later than the <code>StartTimestamp</code> value. If <code>FragmentSelectorType</code> for the request is <code>SERVER_TIMESTAMP</code>, this value must be in the past.  This value is inclusive. The <code>EndTimestamp</code> is compared to the (starting) timestamp of the fragment. Fragments that start before the <code>EndTimestamp</code> value and continue past it are included in the session. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StartTimestamp</i> The starting timestamp in the range of timestamps for which to return fragments.  Only fragments that start exactly at or after <code>StartTimestamp</code> are included in the session. Fragments that start before <code>StartTimestamp</code> and continue past it aren't included in the session. If <code>FragmentSelectorType</code> is <code>SERVER_TIMESTAMP</code>, the <code>StartTimestamp</code> must be later than the stream head. <br/>
        :return: Payload:  Traditional MP4 file that contains the media clip from the specified video stream. The output will contain the first 100 MB or the first 200 fragments from the specified start timestamp. For more information, see <a href="https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/limits.html">Kinesis Video Streams Limits</a>. <br/>ContentType:  The content type of the media in the requested clip.<br/>        """
        pass

    def get_dash_streaming_session_url(self, StreamName: str=None, StreamARN: str=None, PlaybackMode: str=None, DisplayFragmentTimestamp: str=None, DisplayFragmentNumber: str=None, DASHFragmentSelector: DASHFragmentSelector=None, Expires: int=None, MaxManifestFragmentResults: DASHMaxResults=None) -> GetDASHStreamingSessionURLOutput:
        r"""Retrieves an MPEG Dynamic Adaptive Streaming over HTTP (DASH) URL for the stream. You can then open the URL in a media player to view the stream contents. Both the <code>StreamName</code> and the <code>StreamARN</code> parameters are optional, but you must specify either the <code>StreamName</code> or the <code>StreamARN</code> when invoking this API operation. An Amazon Kinesis video stream has the following requirements for providing data through MPEG-DASH: <ul> <li> The media must contain h.264 or h.265 encoded video and, optionally, AAC or G.711 encoded audio. Specifically, the codec ID of track 1 should be <code>V_MPEG/ISO/AVC</code> (for h.264) or V_MPEGH/ISO/HEVC (for H.265). Optionally, the codec ID of track 2 should be <code>A_AAC</code> (for AAC) or A_MS/ACM (for G.711). </li> <li> Data retention must be greater than 0. </li> <li> The video track of each fragment must contain codec private data in the Advanced Video Coding (AVC) for H.264 format and HEVC for H.265 format. For more information, see <a href="https://www.iso.org/standard/55980.html">MPEG-4 specification ISO/IEC 14496-15</a>. For information about adapting stream data to a given format, see <a href="http://docs.aws.amazon.com/kinesisvideostreams/latest/dg/producer-reference-nal.html">NAL Adaptation Flags</a>. </li> <li> The audio track (if present) of each fragment must contain codec private data in the AAC format (<a href="https://www.iso.org/standard/43345.html">AAC specification ISO/IEC 13818-7</a>) or the <a href="http://www-mmsp.ece.mcgill.ca/Documents/AudioFormats/WAVE/WAVE.html">MS Wave format</a>. </li> </ul> The following procedure shows how to use MPEG-DASH with Kinesis Video Streams: <ol> <li> Get an endpoint using <a href="http://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_GetDataEndpoint.html">GetDataEndpoint</a>, specifying <code>GET_DASH_STREAMING_SESSION_URL</code> for the <code>APIName</code> parameter. </li> <li> Retrieve the MPEG-DASH URL using <code>GetDASHStreamingSessionURL</code>. Kinesis Video Streams creates an MPEG-DASH streaming session to be used for accessing content in a stream using the MPEG-DASH protocol. <code>GetDASHStreamingSessionURL</code> returns an authenticated URL (that includes an encrypted session token) for the session's MPEG-DASH <i>manifest</i> (the root resource needed for streaming with MPEG-DASH). <note> Don't share or store this token where an unauthorized entity can access it. The token provides access to the content of the stream. Safeguard the token with the same measures that you use with your AWS credentials. </note> The media that is made available through the manifest consists only of the requested stream, time range, and format. No other media data (such as frames outside the requested window or alternate bitrates) is made available. </li> <li> Provide the URL (containing the encrypted session token) for the MPEG-DASH manifest to a media player that supports the MPEG-DASH protocol. Kinesis Video Streams makes the initialization fragment and media fragments available through the manifest URL. The initialization fragment contains the codec private data for the stream, and other data needed to set up the video or audio decoder and renderer. The media fragments contain encoded video frames or encoded audio samples. </li> <li> The media player receives the authenticated URL and requests stream metadata and media data normally. When the media player requests data, it calls the following actions: <ul> <li>  <b>GetDASHManifest:</b> Retrieves an MPEG DASH manifest, which contains the metadata for the media that you want to playback. </li> <li>  <b>GetMP4InitFragment:</b> Retrieves the MP4 initialization fragment. The media player typically loads the initialization fragment before loading any media fragments. This fragment contains the "<code>fytp</code>" and "<code>moov</code>" MP4 atoms, and the child atoms that are needed to initialize the media player decoder. The initialization fragment does not correspond to a fragment in a Kinesis video stream. It contains only the codec private data for the stream and respective track, which the media player needs to decode the media frames. </li> <li>  <b>GetMP4MediaFragment:</b> Retrieves MP4 media fragments. These fragments contain the "<code>moof</code>" and "<code>mdat</code>" MP4 atoms and their child atoms, containing the encoded fragment's media frames and their timestamps.  <note> After the first media fragment is made available in a streaming session, any fragments that don't contain the same codec private data cause an error to be returned when those different media fragments are loaded. Therefore, the codec private data should not change between fragments in a session. This also means that the session fails if the fragments in a stream change from having only video to having both audio and video. </note> Data retrieved with this action is billable. See <a href="https://aws.amazon.com/kinesis/video-streams/pricing/">Pricing</a> for details. </li> </ul> </li> </ol> <note> For restrictions that apply to MPEG-DASH sessions, see <a href="http://docs.aws.amazon.com/kinesisvideostreams/latest/dg/limits.html">Kinesis Video Streams Limits</a>. </note> You can monitor the amount of data that the media player consumes by monitoring the <code>GetMP4MediaFragment.OutgoingBytes</code> Amazon CloudWatch metric. For information about using CloudWatch to monitor Kinesis Video Streams, see <a href="http://docs.aws.amazon.com/kinesisvideostreams/latest/dg/monitoring.html">Monitoring Kinesis Video Streams</a>. For pricing information, see <a href="https://aws.amazon.com/kinesis/video-streams/pricing/">Amazon Kinesis Video Streams Pricing</a> and <a href="https://aws.amazon.com/pricing/">AWS Pricing</a>. Charges for both HLS sessions and outgoing AWS data apply. For more information about HLS, see <a href="https://developer.apple.com/streaming/">HTTP Live Streaming</a> on the <a href="https://developer.apple.com">Apple Developer site</a>. <important> If an error is thrown after invoking a Kinesis Video Streams archived media API, in addition to the HTTP status code and the response body, it includes the following pieces of information:  <ul> <li>  <code>x-amz-ErrorType</code> HTTP header – contains a more specific error type in addition to what the HTTP status code provides.  </li> <li>  <code>x-amz-RequestId</code> HTTP header – if you want to report an issue to AWS, the support team can better diagnose the problem if given the Request Id. </li> </ul> Both the HTTP status code and the ErrorType header can be utilized to make programmatic decisions about whether errors are retry-able and under what conditions, as well as provide information on what actions the client programmer might need to take in order to successfully try again. For more information, see the <b>Errors</b> section at the bottom of this topic, as well as <a href="https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/CommonErrors.html">Common Errors</a>.  </important>

        :param self:
        :param MaxManifestFragmentResults:  The maximum number of fragments that are returned in the MPEG-DASH manifest. When the <code>PlaybackMode</code> is <code>LIVE</code>, the most recent fragments are returned up to this value. When the <code>PlaybackMode</code> is <code>ON_DEMAND</code>, the oldest fragments are returned, up to this maximum number. When there are a higher number of fragments available in a live MPEG-DASH manifest, video players often buffer content before starting playback. Increasing the buffer size increases the playback latency, but it decreases the likelihood that rebuffering will occur during playback. We recommend that a live MPEG-DASH manifest have a minimum of 3 fragments and a maximum of 10 fragments. The default is 5 fragments if <code>PlaybackMode</code> is <code>LIVE</code> or <code>LIVE_REPLAY</code>, and 1,000 if <code>PlaybackMode</code> is <code>ON_DEMAND</code>.  The maximum value of 1,000 fragments corresponds to more than 16 minutes of video on streams with 1-second fragments, and more than 2 1/2 hours of video on streams with 10-second fragments.<br/>Expires:  The time in seconds until the requested session expires. This value can be between 300 (5 minutes) and 43200 (12 hours). When a session expires, no new calls to <code>GetDashManifest</code>, <code>GetMP4InitFragment</code>, or <code>GetMP4MediaFragment</code> can be made for that session. The default is 300 (5 minutes).<br/>DASHFragmentSelector:  The time range of the requested fragment and the source of the timestamps. This parameter is required if <code>PlaybackMode</code> is <code>ON_DEMAND</code> or <code>LIVE_REPLAY</code>. This parameter is optional if PlaybackMode is<code/> <code>LIVE</code>. If <code>PlaybackMode</code> is <code>LIVE</code>, the <code>FragmentSelectorType</code> can be set, but the <code>TimestampRange</code> should not be set. If <code>PlaybackMode</code> is <code>ON_DEMAND</code> or <code>LIVE_REPLAY</code>, both <code>FragmentSelectorType</code> and <code>TimestampRange</code> must be set.:<br/>DisplayFragmentNumber:  Fragments are identified in the manifest file based on their sequence number in the session. If DisplayFragmentNumber is set to <code>ALWAYS</code>, the Kinesis Video Streams fragment number is added to each S element in the manifest file with the attribute name “kvs:fn”. These fragment numbers can be used for logging or for use with other APIs (e.g. <code>GetMedia</code> and <code>GetMediaForFragmentList</code>). A custom MPEG-DASH media player is necessary to leverage these this custom attribute. The default value is <code>NEVER</code>.<br/>DisplayFragmentTimestamp:  Per the MPEG-DASH specification, the wall-clock time of fragments in the manifest file can be derived using attributes in the manifest itself. However, typically, MPEG-DASH compatible media players do not properly handle gaps in the media timeline. Kinesis Video Streams adjusts the media timeline in the manifest file to enable playback of media with discontinuities. Therefore, the wall-clock time derived from the manifest file may be inaccurate. If DisplayFragmentTimestamp is set to <code>ALWAYS</code>, the accurate fragment timestamp is added to each S element in the manifest file with the attribute name “kvs:ts”. A custom MPEG-DASH media player is necessary to leverage this custom attribute. The default value is <code>NEVER</code>. When <a>DASHFragmentSelector</a> is <code>SERVER_TIMESTAMP</code>, the timestamps will be the server start timestamps. Similarly, when <a>DASHFragmentSelector</a> is <code>PRODUCER_TIMESTAMP</code>, the timestamps will be the producer start timestamps. <br/>PlaybackMode:  Whether to retrieve live, live replay, or archived, on-demand data. Features of the three types of sessions include the following: <ul> <li>  <b> <code>LIVE</code> </b>: For sessions of this type, the MPEG-DASH manifest is continually updated with the latest fragments as they become available. We recommend that the media player retrieve a new manifest on a one-second interval. When this type of session is played in a media player, the user interface typically displays a "live" notification, with no scrubber control for choosing the position in the playback window to display. <note> In <code>LIVE</code> mode, the newest available fragments are included in an MPEG-DASH manifest, even if there is a gap between fragments (that is, if a fragment is missing). A gap like this might cause a media player to halt or cause a jump in playback. In this mode, fragments are not added to the MPEG-DASH manifest if they are older than the newest fragment in the playlist. If the missing fragment becomes available after a subsequent fragment is added to the manifest, the older fragment is not added, and the gap is not filled. </note> </li> <li>  <b> <code>LIVE_REPLAY</code> </b>: For sessions of this type, the MPEG-DASH manifest is updated similarly to how it is updated for <code>LIVE</code> mode except that it starts by including fragments from a given start time. Instead of fragments being added as they are ingested, fragments are added as the duration of the next fragment elapses. For example, if the fragments in the session are two seconds long, then a new fragment is added to the manifest every two seconds. This mode is useful to be able to start playback from when an event is detected and continue live streaming media that has not yet been ingested as of the time of the session creation. This mode is also useful to stream previously archived media without being limited by the 1,000 fragment limit in the <code>ON_DEMAND</code> mode.  </li> <li>  <b> <code>ON_DEMAND</code> </b>: For sessions of this type, the MPEG-DASH manifest contains all the fragments for the session, up to the number that is specified in <code>MaxManifestFragmentResults</code>. The manifest must be retrieved only once for each session. When this type of session is played in a media player, the user interface typically displays a scrubber control for choosing the position in the playback window to display. </li> </ul> In all playback modes, if <code>FragmentSelectorType</code> is <code>PRODUCER_TIMESTAMP</code>, and if there are multiple fragments with the same start timestamp, the fragment that has the larger fragment number (that is, the newer fragment) is included in the MPEG-DASH manifest. The other fragments are not included. Fragments that have different timestamps but have overlapping durations are still included in the MPEG-DASH manifest. This can lead to unexpected behavior in the media player. The default is <code>LIVE</code>.<br/>StreamARN:  The Amazon Resource Name (ARN) of the stream for which to retrieve the MPEG-DASH manifest URL. You must specify either the <code>StreamName</code> or the <code>StreamARN</code>.<br/>StreamName:  The name of the stream for which to retrieve the MPEG-DASH manifest URL. You must specify either the <code>StreamName</code> or the <code>StreamARN</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TimestampRange</i> The start and end of the timestamp range for the requested media. This value should not be present if <code>PlaybackType</code> is <code>LIVE</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TimestampRange</b>: The start and end of the timestamp range for the requested media. This value should not be present if <code>PlaybackType</code> is <code>LIVE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FragmentSelectorType</i> The source of the timestamps for the requested media. When <code>FragmentSelectorType</code> is set to <code>PRODUCER_TIMESTAMP</code> and <a>GetDASHStreamingSessionURLInput$PlaybackMode</a> is <code>ON_DEMAND</code> or <code>LIVE_REPLAY</code>, the first fragment ingested with a producer timestamp within the specified <a>FragmentSelector$TimestampRange</a> is included in the media playlist. In addition, the fragments with producer timestamps within the <code>TimestampRange</code> ingested immediately following the first fragment (up to the <a>GetDASHStreamingSessionURLInput$MaxManifestFragmentResults</a> value) are included.  Fragments that have duplicate producer timestamps are deduplicated. This means that if producers are producing a stream of fragments with producer timestamps that are approximately equal to the true clock time, the MPEG-DASH manifest will contain all of the fragments within the requested timestamp range. If some fragments are ingested within the same time range and very different points in time, only the oldest ingested collection of fragments are returned. When <code>FragmentSelectorType</code> is set to <code>PRODUCER_TIMESTAMP</code> and <a>GetDASHStreamingSessionURLInput$PlaybackMode</a> is <code>LIVE</code>, the producer timestamps are used in the MP4 fragments and for deduplication. But the most recently ingested fragments based on server timestamps are included in the MPEG-DASH manifest. This means that even if fragments ingested in the past have producer timestamps with values now, they are not included in the HLS media playlist. The default is <code>SERVER_TIMESTAMP</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EndTimestamp</i> The end of the timestamp range for the requested media. This value must be within 24 hours of the specified <code>StartTimestamp</code>, and it must be later than the <code>StartTimestamp</code> value. If <code>FragmentSelectorType</code> for the request is <code>SERVER_TIMESTAMP</code>, this value must be in the past. The <code>EndTimestamp</code> value is required for <code>ON_DEMAND</code> mode, but optional for <code>LIVE_REPLAY</code> mode. If the <code>EndTimestamp</code> is not set for <code>LIVE_REPLAY</code> mode then the session will continue to include newly ingested fragments until the session expires. <note> This value is inclusive. The <code>EndTimestamp</code> is compared to the (starting) timestamp of the fragment. Fragments that start before the <code>EndTimestamp</code> value and continue past it are included in the session. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StartTimestamp</i> The start of the timestamp range for the requested media. If the <code>DASHTimestampRange</code> value is specified, the <code>StartTimestamp</code> value is required. Only fragments that start exactly at or after <code>StartTimestamp</code> are included in the session. Fragments that start before <code>StartTimestamp</code> and continue past it aren't included in the session. If <code>FragmentSelectorType</code> is <code>SERVER_TIMESTAMP</code>, the <code>StartTimestamp</code> must be later than the stream head. <br/>
        :return: DASHStreamingSessionURL:  The URL (containing the session token) that a media player can use to retrieve the MPEG-DASH manifest.<br/>        """
        pass

    def get_hls_streaming_session_url(self, StreamName: str=None, StreamARN: str=None, PlaybackMode: str=None, HLSFragmentSelector: HLSFragmentSelector=None, ContainerFormat: str=None, DiscontinuityMode: str=None, DisplayFragmentTimestamp: str=None, Expires: int=None, MaxMediaPlaylistFragmentResults: HLSMaxResults=None) -> GetHLSStreamingSessionURLOutput:
        r"""Retrieves an HTTP Live Streaming (HLS) URL for the stream. You can then open the URL in a browser or media player to view the stream contents. Both the <code>StreamName</code> and the <code>StreamARN</code> parameters are optional, but you must specify either the <code>StreamName</code> or the <code>StreamARN</code> when invoking this API operation. An Amazon Kinesis video stream has the following requirements for providing data through HLS: <ul> <li> The media must contain h.264 or h.265 encoded video and, optionally, AAC encoded audio. Specifically, the codec ID of track 1 should be <code>V_MPEG/ISO/AVC</code> (for h.264) or <code>V_MPEG/ISO/HEVC</code> (for h.265). Optionally, the codec ID of track 2 should be <code>A_AAC</code>. </li> <li> Data retention must be greater than 0. </li> <li> The video track of each fragment must contain codec private data in the Advanced Video Coding (AVC) for H.264 format or HEVC for H.265 format (<a href="https://www.iso.org/standard/55980.html">MPEG-4 specification ISO/IEC 14496-15</a>). For information about adapting stream data to a given format, see <a href="http://docs.aws.amazon.com/kinesisvideostreams/latest/dg/producer-reference-nal.html">NAL Adaptation Flags</a>. </li> <li> The audio track (if present) of each fragment must contain codec private data in the AAC format (<a href="https://www.iso.org/standard/43345.html">AAC specification ISO/IEC 13818-7</a>). </li> </ul> Kinesis Video Streams HLS sessions contain fragments in the fragmented MPEG-4 form (also called fMP4 or CMAF) or the MPEG-2 form (also called TS chunks, which the HLS specification also supports). For more information about HLS fragment types, see the <a href="https://tools.ietf.org/html/draft-pantos-http-live-streaming-23">HLS specification</a>. The following procedure shows how to use HLS with Kinesis Video Streams: <ol> <li> Get an endpoint using <a href="http://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_GetDataEndpoint.html">GetDataEndpoint</a>, specifying <code>GET_HLS_STREAMING_SESSION_URL</code> for the <code>APIName</code> parameter. </li> <li> Retrieve the HLS URL using <code>GetHLSStreamingSessionURL</code>. Kinesis Video Streams creates an HLS streaming session to be used for accessing content in a stream using the HLS protocol. <code>GetHLSStreamingSessionURL</code> returns an authenticated URL (that includes an encrypted session token) for the session's HLS <i>master playlist</i> (the root resource needed for streaming with HLS). <note> Don't share or store this token where an unauthorized entity could access it. The token provides access to the content of the stream. Safeguard the token with the same measures that you would use with your AWS credentials. </note> The media that is made available through the playlist consists only of the requested stream, time range, and format. No other media data (such as frames outside the requested window or alternate bitrates) is made available. </li> <li> Provide the URL (containing the encrypted session token) for the HLS master playlist to a media player that supports the HLS protocol. Kinesis Video Streams makes the HLS media playlist, initialization fragment, and media fragments available through the master playlist URL. The initialization fragment contains the codec private data for the stream, and other data needed to set up the video or audio decoder and renderer. The media fragments contain H.264-encoded video frames or AAC-encoded audio samples. </li> <li> The media player receives the authenticated URL and requests stream metadata and media data normally. When the media player requests data, it calls the following actions: <ul> <li>  <b>GetHLSMasterPlaylist:</b> Retrieves an HLS master playlist, which contains a URL for the <code>GetHLSMediaPlaylist</code> action for each track, and additional metadata for the media player, including estimated bitrate and resolution. </li> <li>  <b>GetHLSMediaPlaylist:</b> Retrieves an HLS media playlist, which contains a URL to access the MP4 initialization fragment with the <code>GetMP4InitFragment</code> action, and URLs to access the MP4 media fragments with the <code>GetMP4MediaFragment</code> actions. The HLS media playlist also contains metadata about the stream that the player needs to play it, such as whether the <code>PlaybackMode</code> is <code>LIVE</code> or <code>ON_DEMAND</code>. The HLS media playlist is typically static for sessions with a <code>PlaybackType</code> of <code>ON_DEMAND</code>. The HLS media playlist is continually updated with new fragments for sessions with a <code>PlaybackType</code> of <code>LIVE</code>. There is a distinct HLS media playlist for the video track and the audio track (if applicable) that contains MP4 media URLs for the specific track.  </li> <li>  <b>GetMP4InitFragment:</b> Retrieves the MP4 initialization fragment. The media player typically loads the initialization fragment before loading any media fragments. This fragment contains the "<code>fytp</code>" and "<code>moov</code>" MP4 atoms, and the child atoms that are needed to initialize the media player decoder. The initialization fragment does not correspond to a fragment in a Kinesis video stream. It contains only the codec private data for the stream and respective track, which the media player needs to decode the media frames. </li> <li>  <b>GetMP4MediaFragment:</b> Retrieves MP4 media fragments. These fragments contain the "<code>moof</code>" and "<code>mdat</code>" MP4 atoms and their child atoms, containing the encoded fragment's media frames and their timestamps.  <note> After the first media fragment is made available in a streaming session, any fragments that don't contain the same codec private data cause an error to be returned when those different media fragments are loaded. Therefore, the codec private data should not change between fragments in a session. This also means that the session fails if the fragments in a stream change from having only video to having both audio and video. </note> Data retrieved with this action is billable. See <a href="https://aws.amazon.com/kinesis/video-streams/pricing/">Pricing</a> for details. </li> <li>  <b>GetTSFragment:</b> Retrieves MPEG TS fragments containing both initialization and media data for all tracks in the stream. <note> If the <code>ContainerFormat</code> is <code>MPEG_TS</code>, this API is used instead of <code>GetMP4InitFragment</code> and <code>GetMP4MediaFragment</code> to retrieve stream media. </note> Data retrieved with this action is billable. For more information, see <a href="https://aws.amazon.com/kinesis/video-streams/pricing/">Kinesis Video Streams pricing</a>. </li> </ul> </li> </ol> A streaming session URL must not be shared between players. The service might throttle a session if multiple media players are sharing it. For connection limits, see <a href="http://docs.aws.amazon.com/kinesisvideostreams/latest/dg/limits.html">Kinesis Video Streams Limits</a>. You can monitor the amount of data that the media player consumes by monitoring the <code>GetMP4MediaFragment.OutgoingBytes</code> Amazon CloudWatch metric. For information about using CloudWatch to monitor Kinesis Video Streams, see <a href="http://docs.aws.amazon.com/kinesisvideostreams/latest/dg/monitoring.html">Monitoring Kinesis Video Streams</a>. For pricing information, see <a href="https://aws.amazon.com/kinesis/video-streams/pricing/">Amazon Kinesis Video Streams Pricing</a> and <a href="https://aws.amazon.com/pricing/">AWS Pricing</a>. Charges for both HLS sessions and outgoing AWS data apply. For more information about HLS, see <a href="https://developer.apple.com/streaming/">HTTP Live Streaming</a> on the <a href="https://developer.apple.com">Apple Developer site</a>. <important> If an error is thrown after invoking a Kinesis Video Streams archived media API, in addition to the HTTP status code and the response body, it includes the following pieces of information:  <ul> <li>  <code>x-amz-ErrorType</code> HTTP header – contains a more specific error type in addition to what the HTTP status code provides.  </li> <li>  <code>x-amz-RequestId</code> HTTP header – if you want to report an issue to AWS, the support team can better diagnose the problem if given the Request Id. </li> </ul> Both the HTTP status code and the ErrorType header can be utilized to make programmatic decisions about whether errors are retry-able and under what conditions, as well as provide information on what actions the client programmer might need to take in order to successfully try again. For more information, see the <b>Errors</b> section at the bottom of this topic, as well as <a href="https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/CommonErrors.html">Common Errors</a>.  </important>

        :param self:
        :param MaxMediaPlaylistFragmentResults:  The maximum number of fragments that are returned in the HLS media playlists. When the <code>PlaybackMode</code> is <code>LIVE</code>, the most recent fragments are returned up to this value. When the <code>PlaybackMode</code> is <code>ON_DEMAND</code>, the oldest fragments are returned, up to this maximum number. When there are a higher number of fragments available in a live HLS media playlist, video players often buffer content before starting playback. Increasing the buffer size increases the playback latency, but it decreases the likelihood that rebuffering will occur during playback. We recommend that a live HLS media playlist have a minimum of 3 fragments and a maximum of 10 fragments. The default is 5 fragments if <code>PlaybackMode</code> is <code>LIVE</code> or <code>LIVE_REPLAY</code>, and 1,000 if <code>PlaybackMode</code> is <code>ON_DEMAND</code>.  The maximum value of 5,000 fragments corresponds to more than 80 minutes of video on streams with 1-second fragments, and more than 13 hours of video on streams with 10-second fragments.<br/>Expires:  The time in seconds until the requested session expires. This value can be between 300 (5 minutes) and 43200 (12 hours). When a session expires, no new calls to <code>GetHLSMasterPlaylist</code>, <code>GetHLSMediaPlaylist</code>, <code>GetMP4InitFragment</code>, <code>GetMP4MediaFragment</code>, or <code>GetTSFragment</code> can be made for that session. The default is 300 (5 minutes).<br/>DisplayFragmentTimestamp:  Specifies when the fragment start timestamps should be included in the HLS media playlist. Typically, media players report the playhead position as a time relative to the start of the first fragment in the playback session. However, when the start timestamps are included in the HLS media playlist, some media players might report the current playhead as an absolute time based on the fragment timestamps. This can be useful for creating a playback experience that shows viewers the wall-clock time of the media. The default is <code>NEVER</code>. When <a>HLSFragmentSelector</a> is <code>SERVER_TIMESTAMP</code>, the timestamps will be the server start timestamps. Similarly, when <a>HLSFragmentSelector</a> is <code>PRODUCER_TIMESTAMP</code>, the timestamps will be the producer start timestamps. <br/>DiscontinuityMode:  Specifies when flags marking discontinuities between fragments are added to the media playlists. Media players typically build a timeline of media content to play, based on the timestamps of each fragment. This means that if there is any overlap or gap between fragments (as is typical if <a>HLSFragmentSelector</a> is set to <code>SERVER_TIMESTAMP</code>), the media player timeline will also have small gaps between fragments in some places, and will overwrite frames in other places. Gaps in the media player timeline can cause playback to stall and overlaps can cause playback to be jittery. When there are discontinuity flags between fragments, the media player is expected to reset the timeline, resulting in the next fragment being played immediately after the previous fragment.  The following modes are supported: <ul> <li>  <code>ALWAYS</code>: a discontinuity marker is placed between every fragment in the HLS media playlist. It is recommended to use a value of <code>ALWAYS</code> if the fragment timestamps are not accurate. </li> <li>  <code>NEVER</code>: no discontinuity markers are placed anywhere. It is recommended to use a value of <code>NEVER</code> to ensure the media player timeline most accurately maps to the producer timestamps.  </li> <li>  <code>ON_DISCONTINUITY</code>: a discontinuity marker is placed between fragments that have a gap or overlap of more than 50 milliseconds. For most playback scenarios, it is recommended to use a value of <code>ON_DISCONTINUITY</code> so that the media player timeline is only reset when there is a significant issue with the media timeline (e.g. a missing fragment). </li> </ul> The default is <code>ALWAYS</code> when <a>HLSFragmentSelector</a> is set to <code>SERVER_TIMESTAMP</code>, and <code>NEVER</code> when it is set to <code>PRODUCER_TIMESTAMP</code>.<br/>ContainerFormat:  Specifies which format should be used for packaging the media. Specifying the <code>FRAGMENTED_MP4</code> container format packages the media into MP4 fragments (fMP4 or CMAF). This is the recommended packaging because there is minimal packaging overhead. The other container format option is <code>MPEG_TS</code>. HLS has supported MPEG TS chunks since it was released and is sometimes the only supported packaging on older HLS players. MPEG TS typically has a 5-25 percent packaging overhead. This means MPEG TS typically requires 5-25 percent more bandwidth and cost than fMP4. The default is <code>FRAGMENTED_MP4</code>.<br/>HLSFragmentSelector:  The time range of the requested fragment and the source of the timestamps. This parameter is required if <code>PlaybackMode</code> is <code>ON_DEMAND</code> or <code>LIVE_REPLAY</code>. This parameter is optional if PlaybackMode is<code/> <code>LIVE</code>. If <code>PlaybackMode</code> is <code>LIVE</code>, the <code>FragmentSelectorType</code> can be set, but the <code>TimestampRange</code> should not be set. If <code>PlaybackMode</code> is <code>ON_DEMAND</code> or <code>LIVE_REPLAY</code>, both <code>FragmentSelectorType</code> and <code>TimestampRange</code> must be set.:<br/>PlaybackMode:  Whether to retrieve live, live replay, or archived, on-demand data. Features of the three types of sessions include the following: <ul> <li>  <b> <code>LIVE</code> </b>: For sessions of this type, the HLS media playlist is continually updated with the latest fragments as they become available. We recommend that the media player retrieve a new playlist on a one-second interval. When this type of session is played in a media player, the user interface typically displays a "live" notification, with no scrubber control for choosing the position in the playback window to display. <note> In <code>LIVE</code> mode, the newest available fragments are included in an HLS media playlist, even if there is a gap between fragments (that is, if a fragment is missing). A gap like this might cause a media player to halt or cause a jump in playback. In this mode, fragments are not added to the HLS media playlist if they are older than the newest fragment in the playlist. If the missing fragment becomes available after a subsequent fragment is added to the playlist, the older fragment is not added, and the gap is not filled. </note> </li> <li>  <b> <code>LIVE_REPLAY</code> </b>: For sessions of this type, the HLS media playlist is updated similarly to how it is updated for <code>LIVE</code> mode except that it starts by including fragments from a given start time. Instead of fragments being added as they are ingested, fragments are added as the duration of the next fragment elapses. For example, if the fragments in the session are two seconds long, then a new fragment is added to the media playlist every two seconds. This mode is useful to be able to start playback from when an event is detected and continue live streaming media that has not yet been ingested as of the time of the session creation. This mode is also useful to stream previously archived media without being limited by the 1,000 fragment limit in the <code>ON_DEMAND</code> mode.  </li> <li>  <b> <code>ON_DEMAND</code> </b>: For sessions of this type, the HLS media playlist contains all the fragments for the session, up to the number that is specified in <code>MaxMediaPlaylistFragmentResults</code>. The playlist must be retrieved only once for each session. When this type of session is played in a media player, the user interface typically displays a scrubber control for choosing the position in the playback window to display. </li> </ul> In all playback modes, if <code>FragmentSelectorType</code> is <code>PRODUCER_TIMESTAMP</code>, and if there are multiple fragments with the same start timestamp, the fragment that has the largest fragment number (that is, the newest fragment) is included in the HLS media playlist. The other fragments are not included. Fragments that have different timestamps but have overlapping durations are still included in the HLS media playlist. This can lead to unexpected behavior in the media player. The default is <code>LIVE</code>.<br/>StreamARN:  The Amazon Resource Name (ARN) of the stream for which to retrieve the HLS master playlist URL. You must specify either the <code>StreamName</code> or the <code>StreamARN</code>.<br/>StreamName:  The name of the stream for which to retrieve the HLS master playlist URL. You must specify either the <code>StreamName</code> or the <code>StreamARN</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TimestampRange</i> The start and end of the timestamp range for the requested media. This value should not be present if <code>PlaybackType</code> is <code>LIVE</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TimestampRange</b>: The start and end of the timestamp range for the requested media. This value should not be present if <code>PlaybackType</code> is <code>LIVE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FragmentSelectorType</i> The source of the timestamps for the requested media. When <code>FragmentSelectorType</code> is set to <code>PRODUCER_TIMESTAMP</code> and <a>GetHLSStreamingSessionURLInput$PlaybackMode</a> is <code>ON_DEMAND</code> or <code>LIVE_REPLAY</code>, the first fragment ingested with a producer timestamp within the specified <a>FragmentSelector$TimestampRange</a> is included in the media playlist. In addition, the fragments with producer timestamps within the <code>TimestampRange</code> ingested immediately following the first fragment (up to the <a>GetHLSStreamingSessionURLInput$MaxMediaPlaylistFragmentResults</a> value) are included.  Fragments that have duplicate producer timestamps are deduplicated. This means that if producers are producing a stream of fragments with producer timestamps that are approximately equal to the true clock time, the HLS media playlists will contain all of the fragments within the requested timestamp range. If some fragments are ingested within the same time range and very different points in time, only the oldest ingested collection of fragments are returned. When <code>FragmentSelectorType</code> is set to <code>PRODUCER_TIMESTAMP</code> and <a>GetHLSStreamingSessionURLInput$PlaybackMode</a> is <code>LIVE</code>, the producer timestamps are used in the MP4 fragments and for deduplication. But the most recently ingested fragments based on server timestamps are included in the HLS media playlist. This means that even if fragments ingested in the past have producer timestamps with values now, they are not included in the HLS media playlist. The default is <code>SERVER_TIMESTAMP</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EndTimestamp</i> The end of the timestamp range for the requested media. This value must be within 24 hours of the specified <code>StartTimestamp</code>, and it must be later than the <code>StartTimestamp</code> value. If <code>FragmentSelectorType</code> for the request is <code>SERVER_TIMESTAMP</code>, this value must be in the past. The <code>EndTimestamp</code> value is required for <code>ON_DEMAND</code> mode, but optional for <code>LIVE_REPLAY</code> mode. If the <code>EndTimestamp</code> is not set for <code>LIVE_REPLAY</code> mode then the session will continue to include newly ingested fragments until the session expires. <note> This value is inclusive. The <code>EndTimestamp</code> is compared to the (starting) timestamp of the fragment. Fragments that start before the <code>EndTimestamp</code> value and continue past it are included in the session. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StartTimestamp</i> The start of the timestamp range for the requested media. If the <code>HLSTimestampRange</code> value is specified, the <code>StartTimestamp</code> value is required.  Only fragments that start exactly at or after <code>StartTimestamp</code> are included in the session. Fragments that start before <code>StartTimestamp</code> and continue past it aren't included in the session. If <code>FragmentSelectorType</code> is <code>SERVER_TIMESTAMP</code>, the <code>StartTimestamp</code> must be later than the stream head. <br/>
        :return: HLSStreamingSessionURL:  The URL (containing the session token) that a media player can use to retrieve the HLS master playlist.<br/>        """
        pass

    def get_media_for_fragment_list(self, Fragments: List[FragmentNumberString], StreamName: str=None, StreamARN: str=None) -> GetMediaForFragmentListOutput:
        r"""Gets media for a list of fragments (specified by fragment number) from the archived data in an Amazon Kinesis video stream. <note> You must first call the <code>GetDataEndpoint</code> API to get an endpoint. Then send the <code>GetMediaForFragmentList</code> requests to this endpoint using the <a href="https://docs.aws.amazon.com/cli/latest/reference/">--endpoint-url parameter</a>.  </note> For limits, see <a href="http://docs.aws.amazon.com/kinesisvideostreams/latest/dg/limits.html">Kinesis Video Streams Limits</a>. <important> If an error is thrown after invoking a Kinesis Video Streams archived media API, in addition to the HTTP status code and the response body, it includes the following pieces of information:  <ul> <li>  <code>x-amz-ErrorType</code> HTTP header – contains a more specific error type in addition to what the HTTP status code provides.  </li> <li>  <code>x-amz-RequestId</code> HTTP header – if you want to report an issue to AWS, the support team can better diagnose the problem if given the Request Id. </li> </ul> Both the HTTP status code and the ErrorType header can be utilized to make programmatic decisions about whether errors are retry-able and under what conditions, as well as provide information on what actions the client programmer might need to take in order to successfully try again. For more information, see the <b>Errors</b> section at the bottom of this topic, as well as <a href="https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/CommonErrors.html">Common Errors</a>.  </important>

        :param self:
        :param Fragments:  A list of the numbers of fragments for which to retrieve media. You retrieve these values with <a>ListFragments</a>.<br/>StreamARN:  The Amazon Resource Name (ARN) of the stream from which to retrieve fragment media. Specify either this parameter or the <code>StreamName</code> parameter.<br/>StreamName:  The name of the stream from which to retrieve fragment media. Specify either this parameter or the <code>StreamARN</code> parameter.<br/>
        :return: Payload:  The payload that Kinesis Video Streams returns is a sequence of chunks from the specified stream. For information about the chunks, see <a href="http://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_dataplane_PutMedia.html">PutMedia</a>. The chunks that Kinesis Video Streams returns in the <code>GetMediaForFragmentList</code> call also include the following additional Matroska (MKV) tags:  <ul> <li> AWS_KINESISVIDEO_FRAGMENT_NUMBER - Fragment number returned in the chunk. </li> <li> AWS_KINESISVIDEO_SERVER_SIDE_TIMESTAMP - Server-side timestamp of the fragment. </li> <li> AWS_KINESISVIDEO_PRODUCER_SIDE_TIMESTAMP - Producer-side timestamp of the fragment. </li> </ul> The following tags will be included if an exception occurs: <ul> <li> AWS_KINESISVIDEO_FRAGMENT_NUMBER - The number of the fragment that threw the exception </li> <li> AWS_KINESISVIDEO_EXCEPTION_ERROR_CODE - The integer code of the exception </li> <li> AWS_KINESISVIDEO_EXCEPTION_MESSAGE - A text description of the exception </li> </ul><br/>ContentType:  The content type of the requested media.<br/>        """
        pass

    def list_fragments(self, StreamName: str=None, StreamARN: str=None, MaxResults: ListFragmentsMaxResults=None, NextToken: str=None, FragmentSelector: FragmentSelector=None) -> ListFragmentsOutput:
        r"""Returns a list of <a>Fragment</a> objects from the specified stream and timestamp range within the archived data. Listing fragments is eventually consistent. This means that even if the producer receives an acknowledgment that a fragment is persisted, the result might not be returned immediately from a request to <code>ListFragments</code>. However, results are typically available in less than one second. <note> You must first call the <code>GetDataEndpoint</code> API to get an endpoint. Then send the <code>ListFragments</code> requests to this endpoint using the <a href="https://docs.aws.amazon.com/cli/latest/reference/">--endpoint-url parameter</a>.  </note> <important> If an error is thrown after invoking a Kinesis Video Streams archived media API, in addition to the HTTP status code and the response body, it includes the following pieces of information:  <ul> <li>  <code>x-amz-ErrorType</code> HTTP header – contains a more specific error type in addition to what the HTTP status code provides.  </li> <li>  <code>x-amz-RequestId</code> HTTP header – if you want to report an issue to AWS, the support team can better diagnose the problem if given the Request Id. </li> </ul> Both the HTTP status code and the ErrorType header can be utilized to make programmatic decisions about whether errors are retry-able and under what conditions, as well as provide information on what actions the client programmer might need to take in order to successfully try again. For more information, see the <b>Errors</b> section at the bottom of this topic, as well as <a href="https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/CommonErrors.html">Common Errors</a>.  </important>

        :param self:
        :param FragmentSelector:  Describes the timestamp range and timestamp origin for the range of fragments to return.:<br/>NextToken:  A token to specify where to start paginating. This is the <a>ListFragmentsOutput$NextToken</a> from a previously truncated response.<br/>MaxResults:  The total number of fragments to return. If the total number of fragments available is more than the value specified in <code>max-results</code>, then a <a>ListFragmentsOutput$NextToken</a> is provided in the output that you can use to resume pagination.<br/>StreamARN:  The Amazon Resource Name (ARN) of the stream from which to retrieve a fragment list. Specify either this parameter or the <code>StreamName</code> parameter.<br/>StreamName:  The name of the stream from which to retrieve a fragment list. Specify either this parameter or the <code>StreamARN</code> parameter.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TimestampRange</i> The range of timestamps to return.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TimestampRange</b>: The range of timestamps to return.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FragmentSelectorType</i> The origin of the timestamps to use (Server or Producer).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EndTimestamp</i> The ending timestamp in the range of timestamps for which to return fragments.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StartTimestamp</i> The starting timestamp in the range of timestamps for which to return fragments.<br/>
        :return: NextToken:  If the returned list is truncated, the operation returns this token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>Fragments:  A list of archived <a>Fragment</a> objects from the stream that meet the selector criteria. Results are in no specific order, even across pages.<br/>        """
        pass





class KinesisVideoMedia(BaseClient):
    r"""<p/>"""




    class GetMediaInput(Mapping):
        pass
    
    class GetMediaOutput(Mapping):
        pass
    
    class StartSelector(Mapping):
        pass
    
    def get_media(self, StartSelector: StartSelector, StreamName: str=None, StreamARN: str=None) -> GetMediaOutput:
        r""" Use this API to retrieve media content from a Kinesis video stream. In the request, you identify the stream name or stream Amazon Resource Name (ARN), and the starting chunk. Kinesis Video Streams then returns a stream of chunks in order by fragment number. <note> You must first call the <code>GetDataEndpoint</code> API to get an endpoint. Then send the <code>GetMedia</code> requests to this endpoint using the <a href="https://docs.aws.amazon.com/cli/latest/reference/">--endpoint-url parameter</a>.  </note> When you put media data (fragments) on a stream, Kinesis Video Streams stores each incoming fragment and related metadata in what is called a "chunk." For more information, see <a href="https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_dataplane_PutMedia.html">PutMedia</a>. The <code>GetMedia</code> API returns a stream of these chunks starting from the chunk that you specify in the request.  The following limits apply when using the <code>GetMedia</code> API: <ul> <li> A client can call <code>GetMedia</code> up to five times per second per stream.  </li> <li> Kinesis Video Streams sends media data at a rate of up to 25 megabytes per second (or 200 megabits per second) during a <code>GetMedia</code> session.  </li> </ul> <note> If an error is thrown after invoking a Kinesis Video Streams media API, in addition to the HTTP status code and the response body, it includes the following pieces of information:  <ul> <li>  <code>x-amz-ErrorType</code> HTTP header – contains a more specific error type in addition to what the HTTP status code provides.  </li> <li>  <code>x-amz-RequestId</code> HTTP header – if you want to report an issue to AWS, the support team can better diagnose the problem if given the Request Id. </li> </ul> Both the HTTP status code and the ErrorType header can be utilized to make programmatic decisions about whether errors are retry-able and under what conditions, as well as provide information on what actions the client programmer might need to take in order to successfully try again. For more information, see the <b>Errors</b> section at the bottom of this topic, as well as <a href="https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/CommonErrors.html">Common Errors</a>.  </note>

        :param self:
        :param StartSelector:  Identifies the starting chunk to get from the specified stream. :<br/>StreamARN:  The ARN of the stream from where you want to get the media content. If you don't specify the <code>streamARN</code>, you must specify the <code>streamName</code>.<br/>StreamName:  The Kinesis video stream name from where you want to get the media content. If you don't specify the <code>streamName</code>, you must specify the <code>streamARN</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ContinuationToken</i> Continuation token that Kinesis Video Streams returned in the previous <code>GetMedia</code> response. The <code>GetMedia</code> API then starts with the chunk identified by the continuation token.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StartTimestamp</i> A timestamp value. This value is required if you choose the PRODUCER_TIMESTAMP or the SERVER_TIMESTAMP as the <code>startSelectorType</code>. The <code>GetMedia</code> API then starts with the chunk containing the fragment that has the specified timestamp.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AfterFragmentNumber</i> Specifies the fragment number from where you want the <code>GetMedia</code> API to start returning the fragments. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StartSelectorType</i> Identifies the fragment on the Kinesis video stream where you want to start getting the data from. <ul> <li> NOW - Start with the latest chunk on the stream. </li> <li> EARLIEST - Start with earliest available chunk on the stream. </li> <li> FRAGMENT_NUMBER - Start with the chunk after a specific fragment. You must also specify the <code>AfterFragmentNumber</code> parameter. </li> <li> PRODUCER_TIMESTAMP or SERVER_TIMESTAMP - Start with the chunk containing a fragment with the specified producer or server timestamp. You specify the timestamp by adding <code>StartTimestamp</code>. </li> <li>  CONTINUATION_TOKEN - Read using the specified continuation token.  </li> </ul> <note> If you choose the NOW, EARLIEST, or CONTINUATION_TOKEN as the <code>startSelectorType</code>, you don't provide any additional information in the <code>startSelector</code>. </note><br/>
        :return: Payload:   The payload Kinesis Video Streams returns is a sequence of chunks from the specified stream. For information about the chunks, see . The chunks that Kinesis Video Streams returns in the <code>GetMedia</code> call also include the following additional Matroska (MKV) tags:  <ul> <li> AWS_KINESISVIDEO_CONTINUATION_TOKEN (UTF-8 string) - In the event your <code>GetMedia</code> call terminates, you can use this continuation token in your next request to get the next chunk where the last request terminated. </li> <li> AWS_KINESISVIDEO_MILLIS_BEHIND_NOW (UTF-8 string) - Client applications can use this tag value to determine how far behind the chunk returned in the response is from the latest chunk on the stream.  </li> <li> AWS_KINESISVIDEO_FRAGMENT_NUMBER - Fragment number returned in the chunk. </li> <li> AWS_KINESISVIDEO_SERVER_TIMESTAMP - Server timestamp of the fragment. </li> <li> AWS_KINESISVIDEO_PRODUCER_TIMESTAMP - Producer timestamp of the fragment. </li> </ul> The following tags will be present if an error occurs: <ul> <li> AWS_KINESISVIDEO_ERROR_CODE - String description of an error that caused GetMedia to stop. </li> <li> AWS_KINESISVIDEO_ERROR_ID: Integer code of the error. </li> </ul> The error codes are as follows: <ul> <li> 3002 - Error writing to the stream </li> <li> 4000 - Requested fragment is not found </li> <li> 4500 - Access denied for the stream's KMS key </li> <li> 4501 - Stream's KMS key is disabled </li> <li> 4502 - Validation error on the stream's KMS key </li> <li> 4503 - KMS key specified in the stream is unavailable </li> <li> 4504 - Invalid usage of the KMS key specified in the stream </li> <li> 4505 - Invalid state of the KMS key specified in the stream </li> <li> 4506 - Unable to find the KMS key specified in the stream </li> <li> 5000 - Internal error </li> </ul><br/>ContentType:  The content type of the requested media.<br/>        """
        pass





class KinesisVideoSignalingChannels(BaseClient):
    r"""Kinesis Video Streams Signaling Service is a intermediate service that establishes a communication channel for discovering peers, transmitting offers and answers in order to establish peer-to-peer connection in webRTC technology."""




    class GetIceServerConfigRequest(Mapping):
        pass
    
    class GetIceServerConfigResponse(Mapping):
        pass
    
    class SendAlexaOfferToMasterRequest(Mapping):
        pass
    
    class SendAlexaOfferToMasterResponse(Mapping):
        pass
    
    def get_ice_server_config(self, ChannelARN: str, ClientId: str=None, Service: str=None, Username: str=None) -> GetIceServerConfigResponse:
        r"""Gets the Interactive Connectivity Establishment (ICE) server configuration information, including URIs, username, and password which can be used to configure the WebRTC connection. The ICE component uses this configuration information to setup the WebRTC connection, including authenticating with the Traversal Using Relays around NAT (TURN) relay server.  TURN is a protocol that is used to improve the connectivity of peer-to-peer applications. By providing a cloud-based relay service, TURN ensures that a connection can be established even when one or more peers are incapable of a direct peer-to-peer connection. For more information, see <a href="https://tools.ietf.org/html/draft-uberti-rtcweb-turn-rest-00">A REST API For Access To TURN Services</a>.  You can invoke this API to establish a fallback mechanism in case either of the peers is unable to establish a direct peer-to-peer connection over a signaling channel. You must specify either a signaling channel ARN or the client ID in order to invoke this API.

        :param self:
        :param Username:  An optional user ID to be associated with the credentials.<br/>Service:  Specifies the desired service. Currently, <code>TURN</code> is the only valid value.<br/>ClientId:  Unique identifier for the viewer. Must be unique within the signaling channel.<br/>ChannelARN:  The ARN of the signaling channel to be used for the peer-to-peer connection between configured peers. <br/>
        :return: IceServerList:  The list of ICE server information objects.<br/>        """
        pass

    def send_alexa_offer_to_master(self, MessagePayload: str, SenderClientId: str, ChannelARN: str) -> SendAlexaOfferToMasterResponse:
        r"""This API allows you to connect WebRTC-enabled devices with Alexa display devices. When invoked, it sends the Alexa Session Description Protocol (SDP) offer to the master peer. The offer is delivered as soon as the master is connected to the specified signaling channel. This API returns the SDP answer from the connected master. If the master is not connected to the signaling channel, redelivery requests are made until the message expires.

        :param self:
        :param MessagePayload:  The base64-encoded SDP offer content.<br/>SenderClientId:  The unique identifier for the sender client.<br/>ChannelARN:  The ARN of the signaling channel by which Alexa and the master peer communicate.<br/>
        :return: Answer:  The base64-encoded SDP answer content.<br/>        """
        pass





class KinesisAnalytics(BaseClient):
    r"""<fullname>Amazon Kinesis Analytics</fullname>  <b>Overview</b>  <note> This documentation is for version 1 of the Amazon Kinesis Data Analytics API, which only supports SQL applications. Version 2 of the API supports SQL and Java applications. For more information about version 2, see <a href="/kinesisanalytics/latest/apiv2/Welcome.html">Amazon Kinesis Data Analytics API V2 Documentation</a>. </note> This is the <i>Amazon Kinesis Analytics v1 API Reference</i>. The Amazon Kinesis Analytics Developer Guide provides additional information. """




    class AddApplicationCloudWatchLoggingOptionRequest(Mapping):
        pass
    
    class AddApplicationCloudWatchLoggingOptionResponse(Mapping):
        pass
    
    class ApplicationVersionId(object):
        pass
    
    class CloudWatchLoggingOption(Mapping):
        pass
    
    class AddApplicationInputRequest(Mapping):
        pass
    
    class AddApplicationInputResponse(Mapping):
        pass
    
    class Input(Mapping):
        pass
    
    class AddApplicationInputProcessingConfigurationRequest(Mapping):
        pass
    
    class AddApplicationInputProcessingConfigurationResponse(Mapping):
        pass
    
    class InputProcessingConfiguration(Mapping):
        pass
    
    class AddApplicationOutputRequest(Mapping):
        pass
    
    class AddApplicationOutputResponse(Mapping):
        pass
    
    class Output(Mapping):
        pass
    
    class AddApplicationReferenceDataSourceRequest(Mapping):
        pass
    
    class AddApplicationReferenceDataSourceResponse(Mapping):
        pass
    
    class ReferenceDataSource(Mapping):
        pass
    
    class CreateApplicationRequest(Mapping):
        pass
    
    class CreateApplicationResponse(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class DeleteApplicationRequest(Mapping):
        pass
    
    class DeleteApplicationResponse(Mapping):
        pass
    
    class Timestamp(object):
        pass
    
    class DeleteApplicationCloudWatchLoggingOptionRequest(Mapping):
        pass
    
    class DeleteApplicationCloudWatchLoggingOptionResponse(Mapping):
        pass
    
    class DeleteApplicationInputProcessingConfigurationRequest(Mapping):
        pass
    
    class DeleteApplicationInputProcessingConfigurationResponse(Mapping):
        pass
    
    class DeleteApplicationOutputRequest(Mapping):
        pass
    
    class DeleteApplicationOutputResponse(Mapping):
        pass
    
    class DeleteApplicationReferenceDataSourceRequest(Mapping):
        pass
    
    class DeleteApplicationReferenceDataSourceResponse(Mapping):
        pass
    
    class DescribeApplicationRequest(Mapping):
        pass
    
    class DescribeApplicationResponse(Mapping):
        pass
    
    class DiscoverInputSchemaRequest(Mapping):
        pass
    
    class DiscoverInputSchemaResponse(Mapping):
        pass
    
    class InputStartingPositionConfiguration(Mapping):
        pass
    
    class S3Configuration(Mapping):
        pass
    
    class ListApplicationsRequest(Mapping):
        pass
    
    class ListApplicationsResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class StartApplicationRequest(Mapping):
        pass
    
    class StartApplicationResponse(Mapping):
        pass
    
    class InputConfiguration(Mapping):
        pass
    
    class StopApplicationRequest(Mapping):
        pass
    
    class StopApplicationResponse(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateApplicationRequest(Mapping):
        pass
    
    class UpdateApplicationResponse(Mapping):
        pass
    
    class ApplicationUpdate(Mapping):
        pass
    
    def add_application_cloud_watch_logging_option(self, CloudWatchLoggingOption: CloudWatchLoggingOption, CurrentApplicationVersionId: ApplicationVersionId, ApplicationName: str) -> AddApplicationCloudWatchLoggingOptionResponse:
        r"""<note> This documentation is for version 1 of the Amazon Kinesis Data Analytics API, which only supports SQL applications. Version 2 of the API supports SQL and Java applications. For more information about version 2, see <a href="/kinesisanalytics/latest/apiv2/Welcome.html">Amazon Kinesis Data Analytics API V2 Documentation</a>. </note> Adds a CloudWatch log stream to monitor application configuration errors. For more information about using CloudWatch log streams with Amazon Kinesis Analytics applications, see <a href="https://docs.aws.amazon.com/kinesisanalytics/latest/dev/cloudwatch-logs.html">Working with Amazon CloudWatch Logs</a>.

        :param self:
        :param CloudWatchLoggingOption:  Provides the CloudWatch log stream Amazon Resource Name (ARN) and the IAM role ARN. Note: To write application messages to CloudWatch, the IAM role that is used must have the <code>PutLogEvents</code> policy action enabled.:<br/>CurrentApplicationVersionId:  The version ID of the Kinesis Analytics application.<br/>ApplicationName:  The Kinesis Analytics application name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleARN</i> IAM ARN of the role to use to send application messages. Note: To write application messages to CloudWatch, the IAM role that is used must have the <code>PutLogEvents</code> policy action enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogStreamARN</i> ARN of the CloudWatch log to receive application messages.<br/>
        :return:         """
        pass

    def add_application_input(self, Input: Input, CurrentApplicationVersionId: ApplicationVersionId, ApplicationName: str) -> AddApplicationInputResponse:
        r"""<note> This documentation is for version 1 of the Amazon Kinesis Data Analytics API, which only supports SQL applications. Version 2 of the API supports SQL and Java applications. For more information about version 2, see <a href="/kinesisanalytics/latest/apiv2/Welcome.html">Amazon Kinesis Data Analytics API V2 Documentation</a>. </note>  Adds a streaming source to your Amazon Kinesis application. For conceptual information, see <a href="https://docs.aws.amazon.com/kinesisanalytics/latest/dev/how-it-works-input.html">Configuring Application Input</a>.  You can add a streaming source either when you create an application or you can use this operation to add a streaming source after you create an application. For more information, see <a href="https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_CreateApplication.html">CreateApplication</a>. Any configuration update, including adding a streaming source using this operation, results in a new version of the application. You can use the <a href="https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_DescribeApplication.html">DescribeApplication</a> operation to find the current application version.  This operation requires permissions to perform the <code>kinesisanalytics:AddApplicationInput</code> action.

        :param self:
        :param Input:  The <a href="https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_Input.html">Input</a> to add.:<br/>CurrentApplicationVersionId:  Current version of your Amazon Kinesis Analytics application. You can use the <a href="https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_DescribeApplication.html">DescribeApplication</a> operation to find the current application version.<br/>ApplicationName:  Name of your existing Amazon Kinesis Analytics application to which you want to add the streaming source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InputSchema</i> Describes the format of the data in the streaming source, and how each data element maps to corresponding columns in the in-application stream that is being created. Also used to describe the format of the reference data source.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>InputSchema</b>: Describes the format of the data in the streaming source, and how each data element maps to corresponding columns in the in-application stream that is being created. Also used to describe the format of the reference data source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InputParallelism</i> Describes the number of in-application streams to create.  Data from your source is routed to these in-application input streams.  (see <a href="https://docs.aws.amazon.com/kinesisanalytics/latest/dev/how-it-works-input.html">Configuring Application Input</a>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>InputParallelism</b>: Describes the number of in-application streams to create.  Data from your source is routed to these in-application input streams.  (see <a href="https://docs.aws.amazon.com/kinesisanalytics/latest/dev/how-it-works-input.html">Configuring Application Input</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KinesisFirehoseInput</i> If the streaming source is an Amazon Kinesis Firehose delivery stream, identifies the delivery stream's ARN and an IAM role that enables Amazon Kinesis Analytics to access the stream on your behalf. Note: Either <code>KinesisStreamsInput</code> or <code>KinesisFirehoseInput</code> is required.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>KinesisFirehoseInput</b>: If the streaming source is an Amazon Kinesis Firehose delivery stream, identifies the delivery stream's ARN and an IAM role that enables Amazon Kinesis Analytics to access the stream on your behalf. Note: Either <code>KinesisStreamsInput</code> or <code>KinesisFirehoseInput</code> is required.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KinesisStreamsInput</i> If the streaming source is an Amazon Kinesis stream, identifies the stream's Amazon Resource Name (ARN) and an IAM role that enables Amazon Kinesis Analytics to access the stream on your behalf. Note: Either <code>KinesisStreamsInput</code> or <code>KinesisFirehoseInput</code> is required.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>KinesisStreamsInput</b>: If the streaming source is an Amazon Kinesis stream, identifies the stream's Amazon Resource Name (ARN) and an IAM role that enables Amazon Kinesis Analytics to access the stream on your behalf. Note: Either <code>KinesisStreamsInput</code> or <code>KinesisFirehoseInput</code> is required.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InputProcessingConfiguration</i> The <a href="https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_InputProcessingConfiguration.html">InputProcessingConfiguration</a> for the input. An input processor transforms records as they are received from the stream, before the application's SQL code executes. Currently, the only input processing configuration available is <a href="https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_InputLambdaProcessor.html">InputLambdaProcessor</a>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>InputProcessingConfiguration</b>: The <a href="https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_InputProcessingConfiguration.html">InputProcessingConfiguration</a> for the input. An input processor transforms records as they are received from the stream, before the application's SQL code executes. Currently, the only input processing configuration available is <a href="https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_InputLambdaProcessor.html">InputLambdaProcessor</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NamePrefix</i> Name prefix to use when creating an in-application stream. Suppose that you specify a prefix "MyInApplicationStream." Amazon Kinesis Analytics then creates one or more (as per the <code>InputParallelism</code> count you specified) in-application streams with names "MyInApplicationStream_001," "MyInApplicationStream_002," and so on. <br/>The <a href="https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_InputLambdaProcessor.html">InputLambdaProcessor</a> that is used to preprocess the records in the stream before being processed by your application code.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>InputLambdaProcessor</b>: The <a href="https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_InputLambdaProcessor.html">InputLambdaProcessor</a> that is used to preprocess the records in the stream before being processed by your application code.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleARN</i> ARN of the IAM role that Amazon Kinesis Analytics can assume to access the stream on your behalf. You need to grant the necessary permissions to this role.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceARN</i> ARN of the input Amazon Kinesis stream to read.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleARN</i> ARN of the IAM role that Amazon Kinesis Analytics can assume to access the stream on your behalf. You need to make sure that the role has the necessary permissions to access the stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceARN</i> ARN of the input delivery stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Count</i> Number of in-application streams to create. For more information, see <a href="https://docs.aws.amazon.com/kinesisanalytics/latest/dev/limits.html">Limits</a>. <br/>Specifies the format of the records on the streaming source.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RecordFormat</b>: Specifies the format of the records on the streaming source.
        :return:         """
        pass

    def add_application_input_processing_configuration(self, InputProcessingConfiguration: InputProcessingConfiguration, InputId: str, CurrentApplicationVersionId: ApplicationVersionId, ApplicationName: str) -> AddApplicationInputProcessingConfigurationResponse:
        r"""<note> This documentation is for version 1 of the Amazon Kinesis Data Analytics API, which only supports SQL applications. Version 2 of the API supports SQL and Java applications. For more information about version 2, see <a href="/kinesisanalytics/latest/apiv2/Welcome.html">Amazon Kinesis Data Analytics API V2 Documentation</a>. </note> Adds an <a href="https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_InputProcessingConfiguration.html">InputProcessingConfiguration</a> to an application. An input processor preprocesses records on the input stream before the application's SQL code executes. Currently, the only input processor available is <a href="https://docs.aws.amazon.com/lambda/">AWS Lambda</a>.

        :param self:
        :param InputProcessingConfiguration:  The <a href="https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_InputProcessingConfiguration.html">InputProcessingConfiguration</a> to add to the application.:<br/>InputId:  The ID of the input configuration to add the input processing configuration to. You can get a list of the input IDs for an application using the <a href="https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_DescribeApplication.html">DescribeApplication</a> operation.<br/>CurrentApplicationVersionId:  Version of the application to which you want to add the input processing configuration. You can use the <a href="https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_DescribeApplication.html">DescribeApplication</a> operation to get the current application version. If the version specified is not the current version, the <code>ConcurrentModificationException</code> is returned.<br/>ApplicationName:  Name of the application to which you want to add the input processing configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InputLambdaProcessor</i> The <a href="https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_InputLambdaProcessor.html">InputLambdaProcessor</a> that is used to preprocess the records in the stream before being processed by your application code.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>InputLambdaProcessor</b>: The <a href="https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_InputLambdaProcessor.html">InputLambdaProcessor</a> that is used to preprocess the records in the stream before being processed by your application code.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleARN</i> The ARN of the IAM role that is used to access the AWS Lambda function.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceARN</i> The ARN of the <a href="https://docs.aws.amazon.com/lambda/">AWS Lambda</a> function that operates on records in the stream. <note> To specify an earlier version of the Lambda function than the latest, include the Lambda function version in the Lambda function ARN. For more information about Lambda ARNs, see <a href="/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-lambda">Example ARNs: AWS Lambda</a>  </note><br/>
        :return:         """
        pass

    def add_application_output(self, Output: Output, CurrentApplicationVersionId: ApplicationVersionId, ApplicationName: str) -> AddApplicationOutputResponse:
        r"""<note> This documentation is for version 1 of the Amazon Kinesis Data Analytics API, which only supports SQL applications. Version 2 of the API supports SQL and Java applications. For more information about version 2, see <a href="/kinesisanalytics/latest/apiv2/Welcome.html">Amazon Kinesis Data Analytics API V2 Documentation</a>. </note> Adds an external destination to your Amazon Kinesis Analytics application. If you want Amazon Kinesis Analytics to deliver data from an in-application stream within your application to an external destination (such as an Amazon Kinesis stream, an Amazon Kinesis Firehose delivery stream, or an AWS Lambda function), you add the relevant configuration to your application using this operation. You can configure one or more outputs for your application. Each output configuration maps an in-application stream and an external destination.  You can use one of the output configurations to deliver data from your in-application error stream to an external destination so that you can analyze the errors. For more information, see <a href="https://docs.aws.amazon.com/kinesisanalytics/latest/dev/how-it-works-output.html">Understanding Application Output (Destination)</a>.   Any configuration update, including adding a streaming source using this operation, results in a new version of the application. You can use the <a href="https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_DescribeApplication.html">DescribeApplication</a> operation to find the current application version. For the limits on the number of application inputs and outputs you can configure, see <a href="https://docs.aws.amazon.com/kinesisanalytics/latest/dev/limits.html">Limits</a>. This operation requires permissions to perform the <code>kinesisanalytics:AddApplicationOutput</code> action.

        :param self:
        :param Output:  An array of objects, each describing one output configuration. In the output configuration, you specify the name of an in-application stream, a destination (that is, an Amazon Kinesis stream, an Amazon Kinesis Firehose delivery stream, or an AWS Lambda function), and record the formation to use when writing to the destination.:<br/>CurrentApplicationVersionId:  Version of the application to which you want to add the output configuration. You can use the <a href="https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_DescribeApplication.html">DescribeApplication</a> operation to get the current application version. If the version specified is not the current version, the <code>ConcurrentModificationException</code> is returned. <br/>ApplicationName:  Name of the application to which you want to add the output configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DestinationSchema</i> Describes the data format when records are written to the destination. For more information, see <a href="https://docs.aws.amazon.com/kinesisanalytics/latest/dev/how-it-works-output.html">Configuring Application Output</a>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DestinationSchema</b>: Describes the data format when records are written to the destination. For more information, see <a href="https://docs.aws.amazon.com/kinesisanalytics/latest/dev/how-it-works-output.html">Configuring Application Output</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LambdaOutput</i> Identifies an AWS Lambda function as the destination.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>LambdaOutput</b>: Identifies an AWS Lambda function as the destination.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KinesisFirehoseOutput</i> Identifies an Amazon Kinesis Firehose delivery stream as the destination.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>KinesisFirehoseOutput</b>: Identifies an Amazon Kinesis Firehose delivery stream as the destination.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KinesisStreamsOutput</i> Identifies an Amazon Kinesis stream as the destination.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>KinesisStreamsOutput</b>: Identifies an Amazon Kinesis stream as the destination.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> Name of the in-application stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleARN</i> ARN of the IAM role that Amazon Kinesis Analytics can assume to write to the destination stream on your behalf. You need to grant the necessary permissions to this role.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceARN</i> ARN of the destination Amazon Kinesis stream to write to.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleARN</i> ARN of the IAM role that Amazon Kinesis Analytics can assume to write to the destination stream on your behalf. You need to grant the necessary permissions to this role.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceARN</i> ARN of the destination Amazon Kinesis Firehose delivery stream to write to.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleARN</i> ARN of the IAM role that Amazon Kinesis Analytics can assume to write to the destination function on your behalf. You need to grant the necessary permissions to this role. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceARN</i> Amazon Resource Name (ARN) of the destination Lambda function to write to. <note> To specify an earlier version of the Lambda function than the latest, include the Lambda function version in the Lambda function ARN. For more information about Lambda ARNs, see <a href="/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-lambda">Example ARNs: AWS Lambda</a>  </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RecordFormatType</i> Specifies the format of the records on the output stream.<br/>
        :return:         """
        pass

    def add_application_reference_data_source(self, ReferenceDataSource: ReferenceDataSource, CurrentApplicationVersionId: ApplicationVersionId, ApplicationName: str) -> AddApplicationReferenceDataSourceResponse:
        r"""<note> This documentation is for version 1 of the Amazon Kinesis Data Analytics API, which only supports SQL applications. Version 2 of the API supports SQL and Java applications. For more information about version 2, see <a href="/kinesisanalytics/latest/apiv2/Welcome.html">Amazon Kinesis Data Analytics API V2 Documentation</a>. </note> Adds a reference data source to an existing application. Amazon Kinesis Analytics reads reference data (that is, an Amazon S3 object) and creates an in-application table within your application. In the request, you provide the source (S3 bucket name and object key name), name of the in-application table to create, and the necessary mapping information that describes how data in Amazon S3 object maps to columns in the resulting in-application table.  For conceptual information, see <a href="https://docs.aws.amazon.com/kinesisanalytics/latest/dev/how-it-works-input.html">Configuring Application Input</a>. For the limits on data sources you can add to your application, see <a href="https://docs.aws.amazon.com/kinesisanalytics/latest/dev/limits.html">Limits</a>.   This operation requires permissions to perform the <code>kinesisanalytics:AddApplicationOutput</code> action. 

        :param self:
        :param ReferenceDataSource:  The reference data source can be an object in your Amazon S3 bucket. Amazon Kinesis Analytics reads the object and copies the data into the in-application table that is created. You provide an S3 bucket, object key name, and the resulting in-application table that is created. You must also provide an IAM role with the necessary permissions that Amazon Kinesis Analytics can assume to read the object from your S3 bucket on your behalf.:<br/>CurrentApplicationVersionId:  Version of the application for which you are adding the reference data source. You can use the <a href="https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_DescribeApplication.html">DescribeApplication</a> operation to get the current application version. If the version specified is not the current version, the <code>ConcurrentModificationException</code> is returned.<br/>ApplicationName:  Name of an existing application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReferenceSchema</i> Describes the format of the data in the streaming source, and how each data element maps to corresponding columns created in the in-application stream.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ReferenceSchema</b>: Describes the format of the data in the streaming source, and how each data element maps to corresponding columns created in the in-application stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3ReferenceDataSource</i> Identifies the S3 bucket and object that contains the reference data. Also identifies the IAM role Amazon Kinesis Analytics can assume to read this object on your behalf. An Amazon Kinesis Analytics application loads reference data only once. If the data changes, you call the <code>UpdateApplication</code> operation to trigger reloading of data into your application. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3ReferenceDataSource</b>: Identifies the S3 bucket and object that contains the reference data. Also identifies the IAM role Amazon Kinesis Analytics can assume to read this object on your behalf. An Amazon Kinesis Analytics application loads reference data only once. If the data changes, you call the <code>UpdateApplication</code> operation to trigger reloading of data into your application. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TableName</i> Name of the in-application table to create.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReferenceRoleARN</i> ARN of the IAM role that the service can assume to read data on your behalf. This role must have permission for the <code>s3:GetObject</code> action on the object and trust policy that allows Amazon Kinesis Analytics service principal to assume this role.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FileKey</i> Object key name containing reference data.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BucketARN</i> Amazon Resource Name (ARN) of the S3 bucket.<br/>Specifies the format of the records on the streaming source.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RecordFormat</b>: Specifies the format of the records on the streaming source.
        :return:         """
        pass

    def create_application(self, ApplicationName: str, ApplicationDescription: str=None, Inputs: List[Input]=None, Outputs: List[Output]=None, CloudWatchLoggingOptions: List[CloudWatchLoggingOption]=None, ApplicationCode: str=None, Tags: List[Tag]=None) -> CreateApplicationResponse:
        r"""<note> This documentation is for version 1 of the Amazon Kinesis Data Analytics API, which only supports SQL applications. Version 2 of the API supports SQL and Java applications. For more information about version 2, see <a href="/kinesisanalytics/latest/apiv2/Welcome.html">Amazon Kinesis Data Analytics API V2 Documentation</a>. </note>  Creates an Amazon Kinesis Analytics application. You can configure each application with one streaming source as input, application code to process the input, and up to three destinations where you want Amazon Kinesis Analytics to write the output data from your application. For an overview, see <a href="https://docs.aws.amazon.com/kinesisanalytics/latest/dev/how-it-works.html">How it Works</a>.  In the input configuration, you map the streaming source to an in-application stream, which you can think of as a constantly updating table. In the mapping, you must provide a schema for the in-application stream and map each data column in the in-application stream to a data element in the streaming source. Your application code is one or more SQL statements that read input data, transform it, and generate output. Your application code can create one or more SQL artifacts like SQL streams or pumps. In the output configuration, you can configure the application to write data from in-application streams created in your applications to up to three destinations.  To read data from your source stream or write data to destination streams, Amazon Kinesis Analytics needs your permissions. You grant these permissions by creating IAM roles. This operation requires permissions to perform the <code>kinesisanalytics:CreateApplication</code> action.   For introductory exercises to create an Amazon Kinesis Analytics application, see <a href="https://docs.aws.amazon.com/kinesisanalytics/latest/dev/getting-started.html">Getting Started</a>. 

        :param self:
        :param Tags:  A list of one or more tags to assign to the application. A tag is a key-value pair that identifies an application. Note that the maximum number of application tags includes system tags. The maximum number of user-defined application tags is 50. For more information, see <a href="https://docs.aws.amazon.com/kinesisanalytics/latest/dev/how-tagging.html">Using Tagging</a>.<br/>ApplicationCode:  One or more SQL statements that read input data, transform it, and generate output. For example, you can write a SQL statement that reads data from one in-application stream, generates a running average of the number of advertisement clicks by vendor, and insert resulting rows in another in-application stream using pumps. For more information about the typical pattern, see <a href="https://docs.aws.amazon.com/kinesisanalytics/latest/dev/how-it-works-app-code.html">Application Code</a>.  You can provide such series of SQL statements, where output of one statement can be used as the input for the next statement. You store intermediate results by creating in-application streams and pumps. Note that the application code must create the streams with names specified in the <code>Outputs</code>. For example, if your <code>Outputs</code> defines output streams named <code>ExampleOutputStream1</code> and <code>ExampleOutputStream2</code>, then your application code must create these streams. <br/>CloudWatchLoggingOptions:  Use this parameter to configure a CloudWatch log stream to monitor application configuration errors. For more information, see <a href="https://docs.aws.amazon.com/kinesisanalytics/latest/dev/cloudwatch-logs.html">Working with Amazon CloudWatch Logs</a>.<br/>Outputs:  You can configure application output to write data from any of the in-application streams to up to three destinations. These destinations can be Amazon Kinesis streams, Amazon Kinesis Firehose delivery streams, AWS Lambda destinations, or any combination of the three. In the configuration, you specify the in-application stream name, the destination stream or Lambda function Amazon Resource Name (ARN), and the format to use when writing data. You must also provide an IAM role that Amazon Kinesis Analytics can assume to write to the destination stream or Lambda function on your behalf. In the output configuration, you also provide the output stream or Lambda function ARN. For stream destinations, you provide the format of data in the stream (for example, JSON, CSV). You also must provide an IAM role that Amazon Kinesis Analytics can assume to write to the stream or Lambda function on your behalf.<br/>Inputs:  Use this parameter to configure the application input. You can configure your application to receive input from a single streaming source. In this configuration, you map this streaming source to an in-application stream that is created. Your application code can then query the in-application stream like a table (you can think of it as a constantly updating table). For the streaming source, you provide its Amazon Resource Name (ARN) and format of data on the stream (for example, JSON, CSV, etc.). You also must provide an IAM role that Amazon Kinesis Analytics can assume to read this stream on your behalf. To create the in-application stream, you need to specify a schema to transform your data into a schematized version used in SQL. In the schema, you provide the necessary mapping of the data elements in the streaming source to record columns in the in-app stream.<br/>ApplicationDescription:  Summary description of the application.<br/>ApplicationName:  Name of your Amazon Kinesis Analytics application (for example, <code>sample-app</code>).<br/>
        :return: ApplicationSummary:  In response to your <code>CreateApplication</code> request, Amazon Kinesis Analytics returns a response with a summary of the application it created, including the application Amazon Resource Name (ARN), name, and status.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationStatus</i> Status of the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationARN</i> ARN of the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationName</i> Name of the application.<br/>        """
        pass

    def delete_application(self, CreateTimestamp: Timestamp, ApplicationName: str) -> DeleteApplicationResponse:
        r"""<note> This documentation is for version 1 of the Amazon Kinesis Data Analytics API, which only supports SQL applications. Version 2 of the API supports SQL and Java applications. For more information about version 2, see <a href="/kinesisanalytics/latest/apiv2/Welcome.html">Amazon Kinesis Data Analytics API V2 Documentation</a>. </note> Deletes the specified application. Amazon Kinesis Analytics halts application execution and deletes the application, including any application artifacts (such as in-application streams, reference table, and application code). This operation requires permissions to perform the <code>kinesisanalytics:DeleteApplication</code> action.

        :param self:
        :param CreateTimestamp:   You can use the <code>DescribeApplication</code> operation to get this value. <br/>ApplicationName:  Name of the Amazon Kinesis Analytics application to delete.<br/>
        :return:         """
        pass

    def delete_application_cloud_watch_logging_option(self, CloudWatchLoggingOptionId: str, CurrentApplicationVersionId: ApplicationVersionId, ApplicationName: str) -> DeleteApplicationCloudWatchLoggingOptionResponse:
        r"""<note> This documentation is for version 1 of the Amazon Kinesis Data Analytics API, which only supports SQL applications. Version 2 of the API supports SQL and Java applications. For more information about version 2, see <a href="/kinesisanalytics/latest/apiv2/Welcome.html">Amazon Kinesis Data Analytics API V2 Documentation</a>. </note> Deletes a CloudWatch log stream from an application. For more information about using CloudWatch log streams with Amazon Kinesis Analytics applications, see <a href="https://docs.aws.amazon.com/kinesisanalytics/latest/dev/cloudwatch-logs.html">Working with Amazon CloudWatch Logs</a>.

        :param self:
        :param CloudWatchLoggingOptionId:  The <code>CloudWatchLoggingOptionId</code> of the CloudWatch logging option to delete. You can get the <code>CloudWatchLoggingOptionId</code> by using the <a href="https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_DescribeApplication.html">DescribeApplication</a> operation. <br/>CurrentApplicationVersionId:  The version ID of the Kinesis Analytics application.<br/>ApplicationName:  The Kinesis Analytics application name.<br/>
        :return:         """
        pass

    def delete_application_input_processing_configuration(self, InputId: str, CurrentApplicationVersionId: ApplicationVersionId, ApplicationName: str) -> DeleteApplicationInputProcessingConfigurationResponse:
        r"""<note> This documentation is for version 1 of the Amazon Kinesis Data Analytics API, which only supports SQL applications. Version 2 of the API supports SQL and Java applications. For more information about version 2, see <a href="/kinesisanalytics/latest/apiv2/Welcome.html">Amazon Kinesis Data Analytics API V2 Documentation</a>. </note> Deletes an <a href="https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_InputProcessingConfiguration.html">InputProcessingConfiguration</a> from an input.

        :param self:
        :param InputId:  The ID of the input configuration from which to delete the input processing configuration. You can get a list of the input IDs for an application by using the <a href="https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_DescribeApplication.html">DescribeApplication</a> operation.<br/>CurrentApplicationVersionId:  The version ID of the Kinesis Analytics application.<br/>ApplicationName:  The Kinesis Analytics application name.<br/>
        :return:         """
        pass

    def delete_application_output(self, OutputId: str, CurrentApplicationVersionId: ApplicationVersionId, ApplicationName: str) -> DeleteApplicationOutputResponse:
        r"""<note> This documentation is for version 1 of the Amazon Kinesis Data Analytics API, which only supports SQL applications. Version 2 of the API supports SQL and Java applications. For more information about version 2, see <a href="/kinesisanalytics/latest/apiv2/Welcome.html">Amazon Kinesis Data Analytics API V2 Documentation</a>. </note> Deletes output destination configuration from your application configuration. Amazon Kinesis Analytics will no longer write data from the corresponding in-application stream to the external output destination. This operation requires permissions to perform the <code>kinesisanalytics:DeleteApplicationOutput</code> action.

        :param self:
        :param OutputId:  The ID of the configuration to delete. Each output configuration that is added to the application, either when the application is created or later using the <a href="https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_AddApplicationOutput.html">AddApplicationOutput</a> operation, has a unique ID. You need to provide the ID to uniquely identify the output configuration that you want to delete from the application configuration. You can use the <a href="https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_DescribeApplication.html">DescribeApplication</a> operation to get the specific <code>OutputId</code>. <br/>CurrentApplicationVersionId:  Amazon Kinesis Analytics application version. You can use the <a href="https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_DescribeApplication.html">DescribeApplication</a> operation to get the current application version. If the version specified is not the current version, the <code>ConcurrentModificationException</code> is returned. <br/>ApplicationName:  Amazon Kinesis Analytics application name.<br/>
        :return:         """
        pass

    def delete_application_reference_data_source(self, ReferenceId: str, CurrentApplicationVersionId: ApplicationVersionId, ApplicationName: str) -> DeleteApplicationReferenceDataSourceResponse:
        r"""<note> This documentation is for version 1 of the Amazon Kinesis Data Analytics API, which only supports SQL applications. Version 2 of the API supports SQL and Java applications. For more information about version 2, see <a href="/kinesisanalytics/latest/apiv2/Welcome.html">Amazon Kinesis Data Analytics API V2 Documentation</a>. </note> Deletes a reference data source configuration from the specified application configuration. If the application is running, Amazon Kinesis Analytics immediately removes the in-application table that you created using the <a href="https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_AddApplicationReferenceDataSource.html">AddApplicationReferenceDataSource</a> operation.  This operation requires permissions to perform the <code>kinesisanalytics.DeleteApplicationReferenceDataSource</code> action.

        :param self:
        :param ReferenceId:  ID of the reference data source. When you add a reference data source to your application using the <a href="https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_AddApplicationReferenceDataSource.html">AddApplicationReferenceDataSource</a>, Amazon Kinesis Analytics assigns an ID. You can use the <a href="https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_DescribeApplication.html">DescribeApplication</a> operation to get the reference ID. <br/>CurrentApplicationVersionId:  Version of the application. You can use the <a href="https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_DescribeApplication.html">DescribeApplication</a> operation to get the current application version. If the version specified is not the current version, the <code>ConcurrentModificationException</code> is returned.<br/>ApplicationName:  Name of an existing application.<br/>
        :return:         """
        pass

    def describe_application(self, ApplicationName: str) -> DescribeApplicationResponse:
        r"""<note> This documentation is for version 1 of the Amazon Kinesis Data Analytics API, which only supports SQL applications. Version 2 of the API supports SQL and Java applications. For more information about version 2, see <a href="/kinesisanalytics/latest/apiv2/Welcome.html">Amazon Kinesis Data Analytics API V2 Documentation</a>. </note> Returns information about a specific Amazon Kinesis Analytics application. If you want to retrieve a list of all applications in your account, use the <a href="https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_ListApplications.html">ListApplications</a> operation. This operation requires permissions to perform the <code>kinesisanalytics:DescribeApplication</code> action. You can use <code>DescribeApplication</code> to get the current application versionId, which you need to call other operations such as <code>Update</code>. 

        :param self:
        :param ApplicationName:  Name of the application.<br/>
        :return: ApplicationDetail:  Provides a description of the application, such as the application Amazon Resource Name (ARN), status, latest version, and input and output configuration details.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationVersionId</i> Provides the current application version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationCode</i> Returns the application code that you provided to perform data analysis on any of the in-application streams in your application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudWatchLoggingOptionDescriptions</i> Describes the CloudWatch log streams that are configured to receive application messages. For more information about using CloudWatch log streams with Amazon Kinesis Analytics applications, see <a href="https://docs.aws.amazon.com/kinesisanalytics/latest/dev/cloudwatch-logs.html">Working with Amazon CloudWatch Logs</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReferenceDataSourceDescriptions</i> Describes reference data sources configured for the application. For more information, see <a href="https://docs.aws.amazon.com/kinesisanalytics/latest/dev/how-it-works-input.html">Configuring Application Input</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OutputDescriptions</i> Describes the application output configuration. For more information, see <a href="https://docs.aws.amazon.com/kinesisanalytics/latest/dev/how-it-works-output.html">Configuring Application Output</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InputDescriptions</i> Describes the application input configuration. For more information, see <a href="https://docs.aws.amazon.com/kinesisanalytics/latest/dev/how-it-works-input.html">Configuring Application Input</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdateTimestamp</i> Time stamp when the application was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreateTimestamp</i> Time stamp when the application version was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationStatus</i> Status of the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationARN</i> ARN of the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationDescription</i> Description of the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationName</i> Name of the application.<br/>        """
        pass

    def discover_input_schema(self, ResourceARN: str=None, RoleARN: str=None, InputStartingPositionConfiguration: InputStartingPositionConfiguration=None, S3Configuration: S3Configuration=None, InputProcessingConfiguration: InputProcessingConfiguration=None) -> DiscoverInputSchemaResponse:
        r"""<note> This documentation is for version 1 of the Amazon Kinesis Data Analytics API, which only supports SQL applications. Version 2 of the API supports SQL and Java applications. For more information about version 2, see <a href="/kinesisanalytics/latest/apiv2/Welcome.html">Amazon Kinesis Data Analytics API V2 Documentation</a>. </note> Infers a schema by evaluating sample records on the specified streaming source (Amazon Kinesis stream or Amazon Kinesis Firehose delivery stream) or S3 object. In the response, the operation returns the inferred schema and also the sample records that the operation used to infer the schema.  You can use the inferred schema when configuring a streaming source for your application. For conceptual information, see <a href="https://docs.aws.amazon.com/kinesisanalytics/latest/dev/how-it-works-input.html">Configuring Application Input</a>. Note that when you create an application using the Amazon Kinesis Analytics console, the console uses this operation to infer a schema and show it in the console user interface.   This operation requires permissions to perform the <code>kinesisanalytics:DiscoverInputSchema</code> action. 

        :param self:
        :param InputProcessingConfiguration:  The <a href="https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_InputProcessingConfiguration.html">InputProcessingConfiguration</a> to use to preprocess the records before discovering the schema of the records.:<br/>S3Configuration:  Specify this parameter to discover a schema from data in an Amazon S3 object.:<br/>InputStartingPositionConfiguration:  Point at which you want Amazon Kinesis Analytics to start reading records from the specified streaming source discovery purposes.:<br/>RoleARN:  ARN of the IAM role that Amazon Kinesis Analytics can assume to access the stream on your behalf.<br/>ResourceARN:  Amazon Resource Name (ARN) of the streaming source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InputStartingPosition</i> The starting position on the stream. <ul> <li>  <code>NOW</code> - Start reading just after the most recent record in the stream, start at the request time stamp that the customer issued. </li> <li>  <code>TRIM_HORIZON</code> - Start reading at the last untrimmed record in the stream, which is the oldest record available in the stream. This option is not available for an Amazon Kinesis Firehose delivery stream. </li> <li>  <code>LAST_STOPPED_POINT</code> - Resume reading from where the application last stopped reading. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FileKey</i> The name of the object that contains the data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BucketARN</i> ARN of the S3 bucket that contains the data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleARN</i> IAM ARN of the role used to access the data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InputLambdaProcessor</i> The <a href="https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_InputLambdaProcessor.html">InputLambdaProcessor</a> that is used to preprocess the records in the stream before being processed by your application code.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>InputLambdaProcessor</b>: The <a href="https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_InputLambdaProcessor.html">InputLambdaProcessor</a> that is used to preprocess the records in the stream before being processed by your application code.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleARN</i> The ARN of the IAM role that is used to access the AWS Lambda function.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceARN</i> The ARN of the <a href="https://docs.aws.amazon.com/lambda/">AWS Lambda</a> function that operates on records in the stream. <note> To specify an earlier version of the Lambda function than the latest, include the Lambda function version in the Lambda function ARN. For more information about Lambda ARNs, see <a href="/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-lambda">Example ARNs: AWS Lambda</a>  </note><br/>
        :return: RawInputRecords:  Raw stream data that was sampled to infer the schema.<br/>ProcessedInputRecords:  Stream data that was modified by the processor specified in the <code>InputProcessingConfiguration</code> parameter.<br/>ParsedInputRecords:  An array of elements, where each element corresponds to a row in a stream record (a stream record can have more than one row).<br/>InputSchema:  Schema inferred from the streaming source. It identifies the format of the data in the streaming source and how each data element maps to corresponding columns in the in-application stream that you can create.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecordColumns</i> A list of <code>RecordColumn</code> objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecordEncoding</i> Specifies the encoding of the records in the streaming source. For example, UTF-8.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecordFormat</i> Specifies the format of the records on the streaming source.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RecordFormat</b>: Specifies the format of the records on the streaming source.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RecordFormatType</i> The type of record format.<br/>When configuring application input at the time of creating or updating an application, provides additional mapping information specific to the record format (such as JSON, CSV, or record fields delimited by some delimiter) on the streaming source.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>MappingParameters</b>: When configuring application input at the time of creating or updating an application, provides additional mapping information specific to the record format (such as JSON, CSV, or record fields delimited by some delimiter) on the streaming source.        """
        pass

    def list_applications(self, Limit: int=None, ExclusiveStartApplicationName: str=None) -> ListApplicationsResponse:
        r"""<note> This documentation is for version 1 of the Amazon Kinesis Data Analytics API, which only supports SQL applications. Version 2 of the API supports SQL and Java applications. For more information about version 2, see <a href="/kinesisanalytics/latest/apiv2/Welcome.html">Amazon Kinesis Data Analytics API V2 Documentation</a>. </note> Returns a list of Amazon Kinesis Analytics applications in your account. For each application, the response includes the application name, Amazon Resource Name (ARN), and status. If the response returns the <code>HasMoreApplications</code> value as true, you can send another request by adding the <code>ExclusiveStartApplicationName</code> in the request body, and set the value of this to the last application name from the previous response.  If you want detailed information about a specific application, use <a href="https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_DescribeApplication.html">DescribeApplication</a>. This operation requires permissions to perform the <code>kinesisanalytics:ListApplications</code> action.

        :param self:
        :param ExclusiveStartApplicationName:  Name of the application to start the list with. When using pagination to retrieve the list, you don't need to specify this parameter in the first request. However, in subsequent requests, you add the last application name from the previous response to get the next page of applications.<br/>Limit:  Maximum number of applications to list.<br/>
        :return: HasMoreApplications:  Returns true if there are more applications to retrieve.<br/>ApplicationSummaries:  List of <code>ApplicationSummary</code> objects. <br/>        """
        pass

    def list_tags_for_resource(self, ResourceARN: str) -> ListTagsForResourceResponse:
        r"""Retrieves the list of key-value tags assigned to the application. For more information, see <a href="https://docs.aws.amazon.com/kinesisanalytics/latest/dev/how-tagging.html">Using Tagging</a>.

        :param self:
        :param ResourceARN:  The ARN of the application for which to retrieve tags.<br/>
        :return: Tags:  The key-value tags assigned to the application.<br/>        """
        pass

    def start_application(self, InputConfigurations: List[InputConfiguration], ApplicationName: str) -> StartApplicationResponse:
        r"""<note> This documentation is for version 1 of the Amazon Kinesis Data Analytics API, which only supports SQL applications. Version 2 of the API supports SQL and Java applications. For more information about version 2, see <a href="/kinesisanalytics/latest/apiv2/Welcome.html">Amazon Kinesis Data Analytics API V2 Documentation</a>. </note> Starts the specified Amazon Kinesis Analytics application. After creating an application, you must exclusively call this operation to start your application. After the application starts, it begins consuming the input data, processes it, and writes the output to the configured destination.  The application status must be <code>READY</code> for you to start an application. You can get the application status in the console or using the <a href="https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_DescribeApplication.html">DescribeApplication</a> operation. After you start the application, you can stop the application from processing the input by calling the <a href="https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_StopApplication.html">StopApplication</a> operation. This operation requires permissions to perform the <code>kinesisanalytics:StartApplication</code> action.

        :param self:
        :param InputConfigurations:  Identifies the specific input, by ID, that the application starts consuming. Amazon Kinesis Analytics starts reading the streaming source associated with the input. You can also specify where in the streaming source you want Amazon Kinesis Analytics to start reading.<br/>ApplicationName:  Name of the application.<br/>
        :return:         """
        pass

    def stop_application(self, ApplicationName: str) -> StopApplicationResponse:
        r"""<note> This documentation is for version 1 of the Amazon Kinesis Data Analytics API, which only supports SQL applications. Version 2 of the API supports SQL and Java applications. For more information about version 2, see <a href="/kinesisanalytics/latest/apiv2/Welcome.html">Amazon Kinesis Data Analytics API V2 Documentation</a>. </note> Stops the application from processing input data. You can stop an application only if it is in the running state. You can use the <a href="https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_DescribeApplication.html">DescribeApplication</a> operation to find the application state. After the application is stopped, Amazon Kinesis Analytics stops reading data from the input, the application stops processing data, and there is no output written to the destination.  This operation requires permissions to perform the <code>kinesisanalytics:StopApplication</code> action.

        :param self:
        :param ApplicationName:  Name of the running application to stop.<br/>
        :return:         """
        pass

    def tag_resource(self, Tags: List[Tag], ResourceARN: str) -> TagResourceResponse:
        r"""Adds one or more key-value tags to a Kinesis Analytics application. Note that the maximum number of application tags includes system tags. The maximum number of user-defined application tags is 50. For more information, see <a href="https://docs.aws.amazon.com/kinesisanalytics/latest/dev/how-tagging.html">Using Tagging</a>.

        :param self:
        :param Tags:  The key-value tags to assign to the application.<br/>ResourceARN:  The ARN of the application to assign the tags.<br/>
        :return:         """
        pass

    def untag_resource(self, TagKeys: List[TagKey], ResourceARN: str) -> UntagResourceResponse:
        r"""Removes one or more tags from a Kinesis Analytics application. For more information, see <a href="https://docs.aws.amazon.com/kinesisanalytics/latest/dev/how-tagging.html">Using Tagging</a>.

        :param self:
        :param TagKeys:  A list of keys of tags to remove from the specified application.<br/>ResourceARN:  The ARN of the Kinesis Analytics application from which to remove the tags.<br/>
        :return:         """
        pass

    def update_application(self, ApplicationUpdate: ApplicationUpdate, CurrentApplicationVersionId: ApplicationVersionId, ApplicationName: str) -> UpdateApplicationResponse:
        r"""<note> This documentation is for version 1 of the Amazon Kinesis Data Analytics API, which only supports SQL applications. Version 2 of the API supports SQL and Java applications. For more information about version 2, see <a href="/kinesisanalytics/latest/apiv2/Welcome.html">Amazon Kinesis Data Analytics API V2 Documentation</a>. </note> Updates an existing Amazon Kinesis Analytics application. Using this API, you can update application code, input configuration, and output configuration.  Note that Amazon Kinesis Analytics updates the <code>CurrentApplicationVersionId</code> each time you update your application.  This operation requires permission for the <code>kinesisanalytics:UpdateApplication</code> action.

        :param self:
        :param ApplicationUpdate:  Describes application updates.:<br/>CurrentApplicationVersionId:  The current application version ID. You can use the <a href="https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_DescribeApplication.html">DescribeApplication</a> operation to get this value.<br/>ApplicationName:  Name of the Amazon Kinesis Analytics application to update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudWatchLoggingOptionUpdates</i> Describes application CloudWatch logging option updates.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReferenceDataSourceUpdates</i> Describes application reference data source updates.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OutputUpdates</i> Describes application output configuration updates.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationCodeUpdate</i> Describes application code updates.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InputUpdates</i> Describes application input configuration updates.<br/>
        :return:         """
        pass





class KinesisAnalyticsV2(BaseClient):
    r"""Amazon Kinesis Data Analytics is a fully managed service that you can use to process and analyze streaming data using Java, SQL, or Scala. The service enables you to quickly author and run Java, SQL, or Scala code against streaming sources to perform time series analytics, feed real-time dashboards, and create real-time metrics."""


    class ListApplicationSnapshotsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_application_snapshots` for valid parameters"""
            pass
    class ListApplicationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_applications` for valid parameters"""
            pass


    class AddApplicationCloudWatchLoggingOptionRequest(Mapping):
        pass
    
    class AddApplicationCloudWatchLoggingOptionResponse(Mapping):
        pass
    
    class ApplicationVersionId(object):
        pass
    
    class CloudWatchLoggingOption(Mapping):
        pass
    
    class AddApplicationInputRequest(Mapping):
        pass
    
    class AddApplicationInputResponse(Mapping):
        pass
    
    class Input(Mapping):
        pass
    
    class AddApplicationInputProcessingConfigurationRequest(Mapping):
        pass
    
    class AddApplicationInputProcessingConfigurationResponse(Mapping):
        pass
    
    class InputProcessingConfiguration(Mapping):
        pass
    
    class AddApplicationOutputRequest(Mapping):
        pass
    
    class AddApplicationOutputResponse(Mapping):
        pass
    
    class Output(Mapping):
        pass
    
    class AddApplicationReferenceDataSourceRequest(Mapping):
        pass
    
    class AddApplicationReferenceDataSourceResponse(Mapping):
        pass
    
    class ReferenceDataSource(Mapping):
        pass
    
    class AddApplicationVpcConfigurationRequest(Mapping):
        pass
    
    class AddApplicationVpcConfigurationResponse(Mapping):
        pass
    
    class VpcConfiguration(Mapping):
        pass
    
    class CreateApplicationRequest(Mapping):
        pass
    
    class CreateApplicationResponse(Mapping):
        pass
    
    class ApplicationConfiguration(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class CreateApplicationPresignedUrlRequest(Mapping):
        pass
    
    class CreateApplicationPresignedUrlResponse(Mapping):
        pass
    
    class SessionExpirationDurationInSeconds(object):
        pass
    
    class CreateApplicationSnapshotRequest(Mapping):
        pass
    
    class CreateApplicationSnapshotResponse(Mapping):
        pass
    
    class DeleteApplicationRequest(Mapping):
        pass
    
    class DeleteApplicationResponse(Mapping):
        pass
    
    class Timestamp(object):
        pass
    
    class DeleteApplicationCloudWatchLoggingOptionRequest(Mapping):
        pass
    
    class DeleteApplicationCloudWatchLoggingOptionResponse(Mapping):
        pass
    
    class DeleteApplicationInputProcessingConfigurationRequest(Mapping):
        pass
    
    class DeleteApplicationInputProcessingConfigurationResponse(Mapping):
        pass
    
    class DeleteApplicationOutputRequest(Mapping):
        pass
    
    class DeleteApplicationOutputResponse(Mapping):
        pass
    
    class DeleteApplicationReferenceDataSourceRequest(Mapping):
        pass
    
    class DeleteApplicationReferenceDataSourceResponse(Mapping):
        pass
    
    class DeleteApplicationSnapshotRequest(Mapping):
        pass
    
    class DeleteApplicationSnapshotResponse(Mapping):
        pass
    
    class DeleteApplicationVpcConfigurationRequest(Mapping):
        pass
    
    class DeleteApplicationVpcConfigurationResponse(Mapping):
        pass
    
    class DescribeApplicationRequest(Mapping):
        pass
    
    class DescribeApplicationResponse(Mapping):
        pass
    
    class BooleanObject(object):
        pass
    
    class DescribeApplicationSnapshotRequest(Mapping):
        pass
    
    class DescribeApplicationSnapshotResponse(Mapping):
        pass
    
    class DescribeApplicationVersionRequest(Mapping):
        pass
    
    class DescribeApplicationVersionResponse(Mapping):
        pass
    
    class DiscoverInputSchemaRequest(Mapping):
        pass
    
    class DiscoverInputSchemaResponse(Mapping):
        pass
    
    class InputStartingPositionConfiguration(Mapping):
        pass
    
    class S3Configuration(Mapping):
        pass
    
    class ListApplicationSnapshotsRequest(Mapping):
        pass
    
    class ListApplicationSnapshotsResponse(Mapping):
        pass
    
    class ListApplicationVersionsRequest(Mapping):
        pass
    
    class ListApplicationVersionsResponse(Mapping):
        pass
    
    class ListApplicationsRequest(Mapping):
        pass
    
    class ListApplicationsResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class RollbackApplicationRequest(Mapping):
        pass
    
    class RollbackApplicationResponse(Mapping):
        pass
    
    class StartApplicationRequest(Mapping):
        pass
    
    class StartApplicationResponse(Mapping):
        pass
    
    class RunConfiguration(Mapping):
        pass
    
    class StopApplicationRequest(Mapping):
        pass
    
    class StopApplicationResponse(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateApplicationRequest(Mapping):
        pass
    
    class UpdateApplicationResponse(Mapping):
        pass
    
    class ApplicationConfigurationUpdate(Mapping):
        pass
    
    class RunConfigurationUpdate(Mapping):
        pass
    
    class CloudWatchLoggingOptionUpdate(Mapping):
        pass
    
    class UpdateApplicationMaintenanceConfigurationRequest(Mapping):
        pass
    
    class UpdateApplicationMaintenanceConfigurationResponse(Mapping):
        pass
    
    class ApplicationMaintenanceConfigurationUpdate(Mapping):
        pass
    
    def add_application_cloud_watch_logging_option(self, CloudWatchLoggingOption: CloudWatchLoggingOption, ApplicationName: str, CurrentApplicationVersionId: ApplicationVersionId=None, ConditionalToken: str=None) -> AddApplicationCloudWatchLoggingOptionResponse:
        r"""Adds an Amazon CloudWatch log stream to monitor application configuration errors.

        :param self:
        :param ConditionalToken:  A value you use to implement strong concurrency for application updates. You must provide the <code>CurrentApplicationVersionId</code> or the <code>ConditionalToken</code>. You get the application's current <code>ConditionalToken</code> using <a>DescribeApplication</a>. For better concurrency support, use the <code>ConditionalToken</code> parameter instead of <code>CurrentApplicationVersionId</code>.<br/>CloudWatchLoggingOption:  Provides the Amazon CloudWatch log stream Amazon Resource Name (ARN). :<br/>CurrentApplicationVersionId:  The version ID of the Kinesis Data Analytics application. You must provide the <code>CurrentApplicationVersionId</code> or the <code>ConditionalToken</code>.You can retrieve the application version ID using <a>DescribeApplication</a>. For better concurrency support, use the <code>ConditionalToken</code> parameter instead of <code>CurrentApplicationVersionId</code>.<br/>ApplicationName:  The Kinesis Data Analytics application name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogStreamARN</i> The ARN of the CloudWatch log to receive application messages.<br/>
        :return: CloudWatchLoggingOptionDescriptions:  The descriptions of the current CloudWatch logging options for the Kinesis Data Analytics application.<br/>ApplicationVersionId:  The new version ID of the Kinesis Data Analytics application. Kinesis Data Analytics updates the <code>ApplicationVersionId</code> each time you change the CloudWatch logging options. <br/>ApplicationARN:  The application's ARN.<br/>        """
        pass

    def add_application_input(self, Input: Input, CurrentApplicationVersionId: ApplicationVersionId, ApplicationName: str) -> AddApplicationInputResponse:
        r""" Adds a streaming source to your SQL-based Kinesis Data Analytics application.  You can add a streaming source when you create an application, or you can use this operation to add a streaming source after you create an application. For more information, see <a>CreateApplication</a>. Any configuration update, including adding a streaming source using this operation, results in a new version of the application. You can use the <a>DescribeApplication</a> operation to find the current application version. 

        :param self:
        :param Input:  The <a>Input</a> to add.:<br/>CurrentApplicationVersionId:  The current version of your application. You must provide the <code>ApplicationVersionID</code> or the <code>ConditionalToken</code>.You can use the <a>DescribeApplication</a> operation to find the current application version.<br/>ApplicationName:  The name of your existing application to which you want to add the streaming source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InputSchema</i> Describes the format of the data in the streaming source, and how each data element maps to corresponding columns in the in-application stream that is being created. Also used to describe the format of the reference data source.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>InputSchema</b>: Describes the format of the data in the streaming source, and how each data element maps to corresponding columns in the in-application stream that is being created. Also used to describe the format of the reference data source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InputParallelism</i> Describes the number of in-application streams to create. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>InputParallelism</b>: Describes the number of in-application streams to create. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KinesisFirehoseInput</i> If the streaming source is an Amazon Kinesis Data Firehose delivery stream, identifies the delivery stream's ARN.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>KinesisFirehoseInput</b>: If the streaming source is an Amazon Kinesis Data Firehose delivery stream, identifies the delivery stream's ARN.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KinesisStreamsInput</i> If the streaming source is an Amazon Kinesis data stream, identifies the stream's Amazon Resource Name (ARN). &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>KinesisStreamsInput</b>: If the streaming source is an Amazon Kinesis data stream, identifies the stream's Amazon Resource Name (ARN). <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InputProcessingConfiguration</i> The <a>InputProcessingConfiguration</a> for the input. An input processor transforms records as they are received from the stream, before the application's SQL code executes. Currently, the only input processing configuration available is <a>InputLambdaProcessor</a>. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>InputProcessingConfiguration</b>: The <a>InputProcessingConfiguration</a> for the input. An input processor transforms records as they are received from the stream, before the application's SQL code executes. Currently, the only input processing configuration available is <a>InputLambdaProcessor</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NamePrefix</i> The name prefix to use when creating an in-application stream. Suppose that you specify a prefix "<code>MyInApplicationStream</code>." Kinesis Data Analytics then creates one or more (as per the <code>InputParallelism</code> count you specified) in-application streams with the names "<code>MyInApplicationStream_001</code>," "<code>MyInApplicationStream_002</code>," and so on. <br/>The <a>InputLambdaProcessor</a> that is used to preprocess the records in the stream before being processed by your application code.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>InputLambdaProcessor</b>: The <a>InputLambdaProcessor</a> that is used to preprocess the records in the stream before being processed by your application code.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceARN</i> The ARN of the input Kinesis data stream to read.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceARN</i> The Amazon Resource Name (ARN) of the delivery stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Count</i> The number of in-application streams to create.<br/>Specifies the format of the records on the streaming source.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RecordFormat</b>: Specifies the format of the records on the streaming source.
        :return: InputDescriptions:  Describes the application input configuration. <br/>ApplicationVersionId:  Provides the current application version.<br/>ApplicationARN:  The Amazon Resource Name (ARN) of the application.<br/>        """
        pass

    def add_application_input_processing_configuration(self, InputProcessingConfiguration: InputProcessingConfiguration, InputId: str, CurrentApplicationVersionId: ApplicationVersionId, ApplicationName: str) -> AddApplicationInputProcessingConfigurationResponse:
        r"""Adds an <a>InputProcessingConfiguration</a> to a SQL-based Kinesis Data Analytics application. An input processor pre-processes records on the input stream before the application's SQL code executes. Currently, the only input processor available is <a href="https://docs.aws.amazon.com/lambda/">AWS Lambda</a>.

        :param self:
        :param InputProcessingConfiguration:  The <a>InputProcessingConfiguration</a> to add to the application.:<br/>InputId:  The ID of the input configuration to add the input processing configuration to. You can get a list of the input IDs for an application using the <a>DescribeApplication</a> operation.<br/>CurrentApplicationVersionId:  The version of the application to which you want to add the input processing configuration. You can use the <a>DescribeApplication</a> operation to get the current application version. If the version specified is not the current version, the <code>ConcurrentModificationException</code> is returned.<br/>ApplicationName:  The name of the application to which you want to add the input processing configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InputLambdaProcessor</i> The <a>InputLambdaProcessor</a> that is used to preprocess the records in the stream before being processed by your application code.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>InputLambdaProcessor</b>: The <a>InputLambdaProcessor</a> that is used to preprocess the records in the stream before being processed by your application code.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceARN</i> The ARN of the AWS Lambda function that operates on records in the stream. <note> To specify an earlier version of the Lambda function than the latest, include the Lambda function version in the Lambda function ARN. For more information about Lambda ARNs, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-lambda">Example ARNs: AWS Lambda</a>  </note><br/>
        :return: InputProcessingConfigurationDescription:  The description of the preprocessor that executes on records in this input before the application's code is run.:<br/>InputId:  The input ID that is associated with the application input. This is the ID that Kinesis Data Analytics assigns to each input configuration that you add to your application.<br/>ApplicationVersionId:  Provides the current application version. <br/>ApplicationARN:  The Amazon Resource Name (ARN) of the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InputLambdaProcessorDescription</i> Provides configuration information about the associated <a>InputLambdaProcessorDescription</a> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>InputLambdaProcessorDescription</b>: Provides configuration information about the associated <a>InputLambdaProcessorDescription</a> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleARN</i> The ARN of the IAM role that is used to access the AWS Lambda function. <note> Provided for backward compatibility. Applications that are created with the current API version have an application-level service execution role rather than a resource-level role. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceARN</i> The ARN of the AWS Lambda function that is used to preprocess the records in the stream. <note> To specify an earlier version of the Lambda function than the latest, include the Lambda function version in the Lambda function ARN. For more information about Lambda ARNs, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-lambda">Example ARNs: AWS Lambda</a>  </note><br/>        """
        pass

    def add_application_output(self, Output: Output, CurrentApplicationVersionId: ApplicationVersionId, ApplicationName: str) -> AddApplicationOutputResponse:
        r"""Adds an external destination to your SQL-based Kinesis Data Analytics application. If you want Kinesis Data Analytics to deliver data from an in-application stream within your application to an external destination (such as an Kinesis data stream, a Kinesis Data Firehose delivery stream, or an AWS Lambda function), you add the relevant configuration to your application using this operation. You can configure one or more outputs for your application. Each output configuration maps an in-application stream and an external destination.  You can use one of the output configurations to deliver data from your in-application error stream to an external destination so that you can analyze the errors.   Any configuration update, including adding a streaming source using this operation, results in a new version of the application. You can use the <a>DescribeApplication</a> operation to find the current application version.

        :param self:
        :param Output:  An array of objects, each describing one output configuration. In the output configuration, you specify the name of an in-application stream, a destination (that is, a Kinesis data stream, a Kinesis Data Firehose delivery stream, or an AWS Lambda function), and record the formation to use when writing to the destination.:<br/>CurrentApplicationVersionId:  The version of the application to which you want to add the output configuration. You can use the <a>DescribeApplication</a> operation to get the current application version. If the version specified is not the current version, the <code>ConcurrentModificationException</code> is returned. <br/>ApplicationName:  The name of the application to which you want to add the output configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DestinationSchema</i> Describes the data format when records are written to the destination. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DestinationSchema</b>: Describes the data format when records are written to the destination. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LambdaOutput</i> Identifies an AWS Lambda function as the destination.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>LambdaOutput</b>: Identifies an AWS Lambda function as the destination.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KinesisFirehoseOutput</i> Identifies a Kinesis Data Firehose delivery stream as the destination.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>KinesisFirehoseOutput</b>: Identifies a Kinesis Data Firehose delivery stream as the destination.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KinesisStreamsOutput</i> Identifies a Kinesis data stream as the destination.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>KinesisStreamsOutput</b>: Identifies a Kinesis data stream as the destination.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the in-application stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceARN</i> The ARN of the destination Kinesis data stream to write to.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceARN</i> The ARN of the destination delivery stream to write to.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceARN</i> The Amazon Resource Name (ARN) of the destination Lambda function to write to. <note> To specify an earlier version of the Lambda function than the latest, include the Lambda function version in the Lambda function ARN. For more information about Lambda ARNs, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-lambda">Example ARNs: AWS Lambda</a>  </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RecordFormatType</i> Specifies the format of the records on the output stream.<br/>
        :return: OutputDescriptions:  Describes the application output configuration. For more information, see <a href="https://docs.aws.amazon.com/kinesisanalytics/latest/dev/how-it-works-output.html">Configuring Application Output</a>. <br/>ApplicationVersionId:  The updated application version ID. Kinesis Data Analytics increments this ID when the application is updated.<br/>ApplicationARN:  The application Amazon Resource Name (ARN).<br/>        """
        pass

    def add_application_reference_data_source(self, ReferenceDataSource: ReferenceDataSource, CurrentApplicationVersionId: ApplicationVersionId, ApplicationName: str) -> AddApplicationReferenceDataSourceResponse:
        r"""Adds a reference data source to an existing SQL-based Kinesis Data Analytics application. Kinesis Data Analytics reads reference data (that is, an Amazon S3 object) and creates an in-application table within your application. In the request, you provide the source (S3 bucket name and object key name), name of the in-application table to create, and the necessary mapping information that describes how data in an Amazon S3 object maps to columns in the resulting in-application table.

        :param self:
        :param ReferenceDataSource:  The reference data source can be an object in your Amazon S3 bucket. Kinesis Data Analytics reads the object and copies the data into the in-application table that is created. You provide an S3 bucket, object key name, and the resulting in-application table that is created. :<br/>CurrentApplicationVersionId:  The version of the application for which you are adding the reference data source. You can use the <a>DescribeApplication</a> operation to get the current application version. If the version specified is not the current version, the <code>ConcurrentModificationException</code> is returned.<br/>ApplicationName:  The name of an existing application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReferenceSchema</i> Describes the format of the data in the streaming source, and how each data element maps to corresponding columns created in the in-application stream.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ReferenceSchema</b>: Describes the format of the data in the streaming source, and how each data element maps to corresponding columns created in the in-application stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3ReferenceDataSource</i> Identifies the S3 bucket and object that contains the reference data. A Kinesis Data Analytics application loads reference data only once. If the data changes, you call the <a>UpdateApplication</a> operation to trigger reloading of data into your application. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3ReferenceDataSource</b>: Identifies the S3 bucket and object that contains the reference data. A Kinesis Data Analytics application loads reference data only once. If the data changes, you call the <a>UpdateApplication</a> operation to trigger reloading of data into your application. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TableName</i> The name of the in-application table to create.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FileKey</i> The object key name containing the reference data.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BucketARN</i> The Amazon Resource Name (ARN) of the S3 bucket.<br/>Specifies the format of the records on the streaming source.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RecordFormat</b>: Specifies the format of the records on the streaming source.
        :return: ReferenceDataSourceDescriptions:  Describes reference data sources configured for the application. <br/>ApplicationVersionId:  The updated application version ID. Kinesis Data Analytics increments this ID when the application is updated.<br/>ApplicationARN:  The application Amazon Resource Name (ARN).<br/>        """
        pass

    def add_application_vpc_configuration(self, VpcConfiguration: VpcConfiguration, ApplicationName: str, CurrentApplicationVersionId: ApplicationVersionId=None, ConditionalToken: str=None) -> AddApplicationVpcConfigurationResponse:
        r"""Adds a Virtual Private Cloud (VPC) configuration to the application. Applications can use VPCs to store and access resources securely. Note the following about VPC configurations for Kinesis Data Analytics applications: <ul> <li> VPC configurations are not supported for SQL applications. </li> <li> When a VPC is added to a Kinesis Data Analytics application, the application can no longer be accessed from the Internet directly. To enable Internet access to the application, add an Internet gateway to your VPC. </li> </ul>

        :param self:
        :param ConditionalToken:  A value you use to implement strong concurrency for application updates. You must provide the <code>ApplicationVersionID</code> or the <code>ConditionalToken</code>. You get the application's current <code>ConditionalToken</code> using <a>DescribeApplication</a>. For better concurrency support, use the <code>ConditionalToken</code> parameter instead of <code>CurrentApplicationVersionId</code>.<br/>VpcConfiguration:  Description of the VPC to add to the application.:<br/>CurrentApplicationVersionId:  The version of the application to which you want to add the VPC configuration. You must provide the <code>CurrentApplicationVersionId</code> or the <code>ConditionalToken</code>. You can use the <a>DescribeApplication</a> operation to get the current application version. If the version specified is not the current version, the <code>ConcurrentModificationException</code> is returned. For better concurrency support, use the <code>ConditionalToken</code> parameter instead of <code>CurrentApplicationVersionId</code>.<br/>ApplicationName:  The name of an existing application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> The array of <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_SecurityGroup.html">SecurityGroup</a> IDs used by the VPC configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetIds</i> The array of <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_Subnet.html">Subnet</a> IDs used by the VPC configuration.<br/>
        :return: VpcConfigurationDescription:  The parameters of the new VPC configuration.:<br/>ApplicationVersionId:  Provides the current application version. Kinesis Data Analytics updates the ApplicationVersionId each time you update the application.<br/>ApplicationARN:  The ARN of the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> The array of <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_SecurityGroup.html">SecurityGroup</a> IDs used by the VPC configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetIds</i> The array of <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_Subnet.html">Subnet</a> IDs used by the VPC configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The ID of the associated VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcConfigurationId</i> The ID of the VPC configuration.<br/>        """
        pass

    def create_application(self, ServiceExecutionRole: str, RuntimeEnvironment: str, ApplicationName: str, ApplicationDescription: str=None, ApplicationConfiguration: ApplicationConfiguration=None, CloudWatchLoggingOptions: List[CloudWatchLoggingOption]=None, Tags: List[Tag]=None, ApplicationMode: str=None) -> CreateApplicationResponse:
        r"""Creates a Kinesis Data Analytics application. For information about creating a Kinesis Data Analytics application, see <a href="https://docs.aws.amazon.com/kinesisanalytics/latest/java/getting-started.html">Creating an Application</a>.

        :param self:
        :param ApplicationMode:  Use the <code>STREAMING</code> mode to create a Kinesis Data Analytics Studio notebook. To create a Kinesis Data Analytics Studio notebook, use the <code>INTERACTIVE</code> mode.<br/>Tags:  A list of one or more tags to assign to the application. A tag is a key-value pair that identifies an application. Note that the maximum number of application tags includes system tags. The maximum number of user-defined application tags is 50. For more information, see <a href="https://docs.aws.amazon.com/kinesisanalytics/latest/java/how-tagging.html">Using Tagging</a>.<br/>CloudWatchLoggingOptions:  Use this parameter to configure an Amazon CloudWatch log stream to monitor application configuration errors. <br/>ApplicationConfiguration:  Use this parameter to configure the application.:<br/>ServiceExecutionRole:  The IAM role used by the application to access Kinesis data streams, Kinesis Data Firehose delivery streams, Amazon S3 objects, and other external resources.<br/>RuntimeEnvironment:  The runtime environment for the application (<code>SQL-1_0</code>, <code>FLINK-1_6</code>, <code>FLINK-1_8</code>, or <code>FLINK-1_11</code>).<br/>ApplicationDescription:  A summary description of the application.<br/>ApplicationName:  The name of your application (for example, <code>sample-app</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ZeppelinApplicationConfiguration</i> The configuration parameters for a Kinesis Data Analytics Studio notebook.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ZeppelinApplicationConfiguration</b>: The configuration parameters for a Kinesis Data Analytics Studio notebook.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcConfigurations</i> The array of descriptions of VPC configurations available to the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationSnapshotConfiguration</i> Describes whether snapshots are enabled for a Flink-based Kinesis Data Analytics application.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ApplicationSnapshotConfiguration</b>: Describes whether snapshots are enabled for a Flink-based Kinesis Data Analytics application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationCodeConfiguration</i> The code location and type parameters for a Flink-based Kinesis Data Analytics application.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ApplicationCodeConfiguration</b>: The code location and type parameters for a Flink-based Kinesis Data Analytics application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnvironmentProperties</i> Describes execution properties for a Flink-based Kinesis Data Analytics application.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EnvironmentProperties</b>: Describes execution properties for a Flink-based Kinesis Data Analytics application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FlinkApplicationConfiguration</i> The creation and update parameters for a Flink-based Kinesis Data Analytics application.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>FlinkApplicationConfiguration</b>: The creation and update parameters for a Flink-based Kinesis Data Analytics application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SqlApplicationConfiguration</i> The creation and update parameters for a SQL-based Kinesis Data Analytics application.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SqlApplicationConfiguration</b>: The creation and update parameters for a SQL-based Kinesis Data Analytics application.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReferenceDataSources</i> The array of <a>ReferenceDataSource</a> objects describing the reference data sources used by the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Outputs</i> The array of <a>Output</a> objects describing the destination streams used by the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Inputs</i> The array of <a>Input</a> objects describing the input streams used by the application.<br/>Describes an application's checkpointing configuration. Checkpointing is the process of persisting application state for fault tolerance. For more information, see <a href="https://ci.apache.org/projects/flink/flink-docs-release-1.8/concepts/programming-model.html#checkpoints-for-fault-tolerance"> Checkpoints for Fault Tolerance</a> in the <a href="https://ci.apache.org/projects/flink/flink-docs-release-1.8/">Apache Flink Documentation</a>. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CheckpointConfiguration</b>: Describes an application's checkpointing configuration. Checkpointing is the process of persisting application state for fault tolerance. For more information, see <a href="https://ci.apache.org/projects/flink/flink-docs-release-1.8/concepts/programming-model.html#checkpoints-for-fault-tolerance"> Checkpoints for Fault Tolerance</a> in the <a href="https://ci.apache.org/projects/flink/flink-docs-release-1.8/">Apache Flink Documentation</a>. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PropertyGroups</i> Describes the execution property groups.<br/>The location and type of the application code.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CodeContent</b>: The location and type of the application code.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotsEnabled</i> Describes whether snapshots are enabled for a Flink-based Kinesis Data Analytics application.<br/>The monitoring configuration of a Kinesis Data Analytics Studio notebook.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>MonitoringConfiguration</b>: The monitoring configuration of a Kinesis Data Analytics Studio notebook.
        :return: ApplicationDetail:  In response to your <code>CreateApplication</code> request, Kinesis Data Analytics returns a response with details of the application it created.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationMode</i> To create a Kinesis Data Analytics Studio notebook, you must set the mode to <code>INTERACTIVE</code>. However, for a Kinesis Data Analytics for Apache Flink application, the mode is optional.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationVersionRolledBackTo</i> The version to which you want to roll back the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConditionalToken</i> A value you use to implement strong concurrency for application updates.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationVersionRolledBackFrom</i> If you reverted the application using <a>RollbackApplication</a>, the application version when <code>RollbackApplication</code> was called.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationVersionUpdatedFrom</i> The previous application version before the latest application update. <a>RollbackApplication</a> reverts the application to this version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationMaintenanceConfigurationDescription</i> The details of the maintenance configuration for the application.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ApplicationMaintenanceConfigurationDescription</b>: The details of the maintenance configuration for the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudWatchLoggingOptionDescriptions</i> Describes the application Amazon CloudWatch logging options.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationConfigurationDescription</i> Describes details about the application code and starting parameters for a Kinesis Data Analytics application.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ApplicationConfigurationDescription</b>: Describes details about the application code and starting parameters for a Kinesis Data Analytics application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdateTimestamp</i> The current timestamp when the application was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreateTimestamp</i> The current timestamp when the application was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationVersionId</i> Provides the current application version. Kinesis Data Analytics updates the <code>ApplicationVersionId</code> each time you update the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationStatus</i> The status of the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceExecutionRole</i> Specifies the IAM role that the application uses to access external resources.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RuntimeEnvironment</i> The runtime environment for the application (<code>SQL-1_0</code>, <code>FLINK-1_6</code>, <code>FLINK-1_8</code>, or <code>FLINK-1_11</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationName</i> The name of the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationDescription</i> The description of the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationARN</i> The ARN of the application.<br/>The details about inputs, outputs, and reference data sources for a SQL-based Kinesis Data Analytics application.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SqlApplicationConfigurationDescription</b>: The details about inputs, outputs, and reference data sources for a SQL-based Kinesis Data Analytics application.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationMaintenanceWindowEndTime</i> The end time for the maintenance window.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationMaintenanceWindowStartTime</i> The start time for the maintenance window.<br/>        """
        pass

    def create_application_presigned_url(self, UrlType: str, ApplicationName: str, SessionExpirationDurationInSeconds: SessionExpirationDurationInSeconds=None) -> CreateApplicationPresignedUrlResponse:
        r"""Creates and returns a URL that you can use to connect to an application's extension. Currently, the only available extension is the Apache Flink dashboard. The IAM role or user used to call this API defines the permissions to access the extension. After the presigned URL is created, no additional permission is required to access this URL. IAM authorization policies for this API are also enforced for every HTTP request that attempts to connect to the extension.  You control the amount of time that the URL will be valid using the <code>SessionExpirationDurationInSeconds</code> parameter. If you do not provide this parameter, the returned URL is valid for twelve hours. <note> The URL that you get from a call to CreateApplicationPresignedUrl must be used within 3 minutes to be valid. If you first try to use the URL after the 3-minute limit expires, the service returns an HTTP 403 Forbidden error. </note>

        :param self:
        :param SessionExpirationDurationInSeconds:  The duration in seconds for which the returned URL will be valid.<br/>UrlType:  The type of the extension for which to create and return a URL. Currently, the only valid extension URL type is <code>FLINK_DASHBOARD_URL</code>. <br/>ApplicationName:  The name of the application.<br/>
        :return: AuthorizedUrl:  The URL of the extension.<br/>        """
        pass

    def create_application_snapshot(self, SnapshotName: str, ApplicationName: str) -> CreateApplicationSnapshotResponse:
        r"""Creates a snapshot of the application's state data.

        :param self:
        :param SnapshotName:  An identifier for the application snapshot.<br/>ApplicationName:  The name of an existing application<br/>
        :return:         """
        pass

    def delete_application(self, CreateTimestamp: Timestamp, ApplicationName: str) -> DeleteApplicationResponse:
        r"""Deletes the specified application. Kinesis Data Analytics halts application execution and deletes the application.

        :param self:
        :param CreateTimestamp:  Use the <code>DescribeApplication</code> operation to get this value.<br/>ApplicationName:  The name of the application to delete.<br/>
        :return:         """
        pass

    def delete_application_cloud_watch_logging_option(self, CloudWatchLoggingOptionId: str, ApplicationName: str, CurrentApplicationVersionId: ApplicationVersionId=None, ConditionalToken: str=None) -> DeleteApplicationCloudWatchLoggingOptionResponse:
        r"""Deletes an Amazon CloudWatch log stream from an Kinesis Data Analytics application. 

        :param self:
        :param ConditionalToken:  A value you use to implement strong concurrency for application updates. You must provide the <code>CurrentApplicationVersionId</code> or the <code>ConditionalToken</code>. You get the application's current <code>ConditionalToken</code> using <a>DescribeApplication</a>. For better concurrency support, use the <code>ConditionalToken</code> parameter instead of <code>CurrentApplicationVersionId</code>.<br/>CloudWatchLoggingOptionId:  The <code>CloudWatchLoggingOptionId</code> of the Amazon CloudWatch logging option to delete. You can get the <code>CloudWatchLoggingOptionId</code> by using the <a>DescribeApplication</a> operation. <br/>CurrentApplicationVersionId:  The version ID of the application. You must provide the <code>CurrentApplicationVersionId</code> or the <code>ConditionalToken</code>. You can retrieve the application version ID using <a>DescribeApplication</a>. For better concurrency support, use the <code>ConditionalToken</code> parameter instead of <code>CurrentApplicationVersionId</code>.<br/>ApplicationName:  The application name.<br/>
        :return: CloudWatchLoggingOptionDescriptions:  The descriptions of the remaining CloudWatch logging options for the application.<br/>ApplicationVersionId:  The version ID of the application. Kinesis Data Analytics updates the <code>ApplicationVersionId</code> each time you change the CloudWatch logging options.<br/>ApplicationARN:  The application's Amazon Resource Name (ARN).<br/>        """
        pass

    def delete_application_input_processing_configuration(self, InputId: str, CurrentApplicationVersionId: ApplicationVersionId, ApplicationName: str) -> DeleteApplicationInputProcessingConfigurationResponse:
        r"""Deletes an <a>InputProcessingConfiguration</a> from an input.

        :param self:
        :param InputId:  The ID of the input configuration from which to delete the input processing configuration. You can get a list of the input IDs for an application by using the <a>DescribeApplication</a> operation.<br/>CurrentApplicationVersionId:  The application version. You can use the <a>DescribeApplication</a> operation to get the current application version. If the version specified is not the current version, the <code>ConcurrentModificationException</code> is returned. <br/>ApplicationName:  The name of the application.<br/>
        :return: ApplicationVersionId:  The current application version ID.<br/>ApplicationARN:  The Amazon Resource Name (ARN) of the application.<br/>        """
        pass

    def delete_application_output(self, OutputId: str, CurrentApplicationVersionId: ApplicationVersionId, ApplicationName: str) -> DeleteApplicationOutputResponse:
        r"""Deletes the output destination configuration from your SQL-based Kinesis Data Analytics application's configuration. Kinesis Data Analytics will no longer write data from the corresponding in-application stream to the external output destination.

        :param self:
        :param OutputId:  The ID of the configuration to delete. Each output configuration that is added to the application (either when the application is created or later) using the <a>AddApplicationOutput</a> operation has a unique ID. You need to provide the ID to uniquely identify the output configuration that you want to delete from the application configuration. You can use the <a>DescribeApplication</a> operation to get the specific <code>OutputId</code>. <br/>CurrentApplicationVersionId:  The application version. You can use the <a>DescribeApplication</a> operation to get the current application version. If the version specified is not the current version, the <code>ConcurrentModificationException</code> is returned. <br/>ApplicationName:  The application name.<br/>
        :return: ApplicationVersionId:  The current application version ID.<br/>ApplicationARN:  The application Amazon Resource Name (ARN).<br/>        """
        pass

    def delete_application_reference_data_source(self, ReferenceId: str, CurrentApplicationVersionId: ApplicationVersionId, ApplicationName: str) -> DeleteApplicationReferenceDataSourceResponse:
        r"""Deletes a reference data source configuration from the specified SQL-based Kinesis Data Analytics application's configuration. If the application is running, Kinesis Data Analytics immediately removes the in-application table that you created using the <a>AddApplicationReferenceDataSource</a> operation. 

        :param self:
        :param ReferenceId:  The ID of the reference data source. When you add a reference data source to your application using the <a>AddApplicationReferenceDataSource</a>, Kinesis Data Analytics assigns an ID. You can use the <a>DescribeApplication</a> operation to get the reference ID. <br/>CurrentApplicationVersionId:  The current application version. You can use the <a>DescribeApplication</a> operation to get the current application version. If the version specified is not the current version, the <code>ConcurrentModificationException</code> is returned.<br/>ApplicationName:  The name of an existing application.<br/>
        :return: ApplicationVersionId:  The updated version ID of the application.<br/>ApplicationARN:  The application Amazon Resource Name (ARN).<br/>        """
        pass

    def delete_application_snapshot(self, SnapshotCreationTimestamp: Timestamp, SnapshotName: str, ApplicationName: str) -> DeleteApplicationSnapshotResponse:
        r"""Deletes a snapshot of application state.

        :param self:
        :param SnapshotCreationTimestamp:  The creation timestamp of the application snapshot to delete. You can retrieve this value using or .<br/>SnapshotName:  The identifier for the snapshot delete.<br/>ApplicationName:  The name of an existing application.<br/>
        :return:         """
        pass

    def delete_application_vpc_configuration(self, VpcConfigurationId: str, ApplicationName: str, CurrentApplicationVersionId: ApplicationVersionId=None, ConditionalToken: str=None) -> DeleteApplicationVpcConfigurationResponse:
        r"""Removes a VPC configuration from a Kinesis Data Analytics application.

        :param self:
        :param ConditionalToken:  A value you use to implement strong concurrency for application updates. You must provide the <code>CurrentApplicationVersionId</code> or the <code>ConditionalToken</code>. You get the application's current <code>ConditionalToken</code> using <a>DescribeApplication</a>. For better concurrency support, use the <code>ConditionalToken</code> parameter instead of <code>CurrentApplicationVersionId</code>.<br/>VpcConfigurationId:  The ID of the VPC configuration to delete.<br/>CurrentApplicationVersionId:  The current application version ID. You must provide the <code>CurrentApplicationVersionId</code> or the <code>ConditionalToken</code>. You can retrieve the application version ID using <a>DescribeApplication</a>. For better concurrency support, use the <code>ConditionalToken</code> parameter instead of <code>CurrentApplicationVersionId</code>.<br/>ApplicationName:  The name of an existing application.<br/>
        :return: ApplicationVersionId:  The updated version ID of the application.<br/>ApplicationARN:  The ARN of the Kinesis Data Analytics application.<br/>        """
        pass

    def describe_application(self, ApplicationName: str, IncludeAdditionalDetails: BooleanObject=None) -> DescribeApplicationResponse:
        r"""Returns information about a specific Kinesis Data Analytics application. If you want to retrieve a list of all applications in your account, use the <a>ListApplications</a> operation.

        :param self:
        :param IncludeAdditionalDetails:  Displays verbose information about a Kinesis Data Analytics application, including the application's job plan.<br/>ApplicationName:  The name of the application.<br/>
        :return: ApplicationDetail:  Provides a description of the application, such as the application's Amazon Resource Name (ARN), status, and latest version.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationMode</i> To create a Kinesis Data Analytics Studio notebook, you must set the mode to <code>INTERACTIVE</code>. However, for a Kinesis Data Analytics for Apache Flink application, the mode is optional.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationVersionRolledBackTo</i> The version to which you want to roll back the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConditionalToken</i> A value you use to implement strong concurrency for application updates.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationVersionRolledBackFrom</i> If you reverted the application using <a>RollbackApplication</a>, the application version when <code>RollbackApplication</code> was called.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationVersionUpdatedFrom</i> The previous application version before the latest application update. <a>RollbackApplication</a> reverts the application to this version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationMaintenanceConfigurationDescription</i> The details of the maintenance configuration for the application.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ApplicationMaintenanceConfigurationDescription</b>: The details of the maintenance configuration for the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudWatchLoggingOptionDescriptions</i> Describes the application Amazon CloudWatch logging options.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationConfigurationDescription</i> Describes details about the application code and starting parameters for a Kinesis Data Analytics application.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ApplicationConfigurationDescription</b>: Describes details about the application code and starting parameters for a Kinesis Data Analytics application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdateTimestamp</i> The current timestamp when the application was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreateTimestamp</i> The current timestamp when the application was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationVersionId</i> Provides the current application version. Kinesis Data Analytics updates the <code>ApplicationVersionId</code> each time you update the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationStatus</i> The status of the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceExecutionRole</i> Specifies the IAM role that the application uses to access external resources.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RuntimeEnvironment</i> The runtime environment for the application (<code>SQL-1_0</code>, <code>FLINK-1_6</code>, <code>FLINK-1_8</code>, or <code>FLINK-1_11</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationName</i> The name of the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationDescription</i> The description of the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationARN</i> The ARN of the application.<br/>The details about inputs, outputs, and reference data sources for a SQL-based Kinesis Data Analytics application.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SqlApplicationConfigurationDescription</b>: The details about inputs, outputs, and reference data sources for a SQL-based Kinesis Data Analytics application.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationMaintenanceWindowEndTime</i> The end time for the maintenance window.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationMaintenanceWindowStartTime</i> The start time for the maintenance window.<br/>        """
        pass

    def describe_application_snapshot(self, SnapshotName: str, ApplicationName: str) -> DescribeApplicationSnapshotResponse:
        r"""Returns information about a snapshot of application state data.

        :param self:
        :param SnapshotName:  The identifier of an application snapshot. You can retrieve this value using .<br/>ApplicationName:  The name of an existing application.<br/>
        :return: SnapshotDetails:  An object containing information about the application snapshot.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotCreationTimestamp</i> The timestamp of the application snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationVersionId</i> The current application version ID when the snapshot was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotStatus</i> The status of the application snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotName</i> The identifier for the application snapshot.<br/>        """
        pass

    def describe_application_version(self, ApplicationVersionId: ApplicationVersionId, ApplicationName: str) -> DescribeApplicationVersionResponse:
        r"""Provides a detailed description of a specified version of the application. To see a list of all the versions of an application, invoke the <a>ListApplicationVersions</a> operation. <note> This operation is supported only for Amazon Kinesis Data Analytics for Apache Flink. </note>

        :param self:
        :param ApplicationVersionId:  The ID of the application version for which you want to get the description.<br/>ApplicationName:  The name of the application for which you want to get the version description.<br/>
        :return: ApplicationVersionDetail:  Describes the application, including the application Amazon Resource Name (ARN), status, latest version, and input and output configurations.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationMode</i> To create a Kinesis Data Analytics Studio notebook, you must set the mode to <code>INTERACTIVE</code>. However, for a Kinesis Data Analytics for Apache Flink application, the mode is optional.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationVersionRolledBackTo</i> The version to which you want to roll back the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConditionalToken</i> A value you use to implement strong concurrency for application updates.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationVersionRolledBackFrom</i> If you reverted the application using <a>RollbackApplication</a>, the application version when <code>RollbackApplication</code> was called.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationVersionUpdatedFrom</i> The previous application version before the latest application update. <a>RollbackApplication</a> reverts the application to this version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationMaintenanceConfigurationDescription</i> The details of the maintenance configuration for the application.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ApplicationMaintenanceConfigurationDescription</b>: The details of the maintenance configuration for the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudWatchLoggingOptionDescriptions</i> Describes the application Amazon CloudWatch logging options.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationConfigurationDescription</i> Describes details about the application code and starting parameters for a Kinesis Data Analytics application.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ApplicationConfigurationDescription</b>: Describes details about the application code and starting parameters for a Kinesis Data Analytics application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdateTimestamp</i> The current timestamp when the application was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreateTimestamp</i> The current timestamp when the application was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationVersionId</i> Provides the current application version. Kinesis Data Analytics updates the <code>ApplicationVersionId</code> each time you update the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationStatus</i> The status of the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceExecutionRole</i> Specifies the IAM role that the application uses to access external resources.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RuntimeEnvironment</i> The runtime environment for the application (<code>SQL-1_0</code>, <code>FLINK-1_6</code>, <code>FLINK-1_8</code>, or <code>FLINK-1_11</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationName</i> The name of the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationDescription</i> The description of the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationARN</i> The ARN of the application.<br/>The details about inputs, outputs, and reference data sources for a SQL-based Kinesis Data Analytics application.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SqlApplicationConfigurationDescription</b>: The details about inputs, outputs, and reference data sources for a SQL-based Kinesis Data Analytics application.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationMaintenanceWindowEndTime</i> The end time for the maintenance window.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationMaintenanceWindowStartTime</i> The start time for the maintenance window.<br/>        """
        pass

    def discover_input_schema(self, ServiceExecutionRole: str, ResourceARN: str=None, InputStartingPositionConfiguration: InputStartingPositionConfiguration=None, S3Configuration: S3Configuration=None, InputProcessingConfiguration: InputProcessingConfiguration=None) -> DiscoverInputSchemaResponse:
        r"""Infers a schema for a SQL-based Kinesis Data Analytics application by evaluating sample records on the specified streaming source (Kinesis data stream or Kinesis Data Firehose delivery stream) or Amazon S3 object. In the response, the operation returns the inferred schema and also the sample records that the operation used to infer the schema.  You can use the inferred schema when configuring a streaming source for your application. When you create an application using the Kinesis Data Analytics console, the console uses this operation to infer a schema and show it in the console user interface. 

        :param self:
        :param InputProcessingConfiguration:  The <a>InputProcessingConfiguration</a> to use to preprocess the records before discovering the schema of the records.:<br/>S3Configuration:  Specify this parameter to discover a schema from data in an Amazon S3 object.:<br/>InputStartingPositionConfiguration:  The point at which you want Kinesis Data Analytics to start reading records from the specified streaming source discovery purposes.:<br/>ServiceExecutionRole:  The ARN of the role that is used to access the streaming source.<br/>ResourceARN:  The Amazon Resource Name (ARN) of the streaming source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InputStartingPosition</i> The starting position on the stream. <ul> <li>  <code>NOW</code> - Start reading just after the most recent record in the stream, and start at the request timestamp that the customer issued. </li> <li>  <code>TRIM_HORIZON</code> - Start reading at the last untrimmed record in the stream, which is the oldest record available in the stream. This option is not available for an Amazon Kinesis Data Firehose delivery stream. </li> <li>  <code>LAST_STOPPED_POINT</code> - Resume reading from where the application last stopped reading. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FileKey</i> The name of the object that contains the data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BucketARN</i> The ARN of the S3 bucket that contains the data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InputLambdaProcessor</i> The <a>InputLambdaProcessor</a> that is used to preprocess the records in the stream before being processed by your application code.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>InputLambdaProcessor</b>: The <a>InputLambdaProcessor</a> that is used to preprocess the records in the stream before being processed by your application code.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceARN</i> The ARN of the AWS Lambda function that operates on records in the stream. <note> To specify an earlier version of the Lambda function than the latest, include the Lambda function version in the Lambda function ARN. For more information about Lambda ARNs, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-lambda">Example ARNs: AWS Lambda</a>  </note><br/>
        :return: RawInputRecords:  The raw stream data that was sampled to infer the schema.<br/>ProcessedInputRecords:  The stream data that was modified by the processor specified in the <code>InputProcessingConfiguration</code> parameter.<br/>ParsedInputRecords:  An array of elements, where each element corresponds to a row in a stream record (a stream record can have more than one row).<br/>InputSchema:  The schema inferred from the streaming source. It identifies the format of the data in the streaming source and how each data element maps to corresponding columns in the in-application stream that you can create.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecordColumns</i> A list of <code>RecordColumn</code> objects. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecordEncoding</i> Specifies the encoding of the records in the streaming source. For example, UTF-8.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecordFormat</i> Specifies the format of the records on the streaming source.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RecordFormat</b>: Specifies the format of the records on the streaming source.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RecordFormatType</i> The type of record format.<br/>When you configure application input at the time of creating or updating an application, provides additional mapping information specific to the record format (such as JSON, CSV, or record fields delimited by some delimiter) on the streaming source.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>MappingParameters</b>: When you configure application input at the time of creating or updating an application, provides additional mapping information specific to the record format (such as JSON, CSV, or record fields delimited by some delimiter) on the streaming source.        """
        pass

    def list_application_snapshots(self, ApplicationName: str, Limit: int=None, NextToken: str=None) -> ListApplicationSnapshotsResponse:
        r"""Lists information about the current application snapshots.

        :param self:
        :param NextToken:  Use this parameter if you receive a <code>NextToken</code> response in a previous request that indicates that there is more output available. Set it to the value of the previous call's <code>NextToken</code> response to indicate where the output should continue from. <br/>Limit:  The maximum number of application snapshots to list.<br/>ApplicationName:  The name of an existing application.<br/>
        :return: NextToken:  The token for the next set of results, or <code>null</code> if there are no additional results.<br/>SnapshotSummaries:  A collection of objects containing information about the application snapshots.<br/>        """
        pass

    def list_application_versions(self, ApplicationName: str, Limit: int=None, NextToken: str=None) -> ListApplicationVersionsResponse:
        r"""Lists all the versions for the specified application, including versions that were rolled back. The response also includes a summary of the configuration associated with each version. To get the complete description of a specific application version, invoke the <a>DescribeApplicationVersion</a> operation. <note> This operation is supported only for Amazon Kinesis Data Analytics for Apache Flink. </note>

        :param self:
        :param NextToken:  If a previous invocation of this operation returned a pagination token, pass it into this value to retrieve the next set of results. For more information about pagination, see <a href="https://docs.aws.amazon.com/cli/latest/userguide/pagination.html">Using the AWS Command Line Interface's Pagination Options</a>.<br/>Limit:  The maximum number of versions to list in this invocation of the operation.<br/>ApplicationName:  The name of the application for which you want to list all versions.<br/>
        :return: NextToken:  The pagination token for the next set of results, or <code>null</code> if there are no additional results. To retrieve the next set of items, pass this token into a subsequent invocation of this operation. For more information about pagination, see <a href="https://docs.aws.amazon.com/cli/latest/userguide/pagination.html">Using the AWS Command Line Interface's Pagination Options</a>.<br/>ApplicationVersionSummaries:  A list of the application versions and the associated configuration summaries. The list includes application versions that were rolled back. To get the complete description of a specific application version, invoke the <a>DescribeApplicationVersion</a> operation.<br/>        """
        pass

    def list_applications(self, Limit: int=None, NextToken: str=None) -> ListApplicationsResponse:
        r"""Returns a list of Kinesis Data Analytics applications in your account. For each application, the response includes the application name, Amazon Resource Name (ARN), and status.  If you want detailed information about a specific application, use <a>DescribeApplication</a>.

        :param self:
        :param NextToken:  If a previous command returned a pagination token, pass it into this value to retrieve the next set of results. For more information about pagination, see <a href="https://docs.aws.amazon.com/cli/latest/userguide/pagination.html">Using the AWS Command Line Interface's Pagination Options</a>.<br/>Limit:  The maximum number of applications to list.<br/>
        :return: NextToken:  The pagination token for the next set of results, or <code>null</code> if there are no additional results. Pass this token into a subsequent command to retrieve the next set of items For more information about pagination, see <a href="https://docs.aws.amazon.com/cli/latest/userguide/pagination.html">Using the AWS Command Line Interface's Pagination Options</a>.<br/>ApplicationSummaries:  A list of <code>ApplicationSummary</code> objects.<br/>        """
        pass

    def list_tags_for_resource(self, ResourceARN: str) -> ListTagsForResourceResponse:
        r"""Retrieves the list of key-value tags assigned to the application. For more information, see <a href="https://docs.aws.amazon.com/kinesisanalytics/latest/java/how-tagging.html">Using Tagging</a>.

        :param self:
        :param ResourceARN:  The ARN of the application for which to retrieve tags.<br/>
        :return: Tags:  The key-value tags assigned to the application.<br/>        """
        pass

    def rollback_application(self, CurrentApplicationVersionId: ApplicationVersionId, ApplicationName: str) -> RollbackApplicationResponse:
        r"""Reverts the application to the previous running version. You can roll back an application if you suspect it is stuck in a transient status.  You can roll back an application only if it is in the <code>UPDATING</code> or <code>AUTOSCALING</code> status. When you rollback an application, it loads state data from the last successful snapshot. If the application has no snapshots, Kinesis Data Analytics rejects the rollback request. This action is not supported for Kinesis Data Analytics for SQL applications.

        :param self:
        :param CurrentApplicationVersionId:  The current application version ID. You can retrieve the application version ID using <a>DescribeApplication</a>.<br/>ApplicationName:  The name of the application.<br/>
        :return: ApplicationDetail:  Describes the application, including the application Amazon Resource Name (ARN), status, latest version, and input and output configurations.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationMode</i> To create a Kinesis Data Analytics Studio notebook, you must set the mode to <code>INTERACTIVE</code>. However, for a Kinesis Data Analytics for Apache Flink application, the mode is optional.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationVersionRolledBackTo</i> The version to which you want to roll back the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConditionalToken</i> A value you use to implement strong concurrency for application updates.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationVersionRolledBackFrom</i> If you reverted the application using <a>RollbackApplication</a>, the application version when <code>RollbackApplication</code> was called.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationVersionUpdatedFrom</i> The previous application version before the latest application update. <a>RollbackApplication</a> reverts the application to this version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationMaintenanceConfigurationDescription</i> The details of the maintenance configuration for the application.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ApplicationMaintenanceConfigurationDescription</b>: The details of the maintenance configuration for the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudWatchLoggingOptionDescriptions</i> Describes the application Amazon CloudWatch logging options.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationConfigurationDescription</i> Describes details about the application code and starting parameters for a Kinesis Data Analytics application.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ApplicationConfigurationDescription</b>: Describes details about the application code and starting parameters for a Kinesis Data Analytics application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdateTimestamp</i> The current timestamp when the application was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreateTimestamp</i> The current timestamp when the application was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationVersionId</i> Provides the current application version. Kinesis Data Analytics updates the <code>ApplicationVersionId</code> each time you update the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationStatus</i> The status of the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceExecutionRole</i> Specifies the IAM role that the application uses to access external resources.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RuntimeEnvironment</i> The runtime environment for the application (<code>SQL-1_0</code>, <code>FLINK-1_6</code>, <code>FLINK-1_8</code>, or <code>FLINK-1_11</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationName</i> The name of the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationDescription</i> The description of the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationARN</i> The ARN of the application.<br/>The details about inputs, outputs, and reference data sources for a SQL-based Kinesis Data Analytics application.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SqlApplicationConfigurationDescription</b>: The details about inputs, outputs, and reference data sources for a SQL-based Kinesis Data Analytics application.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationMaintenanceWindowEndTime</i> The end time for the maintenance window.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationMaintenanceWindowStartTime</i> The start time for the maintenance window.<br/>        """
        pass

    def start_application(self, ApplicationName: str, RunConfiguration: RunConfiguration=None) -> StartApplicationResponse:
        r"""Starts the specified Kinesis Data Analytics application. After creating an application, you must exclusively call this operation to start your application.

        :param self:
        :param RunConfiguration:  Identifies the run configuration (start parameters) of a Kinesis Data Analytics application.:<br/>ApplicationName:  The name of the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationRestoreConfiguration</i> Describes the restore behavior of a restarting application.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ApplicationRestoreConfiguration</b>: Describes the restore behavior of a restarting application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SqlRunConfigurations</i> Describes the starting parameters for a SQL-based Kinesis Data Analytics application application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FlinkRunConfiguration</i> Describes the starting parameters for a Flink-based Kinesis Data Analytics application.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>FlinkRunConfiguration</b>: Describes the starting parameters for a Flink-based Kinesis Data Analytics application.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowNonRestoredState</i> When restoring from a snapshot, specifies whether the runtime is allowed to skip a state that cannot be mapped to the new program. This will happen if the program is updated between snapshots to remove stateful parameters, and state data in the snapshot no longer corresponds to valid application data. For more information, see <a href="https://ci.apache.org/projects/flink/flink-docs-release-1.8/ops/state/savepoints.html#allowing-non-restored-state"> Allowing Non-Restored State</a> in the <a href="https://ci.apache.org/projects/flink/flink-docs-release-1.8/">Apache Flink documentation</a>. <note> This value defaults to <code>false</code>. If you update your application without specifying this parameter, <code>AllowNonRestoredState</code> will be set to <code>false</code>, even if it was previously set to <code>true</code>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotName</i> The identifier of an existing snapshot of application state to use to restart an application. The application uses this value if <code>RESTORE_FROM_CUSTOM_SNAPSHOT</code> is specified for the <code>ApplicationRestoreType</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationRestoreType</i> Specifies how the application should be restored.<br/>
        :return:         """
        pass

    def stop_application(self, ApplicationName: str, Force: BooleanObject=None) -> StopApplicationResponse:
        r"""Stops the application from processing data. You can stop an application only if it is in the running status, unless you set the <code>Force</code> parameter to <code>true</code>. You can use the <a>DescribeApplication</a> operation to find the application status.  Kinesis Data Analytics takes a snapshot when the application is stopped, unless <code>Force</code> is set to <code>true</code>.

        :param self:
        :param Force:  Set to <code>true</code> to force the application to stop. If you set <code>Force</code> to <code>true</code>, Kinesis Data Analytics stops the application without taking a snapshot.  <note> Force-stopping your application may lead to data loss or duplication. To prevent data loss or duplicate processing of data during application restarts, we recommend you to take frequent snapshots of your application. </note> You can only force stop a Flink-based Kinesis Data Analytics application. You can't force stop a SQL-based Kinesis Data Analytics application. The application must be in the <code>STARTING</code>, <code>UPDATING</code>, <code>STOPPING</code>, <code>AUTOSCALING</code>, or <code>RUNNING</code> status. <br/>ApplicationName:  The name of the running application to stop.<br/>
        :return:         """
        pass

    def tag_resource(self, Tags: List[Tag], ResourceARN: str) -> TagResourceResponse:
        r"""Adds one or more key-value tags to a Kinesis Data Analytics application. Note that the maximum number of application tags includes system tags. The maximum number of user-defined application tags is 50. For more information, see <a href="https://docs.aws.amazon.com/kinesisanalytics/latest/java/how-tagging.html">Using Tagging</a>.

        :param self:
        :param Tags:  The key-value tags to assign to the application.<br/>ResourceARN:  The ARN of the application to assign the tags.<br/>
        :return:         """
        pass

    def untag_resource(self, TagKeys: List[TagKey], ResourceARN: str) -> UntagResourceResponse:
        r"""Removes one or more tags from a Kinesis Data Analytics application. For more information, see <a href="https://docs.aws.amazon.com/kinesisanalytics/latest/java/how-tagging.html">Using Tagging</a>.

        :param self:
        :param TagKeys:  A list of keys of tags to remove from the specified application.<br/>ResourceARN:  The ARN of the Kinesis Data Analytics application from which to remove the tags.<br/>
        :return:         """
        pass

    def update_application(self, ApplicationName: str, CurrentApplicationVersionId: ApplicationVersionId=None, ApplicationConfigurationUpdate: ApplicationConfigurationUpdate=None, ServiceExecutionRoleUpdate: str=None, RunConfigurationUpdate: RunConfigurationUpdate=None, CloudWatchLoggingOptionUpdates: List[CloudWatchLoggingOptionUpdate]=None, ConditionalToken: str=None) -> UpdateApplicationResponse:
        r"""Updates an existing Kinesis Data Analytics application. Using this operation, you can update application code, input configuration, and output configuration.  Kinesis Data Analytics updates the <code>ApplicationVersionId</code> each time you update your application.  <note> You cannot update the <code>RuntimeEnvironment</code> of an existing application. If you need to update an application's <code>RuntimeEnvironment</code>, you must delete the application and create it again. </note>

        :param self:
        :param ConditionalToken:  A value you use to implement strong concurrency for application updates. You must provide the <code>CurrentApplicationVersionId</code> or the <code>ConditionalToken</code>. You get the application's current <code>ConditionalToken</code> using <a>DescribeApplication</a>. For better concurrency support, use the <code>ConditionalToken</code> parameter instead of <code>CurrentApplicationVersionId</code>.<br/>CloudWatchLoggingOptionUpdates:  Describes application Amazon CloudWatch logging option updates. You can only update existing CloudWatch logging options with this action. To add a new CloudWatch logging option, use <a>AddApplicationCloudWatchLoggingOption</a>.<br/>RunConfigurationUpdate:  Describes updates to the application's starting parameters.:<br/>ServiceExecutionRoleUpdate:  Describes updates to the service execution role.<br/>ApplicationConfigurationUpdate:  Describes application configuration updates.:<br/>CurrentApplicationVersionId:  The current application version ID. You must provide the <code>CurrentApplicationVersionId</code> or the <code>ConditionalToken</code>.You can retrieve the application version ID using <a>DescribeApplication</a>. For better concurrency support, use the <code>ConditionalToken</code> parameter instead of <code>CurrentApplicationVersionId</code>.<br/>ApplicationName:  The name of the application to update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ZeppelinApplicationConfigurationUpdate</i> Updates to the configuration of a Kinesis Data Analytics Studio notebook.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ZeppelinApplicationConfigurationUpdate</b>: Updates to the configuration of a Kinesis Data Analytics Studio notebook.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcConfigurationUpdates</i> Updates to the array of descriptions of VPC configurations available to the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationSnapshotConfigurationUpdate</i> Describes whether snapshots are enabled for a Flink-based Kinesis Data Analytics application.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ApplicationSnapshotConfigurationUpdate</b>: Describes whether snapshots are enabled for a Flink-based Kinesis Data Analytics application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnvironmentPropertyUpdates</i> Describes updates to the environment properties for a Flink-based Kinesis Data Analytics application.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EnvironmentPropertyUpdates</b>: Describes updates to the environment properties for a Flink-based Kinesis Data Analytics application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FlinkApplicationConfigurationUpdate</i> Describes updates to a Flink-based Kinesis Data Analytics application's configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>FlinkApplicationConfigurationUpdate</b>: Describes updates to a Flink-based Kinesis Data Analytics application's configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationCodeConfigurationUpdate</i> Describes updates to an application's code configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ApplicationCodeConfigurationUpdate</b>: Describes updates to an application's code configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SqlApplicationConfigurationUpdate</i> Describes updates to a SQL-based Kinesis Data Analytics application's configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SqlApplicationConfigurationUpdate</b>: Describes updates to a SQL-based Kinesis Data Analytics application's configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReferenceDataSourceUpdates</i> The array of <a>ReferenceDataSourceUpdate</a> objects describing the new reference data sources used by the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OutputUpdates</i> The array of <a>OutputUpdate</a> objects describing the new destination streams used by the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InputUpdates</i> The array of <a>InputUpdate</a> objects describing the new input streams used by the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CodeContentTypeUpdate</i> Describes updates to the code content type.<br/>Describes updates to the code content of an application.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CodeContentUpdate</b>: Describes updates to the code content of an application.Describes updates to an application's checkpointing configuration. Checkpointing is the process of persisting application state for fault tolerance.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CheckpointConfigurationUpdate</b>: Describes updates to an application's checkpointing configuration. Checkpointing is the process of persisting application state for fault tolerance.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PropertyGroups</i> Describes updates to the execution property groups.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotsEnabledUpdate</i> Describes updates to whether snapshots are enabled for an application.<br/>Updates to the monitoring configuration of a Kinesis Data Analytics Studio notebook.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>MonitoringConfigurationUpdate</b>: Updates to the monitoring configuration of a Kinesis Data Analytics Studio notebook.&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationRestoreConfiguration</i> Describes updates to the restore behavior of a restarting application.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ApplicationRestoreConfiguration</b>: Describes updates to the restore behavior of a restarting application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FlinkRunConfiguration</i> Describes the starting parameters for a Flink-based Kinesis Data Analytics application.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>FlinkRunConfiguration</b>: Describes the starting parameters for a Flink-based Kinesis Data Analytics application.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowNonRestoredState</i> When restoring from a snapshot, specifies whether the runtime is allowed to skip a state that cannot be mapped to the new program. This will happen if the program is updated between snapshots to remove stateful parameters, and state data in the snapshot no longer corresponds to valid application data. For more information, see <a href="https://ci.apache.org/projects/flink/flink-docs-release-1.8/ops/state/savepoints.html#allowing-non-restored-state"> Allowing Non-Restored State</a> in the <a href="https://ci.apache.org/projects/flink/flink-docs-release-1.8/">Apache Flink documentation</a>. <note> This value defaults to <code>false</code>. If you update your application without specifying this parameter, <code>AllowNonRestoredState</code> will be set to <code>false</code>, even if it was previously set to <code>true</code>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotName</i> The identifier of an existing snapshot of application state to use to restart an application. The application uses this value if <code>RESTORE_FROM_CUSTOM_SNAPSHOT</code> is specified for the <code>ApplicationRestoreType</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationRestoreType</i> Specifies how the application should be restored.<br/>
        :return: ApplicationDetail:  Describes application updates.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationMode</i> To create a Kinesis Data Analytics Studio notebook, you must set the mode to <code>INTERACTIVE</code>. However, for a Kinesis Data Analytics for Apache Flink application, the mode is optional.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationVersionRolledBackTo</i> The version to which you want to roll back the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConditionalToken</i> A value you use to implement strong concurrency for application updates.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationVersionRolledBackFrom</i> If you reverted the application using <a>RollbackApplication</a>, the application version when <code>RollbackApplication</code> was called.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationVersionUpdatedFrom</i> The previous application version before the latest application update. <a>RollbackApplication</a> reverts the application to this version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationMaintenanceConfigurationDescription</i> The details of the maintenance configuration for the application.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ApplicationMaintenanceConfigurationDescription</b>: The details of the maintenance configuration for the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudWatchLoggingOptionDescriptions</i> Describes the application Amazon CloudWatch logging options.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationConfigurationDescription</i> Describes details about the application code and starting parameters for a Kinesis Data Analytics application.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ApplicationConfigurationDescription</b>: Describes details about the application code and starting parameters for a Kinesis Data Analytics application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdateTimestamp</i> The current timestamp when the application was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreateTimestamp</i> The current timestamp when the application was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationVersionId</i> Provides the current application version. Kinesis Data Analytics updates the <code>ApplicationVersionId</code> each time you update the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationStatus</i> The status of the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceExecutionRole</i> Specifies the IAM role that the application uses to access external resources.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RuntimeEnvironment</i> The runtime environment for the application (<code>SQL-1_0</code>, <code>FLINK-1_6</code>, <code>FLINK-1_8</code>, or <code>FLINK-1_11</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationName</i> The name of the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationDescription</i> The description of the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationARN</i> The ARN of the application.<br/>The details about inputs, outputs, and reference data sources for a SQL-based Kinesis Data Analytics application.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SqlApplicationConfigurationDescription</b>: The details about inputs, outputs, and reference data sources for a SQL-based Kinesis Data Analytics application.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationMaintenanceWindowEndTime</i> The end time for the maintenance window.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationMaintenanceWindowStartTime</i> The start time for the maintenance window.<br/>        """
        pass

    def update_application_maintenance_configuration(self, ApplicationMaintenanceConfigurationUpdate: ApplicationMaintenanceConfigurationUpdate, ApplicationName: str) -> UpdateApplicationMaintenanceConfigurationResponse:
        r"""Updates the maintenance configuration of the Kinesis Data Analytics application.  You can invoke this operation on an application that is in one of the two following states: <code>READY</code> or <code>RUNNING</code>. If you invoke it when the application is in a state other than these two states, it throws a <code>ResourceInUseException</code>. The service makes use of the updated configuration the next time it schedules maintenance for the application. If you invoke this operation after the service schedules maintenance, the service will apply the configuration update the next time it schedules maintenance for the application. This means that you might not see the maintenance configuration update applied to the maintenance process that follows a successful invocation of this operation, but to the following maintenance process instead. To see the current maintenance configuration of your application, invoke the <a>DescribeApplication</a> operation. For information about application maintenance, see <a href="https://docs.aws.amazon.com/kinesisanalytics/latest/java/maintenance.html">Kinesis Data Analytics for Apache Flink Maintenance</a>. <note> This operation is supported only for Amazon Kinesis Data Analytics for Apache Flink. </note>

        :param self:
        :param ApplicationMaintenanceConfigurationUpdate:  Describes the application maintenance configuration update.:<br/>ApplicationName:  The name of the application for which you want to update the maintenance configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationMaintenanceWindowStartTimeUpdate</i> The updated start time for the maintenance window.<br/>
        :return: ApplicationMaintenanceConfigurationDescription:  The application maintenance configuration description after the update.:<br/>ApplicationARN:  The Amazon Resource Name (ARN) of the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationMaintenanceWindowEndTime</i> The end time for the maintenance window.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationMaintenanceWindowStartTime</i> The start time for the maintenance window.<br/>        """
        pass





class KinesisVideo(BaseClient):
    r"""<p/>"""


    class ListStreamsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_streams` for valid parameters"""
            pass
    class ListSignalingChannelsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_signaling_channels` for valid parameters"""
            pass


    class CreateSignalingChannelInput(Mapping):
        pass
    
    class CreateSignalingChannelOutput(Mapping):
        pass
    
    class SingleMasterConfiguration(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class CreateStreamInput(Mapping):
        pass
    
    class CreateStreamOutput(Mapping):
        pass
    
    class ResourceTags(object):
        pass
    
    class DeleteSignalingChannelInput(Mapping):
        pass
    
    class DeleteSignalingChannelOutput(Mapping):
        pass
    
    class DeleteStreamInput(Mapping):
        pass
    
    class DeleteStreamOutput(Mapping):
        pass
    
    class DescribeSignalingChannelInput(Mapping):
        pass
    
    class DescribeSignalingChannelOutput(Mapping):
        pass
    
    class DescribeStreamInput(Mapping):
        pass
    
    class DescribeStreamOutput(Mapping):
        pass
    
    class GetDataEndpointInput(Mapping):
        pass
    
    class GetDataEndpointOutput(Mapping):
        pass
    
    class GetSignalingChannelEndpointInput(Mapping):
        pass
    
    class GetSignalingChannelEndpointOutput(Mapping):
        pass
    
    class SingleMasterChannelEndpointConfiguration(Mapping):
        pass
    
    class ListSignalingChannelsInput(Mapping):
        pass
    
    class ListSignalingChannelsOutput(Mapping):
        pass
    
    class ChannelNameCondition(Mapping):
        pass
    
    class ListStreamsInput(Mapping):
        pass
    
    class ListStreamsOutput(Mapping):
        pass
    
    class StreamNameCondition(Mapping):
        pass
    
    class ListTagsForResourceInput(Mapping):
        pass
    
    class ListTagsForResourceOutput(Mapping):
        pass
    
    class ListTagsForStreamInput(Mapping):
        pass
    
    class ListTagsForStreamOutput(Mapping):
        pass
    
    class TagResourceInput(Mapping):
        pass
    
    class TagResourceOutput(Mapping):
        pass
    
    class TagStreamInput(Mapping):
        pass
    
    class TagStreamOutput(Mapping):
        pass
    
    class UntagResourceInput(Mapping):
        pass
    
    class UntagResourceOutput(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UntagStreamInput(Mapping):
        pass
    
    class UntagStreamOutput(Mapping):
        pass
    
    class UpdateDataRetentionInput(Mapping):
        pass
    
    class UpdateDataRetentionOutput(Mapping):
        pass
    
    class UpdateSignalingChannelInput(Mapping):
        pass
    
    class UpdateSignalingChannelOutput(Mapping):
        pass
    
    class UpdateStreamInput(Mapping):
        pass
    
    class UpdateStreamOutput(Mapping):
        pass
    
    def create_signaling_channel(self, ChannelName: str, ChannelType: str=None, SingleMasterConfiguration: SingleMasterConfiguration=None, Tags: List[Tag]=None) -> CreateSignalingChannelOutput:
        r"""Creates a signaling channel.   <code>CreateSignalingChannel</code> is an asynchronous operation.

        :param self:
        :param Tags:  A set of tags (key-value pairs) that you want to associate with this channel.<br/>SingleMasterConfiguration:  A structure containing the configuration for the <code>SINGLE_MASTER</code> channel type. :<br/>ChannelType:  A type of the signaling channel that you are creating. Currently, <code>SINGLE_MASTER</code> is the only supported channel type. <br/>ChannelName:  A name for the signaling channel that you are creating. It must be unique for each AWS account and AWS Region.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MessageTtlSeconds</i> The period of time a signaling channel retains underlivered messages before they are discarded.<br/>
        :return: ChannelARN:  The Amazon Resource Name (ARN) of the created channel.<br/>        """
        pass

    def create_stream(self, StreamName: str, DeviceName: str=None, MediaType: str=None, KmsKeyId: str=None, DataRetentionInHours: int=None, Tags: ResourceTags=None) -> CreateStreamOutput:
        r"""Creates a new Kinesis video stream.  When you create a new stream, Kinesis Video Streams assigns it a version number. When you change the stream's metadata, Kinesis Video Streams updates the version.   <code>CreateStream</code> is an asynchronous operation. For information about how the service works, see <a href="https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/how-it-works.html">How it Works</a>.  You must have permissions for the <code>KinesisVideo:CreateStream</code> action.

        :param self:
        :param Tags:  A list of tags to associate with the specified stream. Each tag is a key-value pair (the value is optional).<br/>DataRetentionInHours:  The number of hours that you want to retain the data in the stream. Kinesis Video Streams retains the data in a data store that is associated with the stream. The default value is 0, indicating that the stream does not persist data. When the <code>DataRetentionInHours</code> value is 0, consumers can still consume the fragments that remain in the service host buffer, which has a retention time limit of 5 minutes and a retention memory limit of 200 MB. Fragments are removed from the buffer when either limit is reached.<br/>KmsKeyId:  The ID of the AWS Key Management Service (AWS KMS) key that you want Kinesis Video Streams to use to encrypt stream data. If no key ID is specified, the default, Kinesis Video-managed key (<code>aws/kinesisvideo</code>) is used.  For more information, see <a href="https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html#API_DescribeKey_RequestParameters">DescribeKey</a>. <br/>MediaType:  The media type of the stream. Consumers of the stream can use this information when processing the stream. For more information about media types, see <a href="http://www.iana.org/assignments/media-types/media-types.xhtml">Media Types</a>. If you choose to specify the <code>MediaType</code>, see <a href="https://tools.ietf.org/html/rfc6838#section-4.2">Naming Requirements</a> for guidelines. Example valid values include "video/h264" and "video/h264,audio/aac". This parameter is optional; the default value is <code>null</code> (or empty in JSON).<br/>StreamName:  A name for the stream that you are creating. The stream name is an identifier for the stream, and must be unique for each account and region.<br/>DeviceName:  The name of the device that is writing to the stream.  <note> In the current implementation, Kinesis Video Streams does not use this name. </note><br/>
        :return: StreamARN:  The Amazon Resource Name (ARN) of the stream.<br/>        """
        pass

    def delete_signaling_channel(self, ChannelARN: str, CurrentVersion: str=None) -> DeleteSignalingChannelOutput:
        r"""Deletes a specified signaling channel. <code>DeleteSignalingChannel</code> is an asynchronous operation. If you don't specify the channel's current version, the most recent version is deleted.

        :param self:
        :param CurrentVersion:  The current version of the signaling channel that you want to delete. You can obtain the current version by invoking the <code>DescribeSignalingChannel</code> or <code>ListSignalingChannels</code> API operations.<br/>ChannelARN:  The Amazon Resource Name (ARN) of the signaling channel that you want to delete.<br/>
        :return:         """
        pass

    def delete_stream(self, StreamARN: str, CurrentVersion: str=None) -> DeleteStreamOutput:
        r"""Deletes a Kinesis video stream and the data contained in the stream.  This method marks the stream for deletion, and makes the data in the stream inaccessible immediately.    To ensure that you have the latest version of the stream before deleting it, you can specify the stream version. Kinesis Video Streams assigns a version to each stream. When you update a stream, Kinesis Video Streams assigns a new version number. To get the latest stream version, use the <code>DescribeStream</code> API.  This operation requires permission for the <code>KinesisVideo:DeleteStream</code> action.

        :param self:
        :param CurrentVersion:  Optional: The version of the stream that you want to delete.  Specify the version as a safeguard to ensure that your are deleting the correct stream. To get the stream version, use the <code>DescribeStream</code> API. If not specified, only the <code>CreationTime</code> is checked before deleting the stream.<br/>StreamARN:  The Amazon Resource Name (ARN) of the stream that you want to delete. <br/>
        :return:         """
        pass

    def describe_signaling_channel(self, ChannelName: str=None, ChannelARN: str=None) -> DescribeSignalingChannelOutput:
        r"""Returns the most current information about the signaling channel. You must specify either the name or the Amazon Resource Name (ARN) of the channel that you want to describe.

        :param self:
        :param ChannelARN:  The ARN of the signaling channel that you want to describe.<br/>ChannelName:  The name of the signaling channel that you want to describe.<br/>
        :return: ChannelInfo:  A structure that encapsulates the specified signaling channel's metadata and properties.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The current version of the signaling channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SingleMasterConfiguration</i> A structure that contains the configuration for the <code>SINGLE_MASTER</code> channel type.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SingleMasterConfiguration</b>: A structure that contains the configuration for the <code>SINGLE_MASTER</code> channel type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The time at which the signaling channel was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ChannelStatus</i> Current status of the signaling channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ChannelType</i> The type of the signaling channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ChannelARN</i> The Amazon Resource Name (ARN) of the signaling channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ChannelName</i> The name of the signaling channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MessageTtlSeconds</i> The period of time a signaling channel retains underlivered messages before they are discarded.<br/>        """
        pass

    def describe_stream(self, StreamName: str=None, StreamARN: str=None) -> DescribeStreamOutput:
        r"""Returns the most current information about the specified stream. You must specify either the <code>StreamName</code> or the <code>StreamARN</code>. 

        :param self:
        :param StreamARN:  The Amazon Resource Name (ARN) of the stream.<br/>StreamName:  The name of the stream.<br/>
        :return: StreamInfo:  An object that describes the stream.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataRetentionInHours</i> How long the stream retains data, in hours.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> A time stamp that indicates when the stream was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The version of the stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The ID of the AWS Key Management Service (AWS KMS) key that Kinesis Video Streams uses to encrypt data on the stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MediaType</i> The <code>MediaType</code> of the stream. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamARN</i> The Amazon Resource Name (ARN) of the stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamName</i> The name of the stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeviceName</i> The name of the device that is associated with the stream.<br/>        """
        pass

    def get_data_endpoint(self, APIName: str, StreamName: str=None, StreamARN: str=None) -> GetDataEndpointOutput:
        r"""Gets an endpoint for a specified stream for either reading or writing. Use this endpoint in your application to read from the specified stream (using the <code>GetMedia</code> or <code>GetMediaForFragmentList</code> operations) or write to it (using the <code>PutMedia</code> operation).  <note> The returned endpoint does not have the API name appended. The client needs to add the API name to the returned endpoint. </note> In the request, specify the stream either by <code>StreamName</code> or <code>StreamARN</code>.

        :param self:
        :param APIName:  The name of the API action for which to get an endpoint.<br/>StreamARN:  The Amazon Resource Name (ARN) of the stream that you want to get the endpoint for. You must specify either this parameter or a <code>StreamName</code> in the request. <br/>StreamName:  The name of the stream that you want to get the endpoint for. You must specify either this parameter or a <code>StreamARN</code> in the request.<br/>
        :return: DataEndpoint:  The endpoint value. To read data from the stream or to write data to it, specify this endpoint in your application.<br/>        """
        pass

    def get_signaling_channel_endpoint(self, ChannelARN: str, SingleMasterChannelEndpointConfiguration: SingleMasterChannelEndpointConfiguration=None) -> GetSignalingChannelEndpointOutput:
        r"""Provides an endpoint for the specified signaling channel to send and receive messages. This API uses the <code>SingleMasterChannelEndpointConfiguration</code> input parameter, which consists of the <code>Protocols</code> and <code>Role</code> properties.  <code>Protocols</code> is used to determine the communication mechanism. For example, if you specify <code>WSS</code> as the protocol, this API produces a secure websocket endpoint. If you specify <code>HTTPS</code> as the protocol, this API generates an HTTPS endpoint.   <code>Role</code> determines the messaging permissions. A <code>MASTER</code> role results in this API generating an endpoint that a client can use to communicate with any of the viewers on the channel. A <code>VIEWER</code> role results in this API generating an endpoint that a client can use to communicate only with a <code>MASTER</code>. 

        :param self:
        :param SingleMasterChannelEndpointConfiguration:  A structure containing the endpoint configuration for the <code>SINGLE_MASTER</code> channel type.:<br/>ChannelARN:  The Amazon Resource Name (ARN) of the signalling channel for which you want to get an endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Role</i> This property is used to determine messaging permissions in this <code>SINGLE_MASTER</code> signaling channel. If <code>MASTER</code> is specified, this API returns an endpoint that a client can use to receive offers from and send answers to any of the viewers on this signaling channel. If <code>VIEWER</code> is specified, this API returns an endpoint that a client can use only to send offers to another <code>MASTER</code> client on this signaling channel. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Protocols</i> This property is used to determine the nature of communication over this <code>SINGLE_MASTER</code> signaling channel. If <code>WSS</code> is specified, this API returns a websocket endpoint. If <code>HTTPS</code> is specified, this API returns an <code>HTTPS</code> endpoint.<br/>
        :return: ResourceEndpointList:  A list of endpoints for the specified signaling channel.<br/>        """
        pass

    def list_signaling_channels(self, MaxResults: int=None, NextToken: str=None, ChannelNameCondition: ChannelNameCondition=None) -> ListSignalingChannelsOutput:
        r"""Returns an array of <code>ChannelInfo</code> objects. Each object describes a signaling channel. To retrieve only those channels that satisfy a specific condition, you can specify a <code>ChannelNameCondition</code>.

        :param self:
        :param ChannelNameCondition:  Optional: Returns only the channels that satisfy a specific condition.:<br/>NextToken:  If you specify this parameter, when the result of a <code>ListSignalingChannels</code> operation is truncated, the call returns the <code>NextToken</code> in the response. To get another batch of channels, provide this token in your next request.<br/>MaxResults:  The maximum number of channels to return in the response. The default is 500.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ComparisonValue</i> A value to compare.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ComparisonOperator</i> A comparison operator. Currently, you can only specify the <code>BEGINS_WITH</code> operator, which finds signaling channels whose names begin with a given prefix.<br/>
        :return: NextToken:  If the response is truncated, the call returns this element with a token. To get the next batch of streams, use this token in your next request.<br/>ChannelInfoList:  An array of <code>ChannelInfo</code> objects.<br/>        """
        pass

    def list_streams(self, MaxResults: int=None, NextToken: str=None, StreamNameCondition: StreamNameCondition=None) -> ListStreamsOutput:
        r"""Returns an array of <code>StreamInfo</code> objects. Each object describes a stream. To retrieve only streams that satisfy a specific condition, you can specify a <code>StreamNameCondition</code>. 

        :param self:
        :param StreamNameCondition:  Optional: Returns only streams that satisfy a specific condition. Currently, you can specify only the prefix of a stream name as a condition. :<br/>NextToken:  If you specify this parameter, when the result of a <code>ListStreams</code> operation is truncated, the call returns the <code>NextToken</code> in the response. To get another batch of streams, provide this token in your next request.<br/>MaxResults:  The maximum number of streams to return in the response. The default is 10,000.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ComparisonValue</i> A value to compare.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ComparisonOperator</i> A comparison operator. Currently, you can specify only the <code>BEGINS_WITH</code> operator, which finds streams whose names start with a given prefix.<br/>
        :return: NextToken:  If the response is truncated, the call returns this element with a token. To get the next batch of streams, use this token in your next request. <br/>StreamInfoList:  An array of <code>StreamInfo</code> objects.<br/>        """
        pass

    def list_tags_for_resource(self, ResourceARN: str, NextToken: str=None) -> ListTagsForResourceOutput:
        r"""Returns a list of tags associated with the specified signaling channel.

        :param self:
        :param ResourceARN:  The Amazon Resource Name (ARN) of the signaling channel for which you want to list tags.<br/>NextToken:  If you specify this parameter and the result of a <code>ListTagsForResource</code> call is truncated, the response includes a token that you can use in the next request to fetch the next batch of tags. <br/>
        :return: Tags:  A map of tag keys and values associated with the specified signaling channel.<br/>NextToken:  If you specify this parameter and the result of a <code>ListTagsForResource</code> call is truncated, the response includes a token that you can use in the next request to fetch the next set of tags. <br/>        """
        pass

    def list_tags_for_stream(self, NextToken: str=None, StreamARN: str=None, StreamName: str=None) -> ListTagsForStreamOutput:
        r"""Returns a list of tags associated with the specified stream. In the request, you must specify either the <code>StreamName</code> or the <code>StreamARN</code>. 

        :param self:
        :param StreamName:  The name of the stream that you want to list tags for.<br/>StreamARN:  The Amazon Resource Name (ARN) of the stream that you want to list tags for.<br/>NextToken:  If you specify this parameter and the result of a <code>ListTagsForStream</code> call is truncated, the response includes a token that you can use in the next request to fetch the next batch of tags.<br/>
        :return: Tags:  A map of tag keys and values associated with the specified stream.<br/>NextToken:  If you specify this parameter and the result of a <code>ListTags</code> call is truncated, the response includes a token that you can use in the next request to fetch the next set of tags.<br/>        """
        pass

    def tag_resource(self, Tags: List[Tag], ResourceARN: str) -> TagResourceOutput:
        r"""Adds one or more tags to a signaling channel. A <i>tag</i> is a key-value pair (the value is optional) that you can define and assign to AWS resources. If you specify a tag that already exists, the tag value is replaced with the value that you specify in the request. For more information, see <a href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html">Using Cost Allocation Tags</a> in the <i>AWS Billing and Cost Management User Guide</i>.

        :param self:
        :param Tags:  A list of tags to associate with the specified signaling channel. Each tag is a key-value pair.<br/>ResourceARN:  The Amazon Resource Name (ARN) of the signaling channel to which you want to add tags.<br/>
        :return:         """
        pass

    def tag_stream(self, Tags: ResourceTags, StreamARN: str=None, StreamName: str=None) -> TagStreamOutput:
        r"""Adds one or more tags to a stream. A <i>tag</i> is a key-value pair (the value is optional) that you can define and assign to AWS resources. If you specify a tag that already exists, the tag value is replaced with the value that you specify in the request. For more information, see <a href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html">Using Cost Allocation Tags</a> in the <i>AWS Billing and Cost Management User Guide</i>.  You must provide either the <code>StreamName</code> or the <code>StreamARN</code>. This operation requires permission for the <code>KinesisVideo:TagStream</code> action. Kinesis video streams support up to 50 tags.

        :param self:
        :param Tags:  A list of tags to associate with the specified stream. Each tag is a key-value pair (the value is optional).<br/>StreamName:  The name of the stream that you want to add the tag or tags to.<br/>StreamARN:  The Amazon Resource Name (ARN) of the resource that you want to add the tag or tags to.<br/>
        :return:         """
        pass

    def untag_resource(self, TagKeyList: List[TagKey], ResourceARN: str) -> UntagResourceOutput:
        r"""Removes one or more tags from a signaling channel. In the request, specify only a tag key or keys; don't specify the value. If you specify a tag key that does not exist, it's ignored.

        :param self:
        :param TagKeyList:  A list of the keys of the tags that you want to remove.<br/>ResourceARN:  The Amazon Resource Name (ARN) of the signaling channel from which you want to remove tags.<br/>
        :return:         """
        pass

    def untag_stream(self, TagKeyList: List[TagKey], StreamARN: str=None, StreamName: str=None) -> UntagStreamOutput:
        r"""Removes one or more tags from a stream. In the request, specify only a tag key or keys; don't specify the value. If you specify a tag key that does not exist, it's ignored. In the request, you must provide the <code>StreamName</code> or <code>StreamARN</code>.

        :param self:
        :param TagKeyList:  A list of the keys of the tags that you want to remove.<br/>StreamName:  The name of the stream that you want to remove tags from.<br/>StreamARN:  The Amazon Resource Name (ARN) of the stream that you want to remove tags from.<br/>
        :return:         """
        pass

    def update_data_retention(self, DataRetentionChangeInHours: int, Operation: str, CurrentVersion: str, StreamName: str=None, StreamARN: str=None) -> UpdateDataRetentionOutput:
        r""" Increases or decreases the stream's data retention period by the value that you specify. To indicate whether you want to increase or decrease the data retention period, specify the <code>Operation</code> parameter in the request body. In the request, you must specify either the <code>StreamName</code> or the <code>StreamARN</code>.  <note> The retention period that you specify replaces the current value. </note> This operation requires permission for the <code>KinesisVideo:UpdateDataRetention</code> action. Changing the data retention period affects the data in the stream as follows: <ul> <li> If the data retention period is increased, existing data is retained for the new retention period. For example, if the data retention period is increased from one hour to seven hours, all existing data is retained for seven hours. </li> <li> If the data retention period is decreased, existing data is retained for the new retention period. For example, if the data retention period is decreased from seven hours to one hour, all existing data is retained for one hour, and any data older than one hour is deleted immediately. </li> </ul>

        :param self:
        :param DataRetentionChangeInHours:  The retention period, in hours. The value you specify replaces the current value. The maximum value for this parameter is 87600 (ten years).<br/>Operation:  Indicates whether you want to increase or decrease the retention period.<br/>CurrentVersion:  The version of the stream whose retention period you want to change. To get the version, call either the <code>DescribeStream</code> or the <code>ListStreams</code> API.<br/>StreamARN:  The Amazon Resource Name (ARN) of the stream whose retention period you want to change.<br/>StreamName:  The name of the stream whose retention period you want to change.<br/>
        :return:         """
        pass

    def update_signaling_channel(self, CurrentVersion: str, ChannelARN: str, SingleMasterConfiguration: SingleMasterConfiguration=None) -> UpdateSignalingChannelOutput:
        r"""Updates the existing signaling channel. This is an asynchronous operation and takes time to complete.  If the <code>MessageTtlSeconds</code> value is updated (either increased or reduced), it only applies to new messages sent via this channel after it's been updated. Existing messages are still expired as per the previous <code>MessageTtlSeconds</code> value.

        :param self:
        :param SingleMasterConfiguration:  The structure containing the configuration for the <code>SINGLE_MASTER</code> type of the signaling channel that you want to update. :<br/>CurrentVersion:  The current version of the signaling channel that you want to update.<br/>ChannelARN:  The Amazon Resource Name (ARN) of the signaling channel that you want to update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MessageTtlSeconds</i> The period of time a signaling channel retains underlivered messages before they are discarded.<br/>
        :return:         """
        pass

    def update_stream(self, CurrentVersion: str, StreamName: str=None, StreamARN: str=None, DeviceName: str=None, MediaType: str=None) -> UpdateStreamOutput:
        r"""Updates stream metadata, such as the device name and media type. You must provide the stream name or the Amazon Resource Name (ARN) of the stream. To make sure that you have the latest version of the stream before updating it, you can specify the stream version. Kinesis Video Streams assigns a version to each stream. When you update a stream, Kinesis Video Streams assigns a new version number. To get the latest stream version, use the <code>DescribeStream</code> API.   <code>UpdateStream</code> is an asynchronous operation, and takes time to complete.

        :param self:
        :param MediaType:  The stream's media type. Use <code>MediaType</code> to specify the type of content that the stream contains to the consumers of the stream. For more information about media types, see <a href="http://www.iana.org/assignments/media-types/media-types.xhtml">Media Types</a>. If you choose to specify the <code>MediaType</code>, see <a href="https://tools.ietf.org/html/rfc6838#section-4.2">Naming Requirements</a>. To play video on the console, you must specify the correct video type. For example, if the video in the stream is H.264, specify <code>video/h264</code> as the <code>MediaType</code>.<br/>DeviceName:  The name of the device that is writing to the stream.  <note>  In the current implementation, Kinesis Video Streams does not use this name.  </note><br/>CurrentVersion:  The version of the stream whose metadata you want to update.<br/>StreamARN:  The ARN of the stream whose metadata you want to update.<br/>StreamName:  The name of the stream whose metadata you want to update. The stream name is an identifier for the stream, and must be unique for each account and region.<br/>
        :return:         """
        pass





class KMS(BaseClient):
    r"""<fullname>AWS Key Management Service</fullname> AWS Key Management Service (AWS KMS) is an encryption and key management web service. This guide describes the AWS KMS operations that you can call programmatically. For general information about AWS KMS, see the <a href="https://docs.aws.amazon.com/kms/latest/developerguide/"> <i>AWS Key Management Service Developer Guide</i> </a>. <note> AWS provides SDKs that consist of libraries and sample code for various programming languages and platforms (Java, Ruby, .Net, macOS, Android, etc.). The SDKs provide a convenient way to create programmatic access to AWS KMS and other AWS services. For example, the SDKs take care of tasks such as signing requests (see below), managing errors, and retrying requests automatically. For more information about the AWS SDKs, including how to download and install them, see <a href="http://aws.amazon.com/tools/">Tools for Amazon Web Services</a>. </note> We recommend that you use the AWS SDKs to make programmatic API calls to AWS KMS. Clients must support TLS (Transport Layer Security) 1.0. We recommend TLS 1.2. Clients must also support cipher suites with Perfect Forward Secrecy (PFS) such as Ephemeral Diffie-Hellman (DHE) or Elliptic Curve Ephemeral Diffie-Hellman (ECDHE). Most modern systems such as Java 7 and later support these modes.  <b>Signing Requests</b>  Requests must be signed by using an access key ID and a secret access key. We strongly recommend that you <i>do not</i> use your AWS account (root) access key ID and secret key for everyday work with AWS KMS. Instead, use the access key ID and secret access key for an IAM user. You can also use the AWS Security Token Service to generate temporary security credentials that you can use to sign requests. All AWS KMS operations require <a href="https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html">Signature Version 4</a>.  <b>Logging API Requests</b>  AWS KMS supports AWS CloudTrail, a service that logs AWS API calls and related events for your AWS account and delivers them to an Amazon S3 bucket that you specify. By using the information collected by CloudTrail, you can determine what requests were made to AWS KMS, who made the request, when it was made, and so on. To learn more about CloudTrail, including how to turn it on and find your log files, see the <a href="https://docs.aws.amazon.com/awscloudtrail/latest/userguide/">AWS CloudTrail User Guide</a>.  <b>Additional Resources</b>  For more information about credentials and request signing, see the following: <ul> <li>  <a href="https://docs.aws.amazon.com/general/latest/gr/aws-security-credentials.html">AWS Security Credentials</a> - This topic provides general information about the types of credentials used for accessing AWS. </li> <li>  <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html">Temporary Security Credentials</a> - This section of the <i>IAM User Guide</i> describes how to create and use temporary security credentials. </li> <li>  <a href="https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html">Signature Version 4 Signing Process</a> - This set of topics walks you through the process of signing a request using an access key ID and a secret access key. </li> </ul>  <b>Commonly Used API Operations</b>  Of the API operations discussed in this guide, the following will prove the most useful for most applications. You will likely perform operations other than these, such as creating keys and assigning policies, by using the console. <ul> <li>  <a>Encrypt</a>  </li> <li>  <a>Decrypt</a>  </li> <li>  <a>GenerateDataKey</a>  </li> <li>  <a>GenerateDataKeyWithoutPlaintext</a>  </li> </ul>"""


    class ListAliasesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_aliases` for valid parameters"""
            pass
    class ListGrantsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_grants` for valid parameters"""
            pass
    class ListKeyPoliciesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_key_policies` for valid parameters"""
            pass
    class ListKeysPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_keys` for valid parameters"""
            pass


    class CancelKeyDeletionRequest(Mapping):
        pass
    
    class CancelKeyDeletionResponse(Mapping):
        pass
    
    class ConnectCustomKeyStoreRequest(Mapping):
        pass
    
    class ConnectCustomKeyStoreResponse(Mapping):
        pass
    
    class CreateAliasRequest(Mapping):
        pass
    
    class CreateCustomKeyStoreRequest(Mapping):
        pass
    
    class CreateCustomKeyStoreResponse(Mapping):
        pass
    
    class CreateGrantRequest(Mapping):
        pass
    
    class CreateGrantResponse(Mapping):
        pass
    
    class GrantOperation(object):
        pass
    
    class GrantConstraints(Mapping):
        pass
    
    class GrantTokenType(object):
        pass
    
    class CreateKeyRequest(Mapping):
        pass
    
    class CreateKeyResponse(Mapping):
        pass
    
    class BooleanType(object):
        pass
    
    class Tag(Mapping):
        pass
    
    class NullableBooleanType(object):
        pass
    
    class DecryptRequest(Mapping):
        pass
    
    class DecryptResponse(Mapping):
        pass
    
    class CiphertextType(object):
        pass
    
    class EncryptionContextType(object):
        pass
    
    class DeleteAliasRequest(Mapping):
        pass
    
    class DeleteCustomKeyStoreRequest(Mapping):
        pass
    
    class DeleteCustomKeyStoreResponse(Mapping):
        pass
    
    class DeleteImportedKeyMaterialRequest(Mapping):
        pass
    
    class DescribeCustomKeyStoresRequest(Mapping):
        pass
    
    class DescribeCustomKeyStoresResponse(Mapping):
        pass
    
    class DescribeKeyRequest(Mapping):
        pass
    
    class DescribeKeyResponse(Mapping):
        pass
    
    class DisableKeyRequest(Mapping):
        pass
    
    class DisableKeyRotationRequest(Mapping):
        pass
    
    class DisconnectCustomKeyStoreRequest(Mapping):
        pass
    
    class DisconnectCustomKeyStoreResponse(Mapping):
        pass
    
    class EnableKeyRequest(Mapping):
        pass
    
    class EnableKeyRotationRequest(Mapping):
        pass
    
    class EncryptRequest(Mapping):
        pass
    
    class EncryptResponse(Mapping):
        pass
    
    class PlaintextType(object):
        pass
    
    class GenerateDataKeyRequest(Mapping):
        pass
    
    class GenerateDataKeyResponse(Mapping):
        pass
    
    class GenerateDataKeyPairRequest(Mapping):
        pass
    
    class GenerateDataKeyPairResponse(Mapping):
        pass
    
    class GenerateDataKeyPairWithoutPlaintextRequest(Mapping):
        pass
    
    class GenerateDataKeyPairWithoutPlaintextResponse(Mapping):
        pass
    
    class GenerateDataKeyWithoutPlaintextRequest(Mapping):
        pass
    
    class GenerateDataKeyWithoutPlaintextResponse(Mapping):
        pass
    
    class GenerateRandomRequest(Mapping):
        pass
    
    class GenerateRandomResponse(Mapping):
        pass
    
    class GetKeyPolicyRequest(Mapping):
        pass
    
    class GetKeyPolicyResponse(Mapping):
        pass
    
    class GetKeyRotationStatusRequest(Mapping):
        pass
    
    class GetKeyRotationStatusResponse(Mapping):
        pass
    
    class GetParametersForImportRequest(Mapping):
        pass
    
    class GetParametersForImportResponse(Mapping):
        pass
    
    class GetPublicKeyRequest(Mapping):
        pass
    
    class GetPublicKeyResponse(Mapping):
        pass
    
    class ImportKeyMaterialRequest(Mapping):
        pass
    
    class ImportKeyMaterialResponse(Mapping):
        pass
    
    class DateType(object):
        pass
    
    class ListAliasesRequest(Mapping):
        pass
    
    class ListAliasesResponse(Mapping):
        pass
    
    class ListGrantsRequest(Mapping):
        pass
    
    class ListGrantsResponse(Mapping):
        pass
    
    class ListKeyPoliciesRequest(Mapping):
        pass
    
    class ListKeyPoliciesResponse(Mapping):
        pass
    
    class ListKeysRequest(Mapping):
        pass
    
    class ListKeysResponse(Mapping):
        pass
    
    class ListResourceTagsRequest(Mapping):
        pass
    
    class ListResourceTagsResponse(Mapping):
        pass
    
    class ListRetirableGrantsRequest(Mapping):
        pass
    
    class PutKeyPolicyRequest(Mapping):
        pass
    
    class ReEncryptRequest(Mapping):
        pass
    
    class ReEncryptResponse(Mapping):
        pass
    
    class ReplicateKeyRequest(Mapping):
        pass
    
    class ReplicateKeyResponse(Mapping):
        pass
    
    class RetireGrantRequest(Mapping):
        pass
    
    class RevokeGrantRequest(Mapping):
        pass
    
    class ScheduleKeyDeletionRequest(Mapping):
        pass
    
    class ScheduleKeyDeletionResponse(Mapping):
        pass
    
    class SignRequest(Mapping):
        pass
    
    class SignResponse(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class TagKeyType(object):
        pass
    
    class UpdateAliasRequest(Mapping):
        pass
    
    class UpdateCustomKeyStoreRequest(Mapping):
        pass
    
    class UpdateCustomKeyStoreResponse(Mapping):
        pass
    
    class UpdateKeyDescriptionRequest(Mapping):
        pass
    
    class UpdatePrimaryRegionRequest(Mapping):
        pass
    
    class VerifyRequest(Mapping):
        pass
    
    class VerifyResponse(Mapping):
        pass
    
    def cancel_key_deletion(self, KeyId: str) -> CancelKeyDeletionResponse:
        r"""Cancels the deletion of a customer master key (CMK). When this operation succeeds, the key state of the CMK is <code>Disabled</code>. To enable the CMK, use <a>EnableKey</a>.  For more information about scheduling and canceling deletion of a CMK, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html">Deleting Customer Master Keys</a> in the <i>AWS Key Management Service Developer Guide</i>. The CMK that you use for this operation must be in a compatible key state. For details, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html">Key state: Effect on your CMK</a> in the <i>AWS Key Management Service Developer Guide</i>.  <b>Cross-account use</b>: No. You cannot perform this operation on a CMK in a different AWS account.  <b>Required permissions</b>: <a href="https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html">kms:CancelKeyDeletion</a> (key policy)  <b>Related operations</b>: <a>ScheduleKeyDeletion</a> 

        :param self:
        :param KeyId:  Identifies the customer master key (CMK) whose deletion is being canceled. Specify the key ID or key ARN of the CMK. For example: <ul> <li> Key ID: <code>1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> <li> Key ARN: <code>arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> </ul> To get the key ID and key ARN for a CMK, use <a>ListKeys</a> or <a>DescribeKey</a>.<br/>
        :return: KeyId:  The Amazon Resource Name (<a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-ARN">key ARN</a>) of the CMK whose deletion is canceled.<br/>        """
        pass

    def connect_custom_key_store(self, CustomKeyStoreId: str) -> ConnectCustomKeyStoreResponse:
        r"""Connects or reconnects a <a href="https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html">custom key store</a> to its associated AWS CloudHSM cluster. The custom key store must be connected before you can create customer master keys (CMKs) in the key store or use the CMKs it contains. You can disconnect and reconnect a custom key store at any time. To connect a custom key store, its associated AWS CloudHSM cluster must have at least one active HSM. To get the number of active HSMs in a cluster, use the <a href="https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_DescribeClusters.html">DescribeClusters</a> operation. To add HSMs to the cluster, use the <a href="https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_CreateHsm.html">CreateHsm</a> operation. Also, the <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-store-concepts.html#concept-kmsuser"> <code>kmsuser</code> crypto user</a> (CU) must not be logged into the cluster. This prevents AWS KMS from using this account to log in. The connection process can take an extended amount of time to complete; up to 20 minutes. This operation starts the connection process, but it does not wait for it to complete. When it succeeds, this operation quickly returns an HTTP 200 response and a JSON object with no properties. However, this response does not indicate that the custom key store is connected. To get the connection state of the custom key store, use the <a>DescribeCustomKeyStores</a> operation. During the connection process, AWS KMS finds the AWS CloudHSM cluster that is associated with the custom key store, creates the connection infrastructure, connects to the cluster, logs into the AWS CloudHSM client as the <code>kmsuser</code> CU, and rotates its password. The <code>ConnectCustomKeyStore</code> operation might fail for various reasons. To find the reason, use the <a>DescribeCustomKeyStores</a> operation and see the <code>ConnectionErrorCode</code> in the response. For help interpreting the <code>ConnectionErrorCode</code>, see <a>CustomKeyStoresListEntry</a>. To fix the failure, use the <a>DisconnectCustomKeyStore</a> operation to disconnect the custom key store, correct the error, use the <a>UpdateCustomKeyStore</a> operation if necessary, and then use <code>ConnectCustomKeyStore</code> again. If you are having trouble connecting or disconnecting a custom key store, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html">Troubleshooting a Custom Key Store</a> in the <i>AWS Key Management Service Developer Guide</i>.  <b>Cross-account use</b>: No. You cannot perform this operation on a custom key store in a different AWS account.  <b>Required permissions</b>: <a href="https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html">kms:ConnectCustomKeyStore</a> (IAM policy)  <b>Related operations</b>  <ul> <li>  <a>CreateCustomKeyStore</a>  </li> <li>  <a>DeleteCustomKeyStore</a>  </li> <li>  <a>DescribeCustomKeyStores</a>  </li> <li>  <a>DisconnectCustomKeyStore</a>  </li> <li>  <a>UpdateCustomKeyStore</a>  </li> </ul>

        :param self:
        :param CustomKeyStoreId:  Enter the key store ID of the custom key store that you want to connect. To find the ID of a custom key store, use the <a>DescribeCustomKeyStores</a> operation.<br/>
        :return:         """
        pass

    def create_alias(self, TargetKeyId: str, AliasName: str):
        r"""Creates a friendly name for a customer master key (CMK).  <note> Adding, deleting, or updating an alias can allow or deny permission to the CMK. For details, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/abac.html">Using ABAC in AWS KMS</a> in the <i>AWS Key Management Service Developer Guide</i>. </note> You can use an alias to identify a CMK in the AWS KMS console, in the <a>DescribeKey</a> operation and in <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations">cryptographic operations</a>, such as <a>Encrypt</a> and <a>GenerateDataKey</a>. You can also change the CMK that's associated with the alias (<a>UpdateAlias</a>) or delete the alias (<a>DeleteAlias</a>) at any time. These operations don't affect the underlying CMK.  You can associate the alias with any customer managed CMK in the same AWS Region. Each alias is associated with only one CMK at a time, but a CMK can have multiple aliases. A valid CMK is required. You can't create an alias without a CMK. The alias must be unique in the account and Region, but you can have aliases with the same name in different Regions. For detailed information about aliases, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/kms-alias.html">Using aliases</a> in the <i>AWS Key Management Service Developer Guide</i>. This operation does not return a response. To get the alias that you created, use the <a>ListAliases</a> operation. The CMK that you use for this operation must be in a compatible key state. For details, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html">Key state: Effect on your CMK</a> in the <i>AWS Key Management Service Developer Guide</i>.  <b>Cross-account use</b>: No. You cannot perform this operation on an alias in a different AWS account.  <b>Required permissions</b>  <ul> <li>  <a href="https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html">kms:CreateAlias</a> on the alias (IAM policy). </li> <li>  <a href="https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html">kms:CreateAlias</a> on the CMK (key policy). </li> </ul> For details, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/kms-alias.html#alias-access">Controlling access to aliases</a> in the <i>AWS Key Management Service Developer Guide</i>.  <b>Related operations:</b>  <ul> <li>  <a>DeleteAlias</a>  </li> <li>  <a>ListAliases</a>  </li> <li>  <a>UpdateAlias</a>  </li> </ul>

        :param self:
        :param TargetKeyId:  Associates the alias with the specified <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk">customer managed CMK</a>. The CMK must be in the same AWS Region.  A valid CMK ID is required. If you supply a null or empty string value, this operation returns an error. For help finding the key ID and ARN, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/viewing-keys.html#find-cmk-id-arn">Finding the Key ID and ARN</a> in the <i>AWS Key Management Service Developer Guide</i>. Specify the key ID or key ARN of the CMK. For example: <ul> <li> Key ID: <code>1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> <li> Key ARN: <code>arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> </ul> To get the key ID and key ARN for a CMK, use <a>ListKeys</a> or <a>DescribeKey</a>.<br/>AliasName:  Specifies the alias name. This value must begin with <code>alias/</code> followed by a name, such as <code>alias/ExampleAlias</code>.  The <code>AliasName</code> value must be string of 1-256 characters. It can contain only alphanumeric characters, forward slashes (/), underscores (_), and dashes (-). The alias name cannot begin with <code>alias/aws/</code>. The <code>alias/aws/</code> prefix is reserved for <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk">AWS managed CMKs</a>.<br/>
        :return:         """
        pass

    def create_custom_key_store(self, KeyStorePassword: str, TrustAnchorCertificate: str, CloudHsmClusterId: str, CustomKeyStoreName: str) -> CreateCustomKeyStoreResponse:
        r"""Creates a <a href="https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html">custom key store</a> that is associated with an <a href="https://docs.aws.amazon.com/cloudhsm/latest/userguide/clusters.html">AWS CloudHSM cluster</a> that you own and manage. This operation is part of the <a href="https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html">Custom Key Store feature</a> feature in AWS KMS, which combines the convenience and extensive integration of AWS KMS with the isolation and control of a single-tenant key store. Before you create the custom key store, you must assemble the required elements, including an AWS CloudHSM cluster that fulfills the requirements for a custom key store. For details about the required elements, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/create-keystore.html#before-keystore">Assemble the Prerequisites</a> in the <i>AWS Key Management Service Developer Guide</i>. When the operation completes successfully, it returns the ID of the new custom key store. Before you can use your new custom key store, you need to use the <a>ConnectCustomKeyStore</a> operation to connect the new key store to its AWS CloudHSM cluster. Even if you are not going to use your custom key store immediately, you might want to connect it to verify that all settings are correct and then disconnect it until you are ready to use it. For help with failures, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html">Troubleshooting a Custom Key Store</a> in the <i>AWS Key Management Service Developer Guide</i>.  <b>Cross-account use</b>: No. You cannot perform this operation on a custom key store in a different AWS account.  <b>Required permissions</b>: <a href="https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html">kms:CreateCustomKeyStore</a> (IAM policy).  <b>Related operations:</b>  <ul> <li>  <a>ConnectCustomKeyStore</a>  </li> <li>  <a>DeleteCustomKeyStore</a>  </li> <li>  <a>DescribeCustomKeyStores</a>  </li> <li>  <a>DisconnectCustomKeyStore</a>  </li> <li>  <a>UpdateCustomKeyStore</a>  </li> </ul>

        :param self:
        :param KeyStorePassword:  Enter the password of the <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-store-concepts.html#concept-kmsuser"> <code>kmsuser</code> crypto user (CU) account</a> in the specified AWS CloudHSM cluster. AWS KMS logs into the cluster as this user to manage key material on your behalf. The password must be a string of 7 to 32 characters. Its value is case sensitive. This parameter tells AWS KMS the <code>kmsuser</code> account password; it does not change the password in the AWS CloudHSM cluster.<br/>TrustAnchorCertificate:  Enter the content of the trust anchor certificate for the cluster. This is the content of the <code>customerCA.crt</code> file that you created when you <a href="https://docs.aws.amazon.com/cloudhsm/latest/userguide/initialize-cluster.html">initialized the cluster</a>.<br/>CloudHsmClusterId:  Identifies the AWS CloudHSM cluster for the custom key store. Enter the cluster ID of any active AWS CloudHSM cluster that is not already associated with a custom key store. To find the cluster ID, use the <a href="https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_DescribeClusters.html">DescribeClusters</a> operation.<br/>CustomKeyStoreName:  Specifies a friendly name for the custom key store. The name must be unique in your AWS account.<br/>
        :return: CustomKeyStoreId:  A unique identifier for the new custom key store.<br/>        """
        pass

    def create_grant(self, Operations: List[GrantOperation], GranteePrincipal: str, KeyId: str, RetiringPrincipal: str=None, Constraints: GrantConstraints=None, GrantTokens: List[GrantTokenType]=None, Name: str=None) -> CreateGrantResponse:
        r"""Adds a grant to a customer master key (CMK).  A <i>grant</i> is a policy instrument that allows AWS principals to use AWS KMS customer master keys (CMKs) in cryptographic operations. It also can allow them to view a CMK (<a>DescribeKey</a>) and create and manage grants. When authorizing access to a CMK, grants are considered along with key policies and IAM policies. Grants are often used for temporary permissions because you can create one, use its permissions, and delete it without changing your key policies or IAM policies.  For detailed information about grants, including grant terminology, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/grants.html">Using grants</a> in the <i> <i>AWS Key Management Service Developer Guide</i> </i>. For examples of working with grants in several programming languages, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/programming-grants.html">Programming grants</a>. The <code>CreateGrant</code> operation returns a <code>GrantToken</code> and a <code>GrantId</code>. <ul> <li> When you create, retire, or revoke a grant, there might be a brief delay, usually less than five minutes, until the grant is available throughout AWS KMS. This state is known as <i>eventual consistency</i>. Once the grant has achieved eventual consistency, the grantee principal can use the permissions in the grant without identifying the grant.  However, to use the permissions in the grant immediately, use the <code>GrantToken</code> that <code>CreateGrant</code> returns. For details, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/using-grant-token.html">Using a grant token</a> in the <i> <i>AWS Key Management Service Developer Guide</i> </i>. </li> <li> The <code>CreateGrant</code> operation also returns a <code>GrantId</code>. You can use the <code>GrantId</code> and a key identifier to identify the grant in the <a>RetireGrant</a> and <a>RevokeGrant</a> operations. To find the grant ID, use the <a>ListGrants</a> or <a>ListRetirableGrants</a> operations. </li> </ul> For information about symmetric and asymmetric CMKs, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html">Using Symmetric and Asymmetric CMKs</a> in the <i>AWS Key Management Service Developer Guide</i>. For more information about grants, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/grants.html">Grants</a> in the <i> <i>AWS Key Management Service Developer Guide</i> </i>. The CMK that you use for this operation must be in a compatible key state. For details, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html">Key state: Effect on your CMK</a> in the <i>AWS Key Management Service Developer Guide</i>.  <b>Cross-account use</b>: Yes. To perform this operation on a CMK in a different AWS account, specify the key ARN in the value of the <code>KeyId</code> parameter.   <b>Required permissions</b>: <a href="https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html">kms:CreateGrant</a> (key policy)  <b>Related operations:</b>  <ul> <li>  <a>ListGrants</a>  </li> <li>  <a>ListRetirableGrants</a>  </li> <li>  <a>RetireGrant</a>  </li> <li>  <a>RevokeGrant</a>  </li> </ul>

        :param self:
        :param Name:  A friendly name for the grant. Use this value to prevent the unintended creation of duplicate grants when retrying this request. When this value is absent, all <code>CreateGrant</code> requests result in a new grant with a unique <code>GrantId</code> even if all the supplied parameters are identical. This can result in unintended duplicates when you retry the <code>CreateGrant</code> request. When this value is present, you can retry a <code>CreateGrant</code> request with identical parameters; if the grant already exists, the original <code>GrantId</code> is returned without creating a new grant. Note that the returned grant token is unique with every <code>CreateGrant</code> request, even when a duplicate <code>GrantId</code> is returned. All grant tokens for the same grant ID can be used interchangeably.<br/>GrantTokens:  A list of grant tokens.  Use a grant token when your permission to call this operation comes from a new grant that has not yet achieved <i>eventual consistency</i>. For more information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#grant_token">Grant token</a> in the <i>AWS Key Management Service Developer Guide</i>.<br/>Constraints:  Specifies a grant constraint.  AWS KMS supports the <code>EncryptionContextEquals</code> and <code>EncryptionContextSubset</code> grant constraints. Each constraint value can include up to 8 encryption context pairs. The encryption context value in each constraint cannot exceed 384 characters. These grant constraints allow a <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations">cryptographic operation</a> only when the encryption context in the request matches (<code>EncryptionContextEquals</code>) or includes (<code>EncryptionContextSubset</code>) the encryption context specified in this structure. For more information about encryption context, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context">Encryption Context</a> in the <i> <i>AWS Key Management Service Developer Guide</i> </i>. For information about grant constraints, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/create-grant-overview.html#grant-constraints">Using grant constraints</a> in the <i>AWS Key Management Service Developer Guide</i>. The encryption context grant constraints are supported only on operations that include an encryption context. You cannot use an encryption context grant constraint for cryptographic operations with asymmetric CMKs or for management operations, such as <a>DescribeKey</a> or <a>RetireGrant</a>.:<br/>Operations:  A list of operations that the grant permits.  The operation must be supported on the CMK. For example, you cannot create a grant for a symmetric CMK that allows the <a>Sign</a> operation, or a grant for an asymmetric CMK that allows the <a>GenerateDataKey</a> operation. If you try, AWS KMS returns a <code>ValidationError</code> exception. For details, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#terms-grant-operations">Grant operations</a> in the <i>AWS Key Management Service Developer Guide</i>.<br/>RetiringPrincipal:  The principal that is given permission to retire the grant by using <a>RetireGrant</a> operation. To specify the principal, use the <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Name (ARN)</a> of an AWS principal. Valid AWS principals include AWS accounts (root), IAM users, federated users, and assumed role users. For examples of the ARN syntax to use for specifying a principal, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-iam">AWS Identity and Access Management (IAM)</a> in the Example ARNs section of the <i>AWS General Reference</i>.<br/>GranteePrincipal:  The identity that gets the permissions specified in the grant. To specify the principal, use the <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Name (ARN)</a> of an AWS principal. Valid AWS principals include AWS accounts (root), IAM users, IAM roles, federated users, and assumed role users. For examples of the ARN syntax to use for specifying a principal, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-iam">AWS Identity and Access Management (IAM)</a> in the Example ARNs section of the <i>AWS General Reference</i>.<br/>KeyId:  Identifies the customer master key (CMK) for the grant. The grant gives principals permission to use this CMK. Specify the key ID or key ARN of the CMK. To specify a CMK in a different AWS account, you must use the key ARN. For example: <ul> <li> Key ID: <code>1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> <li> Key ARN: <code>arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> </ul> To get the key ID and key ARN for a CMK, use <a>ListKeys</a> or <a>DescribeKey</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EncryptionContextEquals</i> A list of key-value pairs that must match the encryption context in the <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations">cryptographic operation</a> request. The grant allows the operation only when the encryption context in the request is the same as the encryption context specified in this constraint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EncryptionContextSubset</i> A list of key-value pairs that must be included in the encryption context of the <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations">cryptographic operation</a> request. The grant allows the cryptographic operation only when the encryption context in the request includes the key-value pairs specified in this constraint, although it can include additional key-value pairs.<br/>
        :return: GrantId:  The unique identifier for the grant. You can use the <code>GrantId</code> in a <a>ListGrants</a>, <a>RetireGrant</a>, or <a>RevokeGrant</a> operation.<br/>GrantToken:  The grant token. Use a grant token when your permission to call this operation comes from a new grant that has not yet achieved <i>eventual consistency</i>. For more information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#grant_token">Grant token</a> in the <i>AWS Key Management Service Developer Guide</i>.<br/>        """
        pass

    def create_key(self, Policy: str=None, Description: str=None, KeyUsage: str=None, CustomerMasterKeySpec: str=None, Origin: str=None, CustomKeyStoreId: str=None, BypassPolicyLockoutSafetyCheck: BooleanType=None, Tags: List[Tag]=None, MultiRegion: NullableBooleanType=None) -> CreateKeyResponse:
        r"""Creates a unique customer managed <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#master-keys">customer master key</a> (CMK) in your AWS account and Region. You can use the <code>CreateKey</code> operation to create symmetric or asymmetric CMKs. <ul> <li>  <b>Symmetric CMKs</b> contain a 256-bit symmetric key that never leaves AWS KMS unencrypted. To use the CMK, you must call AWS KMS. You can use a symmetric CMK to encrypt and decrypt small amounts of data, but they are typically used to generate <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#data-keys">data keys</a> and <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#data-key-pairs">data keys pairs</a>. For details, see <a>GenerateDataKey</a> and <a>GenerateDataKeyPair</a>. </li> <li>  <b>Asymmetric CMKs</b> can contain an RSA key pair or an Elliptic Curve (ECC) key pair. The private key in an asymmetric CMK never leaves AWS KMS unencrypted. However, you can use the <a>GetPublicKey</a> operation to download the public key so it can be used outside of AWS KMS. CMKs with RSA key pairs can be used to encrypt or decrypt data or sign and verify messages (but not both). CMKs with ECC key pairs can be used only to sign and verify messages. </li> </ul> For information about symmetric and asymmetric CMKs, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html">Using Symmetric and Asymmetric CMKs</a> in the <i>AWS Key Management Service Developer Guide</i>. To create different types of CMKs, use the following guidance: <dl> <dt>Asymmetric CMKs</dt> <dd> To create an asymmetric CMK, use the <code>CustomerMasterKeySpec</code> parameter to specify the type of key material in the CMK. Then, use the <code>KeyUsage</code> parameter to determine whether the CMK will be used to encrypt and decrypt or sign and verify. You can't change these properties after the CMK is created.   </dd> <dt>Symmetric CMKs</dt> <dd> When creating a symmetric CMK, you don't need to specify the <code>CustomerMasterKeySpec</code> or <code>KeyUsage</code> parameters. The default value for <code>CustomerMasterKeySpec</code>, <code>SYMMETRIC_DEFAULT</code>, and the default value for <code>KeyUsage</code>, <code>ENCRYPT_DECRYPT</code>, are the only valid values for symmetric CMKs.    </dd> <dt>Multi-Region primary keys</dt> <dt>Imported key material</dt> <dd> To create a multi-Region <i>primary key</i> in the local AWS Region, use the <code>MultiRegion</code> parameter with a value of <code>True</code>. To create a multi-Region <i>replica key</i>, that is, a CMK with the same key ID and key material as a primary key, but in a different AWS Region, use the <a>ReplicateKey</a> operation. To change a replica key to a primary key, and its primary key to a replica key, use the <a>UpdatePrimaryRegion</a> operation. This operation supports <i>multi-Region keys</i>, an AWS KMS feature that lets you create multiple interoperable CMKs in different AWS Regions. Because these CMKs have the same key ID, key material, and other metadata, you can use them to encrypt data in one AWS Region and decrypt it in a different AWS Region without making a cross-Region call or exposing the plaintext data. For more information about multi-Region keys, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html">Using multi-Region keys</a> in the <i>AWS Key Management Service Developer Guide</i>. You can create symmetric and asymmetric multi-Region keys and multi-Region keys with imported key material. You cannot create multi-Region keys in a custom key store.   </dd> <dd> To import your own key material, begin by creating a symmetric CMK with no key material. To do this, use the <code>Origin</code> parameter of <code>CreateKey</code> with a value of <code>EXTERNAL</code>. Next, use <a>GetParametersForImport</a> operation to get a public key and import token, and use the public key to encrypt your key material. Then, use <a>ImportKeyMaterial</a> with your import token to import the key material. For step-by-step instructions, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html">Importing Key Material</a> in the <i> <i>AWS Key Management Service Developer Guide</i> </i>. You cannot import the key material into an asymmetric CMK. To create a multi-Region primary key with imported key material, use the <code>Origin</code> parameter of <code>CreateKey</code> with a value of <code>EXTERNAL</code> and the <code>MultiRegion</code> parameter with a value of <code>True</code>. To create replicas of the multi-Region primary key, use the <a>ReplicateKey</a> operation. For more information about multi-Region keys, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html">Using multi-Region keys</a> in the <i>AWS Key Management Service Developer Guide</i>.   </dd> <dt>Custom key store</dt> <dd> To create a symmetric CMK in a <a href="https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html">custom key store</a>, use the <code>CustomKeyStoreId</code> parameter to specify the custom key store. You must also use the <code>Origin</code> parameter with a value of <code>AWS_CLOUDHSM</code>. The AWS CloudHSM cluster that is associated with the custom key store must have at least two active HSMs in different Availability Zones in the AWS Region.  You cannot create an asymmetric CMK or a multi-Region CMK in a custom key store. For information about custom key stores in AWS KMS see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html">Using Custom Key Stores</a> in the <i> <i>AWS Key Management Service Developer Guide</i> </i>. </dd> </dl>  <b>Cross-account use</b>: No. You cannot use this operation to create a CMK in a different AWS account.  <b>Required permissions</b>: <a href="https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html">kms:CreateKey</a> (IAM policy). To use the <code>Tags</code> parameter, <a href="https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html">kms:TagResource</a> (IAM policy). For examples and information about related permissions, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/iam-policies.html#iam-policy-example-create-key">Allow a user to create CMKs</a> in the <i>AWS Key Management Service Developer Guide</i>.  <b>Related operations:</b>  <ul> <li>  <a>DescribeKey</a>  </li> <li>  <a>ListKeys</a>  </li> <li>  <a>ScheduleKeyDeletion</a>  </li> </ul>

        :param self:
        :param MultiRegion:  Creates a multi-Region primary key that you can replicate into other AWS Regions. You cannot change this value after you create the CMK.  For a multi-Region key, set this parameter to <code>True</code>. For a single-Region CMK, omit this parameter or set it to <code>False</code>. The default value is <code>False</code>. This operation supports <i>multi-Region keys</i>, an AWS KMS feature that lets you create multiple interoperable CMKs in different AWS Regions. Because these CMKs have the same key ID, key material, and other metadata, you can use them to encrypt data in one AWS Region and decrypt it in a different AWS Region without making a cross-Region call or exposing the plaintext data. For more information about multi-Region keys, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html">Using multi-Region keys</a> in the <i>AWS Key Management Service Developer Guide</i>. This value creates a <i>primary key</i>, not a replica. To create a <i>replica key</i>, use the <a>ReplicateKey</a> operation.  You can create a symmetric or asymmetric multi-Region CMK, and you can create a multi-Region CMK with imported key material. However, you cannot create a multi-Region CMK in a custom key store.<br/>Tags:  Assigns one or more tags to the CMK. Use this parameter to tag the CMK when it is created. To tag an existing CMK, use the <a>TagResource</a> operation. <note> Tagging or untagging a CMK can allow or deny permission to the CMK. For details, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/abac.html">Using ABAC in AWS KMS</a> in the <i>AWS Key Management Service Developer Guide</i>. </note> To use this parameter, you must have <a href="https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html">kms:TagResource</a> permission in an IAM policy. Each tag consists of a tag key and a tag value. Both the tag key and the tag value are required, but the tag value can be an empty (null) string. You cannot have more than one tag on a CMK with the same tag key. If you specify an existing tag key with a different tag value, AWS KMS replaces the current tag value with the specified one. When you assign tags to an AWS resource, AWS generates a cost allocation report with usage and costs aggregated by tags. Tags can also be used to control access to a CMK. For details, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/tagging-keys.html">Tagging Keys</a>.<br/>BypassPolicyLockoutSafetyCheck:  A flag to indicate whether to bypass the key policy lockout safety check. <important> Setting this value to true increases the risk that the CMK becomes unmanageable. Do not set this value to true indiscriminately. For more information, refer to the scenario in the <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default-allow-root-enable-iam">Default Key Policy</a> section in the <i> <i>AWS Key Management Service Developer Guide</i> </i>. </important> Use this parameter only when you include a policy in the request and you intend to prevent the principal that is making the request from making a subsequent <a>PutKeyPolicy</a> request on the CMK. The default value is false.<br/>CustomKeyStoreId:  Creates the CMK in the specified <a href="https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html">custom key store</a> and the key material in its associated AWS CloudHSM cluster. To create a CMK in a custom key store, you must also specify the <code>Origin</code> parameter with a value of <code>AWS_CLOUDHSM</code>. The AWS CloudHSM cluster that is associated with the custom key store must have at least two active HSMs, each in a different Availability Zone in the Region. This parameter is valid only for symmetric CMKs and regional CMKs. You cannot create an asymmetric CMK or a multi-Region CMK in a custom key store. To find the ID of a custom key store, use the <a>DescribeCustomKeyStores</a> operation. The response includes the custom key store ID and the ID of the AWS CloudHSM cluster. This operation is part of the <a href="https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html">Custom Key Store feature</a> feature in AWS KMS, which combines the convenience and extensive integration of AWS KMS with the isolation and control of a single-tenant key store.<br/>Origin:  The source of the key material for the CMK. You cannot change the origin after you create the CMK. The default is <code>AWS_KMS</code>, which means that AWS KMS creates the key material. To create a CMK with no key material (for imported key material), set the value to <code>EXTERNAL</code>. For more information about importing key material into AWS KMS, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html">Importing Key Material</a> in the <i>AWS Key Management Service Developer Guide</i>. This value is valid only for symmetric CMKs. To create a CMK in an AWS KMS <a href="https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html">custom key store</a> and create its key material in the associated AWS CloudHSM cluster, set this value to <code>AWS_CLOUDHSM</code>. You must also use the <code>CustomKeyStoreId</code> parameter to identify the custom key store. This value is valid only for symmetric CMKs.<br/>CustomerMasterKeySpec:  Specifies the type of CMK to create. The default value, <code>SYMMETRIC_DEFAULT</code>, creates a CMK with a 256-bit symmetric key for encryption and decryption. For help choosing a key spec for your CMK, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/symm-asymm-choose.html">How to Choose Your CMK Configuration</a> in the <i>AWS Key Management Service Developer Guide</i>. The <code>CustomerMasterKeySpec</code> determines whether the CMK contains a symmetric key or an asymmetric key pair. It also determines the encryption algorithms or signing algorithms that the CMK supports. You can't change the <code>CustomerMasterKeySpec</code> after the CMK is created. To further restrict the algorithms that can be used with the CMK, use a condition key in its key policy or IAM policy. For more information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-encryption-algorithm">kms:EncryptionAlgorithm</a> or <a href="https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-signing-algorithm">kms:Signing Algorithm</a> in the <i>AWS Key Management Service Developer Guide</i>. <important>  <a href="http://aws.amazon.com/kms/features/#AWS_Service_Integration">AWS services that are integrated with AWS KMS</a> use symmetric CMKs to protect your data. These services do not support asymmetric CMKs. For help determining whether a CMK is symmetric or asymmetric, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/find-symm-asymm.html">Identifying Symmetric and Asymmetric CMKs</a> in the <i>AWS Key Management Service Developer Guide</i>. </important> AWS KMS supports the following key specs for CMKs: <ul> <li> Symmetric key (default) <ul> <li>  <code>SYMMETRIC_DEFAULT</code> (AES-256-GCM) </li> </ul> </li> <li> Asymmetric RSA key pairs <ul> <li>  <code>RSA_2048</code>  </li> <li>  <code>RSA_3072</code>  </li> <li>  <code>RSA_4096</code>  </li> </ul> </li> <li> Asymmetric NIST-recommended elliptic curve key pairs <ul> <li>  <code>ECC_NIST_P256</code> (secp256r1) </li> <li>  <code>ECC_NIST_P384</code> (secp384r1) </li> <li>  <code>ECC_NIST_P521</code> (secp521r1) </li> </ul> </li> <li> Other asymmetric elliptic curve key pairs <ul> <li>  <code>ECC_SECG_P256K1</code> (secp256k1), commonly used for cryptocurrencies. </li> </ul> </li> </ul><br/>KeyUsage:  Determines the <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations">cryptographic operations</a> for which you can use the CMK. The default value is <code>ENCRYPT_DECRYPT</code>. This parameter is required only for asymmetric CMKs. You can't change the <code>KeyUsage</code> value after the CMK is created. Select only one valid value. <ul> <li> For symmetric CMKs, omit the parameter or specify <code>ENCRYPT_DECRYPT</code>. </li> <li> For asymmetric CMKs with RSA key material, specify <code>ENCRYPT_DECRYPT</code> or <code>SIGN_VERIFY</code>. </li> <li> For asymmetric CMKs with ECC key material, specify <code>SIGN_VERIFY</code>. </li> </ul><br/>Description:  A description of the CMK. Use a description that helps you decide whether the CMK is appropriate for a task. The default value is an empty string (no description).<br/>Policy:  The key policy to attach to the CMK. If you provide a key policy, it must meet the following criteria: <ul> <li> If you don't set <code>BypassPolicyLockoutSafetyCheck</code> to true, the key policy must allow the principal that is making the <code>CreateKey</code> request to make a subsequent <a>PutKeyPolicy</a> request on the CMK. This reduces the risk that the CMK becomes unmanageable. For more information, refer to the scenario in the <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default-allow-root-enable-iam">Default Key Policy</a> section of the <i> <i>AWS Key Management Service Developer Guide</i> </i>. </li> <li> Each statement in the key policy must contain one or more principals. The principals in the key policy must exist and be visible to AWS KMS. When you create a new AWS principal (for example, an IAM user or role), you might need to enforce a delay before including the new principal in a key policy because the new principal might not be immediately visible to AWS KMS. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_general.html#troubleshoot_general_eventual-consistency">Changes that I make are not always immediately visible</a> in the <i>AWS Identity and Access Management User Guide</i>. </li> </ul> If you do not provide a key policy, AWS KMS attaches a default key policy to the CMK. For more information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default">Default Key Policy</a> in the <i>AWS Key Management Service Developer Guide</i>.  The key policy size quota is 32 kilobytes (32768 bytes). For help writing and formatting a JSON policy document, see the <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html">IAM JSON Policy Reference</a> in the <i> <i>IAM User Guide</i> </i>.<br/>
        :return: KeyMetadata:  Metadata associated with the CMK.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingDeletionWindowInDays</i> The waiting period before the primary key in a multi-Region key is deleted. This waiting period begins when the last of its replica keys is deleted. This value is present only when the <code>KeyState</code> of the CMK is <code>PendingReplicaDeletion</code>. That indicates that the CMK is the primary key in a multi-Region key, it is scheduled for deletion, and it still has existing replica keys. When a regional CMK or a replica key in a multi-Region key is scheduled for deletion, its deletion date is displayed in the <code>DeletionDate</code> field. However, when the primary key in a multi-Region key is scheduled for deletion, its waiting period doesn't begin until all of its replica keys are deleted. This value displays that waiting period. When the last replica key in the multi-Region key is deleted, the <code>KeyState</code> of the scheduled primary key changes from <code>PendingReplicaDeletion</code> to <code>PendingDeletion</code> and the deletion date appears in the <code>DeletionDate</code> field.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiRegionConfiguration</i> Lists the primary and replica CMKs in same multi-Region CMK. This field is present only when the value of the <code>MultiRegion</code> field is <code>True</code>. For more information about any listed CMK, use the <a>DescribeKey</a> operation. <ul> <li>  <code>MultiRegionKeyType</code> indicates whether the CMK is a <code>PRIMARY</code> or <code>REPLICA</code> key. </li> <li>  <code>PrimaryKey</code> displays the key ARN and Region of the primary key. This field displays the current CMK if it is the primary key. </li> <li>  <code>ReplicaKeys</code> displays the key ARNs and Regions of all replica keys. This field includes the current CMK if it is a replica key. </li> </ul>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>MultiRegionConfiguration</b>: Lists the primary and replica CMKs in same multi-Region CMK. This field is present only when the value of the <code>MultiRegion</code> field is <code>True</code>. For more information about any listed CMK, use the <a>DescribeKey</a> operation. <ul> <li>  <code>MultiRegionKeyType</code> indicates whether the CMK is a <code>PRIMARY</code> or <code>REPLICA</code> key. </li> <li>  <code>PrimaryKey</code> displays the key ARN and Region of the primary key. This field displays the current CMK if it is the primary key. </li> <li>  <code>ReplicaKeys</code> displays the key ARNs and Regions of all replica keys. This field includes the current CMK if it is a replica key. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiRegion</i> Indicates whether the CMK is a multi-Region (<code>True</code>) or regional (<code>False</code>) key. This value is <code>True</code> for multi-Region primary and replica CMKs and <code>False</code> for regional CMKs. For more information about multi-Region keys, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html">Using multi-Region keys</a> in the <i>AWS Key Management Service Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SigningAlgorithms</i> The signing algorithms that the CMK supports. You cannot use the CMK with other signing algorithms within AWS KMS. This field appears only when the <code>KeyUsage</code> of the CMK is <code>SIGN_VERIFY</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EncryptionAlgorithms</i> The encryption algorithms that the CMK supports. You cannot use the CMK with other encryption algorithms within AWS KMS. This value is present only when the <code>KeyUsage</code> of the CMK is <code>ENCRYPT_DECRYPT</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomerMasterKeySpec</i> Describes the type of key material in the CMK.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KeyManager</i> The manager of the CMK. CMKs in your AWS account are either customer managed or AWS managed. For more information about the difference, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#master_keys">Customer Master Keys</a> in the <i>AWS Key Management Service Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExpirationModel</i> Specifies whether the CMK's key material expires. This value is present only when <code>Origin</code> is <code>EXTERNAL</code>, otherwise this value is omitted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudHsmClusterId</i> The cluster ID of the AWS CloudHSM cluster that contains the key material for the CMK. When you create a CMK in a <a href="https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html">custom key store</a>, AWS KMS creates the key material for the CMK in the associated AWS CloudHSM cluster. This value is present only when the CMK is created in a custom key store.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomKeyStoreId</i> A unique identifier for the <a href="https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html">custom key store</a> that contains the CMK. This value is present only when the CMK is created in a custom key store.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Origin</i> The source of the CMK's key material. When this value is <code>AWS_KMS</code>, AWS KMS created the key material. When this value is <code>EXTERNAL</code>, the key material was imported from your existing key management infrastructure or the CMK lacks key material. When this value is <code>AWS_CLOUDHSM</code>, the key material was created in the AWS CloudHSM cluster associated with a custom key store.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ValidTo</i> The time at which the imported key material expires. When the key material expires, AWS KMS deletes the key material and the CMK becomes unusable. This value is present only for CMKs whose <code>Origin</code> is <code>EXTERNAL</code> and whose <code>ExpirationModel</code> is <code>KEY_MATERIAL_EXPIRES</code>, otherwise this value is omitted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeletionDate</i> The date and time after which AWS KMS deletes this CMK. This value is present only when the CMK is scheduled for deletion, that is, when its <code>KeyState</code> is <code>PendingDeletion</code>. When the primary key in a multi-Region key is scheduled for deletion but still has replica keys, its key state is <code>PendingReplicaDeletion</code> and the length of its waiting period is displayed in the <code>PendingDeletionWindowInDays</code> field.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KeyState</i> The current status of the CMK. For more information about how key state affects the use of a CMK, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html">Key state: Effect on your CMK</a> in the <i>AWS Key Management Service Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KeyUsage</i> The <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations">cryptographic operations</a> for which you can use the CMK.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the CMK.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specifies whether the CMK is enabled. When <code>KeyState</code> is <code>Enabled</code> this value is true, otherwise it is false.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date and time when the CMK was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the CMK. For examples, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-kms">AWS Key Management Service (AWS KMS)</a> in the Example ARNs section of the <i>AWS General Reference</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KeyId</i> The globally unique identifier for the CMK.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AWSAccountId</i> The twelve-digit account ID of the AWS account that owns the CMK.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiRegionKeyType</i> Indicates whether the CMK is a <code>PRIMARY</code> or <code>REPLICA</code> key.<br/>Displays the key ARN and Region of the primary key. This field includes the current CMK if it is the primary key.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PrimaryKey</b>: Displays the key ARN and Region of the primary key. This field includes the current CMK if it is the primary key.        """
        pass

    def decrypt(self, CiphertextBlob: CiphertextType, EncryptionContext: EncryptionContextType=None, GrantTokens: List[GrantTokenType]=None, KeyId: str=None, EncryptionAlgorithm: str=None) -> DecryptResponse:
        r"""Decrypts ciphertext that was encrypted by a AWS KMS customer master key (CMK) using any of the following operations: <ul> <li>  <a>Encrypt</a>  </li> <li>  <a>GenerateDataKey</a>  </li> <li>  <a>GenerateDataKeyPair</a>  </li> <li>  <a>GenerateDataKeyWithoutPlaintext</a>  </li> <li>  <a>GenerateDataKeyPairWithoutPlaintext</a>  </li> </ul> You can use this operation to decrypt ciphertext that was encrypted under a symmetric or asymmetric CMK. When the CMK is asymmetric, you must specify the CMK and the encryption algorithm that was used to encrypt the ciphertext. For information about symmetric and asymmetric CMKs, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html">Using Symmetric and Asymmetric CMKs</a> in the <i>AWS Key Management Service Developer Guide</i>. The Decrypt operation also decrypts ciphertext that was encrypted outside of AWS KMS by the public key in an AWS KMS asymmetric CMK. However, it cannot decrypt ciphertext produced by other libraries, such as the <a href="https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/">AWS Encryption SDK</a> or <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingClientSideEncryption.html">Amazon S3 client-side encryption</a>. These libraries return a ciphertext format that is incompatible with AWS KMS. If the ciphertext was encrypted under a symmetric CMK, the <code>KeyId</code> parameter is optional. AWS KMS can get this information from metadata that it adds to the symmetric ciphertext blob. This feature adds durability to your implementation by ensuring that authorized users can decrypt ciphertext decades after it was encrypted, even if they've lost track of the CMK ID. However, specifying the CMK is always recommended as a best practice. When you use the <code>KeyId</code> parameter to specify a CMK, AWS KMS only uses the CMK you specify. If the ciphertext was encrypted under a different CMK, the <code>Decrypt</code> operation fails. This practice ensures that you use the CMK that you intend. Whenever possible, use key policies to give users permission to call the <code>Decrypt</code> operation on a particular CMK, instead of using IAM policies. Otherwise, you might create an IAM user policy that gives the user <code>Decrypt</code> permission on all CMKs. This user could decrypt ciphertext that was encrypted by CMKs in other accounts if the key policy for the cross-account CMK permits it. If you must use an IAM policy for <code>Decrypt</code> permissions, limit the user to particular CMKs or particular trusted accounts. For details, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/iam-policies.html#iam-policies-best-practices">Best practices for IAM policies</a> in the <i>AWS Key Management Service Developer Guide</i>. The CMK that you use for this operation must be in a compatible key state. For details, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html">Key state: Effect on your CMK</a> in the <i>AWS Key Management Service Developer Guide</i>.  <b>Cross-account use</b>: Yes. You can decrypt a ciphertext using a CMK in a different AWS account.  <b>Required permissions</b>: <a href="https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html">kms:Decrypt</a> (key policy)  <b>Related operations:</b>  <ul> <li>  <a>Encrypt</a>  </li> <li>  <a>GenerateDataKey</a>  </li> <li>  <a>GenerateDataKeyPair</a>  </li> <li>  <a>ReEncrypt</a>  </li> </ul>

        :param self:
        :param EncryptionAlgorithm:  Specifies the encryption algorithm that will be used to decrypt the ciphertext. Specify the same algorithm that was used to encrypt the data. If you specify a different algorithm, the <code>Decrypt</code> operation fails. This parameter is required only when the ciphertext was encrypted under an asymmetric CMK. The default value, <code>SYMMETRIC_DEFAULT</code>, represents the only supported algorithm that is valid for symmetric CMKs.<br/>KeyId:  Specifies the customer master key (CMK) that AWS KMS uses to decrypt the ciphertext. Enter a key ID of the CMK that was used to encrypt the ciphertext. This parameter is required only when the ciphertext was encrypted under an asymmetric CMK. If you used a symmetric CMK, AWS KMS can get the CMK from metadata that it adds to the symmetric ciphertext blob. However, it is always recommended as a best practice. This practice ensures that you use the CMK that you intend. To specify a CMK, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with <code>"alias/"</code>. To specify a CMK in a different AWS account, you must use the key ARN or alias ARN. For example: <ul> <li> Key ID: <code>1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> <li> Key ARN: <code>arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> <li> Alias name: <code>alias/ExampleAlias</code>  </li> <li> Alias ARN: <code>arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias</code>  </li> </ul> To get the key ID and key ARN for a CMK, use <a>ListKeys</a> or <a>DescribeKey</a>. To get the alias name and alias ARN, use <a>ListAliases</a>.<br/>GrantTokens:  A list of grant tokens.  Use a grant token when your permission to call this operation comes from a newly created grant that has not yet achieved eventual consistency. Use a grant token when your permission to call this operation comes from a new grant that has not yet achieved <i>eventual consistency</i>. For more information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#grant_token">Grant token</a> in the <i>AWS Key Management Service Developer Guide</i>.<br/>EncryptionContext:  Specifies the encryption context to use when decrypting the data. An encryption context is valid only for <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations">cryptographic operations</a> with a symmetric CMK. The standard asymmetric encryption algorithms that AWS KMS uses do not support an encryption context. An <i>encryption context</i> is a collection of non-secret key-value pairs that represents additional authenticated data. When you use an encryption context to encrypt data, you must specify the same (an exact case-sensitive match) encryption context to decrypt the data. An encryption context is optional when encrypting with a symmetric CMK, but it is highly recommended. For more information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context">Encryption Context</a> in the <i>AWS Key Management Service Developer Guide</i>.<br/>CiphertextBlob:  Ciphertext to be decrypted. The blob includes metadata.<br/>
        :return: EncryptionAlgorithm:  The encryption algorithm that was used to decrypt the ciphertext.<br/>Plaintext:  Decrypted plaintext data. When you use the HTTP API or the AWS CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded.<br/>KeyId:  The Amazon Resource Name (<a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-ARN">key ARN</a>) of the CMK that was used to decrypt the ciphertext.<br/>        """
        pass

    def delete_alias(self, AliasName: str):
        r"""Deletes the specified alias.  <note> Adding, deleting, or updating an alias can allow or deny permission to the CMK. For details, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/abac.html">Using ABAC in AWS KMS</a> in the <i>AWS Key Management Service Developer Guide</i>. </note> Because an alias is not a property of a CMK, you can delete and change the aliases of a CMK without affecting the CMK. Also, aliases do not appear in the response from the <a>DescribeKey</a> operation. To get the aliases of all CMKs, use the <a>ListAliases</a> operation.  Each CMK can have multiple aliases. To change the alias of a CMK, use <a>DeleteAlias</a> to delete the current alias and <a>CreateAlias</a> to create a new alias. To associate an existing alias with a different customer master key (CMK), call <a>UpdateAlias</a>.  <b>Cross-account use</b>: No. You cannot perform this operation on an alias in a different AWS account.  <b>Required permissions</b>  <ul> <li>  <a href="https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html">kms:DeleteAlias</a> on the alias (IAM policy). </li> <li>  <a href="https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html">kms:DeleteAlias</a> on the CMK (key policy). </li> </ul> For details, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/kms-alias.html#alias-access">Controlling access to aliases</a> in the <i>AWS Key Management Service Developer Guide</i>.  <b>Related operations:</b>  <ul> <li>  <a>CreateAlias</a>  </li> <li>  <a>ListAliases</a>  </li> <li>  <a>UpdateAlias</a>  </li> </ul>

        :param self:
        :param AliasName:  The alias to be deleted. The alias name must begin with <code>alias/</code> followed by the alias name, such as <code>alias/ExampleAlias</code>.<br/>
        :return:         """
        pass

    def delete_custom_key_store(self, CustomKeyStoreId: str) -> DeleteCustomKeyStoreResponse:
        r"""Deletes a <a href="https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html">custom key store</a>. This operation does not delete the AWS CloudHSM cluster that is associated with the custom key store, or affect any users or keys in the cluster. The custom key store that you delete cannot contain any AWS KMS <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#master_keys">customer master keys (CMKs)</a>. Before deleting the key store, verify that you will never need to use any of the CMKs in the key store for any <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations">cryptographic operations</a>. Then, use <a>ScheduleKeyDeletion</a> to delete the AWS KMS customer master keys (CMKs) from the key store. When the scheduled waiting period expires, the <code>ScheduleKeyDeletion</code> operation deletes the CMKs. Then it makes a best effort to delete the key material from the associated cluster. However, you might need to manually <a href="https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html#fix-keystore-orphaned-key">delete the orphaned key material</a> from the cluster and its backups. After all CMKs are deleted from AWS KMS, use <a>DisconnectCustomKeyStore</a> to disconnect the key store from AWS KMS. Then, you can delete the custom key store. Instead of deleting the custom key store, consider using <a>DisconnectCustomKeyStore</a> to disconnect it from AWS KMS. While the key store is disconnected, you cannot create or use the CMKs in the key store. But, you do not need to delete CMKs and you can reconnect a disconnected custom key store at any time. If the operation succeeds, it returns a JSON object with no properties. This operation is part of the <a href="https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html">Custom Key Store feature</a> feature in AWS KMS, which combines the convenience and extensive integration of AWS KMS with the isolation and control of a single-tenant key store.  <b>Cross-account use</b>: No. You cannot perform this operation on a custom key store in a different AWS account.  <b>Required permissions</b>: <a href="https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html">kms:DeleteCustomKeyStore</a> (IAM policy)  <b>Related operations:</b>  <ul> <li>  <a>ConnectCustomKeyStore</a>  </li> <li>  <a>CreateCustomKeyStore</a>  </li> <li>  <a>DescribeCustomKeyStores</a>  </li> <li>  <a>DisconnectCustomKeyStore</a>  </li> <li>  <a>UpdateCustomKeyStore</a>  </li> </ul>

        :param self:
        :param CustomKeyStoreId:  Enter the ID of the custom key store you want to delete. To find the ID of a custom key store, use the <a>DescribeCustomKeyStores</a> operation.<br/>
        :return:         """
        pass

    def delete_imported_key_material(self, KeyId: str):
        r"""Deletes key material that you previously imported. This operation makes the specified customer master key (CMK) unusable. For more information about importing key material into AWS KMS, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html">Importing Key Material</a> in the <i>AWS Key Management Service Developer Guide</i>.  When the specified CMK is in the <code>PendingDeletion</code> state, this operation does not change the CMK's state. Otherwise, it changes the CMK's state to <code>PendingImport</code>. After you delete key material, you can use <a>ImportKeyMaterial</a> to reimport the same key material into the CMK. The CMK that you use for this operation must be in a compatible key state. For details, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html">Key state: Effect on your CMK</a> in the <i>AWS Key Management Service Developer Guide</i>.  <b>Cross-account use</b>: No. You cannot perform this operation on a CMK in a different AWS account.  <b>Required permissions</b>: <a href="https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html">kms:DeleteImportedKeyMaterial</a> (key policy)  <b>Related operations:</b>  <ul> <li>  <a>GetParametersForImport</a>  </li> <li>  <a>ImportKeyMaterial</a>  </li> </ul>

        :param self:
        :param KeyId:  Identifies the CMK from which you are deleting imported key material. The <code>Origin</code> of the CMK must be <code>EXTERNAL</code>. Specify the key ID or key ARN of the CMK. For example: <ul> <li> Key ID: <code>1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> <li> Key ARN: <code>arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> </ul> To get the key ID and key ARN for a CMK, use <a>ListKeys</a> or <a>DescribeKey</a>.<br/>
        :return:         """
        pass

    def describe_custom_key_stores(self, CustomKeyStoreId: str=None, CustomKeyStoreName: str=None, Limit: int=None, Marker: str=None) -> DescribeCustomKeyStoresResponse:
        r"""Gets information about <a href="https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html">custom key stores</a> in the account and Region. This operation is part of the <a href="https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html">Custom Key Store feature</a> feature in AWS KMS, which combines the convenience and extensive integration of AWS KMS with the isolation and control of a single-tenant key store. By default, this operation returns information about all custom key stores in the account and Region. To get only information about a particular custom key store, use either the <code>CustomKeyStoreName</code> or <code>CustomKeyStoreId</code> parameter (but not both). To determine whether the custom key store is connected to its AWS CloudHSM cluster, use the <code>ConnectionState</code> element in the response. If an attempt to connect the custom key store failed, the <code>ConnectionState</code> value is <code>FAILED</code> and the <code>ConnectionErrorCode</code> element in the response indicates the cause of the failure. For help interpreting the <code>ConnectionErrorCode</code>, see <a>CustomKeyStoresListEntry</a>. Custom key stores have a <code>DISCONNECTED</code> connection state if the key store has never been connected or you use the <a>DisconnectCustomKeyStore</a> operation to disconnect it. If your custom key store state is <code>CONNECTED</code> but you are having trouble using it, make sure that its associated AWS CloudHSM cluster is active and contains the minimum number of HSMs required for the operation, if any.  For help repairing your custom key store, see the <a href="https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html">Troubleshooting Custom Key Stores</a> topic in the <i>AWS Key Management Service Developer Guide</i>.  <b>Cross-account use</b>: No. You cannot perform this operation on a custom key store in a different AWS account.  <b>Required permissions</b>: <a href="https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html">kms:DescribeCustomKeyStores</a> (IAM policy)  <b>Related operations:</b>  <ul> <li>  <a>ConnectCustomKeyStore</a>  </li> <li>  <a>CreateCustomKeyStore</a>  </li> <li>  <a>DeleteCustomKeyStore</a>  </li> <li>  <a>DisconnectCustomKeyStore</a>  </li> <li>  <a>UpdateCustomKeyStore</a>  </li> </ul>

        :param self:
        :param Marker:  Use this parameter in a subsequent request after you receive a response with truncated results. Set it to the value of <code>NextMarker</code> from the truncated response you just received.<br/>Limit:  Use this parameter to specify the maximum number of items to return. When this value is present, AWS KMS does not return more than the specified number of items, but it might return fewer.<br/>CustomKeyStoreName:  Gets only information about the specified custom key store. Enter the friendly name of the custom key store. By default, this operation gets information about all custom key stores in the account and Region. To limit the output to a particular custom key store, you can use either the <code>CustomKeyStoreId</code> or <code>CustomKeyStoreName</code> parameter, but not both.<br/>CustomKeyStoreId:  Gets only information about the specified custom key store. Enter the key store ID. By default, this operation gets information about all custom key stores in the account and Region. To limit the output to a particular custom key store, you can use either the <code>CustomKeyStoreId</code> or <code>CustomKeyStoreName</code> parameter, but not both.<br/>
        :return: Truncated:  A flag that indicates whether there are more items in the list. When this value is true, the list in this response is truncated. To get more items, pass the value of the <code>NextMarker</code> element in thisresponse to the <code>Marker</code> parameter in a subsequent request.<br/>NextMarker:  When <code>Truncated</code> is true, this element is present and contains the value to use for the <code>Marker</code> parameter in a subsequent request.<br/>CustomKeyStores:  Contains metadata about each custom key store.<br/>        """
        pass

    def describe_key(self, KeyId: str, GrantTokens: List[GrantTokenType]=None) -> DescribeKeyResponse:
        r"""Provides detailed information about a customer master key (CMK). You can run <code>DescribeKey</code> on a <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk">customer managed CMK</a> or an <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk">AWS managed CMK</a>. This detailed information includes the key ARN, creation date (and deletion date, if applicable), the key state, and the origin and expiration date (if any) of the key material. For CMKs in custom key stores, it includes information about the custom key store, such as the key store ID and the AWS CloudHSM cluster ID. It includes fields, like <code>KeySpec</code>, that help you distinguish symmetric from asymmetric CMKs. It also provides information that is particularly important to asymmetric CMKs, such as the key usage (encryption or signing) and the encryption algorithms or signing algorithms that the CMK supports.  <code>DescribeKey</code> does not return the following information: <ul> <li> Aliases associated with the CMK. To get this information, use <a>ListAliases</a>. </li> <li> Whether automatic key rotation is enabled on the CMK. To get this information, use <a>GetKeyRotationStatus</a>. Also, some key states prevent a CMK from being automatically rotated. For details, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html#rotate-keys-how-it-works">How Automatic Key Rotation Works</a> in <i>AWS Key Management Service Developer Guide</i>. </li> <li> Tags on the CMK. To get this information, use <a>ListResourceTags</a>. </li> <li> Key policies and grants on the CMK. To get this information, use <a>GetKeyPolicy</a> and <a>ListGrants</a>. </li> </ul> If you call the <code>DescribeKey</code> operation on a <i>predefined AWS alias</i>, that is, an AWS alias with no key ID, AWS KMS creates an <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#master_keys">AWS managed CMK</a>. Then, it associates the alias with the new CMK, and returns the <code>KeyId</code> and <code>Arn</code> of the new CMK in the response.  <b>Cross-account use</b>: Yes. To perform this operation with a CMK in a different AWS account, specify the key ARN or alias ARN in the value of the <code>KeyId</code> parameter.  <b>Required permissions</b>: <a href="https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html">kms:DescribeKey</a> (key policy)  <b>Related operations:</b>  <ul> <li>  <a>GetKeyPolicy</a>  </li> <li>  <a>GetKeyRotationStatus</a>  </li> <li>  <a>ListAliases</a>  </li> <li>  <a>ListGrants</a>  </li> <li>  <a>ListKeys</a>  </li> <li>  <a>ListResourceTags</a>  </li> <li>  <a>ListRetirableGrants</a>  </li> </ul>

        :param self:
        :param GrantTokens:  A list of grant tokens. Use a grant token when your permission to call this operation comes from a new grant that has not yet achieved <i>eventual consistency</i>. For more information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#grant_token">Grant token</a> in the <i>AWS Key Management Service Developer Guide</i>.<br/>KeyId:  Describes the specified customer master key (CMK).  If you specify a predefined AWS alias (an AWS alias with no key ID), KMS associates the alias with an <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#master_keys">AWS managed CMK</a> and returns its <code>KeyId</code> and <code>Arn</code> in the response. To specify a CMK, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with <code>"alias/"</code>. To specify a CMK in a different AWS account, you must use the key ARN or alias ARN. For example: <ul> <li> Key ID: <code>1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> <li> Key ARN: <code>arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> <li> Alias name: <code>alias/ExampleAlias</code>  </li> <li> Alias ARN: <code>arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias</code>  </li> </ul> To get the key ID and key ARN for a CMK, use <a>ListKeys</a> or <a>DescribeKey</a>. To get the alias name and alias ARN, use <a>ListAliases</a>.<br/>
        :return: KeyMetadata:  Metadata associated with the key.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingDeletionWindowInDays</i> The waiting period before the primary key in a multi-Region key is deleted. This waiting period begins when the last of its replica keys is deleted. This value is present only when the <code>KeyState</code> of the CMK is <code>PendingReplicaDeletion</code>. That indicates that the CMK is the primary key in a multi-Region key, it is scheduled for deletion, and it still has existing replica keys. When a regional CMK or a replica key in a multi-Region key is scheduled for deletion, its deletion date is displayed in the <code>DeletionDate</code> field. However, when the primary key in a multi-Region key is scheduled for deletion, its waiting period doesn't begin until all of its replica keys are deleted. This value displays that waiting period. When the last replica key in the multi-Region key is deleted, the <code>KeyState</code> of the scheduled primary key changes from <code>PendingReplicaDeletion</code> to <code>PendingDeletion</code> and the deletion date appears in the <code>DeletionDate</code> field.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiRegionConfiguration</i> Lists the primary and replica CMKs in same multi-Region CMK. This field is present only when the value of the <code>MultiRegion</code> field is <code>True</code>. For more information about any listed CMK, use the <a>DescribeKey</a> operation. <ul> <li>  <code>MultiRegionKeyType</code> indicates whether the CMK is a <code>PRIMARY</code> or <code>REPLICA</code> key. </li> <li>  <code>PrimaryKey</code> displays the key ARN and Region of the primary key. This field displays the current CMK if it is the primary key. </li> <li>  <code>ReplicaKeys</code> displays the key ARNs and Regions of all replica keys. This field includes the current CMK if it is a replica key. </li> </ul>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>MultiRegionConfiguration</b>: Lists the primary and replica CMKs in same multi-Region CMK. This field is present only when the value of the <code>MultiRegion</code> field is <code>True</code>. For more information about any listed CMK, use the <a>DescribeKey</a> operation. <ul> <li>  <code>MultiRegionKeyType</code> indicates whether the CMK is a <code>PRIMARY</code> or <code>REPLICA</code> key. </li> <li>  <code>PrimaryKey</code> displays the key ARN and Region of the primary key. This field displays the current CMK if it is the primary key. </li> <li>  <code>ReplicaKeys</code> displays the key ARNs and Regions of all replica keys. This field includes the current CMK if it is a replica key. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiRegion</i> Indicates whether the CMK is a multi-Region (<code>True</code>) or regional (<code>False</code>) key. This value is <code>True</code> for multi-Region primary and replica CMKs and <code>False</code> for regional CMKs. For more information about multi-Region keys, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html">Using multi-Region keys</a> in the <i>AWS Key Management Service Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SigningAlgorithms</i> The signing algorithms that the CMK supports. You cannot use the CMK with other signing algorithms within AWS KMS. This field appears only when the <code>KeyUsage</code> of the CMK is <code>SIGN_VERIFY</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EncryptionAlgorithms</i> The encryption algorithms that the CMK supports. You cannot use the CMK with other encryption algorithms within AWS KMS. This value is present only when the <code>KeyUsage</code> of the CMK is <code>ENCRYPT_DECRYPT</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomerMasterKeySpec</i> Describes the type of key material in the CMK.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KeyManager</i> The manager of the CMK. CMKs in your AWS account are either customer managed or AWS managed. For more information about the difference, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#master_keys">Customer Master Keys</a> in the <i>AWS Key Management Service Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExpirationModel</i> Specifies whether the CMK's key material expires. This value is present only when <code>Origin</code> is <code>EXTERNAL</code>, otherwise this value is omitted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudHsmClusterId</i> The cluster ID of the AWS CloudHSM cluster that contains the key material for the CMK. When you create a CMK in a <a href="https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html">custom key store</a>, AWS KMS creates the key material for the CMK in the associated AWS CloudHSM cluster. This value is present only when the CMK is created in a custom key store.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomKeyStoreId</i> A unique identifier for the <a href="https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html">custom key store</a> that contains the CMK. This value is present only when the CMK is created in a custom key store.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Origin</i> The source of the CMK's key material. When this value is <code>AWS_KMS</code>, AWS KMS created the key material. When this value is <code>EXTERNAL</code>, the key material was imported from your existing key management infrastructure or the CMK lacks key material. When this value is <code>AWS_CLOUDHSM</code>, the key material was created in the AWS CloudHSM cluster associated with a custom key store.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ValidTo</i> The time at which the imported key material expires. When the key material expires, AWS KMS deletes the key material and the CMK becomes unusable. This value is present only for CMKs whose <code>Origin</code> is <code>EXTERNAL</code> and whose <code>ExpirationModel</code> is <code>KEY_MATERIAL_EXPIRES</code>, otherwise this value is omitted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeletionDate</i> The date and time after which AWS KMS deletes this CMK. This value is present only when the CMK is scheduled for deletion, that is, when its <code>KeyState</code> is <code>PendingDeletion</code>. When the primary key in a multi-Region key is scheduled for deletion but still has replica keys, its key state is <code>PendingReplicaDeletion</code> and the length of its waiting period is displayed in the <code>PendingDeletionWindowInDays</code> field.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KeyState</i> The current status of the CMK. For more information about how key state affects the use of a CMK, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html">Key state: Effect on your CMK</a> in the <i>AWS Key Management Service Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KeyUsage</i> The <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations">cryptographic operations</a> for which you can use the CMK.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the CMK.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specifies whether the CMK is enabled. When <code>KeyState</code> is <code>Enabled</code> this value is true, otherwise it is false.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date and time when the CMK was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the CMK. For examples, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-kms">AWS Key Management Service (AWS KMS)</a> in the Example ARNs section of the <i>AWS General Reference</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KeyId</i> The globally unique identifier for the CMK.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AWSAccountId</i> The twelve-digit account ID of the AWS account that owns the CMK.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiRegionKeyType</i> Indicates whether the CMK is a <code>PRIMARY</code> or <code>REPLICA</code> key.<br/>Displays the key ARN and Region of the primary key. This field includes the current CMK if it is the primary key.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PrimaryKey</b>: Displays the key ARN and Region of the primary key. This field includes the current CMK if it is the primary key.        """
        pass

    def disable_key(self, KeyId: str):
        r"""Sets the state of a customer master key (CMK) to disabled. This change temporarily prevents use of the CMK for <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations">cryptographic operations</a>.  For more information about how key state affects the use of a CMK, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html">Key state: Effect on your CMK</a> in the <i> <i>AWS Key Management Service Developer Guide</i> </i>. The CMK that you use for this operation must be in a compatible key state. For details, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html">Key state: Effect on your CMK</a> in the <i>AWS Key Management Service Developer Guide</i>.  <b>Cross-account use</b>: No. You cannot perform this operation on a CMK in a different AWS account.  <b>Required permissions</b>: <a href="https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html">kms:DisableKey</a> (key policy)  <b>Related operations</b>: <a>EnableKey</a> 

        :param self:
        :param KeyId:  Identifies the customer master key (CMK) to disable. Specify the key ID or key ARN of the CMK. For example: <ul> <li> Key ID: <code>1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> <li> Key ARN: <code>arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> </ul> To get the key ID and key ARN for a CMK, use <a>ListKeys</a> or <a>DescribeKey</a>.<br/>
        :return:         """
        pass

    def disable_key_rotation(self, KeyId: str):
        r"""Disables <a href="https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html">automatic rotation of the key material</a> for the specified symmetric customer master key (CMK).  You cannot enable automatic rotation of <a href="https://docs.aws.amazon.com/kms/latest/developerguide/symm-asymm-concepts.html#asymmetric-cmks">asymmetric CMKs</a>, CMKs with <a href="https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html">imported key material</a>, or CMKs in a <a href="https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html">custom key store</a>. To enable or disable automatic rotation of a set of related <a href="https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html#mrk-replica-key">multi-Region keys</a>, set the property on the primary key.  The CMK that you use for this operation must be in a compatible key state. For details, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html">Key state: Effect on your CMK</a> in the <i>AWS Key Management Service Developer Guide</i>.  <b>Cross-account use</b>: No. You cannot perform this operation on a CMK in a different AWS account.  <b>Required permissions</b>: <a href="https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html">kms:DisableKeyRotation</a> (key policy)  <b>Related operations:</b>  <ul> <li>  <a>EnableKeyRotation</a>  </li> <li>  <a>GetKeyRotationStatus</a>  </li> </ul>

        :param self:
        :param KeyId:  Identifies a symmetric customer master key (CMK). You cannot enable or disable automatic rotation of <a href="https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html#asymmetric-cmks">asymmetric CMKs</a>, CMKs with <a href="https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html">imported key material</a>, or CMKs in a <a href="https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html">custom key store</a>. Specify the key ID or key ARN of the CMK. For example: <ul> <li> Key ID: <code>1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> <li> Key ARN: <code>arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> </ul> To get the key ID and key ARN for a CMK, use <a>ListKeys</a> or <a>DescribeKey</a>.<br/>
        :return:         """
        pass

    def disconnect_custom_key_store(self, CustomKeyStoreId: str) -> DisconnectCustomKeyStoreResponse:
        r"""Disconnects the <a href="https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html">custom key store</a> from its associated AWS CloudHSM cluster. While a custom key store is disconnected, you can manage the custom key store and its customer master keys (CMKs), but you cannot create or use CMKs in the custom key store. You can reconnect the custom key store at any time. <note> While a custom key store is disconnected, all attempts to create customer master keys (CMKs) in the custom key store or to use existing CMKs in <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations">cryptographic operations</a> will fail. This action can prevent users from storing and accessing sensitive data. </note> <p/> To find the connection state of a custom key store, use the <a>DescribeCustomKeyStores</a> operation. To reconnect a custom key store, use the <a>ConnectCustomKeyStore</a> operation. If the operation succeeds, it returns a JSON object with no properties. This operation is part of the <a href="https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html">Custom Key Store feature</a> feature in AWS KMS, which combines the convenience and extensive integration of AWS KMS with the isolation and control of a single-tenant key store.  <b>Cross-account use</b>: No. You cannot perform this operation on a custom key store in a different AWS account.  <b>Required permissions</b>: <a href="https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html">kms:DisconnectCustomKeyStore</a> (IAM policy)  <b>Related operations:</b>  <ul> <li>  <a>ConnectCustomKeyStore</a>  </li> <li>  <a>CreateCustomKeyStore</a>  </li> <li>  <a>DeleteCustomKeyStore</a>  </li> <li>  <a>DescribeCustomKeyStores</a>  </li> <li>  <a>UpdateCustomKeyStore</a>  </li> </ul>

        :param self:
        :param CustomKeyStoreId:  Enter the ID of the custom key store you want to disconnect. To find the ID of a custom key store, use the <a>DescribeCustomKeyStores</a> operation.<br/>
        :return:         """
        pass

    def enable_key(self, KeyId: str):
        r"""Sets the key state of a customer master key (CMK) to enabled. This allows you to use the CMK for <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations">cryptographic operations</a>.  The CMK that you use for this operation must be in a compatible key state. For details, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html">Key state: Effect on your CMK</a> in the <i>AWS Key Management Service Developer Guide</i>.  <b>Cross-account use</b>: No. You cannot perform this operation on a CMK in a different AWS account.  <b>Required permissions</b>: <a href="https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html">kms:EnableKey</a> (key policy)  <b>Related operations</b>: <a>DisableKey</a> 

        :param self:
        :param KeyId:  Identifies the customer master key (CMK) to enable. Specify the key ID or key ARN of the CMK. For example: <ul> <li> Key ID: <code>1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> <li> Key ARN: <code>arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> </ul> To get the key ID and key ARN for a CMK, use <a>ListKeys</a> or <a>DescribeKey</a>.<br/>
        :return:         """
        pass

    def enable_key_rotation(self, KeyId: str):
        r"""Enables <a href="https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html">automatic rotation of the key material</a> for the specified symmetric customer master key (CMK). You cannot enable automatic rotation of <a href="https://docs.aws.amazon.com/kms/latest/developerguide/symm-asymm-concepts.html#asymmetric-cmks">asymmetric CMKs</a>, CMKs with <a href="https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html">imported key material</a>, or CMKs in a <a href="https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html">custom key store</a>. To enable or disable automatic rotation of a set of related <a href="https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html#mrk-replica-key">multi-Region keys</a>, set the property on the primary key. The CMK that you use for this operation must be in a compatible key state. For details, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html">Key state: Effect on your CMK</a> in the <i>AWS Key Management Service Developer Guide</i>.  <b>Cross-account use</b>: No. You cannot perform this operation on a CMK in a different AWS account.  <b>Required permissions</b>: <a href="https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html">kms:EnableKeyRotation</a> (key policy)  <b>Related operations:</b>  <ul> <li>  <a>DisableKeyRotation</a>  </li> <li>  <a>GetKeyRotationStatus</a>  </li> </ul>

        :param self:
        :param KeyId:  Identifies a symmetric customer master key (CMK). You cannot enable automatic rotation of <a href="https://docs.aws.amazon.com/kms/latest/developerguide/symm-asymm-concepts.html#asymmetric-cmks">asymmetric CMKs</a>, CMKs with <a href="https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html">imported key material</a>, or CMKs in a <a href="https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html">custom key store</a>. To enable or disable automatic rotation of a set of related <a href="https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html#mrk-replica-key">multi-Region keys</a>, set the property on the primary key. Specify the key ID or key ARN of the CMK. For example: <ul> <li> Key ID: <code>1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> <li> Key ARN: <code>arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> </ul> To get the key ID and key ARN for a CMK, use <a>ListKeys</a> or <a>DescribeKey</a>.<br/>
        :return:         """
        pass

    def encrypt(self, Plaintext: PlaintextType, KeyId: str, EncryptionContext: EncryptionContextType=None, GrantTokens: List[GrantTokenType]=None, EncryptionAlgorithm: str=None) -> EncryptResponse:
        r"""Encrypts plaintext into ciphertext by using a customer master key (CMK). The <code>Encrypt</code> operation has two primary use cases: <ul> <li> You can encrypt small amounts of arbitrary data, such as a personal identifier or database password, or other sensitive information.  </li> <li> You can use the <code>Encrypt</code> operation to move encrypted data from one AWS Region to another. For example, in Region A, generate a data key and use the plaintext key to encrypt your data. Then, in Region A, use the <code>Encrypt</code> operation to encrypt the plaintext data key under a CMK in Region B. Now, you can move the encrypted data and the encrypted data key to Region B. When necessary, you can decrypt the encrypted data key and the encrypted data entirely within in Region B. </li> </ul> You don't need to use the <code>Encrypt</code> operation to encrypt a data key. The <a>GenerateDataKey</a> and <a>GenerateDataKeyPair</a> operations return a plaintext data key and an encrypted copy of that data key. When you encrypt data, you must specify a symmetric or asymmetric CMK to use in the encryption operation. The CMK must have a <code>KeyUsage</code> value of <code>ENCRYPT_DECRYPT.</code> To find the <code>KeyUsage</code> of a CMK, use the <a>DescribeKey</a> operation.  If you use a symmetric CMK, you can use an encryption context to add additional security to your encryption operation. If you specify an <code>EncryptionContext</code> when encrypting data, you must specify the same encryption context (a case-sensitive exact match) when decrypting the data. Otherwise, the request to decrypt fails with an <code>InvalidCiphertextException</code>. For more information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context">Encryption Context</a> in the <i>AWS Key Management Service Developer Guide</i>. If you specify an asymmetric CMK, you must also specify the encryption algorithm. The algorithm must be compatible with the CMK type. <important> When you use an asymmetric CMK to encrypt or reencrypt data, be sure to record the CMK and encryption algorithm that you choose. You will be required to provide the same CMK and encryption algorithm when you decrypt the data. If the CMK and algorithm do not match the values used to encrypt the data, the decrypt operation fails. You are not required to supply the CMK ID and encryption algorithm when you decrypt with symmetric CMKs because AWS KMS stores this information in the ciphertext blob. AWS KMS cannot store metadata in ciphertext generated with asymmetric keys. The standard format for asymmetric key ciphertext does not include configurable fields. </important> The maximum size of the data that you can encrypt varies with the type of CMK and the encryption algorithm that you choose. <ul> <li> Symmetric CMKs <ul> <li>  <code>SYMMETRIC_DEFAULT</code>: 4096 bytes </li> </ul> </li> <li>  <code>RSA_2048</code>  <ul> <li>  <code>RSAES_OAEP_SHA_1</code>: 214 bytes </li> <li>  <code>RSAES_OAEP_SHA_256</code>: 190 bytes </li> </ul> </li> <li>  <code>RSA_3072</code>  <ul> <li>  <code>RSAES_OAEP_SHA_1</code>: 342 bytes </li> <li>  <code>RSAES_OAEP_SHA_256</code>: 318 bytes </li> </ul> </li> <li>  <code>RSA_4096</code>  <ul> <li>  <code>RSAES_OAEP_SHA_1</code>: 470 bytes </li> <li>  <code>RSAES_OAEP_SHA_256</code>: 446 bytes </li> </ul> </li> </ul> The CMK that you use for this operation must be in a compatible key state. For details, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html">Key state: Effect on your CMK</a> in the <i>AWS Key Management Service Developer Guide</i>.  <b>Cross-account use</b>: Yes. To perform this operation with a CMK in a different AWS account, specify the key ARN or alias ARN in the value of the <code>KeyId</code> parameter.  <b>Required permissions</b>: <a href="https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html">kms:Encrypt</a> (key policy)  <b>Related operations:</b>  <ul> <li>  <a>Decrypt</a>  </li> <li>  <a>GenerateDataKey</a>  </li> <li>  <a>GenerateDataKeyPair</a>  </li> </ul>

        :param self:
        :param EncryptionAlgorithm:  Specifies the encryption algorithm that AWS KMS will use to encrypt the plaintext message. The algorithm must be compatible with the CMK that you specify. This parameter is required only for asymmetric CMKs. The default value, <code>SYMMETRIC_DEFAULT</code>, is the algorithm used for symmetric CMKs. If you are using an asymmetric CMK, we recommend RSAES_OAEP_SHA_256.<br/>GrantTokens:  A list of grant tokens. Use a grant token when your permission to call this operation comes from a new grant that has not yet achieved <i>eventual consistency</i>. For more information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#grant_token">Grant token</a> in the <i>AWS Key Management Service Developer Guide</i>.<br/>EncryptionContext:  Specifies the encryption context that will be used to encrypt the data. An encryption context is valid only for <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations">cryptographic operations</a> with a symmetric CMK. The standard asymmetric encryption algorithms that AWS KMS uses do not support an encryption context.  An <i>encryption context</i> is a collection of non-secret key-value pairs that represents additional authenticated data. When you use an encryption context to encrypt data, you must specify the same (an exact case-sensitive match) encryption context to decrypt the data. An encryption context is optional when encrypting with a symmetric CMK, but it is highly recommended. For more information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context">Encryption Context</a> in the <i>AWS Key Management Service Developer Guide</i>.<br/>Plaintext:  Data to be encrypted.<br/>KeyId:  Identifies the customer master key (CMK) to use in the encryption operation. To specify a CMK, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with <code>"alias/"</code>. To specify a CMK in a different AWS account, you must use the key ARN or alias ARN. For example: <ul> <li> Key ID: <code>1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> <li> Key ARN: <code>arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> <li> Alias name: <code>alias/ExampleAlias</code>  </li> <li> Alias ARN: <code>arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias</code>  </li> </ul> To get the key ID and key ARN for a CMK, use <a>ListKeys</a> or <a>DescribeKey</a>. To get the alias name and alias ARN, use <a>ListAliases</a>.<br/>
        :return: EncryptionAlgorithm:  The encryption algorithm that was used to encrypt the plaintext.<br/>KeyId:  The Amazon Resource Name (<a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-ARN">key ARN</a>) of the CMK that was used to encrypt the plaintext.<br/>CiphertextBlob:  The encrypted plaintext. When you use the HTTP API or the AWS CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded.<br/>        """
        pass

    def generate_data_key(self, KeyId: str, EncryptionContext: EncryptionContextType=None, NumberOfBytes: int=None, KeySpec: str=None, GrantTokens: List[GrantTokenType]=None) -> GenerateDataKeyResponse:
        r"""Generates a unique symmetric data key for client-side encryption. This operation returns a plaintext copy of the data key and a copy that is encrypted under a customer master key (CMK) that you specify. You can use the plaintext key to encrypt your data outside of AWS KMS and store the encrypted data key with the encrypted data.  <code>GenerateDataKey</code> returns a unique data key for each request. The bytes in the plaintext key are not related to the caller or the CMK. To generate a data key, specify the symmetric CMK that will be used to encrypt the data key. You cannot use an asymmetric CMK to generate data keys. To get the type of your CMK, use the <a>DescribeKey</a> operation. You must also specify the length of the data key. Use either the <code>KeySpec</code> or <code>NumberOfBytes</code> parameters (but not both). For 128-bit and 256-bit data keys, use the <code>KeySpec</code> parameter.  To get only an encrypted copy of the data key, use <a>GenerateDataKeyWithoutPlaintext</a>. To generate an asymmetric data key pair, use the <a>GenerateDataKeyPair</a> or <a>GenerateDataKeyPairWithoutPlaintext</a> operation. To get a cryptographically secure random byte string, use <a>GenerateRandom</a>. You can use the optional encryption context to add additional security to the encryption operation. If you specify an <code>EncryptionContext</code>, you must specify the same encryption context (a case-sensitive exact match) when decrypting the encrypted data key. Otherwise, the request to decrypt fails with an <code>InvalidCiphertextException</code>. For more information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context">Encryption Context</a> in the <i>AWS Key Management Service Developer Guide</i>. The CMK that you use for this operation must be in a compatible key state. For details, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html">Key state: Effect on your CMK</a> in the <i>AWS Key Management Service Developer Guide</i>.  <b>How to use your data key</b>  We recommend that you use the following pattern to encrypt data locally in your application. You can write your own code or use a client-side encryption library, such as the <a href="https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/">AWS Encryption SDK</a>, the <a href="https://docs.aws.amazon.com/dynamodb-encryption-client/latest/devguide/">Amazon DynamoDB Encryption Client</a>, or <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingClientSideEncryption.html">Amazon S3 client-side encryption</a> to do these tasks for you. To encrypt data outside of AWS KMS: <ol> <li> Use the <code>GenerateDataKey</code> operation to get a data key. </li> <li> Use the plaintext data key (in the <code>Plaintext</code> field of the response) to encrypt your data outside of AWS KMS. Then erase the plaintext data key from memory. </li> <li> Store the encrypted data key (in the <code>CiphertextBlob</code> field of the response) with the encrypted data. </li> </ol> To decrypt data outside of AWS KMS: <ol> <li> Use the <a>Decrypt</a> operation to decrypt the encrypted data key. The operation returns a plaintext copy of the data key. </li> <li> Use the plaintext data key to decrypt data outside of AWS KMS, then erase the plaintext data key from memory. </li> </ol>  <b>Cross-account use</b>: Yes. To perform this operation with a CMK in a different AWS account, specify the key ARN or alias ARN in the value of the <code>KeyId</code> parameter.  <b>Required permissions</b>: <a href="https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html">kms:GenerateDataKey</a> (key policy)  <b>Related operations:</b>  <ul> <li>  <a>Decrypt</a>  </li> <li>  <a>Encrypt</a>  </li> <li>  <a>GenerateDataKeyPair</a>  </li> <li>  <a>GenerateDataKeyPairWithoutPlaintext</a>  </li> <li>  <a>GenerateDataKeyWithoutPlaintext</a>  </li> </ul>

        :param self:
        :param GrantTokens:  A list of grant tokens. Use a grant token when your permission to call this operation comes from a new grant that has not yet achieved <i>eventual consistency</i>. For more information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#grant_token">Grant token</a> in the <i>AWS Key Management Service Developer Guide</i>.<br/>KeySpec:  Specifies the length of the data key. Use <code>AES_128</code> to generate a 128-bit symmetric key, or <code>AES_256</code> to generate a 256-bit symmetric key. You must specify either the <code>KeySpec</code> or the <code>NumberOfBytes</code> parameter (but not both) in every <code>GenerateDataKey</code> request.<br/>NumberOfBytes:  Specifies the length of the data key in bytes. For example, use the value 64 to generate a 512-bit data key (64 bytes is 512 bits). For 128-bit (16-byte) and 256-bit (32-byte) data keys, use the <code>KeySpec</code> parameter. You must specify either the <code>KeySpec</code> or the <code>NumberOfBytes</code> parameter (but not both) in every <code>GenerateDataKey</code> request.<br/>EncryptionContext:  Specifies the encryption context that will be used when encrypting the data key. An <i>encryption context</i> is a collection of non-secret key-value pairs that represents additional authenticated data. When you use an encryption context to encrypt data, you must specify the same (an exact case-sensitive match) encryption context to decrypt the data. An encryption context is optional when encrypting with a symmetric CMK, but it is highly recommended. For more information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context">Encryption Context</a> in the <i>AWS Key Management Service Developer Guide</i>.<br/>KeyId:  Identifies the symmetric CMK that encrypts the data key. To specify a CMK, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with <code>"alias/"</code>. To specify a CMK in a different AWS account, you must use the key ARN or alias ARN. For example: <ul> <li> Key ID: <code>1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> <li> Key ARN: <code>arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> <li> Alias name: <code>alias/ExampleAlias</code>  </li> <li> Alias ARN: <code>arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias</code>  </li> </ul> To get the key ID and key ARN for a CMK, use <a>ListKeys</a> or <a>DescribeKey</a>. To get the alias name and alias ARN, use <a>ListAliases</a>.<br/>
        :return: KeyId:  The Amazon Resource Name (<a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-ARN">key ARN</a>) of the CMK that encrypted the data key.<br/>Plaintext:  The plaintext data key. When you use the HTTP API or the AWS CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded. Use this data key to encrypt your data outside of KMS. Then, remove it from memory as soon as possible.<br/>CiphertextBlob:  The encrypted copy of the data key. When you use the HTTP API or the AWS CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded.<br/>        """
        pass

    def generate_data_key_pair(self, KeyPairSpec: str, KeyId: str, EncryptionContext: EncryptionContextType=None, GrantTokens: List[GrantTokenType]=None) -> GenerateDataKeyPairResponse:
        r"""Generates a unique asymmetric data key pair. The <code>GenerateDataKeyPair</code> operation returns a plaintext public key, a plaintext private key, and a copy of the private key that is encrypted under the symmetric CMK you specify. You can use the data key pair to perform asymmetric cryptography outside of AWS KMS.  <code>GenerateDataKeyPair</code> returns a unique data key pair for each request. The bytes in the keys are not related to the caller or the CMK that is used to encrypt the private key. You can use the public key that <code>GenerateDataKeyPair</code> returns to encrypt data or verify a signature outside of AWS KMS. Then, store the encrypted private key with the data. When you are ready to decrypt data or sign a message, you can use the <a>Decrypt</a> operation to decrypt the encrypted private key. To generate a data key pair, you must specify a symmetric customer master key (CMK) to encrypt the private key in a data key pair. You cannot use an asymmetric CMK or a CMK in a custom key store. To get the type and origin of your CMK, use the <a>DescribeKey</a> operation.  If you are using the data key pair to encrypt data, or for any operation where you don't immediately need a private key, consider using the <a>GenerateDataKeyPairWithoutPlaintext</a> operation. <code>GenerateDataKeyPairWithoutPlaintext</code> returns a plaintext public key and an encrypted private key, but omits the plaintext private key that you need only to decrypt ciphertext or sign a message. Later, when you need to decrypt the data or sign a message, use the <a>Decrypt</a> operation to decrypt the encrypted private key in the data key pair. You can use the optional encryption context to add additional security to the encryption operation. If you specify an <code>EncryptionContext</code>, you must specify the same encryption context (a case-sensitive exact match) when decrypting the encrypted data key. Otherwise, the request to decrypt fails with an <code>InvalidCiphertextException</code>. For more information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context">Encryption Context</a> in the <i>AWS Key Management Service Developer Guide</i>. The CMK that you use for this operation must be in a compatible key state. For details, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html">Key state: Effect on your CMK</a> in the <i>AWS Key Management Service Developer Guide</i>.  <b>Cross-account use</b>: Yes. To perform this operation with a CMK in a different AWS account, specify the key ARN or alias ARN in the value of the <code>KeyId</code> parameter.  <b>Required permissions</b>: <a href="https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html">kms:GenerateDataKeyPair</a> (key policy)  <b>Related operations:</b>  <ul> <li>  <a>Decrypt</a>  </li> <li>  <a>Encrypt</a>  </li> <li>  <a>GenerateDataKey</a>  </li> <li>  <a>GenerateDataKeyPairWithoutPlaintext</a>  </li> <li>  <a>GenerateDataKeyWithoutPlaintext</a>  </li> </ul>

        :param self:
        :param GrantTokens:  A list of grant tokens. Use a grant token when your permission to call this operation comes from a new grant that has not yet achieved <i>eventual consistency</i>. For more information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#grant_token">Grant token</a> in the <i>AWS Key Management Service Developer Guide</i>.<br/>KeyPairSpec:  Determines the type of data key pair that is generated.  The AWS KMS rule that restricts the use of asymmetric RSA CMKs to encrypt and decrypt or to sign and verify (but not both), and the rule that permits you to use ECC CMKs only to sign and verify, are not effective outside of AWS KMS.<br/>KeyId:  Specifies the symmetric CMK that encrypts the private key in the data key pair. You cannot specify an asymmetric CMK or a CMK in a custom key store. To get the type and origin of your CMK, use the <a>DescribeKey</a> operation. To specify a CMK, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with <code>"alias/"</code>. To specify a CMK in a different AWS account, you must use the key ARN or alias ARN. For example: <ul> <li> Key ID: <code>1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> <li> Key ARN: <code>arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> <li> Alias name: <code>alias/ExampleAlias</code>  </li> <li> Alias ARN: <code>arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias</code>  </li> </ul> To get the key ID and key ARN for a CMK, use <a>ListKeys</a> or <a>DescribeKey</a>. To get the alias name and alias ARN, use <a>ListAliases</a>.<br/>EncryptionContext:  Specifies the encryption context that will be used when encrypting the private key in the data key pair. An <i>encryption context</i> is a collection of non-secret key-value pairs that represents additional authenticated data. When you use an encryption context to encrypt data, you must specify the same (an exact case-sensitive match) encryption context to decrypt the data. An encryption context is optional when encrypting with a symmetric CMK, but it is highly recommended. For more information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context">Encryption Context</a> in the <i>AWS Key Management Service Developer Guide</i>.<br/>
        :return: KeyPairSpec:  The type of data key pair that was generated.<br/>KeyId:  The Amazon Resource Name (<a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-ARN">key ARN</a>) of the CMK that encrypted the private key.<br/>PublicKey:  The public key (in plaintext).<br/>PrivateKeyPlaintext:  The plaintext copy of the private key. When you use the HTTP API or the AWS CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded.<br/>PrivateKeyCiphertextBlob:  The encrypted copy of the private key. When you use the HTTP API or the AWS CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded.<br/>        """
        pass

    def generate_data_key_pair_without_plaintext(self, KeyPairSpec: str, KeyId: str, EncryptionContext: EncryptionContextType=None, GrantTokens: List[GrantTokenType]=None) -> GenerateDataKeyPairWithoutPlaintextResponse:
        r"""Generates a unique asymmetric data key pair. The <code>GenerateDataKeyPairWithoutPlaintext</code> operation returns a plaintext public key and a copy of the private key that is encrypted under the symmetric CMK you specify. Unlike <a>GenerateDataKeyPair</a>, this operation does not return a plaintext private key.  To generate a data key pair, you must specify a symmetric customer master key (CMK) to encrypt the private key in the data key pair. You cannot use an asymmetric CMK or a CMK in a custom key store. To get the type and origin of your CMK, use the <code>KeySpec</code> field in the <a>DescribeKey</a> response. You can use the public key that <code>GenerateDataKeyPairWithoutPlaintext</code> returns to encrypt data or verify a signature outside of AWS KMS. Then, store the encrypted private key with the data. When you are ready to decrypt data or sign a message, you can use the <a>Decrypt</a> operation to decrypt the encrypted private key.  <code>GenerateDataKeyPairWithoutPlaintext</code> returns a unique data key pair for each request. The bytes in the key are not related to the caller or CMK that is used to encrypt the private key. You can use the optional encryption context to add additional security to the encryption operation. If you specify an <code>EncryptionContext</code>, you must specify the same encryption context (a case-sensitive exact match) when decrypting the encrypted data key. Otherwise, the request to decrypt fails with an <code>InvalidCiphertextException</code>. For more information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context">Encryption Context</a> in the <i>AWS Key Management Service Developer Guide</i>. The CMK that you use for this operation must be in a compatible key state. For details, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html">Key state: Effect on your CMK</a> in the <i>AWS Key Management Service Developer Guide</i>.  <b>Cross-account use</b>: Yes. To perform this operation with a CMK in a different AWS account, specify the key ARN or alias ARN in the value of the <code>KeyId</code> parameter.  <b>Required permissions</b>: <a href="https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html">kms:GenerateDataKeyPairWithoutPlaintext</a> (key policy)  <b>Related operations:</b>  <ul> <li>  <a>Decrypt</a>  </li> <li>  <a>Encrypt</a>  </li> <li>  <a>GenerateDataKey</a>  </li> <li>  <a>GenerateDataKeyPair</a>  </li> <li>  <a>GenerateDataKeyWithoutPlaintext</a>  </li> </ul>

        :param self:
        :param GrantTokens:  A list of grant tokens. Use a grant token when your permission to call this operation comes from a new grant that has not yet achieved <i>eventual consistency</i>. For more information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#grant_token">Grant token</a> in the <i>AWS Key Management Service Developer Guide</i>.<br/>KeyPairSpec:  Determines the type of data key pair that is generated. The AWS KMS rule that restricts the use of asymmetric RSA CMKs to encrypt and decrypt or to sign and verify (but not both), and the rule that permits you to use ECC CMKs only to sign and verify, are not effective outside of AWS KMS.<br/>KeyId:  Specifies the CMK that encrypts the private key in the data key pair. You must specify a symmetric CMK. You cannot use an asymmetric CMK or a CMK in a custom key store. To get the type and origin of your CMK, use the <a>DescribeKey</a> operation.  To specify a CMK, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with <code>"alias/"</code>. To specify a CMK in a different AWS account, you must use the key ARN or alias ARN. For example: <ul> <li> Key ID: <code>1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> <li> Key ARN: <code>arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> <li> Alias name: <code>alias/ExampleAlias</code>  </li> <li> Alias ARN: <code>arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias</code>  </li> </ul> To get the key ID and key ARN for a CMK, use <a>ListKeys</a> or <a>DescribeKey</a>. To get the alias name and alias ARN, use <a>ListAliases</a>.<br/>EncryptionContext:  Specifies the encryption context that will be used when encrypting the private key in the data key pair. An <i>encryption context</i> is a collection of non-secret key-value pairs that represents additional authenticated data. When you use an encryption context to encrypt data, you must specify the same (an exact case-sensitive match) encryption context to decrypt the data. An encryption context is optional when encrypting with a symmetric CMK, but it is highly recommended. For more information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context">Encryption Context</a> in the <i>AWS Key Management Service Developer Guide</i>.<br/>
        :return: KeyPairSpec:  The type of data key pair that was generated.<br/>KeyId:  The Amazon Resource Name (<a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-ARN">key ARN</a>) of the CMK that encrypted the private key.<br/>PublicKey:  The public key (in plaintext).<br/>PrivateKeyCiphertextBlob:  The encrypted copy of the private key. When you use the HTTP API or the AWS CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded.<br/>        """
        pass

    def generate_data_key_without_plaintext(self, KeyId: str, EncryptionContext: EncryptionContextType=None, KeySpec: str=None, NumberOfBytes: int=None, GrantTokens: List[GrantTokenType]=None) -> GenerateDataKeyWithoutPlaintextResponse:
        r"""Generates a unique symmetric data key. This operation returns a data key that is encrypted under a customer master key (CMK) that you specify. To request an asymmetric data key pair, use the <a>GenerateDataKeyPair</a> or <a>GenerateDataKeyPairWithoutPlaintext</a> operations.  <code>GenerateDataKeyWithoutPlaintext</code> is identical to the <a>GenerateDataKey</a> operation except that returns only the encrypted copy of the data key. This operation is useful for systems that need to encrypt data at some point, but not immediately. When you need to encrypt the data, you call the <a>Decrypt</a> operation on the encrypted copy of the key.  It's also useful in distributed systems with different levels of trust. For example, you might store encrypted data in containers. One component of your system creates new containers and stores an encrypted data key with each container. Then, a different component puts the data into the containers. That component first decrypts the data key, uses the plaintext data key to encrypt data, puts the encrypted data into the container, and then destroys the plaintext data key. In this system, the component that creates the containers never sees the plaintext data key.  <code>GenerateDataKeyWithoutPlaintext</code> returns a unique data key for each request. The bytes in the keys are not related to the caller or CMK that is used to encrypt the private key. To generate a data key, you must specify the symmetric customer master key (CMK) that is used to encrypt the data key. You cannot use an asymmetric CMK to generate a data key. To get the type of your CMK, use the <a>DescribeKey</a> operation. If the operation succeeds, you will find the encrypted copy of the data key in the <code>CiphertextBlob</code> field. You can use the optional encryption context to add additional security to the encryption operation. If you specify an <code>EncryptionContext</code>, you must specify the same encryption context (a case-sensitive exact match) when decrypting the encrypted data key. Otherwise, the request to decrypt fails with an <code>InvalidCiphertextException</code>. For more information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context">Encryption Context</a> in the <i>AWS Key Management Service Developer Guide</i>. The CMK that you use for this operation must be in a compatible key state. For details, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html">Key state: Effect on your CMK</a> in the <i>AWS Key Management Service Developer Guide</i>.  <b>Cross-account use</b>: Yes. To perform this operation with a CMK in a different AWS account, specify the key ARN or alias ARN in the value of the <code>KeyId</code> parameter.  <b>Required permissions</b>: <a href="https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html">kms:GenerateDataKeyWithoutPlaintext</a> (key policy)  <b>Related operations:</b>  <ul> <li>  <a>Decrypt</a>  </li> <li>  <a>Encrypt</a>  </li> <li>  <a>GenerateDataKey</a>  </li> <li>  <a>GenerateDataKeyPair</a>  </li> <li>  <a>GenerateDataKeyPairWithoutPlaintext</a>  </li> </ul>

        :param self:
        :param GrantTokens:  A list of grant tokens. Use a grant token when your permission to call this operation comes from a new grant that has not yet achieved <i>eventual consistency</i>. For more information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#grant_token">Grant token</a> in the <i>AWS Key Management Service Developer Guide</i>.<br/>NumberOfBytes:  The length of the data key in bytes. For example, use the value 64 to generate a 512-bit data key (64 bytes is 512 bits). For common key lengths (128-bit and 256-bit symmetric keys), we recommend that you use the <code>KeySpec</code> field instead of this one.<br/>KeySpec:  The length of the data key. Use <code>AES_128</code> to generate a 128-bit symmetric key, or <code>AES_256</code> to generate a 256-bit symmetric key.<br/>EncryptionContext:  Specifies the encryption context that will be used when encrypting the data key. An <i>encryption context</i> is a collection of non-secret key-value pairs that represents additional authenticated data. When you use an encryption context to encrypt data, you must specify the same (an exact case-sensitive match) encryption context to decrypt the data. An encryption context is optional when encrypting with a symmetric CMK, but it is highly recommended. For more information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context">Encryption Context</a> in the <i>AWS Key Management Service Developer Guide</i>.<br/>KeyId:  The identifier of the symmetric customer master key (CMK) that encrypts the data key. To specify a CMK, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with <code>"alias/"</code>. To specify a CMK in a different AWS account, you must use the key ARN or alias ARN. For example: <ul> <li> Key ID: <code>1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> <li> Key ARN: <code>arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> <li> Alias name: <code>alias/ExampleAlias</code>  </li> <li> Alias ARN: <code>arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias</code>  </li> </ul> To get the key ID and key ARN for a CMK, use <a>ListKeys</a> or <a>DescribeKey</a>. To get the alias name and alias ARN, use <a>ListAliases</a>.<br/>
        :return: KeyId:  The Amazon Resource Name (<a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-ARN">key ARN</a>) of the CMK that encrypted the data key.<br/>CiphertextBlob:  The encrypted data key. When you use the HTTP API or the AWS CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded.<br/>        """
        pass

    def generate_random(self, NumberOfBytes: int=None, CustomKeyStoreId: str=None) -> GenerateRandomResponse:
        r"""Returns a random byte string that is cryptographically secure. By default, the random byte string is generated in AWS KMS. To generate the byte string in the AWS CloudHSM cluster that is associated with a <a href="https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html">custom key store</a>, specify the custom key store ID. For more information about entropy and random number generation, see <a href="https://docs.aws.amazon.com/kms/latest/cryptographic-details/">AWS Key Management Service Cryptographic Details</a>.  <b>Required permissions</b>: <a href="https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html">kms:GenerateRandom</a> (IAM policy)

        :param self:
        :param CustomKeyStoreId:  Generates the random byte string in the AWS CloudHSM cluster that is associated with the specified <a href="https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html">custom key store</a>. To find the ID of a custom key store, use the <a>DescribeCustomKeyStores</a> operation.<br/>NumberOfBytes:  The length of the byte string.<br/>
        :return: Plaintext:  The random byte string. When you use the HTTP API or the AWS CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded.<br/>        """
        pass

    def get_key_policy(self, PolicyName: str, KeyId: str) -> GetKeyPolicyResponse:
        r"""Gets a key policy attached to the specified customer master key (CMK).  <b>Cross-account use</b>: No. You cannot perform this operation on a CMK in a different AWS account.  <b>Required permissions</b>: <a href="https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html">kms:GetKeyPolicy</a> (key policy)  <b>Related operations</b>: <a>PutKeyPolicy</a> 

        :param self:
        :param PolicyName:  Specifies the name of the key policy. The only valid name is <code>default</code>. To get the names of key policies, use <a>ListKeyPolicies</a>.<br/>KeyId:  Gets the key policy for the specified customer master key (CMK). Specify the key ID or key ARN of the CMK. For example: <ul> <li> Key ID: <code>1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> <li> Key ARN: <code>arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> </ul> To get the key ID and key ARN for a CMK, use <a>ListKeys</a> or <a>DescribeKey</a>.<br/>
        :return: Policy:  A key policy document in JSON format.<br/>        """
        pass

    def get_key_rotation_status(self, KeyId: str) -> GetKeyRotationStatusResponse:
        r"""Gets a Boolean value that indicates whether <a href="https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html">automatic rotation of the key material</a> is enabled for the specified customer master key (CMK). You cannot enable automatic rotation of <a href="https://docs.aws.amazon.com/kms/latest/developerguide/symm-asymm-concepts.html#asymmetric-cmks">asymmetric CMKs</a>, CMKs with <a href="https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html">imported key material</a>, or CMKs in a <a href="https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html">custom key store</a>. To enable or disable automatic rotation of a set of related <a href="https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html#mrk-replica-key">multi-Region keys</a>, set the property on the primary key. The key rotation status for these CMKs is always <code>false</code>. The CMK that you use for this operation must be in a compatible key state. For details, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html">Key state: Effect on your CMK</a> in the <i>AWS Key Management Service Developer Guide</i>. <ul> <li> Disabled: The key rotation status does not change when you disable a CMK. However, while the CMK is disabled, AWS KMS does not rotate the backing key. </li> <li> Pending deletion: While a CMK is pending deletion, its key rotation status is <code>false</code> and AWS KMS does not rotate the backing key. If you cancel the deletion, the original key rotation status is restored. </li> </ul>  <b>Cross-account use</b>: Yes. To perform this operation on a CMK in a different AWS account, specify the key ARN in the value of the <code>KeyId</code> parameter.  <b>Required permissions</b>: <a href="https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html">kms:GetKeyRotationStatus</a> (key policy)  <b>Related operations:</b>  <ul> <li>  <a>DisableKeyRotation</a>  </li> <li>  <a>EnableKeyRotation</a>  </li> </ul>

        :param self:
        :param KeyId:  Gets the rotation status for the specified customer master key (CMK). Specify the key ID or key ARN of the CMK. To specify a CMK in a different AWS account, you must use the key ARN. For example: <ul> <li> Key ID: <code>1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> <li> Key ARN: <code>arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> </ul> To get the key ID and key ARN for a CMK, use <a>ListKeys</a> or <a>DescribeKey</a>.<br/>
        :return: KeyRotationEnabled:  A Boolean value that specifies whether key rotation is enabled.<br/>        """
        pass

    def get_parameters_for_import(self, WrappingKeySpec: str, WrappingAlgorithm: str, KeyId: str) -> GetParametersForImportResponse:
        r"""Returns the items you need to import key material into a symmetric, customer managed customer master key (CMK). For more information about importing key material into AWS KMS, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html">Importing Key Material</a> in the <i>AWS Key Management Service Developer Guide</i>. This operation returns a public key and an import token. Use the public key to encrypt the symmetric key material. Store the import token to send with a subsequent <a>ImportKeyMaterial</a> request. You must specify the key ID of the symmetric CMK into which you will import key material. This CMK's <code>Origin</code> must be <code>EXTERNAL</code>. You must also specify the wrapping algorithm and type of wrapping key (public key) that you will use to encrypt the key material. You cannot perform this operation on an asymmetric CMK or on any CMK in a different AWS account. To import key material, you must use the public key and import token from the same response. These items are valid for 24 hours. The expiration date and time appear in the <code>GetParametersForImport</code> response. You cannot use an expired token in an <a>ImportKeyMaterial</a> request. If your key and token expire, send another <code>GetParametersForImport</code> request. The CMK that you use for this operation must be in a compatible key state. For details, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html">Key state: Effect on your CMK</a> in the <i>AWS Key Management Service Developer Guide</i>.  <b>Cross-account use</b>: No. You cannot perform this operation on a CMK in a different AWS account.  <b>Required permissions</b>: <a href="https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html">kms:GetParametersForImport</a> (key policy)  <b>Related operations:</b>  <ul> <li>  <a>ImportKeyMaterial</a>  </li> <li>  <a>DeleteImportedKeyMaterial</a>  </li> </ul>

        :param self:
        :param WrappingKeySpec:  The type of wrapping key (public key) to return in the response. Only 2048-bit RSA public keys are supported.<br/>WrappingAlgorithm:  The algorithm you will use to encrypt the key material before importing it with <a>ImportKeyMaterial</a>. For more information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys-encrypt-key-material.html">Encrypt the Key Material</a> in the <i>AWS Key Management Service Developer Guide</i>.<br/>KeyId:  The identifier of the symmetric CMK into which you will import key material. The <code>Origin</code> of the CMK must be <code>EXTERNAL</code>. Specify the key ID or key ARN of the CMK. For example: <ul> <li> Key ID: <code>1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> <li> Key ARN: <code>arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> </ul> To get the key ID and key ARN for a CMK, use <a>ListKeys</a> or <a>DescribeKey</a>.<br/>
        :return: ParametersValidTo:  The time at which the import token and public key are no longer valid. After this time, you cannot use them to make an <a>ImportKeyMaterial</a> request and you must send another <code>GetParametersForImport</code> request to get new ones.<br/>PublicKey:  The public key to use to encrypt the key material before importing it with <a>ImportKeyMaterial</a>.<br/>ImportToken:  The import token to send in a subsequent <a>ImportKeyMaterial</a> request.<br/>KeyId:  The Amazon Resource Name (<a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-ARN">key ARN</a>) of the CMK to use in a subsequent <a>ImportKeyMaterial</a> request. This is the same CMK specified in the <code>GetParametersForImport</code> request.<br/>        """
        pass

    def get_public_key(self, KeyId: str, GrantTokens: List[GrantTokenType]=None) -> GetPublicKeyResponse:
        r"""Returns the public key of an asymmetric CMK. Unlike the private key of a asymmetric CMK, which never leaves AWS KMS unencrypted, callers with <code>kms:GetPublicKey</code> permission can download the public key of an asymmetric CMK. You can share the public key to allow others to encrypt messages and verify signatures outside of AWS KMS. For information about symmetric and asymmetric CMKs, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html">Using Symmetric and Asymmetric CMKs</a> in the <i>AWS Key Management Service Developer Guide</i>. You do not need to download the public key. Instead, you can use the public key within AWS KMS by calling the <a>Encrypt</a>, <a>ReEncrypt</a>, or <a>Verify</a> operations with the identifier of an asymmetric CMK. When you use the public key within AWS KMS, you benefit from the authentication, authorization, and logging that are part of every AWS KMS operation. You also reduce of risk of encrypting data that cannot be decrypted. These features are not effective outside of AWS KMS. For details, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/download-public-key.html#download-public-key-considerations">Special Considerations for Downloading Public Keys</a>. To help you use the public key safely outside of AWS KMS, <code>GetPublicKey</code> returns important information about the public key in the response, including: <ul> <li>  <a href="https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html#KMS-GetPublicKey-response-CustomerMasterKeySpec">CustomerMasterKeySpec</a>: The type of key material in the public key, such as <code>RSA_4096</code> or <code>ECC_NIST_P521</code>. </li> <li>  <a href="https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html#KMS-GetPublicKey-response-KeyUsage">KeyUsage</a>: Whether the key is used for encryption or signing. </li> <li>  <a href="https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html#KMS-GetPublicKey-response-EncryptionAlgorithms">EncryptionAlgorithms</a> or <a href="https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html#KMS-GetPublicKey-response-SigningAlgorithms">SigningAlgorithms</a>: A list of the encryption algorithms or the signing algorithms for the key. </li> </ul> Although AWS KMS cannot enforce these restrictions on external operations, it is crucial that you use this information to prevent the public key from being used improperly. For example, you can prevent a public signing key from being used encrypt data, or prevent a public key from being used with an encryption algorithm that is not supported by AWS KMS. You can also avoid errors, such as using the wrong signing algorithm in a verification operation. The CMK that you use for this operation must be in a compatible key state. For details, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html">Key state: Effect on your CMK</a> in the <i>AWS Key Management Service Developer Guide</i>.  <b>Cross-account use</b>: Yes. To perform this operation with a CMK in a different AWS account, specify the key ARN or alias ARN in the value of the <code>KeyId</code> parameter.  <b>Required permissions</b>: <a href="https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html">kms:GetPublicKey</a> (key policy)  <b>Related operations</b>: <a>CreateKey</a> 

        :param self:
        :param GrantTokens:  A list of grant tokens. Use a grant token when your permission to call this operation comes from a new grant that has not yet achieved <i>eventual consistency</i>. For more information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#grant_token">Grant token</a> in the <i>AWS Key Management Service Developer Guide</i>.<br/>KeyId:  Identifies the asymmetric CMK that includes the public key. To specify a CMK, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with <code>"alias/"</code>. To specify a CMK in a different AWS account, you must use the key ARN or alias ARN. For example: <ul> <li> Key ID: <code>1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> <li> Key ARN: <code>arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> <li> Alias name: <code>alias/ExampleAlias</code>  </li> <li> Alias ARN: <code>arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias</code>  </li> </ul> To get the key ID and key ARN for a CMK, use <a>ListKeys</a> or <a>DescribeKey</a>. To get the alias name and alias ARN, use <a>ListAliases</a>.<br/>
        :return: SigningAlgorithms:  The signing algorithms that AWS KMS supports for this key. This field appears in the response only when the <code>KeyUsage</code> of the public key is <code>SIGN_VERIFY</code>.<br/>EncryptionAlgorithms:  The encryption algorithms that AWS KMS supports for this key.  This information is critical. If a public key encrypts data outside of AWS KMS by using an unsupported encryption algorithm, the ciphertext cannot be decrypted.  This field appears in the response only when the <code>KeyUsage</code> of the public key is <code>ENCRYPT_DECRYPT</code>.<br/>KeyUsage:  The permitted use of the public key. Valid values are <code>ENCRYPT_DECRYPT</code> or <code>SIGN_VERIFY</code>.  This information is critical. If a public key with <code>SIGN_VERIFY</code> key usage encrypts data outside of AWS KMS, the ciphertext cannot be decrypted. <br/>CustomerMasterKeySpec:  The type of the of the public key that was downloaded.<br/>PublicKey:  The exported public key.  The value is a DER-encoded X.509 public key, also known as <code>SubjectPublicKeyInfo</code> (SPKI), as defined in <a href="https://tools.ietf.org/html/rfc5280">RFC 5280</a>. When you use the HTTP API or the AWS CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded. <p/><br/>KeyId:  The Amazon Resource Name (<a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-ARN">key ARN</a>) of the asymmetric CMK from which the public key was downloaded.<br/>        """
        pass

    def import_key_material(self, EncryptedKeyMaterial: CiphertextType, ImportToken: CiphertextType, KeyId: str, ValidTo: DateType=None, ExpirationModel: str=None) -> ImportKeyMaterialResponse:
        r"""Imports key material into an existing symmetric AWS KMS customer master key (CMK) that was created without key material. After you successfully import key material into a CMK, you can <a href="https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html#reimport-key-material">reimport the same key material</a> into that CMK, but you cannot import different key material.  You cannot perform this operation on an asymmetric CMK or on any CMK in a different AWS account. For more information about creating CMKs with no key material and then importing key material, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html">Importing Key Material</a> in the <i>AWS Key Management Service Developer Guide</i>. Before using this operation, call <a>GetParametersForImport</a>. Its response includes a public key and an import token. Use the public key to encrypt the key material. Then, submit the import token from the same <code>GetParametersForImport</code> response. When calling this operation, you must specify the following values: <ul> <li> The key ID or key ARN of a CMK with no key material. Its <code>Origin</code> must be <code>EXTERNAL</code>. To create a CMK with no key material, call <a>CreateKey</a> and set the value of its <code>Origin</code> parameter to <code>EXTERNAL</code>. To get the <code>Origin</code> of a CMK, call <a>DescribeKey</a>.) </li> <li> The encrypted key material. To get the public key to encrypt the key material, call <a>GetParametersForImport</a>. </li> <li> The import token that <a>GetParametersForImport</a> returned. You must use a public key and token from the same <code>GetParametersForImport</code> response. </li> <li> Whether the key material expires and if so, when. If you set an expiration date, AWS KMS deletes the key material from the CMK on the specified date, and the CMK becomes unusable. To use the CMK again, you must reimport the same key material. The only way to change an expiration date is by reimporting the same key material and specifying a new expiration date.  </li> </ul> When this operation is successful, the key state of the CMK changes from <code>PendingImport</code> to <code>Enabled</code>, and you can use the CMK. If this operation fails, use the exception to help determine the problem. If the error is related to the key material, the import token, or wrapping key, use <a>GetParametersForImport</a> to get a new public key and import token for the CMK and repeat the import procedure. For help, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html#importing-keys-overview">How To Import Key Material</a> in the <i>AWS Key Management Service Developer Guide</i>. The CMK that you use for this operation must be in a compatible key state. For details, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html">Key state: Effect on your CMK</a> in the <i>AWS Key Management Service Developer Guide</i>.  <b>Cross-account use</b>: No. You cannot perform this operation on a CMK in a different AWS account.  <b>Required permissions</b>: <a href="https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html">kms:ImportKeyMaterial</a> (key policy)  <b>Related operations:</b>  <ul> <li>  <a>DeleteImportedKeyMaterial</a>  </li> <li>  <a>GetParametersForImport</a>  </li> </ul>

        :param self:
        :param ExpirationModel:  Specifies whether the key material expires. The default is <code>KEY_MATERIAL_EXPIRES</code>, in which case you must include the <code>ValidTo</code> parameter. When this parameter is set to <code>KEY_MATERIAL_DOES_NOT_EXPIRE</code>, you must omit the <code>ValidTo</code> parameter.<br/>ValidTo:  The time at which the imported key material expires. When the key material expires, AWS KMS deletes the key material and the CMK becomes unusable. You must omit this parameter when the <code>ExpirationModel</code> parameter is set to <code>KEY_MATERIAL_DOES_NOT_EXPIRE</code>. Otherwise it is required.<br/>EncryptedKeyMaterial:  The encrypted key material to import. The key material must be encrypted with the public wrapping key that <a>GetParametersForImport</a> returned, using the wrapping algorithm that you specified in the same <code>GetParametersForImport</code> request.<br/>ImportToken:  The import token that you received in the response to a previous <a>GetParametersForImport</a> request. It must be from the same response that contained the public key that you used to encrypt the key material.<br/>KeyId:  The identifier of the symmetric CMK that receives the imported key material. The CMK's <code>Origin</code> must be <code>EXTERNAL</code>. This must be the same CMK specified in the <code>KeyID</code> parameter of the corresponding <a>GetParametersForImport</a> request. Specify the key ID or key ARN of the CMK. For example: <ul> <li> Key ID: <code>1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> <li> Key ARN: <code>arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> </ul> To get the key ID and key ARN for a CMK, use <a>ListKeys</a> or <a>DescribeKey</a>.<br/>
        :return:         """
        pass

    def list_aliases(self, KeyId: str=None, Limit: int=None, Marker: str=None) -> ListAliasesResponse:
        r"""Gets a list of aliases in the caller's AWS account and region. For more information about aliases, see <a>CreateAlias</a>. By default, the <code>ListAliases</code> operation returns all aliases in the account and region. To get only the aliases associated with a particular customer master key (CMK), use the <code>KeyId</code> parameter. The <code>ListAliases</code> response can include aliases that you created and associated with your customer managed CMKs, and aliases that AWS created and associated with AWS managed CMKs in your account. You can recognize AWS aliases because their names have the format <code>aws/&lt;service-name&gt;</code>, such as <code>aws/dynamodb</code>. The response might also include aliases that have no <code>TargetKeyId</code> field. These are predefined aliases that AWS has created but has not yet associated with a CMK. Aliases that AWS creates in your account, including predefined aliases, do not count against your <a href="https://docs.aws.amazon.com/kms/latest/developerguide/limits.html#aliases-limit">AWS KMS aliases quota</a>.  <b>Cross-account use</b>: No. <code>ListAliases</code> does not return aliases in other AWS accounts.  <b>Required permissions</b>: <a href="https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html">kms:ListAliases</a> (IAM policy) For details, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/kms-alias.html#alias-access">Controlling access to aliases</a> in the <i>AWS Key Management Service Developer Guide</i>.  <b>Related operations:</b>  <ul> <li>  <a>CreateAlias</a>  </li> <li>  <a>DeleteAlias</a>  </li> <li>  <a>UpdateAlias</a>  </li> </ul>

        :param self:
        :param Marker:  Use this parameter in a subsequent request after you receive a response with truncated results. Set it to the value of <code>NextMarker</code> from the truncated response you just received.<br/>Limit:  Use this parameter to specify the maximum number of items to return. When this value is present, AWS KMS does not return more than the specified number of items, but it might return fewer. This value is optional. If you include a value, it must be between 1 and 100, inclusive. If you do not include a value, it defaults to 50.<br/>KeyId:  Lists only aliases that are associated with the specified CMK. Enter a CMK in your AWS account.  This parameter is optional. If you omit it, <code>ListAliases</code> returns all aliases in the account and Region. Specify the key ID or key ARN of the CMK. For example: <ul> <li> Key ID: <code>1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> <li> Key ARN: <code>arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> </ul> To get the key ID and key ARN for a CMK, use <a>ListKeys</a> or <a>DescribeKey</a>.<br/>
        :return: Truncated:  A flag that indicates whether there are more items in the list. When this value is true, the list in this response is truncated. To get more items, pass the value of the <code>NextMarker</code> element in thisresponse to the <code>Marker</code> parameter in a subsequent request.<br/>NextMarker:  When <code>Truncated</code> is true, this element is present and contains the value to use for the <code>Marker</code> parameter in a subsequent request.<br/>Aliases:  A list of aliases.<br/>        """
        pass

    def list_grants(self, KeyId: str, Limit: int=None, Marker: str=None, GrantId: str=None, GranteePrincipal: str=None) -> ListGrantsResponse:
        r"""Gets a list of all grants for the specified customer master key (CMK).  You must specify the CMK in all requests. You can filter the grant list by grant ID or grantee principal. <note> The <code>GranteePrincipal</code> field in the <code>ListGrants</code> response usually contains the user or role designated as the grantee principal in the grant. However, when the grantee principal in the grant is an AWS service, the <code>GranteePrincipal</code> field contains the <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-services">service principal</a>, which might represent several different grantee principals. </note>  <b>Cross-account use</b>: Yes. To perform this operation on a CMK in a different AWS account, specify the key ARN in the value of the <code>KeyId</code> parameter.  <b>Required permissions</b>: <a href="https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html">kms:ListGrants</a> (key policy)  <b>Related operations:</b>  <ul> <li>  <a>CreateGrant</a>  </li> <li>  <a>ListRetirableGrants</a>  </li> <li>  <a>RetireGrant</a>  </li> <li>  <a>RevokeGrant</a>  </li> </ul>

        :param self:
        :param GranteePrincipal:  Returns only grants where the specified principal is the grantee principal for the grant.<br/>GrantId:  Returns only the grant with the specified grant ID. The grant ID uniquely identifies the grant. <br/>KeyId:  Returns only grants for the specified customer master key (CMK). This parameter is required. Specify the key ID or key ARN of the CMK. To specify a CMK in a different AWS account, you must use the key ARN. For example: <ul> <li> Key ID: <code>1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> <li> Key ARN: <code>arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> </ul> To get the key ID and key ARN for a CMK, use <a>ListKeys</a> or <a>DescribeKey</a>.<br/>Marker:  Use this parameter in a subsequent request after you receive a response with truncated results. Set it to the value of <code>NextMarker</code> from the truncated response you just received.<br/>Limit:  Use this parameter to specify the maximum number of items to return. When this value is present, AWS KMS does not return more than the specified number of items, but it might return fewer. This value is optional. If you include a value, it must be between 1 and 100, inclusive. If you do not include a value, it defaults to 50.<br/>
        :return: Truncated:  A flag that indicates whether there are more items in the list. When this value is true, the list in this response is truncated. To get more items, pass the value of the <code>NextMarker</code> element in thisresponse to the <code>Marker</code> parameter in a subsequent request.<br/>NextMarker:  When <code>Truncated</code> is true, this element is present and contains the value to use for the <code>Marker</code> parameter in a subsequent request.<br/>Grants:  A list of grants.<br/>        """
        pass

    def list_key_policies(self, KeyId: str, Limit: int=None, Marker: str=None) -> ListKeyPoliciesResponse:
        r"""Gets the names of the key policies that are attached to a customer master key (CMK). This operation is designed to get policy names that you can use in a <a>GetKeyPolicy</a> operation. However, the only valid policy name is <code>default</code>.   <b>Cross-account use</b>: No. You cannot perform this operation on a CMK in a different AWS account.  <b>Required permissions</b>: <a href="https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html">kms:ListKeyPolicies</a> (key policy)  <b>Related operations:</b>  <ul> <li>  <a>GetKeyPolicy</a>  </li> <li>  <a>PutKeyPolicy</a>  </li> </ul>

        :param self:
        :param Marker:  Use this parameter in a subsequent request after you receive a response with truncated results. Set it to the value of <code>NextMarker</code> from the truncated response you just received.<br/>Limit:  Use this parameter to specify the maximum number of items to return. When this value is present, AWS KMS does not return more than the specified number of items, but it might return fewer. This value is optional. If you include a value, it must be between 1 and 1000, inclusive. If you do not include a value, it defaults to 100. Only one policy can be attached to a key.<br/>KeyId:  Gets the names of key policies for the specified customer master key (CMK). Specify the key ID or key ARN of the CMK. For example: <ul> <li> Key ID: <code>1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> <li> Key ARN: <code>arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> </ul> To get the key ID and key ARN for a CMK, use <a>ListKeys</a> or <a>DescribeKey</a>.<br/>
        :return: Truncated:  A flag that indicates whether there are more items in the list. When this value is true, the list in this response is truncated. To get more items, pass the value of the <code>NextMarker</code> element in thisresponse to the <code>Marker</code> parameter in a subsequent request.<br/>NextMarker:  When <code>Truncated</code> is true, this element is present and contains the value to use for the <code>Marker</code> parameter in a subsequent request.<br/>PolicyNames:  A list of key policy names. The only valid value is <code>default</code>.<br/>        """
        pass

    def list_keys(self, Limit: int=None, Marker: str=None) -> ListKeysResponse:
        r"""Gets a list of all customer master keys (CMKs) in the caller's AWS account and Region.  <b>Cross-account use</b>: No. You cannot perform this operation on a CMK in a different AWS account.  <b>Required permissions</b>: <a href="https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html">kms:ListKeys</a> (IAM policy)  <b>Related operations:</b>  <ul> <li>  <a>CreateKey</a>  </li> <li>  <a>DescribeKey</a>  </li> <li>  <a>ListAliases</a>  </li> <li>  <a>ListResourceTags</a>  </li> </ul>

        :param self:
        :param Marker:  Use this parameter in a subsequent request after you receive a response with truncated results. Set it to the value of <code>NextMarker</code> from the truncated response you just received.<br/>Limit:  Use this parameter to specify the maximum number of items to return. When this value is present, AWS KMS does not return more than the specified number of items, but it might return fewer. This value is optional. If you include a value, it must be between 1 and 1000, inclusive. If you do not include a value, it defaults to 100.<br/>
        :return: Truncated:  A flag that indicates whether there are more items in the list. When this value is true, the list in this response is truncated. To get more items, pass the value of the <code>NextMarker</code> element in thisresponse to the <code>Marker</code> parameter in a subsequent request.<br/>NextMarker:  When <code>Truncated</code> is true, this element is present and contains the value to use for the <code>Marker</code> parameter in a subsequent request.<br/>Keys:  A list of customer master keys (CMKs).<br/>        """
        pass

    def list_resource_tags(self, KeyId: str, Limit: int=None, Marker: str=None) -> ListResourceTagsResponse:
        r"""Returns all tags on the specified customer master key (CMK). For general information about tags, including the format and syntax, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html">Tagging AWS resources</a> in the <i>Amazon Web Services General Reference</i>. For information about using tags in AWS KMS, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/tagging-keys.html">Tagging keys</a>.  <b>Cross-account use</b>: No. You cannot perform this operation on a CMK in a different AWS account.  <b>Required permissions</b>: <a href="https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html">kms:ListResourceTags</a> (key policy)  <b>Related operations:</b>  <ul> <li>  <a>CreateKey</a>  </li> <li>  <a>ReplicateKey</a>  </li> <li>  <a>TagResource</a>  </li> <li>  <a>UntagResource</a>  </li> </ul>

        :param self:
        :param Marker:  Use this parameter in a subsequent request after you receive a response with truncated results. Set it to the value of <code>NextMarker</code> from the truncated response you just received. Do not attempt to construct this value. Use only the value of <code>NextMarker</code> from the truncated response you just received.<br/>Limit:  Use this parameter to specify the maximum number of items to return. When this value is present, AWS KMS does not return more than the specified number of items, but it might return fewer. This value is optional. If you include a value, it must be between 1 and 50, inclusive. If you do not include a value, it defaults to 50.<br/>KeyId:  Gets tags on the specified customer master key (CMK). Specify the key ID or key ARN of the CMK. For example: <ul> <li> Key ID: <code>1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> <li> Key ARN: <code>arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> </ul> To get the key ID and key ARN for a CMK, use <a>ListKeys</a> or <a>DescribeKey</a>.<br/>
        :return: Truncated:  A flag that indicates whether there are more items in the list. When this value is true, the list in this response is truncated. To get more items, pass the value of the <code>NextMarker</code> element in thisresponse to the <code>Marker</code> parameter in a subsequent request.<br/>NextMarker:  When <code>Truncated</code> is true, this element is present and contains the value to use for the <code>Marker</code> parameter in a subsequent request. Do not assume or infer any information from this value.<br/>Tags:  A list of tags. Each tag consists of a tag key and a tag value. <note> Tagging or untagging a CMK can allow or deny permission to the CMK. For details, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/abac.html">Using ABAC in AWS KMS</a> in the <i>AWS Key Management Service Developer Guide</i>. </note><br/>        """
        pass

    def list_retirable_grants(self, RetiringPrincipal: str, Limit: int=None, Marker: str=None) -> ListGrantsResponse:
        r"""Returns information about all grants in the AWS account and Region that have the specified retiring principal. For more information about grants, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/grants.html">Grants</a> in the <i> <i>AWS Key Management Service Developer Guide</i> </i>. You can specify any principal in your AWS account. The grants that are returned include grants for CMKs in your AWS account and other AWS accounts. You might use this operation to determine which grants you may retire. To retire a grant, use the <a>RetireGrant</a> operation.  <b>Cross-account use</b>: You must specify a principal in your AWS account. However, this operation can return grants in any AWS account. You do not need <code>kms:ListRetirableGrants</code> permission (or any other additional permission) in any AWS account other than your own.  <b>Required permissions</b>: <a href="https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html">kms:ListRetirableGrants</a> (IAM policy) in your AWS account.  <b>Related operations:</b>  <ul> <li>  <a>CreateGrant</a>  </li> <li>  <a>ListGrants</a>  </li> <li>  <a>RetireGrant</a>  </li> <li>  <a>RevokeGrant</a>  </li> </ul>

        :param self:
        :param RetiringPrincipal:  The retiring principal for which to list grants. Enter a principal in your AWS account. To specify the retiring principal, use the <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Name (ARN)</a> of an AWS principal. Valid AWS principals include AWS accounts (root), IAM users, federated users, and assumed role users. For examples of the ARN syntax for specifying a principal, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-iam">AWS Identity and Access Management (IAM)</a> in the Example ARNs section of the <i>Amazon Web Services General Reference</i>.<br/>Marker:  Use this parameter in a subsequent request after you receive a response with truncated results. Set it to the value of <code>NextMarker</code> from the truncated response you just received.<br/>Limit:  Use this parameter to specify the maximum number of items to return. When this value is present, AWS KMS does not return more than the specified number of items, but it might return fewer. This value is optional. If you include a value, it must be between 1 and 100, inclusive. If you do not include a value, it defaults to 50.<br/>
        :return: Truncated:  A flag that indicates whether there are more items in the list. When this value is true, the list in this response is truncated. To get more items, pass the value of the <code>NextMarker</code> element in thisresponse to the <code>Marker</code> parameter in a subsequent request.<br/>NextMarker:  When <code>Truncated</code> is true, this element is present and contains the value to use for the <code>Marker</code> parameter in a subsequent request.<br/>Grants:  A list of grants.<br/>        """
        pass

    def put_key_policy(self, Policy: str, PolicyName: str, KeyId: str, BypassPolicyLockoutSafetyCheck: BooleanType=None):
        r"""Attaches a key policy to the specified customer master key (CMK).  For more information about key policies, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html">Key Policies</a> in the <i>AWS Key Management Service Developer Guide</i>. For help writing and formatting a JSON policy document, see the <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html">IAM JSON Policy Reference</a> in the <i> <i>IAM User Guide</i> </i>. For examples of adding a key policy in multiple programming languages, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/programming-key-policies.html#put-policy">Setting a key policy</a> in the <i>AWS Key Management Service Developer Guide</i>.  <b>Cross-account use</b>: No. You cannot perform this operation on a CMK in a different AWS account.  <b>Required permissions</b>: <a href="https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html">kms:PutKeyPolicy</a> (key policy)  <b>Related operations</b>: <a>GetKeyPolicy</a> 

        :param self:
        :param BypassPolicyLockoutSafetyCheck:  A flag to indicate whether to bypass the key policy lockout safety check. <important> Setting this value to true increases the risk that the CMK becomes unmanageable. Do not set this value to true indiscriminately. For more information, refer to the scenario in the <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default-allow-root-enable-iam">Default Key Policy</a> section in the <i>AWS Key Management Service Developer Guide</i>. </important> Use this parameter only when you intend to prevent the principal that is making the request from making a subsequent <code>PutKeyPolicy</code> request on the CMK. The default value is false.<br/>Policy:  The key policy to attach to the CMK. The key policy must meet the following criteria: <ul> <li> If you don't set <code>BypassPolicyLockoutSafetyCheck</code> to true, the key policy must allow the principal that is making the <code>PutKeyPolicy</code> request to make a subsequent <code>PutKeyPolicy</code> request on the CMK. This reduces the risk that the CMK becomes unmanageable. For more information, refer to the scenario in the <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default-allow-root-enable-iam">Default Key Policy</a> section of the <i>AWS Key Management Service Developer Guide</i>. </li> <li> Each statement in the key policy must contain one or more principals. The principals in the key policy must exist and be visible to AWS KMS. When you create a new AWS principal (for example, an IAM user or role), you might need to enforce a delay before including the new principal in a key policy because the new principal might not be immediately visible to AWS KMS. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_general.html#troubleshoot_general_eventual-consistency">Changes that I make are not always immediately visible</a> in the <i>AWS Identity and Access Management User Guide</i>. </li> </ul> The key policy cannot exceed 32 kilobytes (32768 bytes). For more information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/resource-limits.html">Resource Quotas</a> in the <i>AWS Key Management Service Developer Guide</i>.<br/>PolicyName:  The name of the key policy. The only valid value is <code>default</code>.<br/>KeyId:  Sets the key policy on the specified customer master key (CMK). Specify the key ID or key ARN of the CMK. For example: <ul> <li> Key ID: <code>1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> <li> Key ARN: <code>arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> </ul> To get the key ID and key ARN for a CMK, use <a>ListKeys</a> or <a>DescribeKey</a>.<br/>
        :return:         """
        pass

    def re_encrypt(self, DestinationKeyId: str, CiphertextBlob: CiphertextType, SourceEncryptionContext: EncryptionContextType=None, SourceKeyId: str=None, DestinationEncryptionContext: EncryptionContextType=None, SourceEncryptionAlgorithm: str=None, DestinationEncryptionAlgorithm: str=None, GrantTokens: List[GrantTokenType]=None) -> ReEncryptResponse:
        r"""Decrypts ciphertext and then reencrypts it entirely within AWS KMS. You can use this operation to change the customer master key (CMK) under which data is encrypted, such as when you <a href="https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html#rotate-keys-manually">manually rotate</a> a CMK or change the CMK that protects a ciphertext. You can also use it to reencrypt ciphertext under the same CMK, such as to change the <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context">encryption context</a> of a ciphertext. The <code>ReEncrypt</code> operation can decrypt ciphertext that was encrypted by using an AWS KMS CMK in an AWS KMS operation, such as <a>Encrypt</a> or <a>GenerateDataKey</a>. It can also decrypt ciphertext that was encrypted by using the public key of an <a href="https://docs.aws.amazon.com/kms/latest/developerguide/symm-asymm-concepts.html#asymmetric-cmks">asymmetric CMK</a> outside of AWS KMS. However, it cannot decrypt ciphertext produced by other libraries, such as the <a href="https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/">AWS Encryption SDK</a> or <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingClientSideEncryption.html">Amazon S3 client-side encryption</a>. These libraries return a ciphertext format that is incompatible with AWS KMS. When you use the <code>ReEncrypt</code> operation, you need to provide information for the decrypt operation and the subsequent encrypt operation. <ul> <li> If your ciphertext was encrypted under an asymmetric CMK, you must use the <code>SourceKeyId</code> parameter to identify the CMK that encrypted the ciphertext. You must also supply the encryption algorithm that was used. This information is required to decrypt the data. </li> <li> If your ciphertext was encrypted under a symmetric CMK, the <code>SourceKeyId</code> parameter is optional. AWS KMS can get this information from metadata that it adds to the symmetric ciphertext blob. This feature adds durability to your implementation by ensuring that authorized users can decrypt ciphertext decades after it was encrypted, even if they've lost track of the CMK ID. However, specifying the source CMK is always recommended as a best practice. When you use the <code>SourceKeyId</code> parameter to specify a CMK, AWS KMS uses only the CMK you specify. If the ciphertext was encrypted under a different CMK, the <code>ReEncrypt</code> operation fails. This practice ensures that you use the CMK that you intend. </li> <li> To reencrypt the data, you must use the <code>DestinationKeyId</code> parameter specify the CMK that re-encrypts the data after it is decrypted. You can select a symmetric or asymmetric CMK. If the destination CMK is an asymmetric CMK, you must also provide the encryption algorithm. The algorithm that you choose must be compatible with the CMK. <important> When you use an asymmetric CMK to encrypt or reencrypt data, be sure to record the CMK and encryption algorithm that you choose. You will be required to provide the same CMK and encryption algorithm when you decrypt the data. If the CMK and algorithm do not match the values used to encrypt the data, the decrypt operation fails. You are not required to supply the CMK ID and encryption algorithm when you decrypt with symmetric CMKs because AWS KMS stores this information in the ciphertext blob. AWS KMS cannot store metadata in ciphertext generated with asymmetric keys. The standard format for asymmetric key ciphertext does not include configurable fields. </important> </li> </ul> The CMK that you use for this operation must be in a compatible key state. For details, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html">Key state: Effect on your CMK</a> in the <i>AWS Key Management Service Developer Guide</i>.  <b>Cross-account use</b>: Yes. The source CMK and destination CMK can be in different AWS accounts. Either or both CMKs can be in a different account than the caller.  <b>Required permissions</b>: <ul> <li>  <a href="https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html">kms:ReEncryptFrom</a> permission on the source CMK (key policy) </li> <li>  <a href="https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html">kms:ReEncryptTo</a> permission on the destination CMK (key policy) </li> </ul> To permit reencryption from or to a CMK, include the <code>"kms:ReEncrypt*"</code> permission in your <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html">key policy</a>. This permission is automatically included in the key policy when you use the console to create a CMK. But you must include it manually when you create a CMK programmatically or when you use the <a>PutKeyPolicy</a> operation to set a key policy.  <b>Related operations:</b>  <ul> <li>  <a>Decrypt</a>  </li> <li>  <a>Encrypt</a>  </li> <li>  <a>GenerateDataKey</a>  </li> <li>  <a>GenerateDataKeyPair</a>  </li> </ul>

        :param self:
        :param GrantTokens:  A list of grant tokens. Use a grant token when your permission to call this operation comes from a new grant that has not yet achieved <i>eventual consistency</i>. For more information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#grant_token">Grant token</a> in the <i>AWS Key Management Service Developer Guide</i>.<br/>DestinationEncryptionAlgorithm:  Specifies the encryption algorithm that AWS KMS will use to reecrypt the data after it has decrypted it. The default value, <code>SYMMETRIC_DEFAULT</code>, represents the encryption algorithm used for symmetric CMKs. This parameter is required only when the destination CMK is an asymmetric CMK.<br/>SourceEncryptionAlgorithm:  Specifies the encryption algorithm that AWS KMS will use to decrypt the ciphertext before it is reencrypted. The default value, <code>SYMMETRIC_DEFAULT</code>, represents the algorithm used for symmetric CMKs. Specify the same algorithm that was used to encrypt the ciphertext. If you specify a different algorithm, the decrypt attempt fails. This parameter is required only when the ciphertext was encrypted under an asymmetric CMK.<br/>DestinationEncryptionContext:  Specifies that encryption context to use when the reencrypting the data. A destination encryption context is valid only when the destination CMK is a symmetric CMK. The standard ciphertext format for asymmetric CMKs does not include fields for metadata. An <i>encryption context</i> is a collection of non-secret key-value pairs that represents additional authenticated data. When you use an encryption context to encrypt data, you must specify the same (an exact case-sensitive match) encryption context to decrypt the data. An encryption context is optional when encrypting with a symmetric CMK, but it is highly recommended. For more information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context">Encryption Context</a> in the <i>AWS Key Management Service Developer Guide</i>.<br/>DestinationKeyId:  A unique identifier for the CMK that is used to reencrypt the data. Specify a symmetric or asymmetric CMK with a <code>KeyUsage</code> value of <code>ENCRYPT_DECRYPT</code>. To find the <code>KeyUsage</code> value of a CMK, use the <a>DescribeKey</a> operation. To specify a CMK, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with <code>"alias/"</code>. To specify a CMK in a different AWS account, you must use the key ARN or alias ARN. For example: <ul> <li> Key ID: <code>1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> <li> Key ARN: <code>arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> <li> Alias name: <code>alias/ExampleAlias</code>  </li> <li> Alias ARN: <code>arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias</code>  </li> </ul> To get the key ID and key ARN for a CMK, use <a>ListKeys</a> or <a>DescribeKey</a>. To get the alias name and alias ARN, use <a>ListAliases</a>.<br/>SourceKeyId:  Specifies the customer master key (CMK) that AWS KMS will use to decrypt the ciphertext before it is re-encrypted. Enter a key ID of the CMK that was used to encrypt the ciphertext. This parameter is required only when the ciphertext was encrypted under an asymmetric CMK. If you used a symmetric CMK, AWS KMS can get the CMK from metadata that it adds to the symmetric ciphertext blob. However, it is always recommended as a best practice. This practice ensures that you use the CMK that you intend. To specify a CMK, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with <code>"alias/"</code>. To specify a CMK in a different AWS account, you must use the key ARN or alias ARN. For example: <ul> <li> Key ID: <code>1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> <li> Key ARN: <code>arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> <li> Alias name: <code>alias/ExampleAlias</code>  </li> <li> Alias ARN: <code>arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias</code>  </li> </ul> To get the key ID and key ARN for a CMK, use <a>ListKeys</a> or <a>DescribeKey</a>. To get the alias name and alias ARN, use <a>ListAliases</a>.<br/>SourceEncryptionContext:  Specifies the encryption context to use to decrypt the ciphertext. Enter the same encryption context that was used to encrypt the ciphertext. An <i>encryption context</i> is a collection of non-secret key-value pairs that represents additional authenticated data. When you use an encryption context to encrypt data, you must specify the same (an exact case-sensitive match) encryption context to decrypt the data. An encryption context is optional when encrypting with a symmetric CMK, but it is highly recommended. For more information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context">Encryption Context</a> in the <i>AWS Key Management Service Developer Guide</i>.<br/>CiphertextBlob:  Ciphertext of the data to reencrypt.<br/>
        :return: DestinationEncryptionAlgorithm:  The encryption algorithm that was used to reencrypt the data.<br/>SourceEncryptionAlgorithm:  The encryption algorithm that was used to decrypt the ciphertext before it was reencrypted.<br/>KeyId:  The Amazon Resource Name (<a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-ARN">key ARN</a>) of the CMK that was used to reencrypt the data.<br/>SourceKeyId:  Unique identifier of the CMK used to originally encrypt the data.<br/>CiphertextBlob:  The reencrypted data. When you use the HTTP API or the AWS CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded.<br/>        """
        pass

    def replicate_key(self, ReplicaRegion: str, KeyId: str, Policy: str=None, BypassPolicyLockoutSafetyCheck: BooleanType=None, Description: str=None, Tags: List[Tag]=None) -> ReplicateKeyResponse:
        r"""Replicates a multi-Region key into the specified Region. This operation creates a multi-Region replica key based on a multi-Region primary key in a different Region of the same AWS partition. You can create multiple replicas of a primary key, but each must be in a different Region. To create a multi-Region primary key, use the <a>CreateKey</a> operation. This operation supports <i>multi-Region keys</i>, an AWS KMS feature that lets you create multiple interoperable CMKs in different AWS Regions. Because these CMKs have the same key ID, key material, and other metadata, you can use them to encrypt data in one AWS Region and decrypt it in a different AWS Region without making a cross-Region call or exposing the plaintext data. For more information about multi-Region keys, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html">Using multi-Region keys</a> in the <i>AWS Key Management Service Developer Guide</i>. A <i>replica key</i> is a fully-functional CMK that can be used independently of its primary and peer replica keys. A primary key and its replica keys share properties that make them interoperable. They have the same <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-id">key ID</a> and key material. They also have the same <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-spec">key spec</a>, <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-usage">key usage</a>, <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-origin">key material origin</a>, and <a href="https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html">automatic key rotation status</a>. AWS KMS automatically synchronizes these shared properties among related multi-Region keys. All other properties of a replica key can differ, including its <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html">key policy</a>, <a href="https://docs.aws.amazon.com/kms/latest/developerguide/tagging-keys.html">tags</a>, <a href="https://docs.aws.amazon.com/kms/latest/developerguide/kms-alias.html">aliases</a>, and <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html">key state</a>. AWS KMS pricing and quotas for CMKs apply to each primary key and replica key. When this operation completes, the new replica key has a transient key state of <code>Creating</code>. This key state changes to <code>Enabled</code> (or <code>PendingImport</code>) after a few seconds when the process of creating the new replica key is complete. While the key state is <code>Creating</code>, you can manage key, but you cannot yet use it in cryptographic operations. If you are creating and using the replica key programmatically, retry on <code>KMSInvalidStateException</code> or call <code>DescribeKey</code> to check its <code>KeyState</code> value before using it. For details about the <code>Creating</code> key state, see <a href="kms/latest/developerguide/key-state.html">Key state: Effect on your CMK</a> in the <i>AWS Key Management Service Developer Guide</i>. The AWS CloudTrail log of a <code>ReplicateKey</code> operation records a <code>ReplicateKey</code> operation in the primary key's Region and a <a>CreateKey</a> operation in the replica key's Region. If you replicate a multi-Region primary key with imported key material, the replica key is created with no key material. You must import the same key material that you imported into the primary key. For details, see <a href="kms/latest/developerguide/multi-region-keys-import.html">Importing key material into multi-Region keys</a> in the <i>AWS Key Management Service Developer Guide</i>. To convert a replica key to a primary key, use the <a>UpdatePrimaryRegion</a> operation. <note>  <code>ReplicateKey</code> uses different default values for the <code>KeyPolicy</code> and <code>Tags</code> parameters than those used in the AWS KMS console. For details, see the parameter descriptions. </note>  <b>Cross-account use</b>: No. You cannot use this operation to create a CMK in a different AWS account.   <b>Required permissions</b>:  <ul> <li>  <code>kms:ReplicateKey</code> on the primary CMK (in the primary CMK's Region). Include this permission in the primary CMK's key policy. </li> <li>  <code>kms:CreateKey</code> in an IAM policy in the replica Region. </li> <li> To use the <code>Tags</code> parameter, <code>kms:TagResource</code> in an IAM policy in the replica Region. </li> </ul>  <b>Related operations</b>  <ul> <li>  <a>CreateKey</a>  </li> <li>  <a>UpdatePrimaryRegion</a>  </li> </ul>

        :param self:
        :param Tags:  Assigns one or more tags to the replica key. Use this parameter to tag the CMK when it is created. To tag an existing CMK, use the <a>TagResource</a> operation. <note> Tagging or untagging a CMK can allow or deny permission to the CMK. For details, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/abac.html">Using ABAC in AWS KMS</a> in the <i>AWS Key Management Service Developer Guide</i>. </note> To use this parameter, you must have <a href="https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html">kms:TagResource</a> permission in an IAM policy. Tags are not a shared property of multi-Region keys. You can specify the same tags or different tags for each key in a set of related multi-Region keys. AWS KMS does not synchronize this property. Each tag consists of a tag key and a tag value. Both the tag key and the tag value are required, but the tag value can be an empty (null) string. You cannot have more than one tag on a CMK with the same tag key. If you specify an existing tag key with a different tag value, AWS KMS replaces the current tag value with the specified one. When you assign tags to an AWS resource, AWS generates a cost allocation report with usage and costs aggregated by tags. Tags can also be used to control access to a CMK. For details, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/tagging-keys.html">Tagging Keys</a>.<br/>Description:  A description of the CMK. Use a description that helps you decide whether the CMK is appropriate for a task. The default value is an empty string (no description). The description is not a shared property of multi-Region keys. You can specify the same description or a different description for each key in a set of related multi-Region keys. AWS KMS does not synchronize this property.<br/>BypassPolicyLockoutSafetyCheck:  A flag to indicate whether to bypass the key policy lockout safety check. <important> Setting this value to true increases the risk that the CMK becomes unmanageable. Do not set this value to true indiscriminately. For more information, refer to the scenario in the <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default-allow-root-enable-iam">Default Key Policy</a> section in the <i>AWS Key Management Service Developer Guide</i>. </important> Use this parameter only when you intend to prevent the principal that is making the request from making a subsequent <code>PutKeyPolicy</code> request on the CMK. The default value is false.<br/>Policy:  The key policy to attach to the CMK. This parameter is optional. If you do not provide a key policy, AWS KMS attaches the <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default">default key policy</a> to the CMK. The key policy is not a shared property of multi-Region keys. You can specify the same key policy or a different key policy for each key in a set of related multi-Region keys. AWS KMS does not synchronize this property. If you provide a key policy, it must meet the following criteria: <ul> <li> If you don't set <code>BypassPolicyLockoutSafetyCheck</code> to true, the key policy must give the caller <code>kms:PutKeyPolicy</code> permission on the replica CMK. This reduces the risk that the CMK becomes unmanageable. For more information, refer to the scenario in the <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default-allow-root-enable-iam">Default Key Policy</a> section of the <i> <i>AWS Key Management Service Developer Guide</i> </i>. </li> <li> Each statement in the key policy must contain one or more principals. The principals in the key policy must exist and be visible to AWS KMS. When you create a new AWS principal (for example, an IAM user or role), you might need to enforce a delay before including the new principal in a key policy because the new principal might not be immediately visible to AWS KMS. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_general.html#troubleshoot_general_eventual-consistency">Changes that I make are not always immediately visible</a> in the <i>AWS Identity and Access Management User Guide</i>. </li> <li> The key policy size quota is 32 kilobytes (32768 bytes). </li> </ul><br/>ReplicaRegion:  The Region ID of the AWS Region for this replica key.  Enter the Region ID, such as <code>us-east-1</code> or <code>ap-southeast-2</code>. For a list of AWS Regions in which AWS KMS is supported, see <a href="https://docs.aws.amazon.com/general/latest/gr/kms.html#kms_region">AWS KMS service endpoints</a> in the <i>Amazon Web Services General Reference</i>. The replica must be in a different AWS Region than its primary key and other replicas of that primary key, but in the same AWS partition. AWS KMS must be available in the replica Region. If the Region is not enabled by default, the AWS account must be enabled in the Region.  For information about AWS partitions, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) in the <i>Amazon Web Services General Reference</i>.</a> For information about enabling and disabling Regions, see <a href="https://docs.aws.amazon.com/general/latest/gr/rande-manage.html#rande-manage-enable">Enabling a Region</a> and <a href="https://docs.aws.amazon.com/general/latest/gr/rande-manage.html#rande-manage-disable">Disabling a Region</a> in the <i>Amazon Web Services General Reference</i>.<br/>KeyId:  Identifies the multi-Region primary key that is being replicated. To determine whether a CMK is a multi-Region primary key, use the <a>DescribeKey</a> operation to check the value of the <code>MultiRegionKeyType</code> property. Specify the key ID or key ARN of a multi-Region primary key. For example: <ul> <li> Key ID: <code>mrk-1234abcd12ab34cd56ef1234567890ab</code>  </li> <li> Key ARN: <code>arn:aws:kms:us-east-2:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab</code>  </li> </ul> To get the key ID and key ARN for a CMK, use <a>ListKeys</a> or <a>DescribeKey</a>.<br/>
        :return: ReplicaTags:  The tags on the new replica key. The value is a list of tag key and tag value pairs.<br/>ReplicaPolicy:  The key policy of the new replica key. The value is a key policy document in JSON format.<br/>ReplicaKeyMetadata:  Displays details about the new replica CMK, including its Amazon Resource Name (<a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-ARN">key ARN</a>) and <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html">key state</a>. It also includes the ARN and AWS Region of its primary key and other replica keys.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingDeletionWindowInDays</i> The waiting period before the primary key in a multi-Region key is deleted. This waiting period begins when the last of its replica keys is deleted. This value is present only when the <code>KeyState</code> of the CMK is <code>PendingReplicaDeletion</code>. That indicates that the CMK is the primary key in a multi-Region key, it is scheduled for deletion, and it still has existing replica keys. When a regional CMK or a replica key in a multi-Region key is scheduled for deletion, its deletion date is displayed in the <code>DeletionDate</code> field. However, when the primary key in a multi-Region key is scheduled for deletion, its waiting period doesn't begin until all of its replica keys are deleted. This value displays that waiting period. When the last replica key in the multi-Region key is deleted, the <code>KeyState</code> of the scheduled primary key changes from <code>PendingReplicaDeletion</code> to <code>PendingDeletion</code> and the deletion date appears in the <code>DeletionDate</code> field.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiRegionConfiguration</i> Lists the primary and replica CMKs in same multi-Region CMK. This field is present only when the value of the <code>MultiRegion</code> field is <code>True</code>. For more information about any listed CMK, use the <a>DescribeKey</a> operation. <ul> <li>  <code>MultiRegionKeyType</code> indicates whether the CMK is a <code>PRIMARY</code> or <code>REPLICA</code> key. </li> <li>  <code>PrimaryKey</code> displays the key ARN and Region of the primary key. This field displays the current CMK if it is the primary key. </li> <li>  <code>ReplicaKeys</code> displays the key ARNs and Regions of all replica keys. This field includes the current CMK if it is a replica key. </li> </ul>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>MultiRegionConfiguration</b>: Lists the primary and replica CMKs in same multi-Region CMK. This field is present only when the value of the <code>MultiRegion</code> field is <code>True</code>. For more information about any listed CMK, use the <a>DescribeKey</a> operation. <ul> <li>  <code>MultiRegionKeyType</code> indicates whether the CMK is a <code>PRIMARY</code> or <code>REPLICA</code> key. </li> <li>  <code>PrimaryKey</code> displays the key ARN and Region of the primary key. This field displays the current CMK if it is the primary key. </li> <li>  <code>ReplicaKeys</code> displays the key ARNs and Regions of all replica keys. This field includes the current CMK if it is a replica key. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiRegion</i> Indicates whether the CMK is a multi-Region (<code>True</code>) or regional (<code>False</code>) key. This value is <code>True</code> for multi-Region primary and replica CMKs and <code>False</code> for regional CMKs. For more information about multi-Region keys, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html">Using multi-Region keys</a> in the <i>AWS Key Management Service Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SigningAlgorithms</i> The signing algorithms that the CMK supports. You cannot use the CMK with other signing algorithms within AWS KMS. This field appears only when the <code>KeyUsage</code> of the CMK is <code>SIGN_VERIFY</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EncryptionAlgorithms</i> The encryption algorithms that the CMK supports. You cannot use the CMK with other encryption algorithms within AWS KMS. This value is present only when the <code>KeyUsage</code> of the CMK is <code>ENCRYPT_DECRYPT</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomerMasterKeySpec</i> Describes the type of key material in the CMK.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KeyManager</i> The manager of the CMK. CMKs in your AWS account are either customer managed or AWS managed. For more information about the difference, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#master_keys">Customer Master Keys</a> in the <i>AWS Key Management Service Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExpirationModel</i> Specifies whether the CMK's key material expires. This value is present only when <code>Origin</code> is <code>EXTERNAL</code>, otherwise this value is omitted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudHsmClusterId</i> The cluster ID of the AWS CloudHSM cluster that contains the key material for the CMK. When you create a CMK in a <a href="https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html">custom key store</a>, AWS KMS creates the key material for the CMK in the associated AWS CloudHSM cluster. This value is present only when the CMK is created in a custom key store.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomKeyStoreId</i> A unique identifier for the <a href="https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html">custom key store</a> that contains the CMK. This value is present only when the CMK is created in a custom key store.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Origin</i> The source of the CMK's key material. When this value is <code>AWS_KMS</code>, AWS KMS created the key material. When this value is <code>EXTERNAL</code>, the key material was imported from your existing key management infrastructure or the CMK lacks key material. When this value is <code>AWS_CLOUDHSM</code>, the key material was created in the AWS CloudHSM cluster associated with a custom key store.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ValidTo</i> The time at which the imported key material expires. When the key material expires, AWS KMS deletes the key material and the CMK becomes unusable. This value is present only for CMKs whose <code>Origin</code> is <code>EXTERNAL</code> and whose <code>ExpirationModel</code> is <code>KEY_MATERIAL_EXPIRES</code>, otherwise this value is omitted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeletionDate</i> The date and time after which AWS KMS deletes this CMK. This value is present only when the CMK is scheduled for deletion, that is, when its <code>KeyState</code> is <code>PendingDeletion</code>. When the primary key in a multi-Region key is scheduled for deletion but still has replica keys, its key state is <code>PendingReplicaDeletion</code> and the length of its waiting period is displayed in the <code>PendingDeletionWindowInDays</code> field.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KeyState</i> The current status of the CMK. For more information about how key state affects the use of a CMK, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html">Key state: Effect on your CMK</a> in the <i>AWS Key Management Service Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KeyUsage</i> The <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations">cryptographic operations</a> for which you can use the CMK.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the CMK.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specifies whether the CMK is enabled. When <code>KeyState</code> is <code>Enabled</code> this value is true, otherwise it is false.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date and time when the CMK was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the CMK. For examples, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-kms">AWS Key Management Service (AWS KMS)</a> in the Example ARNs section of the <i>AWS General Reference</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KeyId</i> The globally unique identifier for the CMK.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AWSAccountId</i> The twelve-digit account ID of the AWS account that owns the CMK.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiRegionKeyType</i> Indicates whether the CMK is a <code>PRIMARY</code> or <code>REPLICA</code> key.<br/>Displays the key ARN and Region of the primary key. This field includes the current CMK if it is the primary key.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PrimaryKey</b>: Displays the key ARN and Region of the primary key. This field includes the current CMK if it is the primary key.        """
        pass

    def retire_grant(self, GrantToken: str=None, KeyId: str=None, GrantId: str=None):
        r"""Deletes a grant. Typically, you retire a grant when you no longer need its permissions. To identify the grant to retire, use a <a href="https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token">grant token</a>, or both the grant ID and a key identifier (key ID or key ARN) of the customer master key (CMK). The <a>CreateGrant</a> operation returns both values. This operation can be called by the <i>retiring principal</i> for a grant, by the <i>grantee principal</i> if the grant allows the <code>RetireGrant</code> operation, and by the AWS account (root user) in which the grant is created. It can also be called by principals to whom permission for retiring a grant is delegated. For details, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#grant-delete">Retiring and revoking grants</a> in the <i>AWS Key Management Service Developer Guide</i>. For detailed information about grants, including grant terminology, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/grants.html">Using grants</a> in the <i> <i>AWS Key Management Service Developer Guide</i> </i>. For examples of working with grants in several programming languages, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/programming-grants.html">Programming grants</a>.  <b>Cross-account use</b>: Yes. You can retire a grant on a CMK in a different AWS account.  <b>Required permissions:</b>:Permission to retire a grant is determined primarily by the grant. For details, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#grant-delete">Retiring and revoking grants</a> in the <i>AWS Key Management Service Developer Guide</i>.  <b>Related operations:</b>  <ul> <li>  <a>CreateGrant</a>  </li> <li>  <a>ListGrants</a>  </li> <li>  <a>ListRetirableGrants</a>  </li> <li>  <a>RevokeGrant</a>  </li> </ul>

        :param self:
        :param GrantId:  Identifies the grant to retire. To get the grant ID, use <a>CreateGrant</a>, <a>ListGrants</a>, or <a>ListRetirableGrants</a>. <ul> <li> Grant ID Example - 0123456789012345678901234567890123456789012345678901234567890123 </li> </ul><br/>KeyId:  The key ARN CMK associated with the grant. To find the key ARN, use the <a>ListKeys</a> operation. For example: <code>arn:aws:kms:us-east-2:444455556666:key/1234abcd-12ab-34cd-56ef-1234567890ab</code> <br/>GrantToken:  Identifies the grant to be retired. You can use a grant token to identify a new grant even before it has achieved eventual consistency. Only the <a>CreateGrant</a> operation returns a grant token. For details, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token">Grant token</a> and <a href="https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#terms-eventual-consistency">Eventual consistency</a> in the <i>AWS Key Management Service Developer Guide</i>.<br/>
        :return:         """
        pass

    def revoke_grant(self, GrantId: str, KeyId: str):
        r"""Deletes the specified grant. You revoke a grant to terminate the permissions that the grant allows. For more information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/managing-grants.html#grant-delete">Retiring and revoking grants</a> in the <i> <i>AWS Key Management Service Developer Guide</i> </i>. When you create, retire, or revoke a grant, there might be a brief delay, usually less than five minutes, until the grant is available throughout AWS KMS. This state is known as <i>eventual consistency</i>. For details, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#terms-eventual-consistency">Eventual consistency</a> in the <i> <i>AWS Key Management Service Developer Guide</i> </i>.   <b>Cross-account use</b>: Yes. To perform this operation on a CMK in a different AWS account, specify the key ARN in the value of the <code>KeyId</code> parameter.  <b>Required permissions</b>: <a href="https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html">kms:RevokeGrant</a> (key policy).  <b>Related operations:</b>  <ul> <li>  <a>CreateGrant</a>  </li> <li>  <a>ListGrants</a>  </li> <li>  <a>ListRetirableGrants</a>  </li> <li>  <a>RetireGrant</a>  </li> </ul>

        :param self:
        :param GrantId:  Identifies the grant to revoke. To get the grant ID, use <a>CreateGrant</a>, <a>ListGrants</a>, or <a>ListRetirableGrants</a>.<br/>KeyId:  A unique identifier for the customer master key (CMK) associated with the grant. To get the key ID and key ARN for a CMK, use <a>ListKeys</a> or <a>DescribeKey</a>. Specify the key ID or key ARN of the CMK. To specify a CMK in a different AWS account, you must use the key ARN. For example: <ul> <li> Key ID: <code>1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> <li> Key ARN: <code>arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> </ul> To get the key ID and key ARN for a CMK, use <a>ListKeys</a> or <a>DescribeKey</a>.<br/>
        :return:         """
        pass

    def schedule_key_deletion(self, KeyId: str, PendingWindowInDays: int=None) -> ScheduleKeyDeletionResponse:
        r"""Schedules the deletion of a customer master key (CMK). By default, AWS KMS applies a waiting period of 30 days, but you can specify a waiting period of 7-30 days. When this operation is successful, the key state of the CMK changes to <code>PendingDeletion</code> and the key can't be used in any cryptographic operations. It remains in this state for the duration of the waiting period. Before the waiting period ends, you can use <a>CancelKeyDeletion</a> to cancel the deletion of the CMK. After the waiting period ends, AWS KMS deletes the CMK, its key material, and all AWS KMS data associated with it, including all aliases that refer to it. <important> Deleting a CMK is a destructive and potentially dangerous operation. When a CMK is deleted, all data that was encrypted under the CMK is unrecoverable. (The only exception is a multi-Region replica key.) To prevent the use of a CMK without deleting it, use <a>DisableKey</a>.  </important> If you schedule deletion of a CMK from a <a href="https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html">custom key store</a>, when the waiting period expires, <code>ScheduleKeyDeletion</code> deletes the CMK from AWS KMS. Then AWS KMS makes a best effort to delete the key material from the associated AWS CloudHSM cluster. However, you might need to manually <a href="https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html#fix-keystore-orphaned-key">delete the orphaned key material</a> from the cluster and its backups. You can schedule the deletion of a multi-Region primary key and its replica keys at any time. However, AWS KMS will not delete a multi-Region primary key with existing replica keys. If you schedule the deletion of a primary key with replicas, its key state changes to <code>PendingReplicaDeletion</code> and it cannot be replicated or used in cryptographic operations. This status can continue indefinitely. When the last of its replicas keys is deleted (not just scheduled), the key state of the primary key changes to <code>PendingDeletion</code> and its waiting period (<code>PendingWindowInDays</code>) begins. For details, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-delete.html">Deleting multi-Region keys</a> in the <i>AWS Key Management Service Developer Guide</i>.  For more information about scheduling a CMK for deletion, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html">Deleting Customer Master Keys</a> in the <i>AWS Key Management Service Developer Guide</i>. The CMK that you use for this operation must be in a compatible key state. For details, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html">Key state: Effect on your CMK</a> in the <i>AWS Key Management Service Developer Guide</i>.  <b>Cross-account use</b>: No. You cannot perform this operation on a CMK in a different AWS account.  <b>Required permissions</b>: kms:ScheduleKeyDeletion (key policy)  <b>Related operations</b>  <ul> <li>  <a>CancelKeyDeletion</a>  </li> <li>  <a>DisableKey</a>  </li> </ul>

        :param self:
        :param PendingWindowInDays:  The waiting period, specified in number of days. After the waiting period ends, AWS KMS deletes the customer master key (CMK). If the CMK is a multi-Region primary key with replicas, the waiting period begins when the last of its replica keys is deleted. Otherwise, the waiting period begins immediately. This value is optional. If you include a value, it must be between 7 and 30, inclusive. If you do not include a value, it defaults to 30.<br/>KeyId:  The unique identifier of the customer master key (CMK) to delete. Specify the key ID or key ARN of the CMK. For example: <ul> <li> Key ID: <code>1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> <li> Key ARN: <code>arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> </ul> To get the key ID and key ARN for a CMK, use <a>ListKeys</a> or <a>DescribeKey</a>.<br/>
        :return: PendingWindowInDays:  The waiting period before the CMK is deleted.  If the CMK is a multi-Region primary key with replicas, the waiting period begins when the last of its replica keys is deleted. Otherwise, the waiting period begins immediately.<br/>KeyState:  The current status of the CMK. For more information about how key state affects the use of a CMK, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html">Key state: Effect on your CMK</a> in the <i>AWS Key Management Service Developer Guide</i>.<br/>DeletionDate:  The date and time after which AWS KMS deletes the customer master key (CMK). If the CMK is a multi-Region primary key with replica keys, this field does not appear. The deletion date for the primary key isn't known until its last replica key is deleted.<br/>KeyId:  The Amazon Resource Name (<a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-ARN">key ARN</a>) of the CMK whose deletion is scheduled.<br/>        """
        pass

    def sign(self, SigningAlgorithm: str, Message: PlaintextType, KeyId: str, MessageType: str=None, GrantTokens: List[GrantTokenType]=None) -> SignResponse:
        r"""Creates a <a href="https://en.wikipedia.org/wiki/Digital_signature">digital signature</a> for a message or message digest by using the private key in an asymmetric CMK. To verify the signature, use the <a>Verify</a> operation, or use the public key in the same asymmetric CMK outside of AWS KMS. For information about symmetric and asymmetric CMKs, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html">Using Symmetric and Asymmetric CMKs</a> in the <i>AWS Key Management Service Developer Guide</i>. Digital signatures are generated and verified by using asymmetric key pair, such as an RSA or ECC pair that is represented by an asymmetric customer master key (CMK). The key owner (or an authorized user) uses their private key to sign a message. Anyone with the public key can verify that the message was signed with that particular private key and that the message hasn't changed since it was signed.  To use the <code>Sign</code> operation, provide the following information: <ul> <li> Use the <code>KeyId</code> parameter to identify an asymmetric CMK with a <code>KeyUsage</code> value of <code>SIGN_VERIFY</code>. To get the <code>KeyUsage</code> value of a CMK, use the <a>DescribeKey</a> operation. The caller must have <code>kms:Sign</code> permission on the CMK. </li> <li> Use the <code>Message</code> parameter to specify the message or message digest to sign. You can submit messages of up to 4096 bytes. To sign a larger message, generate a hash digest of the message, and then provide the hash digest in the <code>Message</code> parameter. To indicate whether the message is a full message or a digest, use the <code>MessageType</code> parameter. </li> <li> Choose a signing algorithm that is compatible with the CMK.  </li> </ul> <important> When signing a message, be sure to record the CMK and the signing algorithm. This information is required to verify the signature. </important> To verify the signature that this operation generates, use the <a>Verify</a> operation. Or use the <a>GetPublicKey</a> operation to download the public key and then use the public key to verify the signature outside of AWS KMS.  The CMK that you use for this operation must be in a compatible key state. For details, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html">Key state: Effect on your CMK</a> in the <i>AWS Key Management Service Developer Guide</i>.  <b>Cross-account use</b>: Yes. To perform this operation with a CMK in a different AWS account, specify the key ARN or alias ARN in the value of the <code>KeyId</code> parameter.  <b>Required permissions</b>: <a href="https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html">kms:Sign</a> (key policy)  <b>Related operations</b>: <a>Verify</a> 

        :param self:
        :param SigningAlgorithm:  Specifies the signing algorithm to use when signing the message.  Choose an algorithm that is compatible with the type and size of the specified asymmetric CMK.<br/>GrantTokens:  A list of grant tokens. Use a grant token when your permission to call this operation comes from a new grant that has not yet achieved <i>eventual consistency</i>. For more information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#grant_token">Grant token</a> in the <i>AWS Key Management Service Developer Guide</i>.<br/>MessageType:  Tells AWS KMS whether the value of the <code>Message</code> parameter is a message or message digest. The default value, RAW, indicates a message. To indicate a message digest, enter <code>DIGEST</code>.<br/>Message:  Specifies the message or message digest to sign. Messages can be 0-4096 bytes. To sign a larger message, provide the message digest. If you provide a message, AWS KMS generates a hash digest of the message and then signs it.<br/>KeyId:  Identifies an asymmetric CMK. AWS KMS uses the private key in the asymmetric CMK to sign the message. The <code>KeyUsage</code> type of the CMK must be <code>SIGN_VERIFY</code>. To find the <code>KeyUsage</code> of a CMK, use the <a>DescribeKey</a> operation. To specify a CMK, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with <code>"alias/"</code>. To specify a CMK in a different AWS account, you must use the key ARN or alias ARN. For example: <ul> <li> Key ID: <code>1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> <li> Key ARN: <code>arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> <li> Alias name: <code>alias/ExampleAlias</code>  </li> <li> Alias ARN: <code>arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias</code>  </li> </ul> To get the key ID and key ARN for a CMK, use <a>ListKeys</a> or <a>DescribeKey</a>. To get the alias name and alias ARN, use <a>ListAliases</a>.<br/>
        :return: SigningAlgorithm:  The signing algorithm that was used to sign the message.<br/>Signature:  The cryptographic signature that was generated for the message.  <ul> <li> When used with the supported RSA signing algorithms, the encoding of this value is defined by <a href="https://tools.ietf.org/html/rfc8017">PKCS #1 in RFC 8017</a>. </li> <li> When used with the <code>ECDSA_SHA_256</code>, <code>ECDSA_SHA_384</code>, or <code>ECDSA_SHA_512</code> signing algorithms, this value is a DER-encoded object as defined by ANS X9.62–2005 and <a href="https://tools.ietf.org/html/rfc3279#section-2.2.3">RFC 3279 Section 2.2.3</a>. This is the most commonly used signature format and is appropriate for most uses.  </li> </ul> When you use the HTTP API or the AWS CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded.<br/>KeyId:  The Amazon Resource Name (<a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-ARN">key ARN</a>) of the asymmetric CMK that was used to sign the message.<br/>        """
        pass

    def tag_resource(self, Tags: List[Tag], KeyId: str):
        r"""Adds or edits tags on a <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk">customer managed CMK</a>. <note> Tagging or untagging a CMK can allow or deny permission to the CMK. For details, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/abac.html">Using ABAC in AWS KMS</a> in the <i>AWS Key Management Service Developer Guide</i>. </note> Each tag consists of a tag key and a tag value, both of which are case-sensitive strings. The tag value can be an empty (null) string. To add a tag, specify a new tag key and a tag value. To edit a tag, specify an existing tag key and a new tag value. You can use this operation to tag a <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk">customer managed CMK</a>, but you cannot tag an <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk">AWS managed CMK</a>, an <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk">AWS owned CMK</a>, a <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#keystore-concept">custom key store</a>, or an <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#alias-concept">alias</a>. You can also add tags to a CMK while creating it (<a>CreateKey</a>) or replicating it (<a>ReplicateKey</a>). For information about using tags in AWS KMS, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/tagging-keys.html">Tagging keys</a>. For general information about tags, including the format and syntax, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html">Tagging AWS resources</a> in the <i>Amazon Web Services General Reference</i>.  The CMK that you use for this operation must be in a compatible key state. For details, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html">Key state: Effect on your CMK</a> in the <i>AWS Key Management Service Developer Guide</i>.  <b>Cross-account use</b>: No. You cannot perform this operation on a CMK in a different AWS account.   <b>Required permissions</b>: <a href="https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html">kms:TagResource</a> (key policy)  <b>Related operations</b>  <ul> <li>  <a>CreateKey</a>  </li> <li>  <a>ListResourceTags</a>  </li> <li>  <a>ReplicateKey</a>  </li> <li>  <a>UntagResource</a>  </li> </ul>

        :param self:
        :param Tags:  One or more tags.  Each tag consists of a tag key and a tag value. The tag value can be an empty (null) string.  You cannot have more than one tag on a CMK with the same tag key. If you specify an existing tag key with a different tag value, AWS KMS replaces the current tag value with the specified one.<br/>KeyId:  Identifies a customer managed CMK in the account and Region. Specify the key ID or key ARN of the CMK. For example: <ul> <li> Key ID: <code>1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> <li> Key ARN: <code>arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> </ul> To get the key ID and key ARN for a CMK, use <a>ListKeys</a> or <a>DescribeKey</a>.<br/>
        :return:         """
        pass

    def untag_resource(self, TagKeys: List[TagKeyType], KeyId: str):
        r"""Deletes tags from a <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk">customer managed CMK</a>. To delete a tag, specify the tag key and the CMK. <note> Tagging or untagging a CMK can allow or deny permission to the CMK. For details, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/abac.html">Using ABAC in AWS KMS</a> in the <i>AWS Key Management Service Developer Guide</i>. </note> When it succeeds, the <code>UntagResource</code> operation doesn't return any output. Also, if the specified tag key isn't found on the CMK, it doesn't throw an exception or return a response. To confirm that the operation worked, use the <a>ListResourceTags</a> operation. For information about using tags in AWS KMS, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/tagging-keys.html">Tagging keys</a>. For general information about tags, including the format and syntax, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html">Tagging AWS resources</a> in the <i>Amazon Web Services General Reference</i>.  The CMK that you use for this operation must be in a compatible key state. For details, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html">Key state: Effect on your CMK</a> in the <i>AWS Key Management Service Developer Guide</i>.  <b>Cross-account use</b>: No. You cannot perform this operation on a CMK in a different AWS account.  <b>Required permissions</b>: <a href="https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html">kms:UntagResource</a> (key policy)  <b>Related operations</b>  <ul> <li>  <a>CreateKey</a>  </li> <li>  <a>ListResourceTags</a>  </li> <li>  <a>ReplicateKey</a>  </li> <li>  <a>TagResource</a>  </li> </ul>

        :param self:
        :param TagKeys:  One or more tag keys. Specify only the tag keys, not the tag values.<br/>KeyId:  Identifies the CMK from which you are removing tags. Specify the key ID or key ARN of the CMK. For example: <ul> <li> Key ID: <code>1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> <li> Key ARN: <code>arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> </ul> To get the key ID and key ARN for a CMK, use <a>ListKeys</a> or <a>DescribeKey</a>.<br/>
        :return:         """
        pass

    def update_alias(self, TargetKeyId: str, AliasName: str):
        r"""Associates an existing AWS KMS alias with a different customer master key (CMK). Each alias is associated with only one CMK at a time, although a CMK can have multiple aliases. The alias and the CMK must be in the same AWS account and Region. <note> Adding, deleting, or updating an alias can allow or deny permission to the CMK. For details, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/abac.html">Using ABAC in AWS KMS</a> in the <i>AWS Key Management Service Developer Guide</i>. </note> The current and new CMK must be the same type (both symmetric or both asymmetric), and they must have the same key usage (<code>ENCRYPT_DECRYPT</code> or <code>SIGN_VERIFY</code>). This restriction prevents errors in code that uses aliases. If you must assign an alias to a different type of CMK, use <a>DeleteAlias</a> to delete the old alias and <a>CreateAlias</a> to create a new alias. You cannot use <code>UpdateAlias</code> to change an alias name. To change an alias name, use <a>DeleteAlias</a> to delete the old alias and <a>CreateAlias</a> to create a new alias. Because an alias is not a property of a CMK, you can create, update, and delete the aliases of a CMK without affecting the CMK. Also, aliases do not appear in the response from the <a>DescribeKey</a> operation. To get the aliases of all CMKs in the account, use the <a>ListAliases</a> operation.  The CMK that you use for this operation must be in a compatible key state. For details, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html">Key state: Effect on your CMK</a> in the <i>AWS Key Management Service Developer Guide</i>.  <b>Cross-account use</b>: No. You cannot perform this operation on a CMK in a different AWS account.   <b>Required permissions</b>  <ul> <li>  <a href="https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html">kms:UpdateAlias</a> on the alias (IAM policy). </li> <li>  <a href="https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html">kms:UpdateAlias</a> on the current CMK (key policy). </li> <li>  <a href="https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html">kms:UpdateAlias</a> on the new CMK (key policy). </li> </ul> For details, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/kms-alias.html#alias-access">Controlling access to aliases</a> in the <i>AWS Key Management Service Developer Guide</i>.  <b>Related operations:</b>  <ul> <li>  <a>CreateAlias</a>  </li> <li>  <a>DeleteAlias</a>  </li> <li>  <a>ListAliases</a>  </li> </ul>

        :param self:
        :param TargetKeyId:  Identifies the <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk">customer managed CMK</a> to associate with the alias. You don't have permission to associate an alias with an <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk">AWS managed CMK</a>. The CMK must be in the same AWS account and Region as the alias. Also, the new target CMK must be the same type as the current target CMK (both symmetric or both asymmetric) and they must have the same key usage.  Specify the key ID or key ARN of the CMK. For example: <ul> <li> Key ID: <code>1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> <li> Key ARN: <code>arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> </ul> To get the key ID and key ARN for a CMK, use <a>ListKeys</a> or <a>DescribeKey</a>. To verify that the alias is mapped to the correct CMK, use <a>ListAliases</a>.<br/>AliasName:  Identifies the alias that is changing its CMK. This value must begin with <code>alias/</code> followed by the alias name, such as <code>alias/ExampleAlias</code>. You cannot use UpdateAlias to change the alias name.<br/>
        :return:         """
        pass

    def update_custom_key_store(self, CustomKeyStoreId: str, NewCustomKeyStoreName: str=None, KeyStorePassword: str=None, CloudHsmClusterId: str=None) -> UpdateCustomKeyStoreResponse:
        r"""Changes the properties of a custom key store. Use the <code>CustomKeyStoreId</code> parameter to identify the custom key store you want to edit. Use the remaining parameters to change the properties of the custom key store. You can only update a custom key store that is disconnected. To disconnect the custom key store, use <a>DisconnectCustomKeyStore</a>. To reconnect the custom key store after the update completes, use <a>ConnectCustomKeyStore</a>. To find the connection state of a custom key store, use the <a>DescribeCustomKeyStores</a> operation. Use the parameters of <code>UpdateCustomKeyStore</code> to edit your keystore settings. <ul> <li> Use the <b>NewCustomKeyStoreName</b> parameter to change the friendly name of the custom key store to the value that you specify.   </li> <li> Use the <b>KeyStorePassword</b> parameter tell AWS KMS the current password of the <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-store-concepts.html#concept-kmsuser"> <code>kmsuser</code> crypto user (CU)</a> in the associated AWS CloudHSM cluster. You can use this parameter to <a href="https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html#fix-keystore-password">fix connection failures</a> that occur when AWS KMS cannot log into the associated cluster because the <code>kmsuser</code> password has changed. This value does not change the password in the AWS CloudHSM cluster.   </li> <li> Use the <b>CloudHsmClusterId</b> parameter to associate the custom key store with a different, but related, AWS CloudHSM cluster. You can use this parameter to repair a custom key store if its AWS CloudHSM cluster becomes corrupted or is deleted, or when you need to create or restore a cluster from a backup.  </li> </ul> If the operation succeeds, it returns a JSON object with no properties. This operation is part of the <a href="https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html">Custom Key Store feature</a> feature in AWS KMS, which combines the convenience and extensive integration of AWS KMS with the isolation and control of a single-tenant key store.  <b>Cross-account use</b>: No. You cannot perform this operation on a custom key store in a different AWS account.   <b>Required permissions</b>: <a href="https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html">kms:UpdateCustomKeyStore</a> (IAM policy)  <b>Related operations:</b>  <ul> <li>  <a>ConnectCustomKeyStore</a>  </li> <li>  <a>CreateCustomKeyStore</a>  </li> <li>  <a>DeleteCustomKeyStore</a>  </li> <li>  <a>DescribeCustomKeyStores</a>  </li> <li>  <a>DisconnectCustomKeyStore</a>  </li> </ul>

        :param self:
        :param CloudHsmClusterId:  Associates the custom key store with a related AWS CloudHSM cluster.  Enter the cluster ID of the cluster that you used to create the custom key store or a cluster that shares a backup history and has the same cluster certificate as the original cluster. You cannot use this parameter to associate a custom key store with an unrelated cluster. In addition, the replacement cluster must <a href="https://docs.aws.amazon.com/kms/latest/developerguide/create-keystore.html#before-keystore">fulfill the requirements</a> for a cluster associated with a custom key store. To view the cluster certificate of a cluster, use the <a href="https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_DescribeClusters.html">DescribeClusters</a> operation.<br/>KeyStorePassword:  Enter the current password of the <code>kmsuser</code> crypto user (CU) in the AWS CloudHSM cluster that is associated with the custom key store. This parameter tells AWS KMS the current password of the <code>kmsuser</code> crypto user (CU). It does not set or change the password of any users in the AWS CloudHSM cluster.<br/>NewCustomKeyStoreName:  Changes the friendly name of the custom key store to the value that you specify. The custom key store name must be unique in the AWS account.<br/>CustomKeyStoreId:  Identifies the custom key store that you want to update. Enter the ID of the custom key store. To find the ID of a custom key store, use the <a>DescribeCustomKeyStores</a> operation.<br/>
        :return:         """
        pass

    def update_key_description(self, Description: str, KeyId: str):
        r"""Updates the description of a customer master key (CMK). To see the description of a CMK, use <a>DescribeKey</a>.  The CMK that you use for this operation must be in a compatible key state. For details, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html">Key state: Effect on your CMK</a> in the <i>AWS Key Management Service Developer Guide</i>.  <b>Cross-account use</b>: No. You cannot perform this operation on a CMK in a different AWS account.   <b>Required permissions</b>: <a href="https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html">kms:UpdateKeyDescription</a> (key policy)  <b>Related operations</b>  <ul> <li>  <a>CreateKey</a>  </li> <li>  <a>DescribeKey</a>  </li> </ul>

        :param self:
        :param Description:  New description for the CMK.<br/>KeyId:  Updates the description of the specified customer master key (CMK). Specify the key ID or key ARN of the CMK. For example: <ul> <li> Key ID: <code>1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> <li> Key ARN: <code>arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> </ul> To get the key ID and key ARN for a CMK, use <a>ListKeys</a> or <a>DescribeKey</a>.<br/>
        :return:         """
        pass

    def update_primary_region(self, PrimaryRegion: str, KeyId: str):
        r"""Changes the primary key of a multi-Region key.  This operation changes the replica key in the specified Region to a primary key and changes the former primary key to a replica key. For example, suppose you have a primary key in <code>us-east-1</code> and a replica key in <code>eu-west-2</code>. If you run <code>UpdatePrimaryRegion</code> with a <code>PrimaryRegion</code> value of <code>eu-west-2</code>, the primary key is now the key in <code>eu-west-2</code>, and the key in <code>us-east-1</code> becomes a replica key. For details, see  This operation supports <i>multi-Region keys</i>, an AWS KMS feature that lets you create multiple interoperable CMKs in different AWS Regions. Because these CMKs have the same key ID, key material, and other metadata, you can use them to encrypt data in one AWS Region and decrypt it in a different AWS Region without making a cross-Region call or exposing the plaintext data. For more information about multi-Region keys, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html">Using multi-Region keys</a> in the <i>AWS Key Management Service Developer Guide</i>. The <i>primary key</i> of a multi-Region key is the source for properties that are always shared by primary and replica keys, including the key material, <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-id">key ID</a>, <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-spec">key spec</a>, <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-usage">key usage</a>, <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-origin">key material origin</a>, and <a href="https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html">automatic key rotation</a>. It's the only key that can be replicated. You cannot <a href="https://docs.aws.amazon.com/kms/latest/APIReference/API_ScheduleKeyDeletion.html">delete the primary key</a> until all replicas are deleted. The key ID and primary Region that you specify uniquely identify the replica key that will become the primary key. The primary Region must already have a replica key. This operation does not create a CMK in the specified Region. To find the replica keys, use the <a>DescribeKey</a> operation on the primary key or any replica key. To create a replica key, use the <a>ReplicateKey</a> operation. You can run this operation while using the affected multi-Region keys in cryptographic operations. This operation should not delay, interrupt, or cause failures in cryptographic operations.  Even after this operation completes, the process of updating the primary Region might still be in progress for a few more seconds. Operations such as <code>DescribeKey</code> might display both the old and new primary keys as replicas. The old and new primary keys have a transient key state of <code>Updating</code>. The original key state is restored when the update is complete. While the key state is <code>Updating</code>, you can use the keys in cryptographic operations, but you cannot replicate the new primary key or perform certain management operations, such as enabling or disabling these keys. For details about the <code>Updating</code> key state, see <a href="kms/latest/developerguide/key-state.html">Key state: Effect on your CMK</a> in the <i>AWS Key Management Service Developer Guide</i>. This operation does not return any output. To verify that primary key is changed, use the <a>DescribeKey</a> operation.  <b>Cross-account use</b>: No. You cannot use this operation in a different AWS account.   <b>Required permissions</b>:  <ul> <li>  <code>kms:UpdatePrimaryRegion</code> on the current primary CMK (in the primary CMK's Region). Include this permission primary CMK's key policy. </li> <li>  <code>kms:UpdatePrimaryRegion</code> on the current replica CMK (in the replica CMK's Region). Include this permission in the replica CMK's key policy. </li> </ul>  <b>Related operations</b>  <ul> <li>  <a>CreateKey</a>  </li> <li>  <a>ReplicateKey</a>  </li> </ul>

        :param self:
        :param PrimaryRegion:  The AWS Region of the new primary key. Enter the Region ID, such as <code>us-east-1</code> or <code>ap-southeast-2</code>. There must be an existing replica key in this Region.  When the operation completes, the multi-Region key in this Region will be the primary key.<br/>KeyId:  Identifies the current primary key. When the operation completes, this CMK will be a replica key. Specify the key ID or key ARN of a multi-Region primary key. For example: <ul> <li> Key ID: <code>mrk-1234abcd12ab34cd56ef1234567890ab</code>  </li> <li> Key ARN: <code>arn:aws:kms:us-east-2:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab</code>  </li> </ul> To get the key ID and key ARN for a CMK, use <a>ListKeys</a> or <a>DescribeKey</a>.<br/>
        :return:         """
        pass

    def verify(self, SigningAlgorithm: str, Signature: CiphertextType, Message: PlaintextType, KeyId: str, MessageType: str=None, GrantTokens: List[GrantTokenType]=None) -> VerifyResponse:
        r"""Verifies a digital signature that was generated by the <a>Sign</a> operation.  <p/> Verification confirms that an authorized user signed the message with the specified CMK and signing algorithm, and the message hasn't changed since it was signed. If the signature is verified, the value of the <code>SignatureValid</code> field in the response is <code>True</code>. If the signature verification fails, the <code>Verify</code> operation fails with an <code>KMSInvalidSignatureException</code> exception. A digital signature is generated by using the private key in an asymmetric CMK. The signature is verified by using the public key in the same asymmetric CMK. For information about symmetric and asymmetric CMKs, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html">Using Symmetric and Asymmetric CMKs</a> in the <i>AWS Key Management Service Developer Guide</i>. To verify a digital signature, you can use the <code>Verify</code> operation. Specify the same asymmetric CMK, message, and signing algorithm that were used to produce the signature. You can also verify the digital signature by using the public key of the CMK outside of AWS KMS. Use the <a>GetPublicKey</a> operation to download the public key in the asymmetric CMK and then use the public key to verify the signature outside of AWS KMS. The advantage of using the <code>Verify</code> operation is that it is performed within AWS KMS. As a result, it's easy to call, the operation is performed within the FIPS boundary, it is logged in AWS CloudTrail, and you can use key policy and IAM policy to determine who is authorized to use the CMK to verify signatures. The CMK that you use for this operation must be in a compatible key state. For details, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html">Key state: Effect on your CMK</a> in the <i>AWS Key Management Service Developer Guide</i>.  <b>Cross-account use</b>: Yes. To perform this operation with a CMK in a different AWS account, specify the key ARN or alias ARN in the value of the <code>KeyId</code> parameter.   <b>Required permissions</b>: <a href="https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html">kms:Verify</a> (key policy)  <b>Related operations</b>: <a>Sign</a> 

        :param self:
        :param GrantTokens:  A list of grant tokens. Use a grant token when your permission to call this operation comes from a new grant that has not yet achieved <i>eventual consistency</i>. For more information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#grant_token">Grant token</a> in the <i>AWS Key Management Service Developer Guide</i>.<br/>SigningAlgorithm:  The signing algorithm that was used to sign the message. If you submit a different algorithm, the signature verification fails.<br/>Signature:  The signature that the <code>Sign</code> operation generated.<br/>MessageType:  Tells AWS KMS whether the value of the <code>Message</code> parameter is a message or message digest. The default value, RAW, indicates a message. To indicate a message digest, enter <code>DIGEST</code>. <important> Use the <code>DIGEST</code> value only when the value of the <code>Message</code> parameter is a message digest. If you use the <code>DIGEST</code> value with a raw message, the security of the verification operation can be compromised. </important><br/>Message:  Specifies the message that was signed. You can submit a raw message of up to 4096 bytes, or a hash digest of the message. If you submit a digest, use the <code>MessageType</code> parameter with a value of <code>DIGEST</code>. If the message specified here is different from the message that was signed, the signature verification fails. A message and its hash digest are considered to be the same message.<br/>KeyId:  Identifies the asymmetric CMK that will be used to verify the signature. This must be the same CMK that was used to generate the signature. If you specify a different CMK, the signature verification fails. To specify a CMK, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with <code>"alias/"</code>. To specify a CMK in a different AWS account, you must use the key ARN or alias ARN. For example: <ul> <li> Key ID: <code>1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> <li> Key ARN: <code>arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> <li> Alias name: <code>alias/ExampleAlias</code>  </li> <li> Alias ARN: <code>arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias</code>  </li> </ul> To get the key ID and key ARN for a CMK, use <a>ListKeys</a> or <a>DescribeKey</a>. To get the alias name and alias ARN, use <a>ListAliases</a>.<br/>
        :return: SigningAlgorithm:  The signing algorithm that was used to verify the signature.<br/>SignatureValid:  A Boolean value that indicates whether the signature was verified. A value of <code>True</code> indicates that the <code>Signature</code> was produced by signing the <code>Message</code> with the specified <code>KeyID</code> and <code>SigningAlgorithm.</code> If the signature is not verified, the <code>Verify</code> operation fails with a <code>KMSInvalidSignatureException</code> exception. <br/>KeyId:  The Amazon Resource Name (<a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-ARN">key ARN</a>) of the asymmetric CMK that was used to verify the signature.<br/>        """
        pass





class LakeFormation(BaseClient):
    r"""<fullname>AWS Lake Formation</fullname> Defines the public endpoint for the AWS Lake Formation service."""




    class AddLFTagsToResourceRequest(Mapping):
        pass
    
    class AddLFTagsToResourceResponse(Mapping):
        pass
    
    class Resource(Mapping):
        pass
    
    class LFTagPair(Mapping):
        pass
    
    class BatchGrantPermissionsRequest(Mapping):
        pass
    
    class BatchGrantPermissionsResponse(Mapping):
        pass
    
    class BatchPermissionsRequestEntry(Mapping):
        pass
    
    class BatchRevokePermissionsRequest(Mapping):
        pass
    
    class BatchRevokePermissionsResponse(Mapping):
        pass
    
    class CreateLFTagRequest(Mapping):
        pass
    
    class CreateLFTagResponse(Mapping):
        pass
    
    class LFTagValue(object):
        pass
    
    class DeleteLFTagRequest(Mapping):
        pass
    
    class DeleteLFTagResponse(Mapping):
        pass
    
    class DeregisterResourceRequest(Mapping):
        pass
    
    class DeregisterResourceResponse(Mapping):
        pass
    
    class DescribeResourceRequest(Mapping):
        pass
    
    class DescribeResourceResponse(Mapping):
        pass
    
    class GetDataLakeSettingsRequest(Mapping):
        pass
    
    class GetDataLakeSettingsResponse(Mapping):
        pass
    
    class GetEffectivePermissionsForPathRequest(Mapping):
        pass
    
    class GetEffectivePermissionsForPathResponse(Mapping):
        pass
    
    class GetLFTagRequest(Mapping):
        pass
    
    class GetLFTagResponse(Mapping):
        pass
    
    class GetResourceLFTagsRequest(Mapping):
        pass
    
    class GetResourceLFTagsResponse(Mapping):
        pass
    
    class BooleanNullable(object):
        pass
    
    class GrantPermissionsRequest(Mapping):
        pass
    
    class GrantPermissionsResponse(Mapping):
        pass
    
    class DataLakePrincipal(Mapping):
        pass
    
    class Permission(object):
        pass
    
    class ListLFTagsRequest(Mapping):
        pass
    
    class ListLFTagsResponse(Mapping):
        pass
    
    class ListPermissionsRequest(Mapping):
        pass
    
    class ListPermissionsResponse(Mapping):
        pass
    
    class ListResourcesRequest(Mapping):
        pass
    
    class ListResourcesResponse(Mapping):
        pass
    
    class FilterCondition(Mapping):
        pass
    
    class PutDataLakeSettingsRequest(Mapping):
        pass
    
    class PutDataLakeSettingsResponse(Mapping):
        pass
    
    class DataLakeSettings(Mapping):
        pass
    
    class RegisterResourceRequest(Mapping):
        pass
    
    class RegisterResourceResponse(Mapping):
        pass
    
    class NullableBoolean(object):
        pass
    
    class RemoveLFTagsFromResourceRequest(Mapping):
        pass
    
    class RemoveLFTagsFromResourceResponse(Mapping):
        pass
    
    class RevokePermissionsRequest(Mapping):
        pass
    
    class RevokePermissionsResponse(Mapping):
        pass
    
    class SearchDatabasesByLFTagsRequest(Mapping):
        pass
    
    class SearchDatabasesByLFTagsResponse(Mapping):
        pass
    
    class LFTag(Mapping):
        pass
    
    class SearchTablesByLFTagsRequest(Mapping):
        pass
    
    class SearchTablesByLFTagsResponse(Mapping):
        pass
    
    class UpdateLFTagRequest(Mapping):
        pass
    
    class UpdateLFTagResponse(Mapping):
        pass
    
    class UpdateResourceRequest(Mapping):
        pass
    
    class UpdateResourceResponse(Mapping):
        pass
    
    def add_lf_tags_to_resource(self, LFTags: List[LFTagPair], Resource: Resource, CatalogId: str=None) -> AddLFTagsToResourceResponse:
        r"""Attaches one or more tags to an existing resource.

        :param self:
        :param LFTags:  The tags to attach to the resource.<br/>Resource:  The resource to which to attach a tag.:<br/>CatalogId:  The identifier for the Data Catalog. By default, the account ID. The Data Catalog is the persistent metadata store. It contains database definitions, table definitions, and other control information to manage your AWS Lake Formation environment. <br/>The identifier for the Data Catalog. By default, the account ID. The Data Catalog is the persistent metadata store. It contains database definitions, table definitions, and other control information to manage your AWS Lake Formation environment. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Catalog</b>: The identifier for the Data Catalog. By default, the account ID. The Data Catalog is the persistent metadata store. It contains database definitions, table definitions, and other control information to manage your AWS Lake Formation environment. 
        :return: Failures:  A list of failures to tag the resource.<br/>        """
        pass

    def batch_grant_permissions(self, Entries: List[BatchPermissionsRequestEntry], CatalogId: str=None) -> BatchGrantPermissionsResponse:
        r"""Batch operation to grant permissions to the principal.

        :param self:
        :param Entries:  A list of up to 20 entries for resource permissions to be granted by batch operation to the principal.<br/>CatalogId:  The identifier for the Data Catalog. By default, the account ID. The Data Catalog is the persistent metadata store. It contains database definitions, table definitions, and other control information to manage your AWS Lake Formation environment. <br/>
        :return: Failures:  A list of failures to grant permissions to the resources.<br/>        """
        pass

    def batch_revoke_permissions(self, Entries: List[BatchPermissionsRequestEntry], CatalogId: str=None) -> BatchRevokePermissionsResponse:
        r"""Batch operation to revoke permissions from the principal.

        :param self:
        :param Entries:  A list of up to 20 entries for resource permissions to be revoked by batch operation to the principal.<br/>CatalogId:  The identifier for the Data Catalog. By default, the account ID. The Data Catalog is the persistent metadata store. It contains database definitions, table definitions, and other control information to manage your AWS Lake Formation environment. <br/>
        :return: Failures:  A list of failures to revoke permissions to the resources.<br/>        """
        pass

    def create_lf_tag(self, TagValues: List[LFTagValue], TagKey: str, CatalogId: str=None) -> CreateLFTagResponse:
        r"""Creates a tag with the specified name and values.

        :param self:
        :param TagValues:  A list of possible values an attribute can take.<br/>TagKey:  The key-name for the tag.<br/>CatalogId:  The identifier for the Data Catalog. By default, the account ID. The Data Catalog is the persistent metadata store. It contains database definitions, table definitions, and other control information to manage your AWS Lake Formation environment. <br/>
        :return:         """
        pass

    def delete_lf_tag(self, TagKey: str, CatalogId: str=None) -> DeleteLFTagResponse:
        r"""Deletes the specified tag key name. If the attribute key does not exist or the tag does not exist, then the operation will not do anything. If the attribute key exists, then the operation checks if any resources are tagged with this attribute key, if yes, the API throws a 400 Exception with the message "Delete not allowed" as the tag key is still attached with resources. You can consider untagging resources with this tag key.

        :param self:
        :param TagKey:  The key-name for the tag to delete.<br/>CatalogId:  The identifier for the Data Catalog. By default, the account ID. The Data Catalog is the persistent metadata store. It contains database definitions, table definitions, and other control information to manage your AWS Lake Formation environment. <br/>
        :return:         """
        pass

    def deregister_resource(self, ResourceArn: str) -> DeregisterResourceResponse:
        r"""Deregisters the resource as managed by the Data Catalog. When you deregister a path, Lake Formation removes the path from the inline policy attached to your service-linked role.

        :param self:
        :param ResourceArn:  The Amazon Resource Name (ARN) of the resource that you want to deregister.<br/>
        :return:         """
        pass

    def describe_resource(self, ResourceArn: str) -> DescribeResourceResponse:
        r"""Retrieves the current data access role for the given resource registered in AWS Lake Formation.

        :param self:
        :param ResourceArn:  The resource ARN.<br/>
        :return: ResourceInfo:  A structure containing information about an AWS Lake Formation resource.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModified</i> The date and time the resource was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The IAM role that registered a resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceArn</i> The Amazon Resource Name (ARN) of the resource.<br/>        """
        pass

    def get_data_lake_settings(self, CatalogId: str=None) -> GetDataLakeSettingsResponse:
        r"""Retrieves the list of the data lake administrators of a Lake Formation-managed data lake. 

        :param self:
        :param CatalogId:  The identifier for the Data Catalog. By default, the account ID. The Data Catalog is the persistent metadata store. It contains database definitions, table definitions, and other control information to manage your AWS Lake Formation environment. <br/>
        :return: DataLakeSettings:  A structure representing a list of AWS Lake Formation principals designated as data lake administrators.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TrustedResourceOwners</i> A list of the resource-owning account IDs that the caller's account can use to share their user access details (user ARNs). The user ARNs can be logged in the resource owner's AWS CloudTrail log. You may want to specify this property when you are in a high-trust boundary, such as the same team or company. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreateTableDefaultPermissions</i> A structure representing a list of up to three principal permissions entries for default create table permissions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreateDatabaseDefaultPermissions</i> A structure representing a list of up to three principal permissions entries for default create database permissions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataLakeAdmins</i> A list of AWS Lake Formation principals. Supported principals are IAM users or IAM roles.<br/>        """
        pass

    def get_effective_permissions_for_path(self, ResourceArn: str, CatalogId: str=None, NextToken: str=None, MaxResults: int=None) -> GetEffectivePermissionsForPathResponse:
        r"""Returns the Lake Formation permissions for a specified table or database resource located at a path in Amazon S3. <code>GetEffectivePermissionsForPath</code> will not return databases and tables if the catalog is encrypted.

        :param self:
        :param MaxResults:  The maximum number of results to return.<br/>NextToken:  A continuation token, if this is not the first call to retrieve this list.<br/>ResourceArn:  The Amazon Resource Name (ARN) of the resource for which you want to get permissions.<br/>CatalogId:  The identifier for the Data Catalog. By default, the account ID. The Data Catalog is the persistent metadata store. It contains database definitions, table definitions, and other control information to manage your AWS Lake Formation environment. <br/>
        :return: NextToken:  A continuation token, if this is not the first call to retrieve this list.<br/>Permissions:  A list of the permissions for the specified table or database resource located at the path in Amazon S3.<br/>        """
        pass

    def get_lf_tag(self, TagKey: str, CatalogId: str=None) -> GetLFTagResponse:
        r"""Returns a tag definition.

        :param self:
        :param TagKey:  The key-name for the tag.<br/>CatalogId:  The identifier for the Data Catalog. By default, the account ID. The Data Catalog is the persistent metadata store. It contains database definitions, table definitions, and other control information to manage your AWS Lake Formation environment. <br/>
        :return: TagValues:  A list of possible values an attribute can take.<br/>TagKey:  The key-name for the tag.<br/>CatalogId:  The identifier for the Data Catalog. By default, the account ID. The Data Catalog is the persistent metadata store. It contains database definitions, table definitions, and other control information to manage your AWS Lake Formation environment. <br/>        """
        pass

    def get_resource_lf_tags(self, Resource: Resource, CatalogId: str=None, ShowAssignedLFTags: BooleanNullable=None) -> GetResourceLFTagsResponse:
        r"""Returns the tags applied to a resource.

        :param self:
        :param ShowAssignedLFTags:  Indicates whether to show the assigned tags.<br/>Resource:  The resource for which you want to return tags.:<br/>CatalogId:  The identifier for the Data Catalog. By default, the account ID. The Data Catalog is the persistent metadata store. It contains database definitions, table definitions, and other control information to manage your AWS Lake Formation environment. <br/>The identifier for the Data Catalog. By default, the account ID. The Data Catalog is the persistent metadata store. It contains database definitions, table definitions, and other control information to manage your AWS Lake Formation environment. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Catalog</b>: The identifier for the Data Catalog. By default, the account ID. The Data Catalog is the persistent metadata store. It contains database definitions, table definitions, and other control information to manage your AWS Lake Formation environment. 
        :return: LFTagsOnColumns:  A list of tags applied to a column resource.<br/>LFTagsOnTable:  A list of tags applied to a table resource.<br/>LFTagOnDatabase:  A list of tags applied to a database resource.<br/>        """
        pass

    def grant_permissions(self, Permissions: List[Permission], Resource: Resource, Principal: DataLakePrincipal, CatalogId: str=None, PermissionsWithGrantOption: List[Permission]=None) -> GrantPermissionsResponse:
        r"""Grants permissions to the principal to access metadata in the Data Catalog and data organized in underlying data storage such as Amazon S3. For information about permissions, see <a href="https://docs-aws.amazon.com/lake-formation/latest/dg/security-data-access.html">Security and Access Control to Metadata and Data</a>.

        :param self:
        :param PermissionsWithGrantOption:  Indicates a list of the granted permissions that the principal may pass to other users. These permissions may only be a subset of the permissions granted in the <code>Privileges</code>.<br/>Permissions:  The permissions granted to the principal on the resource. AWS Lake Formation defines privileges to grant and revoke access to metadata in the Data Catalog and data organized in underlying data storage such as Amazon S3. AWS Lake Formation requires that each principal be authorized to perform a specific task on AWS Lake Formation resources. <br/>Resource:  The resource to which permissions are to be granted. Resources in AWS Lake Formation are the Data Catalog, databases, and tables.:<br/>Principal:  The principal to be granted the permissions on the resource. Supported principals are IAM users or IAM roles, and they are defined by their principal type and their ARN. Note that if you define a resource with a particular ARN, then later delete, and recreate a resource with that same ARN, the resource maintains the permissions already granted. :<br/>CatalogId:  The identifier for the Data Catalog. By default, the account ID. The Data Catalog is the persistent metadata store. It contains database definitions, table definitions, and other control information to manage your AWS Lake Formation environment. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataLakePrincipalIdentifier</i> An identifier for the AWS Lake Formation principal.<br/>The identifier for the Data Catalog. By default, the account ID. The Data Catalog is the persistent metadata store. It contains database definitions, table definitions, and other control information to manage your AWS Lake Formation environment. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Catalog</b>: The identifier for the Data Catalog. By default, the account ID. The Data Catalog is the persistent metadata store. It contains database definitions, table definitions, and other control information to manage your AWS Lake Formation environment. 
        :return:         """
        pass

    def list_lf_tags(self, CatalogId: str=None, ResourceShareType: str=None, MaxResults: int=None, NextToken: str=None) -> ListLFTagsResponse:
        r"""Lists tags that the requester has permission to view. 

        :param self:
        :param NextToken:  A continuation token, if this is not the first call to retrieve this list.<br/>MaxResults:  The maximum number of results to return.<br/>ResourceShareType:  If resource share type is <code>ALL</code>, returns both in-account tags and shared tags that the requester has permission to view. If resource share type is <code>FOREIGN</code>, returns all share tags that the requester can view. If no resource share type is passed, lists tags in the given catalog ID that the requester has permission to view.<br/>CatalogId:  The identifier for the Data Catalog. By default, the account ID. The Data Catalog is the persistent metadata store. It contains database definitions, table definitions, and other control information to manage your AWS Lake Formation environment. <br/>
        :return: NextToken:  A continuation token, present if the current list segment is not the last.<br/>LFTags:  A list of tags that the requested has permission to view.<br/>        """
        pass

    def list_permissions(self, CatalogId: str=None, Principal: DataLakePrincipal=None, ResourceType: str=None, Resource: Resource=None, NextToken: str=None, MaxResults: int=None) -> ListPermissionsResponse:
        r"""Returns a list of the principal permissions on the resource, filtered by the permissions of the caller. For example, if you are granted an ALTER permission, you are able to see only the principal permissions for ALTER. This operation returns only those permissions that have been explicitly granted. For information about permissions, see <a href="https://docs-aws.amazon.com/lake-formation/latest/dg/security-data-access.html">Security and Access Control to Metadata and Data</a>.

        :param self:
        :param MaxResults:  The maximum number of results to return.<br/>NextToken:  A continuation token, if this is not the first call to retrieve this list.<br/>Resource:  A resource where you will get a list of the principal permissions. This operation does not support getting privileges on a table with columns. Instead, call this operation on the table, and the operation returns the table and the table w columns.:<br/>ResourceType:  Specifies a resource type to filter the permissions returned.<br/>Principal:  Specifies a principal to filter the permissions returned.:<br/>CatalogId:  The identifier for the Data Catalog. By default, the account ID. The Data Catalog is the persistent metadata store. It contains database definitions, table definitions, and other control information to manage your AWS Lake Formation environment. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataLakePrincipalIdentifier</i> An identifier for the AWS Lake Formation principal.<br/>The identifier for the Data Catalog. By default, the account ID. The Data Catalog is the persistent metadata store. It contains database definitions, table definitions, and other control information to manage your AWS Lake Formation environment. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Catalog</b>: The identifier for the Data Catalog. By default, the account ID. The Data Catalog is the persistent metadata store. It contains database definitions, table definitions, and other control information to manage your AWS Lake Formation environment. 
        :return: NextToken:  A continuation token, if this is not the first call to retrieve this list.<br/>PrincipalResourcePermissions:  A list of principals and their permissions on the resource for the specified principal and resource types.<br/>        """
        pass

    def list_resources(self, FilterConditionList: List[FilterCondition]=None, MaxResults: int=None, NextToken: str=None) -> ListResourcesResponse:
        r"""Lists the resources registered to be managed by the Data Catalog.

        :param self:
        :param NextToken:  A continuation token, if this is not the first call to retrieve these resources.<br/>MaxResults:  The maximum number of resource results.<br/>FilterConditionList:  Any applicable row-level and/or column-level filtering conditions for the resources.<br/>
        :return: NextToken:  A continuation token, if this is not the first call to retrieve these resources.<br/>ResourceInfoList:  A summary of the data lake resources.<br/>        """
        pass

    def put_data_lake_settings(self, DataLakeSettings: DataLakeSettings, CatalogId: str=None) -> PutDataLakeSettingsResponse:
        r"""Sets the list of data lake administrators who have admin privileges on all resources managed by Lake Formation. For more information on admin privileges, see <a href="https://docs.aws.amazon.com/lake-formation/latest/dg/lake-formation-permissions.html">Granting Lake Formation Permissions</a>. This API replaces the current list of data lake admins with the new list being passed. To add an admin, fetch the current list and add the new admin to that list and pass that list in this API.

        :param self:
        :param DataLakeSettings:  A structure representing a list of AWS Lake Formation principals designated as data lake administrators.:<br/>CatalogId:  The identifier for the Data Catalog. By default, the account ID. The Data Catalog is the persistent metadata store. It contains database definitions, table definitions, and other control information to manage your AWS Lake Formation environment. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TrustedResourceOwners</i> A list of the resource-owning account IDs that the caller's account can use to share their user access details (user ARNs). The user ARNs can be logged in the resource owner's AWS CloudTrail log. You may want to specify this property when you are in a high-trust boundary, such as the same team or company. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreateTableDefaultPermissions</i> A structure representing a list of up to three principal permissions entries for default create table permissions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreateDatabaseDefaultPermissions</i> A structure representing a list of up to three principal permissions entries for default create database permissions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataLakeAdmins</i> A list of AWS Lake Formation principals. Supported principals are IAM users or IAM roles.<br/>
        :return:         """
        pass

    def register_resource(self, ResourceArn: str, UseServiceLinkedRole: NullableBoolean=None, RoleArn: str=None) -> RegisterResourceResponse:
        r"""Registers the resource as managed by the Data Catalog. To add or update data, Lake Formation needs read/write access to the chosen Amazon S3 path. Choose a role that you know has permission to do this, or choose the AWSServiceRoleForLakeFormationDataAccess service-linked role. When you register the first Amazon S3 path, the service-linked role and a new inline policy are created on your behalf. Lake Formation adds the first path to the inline policy and attaches it to the service-linked role. When you register subsequent paths, Lake Formation adds the path to the existing policy. The following request registers a new location and gives AWS Lake Formation permission to use the service-linked role to access that location.  <code>ResourceArn = arn:aws:s3:::my-bucket UseServiceLinkedRole = true</code>  If <code>UseServiceLinkedRole</code> is not set to true, you must provide or set the <code>RoleArn</code>:  <code>arn:aws:iam::12345:role/my-data-access-role</code> 

        :param self:
        :param RoleArn:  The identifier for the role that registers the resource.<br/>UseServiceLinkedRole:  Designates an AWS Identity and Access Management (IAM) service-linked role by registering this role with the Data Catalog. A service-linked role is a unique type of IAM role that is linked directly to Lake Formation. For more information, see <a href="https://docs-aws.amazon.com/lake-formation/latest/dg/service-linked-roles.html">Using Service-Linked Roles for Lake Formation</a>.<br/>ResourceArn:  The Amazon Resource Name (ARN) of the resource that you want to register.<br/>
        :return:         """
        pass

    def remove_lf_tags_from_resource(self, LFTags: List[LFTagPair], Resource: Resource, CatalogId: str=None) -> RemoveLFTagsFromResourceResponse:
        r"""Removes a tag from the resource. Only database, table, or tableWithColumns resource are allowed. To tag columns, use the column inclusion list in <code>tableWithColumns</code> to specify column input.

        :param self:
        :param LFTags:  The tags to be removed from the resource.<br/>Resource:  The resource where you want to remove a tag.:<br/>CatalogId:  The identifier for the Data Catalog. By default, the account ID. The Data Catalog is the persistent metadata store. It contains database definitions, table definitions, and other control information to manage your AWS Lake Formation environment. <br/>The identifier for the Data Catalog. By default, the account ID. The Data Catalog is the persistent metadata store. It contains database definitions, table definitions, and other control information to manage your AWS Lake Formation environment. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Catalog</b>: The identifier for the Data Catalog. By default, the account ID. The Data Catalog is the persistent metadata store. It contains database definitions, table definitions, and other control information to manage your AWS Lake Formation environment. 
        :return: Failures:  A list of failures to untag a resource.<br/>        """
        pass

    def revoke_permissions(self, Permissions: List[Permission], Resource: Resource, Principal: DataLakePrincipal, CatalogId: str=None, PermissionsWithGrantOption: List[Permission]=None) -> RevokePermissionsResponse:
        r"""Revokes permissions to the principal to access metadata in the Data Catalog and data organized in underlying data storage such as Amazon S3.

        :param self:
        :param PermissionsWithGrantOption:  Indicates a list of permissions for which to revoke the grant option allowing the principal to pass permissions to other principals.<br/>Permissions:  The permissions revoked to the principal on the resource. For information about permissions, see <a href="https://docs-aws.amazon.com/lake-formation/latest/dg/security-data-access.html">Security and Access Control to Metadata and Data</a>.<br/>Resource:  The resource to which permissions are to be revoked.:<br/>Principal:  The principal to be revoked permissions on the resource.:<br/>CatalogId:  The identifier for the Data Catalog. By default, the account ID. The Data Catalog is the persistent metadata store. It contains database definitions, table definitions, and other control information to manage your AWS Lake Formation environment. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataLakePrincipalIdentifier</i> An identifier for the AWS Lake Formation principal.<br/>The identifier for the Data Catalog. By default, the account ID. The Data Catalog is the persistent metadata store. It contains database definitions, table definitions, and other control information to manage your AWS Lake Formation environment. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Catalog</b>: The identifier for the Data Catalog. By default, the account ID. The Data Catalog is the persistent metadata store. It contains database definitions, table definitions, and other control information to manage your AWS Lake Formation environment. 
        :return:         """
        pass

    def search_databases_by_lf_tags(self, Expression: List[LFTag], NextToken: str=None, MaxResults: int=None, CatalogId: str=None) -> SearchDatabasesByLFTagsResponse:
        r"""This operation allows a search on <code>DATABASE</code> resources by <code>TagCondition</code>. This operation is used by admins who want to grant user permissions on certain <code>TagConditions</code>. Before making a grant, the admin can use <code>SearchDatabasesByTags</code> to find all resources where the given <code>TagConditions</code> are valid to verify whether the returned resources can be shared.

        :param self:
        :param Expression:  A list of conditions (<code>LFTag</code> structures) to search for in database resources.<br/>CatalogId:  The identifier for the Data Catalog. By default, the account ID. The Data Catalog is the persistent metadata store. It contains database definitions, table definitions, and other control information to manage your AWS Lake Formation environment. <br/>MaxResults:  The maximum number of results to return.<br/>NextToken:  A continuation token, if this is not the first call to retrieve this list.<br/>
        :return: DatabaseList:  A list of databases that meet the tag conditions.<br/>NextToken:  A continuation token, present if the current list segment is not the last.<br/>        """
        pass

    def search_tables_by_lf_tags(self, Expression: List[LFTag], NextToken: str=None, MaxResults: int=None, CatalogId: str=None) -> SearchTablesByLFTagsResponse:
        r"""This operation allows a search on <code>TABLE</code> resources by <code>LFTag</code>s. This will be used by admins who want to grant user permissions on certain LFTags. Before making a grant, the admin can use <code>SearchTablesByLFTags</code> to find all resources where the given <code>LFTag</code>s are valid to verify whether the returned resources can be shared.

        :param self:
        :param Expression:  A list of conditions (<code>LFTag</code> structures) to search for in table resources.<br/>CatalogId:  The identifier for the Data Catalog. By default, the account ID. The Data Catalog is the persistent metadata store. It contains database definitions, table definitions, and other control information to manage your AWS Lake Formation environment. <br/>MaxResults:  The maximum number of results to return.<br/>NextToken:  A continuation token, if this is not the first call to retrieve this list.<br/>
        :return: TableList:  A list of tables that meet the tag conditions.<br/>NextToken:  A continuation token, present if the current list segment is not the last.<br/>        """
        pass

    def update_lf_tag(self, TagKey: str, CatalogId: str=None, TagValuesToDelete: List[LFTagValue]=None, TagValuesToAdd: List[LFTagValue]=None) -> UpdateLFTagResponse:
        r"""Updates the list of possible values for the specified tag key. If the tag does not exist, the operation throws an EntityNotFoundException. The values in the delete key values will be deleted from list of possible values. If any value in the delete key values is attached to a resource, then API errors out with a 400 Exception - "Update not allowed". Untag the attribute before deleting the tag key's value. 

        :param self:
        :param TagValuesToAdd:  A list of tag values to add from the tag.<br/>TagValuesToDelete:  A list of tag values to delete from the tag.<br/>TagKey:  The key-name for the tag for which to add or delete values.<br/>CatalogId:  The identifier for the Data Catalog. By default, the account ID. The Data Catalog is the persistent metadata store. It contains database definitions, table definitions, and other control information to manage your AWS Lake Formation environment. <br/>
        :return:         """
        pass

    def update_resource(self, ResourceArn: str, RoleArn: str) -> UpdateResourceResponse:
        r"""Updates the data access role used for vending access to the given (registered) resource in AWS Lake Formation. 

        :param self:
        :param ResourceArn:  The resource ARN.<br/>RoleArn:  The new role to use for the given resource registered in AWS Lake Formation.<br/>
        :return:         """
        pass





class Lambda(BaseClient):
    r"""<fullname>Lambda</fullname>  <b>Overview</b>  This is the <i>Lambda API Reference</i>. The Lambda Developer Guide provides additional information. For the service overview, see <a href="https://docs.aws.amazon.com/lambda/latest/dg/welcome.html">What is Lambda</a>, and for information about how the service works, see <a href="https://docs.aws.amazon.com/lambda/latest/dg/lambda-introduction.html">Lambda: How it Works</a> in the <b>Lambda Developer Guide</b>."""

    class FunctionActiveWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `get_function_configuration` for valid parameters"""
            pass
    class FunctionExistsWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `get_function` for valid parameters"""
            pass
    class FunctionUpdatedWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `get_function_configuration` for valid parameters"""
            pass


    class ListEventSourceMappingsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_event_source_mappings` for valid parameters"""
            pass
    class ListFunctionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_functions` for valid parameters"""
            pass
    class ListAliasesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_aliases` for valid parameters"""
            pass
    class ListLayerVersionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_layer_versions` for valid parameters"""
            pass
    class ListLayersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_layers` for valid parameters"""
            pass
    class ListVersionsByFunctionPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_versions_by_function` for valid parameters"""
            pass
    class ListFunctionEventInvokeConfigsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_function_event_invoke_configs` for valid parameters"""
            pass
    class ListProvisionedConcurrencyConfigsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_provisioned_concurrency_configs` for valid parameters"""
            pass
    class ListCodeSigningConfigsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_code_signing_configs` for valid parameters"""
            pass
    class ListFunctionsByCodeSigningConfigPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_functions_by_code_signing_config` for valid parameters"""
            pass


    class AddLayerVersionPermissionRequest(Mapping):
        pass
    
    class AddLayerVersionPermissionResponse(Mapping):
        pass
    
    class LayerVersionNumber(object):
        pass
    
    class AddPermissionRequest(Mapping):
        pass
    
    class AddPermissionResponse(Mapping):
        pass
    
    class CreateAliasRequest(Mapping):
        pass
    
    class AliasConfiguration(Mapping):
        pass
    
    class AliasRoutingConfiguration(Mapping):
        pass
    
    class CreateCodeSigningConfigRequest(Mapping):
        pass
    
    class CreateCodeSigningConfigResponse(Mapping):
        pass
    
    class AllowedPublishers(Mapping):
        pass
    
    class CodeSigningPolicies(Mapping):
        pass
    
    class CreateEventSourceMappingRequest(Mapping):
        pass
    
    class EventSourceMappingConfiguration(Mapping):
        pass
    
    class Enabled(object):
        pass
    
    class Date(object):
        pass
    
    class DestinationConfig(Mapping):
        pass
    
    class BisectBatchOnFunctionError(object):
        pass
    
    class Topic(object):
        pass
    
    class Queue(object):
        pass
    
    class SourceAccessConfiguration(Mapping):
        pass
    
    class SelfManagedEventSource(Mapping):
        pass
    
    class FunctionResponseType(object):
        pass
    
    class CreateFunctionRequest(Mapping):
        pass
    
    class FunctionConfiguration(Mapping):
        pass
    
    class FunctionCode(Mapping):
        pass
    
    class Boolean(object):
        pass
    
    class VpcConfig(Mapping):
        pass
    
    class DeadLetterConfig(Mapping):
        pass
    
    class Environment(Mapping):
        pass
    
    class TracingConfig(Mapping):
        pass
    
    class Tags(object):
        pass
    
    class LayerVersionArn(object):
        pass
    
    class FileSystemConfig(Mapping):
        pass
    
    class ImageConfig(Mapping):
        pass
    
    class DeleteAliasRequest(Mapping):
        pass
    
    class DeleteCodeSigningConfigRequest(Mapping):
        pass
    
    class DeleteCodeSigningConfigResponse(Mapping):
        pass
    
    class DeleteEventSourceMappingRequest(Mapping):
        pass
    
    class DeleteFunctionRequest(Mapping):
        pass
    
    class DeleteFunctionCodeSigningConfigRequest(Mapping):
        pass
    
    class DeleteFunctionConcurrencyRequest(Mapping):
        pass
    
    class DeleteFunctionEventInvokeConfigRequest(Mapping):
        pass
    
    class DeleteLayerVersionRequest(Mapping):
        pass
    
    class DeleteProvisionedConcurrencyConfigRequest(Mapping):
        pass
    
    class GetAccountSettingsRequest(Mapping):
        pass
    
    class GetAccountSettingsResponse(Mapping):
        pass
    
    class GetAliasRequest(Mapping):
        pass
    
    class GetCodeSigningConfigRequest(Mapping):
        pass
    
    class GetCodeSigningConfigResponse(Mapping):
        pass
    
    class GetEventSourceMappingRequest(Mapping):
        pass
    
    class GetFunctionRequest(Mapping):
        pass
    
    class GetFunctionResponse(Mapping):
        pass
    
    class GetFunctionCodeSigningConfigRequest(Mapping):
        pass
    
    class GetFunctionCodeSigningConfigResponse(Mapping):
        pass
    
    class GetFunctionConcurrencyRequest(Mapping):
        pass
    
    class GetFunctionConcurrencyResponse(Mapping):
        pass
    
    class GetFunctionConfigurationRequest(Mapping):
        pass
    
    class GetFunctionEventInvokeConfigRequest(Mapping):
        pass
    
    class FunctionEventInvokeConfig(Mapping):
        pass
    
    class GetLayerVersionRequest(Mapping):
        pass
    
    class GetLayerVersionResponse(Mapping):
        pass
    
    class GetLayerVersionByArnRequest(Mapping):
        pass
    
    class GetLayerVersionPolicyRequest(Mapping):
        pass
    
    class GetLayerVersionPolicyResponse(Mapping):
        pass
    
    class GetPolicyRequest(Mapping):
        pass
    
    class GetPolicyResponse(Mapping):
        pass
    
    class GetProvisionedConcurrencyConfigRequest(Mapping):
        pass
    
    class GetProvisionedConcurrencyConfigResponse(Mapping):
        pass
    
    class InvocationRequest(Mapping):
        pass
    
    class InvocationResponse(Mapping):
        pass
    
    class Blob(object):
        pass
    
    class InvokeAsyncRequest(Mapping):
        pass
    
    class InvokeAsyncResponse(Mapping):
        pass
    
    class BlobStream(object):
        pass
    
    class ListAliasesRequest(Mapping):
        pass
    
    class ListAliasesResponse(Mapping):
        pass
    
    class ListCodeSigningConfigsRequest(Mapping):
        pass
    
    class ListCodeSigningConfigsResponse(Mapping):
        pass
    
    class ListEventSourceMappingsRequest(Mapping):
        pass
    
    class ListEventSourceMappingsResponse(Mapping):
        pass
    
    class ListFunctionEventInvokeConfigsRequest(Mapping):
        pass
    
    class ListFunctionEventInvokeConfigsResponse(Mapping):
        pass
    
    class ListFunctionsRequest(Mapping):
        pass
    
    class ListFunctionsResponse(Mapping):
        pass
    
    class ListFunctionsByCodeSigningConfigRequest(Mapping):
        pass
    
    class ListFunctionsByCodeSigningConfigResponse(Mapping):
        pass
    
    class ListLayerVersionsRequest(Mapping):
        pass
    
    class ListLayerVersionsResponse(Mapping):
        pass
    
    class ListLayersRequest(Mapping):
        pass
    
    class ListLayersResponse(Mapping):
        pass
    
    class ListProvisionedConcurrencyConfigsRequest(Mapping):
        pass
    
    class ListProvisionedConcurrencyConfigsResponse(Mapping):
        pass
    
    class ListTagsRequest(Mapping):
        pass
    
    class ListTagsResponse(Mapping):
        pass
    
    class ListVersionsByFunctionRequest(Mapping):
        pass
    
    class ListVersionsByFunctionResponse(Mapping):
        pass
    
    class PublishLayerVersionRequest(Mapping):
        pass
    
    class PublishLayerVersionResponse(Mapping):
        pass
    
    class LayerVersionContentInput(Mapping):
        pass
    
    class Runtime(object):
        pass
    
    class PublishVersionRequest(Mapping):
        pass
    
    class PutFunctionCodeSigningConfigRequest(Mapping):
        pass
    
    class PutFunctionCodeSigningConfigResponse(Mapping):
        pass
    
    class PutFunctionConcurrencyRequest(Mapping):
        pass
    
    class Concurrency(Mapping):
        pass
    
    class PutFunctionEventInvokeConfigRequest(Mapping):
        pass
    
    class PutProvisionedConcurrencyConfigRequest(Mapping):
        pass
    
    class PutProvisionedConcurrencyConfigResponse(Mapping):
        pass
    
    class RemoveLayerVersionPermissionRequest(Mapping):
        pass
    
    class RemovePermissionRequest(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateAliasRequest(Mapping):
        pass
    
    class UpdateCodeSigningConfigRequest(Mapping):
        pass
    
    class UpdateCodeSigningConfigResponse(Mapping):
        pass
    
    class UpdateEventSourceMappingRequest(Mapping):
        pass
    
    class UpdateFunctionCodeRequest(Mapping):
        pass
    
    class UpdateFunctionConfigurationRequest(Mapping):
        pass
    
    class UpdateFunctionEventInvokeConfigRequest(Mapping):
        pass
    
    def add_layer_version_permission(self, Principal: str, Action: str, StatementId: str, VersionNumber: LayerVersionNumber, LayerName: str, OrganizationId: str=None, RevisionId: str=None) -> AddLayerVersionPermissionResponse:
        r"""Adds permissions to the resource-based policy of a version of an <a href="https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html">Lambda layer</a>. Use this action to grant layer usage permission to other accounts. You can grant permission to a single account, all accounts in an organization, or all Amazon Web Services accounts.  To revoke permission, call <a>RemoveLayerVersionPermission</a> with the statement ID that you specified when you added it.

        :param self:
        :param RevisionId:  Only update the policy if the revision ID matches the ID specified. Use this option to avoid modifying a policy that has changed since you last read it.<br/>OrganizationId:  With the principal set to <code>*</code>, grant permission to all accounts in the specified organization.<br/>Principal:  An account ID, or <code>*</code> to grant layer usage permission to all accounts in an organization, or all Amazon Web Services accounts (if <code>organizationId</code> is not specified). For the last case, make sure that you really do want all Amazon Web Services accounts to have usage permission to this layer. <br/>Action:  The API action that grants access to the layer. For example, <code>lambda:GetLayerVersion</code>.<br/>StatementId:  An identifier that distinguishes the policy from others on the same layer version.<br/>VersionNumber:  The version number.<br/>LayerName:  The name or Amazon Resource Name (ARN) of the layer.<br/>
        :return: RevisionId:  A unique identifier for the current revision of the policy.<br/>Statement:  The permission statement.<br/>        """
        pass

    def add_permission(self, Principal: str, Action: str, StatementId: str, FunctionName: str, SourceArn: str=None, SourceAccount: str=None, EventSourceToken: str=None, Qualifier: str=None, RevisionId: str=None) -> AddPermissionResponse:
        r"""Grants an Amazon Web Services service or another account permission to use a function. You can apply the policy at the function level, or specify a qualifier to restrict access to a single version or alias. If you use a qualifier, the invoker must use the full Amazon Resource Name (ARN) of that version or alias to invoke the function. To grant permission to another account, specify the account ID as the <code>Principal</code>. For Amazon Web Services services, the principal is a domain-style identifier defined by the service, like <code>s3.amazonaws.com</code> or <code>sns.amazonaws.com</code>. For Amazon Web Services services, you can also specify the ARN of the associated resource as the <code>SourceArn</code>. If you grant permission to a service principal without specifying the source, other accounts could potentially configure resources in their account to invoke your Lambda function. This action adds a statement to a resource-based permissions policy for the function. For more information about function policies, see <a href="https://docs.aws.amazon.com/lambda/latest/dg/access-control-resource-based.html">Lambda Function Policies</a>. 

        :param self:
        :param RevisionId:  Only update the policy if the revision ID matches the ID that's specified. Use this option to avoid modifying a policy that has changed since you last read it.<br/>Qualifier:  Specify a version or alias to add permissions to a published version of the function.<br/>EventSourceToken:  For Alexa Smart Home functions, a token that must be supplied by the invoker.<br/>SourceAccount:  For Amazon S3, the ID of the account that owns the resource. Use this together with <code>SourceArn</code> to ensure that the resource is owned by the specified account. It is possible for an Amazon S3 bucket to be deleted by its owner and recreated by another account.<br/>SourceArn:  For Amazon Web Services services, the ARN of the Amazon Web Services resource that invokes the function. For example, an Amazon S3 bucket or Amazon SNS topic.<br/>Principal:  The Amazon Web Services service or account that invokes the function. If you specify a service, use <code>SourceArn</code> or <code>SourceAccount</code> to limit who can invoke the function through that service.<br/>Action:  The action that the principal can use on the function. For example, <code>lambda:InvokeFunction</code> or <code>lambda:GetFunction</code>.<br/>StatementId:  A statement identifier that differentiates the statement from others in the same policy.<br/>FunctionName:  The name of the Lambda function, version, or alias. <p class="title"> <b>Name formats</b>  <ul> <li>  <b>Function name</b> - <code>my-function</code> (name-only), <code>my-function:v1</code> (with alias). </li> <li>  <b>Function ARN</b> - <code>arn:aws:lambda:us-west-2:123456789012:function:my-function</code>. </li> <li>  <b>Partial ARN</b> - <code>123456789012:function:my-function</code>. </li> </ul> You can append a version number or alias to any of the formats. The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.<br/>
        :return: Statement:  The permission statement that's added to the function policy.<br/>        """
        pass

    def create_alias(self, FunctionVersion: str, Name: str, FunctionName: str, Description: str=None, RoutingConfig: AliasRoutingConfiguration=None) -> AliasConfiguration:
        r"""Creates an <a href="https://docs.aws.amazon.com/lambda/latest/dg/versioning-aliases.html">alias</a> for a Lambda function version. Use aliases to provide clients with a function identifier that you can update to invoke a different version. You can also map an alias to split invocation requests between two versions. Use the <code>RoutingConfig</code> parameter to specify a second version and the percentage of invocation requests that it receives.

        :param self:
        :param RoutingConfig:  The <a href="https://docs.aws.amazon.com/lambda/latest/dg/configuration-aliases.html#configuring-alias-routing">routing configuration</a> of the alias.:<br/>Description:  A description of the alias.<br/>FunctionVersion:  The function version that the alias invokes.<br/>Name:  The name of the alias.<br/>FunctionName:  The name of the Lambda function. <p class="title"> <b>Name formats</b>  <ul> <li>  <b>Function name</b> - <code>MyFunction</code>. </li> <li>  <b>Function ARN</b> - <code>arn:aws:lambda:us-west-2:123456789012:function:MyFunction</code>. </li> <li>  <b>Partial ARN</b> - <code>123456789012:function:MyFunction</code>. </li> </ul> The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdditionalVersionWeights</i> The second version, and the percentage of traffic that's routed to it.<br/>
        :return: RevisionId:  A unique identifier that changes when you update the alias.<br/>RoutingConfig:  The <a href="https://docs.aws.amazon.com/lambda/latest/dg/lambda-traffic-shifting-using-aliases.html">routing configuration</a> of the alias.:<br/>Description:  A description of the alias.<br/>FunctionVersion:  The function version that the alias invokes.<br/>Name:  The name of the alias.<br/>AliasArn:  The Amazon Resource Name (ARN) of the alias.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdditionalVersionWeights</i> The second version, and the percentage of traffic that's routed to it.<br/>        """
        pass

    def create_code_signing_config(self, AllowedPublishers: AllowedPublishers, Description: str=None, CodeSigningPolicies: CodeSigningPolicies=None) -> CreateCodeSigningConfigResponse:
        r"""Creates a code signing configuration. A <a href="https://docs.aws.amazon.com/lambda/latest/dg/configuration-trustedcode.html">code signing configuration</a> defines a list of allowed signing profiles and defines the code-signing validation policy (action to be taken if deployment validation checks fail). 

        :param self:
        :param CodeSigningPolicies:  The code signing policies define the actions to take if the validation checks fail. :<br/>AllowedPublishers:  Signing profiles for this code signing configuration.:<br/>Description:  Descriptive name for this code signing configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SigningProfileVersionArns</i> The Amazon Resource Name (ARN) for each of the signing profiles. A signing profile defines a trusted user who can sign a code package. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UntrustedArtifactOnDeployment</i> Code signing configuration policy for deployment validation failure. If you set the policy to <code>Enforce</code>, Lambda blocks the deployment request if signature validation checks fail. If you set the policy to <code>Warn</code>, Lambda allows the deployment and creates a CloudWatch log.  Default value: <code>Warn</code> <br/>
        :return: CodeSigningConfig:  The code signing configuration.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModified</i> The date and time that the Code signing configuration was last modified, in ISO-8601 format (YYYY-MM-DDThh:mm:ss.sTZD). <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CodeSigningPolicies</i> The code signing policy controls the validation failure action for signature mismatch or expiry.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CodeSigningPolicies</b>: The code signing policy controls the validation failure action for signature mismatch or expiry.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowedPublishers</i> List of allowed publishers.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AllowedPublishers</b>: List of allowed publishers.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> Code signing configuration description.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CodeSigningConfigArn</i> The Amazon Resource Name (ARN) of the Code signing configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CodeSigningConfigId</i> Unique identifer for the Code signing configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SigningProfileVersionArns</i> The Amazon Resource Name (ARN) for each of the signing profiles. A signing profile defines a trusted user who can sign a code package. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UntrustedArtifactOnDeployment</i> Code signing configuration policy for deployment validation failure. If you set the policy to <code>Enforce</code>, Lambda blocks the deployment request if signature validation checks fail. If you set the policy to <code>Warn</code>, Lambda allows the deployment and creates a CloudWatch log.  Default value: <code>Warn</code> <br/>        """
        pass

    def create_event_source_mapping(self, FunctionName: str, EventSourceArn: str=None, Enabled: Enabled=None, BatchSize: int=None, MaximumBatchingWindowInSeconds: int=None, ParallelizationFactor: int=None, StartingPosition: str=None, StartingPositionTimestamp: Date=None, DestinationConfig: DestinationConfig=None, MaximumRecordAgeInSeconds: int=None, BisectBatchOnFunctionError: BisectBatchOnFunctionError=None, MaximumRetryAttempts: int=None, TumblingWindowInSeconds: int=None, Topics: List[Topic]=None, Queues: List[Queue]=None, SourceAccessConfigurations: List[SourceAccessConfiguration]=None, SelfManagedEventSource: SelfManagedEventSource=None, FunctionResponseTypes: List[FunctionResponseType]=None) -> EventSourceMappingConfiguration:
        r"""Creates a mapping between an event source and an Lambda function. Lambda reads items from the event source and triggers the function. For details about each event source type, see the following topics. In particular, each of the topics describes the required and optional parameters for the specific event source.  <ul> <li>  <a href="https://docs.aws.amazon.com/lambda/latest/dg/with-ddb.html#services-dynamodb-eventsourcemapping"> Configuring a Dynamo DB stream as an event source</a>  </li> <li>  <a href="https://docs.aws.amazon.com/lambda/latest/dg/with-kinesis.html#services-kinesis-eventsourcemapping"> Configuring a Kinesis stream as an event source</a>  </li> <li>  <a href="https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html#events-sqs-eventsource"> Configuring an SQS queue as an event source</a>  </li> <li>  <a href="https://docs.aws.amazon.com/lambda/latest/dg/with-mq.html#services-mq-eventsourcemapping"> Configuring an MQ broker as an event source</a>  </li> <li>  <a href="https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html"> Configuring MSK as an event source</a>  </li> <li>  <a href="https://docs.aws.amazon.com/lambda/latest/dg/kafka-smaa.html"> Configuring Self-Managed Apache Kafka as an event source</a>  </li> </ul> The following error handling options are only available for stream sources (DynamoDB and Kinesis): <ul> <li>  <code>BisectBatchOnFunctionError</code> - If the function returns an error, split the batch in two and retry. </li> <li>  <code>DestinationConfig</code> - Send discarded records to an Amazon SQS queue or Amazon SNS topic. </li> <li>  <code>MaximumRecordAgeInSeconds</code> - Discard records older than the specified age. The default value is infinite (-1). When set to infinite (-1), failed records are retried until the record expires </li> <li>  <code>MaximumRetryAttempts</code> - Discard records after the specified number of retries. The default value is infinite (-1). When set to infinite (-1), failed records are retried until the record expires. </li> <li>  <code>ParallelizationFactor</code> - Process multiple batches from each shard concurrently. </li> </ul>

        :param self:
        :param FunctionResponseTypes:  (Streams only) A list of current response type enums applied to the event source mapping.<br/>SelfManagedEventSource:  The Self-Managed Apache Kafka cluster to send records.:<br/>SourceAccessConfigurations:  An array of the authentication protocol, or the VPC components to secure your event source.<br/>Queues:   (MQ) The name of the Amazon MQ broker destination queue to consume. <br/>Topics:  The name of the Kafka topic.<br/>TumblingWindowInSeconds:  (Streams only) The duration in seconds of a processing window. The range is between 1 second up to 900 seconds.<br/>MaximumRetryAttempts:  (Streams only) Discard records after the specified number of retries. The default value is infinite (-1). When set to infinite (-1), failed records will be retried until the record expires.<br/>BisectBatchOnFunctionError:  (Streams only) If the function returns an error, split the batch in two and retry.<br/>MaximumRecordAgeInSeconds:  (Streams only) Discard records older than the specified age. The default value is infinite (-1).<br/>DestinationConfig:  (Streams only) An Amazon SQS queue or Amazon SNS topic destination for discarded records.:<br/>StartingPositionTimestamp:  With <code>StartingPosition</code> set to <code>AT_TIMESTAMP</code>, the time from which to start reading.<br/>StartingPosition:  The position in a stream from which to start reading. Required for Amazon Kinesis, Amazon DynamoDB, and Amazon MSK Streams sources. <code>AT_TIMESTAMP</code> is only supported for Amazon Kinesis streams.<br/>ParallelizationFactor:  (Streams only) The number of batches to process from each shard concurrently.<br/>MaximumBatchingWindowInSeconds:  (Streams and SQS standard queues) The maximum amount of time to gather records before invoking the function, in seconds.<br/>BatchSize:  The maximum number of items to retrieve in a single batch. <ul> <li>  <b>Amazon Kinesis</b> - Default 100. Max 10,000. </li> <li>  <b>Amazon DynamoDB Streams</b> - Default 100. Max 1,000. </li> <li>  <b>Amazon Simple Queue Service</b> - Default 10. For standard queues the max is 10,000. For FIFO queues the max is 10. </li> <li>  <b>Amazon Managed Streaming for Apache Kafka</b> - Default 100. Max 10,000. </li> <li>  <b>Self-Managed Apache Kafka</b> - Default 100. Max 10,000. </li> </ul><br/>Enabled:  If true, the event source mapping is active. Set to false to pause polling and invocation.<br/>FunctionName:  The name of the Lambda function. <p class="title"> <b>Name formats</b>  <ul> <li>  <b>Function name</b> - <code>MyFunction</code>. </li> <li>  <b>Function ARN</b> - <code>arn:aws:lambda:us-west-2:123456789012:function:MyFunction</code>. </li> <li>  <b>Version or Alias ARN</b> - <code>arn:aws:lambda:us-west-2:123456789012:function:MyFunction:PROD</code>. </li> <li>  <b>Partial ARN</b> - <code>123456789012:function:MyFunction</code>. </li> </ul> The length constraint applies only to the full ARN. If you specify only the function name, it's limited to 64 characters in length.<br/>EventSourceArn:  The Amazon Resource Name (ARN) of the event source. <ul> <li>  <b>Amazon Kinesis</b> - The ARN of the data stream or a stream consumer. </li> <li>  <b>Amazon DynamoDB Streams</b> - The ARN of the stream. </li> <li>  <b>Amazon Simple Queue Service</b> - The ARN of the queue. </li> <li>  <b>Amazon Managed Streaming for Apache Kafka</b> - The ARN of the cluster. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OnFailure</i> The destination configuration for failed invocations.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>OnFailure</b>: The destination configuration for failed invocations.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OnSuccess</i> The destination configuration for successful invocations.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>OnSuccess</b>: The destination configuration for successful invocations.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Destination</i> The Amazon Resource Name (ARN) of the destination resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Destination</i> The Amazon Resource Name (ARN) of the destination resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoints</i> The list of bootstrap servers for your Kafka brokers in the following format: <code>"KAFKA_BOOTSTRAP_SERVERS": ["abc.xyz.com:xxxx","abc2.xyz.com:xxxx"]</code>.<br/>
        :return: FunctionResponseTypes:  (Streams only) A list of current response type enums applied to the event source mapping.<br/>TumblingWindowInSeconds:  (Streams only) The duration in seconds of a processing window. The range is between 1 second up to 900 seconds.<br/>MaximumRetryAttempts:  (Streams only) Discard records after the specified number of retries. The default value is -1, which sets the maximum number of retries to infinite. When MaximumRetryAttempts is infinite, Lambda retries failed records until the record expires in the event source.<br/>BisectBatchOnFunctionError:  (Streams only) If the function returns an error, split the batch in two and retry. The default value is false.<br/>MaximumRecordAgeInSeconds:  (Streams only) Discard records older than the specified age. The default value is -1, which sets the maximum age to infinite. When the value is set to infinite, Lambda never discards old records. <br/>SelfManagedEventSource:  The Self-Managed Apache Kafka cluster for your event source.:<br/>SourceAccessConfigurations:  An array of the authentication protocol, or the VPC components to secure your event source.<br/>Queues:   (MQ) The name of the Amazon MQ broker destination queue to consume. <br/>Topics:  The name of the Kafka topic.<br/>DestinationConfig:  (Streams only) An Amazon SQS queue or Amazon SNS topic destination for discarded records.:<br/>StateTransitionReason:  Indicates whether the last change to the event source mapping was made by a user, or by the Lambda service.<br/>State:  The state of the event source mapping. It can be one of the following: <code>Creating</code>, <code>Enabling</code>, <code>Enabled</code>, <code>Disabling</code>, <code>Disabled</code>, <code>Updating</code>, or <code>Deleting</code>.<br/>LastProcessingResult:  The result of the last Lambda invocation of your Lambda function.<br/>LastModified:  The date that the event source mapping was last updated, or its state changed.<br/>FunctionArn:  The ARN of the Lambda function.<br/>EventSourceArn:  The Amazon Resource Name (ARN) of the event source.<br/>ParallelizationFactor:  (Streams only) The number of batches to process from each shard concurrently. The default value is 1.<br/>MaximumBatchingWindowInSeconds:  (Streams and SQS standard queues) The maximum amount of time to gather records before invoking the function, in seconds. The default value is zero.<br/>BatchSize:  The maximum number of items to retrieve in a single batch.<br/>StartingPositionTimestamp:  With <code>StartingPosition</code> set to <code>AT_TIMESTAMP</code>, the time from which to start reading.<br/>StartingPosition:  The position in a stream from which to start reading. Required for Amazon Kinesis, Amazon DynamoDB, and Amazon MSK Streams sources. <code>AT_TIMESTAMP</code> is only supported for Amazon Kinesis streams.<br/>UUID:  The identifier of the event source mapping.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OnFailure</i> The destination configuration for failed invocations.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>OnFailure</b>: The destination configuration for failed invocations.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OnSuccess</i> The destination configuration for successful invocations.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>OnSuccess</b>: The destination configuration for successful invocations.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Destination</i> The Amazon Resource Name (ARN) of the destination resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Destination</i> The Amazon Resource Name (ARN) of the destination resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoints</i> The list of bootstrap servers for your Kafka brokers in the following format: <code>"KAFKA_BOOTSTRAP_SERVERS": ["abc.xyz.com:xxxx","abc2.xyz.com:xxxx"]</code>.<br/>        """
        pass

    def create_function(self, Code: FunctionCode, Role: str, FunctionName: str, Runtime: str=None, Handler: str=None, Description: str=None, Timeout: int=None, MemorySize: int=None, Publish: Boolean=None, VpcConfig: VpcConfig=None, PackageType: str=None, DeadLetterConfig: DeadLetterConfig=None, Environment: Environment=None, KMSKeyArn: str=None, TracingConfig: TracingConfig=None, Tags: Tags=None, Layers: List[LayerVersionArn]=None, FileSystemConfigs: List[FileSystemConfig]=None, ImageConfig: ImageConfig=None, CodeSigningConfigArn: str=None) -> FunctionConfiguration:
        r"""Creates a Lambda function. To create a function, you need a <a href="https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html">deployment package</a> and an <a href="https://docs.aws.amazon.com/lambda/latest/dg/intro-permission-model.html#lambda-intro-execution-role">execution role</a>. The deployment package is a .zip file archive or container image that contains your function code. The execution role grants the function permission to use Amazon Web Services services, such as Amazon CloudWatch Logs for log streaming and X-Ray for request tracing. You set the package type to <code>Image</code> if the deployment package is a <a href="https://docs.aws.amazon.com/lambda/latest/dg/lambda-images.html">container image</a>. For a container image, the code property must include the URI of a container image in the Amazon ECR registry. You do not need to specify the handler and runtime properties.  You set the package type to <code>Zip</code> if the deployment package is a <a href="https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html#gettingstarted-package-zip">.zip file archive</a>. For a .zip file archive, the code property specifies the location of the .zip file. You must also specify the handler and runtime properties. When you create a function, Lambda provisions an instance of the function and its supporting resources. If your function connects to a VPC, this process can take a minute or so. During this time, you can't invoke or modify the function. The <code>State</code>, <code>StateReason</code>, and <code>StateReasonCode</code> fields in the response from <a>GetFunctionConfiguration</a> indicate when the function is ready to invoke. For more information, see <a href="https://docs.aws.amazon.com/lambda/latest/dg/functions-states.html">Function States</a>. A function has an unpublished version, and can have published versions and aliases. The unpublished version changes when you update your function's code and configuration. A published version is a snapshot of your function code and configuration that can't be changed. An alias is a named resource that maps to a version, and can be changed to map to a different version. Use the <code>Publish</code> parameter to create version <code>1</code> of your function from its initial configuration. The other parameters let you configure version-specific and function-level settings. You can modify version-specific settings later with <a>UpdateFunctionConfiguration</a>. Function-level settings apply to both the unpublished and published versions of the function, and include tags (<a>TagResource</a>) and per-function concurrency limits (<a>PutFunctionConcurrency</a>). You can use code signing if your deployment package is a .zip file archive. To enable code signing for this function, specify the ARN of a code-signing configuration. When a user attempts to deploy a code package with <a>UpdateFunctionCode</a>, Lambda checks that the code package has a valid signature from a trusted publisher. The code-signing configuration includes set set of signing profiles, which define the trusted publishers for this function. If another account or an Amazon Web Services service invokes your function, use <a>AddPermission</a> to grant permission by creating a resource-based IAM policy. You can grant permissions at the function level, on a version, or on an alias. To invoke your function directly, use <a>Invoke</a>. To invoke your function in response to events in other Amazon Web Services services, create an event source mapping (<a>CreateEventSourceMapping</a>), or configure a function trigger in the other service. For more information, see <a href="https://docs.aws.amazon.com/lambda/latest/dg/lambda-invocation.html">Invoking Functions</a>.

        :param self:
        :param CodeSigningConfigArn:  To enable code signing for this function, specify the ARN of a code-signing configuration. A code-signing configuration includes a set of signing profiles, which define the trusted publishers for this function.<br/>ImageConfig:  Container image <a href="https://docs.aws.amazon.com/lambda/latest/dg/configuration-images.html#configuration-images-settings">configuration values</a> that override the values in the container image Dockerfile.:<br/>FileSystemConfigs:  Connection settings for an Amazon EFS file system.<br/>Layers:  A list of <a href="https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html">function layers</a> to add to the function's execution environment. Specify each layer by its ARN, including the version.<br/>Tags:  A list of <a href="https://docs.aws.amazon.com/lambda/latest/dg/tagging.html">tags</a> to apply to the function.<br/>TracingConfig:  Set <code>Mode</code> to <code>Active</code> to sample and trace a subset of incoming requests with <a href="https://docs.aws.amazon.com/lambda/latest/dg/services-xray.html">X-Ray</a>.:<br/>KMSKeyArn:  The ARN of the Amazon Web Services Key Management Service (KMS) key that's used to encrypt your function's environment variables. If it's not provided, Lambda uses a default service key.<br/>Environment:  Environment variables that are accessible from function code during execution.:<br/>DeadLetterConfig:  A dead letter queue configuration that specifies the queue or topic where Lambda sends asynchronous events when they fail processing. For more information, see <a href="https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#dlq">Dead Letter Queues</a>.:<br/>PackageType:  The type of deployment package. Set to <code>Image</code> for container image and set <code>Zip</code> for ZIP archive.<br/>VpcConfig:  For network connectivity to Amazon Web Services resources in a VPC, specify a list of security groups and subnets in the VPC. When you connect a function to a VPC, it can only access resources and the internet through that VPC. For more information, see <a href="https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc.html">VPC Settings</a>.:<br/>Publish:  Set to true to publish the first version of the function during creation.<br/>MemorySize:  The amount of <a href="https://docs.aws.amazon.com/lambda/latest/dg/configuration-memory.html">memory available to the function</a> at runtime. Increasing the function memory also increases its CPU allocation. The default value is 128 MB. The value can be any multiple of 1 MB.<br/>Timeout:  The amount of time that Lambda allows a function to run before stopping it. The default is 3 seconds. The maximum allowed value is 900 seconds. For additional information, see <a href="https://docs.aws.amazon.com/lambda/latest/dg/runtimes-context.html">Lambda execution environment</a>.<br/>Description:  A description of the function.<br/>Code:  The code for the function.:<br/>Handler:  The name of the method within your code that Lambda calls to execute your function. The format includes the file name. It can also include namespaces and other qualifiers, depending on the runtime. For more information, see <a href="https://docs.aws.amazon.com/lambda/latest/dg/programming-model-v2.html">Programming Model</a>.<br/>Role:  The Amazon Resource Name (ARN) of the function's execution role.<br/>Runtime:  The identifier of the function's <a href="https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html">runtime</a>.<br/>FunctionName:  The name of the Lambda function. <p class="title"> <b>Name formats</b>  <ul> <li>  <b>Function name</b> - <code>my-function</code>. </li> <li>  <b>Function ARN</b> - <code>arn:aws:lambda:us-west-2:123456789012:function:my-function</code>. </li> <li>  <b>Partial ARN</b> - <code>123456789012:function:my-function</code>. </li> </ul> The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImageUri</i> URI of a <a href="https://docs.aws.amazon.com/lambda/latest/dg/lambda-images.html">container image</a> in the Amazon ECR registry.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3ObjectVersion</i> For versioned objects, the version of the deployment package object to use.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Key</i> The Amazon S3 key of the deployment package.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Bucket</i> An Amazon S3 bucket in the same Amazon Web Services Region as your function. The bucket can be in a different Amazon Web Services account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ZipFile</i> The base64-encoded contents of the deployment package. Amazon Web Services SDK and Amazon Web Services CLI clients handle the encoding for you.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> A list of VPC security groups IDs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetIds</i> A list of VPC subnet IDs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetArn</i> The Amazon Resource Name (ARN) of an Amazon SQS queue or Amazon SNS topic.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Variables</i> Environment variable key-value pairs. For more information, see <a href="https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html">Using Lambda environment variables</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Mode</i> The tracing mode.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WorkingDirectory</i> Specifies the working directory.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Command</i> Specifies parameters that you want to pass in with ENTRYPOINT. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EntryPoint</i> Specifies the entry point to their application, which is typically the location of the runtime executable.<br/>
        :return: SigningJobArn:  The ARN of the signing job.<br/>SigningProfileVersionArn:  The ARN of the signing profile version.<br/>ImageConfigResponse:  The function's image configuration values.:<br/>PackageType:  The type of deployment package. Set to <code>Image</code> for container image and set <code>Zip</code> for .zip file archive.<br/>FileSystemConfigs:  Connection settings for an <a href="https://docs.aws.amazon.com/lambda/latest/dg/configuration-filesystem.html">Amazon EFS file system</a>.<br/>LastUpdateStatusReasonCode:  The reason code for the last update that was performed on the function.<br/>LastUpdateStatusReason:  The reason for the last update that was performed on the function.<br/>LastUpdateStatus:  The status of the last update that was performed on the function. This is first set to <code>Successful</code> after function creation completes.<br/>StateReasonCode:  The reason code for the function's current state. When the code is <code>Creating</code>, you can't invoke or modify the function.<br/>StateReason:  The reason for the function's current state.<br/>State:  The current state of the function. When the state is <code>Inactive</code>, you can reactivate the function by invoking it.<br/>Layers:  The function's <a href="https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html"> layers</a>.<br/>RevisionId:  The latest updated revision of the function or alias.<br/>MasterArn:  For Lambda@Edge functions, the ARN of the master function.<br/>TracingConfig:  The function's X-Ray tracing configuration.:<br/>KMSKeyArn:  The KMS key that's used to encrypt the function's environment variables. This key is only returned if you've configured a customer managed CMK.<br/>Environment:  The function's <a href="https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html">environment variables</a>.:<br/>DeadLetterConfig:  The function's dead letter queue.:<br/>VpcConfig:  The function's networking configuration.:<br/>Version:  The version of the Lambda function.<br/>CodeSha256:  The SHA256 hash of the function's deployment package.<br/>LastModified:  The date and time that the function was last updated, in <a href="https://www.w3.org/TR/NOTE-datetime">ISO-8601 format</a> (YYYY-MM-DDThh:mm:ss.sTZD).<br/>MemorySize:  The amount of memory available to the function at runtime. <br/>Timeout:  The amount of time in seconds that Lambda allows a function to run before stopping it.<br/>Description:  The function's description.<br/>CodeSize:  The size of the function's deployment package, in bytes.<br/>Handler:  The function that Lambda calls to begin executing your function.<br/>Role:  The function's execution role.<br/>Runtime:  The runtime environment for the Lambda function.<br/>FunctionArn:  The function's Amazon Resource Name (ARN).<br/>FunctionName:  The name of the function.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The ID of the VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> A list of VPC security groups IDs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetIds</i> A list of VPC subnet IDs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetArn</i> The Amazon Resource Name (ARN) of an Amazon SQS queue or Amazon SNS topic.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Error</i> Error messages for environment variables that couldn't be applied.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Error</b>: Error messages for environment variables that couldn't be applied.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Variables</i> Environment variable key-value pairs.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> The error message.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorCode</i> The error code.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Mode</i> The tracing mode.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Error</i> Error response to GetFunctionConfiguration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Error</b>: Error response to GetFunctionConfiguration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImageConfig</i> Configuration values that override the container image Dockerfile.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ImageConfig</b>: Configuration values that override the container image Dockerfile.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>WorkingDirectory</i> Specifies the working directory.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Command</i> Specifies parameters that you want to pass in with ENTRYPOINT. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EntryPoint</i> Specifies the entry point to their application, which is typically the location of the runtime executable.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> Error message.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorCode</i> Error code.<br/>        """
        pass

    def delete_alias(self, Name: str, FunctionName: str):
        r"""Deletes a Lambda function <a href="https://docs.aws.amazon.com/lambda/latest/dg/versioning-aliases.html">alias</a>.

        :param self:
        :param Name:  The name of the alias.<br/>FunctionName:  The name of the Lambda function. <p class="title"> <b>Name formats</b>  <ul> <li>  <b>Function name</b> - <code>MyFunction</code>. </li> <li>  <b>Function ARN</b> - <code>arn:aws:lambda:us-west-2:123456789012:function:MyFunction</code>. </li> <li>  <b>Partial ARN</b> - <code>123456789012:function:MyFunction</code>. </li> </ul> The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.<br/>
        :return:         """
        pass

    def delete_code_signing_config(self, CodeSigningConfigArn: str) -> DeleteCodeSigningConfigResponse:
        r"""Deletes the code signing configuration. You can delete the code signing configuration only if no function is using it. 

        :param self:
        :param CodeSigningConfigArn:  The The Amazon Resource Name (ARN) of the code signing configuration.<br/>
        :return:         """
        pass

    def delete_event_source_mapping(self, UUID: str) -> EventSourceMappingConfiguration:
        r"""Deletes an <a href="https://docs.aws.amazon.com/lambda/latest/dg/intro-invocation-modes.html">event source mapping</a>. You can get the identifier of a mapping from the output of <a>ListEventSourceMappings</a>. When you delete an event source mapping, it enters a <code>Deleting</code> state and might not be completely deleted for several seconds.

        :param self:
        :param UUID:  The identifier of the event source mapping.<br/>
        :return: FunctionResponseTypes:  (Streams only) A list of current response type enums applied to the event source mapping.<br/>TumblingWindowInSeconds:  (Streams only) The duration in seconds of a processing window. The range is between 1 second up to 900 seconds.<br/>MaximumRetryAttempts:  (Streams only) Discard records after the specified number of retries. The default value is -1, which sets the maximum number of retries to infinite. When MaximumRetryAttempts is infinite, Lambda retries failed records until the record expires in the event source.<br/>BisectBatchOnFunctionError:  (Streams only) If the function returns an error, split the batch in two and retry. The default value is false.<br/>MaximumRecordAgeInSeconds:  (Streams only) Discard records older than the specified age. The default value is -1, which sets the maximum age to infinite. When the value is set to infinite, Lambda never discards old records. <br/>SelfManagedEventSource:  The Self-Managed Apache Kafka cluster for your event source.:<br/>SourceAccessConfigurations:  An array of the authentication protocol, or the VPC components to secure your event source.<br/>Queues:   (MQ) The name of the Amazon MQ broker destination queue to consume. <br/>Topics:  The name of the Kafka topic.<br/>DestinationConfig:  (Streams only) An Amazon SQS queue or Amazon SNS topic destination for discarded records.:<br/>StateTransitionReason:  Indicates whether the last change to the event source mapping was made by a user, or by the Lambda service.<br/>State:  The state of the event source mapping. It can be one of the following: <code>Creating</code>, <code>Enabling</code>, <code>Enabled</code>, <code>Disabling</code>, <code>Disabled</code>, <code>Updating</code>, or <code>Deleting</code>.<br/>LastProcessingResult:  The result of the last Lambda invocation of your Lambda function.<br/>LastModified:  The date that the event source mapping was last updated, or its state changed.<br/>FunctionArn:  The ARN of the Lambda function.<br/>EventSourceArn:  The Amazon Resource Name (ARN) of the event source.<br/>ParallelizationFactor:  (Streams only) The number of batches to process from each shard concurrently. The default value is 1.<br/>MaximumBatchingWindowInSeconds:  (Streams and SQS standard queues) The maximum amount of time to gather records before invoking the function, in seconds. The default value is zero.<br/>BatchSize:  The maximum number of items to retrieve in a single batch.<br/>StartingPositionTimestamp:  With <code>StartingPosition</code> set to <code>AT_TIMESTAMP</code>, the time from which to start reading.<br/>StartingPosition:  The position in a stream from which to start reading. Required for Amazon Kinesis, Amazon DynamoDB, and Amazon MSK Streams sources. <code>AT_TIMESTAMP</code> is only supported for Amazon Kinesis streams.<br/>UUID:  The identifier of the event source mapping.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OnFailure</i> The destination configuration for failed invocations.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>OnFailure</b>: The destination configuration for failed invocations.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OnSuccess</i> The destination configuration for successful invocations.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>OnSuccess</b>: The destination configuration for successful invocations.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Destination</i> The Amazon Resource Name (ARN) of the destination resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Destination</i> The Amazon Resource Name (ARN) of the destination resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoints</i> The list of bootstrap servers for your Kafka brokers in the following format: <code>"KAFKA_BOOTSTRAP_SERVERS": ["abc.xyz.com:xxxx","abc2.xyz.com:xxxx"]</code>.<br/>        """
        pass

    def delete_function(self, FunctionName: str, Qualifier: str=None):
        r"""Deletes a Lambda function. To delete a specific function version, use the <code>Qualifier</code> parameter. Otherwise, all versions and aliases are deleted. To delete Lambda event source mappings that invoke a function, use <a>DeleteEventSourceMapping</a>. For Amazon Web Services services and resources that invoke your function directly, delete the trigger in the service where you originally configured it.

        :param self:
        :param Qualifier:  Specify a version to delete. You can't delete a version that's referenced by an alias.<br/>FunctionName:  The name of the Lambda function or version. <p class="title"> <b>Name formats</b>  <ul> <li>  <b>Function name</b> - <code>my-function</code> (name-only), <code>my-function:1</code> (with version). </li> <li>  <b>Function ARN</b> - <code>arn:aws:lambda:us-west-2:123456789012:function:my-function</code>. </li> <li>  <b>Partial ARN</b> - <code>123456789012:function:my-function</code>. </li> </ul> You can append a version number or alias to any of the formats. The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.<br/>
        :return:         """
        pass

    def delete_function_code_signing_config(self, FunctionName: str):
        r"""Removes the code signing configuration from the function.

        :param self:
        :param FunctionName:  The name of the Lambda function. <p class="title"> <b>Name formats</b>  <ul> <li>  <b>Function name</b> - <code>MyFunction</code>. </li> <li>  <b>Function ARN</b> - <code>arn:aws:lambda:us-west-2:123456789012:function:MyFunction</code>. </li> <li>  <b>Partial ARN</b> - <code>123456789012:function:MyFunction</code>. </li> </ul> The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.<br/>
        :return:         """
        pass

    def delete_function_concurrency(self, FunctionName: str):
        r"""Removes a concurrent execution limit from a function.

        :param self:
        :param FunctionName:  The name of the Lambda function. <p class="title"> <b>Name formats</b>  <ul> <li>  <b>Function name</b> - <code>my-function</code>. </li> <li>  <b>Function ARN</b> - <code>arn:aws:lambda:us-west-2:123456789012:function:my-function</code>. </li> <li>  <b>Partial ARN</b> - <code>123456789012:function:my-function</code>. </li> </ul> The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.<br/>
        :return:         """
        pass

    def delete_function_event_invoke_config(self, FunctionName: str, Qualifier: str=None):
        r"""Deletes the configuration for asynchronous invocation for a function, version, or alias. To configure options for asynchronous invocation, use <a>PutFunctionEventInvokeConfig</a>.

        :param self:
        :param Qualifier:  A version number or alias name.<br/>FunctionName:  The name of the Lambda function, version, or alias. <p class="title"> <b>Name formats</b>  <ul> <li>  <b>Function name</b> - <code>my-function</code> (name-only), <code>my-function:v1</code> (with alias). </li> <li>  <b>Function ARN</b> - <code>arn:aws:lambda:us-west-2:123456789012:function:my-function</code>. </li> <li>  <b>Partial ARN</b> - <code>123456789012:function:my-function</code>. </li> </ul> You can append a version number or alias to any of the formats. The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.<br/>
        :return:         """
        pass

    def delete_layer_version(self, VersionNumber: LayerVersionNumber, LayerName: str):
        r"""Deletes a version of an <a href="https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html">Lambda layer</a>. Deleted versions can no longer be viewed or added to functions. To avoid breaking functions, a copy of the version remains in Lambda until no functions refer to it.

        :param self:
        :param VersionNumber:  The version number.<br/>LayerName:  The name or Amazon Resource Name (ARN) of the layer.<br/>
        :return:         """
        pass

    def delete_provisioned_concurrency_config(self, Qualifier: str, FunctionName: str):
        r"""Deletes the provisioned concurrency configuration for a function.

        :param self:
        :param Qualifier:  The version number or alias name.<br/>FunctionName:  The name of the Lambda function. <p class="title"> <b>Name formats</b>  <ul> <li>  <b>Function name</b> - <code>my-function</code>. </li> <li>  <b>Function ARN</b> - <code>arn:aws:lambda:us-west-2:123456789012:function:my-function</code>. </li> <li>  <b>Partial ARN</b> - <code>123456789012:function:my-function</code>. </li> </ul> The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.<br/>
        :return:         """
        pass

    def get_account_settings(self) -> GetAccountSettingsResponse:
        r"""Retrieves details about your account's <a href="https://docs.aws.amazon.com/lambda/latest/dg/limits.html">limits</a> and usage in an Amazon Web Services Region.

        :param self:
        :param 
        :return: AccountUsage:  The number of functions and amount of storage in use.:<br/>AccountLimit:  Limits that are related to concurrency and code storage.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UnreservedConcurrentExecutions</i> The maximum number of simultaneous function executions, minus the capacity that's reserved for individual functions with <a>PutFunctionConcurrency</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConcurrentExecutions</i> The maximum number of simultaneous function executions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CodeSizeZipped</i> The maximum size of a deployment package when it's uploaded directly to Lambda. Use Amazon S3 for larger files.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CodeSizeUnzipped</i> The maximum size of a function's deployment package and layers when they're extracted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalCodeSize</i> The amount of storage space that you can use for all deployment packages and layer archives.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FunctionCount</i> The number of Lambda functions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalCodeSize</i> The amount of storage space, in bytes, that's being used by deployment packages and layer archives.<br/>        """
        pass

    def get_alias(self, Name: str, FunctionName: str) -> AliasConfiguration:
        r"""Returns details about a Lambda function <a href="https://docs.aws.amazon.com/lambda/latest/dg/versioning-aliases.html">alias</a>.

        :param self:
        :param Name:  The name of the alias.<br/>FunctionName:  The name of the Lambda function. <p class="title"> <b>Name formats</b>  <ul> <li>  <b>Function name</b> - <code>MyFunction</code>. </li> <li>  <b>Function ARN</b> - <code>arn:aws:lambda:us-west-2:123456789012:function:MyFunction</code>. </li> <li>  <b>Partial ARN</b> - <code>123456789012:function:MyFunction</code>. </li> </ul> The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.<br/>
        :return: RevisionId:  A unique identifier that changes when you update the alias.<br/>RoutingConfig:  The <a href="https://docs.aws.amazon.com/lambda/latest/dg/lambda-traffic-shifting-using-aliases.html">routing configuration</a> of the alias.:<br/>Description:  A description of the alias.<br/>FunctionVersion:  The function version that the alias invokes.<br/>Name:  The name of the alias.<br/>AliasArn:  The Amazon Resource Name (ARN) of the alias.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdditionalVersionWeights</i> The second version, and the percentage of traffic that's routed to it.<br/>        """
        pass

    def get_code_signing_config(self, CodeSigningConfigArn: str) -> GetCodeSigningConfigResponse:
        r"""Returns information about the specified code signing configuration.

        :param self:
        :param CodeSigningConfigArn:  The The Amazon Resource Name (ARN) of the code signing configuration. <br/>
        :return: CodeSigningConfig:  The code signing configuration:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModified</i> The date and time that the Code signing configuration was last modified, in ISO-8601 format (YYYY-MM-DDThh:mm:ss.sTZD). <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CodeSigningPolicies</i> The code signing policy controls the validation failure action for signature mismatch or expiry.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CodeSigningPolicies</b>: The code signing policy controls the validation failure action for signature mismatch or expiry.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowedPublishers</i> List of allowed publishers.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AllowedPublishers</b>: List of allowed publishers.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> Code signing configuration description.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CodeSigningConfigArn</i> The Amazon Resource Name (ARN) of the Code signing configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CodeSigningConfigId</i> Unique identifer for the Code signing configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SigningProfileVersionArns</i> The Amazon Resource Name (ARN) for each of the signing profiles. A signing profile defines a trusted user who can sign a code package. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UntrustedArtifactOnDeployment</i> Code signing configuration policy for deployment validation failure. If you set the policy to <code>Enforce</code>, Lambda blocks the deployment request if signature validation checks fail. If you set the policy to <code>Warn</code>, Lambda allows the deployment and creates a CloudWatch log.  Default value: <code>Warn</code> <br/>        """
        pass

    def get_event_source_mapping(self, UUID: str) -> EventSourceMappingConfiguration:
        r"""Returns details about an event source mapping. You can get the identifier of a mapping from the output of <a>ListEventSourceMappings</a>.

        :param self:
        :param UUID:  The identifier of the event source mapping.<br/>
        :return: FunctionResponseTypes:  (Streams only) A list of current response type enums applied to the event source mapping.<br/>TumblingWindowInSeconds:  (Streams only) The duration in seconds of a processing window. The range is between 1 second up to 900 seconds.<br/>MaximumRetryAttempts:  (Streams only) Discard records after the specified number of retries. The default value is -1, which sets the maximum number of retries to infinite. When MaximumRetryAttempts is infinite, Lambda retries failed records until the record expires in the event source.<br/>BisectBatchOnFunctionError:  (Streams only) If the function returns an error, split the batch in two and retry. The default value is false.<br/>MaximumRecordAgeInSeconds:  (Streams only) Discard records older than the specified age. The default value is -1, which sets the maximum age to infinite. When the value is set to infinite, Lambda never discards old records. <br/>SelfManagedEventSource:  The Self-Managed Apache Kafka cluster for your event source.:<br/>SourceAccessConfigurations:  An array of the authentication protocol, or the VPC components to secure your event source.<br/>Queues:   (MQ) The name of the Amazon MQ broker destination queue to consume. <br/>Topics:  The name of the Kafka topic.<br/>DestinationConfig:  (Streams only) An Amazon SQS queue or Amazon SNS topic destination for discarded records.:<br/>StateTransitionReason:  Indicates whether the last change to the event source mapping was made by a user, or by the Lambda service.<br/>State:  The state of the event source mapping. It can be one of the following: <code>Creating</code>, <code>Enabling</code>, <code>Enabled</code>, <code>Disabling</code>, <code>Disabled</code>, <code>Updating</code>, or <code>Deleting</code>.<br/>LastProcessingResult:  The result of the last Lambda invocation of your Lambda function.<br/>LastModified:  The date that the event source mapping was last updated, or its state changed.<br/>FunctionArn:  The ARN of the Lambda function.<br/>EventSourceArn:  The Amazon Resource Name (ARN) of the event source.<br/>ParallelizationFactor:  (Streams only) The number of batches to process from each shard concurrently. The default value is 1.<br/>MaximumBatchingWindowInSeconds:  (Streams and SQS standard queues) The maximum amount of time to gather records before invoking the function, in seconds. The default value is zero.<br/>BatchSize:  The maximum number of items to retrieve in a single batch.<br/>StartingPositionTimestamp:  With <code>StartingPosition</code> set to <code>AT_TIMESTAMP</code>, the time from which to start reading.<br/>StartingPosition:  The position in a stream from which to start reading. Required for Amazon Kinesis, Amazon DynamoDB, and Amazon MSK Streams sources. <code>AT_TIMESTAMP</code> is only supported for Amazon Kinesis streams.<br/>UUID:  The identifier of the event source mapping.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OnFailure</i> The destination configuration for failed invocations.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>OnFailure</b>: The destination configuration for failed invocations.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OnSuccess</i> The destination configuration for successful invocations.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>OnSuccess</b>: The destination configuration for successful invocations.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Destination</i> The Amazon Resource Name (ARN) of the destination resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Destination</i> The Amazon Resource Name (ARN) of the destination resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoints</i> The list of bootstrap servers for your Kafka brokers in the following format: <code>"KAFKA_BOOTSTRAP_SERVERS": ["abc.xyz.com:xxxx","abc2.xyz.com:xxxx"]</code>.<br/>        """
        pass

    def get_function(self, FunctionName: str, Qualifier: str=None) -> GetFunctionResponse:
        r"""Returns information about the function or function version, with a link to download the deployment package that's valid for 10 minutes. If you specify a function version, only details that are specific to that version are returned.

        :param self:
        :param Qualifier:  Specify a version or alias to get details about a published version of the function.<br/>FunctionName:  The name of the Lambda function, version, or alias. <p class="title"> <b>Name formats</b>  <ul> <li>  <b>Function name</b> - <code>my-function</code> (name-only), <code>my-function:v1</code> (with alias). </li> <li>  <b>Function ARN</b> - <code>arn:aws:lambda:us-west-2:123456789012:function:my-function</code>. </li> <li>  <b>Partial ARN</b> - <code>123456789012:function:my-function</code>. </li> </ul> You can append a version number or alias to any of the formats. The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.<br/>
        :return: Concurrency:  The function's <a href="https://docs.aws.amazon.com/lambda/latest/dg/concurrent-executions.html">reserved concurrency</a>.:<br/>Tags:  The function's <a href="https://docs.aws.amazon.com/lambda/latest/dg/tagging.html">tags</a>.<br/>Code:  The deployment package of the function or version.:<br/>Configuration:  The configuration of the function or version.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SigningJobArn</i> The ARN of the signing job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SigningProfileVersionArn</i> The ARN of the signing profile version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImageConfigResponse</i> The function's image configuration values.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ImageConfigResponse</b>: The function's image configuration values.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PackageType</i> The type of deployment package. Set to <code>Image</code> for container image and set <code>Zip</code> for .zip file archive.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FileSystemConfigs</i> Connection settings for an <a href="https://docs.aws.amazon.com/lambda/latest/dg/configuration-filesystem.html">Amazon EFS file system</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdateStatusReasonCode</i> The reason code for the last update that was performed on the function.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdateStatusReason</i> The reason for the last update that was performed on the function.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdateStatus</i> The status of the last update that was performed on the function. This is first set to <code>Successful</code> after function creation completes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StateReasonCode</i> The reason code for the function's current state. When the code is <code>Creating</code>, you can't invoke or modify the function.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StateReason</i> The reason for the function's current state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The current state of the function. When the state is <code>Inactive</code>, you can reactivate the function by invoking it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Layers</i> The function's <a href="https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html"> layers</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RevisionId</i> The latest updated revision of the function or alias.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterArn</i> For Lambda@Edge functions, the ARN of the master function.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TracingConfig</i> The function's X-Ray tracing configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TracingConfig</b>: The function's X-Ray tracing configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KMSKeyArn</i> The KMS key that's used to encrypt the function's environment variables. This key is only returned if you've configured a customer managed CMK.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Environment</i> The function's <a href="https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html">environment variables</a>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Environment</b>: The function's <a href="https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html">environment variables</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeadLetterConfig</i> The function's dead letter queue.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DeadLetterConfig</b>: The function's dead letter queue.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcConfig</i> The function's networking configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>VpcConfig</b>: The function's networking configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The version of the Lambda function.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CodeSha256</i> The SHA256 hash of the function's deployment package.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModified</i> The date and time that the function was last updated, in <a href="https://www.w3.org/TR/NOTE-datetime">ISO-8601 format</a> (YYYY-MM-DDThh:mm:ss.sTZD).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MemorySize</i> The amount of memory available to the function at runtime. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Timeout</i> The amount of time in seconds that Lambda allows a function to run before stopping it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The function's description.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CodeSize</i> The size of the function's deployment package, in bytes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Handler</i> The function that Lambda calls to begin executing your function.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Role</i> The function's execution role.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Runtime</i> The runtime environment for the Lambda function.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FunctionArn</i> The function's Amazon Resource Name (ARN).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FunctionName</i> The name of the function.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The ID of the VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> A list of VPC security groups IDs.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetIds</i> A list of VPC subnet IDs.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetArn</i> The Amazon Resource Name (ARN) of an Amazon SQS queue or Amazon SNS topic.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Variables</i> Environment variable key-value pairs.<br/>Error messages for environment variables that couldn't be applied.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Error</b>: Error messages for environment variables that couldn't be applied.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Mode</i> The tracing mode.<br/>Configuration values that override the container image Dockerfile.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ImageConfig</b>: Configuration values that override the container image Dockerfile.&nbsp;&nbsp;&nbsp;&nbsp; <i>ResolvedImageUri</i> The resolved URI for the image.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImageUri</i> URI of a container image in the Amazon ECR registry.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Location</i> A presigned URL that you can use to download the deployment package.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RepositoryType</i> The service that's hosting the file.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReservedConcurrentExecutions</i> The number of concurrent executions that are reserved for this function. For more information, see <a href="https://docs.aws.amazon.com/lambda/latest/dg/concurrent-executions.html">Managing Concurrency</a>.<br/>        """
        pass

    def get_function_code_signing_config(self, FunctionName: str) -> GetFunctionCodeSigningConfigResponse:
        r"""Returns the code signing configuration for the specified function.

        :param self:
        :param FunctionName:  The name of the Lambda function. <p class="title"> <b>Name formats</b>  <ul> <li>  <b>Function name</b> - <code>MyFunction</code>. </li> <li>  <b>Function ARN</b> - <code>arn:aws:lambda:us-west-2:123456789012:function:MyFunction</code>. </li> <li>  <b>Partial ARN</b> - <code>123456789012:function:MyFunction</code>. </li> </ul> The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.<br/>
        :return: FunctionName:  The name of the Lambda function. <p class="title"> <b>Name formats</b>  <ul> <li>  <b>Function name</b> - <code>MyFunction</code>. </li> <li>  <b>Function ARN</b> - <code>arn:aws:lambda:us-west-2:123456789012:function:MyFunction</code>. </li> <li>  <b>Partial ARN</b> - <code>123456789012:function:MyFunction</code>. </li> </ul> The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.<br/>CodeSigningConfigArn:  The The Amazon Resource Name (ARN) of the code signing configuration.<br/>        """
        pass

    def get_function_concurrency(self, FunctionName: str) -> GetFunctionConcurrencyResponse:
        r"""Returns details about the reserved concurrency configuration for a function. To set a concurrency limit for a function, use <a>PutFunctionConcurrency</a>.

        :param self:
        :param FunctionName:  The name of the Lambda function. <p class="title"> <b>Name formats</b>  <ul> <li>  <b>Function name</b> - <code>my-function</code>. </li> <li>  <b>Function ARN</b> - <code>arn:aws:lambda:us-west-2:123456789012:function:my-function</code>. </li> <li>  <b>Partial ARN</b> - <code>123456789012:function:my-function</code>. </li> </ul> The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.<br/>
        :return: ReservedConcurrentExecutions:  The number of simultaneous executions that are reserved for the function.<br/>        """
        pass

    def get_function_configuration(self, FunctionName: str, Qualifier: str=None) -> FunctionConfiguration:
        r"""Returns the version-specific settings of a Lambda function or version. The output includes only options that can vary between versions of a function. To modify these settings, use <a>UpdateFunctionConfiguration</a>. To get all of a function's details, including function-level settings, use <a>GetFunction</a>.

        :param self:
        :param Qualifier:  Specify a version or alias to get details about a published version of the function.<br/>FunctionName:  The name of the Lambda function, version, or alias. <p class="title"> <b>Name formats</b>  <ul> <li>  <b>Function name</b> - <code>my-function</code> (name-only), <code>my-function:v1</code> (with alias). </li> <li>  <b>Function ARN</b> - <code>arn:aws:lambda:us-west-2:123456789012:function:my-function</code>. </li> <li>  <b>Partial ARN</b> - <code>123456789012:function:my-function</code>. </li> </ul> You can append a version number or alias to any of the formats. The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.<br/>
        :return: SigningJobArn:  The ARN of the signing job.<br/>SigningProfileVersionArn:  The ARN of the signing profile version.<br/>ImageConfigResponse:  The function's image configuration values.:<br/>PackageType:  The type of deployment package. Set to <code>Image</code> for container image and set <code>Zip</code> for .zip file archive.<br/>FileSystemConfigs:  Connection settings for an <a href="https://docs.aws.amazon.com/lambda/latest/dg/configuration-filesystem.html">Amazon EFS file system</a>.<br/>LastUpdateStatusReasonCode:  The reason code for the last update that was performed on the function.<br/>LastUpdateStatusReason:  The reason for the last update that was performed on the function.<br/>LastUpdateStatus:  The status of the last update that was performed on the function. This is first set to <code>Successful</code> after function creation completes.<br/>StateReasonCode:  The reason code for the function's current state. When the code is <code>Creating</code>, you can't invoke or modify the function.<br/>StateReason:  The reason for the function's current state.<br/>State:  The current state of the function. When the state is <code>Inactive</code>, you can reactivate the function by invoking it.<br/>Layers:  The function's <a href="https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html"> layers</a>.<br/>RevisionId:  The latest updated revision of the function or alias.<br/>MasterArn:  For Lambda@Edge functions, the ARN of the master function.<br/>TracingConfig:  The function's X-Ray tracing configuration.:<br/>KMSKeyArn:  The KMS key that's used to encrypt the function's environment variables. This key is only returned if you've configured a customer managed CMK.<br/>Environment:  The function's <a href="https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html">environment variables</a>.:<br/>DeadLetterConfig:  The function's dead letter queue.:<br/>VpcConfig:  The function's networking configuration.:<br/>Version:  The version of the Lambda function.<br/>CodeSha256:  The SHA256 hash of the function's deployment package.<br/>LastModified:  The date and time that the function was last updated, in <a href="https://www.w3.org/TR/NOTE-datetime">ISO-8601 format</a> (YYYY-MM-DDThh:mm:ss.sTZD).<br/>MemorySize:  The amount of memory available to the function at runtime. <br/>Timeout:  The amount of time in seconds that Lambda allows a function to run before stopping it.<br/>Description:  The function's description.<br/>CodeSize:  The size of the function's deployment package, in bytes.<br/>Handler:  The function that Lambda calls to begin executing your function.<br/>Role:  The function's execution role.<br/>Runtime:  The runtime environment for the Lambda function.<br/>FunctionArn:  The function's Amazon Resource Name (ARN).<br/>FunctionName:  The name of the function.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The ID of the VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> A list of VPC security groups IDs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetIds</i> A list of VPC subnet IDs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetArn</i> The Amazon Resource Name (ARN) of an Amazon SQS queue or Amazon SNS topic.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Error</i> Error messages for environment variables that couldn't be applied.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Error</b>: Error messages for environment variables that couldn't be applied.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Variables</i> Environment variable key-value pairs.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> The error message.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorCode</i> The error code.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Mode</i> The tracing mode.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Error</i> Error response to GetFunctionConfiguration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Error</b>: Error response to GetFunctionConfiguration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImageConfig</i> Configuration values that override the container image Dockerfile.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ImageConfig</b>: Configuration values that override the container image Dockerfile.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>WorkingDirectory</i> Specifies the working directory.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Command</i> Specifies parameters that you want to pass in with ENTRYPOINT. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EntryPoint</i> Specifies the entry point to their application, which is typically the location of the runtime executable.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> Error message.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorCode</i> Error code.<br/>        """
        pass

    def get_function_event_invoke_config(self, FunctionName: str, Qualifier: str=None) -> FunctionEventInvokeConfig:
        r"""Retrieves the configuration for asynchronous invocation for a function, version, or alias. To configure options for asynchronous invocation, use <a>PutFunctionEventInvokeConfig</a>.

        :param self:
        :param Qualifier:  A version number or alias name.<br/>FunctionName:  The name of the Lambda function, version, or alias. <p class="title"> <b>Name formats</b>  <ul> <li>  <b>Function name</b> - <code>my-function</code> (name-only), <code>my-function:v1</code> (with alias). </li> <li>  <b>Function ARN</b> - <code>arn:aws:lambda:us-west-2:123456789012:function:my-function</code>. </li> <li>  <b>Partial ARN</b> - <code>123456789012:function:my-function</code>. </li> </ul> You can append a version number or alias to any of the formats. The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.<br/>
        :return: DestinationConfig:  A destination for events after they have been sent to a function for processing. <p class="title"> <b>Destinations</b>  <ul> <li>  <b>Function</b> - The Amazon Resource Name (ARN) of a Lambda function. </li> <li>  <b>Queue</b> - The ARN of an SQS queue. </li> <li>  <b>Topic</b> - The ARN of an SNS topic. </li> <li>  <b>Event Bus</b> - The ARN of an Amazon EventBridge event bus. </li> </ul>:<br/>MaximumEventAgeInSeconds:  The maximum age of a request that Lambda sends to a function for processing.<br/>MaximumRetryAttempts:  The maximum number of times to retry when the function returns an error.<br/>FunctionArn:  The Amazon Resource Name (ARN) of the function.<br/>LastModified:  The date and time that the configuration was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OnFailure</i> The destination configuration for failed invocations.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>OnFailure</b>: The destination configuration for failed invocations.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OnSuccess</i> The destination configuration for successful invocations.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>OnSuccess</b>: The destination configuration for successful invocations.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Destination</i> The Amazon Resource Name (ARN) of the destination resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Destination</i> The Amazon Resource Name (ARN) of the destination resource.<br/>        """
        pass

    def get_layer_version(self, VersionNumber: LayerVersionNumber, LayerName: str) -> GetLayerVersionResponse:
        r"""Returns information about a version of an <a href="https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html">Lambda layer</a>, with a link to download the layer archive that's valid for 10 minutes.

        :param self:
        :param VersionNumber:  The version number.<br/>LayerName:  The name or Amazon Resource Name (ARN) of the layer.<br/>
        :return: LicenseInfo:  The layer's software license.<br/>CompatibleRuntimes:  The layer's compatible runtimes.<br/>Version:  The version number.<br/>CreatedDate:  The date that the layer version was created, in <a href="https://www.w3.org/TR/NOTE-datetime">ISO-8601 format</a> (YYYY-MM-DDThh:mm:ss.sTZD).<br/>Description:  The description of the version.<br/>LayerVersionArn:  The ARN of the layer version.<br/>LayerArn:  The ARN of the layer.<br/>Content:  Details about the layer version.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SigningJobArn</i> The Amazon Resource Name (ARN) of a signing job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SigningProfileVersionArn</i> The Amazon Resource Name (ARN) for a signing profile version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CodeSize</i> The size of the layer archive in bytes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CodeSha256</i> The SHA-256 hash of the layer archive.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Location</i> A link to the layer archive in Amazon S3 that is valid for 10 minutes.<br/>        """
        pass

    def get_layer_version_by_arn(self, Arn: str) -> GetLayerVersionResponse:
        r"""Returns information about a version of an <a href="https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html">Lambda layer</a>, with a link to download the layer archive that's valid for 10 minutes.

        :param self:
        :param Arn:  The ARN of the layer version.<br/>
        :return: LicenseInfo:  The layer's software license.<br/>CompatibleRuntimes:  The layer's compatible runtimes.<br/>Version:  The version number.<br/>CreatedDate:  The date that the layer version was created, in <a href="https://www.w3.org/TR/NOTE-datetime">ISO-8601 format</a> (YYYY-MM-DDThh:mm:ss.sTZD).<br/>Description:  The description of the version.<br/>LayerVersionArn:  The ARN of the layer version.<br/>LayerArn:  The ARN of the layer.<br/>Content:  Details about the layer version.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SigningJobArn</i> The Amazon Resource Name (ARN) of a signing job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SigningProfileVersionArn</i> The Amazon Resource Name (ARN) for a signing profile version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CodeSize</i> The size of the layer archive in bytes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CodeSha256</i> The SHA-256 hash of the layer archive.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Location</i> A link to the layer archive in Amazon S3 that is valid for 10 minutes.<br/>        """
        pass

    def get_layer_version_policy(self, VersionNumber: LayerVersionNumber, LayerName: str) -> GetLayerVersionPolicyResponse:
        r"""Returns the permission policy for a version of an <a href="https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html">Lambda layer</a>. For more information, see <a>AddLayerVersionPermission</a>.

        :param self:
        :param VersionNumber:  The version number.<br/>LayerName:  The name or Amazon Resource Name (ARN) of the layer.<br/>
        :return: RevisionId:  A unique identifier for the current revision of the policy.<br/>Policy:  The policy document.<br/>        """
        pass

    def get_policy(self, FunctionName: str, Qualifier: str=None) -> GetPolicyResponse:
        r"""Returns the <a href="https://docs.aws.amazon.com/lambda/latest/dg/access-control-resource-based.html">resource-based IAM policy</a> for a function, version, or alias.

        :param self:
        :param Qualifier:  Specify a version or alias to get the policy for that resource.<br/>FunctionName:  The name of the Lambda function, version, or alias. <p class="title"> <b>Name formats</b>  <ul> <li>  <b>Function name</b> - <code>my-function</code> (name-only), <code>my-function:v1</code> (with alias). </li> <li>  <b>Function ARN</b> - <code>arn:aws:lambda:us-west-2:123456789012:function:my-function</code>. </li> <li>  <b>Partial ARN</b> - <code>123456789012:function:my-function</code>. </li> </ul> You can append a version number or alias to any of the formats. The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.<br/>
        :return: RevisionId:  A unique identifier for the current revision of the policy.<br/>Policy:  The resource-based policy.<br/>        """
        pass

    def get_provisioned_concurrency_config(self, Qualifier: str, FunctionName: str) -> GetProvisionedConcurrencyConfigResponse:
        r"""Retrieves the provisioned concurrency configuration for a function's alias or version.

        :param self:
        :param Qualifier:  The version number or alias name.<br/>FunctionName:  The name of the Lambda function. <p class="title"> <b>Name formats</b>  <ul> <li>  <b>Function name</b> - <code>my-function</code>. </li> <li>  <b>Function ARN</b> - <code>arn:aws:lambda:us-west-2:123456789012:function:my-function</code>. </li> <li>  <b>Partial ARN</b> - <code>123456789012:function:my-function</code>. </li> </ul> The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.<br/>
        :return: LastModified:  The date and time that a user last updated the configuration, in <a href="https://www.iso.org/iso-8601-date-and-time-format.html">ISO 8601 format</a>.<br/>StatusReason:  For failed allocations, the reason that provisioned concurrency could not be allocated.<br/>Status:  The status of the allocation process.<br/>AllocatedProvisionedConcurrentExecutions:  The amount of provisioned concurrency allocated.<br/>AvailableProvisionedConcurrentExecutions:  The amount of provisioned concurrency available.<br/>RequestedProvisionedConcurrentExecutions:  The amount of provisioned concurrency requested.<br/>        """
        pass

    def invoke(self, FunctionName: str, InvocationType: str=None, LogType: str=None, ClientContext: str=None, Payload: Blob=None, Qualifier: str=None) -> InvocationResponse:
        r"""Invokes a Lambda function. You can invoke a function synchronously (and wait for the response), or asynchronously. To invoke a function asynchronously, set <code>InvocationType</code> to <code>Event</code>. For <a href="https://docs.aws.amazon.com/lambda/latest/dg/invocation-sync.html">synchronous invocation</a>, details about the function response, including errors, are included in the response body and headers. For either invocation type, you can find more information in the <a href="https://docs.aws.amazon.com/lambda/latest/dg/monitoring-functions.html">execution log</a> and <a href="https://docs.aws.amazon.com/lambda/latest/dg/lambda-x-ray.html">trace</a>. When an error occurs, your function may be invoked multiple times. Retry behavior varies by error type, client, event source, and invocation type. For example, if you invoke a function asynchronously and it returns an error, Lambda executes the function up to two more times. For more information, see <a href="https://docs.aws.amazon.com/lambda/latest/dg/retries-on-errors.html">Retry Behavior</a>. For <a href="https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html">asynchronous invocation</a>, Lambda adds events to a queue before sending them to your function. If your function does not have enough capacity to keep up with the queue, events may be lost. Occasionally, your function may receive the same event multiple times, even if no error occurs. To retain events that were not processed, configure your function with a <a href="https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#dlq">dead-letter queue</a>. The status code in the API response doesn't reflect function errors. Error codes are reserved for errors that prevent your function from executing, such as permissions errors, <a href="https://docs.aws.amazon.com/lambda/latest/dg/limits.html">limit errors</a>, or issues with your function's code and configuration. For example, Lambda returns <code>TooManyRequestsException</code> if executing the function would cause you to exceed a concurrency limit at either the account level (<code>ConcurrentInvocationLimitExceeded</code>) or function level (<code>ReservedFunctionConcurrentInvocationLimitExceeded</code>). For functions with a long timeout, your client might be disconnected during synchronous invocation while it waits for a response. Configure your HTTP client, SDK, firewall, proxy, or operating system to allow for long connections with timeout or keep-alive settings. This operation requires permission for the <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awslambda.html">lambda:InvokeFunction</a> action.

        :param self:
        :param Qualifier:  Specify a version or alias to invoke a published version of the function.<br/>Payload:  The JSON that you want to provide to your Lambda function as input.<br/>ClientContext:  Up to 3583 bytes of base64-encoded data about the invoking client to pass to the function in the context object.<br/>LogType:  Set to <code>Tail</code> to include the execution log in the response.<br/>InvocationType:  Choose from the following options. <ul> <li>  <code>RequestResponse</code> (default) - Invoke the function synchronously. Keep the connection open until the function returns a response or times out. The API response includes the function response and additional data. </li> <li>  <code>Event</code> - Invoke the function asynchronously. Send events that fail multiple times to the function's dead-letter queue (if it's configured). The API response only includes a status code. </li> <li>  <code>DryRun</code> - Validate parameter values and verify that the user or role has permission to invoke the function. </li> </ul><br/>FunctionName:  The name of the Lambda function, version, or alias. <p class="title"> <b>Name formats</b>  <ul> <li>  <b>Function name</b> - <code>my-function</code> (name-only), <code>my-function:v1</code> (with alias). </li> <li>  <b>Function ARN</b> - <code>arn:aws:lambda:us-west-2:123456789012:function:my-function</code>. </li> <li>  <b>Partial ARN</b> - <code>123456789012:function:my-function</code>. </li> </ul> You can append a version number or alias to any of the formats. The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.<br/>
        :return: ExecutedVersion:  The version of the function that executed. When you invoke a function with an alias, this indicates which version the alias resolved to.<br/>Payload:  The response from the function, or an error object.<br/>LogResult:  The last 4 KB of the execution log, which is base64 encoded.<br/>FunctionError:  If present, indicates that an error occurred during function execution. Details about the error are included in the response payload.<br/>StatusCode:  The HTTP status code is in the 200 range for a successful request. For the <code>RequestResponse</code> invocation type, this status code is 200. For the <code>Event</code> invocation type, this status code is 202. For the <code>DryRun</code> invocation type, the status code is 204.<br/>        """
        pass

    def invoke_async(self, InvokeArgs: BlobStream, FunctionName: str) -> InvokeAsyncResponse:
        r"""<important> For asynchronous function invocation, use <a>Invoke</a>. </important> Invokes a function asynchronously.

        :param self:
        :param InvokeArgs:  The JSON that you want to provide to your Lambda function as input.<br/>FunctionName:  The name of the Lambda function. <p class="title"> <b>Name formats</b>  <ul> <li>  <b>Function name</b> - <code>my-function</code>. </li> <li>  <b>Function ARN</b> - <code>arn:aws:lambda:us-west-2:123456789012:function:my-function</code>. </li> <li>  <b>Partial ARN</b> - <code>123456789012:function:my-function</code>. </li> </ul> The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.<br/>
        :return: Status:  The status code.<br/>        """
        pass

    def list_aliases(self, FunctionName: str, FunctionVersion: str=None, Marker: str=None, MaxItems: int=None) -> ListAliasesResponse:
        r"""Returns a list of <a href="https://docs.aws.amazon.com/lambda/latest/dg/versioning-aliases.html">aliases</a> for a Lambda function.

        :param self:
        :param MaxItems:  Limit the number of aliases returned.<br/>Marker:  Specify the pagination token that's returned by a previous request to retrieve the next page of results.<br/>FunctionVersion:  Specify a function version to only list aliases that invoke that version.<br/>FunctionName:  The name of the Lambda function. <p class="title"> <b>Name formats</b>  <ul> <li>  <b>Function name</b> - <code>MyFunction</code>. </li> <li>  <b>Function ARN</b> - <code>arn:aws:lambda:us-west-2:123456789012:function:MyFunction</code>. </li> <li>  <b>Partial ARN</b> - <code>123456789012:function:MyFunction</code>. </li> </ul> The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.<br/>
        :return: Aliases:  A list of aliases.<br/>NextMarker:  The pagination token that's included if more results are available.<br/>        """
        pass

    def list_code_signing_configs(self, Marker: str=None, MaxItems: int=None) -> ListCodeSigningConfigsResponse:
        r"""Returns a list of <a href="https://docs.aws.amazon.com/lambda/latest/dg/configuring-codesigning.html">code signing configurations</a>. A request returns up to 10,000 configurations per call. You can use the <code>MaxItems</code> parameter to return fewer configurations per call. 

        :param self:
        :param MaxItems:  Maximum number of items to return.<br/>Marker:  Specify the pagination token that's returned by a previous request to retrieve the next page of results.<br/>
        :return: CodeSigningConfigs:  The code signing configurations<br/>NextMarker:  The pagination token that's included if more results are available.<br/>        """
        pass

    def list_event_source_mappings(self, EventSourceArn: str=None, FunctionName: str=None, Marker: str=None, MaxItems: int=None) -> ListEventSourceMappingsResponse:
        r"""Lists event source mappings. Specify an <code>EventSourceArn</code> to only show event source mappings for a single event source.

        :param self:
        :param MaxItems:  The maximum number of event source mappings to return.<br/>Marker:  A pagination token returned by a previous call.<br/>FunctionName:  The name of the Lambda function. <p class="title"> <b>Name formats</b>  <ul> <li>  <b>Function name</b> - <code>MyFunction</code>. </li> <li>  <b>Function ARN</b> - <code>arn:aws:lambda:us-west-2:123456789012:function:MyFunction</code>. </li> <li>  <b>Version or Alias ARN</b> - <code>arn:aws:lambda:us-west-2:123456789012:function:MyFunction:PROD</code>. </li> <li>  <b>Partial ARN</b> - <code>123456789012:function:MyFunction</code>. </li> </ul> The length constraint applies only to the full ARN. If you specify only the function name, it's limited to 64 characters in length.<br/>EventSourceArn:  The Amazon Resource Name (ARN) of the event source. <ul> <li>  <b>Amazon Kinesis</b> - The ARN of the data stream or a stream consumer. </li> <li>  <b>Amazon DynamoDB Streams</b> - The ARN of the stream. </li> <li>  <b>Amazon Simple Queue Service</b> - The ARN of the queue. </li> <li>  <b>Amazon Managed Streaming for Apache Kafka</b> - The ARN of the cluster. </li> </ul><br/>
        :return: EventSourceMappings:  A list of event source mappings.<br/>NextMarker:  A pagination token that's returned when the response doesn't contain all event source mappings.<br/>        """
        pass

    def list_function_event_invoke_configs(self, FunctionName: str, Marker: str=None, MaxItems: int=None) -> ListFunctionEventInvokeConfigsResponse:
        r"""Retrieves a list of configurations for asynchronous invocation for a function. To configure options for asynchronous invocation, use <a>PutFunctionEventInvokeConfig</a>.

        :param self:
        :param MaxItems:  The maximum number of configurations to return.<br/>Marker:  Specify the pagination token that's returned by a previous request to retrieve the next page of results.<br/>FunctionName:  The name of the Lambda function. <p class="title"> <b>Name formats</b>  <ul> <li>  <b>Function name</b> - <code>my-function</code>. </li> <li>  <b>Function ARN</b> - <code>arn:aws:lambda:us-west-2:123456789012:function:my-function</code>. </li> <li>  <b>Partial ARN</b> - <code>123456789012:function:my-function</code>. </li> </ul> The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.<br/>
        :return: NextMarker:  The pagination token that's included if more results are available.<br/>FunctionEventInvokeConfigs:  A list of configurations.<br/>        """
        pass

    def list_functions(self, MasterRegion: str=None, FunctionVersion: str=None, Marker: str=None, MaxItems: int=None) -> ListFunctionsResponse:
        r"""Returns a list of Lambda functions, with the version-specific configuration of each. Lambda returns up to 50 functions per call. Set <code>FunctionVersion</code> to <code>ALL</code> to include all published versions of each function in addition to the unpublished version.  <note> The <code>ListFunctions</code> action returns a subset of the <a>FunctionConfiguration</a> fields. To get the additional fields (State, StateReasonCode, StateReason, LastUpdateStatus, LastUpdateStatusReason, LastUpdateStatusReasonCode) for a function or version, use <a>GetFunction</a>. </note>

        :param self:
        :param MaxItems:  The maximum number of functions to return in the response. Note that <code>ListFunctions</code> returns a maximum of 50 items in each response, even if you set the number higher.<br/>Marker:  Specify the pagination token that's returned by a previous request to retrieve the next page of results.<br/>FunctionVersion:  Set to <code>ALL</code> to include entries for all published versions of each function.<br/>MasterRegion:  For Lambda@Edge functions, the Region of the master function. For example, <code>us-east-1</code> filters the list of functions to only include Lambda@Edge functions replicated from a master function in US East (N. Virginia). If specified, you must set <code>FunctionVersion</code> to <code>ALL</code>.<br/>
        :return: Functions:  A list of Lambda functions.<br/>NextMarker:  The pagination token that's included if more results are available.<br/>        """
        pass

    def list_functions_by_code_signing_config(self, CodeSigningConfigArn: str, Marker: str=None, MaxItems: int=None) -> ListFunctionsByCodeSigningConfigResponse:
        r"""List the functions that use the specified code signing configuration. You can use this method prior to deleting a code signing configuration, to verify that no functions are using it.

        :param self:
        :param MaxItems:  Maximum number of items to return.<br/>Marker:  Specify the pagination token that's returned by a previous request to retrieve the next page of results.<br/>CodeSigningConfigArn:  The The Amazon Resource Name (ARN) of the code signing configuration.<br/>
        :return: FunctionArns:  The function ARNs. <br/>NextMarker:  The pagination token that's included if more results are available.<br/>        """
        pass

    def list_layer_versions(self, LayerName: str, CompatibleRuntime: str=None, Marker: str=None, MaxItems: int=None) -> ListLayerVersionsResponse:
        r"""Lists the versions of an <a href="https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html">Lambda layer</a>. Versions that have been deleted aren't listed. Specify a <a href="https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html">runtime identifier</a> to list only versions that indicate that they're compatible with that runtime.

        :param self:
        :param MaxItems:  The maximum number of versions to return.<br/>Marker:  A pagination token returned by a previous call.<br/>LayerName:  The name or Amazon Resource Name (ARN) of the layer.<br/>CompatibleRuntime:  A runtime identifier. For example, <code>go1.x</code>.<br/>
        :return: LayerVersions:  A list of versions.<br/>NextMarker:  A pagination token returned when the response doesn't contain all versions.<br/>        """
        pass

    def list_layers(self, CompatibleRuntime: str=None, Marker: str=None, MaxItems: int=None) -> ListLayersResponse:
        r"""Lists <a href="https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html">Lambda layers</a> and shows information about the latest version of each. Specify a <a href="https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html">runtime identifier</a> to list only layers that indicate that they're compatible with that runtime.

        :param self:
        :param MaxItems:  The maximum number of layers to return.<br/>Marker:  A pagination token returned by a previous call.<br/>CompatibleRuntime:  A runtime identifier. For example, <code>go1.x</code>.<br/>
        :return: Layers:  A list of function layers.<br/>NextMarker:  A pagination token returned when the response doesn't contain all layers.<br/>        """
        pass

    def list_provisioned_concurrency_configs(self, FunctionName: str, Marker: str=None, MaxItems: int=None) -> ListProvisionedConcurrencyConfigsResponse:
        r"""Retrieves a list of provisioned concurrency configurations for a function.

        :param self:
        :param MaxItems:  Specify a number to limit the number of configurations returned.<br/>Marker:  Specify the pagination token that's returned by a previous request to retrieve the next page of results.<br/>FunctionName:  The name of the Lambda function. <p class="title"> <b>Name formats</b>  <ul> <li>  <b>Function name</b> - <code>my-function</code>. </li> <li>  <b>Function ARN</b> - <code>arn:aws:lambda:us-west-2:123456789012:function:my-function</code>. </li> <li>  <b>Partial ARN</b> - <code>123456789012:function:my-function</code>. </li> </ul> The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.<br/>
        :return: NextMarker:  The pagination token that's included if more results are available.<br/>ProvisionedConcurrencyConfigs:  A list of provisioned concurrency configurations.<br/>        """
        pass

    def list_tags(self, Resource: str) -> ListTagsResponse:
        r"""Returns a function's <a href="https://docs.aws.amazon.com/lambda/latest/dg/tagging.html">tags</a>. You can also view tags with <a>GetFunction</a>.

        :param self:
        :param Resource:  The function's Amazon Resource Name (ARN).<br/>
        :return: Tags:  The function's tags.<br/>        """
        pass

    def list_versions_by_function(self, FunctionName: str, Marker: str=None, MaxItems: int=None) -> ListVersionsByFunctionResponse:
        r"""Returns a list of <a href="https://docs.aws.amazon.com/lambda/latest/dg/versioning-aliases.html">versions</a>, with the version-specific configuration of each. Lambda returns up to 50 versions per call.

        :param self:
        :param MaxItems:  The maximum number of versions to return. Note that <code>ListVersionsByFunction</code> returns a maximum of 50 items in each response, even if you set the number higher.<br/>Marker:  Specify the pagination token that's returned by a previous request to retrieve the next page of results.<br/>FunctionName:  The name of the Lambda function. <p class="title"> <b>Name formats</b>  <ul> <li>  <b>Function name</b> - <code>MyFunction</code>. </li> <li>  <b>Function ARN</b> - <code>arn:aws:lambda:us-west-2:123456789012:function:MyFunction</code>. </li> <li>  <b>Partial ARN</b> - <code>123456789012:function:MyFunction</code>. </li> </ul> The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.<br/>
        :return: Versions:  A list of Lambda function versions.<br/>NextMarker:  The pagination token that's included if more results are available.<br/>        """
        pass

    def publish_layer_version(self, Content: LayerVersionContentInput, LayerName: str, Description: str=None, CompatibleRuntimes: List[Runtime]=None, LicenseInfo: str=None) -> PublishLayerVersionResponse:
        r"""Creates an <a href="https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html">Lambda layer</a> from a ZIP archive. Each time you call <code>PublishLayerVersion</code> with the same layer name, a new version is created. Add layers to your function with <a>CreateFunction</a> or <a>UpdateFunctionConfiguration</a>.

        :param self:
        :param LicenseInfo:  The layer's software license. It can be any of the following: <ul> <li> An <a href="https://spdx.org/licenses/">SPDX license identifier</a>. For example, <code>MIT</code>. </li> <li> The URL of a license hosted on the internet. For example, <code>https://opensource.org/licenses/MIT</code>. </li> <li> The full text of the license. </li> </ul><br/>CompatibleRuntimes:  A list of compatible <a href="https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html">function runtimes</a>. Used for filtering with <a>ListLayers</a> and <a>ListLayerVersions</a>.<br/>Content:  The function layer archive.:<br/>Description:  The description of the version.<br/>LayerName:  The name or Amazon Resource Name (ARN) of the layer.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ZipFile</i> The base64-encoded contents of the layer archive. Amazon Web Services SDK and Amazon Web Services CLI clients handle the encoding for you.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3ObjectVersion</i> For versioned objects, the version of the layer archive object to use.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Key</i> The Amazon S3 key of the layer archive.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Bucket</i> The Amazon S3 bucket of the layer archive.<br/>
        :return: LicenseInfo:  The layer's software license.<br/>CompatibleRuntimes:  The layer's compatible runtimes.<br/>Version:  The version number.<br/>CreatedDate:  The date that the layer version was created, in <a href="https://www.w3.org/TR/NOTE-datetime">ISO-8601 format</a> (YYYY-MM-DDThh:mm:ss.sTZD).<br/>Description:  The description of the version.<br/>LayerVersionArn:  The ARN of the layer version.<br/>LayerArn:  The ARN of the layer.<br/>Content:  Details about the layer version.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SigningJobArn</i> The Amazon Resource Name (ARN) of a signing job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SigningProfileVersionArn</i> The Amazon Resource Name (ARN) for a signing profile version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CodeSize</i> The size of the layer archive in bytes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CodeSha256</i> The SHA-256 hash of the layer archive.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Location</i> A link to the layer archive in Amazon S3 that is valid for 10 minutes.<br/>        """
        pass

    def publish_version(self, FunctionName: str, CodeSha256: str=None, Description: str=None, RevisionId: str=None) -> FunctionConfiguration:
        r"""Creates a <a href="https://docs.aws.amazon.com/lambda/latest/dg/versioning-aliases.html">version</a> from the current code and configuration of a function. Use versions to create a snapshot of your function code and configuration that doesn't change. Lambda doesn't publish a version if the function's configuration and code haven't changed since the last version. Use <a>UpdateFunctionCode</a> or <a>UpdateFunctionConfiguration</a> to update the function before publishing a version. Clients can invoke versions directly or with an alias. To create an alias, use <a>CreateAlias</a>.

        :param self:
        :param RevisionId:  Only update the function if the revision ID matches the ID that's specified. Use this option to avoid publishing a version if the function configuration has changed since you last updated it.<br/>Description:  A description for the version to override the description in the function configuration.<br/>CodeSha256:  Only publish a version if the hash value matches the value that's specified. Use this option to avoid publishing a version if the function code has changed since you last updated it. You can get the hash for the version that you uploaded from the output of <a>UpdateFunctionCode</a>.<br/>FunctionName:  The name of the Lambda function. <p class="title"> <b>Name formats</b>  <ul> <li>  <b>Function name</b> - <code>MyFunction</code>. </li> <li>  <b>Function ARN</b> - <code>arn:aws:lambda:us-west-2:123456789012:function:MyFunction</code>. </li> <li>  <b>Partial ARN</b> - <code>123456789012:function:MyFunction</code>. </li> </ul> The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.<br/>
        :return: SigningJobArn:  The ARN of the signing job.<br/>SigningProfileVersionArn:  The ARN of the signing profile version.<br/>ImageConfigResponse:  The function's image configuration values.:<br/>PackageType:  The type of deployment package. Set to <code>Image</code> for container image and set <code>Zip</code> for .zip file archive.<br/>FileSystemConfigs:  Connection settings for an <a href="https://docs.aws.amazon.com/lambda/latest/dg/configuration-filesystem.html">Amazon EFS file system</a>.<br/>LastUpdateStatusReasonCode:  The reason code for the last update that was performed on the function.<br/>LastUpdateStatusReason:  The reason for the last update that was performed on the function.<br/>LastUpdateStatus:  The status of the last update that was performed on the function. This is first set to <code>Successful</code> after function creation completes.<br/>StateReasonCode:  The reason code for the function's current state. When the code is <code>Creating</code>, you can't invoke or modify the function.<br/>StateReason:  The reason for the function's current state.<br/>State:  The current state of the function. When the state is <code>Inactive</code>, you can reactivate the function by invoking it.<br/>Layers:  The function's <a href="https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html"> layers</a>.<br/>RevisionId:  The latest updated revision of the function or alias.<br/>MasterArn:  For Lambda@Edge functions, the ARN of the master function.<br/>TracingConfig:  The function's X-Ray tracing configuration.:<br/>KMSKeyArn:  The KMS key that's used to encrypt the function's environment variables. This key is only returned if you've configured a customer managed CMK.<br/>Environment:  The function's <a href="https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html">environment variables</a>.:<br/>DeadLetterConfig:  The function's dead letter queue.:<br/>VpcConfig:  The function's networking configuration.:<br/>Version:  The version of the Lambda function.<br/>CodeSha256:  The SHA256 hash of the function's deployment package.<br/>LastModified:  The date and time that the function was last updated, in <a href="https://www.w3.org/TR/NOTE-datetime">ISO-8601 format</a> (YYYY-MM-DDThh:mm:ss.sTZD).<br/>MemorySize:  The amount of memory available to the function at runtime. <br/>Timeout:  The amount of time in seconds that Lambda allows a function to run before stopping it.<br/>Description:  The function's description.<br/>CodeSize:  The size of the function's deployment package, in bytes.<br/>Handler:  The function that Lambda calls to begin executing your function.<br/>Role:  The function's execution role.<br/>Runtime:  The runtime environment for the Lambda function.<br/>FunctionArn:  The function's Amazon Resource Name (ARN).<br/>FunctionName:  The name of the function.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The ID of the VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> A list of VPC security groups IDs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetIds</i> A list of VPC subnet IDs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetArn</i> The Amazon Resource Name (ARN) of an Amazon SQS queue or Amazon SNS topic.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Error</i> Error messages for environment variables that couldn't be applied.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Error</b>: Error messages for environment variables that couldn't be applied.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Variables</i> Environment variable key-value pairs.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> The error message.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorCode</i> The error code.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Mode</i> The tracing mode.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Error</i> Error response to GetFunctionConfiguration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Error</b>: Error response to GetFunctionConfiguration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImageConfig</i> Configuration values that override the container image Dockerfile.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ImageConfig</b>: Configuration values that override the container image Dockerfile.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>WorkingDirectory</i> Specifies the working directory.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Command</i> Specifies parameters that you want to pass in with ENTRYPOINT. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EntryPoint</i> Specifies the entry point to their application, which is typically the location of the runtime executable.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> Error message.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorCode</i> Error code.<br/>        """
        pass

    def put_function_code_signing_config(self, FunctionName: str, CodeSigningConfigArn: str) -> PutFunctionCodeSigningConfigResponse:
        r"""Update the code signing configuration for the function. Changes to the code signing configuration take effect the next time a user tries to deploy a code package to the function. 

        :param self:
        :param FunctionName:  The name of the Lambda function. <p class="title"> <b>Name formats</b>  <ul> <li>  <b>Function name</b> - <code>MyFunction</code>. </li> <li>  <b>Function ARN</b> - <code>arn:aws:lambda:us-west-2:123456789012:function:MyFunction</code>. </li> <li>  <b>Partial ARN</b> - <code>123456789012:function:MyFunction</code>. </li> </ul> The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.<br/>CodeSigningConfigArn:  The The Amazon Resource Name (ARN) of the code signing configuration.<br/>
        :return: FunctionName:  The name of the Lambda function. <p class="title"> <b>Name formats</b>  <ul> <li>  <b>Function name</b> - <code>MyFunction</code>. </li> <li>  <b>Function ARN</b> - <code>arn:aws:lambda:us-west-2:123456789012:function:MyFunction</code>. </li> <li>  <b>Partial ARN</b> - <code>123456789012:function:MyFunction</code>. </li> </ul> The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.<br/>CodeSigningConfigArn:  The The Amazon Resource Name (ARN) of the code signing configuration.<br/>        """
        pass

    def put_function_concurrency(self, ReservedConcurrentExecutions: int, FunctionName: str) -> Concurrency:
        r"""Sets the maximum number of simultaneous executions for a function, and reserves capacity for that concurrency level. Concurrency settings apply to the function as a whole, including all published versions and the unpublished version. Reserving concurrency both ensures that your function has capacity to process the specified number of events simultaneously, and prevents it from scaling beyond that level. Use <a>GetFunction</a> to see the current setting for a function. Use <a>GetAccountSettings</a> to see your Regional concurrency limit. You can reserve concurrency for as many functions as you like, as long as you leave at least 100 simultaneous executions unreserved for functions that aren't configured with a per-function limit. For more information, see <a href="https://docs.aws.amazon.com/lambda/latest/dg/concurrent-executions.html">Managing Concurrency</a>.

        :param self:
        :param ReservedConcurrentExecutions:  The number of simultaneous executions to reserve for the function.<br/>FunctionName:  The name of the Lambda function. <p class="title"> <b>Name formats</b>  <ul> <li>  <b>Function name</b> - <code>my-function</code>. </li> <li>  <b>Function ARN</b> - <code>arn:aws:lambda:us-west-2:123456789012:function:my-function</code>. </li> <li>  <b>Partial ARN</b> - <code>123456789012:function:my-function</code>. </li> </ul> The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.<br/>
        :return: ReservedConcurrentExecutions:  The number of concurrent executions that are reserved for this function. For more information, see <a href="https://docs.aws.amazon.com/lambda/latest/dg/concurrent-executions.html">Managing Concurrency</a>.<br/>        """
        pass

    def put_function_event_invoke_config(self, FunctionName: str, Qualifier: str=None, MaximumRetryAttempts: int=None, MaximumEventAgeInSeconds: int=None, DestinationConfig: DestinationConfig=None) -> FunctionEventInvokeConfig:
        r"""Configures options for <a href="https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html">asynchronous invocation</a> on a function, version, or alias. If a configuration already exists for a function, version, or alias, this operation overwrites it. If you exclude any settings, they are removed. To set one option without affecting existing settings for other options, use <a>UpdateFunctionEventInvokeConfig</a>. By default, Lambda retries an asynchronous invocation twice if the function returns an error. It retains events in a queue for up to six hours. When an event fails all processing attempts or stays in the asynchronous invocation queue for too long, Lambda discards it. To retain discarded events, configure a dead-letter queue with <a>UpdateFunctionConfiguration</a>. To send an invocation record to a queue, topic, function, or event bus, specify a <a href="https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#invocation-async-destinations">destination</a>. You can configure separate destinations for successful invocations (on-success) and events that fail all processing attempts (on-failure). You can configure destinations in addition to or instead of a dead-letter queue.

        :param self:
        :param DestinationConfig:  A destination for events after they have been sent to a function for processing. <p class="title"> <b>Destinations</b>  <ul> <li>  <b>Function</b> - The Amazon Resource Name (ARN) of a Lambda function. </li> <li>  <b>Queue</b> - The ARN of an SQS queue. </li> <li>  <b>Topic</b> - The ARN of an SNS topic. </li> <li>  <b>Event Bus</b> - The ARN of an Amazon EventBridge event bus. </li> </ul>:<br/>MaximumEventAgeInSeconds:  The maximum age of a request that Lambda sends to a function for processing.<br/>MaximumRetryAttempts:  The maximum number of times to retry when the function returns an error.<br/>Qualifier:  A version number or alias name.<br/>FunctionName:  The name of the Lambda function, version, or alias. <p class="title"> <b>Name formats</b>  <ul> <li>  <b>Function name</b> - <code>my-function</code> (name-only), <code>my-function:v1</code> (with alias). </li> <li>  <b>Function ARN</b> - <code>arn:aws:lambda:us-west-2:123456789012:function:my-function</code>. </li> <li>  <b>Partial ARN</b> - <code>123456789012:function:my-function</code>. </li> </ul> You can append a version number or alias to any of the formats. The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OnFailure</i> The destination configuration for failed invocations.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>OnFailure</b>: The destination configuration for failed invocations.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OnSuccess</i> The destination configuration for successful invocations.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>OnSuccess</b>: The destination configuration for successful invocations.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Destination</i> The Amazon Resource Name (ARN) of the destination resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Destination</i> The Amazon Resource Name (ARN) of the destination resource.<br/>
        :return: DestinationConfig:  A destination for events after they have been sent to a function for processing. <p class="title"> <b>Destinations</b>  <ul> <li>  <b>Function</b> - The Amazon Resource Name (ARN) of a Lambda function. </li> <li>  <b>Queue</b> - The ARN of an SQS queue. </li> <li>  <b>Topic</b> - The ARN of an SNS topic. </li> <li>  <b>Event Bus</b> - The ARN of an Amazon EventBridge event bus. </li> </ul>:<br/>MaximumEventAgeInSeconds:  The maximum age of a request that Lambda sends to a function for processing.<br/>MaximumRetryAttempts:  The maximum number of times to retry when the function returns an error.<br/>FunctionArn:  The Amazon Resource Name (ARN) of the function.<br/>LastModified:  The date and time that the configuration was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OnFailure</i> The destination configuration for failed invocations.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>OnFailure</b>: The destination configuration for failed invocations.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OnSuccess</i> The destination configuration for successful invocations.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>OnSuccess</b>: The destination configuration for successful invocations.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Destination</i> The Amazon Resource Name (ARN) of the destination resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Destination</i> The Amazon Resource Name (ARN) of the destination resource.<br/>        """
        pass

    def put_provisioned_concurrency_config(self, ProvisionedConcurrentExecutions: int, Qualifier: str, FunctionName: str) -> PutProvisionedConcurrencyConfigResponse:
        r"""Adds a provisioned concurrency configuration to a function's alias or version.

        :param self:
        :param ProvisionedConcurrentExecutions:  The amount of provisioned concurrency to allocate for the version or alias.<br/>Qualifier:  The version number or alias name.<br/>FunctionName:  The name of the Lambda function. <p class="title"> <b>Name formats</b>  <ul> <li>  <b>Function name</b> - <code>my-function</code>. </li> <li>  <b>Function ARN</b> - <code>arn:aws:lambda:us-west-2:123456789012:function:my-function</code>. </li> <li>  <b>Partial ARN</b> - <code>123456789012:function:my-function</code>. </li> </ul> The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.<br/>
        :return: LastModified:  The date and time that a user last updated the configuration, in <a href="https://www.iso.org/iso-8601-date-and-time-format.html">ISO 8601 format</a>.<br/>StatusReason:  For failed allocations, the reason that provisioned concurrency could not be allocated.<br/>Status:  The status of the allocation process.<br/>AllocatedProvisionedConcurrentExecutions:  The amount of provisioned concurrency allocated.<br/>AvailableProvisionedConcurrentExecutions:  The amount of provisioned concurrency available.<br/>RequestedProvisionedConcurrentExecutions:  The amount of provisioned concurrency requested.<br/>        """
        pass

    def remove_layer_version_permission(self, StatementId: str, VersionNumber: LayerVersionNumber, LayerName: str, RevisionId: str=None):
        r"""Removes a statement from the permissions policy for a version of an <a href="https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html">Lambda layer</a>. For more information, see <a>AddLayerVersionPermission</a>.

        :param self:
        :param RevisionId:  Only update the policy if the revision ID matches the ID specified. Use this option to avoid modifying a policy that has changed since you last read it.<br/>StatementId:  The identifier that was specified when the statement was added.<br/>VersionNumber:  The version number.<br/>LayerName:  The name or Amazon Resource Name (ARN) of the layer.<br/>
        :return:         """
        pass

    def remove_permission(self, StatementId: str, FunctionName: str, Qualifier: str=None, RevisionId: str=None):
        r"""Revokes function-use permission from an Amazon Web Services service or another account. You can get the ID of the statement from the output of <a>GetPolicy</a>.

        :param self:
        :param RevisionId:  Only update the policy if the revision ID matches the ID that's specified. Use this option to avoid modifying a policy that has changed since you last read it.<br/>Qualifier:  Specify a version or alias to remove permissions from a published version of the function.<br/>StatementId:  Statement ID of the permission to remove.<br/>FunctionName:  The name of the Lambda function, version, or alias. <p class="title"> <b>Name formats</b>  <ul> <li>  <b>Function name</b> - <code>my-function</code> (name-only), <code>my-function:v1</code> (with alias). </li> <li>  <b>Function ARN</b> - <code>arn:aws:lambda:us-west-2:123456789012:function:my-function</code>. </li> <li>  <b>Partial ARN</b> - <code>123456789012:function:my-function</code>. </li> </ul> You can append a version number or alias to any of the formats. The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.<br/>
        :return:         """
        pass

    def tag_resource(self, Tags: Tags, Resource: str):
        r"""Adds <a href="https://docs.aws.amazon.com/lambda/latest/dg/tagging.html">tags</a> to a function.

        :param self:
        :param Tags:  A list of tags to apply to the function.<br/>Resource:  The function's Amazon Resource Name (ARN).<br/>
        :return:         """
        pass

    def untag_resource(self, TagKeys: List[TagKey], Resource: str):
        r"""Removes <a href="https://docs.aws.amazon.com/lambda/latest/dg/tagging.html">tags</a> from a function.

        :param self:
        :param TagKeys:  A list of tag keys to remove from the function.<br/>Resource:  The function's Amazon Resource Name (ARN).<br/>
        :return:         """
        pass

    def update_alias(self, Name: str, FunctionName: str, FunctionVersion: str=None, Description: str=None, RoutingConfig: AliasRoutingConfiguration=None, RevisionId: str=None) -> AliasConfiguration:
        r"""Updates the configuration of a Lambda function <a href="https://docs.aws.amazon.com/lambda/latest/dg/versioning-aliases.html">alias</a>.

        :param self:
        :param RevisionId:  Only update the alias if the revision ID matches the ID that's specified. Use this option to avoid modifying an alias that has changed since you last read it.<br/>RoutingConfig:  The <a href="https://docs.aws.amazon.com/lambda/latest/dg/configuration-aliases.html#configuring-alias-routing">routing configuration</a> of the alias.:<br/>Description:  A description of the alias.<br/>FunctionVersion:  The function version that the alias invokes.<br/>Name:  The name of the alias.<br/>FunctionName:  The name of the Lambda function. <p class="title"> <b>Name formats</b>  <ul> <li>  <b>Function name</b> - <code>MyFunction</code>. </li> <li>  <b>Function ARN</b> - <code>arn:aws:lambda:us-west-2:123456789012:function:MyFunction</code>. </li> <li>  <b>Partial ARN</b> - <code>123456789012:function:MyFunction</code>. </li> </ul> The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdditionalVersionWeights</i> The second version, and the percentage of traffic that's routed to it.<br/>
        :return: RevisionId:  A unique identifier that changes when you update the alias.<br/>RoutingConfig:  The <a href="https://docs.aws.amazon.com/lambda/latest/dg/lambda-traffic-shifting-using-aliases.html">routing configuration</a> of the alias.:<br/>Description:  A description of the alias.<br/>FunctionVersion:  The function version that the alias invokes.<br/>Name:  The name of the alias.<br/>AliasArn:  The Amazon Resource Name (ARN) of the alias.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdditionalVersionWeights</i> The second version, and the percentage of traffic that's routed to it.<br/>        """
        pass

    def update_code_signing_config(self, CodeSigningConfigArn: str, Description: str=None, AllowedPublishers: AllowedPublishers=None, CodeSigningPolicies: CodeSigningPolicies=None) -> UpdateCodeSigningConfigResponse:
        r"""Update the code signing configuration. Changes to the code signing configuration take effect the next time a user tries to deploy a code package to the function. 

        :param self:
        :param CodeSigningPolicies:  The code signing policy.:<br/>AllowedPublishers:  Signing profiles for this code signing configuration.:<br/>Description:  Descriptive name for this code signing configuration.<br/>CodeSigningConfigArn:  The The Amazon Resource Name (ARN) of the code signing configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SigningProfileVersionArns</i> The Amazon Resource Name (ARN) for each of the signing profiles. A signing profile defines a trusted user who can sign a code package. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UntrustedArtifactOnDeployment</i> Code signing configuration policy for deployment validation failure. If you set the policy to <code>Enforce</code>, Lambda blocks the deployment request if signature validation checks fail. If you set the policy to <code>Warn</code>, Lambda allows the deployment and creates a CloudWatch log.  Default value: <code>Warn</code> <br/>
        :return: CodeSigningConfig:  The code signing configuration:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModified</i> The date and time that the Code signing configuration was last modified, in ISO-8601 format (YYYY-MM-DDThh:mm:ss.sTZD). <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CodeSigningPolicies</i> The code signing policy controls the validation failure action for signature mismatch or expiry.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CodeSigningPolicies</b>: The code signing policy controls the validation failure action for signature mismatch or expiry.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowedPublishers</i> List of allowed publishers.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AllowedPublishers</b>: List of allowed publishers.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> Code signing configuration description.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CodeSigningConfigArn</i> The Amazon Resource Name (ARN) of the Code signing configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CodeSigningConfigId</i> Unique identifer for the Code signing configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SigningProfileVersionArns</i> The Amazon Resource Name (ARN) for each of the signing profiles. A signing profile defines a trusted user who can sign a code package. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UntrustedArtifactOnDeployment</i> Code signing configuration policy for deployment validation failure. If you set the policy to <code>Enforce</code>, Lambda blocks the deployment request if signature validation checks fail. If you set the policy to <code>Warn</code>, Lambda allows the deployment and creates a CloudWatch log.  Default value: <code>Warn</code> <br/>        """
        pass

    def update_event_source_mapping(self, UUID: str, FunctionName: str=None, Enabled: Enabled=None, BatchSize: int=None, MaximumBatchingWindowInSeconds: int=None, DestinationConfig: DestinationConfig=None, MaximumRecordAgeInSeconds: int=None, BisectBatchOnFunctionError: BisectBatchOnFunctionError=None, MaximumRetryAttempts: int=None, ParallelizationFactor: int=None, SourceAccessConfigurations: List[SourceAccessConfiguration]=None, TumblingWindowInSeconds: int=None, FunctionResponseTypes: List[FunctionResponseType]=None) -> EventSourceMappingConfiguration:
        r"""Updates an event source mapping. You can change the function that Lambda invokes, or pause invocation and resume later from the same location. The following error handling options are only available for stream sources (DynamoDB and Kinesis): <ul> <li>  <code>BisectBatchOnFunctionError</code> - If the function returns an error, split the batch in two and retry. </li> <li>  <code>DestinationConfig</code> - Send discarded records to an Amazon SQS queue or Amazon SNS topic. </li> <li>  <code>MaximumRecordAgeInSeconds</code> - Discard records older than the specified age. The default value is infinite (-1). When set to infinite (-1), failed records are retried until the record expires </li> <li>  <code>MaximumRetryAttempts</code> - Discard records after the specified number of retries. The default value is infinite (-1). When set to infinite (-1), failed records are retried until the record expires. </li> <li>  <code>ParallelizationFactor</code> - Process multiple batches from each shard concurrently. </li> </ul>

        :param self:
        :param FunctionResponseTypes:  (Streams only) A list of current response type enums applied to the event source mapping.<br/>TumblingWindowInSeconds:  (Streams only) The duration in seconds of a processing window. The range is between 1 second up to 900 seconds.<br/>SourceAccessConfigurations:  An array of the authentication protocol, or the VPC components to secure your event source.<br/>ParallelizationFactor:  (Streams only) The number of batches to process from each shard concurrently.<br/>MaximumRetryAttempts:  (Streams only) Discard records after the specified number of retries. The default value is infinite (-1). When set to infinite (-1), failed records will be retried until the record expires.<br/>BisectBatchOnFunctionError:  (Streams only) If the function returns an error, split the batch in two and retry.<br/>MaximumRecordAgeInSeconds:  (Streams only) Discard records older than the specified age. The default value is infinite (-1).<br/>DestinationConfig:  (Streams only) An Amazon SQS queue or Amazon SNS topic destination for discarded records.:<br/>MaximumBatchingWindowInSeconds:  (Streams and SQS standard queues) The maximum amount of time to gather records before invoking the function, in seconds.<br/>BatchSize:  The maximum number of items to retrieve in a single batch. <ul> <li>  <b>Amazon Kinesis</b> - Default 100. Max 10,000. </li> <li>  <b>Amazon DynamoDB Streams</b> - Default 100. Max 1,000. </li> <li>  <b>Amazon Simple Queue Service</b> - Default 10. For standard queues the max is 10,000. For FIFO queues the max is 10. </li> <li>  <b>Amazon Managed Streaming for Apache Kafka</b> - Default 100. Max 10,000. </li> <li>  <b>Self-Managed Apache Kafka</b> - Default 100. Max 10,000. </li> </ul><br/>Enabled:  If true, the event source mapping is active. Set to false to pause polling and invocation.<br/>FunctionName:  The name of the Lambda function. <p class="title"> <b>Name formats</b>  <ul> <li>  <b>Function name</b> - <code>MyFunction</code>. </li> <li>  <b>Function ARN</b> - <code>arn:aws:lambda:us-west-2:123456789012:function:MyFunction</code>. </li> <li>  <b>Version or Alias ARN</b> - <code>arn:aws:lambda:us-west-2:123456789012:function:MyFunction:PROD</code>. </li> <li>  <b>Partial ARN</b> - <code>123456789012:function:MyFunction</code>. </li> </ul> The length constraint applies only to the full ARN. If you specify only the function name, it's limited to 64 characters in length.<br/>UUID:  The identifier of the event source mapping.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OnFailure</i> The destination configuration for failed invocations.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>OnFailure</b>: The destination configuration for failed invocations.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OnSuccess</i> The destination configuration for successful invocations.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>OnSuccess</b>: The destination configuration for successful invocations.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Destination</i> The Amazon Resource Name (ARN) of the destination resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Destination</i> The Amazon Resource Name (ARN) of the destination resource.<br/>
        :return: FunctionResponseTypes:  (Streams only) A list of current response type enums applied to the event source mapping.<br/>TumblingWindowInSeconds:  (Streams only) The duration in seconds of a processing window. The range is between 1 second up to 900 seconds.<br/>MaximumRetryAttempts:  (Streams only) Discard records after the specified number of retries. The default value is -1, which sets the maximum number of retries to infinite. When MaximumRetryAttempts is infinite, Lambda retries failed records until the record expires in the event source.<br/>BisectBatchOnFunctionError:  (Streams only) If the function returns an error, split the batch in two and retry. The default value is false.<br/>MaximumRecordAgeInSeconds:  (Streams only) Discard records older than the specified age. The default value is -1, which sets the maximum age to infinite. When the value is set to infinite, Lambda never discards old records. <br/>SelfManagedEventSource:  The Self-Managed Apache Kafka cluster for your event source.:<br/>SourceAccessConfigurations:  An array of the authentication protocol, or the VPC components to secure your event source.<br/>Queues:   (MQ) The name of the Amazon MQ broker destination queue to consume. <br/>Topics:  The name of the Kafka topic.<br/>DestinationConfig:  (Streams only) An Amazon SQS queue or Amazon SNS topic destination for discarded records.:<br/>StateTransitionReason:  Indicates whether the last change to the event source mapping was made by a user, or by the Lambda service.<br/>State:  The state of the event source mapping. It can be one of the following: <code>Creating</code>, <code>Enabling</code>, <code>Enabled</code>, <code>Disabling</code>, <code>Disabled</code>, <code>Updating</code>, or <code>Deleting</code>.<br/>LastProcessingResult:  The result of the last Lambda invocation of your Lambda function.<br/>LastModified:  The date that the event source mapping was last updated, or its state changed.<br/>FunctionArn:  The ARN of the Lambda function.<br/>EventSourceArn:  The Amazon Resource Name (ARN) of the event source.<br/>ParallelizationFactor:  (Streams only) The number of batches to process from each shard concurrently. The default value is 1.<br/>MaximumBatchingWindowInSeconds:  (Streams and SQS standard queues) The maximum amount of time to gather records before invoking the function, in seconds. The default value is zero.<br/>BatchSize:  The maximum number of items to retrieve in a single batch.<br/>StartingPositionTimestamp:  With <code>StartingPosition</code> set to <code>AT_TIMESTAMP</code>, the time from which to start reading.<br/>StartingPosition:  The position in a stream from which to start reading. Required for Amazon Kinesis, Amazon DynamoDB, and Amazon MSK Streams sources. <code>AT_TIMESTAMP</code> is only supported for Amazon Kinesis streams.<br/>UUID:  The identifier of the event source mapping.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OnFailure</i> The destination configuration for failed invocations.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>OnFailure</b>: The destination configuration for failed invocations.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OnSuccess</i> The destination configuration for successful invocations.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>OnSuccess</b>: The destination configuration for successful invocations.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Destination</i> The Amazon Resource Name (ARN) of the destination resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Destination</i> The Amazon Resource Name (ARN) of the destination resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoints</i> The list of bootstrap servers for your Kafka brokers in the following format: <code>"KAFKA_BOOTSTRAP_SERVERS": ["abc.xyz.com:xxxx","abc2.xyz.com:xxxx"]</code>.<br/>        """
        pass

    def update_function_code(self, FunctionName: str, ZipFile: Blob=None, S3Bucket: str=None, S3Key: str=None, S3ObjectVersion: str=None, ImageUri: str=None, Publish: Boolean=None, DryRun: Boolean=None, RevisionId: str=None) -> FunctionConfiguration:
        r"""Updates a Lambda function's code. If code signing is enabled for the function, the code package must be signed by a trusted publisher. For more information, see <a href="https://docs.aws.amazon.com/lambda/latest/dg/configuration-trustedcode.html">Configuring code signing</a>. The function's code is locked when you publish a version. You can't modify the code of a published version, only the unpublished version. <note> For a function defined as a container image, Lambda resolves the image tag to an image digest. In Amazon ECR, if you update the image tag to a new image, Lambda does not automatically update the function. </note>

        :param self:
        :param RevisionId:  Only update the function if the revision ID matches the ID that's specified. Use this option to avoid modifying a function that has changed since you last read it.<br/>DryRun:  Set to true to validate the request parameters and access permissions without modifying the function code.<br/>Publish:  Set to true to publish a new version of the function after updating the code. This has the same effect as calling <a>PublishVersion</a> separately.<br/>ImageUri:  URI of a container image in the Amazon ECR registry.<br/>S3ObjectVersion:  For versioned objects, the version of the deployment package object to use.<br/>S3Key:  The Amazon S3 key of the deployment package.<br/>S3Bucket:  An Amazon S3 bucket in the same Amazon Web Services Region as your function. The bucket can be in a different Amazon Web Services account.<br/>ZipFile:  The base64-encoded contents of the deployment package. Amazon Web Services SDK and Amazon Web Services CLI clients handle the encoding for you.<br/>FunctionName:  The name of the Lambda function. <p class="title"> <b>Name formats</b>  <ul> <li>  <b>Function name</b> - <code>my-function</code>. </li> <li>  <b>Function ARN</b> - <code>arn:aws:lambda:us-west-2:123456789012:function:my-function</code>. </li> <li>  <b>Partial ARN</b> - <code>123456789012:function:my-function</code>. </li> </ul> The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.<br/>
        :return: SigningJobArn:  The ARN of the signing job.<br/>SigningProfileVersionArn:  The ARN of the signing profile version.<br/>ImageConfigResponse:  The function's image configuration values.:<br/>PackageType:  The type of deployment package. Set to <code>Image</code> for container image and set <code>Zip</code> for .zip file archive.<br/>FileSystemConfigs:  Connection settings for an <a href="https://docs.aws.amazon.com/lambda/latest/dg/configuration-filesystem.html">Amazon EFS file system</a>.<br/>LastUpdateStatusReasonCode:  The reason code for the last update that was performed on the function.<br/>LastUpdateStatusReason:  The reason for the last update that was performed on the function.<br/>LastUpdateStatus:  The status of the last update that was performed on the function. This is first set to <code>Successful</code> after function creation completes.<br/>StateReasonCode:  The reason code for the function's current state. When the code is <code>Creating</code>, you can't invoke or modify the function.<br/>StateReason:  The reason for the function's current state.<br/>State:  The current state of the function. When the state is <code>Inactive</code>, you can reactivate the function by invoking it.<br/>Layers:  The function's <a href="https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html"> layers</a>.<br/>RevisionId:  The latest updated revision of the function or alias.<br/>MasterArn:  For Lambda@Edge functions, the ARN of the master function.<br/>TracingConfig:  The function's X-Ray tracing configuration.:<br/>KMSKeyArn:  The KMS key that's used to encrypt the function's environment variables. This key is only returned if you've configured a customer managed CMK.<br/>Environment:  The function's <a href="https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html">environment variables</a>.:<br/>DeadLetterConfig:  The function's dead letter queue.:<br/>VpcConfig:  The function's networking configuration.:<br/>Version:  The version of the Lambda function.<br/>CodeSha256:  The SHA256 hash of the function's deployment package.<br/>LastModified:  The date and time that the function was last updated, in <a href="https://www.w3.org/TR/NOTE-datetime">ISO-8601 format</a> (YYYY-MM-DDThh:mm:ss.sTZD).<br/>MemorySize:  The amount of memory available to the function at runtime. <br/>Timeout:  The amount of time in seconds that Lambda allows a function to run before stopping it.<br/>Description:  The function's description.<br/>CodeSize:  The size of the function's deployment package, in bytes.<br/>Handler:  The function that Lambda calls to begin executing your function.<br/>Role:  The function's execution role.<br/>Runtime:  The runtime environment for the Lambda function.<br/>FunctionArn:  The function's Amazon Resource Name (ARN).<br/>FunctionName:  The name of the function.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The ID of the VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> A list of VPC security groups IDs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetIds</i> A list of VPC subnet IDs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetArn</i> The Amazon Resource Name (ARN) of an Amazon SQS queue or Amazon SNS topic.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Error</i> Error messages for environment variables that couldn't be applied.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Error</b>: Error messages for environment variables that couldn't be applied.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Variables</i> Environment variable key-value pairs.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> The error message.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorCode</i> The error code.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Mode</i> The tracing mode.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Error</i> Error response to GetFunctionConfiguration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Error</b>: Error response to GetFunctionConfiguration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImageConfig</i> Configuration values that override the container image Dockerfile.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ImageConfig</b>: Configuration values that override the container image Dockerfile.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>WorkingDirectory</i> Specifies the working directory.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Command</i> Specifies parameters that you want to pass in with ENTRYPOINT. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EntryPoint</i> Specifies the entry point to their application, which is typically the location of the runtime executable.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> Error message.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorCode</i> Error code.<br/>        """
        pass

    def update_function_configuration(self, FunctionName: str, Role: str=None, Handler: str=None, Description: str=None, Timeout: int=None, MemorySize: int=None, VpcConfig: VpcConfig=None, Environment: Environment=None, Runtime: str=None, DeadLetterConfig: DeadLetterConfig=None, KMSKeyArn: str=None, TracingConfig: TracingConfig=None, RevisionId: str=None, Layers: List[LayerVersionArn]=None, FileSystemConfigs: List[FileSystemConfig]=None, ImageConfig: ImageConfig=None) -> FunctionConfiguration:
        r"""Modify the version-specific settings of a Lambda function. When you update a function, Lambda provisions an instance of the function and its supporting resources. If your function connects to a VPC, this process can take a minute. During this time, you can't modify the function, but you can still invoke it. The <code>LastUpdateStatus</code>, <code>LastUpdateStatusReason</code>, and <code>LastUpdateStatusReasonCode</code> fields in the response from <a>GetFunctionConfiguration</a> indicate when the update is complete and the function is processing events with the new configuration. For more information, see <a href="https://docs.aws.amazon.com/lambda/latest/dg/functions-states.html">Function States</a>. These settings can vary between versions of a function and are locked when you publish a version. You can't modify the configuration of a published version, only the unpublished version. To configure function concurrency, use <a>PutFunctionConcurrency</a>. To grant invoke permissions to an account or Amazon Web Services service, use <a>AddPermission</a>.

        :param self:
        :param ImageConfig:   <a href="https://docs.aws.amazon.com/lambda/latest/dg/images-parms.html">Container image configuration values</a> that override the values in the container image Dockerfile.:<br/>FileSystemConfigs:  Connection settings for an Amazon EFS file system.<br/>Layers:  A list of <a href="https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html">function layers</a> to add to the function's execution environment. Specify each layer by its ARN, including the version.<br/>RevisionId:  Only update the function if the revision ID matches the ID that's specified. Use this option to avoid modifying a function that has changed since you last read it.<br/>TracingConfig:  Set <code>Mode</code> to <code>Active</code> to sample and trace a subset of incoming requests with <a href="https://docs.aws.amazon.com/lambda/latest/dg/services-xray.html">X-Ray</a>.:<br/>KMSKeyArn:  The ARN of the Amazon Web Services Key Management Service (KMS) key that's used to encrypt your function's environment variables. If it's not provided, Lambda uses a default service key.<br/>DeadLetterConfig:  A dead letter queue configuration that specifies the queue or topic where Lambda sends asynchronous events when they fail processing. For more information, see <a href="https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#dlq">Dead Letter Queues</a>.:<br/>Runtime:  The identifier of the function's <a href="https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html">runtime</a>.<br/>Environment:  Environment variables that are accessible from function code during execution.:<br/>VpcConfig:  For network connectivity to Amazon Web Services resources in a VPC, specify a list of security groups and subnets in the VPC. When you connect a function to a VPC, it can only access resources and the internet through that VPC. For more information, see <a href="https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc.html">VPC Settings</a>.:<br/>MemorySize:  The amount of <a href="https://docs.aws.amazon.com/lambda/latest/dg/configuration-memory.html">memory available to the function</a> at runtime. Increasing the function memory also increases its CPU allocation. The default value is 128 MB. The value can be any multiple of 1 MB.<br/>Timeout:  The amount of time that Lambda allows a function to run before stopping it. The default is 3 seconds. The maximum allowed value is 900 seconds. For additional information, see <a href="https://docs.aws.amazon.com/lambda/latest/dg/runtimes-context.html">Lambda execution environment</a>.<br/>Description:  A description of the function.<br/>Handler:  The name of the method within your code that Lambda calls to execute your function. The format includes the file name. It can also include namespaces and other qualifiers, depending on the runtime. For more information, see <a href="https://docs.aws.amazon.com/lambda/latest/dg/programming-model-v2.html">Programming Model</a>.<br/>Role:  The Amazon Resource Name (ARN) of the function's execution role.<br/>FunctionName:  The name of the Lambda function. <p class="title"> <b>Name formats</b>  <ul> <li>  <b>Function name</b> - <code>my-function</code>. </li> <li>  <b>Function ARN</b> - <code>arn:aws:lambda:us-west-2:123456789012:function:my-function</code>. </li> <li>  <b>Partial ARN</b> - <code>123456789012:function:my-function</code>. </li> </ul> The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> A list of VPC security groups IDs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetIds</i> A list of VPC subnet IDs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Variables</i> Environment variable key-value pairs. For more information, see <a href="https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html">Using Lambda environment variables</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetArn</i> The Amazon Resource Name (ARN) of an Amazon SQS queue or Amazon SNS topic.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Mode</i> The tracing mode.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WorkingDirectory</i> Specifies the working directory.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Command</i> Specifies parameters that you want to pass in with ENTRYPOINT. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EntryPoint</i> Specifies the entry point to their application, which is typically the location of the runtime executable.<br/>
        :return: SigningJobArn:  The ARN of the signing job.<br/>SigningProfileVersionArn:  The ARN of the signing profile version.<br/>ImageConfigResponse:  The function's image configuration values.:<br/>PackageType:  The type of deployment package. Set to <code>Image</code> for container image and set <code>Zip</code> for .zip file archive.<br/>FileSystemConfigs:  Connection settings for an <a href="https://docs.aws.amazon.com/lambda/latest/dg/configuration-filesystem.html">Amazon EFS file system</a>.<br/>LastUpdateStatusReasonCode:  The reason code for the last update that was performed on the function.<br/>LastUpdateStatusReason:  The reason for the last update that was performed on the function.<br/>LastUpdateStatus:  The status of the last update that was performed on the function. This is first set to <code>Successful</code> after function creation completes.<br/>StateReasonCode:  The reason code for the function's current state. When the code is <code>Creating</code>, you can't invoke or modify the function.<br/>StateReason:  The reason for the function's current state.<br/>State:  The current state of the function. When the state is <code>Inactive</code>, you can reactivate the function by invoking it.<br/>Layers:  The function's <a href="https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html"> layers</a>.<br/>RevisionId:  The latest updated revision of the function or alias.<br/>MasterArn:  For Lambda@Edge functions, the ARN of the master function.<br/>TracingConfig:  The function's X-Ray tracing configuration.:<br/>KMSKeyArn:  The KMS key that's used to encrypt the function's environment variables. This key is only returned if you've configured a customer managed CMK.<br/>Environment:  The function's <a href="https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html">environment variables</a>.:<br/>DeadLetterConfig:  The function's dead letter queue.:<br/>VpcConfig:  The function's networking configuration.:<br/>Version:  The version of the Lambda function.<br/>CodeSha256:  The SHA256 hash of the function's deployment package.<br/>LastModified:  The date and time that the function was last updated, in <a href="https://www.w3.org/TR/NOTE-datetime">ISO-8601 format</a> (YYYY-MM-DDThh:mm:ss.sTZD).<br/>MemorySize:  The amount of memory available to the function at runtime. <br/>Timeout:  The amount of time in seconds that Lambda allows a function to run before stopping it.<br/>Description:  The function's description.<br/>CodeSize:  The size of the function's deployment package, in bytes.<br/>Handler:  The function that Lambda calls to begin executing your function.<br/>Role:  The function's execution role.<br/>Runtime:  The runtime environment for the Lambda function.<br/>FunctionArn:  The function's Amazon Resource Name (ARN).<br/>FunctionName:  The name of the function.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The ID of the VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> A list of VPC security groups IDs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetIds</i> A list of VPC subnet IDs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetArn</i> The Amazon Resource Name (ARN) of an Amazon SQS queue or Amazon SNS topic.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Error</i> Error messages for environment variables that couldn't be applied.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Error</b>: Error messages for environment variables that couldn't be applied.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Variables</i> Environment variable key-value pairs.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> The error message.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorCode</i> The error code.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Mode</i> The tracing mode.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Error</i> Error response to GetFunctionConfiguration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Error</b>: Error response to GetFunctionConfiguration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImageConfig</i> Configuration values that override the container image Dockerfile.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ImageConfig</b>: Configuration values that override the container image Dockerfile.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>WorkingDirectory</i> Specifies the working directory.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Command</i> Specifies parameters that you want to pass in with ENTRYPOINT. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EntryPoint</i> Specifies the entry point to their application, which is typically the location of the runtime executable.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> Error message.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorCode</i> Error code.<br/>        """
        pass

    def update_function_event_invoke_config(self, FunctionName: str, Qualifier: str=None, MaximumRetryAttempts: int=None, MaximumEventAgeInSeconds: int=None, DestinationConfig: DestinationConfig=None) -> FunctionEventInvokeConfig:
        r"""Updates the configuration for asynchronous invocation for a function, version, or alias. To configure options for asynchronous invocation, use <a>PutFunctionEventInvokeConfig</a>.

        :param self:
        :param DestinationConfig:  A destination for events after they have been sent to a function for processing. <p class="title"> <b>Destinations</b>  <ul> <li>  <b>Function</b> - The Amazon Resource Name (ARN) of a Lambda function. </li> <li>  <b>Queue</b> - The ARN of an SQS queue. </li> <li>  <b>Topic</b> - The ARN of an SNS topic. </li> <li>  <b>Event Bus</b> - The ARN of an Amazon EventBridge event bus. </li> </ul>:<br/>MaximumEventAgeInSeconds:  The maximum age of a request that Lambda sends to a function for processing.<br/>MaximumRetryAttempts:  The maximum number of times to retry when the function returns an error.<br/>Qualifier:  A version number or alias name.<br/>FunctionName:  The name of the Lambda function, version, or alias. <p class="title"> <b>Name formats</b>  <ul> <li>  <b>Function name</b> - <code>my-function</code> (name-only), <code>my-function:v1</code> (with alias). </li> <li>  <b>Function ARN</b> - <code>arn:aws:lambda:us-west-2:123456789012:function:my-function</code>. </li> <li>  <b>Partial ARN</b> - <code>123456789012:function:my-function</code>. </li> </ul> You can append a version number or alias to any of the formats. The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OnFailure</i> The destination configuration for failed invocations.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>OnFailure</b>: The destination configuration for failed invocations.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OnSuccess</i> The destination configuration for successful invocations.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>OnSuccess</b>: The destination configuration for successful invocations.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Destination</i> The Amazon Resource Name (ARN) of the destination resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Destination</i> The Amazon Resource Name (ARN) of the destination resource.<br/>
        :return: DestinationConfig:  A destination for events after they have been sent to a function for processing. <p class="title"> <b>Destinations</b>  <ul> <li>  <b>Function</b> - The Amazon Resource Name (ARN) of a Lambda function. </li> <li>  <b>Queue</b> - The ARN of an SQS queue. </li> <li>  <b>Topic</b> - The ARN of an SNS topic. </li> <li>  <b>Event Bus</b> - The ARN of an Amazon EventBridge event bus. </li> </ul>:<br/>MaximumEventAgeInSeconds:  The maximum age of a request that Lambda sends to a function for processing.<br/>MaximumRetryAttempts:  The maximum number of times to retry when the function returns an error.<br/>FunctionArn:  The Amazon Resource Name (ARN) of the function.<br/>LastModified:  The date and time that the configuration was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OnFailure</i> The destination configuration for failed invocations.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>OnFailure</b>: The destination configuration for failed invocations.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OnSuccess</i> The destination configuration for successful invocations.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>OnSuccess</b>: The destination configuration for successful invocations.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Destination</i> The Amazon Resource Name (ARN) of the destination resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Destination</i> The Amazon Resource Name (ARN) of the destination resource.<br/>        """
        pass





class LexModelBuildingService(BaseClient):
    r"""<fullname>Amazon Lex Build-Time Actions</fullname>  Amazon Lex is an AWS service for building conversational voice and text interfaces. Use these actions to create, update, and delete conversational bots for new and existing client applications. """


    class GetSlotTypeVersionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_slot_type_versions` for valid parameters"""
            pass
    class GetSlotTypesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_slot_types` for valid parameters"""
            pass
    class GetIntentsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_intents` for valid parameters"""
            pass
    class GetBotChannelAssociationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_bot_channel_associations` for valid parameters"""
            pass
    class GetBotsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_bots` for valid parameters"""
            pass
    class GetBuiltinSlotTypesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_builtin_slot_types` for valid parameters"""
            pass
    class GetIntentVersionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_intent_versions` for valid parameters"""
            pass
    class GetBotAliasesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_bot_aliases` for valid parameters"""
            pass
    class GetBuiltinIntentsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_builtin_intents` for valid parameters"""
            pass
    class GetBotVersionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_bot_versions` for valid parameters"""
            pass


    class CreateBotVersionRequest(Mapping):
        pass
    
    class CreateBotVersionResponse(Mapping):
        pass
    
    class CreateIntentVersionRequest(Mapping):
        pass
    
    class CreateIntentVersionResponse(Mapping):
        pass
    
    class CreateSlotTypeVersionRequest(Mapping):
        pass
    
    class CreateSlotTypeVersionResponse(Mapping):
        pass
    
    class DeleteBotRequest(Mapping):
        pass
    
    class DeleteBotAliasRequest(Mapping):
        pass
    
    class DeleteBotChannelAssociationRequest(Mapping):
        pass
    
    class DeleteBotVersionRequest(Mapping):
        pass
    
    class DeleteIntentRequest(Mapping):
        pass
    
    class DeleteIntentVersionRequest(Mapping):
        pass
    
    class DeleteSlotTypeRequest(Mapping):
        pass
    
    class DeleteSlotTypeVersionRequest(Mapping):
        pass
    
    class DeleteUtterancesRequest(Mapping):
        pass
    
    class GetBotRequest(Mapping):
        pass
    
    class GetBotResponse(Mapping):
        pass
    
    class GetBotAliasRequest(Mapping):
        pass
    
    class GetBotAliasResponse(Mapping):
        pass
    
    class GetBotAliasesRequest(Mapping):
        pass
    
    class GetBotAliasesResponse(Mapping):
        pass
    
    class GetBotChannelAssociationRequest(Mapping):
        pass
    
    class GetBotChannelAssociationResponse(Mapping):
        pass
    
    class GetBotChannelAssociationsRequest(Mapping):
        pass
    
    class GetBotChannelAssociationsResponse(Mapping):
        pass
    
    class GetBotVersionsRequest(Mapping):
        pass
    
    class GetBotVersionsResponse(Mapping):
        pass
    
    class GetBotsRequest(Mapping):
        pass
    
    class GetBotsResponse(Mapping):
        pass
    
    class GetBuiltinIntentRequest(Mapping):
        pass
    
    class GetBuiltinIntentResponse(Mapping):
        pass
    
    class GetBuiltinIntentsRequest(Mapping):
        pass
    
    class GetBuiltinIntentsResponse(Mapping):
        pass
    
    class GetBuiltinSlotTypesRequest(Mapping):
        pass
    
    class GetBuiltinSlotTypesResponse(Mapping):
        pass
    
    class GetExportRequest(Mapping):
        pass
    
    class GetExportResponse(Mapping):
        pass
    
    class GetImportRequest(Mapping):
        pass
    
    class GetImportResponse(Mapping):
        pass
    
    class GetIntentRequest(Mapping):
        pass
    
    class GetIntentResponse(Mapping):
        pass
    
    class GetIntentVersionsRequest(Mapping):
        pass
    
    class GetIntentVersionsResponse(Mapping):
        pass
    
    class GetIntentsRequest(Mapping):
        pass
    
    class GetIntentsResponse(Mapping):
        pass
    
    class GetSlotTypeRequest(Mapping):
        pass
    
    class GetSlotTypeResponse(Mapping):
        pass
    
    class GetSlotTypeVersionsRequest(Mapping):
        pass
    
    class GetSlotTypeVersionsResponse(Mapping):
        pass
    
    class GetSlotTypesRequest(Mapping):
        pass
    
    class GetSlotTypesResponse(Mapping):
        pass
    
    class GetUtterancesViewRequest(Mapping):
        pass
    
    class GetUtterancesViewResponse(Mapping):
        pass
    
    class Version(object):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class PutBotRequest(Mapping):
        pass
    
    class PutBotResponse(Mapping):
        pass
    
    class Intent(Mapping):
        pass
    
    class Boolean(object):
        pass
    
    class ConfidenceThreshold(object):
        pass
    
    class Prompt(Mapping):
        pass
    
    class Statement(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class PutBotAliasRequest(Mapping):
        pass
    
    class PutBotAliasResponse(Mapping):
        pass
    
    class ConversationLogsRequest(Mapping):
        pass
    
    class PutIntentRequest(Mapping):
        pass
    
    class PutIntentResponse(Mapping):
        pass
    
    class Slot(Mapping):
        pass
    
    class Utterance(object):
        pass
    
    class FollowUpPrompt(Mapping):
        pass
    
    class CodeHook(Mapping):
        pass
    
    class FulfillmentActivity(Mapping):
        pass
    
    class KendraConfiguration(Mapping):
        pass
    
    class InputContext(Mapping):
        pass
    
    class OutputContext(Mapping):
        pass
    
    class PutSlotTypeRequest(Mapping):
        pass
    
    class PutSlotTypeResponse(Mapping):
        pass
    
    class EnumerationValue(Mapping):
        pass
    
    class SlotTypeConfiguration(Mapping):
        pass
    
    class StartImportRequest(Mapping):
        pass
    
    class StartImportResponse(Mapping):
        pass
    
    class Blob(object):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    def create_bot_version(self, name: str, checksum: str=None) -> CreateBotVersionResponse:
        r"""Creates a new version of the bot based on the <code>$LATEST</code> version. If the <code>$LATEST</code> version of this resource hasn't changed since you created the last version, Amazon Lex doesn't create a new version. It returns the last created version. <note> You can update only the <code>$LATEST</code> version of the bot. You can't update the numbered versions that you create with the <code>CreateBotVersion</code> operation. </note>  When you create the first version of a bot, Amazon Lex sets the version to 1. Subsequent versions increment by 1. For more information, see <a>versioning-intro</a>.   This operation requires permission for the <code>lex:CreateBotVersion</code> action. 

        :param self:
        :param checksum:  Identifies a specific revision of the <code>$LATEST</code> version of the bot. If you specify a checksum and the <code>$LATEST</code> version of the bot has a different checksum, a <code>PreconditionFailedException</code> exception is returned and Amazon Lex doesn't publish a new version. If you don't specify a checksum, Amazon Lex publishes the <code>$LATEST</code> version.<br/>name:  The name of the bot that you want to create a new version of. The name is case sensitive. <br/>
        :return: detectSentiment:  Indicates whether utterances entered by the user should be sent to Amazon Comprehend for sentiment analysis.<br/>enableModelImprovements:  Indicates whether the bot uses accuracy improvements. <code>true</code> indicates that the bot is using the improvements, otherwise, <code>false</code>.<br/>childDirected:  For each Amazon Lex bot created with the Amazon Lex Model Building Service, you must specify whether your use of Amazon Lex is related to a website, program, or other application that is directed or targeted, in whole or in part, to children under age 13 and subject to the Children's Online Privacy Protection Act (COPPA) by specifying <code>true</code> or <code>false</code> in the <code>childDirected</code> field. By specifying <code>true</code> in the <code>childDirected</code> field, you confirm that your use of Amazon Lex <b>is</b> related to a website, program, or other application that is directed or targeted, in whole or in part, to children under age 13 and subject to COPPA. By specifying <code>false</code> in the <code>childDirected</code> field, you confirm that your use of Amazon Lex <b>is not</b> related to a website, program, or other application that is directed or targeted, in whole or in part, to children under age 13 and subject to COPPA. You may not specify a default value for the <code>childDirected</code> field that does not accurately reflect whether your use of Amazon Lex is related to a website, program, or other application that is directed or targeted, in whole or in part, to children under age 13 and subject to COPPA. If your use of Amazon Lex relates to a website, program, or other application that is directed in whole or in part, to children under age 13, you must obtain any required verifiable parental consent under COPPA. For information regarding the use of Amazon Lex in connection with websites, programs, or other applications that are directed or targeted, in whole or in part, to children under age 13, see the <a href="https://aws.amazon.com/lex/faqs#data-security">Amazon Lex FAQ.</a> <br/>locale:   Specifies the target locale for the bot. <br/>version:  The version of the bot. <br/>checksum:  Checksum identifying the version of the bot that was created.<br/>voiceId:  The Amazon Polly voice ID that Amazon Lex uses for voice interactions with the user.<br/>idleSessionTTLInSeconds:  The maximum time in seconds that Amazon Lex retains the data gathered in a conversation. For more information, see <a>PutBot</a>.<br/>createdDate:  The date when the bot version was created.<br/>lastUpdatedDate:  The date when the <code>$LATEST</code> version of this bot was updated. <br/>failureReason:  If <code>status</code> is <code>FAILED</code>, Amazon Lex provides the reason that it failed to build the bot.<br/>status:   When you send a request to create or update a bot, Amazon Lex sets the <code>status</code> response element to <code>BUILDING</code>. After Amazon Lex builds the bot, it sets <code>status</code> to <code>READY</code>. If Amazon Lex can't build the bot, it sets <code>status</code> to <code>FAILED</code>. Amazon Lex returns the reason for the failure in the <code>failureReason</code> response element. <br/>abortStatement:  The message that Amazon Lex uses to cancel a conversation. For more information, see <a>PutBot</a>.:<br/>clarificationPrompt:  The message that Amazon Lex uses when it doesn't understand the user's request. For more information, see <a>PutBot</a>. :<br/>intents:  An array of <code>Intent</code> objects. For more information, see <a>PutBot</a>.<br/>description:  A description of the bot.<br/>name:  The name of the bot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>responseCard</i> A response card. Amazon Lex uses this prompt at runtime, in the <code>PostText</code> API response. It substitutes session attributes and slot values for placeholders in the response card. For more information, see <a>ex-resp-card</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>maxAttempts</i> The number of times to prompt the user for information.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>messages</i> An array of objects, each of which provides a message string and its type. You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>responseCard</i>  At runtime, if the client is using the <a href="http://docs.aws.amazon.com/lex/latest/dg/API_runtime_PostText.html">PostText</a> API, Amazon Lex includes the response card in the response. It substitutes all of the session attributes and slot values for placeholders in the response card. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>messages</i> A collection of message objects.<br/>        """
        pass

    def create_intent_version(self, name: str, checksum: str=None) -> CreateIntentVersionResponse:
        r"""Creates a new version of an intent based on the <code>$LATEST</code> version of the intent. If the <code>$LATEST</code> version of this intent hasn't changed since you last updated it, Amazon Lex doesn't create a new version. It returns the last version you created. <note> You can update only the <code>$LATEST</code> version of the intent. You can't update the numbered versions that you create with the <code>CreateIntentVersion</code> operation. </note>  When you create a version of an intent, Amazon Lex sets the version to 1. Subsequent versions increment by 1. For more information, see <a>versioning-intro</a>.  This operation requires permissions to perform the <code>lex:CreateIntentVersion</code> action. 

        :param self:
        :param checksum:  Checksum of the <code>$LATEST</code> version of the intent that should be used to create the new version. If you specify a checksum and the <code>$LATEST</code> version of the intent has a different checksum, Amazon Lex returns a <code>PreconditionFailedException</code> exception and doesn't publish a new version. If you don't specify a checksum, Amazon Lex publishes the <code>$LATEST</code> version.<br/>name:  The name of the intent that you want to create a new version of. The name is case sensitive. <br/>
        :return: outputContexts:  An array of <code>OutputContext</code> objects that lists the contexts that the intent activates when the intent is fulfilled.<br/>inputContexts:  An array of <code>InputContext</code> objects that lists the contexts that must be active for Amazon Lex to choose the intent in a conversation with the user.<br/>kendraConfiguration:  Configuration information, if any, for connecting an Amazon Kendra index with the <code>AMAZON.KendraSearchIntent</code> intent.:<br/>checksum:  Checksum of the intent version created.<br/>version:  The version number assigned to the new version of the intent.<br/>createdDate:  The date that the intent was created.<br/>lastUpdatedDate:  The date that the intent was updated. <br/>parentIntentSignature:  A unique identifier for a built-in intent.<br/>fulfillmentActivity:   Describes how the intent is fulfilled. :<br/>dialogCodeHook:  If defined, Amazon Lex invokes this Lambda function for each user input.:<br/>conclusionStatement:  After the Lambda function specified in the <code>fulfillmentActivity</code> field fulfills the intent, Amazon Lex conveys this statement to the user. :<br/>followUpPrompt:  If defined, Amazon Lex uses this prompt to solicit additional user activity after the intent is fulfilled. :<br/>rejectionStatement:  If the user answers "no" to the question defined in <code>confirmationPrompt</code>, Amazon Lex responds with this statement to acknowledge that the intent was canceled. :<br/>confirmationPrompt:  If defined, the prompt that Amazon Lex uses to confirm the user's intent before fulfilling it. :<br/>sampleUtterances:  An array of sample utterances configured for the intent. <br/>slots:  An array of slot types that defines the information required to fulfill the intent.<br/>description:  A description of the intent.<br/>name:  The name of the intent.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>responseCard</i> A response card. Amazon Lex uses this prompt at runtime, in the <code>PostText</code> API response. It substitutes session attributes and slot values for placeholders in the response card. For more information, see <a>ex-resp-card</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>maxAttempts</i> The number of times to prompt the user for information.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>messages</i> An array of objects, each of which provides a message string and its type. You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>responseCard</i>  At runtime, if the client is using the <a href="http://docs.aws.amazon.com/lex/latest/dg/API_runtime_PostText.html">PostText</a> API, Amazon Lex includes the response card in the response. It substitutes all of the session attributes and slot values for placeholders in the response card. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>messages</i> A collection of message objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>rejectionStatement</i> If the user answers "no" to the question defined in the <code>prompt</code> field, Amazon Lex responds with this statement to acknowledge that the intent was canceled. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>rejectionStatement</b>: If the user answers "no" to the question defined in the <code>prompt</code> field, Amazon Lex responds with this statement to acknowledge that the intent was canceled. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>prompt</i> Prompts for information from the user. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>prompt</b>: Prompts for information from the user. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>responseCard</i> A response card. Amazon Lex uses this prompt at runtime, in the <code>PostText</code> API response. It substitutes session attributes and slot values for placeholders in the response card. For more information, see <a>ex-resp-card</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>maxAttempts</i> The number of times to prompt the user for information.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>messages</i> An array of objects, each of which provides a message string and its type. You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>responseCard</i>  At runtime, if the client is using the <a href="http://docs.aws.amazon.com/lex/latest/dg/API_runtime_PostText.html">PostText</a> API, Amazon Lex includes the response card in the response. It substitutes all of the session attributes and slot values for placeholders in the response card. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>messages</i> A collection of message objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>responseCard</i>  At runtime, if the client is using the <a href="http://docs.aws.amazon.com/lex/latest/dg/API_runtime_PostText.html">PostText</a> API, Amazon Lex includes the response card in the response. It substitutes all of the session attributes and slot values for placeholders in the response card. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>messages</i> A collection of message objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>messageVersion</i> The version of the request-response that you want Amazon Lex to use to invoke your Lambda function. For more information, see <a>using-lambda</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>uri</i> The Amazon Resource Name (ARN) of the Lambda function.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>codeHook</i>  A description of the Lambda function that is run to fulfill the intent. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>codeHook</b>:  A description of the Lambda function that is run to fulfill the intent. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i>  How the intent should be fulfilled, either by running a Lambda function or by returning the slot data to the client application. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>messageVersion</i> The version of the request-response that you want Amazon Lex to use to invoke your Lambda function. For more information, see <a>using-lambda</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>uri</i> The Amazon Resource Name (ARN) of the Lambda function.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>role</i> The Amazon Resource Name (ARN) of an IAM role that has permission to search the Amazon Kendra index. The role must be in the same account and Region as the Amazon Lex bot. If the role does not exist, you get an exception when you call the <code>PutIntent</code> operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>queryFilterString</i> A query filter that Amazon Lex sends to Amazon Kendra to filter the response from the query. The filter is in the format defined by Amazon Kendra. For more information, see <a href="http://docs.aws.amazon.com/kendra/latest/dg/filtering.html">Filtering queries</a>. You can override this filter string with a new filter string at runtime.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>kendraIndex</i> The Amazon Resource Name (ARN) of the Amazon Kendra index that you want the AMAZON.KendraSearchIntent intent to search. The index must be in the same account and Region as the Amazon Lex bot. If the Amazon Kendra index does not exist, you get an exception when you call the <code>PutIntent</code> operation.<br/>        """
        pass

    def create_slot_type_version(self, name: str, checksum: str=None) -> CreateSlotTypeVersionResponse:
        r"""Creates a new version of a slot type based on the <code>$LATEST</code> version of the specified slot type. If the <code>$LATEST</code> version of this resource has not changed since the last version that you created, Amazon Lex doesn't create a new version. It returns the last version that you created.  <note> You can update only the <code>$LATEST</code> version of a slot type. You can't update the numbered versions that you create with the <code>CreateSlotTypeVersion</code> operation. </note> When you create a version of a slot type, Amazon Lex sets the version to 1. Subsequent versions increment by 1. For more information, see <a>versioning-intro</a>.  This operation requires permissions for the <code>lex:CreateSlotTypeVersion</code> action.

        :param self:
        :param checksum:  Checksum for the <code>$LATEST</code> version of the slot type that you want to publish. If you specify a checksum and the <code>$LATEST</code> version of the slot type has a different checksum, Amazon Lex returns a <code>PreconditionFailedException</code> exception and doesn't publish the new version. If you don't specify a checksum, Amazon Lex publishes the <code>$LATEST</code> version.<br/>name:  The name of the slot type that you want to create a new version for. The name is case sensitive. <br/>
        :return: slotTypeConfigurations:  Configuration information that extends the parent built-in slot type.<br/>parentSlotTypeSignature:  The built-in slot type used a the parent of the slot type.<br/>valueSelectionStrategy:  The strategy that Amazon Lex uses to determine the value of the slot. For more information, see <a>PutSlotType</a>.<br/>checksum:  Checksum of the <code>$LATEST</code> version of the slot type.<br/>version:  The version assigned to the new slot type version. <br/>createdDate:  The date that the slot type was created.<br/>lastUpdatedDate:  The date that the slot type was updated. When you create a resource, the creation date and last update date are the same.<br/>enumerationValues:  A list of <code>EnumerationValue</code> objects that defines the values that the slot type can take.<br/>description:  A description of the slot type.<br/>name:  The name of the slot type.<br/>        """
        pass

    def delete_bot(self, name: str):
        r"""Deletes all versions of the bot, including the <code>$LATEST</code> version. To delete a specific version of the bot, use the <a>DeleteBotVersion</a> operation. The <code>DeleteBot</code> operation doesn't immediately remove the bot schema. Instead, it is marked for deletion and removed later. Amazon Lex stores utterances indefinitely for improving the ability of your bot to respond to user inputs. These utterances are not removed when the bot is deleted. To remove the utterances, use the <a>DeleteUtterances</a> operation. If a bot has an alias, you can't delete it. Instead, the <code>DeleteBot</code> operation returns a <code>ResourceInUseException</code> exception that includes a reference to the alias that refers to the bot. To remove the reference to the bot, delete the alias. If you get the same exception again, delete the referring alias until the <code>DeleteBot</code> operation is successful. This operation requires permissions for the <code>lex:DeleteBot</code> action.

        :param self:
        :param name:  The name of the bot. The name is case sensitive. <br/>
        :return:         """
        pass

    def delete_bot_alias(self, botName: str, name: str):
        r"""Deletes an alias for the specified bot.  You can't delete an alias that is used in the association between a bot and a messaging channel. If an alias is used in a channel association, the <code>DeleteBot</code> operation returns a <code>ResourceInUseException</code> exception that includes a reference to the channel association that refers to the bot. You can remove the reference to the alias by deleting the channel association. If you get the same exception again, delete the referring association until the <code>DeleteBotAlias</code> operation is successful.

        :param self:
        :param botName:  The name of the bot that the alias points to.<br/>name:  The name of the alias to delete. The name is case sensitive. <br/>
        :return:         """
        pass

    def delete_bot_channel_association(self, botAlias: str, botName: str, name: str):
        r"""Deletes the association between an Amazon Lex bot and a messaging platform. This operation requires permission for the <code>lex:DeleteBotChannelAssociation</code> action.

        :param self:
        :param botAlias:  An alias that points to the specific version of the Amazon Lex bot to which this association is being made.<br/>botName:  The name of the Amazon Lex bot.<br/>name:  The name of the association. The name is case sensitive. <br/>
        :return:         """
        pass

    def delete_bot_version(self, version: str, name: str):
        r"""Deletes a specific version of a bot. To delete all versions of a bot, use the <a>DeleteBot</a> operation.  This operation requires permissions for the <code>lex:DeleteBotVersion</code> action.

        :param self:
        :param version:  The version of the bot to delete. You cannot delete the <code>$LATEST</code> version of the bot. To delete the <code>$LATEST</code> version, use the <a>DeleteBot</a> operation.<br/>name:  The name of the bot.<br/>
        :return:         """
        pass

    def delete_intent(self, name: str):
        r"""Deletes all versions of the intent, including the <code>$LATEST</code> version. To delete a specific version of the intent, use the <a>DeleteIntentVersion</a> operation.  You can delete a version of an intent only if it is not referenced. To delete an intent that is referred to in one or more bots (see <a>how-it-works</a>), you must remove those references first.  <note>  If you get the <code>ResourceInUseException</code> exception, it provides an example reference that shows where the intent is referenced. To remove the reference to the intent, either update the bot or delete it. If you get the same exception when you attempt to delete the intent again, repeat until the intent has no references and the call to <code>DeleteIntent</code> is successful.  </note>  This operation requires permission for the <code>lex:DeleteIntent</code> action. 

        :param self:
        :param name:  The name of the intent. The name is case sensitive. <br/>
        :return:         """
        pass

    def delete_intent_version(self, version: str, name: str):
        r"""Deletes a specific version of an intent. To delete all versions of a intent, use the <a>DeleteIntent</a> operation.  This operation requires permissions for the <code>lex:DeleteIntentVersion</code> action.

        :param self:
        :param version:  The version of the intent to delete. You cannot delete the <code>$LATEST</code> version of the intent. To delete the <code>$LATEST</code> version, use the <a>DeleteIntent</a> operation.<br/>name:  The name of the intent.<br/>
        :return:         """
        pass

    def delete_slot_type(self, name: str):
        r"""Deletes all versions of the slot type, including the <code>$LATEST</code> version. To delete a specific version of the slot type, use the <a>DeleteSlotTypeVersion</a> operation.  You can delete a version of a slot type only if it is not referenced. To delete a slot type that is referred to in one or more intents, you must remove those references first.  <note>  If you get the <code>ResourceInUseException</code> exception, the exception provides an example reference that shows the intent where the slot type is referenced. To remove the reference to the slot type, either update the intent or delete it. If you get the same exception when you attempt to delete the slot type again, repeat until the slot type has no references and the <code>DeleteSlotType</code> call is successful.  </note> This operation requires permission for the <code>lex:DeleteSlotType</code> action.

        :param self:
        :param name:  The name of the slot type. The name is case sensitive. <br/>
        :return:         """
        pass

    def delete_slot_type_version(self, version: str, name: str):
        r"""Deletes a specific version of a slot type. To delete all versions of a slot type, use the <a>DeleteSlotType</a> operation.  This operation requires permissions for the <code>lex:DeleteSlotTypeVersion</code> action.

        :param self:
        :param version:  The version of the slot type to delete. You cannot delete the <code>$LATEST</code> version of the slot type. To delete the <code>$LATEST</code> version, use the <a>DeleteSlotType</a> operation.<br/>name:  The name of the slot type.<br/>
        :return:         """
        pass

    def delete_utterances(self, userId: str, botName: str):
        r"""Deletes stored utterances. Amazon Lex stores the utterances that users send to your bot. Utterances are stored for 15 days for use with the <a>GetUtterancesView</a> operation, and then stored indefinitely for use in improving the ability of your bot to respond to user input. Use the <code>DeleteUtterances</code> operation to manually delete stored utterances for a specific user. When you use the <code>DeleteUtterances</code> operation, utterances stored for improving your bot's ability to respond to user input are deleted immediately. Utterances stored for use with the <code>GetUtterancesView</code> operation are deleted after 15 days. This operation requires permissions for the <code>lex:DeleteUtterances</code> action.

        :param self:
        :param userId:   The unique identifier for the user that made the utterances. This is the user ID that was sent in the <a href="http://docs.aws.amazon.com/lex/latest/dg/API_runtime_PostContent.html">PostContent</a> or <a href="http://docs.aws.amazon.com/lex/latest/dg/API_runtime_PostText.html">PostText</a> operation request that contained the utterance.<br/>botName:  The name of the bot that stored the utterances.<br/>
        :return:         """
        pass

    def get_bot(self, versionOrAlias: str, name: str) -> GetBotResponse:
        r"""Returns metadata information for a specific bot. You must provide the bot name and the bot version or alias.   This operation requires permissions for the <code>lex:GetBot</code> action. 

        :param self:
        :param versionOrAlias:  The version or alias of the bot.<br/>name:  The name of the bot. The name is case sensitive. <br/>
        :return: detectSentiment:  Indicates whether user utterances should be sent to Amazon Comprehend for sentiment analysis.<br/>childDirected:  For each Amazon Lex bot created with the Amazon Lex Model Building Service, you must specify whether your use of Amazon Lex is related to a website, program, or other application that is directed or targeted, in whole or in part, to children under age 13 and subject to the Children's Online Privacy Protection Act (COPPA) by specifying <code>true</code> or <code>false</code> in the <code>childDirected</code> field. By specifying <code>true</code> in the <code>childDirected</code> field, you confirm that your use of Amazon Lex <b>is</b> related to a website, program, or other application that is directed or targeted, in whole or in part, to children under age 13 and subject to COPPA. By specifying <code>false</code> in the <code>childDirected</code> field, you confirm that your use of Amazon Lex <b>is not</b> related to a website, program, or other application that is directed or targeted, in whole or in part, to children under age 13 and subject to COPPA. You may not specify a default value for the <code>childDirected</code> field that does not accurately reflect whether your use of Amazon Lex is related to a website, program, or other application that is directed or targeted, in whole or in part, to children under age 13 and subject to COPPA. If your use of Amazon Lex relates to a website, program, or other application that is directed in whole or in part, to children under age 13, you must obtain any required verifiable parental consent under COPPA. For information regarding the use of Amazon Lex in connection with websites, programs, or other applications that are directed or targeted, in whole or in part, to children under age 13, see the <a href="https://aws.amazon.com/lex/faqs#data-security">Amazon Lex FAQ.</a> <br/>locale:   The target locale for the bot. <br/>version:  The version of the bot. For a new bot, the version is always <code>$LATEST</code>.<br/>checksum:  Checksum of the bot used to identify a specific revision of the bot's <code>$LATEST</code> version.<br/>voiceId:  The Amazon Polly voice ID that Amazon Lex uses for voice interaction with the user. For more information, see <a>PutBot</a>.<br/>idleSessionTTLInSeconds:  The maximum time in seconds that Amazon Lex retains the data gathered in a conversation. For more information, see <a>PutBot</a>.<br/>createdDate:  The date that the bot was created.<br/>lastUpdatedDate:  The date that the bot was updated. When you create a resource, the creation date and last updated date are the same. <br/>failureReason:  If <code>status</code> is <code>FAILED</code>, Amazon Lex explains why it failed to build the bot.<br/>status:  The status of the bot.  When the status is <code>BUILDING</code> Amazon Lex is building the bot for testing and use. If the status of the bot is <code>READY_BASIC_TESTING</code>, you can test the bot using the exact utterances specified in the bot's intents. When the bot is ready for full testing or to run, the status is <code>READY</code>. If there was a problem with building the bot, the status is <code>FAILED</code> and the <code>failureReason</code> field explains why the bot did not build. If the bot was saved but not built, the status is <code>NOT_BUILT</code>.<br/>abortStatement:  The message that Amazon Lex returns when the user elects to end the conversation without completing it. For more information, see <a>PutBot</a>.:<br/>clarificationPrompt:  The message Amazon Lex uses when it doesn't understand the user's request. For more information, see <a>PutBot</a>. :<br/>nluIntentConfidenceThreshold:  The score that determines where Amazon Lex inserts the <code>AMAZON.FallbackIntent</code>, <code>AMAZON.KendraSearchIntent</code>, or both when returning alternative intents in a <a href="https://docs.aws.amazon.com/lex/latest/dg/API_runtime_PostContent.html">PostContent</a> or <a href="https://docs.aws.amazon.com/lex/latest/dg/API_runtime_PostText.html">PostText</a> response. <code>AMAZON.FallbackIntent</code> is inserted if the confidence score for all intents is below this value. <code>AMAZON.KendraSearchIntent</code> is only inserted if it is configured for the bot.<br/>enableModelImprovements:  Indicates whether the bot uses accuracy improvements. <code>true</code> indicates that the bot is using the improvements, otherwise, <code>false</code>.<br/>intents:  An array of <code>intent</code> objects. For more information, see <a>PutBot</a>.<br/>description:  A description of the bot.<br/>name:  The name of the bot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>responseCard</i> A response card. Amazon Lex uses this prompt at runtime, in the <code>PostText</code> API response. It substitutes session attributes and slot values for placeholders in the response card. For more information, see <a>ex-resp-card</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>maxAttempts</i> The number of times to prompt the user for information.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>messages</i> An array of objects, each of which provides a message string and its type. You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>responseCard</i>  At runtime, if the client is using the <a href="http://docs.aws.amazon.com/lex/latest/dg/API_runtime_PostText.html">PostText</a> API, Amazon Lex includes the response card in the response. It substitutes all of the session attributes and slot values for placeholders in the response card. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>messages</i> A collection of message objects.<br/>        """
        pass

    def get_bot_alias(self, botName: str, name: str) -> GetBotAliasResponse:
        r"""Returns information about an Amazon Lex bot alias. For more information about aliases, see <a>versioning-aliases</a>. This operation requires permissions for the <code>lex:GetBotAlias</code> action.

        :param self:
        :param botName:  The name of the bot.<br/>name:  The name of the bot alias. The name is case sensitive.<br/>
        :return: conversationLogs:  The settings that determine how Amazon Lex uses conversation logs for the alias.:<br/>checksum:  Checksum of the bot alias.<br/>createdDate:  The date that the bot alias was created.<br/>lastUpdatedDate:  The date that the bot alias was updated. When you create a resource, the creation date and the last updated date are the same.<br/>botName:  The name of the bot that the alias points to.<br/>botVersion:  The version of the bot that the alias points to.<br/>description:  A description of the bot alias.<br/>name:  The name of the bot alias.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>iamRoleArn</i> The Amazon Resource Name (ARN) of the IAM role used to write your logs to CloudWatch Logs or an S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>logSettings</i> The settings for your conversation logs. You can log text, audio, or both.<br/>        """
        pass

    def get_bot_aliases(self, botName: str, nextToken: str=None, maxResults: int=None, nameContains: str=None) -> GetBotAliasesResponse:
        r"""Returns a list of aliases for a specified Amazon Lex bot. This operation requires permissions for the <code>lex:GetBotAliases</code> action.

        :param self:
        :param nameContains:  Substring to match in bot alias names. An alias will be returned if any part of its name matches the substring. For example, "xyz" matches both "xyzabc" and "abcxyz."<br/>maxResults:  The maximum number of aliases to return in the response. The default is 50. . <br/>nextToken:  A pagination token for fetching the next page of aliases. If the response to this call is truncated, Amazon Lex returns a pagination token in the response. To fetch the next page of aliases, specify the pagination token in the next request. <br/>botName:  The name of the bot.<br/>
        :return: nextToken:  A pagination token for fetching next page of aliases. If the response to this call is truncated, Amazon Lex returns a pagination token in the response. To fetch the next page of aliases, specify the pagination token in the next request. <br/>BotAliases:  An array of <code>BotAliasMetadata</code> objects, each describing a bot alias.<br/>        """
        pass

    def get_bot_channel_association(self, botAlias: str, botName: str, name: str) -> GetBotChannelAssociationResponse:
        r"""Returns information about the association between an Amazon Lex bot and a messaging platform. This operation requires permissions for the <code>lex:GetBotChannelAssociation</code> action.

        :param self:
        :param botAlias:  An alias pointing to the specific version of the Amazon Lex bot to which this association is being made.<br/>botName:  The name of the Amazon Lex bot.<br/>name:  The name of the association between the bot and the channel. The name is case sensitive. <br/>
        :return: failureReason:  If <code>status</code> is <code>FAILED</code>, Amazon Lex provides the reason that it failed to create the association.<br/>status:  The status of the bot channel.  <ul> <li>  <code>CREATED</code> - The channel has been created and is ready for use. </li> <li>  <code>IN_PROGRESS</code> - Channel creation is in progress. </li> <li>  <code>FAILED</code> - There was an error creating the channel. For information about the reason for the failure, see the <code>failureReason</code> field. </li> </ul><br/>botConfiguration:  Provides information that the messaging platform needs to communicate with the Amazon Lex bot.<br/>type:  The type of the messaging platform.<br/>createdDate:  The date that the association between the bot and the channel was created.<br/>botName:  The name of the Amazon Lex bot.<br/>botAlias:  An alias pointing to the specific version of the Amazon Lex bot to which this association is being made.<br/>description:  A description of the association between the bot and the channel.<br/>name:  The name of the association between the bot and the channel.<br/>        """
        pass

    def get_bot_channel_associations(self, botAlias: str, botName: str, nextToken: str=None, maxResults: int=None, nameContains: str=None) -> GetBotChannelAssociationsResponse:
        r""" Returns a list of all of the channels associated with the specified bot.  The <code>GetBotChannelAssociations</code> operation requires permissions for the <code>lex:GetBotChannelAssociations</code> action.

        :param self:
        :param nameContains:  Substring to match in channel association names. An association will be returned if any part of its name matches the substring. For example, "xyz" matches both "xyzabc" and "abcxyz." To return all bot channel associations, use a hyphen ("-") as the <code>nameContains</code> parameter.<br/>maxResults:  The maximum number of associations to return in the response. The default is 50. <br/>nextToken:  A pagination token for fetching the next page of associations. If the response to this call is truncated, Amazon Lex returns a pagination token in the response. To fetch the next page of associations, specify the pagination token in the next request. <br/>botAlias:  An alias pointing to the specific version of the Amazon Lex bot to which this association is being made.<br/>botName:  The name of the Amazon Lex bot in the association.<br/>
        :return: nextToken:  A pagination token that fetches the next page of associations. If the response to this call is truncated, Amazon Lex returns a pagination token in the response. To fetch the next page of associations, specify the pagination token in the next request. <br/>botChannelAssociations:  An array of objects, one for each association, that provides information about the Amazon Lex bot and its association with the channel. <br/>        """
        pass

    def get_bot_versions(self, name: str, nextToken: str=None, maxResults: int=None) -> GetBotVersionsResponse:
        r"""Gets information about all of the versions of a bot. The <code>GetBotVersions</code> operation returns a <code>BotMetadata</code> object for each version of a bot. For example, if a bot has three numbered versions, the <code>GetBotVersions</code> operation returns four <code>BotMetadata</code> objects in the response, one for each numbered version and one for the <code>$LATEST</code> version.  The <code>GetBotVersions</code> operation always returns at least one version, the <code>$LATEST</code> version. This operation requires permissions for the <code>lex:GetBotVersions</code> action.

        :param self:
        :param maxResults:  The maximum number of bot versions to return in the response. The default is 10.<br/>nextToken:  A pagination token for fetching the next page of bot versions. If the response to this call is truncated, Amazon Lex returns a pagination token in the response. To fetch the next page of versions, specify the pagination token in the next request. <br/>name:  The name of the bot for which versions should be returned.<br/>
        :return: nextToken:  A pagination token for fetching the next page of bot versions. If the response to this call is truncated, Amazon Lex returns a pagination token in the response. To fetch the next page of versions, specify the pagination token in the next request. <br/>bots:  An array of <code>BotMetadata</code> objects, one for each numbered version of the bot plus one for the <code>$LATEST</code> version.<br/>        """
        pass

    def get_bots(self, nextToken: str=None, maxResults: int=None, nameContains: str=None) -> GetBotsResponse:
        r"""Returns bot information as follows:  <ul> <li> If you provide the <code>nameContains</code> field, the response includes information for the <code>$LATEST</code> version of all bots whose name contains the specified string. </li> <li> If you don't specify the <code>nameContains</code> field, the operation returns information about the <code>$LATEST</code> version of all of your bots. </li> </ul> This operation requires permission for the <code>lex:GetBots</code> action.

        :param self:
        :param nameContains:  Substring to match in bot names. A bot will be returned if any part of its name matches the substring. For example, "xyz" matches both "xyzabc" and "abcxyz."<br/>maxResults:  The maximum number of bots to return in the response that the request will return. The default is 10.<br/>nextToken:  A pagination token that fetches the next page of bots. If the response to this call is truncated, Amazon Lex returns a pagination token in the response. To fetch the next page of bots, specify the pagination token in the next request. <br/>
        :return: nextToken:  If the response is truncated, it includes a pagination token that you can specify in your next request to fetch the next page of bots. <br/>bots:  An array of <code>botMetadata</code> objects, with one entry for each bot. <br/>        """
        pass

    def get_builtin_intent(self, signature: str) -> GetBuiltinIntentResponse:
        r"""Returns information about a built-in intent. This operation requires permission for the <code>lex:GetBuiltinIntent</code> action.

        :param self:
        :param signature:  The unique identifier for a built-in intent. To find the signature for an intent, see <a href="https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/built-in-intent-ref/standard-intents">Standard Built-in Intents</a> in the <i>Alexa Skills Kit</i>.<br/>
        :return: slots:  An array of <code>BuiltinIntentSlot</code> objects, one entry for each slot type in the intent.<br/>supportedLocales:  A list of locales that the intent supports.<br/>signature:  The unique identifier for a built-in intent.<br/>        """
        pass

    def get_builtin_intents(self, locale: str=None, signatureContains: str=None, nextToken: str=None, maxResults: int=None) -> GetBuiltinIntentsResponse:
        r"""Gets a list of built-in intents that meet the specified criteria. This operation requires permission for the <code>lex:GetBuiltinIntents</code> action.

        :param self:
        :param maxResults:  The maximum number of intents to return in the response. The default is 10.<br/>nextToken:  A pagination token that fetches the next page of intents. If this API call is truncated, Amazon Lex returns a pagination token in the response. To fetch the next page of intents, use the pagination token in the next request.<br/>signatureContains:  Substring to match in built-in intent signatures. An intent will be returned if any part of its signature matches the substring. For example, "xyz" matches both "xyzabc" and "abcxyz." To find the signature for an intent, see <a href="https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/built-in-intent-ref/standard-intents">Standard Built-in Intents</a> in the <i>Alexa Skills Kit</i>.<br/>locale:  A list of locales that the intent supports.<br/>
        :return: nextToken:  A pagination token that fetches the next page of intents. If the response to this API call is truncated, Amazon Lex returns a pagination token in the response. To fetch the next page of intents, specify the pagination token in the next request.<br/>intents:  An array of <code>builtinIntentMetadata</code> objects, one for each intent in the response.<br/>        """
        pass

    def get_builtin_slot_types(self, locale: str=None, signatureContains: str=None, nextToken: str=None, maxResults: int=None) -> GetBuiltinSlotTypesResponse:
        r"""Gets a list of built-in slot types that meet the specified criteria. For a list of built-in slot types, see <a href="https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/built-in-intent-ref/slot-type-reference">Slot Type Reference</a> in the <i>Alexa Skills Kit</i>. This operation requires permission for the <code>lex:GetBuiltInSlotTypes</code> action.

        :param self:
        :param maxResults:  The maximum number of slot types to return in the response. The default is 10.<br/>nextToken:  A pagination token that fetches the next page of slot types. If the response to this API call is truncated, Amazon Lex returns a pagination token in the response. To fetch the next page of slot types, specify the pagination token in the next request.<br/>signatureContains:  Substring to match in built-in slot type signatures. A slot type will be returned if any part of its signature matches the substring. For example, "xyz" matches both "xyzabc" and "abcxyz."<br/>locale:  A list of locales that the slot type supports.<br/>
        :return: nextToken:  If the response is truncated, the response includes a pagination token that you can use in your next request to fetch the next page of slot types.<br/>slotTypes:  An array of <code>BuiltInSlotTypeMetadata</code> objects, one entry for each slot type returned.<br/>        """
        pass

    def get_export(self, exportType: str, resourceType: str, version: str, name: str) -> GetExportResponse:
        r"""Exports the contents of a Amazon Lex resource in a specified format. 

        :param self:
        :param exportType:  The format of the exported data.<br/>resourceType:  The type of resource to export. <br/>version:  The version of the bot to export.<br/>name:  The name of the bot to export.<br/>
        :return: url:  An S3 pre-signed URL that provides the location of the exported resource. The exported resource is a ZIP archive that contains the exported resource in JSON format. The structure of the archive may change. Your code should not rely on the archive structure.<br/>failureReason:  If <code>status</code> is <code>FAILED</code>, Amazon Lex provides the reason that it failed to export the resource.<br/>exportStatus:  The status of the export.  <ul> <li>  <code>IN_PROGRESS</code> - The export is in progress. </li> <li>  <code>READY</code> - The export is complete. </li> <li>  <code>FAILED</code> - The export could not be completed. </li> </ul><br/>exportType:  The format of the exported data.<br/>resourceType:  The type of the exported resource.<br/>version:  The version of the bot being exported.<br/>name:  The name of the bot being exported.<br/>        """
        pass

    def get_import(self, importId: str) -> GetImportResponse:
        r"""Gets information about an import job started with the <code>StartImport</code> operation.

        :param self:
        :param importId:  The identifier of the import job information to return.<br/>
        :return: createdDate:  A timestamp for the date and time that the import job was created.<br/>failureReason:  A string that describes why an import job failed to complete.<br/>importStatus:  The status of the import job. If the status is <code>FAILED</code>, you can get the reason for the failure from the <code>failureReason</code> field.<br/>importId:  The identifier for the specific import job.<br/>mergeStrategy:  The action taken when there was a conflict between an existing resource and a resource in the import file.<br/>resourceType:  The type of resource imported.<br/>name:  The name given to the import job.<br/>        """
        pass

    def get_intent(self, version: str, name: str) -> GetIntentResponse:
        r""" Returns information about an intent. In addition to the intent name, you must specify the intent version.   This operation requires permissions to perform the <code>lex:GetIntent</code> action. 

        :param self:
        :param version:  The version of the intent.<br/>name:  The name of the intent. The name is case sensitive. <br/>
        :return: outputContexts:  An array of <code>OutputContext</code> objects that lists the contexts that the intent activates when the intent is fulfilled.<br/>inputContexts:  An array of <code>InputContext</code> objects that lists the contexts that must be active for Amazon Lex to choose the intent in a conversation with the user.<br/>kendraConfiguration:  Configuration information, if any, to connect to an Amazon Kendra index with the <code>AMAZON.KendraSearchIntent</code> intent.:<br/>checksum:  Checksum of the intent.<br/>version:  The version of the intent.<br/>createdDate:  The date that the intent was created.<br/>lastUpdatedDate:  The date that the intent was updated. When you create a resource, the creation date and the last updated date are the same. <br/>parentIntentSignature:  A unique identifier for a built-in intent.<br/>fulfillmentActivity:  Describes how the intent is fulfilled. For more information, see <a>PutIntent</a>. :<br/>dialogCodeHook:  If defined in the bot, Amazon Amazon Lex invokes this Lambda function for each user input. For more information, see <a>PutIntent</a>. :<br/>conclusionStatement:  After the Lambda function specified in the <code>fulfillmentActivity</code> element fulfills the intent, Amazon Lex conveys this statement to the user.:<br/>followUpPrompt:  If defined in the bot, Amazon Lex uses this prompt to solicit additional user activity after the intent is fulfilled. For more information, see <a>PutIntent</a>.:<br/>rejectionStatement:  If the user answers "no" to the question defined in <code>confirmationPrompt</code>, Amazon Lex responds with this statement to acknowledge that the intent was canceled. :<br/>confirmationPrompt:  If defined in the bot, Amazon Lex uses prompt to confirm the intent before fulfilling the user's request. For more information, see <a>PutIntent</a>. :<br/>sampleUtterances:  An array of sample utterances configured for the intent.<br/>slots:  An array of intent slots configured for the intent.<br/>description:  A description of the intent.<br/>name:  The name of the intent.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>responseCard</i> A response card. Amazon Lex uses this prompt at runtime, in the <code>PostText</code> API response. It substitutes session attributes and slot values for placeholders in the response card. For more information, see <a>ex-resp-card</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>maxAttempts</i> The number of times to prompt the user for information.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>messages</i> An array of objects, each of which provides a message string and its type. You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>responseCard</i>  At runtime, if the client is using the <a href="http://docs.aws.amazon.com/lex/latest/dg/API_runtime_PostText.html">PostText</a> API, Amazon Lex includes the response card in the response. It substitutes all of the session attributes and slot values for placeholders in the response card. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>messages</i> A collection of message objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>rejectionStatement</i> If the user answers "no" to the question defined in the <code>prompt</code> field, Amazon Lex responds with this statement to acknowledge that the intent was canceled. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>rejectionStatement</b>: If the user answers "no" to the question defined in the <code>prompt</code> field, Amazon Lex responds with this statement to acknowledge that the intent was canceled. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>prompt</i> Prompts for information from the user. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>prompt</b>: Prompts for information from the user. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>responseCard</i> A response card. Amazon Lex uses this prompt at runtime, in the <code>PostText</code> API response. It substitutes session attributes and slot values for placeholders in the response card. For more information, see <a>ex-resp-card</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>maxAttempts</i> The number of times to prompt the user for information.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>messages</i> An array of objects, each of which provides a message string and its type. You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>responseCard</i>  At runtime, if the client is using the <a href="http://docs.aws.amazon.com/lex/latest/dg/API_runtime_PostText.html">PostText</a> API, Amazon Lex includes the response card in the response. It substitutes all of the session attributes and slot values for placeholders in the response card. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>messages</i> A collection of message objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>responseCard</i>  At runtime, if the client is using the <a href="http://docs.aws.amazon.com/lex/latest/dg/API_runtime_PostText.html">PostText</a> API, Amazon Lex includes the response card in the response. It substitutes all of the session attributes and slot values for placeholders in the response card. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>messages</i> A collection of message objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>messageVersion</i> The version of the request-response that you want Amazon Lex to use to invoke your Lambda function. For more information, see <a>using-lambda</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>uri</i> The Amazon Resource Name (ARN) of the Lambda function.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>codeHook</i>  A description of the Lambda function that is run to fulfill the intent. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>codeHook</b>:  A description of the Lambda function that is run to fulfill the intent. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i>  How the intent should be fulfilled, either by running a Lambda function or by returning the slot data to the client application. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>messageVersion</i> The version of the request-response that you want Amazon Lex to use to invoke your Lambda function. For more information, see <a>using-lambda</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>uri</i> The Amazon Resource Name (ARN) of the Lambda function.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>role</i> The Amazon Resource Name (ARN) of an IAM role that has permission to search the Amazon Kendra index. The role must be in the same account and Region as the Amazon Lex bot. If the role does not exist, you get an exception when you call the <code>PutIntent</code> operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>queryFilterString</i> A query filter that Amazon Lex sends to Amazon Kendra to filter the response from the query. The filter is in the format defined by Amazon Kendra. For more information, see <a href="http://docs.aws.amazon.com/kendra/latest/dg/filtering.html">Filtering queries</a>. You can override this filter string with a new filter string at runtime.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>kendraIndex</i> The Amazon Resource Name (ARN) of the Amazon Kendra index that you want the AMAZON.KendraSearchIntent intent to search. The index must be in the same account and Region as the Amazon Lex bot. If the Amazon Kendra index does not exist, you get an exception when you call the <code>PutIntent</code> operation.<br/>        """
        pass

    def get_intent_versions(self, name: str, nextToken: str=None, maxResults: int=None) -> GetIntentVersionsResponse:
        r"""Gets information about all of the versions of an intent. The <code>GetIntentVersions</code> operation returns an <code>IntentMetadata</code> object for each version of an intent. For example, if an intent has three numbered versions, the <code>GetIntentVersions</code> operation returns four <code>IntentMetadata</code> objects in the response, one for each numbered version and one for the <code>$LATEST</code> version.  The <code>GetIntentVersions</code> operation always returns at least one version, the <code>$LATEST</code> version. This operation requires permissions for the <code>lex:GetIntentVersions</code> action.

        :param self:
        :param maxResults:  The maximum number of intent versions to return in the response. The default is 10.<br/>nextToken:  A pagination token for fetching the next page of intent versions. If the response to this call is truncated, Amazon Lex returns a pagination token in the response. To fetch the next page of versions, specify the pagination token in the next request. <br/>name:  The name of the intent for which versions should be returned.<br/>
        :return: nextToken:  A pagination token for fetching the next page of intent versions. If the response to this call is truncated, Amazon Lex returns a pagination token in the response. To fetch the next page of versions, specify the pagination token in the next request. <br/>intents:  An array of <code>IntentMetadata</code> objects, one for each numbered version of the intent plus one for the <code>$LATEST</code> version.<br/>        """
        pass

    def get_intents(self, nextToken: str=None, maxResults: int=None, nameContains: str=None) -> GetIntentsResponse:
        r"""Returns intent information as follows:  <ul> <li> If you specify the <code>nameContains</code> field, returns the <code>$LATEST</code> version of all intents that contain the specified string. </li> <li>  If you don't specify the <code>nameContains</code> field, returns information about the <code>$LATEST</code> version of all intents.  </li> </ul>  The operation requires permission for the <code>lex:GetIntents</code> action. 

        :param self:
        :param nameContains:  Substring to match in intent names. An intent will be returned if any part of its name matches the substring. For example, "xyz" matches both "xyzabc" and "abcxyz."<br/>maxResults:  The maximum number of intents to return in the response. The default is 10.<br/>nextToken:  A pagination token that fetches the next page of intents. If the response to this API call is truncated, Amazon Lex returns a pagination token in the response. To fetch the next page of intents, specify the pagination token in the next request. <br/>
        :return: nextToken:  If the response is truncated, the response includes a pagination token that you can specify in your next request to fetch the next page of intents. <br/>intents:  An array of <code>Intent</code> objects. For more information, see <a>PutBot</a>.<br/>        """
        pass

    def get_slot_type(self, version: str, name: str) -> GetSlotTypeResponse:
        r"""Returns information about a specific version of a slot type. In addition to specifying the slot type name, you must specify the slot type version. This operation requires permissions for the <code>lex:GetSlotType</code> action.

        :param self:
        :param version:  The version of the slot type. <br/>name:  The name of the slot type. The name is case sensitive. <br/>
        :return: slotTypeConfigurations:  Configuration information that extends the parent built-in slot type.<br/>parentSlotTypeSignature:  The built-in slot type used as a parent for the slot type.<br/>valueSelectionStrategy:  The strategy that Amazon Lex uses to determine the value of the slot. For more information, see <a>PutSlotType</a>.<br/>checksum:  Checksum of the <code>$LATEST</code> version of the slot type.<br/>version:  The version of the slot type.<br/>createdDate:  The date that the slot type was created.<br/>lastUpdatedDate:  The date that the slot type was updated. When you create a resource, the creation date and last update date are the same.<br/>enumerationValues:  A list of <code>EnumerationValue</code> objects that defines the values that the slot type can take.<br/>description:  A description of the slot type.<br/>name:  The name of the slot type.<br/>        """
        pass

    def get_slot_type_versions(self, name: str, nextToken: str=None, maxResults: int=None) -> GetSlotTypeVersionsResponse:
        r"""Gets information about all versions of a slot type. The <code>GetSlotTypeVersions</code> operation returns a <code>SlotTypeMetadata</code> object for each version of a slot type. For example, if a slot type has three numbered versions, the <code>GetSlotTypeVersions</code> operation returns four <code>SlotTypeMetadata</code> objects in the response, one for each numbered version and one for the <code>$LATEST</code> version.  The <code>GetSlotTypeVersions</code> operation always returns at least one version, the <code>$LATEST</code> version. This operation requires permissions for the <code>lex:GetSlotTypeVersions</code> action.

        :param self:
        :param maxResults:  The maximum number of slot type versions to return in the response. The default is 10.<br/>nextToken:  A pagination token for fetching the next page of slot type versions. If the response to this call is truncated, Amazon Lex returns a pagination token in the response. To fetch the next page of versions, specify the pagination token in the next request. <br/>name:  The name of the slot type for which versions should be returned.<br/>
        :return: nextToken:  A pagination token for fetching the next page of slot type versions. If the response to this call is truncated, Amazon Lex returns a pagination token in the response. To fetch the next page of versions, specify the pagination token in the next request. <br/>slotTypes:  An array of <code>SlotTypeMetadata</code> objects, one for each numbered version of the slot type plus one for the <code>$LATEST</code> version.<br/>        """
        pass

    def get_slot_types(self, nextToken: str=None, maxResults: int=None, nameContains: str=None) -> GetSlotTypesResponse:
        r"""Returns slot type information as follows:  <ul> <li> If you specify the <code>nameContains</code> field, returns the <code>$LATEST</code> version of all slot types that contain the specified string. </li> <li>  If you don't specify the <code>nameContains</code> field, returns information about the <code>$LATEST</code> version of all slot types.  </li> </ul>  The operation requires permission for the <code>lex:GetSlotTypes</code> action. 

        :param self:
        :param nameContains:  Substring to match in slot type names. A slot type will be returned if any part of its name matches the substring. For example, "xyz" matches both "xyzabc" and "abcxyz."<br/>maxResults:  The maximum number of slot types to return in the response. The default is 10.<br/>nextToken:  A pagination token that fetches the next page of slot types. If the response to this API call is truncated, Amazon Lex returns a pagination token in the response. To fetch next page of slot types, specify the pagination token in the next request.<br/>
        :return: nextToken:  If the response is truncated, it includes a pagination token that you can specify in your next request to fetch the next page of slot types.<br/>slotTypes:  An array of objects, one for each slot type, that provides information such as the name of the slot type, the version, and a description.<br/>        """
        pass

    def get_utterances_view(self, statusType: str, botVersions: List[Version], botName: str) -> GetUtterancesViewResponse:
        r"""Use the <code>GetUtterancesView</code> operation to get information about the utterances that your users have made to your bot. You can use this list to tune the utterances that your bot responds to. For example, say that you have created a bot to order flowers. After your users have used your bot for a while, use the <code>GetUtterancesView</code> operation to see the requests that they have made and whether they have been successful. You might find that the utterance "I want flowers" is not being recognized. You could add this utterance to the <code>OrderFlowers</code> intent so that your bot recognizes that utterance. After you publish a new version of a bot, you can get information about the old version and the new so that you can compare the performance across the two versions.  Utterance statistics are generated once a day. Data is available for the last 15 days. You can request information for up to 5 versions of your bot in each request. Amazon Lex returns the most frequent utterances received by the bot in the last 15 days. The response contains information about a maximum of 100 utterances for each version. If you set <code>childDirected</code> field to true when you created your bot, or if you opted out of participating in improving Amazon Lex, utterances are not available. This operation requires permissions for the <code>lex:GetUtterancesView</code> action.

        :param self:
        :param statusType:  To return utterances that were recognized and handled, use <code>Detected</code>. To return utterances that were not recognized, use <code>Missed</code>.<br/>botVersions:  An array of bot versions for which utterance information should be returned. The limit is 5 versions per request.<br/>botName:  The name of the bot for which utterance information should be returned.<br/>
        :return: utterances:  An array of <a>UtteranceList</a> objects, each containing a list of <a>UtteranceData</a> objects describing the utterances that were processed by your bot. The response contains a maximum of 100 <code>UtteranceData</code> objects for each version. Amazon Lex returns the most frequent utterances received by the bot in the last 15 days.<br/>botName:  The name of the bot for which utterance information was returned.<br/>        """
        pass

    def list_tags_for_resource(self, resourceArn: str) -> ListTagsForResourceResponse:
        r"""Gets a list of tags associated with the specified resource. Only bots, bot aliases, and bot channels can have tags associated with them.

        :param self:
        :param resourceArn:  The Amazon Resource Name (ARN) of the resource to get a list of tags for.<br/>
        :return: tags:  The tags associated with a resource.<br/>        """
        pass

    def put_bot(self, childDirected: Boolean, locale: str, name: str, description: str=None, intents: List[Intent]=None, enableModelImprovements: Boolean=None, nluIntentConfidenceThreshold: ConfidenceThreshold=None, clarificationPrompt: Prompt=None, abortStatement: Statement=None, idleSessionTTLInSeconds: int=None, voiceId: str=None, checksum: str=None, processBehavior: str=None, detectSentiment: Boolean=None, createVersion: Boolean=None, tags: List[Tag]=None) -> PutBotResponse:
        r"""Creates an Amazon Lex conversational bot or replaces an existing bot. When you create or update a bot you are only required to specify a name, a locale, and whether the bot is directed toward children under age 13. You can use this to add intents later, or to remove intents from an existing bot. When you create a bot with the minimum information, the bot is created or updated but Amazon Lex returns the <code/> response <code>FAILED</code>. You can build the bot after you add one or more intents. For more information about Amazon Lex bots, see <a>how-it-works</a>.  If you specify the name of an existing bot, the fields in the request replace the existing values in the <code>$LATEST</code> version of the bot. Amazon Lex removes any fields that you don't provide values for in the request, except for the <code>idleTTLInSeconds</code> and <code>privacySettings</code> fields, which are set to their default values. If you don't specify values for required fields, Amazon Lex throws an exception. This operation requires permissions for the <code>lex:PutBot</code> action. For more information, see <a>security-iam</a>.

        :param self:
        :param tags:  A list of tags to add to the bot. You can only add tags when you create a bot, you can't use the <code>PutBot</code> operation to update the tags on a bot. To update tags, use the <code>TagResource</code> operation.<br/>createVersion:  When set to <code>true</code> a new numbered version of the bot is created. This is the same as calling the <code>CreateBotVersion</code> operation. If you don't specify <code>createVersion</code>, the default is <code>false</code>.<br/>detectSentiment:  When set to <code>true</code> user utterances are sent to Amazon Comprehend for sentiment analysis. If you don't specify <code>detectSentiment</code>, the default is <code>false</code>.<br/>childDirected:  For each Amazon Lex bot created with the Amazon Lex Model Building Service, you must specify whether your use of Amazon Lex is related to a website, program, or other application that is directed or targeted, in whole or in part, to children under age 13 and subject to the Children's Online Privacy Protection Act (COPPA) by specifying <code>true</code> or <code>false</code> in the <code>childDirected</code> field. By specifying <code>true</code> in the <code>childDirected</code> field, you confirm that your use of Amazon Lex <b>is</b> related to a website, program, or other application that is directed or targeted, in whole or in part, to children under age 13 and subject to COPPA. By specifying <code>false</code> in the <code>childDirected</code> field, you confirm that your use of Amazon Lex <b>is not</b> related to a website, program, or other application that is directed or targeted, in whole or in part, to children under age 13 and subject to COPPA. You may not specify a default value for the <code>childDirected</code> field that does not accurately reflect whether your use of Amazon Lex is related to a website, program, or other application that is directed or targeted, in whole or in part, to children under age 13 and subject to COPPA. If your use of Amazon Lex relates to a website, program, or other application that is directed in whole or in part, to children under age 13, you must obtain any required verifiable parental consent under COPPA. For information regarding the use of Amazon Lex in connection with websites, programs, or other applications that are directed or targeted, in whole or in part, to children under age 13, see the <a href="https://aws.amazon.com/lex/faqs#data-security">Amazon Lex FAQ.</a> <br/>locale:   Specifies the target locale for the bot. Any intent used in the bot must be compatible with the locale of the bot.  The default is <code>en-US</code>.<br/>processBehavior:  If you set the <code>processBehavior</code> element to <code>BUILD</code>, Amazon Lex builds the bot so that it can be run. If you set the element to <code>SAVE</code> Amazon Lex saves the bot, but doesn't build it.  If you don't specify this value, the default value is <code>BUILD</code>.<br/>checksum:  Identifies a specific revision of the <code>$LATEST</code> version. When you create a new bot, leave the <code>checksum</code> field blank. If you specify a checksum you get a <code>BadRequestException</code> exception. When you want to update a bot, set the <code>checksum</code> field to the checksum of the most recent revision of the <code>$LATEST</code> version. If you don't specify the <code> checksum</code> field, or if the checksum does not match the <code>$LATEST</code> version, you get a <code>PreconditionFailedException</code> exception.<br/>voiceId:  The Amazon Polly voice ID that you want Amazon Lex to use for voice interactions with the user. The locale configured for the voice must match the locale of the bot. For more information, see <a href="https://docs.aws.amazon.com/polly/latest/dg/voicelist.html">Voices in Amazon Polly</a> in the <i>Amazon Polly Developer Guide</i>.<br/>idleSessionTTLInSeconds:  The maximum time in seconds that Amazon Lex retains the data gathered in a conversation. A user interaction session remains active for the amount of time specified. If no conversation occurs during this time, the session expires and Amazon Lex deletes any data provided before the timeout. For example, suppose that a user chooses the OrderPizza intent, but gets sidetracked halfway through placing an order. If the user doesn't complete the order within the specified time, Amazon Lex discards the slot information that it gathered, and the user must start over. If you don't include the <code>idleSessionTTLInSeconds</code> element in a <code>PutBot</code> operation request, Amazon Lex uses the default value. This is also true if the request replaces an existing bot. The default is 300 seconds (5 minutes).<br/>abortStatement:  When Amazon Lex can't understand the user's input in context, it tries to elicit the information a few times. After that, Amazon Lex sends the message defined in <code>abortStatement</code> to the user, and then cancels the conversation. To set the number of retries, use the <code>valueElicitationPrompt</code> field for the slot type.  For example, in a pizza ordering bot, Amazon Lex might ask a user "What type of crust would you like?" If the user's response is not one of the expected responses (for example, "thin crust, "deep dish," etc.), Amazon Lex tries to elicit a correct response a few more times.  For example, in a pizza ordering application, <code>OrderPizza</code> might be one of the intents. This intent might require the <code>CrustType</code> slot. You specify the <code>valueElicitationPrompt</code> field when you create the <code>CrustType</code> slot. If you have defined a fallback intent the cancel statement will not be sent to the user, the fallback intent is used instead. For more information, see <a href="https://docs.aws.amazon.com/lex/latest/dg/built-in-intent-fallback.html"> AMAZON.FallbackIntent</a>.:<br/>clarificationPrompt:  When Amazon Lex doesn't understand the user's intent, it uses this message to get clarification. To specify how many times Amazon Lex should repeat the clarification prompt, use the <code>maxAttempts</code> field. If Amazon Lex still doesn't understand, it sends the message in the <code>abortStatement</code> field.  When you create a clarification prompt, make sure that it suggests the correct response from the user. for example, for a bot that orders pizza and drinks, you might create this clarification prompt: "What would you like to do? You can say 'Order a pizza' or 'Order a drink.'" If you have defined a fallback intent, it will be invoked if the clarification prompt is repeated the number of times defined in the <code>maxAttempts</code> field. For more information, see <a href="https://docs.aws.amazon.com/lex/latest/dg/built-in-intent-fallback.html"> AMAZON.FallbackIntent</a>. If you don't define a clarification prompt, at runtime Amazon Lex will return a 400 Bad Request exception in three cases:  <ul> <li> Follow-up prompt - When the user responds to a follow-up prompt but does not provide an intent. For example, in response to a follow-up prompt that says "Would you like anything else today?" the user says "Yes." Amazon Lex will return a 400 Bad Request exception because it does not have a clarification prompt to send to the user to get an intent. </li> <li> Lambda function - When using a Lambda function, you return an <code>ElicitIntent</code> dialog type. Since Amazon Lex does not have a clarification prompt to get an intent from the user, it returns a 400 Bad Request exception. </li> <li> PutSession operation - When using the <code>PutSession</code> operation, you send an <code>ElicitIntent</code> dialog type. Since Amazon Lex does not have a clarification prompt to get an intent from the user, it returns a 400 Bad Request exception. </li> </ul>:<br/>nluIntentConfidenceThreshold:  Determines the threshold where Amazon Lex will insert the <code>AMAZON.FallbackIntent</code>, <code>AMAZON.KendraSearchIntent</code>, or both when returning alternative intents in a <a href="https://docs.aws.amazon.com/lex/latest/dg/API_runtime_PostContent.html">PostContent</a> or <a href="https://docs.aws.amazon.com/lex/latest/dg/API_runtime_PostText.html">PostText</a> response. <code>AMAZON.FallbackIntent</code> and <code>AMAZON.KendraSearchIntent</code> are only inserted if they are configured for the bot. You must set the <code>enableModelImprovements</code> parameter to <code>true</code> to use confidence scores in the following regions. <ul> <li> US East (N. Virginia) (us-east-1) </li> <li> US West (Oregon) (us-west-2) </li> <li> Asia Pacific (Sydney) (ap-southeast-2) </li> <li> EU (Ireland) (eu-west-1) </li> </ul> In other Regions, the <code>enableModelImprovements</code> parameter is set to <code>true</code> by default. For example, suppose a bot is configured with the confidence threshold of 0.80 and the <code>AMAZON.FallbackIntent</code>. Amazon Lex returns three alternative intents with the following confidence scores: IntentA (0.70), IntentB (0.60), IntentC (0.50). The response from the <code>PostText</code> operation would be: <ul> <li> AMAZON.FallbackIntent </li> <li> IntentA </li> <li> IntentB </li> <li> IntentC </li> </ul><br/>enableModelImprovements:  Set to <code>true</code> to enable access to natural language understanding improvements.  When you set the <code>enableModelImprovements</code> parameter to <code>true</code> you can use the <code>nluIntentConfidenceThreshold</code> parameter to configure confidence scores. For more information, see <a href="https://docs.aws.amazon.com/lex/latest/dg/confidence-scores.html">Confidence Scores</a>. You can only set the <code>enableModelImprovements</code> parameter in certain Regions. If you set the parameter to <code>true</code>, your bot has access to accuracy improvements. The Regions where you can set the <code>enableModelImprovements</code> parameter to <code>true</code> are: <ul> <li> US East (N. Virginia) (us-east-1) </li> <li> US West (Oregon) (us-west-2) </li> <li> Asia Pacific (Sydney) (ap-southeast-2) </li> <li> EU (Ireland) (eu-west-1) </li> </ul> In other Regions, the <code>enableModelImprovements</code> parameter is set to <code>true</code> by default. In these Regions setting the parameter to <code>false</code> throws a <code>ValidationException</code> exception.<br/>intents:  An array of <code>Intent</code> objects. Each intent represents a command that a user can express. For example, a pizza ordering bot might support an OrderPizza intent. For more information, see <a>how-it-works</a>.<br/>description:  A description of the bot.<br/>name:  The name of the bot. The name is <i>not</i> case sensitive. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>responseCard</i> A response card. Amazon Lex uses this prompt at runtime, in the <code>PostText</code> API response. It substitutes session attributes and slot values for placeholders in the response card. For more information, see <a>ex-resp-card</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>maxAttempts</i> The number of times to prompt the user for information.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>messages</i> An array of objects, each of which provides a message string and its type. You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>responseCard</i>  At runtime, if the client is using the <a href="http://docs.aws.amazon.com/lex/latest/dg/API_runtime_PostText.html">PostText</a> API, Amazon Lex includes the response card in the response. It substitutes all of the session attributes and slot values for placeholders in the response card. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>messages</i> A collection of message objects.<br/>
        :return: tags:  A list of tags associated with the bot.<br/>detectSentiment:   <code>true</code> if the bot is configured to send user utterances to Amazon Comprehend for sentiment analysis. If the <code>detectSentiment</code> field was not specified in the request, the <code>detectSentiment</code> field is <code>false</code> in the response.<br/>createVersion:   <code>True</code> if a new version of the bot was created. If the <code>createVersion</code> field was not specified in the request, the <code>createVersion</code> field is set to false in the response.<br/>childDirected:  For each Amazon Lex bot created with the Amazon Lex Model Building Service, you must specify whether your use of Amazon Lex is related to a website, program, or other application that is directed or targeted, in whole or in part, to children under age 13 and subject to the Children's Online Privacy Protection Act (COPPA) by specifying <code>true</code> or <code>false</code> in the <code>childDirected</code> field. By specifying <code>true</code> in the <code>childDirected</code> field, you confirm that your use of Amazon Lex <b>is</b> related to a website, program, or other application that is directed or targeted, in whole or in part, to children under age 13 and subject to COPPA. By specifying <code>false</code> in the <code>childDirected</code> field, you confirm that your use of Amazon Lex <b>is not</b> related to a website, program, or other application that is directed or targeted, in whole or in part, to children under age 13 and subject to COPPA. You may not specify a default value for the <code>childDirected</code> field that does not accurately reflect whether your use of Amazon Lex is related to a website, program, or other application that is directed or targeted, in whole or in part, to children under age 13 and subject to COPPA. If your use of Amazon Lex relates to a website, program, or other application that is directed in whole or in part, to children under age 13, you must obtain any required verifiable parental consent under COPPA. For information regarding the use of Amazon Lex in connection with websites, programs, or other applications that are directed or targeted, in whole or in part, to children under age 13, see the <a href="https://aws.amazon.com/lex/faqs#data-security">Amazon Lex FAQ.</a> <br/>locale:   The target locale for the bot. <br/>version:  The version of the bot. For a new bot, the version is always <code>$LATEST</code>.<br/>checksum:  Checksum of the bot that you created.<br/>voiceId:  The Amazon Polly voice ID that Amazon Lex uses for voice interaction with the user. For more information, see <a>PutBot</a>.<br/>idleSessionTTLInSeconds:  The maximum length of time that Amazon Lex retains the data gathered in a conversation. For more information, see <a>PutBot</a>.<br/>createdDate:  The date that the bot was created.<br/>lastUpdatedDate:  The date that the bot was updated. When you create a resource, the creation date and last updated date are the same.<br/>failureReason:  If <code>status</code> is <code>FAILED</code>, Amazon Lex provides the reason that it failed to build the bot.<br/>status:   When you send a request to create a bot with <code>processBehavior</code> set to <code>BUILD</code>, Amazon Lex sets the <code>status</code> response element to <code>BUILDING</code>. In the <code>READY_BASIC_TESTING</code> state you can test the bot with user inputs that exactly match the utterances configured for the bot's intents and values in the slot types. If Amazon Lex can't build the bot, Amazon Lex sets <code>status</code> to <code>FAILED</code>. Amazon Lex returns the reason for the failure in the <code>failureReason</code> response element.  When you set <code>processBehavior</code> to <code>SAVE</code>, Amazon Lex sets the status code to <code>NOT BUILT</code>. When the bot is in the <code>READY</code> state you can test and publish the bot.<br/>abortStatement:  The message that Amazon Lex uses to cancel a conversation. For more information, see <a>PutBot</a>.:<br/>clarificationPrompt:   The prompts that Amazon Lex uses when it doesn't understand the user's intent. For more information, see <a>PutBot</a>. :<br/>nluIntentConfidenceThreshold:  The score that determines where Amazon Lex inserts the <code>AMAZON.FallbackIntent</code>, <code>AMAZON.KendraSearchIntent</code>, or both when returning alternative intents in a <a href="https://docs.aws.amazon.com/lex/latest/dg/API_runtime_PostContent.html">PostContent</a> or <a href="https://docs.aws.amazon.com/lex/latest/dg/API_runtime_PostText.html">PostText</a> response. <code>AMAZON.FallbackIntent</code> is inserted if the confidence score for all intents is below this value. <code>AMAZON.KendraSearchIntent</code> is only inserted if it is configured for the bot.<br/>enableModelImprovements:  Indicates whether the bot uses accuracy improvements. <code>true</code> indicates that the bot is using the improvements, otherwise, <code>false</code>.<br/>intents:  An array of <code>Intent</code> objects. For more information, see <a>PutBot</a>.<br/>description:  A description of the bot.<br/>name:  The name of the bot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>responseCard</i> A response card. Amazon Lex uses this prompt at runtime, in the <code>PostText</code> API response. It substitutes session attributes and slot values for placeholders in the response card. For more information, see <a>ex-resp-card</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>maxAttempts</i> The number of times to prompt the user for information.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>messages</i> An array of objects, each of which provides a message string and its type. You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>responseCard</i>  At runtime, if the client is using the <a href="http://docs.aws.amazon.com/lex/latest/dg/API_runtime_PostText.html">PostText</a> API, Amazon Lex includes the response card in the response. It substitutes all of the session attributes and slot values for placeholders in the response card. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>messages</i> A collection of message objects.<br/>        """
        pass

    def put_bot_alias(self, botName: str, botVersion: str, name: str, description: str=None, checksum: str=None, conversationLogs: ConversationLogsRequest=None, tags: List[Tag]=None) -> PutBotAliasResponse:
        r"""Creates an alias for the specified version of the bot or replaces an alias for the specified bot. To change the version of the bot that the alias points to, replace the alias. For more information about aliases, see <a>versioning-aliases</a>. This operation requires permissions for the <code>lex:PutBotAlias</code> action. 

        :param self:
        :param tags:  A list of tags to add to the bot alias. You can only add tags when you create an alias, you can't use the <code>PutBotAlias</code> operation to update the tags on a bot alias. To update tags, use the <code>TagResource</code> operation.<br/>conversationLogs:  Settings for conversation logs for the alias.:<br/>checksum:  Identifies a specific revision of the <code>$LATEST</code> version. When you create a new bot alias, leave the <code>checksum</code> field blank. If you specify a checksum you get a <code>BadRequestException</code> exception. When you want to update a bot alias, set the <code>checksum</code> field to the checksum of the most recent revision of the <code>$LATEST</code> version. If you don't specify the <code> checksum</code> field, or if the checksum does not match the <code>$LATEST</code> version, you get a <code>PreconditionFailedException</code> exception.<br/>botName:  The name of the bot.<br/>botVersion:  The version of the bot.<br/>description:  A description of the alias.<br/>name:  The name of the alias. The name is <i>not</i> case sensitive.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>iamRoleArn</i> The Amazon Resource Name (ARN) of an IAM role with permission to write to your CloudWatch Logs for text logs and your S3 bucket for audio logs. If audio encryption is enabled, this role also provides access permission for the AWS KMS key used for encrypting audio logs. For more information, see <a href="https://docs.aws.amazon.com/lex/latest/dg/conversation-logs-role-and-policy.html">Creating an IAM Role and Policy for Conversation Logs</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>logSettings</i> The settings for your conversation logs. You can log the conversation text, conversation audio, or both.<br/>
        :return: tags:  A list of tags associated with a bot.<br/>conversationLogs:  The settings that determine how Amazon Lex uses conversation logs for the alias.:<br/>checksum:  The checksum for the current version of the alias.<br/>createdDate:  The date that the bot alias was created.<br/>lastUpdatedDate:  The date that the bot alias was updated. When you create a resource, the creation date and the last updated date are the same.<br/>botName:  The name of the bot that the alias points to.<br/>botVersion:  The version of the bot that the alias points to.<br/>description:  A description of the alias.<br/>name:  The name of the alias.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>iamRoleArn</i> The Amazon Resource Name (ARN) of the IAM role used to write your logs to CloudWatch Logs or an S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>logSettings</i> The settings for your conversation logs. You can log text, audio, or both.<br/>        """
        pass

    def put_intent(self, name: str, description: str=None, slots: List[Slot]=None, sampleUtterances: List[Utterance]=None, confirmationPrompt: Prompt=None, rejectionStatement: Statement=None, followUpPrompt: FollowUpPrompt=None, conclusionStatement: Statement=None, dialogCodeHook: CodeHook=None, fulfillmentActivity: FulfillmentActivity=None, parentIntentSignature: str=None, checksum: str=None, createVersion: Boolean=None, kendraConfiguration: KendraConfiguration=None, inputContexts: List[InputContext]=None, outputContexts: List[OutputContext]=None) -> PutIntentResponse:
        r"""Creates an intent or replaces an existing intent. To define the interaction between the user and your bot, you use one or more intents. For a pizza ordering bot, for example, you would create an <code>OrderPizza</code> intent.  To create an intent or replace an existing intent, you must provide the following: <ul> <li> Intent name. For example, <code>OrderPizza</code>. </li> <li> Sample utterances. For example, "Can I order a pizza, please." and "I want to order a pizza." </li> <li> Information to be gathered. You specify slot types for the information that your bot will request from the user. You can specify standard slot types, such as a date or a time, or custom slot types such as the size and crust of a pizza. </li> <li> How the intent will be fulfilled. You can provide a Lambda function or configure the intent to return the intent information to the client application. If you use a Lambda function, when all of the intent information is available, Amazon Lex invokes your Lambda function. If you configure your intent to return the intent information to the client application.  </li> </ul> You can specify other optional information in the request, such as: <ul> <li> A confirmation prompt to ask the user to confirm an intent. For example, "Shall I order your pizza?" </li> <li> A conclusion statement to send to the user after the intent has been fulfilled. For example, "I placed your pizza order." </li> <li> A follow-up prompt that asks the user for additional activity. For example, asking "Do you want to order a drink with your pizza?" </li> </ul> If you specify an existing intent name to update the intent, Amazon Lex replaces the values in the <code>$LATEST</code> version of the intent with the values in the request. Amazon Lex removes fields that you don't provide in the request. If you don't specify the required fields, Amazon Lex throws an exception. When you update the <code>$LATEST</code> version of an intent, the <code>status</code> field of any bot that uses the <code>$LATEST</code> version of the intent is set to <code>NOT_BUILT</code>. For more information, see <a>how-it-works</a>. This operation requires permissions for the <code>lex:PutIntent</code> action.

        :param self:
        :param outputContexts:  An array of <code>OutputContext</code> objects that lists the contexts that the intent activates when the intent is fulfilled.<br/>inputContexts:  An array of <code>InputContext</code> objects that lists the contexts that must be active for Amazon Lex to choose the intent in a conversation with the user.<br/>kendraConfiguration:  Configuration information required to use the <code>AMAZON.KendraSearchIntent</code> intent to connect to an Amazon Kendra index. For more information, see <a href="http://docs.aws.amazon.com/lex/latest/dg/built-in-intent-kendra-search.html"> AMAZON.KendraSearchIntent</a>.:<br/>createVersion:  When set to <code>true</code> a new numbered version of the intent is created. This is the same as calling the <code>CreateIntentVersion</code> operation. If you do not specify <code>createVersion</code>, the default is <code>false</code>.<br/>checksum:  Identifies a specific revision of the <code>$LATEST</code> version. When you create a new intent, leave the <code>checksum</code> field blank. If you specify a checksum you get a <code>BadRequestException</code> exception. When you want to update a intent, set the <code>checksum</code> field to the checksum of the most recent revision of the <code>$LATEST</code> version. If you don't specify the <code> checksum</code> field, or if the checksum does not match the <code>$LATEST</code> version, you get a <code>PreconditionFailedException</code> exception.<br/>parentIntentSignature:  A unique identifier for the built-in intent to base this intent on. To find the signature for an intent, see <a href="https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/built-in-intent-ref/standard-intents">Standard Built-in Intents</a> in the <i>Alexa Skills Kit</i>.<br/>fulfillmentActivity:  Required. Describes how the intent is fulfilled. For example, after a user provides all of the information for a pizza order, <code>fulfillmentActivity</code> defines how the bot places an order with a local pizza store.   You might configure Amazon Lex to return all of the intent information to the client application, or direct it to invoke a Lambda function that can process the intent (for example, place an order with a pizzeria). :<br/>dialogCodeHook:   Specifies a Lambda function to invoke for each user input. You can invoke this Lambda function to personalize user interaction.  For example, suppose your bot determines that the user is John. Your Lambda function might retrieve John's information from a backend database and prepopulate some of the values. For example, if you find that John is gluten intolerant, you might set the corresponding intent slot, <code>GlutenIntolerant</code>, to true. You might find John's phone number and set the corresponding session attribute. :<br/>conclusionStatement:   The statement that you want Amazon Lex to convey to the user after the intent is successfully fulfilled by the Lambda function.  This element is relevant only if you provide a Lambda function in the <code>fulfillmentActivity</code>. If you return the intent to the client application, you can't specify this element. <note> The <code>followUpPrompt</code> and <code>conclusionStatement</code> are mutually exclusive. You can specify only one. </note>:<br/>followUpPrompt:  Amazon Lex uses this prompt to solicit additional activity after fulfilling an intent. For example, after the <code>OrderPizza</code> intent is fulfilled, you might prompt the user to order a drink. The action that Amazon Lex takes depends on the user's response, as follows: <ul> <li> If the user says "Yes" it responds with the clarification prompt that is configured for the bot. </li> <li> if the user says "Yes" and continues with an utterance that triggers an intent it starts a conversation for the intent. </li> <li> If the user says "No" it responds with the rejection statement configured for the the follow-up prompt. </li> <li> If it doesn't recognize the utterance it repeats the follow-up prompt again. </li> </ul> The <code>followUpPrompt</code> field and the <code>conclusionStatement</code> field are mutually exclusive. You can specify only one. :<br/>rejectionStatement:  When the user answers "no" to the question defined in <code>confirmationPrompt</code>, Amazon Lex responds with this statement to acknowledge that the intent was canceled.  <note> You must provide both the <code>rejectionStatement</code> and the <code>confirmationPrompt</code>, or neither. </note>:<br/>confirmationPrompt:  Prompts the user to confirm the intent. This question should have a yes or no answer. Amazon Lex uses this prompt to ensure that the user acknowledges that the intent is ready for fulfillment. For example, with the <code>OrderPizza</code> intent, you might want to confirm that the order is correct before placing it. For other intents, such as intents that simply respond to user questions, you might not need to ask the user for confirmation before providing the information.  <note> You you must provide both the <code>rejectionStatement</code> and the <code>confirmationPrompt</code>, or neither. </note>:<br/>sampleUtterances:  An array of utterances (strings) that a user might say to signal the intent. For example, "I want {PizzaSize} pizza", "Order {Quantity} {PizzaSize} pizzas".  In each utterance, a slot name is enclosed in curly braces. <br/>slots:  An array of intent slots. At runtime, Amazon Lex elicits required slot values from the user using prompts defined in the slots. For more information, see <a>how-it-works</a>. <br/>description:  A description of the intent.<br/>name:  The name of the intent. The name is <i>not</i> case sensitive.  The name can't match a built-in intent name, or a built-in intent name with "AMAZON." removed. For example, because there is a built-in intent called <code>AMAZON.HelpIntent</code>, you can't create a custom intent called <code>HelpIntent</code>. For a list of built-in intents, see <a href="https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/built-in-intent-ref/standard-intents">Standard Built-in Intents</a> in the <i>Alexa Skills Kit</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>responseCard</i> A response card. Amazon Lex uses this prompt at runtime, in the <code>PostText</code> API response. It substitutes session attributes and slot values for placeholders in the response card. For more information, see <a>ex-resp-card</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>maxAttempts</i> The number of times to prompt the user for information.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>messages</i> An array of objects, each of which provides a message string and its type. You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>responseCard</i>  At runtime, if the client is using the <a href="http://docs.aws.amazon.com/lex/latest/dg/API_runtime_PostText.html">PostText</a> API, Amazon Lex includes the response card in the response. It substitutes all of the session attributes and slot values for placeholders in the response card. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>messages</i> A collection of message objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>rejectionStatement</i> If the user answers "no" to the question defined in the <code>prompt</code> field, Amazon Lex responds with this statement to acknowledge that the intent was canceled. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>rejectionStatement</b>: If the user answers "no" to the question defined in the <code>prompt</code> field, Amazon Lex responds with this statement to acknowledge that the intent was canceled. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>prompt</i> Prompts for information from the user. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>prompt</b>: Prompts for information from the user. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>responseCard</i> A response card. Amazon Lex uses this prompt at runtime, in the <code>PostText</code> API response. It substitutes session attributes and slot values for placeholders in the response card. For more information, see <a>ex-resp-card</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>maxAttempts</i> The number of times to prompt the user for information.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>messages</i> An array of objects, each of which provides a message string and its type. You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>responseCard</i>  At runtime, if the client is using the <a href="http://docs.aws.amazon.com/lex/latest/dg/API_runtime_PostText.html">PostText</a> API, Amazon Lex includes the response card in the response. It substitutes all of the session attributes and slot values for placeholders in the response card. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>messages</i> A collection of message objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>responseCard</i>  At runtime, if the client is using the <a href="http://docs.aws.amazon.com/lex/latest/dg/API_runtime_PostText.html">PostText</a> API, Amazon Lex includes the response card in the response. It substitutes all of the session attributes and slot values for placeholders in the response card. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>messages</i> A collection of message objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>messageVersion</i> The version of the request-response that you want Amazon Lex to use to invoke your Lambda function. For more information, see <a>using-lambda</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>uri</i> The Amazon Resource Name (ARN) of the Lambda function.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>codeHook</i>  A description of the Lambda function that is run to fulfill the intent. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>codeHook</b>:  A description of the Lambda function that is run to fulfill the intent. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i>  How the intent should be fulfilled, either by running a Lambda function or by returning the slot data to the client application. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>messageVersion</i> The version of the request-response that you want Amazon Lex to use to invoke your Lambda function. For more information, see <a>using-lambda</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>uri</i> The Amazon Resource Name (ARN) of the Lambda function.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>role</i> The Amazon Resource Name (ARN) of an IAM role that has permission to search the Amazon Kendra index. The role must be in the same account and Region as the Amazon Lex bot. If the role does not exist, you get an exception when you call the <code>PutIntent</code> operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>queryFilterString</i> A query filter that Amazon Lex sends to Amazon Kendra to filter the response from the query. The filter is in the format defined by Amazon Kendra. For more information, see <a href="http://docs.aws.amazon.com/kendra/latest/dg/filtering.html">Filtering queries</a>. You can override this filter string with a new filter string at runtime.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>kendraIndex</i> The Amazon Resource Name (ARN) of the Amazon Kendra index that you want the AMAZON.KendraSearchIntent intent to search. The index must be in the same account and Region as the Amazon Lex bot. If the Amazon Kendra index does not exist, you get an exception when you call the <code>PutIntent</code> operation.<br/>
        :return: outputContexts:  An array of <code>OutputContext</code> objects that lists the contexts that the intent activates when the intent is fulfilled.<br/>inputContexts:  An array of <code>InputContext</code> objects that lists the contexts that must be active for Amazon Lex to choose the intent in a conversation with the user.<br/>kendraConfiguration:  Configuration information, if any, required to connect to an Amazon Kendra index and use the <code>AMAZON.KendraSearchIntent</code> intent.:<br/>createVersion:   <code>True</code> if a new version of the intent was created. If the <code>createVersion</code> field was not specified in the request, the <code>createVersion</code> field is set to false in the response.<br/>checksum:  Checksum of the <code>$LATEST</code>version of the intent created or updated.<br/>version:  The version of the intent. For a new intent, the version is always <code>$LATEST</code>.<br/>createdDate:  The date that the intent was created.<br/>lastUpdatedDate:  The date that the intent was updated. When you create a resource, the creation date and last update dates are the same.<br/>parentIntentSignature:  A unique identifier for the built-in intent that this intent is based on.<br/>fulfillmentActivity:  If defined in the intent, Amazon Lex invokes this Lambda function to fulfill the intent after the user provides all of the information required by the intent.:<br/>dialogCodeHook:  If defined in the intent, Amazon Lex invokes this Lambda function for each user input.:<br/>conclusionStatement:  After the Lambda function specified in the<code>fulfillmentActivity</code>intent fulfills the intent, Amazon Lex conveys this statement to the user.:<br/>followUpPrompt:  If defined in the intent, Amazon Lex uses this prompt to solicit additional user activity after the intent is fulfilled.:<br/>rejectionStatement:  If the user answers "no" to the question defined in <code>confirmationPrompt</code> Amazon Lex responds with this statement to acknowledge that the intent was canceled. :<br/>confirmationPrompt:  If defined in the intent, Amazon Lex prompts the user to confirm the intent before fulfilling it.:<br/>sampleUtterances:   An array of sample utterances that are configured for the intent. <br/>slots:  An array of intent slots that are configured for the intent.<br/>description:  A description of the intent.<br/>name:  The name of the intent.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>responseCard</i> A response card. Amazon Lex uses this prompt at runtime, in the <code>PostText</code> API response. It substitutes session attributes and slot values for placeholders in the response card. For more information, see <a>ex-resp-card</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>maxAttempts</i> The number of times to prompt the user for information.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>messages</i> An array of objects, each of which provides a message string and its type. You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>responseCard</i>  At runtime, if the client is using the <a href="http://docs.aws.amazon.com/lex/latest/dg/API_runtime_PostText.html">PostText</a> API, Amazon Lex includes the response card in the response. It substitutes all of the session attributes and slot values for placeholders in the response card. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>messages</i> A collection of message objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>rejectionStatement</i> If the user answers "no" to the question defined in the <code>prompt</code> field, Amazon Lex responds with this statement to acknowledge that the intent was canceled. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>rejectionStatement</b>: If the user answers "no" to the question defined in the <code>prompt</code> field, Amazon Lex responds with this statement to acknowledge that the intent was canceled. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>prompt</i> Prompts for information from the user. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>prompt</b>: Prompts for information from the user. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>responseCard</i> A response card. Amazon Lex uses this prompt at runtime, in the <code>PostText</code> API response. It substitutes session attributes and slot values for placeholders in the response card. For more information, see <a>ex-resp-card</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>maxAttempts</i> The number of times to prompt the user for information.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>messages</i> An array of objects, each of which provides a message string and its type. You can specify the message string in plain text or in Speech Synthesis Markup Language (SSML).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>responseCard</i>  At runtime, if the client is using the <a href="http://docs.aws.amazon.com/lex/latest/dg/API_runtime_PostText.html">PostText</a> API, Amazon Lex includes the response card in the response. It substitutes all of the session attributes and slot values for placeholders in the response card. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>messages</i> A collection of message objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>responseCard</i>  At runtime, if the client is using the <a href="http://docs.aws.amazon.com/lex/latest/dg/API_runtime_PostText.html">PostText</a> API, Amazon Lex includes the response card in the response. It substitutes all of the session attributes and slot values for placeholders in the response card. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>messages</i> A collection of message objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>messageVersion</i> The version of the request-response that you want Amazon Lex to use to invoke your Lambda function. For more information, see <a>using-lambda</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>uri</i> The Amazon Resource Name (ARN) of the Lambda function.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>codeHook</i>  A description of the Lambda function that is run to fulfill the intent. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>codeHook</b>:  A description of the Lambda function that is run to fulfill the intent. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i>  How the intent should be fulfilled, either by running a Lambda function or by returning the slot data to the client application. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>messageVersion</i> The version of the request-response that you want Amazon Lex to use to invoke your Lambda function. For more information, see <a>using-lambda</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>uri</i> The Amazon Resource Name (ARN) of the Lambda function.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>role</i> The Amazon Resource Name (ARN) of an IAM role that has permission to search the Amazon Kendra index. The role must be in the same account and Region as the Amazon Lex bot. If the role does not exist, you get an exception when you call the <code>PutIntent</code> operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>queryFilterString</i> A query filter that Amazon Lex sends to Amazon Kendra to filter the response from the query. The filter is in the format defined by Amazon Kendra. For more information, see <a href="http://docs.aws.amazon.com/kendra/latest/dg/filtering.html">Filtering queries</a>. You can override this filter string with a new filter string at runtime.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>kendraIndex</i> The Amazon Resource Name (ARN) of the Amazon Kendra index that you want the AMAZON.KendraSearchIntent intent to search. The index must be in the same account and Region as the Amazon Lex bot. If the Amazon Kendra index does not exist, you get an exception when you call the <code>PutIntent</code> operation.<br/>        """
        pass

    def put_slot_type(self, name: str, description: str=None, enumerationValues: List[EnumerationValue]=None, checksum: str=None, valueSelectionStrategy: str=None, createVersion: Boolean=None, parentSlotTypeSignature: str=None, slotTypeConfigurations: List[SlotTypeConfiguration]=None) -> PutSlotTypeResponse:
        r"""Creates a custom slot type or replaces an existing custom slot type. To create a custom slot type, specify a name for the slot type and a set of enumeration values, which are the values that a slot of this type can assume. For more information, see <a>how-it-works</a>. If you specify the name of an existing slot type, the fields in the request replace the existing values in the <code>$LATEST</code> version of the slot type. Amazon Lex removes the fields that you don't provide in the request. If you don't specify required fields, Amazon Lex throws an exception. When you update the <code>$LATEST</code> version of a slot type, if a bot uses the <code>$LATEST</code> version of an intent that contains the slot type, the bot's <code>status</code> field is set to <code>NOT_BUILT</code>. This operation requires permissions for the <code>lex:PutSlotType</code> action.

        :param self:
        :param slotTypeConfigurations:  Configuration information that extends the parent built-in slot type. The configuration is added to the settings for the parent slot type.<br/>parentSlotTypeSignature:  The built-in slot type used as the parent of the slot type. When you define a parent slot type, the new slot type has all of the same configuration as the parent. Only <code>AMAZON.AlphaNumeric</code> is supported.<br/>createVersion:  When set to <code>true</code> a new numbered version of the slot type is created. This is the same as calling the <code>CreateSlotTypeVersion</code> operation. If you do not specify <code>createVersion</code>, the default is <code>false</code>.<br/>valueSelectionStrategy:  Determines the slot resolution strategy that Amazon Lex uses to return slot type values. The field can be set to one of the following values: <ul> <li>  <code>ORIGINAL_VALUE</code> - Returns the value entered by the user, if the user value is similar to the slot value. </li> <li>  <code>TOP_RESOLUTION</code> - If there is a resolution list for the slot, return the first value in the resolution list as the slot type value. If there is no resolution list, null is returned. </li> </ul> If you don't specify the <code>valueSelectionStrategy</code>, the default is <code>ORIGINAL_VALUE</code>.<br/>checksum:  Identifies a specific revision of the <code>$LATEST</code> version. When you create a new slot type, leave the <code>checksum</code> field blank. If you specify a checksum you get a <code>BadRequestException</code> exception. When you want to update a slot type, set the <code>checksum</code> field to the checksum of the most recent revision of the <code>$LATEST</code> version. If you don't specify the <code> checksum</code> field, or if the checksum does not match the <code>$LATEST</code> version, you get a <code>PreconditionFailedException</code> exception.<br/>enumerationValues:  A list of <code>EnumerationValue</code> objects that defines the values that the slot type can take. Each value can have a list of <code>synonyms</code>, which are additional values that help train the machine learning model about the values that it resolves for a slot.  A regular expression slot type doesn't require enumeration values. All other slot types require a list of enumeration values. When Amazon Lex resolves a slot value, it generates a resolution list that contains up to five possible values for the slot. If you are using a Lambda function, this resolution list is passed to the function. If you are not using a Lambda function you can choose to return the value that the user entered or the first value in the resolution list as the slot value. The <code>valueSelectionStrategy</code> field indicates the option to use. <br/>description:  A description of the slot type.<br/>name:  The name of the slot type. The name is <i>not</i> case sensitive.  The name can't match a built-in slot type name, or a built-in slot type name with "AMAZON." removed. For example, because there is a built-in slot type called <code>AMAZON.DATE</code>, you can't create a custom slot type called <code>DATE</code>. For a list of built-in slot types, see <a href="https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/built-in-intent-ref/slot-type-reference">Slot Type Reference</a> in the <i>Alexa Skills Kit</i>.<br/>
        :return: slotTypeConfigurations:  Configuration information that extends the parent built-in slot type.<br/>parentSlotTypeSignature:  The built-in slot type used as the parent of the slot type.<br/>createVersion:   <code>True</code> if a new version of the slot type was created. If the <code>createVersion</code> field was not specified in the request, the <code>createVersion</code> field is set to false in the response.<br/>valueSelectionStrategy:  The slot resolution strategy that Amazon Lex uses to determine the value of the slot. For more information, see <a>PutSlotType</a>.<br/>checksum:  Checksum of the <code>$LATEST</code> version of the slot type.<br/>version:  The version of the slot type. For a new slot type, the version is always <code>$LATEST</code>. <br/>createdDate:  The date that the slot type was created.<br/>lastUpdatedDate:  The date that the slot type was updated. When you create a slot type, the creation date and last update date are the same.<br/>enumerationValues:  A list of <code>EnumerationValue</code> objects that defines the values that the slot type can take.<br/>description:  A description of the slot type.<br/>name:  The name of the slot type.<br/>        """
        pass

    def start_import(self, mergeStrategy: str, resourceType: str, payload: Blob, tags: List[Tag]=None) -> StartImportResponse:
        r"""Starts a job to import a resource to Amazon Lex.

        :param self:
        :param tags:  A list of tags to add to the imported bot. You can only add tags when you import a bot, you can't add tags to an intent or slot type.<br/>mergeStrategy:  Specifies the action that the <code>StartImport</code> operation should take when there is an existing resource with the same name. <ul> <li> FAIL_ON_CONFLICT - The import operation is stopped on the first conflict between a resource in the import file and an existing resource. The name of the resource causing the conflict is in the <code>failureReason</code> field of the response to the <code>GetImport</code> operation. OVERWRITE_LATEST - The import operation proceeds even if there is a conflict with an existing resource. The $LASTEST version of the existing resource is overwritten with the data from the import file. </li> </ul><br/>resourceType:  Specifies the type of resource to export. Each resource also exports any resources that it depends on.  <ul> <li> A bot exports dependent intents. </li> <li> An intent exports dependent slot types. </li> </ul><br/>payload:  A zip archive in binary format. The archive should contain one file, a JSON file containing the resource to import. The resource should match the type specified in the <code>resourceType</code> field.<br/>
        :return: createdDate:  A timestamp for the date and time that the import job was requested.<br/>tags:  A list of tags added to the imported bot.<br/>importStatus:  The status of the import job. If the status is <code>FAILED</code>, you can get the reason for the failure using the <code>GetImport</code> operation.<br/>importId:  The identifier for the specific import job.<br/>mergeStrategy:  The action to take when there is a merge conflict.<br/>resourceType:  The type of resource to import.<br/>name:  The name given to the import job.<br/>        """
        pass

    def tag_resource(self, tags: List[Tag], resourceArn: str) -> TagResourceResponse:
        r"""Adds the specified tags to the specified resource. If a tag key already exists, the existing value is replaced with the new value.

        :param self:
        :param tags:  A list of tag keys to add to the resource. If a tag key already exists, the existing value is replaced with the new value.<br/>resourceArn:  The Amazon Resource Name (ARN) of the bot, bot alias, or bot channel to tag.<br/>
        :return:         """
        pass

    def untag_resource(self, tagKeys: List[TagKey], resourceArn: str) -> UntagResourceResponse:
        r"""Removes tags from a bot, bot alias or bot channel.

        :param self:
        :param tagKeys:  A list of tag keys to remove from the resource. If a tag key does not exist on the resource, it is ignored.<br/>resourceArn:  The Amazon Resource Name (ARN) of the resource to remove the tags from.<br/>
        :return:         """
        pass





class LexRuntimeService(BaseClient):
    r"""Amazon Lex provides both build and runtime endpoints. Each endpoint provides a set of operations (API). Your conversational bot uses the runtime API to understand user utterances (user input text or voice). For example, suppose a user says "I want pizza", your bot sends this input to Amazon Lex using the runtime API. Amazon Lex recognizes that the user request is for the OrderPizza intent (one of the intents defined in the bot). Then Amazon Lex engages in user conversation on behalf of the bot to elicit required information (slot values, such as pizza size and crust type), and then performs fulfillment activity (that you configured when you created the bot). You use the build-time API to create and manage your Amazon Lex bot. For a list of build-time operations, see the build-time API, . """




    class DeleteSessionRequest(Mapping):
        pass
    
    class DeleteSessionResponse(Mapping):
        pass
    
    class GetSessionRequest(Mapping):
        pass
    
    class GetSessionResponse(Mapping):
        pass
    
    class PostContentRequest(Mapping):
        pass
    
    class PostContentResponse(Mapping):
        pass
    
    class BlobStream(object):
        pass
    
    class PostTextRequest(Mapping):
        pass
    
    class PostTextResponse(Mapping):
        pass
    
    class StringMap(object):
        pass
    
    class ActiveContext(Mapping):
        pass
    
    class PutSessionRequest(Mapping):
        pass
    
    class PutSessionResponse(Mapping):
        pass
    
    class DialogAction(Mapping):
        pass
    
    class IntentSummary(Mapping):
        pass
    
    def delete_session(self, userId: str, botAlias: str, botName: str) -> DeleteSessionResponse:
        r"""Removes session information for a specified bot, alias, and user ID. 

        :param self:
        :param userId:  The identifier of the user associated with the session data.<br/>botAlias:  The alias in use for the bot that contains the session data.<br/>botName:  The name of the bot that contains the session data.<br/>
        :return: sessionId:  The unique identifier for the session.<br/>userId:  The ID of the client application user.<br/>botAlias:  The alias in use for the bot associated with the session data.<br/>botName:  The name of the bot associated with the session data.<br/>        """
        pass

    def get_session(self, userId: str, botAlias: str, botName: str, checkpointLabelFilter: str=None) -> GetSessionResponse:
        r"""Returns session information for a specified bot, alias, and user ID.

        :param self:
        :param checkpointLabelFilter:  A string used to filter the intents returned in the <code>recentIntentSummaryView</code> structure.  When you specify a filter, only intents with their <code>checkpointLabel</code> field set to that string are returned.<br/>userId:  The ID of the client application user. Amazon Lex uses this to identify a user's conversation with your bot. <br/>botAlias:  The alias in use for the bot that contains the session data.<br/>botName:  The name of the bot that contains the session data.<br/>
        :return: activeContexts:  A list of active contexts for the session. A context can be set when an intent is fulfilled or by calling the <code>PostContent</code>, <code>PostText</code>, or <code>PutSession</code> operation. You can use a context to control the intents that can follow up an intent, or to modify the operation of your application.<br/>dialogAction:  Describes the current state of the bot.:<br/>sessionId:  A unique identifier for the session.<br/>sessionAttributes:  Map of key/value pairs representing the session-specific context information. It contains application information passed between Amazon Lex and a client application.<br/>recentIntentSummaryView:  An array of information about the intents used in the session. The array can contain a maximum of three summaries. If more than three intents are used in the session, the <code>recentIntentSummaryView</code> operation contains information about the last three intents used. If you set the <code>checkpointLabelFilter</code> parameter in the request, the array contains only the intents with the specified label.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>messageFormat</i> <ul> <li>  <code>PlainText</code> - The message contains plain UTF-8 text. </li> <li>  <code>CustomPayload</code> - The message is a custom format for the client. </li> <li>  <code>SSML</code> - The message contains text formatted for voice output. </li> <li>  <code>Composite</code> - The message contains an escaped JSON object containing one or more messages. For more information, see <a href="https://docs.aws.amazon.com/lex/latest/dg/howitworks-manage-prompts.html">Message Groups</a>.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>message</i> The message that should be shown to the user. If you don't specify a message, Amazon Lex will use the message configured for the intent.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>fulfillmentState</i> The fulfillment state of the intent. The possible values are: <ul> <li>  <code>Failed</code> - The Lambda function associated with the intent failed to fulfill the intent. </li> <li>  <code>Fulfilled</code> - The intent has fulfilled by the Lambda function associated with the intent.  </li> <li>  <code>ReadyForFulfillment</code> - All of the information necessary for the intent is present and the intent ready to be fulfilled by the client application. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>slotToElicit</i> The name of the slot that should be elicited from the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>slots</i> Map of the slots that have been gathered and their values. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>intentName</i> The name of the intent.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The next action that the bot should take in its interaction with the user. The possible values are: <ul> <li>  <code>ConfirmIntent</code> - The next action is asking the user if the intent is complete and ready to be fulfilled. This is a yes/no question such as "Place the order?" </li> <li>  <code>Close</code> - Indicates that the there will not be a response from the user. For example, the statement "Your order has been placed" does not require a response. </li> <li>  <code>Delegate</code> - The next action is determined by Amazon Lex. </li> <li>  <code>ElicitIntent</code> - The next action is to determine the intent that the user wants to fulfill. </li> <li>  <code>ElicitSlot</code> - The next action is to elicit a slot value from the user. </li> </ul><br/>        """
        pass

    def post_content(self, inputStream: BlobStream, contentType: str, userId: str, botAlias: str, botName: str, sessionAttributes: str=None, requestAttributes: str=None, accept: str=None, activeContexts: str=None) -> PostContentResponse:
        r""" Sends user input (text or speech) to Amazon Lex. Clients use this API to send text and audio requests to Amazon Lex at runtime. Amazon Lex interprets the user input using the machine learning model that it built for the bot.  The <code>PostContent</code> operation supports audio input at 8kHz and 16kHz. You can use 8kHz audio to achieve higher speech recognition accuracy in telephone audio applications.   In response, Amazon Lex returns the next message to convey to the user. Consider the following example messages:  <ul> <li>  For a user input "I would like a pizza," Amazon Lex might return a response with a message eliciting slot data (for example, <code>PizzaSize</code>): "What size pizza would you like?".  </li> <li>  After the user provides all of the pizza order information, Amazon Lex might return a response with a message to get user confirmation: "Order the pizza?".  </li> <li>  After the user replies "Yes" to the confirmation prompt, Amazon Lex might return a conclusion statement: "Thank you, your cheese pizza has been ordered.".  </li> </ul>  Not all Amazon Lex messages require a response from the user. For example, conclusion statements do not require a response. Some messages require only a yes or no response. In addition to the <code>message</code>, Amazon Lex provides additional context about the message in the response that you can use to enhance client behavior, such as displaying the appropriate client user interface. Consider the following examples:  <ul> <li>  If the message is to elicit slot data, Amazon Lex returns the following context information:  <ul> <li>  <code>x-amz-lex-dialog-state</code> header set to <code>ElicitSlot</code>  </li> <li>  <code>x-amz-lex-intent-name</code> header set to the intent name in the current context  </li> <li>  <code>x-amz-lex-slot-to-elicit</code> header set to the slot name for which the <code>message</code> is eliciting information  </li> <li>  <code>x-amz-lex-slots</code> header set to a map of slots configured for the intent with their current values  </li> </ul> </li> <li>  If the message is a confirmation prompt, the <code>x-amz-lex-dialog-state</code> header is set to <code>Confirmation</code> and the <code>x-amz-lex-slot-to-elicit</code> header is omitted.  </li> <li>  If the message is a clarification prompt configured for the intent, indicating that the user intent is not understood, the <code>x-amz-dialog-state</code> header is set to <code>ElicitIntent</code> and the <code>x-amz-slot-to-elicit</code> header is omitted.  </li> </ul>  In addition, Amazon Lex also returns your application-specific <code>sessionAttributes</code>. For more information, see <a href="https://docs.aws.amazon.com/lex/latest/dg/context-mgmt.html">Managing Conversation Context</a>. 

        :param self:
        :param activeContexts:  A list of contexts active for the request. A context can be activated when a previous intent is fulfilled, or by including the context in the request, If you don't specify a list of contexts, Amazon Lex will use the current list of contexts for the session. If you specify an empty list, all contexts for the session are cleared.<br/>inputStream:   User input in PCM or Opus audio format or text format as described in the <code>Content-Type</code> HTTP header.  You can stream audio data to Amazon Lex or you can create a local buffer that captures all of the audio data before sending. In general, you get better performance if you stream audio data rather than buffering the data locally.<br/>accept:   You pass this value as the <code>Accept</code> HTTP header.   The message Amazon Lex returns in the response can be either text or speech based on the <code>Accept</code> HTTP header value in the request.  <ul> <li>  If the value is <code>text/plain; charset=utf-8</code>, Amazon Lex returns text in the response.  </li> <li>  If the value begins with <code>audio/</code>, Amazon Lex returns speech in the response. Amazon Lex uses Amazon Polly to generate the speech (using the configuration you specified in the <code>Accept</code> header). For example, if you specify <code>audio/mpeg</code> as the value, Amazon Lex returns speech in the MPEG format. </li> <li> If the value is <code>audio/pcm</code>, the speech returned is <code>audio/pcm</code> in 16-bit, little endian format.  </li> <li> The following are the accepted values: <ul> <li> audio/mpeg </li> <li> audio/ogg </li> <li> audio/pcm </li> <li> text/plain; charset=utf-8 </li> <li> audio/* (defaults to mpeg) </li> </ul> </li> </ul><br/>contentType:   You pass this value as the <code>Content-Type</code> HTTP header.   Indicates the audio format or text. The header value must start with one of the following prefixes:  <ul> <li> PCM format, audio data must be in little-endian byte order. <ul> <li> audio/l16; rate=16000; channels=1 </li> <li> audio/x-l16; sample-rate=16000; channel-count=1 </li> <li> audio/lpcm; sample-rate=8000; sample-size-bits=16; channel-count=1; is-big-endian=false  </li> </ul> </li> <li> Opus format <ul> <li> audio/x-cbr-opus-with-preamble; preamble-size=0; bit-rate=256000; frame-size-milliseconds=4 </li> </ul> </li> <li> Text format <ul> <li> text/plain; charset=utf-8 </li> </ul> </li> </ul><br/>requestAttributes:  You pass this value as the <code>x-amz-lex-request-attributes</code> HTTP header. Request-specific information passed between Amazon Lex and a client application. The value must be a JSON serialized and base64 encoded map with string keys and values. The total size of the <code>requestAttributes</code> and <code>sessionAttributes</code> headers is limited to 12 KB. The namespace <code>x-amz-lex:</code> is reserved for special attributes. Don't create any request attributes with the prefix <code>x-amz-lex:</code>. For more information, see <a href="https://docs.aws.amazon.com/lex/latest/dg/context-mgmt.html#context-mgmt-request-attribs">Setting Request Attributes</a>.<br/>sessionAttributes:  You pass this value as the <code>x-amz-lex-session-attributes</code> HTTP header. Application-specific information passed between Amazon Lex and a client application. The value must be a JSON serialized and base64 encoded map with string keys and values. The total size of the <code>sessionAttributes</code> and <code>requestAttributes</code> headers is limited to 12 KB. For more information, see <a href="https://docs.aws.amazon.com/lex/latest/dg/context-mgmt.html#context-mgmt-session-attribs">Setting Session Attributes</a>.<br/>userId:  The ID of the client application user. Amazon Lex uses this to identify a user's conversation with your bot. At runtime, each request must contain the <code>userID</code> field. To decide the user ID to use for your application, consider the following factors. <ul> <li> The <code>userID</code> field must not contain any personally identifiable information of the user, for example, name, personal identification numbers, or other end user personal information. </li> <li> If you want a user to start a conversation on one device and continue on another device, use a user-specific identifier. </li> <li> If you want the same user to be able to have two independent conversations on two different devices, choose a device-specific identifier. </li> <li> A user can't have two independent conversations with two different versions of the same bot. For example, a user can't have a conversation with the PROD and BETA versions of the same bot. If you anticipate that a user will need to have conversation with two different versions, for example, while testing, include the bot alias in the user ID to separate the two conversations. </li> </ul><br/>botAlias:  Alias of the Amazon Lex bot.<br/>botName:  Name of the Amazon Lex bot.<br/>
        :return: activeContexts:  A list of active contexts for the session. A context can be set when an intent is fulfilled or by calling the <code>PostContent</code>, <code>PostText</code>, or <code>PutSession</code> operation. You can use a context to control the intents that can follow up an intent, or to modify the operation of your application.<br/>sessionId:  The unique identifier for the session.<br/>botVersion:  The version of the bot that responded to the conversation. You can use this information to help determine if one version of a bot is performing better than another version.<br/>audioStream:  The prompt (or statement) to convey to the user. This is based on the bot configuration and context. For example, if Amazon Lex did not understand the user intent, it sends the <code>clarificationPrompt</code> configured for the bot. If the intent requires confirmation before taking the fulfillment action, it sends the <code>confirmationPrompt</code>. Another example: Suppose that the Lambda function successfully fulfilled the intent, and sent a message to convey to the user. Then Amazon Lex sends that message in the response. <br/>encodedInputTranscript:  The text used to process the request. If the input was an audio stream, the <code>encodedInputTranscript</code> field contains the text extracted from the audio stream. This is the text that is actually processed to recognize intents and slot values. You can use this information to determine if Amazon Lex is correctly processing the audio that you send. The <code>encodedInputTranscript</code> field is base-64 encoded. You must decode the field before you can use the value.<br/>inputTranscript:  The text used to process the request. You can use this field only in the de-DE, en-AU, en-GB, en-US, es-419, es-ES, es-US, fr-CA, fr-FR, and it-IT locales. In all other locales, the <code>inputTranscript</code> field is null. You should use the <code>encodedInputTranscript</code> field instead. If the input was an audio stream, the <code>inputTranscript</code> field contains the text extracted from the audio stream. This is the text that is actually processed to recognize intents and slot values. You can use this information to determine if Amazon Lex is correctly processing the audio that you send.<br/>slotToElicit:   If the <code>dialogState</code> value is <code>ElicitSlot</code>, returns the name of the slot for which Amazon Lex is eliciting a value. <br/>dialogState:  Identifies the current state of the user interaction. Amazon Lex returns one of the following values as <code>dialogState</code>. The client can optionally use this information to customize the user interface.  <ul> <li>  <code>ElicitIntent</code> - Amazon Lex wants to elicit the user's intent. Consider the following examples:   For example, a user might utter an intent ("I want to order a pizza"). If Amazon Lex cannot infer the user intent from this utterance, it will return this dialog state.  </li> <li>  <code>ConfirmIntent</code> - Amazon Lex is expecting a "yes" or "no" response.  For example, Amazon Lex wants user confirmation before fulfilling an intent. Instead of a simple "yes" or "no" response, a user might respond with additional information. For example, "yes, but make it a thick crust pizza" or "no, I want to order a drink." Amazon Lex can process such additional information (in these examples, update the crust type slot or change the intent from OrderPizza to OrderDrink).  </li> <li>  <code>ElicitSlot</code> - Amazon Lex is expecting the value of a slot for the current intent.   For example, suppose that in the response Amazon Lex sends this message: "What size pizza would you like?". A user might reply with the slot value (e.g., "medium"). The user might also provide additional information in the response (e.g., "medium thick crust pizza"). Amazon Lex can process such additional information appropriately.  </li> <li>  <code>Fulfilled</code> - Conveys that the Lambda function has successfully fulfilled the intent.  </li> <li>  <code>ReadyForFulfillment</code> - Conveys that the client has to fulfill the request.  </li> <li>  <code>Failed</code> - Conveys that the conversation with the user failed.   This can happen for various reasons, including that the user does not provide an appropriate response to prompts from the service (you can configure how many times Amazon Lex can prompt a user for specific information), or if the Lambda function fails to fulfill the intent.  </li> </ul><br/>messageFormat:  The format of the response message. One of the following values: <ul> <li>  <code>PlainText</code> - The message contains plain UTF-8 text. </li> <li>  <code>CustomPayload</code> - The message is a custom format for the client. </li> <li>  <code>SSML</code> - The message contains text formatted for voice output. </li> <li>  <code>Composite</code> - The message contains an escaped JSON object containing one or more messages from the groups that messages were assigned to when the intent was created. </li> </ul><br/>encodedMessage:  The message to convey to the user. The message can come from the bot's configuration or from a Lambda function. If the intent is not configured with a Lambda function, or if the Lambda function returned <code>Delegate</code> as the <code>dialogAction.type</code> in its response, Amazon Lex decides on the next course of action and selects an appropriate message from the bot's configuration based on the current interaction context. For example, if Amazon Lex isn't able to understand user input, it uses a clarification prompt message. When you create an intent you can assign messages to groups. When messages are assigned to groups Amazon Lex returns one message from each group in the response. The message field is an escaped JSON string containing the messages. For more information about the structure of the JSON string returned, see <a>msg-prompts-formats</a>. If the Lambda function returns a message, Amazon Lex passes it to the client in its response. The <code>encodedMessage</code> field is base-64 encoded. You must decode the field before you can use the value.<br/>message:  You can only use this field in the de-DE, en-AU, en-GB, en-US, es-419, es-ES, es-US, fr-CA, fr-FR, and it-IT locales. In all other locales, the <code>message</code> field is null. You should use the <code>encodedMessage</code> field instead. The message to convey to the user. The message can come from the bot's configuration or from a Lambda function. If the intent is not configured with a Lambda function, or if the Lambda function returned <code>Delegate</code> as the <code>dialogAction.type</code> in its response, Amazon Lex decides on the next course of action and selects an appropriate message from the bot's configuration based on the current interaction context. For example, if Amazon Lex isn't able to understand user input, it uses a clarification prompt message. When you create an intent you can assign messages to groups. When messages are assigned to groups Amazon Lex returns one message from each group in the response. The message field is an escaped JSON string containing the messages. For more information about the structure of the JSON string returned, see <a>msg-prompts-formats</a>. If the Lambda function returns a message, Amazon Lex passes it to the client in its response.<br/>sentimentResponse:  The sentiment expressed in an utterance. When the bot is configured to send utterances to Amazon Comprehend for sentiment analysis, this field contains the result of the analysis.<br/>sessionAttributes:   Map of key/value pairs representing the session-specific context information. <br/>slots:  Map of zero or more intent slots (name/value pairs) Amazon Lex detected from the user input during the conversation. The field is base-64 encoded. Amazon Lex creates a resolution list containing likely values for a slot. The value that it returns is determined by the <code>valueSelectionStrategy</code> selected when the slot type was created or updated. If <code>valueSelectionStrategy</code> is set to <code>ORIGINAL_VALUE</code>, the value provided by the user is returned, if the user value is similar to the slot values. If <code>valueSelectionStrategy</code> is set to <code>TOP_RESOLUTION</code> Amazon Lex returns the first value in the resolution list or, if there is no resolution list, null. If you don't specify a <code>valueSelectionStrategy</code>, the default is <code>ORIGINAL_VALUE</code>.<br/>alternativeIntents:  One to four alternative intents that may be applicable to the user's intent. Each alternative includes a score that indicates how confident Amazon Lex is that the intent matches the user's intent. The intents are sorted by the confidence score.<br/>nluIntentConfidence:  Provides a score that indicates how confident Amazon Lex is that the returned intent is the one that matches the user's intent. The score is between 0.0 and 1.0. The score is a relative score, not an absolute score. The score may change based on improvements to Amazon Lex. <br/>intentName:  Current user intent that Amazon Lex is aware of.<br/>contentType:  Content type as specified in the <code>Accept</code> HTTP header in the request.<br/>        """
        pass

    def post_text(self, inputText: str, userId: str, botAlias: str, botName: str, sessionAttributes: StringMap=None, requestAttributes: StringMap=None, activeContexts: List[ActiveContext]=None) -> PostTextResponse:
        r"""Sends user input to Amazon Lex. Client applications can use this API to send requests to Amazon Lex at runtime. Amazon Lex then interprets the user input using the machine learning model it built for the bot.   In response, Amazon Lex returns the next <code>message</code> to convey to the user an optional <code>responseCard</code> to display. Consider the following example messages:  <ul> <li>  For a user input "I would like a pizza", Amazon Lex might return a response with a message eliciting slot data (for example, PizzaSize): "What size pizza would you like?"  </li> <li>  After the user provides all of the pizza order information, Amazon Lex might return a response with a message to obtain user confirmation "Proceed with the pizza order?".  </li> <li>  After the user replies to a confirmation prompt with a "yes", Amazon Lex might return a conclusion statement: "Thank you, your cheese pizza has been ordered.".  </li> </ul>  Not all Amazon Lex messages require a user response. For example, a conclusion statement does not require a response. Some messages require only a "yes" or "no" user response. In addition to the <code>message</code>, Amazon Lex provides additional context about the message in the response that you might use to enhance client behavior, for example, to display the appropriate client user interface. These are the <code>slotToElicit</code>, <code>dialogState</code>, <code>intentName</code>, and <code>slots</code> fields in the response. Consider the following examples:  <ul> <li> If the message is to elicit slot data, Amazon Lex returns the following context information: <ul> <li>  <code>dialogState</code> set to ElicitSlot  </li> <li>  <code>intentName</code> set to the intent name in the current context  </li> <li>  <code>slotToElicit</code> set to the slot name for which the <code>message</code> is eliciting information  </li> <li>  <code>slots</code> set to a map of slots, configured for the intent, with currently known values  </li> </ul> </li> <li>  If the message is a confirmation prompt, the <code>dialogState</code> is set to ConfirmIntent and <code>SlotToElicit</code> is set to null.  </li> <li> If the message is a clarification prompt (configured for the intent) that indicates that user intent is not understood, the <code>dialogState</code> is set to ElicitIntent and <code>slotToElicit</code> is set to null.  </li> </ul>  In addition, Amazon Lex also returns your application-specific <code>sessionAttributes</code>. For more information, see <a href="https://docs.aws.amazon.com/lex/latest/dg/context-mgmt.html">Managing Conversation Context</a>. 

        :param self:
        :param activeContexts:  A list of contexts active for the request. A context can be activated when a previous intent is fulfilled, or by including the context in the request, If you don't specify a list of contexts, Amazon Lex will use the current list of contexts for the session. If you specify an empty list, all contexts for the session are cleared.<br/>inputText:  The text that the user entered (Amazon Lex interprets this text).<br/>requestAttributes:  Request-specific information passed between Amazon Lex and a client application. The namespace <code>x-amz-lex:</code> is reserved for special attributes. Don't create any request attributes with the prefix <code>x-amz-lex:</code>. For more information, see <a href="https://docs.aws.amazon.com/lex/latest/dg/context-mgmt.html#context-mgmt-request-attribs">Setting Request Attributes</a>.<br/>sessionAttributes:  Application-specific information passed between Amazon Lex and a client application. For more information, see <a href="https://docs.aws.amazon.com/lex/latest/dg/context-mgmt.html#context-mgmt-session-attribs">Setting Session Attributes</a>.<br/>userId:  The ID of the client application user. Amazon Lex uses this to identify a user's conversation with your bot. At runtime, each request must contain the <code>userID</code> field. To decide the user ID to use for your application, consider the following factors. <ul> <li> The <code>userID</code> field must not contain any personally identifiable information of the user, for example, name, personal identification numbers, or other end user personal information. </li> <li> If you want a user to start a conversation on one device and continue on another device, use a user-specific identifier. </li> <li> If you want the same user to be able to have two independent conversations on two different devices, choose a device-specific identifier. </li> <li> A user can't have two independent conversations with two different versions of the same bot. For example, a user can't have a conversation with the PROD and BETA versions of the same bot. If you anticipate that a user will need to have conversation with two different versions, for example, while testing, include the bot alias in the user ID to separate the two conversations. </li> </ul><br/>botAlias:  The alias of the Amazon Lex bot.<br/>botName:  The name of the Amazon Lex bot.<br/>
        :return: activeContexts:  A list of active contexts for the session. A context can be set when an intent is fulfilled or by calling the <code>PostContent</code>, <code>PostText</code>, or <code>PutSession</code> operation. You can use a context to control the intents that can follow up an intent, or to modify the operation of your application.<br/>botVersion:  The version of the bot that responded to the conversation. You can use this information to help determine if one version of a bot is performing better than another version.<br/>sessionId:  A unique identifier for the session.<br/>responseCard:  Represents the options that the user has to respond to the current prompt. Response Card can come from the bot configuration (in the Amazon Lex console, choose the settings button next to a slot) or from a code hook (Lambda function). :<br/>slotToElicit:  If the <code>dialogState</code> value is <code>ElicitSlot</code>, returns the name of the slot for which Amazon Lex is eliciting a value. <br/>dialogState:   Identifies the current state of the user interaction. Amazon Lex returns one of the following values as <code>dialogState</code>. The client can optionally use this information to customize the user interface.  <ul> <li>  <code>ElicitIntent</code> - Amazon Lex wants to elicit user intent.  For example, a user might utter an intent ("I want to order a pizza"). If Amazon Lex cannot infer the user intent from this utterance, it will return this dialogState. </li> <li>  <code>ConfirmIntent</code> - Amazon Lex is expecting a "yes" or "no" response.   For example, Amazon Lex wants user confirmation before fulfilling an intent.  Instead of a simple "yes" or "no," a user might respond with additional information. For example, "yes, but make it thick crust pizza" or "no, I want to order a drink". Amazon Lex can process such additional information (in these examples, update the crust type slot value, or change intent from OrderPizza to OrderDrink). </li> <li>  <code>ElicitSlot</code> - Amazon Lex is expecting a slot value for the current intent.  For example, suppose that in the response Amazon Lex sends this message: "What size pizza would you like?". A user might reply with the slot value (e.g., "medium"). The user might also provide additional information in the response (e.g., "medium thick crust pizza"). Amazon Lex can process such additional information appropriately.  </li> <li>  <code>Fulfilled</code> - Conveys that the Lambda function configured for the intent has successfully fulfilled the intent.  </li> <li>  <code>ReadyForFulfillment</code> - Conveys that the client has to fulfill the intent.  </li> <li>  <code>Failed</code> - Conveys that the conversation with the user failed.   This can happen for various reasons including that the user did not provide an appropriate response to prompts from the service (you can configure how many times Amazon Lex can prompt a user for specific information), or the Lambda function failed to fulfill the intent.  </li> </ul><br/>messageFormat:  The format of the response message. One of the following values: <ul> <li>  <code>PlainText</code> - The message contains plain UTF-8 text. </li> <li>  <code>CustomPayload</code> - The message is a custom format defined by the Lambda function. </li> <li>  <code>SSML</code> - The message contains text formatted for voice output. </li> <li>  <code>Composite</code> - The message contains an escaped JSON object containing one or more messages from the groups that messages were assigned to when the intent was created. </li> </ul><br/>sentimentResponse:  The sentiment expressed in and utterance. When the bot is configured to send utterances to Amazon Comprehend for sentiment analysis, this field contains the result of the analysis.:<br/>message:  The message to convey to the user. The message can come from the bot's configuration or from a Lambda function. If the intent is not configured with a Lambda function, or if the Lambda function returned <code>Delegate</code> as the <code>dialogAction.type</code> its response, Amazon Lex decides on the next course of action and selects an appropriate message from the bot's configuration based on the current interaction context. For example, if Amazon Lex isn't able to understand user input, it uses a clarification prompt message. When you create an intent you can assign messages to groups. When messages are assigned to groups Amazon Lex returns one message from each group in the response. The message field is an escaped JSON string containing the messages. For more information about the structure of the JSON string returned, see <a>msg-prompts-formats</a>. If the Lambda function returns a message, Amazon Lex passes it to the client in its response.<br/>sessionAttributes:  A map of key-value pairs representing the session-specific context information.<br/>slots:   The intent slots that Amazon Lex detected from the user input in the conversation.  Amazon Lex creates a resolution list containing likely values for a slot. The value that it returns is determined by the <code>valueSelectionStrategy</code> selected when the slot type was created or updated. If <code>valueSelectionStrategy</code> is set to <code>ORIGINAL_VALUE</code>, the value provided by the user is returned, if the user value is similar to the slot values. If <code>valueSelectionStrategy</code> is set to <code>TOP_RESOLUTION</code> Amazon Lex returns the first value in the resolution list or, if there is no resolution list, null. If you don't specify a <code>valueSelectionStrategy</code>, the default is <code>ORIGINAL_VALUE</code>.<br/>alternativeIntents:  One to four alternative intents that may be applicable to the user's intent. Each alternative includes a score that indicates how confident Amazon Lex is that the intent matches the user's intent. The intents are sorted by the confidence score.<br/>nluIntentConfidence:  Provides a score that indicates how confident Amazon Lex is that the returned intent is the one that matches the user's intent. The score is between 0.0 and 1.0. For more information, see <a href="https://docs.aws.amazon.com/lex/latest/dg/confidence-scores.html">Confidence Scores</a>. The score is a relative score, not an absolute score. The score may change based on improvements to Amazon Lex.:<br/>intentName:  The current user intent that Amazon Lex is aware of.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>score</i> A score that indicates how confident Amazon Lex is that an intent satisfies the user's intent. Ranges between 0.00 and 1.00. Higher scores indicate higher confidence.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>sentimentScore</i> The likelihood that the sentiment was correctly inferred.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>sentimentLabel</i> The inferred sentiment that Amazon Comprehend has the highest confidence in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>genericAttachments</i> An array of attachment objects representing options.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>contentType</i> The content type of the response.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The version of the response card format.<br/>        """
        pass

    def put_session(self, userId: str, botAlias: str, botName: str, sessionAttributes: StringMap=None, dialogAction: DialogAction=None, recentIntentSummaryView: List[IntentSummary]=None, accept: str=None, activeContexts: List[ActiveContext]=None) -> PutSessionResponse:
        r"""Creates a new session or modifies an existing session with an Amazon Lex bot. Use this operation to enable your application to set the state of the bot. For more information, see <a href="https://docs.aws.amazon.com/lex/latest/dg/how-session-api.html">Managing Sessions</a>.

        :param self:
        :param activeContexts:  A list of contexts active for the request. A context can be activated when a previous intent is fulfilled, or by including the context in the request, If you don't specify a list of contexts, Amazon Lex will use the current list of contexts for the session. If you specify an empty list, all contexts for the session are cleared.<br/>accept:  The message that Amazon Lex returns in the response can be either text or speech based depending on the value of this field. <ul> <li> If the value is <code>text/plain; charset=utf-8</code>, Amazon Lex returns text in the response. </li> <li> If the value begins with <code>audio/</code>, Amazon Lex returns speech in the response. Amazon Lex uses Amazon Polly to generate the speech in the configuration that you specify. For example, if you specify <code>audio/mpeg</code> as the value, Amazon Lex returns speech in the MPEG format. </li> <li> If the value is <code>audio/pcm</code>, the speech is returned as <code>audio/pcm</code> in 16-bit, little endian format. </li> <li> The following are the accepted values: <ul> <li>  <code>audio/mpeg</code>  </li> <li>  <code>audio/ogg</code>  </li> <li>  <code>audio/pcm</code>  </li> <li>  <code>audio/*</code> (defaults to mpeg) </li> <li>  <code>text/plain; charset=utf-8</code>  </li> </ul> </li> </ul><br/>recentIntentSummaryView:  A summary of the recent intents for the bot. You can use the intent summary view to set a checkpoint label on an intent and modify attributes of intents. You can also use it to remove or add intent summary objects to the list. An intent that you modify or add to the list must make sense for the bot. For example, the intent name must be valid for the bot. You must provide valid values for: <ul> <li>  <code>intentName</code>  </li> <li> slot names </li> <li>  <code>slotToElict</code>  </li> </ul> If you send the <code>recentIntentSummaryView</code> parameter in a <code>PutSession</code> request, the contents of the new summary view replaces the old summary view. For example, if a <code>GetSession</code> request returns three intents in the summary view and you call <code>PutSession</code> with one intent in the summary view, the next call to <code>GetSession</code> will only return one intent.<br/>dialogAction:  Sets the next action that the bot should take to fulfill the conversation.:<br/>sessionAttributes:  Map of key/value pairs representing the session-specific context information. It contains application information passed between Amazon Lex and a client application.<br/>userId:  The ID of the client application user. Amazon Lex uses this to identify a user's conversation with your bot. <br/>botAlias:  The alias in use for the bot that contains the session data.<br/>botName:  The name of the bot that contains the session data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>messageFormat</i> <ul> <li>  <code>PlainText</code> - The message contains plain UTF-8 text. </li> <li>  <code>CustomPayload</code> - The message is a custom format for the client. </li> <li>  <code>SSML</code> - The message contains text formatted for voice output. </li> <li>  <code>Composite</code> - The message contains an escaped JSON object containing one or more messages. For more information, see <a href="https://docs.aws.amazon.com/lex/latest/dg/howitworks-manage-prompts.html">Message Groups</a>.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>message</i> The message that should be shown to the user. If you don't specify a message, Amazon Lex will use the message configured for the intent.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>fulfillmentState</i> The fulfillment state of the intent. The possible values are: <ul> <li>  <code>Failed</code> - The Lambda function associated with the intent failed to fulfill the intent. </li> <li>  <code>Fulfilled</code> - The intent has fulfilled by the Lambda function associated with the intent.  </li> <li>  <code>ReadyForFulfillment</code> - All of the information necessary for the intent is present and the intent ready to be fulfilled by the client application. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>slotToElicit</i> The name of the slot that should be elicited from the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>slots</i> Map of the slots that have been gathered and their values. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>intentName</i> The name of the intent.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The next action that the bot should take in its interaction with the user. The possible values are: <ul> <li>  <code>ConfirmIntent</code> - The next action is asking the user if the intent is complete and ready to be fulfilled. This is a yes/no question such as "Place the order?" </li> <li>  <code>Close</code> - Indicates that the there will not be a response from the user. For example, the statement "Your order has been placed" does not require a response. </li> <li>  <code>Delegate</code> - The next action is determined by Amazon Lex. </li> <li>  <code>ElicitIntent</code> - The next action is to determine the intent that the user wants to fulfill. </li> <li>  <code>ElicitSlot</code> - The next action is to elicit a slot value from the user. </li> </ul><br/>
        :return: activeContexts:  A list of active contexts for the session.<br/>sessionId:  A unique identifier for the session.<br/>audioStream:  The audio version of the message to convey to the user.<br/>slotToElicit:  If the <code>dialogState</code> is <code>ElicitSlot</code>, returns the name of the slot for which Amazon Lex is eliciting a value.<br/>dialogState:  <p/> <ul> <li>  <code>ConfirmIntent</code> - Amazon Lex is expecting a "yes" or "no" response to confirm the intent before fulfilling an intent. </li> <li>  <code>ElicitIntent</code> - Amazon Lex wants to elicit the user's intent. </li> <li>  <code>ElicitSlot</code> - Amazon Lex is expecting the value of a slot for the current intent. </li> <li>  <code>Failed</code> - Conveys that the conversation with the user has failed. This can happen for various reasons, including the user does not provide an appropriate response to prompts from the service, or if the Lambda function fails to fulfill the intent. </li> <li>  <code>Fulfilled</code> - Conveys that the Lambda function has sucessfully fulfilled the intent. </li> <li>  <code>ReadyForFulfillment</code> - Conveys that the client has to fulfill the intent. </li> </ul><br/>messageFormat:  The format of the response message. One of the following values: <ul> <li>  <code>PlainText</code> - The message contains plain UTF-8 text. </li> <li>  <code>CustomPayload</code> - The message is a custom format for the client. </li> <li>  <code>SSML</code> - The message contains text formatted for voice output. </li> <li>  <code>Composite</code> - The message contains an escaped JSON object containing one or more messages from the groups that messages were assigned to when the intent was created. </li> </ul><br/>encodedMessage:  The next message that should be presented to the user. The <code>encodedMessage</code> field is base-64 encoded. You must decode the field before you can use the value.<br/>message:  The next message that should be presented to the user. You can only use this field in the de-DE, en-AU, en-GB, en-US, es-419, es-ES, es-US, fr-CA, fr-FR, and it-IT locales. In all other locales, the <code>message</code> field is null. You should use the <code>encodedMessage</code> field instead.<br/>sessionAttributes:  Map of key/value pairs representing session-specific context information.<br/>slots:  Map of zero or more intent slots Amazon Lex detected from the user input during the conversation. Amazon Lex creates a resolution list containing likely values for a slot. The value that it returns is determined by the <code>valueSelectionStrategy</code> selected when the slot type was created or updated. If <code>valueSelectionStrategy</code> is set to <code>ORIGINAL_VALUE</code>, the value provided by the user is returned, if the user value is similar to the slot values. If <code>valueSelectionStrategy</code> is set to <code>TOP_RESOLUTION</code> Amazon Lex returns the first value in the resolution list or, if there is no resolution list, null. If you don't specify a <code>valueSelectionStrategy</code> the default is <code>ORIGINAL_VALUE</code>. <br/>intentName:  The name of the current intent.<br/>contentType:  Content type as specified in the <code>Accept</code> HTTP header in the request.<br/>        """
        pass





class LexModelsV2(BaseClient):
    r"""<p/>"""




    class BuildBotLocaleRequest(Mapping):
        pass
    
    class BuildBotLocaleResponse(Mapping):
        pass
    
    class CreateBotRequest(Mapping):
        pass
    
    class CreateBotResponse(Mapping):
        pass
    
    class DataPrivacy(Mapping):
        pass
    
    class TagMap(object):
        pass
    
    class CreateBotAliasRequest(Mapping):
        pass
    
    class CreateBotAliasResponse(Mapping):
        pass
    
    class BotAliasLocaleSettingsMap(object):
        pass
    
    class ConversationLogSettings(Mapping):
        pass
    
    class SentimentAnalysisSettings(Mapping):
        pass
    
    class CreateBotLocaleRequest(Mapping):
        pass
    
    class CreateBotLocaleResponse(Mapping):
        pass
    
    class ConfidenceThreshold(object):
        pass
    
    class VoiceSettings(Mapping):
        pass
    
    class CreateBotVersionRequest(Mapping):
        pass
    
    class CreateBotVersionResponse(Mapping):
        pass
    
    class BotVersionLocaleSpecification(object):
        pass
    
    class CreateExportRequest(Mapping):
        pass
    
    class CreateExportResponse(Mapping):
        pass
    
    class ExportResourceSpecification(Mapping):
        pass
    
    class CreateIntentRequest(Mapping):
        pass
    
    class CreateIntentResponse(Mapping):
        pass
    
    class SampleUtterance(Mapping):
        pass
    
    class DialogCodeHookSettings(Mapping):
        pass
    
    class FulfillmentCodeHookSettings(Mapping):
        pass
    
    class IntentConfirmationSetting(Mapping):
        pass
    
    class IntentClosingSetting(Mapping):
        pass
    
    class InputContext(Mapping):
        pass
    
    class OutputContext(Mapping):
        pass
    
    class KendraConfiguration(Mapping):
        pass
    
    class CreateResourcePolicyRequest(Mapping):
        pass
    
    class CreateResourcePolicyResponse(Mapping):
        pass
    
    class CreateResourcePolicyStatementRequest(Mapping):
        pass
    
    class CreateResourcePolicyStatementResponse(Mapping):
        pass
    
    class Principal(Mapping):
        pass
    
    class Operation(object):
        pass
    
    class ConditionMap(object):
        pass
    
    class CreateSlotRequest(Mapping):
        pass
    
    class CreateSlotResponse(Mapping):
        pass
    
    class SlotValueElicitationSetting(Mapping):
        pass
    
    class ObfuscationSetting(Mapping):
        pass
    
    class MultipleValuesSetting(Mapping):
        pass
    
    class CreateSlotTypeRequest(Mapping):
        pass
    
    class CreateSlotTypeResponse(Mapping):
        pass
    
    class SlotTypeValue(Mapping):
        pass
    
    class SlotValueSelectionSetting(Mapping):
        pass
    
    class CreateUploadUrlRequest(Mapping):
        pass
    
    class CreateUploadUrlResponse(Mapping):
        pass
    
    class DeleteBotRequest(Mapping):
        pass
    
    class DeleteBotResponse(Mapping):
        pass
    
    class SkipResourceInUseCheck(object):
        pass
    
    class DeleteBotAliasRequest(Mapping):
        pass
    
    class DeleteBotAliasResponse(Mapping):
        pass
    
    class DeleteBotLocaleRequest(Mapping):
        pass
    
    class DeleteBotLocaleResponse(Mapping):
        pass
    
    class DeleteBotVersionRequest(Mapping):
        pass
    
    class DeleteBotVersionResponse(Mapping):
        pass
    
    class DeleteExportRequest(Mapping):
        pass
    
    class DeleteExportResponse(Mapping):
        pass
    
    class DeleteImportRequest(Mapping):
        pass
    
    class DeleteImportResponse(Mapping):
        pass
    
    class DeleteIntentRequest(Mapping):
        pass
    
    class DeleteResourcePolicyRequest(Mapping):
        pass
    
    class DeleteResourcePolicyResponse(Mapping):
        pass
    
    class DeleteResourcePolicyStatementRequest(Mapping):
        pass
    
    class DeleteResourcePolicyStatementResponse(Mapping):
        pass
    
    class DeleteSlotRequest(Mapping):
        pass
    
    class DeleteSlotTypeRequest(Mapping):
        pass
    
    class DescribeBotRequest(Mapping):
        pass
    
    class DescribeBotResponse(Mapping):
        pass
    
    class DescribeBotAliasRequest(Mapping):
        pass
    
    class DescribeBotAliasResponse(Mapping):
        pass
    
    class DescribeBotLocaleRequest(Mapping):
        pass
    
    class DescribeBotLocaleResponse(Mapping):
        pass
    
    class DescribeBotVersionRequest(Mapping):
        pass
    
    class DescribeBotVersionResponse(Mapping):
        pass
    
    class DescribeExportRequest(Mapping):
        pass
    
    class DescribeExportResponse(Mapping):
        pass
    
    class DescribeImportRequest(Mapping):
        pass
    
    class DescribeImportResponse(Mapping):
        pass
    
    class DescribeIntentRequest(Mapping):
        pass
    
    class DescribeIntentResponse(Mapping):
        pass
    
    class DescribeResourcePolicyRequest(Mapping):
        pass
    
    class DescribeResourcePolicyResponse(Mapping):
        pass
    
    class DescribeSlotRequest(Mapping):
        pass
    
    class DescribeSlotResponse(Mapping):
        pass
    
    class DescribeSlotTypeRequest(Mapping):
        pass
    
    class DescribeSlotTypeResponse(Mapping):
        pass
    
    class ListBotAliasesRequest(Mapping):
        pass
    
    class ListBotAliasesResponse(Mapping):
        pass
    
    class ListBotLocalesRequest(Mapping):
        pass
    
    class ListBotLocalesResponse(Mapping):
        pass
    
    class BotLocaleSortBy(Mapping):
        pass
    
    class BotLocaleFilter(Mapping):
        pass
    
    class ListBotVersionsRequest(Mapping):
        pass
    
    class ListBotVersionsResponse(Mapping):
        pass
    
    class BotVersionSortBy(Mapping):
        pass
    
    class ListBotsRequest(Mapping):
        pass
    
    class ListBotsResponse(Mapping):
        pass
    
    class BotSortBy(Mapping):
        pass
    
    class BotFilter(Mapping):
        pass
    
    class ListBuiltInIntentsRequest(Mapping):
        pass
    
    class ListBuiltInIntentsResponse(Mapping):
        pass
    
    class BuiltInIntentSortBy(Mapping):
        pass
    
    class ListBuiltInSlotTypesRequest(Mapping):
        pass
    
    class ListBuiltInSlotTypesResponse(Mapping):
        pass
    
    class BuiltInSlotTypeSortBy(Mapping):
        pass
    
    class ListExportsRequest(Mapping):
        pass
    
    class ListExportsResponse(Mapping):
        pass
    
    class ExportSortBy(Mapping):
        pass
    
    class ExportFilter(Mapping):
        pass
    
    class ListImportsRequest(Mapping):
        pass
    
    class ListImportsResponse(Mapping):
        pass
    
    class ImportSortBy(Mapping):
        pass
    
    class ImportFilter(Mapping):
        pass
    
    class ListIntentsRequest(Mapping):
        pass
    
    class ListIntentsResponse(Mapping):
        pass
    
    class IntentSortBy(Mapping):
        pass
    
    class IntentFilter(Mapping):
        pass
    
    class ListSlotTypesRequest(Mapping):
        pass
    
    class ListSlotTypesResponse(Mapping):
        pass
    
    class SlotTypeSortBy(Mapping):
        pass
    
    class SlotTypeFilter(Mapping):
        pass
    
    class ListSlotsRequest(Mapping):
        pass
    
    class ListSlotsResponse(Mapping):
        pass
    
    class SlotSortBy(Mapping):
        pass
    
    class SlotFilter(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class StartImportRequest(Mapping):
        pass
    
    class StartImportResponse(Mapping):
        pass
    
    class ImportResourceSpecification(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateBotRequest(Mapping):
        pass
    
    class UpdateBotResponse(Mapping):
        pass
    
    class UpdateBotAliasRequest(Mapping):
        pass
    
    class UpdateBotAliasResponse(Mapping):
        pass
    
    class UpdateBotLocaleRequest(Mapping):
        pass
    
    class UpdateBotLocaleResponse(Mapping):
        pass
    
    class UpdateExportRequest(Mapping):
        pass
    
    class UpdateExportResponse(Mapping):
        pass
    
    class UpdateIntentRequest(Mapping):
        pass
    
    class UpdateIntentResponse(Mapping):
        pass
    
    class SlotPriority(Mapping):
        pass
    
    class UpdateResourcePolicyRequest(Mapping):
        pass
    
    class UpdateResourcePolicyResponse(Mapping):
        pass
    
    class UpdateSlotRequest(Mapping):
        pass
    
    class UpdateSlotResponse(Mapping):
        pass
    
    class UpdateSlotTypeRequest(Mapping):
        pass
    
    class UpdateSlotTypeResponse(Mapping):
        pass
    
    def build_bot_locale(self, localeId: str, botVersion: str, botId: str) -> BuildBotLocaleResponse:
        r"""Builds a bot, its intents, and its slot types into a specific locale. A bot can be built into multiple locales. At runtime the locale is used to choose a specific build of the bot.

        :param self:
        :param localeId:  The identifier of the language and locale that the bot will be used in. The string must match one of the supported locales. All of the intents, slot types, and slots used in the bot must have the same locale. For more information, see <a href="https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html">Supported languages</a>.<br/>botVersion:  The version of the bot to build. This can only be the draft version of the bot.<br/>botId:  The identifier of the bot to build. The identifier is returned in the response from the operation.<br/>
        :return: lastBuildSubmittedDateTime:  A timestamp indicating the date and time that the bot was last built for this locale.<br/>botLocaleStatus:  The bot's build status. When the status is <code>ReadyExpressTesting</code> you can test the bot using the utterances defined for the intents and slot types. When the status is <code>Built</code>, the bot is ready for use and can be tested using any utterance.<br/>localeId:  The language and locale specified of where the bot can be used.<br/>botVersion:  The version of the bot that was built. This is only the draft version of the bot.<br/>botId:  The identifier of the specified bot.<br/>        """
        pass

    def create_bot(self, idleSessionTTLInSeconds: int, dataPrivacy: DataPrivacy, roleArn: str, botName: str, description: str=None, botTags: TagMap=None, testBotAliasTags: TagMap=None) -> CreateBotResponse:
        r"""Creates an Amazon Lex conversational bot. 

        :param self:
        :param testBotAliasTags:  A list of tags to add to the test alias for a bot. You can only add tags when you create a bot. You can't use the <code>UpdateAlias</code> operation to update tags. To update tags on the test alias, use the <code>TagResource</code> operation.<br/>botTags:  A list of tags to add to the bot. You can only add tags when you create a bot. You can't use the <code>UpdateBot</code> operation to update tags. To update tags, use the <code>TagResource</code> operation.<br/>idleSessionTTLInSeconds:  The time, in seconds, that Amazon Lex should keep information about a user's conversation with the bot.  A user interaction remains active for the amount of time specified. If no conversation occurs during this time, the session expires and Amazon Lex deletes any data provided before the timeout. You can specify between 60 (1 minute) and 86,400 (24 hours) seconds.<br/>dataPrivacy:  Provides information on additional privacy protections Amazon Lex should use with the bot's data.:<br/>roleArn:  The Amazon Resource Name (ARN) of an IAM role that has permission to access the bot.<br/>description:  A description of the bot. It appears in lists to help you identify a particular bot.<br/>botName:  The name of the bot. The bot name must be unique in the account that creates the bot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>childDirected</i> For each Amazon Lex bot created with the Amazon Lex Model Building Service, you must specify whether your use of Amazon Lex is related to a website, program, or other application that is directed or targeted, in whole or in part, to children under age 13 and subject to the Children's Online Privacy Protection Act (COPPA) by specifying <code>true</code> or <code>false</code> in the <code>childDirected</code> field. By specifying <code>true</code> in the <code>childDirected</code> field, you confirm that your use of Amazon Lex <b>is</b> related to a website, program, or other application that is directed or targeted, in whole or in part, to children under age 13 and subject to COPPA. By specifying <code>false</code> in the <code>childDirected</code> field, you confirm that your use of Amazon Lex <b>is not</b> related to a website, program, or other application that is directed or targeted, in whole or in part, to children under age 13 and subject to COPPA. You may not specify a default value for the <code>childDirected</code> field that does not accurately reflect whether your use of Amazon Lex is related to a website, program, or other application that is directed or targeted, in whole or in part, to children under age 13 and subject to COPPA. If your use of Amazon Lex relates to a website, program, or other application that is directed in whole or in part, to children under age 13, you must obtain any required verifiable parental consent under COPPA. For information regarding the use of Amazon Lex in connection with websites, programs, or other applications that are directed or targeted, in whole or in part, to children under age 13, see the <a href="https://aws.amazon.com/lex/faqs#data-security">Amazon Lex FAQ</a>.<br/>
        :return: testBotAliasTags:  A list of tags associated with the test alias for the bot.<br/>botTags:  A list of tags associated with the bot.<br/>creationDateTime:  A timestamp indicating the date and time that the bot was created.<br/>botStatus:  Shows the current status of the bot. The bot is first in the <code>Creating</code> status. Once the bot is read for use, it changes to the <code>Available</code> status. After the bot is created, you can use the <code>Draft</code> version of the bot.<br/>idleSessionTTLInSeconds:  The session idle time specified for the bot.<br/>dataPrivacy:  The data privacy settings specified for the bot.:<br/>roleArn:  The IAM role specified for the bot.<br/>description:  The description specified for the bot.<br/>botName:  The name specified for the bot.<br/>botId:  A unique identifier for a particular bot. You use this to identify the bot when you call other Amazon Lex API operations.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>childDirected</i> For each Amazon Lex bot created with the Amazon Lex Model Building Service, you must specify whether your use of Amazon Lex is related to a website, program, or other application that is directed or targeted, in whole or in part, to children under age 13 and subject to the Children's Online Privacy Protection Act (COPPA) by specifying <code>true</code> or <code>false</code> in the <code>childDirected</code> field. By specifying <code>true</code> in the <code>childDirected</code> field, you confirm that your use of Amazon Lex <b>is</b> related to a website, program, or other application that is directed or targeted, in whole or in part, to children under age 13 and subject to COPPA. By specifying <code>false</code> in the <code>childDirected</code> field, you confirm that your use of Amazon Lex <b>is not</b> related to a website, program, or other application that is directed or targeted, in whole or in part, to children under age 13 and subject to COPPA. You may not specify a default value for the <code>childDirected</code> field that does not accurately reflect whether your use of Amazon Lex is related to a website, program, or other application that is directed or targeted, in whole or in part, to children under age 13 and subject to COPPA. If your use of Amazon Lex relates to a website, program, or other application that is directed in whole or in part, to children under age 13, you must obtain any required verifiable parental consent under COPPA. For information regarding the use of Amazon Lex in connection with websites, programs, or other applications that are directed or targeted, in whole or in part, to children under age 13, see the <a href="https://aws.amazon.com/lex/faqs#data-security">Amazon Lex FAQ</a>.<br/>        """
        pass

    def create_bot_alias(self, botId: str, botAliasName: str, description: str=None, botVersion: str=None, botAliasLocaleSettings: BotAliasLocaleSettingsMap=None, conversationLogSettings: ConversationLogSettings=None, sentimentAnalysisSettings: SentimentAnalysisSettings=None, tags: TagMap=None) -> CreateBotAliasResponse:
        r"""Creates an alias for the specified version of a bot. Use an alias to enable you to change the version of a bot without updating applications that use the bot. For example, you can create an alias called "PROD" that your applications use to call the Amazon Lex bot. 

        :param self:
        :param tags:  A list of tags to add to the bot alias. You can only add tags when you create an alias, you can't use the <code>UpdateBotAlias</code> operation to update the tags on a bot alias. To update tags, use the <code>TagResource</code> operation.<br/>botId:  The unique identifier of the bot that the alias applies to.<br/>sentimentAnalysisSettings:  Determines whether Amazon Lex will use Amazon Comprehend to detect the sentiment of user utterances.:<br/>conversationLogSettings:  Specifies whether Amazon Lex logs text and audio for a conversation with the bot. When you enable conversation logs, text logs store text input, transcripts of audio input, and associated metadata in Amazon CloudWatch Logs. Audio logs store audio input in Amazon S3.:<br/>botAliasLocaleSettings:  Maps configuration information to a specific locale. You can use this parameter to specify a specific Lambda function to run different functions in different locales.<br/>botVersion:  The version of the bot that this alias points to. You can use the operation to change the bot version associated with the alias.<br/>description:  A description of the alias. Use this description to help identify the alias.<br/>botAliasName:  The alias to create. The name must be unique for the bot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>audioLogSettings</i> The Amazon S3 settings for logging audio to an S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>textLogSettings</i> The Amazon CloudWatch Logs settings for logging text and metadata.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>detectSentiment</i> Sets whether Amazon Lex uses Amazon Comprehend to detect the sentiment of user utterances.<br/>
        :return: tags:  A list of tags associated with the bot alias.<br/>creationDateTime:  A Unix timestamp indicating the date and time that the bot alias was created.<br/>botId:  The unique identifier of the bot that this alias applies to.<br/>botAliasStatus:  The current status of the alias. The alias is first put into the <code>Creating</code> state. When the alias is ready to be used, it is put into the <code>Available</code> state. You can use the <code>DescribeBotAlias</code> operation to get the current state of an alias.<br/>sentimentAnalysisSettings:  Determines whether Amazon Lex will use Amazon Comprehend to detect the sentiment of user utterances.:<br/>conversationLogSettings:  The conversation log settings specified for the alias.:<br/>botAliasLocaleSettings:  Configuration information for a specific locale.<br/>botVersion:  The version of the bot associated with this alias.<br/>description:  The description specified for the bot alias.<br/>botAliasName:  The name specified for the bot alias.<br/>botAliasId:  The unique identifier of the bot alias.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>audioLogSettings</i> The Amazon S3 settings for logging audio to an S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>textLogSettings</i> The Amazon CloudWatch Logs settings for logging text and metadata.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>detectSentiment</i> Sets whether Amazon Lex uses Amazon Comprehend to detect the sentiment of user utterances.<br/>        """
        pass

    def create_bot_locale(self, nluIntentConfidenceThreshold: ConfidenceThreshold, localeId: str, botVersion: str, botId: str, description: str=None, voiceSettings: VoiceSettings=None) -> CreateBotLocaleResponse:
        r"""Creates a locale in the bot. The locale contains the intents and slot types that the bot uses in conversations with users in the specified language and locale. You must add a locale to a bot before you can add intents and slot types to the bot.

        :param self:
        :param voiceSettings:  The Amazon Polly voice ID that Amazon Lex uses for voice interaction with the user.:<br/>nluIntentConfidenceThreshold:  Determines the threshold where Amazon Lex will insert the <code>AMAZON.FallbackIntent</code>, <code>AMAZON.KendraSearchIntent</code>, or both when returning alternative intents. <code>AMAZON.FallbackIntent</code> and <code>AMAZON.KendraSearchIntent</code> are only inserted if they are configured for the bot. For example, suppose a bot is configured with the confidence threshold of 0.80 and the <code>AMAZON.FallbackIntent</code>. Amazon Lex returns three alternative intents with the following confidence scores: IntentA (0.70), IntentB (0.60), IntentC (0.50). The response from the PostText operation would be: <ul> <li> AMAZON.FallbackIntent </li> <li> IntentA </li> <li> IntentB </li> <li> IntentC </li> </ul><br/>description:  A description of the bot locale. Use this to help identify the bot locale in lists.<br/>localeId:  The identifier of the language and locale that the bot will be used in. The string must match one of the supported locales. All of the intents, slot types, and slots used in the bot must have the same locale. For more information, see <a href="https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html">Supported languages</a>.<br/>botVersion:  The version of the bot to create the locale for. This can only be the draft version of the bot.<br/>botId:  The identifier of the bot to create the locale for.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>voiceId</i> The identifier of the Amazon Polly voice to use.<br/>
        :return: creationDateTime:  A timestamp specifying the date and time that the bot locale was created.<br/>botLocaleStatus:  The status of the bot. When the status is <code>Creating</code> the bot locale is being configured. When the status is <code>Building</code> Amazon Lex is building the bot for testing and use. If the status of the bot is <code>ReadyExpressTesting</code>, you can test the bot using the exact utterances specified in the bots' intents. When the bot is ready for full testing or to run, the status is <code>Built</code>. If there was a problem with building the bot, the status is <code>Failed</code>. If the bot was saved but not built, the status is <code>NotBuilt</code>.<br/>voiceSettings:  The Amazon Polly voice ID that Amazon Lex uses for voice interaction with the user.:<br/>nluIntentConfidenceThreshold:  The specified confidence threshold for inserting the <code>AMAZON.FallbackIntent</code> and <code>AMAZON.KendraSearchIntent</code> intents.<br/>description:  The specified description of the bot locale.<br/>localeId:  The specified locale identifier.<br/>localeName:  The specified locale name.<br/>botVersion:  The specified bot version.<br/>botId:  The specified bot identifier.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>voiceId</i> The identifier of the Amazon Polly voice to use.<br/>        """
        pass

    def create_bot_version(self, botVersionLocaleSpecification: BotVersionLocaleSpecification, botId: str, description: str=None) -> CreateBotVersionResponse:
        r"""Creates a new version of the bot based on the <code>DRAFT</code> version. If the <code>DRAFT</code> version of this resource hasn't changed since you created the last version, Amazon Lex doesn't create a new version, it returns the last created version. When you create the first version of a bot, Amazon Lex sets the version to 1. Subsequent versions increment by 1.

        :param self:
        :param botVersionLocaleSpecification:  Specifies the locales that Amazon Lex adds to this version. You can choose the <code>Draft</code> version or any other previously published version for each locale. When you specify a source version, the locale data is copied from the source version to the new version.<br/>description:  A description of the version. Use the description to help identify the version in lists.<br/>botId:  The identifier of the bot to create the version for.<br/>
        :return: creationDateTime:  A timestamp of the date and time that the version was created.<br/>botStatus:  When you send a request to create or update a bot, Amazon Lex sets the status response element to <code>Creating</code>. After Amazon Lex builds the bot, it sets status to <code>Available</code>. If Amazon Lex can't build the bot, it sets status to <code>Failed</code>.<br/>botVersionLocaleSpecification:  The source versions used for each locale in the new version.<br/>botVersion:  The version number assigned to the version.<br/>description:  The description of the version specified in the request.<br/>botId:  The bot identifier specified in the request.<br/>        """
        pass

    def create_export(self, fileFormat: str, resourceSpecification: ExportResourceSpecification, filePassword: str=None) -> CreateExportResponse:
        r"""Creates a zip archive containing the contents of a bot or a bot locale. The archive contains a directory structure that contains JSON files that define the bot. You can create an archive that contains the complete definition of a bot, or you can specify that the archive contain only the definition of a single bot locale. For more information about exporting bots, and about the structure of the export archive, see <a href="https://docs.aws.amazon.com/lexv2/latest/dg/importing-exporting.html"> Importing and exporting bots </a> 

        :param self:
        :param filePassword:  An password to use to encrypt the exported archive. Using a password is optional, but you should encrypt the archive to protect the data in transit between Amazon Lex and your local computer.<br/>fileFormat:  The file format of the bot or bot locale definition files.<br/>resourceSpecification:  Specifies the type of resource to export, either a bot or a bot locale. You can only specify one type of resource to export.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>botLocaleExportSpecification</i> Parameters for exporting a bot locale.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>botLocaleExportSpecification</b>: Parameters for exporting a bot locale.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>botExportSpecification</i> Parameters for exporting a bot.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>botExportSpecification</b>: Parameters for exporting a bot.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>botVersion</i> The version of the bot that was exported. This will be either <code>DRAFT</code> or the version number.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>botId</i> The identifier of the bot assigned by Amazon Lex.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>localeId</i> The identifier of the language and locale to export. The string must match one of the locales in the bot.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>botVersion</i> The version of the bot to export.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>botId</i> The identifier of the bot to create the locale for.<br/>
        :return: creationDateTime:  The date and time that the request to export a bot was created.<br/>exportStatus:  The status of the export. When the status is <code>Completed</code>, you can use the operation to get the pre-signed S3 URL link to your exported bot or bot locale.<br/>fileFormat:  The file format used for the bot or bot locale definition files.<br/>resourceSpecification:  A description of the type of resource that was exported, either a bot or a bot locale.:<br/>exportId:  An identifier for a specific request to create an export.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>botLocaleExportSpecification</i> Parameters for exporting a bot locale.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>botLocaleExportSpecification</b>: Parameters for exporting a bot locale.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>botExportSpecification</i> Parameters for exporting a bot.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>botExportSpecification</b>: Parameters for exporting a bot.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>botVersion</i> The version of the bot that was exported. This will be either <code>DRAFT</code> or the version number.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>botId</i> The identifier of the bot assigned by Amazon Lex.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>localeId</i> The identifier of the language and locale to export. The string must match one of the locales in the bot.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>botVersion</i> The version of the bot to export.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>botId</i> The identifier of the bot to create the locale for.<br/>        """
        pass

    def create_intent(self, localeId: str, botVersion: str, botId: str, intentName: str, description: str=None, parentIntentSignature: str=None, sampleUtterances: List[SampleUtterance]=None, dialogCodeHook: DialogCodeHookSettings=None, fulfillmentCodeHook: FulfillmentCodeHookSettings=None, intentConfirmationSetting: IntentConfirmationSetting=None, intentClosingSetting: IntentClosingSetting=None, inputContexts: List[InputContext]=None, outputContexts: List[OutputContext]=None, kendraConfiguration: KendraConfiguration=None) -> CreateIntentResponse:
        r"""Creates an intent. To define the interaction between the user and your bot, you define one or more intents. For example, for a pizza ordering bot you would create an <code>OrderPizza</code> intent. When you create an intent, you must provide a name. You can optionally provide the following: <ul> <li> Sample utterances. For example, "I want to order a pizza" and "Can I order a pizza." You can't provide utterances for built-in intents. </li> <li> Information to be gathered. You specify slots for the information that you bot requests from the user. You can specify standard slot types, such as date and time, or custom slot types for your application. </li> <li> How the intent is fulfilled. You can provide a Lambda function or configure the intent to return the intent information to your client application. If you use a Lambda function, Amazon Lex invokes the function when all of the intent information is available. </li> <li> A confirmation prompt to send to the user to confirm an intent. For example, "Shall I order your pizza?" </li> <li> A conclusion statement to send to the user after the intent is fulfilled. For example, "I ordered your pizza." </li> <li> A follow-up prompt that asks the user for additional activity. For example, "Do you want a drink with your pizza?" </li> </ul>

        :param self:
        :param localeId:  The identifier of the language and locale where this intent is used. All of the bots, slot types, and slots used by the intent must have the same locale. For more information, see <a href="https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html">Supported languages</a>.<br/>botVersion:  The identifier of the version of the bot associated with this intent.<br/>botId:  The identifier of the bot associated with this intent.<br/>kendraConfiguration:  Configuration information required to use the <code>AMAZON.KendraSearchIntent</code> intent to connect to an Amazon Kendra index. The <code>AMAZON.KendraSearchIntent</code> intent is called when Amazon Lex can't determine another intent to invoke.:<br/>outputContexts:  A lists of contexts that the intent activates when it is fulfilled. You can use an output context to indicate the intents that Amazon Lex should consider for the next turn of the conversation with a customer.  When you use the <code>outputContextsList</code> property, all of the contexts specified in the list are activated when the intent is fulfilled. You can set up to 10 output contexts. You can also set the number of conversation turns that the context should be active, or the length of time that the context should be active.<br/>inputContexts:  A list of contexts that must be active for this intent to be considered by Amazon Lex. When an intent has an input context list, Amazon Lex only considers using the intent in an interaction with the user when the specified contexts are included in the active context list for the session. If the contexts are not active, then Amazon Lex will not use the intent. A context can be automatically activated using the <code>outputContexts</code> property or it can be set at runtime.  For example, if there are two intents with different input contexts that respond to the same utterances, only the intent with the active context will respond. An intent may have up to 5 input contexts. If an intent has multiple input contexts, all of the contexts must be active to consider the intent.<br/>intentClosingSetting:  Sets the response that Amazon Lex sends to the user when the intent is closed.:<br/>intentConfirmationSetting:  Provides prompts that Amazon Lex sends to the user to confirm the completion of an intent. If the user answers "no," the settings contain a statement that is sent to the user to end the intent.:<br/>fulfillmentCodeHook:  Specifies that Amazon Lex invokes the alias Lambda function when the intent is ready for fulfillment. You can invoke this function to complete the bot's transaction with the user. For example, in a pizza ordering bot, the Lambda function can look up the closest pizza restaurant to the customer's location and then place an order on the customer's behalf.:<br/>dialogCodeHook:  Specifies that Amazon Lex invokes the alias Lambda function for each user input. You can invoke this Lambda function to personalize user interaction. For example, suppose that your bot determines that the user's name is John. You Lambda function might retrieve John's information from a backend database and prepopulate some of the values. For example, if you find that John is gluten intolerant, you might set the corresponding intent slot, <code>glutenIntolerant</code> to <code>true</code>. You might find John's phone number and set the corresponding session attribute.:<br/>sampleUtterances:  An array of strings that a user might say to signal the intent. For example, "I want a pizza", or "I want a {PizzaSize} pizza".  In an utterance, slot names are enclosed in curly braces ("{", "}") to indicate where they should be displayed in the utterance shown to the user.. <br/>parentIntentSignature:  A unique identifier for the built-in intent to base this intent on.<br/>description:  A description of the intent. Use the description to help identify the intent in lists.<br/>intentName:  The name of the intent. Intent names must be unique in the locale that contains the intent and cannot match the name of any built-in intent.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>enabled</i> Enables the dialog code hook so that it processes user requests.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>enabled</i> Indicates whether a Lambda function should be invoked to fulfill a specific intent.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>declinationResponse</i> When the user answers "no" to the question defined in <code>promptSpecification</code>, Amazon Lex responds with this response to acknowledge that the intent was canceled. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>declinationResponse</b>: When the user answers "no" to the question defined in <code>promptSpecification</code>, Amazon Lex responds with this response to acknowledge that the intent was canceled. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>promptSpecification</i> Prompts the user to confirm the intent. This question should have a yes or no answer. Amazon Lex uses this prompt to ensure that the user acknowledges that the intent is ready for fulfillment. For example, with the <code>OrderPizza</code> intent, you might want to confirm that the order is correct before placing it. For other intents, such as intents that simply respond to user questions, you might not need to ask the user for confirmation before providing the information. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>promptSpecification</b>: Prompts the user to confirm the intent. This question should have a yes or no answer. Amazon Lex uses this prompt to ensure that the user acknowledges that the intent is ready for fulfillment. For example, with the <code>OrderPizza</code> intent, you might want to confirm that the order is correct before placing it. For other intents, such as intents that simply respond to user questions, you might not need to ask the user for confirmation before providing the information. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>allowInterrupt</i> Indicates whether the user can interrupt a speech prompt from the bot.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>maxRetries</i> The maximum number of times the bot tries to elicit a resonse from the user using this prompt.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>messageGroups</i> A collection of messages that Amazon Lex can send to the user. Amazon Lex chooses the actual message to send at runtime.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>allowInterrupt</i> Indicates whether the user can interrupt a speech response from Amazon Lex.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>messageGroups</i> A collection of responses that Amazon Lex can send to the user. Amazon Lex chooses the actual response to send at runtime.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>closingResponse</i> The response that Amazon Lex sends to the user when the intent is complete.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>closingResponse</b>: The response that Amazon Lex sends to the user when the intent is complete.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>allowInterrupt</i> Indicates whether the user can interrupt a speech response from Amazon Lex.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>messageGroups</i> A collection of responses that Amazon Lex can send to the user. Amazon Lex chooses the actual response to send at runtime.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>queryFilterString</i> A query filter that Amazon Lex sends to Amazon Kendra to filter the response from a query. The filter is in the format defined by Amazon Kendra. For more information, see <a href="https://docs.aws.amazon.com/kendra/latest/dg/filtering.html">Filtering queries</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>queryFilterStringEnabled</i> Determines whether the AMAZON.KendraSearchIntent intent uses a custom query string to query the Amazon Kendra index.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>kendraIndex</i> The Amazon Resource Name (ARN) of the Amazon Kendra index that you want the AMAZON.KendraSearchIntent intent to search. The index must be in the same account and Region as the Amazon Lex bot.<br/>
        :return: creationDateTime:  A timestamp of the date and time that the intent was created.<br/>localeId:  The locale that the intent is specified to use.<br/>botVersion:  The identifier of the version of the bot associated with the intent.<br/>botId:  The identifier of the bot associated with the intent.<br/>kendraConfiguration:  Configuration for searching a Amazon Kendra index specified for the intent.:<br/>outputContexts:  The list of output contexts specified for the intent.<br/>inputContexts:  The list of input contexts specified for the intent.<br/>intentClosingSetting:  The closing setting specified for the intent.:<br/>intentConfirmationSetting:  The confirmation setting specified for the intent.:<br/>fulfillmentCodeHook:  The fulfillment Lambda function specified for the intent.:<br/>dialogCodeHook:  The dialog Lambda function specified for the intent.:<br/>sampleUtterances:  The sample utterances specified for the intent.<br/>parentIntentSignature:  The signature of the parent intent specified for the intent.<br/>description:  The description specified for the intent.<br/>intentName:  The name specified for the intent.<br/>intentId:  A unique identifier for the intent.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>enabled</i> Enables the dialog code hook so that it processes user requests.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>enabled</i> Indicates whether a Lambda function should be invoked to fulfill a specific intent.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>declinationResponse</i> When the user answers "no" to the question defined in <code>promptSpecification</code>, Amazon Lex responds with this response to acknowledge that the intent was canceled. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>declinationResponse</b>: When the user answers "no" to the question defined in <code>promptSpecification</code>, Amazon Lex responds with this response to acknowledge that the intent was canceled. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>promptSpecification</i> Prompts the user to confirm the intent. This question should have a yes or no answer. Amazon Lex uses this prompt to ensure that the user acknowledges that the intent is ready for fulfillment. For example, with the <code>OrderPizza</code> intent, you might want to confirm that the order is correct before placing it. For other intents, such as intents that simply respond to user questions, you might not need to ask the user for confirmation before providing the information. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>promptSpecification</b>: Prompts the user to confirm the intent. This question should have a yes or no answer. Amazon Lex uses this prompt to ensure that the user acknowledges that the intent is ready for fulfillment. For example, with the <code>OrderPizza</code> intent, you might want to confirm that the order is correct before placing it. For other intents, such as intents that simply respond to user questions, you might not need to ask the user for confirmation before providing the information. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>allowInterrupt</i> Indicates whether the user can interrupt a speech prompt from the bot.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>maxRetries</i> The maximum number of times the bot tries to elicit a resonse from the user using this prompt.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>messageGroups</i> A collection of messages that Amazon Lex can send to the user. Amazon Lex chooses the actual message to send at runtime.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>allowInterrupt</i> Indicates whether the user can interrupt a speech response from Amazon Lex.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>messageGroups</i> A collection of responses that Amazon Lex can send to the user. Amazon Lex chooses the actual response to send at runtime.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>closingResponse</i> The response that Amazon Lex sends to the user when the intent is complete.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>closingResponse</b>: The response that Amazon Lex sends to the user when the intent is complete.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>allowInterrupt</i> Indicates whether the user can interrupt a speech response from Amazon Lex.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>messageGroups</i> A collection of responses that Amazon Lex can send to the user. Amazon Lex chooses the actual response to send at runtime.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>queryFilterString</i> A query filter that Amazon Lex sends to Amazon Kendra to filter the response from a query. The filter is in the format defined by Amazon Kendra. For more information, see <a href="https://docs.aws.amazon.com/kendra/latest/dg/filtering.html">Filtering queries</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>queryFilterStringEnabled</i> Determines whether the AMAZON.KendraSearchIntent intent uses a custom query string to query the Amazon Kendra index.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>kendraIndex</i> The Amazon Resource Name (ARN) of the Amazon Kendra index that you want the AMAZON.KendraSearchIntent intent to search. The index must be in the same account and Region as the Amazon Lex bot.<br/>        """
        pass

    def create_resource_policy(self, policy: str, resourceArn: str) -> CreateResourcePolicyResponse:
        r"""Creates a new resource policy with the specified policy statements.

        :param self:
        :param policy:  A resource policy to add to the resource. The policy is a JSON structure that contains one or more statements that define the policy. The policy must follow the IAM syntax. For more information about the contents of a JSON policy document, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html"> IAM JSON policy reference </a>.  If the policy isn't valid, Amazon Lex returns a validation exception.<br/>resourceArn:  The Amazon Resource Name (ARN) of the bot or bot alias that the resource policy is attached to.<br/>
        :return: revisionId:  The current revision of the resource policy. Use the revision ID to make sure that you are updating the most current version of a resource policy when you add a policy statement to a resource, delete a resource, or update a resource.<br/>resourceArn:  The Amazon Resource Name (ARN) of the bot or bot alias that the resource policy was attached to.<br/>        """
        pass

    def create_resource_policy_statement(self, action: List[Operation], principal: List[Principal], effect: str, statementId: str, resourceArn: str, condition: ConditionMap=None, expectedRevisionId: str=None) -> CreateResourcePolicyStatementResponse:
        r"""Adds a new resource policy statement to a bot or bot alias. If a resource policy exists, the statement is added to the current resource policy. If a policy doesn't exist, a new policy is created. You can't create a resource policy statement that allows cross-account access.

        :param self:
        :param expectedRevisionId:  The identifier of the revision of the policy to edit. If this revision ID doesn't match the current revision ID, Amazon Lex throws an exception. If you don't specify a revision, Amazon Lex overwrites the contents of the policy with the new values.<br/>condition:  Specifies a condition when the policy is in effect. If the principal of the policy is a service principal, you must provide two condition blocks, one with a SourceAccount global condition key and one with a SourceArn global condition key. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html">IAM JSON policy elements: Condition </a>.<br/>action:  The Amazon Lex action that this policy either allows or denies. The action must apply to the resource type of the specified ARN. For more information, see <a href="https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonlexv2.html"> Actions, resources, and condition keys for Amazon Lex V2</a>.<br/>principal:  An IAM principal, such as an IAM users, IAM roles, or AWS services that is allowed or denied access to a resource. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html">AWS JSON policy elements: Principal</a>.<br/>effect:  Determines whether the statement allows or denies access to the resource.<br/>statementId:  The name of the statement. The ID is the same as the <code>Sid</code> IAM property. The statement name must be unique within the policy. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_sid.html">IAM JSON policy elements: Sid</a>. <br/>resourceArn:  The Amazon Resource Name (ARN) of the bot or bot alias that the resource policy is attached to.<br/>
        :return: revisionId:  The current revision of the resource policy. Use the revision ID to make sure that you are updating the most current version of a resource policy when you add a policy statement to a resource, delete a resource, or update a resource.<br/>resourceArn:  The Amazon Resource Name (ARN) of the bot or bot alias that the resource policy is attached to.<br/>        """
        pass

    def create_slot(self, intentId: str, localeId: str, botVersion: str, botId: str, valueElicitationSetting: SlotValueElicitationSetting, slotTypeId: str, slotName: str, description: str=None, obfuscationSetting: ObfuscationSetting=None, multipleValuesSetting: MultipleValuesSetting=None) -> CreateSlotResponse:
        r"""Creates a slot in an intent. A slot is a variable needed to fulfill an intent. For example, an <code>OrderPizza</code> intent might need slots for size, crust, and number of pizzas. For each slot, you define one or more utterances that Amazon Lex uses to elicit a response from the user. 

        :param self:
        :param multipleValuesSetting:  Indicates whether the slot returns multiple values in one response. Multi-value slots are only available in the en-US locale. If you set this value to <code>true</code> in any other locale, Amazon Lex throws a <code>ValidationException</code>.  If the <code>multipleValuesSetting</code> is not set, the default value is <code>false</code>.:<br/>intentId:  The identifier of the intent that contains the slot.<br/>localeId:  The identifier of the language and locale that the slot will be used in. The string must match one of the supported locales. All of the bots, intents, slot types used by the slot must have the same locale. For more information, see <a href="https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html">Supported languages</a>.<br/>botVersion:  The version of the bot associated with the slot.<br/>botId:  The identifier of the bot associated with the slot.<br/>obfuscationSetting:  Determines how slot values are used in Amazon CloudWatch logs. If the value of the <code>obfuscationSetting</code> parameter is <code>DefaultObfuscation</code>, slot values are obfuscated in the log output. If the value is <code>None</code>, the actual value is present in the log output. The default is to obfuscate values in the CloudWatch logs.:<br/>valueElicitationSetting:  Specifies prompts that Amazon Lex sends to the user to elicit a response that provides the value for the slot. :<br/>slotTypeId:  The unique identifier for the slot type associated with this slot. The slot type determines the values that can be entered into the slot.<br/>description:  A description of the slot. Use this to help identify the slot in lists.<br/>slotName:  The name of the slot. Slot names must be unique within the bot that contains the slot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>waitAndContinueSpecification</i> Specifies the prompts that Amazon Lex uses while a bot is waiting for customer input. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>waitAndContinueSpecification</b>: Specifies the prompts that Amazon Lex uses while a bot is waiting for customer input. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>sampleUtterances</i> If you know a specific pattern that users might respond to an Amazon Lex request for a slot value, you can provide those utterances to improve accuracy. This is optional. In most cases, Amazon Lex is capable of understanding user utterances.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>promptSpecification</i> The prompt that Amazon Lex uses to elicit the slot value from the user.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>promptSpecification</b>: The prompt that Amazon Lex uses to elicit the slot value from the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>slotConstraint</i> Specifies whether the slot is required or optional.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>defaultValueSpecification</i> A list of default values for a slot. Default values are used when Amazon Lex hasn't determined a value for a slot. You can specify default values from context variables, sesion attributes, and defined values.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>defaultValueSpecification</b>: A list of default values for a slot. Default values are used when Amazon Lex hasn't determined a value for a slot. You can specify default values from context variables, sesion attributes, and defined values.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>defaultValueList</i> A list of default values. Amazon Lex chooses the default value to use in the order that they are presented in the list.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>allowInterrupt</i> Indicates whether the user can interrupt a speech prompt from the bot.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>maxRetries</i> The maximum number of times the bot tries to elicit a resonse from the user using this prompt.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>messageGroups</i> A collection of messages that Amazon Lex can send to the user. Amazon Lex chooses the actual message to send at runtime.<br/>The response that Amazon Lex sends to indicate that the bot is waiting for the conversation to continue.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>waitingResponse</b>: The response that Amazon Lex sends to indicate that the bot is waiting for the conversation to continue.&nbsp;&nbsp;&nbsp;&nbsp; <i>obfuscationSettingType</i> Value that determines whether Amazon Lex obscures slot values in conversation logs. The default is to obscure the values.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>allowMultipleValues</i> Indicates whether a slot can return multiple values. When <code>true</code>, the slot may return more than one value in a response. When <code>false</code>, the slot returns only a single value. Multi-value slots are only available in the en-US locale. If you set this value to <code>true</code> in any other locale, Amazon Lex throws a <code>ValidationException</code>. If the <code>allowMutlipleValues</code> is not set, the default value is <code>false</code>.<br/>
        :return: multipleValuesSetting:  Indicates whether the slot returns multiple values in one response.:<br/>creationDateTime:  The timestamp of the date and time that the slot was created.<br/>intentId:  The unique identifier of the intent associated with the slot.<br/>localeId:  The language and local specified for the slot.<br/>botVersion:  The version of the bot associated with the slot.<br/>botId:  The unique identifier of the bot associated with the slot.<br/>obfuscationSetting:  Indicates whether the slot is configured to obfuscate values in Amazon CloudWatch logs.:<br/>valueElicitationSetting:  The value elicitation settings specified for the slot.:<br/>slotTypeId:  The unique identifier of the slot type associated with this slot.<br/>description:  The description associated with the slot.<br/>slotName:  The name specified for the slot.<br/>slotId:  The unique identifier associated with the slot. Use this to identify the slot when you update or delete it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>waitAndContinueSpecification</i> Specifies the prompts that Amazon Lex uses while a bot is waiting for customer input. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>waitAndContinueSpecification</b>: Specifies the prompts that Amazon Lex uses while a bot is waiting for customer input. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>sampleUtterances</i> If you know a specific pattern that users might respond to an Amazon Lex request for a slot value, you can provide those utterances to improve accuracy. This is optional. In most cases, Amazon Lex is capable of understanding user utterances.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>promptSpecification</i> The prompt that Amazon Lex uses to elicit the slot value from the user.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>promptSpecification</b>: The prompt that Amazon Lex uses to elicit the slot value from the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>slotConstraint</i> Specifies whether the slot is required or optional.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>defaultValueSpecification</i> A list of default values for a slot. Default values are used when Amazon Lex hasn't determined a value for a slot. You can specify default values from context variables, sesion attributes, and defined values.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>defaultValueSpecification</b>: A list of default values for a slot. Default values are used when Amazon Lex hasn't determined a value for a slot. You can specify default values from context variables, sesion attributes, and defined values.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>defaultValueList</i> A list of default values. Amazon Lex chooses the default value to use in the order that they are presented in the list.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>allowInterrupt</i> Indicates whether the user can interrupt a speech prompt from the bot.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>maxRetries</i> The maximum number of times the bot tries to elicit a resonse from the user using this prompt.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>messageGroups</i> A collection of messages that Amazon Lex can send to the user. Amazon Lex chooses the actual message to send at runtime.<br/>The response that Amazon Lex sends to indicate that the bot is waiting for the conversation to continue.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>waitingResponse</b>: The response that Amazon Lex sends to indicate that the bot is waiting for the conversation to continue.&nbsp;&nbsp;&nbsp;&nbsp; <i>obfuscationSettingType</i> Value that determines whether Amazon Lex obscures slot values in conversation logs. The default is to obscure the values.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>allowMultipleValues</i> Indicates whether a slot can return multiple values. When <code>true</code>, the slot may return more than one value in a response. When <code>false</code>, the slot returns only a single value. Multi-value slots are only available in the en-US locale. If you set this value to <code>true</code> in any other locale, Amazon Lex throws a <code>ValidationException</code>. If the <code>allowMutlipleValues</code> is not set, the default value is <code>false</code>.<br/>        """
        pass

    def create_slot_type(self, localeId: str, botVersion: str, botId: str, valueSelectionSetting: SlotValueSelectionSetting, slotTypeName: str, description: str=None, slotTypeValues: List[SlotTypeValue]=None, parentSlotTypeSignature: str=None) -> CreateSlotTypeResponse:
        r"""Creates a custom slot type  To create a custom slot type, specify a name for the slot type and a set of enumeration values, the values that a slot of this type can assume. 

        :param self:
        :param localeId:  The identifier of the language and locale that the slot type will be used in. The string must match one of the supported locales. All of the bots, intents, and slots used by the slot type must have the same locale. For more information, see <a href="https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html">Supported languages</a>.<br/>botVersion:  The identifier of the bot version associated with this slot type.<br/>botId:  The identifier of the bot associated with this slot type.<br/>parentSlotTypeSignature:  The built-in slot type used as a parent of this slot type. When you define a parent slot type, the new slot type has the configuration of the parent slot type. Only <code>AMAZON.AlphaNumeric</code> is supported.<br/>valueSelectionSetting:  Determines the strategy that Amazon Lex uses to select a value from the list of possible values. The field can be set to one of the following values: <ul> <li>  <code>OriginalValue</code> - Returns the value entered by the user, if the user value is similar to the slot value. </li> <li>  <code>TopResolution</code> - If there is a resolution list for the slot, return the first value in the resolution list. If there is no resolution list, return null. </li> </ul> If you don't specify the <code>valueSelectionSetting</code> parameter, the default is <code>OriginalValue</code>.:<br/>slotTypeValues:  A list of <code>SlotTypeValue</code> objects that defines the values that the slot type can take. Each value can have a list of synonyms, additional values that help train the machine learning model about the values that it resolves for a slot.<br/>description:  A description of the slot type. Use the description to help identify the slot type in lists.<br/>slotTypeName:  The name for the slot. A slot type name must be unique within the account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>regexFilter</i> A regular expression used to validate the value of a slot.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>regexFilter</b>: A regular expression used to validate the value of a slot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resolutionStrategy</i> Determines the slot resolution strategy that Amazon Lex uses to return slot type values. The field can be set to one of the following values: <ul> <li> OriginalValue - Returns the value entered by the user, if the user value is similar to the slot value. </li> <li> TopResolution - If there is a resolution list for the slot, return the first value in the resolution list as the slot type value. If there is no resolution list, null is returned. </li> </ul> If you don't specify the valueSelectionStrategy, the default is OriginalValue. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>pattern</i> A regular expression used to validate the value of a slot.  Use a standard regular expression. Amazon Lex supports the following characters in the regular expression:  <ul> <li> A-Z, a-z </li> <li> 0-9 </li> <li> Unicode characters ("\ u&lt;Unicode&gt;") </li> </ul>  Represent Unicode characters with four digits, for example "\u0041" or "\u005A".   The following regular expression operators are not supported:  <ul> <li> Infinite repeaters: *, +, or {x,} with no upper bound. </li> <li> Wild card (.) </li> </ul><br/>
        :return: creationDateTime:  A timestamp of the date and time that the slot type was created.<br/>localeId:  The specified language and local specified for the slot type.<br/>botVersion:  The version of the bot associated with the slot type.<br/>botId:  The identifier for the bot associated with the slot type.<br/>parentSlotTypeSignature:  The signature of the base slot type specified for the slot type.<br/>valueSelectionSetting:  The strategy that Amazon Lex uses to select a value from the list of possible values.:<br/>slotTypeValues:  The list of values that the slot type can assume.<br/>description:  The description specified for the slot type.<br/>slotTypeName:  The name specified for the slot type.<br/>slotTypeId:  The unique identifier assigned to the slot type. Use this to identify the slot type in the <code>UpdateSlotType</code> and <code>DeleteSlotType</code> operations.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>regexFilter</i> A regular expression used to validate the value of a slot.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>regexFilter</b>: A regular expression used to validate the value of a slot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resolutionStrategy</i> Determines the slot resolution strategy that Amazon Lex uses to return slot type values. The field can be set to one of the following values: <ul> <li> OriginalValue - Returns the value entered by the user, if the user value is similar to the slot value. </li> <li> TopResolution - If there is a resolution list for the slot, return the first value in the resolution list as the slot type value. If there is no resolution list, null is returned. </li> </ul> If you don't specify the valueSelectionStrategy, the default is OriginalValue. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>pattern</i> A regular expression used to validate the value of a slot.  Use a standard regular expression. Amazon Lex supports the following characters in the regular expression:  <ul> <li> A-Z, a-z </li> <li> 0-9 </li> <li> Unicode characters ("\ u&lt;Unicode&gt;") </li> </ul>  Represent Unicode characters with four digits, for example "\u0041" or "\u005A".   The following regular expression operators are not supported:  <ul> <li> Infinite repeaters: *, +, or {x,} with no upper bound. </li> <li> Wild card (.) </li> </ul><br/>        """
        pass

    def create_upload_url(self) -> CreateUploadUrlResponse:
        r"""Gets a pre-signed S3 write URL that you use to upload the zip archive when importing a bot or a bot locale. 

        :param self:
        :param 
        :return: uploadUrl:  A pre-signed S3 write URL. Upload the zip archive file that contains the definition of your bot or bot locale.<br/>importId:  An identifier for a unique import job. Use it when you call the operation.<br/>        """
        pass

    def delete_bot(self, botId: str, skipResourceInUseCheck: SkipResourceInUseCheck=None) -> DeleteBotResponse:
        r"""Deletes all versions of a bot, including the <code>Draft</code> version. To delete a specific version, use the <code>DeleteBotVersion</code> operation. When you delete a bot, all of the resources contained in the bot are also deleted. Deleting a bot removes all locales, intents, slot, and slot types defined for the bot. If a bot has an alias, the <code>DeleteBot</code> operation returns a <code>ResourceInUseException</code> exception. If you want to delete the bot and the alias, set the <code>skipResourceInUseCheck</code> parameter to <code>true</code>.

        :param self:
        :param skipResourceInUseCheck:  When <code>true</code>, Amazon Lex doesn't check to see if another resource, such as an alias, is using the bot before it is deleted.<br/>botId:  The identifier of the bot to delete. <br/>
        :return: botStatus:  The current status of the bot. The status is <code>Deleting</code> while the bot and its associated resources are being deleted.<br/>botId:  The unique identifier of the bot that Amazon Lex is deleting.<br/>        """
        pass

    def delete_bot_alias(self, botId: str, botAliasId: str, skipResourceInUseCheck: SkipResourceInUseCheck=None) -> DeleteBotAliasResponse:
        r"""Deletes the specified bot alias.

        :param self:
        :param skipResourceInUseCheck:  When this parameter is true, Amazon Lex doesn't check to see if any other resource is using the alias before it is deleted.<br/>botId:  The unique identifier of the bot associated with the alias to delete.<br/>botAliasId:  The unique identifier of the bot alias to delete.<br/>
        :return: botAliasStatus:  The current status of the alias. The status is <code>Deleting</code> while the alias is in the process of being deleted. Once the alias is deleted, it will no longer appear in the list of aliases returned by the <code>ListBotAliases</code> operation.<br/>botId:  The unique identifier of the bot that contains the alias to delete.<br/>botAliasId:  The unique identifier of the bot alias to delete.<br/>        """
        pass

    def delete_bot_locale(self, localeId: str, botVersion: str, botId: str) -> DeleteBotLocaleResponse:
        r"""Removes a locale from a bot. When you delete a locale, all intents, slots, and slot types defined for the locale are also deleted.

        :param self:
        :param localeId:  The identifier of the language and locale that will be deleted. The string must match one of the supported locales. For more information, see <a href="https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html">Supported languages</a>.<br/>botVersion:  The version of the bot that contains the locale. <br/>botId:  The unique identifier of the bot that contains the locale.<br/>
        :return: botLocaleStatus:  The status of deleting the bot locale. The locale first enters the <code>Deleting</code> status. Once the locale is deleted it no longer appears in the list of locales for the bot.<br/>localeId:  The language and locale of the deleted locale.<br/>botVersion:  The version of the bot that contained the deleted locale.<br/>botId:  The identifier of the bot that contained the deleted locale.<br/>        """
        pass

    def delete_bot_version(self, botVersion: str, botId: str, skipResourceInUseCheck: SkipResourceInUseCheck=None) -> DeleteBotVersionResponse:
        r"""Deletes a specific version of a bot. To delete all version of a bot, use the <a>DeleteBot</a> operation.

        :param self:
        :param skipResourceInUseCheck:  By default, the <code>DeleteBotVersion</code> operations throws a <code>ResourceInUseException</code> exception if you try to delete a bot version that has an alias pointing at it. Set the <code>skipResourceInUseCheck</code> parameter to <code>true</code> to skip this check and remove the version even if an alias points to it.<br/>botVersion:  The version of the bot to delete.<br/>botId:  The identifier of the bot that contains the version.<br/>
        :return: botStatus:  The current status of the bot. <br/>botVersion:  The version of the bot that is being deleted.<br/>botId:  The identifier of the bot that is being deleted.<br/>        """
        pass

    def delete_export(self, exportId: str) -> DeleteExportResponse:
        r"""Removes a previous export and the associated files stored in an S3 bucket.

        :param self:
        :param exportId:  The unique identifier of the export to delete.<br/>
        :return: exportStatus:  The current status of the deletion. When the deletion is complete, the export will no longer be returned by the operation and calls to the with the export identifier will fail.<br/>exportId:  The unique identifier of the deleted export.<br/>        """
        pass

    def delete_import(self, importId: str) -> DeleteImportResponse:
        r"""Removes a previous import and the associated file stored in an S3 bucket.

        :param self:
        :param importId:  The unique identifier of the import to delete.<br/>
        :return: importStatus:  The current status of the deletion. When the deletion is complete, the import will no longer be returned by the operation and calls to the with the import identifier will fail.<br/>importId:  The unique identifier of the deleted import.<br/>        """
        pass

    def delete_intent(self, localeId: str, botVersion: str, botId: str, intentId: str):
        r"""Removes the specified intent. Deleting an intent also deletes the slots associated with the intent.

        :param self:
        :param localeId:  The identifier of the language and locale where the bot will be deleted. The string must match one of the supported locales. For more information, see <a href="https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html">Supported languages</a>.<br/>botVersion:  The version of the bot associated with the intent.<br/>botId:  The identifier of the bot associated with the intent.<br/>intentId:  The unique identifier of the intent to delete.<br/>
        :return:         """
        pass

    def delete_resource_policy(self, resourceArn: str, expectedRevisionId: str=None) -> DeleteResourcePolicyResponse:
        r"""Removes an existing policy from a bot or bot alias. If the resource doesn't have a policy attached, Amazon Lex returns an exception.

        :param self:
        :param expectedRevisionId:  The identifier of the revision to edit. If this ID doesn't match the current revision number, Amazon Lex returns an exception If you don't specify a revision ID, Amazon Lex will delete the current policy.<br/>resourceArn:  The Amazon Resource Name (ARN) of the bot or bot alias that has the resource policy attached.<br/>
        :return: revisionId:  The current revision of the resource policy. Use the revision ID to make sure that you are updating the most current version of a resource policy when you add a policy statement to a resource, delete a resource, or update a resource.<br/>resourceArn:  The Amazon Resource Name (ARN) of the bot or bot alias that the resource policy was deleted from.<br/>        """
        pass

    def delete_resource_policy_statement(self, statementId: str, resourceArn: str, expectedRevisionId: str=None) -> DeleteResourcePolicyStatementResponse:
        r"""Deletes a policy statement from a resource policy. If you delete the last statement from a policy, the policy is deleted. If you specify a statement ID that doesn't exist in the policy, or if the bot or bot alias doesn't have a policy attached, Amazon Lex returns an exception.

        :param self:
        :param expectedRevisionId:  The identifier of the revision of the policy to delete the statement from. If this revision ID doesn't match the current revision ID, Amazon Lex throws an exception. If you don't specify a revision, Amazon Lex removes the current contents of the statement. <br/>statementId:  The name of the statement (SID) to delete from the policy.<br/>resourceArn:  The Amazon Resource Name (ARN) of the bot or bot alias that the resource policy is attached to.<br/>
        :return: revisionId:  The current revision of the resource policy. Use the revision ID to make sure that you are updating the most current version of a resource policy when you add a policy statement to a resource, delete a resource, or update a resource.<br/>resourceArn:  The Amazon Resource Name (ARN) of the bot or bot alias that the resource policy statement was removed from.<br/>        """
        pass

    def delete_slot(self, intentId: str, localeId: str, botVersion: str, botId: str, slotId: str):
        r"""Deletes the specified slot from an intent.

        :param self:
        :param intentId:  The identifier of the intent associated with the slot.<br/>localeId:  The identifier of the language and locale that the slot will be deleted from. The string must match one of the supported locales. For more information, see <a href="https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html">Supported languages</a>.<br/>botVersion:  The version of the bot associated with the slot to delete.<br/>botId:  The identifier of the bot associated with the slot to delete.<br/>slotId:  The identifier of the slot to delete. <br/>
        :return:         """
        pass

    def delete_slot_type(self, localeId: str, botVersion: str, botId: str, slotTypeId: str, skipResourceInUseCheck: SkipResourceInUseCheck=None):
        r"""Deletes a slot type from a bot locale. If a slot is using the slot type, Amazon Lex throws a <code>ResourceInUseException</code> exception. To avoid the exception, set the <code>skipResourceInUseCheck</code> parameter to <code>true</code>.

        :param self:
        :param skipResourceInUseCheck:  By default, the <code>DeleteSlotType</code> operations throws a <code>ResourceInUseException</code> exception if you try to delete a slot type used by a slot. Set the <code>skipResourceInUseCheck</code> parameter to <code>true</code> to skip this check and remove the slot type even if a slot uses it.<br/>localeId:  The identifier of the language and locale that the slot type will be deleted from. The string must match one of the supported locales. For more information, see <a href="https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html">Supported languages</a>.<br/>botVersion:  The version of the bot associated with the slot type.<br/>botId:  The identifier of the bot associated with the slot type.<br/>slotTypeId:  The identifier of the slot type to delete.<br/>
        :return:         """
        pass

    def describe_bot(self, botId: str) -> DescribeBotResponse:
        r"""Provides metadata information about a bot. 

        :param self:
        :param botId:  The unique identifier of the bot to describe.<br/>
        :return: lastUpdatedDateTime:  A timestamp of the date and time that the bot was last updated.<br/>creationDateTime:  A timestamp of the date and time that the bot was created.<br/>botStatus:  The current status of the bot. When the status is <code>Available</code> the bot is ready to be used in conversations with users.<br/>idleSessionTTLInSeconds:  The maximum time in seconds that Amazon Lex retains the data gathered in a conversation.<br/>dataPrivacy:  Settings for managing data privacy of the bot and its conversations with users.:<br/>roleArn:  The Amazon Resource Name (ARN) of an IAM role that has permission to access the bot.<br/>description:  The description of the bot. <br/>botName:  The name of the bot.<br/>botId:  The unique identifier of the bot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>childDirected</i> For each Amazon Lex bot created with the Amazon Lex Model Building Service, you must specify whether your use of Amazon Lex is related to a website, program, or other application that is directed or targeted, in whole or in part, to children under age 13 and subject to the Children's Online Privacy Protection Act (COPPA) by specifying <code>true</code> or <code>false</code> in the <code>childDirected</code> field. By specifying <code>true</code> in the <code>childDirected</code> field, you confirm that your use of Amazon Lex <b>is</b> related to a website, program, or other application that is directed or targeted, in whole or in part, to children under age 13 and subject to COPPA. By specifying <code>false</code> in the <code>childDirected</code> field, you confirm that your use of Amazon Lex <b>is not</b> related to a website, program, or other application that is directed or targeted, in whole or in part, to children under age 13 and subject to COPPA. You may not specify a default value for the <code>childDirected</code> field that does not accurately reflect whether your use of Amazon Lex is related to a website, program, or other application that is directed or targeted, in whole or in part, to children under age 13 and subject to COPPA. If your use of Amazon Lex relates to a website, program, or other application that is directed in whole or in part, to children under age 13, you must obtain any required verifiable parental consent under COPPA. For information regarding the use of Amazon Lex in connection with websites, programs, or other applications that are directed or targeted, in whole or in part, to children under age 13, see the <a href="https://aws.amazon.com/lex/faqs#data-security">Amazon Lex FAQ</a>.<br/>        """
        pass

    def describe_bot_alias(self, botId: str, botAliasId: str) -> DescribeBotAliasResponse:
        r"""Get information about a specific bot alias.

        :param self:
        :param botId:  The identifier of the bot associated with the bot alias to describe.<br/>botAliasId:  The identifier of the bot alias to describe.<br/>
        :return: lastUpdatedDateTime:  A timestamp of the date and time that the alias was last updated.<br/>creationDateTime:  A timestamp of the date and time that the alias was created.<br/>botId:  The identifier of the bot associated with the bot alias.<br/>botAliasStatus:  The current status of the alias. When the alias is <code>Available</code>, the alias is ready for use with your bot.<br/>botAliasHistoryEvents:  A list of events that affect a bot alias. For example, an event is recorded when the version that the alias points to changes.<br/>sentimentAnalysisSettings:  Determines whether Amazon Lex will use Amazon Comprehend to detect the sentiment of user utterances.:<br/>conversationLogSettings:  Specifics of how Amazon Lex logs text and audio conversations with the bot associated with the alias.:<br/>botAliasLocaleSettings:  The locale settings that are unique to the alias.<br/>botVersion:  The version of the bot associated with the bot alias.<br/>description:  The description of the bot alias.<br/>botAliasName:  The name of the bot alias.<br/>botAliasId:  The identifier of the bot alias.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>audioLogSettings</i> The Amazon S3 settings for logging audio to an S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>textLogSettings</i> The Amazon CloudWatch Logs settings for logging text and metadata.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>detectSentiment</i> Sets whether Amazon Lex uses Amazon Comprehend to detect the sentiment of user utterances.<br/>        """
        pass

    def describe_bot_locale(self, localeId: str, botVersion: str, botId: str) -> DescribeBotLocaleResponse:
        r"""Describes the settings that a bot has for a specific locale. 

        :param self:
        :param localeId:  The unique identifier of the locale to describe. The string must match one of the supported locales. For more information, see <a href="https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html">Supported languages</a>. <br/>botVersion:  The identifier of the version of the bot associated with the locale.<br/>botId:  The identifier of the bot associated with the locale.<br/>
        :return: botLocaleHistoryEvents:  History of changes, such as when a locale is used in an alias, that have taken place for the locale.<br/>lastBuildSubmittedDateTime:  The date and time that the locale was last submitted for building.<br/>lastUpdatedDateTime:  The date and time that the locale was last updated.<br/>creationDateTime:  The date and time that the locale was created.<br/>failureReasons:  if <code>botLocaleStatus</code> is <code>Failed</code>, Amazon Lex explains why it failed to build the bot.<br/>botLocaleStatus:  The status of the bot. If the status is <code>Failed</code>, the reasons for the failure are listed in the <code>failureReasons</code> field.<br/>slotTypesCount:  The number of slot types defined for the locale.<br/>intentsCount:  The number of intents defined for the locale.<br/>voiceSettings:  The Amazon Polly voice Amazon Lex uses for voice interaction with the user.:<br/>nluIntentConfidenceThreshold:  The confidence threshold where Amazon Lex inserts the <code>AMAZON.FallbackIntent</code> and <code>AMAZON.KendraSearchIntent</code> intents in the list of possible intents for an utterance.<br/>description:  The description of the locale.<br/>localeName:  The name of the locale.<br/>localeId:  The unique identifier of the described locale.<br/>botVersion:  The identifier of the version of the bot associated with the locale.<br/>botId:  The identifier of the bot associated with the locale.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>voiceId</i> The identifier of the Amazon Polly voice to use.<br/>        """
        pass

    def describe_bot_version(self, botVersion: str, botId: str) -> DescribeBotVersionResponse:
        r"""Provides metadata about a version of a bot.

        :param self:
        :param botVersion:  The version of the bot to return metadata for.<br/>botId:  The identifier of the bot containing the version to return metadata for.<br/>
        :return: creationDateTime:  A timestamp of the date and time that the bot version was created.<br/>failureReasons:  If the <code>botStatus</code> is <code>Failed</code>, this contains a list of reasons that the version couldn't be built.<br/>botStatus:  The current status of the bot. When the status is <code>Available</code>, the bot version is ready for use.<br/>idleSessionTTLInSeconds:  The number of seconds that a session with the bot remains active before it is discarded by Amazon Lex.<br/>dataPrivacy:  Data privacy settings for the bot version.:<br/>roleArn:  The Amazon Resource Name (ARN) of an IAM role that has permission to access the bot version.<br/>description:  The description specified for the bot.<br/>botVersion:  The version of the bot to describe.<br/>botName:  The name of the bot that contains the version.<br/>botId:  The identifier of the bot that contains the version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>childDirected</i> For each Amazon Lex bot created with the Amazon Lex Model Building Service, you must specify whether your use of Amazon Lex is related to a website, program, or other application that is directed or targeted, in whole or in part, to children under age 13 and subject to the Children's Online Privacy Protection Act (COPPA) by specifying <code>true</code> or <code>false</code> in the <code>childDirected</code> field. By specifying <code>true</code> in the <code>childDirected</code> field, you confirm that your use of Amazon Lex <b>is</b> related to a website, program, or other application that is directed or targeted, in whole or in part, to children under age 13 and subject to COPPA. By specifying <code>false</code> in the <code>childDirected</code> field, you confirm that your use of Amazon Lex <b>is not</b> related to a website, program, or other application that is directed or targeted, in whole or in part, to children under age 13 and subject to COPPA. You may not specify a default value for the <code>childDirected</code> field that does not accurately reflect whether your use of Amazon Lex is related to a website, program, or other application that is directed or targeted, in whole or in part, to children under age 13 and subject to COPPA. If your use of Amazon Lex relates to a website, program, or other application that is directed in whole or in part, to children under age 13, you must obtain any required verifiable parental consent under COPPA. For information regarding the use of Amazon Lex in connection with websites, programs, or other applications that are directed or targeted, in whole or in part, to children under age 13, see the <a href="https://aws.amazon.com/lex/faqs#data-security">Amazon Lex FAQ</a>.<br/>        """
        pass

    def describe_export(self, exportId: str) -> DescribeExportResponse:
        r"""Gets information about a specific export.

        :param self:
        :param exportId:  The unique identifier of the export to describe.<br/>
        :return: lastUpdatedDateTime:  The last date and time that the export was updated.<br/>creationDateTime:  The date and time that the export was created.<br/>downloadUrl:  A pre-signed S3 URL that points to the bot or bot locale archive. The URL is only available for 5 minutes after calling the <code>DescribeExport</code> operation.<br/>failureReasons:  If the <code>exportStatus</code> is failed, contains one or more reasons why the export could not be completed.<br/>exportStatus:  The status of the export. When the status is <code>Complete</code> the export archive file is available for download.<br/>fileFormat:  The file format used in the files that describe the bot or bot locale.<br/>resourceSpecification:  The bot, bot ID, and optional locale ID of the exported bot or bot locale.:<br/>exportId:  The unique identifier of the described export.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>botLocaleExportSpecification</i> Parameters for exporting a bot locale.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>botLocaleExportSpecification</b>: Parameters for exporting a bot locale.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>botExportSpecification</i> Parameters for exporting a bot.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>botExportSpecification</b>: Parameters for exporting a bot.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>botVersion</i> The version of the bot that was exported. This will be either <code>DRAFT</code> or the version number.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>botId</i> The identifier of the bot assigned by Amazon Lex.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>localeId</i> The identifier of the language and locale to export. The string must match one of the locales in the bot.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>botVersion</i> The version of the bot to export.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>botId</i> The identifier of the bot to create the locale for.<br/>        """
        pass

    def describe_import(self, importId: str) -> DescribeImportResponse:
        r"""Gets information about a specific import.

        :param self:
        :param importId:  The unique identifier of the import to describe.<br/>
        :return: lastUpdatedDateTime:  The date and time that the import was last updated.<br/>creationDateTime:  The date and time that the import was created.<br/>failureReasons:  If the <code>importStatus</code> field is <code>Failed</code>, this provides one or more reasons for the failture.<br/>importStatus:  The status of the import process. When the status is <code>Completed</code> the resource is imported and ready for use.<br/>mergeStrategy:  The strategy used when there was a name conflict between the imported resource and an existing resource. When the merge strategy is <code>FailOnConflict</code> existing resources are not overwritten and the import fails.<br/>importedResourceName:  The name of the imported resource.<br/>importedResourceId:  The unique identifier that Amazon Lex assigned to the resource created by the import.<br/>resourceSpecification:  The specifications of the imported bot or bot locale.:<br/>importId:  The unique identifier of the described import.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>botLocaleImportSpecification</i> Parameters for importing a bot locale.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>botLocaleImportSpecification</b>: Parameters for importing a bot locale.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>botImportSpecification</i> Parameters for importing a bot.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>botImportSpecification</b>: Parameters for importing a bot.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>roleArn</i> The Amazon Resource Name (ARN) of the IAM role used to build and run the bot.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>botName</i> The name that Amazon Lex should use for the bot.<br/>By default, data stored by Amazon Lex is encrypted. The <code>DataPrivacy</code> structure provides settings that determine how Amazon Lex handles special cases of securing the data for your bot. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>dataPrivacy</b>: By default, data stored by Amazon Lex is encrypted. The <code>DataPrivacy</code> structure provides settings that determine how Amazon Lex handles special cases of securing the data for your bot. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>nluIntentConfidenceThreshold</i> Determines the threshold where Amazon Lex will insert the <code>AMAZON.FallbackIntent</code>, <code>AMAZON.KendraSearchIntent</code>, or both when returning alternative intents. <code>AMAZON.FallbackIntent</code> and <code>AMAZON.KendraSearchIntent</code> are only inserted if they are configured for the bot.  For example, suppose a bot is configured with the confidence threshold of 0.80 and the <code>AMAZON.FallbackIntent</code>. Amazon Lex returns three alternative intents with the following confidence scores: IntentA (0.70), IntentB (0.60), IntentC (0.50). The response from the <code>PostText</code> operation would be: <ul> <li>  <code>AMAZON.FallbackIntent</code>  </li> <li>  <code>IntentA</code>  </li> <li>  <code>IntentB</code>  </li> <li>  <code>IntentC</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>localeId</i> The identifier of the language and locale that the bot will be used in. The string must match one of the supported locales. All of the intents, slot types, and slots used in the bot must have the same locale. For more information, see <a href="https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html">Supported languages</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>botVersion</i> The version of the bot to import the locale to. This can only be the <code>DRAFT</code> version of the bot.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>botId</i> The identifier of the bot to import the locale to.<br/>Defines settings for using an Amazon Polly voice to communicate with a user.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>voiceSettings</b>: Defines settings for using an Amazon Polly voice to communicate with a user.        """
        pass

    def describe_intent(self, localeId: str, botVersion: str, botId: str, intentId: str) -> DescribeIntentResponse:
        r"""Returns metadata about an intent.

        :param self:
        :param localeId:  The identifier of the language and locale of the intent to describe. The string must match one of the supported locales. For more information, see <a href="https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html">Supported languages</a>.<br/>botVersion:  The version of the bot associated with the intent.<br/>botId:  The identifier of the bot associated with the intent.<br/>intentId:  The identifier of the intent to describe.<br/>
        :return: lastUpdatedDateTime:  A timestamp of the date and time that the intent was last updated.<br/>creationDateTime:  A timestamp of the date and time that the intent was created.<br/>localeId:  The language and locale specified for the intent.<br/>botVersion:  The version of the bot associated with the intent.<br/>botId:  The identifier of the bot associated with the intent.<br/>kendraConfiguration:  Configuration information required to use the <code>AMAZON.KendraSearchIntent</code> intent.:<br/>outputContexts:  A list of contexts that are activated when the intent is fulfilled.<br/>inputContexts:  A list of contexts that must be active for the intent to be considered for sending to the user.<br/>intentClosingSetting:  The response that Amazon Lex sends to when the intent is closed.:<br/>intentConfirmationSetting:  Prompts that Amazon Lex sends to the user to confirm completion of an intent.:<br/>slotPriorities:  The list that determines the priority that slots should be elicited from the user.<br/>fulfillmentCodeHook:  The Lambda function called when the intent is complete and ready for fulfillment.:<br/>dialogCodeHook:  The Lambda function called during each turn of a conversation with the intent.:<br/>sampleUtterances:  User utterances that trigger this intent.<br/>parentIntentSignature:  The identifier of the built-in intent that this intent is derived from, if any.<br/>description:  The description of the intent.<br/>intentName:  The name specified for the intent.<br/>intentId:  The unique identifier assigned to the intent when it was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>enabled</i> Enables the dialog code hook so that it processes user requests.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>enabled</i> Indicates whether a Lambda function should be invoked to fulfill a specific intent.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>declinationResponse</i> When the user answers "no" to the question defined in <code>promptSpecification</code>, Amazon Lex responds with this response to acknowledge that the intent was canceled. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>declinationResponse</b>: When the user answers "no" to the question defined in <code>promptSpecification</code>, Amazon Lex responds with this response to acknowledge that the intent was canceled. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>promptSpecification</i> Prompts the user to confirm the intent. This question should have a yes or no answer. Amazon Lex uses this prompt to ensure that the user acknowledges that the intent is ready for fulfillment. For example, with the <code>OrderPizza</code> intent, you might want to confirm that the order is correct before placing it. For other intents, such as intents that simply respond to user questions, you might not need to ask the user for confirmation before providing the information. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>promptSpecification</b>: Prompts the user to confirm the intent. This question should have a yes or no answer. Amazon Lex uses this prompt to ensure that the user acknowledges that the intent is ready for fulfillment. For example, with the <code>OrderPizza</code> intent, you might want to confirm that the order is correct before placing it. For other intents, such as intents that simply respond to user questions, you might not need to ask the user for confirmation before providing the information. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>allowInterrupt</i> Indicates whether the user can interrupt a speech prompt from the bot.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>maxRetries</i> The maximum number of times the bot tries to elicit a resonse from the user using this prompt.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>messageGroups</i> A collection of messages that Amazon Lex can send to the user. Amazon Lex chooses the actual message to send at runtime.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>allowInterrupt</i> Indicates whether the user can interrupt a speech response from Amazon Lex.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>messageGroups</i> A collection of responses that Amazon Lex can send to the user. Amazon Lex chooses the actual response to send at runtime.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>closingResponse</i> The response that Amazon Lex sends to the user when the intent is complete.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>closingResponse</b>: The response that Amazon Lex sends to the user when the intent is complete.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>allowInterrupt</i> Indicates whether the user can interrupt a speech response from Amazon Lex.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>messageGroups</i> A collection of responses that Amazon Lex can send to the user. Amazon Lex chooses the actual response to send at runtime.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>queryFilterString</i> A query filter that Amazon Lex sends to Amazon Kendra to filter the response from a query. The filter is in the format defined by Amazon Kendra. For more information, see <a href="https://docs.aws.amazon.com/kendra/latest/dg/filtering.html">Filtering queries</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>queryFilterStringEnabled</i> Determines whether the AMAZON.KendraSearchIntent intent uses a custom query string to query the Amazon Kendra index.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>kendraIndex</i> The Amazon Resource Name (ARN) of the Amazon Kendra index that you want the AMAZON.KendraSearchIntent intent to search. The index must be in the same account and Region as the Amazon Lex bot.<br/>        """
        pass

    def describe_resource_policy(self, resourceArn: str) -> DescribeResourcePolicyResponse:
        r"""Gets the resource policy and policy revision for a bot or bot alias.

        :param self:
        :param resourceArn:  The Amazon Resource Name (ARN) of the bot or bot alias that the resource policy is attached to.<br/>
        :return: revisionId:  The current revision of the resource policy. Use the revision ID to make sure that you are updating the most current version of a resource policy when you add a policy statement to a resource, delete a resource, or update a resource.<br/>policy:  The JSON structure that contains the resource policy. For more information about the contents of a JSON policy document, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html"> IAM JSON policy reference </a>.<br/>resourceArn:  The Amazon Resource Name (ARN) of the bot or bot alias that the resource policy is attached to.<br/>        """
        pass

    def describe_slot(self, intentId: str, localeId: str, botVersion: str, botId: str, slotId: str) -> DescribeSlotResponse:
        r"""Gets metadata information about a slot.

        :param self:
        :param intentId:  The identifier of the intent that contains the slot.<br/>localeId:  The identifier of the language and locale of the slot to describe. The string must match one of the supported locales. For more information, see <a href="https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html">Supported languages</a>.<br/>botVersion:  The version of the bot associated with the slot.<br/>botId:  The identifier of the bot associated with the slot.<br/>slotId:  The unique identifier for the slot.<br/>
        :return: multipleValuesSetting:  Indicates whether the slot accepts multiple values in a single utterance. If the <code>multipleValuesSetting</code> is not set, the default value is <code>false</code>.:<br/>lastUpdatedDateTime:  A timestamp of the date and time that the slot was last updated.<br/>creationDateTime:  A timestamp of the date and time that the slot was created.<br/>intentId:  The identifier of the intent associated with the slot.<br/>localeId:  The language and locale specified for the slot.<br/>botVersion:  The version of the bot associated with the slot.<br/>botId:  The identifier of the bot associated with the slot.<br/>obfuscationSetting:  Whether slot values are shown in Amazon CloudWatch logs. If the value is <code>None</code>, the actual value of the slot is shown in logs.:<br/>valueElicitationSetting:  Prompts that Amazon Lex uses to elicit a value for the slot.:<br/>slotTypeId:  The identifier of the slot type that determines the values entered into the slot.<br/>description:  The description specified for the slot.<br/>slotName:  The name specified for the slot.<br/>slotId:  The unique identifier generated for the slot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>waitAndContinueSpecification</i> Specifies the prompts that Amazon Lex uses while a bot is waiting for customer input. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>waitAndContinueSpecification</b>: Specifies the prompts that Amazon Lex uses while a bot is waiting for customer input. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>sampleUtterances</i> If you know a specific pattern that users might respond to an Amazon Lex request for a slot value, you can provide those utterances to improve accuracy. This is optional. In most cases, Amazon Lex is capable of understanding user utterances.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>promptSpecification</i> The prompt that Amazon Lex uses to elicit the slot value from the user.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>promptSpecification</b>: The prompt that Amazon Lex uses to elicit the slot value from the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>slotConstraint</i> Specifies whether the slot is required or optional.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>defaultValueSpecification</i> A list of default values for a slot. Default values are used when Amazon Lex hasn't determined a value for a slot. You can specify default values from context variables, sesion attributes, and defined values.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>defaultValueSpecification</b>: A list of default values for a slot. Default values are used when Amazon Lex hasn't determined a value for a slot. You can specify default values from context variables, sesion attributes, and defined values.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>defaultValueList</i> A list of default values. Amazon Lex chooses the default value to use in the order that they are presented in the list.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>allowInterrupt</i> Indicates whether the user can interrupt a speech prompt from the bot.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>maxRetries</i> The maximum number of times the bot tries to elicit a resonse from the user using this prompt.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>messageGroups</i> A collection of messages that Amazon Lex can send to the user. Amazon Lex chooses the actual message to send at runtime.<br/>The response that Amazon Lex sends to indicate that the bot is waiting for the conversation to continue.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>waitingResponse</b>: The response that Amazon Lex sends to indicate that the bot is waiting for the conversation to continue.&nbsp;&nbsp;&nbsp;&nbsp; <i>obfuscationSettingType</i> Value that determines whether Amazon Lex obscures slot values in conversation logs. The default is to obscure the values.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>allowMultipleValues</i> Indicates whether a slot can return multiple values. When <code>true</code>, the slot may return more than one value in a response. When <code>false</code>, the slot returns only a single value. Multi-value slots are only available in the en-US locale. If you set this value to <code>true</code> in any other locale, Amazon Lex throws a <code>ValidationException</code>. If the <code>allowMutlipleValues</code> is not set, the default value is <code>false</code>.<br/>        """
        pass

    def describe_slot_type(self, localeId: str, botVersion: str, botId: str, slotTypeId: str) -> DescribeSlotTypeResponse:
        r"""Gets metadata information about a slot type.

        :param self:
        :param localeId:  The identifier of the language and locale of the slot type to describe. The string must match one of the supported locales. For more information, see <a href="https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html">Supported languages</a>.<br/>botVersion:  The version of the bot associated with the slot type.<br/>botId:  The identifier of the bot associated with the slot type.<br/>slotTypeId:  The identifier of the slot type.<br/>
        :return: lastUpdatedDateTime:  A timestamp of the date and time that the slot type was last updated.<br/>creationDateTime:  A timestamp of the date and time that the slot type was created.<br/>localeId:  The language and locale specified for the slot type.<br/>botVersion:  The version of the bot associated with the slot type.<br/>botId:  The identifier of the bot associated with the slot type.<br/>parentSlotTypeSignature:  The built in slot type used as a parent to this slot type.<br/>valueSelectionSetting:  The strategy that Amazon Lex uses to choose a value from a list of possible values.:<br/>slotTypeValues:  The values that the slot type can take. Includes any synonyms for the slot type values.<br/>description:  The description specified for the slot type.<br/>slotTypeName:  The name specified for the slot type.<br/>slotTypeId:  The unique identifier for the slot type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>regexFilter</i> A regular expression used to validate the value of a slot.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>regexFilter</b>: A regular expression used to validate the value of a slot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resolutionStrategy</i> Determines the slot resolution strategy that Amazon Lex uses to return slot type values. The field can be set to one of the following values: <ul> <li> OriginalValue - Returns the value entered by the user, if the user value is similar to the slot value. </li> <li> TopResolution - If there is a resolution list for the slot, return the first value in the resolution list as the slot type value. If there is no resolution list, null is returned. </li> </ul> If you don't specify the valueSelectionStrategy, the default is OriginalValue. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>pattern</i> A regular expression used to validate the value of a slot.  Use a standard regular expression. Amazon Lex supports the following characters in the regular expression:  <ul> <li> A-Z, a-z </li> <li> 0-9 </li> <li> Unicode characters ("\ u&lt;Unicode&gt;") </li> </ul>  Represent Unicode characters with four digits, for example "\u0041" or "\u005A".   The following regular expression operators are not supported:  <ul> <li> Infinite repeaters: *, +, or {x,} with no upper bound. </li> <li> Wild card (.) </li> </ul><br/>        """
        pass

    def list_bot_aliases(self, botId: str, maxResults: int=None, nextToken: str=None) -> ListBotAliasesResponse:
        r"""Gets a list of aliases for the specified bot.

        :param self:
        :param nextToken:  If the response from the <code>ListBotAliases</code> operation contains more results than specified in the <code>maxResults</code> parameter, a token is returned in the response. Use that token in the <code>nextToken</code> parameter to return the next page of results.<br/>maxResults:  The maximum number of aliases to return in each page of results. If there are fewer results than the max page size, only the actual number of results are returned.<br/>botId:  The identifier of the bot to list aliases for.<br/>
        :return: botId:  The identifier of the bot associated with the aliases.<br/>nextToken:  A token that indicates whether there are more results to return in a response to the <code>ListBotAliases</code> operation. If the <code>nextToken</code> field is present, you send the contents as the <code>nextToken</code> parameter of a <code>ListBotAliases</code> operation request to get the next page of results.<br/>botAliasSummaries:  Summary information for the bot aliases that meet the filter criteria specified in the request. The length of the list is specified in the <code>maxResults</code> parameter of the request. If there are more aliases available, the <code>nextToken</code> field contains a token to get the next page of results.<br/>        """
        pass

    def list_bot_locales(self, botVersion: str, botId: str, sortBy: BotLocaleSortBy=None, filters: List[BotLocaleFilter]=None, maxResults: int=None, nextToken: str=None) -> ListBotLocalesResponse:
        r"""Gets a list of locales for the specified bot.

        :param self:
        :param nextToken:  If the response from the <code>ListBotLocales</code> operation contains more results than specified in the <code>maxResults</code> parameter, a token is returned in the response. Use that token as the <code>nextToken</code> parameter to return the next page of results. <br/>maxResults:  The maximum number of aliases to return in each page of results. If there are fewer results than the max page size, only the actual number of results are returned.<br/>filters:  Provides the specification for a filter used to limit the response to only those locales that match the filter specification. You can only specify one filter and one value to filter on.<br/>sortBy:  Specifies sorting parameters for the list of locales. You can sort by locale name in ascending or descending order.:<br/>botVersion:  The version of the bot to list locales for.<br/>botId:  The identifier of the bot to list locales for.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>order</i> Specifies whether to sort the bot locales in ascending or descending order.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>attribute</i> The bot locale attribute to sort by.<br/>
        :return: botLocaleSummaries:  Summary information for the locales that meet the filter criteria specified in the request. The length of the list is specified in the <code>maxResults</code> parameter of the request. If there are more locales available, the <code>nextToken</code> field contains a token to get the next page of results.<br/>nextToken:  A token that indicates whether there are more results to return in a response to the <code>ListBotLocales</code> operation. If the <code>nextToken</code> field is present, you send the contents as the <code>nextToken</code> parameter of a <code>ListBotLocales</code> operation request to get the next page of results.<br/>botVersion:  The version of the bot.<br/>botId:  The identifier of the bot to list locales for.<br/>        """
        pass

    def list_bot_versions(self, botId: str, sortBy: BotVersionSortBy=None, maxResults: int=None, nextToken: str=None) -> ListBotVersionsResponse:
        r"""Gets information about all of the versions of a bot. The <code>ListBotVersions</code> operation returns a summary of each version of a bot. For example, if a bot has three numbered versions, the <code>ListBotVersions</code> operation returns for summaries, one for each numbered version and one for the <code>DRAFT</code> version. The <code>ListBotVersions</code> operation always returns at least one version, the <code>DRAFT</code> version.

        :param self:
        :param nextToken:  If the response to the <code>ListBotVersion</code> operation contains more results than specified in the <code>maxResults</code> parameter, a token is returned in the response. Use that token in the <code>nextToken</code> parameter to return the next page of results.<br/>maxResults:  The maximum number of versions to return in each page of results. If there are fewer results than the max page size, only the actual number of results are returned.<br/>sortBy:  Specifies sorting parameters for the list of versions. You can specify that the list be sorted by version name in either ascending or descending order.:<br/>botId:  The identifier of the bot to list versions for.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>order</i> The order to sort the list. You can specify ascending or descending order.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>attribute</i> The attribute to use to sort the list of versions.<br/>
        :return: nextToken:  A token that indicates whether there are more results to return in a response to the <code>ListBotVersions</code> operation. If the <code>nextToken</code> field is present, you send the contents as the <code>nextToken</code> parameter of a <code>ListBotAliases</code> operation request to get the next page of results.<br/>botVersionSummaries:  Summary information for the bot versions that meet the filter criteria specified in the request. The length of the list is specified in the <code>maxResults</code> parameter of the request. If there are more versions available, the <code>nextToken</code> field contains a token to get the next page of results.<br/>botId:  The identifier of the bot to list versions for.<br/>        """
        pass

    def list_bots(self, sortBy: BotSortBy=None, filters: List[BotFilter]=None, maxResults: int=None, nextToken: str=None) -> ListBotsResponse:
        r"""Gets a list of available bots.

        :param self:
        :param nextToken:  If the response from the <code>ListBots</code> operation contains more results than specified in the <code>maxResults</code> parameter, a token is returned in the response. Use that token in the <code>nextToken</code> parameter to return the next page of results.<br/>maxResults:  The maximum number of bots to return in each page of results. If there are fewer results than the maximum page size, only the actual number of results are returned.<br/>filters:  Provides the specification of a filter used to limit the bots in the response to only those that match the filter specification. You can only specify one filter and one string to filter on.<br/>sortBy:  Specifies sorting parameters for the list of bots. You can specify that the list be sorted by bot name in ascending or descending order.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>order</i> The order to sort the list. You can choose ascending or descending.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>attribute</i> The attribute to use to sort the list of bots.<br/>
        :return: nextToken:  A token that indicates whether there are more results to return in a response to the <code>ListBots</code> operation. If the <code>nextToken</code> field is present, you send the contents as the <code>nextToken</code> parameter of a <code>ListBots</code> operation request to get the next page of results.<br/>botSummaries:  Summary information for the bots that meet the filter criteria specified in the request. The length of the list is specified in the <code>maxResults</code> parameter of the request. If there are more bots available, the <code>nextToken</code> field contains a token to the next page of results.<br/>        """
        pass

    def list_built_in_intents(self, localeId: str, sortBy: BuiltInIntentSortBy=None, maxResults: int=None, nextToken: str=None) -> ListBuiltInIntentsResponse:
        r"""Gets a list of built-in intents provided by Amazon Lex that you can use in your bot.  To use a built-in intent as a the base for your own intent, include the built-in intent signature in the <code>parentIntentSignature</code> parameter when you call the <code>CreateIntent</code> operation. For more information, see <a>CreateIntent</a>.

        :param self:
        :param nextToken:  If the response from the <code>ListBuiltInIntents</code> operation contains more results than specified in the <code>maxResults</code> parameter, a token is returned in the response. Use that token in the <code>nextToken</code> parameter to return the next page of results.<br/>maxResults:  The maximum number of built-in intents to return in each page of results. If there are fewer results than the max page size, only the actual number of results are returned.<br/>sortBy:  Specifies sorting parameters for the list of built-in intents. You can specify that the list be sorted by the built-in intent signature in either ascending or descending order.:<br/>localeId:  The identifier of the language and locale of the intents to list. The string must match one of the supported locales. For more information, see <a href="https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html">Supported languages</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>order</i> The order to sort the list. You can specify ascending or descending order.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>attribute</i> The attribute to use to sort the list of built-in intents.<br/>
        :return: localeId:  The language and locale of the intents in the list.<br/>nextToken:  A token that indicates whether there are more results to return in a response to the <code>ListBuiltInIntents</code> operation. If the <code>nextToken</code> field is present, you send the contents as the <code>nextToken</code> parameter of a <code>ListBotAliases</code> operation request to get the next page of results.<br/>builtInIntentSummaries:  Summary information for the built-in intents that meet the filter criteria specified in the request. The length of the list is specified in the <code>maxResults</code> parameter of the request. If there are more intents available, the <code>nextToken</code> field contains a token to get the next page of results.<br/>        """
        pass

    def list_built_in_slot_types(self, localeId: str, sortBy: BuiltInSlotTypeSortBy=None, maxResults: int=None, nextToken: str=None) -> ListBuiltInSlotTypesResponse:
        r"""Gets a list of built-in slot types that meet the specified criteria.

        :param self:
        :param nextToken:  If the response from the <code>ListBuiltInSlotTypes</code> operation contains more results than specified in the <code>maxResults</code> parameter, a token is returned in the response. Use that token in the <code>nextToken</code> parameter to return the next page of results.<br/>maxResults:  The maximum number of built-in slot types to return in each page of results. If there are fewer results than the max page size, only the actual number of results are returned.<br/>sortBy:  Determines the sort order for the response from the <code>ListBuiltInSlotTypes</code> operation. You can choose to sort by the slot type signature in either ascending or descending order.:<br/>localeId:  The identifier of the language and locale of the slot types to list. The string must match one of the supported locales. For more information, see <a href="https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html">Supported languages</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>order</i> The order to sort the list. You can choose ascending or descending.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>attribute</i> The attribute to use to sort the list of built-in intents.<br/>
        :return: localeId:  The language and locale of the slot types in the list.<br/>nextToken:  A token that indicates whether there are more results to return in a response to the <code>ListBuiltInSlotTypes</code> operation. If the <code>nextToken</code> field is present, you send the contents as the <code>nextToken</code> parameter of a <code>LIstBuiltInSlotTypes</code> operation request to get the next page of results.<br/>builtInSlotTypeSummaries:  Summary information for the built-in slot types that meet the filter criteria specified in the request. The length of the list is specified in the <code>maxResults</code> parameter of the request. If there are more slot types available, the <code>nextToken</code> field contains a token to get the next page of results.<br/>        """
        pass

    def list_exports(self, botId: str=None, botVersion: str=None, sortBy: ExportSortBy=None, filters: List[ExportFilter]=None, maxResults: int=None, nextToken: str=None) -> ListExportsResponse:
        r"""Lists the exports for a bot or bot locale. Exports are kept in the list for 7 days.

        :param self:
        :param nextToken:  If the response from the <code>ListExports</code> operation contans more results that specified in the <code>maxResults</code> parameter, a token is returned in the response. Use that token in the <code>nextToken</code> parameter to return the next page of results.<br/>maxResults:  The maximum number of exports to return in each page of results. If there are fewer results than the max page size, only the actual number of results are returned.<br/>filters:  Provides the specification of a filter used to limit the exports in the response to only those that match the filter specification. You can only specify one filter and one string to filter on.<br/>sortBy:  Determines the field that the list of exports is sorted by. You can sort by the <code>LastUpdatedDateTime</code> field in ascending or descending order.:<br/>botVersion:  The version of the bot to list exports for. <br/>botId:  The unique identifier that Amazon Lex assigned to the bot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>order</i> The order to sort the list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>attribute</i> The export field to use for sorting.<br/>
        :return: nextToken:  A token that indicates whether there are more results to return in a response to the <code>ListExports</code> operation. If the <code>nextToken</code> field is present, you send the contents as the <code>nextToken</code> parameter of a <code>ListExports</code> operation request to get the next page of results.<br/>exportSummaries:  Summary information for the exports that meet the filter criteria specified in the request. The length of the list is specified in the <code>maxResults</code> parameter. If there are more exports available, the <code>nextToken</code> field contains a token to get the next page of results.<br/>botVersion:  The version of the bot that was exported.<br/>botId:  The unique identifier assigned to the bot by Amazon Lex.<br/>        """
        pass

    def list_imports(self, botId: str=None, botVersion: str=None, sortBy: ImportSortBy=None, filters: List[ImportFilter]=None, maxResults: int=None, nextToken: str=None) -> ListImportsResponse:
        r"""Lists the imports for a bot or bot locale. Imports are kept in the list for 7 days.

        :param self:
        :param nextToken:  If the response from the <code>ListImports</code> operation contains more results than specified in the <code>maxResults</code> parameter, a token is returned in the response. Use that token in the <code>nextToken</code> parameter to return the next page of results.<br/>maxResults:  The maximum number of imports to return in each page of results. If there are fewer results than the max page size, only the actual number of results are returned.<br/>filters:  Provides the specification of a filter used to limit the bots in the response to only those that match the filter specification. You can only specify one filter and one string to filter on.<br/>sortBy:  Determines the field that the list of imports is sorted by. You can sort by the <code>LastUpdatedDateTime</code> field in ascending or descending order.:<br/>botVersion:  The version of the bot to list imports for.<br/>botId:  The unique identifier that Amazon Lex assigned to the bot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>order</i> The order to sort the list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>attribute</i> The export field to use for sorting.<br/>
        :return: nextToken:  A token that indicates whether there are more results to return in a response to the <code>ListImports</code> operation. If the <code>nextToken</code> field is present, you send the contents as the <code>nextToken</code> parameter of a <code>ListImports</code> operation request to get the next page of results.<br/>importSummaries:  Summary information for the imports that meet the filter criteria specified in the request. The length of the list is specified in the <code>maxResults</code> parameter. If there are more imports available, the <code>nextToken</code> field contains a token to get the next page of results.<br/>botVersion:  The version of the bot that was imported. It will always be <code>DRAFT</code>.<br/>botId:  The unique identifier assigned by Amazon Lex to the bot.<br/>        """
        pass

    def list_intents(self, localeId: str, botVersion: str, botId: str, sortBy: IntentSortBy=None, filters: List[IntentFilter]=None, maxResults: int=None, nextToken: str=None) -> ListIntentsResponse:
        r"""Get a list of intents that meet the specified criteria.

        :param self:
        :param nextToken:  If the response from the <code>ListIntents</code> operation contains more results than specified in the <code>maxResults</code> parameter, a token is returned in the response. Use that token in the <code>nextToken</code> parameter to return the next page of results.<br/>maxResults:  The maximum number of intents to return in each page of results. If there are fewer results than the max page size, only the actual number of results are returned.<br/>filters:  Provides the specification of a filter used to limit the intents in the response to only those that match the filter specification. You can only specify one filter and only one string to filter on.<br/>sortBy:  Determines the sort order for the response from the <code>ListIntents</code> operation. You can choose to sort by the intent name or last updated date in either ascending or descending order.:<br/>localeId:  The identifier of the language and locale of the intents to list. The string must match one of the supported locales. For more information, see <a href="https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html">Supported languages</a>.<br/>botVersion:  The version of the bot that contains the intent.<br/>botId:  The unique identifier of the bot that contains the intent.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>order</i> The order to sort the list. You can choose ascending or descending.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>attribute</i> The attribute to use to sort the list of intents.<br/>
        :return: nextToken:  A token that indicates whether there are more results to return in a response to the <code>ListIntents</code> operation. If the <code>nextToken</code> field is present, you send the contents as the <code>nextToken</code> parameter of a <code>ListIntents</code> operation request to get the next page of results.<br/>intentSummaries:  Summary information for the intents that meet the filter criteria specified in the request. The length of the list is specified in the <code>maxResults</code> parameter of the request. If there are more intents available, the <code>nextToken</code> field contains a token to get the next page of results.<br/>localeId:  The language and locale of the intents in the list.<br/>botVersion:  The version of the bot that contains the intent.<br/>botId:  The identifier of the bot that contains the intent.<br/>        """
        pass

    def list_slot_types(self, localeId: str, botVersion: str, botId: str, sortBy: SlotTypeSortBy=None, filters: List[SlotTypeFilter]=None, maxResults: int=None, nextToken: str=None) -> ListSlotTypesResponse:
        r"""Gets a list of slot types that match the specified criteria.

        :param self:
        :param nextToken:  If the response from the <code>ListSlotTypes</code> operation contains more results than specified in the <code>maxResults</code> parameter, a token is returned in the response. Use that token in the <code>nextToken</code> parameter to return the next page of results.<br/>maxResults:  The maximum number of slot types to return in each page of results. If there are fewer results than the max page size, only the actual number of results are returned.<br/>filters:  Provides the specification of a filter used to limit the slot types in the response to only those that match the filter specification. You can only specify one filter and only one string to filter on.<br/>sortBy:  Determines the sort order for the response from the <code>ListSlotTypes</code> operation. You can choose to sort by the slot type name or last updated date in either ascending or descending order.:<br/>localeId:  The identifier of the language and locale of the slot types to list. The string must match one of the supported locales. For more information, see <a href="https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html">Supported languages</a>.<br/>botVersion:  The version of the bot that contains the slot type.<br/>botId:  The unique identifier of the bot that contains the slot types.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>order</i> The order to sort the list. You can say ascending or descending.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>attribute</i> The attribute to use to sort the list of slot types.<br/>
        :return: nextToken:  A token that indicates whether there are more results to return in a response to the <code>ListSlotTypes</code> operation. If the <code>nextToken</code> field is present, you send the contents as the <code>nextToken</code> parameter of a <code>ListSlotTypes</code> operation request to get the next page of results.<br/>slotTypeSummaries:  Summary information for the slot types that meet the filter criteria specified in the request. The length of the list is specified in the <code>maxResults</code> parameter of the request. If there are more slot types available, the <code>nextToken</code> field contains a token to get the next page of results.<br/>localeId:  The language and local of the slot types in the list.<br/>botVersion:  The version of the bot that contains the slot types.<br/>botId:  The identifier of the bot that contains the slot types.<br/>        """
        pass

    def list_slots(self, intentId: str, localeId: str, botVersion: str, botId: str, sortBy: SlotSortBy=None, filters: List[SlotFilter]=None, maxResults: int=None, nextToken: str=None) -> ListSlotsResponse:
        r"""Gets a list of slots that match the specified criteria.

        :param self:
        :param nextToken:  If the response from the <code>ListSlots</code> operation contains more results than specified in the <code>maxResults</code> parameter, a token is returned in the response. Use that token in the <code>nextToken</code> parameter to return the next page of results.<br/>maxResults:  The maximum number of slots to return in each page of results. If there are fewer results than the max page size, only the actual number of results are returned.<br/>filters:  Provides the specification of a filter used to limit the slots in the response to only those that match the filter specification. You can only specify one filter and only one string to filter on.<br/>sortBy:  Determines the sort order for the response from the <code>ListSlots</code> operation. You can choose to sort by the slot name or last updated date in either ascending or descending order.:<br/>intentId:  The unique identifier of the intent that contains the slot.<br/>localeId:  The identifier of the language and locale of the slots to list. The string must match one of the supported locales. For more information, see <a href="https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html">Supported languages</a>.<br/>botVersion:  The version of the bot that contains the slot.<br/>botId:  The identifier of the bot that contains the slot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>order</i> The order to sort the list. You can choose ascending or descending.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>attribute</i> The attribute to use to sort the list.<br/>
        :return: nextToken:  A token that indicates whether there are more results to return in a response to the <code>ListSlots</code> operation. If the <code>nextToken</code> field is present, you send the contents as the <code>nextToken</code> parameter of a <code>ListSlots</code> operation request to get the next page of results.<br/>slotSummaries:  Summary information for the slots that meet the filter criteria specified in the request. The length of the list is specified in the <code>maxResults</code> parameter of the request. If there are more slots available, the <code>nextToken</code> field contains a token to get the next page of results.<br/>intentId:  The identifier of the intent that contains the slots.<br/>localeId:  The language and locale of the slots in the list.<br/>botVersion:  The version of the bot that contains the slots.<br/>botId:  The identifier of the bot that contains the slots.<br/>        """
        pass

    def list_tags_for_resource(self, resourceARN: str) -> ListTagsForResourceResponse:
        r"""Gets a list of tags associated with a resource. Only bots, bot aliases, and bot channels can have tags associated with them.

        :param self:
        :param resourceARN:  The Amazon Resource Name (ARN) of the resource to get a list of tags for.<br/>
        :return: tags:  The tags associated with a resource.<br/>        """
        pass

    def start_import(self, mergeStrategy: str, resourceSpecification: ImportResourceSpecification, importId: str, filePassword: str=None) -> StartImportResponse:
        r"""Starts importing a bot or bot locale from a zip archive that you uploaded to an S3 bucket.

        :param self:
        :param filePassword:  The password used to encrypt the zip archive that contains the bot or bot locale definition. You should always encrypt the zip archive to protect it during transit between your site and Amazon Lex.<br/>mergeStrategy:  The strategy to use when there is a name conflict between the imported resource and an existing resource. When the merge strategy is <code>FailOnConflict</code> existing resources are not overwritten and the import fails.<br/>resourceSpecification:  Parameters for creating the bot or bot locale.:<br/>importId:  The unique identifier for the import. It is included in the response from the operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>botLocaleImportSpecification</i> Parameters for importing a bot locale.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>botLocaleImportSpecification</b>: Parameters for importing a bot locale.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>botImportSpecification</i> Parameters for importing a bot.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>botImportSpecification</b>: Parameters for importing a bot.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>roleArn</i> The Amazon Resource Name (ARN) of the IAM role used to build and run the bot.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>botName</i> The name that Amazon Lex should use for the bot.<br/>By default, data stored by Amazon Lex is encrypted. The <code>DataPrivacy</code> structure provides settings that determine how Amazon Lex handles special cases of securing the data for your bot. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>dataPrivacy</b>: By default, data stored by Amazon Lex is encrypted. The <code>DataPrivacy</code> structure provides settings that determine how Amazon Lex handles special cases of securing the data for your bot. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>nluIntentConfidenceThreshold</i> Determines the threshold where Amazon Lex will insert the <code>AMAZON.FallbackIntent</code>, <code>AMAZON.KendraSearchIntent</code>, or both when returning alternative intents. <code>AMAZON.FallbackIntent</code> and <code>AMAZON.KendraSearchIntent</code> are only inserted if they are configured for the bot.  For example, suppose a bot is configured with the confidence threshold of 0.80 and the <code>AMAZON.FallbackIntent</code>. Amazon Lex returns three alternative intents with the following confidence scores: IntentA (0.70), IntentB (0.60), IntentC (0.50). The response from the <code>PostText</code> operation would be: <ul> <li>  <code>AMAZON.FallbackIntent</code>  </li> <li>  <code>IntentA</code>  </li> <li>  <code>IntentB</code>  </li> <li>  <code>IntentC</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>localeId</i> The identifier of the language and locale that the bot will be used in. The string must match one of the supported locales. All of the intents, slot types, and slots used in the bot must have the same locale. For more information, see <a href="https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html">Supported languages</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>botVersion</i> The version of the bot to import the locale to. This can only be the <code>DRAFT</code> version of the bot.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>botId</i> The identifier of the bot to import the locale to.<br/>Defines settings for using an Amazon Polly voice to communicate with a user.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>voiceSettings</b>: Defines settings for using an Amazon Polly voice to communicate with a user.
        :return: creationDateTime:  The date and time that the import request was created.<br/>importStatus:  The current status of the import. When the status is <code>Complete</code> the bot or bot alias is ready to use.<br/>mergeStrategy:  The strategy used when there was a name conflict between the imported resource and an existing resource. When the merge strategy is <code>FailOnConflict</code> existing resources are not overwritten and the import fails.<br/>resourceSpecification:  The parameters used when importing the bot or bot locale.:<br/>importId:  A unique identifier for the import.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>botLocaleImportSpecification</i> Parameters for importing a bot locale.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>botLocaleImportSpecification</b>: Parameters for importing a bot locale.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>botImportSpecification</i> Parameters for importing a bot.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>botImportSpecification</b>: Parameters for importing a bot.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>roleArn</i> The Amazon Resource Name (ARN) of the IAM role used to build and run the bot.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>botName</i> The name that Amazon Lex should use for the bot.<br/>By default, data stored by Amazon Lex is encrypted. The <code>DataPrivacy</code> structure provides settings that determine how Amazon Lex handles special cases of securing the data for your bot. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>dataPrivacy</b>: By default, data stored by Amazon Lex is encrypted. The <code>DataPrivacy</code> structure provides settings that determine how Amazon Lex handles special cases of securing the data for your bot. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>nluIntentConfidenceThreshold</i> Determines the threshold where Amazon Lex will insert the <code>AMAZON.FallbackIntent</code>, <code>AMAZON.KendraSearchIntent</code>, or both when returning alternative intents. <code>AMAZON.FallbackIntent</code> and <code>AMAZON.KendraSearchIntent</code> are only inserted if they are configured for the bot.  For example, suppose a bot is configured with the confidence threshold of 0.80 and the <code>AMAZON.FallbackIntent</code>. Amazon Lex returns three alternative intents with the following confidence scores: IntentA (0.70), IntentB (0.60), IntentC (0.50). The response from the <code>PostText</code> operation would be: <ul> <li>  <code>AMAZON.FallbackIntent</code>  </li> <li>  <code>IntentA</code>  </li> <li>  <code>IntentB</code>  </li> <li>  <code>IntentC</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>localeId</i> The identifier of the language and locale that the bot will be used in. The string must match one of the supported locales. All of the intents, slot types, and slots used in the bot must have the same locale. For more information, see <a href="https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html">Supported languages</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>botVersion</i> The version of the bot to import the locale to. This can only be the <code>DRAFT</code> version of the bot.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>botId</i> The identifier of the bot to import the locale to.<br/>Defines settings for using an Amazon Polly voice to communicate with a user.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>voiceSettings</b>: Defines settings for using an Amazon Polly voice to communicate with a user.        """
        pass

    def tag_resource(self, tags: TagMap, resourceARN: str) -> TagResourceResponse:
        r"""Adds the specified tags to the specified resource. If a tag key already exists, the existing value is replaced with the new value.

        :param self:
        :param tags:  A list of tag keys to add to the resource. If a tag key already exists, the existing value is replaced with the new value.<br/>resourceARN:  The Amazon Resource Name (ARN) of the bot, bot alias, or bot channel to tag.<br/>
        :return:         """
        pass

    def untag_resource(self, tagKeys: List[TagKey], resourceARN: str) -> UntagResourceResponse:
        r"""Removes tags from a bot, bot alias, or bot channel.

        :param self:
        :param tagKeys:  A list of tag keys to remove from the resource. If a tag key does not exist on the resource, it is ignored.<br/>resourceARN:  The Amazon Resource Name (ARN) of the resource to remove the tags from.<br/>
        :return:         """
        pass

    def update_bot(self, idleSessionTTLInSeconds: int, dataPrivacy: DataPrivacy, roleArn: str, botName: str, botId: str, description: str=None) -> UpdateBotResponse:
        r"""Updates the configuration of an existing bot. 

        :param self:
        :param idleSessionTTLInSeconds:  The time, in seconds, that Amazon Lex should keep information about a user's conversation with the bot. A user interaction remains active for the amount of time specified. If no conversation occurs during this time, the session expires and Amazon Lex deletes any data provided before the timeout. You can specify between 60 (1 minute) and 86,400 (24 hours) seconds.<br/>dataPrivacy:  Provides information on additional privacy protections Amazon Lex should use with the bot's data.:<br/>roleArn:  The Amazon Resource Name (ARN) of an IAM role that has permissions to access the bot.<br/>description:  A description of the bot.<br/>botName:  The new name of the bot. The name must be unique in the account that creates the bot.<br/>botId:  The unique identifier of the bot to update. This identifier is returned by the <a>CreateBot</a> operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>childDirected</i> For each Amazon Lex bot created with the Amazon Lex Model Building Service, you must specify whether your use of Amazon Lex is related to a website, program, or other application that is directed or targeted, in whole or in part, to children under age 13 and subject to the Children's Online Privacy Protection Act (COPPA) by specifying <code>true</code> or <code>false</code> in the <code>childDirected</code> field. By specifying <code>true</code> in the <code>childDirected</code> field, you confirm that your use of Amazon Lex <b>is</b> related to a website, program, or other application that is directed or targeted, in whole or in part, to children under age 13 and subject to COPPA. By specifying <code>false</code> in the <code>childDirected</code> field, you confirm that your use of Amazon Lex <b>is not</b> related to a website, program, or other application that is directed or targeted, in whole or in part, to children under age 13 and subject to COPPA. You may not specify a default value for the <code>childDirected</code> field that does not accurately reflect whether your use of Amazon Lex is related to a website, program, or other application that is directed or targeted, in whole or in part, to children under age 13 and subject to COPPA. If your use of Amazon Lex relates to a website, program, or other application that is directed in whole or in part, to children under age 13, you must obtain any required verifiable parental consent under COPPA. For information regarding the use of Amazon Lex in connection with websites, programs, or other applications that are directed or targeted, in whole or in part, to children under age 13, see the <a href="https://aws.amazon.com/lex/faqs#data-security">Amazon Lex FAQ</a>.<br/>
        :return: lastUpdatedDateTime:  A timestamp of the date and time that the bot was last updated.<br/>creationDateTime:  A timestamp of the date and time that the bot was created.<br/>botStatus:  Shows the current status of the bot. The bot is first in the <code>Creating</code> status. Once the bot is read for use, it changes to the <code>Available</code> status. After the bot is created, you can use the <code>DRAFT</code> version of the bot.<br/>idleSessionTTLInSeconds:  The session timeout, in seconds, for the bot after the update.<br/>dataPrivacy:  The data privacy settings for the bot after the update.:<br/>roleArn:  The Amazon Resource Name (ARN) of the IAM role used by the bot after the update.<br/>description:  The description of the bot after the update.<br/>botName:  The name of the bot after the update.<br/>botId:  The unique identifier of the bot that was updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>childDirected</i> For each Amazon Lex bot created with the Amazon Lex Model Building Service, you must specify whether your use of Amazon Lex is related to a website, program, or other application that is directed or targeted, in whole or in part, to children under age 13 and subject to the Children's Online Privacy Protection Act (COPPA) by specifying <code>true</code> or <code>false</code> in the <code>childDirected</code> field. By specifying <code>true</code> in the <code>childDirected</code> field, you confirm that your use of Amazon Lex <b>is</b> related to a website, program, or other application that is directed or targeted, in whole or in part, to children under age 13 and subject to COPPA. By specifying <code>false</code> in the <code>childDirected</code> field, you confirm that your use of Amazon Lex <b>is not</b> related to a website, program, or other application that is directed or targeted, in whole or in part, to children under age 13 and subject to COPPA. You may not specify a default value for the <code>childDirected</code> field that does not accurately reflect whether your use of Amazon Lex is related to a website, program, or other application that is directed or targeted, in whole or in part, to children under age 13 and subject to COPPA. If your use of Amazon Lex relates to a website, program, or other application that is directed in whole or in part, to children under age 13, you must obtain any required verifiable parental consent under COPPA. For information regarding the use of Amazon Lex in connection with websites, programs, or other applications that are directed or targeted, in whole or in part, to children under age 13, see the <a href="https://aws.amazon.com/lex/faqs#data-security">Amazon Lex FAQ</a>.<br/>        """
        pass

    def update_bot_alias(self, botId: str, botAliasName: str, botAliasId: str, description: str=None, botVersion: str=None, botAliasLocaleSettings: BotAliasLocaleSettingsMap=None, conversationLogSettings: ConversationLogSettings=None, sentimentAnalysisSettings: SentimentAnalysisSettings=None) -> UpdateBotAliasResponse:
        r"""Updates the configuration of an existing bot alias.

        :param self:
        :param botId:  The identifier of the bot with the updated alias.<br/>sentimentAnalysisSettings:  Determines whether Amazon Lex will use Amazon Comprehend to detect the sentiment of user utterances.:<br/>conversationLogSettings:  The new settings for storing conversation logs in Amazon CloudWatch Logs and Amazon S3 buckets.:<br/>botAliasLocaleSettings:  The new Lambda functions to use in each locale for the bot alias.<br/>botVersion:  The new bot version to assign to the bot alias.<br/>description:  The new description to assign to the bot alias.<br/>botAliasName:  The new name to assign to the bot alias.<br/>botAliasId:  The unique identifier of the bot alias.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>audioLogSettings</i> The Amazon S3 settings for logging audio to an S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>textLogSettings</i> The Amazon CloudWatch Logs settings for logging text and metadata.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>detectSentiment</i> Sets whether Amazon Lex uses Amazon Comprehend to detect the sentiment of user utterances.<br/>
        :return: lastUpdatedDateTime:  A timestamp of the date and time that the bot was last updated.<br/>creationDateTime:  A timestamp of the date and time that the bot was created.<br/>botId:  The identifier of the bot with the updated alias.<br/>botAliasStatus:  The current status of the bot alias. When the status is <code>Available</code> the alias is ready for use.<br/>sentimentAnalysisSettings:  Determines whether Amazon Lex will use Amazon Comprehend to detect the sentiment of user utterances.:<br/>conversationLogSettings:  The updated settings for storing conversation logs in Amazon CloudWatch Logs and Amazon S3 buckets.:<br/>botAliasLocaleSettings:  The updated Lambda functions to use in each locale for the bot alias.<br/>botVersion:  The updated version of the bot that the alias points to.<br/>description:  The updated description of the bot alias.<br/>botAliasName:  The updated name of the bot alias.<br/>botAliasId:  The identifier of the updated bot alias.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>audioLogSettings</i> The Amazon S3 settings for logging audio to an S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>textLogSettings</i> The Amazon CloudWatch Logs settings for logging text and metadata.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>detectSentiment</i> Sets whether Amazon Lex uses Amazon Comprehend to detect the sentiment of user utterances.<br/>        """
        pass

    def update_bot_locale(self, nluIntentConfidenceThreshold: ConfidenceThreshold, localeId: str, botVersion: str, botId: str, description: str=None, voiceSettings: VoiceSettings=None) -> UpdateBotLocaleResponse:
        r"""Updates the settings that a bot has for a specific locale.

        :param self:
        :param voiceSettings:  The new Amazon Polly voice Amazon Lex should use for voice interaction with the user.:<br/>nluIntentConfidenceThreshold:  The new confidence threshold where Amazon Lex inserts the <code>AMAZON.FallbackIntent</code> and <code>AMAZON.KendraSearchIntent</code> intents in the list of possible intents for an utterance.<br/>description:  The new description of the locale.<br/>localeId:  The identifier of the language and locale to update. The string must match one of the supported locales. For more information, see <a href="https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html">Supported languages</a>.<br/>botVersion:  The version of the bot that contains the locale to be updated. The version can only be the <code>DRAFT</code> version.<br/>botId:  The unique identifier of the bot that contains the locale.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>voiceId</i> The identifier of the Amazon Polly voice to use.<br/>
        :return: lastUpdatedDateTime:  A timestamp of the date and time that the locale was last updated.<br/>creationDateTime:  A timestamp of the date and time that the locale was created.<br/>failureReasons:  If the <code>botLocaleStatus</code> is <code>Failed</code>, the <code>failureReasons</code> field lists the errors that occurred while building the bot.<br/>botLocaleStatus:  The current status of the locale. When the bot status is <code>Built</code> the locale is ready for use.<br/>voiceSettings:  The updated Amazon Polly voice to use for voice interaction with the user.:<br/>nluIntentConfidenceThreshold:  The updated confidence threshold for inserting the <code>AMAZON.FallbackIntent</code> and <code>AMAZON.KendraSearchIntent</code> intents in the list of possible intents for an utterance.<br/>description:  The updated description of the locale.<br/>localeName:  The updated locale name for the locale.<br/>localeId:  The language and locale of the updated bot locale.<br/>botVersion:  The version of the bot that contains the updated locale.<br/>botId:  The identifier of the bot that contains the updated locale.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>voiceId</i> The identifier of the Amazon Polly voice to use.<br/>        """
        pass

    def update_export(self, exportId: str, filePassword: str=None) -> UpdateExportResponse:
        r"""Updates the password used to protect an export zip archive. The password is not required. If you don't supply a password, Amazon Lex generates a zip file that is not protected by a password. This is the archive that is available at the pre-signed S3 URL provided by the operation.

        :param self:
        :param filePassword:  The new password to use to encrypt the export zip archive.<br/>exportId:  The unique identifier Amazon Lex assigned to the export.<br/>
        :return: lastUpdatedDateTime:  The date and time that the export was last updated.<br/>creationDateTime:  The date and time that the export was created.<br/>exportStatus:  The status of the export. When the status is <code>Completed</code> the export archive is available for download.<br/>fileFormat:  The file format used for the files that define the resource.<br/>resourceSpecification:  A description of the type of resource that was exported, either a bot or a bot locale.:<br/>exportId:  The unique identifier Amazon Lex assigned to the export.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>botLocaleExportSpecification</i> Parameters for exporting a bot locale.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>botLocaleExportSpecification</b>: Parameters for exporting a bot locale.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>botExportSpecification</i> Parameters for exporting a bot.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>botExportSpecification</b>: Parameters for exporting a bot.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>botVersion</i> The version of the bot that was exported. This will be either <code>DRAFT</code> or the version number.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>botId</i> The identifier of the bot assigned by Amazon Lex.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>localeId</i> The identifier of the language and locale to export. The string must match one of the locales in the bot.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>botVersion</i> The version of the bot to export.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>botId</i> The identifier of the bot to create the locale for.<br/>        """
        pass

    def update_intent(self, localeId: str, botVersion: str, botId: str, intentName: str, intentId: str, description: str=None, parentIntentSignature: str=None, sampleUtterances: List[SampleUtterance]=None, dialogCodeHook: DialogCodeHookSettings=None, fulfillmentCodeHook: FulfillmentCodeHookSettings=None, slotPriorities: List[SlotPriority]=None, intentConfirmationSetting: IntentConfirmationSetting=None, intentClosingSetting: IntentClosingSetting=None, inputContexts: List[InputContext]=None, outputContexts: List[OutputContext]=None, kendraConfiguration: KendraConfiguration=None) -> UpdateIntentResponse:
        r"""Updates the settings for an intent.

        :param self:
        :param localeId:  The identifier of the language and locale where this intent is used. The string must match one of the supported locales. For more information, see <a href="https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html">Supported languages</a>.<br/>botVersion:  The version of the bot that contains the intent. Must be <code>DRAFT</code>.<br/>botId:  The identifier of the bot that contains the intent.<br/>kendraConfiguration:  New configuration settings for connecting to an Amazon Kendra index.:<br/>outputContexts:  A new list of contexts that Amazon Lex activates when the intent is fulfilled.<br/>inputContexts:  A new list of contexts that must be active in order for Amazon Lex to consider the intent.<br/>intentClosingSetting:  The new response that Amazon Lex sends the user when the intent is closed.:<br/>intentConfirmationSetting:  New prompts that Amazon Lex sends to the user to confirm the completion of an intent.:<br/>slotPriorities:  A new list of slots and their priorities that are contained by the intent.<br/>fulfillmentCodeHook:  The new Lambda function to call when all of the intents required slots are provided and the intent is ready for fulfillment.:<br/>dialogCodeHook:  The new Lambda function to use between each turn of the conversation with the bot.:<br/>sampleUtterances:  New utterances used to invoke the intent.<br/>parentIntentSignature:  The signature of the new built-in intent to use as the parent of this intent.<br/>description:  The new description of the intent.<br/>intentName:  The new name for the intent.<br/>intentId:  The unique identifier of the intent to update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>enabled</i> Enables the dialog code hook so that it processes user requests.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>enabled</i> Indicates whether a Lambda function should be invoked to fulfill a specific intent.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>declinationResponse</i> When the user answers "no" to the question defined in <code>promptSpecification</code>, Amazon Lex responds with this response to acknowledge that the intent was canceled. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>declinationResponse</b>: When the user answers "no" to the question defined in <code>promptSpecification</code>, Amazon Lex responds with this response to acknowledge that the intent was canceled. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>promptSpecification</i> Prompts the user to confirm the intent. This question should have a yes or no answer. Amazon Lex uses this prompt to ensure that the user acknowledges that the intent is ready for fulfillment. For example, with the <code>OrderPizza</code> intent, you might want to confirm that the order is correct before placing it. For other intents, such as intents that simply respond to user questions, you might not need to ask the user for confirmation before providing the information. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>promptSpecification</b>: Prompts the user to confirm the intent. This question should have a yes or no answer. Amazon Lex uses this prompt to ensure that the user acknowledges that the intent is ready for fulfillment. For example, with the <code>OrderPizza</code> intent, you might want to confirm that the order is correct before placing it. For other intents, such as intents that simply respond to user questions, you might not need to ask the user for confirmation before providing the information. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>allowInterrupt</i> Indicates whether the user can interrupt a speech prompt from the bot.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>maxRetries</i> The maximum number of times the bot tries to elicit a resonse from the user using this prompt.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>messageGroups</i> A collection of messages that Amazon Lex can send to the user. Amazon Lex chooses the actual message to send at runtime.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>allowInterrupt</i> Indicates whether the user can interrupt a speech response from Amazon Lex.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>messageGroups</i> A collection of responses that Amazon Lex can send to the user. Amazon Lex chooses the actual response to send at runtime.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>closingResponse</i> The response that Amazon Lex sends to the user when the intent is complete.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>closingResponse</b>: The response that Amazon Lex sends to the user when the intent is complete.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>allowInterrupt</i> Indicates whether the user can interrupt a speech response from Amazon Lex.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>messageGroups</i> A collection of responses that Amazon Lex can send to the user. Amazon Lex chooses the actual response to send at runtime.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>queryFilterString</i> A query filter that Amazon Lex sends to Amazon Kendra to filter the response from a query. The filter is in the format defined by Amazon Kendra. For more information, see <a href="https://docs.aws.amazon.com/kendra/latest/dg/filtering.html">Filtering queries</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>queryFilterStringEnabled</i> Determines whether the AMAZON.KendraSearchIntent intent uses a custom query string to query the Amazon Kendra index.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>kendraIndex</i> The Amazon Resource Name (ARN) of the Amazon Kendra index that you want the AMAZON.KendraSearchIntent intent to search. The index must be in the same account and Region as the Amazon Lex bot.<br/>
        :return: lastUpdatedDateTime:  A timestamp of the last time that the intent was modified.<br/>creationDateTime:  A timestamp of when the intent was created.<br/>localeId:  The updated language and locale of the intent.<br/>botVersion:  The version of the bot that contains the intent. Will always be <code>DRAFT</code>.<br/>botId:  The identifier of the bot that contains the intent.<br/>kendraConfiguration:  The updated configuration for connecting to an Amazon Kendra index with the <code>AMAZON.KendraSearchIntent</code> intent.:<br/>outputContexts:  The updated list of contexts that Amazon Lex activates when the intent is fulfilled.<br/>inputContexts:  The updated list of contexts that must be active for the intent to be considered by Amazon Lex.<br/>intentClosingSetting:  The updated response that Amazon Lex sends the user when the intent is closed.:<br/>intentConfirmationSetting:  The updated prompts that Amazon Lex sends to the user to confirm the completion of an intent.:<br/>slotPriorities:  The updated list of slots and their priorities that are elicited from the user for the intent.<br/>fulfillmentCodeHook:  The updated Lambda function called when the intent is ready for fulfillment.:<br/>dialogCodeHook:  The updated Lambda function called during each turn of the conversation with the user.:<br/>sampleUtterances:  The updated list of sample utterances for the intent.<br/>parentIntentSignature:  The updated built-in intent that is the parent of this intent.<br/>description:  The updated description of the intent.<br/>intentName:  The updated name of the intent.<br/>intentId:  The identifier of the intent that was updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>enabled</i> Enables the dialog code hook so that it processes user requests.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>enabled</i> Indicates whether a Lambda function should be invoked to fulfill a specific intent.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>declinationResponse</i> When the user answers "no" to the question defined in <code>promptSpecification</code>, Amazon Lex responds with this response to acknowledge that the intent was canceled. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>declinationResponse</b>: When the user answers "no" to the question defined in <code>promptSpecification</code>, Amazon Lex responds with this response to acknowledge that the intent was canceled. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>promptSpecification</i> Prompts the user to confirm the intent. This question should have a yes or no answer. Amazon Lex uses this prompt to ensure that the user acknowledges that the intent is ready for fulfillment. For example, with the <code>OrderPizza</code> intent, you might want to confirm that the order is correct before placing it. For other intents, such as intents that simply respond to user questions, you might not need to ask the user for confirmation before providing the information. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>promptSpecification</b>: Prompts the user to confirm the intent. This question should have a yes or no answer. Amazon Lex uses this prompt to ensure that the user acknowledges that the intent is ready for fulfillment. For example, with the <code>OrderPizza</code> intent, you might want to confirm that the order is correct before placing it. For other intents, such as intents that simply respond to user questions, you might not need to ask the user for confirmation before providing the information. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>allowInterrupt</i> Indicates whether the user can interrupt a speech prompt from the bot.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>maxRetries</i> The maximum number of times the bot tries to elicit a resonse from the user using this prompt.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>messageGroups</i> A collection of messages that Amazon Lex can send to the user. Amazon Lex chooses the actual message to send at runtime.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>allowInterrupt</i> Indicates whether the user can interrupt a speech response from Amazon Lex.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>messageGroups</i> A collection of responses that Amazon Lex can send to the user. Amazon Lex chooses the actual response to send at runtime.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>closingResponse</i> The response that Amazon Lex sends to the user when the intent is complete.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>closingResponse</b>: The response that Amazon Lex sends to the user when the intent is complete.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>allowInterrupt</i> Indicates whether the user can interrupt a speech response from Amazon Lex.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>messageGroups</i> A collection of responses that Amazon Lex can send to the user. Amazon Lex chooses the actual response to send at runtime.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>queryFilterString</i> A query filter that Amazon Lex sends to Amazon Kendra to filter the response from a query. The filter is in the format defined by Amazon Kendra. For more information, see <a href="https://docs.aws.amazon.com/kendra/latest/dg/filtering.html">Filtering queries</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>queryFilterStringEnabled</i> Determines whether the AMAZON.KendraSearchIntent intent uses a custom query string to query the Amazon Kendra index.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>kendraIndex</i> The Amazon Resource Name (ARN) of the Amazon Kendra index that you want the AMAZON.KendraSearchIntent intent to search. The index must be in the same account and Region as the Amazon Lex bot.<br/>        """
        pass

    def update_resource_policy(self, policy: str, resourceArn: str, expectedRevisionId: str=None) -> UpdateResourcePolicyResponse:
        r"""Replaces the existing resource policy for a bot or bot alias with a new one. If the policy doesn't exist, Amazon Lex returns an exception.

        :param self:
        :param expectedRevisionId:  The identifier of the revision of the policy to update. If this revision ID doesn't match the current revision ID, Amazon Lex throws an exception. If you don't specify a revision, Amazon Lex overwrites the contents of the policy with the new values.<br/>policy:  A resource policy to add to the resource. The policy is a JSON structure that contains one or more statements that define the policy. The policy must follow the IAM syntax. For more information about the contents of a JSON policy document, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html"> IAM JSON policy reference </a>.  If the policy isn't valid, Amazon Lex returns a validation exception.<br/>resourceArn:  The Amazon Resource Name (ARN) of the bot or bot alias that the resource policy is attached to.<br/>
        :return: revisionId:  The current revision of the resource policy. Use the revision ID to make sure that you are updating the most current version of a resource policy when you add a policy statement to a resource, delete a resource, or update a resource.<br/>resourceArn:  The Amazon Resource Name (ARN) of the bot or bot alias that the resource policy is attached to.<br/>        """
        pass

    def update_slot(self, intentId: str, localeId: str, botVersion: str, botId: str, valueElicitationSetting: SlotValueElicitationSetting, slotTypeId: str, slotName: str, slotId: str, description: str=None, obfuscationSetting: ObfuscationSetting=None, multipleValuesSetting: MultipleValuesSetting=None) -> UpdateSlotResponse:
        r"""Updates the settings for a slot.

        :param self:
        :param multipleValuesSetting:  Determines whether the slot accepts multiple values in one response. Multiple value slots are only available in the en-US locale. If you set this value to <code>true</code> in any other locale, Amazon Lex throws a <code>ValidationException</code>. If the <code>multipleValuesSetting</code> is not set, the default value is <code>false</code>.:<br/>intentId:  The identifier of the intent that contains the slot.<br/>localeId:  The identifier of the language and locale that contains the slot. The string must match one of the supported locales. For more information, see <a href="https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html">Supported languages</a>.<br/>botVersion:  The version of the bot that contains the slot. Must always be <code>DRAFT</code>.<br/>botId:  The unique identifier of the bot that contains the slot.<br/>obfuscationSetting:  New settings that determine how slot values are formatted in Amazon CloudWatch logs. :<br/>valueElicitationSetting:  A new set of prompts that Amazon Lex sends to the user to elicit a response the provides a value for the slot.:<br/>slotTypeId:  The unique identifier of the new slot type to associate with this slot. <br/>description:  The new description for the slot.<br/>slotName:  The new name for the slot.<br/>slotId:  The unique identifier for the slot to update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>waitAndContinueSpecification</i> Specifies the prompts that Amazon Lex uses while a bot is waiting for customer input. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>waitAndContinueSpecification</b>: Specifies the prompts that Amazon Lex uses while a bot is waiting for customer input. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>sampleUtterances</i> If you know a specific pattern that users might respond to an Amazon Lex request for a slot value, you can provide those utterances to improve accuracy. This is optional. In most cases, Amazon Lex is capable of understanding user utterances.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>promptSpecification</i> The prompt that Amazon Lex uses to elicit the slot value from the user.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>promptSpecification</b>: The prompt that Amazon Lex uses to elicit the slot value from the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>slotConstraint</i> Specifies whether the slot is required or optional.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>defaultValueSpecification</i> A list of default values for a slot. Default values are used when Amazon Lex hasn't determined a value for a slot. You can specify default values from context variables, sesion attributes, and defined values.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>defaultValueSpecification</b>: A list of default values for a slot. Default values are used when Amazon Lex hasn't determined a value for a slot. You can specify default values from context variables, sesion attributes, and defined values.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>defaultValueList</i> A list of default values. Amazon Lex chooses the default value to use in the order that they are presented in the list.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>allowInterrupt</i> Indicates whether the user can interrupt a speech prompt from the bot.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>maxRetries</i> The maximum number of times the bot tries to elicit a resonse from the user using this prompt.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>messageGroups</i> A collection of messages that Amazon Lex can send to the user. Amazon Lex chooses the actual message to send at runtime.<br/>The response that Amazon Lex sends to indicate that the bot is waiting for the conversation to continue.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>waitingResponse</b>: The response that Amazon Lex sends to indicate that the bot is waiting for the conversation to continue.&nbsp;&nbsp;&nbsp;&nbsp; <i>obfuscationSettingType</i> Value that determines whether Amazon Lex obscures slot values in conversation logs. The default is to obscure the values.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>allowMultipleValues</i> Indicates whether a slot can return multiple values. When <code>true</code>, the slot may return more than one value in a response. When <code>false</code>, the slot returns only a single value. Multi-value slots are only available in the en-US locale. If you set this value to <code>true</code> in any other locale, Amazon Lex throws a <code>ValidationException</code>. If the <code>allowMutlipleValues</code> is not set, the default value is <code>false</code>.<br/>
        :return: multipleValuesSetting:  Indicates whether the slot accepts multiple values in one response.:<br/>lastUpdatedDateTime:  The timestamp of the date and time that the slot was last updated.<br/>creationDateTime:  The timestamp of the date and time that the slot was created.<br/>intentId:  The intent that contains the slot.<br/>localeId:  The locale that contains the slot.<br/>botVersion:  The identifier of the slot version that contains the slot. Will always be <code>DRAFT</code>.<br/>botId:  The identifier of the bot that contains the slot.<br/>obfuscationSetting:  The updated setting that determines whether the slot value is obfuscated in the Amazon CloudWatch logs.:<br/>valueElicitationSetting:  The updated prompts that Amazon Lex sends to the user to elicit a response that provides a value for the slot.:<br/>slotTypeId:  The updated identifier of the slot type that provides values for the slot.<br/>description:  The updated description of the bot.<br/>slotName:  The updated name of the slot.<br/>slotId:  The unique identifier of the slot that was updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>waitAndContinueSpecification</i> Specifies the prompts that Amazon Lex uses while a bot is waiting for customer input. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>waitAndContinueSpecification</b>: Specifies the prompts that Amazon Lex uses while a bot is waiting for customer input. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>sampleUtterances</i> If you know a specific pattern that users might respond to an Amazon Lex request for a slot value, you can provide those utterances to improve accuracy. This is optional. In most cases, Amazon Lex is capable of understanding user utterances.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>promptSpecification</i> The prompt that Amazon Lex uses to elicit the slot value from the user.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>promptSpecification</b>: The prompt that Amazon Lex uses to elicit the slot value from the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>slotConstraint</i> Specifies whether the slot is required or optional.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>defaultValueSpecification</i> A list of default values for a slot. Default values are used when Amazon Lex hasn't determined a value for a slot. You can specify default values from context variables, sesion attributes, and defined values.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>defaultValueSpecification</b>: A list of default values for a slot. Default values are used when Amazon Lex hasn't determined a value for a slot. You can specify default values from context variables, sesion attributes, and defined values.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>defaultValueList</i> A list of default values. Amazon Lex chooses the default value to use in the order that they are presented in the list.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>allowInterrupt</i> Indicates whether the user can interrupt a speech prompt from the bot.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>maxRetries</i> The maximum number of times the bot tries to elicit a resonse from the user using this prompt.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>messageGroups</i> A collection of messages that Amazon Lex can send to the user. Amazon Lex chooses the actual message to send at runtime.<br/>The response that Amazon Lex sends to indicate that the bot is waiting for the conversation to continue.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>waitingResponse</b>: The response that Amazon Lex sends to indicate that the bot is waiting for the conversation to continue.&nbsp;&nbsp;&nbsp;&nbsp; <i>obfuscationSettingType</i> Value that determines whether Amazon Lex obscures slot values in conversation logs. The default is to obscure the values.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>allowMultipleValues</i> Indicates whether a slot can return multiple values. When <code>true</code>, the slot may return more than one value in a response. When <code>false</code>, the slot returns only a single value. Multi-value slots are only available in the en-US locale. If you set this value to <code>true</code> in any other locale, Amazon Lex throws a <code>ValidationException</code>. If the <code>allowMutlipleValues</code> is not set, the default value is <code>false</code>.<br/>        """
        pass

    def update_slot_type(self, localeId: str, botVersion: str, botId: str, valueSelectionSetting: SlotValueSelectionSetting, slotTypeName: str, slotTypeId: str, description: str=None, slotTypeValues: List[SlotTypeValue]=None, parentSlotTypeSignature: str=None) -> UpdateSlotTypeResponse:
        r"""Updates the configuration of an existing slot type.

        :param self:
        :param localeId:  The identifier of the language and locale that contains the slot type. The string must match one of the supported locales. For more information, see <a href="https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html">Supported languages</a>.<br/>botVersion:  The version of the bot that contains the slot type. Must be <code>DRAFT</code>.<br/>botId:  The identifier of the bot that contains the slot type.<br/>parentSlotTypeSignature:  The new built-in slot type that should be used as the parent of this slot type.<br/>valueSelectionSetting:  The strategy that Amazon Lex should use when deciding on a value from the list of slot type values.:<br/>slotTypeValues:  A new list of values and their optional synonyms that define the values that the slot type can take.<br/>description:  The new description of the slot type.<br/>slotTypeName:  The new name of the slot type.<br/>slotTypeId:  The unique identifier of the slot type to update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>regexFilter</i> A regular expression used to validate the value of a slot.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>regexFilter</b>: A regular expression used to validate the value of a slot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resolutionStrategy</i> Determines the slot resolution strategy that Amazon Lex uses to return slot type values. The field can be set to one of the following values: <ul> <li> OriginalValue - Returns the value entered by the user, if the user value is similar to the slot value. </li> <li> TopResolution - If there is a resolution list for the slot, return the first value in the resolution list as the slot type value. If there is no resolution list, null is returned. </li> </ul> If you don't specify the valueSelectionStrategy, the default is OriginalValue. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>pattern</i> A regular expression used to validate the value of a slot.  Use a standard regular expression. Amazon Lex supports the following characters in the regular expression:  <ul> <li> A-Z, a-z </li> <li> 0-9 </li> <li> Unicode characters ("\ u&lt;Unicode&gt;") </li> </ul>  Represent Unicode characters with four digits, for example "\u0041" or "\u005A".   The following regular expression operators are not supported:  <ul> <li> Infinite repeaters: *, +, or {x,} with no upper bound. </li> <li> Wild card (.) </li> </ul><br/>
        :return: lastUpdatedDateTime:  A timestamp of the date and time that the slot type was last updated.<br/>creationDateTime:  The timestamp of the date and time that the slot type was created.<br/>localeId:  The language and locale of the updated slot type.<br/>botVersion:  The version of the bot that contains the slot type. This is always <code>DRAFT</code>.<br/>botId:  The identifier of the bot that contains the slot type.<br/>parentSlotTypeSignature:  The updated signature of the built-in slot type that is the parent of this slot type.<br/>valueSelectionSetting:  The updated strategy that Amazon Lex uses to determine which value to select from the slot type.:<br/>slotTypeValues:  The updated values that the slot type provides.<br/>description:  The updated description of the slot type.<br/>slotTypeName:  The updated name of the slot type.<br/>slotTypeId:  The unique identifier of the updated slot type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>regexFilter</i> A regular expression used to validate the value of a slot.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>regexFilter</b>: A regular expression used to validate the value of a slot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resolutionStrategy</i> Determines the slot resolution strategy that Amazon Lex uses to return slot type values. The field can be set to one of the following values: <ul> <li> OriginalValue - Returns the value entered by the user, if the user value is similar to the slot value. </li> <li> TopResolution - If there is a resolution list for the slot, return the first value in the resolution list as the slot type value. If there is no resolution list, null is returned. </li> </ul> If you don't specify the valueSelectionStrategy, the default is OriginalValue. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>pattern</i> A regular expression used to validate the value of a slot.  Use a standard regular expression. Amazon Lex supports the following characters in the regular expression:  <ul> <li> A-Z, a-z </li> <li> 0-9 </li> <li> Unicode characters ("\ u&lt;Unicode&gt;") </li> </ul>  Represent Unicode characters with four digits, for example "\u0041" or "\u005A".   The following regular expression operators are not supported:  <ul> <li> Infinite repeaters: *, +, or {x,} with no upper bound. </li> <li> Wild card (.) </li> </ul><br/>        """
        pass





class LexRuntimeV2(BaseClient):
    r"""<p/>"""




    class DeleteSessionRequest(Mapping):
        pass
    
    class DeleteSessionResponse(Mapping):
        pass
    
    class GetSessionRequest(Mapping):
        pass
    
    class GetSessionResponse(Mapping):
        pass
    
    class PutSessionRequest(Mapping):
        pass
    
    class PutSessionResponse(Mapping):
        pass
    
    class Message(Mapping):
        pass
    
    class SessionState(Mapping):
        pass
    
    class StringMap(object):
        pass
    
    class RecognizeTextRequest(Mapping):
        pass
    
    class RecognizeTextResponse(Mapping):
        pass
    
    class RecognizeUtteranceRequest(Mapping):
        pass
    
    class RecognizeUtteranceResponse(Mapping):
        pass
    
    class BlobStream(object):
        pass
    
    class StartConversationRequest(Mapping):
        pass
    
    class StartConversationResponse(Mapping):
        pass
    
    class StartConversationRequestEventStream(Mapping):
        pass
    
    def delete_session(self, sessionId: str, localeId: str, botAliasId: str, botId: str) -> DeleteSessionResponse:
        r"""Removes session information for a specified bot, alias, and user ID.  You can use this operation to restart a conversation with a bot. When you remove a session, the entire history of the session is removed so that you can start again. You don't need to delete a session. Sessions have a time limit and will expire. Set the session time limit when you create the bot. The default is 5 minutes, but you can specify anything between 1 minute and 24 hours. If you specify a bot or alias ID that doesn't exist, you receive a <code>BadRequestException.</code>  If the locale doesn't exist in the bot, or if the locale hasn't been enables for the alias, you receive a <code>BadRequestException</code>.

        :param self:
        :param sessionId:  The identifier of the session to delete.<br/>localeId:  The locale where the session is in use.<br/>botAliasId:  The alias identifier in use for the bot that contains the session data.<br/>botId:  The identifier of the bot that contains the session data.<br/>
        :return: sessionId:  The identifier of the deleted session.<br/>localeId:  The locale where the session was used.<br/>botAliasId:  The alias identifier in use for the bot that contained the session data.<br/>botId:  The identifier of the bot that contained the session data.<br/>        """
        pass

    def get_session(self, sessionId: str, localeId: str, botAliasId: str, botId: str) -> GetSessionResponse:
        r"""Returns session information for a specified bot, alias, and user. For example, you can use this operation to retrieve session information for a user that has left a long-running session in use. If the bot, alias, or session identifier doesn't exist, Amazon Lex V2 returns a <code>BadRequestException</code>. If the locale doesn't exist or is not enabled for the alias, you receive a <code>BadRequestException</code>.

        :param self:
        :param sessionId:  The identifier of the session to return.<br/>localeId:  The locale where the session is in use.<br/>botAliasId:  The alias identifier in use for the bot that contains the session data.<br/>botId:  The identifier of the bot that contains the session data.<br/>
        :return: sessionState:  Represents the current state of the dialog between the user and the bot. You can use this to determine the progress of the conversation and what the next action might be.:<br/>interpretations:  A list of intents that Amazon Lex V2 determined might satisfy the user's utterance.  Each interpretation includes the intent, a score that indicates how confident Amazon Lex V2 is that the interpretation is the correct one, and an optional sentiment response that indicates the sentiment expressed in the utterance.<br/>messages:  A list of messages that were last sent to the user. The messages are ordered based on the order that your returned the messages from your Lambda function or the order that messages are defined in the bot. <br/>sessionId:  The identifier of the returned session.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>originatingRequestId</i> <p/><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>sessionAttributes</i> Map of key/value pairs representing session-specific context information. It contains application information passed between Amazon Lex V2 and a client application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>activeContexts</i> One or more contexts that indicate to Amazon Lex V2 the context of a request. When a context is active, Amazon Lex V2 considers intents with the matching context as a trigger as the next intent in a session.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>intent</i> The active intent that Amazon Lex V2 is processing.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>intent</b>: The active intent that Amazon Lex V2 is processing.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>dialogAction</i> The next step that Amazon Lex V2 should take in the conversation with a user.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>dialogAction</b>: The next step that Amazon Lex V2 should take in the conversation with a user.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>slotToElicit</i> The name of the slot that should be elicited from the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The next action that the bot should take in its interaction with the user. The possible values are: <ul> <li>  <code>Close</code> - Indicates that there will not be a response from the user. For example, the statement "Your order has been placed" does not require a response. </li> <li>  <code>ConfirmIntent</code> - The next action is asking the user if the intent is complete and ready to be fulfilled. This is a yes/no question such as "Place the order?" </li> <li>  <code>Delegate</code> - The next action is determined by Amazon Lex V2. </li> <li>  <code>ElicitSlot</code> - The next action is to elicit a slot value from the user. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>confirmationState</i> Contains information about whether fulfillment of the intent has been confirmed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>state</i> Contains fulfillment information for the intent. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>slots</i> A map of all of the slots for the intent. The name of the slot maps to the value of the slot. If a slot has not been filled, the value is null.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the intent.<br/>        """
        pass

    def put_session(self, sessionState: SessionState, sessionId: str, localeId: str, botAliasId: str, botId: str, messages: List[Message]=None, requestAttributes: StringMap=None, responseContentType: str=None) -> PutSessionResponse:
        r"""Creates a new session or modifies an existing session with an Amazon Lex V2 bot. Use this operation to enable your application to set the state of the bot.

        :param self:
        :param responseContentType:  The message that Amazon Lex V2 returns in the response can be either text or speech depending on the value of this parameter.  <ul> <li> If the value is <code>text/plain; charset=utf-8</code>, Amazon Lex V2 returns text in the response. </li> </ul><br/>requestAttributes:  Request-specific information passed between Amazon Lex V2 and the client application. The namespace <code>x-amz-lex:</code> is reserved for special attributes. Don't create any request attributes with the prefix <code>x-amz-lex:</code>.<br/>sessionState:  Sets the state of the session with the user. You can use this to set the current intent, attributes, context, and dialog action. Use the dialog action to determine the next step that Amazon Lex V2 should use in the conversation with the user.:<br/>messages:  A list of messages to send to the user. Messages are sent in the order that they are defined in the list.<br/>sessionId:  The identifier of the session that receives the session data.<br/>localeId:  The locale where the session is in use.<br/>botAliasId:  The alias identifier of the bot that receives the session data.<br/>botId:  The identifier of the bot that receives the session data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>originatingRequestId</i> <p/><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>sessionAttributes</i> Map of key/value pairs representing session-specific context information. It contains application information passed between Amazon Lex V2 and a client application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>activeContexts</i> One or more contexts that indicate to Amazon Lex V2 the context of a request. When a context is active, Amazon Lex V2 considers intents with the matching context as a trigger as the next intent in a session.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>intent</i> The active intent that Amazon Lex V2 is processing.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>intent</b>: The active intent that Amazon Lex V2 is processing.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>dialogAction</i> The next step that Amazon Lex V2 should take in the conversation with a user.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>dialogAction</b>: The next step that Amazon Lex V2 should take in the conversation with a user.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>slotToElicit</i> The name of the slot that should be elicited from the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The next action that the bot should take in its interaction with the user. The possible values are: <ul> <li>  <code>Close</code> - Indicates that there will not be a response from the user. For example, the statement "Your order has been placed" does not require a response. </li> <li>  <code>ConfirmIntent</code> - The next action is asking the user if the intent is complete and ready to be fulfilled. This is a yes/no question such as "Place the order?" </li> <li>  <code>Delegate</code> - The next action is determined by Amazon Lex V2. </li> <li>  <code>ElicitSlot</code> - The next action is to elicit a slot value from the user. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>confirmationState</i> Contains information about whether fulfillment of the intent has been confirmed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>state</i> Contains fulfillment information for the intent. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>slots</i> A map of all of the slots for the intent. The name of the slot maps to the value of the slot. If a slot has not been filled, the value is null.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the intent.<br/>
        :return: audioStream:  If the requested content type was audio, the audio version of the message to convey to the user.<br/>sessionId:  The identifier of the session that received the data.<br/>requestAttributes:  Request-specific information passed between the client application and Amazon Lex V2. These are the same as the <code>requestAttribute</code> parameter in the call to the <code>PutSession</code> operation.<br/>sessionState:  Represents the current state of the dialog between the user and the bot. Use this to determine the progress of the conversation and what the next action may be.<br/>messages:  A list of messages that were last sent to the user. The messages are ordered based on how you return the messages from you Lambda function or the order that the messages are defined in the bot.<br/>contentType:  The type of response. Same as the type specified in the <code>responseContentType</code> field in the request.<br/>        """
        pass

    def recognize_text(self, text: str, sessionId: str, localeId: str, botAliasId: str, botId: str, sessionState: SessionState=None, requestAttributes: StringMap=None) -> RecognizeTextResponse:
        r"""Sends user input to Amazon Lex V2. Client applications use this API to send requests to Amazon Lex V2 at runtime. Amazon Lex V2 then interprets the user input using the machine learning model that it build for the bot. In response, Amazon Lex V2 returns the next message to convey to the user and an optional response card to display.

        :param self:
        :param requestAttributes:  Request-specific information passed between the client application and Amazon Lex V2  The namespace <code>x-amz-lex:</code> is reserved for special attributes. Don't create any request attributes with the prefix <code>x-amz-lex:</code>.<br/>sessionState:  The current state of the dialog between the user and the bot.:<br/>text:  The text that the user entered. Amazon Lex V2 interprets this text.<br/>sessionId:  The identifier of the user session that is having the conversation.<br/>localeId:  The locale where the session is in use.<br/>botAliasId:  The alias identifier in use for the bot that processes the request.<br/>botId:  The identifier of the bot that processes the request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>originatingRequestId</i> <p/><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>sessionAttributes</i> Map of key/value pairs representing session-specific context information. It contains application information passed between Amazon Lex V2 and a client application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>activeContexts</i> One or more contexts that indicate to Amazon Lex V2 the context of a request. When a context is active, Amazon Lex V2 considers intents with the matching context as a trigger as the next intent in a session.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>intent</i> The active intent that Amazon Lex V2 is processing.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>intent</b>: The active intent that Amazon Lex V2 is processing.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>dialogAction</i> The next step that Amazon Lex V2 should take in the conversation with a user.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>dialogAction</b>: The next step that Amazon Lex V2 should take in the conversation with a user.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>slotToElicit</i> The name of the slot that should be elicited from the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The next action that the bot should take in its interaction with the user. The possible values are: <ul> <li>  <code>Close</code> - Indicates that there will not be a response from the user. For example, the statement "Your order has been placed" does not require a response. </li> <li>  <code>ConfirmIntent</code> - The next action is asking the user if the intent is complete and ready to be fulfilled. This is a yes/no question such as "Place the order?" </li> <li>  <code>Delegate</code> - The next action is determined by Amazon Lex V2. </li> <li>  <code>ElicitSlot</code> - The next action is to elicit a slot value from the user. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>confirmationState</i> Contains information about whether fulfillment of the intent has been confirmed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>state</i> Contains fulfillment information for the intent. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>slots</i> A map of all of the slots for the intent. The name of the slot maps to the value of the slot. If a slot has not been filled, the value is null.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the intent.<br/>
        :return: sessionId:  The identifier of the session in use.<br/>requestAttributes:  The attributes sent in the request.<br/>interpretations:  A list of intents that Amazon Lex V2 determined might satisfy the user's utterance.  Each interpretation includes the intent, a score that indicates now confident Amazon Lex V2 is that the interpretation is the correct one, and an optional sentiment response that indicates the sentiment expressed in the utterance.<br/>sessionState:  Represents the current state of the dialog between the user and the bot.  Use this to determine the progress of the conversation and what the next action may be.:<br/>messages:  A list of messages last sent to the user. The messages are ordered based on the order that you returned the messages from your Lambda function or the order that the messages are defined in the bot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>originatingRequestId</i> <p/><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>sessionAttributes</i> Map of key/value pairs representing session-specific context information. It contains application information passed between Amazon Lex V2 and a client application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>activeContexts</i> One or more contexts that indicate to Amazon Lex V2 the context of a request. When a context is active, Amazon Lex V2 considers intents with the matching context as a trigger as the next intent in a session.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>intent</i> The active intent that Amazon Lex V2 is processing.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>intent</b>: The active intent that Amazon Lex V2 is processing.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>dialogAction</i> The next step that Amazon Lex V2 should take in the conversation with a user.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>dialogAction</b>: The next step that Amazon Lex V2 should take in the conversation with a user.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>slotToElicit</i> The name of the slot that should be elicited from the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The next action that the bot should take in its interaction with the user. The possible values are: <ul> <li>  <code>Close</code> - Indicates that there will not be a response from the user. For example, the statement "Your order has been placed" does not require a response. </li> <li>  <code>ConfirmIntent</code> - The next action is asking the user if the intent is complete and ready to be fulfilled. This is a yes/no question such as "Place the order?" </li> <li>  <code>Delegate</code> - The next action is determined by Amazon Lex V2. </li> <li>  <code>ElicitSlot</code> - The next action is to elicit a slot value from the user. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>confirmationState</i> Contains information about whether fulfillment of the intent has been confirmed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>state</i> Contains fulfillment information for the intent. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>slots</i> A map of all of the slots for the intent. The name of the slot maps to the value of the slot. If a slot has not been filled, the value is null.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the intent.<br/>        """
        pass

    def recognize_utterance(self, requestContentType: str, sessionId: str, localeId: str, botAliasId: str, botId: str, sessionState: str=None, requestAttributes: str=None, responseContentType: str=None, inputStream: BlobStream=None) -> RecognizeUtteranceResponse:
        r"""Sends user input to Amazon Lex V2. You can send text or speech. Clients use this API to send text and audio requests to Amazon Lex V2 at runtime. Amazon Lex V2 interprets the user input using the machine learning model built for the bot. The following request fields must be compressed with gzip and then base64 encoded before you send them to Amazon Lex V2.  <ul> <li> requestAttributes </li> <li> sessionState </li> </ul> The following response fields are compressed using gzip and then base64 encoded by Amazon Lex V2. Before you can use these fields, you must decode and decompress them.  <ul> <li> inputTranscript </li> <li> interpretations </li> <li> messages </li> <li> requestAttributes </li> <li> sessionState </li> </ul> The example contains a Java application that compresses and encodes a Java object to send to Amazon Lex V2, and a second that decodes and decompresses a response from Amazon Lex V2.

        :param self:
        :param inputStream:  User input in PCM or Opus audio format or text format as described in the <code>requestContentType</code> parameter.<br/>responseContentType:  The message that Amazon Lex V2 returns in the response can be either text or speech based on the <code>responseContentType</code> value. <ul> <li> If the value is <code>text/plain;charset=utf-8</code>, Amazon Lex V2 returns text in the response. </li> <li> If the value begins with <code>audio/</code>, Amazon Lex V2 returns speech in the response. Amazon Lex V2 uses Amazon Polly to generate the speech using the configuration that you specified in the <code>requestContentType</code> parameter. For example, if you specify <code>audio/mpeg</code> as the value, Amazon Lex V2 returns speech in the MPEG format. </li> <li> If the value is <code>audio/pcm</code>, the speech returned is <code>audio/pcm</code> at 16 KHz in 16-bit, little-endian format. </li> <li> The following are the accepted values: <ul> <li> audio/mpeg </li> <li> audio/ogg </li> <li> audio/pcm (16 KHz) </li> <li> audio/* (defaults to mpeg) </li> <li> text/plain; charset=utf-8 </li> </ul> </li> </ul><br/>requestContentType:  Indicates the format for audio input or that the content is text. The header must start with one of the following prefixes: <ul> <li> PCM format, audio data must be in little-endian byte order. <ul> <li> audio/l16; rate=16000; channels=1 </li> <li> audio/x-l16; sample-rate=16000; channel-count=1 </li> <li> audio/lpcm; sample-rate=8000; sample-size-bits=16; channel-count=1; is-big-endian=false </li> </ul> </li> <li> Opus format <ul> <li> audio/x-cbr-opus-with-preamble;preamble-size=0;bit-rate=256000;frame-size-milliseconds=4 </li> </ul> </li> <li> Text format <ul> <li> text/plain; charset=utf-8 </li> </ul> </li> </ul><br/>requestAttributes:  Request-specific information passed between the client application and Amazon Lex V2  The namespace <code>x-amz-lex:</code> is reserved for special attributes. Don't create any request attributes for prefix <code>x-amz-lex:</code>. The <code>requestAttributes</code> field must be compressed using gzip and then base64 encoded before sending to Amazon Lex V2.<br/>sessionState:  Sets the state of the session with the user. You can use this to set the current intent, attributes, context, and dialog action. Use the dialog action to determine the next step that Amazon Lex V2 should use in the conversation with the user. The <code>sessionState</code> field must be compressed using gzip and then base64 encoded before sending to Amazon Lex V2.<br/>sessionId:  The identifier of the session in use.<br/>localeId:  The locale where the session is in use.<br/>botAliasId:  The alias identifier in use for the bot that should receive the request.<br/>botId:  The identifier of the bot that should receive the request.<br/>
        :return: audioStream:  The prompt or statement to send to the user. This is based on the bot configuration and context. For example, if Amazon Lex V2 did not understand the user intent, it sends the <code>clarificationPrompt</code> configured for the bot. If the intent requires confirmation before taking the fulfillment action, it sends the <code>confirmationPrompt</code>. Another example: Suppose that the Lambda function successfully fulfilled the intent, and sent a message to convey to the user. Then Amazon Lex V2 sends that message in the response.<br/>inputTranscript:  The text used to process the request. If the input was an audio stream, the <code>inputTranscript</code> field contains the text extracted from the audio stream. This is the text that is actually processed to recognize intents and slot values. You can use this information to determine if Amazon Lex V2 is correctly processing the audio that you send. The <code>inputTranscript</code> field is compressed with gzip and then base64 encoded. Before you can use the contents of the field, you must decode and decompress the contents. See the example for a simple function to decode and decompress the contents.<br/>sessionId:  The identifier of the session in use.<br/>requestAttributes:  The attributes sent in the request. The <code>requestAttributes</code> field is compressed with gzip and then base64 encoded. Before you can use the contents of the field, you must decode and decompress the contents.<br/>sessionState:  Represents the current state of the dialog between the user and the bot. Use this to determine the progress of the conversation and what the next action might be. The <code>sessionState</code> field is compressed with gzip and then base64 encoded. Before you can use the contents of the field, you must decode and decompress the contents. See the example for a simple function to decode and decompress the contents.<br/>interpretations:  A list of intents that Amazon Lex V2 determined might satisfy the user's utterance. Each interpretation includes the intent, a score that indicates how confident Amazon Lex V2 is that the interpretation is the correct one, and an optional sentiment response that indicates the sentiment expressed in the utterance. The <code>interpretations</code> field is compressed with gzip and then base64 encoded. Before you can use the contents of the field, you must decode and decompress the contents. See the example for a simple function to decode and decompress the contents.<br/>messages:  A list of messages that were last sent to the user. The messages are ordered based on the order that you returned the messages from your Lambda function or the order that the messages are defined in the bot. The <code>messages</code> field is compressed with gzip and then base64 encoded. Before you can use the contents of the field, you must decode and decompress the contents. See the example for a simple function to decode and decompress the contents.<br/>contentType:  Content type as specified in the <code>responseContentType</code> in the request.<br/>inputMode:  Indicates whether the input mode to the operation was text or speech. <br/>        """
        pass

    def start_conversation(self, requestEventStream: StartConversationRequestEventStream, sessionId: str, localeId: str, botAliasId: str, botId: str, conversationMode: str=None) -> StartConversationResponse:
        r"""Starts an HTTP/2 bidirectional event stream that enables you to send audio, text, or DTMF input in real time. After your application starts a conversation, users send input to Amazon Lex V2 as a stream of events. Amazon Lex V2 processes the incoming events and responds with streaming text or audio events.  Audio input must be in the following format: <code>audio/lpcm sample-rate=8000 sample-size-bits=16 channel-count=1; is-big-endian=false</code>. The <code>StartConversation</code> operation is supported only in the following SDKs:  <ul> <li>  <a href="https://docs.aws.amazon.com/goto/SdkForCpp/runtime.lex.v2-2020-08-07/StartConversation">AWS SDK for C++</a>  </li> <li>  <a href="https://docs.aws.amazon.com/goto/SdkForJavaV2/runtime.lex.v2-2020-08-07/StartConversation">AWS SDK for Java V2</a>  </li> <li>  <a href="https://docs.aws.amazon.com/goto/SdkForRubyV3/runtime.lex.v2-2020-08-07/StartConversation">AWS SDK for Ruby V3</a>  </li> </ul>

        :param self:
        :param requestEventStream:  Represents the stream of events to Amazon Lex V2 from your application. The events are encoded as HTTP/2 data frames.:<br/>conversationMode:  The conversation type that you are using the Amazon Lex V2. If the conversation mode is <code>AUDIO</code> you can send both audio and DTMF information. If the mode is <code>TEXT</code> you can only send text.<br/>sessionId:  The identifier of the user session that is having the conversation.<br/>localeId:  The locale where the session is in use.<br/>botAliasId:  The alias identifier in use for the bot that processes the request.<br/>botId:  The identifier of the bot to process the request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DisconnectionEvent</i> Event sent from the client application to indicate to Amazon Lex V2 that the conversation is over.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DisconnectionEvent</b>: Event sent from the client application to indicate to Amazon Lex V2 that the conversation is over.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PlaybackCompletionEvent</i> Event sent from the client application to Amazon Lex V2 to indicate that it has finished playing audio and that Amazon Lex V2 should start listening for user input.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PlaybackCompletionEvent</b>: Event sent from the client application to Amazon Lex V2 to indicate that it has finished playing audio and that Amazon Lex V2 should start listening for user input.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TextInputEvent</i> Text sent from your client application to Amazon Lex V2. Each <code>TextInputEvent</code> is processed individually.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TextInputEvent</b>: Text sent from your client application to Amazon Lex V2. Each <code>TextInputEvent</code> is processed individually.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DTMFInputEvent</i> DTMF information sent to Amazon Lex V2 by your application. Amazon Lex V2 accumulates the DMTF information from when the user sends the first character and ends <ul> <li> when there's a pause longer that the value configured for the end timeout. </li> <li> when there's a digit that is the configured end character. </li> <li> when Amazon Lex V2 accumulates characters equal to the maximum DTMF character configuration. </li> </ul>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DTMFInputEvent</b>: DTMF information sent to Amazon Lex V2 by your application. Amazon Lex V2 accumulates the DMTF information from when the user sends the first character and ends <ul> <li> when there's a pause longer that the value configured for the end timeout. </li> <li> when there's a digit that is the configured end character. </li> <li> when Amazon Lex V2 accumulates characters equal to the maximum DTMF character configuration. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AudioInputEvent</i> Speech audio sent from your client application to Amazon Lex V2. Audio starts accumulating when Amazon Lex V2 identifies a voice and continues until a natural pause in the speech is found before processing.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AudioInputEvent</b>: Speech audio sent from your client application to Amazon Lex V2. Audio starts accumulating when Amazon Lex V2 identifies a voice and continues until a natural pause in the speech is found before processing.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConfigurationEvent</i> Configuration information sent from your client application to Amazon Lex V2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ConfigurationEvent</b>: Configuration information sent from your client application to Amazon Lex V2<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>responseContentType</i> The message that Amazon Lex V2 returns in the response can be either text or speech based on the <code>responseContentType</code> value. <ul> <li> If the value is <code>text/plain;charset=utf-8</code>, Amazon Lex V2 returns text in the response. </li> <li> If the value begins with <code>audio/</code>, Amazon Lex V2 returns speech in the response. Amazon Lex V2 uses Amazon Polly to generate the speech using the configuration that you specified in the <code>requestContentType</code> parameter. For example, if you specify <code>audio/mpeg</code> as the value, Amazon Lex V2 returns speech in the MPEG format. </li> <li> If the value is <code>audio/pcm</code>, the speech returned is audio/pcm in 16-bit, little-endian format. </li> <li> The following are the accepted values: <ul> <li> audio/mpeg </li> <li> audio/ogg </li> <li> audio/pcm </li> <li> audio/* (defaults to mpeg) </li> <li> text/plain; charset=utf-8 </li> </ul> </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>requestAttributes</i> Request-specific information passed between the client application and Amazon Lex V2. The namespace <code>x-amz-lex:</code> is reserved for special attributes. Don't create any request attributes for prefix <code>x-amz-lex:</code>.<br/>The state of the user's session with Amazon Lex V2.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>sessionState</b>: The state of the user's session with Amazon Lex V2.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>clientTimestampMillis</i> A timestamp set by the client of the date and time that the event was sent to Amazon Lex V2.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>eventId</i> A unique identifier that your application assigns to the event. You can use this to identify events in logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>contentType</i> The encoding used for the audio chunk. You must use 8 KHz PCM 16-bit mono-channel little-endian format. The value of the field should be:  <code>audio/lpcm; sample-rate=8000; sample-size-bits=16; channel-count=1; is-big-endian=false</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>audioChunk</i> An encoded stream of audio.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>clientTimestampMillis</i> A timestamp set by the client of the date and time that the event was sent to Amazon Lex V2.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>eventId</i> A unique identifier that your application assigns to the event. You can use this to identify events in logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>inputCharacter</i> The DTMF character that the user pressed. The allowed characters are A - D, 0 - 9, # and *.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>clientTimestampMillis</i> A timestamp set by the client of the date and time that the event was sent to Amazon Lex V2.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>eventId</i> A unique identifier that your application assigns to the event. You can use this to identify events in logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>text</i> The text from the user. Amazon Lex V2 processes this as a complete statement.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>clientTimestampMillis</i> A timestamp set by the client of the date and time that the event was sent to Amazon Lex V2.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>eventId</i> A unique identifier that your application assigns to the event. You can use this to identify events in logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>clientTimestampMillis</i> A timestamp set by the client of the date and time that the event was sent to Amazon Lex V2.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>eventId</i> A unique identifier that your application assigns to the event. You can use this to identify events in logs.<br/>
        :return: responseEventStream:  Represents the stream of events from Amazon Lex V2 to your application. The events are encoded as HTTP/2 data frames.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BadGatewayException</i> <p/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>BadGatewayException</b>: <p/><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DependencyFailedException</i> <p/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DependencyFailedException</b>: <p/><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConflictException</i> Exception thrown when two clients are using the same AWS account, Amazon Lex V2 bot, and session ID.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ConflictException</b>: Exception thrown when two clients are using the same AWS account, Amazon Lex V2 bot, and session ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InternalServerException</i> An error occurred with Amazon Lex V2.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>InternalServerException</b>: An error occurred with Amazon Lex V2.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ThrottlingException</i> Exception thrown when your application exceeds the maximum number of concurrent requests. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ThrottlingException</b>: Exception thrown when your application exceeds the maximum number of concurrent requests. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ValidationException</i> Exception thrown when one or more parameters could not be validated. The <code>message</code> contains the name of the field that isn't valid.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ValidationException</b>: Exception thrown when one or more parameters could not be validated. The <code>message</code> contains the name of the field that isn't valid.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceNotFoundException</i> Exception thrown if one of the input parameters points to a resource that does not exist. For example, if the bot ID specified does not exist.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ResourceNotFoundException</b>: Exception thrown if one of the input parameters points to a resource that does not exist. For example, if the bot ID specified does not exist.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccessDeniedException</i> Exception thrown when the credentials passed with the request are invalid or expired. Also thrown when the credentials in the request do not have permission to access the <code>StartConversation</code> operation.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AccessDeniedException</b>: Exception thrown when the credentials passed with the request are invalid or expired. Also thrown when the credentials in the request do not have permission to access the <code>StartConversation</code> operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HeartbeatEvent</i> Event that Amazon Lex V2 sends to indicate that the stream is still open between the client application and Amazon Lex V2 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>HeartbeatEvent</b>: Event that Amazon Lex V2 sends to indicate that the stream is still open between the client application and Amazon Lex V2 <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AudioResponseEvent</i> An event sent from Amazon Lex V2 to your client application containing audio to play to the user. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AudioResponseEvent</b>: An event sent from Amazon Lex V2 to your client application containing audio to play to the user. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TextResponseEvent</i> The event sent from Amazon Lex V2 to your application with text to present to the user.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TextResponseEvent</b>: The event sent from Amazon Lex V2 to your application with text to present to the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IntentResultEvent</i> Event sent from Amazon Lex V2 to the client application containing the current state of the conversation between the user and Amazon Lex V2.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>IntentResultEvent</b>: Event sent from Amazon Lex V2 to the client application containing the current state of the conversation between the user and Amazon Lex V2.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TranscriptEvent</i> Event sent from Amazon Lex V2 to your client application that contains a transcript of voice audio. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TranscriptEvent</b>: Event sent from Amazon Lex V2 to your client application that contains a transcript of voice audio. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PlaybackInterruptionEvent</i> Event sent from Amazon Lex V2 to indicate to the client application should stop playback of audio. For example, if the client is playing a prompt that asks for the user's telephone number, the user might start to say the phone number before the prompt is complete. Amazon Lex V2 sends this event to the client application to indicate that the user is responding and that Amazon Lex V2 is processing their input.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PlaybackInterruptionEvent</b>: Event sent from Amazon Lex V2 to indicate to the client application should stop playback of audio. For example, if the client is playing a prompt that asks for the user's telephone number, the user might start to say the phone number before the prompt is complete. Amazon Lex V2 sends this event to the client application to indicate that the user is responding and that Amazon Lex V2 is processing their input.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>eventId</i> A unique identifier of the event sent by Amazon Lex V2. The identifier is in the form <code>RESPONSE-N</code>, where N is a number starting with one and incremented for each event sent by Amazon Lex V2 in the current session.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>causedByEventId</i> The identifier of the event that contained the audio, DTMF, or text that caused the interruption.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>eventReason</i> Indicates the type of user input that Amazon Lex V2 detected.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>eventId</i> A unique identifier of the event sent by Amazon Lex V2. The identifier is in the form <code>RESPONSE-N</code>, where N is a number starting with one and incremented for each event sent by Amazon Lex V2 in the current session.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>transcript</i> The transcript of the voice audio from the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>interpretations</i> A list of intents that Amazon Lex V2 determined might satisfy the user's utterance. Each interpretation includes the intent, a score that indicates how confident Amazon Lex V2 is that the interpretation is the correct one, and an optional sentiment response that indicates the sentiment expressed in the utterance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>inputMode</i> Indicates whether the input to the operation was text or speech.<br/>The state of the user's session with Amazon Lex V2.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>sessionState</b>: The state of the user's session with Amazon Lex V2.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>eventId</i> A unique identifier of the event sent by Amazon Lex V2. The identifier is in the form <code>RESPONSE-N</code>, where N is a number starting with one and incremented for each event sent by Amazon Lex V2 in the current session.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>messages</i> A list of messages to send to the user. Messages are ordered based on the order that you returned the messages from your Lambda function or the order that the messages are defined in the bot.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>eventId</i> A unique identifier of the event sent by Amazon Lex V2. The identifier is in the form <code>RESPONSE-N</code>, where N is a number starting with one and incremented for each event sent by Amazon Lex V2 in the current session.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>contentType</i> The encoding of the audio chunk. This is the same as the encoding configure in the <code>contentType</code> field of the <code>ConfigurationEvent</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>audioChunk</i> A chunk of the audio to play. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>eventId</i> A unique identifier of the event sent by Amazon Lex V2. The identifier is in the form <code>RESPONSE-N</code>, where N is a number starting with one and incremented for each event sent by Amazon Lex V2 in the current session.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>message</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>message</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>message</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>message</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>message</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>message</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>message</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>message</i> <br/>        """
        pass





class LicenseManager(BaseClient):
    r"""<fullname> AWS License Manager </fullname> AWS License Manager makes it easier to manage licenses from software vendors across multiple AWS accounts and on-premises servers."""


    class ListAssociationsForLicenseConfigurationPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_associations_for_license_configuration` for valid parameters"""
            pass
    class ListLicenseConfigurationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_license_configurations` for valid parameters"""
            pass
    class ListLicenseSpecificationsForResourcePaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_license_specifications_for_resource` for valid parameters"""
            pass
    class ListResourceInventoryPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_resource_inventory` for valid parameters"""
            pass
    class ListUsageForLicenseConfigurationPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_usage_for_license_configuration` for valid parameters"""
            pass


    class AcceptGrantRequest(Mapping):
        pass
    
    class AcceptGrantResponse(Mapping):
        pass
    
    class CheckInLicenseRequest(Mapping):
        pass
    
    class CheckInLicenseResponse(Mapping):
        pass
    
    class CheckoutBorrowLicenseRequest(Mapping):
        pass
    
    class CheckoutBorrowLicenseResponse(Mapping):
        pass
    
    class EntitlementData(Mapping):
        pass
    
    class Metadata(Mapping):
        pass
    
    class CheckoutLicenseRequest(Mapping):
        pass
    
    class CheckoutLicenseResponse(Mapping):
        pass
    
    class CreateGrantRequest(Mapping):
        pass
    
    class CreateGrantResponse(Mapping):
        pass
    
    class Arn(object):
        pass
    
    class AllowedOperation(object):
        pass
    
    class CreateGrantVersionRequest(Mapping):
        pass
    
    class CreateGrantVersionResponse(Mapping):
        pass
    
    class CreateLicenseRequest(Mapping):
        pass
    
    class CreateLicenseResponse(Mapping):
        pass
    
    class Issuer(Mapping):
        pass
    
    class DatetimeRange(Mapping):
        pass
    
    class Entitlement(Mapping):
        pass
    
    class ConsumptionConfiguration(Mapping):
        pass
    
    class CreateLicenseConfigurationRequest(Mapping):
        pass
    
    class CreateLicenseConfigurationResponse(Mapping):
        pass
    
    class BoxLong(object):
        pass
    
    class BoxBoolean(object):
        pass
    
    class String(object):
        pass
    
    class Tag(Mapping):
        pass
    
    class ProductInformation(Mapping):
        pass
    
    class CreateLicenseManagerReportGeneratorRequest(Mapping):
        pass
    
    class CreateLicenseManagerReportGeneratorResponse(Mapping):
        pass
    
    class ReportType(object):
        pass
    
    class ReportContext(Mapping):
        pass
    
    class ReportFrequency(Mapping):
        pass
    
    class CreateLicenseVersionRequest(Mapping):
        pass
    
    class CreateLicenseVersionResponse(Mapping):
        pass
    
    class CreateTokenRequest(Mapping):
        pass
    
    class CreateTokenResponse(Mapping):
        pass
    
    class DeleteGrantRequest(Mapping):
        pass
    
    class DeleteGrantResponse(Mapping):
        pass
    
    class DeleteLicenseRequest(Mapping):
        pass
    
    class DeleteLicenseResponse(Mapping):
        pass
    
    class DeleteLicenseConfigurationRequest(Mapping):
        pass
    
    class DeleteLicenseConfigurationResponse(Mapping):
        pass
    
    class DeleteLicenseManagerReportGeneratorRequest(Mapping):
        pass
    
    class DeleteLicenseManagerReportGeneratorResponse(Mapping):
        pass
    
    class DeleteTokenRequest(Mapping):
        pass
    
    class DeleteTokenResponse(Mapping):
        pass
    
    class ExtendLicenseConsumptionRequest(Mapping):
        pass
    
    class ExtendLicenseConsumptionResponse(Mapping):
        pass
    
    class Boolean(object):
        pass
    
    class GetAccessTokenRequest(Mapping):
        pass
    
    class GetAccessTokenResponse(Mapping):
        pass
    
    class GetGrantRequest(Mapping):
        pass
    
    class GetGrantResponse(Mapping):
        pass
    
    class GetLicenseRequest(Mapping):
        pass
    
    class GetLicenseResponse(Mapping):
        pass
    
    class GetLicenseConfigurationRequest(Mapping):
        pass
    
    class GetLicenseConfigurationResponse(Mapping):
        pass
    
    class GetLicenseManagerReportGeneratorRequest(Mapping):
        pass
    
    class GetLicenseManagerReportGeneratorResponse(Mapping):
        pass
    
    class GetLicenseUsageRequest(Mapping):
        pass
    
    class GetLicenseUsageResponse(Mapping):
        pass
    
    class GetServiceSettingsRequest(Mapping):
        pass
    
    class GetServiceSettingsResponse(Mapping):
        pass
    
    class ListAssociationsForLicenseConfigurationRequest(Mapping):
        pass
    
    class ListAssociationsForLicenseConfigurationResponse(Mapping):
        pass
    
    class ListDistributedGrantsRequest(Mapping):
        pass
    
    class ListDistributedGrantsResponse(Mapping):
        pass
    
    class Filter(Mapping):
        pass
    
    class ListFailuresForLicenseConfigurationOperationsRequest(Mapping):
        pass
    
    class ListFailuresForLicenseConfigurationOperationsResponse(Mapping):
        pass
    
    class ListLicenseConfigurationsRequest(Mapping):
        pass
    
    class ListLicenseConfigurationsResponse(Mapping):
        pass
    
    class ListLicenseManagerReportGeneratorsRequest(Mapping):
        pass
    
    class ListLicenseManagerReportGeneratorsResponse(Mapping):
        pass
    
    class ListLicenseSpecificationsForResourceRequest(Mapping):
        pass
    
    class ListLicenseSpecificationsForResourceResponse(Mapping):
        pass
    
    class ListLicenseVersionsRequest(Mapping):
        pass
    
    class ListLicenseVersionsResponse(Mapping):
        pass
    
    class ListLicensesRequest(Mapping):
        pass
    
    class ListLicensesResponse(Mapping):
        pass
    
    class ListReceivedGrantsRequest(Mapping):
        pass
    
    class ListReceivedGrantsResponse(Mapping):
        pass
    
    class ListReceivedLicensesRequest(Mapping):
        pass
    
    class ListReceivedLicensesResponse(Mapping):
        pass
    
    class ListResourceInventoryRequest(Mapping):
        pass
    
    class ListResourceInventoryResponse(Mapping):
        pass
    
    class InventoryFilter(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class ListTokensRequest(Mapping):
        pass
    
    class ListTokensResponse(Mapping):
        pass
    
    class ListUsageForLicenseConfigurationRequest(Mapping):
        pass
    
    class ListUsageForLicenseConfigurationResponse(Mapping):
        pass
    
    class RejectGrantRequest(Mapping):
        pass
    
    class RejectGrantResponse(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class UpdateLicenseConfigurationRequest(Mapping):
        pass
    
    class UpdateLicenseConfigurationResponse(Mapping):
        pass
    
    class UpdateLicenseManagerReportGeneratorRequest(Mapping):
        pass
    
    class UpdateLicenseManagerReportGeneratorResponse(Mapping):
        pass
    
    class UpdateLicenseSpecificationsForResourceRequest(Mapping):
        pass
    
    class UpdateLicenseSpecificationsForResourceResponse(Mapping):
        pass
    
    class LicenseSpecification(Mapping):
        pass
    
    class UpdateServiceSettingsRequest(Mapping):
        pass
    
    class UpdateServiceSettingsResponse(Mapping):
        pass
    
    class OrganizationConfiguration(Mapping):
        pass
    
    def accept_grant(self, GrantArn: str) -> AcceptGrantResponse:
        r"""Accepts the specified grant.

        :param self:
        :param GrantArn:  Amazon Resource Name (ARN) of the grant.<br/>
        :return: Version:  Grant version.<br/>Status:  Grant status.<br/>GrantArn:  Grant ARN.<br/>        """
        pass

    def check_in_license(self, LicenseConsumptionToken: str, Beneficiary: str=None) -> CheckInLicenseResponse:
        r"""Checks in the specified license. Check in a license when it is no longer in use.

        :param self:
        :param Beneficiary:  License beneficiary.<br/>LicenseConsumptionToken:  License consumption token.<br/>
        :return:         """
        pass

    def checkout_borrow_license(self, ClientToken: str, DigitalSignatureMethod: str, Entitlements: List[EntitlementData], LicenseArn: str, NodeId: str=None, CheckoutMetadata: List[Metadata]=None) -> CheckoutBorrowLicenseResponse:
        r"""Checks out the specified license for offline use.

        :param self:
        :param ClientToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.<br/>CheckoutMetadata:  Information about constraints.<br/>NodeId:  Node ID.<br/>DigitalSignatureMethod:  Digital signature method. The possible value is JSON Web Signature (JWS) algorithm PS384. For more information, see <a href="https://tools.ietf.org/html/rfc7518#section-3.5">RFC 7518 Digital Signature with RSASSA-PSS</a>.<br/>Entitlements:  License entitlements. Partial checkouts are not supported.<br/>LicenseArn:  Amazon Resource Name (ARN) of the license. The license must use the borrow consumption configuration.<br/>
        :return: CheckoutMetadata:  Information about constraints.<br/>Expiration:  Date and time at which the license checkout expires.<br/>IssuedAt:  Date and time at which the license checkout is issued.<br/>SignedToken:  Signed token.<br/>NodeId:  Node ID.<br/>EntitlementsAllowed:  Allowed license entitlements.<br/>LicenseConsumptionToken:  License consumption token.<br/>LicenseArn:  Amazon Resource Name (ARN) of the license.<br/>        """
        pass

    def checkout_license(self, ClientToken: str, Entitlements: List[EntitlementData], KeyFingerprint: str, CheckoutType: str, ProductSKU: str, Beneficiary: str=None, NodeId: str=None) -> CheckoutLicenseResponse:
        r"""Checks out the specified license.

        :param self:
        :param NodeId:  Node ID.<br/>Beneficiary:  License beneficiary.<br/>ClientToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.<br/>Entitlements:  License entitlements.<br/>KeyFingerprint:  Key fingerprint identifying the license.<br/>CheckoutType:  Checkout type.<br/>ProductSKU:  Product SKU.<br/>
        :return: Expiration:  Date and time at which the license checkout expires.<br/>IssuedAt:  Date and time at which the license checkout is issued.<br/>NodeId:  Node ID.<br/>SignedToken:  Signed token.<br/>EntitlementsAllowed:  Allowed license entitlements.<br/>LicenseConsumptionToken:  License consumption token.<br/>CheckoutType:  Checkout type.<br/>        """
        pass

    def create_grant(self, AllowedOperations: List[AllowedOperation], HomeRegion: str, Principals: List[Arn], LicenseArn: str, GrantName: str, ClientToken: str) -> CreateGrantResponse:
        r"""Creates a grant for the specified license. A grant shares the use of license entitlements with specific AWS accounts.

        :param self:
        :param AllowedOperations:  Allowed operations for the grant.<br/>HomeRegion:  Home Region of the grant.<br/>Principals:  The grant principals.<br/>LicenseArn:  Amazon Resource Name (ARN) of the license.<br/>GrantName:  Grant name.<br/>ClientToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.<br/>
        :return: Version:  Grant version.<br/>Status:  Grant status.<br/>GrantArn:  Grant ARN.<br/>        """
        pass

    def create_grant_version(self, GrantArn: str, ClientToken: str, GrantName: str=None, AllowedOperations: List[AllowedOperation]=None, Status: str=None, StatusReason: str=None, SourceVersion: str=None) -> CreateGrantVersionResponse:
        r"""Creates a new version of the specified grant.

        :param self:
        :param SourceVersion:  Current version of the grant.<br/>StatusReason:  <br/>Status:  Grant status.<br/>AllowedOperations:  Allowed operations for the grant.<br/>GrantName:  Grant name.<br/>GrantArn:  Amazon Resource Name (ARN) of the grant.<br/>ClientToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.<br/>
        :return: Version:  New version of the grant.<br/>Status:  Grant status.<br/>GrantArn:  Grant ARN.<br/>        """
        pass

    def create_license(self, ClientToken: str, ConsumptionConfiguration: ConsumptionConfiguration, Beneficiary: str, Entitlements: List[Entitlement], Validity: DatetimeRange, HomeRegion: str, Issuer: Issuer, ProductSKU: str, ProductName: str, LicenseName: str, LicenseMetadata: List[Metadata]=None) -> CreateLicenseResponse:
        r"""Creates a license.

        :param self:
        :param ClientToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.<br/>LicenseMetadata:  Information about the license.<br/>ConsumptionConfiguration:  Configuration for consumption of the license. Choose a provisional configuration for workloads running with continuous connectivity. Choose a borrow configuration for workloads with offline usage.:<br/>Beneficiary:  License beneficiary.<br/>Entitlements:  License entitlements.<br/>Validity:  Date and time range during which the license is valid, in ISO8601-UTC format.:<br/>HomeRegion:  Home Region for the license.<br/>Issuer:  License issuer.:<br/>ProductSKU:  Product SKU.<br/>ProductName:  Product name.<br/>LicenseName:  License name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SignKey</i> Asymmetric CMK from AWS Key Management Service. The CMK must have a key usage of sign and verify, and support the RSASSA-PSS SHA-256 signing algorithm.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> Issuer name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>End</i> End of the time range.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Begin</i> Start of the time range.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BorrowConfiguration</i> Details about a borrow configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>BorrowConfiguration</b>: Details about a borrow configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProvisionalConfiguration</i> Details about a provisional configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ProvisionalConfiguration</b>: Details about a provisional configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RenewType</i> Renewal frequency.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxTimeToLiveInMinutes</i> Maximum time for the provisional configuration, in minutes.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxTimeToLiveInMinutes</i> Maximum time for the borrow configuration, in minutes.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowEarlyCheckIn</i> Indicates whether early check-ins are allowed.<br/>
        :return: Version:  License version.<br/>Status:  License status.<br/>LicenseArn:  Amazon Resource Name (ARN) of the license.<br/>        """
        pass

    def create_license_configuration(self, LicenseCountingType: str, Name: str, Description: str=None, LicenseCount: BoxLong=None, LicenseCountHardLimit: BoxBoolean=None, LicenseRules: List[String]=None, Tags: List[Tag]=None, DisassociateWhenNotFound: BoxBoolean=None, ProductInformationList: List[ProductInformation]=None) -> CreateLicenseConfigurationResponse:
        r"""Creates a license configuration. A license configuration is an abstraction of a customer license agreement that can be consumed and enforced by License Manager. Components include specifications for the license type (licensing by instance, socket, CPU, or vCPU), allowed tenancy (shared tenancy, Dedicated Instance, Dedicated Host, or all of these), license affinity to host (how long a license must be associated with a host), and the number of licenses purchased and used.

        :param self:
        :param ProductInformationList:  Product information.<br/>DisassociateWhenNotFound:  When true, disassociates a resource when software is uninstalled.<br/>Tags:  Tags to add to the license configuration.<br/>LicenseRules:  License rules. The syntax is #name=value (for example, #allowedTenancy=EC2-DedicatedHost). The available rules vary by dimension, as follows. <ul> <li>  <code>Cores</code> dimension: <code>allowedTenancy</code> | <code>licenseAffinityToHost</code> | <code>maximumCores</code> | <code>minimumCores</code>  </li> <li>  <code>Instances</code> dimension: <code>allowedTenancy</code> | <code>maximumCores</code> | <code>minimumCores</code> | <code>maximumSockets</code> | <code>minimumSockets</code> | <code>maximumVcpus</code> | <code>minimumVcpus</code>  </li> <li>  <code>Sockets</code> dimension: <code>allowedTenancy</code> | <code>licenseAffinityToHost</code> | <code>maximumSockets</code> | <code>minimumSockets</code>  </li> <li>  <code>vCPUs</code> dimension: <code>allowedTenancy</code> | <code>honorVcpuOptimization</code> | <code>maximumVcpus</code> | <code>minimumVcpus</code>  </li> </ul> The unit for <code>licenseAffinityToHost</code> is days and the range is 1 to 180. The possible values for <code>allowedTenancy</code> are <code>EC2-Default</code>, <code>EC2-DedicatedHost</code>, and <code>EC2-DedicatedInstance</code>. The possible values for <code>honorVcpuOptimization</code> are <code>True</code> and <code>False</code>.<br/>LicenseCountHardLimit:  Indicates whether hard or soft license enforcement is used. Exceeding a hard limit blocks the launch of new instances.<br/>LicenseCount:  Number of licenses managed by the license configuration.<br/>LicenseCountingType:  Dimension used to track the license inventory.<br/>Description:  Description of the license configuration.<br/>Name:  Name of the license configuration.<br/>
        :return: LicenseConfigurationArn:  Amazon Resource Name (ARN) of the license configuration.<br/>        """
        pass

    def create_license_manager_report_generator(self, ClientToken: str, ReportFrequency: ReportFrequency, ReportContext: ReportContext, Type: List[ReportType], ReportGeneratorName: str, Description: str=None, Tags: List[Tag]=None) -> CreateLicenseManagerReportGeneratorResponse:
        r"""Creates a new report generator.

        :param self:
        :param Tags:  Tags to add to the report generator.<br/>Description:  Description of the report generator.<br/>ClientToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.<br/>ReportFrequency:  Frequency by which reports are generated. Reports can be generated daily, monthly, or weekly.:<br/>ReportContext:  Defines the type of license configuration the report generator tracks.:<br/>Type:  Type of reports to generate. The following report types an be generated: <ul> <li> License configuration report - Reports on the number and details of consumed licenses for a license configuration. </li> <li> Resource report - Reports on the tracked licenses and resource consumption for a license configuration. </li> </ul><br/>ReportGeneratorName:  Name of the report generator.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>licenseConfigurationArns</i> Amazon Resource Number (ARN) of the license configuration that this generator reports on.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>period</i> Time period between each report. The period can be daily, weekly, or monthly.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>value</i> Number of times within the frequency period that a report will be generated. Currently only <code>1</code> is supported.<br/>
        :return: LicenseManagerReportGeneratorArn:  The Amazon Resource Number (ARN) of the new report generator.<br/>        """
        pass

    def create_license_version(self, ClientToken: str, Status: str, ConsumptionConfiguration: ConsumptionConfiguration, Entitlements: List[Entitlement], Validity: DatetimeRange, HomeRegion: str, Issuer: Issuer, ProductName: str, LicenseName: str, LicenseArn: str, LicenseMetadata: List[Metadata]=None, SourceVersion: str=None) -> CreateLicenseVersionResponse:
        r"""Creates a new version of the specified license.

        :param self:
        :param SourceVersion:  Current version of the license.<br/>ClientToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.<br/>Status:  License status.<br/>ConsumptionConfiguration:  Configuration for consumption of the license. Choose a provisional configuration for workloads running with continuous connectivity. Choose a borrow configuration for workloads with offline usage.:<br/>Entitlements:  License entitlements.<br/>LicenseMetadata:  Information about the license.<br/>Validity:  Date and time range during which the license is valid, in ISO8601-UTC format.:<br/>HomeRegion:  Home Region of the license.<br/>Issuer:  License issuer.:<br/>ProductName:  Product name.<br/>LicenseName:  License name.<br/>LicenseArn:  Amazon Resource Name (ARN) of the license.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SignKey</i> Asymmetric CMK from AWS Key Management Service. The CMK must have a key usage of sign and verify, and support the RSASSA-PSS SHA-256 signing algorithm.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> Issuer name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>End</i> End of the time range.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Begin</i> Start of the time range.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BorrowConfiguration</i> Details about a borrow configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>BorrowConfiguration</b>: Details about a borrow configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProvisionalConfiguration</i> Details about a provisional configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ProvisionalConfiguration</b>: Details about a provisional configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RenewType</i> Renewal frequency.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxTimeToLiveInMinutes</i> Maximum time for the provisional configuration, in minutes.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxTimeToLiveInMinutes</i> Maximum time for the borrow configuration, in minutes.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowEarlyCheckIn</i> Indicates whether early check-ins are allowed.<br/>
        :return: Status:  License status.<br/>Version:  New version of the license.<br/>LicenseArn:  License ARN.<br/>        """
        pass

    def create_token(self, ClientToken: str, LicenseArn: str, RoleArns: List[Arn]=None, ExpirationInDays: int=None, TokenProperties: List[String]=None) -> CreateTokenResponse:
        r"""Creates a long-lived token. A refresh token is a JWT token used to get an access token. With an access token, you can call AssumeRoleWithWebIdentity to get role credentials that you can use to call License Manager to manage the specified license.

        :param self:
        :param ClientToken:  Idempotency token, valid for 10 minutes.<br/>TokenProperties:  Data specified by the caller to be included in the JWT token. The data is mapped to the amr claim of the JWT token.<br/>ExpirationInDays:  Token expiration, in days, counted from token creation. The default is 365 days.<br/>RoleArns:  Amazon Resource Name (ARN) of the IAM roles to embed in the token. License Manager does not check whether the roles are in use.<br/>LicenseArn:  Amazon Resource Name (ARN) of the license. The ARN is mapped to the aud claim of the JWT token.<br/>
        :return: Token:  Refresh token, encoded as a JWT token.<br/>TokenType:  Token type.<br/>TokenId:  Token ID.<br/>        """
        pass

    def delete_grant(self, Version: str, GrantArn: str, StatusReason: str=None) -> DeleteGrantResponse:
        r"""Deletes the specified grant.

        :param self:
        :param Version:  Current version of the grant.<br/>StatusReason:  <br/>GrantArn:  Amazon Resource Name (ARN) of the grant.<br/>
        :return: Version:  Grant version.<br/>Status:  Grant status.<br/>GrantArn:  Grant ARN.<br/>        """
        pass

    def delete_license(self, SourceVersion: str, LicenseArn: str) -> DeleteLicenseResponse:
        r"""Deletes the specified license.

        :param self:
        :param SourceVersion:  Current version of the license.<br/>LicenseArn:  Amazon Resource Name (ARN) of the license.<br/>
        :return: DeletionDate:  Date on which the license is deleted.<br/>Status:  License status.<br/>        """
        pass

    def delete_license_configuration(self, LicenseConfigurationArn: str) -> DeleteLicenseConfigurationResponse:
        r"""Deletes the specified license configuration. You cannot delete a license configuration that is in use.

        :param self:
        :param LicenseConfigurationArn:  ID of the license configuration.<br/>
        :return:         """
        pass

    def delete_license_manager_report_generator(self, LicenseManagerReportGeneratorArn: str) -> DeleteLicenseManagerReportGeneratorResponse:
        r"""Delete an existing report generator. This action deletes the report generator, which stops it from generating future reports and cannot be reversed. However, the previous reports from this generator will remain in your S3 bucket.

        :param self:
        :param LicenseManagerReportGeneratorArn:  Amazon Resource Number (ARN) of the report generator that will be deleted.<br/>
        :return:         """
        pass

    def delete_token(self, TokenId: str) -> DeleteTokenResponse:
        r"""Deletes the specified token. Must be called in the license home Region.

        :param self:
        :param TokenId:  Token ID.<br/>
        :return:         """
        pass

    def extend_license_consumption(self, LicenseConsumptionToken: str, DryRun: Boolean=None) -> ExtendLicenseConsumptionResponse:
        r"""Extends the expiration date for license consumption.

        :param self:
        :param DryRun:  Checks whether you have the required permissions for the action, without actually making the request. Provides an error response if you do not have the required permissions.<br/>LicenseConsumptionToken:  License consumption token.<br/>
        :return: Expiration:  Date and time at which the license consumption expires.<br/>LicenseConsumptionToken:  License consumption token.<br/>        """
        pass

    def get_access_token(self, Token: str, TokenProperties: List[String]=None) -> GetAccessTokenResponse:
        r"""Gets a temporary access token to use with AssumeRoleWithWebIdentity. Access tokens are valid for one hour.

        :param self:
        :param TokenProperties:  Token properties to validate against those present in the JWT token.<br/>Token:  Refresh token, encoded as a JWT token.<br/>
        :return: AccessToken:  Temporary access token.<br/>        """
        pass

    def get_grant(self, GrantArn: str, Version: str=None) -> GetGrantResponse:
        r"""Gets detailed information about the specified grant.

        :param self:
        :param Version:  Grant version.<br/>GrantArn:  Amazon Resource Name (ARN) of the grant.<br/>
        :return: Grant:  Grant details.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GrantedOperations</i> Granted operations.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> Grant version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusReason</i> Grant status reason.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GrantStatus</i> Grant status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HomeRegion</i> Home Region of the grant.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GranteePrincipalArn</i> The grantee principal ARN.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LicenseArn</i> License ARN.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ParentArn</i> Parent ARN.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GrantName</i> Grant name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GrantArn</i> Amazon Resource Name (ARN) of the grant.<br/>        """
        pass

    def get_license(self, LicenseArn: str, Version: str=None) -> GetLicenseResponse:
        r"""Gets detailed information about the specified license.

        :param self:
        :param Version:  License version.<br/>LicenseArn:  Amazon Resource Name (ARN) of the license.<br/>
        :return: License:  License details.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> License version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreateTime</i> License creation time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LicenseMetadata</i> License metadata.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConsumptionConfiguration</i> Configuration for consumption of the license.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ConsumptionConfiguration</b>: Configuration for consumption of the license.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Entitlements</i> License entitlements.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Beneficiary</i> License beneficiary.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Validity</i> Date and time range during which the license is valid, in ISO8601-UTC format.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Validity</b>: Date and time range during which the license is valid, in ISO8601-UTC format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> License status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HomeRegion</i> Home Region of the license.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Issuer</i> License issuer.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Issuer</b>: License issuer.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProductSKU</i> Product SKU.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProductName</i> Product name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LicenseName</i> License name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LicenseArn</i> Amazon Resource Name (ARN) of the license.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KeyFingerprint</i> Issuer key fingerprint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SignKey</i> Asymmetric CMK from AWS Key Management Service. The CMK must have a key usage of sign and verify, and support the RSASSA-PSS SHA-256 signing algorithm.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> Issuer name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>End</i> End of the time range.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Begin</i> Start of the time range.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RenewType</i> Renewal frequency.<br/>Details about a provisional configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ProvisionalConfiguration</b>: Details about a provisional configuration.        """
        pass

    def get_license_configuration(self, LicenseConfigurationArn: str) -> GetLicenseConfigurationResponse:
        r"""Gets detailed information about the specified license configuration.

        :param self:
        :param LicenseConfigurationArn:  Amazon Resource Name (ARN) of the license configuration.<br/>
        :return: DisassociateWhenNotFound:  When true, disassociates a resource when software is uninstalled.<br/>AutomatedDiscoveryInformation:  Automated discovery information.:<br/>ProductInformationList:  Product information.<br/>Tags:  Tags for the license configuration.<br/>ManagedResourceSummaryList:  Summaries of the managed resources.<br/>ConsumedLicenseSummaryList:  Summaries of the licenses consumed by resources.<br/>OwnerAccountId:  Account ID of the owner of the license configuration.<br/>Status:  License configuration status.<br/>ConsumedLicenses:  Number of licenses assigned to resources.<br/>LicenseCountHardLimit:  Sets the number of available licenses as a hard limit.<br/>LicenseCount:  Number of available licenses.<br/>LicenseRules:  License rules.<br/>LicenseCountingType:  Dimension on which the licenses are counted.<br/>Description:  Description of the license configuration.<br/>Name:  Name of the license configuration.<br/>LicenseConfigurationArn:  Amazon Resource Name (ARN) of the license configuration.<br/>LicenseConfigurationId:  Unique ID for the license configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastRunTime</i> Time that automated discovery last ran.<br/>        """
        pass

    def get_license_manager_report_generator(self, LicenseManagerReportGeneratorArn: str) -> GetLicenseManagerReportGeneratorResponse:
        r"""Gets information on the specified report generator.

        :param self:
        :param LicenseManagerReportGeneratorArn:  mazon Resource Number (ARN) of the report generator to retrieve information on.<br/>
        :return: ReportGenerator:  A report generator that creates periodic reports on your license configurations.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> Tags associated with the report generator.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreateTime</i> Time the report was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Location</i> Details of the S3 bucket that report generator reports are published to.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3Location</b>: Details of the S3 bucket that report generator reports are published to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> Description of the report generator.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReportCreatorAccount</i> The AWS account ID used to create the report generator.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastReportGenerationTime</i> Time the last report was generated at.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastRunFailureReason</i> Failure message for the last report generation attempt.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastRunStatus</i> Status of the last report generation attempt.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LicenseManagerReportGeneratorArn</i> Amazon Resource Number (ARN) of the report generator.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReportFrequency</i> Details on how frequently reports are generated.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ReportFrequency</b>: Details on how frequently reports are generated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReportContext</i> License configuration type this generator reports on.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ReportContext</b>: License configuration type this generator reports on.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReportType</i> Type of reports that are generated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReportGeneratorName</i> Name of the report generator.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>licenseConfigurationArns</i> Amazon Resource Number (ARN) of the license configuration that this generator reports on.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>period</i> Time period between each report. The period can be daily, weekly, or monthly.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>value</i> Number of times within the frequency period that a report will be generated. Currently only <code>1</code> is supported.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>keyPrefix</i> Prefix of the S3 bucket reports are published to.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>bucket</i> Name of the S3 bucket reports are published to.<br/>        """
        pass

    def get_license_usage(self, LicenseArn: str) -> GetLicenseUsageResponse:
        r"""Gets detailed information about the usage of the specified license.

        :param self:
        :param LicenseArn:  Amazon Resource Name (ARN) of the license.<br/>
        :return: LicenseUsage:  License usage details.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EntitlementUsages</i> License entitlement usages.<br/>        """
        pass

    def get_service_settings(self) -> GetServiceSettingsResponse:
        r"""Gets the License Manager settings for the current Region.

        :param self:
        :param 
        :return: LicenseManagerResourceShareArn:  Amazon Resource Name (ARN) of the AWS resource share. The License Manager management account provides member accounts with access to this share.<br/>EnableCrossAccountsDiscovery:  Indicates whether cross-account discovery is enabled.<br/>OrganizationConfiguration:  Indicates whether AWS Organizations is integrated with License Manager for cross-account discovery.:<br/>SnsTopicArn:  SNS topic configured to receive notifications from License Manager.<br/>S3BucketArn:  Regional S3 bucket path for storing reports, license trail event data, discovery data, and so on.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableIntegration</i> Enables AWS Organization integration.<br/>        """
        pass

    def list_associations_for_license_configuration(self, LicenseConfigurationArn: str, MaxResults: int=None, NextToken: str=None) -> ListAssociationsForLicenseConfigurationResponse:
        r"""Lists the resource associations for the specified license configuration. Resource associations need not consume licenses from a license configuration. For example, an AMI or a stopped instance might not consume a license (depending on the license rules).

        :param self:
        :param NextToken:  Token for the next set of results.<br/>MaxResults:  Maximum number of results to return in a single call.<br/>LicenseConfigurationArn:  Amazon Resource Name (ARN) of a license configuration.<br/>
        :return: NextToken:  Token for the next set of results.<br/>LicenseConfigurationAssociations:  Information about the associations for the license configuration.<br/>        """
        pass

    def list_distributed_grants(self, GrantArns: List[Arn]=None, Filters: List[Filter]=None, NextToken: str=None, MaxResults: int=None) -> ListDistributedGrantsResponse:
        r"""Lists the grants distributed for the specified license.

        :param self:
        :param MaxResults:  Maximum number of results to return in a single call.<br/>NextToken:  Token for the next set of results.<br/>Filters:  Filters to scope the results. The following filters are supported: <ul> <li>  <code>LicenseArn</code>  </li> <li>  <code>GrantStatus</code>  </li> <li>  <code>GranteePrincipalARN</code>  </li> <li>  <code>ProductSKU</code>  </li> <li>  <code>LicenseIssuerName</code>  </li> </ul><br/>GrantArns:  Amazon Resource Names (ARNs) of the grants.<br/>
        :return: NextToken:  Token for the next set of results.<br/>Grants:  Distributed grant details.<br/>        """
        pass

    def list_failures_for_license_configuration_operations(self, LicenseConfigurationArn: str, MaxResults: int=None, NextToken: str=None) -> ListFailuresForLicenseConfigurationOperationsResponse:
        r"""Lists the license configuration operations that failed.

        :param self:
        :param NextToken:  Token for the next set of results.<br/>MaxResults:  Maximum number of results to return in a single call.<br/>LicenseConfigurationArn:  Amazon Resource Name of the license configuration.<br/>
        :return: NextToken:  Token for the next set of results.<br/>LicenseOperationFailureList:  License configuration operations that failed.<br/>        """
        pass

    def list_license_configurations(self, LicenseConfigurationArns: List[String]=None, MaxResults: int=None, NextToken: str=None, Filters: List[Filter]=None) -> ListLicenseConfigurationsResponse:
        r"""Lists the license configurations for your account.

        :param self:
        :param Filters:  Filters to scope the results. The following filters and logical operators are supported: <ul> <li>  <code>licenseCountingType</code> - The dimension on which licenses are counted. Possible values are <code>vCPU</code> | <code>Instance</code> | <code>Core</code> | <code>Socket</code>. Logical operators are <code>EQUALS</code> | <code>NOT_EQUALS</code>. </li> <li>  <code>enforceLicenseCount</code> - A Boolean value that indicates whether hard license enforcement is used. Logical operators are <code>EQUALS</code> | <code>NOT_EQUALS</code>. </li> <li>  <code>usagelimitExceeded</code> - A Boolean value that indicates whether the available licenses have been exceeded. Logical operators are <code>EQUALS</code> | <code>NOT_EQUALS</code>. </li> </ul><br/>NextToken:  Token for the next set of results.<br/>MaxResults:  Maximum number of results to return in a single call.<br/>LicenseConfigurationArns:  Amazon Resource Names (ARN) of the license configurations.<br/>
        :return: NextToken:  Token for the next set of results.<br/>LicenseConfigurations:  Information about the license configurations.<br/>        """
        pass

    def list_license_manager_report_generators(self, Filters: List[Filter]=None, NextToken: str=None, MaxResults: int=None) -> ListLicenseManagerReportGeneratorsResponse:
        r"""Lists the report generators for your account.

        :param self:
        :param MaxResults:  Maximum number of results to return in a single call.<br/>NextToken:  Token for the next set of results.<br/>Filters:  Filters to scope the results. The following filters are supported:  <ul> <li>  <code>LicenseConfigurationArn</code>  </li> </ul><br/>
        :return: NextToken:  Token for the next set of results.<br/>ReportGenerators:  A report generator that creates periodic reports on your license configurations.<br/>        """
        pass

    def list_license_specifications_for_resource(self, ResourceArn: str, MaxResults: int=None, NextToken: str=None) -> ListLicenseSpecificationsForResourceResponse:
        r"""Describes the license configurations for the specified resource.

        :param self:
        :param NextToken:  Token for the next set of results.<br/>MaxResults:  Maximum number of results to return in a single call.<br/>ResourceArn:  Amazon Resource Name (ARN) of a resource that has an associated license configuration.<br/>
        :return: NextToken:  Token for the next set of results.<br/>LicenseSpecifications:  License configurations associated with a resource.<br/>        """
        pass

    def list_license_versions(self, LicenseArn: str, NextToken: str=None, MaxResults: int=None) -> ListLicenseVersionsResponse:
        r"""Lists all versions of the specified license.

        :param self:
        :param MaxResults:  Maximum number of results to return in a single call.<br/>NextToken:  Token for the next set of results.<br/>LicenseArn:  Amazon Resource Name (ARN) of the license.<br/>
        :return: NextToken:  Token for the next set of results.<br/>Licenses:  License details.<br/>        """
        pass

    def list_licenses(self, LicenseArns: List[Arn]=None, Filters: List[Filter]=None, NextToken: str=None, MaxResults: int=None) -> ListLicensesResponse:
        r"""Lists the licenses for your account.

        :param self:
        :param MaxResults:  Maximum number of results to return in a single call.<br/>NextToken:  Token for the next set of results.<br/>Filters:  Filters to scope the results. The following filters are supported: <ul> <li>  <code>Beneficiary</code>  </li> <li>  <code>ProductSKU</code>  </li> <li>  <code>Fingerprint</code>  </li> <li>  <code>Status</code>  </li> </ul><br/>LicenseArns:  Amazon Resource Names (ARNs) of the licenses.<br/>
        :return: NextToken:  Token for the next set of results.<br/>Licenses:  License details.<br/>        """
        pass

    def list_received_grants(self, GrantArns: List[Arn]=None, Filters: List[Filter]=None, NextToken: str=None, MaxResults: int=None) -> ListReceivedGrantsResponse:
        r"""Lists grants that are received but not accepted.

        :param self:
        :param MaxResults:  Maximum number of results to return in a single call.<br/>NextToken:  Token for the next set of results.<br/>Filters:  Filters to scope the results. The following filters are supported: <ul> <li>  <code>ProductSKU</code>  </li> <li>  <code>LicenseIssuerName</code>  </li> <li>  <code>LicenseArn</code>  </li> <li>  <code>GrantStatus</code>  </li> <li>  <code>GranterAccountId</code>  </li> </ul><br/>GrantArns:  Amazon Resource Names (ARNs) of the grants.<br/>
        :return: NextToken:  Token for the next set of results.<br/>Grants:  Received grant details.<br/>        """
        pass

    def list_received_licenses(self, LicenseArns: List[Arn]=None, Filters: List[Filter]=None, NextToken: str=None, MaxResults: int=None) -> ListReceivedLicensesResponse:
        r"""Lists received licenses.

        :param self:
        :param MaxResults:  Maximum number of results to return in a single call.<br/>NextToken:  Token for the next set of results.<br/>Filters:  Filters to scope the results. The following filters are supported: <ul> <li>  <code>ProductSKU</code>  </li> <li>  <code>Status</code>  </li> <li>  <code>Fingerprint</code>  </li> <li>  <code>IssuerName</code>  </li> <li>  <code>Beneficiary</code>  </li> </ul><br/>LicenseArns:  Amazon Resource Names (ARNs) of the licenses.<br/>
        :return: NextToken:  Token for the next set of results.<br/>Licenses:  Received license details.<br/>        """
        pass

    def list_resource_inventory(self, MaxResults: int=None, NextToken: str=None, Filters: List[InventoryFilter]=None) -> ListResourceInventoryResponse:
        r"""Lists resources managed using Systems Manager inventory.

        :param self:
        :param Filters:  Filters to scope the results. The following filters and logical operators are supported: <ul> <li>  <code>account_id</code> - The ID of the AWS account that owns the resource. Logical operators are <code>EQUALS</code> | <code>NOT_EQUALS</code>. </li> <li>  <code>application_name</code> - The name of the application. Logical operators are <code>EQUALS</code> | <code>BEGINS_WITH</code>. </li> <li>  <code>license_included</code> - The type of license included. Logical operators are <code>EQUALS</code> | <code>NOT_EQUALS</code>. Possible values are <code>sql-server-enterprise</code> | <code>sql-server-standard</code> | <code>sql-server-web</code> | <code>windows-server-datacenter</code>. </li> <li>  <code>platform</code> - The platform of the resource. Logical operators are <code>EQUALS</code> | <code>BEGINS_WITH</code>. </li> <li>  <code>resource_id</code> - The ID of the resource. Logical operators are <code>EQUALS</code> | <code>NOT_EQUALS</code>. </li> <li>  <code>tag:&lt;key&gt;</code> - The key/value combination of a tag assigned to the resource. Logical operators are <code>EQUALS</code> (single account) or <code>EQUALS</code> | <code>NOT_EQUALS</code> (cross account). </li> </ul><br/>NextToken:  Token for the next set of results.<br/>MaxResults:  Maximum number of results to return in a single call.<br/>
        :return: NextToken:  Token for the next set of results.<br/>ResourceInventoryList:  Information about the resources.<br/>        """
        pass

    def list_tags_for_resource(self, ResourceArn: str) -> ListTagsForResourceResponse:
        r"""Lists the tags for the specified license configuration.

        :param self:
        :param ResourceArn:  Amazon Resource Name (ARN) of the license configuration.<br/>
        :return: Tags:  Information about the tags.<br/>        """
        pass

    def list_tokens(self, TokenIds: List[String]=None, Filters: List[Filter]=None, NextToken: str=None, MaxResults: int=None) -> ListTokensResponse:
        r"""Lists your tokens.

        :param self:
        :param MaxResults:  Maximum number of results to return in a single call.<br/>NextToken:  Token for the next set of results.<br/>Filters:  Filters to scope the results. The following filter is supported: <ul> <li>  <code>LicenseArns</code>  </li> </ul><br/>TokenIds:  Token IDs.<br/>
        :return: NextToken:  Token for the next set of results.<br/>Tokens:  Received token details.<br/>        """
        pass

    def list_usage_for_license_configuration(self, LicenseConfigurationArn: str, MaxResults: int=None, NextToken: str=None, Filters: List[Filter]=None) -> ListUsageForLicenseConfigurationResponse:
        r"""Lists all license usage records for a license configuration, displaying license consumption details by resource at a selected point in time. Use this action to audit the current license consumption for any license inventory and configuration.

        :param self:
        :param Filters:  Filters to scope the results. The following filters and logical operators are supported: <ul> <li>  <code>resourceArn</code> - The ARN of the license configuration resource. Logical operators are <code>EQUALS</code> | <code>NOT_EQUALS</code>. </li> <li>  <code>resourceType</code> - The resource type (<code>EC2_INSTANCE</code> | <code>EC2_HOST</code> | <code>EC2_AMI</code> | <code>SYSTEMS_MANAGER_MANAGED_INSTANCE</code>). Logical operators are <code>EQUALS</code> | <code>NOT_EQUALS</code>. </li> <li>  <code>resourceAccount</code> - The ID of the account that owns the resource. Logical operators are <code>EQUALS</code> | <code>NOT_EQUALS</code>. </li> </ul><br/>NextToken:  Token for the next set of results.<br/>MaxResults:  Maximum number of results to return in a single call.<br/>LicenseConfigurationArn:  Amazon Resource Name (ARN) of the license configuration.<br/>
        :return: NextToken:  Token for the next set of results.<br/>LicenseConfigurationUsageList:  Information about the license configurations.<br/>        """
        pass

    def reject_grant(self, GrantArn: str) -> RejectGrantResponse:
        r"""Rejects the specified grant.

        :param self:
        :param GrantArn:  Amazon Resource Name (ARN) of the grant.<br/>
        :return: Version:  Grant version.<br/>Status:  Grant status.<br/>GrantArn:  Grant ARN.<br/>        """
        pass

    def tag_resource(self, Tags: List[Tag], ResourceArn: str) -> TagResourceResponse:
        r"""Adds the specified tags to the specified license configuration.

        :param self:
        :param Tags:  One or more tags.<br/>ResourceArn:  Amazon Resource Name (ARN) of the license configuration.<br/>
        :return:         """
        pass

    def untag_resource(self, TagKeys: List[String], ResourceArn: str) -> UntagResourceResponse:
        r"""Removes the specified tags from the specified license configuration.

        :param self:
        :param TagKeys:  Keys identifying the tags to remove.<br/>ResourceArn:  Amazon Resource Name (ARN) of the license configuration.<br/>
        :return:         """
        pass

    def update_license_configuration(self, LicenseConfigurationArn: str, LicenseConfigurationStatus: str=None, LicenseRules: List[String]=None, LicenseCount: BoxLong=None, LicenseCountHardLimit: BoxBoolean=None, Name: str=None, Description: str=None, ProductInformationList: List[ProductInformation]=None, DisassociateWhenNotFound: BoxBoolean=None) -> UpdateLicenseConfigurationResponse:
        r"""Modifies the attributes of an existing license configuration.

        :param self:
        :param DisassociateWhenNotFound:  When true, disassociates a resource when software is uninstalled.<br/>ProductInformationList:  New product information.<br/>Description:  New description of the license configuration.<br/>Name:  New name of the license configuration.<br/>LicenseCountHardLimit:  New hard limit of the number of available licenses.<br/>LicenseCount:  New number of licenses managed by the license configuration.<br/>LicenseRules:  New license rule. The only rule that you can add after you create a license configuration is licenseAffinityToHost.<br/>LicenseConfigurationStatus:  New status of the license configuration.<br/>LicenseConfigurationArn:  Amazon Resource Name (ARN) of the license configuration.<br/>
        :return:         """
        pass

    def update_license_manager_report_generator(self, ClientToken: str, ReportFrequency: ReportFrequency, ReportContext: ReportContext, Type: List[ReportType], ReportGeneratorName: str, LicenseManagerReportGeneratorArn: str, Description: str=None) -> UpdateLicenseManagerReportGeneratorResponse:
        r"""Updates a report generator. After you make changes to a report generator, it will start generating new reports within 60 minutes of being updated.

        :param self:
        :param Description:  Description of the report generator.<br/>ClientToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.<br/>ReportFrequency:  Frequency by which reports are generated. The following options are avaiable: ??? What are the APi value options?:<br/>ReportContext:  ?:<br/>Type:  Type of reports to generate. The following report types an be generated: <ul> <li> License configuration report - Reports on the number and details of consumed licenses for a license configuration. </li> <li> Resource report - Reports on the tracked licenses and resource consumption for a license configuration. </li> </ul><br/>ReportGeneratorName:  Name of the report generator.<br/>LicenseManagerReportGeneratorArn:  Amazon Resource Number (ARN) of the report generator to update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>licenseConfigurationArns</i> Amazon Resource Number (ARN) of the license configuration that this generator reports on.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>period</i> Time period between each report. The period can be daily, weekly, or monthly.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>value</i> Number of times within the frequency period that a report will be generated. Currently only <code>1</code> is supported.<br/>
        :return:         """
        pass

    def update_license_specifications_for_resource(self, ResourceArn: str, AddLicenseSpecifications: List[LicenseSpecification]=None, RemoveLicenseSpecifications: List[LicenseSpecification]=None) -> UpdateLicenseSpecificationsForResourceResponse:
        r"""Adds or removes the specified license configurations for the specified AWS resource. You can update the license specifications of AMIs, instances, and hosts. You cannot update the license specifications for launch templates and AWS CloudFormation templates, as they send license configurations to the operation that creates the resource.

        :param self:
        :param RemoveLicenseSpecifications:  ARNs of the license configurations to remove.<br/>AddLicenseSpecifications:  ARNs of the license configurations to add.<br/>ResourceArn:  Amazon Resource Name (ARN) of the AWS resource.<br/>
        :return:         """
        pass

    def update_service_settings(self, S3BucketArn: str=None, SnsTopicArn: str=None, OrganizationConfiguration: OrganizationConfiguration=None, EnableCrossAccountsDiscovery: BoxBoolean=None) -> UpdateServiceSettingsResponse:
        r"""Updates License Manager settings for the current Region.

        :param self:
        :param EnableCrossAccountsDiscovery:  Activates cross-account discovery.<br/>OrganizationConfiguration:  Enables integration with AWS Organizations for cross-account discovery.:<br/>SnsTopicArn:  Amazon Resource Name (ARN) of the Amazon SNS topic used for License Manager alerts.<br/>S3BucketArn:  Amazon Resource Name (ARN) of the Amazon S3 bucket where the License Manager information is stored.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableIntegration</i> Enables AWS Organization integration.<br/>
        :return:         """
        pass





class Lightsail(BaseClient):
    r"""Amazon Lightsail is the easiest way to get started with Amazon Web Services (AWS) for developers who need to build websites or web applications. It includes everything you need to launch your project quickly - instances (virtual private servers), container services, managed databases, SSD-based block storage, static IP addresses, load balancers, content delivery network (CDN) distributions, DNS management of registered domains, and resource snapshots (backups) - for a low, predictable monthly price. You can manage your Lightsail resources using the Lightsail console, Lightsail API, AWS Command Line Interface (AWS CLI), or SDKs. For more information about Lightsail concepts and tasks, see the <a href="http://lightsail.aws.amazon.com/ls/docs/how-to/article/lightsail-how-to-set-up-access-keys-to-use-sdk-api-cli">Lightsail Dev Guide</a>. This API Reference provides detailed information about the actions, data types, parameters, and errors of the Lightsail service. For more information about the supported AWS Regions, endpoints, and service quotas of the Lightsail service, see <a href="https://docs.aws.amazon.com/general/latest/gr/lightsail.html">Amazon Lightsail Endpoints and Quotas</a> in the <i>AWS General Reference</i>."""


    class GetActiveNamesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_active_names` for valid parameters"""
            pass
    class GetBlueprintsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_blueprints` for valid parameters"""
            pass
    class GetBundlesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_bundles` for valid parameters"""
            pass
    class GetDomainsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_domains` for valid parameters"""
            pass
    class GetInstanceSnapshotsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_instance_snapshots` for valid parameters"""
            pass
    class GetInstancesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_instances` for valid parameters"""
            pass
    class GetKeyPairsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_key_pairs` for valid parameters"""
            pass
    class GetOperationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_operations` for valid parameters"""
            pass
    class GetStaticIpsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_static_ips` for valid parameters"""
            pass
    class GetCloudFormationStackRecordsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_cloud_formation_stack_records` for valid parameters"""
            pass
    class GetDiskSnapshotsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_disk_snapshots` for valid parameters"""
            pass
    class GetDisksPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_disks` for valid parameters"""
            pass
    class GetExportSnapshotRecordsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_export_snapshot_records` for valid parameters"""
            pass
    class GetLoadBalancersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_load_balancers` for valid parameters"""
            pass
    class GetRelationalDatabaseBlueprintsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_relational_database_blueprints` for valid parameters"""
            pass
    class GetRelationalDatabaseBundlesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_relational_database_bundles` for valid parameters"""
            pass
    class GetRelationalDatabaseEventsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_relational_database_events` for valid parameters"""
            pass
    class GetRelationalDatabaseParametersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_relational_database_parameters` for valid parameters"""
            pass
    class GetRelationalDatabaseSnapshotsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_relational_database_snapshots` for valid parameters"""
            pass
    class GetRelationalDatabasesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_relational_databases` for valid parameters"""
            pass


    class AllocateStaticIpRequest(Mapping):
        pass
    
    class AllocateStaticIpResult(Mapping):
        pass
    
    class AttachCertificateToDistributionRequest(Mapping):
        pass
    
    class AttachCertificateToDistributionResult(Mapping):
        pass
    
    class AttachDiskRequest(Mapping):
        pass
    
    class AttachDiskResult(Mapping):
        pass
    
    class AttachInstancesToLoadBalancerRequest(Mapping):
        pass
    
    class AttachInstancesToLoadBalancerResult(Mapping):
        pass
    
    class ResourceName(object):
        pass
    
    class AttachLoadBalancerTlsCertificateRequest(Mapping):
        pass
    
    class AttachLoadBalancerTlsCertificateResult(Mapping):
        pass
    
    class AttachStaticIpRequest(Mapping):
        pass
    
    class AttachStaticIpResult(Mapping):
        pass
    
    class CloseInstancePublicPortsRequest(Mapping):
        pass
    
    class CloseInstancePublicPortsResult(Mapping):
        pass
    
    class PortInfo(Mapping):
        pass
    
    class CopySnapshotRequest(Mapping):
        pass
    
    class CopySnapshotResult(Mapping):
        pass
    
    class boolean(object):
        pass
    
    class CreateCertificateRequest(Mapping):
        pass
    
    class CreateCertificateResult(Mapping):
        pass
    
    class DomainName(object):
        pass
    
    class Tag(Mapping):
        pass
    
    class CreateCloudFormationStackRequest(Mapping):
        pass
    
    class CreateCloudFormationStackResult(Mapping):
        pass
    
    class InstanceEntry(Mapping):
        pass
    
    class CreateContactMethodRequest(Mapping):
        pass
    
    class CreateContactMethodResult(Mapping):
        pass
    
    class CreateContainerServiceRequest(Mapping):
        pass
    
    class CreateContainerServiceResult(Mapping):
        pass
    
    class ContainerServicePublicDomains(object):
        pass
    
    class ContainerServiceDeploymentRequest(Mapping):
        pass
    
    class CreateContainerServiceDeploymentRequest(Mapping):
        pass
    
    class CreateContainerServiceDeploymentResult(Mapping):
        pass
    
    class ContainerMap(object):
        pass
    
    class EndpointRequest(Mapping):
        pass
    
    class CreateContainerServiceRegistryLoginRequest(Mapping):
        pass
    
    class CreateContainerServiceRegistryLoginResult(Mapping):
        pass
    
    class CreateDiskRequest(Mapping):
        pass
    
    class CreateDiskResult(Mapping):
        pass
    
    class AddOnRequest(Mapping):
        pass
    
    class CreateDiskFromSnapshotRequest(Mapping):
        pass
    
    class CreateDiskFromSnapshotResult(Mapping):
        pass
    
    class CreateDiskSnapshotRequest(Mapping):
        pass
    
    class CreateDiskSnapshotResult(Mapping):
        pass
    
    class CreateDistributionRequest(Mapping):
        pass
    
    class CreateDistributionResult(Mapping):
        pass
    
    class InputOrigin(Mapping):
        pass
    
    class CacheBehavior(Mapping):
        pass
    
    class CacheSettings(Mapping):
        pass
    
    class CacheBehaviorPerPath(Mapping):
        pass
    
    class CreateDomainRequest(Mapping):
        pass
    
    class CreateDomainResult(Mapping):
        pass
    
    class CreateDomainEntryRequest(Mapping):
        pass
    
    class CreateDomainEntryResult(Mapping):
        pass
    
    class DomainEntry(Mapping):
        pass
    
    class CreateInstanceSnapshotRequest(Mapping):
        pass
    
    class CreateInstanceSnapshotResult(Mapping):
        pass
    
    class CreateInstancesRequest(Mapping):
        pass
    
    class CreateInstancesResult(Mapping):
        pass
    
    class string(object):
        pass
    
    class CreateInstancesFromSnapshotRequest(Mapping):
        pass
    
    class CreateInstancesFromSnapshotResult(Mapping):
        pass
    
    class AttachedDiskMap(object):
        pass
    
    class CreateKeyPairRequest(Mapping):
        pass
    
    class CreateKeyPairResult(Mapping):
        pass
    
    class CreateLoadBalancerRequest(Mapping):
        pass
    
    class CreateLoadBalancerResult(Mapping):
        pass
    
    class CreateLoadBalancerTlsCertificateRequest(Mapping):
        pass
    
    class CreateLoadBalancerTlsCertificateResult(Mapping):
        pass
    
    class CreateRelationalDatabaseRequest(Mapping):
        pass
    
    class CreateRelationalDatabaseResult(Mapping):
        pass
    
    class CreateRelationalDatabaseFromSnapshotRequest(Mapping):
        pass
    
    class CreateRelationalDatabaseFromSnapshotResult(Mapping):
        pass
    
    class IsoDate(object):
        pass
    
    class CreateRelationalDatabaseSnapshotRequest(Mapping):
        pass
    
    class CreateRelationalDatabaseSnapshotResult(Mapping):
        pass
    
    class DeleteAlarmRequest(Mapping):
        pass
    
    class DeleteAlarmResult(Mapping):
        pass
    
    class DeleteAutoSnapshotRequest(Mapping):
        pass
    
    class DeleteAutoSnapshotResult(Mapping):
        pass
    
    class DeleteCertificateRequest(Mapping):
        pass
    
    class DeleteCertificateResult(Mapping):
        pass
    
    class DeleteContactMethodRequest(Mapping):
        pass
    
    class DeleteContactMethodResult(Mapping):
        pass
    
    class DeleteContainerImageRequest(Mapping):
        pass
    
    class DeleteContainerImageResult(Mapping):
        pass
    
    class DeleteContainerServiceRequest(Mapping):
        pass
    
    class DeleteContainerServiceResult(Mapping):
        pass
    
    class DeleteDiskRequest(Mapping):
        pass
    
    class DeleteDiskResult(Mapping):
        pass
    
    class DeleteDiskSnapshotRequest(Mapping):
        pass
    
    class DeleteDiskSnapshotResult(Mapping):
        pass
    
    class DeleteDistributionRequest(Mapping):
        pass
    
    class DeleteDistributionResult(Mapping):
        pass
    
    class DeleteDomainRequest(Mapping):
        pass
    
    class DeleteDomainResult(Mapping):
        pass
    
    class DeleteDomainEntryRequest(Mapping):
        pass
    
    class DeleteDomainEntryResult(Mapping):
        pass
    
    class DeleteInstanceRequest(Mapping):
        pass
    
    class DeleteInstanceResult(Mapping):
        pass
    
    class DeleteInstanceSnapshotRequest(Mapping):
        pass
    
    class DeleteInstanceSnapshotResult(Mapping):
        pass
    
    class DeleteKeyPairRequest(Mapping):
        pass
    
    class DeleteKeyPairResult(Mapping):
        pass
    
    class DeleteKnownHostKeysRequest(Mapping):
        pass
    
    class DeleteKnownHostKeysResult(Mapping):
        pass
    
    class DeleteLoadBalancerRequest(Mapping):
        pass
    
    class DeleteLoadBalancerResult(Mapping):
        pass
    
    class DeleteLoadBalancerTlsCertificateRequest(Mapping):
        pass
    
    class DeleteLoadBalancerTlsCertificateResult(Mapping):
        pass
    
    class DeleteRelationalDatabaseRequest(Mapping):
        pass
    
    class DeleteRelationalDatabaseResult(Mapping):
        pass
    
    class DeleteRelationalDatabaseSnapshotRequest(Mapping):
        pass
    
    class DeleteRelationalDatabaseSnapshotResult(Mapping):
        pass
    
    class DetachCertificateFromDistributionRequest(Mapping):
        pass
    
    class DetachCertificateFromDistributionResult(Mapping):
        pass
    
    class DetachDiskRequest(Mapping):
        pass
    
    class DetachDiskResult(Mapping):
        pass
    
    class DetachInstancesFromLoadBalancerRequest(Mapping):
        pass
    
    class DetachInstancesFromLoadBalancerResult(Mapping):
        pass
    
    class DetachStaticIpRequest(Mapping):
        pass
    
    class DetachStaticIpResult(Mapping):
        pass
    
    class DisableAddOnRequest(Mapping):
        pass
    
    class DisableAddOnResult(Mapping):
        pass
    
    class DownloadDefaultKeyPairRequest(Mapping):
        pass
    
    class DownloadDefaultKeyPairResult(Mapping):
        pass
    
    class EnableAddOnRequest(Mapping):
        pass
    
    class EnableAddOnResult(Mapping):
        pass
    
    class ExportSnapshotRequest(Mapping):
        pass
    
    class ExportSnapshotResult(Mapping):
        pass
    
    class GetActiveNamesRequest(Mapping):
        pass
    
    class GetActiveNamesResult(Mapping):
        pass
    
    class GetAlarmsRequest(Mapping):
        pass
    
    class GetAlarmsResult(Mapping):
        pass
    
    class GetAutoSnapshotsRequest(Mapping):
        pass
    
    class GetAutoSnapshotsResult(Mapping):
        pass
    
    class GetBlueprintsRequest(Mapping):
        pass
    
    class GetBlueprintsResult(Mapping):
        pass
    
    class GetBundlesRequest(Mapping):
        pass
    
    class GetBundlesResult(Mapping):
        pass
    
    class GetCertificatesRequest(Mapping):
        pass
    
    class GetCertificatesResult(Mapping):
        pass
    
    class CertificateStatus(object):
        pass
    
    class IncludeCertificateDetails(object):
        pass
    
    class GetCloudFormationStackRecordsRequest(Mapping):
        pass
    
    class GetCloudFormationStackRecordsResult(Mapping):
        pass
    
    class GetContactMethodsRequest(Mapping):
        pass
    
    class GetContactMethodsResult(Mapping):
        pass
    
    class ContactProtocol(object):
        pass
    
    class GetContainerAPIMetadataRequest(Mapping):
        pass
    
    class GetContainerAPIMetadataResult(Mapping):
        pass
    
    class GetContainerImagesRequest(Mapping):
        pass
    
    class GetContainerImagesResult(Mapping):
        pass
    
    class GetContainerLogRequest(Mapping):
        pass
    
    class GetContainerLogResult(Mapping):
        pass
    
    class GetContainerServiceDeploymentsRequest(Mapping):
        pass
    
    class GetContainerServiceDeploymentsResult(Mapping):
        pass
    
    class GetContainerServiceMetricDataRequest(Mapping):
        pass
    
    class GetContainerServiceMetricDataResult(Mapping):
        pass
    
    class MetricStatistic(object):
        pass
    
    class GetContainerServicePowersRequest(Mapping):
        pass
    
    class GetContainerServicePowersResult(Mapping):
        pass
    
    class GetContainerServicesRequest(Mapping):
        pass
    
    class ContainerServicesListResult(Mapping):
        pass
    
    class GetDiskRequest(Mapping):
        pass
    
    class GetDiskResult(Mapping):
        pass
    
    class GetDiskSnapshotRequest(Mapping):
        pass
    
    class GetDiskSnapshotResult(Mapping):
        pass
    
    class GetDiskSnapshotsRequest(Mapping):
        pass
    
    class GetDiskSnapshotsResult(Mapping):
        pass
    
    class GetDisksRequest(Mapping):
        pass
    
    class GetDisksResult(Mapping):
        pass
    
    class GetDistributionBundlesRequest(Mapping):
        pass
    
    class GetDistributionBundlesResult(Mapping):
        pass
    
    class GetDistributionLatestCacheResetRequest(Mapping):
        pass
    
    class GetDistributionLatestCacheResetResult(Mapping):
        pass
    
    class GetDistributionMetricDataRequest(Mapping):
        pass
    
    class GetDistributionMetricDataResult(Mapping):
        pass
    
    class timestamp(object):
        pass
    
    class GetDistributionsRequest(Mapping):
        pass
    
    class GetDistributionsResult(Mapping):
        pass
    
    class GetDomainRequest(Mapping):
        pass
    
    class GetDomainResult(Mapping):
        pass
    
    class GetDomainsRequest(Mapping):
        pass
    
    class GetDomainsResult(Mapping):
        pass
    
    class GetExportSnapshotRecordsRequest(Mapping):
        pass
    
    class GetExportSnapshotRecordsResult(Mapping):
        pass
    
    class GetInstanceRequest(Mapping):
        pass
    
    class GetInstanceResult(Mapping):
        pass
    
    class GetInstanceAccessDetailsRequest(Mapping):
        pass
    
    class GetInstanceAccessDetailsResult(Mapping):
        pass
    
    class GetInstanceMetricDataRequest(Mapping):
        pass
    
    class GetInstanceMetricDataResult(Mapping):
        pass
    
    class GetInstancePortStatesRequest(Mapping):
        pass
    
    class GetInstancePortStatesResult(Mapping):
        pass
    
    class GetInstanceSnapshotRequest(Mapping):
        pass
    
    class GetInstanceSnapshotResult(Mapping):
        pass
    
    class GetInstanceSnapshotsRequest(Mapping):
        pass
    
    class GetInstanceSnapshotsResult(Mapping):
        pass
    
    class GetInstanceStateRequest(Mapping):
        pass
    
    class GetInstanceStateResult(Mapping):
        pass
    
    class GetInstancesRequest(Mapping):
        pass
    
    class GetInstancesResult(Mapping):
        pass
    
    class GetKeyPairRequest(Mapping):
        pass
    
    class GetKeyPairResult(Mapping):
        pass
    
    class GetKeyPairsRequest(Mapping):
        pass
    
    class GetKeyPairsResult(Mapping):
        pass
    
    class GetLoadBalancerRequest(Mapping):
        pass
    
    class GetLoadBalancerResult(Mapping):
        pass
    
    class GetLoadBalancerMetricDataRequest(Mapping):
        pass
    
    class GetLoadBalancerMetricDataResult(Mapping):
        pass
    
    class GetLoadBalancerTlsCertificatesRequest(Mapping):
        pass
    
    class GetLoadBalancerTlsCertificatesResult(Mapping):
        pass
    
    class GetLoadBalancersRequest(Mapping):
        pass
    
    class GetLoadBalancersResult(Mapping):
        pass
    
    class GetOperationRequest(Mapping):
        pass
    
    class GetOperationResult(Mapping):
        pass
    
    class GetOperationsRequest(Mapping):
        pass
    
    class GetOperationsResult(Mapping):
        pass
    
    class GetOperationsForResourceRequest(Mapping):
        pass
    
    class GetOperationsForResourceResult(Mapping):
        pass
    
    class GetRegionsRequest(Mapping):
        pass
    
    class GetRegionsResult(Mapping):
        pass
    
    class GetRelationalDatabaseRequest(Mapping):
        pass
    
    class GetRelationalDatabaseResult(Mapping):
        pass
    
    class GetRelationalDatabaseBlueprintsRequest(Mapping):
        pass
    
    class GetRelationalDatabaseBlueprintsResult(Mapping):
        pass
    
    class GetRelationalDatabaseBundlesRequest(Mapping):
        pass
    
    class GetRelationalDatabaseBundlesResult(Mapping):
        pass
    
    class GetRelationalDatabaseEventsRequest(Mapping):
        pass
    
    class GetRelationalDatabaseEventsResult(Mapping):
        pass
    
    class GetRelationalDatabaseLogEventsRequest(Mapping):
        pass
    
    class GetRelationalDatabaseLogEventsResult(Mapping):
        pass
    
    class GetRelationalDatabaseLogStreamsRequest(Mapping):
        pass
    
    class GetRelationalDatabaseLogStreamsResult(Mapping):
        pass
    
    class GetRelationalDatabaseMasterUserPasswordRequest(Mapping):
        pass
    
    class GetRelationalDatabaseMasterUserPasswordResult(Mapping):
        pass
    
    class GetRelationalDatabaseMetricDataRequest(Mapping):
        pass
    
    class GetRelationalDatabaseMetricDataResult(Mapping):
        pass
    
    class GetRelationalDatabaseParametersRequest(Mapping):
        pass
    
    class GetRelationalDatabaseParametersResult(Mapping):
        pass
    
    class GetRelationalDatabaseSnapshotRequest(Mapping):
        pass
    
    class GetRelationalDatabaseSnapshotResult(Mapping):
        pass
    
    class GetRelationalDatabaseSnapshotsRequest(Mapping):
        pass
    
    class GetRelationalDatabaseSnapshotsResult(Mapping):
        pass
    
    class GetRelationalDatabasesRequest(Mapping):
        pass
    
    class GetRelationalDatabasesResult(Mapping):
        pass
    
    class GetStaticIpRequest(Mapping):
        pass
    
    class GetStaticIpResult(Mapping):
        pass
    
    class GetStaticIpsRequest(Mapping):
        pass
    
    class GetStaticIpsResult(Mapping):
        pass
    
    class ImportKeyPairRequest(Mapping):
        pass
    
    class ImportKeyPairResult(Mapping):
        pass
    
    class IsVpcPeeredRequest(Mapping):
        pass
    
    class IsVpcPeeredResult(Mapping):
        pass
    
    class OpenInstancePublicPortsRequest(Mapping):
        pass
    
    class OpenInstancePublicPortsResult(Mapping):
        pass
    
    class PeerVpcRequest(Mapping):
        pass
    
    class PeerVpcResult(Mapping):
        pass
    
    class PutAlarmRequest(Mapping):
        pass
    
    class PutAlarmResult(Mapping):
        pass
    
    class double(object):
        pass
    
    class AlarmState(object):
        pass
    
    class PutInstancePublicPortsRequest(Mapping):
        pass
    
    class PutInstancePublicPortsResult(Mapping):
        pass
    
    class RebootInstanceRequest(Mapping):
        pass
    
    class RebootInstanceResult(Mapping):
        pass
    
    class RebootRelationalDatabaseRequest(Mapping):
        pass
    
    class RebootRelationalDatabaseResult(Mapping):
        pass
    
    class RegisterContainerImageRequest(Mapping):
        pass
    
    class RegisterContainerImageResult(Mapping):
        pass
    
    class ReleaseStaticIpRequest(Mapping):
        pass
    
    class ReleaseStaticIpResult(Mapping):
        pass
    
    class ResetDistributionCacheRequest(Mapping):
        pass
    
    class ResetDistributionCacheResult(Mapping):
        pass
    
    class SendContactMethodVerificationRequest(Mapping):
        pass
    
    class SendContactMethodVerificationResult(Mapping):
        pass
    
    class SetIpAddressTypeRequest(Mapping):
        pass
    
    class SetIpAddressTypeResult(Mapping):
        pass
    
    class StartInstanceRequest(Mapping):
        pass
    
    class StartInstanceResult(Mapping):
        pass
    
    class StartRelationalDatabaseRequest(Mapping):
        pass
    
    class StartRelationalDatabaseResult(Mapping):
        pass
    
    class StopInstanceRequest(Mapping):
        pass
    
    class StopInstanceResult(Mapping):
        pass
    
    class StopRelationalDatabaseRequest(Mapping):
        pass
    
    class StopRelationalDatabaseResult(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResult(Mapping):
        pass
    
    class TestAlarmRequest(Mapping):
        pass
    
    class TestAlarmResult(Mapping):
        pass
    
    class UnpeerVpcRequest(Mapping):
        pass
    
    class UnpeerVpcResult(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResult(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateContainerServiceRequest(Mapping):
        pass
    
    class UpdateContainerServiceResult(Mapping):
        pass
    
    class UpdateDistributionRequest(Mapping):
        pass
    
    class UpdateDistributionResult(Mapping):
        pass
    
    class UpdateDistributionBundleRequest(Mapping):
        pass
    
    class UpdateDistributionBundleResult(Mapping):
        pass
    
    class UpdateDomainEntryRequest(Mapping):
        pass
    
    class UpdateDomainEntryResult(Mapping):
        pass
    
    class UpdateLoadBalancerAttributeRequest(Mapping):
        pass
    
    class UpdateLoadBalancerAttributeResult(Mapping):
        pass
    
    class UpdateRelationalDatabaseRequest(Mapping):
        pass
    
    class UpdateRelationalDatabaseResult(Mapping):
        pass
    
    class UpdateRelationalDatabaseParametersRequest(Mapping):
        pass
    
    class UpdateRelationalDatabaseParametersResult(Mapping):
        pass
    
    class RelationalDatabaseParameter(Mapping):
        pass
    
    def allocate_static_ip(self, staticIpName: str) -> AllocateStaticIpResult:
        r"""Allocates a static IP address.

        :param self:
        :param staticIpName:  The name of the static IP address.<br/>
        :return: operations:  An array of objects that describe the result of the action, such as the status of the request, the timestamp of the request, and the resources affected by the request.<br/>        """
        pass

    def attach_certificate_to_distribution(self, certificateName: str, distributionName: str) -> AttachCertificateToDistributionResult:
        r"""Attaches an SSL/TLS certificate to your Amazon Lightsail content delivery network (CDN) distribution. After the certificate is attached, your distribution accepts HTTPS traffic for all of the domains that are associated with the certificate. Use the <code>CreateCertificate</code> action to create a certificate that you can attach to your distribution. <important> Only certificates created in the <code>us-east-1</code> AWS Region can be attached to Lightsail distributions. Lightsail distributions are global resources that can reference an origin in any AWS Region, and distribute its content globally. However, all distributions are located in the <code>us-east-1</code> Region. </important>

        :param self:
        :param certificateName:  The name of the certificate to attach to a distribution. Only certificates with a status of <code>ISSUED</code> can be attached to a distribution. Use the <code>GetCertificates</code> action to get a list of certificate names that you can specify. <note> This is the name of the certificate resource type and is used only to reference the certificate in other API actions. It can be different than the domain name of the certificate. For example, your certificate name might be <code>WordPress-Blog-Certificate</code> and the domain name of the certificate might be <code>example.com</code>. </note><br/>distributionName:  The name of the distribution that the certificate will be attached to. Use the <code>GetDistributions</code> action to get a list of distribution names that you can specify.<br/>
        :return: operation:  An object that describes the result of the action, such as the status of the request, the timestamp of the request, and the resources affected by the request.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>errorDetails</i> The error details.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>errorCode</i> The error code.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusChangedAt</i> The timestamp when the status was changed (e.g., <code>1479816991.349</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the operation. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>operationType</i> The type of operation. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>operationDetails</i> Details about the operation (e.g., <code>Debian-1GB-Ohio-1</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>isTerminal</i> A Boolean value indicating whether the operation is terminal.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i> The AWS Region and Availability Zone.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>location</b>: The AWS Region and Availability Zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The timestamp when the operation was initialized (e.g., <code>1479816991.349</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceType</i> The resource type. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceName</i> The resource name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The ID of the operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>regionName</i> The AWS Region name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>availabilityZone</i> The Availability Zone. Follows the format <code>us-east-2a</code> (case-sensitive).<br/>        """
        pass

    def attach_disk(self, diskPath: str, instanceName: str, diskName: str) -> AttachDiskResult:
        r"""Attaches a block storage disk to a running or stopped Lightsail instance and exposes it to the instance with the specified disk name. The <code>attach disk</code> operation supports tag-based access control via resource tags applied to the resource identified by <code>disk name</code>. For more information, see the <a href="https://lightsail.aws.amazon.com/ls/docs/en/articles/amazon-lightsail-controlling-access-using-tags">Lightsail Dev Guide</a>.

        :param self:
        :param diskPath:  The disk path to expose to the instance (e.g., <code>/dev/xvdf</code>).<br/>instanceName:  The name of the Lightsail instance where you want to utilize the storage disk.<br/>diskName:  The unique Lightsail disk name (e.g., <code>my-disk</code>).<br/>
        :return: operations:  An array of objects that describe the result of the action, such as the status of the request, the timestamp of the request, and the resources affected by the request.<br/>        """
        pass

    def attach_instances_to_load_balancer(self, instanceNames: List[ResourceName], loadBalancerName: str) -> AttachInstancesToLoadBalancerResult:
        r"""Attaches one or more Lightsail instances to a load balancer. After some time, the instances are attached to the load balancer and the health check status is available. The <code>attach instances to load balancer</code> operation supports tag-based access control via resource tags applied to the resource identified by <code>load balancer name</code>. For more information, see the <a href="https://lightsail.aws.amazon.com/ls/docs/en/articles/amazon-lightsail-controlling-access-using-tags">Lightsail Dev Guide</a>.

        :param self:
        :param instanceNames:  An array of strings representing the instance name(s) you want to attach to your load balancer. An instance must be <code>running</code> before you can attach it to your load balancer. There are no additional limits on the number of instances you can attach to your load balancer, aside from the limit of Lightsail instances you can create in your account (20).<br/>loadBalancerName:  The name of the load balancer.<br/>
        :return: operations:  An array of objects that describe the result of the action, such as the status of the request, the timestamp of the request, and the resources affected by the request.<br/>        """
        pass

    def attach_load_balancer_tls_certificate(self, certificateName: str, loadBalancerName: str) -> AttachLoadBalancerTlsCertificateResult:
        r"""Attaches a Transport Layer Security (TLS) certificate to your load balancer. TLS is just an updated, more secure version of Secure Socket Layer (SSL). Once you create and validate your certificate, you can attach it to your load balancer. You can also use this API to rotate the certificates on your account. Use the <code>AttachLoadBalancerTlsCertificate</code> action with the non-attached certificate, and it will replace the existing one and become the attached certificate. The <code>AttachLoadBalancerTlsCertificate</code> operation supports tag-based access control via resource tags applied to the resource identified by <code>load balancer name</code>. For more information, see the <a href="https://lightsail.aws.amazon.com/ls/docs/en/articles/amazon-lightsail-controlling-access-using-tags">Lightsail Dev Guide</a>.

        :param self:
        :param certificateName:  The name of your SSL/TLS certificate.<br/>loadBalancerName:  The name of the load balancer to which you want to associate the SSL/TLS certificate.<br/>
        :return: operations:  An array of objects that describe the result of the action, such as the status of the request, the timestamp of the request, and the resources affected by the request. These SSL/TLS certificates are only usable by Lightsail load balancers. You can't get the certificate and use it for another purpose.<br/>        """
        pass

    def attach_static_ip(self, instanceName: str, staticIpName: str) -> AttachStaticIpResult:
        r"""Attaches a static IP address to a specific Amazon Lightsail instance.

        :param self:
        :param instanceName:  The instance name to which you want to attach the static IP address.<br/>staticIpName:  The name of the static IP.<br/>
        :return: operations:  An array of objects that describe the result of the action, such as the status of the request, the timestamp of the request, and the resources affected by the request.<br/>        """
        pass

    def close_instance_public_ports(self, instanceName: str, portInfo: PortInfo) -> CloseInstancePublicPortsResult:
        r"""Closes ports for a specific Amazon Lightsail instance. The <code>CloseInstancePublicPorts</code> action supports tag-based access control via resource tags applied to the resource identified by <code>instanceName</code>. For more information, see the <a href="https://lightsail.aws.amazon.com/ls/docs/en/articles/amazon-lightsail-controlling-access-using-tags">Lightsail Dev Guide</a>.

        :param self:
        :param instanceName:  The name of the instance for which to close ports.<br/>portInfo:  An object to describe the ports to close for the specified instance.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>cidrListAliases</i> An alias that defines access for a preconfigured range of IP addresses. The only alias currently supported is <code>lightsail-connect</code>, which allows IP addresses of the browser-based RDP/SSH client in the Lightsail console to connect to your instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ipv6Cidrs</i> The IPv6 address, or range of IPv6 addresses (in CIDR notation) that are allowed to connect to an instance through the ports, and the protocol. Only devices with an IPv6 address can connect to an instance through IPv6; otherwise, IPv4 should be used. <note> The <code>cidrs</code> parameter lists the IPv4 addresses that are allowed to connect to an instance. </note> For more information about CIDR block notation, see <a href="https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation">Classless Inter-Domain Routing</a> on <i>Wikipedia</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>cidrs</i> The IPv4 address, or range of IPv4 addresses (in CIDR notation) that are allowed to connect to an instance through the ports, and the protocol. <note> The <code>ipv6Cidrs</code> parameter lists the IPv6 addresses that are allowed to connect to an instance. </note> Examples: <ul> <li> To allow the IP address <code>192.0.2.44</code>, specify <code>192.0.2.44</code> or <code>192.0.2.44/32</code>.  </li> <li> To allow the IP addresses <code>192.0.2.0</code> to <code>192.0.2.255</code>, specify <code>192.0.2.0/24</code>. </li> </ul> For more information about CIDR block notation, see <a href="https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation">Classless Inter-Domain Routing</a> on <i>Wikipedia</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>protocol</i> The IP protocol name. The name can be one of the following: <ul> <li>  <code>tcp</code> - Transmission Control Protocol (TCP) provides reliable, ordered, and error-checked delivery of streamed data between applications running on hosts communicating by an IP network. If you have an application that doesn't require reliable data stream service, use UDP instead. </li> <li>  <code>all</code> - All transport layer protocol types. For more general information, see <a href="https://en.wikipedia.org/wiki/Transport_layer">Transport layer</a> on <i>Wikipedia</i>. </li> <li>  <code>udp</code> - With User Datagram Protocol (UDP), computer applications can send messages (or datagrams) to other hosts on an Internet Protocol (IP) network. Prior communications are not required to set up transmission channels or data paths. Applications that don't require reliable data stream service can use UDP, which provides a connectionless datagram service that emphasizes reduced latency over reliability. If you do require reliable data stream service, use TCP instead. </li> <li>  <code>icmp</code> - Internet Control Message Protocol (ICMP) is used to send error messages and operational information indicating success or failure when communicating with an instance. For example, an error is indicated when an instance could not be reached. When you specify <code>icmp</code> as the <code>protocol</code>, you must specify the ICMP type using the <code>fromPort</code> parameter, and ICMP code using the <code>toPort</code> parameter. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>toPort</i> The last port in a range of open ports on an instance. Allowed ports: <ul> <li> TCP and UDP - <code>0</code> to <code>65535</code>  </li> <li> ICMP - The ICMP code for IPv4 addresses. For example, specify <code>8</code> as the <code>fromPort</code> (ICMP type), and <code>-1</code> as the <code>toPort</code> (ICMP code), to enable ICMP Ping. For more information, see <a href="https://en.wikipedia.org/wiki/Internet_Control_Message_Protocol#Control_messages">Control Messages</a> on <i>Wikipedia</i>. </li> <li> ICMPv6 - The ICMP code for IPv6 addresses. For example, specify <code>128</code> as the <code>fromPort</code> (ICMPv6 type), and <code>0</code> as <code>toPort</code> (ICMPv6 code). For more information, see <a href="https://en.wikipedia.org/wiki/Internet_Control_Message_Protocol_for_IPv6">Internet Control Message Protocol for IPv6</a>. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>fromPort</i> The first port in a range of open ports on an instance. Allowed ports: <ul> <li> TCP and UDP - <code>0</code> to <code>65535</code>  </li> <li> ICMP - The ICMP type for IPv4 addresses. For example, specify <code>8</code> as the <code>fromPort</code> (ICMP type), and <code>-1</code> as the <code>toPort</code> (ICMP code), to enable ICMP Ping. For more information, see <a href="https://en.wikipedia.org/wiki/Internet_Control_Message_Protocol#Control_messages">Control Messages</a> on <i>Wikipedia</i>. </li> <li> ICMPv6 - The ICMP type for IPv6 addresses. For example, specify <code>128</code> as the <code>fromPort</code> (ICMPv6 type), and <code>0</code> as <code>toPort</code> (ICMPv6 code). For more information, see <a href="https://en.wikipedia.org/wiki/Internet_Control_Message_Protocol_for_IPv6">Internet Control Message Protocol for IPv6</a>. </li> </ul><br/>
        :return: operation:  An object that describes the result of the action, such as the status of the request, the timestamp of the request, and the resources affected by the request.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>errorDetails</i> The error details.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>errorCode</i> The error code.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusChangedAt</i> The timestamp when the status was changed (e.g., <code>1479816991.349</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the operation. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>operationType</i> The type of operation. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>operationDetails</i> Details about the operation (e.g., <code>Debian-1GB-Ohio-1</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>isTerminal</i> A Boolean value indicating whether the operation is terminal.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i> The AWS Region and Availability Zone.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>location</b>: The AWS Region and Availability Zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The timestamp when the operation was initialized (e.g., <code>1479816991.349</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceType</i> The resource type. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceName</i> The resource name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The ID of the operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>regionName</i> The AWS Region name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>availabilityZone</i> The Availability Zone. Follows the format <code>us-east-2a</code> (case-sensitive).<br/>        """
        pass

    def copy_snapshot(self, sourceRegion: str, targetSnapshotName: str, sourceSnapshotName: str=None, sourceResourceName: str=None, restoreDate: str=None, useLatestRestorableAutoSnapshot: boolean=None) -> CopySnapshotResult:
        r"""Copies a manual snapshot of an instance or disk as another manual snapshot, or copies an automatic snapshot of an instance or disk as a manual snapshot. This operation can also be used to copy a manual or automatic snapshot of an instance or a disk from one AWS Region to another in Amazon Lightsail. When copying a <i>manual snapshot</i>, be sure to define the <code>source region</code>, <code>source snapshot name</code>, and <code>target snapshot name</code> parameters. When copying an <i>automatic snapshot</i>, be sure to define the <code>source region</code>, <code>source resource name</code>, <code>target snapshot name</code>, and either the <code>restore date</code> or the <code>use latest restorable auto snapshot</code> parameters.

        :param self:
        :param sourceRegion:  The AWS Region where the source manual or automatic snapshot is located.<br/>targetSnapshotName:  The name of the new manual snapshot to be created as a copy.<br/>useLatestRestorableAutoSnapshot:  A Boolean value to indicate whether to use the latest available automatic snapshot of the specified source instance or disk. Constraints: <ul> <li> This parameter cannot be defined together with the <code>restore date</code> parameter. The <code>use latest restorable auto snapshot</code> and <code>restore date</code> parameters are mutually exclusive. </li> <li> Define this parameter only when copying an automatic snapshot as a manual snapshot. For more information, see the <a href="https://lightsail.aws.amazon.com/ls/docs/en_us/articles/amazon-lightsail-keeping-automatic-snapshots">Lightsail Dev Guide</a>. </li> </ul><br/>restoreDate:  The date of the source automatic snapshot to copy. Use the <code>get auto snapshots</code> operation to identify the dates of the available automatic snapshots. Constraints: <ul> <li> Must be specified in <code>YYYY-MM-DD</code> format. </li> <li> This parameter cannot be defined together with the <code>use latest restorable auto snapshot</code> parameter. The <code>restore date</code> and <code>use latest restorable auto snapshot</code> parameters are mutually exclusive. </li> <li> Define this parameter only when copying an automatic snapshot as a manual snapshot. For more information, see the <a href="https://lightsail.aws.amazon.com/ls/docs/en_us/articles/amazon-lightsail-keeping-automatic-snapshots">Lightsail Dev Guide</a>. </li> </ul><br/>sourceResourceName:  The name of the source instance or disk from which the source automatic snapshot was created. Constraint: <ul> <li> Define this parameter only when copying an automatic snapshot as a manual snapshot. For more information, see the <a href="https://lightsail.aws.amazon.com/ls/docs/en_us/articles/amazon-lightsail-keeping-automatic-snapshots">Lightsail Dev Guide</a>. </li> </ul><br/>sourceSnapshotName:  The name of the source manual snapshot to copy. Constraint: <ul> <li> Define this parameter only when copying a manual snapshot as another manual snapshot. </li> </ul><br/>
        :return: operations:  An array of objects that describe the result of the action, such as the status of the request, the timestamp of the request, and the resources affected by the request.<br/>        """
        pass

    def create_certificate(self, domainName: str, certificateName: str, subjectAlternativeNames: List[DomainName]=None, tags: List[Tag]=None) -> CreateCertificateResult:
        r"""Creates an SSL/TLS certificate for an Amazon Lightsail content delivery network (CDN) distribution and a container service. After the certificate is valid, use the <code>AttachCertificateToDistribution</code> action to use the certificate and its domains with your distribution. Or use the <code>UpdateContainerService</code> action to use the certificate and its domains with your container service. <important> Only certificates created in the <code>us-east-1</code> AWS Region can be attached to Lightsail distributions. Lightsail distributions are global resources that can reference an origin in any AWS Region, and distribute its content globally. However, all distributions are located in the <code>us-east-1</code> Region. </important>

        :param self:
        :param tags:  The tag keys and optional values to add to the certificate during create. Use the <code>TagResource</code> action to tag a resource after it's created.<br/>subjectAlternativeNames:  An array of strings that specify the alternate domains (e.g., <code>example2.com</code>) and subdomains (e.g., <code>blog.example.com</code>) for the certificate. You can specify a maximum of nine alternate domains (in addition to the primary domain name). Wildcard domain entries (e.g., <code>*.example.com</code>) are not supported.<br/>domainName:  The domain name (e.g., <code>example.com</code>) for the certificate.<br/>certificateName:  The name for the certificate.<br/>
        :return: operations:  An array of objects that describe the result of the action, such as the status of the request, the timestamp of the request, and the resources affected by the request.<br/>certificate:  An object that describes the certificate created.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The tag keys and optional values for the resource. For more information about tags in Lightsail, see the <a href="https://lightsail.aws.amazon.com/ls/docs/en/articles/amazon-lightsail-tags">Lightsail Dev Guide</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>certificateDetail</i> An object that describes a certificate in detail.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>certificateDetail</b>: An object that describes a certificate in detail.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>domainName</i> The domain name of the certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>certificateName</i> The name of the certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>certificateArn</i> The Amazon Resource Name (ARN) of the certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>eligibleToRenew</i> The renewal eligibility of the certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>notAfter</i> The timestamp when the certificate expires.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>notBefore</i> The timestamp when the certificate is first valid.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>issuerCA</i> The certificate authority that issued the certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>issuedAt</i> The timestamp when the certificate was issued.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The timestamp when the certificate was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>keyAlgorithm</i> The algorithm used to generate the key pair (the public and private key) of the certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>inUseResourceCount</i> The number of Lightsail resources that the certificate is attached to.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>requestFailureReason</i> The validation failure reason, if any, of the certificate. The following failure reasons are possible: <ul> <li>  <b> <code>NO_AVAILABLE_CONTACTS</code> </b> - This failure applies to email validation, which is not available for Lightsail certificates. </li> <li>  <b> <code>ADDITIONAL_VERIFICATION_REQUIRED</code> </b> - Lightsail requires additional information to process this certificate request. This can happen as a fraud-protection measure, such as when the domain ranks within the Alexa top 1000 websites. To provide the required information, use the <a href="https://console.aws.amazon.com/support/home">AWS Support Center</a> to contact AWS Support. <note> You cannot request a certificate for Amazon-owned domain names such as those ending in amazonaws.com, cloudfront.net, or elasticbeanstalk.com. </note> </li> <li>  <b> <code>DOMAIN_NOT_ALLOWED</code> </b> - One or more of the domain names in the certificate request was reported as an unsafe domain by <a href="https://www.virustotal.com/gui/home/url">VirusTotal</a>. To correct the problem, search for your domain name on the <a href="https://www.virustotal.com/gui/home/url">VirusTotal</a> website. If your domain is reported as suspicious, see <a href="https://developers.google.com/web/fundamentals/security/hacked">Google Help for Hacked Websites</a> to learn what you can do. If you believe that the result is a false positive, notify the organization that is reporting the domain. VirusTotal is an aggregate of several antivirus and URL scanners and cannot remove your domain from a block list itself. After you correct the problem and the VirusTotal registry has been updated, request a new certificate. If you see this error and your domain is not included in the VirusTotal list, visit the <a href="https://console.aws.amazon.com/support/home">AWS Support Center</a> and create a case. </li> <li>  <b> <code>INVALID_PUBLIC_DOMAIN</code> </b> - One or more of the domain names in the certificate request is not valid. Typically, this is because a domain name in the request is not a valid top-level domain. Try to request a certificate again, correcting any spelling errors or typos that were in the failed request, and ensure that all domain names in the request are for valid top-level domains. For example, you cannot request a certificate for <code>example.invalidpublicdomain</code> because <code>invalidpublicdomain</code> is not a valid top-level domain. </li> <li>  <b> <code>OTHER</code> </b> - Typically, this failure occurs when there is a typographical error in one or more of the domain names in the certificate request. Try to request a certificate again, correcting any spelling errors or typos that were in the failed request.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>domainValidationRecords</i> An array of objects that describe the domain validation records of the certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>subjectAlternativeNames</i> An array of strings that specify the alternate domains (e.g., <code>example2.com</code>) and subdomains (e.g., <code>blog.example.com</code>) of the certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>serialNumber</i> The serial number of the certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The validation status of the certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>domainName</i> The domain name of the certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the certificate (e.g., <code>my-certificate</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the certificate.<br/>An object that describes the status of the certificate renewal managed by Lightsail.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>renewalSummary</b>: An object that describes the status of the certificate renewal managed by Lightsail.        """
        pass

    def create_cloud_formation_stack(self, instances: List[InstanceEntry]) -> CreateCloudFormationStackResult:
        r"""Creates an AWS CloudFormation stack, which creates a new Amazon EC2 instance from an exported Amazon Lightsail snapshot. This operation results in a CloudFormation stack record that can be used to track the AWS CloudFormation stack created. Use the <code>get cloud formation stack records</code> operation to get a list of the CloudFormation stacks created. <important> Wait until after your new Amazon EC2 instance is created before running the <code>create cloud formation stack</code> operation again with the same export snapshot record. </important>

        :param self:
        :param instances:  An array of parameters that will be used to create the new Amazon EC2 instance. You can only pass one instance entry at a time in this array. You will get an invalid parameter error if you pass more than one instance entry in this array.<br/>
        :return: operations:  An array of objects that describe the result of the action, such as the status of the request, the timestamp of the request, and the resources affected by the request.<br/>        """
        pass

    def create_contact_method(self, contactEndpoint: str, protocol: str) -> CreateContactMethodResult:
        r"""Creates an email or SMS text message contact method. A contact method is used to send you notifications about your Amazon Lightsail resources. You can add one email address and one mobile phone number contact method in each AWS Region. However, SMS text messaging is not supported in some AWS Regions, and SMS text messages cannot be sent to some countries/regions. For more information, see <a href="https://lightsail.aws.amazon.com/ls/docs/en_us/articles/amazon-lightsail-notifications">Notifications in Amazon Lightsail</a>.

        :param self:
        :param contactEndpoint:  The destination of the contact method, such as an email address or a mobile phone number. Use the E.164 format when specifying a mobile phone number. E.164 is a standard for the phone number structure used for international telecommunication. Phone numbers that follow this format can have a maximum of 15 digits, and they are prefixed with the plus character (+) and the country code. For example, a U.S. phone number in E.164 format would be specified as +1XXX5550100. For more information, see <a href="https://en.wikipedia.org/wiki/E.164">E.164</a> on <i>Wikipedia</i>.<br/>protocol:  The protocol of the contact method, such as <code>Email</code> or <code>SMS</code> (text messaging). The <code>SMS</code> protocol is supported only in the following AWS Regions. <ul> <li> US East (N. Virginia) (<code>us-east-1</code>) </li> <li> US West (Oregon) (<code>us-west-2</code>) </li> <li> Europe (Ireland) (<code>eu-west-1</code>) </li> <li> Asia Pacific (Tokyo) (<code>ap-northeast-1</code>) </li> <li> Asia Pacific (Singapore) (<code>ap-southeast-1</code>) </li> <li> Asia Pacific (Sydney) (<code>ap-southeast-2</code>) </li> </ul> For a list of countries/regions where SMS text messages can be sent, and the latest AWS Regions where SMS text messaging is supported, see <a href="https://docs.aws.amazon.com/sns/latest/dg/sns-supported-regions-countries.html">Supported Regions and Countries</a> in the <i>Amazon SNS Developer Guide</i>. For more information about notifications in Amazon Lightsail, see <a href="https://lightsail.aws.amazon.com/ls/docs/en_us/articles/amazon-lightsail-notifications">Notifications in Amazon Lightsail</a>.<br/>
        :return: operations:  An array of objects that describe the result of the action, such as the status of the request, the timestamp of the request, and the resources affected by the request.<br/>        """
        pass

    def create_container_service(self, scale: int, power: str, serviceName: str, tags: List[Tag]=None, publicDomainNames: ContainerServicePublicDomains=None, deployment: ContainerServiceDeploymentRequest=None) -> CreateContainerServiceResult:
        r"""Creates an Amazon Lightsail container service. A Lightsail container service is a compute resource to which you can deploy containers. For more information, see <a href="https://lightsail.aws.amazon.com/ls/docs/en_us/articles/amazon-lightsail-container-services">Container services in Amazon Lightsail</a> in the <i>Lightsail Dev Guide</i>.

        :param self:
        :param deployment:  An object that describes a deployment for the container service. A deployment specifies the containers that will be launched on the container service and their settings, such as the ports to open, the environment variables to apply, and the launch command to run. It also specifies the container that will serve as the public endpoint of the deployment and its settings, such as the HTTP or HTTPS port to use, and the health check configuration.:<br/>publicDomainNames:  The public domain names to use with the container service, such as <code>example.com</code> and <code>www.example.com</code>. You can specify up to four public domain names for a container service. The domain names that you specify are used when you create a deployment with a container configured as the public endpoint of your container service. If you don't specify public domain names, then you can use the default domain of the container service. <important> You must create and validate an SSL/TLS certificate before you can use public domain names with your container service. Use the <code>CreateCertificate</code> action to create a certificate for the public domain names you want to use with your container service. </important> You can specify public domain names using a string to array map as shown in the example later on this page.<br/>tags:  The tag keys and optional values for the container service. For more information about tags in Lightsail, see the <a href="https://lightsail.aws.amazon.com/ls/docs/en/articles/amazon-lightsail-tags">Lightsail Dev Guide</a>.<br/>scale:  The scale specification for the container service. The scale specifies the allocated compute nodes of the container service. The <code>power</code> and <code>scale</code> of a container service makes up its configured capacity. To determine the monthly price of your container service, multiply the base price of the <code>power</code> with the <code>scale</code> (the number of nodes) of the service.<br/>power:  The power specification for the container service. The power specifies the amount of memory, vCPUs, and base monthly cost of each node of the container service. The <code>power</code> and <code>scale</code> of a container service makes up its configured capacity. To determine the monthly price of your container service, multiply the base price of the <code>power</code> with the <code>scale</code> (the number of nodes) of the service. Use the <code>GetContainerServicePowers</code> action to get a list of power options that you can specify using this parameter, and their base monthly cost.<br/>serviceName:  The name for the container service. The name that you specify for your container service will make up part of its default domain. The default domain of a container service is typically <code>https://&lt;ServiceName&gt;.&lt;RandomGUID&gt;.&lt;AWSRegion&gt;.cs.amazonlightsail.com</code>. If the name of your container service is <code>container-service-1</code>, and it's located in the US East (Ohio) AWS region (<code>us-east-2</code>), then the domain for your container service will be like the following example: <code>https://container-service-1.ur4EXAMPLE2uq.us-east-2.cs.amazonlightsail.com</code>  The following are the requirements for container service names: <ul> <li> Must be unique within each AWS Region in your Lightsail account. </li> <li> Must contain 1 to 63 characters. </li> <li> Must contain only alphanumeric characters and hyphens. </li> <li> A hyphen (-) can separate words but cannot be at the start or end of the name. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>publicEndpoint</i> An object that describes the endpoint of the deployment.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>publicEndpoint</b>: An object that describes the endpoint of the deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>containers</i> An object that describes the configuration for the containers of the deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>containerPort</i> The port of the container to which traffic is forwarded to.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>containerName</i> The name of the container for the endpoint.<br/>An object that describes the health check configuration of the container.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>healthCheck</b>: An object that describes the health check configuration of the container.
        :return: containerService:  An object that describes a container service.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>url</i> The publicly accessible URL of the container service. If no public endpoint is specified in the <code>currentDeployment</code>, this URL returns a 404 response.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>publicDomainNames</i> The public domain name of the container service, such as <code>example.com</code> and <code>www.example.com</code>. You can specify up to four public domain names for a container service. The domain names that you specify are used when you create a deployment with a container configured as the public endpoint of your container service. If you don't specify public domain names, then you can use the default domain of the container service. <important> You must create and validate an SSL/TLS certificate before you can use public domain names with your container service. Use the <code>CreateCertificate</code> action to create a certificate for the public domain names you want to use with your container service. </important> See <code>CreateContainerService</code> or <code>UpdateContainerService</code> for information about how to specify public domain names for your Lightsail container service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>privateDomainName</i> The private domain name of the container service. The private domain name is accessible only by other resources within the default virtual private cloud (VPC) of your Lightsail account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>principalArn</i> The principal ARN of the container service. The principal ARN can be used to create a trust relationship between your standard AWS account and your Lightsail container service. This allows you to give your service permission to access resources in your standard AWS account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>isDisabled</i> A Boolean value indicating whether the container service is disabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>nextDeployment</i> An object that describes the next deployment of the container service. This value is <code>null</code> when there is no deployment in a <code>pending</code> state.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>nextDeployment</b>: An object that describes the next deployment of the container service. This value is <code>null</code> when there is no deployment in a <code>pending</code> state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>currentDeployment</i> An object that describes the current container deployment of the container service.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>currentDeployment</b>: An object that describes the current container deployment of the container service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>scale</i> The scale specification of the container service. The scale specifies the allocated compute nodes of the container service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>stateDetail</i> An object that describes the current state of the container service. <note> The state detail is populated only when a container service is in a <code>PENDING</code>, <code>DEPLOYING</code>, or <code>UPDATING</code> state. </note>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>stateDetail</b>: An object that describes the current state of the container service. <note> The state detail is populated only when a container service is in a <code>PENDING</code>, <code>DEPLOYING</code>, or <code>UPDATING</code> state. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>state</i> The current state of the container service. The following container service states are possible: <ul> <li>  <code>PENDING</code> - The container service is being created. </li> <li>  <code>READY</code> - The container service is running but it does not have an active container deployment. </li> <li>  <code>DEPLOYING</code> - The container service is launching a container deployment. </li> <li>  <code>RUNNING</code> - The container service is running and it has an active container deployment. </li> <li>  <code>UPDATING</code> - The container service capacity or its custom domains are being updated. </li> <li>  <code>DELETING</code> - The container service is being deleted. </li> <li>  <code>DISABLED</code> - The container service is disabled, and its active deployment and containers, if any, are shut down. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>powerId</i> The ID of the power of the container service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>power</i> The power specification of the container service. The power specifies the amount of RAM, the number of vCPUs, and the base price of the container service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The tag keys and optional values for the resource. For more information about tags in Lightsail, see the <a href="https://lightsail.aws.amazon.com/ls/docs/en/articles/amazon-lightsail-tags">Lightsail Dev Guide</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceType</i> The Lightsail resource type of the container service (i.e., <code>ContainerService</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i> An object that describes the location of the container service, such as the AWS Region and Availability Zone.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>location</b>: An object that describes the location of the container service, such as the AWS Region and Availability Zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The timestamp when the container service was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the container service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>containerServiceName</i> The name of the container service.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>regionName</i> The AWS Region name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>availabilityZone</i> The Availability Zone. Follows the format <code>us-east-2a</code> (case-sensitive).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>message</i> A message that provides more information for the state code. <note> The state detail is populated only when a container service is in a <code>PENDING</code>, <code>DEPLOYING</code>, or <code>UPDATING</code> state. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>code</i> The state code of the container service. The following state codes are possible: <ul> <li> The following state codes are possible if your container service is in a <code>DEPLOYING</code> or <code>UPDATING</code> state: <ul> <li>  <code>CREATING_SYSTEM_RESOURCES</code> - The system resources for your container service are being created. </li> <li>  <code>CREATING_NETWORK_INFRASTRUCTURE</code> - The network infrastructure for your container service are being created. </li> <li>  <code>PROVISIONING_CERTIFICATE</code> - The SSL/TLS certificate for your container service is being created. </li> <li>  <code>PROVISIONING_SERVICE</code> - Your container service is being provisioned. </li> <li>  <code>CREATING_DEPLOYMENT</code> - Your deployment is being created on your container service. </li> <li>  <code>EVALUATING_HEALTH_CHECK</code> - The health of your deployment is being evaluated. </li> <li>  <code>ACTIVATING_DEPLOYMENT</code> - Your deployment is being activated. </li> </ul> </li> <li> The following state codes are possible if your container service is in a <code>PENDING</code> state: <ul> <li>  <code>CERTIFICATE_LIMIT_EXCEEDED</code> - The SSL/TLS certificate required for your container service exceeds the maximum number of certificates allowed for your account. </li> <li>  <code>UNKNOWN_ERROR</code> - An error was experienced when your container service was being created. </li> </ul> </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>containers</i> An object that describes the configuration for the containers of the deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>state</i> The state of the deployment. A deployment can be in one of the following states: <ul> <li>  <code>Activating</code> - The deployment is being created. </li> <li>  <code>Active</code> - The deployment was successfully created, and it's currently running on the container service. The container service can have only one deployment in an active state at a time. </li> <li>  <code>Inactive</code> - The deployment was previously successfully created, but it is not currently running on the container service. </li> <li>  <code>Failed</code> - The deployment failed. Use the <code>GetContainerLog</code> action to view the log events for the containers in the deployment to try to determine the reason for the failure. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The version number of the deployment.<br/>An object that describes the endpoint of the deployment.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>publicEndpoint</b>: An object that describes the endpoint of the deployment.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>containers</i> An object that describes the configuration for the containers of the deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>state</i> The state of the deployment. A deployment can be in one of the following states: <ul> <li>  <code>Activating</code> - The deployment is being created. </li> <li>  <code>Active</code> - The deployment was successfully created, and it's currently running on the container service. The container service can have only one deployment in an active state at a time. </li> <li>  <code>Inactive</code> - The deployment was previously successfully created, but it is not currently running on the container service. </li> <li>  <code>Failed</code> - The deployment failed. Use the <code>GetContainerLog</code> action to view the log events for the containers in the deployment to try to determine the reason for the failure. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The version number of the deployment.<br/>An object that describes the endpoint of the deployment.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>publicEndpoint</b>: An object that describes the endpoint of the deployment.        """
        pass

    def create_container_service_deployment(self, serviceName: str, containers: ContainerMap=None, publicEndpoint: EndpointRequest=None) -> CreateContainerServiceDeploymentResult:
        r"""Creates a deployment for your Amazon Lightsail container service. A deployment specifies the containers that will be launched on the container service and their settings, such as the ports to open, the environment variables to apply, and the launch command to run. It also specifies the container that will serve as the public endpoint of the deployment and its settings, such as the HTTP or HTTPS port to use, and the health check configuration. You can deploy containers to your container service using container images from a public registry like Docker Hub, or from your local machine. For more information, see <a href="https://lightsail.aws.amazon.com/ls/docs/en_us/articles/amazon-lightsail-creating-container-images">Creating container images for your Amazon Lightsail container services</a> in the <i>Lightsail Dev Guide</i>.

        :param self:
        :param publicEndpoint:  An object that describes the settings of the public endpoint for the container service.:<br/>containers:  An object that describes the settings of the containers that will be launched on the container service.<br/>serviceName:  The name of the container service for which to create the deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>healthCheck</i> An object that describes the health check configuration of the container.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>healthCheck</b>: An object that describes the health check configuration of the container.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>containerPort</i> The port of the container to which traffic is forwarded to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>containerName</i> The name of the container for the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>successCodes</i> The HTTP codes to use when checking for a successful response from a container. You can specify values between 200 and 499.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>path</i> The path on the container on which to perform the health check. The default value is <code>/</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>intervalSeconds</i> The approximate interval, in seconds, between health checks of an individual container. You can specify between 5 and 300 seconds. The default value is <code>5</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>timeoutSeconds</i> The amount of time, in seconds, during which no response means a failed health check. You can specify between 2 and 60 seconds. The default value is <code>2</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>unhealthyThreshold</i> The number of consecutive health check failures required before moving the container to the <code>Unhealthy</code> state. The default value is <code>2</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>healthyThreshold</i> The number of consecutive health checks successes required before moving the container to the <code>Healthy</code> state. The default value is <code>2</code>.<br/>
        :return: containerService:  An object that describes a container service.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>url</i> The publicly accessible URL of the container service. If no public endpoint is specified in the <code>currentDeployment</code>, this URL returns a 404 response.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>publicDomainNames</i> The public domain name of the container service, such as <code>example.com</code> and <code>www.example.com</code>. You can specify up to four public domain names for a container service. The domain names that you specify are used when you create a deployment with a container configured as the public endpoint of your container service. If you don't specify public domain names, then you can use the default domain of the container service. <important> You must create and validate an SSL/TLS certificate before you can use public domain names with your container service. Use the <code>CreateCertificate</code> action to create a certificate for the public domain names you want to use with your container service. </important> See <code>CreateContainerService</code> or <code>UpdateContainerService</code> for information about how to specify public domain names for your Lightsail container service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>privateDomainName</i> The private domain name of the container service. The private domain name is accessible only by other resources within the default virtual private cloud (VPC) of your Lightsail account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>principalArn</i> The principal ARN of the container service. The principal ARN can be used to create a trust relationship between your standard AWS account and your Lightsail container service. This allows you to give your service permission to access resources in your standard AWS account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>isDisabled</i> A Boolean value indicating whether the container service is disabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>nextDeployment</i> An object that describes the next deployment of the container service. This value is <code>null</code> when there is no deployment in a <code>pending</code> state.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>nextDeployment</b>: An object that describes the next deployment of the container service. This value is <code>null</code> when there is no deployment in a <code>pending</code> state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>currentDeployment</i> An object that describes the current container deployment of the container service.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>currentDeployment</b>: An object that describes the current container deployment of the container service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>scale</i> The scale specification of the container service. The scale specifies the allocated compute nodes of the container service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>stateDetail</i> An object that describes the current state of the container service. <note> The state detail is populated only when a container service is in a <code>PENDING</code>, <code>DEPLOYING</code>, or <code>UPDATING</code> state. </note>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>stateDetail</b>: An object that describes the current state of the container service. <note> The state detail is populated only when a container service is in a <code>PENDING</code>, <code>DEPLOYING</code>, or <code>UPDATING</code> state. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>state</i> The current state of the container service. The following container service states are possible: <ul> <li>  <code>PENDING</code> - The container service is being created. </li> <li>  <code>READY</code> - The container service is running but it does not have an active container deployment. </li> <li>  <code>DEPLOYING</code> - The container service is launching a container deployment. </li> <li>  <code>RUNNING</code> - The container service is running and it has an active container deployment. </li> <li>  <code>UPDATING</code> - The container service capacity or its custom domains are being updated. </li> <li>  <code>DELETING</code> - The container service is being deleted. </li> <li>  <code>DISABLED</code> - The container service is disabled, and its active deployment and containers, if any, are shut down. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>powerId</i> The ID of the power of the container service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>power</i> The power specification of the container service. The power specifies the amount of RAM, the number of vCPUs, and the base price of the container service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The tag keys and optional values for the resource. For more information about tags in Lightsail, see the <a href="https://lightsail.aws.amazon.com/ls/docs/en/articles/amazon-lightsail-tags">Lightsail Dev Guide</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceType</i> The Lightsail resource type of the container service (i.e., <code>ContainerService</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i> An object that describes the location of the container service, such as the AWS Region and Availability Zone.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>location</b>: An object that describes the location of the container service, such as the AWS Region and Availability Zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The timestamp when the container service was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the container service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>containerServiceName</i> The name of the container service.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>regionName</i> The AWS Region name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>availabilityZone</i> The Availability Zone. Follows the format <code>us-east-2a</code> (case-sensitive).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>message</i> A message that provides more information for the state code. <note> The state detail is populated only when a container service is in a <code>PENDING</code>, <code>DEPLOYING</code>, or <code>UPDATING</code> state. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>code</i> The state code of the container service. The following state codes are possible: <ul> <li> The following state codes are possible if your container service is in a <code>DEPLOYING</code> or <code>UPDATING</code> state: <ul> <li>  <code>CREATING_SYSTEM_RESOURCES</code> - The system resources for your container service are being created. </li> <li>  <code>CREATING_NETWORK_INFRASTRUCTURE</code> - The network infrastructure for your container service are being created. </li> <li>  <code>PROVISIONING_CERTIFICATE</code> - The SSL/TLS certificate for your container service is being created. </li> <li>  <code>PROVISIONING_SERVICE</code> - Your container service is being provisioned. </li> <li>  <code>CREATING_DEPLOYMENT</code> - Your deployment is being created on your container service. </li> <li>  <code>EVALUATING_HEALTH_CHECK</code> - The health of your deployment is being evaluated. </li> <li>  <code>ACTIVATING_DEPLOYMENT</code> - Your deployment is being activated. </li> </ul> </li> <li> The following state codes are possible if your container service is in a <code>PENDING</code> state: <ul> <li>  <code>CERTIFICATE_LIMIT_EXCEEDED</code> - The SSL/TLS certificate required for your container service exceeds the maximum number of certificates allowed for your account. </li> <li>  <code>UNKNOWN_ERROR</code> - An error was experienced when your container service was being created. </li> </ul> </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>containers</i> An object that describes the configuration for the containers of the deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>state</i> The state of the deployment. A deployment can be in one of the following states: <ul> <li>  <code>Activating</code> - The deployment is being created. </li> <li>  <code>Active</code> - The deployment was successfully created, and it's currently running on the container service. The container service can have only one deployment in an active state at a time. </li> <li>  <code>Inactive</code> - The deployment was previously successfully created, but it is not currently running on the container service. </li> <li>  <code>Failed</code> - The deployment failed. Use the <code>GetContainerLog</code> action to view the log events for the containers in the deployment to try to determine the reason for the failure. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The version number of the deployment.<br/>An object that describes the endpoint of the deployment.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>publicEndpoint</b>: An object that describes the endpoint of the deployment.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>containers</i> An object that describes the configuration for the containers of the deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>state</i> The state of the deployment. A deployment can be in one of the following states: <ul> <li>  <code>Activating</code> - The deployment is being created. </li> <li>  <code>Active</code> - The deployment was successfully created, and it's currently running on the container service. The container service can have only one deployment in an active state at a time. </li> <li>  <code>Inactive</code> - The deployment was previously successfully created, but it is not currently running on the container service. </li> <li>  <code>Failed</code> - The deployment failed. Use the <code>GetContainerLog</code> action to view the log events for the containers in the deployment to try to determine the reason for the failure. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The version number of the deployment.<br/>An object that describes the endpoint of the deployment.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>publicEndpoint</b>: An object that describes the endpoint of the deployment.        """
        pass

    def create_container_service_registry_login(self) -> CreateContainerServiceRegistryLoginResult:
        r"""Creates a temporary set of log in credentials that you can use to log in to the Docker process on your local machine. After you're logged in, you can use the native Docker commands to push your local container images to the container image registry of your Amazon Lightsail account so that you can use them with your Lightsail container service. The log in credentials expire 12 hours after they are created, at which point you will need to create a new set of log in credentials. <note> You can only push container images to the container service registry of your Lightsail account. You cannot pull container images or perform any other container image management actions on the container service registry. </note> After you push your container images to the container image registry of your Lightsail account, use the <code>RegisterContainerImage</code> action to register the pushed images to a specific Lightsail container service. <note> This action is not required if you install and use the Lightsail Control (lightsailctl) plugin to push container images to your Lightsail container service. For more information, see <a href="https://lightsail.aws.amazon.com/ls/docs/en_us/articles/amazon-lightsail-pushing-container-images">Pushing and managing container images on your Amazon Lightsail container services</a> in the <i>Lightsail Dev Guide</i>. </note>

        :param self:
        :param 
        :return: registryLogin:  An object that describes the log in information for the container service registry of your Lightsail account.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>registry</i> The address to use to push container images to the container image registry of a Lightsail account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>expiresAt</i> The timestamp of when the container image registry username and password expire. The log in credentials expire 12 hours after they are created, at which point you will need to create a new set of log in credentials using the <code>CreateContainerServiceRegistryLogin</code> action.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>password</i> The container service registry password to use to push container images to the container image registry of a Lightsail account<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>username</i> The container service registry username to use to push container images to the container image registry of a Lightsail account.<br/>        """
        pass

    def create_disk(self, sizeInGb: int, availabilityZone: str, diskName: str, tags: List[Tag]=None, addOns: List[AddOnRequest]=None) -> CreateDiskResult:
        r"""Creates a block storage disk that can be attached to an Amazon Lightsail instance in the same Availability Zone (e.g., <code>us-east-2a</code>). The <code>create disk</code> operation supports tag-based access control via request tags. For more information, see the <a href="https://lightsail.aws.amazon.com/ls/docs/en/articles/amazon-lightsail-controlling-access-using-tags">Lightsail Dev Guide</a>.

        :param self:
        :param addOns:  An array of objects that represent the add-ons to enable for the new disk.<br/>tags:  The tag keys and optional values to add to the resource during create. Use the <code>TagResource</code> action to tag a resource after it's created.<br/>sizeInGb:  The size of the disk in GB (e.g., <code>32</code>).<br/>availabilityZone:  The Availability Zone where you want to create the disk (e.g., <code>us-east-2a</code>). Use the same Availability Zone as the Lightsail instance to which you want to attach the disk. Use the <code>get regions</code> operation to list the Availability Zones where Lightsail is currently available.<br/>diskName:  The unique Lightsail disk name (e.g., <code>my-disk</code>).<br/>
        :return: operations:  An array of objects that describe the result of the action, such as the status of the request, the timestamp of the request, and the resources affected by the request.<br/>        """
        pass

    def create_disk_from_snapshot(self, sizeInGb: int, availabilityZone: str, diskName: str, diskSnapshotName: str=None, tags: List[Tag]=None, addOns: List[AddOnRequest]=None, sourceDiskName: str=None, restoreDate: str=None, useLatestRestorableAutoSnapshot: boolean=None) -> CreateDiskFromSnapshotResult:
        r"""Creates a block storage disk from a manual or automatic snapshot of a disk. The resulting disk can be attached to an Amazon Lightsail instance in the same Availability Zone (e.g., <code>us-east-2a</code>). The <code>create disk from snapshot</code> operation supports tag-based access control via request tags and resource tags applied to the resource identified by <code>disk snapshot name</code>. For more information, see the <a href="https://lightsail.aws.amazon.com/ls/docs/en/articles/amazon-lightsail-controlling-access-using-tags">Lightsail Dev Guide</a>.

        :param self:
        :param useLatestRestorableAutoSnapshot:  A Boolean value to indicate whether to use the latest available automatic snapshot. Constraints: <ul> <li> This parameter cannot be defined together with the <code>restore date</code> parameter. The <code>use latest restorable auto snapshot</code> and <code>restore date</code> parameters are mutually exclusive. </li> <li> Define this parameter only when creating a new disk from an automatic snapshot. For more information, see the <a href="https://lightsail.aws.amazon.com/ls/docs/en_us/articles/amazon-lightsail-configuring-automatic-snapshots">Lightsail Dev Guide</a>. </li> </ul><br/>restoreDate:  The date of the automatic snapshot to use for the new disk. Use the <code>get auto snapshots</code> operation to identify the dates of the available automatic snapshots. Constraints: <ul> <li> Must be specified in <code>YYYY-MM-DD</code> format. </li> <li> This parameter cannot be defined together with the <code>use latest restorable auto snapshot</code> parameter. The <code>restore date</code> and <code>use latest restorable auto snapshot</code> parameters are mutually exclusive. </li> <li> Define this parameter only when creating a new disk from an automatic snapshot. For more information, see the <a href="https://lightsail.aws.amazon.com/ls/docs/en_us/articles/amazon-lightsail-configuring-automatic-snapshots">Lightsail Dev Guide</a>. </li> </ul><br/>sourceDiskName:  The name of the source disk from which the source automatic snapshot was created. Constraints: <ul> <li> This parameter cannot be defined together with the <code>disk snapshot name</code> parameter. The <code>source disk name</code> and <code>disk snapshot name</code> parameters are mutually exclusive. </li> <li> Define this parameter only when creating a new disk from an automatic snapshot. For more information, see the <a href="https://lightsail.aws.amazon.com/ls/docs/en_us/articles/amazon-lightsail-configuring-automatic-snapshots">Lightsail Dev Guide</a>. </li> </ul><br/>addOns:  An array of objects that represent the add-ons to enable for the new disk.<br/>tags:  The tag keys and optional values to add to the resource during create. Use the <code>TagResource</code> action to tag a resource after it's created.<br/>sizeInGb:  The size of the disk in GB (e.g., <code>32</code>).<br/>availabilityZone:  The Availability Zone where you want to create the disk (e.g., <code>us-east-2a</code>). Choose the same Availability Zone as the Lightsail instance where you want to create the disk. Use the GetRegions operation to list the Availability Zones where Lightsail is currently available.<br/>diskSnapshotName:  The name of the disk snapshot (e.g., <code>my-snapshot</code>) from which to create the new storage disk. Constraint: <ul> <li> This parameter cannot be defined together with the <code>source disk name</code> parameter. The <code>disk snapshot name</code> and <code>source disk name</code> parameters are mutually exclusive. </li> </ul><br/>diskName:  The unique Lightsail disk name (e.g., <code>my-disk</code>).<br/>
        :return: operations:  An array of objects that describe the result of the action, such as the status of the request, the timestamp of the request, and the resources affected by the request.<br/>        """
        pass

    def create_disk_snapshot(self, diskSnapshotName: str, diskName: str=None, instanceName: str=None, tags: List[Tag]=None) -> CreateDiskSnapshotResult:
        r"""Creates a snapshot of a block storage disk. You can use snapshots for backups, to make copies of disks, and to save data before shutting down a Lightsail instance. You can take a snapshot of an attached disk that is in use; however, snapshots only capture data that has been written to your disk at the time the snapshot command is issued. This may exclude any data that has been cached by any applications or the operating system. If you can pause any file systems on the disk long enough to take a snapshot, your snapshot should be complete. Nevertheless, if you cannot pause all file writes to the disk, you should unmount the disk from within the Lightsail instance, issue the create disk snapshot command, and then remount the disk to ensure a consistent and complete snapshot. You may remount and use your disk while the snapshot status is pending. You can also use this operation to create a snapshot of an instance's system volume. You might want to do this, for example, to recover data from the system volume of a botched instance or to create a backup of the system volume like you would for a block storage disk. To create a snapshot of a system volume, just define the <code>instance name</code> parameter when issuing the snapshot command, and a snapshot of the defined instance's system volume will be created. After the snapshot is available, you can create a block storage disk from the snapshot and attach it to a running instance to access the data on the disk. The <code>create disk snapshot</code> operation supports tag-based access control via request tags. For more information, see the <a href="https://lightsail.aws.amazon.com/ls/docs/en/articles/amazon-lightsail-controlling-access-using-tags">Lightsail Dev Guide</a>.

        :param self:
        :param tags:  The tag keys and optional values to add to the resource during create. Use the <code>TagResource</code> action to tag a resource after it's created.<br/>instanceName:  The unique name of the source instance (e.g., <code>Amazon_Linux-512MB-Virginia-1</code>). When this is defined, a snapshot of the instance's system volume is created. <note> This parameter cannot be defined together with the <code>disk name</code> parameter. The <code>instance name</code> and <code>disk name</code> parameters are mutually exclusive. </note><br/>diskSnapshotName:  The name of the destination disk snapshot (e.g., <code>my-disk-snapshot</code>) based on the source disk.<br/>diskName:  The unique name of the source disk (e.g., <code>Disk-Virginia-1</code>). <note> This parameter cannot be defined together with the <code>instance name</code> parameter. The <code>disk name</code> and <code>instance name</code> parameters are mutually exclusive. </note><br/>
        :return: operations:  An array of objects that describe the result of the action, such as the status of the request, the timestamp of the request, and the resources affected by the request.<br/>        """
        pass

    def create_distribution(self, bundleId: str, defaultCacheBehavior: CacheBehavior, origin: InputOrigin, distributionName: str, cacheBehaviorSettings: CacheSettings=None, cacheBehaviors: List[CacheBehaviorPerPath]=None, ipAddressType: str=None, tags: List[Tag]=None) -> CreateDistributionResult:
        r"""Creates an Amazon Lightsail content delivery network (CDN) distribution. A distribution is a globally distributed network of caching servers that improve the performance of your website or web application hosted on a Lightsail instance. For more information, see <a href="https://lightsail.aws.amazon.com/ls/docs/en_us/articles/amazon-lightsail-content-delivery-network-distributions">Content delivery networks in Amazon Lightsail</a>.

        :param self:
        :param tags:  The tag keys and optional values to add to the distribution during create. Use the <code>TagResource</code> action to tag a resource after it's created.<br/>ipAddressType:  The IP address type for the distribution. The possible values are <code>ipv4</code> for IPv4 only, and <code>dualstack</code> for IPv4 and IPv6. The default value is <code>dualstack</code>.<br/>bundleId:  The bundle ID to use for the distribution. A distribution bundle describes the specifications of your distribution, such as the monthly cost and monthly network transfer quota. Use the <code>GetDistributionBundles</code> action to get a list of distribution bundle IDs that you can specify.<br/>cacheBehaviors:  An array of objects that describe the per-path cache behavior for the distribution.<br/>cacheBehaviorSettings:  An object that describes the cache behavior settings for the distribution.:<br/>defaultCacheBehavior:  An object that describes the default cache behavior for the distribution.:<br/>origin:  An object that describes the origin resource for the distribution, such as a Lightsail instance or load balancer. The distribution pulls, caches, and serves content from the origin.:<br/>distributionName:  The name for the distribution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>protocolPolicy</i> The protocol that your Amazon Lightsail distribution uses when establishing a connection with your origin to pull content.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>regionName</i> The AWS Region name of the origin resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the origin resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>behavior</i> The cache behavior of the distribution. The following cache behaviors can be specified: <ul> <li>  <b> <code>cache</code> </b> - This option is best for static sites. When specified, your distribution caches and serves your entire website as static content. This behavior is ideal for websites with static content that doesn't change depending on who views it, or for websites that don't use cookies, headers, or query strings to personalize content. </li> <li>  <b> <code>dont-cache</code> </b> - This option is best for sites that serve a mix of static and dynamic content. When specified, your distribution caches and serve only the content that is specified in the distribution's <code>CacheBehaviorPerPath</code> parameter. This behavior is ideal for websites or web applications that use cookies, headers, and query strings to personalize content for individual users. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>forwardedQueryStrings</i> An object that describes the query strings that are forwarded to the origin. Your content is cached based on the query strings that are forwarded.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>forwardedQueryStrings</b>: An object that describes the query strings that are forwarded to the origin. Your content is cached based on the query strings that are forwarded.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>forwardedHeaders</i> An object that describes the headers that are forwarded to the origin. Your content is cached based on the headers that are forwarded.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>forwardedHeaders</b>: An object that describes the headers that are forwarded to the origin. Your content is cached based on the headers that are forwarded.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>forwardedCookies</i> An object that describes the cookies that are forwarded to the origin. Your content is cached based on the cookies that are forwarded.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>forwardedCookies</b>: An object that describes the cookies that are forwarded to the origin. Your content is cached based on the cookies that are forwarded.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>cachedHTTPMethods</i> The HTTP method responses that are cached by your distribution. You can specify the following options: <ul> <li>  <code>GET,HEAD</code> - The distribution caches responses to the <code>GET</code> and <code>HEAD</code> methods. </li> <li>  <code>GET,HEAD,OPTIONS</code> - The distribution caches responses to the <code>GET</code>, <code>HEAD</code>, and <code>OPTIONS</code> methods. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>allowedHTTPMethods</i> The HTTP methods that are processed and forwarded to the distribution's origin. You can specify the following options: <ul> <li>  <code>GET,HEAD</code> - The distribution forwards the <code>GET</code> and <code>HEAD</code> methods. </li> <li>  <code>GET,HEAD,OPTIONS</code> - The distribution forwards the <code>GET</code>, <code>HEAD</code>, and <code>OPTIONS</code> methods. </li> <li>  <code>GET,HEAD,OPTIONS,PUT,PATCH,POST,DELETE</code> - The distribution forwards the <code>GET</code>, <code>HEAD</code>, <code>OPTIONS</code>, <code>PUT</code>, <code>PATCH</code>, <code>POST</code>, and <code>DELETE</code> methods. </li> </ul> If you specify the third option, you might need to restrict access to your distribution's origin so users can't perform operations that you don't want them to. For example, you might not want users to have permission to delete objects from your origin.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>maximumTTL</i> The maximum amount of time that objects stay in the distribution's cache before the distribution forwards another request to the origin to determine whether the object has been updated. The value specified applies only when the origin adds HTTP headers such as <code>Cache-Control max-age</code>, <code>Cache-Control s-maxage</code>, and <code>Expires</code> to objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>minimumTTL</i> The minimum amount of time that objects stay in the distribution's cache before the distribution forwards another request to the origin to determine whether the object has been updated. A value of <code>0</code> must be specified for <code>minimumTTL</code> if the distribution is configured to forward all headers to the origin.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>defaultTTL</i> The default amount of time that objects stay in the distribution's cache before the distribution forwards another request to the origin to determine whether the content has been updated. <note> The value specified applies only when the origin does not add HTTP headers such as <code>Cache-Control max-age</code>, <code>Cache-Control s-maxage</code>, and <code>Expires</code> to objects. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>cookiesAllowList</i> The specific cookies to forward to your distribution's origin.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>option</i> Specifies which cookies to forward to the distribution's origin for a cache behavior: <code>all</code>, <code>none</code>, or <code>allow-list</code> to forward only the cookies specified in the <code>cookiesAllowList</code> parameter.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>headersAllowList</i> The specific headers to forward to your distribution's origin.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>option</i> The headers that you want your distribution to forward to your origin and base caching on. You can configure your distribution to do one of the following: <ul> <li>  <b> <code>all</code> </b> - Forward all headers to your origin. </li> <li>  <b> <code>none</code> </b> - Forward only the default headers. </li> <li>  <b> <code>allow-list</code> </b> - Forward only the headers you specify using the <code>headersAllowList</code> parameter. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>queryStringsAllowList</i> The specific query strings that the distribution forwards to the origin. Your distribution will cache content based on the specified query strings. If the <code>option</code> parameter is true, then your distribution forwards all query strings, regardless of what you specify using the <code>queryStringsAllowList</code> parameter.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>option</i> Indicates whether the distribution forwards and caches based on query strings.<br/>
        :return: operation:  An array of objects that describe the result of the action, such as the status of the request, the timestamp of the request, and the resources affected by the request.:<br/>distribution:  An object that describes the distribution created.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The tag keys and optional values for the resource. For more information about tags in Lightsail, see the <a href="https://lightsail.aws.amazon.com/ls/docs/en/articles/amazon-lightsail-tags">Lightsail Dev Guide</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ipAddressType</i> The IP address type of the distribution. The possible values are <code>ipv4</code> for IPv4 only, and <code>dualstack</code> for IPv4 and IPv6.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ableToUpdateBundle</i> Indicates whether the bundle that is currently applied to your distribution, specified using the <code>distributionName</code> parameter, can be changed to another bundle. Use the <code>UpdateDistributionBundle</code> action to change your distribution's bundle.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>cacheBehaviors</i> An array of objects that describe the per-path cache behavior of the distribution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>cacheBehaviorSettings</i> An object that describes the cache behavior settings of the distribution.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>cacheBehaviorSettings</b>: An object that describes the cache behavior settings of the distribution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>defaultCacheBehavior</i> An object that describes the default cache behavior of the distribution.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>defaultCacheBehavior</b>: An object that describes the default cache behavior of the distribution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>originPublicDNS</i> The public DNS of the origin.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>origin</i> An object that describes the origin resource of the distribution, such as a Lightsail instance or load balancer. The distribution pulls, caches, and serves content from the origin.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>origin</b>: An object that describes the origin resource of the distribution, such as a Lightsail instance or load balancer. The distribution pulls, caches, and serves content from the origin.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>certificateName</i> The name of the SSL/TLS certificate attached to the distribution, if any.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>bundleId</i> The ID of the bundle currently applied to the distribution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>domainName</i> The domain name of the distribution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>isEnabled</i> Indicates whether the distribution is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the distribution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>alternativeDomainNames</i> The alternate domain names of the distribution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceType</i> The Lightsail resource type (e.g., <code>Distribution</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i> An object that describes the location of the distribution, such as the AWS Region and Availability Zone. <note> Lightsail distributions are global resources that can reference an origin in any AWS Region, and distribute its content globally. However, all distributions are located in the <code>us-east-1</code> Region. </note>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>location</b>: An object that describes the location of the distribution, such as the AWS Region and Availability Zone. <note> Lightsail distributions are global resources that can reference an origin in any AWS Region, and distribute its content globally. However, all distributions are located in the <code>us-east-1</code> Region. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The timestamp when the distribution was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>supportCode</i> The support code. Include this code in your email to support when you have questions about your Lightsail distribution. This code enables our support team to look up your Lightsail information more easily.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the distribution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the distribution.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>regionName</i> The AWS Region name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>availabilityZone</i> The Availability Zone. Follows the format <code>us-east-2a</code> (case-sensitive).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>protocolPolicy</i> The protocol that your Amazon Lightsail distribution uses when establishing a connection with your origin to pull content.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>regionName</i> The AWS Region name of the origin resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceType</i> The resource type of the origin resource (e.g., <i>Instance</i>).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the origin resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>behavior</i> The cache behavior of the distribution. The following cache behaviors can be specified: <ul> <li>  <b> <code>cache</code> </b> - This option is best for static sites. When specified, your distribution caches and serves your entire website as static content. This behavior is ideal for websites with static content that doesn't change depending on who views it, or for websites that don't use cookies, headers, or query strings to personalize content. </li> <li>  <b> <code>dont-cache</code> </b> - This option is best for sites that serve a mix of static and dynamic content. When specified, your distribution caches and serve only the content that is specified in the distribution's <code>CacheBehaviorPerPath</code> parameter. This behavior is ideal for websites or web applications that use cookies, headers, and query strings to personalize content for individual users. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>cachedHTTPMethods</i> The HTTP method responses that are cached by your distribution. You can specify the following options: <ul> <li>  <code>GET,HEAD</code> - The distribution caches responses to the <code>GET</code> and <code>HEAD</code> methods. </li> <li>  <code>GET,HEAD,OPTIONS</code> - The distribution caches responses to the <code>GET</code>, <code>HEAD</code>, and <code>OPTIONS</code> methods. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>allowedHTTPMethods</i> The HTTP methods that are processed and forwarded to the distribution's origin. You can specify the following options: <ul> <li>  <code>GET,HEAD</code> - The distribution forwards the <code>GET</code> and <code>HEAD</code> methods. </li> <li>  <code>GET,HEAD,OPTIONS</code> - The distribution forwards the <code>GET</code>, <code>HEAD</code>, and <code>OPTIONS</code> methods. </li> <li>  <code>GET,HEAD,OPTIONS,PUT,PATCH,POST,DELETE</code> - The distribution forwards the <code>GET</code>, <code>HEAD</code>, <code>OPTIONS</code>, <code>PUT</code>, <code>PATCH</code>, <code>POST</code>, and <code>DELETE</code> methods. </li> </ul> If you specify the third option, you might need to restrict access to your distribution's origin so users can't perform operations that you don't want them to. For example, you might not want users to have permission to delete objects from your origin.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>maximumTTL</i> The maximum amount of time that objects stay in the distribution's cache before the distribution forwards another request to the origin to determine whether the object has been updated. The value specified applies only when the origin adds HTTP headers such as <code>Cache-Control max-age</code>, <code>Cache-Control s-maxage</code>, and <code>Expires</code> to objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>minimumTTL</i> The minimum amount of time that objects stay in the distribution's cache before the distribution forwards another request to the origin to determine whether the object has been updated. A value of <code>0</code> must be specified for <code>minimumTTL</code> if the distribution is configured to forward all headers to the origin.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>defaultTTL</i> The default amount of time that objects stay in the distribution's cache before the distribution forwards another request to the origin to determine whether the content has been updated. <note> The value specified applies only when the origin does not add HTTP headers such as <code>Cache-Control max-age</code>, <code>Cache-Control s-maxage</code>, and <code>Expires</code> to objects. </note><br/>An object that describes the cookies that are forwarded to the origin. Your content is cached based on the cookies that are forwarded.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>forwardedCookies</b>: An object that describes the cookies that are forwarded to the origin. Your content is cached based on the cookies that are forwarded.&nbsp;&nbsp;&nbsp;&nbsp; <i>errorDetails</i> The error details.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>errorCode</i> The error code.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusChangedAt</i> The timestamp when the status was changed (e.g., <code>1479816991.349</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the operation. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>operationType</i> The type of operation. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>operationDetails</i> Details about the operation (e.g., <code>Debian-1GB-Ohio-1</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>isTerminal</i> A Boolean value indicating whether the operation is terminal.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i> The AWS Region and Availability Zone.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>location</b>: The AWS Region and Availability Zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The timestamp when the operation was initialized (e.g., <code>1479816991.349</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceType</i> The resource type. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceName</i> The resource name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The ID of the operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>regionName</i> The AWS Region name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>availabilityZone</i> The Availability Zone. Follows the format <code>us-east-2a</code> (case-sensitive).<br/>        """
        pass

    def create_domain(self, domainName: str, tags: List[Tag]=None) -> CreateDomainResult:
        r"""Creates a domain resource for the specified domain (e.g., example.com). The <code>create domain</code> operation supports tag-based access control via request tags. For more information, see the <a href="https://lightsail.aws.amazon.com/ls/docs/en/articles/amazon-lightsail-controlling-access-using-tags">Lightsail Dev Guide</a>.

        :param self:
        :param tags:  The tag keys and optional values to add to the resource during create. Use the <code>TagResource</code> action to tag a resource after it's created.<br/>domainName:  The domain name to manage (e.g., <code>example.com</code>). <note> You cannot register a new domain name using Lightsail. You must register a domain name using Amazon Route 53 or another domain name registrar. If you have already registered your domain, you can enter its name in this parameter to manage the DNS records for that domain using Lightsail. </note><br/>
        :return: operation:  An array of objects that describe the result of the action, such as the status of the request, the timestamp of the request, and the resources affected by the request.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>errorDetails</i> The error details.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>errorCode</i> The error code.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusChangedAt</i> The timestamp when the status was changed (e.g., <code>1479816991.349</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the operation. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>operationType</i> The type of operation. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>operationDetails</i> Details about the operation (e.g., <code>Debian-1GB-Ohio-1</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>isTerminal</i> A Boolean value indicating whether the operation is terminal.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i> The AWS Region and Availability Zone.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>location</b>: The AWS Region and Availability Zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The timestamp when the operation was initialized (e.g., <code>1479816991.349</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceType</i> The resource type. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceName</i> The resource name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The ID of the operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>regionName</i> The AWS Region name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>availabilityZone</i> The Availability Zone. Follows the format <code>us-east-2a</code> (case-sensitive).<br/>        """
        pass

    def create_domain_entry(self, domainEntry: DomainEntry, domainName: str) -> CreateDomainEntryResult:
        r"""Creates one of the following domain name system (DNS) records in a domain DNS zone: Address (A), canonical name (CNAME), mail exchanger (MX), name server (NS), start of authority (SOA), service locator (SRV), or text (TXT). The <code>create domain entry</code> operation supports tag-based access control via resource tags applied to the resource identified by <code>domain name</code>. For more information, see the <a href="https://lightsail.aws.amazon.com/ls/docs/en/articles/amazon-lightsail-controlling-access-using-tags">Lightsail Dev Guide</a>.

        :param self:
        :param domainEntry:  An array of key-value pairs containing information about the domain entry request.:<br/>domainName:  The domain name (e.g., <code>example.com</code>) for which you want to create the domain entry.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>options</i> (Deprecated) The options for the domain entry. <note> In releases prior to November 29, 2017, this parameter was not included in the API response. It is now deprecated. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of domain entry, such as address for IPv4 (A), address for IPv6 (AAAA), canonical name (CNAME), mail exchanger (MX), name server (NS), start of authority (SOA), service locator (SRV), or text (TXT). The following domain entry types can be used: <ul> <li>  <code>A</code>  </li> <li>  <code>AAAA</code>  </li> <li>  <code>CNAME</code>  </li> <li>  <code>MX</code>  </li> <li>  <code>NS</code>  </li> <li>  <code>SOA</code>  </li> <li>  <code>SRV</code>  </li> <li>  <code>TXT</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>isAlias</i> When <code>true</code>, specifies whether the domain entry is an alias used by the Lightsail load balancer. You can include an alias (A type) record in your request, which points to a load balancer DNS name and routes traffic to your load balancer.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>target</i> The target IP address (e.g., <code>192.0.2.0</code>), or AWS name server (e.g., <code>ns-111.awsdns-22.com.</code>). For Lightsail load balancers, the value looks like <code>ab1234c56789c6b86aba6fb203d443bc-123456789.us-east-2.elb.amazonaws.com</code>. For Lightsail distributions, the value looks like <code>exampled1182ne.cloudfront.net</code>. For Lightsail container services, the value looks like <code>container-service-1.example23scljs.us-west-2.cs.amazonlightsail.com</code>. Be sure to also set <code>isAlias</code> to <code>true</code> when setting up an A record for a Lightsail load balancer, distribution, or container service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The ID of the domain recordset entry.<br/>
        :return: operation:  An array of objects that describe the result of the action, such as the status of the request, the timestamp of the request, and the resources affected by the request.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>errorDetails</i> The error details.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>errorCode</i> The error code.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusChangedAt</i> The timestamp when the status was changed (e.g., <code>1479816991.349</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the operation. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>operationType</i> The type of operation. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>operationDetails</i> Details about the operation (e.g., <code>Debian-1GB-Ohio-1</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>isTerminal</i> A Boolean value indicating whether the operation is terminal.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i> The AWS Region and Availability Zone.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>location</b>: The AWS Region and Availability Zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The timestamp when the operation was initialized (e.g., <code>1479816991.349</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceType</i> The resource type. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceName</i> The resource name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The ID of the operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>regionName</i> The AWS Region name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>availabilityZone</i> The Availability Zone. Follows the format <code>us-east-2a</code> (case-sensitive).<br/>        """
        pass

    def create_instance_snapshot(self, instanceName: str, instanceSnapshotName: str, tags: List[Tag]=None) -> CreateInstanceSnapshotResult:
        r"""Creates a snapshot of a specific virtual private server, or <i>instance</i>. You can use a snapshot to create a new instance that is based on that snapshot. The <code>create instance snapshot</code> operation supports tag-based access control via request tags. For more information, see the <a href="https://lightsail.aws.amazon.com/ls/docs/en/articles/amazon-lightsail-controlling-access-using-tags">Lightsail Dev Guide</a>.

        :param self:
        :param tags:  The tag keys and optional values to add to the resource during create. Use the <code>TagResource</code> action to tag a resource after it's created.<br/>instanceName:  The Lightsail instance on which to base your snapshot.<br/>instanceSnapshotName:  The name for your new snapshot.<br/>
        :return: operations:  An array of objects that describe the result of the action, such as the status of the request, the timestamp of the request, and the resources affected by the request.<br/>        """
        pass

    def create_instances(self, bundleId: str, blueprintId: str, availabilityZone: str, instanceNames: List[string], customImageName: str=None, userData: str=None, keyPairName: str=None, tags: List[Tag]=None, addOns: List[AddOnRequest]=None, ipAddressType: str=None) -> CreateInstancesResult:
        r"""Creates one or more Amazon Lightsail instances. The <code>create instances</code> operation supports tag-based access control via request tags. For more information, see the <a href="https://lightsail.aws.amazon.com/ls/docs/en/articles/amazon-lightsail-controlling-access-using-tags">Lightsail Dev Guide</a>.

        :param self:
        :param ipAddressType:  The IP address type for the instance. The possible values are <code>ipv4</code> for IPv4 only, and <code>dualstack</code> for IPv4 and IPv6. The default value is <code>dualstack</code>.<br/>addOns:  An array of objects representing the add-ons to enable for the new instance.<br/>tags:  The tag keys and optional values to add to the resource during create. Use the <code>TagResource</code> action to tag a resource after it's created.<br/>keyPairName:  The name of your key pair.<br/>userData:  A launch script you can create that configures a server with additional user data. For example, you might want to run <code>apt-get -y update</code>. <note> Depending on the machine image you choose, the command to get software on your instance varies. Amazon Linux and CentOS use <code>yum</code>, Debian and Ubuntu use <code>apt-get</code>, and FreeBSD uses <code>pkg</code>. For a complete list, see the <a href="https://lightsail.aws.amazon.com/ls/docs/getting-started/article/compare-options-choose-lightsail-instance-image">Dev Guide</a>. </note><br/>bundleId:  The bundle of specification information for your virtual private server (or <i>instance</i>), including the pricing plan (e.g., <code>micro_1_0</code>).<br/>blueprintId:  The ID for a virtual private server image (e.g., <code>app_wordpress_4_4</code> or <code>app_lamp_7_0</code>). Use the <code>get blueprints</code> operation to return a list of available images (or <i>blueprints</i>). <note> Use active blueprints when creating new instances. Inactive blueprints are listed to support customers with existing instances and are not necessarily available to create new instances. Blueprints are marked inactive when they become outdated due to operating system updates or new application releases. </note><br/>customImageName:  (Deprecated) The name for your custom image. <note> In releases prior to June 12, 2017, this parameter was ignored by the API. It is now deprecated. </note><br/>availabilityZone:  The Availability Zone in which to create your instance. Use the following format: <code>us-east-2a</code> (case sensitive). You can get a list of Availability Zones by using the <a href="http://docs.aws.amazon.com/lightsail/2016-11-28/api-reference/API_GetRegions.html">get regions</a> operation. Be sure to add the <code>include Availability Zones</code> parameter to your request.<br/>instanceNames:  The names to use for your new Lightsail instances. Separate multiple values using quotation marks and commas, for example: <code>["MyFirstInstance","MySecondInstance"]</code> <br/>
        :return: operations:  An array of objects that describe the result of the action, such as the status of the request, the timestamp of the request, and the resources affected by the request.<br/>        """
        pass

    def create_instances_from_snapshot(self, bundleId: str, availabilityZone: str, instanceNames: List[string], attachedDiskMapping: AttachedDiskMap=None, instanceSnapshotName: str=None, userData: str=None, keyPairName: str=None, tags: List[Tag]=None, addOns: List[AddOnRequest]=None, ipAddressType: str=None, sourceInstanceName: str=None, restoreDate: str=None, useLatestRestorableAutoSnapshot: boolean=None) -> CreateInstancesFromSnapshotResult:
        r"""Creates one or more new instances from a manual or automatic snapshot of an instance. The <code>create instances from snapshot</code> operation supports tag-based access control via request tags and resource tags applied to the resource identified by <code>instance snapshot name</code>. For more information, see the <a href="https://lightsail.aws.amazon.com/ls/docs/en/articles/amazon-lightsail-controlling-access-using-tags">Lightsail Dev Guide</a>.

        :param self:
        :param useLatestRestorableAutoSnapshot:  A Boolean value to indicate whether to use the latest available automatic snapshot. Constraints: <ul> <li> This parameter cannot be defined together with the <code>restore date</code> parameter. The <code>use latest restorable auto snapshot</code> and <code>restore date</code> parameters are mutually exclusive. </li> <li> Define this parameter only when creating a new instance from an automatic snapshot. For more information, see the <a href="https://lightsail.aws.amazon.com/ls/docs/en_us/articles/amazon-lightsail-configuring-automatic-snapshots">Lightsail Dev Guide</a>. </li> </ul><br/>restoreDate:  The date of the automatic snapshot to use for the new instance. Use the <code>get auto snapshots</code> operation to identify the dates of the available automatic snapshots. Constraints: <ul> <li> Must be specified in <code>YYYY-MM-DD</code> format. </li> <li> This parameter cannot be defined together with the <code>use latest restorable auto snapshot</code> parameter. The <code>restore date</code> and <code>use latest restorable auto snapshot</code> parameters are mutually exclusive. </li> <li> Define this parameter only when creating a new instance from an automatic snapshot. For more information, see the <a href="https://lightsail.aws.amazon.com/ls/docs/en_us/articles/amazon-lightsail-configuring-automatic-snapshots">Lightsail Dev Guide</a>. </li> </ul><br/>sourceInstanceName:  The name of the source instance from which the source automatic snapshot was created. Constraints: <ul> <li> This parameter cannot be defined together with the <code>instance snapshot name</code> parameter. The <code>source instance name</code> and <code>instance snapshot name</code> parameters are mutually exclusive. </li> <li> Define this parameter only when creating a new instance from an automatic snapshot. For more information, see the <a href="https://lightsail.aws.amazon.com/ls/docs/en_us/articles/amazon-lightsail-configuring-automatic-snapshots">Lightsail Dev Guide</a>. </li> </ul><br/>ipAddressType:  The IP address type for the instance. The possible values are <code>ipv4</code> for IPv4 only, and <code>dualstack</code> for IPv4 and IPv6. The default value is <code>dualstack</code>.<br/>addOns:  An array of objects representing the add-ons to enable for the new instance.<br/>tags:  The tag keys and optional values to add to the resource during create. Use the <code>TagResource</code> action to tag a resource after it's created.<br/>keyPairName:  The name for your key pair.<br/>userData:  You can create a launch script that configures a server with additional user data. For example, <code>apt-get -y update</code>. <note> Depending on the machine image you choose, the command to get software on your instance varies. Amazon Linux and CentOS use <code>yum</code>, Debian and Ubuntu use <code>apt-get</code>, and FreeBSD uses <code>pkg</code>. For a complete list, see the <a href="https://lightsail.aws.amazon.com/ls/docs/getting-started/article/compare-options-choose-lightsail-instance-image">Dev Guide</a>. </note><br/>bundleId:  The bundle of specification information for your virtual private server (or <i>instance</i>), including the pricing plan (e.g., <code>micro_1_0</code>).<br/>instanceSnapshotName:  The name of the instance snapshot on which you are basing your new instances. Use the get instance snapshots operation to return information about your existing snapshots. Constraint: <ul> <li> This parameter cannot be defined together with the <code>source instance name</code> parameter. The <code>instance snapshot name</code> and <code>source instance name</code> parameters are mutually exclusive. </li> </ul><br/>availabilityZone:  The Availability Zone where you want to create your instances. Use the following formatting: <code>us-east-2a</code> (case sensitive). You can get a list of Availability Zones by using the <a href="http://docs.aws.amazon.com/lightsail/2016-11-28/api-reference/API_GetRegions.html">get regions</a> operation. Be sure to add the <code>include Availability Zones</code> parameter to your request.<br/>attachedDiskMapping:  An object containing information about one or more disk mappings.<br/>instanceNames:  The names for your new instances.<br/>
        :return: operations:  An array of objects that describe the result of the action, such as the status of the request, the timestamp of the request, and the resources affected by the request.<br/>        """
        pass

    def create_key_pair(self, keyPairName: str, tags: List[Tag]=None) -> CreateKeyPairResult:
        r"""Creates an SSH key pair. The <code>create key pair</code> operation supports tag-based access control via request tags. For more information, see the <a href="https://lightsail.aws.amazon.com/ls/docs/en/articles/amazon-lightsail-controlling-access-using-tags">Lightsail Dev Guide</a>.

        :param self:
        :param tags:  The tag keys and optional values to add to the resource during create. Use the <code>TagResource</code> action to tag a resource after it's created.<br/>keyPairName:  The name for your new key pair.<br/>
        :return: operation:  An array of objects that describe the result of the action, such as the status of the request, the timestamp of the request, and the resources affected by the request.:<br/>privateKeyBase64:  A base64-encoded RSA private key.<br/>publicKeyBase64:  A base64-encoded public key of the <code>ssh-rsa</code> type.<br/>keyPair:  An array of key-value pairs containing information about the new key pair you just created.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>fingerprint</i> The RSA fingerprint of the key pair.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The tag keys and optional values for the resource. For more information about tags in Lightsail, see the <a href="https://lightsail.aws.amazon.com/ls/docs/en/articles/amazon-lightsail-tags">Lightsail Dev Guide</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceType</i> The resource type (usually <code>KeyPair</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i> The region name and Availability Zone where the key pair was created.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>location</b>: The region name and Availability Zone where the key pair was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The timestamp when the key pair was created (e.g., <code>1479816991.349</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>supportCode</i> The support code. Include this code in your email to support when you have questions about an instance or another resource in Lightsail. This code enables our support team to look up your Lightsail information more easily.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the key pair (e.g., <code>arn:aws:lightsail:us-east-2:123456789101:KeyPair/05859e3d-331d-48ba-9034-12345EXAMPLE</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The friendly name of the SSH key pair.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>regionName</i> The AWS Region name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>availabilityZone</i> The Availability Zone. Follows the format <code>us-east-2a</code> (case-sensitive).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>errorDetails</i> The error details.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>errorCode</i> The error code.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusChangedAt</i> The timestamp when the status was changed (e.g., <code>1479816991.349</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the operation. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>operationType</i> The type of operation. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>operationDetails</i> Details about the operation (e.g., <code>Debian-1GB-Ohio-1</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>isTerminal</i> A Boolean value indicating whether the operation is terminal.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i> The AWS Region and Availability Zone.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>location</b>: The AWS Region and Availability Zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The timestamp when the operation was initialized (e.g., <code>1479816991.349</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceType</i> The resource type. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceName</i> The resource name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The ID of the operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>regionName</i> The AWS Region name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>availabilityZone</i> The Availability Zone. Follows the format <code>us-east-2a</code> (case-sensitive).<br/>        """
        pass

    def create_load_balancer(self, instancePort: int, loadBalancerName: str, healthCheckPath: str=None, certificateName: str=None, certificateDomainName: str=None, certificateAlternativeNames: List[DomainName]=None, tags: List[Tag]=None, ipAddressType: str=None) -> CreateLoadBalancerResult:
        r"""Creates a Lightsail load balancer. To learn more about deciding whether to load balance your application, see <a href="https://lightsail.aws.amazon.com/ls/docs/how-to/article/configure-lightsail-instances-for-load-balancing">Configure your Lightsail instances for load balancing</a>. You can create up to 5 load balancers per AWS Region in your account. When you create a load balancer, you can specify a unique name and port settings. To change additional load balancer settings, use the <code>UpdateLoadBalancerAttribute</code> operation. The <code>create load balancer</code> operation supports tag-based access control via request tags. For more information, see the <a href="https://lightsail.aws.amazon.com/ls/docs/en/articles/amazon-lightsail-controlling-access-using-tags">Lightsail Dev Guide</a>.

        :param self:
        :param ipAddressType:  The IP address type for the load balancer. The possible values are <code>ipv4</code> for IPv4 only, and <code>dualstack</code> for IPv4 and IPv6. The default value is <code>dualstack</code>.<br/>tags:  The tag keys and optional values to add to the resource during create. Use the <code>TagResource</code> action to tag a resource after it's created.<br/>certificateAlternativeNames:  The optional alternative domains and subdomains to use with your SSL/TLS certificate (e.g., <code>www.example.com</code>, <code>example.com</code>, <code>m.example.com</code>, <code>blog.example.com</code>).<br/>certificateDomainName:  The domain name with which your certificate is associated (e.g., <code>example.com</code>). If you specify <code>certificateDomainName</code>, then <code>certificateName</code> is required (and vice-versa).<br/>certificateName:  The name of the SSL/TLS certificate. If you specify <code>certificateName</code>, then <code>certificateDomainName</code> is required (and vice-versa).<br/>healthCheckPath:  The path you provided to perform the load balancer health check. If you didn't specify a health check path, Lightsail uses the root path of your website (e.g., <code>"/"</code>). You may want to specify a custom health check path other than the root of your application if your home page loads slowly or has a lot of media or scripting on it.<br/>instancePort:  The instance port where you're creating your load balancer.<br/>loadBalancerName:  The name of your load balancer.<br/>
        :return: operations:  An array of objects that describe the result of the action, such as the status of the request, the timestamp of the request, and the resources affected by the request.<br/>        """
        pass

    def create_load_balancer_tls_certificate(self, certificateDomainName: str, certificateName: str, loadBalancerName: str, certificateAlternativeNames: List[DomainName]=None, tags: List[Tag]=None) -> CreateLoadBalancerTlsCertificateResult:
        r"""Creates an SSL/TLS certificate for an Amazon Lightsail load balancer. TLS is just an updated, more secure version of Secure Socket Layer (SSL). The <code>CreateLoadBalancerTlsCertificate</code> operation supports tag-based access control via resource tags applied to the resource identified by <code>load balancer name</code>. For more information, see the <a href="https://lightsail.aws.amazon.com/ls/docs/en/articles/amazon-lightsail-controlling-access-using-tags">Lightsail Dev Guide</a>.

        :param self:
        :param tags:  The tag keys and optional values to add to the resource during create. Use the <code>TagResource</code> action to tag a resource after it's created.<br/>certificateAlternativeNames:  An array of strings listing alternative domains and subdomains for your SSL/TLS certificate. Lightsail will de-dupe the names for you. You can have a maximum of 9 alternative names (in addition to the 1 primary domain). We do not support wildcards (e.g., <code>*.example.com</code>).<br/>certificateDomainName:  The domain name (e.g., <code>example.com</code>) for your SSL/TLS certificate.<br/>certificateName:  The SSL/TLS certificate name. You can have up to 10 certificates in your account at one time. Each Lightsail load balancer can have up to 2 certificates associated with it at one time. There is also an overall limit to the number of certificates that can be issue in a 365-day period. For more information, see <a href="http://docs.aws.amazon.com/acm/latest/userguide/acm-limits.html">Limits</a>.<br/>loadBalancerName:  The load balancer name where you want to create the SSL/TLS certificate.<br/>
        :return: operations:  An array of objects that describe the result of the action, such as the status of the request, the timestamp of the request, and the resources affected by the request.<br/>        """
        pass

    def create_relational_database(self, masterUsername: str, masterDatabaseName: str, relationalDatabaseBundleId: str, relationalDatabaseBlueprintId: str, relationalDatabaseName: str, availabilityZone: str=None, masterUserPassword: str=None, preferredBackupWindow: str=None, preferredMaintenanceWindow: str=None, publiclyAccessible: boolean=None, tags: List[Tag]=None) -> CreateRelationalDatabaseResult:
        r"""Creates a new database in Amazon Lightsail. The <code>create relational database</code> operation supports tag-based access control via request tags. For more information, see the <a href="https://lightsail.aws.amazon.com/ls/docs/en/articles/amazon-lightsail-controlling-access-using-tags">Lightsail Dev Guide</a>.

        :param self:
        :param tags:  The tag keys and optional values to add to the resource during create. Use the <code>TagResource</code> action to tag a resource after it's created.<br/>publiclyAccessible:  Specifies the accessibility options for your new database. A value of <code>true</code> specifies a database that is available to resources outside of your Lightsail account. A value of <code>false</code> specifies a database that is available only to your Lightsail resources in the same region as your database.<br/>preferredMaintenanceWindow:  The weekly time range during which system maintenance can occur on your new database. The default is a 30-minute window selected at random from an 8-hour block of time for each AWS Region, occurring on a random day of the week. Constraints: <ul> <li> Must be in the <code>ddd:hh24:mi-ddd:hh24:mi</code> format. </li> <li> Valid days: Mon, Tue, Wed, Thu, Fri, Sat, Sun. </li> <li> Must be at least 30 minutes. </li> <li> Specified in Coordinated Universal Time (UTC). </li> <li> Example: <code>Tue:17:00-Tue:17:30</code>  </li> </ul><br/>preferredBackupWindow:  The daily time range during which automated backups are created for your new database if automated backups are enabled. The default is a 30-minute window selected at random from an 8-hour block of time for each AWS Region. For more information about the preferred backup window time blocks for each region, see the <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithAutomatedBackups.html#USER_WorkingWithAutomatedBackups.BackupWindow">Working With Backups</a> guide in the Amazon Relational Database Service (Amazon RDS) documentation. Constraints: <ul> <li> Must be in the <code>hh24:mi-hh24:mi</code> format. Example: <code>16:00-16:30</code>  </li> <li> Specified in Coordinated Universal Time (UTC). </li> <li> Must not conflict with the preferred maintenance window. </li> <li> Must be at least 30 minutes. </li> </ul><br/>masterUserPassword:  The password for the master user. The password can include any printable ASCII character except "/", triple-quotes, or "@". It cannot contain spaces.  <b>MySQL</b>  Constraints: Must contain from 8 to 41 characters.  <b>PostgreSQL</b>  Constraints: Must contain from 8 to 128 characters.<br/>masterUsername:  The name for the master user.  <b>MySQL</b>  Constraints: <ul> <li> Required for MySQL. </li> <li> Must be 1 to 16 letters or numbers. Can contain underscores. </li> <li> First character must be a letter. </li> <li> Can't be a reserved word for the chosen database engine. For more information about reserved words in MySQL 5.6 or 5.7, see the Keywords and Reserved Words articles for <a href="https://dev.mysql.com/doc/refman/5.6/en/keywords.html">MySQL 5.6</a>, <a href="https://dev.mysql.com/doc/refman/5.7/en/keywords.html">MySQL 5.7</a>, or <a href="https://dev.mysql.com/doc/refman/8.0/en/keywords.html">MySQL 8.0</a>. </li> </ul>  <b>PostgreSQL</b>  Constraints: <ul> <li> Required for PostgreSQL. </li> <li> Must be 1 to 63 letters or numbers. Can contain underscores. </li> <li> First character must be a letter. </li> <li> Can't be a reserved word for the chosen database engine. For more information about reserved words in MySQL 5.6 or 5.7, see the Keywords and Reserved Words articles for <a href="https://www.postgresql.org/docs/9.6/sql-keywords-appendix.html">PostgreSQL 9.6</a>, <a href="https://www.postgresql.org/docs/10/sql-keywords-appendix.html">PostgreSQL 10</a>, <a href="https://www.postgresql.org/docs/11/sql-keywords-appendix.html">PostgreSQL 11</a>, and <a href="https://www.postgresql.org/docs/12/sql-keywords-appendix.html">PostgreSQL 12</a>. </li> </ul><br/>masterDatabaseName:  The meaning of this parameter differs according to the database engine you use.  <b>MySQL</b>  The name of the database to create when the Lightsail database resource is created. If this parameter isn't specified, no database is created in the database resource. Constraints: <ul> <li> Must contain 1 to 64 letters or numbers. </li> <li> Must begin with a letter. Subsequent characters can be letters, underscores, or digits (0- 9). </li> <li> Can't be a word reserved by the specified database engine. For more information about reserved words in MySQL, see the Keywords and Reserved Words articles for <a href="https://dev.mysql.com/doc/refman/5.6/en/keywords.html">MySQL 5.6</a>, <a href="https://dev.mysql.com/doc/refman/5.7/en/keywords.html">MySQL 5.7</a>, and <a href="https://dev.mysql.com/doc/refman/8.0/en/keywords.html">MySQL 8.0</a>. </li> </ul>  <b>PostgreSQL</b>  The name of the database to create when the Lightsail database resource is created. If this parameter isn't specified, a database named <code>postgres</code> is created in the database resource. Constraints: <ul> <li> Must contain 1 to 63 letters or numbers. </li> <li> Must begin with a letter. Subsequent characters can be letters, underscores, or digits (0- 9). </li> <li> Can't be a word reserved by the specified database engine. For more information about reserved words in PostgreSQL, see the SQL Key Words articles for <a href="https://www.postgresql.org/docs/9.6/sql-keywords-appendix.html">PostgreSQL 9.6</a>, <a href="https://www.postgresql.org/docs/10/sql-keywords-appendix.html">PostgreSQL 10</a>, <a href="https://www.postgresql.org/docs/11/sql-keywords-appendix.html">PostgreSQL 11</a>, and <a href="https://www.postgresql.org/docs/12/sql-keywords-appendix.html">PostgreSQL 12</a>. </li> </ul><br/>relationalDatabaseBundleId:  The bundle ID for your new database. A bundle describes the performance specifications for your database. You can get a list of database bundle IDs by using the <code>get relational database bundles</code> operation.<br/>relationalDatabaseBlueprintId:  The blueprint ID for your new database. A blueprint describes the major engine version of a database. You can get a list of database blueprints IDs by using the <code>get relational database blueprints</code> operation.<br/>availabilityZone:  The Availability Zone in which to create your new database. Use the <code>us-east-2a</code> case-sensitive format. You can get a list of Availability Zones by using the <code>get regions</code> operation. Be sure to add the <code>include relational database Availability Zones</code> parameter to your request.<br/>relationalDatabaseName:  The name to use for your new Lightsail database resource. Constraints: <ul> <li> Must contain from 2 to 255 alphanumeric characters, or hyphens. </li> <li> The first and last character must be a letter or number. </li> </ul><br/>
        :return: operations:  An array of objects that describe the result of the action, such as the status of the request, the timestamp of the request, and the resources affected by the request.<br/>        """
        pass

    def create_relational_database_from_snapshot(self, relationalDatabaseName: str, availabilityZone: str=None, publiclyAccessible: boolean=None, relationalDatabaseSnapshotName: str=None, relationalDatabaseBundleId: str=None, sourceRelationalDatabaseName: str=None, restoreTime: IsoDate=None, useLatestRestorableTime: boolean=None, tags: List[Tag]=None) -> CreateRelationalDatabaseFromSnapshotResult:
        r"""Creates a new database from an existing database snapshot in Amazon Lightsail. You can create a new database from a snapshot in if something goes wrong with your original database, or to change it to a different plan, such as a high availability or standard plan. The <code>create relational database from snapshot</code> operation supports tag-based access control via request tags and resource tags applied to the resource identified by relationalDatabaseSnapshotName. For more information, see the <a href="https://lightsail.aws.amazon.com/ls/docs/en/articles/amazon-lightsail-controlling-access-using-tags">Lightsail Dev Guide</a>.

        :param self:
        :param tags:  The tag keys and optional values to add to the resource during create. Use the <code>TagResource</code> action to tag a resource after it's created.<br/>useLatestRestorableTime:  Specifies whether your database is restored from the latest backup time. A value of <code>true</code> restores from the latest backup time.  Default: <code>false</code>  Constraints: Cannot be specified if the <code>restore time</code> parameter is provided.<br/>restoreTime:  The date and time to restore your database from. Constraints: <ul> <li> Must be before the latest restorable time for the database. </li> <li> Cannot be specified if the <code>use latest restorable time</code> parameter is <code>true</code>. </li> <li> Specified in Coordinated Universal Time (UTC). </li> <li> Specified in the Unix time format. For example, if you wish to use a restore time of October 1, 2018, at 8 PM UTC, then you input <code>1538424000</code> as the restore time. </li> </ul><br/>sourceRelationalDatabaseName:  The name of the source database.<br/>relationalDatabaseBundleId:  The bundle ID for your new database. A bundle describes the performance specifications for your database. You can get a list of database bundle IDs by using the <code>get relational database bundles</code> operation. When creating a new database from a snapshot, you cannot choose a bundle that is smaller than the bundle of the source database.<br/>relationalDatabaseSnapshotName:  The name of the database snapshot from which to create your new database.<br/>publiclyAccessible:  Specifies the accessibility options for your new database. A value of <code>true</code> specifies a database that is available to resources outside of your Lightsail account. A value of <code>false</code> specifies a database that is available only to your Lightsail resources in the same region as your database.<br/>availabilityZone:  The Availability Zone in which to create your new database. Use the <code>us-east-2a</code> case-sensitive format. You can get a list of Availability Zones by using the <code>get regions</code> operation. Be sure to add the <code>include relational database Availability Zones</code> parameter to your request.<br/>relationalDatabaseName:  The name to use for your new Lightsail database resource. Constraints: <ul> <li> Must contain from 2 to 255 alphanumeric characters, or hyphens. </li> <li> The first and last character must be a letter or number. </li> </ul><br/>
        :return: operations:  An array of objects that describe the result of the action, such as the status of the request, the timestamp of the request, and the resources affected by the request.<br/>        """
        pass

    def create_relational_database_snapshot(self, relationalDatabaseSnapshotName: str, relationalDatabaseName: str, tags: List[Tag]=None) -> CreateRelationalDatabaseSnapshotResult:
        r"""Creates a snapshot of your database in Amazon Lightsail. You can use snapshots for backups, to make copies of a database, and to save data before deleting a database. The <code>create relational database snapshot</code> operation supports tag-based access control via request tags. For more information, see the <a href="https://lightsail.aws.amazon.com/ls/docs/en/articles/amazon-lightsail-controlling-access-using-tags">Lightsail Dev Guide</a>.

        :param self:
        :param tags:  The tag keys and optional values to add to the resource during create. Use the <code>TagResource</code> action to tag a resource after it's created.<br/>relationalDatabaseSnapshotName:  The name for your new database snapshot. Constraints: <ul> <li> Must contain from 2 to 255 alphanumeric characters, or hyphens. </li> <li> The first and last character must be a letter or number. </li> </ul><br/>relationalDatabaseName:  The name of the database on which to base your new snapshot.<br/>
        :return: operations:  An array of objects that describe the result of the action, such as the status of the request, the timestamp of the request, and the resources affected by the request.<br/>        """
        pass

    def delete_alarm(self, alarmName: str) -> DeleteAlarmResult:
        r"""Deletes an alarm. An alarm is used to monitor a single metric for one of your resources. When a metric condition is met, the alarm can notify you by email, SMS text message, and a banner displayed on the Amazon Lightsail console. For more information, see <a href="https://lightsail.aws.amazon.com/ls/docs/en_us/articles/amazon-lightsail-alarms">Alarms in Amazon Lightsail</a>.

        :param self:
        :param alarmName:  The name of the alarm to delete.<br/>
        :return: operations:  An array of objects that describe the result of the action, such as the status of the request, the timestamp of the request, and the resources affected by the request.<br/>        """
        pass

    def delete_auto_snapshot(self, date: str, resourceName: str) -> DeleteAutoSnapshotResult:
        r"""Deletes an automatic snapshot of an instance or disk. For more information, see the <a href="https://lightsail.aws.amazon.com/ls/docs/en_us/articles/amazon-lightsail-configuring-automatic-snapshots">Lightsail Dev Guide</a>.

        :param self:
        :param date:  The date of the automatic snapshot to delete in <code>YYYY-MM-DD</code> format. Use the <code>get auto snapshots</code> operation to get the available automatic snapshots for a resource.<br/>resourceName:  The name of the source instance or disk from which to delete the automatic snapshot.<br/>
        :return: operations:  An array of objects that describe the result of the action, such as the status of the request, the timestamp of the request, and the resources affected by the request.<br/>        """
        pass

    def delete_certificate(self, certificateName: str) -> DeleteCertificateResult:
        r"""Deletes an SSL/TLS certificate for your Amazon Lightsail content delivery network (CDN) distribution. Certificates that are currently attached to a distribution cannot be deleted. Use the <code>DetachCertificateFromDistribution</code> action to detach a certificate from a distribution.

        :param self:
        :param certificateName:  The name of the certificate to delete. Use the <code>GetCertificates</code> action to get a list of certificate names that you can specify.<br/>
        :return: operations:  An array of objects that describe the result of the action, such as the status of the request, the timestamp of the request, and the resources affected by the request.<br/>        """
        pass

    def delete_contact_method(self, protocol: str) -> DeleteContactMethodResult:
        r"""Deletes a contact method. A contact method is used to send you notifications about your Amazon Lightsail resources. You can add one email address and one mobile phone number contact method in each AWS Region. However, SMS text messaging is not supported in some AWS Regions, and SMS text messages cannot be sent to some countries/regions. For more information, see <a href="https://lightsail.aws.amazon.com/ls/docs/en_us/articles/amazon-lightsail-notifications">Notifications in Amazon Lightsail</a>.

        :param self:
        :param protocol:  The protocol that will be deleted, such as <code>Email</code> or <code>SMS</code> (text messaging). <note> To delete an <code>Email</code> and an <code>SMS</code> contact method if you added both, you must run separate <code>DeleteContactMethod</code> actions to delete each protocol. </note><br/>
        :return: operations:  An array of objects that describe the result of the action, such as the status of the request, the timestamp of the request, and the resources affected by the request.<br/>        """
        pass

    def delete_container_image(self, image: str, serviceName: str) -> DeleteContainerImageResult:
        r"""Deletes a container image that is registered to your Amazon Lightsail container service.

        :param self:
        :param image:  The name of the container image to delete from the container service. Use the <code>GetContainerImages</code> action to get the name of the container images that are registered to a container service. <note> Container images sourced from your Lightsail container service, that are registered and stored on your service, start with a colon (<code>:</code>). For example, <code>:container-service-1.mystaticwebsite.1</code>. Container images sourced from a public registry like Docker Hub don't start with a colon. For example, <code>nginx:latest</code> or <code>nginx</code>. </note><br/>serviceName:  The name of the container service for which to delete a registered container image.<br/>
        :return:         """
        pass

    def delete_container_service(self, serviceName: str) -> DeleteContainerServiceResult:
        r"""Deletes your Amazon Lightsail container service.

        :param self:
        :param serviceName:  The name of the container service to delete.<br/>
        :return:         """
        pass

    def delete_disk(self, diskName: str, forceDeleteAddOns: boolean=None) -> DeleteDiskResult:
        r"""Deletes the specified block storage disk. The disk must be in the <code>available</code> state (not attached to a Lightsail instance). <note> The disk may remain in the <code>deleting</code> state for several minutes. </note> The <code>delete disk</code> operation supports tag-based access control via resource tags applied to the resource identified by <code>disk name</code>. For more information, see the <a href="https://lightsail.aws.amazon.com/ls/docs/en/articles/amazon-lightsail-controlling-access-using-tags">Lightsail Dev Guide</a>.

        :param self:
        :param forceDeleteAddOns:  A Boolean value to indicate whether to delete the enabled add-ons for the disk.<br/>diskName:  The unique name of the disk you want to delete (e.g., <code>my-disk</code>).<br/>
        :return: operations:  An array of objects that describe the result of the action, such as the status of the request, the timestamp of the request, and the resources affected by the request.<br/>        """
        pass

    def delete_disk_snapshot(self, diskSnapshotName: str) -> DeleteDiskSnapshotResult:
        r"""Deletes the specified disk snapshot. When you make periodic snapshots of a disk, the snapshots are incremental, and only the blocks on the device that have changed since your last snapshot are saved in the new snapshot. When you delete a snapshot, only the data not needed for any other snapshot is removed. So regardless of which prior snapshots have been deleted, all active snapshots will have access to all the information needed to restore the disk. The <code>delete disk snapshot</code> operation supports tag-based access control via resource tags applied to the resource identified by <code>disk snapshot name</code>. For more information, see the <a href="https://lightsail.aws.amazon.com/ls/docs/en/articles/amazon-lightsail-controlling-access-using-tags">Lightsail Dev Guide</a>.

        :param self:
        :param diskSnapshotName:  The name of the disk snapshot you want to delete (e.g., <code>my-disk-snapshot</code>).<br/>
        :return: operations:  An array of objects that describe the result of the action, such as the status of the request, the timestamp of the request, and the resources affected by the request.<br/>        """
        pass

    def delete_distribution(self, distributionName: str=None) -> DeleteDistributionResult:
        r"""Deletes your Amazon Lightsail content delivery network (CDN) distribution.

        :param self:
        :param distributionName:  The name of the distribution to delete. Use the <code>GetDistributions</code> action to get a list of distribution names that you can specify.<br/>
        :return: operation:  An object that describes the result of the action, such as the status of the request, the timestamp of the request, and the resources affected by the request.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>errorDetails</i> The error details.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>errorCode</i> The error code.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusChangedAt</i> The timestamp when the status was changed (e.g., <code>1479816991.349</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the operation. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>operationType</i> The type of operation. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>operationDetails</i> Details about the operation (e.g., <code>Debian-1GB-Ohio-1</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>isTerminal</i> A Boolean value indicating whether the operation is terminal.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i> The AWS Region and Availability Zone.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>location</b>: The AWS Region and Availability Zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The timestamp when the operation was initialized (e.g., <code>1479816991.349</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceType</i> The resource type. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceName</i> The resource name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The ID of the operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>regionName</i> The AWS Region name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>availabilityZone</i> The Availability Zone. Follows the format <code>us-east-2a</code> (case-sensitive).<br/>        """
        pass

    def delete_domain(self, domainName: str) -> DeleteDomainResult:
        r"""Deletes the specified domain recordset and all of its domain records. The <code>delete domain</code> operation supports tag-based access control via resource tags applied to the resource identified by <code>domain name</code>. For more information, see the <a href="https://lightsail.aws.amazon.com/ls/docs/en/articles/amazon-lightsail-controlling-access-using-tags">Lightsail Dev Guide</a>.

        :param self:
        :param domainName:  The specific domain name to delete.<br/>
        :return: operation:  An array of objects that describe the result of the action, such as the status of the request, the timestamp of the request, and the resources affected by the request.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>errorDetails</i> The error details.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>errorCode</i> The error code.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusChangedAt</i> The timestamp when the status was changed (e.g., <code>1479816991.349</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the operation. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>operationType</i> The type of operation. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>operationDetails</i> Details about the operation (e.g., <code>Debian-1GB-Ohio-1</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>isTerminal</i> A Boolean value indicating whether the operation is terminal.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i> The AWS Region and Availability Zone.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>location</b>: The AWS Region and Availability Zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The timestamp when the operation was initialized (e.g., <code>1479816991.349</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceType</i> The resource type. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceName</i> The resource name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The ID of the operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>regionName</i> The AWS Region name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>availabilityZone</i> The Availability Zone. Follows the format <code>us-east-2a</code> (case-sensitive).<br/>        """
        pass

    def delete_domain_entry(self, domainEntry: DomainEntry, domainName: str) -> DeleteDomainEntryResult:
        r"""Deletes a specific domain entry. The <code>delete domain entry</code> operation supports tag-based access control via resource tags applied to the resource identified by <code>domain name</code>. For more information, see the <a href="https://lightsail.aws.amazon.com/ls/docs/en/articles/amazon-lightsail-controlling-access-using-tags">Lightsail Dev Guide</a>.

        :param self:
        :param domainEntry:  An array of key-value pairs containing information about your domain entries.:<br/>domainName:  The name of the domain entry to delete.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>options</i> (Deprecated) The options for the domain entry. <note> In releases prior to November 29, 2017, this parameter was not included in the API response. It is now deprecated. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of domain entry, such as address for IPv4 (A), address for IPv6 (AAAA), canonical name (CNAME), mail exchanger (MX), name server (NS), start of authority (SOA), service locator (SRV), or text (TXT). The following domain entry types can be used: <ul> <li>  <code>A</code>  </li> <li>  <code>AAAA</code>  </li> <li>  <code>CNAME</code>  </li> <li>  <code>MX</code>  </li> <li>  <code>NS</code>  </li> <li>  <code>SOA</code>  </li> <li>  <code>SRV</code>  </li> <li>  <code>TXT</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>isAlias</i> When <code>true</code>, specifies whether the domain entry is an alias used by the Lightsail load balancer. You can include an alias (A type) record in your request, which points to a load balancer DNS name and routes traffic to your load balancer.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>target</i> The target IP address (e.g., <code>192.0.2.0</code>), or AWS name server (e.g., <code>ns-111.awsdns-22.com.</code>). For Lightsail load balancers, the value looks like <code>ab1234c56789c6b86aba6fb203d443bc-123456789.us-east-2.elb.amazonaws.com</code>. For Lightsail distributions, the value looks like <code>exampled1182ne.cloudfront.net</code>. For Lightsail container services, the value looks like <code>container-service-1.example23scljs.us-west-2.cs.amazonlightsail.com</code>. Be sure to also set <code>isAlias</code> to <code>true</code> when setting up an A record for a Lightsail load balancer, distribution, or container service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The ID of the domain recordset entry.<br/>
        :return: operation:  An array of objects that describe the result of the action, such as the status of the request, the timestamp of the request, and the resources affected by the request.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>errorDetails</i> The error details.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>errorCode</i> The error code.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusChangedAt</i> The timestamp when the status was changed (e.g., <code>1479816991.349</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the operation. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>operationType</i> The type of operation. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>operationDetails</i> Details about the operation (e.g., <code>Debian-1GB-Ohio-1</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>isTerminal</i> A Boolean value indicating whether the operation is terminal.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i> The AWS Region and Availability Zone.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>location</b>: The AWS Region and Availability Zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The timestamp when the operation was initialized (e.g., <code>1479816991.349</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceType</i> The resource type. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceName</i> The resource name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The ID of the operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>regionName</i> The AWS Region name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>availabilityZone</i> The Availability Zone. Follows the format <code>us-east-2a</code> (case-sensitive).<br/>        """
        pass

    def delete_instance(self, instanceName: str, forceDeleteAddOns: boolean=None) -> DeleteInstanceResult:
        r"""Deletes an Amazon Lightsail instance. The <code>delete instance</code> operation supports tag-based access control via resource tags applied to the resource identified by <code>instance name</code>. For more information, see the <a href="https://lightsail.aws.amazon.com/ls/docs/en/articles/amazon-lightsail-controlling-access-using-tags">Lightsail Dev Guide</a>.

        :param self:
        :param forceDeleteAddOns:  A Boolean value to indicate whether to delete the enabled add-ons for the disk.<br/>instanceName:  The name of the instance to delete.<br/>
        :return: operations:  An array of objects that describe the result of the action, such as the status of the request, the timestamp of the request, and the resources affected by the request.<br/>        """
        pass

    def delete_instance_snapshot(self, instanceSnapshotName: str) -> DeleteInstanceSnapshotResult:
        r"""Deletes a specific snapshot of a virtual private server (or <i>instance</i>). The <code>delete instance snapshot</code> operation supports tag-based access control via resource tags applied to the resource identified by <code>instance snapshot name</code>. For more information, see the <a href="https://lightsail.aws.amazon.com/ls/docs/en/articles/amazon-lightsail-controlling-access-using-tags">Lightsail Dev Guide</a>.

        :param self:
        :param instanceSnapshotName:  The name of the snapshot to delete.<br/>
        :return: operations:  An array of objects that describe the result of the action, such as the status of the request, the timestamp of the request, and the resources affected by the request.<br/>        """
        pass

    def delete_key_pair(self, keyPairName: str) -> DeleteKeyPairResult:
        r"""Deletes a specific SSH key pair. The <code>delete key pair</code> operation supports tag-based access control via resource tags applied to the resource identified by <code>key pair name</code>. For more information, see the <a href="https://lightsail.aws.amazon.com/ls/docs/en/articles/amazon-lightsail-controlling-access-using-tags">Lightsail Dev Guide</a>.

        :param self:
        :param keyPairName:  The name of the key pair to delete.<br/>
        :return: operation:  An array of objects that describe the result of the action, such as the status of the request, the timestamp of the request, and the resources affected by the request.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>errorDetails</i> The error details.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>errorCode</i> The error code.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusChangedAt</i> The timestamp when the status was changed (e.g., <code>1479816991.349</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the operation. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>operationType</i> The type of operation. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>operationDetails</i> Details about the operation (e.g., <code>Debian-1GB-Ohio-1</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>isTerminal</i> A Boolean value indicating whether the operation is terminal.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i> The AWS Region and Availability Zone.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>location</b>: The AWS Region and Availability Zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The timestamp when the operation was initialized (e.g., <code>1479816991.349</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceType</i> The resource type. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceName</i> The resource name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The ID of the operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>regionName</i> The AWS Region name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>availabilityZone</i> The Availability Zone. Follows the format <code>us-east-2a</code> (case-sensitive).<br/>        """
        pass

    def delete_known_host_keys(self, instanceName: str) -> DeleteKnownHostKeysResult:
        r"""Deletes the known host key or certificate used by the Amazon Lightsail browser-based SSH or RDP clients to authenticate an instance. This operation enables the Lightsail browser-based SSH or RDP clients to connect to the instance after a host key mismatch. <important> Perform this operation only if you were expecting the host key or certificate mismatch or if you are familiar with the new host key or certificate on the instance. For more information, see <a href="https://lightsail.aws.amazon.com/ls/docs/en/articles/amazon-lightsail-troubleshooting-browser-based-ssh-rdp-client-connection">Troubleshooting connection issues when using the Amazon Lightsail browser-based SSH or RDP client</a>. </important>

        :param self:
        :param instanceName:  The name of the instance for which you want to reset the host key or certificate.<br/>
        :return: operations:  An array of objects that describe the result of the action, such as the status of the request, the timestamp of the request, and the resources affected by the request.<br/>        """
        pass

    def delete_load_balancer(self, loadBalancerName: str) -> DeleteLoadBalancerResult:
        r"""Deletes a Lightsail load balancer and all its associated SSL/TLS certificates. Once the load balancer is deleted, you will need to create a new load balancer, create a new certificate, and verify domain ownership again. The <code>delete load balancer</code> operation supports tag-based access control via resource tags applied to the resource identified by <code>load balancer name</code>. For more information, see the <a href="https://lightsail.aws.amazon.com/ls/docs/en/articles/amazon-lightsail-controlling-access-using-tags">Lightsail Dev Guide</a>.

        :param self:
        :param loadBalancerName:  The name of the load balancer you want to delete.<br/>
        :return: operations:  An array of objects that describe the result of the action, such as the status of the request, the timestamp of the request, and the resources affected by the request.<br/>        """
        pass

    def delete_load_balancer_tls_certificate(self, certificateName: str, loadBalancerName: str, force: boolean=None) -> DeleteLoadBalancerTlsCertificateResult:
        r"""Deletes an SSL/TLS certificate associated with a Lightsail load balancer. The <code>DeleteLoadBalancerTlsCertificate</code> operation supports tag-based access control via resource tags applied to the resource identified by <code>load balancer name</code>. For more information, see the <a href="https://lightsail.aws.amazon.com/ls/docs/en/articles/amazon-lightsail-controlling-access-using-tags">Lightsail Dev Guide</a>.

        :param self:
        :param force:  When <code>true</code>, forces the deletion of an SSL/TLS certificate. There can be two certificates associated with a Lightsail load balancer: the primary and the backup. The <code>force</code> parameter is required when the primary SSL/TLS certificate is in use by an instance attached to the load balancer.<br/>certificateName:  The SSL/TLS certificate name.<br/>loadBalancerName:  The load balancer name.<br/>
        :return: operations:  An array of objects that describe the result of the action, such as the status of the request, the timestamp of the request, and the resources affected by the request.<br/>        """
        pass

    def delete_relational_database(self, relationalDatabaseName: str, skipFinalSnapshot: boolean=None, finalRelationalDatabaseSnapshotName: str=None) -> DeleteRelationalDatabaseResult:
        r"""Deletes a database in Amazon Lightsail. The <code>delete relational database</code> operation supports tag-based access control via resource tags applied to the resource identified by relationalDatabaseName. For more information, see the <a href="https://lightsail.aws.amazon.com/ls/docs/en/articles/amazon-lightsail-controlling-access-using-tags">Lightsail Dev Guide</a>.

        :param self:
        :param finalRelationalDatabaseSnapshotName:  The name of the database snapshot created if <code>skip final snapshot</code> is <code>false</code>, which is the default value for that parameter. <note> Specifying this parameter and also specifying the <code>skip final snapshot</code> parameter to <code>true</code> results in an error. </note> Constraints: <ul> <li> Must contain from 2 to 255 alphanumeric characters, or hyphens. </li> <li> The first and last character must be a letter or number. </li> </ul><br/>skipFinalSnapshot:  Determines whether a final database snapshot is created before your database is deleted. If <code>true</code> is specified, no database snapshot is created. If <code>false</code> is specified, a database snapshot is created before your database is deleted. You must specify the <code>final relational database snapshot name</code> parameter if the <code>skip final snapshot</code> parameter is <code>false</code>. Default: <code>false</code> <br/>relationalDatabaseName:  The name of the database that you are deleting.<br/>
        :return: operations:  An array of objects that describe the result of the action, such as the status of the request, the timestamp of the request, and the resources affected by the request.<br/>        """
        pass

    def delete_relational_database_snapshot(self, relationalDatabaseSnapshotName: str) -> DeleteRelationalDatabaseSnapshotResult:
        r"""Deletes a database snapshot in Amazon Lightsail. The <code>delete relational database snapshot</code> operation supports tag-based access control via resource tags applied to the resource identified by relationalDatabaseName. For more information, see the <a href="https://lightsail.aws.amazon.com/ls/docs/en/articles/amazon-lightsail-controlling-access-using-tags">Lightsail Dev Guide</a>.

        :param self:
        :param relationalDatabaseSnapshotName:  The name of the database snapshot that you are deleting.<br/>
        :return: operations:  An array of objects that describe the result of the action, such as the status of the request, the timestamp of the request, and the resources affected by the request.<br/>        """
        pass

    def detach_certificate_from_distribution(self, distributionName: str) -> DetachCertificateFromDistributionResult:
        r"""Detaches an SSL/TLS certificate from your Amazon Lightsail content delivery network (CDN) distribution. After the certificate is detached, your distribution stops accepting traffic for all of the domains that are associated with the certificate.

        :param self:
        :param distributionName:  The name of the distribution from which to detach the certificate. Use the <code>GetDistributions</code> action to get a list of distribution names that you can specify.<br/>
        :return: operation:  An object that describes the result of the action, such as the status of the request, the timestamp of the request, and the resources affected by the request.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>errorDetails</i> The error details.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>errorCode</i> The error code.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusChangedAt</i> The timestamp when the status was changed (e.g., <code>1479816991.349</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the operation. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>operationType</i> The type of operation. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>operationDetails</i> Details about the operation (e.g., <code>Debian-1GB-Ohio-1</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>isTerminal</i> A Boolean value indicating whether the operation is terminal.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i> The AWS Region and Availability Zone.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>location</b>: The AWS Region and Availability Zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The timestamp when the operation was initialized (e.g., <code>1479816991.349</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceType</i> The resource type. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceName</i> The resource name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The ID of the operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>regionName</i> The AWS Region name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>availabilityZone</i> The Availability Zone. Follows the format <code>us-east-2a</code> (case-sensitive).<br/>        """
        pass

    def detach_disk(self, diskName: str) -> DetachDiskResult:
        r"""Detaches a stopped block storage disk from a Lightsail instance. Make sure to unmount any file systems on the device within your operating system before stopping the instance and detaching the disk. The <code>detach disk</code> operation supports tag-based access control via resource tags applied to the resource identified by <code>disk name</code>. For more information, see the <a href="https://lightsail.aws.amazon.com/ls/docs/en/articles/amazon-lightsail-controlling-access-using-tags">Lightsail Dev Guide</a>.

        :param self:
        :param diskName:  The unique name of the disk you want to detach from your instance (e.g., <code>my-disk</code>).<br/>
        :return: operations:  An array of objects that describe the result of the action, such as the status of the request, the timestamp of the request, and the resources affected by the request.<br/>        """
        pass

    def detach_instances_from_load_balancer(self, instanceNames: List[ResourceName], loadBalancerName: str) -> DetachInstancesFromLoadBalancerResult:
        r"""Detaches the specified instances from a Lightsail load balancer. This operation waits until the instances are no longer needed before they are detached from the load balancer. The <code>detach instances from load balancer</code> operation supports tag-based access control via resource tags applied to the resource identified by <code>load balancer name</code>. For more information, see the <a href="https://lightsail.aws.amazon.com/ls/docs/en/articles/amazon-lightsail-controlling-access-using-tags">Lightsail Dev Guide</a>.

        :param self:
        :param instanceNames:  An array of strings containing the names of the instances you want to detach from the load balancer.<br/>loadBalancerName:  The name of the Lightsail load balancer.<br/>
        :return: operations:  An array of objects that describe the result of the action, such as the status of the request, the timestamp of the request, and the resources affected by the request.<br/>        """
        pass

    def detach_static_ip(self, staticIpName: str) -> DetachStaticIpResult:
        r"""Detaches a static IP from the Amazon Lightsail instance to which it is attached.

        :param self:
        :param staticIpName:  The name of the static IP to detach from the instance.<br/>
        :return: operations:  An array of objects that describe the result of the action, such as the status of the request, the timestamp of the request, and the resources affected by the request.<br/>        """
        pass

    def disable_add_on(self, resourceName: str, addOnType: str) -> DisableAddOnResult:
        r"""Disables an add-on for an Amazon Lightsail resource. For more information, see the <a href="https://lightsail.aws.amazon.com/ls/docs/en_us/articles/amazon-lightsail-configuring-automatic-snapshots">Lightsail Dev Guide</a>.

        :param self:
        :param resourceName:  The name of the source resource for which to disable the add-on.<br/>addOnType:  The add-on type to disable.<br/>
        :return: operations:  An array of objects that describe the result of the action, such as the status of the request, the timestamp of the request, and the resources affected by the request.<br/>        """
        pass

    def download_default_key_pair(self) -> DownloadDefaultKeyPairResult:
        r"""Downloads the default SSH key pair from the user's account.

        :param self:
        :param 
        :return: privateKeyBase64:  A base64-encoded RSA private key.<br/>publicKeyBase64:  A base64-encoded public key of the <code>ssh-rsa</code> type.<br/>        """
        pass

    def enable_add_on(self, addOnRequest: AddOnRequest, resourceName: str) -> EnableAddOnResult:
        r"""Enables or modifies an add-on for an Amazon Lightsail resource. For more information, see the <a href="https://lightsail.aws.amazon.com/ls/docs/en_us/articles/amazon-lightsail-configuring-automatic-snapshots">Lightsail Dev Guide</a>.

        :param self:
        :param addOnRequest:  An array of strings representing the add-on to enable or modify.:<br/>resourceName:  The name of the source resource for which to enable or modify the add-on.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>autoSnapshotAddOnRequest</i> An object that represents additional parameters when enabling or modifying the automatic snapshot add-on.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>autoSnapshotAddOnRequest</b>: An object that represents additional parameters when enabling or modifying the automatic snapshot add-on.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>addOnType</i> The add-on type.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>snapshotTimeOfDay</i> The daily time when an automatic snapshot will be created. Constraints: <ul> <li> Must be in <code>HH:00</code> format, and in an hourly increment. </li> <li> Specified in Coordinated Universal Time (UTC). </li> <li> The snapshot will be automatically created between the time specified and up to 45 minutes after. </li> </ul><br/>
        :return: operations:  An array of objects that describe the result of the action, such as the status of the request, the timestamp of the request, and the resources affected by the request.<br/>        """
        pass

    def export_snapshot(self, sourceSnapshotName: str) -> ExportSnapshotResult:
        r"""Exports an Amazon Lightsail instance or block storage disk snapshot to Amazon Elastic Compute Cloud (Amazon EC2). This operation results in an export snapshot record that can be used with the <code>create cloud formation stack</code> operation to create new Amazon EC2 instances. Exported instance snapshots appear in Amazon EC2 as Amazon Machine Images (AMIs), and the instance system disk appears as an Amazon Elastic Block Store (Amazon EBS) volume. Exported disk snapshots appear in Amazon EC2 as Amazon EBS volumes. Snapshots are exported to the same Amazon Web Services Region in Amazon EC2 as the source Lightsail snapshot. <p/> The <code>export snapshot</code> operation supports tag-based access control via resource tags applied to the resource identified by <code>source snapshot name</code>. For more information, see the <a href="https://lightsail.aws.amazon.com/ls/docs/en/articles/amazon-lightsail-controlling-access-using-tags">Lightsail Dev Guide</a>. <note> Use the <code>get instance snapshots</code> or <code>get disk snapshots</code> operations to get a list of snapshots that you can export to Amazon EC2. </note>

        :param self:
        :param sourceSnapshotName:  The name of the instance or disk snapshot to be exported to Amazon EC2.<br/>
        :return: operations:  An array of objects that describe the result of the action, such as the status of the request, the timestamp of the request, and the resources affected by the request.<br/>        """
        pass

    def get_active_names(self, pageToken: str=None) -> GetActiveNamesResult:
        r"""Returns the names of all active (not deleted) resources.

        :param self:
        :param pageToken:  The token to advance to the next page of results from your request. To get a page token, perform an initial <code>GetActiveNames</code> request. If your results are paginated, the response will return a next page token that you can specify as the page token in a subsequent request.<br/>
        :return: nextPageToken:  The token to advance to the next page of results from your request. A next page token is not returned if there are no more results to display. To get the next page of results, perform another <code>GetActiveNames</code> request and specify the next page token using the <code>pageToken</code> parameter.<br/>activeNames:  The list of active names returned by the get active names request.<br/>        """
        pass

    def get_alarms(self, alarmName: str=None, pageToken: str=None, monitoredResourceName: str=None) -> GetAlarmsResult:
        r"""Returns information about the configured alarms. Specify an alarm name in your request to return information about a specific alarm, or specify a monitored resource name to return information about all alarms for a specific resource. An alarm is used to monitor a single metric for one of your resources. When a metric condition is met, the alarm can notify you by email, SMS text message, and a banner displayed on the Amazon Lightsail console. For more information, see <a href="https://lightsail.aws.amazon.com/ls/docs/en_us/articles/amazon-lightsail-alarms">Alarms in Amazon Lightsail</a>.

        :param self:
        :param monitoredResourceName:  The name of the Lightsail resource being monitored by the alarm. Specify a monitored resource name to return information about all alarms for a specific resource.<br/>pageToken:  The token to advance to the next page of results from your request. To get a page token, perform an initial <code>GetAlarms</code> request. If your results are paginated, the response will return a next page token that you can specify as the page token in a subsequent request.<br/>alarmName:  The name of the alarm. Specify an alarm name to return information about a specific alarm.<br/>
        :return: nextPageToken:  The token to advance to the next page of results from your request. A next page token is not returned if there are no more results to display. To get the next page of results, perform another <code>GetAlarms</code> request and specify the next page token using the <code>pageToken</code> parameter.<br/>alarms:  An array of objects that describe the alarms.<br/>        """
        pass

    def get_auto_snapshots(self, resourceName: str) -> GetAutoSnapshotsResult:
        r"""Returns the available automatic snapshots for an instance or disk. For more information, see the <a href="https://lightsail.aws.amazon.com/ls/docs/en_us/articles/amazon-lightsail-configuring-automatic-snapshots">Lightsail Dev Guide</a>.

        :param self:
        :param resourceName:  The name of the source instance or disk from which to get automatic snapshot information.<br/>
        :return: autoSnapshots:  An array of objects that describe the automatic snapshots that are available for the specified source instance or disk.<br/>resourceType:  The resource type (e.g., <code>Instance</code> or <code>Disk</code>).<br/>resourceName:  The name of the source instance or disk for the automatic snapshots.<br/>        """
        pass

    def get_blueprints(self, includeInactive: boolean=None, pageToken: str=None) -> GetBlueprintsResult:
        r"""Returns the list of available instance images, or <i>blueprints</i>. You can use a blueprint to create a new instance already running a specific operating system, as well as a preinstalled app or development stack. The software each instance is running depends on the blueprint image you choose. <note> Use active blueprints when creating new instances. Inactive blueprints are listed to support customers with existing instances and are not necessarily available to create new instances. Blueprints are marked inactive when they become outdated due to operating system updates or new application releases. </note>

        :param self:
        :param pageToken:  The token to advance to the next page of results from your request. To get a page token, perform an initial <code>GetBlueprints</code> request. If your results are paginated, the response will return a next page token that you can specify as the page token in a subsequent request.<br/>includeInactive:  A Boolean value indicating whether to include inactive results in your request.<br/>
        :return: nextPageToken:  The token to advance to the next page of results from your request. A next page token is not returned if there are no more results to display. To get the next page of results, perform another <code>GetBlueprints</code> request and specify the next page token using the <code>pageToken</code> parameter.<br/>blueprints:  An array of key-value pairs that contains information about the available blueprints.<br/>        """
        pass

    def get_bundles(self, includeInactive: boolean=None, pageToken: str=None) -> GetBundlesResult:
        r"""Returns the list of bundles that are available for purchase. A bundle describes the specs for your virtual private server (or <i>instance</i>).

        :param self:
        :param pageToken:  The token to advance to the next page of results from your request. To get a page token, perform an initial <code>GetBundles</code> request. If your results are paginated, the response will return a next page token that you can specify as the page token in a subsequent request.<br/>includeInactive:  A Boolean value that indicates whether to include inactive bundle results in your request.<br/>
        :return: nextPageToken:  The token to advance to the next page of results from your request. A next page token is not returned if there are no more results to display. To get the next page of results, perform another <code>GetBundles</code> request and specify the next page token using the <code>pageToken</code> parameter.<br/>bundles:  An array of key-value pairs that contains information about the available bundles.<br/>        """
        pass

    def get_certificates(self, certificateStatuses: List[CertificateStatus]=None, includeCertificateDetails: IncludeCertificateDetails=None, certificateName: str=None) -> GetCertificatesResult:
        r"""Returns information about one or more Amazon Lightsail SSL/TLS certificates. <note> To get a summary of a certificate, ommit <code>includeCertificateDetails</code> from your request. The response will include only the certificate Amazon Resource Name (ARN), certificate name, domain name, and tags. </note>

        :param self:
        :param certificateName:  The name for the certificate for which to return information. When omitted, the response includes all of your certificates in the AWS Region where the request is made.<br/>includeCertificateDetails:  Indicates whether to include detailed information about the certificates in the response. When omitted, the response includes only the certificate names, Amazon Resource Names (ARNs), domain names, and tags.<br/>certificateStatuses:  The status of the certificates for which to return information. For example, specify <code>ISSUED</code> to return only certificates with an <code>ISSUED</code> status. When omitted, the response includes all of your certificates in the AWS Region where the request is made, regardless of their current status.<br/>
        :return: certificates:  An object that describes certificates.<br/>        """
        pass

    def get_cloud_formation_stack_records(self, pageToken: str=None) -> GetCloudFormationStackRecordsResult:
        r"""Returns the CloudFormation stack record created as a result of the <code>create cloud formation stack</code> operation. An AWS CloudFormation stack is used to create a new Amazon EC2 instance from an exported Lightsail snapshot.

        :param self:
        :param pageToken:  The token to advance to the next page of results from your request. To get a page token, perform an initial <code>GetClouFormationStackRecords</code> request. If your results are paginated, the response will return a next page token that you can specify as the page token in a subsequent request.<br/>
        :return: nextPageToken:  The token to advance to the next page of results from your request. A next page token is not returned if there are no more results to display. To get the next page of results, perform another <code>GetCloudFormationStackRecords</code> request and specify the next page token using the <code>pageToken</code> parameter.<br/>cloudFormationStackRecords:  A list of objects describing the CloudFormation stack records.<br/>        """
        pass

    def get_contact_methods(self, protocols: List[ContactProtocol]=None) -> GetContactMethodsResult:
        r"""Returns information about the configured contact methods. Specify a protocol in your request to return information about a specific contact method. A contact method is used to send you notifications about your Amazon Lightsail resources. You can add one email address and one mobile phone number contact method in each AWS Region. However, SMS text messaging is not supported in some AWS Regions, and SMS text messages cannot be sent to some countries/regions. For more information, see <a href="https://lightsail.aws.amazon.com/ls/docs/en_us/articles/amazon-lightsail-notifications">Notifications in Amazon Lightsail</a>.

        :param self:
        :param protocols:  The protocols used to send notifications, such as <code>Email</code>, or <code>SMS</code> (text messaging). Specify a protocol in your request to return information about a specific contact method protocol.<br/>
        :return: contactMethods:  An array of objects that describe the contact methods.<br/>        """
        pass

    def get_container_api_metadata(self) -> GetContainerAPIMetadataResult:
        r"""Returns information about Amazon Lightsail containers, such as the current version of the Lightsail Control (lightsailctl) plugin.

        :param self:
        :param 
        :return: metadata:  Metadata about Lightsail containers, such as the current version of the Lightsail Control (lightsailctl) plugin.<br/>        """
        pass

    def get_container_images(self, serviceName: str) -> GetContainerImagesResult:
        r"""Returns the container images that are registered to your Amazon Lightsail container service. <note> If you created a deployment on your Lightsail container service that uses container images from a public registry like Docker Hub, those images are not returned as part of this action. Those images are not registered to your Lightsail container service. </note>

        :param self:
        :param serviceName:  The name of the container service for which to return registered container images.<br/>
        :return: containerImages:  An array of objects that describe container images that are registered to the container service.<br/>        """
        pass

    def get_container_log(self, containerName: str, serviceName: str, startTime: IsoDate=None, endTime: IsoDate=None, filterPattern: str=None, pageToken: str=None) -> GetContainerLogResult:
        r"""Returns the log events of a container of your Amazon Lightsail container service. If your container service has more than one node (i.e., a scale greater than 1), then the log events that are returned for the specified container are merged from all nodes on your container service. <note> Container logs are retained for a certain amount of time. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/lightsail.html">Amazon Lightsail endpoints and quotas</a> in the <i>AWS General Reference</i>. </note>

        :param self:
        :param pageToken:  The token to advance to the next page of results from your request. To get a page token, perform an initial <code>GetContainerLog</code> request. If your results are paginated, the response will return a next page token that you can specify as the page token in a subsequent request.<br/>filterPattern:  The pattern to use to filter the returned log events to a specific term. The following are a few examples of filter patterns that you can specify: <ul> <li> To return all log events, specify a filter pattern of <code>""</code>. </li> <li> To exclude log events that contain the <code>ERROR</code> term, and return all other log events, specify a filter pattern of <code>"-ERROR"</code>. </li> <li> To return log events that contain the <code>ERROR</code> term, specify a filter pattern of <code>"ERROR"</code>. </li> <li> To return log events that contain both the <code>ERROR</code> and <code>Exception</code> terms, specify a filter pattern of <code>"ERROR Exception"</code>. </li> <li> To return log events that contain the <code>ERROR</code> <i>or</i> the <code>Exception</code> term, specify a filter pattern of <code>"?ERROR ?Exception"</code>. </li> </ul><br/>endTime:  The end of the time interval for which to get log data. Constraints: <ul> <li> Specified in Coordinated Universal Time (UTC). </li> <li> Specified in the Unix time format. For example, if you wish to use an end time of October 1, 2018, at 9 PM UTC, specify <code>1538427600</code> as the end time. </li> </ul> You can convert a human-friendly time to Unix time format using a converter like <a href="https://www.epochconverter.com/">Epoch converter</a>.<br/>startTime:  The start of the time interval for which to get log data. Constraints: <ul> <li> Specified in Coordinated Universal Time (UTC). </li> <li> Specified in the Unix time format. For example, if you wish to use a start time of October 1, 2018, at 8 PM UTC, specify <code>1538424000</code> as the start time. </li> </ul> You can convert a human-friendly time to Unix time format using a converter like <a href="https://www.epochconverter.com/">Epoch converter</a>.<br/>containerName:  The name of the container that is either running or previously ran on the container service for which to return a log.<br/>serviceName:  The name of the container service for which to get a container log.<br/>
        :return: nextPageToken:  The token to advance to the next page of results from your request. A next page token is not returned if there are no more results to display. To get the next page of results, perform another <code>GetContainerLog</code> request and specify the next page token using the <code>pageToken</code> parameter.<br/>logEvents:  An array of objects that describe the log events of a container.<br/>        """
        pass

    def get_container_service_deployments(self, serviceName: str) -> GetContainerServiceDeploymentsResult:
        r"""Returns the deployments for your Amazon Lightsail container service A deployment specifies the settings, such as the ports and launch command, of containers that are deployed to your container service. The deployments are ordered by version in ascending order. The newest version is listed at the top of the response. <note> A set number of deployments are kept before the oldest one is replaced with the newest one. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/lightsail.html">Amazon Lightsail endpoints and quotas</a> in the <i>AWS General Reference</i>. </note>

        :param self:
        :param serviceName:  The name of the container service for which to return deployments.<br/>
        :return: deployments:  An array of objects that describe deployments for a container service.<br/>        """
        pass

    def get_container_service_metric_data(self, statistics: List[MetricStatistic], period: int, endTime: IsoDate, startTime: IsoDate, metricName: str, serviceName: str) -> GetContainerServiceMetricDataResult:
        r"""Returns the data points of a specific metric of your Amazon Lightsail container service. Metrics report the utilization of your resources. Monitor and collect metric data regularly to maintain the reliability, availability, and performance of your resources.

        :param self:
        :param statistics:  The statistic for the metric. The following statistics are available: <ul> <li>  <code>Minimum</code> - The lowest value observed during the specified period. Use this value to determine low volumes of activity for your application. </li> <li>  <code>Maximum</code> - The highest value observed during the specified period. Use this value to determine high volumes of activity for your application. </li> <li>  <code>Sum</code> - All values submitted for the matching metric added together. You can use this statistic to determine the total volume of a metric. </li> <li>  <code>Average</code> - The value of <code>Sum</code> / <code>SampleCount</code> during the specified period. By comparing this statistic with the <code>Minimum</code> and <code>Maximum</code> values, you can determine the full scope of a metric and how close the average use is to the <code>Minimum</code> and <code>Maximum</code> values. This comparison helps you to know when to increase or decrease your resources. </li> <li>  <code>SampleCount</code> - The count, or number, of data points used for the statistical calculation. </li> </ul><br/>period:  The granularity, in seconds, of the returned data points. All container service metric data is available in 5-minute (300 seconds) granularity.<br/>endTime:  The end time of the time period.<br/>startTime:  The start time of the time period.<br/>metricName:  The metric for which you want to return information. Valid container service metric names are listed below, along with the most useful statistics to include in your request, and the published unit value. <ul> <li>  <code>CPUUtilization</code> - The average percentage of compute units that are currently in use across all nodes of the container service. This metric identifies the processing power required to run containers on each node of the container service. Statistics: The most useful statistics are <code>Maximum</code> and <code>Average</code>. Unit: The published unit is <code>Percent</code>. </li> <li>  <code>MemoryUtilization</code> - The average percentage of available memory that is currently in use across all nodes of the container service. This metric identifies the memory required to run containers on each node of the container service. Statistics: The most useful statistics are <code>Maximum</code> and <code>Average</code>. Unit: The published unit is <code>Percent</code>. </li> </ul><br/>serviceName:  The name of the container service for which to get metric data.<br/>
        :return: metricData:  An array of objects that describe the metric data returned.<br/>metricName:  The name of the metric returned. <br/>        """
        pass

    def get_container_service_powers(self) -> GetContainerServicePowersResult:
        r"""Returns the list of powers that can be specified for your Amazon Lightsail container services. The power specifies the amount of memory, the number of vCPUs, and the base price of the container service.

        :param self:
        :param 
        :return: powers:  An array of objects that describe the powers that can be specified for a container service.<br/>        """
        pass

    def get_container_services(self, serviceName: str=None) -> ContainerServicesListResult:
        r"""Returns information about one or more of your Amazon Lightsail container services.

        :param self:
        :param serviceName:  The name of the container service for which to return information. When omitted, the response includes all of your container services in the AWS Region where the request is made.<br/>
        :return: containerServices:  An array of objects that describe one or more container services.<br/>        """
        pass

    def get_disk(self, diskName: str) -> GetDiskResult:
        r"""Returns information about a specific block storage disk.

        :param self:
        :param diskName:  The name of the disk (e.g., <code>my-disk</code>).<br/>
        :return: disk:  An object containing information about the disk.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>gbInUse</i> (Deprecated) The number of GB in use by the disk. <note> In releases prior to November 14, 2017, this parameter was not included in the API response. It is now deprecated. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>attachmentState</i> (Deprecated) The attachment state of the disk. <note> In releases prior to November 14, 2017, this parameter returned <code>attached</code> for system disks in the API response. It is now deprecated, but still included in the response. Use <code>isAttached</code> instead. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>isAttached</i> A Boolean value indicating whether the disk is attached.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>attachedTo</i> The resources to which the disk is attached.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>state</i> Describes the status of the disk.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>path</i> The disk path.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>iops</i> The input/output operations per second (IOPS) of the disk.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>isSystemDisk</i> A Boolean value indicating whether this disk is a system disk (has an operating system loaded on it).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>sizeInGb</i> The size of the disk in GB.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>addOns</i> An array of objects representing the add-ons enabled on the disk.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The tag keys and optional values for the resource. For more information about tags in Lightsail, see the <a href="https://lightsail.aws.amazon.com/ls/docs/en/articles/amazon-lightsail-tags">Lightsail Dev Guide</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceType</i> The Lightsail resource type (e.g., <code>Disk</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i> The AWS Region and Availability Zone where the disk is located.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>location</b>: The AWS Region and Availability Zone where the disk is located.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The date when the disk was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>supportCode</i> The support code. Include this code in your email to support when you have questions about an instance or another resource in Lightsail. This code enables our support team to look up your Lightsail information more easily.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the disk.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The unique name of the disk.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>regionName</i> The AWS Region name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>availabilityZone</i> The Availability Zone. Follows the format <code>us-east-2a</code> (case-sensitive).<br/>        """
        pass

    def get_disk_snapshot(self, diskSnapshotName: str) -> GetDiskSnapshotResult:
        r"""Returns information about a specific block storage disk snapshot.

        :param self:
        :param diskSnapshotName:  The name of the disk snapshot (e.g., <code>my-disk-snapshot</code>).<br/>
        :return: diskSnapshot:  An object containing information about the disk snapshot.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>isFromAutoSnapshot</i> A Boolean value indicating whether the snapshot was created from an automatic snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>fromInstanceArn</i> The Amazon Resource Name (ARN) of the source instance from which the disk (system volume) snapshot was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>fromInstanceName</i> The unique name of the source instance from which the disk (system volume) snapshot was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>fromDiskArn</i> The Amazon Resource Name (ARN) of the source disk from which the disk snapshot was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>fromDiskName</i> The unique name of the source disk from which the disk snapshot was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>progress</i> The progress of the snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>state</i> The status of the disk snapshot operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>sizeInGb</i> The size of the disk in GB.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The tag keys and optional values for the resource. For more information about tags in Lightsail, see the <a href="https://lightsail.aws.amazon.com/ls/docs/en/articles/amazon-lightsail-tags">Lightsail Dev Guide</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceType</i> The Lightsail resource type (e.g., <code>DiskSnapshot</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i> The AWS Region and Availability Zone where the disk snapshot was created.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>location</b>: The AWS Region and Availability Zone where the disk snapshot was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The date when the disk snapshot was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>supportCode</i> The support code. Include this code in your email to support when you have questions about an instance or another resource in Lightsail. This code enables our support team to look up your Lightsail information more easily.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the disk snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the disk snapshot (e.g., <code>my-disk-snapshot</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>regionName</i> The AWS Region name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>availabilityZone</i> The Availability Zone. Follows the format <code>us-east-2a</code> (case-sensitive).<br/>        """
        pass

    def get_disk_snapshots(self, pageToken: str=None) -> GetDiskSnapshotsResult:
        r"""Returns information about all block storage disk snapshots in your AWS account and region.

        :param self:
        :param pageToken:  The token to advance to the next page of results from your request. To get a page token, perform an initial <code>GetDiskSnapshots</code> request. If your results are paginated, the response will return a next page token that you can specify as the page token in a subsequent request.<br/>
        :return: nextPageToken:  The token to advance to the next page of results from your request. A next page token is not returned if there are no more results to display. To get the next page of results, perform another <code>GetDiskSnapshots</code> request and specify the next page token using the <code>pageToken</code> parameter.<br/>diskSnapshots:  An array of objects containing information about all block storage disk snapshots.<br/>        """
        pass

    def get_disks(self, pageToken: str=None) -> GetDisksResult:
        r"""Returns information about all block storage disks in your AWS account and region.

        :param self:
        :param pageToken:  The token to advance to the next page of results from your request. To get a page token, perform an initial <code>GetDisks</code> request. If your results are paginated, the response will return a next page token that you can specify as the page token in a subsequent request.<br/>
        :return: nextPageToken:  The token to advance to the next page of results from your request. A next page token is not returned if there are no more results to display. To get the next page of results, perform another <code>GetDisks</code> request and specify the next page token using the <code>pageToken</code> parameter.<br/>disks:  An array of objects containing information about all block storage disks.<br/>        """
        pass

    def get_distribution_bundles(self) -> GetDistributionBundlesResult:
        r"""Returns the list bundles that can be applied to you Amazon Lightsail content delivery network (CDN) distributions. A distribution bundle specifies the monthly network transfer quota and monthly cost of your dsitribution.

        :param self:
        :param 
        :return: bundles:  An object that describes a distribution bundle.<br/>        """
        pass

    def get_distribution_latest_cache_reset(self, distributionName: str=None) -> GetDistributionLatestCacheResetResult:
        r"""Returns the timestamp and status of the last cache reset of a specific Amazon Lightsail content delivery network (CDN) distribution.

        :param self:
        :param distributionName:  The name of the distribution for which to return the timestamp of the last cache reset. Use the <code>GetDistributions</code> action to get a list of distribution names that you can specify. When omitted, the response includes the latest cache reset timestamp of all your distributions.<br/>
        :return: createTime:  The timestamp of the last cache reset (e.g., <code>1479734909.17</code>) in Unix time format.<br/>status:  The status of the last cache reset.<br/>        """
        pass

    def get_distribution_metric_data(self, statistics: List[MetricStatistic], unit: str, period: int, endTime: timestamp, startTime: timestamp, metricName: str, distributionName: str) -> GetDistributionMetricDataResult:
        r"""Returns the data points of a specific metric for an Amazon Lightsail content delivery network (CDN) distribution. Metrics report the utilization of your resources, and the error counts generated by them. Monitor and collect metric data regularly to maintain the reliability, availability, and performance of your resources.

        :param self:
        :param statistics:  The statistic for the metric. The following statistics are available: <ul> <li>  <code>Minimum</code> - The lowest value observed during the specified period. Use this value to determine low volumes of activity for your application. </li> <li>  <code>Maximum</code> - The highest value observed during the specified period. Use this value to determine high volumes of activity for your application. </li> <li>  <code>Sum</code> - All values submitted for the matching metric added together. You can use this statistic to determine the total volume of a metric. </li> <li>  <code>Average</code> - The value of Sum / SampleCount during the specified period. By comparing this statistic with the Minimum and Maximum values, you can determine the full scope of a metric and how close the average use is to the Minimum and Maximum values. This comparison helps you to know when to increase or decrease your resources. </li> <li>  <code>SampleCount</code> - The count, or number, of data points used for the statistical calculation. </li> </ul><br/>unit:  The unit for the metric data request. Valid units depend on the metric data being requested. For the valid units with each available metric, see the <code>metricName</code> parameter.<br/>period:  The granularity, in seconds, for the metric data points that will be returned.<br/>endTime:  The end of the time interval for which to get metric data. Constraints: <ul> <li> Specified in Coordinated Universal Time (UTC). </li> <li> Specified in the Unix time format. For example, if you wish to use an end time of October 1, 2018, at 9 PM UTC, specify <code>1538427600</code> as the end time. </li> </ul> You can convert a human-friendly time to Unix time format using a converter like <a href="https://www.epochconverter.com/">Epoch converter</a>.<br/>startTime:  The start of the time interval for which to get metric data. Constraints: <ul> <li> Specified in Coordinated Universal Time (UTC). </li> <li> Specified in the Unix time format. For example, if you wish to use a start time of October 1, 2018, at 8 PM UTC, specify <code>1538424000</code> as the start time. </li> </ul> You can convert a human-friendly time to Unix time format using a converter like <a href="https://www.epochconverter.com/">Epoch converter</a>.<br/>metricName:  The metric for which you want to return information. Valid distribution metric names are listed below, along with the most useful <code>statistics</code> to include in your request, and the published <code>unit</code> value. <ul> <li>  <b> <code>Requests</code> </b> - The total number of viewer requests received by your Lightsail distribution, for all HTTP methods, and for both HTTP and HTTPS requests.  <code>Statistics</code>: The most useful statistic is <code>Sum</code>.  <code>Unit</code>: The published unit is <code>None</code>. </li> <li>  <b> <code>BytesDownloaded</code> </b> - The number of bytes downloaded by viewers for GET, HEAD, and OPTIONS requests.  <code>Statistics</code>: The most useful statistic is <code>Sum</code>.  <code>Unit</code>: The published unit is <code>None</code>. </li> <li>  <b> <code>BytesUploaded </code> </b> - The number of bytes uploaded to your origin by your Lightsail distribution, using POST and PUT requests.  <code>Statistics</code>: The most useful statistic is <code>Sum</code>.  <code>Unit</code>: The published unit is <code>None</code>. </li> <li>  <b> <code>TotalErrorRate</code> </b> - The percentage of all viewer requests for which the response's HTTP status code was 4xx or 5xx.  <code>Statistics</code>: The most useful statistic is <code>Average</code>.  <code>Unit</code>: The published unit is <code>Percent</code>. </li> <li>  <b> <code>4xxErrorRate</code> </b> - The percentage of all viewer requests for which the response's HTTP status cod was 4xx. In these cases, the client or client viewer may have made an error. For example, a status code of 404 (Not Found) means that the client requested an object that could not be found.  <code>Statistics</code>: The most useful statistic is <code>Average</code>.  <code>Unit</code>: The published unit is <code>Percent</code>. </li> <li>  <b> <code>5xxErrorRate</code> </b> - The percentage of all viewer requests for which the response's HTTP status code was 5xx. In these cases, the origin server did not satisfy the requests. For example, a status code of 503 (Service Unavailable) means that the origin server is currently unavailable.  <code>Statistics</code>: The most useful statistic is <code>Average</code>.  <code>Unit</code>: The published unit is <code>Percent</code>. </li> </ul><br/>distributionName:  The name of the distribution for which to get metric data. Use the <code>GetDistributions</code> action to get a list of distribution names that you can specify.<br/>
        :return: metricData:  An array of objects that describe the metric data returned.<br/>metricName:  The name of the metric returned.<br/>        """
        pass

    def get_distributions(self, distributionName: str=None, pageToken: str=None) -> GetDistributionsResult:
        r"""Returns information about one or more of your Amazon Lightsail content delivery network (CDN) distributions.

        :param self:
        :param pageToken:  The token to advance to the next page of results from your request. To get a page token, perform an initial <code>GetDistributions</code> request. If your results are paginated, the response will return a next page token that you can specify as the page token in a subsequent request.<br/>distributionName:  The name of the distribution for which to return information. Use the <code>GetDistributions</code> action to get a list of distribution names that you can specify. When omitted, the response includes all of your distributions in the AWS Region where the request is made.<br/>
        :return: nextPageToken:  The token to advance to the next page of results from your request. A next page token is not returned if there are no more results to display. To get the next page of results, perform another <code>GetDistributions</code> request and specify the next page token using the <code>pageToken</code> parameter.<br/>distributions:  An array of objects that describe your distributions.<br/>        """
        pass

    def get_domain(self, domainName: str) -> GetDomainResult:
        r"""Returns information about a specific domain recordset.

        :param self:
        :param domainName:  The domain name for which your want to return information about.<br/>
        :return: domain:  An array of key-value pairs containing information about your get domain request.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>domainEntries</i> An array of key-value pairs containing information about the domain entries.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The tag keys and optional values for the resource. For more information about tags in Lightsail, see the <a href="https://lightsail.aws.amazon.com/ls/docs/en/articles/amazon-lightsail-tags">Lightsail Dev Guide</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceType</i> The resource type. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i> The AWS Region and Availability Zones where the domain recordset was created.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>location</b>: The AWS Region and Availability Zones where the domain recordset was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The date when the domain recordset was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>supportCode</i> The support code. Include this code in your email to support when you have questions about an instance or another resource in Lightsail. This code enables our support team to look up your Lightsail information more easily.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the domain recordset (e.g., <code>arn:aws:lightsail:global:123456789101:Domain/824cede0-abc7-4f84-8dbc-12345EXAMPLE</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>regionName</i> The AWS Region name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>availabilityZone</i> The Availability Zone. Follows the format <code>us-east-2a</code> (case-sensitive).<br/>        """
        pass

    def get_domains(self, pageToken: str=None) -> GetDomainsResult:
        r"""Returns a list of all domains in the user's account.

        :param self:
        :param pageToken:  The token to advance to the next page of results from your request. To get a page token, perform an initial <code>GetDomains</code> request. If your results are paginated, the response will return a next page token that you can specify as the page token in a subsequent request.<br/>
        :return: nextPageToken:  The token to advance to the next page of results from your request. A next page token is not returned if there are no more results to display. To get the next page of results, perform another <code>GetDomains</code> request and specify the next page token using the <code>pageToken</code> parameter.<br/>domains:  An array of key-value pairs containing information about each of the domain entries in the user's account.<br/>        """
        pass

    def get_export_snapshot_records(self, pageToken: str=None) -> GetExportSnapshotRecordsResult:
        r"""Returns the export snapshot record created as a result of the <code>export snapshot</code> operation. An export snapshot record can be used to create a new Amazon EC2 instance and its related resources with the <code>create cloud formation stack</code> operation.

        :param self:
        :param pageToken:  The token to advance to the next page of results from your request. To get a page token, perform an initial <code>GetExportSnapshotRecords</code> request. If your results are paginated, the response will return a next page token that you can specify as the page token in a subsequent request.<br/>
        :return: nextPageToken:  The token to advance to the next page of results from your request. A next page token is not returned if there are no more results to display. To get the next page of results, perform another <code>GetExportSnapshotRecords</code> request and specify the next page token using the <code>pageToken</code> parameter.<br/>exportSnapshotRecords:  A list of objects describing the export snapshot records.<br/>        """
        pass

    def get_instance(self, instanceName: str) -> GetInstanceResult:
        r"""Returns information about a specific Amazon Lightsail instance, which is a virtual private server.

        :param self:
        :param instanceName:  The name of the instance.<br/>
        :return: instance:  An array of key-value pairs containing information about the specified instance.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>sshKeyName</i> The name of the SSH key being used to connect to the instance (e.g., <code>LightsailDefaultKeyPair</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>username</i> The user name for connecting to the instance (e.g., <code>ec2-user</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>state</i> The status code and the state (e.g., <code>running</code>) for the instance.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>state</b>: The status code and the state (e.g., <code>running</code>) for the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>networking</i> Information about the public ports and monthly data transfer rates for the instance.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>networking</b>: Information about the public ports and monthly data transfer rates for the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>hardware</i> The size of the vCPU and the amount of RAM for the instance.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>hardware</b>: The size of the vCPU and the amount of RAM for the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ipAddressType</i> The IP address type of the instance. The possible values are <code>ipv4</code> for IPv4 only, and <code>dualstack</code> for IPv4 and IPv6.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ipv6Addresses</i> The IPv6 addresses of the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>publicIpAddress</i> The public IP address of the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>privateIpAddress</i> The private IP address of the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>isStaticIp</i> A Boolean value indicating whether this instance has a static IP assigned to it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>addOns</i> An array of objects representing the add-ons enabled on the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>bundleId</i> The bundle for the instance (e.g., <code>micro_1_0</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>blueprintName</i> The friendly name of the blueprint (e.g., <code>Amazon Linux</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>blueprintId</i> The blueprint ID (e.g., <code>os_amlinux_2016_03</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The tag keys and optional values for the resource. For more information about tags in Lightsail, see the <a href="https://lightsail.aws.amazon.com/ls/docs/en/articles/amazon-lightsail-tags">Lightsail Dev Guide</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceType</i> The type of resource (usually <code>Instance</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i> The region name and Availability Zone where the instance is located.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>location</b>: The region name and Availability Zone where the instance is located.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The timestamp when the instance was created (e.g., <code>1479734909.17</code>) in Unix time format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>supportCode</i> The support code. Include this code in your email to support when you have questions about an instance or another resource in Lightsail. This code enables our support team to look up your Lightsail information more easily.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the instance (e.g., <code>arn:aws:lightsail:us-east-2:123456789101:Instance/244ad76f-8aad-4741-809f-12345EXAMPLE</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name the user gave the instance (e.g., <code>Amazon_Linux-1GB-Ohio-1</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>regionName</i> The AWS Region name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>availabilityZone</i> The Availability Zone. Follows the format <code>us-east-2a</code> (case-sensitive).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ramSizeInGb</i> The amount of RAM in GB on the instance (e.g., <code>1.0</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>disks</i> The disks attached to the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>cpuCount</i> The number of vCPUs the instance has.<br/>The amount of data in GB allocated for monthly data transfers.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>monthlyTransfer</b>: The amount of data in GB allocated for monthly data transfers.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The state of the instance (e.g., <code>running</code> or <code>pending</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>code</i> The status code for the instance.<br/>        """
        pass

    def get_instance_access_details(self, instanceName: str, protocol: str=None) -> GetInstanceAccessDetailsResult:
        r"""Returns temporary SSH keys you can use to connect to a specific virtual private server, or <i>instance</i>. The <code>get instance access details</code> operation supports tag-based access control via resource tags applied to the resource identified by <code>instance name</code>. For more information, see the <a href="https://lightsail.aws.amazon.com/ls/docs/en/articles/amazon-lightsail-controlling-access-using-tags">Lightsail Dev Guide</a>.

        :param self:
        :param protocol:  The protocol to use to connect to your instance. Defaults to <code>ssh</code>.<br/>instanceName:  The name of the instance to access.<br/>
        :return: accessDetails:  An array of key-value pairs containing information about a get instance access request.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>hostKeys</i> Describes the public SSH host keys or the RDP certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>username</i> The user name to use when logging in to the Amazon Lightsail instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>instanceName</i> The name of this Amazon Lightsail instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>protocol</i> The protocol for these Amazon Lightsail instance access details.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>privateKey</i> For SSH access, the temporary private key. For OpenSSH clients (e.g., command line SSH), you should save this value to <code>tempkey</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>passwordData</i> For a Windows Server-based instance, an object with the data you can use to retrieve your password. This is only needed if <code>password</code> is empty and the instance is not new (and therefore the password is not ready yet). When you create an instance, it can take up to 15 minutes for the instance to be ready.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>passwordData</b>: For a Windows Server-based instance, an object with the data you can use to retrieve your password. This is only needed if <code>password</code> is empty and the instance is not new (and therefore the password is not ready yet). When you create an instance, it can take up to 15 minutes for the instance to be ready.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>password</i> For RDP access, the password for your Amazon Lightsail instance. Password will be an empty string if the password for your new instance is not ready yet. When you create an instance, it can take up to 15 minutes for the instance to be ready. <note> If you create an instance using any key pair other than the default (<code>LightsailDefaultKeyPair</code>), <code>password</code> will always be an empty string. If you change the Administrator password on the instance, Lightsail will continue to return the original password value. When accessing the instance using RDP, you need to manually enter the Administrator password after changing it from the default. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ipAddress</i> The public IP address of the Amazon Lightsail instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>expiresAt</i> For SSH access, the date on which the temporary keys expire.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>certKey</i> For SSH access, the public key to use when accessing your instance For OpenSSH clients (e.g., command line SSH), you should save this value to <code>tempkey-cert.pub</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>keyPairName</i> The name of the key pair that you used when creating your instance. If no key pair name was specified when creating the instance, Lightsail uses the default key pair (<code>LightsailDefaultKeyPair</code>). If you are using a custom key pair, you need to use your own means of decrypting your password using the <code>ciphertext</code>. Lightsail creates the ciphertext by encrypting your password with the public key part of this key pair.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ciphertext</i> The encrypted password. Ciphertext will be an empty string if access to your new instance is not ready yet. When you create an instance, it can take up to 15 minutes for the instance to be ready. <note> If you use the default key pair (<code>LightsailDefaultKeyPair</code>), the decrypted password will be available in the password field. If you are using a custom key pair, you need to use your own means of decryption. If you change the Administrator password on the instance, Lightsail will continue to return the original ciphertext value. When accessing the instance using RDP, you need to manually enter the Administrator password after changing it from the default. </note><br/>        """
        pass

    def get_instance_metric_data(self, statistics: List[MetricStatistic], unit: str, endTime: timestamp, startTime: timestamp, period: int, metricName: str, instanceName: str) -> GetInstanceMetricDataResult:
        r"""Returns the data points for the specified Amazon Lightsail instance metric, given an instance name. Metrics report the utilization of your resources, and the error counts generated by them. Monitor and collect metric data regularly to maintain the reliability, availability, and performance of your resources.

        :param self:
        :param statistics:  The statistic for the metric. The following statistics are available: <ul> <li>  <code>Minimum</code> - The lowest value observed during the specified period. Use this value to determine low volumes of activity for your application. </li> <li>  <code>Maximum</code> - The highest value observed during the specified period. Use this value to determine high volumes of activity for your application. </li> <li>  <code>Sum</code> - All values submitted for the matching metric added together. You can use this statistic to determine the total volume of a metric. </li> <li>  <code>Average</code> - The value of Sum / SampleCount during the specified period. By comparing this statistic with the Minimum and Maximum values, you can determine the full scope of a metric and how close the average use is to the Minimum and Maximum values. This comparison helps you to know when to increase or decrease your resources. </li> <li>  <code>SampleCount</code> - The count, or number, of data points used for the statistical calculation. </li> </ul><br/>unit:  The unit for the metric data request. Valid units depend on the metric data being requested. For the valid units to specify with each available metric, see the <code>metricName</code> parameter.<br/>endTime:  The end time of the time period.<br/>startTime:  The start time of the time period.<br/>period:  The granularity, in seconds, of the returned data points. The <code>StatusCheckFailed</code>, <code>StatusCheckFailed_Instance</code>, and <code>StatusCheckFailed_System</code> instance metric data is available in 1-minute (60 seconds) granularity. All other instance metric data is available in 5-minute (300 seconds) granularity.<br/>metricName:  The metric for which you want to return information. Valid instance metric names are listed below, along with the most useful <code>statistics</code> to include in your request, and the published <code>unit</code> value. <ul> <li>  <b> <code>BurstCapacityPercentage</code> </b> - The percentage of CPU performance available for your instance to burst above its baseline. Your instance continuously accrues and consumes burst capacity. Burst capacity stops accruing when your instance's <code>BurstCapacityPercentage</code> reaches 100%. For more information, see <a href="https://lightsail.aws.amazon.com/ls/docs/en_us/articles/amazon-lightsail-viewing-instance-burst-capacity">Viewing instance burst capacity in Amazon Lightsail</a>.  <code>Statistics</code>: The most useful statistics are <code>Maximum</code> and <code>Average</code>.  <code>Unit</code>: The published unit is <code>Percent</code>. </li> <li>  <b> <code>BurstCapacityTime</code> </b> - The available amount of time for your instance to burst at 100% CPU utilization. Your instance continuously accrues and consumes burst capacity. Burst capacity time stops accruing when your instance's <code>BurstCapacityPercentage</code> metric reaches 100%. Burst capacity time is consumed at the full rate only when your instance operates at 100% CPU utilization. For example, if your instance operates at 50% CPU utilization in the burstable zone for a 5-minute period, then it consumes CPU burst capacity minutes at a 50% rate in that period. Your instance consumed 2 minutes and 30 seconds of CPU burst capacity minutes in the 5-minute period. For more information, see <a href="https://lightsail.aws.amazon.com/ls/docs/en_us/articles/amazon-lightsail-viewing-instance-burst-capacity">Viewing instance burst capacity in Amazon Lightsail</a>.  <code>Statistics</code>: The most useful statistics are <code>Maximum</code> and <code>Average</code>.  <code>Unit</code>: The published unit is <code>Seconds</code>. </li> <li>  <b> <code>CPUUtilization</code> </b> - The percentage of allocated compute units that are currently in use on the instance. This metric identifies the processing power to run the applications on the instance. Tools in your operating system can show a lower percentage than Lightsail when the instance is not allocated a full processor core.  <code>Statistics</code>: The most useful statistics are <code>Maximum</code> and <code>Average</code>.  <code>Unit</code>: The published unit is <code>Percent</code>. </li> <li>  <b> <code>NetworkIn</code> </b> - The number of bytes received on all network interfaces by the instance. This metric identifies the volume of incoming network traffic to the instance. The number reported is the number of bytes received during the period. Because this metric is reported in 5-minute intervals, divide the reported number by 300 to find Bytes/second.  <code>Statistics</code>: The most useful statistic is <code>Sum</code>.  <code>Unit</code>: The published unit is <code>Bytes</code>. </li> <li>  <b> <code>NetworkOut</code> </b> - The number of bytes sent out on all network interfaces by the instance. This metric identifies the volume of outgoing network traffic from the instance. The number reported is the number of bytes sent during the period. Because this metric is reported in 5-minute intervals, divide the reported number by 300 to find Bytes/second.  <code>Statistics</code>: The most useful statistic is <code>Sum</code>.  <code>Unit</code>: The published unit is <code>Bytes</code>. </li> <li>  <b> <code>StatusCheckFailed</code> </b> - Reports whether the instance passed or failed both the instance status check and the system status check. This metric can be either 0 (passed) or 1 (failed). This metric data is available in 1-minute (60 seconds) granularity.  <code>Statistics</code>: The most useful statistic is <code>Sum</code>.  <code>Unit</code>: The published unit is <code>Count</code>. </li> <li>  <b> <code>StatusCheckFailed_Instance</code> </b> - Reports whether the instance passed or failed the instance status check. This metric can be either 0 (passed) or 1 (failed). This metric data is available in 1-minute (60 seconds) granularity.  <code>Statistics</code>: The most useful statistic is <code>Sum</code>.  <code>Unit</code>: The published unit is <code>Count</code>. </li> <li>  <b> <code>StatusCheckFailed_System</code> </b> - Reports whether the instance passed or failed the system status check. This metric can be either 0 (passed) or 1 (failed). This metric data is available in 1-minute (60 seconds) granularity.  <code>Statistics</code>: The most useful statistic is <code>Sum</code>.  <code>Unit</code>: The published unit is <code>Count</code>. </li> </ul><br/>instanceName:  The name of the instance for which you want to get metrics data.<br/>
        :return: metricData:  An array of objects that describe the metric data returned.<br/>metricName:  The name of the metric returned.<br/>        """
        pass

    def get_instance_port_states(self, instanceName: str) -> GetInstancePortStatesResult:
        r"""Returns the firewall port states for a specific Amazon Lightsail instance, the IP addresses allowed to connect to the instance through the ports, and the protocol.

        :param self:
        :param instanceName:  The name of the instance for which to return firewall port states.<br/>
        :return: portStates:  An array of objects that describe the firewall port states for the specified instance.<br/>        """
        pass

    def get_instance_snapshot(self, instanceSnapshotName: str) -> GetInstanceSnapshotResult:
        r"""Returns information about a specific instance snapshot.

        :param self:
        :param instanceSnapshotName:  The name of the snapshot for which you are requesting information.<br/>
        :return: instanceSnapshot:  An array of key-value pairs containing information about the results of your get instance snapshot request.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>sizeInGb</i> The size in GB of the SSD.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>isFromAutoSnapshot</i> A Boolean value indicating whether the snapshot was created from an automatic snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>fromBundleId</i> The bundle ID from which you created the snapshot (e.g., <code>micro_1_0</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>fromBlueprintId</i> The blueprint ID from which you created the snapshot (e.g., <code>os_debian_8_3</code>). A blueprint is a virtual private server (or <i>instance</i>) image used to create instances quickly.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>fromInstanceArn</i> The Amazon Resource Name (ARN) of the instance from which the snapshot was created (e.g., <code>arn:aws:lightsail:us-east-2:123456789101:Instance/64b8404c-ccb1-430b-8daf-12345EXAMPLE</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>fromInstanceName</i> The instance from which the snapshot was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>fromAttachedDisks</i> An array of disk objects containing information about all block storage disks.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>progress</i> The progress of the snapshot. <note> This is populated only for disk snapshots, and is <code>null</code> for instance snapshots. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>state</i> The state the snapshot is in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The tag keys and optional values for the resource. For more information about tags in Lightsail, see the <a href="https://lightsail.aws.amazon.com/ls/docs/en/articles/amazon-lightsail-tags">Lightsail Dev Guide</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceType</i> The type of resource (usually <code>InstanceSnapshot</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i> The region name and Availability Zone where you created the snapshot.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>location</b>: The region name and Availability Zone where you created the snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The timestamp when the snapshot was created (e.g., <code>1479907467.024</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>supportCode</i> The support code. Include this code in your email to support when you have questions about an instance or another resource in Lightsail. This code enables our support team to look up your Lightsail information more easily.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the snapshot (e.g., <code>arn:aws:lightsail:us-east-2:123456789101:InstanceSnapshot/d23b5706-3322-4d83-81e5-12345EXAMPLE</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>regionName</i> The AWS Region name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>availabilityZone</i> The Availability Zone. Follows the format <code>us-east-2a</code> (case-sensitive).<br/>        """
        pass

    def get_instance_snapshots(self, pageToken: str=None) -> GetInstanceSnapshotsResult:
        r"""Returns all instance snapshots for the user's account.

        :param self:
        :param pageToken:  The token to advance to the next page of results from your request. To get a page token, perform an initial <code>GetInstanceSnapshots</code> request. If your results are paginated, the response will return a next page token that you can specify as the page token in a subsequent request.<br/>
        :return: nextPageToken:  The token to advance to the next page of results from your request. A next page token is not returned if there are no more results to display. To get the next page of results, perform another <code>GetInstanceSnapshots</code> request and specify the next page token using the <code>pageToken</code> parameter.<br/>instanceSnapshots:  An array of key-value pairs containing information about the results of your get instance snapshots request.<br/>        """
        pass

    def get_instance_state(self, instanceName: str) -> GetInstanceStateResult:
        r"""Returns the state of a specific instance. Works on one instance at a time.

        :param self:
        :param instanceName:  The name of the instance to get state information about.<br/>
        :return: state:  The state of the instance.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The state of the instance (e.g., <code>running</code> or <code>pending</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>code</i> The status code for the instance.<br/>        """
        pass

    def get_instances(self, pageToken: str=None) -> GetInstancesResult:
        r"""Returns information about all Amazon Lightsail virtual private servers, or <i>instances</i>.

        :param self:
        :param pageToken:  The token to advance to the next page of results from your request. To get a page token, perform an initial <code>GetInstances</code> request. If your results are paginated, the response will return a next page token that you can specify as the page token in a subsequent request.<br/>
        :return: nextPageToken:  The token to advance to the next page of results from your request. A next page token is not returned if there are no more results to display. To get the next page of results, perform another <code>GetInstances</code> request and specify the next page token using the <code>pageToken</code> parameter.<br/>instances:  An array of key-value pairs containing information about your instances.<br/>        """
        pass

    def get_key_pair(self, keyPairName: str) -> GetKeyPairResult:
        r"""Returns information about a specific key pair.

        :param self:
        :param keyPairName:  The name of the key pair for which you are requesting information.<br/>
        :return: keyPair:  An array of key-value pairs containing information about the key pair.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>fingerprint</i> The RSA fingerprint of the key pair.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The tag keys and optional values for the resource. For more information about tags in Lightsail, see the <a href="https://lightsail.aws.amazon.com/ls/docs/en/articles/amazon-lightsail-tags">Lightsail Dev Guide</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceType</i> The resource type (usually <code>KeyPair</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i> The region name and Availability Zone where the key pair was created.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>location</b>: The region name and Availability Zone where the key pair was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The timestamp when the key pair was created (e.g., <code>1479816991.349</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>supportCode</i> The support code. Include this code in your email to support when you have questions about an instance or another resource in Lightsail. This code enables our support team to look up your Lightsail information more easily.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the key pair (e.g., <code>arn:aws:lightsail:us-east-2:123456789101:KeyPair/05859e3d-331d-48ba-9034-12345EXAMPLE</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The friendly name of the SSH key pair.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>regionName</i> The AWS Region name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>availabilityZone</i> The Availability Zone. Follows the format <code>us-east-2a</code> (case-sensitive).<br/>        """
        pass

    def get_key_pairs(self, pageToken: str=None) -> GetKeyPairsResult:
        r"""Returns information about all key pairs in the user's account.

        :param self:
        :param pageToken:  The token to advance to the next page of results from your request. To get a page token, perform an initial <code>GetKeyPairs</code> request. If your results are paginated, the response will return a next page token that you can specify as the page token in a subsequent request.<br/>
        :return: nextPageToken:  The token to advance to the next page of results from your request. A next page token is not returned if there are no more results to display. To get the next page of results, perform another <code>GetKeyPairs</code> request and specify the next page token using the <code>pageToken</code> parameter.<br/>keyPairs:  An array of key-value pairs containing information about the key pairs.<br/>        """
        pass

    def get_load_balancer(self, loadBalancerName: str) -> GetLoadBalancerResult:
        r"""Returns information about the specified Lightsail load balancer.

        :param self:
        :param loadBalancerName:  The name of the load balancer.<br/>
        :return: loadBalancer:  An object containing information about your load balancer.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ipAddressType</i> The IP address type of the load balancer. The possible values are <code>ipv4</code> for IPv4 only, and <code>dualstack</code> for IPv4 and IPv6.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>configurationOptions</i> A string to string map of the configuration options for your load balancer. Valid values are listed below.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tlsCertificateSummaries</i> An array of LoadBalancerTlsCertificateSummary objects that provide additional information about the SSL/TLS certificates. For example, if <code>true</code>, the certificate is attached to the load balancer.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>instanceHealthSummary</i> An array of InstanceHealthSummary objects describing the health of the load balancer.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>instancePort</i> The port where the load balancer will direct traffic to your Lightsail instances. For HTTP traffic, it's port 80. For HTTPS traffic, it's port 443.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>healthCheckPath</i> The path you specified to perform your health checks. If no path is specified, the load balancer tries to make a request to the default (root) page.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>publicPorts</i> An array of public port settings for your load balancer. For HTTP, use port 80. For HTTPS, use port 443.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>protocol</i> The protocol you have enabled for your load balancer. Valid values are below. You can't just have <code>HTTP_HTTPS</code>, but you can have just <code>HTTP</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>state</i> The status of your load balancer. Valid values are below.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>dnsName</i> The DNS name of your Lightsail load balancer.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The tag keys and optional values for the resource. For more information about tags in Lightsail, see the <a href="https://lightsail.aws.amazon.com/ls/docs/en/articles/amazon-lightsail-tags">Lightsail Dev Guide</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceType</i> The resource type (e.g., <code>LoadBalancer</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i> The AWS Region where your load balancer was created (e.g., <code>us-east-2a</code>). Lightsail automatically creates your load balancer across Availability Zones.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>location</b>: The AWS Region where your load balancer was created (e.g., <code>us-east-2a</code>). Lightsail automatically creates your load balancer across Availability Zones.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The date when your load balancer was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>supportCode</i> The support code. Include this code in your email to support when you have questions about your Lightsail load balancer. This code enables our support team to look up your Lightsail information more easily.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the load balancer.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the load balancer (e.g., <code>my-load-balancer</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>regionName</i> The AWS Region name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>availabilityZone</i> The Availability Zone. Follows the format <code>us-east-2a</code> (case-sensitive).<br/>        """
        pass

    def get_load_balancer_metric_data(self, statistics: List[MetricStatistic], unit: str, endTime: timestamp, startTime: timestamp, period: int, metricName: str, loadBalancerName: str) -> GetLoadBalancerMetricDataResult:
        r"""Returns information about health metrics for your Lightsail load balancer. Metrics report the utilization of your resources, and the error counts generated by them. Monitor and collect metric data regularly to maintain the reliability, availability, and performance of your resources.

        :param self:
        :param statistics:  The statistic for the metric. The following statistics are available: <ul> <li>  <code>Minimum</code> - The lowest value observed during the specified period. Use this value to determine low volumes of activity for your application. </li> <li>  <code>Maximum</code> - The highest value observed during the specified period. Use this value to determine high volumes of activity for your application. </li> <li>  <code>Sum</code> - All values submitted for the matching metric added together. You can use this statistic to determine the total volume of a metric. </li> <li>  <code>Average</code> - The value of Sum / SampleCount during the specified period. By comparing this statistic with the Minimum and Maximum values, you can determine the full scope of a metric and how close the average use is to the Minimum and Maximum values. This comparison helps you to know when to increase or decrease your resources. </li> <li>  <code>SampleCount</code> - The count, or number, of data points used for the statistical calculation. </li> </ul><br/>unit:  The unit for the metric data request. Valid units depend on the metric data being requested. For the valid units with each available metric, see the <code>metricName</code> parameter.<br/>endTime:  The end time of the period.<br/>startTime:  The start time of the period.<br/>period:  The granularity, in seconds, of the returned data points.<br/>metricName:  The metric for which you want to return information. Valid load balancer metric names are listed below, along with the most useful <code>statistics</code> to include in your request, and the published <code>unit</code> value. <ul> <li>  <b> <code>ClientTLSNegotiationErrorCount</code> </b> - The number of TLS connections initiated by the client that did not establish a session with the load balancer due to a TLS error generated by the load balancer. Possible causes include a mismatch of ciphers or protocols.  <code>Statistics</code>: The most useful statistic is <code>Sum</code>.  <code>Unit</code>: The published unit is <code>Count</code>. </li> <li>  <b> <code>HealthyHostCount</code> </b> - The number of target instances that are considered healthy.  <code>Statistics</code>: The most useful statistic are <code>Average</code>, <code>Minimum</code>, and <code>Maximum</code>.  <code>Unit</code>: The published unit is <code>Count</code>. </li> <li>  <b> <code>HTTPCode_Instance_2XX_Count</code> </b> - The number of HTTP 2XX response codes generated by the target instances. This does not include any response codes generated by the load balancer.  <code>Statistics</code>: The most useful statistic is <code>Sum</code>. Note that <code>Minimum</code>, <code>Maximum</code>, and <code>Average</code> all return <code>1</code>.  <code>Unit</code>: The published unit is <code>Count</code>. </li> <li>  <b> <code>HTTPCode_Instance_3XX_Count</code> </b> - The number of HTTP 3XX response codes generated by the target instances. This does not include any response codes generated by the load balancer.  <code>Statistics</code>: The most useful statistic is <code>Sum</code>. Note that <code>Minimum</code>, <code>Maximum</code>, and <code>Average</code> all return <code>1</code>.  <code>Unit</code>: The published unit is <code>Count</code>. </li> <li>  <b> <code>HTTPCode_Instance_4XX_Count</code> </b> - The number of HTTP 4XX response codes generated by the target instances. This does not include any response codes generated by the load balancer.  <code>Statistics</code>: The most useful statistic is <code>Sum</code>. Note that <code>Minimum</code>, <code>Maximum</code>, and <code>Average</code> all return <code>1</code>.  <code>Unit</code>: The published unit is <code>Count</code>. </li> <li>  <b> <code>HTTPCode_Instance_5XX_Count</code> </b> - The number of HTTP 5XX response codes generated by the target instances. This does not include any response codes generated by the load balancer.  <code>Statistics</code>: The most useful statistic is <code>Sum</code>. Note that <code>Minimum</code>, <code>Maximum</code>, and <code>Average</code> all return <code>1</code>.  <code>Unit</code>: The published unit is <code>Count</code>. </li> <li>  <b> <code>HTTPCode_LB_4XX_Count</code> </b> - The number of HTTP 4XX client error codes that originated from the load balancer. Client errors are generated when requests are malformed or incomplete. These requests were not received by the target instance. This count does not include response codes generated by the target instances.  <code>Statistics</code>: The most useful statistic is <code>Sum</code>. Note that <code>Minimum</code>, <code>Maximum</code>, and <code>Average</code> all return <code>1</code>.  <code>Unit</code>: The published unit is <code>Count</code>. </li> <li>  <b> <code>HTTPCode_LB_5XX_Count</code> </b> - The number of HTTP 5XX server error codes that originated from the load balancer. This does not include any response codes generated by the target instance. This metric is reported if there are no healthy instances attached to the load balancer, or if the request rate exceeds the capacity of the instances (spillover) or the load balancer.  <code>Statistics</code>: The most useful statistic is <code>Sum</code>. Note that <code>Minimum</code>, <code>Maximum</code>, and <code>Average</code> all return <code>1</code>.  <code>Unit</code>: The published unit is <code>Count</code>. </li> <li>  <b> <code>InstanceResponseTime</code> </b> - The time elapsed, in seconds, after the request leaves the load balancer until a response from the target instance is received.  <code>Statistics</code>: The most useful statistic is <code>Average</code>.  <code>Unit</code>: The published unit is <code>Seconds</code>. </li> <li>  <b> <code>RejectedConnectionCount</code> </b> - The number of connections that were rejected because the load balancer had reached its maximum number of connections.  <code>Statistics</code>: The most useful statistic is <code>Sum</code>.  <code>Unit</code>: The published unit is <code>Count</code>. </li> <li>  <b> <code>RequestCount</code> </b> - The number of requests processed over IPv4. This count includes only the requests with a response generated by a target instance of the load balancer.  <code>Statistics</code>: The most useful statistic is <code>Sum</code>. Note that <code>Minimum</code>, <code>Maximum</code>, and <code>Average</code> all return <code>1</code>.  <code>Unit</code>: The published unit is <code>Count</code>. </li> <li>  <b> <code>UnhealthyHostCount</code> </b> - The number of target instances that are considered unhealthy.  <code>Statistics</code>: The most useful statistic are <code>Average</code>, <code>Minimum</code>, and <code>Maximum</code>.  <code>Unit</code>: The published unit is <code>Count</code>. </li> </ul><br/>loadBalancerName:  The name of the load balancer.<br/>
        :return: metricData:  An array of objects that describe the metric data returned.<br/>metricName:  The name of the metric returned.<br/>        """
        pass

    def get_load_balancer_tls_certificates(self, loadBalancerName: str) -> GetLoadBalancerTlsCertificatesResult:
        r"""Returns information about the TLS certificates that are associated with the specified Lightsail load balancer. TLS is just an updated, more secure version of Secure Socket Layer (SSL). You can have a maximum of 2 certificates associated with a Lightsail load balancer. One is active and the other is inactive.

        :param self:
        :param loadBalancerName:  The name of the load balancer you associated with your SSL/TLS certificate.<br/>
        :return: tlsCertificates:  An array of LoadBalancerTlsCertificate objects describing your SSL/TLS certificates.<br/>        """
        pass

    def get_load_balancers(self, pageToken: str=None) -> GetLoadBalancersResult:
        r"""Returns information about all load balancers in an account.

        :param self:
        :param pageToken:  The token to advance to the next page of results from your request. To get a page token, perform an initial <code>GetLoadBalancers</code> request. If your results are paginated, the response will return a next page token that you can specify as the page token in a subsequent request.<br/>
        :return: nextPageToken:  The token to advance to the next page of results from your request. A next page token is not returned if there are no more results to display. To get the next page of results, perform another <code>GetLoadBalancers</code> request and specify the next page token using the <code>pageToken</code> parameter.<br/>loadBalancers:  An array of LoadBalancer objects describing your load balancers.<br/>        """
        pass

    def get_operation(self, operationId: str) -> GetOperationResult:
        r"""Returns information about a specific operation. Operations include events such as when you create an instance, allocate a static IP, attach a static IP, and so on.

        :param self:
        :param operationId:  A GUID used to identify the operation.<br/>
        :return: operation:  An array of objects that describe the result of the action, such as the status of the request, the timestamp of the request, and the resources affected by the request.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>errorDetails</i> The error details.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>errorCode</i> The error code.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusChangedAt</i> The timestamp when the status was changed (e.g., <code>1479816991.349</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the operation. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>operationType</i> The type of operation. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>operationDetails</i> Details about the operation (e.g., <code>Debian-1GB-Ohio-1</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>isTerminal</i> A Boolean value indicating whether the operation is terminal.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i> The AWS Region and Availability Zone.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>location</b>: The AWS Region and Availability Zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The timestamp when the operation was initialized (e.g., <code>1479816991.349</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceType</i> The resource type. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceName</i> The resource name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The ID of the operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>regionName</i> The AWS Region name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>availabilityZone</i> The Availability Zone. Follows the format <code>us-east-2a</code> (case-sensitive).<br/>        """
        pass

    def get_operations(self, pageToken: str=None) -> GetOperationsResult:
        r"""Returns information about all operations. Results are returned from oldest to newest, up to a maximum of 200. Results can be paged by making each subsequent call to <code>GetOperations</code> use the maximum (last) <code>statusChangedAt</code> value from the previous request.

        :param self:
        :param pageToken:  The token to advance to the next page of results from your request. To get a page token, perform an initial <code>GetOperations</code> request. If your results are paginated, the response will return a next page token that you can specify as the page token in a subsequent request.<br/>
        :return: nextPageToken:  The token to advance to the next page of results from your request. A next page token is not returned if there are no more results to display. To get the next page of results, perform another <code>GetOperations</code> request and specify the next page token using the <code>pageToken</code> parameter.<br/>operations:  An array of objects that describe the result of the action, such as the status of the request, the timestamp of the request, and the resources affected by the request.<br/>        """
        pass

    def get_operations_for_resource(self, resourceName: str, pageToken: str=None) -> GetOperationsForResourceResult:
        r"""Gets operations for a specific resource (e.g., an instance or a static IP).

        :param self:
        :param pageToken:  The token to advance to the next page of results from your request. To get a page token, perform an initial <code>GetOperationsForResource</code> request. If your results are paginated, the response will return a next page token that you can specify as the page token in a subsequent request.<br/>resourceName:  The name of the resource for which you are requesting information.<br/>
        :return: nextPageToken:  The token to advance to the next page of results from your request. A next page token is not returned if there are no more results to display. To get the next page of results, perform another <code>GetOperationsForResource</code> request and specify the next page token using the <code>pageToken</code> parameter.<br/>nextPageCount:  (Deprecated) Returns the number of pages of results that remain. <note> In releases prior to June 12, 2017, this parameter returned <code>null</code> by the API. It is now deprecated, and the API returns the <code>next page token</code> parameter instead. </note><br/>operations:  An array of objects that describe the result of the action, such as the status of the request, the timestamp of the request, and the resources affected by the request.<br/>        """
        pass

    def get_regions(self, includeAvailabilityZones: boolean=None, includeRelationalDatabaseAvailabilityZones: boolean=None) -> GetRegionsResult:
        r"""Returns a list of all valid regions for Amazon Lightsail. Use the <code>include availability zones</code> parameter to also return the Availability Zones in a region.

        :param self:
        :param includeRelationalDatabaseAvailabilityZones:  A Boolean value indicating whether to also include Availability Zones for databases in your get regions request. Availability Zones are indicated with a letter (e.g., <code>us-east-2a</code>).<br/>includeAvailabilityZones:  A Boolean value indicating whether to also include Availability Zones in your get regions request. Availability Zones are indicated with a letter: e.g., <code>us-east-2a</code>.<br/>
        :return: regions:  An array of key-value pairs containing information about your get regions request.<br/>        """
        pass

    def get_relational_database(self, relationalDatabaseName: str) -> GetRelationalDatabaseResult:
        r"""Returns information about a specific database in Amazon Lightsail.

        :param self:
        :param relationalDatabaseName:  The name of the database that you are looking up.<br/>
        :return: relationalDatabase:  An object describing the specified database.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>caCertificateIdentifier</i> The certificate associated with the database.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>pendingMaintenanceActions</i> Describes the pending maintenance actions for the database.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>masterEndpoint</i> The master endpoint for the database.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>masterEndpoint</b>: The master endpoint for the database.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>publiclyAccessible</i> A Boolean value indicating whether the database is publicly accessible.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>preferredMaintenanceWindow</i> The weekly time range during which system maintenance can occur on the database. In the format <code>ddd:hh24:mi-ddd:hh24:mi</code>. For example, <code>Tue:17:00-Tue:17:30</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>preferredBackupWindow</i> The daily time range during which automated backups are created for the database (for example, <code>16:00-16:30</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>parameterApplyStatus</i> The status of parameter updates for the database.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>masterUsername</i> The master user name of the database.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>latestRestorableTime</i> The latest point in time to which the database can be restored. Formatted in Unix time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>engineVersion</i> The database engine version (for example, <code>5.7.23</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>engine</i> The database software (for example, <code>MySQL</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>pendingModifiedValues</i> Describes pending database value modifications.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>pendingModifiedValues</b>: Describes pending database value modifications.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>backupRetentionEnabled</i> A Boolean value indicating whether automated backup retention is enabled for the database.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>secondaryAvailabilityZone</i> Describes the secondary Availability Zone of a high availability database. The secondary database is used for failover support of a high availability database.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>state</i> Describes the current state of the database.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>hardware</i> Describes the hardware of the database.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>hardware</b>: Describes the hardware of the database.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>masterDatabaseName</i> The name of the master database created when the Lightsail database resource is created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>relationalDatabaseBundleId</i> The bundle ID for the database. A bundle describes the performance specifications for your database.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>relationalDatabaseBlueprintId</i> The blueprint ID for the database. A blueprint describes the major engine version of a database.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The tag keys and optional values for the resource. For more information about tags in Lightsail, see the <a href="https://lightsail.aws.amazon.com/ls/docs/en/articles/amazon-lightsail-tags">Lightsail Dev Guide</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceType</i> The Lightsail resource type for the database (for example, <code>RelationalDatabase</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i> The Region name and Availability Zone where the database is located.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>location</b>: The Region name and Availability Zone where the database is located.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The timestamp when the database was created. Formatted in Unix time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>supportCode</i> The support code for the database. Include this code in your email to support when you have questions about a database in Lightsail. This code enables our support team to look up your Lightsail information more easily.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the database.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The unique name of the database resource in Lightsail.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>regionName</i> The AWS Region name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>availabilityZone</i> The Availability Zone. Follows the format <code>us-east-2a</code> (case-sensitive).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ramSizeInGb</i> The amount of RAM in GB for the database.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>diskSizeInGb</i> The size of the disk for the database.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>cpuCount</i> The number of vCPUs for the database.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>backupRetentionEnabled</i> A Boolean value indicating whether automated backup retention is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>engineVersion</i> The database engine version.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>masterUserPassword</i> The password for the master user of the database.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>address</i> Specifies the DNS address of the database.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>port</i> Specifies the port that the database is listening on.<br/>        """
        pass

    def get_relational_database_blueprints(self, pageToken: str=None) -> GetRelationalDatabaseBlueprintsResult:
        r"""Returns a list of available database blueprints in Amazon Lightsail. A blueprint describes the major engine version of a database. You can use a blueprint ID to create a new database that runs a specific database engine.

        :param self:
        :param pageToken:  The token to advance to the next page of results from your request. To get a page token, perform an initial <code>GetRelationalDatabaseBlueprints</code> request. If your results are paginated, the response will return a next page token that you can specify as the page token in a subsequent request.<br/>
        :return: nextPageToken:  The token to advance to the next page of results from your request. A next page token is not returned if there are no more results to display. To get the next page of results, perform another <code>GetRelationalDatabaseBlueprints</code> request and specify the next page token using the <code>pageToken</code> parameter.<br/>blueprints:  An object describing the result of your get relational database blueprints request.<br/>        """
        pass

    def get_relational_database_bundles(self, pageToken: str=None) -> GetRelationalDatabaseBundlesResult:
        r"""Returns the list of bundles that are available in Amazon Lightsail. A bundle describes the performance specifications for a database. You can use a bundle ID to create a new database with explicit performance specifications.

        :param self:
        :param pageToken:  The token to advance to the next page of results from your request. To get a page token, perform an initial <code>GetRelationalDatabaseBundles</code> request. If your results are paginated, the response will return a next page token that you can specify as the page token in a subsequent request.<br/>
        :return: nextPageToken:  The token to advance to the next page of results from your request. A next page token is not returned if there are no more results to display. To get the next page of results, perform another <code>GetRelationalDatabaseBundles</code> request and specify the next page token using the <code>pageToken</code> parameter.<br/>bundles:  An object describing the result of your get relational database bundles request.<br/>        """
        pass

    def get_relational_database_events(self, relationalDatabaseName: str, durationInMinutes: int=None, pageToken: str=None) -> GetRelationalDatabaseEventsResult:
        r"""Returns a list of events for a specific database in Amazon Lightsail.

        :param self:
        :param pageToken:  The token to advance to the next page of results from your request. To get a page token, perform an initial <code>GetRelationalDatabaseEvents</code> request. If your results are paginated, the response will return a next page token that you can specify as the page token in a subsequent request.<br/>durationInMinutes:  The number of minutes in the past from which to retrieve events. For example, to get all events from the past 2 hours, enter 120. Default: <code>60</code>  The minimum is 1 and the maximum is 14 days (20160 minutes).<br/>relationalDatabaseName:  The name of the database from which to get events.<br/>
        :return: nextPageToken:  The token to advance to the next page of results from your request. A next page token is not returned if there are no more results to display. To get the next page of results, perform another <code>GetRelationalDatabaseEvents</code> request and specify the next page token using the <code>pageToken</code> parameter.<br/>relationalDatabaseEvents:  An object describing the result of your get relational database events request.<br/>        """
        pass

    def get_relational_database_log_events(self, logStreamName: str, relationalDatabaseName: str, startTime: IsoDate=None, endTime: IsoDate=None, startFromHead: boolean=None, pageToken: str=None) -> GetRelationalDatabaseLogEventsResult:
        r"""Returns a list of log events for a database in Amazon Lightsail.

        :param self:
        :param pageToken:  The token to advance to the next or previous page of results from your request. To get a page token, perform an initial <code>GetRelationalDatabaseLogEvents</code> request. If your results are paginated, the response will return a next forward token and/or next backward token that you can specify as the page token in a subsequent request.<br/>startFromHead:  Parameter to specify if the log should start from head or tail. If <code>true</code> is specified, the log event starts from the head of the log. If <code>false</code> is specified, the log event starts from the tail of the log. <note> For PostgreSQL, the default value of <code>false</code> is the only option available. </note><br/>endTime:  The end of the time interval from which to get log events. Constraints: <ul> <li> Specified in Coordinated Universal Time (UTC). </li> <li> Specified in the Unix time format. For example, if you wish to use an end time of October 1, 2018, at 8 PM UTC, then you input <code>1538424000</code> as the end time. </li> </ul><br/>startTime:  The start of the time interval from which to get log events. Constraints: <ul> <li> Specified in Coordinated Universal Time (UTC). </li> <li> Specified in the Unix time format. For example, if you wish to use a start time of October 1, 2018, at 8 PM UTC, then you input <code>1538424000</code> as the start time. </li> </ul><br/>logStreamName:  The name of the log stream. Use the <code>get relational database log streams</code> operation to get a list of available log streams.<br/>relationalDatabaseName:  The name of your database for which to get log events.<br/>
        :return: nextForwardToken:  A token used for advancing to the next page of results from your get relational database log events request.<br/>nextBackwardToken:  A token used for advancing to the previous page of results from your get relational database log events request.<br/>resourceLogEvents:  An object describing the result of your get relational database log events request.<br/>        """
        pass

    def get_relational_database_log_streams(self, relationalDatabaseName: str) -> GetRelationalDatabaseLogStreamsResult:
        r"""Returns a list of available log streams for a specific database in Amazon Lightsail.

        :param self:
        :param relationalDatabaseName:  The name of your database for which to get log streams.<br/>
        :return: logStreams:  An object describing the result of your get relational database log streams request.<br/>        """
        pass

    def get_relational_database_master_user_password(self, relationalDatabaseName: str, passwordVersion: str=None) -> GetRelationalDatabaseMasterUserPasswordResult:
        r"""Returns the current, previous, or pending versions of the master user password for a Lightsail database. The <code>GetRelationalDatabaseMasterUserPassword</code> operation supports tag-based access control via resource tags applied to the resource identified by relationalDatabaseName.

        :param self:
        :param passwordVersion:  The password version to return. Specifying <code>CURRENT</code> or <code>PREVIOUS</code> returns the current or previous passwords respectively. Specifying <code>PENDING</code> returns the newest version of the password that will rotate to <code>CURRENT</code>. After the <code>PENDING</code> password rotates to <code>CURRENT</code>, the <code>PENDING</code> password is no longer available. Default: <code>CURRENT</code> <br/>relationalDatabaseName:  The name of your database for which to get the master user password.<br/>
        :return: createdAt:  The timestamp when the specified version of the master user password was created.<br/>masterUserPassword:  The master user password for the <code>password version</code> specified.<br/>        """
        pass

    def get_relational_database_metric_data(self, statistics: List[MetricStatistic], unit: str, endTime: IsoDate, startTime: IsoDate, period: int, metricName: str, relationalDatabaseName: str) -> GetRelationalDatabaseMetricDataResult:
        r"""Returns the data points of the specified metric for a database in Amazon Lightsail. Metrics report the utilization of your resources, and the error counts generated by them. Monitor and collect metric data regularly to maintain the reliability, availability, and performance of your resources.

        :param self:
        :param statistics:  The statistic for the metric. The following statistics are available: <ul> <li>  <code>Minimum</code> - The lowest value observed during the specified period. Use this value to determine low volumes of activity for your application. </li> <li>  <code>Maximum</code> - The highest value observed during the specified period. Use this value to determine high volumes of activity for your application. </li> <li>  <code>Sum</code> - All values submitted for the matching metric added together. You can use this statistic to determine the total volume of a metric. </li> <li>  <code>Average</code> - The value of Sum / SampleCount during the specified period. By comparing this statistic with the Minimum and Maximum values, you can determine the full scope of a metric and how close the average use is to the Minimum and Maximum values. This comparison helps you to know when to increase or decrease your resources. </li> <li>  <code>SampleCount</code> - The count, or number, of data points used for the statistical calculation. </li> </ul><br/>unit:  The unit for the metric data request. Valid units depend on the metric data being requested. For the valid units with each available metric, see the <code>metricName</code> parameter.<br/>endTime:  The end of the time interval from which to get metric data. Constraints: <ul> <li> Specified in Coordinated Universal Time (UTC). </li> <li> Specified in the Unix time format. For example, if you wish to use an end time of October 1, 2018, at 8 PM UTC, then you input <code>1538424000</code> as the end time. </li> </ul><br/>startTime:  The start of the time interval from which to get metric data. Constraints: <ul> <li> Specified in Coordinated Universal Time (UTC). </li> <li> Specified in the Unix time format. For example, if you wish to use a start time of October 1, 2018, at 8 PM UTC, then you input <code>1538424000</code> as the start time. </li> </ul><br/>period:  The granularity, in seconds, of the returned data points. All relational database metric data is available in 1-minute (60 seconds) granularity.<br/>metricName:  The metric for which you want to return information. Valid relational database metric names are listed below, along with the most useful <code>statistics</code> to include in your request, and the published <code>unit</code> value. All relational database metric data is available in 1-minute (60 seconds) granularity. <ul> <li>  <b> <code>CPUUtilization</code> </b> - The percentage of CPU utilization currently in use on the database.  <code>Statistics</code>: The most useful statistics are <code>Maximum</code> and <code>Average</code>.  <code>Unit</code>: The published unit is <code>Percent</code>. </li> <li>  <b> <code>DatabaseConnections</code> </b> - The number of database connections in use.  <code>Statistics</code>: The most useful statistics are <code>Maximum</code> and <code>Sum</code>.  <code>Unit</code>: The published unit is <code>Count</code>. </li> <li>  <b> <code>DiskQueueDepth</code> </b> - The number of outstanding IOs (read/write requests) that are waiting to access the disk.  <code>Statistics</code>: The most useful statistic is <code>Sum</code>.  <code>Unit</code>: The published unit is <code>Count</code>. </li> <li>  <b> <code>FreeStorageSpace</code> </b> - The amount of available storage space.  <code>Statistics</code>: The most useful statistic is <code>Sum</code>.  <code>Unit</code>: The published unit is <code>Bytes</code>. </li> <li>  <b> <code>NetworkReceiveThroughput</code> </b> - The incoming (Receive) network traffic on the database, including both customer database traffic and AWS traffic used for monitoring and replication.  <code>Statistics</code>: The most useful statistic is <code>Average</code>.  <code>Unit</code>: The published unit is <code>Bytes/Second</code>. </li> <li>  <b> <code>NetworkTransmitThroughput</code> </b> - The outgoing (Transmit) network traffic on the database, including both customer database traffic and AWS traffic used for monitoring and replication.  <code>Statistics</code>: The most useful statistic is <code>Average</code>.  <code>Unit</code>: The published unit is <code>Bytes/Second</code>. </li> </ul><br/>relationalDatabaseName:  The name of your database from which to get metric data.<br/>
        :return: metricData:  An array of objects that describe the metric data returned.<br/>metricName:  The name of the metric returned.<br/>        """
        pass

    def get_relational_database_parameters(self, relationalDatabaseName: str, pageToken: str=None) -> GetRelationalDatabaseParametersResult:
        r"""Returns all of the runtime parameters offered by the underlying database software, or engine, for a specific database in Amazon Lightsail. In addition to the parameter names and values, this operation returns other information about each parameter. This information includes whether changes require a reboot, whether the parameter is modifiable, the allowed values, and the data types.

        :param self:
        :param pageToken:  The token to advance to the next page of results from your request. To get a page token, perform an initial <code>GetRelationalDatabaseParameters</code> request. If your results are paginated, the response will return a next page token that you can specify as the page token in a subsequent request.<br/>relationalDatabaseName:  The name of your database for which to get parameters.<br/>
        :return: nextPageToken:  The token to advance to the next page of results from your request. A next page token is not returned if there are no more results to display. To get the next page of results, perform another <code>GetRelationalDatabaseParameters</code> request and specify the next page token using the <code>pageToken</code> parameter.<br/>parameters:  An object describing the result of your get relational database parameters request.<br/>        """
        pass

    def get_relational_database_snapshot(self, relationalDatabaseSnapshotName: str) -> GetRelationalDatabaseSnapshotResult:
        r"""Returns information about a specific database snapshot in Amazon Lightsail.

        :param self:
        :param relationalDatabaseSnapshotName:  The name of the database snapshot for which to get information.<br/>
        :return: relationalDatabaseSnapshot:  An object describing the specified database snapshot.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>fromRelationalDatabaseBlueprintId</i> The blueprint ID of the database from which the database snapshot was created. A blueprint describes the major engine version of a database.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>fromRelationalDatabaseBundleId</i> The bundle ID of the database from which the database snapshot was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>fromRelationalDatabaseArn</i> The Amazon Resource Name (ARN) of the database from which the database snapshot was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>fromRelationalDatabaseName</i> The name of the source database from which the database snapshot was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>state</i> The state of the database snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>sizeInGb</i> The size of the disk in GB (for example, <code>32</code>) for the database snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>engineVersion</i> The database engine version for the database snapshot (for example, <code>5.7.23</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>engine</i> The software of the database snapshot (for example, <code>MySQL</code>)<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The tag keys and optional values for the resource. For more information about tags in Lightsail, see the <a href="https://lightsail.aws.amazon.com/ls/docs/en/articles/amazon-lightsail-tags">Lightsail Dev Guide</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceType</i> The Lightsail resource type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i> The Region name and Availability Zone where the database snapshot is located.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>location</b>: The Region name and Availability Zone where the database snapshot is located.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The timestamp when the database snapshot was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>supportCode</i> The support code for the database snapshot. Include this code in your email to support when you have questions about a database snapshot in Lightsail. This code enables our support team to look up your Lightsail information more easily.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the database snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the database snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>regionName</i> The AWS Region name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>availabilityZone</i> The Availability Zone. Follows the format <code>us-east-2a</code> (case-sensitive).<br/>        """
        pass

    def get_relational_database_snapshots(self, pageToken: str=None) -> GetRelationalDatabaseSnapshotsResult:
        r"""Returns information about all of your database snapshots in Amazon Lightsail.

        :param self:
        :param pageToken:  The token to advance to the next page of results from your request. To get a page token, perform an initial <code>GetRelationalDatabaseSnapshots</code> request. If your results are paginated, the response will return a next page token that you can specify as the page token in a subsequent request.<br/>
        :return: nextPageToken:  The token to advance to the next page of results from your request. A next page token is not returned if there are no more results to display. To get the next page of results, perform another <code>GetRelationalDatabaseSnapshots</code> request and specify the next page token using the <code>pageToken</code> parameter.<br/>relationalDatabaseSnapshots:  An object describing the result of your get relational database snapshots request.<br/>        """
        pass

    def get_relational_databases(self, pageToken: str=None) -> GetRelationalDatabasesResult:
        r"""Returns information about all of your databases in Amazon Lightsail.

        :param self:
        :param pageToken:  The token to advance to the next page of results from your request. To get a page token, perform an initial <code>GetRelationalDatabases</code> request. If your results are paginated, the response will return a next page token that you can specify as the page token in a subsequent request.<br/>
        :return: nextPageToken:  The token to advance to the next page of results from your request. A next page token is not returned if there are no more results to display. To get the next page of results, perform another <code>GetRelationalDatabases</code> request and specify the next page token using the <code>pageToken</code> parameter.<br/>relationalDatabases:  An object describing the result of your get relational databases request.<br/>        """
        pass

    def get_static_ip(self, staticIpName: str) -> GetStaticIpResult:
        r"""Returns information about an Amazon Lightsail static IP.

        :param self:
        :param staticIpName:  The name of the static IP in Lightsail.<br/>
        :return: staticIp:  An array of key-value pairs containing information about the requested static IP.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>isAttached</i> A Boolean value indicating whether the static IP is attached.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>attachedTo</i> The instance where the static IP is attached (e.g., <code>Amazon_Linux-1GB-Ohio-1</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ipAddress</i> The static IP address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceType</i> The resource type (usually <code>StaticIp</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i> The region and Availability Zone where the static IP was created.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>location</b>: The region and Availability Zone where the static IP was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The timestamp when the static IP was created (e.g., <code>1479735304.222</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>supportCode</i> The support code. Include this code in your email to support when you have questions about an instance or another resource in Lightsail. This code enables our support team to look up your Lightsail information more easily.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the static IP (e.g., <code>arn:aws:lightsail:us-east-2:123456789101:StaticIp/9cbb4a9e-f8e3-4dfe-b57e-12345EXAMPLE</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the static IP (e.g., <code>StaticIP-Ohio-EXAMPLE</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>regionName</i> The AWS Region name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>availabilityZone</i> The Availability Zone. Follows the format <code>us-east-2a</code> (case-sensitive).<br/>        """
        pass

    def get_static_ips(self, pageToken: str=None) -> GetStaticIpsResult:
        r"""Returns information about all static IPs in the user's account.

        :param self:
        :param pageToken:  The token to advance to the next page of results from your request. To get a page token, perform an initial <code>GetStaticIps</code> request. If your results are paginated, the response will return a next page token that you can specify as the page token in a subsequent request.<br/>
        :return: nextPageToken:  The token to advance to the next page of results from your request. A next page token is not returned if there are no more results to display. To get the next page of results, perform another <code>GetStaticIps</code> request and specify the next page token using the <code>pageToken</code> parameter.<br/>staticIps:  An array of key-value pairs containing information about your get static IPs request.<br/>        """
        pass

    def import_key_pair(self, publicKeyBase64: str, keyPairName: str) -> ImportKeyPairResult:
        r"""Imports a public SSH key from a specific key pair.

        :param self:
        :param publicKeyBase64:  A base64-encoded public key of the <code>ssh-rsa</code> type.<br/>keyPairName:  The name of the key pair for which you want to import the public key.<br/>
        :return: operation:  An array of objects that describe the result of the action, such as the status of the request, the timestamp of the request, and the resources affected by the request.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>errorDetails</i> The error details.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>errorCode</i> The error code.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusChangedAt</i> The timestamp when the status was changed (e.g., <code>1479816991.349</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the operation. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>operationType</i> The type of operation. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>operationDetails</i> Details about the operation (e.g., <code>Debian-1GB-Ohio-1</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>isTerminal</i> A Boolean value indicating whether the operation is terminal.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i> The AWS Region and Availability Zone.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>location</b>: The AWS Region and Availability Zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The timestamp when the operation was initialized (e.g., <code>1479816991.349</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceType</i> The resource type. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceName</i> The resource name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The ID of the operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>regionName</i> The AWS Region name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>availabilityZone</i> The Availability Zone. Follows the format <code>us-east-2a</code> (case-sensitive).<br/>        """
        pass

    def is_vpc_peered(self) -> IsVpcPeeredResult:
        r"""Returns a Boolean value indicating whether your Lightsail VPC is peered.

        :param self:
        :param 
        :return: isPeered:  Returns <code>true</code> if the Lightsail VPC is peered; otherwise, <code>false</code>.<br/>        """
        pass

    def open_instance_public_ports(self, instanceName: str, portInfo: PortInfo) -> OpenInstancePublicPortsResult:
        r"""Opens ports for a specific Amazon Lightsail instance, and specifies the IP addresses allowed to connect to the instance through the ports, and the protocol. The <code>OpenInstancePublicPorts</code> action supports tag-based access control via resource tags applied to the resource identified by <code>instanceName</code>. For more information, see the <a href="https://lightsail.aws.amazon.com/ls/docs/en/articles/amazon-lightsail-controlling-access-using-tags">Lightsail Dev Guide</a>.

        :param self:
        :param instanceName:  The name of the instance for which to open ports.<br/>portInfo:  An object to describe the ports to open for the specified instance.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>cidrListAliases</i> An alias that defines access for a preconfigured range of IP addresses. The only alias currently supported is <code>lightsail-connect</code>, which allows IP addresses of the browser-based RDP/SSH client in the Lightsail console to connect to your instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ipv6Cidrs</i> The IPv6 address, or range of IPv6 addresses (in CIDR notation) that are allowed to connect to an instance through the ports, and the protocol. Only devices with an IPv6 address can connect to an instance through IPv6; otherwise, IPv4 should be used. <note> The <code>cidrs</code> parameter lists the IPv4 addresses that are allowed to connect to an instance. </note> For more information about CIDR block notation, see <a href="https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation">Classless Inter-Domain Routing</a> on <i>Wikipedia</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>cidrs</i> The IPv4 address, or range of IPv4 addresses (in CIDR notation) that are allowed to connect to an instance through the ports, and the protocol. <note> The <code>ipv6Cidrs</code> parameter lists the IPv6 addresses that are allowed to connect to an instance. </note> Examples: <ul> <li> To allow the IP address <code>192.0.2.44</code>, specify <code>192.0.2.44</code> or <code>192.0.2.44/32</code>.  </li> <li> To allow the IP addresses <code>192.0.2.0</code> to <code>192.0.2.255</code>, specify <code>192.0.2.0/24</code>. </li> </ul> For more information about CIDR block notation, see <a href="https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation">Classless Inter-Domain Routing</a> on <i>Wikipedia</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>protocol</i> The IP protocol name. The name can be one of the following: <ul> <li>  <code>tcp</code> - Transmission Control Protocol (TCP) provides reliable, ordered, and error-checked delivery of streamed data between applications running on hosts communicating by an IP network. If you have an application that doesn't require reliable data stream service, use UDP instead. </li> <li>  <code>all</code> - All transport layer protocol types. For more general information, see <a href="https://en.wikipedia.org/wiki/Transport_layer">Transport layer</a> on <i>Wikipedia</i>. </li> <li>  <code>udp</code> - With User Datagram Protocol (UDP), computer applications can send messages (or datagrams) to other hosts on an Internet Protocol (IP) network. Prior communications are not required to set up transmission channels or data paths. Applications that don't require reliable data stream service can use UDP, which provides a connectionless datagram service that emphasizes reduced latency over reliability. If you do require reliable data stream service, use TCP instead. </li> <li>  <code>icmp</code> - Internet Control Message Protocol (ICMP) is used to send error messages and operational information indicating success or failure when communicating with an instance. For example, an error is indicated when an instance could not be reached. When you specify <code>icmp</code> as the <code>protocol</code>, you must specify the ICMP type using the <code>fromPort</code> parameter, and ICMP code using the <code>toPort</code> parameter. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>toPort</i> The last port in a range of open ports on an instance. Allowed ports: <ul> <li> TCP and UDP - <code>0</code> to <code>65535</code>  </li> <li> ICMP - The ICMP code for IPv4 addresses. For example, specify <code>8</code> as the <code>fromPort</code> (ICMP type), and <code>-1</code> as the <code>toPort</code> (ICMP code), to enable ICMP Ping. For more information, see <a href="https://en.wikipedia.org/wiki/Internet_Control_Message_Protocol#Control_messages">Control Messages</a> on <i>Wikipedia</i>. </li> <li> ICMPv6 - The ICMP code for IPv6 addresses. For example, specify <code>128</code> as the <code>fromPort</code> (ICMPv6 type), and <code>0</code> as <code>toPort</code> (ICMPv6 code). For more information, see <a href="https://en.wikipedia.org/wiki/Internet_Control_Message_Protocol_for_IPv6">Internet Control Message Protocol for IPv6</a>. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>fromPort</i> The first port in a range of open ports on an instance. Allowed ports: <ul> <li> TCP and UDP - <code>0</code> to <code>65535</code>  </li> <li> ICMP - The ICMP type for IPv4 addresses. For example, specify <code>8</code> as the <code>fromPort</code> (ICMP type), and <code>-1</code> as the <code>toPort</code> (ICMP code), to enable ICMP Ping. For more information, see <a href="https://en.wikipedia.org/wiki/Internet_Control_Message_Protocol#Control_messages">Control Messages</a> on <i>Wikipedia</i>. </li> <li> ICMPv6 - The ICMP type for IPv6 addresses. For example, specify <code>128</code> as the <code>fromPort</code> (ICMPv6 type), and <code>0</code> as <code>toPort</code> (ICMPv6 code). For more information, see <a href="https://en.wikipedia.org/wiki/Internet_Control_Message_Protocol_for_IPv6">Internet Control Message Protocol for IPv6</a>. </li> </ul><br/>
        :return: operation:  An array of objects that describe the result of the action, such as the status of the request, the timestamp of the request, and the resources affected by the request.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>errorDetails</i> The error details.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>errorCode</i> The error code.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusChangedAt</i> The timestamp when the status was changed (e.g., <code>1479816991.349</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the operation. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>operationType</i> The type of operation. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>operationDetails</i> Details about the operation (e.g., <code>Debian-1GB-Ohio-1</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>isTerminal</i> A Boolean value indicating whether the operation is terminal.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i> The AWS Region and Availability Zone.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>location</b>: The AWS Region and Availability Zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The timestamp when the operation was initialized (e.g., <code>1479816991.349</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceType</i> The resource type. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceName</i> The resource name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The ID of the operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>regionName</i> The AWS Region name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>availabilityZone</i> The Availability Zone. Follows the format <code>us-east-2a</code> (case-sensitive).<br/>        """
        pass

    def peer_vpc(self) -> PeerVpcResult:
        r"""Tries to peer the Lightsail VPC with the user's default VPC.

        :param self:
        :param 
        :return: operation:  An array of objects that describe the result of the action, such as the status of the request, the timestamp of the request, and the resources affected by the request.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>errorDetails</i> The error details.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>errorCode</i> The error code.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusChangedAt</i> The timestamp when the status was changed (e.g., <code>1479816991.349</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the operation. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>operationType</i> The type of operation. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>operationDetails</i> Details about the operation (e.g., <code>Debian-1GB-Ohio-1</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>isTerminal</i> A Boolean value indicating whether the operation is terminal.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i> The AWS Region and Availability Zone.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>location</b>: The AWS Region and Availability Zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The timestamp when the operation was initialized (e.g., <code>1479816991.349</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceType</i> The resource type. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceName</i> The resource name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The ID of the operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>regionName</i> The AWS Region name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>availabilityZone</i> The Availability Zone. Follows the format <code>us-east-2a</code> (case-sensitive).<br/>        """
        pass

    def put_alarm(self, evaluationPeriods: int, threshold: double, comparisonOperator: str, monitoredResourceName: str, metricName: str, alarmName: str, datapointsToAlarm: int=None, treatMissingData: str=None, contactProtocols: List[ContactProtocol]=None, notificationTriggers: List[AlarmState]=None, notificationEnabled: boolean=None) -> PutAlarmResult:
        r"""Creates or updates an alarm, and associates it with the specified metric. An alarm is used to monitor a single metric for one of your resources. When a metric condition is met, the alarm can notify you by email, SMS text message, and a banner displayed on the Amazon Lightsail console. For more information, see <a href="https://lightsail.aws.amazon.com/ls/docs/en_us/articles/amazon-lightsail-alarms">Alarms in Amazon Lightsail</a>. When this action creates an alarm, the alarm state is immediately set to <code>INSUFFICIENT_DATA</code>. The alarm is then evaluated and its state is set appropriately. Any actions associated with the new state are then executed. When you update an existing alarm, its state is left unchanged, but the update completely overwrites the previous configuration of the alarm. The alarm is then evaluated with the updated configuration.

        :param self:
        :param notificationEnabled:  Indicates whether the alarm is enabled. Notifications are enabled by default if you don't specify this parameter.<br/>notificationTriggers:  The alarm states that trigger a notification. An alarm has the following possible states: <ul> <li>  <code>ALARM</code> - The metric is outside of the defined threshold. </li> <li>  <code>INSUFFICIENT_DATA</code> - The alarm has just started, the metric is not available, or not enough data is available for the metric to determine the alarm state. </li> <li>  <code>OK</code> - The metric is within the defined threshold. </li> </ul> When you specify a notification trigger, the <code>ALARM</code> state must be specified. The <code>INSUFFICIENT_DATA</code> and <code>OK</code> states can be specified in addition to the <code>ALARM</code> state. <ul> <li> If you specify <code>OK</code> as an alarm trigger, a notification is sent when the alarm switches from an <code>ALARM</code> or <code>INSUFFICIENT_DATA</code> alarm state to an <code>OK</code> state. This can be thought of as an <i>all clear</i> alarm notification. </li> <li> If you specify <code>INSUFFICIENT_DATA</code> as the alarm trigger, a notification is sent when the alarm switches from an <code>OK</code> or <code>ALARM</code> alarm state to an <code>INSUFFICIENT_DATA</code> state. </li> </ul> The notification trigger defaults to <code>ALARM</code> if you don't specify this parameter.<br/>contactProtocols:  The contact protocols to use for the alarm, such as <code>Email</code>, <code>SMS</code> (text messaging), or both. A notification is sent via the specified contact protocol if notifications are enabled for the alarm, and when the alarm is triggered. A notification is not sent if a contact protocol is not specified, if the specified contact protocol is not configured in the AWS Region, or if notifications are not enabled for the alarm using the <code>notificationEnabled</code> paramater. Use the <code>CreateContactMethod</code> action to configure a contact protocol in an AWS Region.<br/>treatMissingData:  Sets how this alarm will handle missing data points. An alarm can treat missing data in the following ways: <ul> <li>  <code>breaching</code> - Assume the missing data is not within the threshold. Missing data counts towards the number of times the metric is not within the threshold. </li> <li>  <code>notBreaching</code> - Assume the missing data is within the threshold. Missing data does not count towards the number of times the metric is not within the threshold. </li> <li>  <code>ignore</code> - Ignore the missing data. Maintains the current alarm state. </li> <li>  <code>missing</code> - Missing data is treated as missing. </li> </ul> If <code>treatMissingData</code> is not specified, the default behavior of <code>missing</code> is used.<br/>datapointsToAlarm:  The number of data points that must be not within the specified threshold to trigger the alarm. If you are setting an "M out of N" alarm, this value (<code>datapointsToAlarm</code>) is the M.<br/>evaluationPeriods:  The number of most recent periods over which data is compared to the specified threshold. If you are setting an "M out of N" alarm, this value (<code>evaluationPeriods</code>) is the N. If you are setting an alarm that requires that a number of consecutive data points be breaching to trigger the alarm, this value specifies the rolling period of time in which data points are evaluated. Each evaluation period is five minutes long. For example, specify an evaluation period of 24 to evaluate a metric over a rolling period of two hours. You can specify a minimum valuation period of 1 (5 minutes), and a maximum evaluation period of 288 (24 hours).<br/>threshold:  The value against which the specified statistic is compared.<br/>comparisonOperator:  The arithmetic operation to use when comparing the specified statistic to the threshold. The specified statistic value is used as the first operand.<br/>monitoredResourceName:  The name of the Lightsail resource that will be monitored. Instances, load balancers, and relational databases are the only Lightsail resources that can currently be monitored by alarms.<br/>metricName:  The name of the metric to associate with the alarm. You can configure up to two alarms per metric. The following metrics are available for each resource type: <ul> <li>  <b>Instances</b>: <code>BurstCapacityPercentage</code>, <code>BurstCapacityTime</code>, <code>CPUUtilization</code>, <code>NetworkIn</code>, <code>NetworkOut</code>, <code>StatusCheckFailed</code>, <code>StatusCheckFailed_Instance</code>, and <code>StatusCheckFailed_System</code>. </li> <li>  <b>Load balancers</b>: <code>ClientTLSNegotiationErrorCount</code>, <code>HealthyHostCount</code>, <code>UnhealthyHostCount</code>, <code>HTTPCode_LB_4XX_Count</code>, <code>HTTPCode_LB_5XX_Count</code>, <code>HTTPCode_Instance_2XX_Count</code>, <code>HTTPCode_Instance_3XX_Count</code>, <code>HTTPCode_Instance_4XX_Count</code>, <code>HTTPCode_Instance_5XX_Count</code>, <code>InstanceResponseTime</code>, <code>RejectedConnectionCount</code>, and <code>RequestCount</code>. </li> <li>  <b>Relational databases</b>: <code>CPUUtilization</code>, <code>DatabaseConnections</code>, <code>DiskQueueDepth</code>, <code>FreeStorageSpace</code>, <code>NetworkReceiveThroughput</code>, and <code>NetworkTransmitThroughput</code>. </li> </ul> For more information about these metrics, see <a href="https://lightsail.aws.amazon.com/ls/docs/en_us/articles/amazon-lightsail-resource-health-metrics#available-metrics">Metrics available in Lightsail</a>.<br/>alarmName:  The name for the alarm. Specify the name of an existing alarm to update, and overwrite the previous configuration of the alarm.<br/>
        :return: operations:  An array of objects that describe the result of the action, such as the status of the request, the timestamp of the request, and the resources affected by the request.<br/>        """
        pass

    def put_instance_public_ports(self, instanceName: str, portInfos: List[PortInfo]) -> PutInstancePublicPortsResult:
        r"""Opens ports for a specific Amazon Lightsail instance, and specifies the IP addresses allowed to connect to the instance through the ports, and the protocol. This action also closes all currently open ports that are not included in the request. Include all of the ports and the protocols you want to open in your <code>PutInstancePublicPorts</code>request. Or use the <code>OpenInstancePublicPorts</code> action to open ports without closing currently open ports. The <code>PutInstancePublicPorts</code> action supports tag-based access control via resource tags applied to the resource identified by <code>instanceName</code>. For more information, see the <a href="https://lightsail.aws.amazon.com/ls/docs/en/articles/amazon-lightsail-controlling-access-using-tags">Lightsail Dev Guide</a>.

        :param self:
        :param instanceName:  The name of the instance for which to open ports.<br/>portInfos:  An array of objects to describe the ports to open for the specified instance.<br/>
        :return: operation:  An array of objects that describe the result of the action, such as the status of the request, the timestamp of the request, and the resources affected by the request.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>errorDetails</i> The error details.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>errorCode</i> The error code.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusChangedAt</i> The timestamp when the status was changed (e.g., <code>1479816991.349</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the operation. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>operationType</i> The type of operation. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>operationDetails</i> Details about the operation (e.g., <code>Debian-1GB-Ohio-1</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>isTerminal</i> A Boolean value indicating whether the operation is terminal.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i> The AWS Region and Availability Zone.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>location</b>: The AWS Region and Availability Zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The timestamp when the operation was initialized (e.g., <code>1479816991.349</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceType</i> The resource type. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceName</i> The resource name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The ID of the operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>regionName</i> The AWS Region name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>availabilityZone</i> The Availability Zone. Follows the format <code>us-east-2a</code> (case-sensitive).<br/>        """
        pass

    def reboot_instance(self, instanceName: str) -> RebootInstanceResult:
        r"""Restarts a specific instance. The <code>reboot instance</code> operation supports tag-based access control via resource tags applied to the resource identified by <code>instance name</code>. For more information, see the <a href="https://lightsail.aws.amazon.com/ls/docs/en/articles/amazon-lightsail-controlling-access-using-tags">Lightsail Dev Guide</a>.

        :param self:
        :param instanceName:  The name of the instance to reboot.<br/>
        :return: operations:  An array of objects that describe the result of the action, such as the status of the request, the timestamp of the request, and the resources affected by the request.<br/>        """
        pass

    def reboot_relational_database(self, relationalDatabaseName: str) -> RebootRelationalDatabaseResult:
        r"""Restarts a specific database in Amazon Lightsail. The <code>reboot relational database</code> operation supports tag-based access control via resource tags applied to the resource identified by relationalDatabaseName. For more information, see the <a href="https://lightsail.aws.amazon.com/ls/docs/en/articles/amazon-lightsail-controlling-access-using-tags">Lightsail Dev Guide</a>.

        :param self:
        :param relationalDatabaseName:  The name of your database to reboot.<br/>
        :return: operations:  An array of objects that describe the result of the action, such as the status of the request, the timestamp of the request, and the resources affected by the request.<br/>        """
        pass

    def register_container_image(self, digest: str, label: str, serviceName: str) -> RegisterContainerImageResult:
        r"""Registers a container image to your Amazon Lightsail container service. <note> This action is not required if you install and use the Lightsail Control (lightsailctl) plugin to push container images to your Lightsail container service. For more information, see <a href="https://lightsail.aws.amazon.com/ls/docs/en_us/articles/amazon-lightsail-pushing-container-images">Pushing and managing container images on your Amazon Lightsail container services</a> in the <i>Lightsail Dev Guide</i>. </note>

        :param self:
        :param digest:  The digest of the container image to be registered.<br/>label:  The label for the container image when it's registered to the container service. Use a descriptive label that you can use to track the different versions of your registered container images. Use the <code>GetContainerImages</code> action to return the container images registered to a Lightsail container service. The label is the <code>&lt;imagelabel&gt;</code> portion of the following image name example: <ul> <li>  <code>:container-service-1.&lt;imagelabel&gt;.1</code>  </li> </ul> If the name of your container service is <code>mycontainerservice</code>, and the label that you specify is <code>mystaticwebsite</code>, then the name of the registered container image will be <code>:mycontainerservice.mystaticwebsite.1</code>. The number at the end of these image name examples represents the version of the registered container image. If you push and register another container image to the same Lightsail container service, with the same label, then the version number for the new registered container image will be <code>2</code>. If you push and register another container image, the version number will be <code>3</code>, and so on.<br/>serviceName:  The name of the container service for which to register a container image.<br/>
        :return: containerImage:  Describes a container image that is registered to an Amazon Lightsail container service.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The timestamp when the container image was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>digest</i> The digest of the container image.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>image</i> The name of the container image.<br/>        """
        pass

    def release_static_ip(self, staticIpName: str) -> ReleaseStaticIpResult:
        r"""Deletes a specific static IP from your account.

        :param self:
        :param staticIpName:  The name of the static IP to delete.<br/>
        :return: operations:  An array of objects that describe the result of the action, such as the status of the request, the timestamp of the request, and the resources affected by the request.<br/>        """
        pass

    def reset_distribution_cache(self, distributionName: str=None) -> ResetDistributionCacheResult:
        r"""Deletes currently cached content from your Amazon Lightsail content delivery network (CDN) distribution. After resetting the cache, the next time a content request is made, your distribution pulls, serves, and caches it from the origin.

        :param self:
        :param distributionName:  The name of the distribution for which to reset cache. Use the <code>GetDistributions</code> action to get a list of distribution names that you can specify.<br/>
        :return: operation:  An array of objects that describe the result of the action, such as the status of the request, the timestamp of the request, and the resources affected by the request.:<br/>createTime:  The timestamp of the reset cache request (e.g., <code>1479734909.17</code>) in Unix time format.<br/>status:  The status of the reset cache request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>errorDetails</i> The error details.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>errorCode</i> The error code.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusChangedAt</i> The timestamp when the status was changed (e.g., <code>1479816991.349</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the operation. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>operationType</i> The type of operation. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>operationDetails</i> Details about the operation (e.g., <code>Debian-1GB-Ohio-1</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>isTerminal</i> A Boolean value indicating whether the operation is terminal.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i> The AWS Region and Availability Zone.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>location</b>: The AWS Region and Availability Zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The timestamp when the operation was initialized (e.g., <code>1479816991.349</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceType</i> The resource type. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceName</i> The resource name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The ID of the operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>regionName</i> The AWS Region name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>availabilityZone</i> The Availability Zone. Follows the format <code>us-east-2a</code> (case-sensitive).<br/>        """
        pass

    def send_contact_method_verification(self, protocol: str) -> SendContactMethodVerificationResult:
        r"""Sends a verification request to an email contact method to ensure it's owned by the requester. SMS contact methods don't need to be verified. A contact method is used to send you notifications about your Amazon Lightsail resources. You can add one email address and one mobile phone number contact method in each AWS Region. However, SMS text messaging is not supported in some AWS Regions, and SMS text messages cannot be sent to some countries/regions. For more information, see <a href="https://lightsail.aws.amazon.com/ls/docs/en_us/articles/amazon-lightsail-notifications">Notifications in Amazon Lightsail</a>. A verification request is sent to the contact method when you initially create it. Use this action to send another verification request if a previous verification request was deleted, or has expired. <important> Notifications are not sent to an email contact method until after it is verified, and confirmed as valid. </important>

        :param self:
        :param protocol:  The protocol to verify, such as <code>Email</code> or <code>SMS</code> (text messaging).<br/>
        :return: operations:  An array of objects that describe the result of the action, such as the status of the request, the timestamp of the request, and the resources affected by the request.<br/>        """
        pass

    def set_ip_address_type(self, ipAddressType: str, resourceName: str, resourceType: str) -> SetIpAddressTypeResult:
        r"""Sets the IP address type for an Amazon Lightsail resource. Use this action to enable dual-stack for a resource, which enables IPv4 and IPv6 for the specified resource. Alternately, you can use this action to disable dual-stack, and enable IPv4 only.

        :param self:
        :param ipAddressType:  The IP address type to set for the specified resource. The possible values are <code>ipv4</code> for IPv4 only, and <code>dualstack</code> for IPv4 and IPv6.<br/>resourceName:  The name of the resource for which to set the IP address type.<br/>resourceType:  The resource type. The possible values are <code>Distribution</code>, <code>Instance</code>, and <code>LoadBalancer</code>. <note> Distribution-related APIs are available only in the N. Virginia (<code>us-east-1</code>) AWS Region. Set your AWS Region configuration to <code>us-east-1</code> to create, view, or edit distributions. </note><br/>
        :return: operations:  An array of objects that describe the result of the action, such as the status of the request, the timestamp of the request, and the resources affected by the request.<br/>        """
        pass

    def start_instance(self, instanceName: str) -> StartInstanceResult:
        r"""Starts a specific Amazon Lightsail instance from a stopped state. To restart an instance, use the <code>reboot instance</code> operation. <note> When you start a stopped instance, Lightsail assigns a new public IP address to the instance. To use the same IP address after stopping and starting an instance, create a static IP address and attach it to the instance. For more information, see the <a href="https://lightsail.aws.amazon.com/ls/docs/en/articles/lightsail-create-static-ip">Lightsail Dev Guide</a>. </note> The <code>start instance</code> operation supports tag-based access control via resource tags applied to the resource identified by <code>instance name</code>. For more information, see the <a href="https://lightsail.aws.amazon.com/ls/docs/en/articles/amazon-lightsail-controlling-access-using-tags">Lightsail Dev Guide</a>.

        :param self:
        :param instanceName:  The name of the instance (a virtual private server) to start.<br/>
        :return: operations:  An array of objects that describe the result of the action, such as the status of the request, the timestamp of the request, and the resources affected by the request.<br/>        """
        pass

    def start_relational_database(self, relationalDatabaseName: str) -> StartRelationalDatabaseResult:
        r"""Starts a specific database from a stopped state in Amazon Lightsail. To restart a database, use the <code>reboot relational database</code> operation. The <code>start relational database</code> operation supports tag-based access control via resource tags applied to the resource identified by relationalDatabaseName. For more information, see the <a href="https://lightsail.aws.amazon.com/ls/docs/en/articles/amazon-lightsail-controlling-access-using-tags">Lightsail Dev Guide</a>.

        :param self:
        :param relationalDatabaseName:  The name of your database to start.<br/>
        :return: operations:  An array of objects that describe the result of the action, such as the status of the request, the timestamp of the request, and the resources affected by the request.<br/>        """
        pass

    def stop_instance(self, instanceName: str, force: boolean=None) -> StopInstanceResult:
        r"""Stops a specific Amazon Lightsail instance that is currently running. <note> When you start a stopped instance, Lightsail assigns a new public IP address to the instance. To use the same IP address after stopping and starting an instance, create a static IP address and attach it to the instance. For more information, see the <a href="https://lightsail.aws.amazon.com/ls/docs/en/articles/lightsail-create-static-ip">Lightsail Dev Guide</a>. </note> The <code>stop instance</code> operation supports tag-based access control via resource tags applied to the resource identified by <code>instance name</code>. For more information, see the <a href="https://lightsail.aws.amazon.com/ls/docs/en/articles/amazon-lightsail-controlling-access-using-tags">Lightsail Dev Guide</a>.

        :param self:
        :param force:  When set to <code>True</code>, forces a Lightsail instance that is stuck in a <code>stopping</code> state to stop. <important> Only use the <code>force</code> parameter if your instance is stuck in the <code>stopping</code> state. In any other state, your instance should stop normally without adding this parameter to your API request. </important><br/>instanceName:  The name of the instance (a virtual private server) to stop.<br/>
        :return: operations:  An array of objects that describe the result of the action, such as the status of the request, the timestamp of the request, and the resources affected by the request.<br/>        """
        pass

    def stop_relational_database(self, relationalDatabaseName: str, relationalDatabaseSnapshotName: str=None) -> StopRelationalDatabaseResult:
        r"""Stops a specific database that is currently running in Amazon Lightsail. The <code>stop relational database</code> operation supports tag-based access control via resource tags applied to the resource identified by relationalDatabaseName. For more information, see the <a href="https://lightsail.aws.amazon.com/ls/docs/en/articles/amazon-lightsail-controlling-access-using-tags">Lightsail Dev Guide</a>.

        :param self:
        :param relationalDatabaseSnapshotName:  The name of your new database snapshot to be created before stopping your database.<br/>relationalDatabaseName:  The name of your database to stop.<br/>
        :return: operations:  An array of objects that describe the result of the action, such as the status of the request, the timestamp of the request, and the resources affected by the request.<br/>        """
        pass

    def tag_resource(self, tags: List[Tag], resourceName: str, resourceArn: str=None) -> TagResourceResult:
        r"""Adds one or more tags to the specified Amazon Lightsail resource. Each resource can have a maximum of 50 tags. Each tag consists of a key and an optional value. Tag keys must be unique per resource. For more information about tags, see the <a href="https://lightsail.aws.amazon.com/ls/docs/en/articles/amazon-lightsail-tags">Lightsail Dev Guide</a>. The <code>tag resource</code> operation supports tag-based access control via request tags and resource tags applied to the resource identified by <code>resource name</code>. For more information, see the <a href="https://lightsail.aws.amazon.com/ls/docs/en/articles/amazon-lightsail-controlling-access-using-tags">Lightsail Dev Guide</a>.

        :param self:
        :param tags:  The tag key and optional value.<br/>resourceArn:  The Amazon Resource Name (ARN) of the resource to which you want to add a tag.<br/>resourceName:  The name of the resource to which you are adding tags.<br/>
        :return: operations:  An array of objects that describe the result of the action, such as the status of the request, the timestamp of the request, and the resources affected by the request.<br/>        """
        pass

    def test_alarm(self, state: str, alarmName: str) -> TestAlarmResult:
        r"""Tests an alarm by displaying a banner on the Amazon Lightsail console. If a notification trigger is configured for the specified alarm, the test also sends a notification to the notification protocol (<code>Email</code> and/or <code>SMS</code>) configured for the alarm. An alarm is used to monitor a single metric for one of your resources. When a metric condition is met, the alarm can notify you by email, SMS text message, and a banner displayed on the Amazon Lightsail console. For more information, see <a href="https://lightsail.aws.amazon.com/ls/docs/en_us/articles/amazon-lightsail-alarms">Alarms in Amazon Lightsail</a>.

        :param self:
        :param state:  The alarm state to test. An alarm has the following possible states that can be tested: <ul> <li>  <code>ALARM</code> - The metric is outside of the defined threshold. </li> <li>  <code>INSUFFICIENT_DATA</code> - The alarm has just started, the metric is not available, or not enough data is available for the metric to determine the alarm state. </li> <li>  <code>OK</code> - The metric is within the defined threshold. </li> </ul><br/>alarmName:  The name of the alarm to test.<br/>
        :return: operations:  An array of objects that describe the result of the action, such as the status of the request, the timestamp of the request, and the resources affected by the request.<br/>        """
        pass

    def unpeer_vpc(self) -> UnpeerVpcResult:
        r"""Attempts to unpeer the Lightsail VPC from the user's default VPC.

        :param self:
        :param 
        :return: operation:  An array of objects that describe the result of the action, such as the status of the request, the timestamp of the request, and the resources affected by the request.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>errorDetails</i> The error details.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>errorCode</i> The error code.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusChangedAt</i> The timestamp when the status was changed (e.g., <code>1479816991.349</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the operation. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>operationType</i> The type of operation. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>operationDetails</i> Details about the operation (e.g., <code>Debian-1GB-Ohio-1</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>isTerminal</i> A Boolean value indicating whether the operation is terminal.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i> The AWS Region and Availability Zone.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>location</b>: The AWS Region and Availability Zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The timestamp when the operation was initialized (e.g., <code>1479816991.349</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceType</i> The resource type. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceName</i> The resource name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The ID of the operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>regionName</i> The AWS Region name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>availabilityZone</i> The Availability Zone. Follows the format <code>us-east-2a</code> (case-sensitive).<br/>        """
        pass

    def untag_resource(self, tagKeys: List[TagKey], resourceName: str, resourceArn: str=None) -> UntagResourceResult:
        r"""Deletes the specified set of tag keys and their values from the specified Amazon Lightsail resource. The <code>untag resource</code> operation supports tag-based access control via request tags and resource tags applied to the resource identified by <code>resource name</code>. For more information, see the <a href="https://lightsail.aws.amazon.com/ls/docs/en/articles/amazon-lightsail-controlling-access-using-tags">Lightsail Dev Guide</a>.

        :param self:
        :param tagKeys:  The tag keys to delete from the specified resource.<br/>resourceArn:  The Amazon Resource Name (ARN) of the resource from which you want to remove a tag.<br/>resourceName:  The name of the resource from which you are removing a tag.<br/>
        :return: operations:  An array of objects that describe the result of the action, such as the status of the request, the timestamp of the request, and the resources affected by the request.<br/>        """
        pass

    def update_container_service(self, serviceName: str, power: str=None, scale: int=None, isDisabled: boolean=None, publicDomainNames: ContainerServicePublicDomains=None) -> UpdateContainerServiceResult:
        r"""Updates the configuration of your Amazon Lightsail container service, such as its power, scale, and public domain names.

        :param self:
        :param publicDomainNames:  The public domain names to use with the container service, such as <code>example.com</code> and <code>www.example.com</code>. You can specify up to four public domain names for a container service. The domain names that you specify are used when you create a deployment with a container configured as the public endpoint of your container service. If you don't specify public domain names, then you can use the default domain of the container service. <important> You must create and validate an SSL/TLS certificate before you can use public domain names with your container service. Use the <code>CreateCertificate</code> action to create a certificate for the public domain names you want to use with your container service. </important> You can specify public domain names using a string to array map as shown in the example later on this page.<br/>isDisabled:  A Boolean value to indicate whether the container service is disabled.<br/>scale:  The scale for the container service. The scale specifies the allocated compute nodes of the container service. The <code>power</code> and <code>scale</code> of a container service makes up its configured capacity. To determine the monthly price of your container service, multiply the base price of the <code>power</code> with the <code>scale</code> (the number of nodes) of the service.<br/>power:  The power for the container service. The power specifies the amount of memory, vCPUs, and base monthly cost of each node of the container service. The <code>power</code> and <code>scale</code> of a container service makes up its configured capacity. To determine the monthly price of your container service, multiply the base price of the <code>power</code> with the <code>scale</code> (the number of nodes) of the service. Use the <code>GetContainerServicePowers</code> action to view the specifications of each power option.<br/>serviceName:  The name of the container service to update.<br/>
        :return: containerService:  An object that describes a container service.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>url</i> The publicly accessible URL of the container service. If no public endpoint is specified in the <code>currentDeployment</code>, this URL returns a 404 response.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>publicDomainNames</i> The public domain name of the container service, such as <code>example.com</code> and <code>www.example.com</code>. You can specify up to four public domain names for a container service. The domain names that you specify are used when you create a deployment with a container configured as the public endpoint of your container service. If you don't specify public domain names, then you can use the default domain of the container service. <important> You must create and validate an SSL/TLS certificate before you can use public domain names with your container service. Use the <code>CreateCertificate</code> action to create a certificate for the public domain names you want to use with your container service. </important> See <code>CreateContainerService</code> or <code>UpdateContainerService</code> for information about how to specify public domain names for your Lightsail container service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>privateDomainName</i> The private domain name of the container service. The private domain name is accessible only by other resources within the default virtual private cloud (VPC) of your Lightsail account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>principalArn</i> The principal ARN of the container service. The principal ARN can be used to create a trust relationship between your standard AWS account and your Lightsail container service. This allows you to give your service permission to access resources in your standard AWS account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>isDisabled</i> A Boolean value indicating whether the container service is disabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>nextDeployment</i> An object that describes the next deployment of the container service. This value is <code>null</code> when there is no deployment in a <code>pending</code> state.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>nextDeployment</b>: An object that describes the next deployment of the container service. This value is <code>null</code> when there is no deployment in a <code>pending</code> state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>currentDeployment</i> An object that describes the current container deployment of the container service.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>currentDeployment</b>: An object that describes the current container deployment of the container service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>scale</i> The scale specification of the container service. The scale specifies the allocated compute nodes of the container service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>stateDetail</i> An object that describes the current state of the container service. <note> The state detail is populated only when a container service is in a <code>PENDING</code>, <code>DEPLOYING</code>, or <code>UPDATING</code> state. </note>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>stateDetail</b>: An object that describes the current state of the container service. <note> The state detail is populated only when a container service is in a <code>PENDING</code>, <code>DEPLOYING</code>, or <code>UPDATING</code> state. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>state</i> The current state of the container service. The following container service states are possible: <ul> <li>  <code>PENDING</code> - The container service is being created. </li> <li>  <code>READY</code> - The container service is running but it does not have an active container deployment. </li> <li>  <code>DEPLOYING</code> - The container service is launching a container deployment. </li> <li>  <code>RUNNING</code> - The container service is running and it has an active container deployment. </li> <li>  <code>UPDATING</code> - The container service capacity or its custom domains are being updated. </li> <li>  <code>DELETING</code> - The container service is being deleted. </li> <li>  <code>DISABLED</code> - The container service is disabled, and its active deployment and containers, if any, are shut down. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>powerId</i> The ID of the power of the container service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>power</i> The power specification of the container service. The power specifies the amount of RAM, the number of vCPUs, and the base price of the container service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The tag keys and optional values for the resource. For more information about tags in Lightsail, see the <a href="https://lightsail.aws.amazon.com/ls/docs/en/articles/amazon-lightsail-tags">Lightsail Dev Guide</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceType</i> The Lightsail resource type of the container service (i.e., <code>ContainerService</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i> An object that describes the location of the container service, such as the AWS Region and Availability Zone.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>location</b>: An object that describes the location of the container service, such as the AWS Region and Availability Zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The timestamp when the container service was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the container service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>containerServiceName</i> The name of the container service.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>regionName</i> The AWS Region name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>availabilityZone</i> The Availability Zone. Follows the format <code>us-east-2a</code> (case-sensitive).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>message</i> A message that provides more information for the state code. <note> The state detail is populated only when a container service is in a <code>PENDING</code>, <code>DEPLOYING</code>, or <code>UPDATING</code> state. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>code</i> The state code of the container service. The following state codes are possible: <ul> <li> The following state codes are possible if your container service is in a <code>DEPLOYING</code> or <code>UPDATING</code> state: <ul> <li>  <code>CREATING_SYSTEM_RESOURCES</code> - The system resources for your container service are being created. </li> <li>  <code>CREATING_NETWORK_INFRASTRUCTURE</code> - The network infrastructure for your container service are being created. </li> <li>  <code>PROVISIONING_CERTIFICATE</code> - The SSL/TLS certificate for your container service is being created. </li> <li>  <code>PROVISIONING_SERVICE</code> - Your container service is being provisioned. </li> <li>  <code>CREATING_DEPLOYMENT</code> - Your deployment is being created on your container service. </li> <li>  <code>EVALUATING_HEALTH_CHECK</code> - The health of your deployment is being evaluated. </li> <li>  <code>ACTIVATING_DEPLOYMENT</code> - Your deployment is being activated. </li> </ul> </li> <li> The following state codes are possible if your container service is in a <code>PENDING</code> state: <ul> <li>  <code>CERTIFICATE_LIMIT_EXCEEDED</code> - The SSL/TLS certificate required for your container service exceeds the maximum number of certificates allowed for your account. </li> <li>  <code>UNKNOWN_ERROR</code> - An error was experienced when your container service was being created. </li> </ul> </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>containers</i> An object that describes the configuration for the containers of the deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>state</i> The state of the deployment. A deployment can be in one of the following states: <ul> <li>  <code>Activating</code> - The deployment is being created. </li> <li>  <code>Active</code> - The deployment was successfully created, and it's currently running on the container service. The container service can have only one deployment in an active state at a time. </li> <li>  <code>Inactive</code> - The deployment was previously successfully created, but it is not currently running on the container service. </li> <li>  <code>Failed</code> - The deployment failed. Use the <code>GetContainerLog</code> action to view the log events for the containers in the deployment to try to determine the reason for the failure. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The version number of the deployment.<br/>An object that describes the endpoint of the deployment.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>publicEndpoint</b>: An object that describes the endpoint of the deployment.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>containers</i> An object that describes the configuration for the containers of the deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>state</i> The state of the deployment. A deployment can be in one of the following states: <ul> <li>  <code>Activating</code> - The deployment is being created. </li> <li>  <code>Active</code> - The deployment was successfully created, and it's currently running on the container service. The container service can have only one deployment in an active state at a time. </li> <li>  <code>Inactive</code> - The deployment was previously successfully created, but it is not currently running on the container service. </li> <li>  <code>Failed</code> - The deployment failed. Use the <code>GetContainerLog</code> action to view the log events for the containers in the deployment to try to determine the reason for the failure. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The version number of the deployment.<br/>An object that describes the endpoint of the deployment.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>publicEndpoint</b>: An object that describes the endpoint of the deployment.        """
        pass

    def update_distribution(self, distributionName: str, origin: InputOrigin=None, defaultCacheBehavior: CacheBehavior=None, cacheBehaviorSettings: CacheSettings=None, cacheBehaviors: List[CacheBehaviorPerPath]=None, isEnabled: boolean=None) -> UpdateDistributionResult:
        r"""Updates an existing Amazon Lightsail content delivery network (CDN) distribution. Use this action to update the configuration of your existing distribution

        :param self:
        :param isEnabled:  Indicates whether to enable the distribution.<br/>cacheBehaviors:  An array of objects that describe the per-path cache behavior for the distribution.<br/>cacheBehaviorSettings:  An object that describes the cache behavior settings for the distribution. <note> The <code>cacheBehaviorSettings</code> specified in your <code>UpdateDistributionRequest</code> will replace your distribution's existing settings. </note>:<br/>defaultCacheBehavior:  An object that describes the default cache behavior for the distribution.:<br/>origin:  An object that describes the origin resource for the distribution, such as a Lightsail instance or load balancer. The distribution pulls, caches, and serves content from the origin.:<br/>distributionName:  The name of the distribution to update. Use the <code>GetDistributions</code> action to get a list of distribution names that you can specify.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>protocolPolicy</i> The protocol that your Amazon Lightsail distribution uses when establishing a connection with your origin to pull content.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>regionName</i> The AWS Region name of the origin resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the origin resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>behavior</i> The cache behavior of the distribution. The following cache behaviors can be specified: <ul> <li>  <b> <code>cache</code> </b> - This option is best for static sites. When specified, your distribution caches and serves your entire website as static content. This behavior is ideal for websites with static content that doesn't change depending on who views it, or for websites that don't use cookies, headers, or query strings to personalize content. </li> <li>  <b> <code>dont-cache</code> </b> - This option is best for sites that serve a mix of static and dynamic content. When specified, your distribution caches and serve only the content that is specified in the distribution's <code>CacheBehaviorPerPath</code> parameter. This behavior is ideal for websites or web applications that use cookies, headers, and query strings to personalize content for individual users. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>forwardedQueryStrings</i> An object that describes the query strings that are forwarded to the origin. Your content is cached based on the query strings that are forwarded.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>forwardedQueryStrings</b>: An object that describes the query strings that are forwarded to the origin. Your content is cached based on the query strings that are forwarded.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>forwardedHeaders</i> An object that describes the headers that are forwarded to the origin. Your content is cached based on the headers that are forwarded.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>forwardedHeaders</b>: An object that describes the headers that are forwarded to the origin. Your content is cached based on the headers that are forwarded.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>forwardedCookies</i> An object that describes the cookies that are forwarded to the origin. Your content is cached based on the cookies that are forwarded.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>forwardedCookies</b>: An object that describes the cookies that are forwarded to the origin. Your content is cached based on the cookies that are forwarded.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>cachedHTTPMethods</i> The HTTP method responses that are cached by your distribution. You can specify the following options: <ul> <li>  <code>GET,HEAD</code> - The distribution caches responses to the <code>GET</code> and <code>HEAD</code> methods. </li> <li>  <code>GET,HEAD,OPTIONS</code> - The distribution caches responses to the <code>GET</code>, <code>HEAD</code>, and <code>OPTIONS</code> methods. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>allowedHTTPMethods</i> The HTTP methods that are processed and forwarded to the distribution's origin. You can specify the following options: <ul> <li>  <code>GET,HEAD</code> - The distribution forwards the <code>GET</code> and <code>HEAD</code> methods. </li> <li>  <code>GET,HEAD,OPTIONS</code> - The distribution forwards the <code>GET</code>, <code>HEAD</code>, and <code>OPTIONS</code> methods. </li> <li>  <code>GET,HEAD,OPTIONS,PUT,PATCH,POST,DELETE</code> - The distribution forwards the <code>GET</code>, <code>HEAD</code>, <code>OPTIONS</code>, <code>PUT</code>, <code>PATCH</code>, <code>POST</code>, and <code>DELETE</code> methods. </li> </ul> If you specify the third option, you might need to restrict access to your distribution's origin so users can't perform operations that you don't want them to. For example, you might not want users to have permission to delete objects from your origin.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>maximumTTL</i> The maximum amount of time that objects stay in the distribution's cache before the distribution forwards another request to the origin to determine whether the object has been updated. The value specified applies only when the origin adds HTTP headers such as <code>Cache-Control max-age</code>, <code>Cache-Control s-maxage</code>, and <code>Expires</code> to objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>minimumTTL</i> The minimum amount of time that objects stay in the distribution's cache before the distribution forwards another request to the origin to determine whether the object has been updated. A value of <code>0</code> must be specified for <code>minimumTTL</code> if the distribution is configured to forward all headers to the origin.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>defaultTTL</i> The default amount of time that objects stay in the distribution's cache before the distribution forwards another request to the origin to determine whether the content has been updated. <note> The value specified applies only when the origin does not add HTTP headers such as <code>Cache-Control max-age</code>, <code>Cache-Control s-maxage</code>, and <code>Expires</code> to objects. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>cookiesAllowList</i> The specific cookies to forward to your distribution's origin.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>option</i> Specifies which cookies to forward to the distribution's origin for a cache behavior: <code>all</code>, <code>none</code>, or <code>allow-list</code> to forward only the cookies specified in the <code>cookiesAllowList</code> parameter.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>headersAllowList</i> The specific headers to forward to your distribution's origin.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>option</i> The headers that you want your distribution to forward to your origin and base caching on. You can configure your distribution to do one of the following: <ul> <li>  <b> <code>all</code> </b> - Forward all headers to your origin. </li> <li>  <b> <code>none</code> </b> - Forward only the default headers. </li> <li>  <b> <code>allow-list</code> </b> - Forward only the headers you specify using the <code>headersAllowList</code> parameter. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>queryStringsAllowList</i> The specific query strings that the distribution forwards to the origin. Your distribution will cache content based on the specified query strings. If the <code>option</code> parameter is true, then your distribution forwards all query strings, regardless of what you specify using the <code>queryStringsAllowList</code> parameter.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>option</i> Indicates whether the distribution forwards and caches based on query strings.<br/>
        :return: operation:  An array of objects that describe the result of the action, such as the status of the request, the timestamp of the request, and the resources affected by the request.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>errorDetails</i> The error details.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>errorCode</i> The error code.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusChangedAt</i> The timestamp when the status was changed (e.g., <code>1479816991.349</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the operation. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>operationType</i> The type of operation. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>operationDetails</i> Details about the operation (e.g., <code>Debian-1GB-Ohio-1</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>isTerminal</i> A Boolean value indicating whether the operation is terminal.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i> The AWS Region and Availability Zone.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>location</b>: The AWS Region and Availability Zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The timestamp when the operation was initialized (e.g., <code>1479816991.349</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceType</i> The resource type. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceName</i> The resource name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The ID of the operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>regionName</i> The AWS Region name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>availabilityZone</i> The Availability Zone. Follows the format <code>us-east-2a</code> (case-sensitive).<br/>        """
        pass

    def update_distribution_bundle(self, distributionName: str=None, bundleId: str=None) -> UpdateDistributionBundleResult:
        r"""Updates the bundle of your Amazon Lightsail content delivery network (CDN) distribution. A distribution bundle specifies the monthly network transfer quota and monthly cost of your dsitribution. Update your distribution's bundle if your distribution is going over its monthly network transfer quota and is incurring an overage fee. You can update your distribution's bundle only one time within your monthly AWS billing cycle. To determine if you can update your distribution's bundle, use the <code>GetDistributions</code> action. The <code>ableToUpdateBundle</code> parameter in the result will indicate whether you can currently update your distribution's bundle.

        :param self:
        :param bundleId:  The bundle ID of the new bundle to apply to your distribution. Use the <code>GetDistributionBundles</code> action to get a list of distribution bundle IDs that you can specify.<br/>distributionName:  The name of the distribution for which to update the bundle. Use the <code>GetDistributions</code> action to get a list of distribution names that you can specify.<br/>
        :return: operation:  Describes the API operation.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>errorDetails</i> The error details.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>errorCode</i> The error code.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusChangedAt</i> The timestamp when the status was changed (e.g., <code>1479816991.349</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the operation. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>operationType</i> The type of operation. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>operationDetails</i> Details about the operation (e.g., <code>Debian-1GB-Ohio-1</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>isTerminal</i> A Boolean value indicating whether the operation is terminal.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>location</i> The AWS Region and Availability Zone.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>location</b>: The AWS Region and Availability Zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The timestamp when the operation was initialized (e.g., <code>1479816991.349</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceType</i> The resource type. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceName</i> The resource name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The ID of the operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>regionName</i> The AWS Region name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>availabilityZone</i> The Availability Zone. Follows the format <code>us-east-2a</code> (case-sensitive).<br/>        """
        pass

    def update_domain_entry(self, domainEntry: DomainEntry, domainName: str) -> UpdateDomainEntryResult:
        r"""Updates a domain recordset after it is created. The <code>update domain entry</code> operation supports tag-based access control via resource tags applied to the resource identified by <code>domain name</code>. For more information, see the <a href="https://lightsail.aws.amazon.com/ls/docs/en/articles/amazon-lightsail-controlling-access-using-tags">Lightsail Dev Guide</a>.

        :param self:
        :param domainEntry:  An array of key-value pairs containing information about the domain entry.:<br/>domainName:  The name of the domain recordset to update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>options</i> (Deprecated) The options for the domain entry. <note> In releases prior to November 29, 2017, this parameter was not included in the API response. It is now deprecated. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of domain entry, such as address for IPv4 (A), address for IPv6 (AAAA), canonical name (CNAME), mail exchanger (MX), name server (NS), start of authority (SOA), service locator (SRV), or text (TXT). The following domain entry types can be used: <ul> <li>  <code>A</code>  </li> <li>  <code>AAAA</code>  </li> <li>  <code>CNAME</code>  </li> <li>  <code>MX</code>  </li> <li>  <code>NS</code>  </li> <li>  <code>SOA</code>  </li> <li>  <code>SRV</code>  </li> <li>  <code>TXT</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>isAlias</i> When <code>true</code>, specifies whether the domain entry is an alias used by the Lightsail load balancer. You can include an alias (A type) record in your request, which points to a load balancer DNS name and routes traffic to your load balancer.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>target</i> The target IP address (e.g., <code>192.0.2.0</code>), or AWS name server (e.g., <code>ns-111.awsdns-22.com.</code>). For Lightsail load balancers, the value looks like <code>ab1234c56789c6b86aba6fb203d443bc-123456789.us-east-2.elb.amazonaws.com</code>. For Lightsail distributions, the value looks like <code>exampled1182ne.cloudfront.net</code>. For Lightsail container services, the value looks like <code>container-service-1.example23scljs.us-west-2.cs.amazonlightsail.com</code>. Be sure to also set <code>isAlias</code> to <code>true</code> when setting up an A record for a Lightsail load balancer, distribution, or container service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The ID of the domain recordset entry.<br/>
        :return: operations:  An array of objects that describe the result of the action, such as the status of the request, the timestamp of the request, and the resources affected by the request.<br/>        """
        pass

    def update_load_balancer_attribute(self, attributeValue: str, attributeName: str, loadBalancerName: str) -> UpdateLoadBalancerAttributeResult:
        r"""Updates the specified attribute for a load balancer. You can only update one attribute at a time. The <code>update load balancer attribute</code> operation supports tag-based access control via resource tags applied to the resource identified by <code>load balancer name</code>. For more information, see the <a href="https://lightsail.aws.amazon.com/ls/docs/en/articles/amazon-lightsail-controlling-access-using-tags">Lightsail Dev Guide</a>.

        :param self:
        :param attributeValue:  The value that you want to specify for the attribute name.<br/>attributeName:  The name of the attribute you want to update. Valid values are below.<br/>loadBalancerName:  The name of the load balancer that you want to modify (e.g., <code>my-load-balancer</code>.<br/>
        :return: operations:  An array of objects that describe the result of the action, such as the status of the request, the timestamp of the request, and the resources affected by the request.<br/>        """
        pass

    def update_relational_database(self, relationalDatabaseName: str, masterUserPassword: str=None, rotateMasterUserPassword: boolean=None, preferredBackupWindow: str=None, preferredMaintenanceWindow: str=None, enableBackupRetention: boolean=None, disableBackupRetention: boolean=None, publiclyAccessible: boolean=None, applyImmediately: boolean=None, caCertificateIdentifier: str=None) -> UpdateRelationalDatabaseResult:
        r"""Allows the update of one or more attributes of a database in Amazon Lightsail. Updates are applied immediately, or in cases where the updates could result in an outage, are applied during the database's predefined maintenance window. The <code>update relational database</code> operation supports tag-based access control via resource tags applied to the resource identified by relationalDatabaseName. For more information, see the <a href="https://lightsail.aws.amazon.com/ls/docs/en/articles/amazon-lightsail-controlling-access-using-tags">Lightsail Dev Guide</a>.

        :param self:
        :param caCertificateIdentifier:  Indicates the certificate that needs to be associated with the database.<br/>applyImmediately:  When <code>true</code>, applies changes immediately. When <code>false</code>, applies changes during the preferred maintenance window. Some changes may cause an outage. Default: <code>false</code> <br/>publiclyAccessible:  Specifies the accessibility options for your database. A value of <code>true</code> specifies a database that is available to resources outside of your Lightsail account. A value of <code>false</code> specifies a database that is available only to your Lightsail resources in the same region as your database.<br/>disableBackupRetention:  When <code>true</code>, disables automated backup retention for your database. Disabling backup retention deletes all automated database backups. Before disabling this, you may want to create a snapshot of your database using the <code>create relational database snapshot</code> operation. Updates are applied during the next maintenance window because this can result in an outage.<br/>enableBackupRetention:  When <code>true</code>, enables automated backup retention for your database. Updates are applied during the next maintenance window because this can result in an outage.<br/>preferredMaintenanceWindow:  The weekly time range during which system maintenance can occur on your database. The default is a 30-minute window selected at random from an 8-hour block of time for each AWS Region, occurring on a random day of the week. Constraints: <ul> <li> Must be in the <code>ddd:hh24:mi-ddd:hh24:mi</code> format. </li> <li> Valid days: Mon, Tue, Wed, Thu, Fri, Sat, Sun. </li> <li> Must be at least 30 minutes. </li> <li> Specified in Coordinated Universal Time (UTC). </li> <li> Example: <code>Tue:17:00-Tue:17:30</code>  </li> </ul><br/>preferredBackupWindow:  The daily time range during which automated backups are created for your database if automated backups are enabled. Constraints: <ul> <li> Must be in the <code>hh24:mi-hh24:mi</code> format. Example: <code>16:00-16:30</code>  </li> <li> Specified in Coordinated Universal Time (UTC). </li> <li> Must not conflict with the preferred maintenance window. </li> <li> Must be at least 30 minutes. </li> </ul><br/>rotateMasterUserPassword:  When <code>true</code>, the master user password is changed to a new strong password generated by Lightsail. Use the <code>get relational database master user password</code> operation to get the new password.<br/>masterUserPassword:  The password for the master user. The password can include any printable ASCII character except "/", triple-quotes, or "@". My<b>SQL</b>  Constraints: Must contain from 8 to 41 characters.  <b>PostgreSQL</b>  Constraints: Must contain from 8 to 128 characters.<br/>relationalDatabaseName:  The name of your Lightsail database resource to update.<br/>
        :return: operations:  An array of objects that describe the result of the action, such as the status of the request, the timestamp of the request, and the resources affected by the request.<br/>        """
        pass

    def update_relational_database_parameters(self, parameters: List[RelationalDatabaseParameter], relationalDatabaseName: str) -> UpdateRelationalDatabaseParametersResult:
        r"""Allows the update of one or more parameters of a database in Amazon Lightsail. Parameter updates don't cause outages; therefore, their application is not subject to the preferred maintenance window. However, there are two ways in which parameter updates are applied: <code>dynamic</code> or <code>pending-reboot</code>. Parameters marked with a <code>dynamic</code> apply type are applied immediately. Parameters marked with a <code>pending-reboot</code> apply type are applied only after the database is rebooted using the <code>reboot relational database</code> operation. The <code>update relational database parameters</code> operation supports tag-based access control via resource tags applied to the resource identified by relationalDatabaseName. For more information, see the <a href="https://lightsail.aws.amazon.com/ls/docs/en/articles/amazon-lightsail-controlling-access-using-tags">Lightsail Dev Guide</a>.

        :param self:
        :param parameters:  The database parameters to update.<br/>relationalDatabaseName:  The name of your database for which to update parameters.<br/>
        :return: operations:  An array of objects that describe the result of the action, such as the status of the request, the timestamp of the request, and the resources affected by the request.<br/>        """
        pass





class LocationService(BaseClient):
    r"""Suite of geospatial services including Maps, Places, Routes, Tracking, and Geofencing"""


    class GetDevicePositionHistoryPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_device_position_history` for valid parameters"""
            pass
    class ListGeofenceCollectionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_geofence_collections` for valid parameters"""
            pass
    class ListGeofencesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_geofences` for valid parameters"""
            pass
    class ListMapsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_maps` for valid parameters"""
            pass
    class ListPlaceIndexesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_place_indexes` for valid parameters"""
            pass
    class ListTrackerConsumersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_tracker_consumers` for valid parameters"""
            pass
    class ListTrackersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_trackers` for valid parameters"""
            pass
    class ListDevicePositionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_device_positions` for valid parameters"""
            pass
    class ListRouteCalculatorsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_route_calculators` for valid parameters"""
            pass


    class AssociateTrackerConsumerRequest(Mapping):
        pass
    
    class AssociateTrackerConsumerResponse(Mapping):
        pass
    
    class BatchDeleteDevicePositionHistoryRequest(Mapping):
        pass
    
    class BatchDeleteDevicePositionHistoryResponse(Mapping):
        pass
    
    class Id(object):
        pass
    
    class BatchDeleteGeofenceRequest(Mapping):
        pass
    
    class BatchDeleteGeofenceResponse(Mapping):
        pass
    
    class BatchEvaluateGeofencesRequest(Mapping):
        pass
    
    class BatchEvaluateGeofencesResponse(Mapping):
        pass
    
    class DevicePositionUpdate(Mapping):
        pass
    
    class BatchGetDevicePositionRequest(Mapping):
        pass
    
    class BatchGetDevicePositionResponse(Mapping):
        pass
    
    class BatchPutGeofenceRequest(Mapping):
        pass
    
    class BatchPutGeofenceResponse(Mapping):
        pass
    
    class BatchPutGeofenceRequestEntry(Mapping):
        pass
    
    class BatchUpdateDevicePositionRequest(Mapping):
        pass
    
    class BatchUpdateDevicePositionResponse(Mapping):
        pass
    
    class CalculateRouteRequest(Mapping):
        pass
    
    class CalculateRouteResponse(Mapping):
        pass
    
    class CalculateRouteCarModeOptions(Mapping):
        pass
    
    class Boolean(object):
        pass
    
    class Double(object):
        pass
    
    class Timestamp(object):
        pass
    
    class CalculateRouteTruckModeOptions(Mapping):
        pass
    
    class Position(object):
        pass
    
    class CreateGeofenceCollectionRequest(Mapping):
        pass
    
    class CreateGeofenceCollectionResponse(Mapping):
        pass
    
    class TagMap(object):
        pass
    
    class CreateMapRequest(Mapping):
        pass
    
    class CreateMapResponse(Mapping):
        pass
    
    class MapConfiguration(Mapping):
        pass
    
    class CreatePlaceIndexRequest(Mapping):
        pass
    
    class CreatePlaceIndexResponse(Mapping):
        pass
    
    class DataSourceConfiguration(Mapping):
        pass
    
    class CreateRouteCalculatorRequest(Mapping):
        pass
    
    class CreateRouteCalculatorResponse(Mapping):
        pass
    
    class CreateTrackerRequest(Mapping):
        pass
    
    class CreateTrackerResponse(Mapping):
        pass
    
    class DeleteGeofenceCollectionRequest(Mapping):
        pass
    
    class DeleteGeofenceCollectionResponse(Mapping):
        pass
    
    class DeleteMapRequest(Mapping):
        pass
    
    class DeleteMapResponse(Mapping):
        pass
    
    class DeletePlaceIndexRequest(Mapping):
        pass
    
    class DeletePlaceIndexResponse(Mapping):
        pass
    
    class DeleteRouteCalculatorRequest(Mapping):
        pass
    
    class DeleteRouteCalculatorResponse(Mapping):
        pass
    
    class DeleteTrackerRequest(Mapping):
        pass
    
    class DeleteTrackerResponse(Mapping):
        pass
    
    class DescribeGeofenceCollectionRequest(Mapping):
        pass
    
    class DescribeGeofenceCollectionResponse(Mapping):
        pass
    
    class DescribeMapRequest(Mapping):
        pass
    
    class DescribeMapResponse(Mapping):
        pass
    
    class DescribePlaceIndexRequest(Mapping):
        pass
    
    class DescribePlaceIndexResponse(Mapping):
        pass
    
    class DescribeRouteCalculatorRequest(Mapping):
        pass
    
    class DescribeRouteCalculatorResponse(Mapping):
        pass
    
    class DescribeTrackerRequest(Mapping):
        pass
    
    class DescribeTrackerResponse(Mapping):
        pass
    
    class DisassociateTrackerConsumerRequest(Mapping):
        pass
    
    class DisassociateTrackerConsumerResponse(Mapping):
        pass
    
    class GetDevicePositionRequest(Mapping):
        pass
    
    class GetDevicePositionResponse(Mapping):
        pass
    
    class GetDevicePositionHistoryRequest(Mapping):
        pass
    
    class GetDevicePositionHistoryResponse(Mapping):
        pass
    
    class GetGeofenceRequest(Mapping):
        pass
    
    class GetGeofenceResponse(Mapping):
        pass
    
    class GetMapGlyphsRequest(Mapping):
        pass
    
    class GetMapGlyphsResponse(Mapping):
        pass
    
    class GetMapSpritesRequest(Mapping):
        pass
    
    class GetMapSpritesResponse(Mapping):
        pass
    
    class GetMapStyleDescriptorRequest(Mapping):
        pass
    
    class GetMapStyleDescriptorResponse(Mapping):
        pass
    
    class GetMapTileRequest(Mapping):
        pass
    
    class GetMapTileResponse(Mapping):
        pass
    
    class ListDevicePositionsRequest(Mapping):
        pass
    
    class ListDevicePositionsResponse(Mapping):
        pass
    
    class ListGeofenceCollectionsRequest(Mapping):
        pass
    
    class ListGeofenceCollectionsResponse(Mapping):
        pass
    
    class ListGeofencesRequest(Mapping):
        pass
    
    class ListGeofencesResponse(Mapping):
        pass
    
    class ListMapsRequest(Mapping):
        pass
    
    class ListMapsResponse(Mapping):
        pass
    
    class ListPlaceIndexesRequest(Mapping):
        pass
    
    class ListPlaceIndexesResponse(Mapping):
        pass
    
    class ListRouteCalculatorsRequest(Mapping):
        pass
    
    class ListRouteCalculatorsResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class ListTrackerConsumersRequest(Mapping):
        pass
    
    class ListTrackerConsumersResponse(Mapping):
        pass
    
    class ListTrackersRequest(Mapping):
        pass
    
    class ListTrackersResponse(Mapping):
        pass
    
    class PutGeofenceRequest(Mapping):
        pass
    
    class PutGeofenceResponse(Mapping):
        pass
    
    class GeofenceGeometry(Mapping):
        pass
    
    class SearchPlaceIndexForPositionRequest(Mapping):
        pass
    
    class SearchPlaceIndexForPositionResponse(Mapping):
        pass
    
    class SearchPlaceIndexForTextRequest(Mapping):
        pass
    
    class SearchPlaceIndexForTextResponse(Mapping):
        pass
    
    class CountryCode(object):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class String(object):
        pass
    
    def associate_tracker_consumer(self, TrackerName: str, ConsumerArn: str) -> AssociateTrackerConsumerResponse:
        r"""Creates an association between a geofence collection and a tracker resource. This allows the tracker resource to communicate location data to the linked geofence collection. <note> Currently not supported — Cross-account configurations, such as creating associations between a tracker resource in one account and a geofence collection in another account. </note>

        :param self:
        :param TrackerName:  The name of the tracker resource to be associated with a geofence collection.<br/>ConsumerArn:  The Amazon Resource Name (ARN) for the geofence collection to be associated to tracker resource. Used when you need to specify a resource across all AWS. <ul> <li> Format example: <code>arn:aws:geo:region:account-id:geofence-collection/ExampleGeofenceCollectionConsumer</code>  </li> </ul><br/>
        :return:         """
        pass

    def batch_delete_device_position_history(self, TrackerName: str, DeviceIds: List[Id]) -> BatchDeleteDevicePositionHistoryResponse:
        r"""Deletes the position history of one or more devices from a tracker resource.

        :param self:
        :param TrackerName:  The name of the tracker resource to delete the device position history from.<br/>DeviceIds:  Devices whose position history you want to delete. <ul> <li> For example, for two devices: <code>“DeviceIds” : [DeviceId1,DeviceId2]</code>  </li> </ul><br/>
        :return: Errors:  Contains error details for each device history that failed to delete.<br/>        """
        pass

    def batch_delete_geofence(self, GeofenceIds: List[Id], CollectionName: str) -> BatchDeleteGeofenceResponse:
        r"""Deletes a batch of geofences from a geofence collection. <note> This operation deletes the resource permanently. </note>

        :param self:
        :param GeofenceIds:  The batch of geofences to be deleted.<br/>CollectionName:  The geofence collection storing the geofences to be deleted.<br/>
        :return: Errors:  Contains error details for each geofence that failed to delete.<br/>        """
        pass

    def batch_evaluate_geofences(self, DevicePositionUpdates: List[DevicePositionUpdate], CollectionName: str) -> BatchEvaluateGeofencesResponse:
        r"""Evaluates device positions against the geofence geometries from a given geofence collection. The evaluation determines if the device has entered or exited a geofenced area, which publishes ENTER or EXIT geofence events to Amazon EventBridge. <note> The last geofence that a device was observed within, if any, is tracked for 30 days after the most recent device position update </note>

        :param self:
        :param DevicePositionUpdates:  Contains device details for each device to be evaluated against the given geofence collection.<br/>CollectionName:  The geofence collection used in evaluating the position of devices against its geofences.<br/>
        :return: Errors:  Contains error details for each device that failed to evaluate its position against the given geofence collection.<br/>        """
        pass

    def batch_get_device_position(self, TrackerName: str, DeviceIds: List[Id]) -> BatchGetDevicePositionResponse:
        r"""A batch request to retrieve all device positions.

        :param self:
        :param TrackerName:  The tracker resource retrieving the device position.<br/>DeviceIds:  Devices whose position you want to retrieve. <ul> <li> For example, for two devices: <code>device-ids=DeviceId1&amp;device-ids=DeviceId2</code>  </li> </ul><br/>
        :return: Errors:  Contains error details for each device that failed to send its position to the tracker resource.<br/>DevicePositions:  Contains device position details such as the device ID, position, and timestamps for when the position was received and sampled.<br/>        """
        pass

    def batch_put_geofence(self, Entries: List[BatchPutGeofenceRequestEntry], CollectionName: str) -> BatchPutGeofenceResponse:
        r"""A batch request for storing geofence geometries into a given geofence collection, or updates the geometry of an existing geofence if a geofence ID is included in the request.

        :param self:
        :param Entries:  The batch of geofences to be stored in a geofence collection.<br/>CollectionName:  The geofence collection storing the geofences.<br/>
        :return: Successes:  Contains each geofence that was successfully stored in a geofence collection.<br/>Errors:  Contains additional error details for each geofence that failed to be stored in a geofence collection.<br/>        """
        pass

    def batch_update_device_position(self, Updates: List[DevicePositionUpdate], TrackerName: str) -> BatchUpdateDevicePositionResponse:
        r"""Uploads position update data for one or more devices to a tracker resource. Amazon Location uses the data when reporting the last known device position and position history. <note> Only one position update is stored per sample time. Location data is sampled at a fixed rate of one position per 30-second interval and retained for 30 days before it's deleted. </note>

        :param self:
        :param Updates:  Contains the position update details for each device.<br/>TrackerName:  The name of the tracker resource to update.<br/>
        :return: Errors:  Contains error details for each device that failed to update its position.<br/>        """
        pass

    def calculate_route(self, DestinationPosition: List[Double], DeparturePosition: List[Double], CalculatorName: str, CarModeOptions: CalculateRouteCarModeOptions=None, DepartNow: Boolean=None, DepartureTime: Timestamp=None, DistanceUnit: str=None, IncludeLegGeometry: Boolean=None, TravelMode: str=None, TruckModeOptions: CalculateRouteTruckModeOptions=None, WaypointPositions: List[Position]=None) -> CalculateRouteResponse:
        r""" <a href="https://docs.aws.amazon.com/location/latest/developerguide/calculate-route.html">Calculates a route</a> given the following required parameters: <code>DeparturePostiton</code> and <code>DestinationPosition</code>. Requires that you first <a href="https://docs.aws.amazon.com/location-routes/latest/APIReference/API_CreateRouteCalculator.html">create aroute calculator resource</a>  By default, a request that doesn't specify a departure time uses the best time of day to travel with the best traffic conditions when calculating the route. Additional options include: <ul> <li>  <a href="https://docs.aws.amazon.com/location/latest/developerguide/calculate-route.html#departure-time">Specifying a departure time</a> using either <code>DepartureTime</code> or <code>DepartureNow</code>. This calculates a route based on predictive traffic data at the given time.  <note> You can't specify both <code>DepartureTime</code> and <code>DepartureNow</code> in a single request. Specifying both parameters returns an error message. </note> </li> <li>  <a href="https://docs.aws.amazon.com/location/latest/developerguide/calculate-route.html#travel-mode">Specifying a travel mode</a> using TravelMode. This lets you specify additional route preference such as <code>CarModeOptions</code> if traveling by <code>Car</code>, or <code>TruckModeOptions</code> if traveling by <code>Truck</code>. </li> </ul>  

        :param self:
        :param WaypointPositions:  Specifies an ordered list of up to 23 intermediate positions to include along a route between the departure position and destination position.  <ul> <li> For example, from the <code>DeparturePosition</code> <code>[-123.115, 49.285]</code>, the route follows the order that the waypoint positions are given <code>[[-122.757, 49.0021],[-122.349, 47.620]]</code>  </li> </ul> <note> If you specify a waypoint position that's not located on a road, Amazon Location <a href="https://docs.aws.amazon.com/location/latest/developerguide/calculate-route.html#snap-to-nearby-road">moves the position to the nearest road</a>.  Specifying more than 23 waypoints returns a <code>400 ValidationException</code> error. </note> Valid Values: <code>[-180 to 180,-90 to 90]</code> <br/>TruckModeOptions:  Specifies route preferences when traveling by <code>Truck</code>, such as avoiding routes that use ferries or tolls, and truck specifications to consider when choosing an optimal road. Requirements: <code>TravelMode</code> must be specified as <code>Truck</code>.:<br/>TravelMode:  Specifies the mode of transport when calculating a route. Used in estimating the speed of travel and road compatibility. The <code>TravelMode</code> you specify determines how you specify route preferences:  <ul> <li> If traveling by <code>Car</code> use the <code>CarModeOptions</code> parameter. </li> <li> If traveling by <code>Truck</code> use the <code>TruckModeOptions</code> parameter. </li> </ul> Default Value: <code>Car</code> <br/>IncludeLegGeometry:  Set to include the geometry details in the result for each path between a pair of positions. Default Value: <code>false</code>  Valid Values: <code>false</code> | <code>true</code> <br/>DistanceUnit:  Set the unit system to specify the distance. Default Value: <code>Kilometers</code> <br/>DestinationPosition:  The finish position for the route. Defined in <a href="https://earth-info.nga.mil/GandG/wgs84/index.html">WGS 84</a> format: <code>[longitude, latitude]</code>. <ul> <li>  For example, <code>[-122.339, 47.615]</code>  </li> </ul> <note> If you specify a destination that's not located on a road, Amazon Location <a href="https://docs.aws.amazon.com/location/latest/developerguide/calculate-route.html#snap-to-nearby-road">moves the position to the nearest road</a>.  </note> Valid Values: <code>[-180 to 180,-90 to 90]</code> <br/>DepartureTime:  Specifies the desired time of departure. Uses the given time to calculate a route. Otherwise, the best time of day to travel with the best traffic conditions is used to calculate the route. <note> Setting a departure time in the past returns a <code>400 ValidationException</code> error. </note> <ul> <li> In <a href="https://www.iso.org/iso-8601-date-and-time-format.html">ISO 8601</a> format: <code>YYYY-MM-DDThh:mm:ss.sssZ</code>. For example, <code>2020–07-2T12:15:20.000Z+01:00</code>  </li> </ul><br/>DeparturePosition:  The start position for the route. Defined in <a href="https://earth-info.nga.mil/GandG/wgs84/index.html">WGS 84</a> format: <code>[longitude, latitude]</code>. <ul> <li> For example, <code>[-123.115, 49.285]</code>  </li> </ul> <note> If you specify a departure that's not located on a road, Amazon Location <a href="https://docs.aws.amazon.com/location/latest/developerguide/calculate-route.html#snap-to-nearby-road">moves the position to the nearest road</a>. </note> Valid Values: <code>[-180 to 180,-90 to 90]</code> <br/>DepartNow:  Sets the time of departure as the current time. Uses the current time to calculate a route. Otherwise, the best time of day to travel with the best traffic conditions is used to calculate the route. Default Value: <code>false</code>  Valid Values: <code>false</code> | <code>true</code> <br/>CarModeOptions:  Specifies route preferences when traveling by <code>Car</code>, such as avoiding routes that use ferries or tolls. Requirements: <code>TravelMode</code> must be specified as <code>Car</code>.:<br/>CalculatorName:  The name of the route calculator resource that you want to use to calculate a route. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvoidTolls</i> Avoids tolls when calculating routes. Default Value: <code>false</code>  Valid Values: <code>false</code> | <code>true</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvoidFerries</i> Avoids ferries when calculating routes. Default Value: <code>false</code>  Valid Values: <code>false</code> | <code>true</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Weight</i> Specifies the truck's weight specifications including total weight and unit of measurement. Used to avoid roads that can't support the truck's weight.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Weight</b>: Specifies the truck's weight specifications including total weight and unit of measurement. Used to avoid roads that can't support the truck's weight.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Dimensions</i> Specifies the truck's dimension specifications including length, height, width, and unit of measurement. Used to avoid roads that can't support the truck's dimensions.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Dimensions</b>: Specifies the truck's dimension specifications including length, height, width, and unit of measurement. Used to avoid roads that can't support the truck's dimensions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvoidTolls</i> Avoids ferries when calculating routes. Default Value: <code>false</code>  Valid Values: <code>false</code> | <code>true</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvoidFerries</i> Avoids ferries when calculating routes. Default Value: <code>false</code>  Valid Values: <code>false</code> | <code>true</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Width</i> The width of the truck. <ul> <li> For example, <code>4.5</code>. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Unit</i>  Specifies the unit of measurement for the truck dimensions. Default Value: <code>Meters</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Length</i> The length of the truck. <ul> <li> For example, <code>15.5</code>. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Height</i> The height of the truck. <ul> <li> For example, <code>4.5</code>. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Unit</i> The unit of measurement to use for the truck weight. Default Value: <code>Kilograms</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Total</i> The total weight of the truck.  <ul> <li> For example, <code>3500</code>. </li> </ul><br/>
        :return: Summary:  Contains information about the whole route, such as: <code>RouteBBox</code>, <code>DataSource</code>, <code>Distance</code>, <code>DistanceUnit</code>, and <code>DurationSeconds</code> :<br/>Legs:  Contains details about each path between a pair of positions included along a route such as: <code>StartPosition</code>, <code>EndPosition</code>, <code>Distance</code>, <code>DurationSeconds</code>, <code>Geometry</code>, and <code>Steps</code>. The number of legs returned corresponds to one less than the total number of positions in the request.  For example, a route with a departure position and destination position returns one leg with the positions <a href="https://docs.aws.amazon.com/location/latest/developerguide/calculate-route.html#snap-to-nearby-road">snapped to a nearby road</a>: <ul> <li> The <code>StartPosition</code> is the departure position. </li> <li> The <code>EndPosition</code> is the destination position. </li> </ul> A route with a waypoint between the departure and destination position returns two legs with the positions snapped to a nearby road.: <ul> <li> Leg 1: The <code>StartPosition</code> is the departure position . The <code>EndPosition</code> is the waypoint positon. </li> <li> Leg 2: The <code>StartPosition</code> is the waypoint position. The <code>EndPosition</code> is the destination position. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RouteBBox</i> Specifies a geographical box surrounding a route. Used to zoom into a route when displaying it in a map. For example, <code>[min x, min y, max x, max y]</code>  The first 2 <code>bbox</code> parameters describe the lower southwest corner:  <ul> <li> The first <code>bbox</code> position is the X coordinate or longitude of the lower southwest corner.  </li> <li> The second <code>bbox</code> position is the Y coordinate or latitude of the lower southwest corner.  </li> </ul> The next 2 <code>bbox</code> parameters describe the upper northeast corner:  <ul> <li> The third <code>bbox</code> position is the X coordinate, or longitude of the upper northeast corner.  </li> <li> The fourth <code>bbox</code> position is the Y coordinate, or longitude of the upper northeast corner.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DurationSeconds</i> The total travel time for the route measured in seconds. The sum of the travel time between every stop on the route.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DistanceUnit</i> The unit of measurement for the distance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Distance</i> The total distance covered by the route. The sum of the distance travelled between every stop on the route. <note> The route <code>distance</code> can't be greater than 250 km. If the route exceeds 250 km, the response returns a <code>400 RoutesValidationException</code> error. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataSource</i> The data provider of traffic and road network data used to calculate the route. Indicates one of the available providers: <ul> <li>  <code>Esri</code>  </li> <li>  <code>Here</code>  </li> </ul> For more information about data providers, see <a href="https://docs.aws.amazon.com/location/latest/developerguide/what-is-data-provider.html">Amazon Location Service data providers</a>.<br/>        """
        pass

    def create_geofence_collection(self, PricingPlan: str, CollectionName: str, Description: str=None, KmsKeyId: str=None, PricingPlanDataSource: str=None, Tags: TagMap=None) -> CreateGeofenceCollectionResponse:
        r"""Creates a geofence collection, which manages and stores geofences.

        :param self:
        :param Tags:  Applies one or more tags to the geofence collection. A tag is a key-value pair helps manage, identify, search, and filter your resources by labelling them. Format: <code>"key" : "value"</code>  Restrictions: <ul> <li> Maximum 50 tags per resource </li> <li> Each resource tag must be unique with a maximum of one value. </li> <li> Maximum key length: 128 Unicode characters in UTF-8 </li> <li> Maximum value length: 256 Unicode characters in UTF-8 </li> <li> Can use alphanumeric characters (A–Z, a–z, 0–9), and the following characters: + - = . _ : / @.  </li> </ul><br/>PricingPlanDataSource:  Specifies the data provider for the geofence collection. <ul> <li> Required value for the following pricing plans: <code>MobileAssetTracking </code>| <code>MobileAssetManagement</code>  </li> </ul> For more information about <a href="https://aws.amazon.com/location/data-providers/">Data Providers</a>, and <a href="https://aws.amazon.com/location/pricing/">Pricing plans</a>, see the Amazon Location Service product page. <note> Amazon Location Service only uses <code>PricingPlanDataSource</code> to calculate billing for your geofence collection. Your data won't be shared with the data provider, and will remain in your AWS account or Region unless you move it. </note> Valid Values: <code>Esri </code>| <code>Here</code> <br/>PricingPlan:  Specifies the pricing plan for the geofence collection. For additional details and restrictions on each pricing plan option, see the <a href="https://aws.amazon.com/location/pricing/">Amazon Location Service pricing page</a>.<br/>KmsKeyId:  A key identifier for an <a href="https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html">AWS KMS customer managed key</a>. Enter a key ID, key ARN, alias name, or alias ARN. <br/>Description:  An optional description for the geofence collection.<br/>CollectionName:  A custom name for the geofence collection. Requirements: <ul> <li> Contain only alphanumeric characters (A–Z, a–z, 0–9), hyphens (-), periods (.), and underscores (_).  </li> <li> Must be a unique geofence collection name. </li> <li> No spaces allowed. For example, <code>ExampleGeofenceCollection</code>. </li> </ul><br/>
        :return: CreateTime:  The timestamp for when the geofence collection was created in <a href="https://www.iso.org/iso-8601-date-and-time-format.html">ISO 8601</a> format: <code>YYYY-MM-DDThh:mm:ss.sssZ</code> <br/>CollectionName:  The name for the geofence collection.<br/>CollectionArn:  The Amazon Resource Name (ARN) for the geofence collection resource. Used when you need to specify a resource across all AWS.  <ul> <li> Format example: <code>arn:aws:geo:region:account-id:geofence-collection/ExampleGeofenceCollection</code>  </li> </ul><br/>        """
        pass

    def create_map(self, PricingPlan: str, MapName: str, Configuration: MapConfiguration, Description: str=None, Tags: TagMap=None) -> CreateMapResponse:
        r"""Creates a map resource in your AWS account, which provides map tiles of different styles sourced from global location data providers.

        :param self:
        :param Tags:  Applies one or more tags to the map resource. A tag is a key-value pair helps manage, identify, search, and filter your resources by labelling them. Format: <code>"key" : "value"</code>  Restrictions: <ul> <li> Maximum 50 tags per resource </li> <li> Each resource tag must be unique with a maximum of one value. </li> <li> Maximum key length: 128 Unicode characters in UTF-8 </li> <li> Maximum value length: 256 Unicode characters in UTF-8 </li> <li> Can use alphanumeric characters (A–Z, a–z, 0–9), and the following characters: + - = . _ : / @.  </li> </ul><br/>PricingPlan:  Specifies the pricing plan for your map resource. For additional details and restrictions on each pricing plan option, see the <a href="https://aws.amazon.com/location/pricing/">Amazon Location Service pricing page</a>.<br/>MapName:  The name for the map resource. Requirements: <ul> <li> Must contain only alphanumeric characters (A–Z, a–z, 0–9), hyphens (-), periods (.), and underscores (_).  </li> <li> Must be a unique map resource name.  </li> <li> No spaces allowed. For example, <code>ExampleMap</code>. </li> </ul><br/>Description:  An optional description for the map resource.<br/>Configuration:  Specifies the map style selected from an available data provider.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Style</i> Specifies the map style selected from an available data provider. Valid styles: <code>RasterEsriImagery</code>, <code>VectorEsriStreets</code>, <code>VectorEsriTopographic</code>, <code>VectorEsriNavigation</code>, <code>VectorEsriDarkGrayCanvas</code>, <code>VectorEsriLightGrayCanvas</code>, <code>VectorHereBerlin</code>. <note> When using HERE as your data provider, and selecting the Style <code>VectorHereBerlin</code>, you may not use HERE Maps for Asset Management. See the <a href="https://aws.amazon.com/service-terms/">AWS Service Terms</a> for Amazon Location Service. </note><br/>
        :return: MapName:  The name of the map resource.<br/>MapArn:  The Amazon Resource Name (ARN) for the map resource. Used when you need to specify a resource across all AWS. <ul> <li> Format example: <code>arn:aws:geo:region:account-id:maps/ExampleMap</code>  </li> </ul><br/>CreateTime:  The timestamp for when the map resource was created in <a href="https://www.iso.org/iso-8601-date-and-time-format.html">ISO 8601</a> format: <code>YYYY-MM-DDThh:mm:ss.sssZ</code>.<br/>        """
        pass

    def create_place_index(self, PricingPlan: str, IndexName: str, DataSource: str, DataSourceConfiguration: DataSourceConfiguration=None, Description: str=None, Tags: TagMap=None) -> CreatePlaceIndexResponse:
        r"""Creates a place index resource in your AWS account, which supports functions with geospatial data sourced from your chosen data provider.

        :param self:
        :param Tags:  Applies one or more tags to the place index resource. A tag is a key-value pair helps manage, identify, search, and filter your resources by labelling them. Format: <code>"key" : "value"</code>  Restrictions: <ul> <li> Maximum 50 tags per resource </li> <li> Each resource tag must be unique with a maximum of one value. </li> <li> Maximum key length: 128 Unicode characters in UTF-8 </li> <li> Maximum value length: 256 Unicode characters in UTF-8 </li> <li> Can use alphanumeric characters (A–Z, a–z, 0–9), and the following characters: + - = . _ : / @.  </li> </ul><br/>PricingPlan:  Specifies the pricing plan for your place index resource. For additional details and restrictions on each pricing plan option, see the <a href="https://aws.amazon.com/location/pricing/">Amazon Location Service pricing page</a>.<br/>IndexName:  The name of the place index resource.  Requirements: <ul> <li> Contain only alphanumeric characters (A–Z, a–z, 0–9), hyphens (-), periods (.), and underscores (_). </li> <li> Must be a unique place index resource name. </li> <li> No spaces allowed. For example, <code>ExamplePlaceIndex</code>. </li> </ul><br/>Description:  The optional description for the place index resource.<br/>DataSourceConfiguration:  Specifies the data storage option for requesting Places.:<br/>DataSource:  Specifies the data provider of geospatial data. <note> This field is case-sensitive. Enter the valid values as shown. For example, entering <code>HERE</code> will return an error. </note> Valid values include: <ul> <li>  <code>Esri</code>  </li> <li>  <code>Here</code>  <important> Place index resources using HERE as a data provider can't be used to <a href="https://docs.aws.amazon.com/location-places/latest/APIReference/API_DataSourceConfiguration.html">store</a> results for locations in Japan. For more information, see the <a href="https://aws.amazon.com/service-terms/">AWS Service Terms</a> for Amazon Location Service. </important> </li> </ul> For additional details on data providers, see the <a href="https://docs.aws.amazon.com/location/latest/developerguide/what-is-data-provider.html">Amazon Location Service data providers page</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IntendedUse</i> Specifies how the results of an operation will be stored by the caller.  Valid values include: <ul> <li>  <code>SingleUse</code> specifies that the results won't be stored.  </li> <li>  <code>Storage</code> specifies that the result can be cached or stored in a database. <important> Place index resources using HERE as a data provider can't be configured to store results for locations in Japan when choosing <code>Storage</code> for the <code>IntendedUse</code> parameter. </important> </li> </ul> Default value: <code>SingleUse</code> <br/>
        :return: IndexName:  The name for the place index resource.<br/>IndexArn:  The Amazon Resource Name (ARN) for the place index resource. Used to specify a resource across all AWS.  <ul> <li> Format example: <code>arn:aws:geo:region:account-id:place-index/ExamplePlaceIndex</code>  </li> </ul><br/>CreateTime:  The timestamp for when the place index resource was created in <a href="https://www.iso.org/iso-8601-date-and-time-format.html">ISO 8601</a> format: <code>YYYY-MM-DDThh:mm:ss.sssZ</code>. <br/>        """
        pass

    def create_route_calculator(self, PricingPlan: str, DataSource: str, CalculatorName: str, Description: str=None, Tags: TagMap=None) -> CreateRouteCalculatorResponse:
        r"""Creates a route calculator resource in your AWS account. You can send requests to a route calculator resource to estimate travel time, distance, and get directions. A route calculator sources traffic and road network data from your chosen data provider.

        :param self:
        :param Tags:  Applies one or more tags to the route calculator resource. A tag is a key-value pair helps manage, identify, search, and filter your resources by labelling them. <ul> <li> For example: { <code>"tag1" : "value1"</code>, <code>"tag2" : "value2"</code>} </li> </ul> Format: <code>"key" : "value"</code>  Restrictions: <ul> <li> Maximum 50 tags per resource </li> <li> Each resource tag must be unique with a maximum of one value. </li> <li> Maximum key length: 128 Unicode characters in UTF-8 </li> <li> Maximum value length: 256 Unicode characters in UTF-8 </li> <li> Can use alphanumeric characters (A–Z, a–z, 0–9), and the following characters: + - = . _ : / @.  </li> </ul><br/>PricingPlan:  Specifies the pricing plan for your route calculator resource. For additional details and restrictions on each pricing plan option, see <a href="https://aws.amazon.com/location/pricing/">Amazon Location Service pricing</a>.<br/>Description:  The optional description for the route calculator resource.<br/>DataSource:  Specifies the data provider of traffic and road network data. <note> This field is case-sensitive. Enter the valid values as shown. For example, entering <code>HERE</code> returns an error. </note> Valid Values: <code>Esri</code> | <code>Here</code>  For more information about data providers, see <a href="https://docs.aws.amazon.com/location/latest/developerguide/what-is-data-provider.html">Amazon Location Service data providers</a>.<br/>CalculatorName:  The name of the route calculator resource.  Requirements: <ul> <li> Can use alphanumeric characters (A–Z, a–z, 0–9) , hyphens (-), periods (.), and underscores (_). </li> <li> Must be a unique Route calculator resource name. </li> <li> No spaces allowed. For example, <code>ExampleRouteCalculator</code>. </li> </ul><br/>
        :return: CreateTime:  The timestamp when the route calculator resource was created in <a href="https://www.iso.org/iso-8601-date-and-time-format.html">ISO 8601</a> format: <code>YYYY-MM-DDThh:mm:ss.sssZ</code>.  <ul> <li> For example, <code>2020–07-2T12:15:20.000Z+01:00</code>  </li> </ul><br/>CalculatorName:  The name of the route calculator resource.  <ul> <li> For example, <code>ExampleRouteCalculator</code>. </li> </ul><br/>CalculatorArn:  The Amazon Resource Name (ARN) for the route calculator resource. Use the ARN when you specify a resource across all AWS. <ul> <li> Format example: <code>arn:aws:geo:region:account-id:route-calculator/ExampleCalculator</code>  </li> </ul><br/>        """
        pass

    def create_tracker(self, TrackerName: str, PricingPlan: str, Description: str=None, KmsKeyId: str=None, PricingPlanDataSource: str=None, Tags: TagMap=None) -> CreateTrackerResponse:
        r"""Creates a tracker resource in your AWS account, which lets you retrieve current and historical location of devices.

        :param self:
        :param TrackerName:  The name for the tracker resource. Requirements: <ul> <li> Contain only alphanumeric characters (A-Z, a-z, 0-9) , hyphens (-), periods (.), and underscores (_). </li> <li> Must be a unique tracker resource name. </li> <li> No spaces allowed. For example, <code>ExampleTracker</code>. </li> </ul><br/>Tags:  Applies one or more tags to the tracker resource. A tag is a key-value pair helps manage, identify, search, and filter your resources by labelling them. Format: <code>"key" : "value"</code>  Restrictions: <ul> <li> Maximum 50 tags per resource </li> <li> Each resource tag must be unique with a maximum of one value. </li> <li> Maximum key length: 128 Unicode characters in UTF-8 </li> <li> Maximum value length: 256 Unicode characters in UTF-8 </li> <li> Can use alphanumeric characters (A–Z, a–z, 0–9), and the following characters: + - = . _ : / @.  </li> </ul><br/>PricingPlanDataSource:  Specifies the data provider for the tracker resource. <ul> <li> Required value for the following pricing plans: <code>MobileAssetTracking </code>| <code>MobileAssetManagement</code>  </li> </ul> For more information about <a href="https://aws.amazon.com/location/data-providers/">Data Providers</a>, and <a href="https://aws.amazon.com/location/pricing/">Pricing plans</a>, see the Amazon Location Service product page. <note> Amazon Location Service only uses <code>PricingPlanDataSource</code> to calculate billing for your tracker resource. Your data will not be shared with the data provider, and will remain in your AWS account or Region unless you move it. </note> Valid Values: <code>Esri</code> | <code>Here</code> <br/>PricingPlan:  Specifies the pricing plan for the tracker resource. For additional details and restrictions on each pricing plan option, see the <a href="https://aws.amazon.com/location/pricing/">Amazon Location Service pricing page</a>.<br/>KmsKeyId:  A key identifier for an <a href="https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html">AWS KMS customer managed key</a>. Enter a key ID, key ARN, alias name, or alias ARN.<br/>Description:  An optional description for the tracker resource.<br/>
        :return: TrackerName:  The name of the tracker resource.<br/>TrackerArn:  The Amazon Resource Name (ARN) for the tracker resource. Used when you need to specify a resource across all AWS. <ul> <li> Format example: <code>arn:aws:geo:region:account-id:tracker/ExampleTracker</code>  </li> </ul><br/>CreateTime:  The timestamp for when the tracker resource was created in <a href="https://www.iso.org/iso-8601-date-and-time-format.html"> ISO 8601</a> format: <code>YYYY-MM-DDThh:mm:ss.sssZ</code>. <br/>        """
        pass

    def delete_geofence_collection(self, CollectionName: str) -> DeleteGeofenceCollectionResponse:
        r"""Deletes a geofence collection from your AWS account. <note> This operation deletes the resource permanently. If the geofence collection is the target of a tracker resource, the devices will no longer be monitored. </note>

        :param self:
        :param CollectionName:  The name of the geofence collection to be deleted.<br/>
        :return:         """
        pass

    def delete_map(self, MapName: str) -> DeleteMapResponse:
        r"""Deletes a map resource from your AWS account. <note> This operation deletes the resource permanently. If the map is being used in an application, the map may not render. </note>

        :param self:
        :param MapName:  The name of the map resource to be deleted.<br/>
        :return:         """
        pass

    def delete_place_index(self, IndexName: str) -> DeletePlaceIndexResponse:
        r"""Deletes a place index resource from your AWS account. <note> This operation deletes the resource permanently. </note>

        :param self:
        :param IndexName:  The name of the place index resource to be deleted.<br/>
        :return:         """
        pass

    def delete_route_calculator(self, CalculatorName: str) -> DeleteRouteCalculatorResponse:
        r"""Deletes a route calculator resource from your AWS account. <note> This operation deletes the resource permanently. </note>

        :param self:
        :param CalculatorName:  The name of the route calculator resource to be deleted.<br/>
        :return:         """
        pass

    def delete_tracker(self, TrackerName: str) -> DeleteTrackerResponse:
        r"""Deletes a tracker resource from your AWS account. <note> This operation deletes the resource permanently. If the tracker resource is in use, you may encounter an error. Make sure that the target resource isn't a dependency for your applications. </note>

        :param self:
        :param TrackerName:  The name of the tracker resource to be deleted.<br/>
        :return:         """
        pass

    def describe_geofence_collection(self, CollectionName: str) -> DescribeGeofenceCollectionResponse:
        r"""Retrieves the geofence collection details.

        :param self:
        :param CollectionName:  The name of the geofence collection.<br/>
        :return: UpdateTime:  The timestamp for when the geofence collection was last updated in <a href="https://www.iso.org/iso-8601-date-and-time-format.html">ISO 8601</a> format: <code>YYYY-MM-DDThh:mm:ss.sssZ</code> <br/>Tags:  Displays the key, value pairs of tags associated with this resource.<br/>PricingPlanDataSource:  The specified data provider for the geofence collection.<br/>PricingPlan:  The pricing plan selected for the specified geofence collection. For additional details and restrictions on each pricing plan option, see the <a href="https://aws.amazon.com/location/pricing/">Amazon Location Service pricing page</a>.<br/>KmsKeyId:  A key identifier for an <a href="https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html">AWS KMS customer managed key</a> assigned to the Amazon Location resource<br/>Description:  The optional description for the geofence collection.<br/>CreateTime:  The timestamp for when the geofence resource was created in <a href="https://www.iso.org/iso-8601-date-and-time-format.html">ISO 8601</a> format: <code>YYYY-MM-DDThh:mm:ss.sssZ</code> <br/>CollectionName:  The name of the geofence collection.<br/>CollectionArn:  The Amazon Resource Name (ARN) for the geofence collection resource. Used when you need to specify a resource across all AWS.  <ul> <li> Format example: <code>arn:aws:geo:region:account-id:geofence-collection/ExampleGeofenceCollection</code>  </li> </ul><br/>        """
        pass

    def describe_map(self, MapName: str) -> DescribeMapResponse:
        r"""Retrieves the map resource details.

        :param self:
        :param MapName:  The name of the map resource.<br/>
        :return: UpdateTime:  The timestamp for when the map resource was last update in <a href="https://www.iso.org/iso-8601-date-and-time-format.html">ISO 8601</a> format: <code>YYYY-MM-DDThh:mm:ss.sssZ</code>.<br/>Tags:  Tags associated with the map resource.<br/>PricingPlan:  The pricing plan selected for the specified map resource. <pre><code> &lt;p&gt;For additional details and restrictions on each pricing plan option, see the &lt;a href=&quot;https://aws.amazon.com/location/pricing/&quot;&gt;Amazon Location Service pricing page&lt;/a&gt;.&lt;/p&gt; </code></pre><br/>MapName:  The map style selected from an available provider.<br/>MapArn:  The Amazon Resource Name (ARN) for the map resource. Used when you need to specify a resource across all AWS. <ul> <li> Format example: <code>arn:aws:geo:region:account-id:maps/ExampleMap</code>  </li> </ul><br/>Description:  The optional description for the map resource.<br/>DataSource:  Specifies the data provider for the associated map tiles.<br/>CreateTime:  The timestamp for when the map resource was created in <a href="https://www.iso.org/iso-8601-date-and-time-format.html">ISO 8601</a> format: <code>YYYY-MM-DDThh:mm:ss.sssZ</code>.<br/>Configuration:  Specifies the map tile style selected from a partner data provider.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Style</i> Specifies the map style selected from an available data provider. Valid styles: <code>RasterEsriImagery</code>, <code>VectorEsriStreets</code>, <code>VectorEsriTopographic</code>, <code>VectorEsriNavigation</code>, <code>VectorEsriDarkGrayCanvas</code>, <code>VectorEsriLightGrayCanvas</code>, <code>VectorHereBerlin</code>. <note> When using HERE as your data provider, and selecting the Style <code>VectorHereBerlin</code>, you may not use HERE Maps for Asset Management. See the <a href="https://aws.amazon.com/service-terms/">AWS Service Terms</a> for Amazon Location Service. </note><br/>        """
        pass

    def describe_place_index(self, IndexName: str) -> DescribePlaceIndexResponse:
        r"""Retrieves the place index resource details.

        :param self:
        :param IndexName:  The name of the place index resource.<br/>
        :return: UpdateTime:  The timestamp for when the place index resource was last updated in <a href="https://www.iso.org/iso-8601-date-and-time-format.html">ISO 8601</a> format: <code>YYYY-MM-DDThh:mm:ss.sssZ</code>. <br/>Tags:  Tags associated with place index resource.<br/>PricingPlan:  The pricing plan selected for the specified place index resource. For additional details and restrictions on each pricing plan option, see the <a href="https://aws.amazon.com/location/pricing/">Amazon Location Service pricing page</a>.<br/>IndexName:  The name of the place index resource being described.<br/>IndexArn:  The Amazon Resource Name (ARN) for the place index resource. Used to specify a resource across all AWS.  <ul> <li> Format example: <code>arn:aws:geo:region:account-id:place-index/ExamplePlaceIndex</code>  </li> </ul><br/>Description:  The optional description for the place index resource.<br/>DataSourceConfiguration:  The specified data storage option for requesting Places.:<br/>DataSource:  The data provider of geospatial data. Indicates one of the available providers: <ul> <li>  <code>Esri</code>  </li> <li>  <code>Here</code>  </li> </ul> For additional details on data providers, see the <a href="https://docs.aws.amazon.com/location/latest/developerguide/what-is-data-provider.html">Amazon Location Service data providers page</a>.<br/>CreateTime:  The timestamp for when the place index resource was created in <a href="https://www.iso.org/iso-8601-date-and-time-format.html">ISO 8601</a> format: <code>YYYY-MM-DDThh:mm:ss.sssZ</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IntendedUse</i> Specifies how the results of an operation will be stored by the caller.  Valid values include: <ul> <li>  <code>SingleUse</code> specifies that the results won't be stored.  </li> <li>  <code>Storage</code> specifies that the result can be cached or stored in a database. <important> Place index resources using HERE as a data provider can't be configured to store results for locations in Japan when choosing <code>Storage</code> for the <code>IntendedUse</code> parameter. </important> </li> </ul> Default value: <code>SingleUse</code> <br/>        """
        pass

    def describe_route_calculator(self, CalculatorName: str) -> DescribeRouteCalculatorResponse:
        r"""Retrieves the route calculator resource details.

        :param self:
        :param CalculatorName:  The name of the route calculator resource.<br/>
        :return: UpdateTime:  The timestamp when the route calculator resource was last updated in <a href="https://www.iso.org/iso-8601-date-and-time-format.html">ISO 8601</a> format: <code>YYYY-MM-DDThh:mm:ss.sssZ</code>.  <ul> <li> For example, <code>2020–07-2T12:15:20.000Z+01:00</code>  </li> </ul><br/>Tags:  Tags associated with route calculator resource.<br/>PricingPlan:  The pricing plan selected for the specified route calculator resource. For additional details and restrictions on each pricing plan option, see <a href="https://aws.amazon.com/location/pricing/">Amazon Location Service pricing</a>.<br/>Description:  The optional description of the route calculator resource.<br/>DataSource:  The data provider of traffic and road network data. Indicates one of the available providers: <ul> <li>  <code>Esri</code>  </li> <li>  <code>Here</code>  </li> </ul> For more information about data providers, see <a href="https://docs.aws.amazon.com/location/latest/developerguide/what-is-data-provider.html">Amazon Location Service data providers</a>.<br/>CreateTime:  The timestamp when the route calculator resource was created in <a href="https://www.iso.org/iso-8601-date-and-time-format.html">ISO 8601</a> format: <code>YYYY-MM-DDThh:mm:ss.sssZ</code>.  <ul> <li> For example, <code>2020–07-2T12:15:20.000Z+01:00</code>  </li> </ul><br/>CalculatorName:  The name of the route calculator resource being described.<br/>CalculatorArn:  The Amazon Resource Name (ARN) for the Route calculator resource. Use the ARN when you specify a resource across AWS. <ul> <li> Format example: <code>arn:aws:geo:region:account-id:route-calculator/ExampleCalculator</code>  </li> </ul><br/>        """
        pass

    def describe_tracker(self, TrackerName: str) -> DescribeTrackerResponse:
        r"""Retrieves the tracker resource details.

        :param self:
        :param TrackerName:  The name of the tracker resource.<br/>
        :return: UpdateTime:  The timestamp for when the tracker resource was last updated in <a href="https://www.iso.org/iso-8601-date-and-time-format.html"> ISO 8601</a> format: <code>YYYY-MM-DDThh:mm:ss.sssZ</code>. <br/>TrackerName:  The name of the tracker resource.<br/>TrackerArn:  The Amazon Resource Name (ARN) for the tracker resource. Used when you need to specify a resource across all AWS. <ul> <li> Format example: <code>arn:aws:geo:region:account-id:tracker/ExampleTracker</code>  </li> </ul><br/>Tags:  The tags associated with the tracker resource.<br/>PricingPlanDataSource:  The specified data provider for the tracker resource.<br/>PricingPlan:  The pricing plan selected for the specified tracker resource. For additional details and restrictions on each pricing plan option, see the <a href="https://aws.amazon.com/location/pricing/">Amazon Location Service pricing page</a>.<br/>KmsKeyId:  A key identifier for an <a href="https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html">AWS KMS customer managed key</a> assigned to the Amazon Location resource.<br/>Description:  The optional description for the tracker resource.<br/>CreateTime:  The timestamp for when the tracker resource was created in <a href="https://www.iso.org/iso-8601-date-and-time-format.html"> ISO 8601</a> format: <code>YYYY-MM-DDThh:mm:ss.sssZ</code>. <br/>        """
        pass

    def disassociate_tracker_consumer(self, TrackerName: str, ConsumerArn: str) -> DisassociateTrackerConsumerResponse:
        r"""Removes the association between a tracker resource and a geofence collection. <note> Once you unlink a tracker resource from a geofence collection, the tracker positions will no longer be automatically evaluated against geofences. </note>

        :param self:
        :param TrackerName:  The name of the tracker resource to be dissociated from the consumer.<br/>ConsumerArn:  The Amazon Resource Name (ARN) for the geofence collection to be disassociated from the tracker resource. Used when you need to specify a resource across all AWS.  <ul> <li> Format example: <code>arn:aws:geo:region:account-id:geofence-collection/ExampleGeofenceCollectionConsumer</code>  </li> </ul><br/>
        :return:         """
        pass

    def get_device_position(self, TrackerName: str, DeviceId: str) -> GetDevicePositionResponse:
        r"""Retrieves a device's most recent position according to its sample time. <note> Device positions are deleted after 30 days. </note>

        :param self:
        :param TrackerName:  The tracker resource receiving the position update.<br/>DeviceId:  The device whose position you want to retrieve.<br/>
        :return: SampleTime:  The timestamp at which the device's position was determined. Uses <a href="https://www.iso.org/iso-8601-date-and-time-format.html"> ISO 8601 </a> format: <code>YYYY-MM-DDThh:mm:ss.sssZ</code>. <br/>ReceivedTime:  The timestamp for when the tracker resource received the device position in <a href="https://www.iso.org/iso-8601-date-and-time-format.html"> ISO 8601 </a> format: <code>YYYY-MM-DDThh:mm:ss.sssZ</code>. <br/>Position:  The last known device position.<br/>DeviceId:  The device whose position you retrieved.<br/>        """
        pass

    def get_device_position_history(self, TrackerName: str, DeviceId: str, EndTimeExclusive: Timestamp=None, NextToken: str=None, StartTimeInclusive: Timestamp=None) -> GetDevicePositionHistoryResponse:
        r"""Retrieves the device position history from a tracker resource within a specified range of time. <note> Device positions are deleted after 30 days. </note>

        :param self:
        :param TrackerName:  The tracker resource receiving the request for the device position history.<br/>StartTimeInclusive:  Specify the start time for the position history in <a href="https://www.iso.org/iso-8601-date-and-time-format.html"> ISO 8601</a> format: <code>YYYY-MM-DDThh:mm:ss.sssZ</code>. By default, the value will be 24 hours prior to the time that the request is made. Requirement: <ul> <li> The time specified for <code>StartTimeInclusive</code> must be before <code>EndTimeExclusive</code>. </li> </ul><br/>NextToken:  The pagination token specifying which page of results to return in the response. If no token is provided, the default page is the first page.  Default value: <code>null</code> <br/>EndTimeExclusive:  Specify the end time for the position history in <a href="https://www.iso.org/iso-8601-date-and-time-format.html"> ISO 8601</a> format: <code>YYYY-MM-DDThh:mm:ss.sssZ</code>. By default, the value will be the time that the request is made. Requirement: <ul> <li> The time specified for <code>EndTimeExclusive</code> must be after the time for <code>StartTimeInclusive</code>. </li> </ul><br/>DeviceId:  The device whose position history you want to retrieve.<br/>
        :return: NextToken:  A pagination token indicating there are additional pages available. You can use the token in a following request to fetch the next set of results.<br/>DevicePositions:  Contains the position history details for the requested device.<br/>        """
        pass

    def get_geofence(self, GeofenceId: str, CollectionName: str) -> GetGeofenceResponse:
        r"""Retrieves the geofence details from a geofence collection.

        :param self:
        :param GeofenceId:  The geofence you're retrieving details for.<br/>CollectionName:  The geofence collection storing the target geofence.<br/>
        :return: UpdateTime:  The timestamp for when the geofence collection was last updated in <a href="https://www.iso.org/iso-8601-date-and-time-format.html">ISO 8601</a> format: <code>YYYY-MM-DDThh:mm:ss.sssZ</code> <br/>Status:  Identifies the state of the geofence. A geofence will hold one of the following states: <ul> <li>  <code>ACTIVE</code> — The geofence has been indexed by the system.  </li> <li>  <code>PENDING</code> — The geofence is being processed by the system. </li> <li>  <code>FAILED</code> — The geofence failed to be indexed by the system. </li> <li>  <code>DELETED</code> — The geofence has been deleted from the system index. </li> <li>  <code>DELETING</code> — The geofence is being deleted from the system index. </li> </ul><br/>Geometry:  Contains the geofence geometry details describing a polygon.:<br/>GeofenceId:  The geofence identifier.<br/>CreateTime:  The timestamp for when the geofence collection was created in <a href="https://www.iso.org/iso-8601-date-and-time-format.html">ISO 8601</a> format: <code>YYYY-MM-DDThh:mm:ss.sssZ</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Polygon</i> An array of 1 or more linear rings. A linear ring is an array of 4 or more vertices, where the first and last vertex are the same to form a closed boundary. Each vertex is a 2-dimensional point of the form: <code>[longitude, latitude]</code>.  The first linear ring is an outer ring, describing the polygon's boundary. Subsequent linear rings may be inner or outer rings to describe holes and islands. Outer rings must list their vertices in counter-clockwise order around the ring's center, where the left side is the polygon's exterior. Inner rings must list their vertices in clockwise order, where the left side is the polygon's interior.<br/>        """
        pass

    def get_map_glyphs(self, MapName: str, FontUnicodeRange: str, FontStack: str) -> GetMapGlyphsResponse:
        r"""Retrieves glyphs used to display labels on a map.

        :param self:
        :param MapName:  The map resource associated with the glyph ﬁle.<br/>FontUnicodeRange:  A Unicode range of characters to download glyphs for. Each response will contain 256 characters. For example, 0–255 includes all characters from range <code>U+0000</code> to <code>00FF</code>. Must be aligned to multiples of 256.<br/>FontStack:  A comma-separated list of fonts to load glyphs from in order of preference.. For example, <code>Noto Sans, Arial Unicode</code>.<br/>
        :return: ContentType:  The map glyph content type. For example, <code>application/octet-stream</code>.<br/>Blob:  The blob's content type.<br/>        """
        pass

    def get_map_sprites(self, MapName: str, FileName: str) -> GetMapSpritesResponse:
        r"""Retrieves the sprite sheet corresponding to a map resource. The sprite sheet is a PNG image paired with a JSON document describing the offsets of individual icons that will be displayed on a rendered map.

        :param self:
        :param MapName:  The map resource associated with the sprite ﬁle.<br/>FileName:  The name of the sprite ﬁle. Use the following ﬁle names for the sprite sheet: <ul> <li>  <code>sprites.png</code>  </li> <li>  <code>sprites@2x.png</code> for high pixel density displays </li> </ul> For the JSON document contain image offsets. Use the following ﬁle names: <ul> <li>  <code>sprites.json</code>  </li> <li>  <code>sprites@2x.json</code> for high pixel density displays </li> </ul><br/>
        :return: ContentType:  The content type of the sprite sheet and offsets. For example, the sprite sheet content type is <code>image/png</code>, and the sprite offset JSON document is <code>application/json</code>. <br/>Blob:  Contains the body of the sprite sheet or JSON offset ﬁle.<br/>        """
        pass

    def get_map_style_descriptor(self, MapName: str) -> GetMapStyleDescriptorResponse:
        r"""Retrieves the map style descriptor from a map resource.  The style descriptor contains speciﬁcations on how features render on a map. For example, what data to display, what order to display the data in, and the style for the data. Style descriptors follow the Mapbox Style Specification.

        :param self:
        :param MapName:  The map resource to retrieve the style descriptor from.<br/>
        :return: ContentType:  The style descriptor's content type. For example, <code>application/json</code>.<br/>Blob:  Contains the body of the style descriptor.<br/>        """
        pass

    def get_map_tile(self, Z: str, Y: str, X: str, MapName: str) -> GetMapTileResponse:
        r"""Retrieves a vector data tile from the map resource. Map tiles are used by clients to render a map. they're addressed using a grid arrangement with an X coordinate, Y coordinate, and Z (zoom) level.  The origin (0, 0) is the top left of the map. Increasing the zoom level by 1 doubles both the X and Y dimensions, so a tile containing data for the entire world at (0/0/0) will be split into 4 tiles at zoom 1 (1/0/0, 1/0/1, 1/1/0, 1/1/1).

        :param self:
        :param Z:  The zoom value for the map tile.<br/>Y:  The Y axis value for the map tile. <br/>X:  The X axis value for the map tile.<br/>MapName:  The map resource to retrieve the map tiles from.<br/>
        :return: ContentType:  The map tile's content type. For example, <code>application/vnd.mapbox-vector-tile</code>.<br/>Blob:  Contains Mapbox Vector Tile (MVT) data.<br/>        """
        pass

    def list_device_positions(self, TrackerName: str, MaxResults: int=None, NextToken: str=None) -> ListDevicePositionsResponse:
        r"""Lists the latest device positions for requested devices.

        :param self:
        :param TrackerName:  The tracker resource containing the requested devices.<br/>NextToken:  The pagination token specifying which page of results to return in the response. If no token is provided, the default page is the first page. Default value: <code>null</code> <br/>MaxResults:  An optional limit for the number of entries returned in a single call. Default value: <code>100</code> <br/>
        :return: NextToken:  A pagination token indicating there are additional pages available. You can use the token in a following request to fetch the next set of results.<br/>Entries:  Contains details about each device's last known position. These details includes the device ID, the time when the position was sampled on the device, the time that the service received the update, and the most recent coordinates.<br/>        """
        pass

    def list_geofence_collections(self, MaxResults: int=None, NextToken: str=None) -> ListGeofenceCollectionsResponse:
        r"""Lists geofence collections in your AWS account.

        :param self:
        :param NextToken:  The pagination token specifying which page of results to return in the response. If no token is provided, the default page is the first page.  Default value: <code>null</code> <br/>MaxResults:  An optional limit for the number of resources returned in a single call.  Default value: <code>100</code> <br/>
        :return: NextToken:  A pagination token indicating there are additional pages available. You can use the token in a following request to fetch the next set of results. <br/>Entries:  Lists the geofence collections that exist in your AWS account.<br/>        """
        pass

    def list_geofences(self, CollectionName: str, NextToken: str=None) -> ListGeofencesResponse:
        r"""Lists geofences stored in a given geofence collection.

        :param self:
        :param NextToken:  The pagination token specifying which page of results to return in the response. If no token is provided, the default page is the first page.  Default value: <code>null</code> <br/>CollectionName:  The name of the geofence collection storing the list of geofences.<br/>
        :return: NextToken:  A pagination token indicating there are additional pages available. You can use the token in a following request to fetch the next set of results. <br/>Entries:  Contains a list of geofences stored in the geofence collection.<br/>        """
        pass

    def list_maps(self, MaxResults: int=None, NextToken: str=None) -> ListMapsResponse:
        r"""Lists map resources in your AWS account.

        :param self:
        :param NextToken:  The pagination token specifying which page of results to return in the response. If no token is provided, the default page is the first page. Default value: <code>null</code> <br/>MaxResults:  An optional limit for the number of resources returned in a single call.  Default value: <code>100</code> <br/>
        :return: NextToken:  A pagination token indicating there are additional pages available. You can use the token in a following request to fetch the next set of results. <br/>Entries:  Contains a list of maps in your AWS account<br/>        """
        pass

    def list_place_indexes(self, MaxResults: int=None, NextToken: str=None) -> ListPlaceIndexesResponse:
        r"""Lists place index resources in your AWS account.

        :param self:
        :param NextToken:  The pagination token specifying which page of results to return in the response. If no token is provided, the default page is the first page. Default value: <code>null</code> <br/>MaxResults:  An optional limit for the maximum number of results returned in a single call. Default value: <code>100</code> <br/>
        :return: NextToken:  A pagination token indicating there are additional pages available. You can use the token in a following request to fetch the next set of results.<br/>Entries:  Lists the place index resources that exist in your AWS account<br/>        """
        pass

    def list_route_calculators(self, MaxResults: int=None, NextToken: str=None) -> ListRouteCalculatorsResponse:
        r"""Lists route calculator resources in your AWS account.

        :param self:
        :param NextToken:  The pagination token specifying which page of results to return in the response. If no token is provided, the default page is the first page. Default Value: <code>null</code> <br/>MaxResults:  An optional maximum number of results returned in a single call. Default Value: <code>100</code> <br/>
        :return: NextToken:  A pagination token indicating there are additional pages available. You can use the token in a subsequent request to fetch the next set of results.<br/>Entries:  Lists the route calculator resources that exist in your AWS account<br/>        """
        pass

    def list_tags_for_resource(self, ResourceArn: str) -> ListTagsForResourceResponse:
        r"""Returns the tags for the specified Amazon Location Service resource.

        :param self:
        :param ResourceArn:  The Amazon Resource Name (ARN) of the resource whose tags you want to retrieve.<br/>
        :return: Tags:  The mapping from tag key to tag value for each tag associated with the specified resource.<br/>        """
        pass

    def list_tracker_consumers(self, TrackerName: str, MaxResults: int=None, NextToken: str=None) -> ListTrackerConsumersResponse:
        r"""Lists geofence collections currently associated to the given tracker resource.

        :param self:
        :param TrackerName:  The tracker resource whose associated geofence collections you want to list.<br/>NextToken:  The pagination token specifying which page of results to return in the response. If no token is provided, the default page is the first page.  Default value: <code>null</code> <br/>MaxResults:  An optional limit for the number of resources returned in a single call.  Default value: <code>100</code> <br/>
        :return: NextToken:  A pagination token indicating there are additional pages available. You can use the token in a following request to fetch the next set of results. <br/>ConsumerArns:  Contains the list of geofence collection ARNs associated to the tracker resource.<br/>        """
        pass

    def list_trackers(self, MaxResults: int=None, NextToken: str=None) -> ListTrackersResponse:
        r"""Lists tracker resources in your AWS account.

        :param self:
        :param NextToken:  The pagination token specifying which page of results to return in the response. If no token is provided, the default page is the first page.  Default value: <code>null</code> <br/>MaxResults:  An optional limit for the number of resources returned in a single call.  Default value: <code>100</code> <br/>
        :return: NextToken:  A pagination token indicating there are additional pages available. You can use the token in a following request to fetch the next set of results. <br/>Entries:  Contains tracker resources in your AWS account. Details include tracker name, description and timestamps for when the tracker was created and last updated.<br/>        """
        pass

    def put_geofence(self, Geometry: GeofenceGeometry, GeofenceId: str, CollectionName: str) -> PutGeofenceResponse:
        r"""Stores a geofence geometry in a given geofence collection, or updates the geometry of an existing geofence if a geofence ID is included in the request. 

        :param self:
        :param Geometry:  Contains the polygon details to specify the position of the geofence. <note> Each <a href="https://docs.aws.amazon.com/location-geofences/latest/APIReference/API_GeofenceGeometry.html">geofence polygon</a> can have a maximum of 1,000 vertices. </note>:<br/>GeofenceId:  An identifier for the geofence. For example, <code>ExampleGeofence-1</code>.<br/>CollectionName:  The geofence collection to store the geofence in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Polygon</i> An array of 1 or more linear rings. A linear ring is an array of 4 or more vertices, where the first and last vertex are the same to form a closed boundary. Each vertex is a 2-dimensional point of the form: <code>[longitude, latitude]</code>.  The first linear ring is an outer ring, describing the polygon's boundary. Subsequent linear rings may be inner or outer rings to describe holes and islands. Outer rings must list their vertices in counter-clockwise order around the ring's center, where the left side is the polygon's exterior. Inner rings must list their vertices in clockwise order, where the left side is the polygon's interior.<br/>
        :return: UpdateTime:  The timestamp for when the geofence was last updated in <a href="https://www.iso.org/iso-8601-date-and-time-format.html">ISO 8601</a> format: <code>YYYY-MM-DDThh:mm:ss.sssZ</code> <br/>GeofenceId:  The geofence identifier entered in the request.<br/>CreateTime:  The timestamp for when the geofence was created in <a href="https://www.iso.org/iso-8601-date-and-time-format.html">ISO 8601</a> format: <code>YYYY-MM-DDThh:mm:ss.sssZ</code> <br/>        """
        pass

    def search_place_index_for_position(self, Position: List[Double], IndexName: str, MaxResults: int=None) -> SearchPlaceIndexForPositionResponse:
        r"""Reverse geocodes a given coordinate and returns a legible address. Allows you to search for Places or points of interest near a given position.

        :param self:
        :param Position:  Specifies a coordinate for the query defined by a longitude, and latitude. <ul> <li> The first position is the X coordinate, or longitude. </li> <li> The second position is the Y coordinate, or latitude.  </li> </ul> For example, <code>position=xLongitude&amp;position=yLatitude</code> .<br/>MaxResults:  An optional paramer. The maximum number of results returned per request.  Default value: <code>50</code> <br/>IndexName:  The name of the place index resource you want to use for the search.<br/>
        :return: Summary:  Contains a summary of the request.:<br/>Results:  Returns a list of Places closest to the specified position. Each result contains additional information about the Places returned.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Position</i> The position given in the reverse geocoding request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxResults</i> An optional parameter. The maximum number of results returned per request.  Default value: <code>50</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataSource</i> The data provider of geospatial data. Indicates one of the available providers: <ul> <li> Esri </li> <li> HERE </li> </ul> For additional details on data providers, see the <a href="https://docs.aws.amazon.com/location/latest/developerguide/what-is-data-provider.html">Amazon Location Service data providers page</a>.<br/>        """
        pass

    def search_place_index_for_text(self, Text: str, IndexName: str, BiasPosition: List[Double]=None, FilterBBox: List[Double]=None, FilterCountries: List[CountryCode]=None, MaxResults: int=None) -> SearchPlaceIndexForTextResponse:
        r"""Geocodes free-form text, such as an address, name, city, or region to allow you to search for Places or points of interest.  Includes the option to apply additional parameters to narrow your list of results. <note> You can search for places near a given position using <code>BiasPosition</code>, or filter results within a bounding box using <code>FilterBBox</code>. Providing both parameters simultaneously returns an error. </note>

        :param self:
        :param Text:  The address, name, city, or region to be used in the search. In free-form text format. For example, <code>123 Any Street</code>.<br/>MaxResults:  An optional parameter. The maximum number of results returned per request.  The default: <code>50</code> <br/>IndexName:  The name of the place index resource you want to use for the search.<br/>FilterCountries:  Limits the search to the given a list of countries/regions. An optional parameter. <ul> <li> Use the <a href="https://www.iso.org/iso-3166-country-codes.html">ISO 3166</a> 3-digit country code. For example, Australia uses three upper-case characters: <code>AUS</code>. </li> </ul><br/>FilterBBox:  Filters the results by returning only Places within the provided bounding box. An optional parameter. The first 2 <code>bbox</code> parameters describe the lower southwest corner: <ul> <li> The first <code>bbox</code> position is the X coordinate or longitude of the lower southwest corner. </li> <li> The second <code>bbox</code> position is the Y coordinate or latitude of the lower southwest corner. </li> </ul> For example, <code>bbox=xLongitudeSW&amp;bbox=yLatitudeSW</code>. The next <code>bbox</code> parameters describe the upper northeast corner: <ul> <li> The third <code>bbox</code> position is the X coordinate, or longitude of the upper northeast corner. </li> <li> The fourth <code>bbox</code> position is the Y coordinate, or longitude of the upper northeast corner. </li> </ul> For example, <code>bbox=xLongitudeNE&amp;bbox=yLatitudeNE</code> <br/>BiasPosition:  Searches for results closest to the given position. An optional parameter defined by longitude, and latitude. <ul> <li> The first <code>bias</code> position is the X coordinate, or longitude. </li> <li> The second <code>bias</code> position is the Y coordinate, or latitude.  </li> </ul> For example, <code>bias=xLongitude&amp;bias=yLatitude</code>.<br/>
        :return: Summary:  Contains a summary of the request. Contains the <code>BiasPosition</code>, <code>DataSource</code>, <code>FilterBBox</code>, <code>FilterCountries</code>, <code>MaxResults</code>, <code>ResultBBox</code>, and <code>Text</code>.:<br/>Results:  A list of Places closest to the specified position. Each result contains additional information about the specific point of interest. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Text</i> The address, name, city or region to be used in the geocoding request. In free-form text format. For example, <code>Vancouver</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResultBBox</i> A bounding box that contains the search results within the specified area indicated by <code>FilterBBox</code>. A subset of bounding box specified using <code>FilterBBox</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxResults</i> Contains the maximum number of results indicated for the request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FilterCountries</i> Contains the country filter entered in the geocoding request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FilterBBox</i> Contains the coordinates for the optional bounding box coordinated entered in the geocoding request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataSource</i> The data provider of geospatial data. Indicates one of the available providers: <ul> <li> Esri </li> <li> HERE </li> </ul> For additional details on data providers, see the <a href="https://docs.aws.amazon.com/location/latest/developerguide/what-is-data-provider.html">Amazon Location Service data providers page</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BiasPosition</i> Contains the coordinates for the bias position entered in the geocoding request.<br/>        """
        pass

    def tag_resource(self, Tags: TagMap, ResourceArn: str) -> TagResourceResponse:
        r"""Assigns one or more tags (key-value pairs) to the specified Amazon Location Service resource. <pre><code> &lt;p&gt;Tags can help you organize and categorize your resources. You can also use them to scope user permissions, by granting a user permission to access or change only resources with certain tag values.&lt;/p&gt; &lt;p&gt;Tags don't have any semantic meaning to AWS and are interpreted strictly as strings of characters.&lt;/p&gt; &lt;p&gt;You can use the &lt;code&gt;TagResource&lt;/code&gt; action with an Amazon Location Service resource that already has tags. If you specify a new tag key for the resource, this tag is appended to the tags already associated with the resource. If you specify a tag key that is already associated with the resource, the new tag value that you specify replaces the previous value for that tag. &lt;/p&gt; &lt;p&gt;You can associate as many as 50 tags with a resource.&lt;/p&gt; </code></pre>

        :param self:
        :param Tags:  The mapping from tag key to tag value for each tag associated with the specified resource.<br/>ResourceArn:  The Amazon Resource Name (ARN) of the resource whose tags you want to update.<br/>
        :return:         """
        pass

    def untag_resource(self, TagKeys: List[String], ResourceArn: str) -> UntagResourceResponse:
        r"""Removes one or more tags from the specified Amazon Location Service resource.

        :param self:
        :param TagKeys:  The list of tag keys to remove from the resource.<br/>ResourceArn:  The Amazon Resource Name (ARN) of the resource from which you want to remove tags.<br/>
        :return:         """
        pass





class CloudWatchLogs(BaseClient):
    r"""You can use Amazon CloudWatch Logs to monitor, store, and access your log files from EC2 instances, AWS CloudTrail, and other sources. You can then retrieve the associated log data from CloudWatch Logs using the CloudWatch console, CloudWatch Logs commands in the AWS CLI, CloudWatch Logs API, or CloudWatch Logs SDK. You can use CloudWatch Logs to: <ul> <li>  <b>Monitor logs from EC2 instances in real-time</b>: You can use CloudWatch Logs to monitor applications and systems using log data. For example, CloudWatch Logs can track the number of errors that occur in your application logs and send you a notification whenever the rate of errors exceeds a threshold that you specify. CloudWatch Logs uses your log data for monitoring so no code changes are required. For example, you can monitor application logs for specific literal terms (such as "NullReferenceException") or count the number of occurrences of a literal term at a particular position in log data (such as "404" status codes in an Apache access log). When the term you are searching for is found, CloudWatch Logs reports the data to a CloudWatch metric that you specify. </li> <li>  <b>Monitor AWS CloudTrail logged events</b>: You can create alarms in CloudWatch and receive notifications of particular API activity as captured by CloudTrail. You can use the notification to perform troubleshooting. </li> <li>  <b>Archive log data</b>: You can use CloudWatch Logs to store your log data in highly durable storage. You can change the log retention setting so that any log events older than this setting are automatically deleted. The CloudWatch Logs agent makes it easy to quickly send both rotated and non-rotated log data off of a host and into the log service. You can then access the raw log data when you need it. </li> </ul>"""


    class DescribeDestinationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_destinations` for valid parameters"""
            pass
    class DescribeLogGroupsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_log_groups` for valid parameters"""
            pass
    class DescribeLogStreamsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_log_streams` for valid parameters"""
            pass
    class DescribeMetricFiltersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_metric_filters` for valid parameters"""
            pass
    class DescribeSubscriptionFiltersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_subscription_filters` for valid parameters"""
            pass
    class FilterLogEventsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `filter_log_events` for valid parameters"""
            pass
    class DescribeExportTasksPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_export_tasks` for valid parameters"""
            pass
    class DescribeQueriesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_queries` for valid parameters"""
            pass
    class DescribeResourcePoliciesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_resource_policies` for valid parameters"""
            pass


    class AssociateKmsKeyRequest(Mapping):
        pass
    
    class CancelExportTaskRequest(Mapping):
        pass
    
    class CreateExportTaskRequest(Mapping):
        pass
    
    class CreateExportTaskResponse(Mapping):
        pass
    
    class Timestamp(object):
        pass
    
    class CreateLogGroupRequest(Mapping):
        pass
    
    class Tags(object):
        pass
    
    class CreateLogStreamRequest(Mapping):
        pass
    
    class DeleteDestinationRequest(Mapping):
        pass
    
    class DeleteLogGroupRequest(Mapping):
        pass
    
    class DeleteLogStreamRequest(Mapping):
        pass
    
    class DeleteMetricFilterRequest(Mapping):
        pass
    
    class DeleteQueryDefinitionRequest(Mapping):
        pass
    
    class DeleteQueryDefinitionResponse(Mapping):
        pass
    
    class DeleteResourcePolicyRequest(Mapping):
        pass
    
    class DeleteRetentionPolicyRequest(Mapping):
        pass
    
    class DeleteSubscriptionFilterRequest(Mapping):
        pass
    
    class DescribeDestinationsRequest(Mapping):
        pass
    
    class DescribeDestinationsResponse(Mapping):
        pass
    
    class DescribeExportTasksRequest(Mapping):
        pass
    
    class DescribeExportTasksResponse(Mapping):
        pass
    
    class DescribeLogGroupsRequest(Mapping):
        pass
    
    class DescribeLogGroupsResponse(Mapping):
        pass
    
    class DescribeLogStreamsRequest(Mapping):
        pass
    
    class DescribeLogStreamsResponse(Mapping):
        pass
    
    class Descending(object):
        pass
    
    class DescribeMetricFiltersRequest(Mapping):
        pass
    
    class DescribeMetricFiltersResponse(Mapping):
        pass
    
    class DescribeQueriesRequest(Mapping):
        pass
    
    class DescribeQueriesResponse(Mapping):
        pass
    
    class DescribeQueryDefinitionsRequest(Mapping):
        pass
    
    class DescribeQueryDefinitionsResponse(Mapping):
        pass
    
    class DescribeResourcePoliciesRequest(Mapping):
        pass
    
    class DescribeResourcePoliciesResponse(Mapping):
        pass
    
    class DescribeSubscriptionFiltersRequest(Mapping):
        pass
    
    class DescribeSubscriptionFiltersResponse(Mapping):
        pass
    
    class DisassociateKmsKeyRequest(Mapping):
        pass
    
    class FilterLogEventsRequest(Mapping):
        pass
    
    class FilterLogEventsResponse(Mapping):
        pass
    
    class LogStreamName(object):
        pass
    
    class Interleaved(object):
        pass
    
    class GetLogEventsRequest(Mapping):
        pass
    
    class GetLogEventsResponse(Mapping):
        pass
    
    class StartFromHead(object):
        pass
    
    class GetLogGroupFieldsRequest(Mapping):
        pass
    
    class GetLogGroupFieldsResponse(Mapping):
        pass
    
    class GetLogRecordRequest(Mapping):
        pass
    
    class GetLogRecordResponse(Mapping):
        pass
    
    class GetQueryResultsRequest(Mapping):
        pass
    
    class GetQueryResultsResponse(Mapping):
        pass
    
    class ListTagsLogGroupRequest(Mapping):
        pass
    
    class ListTagsLogGroupResponse(Mapping):
        pass
    
    class PutDestinationRequest(Mapping):
        pass
    
    class PutDestinationResponse(Mapping):
        pass
    
    class PutDestinationPolicyRequest(Mapping):
        pass
    
    class PutLogEventsRequest(Mapping):
        pass
    
    class PutLogEventsResponse(Mapping):
        pass
    
    class InputLogEvent(Mapping):
        pass
    
    class PutMetricFilterRequest(Mapping):
        pass
    
    class MetricTransformation(Mapping):
        pass
    
    class PutQueryDefinitionRequest(Mapping):
        pass
    
    class PutQueryDefinitionResponse(Mapping):
        pass
    
    class LogGroupName(object):
        pass
    
    class PutResourcePolicyRequest(Mapping):
        pass
    
    class PutResourcePolicyResponse(Mapping):
        pass
    
    class PutRetentionPolicyRequest(Mapping):
        pass
    
    class PutSubscriptionFilterRequest(Mapping):
        pass
    
    class StartQueryRequest(Mapping):
        pass
    
    class StartQueryResponse(Mapping):
        pass
    
    class StopQueryRequest(Mapping):
        pass
    
    class StopQueryResponse(Mapping):
        pass
    
    class TagLogGroupRequest(Mapping):
        pass
    
    class TestMetricFilterRequest(Mapping):
        pass
    
    class TestMetricFilterResponse(Mapping):
        pass
    
    class EventMessage(object):
        pass
    
    class UntagLogGroupRequest(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    def associate_kms_key(self, kmsKeyId: str, logGroupName: str):
        r"""Associates the specified AWS Key Management Service (AWS KMS) customer master key (CMK) with the specified log group. Associating an AWS KMS CMK with a log group overrides any existing associations between the log group and a CMK. After a CMK is associated with a log group, all newly ingested data for the log group is encrypted using the CMK. This association is stored as long as the data encrypted with the CMK is still within Amazon CloudWatch Logs. This enables Amazon CloudWatch Logs to decrypt this data whenever it is requested. <important> CloudWatch Logs supports only symmetric CMKs. Do not use an associate an asymmetric CMK with your log group. For more information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html">Using Symmetric and Asymmetric Keys</a>. </important> It can take up to 5 minutes for this operation to take effect. If you attempt to associate a CMK with a log group but the CMK does not exist or the CMK is disabled, you receive an <code>InvalidParameterException</code> error. 

        :param self:
        :param kmsKeyId:  The Amazon Resource Name (ARN) of the CMK to use when encrypting log data. This must be a symmetric CMK. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-kms">Amazon Resource Names - AWS Key Management Service (AWS KMS)</a> and <a href="https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html">Using Symmetric and Asymmetric Keys</a>.<br/>logGroupName:  The name of the log group.<br/>
        :return:         """
        pass

    def cancel_export_task(self, taskId: str):
        r"""Cancels the specified export task. The task must be in the <code>PENDING</code> or <code>RUNNING</code> state.

        :param self:
        :param taskId:  The ID of the export task.<br/>
        :return:         """
        pass

    def create_export_task(self, destination: str, to: Timestamp, from_: Timestamp, logGroupName: str, taskName: str=None, logStreamNamePrefix: str=None, destinationPrefix: str=None) -> CreateExportTaskResponse:
        r"""Creates an export task, which allows you to efficiently export data from a log group to an Amazon S3 bucket. When you perform a <code>CreateExportTask</code> operation, you must use credentials that have permission to write to the S3 bucket that you specify as the destination. This is an asynchronous call. If all the required information is provided, this operation initiates an export task and responds with the ID of the task. After the task has started, you can use <a href="https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DescribeExportTasks.html">DescribeExportTasks</a> to get the status of the export task. Each account can only have one active (<code>RUNNING</code> or <code>PENDING</code>) export task at a time. To cancel an export task, use <a href="https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_CancelExportTask.html">CancelExportTask</a>. You can export logs from multiple log groups or multiple time ranges to the same S3 bucket. To separate out log data for each export task, you can specify a prefix to be used as the Amazon S3 key prefix for all exported objects. Exporting to S3 buckets that are encrypted with AES-256 is supported. Exporting to S3 buckets encrypted with SSE-KMS is not supported. 

        :param self:
        :param destinationPrefix:  The prefix used as the start of the key for every object exported. If you don't specify a value, the default is <code>exportedlogs</code>.<br/>destination:  The name of S3 bucket for the exported log data. The bucket must be in the same AWS region.<br/>to:  The end time of the range for the request, expreswatchlogsdocused as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. Events with a timestamp later than this time are not exported.<br/>from:  The start time of the range for the request, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. Events with a timestamp earlier than this time are not exported.<br/>logStreamNamePrefix:  Export only log streams that match the provided prefix. If you don't specify a value, no prefix filter is applied.<br/>logGroupName:  The name of the log group.<br/>taskName:  The name of the export task.<br/>
        :return: taskId:  The ID of the export task.<br/>        """
        pass

    def create_log_group(self, logGroupName: str, kmsKeyId: str=None, tags: Tags=None):
        r"""Creates a log group with the specified name. You can create up to 20,000 log groups per account. You must use the following guidelines when naming a log group: <ul> <li> Log group names must be unique within a region for an AWS account. </li> <li> Log group names can be between 1 and 512 characters long. </li> <li> Log group names consist of the following characters: a-z, A-Z, 0-9, '_' (underscore), '-' (hyphen), '/' (forward slash), '.' (period), and '#' (number sign) </li> </ul> When you create a log group, by default the log events in the log group never expire. To set a retention policy so that events expire and are deleted after a specified time, use <a href="https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutRetentionPolicy.html">PutRetentionPolicy</a>. If you associate a AWS Key Management Service (AWS KMS) customer master key (CMK) with the log group, ingested data is encrypted using the CMK. This association is stored as long as the data encrypted with the CMK is still within Amazon CloudWatch Logs. This enables Amazon CloudWatch Logs to decrypt this data whenever it is requested. If you attempt to associate a CMK with the log group but the CMK does not exist or the CMK is disabled, you receive an <code>InvalidParameterException</code> error.  <important>  CloudWatch Logs supports only symmetric CMKs. Do not associate an asymmetric CMK with your log group. For more information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html">Using Symmetric and Asymmetric Keys</a>. </important>

        :param self:
        :param tags:  The key-value pairs to use for the tags.<br/>kmsKeyId:  The Amazon Resource Name (ARN) of the CMK to use when encrypting log data. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-kms">Amazon Resource Names - AWS Key Management Service (AWS KMS)</a>.<br/>logGroupName:  The name of the log group.<br/>
        :return:         """
        pass

    def create_log_stream(self, logStreamName: str, logGroupName: str):
        r"""Creates a log stream for the specified log group. A log stream is a sequence of log events that originate from a single source, such as an application instance or a resource that is being monitored. There is no limit on the number of log streams that you can create for a log group. There is a limit of 50 TPS on <code>CreateLogStream</code> operations, after which transactions are throttled. You must use the following guidelines when naming a log stream: <ul> <li> Log stream names must be unique within the log group. </li> <li> Log stream names can be between 1 and 512 characters long. </li> <li> The ':' (colon) and '*' (asterisk) characters are not allowed. </li> </ul>

        :param self:
        :param logStreamName:  The name of the log stream.<br/>logGroupName:  The name of the log group.<br/>
        :return:         """
        pass

    def delete_destination(self, destinationName: str):
        r"""Deletes the specified destination, and eventually disables all the subscription filters that publish to it. This operation does not delete the physical resource encapsulated by the destination.

        :param self:
        :param destinationName:  The name of the destination.<br/>
        :return:         """
        pass

    def delete_log_group(self, logGroupName: str):
        r"""Deletes the specified log group and permanently deletes all the archived log events associated with the log group.

        :param self:
        :param logGroupName:  The name of the log group.<br/>
        :return:         """
        pass

    def delete_log_stream(self, logStreamName: str, logGroupName: str):
        r"""Deletes the specified log stream and permanently deletes all the archived log events associated with the log stream.

        :param self:
        :param logStreamName:  The name of the log stream.<br/>logGroupName:  The name of the log group.<br/>
        :return:         """
        pass

    def delete_metric_filter(self, filterName: str, logGroupName: str):
        r"""Deletes the specified metric filter.

        :param self:
        :param filterName:  The name of the metric filter.<br/>logGroupName:  The name of the log group.<br/>
        :return:         """
        pass

    def delete_query_definition(self, queryDefinitionId: str) -> DeleteQueryDefinitionResponse:
        r"""Deletes a saved CloudWatch Logs Insights query definition. A query definition contains details about a saved CloudWatch Logs Insights query. Each <code>DeleteQueryDefinition</code> operation can delete one query definition. You must have the <code>logs:DeleteQueryDefinition</code> permission to be able to perform this operation.

        :param self:
        :param queryDefinitionId:  The ID of the query definition that you want to delete. You can use <a href="https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DescribeQueryDefinitions.html">DescribeQueryDefinitions</a> to retrieve the IDs of your saved query definitions.<br/>
        :return: success:  A value of TRUE indicates that the operation succeeded. FALSE indicates that the operation failed.<br/>        """
        pass

    def delete_resource_policy(self, policyName: str=None):
        r"""Deletes a resource policy from this account. This revokes the access of the identities in that policy to put log events to this account.

        :param self:
        :param policyName:  The name of the policy to be revoked. This parameter is required.<br/>
        :return:         """
        pass

    def delete_retention_policy(self, logGroupName: str):
        r"""Deletes the specified retention policy. Log events do not expire if they belong to log groups without a retention policy.

        :param self:
        :param logGroupName:  The name of the log group.<br/>
        :return:         """
        pass

    def delete_subscription_filter(self, filterName: str, logGroupName: str):
        r"""Deletes the specified subscription filter.

        :param self:
        :param filterName:  The name of the subscription filter.<br/>logGroupName:  The name of the log group.<br/>
        :return:         """
        pass

    def describe_destinations(self, DestinationNamePrefix: str=None, nextToken: str=None, limit: int=None) -> DescribeDestinationsResponse:
        r"""Lists all your destinations. The results are ASCII-sorted by destination name.

        :param self:
        :param limit:  The maximum number of items returned. If you don't specify a value, the default is up to 50 items.<br/>nextToken:  The token for the next set of items to return. (You received this token from a previous call.)<br/>DestinationNamePrefix:  The prefix to match. If you don't specify a value, no prefix filter is applied.<br/>
        :return: nextToken:  The token for the next set of items to return. The token expires after 24 hours.<br/>destinations:  The destinations.<br/>        """
        pass

    def describe_export_tasks(self, taskId: str=None, statusCode: str=None, nextToken: str=None, limit: int=None) -> DescribeExportTasksResponse:
        r"""Lists the specified export tasks. You can list all your export tasks or filter the results based on task ID or task status.

        :param self:
        :param limit:  The maximum number of items returned. If you don't specify a value, the default is up to 50 items.<br/>nextToken:  The token for the next set of items to return. (You received this token from a previous call.)<br/>statusCode:  The status code of the export task. Specifying a status code filters the results to zero or more export tasks.<br/>taskId:  The ID of the export task. Specifying a task ID filters the results to zero or one export tasks.<br/>
        :return: nextToken:  The token for the next set of items to return. The token expires after 24 hours.<br/>exportTasks:  The export tasks.<br/>        """
        pass

    def describe_log_groups(self, logGroupNamePrefix: str=None, nextToken: str=None, limit: int=None) -> DescribeLogGroupsResponse:
        r"""Lists the specified log groups. You can list all your log groups or filter the results by prefix. The results are ASCII-sorted by log group name.

        :param self:
        :param limit:  The maximum number of items returned. If you don't specify a value, the default is up to 50 items.<br/>nextToken:  The token for the next set of items to return. (You received this token from a previous call.)<br/>logGroupNamePrefix:  The prefix to match.<br/>
        :return: nextToken:  The token for the next set of items to return. The token expires after 24 hours.<br/>logGroups:  The log groups. If the <code>retentionInDays</code> value if not included for a log group, then that log group is set to have its events never expire.<br/>        """
        pass

    def describe_log_streams(self, logGroupName: str, logStreamNamePrefix: str=None, orderBy: str=None, descending: Descending=None, nextToken: str=None, limit: int=None) -> DescribeLogStreamsResponse:
        r"""Lists the log streams for the specified log group. You can list all the log streams or filter the results by prefix. You can also control how the results are ordered. This operation has a limit of five transactions per second, after which transactions are throttled.

        :param self:
        :param limit:  The maximum number of items returned. If you don't specify a value, the default is up to 50 items.<br/>nextToken:  The token for the next set of items to return. (You received this token from a previous call.)<br/>descending:  If the value is true, results are returned in descending order. If the value is to false, results are returned in ascending order. The default value is false.<br/>orderBy:  If the value is <code>LogStreamName</code>, the results are ordered by log stream name. If the value is <code>LastEventTime</code>, the results are ordered by the event time. The default value is <code>LogStreamName</code>. If you order the results by event time, you cannot specify the <code>logStreamNamePrefix</code> parameter.  <code>lastEventTimestamp</code> represents the time of the most recent log event in the log stream in CloudWatch Logs. This number is expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. <code>lastEventTimestamp</code> updates on an eventual consistency basis. It typically updates in less than an hour from ingestion, but in rare situations might take longer.<br/>logStreamNamePrefix:  The prefix to match. If <code>orderBy</code> is <code>LastEventTime</code>, you cannot specify this parameter.<br/>logGroupName:  The name of the log group.<br/>
        :return: nextToken:  The token for the next set of items to return. The token expires after 24 hours.<br/>logStreams:  The log streams.<br/>        """
        pass

    def describe_metric_filters(self, logGroupName: str=None, filterNamePrefix: str=None, nextToken: str=None, limit: int=None, metricName: str=None, metricNamespace: str=None) -> DescribeMetricFiltersResponse:
        r"""Lists the specified metric filters. You can list all of the metric filters or filter the results by log name, prefix, metric name, or metric namespace. The results are ASCII-sorted by filter name.

        :param self:
        :param metricNamespace:  Filters results to include only those in the specified namespace. If you include this parameter in your request, you must also include the <code>metricName</code> parameter.<br/>metricName:  Filters results to include only those with the specified metric name. If you include this parameter in your request, you must also include the <code>metricNamespace</code> parameter.<br/>limit:  The maximum number of items returned. If you don't specify a value, the default is up to 50 items.<br/>nextToken:  The token for the next set of items to return. (You received this token from a previous call.)<br/>filterNamePrefix:  The prefix to match. CloudWatch Logs uses the value you set here only if you also include the <code>logGroupName</code> parameter in your request.<br/>logGroupName:  The name of the log group.<br/>
        :return: nextToken:  The token for the next set of items to return. The token expires after 24 hours.<br/>metricFilters:  The metric filters.<br/>        """
        pass

    def describe_queries(self, logGroupName: str=None, status: str=None, maxResults: int=None, nextToken: str=None) -> DescribeQueriesResponse:
        r"""Returns a list of CloudWatch Logs Insights queries that are scheduled, executing, or have been executed recently in this account. You can request all queries or limit it to queries of a specific log group or queries with a certain status.

        :param self:
        :param nextToken:  The token for the next set of items to return. The token expires after 24 hours.<br/>maxResults:  Limits the number of returned queries to the specified number.<br/>status:  Limits the returned queries to only those that have the specified status. Valid values are <code>Cancelled</code>, <code>Complete</code>, <code>Failed</code>, <code>Running</code>, and <code>Scheduled</code>.<br/>logGroupName:  Limits the returned queries to only those for the specified log group.<br/>
        :return: nextToken:  The token for the next set of items to return. The token expires after 24 hours.<br/>queries:  The list of queries that match the request.<br/>        """
        pass

    def describe_query_definitions(self, queryDefinitionNamePrefix: str=None, maxResults: int=None, nextToken: str=None) -> DescribeQueryDefinitionsResponse:
        r"""This operation returns a paginated list of your saved CloudWatch Logs Insights query definitions. You can use the <code>queryDefinitionNamePrefix</code> parameter to limit the results to only the query definitions that have names that start with a certain string.

        :param self:
        :param nextToken:  The token for the next set of items to return. The token expires after 24 hours.<br/>maxResults:  Limits the number of returned query definitions to the specified number.<br/>queryDefinitionNamePrefix:  Use this parameter to filter your results to only the query definitions that have names that start with the prefix you specify.<br/>
        :return: nextToken:  The token for the next set of items to return. The token expires after 24 hours.<br/>queryDefinitions:  The list of query definitions that match your request.<br/>        """
        pass

    def describe_resource_policies(self, nextToken: str=None, limit: int=None) -> DescribeResourcePoliciesResponse:
        r"""Lists the resource policies in this account.

        :param self:
        :param limit:  The maximum number of resource policies to be displayed with one call of this API.<br/>nextToken:  The token for the next set of items to return. The token expires after 24 hours.<br/>
        :return: nextToken:  The token for the next set of items to return. The token expires after 24 hours.<br/>resourcePolicies:  The resource policies that exist in this account.<br/>        """
        pass

    def describe_subscription_filters(self, logGroupName: str, filterNamePrefix: str=None, nextToken: str=None, limit: int=None) -> DescribeSubscriptionFiltersResponse:
        r"""Lists the subscription filters for the specified log group. You can list all the subscription filters or filter the results by prefix. The results are ASCII-sorted by filter name.

        :param self:
        :param limit:  The maximum number of items returned. If you don't specify a value, the default is up to 50 items.<br/>nextToken:  The token for the next set of items to return. (You received this token from a previous call.)<br/>filterNamePrefix:  The prefix to match. If you don't specify a value, no prefix filter is applied.<br/>logGroupName:  The name of the log group.<br/>
        :return: nextToken:  The token for the next set of items to return. The token expires after 24 hours.<br/>subscriptionFilters:  The subscription filters.<br/>        """
        pass

    def disassociate_kms_key(self, logGroupName: str):
        r"""Disassociates the associated AWS Key Management Service (AWS KMS) customer master key (CMK) from the specified log group. After the AWS KMS CMK is disassociated from the log group, AWS CloudWatch Logs stops encrypting newly ingested data for the log group. All previously ingested data remains encrypted, and AWS CloudWatch Logs requires permissions for the CMK whenever the encrypted data is requested. Note that it can take up to 5 minutes for this operation to take effect.

        :param self:
        :param logGroupName:  The name of the log group.<br/>
        :return:         """
        pass

    def filter_log_events(self, logGroupName: str, logStreamNames: List[LogStreamName]=None, logStreamNamePrefix: str=None, startTime: Timestamp=None, endTime: Timestamp=None, filterPattern: str=None, nextToken: str=None, limit: int=None, interleaved: Interleaved=None) -> FilterLogEventsResponse:
        r"""Lists log events from the specified log group. You can list all the log events or filter the results using a filter pattern, a time range, and the name of the log stream. By default, this operation returns as many log events as can fit in 1 MB (up to 10,000 log events) or all the events found within the time range that you specify. If the results include a token, then there are more log events available, and you can get additional results by specifying the token in a subsequent call. This operation can return empty results while there are more log events available through the token. The returned log events are sorted by event timestamp, the timestamp when the event was ingested by CloudWatch Logs, and the ID of the <code>PutLogEvents</code> request.

        :param self:
        :param interleaved:  If the value is true, the operation makes a best effort to provide responses that contain events from multiple log streams within the log group, interleaved in a single response. If the value is false, all the matched log events in the first log stream are searched first, then those in the next log stream, and so on. The default is false.  <b>Important:</b> Starting on June 17, 2019, this parameter is ignored and the value is assumed to be true. The response from this operation always interleaves events from multiple log streams within a log group.<br/>limit:  The maximum number of events to return. The default is 10,000 events.<br/>nextToken:  The token for the next set of events to return. (You received this token from a previous call.)<br/>filterPattern:  The filter pattern to use. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html">Filter and Pattern Syntax</a>. If not provided, all the events are matched.<br/>endTime:  The end of the time range, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. Events with a timestamp later than this time are not returned.<br/>startTime:  The start of the time range, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. Events with a timestamp before this time are not returned.<br/>logStreamNamePrefix:  Filters the results to include only events from log streams that have names starting with this prefix. If you specify a value for both <code>logStreamNamePrefix</code> and <code>logStreamNames</code>, but the value for <code>logStreamNamePrefix</code> does not match any log stream names specified in <code>logStreamNames</code>, the action returns an <code>InvalidParameterException</code> error.<br/>logStreamNames:  Filters the results to only logs from the log streams in this list. If you specify a value for both <code>logStreamNamePrefix</code> and <code>logStreamNames</code>, the action returns an <code>InvalidParameterException</code> error.<br/>logGroupName:  The name of the log group to search.<br/>
        :return: nextToken:  The token to use when requesting the next set of items. The token expires after 24 hours.<br/>searchedLogStreams:   <b>IMPORTANT</b> Starting on May 15, 2020, this parameter will be deprecated. This parameter will be an empty list after the deprecation occurs. Indicates which log streams have been searched and whether each has been searched completely.<br/>events:  The matched events.<br/>        """
        pass

    def get_log_events(self, logStreamName: str, logGroupName: str, startTime: Timestamp=None, endTime: Timestamp=None, nextToken: str=None, limit: int=None, startFromHead: StartFromHead=None) -> GetLogEventsResponse:
        r"""Lists log events from the specified log stream. You can list all of the log events or filter using a time range. By default, this operation returns as many log events as can fit in a response size of 1MB (up to 10,000 log events). You can get additional log events by specifying one of the tokens in a subsequent call. This operation can return empty results while there are more log events available through the token.

        :param self:
        :param startFromHead:  If the value is true, the earliest log events are returned first. If the value is false, the latest log events are returned first. The default value is false. If you are using <code>nextToken</code> in this operation, you must specify <code>true</code> for <code>startFromHead</code>.<br/>limit:  The maximum number of log events returned. If you don't specify a value, the maximum is as many log events as can fit in a response size of 1 MB, up to 10,000 log events.<br/>nextToken:  The token for the next set of items to return. (You received this token from a previous call.) Using this token works only when you specify <code>true</code> for <code>startFromHead</code>.<br/>endTime:  The end of the time range, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. Events with a timestamp equal to or later than this time are not included.<br/>startTime:  The start of the time range, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. Events with a timestamp equal to this time or later than this time are included. Events with a timestamp earlier than this time are not included.<br/>logStreamName:  The name of the log stream.<br/>logGroupName:  The name of the log group.<br/>
        :return: nextBackwardToken:  The token for the next set of items in the backward direction. The token expires after 24 hours. This token is never null. If you have reached the end of the stream, it returns the same token you passed in.<br/>nextForwardToken:  The token for the next set of items in the forward direction. The token expires after 24 hours. If you have reached the end of the stream, it returns the same token you passed in.<br/>events:  The events.<br/>        """
        pass

    def get_log_group_fields(self, logGroupName: str, time: Timestamp=None) -> GetLogGroupFieldsResponse:
        r"""Returns a list of the fields that are included in log events in the specified log group, along with the percentage of log events that contain each field. The search is limited to a time period that you specify. In the results, fields that start with @ are fields generated by CloudWatch Logs. For example, <code>@timestamp</code> is the timestamp of each log event. For more information about the fields that are generated by CloudWatch logs, see <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_AnalyzeLogData-discoverable-fields.html">Supported Logs and Discovered Fields</a>. The response results are sorted by the frequency percentage, starting with the highest percentage.

        :param self:
        :param time:  The time to set as the center of the query. If you specify <code>time</code>, the 15 minutes before this time are queries. If you omit <code>time</code> the 8 minutes before and 8 minutes after this time are searched. The <code>time</code> value is specified as epoch time, the number of seconds since January 1, 1970, 00:00:00 UTC.<br/>logGroupName:  The name of the log group to search.<br/>
        :return: logGroupFields:  The array of fields found in the query. Each object in the array contains the name of the field, along with the percentage of time it appeared in the log events that were queried.<br/>        """
        pass

    def get_log_record(self, logRecordPointer: str) -> GetLogRecordResponse:
        r"""Retrieves all of the fields and values of a single log event. All fields are retrieved, even if the original query that produced the <code>logRecordPointer</code> retrieved only a subset of fields. Fields are returned as field name/field value pairs. The full unparsed log event is returned within <code>@message</code>.

        :param self:
        :param logRecordPointer:  The pointer corresponding to the log event record you want to retrieve. You get this from the response of a <code>GetQueryResults</code> operation. In that response, the value of the <code>@ptr</code> field for a log event is the value to use as <code>logRecordPointer</code> to retrieve that complete log event record.<br/>
        :return: logRecord:  The requested log event, as a JSON string.<br/>        """
        pass

    def get_query_results(self, queryId: str) -> GetQueryResultsResponse:
        r"""Returns the results from the specified query. Only the fields requested in the query are returned, along with a <code>@ptr</code> field, which is the identifier for the log record. You can use the value of <code>@ptr</code> in a <a href="https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_GetLogRecord.html">GetLogRecord</a> operation to get the full log record.  <code>GetQueryResults</code> does not start a query execution. To run a query, use <a href="https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_StartQuery.html">StartQuery</a>. If the value of the <code>Status</code> field in the output is <code>Running</code>, this operation returns only partial results. If you see a value of <code>Scheduled</code> or <code>Running</code> for the status, you can retry the operation later to see the final results. 

        :param self:
        :param queryId:  The ID number of the query.<br/>
        :return: status:  The status of the most recent running of the query. Possible values are <code>Cancelled</code>, <code>Complete</code>, <code>Failed</code>, <code>Running</code>, <code>Scheduled</code>, <code>Timeout</code>, and <code>Unknown</code>. Queries time out after 15 minutes of execution. To avoid having your queries time out, reduce the time range being searched or partition your query into a number of queries.<br/>statistics:  Includes the number of log events scanned by the query, the number of log events that matched the query criteria, and the total number of bytes in the log events that were scanned. These values reflect the full raw results of the query.:<br/>results:  The log events that matched the query criteria during the most recent time it ran. The <code>results</code> value is an array of arrays. Each log event is one object in the top-level array. Each of these log event objects is an array of <code>field</code>/<code>value</code> pairs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>bytesScanned</i> The total number of bytes in the log events scanned during the query.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>recordsScanned</i> The total number of log events scanned during the query.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>recordsMatched</i> The number of log events that matched the query string.<br/>        """
        pass

    def list_tags_log_group(self, logGroupName: str) -> ListTagsLogGroupResponse:
        r"""Lists the tags for the specified log group.

        :param self:
        :param logGroupName:  The name of the log group.<br/>
        :return: tags:  The tags for the log group.<br/>        """
        pass

    def put_destination(self, roleArn: str, targetArn: str, destinationName: str) -> PutDestinationResponse:
        r"""Creates or updates a destination. This operation is used only to create destinations for cross-account subscriptions. A destination encapsulates a physical resource (such as an Amazon Kinesis stream) and enables you to subscribe to a real-time stream of log events for a different account, ingested using <a href="https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutLogEvents.html">PutLogEvents</a>. Through an access policy, a destination controls what is written to it. By default, <code>PutDestination</code> does not set any access policy with the destination, which means a cross-account user cannot call <a href="https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutSubscriptionFilter.html">PutSubscriptionFilter</a> against this destination. To enable this, the destination owner must call <a href="https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutDestinationPolicy.html">PutDestinationPolicy</a> after <code>PutDestination</code>. To perform a <code>PutDestination</code> operation, you must also have the <code>iam:PassRole</code> permission.

        :param self:
        :param roleArn:  The ARN of an IAM role that grants CloudWatch Logs permissions to call the Amazon Kinesis <code>PutRecord</code> operation on the destination stream.<br/>targetArn:  The ARN of an Amazon Kinesis stream to which to deliver matching log events.<br/>destinationName:  A name for the destination.<br/>
        :return: destination:  The destination.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationTime</i> The creation time of the destination, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The ARN of this destination.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>accessPolicy</i> An IAM policy document that governs which AWS accounts can create subscription filters against this destination.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>roleArn</i> A role for impersonation, used when delivering log events to the target.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>targetArn</i> The Amazon Resource Name (ARN) of the physical target where the log events are delivered (for example, a Kinesis stream).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>destinationName</i> The name of the destination.<br/>        """
        pass

    def put_destination_policy(self, accessPolicy: str, destinationName: str):
        r"""Creates or updates an access policy associated with an existing destination. An access policy is an <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/policies_overview.html">IAM policy document</a> that is used to authorize claims to register a subscription filter against a given destination. If multiple AWS accounts are sending logs to this destination, each sender account must be listed separately in the policy. The policy does not support specifying <code>*</code> as the Principal or the use of the <code>aws:PrincipalOrgId</code> global key.

        :param self:
        :param accessPolicy:  An IAM policy document that authorizes cross-account users to deliver their log events to the associated destination. This can be up to 5120 bytes.<br/>destinationName:  A name for an existing destination.<br/>
        :return:         """
        pass

    def put_log_events(self, logEvents: List[InputLogEvent], logStreamName: str, logGroupName: str, sequenceToken: str=None) -> PutLogEventsResponse:
        r"""Uploads a batch of log events to the specified log stream. You must include the sequence token obtained from the response of the previous call. An upload in a newly created log stream does not require a sequence token. You can also get the sequence token in the <code>expectedSequenceToken</code> field from <code>InvalidSequenceTokenException</code>. If you call <code>PutLogEvents</code> twice within a narrow time period using the same value for <code>sequenceToken</code>, both calls might be successful or one might be rejected. The batch of events must satisfy the following constraints: <ul> <li> The maximum batch size is 1,048,576 bytes. This size is calculated as the sum of all event messages in UTF-8, plus 26 bytes for each log event. </li> <li> None of the log events in the batch can be more than 2 hours in the future. </li> <li> None of the log events in the batch can be older than 14 days or older than the retention period of the log group. </li> <li> The log events in the batch must be in chronological order by their timestamp. The timestamp is the time the event occurred, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. (In AWS Tools for PowerShell and the AWS SDK for .NET, the timestamp is specified in .NET format: yyyy-mm-ddThh:mm:ss. For example, 2017-09-15T13:45:30.)  </li> <li> A batch of log events in a single request cannot span more than 24 hours. Otherwise, the operation fails. </li> <li> The maximum number of log events in a batch is 10,000. </li> <li> There is a quota of 5 requests per second per log stream. Additional requests are throttled. This quota can't be changed. </li> </ul> If a call to <code>PutLogEvents</code> returns "UnrecognizedClientException" the most likely cause is an invalid AWS access key ID or secret key. 

        :param self:
        :param sequenceToken:  The sequence token obtained from the response of the previous <code>PutLogEvents</code> call. An upload in a newly created log stream does not require a sequence token. You can also get the sequence token using <a href="https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DescribeLogStreams.html">DescribeLogStreams</a>. If you call <code>PutLogEvents</code> twice within a narrow time period using the same value for <code>sequenceToken</code>, both calls might be successful or one might be rejected.<br/>logEvents:  The log events.<br/>logStreamName:  The name of the log stream.<br/>logGroupName:  The name of the log group.<br/>
        :return: rejectedLogEventsInfo:  The rejected events.:<br/>nextSequenceToken:  The next sequence token.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>expiredLogEventEndIndex</i> The expired log events.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tooOldLogEventEndIndex</i> The log events that are too old.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tooNewLogEventStartIndex</i> The log events that are too new.<br/>        """
        pass

    def put_metric_filter(self, metricTransformations: List[MetricTransformation], filterPattern: str, filterName: str, logGroupName: str):
        r"""Creates or updates a metric filter and associates it with the specified log group. Metric filters allow you to configure rules to extract metric data from log events ingested through <a href="https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutLogEvents.html">PutLogEvents</a>. The maximum number of metric filters that can be associated with a log group is 100. When you create a metric filter, you can also optionally assign a unit and dimensions to the metric that is created. <important> Metrics extracted from log events are charged as custom metrics. To prevent unexpected high charges, do not specify high-cardinality fields such as <code>IPAddress</code> or <code>requestID</code> as dimensions. Each different value found for a dimension is treated as a separate metric and accrues charges as a separate custom metric.  To help prevent accidental high charges, Amazon disables a metric filter if it generates 1000 different name/value pairs for the dimensions that you have specified within a certain amount of time. You can also set up a billing alarm to alert you if your charges are higher than expected. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/monitor_estimated_charges_with_cloudwatch.html"> Creating a Billing Alarm to Monitor Your Estimated AWS Charges</a>.  </important>

        :param self:
        :param metricTransformations:  A collection of information that defines how metric data gets emitted.<br/>filterPattern:  A filter pattern for extracting metric data out of ingested log events.<br/>filterName:  A name for the metric filter.<br/>logGroupName:  The name of the log group.<br/>
        :return:         """
        pass

    def put_query_definition(self, queryString: str, name: str, queryDefinitionId: str=None, logGroupNames: List[LogGroupName]=None) -> PutQueryDefinitionResponse:
        r"""Creates or updates a query definition for CloudWatch Logs Insights. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AnalyzingLogData.html">Analyzing Log Data with CloudWatch Logs Insights</a>. To update a query definition, specify its <code>queryDefinitionId</code> in your request. The values of <code>name</code>, <code>queryString</code>, and <code>logGroupNames</code> are changed to the values that you specify in your update operation. No current values are retained from the current query definition. For example, if you update a current query definition that includes log groups, and you don't specify the <code>logGroupNames</code> parameter in your update operation, the query definition changes to contain no log groups. You must have the <code>logs:PutQueryDefinition</code> permission to be able to perform this operation.

        :param self:
        :param queryString:  The query string to use for this definition. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax.html">CloudWatch Logs Insights Query Syntax</a>.<br/>logGroupNames:  Use this parameter to include specific log groups as part of your query definition. If you are updating a query definition and you omit this parameter, then the updated definition will contain no log groups.<br/>queryDefinitionId:  If you are updating a query definition, use this parameter to specify the ID of the query definition that you want to update. You can use <a href="https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DescribeQueryDefinitions.html">DescribeQueryDefinitions</a> to retrieve the IDs of your saved query definitions. If you are creating a query definition, do not specify this parameter. CloudWatch generates a unique ID for the new query definition and include it in the response to this operation.<br/>name:  A name for the query definition. If you are saving a lot of query definitions, we recommend that you name them so that you can easily find the ones you want by using the first part of the name as a filter in the <code>queryDefinitionNamePrefix</code> parameter of <a href="https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DescribeQueryDefinitions.html">DescribeQueryDefinitions</a>.<br/>
        :return: queryDefinitionId:  The ID of the query definition.<br/>        """
        pass

    def put_resource_policy(self, policyName: str=None, policyDocument: str=None) -> PutResourcePolicyResponse:
        r"""Creates or updates a resource policy allowing other AWS services to put log events to this account, such as Amazon Route 53. An account can have up to 10 resource policies per AWS Region.

        :param self:
        :param policyDocument:  Details of the new policy, including the identity of the principal that is enabled to put logs to this account. This is formatted as a JSON string. This parameter is required. The following example creates a resource policy enabling the Route 53 service to put DNS query logs in to the specified log group. Replace <code>"logArn"</code> with the ARN of your CloudWatch Logs resource, such as a log group or log stream.  <code>{ "Version": "2012-10-17", "Statement": [ { "Sid": "Route53LogsToCloudWatchLogs", "Effect": "Allow", "Principal": { "Service": [ "route53.amazonaws.com" ] }, "Action":"logs:PutLogEvents", "Resource": "logArn" } ] } </code> <br/>policyName:  Name of the new policy. This parameter is required.<br/>
        :return: resourcePolicy:  The new policy.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedTime</i> Timestamp showing when this policy was last updated, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>policyDocument</i> The details of the policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>policyName</i> The name of the resource policy.<br/>        """
        pass

    def put_retention_policy(self, retentionInDays: int, logGroupName: str):
        r"""Sets the retention of the specified log group. A retention policy allows you to configure the number of days for which to retain log events in the specified log group.

        :param self:
        :param retentionInDays:  The number of days to retain the log events in the specified log group. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1827, and 3653. If you omit <code>retentionInDays</code> in a <code>PutRetentionPolicy</code> operation, the events in the log group are always retained and never expire.<br/>logGroupName:  The name of the log group.<br/>
        :return:         """
        pass

    def put_subscription_filter(self, destinationArn: str, filterPattern: str, filterName: str, logGroupName: str, roleArn: str=None, distribution: str=None):
        r"""Creates or updates a subscription filter and associates it with the specified log group. Subscription filters allow you to subscribe to a real-time stream of log events ingested through <a href="https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutLogEvents.html">PutLogEvents</a> and have them delivered to a specific destination. When log events are sent to the receiving service, they are Base64 encoded and compressed with the gzip format. The following destinations are supported for subscription filters: <ul> <li> An Amazon Kinesis stream belonging to the same account as the subscription filter, for same-account delivery. </li> <li> A logical destination that belongs to a different account, for cross-account delivery. </li> <li> An Amazon Kinesis Firehose delivery stream that belongs to the same account as the subscription filter, for same-account delivery. </li> <li> An AWS Lambda function that belongs to the same account as the subscription filter, for same-account delivery. </li> </ul> Each log group can have up to two subscription filters associated with it. If you are updating an existing filter, you must specify the correct name in <code>filterName</code>.  To perform a <code>PutSubscriptionFilter</code> operation, you must also have the <code>iam:PassRole</code> permission.

        :param self:
        :param distribution:  The method used to distribute log data to the destination. By default, log data is grouped by log stream, but the grouping can be set to random for a more even distribution. This property is only applicable when the destination is an Amazon Kinesis stream. <br/>roleArn:  The ARN of an IAM role that grants CloudWatch Logs permissions to deliver ingested log events to the destination stream. You don't need to provide the ARN when you are working with a logical destination for cross-account delivery.<br/>destinationArn:  The ARN of the destination to deliver matching log events to. Currently, the supported destinations are: <ul> <li> An Amazon Kinesis stream belonging to the same account as the subscription filter, for same-account delivery. </li> <li> A logical destination (specified using an ARN) belonging to a different account, for cross-account delivery. If you are setting up a cross-account subscription, the destination must have an IAM policy associated with it that allows the sender to send logs to the destination. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutDestinationPolicy.html">PutDestinationPolicy</a>. </li> <li> An Amazon Kinesis Firehose delivery stream belonging to the same account as the subscription filter, for same-account delivery. </li> <li> An AWS Lambda function belonging to the same account as the subscription filter, for same-account delivery. </li> </ul><br/>filterPattern:  A filter pattern for subscribing to a filtered stream of log events.<br/>filterName:  A name for the subscription filter. If you are updating an existing filter, you must specify the correct name in <code>filterName</code>. To find the name of the filter currently associated with a log group, use <a href="https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DescribeSubscriptionFilters.html">DescribeSubscriptionFilters</a>.<br/>logGroupName:  The name of the log group.<br/>
        :return:         """
        pass

    def start_query(self, queryString: str, endTime: Timestamp, startTime: Timestamp, logGroupName: str=None, logGroupNames: List[LogGroupName]=None, limit: int=None) -> StartQueryResponse:
        r"""Schedules a query of a log group using CloudWatch Logs Insights. You specify the log group and time range to query and the query string to use. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax.html">CloudWatch Logs Insights Query Syntax</a>. Queries time out after 15 minutes of execution. If your queries are timing out, reduce the time range being searched or partition your query into a number of queries.

        :param self:
        :param limit:  The maximum number of log events to return in the query. If the query string uses the <code>fields</code> command, only the specified fields and their values are returned. The default is 1000.<br/>queryString:  The query string to use. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax.html">CloudWatch Logs Insights Query Syntax</a>.<br/>endTime:  The end of the time range to query. The range is inclusive, so the specified end time is included in the query. Specified as epoch time, the number of seconds since January 1, 1970, 00:00:00 UTC.<br/>startTime:  The beginning of the time range to query. The range is inclusive, so the specified start time is included in the query. Specified as epoch time, the number of seconds since January 1, 1970, 00:00:00 UTC.<br/>logGroupNames:  The list of log groups to be queried. You can include up to 20 log groups. A <code>StartQuery</code> operation must include a <code>logGroupNames</code> or a <code>logGroupName</code> parameter, but not both.<br/>logGroupName:  The log group on which to perform the query. A <code>StartQuery</code> operation must include a <code>logGroupNames</code> or a <code>logGroupName</code> parameter, but not both.<br/>
        :return: queryId:  The unique ID of the query. <br/>        """
        pass

    def stop_query(self, queryId: str) -> StopQueryResponse:
        r"""Stops a CloudWatch Logs Insights query that is in progress. If the query has already ended, the operation returns an error indicating that the specified query is not running.

        :param self:
        :param queryId:  The ID number of the query to stop. To find this ID number, use <code>DescribeQueries</code>.<br/>
        :return: success:  This is true if the query was stopped by the <code>StopQuery</code> operation.<br/>        """
        pass

    def tag_log_group(self, tags: Tags, logGroupName: str):
        r"""Adds or updates the specified tags for the specified log group. To list the tags for a log group, use <a href="https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_ListTagsLogGroup.html">ListTagsLogGroup</a>. To remove tags, use <a href="https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_UntagLogGroup.html">UntagLogGroup</a>. For more information about tags, see <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html#log-group-tagging">Tag Log Groups in Amazon CloudWatch Logs</a> in the <i>Amazon CloudWatch Logs User Guide</i>.

        :param self:
        :param tags:  The key-value pairs to use for the tags.<br/>logGroupName:  The name of the log group.<br/>
        :return:         """
        pass

    def test_metric_filter(self, logEventMessages: List[EventMessage], filterPattern: str) -> TestMetricFilterResponse:
        r"""Tests the filter pattern of a metric filter against a sample of log event messages. You can use this operation to validate the correctness of a metric filter pattern.

        :param self:
        :param logEventMessages:  The log event messages to test.<br/>filterPattern:  A symbolic description of how CloudWatch Logs should interpret the data in each log event. For example, a log event can contain timestamps, IP addresses, strings, and so on. You use the filter pattern to specify what to look for in the log event message.<br/>
        :return: matches:  The matched events.<br/>        """
        pass

    def untag_log_group(self, tags: List[TagKey], logGroupName: str):
        r"""Removes the specified tags from the specified log group. To list the tags for a log group, use <a href="https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_ListTagsLogGroup.html">ListTagsLogGroup</a>. To add tags, use <a href="https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_TagLogGroup.html">TagLogGroup</a>.

        :param self:
        :param tags:  The tag keys. The corresponding tags are removed from the log group.<br/>logGroupName:  The name of the log group.<br/>
        :return:         """
        pass





class LookoutEquipment(BaseClient):
    r"""Amazon Lookout for Equipment is a machine learning service that uses advanced analytics to identify anomalies in machines from sensor data for use in predictive maintenance. """




    class CreateDatasetRequest(Mapping):
        pass
    
    class CreateDatasetResponse(Mapping):
        pass
    
    class DatasetSchema(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class CreateInferenceSchedulerRequest(Mapping):
        pass
    
    class CreateInferenceSchedulerResponse(Mapping):
        pass
    
    class DataDelayOffsetInMinutes(object):
        pass
    
    class InferenceInputConfiguration(Mapping):
        pass
    
    class InferenceOutputConfiguration(Mapping):
        pass
    
    class CreateModelRequest(Mapping):
        pass
    
    class CreateModelResponse(Mapping):
        pass
    
    class LabelsInputConfiguration(Mapping):
        pass
    
    class Timestamp(object):
        pass
    
    class DataPreProcessingConfiguration(Mapping):
        pass
    
    class DeleteDatasetRequest(Mapping):
        pass
    
    class DeleteInferenceSchedulerRequest(Mapping):
        pass
    
    class DeleteModelRequest(Mapping):
        pass
    
    class DescribeDataIngestionJobRequest(Mapping):
        pass
    
    class DescribeDataIngestionJobResponse(Mapping):
        pass
    
    class DescribeDatasetRequest(Mapping):
        pass
    
    class DescribeDatasetResponse(Mapping):
        pass
    
    class DescribeInferenceSchedulerRequest(Mapping):
        pass
    
    class DescribeInferenceSchedulerResponse(Mapping):
        pass
    
    class DescribeModelRequest(Mapping):
        pass
    
    class DescribeModelResponse(Mapping):
        pass
    
    class ListDataIngestionJobsRequest(Mapping):
        pass
    
    class ListDataIngestionJobsResponse(Mapping):
        pass
    
    class ListDatasetsRequest(Mapping):
        pass
    
    class ListDatasetsResponse(Mapping):
        pass
    
    class ListInferenceExecutionsRequest(Mapping):
        pass
    
    class ListInferenceExecutionsResponse(Mapping):
        pass
    
    class ListInferenceSchedulersRequest(Mapping):
        pass
    
    class ListInferenceSchedulersResponse(Mapping):
        pass
    
    class ListModelsRequest(Mapping):
        pass
    
    class ListModelsResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class StartDataIngestionJobRequest(Mapping):
        pass
    
    class StartDataIngestionJobResponse(Mapping):
        pass
    
    class IngestionInputConfiguration(Mapping):
        pass
    
    class StartInferenceSchedulerRequest(Mapping):
        pass
    
    class StartInferenceSchedulerResponse(Mapping):
        pass
    
    class StopInferenceSchedulerRequest(Mapping):
        pass
    
    class StopInferenceSchedulerResponse(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateInferenceSchedulerRequest(Mapping):
        pass
    
    def create_dataset(self, ClientToken: str, DatasetSchema: DatasetSchema, DatasetName: str, ServerSideKmsKeyId: str=None, Tags: List[Tag]=None) -> CreateDatasetResponse:
        r"""Creates a container for a collection of data being ingested for analysis. The dataset contains the metadata describing where the data is and what the data actually looks like. In other words, it contains the location of the data source, the data schema, and other information. A dataset also contains any tags associated with the ingested data. 

        :param self:
        :param Tags:  Any tags associated with the ingested data described in the dataset. <br/>ClientToken:   A unique identifier for the request. If you do not set the client request token, Amazon Lookout for Equipment generates one. <br/>ServerSideKmsKeyId:  Provides the identifier of the AWS KMS customer master key (CMK) used to encrypt dataset data by Amazon Lookout for Equipment. <br/>DatasetSchema:  A JSON description of the data that is in each time series dataset, including names, column names, and data types. :<br/>DatasetName:  The name of the dataset being created. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InlineDataSchema</i>  <br/>
        :return: Status:  Indicates the status of the <code>CreateDataset</code> operation. <br/>DatasetArn:   The Amazon Resource Name (ARN) of the dataset being created. <br/>DatasetName:  The name of the dataset being created. <br/>        """
        pass

    def create_inference_scheduler(self, ClientToken: str, RoleArn: str, DataOutputConfiguration: InferenceOutputConfiguration, DataInputConfiguration: InferenceInputConfiguration, DataUploadFrequency: str, InferenceSchedulerName: str, ModelName: str, DataDelayOffsetInMinutes: DataDelayOffsetInMinutes=None, ServerSideKmsKeyId: str=None, Tags: List[Tag]=None) -> CreateInferenceSchedulerResponse:
        r""" Creates a scheduled inference. Scheduling an inference is setting up a continuous real-time inference plan to analyze new measurement data. When setting up the schedule, you provide an S3 bucket location for the input data, assign it a delimiter between separate entries in the data, set an offset delay if desired, and set the frequency of inferencing. You must also provide an S3 bucket location for the output data. 

        :param self:
        :param Tags:  Any tags associated with the inference scheduler. <br/>ClientToken:   A unique identifier for the request. If you do not set the client request token, Amazon Lookout for Equipment generates one. <br/>ServerSideKmsKeyId:  Provides the identifier of the AWS KMS customer master key (CMK) used to encrypt inference scheduler data by Amazon Lookout for Equipment. <br/>RoleArn:  The Amazon Resource Name (ARN) of a role with permission to access the data source being used for the inference. <br/>DataOutputConfiguration:  Specifies configuration information for the output results for the inference scheduler, including the S3 location for the output. :<br/>DataInputConfiguration:  Specifies configuration information for the input data for the inference scheduler, including delimiter, format, and dataset location. :<br/>DataUploadFrequency:   How often data is uploaded to the source S3 bucket for the input data. The value chosen is the length of time between data uploads. For instance, if you select 5 minutes, Amazon Lookout for Equipment will upload the real-time data to the source bucket once every 5 minutes. This frequency also determines how often Amazon Lookout for Equipment starts a scheduled inference on your data. In this example, it starts once every 5 minutes. <br/>DataDelayOffsetInMinutes:   A period of time (in minutes) by which inference on the data is delayed after the data starts. For instance, if you select an offset delay time of five minutes, inference will not begin on the data until the first data measurement after the five minute mark. For example, if five minutes is selected, the inference scheduler will wake up at the configured frequency with the additional five minute delay time to check the customer S3 bucket. The customer can upload data at the same frequency and they don't need to stop and restart the scheduler when uploading new data. <br/>InferenceSchedulerName:  The name of the inference scheduler being created. <br/>ModelName:  The name of the previously trained ML model being used to create the inference scheduler. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InferenceInputNameConfiguration</i> &gt; Specifies configuration information for the input data for the inference, including timestamp format and delimiter. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>InferenceInputNameConfiguration</b>: &gt; Specifies configuration information for the input data for the inference, including timestamp format and delimiter. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InputTimeZoneOffset</i> Indicates the difference between your time zone and Greenwich Mean Time (GMT). <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3InputConfiguration</i>  Specifies configuration information for the input data for the inference, including S3 location of input data.. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3InputConfiguration</b>:  Specifies configuration information for the input data for the inference, including S3 location of input data.. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Prefix</i> The prefix for the S3 bucket used for the input data for the inference. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i> The bucket containing the input dataset for the inference. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ComponentTimestampDelimiter</i> Indicates the delimiter character used between items in the data. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TimestampFormat</i> The format of the timestamp, whether Epoch time, or standard, with or without hyphens (-). <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The ID number for the AWS KMS key used to encrypt the inference output. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3OutputConfiguration</i>  Specifies configuration information for the output results from for the inference, output S3 location. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3OutputConfiguration</b>:  Specifies configuration information for the output results from for the inference, output S3 location. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Prefix</i>  The prefix for the S3 bucket used for the output results from the inference. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i>  The bucket containing the output results from the inference <br/>
        :return: Status:  Indicates the status of the <code>CreateInferenceScheduler</code> operation. <br/>InferenceSchedulerName:  The name of inference scheduler being created. <br/>InferenceSchedulerArn:  The Amazon Resource Name (ARN) of the inference scheduler being created. <br/>        """
        pass

    def create_model(self, ClientToken: str, DatasetName: str, ModelName: str, DatasetSchema: DatasetSchema=None, LabelsInputConfiguration: LabelsInputConfiguration=None, TrainingDataStartTime: Timestamp=None, TrainingDataEndTime: Timestamp=None, EvaluationDataStartTime: Timestamp=None, EvaluationDataEndTime: Timestamp=None, RoleArn: str=None, DataPreProcessingConfiguration: DataPreProcessingConfiguration=None, ServerSideKmsKeyId: str=None, Tags: List[Tag]=None) -> CreateModelResponse:
        r"""Creates an ML model for data inference.  A machine-learning (ML) model is a mathematical model that finds patterns in your data. In Amazon Lookout for Equipment, the model learns the patterns of normal behavior and detects abnormal behavior that could be potential equipment failure (or maintenance events). The models are made by analyzing normal data and abnormalities in machine behavior that have already occurred. Your model is trained using a portion of the data from your dataset and uses that data to learn patterns of normal behavior and abnormal patterns that lead to equipment failure. Another portion of the data is used to evaluate the model's accuracy. 

        :param self:
        :param Tags:   Any tags associated with the ML model being created. <br/>ServerSideKmsKeyId:  Provides the identifier of the AWS KMS customer master key (CMK) used to encrypt model data by Amazon Lookout for Equipment. <br/>DataPreProcessingConfiguration:  The configuration is the <code>TargetSamplingRate</code>, which is the sampling rate of the data after post processing by Amazon Lookout for Equipment. For example, if you provide data that has been collected at a 1 second level and you want the system to resample the data at a 1 minute rate before training, the <code>TargetSamplingRate</code> is 1 minute. When providing a value for the <code>TargetSamplingRate</code>, you must attach the prefix "PT" to the rate you want. The value for a 1 second rate is therefore <i>PT1S</i>, the value for a 15 minute rate is <i>PT15M</i>, and the value for a 1 hour rate is <i>PT1H</i> :<br/>RoleArn:   The Amazon Resource Name (ARN) of a role with permission to access the data source being used to create the ML model. <br/>EvaluationDataEndTime:   Indicates the time reference in the dataset that should be used to end the subset of evaluation data for the ML model. <br/>EvaluationDataStartTime:  Indicates the time reference in the dataset that should be used to begin the subset of evaluation data for the ML model. <br/>TrainingDataEndTime:  Indicates the time reference in the dataset that should be used to end the subset of training data for the ML model. <br/>TrainingDataStartTime:  Indicates the time reference in the dataset that should be used to begin the subset of training data for the ML model. <br/>ClientToken:  A unique identifier for the request. If you do not set the client request token, Amazon Lookout for Equipment generates one. <br/>LabelsInputConfiguration:  The input configuration for the labels being used for the ML model that's being created. :<br/>DatasetSchema:  The data schema for the ML model being created. :<br/>DatasetName:  The name of the dataset for the ML model being created. <br/>ModelName:  The name for the ML model to be created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InlineDataSchema</i>  <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3InputConfiguration</i> Contains location information for the S3 location being used for label data. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3InputConfiguration</b>: Contains location information for the S3 location being used for label data. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Prefix</i>  The prefix for the S3 bucket used for the label data. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i> The name of the S3 bucket holding the label data. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetSamplingRate</i> The sampling rate of the data after post processing by Amazon Lookout for Equipment. For example, if you provide data that has been collected at a 1 second level and you want the system to resample the data at a 1 minute rate before training, the <code>TargetSamplingRate</code> is 1 minute. When providing a value for the <code>TargetSamplingRate</code>, you must attach the prefix "PT" to the rate you want. The value for a 1 second rate is therefore <i>PT1S</i>, the value for a 15 minute rate is <i>PT15M</i>, and the value for a 1 hour rate is <i>PT1H</i> <br/>
        :return: Status:  Indicates the status of the <code>CreateModel</code> operation. <br/>ModelArn:  The Amazon Resource Name (ARN) of the model being created. <br/>        """
        pass

    def delete_dataset(self, DatasetName: str):
        r""" Deletes a dataset and associated artifacts. The operation will check to see if any inference scheduler or data ingestion job is currently using the dataset, and if there isn't, the dataset, its metadata, and any associated data stored in S3 will be deleted. This does not affect any models that used this dataset for training and evaluation, but does prevent it from being used in the future. 

        :param self:
        :param DatasetName:  The name of the dataset to be deleted. <br/>
        :return:         """
        pass

    def delete_inference_scheduler(self, InferenceSchedulerName: str):
        r"""Deletes an inference scheduler that has been set up. Already processed output results are not affected. 

        :param self:
        :param InferenceSchedulerName:  The name of the inference scheduler to be deleted. <br/>
        :return:         """
        pass

    def delete_model(self, ModelName: str):
        r"""Deletes an ML model currently available for Amazon Lookout for Equipment. This will prevent it from being used with an inference scheduler, even one that is already set up. 

        :param self:
        :param ModelName:  The name of the ML model to be deleted. <br/>
        :return:         """
        pass

    def describe_data_ingestion_job(self, JobId: str) -> DescribeDataIngestionJobResponse:
        r"""Provides information on a specific data ingestion job such as creation time, dataset ARN, status, and so on. 

        :param self:
        :param JobId:  The job ID of the data ingestion job. <br/>
        :return: FailedReason:  Specifies the reason for failure when a data ingestion job has failed. <br/>Status:  Indicates the status of the <code>DataIngestionJob</code> operation. <br/>CreatedAt:  The time at which the data ingestion job was created. <br/>RoleArn:  The Amazon Resource Name (ARN) of an IAM role with permission to access the data source being ingested. <br/>IngestionInputConfiguration:  Specifies the S3 location configuration for the data input for the data ingestion job. :<br/>DatasetArn:  The Amazon Resource Name (ARN) of the dataset being used in the data ingestion job. <br/>JobId:  Indicates the job ID of the data ingestion job. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3InputConfiguration</i> The location information for the S3 bucket used for input data for the data ingestion. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3InputConfiguration</b>: The location information for the S3 bucket used for input data for the data ingestion. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Prefix</i> The prefix for the S3 location being used for the input data for the data ingestion. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i> The name of the S3 bucket used for the input data for the data ingestion. <br/>        """
        pass

    def describe_dataset(self, DatasetName: str) -> DescribeDatasetResponse:
        r"""Provides information on a specified dataset such as the schema location, status, and so on.

        :param self:
        :param DatasetName:  The name of the dataset to be described. <br/>
        :return: IngestionInputConfiguration:  Specifies the S3 location configuration for the data input for the data ingestion job. :<br/>ServerSideKmsKeyId:  Provides the identifier of the AWS KMS customer master key (CMK) used to encrypt dataset data by Amazon Lookout for Equipment. <br/>Schema:  A JSON description of the data that is in each time series dataset, including names, column names, and data types. <br/>Status:  Indicates the status of the dataset. <br/>LastUpdatedAt:  Specifies the time the dataset was last updated, if it was. <br/>CreatedAt:  Specifies the time the dataset was created in Amazon Lookout for Equipment. <br/>DatasetArn:  The Amazon Resource Name (ARN) of the dataset being described. <br/>DatasetName:  The name of the dataset being described. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3InputConfiguration</i> The location information for the S3 bucket used for input data for the data ingestion. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3InputConfiguration</b>: The location information for the S3 bucket used for input data for the data ingestion. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Prefix</i> The prefix for the S3 location being used for the input data for the data ingestion. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i> The name of the S3 bucket used for the input data for the data ingestion. <br/>        """
        pass

    def describe_inference_scheduler(self, InferenceSchedulerName: str) -> DescribeInferenceSchedulerResponse:
        r""" Specifies information about the inference scheduler being used, including name, model, status, and associated metadata 

        :param self:
        :param InferenceSchedulerName:  The name of the inference scheduler being described. <br/>
        :return: ServerSideKmsKeyId:  Provides the identifier of the AWS KMS customer master key (CMK) used to encrypt inference scheduler data by Amazon Lookout for Equipment. <br/>RoleArn:   The Amazon Resource Name (ARN) of a role with permission to access the data source for the inference scheduler being described. <br/>DataOutputConfiguration:   Specifies information for the output results for the inference scheduler, including the output S3 location. :<br/>DataInputConfiguration:   Specifies configuration information for the input data for the inference scheduler, including delimiter, format, and dataset location. :<br/>UpdatedAt:  Specifies the time at which the inference scheduler was last updated, if it was. <br/>CreatedAt:  Specifies the time at which the inference scheduler was created. <br/>DataUploadFrequency:  Specifies how often data is uploaded to the source S3 bucket for the input data. This value is the length of time between data uploads. For instance, if you select 5 minutes, Amazon Lookout for Equipment will upload the real-time data to the source bucket once every 5 minutes. This frequency also determines how often Amazon Lookout for Equipment starts a scheduled inference on your data. In this example, it starts once every 5 minutes. <br/>DataDelayOffsetInMinutes:   A period of time (in minutes) by which inference on the data is delayed after the data starts. For instance, if you select an offset delay time of five minutes, inference will not begin on the data until the first data measurement after the five minute mark. For example, if five minutes is selected, the inference scheduler will wake up at the configured frequency with the additional five minute delay time to check the customer S3 bucket. The customer can upload data at the same frequency and they don't need to stop and restart the scheduler when uploading new data.<br/>Status:  Indicates the status of the inference scheduler. <br/>InferenceSchedulerArn:  The Amazon Resource Name (ARN) of the inference scheduler being described. <br/>InferenceSchedulerName:  The name of the inference scheduler being described. <br/>ModelName:  The name of the ML model of the inference scheduler being described. <br/>ModelArn:  The Amazon Resource Name (ARN) of the ML model of the inference scheduler being described. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InferenceInputNameConfiguration</i> &gt; Specifies configuration information for the input data for the inference, including timestamp format and delimiter. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>InferenceInputNameConfiguration</b>: &gt; Specifies configuration information for the input data for the inference, including timestamp format and delimiter. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InputTimeZoneOffset</i> Indicates the difference between your time zone and Greenwich Mean Time (GMT). <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3InputConfiguration</i>  Specifies configuration information for the input data for the inference, including S3 location of input data.. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3InputConfiguration</b>:  Specifies configuration information for the input data for the inference, including S3 location of input data.. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Prefix</i> The prefix for the S3 bucket used for the input data for the inference. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i> The bucket containing the input dataset for the inference. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ComponentTimestampDelimiter</i> Indicates the delimiter character used between items in the data. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TimestampFormat</i> The format of the timestamp, whether Epoch time, or standard, with or without hyphens (-). <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The ID number for the AWS KMS key used to encrypt the inference output. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3OutputConfiguration</i>  Specifies configuration information for the output results from for the inference, output S3 location. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3OutputConfiguration</b>:  Specifies configuration information for the output results from for the inference, output S3 location. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Prefix</i>  The prefix for the S3 bucket used for the output results from the inference. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i>  The bucket containing the output results from the inference <br/>        """
        pass

    def describe_model(self, ModelName: str) -> DescribeModelResponse:
        r"""Provides overall information about a specific ML model, including model name and ARN, dataset, training and evaluation information, status, and so on. 

        :param self:
        :param ModelName:  The name of the ML model to be described. <br/>
        :return: ServerSideKmsKeyId:  Provides the identifier of the AWS KMS customer master key (CMK) used to encrypt model data by Amazon Lookout for Equipment. <br/>CreatedAt:  Indicates the time and date at which the ML model was created. <br/>LastUpdatedTime:  Indicates the last time the ML model was updated. The type of update is not specified. <br/>ModelMetrics:  The Model Metrics show an aggregated summary of the model's performance within the evaluation time range. This is the JSON content of the metrics created when evaluating the model. <br/>FailedReason:  If the training of the ML model failed, this indicates the reason for that failure. <br/>TrainingExecutionEndTime:  Indicates the time at which the training of the ML model was completed. <br/>TrainingExecutionStartTime:  Indicates the time at which the training of the ML model began. <br/>Status:  Specifies the current status of the model being described. Status describes the status of the most recent action of the model. <br/>DataPreProcessingConfiguration:  The configuration is the <code>TargetSamplingRate</code>, which is the sampling rate of the data after post processing by Amazon Lookout for Equipment. For example, if you provide data that has been collected at a 1 second level and you want the system to resample the data at a 1 minute rate before training, the <code>TargetSamplingRate</code> is 1 minute. When providing a value for the <code>TargetSamplingRate</code>, you must attach the prefix "PT" to the rate you want. The value for a 1 second rate is therefore <i>PT1S</i>, the value for a 15 minute rate is <i>PT15M</i>, and the value for a 1 hour rate is <i>PT1H</i> :<br/>RoleArn:   The Amazon Resource Name (ARN) of a role with permission to access the data source for the ML model being described. <br/>EvaluationDataEndTime:   Indicates the time reference in the dataset that was used to end the subset of evaluation data for the ML model. <br/>EvaluationDataStartTime:   Indicates the time reference in the dataset that was used to begin the subset of evaluation data for the ML model. <br/>TrainingDataEndTime:   Indicates the time reference in the dataset that was used to end the subset of training data for the ML model. <br/>TrainingDataStartTime:   Indicates the time reference in the dataset that was used to begin the subset of training data for the ML model. <br/>LabelsInputConfiguration:  Specifies configuration information about the labels input, including its S3 location. :<br/>Schema:  A JSON description of the data that is in each time series dataset, including names, column names, and data types. <br/>DatasetArn:  The Amazon Resouce Name (ARN) of the dataset used to create the ML model being described. <br/>DatasetName:  The name of the dataset being used by the ML being described. <br/>ModelArn:  The Amazon Resource Name (ARN) of the ML model being described. <br/>ModelName:  The name of the ML model being described. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3InputConfiguration</i> Contains location information for the S3 location being used for label data. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3InputConfiguration</b>: Contains location information for the S3 location being used for label data. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Prefix</i>  The prefix for the S3 bucket used for the label data. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i> The name of the S3 bucket holding the label data. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetSamplingRate</i> The sampling rate of the data after post processing by Amazon Lookout for Equipment. For example, if you provide data that has been collected at a 1 second level and you want the system to resample the data at a 1 minute rate before training, the <code>TargetSamplingRate</code> is 1 minute. When providing a value for the <code>TargetSamplingRate</code>, you must attach the prefix "PT" to the rate you want. The value for a 1 second rate is therefore <i>PT1S</i>, the value for a 15 minute rate is <i>PT15M</i>, and the value for a 1 hour rate is <i>PT1H</i> <br/>        """
        pass

    def list_data_ingestion_jobs(self, DatasetName: str=None, NextToken: str=None, MaxResults: int=None, Status: str=None) -> ListDataIngestionJobsResponse:
        r"""Provides a list of all data ingestion jobs, including dataset name and ARN, S3 location of the input data, status, and so on. 

        :param self:
        :param Status:  Indicates the status of the data ingestion job. <br/>MaxResults:   Specifies the maximum number of data ingestion jobs to list. <br/>NextToken:   An opaque pagination token indicating where to continue the listing of data ingestion jobs. <br/>DatasetName:  The name of the dataset being used for the data ingestion job. <br/>
        :return: DataIngestionJobSummaries:  Specifies information about the specific data ingestion job, including dataset name and status. <br/>NextToken:   An opaque pagination token indicating where to continue the listing of data ingestion jobs. <br/>        """
        pass

    def list_datasets(self, NextToken: str=None, MaxResults: int=None, DatasetNameBeginsWith: str=None) -> ListDatasetsResponse:
        r"""Lists all datasets currently available in your account, filtering on the dataset name. 

        :param self:
        :param DatasetNameBeginsWith:  The beginning of the name of the datasets to be listed. <br/>MaxResults:   Specifies the maximum number of datasets to list. <br/>NextToken:   An opaque pagination token indicating where to continue the listing of datasets. <br/>
        :return: DatasetSummaries:  Provides information about the specified dataset, including creation time, dataset ARN, and status. <br/>NextToken:   An opaque pagination token indicating where to continue the listing of datasets. <br/>        """
        pass

    def list_inference_executions(self, InferenceSchedulerName: str, NextToken: str=None, MaxResults: int=None, DataStartTimeAfter: Timestamp=None, DataEndTimeBefore: Timestamp=None, Status: str=None) -> ListInferenceExecutionsResponse:
        r""" Lists all inference executions that have been performed by the specified inference scheduler. 

        :param self:
        :param Status:  The status of the inference execution. <br/>DataEndTimeBefore:  The time reference in the inferenced dataset before which Amazon Lookout for Equipment stopped the inference execution. <br/>DataStartTimeAfter:  The time reference in the inferenced dataset after which Amazon Lookout for Equipment started the inference execution. <br/>InferenceSchedulerName:  The name of the inference scheduler for the inference execution listed. <br/>MaxResults:  Specifies the maximum number of inference executions to list. <br/>NextToken:  An opaque pagination token indicating where to continue the listing of inference executions.<br/>
        :return: InferenceExecutionSummaries:  Provides an array of information about the individual inference executions returned from the <code>ListInferenceExecutions</code> operation, including model used, inference scheduler, data configuration, and so on. <br/>NextToken:   An opaque pagination token indicating where to continue the listing of inference executions. <br/>        """
        pass

    def list_inference_schedulers(self, NextToken: str=None, MaxResults: int=None, InferenceSchedulerNameBeginsWith: str=None, ModelName: str=None) -> ListInferenceSchedulersResponse:
        r"""Retrieves a list of all inference schedulers currently available for your account. 

        :param self:
        :param ModelName:  The name of the ML model used by the inference scheduler to be listed. <br/>InferenceSchedulerNameBeginsWith:  The beginning of the name of the inference schedulers to be listed. <br/>MaxResults:   Specifies the maximum number of inference schedulers to list. <br/>NextToken:   An opaque pagination token indicating where to continue the listing of inference schedulers. <br/>
        :return: InferenceSchedulerSummaries:  Provides information about the specified inference scheduler, including data upload frequency, model name and ARN, and status. <br/>NextToken:   An opaque pagination token indicating where to continue the listing of inference schedulers. <br/>        """
        pass

    def list_models(self, NextToken: str=None, MaxResults: int=None, Status: str=None, ModelNameBeginsWith: str=None, DatasetNameBeginsWith: str=None) -> ListModelsResponse:
        r"""Generates a list of all models in the account, including model name and ARN, dataset, and status. 

        :param self:
        :param DatasetNameBeginsWith:  The beginning of the name of the dataset of the ML models to be listed. <br/>ModelNameBeginsWith:  The beginning of the name of the ML models being listed. <br/>Status:  The status of the ML model. <br/>MaxResults:   Specifies the maximum number of ML models to list. <br/>NextToken:   An opaque pagination token indicating where to continue the listing of ML models. <br/>
        :return: ModelSummaries:  Provides information on the specified model, including created time, model and dataset ARNs, and status. <br/>NextToken:   An opaque pagination token indicating where to continue the listing of ML models. <br/>        """
        pass

    def list_tags_for_resource(self, ResourceArn: str) -> ListTagsForResourceResponse:
        r"""Lists all the tags for a specified resource, including key and value. 

        :param self:
        :param ResourceArn:  The Amazon Resource Name (ARN) of the resource (such as the dataset or model) that is the focus of the <code>ListTagsForResource</code> operation. <br/>
        :return: Tags:   Any tags associated with the resource. <br/>        """
        pass

    def start_data_ingestion_job(self, ClientToken: str, RoleArn: str, IngestionInputConfiguration: IngestionInputConfiguration, DatasetName: str) -> StartDataIngestionJobResponse:
        r"""Starts a data ingestion job. Amazon Lookout for Equipment returns the job status. 

        :param self:
        :param ClientToken:   A unique identifier for the request. If you do not set the client request token, Amazon Lookout for Equipment generates one. <br/>RoleArn:   The Amazon Resource Name (ARN) of a role with permission to access the data source for the data ingestion job. <br/>IngestionInputConfiguration:   Specifies information for the input data for the data ingestion job, including dataset S3 location. :<br/>DatasetName:  The name of the dataset being used by the data ingestion job. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3InputConfiguration</i> The location information for the S3 bucket used for input data for the data ingestion. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3InputConfiguration</b>: The location information for the S3 bucket used for input data for the data ingestion. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Prefix</i> The prefix for the S3 location being used for the input data for the data ingestion. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i> The name of the S3 bucket used for the input data for the data ingestion. <br/>
        :return: Status:  Indicates the status of the <code>StartDataIngestionJob</code> operation. <br/>JobId:  Indicates the job ID of the data ingestion job. <br/>        """
        pass

    def start_inference_scheduler(self, InferenceSchedulerName: str) -> StartInferenceSchedulerResponse:
        r"""Starts an inference scheduler. 

        :param self:
        :param InferenceSchedulerName:  The name of the inference scheduler to be started. <br/>
        :return: Status:  Indicates the status of the inference scheduler. <br/>InferenceSchedulerArn:  The Amazon Resource Name (ARN) of the inference scheduler being started. <br/>InferenceSchedulerName:  The name of the inference scheduler being started. <br/>ModelName:  The name of the ML model being used by the inference scheduler. <br/>ModelArn:  The Amazon Resource Name (ARN) of the ML model being used by the inference scheduler. <br/>        """
        pass

    def stop_inference_scheduler(self, InferenceSchedulerName: str) -> StopInferenceSchedulerResponse:
        r"""Stops an inference scheduler. 

        :param self:
        :param InferenceSchedulerName:  The name of the inference scheduler to be stopped. <br/>
        :return: Status:  Indicates the status of the inference scheduler. <br/>InferenceSchedulerArn:  The Amazon Resource Name (ARN) of the inference schedule being stopped. <br/>InferenceSchedulerName:  The name of the inference scheduler being stopped. <br/>ModelName:  The name of the ML model used by the inference scheduler being stopped. <br/>ModelArn:  The Amazon Resource Name (ARN) of the ML model used by the inference scheduler being stopped. <br/>        """
        pass

    def tag_resource(self, Tags: List[Tag], ResourceArn: str) -> TagResourceResponse:
        r"""Associates a given tag to a resource in your account. A tag is a key-value pair which can be added to an Amazon Lookout for Equipment resource as metadata. Tags can be used for organizing your resources as well as helping you to search and filter by tag. Multiple tags can be added to a resource, either when you create it, or later. Up to 50 tags can be associated with each resource. 

        :param self:
        :param Tags:  The tag or tags to be associated with a specific resource. Both the tag key and value are specified. <br/>ResourceArn:  The Amazon Resource Name (ARN) of the specific resource to which the tag should be associated. <br/>
        :return:         """
        pass

    def untag_resource(self, TagKeys: List[TagKey], ResourceArn: str) -> UntagResourceResponse:
        r"""Removes a specific tag from a given resource. The tag is specified by its key. 

        :param self:
        :param TagKeys:  Specifies the key of the tag to be removed from a specified resource. <br/>ResourceArn:  The Amazon Resource Name (ARN) of the resource to which the tag is currently associated. <br/>
        :return:         """
        pass

    def update_inference_scheduler(self, InferenceSchedulerName: str, DataDelayOffsetInMinutes: DataDelayOffsetInMinutes=None, DataUploadFrequency: str=None, DataInputConfiguration: InferenceInputConfiguration=None, DataOutputConfiguration: InferenceOutputConfiguration=None, RoleArn: str=None):
        r"""Updates an inference scheduler. 

        :param self:
        :param RoleArn:   The Amazon Resource Name (ARN) of a role with permission to access the data source for the inference scheduler. <br/>DataOutputConfiguration:   Specifies information for the output results from the inference scheduler, including the output S3 location. :<br/>DataInputConfiguration:   Specifies information for the input data for the inference scheduler, including delimiter, format, and dataset location. :<br/>DataUploadFrequency:  How often data is uploaded to the source S3 bucket for the input data. The value chosen is the length of time between data uploads. For instance, if you select 5 minutes, Amazon Lookout for Equipment will upload the real-time data to the source bucket once every 5 minutes. This frequency also determines how often Amazon Lookout for Equipment starts a scheduled inference on your data. In this example, it starts once every 5 minutes. <br/>DataDelayOffsetInMinutes:  &gt; A period of time (in minutes) by which inference on the data is delayed after the data starts. For instance, if you select an offset delay time of five minutes, inference will not begin on the data until the first data measurement after the five minute mark. For example, if five minutes is selected, the inference scheduler will wake up at the configured frequency with the additional five minute delay time to check the customer S3 bucket. The customer can upload data at the same frequency and they don't need to stop and restart the scheduler when uploading new data.<br/>InferenceSchedulerName:  The name of the inference scheduler to be updated. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InferenceInputNameConfiguration</i> &gt; Specifies configuration information for the input data for the inference, including timestamp format and delimiter. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>InferenceInputNameConfiguration</b>: &gt; Specifies configuration information for the input data for the inference, including timestamp format and delimiter. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InputTimeZoneOffset</i> Indicates the difference between your time zone and Greenwich Mean Time (GMT). <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3InputConfiguration</i>  Specifies configuration information for the input data for the inference, including S3 location of input data.. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3InputConfiguration</b>:  Specifies configuration information for the input data for the inference, including S3 location of input data.. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Prefix</i> The prefix for the S3 bucket used for the input data for the inference. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i> The bucket containing the input dataset for the inference. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ComponentTimestampDelimiter</i> Indicates the delimiter character used between items in the data. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TimestampFormat</i> The format of the timestamp, whether Epoch time, or standard, with or without hyphens (-). <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The ID number for the AWS KMS key used to encrypt the inference output. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3OutputConfiguration</i>  Specifies configuration information for the output results from for the inference, output S3 location. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3OutputConfiguration</b>:  Specifies configuration information for the output results from for the inference, output S3 location. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Prefix</i>  The prefix for the S3 bucket used for the output results from the inference. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i>  The bucket containing the output results from the inference <br/>
        :return:         """
        pass





class LookoutMetrics(BaseClient):
    r"""This is the <i>Amazon Lookout for Metrics API Reference</i>. For an introduction to the service with tutorials for getting started, visit <a href="https://docs.aws.amazon.com/lookoutmetrics/latest/dev">Amazon Lookout for Metrics Developer Guide</a>."""




    class ActivateAnomalyDetectorRequest(Mapping):
        pass
    
    class ActivateAnomalyDetectorResponse(Mapping):
        pass
    
    class BackTestAnomalyDetectorRequest(Mapping):
        pass
    
    class BackTestAnomalyDetectorResponse(Mapping):
        pass
    
    class CreateAlertRequest(Mapping):
        pass
    
    class CreateAlertResponse(Mapping):
        pass
    
    class Action(Mapping):
        pass
    
    class TagMap(object):
        pass
    
    class CreateAnomalyDetectorRequest(Mapping):
        pass
    
    class CreateAnomalyDetectorResponse(Mapping):
        pass
    
    class AnomalyDetectorConfig(Mapping):
        pass
    
    class CreateMetricSetRequest(Mapping):
        pass
    
    class CreateMetricSetResponse(Mapping):
        pass
    
    class Metric(Mapping):
        pass
    
    class TimestampColumn(Mapping):
        pass
    
    class ColumnName(object):
        pass
    
    class MetricSource(Mapping):
        pass
    
    class DeleteAlertRequest(Mapping):
        pass
    
    class DeleteAlertResponse(Mapping):
        pass
    
    class DeleteAnomalyDetectorRequest(Mapping):
        pass
    
    class DeleteAnomalyDetectorResponse(Mapping):
        pass
    
    class DescribeAlertRequest(Mapping):
        pass
    
    class DescribeAlertResponse(Mapping):
        pass
    
    class DescribeAnomalyDetectionExecutionsRequest(Mapping):
        pass
    
    class DescribeAnomalyDetectionExecutionsResponse(Mapping):
        pass
    
    class DescribeAnomalyDetectorRequest(Mapping):
        pass
    
    class DescribeAnomalyDetectorResponse(Mapping):
        pass
    
    class DescribeMetricSetRequest(Mapping):
        pass
    
    class DescribeMetricSetResponse(Mapping):
        pass
    
    class GetAnomalyGroupRequest(Mapping):
        pass
    
    class GetAnomalyGroupResponse(Mapping):
        pass
    
    class GetFeedbackRequest(Mapping):
        pass
    
    class GetFeedbackResponse(Mapping):
        pass
    
    class AnomalyGroupTimeSeries(Mapping):
        pass
    
    class GetSampleDataRequest(Mapping):
        pass
    
    class GetSampleDataResponse(Mapping):
        pass
    
    class SampleDataS3SourceConfig(Mapping):
        pass
    
    class ListAlertsRequest(Mapping):
        pass
    
    class ListAlertsResponse(Mapping):
        pass
    
    class ListAnomalyDetectorsRequest(Mapping):
        pass
    
    class ListAnomalyDetectorsResponse(Mapping):
        pass
    
    class ListAnomalyGroupSummariesRequest(Mapping):
        pass
    
    class ListAnomalyGroupSummariesResponse(Mapping):
        pass
    
    class ListAnomalyGroupTimeSeriesRequest(Mapping):
        pass
    
    class ListAnomalyGroupTimeSeriesResponse(Mapping):
        pass
    
    class ListMetricSetsRequest(Mapping):
        pass
    
    class ListMetricSetsResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class PutFeedbackRequest(Mapping):
        pass
    
    class PutFeedbackResponse(Mapping):
        pass
    
    class AnomalyGroupTimeSeriesFeedback(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateAnomalyDetectorRequest(Mapping):
        pass
    
    class UpdateAnomalyDetectorResponse(Mapping):
        pass
    
    class UpdateMetricSetRequest(Mapping):
        pass
    
    class UpdateMetricSetResponse(Mapping):
        pass
    
    def activate_anomaly_detector(self, AnomalyDetectorArn: str) -> ActivateAnomalyDetectorResponse:
        r"""Activates an anomaly detector.

        :param self:
        :param AnomalyDetectorArn:  The ARN of the anomaly detector.<br/>
        :return:         """
        pass

    def back_test_anomaly_detector(self, AnomalyDetectorArn: str) -> BackTestAnomalyDetectorResponse:
        r"""Runs a backtest for anomaly detection for the specified resource.

        :param self:
        :param AnomalyDetectorArn:  The Amazon Resource Name (ARN) of the anomaly detector.<br/>
        :return:         """
        pass

    def create_alert(self, Action: Action, AnomalyDetectorArn: str, AlertSensitivityThreshold: int, AlertName: str, AlertDescription: str=None, Tags: TagMap=None) -> CreateAlertResponse:
        r"""Creates an alert for an anomaly detector.

        :param self:
        :param Tags:  A list of <a href="https://docs.aws.amazon.com/lookoutmetrics/latest/dev/detectors-tags.html">tags</a> to apply to the alert.<br/>Action:  Action that will be triggered when there is an alert.:<br/>AnomalyDetectorArn:  The ARN of the detector to which the alert is attached.<br/>AlertDescription:  A description of the alert.<br/>AlertSensitivityThreshold:  An integer from 0 to 100 specifying the alert sensitivity threshold.<br/>AlertName:  The name of the alert.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LambdaConfiguration</i> A configuration for an AWS Lambda channel.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>LambdaConfiguration</b>: A configuration for an AWS Lambda channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SNSConfiguration</i> A configuration for an Amazon SNS channel.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SNSConfiguration</b>: A configuration for an Amazon SNS channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SnsTopicArn</i> The ARN of the target SNS topic.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The ARN of the IAM role that has access to the target SNS topic.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LambdaArn</i> The ARN of the Lambda function.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The ARN of an IAM role that has permission to invoke the Lambda function.<br/>
        :return: AlertArn:  The ARN of the alert.<br/>        """
        pass

    def create_anomaly_detector(self, AnomalyDetectorConfig: AnomalyDetectorConfig, AnomalyDetectorName: str, AnomalyDetectorDescription: str=None, KmsKeyArn: str=None, Tags: TagMap=None) -> CreateAnomalyDetectorResponse:
        r"""Creates an anomaly detector.

        :param self:
        :param Tags:  A list of <a href="https://docs.aws.amazon.com/lookoutmetrics/latest/dev/detectors-tags.html">tags</a> to apply to the anomaly detector.<br/>KmsKeyArn:  The ARN of the KMS key to use to encrypt your data.<br/>AnomalyDetectorConfig:  Contains information about the configuration of the anomaly detector.:<br/>AnomalyDetectorDescription:  A description of the detector.<br/>AnomalyDetectorName:  The name of the detector.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AnomalyDetectorFrequency</i> The frequency at which the detector analyzes its source data.<br/>
        :return: AnomalyDetectorArn:  The ARN of the detector.<br/>        """
        pass

    def create_metric_set(self, MetricSource: MetricSource, MetricList: List[Metric], MetricSetName: str, AnomalyDetectorArn: str, MetricSetDescription: str=None, Offset: int=None, TimestampColumn: TimestampColumn=None, DimensionList: List[ColumnName]=None, MetricSetFrequency: str=None, Timezone: str=None, Tags: TagMap=None) -> CreateMetricSetResponse:
        r"""Creates a dataset.

        :param self:
        :param Tags:  A list of <a href="https://docs.aws.amazon.com/lookoutmetrics/latest/dev/detectors-tags.html">tags</a> to apply to the dataset.<br/>Timezone:  The time zone in which your source data was recorded.<br/>MetricSource:  Contains information about how the source data should be interpreted.:<br/>MetricSetFrequency:  The frequency with which the source data will be analyzed for anomalies.<br/>DimensionList:  A list of the fields you want to treat as dimensions.<br/>TimestampColumn:  Contains information about the column used for tracking time in your source data.:<br/>Offset:  After an interval ends, the amount of seconds that the detector waits before importing data. Offset is only supported for S3 and Redshift datasources.<br/>MetricList:  A list of metrics that the dataset will contain.<br/>MetricSetDescription:  A description of the dataset you are creating.<br/>MetricSetName:  The name of the dataset.<br/>AnomalyDetectorArn:  The ARN of the anomaly detector that will use the dataset.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ColumnFormat</i> The format of the timestamp column.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ColumnName</i> The name of the timestamp column.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RedshiftSourceConfig</i> An object containing information about the Amazon Redshift database configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RedshiftSourceConfig</b>: An object containing information about the Amazon Redshift database configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RDSSourceConfig</i> An object containing information about the Amazon Relational Database Service (RDS) configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RDSSourceConfig</b>: An object containing information about the Amazon Relational Database Service (RDS) configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudWatchConfig</i> An object containing information about the Amazon CloudWatch monitoring configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CloudWatchConfig</b>: An object containing information about the Amazon CloudWatch monitoring configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AppFlowConfig</i> An object containing information about the AppFlow configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AppFlowConfig</b>: An object containing information about the AppFlow configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3SourceConfig</i> Contains information about the configuration of the S3 bucket that contains source files.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3SourceConfig</b>: Contains information about the configuration of the S3 bucket that contains source files.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HistoricalDataPathList</i> A list of paths to the historical data files.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TemplatedPathList</i> A list of templated paths to the source files.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The ARN of an IAM role that has read and write access permissions to the source S3 bucket.<br/>Contains information about a source file's formatting.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>FileFormatDescriptor</b>: Contains information about a source file's formatting.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FlowName</i>  name of the flow.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> An IAM role that gives Amazon Lookout for Metrics permission to access the flow.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> An IAM role that gives Amazon Lookout for Metrics permission to access data in Amazon CloudWatch.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The Amazon Resource Name (ARN) of the role.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TableName</i> The name of the table in the database.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> The name of the RDS database.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretManagerArn</i> The Amazon Resource Name (ARN) of the AWS Secrets Manager role.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabasePort</i> The port number where the database can be accessed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseHost</i> The host name of the database.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceIdentifier</i> A string identifying the database instance.<br/>An object containing information about the Amazon Virtual Private Cloud (VPC) configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>VpcConfiguration</b>: An object containing information about the Amazon Virtual Private Cloud (VPC) configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The Amazon Resource Name (ARN) of the role providing access to the database.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TableName</i> The table name of the Redshift database.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> The Redshift database name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretManagerArn</i> The Amazon Resource Name (ARN) of the AWS Secrets Manager role.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabasePort</i> The port number where the database can be accessed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseHost</i> The name of the database host.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterIdentifier</i> A string identifying the Redshift cluster.<br/>Contains information about the Amazon Virtual Private Cloud (VPC) configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>VpcConfiguration</b>: Contains information about the Amazon Virtual Private Cloud (VPC) configuration.
        :return: MetricSetArn:  The ARN of the dataset.<br/>        """
        pass

    def delete_alert(self, AlertArn: str) -> DeleteAlertResponse:
        r"""Deletes an alert.

        :param self:
        :param AlertArn:  The ARN of the alert to delete.<br/>
        :return:         """
        pass

    def delete_anomaly_detector(self, AnomalyDetectorArn: str) -> DeleteAnomalyDetectorResponse:
        r"""Deletes a detector. Deleting an anomaly detector will delete all of its corresponding resources including any configured datasets and alerts.

        :param self:
        :param AnomalyDetectorArn:  The ARN of the detector to delete.<br/>
        :return:         """
        pass

    def describe_alert(self, AlertArn: str) -> DescribeAlertResponse:
        r"""Describes an alert. Amazon Lookout for Metrics API actions are eventually consistent. If you do a read operation on a resource immediately after creating or modifying it, use retries to allow time for the write operation to complete.

        :param self:
        :param AlertArn:  The ARN of the alert to describe.<br/>
        :return: Alert:  Contains information about an alert.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The time at which the alert was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModificationTime</i> The time at which the alert was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AlertStatus</i> The status of the alert.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AlertType</i> The type of the alert.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AlertSensitivityThreshold</i> The minimum severity for an anomaly to trigger the alert.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AlertName</i> The name of the alert.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AnomalyDetectorArn</i> The ARN of the detector to which the alert is attached.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AlertArn</i> The ARN of the alert.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AlertDescription</i> A description of the alert.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Action</i> Action that will be triggered when there is an alert.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Action</b>: Action that will be triggered when there is an alert.<br/>A configuration for an Amazon SNS channel.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SNSConfiguration</b>: A configuration for an Amazon SNS channel.        """
        pass

    def describe_anomaly_detection_executions(self, AnomalyDetectorArn: str, Timestamp: str=None, MaxResults: int=None, NextToken: str=None) -> DescribeAnomalyDetectionExecutionsResponse:
        r"""Returns information about the status of the specified anomaly detection jobs.

        :param self:
        :param NextToken:  Specify the pagination token that's returned by a previous request to retrieve the next page of results.<br/>MaxResults:  The number of items to return in the response.<br/>Timestamp:  The timestamp of the anomaly detection job.<br/>AnomalyDetectorArn:  The Amazon Resource Name (ARN) of the anomaly detector.<br/>
        :return: NextToken:  The pagination token that's included if more results are available.<br/>ExecutionList:  A list of detection jobs.<br/>        """
        pass

    def describe_anomaly_detector(self, AnomalyDetectorArn: str) -> DescribeAnomalyDetectorResponse:
        r"""Describes a detector. Amazon Lookout for Metrics API actions are eventually consistent. If you do a read operation on a resource immediately after creating or modifying it, use retries to allow time for the write operation to complete.

        :param self:
        :param AnomalyDetectorArn:  The ARN of the detector to describe.<br/>
        :return: KmsKeyArn:  The ARN of the KMS key to use to encrypt your data.<br/>FailureReason:  The reason that the detector failed, if any.<br/>Status:  The status of the detector.<br/>LastModificationTime:  The time at which the detector was last modified.<br/>CreationTime:  The time at which the detector was created.<br/>AnomalyDetectorConfig:  Contains information about the detector's configuration.:<br/>AnomalyDetectorDescription:  A description of the detector.<br/>AnomalyDetectorName:  The name of the detector.<br/>AnomalyDetectorArn:  The ARN of the detector.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AnomalyDetectorFrequency</i> The interval at which the detector analyzes its source data.<br/>        """
        pass

    def describe_metric_set(self, MetricSetArn: str) -> DescribeMetricSetResponse:
        r"""Describes a dataset. Amazon Lookout for Metrics API actions are eventually consistent. If you do a read operation on a resource immediately after creating or modifying it, use retries to allow time for the write operation to complete.

        :param self:
        :param MetricSetArn:  The ARN of the dataset.<br/>
        :return: MetricSource:  Contains information about the dataset's source data.:<br/>Timezone:  The time zone in which the dataset's data was recorded.<br/>MetricSetFrequency:  The interval at which the data will be analyzed for anomalies.<br/>DimensionList:  A list of the dimensions chosen for analysis.<br/>TimestampColumn:  Contains information about the column used for tracking time in your source data.:<br/>MetricList:  A list of the metrics defined by the dataset.<br/>Offset:  The offset in seconds. Only supported for S3 and Redshift datasources.<br/>LastModificationTime:  The time at which the dataset was last modified.<br/>CreationTime:  The time at which the dataset was created.<br/>MetricSetDescription:  The dataset's description.<br/>MetricSetName:  The name of the dataset.<br/>AnomalyDetectorArn:  The ARN of the detector that contains the dataset.<br/>MetricSetArn:  The ARN of the dataset.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ColumnFormat</i> The format of the timestamp column.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ColumnName</i> The name of the timestamp column.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RedshiftSourceConfig</i> An object containing information about the Amazon Redshift database configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RedshiftSourceConfig</b>: An object containing information about the Amazon Redshift database configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RDSSourceConfig</i> An object containing information about the Amazon Relational Database Service (RDS) configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RDSSourceConfig</b>: An object containing information about the Amazon Relational Database Service (RDS) configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudWatchConfig</i> An object containing information about the Amazon CloudWatch monitoring configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CloudWatchConfig</b>: An object containing information about the Amazon CloudWatch monitoring configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AppFlowConfig</i> An object containing information about the AppFlow configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AppFlowConfig</b>: An object containing information about the AppFlow configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3SourceConfig</i> Contains information about the configuration of the S3 bucket that contains source files.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3SourceConfig</b>: Contains information about the configuration of the S3 bucket that contains source files.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HistoricalDataPathList</i> A list of paths to the historical data files.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TemplatedPathList</i> A list of templated paths to the source files.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The ARN of an IAM role that has read and write access permissions to the source S3 bucket.<br/>Contains information about a source file's formatting.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>FileFormatDescriptor</b>: Contains information about a source file's formatting.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FlowName</i>  name of the flow.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> An IAM role that gives Amazon Lookout for Metrics permission to access the flow.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> An IAM role that gives Amazon Lookout for Metrics permission to access data in Amazon CloudWatch.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The Amazon Resource Name (ARN) of the role.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TableName</i> The name of the table in the database.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> The name of the RDS database.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretManagerArn</i> The Amazon Resource Name (ARN) of the AWS Secrets Manager role.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabasePort</i> The port number where the database can be accessed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseHost</i> The host name of the database.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceIdentifier</i> A string identifying the database instance.<br/>An object containing information about the Amazon Virtual Private Cloud (VPC) configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>VpcConfiguration</b>: An object containing information about the Amazon Virtual Private Cloud (VPC) configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The Amazon Resource Name (ARN) of the role providing access to the database.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TableName</i> The table name of the Redshift database.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> The Redshift database name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretManagerArn</i> The Amazon Resource Name (ARN) of the AWS Secrets Manager role.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabasePort</i> The port number where the database can be accessed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseHost</i> The name of the database host.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterIdentifier</i> A string identifying the Redshift cluster.<br/>Contains information about the Amazon Virtual Private Cloud (VPC) configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>VpcConfiguration</b>: Contains information about the Amazon Virtual Private Cloud (VPC) configuration.        """
        pass

    def get_anomaly_group(self, AnomalyDetectorArn: str, AnomalyGroupId: str) -> GetAnomalyGroupResponse:
        r"""Returns details about a group of anomalous metrics.

        :param self:
        :param AnomalyDetectorArn:  The Amazon Resource Name (ARN) of the anomaly detector.<br/>AnomalyGroupId:  The ID of the anomaly group.<br/>
        :return: AnomalyGroup:  Details about the anomaly group.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MetricLevelImpactList</i> A list of measures affected by the anomaly.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PrimaryMetricName</i> The name of the primary affected measure for the group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AnomalyGroupScore</i> The severity score of the group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AnomalyGroupId</i> The ID of the anomaly group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndTime</i> The end time for the group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StartTime</i> The start time for the group.<br/>        """
        pass

    def get_feedback(self, AnomalyGroupTimeSeriesFeedback: AnomalyGroupTimeSeries, AnomalyDetectorArn: str, MaxResults: int=None, NextToken: str=None) -> GetFeedbackResponse:
        r"""Get feedback for an anomaly group.

        :param self:
        :param NextToken:  Specify the pagination token that's returned by a previous request to retrieve the next page of results.<br/>MaxResults:  The maximum number of results to return.<br/>AnomalyGroupTimeSeriesFeedback:  The anomalous metric and group ID.:<br/>AnomalyDetectorArn:  The Amazon Resource Name (ARN) of the anomaly detector.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TimeSeriesId</i> The ID of the metric.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AnomalyGroupId</i> The ID of the anomaly group.<br/>
        :return: NextToken:  The pagination token that's included if more results are available.<br/>AnomalyGroupTimeSeriesFeedback:  Feedback for an anomalous metric.<br/>        """
        pass

    def get_sample_data(self, S3SourceConfig: SampleDataS3SourceConfig=None) -> GetSampleDataResponse:
        r"""Returns a selection of sample records from an Amazon S3 datasource.

        :param self:
        :param S3SourceConfig:  A datasource bucket in Amazon S3.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FileFormatDescriptor</i> Contains information about a source file's formatting.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>FileFormatDescriptor</b>: Contains information about a source file's formatting.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HistoricalDataPathList</i> An array of strings containing the historical set of data paths.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TemplatedPathList</i> An array of strings containing the list of templated paths.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The Amazon Resource Name (ARN) of the role.<br/>Contains information about how a source CSV data file should be analyzed.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CsvFormatDescriptor</b>: Contains information about how a source CSV data file should be analyzed.
        :return: SampleRows:  A list of records.<br/>HeaderValues:  A list of header labels for the records.<br/>        """
        pass

    def list_alerts(self, AnomalyDetectorArn: str=None, NextToken: str=None, MaxResults: int=None) -> ListAlertsResponse:
        r"""Lists the alerts attached to a detector. Amazon Lookout for Metrics API actions are eventually consistent. If you do a read operation on a resource immediately after creating or modifying it, use retries to allow time for the write operation to complete.

        :param self:
        :param MaxResults:  The maximum number of results that will be displayed by the request.<br/>NextToken:  If the result of the previous request is truncated, the response includes a <code>NextToken</code>. To retrieve the next set of results, use the token in the next request. Tokens expire after 24 hours.<br/>AnomalyDetectorArn:  The ARN of the alert's detector.<br/>
        :return: NextToken:  If the response is truncated, the service returns this token. To retrieve the next set of results, use this token in the next request.<br/>AlertSummaryList:  Contains information about an alert.<br/>        """
        pass

    def list_anomaly_detectors(self, MaxResults: int=None, NextToken: str=None) -> ListAnomalyDetectorsResponse:
        r"""Lists the detectors in the current AWS Region. Amazon Lookout for Metrics API actions are eventually consistent. If you do a read operation on a resource immediately after creating or modifying it, use retries to allow time for the write operation to complete.

        :param self:
        :param NextToken:  If the result of the previous request was truncated, the response includes a <code>NextToken</code>. To retrieve the next set of results, use the token in the next request. Tokens expire after 24 hours.<br/>MaxResults:  The maximum number of results to return.<br/>
        :return: NextToken:  If the response is truncated, the service returns this token. To retrieve the next set of results, use the token in the next request.<br/>AnomalyDetectorSummaryList:  A list of anomaly detectors in the account in the current region.<br/>        """
        pass

    def list_anomaly_group_summaries(self, SensitivityThreshold: int, AnomalyDetectorArn: str, MaxResults: int=None, NextToken: str=None) -> ListAnomalyGroupSummariesResponse:
        r"""Returns a list of anomaly groups.

        :param self:
        :param NextToken:  Specify the pagination token that's returned by a previous request to retrieve the next page of results.<br/>MaxResults:  The maximum number of results to return.<br/>SensitivityThreshold:  The minimum severity score for inclusion in the output.<br/>AnomalyDetectorArn:  The Amazon Resource Name (ARN) of the anomaly detector.<br/>
        :return: NextToken:  The pagination token that's included if more results are available.<br/>AnomalyGroupStatistics:  Aggregated details about the anomaly groups.:<br/>AnomalyGroupSummaryList:  A list of anomaly group summaries.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ItemizedMetricStatsList</i> Statistics for individual metrics within the group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalCount</i> The number of groups found.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EvaluationStartDate</i> The start of the time range that was searched.<br/>        """
        pass

    def list_anomaly_group_time_series(self, MetricName: str, AnomalyGroupId: str, AnomalyDetectorArn: str, MaxResults: int=None, NextToken: str=None) -> ListAnomalyGroupTimeSeriesResponse:
        r"""Gets a list of anomalous metrics for a measure in an anomaly group.

        :param self:
        :param NextToken:  Specify the pagination token that's returned by a previous request to retrieve the next page of results.<br/>MaxResults:  The maximum number of results to return.<br/>MetricName:  The name of the measure field.<br/>AnomalyGroupId:  The ID of the anomaly group.<br/>AnomalyDetectorArn:  The Amazon Resource Name (ARN) of the anomaly detector.<br/>
        :return: TimeSeriesList:  A list of anomalous metrics.<br/>NextToken:  The pagination token that's included if more results are available.<br/>TimestampList:  Timestamps for the anomalous metrics.<br/>MetricName:  The name of the measure field.<br/>AnomalyGroupId:  The ID of the anomaly group.<br/>        """
        pass

    def list_metric_sets(self, AnomalyDetectorArn: str=None, MaxResults: int=None, NextToken: str=None) -> ListMetricSetsResponse:
        r"""Lists the datasets in the current AWS Region. Amazon Lookout for Metrics API actions are eventually consistent. If you do a read operation on a resource immediately after creating or modifying it, use retries to allow time for the write operation to complete.

        :param self:
        :param NextToken:  If the result of the previous request was truncated, the response includes a <code>NextToken</code>. To retrieve the next set of results, use the token in the next request. Tokens expire after 24 hours.<br/>MaxResults:  The maximum number of results to return.<br/>AnomalyDetectorArn:  The ARN of the anomaly detector containing the metrics sets to list.<br/>
        :return: NextToken:  If the response is truncated, the list call returns this token. To retrieve the next set of results, use the token in the next list request. <br/>MetricSetSummaryList:  A list of the datasets in the AWS Region, with configuration details for each.<br/>        """
        pass

    def list_tags_for_resource(self, ResourceArn: str) -> ListTagsForResourceResponse:
        r"""Gets a list of <a href="https://docs.aws.amazon.com/lookoutmetrics/latest/dev/detectors-tags.html">tags</a> for a detector, dataset, or alert.

        :param self:
        :param ResourceArn:  The resource's Amazon Resource Name (ARN).<br/>
        :return: Tags:  The resource's tags.<br/>        """
        pass

    def put_feedback(self, AnomalyGroupTimeSeriesFeedback: AnomalyGroupTimeSeriesFeedback, AnomalyDetectorArn: str) -> PutFeedbackResponse:
        r"""Add feedback for an anomalous metric.

        :param self:
        :param AnomalyGroupTimeSeriesFeedback:  Feedback for an anomalous metric.:<br/>AnomalyDetectorArn:  The Amazon Resource Name (ARN) of the anomaly detector.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsAnomaly</i> Feedback on whether the metric is a legitimate anomaly.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TimeSeriesId</i> The ID of the metric.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AnomalyGroupId</i> The ID of the anomaly group.<br/>
        :return:         """
        pass

    def tag_resource(self, Tags: TagMap, ResourceArn: str) -> TagResourceResponse:
        r"""Adds <a href="https://docs.aws.amazon.com/lookoutmetrics/latest/dev/detectors-tags.html">tags</a> to a detector, dataset, or alert.

        :param self:
        :param Tags:  Tags to apply to the resource. Tag keys and values can contain letters, numbers, spaces, and the following symbols: <code>_.:/=+@-</code> <br/>ResourceArn:  The resource's Amazon Resource Name (ARN).<br/>
        :return:         """
        pass

    def untag_resource(self, TagKeys: List[TagKey], ResourceArn: str) -> UntagResourceResponse:
        r"""Removes <a href="https://docs.aws.amazon.com/lookoutmetrics/latest/dev/detectors-tags.html">tags</a> from a detector, dataset, or alert.

        :param self:
        :param TagKeys:  Keys to remove from the resource's tags.<br/>ResourceArn:  The resource's Amazon Resource Name (ARN).<br/>
        :return:         """
        pass

    def update_anomaly_detector(self, AnomalyDetectorArn: str, KmsKeyArn: str=None, AnomalyDetectorDescription: str=None, AnomalyDetectorConfig: AnomalyDetectorConfig=None) -> UpdateAnomalyDetectorResponse:
        r"""Updates a detector. After activation, you can only change a detector's ingestion delay and description.

        :param self:
        :param AnomalyDetectorConfig:  Contains information about the configuration to which the detector will be updated.:<br/>AnomalyDetectorDescription:  The updated detector description.<br/>KmsKeyArn:  The Amazon Resource Name (ARN) of an AWS KMS encryption key.<br/>AnomalyDetectorArn:  The ARN of the detector to update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AnomalyDetectorFrequency</i> The frequency at which the detector analyzes its source data.<br/>
        :return: AnomalyDetectorArn:  The ARN of the updated detector.<br/>        """
        pass

    def update_metric_set(self, MetricSetArn: str, MetricSetDescription: str=None, MetricList: List[Metric]=None, Offset: int=None, TimestampColumn: TimestampColumn=None, DimensionList: List[ColumnName]=None, MetricSetFrequency: str=None, MetricSource: MetricSource=None) -> UpdateMetricSetResponse:
        r"""Updates a dataset.

        :param self:
        :param MetricSource:  Contains information about source data used to generate a metric.:<br/>MetricSetFrequency:  The dataset's interval.<br/>DimensionList:  The dimension list.<br/>TimestampColumn:  The timestamp column.:<br/>Offset:  After an interval ends, the amount of seconds that the detector waits before importing data. Offset is only supported for S3 and Redshift datasources.<br/>MetricList:  The metric list.<br/>MetricSetDescription:  The dataset's description.<br/>MetricSetArn:  The ARN of the dataset to update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ColumnFormat</i> The format of the timestamp column.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ColumnName</i> The name of the timestamp column.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RedshiftSourceConfig</i> An object containing information about the Amazon Redshift database configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RedshiftSourceConfig</b>: An object containing information about the Amazon Redshift database configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RDSSourceConfig</i> An object containing information about the Amazon Relational Database Service (RDS) configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RDSSourceConfig</b>: An object containing information about the Amazon Relational Database Service (RDS) configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudWatchConfig</i> An object containing information about the Amazon CloudWatch monitoring configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CloudWatchConfig</b>: An object containing information about the Amazon CloudWatch monitoring configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AppFlowConfig</i> An object containing information about the AppFlow configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AppFlowConfig</b>: An object containing information about the AppFlow configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3SourceConfig</i> Contains information about the configuration of the S3 bucket that contains source files.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3SourceConfig</b>: Contains information about the configuration of the S3 bucket that contains source files.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HistoricalDataPathList</i> A list of paths to the historical data files.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TemplatedPathList</i> A list of templated paths to the source files.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The ARN of an IAM role that has read and write access permissions to the source S3 bucket.<br/>Contains information about a source file's formatting.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>FileFormatDescriptor</b>: Contains information about a source file's formatting.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FlowName</i>  name of the flow.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> An IAM role that gives Amazon Lookout for Metrics permission to access the flow.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> An IAM role that gives Amazon Lookout for Metrics permission to access data in Amazon CloudWatch.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The Amazon Resource Name (ARN) of the role.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TableName</i> The name of the table in the database.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> The name of the RDS database.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretManagerArn</i> The Amazon Resource Name (ARN) of the AWS Secrets Manager role.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabasePort</i> The port number where the database can be accessed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseHost</i> The host name of the database.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceIdentifier</i> A string identifying the database instance.<br/>An object containing information about the Amazon Virtual Private Cloud (VPC) configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>VpcConfiguration</b>: An object containing information about the Amazon Virtual Private Cloud (VPC) configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The Amazon Resource Name (ARN) of the role providing access to the database.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TableName</i> The table name of the Redshift database.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> The Redshift database name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretManagerArn</i> The Amazon Resource Name (ARN) of the AWS Secrets Manager role.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabasePort</i> The port number where the database can be accessed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseHost</i> The name of the database host.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterIdentifier</i> A string identifying the Redshift cluster.<br/>Contains information about the Amazon Virtual Private Cloud (VPC) configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>VpcConfiguration</b>: Contains information about the Amazon Virtual Private Cloud (VPC) configuration.
        :return: MetricSetArn:  The ARN of the dataset.<br/>        """
        pass





class LookoutforVision(BaseClient):
    r"""This is the Amazon Lookout for Vision API Reference. It provides descriptions of actions, data types, common parameters, and common errors. Amazon Lookout for Vision enables you to find visual defects in industrial products, accurately and at scale. It uses computer vision to identify missing components in an industrial product, damage to vehicles or structures, irregularities in production lines, and even minuscule defects in silicon wafers — or any other physical item where quality is important such as a missing capacitor on printed circuit boards."""


    class ListDatasetEntriesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_dataset_entries` for valid parameters"""
            pass
    class ListModelsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_models` for valid parameters"""
            pass
    class ListProjectsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_projects` for valid parameters"""
            pass


    class CreateDatasetRequest(Mapping):
        pass
    
    class CreateDatasetResponse(Mapping):
        pass
    
    class DatasetSource(Mapping):
        pass
    
    class CreateModelRequest(Mapping):
        pass
    
    class CreateModelResponse(Mapping):
        pass
    
    class OutputConfig(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class CreateProjectRequest(Mapping):
        pass
    
    class CreateProjectResponse(Mapping):
        pass
    
    class DeleteDatasetRequest(Mapping):
        pass
    
    class DeleteDatasetResponse(Mapping):
        pass
    
    class DeleteModelRequest(Mapping):
        pass
    
    class DeleteModelResponse(Mapping):
        pass
    
    class DeleteProjectRequest(Mapping):
        pass
    
    class DeleteProjectResponse(Mapping):
        pass
    
    class DescribeDatasetRequest(Mapping):
        pass
    
    class DescribeDatasetResponse(Mapping):
        pass
    
    class DescribeModelRequest(Mapping):
        pass
    
    class DescribeModelResponse(Mapping):
        pass
    
    class DescribeProjectRequest(Mapping):
        pass
    
    class DescribeProjectResponse(Mapping):
        pass
    
    class DetectAnomaliesRequest(Mapping):
        pass
    
    class DetectAnomaliesResponse(Mapping):
        pass
    
    class Stream(object):
        pass
    
    class ListDatasetEntriesRequest(Mapping):
        pass
    
    class ListDatasetEntriesResponse(Mapping):
        pass
    
    class IsLabeled(object):
        pass
    
    class DateTime(object):
        pass
    
    class ListModelsRequest(Mapping):
        pass
    
    class ListModelsResponse(Mapping):
        pass
    
    class ListProjectsRequest(Mapping):
        pass
    
    class ListProjectsResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class StartModelRequest(Mapping):
        pass
    
    class StartModelResponse(Mapping):
        pass
    
    class StopModelRequest(Mapping):
        pass
    
    class StopModelResponse(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateDatasetEntriesRequest(Mapping):
        pass
    
    class UpdateDatasetEntriesResponse(Mapping):
        pass
    
    class DatasetChanges(object):
        pass
    
    def create_dataset(self, DatasetType: str, ProjectName: str, DatasetSource: DatasetSource=None, ClientToken: str=None) -> CreateDatasetResponse:
        r"""Creates a new dataset in an Amazon Lookout for Vision project. <code>CreateDataset</code> can create a training or a test dataset from a valid dataset source (<code>DatasetSource</code>). If you want a single dataset project, specify <code>train</code> for the value of <code>DatasetType</code>. To have a project with separate training and test datasets, call <code>CreateDataset</code> twice. On the first call, specify <code>train</code> for the value of <code>DatasetType</code>. On the second call, specify <code>test</code> for the value of <code>DatasetType</code>.  This operation requires permissions to perform the <code>lookoutvision:CreateDataset</code> operation.

        :param self:
        :param ClientToken:  ClientToken is an idempotency token that ensures a call to <code>CreateDataset</code> completes only once. You choose the value to pass. For example, An issue, such as an network outage, might prevent you from getting a response from <code>CreateDataset</code>. In this case, safely retry your call to <code>CreateDataset</code> by using the same <code>ClientToken</code> parameter value. An error occurs if the other input parameters are not the same as in the first request. Using a different value for <code>ClientToken</code> is considered a new call to <code>CreateDataset</code>. An idempotency token is active for 8 hours. <br/>DatasetSource:  The location of the manifest file that Amazon Lookout for Vision uses to create the dataset. If you don't specify <code>DatasetSource</code>, an empty dataset is created and the operation synchronously returns. Later, you can add JSON Lines by calling <a>UpdateDatasetEntries</a>.  If you specify a value for <code>DataSource</code>, the manifest at the S3 location is validated and used to create the dataset. The call to <code>CreateDataset</code> is asynchronous and might take a while to complete. To find out the current status, Check the value of <code>Status</code> returned in a call to <a>DescribeDataset</a>.:<br/>DatasetType:  The type of the dataset. Specify <code>train</code> for a training dataset. Specify <code>test</code> for a test dataset.<br/>ProjectName:  The name of the project in which you want to create a dataset.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GroundTruthManifest</i> Location information for the manifest file.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>GroundTruthManifest</b>: Location information for the manifest file.<br/>The S3 bucket location for the manifest file.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3Object</b>: The S3 bucket location for the manifest file.
        :return: DatasetMetadata:  Information about the dataset.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusMessage</i> The status message for the dataset.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status for the dataset.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTimestamp</i> The Unix timestamp for the date and time that the dataset was created. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatasetType</i> The type of the dataset.<br/>        """
        pass

    def create_model(self, OutputConfig: OutputConfig, ProjectName: str, Description: str=None, ClientToken: str=None, KmsKeyId: str=None, Tags: List[Tag]=None) -> CreateModelResponse:
        r"""Creates a new version of a model within an an Amazon Lookout for Vision project. <code>CreateModel</code> is an asynchronous operation in which Amazon Lookout for Vision trains, tests, and evaluates a new version of a model.  To get the current status, check the <code>Status</code> field returned in the response from <a>DescribeModel</a>. If the project has a single dataset, Amazon Lookout for Vision internally splits the dataset to create a training and a test dataset. If the project has a training and a test dataset, Lookout for Vision uses the respective datasets to train and test the model.  After training completes, the evaluation metrics are stored at the location specified in <code>OutputConfig</code>.  This operation requires permissions to perform the <code>lookoutvision:CreateModel</code> operation. If you want to tag your model, you also require permission to the <code>lookoutvision:TagResource</code> operation.

        :param self:
        :param Tags:  A set of tags (key-value pairs) that you want to attach to the model.<br/>KmsKeyId:  The identifier for your AWS Key Management Service (AWS KMS) customer master key (CMK). The key is used to encrypt training and test images copied into the service for model training. Your source images are unaffected. If this parameter is not specified, the copied images are encrypted by a key that AWS owns and manages.<br/>OutputConfig:  The location where Amazon Lookout for Vision saves the training results.:<br/>ClientToken:  ClientToken is an idempotency token that ensures a call to <code>CreateModel</code> completes only once. You choose the value to pass. For example, An issue, such as an network outage, might prevent you from getting a response from <code>CreateModel</code>. In this case, safely retry your call to <code>CreateModel</code> by using the same <code>ClientToken</code> parameter value. An error occurs if the other input parameters are not the same as in the first request. Using a different value for <code>ClientToken</code> is considered a new call to <code>CreateModel</code>. An idempotency token is active for 8 hours.<br/>Description:  A description for the version of the model.<br/>ProjectName:  The name of the project in which you want to create a model version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Location</i> The S3 location for the output.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3Location</b>: The S3 location for the output.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Prefix</i> The path of the folder, within the S3 bucket, that contains the training output.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i> The S3 bucket that contains the training output.<br/>
        :return: ModelMetadata:  The response from a call to <code>CreateModel</code>.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Performance</i> Performance metrics for the model. Not available until training has successfully completed.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Performance</b>: Performance metrics for the model. Not available until training has successfully completed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusMessage</i> The status message for the model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description for the model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ModelArn</i> The Amazon Resource Name (ARN) of the model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ModelVersion</i> The version of the model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTimestamp</i> The unix timestamp for the date and time that the model was created. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Precision</i> The overall precision metric value for the trained model.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Recall</i> The overall recall metric value for the trained model. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>F1Score</i> The overall F1 score metric for the trained model.<br/>        """
        pass

    def create_project(self, ProjectName: str, ClientToken: str=None) -> CreateProjectResponse:
        r"""Creates an empty Amazon Lookout for Vision project. After you create the project, add a dataset by calling <a>CreateDataset</a>. This operation requires permissions to perform the <code>lookoutvision:CreateProject</code> operation.

        :param self:
        :param ClientToken:  ClientToken is an idempotency token that ensures a call to <code>CreateProject</code> completes only once. You choose the value to pass. For example, An issue, such as an network outage, might prevent you from getting a response from <code>CreateProject</code>. In this case, safely retry your call to <code>CreateProject</code> by using the same <code>ClientToken</code> parameter value. An error occurs if the other input parameters are not the same as in the first request. Using a different value for <code>ClientToken</code> is considered a new call to <code>CreateProject</code>. An idempotency token is active for 8 hours.<br/>ProjectName:  The name for the project.<br/>
        :return: ProjectMetadata:  Information about the project.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTimestamp</i> The unix timestamp for the date and time that the project was created. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProjectName</i> The name of the project.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProjectArn</i> The Amazon Resource Name (ARN) of the project.<br/>        """
        pass

    def delete_dataset(self, DatasetType: str, ProjectName: str, ClientToken: str=None) -> DeleteDatasetResponse:
        r"""Deletes an existing Amazon Lookout for Vision <code>dataset</code>.  If your the project has a single dataset, you must create a new dataset before you can create a model. If you project has a training dataset and a test dataset consider the following.  <ul> <li> If you delete the test dataset, your project reverts to a single dataset project. If you then train the model, Amazon Lookout for Vision internally splits the remaining dataset into a training and test dataset. </li> <li> If you delete the training dataset, you must create a training dataset before you can create a model. </li> </ul> This operation requires permissions to perform the <code>lookoutvision:DeleteDataset</code> operation.

        :param self:
        :param ClientToken:  ClientToken is an idempotency token that ensures a call to <code>DeleteDataset</code> completes only once. You choose the value to pass. For example, An issue, such as an network outage, might prevent you from getting a response from <code>DeleteDataset</code>. In this case, safely retry your call to <code>DeleteDataset</code> by using the same <code>ClientToken</code> parameter value. An error occurs if the other input parameters are not the same as in the first request. Using a different value for <code>ClientToken</code> is considered a new call to <code>DeleteDataset</code>. An idempotency token is active for 8 hours.<br/>DatasetType:  The type of the dataset to delete. Specify <code>train</code> to delete the training dataset. Specify <code>test</code> to delete the test dataset. To delete the dataset in a single dataset project, specify <code>train</code>.<br/>ProjectName:  The name of the project that contains the dataset that you want to delete.<br/>
        :return:         """
        pass

    def delete_model(self, ModelVersion: str, ProjectName: str, ClientToken: str=None) -> DeleteModelResponse:
        r"""Deletes an Amazon Lookout for Vision model. You can't delete a running model. To stop a running model, use the <a>StopModel</a> operation. It might take a few seconds to delete a model. To determine if a model has been deleted, call <a>ListProjects</a> and check if the version of the model (<code>ModelVersion</code>) is in the <code>Models</code> array.  This operation requires permissions to perform the <code>lookoutvision:DeleteModel</code> operation.

        :param self:
        :param ClientToken:  ClientToken is an idempotency token that ensures a call to <code>DeleteModel</code> completes only once. You choose the value to pass. For example, An issue, such as an network outage, might prevent you from getting a response from <code>DeleteModel</code>. In this case, safely retry your call to <code>DeleteModel</code> by using the same <code>ClientToken</code> parameter value. An error occurs if the other input parameters are not the same as in the first request. Using a different value for <code>ClientToken</code> is considered a new call to <code>DeleteModel</code>. An idempotency token is active for 8 hours.<br/>ModelVersion:  The version of the model that you want to delete.<br/>ProjectName:  The name of the project that contains the model that you want to delete.<br/>
        :return: ModelArn:  The Amazon Resource Name (ARN) of the model that was deleted.<br/>        """
        pass

    def delete_project(self, ProjectName: str, ClientToken: str=None) -> DeleteProjectResponse:
        r"""Deletes an Amazon Lookout for Vision project. To delete a project, you must first delete each version of the model associated with the project. To delete a model use the <a>DeleteModel</a> operation. You also have to delete the dataset(s) associated with the model. For more information, see <a>DeleteDataset</a>. The images referenced by the training and test datasets aren't deleted.  This operation requires permissions to perform the <code>lookoutvision:DeleteProject</code> operation.

        :param self:
        :param ClientToken:  ClientToken is an idempotency token that ensures a call to <code>DeleteProject</code> completes only once. You choose the value to pass. For example, An issue, such as an network outage, might prevent you from getting a response from <code>DeleteProject</code>. In this case, safely retry your call to <code>DeleteProject</code> by using the same <code>ClientToken</code> parameter value. An error occurs if the other input parameters are not the same as in the first request. Using a different value for <code>ClientToken</code> is considered a new call to <code>DeleteProject</code>. An idempotency token is active for 8 hours.<br/>ProjectName:  The name of the project to delete.<br/>
        :return: ProjectArn:  The Amazon Resource Name (ARN) of the project that was deleted.<br/>        """
        pass

    def describe_dataset(self, DatasetType: str, ProjectName: str) -> DescribeDatasetResponse:
        r"""Describe an Amazon Lookout for Vision dataset. This operation requires permissions to perform the <code>lookoutvision:DescribeDataset</code> operation.

        :param self:
        :param DatasetType:  The type of the dataset to describe. Specify <code>train</code> to describe the training dataset. Specify <code>test</code> to describe the test dataset. If you have a single dataset project, specify <code>train</code> <br/>ProjectName:  The name of the project that contains the dataset that you want to describe.<br/>
        :return: DatasetDescription:  The description of the requested dataset. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImageStats</i> <p/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ImageStats</b>: <p/><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusMessage</i> The status message for the dataset. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the dataset.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdatedTimestamp</i> The Unix timestamp for the date and time that the dataset was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTimestamp</i> The Unix timestamp for the time and date that the dataset was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatasetType</i> The type of the dataset. The value <code>train</code> represents a training dataset or single dataset project. The value <code>test</code> represents a test dataset.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProjectName</i> The name of the project that contains the dataset.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Anomaly</i> the total number of images labeled as an anomaly.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Normal</i> The total number of images labeled as normal.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Labeled</i> The total number of labeled images.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Total</i> The total number of images in the dataset.<br/>        """
        pass

    def describe_model(self, ModelVersion: str, ProjectName: str) -> DescribeModelResponse:
        r"""Describes a version of an Amazon Lookout for Vision model. This operation requires permissions to perform the <code>lookoutvision:DescribeModel</code> operation.

        :param self:
        :param ModelVersion:  The version of the model that you want to describe.<br/>ProjectName:  The project that contains the version of a model that you want to describe.<br/>
        :return: ModelDescription:  Contains the description of the model.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The identifer for the AWS Key Management Service (AWS KMS) key that was used to encrypt the model during training.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EvaluationEndTimestamp</i> The unix timestamp for the date and time that the evaluation ended. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EvaluationResult</i> The S3 location where Amazon Lookout for Vision saves the performance metrics.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EvaluationResult</b>: The S3 location where Amazon Lookout for Vision saves the performance metrics.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EvaluationManifest</i> The S3 location where Amazon Lookout for Vision saves the manifest file that was used to test the trained model and generate the performance scores.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EvaluationManifest</b>: The S3 location where Amazon Lookout for Vision saves the manifest file that was used to test the trained model and generate the performance scores.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OutputConfig</i> The S3 location where Amazon Lookout for Vision saves model training files.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>OutputConfig</b>: The S3 location where Amazon Lookout for Vision saves model training files.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Performance</i> Performance metrics for the model. Created during training.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Performance</b>: Performance metrics for the model. Created during training.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusMessage</i> The status message for the model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description for the model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTimestamp</i> The unix timestamp for the date and time that the model was created. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ModelArn</i> The Amazon Resource Name (ARN) of the model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ModelVersion</i> The version of the model<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Precision</i> The overall precision metric value for the trained model.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Recall</i> The overall recall metric value for the trained model. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>F1Score</i> The overall F1 score metric for the trained model.<br/>The S3 location for the output.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3Location</b>: The S3 location for the output.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The location of the training output in the bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i> The bucket that contains the training output.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The location of the training output in the bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i> The bucket that contains the training output.<br/>        """
        pass

    def describe_project(self, ProjectName: str) -> DescribeProjectResponse:
        r"""Describes an Amazon Lookout for Vision project. This operation requires permissions to perform the <code>lookoutvision:DescribeProject</code> operation.

        :param self:
        :param ProjectName:  The name of the project that you want to describe.<br/>
        :return: ProjectDescription:  The description of the project.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Datasets</i> A list of datasets in the project.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTimestamp</i> The unix timestamp for the date and time that the project was created. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProjectName</i> The name of the project.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProjectArn</i> The Amazon Resource Name (ARN) of the project.<br/>        """
        pass

    def detect_anomalies(self, ContentType: str, Body: Stream, ModelVersion: str, ProjectName: str) -> DetectAnomaliesResponse:
        r"""Detects anomalies in an image that you supply.  The response from <code>DetectAnomalies</code> includes a boolean prediction that the image contains one or more anomalies and a confidence value for the prediction. <note> Before calling <code>DetectAnomalies</code>, you must first start your model with the <a>StartModel</a> operation. You are charged for the amount of time, in minutes, that a model runs and for the number of anomaly detection units that your model uses. If you are not using a model, use the <a>StopModel</a> operation to stop your model.  </note> This operation requires permissions to perform the <code>lookoutvision:DetectAnomalies</code> operation.

        :param self:
        :param ContentType:  The type of the image passed in <code>Body</code>. Valid values are <code>image/png</code> (PNG format images) and <code>image/jpeg</code> (JPG format images). <br/>Body:  The unencrypted image bytes that you want to analyze. <br/>ModelVersion:  The version of the model that you want to use.<br/>ProjectName:  The name of the project that contains the model version that you want to use.<br/>
        :return: DetectAnomalyResult:  The results of the <code>DetectAnomalies</code> operation.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Confidence</i> The confidence that Amazon Lookout for Vision has in the accuracy of the prediction.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsAnomalous</i> True if the image contains an anomaly, otherwise false.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Source</i> The source of the image that was analyzed. <code>direct</code> means that the images was supplied from the local computer. No other values are supported.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Source</b>: The source of the image that was analyzed. <code>direct</code> means that the images was supplied from the local computer. No other values are supported.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of the image.<br/>        """
        pass

    def list_dataset_entries(self, DatasetType: str, ProjectName: str, Labeled: IsLabeled=None, AnomalyClass: str=None, BeforeCreationDate: DateTime=None, AfterCreationDate: DateTime=None, NextToken: str=None, MaxResults: int=None, SourceRefContains: str=None) -> ListDatasetEntriesResponse:
        r"""Lists the JSON Lines within a dataset. An Amazon Lookout for Vision JSON Line contains the anomaly information for a single image, including the image location and the assigned label. This operation requires permissions to perform the <code>lookoutvision:ListDatasetEntries</code> operation.

        :param self:
        :param SourceRefContains:  Perform a "contains" search on the values of the <code>source-ref</code> key within the dataset. For example a value of "IMG_17" returns all JSON Lines where the <code>source-ref</code> key value matches <i>*IMG_17*</i>.<br/>MaxResults:  The maximum number of results to return per paginated call. The largest value you can specify is 100. If you specify a value greater than 100, a ValidationException error occurs. The default value is 100.<br/>NextToken:  If the previous response was incomplete (because there is more data to retrieve), Amazon Lookout for Vision returns a pagination token in the response. You can use this pagination token to retrieve the next set of dataset entries.<br/>AfterCreationDate:  Only includes entries after the specified date in the response. For example, <code>2020-06-23T00:00:00</code>.<br/>BeforeCreationDate:  Only includes entries before the specified date in the response. For example, <code>2020-06-23T00:00:00</code>.<br/>AnomalyClass:  Specify <code>normal</code> to include only normal images. Specify <code>anomaly</code> to only include anomalous entries. If you don't specify a value, Amazon Lookout for Vision returns normal and anomalous images.<br/>Labeled:  Specify <code>true</code> to include labeled entries, otherwise specify <code>false</code>. If you don't specify a value, Lookout for Vision returns all entries.<br/>DatasetType:  The type of the dataset that you want to list. Specify <code>train</code> to list the training dataset. Specify <code>test</code> to list the test dataset. If you have a single dataset project, specify <code>train</code>.<br/>ProjectName:  The name of the project that contains the dataset that you want to list.<br/>
        :return: NextToken:  If the response is truncated, Amazon Lookout for Vision returns this token that you can use in the subsequent request to retrieve the next set ofdataset entries.<br/>DatasetEntries:  A list of the entries (JSON Lines) within the dataset.<br/>        """
        pass

    def list_models(self, ProjectName: str, NextToken: str=None, MaxResults: int=None) -> ListModelsResponse:
        r"""Lists the versions of a model in an Amazon Lookout for Vision project. This operation requires permissions to perform the <code>lookoutvision:ListModels</code> operation.

        :param self:
        :param MaxResults:  The maximum number of results to return per paginated call. The largest value you can specify is 100. If you specify a value greater than 100, a ValidationException error occurs. The default value is 100.<br/>NextToken:  If the previous response was incomplete (because there is more data to retrieve), Amazon Lookout for Vision returns a pagination token in the response. You can use this pagination token to retrieve the next set of models.<br/>ProjectName:  The name of the project that contains the model versions that you want to list.<br/>
        :return: NextToken:  If the response is truncated, Amazon Lookout for Vision returns this token that you can use in the subsequent request to retrieve the next set of models. <br/>Models:  A list of model versions in the specified project. <br/>        """
        pass

    def list_projects(self, NextToken: str=None, MaxResults: int=None) -> ListProjectsResponse:
        r"""Lists the Amazon Lookout for Vision projects in your AWS account. This operation requires permissions to perform the <code>lookoutvision:ListProjects</code> operation.

        :param self:
        :param MaxResults:  The maximum number of results to return per paginated call. The largest value you can specify is 100. If you specify a value greater than 100, a ValidationException error occurs. The default value is 100.<br/>NextToken:  If the previous response was incomplete (because there is more data to retrieve), Amazon Lookout for Vision returns a pagination token in the response. You can use this pagination token to retrieve the next set of projects.<br/>
        :return: NextToken:  If the response is truncated, Amazon Lookout for Vision returns this token that you can use in the subsequent request to retrieve the next set of projects.<br/>Projects:  A list of projects in your AWS account.<br/>        """
        pass

    def list_tags_for_resource(self, ResourceArn: str) -> ListTagsForResourceResponse:
        r"""Returns a list of tags attached to the specified Amazon Lookout for Vision model. This operation requires permissions to perform the <code>lookoutvision:ListTagsForResource</code> operation.

        :param self:
        :param ResourceArn:  The Amazon Resource Name (ARN) of the model for which you want to list tags. <br/>
        :return: Tags:  A map of tag keys and values attached to the specified model.<br/>        """
        pass

    def start_model(self, MinInferenceUnits: int, ModelVersion: str, ProjectName: str, ClientToken: str=None) -> StartModelResponse:
        r"""Starts the running of the version of an Amazon Lookout for Vision model. Starting a model takes a while to complete. To check the current state of the model, use <a>DescribeModel</a>. A model is ready to use when its status is <code>HOSTED</code>. Once the model is running, you can detect custom labels in new images by calling <a>DetectAnomalies</a>. <note> You are charged for the amount of time that the model is running. To stop a running model, call <a>StopModel</a>. </note> This operation requires permissions to perform the <code>lookoutvision:StartModel</code> operation.

        :param self:
        :param ClientToken:  ClientToken is an idempotency token that ensures a call to <code>StartModel</code> completes only once. You choose the value to pass. For example, An issue, such as an network outage, might prevent you from getting a response from <code>StartModel</code>. In this case, safely retry your call to <code>StartModel</code> by using the same <code>ClientToken</code> parameter value. An error occurs if the other input parameters are not the same as in the first request. Using a different value for <code>ClientToken</code> is considered a new call to <code>StartModel</code>. An idempotency token is active for 8 hours. <br/>MinInferenceUnits:  The minimum number of inference units to use. A single inference unit represents 1 hour of processing and can support up to 5 Transaction Pers Second (TPS). Use a higher number to increase the TPS throughput of your model. You are charged for the number of inference units that you use. <br/>ModelVersion:  The version of the model that you want to start.<br/>ProjectName:  The name of the project that contains the model that you want to start.<br/>
        :return: Status:  The current running status of the model.<br/>        """
        pass

    def stop_model(self, ModelVersion: str, ProjectName: str, ClientToken: str=None) -> StopModelResponse:
        r"""Stops the hosting of a running model. The operation might take a while to complete. To check the current status, call <a>DescribeModel</a>.  After the model hosting stops, the <code>Status</code> of the model is <code>TRAINED</code>. This operation requires permissions to perform the <code>lookoutvision:StopModel</code> operation.

        :param self:
        :param ClientToken:  ClientToken is an idempotency token that ensures a call to <code>StopModel</code> completes only once. You choose the value to pass. For example, An issue, such as an network outage, might prevent you from getting a response from <code>StopModel</code>. In this case, safely retry your call to <code>StopModel</code> by using the same <code>ClientToken</code> parameter value. An error occurs if the other input parameters are not the same as in the first request. Using a different value for <code>ClientToken</code> is considered a new call to <code>StopModel</code>. An idempotency token is active for 8 hours. <br/>ModelVersion:  The version of the model that you want to stop.<br/>ProjectName:  The name of the project that contains the model that you want to stop.<br/>
        :return: Status:  The status of the model.<br/>        """
        pass

    def tag_resource(self, Tags: List[Tag], ResourceArn: str) -> TagResourceResponse:
        r"""Adds one or more key-value tags to an Amazon Lookout for Vision model. For more information, see <i>Tagging a model</i> in the <i>Amazon Lookout for Vision Developer Guide</i>.  This operation requires permissions to perform the <code>lookoutvision:TagResource</code> operation.

        :param self:
        :param Tags:  The key-value tags to assign to the model.<br/>ResourceArn:  The Amazon Resource Name (ARN) of the model to assign the tags.<br/>
        :return:         """
        pass

    def untag_resource(self, TagKeys: List[TagKey], ResourceArn: str) -> UntagResourceResponse:
        r"""Removes one or more tags from an Amazon Lookout for Vision model. For more information, see <i>Tagging a model</i> in the <i>Amazon Lookout for Vision Developer Guide</i>.  This operation requires permissions to perform the <code>lookoutvision:UntagResource</code> operation.

        :param self:
        :param TagKeys:  A list of the keys of the tags that you want to remove.<br/>ResourceArn:  The Amazon Resource Name (ARN) of the model from which you want to remove tags. <br/>
        :return:         """
        pass

    def update_dataset_entries(self, Changes: DatasetChanges, DatasetType: str, ProjectName: str, ClientToken: str=None) -> UpdateDatasetEntriesResponse:
        r"""Adds one or more JSON Line entries to a dataset. A JSON Line includes information about an image used for training or testing an Amazon Lookout for Vision model. The following is an example JSON Line. Updating a dataset might take a while to complete. To check the current status, call <a>DescribeDataset</a> and check the <code>Status</code> field in the response. This operation requires permissions to perform the <code>lookoutvision:UpdateDatasetEntries</code> operation.

        :param self:
        :param ClientToken:  ClientToken is an idempotency token that ensures a call to <code>UpdateDatasetEntries</code> completes only once. You choose the value to pass. For example, An issue, such as an network outage, might prevent you from getting a response from <code>UpdateDatasetEntries</code>. In this case, safely retry your call to <code>UpdateDatasetEntries</code> by using the same <code>ClientToken</code> parameter value. An error occurs if the other input parameters are not the same as in the first request. Using a different value for <code>ClientToken</code> is considered a new call to <code>UpdateDatasetEntries</code>. An idempotency token is active for 8 hours. <br/>Changes:  The entries to add to the dataset.<br/>DatasetType:  The type of the dataset that you want to update. Specify <code>train</code> to update the training dataset. Specify <code>test</code> to update the test dataset. If you have a single dataset project, specify <code>train</code>.<br/>ProjectName:  The name of the project that contains the dataset that you want to update.<br/>
        :return: Status:  The status of the dataset update.<br/>        """
        pass





class MachineLearning(BaseClient):
    r"""Definition of the public APIs exposed by Amazon Machine Learning"""

    class BatchPredictionAvailableWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_batch_predictions` for valid parameters"""
            pass
    class DataSourceAvailableWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_data_sources` for valid parameters"""
            pass
    class EvaluationAvailableWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_evaluations` for valid parameters"""
            pass
    class MLModelAvailableWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_ml_models` for valid parameters"""
            pass


    class DescribeBatchPredictionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_batch_predictions` for valid parameters"""
            pass
    class DescribeDataSourcesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_data_sources` for valid parameters"""
            pass
    class DescribeEvaluationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_evaluations` for valid parameters"""
            pass
    class DescribeMLModelsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_ml_models` for valid parameters"""
            pass


    class AddTagsInput(Mapping):
        pass
    
    class AddTagsOutput(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class CreateBatchPredictionInput(Mapping):
        pass
    
    class CreateBatchPredictionOutput(Mapping):
        pass
    
    class CreateDataSourceFromRDSInput(Mapping):
        pass
    
    class CreateDataSourceFromRDSOutput(Mapping):
        pass
    
    class RDSDataSpec(Mapping):
        pass
    
    class ComputeStatistics(object):
        pass
    
    class CreateDataSourceFromRedshiftInput(Mapping):
        pass
    
    class CreateDataSourceFromRedshiftOutput(Mapping):
        pass
    
    class RedshiftDataSpec(Mapping):
        pass
    
    class CreateDataSourceFromS3Input(Mapping):
        pass
    
    class CreateDataSourceFromS3Output(Mapping):
        pass
    
    class S3DataSpec(Mapping):
        pass
    
    class CreateEvaluationInput(Mapping):
        pass
    
    class CreateEvaluationOutput(Mapping):
        pass
    
    class CreateMLModelInput(Mapping):
        pass
    
    class CreateMLModelOutput(Mapping):
        pass
    
    class TrainingParameters(object):
        pass
    
    class CreateRealtimeEndpointInput(Mapping):
        pass
    
    class CreateRealtimeEndpointOutput(Mapping):
        pass
    
    class DeleteBatchPredictionInput(Mapping):
        pass
    
    class DeleteBatchPredictionOutput(Mapping):
        pass
    
    class DeleteDataSourceInput(Mapping):
        pass
    
    class DeleteDataSourceOutput(Mapping):
        pass
    
    class DeleteEvaluationInput(Mapping):
        pass
    
    class DeleteEvaluationOutput(Mapping):
        pass
    
    class DeleteMLModelInput(Mapping):
        pass
    
    class DeleteMLModelOutput(Mapping):
        pass
    
    class DeleteRealtimeEndpointInput(Mapping):
        pass
    
    class DeleteRealtimeEndpointOutput(Mapping):
        pass
    
    class DeleteTagsInput(Mapping):
        pass
    
    class DeleteTagsOutput(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class DescribeBatchPredictionsInput(Mapping):
        pass
    
    class DescribeBatchPredictionsOutput(Mapping):
        pass
    
    class DescribeDataSourcesInput(Mapping):
        pass
    
    class DescribeDataSourcesOutput(Mapping):
        pass
    
    class DescribeEvaluationsInput(Mapping):
        pass
    
    class DescribeEvaluationsOutput(Mapping):
        pass
    
    class DescribeMLModelsInput(Mapping):
        pass
    
    class DescribeMLModelsOutput(Mapping):
        pass
    
    class DescribeTagsInput(Mapping):
        pass
    
    class DescribeTagsOutput(Mapping):
        pass
    
    class GetBatchPredictionInput(Mapping):
        pass
    
    class GetBatchPredictionOutput(Mapping):
        pass
    
    class GetDataSourceInput(Mapping):
        pass
    
    class GetDataSourceOutput(Mapping):
        pass
    
    class Verbose(object):
        pass
    
    class GetEvaluationInput(Mapping):
        pass
    
    class GetEvaluationOutput(Mapping):
        pass
    
    class GetMLModelInput(Mapping):
        pass
    
    class GetMLModelOutput(Mapping):
        pass
    
    class PredictInput(Mapping):
        pass
    
    class PredictOutput(Mapping):
        pass
    
    class Record(object):
        pass
    
    class UpdateBatchPredictionInput(Mapping):
        pass
    
    class UpdateBatchPredictionOutput(Mapping):
        pass
    
    class UpdateDataSourceInput(Mapping):
        pass
    
    class UpdateDataSourceOutput(Mapping):
        pass
    
    class UpdateEvaluationInput(Mapping):
        pass
    
    class UpdateEvaluationOutput(Mapping):
        pass
    
    class UpdateMLModelInput(Mapping):
        pass
    
    class UpdateMLModelOutput(Mapping):
        pass
    
    class ScoreThreshold(object):
        pass
    
    def add_tags(self, ResourceType: str, ResourceId: str, Tags: List[Tag]) -> AddTagsOutput:
        r"""Adds one or more tags to an object, up to a limit of 10. Each tag consists of a key and an optional value. If you add a tag using a key that is already associated with the ML object, <code>AddTags</code> updates the tag's value.

        :param self:
        :param ResourceType:  The type of the ML object to tag.<br/>ResourceId:  The ID of the ML object to tag. For example, <code>exampleModelId</code>.<br/>Tags:  The key-value pairs to use to create tags. If you specify a key without specifying a value, Amazon ML creates a tag with the specified key and a value of null.<br/>
        :return: ResourceType:  The type of the ML object that was tagged.<br/>ResourceId:  The ID of the ML object that was tagged.<br/>        """
        pass

    def create_batch_prediction(self, OutputUri: str, BatchPredictionDataSourceId: str, MLModelId: str, BatchPredictionId: str, BatchPredictionName: str=None) -> CreateBatchPredictionOutput:
        r"""Generates predictions for a group of observations. The observations to process exist in one or more data files referenced by a <code>DataSource</code>. This operation creates a new <code>BatchPrediction</code>, and uses an <code>MLModel</code> and the data files referenced by the <code>DataSource</code> as information sources.   <code>CreateBatchPrediction</code> is an asynchronous operation. In response to <code>CreateBatchPrediction</code>, Amazon Machine Learning (Amazon ML) immediately returns and sets the <code>BatchPrediction</code> status to <code>PENDING</code>. After the <code>BatchPrediction</code> completes, Amazon ML sets the status to <code>COMPLETED</code>.  You can poll for status updates by using the <a>GetBatchPrediction</a> operation and checking the <code>Status</code> parameter of the result. After the <code>COMPLETED</code> status appears, the results are available in the location specified by the <code>OutputUri</code> parameter.

        :param self:
        :param OutputUri:  The location of an Amazon Simple Storage Service (Amazon S3) bucket or directory to store the batch prediction results. The following substrings are not allowed in the <code>s3 key</code> portion of the <code>outputURI</code> field: ':', '//', '/./', '/../'. Amazon ML needs permissions to store and retrieve the logs on your behalf. For information about how to set permissions, see the <a href="https://docs.aws.amazon.com/machine-learning/latest/dg">Amazon Machine Learning Developer Guide</a>.<br/>BatchPredictionDataSourceId:  The ID of the <code>DataSource</code> that points to the group of observations to predict.<br/>MLModelId:  The ID of the <code>MLModel</code> that will generate predictions for the group of observations. <br/>BatchPredictionName:  A user-supplied name or description of the <code>BatchPrediction</code>. <code>BatchPredictionName</code> can only use the UTF-8 character set.<br/>BatchPredictionId:  A user-supplied ID that uniquely identifies the <code>BatchPrediction</code>.<br/>
        :return: BatchPredictionId:  A user-supplied ID that uniquely identifies the <code>BatchPrediction</code>. This value is identical to the value of the <code>BatchPredictionId</code> in the request.<br/>        """
        pass

    def create_data_source_from_rds(self, RoleARN: str, RDSData: RDSDataSpec, DataSourceId: str, DataSourceName: str=None, ComputeStatistics: ComputeStatistics=None) -> CreateDataSourceFromRDSOutput:
        r"""Creates a <code>DataSource</code> object from an <a href="http://aws.amazon.com/rds/"> Amazon Relational Database Service</a> (Amazon RDS). A <code>DataSource</code> references data that can be used to perform <code>CreateMLModel</code>, <code>CreateEvaluation</code>, or <code>CreateBatchPrediction</code> operations.  <code>CreateDataSourceFromRDS</code> is an asynchronous operation. In response to <code>CreateDataSourceFromRDS</code>, Amazon Machine Learning (Amazon ML) immediately returns and sets the <code>DataSource</code> status to <code>PENDING</code>. After the <code>DataSource</code> is created and ready for use, Amazon ML sets the <code>Status</code> parameter to <code>COMPLETED</code>. <code>DataSource</code> in the <code>COMPLETED</code> or <code>PENDING</code> state can be used only to perform <code>&gt;CreateMLModel</code>&gt;, <code>CreateEvaluation</code>, or <code>CreateBatchPrediction</code> operations.   If Amazon ML cannot accept the input source, it sets the <code>Status</code> parameter to <code>FAILED</code> and includes an error message in the <code>Message</code> attribute of the <code>GetDataSource</code> operation response. 

        :param self:
        :param ComputeStatistics:  The compute statistics for a <code>DataSource</code>. The statistics are generated from the observation data referenced by a <code>DataSource</code>. Amazon ML uses the statistics internally during <code>MLModel</code> training. This parameter must be set to <code>true</code> if the <code/>DataSource<code/> needs to be used for <code>MLModel</code> training. <br/>RoleARN:  The role that Amazon ML assumes on behalf of the user to create and activate a data pipeline in the user's account and copy data using the <code>SelectSqlQuery</code> query from Amazon RDS to Amazon S3. <p/><br/>RDSData:  The data specification of an Amazon RDS <code>DataSource</code>: <ul> <li> DatabaseInformation - <ul> <li>  <code>DatabaseName</code> - The name of the Amazon RDS database. </li> <li>  <code>InstanceIdentifier </code> - A unique identifier for the Amazon RDS database instance. </li> </ul> </li> <li> DatabaseCredentials - AWS Identity and Access Management (IAM) credentials that are used to connect to the Amazon RDS database. </li> <li> ResourceRole - A role (DataPipelineDefaultResourceRole) assumed by an EC2 instance to carry out the copy task from Amazon RDS to Amazon Simple Storage Service (Amazon S3). For more information, see <a href="https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-iam-roles.html">Role templates</a> for data pipelines. </li> <li> ServiceRole - A role (DataPipelineDefaultRole) assumed by the AWS Data Pipeline service to monitor the progress of the copy task from Amazon RDS to Amazon S3. For more information, see <a href="https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-iam-roles.html">Role templates</a> for data pipelines. </li> <li> SecurityInfo - The security information to use to access an RDS DB instance. You need to set up appropriate ingress rules for the security entity IDs provided to allow access to the Amazon RDS instance. Specify a [<code>SubnetId</code>, <code>SecurityGroupIds</code>] pair for a VPC-based RDS DB instance. </li> <li> SelectSqlQuery - A query that is used to retrieve the observation data for the <code>Datasource</code>. </li> <li> S3StagingLocation - The Amazon S3 location for staging Amazon RDS data. The data retrieved from Amazon RDS using <code>SelectSqlQuery</code> is stored in this location. </li> <li> DataSchemaUri - The Amazon S3 location of the <code>DataSchema</code>. </li> <li> DataSchema - A JSON string representing the schema. This is not required if <code>DataSchemaUri</code> is specified.  </li> <li> DataRearrangement - A JSON string that represents the splitting and rearrangement requirements for the <code>Datasource</code>.   Sample - <code> "{\"splitting\":{\"percentBegin\":10,\"percentEnd\":60}}"</code>  </li> </ul>:<br/>DataSourceName:  A user-supplied name or description of the <code>DataSource</code>.<br/>DataSourceId:  A user-supplied ID that uniquely identifies the <code>DataSource</code>. Typically, an Amazon Resource Number (ARN) becomes the ID for a <code>DataSource</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> The security group IDs to be used to access a VPC-based RDS DB instance. Ensure that there are appropriate ingress rules set up to allow access to the RDS DB instance. This attribute is used by Data Pipeline to carry out the copy operation from Amazon RDS to an Amazon S3 task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetId</i> The subnet ID to be used to access a VPC-based RDS DB instance. This attribute is used by Data Pipeline to carry out the copy task from Amazon RDS to Amazon S3.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceRole</i> The role (DataPipelineDefaultRole) assumed by AWS Data Pipeline service to monitor the progress of the copy task from Amazon RDS to Amazon S3. For more information, see <a href="https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-iam-roles.html">Role templates</a> for data pipelines.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceRole</i> The role (DataPipelineDefaultResourceRole) assumed by an Amazon Elastic Compute Cloud (Amazon EC2) instance to carry out the copy operation from Amazon RDS to an Amazon S3 task. For more information, see <a href="https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-iam-roles.html">Role templates</a> for data pipelines.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataSchemaUri</i> The Amazon S3 location of the <code>DataSchema</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataSchema</i> A JSON string that represents the schema for an Amazon RDS <code>DataSource</code>. The <code>DataSchema</code> defines the structure of the observation data in the data file(s) referenced in the <code>DataSource</code>. A <code>DataSchema</code> is not required if you specify a <code>DataSchemaUri</code>  Define your <code>DataSchema</code> as a series of key-value pairs. <code>attributes</code> and <code>excludedVariableNames</code> have an array of key-value pairs for their value. Use the following format to define your <code>DataSchema</code>. { "version": "1.0", "recordAnnotationFieldName": "F1", "recordWeightFieldName": "F2", "targetFieldName": "F3", "dataFormat": "CSV", "dataFileContainsHeader": true, "attributes": [ { "fieldName": "F1", "fieldType": "TEXT" }, { "fieldName": "F2", "fieldType": "NUMERIC" }, { "fieldName": "F3", "fieldType": "CATEGORICAL" }, { "fieldName": "F4", "fieldType": "NUMERIC" }, { "fieldName": "F5", "fieldType": "CATEGORICAL" }, { "fieldName": "F6", "fieldType": "TEXT" }, { "fieldName": "F7", "fieldType": "WEIGHTED_INT_SEQUENCE" }, { "fieldName": "F8", "fieldType": "WEIGHTED_STRING_SEQUENCE" } ], "excludedVariableNames": [ "F6" ] }<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataRearrangement</i> A JSON string that represents the splitting and rearrangement processing to be applied to a <code>DataSource</code>. If the <code>DataRearrangement</code> parameter is not provided, all of the input data is used to create the <code>Datasource</code>. There are multiple parameters that control what data is used to create a datasource: <ul> <li>  <b> <code>percentBegin</code> </b>  Use <code>percentBegin</code> to indicate the beginning of the range of the data used to create the Datasource. If you do not include <code>percentBegin</code> and <code>percentEnd</code>, Amazon ML includes all of the data when creating the datasource. </li> <li>  <b> <code>percentEnd</code> </b>  Use <code>percentEnd</code> to indicate the end of the range of the data used to create the Datasource. If you do not include <code>percentBegin</code> and <code>percentEnd</code>, Amazon ML includes all of the data when creating the datasource. </li> <li>  <b> <code>complement</code> </b>  The <code>complement</code> parameter instructs Amazon ML to use the data that is not included in the range of <code>percentBegin</code> to <code>percentEnd</code> to create a datasource. The <code>complement</code> parameter is useful if you need to create complementary datasources for training and evaluation. To create a complementary datasource, use the same values for <code>percentBegin</code> and <code>percentEnd</code>, along with the <code>complement</code> parameter. For example, the following two datasources do not share any data, and can be used to train and evaluate a model. The first datasource has 25 percent of the data, and the second one has 75 percent of the data. Datasource for evaluation: <code>{"splitting":{"percentBegin":0, "percentEnd":25}}</code>  Datasource for training: <code>{"splitting":{"percentBegin":0, "percentEnd":25, "complement":"true"}}</code>  </li> <li>  <b> <code>strategy</code> </b>  To change how Amazon ML splits the data for a datasource, use the <code>strategy</code> parameter. The default value for the <code>strategy</code> parameter is <code>sequential</code>, meaning that Amazon ML takes all of the data records between the <code>percentBegin</code> and <code>percentEnd</code> parameters for the datasource, in the order that the records appear in the input data. The following two <code>DataRearrangement</code> lines are examples of sequentially ordered training and evaluation datasources: Datasource for evaluation: <code>{"splitting":{"percentBegin":70, "percentEnd":100, "strategy":"sequential"}}</code>  Datasource for training: <code>{"splitting":{"percentBegin":70, "percentEnd":100, "strategy":"sequential", "complement":"true"}}</code>  To randomly split the input data into the proportions indicated by the percentBegin and percentEnd parameters, set the <code>strategy</code> parameter to <code>random</code> and provide a string that is used as the seed value for the random data splitting (for example, you can use the S3 path to your data as the random seed string). If you choose the random split strategy, Amazon ML assigns each row of data a pseudo-random number between 0 and 100, and then selects the rows that have an assigned number between <code>percentBegin</code> and <code>percentEnd</code>. Pseudo-random numbers are assigned using both the input seed string value and the byte offset as a seed, so changing the data results in a different split. Any existing ordering is preserved. The random splitting strategy ensures that variables in the training and evaluation data are distributed similarly. It is useful in the cases where the input data may have an implicit sort order, which would otherwise result in training and evaluation datasources containing non-similar data records. The following two <code>DataRearrangement</code> lines are examples of non-sequentially ordered training and evaluation datasources: Datasource for evaluation: <code>{"splitting":{"percentBegin":70, "percentEnd":100, "strategy":"random", "randomSeed"="s3://my_s3_path/bucket/file.csv"}}</code>  Datasource for training: <code>{"splitting":{"percentBegin":70, "percentEnd":100, "strategy":"random", "randomSeed"="s3://my_s3_path/bucket/file.csv", "complement":"true"}}</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3StagingLocation</i> The Amazon S3 location for staging Amazon RDS data. The data retrieved from Amazon RDS using <code>SelectSqlQuery</code> is stored in this location.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseCredentials</i> The AWS Identity and Access Management (IAM) credentials that are used connect to the Amazon RDS database.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DatabaseCredentials</b>: The AWS Identity and Access Management (IAM) credentials that are used connect to the Amazon RDS database.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SelectSqlQuery</i> The query that is used to retrieve the observation data for the <code>DataSource</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseInformation</i> Describes the <code>DatabaseName</code> and <code>InstanceIdentifier</code> of an Amazon RDS database.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DatabaseInformation</b>: Describes the <code>DatabaseName</code> and <code>InstanceIdentifier</code> of an Amazon RDS database.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> The name of a database hosted on an RDS DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceIdentifier</i> The ID of an RDS DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Password</i> The password to be used by Amazon ML to connect to a database on an RDS DB instance. The password should have sufficient permissions to execute the <code>RDSSelectQuery</code> query.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Username</i> The username to be used by Amazon ML to connect to database on an Amazon RDS instance. The username should have sufficient permissions to execute an <code>RDSSelectSqlQuery</code> query.<br/>
        :return: DataSourceId:  A user-supplied ID that uniquely identifies the datasource. This value should be identical to the value of the <code>DataSourceID</code> in the request. <br/>        """
        pass

    def create_data_source_from_redshift(self, RoleARN: str, DataSpec: RedshiftDataSpec, DataSourceId: str, DataSourceName: str=None, ComputeStatistics: ComputeStatistics=None) -> CreateDataSourceFromRedshiftOutput:
        r"""Creates a <code>DataSource</code> from a database hosted on an Amazon Redshift cluster. A <code>DataSource</code> references data that can be used to perform either <code>CreateMLModel</code>, <code>CreateEvaluation</code>, or <code>CreateBatchPrediction</code> operations.  <code>CreateDataSourceFromRedshift</code> is an asynchronous operation. In response to <code>CreateDataSourceFromRedshift</code>, Amazon Machine Learning (Amazon ML) immediately returns and sets the <code>DataSource</code> status to <code>PENDING</code>. After the <code>DataSource</code> is created and ready for use, Amazon ML sets the <code>Status</code> parameter to <code>COMPLETED</code>. <code>DataSource</code> in <code>COMPLETED</code> or <code>PENDING</code> states can be used to perform only <code>CreateMLModel</code>, <code>CreateEvaluation</code>, or <code>CreateBatchPrediction</code> operations.   If Amazon ML can't accept the input source, it sets the <code>Status</code> parameter to <code>FAILED</code> and includes an error message in the <code>Message</code> attribute of the <code>GetDataSource</code> operation response.  The observations should be contained in the database hosted on an Amazon Redshift cluster and should be specified by a <code>SelectSqlQuery</code> query. Amazon ML executes an <code>Unload</code> command in Amazon Redshift to transfer the result set of the <code>SelectSqlQuery</code> query to <code>S3StagingLocation</code>. After the <code>DataSource</code> has been created, it's ready for use in evaluations and batch predictions. If you plan to use the <code>DataSource</code> to train an <code>MLModel</code>, the <code>DataSource</code> also requires a recipe. A recipe describes how each input variable will be used in training an <code>MLModel</code>. Will the variable be included or excluded from training? Will the variable be manipulated; for example, will it be combined with another variable or will it be split apart into word combinations? The recipe provides answers to these questions. You can't change an existing datasource, but you can copy and modify the settings from an existing Amazon Redshift datasource to create a new datasource. To do so, call <code>GetDataSource</code> for an existing datasource and copy the values to a <code>CreateDataSource</code> call. Change the settings that you want to change and make sure that all required fields have the appropriate values.

        :param self:
        :param ComputeStatistics:  The compute statistics for a <code>DataSource</code>. The statistics are generated from the observation data referenced by a <code>DataSource</code>. Amazon ML uses the statistics internally during <code>MLModel</code> training. This parameter must be set to <code>true</code> if the <code>DataSource</code> needs to be used for <code>MLModel</code> training.<br/>RoleARN:  A fully specified role Amazon Resource Name (ARN). Amazon ML assumes the role on behalf of the user to create the following: <ul> <li> A security group to allow Amazon ML to execute the <code>SelectSqlQuery</code> query on an Amazon Redshift cluster </li> <li> An Amazon S3 bucket policy to grant Amazon ML read/write permissions on the <code>S3StagingLocation</code>  </li> </ul><br/>DataSpec:  The data specification of an Amazon Redshift <code>DataSource</code>: <ul> <li> DatabaseInformation - <ul> <li>  <code>DatabaseName</code> - The name of the Amazon Redshift database. </li> <li>  <code> ClusterIdentifier</code> - The unique ID for the Amazon Redshift cluster. </li> </ul> </li> <li> DatabaseCredentials - The AWS Identity and Access Management (IAM) credentials that are used to connect to the Amazon Redshift database. </li> <li> SelectSqlQuery - The query that is used to retrieve the observation data for the <code>Datasource</code>. </li> <li> S3StagingLocation - The Amazon Simple Storage Service (Amazon S3) location for staging Amazon Redshift data. The data retrieved from Amazon Redshift using the <code>SelectSqlQuery</code> query is stored in this location. </li> <li> DataSchemaUri - The Amazon S3 location of the <code>DataSchema</code>. </li> <li> DataSchema - A JSON string representing the schema. This is not required if <code>DataSchemaUri</code> is specified.  </li> <li> DataRearrangement - A JSON string that represents the splitting and rearrangement requirements for the <code>DataSource</code>.  Sample - <code> "{\"splitting\":{\"percentBegin\":10,\"percentEnd\":60}}"</code>  </li> </ul>:<br/>DataSourceName:  A user-supplied name or description of the <code>DataSource</code>. <br/>DataSourceId:  A user-supplied ID that uniquely identifies the <code>DataSource</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataSchemaUri</i> Describes the schema location for an Amazon Redshift <code>DataSource</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataSchema</i> A JSON string that represents the schema for an Amazon Redshift <code>DataSource</code>. The <code>DataSchema</code> defines the structure of the observation data in the data file(s) referenced in the <code>DataSource</code>. A <code>DataSchema</code> is not required if you specify a <code>DataSchemaUri</code>. Define your <code>DataSchema</code> as a series of key-value pairs. <code>attributes</code> and <code>excludedVariableNames</code> have an array of key-value pairs for their value. Use the following format to define your <code>DataSchema</code>. { "version": "1.0", "recordAnnotationFieldName": "F1", "recordWeightFieldName": "F2", "targetFieldName": "F3", "dataFormat": "CSV", "dataFileContainsHeader": true, "attributes": [ { "fieldName": "F1", "fieldType": "TEXT" }, { "fieldName": "F2", "fieldType": "NUMERIC" }, { "fieldName": "F3", "fieldType": "CATEGORICAL" }, { "fieldName": "F4", "fieldType": "NUMERIC" }, { "fieldName": "F5", "fieldType": "CATEGORICAL" }, { "fieldName": "F6", "fieldType": "TEXT" }, { "fieldName": "F7", "fieldType": "WEIGHTED_INT_SEQUENCE" }, { "fieldName": "F8", "fieldType": "WEIGHTED_STRING_SEQUENCE" } ], "excludedVariableNames": [ "F6" ] }<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataRearrangement</i> A JSON string that represents the splitting and rearrangement processing to be applied to a <code>DataSource</code>. If the <code>DataRearrangement</code> parameter is not provided, all of the input data is used to create the <code>Datasource</code>. There are multiple parameters that control what data is used to create a datasource: <ul> <li>  <b> <code>percentBegin</code> </b>  Use <code>percentBegin</code> to indicate the beginning of the range of the data used to create the Datasource. If you do not include <code>percentBegin</code> and <code>percentEnd</code>, Amazon ML includes all of the data when creating the datasource. </li> <li>  <b> <code>percentEnd</code> </b>  Use <code>percentEnd</code> to indicate the end of the range of the data used to create the Datasource. If you do not include <code>percentBegin</code> and <code>percentEnd</code>, Amazon ML includes all of the data when creating the datasource. </li> <li>  <b> <code>complement</code> </b>  The <code>complement</code> parameter instructs Amazon ML to use the data that is not included in the range of <code>percentBegin</code> to <code>percentEnd</code> to create a datasource. The <code>complement</code> parameter is useful if you need to create complementary datasources for training and evaluation. To create a complementary datasource, use the same values for <code>percentBegin</code> and <code>percentEnd</code>, along with the <code>complement</code> parameter. For example, the following two datasources do not share any data, and can be used to train and evaluate a model. The first datasource has 25 percent of the data, and the second one has 75 percent of the data. Datasource for evaluation: <code>{"splitting":{"percentBegin":0, "percentEnd":25}}</code>  Datasource for training: <code>{"splitting":{"percentBegin":0, "percentEnd":25, "complement":"true"}}</code>  </li> <li>  <b> <code>strategy</code> </b>  To change how Amazon ML splits the data for a datasource, use the <code>strategy</code> parameter. The default value for the <code>strategy</code> parameter is <code>sequential</code>, meaning that Amazon ML takes all of the data records between the <code>percentBegin</code> and <code>percentEnd</code> parameters for the datasource, in the order that the records appear in the input data. The following two <code>DataRearrangement</code> lines are examples of sequentially ordered training and evaluation datasources: Datasource for evaluation: <code>{"splitting":{"percentBegin":70, "percentEnd":100, "strategy":"sequential"}}</code>  Datasource for training: <code>{"splitting":{"percentBegin":70, "percentEnd":100, "strategy":"sequential", "complement":"true"}}</code>  To randomly split the input data into the proportions indicated by the percentBegin and percentEnd parameters, set the <code>strategy</code> parameter to <code>random</code> and provide a string that is used as the seed value for the random data splitting (for example, you can use the S3 path to your data as the random seed string). If you choose the random split strategy, Amazon ML assigns each row of data a pseudo-random number between 0 and 100, and then selects the rows that have an assigned number between <code>percentBegin</code> and <code>percentEnd</code>. Pseudo-random numbers are assigned using both the input seed string value and the byte offset as a seed, so changing the data results in a different split. Any existing ordering is preserved. The random splitting strategy ensures that variables in the training and evaluation data are distributed similarly. It is useful in the cases where the input data may have an implicit sort order, which would otherwise result in training and evaluation datasources containing non-similar data records. The following two <code>DataRearrangement</code> lines are examples of non-sequentially ordered training and evaluation datasources: Datasource for evaluation: <code>{"splitting":{"percentBegin":70, "percentEnd":100, "strategy":"random", "randomSeed"="s3://my_s3_path/bucket/file.csv"}}</code>  Datasource for training: <code>{"splitting":{"percentBegin":70, "percentEnd":100, "strategy":"random", "randomSeed"="s3://my_s3_path/bucket/file.csv", "complement":"true"}}</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3StagingLocation</i> Describes an Amazon S3 location to store the result set of the <code>SelectSqlQuery</code> query.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseCredentials</i> Describes AWS Identity and Access Management (IAM) credentials that are used connect to the Amazon Redshift database.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DatabaseCredentials</b>: Describes AWS Identity and Access Management (IAM) credentials that are used connect to the Amazon Redshift database.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SelectSqlQuery</i> Describes the SQL Query to execute on an Amazon Redshift database for an Amazon Redshift <code>DataSource</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseInformation</i> Describes the <code>DatabaseName</code> and <code>ClusterIdentifier</code> for an Amazon Redshift <code>DataSource</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DatabaseInformation</b>: Describes the <code>DatabaseName</code> and <code>ClusterIdentifier</code> for an Amazon Redshift <code>DataSource</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterIdentifier</i> The ID of an Amazon Redshift cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> The name of a database hosted on an Amazon Redshift cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Password</i> A password to be used by Amazon ML to connect to a database on an Amazon Redshift cluster. The password should have sufficient permissions to execute a <code>RedshiftSelectSqlQuery</code> query. The password should be valid for an Amazon Redshift <a href="https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_USER.html">USER</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Username</i> A username to be used by Amazon Machine Learning (Amazon ML)to connect to a database on an Amazon Redshift cluster. The username should have sufficient permissions to execute the <code>RedshiftSelectSqlQuery</code> query. The username should be valid for an Amazon Redshift <a href="https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_USER.html">USER</a>.<br/>
        :return: DataSourceId:  A user-supplied ID that uniquely identifies the datasource. This value should be identical to the value of the <code>DataSourceID</code> in the request. <br/>        """
        pass

    def create_data_source_from_s3(self, DataSpec: S3DataSpec, DataSourceId: str, DataSourceName: str=None, ComputeStatistics: ComputeStatistics=None) -> CreateDataSourceFromS3Output:
        r"""Creates a <code>DataSource</code> object. A <code>DataSource</code> references data that can be used to perform <code>CreateMLModel</code>, <code>CreateEvaluation</code>, or <code>CreateBatchPrediction</code> operations.  <code>CreateDataSourceFromS3</code> is an asynchronous operation. In response to <code>CreateDataSourceFromS3</code>, Amazon Machine Learning (Amazon ML) immediately returns and sets the <code>DataSource</code> status to <code>PENDING</code>. After the <code>DataSource</code> has been created and is ready for use, Amazon ML sets the <code>Status</code> parameter to <code>COMPLETED</code>. <code>DataSource</code> in the <code>COMPLETED</code> or <code>PENDING</code> state can be used to perform only <code>CreateMLModel</code>, <code>CreateEvaluation</code> or <code>CreateBatchPrediction</code> operations.   If Amazon ML can't accept the input source, it sets the <code>Status</code> parameter to <code>FAILED</code> and includes an error message in the <code>Message</code> attribute of the <code>GetDataSource</code> operation response.  The observation data used in a <code>DataSource</code> should be ready to use; that is, it should have a consistent structure, and missing data values should be kept to a minimum. The observation data must reside in one or more .csv files in an Amazon Simple Storage Service (Amazon S3) location, along with a schema that describes the data items by name and type. The same schema must be used for all of the data files referenced by the <code>DataSource</code>.  After the <code>DataSource</code> has been created, it's ready to use in evaluations and batch predictions. If you plan to use the <code>DataSource</code> to train an <code>MLModel</code>, the <code>DataSource</code> also needs a recipe. A recipe describes how each input variable will be used in training an <code>MLModel</code>. Will the variable be included or excluded from training? Will the variable be manipulated; for example, will it be combined with another variable or will it be split apart into word combinations? The recipe provides answers to these questions.

        :param self:
        :param ComputeStatistics:  The compute statistics for a <code>DataSource</code>. The statistics are generated from the observation data referenced by a <code>DataSource</code>. Amazon ML uses the statistics internally during <code>MLModel</code> training. This parameter must be set to <code>true</code> if the <code/>DataSource<code/> needs to be used for <code>MLModel</code> training.<br/>DataSpec:  The data specification of a <code>DataSource</code>: <ul> <li> DataLocationS3 - The Amazon S3 location of the observation data. </li> <li> DataSchemaLocationS3 - The Amazon S3 location of the <code>DataSchema</code>. </li> <li> DataSchema - A JSON string representing the schema. This is not required if <code>DataSchemaUri</code> is specified.  </li> <li> DataRearrangement - A JSON string that represents the splitting and rearrangement requirements for the <code>Datasource</code>.   Sample - <code> "{\"splitting\":{\"percentBegin\":10,\"percentEnd\":60}}"</code>  </li> </ul>:<br/>DataSourceName:  A user-supplied name or description of the <code>DataSource</code>. <br/>DataSourceId:  A user-supplied identifier that uniquely identifies the <code>DataSource</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataSchemaLocationS3</i> Describes the schema location in Amazon S3. You must provide either the <code>DataSchema</code> or the <code>DataSchemaLocationS3</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataSchema</i>  A JSON string that represents the schema for an Amazon S3 <code>DataSource</code>. The <code>DataSchema</code> defines the structure of the observation data in the data file(s) referenced in the <code>DataSource</code>. You must provide either the <code>DataSchema</code> or the <code>DataSchemaLocationS3</code>. Define your <code>DataSchema</code> as a series of key-value pairs. <code>attributes</code> and <code>excludedVariableNames</code> have an array of key-value pairs for their value. Use the following format to define your <code>DataSchema</code>. { "version": "1.0", "recordAnnotationFieldName": "F1", "recordWeightFieldName": "F2", "targetFieldName": "F3", "dataFormat": "CSV", "dataFileContainsHeader": true, "attributes": [ { "fieldName": "F1", "fieldType": "TEXT" }, { "fieldName": "F2", "fieldType": "NUMERIC" }, { "fieldName": "F3", "fieldType": "CATEGORICAL" }, { "fieldName": "F4", "fieldType": "NUMERIC" }, { "fieldName": "F5", "fieldType": "CATEGORICAL" }, { "fieldName": "F6", "fieldType": "TEXT" }, { "fieldName": "F7", "fieldType": "WEIGHTED_INT_SEQUENCE" }, { "fieldName": "F8", "fieldType": "WEIGHTED_STRING_SEQUENCE" } ], "excludedVariableNames": [ "F6" ] }<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataRearrangement</i> A JSON string that represents the splitting and rearrangement processing to be applied to a <code>DataSource</code>. If the <code>DataRearrangement</code> parameter is not provided, all of the input data is used to create the <code>Datasource</code>. There are multiple parameters that control what data is used to create a datasource: <ul> <li>  <b> <code>percentBegin</code> </b>  Use <code>percentBegin</code> to indicate the beginning of the range of the data used to create the Datasource. If you do not include <code>percentBegin</code> and <code>percentEnd</code>, Amazon ML includes all of the data when creating the datasource. </li> <li>  <b> <code>percentEnd</code> </b>  Use <code>percentEnd</code> to indicate the end of the range of the data used to create the Datasource. If you do not include <code>percentBegin</code> and <code>percentEnd</code>, Amazon ML includes all of the data when creating the datasource. </li> <li>  <b> <code>complement</code> </b>  The <code>complement</code> parameter instructs Amazon ML to use the data that is not included in the range of <code>percentBegin</code> to <code>percentEnd</code> to create a datasource. The <code>complement</code> parameter is useful if you need to create complementary datasources for training and evaluation. To create a complementary datasource, use the same values for <code>percentBegin</code> and <code>percentEnd</code>, along with the <code>complement</code> parameter. For example, the following two datasources do not share any data, and can be used to train and evaluate a model. The first datasource has 25 percent of the data, and the second one has 75 percent of the data. Datasource for evaluation: <code>{"splitting":{"percentBegin":0, "percentEnd":25}}</code>  Datasource for training: <code>{"splitting":{"percentBegin":0, "percentEnd":25, "complement":"true"}}</code>  </li> <li>  <b> <code>strategy</code> </b>  To change how Amazon ML splits the data for a datasource, use the <code>strategy</code> parameter. The default value for the <code>strategy</code> parameter is <code>sequential</code>, meaning that Amazon ML takes all of the data records between the <code>percentBegin</code> and <code>percentEnd</code> parameters for the datasource, in the order that the records appear in the input data. The following two <code>DataRearrangement</code> lines are examples of sequentially ordered training and evaluation datasources: Datasource for evaluation: <code>{"splitting":{"percentBegin":70, "percentEnd":100, "strategy":"sequential"}}</code>  Datasource for training: <code>{"splitting":{"percentBegin":70, "percentEnd":100, "strategy":"sequential", "complement":"true"}}</code>  To randomly split the input data into the proportions indicated by the percentBegin and percentEnd parameters, set the <code>strategy</code> parameter to <code>random</code> and provide a string that is used as the seed value for the random data splitting (for example, you can use the S3 path to your data as the random seed string). If you choose the random split strategy, Amazon ML assigns each row of data a pseudo-random number between 0 and 100, and then selects the rows that have an assigned number between <code>percentBegin</code> and <code>percentEnd</code>. Pseudo-random numbers are assigned using both the input seed string value and the byte offset as a seed, so changing the data results in a different split. Any existing ordering is preserved. The random splitting strategy ensures that variables in the training and evaluation data are distributed similarly. It is useful in the cases where the input data may have an implicit sort order, which would otherwise result in training and evaluation datasources containing non-similar data records. The following two <code>DataRearrangement</code> lines are examples of non-sequentially ordered training and evaluation datasources: Datasource for evaluation: <code>{"splitting":{"percentBegin":70, "percentEnd":100, "strategy":"random", "randomSeed"="s3://my_s3_path/bucket/file.csv"}}</code>  Datasource for training: <code>{"splitting":{"percentBegin":70, "percentEnd":100, "strategy":"random", "randomSeed"="s3://my_s3_path/bucket/file.csv", "complement":"true"}}</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataLocationS3</i> The location of the data file(s) used by a <code>DataSource</code>. The URI specifies a data file or an Amazon Simple Storage Service (Amazon S3) directory or bucket containing data files.<br/>
        :return: DataSourceId:  A user-supplied ID that uniquely identifies the <code>DataSource</code>. This value should be identical to the value of the <code>DataSourceID</code> in the request. <br/>        """
        pass

    def create_evaluation(self, EvaluationDataSourceId: str, MLModelId: str, EvaluationId: str, EvaluationName: str=None) -> CreateEvaluationOutput:
        r"""Creates a new <code>Evaluation</code> of an <code>MLModel</code>. An <code>MLModel</code> is evaluated on a set of observations associated to a <code>DataSource</code>. Like a <code>DataSource</code> for an <code>MLModel</code>, the <code>DataSource</code> for an <code>Evaluation</code> contains values for the <code>Target Variable</code>. The <code>Evaluation</code> compares the predicted result for each observation to the actual outcome and provides a summary so that you know how effective the <code>MLModel</code> functions on the test data. Evaluation generates a relevant performance metric, such as BinaryAUC, RegressionRMSE or MulticlassAvgFScore based on the corresponding <code>MLModelType</code>: <code>BINARY</code>, <code>REGRESSION</code> or <code>MULTICLASS</code>.   <code>CreateEvaluation</code> is an asynchronous operation. In response to <code>CreateEvaluation</code>, Amazon Machine Learning (Amazon ML) immediately returns and sets the evaluation status to <code>PENDING</code>. After the <code>Evaluation</code> is created and ready for use, Amazon ML sets the status to <code>COMPLETED</code>.  You can use the <code>GetEvaluation</code> operation to check progress of the evaluation during the creation operation.

        :param self:
        :param EvaluationDataSourceId:  The ID of the <code>DataSource</code> for the evaluation. The schema of the <code>DataSource</code> must match the schema used to create the <code>MLModel</code>.<br/>MLModelId:  The ID of the <code>MLModel</code> to evaluate. The schema used in creating the <code>MLModel</code> must match the schema of the <code>DataSource</code> used in the <code>Evaluation</code>.<br/>EvaluationName:  A user-supplied name or description of the <code>Evaluation</code>.<br/>EvaluationId:  A user-supplied ID that uniquely identifies the <code>Evaluation</code>.<br/>
        :return: EvaluationId:  The user-supplied ID that uniquely identifies the <code>Evaluation</code>. This value should be identical to the value of the <code>EvaluationId</code> in the request.<br/>        """
        pass

    def create_ml_model(self, TrainingDataSourceId: str, MLModelType: str, MLModelId: str, MLModelName: str=None, Parameters: TrainingParameters=None, Recipe: str=None, RecipeUri: str=None) -> CreateMLModelOutput:
        r"""Creates a new <code>MLModel</code> using the <code>DataSource</code> and the recipe as information sources.  An <code>MLModel</code> is nearly immutable. Users can update only the <code>MLModelName</code> and the <code>ScoreThreshold</code> in an <code>MLModel</code> without creating a new <code>MLModel</code>.   <code>CreateMLModel</code> is an asynchronous operation. In response to <code>CreateMLModel</code>, Amazon Machine Learning (Amazon ML) immediately returns and sets the <code>MLModel</code> status to <code>PENDING</code>. After the <code>MLModel</code> has been created and ready is for use, Amazon ML sets the status to <code>COMPLETED</code>.  You can use the <code>GetMLModel</code> operation to check the progress of the <code>MLModel</code> during the creation operation.  <code>CreateMLModel</code> requires a <code>DataSource</code> with computed statistics, which can be created by setting <code>ComputeStatistics</code> to <code>true</code> in <code>CreateDataSourceFromRDS</code>, <code>CreateDataSourceFromS3</code>, or <code>CreateDataSourceFromRedshift</code> operations. 

        :param self:
        :param RecipeUri:  The Amazon Simple Storage Service (Amazon S3) location and file name that contains the <code>MLModel</code> recipe. You must specify either the recipe or its URI. If you don't specify a recipe or its URI, Amazon ML creates a default.<br/>Recipe:  The data recipe for creating the <code>MLModel</code>. You must specify either the recipe or its URI. If you don't specify a recipe or its URI, Amazon ML creates a default.<br/>TrainingDataSourceId:  The <code>DataSource</code> that points to the training data.<br/>Parameters:  A list of the training parameters in the <code>MLModel</code>. The list is implemented as a map of key-value pairs. The following is the current set of training parameters: <ul> <li>  <code>sgd.maxMLModelSizeInBytes</code> - The maximum allowed size of the model. Depending on the input data, the size of the model might affect its performance.  The value is an integer that ranges from <code>100000</code> to <code>2147483648</code>. The default value is <code>33554432</code>. </li> <li>  <code>sgd.maxPasses</code> - The number of times that the training process traverses the observations to build the <code>MLModel</code>. The value is an integer that ranges from <code>1</code> to <code>10000</code>. The default value is <code>10</code>. </li> <li>  <code>sgd.shuffleType</code> - Whether Amazon ML shuffles the training data. Shuffling the data improves a model's ability to find the optimal solution for a variety of data types. The valid values are <code>auto</code> and <code>none</code>. The default value is <code>none</code>. We strongly recommend that you shuffle your data. </li> <li>  <code>sgd.l1RegularizationAmount</code> - The coefficient regularization L1 norm. It controls overfitting the data by penalizing large coefficients. This tends to drive coefficients to zero, resulting in a sparse feature set. If you use this parameter, start by specifying a small value, such as <code>1.0E-08</code>. The value is a double that ranges from <code>0</code> to <code>MAX_DOUBLE</code>. The default is to not use L1 normalization. This parameter can't be used when <code>L2</code> is specified. Use this parameter sparingly. </li> <li>  <code>sgd.l2RegularizationAmount</code> - The coefficient regularization L2 norm. It controls overfitting the data by penalizing large coefficients. This tends to drive coefficients to small, nonzero values. If you use this parameter, start by specifying a small value, such as <code>1.0E-08</code>. The value is a double that ranges from <code>0</code> to <code>MAX_DOUBLE</code>. The default is to not use L2 normalization. This parameter can't be used when <code>L1</code> is specified. Use this parameter sparingly. </li> </ul><br/>MLModelType:  The category of supervised learning that this <code>MLModel</code> will address. Choose from the following types: <ul> <li> Choose <code>REGRESSION</code> if the <code>MLModel</code> will be used to predict a numeric value. </li> <li> Choose <code>BINARY</code> if the <code>MLModel</code> result has two possible values. </li> <li> Choose <code>MULTICLASS</code> if the <code>MLModel</code> result has a limited number of values. </li> </ul>  For more information, see the <a href="https://docs.aws.amazon.com/machine-learning/latest/dg">Amazon Machine Learning Developer Guide</a>.<br/>MLModelName:  A user-supplied name or description of the <code>MLModel</code>.<br/>MLModelId:  A user-supplied ID that uniquely identifies the <code>MLModel</code>.<br/>
        :return: MLModelId:  A user-supplied ID that uniquely identifies the <code>MLModel</code>. This value should be identical to the value of the <code>MLModelId</code> in the request. <br/>        """
        pass

    def create_realtime_endpoint(self, MLModelId: str) -> CreateRealtimeEndpointOutput:
        r"""Creates a real-time endpoint for the <code>MLModel</code>. The endpoint contains the URI of the <code>MLModel</code>; that is, the location to send real-time prediction requests for the specified <code>MLModel</code>.

        :param self:
        :param MLModelId:  The ID assigned to the <code>MLModel</code> during creation.<br/>
        :return: RealtimeEndpointInfo:  The endpoint information of the <code>MLModel</code> :<br/>MLModelId:  A user-supplied ID that uniquely identifies the <code>MLModel</code>. This value should be identical to the value of the <code>MLModelId</code> in the request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointStatus</i>  The current status of the real-time endpoint for the <code>MLModel</code>. This element can have one of the following values:  <ul> <li>  <code>NONE</code> - Endpoint does not exist or was previously deleted. </li> <li>  <code>READY</code> - Endpoint is ready to be used for real-time predictions. </li> <li>  <code>UPDATING</code> - Updating/creating the endpoint.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointUrl</i> The URI that specifies where to send real-time prediction requests for the <code>MLModel</code>.  <b>Note:</b> The application must wait until the real-time endpoint is ready before using this URI.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedAt</i> The time that the request to create the real-time endpoint for the <code>MLModel</code> was received. The time is expressed in epoch time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PeakRequestsPerSecond</i>  The maximum processing rate for the real-time endpoint for <code>MLModel</code>, measured in incoming requests per second.<br/>        """
        pass

    def delete_batch_prediction(self, BatchPredictionId: str) -> DeleteBatchPredictionOutput:
        r"""Assigns the DELETED status to a <code>BatchPrediction</code>, rendering it unusable. After using the <code>DeleteBatchPrediction</code> operation, you can use the <a>GetBatchPrediction</a> operation to verify that the status of the <code>BatchPrediction</code> changed to DELETED.  <b>Caution:</b> The result of the <code>DeleteBatchPrediction</code> operation is irreversible.

        :param self:
        :param BatchPredictionId:  A user-supplied ID that uniquely identifies the <code>BatchPrediction</code>.<br/>
        :return: BatchPredictionId:  A user-supplied ID that uniquely identifies the <code>BatchPrediction</code>. This value should be identical to the value of the <code>BatchPredictionID</code> in the request.<br/>        """
        pass

    def delete_data_source(self, DataSourceId: str) -> DeleteDataSourceOutput:
        r"""Assigns the DELETED status to a <code>DataSource</code>, rendering it unusable. After using the <code>DeleteDataSource</code> operation, you can use the <a>GetDataSource</a> operation to verify that the status of the <code>DataSource</code> changed to DELETED.  <b>Caution:</b> The results of the <code>DeleteDataSource</code> operation are irreversible.

        :param self:
        :param DataSourceId:  A user-supplied ID that uniquely identifies the <code>DataSource</code>.<br/>
        :return: DataSourceId:  A user-supplied ID that uniquely identifies the <code>DataSource</code>. This value should be identical to the value of the <code>DataSourceID</code> in the request.<br/>        """
        pass

    def delete_evaluation(self, EvaluationId: str) -> DeleteEvaluationOutput:
        r"""Assigns the <code>DELETED</code> status to an <code>Evaluation</code>, rendering it unusable. After invoking the <code>DeleteEvaluation</code> operation, you can use the <code>GetEvaluation</code> operation to verify that the status of the <code>Evaluation</code> changed to <code>DELETED</code>.  <b>Caution:</b> The results of the <code>DeleteEvaluation</code> operation are irreversible.

        :param self:
        :param EvaluationId:  A user-supplied ID that uniquely identifies the <code>Evaluation</code> to delete.<br/>
        :return: EvaluationId:  A user-supplied ID that uniquely identifies the <code>Evaluation</code>. This value should be identical to the value of the <code>EvaluationId</code> in the request.<br/>        """
        pass

    def delete_ml_model(self, MLModelId: str) -> DeleteMLModelOutput:
        r"""Assigns the <code>DELETED</code> status to an <code>MLModel</code>, rendering it unusable. After using the <code>DeleteMLModel</code> operation, you can use the <code>GetMLModel</code> operation to verify that the status of the <code>MLModel</code> changed to DELETED.  <b>Caution:</b> The result of the <code>DeleteMLModel</code> operation is irreversible.

        :param self:
        :param MLModelId:  A user-supplied ID that uniquely identifies the <code>MLModel</code>.<br/>
        :return: MLModelId:  A user-supplied ID that uniquely identifies the <code>MLModel</code>. This value should be identical to the value of the <code>MLModelID</code> in the request.<br/>        """
        pass

    def delete_realtime_endpoint(self, MLModelId: str) -> DeleteRealtimeEndpointOutput:
        r"""Deletes a real time endpoint of an <code>MLModel</code>.

        :param self:
        :param MLModelId:  The ID assigned to the <code>MLModel</code> during creation.<br/>
        :return: RealtimeEndpointInfo:  The endpoint information of the <code>MLModel</code> :<br/>MLModelId:  A user-supplied ID that uniquely identifies the <code>MLModel</code>. This value should be identical to the value of the <code>MLModelId</code> in the request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointStatus</i>  The current status of the real-time endpoint for the <code>MLModel</code>. This element can have one of the following values:  <ul> <li>  <code>NONE</code> - Endpoint does not exist or was previously deleted. </li> <li>  <code>READY</code> - Endpoint is ready to be used for real-time predictions. </li> <li>  <code>UPDATING</code> - Updating/creating the endpoint.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointUrl</i> The URI that specifies where to send real-time prediction requests for the <code>MLModel</code>.  <b>Note:</b> The application must wait until the real-time endpoint is ready before using this URI.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedAt</i> The time that the request to create the real-time endpoint for the <code>MLModel</code> was received. The time is expressed in epoch time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PeakRequestsPerSecond</i>  The maximum processing rate for the real-time endpoint for <code>MLModel</code>, measured in incoming requests per second.<br/>        """
        pass

    def delete_tags(self, ResourceType: str, ResourceId: str, TagKeys: List[TagKey]) -> DeleteTagsOutput:
        r"""Deletes the specified tags associated with an ML object. After this operation is complete, you can't recover deleted tags. If you specify a tag that doesn't exist, Amazon ML ignores it.

        :param self:
        :param ResourceType:  The type of the tagged ML object.<br/>ResourceId:  The ID of the tagged ML object. For example, <code>exampleModelId</code>.<br/>TagKeys:  One or more tags to delete.<br/>
        :return: ResourceType:  The type of the ML object from which tags were deleted.<br/>ResourceId:  The ID of the ML object from which tags were deleted.<br/>        """
        pass

    def describe_batch_predictions(self, FilterVariable: str=None, EQ: str=None, GT: str=None, LT: str=None, GE: str=None, LE: str=None, NE: str=None, Prefix: str=None, SortOrder: str=None, NextToken: str=None, Limit: int=None) -> DescribeBatchPredictionsOutput:
        r"""Returns a list of <code>BatchPrediction</code> operations that match the search criteria in the request.

        :param self:
        :param Limit:  The number of pages of information to include in the result. The range of acceptable values is <code>1</code> through <code>100</code>. The default value is <code>100</code>.<br/>NextToken:  An ID of the page in the paginated results.<br/>SortOrder:  A two-value parameter that determines the sequence of the resulting list of <code>MLModel</code>s. <ul> <li>  <code>asc</code> - Arranges the list in ascending order (A-Z, 0-9). </li> <li>  <code>dsc</code> - Arranges the list in descending order (Z-A, 9-0). </li> </ul> Results are sorted by <code>FilterVariable</code>.<br/>Prefix:  A string that is found at the beginning of a variable, such as <code>Name</code> or <code>Id</code>. For example, a <code>Batch Prediction</code> operation could have the <code>Name</code> <code>2014-09-09-HolidayGiftMailer</code>. To search for this <code>BatchPrediction</code>, select <code>Name</code> for the <code>FilterVariable</code> and any of the following strings for the <code>Prefix</code>:  <ul> <li> 2014-09 </li> <li> 2014-09-09 </li> <li> 2014-09-09-Holiday </li> </ul><br/>NE:  The not equal to operator. The <code>BatchPrediction</code> results will have <code>FilterVariable</code> values not equal to the value specified with <code>NE</code>.<br/>LE:  The less than or equal to operator. The <code>BatchPrediction</code> results will have <code>FilterVariable</code> values that are less than or equal to the value specified with <code>LE</code>.<br/>GE:  The greater than or equal to operator. The <code>BatchPrediction</code> results will have <code>FilterVariable</code> values that are greater than or equal to the value specified with <code>GE</code>. <br/>LT:  The less than operator. The <code>BatchPrediction</code> results will have <code>FilterVariable</code> values that are less than the value specified with <code>LT</code>.<br/>GT:  The greater than operator. The <code>BatchPrediction</code> results will have <code>FilterVariable</code> values that are greater than the value specified with <code>GT</code>.<br/>EQ:  The equal to operator. The <code>BatchPrediction</code> results will have <code>FilterVariable</code> values that exactly match the value specified with <code>EQ</code>.<br/>FilterVariable:  Use one of the following variables to filter a list of <code>BatchPrediction</code>: <ul> <li>  <code>CreatedAt</code> - Sets the search criteria to the <code>BatchPrediction</code> creation date. </li> <li>  <code>Status</code> - Sets the search criteria to the <code>BatchPrediction</code> status. </li> <li>  <code>Name</code> - Sets the search criteria to the contents of the <code>BatchPrediction</code> <b> </b> <code>Name</code>. </li> <li>  <code>IAMUser</code> - Sets the search criteria to the user account that invoked the <code>BatchPrediction</code> creation. </li> <li>  <code>MLModelId</code> - Sets the search criteria to the <code>MLModel</code> used in the <code>BatchPrediction</code>. </li> <li>  <code>DataSourceId</code> - Sets the search criteria to the <code>DataSource</code> used in the <code>BatchPrediction</code>. </li> <li>  <code>DataURI</code> - Sets the search criteria to the data file(s) used in the <code>BatchPrediction</code>. The URL can identify either a file or an Amazon Simple Storage Solution (Amazon S3) bucket or directory. </li> </ul><br/>
        :return: NextToken:  The ID of the next page in the paginated results that indicates at least one more page follows.<br/>Results:  A list of <code>BatchPrediction</code> objects that meet the search criteria. <br/>        """
        pass

    def describe_data_sources(self, FilterVariable: str=None, EQ: str=None, GT: str=None, LT: str=None, GE: str=None, LE: str=None, NE: str=None, Prefix: str=None, SortOrder: str=None, NextToken: str=None, Limit: int=None) -> DescribeDataSourcesOutput:
        r"""Returns a list of <code>DataSource</code> that match the search criteria in the request.

        :param self:
        :param Limit:   The maximum number of <code>DataSource</code> to include in the result.<br/>NextToken:  The ID of the page in the paginated results.<br/>SortOrder:  A two-value parameter that determines the sequence of the resulting list of <code>DataSource</code>. <ul> <li>  <code>asc</code> - Arranges the list in ascending order (A-Z, 0-9). </li> <li>  <code>dsc</code> - Arranges the list in descending order (Z-A, 9-0). </li> </ul> Results are sorted by <code>FilterVariable</code>.<br/>Prefix:  A string that is found at the beginning of a variable, such as <code>Name</code> or <code>Id</code>. For example, a <code>DataSource</code> could have the <code>Name</code> <code>2014-09-09-HolidayGiftMailer</code>. To search for this <code>DataSource</code>, select <code>Name</code> for the <code>FilterVariable</code> and any of the following strings for the <code>Prefix</code>:  <ul> <li> 2014-09 </li> <li> 2014-09-09 </li> <li> 2014-09-09-Holiday </li> </ul><br/>NE:  The not equal to operator. The <code>DataSource</code> results will have <code>FilterVariable</code> values not equal to the value specified with <code>NE</code>.<br/>LE:  The less than or equal to operator. The <code>DataSource</code> results will have <code>FilterVariable</code> values that are less than or equal to the value specified with <code>LE</code>.<br/>GE:  The greater than or equal to operator. The <code>DataSource</code> results will have <code>FilterVariable</code> values that are greater than or equal to the value specified with <code>GE</code>. <br/>LT:  The less than operator. The <code>DataSource</code> results will have <code>FilterVariable</code> values that are less than the value specified with <code>LT</code>.<br/>GT:  The greater than operator. The <code>DataSource</code> results will have <code>FilterVariable</code> values that are greater than the value specified with <code>GT</code>.<br/>EQ:  The equal to operator. The <code>DataSource</code> results will have <code>FilterVariable</code> values that exactly match the value specified with <code>EQ</code>.<br/>FilterVariable:  Use one of the following variables to filter a list of <code>DataSource</code>: <ul> <li>  <code>CreatedAt</code> - Sets the search criteria to <code>DataSource</code> creation dates. </li> <li>  <code>Status</code> - Sets the search criteria to <code>DataSource</code> statuses. </li> <li>  <code>Name</code> - Sets the search criteria to the contents of <code>DataSource</code> <code>Name</code>. </li> <li>  <code>DataUri</code> - Sets the search criteria to the URI of data files used to create the <code>DataSource</code>. The URI can identify either a file or an Amazon Simple Storage Service (Amazon S3) bucket or directory. </li> <li>  <code>IAMUser</code> - Sets the search criteria to the user account that invoked the <code>DataSource</code> creation. </li> </ul><br/>
        :return: NextToken:  An ID of the next page in the paginated results that indicates at least one more page follows.<br/>Results:  A list of <code>DataSource</code> that meet the search criteria. <br/>        """
        pass

    def describe_evaluations(self, FilterVariable: str=None, EQ: str=None, GT: str=None, LT: str=None, GE: str=None, LE: str=None, NE: str=None, Prefix: str=None, SortOrder: str=None, NextToken: str=None, Limit: int=None) -> DescribeEvaluationsOutput:
        r"""Returns a list of <code>DescribeEvaluations</code> that match the search criteria in the request.

        :param self:
        :param Limit:   The maximum number of <code>Evaluation</code> to include in the result.<br/>NextToken:  The ID of the page in the paginated results.<br/>SortOrder:  A two-value parameter that determines the sequence of the resulting list of <code>Evaluation</code>. <ul> <li>  <code>asc</code> - Arranges the list in ascending order (A-Z, 0-9). </li> <li>  <code>dsc</code> - Arranges the list in descending order (Z-A, 9-0). </li> </ul> Results are sorted by <code>FilterVariable</code>.<br/>Prefix:  A string that is found at the beginning of a variable, such as <code>Name</code> or <code>Id</code>. For example, an <code>Evaluation</code> could have the <code>Name</code> <code>2014-09-09-HolidayGiftMailer</code>. To search for this <code>Evaluation</code>, select <code>Name</code> for the <code>FilterVariable</code> and any of the following strings for the <code>Prefix</code>:  <ul> <li> 2014-09 </li> <li> 2014-09-09 </li> <li> 2014-09-09-Holiday </li> </ul><br/>NE:  The not equal to operator. The <code>Evaluation</code> results will have <code>FilterVariable</code> values not equal to the value specified with <code>NE</code>.<br/>LE:  The less than or equal to operator. The <code>Evaluation</code> results will have <code>FilterVariable</code> values that are less than or equal to the value specified with <code>LE</code>.<br/>GE:  The greater than or equal to operator. The <code>Evaluation</code> results will have <code>FilterVariable</code> values that are greater than or equal to the value specified with <code>GE</code>. <br/>LT:  The less than operator. The <code>Evaluation</code> results will have <code>FilterVariable</code> values that are less than the value specified with <code>LT</code>.<br/>GT:  The greater than operator. The <code>Evaluation</code> results will have <code>FilterVariable</code> values that are greater than the value specified with <code>GT</code>.<br/>EQ:  The equal to operator. The <code>Evaluation</code> results will have <code>FilterVariable</code> values that exactly match the value specified with <code>EQ</code>.<br/>FilterVariable:  Use one of the following variable to filter a list of <code>Evaluation</code> objects: <ul> <li>  <code>CreatedAt</code> - Sets the search criteria to the <code>Evaluation</code> creation date. </li> <li>  <code>Status</code> - Sets the search criteria to the <code>Evaluation</code> status. </li> <li>  <code>Name</code> - Sets the search criteria to the contents of <code>Evaluation</code> <b> </b> <code>Name</code>. </li> <li>  <code>IAMUser</code> - Sets the search criteria to the user account that invoked an <code>Evaluation</code>. </li> <li>  <code>MLModelId</code> - Sets the search criteria to the <code>MLModel</code> that was evaluated. </li> <li>  <code>DataSourceId</code> - Sets the search criteria to the <code>DataSource</code> used in <code>Evaluation</code>. </li> <li>  <code>DataUri</code> - Sets the search criteria to the data file(s) used in <code>Evaluation</code>. The URL can identify either a file or an Amazon Simple Storage Solution (Amazon S3) bucket or directory. </li> </ul><br/>
        :return: NextToken:  The ID of the next page in the paginated results that indicates at least one more page follows.<br/>Results:  A list of <code>Evaluation</code> that meet the search criteria. <br/>        """
        pass

    def describe_ml_models(self, FilterVariable: str=None, EQ: str=None, GT: str=None, LT: str=None, GE: str=None, LE: str=None, NE: str=None, Prefix: str=None, SortOrder: str=None, NextToken: str=None, Limit: int=None) -> DescribeMLModelsOutput:
        r"""Returns a list of <code>MLModel</code> that match the search criteria in the request.

        :param self:
        :param Limit:  The number of pages of information to include in the result. The range of acceptable values is <code>1</code> through <code>100</code>. The default value is <code>100</code>.<br/>NextToken:  The ID of the page in the paginated results.<br/>SortOrder:  A two-value parameter that determines the sequence of the resulting list of <code>MLModel</code>. <ul> <li>  <code>asc</code> - Arranges the list in ascending order (A-Z, 0-9). </li> <li>  <code>dsc</code> - Arranges the list in descending order (Z-A, 9-0). </li> </ul> Results are sorted by <code>FilterVariable</code>.<br/>Prefix:  A string that is found at the beginning of a variable, such as <code>Name</code> or <code>Id</code>. For example, an <code>MLModel</code> could have the <code>Name</code> <code>2014-09-09-HolidayGiftMailer</code>. To search for this <code>MLModel</code>, select <code>Name</code> for the <code>FilterVariable</code> and any of the following strings for the <code>Prefix</code>:  <ul> <li> 2014-09 </li> <li> 2014-09-09 </li> <li> 2014-09-09-Holiday </li> </ul><br/>NE:  The not equal to operator. The <code>MLModel</code> results will have <code>FilterVariable</code> values not equal to the value specified with <code>NE</code>.<br/>LE:  The less than or equal to operator. The <code>MLModel</code> results will have <code>FilterVariable</code> values that are less than or equal to the value specified with <code>LE</code>.<br/>GE:  The greater than or equal to operator. The <code>MLModel</code> results will have <code>FilterVariable</code> values that are greater than or equal to the value specified with <code>GE</code>. <br/>LT:  The less than operator. The <code>MLModel</code> results will have <code>FilterVariable</code> values that are less than the value specified with <code>LT</code>.<br/>GT:  The greater than operator. The <code>MLModel</code> results will have <code>FilterVariable</code> values that are greater than the value specified with <code>GT</code>.<br/>EQ:  The equal to operator. The <code>MLModel</code> results will have <code>FilterVariable</code> values that exactly match the value specified with <code>EQ</code>.<br/>FilterVariable:  Use one of the following variables to filter a list of <code>MLModel</code>: <ul> <li>  <code>CreatedAt</code> - Sets the search criteria to <code>MLModel</code> creation date. </li> <li>  <code>Status</code> - Sets the search criteria to <code>MLModel</code> status. </li> <li>  <code>Name</code> - Sets the search criteria to the contents of <code>MLModel</code> <b> </b> <code>Name</code>. </li> <li>  <code>IAMUser</code> - Sets the search criteria to the user account that invoked the <code>MLModel</code> creation. </li> <li>  <code>TrainingDataSourceId</code> - Sets the search criteria to the <code>DataSource</code> used to train one or more <code>MLModel</code>. </li> <li>  <code>RealtimeEndpointStatus</code> - Sets the search criteria to the <code>MLModel</code> real-time endpoint status. </li> <li>  <code>MLModelType</code> - Sets the search criteria to <code>MLModel</code> type: binary, regression, or multi-class. </li> <li>  <code>Algorithm</code> - Sets the search criteria to the algorithm that the <code>MLModel</code> uses. </li> <li>  <code>TrainingDataURI</code> - Sets the search criteria to the data file(s) used in training a <code>MLModel</code>. The URL can identify either a file or an Amazon Simple Storage Service (Amazon S3) bucket or directory. </li> </ul><br/>
        :return: NextToken:  The ID of the next page in the paginated results that indicates at least one more page follows.<br/>Results:  A list of <code>MLModel</code> that meet the search criteria.<br/>        """
        pass

    def describe_tags(self, ResourceType: str, ResourceId: str) -> DescribeTagsOutput:
        r"""Describes one or more of the tags for your Amazon ML object.

        :param self:
        :param ResourceType:  The type of the ML object.<br/>ResourceId:  The ID of the ML object. For example, <code>exampleModelId</code>. <br/>
        :return: Tags:  A list of tags associated with the ML object.<br/>ResourceType:  The type of the tagged ML object.<br/>ResourceId:  The ID of the tagged ML object.<br/>        """
        pass

    def get_batch_prediction(self, BatchPredictionId: str) -> GetBatchPredictionOutput:
        r"""Returns a <code>BatchPrediction</code> that includes detailed metadata, status, and data file information for a <code>Batch Prediction</code> request.

        :param self:
        :param BatchPredictionId:  An ID assigned to the <code>BatchPrediction</code> at creation.<br/>
        :return: InvalidRecordCount:  The number of invalid records that Amazon Machine Learning saw while processing the <code>BatchPrediction</code>.<br/>TotalRecordCount:  The number of total records that Amazon Machine Learning saw while processing the <code>BatchPrediction</code>.<br/>StartedAt:  The epoch time when Amazon Machine Learning marked the <code>BatchPrediction</code> as <code>INPROGRESS</code>. <code>StartedAt</code> isn't available if the <code>BatchPrediction</code> is in the <code>PENDING</code> state.<br/>FinishedAt:  The epoch time when Amazon Machine Learning marked the <code>BatchPrediction</code> as <code>COMPLETED</code> or <code>FAILED</code>. <code>FinishedAt</code> is only available when the <code>BatchPrediction</code> is in the <code>COMPLETED</code> or <code>FAILED</code> state.<br/>ComputeTime:  The approximate CPU time in milliseconds that Amazon Machine Learning spent processing the <code>BatchPrediction</code>, normalized and scaled on computation resources. <code>ComputeTime</code> is only available if the <code>BatchPrediction</code> is in the <code>COMPLETED</code> state.<br/>Message:  A description of the most recent details about processing the batch prediction request.<br/>LogUri:  A link to the file that contains logs of the <code>CreateBatchPrediction</code> operation.<br/>OutputUri:  The location of an Amazon S3 bucket or directory to receive the operation results.<br/>Status:  The status of the <code>BatchPrediction</code>, which can be one of the following values: <ul> <li>  <code>PENDING</code> - Amazon Machine Learning (Amazon ML) submitted a request to generate batch predictions. </li> <li>  <code>INPROGRESS</code> - The batch predictions are in progress. </li> <li>  <code>FAILED</code> - The request to perform a batch prediction did not run to completion. It is not usable. </li> <li>  <code>COMPLETED</code> - The batch prediction process completed successfully. </li> <li>  <code>DELETED</code> - The <code>BatchPrediction</code> is marked as deleted. It is not usable. </li> </ul><br/>Name:  A user-supplied name or description of the <code>BatchPrediction</code>.<br/>LastUpdatedAt:  The time of the most recent edit to <code>BatchPrediction</code>. The time is expressed in epoch time.<br/>CreatedAt:  The time when the <code>BatchPrediction</code> was created. The time is expressed in epoch time.<br/>CreatedByIamUser:  The AWS user account that invoked the <code>BatchPrediction</code>. The account type can be either an AWS root account or an AWS Identity and Access Management (IAM) user account.<br/>InputDataLocationS3:  The location of the data file or directory in Amazon Simple Storage Service (Amazon S3).<br/>BatchPredictionDataSourceId:  The ID of the <code>DataSource</code> that was used to create the <code>BatchPrediction</code>. <br/>MLModelId:  The ID of the <code>MLModel</code> that generated predictions for the <code>BatchPrediction</code> request.<br/>BatchPredictionId:  An ID assigned to the <code>BatchPrediction</code> at creation. This value should be identical to the value of the <code>BatchPredictionID</code> in the request.<br/>        """
        pass

    def get_data_source(self, DataSourceId: str, Verbose: Verbose=None) -> GetDataSourceOutput:
        r"""Returns a <code>DataSource</code> that includes metadata and data file information, as well as the current status of the <code>DataSource</code>.  <code>GetDataSource</code> provides results in normal or verbose format. The verbose format adds the schema description and the list of files pointed to by the DataSource to the normal format.

        :param self:
        :param Verbose:  Specifies whether the <code>GetDataSource</code> operation should return <code>DataSourceSchema</code>. If true, <code>DataSourceSchema</code> is returned. If false, <code>DataSourceSchema</code> is not returned.<br/>DataSourceId:  The ID assigned to the <code>DataSource</code> at creation.<br/>
        :return: DataSourceSchema:  The schema used by all of the data files of this <code>DataSource</code>.  <b>Note:</b> This parameter is provided as part of the verbose format.<br/>StartedAt:  The epoch time when Amazon Machine Learning marked the <code>DataSource</code> as <code>INPROGRESS</code>. <code>StartedAt</code> isn't available if the <code>DataSource</code> is in the <code>PENDING</code> state.<br/>FinishedAt:  The epoch time when Amazon Machine Learning marked the <code>DataSource</code> as <code>COMPLETED</code> or <code>FAILED</code>. <code>FinishedAt</code> is only available when the <code>DataSource</code> is in the <code>COMPLETED</code> or <code>FAILED</code> state.<br/>ComputeTime:  The approximate CPU time in milliseconds that Amazon Machine Learning spent processing the <code>DataSource</code>, normalized and scaled on computation resources. <code>ComputeTime</code> is only available if the <code>DataSource</code> is in the <code>COMPLETED</code> state and the <code>ComputeStatistics</code> is set to true.<br/>ComputeStatistics:   The parameter is <code>true</code> if statistics need to be generated from the observation data. <br/>RoleARN:  The Amazon Resource Name (ARN) of an <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-toplevel.html#roles-about-termsandconcepts">AWS IAM Role</a>, such as the following: arn:aws:iam::account:role/rolename. <br/>RDSMetadata:  The datasource details that are specific to Amazon RDS.:<br/>RedshiftMetadata:  Describes the <code>DataSource</code> details specific to Amazon Redshift.:<br/>Message:  The user-supplied description of the most recent details about creating the <code>DataSource</code>.<br/>LogUri:  A link to the file containing logs of <code>CreateDataSourceFrom*</code> operations.<br/>Status:  The current status of the <code>DataSource</code>. This element can have one of the following values: <ul> <li>  <code>PENDING</code> - Amazon ML submitted a request to create a <code>DataSource</code>. </li> <li>  <code>INPROGRESS</code> - The creation process is underway. </li> <li>  <code>FAILED</code> - The request to create a <code>DataSource</code> did not run to completion. It is not usable. </li> <li>  <code>COMPLETED</code> - The creation process completed successfully. </li> <li>  <code>DELETED</code> - The <code>DataSource</code> is marked as deleted. It is not usable. </li> </ul><br/>Name:  A user-supplied name or description of the <code>DataSource</code>.<br/>NumberOfFiles:  The number of data files referenced by the <code>DataSource</code>.<br/>DataSizeInBytes:  The total size of observations in the data files.<br/>LastUpdatedAt:  The time of the most recent edit to the <code>DataSource</code>. The time is expressed in epoch time.<br/>CreatedAt:  The time that the <code>DataSource</code> was created. The time is expressed in epoch time.<br/>CreatedByIamUser:  The AWS user account from which the <code>DataSource</code> was created. The account type can be either an AWS root account or an AWS Identity and Access Management (IAM) user account.<br/>DataRearrangement:  A JSON string that represents the splitting and rearrangement requirement used when this <code>DataSource</code> was created.<br/>DataLocationS3:  The location of the data file or directory in Amazon Simple Storage Service (Amazon S3).<br/>DataSourceId:  The ID assigned to the <code>DataSource</code> at creation. This value should be identical to the value of the <code>DataSourceId</code> in the request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SelectSqlQuery</i>  The SQL query that is specified during <a>CreateDataSourceFromRedshift</a>. Returns only if <code>Verbose</code> is true in GetDataSourceInput. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseUserName</i> A username to be used by Amazon Machine Learning (Amazon ML)to connect to a database on an Amazon Redshift cluster. The username should have sufficient permissions to execute the <code>RedshiftSelectSqlQuery</code> query. The username should be valid for an Amazon Redshift <a href="https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_USER.html">USER</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RedshiftDatabase</i> Describes the database details required to connect to an Amazon Redshift database.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RedshiftDatabase</b>: Describes the database details required to connect to an Amazon Redshift database.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterIdentifier</i> The ID of an Amazon Redshift cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> The name of a database hosted on an Amazon Redshift cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataPipelineId</i> The ID of the Data Pipeline instance that is used to carry to copy data from Amazon RDS to Amazon S3. You can use the ID to find details about the instance in the Data Pipeline console.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceRole</i> The role (DataPipelineDefaultRole) assumed by the Data Pipeline service to monitor the progress of the copy task from Amazon RDS to Amazon S3. For more information, see <a href="https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-iam-roles.html">Role templates</a> for data pipelines.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceRole</i> The role (DataPipelineDefaultResourceRole) assumed by an Amazon EC2 instance to carry out the copy task from Amazon RDS to Amazon S3. For more information, see <a href="https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-iam-roles.html">Role templates</a> for data pipelines.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SelectSqlQuery</i> The SQL query that is supplied during <a>CreateDataSourceFromRDS</a>. Returns only if <code>Verbose</code> is true in <code>GetDataSourceInput</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseUserName</i> The username to be used by Amazon ML to connect to database on an Amazon RDS instance. The username should have sufficient permissions to execute an <code>RDSSelectSqlQuery</code> query.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Database</i> The database details required to connect to an Amazon RDS.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Database</b>: The database details required to connect to an Amazon RDS.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> The name of a database hosted on an RDS DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceIdentifier</i> The ID of an RDS DB instance.<br/>        """
        pass

    def get_evaluation(self, EvaluationId: str) -> GetEvaluationOutput:
        r"""Returns an <code>Evaluation</code> that includes metadata as well as the current status of the <code>Evaluation</code>.

        :param self:
        :param EvaluationId:  The ID of the <code>Evaluation</code> to retrieve. The evaluation of each <code>MLModel</code> is recorded and cataloged. The ID provides the means to access the information. <br/>
        :return: StartedAt:  The epoch time when Amazon Machine Learning marked the <code>Evaluation</code> as <code>INPROGRESS</code>. <code>StartedAt</code> isn't available if the <code>Evaluation</code> is in the <code>PENDING</code> state.<br/>FinishedAt:  The epoch time when Amazon Machine Learning marked the <code>Evaluation</code> as <code>COMPLETED</code> or <code>FAILED</code>. <code>FinishedAt</code> is only available when the <code>Evaluation</code> is in the <code>COMPLETED</code> or <code>FAILED</code> state.<br/>ComputeTime:  The approximate CPU time in milliseconds that Amazon Machine Learning spent processing the <code>Evaluation</code>, normalized and scaled on computation resources. <code>ComputeTime</code> is only available if the <code>Evaluation</code> is in the <code>COMPLETED</code> state.<br/>Message:  A description of the most recent details about evaluating the <code>MLModel</code>.<br/>LogUri:  A link to the file that contains logs of the <code>CreateEvaluation</code> operation.<br/>PerformanceMetrics:  Measurements of how well the <code>MLModel</code> performed using observations referenced by the <code>DataSource</code>. One of the following metric is returned based on the type of the <code>MLModel</code>:  <ul> <li> BinaryAUC: A binary <code>MLModel</code> uses the Area Under the Curve (AUC) technique to measure performance.  </li> <li> RegressionRMSE: A regression <code>MLModel</code> uses the Root Mean Square Error (RMSE) technique to measure performance. RMSE measures the difference between predicted and actual values for a single variable. </li> <li> MulticlassAvgFScore: A multiclass <code>MLModel</code> uses the F1 score technique to measure performance.  </li> </ul>  For more information about performance metrics, please see the <a href="https://docs.aws.amazon.com/machine-learning/latest/dg">Amazon Machine Learning Developer Guide</a>. :<br/>Status:  The status of the evaluation. This element can have one of the following values: <ul> <li>  <code>PENDING</code> - Amazon Machine Language (Amazon ML) submitted a request to evaluate an <code>MLModel</code>. </li> <li>  <code>INPROGRESS</code> - The evaluation is underway. </li> <li>  <code>FAILED</code> - The request to evaluate an <code>MLModel</code> did not run to completion. It is not usable. </li> <li>  <code>COMPLETED</code> - The evaluation process completed successfully. </li> <li>  <code>DELETED</code> - The <code>Evaluation</code> is marked as deleted. It is not usable. </li> </ul><br/>Name:  A user-supplied name or description of the <code>Evaluation</code>. <br/>LastUpdatedAt:  The time of the most recent edit to the <code>Evaluation</code>. The time is expressed in epoch time.<br/>CreatedAt:  The time that the <code>Evaluation</code> was created. The time is expressed in epoch time.<br/>CreatedByIamUser:  The AWS user account that invoked the evaluation. The account type can be either an AWS root account or an AWS Identity and Access Management (IAM) user account.<br/>InputDataLocationS3:  The location of the data file or directory in Amazon Simple Storage Service (Amazon S3).<br/>EvaluationDataSourceId:  The <code>DataSource</code> used for this evaluation.<br/>MLModelId:  The ID of the <code>MLModel</code> that was the focus of the evaluation.<br/>EvaluationId:  The evaluation ID which is same as the <code>EvaluationId</code> in the request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Properties</i> <br/>        """
        pass

    def get_ml_model(self, MLModelId: str, Verbose: Verbose=None) -> GetMLModelOutput:
        r"""Returns an <code>MLModel</code> that includes detailed metadata, data source information, and the current status of the <code>MLModel</code>.  <code>GetMLModel</code> provides results in normal or verbose format. 

        :param self:
        :param Verbose:  Specifies whether the <code>GetMLModel</code> operation should return <code>Recipe</code>. If true, <code>Recipe</code> is returned. If false, <code>Recipe</code> is not returned.<br/>MLModelId:  The ID assigned to the <code>MLModel</code> at creation.<br/>
        :return: Schema:  The schema used by all of the data files referenced by the <code>DataSource</code>.  <b>Note:</b> This parameter is provided as part of the verbose format.<br/>Recipe:  The recipe to use when training the <code>MLModel</code>. The <code>Recipe</code> provides detailed information about the observation data to use during training, and manipulations to perform on the observation data during training.  <b>Note:</b> This parameter is provided as part of the verbose format.<br/>StartedAt:  The epoch time when Amazon Machine Learning marked the <code>MLModel</code> as <code>INPROGRESS</code>. <code>StartedAt</code> isn't available if the <code>MLModel</code> is in the <code>PENDING</code> state.<br/>FinishedAt:  The epoch time when Amazon Machine Learning marked the <code>MLModel</code> as <code>COMPLETED</code> or <code>FAILED</code>. <code>FinishedAt</code> is only available when the <code>MLModel</code> is in the <code>COMPLETED</code> or <code>FAILED</code> state.<br/>ComputeTime:  The approximate CPU time in milliseconds that Amazon Machine Learning spent processing the <code>MLModel</code>, normalized and scaled on computation resources. <code>ComputeTime</code> is only available if the <code>MLModel</code> is in the <code>COMPLETED</code> state.<br/>Message:  A description of the most recent details about accessing the <code>MLModel</code>.<br/>LogUri:  A link to the file that contains logs of the <code>CreateMLModel</code> operation.<br/>ScoreThresholdLastUpdatedAt:  The time of the most recent edit to the <code>ScoreThreshold</code>. The time is expressed in epoch time.<br/>ScoreThreshold:  The scoring threshold is used in binary classification <code>MLModel</code> models. It marks the boundary between a positive prediction and a negative prediction. Output values greater than or equal to the threshold receive a positive result from the MLModel, such as <code>true</code>. Output values less than the threshold receive a negative response from the MLModel, such as <code>false</code>.<br/>MLModelType:  Identifies the <code>MLModel</code> category. The following are the available types:  <ul> <li> REGRESSION -- Produces a numeric result. For example, "What price should a house be listed at?" </li> <li> BINARY -- Produces one of two possible results. For example, "Is this an e-commerce website?" </li> <li> MULTICLASS -- Produces one of several possible results. For example, "Is this a HIGH, LOW or MEDIUM risk trade?" </li> </ul><br/>InputDataLocationS3:  The location of the data file or directory in Amazon Simple Storage Service (Amazon S3).<br/>TrainingParameters:  A list of the training parameters in the <code>MLModel</code>. The list is implemented as a map of key-value pairs. The following is the current set of training parameters: <ul> <li>  <code>sgd.maxMLModelSizeInBytes</code> - The maximum allowed size of the model. Depending on the input data, the size of the model might affect its performance.  The value is an integer that ranges from <code>100000</code> to <code>2147483648</code>. The default value is <code>33554432</code>. </li> <li>  <code>sgd.maxPasses</code> - The number of times that the training process traverses the observations to build the <code>MLModel</code>. The value is an integer that ranges from <code>1</code> to <code>10000</code>. The default value is <code>10</code>. </li> <li>  <code>sgd.shuffleType</code> - Whether Amazon ML shuffles the training data. Shuffling data improves a model's ability to find the optimal solution for a variety of data types. The valid values are <code>auto</code> and <code>none</code>. The default value is <code>none</code>. We strongly recommend that you shuffle your data. </li> <li>  <code>sgd.l1RegularizationAmount</code> - The coefficient regularization L1 norm. It controls overfitting the data by penalizing large coefficients. This tends to drive coefficients to zero, resulting in a sparse feature set. If you use this parameter, start by specifying a small value, such as <code>1.0E-08</code>. The value is a double that ranges from <code>0</code> to <code>MAX_DOUBLE</code>. The default is to not use L1 normalization. This parameter can't be used when <code>L2</code> is specified. Use this parameter sparingly. </li> <li>  <code>sgd.l2RegularizationAmount</code> - The coefficient regularization L2 norm. It controls overfitting the data by penalizing large coefficients. This tends to drive coefficients to small, nonzero values. If you use this parameter, start by specifying a small value, such as <code>1.0E-08</code>. The value is a double that ranges from <code>0</code> to <code>MAX_DOUBLE</code>. The default is to not use L2 normalization. This parameter can't be used when <code>L1</code> is specified. Use this parameter sparingly. </li> </ul><br/>EndpointInfo:  The current endpoint of the <code>MLModel</code> :<br/>SizeInBytes:  Long integer type that is a 64-bit signed number.<br/>Status:  The current status of the <code>MLModel</code>. This element can have one of the following values: <ul> <li>  <code>PENDING</code> - Amazon Machine Learning (Amazon ML) submitted a request to describe a <code>MLModel</code>. </li> <li>  <code>INPROGRESS</code> - The request is processing. </li> <li>  <code>FAILED</code> - The request did not run to completion. The ML model isn't usable. </li> <li>  <code>COMPLETED</code> - The request completed successfully. </li> <li>  <code>DELETED</code> - The <code>MLModel</code> is marked as deleted. It isn't usable. </li> </ul><br/>Name:  A user-supplied name or description of the <code>MLModel</code>.<br/>LastUpdatedAt:  The time of the most recent edit to the <code>MLModel</code>. The time is expressed in epoch time.<br/>CreatedAt:  The time that the <code>MLModel</code> was created. The time is expressed in epoch time.<br/>CreatedByIamUser:  The AWS user account from which the <code>MLModel</code> was created. The account type can be either an AWS root account or an AWS Identity and Access Management (IAM) user account.<br/>TrainingDataSourceId:  The ID of the training <code>DataSource</code>.<br/>MLModelId:  The MLModel ID, which is same as the <code>MLModelId</code> in the request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointStatus</i>  The current status of the real-time endpoint for the <code>MLModel</code>. This element can have one of the following values:  <ul> <li>  <code>NONE</code> - Endpoint does not exist or was previously deleted. </li> <li>  <code>READY</code> - Endpoint is ready to be used for real-time predictions. </li> <li>  <code>UPDATING</code> - Updating/creating the endpoint.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointUrl</i> The URI that specifies where to send real-time prediction requests for the <code>MLModel</code>.  <b>Note:</b> The application must wait until the real-time endpoint is ready before using this URI.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedAt</i> The time that the request to create the real-time endpoint for the <code>MLModel</code> was received. The time is expressed in epoch time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PeakRequestsPerSecond</i>  The maximum processing rate for the real-time endpoint for <code>MLModel</code>, measured in incoming requests per second.<br/>        """
        pass

    def predict(self, PredictEndpoint: str, Record: Record, MLModelId: str) -> PredictOutput:
        r"""Generates a prediction for the observation using the specified <code>ML Model</code>.  <b>Note:</b> Not all response parameters will be populated. Whether a response parameter is populated depends on the type of model requested.

        :param self:
        :param PredictEndpoint:  <br/>Record:  A map of variable name-value pairs that represent an observation.<br/>MLModelId:  A unique identifier of the <code>MLModel</code>.<br/>
        :return: Prediction:  The output from a <code>Predict</code> operation:  <ul> <li>  <code>Details</code> - Contains the following attributes: <code>DetailsAttributes.PREDICTIVE_MODEL_TYPE - REGRESSION | BINARY | MULTICLASS</code> <code>DetailsAttributes.ALGORITHM - SGD</code>  </li> <li>  <code>PredictedLabel</code> - Present for either a <code>BINARY</code> or <code>MULTICLASS</code> <code>MLModel</code> request.  </li> <li>  <code>PredictedScores</code> - Contains the raw classification score corresponding to each label.  </li> <li>  <code>PredictedValue</code> - Present for a <code>REGRESSION</code> <code>MLModel</code> request.  </li> </ul>:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>details</i> Provides any additional details regarding the prediction.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>predictedScores</i> Provides the raw classification score corresponding to each label.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>predictedValue</i> The prediction value for <code>REGRESSION</code> <code>MLModel</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>predictedLabel</i> The prediction label for either a <code>BINARY</code> or <code>MULTICLASS</code> <code>MLModel</code>.<br/>        """
        pass

    def update_batch_prediction(self, BatchPredictionName: str, BatchPredictionId: str) -> UpdateBatchPredictionOutput:
        r"""Updates the <code>BatchPredictionName</code> of a <code>BatchPrediction</code>. You can use the <code>GetBatchPrediction</code> operation to view the contents of the updated data element.

        :param self:
        :param BatchPredictionName:  A new user-supplied name or description of the <code>BatchPrediction</code>.<br/>BatchPredictionId:  The ID assigned to the <code>BatchPrediction</code> during creation.<br/>
        :return: BatchPredictionId:  The ID assigned to the <code>BatchPrediction</code> during creation. This value should be identical to the value of the <code>BatchPredictionId</code> in the request.<br/>        """
        pass

    def update_data_source(self, DataSourceName: str, DataSourceId: str) -> UpdateDataSourceOutput:
        r"""Updates the <code>DataSourceName</code> of a <code>DataSource</code>. You can use the <code>GetDataSource</code> operation to view the contents of the updated data element.

        :param self:
        :param DataSourceName:  A new user-supplied name or description of the <code>DataSource</code> that will replace the current description. <br/>DataSourceId:  The ID assigned to the <code>DataSource</code> during creation.<br/>
        :return: DataSourceId:  The ID assigned to the <code>DataSource</code> during creation. This value should be identical to the value of the <code>DataSourceID</code> in the request.<br/>        """
        pass

    def update_evaluation(self, EvaluationName: str, EvaluationId: str) -> UpdateEvaluationOutput:
        r"""Updates the <code>EvaluationName</code> of an <code>Evaluation</code>. You can use the <code>GetEvaluation</code> operation to view the contents of the updated data element.

        :param self:
        :param EvaluationName:  A new user-supplied name or description of the <code>Evaluation</code> that will replace the current content. <br/>EvaluationId:  The ID assigned to the <code>Evaluation</code> during creation.<br/>
        :return: EvaluationId:  The ID assigned to the <code>Evaluation</code> during creation. This value should be identical to the value of the <code>Evaluation</code> in the request.<br/>        """
        pass

    def update_ml_model(self, MLModelId: str, MLModelName: str=None, ScoreThreshold: ScoreThreshold=None) -> UpdateMLModelOutput:
        r"""Updates the <code>MLModelName</code> and the <code>ScoreThreshold</code> of an <code>MLModel</code>. You can use the <code>GetMLModel</code> operation to view the contents of the updated data element.

        :param self:
        :param ScoreThreshold:  The <code>ScoreThreshold</code> used in binary classification <code>MLModel</code> that marks the boundary between a positive prediction and a negative prediction. Output values greater than or equal to the <code>ScoreThreshold</code> receive a positive result from the <code>MLModel</code>, such as <code>true</code>. Output values less than the <code>ScoreThreshold</code> receive a negative response from the <code>MLModel</code>, such as <code>false</code>.<br/>MLModelName:  A user-supplied name or description of the <code>MLModel</code>.<br/>MLModelId:  The ID assigned to the <code>MLModel</code> during creation.<br/>
        :return: MLModelId:  The ID assigned to the <code>MLModel</code> during creation. This value should be identical to the value of the <code>MLModelID</code> in the request.<br/>        """
        pass





class Macie(BaseClient):
    r"""<fullname>Amazon Macie Classic</fullname> Amazon Macie Classic is a security service that uses machine learning to automatically discover, classify, and protect sensitive data in AWS. Macie Classic recognizes sensitive data such as personally identifiable information (PII) or intellectual property, and provides you with dashboards and alerts that give visibility into how this data is being accessed or moved. For more information, see the <a href="https://docs.aws.amazon.com/macie/latest/userguide/what-is-macie.html">Amazon Macie Classic User Guide</a>. """


    class ListMemberAccountsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_member_accounts` for valid parameters"""
            pass
    class ListS3ResourcesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_s3_resources` for valid parameters"""
            pass


    class AssociateMemberAccountRequest(Mapping):
        pass
    
    class AssociateS3ResourcesRequest(Mapping):
        pass
    
    class AssociateS3ResourcesResult(Mapping):
        pass
    
    class S3ResourceClassification(Mapping):
        pass
    
    class DisassociateMemberAccountRequest(Mapping):
        pass
    
    class DisassociateS3ResourcesRequest(Mapping):
        pass
    
    class DisassociateS3ResourcesResult(Mapping):
        pass
    
    class S3Resource(Mapping):
        pass
    
    class ListMemberAccountsRequest(Mapping):
        pass
    
    class ListMemberAccountsResult(Mapping):
        pass
    
    class ListS3ResourcesRequest(Mapping):
        pass
    
    class ListS3ResourcesResult(Mapping):
        pass
    
    class UpdateS3ResourcesRequest(Mapping):
        pass
    
    class UpdateS3ResourcesResult(Mapping):
        pass
    
    class S3ResourceClassificationUpdate(Mapping):
        pass
    
    def associate_member_account(self, memberAccountId: str):
        r"""Associates a specified AWS account with Amazon Macie Classic as a member account.

        :param self:
        :param memberAccountId:  The ID of the AWS account that you want to associate with Amazon Macie Classic as a member account.<br/>
        :return:         """
        pass

    def associate_s3_resources(self, s3Resources: List[S3ResourceClassification], memberAccountId: str=None) -> AssociateS3ResourcesResult:
        r"""Associates specified S3 resources with Amazon Macie Classic for monitoring and data classification. If memberAccountId isn't specified, the action associates specified S3 resources with Macie Classic for the current Macie Classic administrator account. If memberAccountId is specified, the action associates specified S3 resources with Macie Classic for the specified member account. 

        :param self:
        :param s3Resources:  The S3 resources that you want to associate with Amazon Macie Classic for monitoring and data classification. <br/>memberAccountId:  The ID of the Amazon Macie Classic member account whose resources you want to associate with Macie Classic. <br/>
        :return: failedS3Resources:  S3 resources that couldn't be associated with Amazon Macie Classic. An error code and an error message are provided for each failed item. <br/>        """
        pass

    def disassociate_member_account(self, memberAccountId: str):
        r"""Removes the specified member account from Amazon Macie Classic.

        :param self:
        :param memberAccountId:  The ID of the member account that you want to remove from Amazon Macie Classic.<br/>
        :return:         """
        pass

    def disassociate_s3_resources(self, associatedS3Resources: List[S3Resource], memberAccountId: str=None) -> DisassociateS3ResourcesResult:
        r"""Removes specified S3 resources from being monitored by Amazon Macie Classic. If memberAccountId isn't specified, the action removes specified S3 resources from Macie Classic for the current Macie Classic administrator account. If memberAccountId is specified, the action removes specified S3 resources from Macie Classic for the specified member account.

        :param self:
        :param associatedS3Resources:  The S3 resources (buckets or prefixes) that you want to remove from being monitored and classified by Amazon Macie Classic. <br/>memberAccountId:  The ID of the Amazon Macie Classic member account whose resources you want to remove from being monitored by Macie Classic. <br/>
        :return: failedS3Resources:  S3 resources that couldn't be removed from being monitored and classified by Amazon Macie Classic. An error code and an error message are provided for each failed item. <br/>        """
        pass

    def list_member_accounts(self, nextToken: str=None, maxResults: int=None) -> ListMemberAccountsResult:
        r"""Lists all Amazon Macie Classic member accounts for the current Macie Classic administrator account.

        :param self:
        :param maxResults:  Use this parameter to indicate the maximum number of items that you want in the response. The default value is 250. <br/>nextToken:  Use this parameter when paginating results. Set the value of this parameter to null on your first call to the ListMemberAccounts action. Subsequent calls to the action fill nextToken in the request with the value of nextToken from the previous response to continue listing data. <br/>
        :return: nextToken:  When a response is generated, if there is more data to be listed, this parameter is present in the response and contains the value to use for the nextToken parameter in a subsequent pagination request. If there is no more data to be listed, this parameter is set to null. <br/>memberAccounts:  A list of the Amazon Macie Classic member accounts returned by the action. The current Macie Classic administrator account is also included in this list. <br/>        """
        pass

    def list_s3_resources(self, memberAccountId: str=None, nextToken: str=None, maxResults: int=None) -> ListS3ResourcesResult:
        r"""Lists all the S3 resources associated with Amazon Macie Classic. If memberAccountId isn't specified, the action lists the S3 resources associated with Macie Classic for the current Macie Classic administrator account. If memberAccountId is specified, the action lists the S3 resources associated with Macie Classic for the specified member account. 

        :param self:
        :param maxResults:  Use this parameter to indicate the maximum number of items that you want in the response. The default value is 250. <br/>nextToken:  Use this parameter when paginating results. Set its value to null on your first call to the ListS3Resources action. Subsequent calls to the action fill nextToken in the request with the value of nextToken from the previous response to continue listing data. <br/>memberAccountId:  The Amazon Macie Classic member account ID whose associated S3 resources you want to list. <br/>
        :return: nextToken:  When a response is generated, if there is more data to be listed, this parameter is present in the response and contains the value to use for the nextToken parameter in a subsequent pagination request. If there is no more data to be listed, this parameter is set to null. <br/>s3Resources:  A list of the associated S3 resources returned by the action.<br/>        """
        pass

    def update_s3_resources(self, s3ResourcesUpdate: List[S3ResourceClassificationUpdate], memberAccountId: str=None) -> UpdateS3ResourcesResult:
        r"""Updates the classification types for the specified S3 resources. If memberAccountId isn't specified, the action updates the classification types of the S3 resources associated with Amazon Macie Classic for the current Macie Classic administrator account. If memberAccountId is specified, the action updates the classification types of the S3 resources associated with Macie Classic for the specified member account. 

        :param self:
        :param s3ResourcesUpdate:  The S3 resources whose classification types you want to update.<br/>memberAccountId:  The AWS ID of the Amazon Macie Classic member account whose S3 resources' classification types you want to update. <br/>
        :return: failedS3Resources:  The S3 resources whose classification types can't be updated. An error code and an error message are provided for each failed item. <br/>        """
        pass





class Macie2(BaseClient):
    r"""Amazon Macie is a fully managed data security and data privacy service that uses machine learning and pattern matching to discover and protect your sensitive data in AWS. Macie automates the discovery of sensitive data, such as PII and intellectual property, to provide you with insight into the data that your organization stores in AWS. Macie also provides an inventory of your Amazon S3 buckets, which it continually monitors for you. If Macie detects sensitive data or potential data access issues, it generates detailed findings for you to review and act upon as necessary."""


    class DescribeBucketsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_buckets` for valid parameters"""
            pass
    class GetUsageStatisticsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_usage_statistics` for valid parameters"""
            pass
    class ListClassificationJobsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_classification_jobs` for valid parameters"""
            pass
    class ListCustomDataIdentifiersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_custom_data_identifiers` for valid parameters"""
            pass
    class ListFindingsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_findings` for valid parameters"""
            pass
    class ListFindingsFiltersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_findings_filters` for valid parameters"""
            pass
    class ListInvitationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_invitations` for valid parameters"""
            pass
    class ListMembersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_members` for valid parameters"""
            pass
    class ListOrganizationAdminAccountsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_organization_admin_accounts` for valid parameters"""
            pass
    class SearchResourcesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `search_resources` for valid parameters"""
            pass


    class AcceptInvitationRequest(Mapping):
        pass
    
    class AcceptInvitationResponse(Mapping):
        pass
    
    class BatchGetCustomDataIdentifiersRequest(Mapping):
        pass
    
    class BatchGetCustomDataIdentifiersResponse(Mapping):
        pass
    
    class __string(object):
        pass
    
    class CreateClassificationJobRequest(Mapping):
        pass
    
    class CreateClassificationJobResponse(Mapping):
        pass
    
    class __boolean(object):
        pass
    
    class S3JobDefinition(Mapping):
        pass
    
    class JobScheduleFrequency(Mapping):
        pass
    
    class TagMap(object):
        pass
    
    class CreateCustomDataIdentifierRequest(Mapping):
        pass
    
    class CreateCustomDataIdentifierResponse(Mapping):
        pass
    
    class CreateFindingsFilterRequest(Mapping):
        pass
    
    class CreateFindingsFilterResponse(Mapping):
        pass
    
    class FindingCriteria(Mapping):
        pass
    
    class CreateInvitationsRequest(Mapping):
        pass
    
    class CreateInvitationsResponse(Mapping):
        pass
    
    class CreateMemberRequest(Mapping):
        pass
    
    class CreateMemberResponse(Mapping):
        pass
    
    class AccountDetail(Mapping):
        pass
    
    class CreateSampleFindingsRequest(Mapping):
        pass
    
    class CreateSampleFindingsResponse(Mapping):
        pass
    
    class FindingType(object):
        pass
    
    class DeclineInvitationsRequest(Mapping):
        pass
    
    class DeclineInvitationsResponse(Mapping):
        pass
    
    class DeleteCustomDataIdentifierRequest(Mapping):
        pass
    
    class DeleteCustomDataIdentifierResponse(Mapping):
        pass
    
    class DeleteFindingsFilterRequest(Mapping):
        pass
    
    class DeleteFindingsFilterResponse(Mapping):
        pass
    
    class DeleteInvitationsRequest(Mapping):
        pass
    
    class DeleteInvitationsResponse(Mapping):
        pass
    
    class DeleteMemberRequest(Mapping):
        pass
    
    class DeleteMemberResponse(Mapping):
        pass
    
    class DescribeBucketsRequest(Mapping):
        pass
    
    class DescribeBucketsResponse(Mapping):
        pass
    
    class BucketCriteria(object):
        pass
    
    class BucketSortCriteria(Mapping):
        pass
    
    class DescribeClassificationJobRequest(Mapping):
        pass
    
    class DescribeClassificationJobResponse(Mapping):
        pass
    
    class DescribeOrganizationConfigurationRequest(Mapping):
        pass
    
    class DescribeOrganizationConfigurationResponse(Mapping):
        pass
    
    class DisableMacieRequest(Mapping):
        pass
    
    class DisableMacieResponse(Mapping):
        pass
    
    class DisableOrganizationAdminAccountRequest(Mapping):
        pass
    
    class DisableOrganizationAdminAccountResponse(Mapping):
        pass
    
    class DisassociateFromAdministratorAccountRequest(Mapping):
        pass
    
    class DisassociateFromAdministratorAccountResponse(Mapping):
        pass
    
    class DisassociateFromMasterAccountRequest(Mapping):
        pass
    
    class DisassociateFromMasterAccountResponse(Mapping):
        pass
    
    class DisassociateMemberRequest(Mapping):
        pass
    
    class DisassociateMemberResponse(Mapping):
        pass
    
    class EnableMacieRequest(Mapping):
        pass
    
    class EnableMacieResponse(Mapping):
        pass
    
    class EnableOrganizationAdminAccountRequest(Mapping):
        pass
    
    class EnableOrganizationAdminAccountResponse(Mapping):
        pass
    
    class GetAdministratorAccountRequest(Mapping):
        pass
    
    class GetAdministratorAccountResponse(Mapping):
        pass
    
    class GetBucketStatisticsRequest(Mapping):
        pass
    
    class GetBucketStatisticsResponse(Mapping):
        pass
    
    class GetClassificationExportConfigurationRequest(Mapping):
        pass
    
    class GetClassificationExportConfigurationResponse(Mapping):
        pass
    
    class GetCustomDataIdentifierRequest(Mapping):
        pass
    
    class GetCustomDataIdentifierResponse(Mapping):
        pass
    
    class GetFindingStatisticsRequest(Mapping):
        pass
    
    class GetFindingStatisticsResponse(Mapping):
        pass
    
    class FindingStatisticsSortCriteria(Mapping):
        pass
    
    class GetFindingsRequest(Mapping):
        pass
    
    class GetFindingsResponse(Mapping):
        pass
    
    class SortCriteria(Mapping):
        pass
    
    class GetFindingsFilterRequest(Mapping):
        pass
    
    class GetFindingsFilterResponse(Mapping):
        pass
    
    class GetFindingsPublicationConfigurationRequest(Mapping):
        pass
    
    class GetFindingsPublicationConfigurationResponse(Mapping):
        pass
    
    class GetInvitationsCountRequest(Mapping):
        pass
    
    class GetInvitationsCountResponse(Mapping):
        pass
    
    class GetMacieSessionRequest(Mapping):
        pass
    
    class GetMacieSessionResponse(Mapping):
        pass
    
    class GetMasterAccountRequest(Mapping):
        pass
    
    class GetMasterAccountResponse(Mapping):
        pass
    
    class GetMemberRequest(Mapping):
        pass
    
    class GetMemberResponse(Mapping):
        pass
    
    class GetUsageStatisticsRequest(Mapping):
        pass
    
    class GetUsageStatisticsResponse(Mapping):
        pass
    
    class UsageStatisticsFilter(Mapping):
        pass
    
    class UsageStatisticsSortBy(Mapping):
        pass
    
    class GetUsageTotalsRequest(Mapping):
        pass
    
    class GetUsageTotalsResponse(Mapping):
        pass
    
    class ListClassificationJobsRequest(Mapping):
        pass
    
    class ListClassificationJobsResponse(Mapping):
        pass
    
    class ListJobsFilterCriteria(Mapping):
        pass
    
    class ListJobsSortCriteria(Mapping):
        pass
    
    class ListCustomDataIdentifiersRequest(Mapping):
        pass
    
    class ListCustomDataIdentifiersResponse(Mapping):
        pass
    
    class ListFindingsRequest(Mapping):
        pass
    
    class ListFindingsResponse(Mapping):
        pass
    
    class ListFindingsFiltersRequest(Mapping):
        pass
    
    class ListFindingsFiltersResponse(Mapping):
        pass
    
    class ListInvitationsRequest(Mapping):
        pass
    
    class ListInvitationsResponse(Mapping):
        pass
    
    class ListMembersRequest(Mapping):
        pass
    
    class ListMembersResponse(Mapping):
        pass
    
    class ListOrganizationAdminAccountsRequest(Mapping):
        pass
    
    class ListOrganizationAdminAccountsResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class PutClassificationExportConfigurationRequest(Mapping):
        pass
    
    class PutClassificationExportConfigurationResponse(Mapping):
        pass
    
    class ClassificationExportConfiguration(Mapping):
        pass
    
    class PutFindingsPublicationConfigurationRequest(Mapping):
        pass
    
    class PutFindingsPublicationConfigurationResponse(Mapping):
        pass
    
    class SecurityHubConfiguration(Mapping):
        pass
    
    class SearchResourcesRequest(Mapping):
        pass
    
    class SearchResourcesResponse(Mapping):
        pass
    
    class SearchResourcesBucketCriteria(Mapping):
        pass
    
    class SearchResourcesSortCriteria(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class TestCustomDataIdentifierRequest(Mapping):
        pass
    
    class TestCustomDataIdentifierResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class UpdateClassificationJobRequest(Mapping):
        pass
    
    class UpdateClassificationJobResponse(Mapping):
        pass
    
    class UpdateFindingsFilterRequest(Mapping):
        pass
    
    class UpdateFindingsFilterResponse(Mapping):
        pass
    
    class UpdateMacieSessionRequest(Mapping):
        pass
    
    class UpdateMacieSessionResponse(Mapping):
        pass
    
    class UpdateMemberSessionRequest(Mapping):
        pass
    
    class UpdateMemberSessionResponse(Mapping):
        pass
    
    class UpdateOrganizationConfigurationRequest(Mapping):
        pass
    
    class UpdateOrganizationConfigurationResponse(Mapping):
        pass
    
    def accept_invitation(self, invitationId: str, administratorAccountId: str=None, masterAccount: str=None) -> AcceptInvitationResponse:
        r"""Accepts an Amazon Macie membership invitation that was received from a specific account.

        :param self:
        :param masterAccount:  (Deprecated) The Amazon Web Services account ID for the account that sent the invitation. This property has been replaced by the administratorAccountId property and is retained only for backward compatibility.<br/>invitationId:  The unique identifier for the invitation to accept.<br/>administratorAccountId:  The Amazon Web Services account ID for the account that sent the invitation.<br/>
        :return:         """
        pass

    def batch_get_custom_data_identifiers(self, ids: List[__string]=None) -> BatchGetCustomDataIdentifiersResponse:
        r"""Retrieves information about one or more custom data identifiers.

        :param self:
        :param ids:  An array of strings that lists the unique identifiers for the custom data identifiers to retrieve information about.<br/>
        :return: notFoundIdentifierIds:  An array of identifiers, one for each identifier that was specified in the request, but doesn't correlate to an existing custom data identifier.<br/>customDataIdentifiers:  An array of objects, one for each custom data identifier that meets the criteria specified in the request.<br/>        """
        pass

    def create_classification_job(self, s3JobDefinition: S3JobDefinition, name: str, jobType: str, clientToken: str, customDataIdentifierIds: List[__string]=None, description: str=None, initialRun: __boolean=None, samplingPercentage: int=None, scheduleFrequency: JobScheduleFrequency=None, tags: TagMap=None) -> CreateClassificationJobResponse:
        r""" Creates and defines the settings for a classification job.

        :param self:
        :param tags:  A map of key-value pairs that specifies the tags to associate with the job. A job can have a maximum of 50 tags. Each tag consists of a tag key and an associated tag value. The maximum length of a tag key is 128 characters. The maximum length of a tag value is 256 characters.<br/>scheduleFrequency:  The recurrence pattern for running the job. To run the job only once, don't specify a value for this property and set the value for the jobType property to ONE_TIME.:<br/>samplingPercentage:  The sampling depth, as a percentage, to apply when processing objects. This value determines the percentage of eligible objects that the job analyzes. If this value is less than 100, Amazon Macie selects the objects to analyze at random, up to the specified percentage, and analyzes all the data in those objects.<br/>s3JobDefinition:  The S3 buckets that contain the objects to analyze, and the scope of that analysis.:<br/>name:  A custom name for the job. The name can contain as many as 500 characters.<br/>jobType:  The schedule for running the job. Valid values are: <ul><li>ONE_TIME - Run the job only once. If you specify this value, don't specify a value for the scheduleFrequency property.</li> <li>SCHEDULED - Run the job on a daily, weekly, or monthly basis. If you specify this value, use the scheduleFrequency property to define the recurrence pattern for the job.</li></ul><br/>initialRun:  Specifies whether to analyze all existing, eligible objects immediately after the job is created.<br/>description:  A custom description of the job. The description can contain as many as 200 characters.<br/>customDataIdentifierIds:  The custom data identifiers to use for data analysis and classification.<br/>clientToken:  A unique, case-sensitive token that you provide to ensure the idempotency of the request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>bucketCriteria</i> The property- and tag-based conditions that determine which S3 buckets to include or exclude from the analysis. Each time the job runs, the job uses these criteria to determine which buckets contain objects to analyze. A job's definition can contain a bucketCriteria object or a bucketDefinitions array, not both.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>bucketCriteria</b>: The property- and tag-based conditions that determine which S3 buckets to include or exclude from the analysis. Each time the job runs, the job uses these criteria to determine which buckets contain objects to analyze. A job's definition can contain a bucketCriteria object or a bucketDefinitions array, not both.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>scoping</i> The property- and tag-based conditions that determine which S3 objects to include or exclude from the analysis. Each time the job runs, the job uses these criteria to determine which objects to analyze.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>scoping</b>: The property- and tag-based conditions that determine which S3 objects to include or exclude from the analysis. Each time the job runs, the job uses these criteria to determine which objects to analyze.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>bucketDefinitions</i> An array of objects, one for each Amazon Web Services account that owns specific S3 buckets to analyze. Each object specifies the account ID for an account and one or more buckets to analyze for that account. A job's definition can contain a bucketDefinitions array or a bucketCriteria object, not both.<br/>The property- and tag-based conditions that determine which objects to exclude from the analysis.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>excludes</b>: The property- and tag-based conditions that determine which objects to exclude from the analysis.The property- and tag-based conditions that determine which buckets to exclude from the job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>excludes</b>: The property- and tag-based conditions that determine which buckets to exclude from the job.Specifies a daily recurrence pattern for running the job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>dailySchedule</b>: Specifies a daily recurrence pattern for running the job.
        :return: jobId:  The unique identifier for the job.<br/>jobArn:  The Amazon Resource Name (ARN) of the job.<br/>        """
        pass

    def create_custom_data_identifier(self, clientToken: str=None, description: str=None, ignoreWords: List[__string]=None, keywords: List[__string]=None, maximumMatchDistance: int=None, name: str=None, regex: str=None, tags: TagMap=None) -> CreateCustomDataIdentifierResponse:
        r"""Creates and defines the criteria and other settings for a custom data identifier.

        :param self:
        :param tags:  A map of key-value pairs that specifies the tags to associate with the custom data identifier. A custom data identifier can have a maximum of 50 tags. Each tag consists of a tag key and an associated tag value. The maximum length of a tag key is 128 characters. The maximum length of a tag value is 256 characters.<br/>regex:  The regular expression (<i>regex</i>) that defines the pattern to match. The expression can contain as many as 512 characters.<br/>name:  A custom name for the custom data identifier. The name can contain as many as 128 characters. We strongly recommend that you avoid including any sensitive data in the name of a custom data identifier. Other users of your account might be able to see the identifier's name, depending on the actions that they're allowed to perform in Amazon Macie.<br/>maximumMatchDistance:  The maximum number of characters that can exist between text that matches the regex pattern and the character sequences specified by the keywords array. Macie includes or excludes a result based on the proximity of a keyword to text that matches the regex pattern. The distance can be 1-300 characters. The default value is 50.<br/>keywords:  An array that lists specific character sequences (keywords), one of which must be within proximity (maximumMatchDistance) of the regular expression to match. The array can contain as many as 50 keywords. Each keyword can contain 3-90 characters. Keywords aren't case sensitive.<br/>ignoreWords:  An array that lists specific character sequences (ignore words) to exclude from the results. If the text matched by the regular expression is the same as any string in this array, Amazon Macie ignores it. The array can contain as many as 10 ignore words. Each ignore word can contain 4-90 characters. Ignore words are case sensitive.<br/>description:  A custom description of the custom data identifier. The description can contain as many as 512 characters. We strongly recommend that you avoid including any sensitive data in the description of a custom data identifier. Other users of your account might be able to see the identifier's description, depending on the actions that they're allowed to perform in Amazon Macie.<br/>clientToken:  A unique, case-sensitive token that you provide to ensure the idempotency of the request.<br/>
        :return: customDataIdentifierId:  The unique identifier for the custom data identifier that was created.<br/>        """
        pass

    def create_findings_filter(self, name: str, findingCriteria: FindingCriteria, action: str, clientToken: str=None, description: str=None, position: int=None, tags: TagMap=None) -> CreateFindingsFilterResponse:
        r"""Creates and defines the criteria and other settings for a findings filter.

        :param self:
        :param tags:  A map of key-value pairs that specifies the tags to associate with the filter. A findings filter can have a maximum of 50 tags. Each tag consists of a tag key and an associated tag value. The maximum length of a tag key is 128 characters. The maximum length of a tag value is 256 characters.<br/>position:  The position of the filter in the list of saved filters on the Amazon Macie console. This value also determines the order in which the filter is applied to findings, relative to other filters that are also applied to the findings.<br/>name:  A custom name for the filter. The name must contain at least 3 characters and can contain as many as 64 characters. We strongly recommend that you avoid including any sensitive data in the name of a filter. Other users of your account might be able to see the filter's name, depending on the actions that they're allowed to perform in Amazon Macie.<br/>findingCriteria:  The criteria to use to filter findings.:<br/>description:  A custom description of the filter. The description can contain as many as 512 characters. We strongly recommend that you avoid including any sensitive data in the description of a filter. Other users of your account might be able to see the filter's description, depending on the actions that they're allowed to perform in Amazon Macie.<br/>clientToken:  A unique, case-sensitive token that you provide to ensure the idempotency of the request.<br/>action:  The action to perform on findings that meet the filter criteria (findingCriteria). Valid values are: ARCHIVE, suppress (automatically archive) the findings; and, NOOP, don't perform any action on the findings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>criterion</i> A condition that specifies the property, operator, and one or more values to use to filter the results.<br/>
        :return: id:  The unique identifier for the filter that was created.<br/>arn:  The Amazon Resource Name (ARN) of the filter that was created.<br/>        """
        pass

    def create_invitations(self, accountIds: List[__string], disableEmailNotification: __boolean=None, message: str=None) -> CreateInvitationsResponse:
        r"""Sends an Amazon Macie membership invitation to one or more accounts.

        :param self:
        :param message:  A custom message to include in the invitation. Amazon Macie adds this message to the standard content that it sends for an invitation.<br/>disableEmailNotification:  Specifies whether to send an email notification to the root user of each account that the invitation will be sent to. This notification is in addition to an alert that the root user receives in Personal Health Dashboard. To send an email notification to the root user of each account, set this value to true.<br/>accountIds:  An array that lists Amazon Web Services account IDs, one for each account to send the invitation to.<br/>
        :return: unprocessedAccounts:  An array of objects, one for each account whose invitation hasn't been processed. Each object identifies the account and explains why the invitation hasn't been processed for the account.<br/>        """
        pass

    def create_member(self, account: AccountDetail, tags: TagMap=None) -> CreateMemberResponse:
        r"""Associates an account with an Amazon Macie administrator account.

        :param self:
        :param tags:  A map of key-value pairs that specifies the tags to associate with the account in Amazon Macie. An account can have a maximum of 50 tags. Each tag consists of a tag key and an associated tag value. The maximum length of a tag key is 128 characters. The maximum length of a tag value is 256 characters.<br/>account:  The details of the account to associate with the administrator account.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>email</i> The email address for the account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>accountId</i> The Amazon Web Services account ID for the account.<br/>
        :return: arn:  The Amazon Resource Name (ARN) of the account that was associated with the administrator account.<br/>        """
        pass

    def create_sample_findings(self, findingTypes: List[FindingType]=None) -> CreateSampleFindingsResponse:
        r"""Creates sample findings.

        :param self:
        :param findingTypes:  An array that lists one or more types of findings to include in the set of sample findings. Currently, the only supported value is Policy:IAMUser/S3BucketEncryptionDisabled. <br/>
        :return:         """
        pass

    def decline_invitations(self, accountIds: List[__string]) -> DeclineInvitationsResponse:
        r"""Declines Amazon Macie membership invitations that were received from specific accounts.

        :param self:
        :param accountIds:  An array that lists Amazon Web Services account IDs, one for each account that sent an invitation to decline.<br/>
        :return: unprocessedAccounts:  An array of objects, one for each account whose invitation hasn't been declined. Each object identifies the account and explains why the request hasn't been processed for that account.<br/>        """
        pass

    def delete_custom_data_identifier(self, id: str) -> DeleteCustomDataIdentifierResponse:
        r"""Soft deletes a custom data identifier.

        :param self:
        :param id:  The unique identifier for the Amazon Macie resource or account that the request applies to.<br/>
        :return:         """
        pass

    def delete_findings_filter(self, id: str) -> DeleteFindingsFilterResponse:
        r"""Deletes a findings filter.

        :param self:
        :param id:  The unique identifier for the Amazon Macie resource or account that the request applies to.<br/>
        :return:         """
        pass

    def delete_invitations(self, accountIds: List[__string]) -> DeleteInvitationsResponse:
        r"""Deletes Amazon Macie membership invitations that were received from specific accounts.

        :param self:
        :param accountIds:  An array that lists Amazon Web Services account IDs, one for each account that sent an invitation to delete.<br/>
        :return: unprocessedAccounts:  An array of objects, one for each account whose invitation hasn't been deleted. Each object identifies the account and explains why the request hasn't been processed for that account.<br/>        """
        pass

    def delete_member(self, id: str) -> DeleteMemberResponse:
        r"""Deletes the association between an Amazon Macie administrator account and an account.

        :param self:
        :param id:  The unique identifier for the Amazon Macie resource or account that the request applies to.<br/>
        :return:         """
        pass

    def describe_buckets(self, criteria: BucketCriteria=None, maxResults: int=None, nextToken: str=None, sortCriteria: BucketSortCriteria=None) -> DescribeBucketsResponse:
        r""" Retrieves (queries) statistical data and other information about one or more S3 buckets that Amazon Macie monitors and analyzes.

        :param self:
        :param sortCriteria:  The criteria to use to sort the query results.:<br/>nextToken:  The nextToken string that specifies which page of results to return in a paginated response.<br/>maxResults:  The maximum number of items to include in each page of the response. The default value is 50.<br/>criteria:  The criteria to use to filter the query results.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>orderBy</i> The sort order to apply to the results, based on the value specified by the attributeName property. Valid values are: ASC, sort the results in ascending order; and, DESC, sort the results in descending order.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>attributeName</i> The name of the bucket property to sort the results by. This value can be one of the following properties that Amazon Macie defines as bucket metadata: accountId, bucketName, classifiableObjectCount, classifiableSizeInBytes, objectCount, or sizeInBytes.<br/>
        :return: nextToken:  The string to use in a subsequent request to get the next page of results in a paginated response. This value is null if there are no additional pages.<br/>buckets:  An array of objects, one for each bucket that meets the filter criteria specified in the request.<br/>        """
        pass

    def describe_classification_job(self, jobId: str) -> DescribeClassificationJobResponse:
        r"""Retrieves the status and settings for a classification job.

        :param self:
        :param jobId:  The unique identifier for the classification job.<br/>
        :return: userPausedDetails:  If the current status of the job is USER_PAUSED, specifies when the job was paused and when the job or job run will expire and be cancelled if it isn't resumed. This value is present only if the value for jobStatus is USER_PAUSED.:<br/>tags:  A map of key-value pairs that specifies which tags (keys and values) are associated with the classification job.<br/>statistics:  The number of times that the job has run and processing statistics for the job's current run.:<br/>scheduleFrequency:  The recurrence pattern for running the job. If the job is configured to run only once, this value is null.:<br/>samplingPercentage:  The sampling depth, as a percentage, that determines the percentage of eligible objects that the job analyzes.<br/>s3JobDefinition:  The S3 buckets that contain the objects to analyze, and the scope of that analysis.:<br/>name:  The custom name of the job.<br/>lastRunTime:  The date and time, in UTC and extended ISO 8601 format, when the job started. If the job is a recurring job, this value indicates when the most recent run started.<br/>lastRunErrorStatus:  Specifies whether any account- or bucket-level access errors occurred when the job ran. For a recurring job, this value indicates the error status of the job's most recent run.:<br/>jobType:  The schedule for running the job. Possible values are: <ul><li>ONE_TIME - The job runs only once.</li> <li>SCHEDULED - The job runs on a daily, weekly, or monthly basis. The scheduleFrequency property indicates the recurrence pattern for the job.</li></ul><br/>jobStatus:  The current status of the job. Possible values are: <ul><li>CANCELLED - You cancelled the job or, if it's a one-time job, you paused the job and didn't resume it within 30 days.</li> <li>COMPLETE - For a one-time job, Amazon Macie finished processing the data specified for the job. This value doesn't apply to recurring jobs.</li> <li>IDLE - For a recurring job, the previous scheduled run is complete and the next scheduled run is pending. This value doesn't apply to one-time jobs.</li> <li>PAUSED - Amazon Macie started running the job but additional processing would exceed the monthly sensitive data discovery quota for your account or one or more member accounts that the job analyzes data for.</li> <li>RUNNING - For a one-time job, the job is in progress. For a recurring job, a scheduled run is in progress.</li> <li>USER_PAUSED - You paused the job. If you paused the job while it had a status of RUNNING and you don't resume it within 30 days of pausing it, the job or job run will expire and be cancelled, depending on the job's type. To check the expiration date, refer to the UserPausedDetails.jobExpiresAt property.</li></ul><br/>jobId:  The unique identifier for the job.<br/>jobArn:  The Amazon Resource Name (ARN) of the job.<br/>initialRun:  Specifies whether the job is configured to analyze all existing, eligible objects immediately after it's created.<br/>description:  The custom description of the job.<br/>customDataIdentifierIds:  The custom data identifiers that the job uses to analyze data.<br/>createdAt:  The date and time, in UTC and extended ISO 8601 format, when the job was created.<br/>clientToken:  The token that was provided to ensure the idempotency of the request to create the job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>code</i> Specifies whether any account- or bucket-level access errors occurred when the job ran. For a recurring job, this value indicates the error status of the job's most recent run. Possible values are: <ul><li>ERROR - One or more errors occurred. Amazon Macie didn't process all the data specified for the job.</li> <li>NONE - No errors occurred. Macie processed all the data specified for the job.</li></ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>bucketCriteria</i> The property- and tag-based conditions that determine which S3 buckets to include or exclude from the analysis. Each time the job runs, the job uses these criteria to determine which buckets contain objects to analyze. A job's definition can contain a bucketCriteria object or a bucketDefinitions array, not both.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>bucketCriteria</b>: The property- and tag-based conditions that determine which S3 buckets to include or exclude from the analysis. Each time the job runs, the job uses these criteria to determine which buckets contain objects to analyze. A job's definition can contain a bucketCriteria object or a bucketDefinitions array, not both.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>scoping</i> The property- and tag-based conditions that determine which S3 objects to include or exclude from the analysis. Each time the job runs, the job uses these criteria to determine which objects to analyze.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>scoping</b>: The property- and tag-based conditions that determine which S3 objects to include or exclude from the analysis. Each time the job runs, the job uses these criteria to determine which objects to analyze.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>bucketDefinitions</i> An array of objects, one for each Amazon Web Services account that owns specific S3 buckets to analyze. Each object specifies the account ID for an account and one or more buckets to analyze for that account. A job's definition can contain a bucketDefinitions array or a bucketCriteria object, not both.<br/>The property- and tag-based conditions that determine which objects to exclude from the analysis.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>excludes</b>: The property- and tag-based conditions that determine which objects to exclude from the analysis.The property- and tag-based conditions that determine which buckets to exclude from the job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>excludes</b>: The property- and tag-based conditions that determine which buckets to exclude from the job.Specifies a daily recurrence pattern for running the job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>dailySchedule</b>: Specifies a daily recurrence pattern for running the job.&nbsp;&nbsp;&nbsp;&nbsp; <i>numberOfRuns</i> The number of times that the job has run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>approximateNumberOfObjectsToProcess</i> The approximate number of objects that the job has yet to process during its current run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>jobPausedAt</i> The date and time, in UTC and extended ISO 8601 format, when you paused the job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>jobImminentExpirationHealthEventArn</i> The Amazon Resource Name (ARN) of the Health event that Amazon Macie sent to notify you of the job or job run's pending expiration and cancellation. This value is null if a job has been paused for less than 23 days.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>jobExpiresAt</i> The date and time, in UTC and extended ISO 8601 format, when the job or job run will expire and be cancelled if you don't resume it first.<br/>        """
        pass

    def describe_organization_configuration(self) -> DescribeOrganizationConfigurationResponse:
        r"""Retrieves the Amazon Macie configuration settings for an Amazon Web Services organization.

        :param self:
        :param 
        :return: maxAccountLimitReached:  Specifies whether the maximum number of Amazon Macie member accounts are part of the Amazon Web Services organization.<br/>autoEnable:  Specifies whether Amazon Macie is enabled automatically for accounts that are added to the Amazon Web Services organization.<br/>        """
        pass

    def disable_macie(self) -> DisableMacieResponse:
        r"""Disables an Amazon Macie account and deletes Macie resources for the account.

        :param self:
        :param 
        :return:         """
        pass

    def disable_organization_admin_account(self, adminAccountId: str) -> DisableOrganizationAdminAccountResponse:
        r"""Disables an account as the delegated Amazon Macie administrator account for an Amazon Web Services organization.

        :param self:
        :param adminAccountId:  The Amazon Web Services account ID of the delegated Amazon Macie administrator account.<br/>
        :return:         """
        pass

    def disassociate_from_administrator_account(self) -> DisassociateFromAdministratorAccountResponse:
        r"""Disassociates a member account from its Amazon Macie administrator account.

        :param self:
        :param 
        :return:         """
        pass

    def disassociate_from_master_account(self) -> DisassociateFromMasterAccountResponse:
        r"""(Deprecated) Disassociates a member account from its Amazon Macie administrator account. This operation has been replaced by the <link  linkend="DisassociateFromAdministratorAccount">DisassociateFromAdministratorAccount</link> operation.

        :param self:
        :param 
        :return:         """
        pass

    def disassociate_member(self, id: str) -> DisassociateMemberResponse:
        r"""Disassociates an Amazon Macie administrator account from a member account.

        :param self:
        :param id:  The unique identifier for the Amazon Macie resource or account that the request applies to.<br/>
        :return:         """
        pass

    def enable_macie(self, clientToken: str=None, findingPublishingFrequency: str=None, status: str=None) -> EnableMacieResponse:
        r"""Enables Amazon Macie and specifies the configuration settings for a Macie account.

        :param self:
        :param status:  Specifies the new status for the account. To enable Amazon Macie and start all Macie activities for the account, set this value to ENABLED.<br/>findingPublishingFrequency:  Specifies how often to publish updates to policy findings for the account. This includes publishing updates to Security Hub and Amazon EventBridge (formerly called Amazon CloudWatch Events).<br/>clientToken:  A unique, case-sensitive token that you provide to ensure the idempotency of the request.<br/>
        :return:         """
        pass

    def enable_organization_admin_account(self, adminAccountId: str, clientToken: str=None) -> EnableOrganizationAdminAccountResponse:
        r"""Designates an account as the delegated Amazon Macie administrator account for an Amazon Web Services organization.

        :param self:
        :param clientToken:  A unique, case-sensitive token that you provide to ensure the idempotency of the request.<br/>adminAccountId:  The Amazon Web Services account ID for the account to designate as the delegated Amazon Macie administrator account for the organization.<br/>
        :return:         """
        pass

    def get_administrator_account(self) -> GetAdministratorAccountResponse:
        r"""Retrieves information about the Amazon Macie administrator account for an account.

        :param self:
        :param 
        :return: administrator:  The Amazon Web Services account ID for the administrator account. If the accounts are associated by a Macie membership invitation, this object also provides details about the invitation that was sent to establish the relationship between the accounts.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>relationshipStatus</i> The status of the relationship between the account that sent the invitation (<i>inviter account</i>) and the account that received the invitation (<i>invitee account</i>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>invitedAt</i> The date and time, in UTC and extended ISO 8601 format, when the invitation was sent.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>invitationId</i> The unique identifier for the invitation. Amazon Macie uses this identifier to validate the inviter account with the invitee account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>accountId</i> The Amazon Web Services account ID for the account that sent the invitation.<br/>        """
        pass

    def get_bucket_statistics(self, accountId: str=None) -> GetBucketStatisticsResponse:
        r""" Retrieves (queries) aggregated statistical data for all the S3 buckets that Amazon Macie monitors and analyzes.

        :param self:
        :param accountId:  The unique identifier for the Amazon Web Services account.<br/>
        :return: unclassifiableObjectSizeInBytes:  The total storage size, in bytes, of the objects that Amazon Macie can't analyze in the buckets. These objects don't use a supported storage class or don't have a file name extension for a supported file or storage format.:<br/>unclassifiableObjectCount:  The total number of objects that Amazon Macie can't analyze in the buckets. These objects don't use a supported storage class or don't have a file name extension for a supported file or storage format.:<br/>sizeInBytesCompressed:  The total storage size, in bytes, of the objects that are compressed (.gz, .gzip, .zip) files in the buckets. If versioning is enabled for any of the buckets, Macie calculates this value based on the size of the latest version of each applicable object in those buckets. This value doesn't reflect the storage size of all versions of the applicable objects in the buckets.<br/>sizeInBytes:  The total storage size, in bytes, of the buckets. If versioning is enabled for any of the buckets, Macie calculates this value based on the size of the latest version of each object in those buckets. This value doesn't reflect the storage size of all versions of the objects in the buckets.<br/>objectCount:  The total number of objects in the buckets.<br/>lastUpdated:  The date and time, in UTC and extended ISO 8601 format, when Amazon Macie most recently retrieved both bucket and object metadata from Amazon S3 for the buckets.<br/>classifiableSizeInBytes:  The total storage size, in bytes, of all the objects that Amazon Macie can analyze in the buckets. These objects use a supported storage class and have a file name extension for a supported file or storage format. If versioning is enabled for any of the buckets, Macie calculates this value based on the size of the latest version of each applicable object in those buckets. This value doesn't reflect the storage size of all versions of all applicable objects in the buckets.<br/>classifiableObjectCount:  The total number of objects that Amazon Macie can analyze in the buckets. These objects use a supported storage class and have a file name extension for a supported file or storage format.<br/>bucketCountBySharedAccessType:  The total number of buckets that are or aren't shared with another Amazon Web Services account.:<br/>bucketCountByObjectEncryptionRequirement:  The total number of buckets whose bucket policies do or don't require server-side encryption of objects when objects are uploaded to the buckets.:<br/>bucketCountByEncryptionType:  The total number of buckets that use certain types of server-side encryption to encrypt new objects by default. This object also reports the total number of buckets that don't encrypt new objects by default.:<br/>bucketCountByEffectivePermission:  The total number of buckets that are publicly accessible based on a combination of permissions settings for each bucket.:<br/>bucketCount:  The total number of buckets.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>unknown</i> The total number of buckets that Amazon Macie wasn't able to evaluate permissions settings for. Macie can't determine whether these buckets are publicly accessible.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>publiclyWritable</i> The total number of buckets that allow the general public to have write access to the bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>publiclyReadable</i> The total number of buckets that allow the general public to have read access to the bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>publiclyAccessible</i> The total number of buckets that allow the general public to have read or write access to the bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>unknown</i> The total number of buckets that Amazon Macie doesn't have current encryption metadata for. Macie can't provide current data about the default encryption settings for these buckets.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>unencrypted</i> The total number of buckets that don't encrypt new objects by default. Default encryption is disabled for these buckets.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>s3Managed</i> The total number of buckets that use an Amazon S3 managed key to encrypt new objects by default. These buckets use Amazon S3 managed encryption (SSE-S3) by default.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>kmsManaged</i>  The total number of buckets that use an Key Management Service (KMS) customer master key (CMK) to encrypt new objects by default. These buckets use Amazon Web Services managed KMS encryption (AWS-KMS) or customer managed KMS encryption (SSE-KMS) by default.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>unknown</i> The total number of buckets that Amazon Macie wasn't able to evaluate server-side encryption requirements for. Macie can't determine whether the bucket policies for these buckets require server-side encryption of new objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deniesUnencryptedObjectUploads</i> The total number of buckets whose bucket policies require server-side encryption of new objects. PutObject requests for these buckets must include the x-amz-server-side-encryption header and the value for that header must be AES256 or aws:kms.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>allowsUnencryptedObjectUploads</i> The total number of buckets that don't have a bucket policy or have a bucket policy that doesn't require server-side encryption of new objects. If a bucket policy exists, the policy doesn't require PutObject requests to include the x-amz-server-side-encryption header and it doesn't require the value for that header to be AES256 or aws:kms.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>unknown</i> The total number of buckets that Amazon Macie wasn't able to evaluate shared access settings for. Macie can't determine whether these buckets are shared with other Amazon Web Services accounts.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>notShared</i> The total number of buckets that aren't shared with other Amazon Web Services accounts.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>internal</i> The total number of buckets that are shared with an Amazon Web Services account that's part of the same Amazon Macie organization.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>external</i> The total number of buckets that are shared with an Amazon Web Services account that isn't part of the same Amazon Macie organization.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>total</i> The total storage size (in bytes) or number of objects that Amazon Macie can't analyze because the objects use an unsupported storage class or don't have a file name extension for a supported file or storage format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>storageClass</i> The total storage size (in bytes) or number of objects that Amazon Macie can't analyze because the objects use an unsupported storage class.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>fileType</i> The total storage size (in bytes) or number of objects that Amazon Macie can't analyze because the objects don't have a file name extension for a supported file or storage format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>total</i> The total storage size (in bytes) or number of objects that Amazon Macie can't analyze because the objects use an unsupported storage class or don't have a file name extension for a supported file or storage format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>storageClass</i> The total storage size (in bytes) or number of objects that Amazon Macie can't analyze because the objects use an unsupported storage class.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>fileType</i> The total storage size (in bytes) or number of objects that Amazon Macie can't analyze because the objects don't have a file name extension for a supported file or storage format.<br/>        """
        pass

    def get_classification_export_configuration(self) -> GetClassificationExportConfigurationResponse:
        r"""Retrieves the configuration settings for storing data classification results.

        :param self:
        :param 
        :return: configuration:  The location where data classification results are stored, and the encryption settings that are used when storing results in that location.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>s3Destination</i> The S3 bucket to store data classification results in, and the encryption settings to use when storing results in that bucket.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>s3Destination</b>: The S3 bucket to store data classification results in, and the encryption settings to use when storing results in that bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>kmsKeyArn</i> The Amazon Resource Name (ARN) of the Key Management Service (KMS) customer master key (CMK) to use for encryption of the results. This must be the ARN of an existing CMK that's in the same Amazon Web Services Region as the bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>keyPrefix</i> The path prefix to use in the path to the location in the bucket. This prefix specifies where to store classification results in the bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>bucketName</i> The name of the bucket.<br/>        """
        pass

    def get_custom_data_identifier(self, id: str) -> GetCustomDataIdentifierResponse:
        r"""Retrieves the criteria and other settings for a custom data identifier.

        :param self:
        :param id:  The unique identifier for the Amazon Macie resource or account that the request applies to.<br/>
        :return: tags:  A map of key-value pairs that identifies the tags (keys and values) that are associated with the custom data identifier.<br/>regex:  The regular expression (<i>regex</i>) that defines the pattern to match.<br/>name:  The custom name of the custom data identifier.<br/>maximumMatchDistance:  The maximum number of characters that can exist between text that matches the regex pattern and the character sequences specified by the keywords array. Macie includes or excludes a result based on the proximity of a keyword to text that matches the regex pattern.<br/>keywords:  An array that lists specific character sequences (keywords), one of which must be within proximity (maximumMatchDistance) of the regular expression to match. Keywords aren't case sensitive.<br/>ignoreWords:  An array that lists specific character sequences (ignore words) to exclude from the results. If the text matched by the regular expression is the same as any string in this array, Amazon Macie ignores it. Ignore words are case sensitive.<br/>id:  The unique identifier for the custom data identifier.<br/>description:  The custom description of the custom data identifier.<br/>deleted:  Specifies whether the custom data identifier was deleted. If you delete a custom data identifier, Amazon Macie doesn't delete it permanently. Instead, it soft deletes the identifier.<br/>createdAt:  The date and time, in UTC and extended ISO 8601 format, when the custom data identifier was created.<br/>arn:  The Amazon Resource Name (ARN) of the custom data identifier.<br/>        """
        pass

    def get_finding_statistics(self, groupBy: str, findingCriteria: FindingCriteria=None, size: int=None, sortCriteria: FindingStatisticsSortCriteria=None) -> GetFindingStatisticsResponse:
        r""" Retrieves (queries) aggregated statistical data about findings.

        :param self:
        :param sortCriteria:  The criteria to use to sort the query results.:<br/>size:  The maximum number of items to include in each page of the response.<br/>groupBy:  The finding property to use to group the query results. Valid values are: <ul><li>classificationDetails.jobId - The unique identifier for the classification job that produced the finding.</li> <li>resourcesAffected.s3Bucket.name - The name of the S3 bucket that the finding applies to.</li> <li>severity.description - The severity level of the finding, such as High or Medium.</li> <li>type - The type of finding, such as Policy:IAMUser/S3BucketPublic and SensitiveData:S3Object/Personal.</li></ul><br/>findingCriteria:  The criteria to use to filter the query results.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>criterion</i> A condition that specifies the property, operator, and one or more values to use to filter the results.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>orderBy</i> The sort order to apply to the results, based on the value for the property specified by the attributeName property. Valid values are: ASC, sort the results in ascending order; and, DESC, sort the results in descending order.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>attributeName</i> The grouping to sort the results by. Valid values are: count, sort the results by the number of findings in each group of results; and, groupKey, sort the results by the name of each group of results.<br/>
        :return: countsByGroup:  An array of objects, one for each group of findings that meet the filter criteria specified in the request.<br/>        """
        pass

    def get_findings(self, findingIds: List[__string], sortCriteria: SortCriteria=None) -> GetFindingsResponse:
        r"""Retrieves the details of one or more findings.

        :param self:
        :param sortCriteria:  The criteria for sorting the results of the request.:<br/>findingIds:  An array of strings that lists the unique identifiers for the findings to retrieve.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>orderBy</i> The sort order to apply to the results, based on the value for the property specified by the attributeName property. Valid values are: ASC, sort the results in ascending order; and, DESC, sort the results in descending order.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>attributeName</i> The name of the property to sort the results by. This value can be the name of any property that Amazon Macie defines for a finding.<br/>
        :return: findings:  An array of objects, one for each finding that meets the criteria specified in the request.<br/>        """
        pass

    def get_findings_filter(self, id: str) -> GetFindingsFilterResponse:
        r"""Retrieves the criteria and other settings for a findings filter.

        :param self:
        :param id:  The unique identifier for the Amazon Macie resource or account that the request applies to.<br/>
        :return: tags:  A map of key-value pairs that identifies the tags (keys and values) that are associated with the filter.<br/>position:  The position of the filter in the list of saved filters on the Amazon Macie console. This value also determines the order in which the filter is applied to findings, relative to other filters that are also applied to the findings.<br/>name:  The custom name of the filter.<br/>id:  The unique identifier for the filter.<br/>findingCriteria:  The criteria that's used to filter findings.:<br/>description:  The custom description of the filter.<br/>arn:  The Amazon Resource Name (ARN) of the filter.<br/>action:  The action that's performed on findings that meet the filter criteria (findingCriteria). Possible values are: ARCHIVE, suppress (automatically archive) the findings; and, NOOP, don't perform any action on the findings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>criterion</i> A condition that specifies the property, operator, and one or more values to use to filter the results.<br/>        """
        pass

    def get_findings_publication_configuration(self) -> GetFindingsPublicationConfigurationResponse:
        r"""Retrieves the configuration settings for publishing findings to Security Hub.

        :param self:
        :param 
        :return: securityHubConfiguration:  The configuration settings that determine which findings are published to Security Hub.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>publishPolicyFindings</i> Specifies whether to publish policy findings to Security Hub. If you set this value to true, Amazon Macie automatically publishes all new and updated policy findings that weren't suppressed by a findings filter. The default value is true.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>publishClassificationFindings</i> Specifies whether to publish sensitive data findings to Security Hub. If you set this value to true, Amazon Macie automatically publishes all sensitive data findings that weren't suppressed by a findings filter. The default value is false.<br/>        """
        pass

    def get_invitations_count(self) -> GetInvitationsCountResponse:
        r"""Retrieves the count of Amazon Macie membership invitations that were received by an account.

        :param self:
        :param 
        :return: invitationsCount:  The total number of invitations that were received by the account, not including the currently accepted invitation.<br/>        """
        pass

    def get_macie_session(self) -> GetMacieSessionResponse:
        r"""Retrieves the current status and configuration settings for an Amazon Macie account.

        :param self:
        :param 
        :return: updatedAt:  The date and time, in UTC and extended ISO 8601 format, of the most recent change to the status of the Macie account.<br/>status:  The current status of the Macie account. Possible values are: PAUSED, the account is enabled but all Macie activities are suspended (paused) for the account; and, ENABLED, the account is enabled and all Macie activities are enabled for the account.<br/>serviceRole:  The Amazon Resource Name (ARN) of the service-linked role that allows Macie to monitor and analyze data in Amazon Web Services resources for the account.<br/>findingPublishingFrequency:  The frequency with which Macie publishes updates to policy findings for the account. This includes publishing updates to Security Hub and Amazon EventBridge (formerly called Amazon CloudWatch Events).<br/>createdAt:  The date and time, in UTC and extended ISO 8601 format, when the Amazon Macie account was created.<br/>        """
        pass

    def get_master_account(self) -> GetMasterAccountResponse:
        r"""(Deprecated) Retrieves information about the Amazon Macie administrator account for an account. This operation has been replaced by the <link  linkend="GetAdministratorAccount">GetAdministratorAccount</link> operation.

        :param self:
        :param 
        :return: master:  (Deprecated) The Amazon Web Services account ID for the administrator account. If the accounts are associated by a Macie membership invitation, this object also provides details about the invitation that was sent to establish the relationship between the accounts.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>relationshipStatus</i> The status of the relationship between the account that sent the invitation (<i>inviter account</i>) and the account that received the invitation (<i>invitee account</i>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>invitedAt</i> The date and time, in UTC and extended ISO 8601 format, when the invitation was sent.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>invitationId</i> The unique identifier for the invitation. Amazon Macie uses this identifier to validate the inviter account with the invitee account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>accountId</i> The Amazon Web Services account ID for the account that sent the invitation.<br/>        """
        pass

    def get_member(self, id: str) -> GetMemberResponse:
        r"""Retrieves information about an account that's associated with an Amazon Macie administrator account.

        :param self:
        :param id:  The unique identifier for the Amazon Macie resource or account that the request applies to.<br/>
        :return: updatedAt:  The date and time, in UTC and extended ISO 8601 format, of the most recent change to the status of the relationship between the account and the administrator account.<br/>tags:  A map of key-value pairs that identifies the tags (keys and values) that are associated with the member account in Amazon Macie.<br/>relationshipStatus:  The current status of the relationship between the account and the administrator account.<br/>masterAccountId:  (Deprecated) The Amazon Web Services account ID for the administrator account. This property has been replaced by the administratorAccountId property and is retained only for backward compatibility.<br/>invitedAt:  The date and time, in UTC and extended ISO 8601 format, when an Amazon Macie membership invitation was last sent to the account. This value is null if a Macie invitation hasn't been sent to the account.<br/>email:  The email address for the account.<br/>arn:  The Amazon Resource Name (ARN) of the account.<br/>administratorAccountId:  The Amazon Web Services account ID for the administrator account.<br/>accountId:  The Amazon Web Services account ID for the account.<br/>        """
        pass

    def get_usage_statistics(self, filterBy: List[UsageStatisticsFilter]=None, maxResults: int=None, nextToken: str=None, sortBy: UsageStatisticsSortBy=None, timeRange: str=None) -> GetUsageStatisticsResponse:
        r"""Retrieves (queries) quotas and aggregated usage data for one or more accounts.

        :param self:
        :param timeRange:  The inclusive time period to query usage data for. Valid values are: MONTH_TO_DATE, for the current calendar month to date; and, PAST_30_DAYS, for the preceding 30 days. If you don't specify a value, Amazon Macie provides usage data for the preceding 30 days.<br/>sortBy:  The criteria to use to sort the query results.:<br/>nextToken:  The nextToken string that specifies which page of results to return in a paginated response.<br/>maxResults:  The maximum number of items to include in each page of the response.<br/>filterBy:  An array of objects, one for each condition to use to filter the query results. If you specify more than one condition, Amazon Macie uses an AND operator to join the conditions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>orderBy</i> The sort order to apply to the results, based on the value for the field specified by the key property. Valid values are: ASC, sort the results in ascending order; and, DESC, sort the results in descending order.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>key</i> The field to sort the results by.<br/>
        :return: timeRange:  The inclusive time period that the usage data applies to. Possible values are: MONTH_TO_DATE, for the current calendar month to date; and, PAST_30_DAYS, for the preceding 30 days.<br/>records:  An array of objects that contains the results of the query. Each object contains the data for an account that meets the filter criteria specified in the request.<br/>nextToken:  The string to use in a subsequent request to get the next page of results in a paginated response. This value is null if there are no additional pages.<br/>        """
        pass

    def get_usage_totals(self, timeRange: str=None) -> GetUsageTotalsResponse:
        r"""Retrieves (queries) aggregated usage data for an account.

        :param self:
        :param timeRange:  The inclusive time period to retrieve the data for. Valid values are: MONTH_TO_DATE, for the current calendar month to date; and, PAST_30_DAYS, for the preceding 30 days. If you don't specify a value for this parameter, Amazon Macie provides aggregated usage data for the preceding 30 days.<br/>
        :return: usageTotals:  An array of objects that contains the results of the query. Each object contains the data for a specific usage metric.<br/>timeRange:  The inclusive time period that the usage data applies to. Possible values are: MONTH_TO_DATE, for the current calendar month to date; and, PAST_30_DAYS, for the preceding 30 days.<br/>        """
        pass

    def list_classification_jobs(self, filterCriteria: ListJobsFilterCriteria=None, maxResults: int=None, nextToken: str=None, sortCriteria: ListJobsSortCriteria=None) -> ListClassificationJobsResponse:
        r"""Retrieves a subset of information about one or more classification jobs.

        :param self:
        :param sortCriteria:  The criteria to use to sort the results.:<br/>nextToken:  The nextToken string that specifies which page of results to return in a paginated response.<br/>maxResults:  The maximum number of items to include in each page of the response.<br/>filterCriteria:  The criteria to use to filter the results.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>includes</i> An array of objects, one for each condition that determines which jobs to include in the results.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>excludes</i> An array of objects, one for each condition that determines which jobs to exclude from the results.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>orderBy</i> The sort order to apply to the results, based on the value for the property specified by the attributeName property. Valid values are: ASC, sort the results in ascending order; and, DESC, sort the results in descending order.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>attributeName</i> The property to sort the results by.<br/>
        :return: nextToken:  The string to use in a subsequent request to get the next page of results in a paginated response. This value is null if there are no additional pages.<br/>items:  An array of objects, one for each job that meets the filter criteria specified in the request.<br/>        """
        pass

    def list_custom_data_identifiers(self, maxResults: int=None, nextToken: str=None) -> ListCustomDataIdentifiersResponse:
        r"""Retrieves a subset of information about all the custom data identifiers for an account.

        :param self:
        :param nextToken:  The nextToken string that specifies which page of results to return in a paginated response.<br/>maxResults:  The maximum number of items to include in each page of the response.<br/>
        :return: nextToken:  The string to use in a subsequent request to get the next page of results in a paginated response. This value is null if there are no additional pages.<br/>items:  An array of objects, one for each custom data identifier.<br/>        """
        pass

    def list_findings(self, findingCriteria: FindingCriteria=None, maxResults: int=None, nextToken: str=None, sortCriteria: SortCriteria=None) -> ListFindingsResponse:
        r"""Retrieves a subset of information about one or more findings.

        :param self:
        :param sortCriteria:  The criteria to use to sort the results.:<br/>nextToken:  The nextToken string that specifies which page of results to return in a paginated response.<br/>maxResults:  The maximum number of items to include in each page of the response.<br/>findingCriteria:  The criteria to use to filter the results.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>criterion</i> A condition that specifies the property, operator, and one or more values to use to filter the results.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>orderBy</i> The sort order to apply to the results, based on the value for the property specified by the attributeName property. Valid values are: ASC, sort the results in ascending order; and, DESC, sort the results in descending order.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>attributeName</i> The name of the property to sort the results by. This value can be the name of any property that Amazon Macie defines for a finding.<br/>
        :return: nextToken:  The string to use in a subsequent request to get the next page of results in a paginated response. This value is null if there are no additional pages.<br/>findingIds:  An array of strings, where each string is the unique identifier for a finding that meets the filter criteria specified in the request.<br/>        """
        pass

    def list_findings_filters(self, maxResults: int=None, nextToken: str=None) -> ListFindingsFiltersResponse:
        r"""Retrieves a subset of information about all the findings filters for an account.

        :param self:
        :param nextToken:  The nextToken string that specifies which page of results to return in a paginated response.<br/>maxResults:  The maximum number of items to include in each page of a paginated response.<br/>
        :return: nextToken:  The string to use in a subsequent request to get the next page of results in a paginated response. This value is null if there are no additional pages.<br/>findingsFilterListItems:  An array of objects, one for each filter that's associated with the account.<br/>        """
        pass

    def list_invitations(self, maxResults: int=None, nextToken: str=None) -> ListInvitationsResponse:
        r"""Retrieves information about all the Amazon Macie membership invitations that were received by an account.

        :param self:
        :param nextToken:  The nextToken string that specifies which page of results to return in a paginated response.<br/>maxResults:  The maximum number of items to include in each page of a paginated response.<br/>
        :return: nextToken:  The string to use in a subsequent request to get the next page of results in a paginated response. This value is null if there are no additional pages.<br/>invitations:  An array of objects, one for each invitation that was received by the account.<br/>        """
        pass

    def list_members(self, maxResults: int=None, nextToken: str=None, onlyAssociated: str=None) -> ListMembersResponse:
        r"""Retrieves information about the accounts that are associated with an Amazon Macie administrator account.

        :param self:
        :param onlyAssociated:  Specifies which accounts to include in the response, based on the status of an account's relationship with the administrator account. By default, the response includes only current member accounts. To include all accounts, set this value to false.<br/>nextToken:  The nextToken string that specifies which page of results to return in a paginated response.<br/>maxResults:  The maximum number of items to include in each page of a paginated response.<br/>
        :return: nextToken:  The string to use in a subsequent request to get the next page of results in a paginated response. This value is null if there are no additional pages.<br/>members:  An array of objects, one for each account that's associated with the administrator account and meets the criteria specified by the onlyAssociated request parameter.<br/>        """
        pass

    def list_organization_admin_accounts(self, maxResults: int=None, nextToken: str=None) -> ListOrganizationAdminAccountsResponse:
        r"""Retrieves information about the delegated Amazon Macie administrator account for an Amazon Web Services organization.

        :param self:
        :param nextToken:  The nextToken string that specifies which page of results to return in a paginated response.<br/>maxResults:  The maximum number of items to include in each page of a paginated response.<br/>
        :return: nextToken:  The string to use in a subsequent request to get the next page of results in a paginated response. This value is null if there are no additional pages.<br/>adminAccounts:  An array of objects, one for each delegated Amazon Macie administrator account for the organization. Only one of these accounts can have a status of ENABLED.<br/>        """
        pass

    def list_tags_for_resource(self, resourceArn: str) -> ListTagsForResourceResponse:
        r"""Retrieves the tags (keys and values) that are associated with a classification job, custom data identifier, findings filter, or member account.

        :param self:
        :param resourceArn:  The Amazon Resource Name (ARN) of the classification job, custom data identifier, findings filter, or member account.<br/>
        :return: tags:  A map of key-value pairs that identifies the tags (keys and values) that are associated with the resource.<br/>        """
        pass

    def put_classification_export_configuration(self, configuration: ClassificationExportConfiguration) -> PutClassificationExportConfigurationResponse:
        r"""Creates or updates the configuration settings for storing data classification results.

        :param self:
        :param configuration:  The location to store data classification results in, and the encryption settings to use when storing results in that location.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>s3Destination</i> The S3 bucket to store data classification results in, and the encryption settings to use when storing results in that bucket.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>s3Destination</b>: The S3 bucket to store data classification results in, and the encryption settings to use when storing results in that bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>kmsKeyArn</i> The Amazon Resource Name (ARN) of the Key Management Service (KMS) customer master key (CMK) to use for encryption of the results. This must be the ARN of an existing CMK that's in the same Amazon Web Services Region as the bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>keyPrefix</i> The path prefix to use in the path to the location in the bucket. This prefix specifies where to store classification results in the bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>bucketName</i> The name of the bucket.<br/>
        :return: configuration:  The location where the data classification results are stored, and the encryption settings that are used when storing results in that location.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>s3Destination</i> The S3 bucket to store data classification results in, and the encryption settings to use when storing results in that bucket.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>s3Destination</b>: The S3 bucket to store data classification results in, and the encryption settings to use when storing results in that bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>kmsKeyArn</i> The Amazon Resource Name (ARN) of the Key Management Service (KMS) customer master key (CMK) to use for encryption of the results. This must be the ARN of an existing CMK that's in the same Amazon Web Services Region as the bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>keyPrefix</i> The path prefix to use in the path to the location in the bucket. This prefix specifies where to store classification results in the bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>bucketName</i> The name of the bucket.<br/>        """
        pass

    def put_findings_publication_configuration(self, clientToken: str=None, securityHubConfiguration: SecurityHubConfiguration=None) -> PutFindingsPublicationConfigurationResponse:
        r"""Updates the configuration settings for publishing findings to Security Hub.

        :param self:
        :param securityHubConfiguration:  The configuration settings that determine which findings to publish to Security Hub.:<br/>clientToken:  A unique, case-sensitive token that you provide to ensure the idempotency of the request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>publishPolicyFindings</i> Specifies whether to publish policy findings to Security Hub. If you set this value to true, Amazon Macie automatically publishes all new and updated policy findings that weren't suppressed by a findings filter. The default value is true.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>publishClassificationFindings</i> Specifies whether to publish sensitive data findings to Security Hub. If you set this value to true, Amazon Macie automatically publishes all sensitive data findings that weren't suppressed by a findings filter. The default value is false.<br/>
        :return:         """
        pass

    def search_resources(self, bucketCriteria: SearchResourcesBucketCriteria=None, maxResults: int=None, nextToken: str=None, sortCriteria: SearchResourcesSortCriteria=None) -> SearchResourcesResponse:
        r"""Retrieves (queries) statistical data and other information about Amazon Web Services resources that Amazon Macie monitors and analyzes.

        :param self:
        :param sortCriteria:  The criteria to use to sort the results.:<br/>nextToken:  The nextToken string that specifies which page of results to return in a paginated response.<br/>maxResults:  The maximum number of items to include in each page of the response. The default value is 50.<br/>bucketCriteria:  The filter conditions that determine which S3 buckets to include or exclude from the query results.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>includes</i> The property- and tag-based conditions that determine which buckets to include in the results.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>includes</b>: The property- and tag-based conditions that determine which buckets to include in the results.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>excludes</i> The property- and tag-based conditions that determine which buckets to exclude from the results.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>excludes</b>: The property- and tag-based conditions that determine which buckets to exclude from the results.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>and</i> An array of objects, one for each property- or tag-based condition that includes or excludes resources from the query results. If you specify more than one condition, Amazon Macie uses AND logic to join the conditions.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>and</i> An array of objects, one for each property- or tag-based condition that includes or excludes resources from the query results. If you specify more than one condition, Amazon Macie uses AND logic to join the conditions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>orderBy</i> The sort order to apply to the results, based on the value for the property specified by the attributeName property. Valid values are: ASC, sort the results in ascending order; and, DESC, sort the results in descending order.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>attributeName</i> The property to sort the results by.<br/>
        :return: nextToken:  The string to use in a subsequent request to get the next page of results in a paginated response. This value is null if there are no additional pages.<br/>matchingResources:  An array of objects, one for each resource that meets the filter criteria specified in the request.<br/>        """
        pass

    def tag_resource(self, tags: TagMap, resourceArn: str) -> TagResourceResponse:
        r"""Adds or updates one or more tags (keys and values) that are associated with a classification job, custom data identifier, findings filter, or member account.

        :param self:
        :param tags:  A map of key-value pairs that specifies the tags to associate with the resource. A resource can have a maximum of 50 tags. Each tag consists of a tag key and an associated tag value. The maximum length of a tag key is 128 characters. The maximum length of a tag value is 256 characters.<br/>resourceArn:  The Amazon Resource Name (ARN) of the classification job, custom data identifier, findings filter, or member account.<br/>
        :return:         """
        pass

    def test_custom_data_identifier(self, sampleText: str, regex: str, ignoreWords: List[__string]=None, keywords: List[__string]=None, maximumMatchDistance: int=None) -> TestCustomDataIdentifierResponse:
        r"""Tests a custom data identifier.

        :param self:
        :param sampleText:  The sample text to inspect by using the custom data identifier. The text can contain as many as 1,000 characters.<br/>regex:  The regular expression (<i>regex</i>) that defines the pattern to match. The expression can contain as many as 512 characters.<br/>maximumMatchDistance:  The maximum number of characters that can exist between text that matches the regex pattern and the character sequences specified by the keywords array. Macie includes or excludes a result based on the proximity of a keyword to text that matches the regex pattern. The distance can be 1-300 characters. The default value is 50.<br/>keywords:  An array that lists specific character sequences (keywords), one of which must be within proximity (maximumMatchDistance) of the regular expression to match. The array can contain as many as 50 keywords. Each keyword can contain 3-90 characters. Keywords aren't case sensitive.<br/>ignoreWords:  An array that lists specific character sequences (ignore words) to exclude from the results. If the text matched by the regular expression is the same as any string in this array, Amazon Macie ignores it. The array can contain as many as 10 ignore words. Each ignore word can contain 4-90 characters. Ignore words are case sensitive.<br/>
        :return: matchCount:  The number of instances of sample text that matched the detection criteria specified in the custom data identifier.<br/>        """
        pass

    def untag_resource(self, tagKeys: List[__string], resourceArn: str) -> UntagResourceResponse:
        r"""Removes one or more tags (keys and values) from a classification job, custom data identifier, findings filter, or member account.

        :param self:
        :param tagKeys:  The key of the tag to remove from the resource. To remove multiple tags, append the tagKeys parameter and argument for each additional tag to remove, separated by an ampersand (&amp;).<br/>resourceArn:  The Amazon Resource Name (ARN) of the classification job, custom data identifier, findings filter, or member account.<br/>
        :return:         """
        pass

    def update_classification_job(self, jobStatus: str, jobId: str) -> UpdateClassificationJobResponse:
        r"""Changes the status of a classification job.

        :param self:
        :param jobStatus:  The new status for the job. Valid values are: <ul><li>CANCELLED - Stops the job permanently and cancels it. This value is valid only if the job's current status is IDLE, PAUSED, RUNNING, or USER_PAUSED. If you specify this value and the job's current status is RUNNING, Amazon Macie immediately begins to stop all processing tasks for the job. You can't resume or restart a job after you cancel it.</li> <li>RUNNING - Resumes the job. This value is valid only if the job's current status is USER_PAUSED. If you paused the job while it was actively running and you specify this value less than 30 days after you paused the job, Macie immediately resumes processing from the point where you paused the job. Otherwise, Macie resumes the job according to the schedule and other settings for the job.</li> <li>USER_PAUSED - Pauses the job temporarily. This value is valid only if the job's current status is IDLE, PAUSED, or RUNNING. If you specify this value and the job's current status is RUNNING, Macie immediately begins to pause all processing tasks for the job. If you pause a one-time job and you don't resume it within 30 days, the job expires and Macie cancels the job. If you pause a recurring job when its status is RUNNING and you don't resume it within 30 days, the job run expires and Macie cancels the run. To check the expiration date, refer to the UserPausedDetails.jobExpiresAt property.</li></ul><br/>jobId:  The unique identifier for the classification job.<br/>
        :return:         """
        pass

    def update_findings_filter(self, id: str, action: str=None, description: str=None, findingCriteria: FindingCriteria=None, name: str=None, position: int=None, clientToken: str=None) -> UpdateFindingsFilterResponse:
        r"""Updates the criteria and other settings for a findings filter.

        :param self:
        :param clientToken:  A unique, case-sensitive token that you provide to ensure the idempotency of the request.<br/>position:  The position of the filter in the list of saved filters on the Amazon Macie console. This value also determines the order in which the filter is applied to findings, relative to other filters that are also applied to the findings.<br/>name:  A custom name for the filter. The name must contain at least 3 characters and can contain as many as 64 characters. We strongly recommend that you avoid including any sensitive data in the name of a filter. Other users might be able to see the filter's name, depending on the actions that they're allowed to perform in Amazon Macie.<br/>id:  The unique identifier for the Amazon Macie resource or account that the request applies to.<br/>findingCriteria:  The criteria to use to filter findings.:<br/>description:  A custom description of the filter. The description can contain as many as 512 characters. We strongly recommend that you avoid including any sensitive data in the description of a filter. Other users might be able to see the filter's description, depending on the actions that they're allowed to perform in Amazon Macie.<br/>action:  The action to perform on findings that meet the filter criteria (findingCriteria). Valid values are: ARCHIVE, suppress (automatically archive) the findings; and, NOOP, don't perform any action on the findings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>criterion</i> A condition that specifies the property, operator, and one or more values to use to filter the results.<br/>
        :return: id:  The unique identifier for the filter that was updated.<br/>arn:  The Amazon Resource Name (ARN) of the filter that was updated.<br/>        """
        pass

    def update_macie_session(self, findingPublishingFrequency: str=None, status: str=None) -> UpdateMacieSessionResponse:
        r"""Suspends or re-enables an Amazon Macie account, or updates the configuration settings for a Macie account.

        :param self:
        :param status:  Specifies a new status for the account. Valid values are: ENABLED, resume all Amazon Macie activities for the account; and, PAUSED, suspend all Macie activities for the account.<br/>findingPublishingFrequency:  Specifies how often to publish updates to policy findings for the account. This includes publishing updates to Security Hub and Amazon EventBridge (formerly called Amazon CloudWatch Events).<br/>
        :return:         """
        pass

    def update_member_session(self, status: str, id: str) -> UpdateMemberSessionResponse:
        r"""Enables an Amazon Macie administrator to suspend or re-enable a member account.

        :param self:
        :param status:  Specifies the new status for the account. Valid values are: ENABLED, resume all Amazon Macie activities for the account; and, PAUSED, suspend all Macie activities for the account.<br/>id:  The unique identifier for the Amazon Macie resource or account that the request applies to.<br/>
        :return:         """
        pass

    def update_organization_configuration(self, autoEnable: __boolean) -> UpdateOrganizationConfigurationResponse:
        r"""Updates the Amazon Macie configuration settings for an Amazon Web Services organization.

        :param self:
        :param autoEnable:  Specifies whether to enable Amazon Macie automatically for each account, when the account is added to the Amazon Web Services organization.<br/>
        :return:         """
        pass





class ManagedBlockchain(BaseClient):
    r"""<p/> Amazon Managed Blockchain is a fully managed service for creating and managing blockchain networks using open-source frameworks. Blockchain allows you to build applications where multiple parties can securely and transparently run transactions and share data without the need for a trusted, central authority. Managed Blockchain supports the Hyperledger Fabric and Ethereum open-source frameworks. Because of fundamental differences between the frameworks, some API actions or data types may only apply in the context of one framework and not the other. For example, actions related to Hyperledger Fabric network members such as <code>CreateMember</code> and <code>DeleteMember</code> do not apply to Ethereum. The description for each action indicates the framework or frameworks to which it applies. Data types and properties that apply only in the context of a particular framework are similarly indicated."""




    class CreateMemberInput(Mapping):
        pass
    
    class CreateMemberOutput(Mapping):
        pass
    
    class MemberConfiguration(Mapping):
        pass
    
    class CreateNetworkInput(Mapping):
        pass
    
    class CreateNetworkOutput(Mapping):
        pass
    
    class NetworkFrameworkConfiguration(Mapping):
        pass
    
    class VotingPolicy(Mapping):
        pass
    
    class InputTagMap(object):
        pass
    
    class CreateNodeInput(Mapping):
        pass
    
    class CreateNodeOutput(Mapping):
        pass
    
    class NodeConfiguration(Mapping):
        pass
    
    class CreateProposalInput(Mapping):
        pass
    
    class CreateProposalOutput(Mapping):
        pass
    
    class ProposalActions(Mapping):
        pass
    
    class DeleteMemberInput(Mapping):
        pass
    
    class DeleteMemberOutput(Mapping):
        pass
    
    class DeleteNodeInput(Mapping):
        pass
    
    class DeleteNodeOutput(Mapping):
        pass
    
    class GetMemberInput(Mapping):
        pass
    
    class GetMemberOutput(Mapping):
        pass
    
    class GetNetworkInput(Mapping):
        pass
    
    class GetNetworkOutput(Mapping):
        pass
    
    class GetNodeInput(Mapping):
        pass
    
    class GetNodeOutput(Mapping):
        pass
    
    class GetProposalInput(Mapping):
        pass
    
    class GetProposalOutput(Mapping):
        pass
    
    class ListInvitationsInput(Mapping):
        pass
    
    class ListInvitationsOutput(Mapping):
        pass
    
    class ListMembersInput(Mapping):
        pass
    
    class ListMembersOutput(Mapping):
        pass
    
    class IsOwned(object):
        pass
    
    class ListNetworksInput(Mapping):
        pass
    
    class ListNetworksOutput(Mapping):
        pass
    
    class ListNodesInput(Mapping):
        pass
    
    class ListNodesOutput(Mapping):
        pass
    
    class ListProposalVotesInput(Mapping):
        pass
    
    class ListProposalVotesOutput(Mapping):
        pass
    
    class ListProposalsInput(Mapping):
        pass
    
    class ListProposalsOutput(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class RejectInvitationInput(Mapping):
        pass
    
    class RejectInvitationOutput(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateMemberInput(Mapping):
        pass
    
    class UpdateMemberOutput(Mapping):
        pass
    
    class MemberLogPublishingConfiguration(Mapping):
        pass
    
    class UpdateNodeInput(Mapping):
        pass
    
    class UpdateNodeOutput(Mapping):
        pass
    
    class NodeLogPublishingConfiguration(Mapping):
        pass
    
    class VoteOnProposalInput(Mapping):
        pass
    
    class VoteOnProposalOutput(Mapping):
        pass
    
    def create_member(self, MemberConfiguration: MemberConfiguration, NetworkId: str, InvitationId: str, ClientRequestToken: str) -> CreateMemberOutput:
        r"""Creates a member within a Managed Blockchain network. Applies only to Hyperledger Fabric.

        :param self:
        :param MemberConfiguration:  Member configuration parameters.:<br/>NetworkId:  The unique identifier of the network in which the member is created.<br/>InvitationId:  The unique identifier of the invitation that is sent to the member to join the network.<br/>ClientRequestToken:  A unique, case-sensitive identifier that you provide to ensure the idempotency of the operation. An idempotent operation completes no more than one time. This identifier is required only if you make a service request directly using an HTTP client. It is generated automatically if you use an AWS SDK or the AWS CLI.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyArn</i> The Amazon Resource Name (ARN) of the customer managed key in AWS Key Management Service (AWS KMS) to use for encryption at rest in the member. This parameter is inherited by any nodes that this member creates. Use one of the following options to specify this parameter: <ul> <li>  <b>Undefined or empty string</b> - The member uses an AWS owned KMS key for encryption by default. </li> <li>  <b>A valid symmetric customer managed KMS key</b> - The member uses the specified key for encryption. Amazon Managed Blockchain doesn't support asymmetric keys. For more information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html">Using symmetric and asymmetric keys</a> in the <i>AWS Key Management Service Developer Guide</i>. The following is an example of a KMS key ARN: <code>arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> Tags assigned to the member. Tags consist of a key and optional value. For more information about tags, see <a href="https://docs.aws.amazon.com/managed-blockchain/latest/hyperledger-fabric-dev/tagging-resources.html">Tagging Resources</a> in the <i>Amazon Managed Blockchain Hyperledger Fabric Developer Guide</i>. When specifying tags during creation, you can specify multiple key-value pairs in a single request, with an overall maximum of 50 tags added to each resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogPublishingConfiguration</i> Configuration properties for logging events associated with a member of a Managed Blockchain network.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>LogPublishingConfiguration</b>: Configuration properties for logging events associated with a member of a Managed Blockchain network.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FrameworkConfiguration</i> Configuration properties of the blockchain framework relevant to the member.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>FrameworkConfiguration</b>: Configuration properties of the blockchain framework relevant to the member.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> An optional description of the member.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the member.<br/>Attributes of Hyperledger Fabric for a member on a Managed Blockchain network that uses Hyperledger Fabric.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Fabric</b>: Attributes of Hyperledger Fabric for a member on a Managed Blockchain network that uses Hyperledger Fabric.Configuration properties for logging events associated with a member of a Managed Blockchain network using the Hyperledger Fabric framework.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Fabric</b>: Configuration properties for logging events associated with a member of a Managed Blockchain network using the Hyperledger Fabric framework.
        :return: MemberId:  The unique identifier of the member.<br/>        """
        pass

    def create_network(self, MemberConfiguration: MemberConfiguration, VotingPolicy: VotingPolicy, FrameworkVersion: str, Framework: str, Name: str, ClientRequestToken: str, Description: str=None, FrameworkConfiguration: NetworkFrameworkConfiguration=None, Tags: InputTagMap=None) -> CreateNetworkOutput:
        r"""Creates a new blockchain network using Amazon Managed Blockchain. Applies only to Hyperledger Fabric.

        :param self:
        :param Tags:  Tags to assign to the network. Each tag consists of a key and optional value. When specifying tags during creation, you can specify multiple key-value pairs in a single request, with an overall maximum of 50 tags added to each resource. For more information about tags, see <a href="https://docs.aws.amazon.com/managed-blockchain/latest/ethereum-dev/tagging-resources.html">Tagging Resources</a> in the <i>Amazon Managed Blockchain Ethereum Developer Guide</i>, or <a href="https://docs.aws.amazon.com/managed-blockchain/latest/hyperledger-fabric-dev/tagging-resources.html">Tagging Resources</a> in the <i>Amazon Managed Blockchain Hyperledger Fabric Developer Guide</i>.<br/>MemberConfiguration:  Configuration properties for the first member within the network.:<br/>VotingPolicy:   The voting rules used by the network to determine if a proposal is approved. :<br/>FrameworkConfiguration:   Configuration properties of the blockchain framework relevant to the network configuration. :<br/>FrameworkVersion:  The version of the blockchain framework that the network uses.<br/>Framework:  The blockchain framework that the network uses.<br/>Description:  An optional description for the network.<br/>Name:  The name of the network.<br/>ClientRequestToken:  A unique, case-sensitive identifier that you provide to ensure the idempotency of the operation. An idempotent operation completes no more than one time. This identifier is required only if you make a service request directly using an HTTP client. It is generated automatically if you use an AWS SDK or the AWS CLI.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Fabric</i>  Hyperledger Fabric configuration properties for a Managed Blockchain network that uses Hyperledger Fabric. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Fabric</b>:  Hyperledger Fabric configuration properties for a Managed Blockchain network that uses Hyperledger Fabric. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Edition</i> The edition of Amazon Managed Blockchain that the network uses. For more information, see <a href="http://aws.amazon.com/managed-blockchain/pricing/">Amazon Managed Blockchain Pricing</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApprovalThresholdPolicy</i> Defines the rules for the network for voting on proposals, such as the percentage of <code>YES</code> votes required for the proposal to be approved and the duration of the proposal. The policy applies to all proposals and is specified when the network is created.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ApprovalThresholdPolicy</b>: Defines the rules for the network for voting on proposals, such as the percentage of <code>YES</code> votes required for the proposal to be approved and the duration of the proposal. The policy applies to all proposals and is specified when the network is created.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ThresholdComparator</i> Determines whether the vote percentage must be greater than the <code>ThresholdPercentage</code> or must be greater than or equal to the <code>ThreholdPercentage</code> to be approved.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ProposalDurationInHours</i> The duration from the time that a proposal is created until it expires. If members cast neither the required number of <code>YES</code> votes to approve the proposal nor the number of <code>NO</code> votes required to reject it before the duration expires, the proposal is <code>EXPIRED</code> and <code>ProposalActions</code> are not carried out.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ThresholdPercentage</i> The percentage of votes among all members that must be <code>YES</code> for a proposal to be approved. For example, a <code>ThresholdPercentage</code> value of <code>50</code> indicates 50%. The <code>ThresholdComparator</code> determines the precise comparison. If a <code>ThresholdPercentage</code> value of <code>50</code> is specified on a network with 10 members, along with a <code>ThresholdComparator</code> value of <code>GREATER_THAN</code>, this indicates that 6 <code>YES</code> votes are required for the proposal to be approved.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyArn</i> The Amazon Resource Name (ARN) of the customer managed key in AWS Key Management Service (AWS KMS) to use for encryption at rest in the member. This parameter is inherited by any nodes that this member creates. Use one of the following options to specify this parameter: <ul> <li>  <b>Undefined or empty string</b> - The member uses an AWS owned KMS key for encryption by default. </li> <li>  <b>A valid symmetric customer managed KMS key</b> - The member uses the specified key for encryption. Amazon Managed Blockchain doesn't support asymmetric keys. For more information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html">Using symmetric and asymmetric keys</a> in the <i>AWS Key Management Service Developer Guide</i>. The following is an example of a KMS key ARN: <code>arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> Tags assigned to the member. Tags consist of a key and optional value. For more information about tags, see <a href="https://docs.aws.amazon.com/managed-blockchain/latest/hyperledger-fabric-dev/tagging-resources.html">Tagging Resources</a> in the <i>Amazon Managed Blockchain Hyperledger Fabric Developer Guide</i>. When specifying tags during creation, you can specify multiple key-value pairs in a single request, with an overall maximum of 50 tags added to each resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogPublishingConfiguration</i> Configuration properties for logging events associated with a member of a Managed Blockchain network.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>LogPublishingConfiguration</b>: Configuration properties for logging events associated with a member of a Managed Blockchain network.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FrameworkConfiguration</i> Configuration properties of the blockchain framework relevant to the member.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>FrameworkConfiguration</b>: Configuration properties of the blockchain framework relevant to the member.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> An optional description of the member.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the member.<br/>Attributes of Hyperledger Fabric for a member on a Managed Blockchain network that uses Hyperledger Fabric.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Fabric</b>: Attributes of Hyperledger Fabric for a member on a Managed Blockchain network that uses Hyperledger Fabric.Configuration properties for logging events associated with a member of a Managed Blockchain network using the Hyperledger Fabric framework.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Fabric</b>: Configuration properties for logging events associated with a member of a Managed Blockchain network using the Hyperledger Fabric framework.
        :return: MemberId:  The unique identifier for the first member within the network.<br/>NetworkId:  The unique identifier for the network.<br/>        """
        pass

    def create_node(self, NodeConfiguration: NodeConfiguration, NetworkId: str, ClientRequestToken: str, MemberId: str=None, Tags: InputTagMap=None) -> CreateNodeOutput:
        r"""Creates a node on the specified blockchain network. Applies to Hyperledger Fabric and Ethereum.

        :param self:
        :param Tags:  Tags to assign to the node. Each tag consists of a key and optional value. When specifying tags during creation, you can specify multiple key-value pairs in a single request, with an overall maximum of 50 tags added to each resource. For more information about tags, see <a href="https://docs.aws.amazon.com/managed-blockchain/latest/ethereum-dev/tagging-resources.html">Tagging Resources</a> in the <i>Amazon Managed Blockchain Ethereum Developer Guide</i>, or <a href="https://docs.aws.amazon.com/managed-blockchain/latest/hyperledger-fabric-dev/tagging-resources.html">Tagging Resources</a> in the <i>Amazon Managed Blockchain Hyperledger Fabric Developer Guide</i>.<br/>NodeConfiguration:  The properties of a node configuration.:<br/>MemberId:  The unique identifier of the member that owns this node. Applies only to Hyperledger Fabric.<br/>NetworkId:  The unique identifier of the network for the node. Ethereum public networks have the following <code>NetworkId</code>s: <ul> <li>  <code>n-ethereum-mainnet</code>  </li> <li>  <code>n-ethereum-rinkeby</code>  </li> <li>  <code>n-ethereum-ropsten</code>  </li> </ul><br/>ClientRequestToken:  A unique, case-sensitive identifier that you provide to ensure the idempotency of the operation. An idempotent operation completes no more than one time. This identifier is required only if you make a service request directly using an HTTP client. It is generated automatically if you use an AWS SDK or the AWS CLI.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StateDB</i> The state database that the node uses. Values are <code>LevelDB</code> or <code>CouchDB</code>. When using an Amazon Managed Blockchain network with Hyperledger Fabric version 1.4 or later, the default is <code>CouchDB</code>. Applies only to Hyperledger Fabric.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogPublishingConfiguration</i> Configuration properties for logging events associated with a peer node on a Hyperledger Fabric network on Managed Blockchain. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>LogPublishingConfiguration</b>: Configuration properties for logging events associated with a peer node on a Hyperledger Fabric network on Managed Blockchain. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZone</i> The Availability Zone in which the node exists. Required for Ethereum nodes. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceType</i> The Amazon Managed Blockchain instance type for the node.<br/>Configuration properties for logging events associated with a node that is owned by a member of a Managed Blockchain network using the Hyperledger Fabric framework.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Fabric</b>: Configuration properties for logging events associated with a node that is owned by a member of a Managed Blockchain network using the Hyperledger Fabric framework.
        :return: NodeId:  The unique identifier of the node.<br/>        """
        pass

    def create_proposal(self, Actions: ProposalActions, MemberId: str, NetworkId: str, ClientRequestToken: str, Description: str=None, Tags: InputTagMap=None) -> CreateProposalOutput:
        r"""Creates a proposal for a change to the network that other members of the network can vote on, for example, a proposal to add a new member to the network. Any member can create a proposal. Applies only to Hyperledger Fabric.

        :param self:
        :param Tags:  Tags to assign to the proposal. Each tag consists of a key and optional value. When specifying tags during creation, you can specify multiple key-value pairs in a single request, with an overall maximum of 50 tags added to each resource. If the proposal is for a network invitation, the invitation inherits the tags added to the proposal. For more information about tags, see <a href="https://docs.aws.amazon.com/managed-blockchain/latest/ethereum-dev/tagging-resources.html">Tagging Resources</a> in the <i>Amazon Managed Blockchain Ethereum Developer Guide</i>, or <a href="https://docs.aws.amazon.com/managed-blockchain/latest/hyperledger-fabric-dev/tagging-resources.html">Tagging Resources</a> in the <i>Amazon Managed Blockchain Hyperledger Fabric Developer Guide</i>.<br/>Description:  A description for the proposal that is visible to voting members, for example, "Proposal to add Example Corp. as member."<br/>Actions:  The type of actions proposed, such as inviting a member or removing a member. The types of <code>Actions</code> in a proposal are mutually exclusive. For example, a proposal with <code>Invitations</code> actions cannot also contain <code>Removals</code> actions.:<br/>MemberId:  The unique identifier of the member that is creating the proposal. This identifier is especially useful for identifying the member making the proposal when multiple members exist in a single AWS account.<br/>NetworkId:   The unique identifier of the network for which the proposal is made.<br/>ClientRequestToken:  A unique, case-sensitive identifier that you provide to ensure the idempotency of the operation. An idempotent operation completes no more than one time. This identifier is required only if you make a service request directly using an HTTP client. It is generated automatically if you use an AWS SDK or the AWS CLI.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Removals</i>  The actions to perform for an <code>APPROVED</code> proposal to remove a member from the network, which deletes the member and all associated member resources from the network. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Invitations</i>  The actions to perform for an <code>APPROVED</code> proposal to invite an AWS account to create a member and join the network. <br/>
        :return: ProposalId:  The unique identifier of the proposal.<br/>        """
        pass

    def delete_member(self, MemberId: str, NetworkId: str) -> DeleteMemberOutput:
        r"""Deletes a member. Deleting a member removes the member and all associated resources from the network. <code>DeleteMember</code> can only be called for a specified <code>MemberId</code> if the principal performing the action is associated with the AWS account that owns the member. In all other cases, the <code>DeleteMember</code> action is carried out as the result of an approved proposal to remove a member. If <code>MemberId</code> is the last member in a network specified by the last AWS account, the network is deleted also. Applies only to Hyperledger Fabric.

        :param self:
        :param MemberId:  The unique identifier of the member to remove.<br/>NetworkId:  The unique identifier of the network from which the member is removed.<br/>
        :return:         """
        pass

    def delete_node(self, NodeId: str, NetworkId: str, MemberId: str=None) -> DeleteNodeOutput:
        r"""Deletes a node that your AWS account owns. All data on the node is lost and cannot be recovered. Applies to Hyperledger Fabric and Ethereum.

        :param self:
        :param NodeId:  The unique identifier of the node.<br/>MemberId:  The unique identifier of the member that owns this node. Applies only to Hyperledger Fabric and is required for Hyperledger Fabric.<br/>NetworkId:  The unique identifier of the network that the node is on. Ethereum public networks have the following <code>NetworkId</code>s: <ul> <li>  <code>n-ethereum-mainnet</code>  </li> <li>  <code>n-ethereum-rinkeby</code>  </li> <li>  <code>n-ethereum-ropsten</code>  </li> </ul><br/>
        :return:         """
        pass

    def get_member(self, MemberId: str, NetworkId: str) -> GetMemberOutput:
        r"""Returns detailed information about a member. Applies only to Hyperledger Fabric.

        :param self:
        :param MemberId:  The unique identifier of the member.<br/>NetworkId:  The unique identifier of the network to which the member belongs.<br/>
        :return: Member:  The properties of a member.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyArn</i> The Amazon Resource Name (ARN) of the customer managed key in AWS Key Management Service (AWS KMS) that the member uses for encryption at rest. If the value of this parameter is <code>"AWS Owned KMS Key"</code>, the member uses an AWS owned KMS key for encryption. This parameter is inherited by the nodes that this member owns.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the member. For more information about ARNs and their format, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs)</a> in the <i>AWS General Reference</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> Tags assigned to the member. Tags consist of a key and optional value. For more information about tags, see <a href="https://docs.aws.amazon.com/managed-blockchain/latest/hyperledger-fabric-dev/tagging-resources.html">Tagging Resources</a> in the <i>Amazon Managed Blockchain Hyperledger Fabric Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date and time that the member was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of a member. <ul> <li>  <code>CREATING</code> - The AWS account is in the process of creating a member. </li> <li>  <code>AVAILABLE</code> - The member has been created and can participate in the network. </li> <li>  <code>CREATE_FAILED</code> - The AWS account attempted to create a member and creation failed. </li> <li>  <code>UPDATING</code> - The member is in the process of being updated. </li> <li>  <code>DELETING</code> - The member and all associated resources are in the process of being deleted. Either the AWS account that owns the member deleted it, or the member is being deleted as the result of an <code>APPROVED</code> <code>PROPOSAL</code> to remove the member. </li> <li>  <code>DELETED</code> - The member can no longer participate on the network and all associated resources are deleted. Either the AWS account that owns the member deleted it, or the member is being deleted as the result of an <code>APPROVED</code> <code>PROPOSAL</code> to remove the member. </li> <li>  <code>INACCESSIBLE_ENCRYPTION_KEY</code> - The member is impaired and might not function as expected because it cannot access the specified customer managed key in AWS KMS for encryption at rest. Either the KMS key was disabled or deleted, or the grants on the key were revoked. The effect of disabling or deleting a key, or revoking a grant is not immediate. The member resource might take some time to find that the key is inaccessible. When a resource is in this state, we recommend deleting and recreating the resource. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogPublishingConfiguration</i> Configuration properties for logging events associated with a member.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>LogPublishingConfiguration</b>: Configuration properties for logging events associated with a member.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FrameworkAttributes</i> Attributes relevant to a member for the blockchain framework that the Managed Blockchain network uses.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>FrameworkAttributes</b>: Attributes relevant to a member for the blockchain framework that the Managed Blockchain network uses.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> An optional description for the member.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the member.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The unique identifier of the member.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkId</i> The unique identifier of the network to which the member belongs.<br/>Attributes of Hyperledger Fabric relevant to a member on a Managed Blockchain network that uses Hyperledger Fabric.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Fabric</b>: Attributes of Hyperledger Fabric relevant to a member on a Managed Blockchain network that uses Hyperledger Fabric.Configuration properties for logging events associated with a member of a Managed Blockchain network using the Hyperledger Fabric framework.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Fabric</b>: Configuration properties for logging events associated with a member of a Managed Blockchain network using the Hyperledger Fabric framework.        """
        pass

    def get_network(self, NetworkId: str) -> GetNetworkOutput:
        r"""Returns detailed information about a network. Applies to Hyperledger Fabric and Ethereum.

        :param self:
        :param NetworkId:  The unique identifier of the network to get information about.<br/>
        :return: Network:  An object containing network configuration parameters.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the network. For more information about ARNs and their format, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs)</a> in the <i>AWS General Reference</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> Tags assigned to the network. Each tag consists of a key and optional value. For more information about tags, see <a href="https://docs.aws.amazon.com/managed-blockchain/latest/ethereum-dev/tagging-resources.html">Tagging Resources</a> in the <i>Amazon Managed Blockchain Ethereum Developer Guide</i>, or <a href="https://docs.aws.amazon.com/managed-blockchain/latest/hyperledger-fabric-dev/tagging-resources.html">Tagging Resources</a> in the <i>Amazon Managed Blockchain Hyperledger Fabric Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date and time that the network was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current status of the network.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VotingPolicy</i> The voting rules for the network to decide if a proposal is accepted.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>VotingPolicy</b>: The voting rules for the network to decide if a proposal is accepted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcEndpointServiceName</i> The VPC endpoint service name of the VPC endpoint service of the network. Members use the VPC endpoint service name to create a VPC endpoint to access network resources.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FrameworkAttributes</i> Attributes of the blockchain framework that the network uses.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>FrameworkAttributes</b>: Attributes of the blockchain framework that the network uses.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FrameworkVersion</i> The version of the blockchain framework that the network uses.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Framework</i> The blockchain framework that the network uses.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> Attributes of the blockchain framework for the network.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the network.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The unique identifier of the network.<br/>Attributes of Hyperledger Fabric for a Managed Blockchain network that uses Hyperledger Fabric.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Fabric</b>: Attributes of Hyperledger Fabric for a Managed Blockchain network that uses Hyperledger Fabric.Defines the rules for the network for voting on proposals, such as the percentage of <code>YES</code> votes required for the proposal to be approved and the duration of the proposal. The policy applies to all proposals and is specified when the network is created.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ApprovalThresholdPolicy</b>: Defines the rules for the network for voting on proposals, such as the percentage of <code>YES</code> votes required for the proposal to be approved and the duration of the proposal. The policy applies to all proposals and is specified when the network is created.        """
        pass

    def get_node(self, NodeId: str, NetworkId: str, MemberId: str=None) -> GetNodeOutput:
        r"""Returns detailed information about a node. Applies to Hyperledger Fabric and Ethereum.

        :param self:
        :param NodeId:  The unique identifier of the node.<br/>MemberId:  The unique identifier of the member that owns the node. Applies only to Hyperledger Fabric and is required for Hyperledger Fabric.<br/>NetworkId:  The unique identifier of the network that the node is on.<br/>
        :return: Node:  Properties of the node configuration.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyArn</i> The Amazon Resource Name (ARN) of the customer managed key in AWS Key Management Service (AWS KMS) that the node uses for encryption at rest. If the value of this parameter is <code>"AWS Owned KMS Key"</code>, the node uses an AWS owned KMS key for encryption. The node inherits this parameter from the member that it belongs to. Applies only to Hyperledger Fabric.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the node. For more information about ARNs and their format, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs)</a> in the <i>AWS General Reference</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> Tags assigned to the node. Each tag consists of a key and optional value. For more information about tags, see <a href="https://docs.aws.amazon.com/managed-blockchain/latest/ethereum-dev/tagging-resources.html">Tagging Resources</a> in the <i>Amazon Managed Blockchain Ethereum Developer Guide</i>, or <a href="https://docs.aws.amazon.com/managed-blockchain/latest/hyperledger-fabric-dev/tagging-resources.html">Tagging Resources</a> in the <i>Amazon Managed Blockchain Hyperledger Fabric Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date and time that the node was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the node. <ul> <li>  <code>CREATING</code> - The AWS account is in the process of creating a node. </li> <li>  <code>AVAILABLE</code> - The node has been created and can participate in the network. </li> <li>  <code>UNHEALTHY</code> - The node is impaired and might not function as expected. Amazon Managed Blockchain automatically finds nodes in this state and tries to recover them. If a node is recoverable, it returns to <code>AVAILABLE</code>. Otherwise, it moves to <code>FAILED</code> status. </li> <li>  <code>CREATE_FAILED</code> - The AWS account attempted to create a node and creation failed. </li> <li>  <code>UPDATING</code> - The node is in the process of being updated. </li> <li>  <code>DELETING</code> - The node is in the process of being deleted. </li> <li>  <code>DELETED</code> - The node can no longer participate on the network. </li> <li>  <code>FAILED</code> - The node is no longer functional, cannot be recovered, and must be deleted. </li> <li>  <code>INACCESSIBLE_ENCRYPTION_KEY</code> - The node is impaired and might not function as expected because it cannot access the specified customer managed key in AWS KMS for encryption at rest. Either the KMS key was disabled or deleted, or the grants on the key were revoked. The effect of disabling or deleting a key, or revoking a grant is not immediate. The node resource might take some time to find that the key is inaccessible. When a resource is in this state, we recommend deleting and recreating the resource. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StateDB</i> The state database that the node uses. Values are <code>LevelDB</code> or <code>CouchDB</code>. Applies only to Hyperledger Fabric.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogPublishingConfiguration</i> Configuration properties for logging events associated with a peer node on a Hyperledger Fabric network on Managed Blockchain.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>LogPublishingConfiguration</b>: Configuration properties for logging events associated with a peer node on a Hyperledger Fabric network on Managed Blockchain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FrameworkAttributes</i> Attributes of the blockchain framework being used.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>FrameworkAttributes</b>: Attributes of the blockchain framework being used.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZone</i> The Availability Zone in which the node exists. Required for Ethereum nodes. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceType</i> The instance type of the node.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The unique identifier of the node.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MemberId</i> The unique identifier of the member to which the node belongs. Applies only to Hyperledger Fabric.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkId</i> The unique identifier of the network that the node is on.<br/>Attributes of Hyperledger Fabric for a peer node on a Managed Blockchain network that uses Hyperledger Fabric.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Fabric</b>: Attributes of Hyperledger Fabric for a peer node on a Managed Blockchain network that uses Hyperledger Fabric.Configuration properties for logging events associated with a node that is owned by a member of a Managed Blockchain network using the Hyperledger Fabric framework.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Fabric</b>: Configuration properties for logging events associated with a node that is owned by a member of a Managed Blockchain network using the Hyperledger Fabric framework.        """
        pass

    def get_proposal(self, ProposalId: str, NetworkId: str) -> GetProposalOutput:
        r"""Returns detailed information about a proposal. Applies only to Hyperledger Fabric.

        :param self:
        :param ProposalId:  The unique identifier of the proposal.<br/>NetworkId:  The unique identifier of the network for which the proposal is made.<br/>
        :return: Proposal:  Information about a proposal.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the proposal. For more information about ARNs and their format, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs)</a> in the <i>AWS General Reference</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> Tags assigned to the proposal. Each tag consists of a key and optional value. For more information about tags, see <a href="https://docs.aws.amazon.com/managed-blockchain/latest/ethereum-dev/tagging-resources.html">Tagging Resources</a> in the <i>Amazon Managed Blockchain Ethereum Developer Guide</i>, or <a href="https://docs.aws.amazon.com/managed-blockchain/latest/hyperledger-fabric-dev/tagging-resources.html">Tagging Resources</a> in the <i>Amazon Managed Blockchain Hyperledger Fabric Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OutstandingVoteCount</i>  The number of votes remaining to be cast on the proposal by members. In other words, the number of members minus the sum of <code>YES</code> votes and <code>NO</code> votes. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NoVoteCount</i>  The current total of <code>NO</code> votes cast on the proposal by members. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>YesVoteCount</i>  The current total of <code>YES</code> votes cast on the proposal by members. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExpirationDate</i>  The date and time that the proposal expires. This is the <code>CreationDate</code> plus the <code>ProposalDurationInHours</code> that is specified in the <code>ProposalThresholdPolicy</code>. After this date and time, if members have not cast enough votes to determine the outcome according to the voting policy, the proposal is <code>EXPIRED</code> and <code>Actions</code> are not carried out. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i>  The date and time that the proposal was created. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the proposal. Values are as follows: <ul> <li>  <code>IN_PROGRESS</code> - The proposal is active and open for member voting. </li> <li>  <code>APPROVED</code> - The proposal was approved with sufficient <code>YES</code> votes among members according to the <code>VotingPolicy</code> specified for the <code>Network</code>. The specified proposal actions are carried out. </li> <li>  <code>REJECTED</code> - The proposal was rejected with insufficient <code>YES</code> votes among members according to the <code>VotingPolicy</code> specified for the <code>Network</code>. The specified <code>ProposalActions</code> are not carried out. </li> <li>  <code>EXPIRED</code> - Members did not cast the number of votes required to determine the proposal outcome before the proposal expired. The specified <code>ProposalActions</code> are not carried out. </li> <li>  <code>ACTION_FAILED</code> - One or more of the specified <code>ProposalActions</code> in a proposal that was approved could not be completed because of an error. The <code>ACTION_FAILED</code> status occurs even if only one ProposalAction fails and other actions are successful. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProposedByMemberName</i> The name of the member that created the proposal.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProposedByMemberId</i> The unique identifier of the member that created the proposal.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Actions</i> The actions to perform on the network if the proposal is <code>APPROVED</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Actions</b>: The actions to perform on the network if the proposal is <code>APPROVED</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the proposal.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkId</i> The unique identifier of the network for which the proposal is made.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProposalId</i> The unique identifier of the proposal.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Removals</i>  The actions to perform for an <code>APPROVED</code> proposal to remove a member from the network, which deletes the member and all associated member resources from the network. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Invitations</i>  The actions to perform for an <code>APPROVED</code> proposal to invite an AWS account to create a member and join the network. <br/>        """
        pass

    def list_invitations(self, MaxResults: int=None, NextToken: str=None) -> ListInvitationsOutput:
        r"""Returns a list of all invitations for the current AWS account. Applies only to Hyperledger Fabric.

        :param self:
        :param NextToken:  The pagination token that indicates the next set of results to retrieve.<br/>MaxResults:  The maximum number of invitations to return.<br/>
        :return: NextToken:  The pagination token that indicates the next set of results to retrieve.<br/>Invitations:  The invitations for the network.<br/>        """
        pass

    def list_members(self, NetworkId: str, Name: str=None, Status: str=None, IsOwned: IsOwned=None, MaxResults: int=None, NextToken: str=None) -> ListMembersOutput:
        r"""Returns a list of the members in a network and properties of their configurations. Applies only to Hyperledger Fabric.

        :param self:
        :param NextToken:  The pagination token that indicates the next set of results to retrieve.<br/>MaxResults:  The maximum number of members to return in the request.<br/>IsOwned:  An optional Boolean value. If provided, the request is limited either to members that the current AWS account owns (<code>true</code>) or that other AWS accounts own (<code>false</code>). If omitted, all members are listed.<br/>Status:  An optional status specifier. If provided, only members currently in this status are listed.<br/>Name:  The optional name of the member to list.<br/>NetworkId:  The unique identifier of the network for which to list members.<br/>
        :return: NextToken:  The pagination token that indicates the next set of results to retrieve.<br/>Members:  An array of <code>MemberSummary</code> objects. Each object contains details about a network member.<br/>        """
        pass

    def list_networks(self, Name: str=None, Framework: str=None, Status: str=None, MaxResults: int=None, NextToken: str=None) -> ListNetworksOutput:
        r"""Returns information about the networks in which the current AWS account participates. Applies to Hyperledger Fabric and Ethereum.

        :param self:
        :param NextToken:  The pagination token that indicates the next set of results to retrieve.<br/>MaxResults:  The maximum number of networks to list.<br/>Status:  An optional status specifier. If provided, only networks currently in this status are listed. Applies only to Hyperledger Fabric.<br/>Framework:  An optional framework specifier. If provided, only networks of this framework type are listed.<br/>Name:  The name of the network.<br/>
        :return: NextToken:  The pagination token that indicates the next set of results to retrieve.<br/>Networks:  An array of <code>NetworkSummary</code> objects that contain configuration properties for each network.<br/>        """
        pass

    def list_nodes(self, NetworkId: str, MemberId: str=None, Status: str=None, MaxResults: int=None, NextToken: str=None) -> ListNodesOutput:
        r"""Returns information about the nodes within a network. Applies to Hyperledger Fabric and Ethereum.

        :param self:
        :param NextToken:  The pagination token that indicates the next set of results to retrieve.<br/>MaxResults:  The maximum number of nodes to list.<br/>Status:  An optional status specifier. If provided, only nodes currently in this status are listed.<br/>MemberId:  The unique identifier of the member who owns the nodes to list. Applies only to Hyperledger Fabric and is required for Hyperledger Fabric.<br/>NetworkId:  The unique identifier of the network for which to list nodes.<br/>
        :return: NextToken:  The pagination token that indicates the next set of results to retrieve.<br/>Nodes:  An array of <code>NodeSummary</code> objects that contain configuration properties for each node.<br/>        """
        pass

    def list_proposal_votes(self, ProposalId: str, NetworkId: str, MaxResults: int=None, NextToken: str=None) -> ListProposalVotesOutput:
        r"""Returns the list of votes for a specified proposal, including the value of each vote and the unique identifier of the member that cast the vote. Applies only to Hyperledger Fabric.

        :param self:
        :param NextToken:   The pagination token that indicates the next set of results to retrieve. <br/>MaxResults:   The maximum number of votes to return. <br/>ProposalId:   The unique identifier of the proposal. <br/>NetworkId:   The unique identifier of the network. <br/>
        :return: NextToken:   The pagination token that indicates the next set of results to retrieve. <br/>ProposalVotes:   The list of votes. <br/>        """
        pass

    def list_proposals(self, NetworkId: str, MaxResults: int=None, NextToken: str=None) -> ListProposalsOutput:
        r"""Returns a list of proposals for the network. Applies only to Hyperledger Fabric.

        :param self:
        :param NextToken:   The pagination token that indicates the next set of results to retrieve. <br/>MaxResults:   The maximum number of proposals to return. <br/>NetworkId:   The unique identifier of the network. <br/>
        :return: NextToken:  The pagination token that indicates the next set of results to retrieve.<br/>Proposals:  The summary of each proposal made on the network.<br/>        """
        pass

    def list_tags_for_resource(self, ResourceArn: str) -> ListTagsForResourceResponse:
        r"""Returns a list of tags for the specified resource. Each tag consists of a key and optional value. For more information about tags, see <a href="https://docs.aws.amazon.com/managed-blockchain/latest/ethereum-dev/tagging-resources.html">Tagging Resources</a> in the <i>Amazon Managed Blockchain Ethereum Developer Guide</i>, or <a href="https://docs.aws.amazon.com/managed-blockchain/latest/hyperledger-fabric-dev/tagging-resources.html">Tagging Resources</a> in the <i>Amazon Managed Blockchain Hyperledger Fabric Developer Guide</i>.

        :param self:
        :param ResourceArn:  The Amazon Resource Name (ARN) of the resource. For more information about ARNs and their format, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs)</a> in the <i>AWS General Reference</i>.<br/>
        :return: Tags:  The tags assigned to the resource.<br/>        """
        pass

    def reject_invitation(self, InvitationId: str) -> RejectInvitationOutput:
        r"""Rejects an invitation to join a network. This action can be called by a principal in an AWS account that has received an invitation to create a member and join a network. Applies only to Hyperledger Fabric.

        :param self:
        :param InvitationId:  The unique identifier of the invitation to reject.<br/>
        :return:         """
        pass

    def tag_resource(self, Tags: InputTagMap, ResourceArn: str) -> TagResourceResponse:
        r"""Adds or overwrites the specified tags for the specified Amazon Managed Blockchain resource. Each tag consists of a key and optional value. When you specify a tag key that already exists, the tag value is overwritten with the new value. Use <code>UntagResource</code> to remove tag keys. A resource can have up to 50 tags. If you try to create more than 50 tags for a resource, your request fails and returns an error. For more information about tags, see <a href="https://docs.aws.amazon.com/managed-blockchain/latest/ethereum-dev/tagging-resources.html">Tagging Resources</a> in the <i>Amazon Managed Blockchain Ethereum Developer Guide</i>, or <a href="https://docs.aws.amazon.com/managed-blockchain/latest/hyperledger-fabric-dev/tagging-resources.html">Tagging Resources</a> in the <i>Amazon Managed Blockchain Hyperledger Fabric Developer Guide</i>.

        :param self:
        :param Tags:  The tags to assign to the specified resource. Tag values can be empty, for example, <code>"MyTagKey" : ""</code>. You can specify multiple key-value pairs in a single request, with an overall maximum of 50 tags added to each resource.<br/>ResourceArn:  The Amazon Resource Name (ARN) of the resource. For more information about ARNs and their format, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs)</a> in the <i>AWS General Reference</i>.<br/>
        :return:         """
        pass

    def untag_resource(self, TagKeys: List[TagKey], ResourceArn: str) -> UntagResourceResponse:
        r"""Removes the specified tags from the Amazon Managed Blockchain resource. For more information about tags, see <a href="https://docs.aws.amazon.com/managed-blockchain/latest/ethereum-dev/tagging-resources.html">Tagging Resources</a> in the <i>Amazon Managed Blockchain Ethereum Developer Guide</i>, or <a href="https://docs.aws.amazon.com/managed-blockchain/latest/hyperledger-fabric-dev/tagging-resources.html">Tagging Resources</a> in the <i>Amazon Managed Blockchain Hyperledger Fabric Developer Guide</i>.

        :param self:
        :param TagKeys:  The tag keys.<br/>ResourceArn:  The Amazon Resource Name (ARN) of the resource. For more information about ARNs and their format, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs)</a> in the <i>AWS General Reference</i>.<br/>
        :return:         """
        pass

    def update_member(self, MemberId: str, NetworkId: str, LogPublishingConfiguration: MemberLogPublishingConfiguration=None) -> UpdateMemberOutput:
        r"""Updates a member configuration with new parameters. Applies only to Hyperledger Fabric.

        :param self:
        :param LogPublishingConfiguration:  Configuration properties for publishing to Amazon CloudWatch Logs.:<br/>MemberId:  The unique identifier of the member.<br/>NetworkId:  The unique identifier of the Managed Blockchain network to which the member belongs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Fabric</i> Configuration properties for logging events associated with a member of a Managed Blockchain network using the Hyperledger Fabric framework.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Fabric</b>: Configuration properties for logging events associated with a member of a Managed Blockchain network using the Hyperledger Fabric framework.<br/>Configuration properties for logging events associated with a member's Certificate Authority (CA). CA logs help you determine when a member in your account joins the network, or when new peers register with a member CA.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CaLogs</b>: Configuration properties for logging events associated with a member's Certificate Authority (CA). CA logs help you determine when a member in your account joins the network, or when new peers register with a member CA.
        :return:         """
        pass

    def update_node(self, NodeId: str, NetworkId: str, MemberId: str=None, LogPublishingConfiguration: NodeLogPublishingConfiguration=None) -> UpdateNodeOutput:
        r"""Updates a node configuration with new parameters. Applies only to Hyperledger Fabric.

        :param self:
        :param LogPublishingConfiguration:  Configuration properties for publishing to Amazon CloudWatch Logs.:<br/>NodeId:  The unique identifier of the node.<br/>MemberId:  The unique identifier of the member that owns the node. Applies only to Hyperledger Fabric.<br/>NetworkId:  The unique identifier of the network that the node is on.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Fabric</i> Configuration properties for logging events associated with a node that is owned by a member of a Managed Blockchain network using the Hyperledger Fabric framework.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Fabric</b>: Configuration properties for logging events associated with a node that is owned by a member of a Managed Blockchain network using the Hyperledger Fabric framework.<br/>Configuration properties for logging events associated with chaincode execution on a peer node. Chaincode logs contain the results of instantiating, invoking, and querying the chaincode. A peer can run multiple instances of chaincode. When enabled, a log stream is created for all chaincodes, with an individual log stream for each chaincode.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ChaincodeLogs</b>: Configuration properties for logging events associated with chaincode execution on a peer node. Chaincode logs contain the results of instantiating, invoking, and querying the chaincode. A peer can run multiple instances of chaincode. When enabled, a log stream is created for all chaincodes, with an individual log stream for each chaincode.
        :return:         """
        pass

    def vote_on_proposal(self, Vote: str, VoterMemberId: str, ProposalId: str, NetworkId: str) -> VoteOnProposalOutput:
        r"""Casts a vote for a specified <code>ProposalId</code> on behalf of a member. The member to vote as, specified by <code>VoterMemberId</code>, must be in the same AWS account as the principal that calls the action. Applies only to Hyperledger Fabric.

        :param self:
        :param Vote:   The value of the vote. <br/>VoterMemberId:  The unique identifier of the member casting the vote. <br/>ProposalId:   The unique identifier of the proposal. <br/>NetworkId:   The unique identifier of the network. <br/>
        :return:         """
        pass





class MarketplaceCatalog(BaseClient):
    r"""Catalog API actions allow you to manage your entities through list, describe, and update capabilities. An entity can be a product or an offer on AWS Marketplace.  You can automate your entity update process by integrating the AWS Marketplace Catalog API with your AWS Marketplace product build or deployment pipelines. You can also create your own applications on top of the Catalog API to manage your products on AWS Marketplace."""




    class CancelChangeSetRequest(Mapping):
        pass
    
    class CancelChangeSetResponse(Mapping):
        pass
    
    class DescribeChangeSetRequest(Mapping):
        pass
    
    class DescribeChangeSetResponse(Mapping):
        pass
    
    class DescribeEntityRequest(Mapping):
        pass
    
    class DescribeEntityResponse(Mapping):
        pass
    
    class ListChangeSetsRequest(Mapping):
        pass
    
    class ListChangeSetsResponse(Mapping):
        pass
    
    class Filter(Mapping):
        pass
    
    class Sort(Mapping):
        pass
    
    class ListEntitiesRequest(Mapping):
        pass
    
    class ListEntitiesResponse(Mapping):
        pass
    
    class StartChangeSetRequest(Mapping):
        pass
    
    class StartChangeSetResponse(Mapping):
        pass
    
    class Change(Mapping):
        pass
    
    def cancel_change_set(self, ChangeSetId: str, Catalog: str) -> CancelChangeSetResponse:
        r"""Used to cancel an open change request. Must be sent before the status of the request changes to <code>APPLYING</code>, the final stage of completing your change request. You can describe a change during the 60-day request history retention period for API calls.

        :param self:
        :param ChangeSetId:  Required. The unique identifier of the <code>StartChangeSet</code> request that you want to cancel.<br/>Catalog:  Required. The catalog related to the request. Fixed value: <code>AWSMarketplace</code>.<br/>
        :return: ChangeSetArn:  The ARN associated with the change set referenced in this request.<br/>ChangeSetId:  The unique identifier for the change set referenced in this request.<br/>        """
        pass

    def describe_change_set(self, ChangeSetId: str, Catalog: str) -> DescribeChangeSetResponse:
        r"""Provides information about a given change set.

        :param self:
        :param ChangeSetId:  Required. The unique identifier for the <code>StartChangeSet</code> request that you want to describe the details for.<br/>Catalog:  Required. The catalog related to the request. Fixed value: <code>AWSMarketplace</code> <br/>
        :return: ChangeSet:  An array of <code>ChangeSummary</code> objects.<br/>FailureDescription:  Returned if there is a failure on the change set, but that failure is not related to any of the changes in the request.<br/>FailureCode:  Returned if the change set is in <code>FAILED</code> status. Can be either <code>CLIENT_ERROR</code>, which means that there are issues with the request (see the <code>ErrorDetailList</code>), or <code>SERVER_FAULT</code>, which means that there is a problem in the system, and you should retry your request.<br/>Status:  The status of the change request.<br/>EndTime:  The date and time, in ISO 8601 format (2018-02-27T13:45:22Z), the request transitioned to a terminal state. The change cannot transition to a different state. Null if the request is not in a terminal state. <br/>StartTime:  The date and time, in ISO 8601 format (2018-02-27T13:45:22Z), the request started. <br/>ChangeSetName:  The optional name provided in the <code>StartChangeSet</code> request. If you do not provide a name, one is set by default.<br/>ChangeSetArn:  The ARN associated with the unique identifier for the change set referenced in this request.<br/>ChangeSetId:  Required. The unique identifier for the change set referenced in this request.<br/>        """
        pass

    def describe_entity(self, EntityId: str, Catalog: str) -> DescribeEntityResponse:
        r"""Returns the metadata and content of the entity.

        :param self:
        :param EntityId:  Required. The unique ID of the entity to describe.<br/>Catalog:  Required. The catalog related to the request. Fixed value: <code>AWSMarketplace</code> <br/>
        :return: Details:  This stringified JSON object includes the details of the entity.<br/>LastModifiedDate:  The last modified date of the entity, in ISO 8601 format (2018-02-27T13:45:22Z).<br/>EntityArn:  The ARN associated to the unique identifier for the change set referenced in this request.<br/>EntityIdentifier:  The identifier of the entity, in the format of <code>EntityId@RevisionId</code>.<br/>EntityType:  The named type of the entity, in the format of <code>EntityType@Version</code>.<br/>        """
        pass

    def list_change_sets(self, Catalog: str, FilterList: List[Filter]=None, Sort: Sort=None, MaxResults: int=None, NextToken: str=None) -> ListChangeSetsResponse:
        r"""Returns the list of change sets owned by the account being used to make the call. You can filter this list by providing any combination of <code>entityId</code>, <code>ChangeSetName</code>, and status. If you provide more than one filter, the API operation applies a logical AND between the filters. You can describe a change during the 60-day request history retention period for API calls.

        :param self:
        :param NextToken:  The token value retrieved from a previous call to access the next page of results.<br/>MaxResults:  The maximum number of results returned by a single call. This value must be provided in the next call to retrieve the next set of results. By default, this value is 20.<br/>Sort:  An object that contains two attributes, <code>SortBy</code> and <code>SortOrder</code>.:<br/>FilterList:  An array of filter objects.<br/>Catalog:  The catalog related to the request. Fixed value: <code>AWSMarketplace</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SortOrder</i> The sorting order. Can be <code>ASCENDING</code> or <code>DESCENDING</code>. The default value is <code>DESCENDING</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SortBy</i> For <code>ListEntities</code>, supported attributes include <code>LastModifiedDate</code> (default), <code>Visibility</code>, <code>EntityId</code>, and <code>Name</code>. For <code>ListChangeSets</code>, supported attributes include <code>StartTime</code> and <code>EndTime</code>.<br/>
        :return: NextToken:  The value of the next token, if it exists. Null if there are no more results.<br/>ChangeSetSummaryList:   Array of <code>ChangeSetSummaryListItem</code> objects.<br/>        """
        pass

    def list_entities(self, EntityType: str, Catalog: str, FilterList: List[Filter]=None, Sort: Sort=None, NextToken: str=None, MaxResults: int=None) -> ListEntitiesResponse:
        r"""Provides the list of entities of a given type.

        :param self:
        :param MaxResults:  Specifies the upper limit of the elements on a single page. If a value isn't provided, the default value is 20.<br/>NextToken:  The value of the next token, if it exists. Null if there are no more results.<br/>Sort:  An object that contains two attributes, <code>SortBy</code> and <code>SortOrder</code>.:<br/>FilterList:  An array of filter objects. Each filter object contains two attributes, <code>filterName</code> and <code>filterValues</code>.<br/>EntityType:  The type of entities to retrieve.<br/>Catalog:  The catalog related to the request. Fixed value: <code>AWSMarketplace</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SortOrder</i> The sorting order. Can be <code>ASCENDING</code> or <code>DESCENDING</code>. The default value is <code>DESCENDING</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SortBy</i> For <code>ListEntities</code>, supported attributes include <code>LastModifiedDate</code> (default), <code>Visibility</code>, <code>EntityId</code>, and <code>Name</code>. For <code>ListChangeSets</code>, supported attributes include <code>StartTime</code> and <code>EndTime</code>.<br/>
        :return: NextToken:  The value of the next token if it exists. Null if there is no more result.<br/>EntitySummaryList:   Array of <code>EntitySummary</code> object.<br/>        """
        pass

    def start_change_set(self, ChangeSet: List[Change], Catalog: str, ChangeSetName: str=None, ClientRequestToken: str=None) -> StartChangeSetResponse:
        r"""This operation allows you to request changes for your entities. Within a single ChangeSet, you cannot start the same change type against the same entity multiple times. Additionally, when a ChangeSet is running, all the entities targeted by the different changes are locked until the ChangeSet has completed (either succeeded, cancelled, or failed). If you try to start a ChangeSet containing a change against an entity that is already locked, you will receive a <code>ResourceInUseException</code>. For example, you cannot start the ChangeSet described in the <a href="https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/API_StartChangeSet.html#API_StartChangeSet_Examples">example</a> later in this topic, because it contains two changes to execute the same change type (<code>AddRevisions</code>) against the same entity (<code>entity-id@1)</code>. For more information about working with change sets, see <a href="https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/welcome.html#working-with-change-sets"> Working with change sets</a>.

        :param self:
        :param ClientRequestToken:  A unique token to identify the request to ensure idempotency.<br/>ChangeSetName:  Optional case sensitive string of up to 100 ASCII characters. The change set name can be used to filter the list of change sets. <br/>ChangeSet:  Array of <code>change</code> object.<br/>Catalog:  The catalog related to the request. Fixed value: <code>AWSMarketplace</code> <br/>
        :return: ChangeSetArn:  The ARN associated to the unique identifier generated for the request.<br/>ChangeSetId:  Unique identifier generated for the request.<br/>        """
        pass





class MarketplaceEntitlementService(BaseClient):
    r"""<fullname>AWS Marketplace Entitlement Service</fullname> This reference provides descriptions of the AWS Marketplace Entitlement Service API. AWS Marketplace Entitlement Service is used to determine the entitlement of a customer to a given product. An entitlement represents capacity in a product owned by the customer. For example, a customer might own some number of users or seats in an SaaS application or some amount of data capacity in a multi-tenant database.  <b>Getting Entitlement Records</b>  <ul> <li>  <i>GetEntitlements</i>- Gets the entitlements for a Marketplace product. </li> </ul>"""


    class GetEntitlementsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_entitlements` for valid parameters"""
            pass


    class GetEntitlementsRequest(Mapping):
        pass
    
    class GetEntitlementsResult(Mapping):
        pass
    
    class GetEntitlementFilters(object):
        pass
    
    def get_entitlements(self, ProductCode: str, Filter: GetEntitlementFilters=None, NextToken: str=None, MaxResults: int=None) -> GetEntitlementsResult:
        r"""GetEntitlements retrieves entitlement values for a given product. The results can be filtered based on customer identifier or product dimensions.

        :param self:
        :param MaxResults:  The maximum number of items to retrieve from the GetEntitlements operation. For pagination, use the NextToken field in subsequent calls to GetEntitlements.<br/>NextToken:  For paginated calls to GetEntitlements, pass the NextToken from the previous GetEntitlementsResult.<br/>Filter:  Filter is used to return entitlements for a specific customer or for a specific dimension. Filters are described as keys mapped to a lists of values. Filtered requests are <i>unioned</i> for each value in the value list, and then <i>intersected</i> for each filter key.<br/>ProductCode:  Product code is used to uniquely identify a product in AWS Marketplace. The product code will be provided by AWS Marketplace when the product listing is created.<br/>
        :return: NextToken:  For paginated results, use NextToken in subsequent calls to GetEntitlements. If the result contains an empty set of entitlements, NextToken might still be present and should be used.<br/>Entitlements:  The set of entitlements found through the GetEntitlements operation. If the result contains an empty set of entitlements, NextToken might still be present and should be used.<br/>        """
        pass





class MarketplaceCommerceAnalytics(BaseClient):
    r"""Provides AWS Marketplace business intelligence data on-demand."""




    class GenerateDataSetRequest(Mapping):
        pass
    
    class GenerateDataSetResult(Mapping):
        pass
    
    class DataSetPublicationDate(object):
        pass
    
    class CustomerDefinedValues(object):
        pass
    
    class StartSupportDataExportRequest(Mapping):
        pass
    
    class StartSupportDataExportResult(Mapping):
        pass
    
    class FromDate(object):
        pass
    
    def generate_data_set(self, snsTopicArn: str, destinationS3BucketName: str, roleNameArn: str, dataSetPublicationDate: DataSetPublicationDate, dataSetType: str, destinationS3Prefix: str=None, customerDefinedValues: CustomerDefinedValues=None) -> GenerateDataSetResult:
        r"""Given a data set type and data set publication date, asynchronously publishes the requested data set to the specified S3 bucket and notifies the specified SNS topic once the data is available. Returns a unique request identifier that can be used to correlate requests with notifications from the SNS topic. Data sets will be published in comma-separated values (CSV) format with the file name {data_set_type}_YYYY-MM-DD.csv. If a file with the same name already exists (e.g. if the same data set is requested twice), the original file will be overwritten by the new file. Requires a Role with an attached permissions policy providing Allow permissions for the following actions: s3:PutObject, s3:GetBucketLocation, sns:GetTopicAttributes, sns:Publish, iam:GetRolePolicy.

        :param self:
        :param customerDefinedValues:  (Optional) Key-value pairs which will be returned, unmodified, in the Amazon SNS notification message and the data set metadata file. These key-value pairs can be used to correlated responses with tracking information from other systems.<br/>snsTopicArn:  Amazon Resource Name (ARN) for the SNS Topic that will be notified when the data set has been published or if an error has occurred.<br/>destinationS3Prefix:  (Optional) The desired S3 prefix for the published data set, similar to a directory path in standard file systems. For example, if given the bucket name "mybucket" and the prefix "myprefix/mydatasets", the output file "outputfile" would be published to "s3://mybucket/myprefix/mydatasets/outputfile". If the prefix directory structure does not exist, it will be created. If no prefix is provided, the data set will be published to the S3 bucket root.<br/>destinationS3BucketName:  The name (friendly name, not ARN) of the destination S3 bucket.<br/>roleNameArn:  The Amazon Resource Name (ARN) of the Role with an attached permissions policy to interact with the provided AWS services.<br/>dataSetPublicationDate:  The date a data set was published. For daily data sets, provide a date with day-level granularity for the desired day. For monthly data sets except those with prefix disbursed_amount, provide a date with month-level granularity for the desired month (the day value will be ignored). For data sets with prefix disbursed_amount, provide a date with day-level granularity for the desired day. For these data sets we will look backwards in time over the range of 31 days until the first data set is found (the latest one).<br/>dataSetType:  The desired data set type.  <ul> <li> <strong>customer_subscriber_hourly_monthly_subscriptions</strong> From 2017-09-15 to present: Available daily by 24:00 UTC. </li> <li> <strong>customer_subscriber_annual_subscriptions</strong> From 2017-09-15 to present: Available daily by 24:00 UTC. </li> <li> <strong>daily_business_usage_by_instance_type</strong> From 2017-09-15 to present: Available daily by 24:00 UTC. </li> <li> <strong>daily_business_fees</strong> From 2017-09-15 to present: Available daily by 24:00 UTC. </li> <li> <strong>daily_business_free_trial_conversions</strong> From 2017-09-15 to present: Available daily by 24:00 UTC. </li> <li> <strong>daily_business_new_instances</strong> From 2017-09-15 to present: Available daily by 24:00 UTC. </li> <li> <strong>daily_business_new_product_subscribers</strong> From 2017-09-15 to present: Available daily by 24:00 UTC. </li> <li> <strong>daily_business_canceled_product_subscribers</strong> From 2017-09-15 to present: Available daily by 24:00 UTC. </li> <li> <strong>monthly_revenue_billing_and_revenue_data</strong> From 2017-09-15 to present: Available monthly on the 15th day of the month by 24:00 UTC. Data includes metered transactions (e.g. hourly) from one month prior. </li> <li> <strong>monthly_revenue_annual_subscriptions</strong> From 2017-09-15 to present: Available monthly on the 15th day of the month by 24:00 UTC. Data includes up-front software charges (e.g. annual) from one month prior. </li> <li> <strong>monthly_revenue_field_demonstration_usage</strong> From 2018-03-15 to present: Available monthly on the 15th day of the month by 24:00 UTC. </li> <li> <strong>monthly_revenue_flexible_payment_schedule</strong> From 2018-11-15 to present: Available monthly on the 15th day of the month by 24:00 UTC. </li> <li> <strong>disbursed_amount_by_product</strong> From 2017-09-15 to present: Available every 30 days by 24:00 UTC. </li> <li> <strong>disbursed_amount_by_instance_hours</strong> From 2017-09-15 to present: Available every 30 days by 24:00 UTC. </li> <li> <strong>disbursed_amount_by_customer_geo</strong> From 2017-09-15 to present: Available every 30 days by 24:00 UTC. </li> <li> <strong>disbursed_amount_by_age_of_uncollected_funds</strong> From 2017-09-15 to present: Available every 30 days by 24:00 UTC. </li> <li> <strong>disbursed_amount_by_age_of_disbursed_funds</strong> From 2017-09-15 to present: Available every 30 days by 24:00 UTC. </li> <li> <strong>disbursed_amount_by_age_of_past_due_funds</strong> From 2018-04-07 to present: Available every 30 days by 24:00 UTC. </li> <li> <strong>disbursed_amount_by_uncollected_funds_breakdown</strong> From 2019-10-04 to present: Available every 30 days by 24:00 UTC. </li> <li> <strong>sales_compensation_billed_revenue</strong> From 2017-09-15 to present: Available monthly on the 15th day of the month by 24:00 UTC. Data includes metered transactions (e.g. hourly) from one month prior, and up-front software charges (e.g. annual) from one month prior. </li> <li> <strong>us_sales_and_use_tax_records</strong> From 2017-09-15 to present: Available monthly on the 15th day of the month by 24:00 UTC. </li> <li> <strong>disbursed_amount_by_product_with_uncollected_funds</strong> This data set is deprecated. Download related reports from AMMP instead! </li> <li> <strong>customer_profile_by_industry</strong> This data set is deprecated. Download related reports from AMMP instead! </li> <li> <strong>customer_profile_by_revenue</strong> This data set is deprecated. Download related reports from AMMP instead! </li> <li> <strong>customer_profile_by_geography</strong> This data set is deprecated. Download related reports from AMMP instead! </li> </ul> <br/>
        :return: dataSetRequestId:  A unique identifier representing a specific request to the GenerateDataSet operation. This identifier can be used to correlate a request with notifications from the SNS topic.<br/>        """
        pass

    def start_support_data_export(self, snsTopicArn: str, destinationS3BucketName: str, roleNameArn: str, fromDate: FromDate, dataSetType: str, destinationS3Prefix: str=None, customerDefinedValues: CustomerDefinedValues=None) -> StartSupportDataExportResult:
        r"""Given a data set type and a from date, asynchronously publishes the requested customer support data to the specified S3 bucket and notifies the specified SNS topic once the data is available. Returns a unique request identifier that can be used to correlate requests with notifications from the SNS topic. Data sets will be published in comma-separated values (CSV) format with the file name {data_set_type}_YYYY-MM-DD'T'HH-mm-ss'Z'.csv. If a file with the same name already exists (e.g. if the same data set is requested twice), the original file will be overwritten by the new file. Requires a Role with an attached permissions policy providing Allow permissions for the following actions: s3:PutObject, s3:GetBucketLocation, sns:GetTopicAttributes, sns:Publish, iam:GetRolePolicy.

        :param self:
        :param customerDefinedValues:  (Optional) Key-value pairs which will be returned, unmodified, in the Amazon SNS notification message and the data set metadata file.<br/>snsTopicArn:  Amazon Resource Name (ARN) for the SNS Topic that will be notified when the data set has been published or if an error has occurred.<br/>destinationS3Prefix:  (Optional) The desired S3 prefix for the published data set, similar to a directory path in standard file systems. For example, if given the bucket name "mybucket" and the prefix "myprefix/mydatasets", the output file "outputfile" would be published to "s3://mybucket/myprefix/mydatasets/outputfile". If the prefix directory structure does not exist, it will be created. If no prefix is provided, the data set will be published to the S3 bucket root.<br/>destinationS3BucketName:  The name (friendly name, not ARN) of the destination S3 bucket.<br/>roleNameArn:  The Amazon Resource Name (ARN) of the Role with an attached permissions policy to interact with the provided AWS services.<br/>fromDate:  The start date from which to retrieve the data set in UTC. This parameter only affects the customer_support_contacts_data data set type.<br/>dataSetType:   Specifies the data set type to be written to the output csv file. The data set types customer_support_contacts_data and test_customer_support_contacts_data both result in a csv file containing the following fields: Product Id, Product Code, Customer Guid, Subscription Guid, Subscription Start Date, Organization, AWS Account Id, Given Name, Surname, Telephone Number, Email, Title, Country Code, ZIP Code, Operation Type, and Operation Time.   <ul> <li><i>customer_support_contacts_data</i> Customer support contact data. The data set will contain all changes (Creates, Updates, and Deletes) to customer support contact data from the date specified in the from_date parameter.</li> <li><i>test_customer_support_contacts_data</i> An example data set containing static test data in the same format as customer_support_contacts_data</li> </ul> <br/>
        :return: dataSetRequestId:  A unique identifier representing a specific request to the StartSupportDataExport operation. This identifier can be used to correlate a request with notifications from the SNS topic.<br/>        """
        pass





class MediaConnect(BaseClient):
    r"""API for AWS Elemental MediaConnect"""

    class FlowActiveWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_flow` for valid parameters"""
            pass
    class FlowDeletedWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_flow` for valid parameters"""
            pass
    class FlowStandbyWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_flow` for valid parameters"""
            pass


    class ListFlowsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_flows` for valid parameters"""
            pass
    class ListEntitlementsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_entitlements` for valid parameters"""
            pass
    class ListOfferingsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_offerings` for valid parameters"""
            pass
    class ListReservationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_reservations` for valid parameters"""
            pass


    class AddFlowMediaStreamsRequest(Mapping):
        pass
    
    class AddFlowMediaStreamsResponse(Mapping):
        pass
    
    class AddMediaStreamRequest(Mapping):
        pass
    
    class AddFlowOutputsRequest(Mapping):
        pass
    
    class AddFlowOutputsResponse(Mapping):
        pass
    
    class AddOutputRequest(Mapping):
        pass
    
    class AddFlowSourcesRequest(Mapping):
        pass
    
    class AddFlowSourcesResponse(Mapping):
        pass
    
    class SetSourceRequest(Mapping):
        pass
    
    class AddFlowVpcInterfacesRequest(Mapping):
        pass
    
    class AddFlowVpcInterfacesResponse(Mapping):
        pass
    
    class VpcInterfaceRequest(Mapping):
        pass
    
    class CreateFlowRequest(Mapping):
        pass
    
    class CreateFlowResponse(Mapping):
        pass
    
    class GrantEntitlementRequest(Mapping):
        pass
    
    class FailoverConfig(Mapping):
        pass
    
    class DeleteFlowRequest(Mapping):
        pass
    
    class DeleteFlowResponse(Mapping):
        pass
    
    class DescribeFlowRequest(Mapping):
        pass
    
    class DescribeFlowResponse(Mapping):
        pass
    
    class DescribeOfferingRequest(Mapping):
        pass
    
    class DescribeOfferingResponse(Mapping):
        pass
    
    class DescribeReservationRequest(Mapping):
        pass
    
    class DescribeReservationResponse(Mapping):
        pass
    
    class GrantFlowEntitlementsRequest(Mapping):
        pass
    
    class GrantFlowEntitlementsResponse(Mapping):
        pass
    
    class ListEntitlementsRequest(Mapping):
        pass
    
    class ListEntitlementsResponse(Mapping):
        pass
    
    class ListFlowsRequest(Mapping):
        pass
    
    class ListFlowsResponse(Mapping):
        pass
    
    class ListOfferingsRequest(Mapping):
        pass
    
    class ListOfferingsResponse(Mapping):
        pass
    
    class ListReservationsRequest(Mapping):
        pass
    
    class ListReservationsResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class PurchaseOfferingRequest(Mapping):
        pass
    
    class PurchaseOfferingResponse(Mapping):
        pass
    
    class RemoveFlowMediaStreamRequest(Mapping):
        pass
    
    class RemoveFlowMediaStreamResponse(Mapping):
        pass
    
    class RemoveFlowOutputRequest(Mapping):
        pass
    
    class RemoveFlowOutputResponse(Mapping):
        pass
    
    class RemoveFlowSourceRequest(Mapping):
        pass
    
    class RemoveFlowSourceResponse(Mapping):
        pass
    
    class RemoveFlowVpcInterfaceRequest(Mapping):
        pass
    
    class RemoveFlowVpcInterfaceResponse(Mapping):
        pass
    
    class RevokeFlowEntitlementRequest(Mapping):
        pass
    
    class RevokeFlowEntitlementResponse(Mapping):
        pass
    
    class StartFlowRequest(Mapping):
        pass
    
    class StartFlowResponse(Mapping):
        pass
    
    class StopFlowRequest(Mapping):
        pass
    
    class StopFlowResponse(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class __mapOf__string(object):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class __string(object):
        pass
    
    class UpdateFlowRequest(Mapping):
        pass
    
    class UpdateFlowResponse(Mapping):
        pass
    
    class UpdateFailoverConfig(Mapping):
        pass
    
    class UpdateFlowEntitlementRequest(Mapping):
        pass
    
    class UpdateFlowEntitlementResponse(Mapping):
        pass
    
    class UpdateEncryption(Mapping):
        pass
    
    class UpdateFlowMediaStreamRequest(Mapping):
        pass
    
    class UpdateFlowMediaStreamResponse(Mapping):
        pass
    
    class MediaStreamAttributesRequest(Mapping):
        pass
    
    class UpdateFlowOutputRequest(Mapping):
        pass
    
    class UpdateFlowOutputResponse(Mapping):
        pass
    
    class MediaStreamOutputConfigurationRequest(Mapping):
        pass
    
    class VpcInterfaceAttachment(Mapping):
        pass
    
    class UpdateFlowSourceRequest(Mapping):
        pass
    
    class UpdateFlowSourceResponse(Mapping):
        pass
    
    class MediaStreamSourceConfigurationRequest(Mapping):
        pass
    
    def add_flow_media_streams(self, MediaStreams: List[AddMediaStreamRequest], FlowArn: str) -> AddFlowMediaStreamsResponse:
        r"""Adds media streams to an existing flow. After you add a media stream to a flow, you can associate it with a source and/or an output that uses the ST 2110 JPEG XS or CDI protocol.

        :param self:
        :param MediaStreams:  The media streams that you want to add to the flow.<br/>FlowArn:  The Amazon Resource Name (ARN) of the flow.<br/>
        :return: MediaStreams:  The media streams that you added to the flow.<br/>FlowArn:  The ARN of the flow that you added media streams to.<br/>        """
        pass

    def add_flow_outputs(self, Outputs: List[AddOutputRequest], FlowArn: str) -> AddFlowOutputsResponse:
        r"""Adds outputs to an existing flow. You can create up to 50 outputs per flow.

        :param self:
        :param Outputs:  A list of outputs that you want to add.<br/>FlowArn:  The flow that you want to add outputs to.<br/>
        :return: Outputs:  The details of the newly added outputs.<br/>FlowArn:  The ARN of the flow that these outputs were added to.<br/>        """
        pass

    def add_flow_sources(self, Sources: List[SetSourceRequest], FlowArn: str) -> AddFlowSourcesResponse:
        r"""Adds Sources to flow

        :param self:
        :param Sources:  A list of sources that you want to add.<br/>FlowArn:  The flow that you want to mutate.<br/>
        :return: Sources:  The details of the newly added sources.<br/>FlowArn:  The ARN of the flow that these sources were added to.<br/>        """
        pass

    def add_flow_vpc_interfaces(self, VpcInterfaces: List[VpcInterfaceRequest], FlowArn: str) -> AddFlowVpcInterfacesResponse:
        r"""Adds VPC interfaces to flow

        :param self:
        :param VpcInterfaces:  A list of VPC interfaces that you want to add.<br/>FlowArn:  The flow that you want to mutate.<br/>
        :return: VpcInterfaces:  The details of the newly added VPC interfaces.<br/>FlowArn:  The ARN of the flow that these VPC interfaces were added to.<br/>        """
        pass

    def create_flow(self, Name: str, AvailabilityZone: str=None, Entitlements: List[GrantEntitlementRequest]=None, MediaStreams: List[AddMediaStreamRequest]=None, Outputs: List[AddOutputRequest]=None, Source: SetSourceRequest=None, SourceFailoverConfig: FailoverConfig=None, Sources: List[SetSourceRequest]=None, VpcInterfaces: List[VpcInterfaceRequest]=None) -> CreateFlowResponse:
        r"""Creates a new flow. The request must include one source. The request optionally can include outputs (up to 50) and entitlements (up to 50).

        :param self:
        :param VpcInterfaces:  The VPC interfaces you want on the flow.<br/>Sources:  <br/>SourceFailoverConfig:  The settings for source failover:<br/>Source:  The settings for the source of the flow.:<br/>Outputs:  The outputs that you want to add to this flow.<br/>Name:  The name of the flow.<br/>MediaStreams:  The media streams that you want to add to the flow. You can associate these media streams with sources and outputs on the flow.<br/>Entitlements:  The entitlements that you want to grant on a flow.<br/>AvailabilityZone:  The Availability Zone that you want to create the flow in. These options are limited to the Availability Zones within the current AWS Region.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WhitelistCidr</i> The range of IP addresses that should be allowed to contribute content to your source. These IP addresses should be in the form of a Classless Inter-Domain Routing (CIDR) block; for example, 10.0.0.0/16.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcInterfaceName</i> The name of the VPC interface to use for this source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamId</i> The stream ID that you want to use for this transport. This parameter applies only to Zixi-based streams.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Protocol</i> The protocol that is used by the source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MinLatency</i> The minimum latency in milliseconds for SRT-based streams. In streams that use the SRT protocol, this value that you set on your MediaConnect source or output represents the minimal potential latency of that connection. The latency of the stream is set to the highest number between the sender’s minimum latency and the receiver’s minimum latency.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MediaStreamSourceConfigurations</i> The media streams that are associated with the source, and the parameters for those associations.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxSyncBuffer</i> The size of the buffer (in milliseconds) to use to sync incoming source data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxLatency</i> The maximum latency in milliseconds. This parameter applies only to RIST-based and Zixi-based streams.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxBitrate</i> The smoothing max bitrate for RIST, RTP, and RTP-FEC streams.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IngestPort</i> The port that the flow will be listening on for incoming content.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EntitlementArn</i> The ARN of the entitlement that allows you to subscribe to this flow. The entitlement is set by the flow originator, and the ARN is generated as part of the originator's flow.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A description for the source. This value is not used or seen outside of the current AWS Elemental MediaConnect account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Decryption</i> The type of encryption that is used on the content ingested from this source.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Decryption</b>: The type of encryption that is used on the content ingested from this source.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Url</i> The URL from the API Gateway proxy that you set up to talk to your key server. This parameter is required for SPEKE encryption and is not valid for static key encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretArn</i> The ARN of the secret that you created in AWS Secrets Manager to store the encryption key. This parameter is required for static key encryption and is not valid for SPEKE encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The ARN of the role that you created during setup (when you set up AWS Elemental MediaConnect as a trusted entity).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceId</i> An identifier for the content. The service sends this value to the key server to identify the current endpoint. The resource ID is also known as the content ID. This parameter is required for SPEKE encryption and is not valid for static key encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Region</i> The AWS Region that the API Gateway proxy endpoint was created in. This parameter is required for SPEKE encryption and is not valid for static key encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KeyType</i> The type of key that is used for the encryption. If no keyType is provided, the service will use the default setting (static-key).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DeviceId</i> The value of one of the devices that you configured with your digital rights management (DRM) platform key provider. This parameter is required for SPEKE encryption and is not valid for static key encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ConstantInitializationVector</i> A 128-bit, 16-byte hex value represented by a 32-character string, to be used with the key for encrypting content. This parameter is not valid for static key encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Algorithm</i> The type of algorithm that is used for the encryption (such as aes128, aes192, or aes256).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourcePriority</i> The priority you want to assign to a source. You can have a primary stream and a backup stream or two equally prioritized streams.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SourcePriority</b>: The priority you want to assign to a source. You can have a primary stream and a backup stream or two equally prioritized streams.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecoveryWindow</i> Search window time to look for dash-7 packets<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FailoverMode</i> The type of failover you choose for this flow. MERGE combines the source streams into a single stream, allowing graceful recovery from any single-source loss. FAILOVER allows switching between different streams.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PrimarySource</i> The name of the source you choose as the primary source for this flow.<br/>
        :return: Flow:  The settings for a flow, including its source, outputs, and entitlements.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcInterfaces</i> The VPC Interfaces for this flow.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current status of the flow.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Sources</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceFailoverConfig</i> The settings for source failover&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SourceFailoverConfig</b>: The settings for source failover<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Source</i> The settings for the source of the flow.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Source</b>: The settings for the source of the flow.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Outputs</i> The outputs in this flow.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the flow.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MediaStreams</i> The media streams that are associated with the flow. After you associate a media stream with a source, you can also associate it with outputs on the flow.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FlowArn</i> The Amazon Resource Name (ARN), a unique identifier for any AWS resource, of the flow.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Entitlements</i> The entitlements in this flow.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EgressIp</i> The IP address from which video will be sent to output destinations.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A description of the flow. This value is not used or seen outside of the current AWS Elemental MediaConnect account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZone</i> The Availability Zone that you want to create the flow in. These options are limited to the Availability Zones within the current AWS.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DataTransferSubscriberFeePercent</i> Percentage from 0-100 of the data transfer cost to be billed to the subscriber.<br/>The type of encryption that is used on the content ingested from this source.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Decryption</b>: The type of encryption that is used on the content ingested from this source.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RecoveryWindow</i> Search window time to look for dash-7 packets<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FailoverMode</i> The type of failover you choose for this flow. MERGE combines the source streams into a single stream, allowing graceful recovery from any single-source loss. FAILOVER allows switching between different streams.<br/>The priority you want to assign to a source. You can have a primary stream and a backup stream or two equally prioritized streams.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SourcePriority</b>: The priority you want to assign to a source. You can have a primary stream and a backup stream or two equally prioritized streams.        """
        pass

    def delete_flow(self, FlowArn: str) -> DeleteFlowResponse:
        r"""Deletes a flow. Before you can delete a flow, you must stop the flow.

        :param self:
        :param FlowArn:  The ARN of the flow that you want to delete.<br/>
        :return: Status:  The status of the flow when the DeleteFlow process begins.<br/>FlowArn:  The ARN of the flow that was deleted.<br/>        """
        pass

    def describe_flow(self, FlowArn: str) -> DescribeFlowResponse:
        r"""Displays the details of a flow. The response includes the flow ARN, name, and Availability Zone, as well as details about the source, outputs, and entitlements.

        :param self:
        :param FlowArn:  The ARN of the flow that you want to describe.<br/>
        :return: Messages:  Messages that provide the state of the flow.:<br/>Flow:  The settings for a flow, including its source, outputs, and entitlements.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcInterfaces</i> The VPC Interfaces for this flow.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current status of the flow.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Sources</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceFailoverConfig</i> The settings for source failover&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SourceFailoverConfig</b>: The settings for source failover<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Source</i> The settings for the source of the flow.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Source</b>: The settings for the source of the flow.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Outputs</i> The outputs in this flow.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the flow.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MediaStreams</i> The media streams that are associated with the flow. After you associate a media stream with a source, you can also associate it with outputs on the flow.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FlowArn</i> The Amazon Resource Name (ARN), a unique identifier for any AWS resource, of the flow.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Entitlements</i> The entitlements in this flow.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EgressIp</i> The IP address from which video will be sent to output destinations.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A description of the flow. This value is not used or seen outside of the current AWS Elemental MediaConnect account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZone</i> The Availability Zone that you want to create the flow in. These options are limited to the Availability Zones within the current AWS.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DataTransferSubscriberFeePercent</i> Percentage from 0-100 of the data transfer cost to be billed to the subscriber.<br/>The type of encryption that is used on the content ingested from this source.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Decryption</b>: The type of encryption that is used on the content ingested from this source.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RecoveryWindow</i> Search window time to look for dash-7 packets<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FailoverMode</i> The type of failover you choose for this flow. MERGE combines the source streams into a single stream, allowing graceful recovery from any single-source loss. FAILOVER allows switching between different streams.<br/>The priority you want to assign to a source. You can have a primary stream and a backup stream or two equally prioritized streams.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SourcePriority</b>: The priority you want to assign to a source. You can have a primary stream and a backup stream or two equally prioritized streams.&nbsp;&nbsp;&nbsp;&nbsp; <i>Errors</i> A list of errors that might have been generated from processes on this flow.<br/>        """
        pass

    def describe_offering(self, OfferingArn: str) -> DescribeOfferingResponse:
        r"""Displays the details of an offering. The response includes the offering description, duration, outbound bandwidth, price, and Amazon Resource Name (ARN).

        :param self:
        :param OfferingArn:  The Amazon Resource Name (ARN) of the offering.<br/>
        :return: Offering:  A savings plan that reserves a certain amount of outbound bandwidth usage at a discounted rate each month over a period of time.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceSpecification</i> A definition of the amount of outbound bandwidth that you would be reserving if you purchase the offering.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ResourceSpecification</b>: A definition of the amount of outbound bandwidth that you would be reserving if you purchase the offering.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PriceUnits</i> The unit of measurement that is used for billing. This value, in combination with pricePerUnit, makes up the rate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PricePerUnit</i> The cost of a single unit. This value, in combination with priceUnits, makes up the rate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OfferingDescription</i> A description of the offering.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OfferingArn</i> The Amazon Resource Name (ARN) that MediaConnect assigns to the offering.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DurationUnits</i> The unit of measurement for the duration of the offering.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Duration</i> The length of time that your reservation would be active.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CurrencyCode</i> The type of currency that is used for billing. The currencyCode used for all reservations is US dollars.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceType</i> The type of resource and the unit that is being billed for.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReservedBitrate</i> The amount of outbound bandwidth that is discounted in the offering.<br/>        """
        pass

    def describe_reservation(self, ReservationArn: str) -> DescribeReservationResponse:
        r"""Displays the details of a reservation. The response includes the reservation name, state, start date and time, and the details of the offering that make up the rest of the reservation (such as price, duration, and outbound bandwidth).

        :param self:
        :param ReservationArn:  The Amazon Resource Name (ARN) of the reservation.<br/>
        :return: Reservation:  A pricing agreement for a discounted rate for a specific outbound bandwidth that your MediaConnect account will use each month over a specific time period. The discounted rate in the reservation applies to outbound bandwidth for all flows from your account until your account reaches the amount of bandwidth in your reservation. If you use more outbound bandwidth than the agreed upon amount in a single month, the overage is charged at the on-demand rate.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Start</i> The day and time that the reservation becomes active. You set this value when you purchase the offering.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceSpecification</i> A definition of the amount of outbound bandwidth that you would be reserving if you purchase the offering. MediaConnect defines the values that make up the resourceSpecification in the offering.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ResourceSpecification</b>: A definition of the amount of outbound bandwidth that you would be reserving if you purchase the offering. MediaConnect defines the values that make up the resourceSpecification in the offering.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReservationState</i> The status of your reservation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReservationName</i> The name that you assigned to the reservation when you purchased the offering.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReservationArn</i> The Amazon Resource Name (ARN) that MediaConnect assigns to the reservation when you purchase an offering.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PriceUnits</i> The unit of measurement that is used for billing. This value, in combination with pricePerUnit, makes up the rate. MediaConnect defines this value in the offering.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PricePerUnit</i> The cost of a single unit. This value, in combination with priceUnits, makes up the rate. MediaConnect defines this value in the offering.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OfferingDescription</i> A description of the offering. MediaConnect defines this value in the offering.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OfferingArn</i> The Amazon Resource Name (ARN) that MediaConnect assigns to the offering.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>End</i> The day and time that this reservation expires. This value is calculated based on the start date and time that you set and the offering's duration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DurationUnits</i> The unit of measurement for the duration of the reservation. MediaConnect defines this value in the offering.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Duration</i> The length of time that this reservation is active. MediaConnect defines this value in the offering.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CurrencyCode</i> The type of currency that is used for billing. The currencyCode used for your reservation is US dollars.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceType</i> The type of resource and the unit that is being billed for.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReservedBitrate</i> The amount of outbound bandwidth that is discounted in the offering.<br/>        """
        pass

    def grant_flow_entitlements(self, FlowArn: str, Entitlements: List[GrantEntitlementRequest]) -> GrantFlowEntitlementsResponse:
        r"""Grants entitlements to an existing flow.

        :param self:
        :param FlowArn:  The flow that you want to grant entitlements on.<br/>Entitlements:  The list of entitlements that you want to grant.<br/>
        :return: FlowArn:  The ARN of the flow that these entitlements were granted to.<br/>Entitlements:  The entitlements that were just granted.<br/>        """
        pass

    def list_entitlements(self, MaxResults: int=None, NextToken: str=None) -> ListEntitlementsResponse:
        r"""Displays a list of all entitlements that have been granted to this account. This request returns 20 results per page.

        :param self:
        :param NextToken:  The token that identifies which batch of results that you want to see. For example, you submit a ListEntitlements request with MaxResults set at 5. The service returns the first batch of results (up to 5) and a NextToken value. To see the next batch of results, you can submit the ListEntitlements request a second time and specify the NextToken value.<br/>MaxResults:  The maximum number of results to return per API request. For example, you submit a ListEntitlements request with MaxResults set at 5. Although 20 items match your request, the service returns no more than the first 5 items. (The service also returns a NextToken value that you can use to fetch the next batch of results.) The service might return fewer results than the MaxResults value. If MaxResults is not included in the request, the service defaults to pagination with a maximum of 20 results per page.<br/>
        :return: NextToken:  The token that identifies which batch of results that you want to see. For example, you submit a ListEntitlements request with MaxResults set at 5. The service returns the first batch of results (up to 5) and a NextToken value. To see the next batch of results, you can submit the ListEntitlements request a second time and specify the NextToken value.<br/>Entitlements:  A list of entitlements that have been granted to you from other AWS accounts.<br/>        """
        pass

    def list_flows(self, MaxResults: int=None, NextToken: str=None) -> ListFlowsResponse:
        r"""Displays a list of flows that are associated with this account. This request returns a paginated result.

        :param self:
        :param NextToken:  The token that identifies which batch of results that you want to see. For example, you submit a ListFlows request with MaxResults set at 5. The service returns the first batch of results (up to 5) and a NextToken value. To see the next batch of results, you can submit the ListFlows request a second time and specify the NextToken value.<br/>MaxResults:  The maximum number of results to return per API request. For example, you submit a ListFlows request with MaxResults set at 5. Although 20 items match your request, the service returns no more than the first 5 items. (The service also returns a NextToken value that you can use to fetch the next batch of results.) The service might return fewer results than the MaxResults value. If MaxResults is not included in the request, the service defaults to pagination with a maximum of 10 results per page.<br/>
        :return: NextToken:  The token that identifies which batch of results that you want to see. For example, you submit a ListFlows request with MaxResults set at 5. The service returns the first batch of results (up to 5) and a NextToken value. To see the next batch of results, you can submit the ListFlows request a second time and specify the NextToken value.<br/>Flows:  A list of flow summaries.<br/>        """
        pass

    def list_offerings(self, MaxResults: int=None, NextToken: str=None) -> ListOfferingsResponse:
        r"""Displays a list of all offerings that are available to this account in the current AWS Region. If you have an active reservation (which means you've purchased an offering that has already started and hasn't expired yet), your account isn't eligible for other offerings.

        :param self:
        :param NextToken:  The token that identifies which batch of results that you want to see. For example, you submit a ListOfferings request with MaxResults set at 5. The service returns the first batch of results (up to 5) and a NextToken value. To see the next batch of results, you can submit the ListOfferings request a second time and specify the NextToken value.<br/>MaxResults:  The maximum number of results to return per API request. For example, you submit a ListOfferings request with MaxResults set at 5. Although 20 items match your request, the service returns no more than the first 5 items. (The service also returns a NextToken value that you can use to fetch the next batch of results.) The service might return fewer results than the MaxResults value. If MaxResults is not included in the request, the service defaults to pagination with a maximum of 10 results per page.<br/>
        :return: Offerings:  A list of offerings that are available to this account in the current AWS Region.<br/>NextToken:  The token that identifies which batch of results that you want to see. For example, you submit a ListOfferings request with MaxResults set at 5. The service returns the first batch of results (up to 5) and a NextToken value. To see the next batch of results, you can submit the ListOfferings request a second time and specify the NextToken value.<br/>        """
        pass

    def list_reservations(self, MaxResults: int=None, NextToken: str=None) -> ListReservationsResponse:
        r"""Displays a list of all reservations that have been purchased by this account in the current AWS Region. This list includes all reservations in all states (such as active and expired).

        :param self:
        :param NextToken:  The token that identifies which batch of results that you want to see. For example, you submit a ListReservations request with MaxResults set at 5. The service returns the first batch of results (up to 5) and a NextToken value. To see the next batch of results, you can submit the ListOfferings request a second time and specify the NextToken value.<br/>MaxResults:  The maximum number of results to return per API request. For example, you submit a ListReservations request with MaxResults set at 5. Although 20 items match your request, the service returns no more than the first 5 items. (The service also returns a NextToken value that you can use to fetch the next batch of results.) The service might return fewer results than the MaxResults value. If MaxResults is not included in the request, the service defaults to pagination with a maximum of 10 results per page.<br/>
        :return: Reservations:  A list of all reservations that have been purchased by this account in the current AWS Region.<br/>NextToken:  The token that identifies which batch of results that you want to see. For example, you submit a ListReservations request with MaxResults set at 5. The service returns the first batch of results (up to 5) and a NextToken value. To see the next batch of results, you can submit the ListReservations request a second time and specify the NextToken value.<br/>        """
        pass

    def list_tags_for_resource(self, ResourceArn: str) -> ListTagsForResourceResponse:
        r"""List all tags on an AWS Elemental MediaConnect resource

        :param self:
        :param ResourceArn:  The Amazon Resource Name (ARN) that identifies the AWS Elemental MediaConnect resource for which to list the tags.<br/>
        :return: Tags:  A map from tag keys to values. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters.<br/>        """
        pass

    def purchase_offering(self, Start: str, ReservationName: str, OfferingArn: str) -> PurchaseOfferingResponse:
        r"""Submits a request to purchase an offering. If you already have an active reservation, you can't purchase another offering.

        :param self:
        :param Start:  The date and time that you want the reservation to begin, in Coordinated Universal Time (UTC). You can specify any date and time between 12:00am on the first day of the current month to the current time on today's date, inclusive. Specify the start in a 24-hour notation. Use the following format: YYYY-MM-DDTHH:mm:SSZ, where T and Z are literal characters. For example, to specify 11:30pm on March 5, 2020, enter 2020-03-05T23:30:00Z.<br/>ReservationName:  The name that you want to use for the reservation.<br/>OfferingArn:  The Amazon Resource Name (ARN) of the offering.<br/>
        :return: Reservation:  A pricing agreement for a discounted rate for a specific outbound bandwidth that your MediaConnect account will use each month over a specific time period. The discounted rate in the reservation applies to outbound bandwidth for all flows from your account until your account reaches the amount of bandwidth in your reservation. If you use more outbound bandwidth than the agreed upon amount in a single month, the overage is charged at the on-demand rate.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Start</i> The day and time that the reservation becomes active. You set this value when you purchase the offering.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceSpecification</i> A definition of the amount of outbound bandwidth that you would be reserving if you purchase the offering. MediaConnect defines the values that make up the resourceSpecification in the offering.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ResourceSpecification</b>: A definition of the amount of outbound bandwidth that you would be reserving if you purchase the offering. MediaConnect defines the values that make up the resourceSpecification in the offering.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReservationState</i> The status of your reservation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReservationName</i> The name that you assigned to the reservation when you purchased the offering.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReservationArn</i> The Amazon Resource Name (ARN) that MediaConnect assigns to the reservation when you purchase an offering.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PriceUnits</i> The unit of measurement that is used for billing. This value, in combination with pricePerUnit, makes up the rate. MediaConnect defines this value in the offering.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PricePerUnit</i> The cost of a single unit. This value, in combination with priceUnits, makes up the rate. MediaConnect defines this value in the offering.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OfferingDescription</i> A description of the offering. MediaConnect defines this value in the offering.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OfferingArn</i> The Amazon Resource Name (ARN) that MediaConnect assigns to the offering.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>End</i> The day and time that this reservation expires. This value is calculated based on the start date and time that you set and the offering's duration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DurationUnits</i> The unit of measurement for the duration of the reservation. MediaConnect defines this value in the offering.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Duration</i> The length of time that this reservation is active. MediaConnect defines this value in the offering.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CurrencyCode</i> The type of currency that is used for billing. The currencyCode used for your reservation is US dollars.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceType</i> The type of resource and the unit that is being billed for.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReservedBitrate</i> The amount of outbound bandwidth that is discounted in the offering.<br/>        """
        pass

    def remove_flow_media_stream(self, MediaStreamName: str, FlowArn: str) -> RemoveFlowMediaStreamResponse:
        r"""Removes a media stream from a flow. This action is only available if the media stream is not associated with a source or output.

        :param self:
        :param MediaStreamName:  The name of the media stream that you want to remove.<br/>FlowArn:  The Amazon Resource Name (ARN) of the flow.<br/>
        :return: MediaStreamName:  The name of the media stream that was removed.<br/>FlowArn:  The Amazon Resource Name (ARN) of the flow.<br/>        """
        pass

    def remove_flow_output(self, OutputArn: str, FlowArn: str) -> RemoveFlowOutputResponse:
        r"""Removes an output from an existing flow. This request can be made only on an output that does not have an entitlement associated with it. If the output has an entitlement, you must revoke the entitlement instead. When an entitlement is revoked from a flow, the service automatically removes the associated output.

        :param self:
        :param OutputArn:  The ARN of the output that you want to remove.<br/>FlowArn:  The flow that you want to remove an output from.<br/>
        :return: OutputArn:  The ARN of the output that was removed.<br/>FlowArn:  The ARN of the flow that is associated with the output you removed.<br/>        """
        pass

    def remove_flow_source(self, SourceArn: str, FlowArn: str) -> RemoveFlowSourceResponse:
        r"""Removes a source from an existing flow. This request can be made only if there is more than one source on the flow.

        :param self:
        :param SourceArn:  The ARN of the source that you want to remove.<br/>FlowArn:  The flow that you want to remove a source from.<br/>
        :return: SourceArn:  The ARN of the source that was removed.<br/>FlowArn:  The ARN of the flow that is associated with the source you removed.<br/>        """
        pass

    def remove_flow_vpc_interface(self, VpcInterfaceName: str, FlowArn: str) -> RemoveFlowVpcInterfaceResponse:
        r"""Removes a VPC Interface from an existing flow. This request can be made only on a VPC interface that does not have a Source or Output associated with it. If the VPC interface is referenced by a Source or Output, you must first delete or update the Source or Output to no longer reference the VPC interface.

        :param self:
        :param VpcInterfaceName:  The name of the VPC interface that you want to remove.<br/>FlowArn:  The flow that you want to remove a VPC interface from.<br/>
        :return: VpcInterfaceName:  The name of the VPC interface that was removed.<br/>NonDeletedNetworkInterfaceIds:  IDs of network interfaces associated with the removed VPC interface that Media Connect was unable to remove.<br/>FlowArn:  The ARN of the flow that is associated with the VPC interface you removed.<br/>        """
        pass

    def revoke_flow_entitlement(self, FlowArn: str, EntitlementArn: str) -> RevokeFlowEntitlementResponse:
        r"""Revokes an entitlement from a flow. Once an entitlement is revoked, the content becomes unavailable to the subscriber and the associated output is removed.

        :param self:
        :param FlowArn:  The flow that you want to revoke an entitlement from.<br/>EntitlementArn:  The ARN of the entitlement that you want to revoke.<br/>
        :return: FlowArn:  The ARN of the flow that the entitlement was revoked from.<br/>EntitlementArn:  The ARN of the entitlement that was revoked.<br/>        """
        pass

    def start_flow(self, FlowArn: str) -> StartFlowResponse:
        r"""Starts a flow.

        :param self:
        :param FlowArn:  The ARN of the flow that you want to start.<br/>
        :return: Status:  The status of the flow when the StartFlow process begins.<br/>FlowArn:  The ARN of the flow that you started.<br/>        """
        pass

    def stop_flow(self, FlowArn: str) -> StopFlowResponse:
        r"""Stops a flow.

        :param self:
        :param FlowArn:  The ARN of the flow that you want to stop.<br/>
        :return: Status:  The status of the flow when the StopFlow process begins.<br/>FlowArn:  The ARN of the flow that you stopped.<br/>        """
        pass

    def tag_resource(self, Tags: __mapOf__string, ResourceArn: str):
        r"""Associates the specified tags to a resource with the specified resourceArn. If existing tags on a resource are not specified in the request parameters, they are not changed. When a resource is deleted, the tags associated with that resource are deleted as well.

        :param self:
        :param Tags:  A map from tag keys to values. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters.<br/>ResourceArn:  The Amazon Resource Name (ARN) that identifies the AWS Elemental MediaConnect resource to which to add tags.<br/>
        :return:         """
        pass

    def untag_resource(self, TagKeys: List[__string], ResourceArn: str):
        r"""Deletes specified tags from a resource.

        :param self:
        :param TagKeys:  The keys of the tags to be removed.<br/>ResourceArn:  The Amazon Resource Name (ARN) that identifies the AWS Elemental MediaConnect resource from which to delete tags.<br/>
        :return:         """
        pass

    def update_flow(self, FlowArn: str, SourceFailoverConfig: UpdateFailoverConfig=None) -> UpdateFlowResponse:
        r"""Updates flow

        :param self:
        :param SourceFailoverConfig:  The settings for source failover:<br/>FlowArn:  The flow that you want to update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourcePriority</i> The priority you want to assign to a source. You can have a primary stream and a backup stream or two equally prioritized streams.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SourcePriority</b>: The priority you want to assign to a source. You can have a primary stream and a backup stream or two equally prioritized streams.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecoveryWindow</i> Recovery window time to look for dash-7 packets<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FailoverMode</i> The type of failover you choose for this flow. MERGE combines the source streams into a single stream, allowing graceful recovery from any single-source loss. FAILOVER allows switching between different streams.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PrimarySource</i> The name of the source you choose as the primary source for this flow.<br/>
        :return: Flow:  The settings for a flow, including its source, outputs, and entitlements.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcInterfaces</i> The VPC Interfaces for this flow.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current status of the flow.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Sources</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceFailoverConfig</i> The settings for source failover&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SourceFailoverConfig</b>: The settings for source failover<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Source</i> The settings for the source of the flow.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Source</b>: The settings for the source of the flow.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Outputs</i> The outputs in this flow.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the flow.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MediaStreams</i> The media streams that are associated with the flow. After you associate a media stream with a source, you can also associate it with outputs on the flow.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FlowArn</i> The Amazon Resource Name (ARN), a unique identifier for any AWS resource, of the flow.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Entitlements</i> The entitlements in this flow.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EgressIp</i> The IP address from which video will be sent to output destinations.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A description of the flow. This value is not used or seen outside of the current AWS Elemental MediaConnect account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZone</i> The Availability Zone that you want to create the flow in. These options are limited to the Availability Zones within the current AWS.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DataTransferSubscriberFeePercent</i> Percentage from 0-100 of the data transfer cost to be billed to the subscriber.<br/>The type of encryption that is used on the content ingested from this source.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Decryption</b>: The type of encryption that is used on the content ingested from this source.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RecoveryWindow</i> Search window time to look for dash-7 packets<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FailoverMode</i> The type of failover you choose for this flow. MERGE combines the source streams into a single stream, allowing graceful recovery from any single-source loss. FAILOVER allows switching between different streams.<br/>The priority you want to assign to a source. You can have a primary stream and a backup stream or two equally prioritized streams.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SourcePriority</b>: The priority you want to assign to a source. You can have a primary stream and a backup stream or two equally prioritized streams.        """
        pass

    def update_flow_entitlement(self, FlowArn: str, EntitlementArn: str, Description: str=None, Encryption: UpdateEncryption=None, EntitlementStatus: str=None, Subscribers: List[__string]=None) -> UpdateFlowEntitlementResponse:
        r"""You can change an entitlement's description, subscribers, and encryption. If you change the subscribers, the service will remove the outputs that are are used by the subscribers that are removed.

        :param self:
        :param Subscribers:  The AWS account IDs that you want to share your content with. The receiving accounts (subscribers) will be allowed to create their own flow using your content as the source.<br/>FlowArn:  The flow that is associated with the entitlement that you want to update.<br/>EntitlementStatus:  An indication of whether you want to enable the entitlement to allow access, or disable it to stop streaming content to the subscriber’s flow temporarily. If you don’t specify the entitlementStatus field in your request, MediaConnect leaves the value unchanged.<br/>EntitlementArn:  The ARN of the entitlement that you want to update.<br/>Encryption:  The type of encryption that will be used on the output associated with this entitlement.:<br/>Description:  A description of the entitlement. This description appears only on the AWS Elemental MediaConnect console and will not be seen by the subscriber or end user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Url</i> The URL from the API Gateway proxy that you set up to talk to your key server. This parameter is required for SPEKE encryption and is not valid for static key encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretArn</i> The ARN of the secret that you created in AWS Secrets Manager to store the encryption key. This parameter is required for static key encryption and is not valid for SPEKE encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The ARN of the role that you created during setup (when you set up AWS Elemental MediaConnect as a trusted entity).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceId</i> An identifier for the content. The service sends this value to the key server to identify the current endpoint. The resource ID is also known as the content ID. This parameter is required for SPEKE encryption and is not valid for static key encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Region</i> The AWS Region that the API Gateway proxy endpoint was created in. This parameter is required for SPEKE encryption and is not valid for static key encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KeyType</i> The type of key that is used for the encryption. If no keyType is provided, the service will use the default setting (static-key).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeviceId</i> The value of one of the devices that you configured with your digital rights management (DRM) platform key provider. This parameter is required for SPEKE encryption and is not valid for static key encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConstantInitializationVector</i> A 128-bit, 16-byte hex value represented by a 32-character string, to be used with the key for encrypting content. This parameter is not valid for static key encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Algorithm</i> The type of algorithm that is used for the encryption (such as aes128, aes192, or aes256).<br/>
        :return: FlowArn:  The ARN of the flow that this entitlement was granted on.<br/>Entitlement:  The new configuration of the entitlement that you updated.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Subscribers</i> The AWS account IDs that you want to share your content with. The receiving accounts (subscribers) will be allowed to create their own flow using your content as the source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the entitlement.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EntitlementStatus</i> An indication of whether the entitlement is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EntitlementArn</i> The ARN of the entitlement.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Encryption</i> The type of encryption that will be used on the output that is associated with this entitlement.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Encryption</b>: The type of encryption that will be used on the output that is associated with this entitlement.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A description of the entitlement.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataTransferSubscriberFeePercent</i> Percentage from 0-100 of the data transfer cost to be billed to the subscriber.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Url</i> The URL from the API Gateway proxy that you set up to talk to your key server. This parameter is required for SPEKE encryption and is not valid for static key encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretArn</i> The ARN of the secret that you created in AWS Secrets Manager to store the encryption key. This parameter is required for static key encryption and is not valid for SPEKE encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The ARN of the role that you created during setup (when you set up AWS Elemental MediaConnect as a trusted entity).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceId</i> An identifier for the content. The service sends this value to the key server to identify the current endpoint. The resource ID is also known as the content ID. This parameter is required for SPEKE encryption and is not valid for static key encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Region</i> The AWS Region that the API Gateway proxy endpoint was created in. This parameter is required for SPEKE encryption and is not valid for static key encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KeyType</i> The type of key that is used for the encryption. If no keyType is provided, the service will use the default setting (static-key).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DeviceId</i> The value of one of the devices that you configured with your digital rights management (DRM) platform key provider. This parameter is required for SPEKE encryption and is not valid for static key encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ConstantInitializationVector</i> A 128-bit, 16-byte hex value represented by a 32-character string, to be used with the key for encrypting content. This parameter is not valid for static key encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Algorithm</i> The type of algorithm that is used for the encryption (such as aes128, aes192, or aes256).<br/>        """
        pass

    def update_flow_media_stream(self, MediaStreamName: str, FlowArn: str, Attributes: MediaStreamAttributesRequest=None, ClockRate: int=None, Description: str=None, MediaStreamType: str=None, VideoFormat: str=None) -> UpdateFlowMediaStreamResponse:
        r"""Updates an existing media stream.

        :param self:
        :param VideoFormat:  The resolution of the video.<br/>MediaStreamType:  The type of media stream.<br/>MediaStreamName:  The name of the media stream that you want to update.<br/>FlowArn:  The Amazon Resource Name (ARN) of the flow.<br/>Description:  Description<br/>ClockRate:  The sample rate (in Hz) for the stream. If the media stream type is video or ancillary data, set this value to 90000. If the media stream type is audio, set this value to either 48000 or 96000.<br/>Attributes:  The attributes that you want to assign to the media stream.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Lang</i> The audio language, in a format that is recognized by the receiver.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Fmtp</i> The settings that you want to use to define the media stream.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Fmtp</b>: The settings that you want to use to define the media stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Tcs</i> The transfer characteristic system (TCS) that is used in the video.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ScanMode</i> The type of compression that was used to smooth the video’s appearance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Range</i> The encoding range of the video.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Par</i> The pixel aspect ratio (PAR) of the video.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ExactFramerate</i> The frame rate for the video stream, in frames/second. For example: 60000/1001. If you specify a whole number, MediaConnect uses a ratio of N/1. For example, if you specify 60, MediaConnect uses 60/1 as the exactFramerate.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Colorimetry</i> The format that is used for the representation of color.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ChannelOrder</i> The format of the audio channel.<br/>
        :return: MediaStream:  The media stream that you updated.:<br/>FlowArn:  The ARN of the flow that is associated with the media stream that you updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VideoFormat</i> The resolution of the video.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MediaStreamType</i> The type of media stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MediaStreamName</i> A name that helps you distinguish one media stream from another.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MediaStreamId</i> A unique identifier for the media stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Fmt</i> The format type number (sometimes referred to as RTP payload type) of the media stream. MediaConnect assigns this value to the media stream. For ST 2110 JPEG XS outputs, you need to provide this value to the receiver.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A description that can help you quickly identify what your media stream is used for.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClockRate</i> The sample rate for the stream. This value is measured in Hz.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Attributes</i> Attributes that are related to the media stream.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Attributes</b>: Attributes that are related to the media stream.<br/>A set of parameters that define the media stream.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Fmtp</b>: A set of parameters that define the media stream.        """
        pass

    def update_flow_output(self, OutputArn: str, FlowArn: str, CidrAllowList: List[__string]=None, Description: str=None, Destination: str=None, Encryption: UpdateEncryption=None, MaxLatency: int=None, MediaStreamOutputConfigurations: List[MediaStreamOutputConfigurationRequest]=None, MinLatency: int=None, Port: int=None, Protocol: str=None, RemoteId: str=None, SmoothingLatency: int=None, StreamId: str=None, VpcInterfaceAttachment: VpcInterfaceAttachment=None) -> UpdateFlowOutputResponse:
        r"""Updates an existing flow output.

        :param self:
        :param VpcInterfaceAttachment:  The name of the VPC interface attachment to use for this output.:<br/>StreamId:  The stream ID that you want to use for this transport. This parameter applies only to Zixi-based streams.<br/>SmoothingLatency:  The smoothing latency in milliseconds for RIST, RTP, and RTP-FEC streams.<br/>RemoteId:  The remote ID for the Zixi-pull stream.<br/>Protocol:  The protocol to use for the output.<br/>Port:  The port to use when content is distributed to this output.<br/>OutputArn:  The ARN of the output that you want to update.<br/>MinLatency:  The minimum latency in milliseconds for SRT-based streams. In streams that use the SRT protocol, this value that you set on your MediaConnect source or output represents the minimal potential latency of that connection. The latency of the stream is set to the highest number between the sender’s minimum latency and the receiver’s minimum latency.<br/>MediaStreamOutputConfigurations:  The media streams that are associated with the output, and the parameters for those associations.<br/>MaxLatency:  The maximum latency in milliseconds for Zixi-based streams.<br/>FlowArn:  The flow that is associated with the output that you want to update.<br/>Encryption:  The type of key used for the encryption. If no keyType is provided, the service will use the default setting (static-key).:<br/>Destination:  The IP address where you want to send the output.<br/>Description:  A description of the output. This description appears only on the AWS Elemental MediaConnect console and will not be seen by the end user.<br/>CidrAllowList:  The range of IP addresses that should be allowed to initiate output requests to this flow. These IP addresses should be in the form of a Classless Inter-Domain Routing (CIDR) block; for example, 10.0.0.0/16.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Url</i> The URL from the API Gateway proxy that you set up to talk to your key server. This parameter is required for SPEKE encryption and is not valid for static key encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretArn</i> The ARN of the secret that you created in AWS Secrets Manager to store the encryption key. This parameter is required for static key encryption and is not valid for SPEKE encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The ARN of the role that you created during setup (when you set up AWS Elemental MediaConnect as a trusted entity).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceId</i> An identifier for the content. The service sends this value to the key server to identify the current endpoint. The resource ID is also known as the content ID. This parameter is required for SPEKE encryption and is not valid for static key encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Region</i> The AWS Region that the API Gateway proxy endpoint was created in. This parameter is required for SPEKE encryption and is not valid for static key encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KeyType</i> The type of key that is used for the encryption. If no keyType is provided, the service will use the default setting (static-key).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeviceId</i> The value of one of the devices that you configured with your digital rights management (DRM) platform key provider. This parameter is required for SPEKE encryption and is not valid for static key encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConstantInitializationVector</i> A 128-bit, 16-byte hex value represented by a 32-character string, to be used with the key for encrypting content. This parameter is not valid for static key encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Algorithm</i> The type of algorithm that is used for the encryption (such as aes128, aes192, or aes256).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcInterfaceName</i> The name of the VPC interface to use for this output.<br/>
        :return: Output:  The new settings of the output that you updated.:<br/>FlowArn:  The ARN of the flow that is associated with the updated output.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcInterfaceAttachment</i> The name of the VPC interface attachment to use for this output.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>VpcInterfaceAttachment</b>: The name of the VPC interface attachment to use for this output.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Transport</i> Attributes related to the transport stream that are used in the output.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Transport</b>: Attributes related to the transport stream that are used in the output.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> The port to use when content is distributed to this output.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OutputArn</i> The ARN of the output.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the output. This value must be unique within the current flow.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MediaStreamOutputConfigurations</i> The configuration for each media stream that is associated with the output.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MediaLiveInputArn</i> The input ARN of the AWS Elemental MediaLive channel. This parameter is relevant only for outputs that were added by creating a MediaLive input.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ListenerAddress</i> The IP address that the receiver requires in order to establish a connection with the flow. For public networking, the ListenerAddress is represented by the elastic IP address of the flow. For private networking, the ListenerAddress is represented by the elastic network interface IP address of the VPC. This field applies only to outputs that use the Zixi pull or SRT listener protocol.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EntitlementArn</i> The ARN of the entitlement on the originator''s flow. This value is relevant only on entitled flows.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Encryption</i> The type of key used for the encryption. If no keyType is provided, the service will use the default setting (static-key).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Encryption</b>: The type of key used for the encryption. If no keyType is provided, the service will use the default setting (static-key).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Destination</i> The address where you want to send the output.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A description of the output.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataTransferSubscriberFeePercent</i> Percentage from 0-100 of the data transfer cost to be billed to the subscriber.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Url</i> The URL from the API Gateway proxy that you set up to talk to your key server. This parameter is required for SPEKE encryption and is not valid for static key encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretArn</i> The ARN of the secret that you created in AWS Secrets Manager to store the encryption key. This parameter is required for static key encryption and is not valid for SPEKE encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The ARN of the role that you created during setup (when you set up AWS Elemental MediaConnect as a trusted entity).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceId</i> An identifier for the content. The service sends this value to the key server to identify the current endpoint. The resource ID is also known as the content ID. This parameter is required for SPEKE encryption and is not valid for static key encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Region</i> The AWS Region that the API Gateway proxy endpoint was created in. This parameter is required for SPEKE encryption and is not valid for static key encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KeyType</i> The type of key that is used for the encryption. If no keyType is provided, the service will use the default setting (static-key).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DeviceId</i> The value of one of the devices that you configured with your digital rights management (DRM) platform key provider. This parameter is required for SPEKE encryption and is not valid for static key encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ConstantInitializationVector</i> A 128-bit, 16-byte hex value represented by a 32-character string, to be used with the key for encrypting content. This parameter is not valid for static key encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Algorithm</i> The type of algorithm that is used for the encryption (such as aes128, aes192, or aes256).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamId</i> The stream ID that you want to use for this transport. This parameter applies only to Zixi-based streams.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SmoothingLatency</i> The smoothing latency in milliseconds for RIST, RTP, and RTP-FEC streams.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RemoteId</i> The remote ID for the Zixi-pull stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Protocol</i> The protocol that is used by the source or output.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MinLatency</i> The minimum latency in milliseconds for SRT-based streams. In streams that use the SRT protocol, this value that you set on your MediaConnect source or output represents the minimal potential latency of that connection. The latency of the stream is set to the highest number between the sender’s minimum latency and the receiver’s minimum latency.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxSyncBuffer</i> The size of the buffer (in milliseconds) to use to sync incoming source data.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxLatency</i> The maximum latency in milliseconds. This parameter applies only to RIST-based and Zixi-based streams.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxBitrate</i> The smoothing max bitrate for RIST, RTP, and RTP-FEC streams.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CidrAllowList</i> The range of IP addresses that should be allowed to initiate output requests to this flow. These IP addresses should be in the form of a Classless Inter-Domain Routing (CIDR) block; for example, 10.0.0.0/16.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcInterfaceName</i> The name of the VPC interface to use for this output.<br/>        """
        pass

    def update_flow_source(self, SourceArn: str, FlowArn: str, Decryption: UpdateEncryption=None, Description: str=None, EntitlementArn: str=None, IngestPort: int=None, MaxBitrate: int=None, MaxLatency: int=None, MaxSyncBuffer: int=None, MediaStreamSourceConfigurations: List[MediaStreamSourceConfigurationRequest]=None, MinLatency: int=None, Protocol: str=None, StreamId: str=None, VpcInterfaceName: str=None, WhitelistCidr: str=None) -> UpdateFlowSourceResponse:
        r"""Updates the source of a flow.

        :param self:
        :param WhitelistCidr:  The range of IP addresses that should be allowed to contribute content to your source. These IP addresses should be in the form of a Classless Inter-Domain Routing (CIDR) block; for example, 10.0.0.0/16.<br/>VpcInterfaceName:  The name of the VPC interface to use for this source.<br/>StreamId:  The stream ID that you want to use for this transport. This parameter applies only to Zixi-based streams.<br/>SourceArn:  The ARN of the source that you want to update.<br/>Protocol:  The protocol that is used by the source.<br/>MinLatency:  The minimum latency in milliseconds for SRT-based streams. In streams that use the SRT protocol, this value that you set on your MediaConnect source or output represents the minimal potential latency of that connection. The latency of the stream is set to the highest number between the sender’s minimum latency and the receiver’s minimum latency.<br/>MediaStreamSourceConfigurations:  The media streams that are associated with the source, and the parameters for those associations.<br/>MaxSyncBuffer:  The size of the buffer (in milliseconds) to use to sync incoming source data.<br/>MaxLatency:  The maximum latency in milliseconds. This parameter applies only to RIST-based and Zixi-based streams.<br/>MaxBitrate:  The smoothing max bitrate for RIST, RTP, and RTP-FEC streams.<br/>IngestPort:  The port that the flow will be listening on for incoming content.<br/>FlowArn:  The flow that is associated with the source that you want to update.<br/>EntitlementArn:  The ARN of the entitlement that allows you to subscribe to this flow. The entitlement is set by the flow originator, and the ARN is generated as part of the originator's flow.<br/>Description:  A description for the source. This value is not used or seen outside of the current AWS Elemental MediaConnect account.<br/>Decryption:  The type of encryption used on the content ingested from this source.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Url</i> The URL from the API Gateway proxy that you set up to talk to your key server. This parameter is required for SPEKE encryption and is not valid for static key encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretArn</i> The ARN of the secret that you created in AWS Secrets Manager to store the encryption key. This parameter is required for static key encryption and is not valid for SPEKE encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The ARN of the role that you created during setup (when you set up AWS Elemental MediaConnect as a trusted entity).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceId</i> An identifier for the content. The service sends this value to the key server to identify the current endpoint. The resource ID is also known as the content ID. This parameter is required for SPEKE encryption and is not valid for static key encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Region</i> The AWS Region that the API Gateway proxy endpoint was created in. This parameter is required for SPEKE encryption and is not valid for static key encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KeyType</i> The type of key that is used for the encryption. If no keyType is provided, the service will use the default setting (static-key).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeviceId</i> The value of one of the devices that you configured with your digital rights management (DRM) platform key provider. This parameter is required for SPEKE encryption and is not valid for static key encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConstantInitializationVector</i> A 128-bit, 16-byte hex value represented by a 32-character string, to be used with the key for encrypting content. This parameter is not valid for static key encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Algorithm</i> The type of algorithm that is used for the encryption (such as aes128, aes192, or aes256).<br/>
        :return: Source:  The settings for the source of the flow.:<br/>FlowArn:  The ARN of the flow that you want to update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WhitelistCidr</i> The range of IP addresses that should be allowed to contribute content to your source. These IP addresses should be in the form of a Classless Inter-Domain Routing (CIDR) block; for example, 10.0.0.0/16.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcInterfaceName</i> The name of the VPC interface that is used for this source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Transport</i> Attributes related to the transport stream that are used in the source.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Transport</b>: Attributes related to the transport stream that are used in the source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceArn</i> The ARN of the source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MediaStreamSourceConfigurations</i> The media streams that are associated with the source, and the parameters for those associations.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IngestPort</i> The port that the flow will be listening on for incoming content.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IngestIp</i> The IP address that the flow will be listening on for incoming content.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EntitlementArn</i> The ARN of the entitlement that allows you to subscribe to content that comes from another AWS account. The entitlement is set by the content originator and the ARN is generated as part of the originator's flow.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A description for the source. This value is not used or seen outside of the current AWS Elemental MediaConnect account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Decryption</i> The type of encryption that is used on the content ingested from this source.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Decryption</b>: The type of encryption that is used on the content ingested from this source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataTransferSubscriberFeePercent</i> Percentage from 0-100 of the data transfer cost to be billed to the subscriber.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Url</i> The URL from the API Gateway proxy that you set up to talk to your key server. This parameter is required for SPEKE encryption and is not valid for static key encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretArn</i> The ARN of the secret that you created in AWS Secrets Manager to store the encryption key. This parameter is required for static key encryption and is not valid for SPEKE encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The ARN of the role that you created during setup (when you set up AWS Elemental MediaConnect as a trusted entity).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceId</i> An identifier for the content. The service sends this value to the key server to identify the current endpoint. The resource ID is also known as the content ID. This parameter is required for SPEKE encryption and is not valid for static key encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Region</i> The AWS Region that the API Gateway proxy endpoint was created in. This parameter is required for SPEKE encryption and is not valid for static key encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KeyType</i> The type of key that is used for the encryption. If no keyType is provided, the service will use the default setting (static-key).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DeviceId</i> The value of one of the devices that you configured with your digital rights management (DRM) platform key provider. This parameter is required for SPEKE encryption and is not valid for static key encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ConstantInitializationVector</i> A 128-bit, 16-byte hex value represented by a 32-character string, to be used with the key for encrypting content. This parameter is not valid for static key encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Algorithm</i> The type of algorithm that is used for the encryption (such as aes128, aes192, or aes256).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamId</i> The stream ID that you want to use for this transport. This parameter applies only to Zixi-based streams.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SmoothingLatency</i> The smoothing latency in milliseconds for RIST, RTP, and RTP-FEC streams.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RemoteId</i> The remote ID for the Zixi-pull stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Protocol</i> The protocol that is used by the source or output.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MinLatency</i> The minimum latency in milliseconds for SRT-based streams. In streams that use the SRT protocol, this value that you set on your MediaConnect source or output represents the minimal potential latency of that connection. The latency of the stream is set to the highest number between the sender’s minimum latency and the receiver’s minimum latency.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxSyncBuffer</i> The size of the buffer (in milliseconds) to use to sync incoming source data.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxLatency</i> The maximum latency in milliseconds. This parameter applies only to RIST-based and Zixi-based streams.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxBitrate</i> The smoothing max bitrate for RIST, RTP, and RTP-FEC streams.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CidrAllowList</i> The range of IP addresses that should be allowed to initiate output requests to this flow. These IP addresses should be in the form of a Classless Inter-Domain Routing (CIDR) block; for example, 10.0.0.0/16.<br/>        """
        pass





class MediaConvert(BaseClient):
    r"""AWS Elemental MediaConvert"""


    class DescribeEndpointsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_endpoints` for valid parameters"""
            pass
    class ListJobsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_jobs` for valid parameters"""
            pass
    class ListPresetsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_presets` for valid parameters"""
            pass
    class ListJobTemplatesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_job_templates` for valid parameters"""
            pass
    class ListQueuesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_queues` for valid parameters"""
            pass


    class AssociateCertificateRequest(Mapping):
        pass
    
    class AssociateCertificateResponse(Mapping):
        pass
    
    class CancelJobRequest(Mapping):
        pass
    
    class CancelJobResponse(Mapping):
        pass
    
    class CreateJobRequest(Mapping):
        pass
    
    class CreateJobResponse(Mapping):
        pass
    
    class AccelerationSettings(Mapping):
        pass
    
    class HopDestination(Mapping):
        pass
    
    class JobSettings(Mapping):
        pass
    
    class __mapOf__string(object):
        pass
    
    class CreateJobTemplateRequest(Mapping):
        pass
    
    class CreateJobTemplateResponse(Mapping):
        pass
    
    class JobTemplateSettings(Mapping):
        pass
    
    class CreatePresetRequest(Mapping):
        pass
    
    class CreatePresetResponse(Mapping):
        pass
    
    class PresetSettings(Mapping):
        pass
    
    class CreateQueueRequest(Mapping):
        pass
    
    class CreateQueueResponse(Mapping):
        pass
    
    class ReservationPlanSettings(Mapping):
        pass
    
    class DeleteJobTemplateRequest(Mapping):
        pass
    
    class DeleteJobTemplateResponse(Mapping):
        pass
    
    class DeletePresetRequest(Mapping):
        pass
    
    class DeletePresetResponse(Mapping):
        pass
    
    class DeleteQueueRequest(Mapping):
        pass
    
    class DeleteQueueResponse(Mapping):
        pass
    
    class DescribeEndpointsRequest(Mapping):
        pass
    
    class DescribeEndpointsResponse(Mapping):
        pass
    
    class DisassociateCertificateRequest(Mapping):
        pass
    
    class DisassociateCertificateResponse(Mapping):
        pass
    
    class GetJobRequest(Mapping):
        pass
    
    class GetJobResponse(Mapping):
        pass
    
    class GetJobTemplateRequest(Mapping):
        pass
    
    class GetJobTemplateResponse(Mapping):
        pass
    
    class GetPresetRequest(Mapping):
        pass
    
    class GetPresetResponse(Mapping):
        pass
    
    class GetQueueRequest(Mapping):
        pass
    
    class GetQueueResponse(Mapping):
        pass
    
    class ListJobTemplatesRequest(Mapping):
        pass
    
    class ListJobTemplatesResponse(Mapping):
        pass
    
    class ListJobsRequest(Mapping):
        pass
    
    class ListJobsResponse(Mapping):
        pass
    
    class ListPresetsRequest(Mapping):
        pass
    
    class ListPresetsResponse(Mapping):
        pass
    
    class ListQueuesRequest(Mapping):
        pass
    
    class ListQueuesResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class __string(object):
        pass
    
    class UpdateJobTemplateRequest(Mapping):
        pass
    
    class UpdateJobTemplateResponse(Mapping):
        pass
    
    class UpdatePresetRequest(Mapping):
        pass
    
    class UpdatePresetResponse(Mapping):
        pass
    
    class UpdateQueueRequest(Mapping):
        pass
    
    class UpdateQueueResponse(Mapping):
        pass
    
    def associate_certificate(self, Arn: str) -> AssociateCertificateResponse:
        r"""Associates an AWS Certificate Manager (ACM) Amazon Resource Name (ARN) with AWS Elemental MediaConvert.

        :param self:
        :param Arn:  The ARN of the ACM certificate that you want to associate with your MediaConvert resource.<br/>
        :return:         """
        pass

    def cancel_job(self, Id: str) -> CancelJobResponse:
        r"""Permanently cancel a job. Once you have canceled a job, you can't start it again.

        :param self:
        :param Id:  The Job ID of the job to be cancelled.<br/>
        :return:         """
        pass

    def create_job(self, Settings: JobSettings, Role: str, AccelerationSettings: AccelerationSettings=None, BillingTagsSource: str=None, ClientRequestToken: str=None, HopDestinations: List[HopDestination]=None, JobTemplate: str=None, Priority: int=None, Queue: str=None, SimulateReservedQueue: str=None, StatusUpdateInterval: str=None, Tags: __mapOf__string=None, UserMetadata: __mapOf__string=None) -> CreateJobResponse:
        r"""Create a new transcoding job. For information about jobs and job settings, see the User Guide at http://docs.aws.amazon.com/mediaconvert/latest/ug/what-is.html

        :param self:
        :param UserMetadata:  Optional. User-defined metadata that you want to associate with an MediaConvert job. You specify metadata in key/value pairs.  Use only for existing integrations or workflows that rely on job metadata tags. Otherwise, we recommend that you use standard AWS tags.<br/>Tags:  Optional. The tags that you want to add to the resource. You can tag resources with a key-value pair or with only a key.  Use standard AWS tags on your job for automatic integration with AWS services and for custom integrations and workflows.<br/>StatusUpdateInterval:  Optional. Specify how often MediaConvert sends STATUS_UPDATE events to Amazon CloudWatch Events. Set the interval, in seconds, between status updates. MediaConvert sends an update at this interval from the time the service begins processing your job to the time it completes the transcode or encounters an error.<br/>SimulateReservedQueue:  Optional. Enable this setting when you run a test job to estimate how many reserved transcoding slots (RTS) you need. When this is enabled, MediaConvert runs your job from an on-demand queue with similar performance to what you will see with one RTS in a reserved queue. This setting is disabled by default.<br/>Settings:  JobSettings contains all the transcode settings for a job.:<br/>Role:  Required. The IAM role you use for creating this job. For details about permissions, see the User Guide topic at the User Guide at https://docs.aws.amazon.com/mediaconvert/latest/ug/iam-role.html.<br/>Queue:  Optional. When you create a job, you can specify a queue to send it to. If you don't specify, the job will go to the default queue. For more about queues, see the User Guide topic at https://docs.aws.amazon.com/mediaconvert/latest/ug/what-is.html.<br/>Priority:  Optional. Specify the relative priority for this job. In any given queue, the service begins processing the job with the highest value first. When more than one job has the same priority, the service begins processing the job that you submitted first. If you don't specify a priority, the service uses the default value 0.<br/>JobTemplate:  Optional. When you create a job, you can either specify a job template or specify the transcoding settings individually.<br/>HopDestinations:  Optional. Use queue hopping to avoid overly long waits in the backlog of the queue that you submit your job to. Specify an alternate queue and the maximum time that your job will wait in the initial queue before hopping. For more information about this feature, see the AWS Elemental MediaConvert User Guide.<br/>ClientRequestToken:  Optional. Idempotency token for CreateJob operation.<br/>BillingTagsSource:  Optional. Choose a tag type that AWS Billing and Cost Management will use to sort your AWS Elemental MediaConvert costs on any billing report that you set up. Any transcoding outputs that don't have an associated tag will appear in your billing report unsorted. If you don't choose a valid value for this field, your job outputs will appear on the billing report unsorted.<br/>AccelerationSettings:  Optional. Accelerated transcoding can significantly speed up jobs with long, visually complex content. Outputs that use this feature incur pro-tier pricing. For information about feature limitations, see the AWS Elemental MediaConvert User Guide.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Mode</i> Specify the conditions when the service will run your job with accelerated transcoding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TimedMetadataInsertion</i> Enable Timed metadata insertion (TimedMetadataInsertion) to include ID3 tags in any HLS outputs. To include timed metadata, you must enable it here, enable it in each output container, and specify tags and timecodes in ID3 insertion (Id3Insertion) objects.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TimedMetadataInsertion</b>: Enable Timed metadata insertion (TimedMetadataInsertion) to include ID3 tags in any HLS outputs. To include timed metadata, you must enable it here, enable it in each output container, and specify tags and timecodes in ID3 insertion (Id3Insertion) objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TimecodeConfig</i> These settings control how the service handles timecodes throughout the job. These settings don't affect input clipping.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TimecodeConfig</b>: These settings control how the service handles timecodes throughout the job. These settings don't affect input clipping.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OutputGroups</i> (OutputGroups) contains one group of settings for each set of outputs that share a common package type. All unpackaged files (MPEG-4, MPEG-2 TS, Quicktime, MXF, and no container) are grouped in a single output group as well. Required in (OutputGroups) is a group of settings that apply to the whole group. This required object depends on the value you set for (Type) under (OutputGroups)>(OutputGroupSettings). Type, settings object pairs are as follows. * FILE_GROUP_SETTINGS, FileGroupSettings * HLS_GROUP_SETTINGS, HlsGroupSettings * DASH_ISO_GROUP_SETTINGS, DashIsoGroupSettings * MS_SMOOTH_GROUP_SETTINGS, MsSmoothGroupSettings * CMAF_GROUP_SETTINGS, CmafGroupSettings<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NielsenNonLinearWatermark</i> Ignore these settings unless you are using Nielsen non-linear watermarking. Specify the values that  MediaConvert uses to generate and place Nielsen watermarks in your output audio. In addition to  specifying these values, you also need to set up your cloud TIC server. These settings apply to  every output in your job. The MediaConvert implementation is currently with the following Nielsen versions: Nielsen Watermark SDK Version 5.2.1 Nielsen NLM Watermark Engine Version 1.2.7 Nielsen Watermark Authenticator [SID_TIC] Version [5.0.0]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>NielsenNonLinearWatermark</b>: Ignore these settings unless you are using Nielsen non-linear watermarking. Specify the values that  MediaConvert uses to generate and place Nielsen watermarks in your output audio. In addition to  specifying these values, you also need to set up your cloud TIC server. These settings apply to  every output in your job. The MediaConvert implementation is currently with the following Nielsen versions: Nielsen Watermark SDK Version 5.2.1 Nielsen NLM Watermark Engine Version 1.2.7 Nielsen Watermark Authenticator [SID_TIC] Version [5.0.0]<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NielsenConfiguration</i> Settings for your Nielsen configuration. If you don't do Nielsen measurement and analytics, ignore these settings. When you enable Nielsen configuration (nielsenConfiguration), MediaConvert enables PCM to ID3 tagging for all outputs in the job. To enable Nielsen configuration programmatically, include an instance of nielsenConfiguration in your JSON job specification. Even if you don't include any children of nielsenConfiguration, you still enable the setting.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>NielsenConfiguration</b>: Settings for your Nielsen configuration. If you don't do Nielsen measurement and analytics, ignore these settings. When you enable Nielsen configuration (nielsenConfiguration), MediaConvert enables PCM to ID3 tagging for all outputs in the job. To enable Nielsen configuration programmatically, include an instance of nielsenConfiguration in your JSON job specification. Even if you don't include any children of nielsenConfiguration, you still enable the setting.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MotionImageInserter</i> Overlay motion graphics on top of your video. The motion graphics that you specify here appear on all outputs in all output groups. For more information, see https://docs.aws.amazon.com/mediaconvert/latest/ug/motion-graphic-overlay.html.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>MotionImageInserter</b>: Overlay motion graphics on top of your video. The motion graphics that you specify here appear on all outputs in all output groups. For more information, see https://docs.aws.amazon.com/mediaconvert/latest/ug/motion-graphic-overlay.html.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KantarWatermark</i> Use these settings only when you use Kantar watermarking. Specify the values that MediaConvert uses to generate and place Kantar watermarks in your output audio. These settings apply to every output in your job. In addition to specifying these values, you also need to store your Kantar credentials in AWS Secrets Manager. For more information, see https://docs.aws.amazon.com/mediaconvert/latest/ug/kantar-watermarking.html.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>KantarWatermark</b>: Use these settings only when you use Kantar watermarking. Specify the values that MediaConvert uses to generate and place Kantar watermarks in your output audio. These settings apply to every output in your job. In addition to specifying these values, you also need to store your Kantar credentials in AWS Secrets Manager. For more information, see https://docs.aws.amazon.com/mediaconvert/latest/ug/kantar-watermarking.html.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Inputs</i> Use Inputs (inputs) to define source file used in the transcode job. There can be multiple inputs add in a job. These inputs will be concantenated together to create the output.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Esam</i> Settings for Event Signaling And Messaging (ESAM). If you don't do ad insertion, you can ignore these settings.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Esam</b>: Settings for Event Signaling And Messaging (ESAM). If you don't do ad insertion, you can ignore these settings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailBlanking</i> Settings for ad avail blanking.  Video can be blanked or overlaid with an image, and audio muted during SCTE-35 triggered ad avails.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AvailBlanking</b>: Settings for ad avail blanking.  Video can be blanked or overlaid with an image, and audio muted during SCTE-35 triggered ad avails.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdAvailOffset</i> When specified, this offset (in milliseconds) is added to the input Ad Avail PTS time.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailBlankingImage</i> Blanking image to be used. Leave empty for solid black. Only bmp and png images are supported.<br/>Specifies an ESAM ManifestConfirmConditionNotification XML as per OC-SP-ESAM-API-I03-131025. The transcoder uses the manifest conditioning instructions that you provide in the setting MCC XML (mccXml).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ManifestConfirmConditionNotification</b>: Specifies an ESAM ManifestConfirmConditionNotification XML as per OC-SP-ESAM-API-I03-131025. The transcoder uses the manifest conditioning instructions that you provide in the setting MCC XML (mccXml).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Metadata8</i> Additional metadata that MediaConvert sends to Kantar. Maximum length is 50 characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Metadata7</i> Additional metadata that MediaConvert sends to Kantar. Maximum length is 50 characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Metadata6</i> Additional metadata that MediaConvert sends to Kantar. Maximum length is 50 characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Metadata5</i> Additional metadata that MediaConvert sends to Kantar. Maximum length is 50 characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Metadata4</i> Additional metadata that MediaConvert sends to Kantar. Maximum length is 50 characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Metadata3</i> You can optionally use this field to specify the first timestamp that Kantar embeds during watermarking. Kantar suggests that you be very cautious when using this Kantar feature, and that you use it only on channels that are managed specifically for use with this feature by your Audience Measurement Operator. For more information about this feature, contact Kantar technical support.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LogDestination</i> Optional. Specify the Amazon S3 bucket where you want MediaConvert to store your Kantar watermark XML logs. When you don't specify a bucket, MediaConvert doesn't save these logs. Note that your MediaConvert service role must provide access to this location. For more information, see https://docs.aws.amazon.com/mediaconvert/latest/ug/iam-role.html<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KantarServerUrl</i> Provide the HTTPS endpoint to the Kantar server. You should get this endpoint from Kantar.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KantarLicenseId</i> Provide your Kantar license ID number. You should get this number from Kantar.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FileOffset</i> Optional. Specify an offset, in whole seconds, from the start of your output and the beginning of the watermarking. When you don't specify an offset, Kantar defaults to zero.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CredentialsSecretName</i> Provide the name of the AWS Secrets Manager secret where your Kantar credentials are stored. Note that your MediaConvert service role must provide access to this secret. For more information, see https://docs.aws.amazon.com/mediaconvert/latest/ug/granting-permissions-for-mediaconvert-to-access-secrets-manager-secret.html. For instructions on creating a secret, see https://docs.aws.amazon.com/secretsmanager/latest/userguide/tutorials_basic.html, in the AWS Secrets Manager User Guide.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ContentReference</i> Specify a unique identifier for Kantar to use for this piece of content.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ChannelName</i> Provide an audio channel name from your Kantar audio license.<br/>If your motion graphic asset is a .mov file, keep this setting unspecified. If your motion graphic asset is a series of .png files, specify the frame rate of the overlay in frames per second, as a fraction. For example, specify 24 fps as 24/1. Make sure that the number of images in your series matches the frame rate and your intended overlay duration. For example, if you want a 30-second overlay at 30 fps, you should have 900 .png images. This overlay frame rate doesn't need to match the frame rate of the underlying video.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Framerate</b>: If your motion graphic asset is a .mov file, keep this setting unspecified. If your motion graphic asset is a series of .png files, specify the frame rate of the overlay in frames per second, as a fraction. For example, specify 24 fps as 24/1. Make sure that the number of images in your series matches the frame rate and your intended overlay duration. For example, if you want a 30-second overlay at 30 fps, you should have 900 .png images. This overlay frame rate doesn't need to match the frame rate of the underlying video.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DistributorId</i> Use Distributor ID (DistributorID) to specify the distributor ID that is assigned to your organization by Neilsen.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BreakoutCode</i> Nielsen has discontinued the use of breakout code functionality. If you must include this property, set the value to zero.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UniqueTicPerAudioTrack</i> To create assets that have the same TIC values in each audio track, keep the default value Share TICs (SAME_TICS_PER_TRACK). To create assets that have unique TIC values for each audio track, choose Use unique TICs (RESERVE_UNIQUE_TICS_PER_TRACK).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TicServerUrl</i> Specify the endpoint for the TIC server that you have deployed and configured in the AWS Cloud. Required for all Nielsen non-linear watermarking. MediaConvert can't connect directly to a TIC server. Instead, you must use API Gateway to provide a RESTful interface between MediaConvert and a TIC server that you deploy in your AWS account. For more information on deploying a TIC server in your AWS account and the required API Gateway, contact Nielsen support.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceWatermarkStatus</i> Required. Specify whether your source content already contains Nielsen non-linear watermarks. When you set this value to Watermarked (WATERMARKED), the service fails the job. Nielsen requires that you add non-linear watermarking to only clean content that doesn't already  have non-linear Nielsen watermarks.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceId</i> Use the SID that Nielsen provides to you. This source ID should be unique to your Nielsen account but common to all of your output assets. Required for all Nielsen non-linear watermarking. This ID should be unique to your Nielsen account but common to all of your output assets. Required for all Nielsen non-linear watermarking.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MetadataDestination</i> Specify the Amazon S3 location where you want MediaConvert to save your Nielsen non-linear metadata .zip file. This Amazon S3 bucket must be in the same Region as the one where you do your MediaConvert transcoding. If you want to include an ADI file in this .zip file, use the setting ADI file (adiFilename) to specify it. MediaConvert delivers the Nielsen metadata .zip files only to your metadata destination Amazon S3 bucket. It doesn't deliver the .zip files to Nielsen. You are responsible for delivering the metadata .zip files to Nielsen.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EpisodeId</i> Optional. If this asset uses an episode ID with Nielsen, provide it here.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CbetSourceId</i> Use the CSID that Nielsen provides to you. This CBET source ID should be unique to your Nielsen account but common to all of your output assets that have CBET watermarking. Required when you choose a value for the setting Watermark types (ActiveWatermarkProcess) that includes CBET.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AssetName</i> Use the asset name that you provide to Nielsen for this asset. Required for all Nielsen non-linear watermarking.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AssetId</i> Use the asset ID that you provide to Nielsen to uniquely identify this asset. Required for all Nielsen non-linear watermarking.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AdiFilename</i> Optional. Use this setting when you want the service to include an ADI file in the Nielsen  metadata .zip file. To provide an ADI file, store it in Amazon S3 and provide a URL to it  here. The URL should be in the following format: S3://bucket/path/ADI-file. For more information about the metadata .zip file, see the setting Metadata destination (metadataDestination).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ActiveWatermarkProcess</i> Choose the type of Nielsen watermarks that you want in your outputs. When you choose NAES 2 and NW (NAES2_AND_NW), you must provide a value for the setting SID (sourceId). When you choose CBET (CBET), you must provide a value for the setting CSID (cbetSourceId). When you choose NAES 2, NW, and CBET (NAES2_AND_NW_AND_CBET), you must provide values for both of these settings.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TimestampOffset</i> Only applies to outputs that support program-date-time stamp. Use Timestamp offset (TimestampOffset) to overwrite the timecode date without affecting the time and frame number. Provide the new date as a string in the format "yyyy-mm-dd".  To use Time stamp offset, you must also enable Insert program-date-time (InsertProgramDateTime) in the output settings. For example, if the date part of your timecodes is 2002-1-25 and you want to change it to one year later, set Timestamp offset (TimestampOffset) to 2003-1-25.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Start</i> Only use when you set Source (TimecodeSource) to Specified start (SPECIFIEDSTART). Use Start timecode (Start) to specify the timecode for the initial frame. Use 24-hour format with frame number, (HH:MM:SS:FF) or (HH:MM:SS;FF).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Source</i> Use Source (TimecodeSource) to set how timecodes are handled within this job. To make sure that your video, audio, captions, and markers are synchronized and that time-based features, such as image inserter, work correctly, choose the Timecode source option that matches your assets. All timecodes are in a 24-hour format with frame number (HH:MM:SS:FF). * Embedded (EMBEDDED) - Use the timecode that is in the input video. If no embedded timecode is in the source, the service will use Start at 0 (ZEROBASED) instead. * Start at 0 (ZEROBASED) - Set the timecode of the initial frame to 00:00:00:00. * Specified Start (SPECIFIEDSTART) - Set the timecode of the initial frame to a value other than zero. You use Start timecode (Start) to provide this value.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Anchor</i> If you use an editing platform that relies on an anchor timecode, use Anchor Timecode (Anchor) to specify a timecode that will match the input video frame to the output video frame. Use 24-hour format with frame number, (HH:MM:SS:FF) or (HH:MM:SS;FF). This setting ignores frame rate conversion. System behavior for Anchor Timecode varies depending on your setting for Source (TimecodeSource). * If Source (TimecodeSource) is set to Specified Start (SPECIFIEDSTART), the first input frame is the specified value in Start Timecode (Start). Anchor Timecode (Anchor) and Start Timecode (Start) are used calculate output timecode. * If Source (TimecodeSource) is set to Start at 0 (ZEROBASED)  the  first frame is 00:00:00:00. * If Source (TimecodeSource) is set to Embedded (EMBEDDED), the  first frame is the timecode value on the first input frame of the input.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Id3Insertions</i> Id3Insertions contains the array of Id3Insertion instances.<br/>
        :return: Job:  Each job converts an input file into an output file or files. For more information, see the User Guide at https://docs.aws.amazon.com/mediaconvert/latest/ug/what-is.html:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserMetadata</i> User-defined metadata that you want to associate with an MediaConvert job. You specify metadata in key/value pairs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Timing</i> Information about when jobs are submitted, started, and finished is specified in Unix epoch format in seconds.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Timing</b>: Information about when jobs are submitted, started, and finished is specified in Unix epoch format in seconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusUpdateInterval</i> Specify how often MediaConvert sends STATUS_UPDATE events to Amazon CloudWatch Events. Set the interval, in seconds, between status updates. MediaConvert sends an update at this interval from the time the service begins processing your job to the time it completes the transcode or encounters an error.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> A job's status can be SUBMITTED, PROGRESSING, COMPLETE, CANCELED, or ERROR.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SimulateReservedQueue</i> Enable this setting when you run a test job to estimate how many reserved transcoding slots (RTS) you need. When this is enabled, MediaConvert runs your job from an on-demand queue with similar performance to what you will see with one RTS in a reserved queue. This setting is disabled by default.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Settings</i> JobSettings contains all the transcode settings for a job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Settings</b>: JobSettings contains all the transcode settings for a job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Role</i> The IAM role you use for creating this job. For details about permissions, see the User Guide topic at the User Guide at https://docs.aws.amazon.com/mediaconvert/latest/ug/iam-role.html<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RetryCount</i> The number of times that the service automatically attempted to process your job after encountering an error.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>QueueTransitions</i> The job's queue hopping history.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Queue</i> When you create a job, you can specify a queue to send it to. If you don't specify, the job will go to the default queue. For more about queues, see the User Guide topic at https://docs.aws.amazon.com/mediaconvert/latest/ug/what-is.html<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Priority</i> Relative priority on the job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OutputGroupDetails</i> List of output group details<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Messages</i> Provides messages from the service about jobs that you have already successfully submitted.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Messages</b>: Provides messages from the service about jobs that you have already successfully submitted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobTemplate</i> The job template that the job is created from, if it is created from a job template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobPercentComplete</i> An estimate of how far your job has progressed. This estimate is shown as a percentage of the total time from when your job leaves its queue to when your output files appear in your output Amazon S3 bucket. AWS Elemental MediaConvert provides jobPercentComplete in CloudWatch STATUS_UPDATE events and in the response to GetJob and ListJobs requests. The jobPercentComplete estimate is reliable for the following input containers: Quicktime, Transport Stream, MP4, and MXF. For some jobs, the service can't provide information about job progress. In those cases, jobPercentComplete returns a null value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> A portion of the job's ARN, unique within your AWS Elemental MediaConvert resources<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HopDestinations</i> Optional list of hop destinations.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorMessage</i> Error message of Job<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorCode</i> Error code for the job<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CurrentPhase</i> A job's phase can be PROBING, TRANSCODING OR UPLOADING<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedAt</i> The time, in Unix epoch format in seconds, when the job got created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BillingTagsSource</i> The tag type that AWS Billing and Cost Management will use to sort your AWS Elemental MediaConvert costs on any billing report that you set up.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> An identifier for this resource that is unique within all of AWS.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccelerationStatus</i> Describes whether the current job is running with accelerated transcoding. For jobs that have Acceleration (AccelerationMode) set to DISABLED, AccelerationStatus is always NOT_APPLICABLE. For jobs that have Acceleration (AccelerationMode) set to ENABLED or PREFERRED, AccelerationStatus is one of the other states. AccelerationStatus is IN_PROGRESS initially, while the service determines whether the input files and job settings are compatible with accelerated transcoding. If they are, AcclerationStatus is ACCELERATED. If your input files and job settings aren't compatible with accelerated transcoding, the service either fails your job or runs it without accelerated transcoding, depending on how you set Acceleration (AccelerationMode). When the service runs your job without accelerated transcoding, AccelerationStatus is NOT_ACCELERATED.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccelerationSettings</i> Accelerated transcoding can significantly speed up jobs with long, visually complex content.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AccelerationSettings</b>: Accelerated transcoding can significantly speed up jobs with long, visually complex content.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Mode</i> Specify the conditions when the service will run your job with accelerated transcoding.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Warning</i> List of messages that warn about conditions that might cause your job not to run or to fail.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Info</i> List of messages that are informational only and don't indicate a problem with your job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AdAvailOffset</i> When specified, this offset (in milliseconds) is added to the input Ad Avail PTS time.<br/>Settings for ad avail blanking.  Video can be blanked or overlaid with an image, and audio muted during SCTE-35 triggered ad avails.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AvailBlanking</b>: Settings for ad avail blanking.  Video can be blanked or overlaid with an image, and audio muted during SCTE-35 triggered ad avails.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SubmitTime</i> The time, in Unix epoch format, that you submitted the job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StartTime</i> The time, in Unix epoch format, that transcoding for the job began.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FinishTime</i> The time, in Unix epoch format, that the transcoding job finished<br/>        """
        pass

    def create_job_template(self, Settings: JobTemplateSettings, Name: str, AccelerationSettings: AccelerationSettings=None, Category: str=None, Description: str=None, HopDestinations: List[HopDestination]=None, Priority: int=None, Queue: str=None, StatusUpdateInterval: str=None, Tags: __mapOf__string=None) -> CreateJobTemplateResponse:
        r"""Create a new job template. For information about job templates see the User Guide at http://docs.aws.amazon.com/mediaconvert/latest/ug/what-is.html

        :param self:
        :param Tags:  The tags that you want to add to the resource. You can tag resources with a key-value pair or with only a key.<br/>StatusUpdateInterval:  Specify how often MediaConvert sends STATUS_UPDATE events to Amazon CloudWatch Events. Set the interval, in seconds, between status updates. MediaConvert sends an update at this interval from the time the service begins processing your job to the time it completes the transcode or encounters an error.<br/>Settings:  JobTemplateSettings contains all the transcode settings saved in the template that will be applied to jobs created from it.:<br/>Queue:  Optional. The queue that jobs created from this template are assigned to. If you don't specify this, jobs will go to the default queue.<br/>Priority:  Specify the relative priority for this job. In any given queue, the service begins processing the job with the highest value first. When more than one job has the same priority, the service begins processing the job that you submitted first. If you don't specify a priority, the service uses the default value 0.<br/>Name:  The name of the job template you are creating.<br/>HopDestinations:  Optional. Use queue hopping to avoid overly long waits in the backlog of the queue that you submit your job to. Specify an alternate queue and the maximum time that your job will wait in the initial queue before hopping. For more information about this feature, see the AWS Elemental MediaConvert User Guide.<br/>Description:  Optional. A description of the job template you are creating.<br/>Category:  Optional. A category for the job template you are creating<br/>AccelerationSettings:  Accelerated transcoding can significantly speed up jobs with long, visually complex content. Outputs that use this feature incur pro-tier pricing. For information about feature limitations, see the AWS Elemental MediaConvert User Guide.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Mode</i> Specify the conditions when the service will run your job with accelerated transcoding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TimedMetadataInsertion</i> Enable Timed metadata insertion (TimedMetadataInsertion) to include ID3 tags in any HLS outputs. To include timed metadata, you must enable it here, enable it in each output container, and specify tags and timecodes in ID3 insertion (Id3Insertion) objects.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TimedMetadataInsertion</b>: Enable Timed metadata insertion (TimedMetadataInsertion) to include ID3 tags in any HLS outputs. To include timed metadata, you must enable it here, enable it in each output container, and specify tags and timecodes in ID3 insertion (Id3Insertion) objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TimecodeConfig</i> These settings control how the service handles timecodes throughout the job. These settings don't affect input clipping.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TimecodeConfig</b>: These settings control how the service handles timecodes throughout the job. These settings don't affect input clipping.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OutputGroups</i> (OutputGroups) contains one group of settings for each set of outputs that share a common package type. All unpackaged files (MPEG-4, MPEG-2 TS, Quicktime, MXF, and no container) are grouped in a single output group as well. Required in (OutputGroups) is a group of settings that apply to the whole group. This required object depends on the value you set for (Type) under (OutputGroups)>(OutputGroupSettings). Type, settings object pairs are as follows. * FILE_GROUP_SETTINGS, FileGroupSettings * HLS_GROUP_SETTINGS, HlsGroupSettings * DASH_ISO_GROUP_SETTINGS, DashIsoGroupSettings * MS_SMOOTH_GROUP_SETTINGS, MsSmoothGroupSettings * CMAF_GROUP_SETTINGS, CmafGroupSettings<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NielsenNonLinearWatermark</i> Ignore these settings unless you are using Nielsen non-linear watermarking. Specify the values that  MediaConvert uses to generate and place Nielsen watermarks in your output audio. In addition to  specifying these values, you also need to set up your cloud TIC server. These settings apply to  every output in your job. The MediaConvert implementation is currently with the following Nielsen versions: Nielsen Watermark SDK Version 5.2.1 Nielsen NLM Watermark Engine Version 1.2.7 Nielsen Watermark Authenticator [SID_TIC] Version [5.0.0]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>NielsenNonLinearWatermark</b>: Ignore these settings unless you are using Nielsen non-linear watermarking. Specify the values that  MediaConvert uses to generate and place Nielsen watermarks in your output audio. In addition to  specifying these values, you also need to set up your cloud TIC server. These settings apply to  every output in your job. The MediaConvert implementation is currently with the following Nielsen versions: Nielsen Watermark SDK Version 5.2.1 Nielsen NLM Watermark Engine Version 1.2.7 Nielsen Watermark Authenticator [SID_TIC] Version [5.0.0]<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NielsenConfiguration</i> Settings for your Nielsen configuration. If you don't do Nielsen measurement and analytics, ignore these settings. When you enable Nielsen configuration (nielsenConfiguration), MediaConvert enables PCM to ID3 tagging for all outputs in the job. To enable Nielsen configuration programmatically, include an instance of nielsenConfiguration in your JSON job specification. Even if you don't include any children of nielsenConfiguration, you still enable the setting.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>NielsenConfiguration</b>: Settings for your Nielsen configuration. If you don't do Nielsen measurement and analytics, ignore these settings. When you enable Nielsen configuration (nielsenConfiguration), MediaConvert enables PCM to ID3 tagging for all outputs in the job. To enable Nielsen configuration programmatically, include an instance of nielsenConfiguration in your JSON job specification. Even if you don't include any children of nielsenConfiguration, you still enable the setting.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MotionImageInserter</i> Overlay motion graphics on top of your video. The motion graphics that you specify here appear on all outputs in all output groups. For more information, see https://docs.aws.amazon.com/mediaconvert/latest/ug/motion-graphic-overlay.html.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>MotionImageInserter</b>: Overlay motion graphics on top of your video. The motion graphics that you specify here appear on all outputs in all output groups. For more information, see https://docs.aws.amazon.com/mediaconvert/latest/ug/motion-graphic-overlay.html.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KantarWatermark</i> Use these settings only when you use Kantar watermarking. Specify the values that MediaConvert uses to generate and place Kantar watermarks in your output audio. These settings apply to every output in your job. In addition to specifying these values, you also need to store your Kantar credentials in AWS Secrets Manager. For more information, see https://docs.aws.amazon.com/mediaconvert/latest/ug/kantar-watermarking.html.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>KantarWatermark</b>: Use these settings only when you use Kantar watermarking. Specify the values that MediaConvert uses to generate and place Kantar watermarks in your output audio. These settings apply to every output in your job. In addition to specifying these values, you also need to store your Kantar credentials in AWS Secrets Manager. For more information, see https://docs.aws.amazon.com/mediaconvert/latest/ug/kantar-watermarking.html.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Inputs</i> Use Inputs (inputs) to define the source file used in the transcode job. There can only be one input in a job template.  Using the API, you can include multiple inputs when referencing a job template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Esam</i> Settings for Event Signaling And Messaging (ESAM). If you don't do ad insertion, you can ignore these settings.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Esam</b>: Settings for Event Signaling And Messaging (ESAM). If you don't do ad insertion, you can ignore these settings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailBlanking</i> Settings for ad avail blanking.  Video can be blanked or overlaid with an image, and audio muted during SCTE-35 triggered ad avails.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AvailBlanking</b>: Settings for ad avail blanking.  Video can be blanked or overlaid with an image, and audio muted during SCTE-35 triggered ad avails.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdAvailOffset</i> When specified, this offset (in milliseconds) is added to the input Ad Avail PTS time.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailBlankingImage</i> Blanking image to be used. Leave empty for solid black. Only bmp and png images are supported.<br/>Specifies an ESAM ManifestConfirmConditionNotification XML as per OC-SP-ESAM-API-I03-131025. The transcoder uses the manifest conditioning instructions that you provide in the setting MCC XML (mccXml).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ManifestConfirmConditionNotification</b>: Specifies an ESAM ManifestConfirmConditionNotification XML as per OC-SP-ESAM-API-I03-131025. The transcoder uses the manifest conditioning instructions that you provide in the setting MCC XML (mccXml).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Metadata8</i> Additional metadata that MediaConvert sends to Kantar. Maximum length is 50 characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Metadata7</i> Additional metadata that MediaConvert sends to Kantar. Maximum length is 50 characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Metadata6</i> Additional metadata that MediaConvert sends to Kantar. Maximum length is 50 characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Metadata5</i> Additional metadata that MediaConvert sends to Kantar. Maximum length is 50 characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Metadata4</i> Additional metadata that MediaConvert sends to Kantar. Maximum length is 50 characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Metadata3</i> You can optionally use this field to specify the first timestamp that Kantar embeds during watermarking. Kantar suggests that you be very cautious when using this Kantar feature, and that you use it only on channels that are managed specifically for use with this feature by your Audience Measurement Operator. For more information about this feature, contact Kantar technical support.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LogDestination</i> Optional. Specify the Amazon S3 bucket where you want MediaConvert to store your Kantar watermark XML logs. When you don't specify a bucket, MediaConvert doesn't save these logs. Note that your MediaConvert service role must provide access to this location. For more information, see https://docs.aws.amazon.com/mediaconvert/latest/ug/iam-role.html<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KantarServerUrl</i> Provide the HTTPS endpoint to the Kantar server. You should get this endpoint from Kantar.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KantarLicenseId</i> Provide your Kantar license ID number. You should get this number from Kantar.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FileOffset</i> Optional. Specify an offset, in whole seconds, from the start of your output and the beginning of the watermarking. When you don't specify an offset, Kantar defaults to zero.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CredentialsSecretName</i> Provide the name of the AWS Secrets Manager secret where your Kantar credentials are stored. Note that your MediaConvert service role must provide access to this secret. For more information, see https://docs.aws.amazon.com/mediaconvert/latest/ug/granting-permissions-for-mediaconvert-to-access-secrets-manager-secret.html. For instructions on creating a secret, see https://docs.aws.amazon.com/secretsmanager/latest/userguide/tutorials_basic.html, in the AWS Secrets Manager User Guide.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ContentReference</i> Specify a unique identifier for Kantar to use for this piece of content.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ChannelName</i> Provide an audio channel name from your Kantar audio license.<br/>If your motion graphic asset is a .mov file, keep this setting unspecified. If your motion graphic asset is a series of .png files, specify the frame rate of the overlay in frames per second, as a fraction. For example, specify 24 fps as 24/1. Make sure that the number of images in your series matches the frame rate and your intended overlay duration. For example, if you want a 30-second overlay at 30 fps, you should have 900 .png images. This overlay frame rate doesn't need to match the frame rate of the underlying video.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Framerate</b>: If your motion graphic asset is a .mov file, keep this setting unspecified. If your motion graphic asset is a series of .png files, specify the frame rate of the overlay in frames per second, as a fraction. For example, specify 24 fps as 24/1. Make sure that the number of images in your series matches the frame rate and your intended overlay duration. For example, if you want a 30-second overlay at 30 fps, you should have 900 .png images. This overlay frame rate doesn't need to match the frame rate of the underlying video.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DistributorId</i> Use Distributor ID (DistributorID) to specify the distributor ID that is assigned to your organization by Neilsen.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BreakoutCode</i> Nielsen has discontinued the use of breakout code functionality. If you must include this property, set the value to zero.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UniqueTicPerAudioTrack</i> To create assets that have the same TIC values in each audio track, keep the default value Share TICs (SAME_TICS_PER_TRACK). To create assets that have unique TIC values for each audio track, choose Use unique TICs (RESERVE_UNIQUE_TICS_PER_TRACK).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TicServerUrl</i> Specify the endpoint for the TIC server that you have deployed and configured in the AWS Cloud. Required for all Nielsen non-linear watermarking. MediaConvert can't connect directly to a TIC server. Instead, you must use API Gateway to provide a RESTful interface between MediaConvert and a TIC server that you deploy in your AWS account. For more information on deploying a TIC server in your AWS account and the required API Gateway, contact Nielsen support.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceWatermarkStatus</i> Required. Specify whether your source content already contains Nielsen non-linear watermarks. When you set this value to Watermarked (WATERMARKED), the service fails the job. Nielsen requires that you add non-linear watermarking to only clean content that doesn't already  have non-linear Nielsen watermarks.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceId</i> Use the SID that Nielsen provides to you. This source ID should be unique to your Nielsen account but common to all of your output assets. Required for all Nielsen non-linear watermarking. This ID should be unique to your Nielsen account but common to all of your output assets. Required for all Nielsen non-linear watermarking.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MetadataDestination</i> Specify the Amazon S3 location where you want MediaConvert to save your Nielsen non-linear metadata .zip file. This Amazon S3 bucket must be in the same Region as the one where you do your MediaConvert transcoding. If you want to include an ADI file in this .zip file, use the setting ADI file (adiFilename) to specify it. MediaConvert delivers the Nielsen metadata .zip files only to your metadata destination Amazon S3 bucket. It doesn't deliver the .zip files to Nielsen. You are responsible for delivering the metadata .zip files to Nielsen.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EpisodeId</i> Optional. If this asset uses an episode ID with Nielsen, provide it here.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CbetSourceId</i> Use the CSID that Nielsen provides to you. This CBET source ID should be unique to your Nielsen account but common to all of your output assets that have CBET watermarking. Required when you choose a value for the setting Watermark types (ActiveWatermarkProcess) that includes CBET.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AssetName</i> Use the asset name that you provide to Nielsen for this asset. Required for all Nielsen non-linear watermarking.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AssetId</i> Use the asset ID that you provide to Nielsen to uniquely identify this asset. Required for all Nielsen non-linear watermarking.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AdiFilename</i> Optional. Use this setting when you want the service to include an ADI file in the Nielsen  metadata .zip file. To provide an ADI file, store it in Amazon S3 and provide a URL to it  here. The URL should be in the following format: S3://bucket/path/ADI-file. For more information about the metadata .zip file, see the setting Metadata destination (metadataDestination).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ActiveWatermarkProcess</i> Choose the type of Nielsen watermarks that you want in your outputs. When you choose NAES 2 and NW (NAES2_AND_NW), you must provide a value for the setting SID (sourceId). When you choose CBET (CBET), you must provide a value for the setting CSID (cbetSourceId). When you choose NAES 2, NW, and CBET (NAES2_AND_NW_AND_CBET), you must provide values for both of these settings.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TimestampOffset</i> Only applies to outputs that support program-date-time stamp. Use Timestamp offset (TimestampOffset) to overwrite the timecode date without affecting the time and frame number. Provide the new date as a string in the format "yyyy-mm-dd".  To use Time stamp offset, you must also enable Insert program-date-time (InsertProgramDateTime) in the output settings. For example, if the date part of your timecodes is 2002-1-25 and you want to change it to one year later, set Timestamp offset (TimestampOffset) to 2003-1-25.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Start</i> Only use when you set Source (TimecodeSource) to Specified start (SPECIFIEDSTART). Use Start timecode (Start) to specify the timecode for the initial frame. Use 24-hour format with frame number, (HH:MM:SS:FF) or (HH:MM:SS;FF).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Source</i> Use Source (TimecodeSource) to set how timecodes are handled within this job. To make sure that your video, audio, captions, and markers are synchronized and that time-based features, such as image inserter, work correctly, choose the Timecode source option that matches your assets. All timecodes are in a 24-hour format with frame number (HH:MM:SS:FF). * Embedded (EMBEDDED) - Use the timecode that is in the input video. If no embedded timecode is in the source, the service will use Start at 0 (ZEROBASED) instead. * Start at 0 (ZEROBASED) - Set the timecode of the initial frame to 00:00:00:00. * Specified Start (SPECIFIEDSTART) - Set the timecode of the initial frame to a value other than zero. You use Start timecode (Start) to provide this value.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Anchor</i> If you use an editing platform that relies on an anchor timecode, use Anchor Timecode (Anchor) to specify a timecode that will match the input video frame to the output video frame. Use 24-hour format with frame number, (HH:MM:SS:FF) or (HH:MM:SS;FF). This setting ignores frame rate conversion. System behavior for Anchor Timecode varies depending on your setting for Source (TimecodeSource). * If Source (TimecodeSource) is set to Specified Start (SPECIFIEDSTART), the first input frame is the specified value in Start Timecode (Start). Anchor Timecode (Anchor) and Start Timecode (Start) are used calculate output timecode. * If Source (TimecodeSource) is set to Start at 0 (ZEROBASED)  the  first frame is 00:00:00:00. * If Source (TimecodeSource) is set to Embedded (EMBEDDED), the  first frame is the timecode value on the first input frame of the input.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Id3Insertions</i> Id3Insertions contains the array of Id3Insertion instances.<br/>
        :return: JobTemplate:  A job template is a pre-made set of encoding instructions that you can use to quickly create a job.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> A job template can be of two types: system or custom. System or built-in job templates can't be modified or deleted by the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusUpdateInterval</i> Specify how often MediaConvert sends STATUS_UPDATE events to Amazon CloudWatch Events. Set the interval, in seconds, between status updates. MediaConvert sends an update at this interval from the time the service begins processing your job to the time it completes the transcode or encounters an error.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Settings</i> JobTemplateSettings contains all the transcode settings saved in the template that will be applied to jobs created from it.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Settings</b>: JobTemplateSettings contains all the transcode settings saved in the template that will be applied to jobs created from it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Queue</i> Optional. The queue that jobs created from this template are assigned to. If you don't specify this, jobs will go to the default queue.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Priority</i> Relative priority on the job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A name you create for each job template. Each name must be unique within your account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdated</i> The timestamp in epoch seconds when the Job template was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HopDestinations</i> Optional list of hop destinations.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> An optional description you create for each job template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedAt</i> The timestamp in epoch seconds for Job template creation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Category</i> An optional category you create to organize your job templates.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> An identifier for this resource that is unique within all of AWS.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccelerationSettings</i> Accelerated transcoding can significantly speed up jobs with long, visually complex content.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AccelerationSettings</b>: Accelerated transcoding can significantly speed up jobs with long, visually complex content.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Mode</i> Specify the conditions when the service will run your job with accelerated transcoding.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AdAvailOffset</i> When specified, this offset (in milliseconds) is added to the input Ad Avail PTS time.<br/>Settings for ad avail blanking.  Video can be blanked or overlaid with an image, and audio muted during SCTE-35 triggered ad avails.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AvailBlanking</b>: Settings for ad avail blanking.  Video can be blanked or overlaid with an image, and audio muted during SCTE-35 triggered ad avails.        """
        pass

    def create_preset(self, Settings: PresetSettings, Name: str, Category: str=None, Description: str=None, Tags: __mapOf__string=None) -> CreatePresetResponse:
        r"""Create a new preset. For information about job templates see the User Guide at http://docs.aws.amazon.com/mediaconvert/latest/ug/what-is.html

        :param self:
        :param Tags:  The tags that you want to add to the resource. You can tag resources with a key-value pair or with only a key.<br/>Settings:  Settings for preset:<br/>Name:  The name of the preset you are creating.<br/>Description:  Optional. A description of the preset you are creating.<br/>Category:  Optional. A category for the preset you are creating.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VideoDescription</i> VideoDescription contains a group of video encoding settings. The specific video settings depend on the video codec that you choose for the property codec. Include one instance of VideoDescription per output.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>VideoDescription</b>: VideoDescription contains a group of video encoding settings. The specific video settings depend on the video codec that you choose for the property codec. Include one instance of VideoDescription per output.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ContainerSettings</i> Container specific settings.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ContainerSettings</b>: Container specific settings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CaptionDescriptions</i> This object holds groups of settings related to captions for one output. For each output that has captions, include one instance of CaptionDescriptions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AudioDescriptions</i> (AudioDescriptions) contains groups of audio encoding settings organized by audio codec. Include one instance of (AudioDescriptions) per output. (AudioDescriptions) can contain multiple groups of encoding settings.<br/>These settings relate to the fragmented MP4 container for the segments in your CMAF outputs.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CmfcSettings</b>: These settings relate to the fragmented MP4 container for the segments in your CMAF outputs.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AntiAlias</i> The anti-alias filter is automatically applied to all outputs. The service no longer accepts the value DISABLED for AntiAlias. If you specify that in your job, the service will ignore the setting.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AfdSignaling</i> This setting only applies to H.264, H.265, and MPEG2 outputs. Use Insert AFD signaling (AfdSignaling) to specify whether the service includes AFD values in the output video data and what those values are. * Choose None to remove all AFD values from this output. * Choose Fixed to ignore input AFD values and instead encode the value specified in the job. * Choose Auto to calculate output AFD values based on the input AFD scaler data.<br/>Video codec settings, (CodecSettings) under (VideoDescription), contains the group of settings related to video encoding. The settings in this group vary depending on the value that you choose for Video codec (Codec). For each codec enum that you choose, define the corresponding settings object. The following lists the codec enum, settings object pairs. * AV1, Av1Settings * AVC_INTRA, AvcIntraSettings * FRAME_CAPTURE, FrameCaptureSettings * H_264, H264Settings * H_265, H265Settings * MPEG2, Mpeg2Settings * PRORES, ProresSettings * VC3, Vc3Settings * VP8, Vp8Settings * VP9, Vp9Settings * XAVC, XavcSettings&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CodecSettings</b>: Video codec settings, (CodecSettings) under (VideoDescription), contains the group of settings related to video encoding. The settings in this group vary depending on the value that you choose for Video codec (Codec). For each codec enum that you choose, define the corresponding settings object. The following lists the codec enum, settings object pairs. * AV1, Av1Settings * AVC_INTRA, AvcIntraSettings * FRAME_CAPTURE, FrameCaptureSettings * H_264, H264Settings * H_265, H265Settings * MPEG2, Mpeg2Settings * PRORES, ProresSettings * VC3, Vc3Settings * VP8, Vp8Settings * VP9, Vp9Settings * XAVC, XavcSettings
        :return: Preset:  A preset is a collection of preconfigured media conversion settings that you want MediaConvert to apply to the output during the conversion process.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> A preset can be of two types: system or custom. System or built-in preset can't be modified or deleted by the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Settings</i> Settings for preset&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Settings</b>: Settings for preset<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A name you create for each preset. Each name must be unique within your account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdated</i> The timestamp in epoch seconds when the preset was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> An optional description you create for each preset.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedAt</i> The timestamp in epoch seconds for preset creation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Category</i> An optional category you create to organize your presets.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> An identifier for this resource that is unique within all of AWS.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CaptionDescriptions</i> This object holds groups of settings related to captions for one output. For each output that has captions, include one instance of CaptionDescriptions.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AudioDescriptions</i> (AudioDescriptions) contains groups of audio encoding settings organized by audio codec. Include one instance of (AudioDescriptions) per output. (AudioDescriptions) can contain multiple groups of encoding settings.<br/>Container specific settings.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ContainerSettings</b>: Container specific settings.        """
        pass

    def create_queue(self, Name: str, Description: str=None, PricingPlan: str=None, ReservationPlanSettings: ReservationPlanSettings=None, Status: str=None, Tags: __mapOf__string=None) -> CreateQueueResponse:
        r"""Create a new transcoding queue. For information about queues, see Working With Queues in the User Guide at https://docs.aws.amazon.com/mediaconvert/latest/ug/working-with-queues.html

        :param self:
        :param Tags:  The tags that you want to add to the resource. You can tag resources with a key-value pair or with only a key.<br/>Status:  Initial state of the queue. If you create a paused queue, then jobs in that queue won't begin.<br/>ReservationPlanSettings:  Details about the pricing plan for your reserved queue. Required for reserved queues and not applicable to on-demand queues.:<br/>PricingPlan:  Specifies whether the pricing plan for the queue is on-demand or reserved. For on-demand, you pay per minute, billed in increments of .01 minute. For reserved, you pay for the transcoding capacity of the entire queue, regardless of how much or how little you use it. Reserved pricing requires a 12-month commitment. When you use the API to create a queue, the default is on-demand.<br/>Name:  The name of the queue that you are creating.<br/>Description:  Optional. A description of the queue that you are creating.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReservedSlots</i> Specifies the number of reserved transcode slots (RTS) for this queue. The number of RTS determines how many jobs the queue can process in parallel; each RTS can process one job at a time. You can't decrease the number of RTS in your reserved queue. You can increase the number of RTS by extending your existing commitment with a new 12-month commitment for the larger number. The new commitment begins when you purchase the additional capacity. You can't cancel your commitment or revert to your original commitment after you increase the capacity.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RenewalType</i> Specifies whether the term of your reserved queue pricing plan is automatically extended (AUTO_RENEW) or expires (EXPIRE) at the end of the term. When your term is auto renewed, you extend your commitment by 12 months from the auto renew date. You can cancel this commitment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Commitment</i> The length of the term of your reserved queue pricing plan commitment.<br/>
        :return: Queue:  You can use queues to manage the resources that are available to your AWS account for running multiple transcoding jobs at the same time. If you don't specify a queue, the service sends all jobs through the default queue. For more information, see https://docs.aws.amazon.com/mediaconvert/latest/ug/working-with-queues.html.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> Specifies whether this on-demand queue is system or custom. System queues are built in. You can't modify or delete system queues. You can create and modify custom queues.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubmittedJobsCount</i> The estimated number of jobs with a SUBMITTED status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Queues can be ACTIVE or PAUSED. If you pause a queue, the service won't begin processing jobs in that queue. Jobs that are running when you pause the queue continue to run until they finish or result in an error.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReservationPlan</i> Details about the pricing plan for your reserved queue. Required for reserved queues and not applicable to on-demand queues.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ReservationPlan</b>: Details about the pricing plan for your reserved queue. Required for reserved queues and not applicable to on-demand queues.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProgressingJobsCount</i> The estimated number of jobs with a PROGRESSING status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PricingPlan</i> Specifies whether the pricing plan for the queue is on-demand or reserved. For on-demand, you pay per minute, billed in increments of .01 minute. For reserved, you pay for the transcoding capacity of the entire queue, regardless of how much or how little you use it. Reserved pricing requires a 12-month commitment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A name that you create for each queue. Each name must be unique within your account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdated</i> The timestamp in epoch seconds for when you most recently updated the queue.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> An optional description that you create for each queue.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedAt</i> The timestamp in epoch seconds for when you created the queue.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> An identifier for this resource that is unique within all of AWS.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Specifies whether the pricing plan for your reserved queue is ACTIVE or EXPIRED.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReservedSlots</i> Specifies the number of reserved transcode slots (RTS) for this queue. The number of RTS determines how many jobs the queue can process in parallel; each RTS can process one job at a time. When you increase this number, you extend your existing commitment with a new 12-month commitment for a larger number of RTS. The new commitment begins when you purchase the additional capacity. You can't decrease the number of RTS in your reserved queue.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RenewalType</i> Specifies whether the term of your reserved queue pricing plan is automatically extended (AUTO_RENEW) or expires (EXPIRE) at the end of the term.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PurchasedAt</i> The timestamp in epoch seconds for when you set up the current pricing plan for this reserved queue.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ExpiresAt</i> The timestamp in epoch seconds for when the current pricing plan term for this reserved queue expires.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Commitment</i> The length of the term of your reserved queue pricing plan commitment.<br/>        """
        pass

    def delete_job_template(self, Name: str) -> DeleteJobTemplateResponse:
        r"""Permanently delete a job template you have created.

        :param self:
        :param Name:  The name of the job template to be deleted.<br/>
        :return:         """
        pass

    def delete_preset(self, Name: str) -> DeletePresetResponse:
        r"""Permanently delete a preset you have created.

        :param self:
        :param Name:  The name of the preset to be deleted.<br/>
        :return:         """
        pass

    def delete_queue(self, Name: str) -> DeleteQueueResponse:
        r"""Permanently delete a queue you have created.

        :param self:
        :param Name:  The name of the queue that you want to delete.<br/>
        :return:         """
        pass

    def describe_endpoints(self, MaxResults: int=None, Mode: str=None, NextToken: str=None) -> DescribeEndpointsResponse:
        r"""Send an request with an empty body to the regional API endpoint to get your account API endpoint.

        :param self:
        :param NextToken:  Use this string, provided with the response to a previous request, to request the next batch of endpoints.<br/>Mode:  Optional field, defaults to DEFAULT. Specify DEFAULT for this operation to return your endpoints if any exist, or to create an endpoint for you and return it if one doesn't already exist. Specify GET_ONLY to return your endpoints if any exist, or an empty list if none exist.<br/>MaxResults:  Optional. Max number of endpoints, up to twenty, that will be returned at one time.<br/>
        :return: NextToken:  Use this string to request the next batch of endpoints.<br/>Endpoints:  List of endpoints<br/>        """
        pass

    def disassociate_certificate(self, Arn: str) -> DisassociateCertificateResponse:
        r"""Removes an association between the Amazon Resource Name (ARN) of an AWS Certificate Manager (ACM) certificate and an AWS Elemental MediaConvert resource.

        :param self:
        :param Arn:  The ARN of the ACM certificate that you want to disassociate from your MediaConvert resource.<br/>
        :return:         """
        pass

    def get_job(self, Id: str) -> GetJobResponse:
        r"""Retrieve the JSON for a specific completed transcoding job.

        :param self:
        :param Id:  the job ID of the job.<br/>
        :return: Job:  Each job converts an input file into an output file or files. For more information, see the User Guide at https://docs.aws.amazon.com/mediaconvert/latest/ug/what-is.html:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserMetadata</i> User-defined metadata that you want to associate with an MediaConvert job. You specify metadata in key/value pairs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Timing</i> Information about when jobs are submitted, started, and finished is specified in Unix epoch format in seconds.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Timing</b>: Information about when jobs are submitted, started, and finished is specified in Unix epoch format in seconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusUpdateInterval</i> Specify how often MediaConvert sends STATUS_UPDATE events to Amazon CloudWatch Events. Set the interval, in seconds, between status updates. MediaConvert sends an update at this interval from the time the service begins processing your job to the time it completes the transcode or encounters an error.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> A job's status can be SUBMITTED, PROGRESSING, COMPLETE, CANCELED, or ERROR.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SimulateReservedQueue</i> Enable this setting when you run a test job to estimate how many reserved transcoding slots (RTS) you need. When this is enabled, MediaConvert runs your job from an on-demand queue with similar performance to what you will see with one RTS in a reserved queue. This setting is disabled by default.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Settings</i> JobSettings contains all the transcode settings for a job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Settings</b>: JobSettings contains all the transcode settings for a job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Role</i> The IAM role you use for creating this job. For details about permissions, see the User Guide topic at the User Guide at https://docs.aws.amazon.com/mediaconvert/latest/ug/iam-role.html<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RetryCount</i> The number of times that the service automatically attempted to process your job after encountering an error.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>QueueTransitions</i> The job's queue hopping history.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Queue</i> When you create a job, you can specify a queue to send it to. If you don't specify, the job will go to the default queue. For more about queues, see the User Guide topic at https://docs.aws.amazon.com/mediaconvert/latest/ug/what-is.html<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Priority</i> Relative priority on the job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OutputGroupDetails</i> List of output group details<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Messages</i> Provides messages from the service about jobs that you have already successfully submitted.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Messages</b>: Provides messages from the service about jobs that you have already successfully submitted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobTemplate</i> The job template that the job is created from, if it is created from a job template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobPercentComplete</i> An estimate of how far your job has progressed. This estimate is shown as a percentage of the total time from when your job leaves its queue to when your output files appear in your output Amazon S3 bucket. AWS Elemental MediaConvert provides jobPercentComplete in CloudWatch STATUS_UPDATE events and in the response to GetJob and ListJobs requests. The jobPercentComplete estimate is reliable for the following input containers: Quicktime, Transport Stream, MP4, and MXF. For some jobs, the service can't provide information about job progress. In those cases, jobPercentComplete returns a null value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> A portion of the job's ARN, unique within your AWS Elemental MediaConvert resources<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HopDestinations</i> Optional list of hop destinations.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorMessage</i> Error message of Job<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorCode</i> Error code for the job<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CurrentPhase</i> A job's phase can be PROBING, TRANSCODING OR UPLOADING<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedAt</i> The time, in Unix epoch format in seconds, when the job got created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BillingTagsSource</i> The tag type that AWS Billing and Cost Management will use to sort your AWS Elemental MediaConvert costs on any billing report that you set up.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> An identifier for this resource that is unique within all of AWS.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccelerationStatus</i> Describes whether the current job is running with accelerated transcoding. For jobs that have Acceleration (AccelerationMode) set to DISABLED, AccelerationStatus is always NOT_APPLICABLE. For jobs that have Acceleration (AccelerationMode) set to ENABLED or PREFERRED, AccelerationStatus is one of the other states. AccelerationStatus is IN_PROGRESS initially, while the service determines whether the input files and job settings are compatible with accelerated transcoding. If they are, AcclerationStatus is ACCELERATED. If your input files and job settings aren't compatible with accelerated transcoding, the service either fails your job or runs it without accelerated transcoding, depending on how you set Acceleration (AccelerationMode). When the service runs your job without accelerated transcoding, AccelerationStatus is NOT_ACCELERATED.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccelerationSettings</i> Accelerated transcoding can significantly speed up jobs with long, visually complex content.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AccelerationSettings</b>: Accelerated transcoding can significantly speed up jobs with long, visually complex content.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Mode</i> Specify the conditions when the service will run your job with accelerated transcoding.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Warning</i> List of messages that warn about conditions that might cause your job not to run or to fail.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Info</i> List of messages that are informational only and don't indicate a problem with your job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AdAvailOffset</i> When specified, this offset (in milliseconds) is added to the input Ad Avail PTS time.<br/>Settings for ad avail blanking.  Video can be blanked or overlaid with an image, and audio muted during SCTE-35 triggered ad avails.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AvailBlanking</b>: Settings for ad avail blanking.  Video can be blanked or overlaid with an image, and audio muted during SCTE-35 triggered ad avails.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SubmitTime</i> The time, in Unix epoch format, that you submitted the job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StartTime</i> The time, in Unix epoch format, that transcoding for the job began.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FinishTime</i> The time, in Unix epoch format, that the transcoding job finished<br/>        """
        pass

    def get_job_template(self, Name: str) -> GetJobTemplateResponse:
        r"""Retrieve the JSON for a specific job template.

        :param self:
        :param Name:  The name of the job template.<br/>
        :return: JobTemplate:  A job template is a pre-made set of encoding instructions that you can use to quickly create a job.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> A job template can be of two types: system or custom. System or built-in job templates can't be modified or deleted by the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusUpdateInterval</i> Specify how often MediaConvert sends STATUS_UPDATE events to Amazon CloudWatch Events. Set the interval, in seconds, between status updates. MediaConvert sends an update at this interval from the time the service begins processing your job to the time it completes the transcode or encounters an error.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Settings</i> JobTemplateSettings contains all the transcode settings saved in the template that will be applied to jobs created from it.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Settings</b>: JobTemplateSettings contains all the transcode settings saved in the template that will be applied to jobs created from it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Queue</i> Optional. The queue that jobs created from this template are assigned to. If you don't specify this, jobs will go to the default queue.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Priority</i> Relative priority on the job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A name you create for each job template. Each name must be unique within your account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdated</i> The timestamp in epoch seconds when the Job template was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HopDestinations</i> Optional list of hop destinations.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> An optional description you create for each job template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedAt</i> The timestamp in epoch seconds for Job template creation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Category</i> An optional category you create to organize your job templates.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> An identifier for this resource that is unique within all of AWS.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccelerationSettings</i> Accelerated transcoding can significantly speed up jobs with long, visually complex content.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AccelerationSettings</b>: Accelerated transcoding can significantly speed up jobs with long, visually complex content.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Mode</i> Specify the conditions when the service will run your job with accelerated transcoding.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AdAvailOffset</i> When specified, this offset (in milliseconds) is added to the input Ad Avail PTS time.<br/>Settings for ad avail blanking.  Video can be blanked or overlaid with an image, and audio muted during SCTE-35 triggered ad avails.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AvailBlanking</b>: Settings for ad avail blanking.  Video can be blanked or overlaid with an image, and audio muted during SCTE-35 triggered ad avails.        """
        pass

    def get_preset(self, Name: str) -> GetPresetResponse:
        r"""Retrieve the JSON for a specific preset.

        :param self:
        :param Name:  The name of the preset.<br/>
        :return: Preset:  A preset is a collection of preconfigured media conversion settings that you want MediaConvert to apply to the output during the conversion process.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> A preset can be of two types: system or custom. System or built-in preset can't be modified or deleted by the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Settings</i> Settings for preset&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Settings</b>: Settings for preset<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A name you create for each preset. Each name must be unique within your account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdated</i> The timestamp in epoch seconds when the preset was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> An optional description you create for each preset.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedAt</i> The timestamp in epoch seconds for preset creation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Category</i> An optional category you create to organize your presets.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> An identifier for this resource that is unique within all of AWS.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CaptionDescriptions</i> This object holds groups of settings related to captions for one output. For each output that has captions, include one instance of CaptionDescriptions.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AudioDescriptions</i> (AudioDescriptions) contains groups of audio encoding settings organized by audio codec. Include one instance of (AudioDescriptions) per output. (AudioDescriptions) can contain multiple groups of encoding settings.<br/>Container specific settings.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ContainerSettings</b>: Container specific settings.        """
        pass

    def get_queue(self, Name: str) -> GetQueueResponse:
        r"""Retrieve the JSON for a specific queue.

        :param self:
        :param Name:  The name of the queue that you want information about.<br/>
        :return: Queue:  You can use queues to manage the resources that are available to your AWS account for running multiple transcoding jobs at the same time. If you don't specify a queue, the service sends all jobs through the default queue. For more information, see https://docs.aws.amazon.com/mediaconvert/latest/ug/working-with-queues.html.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> Specifies whether this on-demand queue is system or custom. System queues are built in. You can't modify or delete system queues. You can create and modify custom queues.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubmittedJobsCount</i> The estimated number of jobs with a SUBMITTED status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Queues can be ACTIVE or PAUSED. If you pause a queue, the service won't begin processing jobs in that queue. Jobs that are running when you pause the queue continue to run until they finish or result in an error.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReservationPlan</i> Details about the pricing plan for your reserved queue. Required for reserved queues and not applicable to on-demand queues.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ReservationPlan</b>: Details about the pricing plan for your reserved queue. Required for reserved queues and not applicable to on-demand queues.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProgressingJobsCount</i> The estimated number of jobs with a PROGRESSING status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PricingPlan</i> Specifies whether the pricing plan for the queue is on-demand or reserved. For on-demand, you pay per minute, billed in increments of .01 minute. For reserved, you pay for the transcoding capacity of the entire queue, regardless of how much or how little you use it. Reserved pricing requires a 12-month commitment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A name that you create for each queue. Each name must be unique within your account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdated</i> The timestamp in epoch seconds for when you most recently updated the queue.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> An optional description that you create for each queue.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedAt</i> The timestamp in epoch seconds for when you created the queue.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> An identifier for this resource that is unique within all of AWS.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Specifies whether the pricing plan for your reserved queue is ACTIVE or EXPIRED.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReservedSlots</i> Specifies the number of reserved transcode slots (RTS) for this queue. The number of RTS determines how many jobs the queue can process in parallel; each RTS can process one job at a time. When you increase this number, you extend your existing commitment with a new 12-month commitment for a larger number of RTS. The new commitment begins when you purchase the additional capacity. You can't decrease the number of RTS in your reserved queue.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RenewalType</i> Specifies whether the term of your reserved queue pricing plan is automatically extended (AUTO_RENEW) or expires (EXPIRE) at the end of the term.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PurchasedAt</i> The timestamp in epoch seconds for when you set up the current pricing plan for this reserved queue.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ExpiresAt</i> The timestamp in epoch seconds for when the current pricing plan term for this reserved queue expires.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Commitment</i> The length of the term of your reserved queue pricing plan commitment.<br/>        """
        pass

    def list_job_templates(self, Category: str=None, ListBy: str=None, MaxResults: int=None, NextToken: str=None, Order: str=None) -> ListJobTemplatesResponse:
        r"""Retrieve a JSON array of up to twenty of your job templates. This will return the templates themselves, not just a list of them. To retrieve the next twenty templates, use the nextToken string returned with the array

        :param self:
        :param Order:  Optional. When you request lists of resources, you can specify whether they are sorted in ASCENDING or DESCENDING order. Default varies by resource.<br/>NextToken:  Use this string, provided with the response to a previous request, to request the next batch of job templates.<br/>MaxResults:  Optional. Number of job templates, up to twenty, that will be returned at one time.<br/>ListBy:  Optional. When you request a list of job templates, you can choose to list them alphabetically by NAME or chronologically by CREATION_DATE. If you don't specify, the service will list them by name.<br/>Category:  Optionally, specify a job template category to limit responses to only job templates from that category.<br/>
        :return: NextToken:  Use this string to request the next batch of job templates.<br/>JobTemplates:  List of Job templates.<br/>        """
        pass

    def list_jobs(self, MaxResults: int=None, NextToken: str=None, Order: str=None, Queue: str=None, Status: str=None) -> ListJobsResponse:
        r"""Retrieve a JSON array of up to twenty of your most recently created jobs. This array includes in-process, completed, and errored jobs. This will return the jobs themselves, not just a list of the jobs. To retrieve the twenty next most recent jobs, use the nextToken string returned with the array.

        :param self:
        :param Status:  Optional. A job's status can be SUBMITTED, PROGRESSING, COMPLETE, CANCELED, or ERROR.<br/>Queue:  Optional. Provide a queue name to get back only jobs from that queue.<br/>Order:  Optional. When you request lists of resources, you can specify whether they are sorted in ASCENDING or DESCENDING order. Default varies by resource.<br/>NextToken:  Optional. Use this string, provided with the response to a previous request, to request the next batch of jobs.<br/>MaxResults:  Optional. Number of jobs, up to twenty, that will be returned at one time.<br/>
        :return: NextToken:  Use this string to request the next batch of jobs.<br/>Jobs:  List of jobs<br/>        """
        pass

    def list_presets(self, Category: str=None, ListBy: str=None, MaxResults: int=None, NextToken: str=None, Order: str=None) -> ListPresetsResponse:
        r"""Retrieve a JSON array of up to twenty of your presets. This will return the presets themselves, not just a list of them. To retrieve the next twenty presets, use the nextToken string returned with the array.

        :param self:
        :param Order:  Optional. When you request lists of resources, you can specify whether they are sorted in ASCENDING or DESCENDING order. Default varies by resource.<br/>NextToken:  Use this string, provided with the response to a previous request, to request the next batch of presets.<br/>MaxResults:  Optional. Number of presets, up to twenty, that will be returned at one time<br/>ListBy:  Optional. When you request a list of presets, you can choose to list them alphabetically by NAME or chronologically by CREATION_DATE. If you don't specify, the service will list them by name.<br/>Category:  Optionally, specify a preset category to limit responses to only presets from that category.<br/>
        :return: Presets:  List of presets<br/>NextToken:  Use this string to request the next batch of presets.<br/>        """
        pass

    def list_queues(self, ListBy: str=None, MaxResults: int=None, NextToken: str=None, Order: str=None) -> ListQueuesResponse:
        r"""Retrieve a JSON array of up to twenty of your queues. This will return the queues themselves, not just a list of them. To retrieve the next twenty queues, use the nextToken string returned with the array.

        :param self:
        :param Order:  Optional. When you request lists of resources, you can specify whether they are sorted in ASCENDING or DESCENDING order. Default varies by resource.<br/>NextToken:  Use this string, provided with the response to a previous request, to request the next batch of queues.<br/>MaxResults:  Optional. Number of queues, up to twenty, that will be returned at one time.<br/>ListBy:  Optional. When you request a list of queues, you can choose to list them alphabetically by NAME or chronologically by CREATION_DATE. If you don't specify, the service will list them by creation date.<br/>
        :return: Queues:  List of queues.<br/>NextToken:  Use this string to request the next batch of queues.<br/>        """
        pass

    def list_tags_for_resource(self, Arn: str) -> ListTagsForResourceResponse:
        r"""Retrieve the tags for a MediaConvert resource.

        :param self:
        :param Arn:  The Amazon Resource Name (ARN) of the resource that you want to list tags for. To get the ARN, send a GET request with the resource name.<br/>
        :return: ResourceTags:  The Amazon Resource Name (ARN) and tags for an AWS Elemental MediaConvert resource.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The tags for the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the resource.<br/>        """
        pass

    def tag_resource(self, Tags: __mapOf__string, Arn: str) -> TagResourceResponse:
        r"""Add tags to a MediaConvert queue, preset, or job template. For information about tagging, see the User Guide at https://docs.aws.amazon.com/mediaconvert/latest/ug/tagging-resources.html

        :param self:
        :param Tags:  The tags that you want to add to the resource. You can tag resources with a key-value pair or with only a key.<br/>Arn:  The Amazon Resource Name (ARN) of the resource that you want to tag. To get the ARN, send a GET request with the resource name.<br/>
        :return:         """
        pass

    def untag_resource(self, Arn: str, TagKeys: List[__string]=None) -> UntagResourceResponse:
        r"""Remove tags from a MediaConvert queue, preset, or job template. For information about tagging, see the User Guide at https://docs.aws.amazon.com/mediaconvert/latest/ug/tagging-resources.html

        :param self:
        :param TagKeys:  The keys of the tags that you want to remove from the resource.<br/>Arn:  The Amazon Resource Name (ARN) of the resource that you want to remove tags from. To get the ARN, send a GET request with the resource name.<br/>
        :return:         """
        pass

    def update_job_template(self, Name: str, AccelerationSettings: AccelerationSettings=None, Category: str=None, Description: str=None, HopDestinations: List[HopDestination]=None, Priority: int=None, Queue: str=None, Settings: JobTemplateSettings=None, StatusUpdateInterval: str=None) -> UpdateJobTemplateResponse:
        r"""Modify one of your existing job templates.

        :param self:
        :param StatusUpdateInterval:  Specify how often MediaConvert sends STATUS_UPDATE events to Amazon CloudWatch Events. Set the interval, in seconds, between status updates. MediaConvert sends an update at this interval from the time the service begins processing your job to the time it completes the transcode or encounters an error.<br/>Settings:  JobTemplateSettings contains all the transcode settings saved in the template that will be applied to jobs created from it.:<br/>Queue:  The new queue for the job template, if you are changing it.<br/>Priority:  Specify the relative priority for this job. In any given queue, the service begins processing the job with the highest value first. When more than one job has the same priority, the service begins processing the job that you submitted first. If you don't specify a priority, the service uses the default value 0.<br/>Name:  The name of the job template you are modifying<br/>HopDestinations:  Optional list of hop destinations.<br/>Description:  The new description for the job template, if you are changing it.<br/>Category:  The new category for the job template, if you are changing it.<br/>AccelerationSettings:  Accelerated transcoding can significantly speed up jobs with long, visually complex content. Outputs that use this feature incur pro-tier pricing. For information about feature limitations, see the AWS Elemental MediaConvert User Guide.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Mode</i> Specify the conditions when the service will run your job with accelerated transcoding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TimedMetadataInsertion</i> Enable Timed metadata insertion (TimedMetadataInsertion) to include ID3 tags in any HLS outputs. To include timed metadata, you must enable it here, enable it in each output container, and specify tags and timecodes in ID3 insertion (Id3Insertion) objects.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TimedMetadataInsertion</b>: Enable Timed metadata insertion (TimedMetadataInsertion) to include ID3 tags in any HLS outputs. To include timed metadata, you must enable it here, enable it in each output container, and specify tags and timecodes in ID3 insertion (Id3Insertion) objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TimecodeConfig</i> These settings control how the service handles timecodes throughout the job. These settings don't affect input clipping.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TimecodeConfig</b>: These settings control how the service handles timecodes throughout the job. These settings don't affect input clipping.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OutputGroups</i> (OutputGroups) contains one group of settings for each set of outputs that share a common package type. All unpackaged files (MPEG-4, MPEG-2 TS, Quicktime, MXF, and no container) are grouped in a single output group as well. Required in (OutputGroups) is a group of settings that apply to the whole group. This required object depends on the value you set for (Type) under (OutputGroups)>(OutputGroupSettings). Type, settings object pairs are as follows. * FILE_GROUP_SETTINGS, FileGroupSettings * HLS_GROUP_SETTINGS, HlsGroupSettings * DASH_ISO_GROUP_SETTINGS, DashIsoGroupSettings * MS_SMOOTH_GROUP_SETTINGS, MsSmoothGroupSettings * CMAF_GROUP_SETTINGS, CmafGroupSettings<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NielsenNonLinearWatermark</i> Ignore these settings unless you are using Nielsen non-linear watermarking. Specify the values that  MediaConvert uses to generate and place Nielsen watermarks in your output audio. In addition to  specifying these values, you also need to set up your cloud TIC server. These settings apply to  every output in your job. The MediaConvert implementation is currently with the following Nielsen versions: Nielsen Watermark SDK Version 5.2.1 Nielsen NLM Watermark Engine Version 1.2.7 Nielsen Watermark Authenticator [SID_TIC] Version [5.0.0]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>NielsenNonLinearWatermark</b>: Ignore these settings unless you are using Nielsen non-linear watermarking. Specify the values that  MediaConvert uses to generate and place Nielsen watermarks in your output audio. In addition to  specifying these values, you also need to set up your cloud TIC server. These settings apply to  every output in your job. The MediaConvert implementation is currently with the following Nielsen versions: Nielsen Watermark SDK Version 5.2.1 Nielsen NLM Watermark Engine Version 1.2.7 Nielsen Watermark Authenticator [SID_TIC] Version [5.0.0]<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NielsenConfiguration</i> Settings for your Nielsen configuration. If you don't do Nielsen measurement and analytics, ignore these settings. When you enable Nielsen configuration (nielsenConfiguration), MediaConvert enables PCM to ID3 tagging for all outputs in the job. To enable Nielsen configuration programmatically, include an instance of nielsenConfiguration in your JSON job specification. Even if you don't include any children of nielsenConfiguration, you still enable the setting.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>NielsenConfiguration</b>: Settings for your Nielsen configuration. If you don't do Nielsen measurement and analytics, ignore these settings. When you enable Nielsen configuration (nielsenConfiguration), MediaConvert enables PCM to ID3 tagging for all outputs in the job. To enable Nielsen configuration programmatically, include an instance of nielsenConfiguration in your JSON job specification. Even if you don't include any children of nielsenConfiguration, you still enable the setting.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MotionImageInserter</i> Overlay motion graphics on top of your video. The motion graphics that you specify here appear on all outputs in all output groups. For more information, see https://docs.aws.amazon.com/mediaconvert/latest/ug/motion-graphic-overlay.html.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>MotionImageInserter</b>: Overlay motion graphics on top of your video. The motion graphics that you specify here appear on all outputs in all output groups. For more information, see https://docs.aws.amazon.com/mediaconvert/latest/ug/motion-graphic-overlay.html.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KantarWatermark</i> Use these settings only when you use Kantar watermarking. Specify the values that MediaConvert uses to generate and place Kantar watermarks in your output audio. These settings apply to every output in your job. In addition to specifying these values, you also need to store your Kantar credentials in AWS Secrets Manager. For more information, see https://docs.aws.amazon.com/mediaconvert/latest/ug/kantar-watermarking.html.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>KantarWatermark</b>: Use these settings only when you use Kantar watermarking. Specify the values that MediaConvert uses to generate and place Kantar watermarks in your output audio. These settings apply to every output in your job. In addition to specifying these values, you also need to store your Kantar credentials in AWS Secrets Manager. For more information, see https://docs.aws.amazon.com/mediaconvert/latest/ug/kantar-watermarking.html.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Inputs</i> Use Inputs (inputs) to define the source file used in the transcode job. There can only be one input in a job template.  Using the API, you can include multiple inputs when referencing a job template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Esam</i> Settings for Event Signaling And Messaging (ESAM). If you don't do ad insertion, you can ignore these settings.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Esam</b>: Settings for Event Signaling And Messaging (ESAM). If you don't do ad insertion, you can ignore these settings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailBlanking</i> Settings for ad avail blanking.  Video can be blanked or overlaid with an image, and audio muted during SCTE-35 triggered ad avails.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AvailBlanking</b>: Settings for ad avail blanking.  Video can be blanked or overlaid with an image, and audio muted during SCTE-35 triggered ad avails.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdAvailOffset</i> When specified, this offset (in milliseconds) is added to the input Ad Avail PTS time.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailBlankingImage</i> Blanking image to be used. Leave empty for solid black. Only bmp and png images are supported.<br/>Specifies an ESAM ManifestConfirmConditionNotification XML as per OC-SP-ESAM-API-I03-131025. The transcoder uses the manifest conditioning instructions that you provide in the setting MCC XML (mccXml).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ManifestConfirmConditionNotification</b>: Specifies an ESAM ManifestConfirmConditionNotification XML as per OC-SP-ESAM-API-I03-131025. The transcoder uses the manifest conditioning instructions that you provide in the setting MCC XML (mccXml).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Metadata8</i> Additional metadata that MediaConvert sends to Kantar. Maximum length is 50 characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Metadata7</i> Additional metadata that MediaConvert sends to Kantar. Maximum length is 50 characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Metadata6</i> Additional metadata that MediaConvert sends to Kantar. Maximum length is 50 characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Metadata5</i> Additional metadata that MediaConvert sends to Kantar. Maximum length is 50 characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Metadata4</i> Additional metadata that MediaConvert sends to Kantar. Maximum length is 50 characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Metadata3</i> You can optionally use this field to specify the first timestamp that Kantar embeds during watermarking. Kantar suggests that you be very cautious when using this Kantar feature, and that you use it only on channels that are managed specifically for use with this feature by your Audience Measurement Operator. For more information about this feature, contact Kantar technical support.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LogDestination</i> Optional. Specify the Amazon S3 bucket where you want MediaConvert to store your Kantar watermark XML logs. When you don't specify a bucket, MediaConvert doesn't save these logs. Note that your MediaConvert service role must provide access to this location. For more information, see https://docs.aws.amazon.com/mediaconvert/latest/ug/iam-role.html<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KantarServerUrl</i> Provide the HTTPS endpoint to the Kantar server. You should get this endpoint from Kantar.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KantarLicenseId</i> Provide your Kantar license ID number. You should get this number from Kantar.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FileOffset</i> Optional. Specify an offset, in whole seconds, from the start of your output and the beginning of the watermarking. When you don't specify an offset, Kantar defaults to zero.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CredentialsSecretName</i> Provide the name of the AWS Secrets Manager secret where your Kantar credentials are stored. Note that your MediaConvert service role must provide access to this secret. For more information, see https://docs.aws.amazon.com/mediaconvert/latest/ug/granting-permissions-for-mediaconvert-to-access-secrets-manager-secret.html. For instructions on creating a secret, see https://docs.aws.amazon.com/secretsmanager/latest/userguide/tutorials_basic.html, in the AWS Secrets Manager User Guide.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ContentReference</i> Specify a unique identifier for Kantar to use for this piece of content.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ChannelName</i> Provide an audio channel name from your Kantar audio license.<br/>If your motion graphic asset is a .mov file, keep this setting unspecified. If your motion graphic asset is a series of .png files, specify the frame rate of the overlay in frames per second, as a fraction. For example, specify 24 fps as 24/1. Make sure that the number of images in your series matches the frame rate and your intended overlay duration. For example, if you want a 30-second overlay at 30 fps, you should have 900 .png images. This overlay frame rate doesn't need to match the frame rate of the underlying video.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Framerate</b>: If your motion graphic asset is a .mov file, keep this setting unspecified. If your motion graphic asset is a series of .png files, specify the frame rate of the overlay in frames per second, as a fraction. For example, specify 24 fps as 24/1. Make sure that the number of images in your series matches the frame rate and your intended overlay duration. For example, if you want a 30-second overlay at 30 fps, you should have 900 .png images. This overlay frame rate doesn't need to match the frame rate of the underlying video.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DistributorId</i> Use Distributor ID (DistributorID) to specify the distributor ID that is assigned to your organization by Neilsen.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BreakoutCode</i> Nielsen has discontinued the use of breakout code functionality. If you must include this property, set the value to zero.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UniqueTicPerAudioTrack</i> To create assets that have the same TIC values in each audio track, keep the default value Share TICs (SAME_TICS_PER_TRACK). To create assets that have unique TIC values for each audio track, choose Use unique TICs (RESERVE_UNIQUE_TICS_PER_TRACK).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TicServerUrl</i> Specify the endpoint for the TIC server that you have deployed and configured in the AWS Cloud. Required for all Nielsen non-linear watermarking. MediaConvert can't connect directly to a TIC server. Instead, you must use API Gateway to provide a RESTful interface between MediaConvert and a TIC server that you deploy in your AWS account. For more information on deploying a TIC server in your AWS account and the required API Gateway, contact Nielsen support.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceWatermarkStatus</i> Required. Specify whether your source content already contains Nielsen non-linear watermarks. When you set this value to Watermarked (WATERMARKED), the service fails the job. Nielsen requires that you add non-linear watermarking to only clean content that doesn't already  have non-linear Nielsen watermarks.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceId</i> Use the SID that Nielsen provides to you. This source ID should be unique to your Nielsen account but common to all of your output assets. Required for all Nielsen non-linear watermarking. This ID should be unique to your Nielsen account but common to all of your output assets. Required for all Nielsen non-linear watermarking.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MetadataDestination</i> Specify the Amazon S3 location where you want MediaConvert to save your Nielsen non-linear metadata .zip file. This Amazon S3 bucket must be in the same Region as the one where you do your MediaConvert transcoding. If you want to include an ADI file in this .zip file, use the setting ADI file (adiFilename) to specify it. MediaConvert delivers the Nielsen metadata .zip files only to your metadata destination Amazon S3 bucket. It doesn't deliver the .zip files to Nielsen. You are responsible for delivering the metadata .zip files to Nielsen.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EpisodeId</i> Optional. If this asset uses an episode ID with Nielsen, provide it here.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CbetSourceId</i> Use the CSID that Nielsen provides to you. This CBET source ID should be unique to your Nielsen account but common to all of your output assets that have CBET watermarking. Required when you choose a value for the setting Watermark types (ActiveWatermarkProcess) that includes CBET.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AssetName</i> Use the asset name that you provide to Nielsen for this asset. Required for all Nielsen non-linear watermarking.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AssetId</i> Use the asset ID that you provide to Nielsen to uniquely identify this asset. Required for all Nielsen non-linear watermarking.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AdiFilename</i> Optional. Use this setting when you want the service to include an ADI file in the Nielsen  metadata .zip file. To provide an ADI file, store it in Amazon S3 and provide a URL to it  here. The URL should be in the following format: S3://bucket/path/ADI-file. For more information about the metadata .zip file, see the setting Metadata destination (metadataDestination).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ActiveWatermarkProcess</i> Choose the type of Nielsen watermarks that you want in your outputs. When you choose NAES 2 and NW (NAES2_AND_NW), you must provide a value for the setting SID (sourceId). When you choose CBET (CBET), you must provide a value for the setting CSID (cbetSourceId). When you choose NAES 2, NW, and CBET (NAES2_AND_NW_AND_CBET), you must provide values for both of these settings.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TimestampOffset</i> Only applies to outputs that support program-date-time stamp. Use Timestamp offset (TimestampOffset) to overwrite the timecode date without affecting the time and frame number. Provide the new date as a string in the format "yyyy-mm-dd".  To use Time stamp offset, you must also enable Insert program-date-time (InsertProgramDateTime) in the output settings. For example, if the date part of your timecodes is 2002-1-25 and you want to change it to one year later, set Timestamp offset (TimestampOffset) to 2003-1-25.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Start</i> Only use when you set Source (TimecodeSource) to Specified start (SPECIFIEDSTART). Use Start timecode (Start) to specify the timecode for the initial frame. Use 24-hour format with frame number, (HH:MM:SS:FF) or (HH:MM:SS;FF).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Source</i> Use Source (TimecodeSource) to set how timecodes are handled within this job. To make sure that your video, audio, captions, and markers are synchronized and that time-based features, such as image inserter, work correctly, choose the Timecode source option that matches your assets. All timecodes are in a 24-hour format with frame number (HH:MM:SS:FF). * Embedded (EMBEDDED) - Use the timecode that is in the input video. If no embedded timecode is in the source, the service will use Start at 0 (ZEROBASED) instead. * Start at 0 (ZEROBASED) - Set the timecode of the initial frame to 00:00:00:00. * Specified Start (SPECIFIEDSTART) - Set the timecode of the initial frame to a value other than zero. You use Start timecode (Start) to provide this value.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Anchor</i> If you use an editing platform that relies on an anchor timecode, use Anchor Timecode (Anchor) to specify a timecode that will match the input video frame to the output video frame. Use 24-hour format with frame number, (HH:MM:SS:FF) or (HH:MM:SS;FF). This setting ignores frame rate conversion. System behavior for Anchor Timecode varies depending on your setting for Source (TimecodeSource). * If Source (TimecodeSource) is set to Specified Start (SPECIFIEDSTART), the first input frame is the specified value in Start Timecode (Start). Anchor Timecode (Anchor) and Start Timecode (Start) are used calculate output timecode. * If Source (TimecodeSource) is set to Start at 0 (ZEROBASED)  the  first frame is 00:00:00:00. * If Source (TimecodeSource) is set to Embedded (EMBEDDED), the  first frame is the timecode value on the first input frame of the input.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Id3Insertions</i> Id3Insertions contains the array of Id3Insertion instances.<br/>
        :return: JobTemplate:  A job template is a pre-made set of encoding instructions that you can use to quickly create a job.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> A job template can be of two types: system or custom. System or built-in job templates can't be modified or deleted by the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusUpdateInterval</i> Specify how often MediaConvert sends STATUS_UPDATE events to Amazon CloudWatch Events. Set the interval, in seconds, between status updates. MediaConvert sends an update at this interval from the time the service begins processing your job to the time it completes the transcode or encounters an error.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Settings</i> JobTemplateSettings contains all the transcode settings saved in the template that will be applied to jobs created from it.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Settings</b>: JobTemplateSettings contains all the transcode settings saved in the template that will be applied to jobs created from it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Queue</i> Optional. The queue that jobs created from this template are assigned to. If you don't specify this, jobs will go to the default queue.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Priority</i> Relative priority on the job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A name you create for each job template. Each name must be unique within your account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdated</i> The timestamp in epoch seconds when the Job template was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HopDestinations</i> Optional list of hop destinations.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> An optional description you create for each job template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedAt</i> The timestamp in epoch seconds for Job template creation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Category</i> An optional category you create to organize your job templates.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> An identifier for this resource that is unique within all of AWS.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccelerationSettings</i> Accelerated transcoding can significantly speed up jobs with long, visually complex content.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AccelerationSettings</b>: Accelerated transcoding can significantly speed up jobs with long, visually complex content.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Mode</i> Specify the conditions when the service will run your job with accelerated transcoding.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AdAvailOffset</i> When specified, this offset (in milliseconds) is added to the input Ad Avail PTS time.<br/>Settings for ad avail blanking.  Video can be blanked or overlaid with an image, and audio muted during SCTE-35 triggered ad avails.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AvailBlanking</b>: Settings for ad avail blanking.  Video can be blanked or overlaid with an image, and audio muted during SCTE-35 triggered ad avails.        """
        pass

    def update_preset(self, Name: str, Category: str=None, Description: str=None, Settings: PresetSettings=None) -> UpdatePresetResponse:
        r"""Modify one of your existing presets.

        :param self:
        :param Settings:  Settings for preset:<br/>Name:  The name of the preset you are modifying.<br/>Description:  The new description for the preset, if you are changing it.<br/>Category:  The new category for the preset, if you are changing it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VideoDescription</i> VideoDescription contains a group of video encoding settings. The specific video settings depend on the video codec that you choose for the property codec. Include one instance of VideoDescription per output.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>VideoDescription</b>: VideoDescription contains a group of video encoding settings. The specific video settings depend on the video codec that you choose for the property codec. Include one instance of VideoDescription per output.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ContainerSettings</i> Container specific settings.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ContainerSettings</b>: Container specific settings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CaptionDescriptions</i> This object holds groups of settings related to captions for one output. For each output that has captions, include one instance of CaptionDescriptions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AudioDescriptions</i> (AudioDescriptions) contains groups of audio encoding settings organized by audio codec. Include one instance of (AudioDescriptions) per output. (AudioDescriptions) can contain multiple groups of encoding settings.<br/>These settings relate to the fragmented MP4 container for the segments in your CMAF outputs.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CmfcSettings</b>: These settings relate to the fragmented MP4 container for the segments in your CMAF outputs.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AntiAlias</i> The anti-alias filter is automatically applied to all outputs. The service no longer accepts the value DISABLED for AntiAlias. If you specify that in your job, the service will ignore the setting.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AfdSignaling</i> This setting only applies to H.264, H.265, and MPEG2 outputs. Use Insert AFD signaling (AfdSignaling) to specify whether the service includes AFD values in the output video data and what those values are. * Choose None to remove all AFD values from this output. * Choose Fixed to ignore input AFD values and instead encode the value specified in the job. * Choose Auto to calculate output AFD values based on the input AFD scaler data.<br/>Video codec settings, (CodecSettings) under (VideoDescription), contains the group of settings related to video encoding. The settings in this group vary depending on the value that you choose for Video codec (Codec). For each codec enum that you choose, define the corresponding settings object. The following lists the codec enum, settings object pairs. * AV1, Av1Settings * AVC_INTRA, AvcIntraSettings * FRAME_CAPTURE, FrameCaptureSettings * H_264, H264Settings * H_265, H265Settings * MPEG2, Mpeg2Settings * PRORES, ProresSettings * VC3, Vc3Settings * VP8, Vp8Settings * VP9, Vp9Settings * XAVC, XavcSettings&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CodecSettings</b>: Video codec settings, (CodecSettings) under (VideoDescription), contains the group of settings related to video encoding. The settings in this group vary depending on the value that you choose for Video codec (Codec). For each codec enum that you choose, define the corresponding settings object. The following lists the codec enum, settings object pairs. * AV1, Av1Settings * AVC_INTRA, AvcIntraSettings * FRAME_CAPTURE, FrameCaptureSettings * H_264, H264Settings * H_265, H265Settings * MPEG2, Mpeg2Settings * PRORES, ProresSettings * VC3, Vc3Settings * VP8, Vp8Settings * VP9, Vp9Settings * XAVC, XavcSettings
        :return: Preset:  A preset is a collection of preconfigured media conversion settings that you want MediaConvert to apply to the output during the conversion process.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> A preset can be of two types: system or custom. System or built-in preset can't be modified or deleted by the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Settings</i> Settings for preset&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Settings</b>: Settings for preset<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A name you create for each preset. Each name must be unique within your account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdated</i> The timestamp in epoch seconds when the preset was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> An optional description you create for each preset.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedAt</i> The timestamp in epoch seconds for preset creation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Category</i> An optional category you create to organize your presets.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> An identifier for this resource that is unique within all of AWS.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CaptionDescriptions</i> This object holds groups of settings related to captions for one output. For each output that has captions, include one instance of CaptionDescriptions.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AudioDescriptions</i> (AudioDescriptions) contains groups of audio encoding settings organized by audio codec. Include one instance of (AudioDescriptions) per output. (AudioDescriptions) can contain multiple groups of encoding settings.<br/>Container specific settings.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ContainerSettings</b>: Container specific settings.        """
        pass

    def update_queue(self, Name: str, Description: str=None, ReservationPlanSettings: ReservationPlanSettings=None, Status: str=None) -> UpdateQueueResponse:
        r"""Modify one of your existing queues.

        :param self:
        :param Status:  Pause or activate a queue by changing its status between ACTIVE and PAUSED. If you pause a queue, jobs in that queue won't begin. Jobs that are running when you pause the queue continue to run until they finish or result in an error.<br/>ReservationPlanSettings:  The new details of your pricing plan for your reserved queue. When you set up a new pricing plan to replace an expired one, you enter into another 12-month commitment. When you add capacity to your queue by increasing the number of RTS, you extend the term of your commitment to 12 months from when you add capacity. After you make these commitments, you can't cancel them.:<br/>Name:  The name of the queue that you are modifying.<br/>Description:  The new description for the queue, if you are changing it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReservedSlots</i> Specifies the number of reserved transcode slots (RTS) for this queue. The number of RTS determines how many jobs the queue can process in parallel; each RTS can process one job at a time. You can't decrease the number of RTS in your reserved queue. You can increase the number of RTS by extending your existing commitment with a new 12-month commitment for the larger number. The new commitment begins when you purchase the additional capacity. You can't cancel your commitment or revert to your original commitment after you increase the capacity.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RenewalType</i> Specifies whether the term of your reserved queue pricing plan is automatically extended (AUTO_RENEW) or expires (EXPIRE) at the end of the term. When your term is auto renewed, you extend your commitment by 12 months from the auto renew date. You can cancel this commitment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Commitment</i> The length of the term of your reserved queue pricing plan commitment.<br/>
        :return: Queue:  You can use queues to manage the resources that are available to your AWS account for running multiple transcoding jobs at the same time. If you don't specify a queue, the service sends all jobs through the default queue. For more information, see https://docs.aws.amazon.com/mediaconvert/latest/ug/working-with-queues.html.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> Specifies whether this on-demand queue is system or custom. System queues are built in. You can't modify or delete system queues. You can create and modify custom queues.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubmittedJobsCount</i> The estimated number of jobs with a SUBMITTED status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Queues can be ACTIVE or PAUSED. If you pause a queue, the service won't begin processing jobs in that queue. Jobs that are running when you pause the queue continue to run until they finish or result in an error.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReservationPlan</i> Details about the pricing plan for your reserved queue. Required for reserved queues and not applicable to on-demand queues.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ReservationPlan</b>: Details about the pricing plan for your reserved queue. Required for reserved queues and not applicable to on-demand queues.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProgressingJobsCount</i> The estimated number of jobs with a PROGRESSING status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PricingPlan</i> Specifies whether the pricing plan for the queue is on-demand or reserved. For on-demand, you pay per minute, billed in increments of .01 minute. For reserved, you pay for the transcoding capacity of the entire queue, regardless of how much or how little you use it. Reserved pricing requires a 12-month commitment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A name that you create for each queue. Each name must be unique within your account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdated</i> The timestamp in epoch seconds for when you most recently updated the queue.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> An optional description that you create for each queue.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedAt</i> The timestamp in epoch seconds for when you created the queue.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> An identifier for this resource that is unique within all of AWS.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Specifies whether the pricing plan for your reserved queue is ACTIVE or EXPIRED.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReservedSlots</i> Specifies the number of reserved transcode slots (RTS) for this queue. The number of RTS determines how many jobs the queue can process in parallel; each RTS can process one job at a time. When you increase this number, you extend your existing commitment with a new 12-month commitment for a larger number of RTS. The new commitment begins when you purchase the additional capacity. You can't decrease the number of RTS in your reserved queue.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RenewalType</i> Specifies whether the term of your reserved queue pricing plan is automatically extended (AUTO_RENEW) or expires (EXPIRE) at the end of the term.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PurchasedAt</i> The timestamp in epoch seconds for when you set up the current pricing plan for this reserved queue.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ExpiresAt</i> The timestamp in epoch seconds for when the current pricing plan term for this reserved queue expires.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Commitment</i> The length of the term of your reserved queue pricing plan commitment.<br/>        """
        pass





class MediaLive(BaseClient):
    r"""API for AWS Elemental MediaLive"""

    class ChannelCreatedWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_channel` for valid parameters"""
            pass
    class ChannelDeletedWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_channel` for valid parameters"""
            pass
    class ChannelRunningWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_channel` for valid parameters"""
            pass
    class ChannelStoppedWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_channel` for valid parameters"""
            pass
    class InputAttachedWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_input` for valid parameters"""
            pass
    class InputDeletedWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_input` for valid parameters"""
            pass
    class InputDetachedWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_input` for valid parameters"""
            pass
    class MultiplexCreatedWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_multiplex` for valid parameters"""
            pass
    class MultiplexDeletedWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_multiplex` for valid parameters"""
            pass
    class MultiplexRunningWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_multiplex` for valid parameters"""
            pass
    class MultiplexStoppedWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_multiplex` for valid parameters"""
            pass


    class ListInputsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_inputs` for valid parameters"""
            pass
    class ListChannelsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_channels` for valid parameters"""
            pass
    class ListInputSecurityGroupsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_input_security_groups` for valid parameters"""
            pass
    class ListOfferingsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_offerings` for valid parameters"""
            pass
    class ListReservationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_reservations` for valid parameters"""
            pass
    class DescribeSchedulePaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_schedule` for valid parameters"""
            pass
    class ListMultiplexProgramsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_multiplex_programs` for valid parameters"""
            pass
    class ListMultiplexesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_multiplexes` for valid parameters"""
            pass
    class ListInputDevicesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_input_devices` for valid parameters"""
            pass
    class ListInputDeviceTransfersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_input_device_transfers` for valid parameters"""
            pass


    class AcceptInputDeviceTransferRequest(Mapping):
        pass
    
    class AcceptInputDeviceTransferResponse(Mapping):
        pass
    
    class BatchDeleteRequest(Mapping):
        pass
    
    class BatchDeleteResponse(Mapping):
        pass
    
    class __string(object):
        pass
    
    class BatchStartRequest(Mapping):
        pass
    
    class BatchStartResponse(Mapping):
        pass
    
    class BatchStopRequest(Mapping):
        pass
    
    class BatchStopResponse(Mapping):
        pass
    
    class BatchUpdateScheduleRequest(Mapping):
        pass
    
    class BatchUpdateScheduleResponse(Mapping):
        pass
    
    class BatchScheduleActionCreateRequest(Mapping):
        pass
    
    class BatchScheduleActionDeleteRequest(Mapping):
        pass
    
    class CancelInputDeviceTransferRequest(Mapping):
        pass
    
    class CancelInputDeviceTransferResponse(Mapping):
        pass
    
    class CreateChannelRequest(Mapping):
        pass
    
    class CreateChannelResponse(Mapping):
        pass
    
    class CdiInputSpecification(Mapping):
        pass
    
    class OutputDestination(Mapping):
        pass
    
    class EncoderSettings(Mapping):
        pass
    
    class InputAttachment(Mapping):
        pass
    
    class InputSpecification(Mapping):
        pass
    
    class Tags(object):
        pass
    
    class VpcOutputSettings(Mapping):
        pass
    
    class CreateInputRequest(Mapping):
        pass
    
    class CreateInputResponse(Mapping):
        pass
    
    class InputDestinationRequest(Mapping):
        pass
    
    class InputDeviceSettings(Mapping):
        pass
    
    class MediaConnectFlowRequest(Mapping):
        pass
    
    class InputSourceRequest(Mapping):
        pass
    
    class InputVpcRequest(Mapping):
        pass
    
    class CreateInputSecurityGroupRequest(Mapping):
        pass
    
    class CreateInputSecurityGroupResponse(Mapping):
        pass
    
    class InputWhitelistRuleCidr(Mapping):
        pass
    
    class CreateMultiplexRequest(Mapping):
        pass
    
    class CreateMultiplexResponse(Mapping):
        pass
    
    class MultiplexSettings(Mapping):
        pass
    
    class CreateMultiplexProgramRequest(Mapping):
        pass
    
    class CreateMultiplexProgramResponse(Mapping):
        pass
    
    class MultiplexProgramSettings(Mapping):
        pass
    
    class CreatePartnerInputRequest(Mapping):
        pass
    
    class CreatePartnerInputResponse(Mapping):
        pass
    
    class CreateTagsRequest(Mapping):
        pass
    
    class DeleteChannelRequest(Mapping):
        pass
    
    class DeleteChannelResponse(Mapping):
        pass
    
    class DeleteInputRequest(Mapping):
        pass
    
    class DeleteInputResponse(Mapping):
        pass
    
    class DeleteInputSecurityGroupRequest(Mapping):
        pass
    
    class DeleteInputSecurityGroupResponse(Mapping):
        pass
    
    class DeleteMultiplexRequest(Mapping):
        pass
    
    class DeleteMultiplexResponse(Mapping):
        pass
    
    class DeleteMultiplexProgramRequest(Mapping):
        pass
    
    class DeleteMultiplexProgramResponse(Mapping):
        pass
    
    class DeleteReservationRequest(Mapping):
        pass
    
    class DeleteReservationResponse(Mapping):
        pass
    
    class DeleteScheduleRequest(Mapping):
        pass
    
    class DeleteScheduleResponse(Mapping):
        pass
    
    class DeleteTagsRequest(Mapping):
        pass
    
    class DescribeChannelRequest(Mapping):
        pass
    
    class DescribeChannelResponse(Mapping):
        pass
    
    class DescribeInputRequest(Mapping):
        pass
    
    class DescribeInputResponse(Mapping):
        pass
    
    class DescribeInputDeviceRequest(Mapping):
        pass
    
    class DescribeInputDeviceResponse(Mapping):
        pass
    
    class DescribeInputDeviceThumbnailRequest(Mapping):
        pass
    
    class DescribeInputDeviceThumbnailResponse(Mapping):
        pass
    
    class DescribeInputSecurityGroupRequest(Mapping):
        pass
    
    class DescribeInputSecurityGroupResponse(Mapping):
        pass
    
    class DescribeMultiplexRequest(Mapping):
        pass
    
    class DescribeMultiplexResponse(Mapping):
        pass
    
    class DescribeMultiplexProgramRequest(Mapping):
        pass
    
    class DescribeMultiplexProgramResponse(Mapping):
        pass
    
    class DescribeOfferingRequest(Mapping):
        pass
    
    class DescribeOfferingResponse(Mapping):
        pass
    
    class DescribeReservationRequest(Mapping):
        pass
    
    class DescribeReservationResponse(Mapping):
        pass
    
    class DescribeScheduleRequest(Mapping):
        pass
    
    class DescribeScheduleResponse(Mapping):
        pass
    
    class ListChannelsRequest(Mapping):
        pass
    
    class ListChannelsResponse(Mapping):
        pass
    
    class ListInputDeviceTransfersRequest(Mapping):
        pass
    
    class ListInputDeviceTransfersResponse(Mapping):
        pass
    
    class ListInputDevicesRequest(Mapping):
        pass
    
    class ListInputDevicesResponse(Mapping):
        pass
    
    class ListInputSecurityGroupsRequest(Mapping):
        pass
    
    class ListInputSecurityGroupsResponse(Mapping):
        pass
    
    class ListInputsRequest(Mapping):
        pass
    
    class ListInputsResponse(Mapping):
        pass
    
    class ListMultiplexProgramsRequest(Mapping):
        pass
    
    class ListMultiplexProgramsResponse(Mapping):
        pass
    
    class ListMultiplexesRequest(Mapping):
        pass
    
    class ListMultiplexesResponse(Mapping):
        pass
    
    class ListOfferingsRequest(Mapping):
        pass
    
    class ListOfferingsResponse(Mapping):
        pass
    
    class ListReservationsRequest(Mapping):
        pass
    
    class ListReservationsResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class PurchaseOfferingRequest(Mapping):
        pass
    
    class PurchaseOfferingResponse(Mapping):
        pass
    
    class RejectInputDeviceTransferRequest(Mapping):
        pass
    
    class RejectInputDeviceTransferResponse(Mapping):
        pass
    
    class StartChannelRequest(Mapping):
        pass
    
    class StartChannelResponse(Mapping):
        pass
    
    class StartMultiplexRequest(Mapping):
        pass
    
    class StartMultiplexResponse(Mapping):
        pass
    
    class StopChannelRequest(Mapping):
        pass
    
    class StopChannelResponse(Mapping):
        pass
    
    class StopMultiplexRequest(Mapping):
        pass
    
    class StopMultiplexResponse(Mapping):
        pass
    
    class TransferInputDeviceRequest(Mapping):
        pass
    
    class TransferInputDeviceResponse(Mapping):
        pass
    
    class UpdateChannelRequest(Mapping):
        pass
    
    class UpdateChannelResponse(Mapping):
        pass
    
    class UpdateChannelClassRequest(Mapping):
        pass
    
    class UpdateChannelClassResponse(Mapping):
        pass
    
    class UpdateInputRequest(Mapping):
        pass
    
    class UpdateInputResponse(Mapping):
        pass
    
    class InputDeviceRequest(Mapping):
        pass
    
    class UpdateInputDeviceRequest(Mapping):
        pass
    
    class UpdateInputDeviceResponse(Mapping):
        pass
    
    class InputDeviceConfigurableSettings(Mapping):
        pass
    
    class UpdateInputSecurityGroupRequest(Mapping):
        pass
    
    class UpdateInputSecurityGroupResponse(Mapping):
        pass
    
    class UpdateMultiplexRequest(Mapping):
        pass
    
    class UpdateMultiplexResponse(Mapping):
        pass
    
    class UpdateMultiplexProgramRequest(Mapping):
        pass
    
    class UpdateMultiplexProgramResponse(Mapping):
        pass
    
    class UpdateReservationRequest(Mapping):
        pass
    
    class UpdateReservationResponse(Mapping):
        pass
    
    def accept_input_device_transfer(self, InputDeviceId: str) -> AcceptInputDeviceTransferResponse:
        r"""Accept an incoming input device transfer. The ownership of the device will transfer to your AWS account.

        :param self:
        :param InputDeviceId:  The unique ID of the input device to accept. For example, hd-123456789abcdef.<br/>
        :return:         """
        pass

    def batch_delete(self, ChannelIds: List[__string]=None, InputIds: List[__string]=None, InputSecurityGroupIds: List[__string]=None, MultiplexIds: List[__string]=None) -> BatchDeleteResponse:
        r"""Starts delete of resources.

        :param self:
        :param MultiplexIds:  List of multiplex IDs<br/>InputSecurityGroupIds:  List of input security group IDs<br/>InputIds:  List of input IDs<br/>ChannelIds:  List of channel IDs<br/>
        :return: Successful:  List of successful operations<br/>Failed:  List of failed operations<br/>        """
        pass

    def batch_start(self, ChannelIds: List[__string]=None, MultiplexIds: List[__string]=None) -> BatchStartResponse:
        r"""Starts existing resources

        :param self:
        :param MultiplexIds:  List of multiplex IDs<br/>ChannelIds:  List of channel IDs<br/>
        :return: Successful:  List of successful operations<br/>Failed:  List of failed operations<br/>        """
        pass

    def batch_stop(self, ChannelIds: List[__string]=None, MultiplexIds: List[__string]=None) -> BatchStopResponse:
        r"""Stops running resources

        :param self:
        :param MultiplexIds:  List of multiplex IDs<br/>ChannelIds:  List of channel IDs<br/>
        :return: Successful:  List of successful operations<br/>Failed:  List of failed operations<br/>        """
        pass

    def batch_update_schedule(self, ChannelId: str, Creates: BatchScheduleActionCreateRequest=None, Deletes: BatchScheduleActionDeleteRequest=None) -> BatchUpdateScheduleResponse:
        r"""Update a channel schedule

        :param self:
        :param Deletes:  Schedule actions to delete from the schedule.:<br/>Creates:  Schedule actions to create in the schedule.:<br/>ChannelId:  Id of the channel whose schedule is being updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ScheduleActions</i> A list of schedule actions to create.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActionNames</i> A list of schedule actions to delete.<br/>
        :return: Deletes:  Schedule actions deleted from the schedule.:<br/>Creates:  Schedule actions created in the schedule.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ScheduleActions</i> List of actions that have been created in the schedule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ScheduleActions</i> List of actions that have been deleted from the schedule.<br/>        """
        pass

    def cancel_input_device_transfer(self, InputDeviceId: str) -> CancelInputDeviceTransferResponse:
        r"""Cancel an input device transfer that you have requested.

        :param self:
        :param InputDeviceId:  The unique ID of the input device to cancel. For example, hd-123456789abcdef.<br/>
        :return:         """
        pass

    def create_channel(self, CdiInputSpecification: CdiInputSpecification=None, ChannelClass: str=None, Destinations: List[OutputDestination]=None, EncoderSettings: EncoderSettings=None, InputAttachments: List[InputAttachment]=None, InputSpecification: InputSpecification=None, LogLevel: str=None, Name: str=None, RequestId: str=None, Reserved: str=None, RoleArn: str=None, Tags: Tags=None, Vpc: VpcOutputSettings=None) -> CreateChannelResponse:
        r"""Creates a new channel

        :param self:
        :param Vpc:  Settings for VPC output:<br/>Tags:  A collection of key-value pairs.<br/>RoleArn:  An optional Amazon Resource Name (ARN) of the role to assume when running the Channel.<br/>Reserved:  Deprecated field that's only usable by whitelisted customers.<br/>RequestId:  Unique request ID to be specified. This is needed to prevent retries from
creating multiple resources.
<br/>Name:  Name of channel.<br/>LogLevel:  The log level to write to CloudWatch Logs.<br/>InputSpecification:  Specification of network and file inputs for this channel:<br/>InputAttachments:  List of input attachments for channel.<br/>EncoderSettings:  Encoder Settings:<br/>Destinations:  Placeholder documentation for __listOfOutputDestination<br/>ChannelClass:  The class for this channel. STANDARD for a channel with two pipelines or SINGLE_PIPELINE for a channel with one pipeline.<br/>CdiInputSpecification:  Specification of CDI inputs for this channel:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Resolution</i> Maximum CDI input resolution<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VideoDescriptions</i> Placeholder documentation for __listOfVideoDescription<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TimecodeConfig</i> Contains settings used to acquire and adjust timecode information from inputs.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TimecodeConfig</b>: Contains settings used to acquire and adjust timecode information from inputs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OutputGroups</i> Placeholder documentation for __listOfOutputGroup<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NielsenConfiguration</i> Nielsen configuration settings.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>NielsenConfiguration</b>: Nielsen configuration settings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MotionGraphicsConfiguration</i> Settings for motion graphics.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>MotionGraphicsConfiguration</b>: Settings for motion graphics.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalConfiguration</i> Configuration settings that apply to the event as a whole.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>GlobalConfiguration</b>: Configuration settings that apply to the event as a whole.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FeatureActivations</i> Feature Activations&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>FeatureActivations</b>: Feature Activations<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CaptionDescriptions</i> Settings for caption decriptions<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BlackoutSlate</i> Settings for blackout slate.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>BlackoutSlate</b>: Settings for blackout slate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailConfiguration</i> Event-wide configuration settings for ad avail insertion.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AvailConfiguration</b>: Event-wide configuration settings for ad avail insertion.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailBlanking</i> Settings for ad avail blanking.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AvailBlanking</b>: Settings for ad avail blanking.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AudioDescriptions</i> Placeholder documentation for __listOfAudioDescription<br/>Blanking image to be used. Leave empty for solid black. Only bmp and png images are supported.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AvailBlankingImage</b>: Blanking image to be used. Leave empty for solid black. Only bmp and png images are supported.Ad avail settings.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AvailSettings</b>: Ad avail settings.Blackout slate image to be used. Leave empty for solid black. Only bmp and png images are supported.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>BlackoutSlateImage</b>: Blackout slate image to be used. Leave empty for solid black. Only bmp and png images are supported.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InputPrepareScheduleActions</i> Enables the Input Prepare feature. You can create Input Prepare actions in the schedule only if this feature is enabled.
If you disable the feature on an existing schedule, make sure that you first delete all input prepare actions from the schedule.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InputEndAction</i> Indicates the action to take when the current input completes (e.g. end-of-file). When switchAndLoopInputs is configured the encoder will restart at the beginning of the first input.  When "none" is configured the encoder will transcode either black, a solid color, or a user specified slate images per the "Input Loss Behavior" configuration until the next input switch occurs (which is controlled through the Channel Schedule API).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InitialAudioGain</i> Value to set the initial audio gain for the Live Event.<br/>Settings for system actions when input is lost.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>InputLossBehavior</b>: Settings for system actions when input is lost.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MotionGraphicsInsertion</i> Motion Graphics Insertion<br/>Motion Graphics Settings&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>MotionGraphicsSettings</b>: Motion Graphics Settings&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NielsenPcmToId3Tagging</i> Enables Nielsen PCM to ID3 tagging<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DistributorId</i> Enter the Distributor ID assigned to your organization by Nielsen.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SyncThreshold</i> Threshold in frames beyond which output timecode is resynchronized to the input timecode. Discrepancies below this threshold are permitted to avoid unnecessary discontinuities in the output timecode. No timecode sync when this is not specified.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Source</i> Identifies the source for the timecode that will be associated with the events outputs.
-Embedded (embedded): Initialize the output timecode with timecode from the the source.  If no embedded timecode is detected in the source, the system falls back to using "Start at 0" (zerobased).
-System Clock (systemclock): Use the UTC time.
-Start at 0 (zerobased): The time of the first frame of the event will be 00:00:00:00.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Resolution</i> Input resolution, categorized coarsely<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaximumBitrate</i> Maximum input bitrate, categorized coarsely<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Codec</i> Input codec<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetIds</i> A list of VPC subnet IDs from the same VPC.
If STANDARD channel, subnet IDs must be mapped to two unique availability zones (AZ).
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> A list of up to 5 EC2 VPC security group IDs to attach to the Output VPC network interfaces.
If none are specified then the VPC default security group will be used
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PublicAddressAllocationIds</i> List of public address allocation ids to associate with ENIs that will be created in Output VPC.
Must specify one for SINGLE_PIPELINE, two for STANDARD channels
<br/>
        :return: Channel:  Placeholder documentation for Channel:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Vpc</i> Settings for VPC output&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Vpc</b>: Settings for VPC output<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> A collection of key-value pairs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> Placeholder documentation for ChannelState<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The Amazon Resource Name (ARN) of the role assumed when running the Channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PipelinesRunningCount</i> The number of currently healthy pipelines.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PipelineDetails</i> Runtime details for the pipelines of a running channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the channel. (user-mutable)<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogLevel</i> The log level being written to CloudWatch Logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InputSpecification</i> Specification of network and file inputs for this channel&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>InputSpecification</b>: Specification of network and file inputs for this channel<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InputAttachments</i> List of input attachments for channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The unique id of the channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EncoderSettings</i> Encoder Settings&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EncoderSettings</b>: Encoder Settings<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EgressEndpoints</i> The endpoints where outgoing connections initiate from<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Destinations</i> A list of destinations of the channel. For UDP outputs, there is one
destination per output. For other types (HLS, for example), there is
one destination per packager.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ChannelClass</i> The class for this channel. STANDARD for a channel with two pipelines or SINGLE_PIPELINE for a channel with one pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CdiInputSpecification</i> Specification of CDI inputs for this channel&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CdiInputSpecification</b>: Specification of CDI inputs for this channel<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The unique arn of the channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Resolution</i> Maximum CDI input resolution<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AudioDescriptions</i> Placeholder documentation for __listOfAudioDescription<br/>Settings for ad avail blanking.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AvailBlanking</b>: Settings for ad avail blanking.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Resolution</i> Input resolution, categorized coarsely<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaximumBitrate</i> Maximum input bitrate, categorized coarsely<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Codec</i> Input codec<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetIds</i> A list of VPC subnet IDs from the same VPC.
If STANDARD channel, subnet IDs must be mapped to two unique availability zones (AZ).
<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> A list of up EC2 VPC security group IDs attached to the Output VPC network interfaces.
<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkInterfaceIds</i> A list of Elastic Network Interfaces created by MediaLive in the customer's VPC
<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZones</i> The Availability Zones where the vpc subnets are located.
The first Availability Zone applies to the first subnet in the list of subnets.
The second Availability Zone applies to the second subnet.
<br/>        """
        pass

    def create_input(self, Destinations: List[InputDestinationRequest]=None, InputDevices: List[InputDeviceSettings]=None, InputSecurityGroups: List[__string]=None, MediaConnectFlows: List[MediaConnectFlowRequest]=None, Name: str=None, RequestId: str=None, RoleArn: str=None, Sources: List[InputSourceRequest]=None, Tags: Tags=None, Type: str=None, Vpc: InputVpcRequest=None) -> CreateInputResponse:
        r"""Create an input

        :param self:
        :param Vpc:  Settings for a private VPC Input.
When this property is specified, the input destination addresses will be created in a VPC rather than with public Internet addresses.
This property requires setting the roleArn property on Input creation.
Not compatible with the inputSecurityGroups property.
:<br/>Type:  Placeholder documentation for InputType<br/>Tags:  A collection of key-value pairs.<br/>Sources:  The source URLs for a PULL-type input. Every PULL type input needs
exactly two source URLs for redundancy.
Only specify sources for PULL type Inputs. Leave Destinations empty.
<br/>RoleArn:  The Amazon Resource Name (ARN) of the role this input assumes during and after creation.<br/>RequestId:  Unique identifier of the request to ensure the request is handled
exactly once in case of retries.
<br/>Name:  Name of the input.<br/>MediaConnectFlows:  A list of the MediaConnect Flows that you want to use in this input. You can specify as few as one
Flow and presently, as many as two. The only requirement is when you have more than one is that each Flow is in a
separate Availability Zone as this ensures your EML input is redundant to AZ issues.
<br/>InputSecurityGroups:  A list of security groups referenced by IDs to attach to the input.<br/>InputDevices:  Settings for the devices.<br/>Destinations:  Destination settings for PUSH type inputs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetIds</i> A list of 2 VPC subnet IDs from the same VPC.
Subnet IDs must be mapped to two unique availability zones (AZ).
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> A list of up to 5 EC2 VPC security group IDs to attach to the Input VPC network interfaces.
Requires subnetIds. If none are specified then the VPC default security group will be used.
<br/>
        :return: Input:  Placeholder documentation for Input:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> Placeholder documentation for InputType<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> A collection of key-value pairs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> Placeholder documentation for InputState<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Sources</i> A list of the sources of the input (PULL-type).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroups</i> A list of IDs for all the Input Security Groups attached to the input.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The Amazon Resource Name (ARN) of the role this input assumes during and after creation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The user-assigned name (This is a mutable value).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MediaConnectFlows</i> A list of MediaConnect Flows for this input.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InputSourceType</i> Certain pull input sources can be dynamic, meaning that they can have their URL's dynamically changes
during input switch actions. Presently, this functionality only works with MP4_FILE inputs.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InputPartnerIds</i> A list of IDs for all Inputs which are partners of this one.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InputDevices</i> Settings for the input devices.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InputClass</i> STANDARD - MediaLive expects two sources to be connected to this input. If the channel is also STANDARD, both sources will be ingested. If the channel is SINGLE_PIPELINE, only the first source will be ingested; the second source will always be ignored, even if the first source fails.
SINGLE_PIPELINE - You can connect only one source to this input. If the ChannelClass is also  SINGLE_PIPELINE, this value is valid. If the ChannelClass is STANDARD, this value is not valid because the channel requires two sources in the input.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The generated ID of the input (unique for user account, immutable).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Destinations</i> A list of the destinations of the input (PUSH-type).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AttachedChannels</i> A list of channel IDs that that input is attached to (currently an input can only be attached to one channel).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Unique ARN of the input (generated, immutable).<br/>        """
        pass

    def create_input_security_group(self, Tags: Tags=None, WhitelistRules: List[InputWhitelistRuleCidr]=None) -> CreateInputSecurityGroupResponse:
        r"""Creates a Input Security Group

        :param self:
        :param WhitelistRules:  List of IPv4 CIDR addresses to whitelist<br/>Tags:  A collection of key-value pairs.<br/>
        :return: SecurityGroup:  An Input Security Group:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WhitelistRules</i> Whitelist rules and their sync status<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> A collection of key-value pairs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The current state of the Input Security Group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Inputs</i> The list of inputs currently using this Input Security Group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The Id of the Input Security Group<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> Unique ARN of Input Security Group<br/>        """
        pass

    def create_multiplex(self, RequestId: str, Name: str, MultiplexSettings: MultiplexSettings, AvailabilityZones: List[__string], Tags: Tags=None) -> CreateMultiplexResponse:
        r"""Create a new multiplex.

        :param self:
        :param Tags:  A collection of key-value pairs.<br/>RequestId:  Unique request ID. This prevents retries from creating multiple
resources.
<br/>Name:  Name of multiplex.<br/>MultiplexSettings:  Configuration for a multiplex event.:<br/>AvailabilityZones:  A list of availability zones for the multiplex. You must specify exactly two.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransportStreamReservedBitrate</i> Transport stream reserved bit rate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransportStreamId</i> Transport stream ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransportStreamBitrate</i> Transport stream bit rate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaximumVideoBufferDelayMilliseconds</i> Maximum video buffer delay in milliseconds.<br/>
        :return: Multiplex:  The newly created multiplex.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> A collection of key-value pairs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The current state of the multiplex.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProgramCount</i> The number of programs in the multiplex.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PipelinesRunningCount</i> The number of currently healthy pipelines.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the multiplex.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiplexSettings</i> Configuration for a multiplex event.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>MultiplexSettings</b>: Configuration for a multiplex event.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The unique id of the multiplex.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Destinations</i> A list of the multiplex output destinations.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZones</i> A list of availability zones for the multiplex.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The unique arn of the multiplex.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TransportStreamReservedBitrate</i> Transport stream reserved bit rate.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TransportStreamId</i> Transport stream ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TransportStreamBitrate</i> Transport stream bit rate.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaximumVideoBufferDelayMilliseconds</i> Maximum video buffer delay in milliseconds.<br/>        """
        pass

    def create_multiplex_program(self, RequestId: str, ProgramName: str, MultiplexProgramSettings: MultiplexProgramSettings, MultiplexId: str) -> CreateMultiplexProgramResponse:
        r"""Create a new program in the multiplex.

        :param self:
        :param RequestId:  Unique request ID. This prevents retries from creating multiple
resources.
<br/>ProgramName:  Name of multiplex program.<br/>MultiplexProgramSettings:  The settings for this multiplex program.:<br/>MultiplexId:  ID of the multiplex where the program is to be created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VideoSettings</i> Program video settings configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>VideoSettings</b>: Program video settings configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceDescriptor</i> Transport stream service descriptor configuration for the Multiplex program.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ServiceDescriptor</b>: Transport stream service descriptor configuration for the Multiplex program.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProgramNumber</i> Unique program number.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredChannelPipeline</i> Indicates which pipeline is preferred by the multiplex for program ingest.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceName</i> Name of the service.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ProviderName</i> Name of the provider.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ConstantBitrate</i> The constant bitrate configuration for the video encode.
When this field is defined, StatmuxSettings must be undefined.<br/>Statmux rate control settings.
When this field is defined, ConstantBitrate must be undefined.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StatmuxSettings</b>: Statmux rate control settings.
When this field is defined, ConstantBitrate must be undefined.
        :return: MultiplexProgram:  The newly created multiplex program.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProgramName</i> The name of the multiplex program.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PipelineDetails</i> Contains information about the current sources for the specified program in the specified multiplex. Keep in mind that each multiplex pipeline connects to both pipelines in a given source channel (the channel identified by the program). But only one of those channel pipelines is ever active at one time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PacketIdentifiersMap</i> The packet identifier map for this multiplex program.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PacketIdentifiersMap</b>: The packet identifier map for this multiplex program.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiplexProgramSettings</i> The settings for this multiplex program.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>MultiplexProgramSettings</b>: The settings for this multiplex program.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ChannelId</i> The MediaLive channel associated with the program.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ProgramNumber</i> Unique program number.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredChannelPipeline</i> Indicates which pipeline is preferred by the multiplex for program ingest.<br/>Transport stream service descriptor configuration for the Multiplex program.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ServiceDescriptor</b>: Transport stream service descriptor configuration for the Multiplex program.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VideoPid</i> Placeholder documentation for __integer<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TimedMetadataPid</i> Placeholder documentation for __integer<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Scte35Pid</i> Placeholder documentation for __integer<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Scte27Pids</i> Placeholder documentation for __listOf__integer<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PrivateMetadataPid</i> Placeholder documentation for __integer<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PmtPid</i> Placeholder documentation for __integer<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PcrPid</i> Placeholder documentation for __integer<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KlvDataPids</i> Placeholder documentation for __listOf__integer<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EtvSignalPid</i> Placeholder documentation for __integer<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EtvPlatformPid</i> Placeholder documentation for __integer<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DvbTeletextPid</i> Placeholder documentation for __integer<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DvbSubPids</i> Placeholder documentation for __listOf__integer<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AudioPids</i> Placeholder documentation for __listOf__integer<br/>        """
        pass

    def create_partner_input(self, InputId: str, RequestId: str=None, Tags: Tags=None) -> CreatePartnerInputResponse:
        r"""Create a partner input

        :param self:
        :param Tags:  A collection of key-value pairs.<br/>RequestId:  Unique identifier of the request to ensure the request is handled
exactly once in case of retries.
<br/>InputId:  Unique ID of the input.<br/>
        :return: Input:  Placeholder documentation for Input:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> Placeholder documentation for InputType<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> A collection of key-value pairs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> Placeholder documentation for InputState<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Sources</i> A list of the sources of the input (PULL-type).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroups</i> A list of IDs for all the Input Security Groups attached to the input.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The Amazon Resource Name (ARN) of the role this input assumes during and after creation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The user-assigned name (This is a mutable value).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MediaConnectFlows</i> A list of MediaConnect Flows for this input.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InputSourceType</i> Certain pull input sources can be dynamic, meaning that they can have their URL's dynamically changes
during input switch actions. Presently, this functionality only works with MP4_FILE inputs.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InputPartnerIds</i> A list of IDs for all Inputs which are partners of this one.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InputDevices</i> Settings for the input devices.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InputClass</i> STANDARD - MediaLive expects two sources to be connected to this input. If the channel is also STANDARD, both sources will be ingested. If the channel is SINGLE_PIPELINE, only the first source will be ingested; the second source will always be ignored, even if the first source fails.
SINGLE_PIPELINE - You can connect only one source to this input. If the ChannelClass is also  SINGLE_PIPELINE, this value is valid. If the ChannelClass is STANDARD, this value is not valid because the channel requires two sources in the input.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The generated ID of the input (unique for user account, immutable).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Destinations</i> A list of the destinations of the input (PUSH-type).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AttachedChannels</i> A list of channel IDs that that input is attached to (currently an input can only be attached to one channel).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Unique ARN of the input (generated, immutable).<br/>        """
        pass

    def create_tags(self, ResourceArn: str, Tags: Tags=None):
        r"""Create tags for a resource

        :param self:
        :param Tags:  Placeholder documentation for Tags<br/>ResourceArn:  Placeholder documentation for __string<br/>
        :return:         """
        pass

    def delete_channel(self, ChannelId: str) -> DeleteChannelResponse:
        r"""Starts deletion of channel. The associated outputs are also deleted.

        :param self:
        :param ChannelId:  Unique ID of the channel.<br/>
        :return: Vpc:  Settings for VPC output:<br/>Tags:  A collection of key-value pairs.<br/>State:  Placeholder documentation for ChannelState<br/>RoleArn:  The Amazon Resource Name (ARN) of the role assumed when running the Channel.<br/>PipelinesRunningCount:  The number of currently healthy pipelines.<br/>PipelineDetails:  Runtime details for the pipelines of a running channel.<br/>Name:  The name of the channel. (user-mutable)<br/>LogLevel:  The log level being written to CloudWatch Logs.<br/>InputSpecification:  Specification of network and file inputs for this channel:<br/>InputAttachments:  List of input attachments for channel.<br/>Id:  The unique id of the channel.<br/>EncoderSettings:  Encoder Settings:<br/>EgressEndpoints:  The endpoints where outgoing connections initiate from<br/>Destinations:  A list of destinations of the channel. For UDP outputs, there is one
destination per output. For other types (HLS, for example), there is
one destination per packager.
<br/>ChannelClass:  The class for this channel. STANDARD for a channel with two pipelines or SINGLE_PIPELINE for a channel with one pipeline.<br/>CdiInputSpecification:  Specification of CDI inputs for this channel:<br/>Arn:  The unique arn of the channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Resolution</i> Maximum CDI input resolution<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VideoDescriptions</i> Placeholder documentation for __listOfVideoDescription<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TimecodeConfig</i> Contains settings used to acquire and adjust timecode information from inputs.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TimecodeConfig</b>: Contains settings used to acquire and adjust timecode information from inputs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OutputGroups</i> Placeholder documentation for __listOfOutputGroup<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NielsenConfiguration</i> Nielsen configuration settings.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>NielsenConfiguration</b>: Nielsen configuration settings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MotionGraphicsConfiguration</i> Settings for motion graphics.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>MotionGraphicsConfiguration</b>: Settings for motion graphics.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalConfiguration</i> Configuration settings that apply to the event as a whole.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>GlobalConfiguration</b>: Configuration settings that apply to the event as a whole.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FeatureActivations</i> Feature Activations&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>FeatureActivations</b>: Feature Activations<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CaptionDescriptions</i> Settings for caption decriptions<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BlackoutSlate</i> Settings for blackout slate.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>BlackoutSlate</b>: Settings for blackout slate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailConfiguration</i> Event-wide configuration settings for ad avail insertion.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AvailConfiguration</b>: Event-wide configuration settings for ad avail insertion.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailBlanking</i> Settings for ad avail blanking.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AvailBlanking</b>: Settings for ad avail blanking.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AudioDescriptions</i> Placeholder documentation for __listOfAudioDescription<br/>Blanking image to be used. Leave empty for solid black. Only bmp and png images are supported.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AvailBlankingImage</b>: Blanking image to be used. Leave empty for solid black. Only bmp and png images are supported.Ad avail settings.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AvailSettings</b>: Ad avail settings.Blackout slate image to be used. Leave empty for solid black. Only bmp and png images are supported.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>BlackoutSlateImage</b>: Blackout slate image to be used. Leave empty for solid black. Only bmp and png images are supported.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InputPrepareScheduleActions</i> Enables the Input Prepare feature. You can create Input Prepare actions in the schedule only if this feature is enabled.
If you disable the feature on an existing schedule, make sure that you first delete all input prepare actions from the schedule.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InputEndAction</i> Indicates the action to take when the current input completes (e.g. end-of-file). When switchAndLoopInputs is configured the encoder will restart at the beginning of the first input.  When "none" is configured the encoder will transcode either black, a solid color, or a user specified slate images per the "Input Loss Behavior" configuration until the next input switch occurs (which is controlled through the Channel Schedule API).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InitialAudioGain</i> Value to set the initial audio gain for the Live Event.<br/>Settings for system actions when input is lost.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>InputLossBehavior</b>: Settings for system actions when input is lost.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MotionGraphicsInsertion</i> Motion Graphics Insertion<br/>Motion Graphics Settings&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>MotionGraphicsSettings</b>: Motion Graphics Settings&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NielsenPcmToId3Tagging</i> Enables Nielsen PCM to ID3 tagging<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DistributorId</i> Enter the Distributor ID assigned to your organization by Nielsen.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SyncThreshold</i> Threshold in frames beyond which output timecode is resynchronized to the input timecode. Discrepancies below this threshold are permitted to avoid unnecessary discontinuities in the output timecode. No timecode sync when this is not specified.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Source</i> Identifies the source for the timecode that will be associated with the events outputs.
-Embedded (embedded): Initialize the output timecode with timecode from the the source.  If no embedded timecode is detected in the source, the system falls back to using "Start at 0" (zerobased).
-System Clock (systemclock): Use the UTC time.
-Start at 0 (zerobased): The time of the first frame of the event will be 00:00:00:00.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Resolution</i> Input resolution, categorized coarsely<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaximumBitrate</i> Maximum input bitrate, categorized coarsely<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Codec</i> Input codec<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetIds</i> A list of VPC subnet IDs from the same VPC.
If STANDARD channel, subnet IDs must be mapped to two unique availability zones (AZ).
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> A list of up EC2 VPC security group IDs attached to the Output VPC network interfaces.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkInterfaceIds</i> A list of Elastic Network Interfaces created by MediaLive in the customer's VPC
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZones</i> The Availability Zones where the vpc subnets are located.
The first Availability Zone applies to the first subnet in the list of subnets.
The second Availability Zone applies to the second subnet.
<br/>        """
        pass

    def delete_input(self, InputId: str) -> DeleteInputResponse:
        r"""Deletes the input end point

        :param self:
        :param InputId:  Unique ID of the input<br/>
        :return:         """
        pass

    def delete_input_security_group(self, InputSecurityGroupId: str) -> DeleteInputSecurityGroupResponse:
        r"""Deletes an Input Security Group

        :param self:
        :param InputSecurityGroupId:  The Input Security Group to delete<br/>
        :return:         """
        pass

    def delete_multiplex(self, MultiplexId: str) -> DeleteMultiplexResponse:
        r"""Delete a multiplex. The multiplex must be idle.

        :param self:
        :param MultiplexId:  The ID of the multiplex.<br/>
        :return: Tags:  A collection of key-value pairs.<br/>State:  The current state of the multiplex.<br/>ProgramCount:  The number of programs in the multiplex.<br/>PipelinesRunningCount:  The number of currently healthy pipelines.<br/>Name:  The name of the multiplex.<br/>MultiplexSettings:  Configuration for a multiplex event.:<br/>Id:  The unique id of the multiplex.<br/>Destinations:  A list of the multiplex output destinations.<br/>AvailabilityZones:  A list of availability zones for the multiplex.<br/>Arn:  The unique arn of the multiplex.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransportStreamReservedBitrate</i> Transport stream reserved bit rate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransportStreamId</i> Transport stream ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransportStreamBitrate</i> Transport stream bit rate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaximumVideoBufferDelayMilliseconds</i> Maximum video buffer delay in milliseconds.<br/>        """
        pass

    def delete_multiplex_program(self, ProgramName: str, MultiplexId: str) -> DeleteMultiplexProgramResponse:
        r"""Delete a program from a multiplex.

        :param self:
        :param ProgramName:  The multiplex program name.<br/>MultiplexId:  The ID of the multiplex that the program belongs to.<br/>
        :return: ProgramName:  The name of the multiplex program.<br/>PipelineDetails:  Contains information about the current sources for the specified program in the specified multiplex. Keep in mind that each multiplex pipeline connects to both pipelines in a given source channel (the channel identified by the program). But only one of those channel pipelines is ever active at one time.<br/>PacketIdentifiersMap:  The packet identifier map for this multiplex program.:<br/>MultiplexProgramSettings:  The settings for this multiplex program.:<br/>ChannelId:  The MediaLive channel associated with the program.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VideoSettings</i> Program video settings configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>VideoSettings</b>: Program video settings configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceDescriptor</i> Transport stream service descriptor configuration for the Multiplex program.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ServiceDescriptor</b>: Transport stream service descriptor configuration for the Multiplex program.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProgramNumber</i> Unique program number.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredChannelPipeline</i> Indicates which pipeline is preferred by the multiplex for program ingest.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceName</i> Name of the service.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ProviderName</i> Name of the provider.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ConstantBitrate</i> The constant bitrate configuration for the video encode.
When this field is defined, StatmuxSettings must be undefined.<br/>Statmux rate control settings.
When this field is defined, ConstantBitrate must be undefined.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StatmuxSettings</b>: Statmux rate control settings.
When this field is defined, ConstantBitrate must be undefined.&nbsp;&nbsp;&nbsp;&nbsp; <i>VideoPid</i> Placeholder documentation for __integer<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TimedMetadataPid</i> Placeholder documentation for __integer<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Scte35Pid</i> Placeholder documentation for __integer<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Scte27Pids</i> Placeholder documentation for __listOf__integer<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PrivateMetadataPid</i> Placeholder documentation for __integer<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PmtPid</i> Placeholder documentation for __integer<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PcrPid</i> Placeholder documentation for __integer<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KlvDataPids</i> Placeholder documentation for __listOf__integer<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EtvSignalPid</i> Placeholder documentation for __integer<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EtvPlatformPid</i> Placeholder documentation for __integer<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DvbTeletextPid</i> Placeholder documentation for __integer<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DvbSubPids</i> Placeholder documentation for __listOf__integer<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AudioPids</i> Placeholder documentation for __listOf__integer<br/>        """
        pass

    def delete_reservation(self, ReservationId: str) -> DeleteReservationResponse:
        r"""Delete an expired reservation.

        :param self:
        :param ReservationId:  Unique reservation ID, e.g. '1234567'<br/>
        :return: UsagePrice:  Recurring usage charge for each reserved resource, e.g. '157.0'<br/>Tags:  A collection of key-value pairs<br/>State:  Current state of reservation, e.g. 'ACTIVE'<br/>Start:  Reservation UTC start date and time in ISO-8601 format, e.g. '2018-03-01T00:00:00'<br/>ResourceSpecification:  Resource configuration details:<br/>ReservationId:  Unique reservation ID, e.g. '1234567'<br/>Region:  AWS region, e.g. 'us-west-2'<br/>OfferingType:  Offering type, e.g. 'NO_UPFRONT'<br/>OfferingId:  Unique offering ID, e.g. '87654321'<br/>OfferingDescription:  Offering description, e.g. 'HD AVC output at 10-20 Mbps, 30 fps, and standard VQ in US West (Oregon)'<br/>Name:  User specified reservation name<br/>FixedPrice:  One-time charge for each reserved resource, e.g. '0.0' for a NO_UPFRONT offering<br/>End:  Reservation UTC end date and time in ISO-8601 format, e.g. '2019-03-01T00:00:00'<br/>DurationUnits:  Units for duration, e.g. 'MONTHS'<br/>Duration:  Lease duration, e.g. '12'<br/>CurrencyCode:  Currency code for usagePrice and fixedPrice in ISO-4217 format, e.g. 'USD'<br/>Count:  Number of reserved resources<br/>Arn:  Unique reservation ARN, e.g. 'arn:aws:medialive:us-west-2:123456789012:reservation:1234567'<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VideoQuality</i> Video quality, e.g. 'STANDARD' (Outputs only)<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SpecialFeature</i> Special feature, e.g. 'AUDIO_NORMALIZATION' (Channels only)<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceType</i> Resource type, 'INPUT', 'OUTPUT', 'MULTIPLEX', or 'CHANNEL'<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Resolution</i> Resolution, e.g. 'HD'<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaximumFramerate</i> Maximum framerate, e.g. 'MAX_30_FPS' (Outputs only)<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaximumBitrate</i> Maximum bitrate, e.g. 'MAX_20_MBPS'<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Codec</i> Codec, e.g. 'AVC'<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ChannelClass</i> Channel class, e.g. 'STANDARD'<br/>        """
        pass

    def delete_schedule(self, ChannelId: str) -> DeleteScheduleResponse:
        r"""Delete all schedule actions on a channel.

        :param self:
        :param ChannelId:  Id of the channel whose schedule is being deleted.<br/>
        :return:         """
        pass

    def delete_tags(self, TagKeys: List[__string], ResourceArn: str):
        r"""Removes tags for a resource

        :param self:
        :param TagKeys:  An array of tag keys to delete<br/>ResourceArn:  Placeholder documentation for __string<br/>
        :return:         """
        pass

    def describe_channel(self, ChannelId: str) -> DescribeChannelResponse:
        r"""Gets details about a channel

        :param self:
        :param ChannelId:  channel ID<br/>
        :return: Vpc:  Settings for VPC output:<br/>Tags:  A collection of key-value pairs.<br/>State:  Placeholder documentation for ChannelState<br/>RoleArn:  The Amazon Resource Name (ARN) of the role assumed when running the Channel.<br/>PipelinesRunningCount:  The number of currently healthy pipelines.<br/>PipelineDetails:  Runtime details for the pipelines of a running channel.<br/>Name:  The name of the channel. (user-mutable)<br/>LogLevel:  The log level being written to CloudWatch Logs.<br/>InputSpecification:  Specification of network and file inputs for this channel:<br/>InputAttachments:  List of input attachments for channel.<br/>Id:  The unique id of the channel.<br/>EncoderSettings:  Encoder Settings:<br/>EgressEndpoints:  The endpoints where outgoing connections initiate from<br/>Destinations:  A list of destinations of the channel. For UDP outputs, there is one
destination per output. For other types (HLS, for example), there is
one destination per packager.
<br/>ChannelClass:  The class for this channel. STANDARD for a channel with two pipelines or SINGLE_PIPELINE for a channel with one pipeline.<br/>CdiInputSpecification:  Specification of CDI inputs for this channel:<br/>Arn:  The unique arn of the channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Resolution</i> Maximum CDI input resolution<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VideoDescriptions</i> Placeholder documentation for __listOfVideoDescription<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TimecodeConfig</i> Contains settings used to acquire and adjust timecode information from inputs.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TimecodeConfig</b>: Contains settings used to acquire and adjust timecode information from inputs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OutputGroups</i> Placeholder documentation for __listOfOutputGroup<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NielsenConfiguration</i> Nielsen configuration settings.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>NielsenConfiguration</b>: Nielsen configuration settings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MotionGraphicsConfiguration</i> Settings for motion graphics.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>MotionGraphicsConfiguration</b>: Settings for motion graphics.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalConfiguration</i> Configuration settings that apply to the event as a whole.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>GlobalConfiguration</b>: Configuration settings that apply to the event as a whole.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FeatureActivations</i> Feature Activations&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>FeatureActivations</b>: Feature Activations<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CaptionDescriptions</i> Settings for caption decriptions<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BlackoutSlate</i> Settings for blackout slate.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>BlackoutSlate</b>: Settings for blackout slate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailConfiguration</i> Event-wide configuration settings for ad avail insertion.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AvailConfiguration</b>: Event-wide configuration settings for ad avail insertion.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailBlanking</i> Settings for ad avail blanking.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AvailBlanking</b>: Settings for ad avail blanking.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AudioDescriptions</i> Placeholder documentation for __listOfAudioDescription<br/>Blanking image to be used. Leave empty for solid black. Only bmp and png images are supported.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AvailBlankingImage</b>: Blanking image to be used. Leave empty for solid black. Only bmp and png images are supported.Ad avail settings.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AvailSettings</b>: Ad avail settings.Blackout slate image to be used. Leave empty for solid black. Only bmp and png images are supported.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>BlackoutSlateImage</b>: Blackout slate image to be used. Leave empty for solid black. Only bmp and png images are supported.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InputPrepareScheduleActions</i> Enables the Input Prepare feature. You can create Input Prepare actions in the schedule only if this feature is enabled.
If you disable the feature on an existing schedule, make sure that you first delete all input prepare actions from the schedule.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InputEndAction</i> Indicates the action to take when the current input completes (e.g. end-of-file). When switchAndLoopInputs is configured the encoder will restart at the beginning of the first input.  When "none" is configured the encoder will transcode either black, a solid color, or a user specified slate images per the "Input Loss Behavior" configuration until the next input switch occurs (which is controlled through the Channel Schedule API).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InitialAudioGain</i> Value to set the initial audio gain for the Live Event.<br/>Settings for system actions when input is lost.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>InputLossBehavior</b>: Settings for system actions when input is lost.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MotionGraphicsInsertion</i> Motion Graphics Insertion<br/>Motion Graphics Settings&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>MotionGraphicsSettings</b>: Motion Graphics Settings&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NielsenPcmToId3Tagging</i> Enables Nielsen PCM to ID3 tagging<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DistributorId</i> Enter the Distributor ID assigned to your organization by Nielsen.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SyncThreshold</i> Threshold in frames beyond which output timecode is resynchronized to the input timecode. Discrepancies below this threshold are permitted to avoid unnecessary discontinuities in the output timecode. No timecode sync when this is not specified.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Source</i> Identifies the source for the timecode that will be associated with the events outputs.
-Embedded (embedded): Initialize the output timecode with timecode from the the source.  If no embedded timecode is detected in the source, the system falls back to using "Start at 0" (zerobased).
-System Clock (systemclock): Use the UTC time.
-Start at 0 (zerobased): The time of the first frame of the event will be 00:00:00:00.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Resolution</i> Input resolution, categorized coarsely<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaximumBitrate</i> Maximum input bitrate, categorized coarsely<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Codec</i> Input codec<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetIds</i> A list of VPC subnet IDs from the same VPC.
If STANDARD channel, subnet IDs must be mapped to two unique availability zones (AZ).
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> A list of up EC2 VPC security group IDs attached to the Output VPC network interfaces.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkInterfaceIds</i> A list of Elastic Network Interfaces created by MediaLive in the customer's VPC
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZones</i> The Availability Zones where the vpc subnets are located.
The first Availability Zone applies to the first subnet in the list of subnets.
The second Availability Zone applies to the second subnet.
<br/>        """
        pass

    def describe_input(self, InputId: str) -> DescribeInputResponse:
        r"""Produces details about an input

        :param self:
        :param InputId:  Unique ID of the input<br/>
        :return: Type:  Placeholder documentation for InputType<br/>Tags:  A collection of key-value pairs.<br/>State:  Placeholder documentation for InputState<br/>Sources:  A list of the sources of the input (PULL-type).<br/>SecurityGroups:  A list of IDs for all the Input Security Groups attached to the input.<br/>RoleArn:  The Amazon Resource Name (ARN) of the role this input assumes during and after creation.<br/>Name:  The user-assigned name (This is a mutable value).<br/>MediaConnectFlows:  A list of MediaConnect Flows for this input.<br/>InputSourceType:  Certain pull input sources can be dynamic, meaning that they can have their URL's dynamically changes
during input switch actions. Presently, this functionality only works with MP4_FILE inputs.
<br/>InputPartnerIds:  A list of IDs for all Inputs which are partners of this one.<br/>InputDevices:  Settings for the input devices.<br/>InputClass:  STANDARD - MediaLive expects two sources to be connected to this input. If the channel is also STANDARD, both sources will be ingested. If the channel is SINGLE_PIPELINE, only the first source will be ingested; the second source will always be ignored, even if the first source fails.
SINGLE_PIPELINE - You can connect only one source to this input. If the ChannelClass is also  SINGLE_PIPELINE, this value is valid. If the ChannelClass is STANDARD, this value is not valid because the channel requires two sources in the input.
<br/>Id:  The generated ID of the input (unique for user account, immutable).<br/>Destinations:  A list of the destinations of the input (PUSH-type).<br/>AttachedChannels:  A list of channel IDs that that input is attached to (currently an input can only be attached to one channel).<br/>Arn:  The Unique ARN of the input (generated, immutable).<br/>        """
        pass

    def describe_input_device(self, InputDeviceId: str) -> DescribeInputDeviceResponse:
        r"""Gets the details for the input device

        :param self:
        :param InputDeviceId:  The unique ID of this input device. For example, hd-123456789abcdef.<br/>
        :return: UhdDeviceSettings:  Settings that describe an input device that is type UHD.:<br/>Type:  The type of the input device.<br/>SerialNumber:  The unique serial number of the input device.<br/>NetworkSettings:  The network settings for the input device.:<br/>Name:  A name that you specify for the input device.<br/>MacAddress:  The network MAC address of the input device.<br/>Id:  The unique ID of the input device.<br/>HdDeviceSettings:  Settings that describe an input device that is type HD.:<br/>DeviceUpdateStatus:  The status of software on the input device.<br/>DeviceSettingsSyncState:  The status of the action to synchronize the device configuration. If you change the configuration of the input device (for example, the maximum bitrate), MediaLive sends the new data to the device. The device might not update itself immediately. SYNCED means the device has updated its configuration. SYNCING means that it has not updated its configuration.<br/>ConnectionState:  The state of the connection between the input device and AWS.<br/>Arn:  The unique ARN of the input device.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Width</i> The width of the video source, in pixels.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ScanType</i> The scan type of the video source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxBitrate</i> The current maximum bitrate for ingesting this source, in bits per second. You can specify this maximum.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Height</i> The height of the video source, in pixels.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Framerate</i> The frame rate of the video source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeviceState</i> The state of the input device.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConfiguredInput</i> The source at the input device that is currently active. You can specify this source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActiveInput</i> If you specified Auto as the configured input, specifies which of the sources is currently active (SDI or HDMI).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetMask</i> The subnet mask of the input device.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IpScheme</i> Specifies whether the input device has been configured (outside of MediaLive) to use a dynamic IP address assignment (DHCP) or a static IP address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IpAddress</i> The IP address of the input device.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Gateway</i> The network gateway IP address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DnsAddresses</i> The DNS addresses of the input device.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Width</i> The width of the video source, in pixels.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ScanType</i> The scan type of the video source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxBitrate</i> The current maximum bitrate for ingesting this source, in bits per second. You can specify this maximum.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Height</i> The height of the video source, in pixels.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Framerate</i> The frame rate of the video source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeviceState</i> The state of the input device.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConfiguredInput</i> The source at the input device that is currently active. You can specify this source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActiveInput</i> If you specified Auto as the configured input, specifies which of the sources is currently active (SDI or HDMI).<br/>        """
        pass

    def describe_input_device_thumbnail(self, Accept: str, InputDeviceId: str) -> DescribeInputDeviceThumbnailResponse:
        r"""Get the latest thumbnail data for the input device.

        :param self:
        :param Accept:  The HTTP Accept header. Indicates the requested type for the thumbnail.<br/>InputDeviceId:  The unique ID of this input device. For example, hd-123456789abcdef.<br/>
        :return: LastModified:  The date and time the thumbnail was last updated at the device.<br/>ETag:  The unique, cacheable version of this thumbnail.<br/>ContentLength:  The length of the content.<br/>ContentType:  Specifies the media type of the thumbnail.<br/>Body:  The binary data for the thumbnail that the Link device has most recently sent to MediaLive.<br/>        """
        pass

    def describe_input_security_group(self, InputSecurityGroupId: str) -> DescribeInputSecurityGroupResponse:
        r"""Produces a summary of an Input Security Group

        :param self:
        :param InputSecurityGroupId:  The id of the Input Security Group to describe<br/>
        :return: WhitelistRules:  Whitelist rules and their sync status<br/>Tags:  A collection of key-value pairs.<br/>State:  The current state of the Input Security Group.<br/>Inputs:  The list of inputs currently using this Input Security Group.<br/>Id:  The Id of the Input Security Group<br/>Arn:  Unique ARN of Input Security Group<br/>        """
        pass

    def describe_multiplex(self, MultiplexId: str) -> DescribeMultiplexResponse:
        r"""Gets details about a multiplex.

        :param self:
        :param MultiplexId:  The ID of the multiplex.<br/>
        :return: Tags:  A collection of key-value pairs.<br/>State:  The current state of the multiplex.<br/>ProgramCount:  The number of programs in the multiplex.<br/>PipelinesRunningCount:  The number of currently healthy pipelines.<br/>Name:  The name of the multiplex.<br/>MultiplexSettings:  Configuration for a multiplex event.:<br/>Id:  The unique id of the multiplex.<br/>Destinations:  A list of the multiplex output destinations.<br/>AvailabilityZones:  A list of availability zones for the multiplex.<br/>Arn:  The unique arn of the multiplex.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransportStreamReservedBitrate</i> Transport stream reserved bit rate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransportStreamId</i> Transport stream ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransportStreamBitrate</i> Transport stream bit rate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaximumVideoBufferDelayMilliseconds</i> Maximum video buffer delay in milliseconds.<br/>        """
        pass

    def describe_multiplex_program(self, ProgramName: str, MultiplexId: str) -> DescribeMultiplexProgramResponse:
        r"""Get the details for a program in a multiplex.

        :param self:
        :param ProgramName:  The name of the program.<br/>MultiplexId:  The ID of the multiplex that the program belongs to.<br/>
        :return: ProgramName:  The name of the multiplex program.<br/>PipelineDetails:  Contains information about the current sources for the specified program in the specified multiplex. Keep in mind that each multiplex pipeline connects to both pipelines in a given source channel (the channel identified by the program). But only one of those channel pipelines is ever active at one time.<br/>PacketIdentifiersMap:  The packet identifier map for this multiplex program.:<br/>MultiplexProgramSettings:  The settings for this multiplex program.:<br/>ChannelId:  The MediaLive channel associated with the program.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VideoSettings</i> Program video settings configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>VideoSettings</b>: Program video settings configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceDescriptor</i> Transport stream service descriptor configuration for the Multiplex program.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ServiceDescriptor</b>: Transport stream service descriptor configuration for the Multiplex program.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProgramNumber</i> Unique program number.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredChannelPipeline</i> Indicates which pipeline is preferred by the multiplex for program ingest.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceName</i> Name of the service.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ProviderName</i> Name of the provider.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ConstantBitrate</i> The constant bitrate configuration for the video encode.
When this field is defined, StatmuxSettings must be undefined.<br/>Statmux rate control settings.
When this field is defined, ConstantBitrate must be undefined.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StatmuxSettings</b>: Statmux rate control settings.
When this field is defined, ConstantBitrate must be undefined.&nbsp;&nbsp;&nbsp;&nbsp; <i>VideoPid</i> Placeholder documentation for __integer<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TimedMetadataPid</i> Placeholder documentation for __integer<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Scte35Pid</i> Placeholder documentation for __integer<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Scte27Pids</i> Placeholder documentation for __listOf__integer<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PrivateMetadataPid</i> Placeholder documentation for __integer<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PmtPid</i> Placeholder documentation for __integer<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PcrPid</i> Placeholder documentation for __integer<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KlvDataPids</i> Placeholder documentation for __listOf__integer<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EtvSignalPid</i> Placeholder documentation for __integer<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EtvPlatformPid</i> Placeholder documentation for __integer<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DvbTeletextPid</i> Placeholder documentation for __integer<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DvbSubPids</i> Placeholder documentation for __listOf__integer<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AudioPids</i> Placeholder documentation for __listOf__integer<br/>        """
        pass

    def describe_offering(self, OfferingId: str) -> DescribeOfferingResponse:
        r"""Get details for an offering.

        :param self:
        :param OfferingId:  Unique offering ID, e.g. '87654321'<br/>
        :return: UsagePrice:  Recurring usage charge for each reserved resource, e.g. '157.0'<br/>ResourceSpecification:  Resource configuration details:<br/>Region:  AWS region, e.g. 'us-west-2'<br/>OfferingType:  Offering type, e.g. 'NO_UPFRONT'<br/>OfferingId:  Unique offering ID, e.g. '87654321'<br/>OfferingDescription:  Offering description, e.g. 'HD AVC output at 10-20 Mbps, 30 fps, and standard VQ in US West (Oregon)'<br/>FixedPrice:  One-time charge for each reserved resource, e.g. '0.0' for a NO_UPFRONT offering<br/>DurationUnits:  Units for duration, e.g. 'MONTHS'<br/>Duration:  Lease duration, e.g. '12'<br/>CurrencyCode:  Currency code for usagePrice and fixedPrice in ISO-4217 format, e.g. 'USD'<br/>Arn:  Unique offering ARN, e.g. 'arn:aws:medialive:us-west-2:123456789012:offering:87654321'<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VideoQuality</i> Video quality, e.g. 'STANDARD' (Outputs only)<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SpecialFeature</i> Special feature, e.g. 'AUDIO_NORMALIZATION' (Channels only)<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceType</i> Resource type, 'INPUT', 'OUTPUT', 'MULTIPLEX', or 'CHANNEL'<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Resolution</i> Resolution, e.g. 'HD'<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaximumFramerate</i> Maximum framerate, e.g. 'MAX_30_FPS' (Outputs only)<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaximumBitrate</i> Maximum bitrate, e.g. 'MAX_20_MBPS'<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Codec</i> Codec, e.g. 'AVC'<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ChannelClass</i> Channel class, e.g. 'STANDARD'<br/>        """
        pass

    def describe_reservation(self, ReservationId: str) -> DescribeReservationResponse:
        r"""Get details for a reservation.

        :param self:
        :param ReservationId:  Unique reservation ID, e.g. '1234567'<br/>
        :return: UsagePrice:  Recurring usage charge for each reserved resource, e.g. '157.0'<br/>Tags:  A collection of key-value pairs<br/>State:  Current state of reservation, e.g. 'ACTIVE'<br/>Start:  Reservation UTC start date and time in ISO-8601 format, e.g. '2018-03-01T00:00:00'<br/>ResourceSpecification:  Resource configuration details:<br/>ReservationId:  Unique reservation ID, e.g. '1234567'<br/>Region:  AWS region, e.g. 'us-west-2'<br/>OfferingType:  Offering type, e.g. 'NO_UPFRONT'<br/>OfferingId:  Unique offering ID, e.g. '87654321'<br/>OfferingDescription:  Offering description, e.g. 'HD AVC output at 10-20 Mbps, 30 fps, and standard VQ in US West (Oregon)'<br/>Name:  User specified reservation name<br/>FixedPrice:  One-time charge for each reserved resource, e.g. '0.0' for a NO_UPFRONT offering<br/>End:  Reservation UTC end date and time in ISO-8601 format, e.g. '2019-03-01T00:00:00'<br/>DurationUnits:  Units for duration, e.g. 'MONTHS'<br/>Duration:  Lease duration, e.g. '12'<br/>CurrencyCode:  Currency code for usagePrice and fixedPrice in ISO-4217 format, e.g. 'USD'<br/>Count:  Number of reserved resources<br/>Arn:  Unique reservation ARN, e.g. 'arn:aws:medialive:us-west-2:123456789012:reservation:1234567'<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VideoQuality</i> Video quality, e.g. 'STANDARD' (Outputs only)<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SpecialFeature</i> Special feature, e.g. 'AUDIO_NORMALIZATION' (Channels only)<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceType</i> Resource type, 'INPUT', 'OUTPUT', 'MULTIPLEX', or 'CHANNEL'<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Resolution</i> Resolution, e.g. 'HD'<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaximumFramerate</i> Maximum framerate, e.g. 'MAX_30_FPS' (Outputs only)<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaximumBitrate</i> Maximum bitrate, e.g. 'MAX_20_MBPS'<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Codec</i> Codec, e.g. 'AVC'<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ChannelClass</i> Channel class, e.g. 'STANDARD'<br/>        """
        pass

    def describe_schedule(self, ChannelId: str, MaxResults: int=None, NextToken: str=None) -> DescribeScheduleResponse:
        r"""Get a channel schedule

        :param self:
        :param NextToken:  Placeholder documentation for __string<br/>MaxResults:  Placeholder documentation for MaxResults<br/>ChannelId:  Id of the channel whose schedule is being updated.<br/>
        :return: ScheduleActions:  The list of actions in the schedule.<br/>NextToken:  The next token; for use in pagination.<br/>        """
        pass

    def list_channels(self, MaxResults: int=None, NextToken: str=None) -> ListChannelsResponse:
        r"""Produces list of channels that have been created

        :param self:
        :param NextToken:  Placeholder documentation for __string<br/>MaxResults:  Placeholder documentation for MaxResults<br/>
        :return: NextToken:  Placeholder documentation for __string<br/>Channels:  Placeholder documentation for __listOfChannelSummary<br/>        """
        pass

    def list_input_device_transfers(self, TransferType: str, MaxResults: int=None, NextToken: str=None) -> ListInputDeviceTransfersResponse:
        r"""List input devices that are currently being transferred. List input devices that you are transferring from your AWS account or input devices that another AWS account is transferring to you.

        :param self:
        :param TransferType:  Placeholder documentation for __string<br/>NextToken:  Placeholder documentation for __string<br/>MaxResults:  Placeholder documentation for MaxResults<br/>
        :return: NextToken:  A token to get additional list results.<br/>InputDeviceTransfers:  The list of devices that you are transferring or are being transferred to you.<br/>        """
        pass

    def list_input_devices(self, MaxResults: int=None, NextToken: str=None) -> ListInputDevicesResponse:
        r"""List input devices

        :param self:
        :param NextToken:  Placeholder documentation for __string<br/>MaxResults:  Placeholder documentation for MaxResults<br/>
        :return: NextToken:  A token to get additional list results.<br/>InputDevices:  The list of input devices.<br/>        """
        pass

    def list_input_security_groups(self, MaxResults: int=None, NextToken: str=None) -> ListInputSecurityGroupsResponse:
        r"""Produces a list of Input Security Groups for an account

        :param self:
        :param NextToken:  Placeholder documentation for __string<br/>MaxResults:  Placeholder documentation for MaxResults<br/>
        :return: NextToken:  Placeholder documentation for __string<br/>InputSecurityGroups:  List of input security groups<br/>        """
        pass

    def list_inputs(self, MaxResults: int=None, NextToken: str=None) -> ListInputsResponse:
        r"""Produces list of inputs that have been created

        :param self:
        :param NextToken:  Placeholder documentation for __string<br/>MaxResults:  Placeholder documentation for MaxResults<br/>
        :return: NextToken:  Placeholder documentation for __string<br/>Inputs:  Placeholder documentation for __listOfInput<br/>        """
        pass

    def list_multiplex_programs(self, MultiplexId: str, MaxResults: int=None, NextToken: str=None) -> ListMultiplexProgramsResponse:
        r"""List the programs that currently exist for a specific multiplex.

        :param self:
        :param NextToken:  The token to retrieve the next page of results.<br/>MultiplexId:  The ID of the multiplex that the programs belong to.<br/>MaxResults:  The maximum number of items to return.<br/>
        :return: NextToken:  Token for the next ListMultiplexProgram request.<br/>MultiplexPrograms:  List of multiplex programs.<br/>        """
        pass

    def list_multiplexes(self, MaxResults: int=None, NextToken: str=None) -> ListMultiplexesResponse:
        r"""Retrieve a list of the existing multiplexes.

        :param self:
        :param NextToken:  The token to retrieve the next page of results.<br/>MaxResults:  The maximum number of items to return.<br/>
        :return: NextToken:  Token for the next ListMultiplexes request.<br/>Multiplexes:  List of multiplexes.<br/>        """
        pass

    def list_offerings(self, ChannelClass: str=None, ChannelConfiguration: str=None, Codec: str=None, Duration: str=None, MaxResults: int=None, MaximumBitrate: str=None, MaximumFramerate: str=None, NextToken: str=None, Resolution: str=None, ResourceType: str=None, SpecialFeature: str=None, VideoQuality: str=None) -> ListOfferingsResponse:
        r"""List offerings available for purchase.

        :param self:
        :param VideoQuality:  Filter by video quality, 'STANDARD', 'ENHANCED', or 'PREMIUM'
<br/>SpecialFeature:  Filter by special feature, 'ADVANCED_AUDIO' or 'AUDIO_NORMALIZATION'
<br/>ResourceType:  Filter by resource type, 'INPUT', 'OUTPUT', 'MULTIPLEX', or 'CHANNEL'<br/>Resolution:  Filter by resolution, 'SD', 'HD', 'FHD', or 'UHD'<br/>NextToken:  Placeholder documentation for __string<br/>MaximumFramerate:  Filter by framerate, 'MAX_30_FPS' or 'MAX_60_FPS'<br/>MaximumBitrate:  Filter by bitrate, 'MAX_10_MBPS', 'MAX_20_MBPS', or 'MAX_50_MBPS'
<br/>MaxResults:  Placeholder documentation for MaxResults<br/>Duration:  Filter by offering duration, e.g. '12'<br/>Codec:  Filter by codec, 'AVC', 'HEVC', 'MPEG2', 'AUDIO', or 'LINK'<br/>ChannelConfiguration:  Filter to offerings that match the configuration of an existing channel, e.g. '2345678' (a channel ID)
<br/>ChannelClass:  Filter by channel class, 'STANDARD' or 'SINGLE_PIPELINE'
<br/>
        :return: Offerings:  List of offerings<br/>NextToken:  Token to retrieve the next page of results<br/>        """
        pass

    def list_reservations(self, ChannelClass: str=None, Codec: str=None, MaxResults: int=None, MaximumBitrate: str=None, MaximumFramerate: str=None, NextToken: str=None, Resolution: str=None, ResourceType: str=None, SpecialFeature: str=None, VideoQuality: str=None) -> ListReservationsResponse:
        r"""List purchased reservations.

        :param self:
        :param VideoQuality:  Filter by video quality, 'STANDARD', 'ENHANCED', or 'PREMIUM'
<br/>SpecialFeature:  Filter by special feature, 'ADVANCED_AUDIO' or 'AUDIO_NORMALIZATION'
<br/>ResourceType:  Filter by resource type, 'INPUT', 'OUTPUT', 'MULTIPLEX', or 'CHANNEL'<br/>Resolution:  Filter by resolution, 'SD', 'HD', 'FHD', or 'UHD'<br/>NextToken:  Placeholder documentation for __string<br/>MaximumFramerate:  Filter by framerate, 'MAX_30_FPS' or 'MAX_60_FPS'<br/>MaximumBitrate:  Filter by bitrate, 'MAX_10_MBPS', 'MAX_20_MBPS', or 'MAX_50_MBPS'
<br/>MaxResults:  Placeholder documentation for MaxResults<br/>Codec:  Filter by codec, 'AVC', 'HEVC', 'MPEG2', 'AUDIO', or 'LINK'<br/>ChannelClass:  Filter by channel class, 'STANDARD' or 'SINGLE_PIPELINE'
<br/>
        :return: Reservations:  List of reservations<br/>NextToken:  Token to retrieve the next page of results<br/>        """
        pass

    def list_tags_for_resource(self, ResourceArn: str) -> ListTagsForResourceResponse:
        r"""Produces list of tags that have been created for a resource

        :param self:
        :param ResourceArn:  Placeholder documentation for __string<br/>
        :return: Tags:  Placeholder documentation for Tags<br/>        """
        pass

    def purchase_offering(self, OfferingId: str, Count: int, Name: str=None, RequestId: str=None, Start: str=None, Tags: Tags=None) -> PurchaseOfferingResponse:
        r"""Purchase an offering and create a reservation.

        :param self:
        :param Tags:  A collection of key-value pairs<br/>Start:  Requested reservation start time (UTC) in ISO-8601 format. The specified time must be between the first day of the current month and one year from now. If no value is given, the default is now.<br/>RequestId:  Unique request ID to be specified. This is needed to prevent retries from creating multiple resources.<br/>OfferingId:  Offering to purchase, e.g. '87654321'<br/>Name:  Name for the new reservation<br/>Count:  Number of resources<br/>
        :return: Reservation:  Reserved resources available to use:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UsagePrice</i> Recurring usage charge for each reserved resource, e.g. '157.0'<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> A collection of key-value pairs<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> Current state of reservation, e.g. 'ACTIVE'<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Start</i> Reservation UTC start date and time in ISO-8601 format, e.g. '2018-03-01T00:00:00'<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceSpecification</i> Resource configuration details&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ResourceSpecification</b>: Resource configuration details<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReservationId</i> Unique reservation ID, e.g. '1234567'<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Region</i> AWS region, e.g. 'us-west-2'<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OfferingType</i> Offering type, e.g. 'NO_UPFRONT'<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OfferingId</i> Unique offering ID, e.g. '87654321'<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OfferingDescription</i> Offering description, e.g. 'HD AVC output at 10-20 Mbps, 30 fps, and standard VQ in US West (Oregon)'<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> User specified reservation name<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FixedPrice</i> One-time charge for each reserved resource, e.g. '0.0' for a NO_UPFRONT offering<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>End</i> Reservation UTC end date and time in ISO-8601 format, e.g. '2019-03-01T00:00:00'<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DurationUnits</i> Units for duration, e.g. 'MONTHS'<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Duration</i> Lease duration, e.g. '12'<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CurrencyCode</i> Currency code for usagePrice and fixedPrice in ISO-4217 format, e.g. 'USD'<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Count</i> Number of reserved resources<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> Unique reservation ARN, e.g. 'arn:aws:medialive:us-west-2:123456789012:reservation:1234567'<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VideoQuality</i> Video quality, e.g. 'STANDARD' (Outputs only)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SpecialFeature</i> Special feature, e.g. 'AUDIO_NORMALIZATION' (Channels only)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceType</i> Resource type, 'INPUT', 'OUTPUT', 'MULTIPLEX', or 'CHANNEL'<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Resolution</i> Resolution, e.g. 'HD'<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaximumFramerate</i> Maximum framerate, e.g. 'MAX_30_FPS' (Outputs only)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaximumBitrate</i> Maximum bitrate, e.g. 'MAX_20_MBPS'<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Codec</i> Codec, e.g. 'AVC'<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ChannelClass</i> Channel class, e.g. 'STANDARD'<br/>        """
        pass

    def reject_input_device_transfer(self, InputDeviceId: str) -> RejectInputDeviceTransferResponse:
        r"""Reject the transfer of the specified input device to your AWS account.

        :param self:
        :param InputDeviceId:  The unique ID of the input device to reject. For example, hd-123456789abcdef.<br/>
        :return:         """
        pass

    def start_channel(self, ChannelId: str) -> StartChannelResponse:
        r"""Starts an existing channel

        :param self:
        :param ChannelId:  A request to start a channel<br/>
        :return: Vpc:  Settings for VPC output:<br/>Tags:  A collection of key-value pairs.<br/>State:  Placeholder documentation for ChannelState<br/>RoleArn:  The Amazon Resource Name (ARN) of the role assumed when running the Channel.<br/>PipelinesRunningCount:  The number of currently healthy pipelines.<br/>PipelineDetails:  Runtime details for the pipelines of a running channel.<br/>Name:  The name of the channel. (user-mutable)<br/>LogLevel:  The log level being written to CloudWatch Logs.<br/>InputSpecification:  Specification of network and file inputs for this channel:<br/>InputAttachments:  List of input attachments for channel.<br/>Id:  The unique id of the channel.<br/>EncoderSettings:  Encoder Settings:<br/>EgressEndpoints:  The endpoints where outgoing connections initiate from<br/>Destinations:  A list of destinations of the channel. For UDP outputs, there is one
destination per output. For other types (HLS, for example), there is
one destination per packager.
<br/>ChannelClass:  The class for this channel. STANDARD for a channel with two pipelines or SINGLE_PIPELINE for a channel with one pipeline.<br/>CdiInputSpecification:  Specification of CDI inputs for this channel:<br/>Arn:  The unique arn of the channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Resolution</i> Maximum CDI input resolution<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VideoDescriptions</i> Placeholder documentation for __listOfVideoDescription<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TimecodeConfig</i> Contains settings used to acquire and adjust timecode information from inputs.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TimecodeConfig</b>: Contains settings used to acquire and adjust timecode information from inputs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OutputGroups</i> Placeholder documentation for __listOfOutputGroup<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NielsenConfiguration</i> Nielsen configuration settings.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>NielsenConfiguration</b>: Nielsen configuration settings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MotionGraphicsConfiguration</i> Settings for motion graphics.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>MotionGraphicsConfiguration</b>: Settings for motion graphics.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalConfiguration</i> Configuration settings that apply to the event as a whole.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>GlobalConfiguration</b>: Configuration settings that apply to the event as a whole.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FeatureActivations</i> Feature Activations&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>FeatureActivations</b>: Feature Activations<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CaptionDescriptions</i> Settings for caption decriptions<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BlackoutSlate</i> Settings for blackout slate.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>BlackoutSlate</b>: Settings for blackout slate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailConfiguration</i> Event-wide configuration settings for ad avail insertion.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AvailConfiguration</b>: Event-wide configuration settings for ad avail insertion.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailBlanking</i> Settings for ad avail blanking.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AvailBlanking</b>: Settings for ad avail blanking.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AudioDescriptions</i> Placeholder documentation for __listOfAudioDescription<br/>Blanking image to be used. Leave empty for solid black. Only bmp and png images are supported.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AvailBlankingImage</b>: Blanking image to be used. Leave empty for solid black. Only bmp and png images are supported.Ad avail settings.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AvailSettings</b>: Ad avail settings.Blackout slate image to be used. Leave empty for solid black. Only bmp and png images are supported.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>BlackoutSlateImage</b>: Blackout slate image to be used. Leave empty for solid black. Only bmp and png images are supported.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InputPrepareScheduleActions</i> Enables the Input Prepare feature. You can create Input Prepare actions in the schedule only if this feature is enabled.
If you disable the feature on an existing schedule, make sure that you first delete all input prepare actions from the schedule.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InputEndAction</i> Indicates the action to take when the current input completes (e.g. end-of-file). When switchAndLoopInputs is configured the encoder will restart at the beginning of the first input.  When "none" is configured the encoder will transcode either black, a solid color, or a user specified slate images per the "Input Loss Behavior" configuration until the next input switch occurs (which is controlled through the Channel Schedule API).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InitialAudioGain</i> Value to set the initial audio gain for the Live Event.<br/>Settings for system actions when input is lost.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>InputLossBehavior</b>: Settings for system actions when input is lost.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MotionGraphicsInsertion</i> Motion Graphics Insertion<br/>Motion Graphics Settings&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>MotionGraphicsSettings</b>: Motion Graphics Settings&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NielsenPcmToId3Tagging</i> Enables Nielsen PCM to ID3 tagging<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DistributorId</i> Enter the Distributor ID assigned to your organization by Nielsen.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SyncThreshold</i> Threshold in frames beyond which output timecode is resynchronized to the input timecode. Discrepancies below this threshold are permitted to avoid unnecessary discontinuities in the output timecode. No timecode sync when this is not specified.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Source</i> Identifies the source for the timecode that will be associated with the events outputs.
-Embedded (embedded): Initialize the output timecode with timecode from the the source.  If no embedded timecode is detected in the source, the system falls back to using "Start at 0" (zerobased).
-System Clock (systemclock): Use the UTC time.
-Start at 0 (zerobased): The time of the first frame of the event will be 00:00:00:00.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Resolution</i> Input resolution, categorized coarsely<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaximumBitrate</i> Maximum input bitrate, categorized coarsely<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Codec</i> Input codec<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetIds</i> A list of VPC subnet IDs from the same VPC.
If STANDARD channel, subnet IDs must be mapped to two unique availability zones (AZ).
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> A list of up EC2 VPC security group IDs attached to the Output VPC network interfaces.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkInterfaceIds</i> A list of Elastic Network Interfaces created by MediaLive in the customer's VPC
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZones</i> The Availability Zones where the vpc subnets are located.
The first Availability Zone applies to the first subnet in the list of subnets.
The second Availability Zone applies to the second subnet.
<br/>        """
        pass

    def start_multiplex(self, MultiplexId: str) -> StartMultiplexResponse:
        r"""Start (run) the multiplex. Starting the multiplex does not start the channels. You must explicitly start each channel.

        :param self:
        :param MultiplexId:  The ID of the multiplex.<br/>
        :return: Tags:  A collection of key-value pairs.<br/>State:  The current state of the multiplex.<br/>ProgramCount:  The number of programs in the multiplex.<br/>PipelinesRunningCount:  The number of currently healthy pipelines.<br/>Name:  The name of the multiplex.<br/>MultiplexSettings:  Configuration for a multiplex event.:<br/>Id:  The unique id of the multiplex.<br/>Destinations:  A list of the multiplex output destinations.<br/>AvailabilityZones:  A list of availability zones for the multiplex.<br/>Arn:  The unique arn of the multiplex.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransportStreamReservedBitrate</i> Transport stream reserved bit rate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransportStreamId</i> Transport stream ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransportStreamBitrate</i> Transport stream bit rate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaximumVideoBufferDelayMilliseconds</i> Maximum video buffer delay in milliseconds.<br/>        """
        pass

    def stop_channel(self, ChannelId: str) -> StopChannelResponse:
        r"""Stops a running channel

        :param self:
        :param ChannelId:  A request to stop a running channel<br/>
        :return: Vpc:  Settings for VPC output:<br/>Tags:  A collection of key-value pairs.<br/>State:  Placeholder documentation for ChannelState<br/>RoleArn:  The Amazon Resource Name (ARN) of the role assumed when running the Channel.<br/>PipelinesRunningCount:  The number of currently healthy pipelines.<br/>PipelineDetails:  Runtime details for the pipelines of a running channel.<br/>Name:  The name of the channel. (user-mutable)<br/>LogLevel:  The log level being written to CloudWatch Logs.<br/>InputSpecification:  Specification of network and file inputs for this channel:<br/>InputAttachments:  List of input attachments for channel.<br/>Id:  The unique id of the channel.<br/>EncoderSettings:  Encoder Settings:<br/>EgressEndpoints:  The endpoints where outgoing connections initiate from<br/>Destinations:  A list of destinations of the channel. For UDP outputs, there is one
destination per output. For other types (HLS, for example), there is
one destination per packager.
<br/>ChannelClass:  The class for this channel. STANDARD for a channel with two pipelines or SINGLE_PIPELINE for a channel with one pipeline.<br/>CdiInputSpecification:  Specification of CDI inputs for this channel:<br/>Arn:  The unique arn of the channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Resolution</i> Maximum CDI input resolution<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VideoDescriptions</i> Placeholder documentation for __listOfVideoDescription<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TimecodeConfig</i> Contains settings used to acquire and adjust timecode information from inputs.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TimecodeConfig</b>: Contains settings used to acquire and adjust timecode information from inputs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OutputGroups</i> Placeholder documentation for __listOfOutputGroup<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NielsenConfiguration</i> Nielsen configuration settings.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>NielsenConfiguration</b>: Nielsen configuration settings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MotionGraphicsConfiguration</i> Settings for motion graphics.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>MotionGraphicsConfiguration</b>: Settings for motion graphics.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalConfiguration</i> Configuration settings that apply to the event as a whole.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>GlobalConfiguration</b>: Configuration settings that apply to the event as a whole.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FeatureActivations</i> Feature Activations&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>FeatureActivations</b>: Feature Activations<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CaptionDescriptions</i> Settings for caption decriptions<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BlackoutSlate</i> Settings for blackout slate.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>BlackoutSlate</b>: Settings for blackout slate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailConfiguration</i> Event-wide configuration settings for ad avail insertion.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AvailConfiguration</b>: Event-wide configuration settings for ad avail insertion.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailBlanking</i> Settings for ad avail blanking.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AvailBlanking</b>: Settings for ad avail blanking.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AudioDescriptions</i> Placeholder documentation for __listOfAudioDescription<br/>Blanking image to be used. Leave empty for solid black. Only bmp and png images are supported.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AvailBlankingImage</b>: Blanking image to be used. Leave empty for solid black. Only bmp and png images are supported.Ad avail settings.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AvailSettings</b>: Ad avail settings.Blackout slate image to be used. Leave empty for solid black. Only bmp and png images are supported.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>BlackoutSlateImage</b>: Blackout slate image to be used. Leave empty for solid black. Only bmp and png images are supported.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InputPrepareScheduleActions</i> Enables the Input Prepare feature. You can create Input Prepare actions in the schedule only if this feature is enabled.
If you disable the feature on an existing schedule, make sure that you first delete all input prepare actions from the schedule.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InputEndAction</i> Indicates the action to take when the current input completes (e.g. end-of-file). When switchAndLoopInputs is configured the encoder will restart at the beginning of the first input.  When "none" is configured the encoder will transcode either black, a solid color, or a user specified slate images per the "Input Loss Behavior" configuration until the next input switch occurs (which is controlled through the Channel Schedule API).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InitialAudioGain</i> Value to set the initial audio gain for the Live Event.<br/>Settings for system actions when input is lost.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>InputLossBehavior</b>: Settings for system actions when input is lost.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MotionGraphicsInsertion</i> Motion Graphics Insertion<br/>Motion Graphics Settings&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>MotionGraphicsSettings</b>: Motion Graphics Settings&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NielsenPcmToId3Tagging</i> Enables Nielsen PCM to ID3 tagging<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DistributorId</i> Enter the Distributor ID assigned to your organization by Nielsen.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SyncThreshold</i> Threshold in frames beyond which output timecode is resynchronized to the input timecode. Discrepancies below this threshold are permitted to avoid unnecessary discontinuities in the output timecode. No timecode sync when this is not specified.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Source</i> Identifies the source for the timecode that will be associated with the events outputs.
-Embedded (embedded): Initialize the output timecode with timecode from the the source.  If no embedded timecode is detected in the source, the system falls back to using "Start at 0" (zerobased).
-System Clock (systemclock): Use the UTC time.
-Start at 0 (zerobased): The time of the first frame of the event will be 00:00:00:00.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Resolution</i> Input resolution, categorized coarsely<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaximumBitrate</i> Maximum input bitrate, categorized coarsely<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Codec</i> Input codec<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetIds</i> A list of VPC subnet IDs from the same VPC.
If STANDARD channel, subnet IDs must be mapped to two unique availability zones (AZ).
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> A list of up EC2 VPC security group IDs attached to the Output VPC network interfaces.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkInterfaceIds</i> A list of Elastic Network Interfaces created by MediaLive in the customer's VPC
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZones</i> The Availability Zones where the vpc subnets are located.
The first Availability Zone applies to the first subnet in the list of subnets.
The second Availability Zone applies to the second subnet.
<br/>        """
        pass

    def stop_multiplex(self, MultiplexId: str) -> StopMultiplexResponse:
        r"""Stops a running multiplex. If the multiplex isn't running, this action has no effect.

        :param self:
        :param MultiplexId:  The ID of the multiplex.<br/>
        :return: Tags:  A collection of key-value pairs.<br/>State:  The current state of the multiplex.<br/>ProgramCount:  The number of programs in the multiplex.<br/>PipelinesRunningCount:  The number of currently healthy pipelines.<br/>Name:  The name of the multiplex.<br/>MultiplexSettings:  Configuration for a multiplex event.:<br/>Id:  The unique id of the multiplex.<br/>Destinations:  A list of the multiplex output destinations.<br/>AvailabilityZones:  A list of availability zones for the multiplex.<br/>Arn:  The unique arn of the multiplex.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransportStreamReservedBitrate</i> Transport stream reserved bit rate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransportStreamId</i> Transport stream ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransportStreamBitrate</i> Transport stream bit rate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaximumVideoBufferDelayMilliseconds</i> Maximum video buffer delay in milliseconds.<br/>        """
        pass

    def transfer_input_device(self, InputDeviceId: str, TargetCustomerId: str=None, TargetRegion: str=None, TransferMessage: str=None) -> TransferInputDeviceResponse:
        r"""Start an input device transfer to another AWS account. After you make the request, the other account must accept or reject the transfer.

        :param self:
        :param TransferMessage:  An optional message for the recipient. Maximum 280 characters.<br/>TargetRegion:  The target AWS region to transfer the device.<br/>TargetCustomerId:  The AWS account ID (12 digits) for the recipient of the device transfer.<br/>InputDeviceId:  The unique ID of this input device. For example, hd-123456789abcdef.<br/>
        :return:         """
        pass

    def update_channel(self, ChannelId: str, CdiInputSpecification: CdiInputSpecification=None, Destinations: List[OutputDestination]=None, EncoderSettings: EncoderSettings=None, InputAttachments: List[InputAttachment]=None, InputSpecification: InputSpecification=None, LogLevel: str=None, Name: str=None, RoleArn: str=None) -> UpdateChannelResponse:
        r"""Updates a channel.

        :param self:
        :param RoleArn:  An optional Amazon Resource Name (ARN) of the role to assume when running the Channel. If you do not specify this on an update call but the role was previously set that role will be removed.<br/>Name:  The name of the channel.<br/>LogLevel:  The log level to write to CloudWatch Logs.<br/>InputSpecification:  Specification of network and file inputs for this channel:<br/>InputAttachments:  Placeholder documentation for __listOfInputAttachment<br/>EncoderSettings:  The encoder settings for this channel.:<br/>Destinations:  A list of output destinations for this channel.<br/>ChannelId:  channel ID<br/>CdiInputSpecification:  Specification of CDI inputs for this channel:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Resolution</i> Maximum CDI input resolution<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VideoDescriptions</i> Placeholder documentation for __listOfVideoDescription<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TimecodeConfig</i> Contains settings used to acquire and adjust timecode information from inputs.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TimecodeConfig</b>: Contains settings used to acquire and adjust timecode information from inputs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OutputGroups</i> Placeholder documentation for __listOfOutputGroup<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NielsenConfiguration</i> Nielsen configuration settings.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>NielsenConfiguration</b>: Nielsen configuration settings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MotionGraphicsConfiguration</i> Settings for motion graphics.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>MotionGraphicsConfiguration</b>: Settings for motion graphics.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalConfiguration</i> Configuration settings that apply to the event as a whole.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>GlobalConfiguration</b>: Configuration settings that apply to the event as a whole.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FeatureActivations</i> Feature Activations&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>FeatureActivations</b>: Feature Activations<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CaptionDescriptions</i> Settings for caption decriptions<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BlackoutSlate</i> Settings for blackout slate.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>BlackoutSlate</b>: Settings for blackout slate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailConfiguration</i> Event-wide configuration settings for ad avail insertion.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AvailConfiguration</b>: Event-wide configuration settings for ad avail insertion.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailBlanking</i> Settings for ad avail blanking.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AvailBlanking</b>: Settings for ad avail blanking.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AudioDescriptions</i> Placeholder documentation for __listOfAudioDescription<br/>Blanking image to be used. Leave empty for solid black. Only bmp and png images are supported.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AvailBlankingImage</b>: Blanking image to be used. Leave empty for solid black. Only bmp and png images are supported.Ad avail settings.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AvailSettings</b>: Ad avail settings.Blackout slate image to be used. Leave empty for solid black. Only bmp and png images are supported.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>BlackoutSlateImage</b>: Blackout slate image to be used. Leave empty for solid black. Only bmp and png images are supported.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InputPrepareScheduleActions</i> Enables the Input Prepare feature. You can create Input Prepare actions in the schedule only if this feature is enabled.
If you disable the feature on an existing schedule, make sure that you first delete all input prepare actions from the schedule.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InputEndAction</i> Indicates the action to take when the current input completes (e.g. end-of-file). When switchAndLoopInputs is configured the encoder will restart at the beginning of the first input.  When "none" is configured the encoder will transcode either black, a solid color, or a user specified slate images per the "Input Loss Behavior" configuration until the next input switch occurs (which is controlled through the Channel Schedule API).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InitialAudioGain</i> Value to set the initial audio gain for the Live Event.<br/>Settings for system actions when input is lost.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>InputLossBehavior</b>: Settings for system actions when input is lost.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MotionGraphicsInsertion</i> Motion Graphics Insertion<br/>Motion Graphics Settings&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>MotionGraphicsSettings</b>: Motion Graphics Settings&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NielsenPcmToId3Tagging</i> Enables Nielsen PCM to ID3 tagging<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DistributorId</i> Enter the Distributor ID assigned to your organization by Nielsen.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SyncThreshold</i> Threshold in frames beyond which output timecode is resynchronized to the input timecode. Discrepancies below this threshold are permitted to avoid unnecessary discontinuities in the output timecode. No timecode sync when this is not specified.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Source</i> Identifies the source for the timecode that will be associated with the events outputs.
-Embedded (embedded): Initialize the output timecode with timecode from the the source.  If no embedded timecode is detected in the source, the system falls back to using "Start at 0" (zerobased).
-System Clock (systemclock): Use the UTC time.
-Start at 0 (zerobased): The time of the first frame of the event will be 00:00:00:00.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Resolution</i> Input resolution, categorized coarsely<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaximumBitrate</i> Maximum input bitrate, categorized coarsely<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Codec</i> Input codec<br/>
        :return: Channel:  Placeholder documentation for Channel:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Vpc</i> Settings for VPC output&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Vpc</b>: Settings for VPC output<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> A collection of key-value pairs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> Placeholder documentation for ChannelState<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The Amazon Resource Name (ARN) of the role assumed when running the Channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PipelinesRunningCount</i> The number of currently healthy pipelines.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PipelineDetails</i> Runtime details for the pipelines of a running channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the channel. (user-mutable)<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogLevel</i> The log level being written to CloudWatch Logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InputSpecification</i> Specification of network and file inputs for this channel&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>InputSpecification</b>: Specification of network and file inputs for this channel<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InputAttachments</i> List of input attachments for channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The unique id of the channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EncoderSettings</i> Encoder Settings&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EncoderSettings</b>: Encoder Settings<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EgressEndpoints</i> The endpoints where outgoing connections initiate from<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Destinations</i> A list of destinations of the channel. For UDP outputs, there is one
destination per output. For other types (HLS, for example), there is
one destination per packager.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ChannelClass</i> The class for this channel. STANDARD for a channel with two pipelines or SINGLE_PIPELINE for a channel with one pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CdiInputSpecification</i> Specification of CDI inputs for this channel&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CdiInputSpecification</b>: Specification of CDI inputs for this channel<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The unique arn of the channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Resolution</i> Maximum CDI input resolution<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AudioDescriptions</i> Placeholder documentation for __listOfAudioDescription<br/>Settings for ad avail blanking.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AvailBlanking</b>: Settings for ad avail blanking.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Resolution</i> Input resolution, categorized coarsely<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaximumBitrate</i> Maximum input bitrate, categorized coarsely<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Codec</i> Input codec<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetIds</i> A list of VPC subnet IDs from the same VPC.
If STANDARD channel, subnet IDs must be mapped to two unique availability zones (AZ).
<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> A list of up EC2 VPC security group IDs attached to the Output VPC network interfaces.
<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkInterfaceIds</i> A list of Elastic Network Interfaces created by MediaLive in the customer's VPC
<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZones</i> The Availability Zones where the vpc subnets are located.
The first Availability Zone applies to the first subnet in the list of subnets.
The second Availability Zone applies to the second subnet.
<br/>        """
        pass

    def update_channel_class(self, ChannelId: str, ChannelClass: str, Destinations: List[OutputDestination]=None) -> UpdateChannelClassResponse:
        r"""Changes the class of the channel.

        :param self:
        :param Destinations:  A list of output destinations for this channel.<br/>ChannelId:  Channel Id of the channel whose class should be updated.<br/>ChannelClass:  The channel class that you wish to update this channel to use.<br/>
        :return: Channel:  Placeholder documentation for Channel:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Vpc</i> Settings for VPC output&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Vpc</b>: Settings for VPC output<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> A collection of key-value pairs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> Placeholder documentation for ChannelState<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The Amazon Resource Name (ARN) of the role assumed when running the Channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PipelinesRunningCount</i> The number of currently healthy pipelines.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PipelineDetails</i> Runtime details for the pipelines of a running channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the channel. (user-mutable)<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogLevel</i> The log level being written to CloudWatch Logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InputSpecification</i> Specification of network and file inputs for this channel&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>InputSpecification</b>: Specification of network and file inputs for this channel<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InputAttachments</i> List of input attachments for channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The unique id of the channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EncoderSettings</i> Encoder Settings&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EncoderSettings</b>: Encoder Settings<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EgressEndpoints</i> The endpoints where outgoing connections initiate from<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Destinations</i> A list of destinations of the channel. For UDP outputs, there is one
destination per output. For other types (HLS, for example), there is
one destination per packager.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ChannelClass</i> The class for this channel. STANDARD for a channel with two pipelines or SINGLE_PIPELINE for a channel with one pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CdiInputSpecification</i> Specification of CDI inputs for this channel&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CdiInputSpecification</b>: Specification of CDI inputs for this channel<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The unique arn of the channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Resolution</i> Maximum CDI input resolution<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AudioDescriptions</i> Placeholder documentation for __listOfAudioDescription<br/>Settings for ad avail blanking.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AvailBlanking</b>: Settings for ad avail blanking.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Resolution</i> Input resolution, categorized coarsely<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaximumBitrate</i> Maximum input bitrate, categorized coarsely<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Codec</i> Input codec<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetIds</i> A list of VPC subnet IDs from the same VPC.
If STANDARD channel, subnet IDs must be mapped to two unique availability zones (AZ).
<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> A list of up EC2 VPC security group IDs attached to the Output VPC network interfaces.
<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkInterfaceIds</i> A list of Elastic Network Interfaces created by MediaLive in the customer's VPC
<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZones</i> The Availability Zones where the vpc subnets are located.
The first Availability Zone applies to the first subnet in the list of subnets.
The second Availability Zone applies to the second subnet.
<br/>        """
        pass

    def update_input(self, InputId: str, Destinations: List[InputDestinationRequest]=None, InputDevices: List[InputDeviceRequest]=None, InputSecurityGroups: List[__string]=None, MediaConnectFlows: List[MediaConnectFlowRequest]=None, Name: str=None, RoleArn: str=None, Sources: List[InputSourceRequest]=None) -> UpdateInputResponse:
        r"""Updates an input.

        :param self:
        :param Sources:  The source URLs for a PULL-type input. Every PULL type input needs
exactly two source URLs for redundancy.
Only specify sources for PULL type Inputs. Leave Destinations empty.
<br/>RoleArn:  The Amazon Resource Name (ARN) of the role this input assumes during and after creation.<br/>Name:  Name of the input.<br/>MediaConnectFlows:  A list of the MediaConnect Flow ARNs that you want to use as the source of the input. You can specify as few as one
Flow and presently, as many as two. The only requirement is when you have more than one is that each Flow is in a
separate Availability Zone as this ensures your EML input is redundant to AZ issues.
<br/>InputSecurityGroups:  A list of security groups referenced by IDs to attach to the input.<br/>InputId:  Unique ID of the input.<br/>InputDevices:  Settings for the devices.<br/>Destinations:  Destination settings for PUSH type inputs.<br/>
        :return: Input:  Placeholder documentation for Input:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> Placeholder documentation for InputType<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> A collection of key-value pairs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> Placeholder documentation for InputState<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Sources</i> A list of the sources of the input (PULL-type).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroups</i> A list of IDs for all the Input Security Groups attached to the input.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The Amazon Resource Name (ARN) of the role this input assumes during and after creation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The user-assigned name (This is a mutable value).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MediaConnectFlows</i> A list of MediaConnect Flows for this input.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InputSourceType</i> Certain pull input sources can be dynamic, meaning that they can have their URL's dynamically changes
during input switch actions. Presently, this functionality only works with MP4_FILE inputs.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InputPartnerIds</i> A list of IDs for all Inputs which are partners of this one.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InputDevices</i> Settings for the input devices.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InputClass</i> STANDARD - MediaLive expects two sources to be connected to this input. If the channel is also STANDARD, both sources will be ingested. If the channel is SINGLE_PIPELINE, only the first source will be ingested; the second source will always be ignored, even if the first source fails.
SINGLE_PIPELINE - You can connect only one source to this input. If the ChannelClass is also  SINGLE_PIPELINE, this value is valid. If the ChannelClass is STANDARD, this value is not valid because the channel requires two sources in the input.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The generated ID of the input (unique for user account, immutable).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Destinations</i> A list of the destinations of the input (PUSH-type).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AttachedChannels</i> A list of channel IDs that that input is attached to (currently an input can only be attached to one channel).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Unique ARN of the input (generated, immutable).<br/>        """
        pass

    def update_input_device(self, InputDeviceId: str, HdDeviceSettings: InputDeviceConfigurableSettings=None, Name: str=None, UhdDeviceSettings: InputDeviceConfigurableSettings=None) -> UpdateInputDeviceResponse:
        r"""Updates the parameters for the input device.

        :param self:
        :param UhdDeviceSettings:  The settings that you want to apply to the UHD input device.:<br/>Name:  The name that you assigned to this input device (not the unique ID).<br/>InputDeviceId:  The unique ID of the input device. For example, hd-123456789abcdef.<br/>HdDeviceSettings:  The settings that you want to apply to the HD input device.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxBitrate</i> The maximum bitrate in bits per second. Set a value here to throttle the bitrate of the source video.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConfiguredInput</i> The input source that you want to use. If the device has a source connected to only one of its input ports, or if you don't care which source the device sends, specify Auto. If the device has sources connected to both its input ports, and you want to use a specific source, specify the source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxBitrate</i> The maximum bitrate in bits per second. Set a value here to throttle the bitrate of the source video.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConfiguredInput</i> The input source that you want to use. If the device has a source connected to only one of its input ports, or if you don't care which source the device sends, specify Auto. If the device has sources connected to both its input ports, and you want to use a specific source, specify the source.<br/>
        :return: UhdDeviceSettings:  Settings that describe an input device that is type UHD.:<br/>Type:  The type of the input device.<br/>SerialNumber:  The unique serial number of the input device.<br/>NetworkSettings:  The network settings for the input device.:<br/>Name:  A name that you specify for the input device.<br/>MacAddress:  The network MAC address of the input device.<br/>Id:  The unique ID of the input device.<br/>HdDeviceSettings:  Settings that describe an input device that is type HD.:<br/>DeviceUpdateStatus:  The status of software on the input device.<br/>DeviceSettingsSyncState:  The status of the action to synchronize the device configuration. If you change the configuration of the input device (for example, the maximum bitrate), MediaLive sends the new data to the device. The device might not update itself immediately. SYNCED means the device has updated its configuration. SYNCING means that it has not updated its configuration.<br/>ConnectionState:  The state of the connection between the input device and AWS.<br/>Arn:  The unique ARN of the input device.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Width</i> The width of the video source, in pixels.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ScanType</i> The scan type of the video source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxBitrate</i> The current maximum bitrate for ingesting this source, in bits per second. You can specify this maximum.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Height</i> The height of the video source, in pixels.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Framerate</i> The frame rate of the video source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeviceState</i> The state of the input device.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConfiguredInput</i> The source at the input device that is currently active. You can specify this source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActiveInput</i> If you specified Auto as the configured input, specifies which of the sources is currently active (SDI or HDMI).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetMask</i> The subnet mask of the input device.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IpScheme</i> Specifies whether the input device has been configured (outside of MediaLive) to use a dynamic IP address assignment (DHCP) or a static IP address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IpAddress</i> The IP address of the input device.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Gateway</i> The network gateway IP address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DnsAddresses</i> The DNS addresses of the input device.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Width</i> The width of the video source, in pixels.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ScanType</i> The scan type of the video source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxBitrate</i> The current maximum bitrate for ingesting this source, in bits per second. You can specify this maximum.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Height</i> The height of the video source, in pixels.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Framerate</i> The frame rate of the video source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeviceState</i> The state of the input device.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConfiguredInput</i> The source at the input device that is currently active. You can specify this source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActiveInput</i> If you specified Auto as the configured input, specifies which of the sources is currently active (SDI or HDMI).<br/>        """
        pass

    def update_input_security_group(self, InputSecurityGroupId: str, Tags: Tags=None, WhitelistRules: List[InputWhitelistRuleCidr]=None) -> UpdateInputSecurityGroupResponse:
        r"""Update an Input Security Group's Whilelists.

        :param self:
        :param WhitelistRules:  List of IPv4 CIDR addresses to whitelist<br/>Tags:  A collection of key-value pairs.<br/>InputSecurityGroupId:  The id of the Input Security Group to update.<br/>
        :return: SecurityGroup:  An Input Security Group:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WhitelistRules</i> Whitelist rules and their sync status<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> A collection of key-value pairs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The current state of the Input Security Group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Inputs</i> The list of inputs currently using this Input Security Group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The Id of the Input Security Group<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> Unique ARN of Input Security Group<br/>        """
        pass

    def update_multiplex(self, MultiplexId: str, MultiplexSettings: MultiplexSettings=None, Name: str=None) -> UpdateMultiplexResponse:
        r"""Updates a multiplex.

        :param self:
        :param Name:  Name of the multiplex.<br/>MultiplexSettings:  The new settings for a multiplex.:<br/>MultiplexId:  ID of the multiplex to update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransportStreamReservedBitrate</i> Transport stream reserved bit rate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransportStreamId</i> Transport stream ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransportStreamBitrate</i> Transport stream bit rate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaximumVideoBufferDelayMilliseconds</i> Maximum video buffer delay in milliseconds.<br/>
        :return: Multiplex:  The updated multiplex.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> A collection of key-value pairs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The current state of the multiplex.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProgramCount</i> The number of programs in the multiplex.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PipelinesRunningCount</i> The number of currently healthy pipelines.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the multiplex.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiplexSettings</i> Configuration for a multiplex event.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>MultiplexSettings</b>: Configuration for a multiplex event.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The unique id of the multiplex.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Destinations</i> A list of the multiplex output destinations.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZones</i> A list of availability zones for the multiplex.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The unique arn of the multiplex.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TransportStreamReservedBitrate</i> Transport stream reserved bit rate.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TransportStreamId</i> Transport stream ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TransportStreamBitrate</i> Transport stream bit rate.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaximumVideoBufferDelayMilliseconds</i> Maximum video buffer delay in milliseconds.<br/>        """
        pass

    def update_multiplex_program(self, ProgramName: str, MultiplexId: str, MultiplexProgramSettings: MultiplexProgramSettings=None) -> UpdateMultiplexProgramResponse:
        r"""Update a program in a multiplex.

        :param self:
        :param ProgramName:  The name of the program to update.<br/>MultiplexProgramSettings:  The new settings for a multiplex program.:<br/>MultiplexId:  The ID of the multiplex of the program to update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VideoSettings</i> Program video settings configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>VideoSettings</b>: Program video settings configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceDescriptor</i> Transport stream service descriptor configuration for the Multiplex program.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ServiceDescriptor</b>: Transport stream service descriptor configuration for the Multiplex program.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProgramNumber</i> Unique program number.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredChannelPipeline</i> Indicates which pipeline is preferred by the multiplex for program ingest.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceName</i> Name of the service.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ProviderName</i> Name of the provider.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ConstantBitrate</i> The constant bitrate configuration for the video encode.
When this field is defined, StatmuxSettings must be undefined.<br/>Statmux rate control settings.
When this field is defined, ConstantBitrate must be undefined.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StatmuxSettings</b>: Statmux rate control settings.
When this field is defined, ConstantBitrate must be undefined.
        :return: MultiplexProgram:  The updated multiplex program.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProgramName</i> The name of the multiplex program.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PipelineDetails</i> Contains information about the current sources for the specified program in the specified multiplex. Keep in mind that each multiplex pipeline connects to both pipelines in a given source channel (the channel identified by the program). But only one of those channel pipelines is ever active at one time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PacketIdentifiersMap</i> The packet identifier map for this multiplex program.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PacketIdentifiersMap</b>: The packet identifier map for this multiplex program.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiplexProgramSettings</i> The settings for this multiplex program.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>MultiplexProgramSettings</b>: The settings for this multiplex program.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ChannelId</i> The MediaLive channel associated with the program.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ProgramNumber</i> Unique program number.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredChannelPipeline</i> Indicates which pipeline is preferred by the multiplex for program ingest.<br/>Transport stream service descriptor configuration for the Multiplex program.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ServiceDescriptor</b>: Transport stream service descriptor configuration for the Multiplex program.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VideoPid</i> Placeholder documentation for __integer<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TimedMetadataPid</i> Placeholder documentation for __integer<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Scte35Pid</i> Placeholder documentation for __integer<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Scte27Pids</i> Placeholder documentation for __listOf__integer<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PrivateMetadataPid</i> Placeholder documentation for __integer<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PmtPid</i> Placeholder documentation for __integer<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PcrPid</i> Placeholder documentation for __integer<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KlvDataPids</i> Placeholder documentation for __listOf__integer<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EtvSignalPid</i> Placeholder documentation for __integer<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EtvPlatformPid</i> Placeholder documentation for __integer<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DvbTeletextPid</i> Placeholder documentation for __integer<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DvbSubPids</i> Placeholder documentation for __listOf__integer<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AudioPids</i> Placeholder documentation for __listOf__integer<br/>        """
        pass

    def update_reservation(self, ReservationId: str, Name: str=None) -> UpdateReservationResponse:
        r"""Update reservation.

        :param self:
        :param ReservationId:  Unique reservation ID, e.g. '1234567'<br/>Name:  Name of the reservation<br/>
        :return: Reservation:  Reserved resources available to use:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UsagePrice</i> Recurring usage charge for each reserved resource, e.g. '157.0'<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> A collection of key-value pairs<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> Current state of reservation, e.g. 'ACTIVE'<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Start</i> Reservation UTC start date and time in ISO-8601 format, e.g. '2018-03-01T00:00:00'<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceSpecification</i> Resource configuration details&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ResourceSpecification</b>: Resource configuration details<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReservationId</i> Unique reservation ID, e.g. '1234567'<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Region</i> AWS region, e.g. 'us-west-2'<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OfferingType</i> Offering type, e.g. 'NO_UPFRONT'<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OfferingId</i> Unique offering ID, e.g. '87654321'<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OfferingDescription</i> Offering description, e.g. 'HD AVC output at 10-20 Mbps, 30 fps, and standard VQ in US West (Oregon)'<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> User specified reservation name<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FixedPrice</i> One-time charge for each reserved resource, e.g. '0.0' for a NO_UPFRONT offering<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>End</i> Reservation UTC end date and time in ISO-8601 format, e.g. '2019-03-01T00:00:00'<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DurationUnits</i> Units for duration, e.g. 'MONTHS'<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Duration</i> Lease duration, e.g. '12'<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CurrencyCode</i> Currency code for usagePrice and fixedPrice in ISO-4217 format, e.g. 'USD'<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Count</i> Number of reserved resources<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> Unique reservation ARN, e.g. 'arn:aws:medialive:us-west-2:123456789012:reservation:1234567'<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VideoQuality</i> Video quality, e.g. 'STANDARD' (Outputs only)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SpecialFeature</i> Special feature, e.g. 'AUDIO_NORMALIZATION' (Channels only)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceType</i> Resource type, 'INPUT', 'OUTPUT', 'MULTIPLEX', or 'CHANNEL'<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Resolution</i> Resolution, e.g. 'HD'<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaximumFramerate</i> Maximum framerate, e.g. 'MAX_30_FPS' (Outputs only)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaximumBitrate</i> Maximum bitrate, e.g. 'MAX_20_MBPS'<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Codec</i> Codec, e.g. 'AVC'<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ChannelClass</i> Channel class, e.g. 'STANDARD'<br/>        """
        pass





class MediaPackage(BaseClient):
    r"""AWS Elemental MediaPackage"""


    class ListChannelsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_channels` for valid parameters"""
            pass
    class ListOriginEndpointsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_origin_endpoints` for valid parameters"""
            pass
    class ListHarvestJobsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_harvest_jobs` for valid parameters"""
            pass


    class ConfigureLogsRequest(Mapping):
        pass
    
    class ConfigureLogsResponse(Mapping):
        pass
    
    class EgressAccessLogs(Mapping):
        pass
    
    class IngressAccessLogs(Mapping):
        pass
    
    class CreateChannelRequest(Mapping):
        pass
    
    class CreateChannelResponse(Mapping):
        pass
    
    class Tags(object):
        pass
    
    class CreateHarvestJobRequest(Mapping):
        pass
    
    class CreateHarvestJobResponse(Mapping):
        pass
    
    class S3Destination(Mapping):
        pass
    
    class CreateOriginEndpointRequest(Mapping):
        pass
    
    class CreateOriginEndpointResponse(Mapping):
        pass
    
    class Authorization(Mapping):
        pass
    
    class CmafPackageCreateOrUpdateParameters(Mapping):
        pass
    
    class DashPackage(Mapping):
        pass
    
    class HlsPackage(Mapping):
        pass
    
    class MssPackage(Mapping):
        pass
    
    class __string(object):
        pass
    
    class DeleteChannelRequest(Mapping):
        pass
    
    class DeleteChannelResponse(Mapping):
        pass
    
    class DeleteOriginEndpointRequest(Mapping):
        pass
    
    class DeleteOriginEndpointResponse(Mapping):
        pass
    
    class DescribeChannelRequest(Mapping):
        pass
    
    class DescribeChannelResponse(Mapping):
        pass
    
    class DescribeHarvestJobRequest(Mapping):
        pass
    
    class DescribeHarvestJobResponse(Mapping):
        pass
    
    class DescribeOriginEndpointRequest(Mapping):
        pass
    
    class DescribeOriginEndpointResponse(Mapping):
        pass
    
    class ListChannelsRequest(Mapping):
        pass
    
    class ListChannelsResponse(Mapping):
        pass
    
    class ListHarvestJobsRequest(Mapping):
        pass
    
    class ListHarvestJobsResponse(Mapping):
        pass
    
    class ListOriginEndpointsRequest(Mapping):
        pass
    
    class ListOriginEndpointsResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class RotateChannelCredentialsRequest(Mapping):
        pass
    
    class RotateChannelCredentialsResponse(Mapping):
        pass
    
    class RotateIngestEndpointCredentialsRequest(Mapping):
        pass
    
    class RotateIngestEndpointCredentialsResponse(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class __mapOf__string(object):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UpdateChannelRequest(Mapping):
        pass
    
    class UpdateChannelResponse(Mapping):
        pass
    
    class UpdateOriginEndpointRequest(Mapping):
        pass
    
    class UpdateOriginEndpointResponse(Mapping):
        pass
    
    def configure_logs(self, Id: str, EgressAccessLogs: EgressAccessLogs=None, IngressAccessLogs: IngressAccessLogs=None) -> ConfigureLogsResponse:
        r"""Changes the Channel's properities to configure log subscription

        :param self:
        :param IngressAccessLogs:  Configure ingress access logging.:<br/>Id:  The ID of the channel to log subscription.<br/>EgressAccessLogs:  Configure egress access logging.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogGroupName</i> Customize the log group name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogGroupName</i> Customize the log group name.<br/>
        :return: Tags:  A collection of tags associated with a resource<br/>IngressAccessLogs:  Configure ingress access logging.:<br/>Id:  The ID of the Channel.<br/>HlsIngest:  An HTTP Live Streaming (HLS) ingest resource configuration.:<br/>EgressAccessLogs:  Configure egress access logging.:<br/>Description:  A short text description of the Channel.<br/>Arn:  The Amazon Resource Name (ARN) assigned to the Channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogGroupName</i> Customize the log group name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IngestEndpoints</i> A list of endpoints to which the source stream should be sent.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogGroupName</i> Customize the log group name.<br/>        """
        pass

    def create_channel(self, Id: str, Description: str=None, Tags: Tags=None) -> CreateChannelResponse:
        r"""Creates a new Channel.

        :param self:
        :param Tags:  A collection of tags associated with a resource<br/>Id:  The ID of the Channel. The ID must be unique within the region and it
cannot be changed after a Channel is created.
<br/>Description:  A short text description of the Channel.<br/>
        :return: Tags:  A collection of tags associated with a resource<br/>IngressAccessLogs:  Configure ingress access logging.:<br/>Id:  The ID of the Channel.<br/>HlsIngest:  An HTTP Live Streaming (HLS) ingest resource configuration.:<br/>EgressAccessLogs:  Configure egress access logging.:<br/>Description:  A short text description of the Channel.<br/>Arn:  The Amazon Resource Name (ARN) assigned to the Channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogGroupName</i> Customize the log group name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IngestEndpoints</i> A list of endpoints to which the source stream should be sent.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogGroupName</i> Customize the log group name.<br/>        """
        pass

    def create_harvest_job(self, StartTime: str, S3Destination: S3Destination, OriginEndpointId: str, Id: str, EndTime: str) -> CreateHarvestJobResponse:
        r"""Creates a new HarvestJob record.

        :param self:
        :param StartTime:  The start of the time-window which will be harvested
<br/>S3Destination:  Configuration parameters for where in an S3 bucket to place the harvested content
:<br/>OriginEndpointId:  The ID of the OriginEndpoint that the HarvestJob will harvest from.
This cannot be changed after the HarvestJob is submitted.
<br/>Id:  The ID of the HarvestJob. The ID must be unique within the region
and it cannot be changed after the HarvestJob is submitted
<br/>EndTime:  The end of the time-window which will be harvested
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The IAM role used to write to the specified S3 bucket
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ManifestKey</i> The key in the specified S3 bucket where the harvested top-level manifest will be placed.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BucketName</i> The name of an S3 bucket within which harvested content will be exported
<br/>
        :return: Status:  The current status of the HarvestJob. Consider setting up a CloudWatch Event to listen for
HarvestJobs as they succeed or fail. In the event of failure, the CloudWatch Event will
include an explanation of why the HarvestJob failed.
<br/>StartTime:  The start of the time-window which will be harvested.
<br/>S3Destination:  Configuration parameters for where in an S3 bucket to place the harvested content
:<br/>OriginEndpointId:  The ID of the OriginEndpoint that the HarvestJob will harvest from.
This cannot be changed after the HarvestJob is submitted.
<br/>Id:  The ID of the HarvestJob. The ID must be unique within the region
and it cannot be changed after the HarvestJob is submitted.
<br/>EndTime:  The end of the time-window which will be harvested.
<br/>CreatedAt:  The time the HarvestJob was submitted
<br/>ChannelId:  The ID of the Channel that the HarvestJob will harvest from.
<br/>Arn:  The Amazon Resource Name (ARN) assigned to the HarvestJob.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The IAM role used to write to the specified S3 bucket
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ManifestKey</i> The key in the specified S3 bucket where the harvested top-level manifest will be placed.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BucketName</i> The name of an S3 bucket within which harvested content will be exported
<br/>        """
        pass

    def create_origin_endpoint(self, Id: str, ChannelId: str, Authorization: Authorization=None, CmafPackage: CmafPackageCreateOrUpdateParameters=None, DashPackage: DashPackage=None, Description: str=None, HlsPackage: HlsPackage=None, ManifestName: str=None, MssPackage: MssPackage=None, Origination: str=None, StartoverWindowSeconds: int=None, Tags: Tags=None, TimeDelaySeconds: int=None, Whitelist: List[__string]=None) -> CreateOriginEndpointResponse:
        r"""Creates a new OriginEndpoint record.

        :param self:
        :param Whitelist:  A list of source IP CIDR blocks that will be allowed to access the OriginEndpoint.<br/>TimeDelaySeconds:  Amount of delay (seconds) to enforce on the playback of live content.
If not specified, there will be no time delay in effect for the OriginEndpoint.
<br/>Tags:  A collection of tags associated with a resource<br/>StartoverWindowSeconds:  Maximum duration (seconds) of content to retain for startover playback.
If not specified, startover playback will be disabled for the OriginEndpoint.
<br/>Origination:  Control whether origination of video is allowed for this OriginEndpoint. If set to ALLOW, the OriginEndpoint
may by requested, pursuant to any other form of access control. If set to DENY, the OriginEndpoint may not be
requested. This can be helpful for Live to VOD harvesting, or for temporarily disabling origination
<br/>MssPackage:  A Microsoft Smooth Streaming (MSS) packaging configuration.:<br/>ManifestName:  A short string that will be used as the filename of the OriginEndpoint URL (defaults to "index").<br/>Id:  The ID of the OriginEndpoint.  The ID must be unique within the region
and it cannot be changed after the OriginEndpoint is created.
<br/>HlsPackage:  An HTTP Live Streaming (HLS) packaging configuration.:<br/>Description:  A short text description of the OriginEndpoint.<br/>DashPackage:  A Dynamic Adaptive Streaming over HTTP (DASH) packaging configuration.:<br/>CmafPackage:  A Common Media Application Format (CMAF) packaging configuration.:<br/>ChannelId:  The ID of the Channel that the OriginEndpoint will be associated with.
This cannot be changed after the OriginEndpoint is created.
<br/>Authorization:  CDN Authorization credentials:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsRoleArn</i> The Amazon Resource Name (ARN) for the IAM role that allows MediaPackage to communicate with AWS Secrets Manager.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CdnIdentifierSecret</i> The Amazon Resource Name (ARN) for the secret in Secrets Manager that your Content Distribution Network (CDN) uses for authorization to access your endpoint.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamSelection</i> A StreamSelection configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StreamSelection</b>: A StreamSelection configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentPrefix</i> An optional custom string that is prepended to the name of each segment. If not specified, it defaults to the ChannelId.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentDurationSeconds</i> Duration (in seconds) of each segment. Actual segments will be
rounded to the nearest multiple of the source segment duration.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HlsManifests</i> A list of HLS manifest configurations<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Encryption</i> A Common Media Application Format (CMAF) encryption configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Encryption</b>: A Common Media Application Format (CMAF) encryption configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KeyRotationIntervalSeconds</i> Time (in seconds) between each encryption key rotation.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ConstantInitializationVector</i> An optional 128-bit, 16-byte hex value represented by a 32-character string, used in conjunction with the key for encrypting blocks. If you don't specify a value, then MediaPackage creates the constant initialization vector (IV).<br/>A configuration for accessing an external Secure Packager and Encoder Key Exchange (SPEKE) service that will provide encryption keys.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SpekeKeyProvider</b>: A configuration for accessing an external Secure Packager and Encoder Key Exchange (SPEKE) service that will provide encryption keys.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamOrder</i> A directive that determines the order of streams in the output.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MinVideoBitsPerSecond</i> The minimum video bitrate (bps) to include in output.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxVideoBitsPerSecond</i> The maximum video bitrate (bps) to include in output.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UtcTimingUri</i> Specifies the value attribute of the UTCTiming field when utcTiming is set to HTTP-ISO or HTTP-HEAD<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UtcTiming</i> Determines the type of UTCTiming included in the Media Presentation Description (MPD)<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SuggestedPresentationDelaySeconds</i> Duration (in seconds) to delay live content before presentation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamSelection</i> A StreamSelection configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StreamSelection</b>: A StreamSelection configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentTemplateFormat</i> Determines the type of SegmentTemplate included in the Media Presentation Description (MPD).  When set to NUMBER_WITH_TIMELINE, a full timeline is presented in each SegmentTemplate, with $Number$ media URLs.  When set to TIME_WITH_TIMELINE, a full timeline is presented in each SegmentTemplate, with $Time$ media URLs. When set to NUMBER_WITH_DURATION, only a duration is included in each SegmentTemplate, with $Number$ media URLs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentDurationSeconds</i> Duration (in seconds) of each segment. Actual segments will be
rounded to the nearest multiple of the source segment duration.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Profile</i> The Dynamic Adaptive Streaming over HTTP (DASH) profile type.  When set to "HBBTV_1_5", HbbTV 1.5 compliant output is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PeriodTriggers</i> A list of triggers that controls when the outgoing Dynamic Adaptive Streaming over HTTP (DASH)
Media Presentation Description (MPD) will be partitioned into multiple periods. If empty, the content will not
be partitioned into more than one period. If the list contains "ADS", new periods will be created where
the Channel source contains SCTE-35 ad markers.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MinUpdatePeriodSeconds</i> Minimum duration (in seconds) between potential changes to the Dynamic Adaptive Streaming over HTTP (DASH) Media Presentation Description (MPD).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MinBufferTimeSeconds</i> Minimum duration (in seconds) that a player will buffer media before starting the presentation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ManifestWindowSeconds</i> Time window (in seconds) contained in each manifest.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ManifestLayout</i> Determines the position of some tags in the Media Presentation Description (MPD).  When set to FULL, elements like SegmentTemplate and ContentProtection are included in each Representation.  When set to COMPACT, duplicate elements are combined and presented at the AdaptationSet level.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Encryption</i> A Dynamic Adaptive Streaming over HTTP (DASH) encryption configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Encryption</b>: A Dynamic Adaptive Streaming over HTTP (DASH) encryption configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdsOnDeliveryRestrictions</i> This setting allows the delivery restriction flags on SCTE-35 segmentation descriptors to
determine whether a message signals an ad.  Choosing "NONE" means no SCTE-35 messages become
ads.  Choosing "RESTRICTED" means SCTE-35 messages of the types specified in AdTriggers that
contain delivery restrictions will be treated as ads.  Choosing "UNRESTRICTED" means SCTE-35
messages of the types specified in AdTriggers that do not contain delivery restrictions will
be treated as ads.  Choosing "BOTH" means all SCTE-35 messages of the types specified in
AdTriggers will be treated as ads.  Note that Splice Insert messages do not have these flags
and are always treated as ads if specified in AdTriggers.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdTriggers</i> A list of SCTE-35 message types that are treated as ad markers in the output.  If empty, no
ad markers are output.  Specify multiple items to create ad markers for all of the included
message types.
<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KeyRotationIntervalSeconds</i> Time (in seconds) between each encryption key rotation.<br/>A configuration for accessing an external Secure Packager and Encoder Key Exchange (SPEKE) service that will provide encryption keys.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SpekeKeyProvider</b>: A configuration for accessing an external Secure Packager and Encoder Key Exchange (SPEKE) service that will provide encryption keys.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamOrder</i> A directive that determines the order of streams in the output.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MinVideoBitsPerSecond</i> The minimum video bitrate (bps) to include in output.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxVideoBitsPerSecond</i> The maximum video bitrate (bps) to include in output.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UseAudioRenditionGroup</i> When enabled, audio streams will be placed in rendition groups in the output.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamSelection</i> A StreamSelection configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StreamSelection</b>: A StreamSelection configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentDurationSeconds</i> Duration (in seconds) of each fragment. Actual fragments will be
rounded to the nearest multiple of the source fragment duration.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProgramDateTimeIntervalSeconds</i> The interval (in seconds) between each EXT-X-PROGRAM-DATE-TIME tag
inserted into manifests. Additionally, when an interval is specified
ID3Timed Metadata messages will be generated every 5 seconds using the
ingest time of the content.
If the interval is not specified, or set to 0, then
no EXT-X-PROGRAM-DATE-TIME tags will be inserted into manifests and no
ID3Timed Metadata messages will be generated. Note that irrespective
of this parameter, if any ID3 Timed Metadata is found in HTTP Live Streaming (HLS) input,
it will be passed through to HLS output.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PlaylistWindowSeconds</i> Time window (in seconds) contained in each parent manifest.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PlaylistType</i> The HTTP Live Streaming (HLS) playlist type.
When either "EVENT" or "VOD" is specified, a corresponding EXT-X-PLAYLIST-TYPE
entry will be included in the media playlist.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeIframeOnlyStream</i> When enabled, an I-Frame only stream will be included in the output.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Encryption</i> An HTTP Live Streaming (HLS) encryption configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Encryption</b>: An HTTP Live Streaming (HLS) encryption configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdsOnDeliveryRestrictions</i> This setting allows the delivery restriction flags on SCTE-35 segmentation descriptors to
determine whether a message signals an ad.  Choosing "NONE" means no SCTE-35 messages become
ads.  Choosing "RESTRICTED" means SCTE-35 messages of the types specified in AdTriggers that
contain delivery restrictions will be treated as ads.  Choosing "UNRESTRICTED" means SCTE-35
messages of the types specified in AdTriggers that do not contain delivery restrictions will
be treated as ads.  Choosing "BOTH" means all SCTE-35 messages of the types specified in
AdTriggers will be treated as ads.  Note that Splice Insert messages do not have these flags
and are always treated as ads if specified in AdTriggers.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdTriggers</i> A list of SCTE-35 message types that are treated as ad markers in the output.  If empty, no
ad markers are output.  Specify multiple items to create ad markers for all of the included
message types.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdMarkers</i> This setting controls how ad markers are included in the packaged OriginEndpoint.
"NONE" will omit all SCTE-35 ad markers from the output.
"PASSTHROUGH" causes the manifest to contain a copy of the SCTE-35 ad
markers (comments) taken directly from the input HTTP Live Streaming (HLS) manifest.
"SCTE35_ENHANCED" generates ad markers and blackout tags based on SCTE-35
messages in the input source.
"DATERANGE" inserts EXT-X-DATERANGE tags to signal ad and program transition events 
in HLS and CMAF manifests. For this option, you must set a programDateTimeIntervalSeconds value 
that is greater than 0.
<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RepeatExtXKey</i> When enabled, the EXT-X-KEY tag will be repeated in output manifests.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KeyRotationIntervalSeconds</i> Interval (in seconds) between each encryption key rotation.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EncryptionMethod</i> The encryption method to use.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ConstantInitializationVector</i> A constant initialization vector for encryption (optional).
When not specified the initialization vector will be periodically rotated.
<br/>A configuration for accessing an external Secure Packager and Encoder Key Exchange (SPEKE) service that will provide encryption keys.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SpekeKeyProvider</b>: A configuration for accessing an external Secure Packager and Encoder Key Exchange (SPEKE) service that will provide encryption keys.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamOrder</i> A directive that determines the order of streams in the output.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MinVideoBitsPerSecond</i> The minimum video bitrate (bps) to include in output.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxVideoBitsPerSecond</i> The maximum video bitrate (bps) to include in output.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamSelection</i> A StreamSelection configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StreamSelection</b>: A StreamSelection configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentDurationSeconds</i> The duration (in seconds) of each segment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ManifestWindowSeconds</i> The time window (in seconds) contained in each manifest.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Encryption</i> A Microsoft Smooth Streaming (MSS) encryption configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Encryption</b>: A Microsoft Smooth Streaming (MSS) encryption configuration.<br/>A configuration for accessing an external Secure Packager and Encoder Key Exchange (SPEKE) service that will provide encryption keys.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SpekeKeyProvider</b>: A configuration for accessing an external Secure Packager and Encoder Key Exchange (SPEKE) service that will provide encryption keys.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamOrder</i> A directive that determines the order of streams in the output.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MinVideoBitsPerSecond</i> The minimum video bitrate (bps) to include in output.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxVideoBitsPerSecond</i> The maximum video bitrate (bps) to include in output.<br/>
        :return: Whitelist:  A list of source IP CIDR blocks that will be allowed to access the OriginEndpoint.<br/>Url:  The URL of the packaged OriginEndpoint for consumption.<br/>TimeDelaySeconds:  Amount of delay (seconds) to enforce on the playback of live content.
If not specified, there will be no time delay in effect for the OriginEndpoint.
<br/>Tags:  A collection of tags associated with a resource<br/>StartoverWindowSeconds:  Maximum duration (seconds) of content to retain for startover playback.
If not specified, startover playback will be disabled for the OriginEndpoint.
<br/>Origination:  Control whether origination of video is allowed for this OriginEndpoint. If set to ALLOW, the OriginEndpoint
may by requested, pursuant to any other form of access control. If set to DENY, the OriginEndpoint may not be
requested. This can be helpful for Live to VOD harvesting, or for temporarily disabling origination
<br/>MssPackage:  A Microsoft Smooth Streaming (MSS) packaging configuration.:<br/>ManifestName:  A short string appended to the end of the OriginEndpoint URL.<br/>Id:  The ID of the OriginEndpoint.<br/>HlsPackage:  An HTTP Live Streaming (HLS) packaging configuration.:<br/>Description:  A short text description of the OriginEndpoint.<br/>DashPackage:  A Dynamic Adaptive Streaming over HTTP (DASH) packaging configuration.:<br/>CmafPackage:  A Common Media Application Format (CMAF) packaging configuration.:<br/>ChannelId:  The ID of the Channel the OriginEndpoint is associated with.<br/>Authorization:  CDN Authorization credentials:<br/>Arn:  The Amazon Resource Name (ARN) assigned to the OriginEndpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsRoleArn</i> The Amazon Resource Name (ARN) for the IAM role that allows MediaPackage to communicate with AWS Secrets Manager.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CdnIdentifierSecret</i> The Amazon Resource Name (ARN) for the secret in Secrets Manager that your Content Distribution Network (CDN) uses for authorization to access your endpoint.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamSelection</i> A StreamSelection configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StreamSelection</b>: A StreamSelection configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentPrefix</i> An optional custom string that is prepended to the name of each segment. If not specified, it defaults to the ChannelId.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentDurationSeconds</i> Duration (in seconds) of each segment. Actual segments will be
rounded to the nearest multiple of the source segment duration.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HlsManifests</i> A list of HLS manifest configurations<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Encryption</i> A Common Media Application Format (CMAF) encryption configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Encryption</b>: A Common Media Application Format (CMAF) encryption configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KeyRotationIntervalSeconds</i> Time (in seconds) between each encryption key rotation.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ConstantInitializationVector</i> An optional 128-bit, 16-byte hex value represented by a 32-character string, used in conjunction with the key for encrypting blocks. If you don't specify a value, then MediaPackage creates the constant initialization vector (IV).<br/>A configuration for accessing an external Secure Packager and Encoder Key Exchange (SPEKE) service that will provide encryption keys.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SpekeKeyProvider</b>: A configuration for accessing an external Secure Packager and Encoder Key Exchange (SPEKE) service that will provide encryption keys.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamOrder</i> A directive that determines the order of streams in the output.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MinVideoBitsPerSecond</i> The minimum video bitrate (bps) to include in output.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxVideoBitsPerSecond</i> The maximum video bitrate (bps) to include in output.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UtcTimingUri</i> Specifies the value attribute of the UTCTiming field when utcTiming is set to HTTP-ISO or HTTP-HEAD<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UtcTiming</i> Determines the type of UTCTiming included in the Media Presentation Description (MPD)<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SuggestedPresentationDelaySeconds</i> Duration (in seconds) to delay live content before presentation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamSelection</i> A StreamSelection configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StreamSelection</b>: A StreamSelection configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentTemplateFormat</i> Determines the type of SegmentTemplate included in the Media Presentation Description (MPD).  When set to NUMBER_WITH_TIMELINE, a full timeline is presented in each SegmentTemplate, with $Number$ media URLs.  When set to TIME_WITH_TIMELINE, a full timeline is presented in each SegmentTemplate, with $Time$ media URLs. When set to NUMBER_WITH_DURATION, only a duration is included in each SegmentTemplate, with $Number$ media URLs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentDurationSeconds</i> Duration (in seconds) of each segment. Actual segments will be
rounded to the nearest multiple of the source segment duration.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Profile</i> The Dynamic Adaptive Streaming over HTTP (DASH) profile type.  When set to "HBBTV_1_5", HbbTV 1.5 compliant output is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PeriodTriggers</i> A list of triggers that controls when the outgoing Dynamic Adaptive Streaming over HTTP (DASH)
Media Presentation Description (MPD) will be partitioned into multiple periods. If empty, the content will not
be partitioned into more than one period. If the list contains "ADS", new periods will be created where
the Channel source contains SCTE-35 ad markers.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MinUpdatePeriodSeconds</i> Minimum duration (in seconds) between potential changes to the Dynamic Adaptive Streaming over HTTP (DASH) Media Presentation Description (MPD).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MinBufferTimeSeconds</i> Minimum duration (in seconds) that a player will buffer media before starting the presentation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ManifestWindowSeconds</i> Time window (in seconds) contained in each manifest.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ManifestLayout</i> Determines the position of some tags in the Media Presentation Description (MPD).  When set to FULL, elements like SegmentTemplate and ContentProtection are included in each Representation.  When set to COMPACT, duplicate elements are combined and presented at the AdaptationSet level.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Encryption</i> A Dynamic Adaptive Streaming over HTTP (DASH) encryption configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Encryption</b>: A Dynamic Adaptive Streaming over HTTP (DASH) encryption configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdsOnDeliveryRestrictions</i> This setting allows the delivery restriction flags on SCTE-35 segmentation descriptors to
determine whether a message signals an ad.  Choosing "NONE" means no SCTE-35 messages become
ads.  Choosing "RESTRICTED" means SCTE-35 messages of the types specified in AdTriggers that
contain delivery restrictions will be treated as ads.  Choosing "UNRESTRICTED" means SCTE-35
messages of the types specified in AdTriggers that do not contain delivery restrictions will
be treated as ads.  Choosing "BOTH" means all SCTE-35 messages of the types specified in
AdTriggers will be treated as ads.  Note that Splice Insert messages do not have these flags
and are always treated as ads if specified in AdTriggers.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdTriggers</i> A list of SCTE-35 message types that are treated as ad markers in the output.  If empty, no
ad markers are output.  Specify multiple items to create ad markers for all of the included
message types.
<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KeyRotationIntervalSeconds</i> Time (in seconds) between each encryption key rotation.<br/>A configuration for accessing an external Secure Packager and Encoder Key Exchange (SPEKE) service that will provide encryption keys.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SpekeKeyProvider</b>: A configuration for accessing an external Secure Packager and Encoder Key Exchange (SPEKE) service that will provide encryption keys.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamOrder</i> A directive that determines the order of streams in the output.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MinVideoBitsPerSecond</i> The minimum video bitrate (bps) to include in output.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxVideoBitsPerSecond</i> The maximum video bitrate (bps) to include in output.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UseAudioRenditionGroup</i> When enabled, audio streams will be placed in rendition groups in the output.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamSelection</i> A StreamSelection configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StreamSelection</b>: A StreamSelection configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentDurationSeconds</i> Duration (in seconds) of each fragment. Actual fragments will be
rounded to the nearest multiple of the source fragment duration.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProgramDateTimeIntervalSeconds</i> The interval (in seconds) between each EXT-X-PROGRAM-DATE-TIME tag
inserted into manifests. Additionally, when an interval is specified
ID3Timed Metadata messages will be generated every 5 seconds using the
ingest time of the content.
If the interval is not specified, or set to 0, then
no EXT-X-PROGRAM-DATE-TIME tags will be inserted into manifests and no
ID3Timed Metadata messages will be generated. Note that irrespective
of this parameter, if any ID3 Timed Metadata is found in HTTP Live Streaming (HLS) input,
it will be passed through to HLS output.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PlaylistWindowSeconds</i> Time window (in seconds) contained in each parent manifest.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PlaylistType</i> The HTTP Live Streaming (HLS) playlist type.
When either "EVENT" or "VOD" is specified, a corresponding EXT-X-PLAYLIST-TYPE
entry will be included in the media playlist.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeIframeOnlyStream</i> When enabled, an I-Frame only stream will be included in the output.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Encryption</i> An HTTP Live Streaming (HLS) encryption configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Encryption</b>: An HTTP Live Streaming (HLS) encryption configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdsOnDeliveryRestrictions</i> This setting allows the delivery restriction flags on SCTE-35 segmentation descriptors to
determine whether a message signals an ad.  Choosing "NONE" means no SCTE-35 messages become
ads.  Choosing "RESTRICTED" means SCTE-35 messages of the types specified in AdTriggers that
contain delivery restrictions will be treated as ads.  Choosing "UNRESTRICTED" means SCTE-35
messages of the types specified in AdTriggers that do not contain delivery restrictions will
be treated as ads.  Choosing "BOTH" means all SCTE-35 messages of the types specified in
AdTriggers will be treated as ads.  Note that Splice Insert messages do not have these flags
and are always treated as ads if specified in AdTriggers.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdTriggers</i> A list of SCTE-35 message types that are treated as ad markers in the output.  If empty, no
ad markers are output.  Specify multiple items to create ad markers for all of the included
message types.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdMarkers</i> This setting controls how ad markers are included in the packaged OriginEndpoint.
"NONE" will omit all SCTE-35 ad markers from the output.
"PASSTHROUGH" causes the manifest to contain a copy of the SCTE-35 ad
markers (comments) taken directly from the input HTTP Live Streaming (HLS) manifest.
"SCTE35_ENHANCED" generates ad markers and blackout tags based on SCTE-35
messages in the input source.
"DATERANGE" inserts EXT-X-DATERANGE tags to signal ad and program transition events 
in HLS and CMAF manifests. For this option, you must set a programDateTimeIntervalSeconds value 
that is greater than 0.
<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RepeatExtXKey</i> When enabled, the EXT-X-KEY tag will be repeated in output manifests.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KeyRotationIntervalSeconds</i> Interval (in seconds) between each encryption key rotation.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EncryptionMethod</i> The encryption method to use.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ConstantInitializationVector</i> A constant initialization vector for encryption (optional).
When not specified the initialization vector will be periodically rotated.
<br/>A configuration for accessing an external Secure Packager and Encoder Key Exchange (SPEKE) service that will provide encryption keys.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SpekeKeyProvider</b>: A configuration for accessing an external Secure Packager and Encoder Key Exchange (SPEKE) service that will provide encryption keys.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamOrder</i> A directive that determines the order of streams in the output.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MinVideoBitsPerSecond</i> The minimum video bitrate (bps) to include in output.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxVideoBitsPerSecond</i> The maximum video bitrate (bps) to include in output.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamSelection</i> A StreamSelection configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StreamSelection</b>: A StreamSelection configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentDurationSeconds</i> The duration (in seconds) of each segment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ManifestWindowSeconds</i> The time window (in seconds) contained in each manifest.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Encryption</i> A Microsoft Smooth Streaming (MSS) encryption configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Encryption</b>: A Microsoft Smooth Streaming (MSS) encryption configuration.<br/>A configuration for accessing an external Secure Packager and Encoder Key Exchange (SPEKE) service that will provide encryption keys.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SpekeKeyProvider</b>: A configuration for accessing an external Secure Packager and Encoder Key Exchange (SPEKE) service that will provide encryption keys.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamOrder</i> A directive that determines the order of streams in the output.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MinVideoBitsPerSecond</i> The minimum video bitrate (bps) to include in output.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxVideoBitsPerSecond</i> The maximum video bitrate (bps) to include in output.<br/>        """
        pass

    def delete_channel(self, Id: str) -> DeleteChannelResponse:
        r"""Deletes an existing Channel.

        :param self:
        :param Id:  The ID of the Channel to delete.<br/>
        :return:         """
        pass

    def delete_origin_endpoint(self, Id: str) -> DeleteOriginEndpointResponse:
        r"""Deletes an existing OriginEndpoint.

        :param self:
        :param Id:  The ID of the OriginEndpoint to delete.<br/>
        :return:         """
        pass

    def describe_channel(self, Id: str) -> DescribeChannelResponse:
        r"""Gets details about a Channel.

        :param self:
        :param Id:  The ID of a Channel.<br/>
        :return: Tags:  A collection of tags associated with a resource<br/>IngressAccessLogs:  Configure ingress access logging.:<br/>Id:  The ID of the Channel.<br/>HlsIngest:  An HTTP Live Streaming (HLS) ingest resource configuration.:<br/>EgressAccessLogs:  Configure egress access logging.:<br/>Description:  A short text description of the Channel.<br/>Arn:  The Amazon Resource Name (ARN) assigned to the Channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogGroupName</i> Customize the log group name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IngestEndpoints</i> A list of endpoints to which the source stream should be sent.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogGroupName</i> Customize the log group name.<br/>        """
        pass

    def describe_harvest_job(self, Id: str) -> DescribeHarvestJobResponse:
        r"""Gets details about an existing HarvestJob.

        :param self:
        :param Id:  The ID of the HarvestJob.<br/>
        :return: Status:  The current status of the HarvestJob. Consider setting up a CloudWatch Event to listen for
HarvestJobs as they succeed or fail. In the event of failure, the CloudWatch Event will
include an explanation of why the HarvestJob failed.
<br/>StartTime:  The start of the time-window which will be harvested.
<br/>S3Destination:  Configuration parameters for where in an S3 bucket to place the harvested content
:<br/>OriginEndpointId:  The ID of the OriginEndpoint that the HarvestJob will harvest from.
This cannot be changed after the HarvestJob is submitted.
<br/>Id:  The ID of the HarvestJob. The ID must be unique within the region
and it cannot be changed after the HarvestJob is submitted.
<br/>EndTime:  The end of the time-window which will be harvested.
<br/>CreatedAt:  The time the HarvestJob was submitted
<br/>ChannelId:  The ID of the Channel that the HarvestJob will harvest from.
<br/>Arn:  The Amazon Resource Name (ARN) assigned to the HarvestJob.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The IAM role used to write to the specified S3 bucket
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ManifestKey</i> The key in the specified S3 bucket where the harvested top-level manifest will be placed.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BucketName</i> The name of an S3 bucket within which harvested content will be exported
<br/>        """
        pass

    def describe_origin_endpoint(self, Id: str) -> DescribeOriginEndpointResponse:
        r"""Gets details about an existing OriginEndpoint.

        :param self:
        :param Id:  The ID of the OriginEndpoint.<br/>
        :return: Whitelist:  A list of source IP CIDR blocks that will be allowed to access the OriginEndpoint.<br/>Url:  The URL of the packaged OriginEndpoint for consumption.<br/>TimeDelaySeconds:  Amount of delay (seconds) to enforce on the playback of live content.
If not specified, there will be no time delay in effect for the OriginEndpoint.
<br/>Tags:  A collection of tags associated with a resource<br/>StartoverWindowSeconds:  Maximum duration (seconds) of content to retain for startover playback.
If not specified, startover playback will be disabled for the OriginEndpoint.
<br/>Origination:  Control whether origination of video is allowed for this OriginEndpoint. If set to ALLOW, the OriginEndpoint
may by requested, pursuant to any other form of access control. If set to DENY, the OriginEndpoint may not be
requested. This can be helpful for Live to VOD harvesting, or for temporarily disabling origination
<br/>MssPackage:  A Microsoft Smooth Streaming (MSS) packaging configuration.:<br/>ManifestName:  A short string appended to the end of the OriginEndpoint URL.<br/>Id:  The ID of the OriginEndpoint.<br/>HlsPackage:  An HTTP Live Streaming (HLS) packaging configuration.:<br/>Description:  A short text description of the OriginEndpoint.<br/>DashPackage:  A Dynamic Adaptive Streaming over HTTP (DASH) packaging configuration.:<br/>CmafPackage:  A Common Media Application Format (CMAF) packaging configuration.:<br/>ChannelId:  The ID of the Channel the OriginEndpoint is associated with.<br/>Authorization:  CDN Authorization credentials:<br/>Arn:  The Amazon Resource Name (ARN) assigned to the OriginEndpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsRoleArn</i> The Amazon Resource Name (ARN) for the IAM role that allows MediaPackage to communicate with AWS Secrets Manager.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CdnIdentifierSecret</i> The Amazon Resource Name (ARN) for the secret in Secrets Manager that your Content Distribution Network (CDN) uses for authorization to access your endpoint.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamSelection</i> A StreamSelection configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StreamSelection</b>: A StreamSelection configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentPrefix</i> An optional custom string that is prepended to the name of each segment. If not specified, it defaults to the ChannelId.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentDurationSeconds</i> Duration (in seconds) of each segment. Actual segments will be
rounded to the nearest multiple of the source segment duration.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HlsManifests</i> A list of HLS manifest configurations<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Encryption</i> A Common Media Application Format (CMAF) encryption configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Encryption</b>: A Common Media Application Format (CMAF) encryption configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KeyRotationIntervalSeconds</i> Time (in seconds) between each encryption key rotation.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ConstantInitializationVector</i> An optional 128-bit, 16-byte hex value represented by a 32-character string, used in conjunction with the key for encrypting blocks. If you don't specify a value, then MediaPackage creates the constant initialization vector (IV).<br/>A configuration for accessing an external Secure Packager and Encoder Key Exchange (SPEKE) service that will provide encryption keys.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SpekeKeyProvider</b>: A configuration for accessing an external Secure Packager and Encoder Key Exchange (SPEKE) service that will provide encryption keys.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamOrder</i> A directive that determines the order of streams in the output.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MinVideoBitsPerSecond</i> The minimum video bitrate (bps) to include in output.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxVideoBitsPerSecond</i> The maximum video bitrate (bps) to include in output.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UtcTimingUri</i> Specifies the value attribute of the UTCTiming field when utcTiming is set to HTTP-ISO or HTTP-HEAD<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UtcTiming</i> Determines the type of UTCTiming included in the Media Presentation Description (MPD)<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SuggestedPresentationDelaySeconds</i> Duration (in seconds) to delay live content before presentation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamSelection</i> A StreamSelection configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StreamSelection</b>: A StreamSelection configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentTemplateFormat</i> Determines the type of SegmentTemplate included in the Media Presentation Description (MPD).  When set to NUMBER_WITH_TIMELINE, a full timeline is presented in each SegmentTemplate, with $Number$ media URLs.  When set to TIME_WITH_TIMELINE, a full timeline is presented in each SegmentTemplate, with $Time$ media URLs. When set to NUMBER_WITH_DURATION, only a duration is included in each SegmentTemplate, with $Number$ media URLs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentDurationSeconds</i> Duration (in seconds) of each segment. Actual segments will be
rounded to the nearest multiple of the source segment duration.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Profile</i> The Dynamic Adaptive Streaming over HTTP (DASH) profile type.  When set to "HBBTV_1_5", HbbTV 1.5 compliant output is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PeriodTriggers</i> A list of triggers that controls when the outgoing Dynamic Adaptive Streaming over HTTP (DASH)
Media Presentation Description (MPD) will be partitioned into multiple periods. If empty, the content will not
be partitioned into more than one period. If the list contains "ADS", new periods will be created where
the Channel source contains SCTE-35 ad markers.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MinUpdatePeriodSeconds</i> Minimum duration (in seconds) between potential changes to the Dynamic Adaptive Streaming over HTTP (DASH) Media Presentation Description (MPD).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MinBufferTimeSeconds</i> Minimum duration (in seconds) that a player will buffer media before starting the presentation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ManifestWindowSeconds</i> Time window (in seconds) contained in each manifest.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ManifestLayout</i> Determines the position of some tags in the Media Presentation Description (MPD).  When set to FULL, elements like SegmentTemplate and ContentProtection are included in each Representation.  When set to COMPACT, duplicate elements are combined and presented at the AdaptationSet level.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Encryption</i> A Dynamic Adaptive Streaming over HTTP (DASH) encryption configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Encryption</b>: A Dynamic Adaptive Streaming over HTTP (DASH) encryption configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdsOnDeliveryRestrictions</i> This setting allows the delivery restriction flags on SCTE-35 segmentation descriptors to
determine whether a message signals an ad.  Choosing "NONE" means no SCTE-35 messages become
ads.  Choosing "RESTRICTED" means SCTE-35 messages of the types specified in AdTriggers that
contain delivery restrictions will be treated as ads.  Choosing "UNRESTRICTED" means SCTE-35
messages of the types specified in AdTriggers that do not contain delivery restrictions will
be treated as ads.  Choosing "BOTH" means all SCTE-35 messages of the types specified in
AdTriggers will be treated as ads.  Note that Splice Insert messages do not have these flags
and are always treated as ads if specified in AdTriggers.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdTriggers</i> A list of SCTE-35 message types that are treated as ad markers in the output.  If empty, no
ad markers are output.  Specify multiple items to create ad markers for all of the included
message types.
<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KeyRotationIntervalSeconds</i> Time (in seconds) between each encryption key rotation.<br/>A configuration for accessing an external Secure Packager and Encoder Key Exchange (SPEKE) service that will provide encryption keys.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SpekeKeyProvider</b>: A configuration for accessing an external Secure Packager and Encoder Key Exchange (SPEKE) service that will provide encryption keys.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamOrder</i> A directive that determines the order of streams in the output.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MinVideoBitsPerSecond</i> The minimum video bitrate (bps) to include in output.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxVideoBitsPerSecond</i> The maximum video bitrate (bps) to include in output.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UseAudioRenditionGroup</i> When enabled, audio streams will be placed in rendition groups in the output.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamSelection</i> A StreamSelection configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StreamSelection</b>: A StreamSelection configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentDurationSeconds</i> Duration (in seconds) of each fragment. Actual fragments will be
rounded to the nearest multiple of the source fragment duration.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProgramDateTimeIntervalSeconds</i> The interval (in seconds) between each EXT-X-PROGRAM-DATE-TIME tag
inserted into manifests. Additionally, when an interval is specified
ID3Timed Metadata messages will be generated every 5 seconds using the
ingest time of the content.
If the interval is not specified, or set to 0, then
no EXT-X-PROGRAM-DATE-TIME tags will be inserted into manifests and no
ID3Timed Metadata messages will be generated. Note that irrespective
of this parameter, if any ID3 Timed Metadata is found in HTTP Live Streaming (HLS) input,
it will be passed through to HLS output.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PlaylistWindowSeconds</i> Time window (in seconds) contained in each parent manifest.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PlaylistType</i> The HTTP Live Streaming (HLS) playlist type.
When either "EVENT" or "VOD" is specified, a corresponding EXT-X-PLAYLIST-TYPE
entry will be included in the media playlist.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeIframeOnlyStream</i> When enabled, an I-Frame only stream will be included in the output.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Encryption</i> An HTTP Live Streaming (HLS) encryption configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Encryption</b>: An HTTP Live Streaming (HLS) encryption configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdsOnDeliveryRestrictions</i> This setting allows the delivery restriction flags on SCTE-35 segmentation descriptors to
determine whether a message signals an ad.  Choosing "NONE" means no SCTE-35 messages become
ads.  Choosing "RESTRICTED" means SCTE-35 messages of the types specified in AdTriggers that
contain delivery restrictions will be treated as ads.  Choosing "UNRESTRICTED" means SCTE-35
messages of the types specified in AdTriggers that do not contain delivery restrictions will
be treated as ads.  Choosing "BOTH" means all SCTE-35 messages of the types specified in
AdTriggers will be treated as ads.  Note that Splice Insert messages do not have these flags
and are always treated as ads if specified in AdTriggers.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdTriggers</i> A list of SCTE-35 message types that are treated as ad markers in the output.  If empty, no
ad markers are output.  Specify multiple items to create ad markers for all of the included
message types.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdMarkers</i> This setting controls how ad markers are included in the packaged OriginEndpoint.
"NONE" will omit all SCTE-35 ad markers from the output.
"PASSTHROUGH" causes the manifest to contain a copy of the SCTE-35 ad
markers (comments) taken directly from the input HTTP Live Streaming (HLS) manifest.
"SCTE35_ENHANCED" generates ad markers and blackout tags based on SCTE-35
messages in the input source.
"DATERANGE" inserts EXT-X-DATERANGE tags to signal ad and program transition events 
in HLS and CMAF manifests. For this option, you must set a programDateTimeIntervalSeconds value 
that is greater than 0.
<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RepeatExtXKey</i> When enabled, the EXT-X-KEY tag will be repeated in output manifests.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KeyRotationIntervalSeconds</i> Interval (in seconds) between each encryption key rotation.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EncryptionMethod</i> The encryption method to use.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ConstantInitializationVector</i> A constant initialization vector for encryption (optional).
When not specified the initialization vector will be periodically rotated.
<br/>A configuration for accessing an external Secure Packager and Encoder Key Exchange (SPEKE) service that will provide encryption keys.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SpekeKeyProvider</b>: A configuration for accessing an external Secure Packager and Encoder Key Exchange (SPEKE) service that will provide encryption keys.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamOrder</i> A directive that determines the order of streams in the output.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MinVideoBitsPerSecond</i> The minimum video bitrate (bps) to include in output.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxVideoBitsPerSecond</i> The maximum video bitrate (bps) to include in output.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamSelection</i> A StreamSelection configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StreamSelection</b>: A StreamSelection configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentDurationSeconds</i> The duration (in seconds) of each segment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ManifestWindowSeconds</i> The time window (in seconds) contained in each manifest.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Encryption</i> A Microsoft Smooth Streaming (MSS) encryption configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Encryption</b>: A Microsoft Smooth Streaming (MSS) encryption configuration.<br/>A configuration for accessing an external Secure Packager and Encoder Key Exchange (SPEKE) service that will provide encryption keys.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SpekeKeyProvider</b>: A configuration for accessing an external Secure Packager and Encoder Key Exchange (SPEKE) service that will provide encryption keys.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamOrder</i> A directive that determines the order of streams in the output.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MinVideoBitsPerSecond</i> The minimum video bitrate (bps) to include in output.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxVideoBitsPerSecond</i> The maximum video bitrate (bps) to include in output.<br/>        """
        pass

    def list_channels(self, MaxResults: int=None, NextToken: str=None) -> ListChannelsResponse:
        r"""Returns a collection of Channels.

        :param self:
        :param NextToken:  A token used to resume pagination from the end of a previous request.<br/>MaxResults:  Upper bound on number of records to return.<br/>
        :return: NextToken:  A token that can be used to resume pagination from the end of the collection.<br/>Channels:  A list of Channel records.<br/>        """
        pass

    def list_harvest_jobs(self, IncludeChannelId: str=None, IncludeStatus: str=None, MaxResults: int=None, NextToken: str=None) -> ListHarvestJobsResponse:
        r"""Returns a collection of HarvestJob records.

        :param self:
        :param NextToken:  A token used to resume pagination from the end of a previous request.<br/>MaxResults:  The upper bound on the number of records to return.<br/>IncludeStatus:  When specified, the request will return only HarvestJobs in the given status.<br/>IncludeChannelId:  When specified, the request will return only HarvestJobs associated with the given Channel ID.<br/>
        :return: NextToken:  A token that can be used to resume pagination from the end of the collection.<br/>HarvestJobs:  A list of HarvestJob records.<br/>        """
        pass

    def list_origin_endpoints(self, ChannelId: str=None, MaxResults: int=None, NextToken: str=None) -> ListOriginEndpointsResponse:
        r"""Returns a collection of OriginEndpoint records.

        :param self:
        :param NextToken:  A token used to resume pagination from the end of a previous request.<br/>MaxResults:  The upper bound on the number of records to return.<br/>ChannelId:  When specified, the request will return only OriginEndpoints associated with the given Channel ID.<br/>
        :return: OriginEndpoints:  A list of OriginEndpoint records.<br/>NextToken:  A token that can be used to resume pagination from the end of the collection.<br/>        """
        pass

    def list_tags_for_resource(self, ResourceArn: str) -> ListTagsForResourceResponse:
        r"""

        :param self:
        :param ResourceArn:  <br/>
        :return: Tags:  <br/>        """
        pass

    def rotate_channel_credentials(self, Id: str) -> RotateChannelCredentialsResponse:
        r"""Changes the Channel's first IngestEndpoint's username and password. WARNING - This API is deprecated. Please use RotateIngestEndpointCredentials instead

        :param self:
        :param Id:  The ID of the channel to update.<br/>
        :return: Tags:  A collection of tags associated with a resource<br/>IngressAccessLogs:  Configure ingress access logging.:<br/>Id:  The ID of the Channel.<br/>HlsIngest:  An HTTP Live Streaming (HLS) ingest resource configuration.:<br/>EgressAccessLogs:  Configure egress access logging.:<br/>Description:  A short text description of the Channel.<br/>Arn:  The Amazon Resource Name (ARN) assigned to the Channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogGroupName</i> Customize the log group name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IngestEndpoints</i> A list of endpoints to which the source stream should be sent.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogGroupName</i> Customize the log group name.<br/>        """
        pass

    def rotate_ingest_endpoint_credentials(self, IngestEndpointId: str, Id: str) -> RotateIngestEndpointCredentialsResponse:
        r"""Rotate the IngestEndpoint's username and password, as specified by the IngestEndpoint's id.

        :param self:
        :param IngestEndpointId:  The id of the IngestEndpoint whose credentials should be rotated<br/>Id:  The ID of the channel the IngestEndpoint is on.<br/>
        :return: Tags:  A collection of tags associated with a resource<br/>IngressAccessLogs:  Configure ingress access logging.:<br/>Id:  The ID of the Channel.<br/>HlsIngest:  An HTTP Live Streaming (HLS) ingest resource configuration.:<br/>EgressAccessLogs:  Configure egress access logging.:<br/>Description:  A short text description of the Channel.<br/>Arn:  The Amazon Resource Name (ARN) assigned to the Channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogGroupName</i> Customize the log group name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IngestEndpoints</i> A list of endpoints to which the source stream should be sent.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogGroupName</i> Customize the log group name.<br/>        """
        pass

    def tag_resource(self, Tags: __mapOf__string, ResourceArn: str):
        r"""

        :param self:
        :param Tags:  <br/>ResourceArn:  <br/>
        :return:         """
        pass

    def untag_resource(self, TagKeys: List[__string], ResourceArn: str):
        r"""

        :param self:
        :param TagKeys:  The key(s) of tag to be deleted<br/>ResourceArn:  <br/>
        :return:         """
        pass

    def update_channel(self, Id: str, Description: str=None) -> UpdateChannelResponse:
        r"""Updates an existing Channel.

        :param self:
        :param Id:  The ID of the Channel to update.<br/>Description:  A short text description of the Channel.<br/>
        :return: Tags:  A collection of tags associated with a resource<br/>IngressAccessLogs:  Configure ingress access logging.:<br/>Id:  The ID of the Channel.<br/>HlsIngest:  An HTTP Live Streaming (HLS) ingest resource configuration.:<br/>EgressAccessLogs:  Configure egress access logging.:<br/>Description:  A short text description of the Channel.<br/>Arn:  The Amazon Resource Name (ARN) assigned to the Channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogGroupName</i> Customize the log group name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IngestEndpoints</i> A list of endpoints to which the source stream should be sent.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogGroupName</i> Customize the log group name.<br/>        """
        pass

    def update_origin_endpoint(self, Id: str, Authorization: Authorization=None, CmafPackage: CmafPackageCreateOrUpdateParameters=None, DashPackage: DashPackage=None, Description: str=None, HlsPackage: HlsPackage=None, ManifestName: str=None, MssPackage: MssPackage=None, Origination: str=None, StartoverWindowSeconds: int=None, TimeDelaySeconds: int=None, Whitelist: List[__string]=None) -> UpdateOriginEndpointResponse:
        r"""Updates an existing OriginEndpoint.

        :param self:
        :param Whitelist:  A list of source IP CIDR blocks that will be allowed to access the OriginEndpoint.<br/>TimeDelaySeconds:  Amount of delay (in seconds) to enforce on the playback of live content.
If not specified, there will be no time delay in effect for the OriginEndpoint.
<br/>StartoverWindowSeconds:  Maximum duration (in seconds) of content to retain for startover playback.
If not specified, startover playback will be disabled for the OriginEndpoint.
<br/>Origination:  Control whether origination of video is allowed for this OriginEndpoint. If set to ALLOW, the OriginEndpoint
may by requested, pursuant to any other form of access control. If set to DENY, the OriginEndpoint may not be
requested. This can be helpful for Live to VOD harvesting, or for temporarily disabling origination
<br/>MssPackage:  A Microsoft Smooth Streaming (MSS) packaging configuration.:<br/>ManifestName:  A short string that will be appended to the end of the Endpoint URL.<br/>Id:  The ID of the OriginEndpoint to update.<br/>HlsPackage:  An HTTP Live Streaming (HLS) packaging configuration.:<br/>Description:  A short text description of the OriginEndpoint.<br/>DashPackage:  A Dynamic Adaptive Streaming over HTTP (DASH) packaging configuration.:<br/>CmafPackage:  A Common Media Application Format (CMAF) packaging configuration.:<br/>Authorization:  CDN Authorization credentials:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsRoleArn</i> The Amazon Resource Name (ARN) for the IAM role that allows MediaPackage to communicate with AWS Secrets Manager.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CdnIdentifierSecret</i> The Amazon Resource Name (ARN) for the secret in Secrets Manager that your Content Distribution Network (CDN) uses for authorization to access your endpoint.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamSelection</i> A StreamSelection configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StreamSelection</b>: A StreamSelection configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentPrefix</i> An optional custom string that is prepended to the name of each segment. If not specified, it defaults to the ChannelId.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentDurationSeconds</i> Duration (in seconds) of each segment. Actual segments will be
rounded to the nearest multiple of the source segment duration.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HlsManifests</i> A list of HLS manifest configurations<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Encryption</i> A Common Media Application Format (CMAF) encryption configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Encryption</b>: A Common Media Application Format (CMAF) encryption configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KeyRotationIntervalSeconds</i> Time (in seconds) between each encryption key rotation.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ConstantInitializationVector</i> An optional 128-bit, 16-byte hex value represented by a 32-character string, used in conjunction with the key for encrypting blocks. If you don't specify a value, then MediaPackage creates the constant initialization vector (IV).<br/>A configuration for accessing an external Secure Packager and Encoder Key Exchange (SPEKE) service that will provide encryption keys.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SpekeKeyProvider</b>: A configuration for accessing an external Secure Packager and Encoder Key Exchange (SPEKE) service that will provide encryption keys.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamOrder</i> A directive that determines the order of streams in the output.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MinVideoBitsPerSecond</i> The minimum video bitrate (bps) to include in output.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxVideoBitsPerSecond</i> The maximum video bitrate (bps) to include in output.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UtcTimingUri</i> Specifies the value attribute of the UTCTiming field when utcTiming is set to HTTP-ISO or HTTP-HEAD<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UtcTiming</i> Determines the type of UTCTiming included in the Media Presentation Description (MPD)<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SuggestedPresentationDelaySeconds</i> Duration (in seconds) to delay live content before presentation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamSelection</i> A StreamSelection configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StreamSelection</b>: A StreamSelection configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentTemplateFormat</i> Determines the type of SegmentTemplate included in the Media Presentation Description (MPD).  When set to NUMBER_WITH_TIMELINE, a full timeline is presented in each SegmentTemplate, with $Number$ media URLs.  When set to TIME_WITH_TIMELINE, a full timeline is presented in each SegmentTemplate, with $Time$ media URLs. When set to NUMBER_WITH_DURATION, only a duration is included in each SegmentTemplate, with $Number$ media URLs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentDurationSeconds</i> Duration (in seconds) of each segment. Actual segments will be
rounded to the nearest multiple of the source segment duration.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Profile</i> The Dynamic Adaptive Streaming over HTTP (DASH) profile type.  When set to "HBBTV_1_5", HbbTV 1.5 compliant output is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PeriodTriggers</i> A list of triggers that controls when the outgoing Dynamic Adaptive Streaming over HTTP (DASH)
Media Presentation Description (MPD) will be partitioned into multiple periods. If empty, the content will not
be partitioned into more than one period. If the list contains "ADS", new periods will be created where
the Channel source contains SCTE-35 ad markers.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MinUpdatePeriodSeconds</i> Minimum duration (in seconds) between potential changes to the Dynamic Adaptive Streaming over HTTP (DASH) Media Presentation Description (MPD).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MinBufferTimeSeconds</i> Minimum duration (in seconds) that a player will buffer media before starting the presentation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ManifestWindowSeconds</i> Time window (in seconds) contained in each manifest.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ManifestLayout</i> Determines the position of some tags in the Media Presentation Description (MPD).  When set to FULL, elements like SegmentTemplate and ContentProtection are included in each Representation.  When set to COMPACT, duplicate elements are combined and presented at the AdaptationSet level.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Encryption</i> A Dynamic Adaptive Streaming over HTTP (DASH) encryption configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Encryption</b>: A Dynamic Adaptive Streaming over HTTP (DASH) encryption configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdsOnDeliveryRestrictions</i> This setting allows the delivery restriction flags on SCTE-35 segmentation descriptors to
determine whether a message signals an ad.  Choosing "NONE" means no SCTE-35 messages become
ads.  Choosing "RESTRICTED" means SCTE-35 messages of the types specified in AdTriggers that
contain delivery restrictions will be treated as ads.  Choosing "UNRESTRICTED" means SCTE-35
messages of the types specified in AdTriggers that do not contain delivery restrictions will
be treated as ads.  Choosing "BOTH" means all SCTE-35 messages of the types specified in
AdTriggers will be treated as ads.  Note that Splice Insert messages do not have these flags
and are always treated as ads if specified in AdTriggers.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdTriggers</i> A list of SCTE-35 message types that are treated as ad markers in the output.  If empty, no
ad markers are output.  Specify multiple items to create ad markers for all of the included
message types.
<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KeyRotationIntervalSeconds</i> Time (in seconds) between each encryption key rotation.<br/>A configuration for accessing an external Secure Packager and Encoder Key Exchange (SPEKE) service that will provide encryption keys.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SpekeKeyProvider</b>: A configuration for accessing an external Secure Packager and Encoder Key Exchange (SPEKE) service that will provide encryption keys.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamOrder</i> A directive that determines the order of streams in the output.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MinVideoBitsPerSecond</i> The minimum video bitrate (bps) to include in output.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxVideoBitsPerSecond</i> The maximum video bitrate (bps) to include in output.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UseAudioRenditionGroup</i> When enabled, audio streams will be placed in rendition groups in the output.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamSelection</i> A StreamSelection configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StreamSelection</b>: A StreamSelection configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentDurationSeconds</i> Duration (in seconds) of each fragment. Actual fragments will be
rounded to the nearest multiple of the source fragment duration.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProgramDateTimeIntervalSeconds</i> The interval (in seconds) between each EXT-X-PROGRAM-DATE-TIME tag
inserted into manifests. Additionally, when an interval is specified
ID3Timed Metadata messages will be generated every 5 seconds using the
ingest time of the content.
If the interval is not specified, or set to 0, then
no EXT-X-PROGRAM-DATE-TIME tags will be inserted into manifests and no
ID3Timed Metadata messages will be generated. Note that irrespective
of this parameter, if any ID3 Timed Metadata is found in HTTP Live Streaming (HLS) input,
it will be passed through to HLS output.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PlaylistWindowSeconds</i> Time window (in seconds) contained in each parent manifest.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PlaylistType</i> The HTTP Live Streaming (HLS) playlist type.
When either "EVENT" or "VOD" is specified, a corresponding EXT-X-PLAYLIST-TYPE
entry will be included in the media playlist.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeIframeOnlyStream</i> When enabled, an I-Frame only stream will be included in the output.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Encryption</i> An HTTP Live Streaming (HLS) encryption configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Encryption</b>: An HTTP Live Streaming (HLS) encryption configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdsOnDeliveryRestrictions</i> This setting allows the delivery restriction flags on SCTE-35 segmentation descriptors to
determine whether a message signals an ad.  Choosing "NONE" means no SCTE-35 messages become
ads.  Choosing "RESTRICTED" means SCTE-35 messages of the types specified in AdTriggers that
contain delivery restrictions will be treated as ads.  Choosing "UNRESTRICTED" means SCTE-35
messages of the types specified in AdTriggers that do not contain delivery restrictions will
be treated as ads.  Choosing "BOTH" means all SCTE-35 messages of the types specified in
AdTriggers will be treated as ads.  Note that Splice Insert messages do not have these flags
and are always treated as ads if specified in AdTriggers.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdTriggers</i> A list of SCTE-35 message types that are treated as ad markers in the output.  If empty, no
ad markers are output.  Specify multiple items to create ad markers for all of the included
message types.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdMarkers</i> This setting controls how ad markers are included in the packaged OriginEndpoint.
"NONE" will omit all SCTE-35 ad markers from the output.
"PASSTHROUGH" causes the manifest to contain a copy of the SCTE-35 ad
markers (comments) taken directly from the input HTTP Live Streaming (HLS) manifest.
"SCTE35_ENHANCED" generates ad markers and blackout tags based on SCTE-35
messages in the input source.
"DATERANGE" inserts EXT-X-DATERANGE tags to signal ad and program transition events 
in HLS and CMAF manifests. For this option, you must set a programDateTimeIntervalSeconds value 
that is greater than 0.
<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RepeatExtXKey</i> When enabled, the EXT-X-KEY tag will be repeated in output manifests.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KeyRotationIntervalSeconds</i> Interval (in seconds) between each encryption key rotation.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EncryptionMethod</i> The encryption method to use.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ConstantInitializationVector</i> A constant initialization vector for encryption (optional).
When not specified the initialization vector will be periodically rotated.
<br/>A configuration for accessing an external Secure Packager and Encoder Key Exchange (SPEKE) service that will provide encryption keys.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SpekeKeyProvider</b>: A configuration for accessing an external Secure Packager and Encoder Key Exchange (SPEKE) service that will provide encryption keys.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamOrder</i> A directive that determines the order of streams in the output.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MinVideoBitsPerSecond</i> The minimum video bitrate (bps) to include in output.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxVideoBitsPerSecond</i> The maximum video bitrate (bps) to include in output.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamSelection</i> A StreamSelection configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StreamSelection</b>: A StreamSelection configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentDurationSeconds</i> The duration (in seconds) of each segment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ManifestWindowSeconds</i> The time window (in seconds) contained in each manifest.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Encryption</i> A Microsoft Smooth Streaming (MSS) encryption configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Encryption</b>: A Microsoft Smooth Streaming (MSS) encryption configuration.<br/>A configuration for accessing an external Secure Packager and Encoder Key Exchange (SPEKE) service that will provide encryption keys.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SpekeKeyProvider</b>: A configuration for accessing an external Secure Packager and Encoder Key Exchange (SPEKE) service that will provide encryption keys.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamOrder</i> A directive that determines the order of streams in the output.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MinVideoBitsPerSecond</i> The minimum video bitrate (bps) to include in output.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxVideoBitsPerSecond</i> The maximum video bitrate (bps) to include in output.<br/>
        :return: Whitelist:  A list of source IP CIDR blocks that will be allowed to access the OriginEndpoint.<br/>Url:  The URL of the packaged OriginEndpoint for consumption.<br/>TimeDelaySeconds:  Amount of delay (seconds) to enforce on the playback of live content.
If not specified, there will be no time delay in effect for the OriginEndpoint.
<br/>Tags:  A collection of tags associated with a resource<br/>StartoverWindowSeconds:  Maximum duration (seconds) of content to retain for startover playback.
If not specified, startover playback will be disabled for the OriginEndpoint.
<br/>Origination:  Control whether origination of video is allowed for this OriginEndpoint. If set to ALLOW, the OriginEndpoint
may by requested, pursuant to any other form of access control. If set to DENY, the OriginEndpoint may not be
requested. This can be helpful for Live to VOD harvesting, or for temporarily disabling origination
<br/>MssPackage:  A Microsoft Smooth Streaming (MSS) packaging configuration.:<br/>ManifestName:  A short string appended to the end of the OriginEndpoint URL.<br/>Id:  The ID of the OriginEndpoint.<br/>HlsPackage:  An HTTP Live Streaming (HLS) packaging configuration.:<br/>Description:  A short text description of the OriginEndpoint.<br/>DashPackage:  A Dynamic Adaptive Streaming over HTTP (DASH) packaging configuration.:<br/>CmafPackage:  A Common Media Application Format (CMAF) packaging configuration.:<br/>ChannelId:  The ID of the Channel the OriginEndpoint is associated with.<br/>Authorization:  CDN Authorization credentials:<br/>Arn:  The Amazon Resource Name (ARN) assigned to the OriginEndpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsRoleArn</i> The Amazon Resource Name (ARN) for the IAM role that allows MediaPackage to communicate with AWS Secrets Manager.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CdnIdentifierSecret</i> The Amazon Resource Name (ARN) for the secret in Secrets Manager that your Content Distribution Network (CDN) uses for authorization to access your endpoint.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamSelection</i> A StreamSelection configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StreamSelection</b>: A StreamSelection configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentPrefix</i> An optional custom string that is prepended to the name of each segment. If not specified, it defaults to the ChannelId.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentDurationSeconds</i> Duration (in seconds) of each segment. Actual segments will be
rounded to the nearest multiple of the source segment duration.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HlsManifests</i> A list of HLS manifest configurations<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Encryption</i> A Common Media Application Format (CMAF) encryption configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Encryption</b>: A Common Media Application Format (CMAF) encryption configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KeyRotationIntervalSeconds</i> Time (in seconds) between each encryption key rotation.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ConstantInitializationVector</i> An optional 128-bit, 16-byte hex value represented by a 32-character string, used in conjunction with the key for encrypting blocks. If you don't specify a value, then MediaPackage creates the constant initialization vector (IV).<br/>A configuration for accessing an external Secure Packager and Encoder Key Exchange (SPEKE) service that will provide encryption keys.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SpekeKeyProvider</b>: A configuration for accessing an external Secure Packager and Encoder Key Exchange (SPEKE) service that will provide encryption keys.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamOrder</i> A directive that determines the order of streams in the output.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MinVideoBitsPerSecond</i> The minimum video bitrate (bps) to include in output.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxVideoBitsPerSecond</i> The maximum video bitrate (bps) to include in output.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UtcTimingUri</i> Specifies the value attribute of the UTCTiming field when utcTiming is set to HTTP-ISO or HTTP-HEAD<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UtcTiming</i> Determines the type of UTCTiming included in the Media Presentation Description (MPD)<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SuggestedPresentationDelaySeconds</i> Duration (in seconds) to delay live content before presentation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamSelection</i> A StreamSelection configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StreamSelection</b>: A StreamSelection configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentTemplateFormat</i> Determines the type of SegmentTemplate included in the Media Presentation Description (MPD).  When set to NUMBER_WITH_TIMELINE, a full timeline is presented in each SegmentTemplate, with $Number$ media URLs.  When set to TIME_WITH_TIMELINE, a full timeline is presented in each SegmentTemplate, with $Time$ media URLs. When set to NUMBER_WITH_DURATION, only a duration is included in each SegmentTemplate, with $Number$ media URLs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentDurationSeconds</i> Duration (in seconds) of each segment. Actual segments will be
rounded to the nearest multiple of the source segment duration.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Profile</i> The Dynamic Adaptive Streaming over HTTP (DASH) profile type.  When set to "HBBTV_1_5", HbbTV 1.5 compliant output is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PeriodTriggers</i> A list of triggers that controls when the outgoing Dynamic Adaptive Streaming over HTTP (DASH)
Media Presentation Description (MPD) will be partitioned into multiple periods. If empty, the content will not
be partitioned into more than one period. If the list contains "ADS", new periods will be created where
the Channel source contains SCTE-35 ad markers.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MinUpdatePeriodSeconds</i> Minimum duration (in seconds) between potential changes to the Dynamic Adaptive Streaming over HTTP (DASH) Media Presentation Description (MPD).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MinBufferTimeSeconds</i> Minimum duration (in seconds) that a player will buffer media before starting the presentation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ManifestWindowSeconds</i> Time window (in seconds) contained in each manifest.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ManifestLayout</i> Determines the position of some tags in the Media Presentation Description (MPD).  When set to FULL, elements like SegmentTemplate and ContentProtection are included in each Representation.  When set to COMPACT, duplicate elements are combined and presented at the AdaptationSet level.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Encryption</i> A Dynamic Adaptive Streaming over HTTP (DASH) encryption configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Encryption</b>: A Dynamic Adaptive Streaming over HTTP (DASH) encryption configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdsOnDeliveryRestrictions</i> This setting allows the delivery restriction flags on SCTE-35 segmentation descriptors to
determine whether a message signals an ad.  Choosing "NONE" means no SCTE-35 messages become
ads.  Choosing "RESTRICTED" means SCTE-35 messages of the types specified in AdTriggers that
contain delivery restrictions will be treated as ads.  Choosing "UNRESTRICTED" means SCTE-35
messages of the types specified in AdTriggers that do not contain delivery restrictions will
be treated as ads.  Choosing "BOTH" means all SCTE-35 messages of the types specified in
AdTriggers will be treated as ads.  Note that Splice Insert messages do not have these flags
and are always treated as ads if specified in AdTriggers.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdTriggers</i> A list of SCTE-35 message types that are treated as ad markers in the output.  If empty, no
ad markers are output.  Specify multiple items to create ad markers for all of the included
message types.
<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KeyRotationIntervalSeconds</i> Time (in seconds) between each encryption key rotation.<br/>A configuration for accessing an external Secure Packager and Encoder Key Exchange (SPEKE) service that will provide encryption keys.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SpekeKeyProvider</b>: A configuration for accessing an external Secure Packager and Encoder Key Exchange (SPEKE) service that will provide encryption keys.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamOrder</i> A directive that determines the order of streams in the output.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MinVideoBitsPerSecond</i> The minimum video bitrate (bps) to include in output.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxVideoBitsPerSecond</i> The maximum video bitrate (bps) to include in output.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UseAudioRenditionGroup</i> When enabled, audio streams will be placed in rendition groups in the output.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamSelection</i> A StreamSelection configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StreamSelection</b>: A StreamSelection configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentDurationSeconds</i> Duration (in seconds) of each fragment. Actual fragments will be
rounded to the nearest multiple of the source fragment duration.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProgramDateTimeIntervalSeconds</i> The interval (in seconds) between each EXT-X-PROGRAM-DATE-TIME tag
inserted into manifests. Additionally, when an interval is specified
ID3Timed Metadata messages will be generated every 5 seconds using the
ingest time of the content.
If the interval is not specified, or set to 0, then
no EXT-X-PROGRAM-DATE-TIME tags will be inserted into manifests and no
ID3Timed Metadata messages will be generated. Note that irrespective
of this parameter, if any ID3 Timed Metadata is found in HTTP Live Streaming (HLS) input,
it will be passed through to HLS output.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PlaylistWindowSeconds</i> Time window (in seconds) contained in each parent manifest.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PlaylistType</i> The HTTP Live Streaming (HLS) playlist type.
When either "EVENT" or "VOD" is specified, a corresponding EXT-X-PLAYLIST-TYPE
entry will be included in the media playlist.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeIframeOnlyStream</i> When enabled, an I-Frame only stream will be included in the output.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Encryption</i> An HTTP Live Streaming (HLS) encryption configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Encryption</b>: An HTTP Live Streaming (HLS) encryption configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdsOnDeliveryRestrictions</i> This setting allows the delivery restriction flags on SCTE-35 segmentation descriptors to
determine whether a message signals an ad.  Choosing "NONE" means no SCTE-35 messages become
ads.  Choosing "RESTRICTED" means SCTE-35 messages of the types specified in AdTriggers that
contain delivery restrictions will be treated as ads.  Choosing "UNRESTRICTED" means SCTE-35
messages of the types specified in AdTriggers that do not contain delivery restrictions will
be treated as ads.  Choosing "BOTH" means all SCTE-35 messages of the types specified in
AdTriggers will be treated as ads.  Note that Splice Insert messages do not have these flags
and are always treated as ads if specified in AdTriggers.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdTriggers</i> A list of SCTE-35 message types that are treated as ad markers in the output.  If empty, no
ad markers are output.  Specify multiple items to create ad markers for all of the included
message types.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdMarkers</i> This setting controls how ad markers are included in the packaged OriginEndpoint.
"NONE" will omit all SCTE-35 ad markers from the output.
"PASSTHROUGH" causes the manifest to contain a copy of the SCTE-35 ad
markers (comments) taken directly from the input HTTP Live Streaming (HLS) manifest.
"SCTE35_ENHANCED" generates ad markers and blackout tags based on SCTE-35
messages in the input source.
"DATERANGE" inserts EXT-X-DATERANGE tags to signal ad and program transition events 
in HLS and CMAF manifests. For this option, you must set a programDateTimeIntervalSeconds value 
that is greater than 0.
<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RepeatExtXKey</i> When enabled, the EXT-X-KEY tag will be repeated in output manifests.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KeyRotationIntervalSeconds</i> Interval (in seconds) between each encryption key rotation.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EncryptionMethod</i> The encryption method to use.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ConstantInitializationVector</i> A constant initialization vector for encryption (optional).
When not specified the initialization vector will be periodically rotated.
<br/>A configuration for accessing an external Secure Packager and Encoder Key Exchange (SPEKE) service that will provide encryption keys.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SpekeKeyProvider</b>: A configuration for accessing an external Secure Packager and Encoder Key Exchange (SPEKE) service that will provide encryption keys.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamOrder</i> A directive that determines the order of streams in the output.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MinVideoBitsPerSecond</i> The minimum video bitrate (bps) to include in output.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxVideoBitsPerSecond</i> The maximum video bitrate (bps) to include in output.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamSelection</i> A StreamSelection configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StreamSelection</b>: A StreamSelection configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentDurationSeconds</i> The duration (in seconds) of each segment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ManifestWindowSeconds</i> The time window (in seconds) contained in each manifest.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Encryption</i> A Microsoft Smooth Streaming (MSS) encryption configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Encryption</b>: A Microsoft Smooth Streaming (MSS) encryption configuration.<br/>A configuration for accessing an external Secure Packager and Encoder Key Exchange (SPEKE) service that will provide encryption keys.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SpekeKeyProvider</b>: A configuration for accessing an external Secure Packager and Encoder Key Exchange (SPEKE) service that will provide encryption keys.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamOrder</i> A directive that determines the order of streams in the output.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MinVideoBitsPerSecond</i> The minimum video bitrate (bps) to include in output.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxVideoBitsPerSecond</i> The maximum video bitrate (bps) to include in output.<br/>        """
        pass





class MediaPackageVod(BaseClient):
    r"""AWS Elemental MediaPackage VOD"""


    class ListAssetsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_assets` for valid parameters"""
            pass
    class ListPackagingConfigurationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_packaging_configurations` for valid parameters"""
            pass
    class ListPackagingGroupsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_packaging_groups` for valid parameters"""
            pass


    class ConfigureLogsRequest(Mapping):
        pass
    
    class ConfigureLogsResponse(Mapping):
        pass
    
    class EgressAccessLogs(Mapping):
        pass
    
    class CreateAssetRequest(Mapping):
        pass
    
    class CreateAssetResponse(Mapping):
        pass
    
    class Tags(object):
        pass
    
    class CreatePackagingConfigurationRequest(Mapping):
        pass
    
    class CreatePackagingConfigurationResponse(Mapping):
        pass
    
    class CmafPackage(Mapping):
        pass
    
    class DashPackage(Mapping):
        pass
    
    class HlsPackage(Mapping):
        pass
    
    class MssPackage(Mapping):
        pass
    
    class CreatePackagingGroupRequest(Mapping):
        pass
    
    class CreatePackagingGroupResponse(Mapping):
        pass
    
    class Authorization(Mapping):
        pass
    
    class DeleteAssetRequest(Mapping):
        pass
    
    class DeleteAssetResponse(Mapping):
        pass
    
    class DeletePackagingConfigurationRequest(Mapping):
        pass
    
    class DeletePackagingConfigurationResponse(Mapping):
        pass
    
    class DeletePackagingGroupRequest(Mapping):
        pass
    
    class DeletePackagingGroupResponse(Mapping):
        pass
    
    class DescribeAssetRequest(Mapping):
        pass
    
    class DescribeAssetResponse(Mapping):
        pass
    
    class DescribePackagingConfigurationRequest(Mapping):
        pass
    
    class DescribePackagingConfigurationResponse(Mapping):
        pass
    
    class DescribePackagingGroupRequest(Mapping):
        pass
    
    class DescribePackagingGroupResponse(Mapping):
        pass
    
    class ListAssetsRequest(Mapping):
        pass
    
    class ListAssetsResponse(Mapping):
        pass
    
    class ListPackagingConfigurationsRequest(Mapping):
        pass
    
    class ListPackagingConfigurationsResponse(Mapping):
        pass
    
    class ListPackagingGroupsRequest(Mapping):
        pass
    
    class ListPackagingGroupsResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class __mapOf__string(object):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class __string(object):
        pass
    
    class UpdatePackagingGroupRequest(Mapping):
        pass
    
    class UpdatePackagingGroupResponse(Mapping):
        pass
    
    def configure_logs(self, Id: str, EgressAccessLogs: EgressAccessLogs=None) -> ConfigureLogsResponse:
        r"""Changes the packaging group's properities to configure log subscription

        :param self:
        :param Id:  The ID of a MediaPackage VOD PackagingGroup resource.<br/>EgressAccessLogs:  Configure egress access logging.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogGroupName</i> Customize the log group name.<br/>
        :return: Tags:  A collection of tags associated with a resource<br/>Id:  The ID of the PackagingGroup.<br/>EgressAccessLogs:  Configure egress access logging.:<br/>DomainName:  The fully qualified domain name for Assets in the PackagingGroup.<br/>Authorization:  CDN Authorization credentials:<br/>Arn:  The ARN of the PackagingGroup.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsRoleArn</i> The Amazon Resource Name (ARN) for the IAM role that allows MediaPackage to communicate with AWS Secrets Manager.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CdnIdentifierSecret</i> The Amazon Resource Name (ARN) for the secret in AWS Secrets Manager that is used for CDN authorization.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogGroupName</i> Customize the log group name.<br/>        """
        pass

    def create_asset(self, SourceRoleArn: str, SourceArn: str, PackagingGroupId: str, Id: str, ResourceId: str=None, Tags: Tags=None) -> CreateAssetResponse:
        r"""Creates a new MediaPackage VOD Asset resource.

        :param self:
        :param Tags:  A collection of tags associated with a resource<br/>SourceRoleArn:  The IAM role ARN used to access the source S3 bucket.<br/>SourceArn:  ARN of the source object in S3.<br/>ResourceId:  The resource ID to include in SPEKE key requests.<br/>PackagingGroupId:  The ID of the PackagingGroup for the Asset.<br/>Id:  The unique identifier for the Asset.<br/>
        :return: Tags:  A collection of tags associated with a resource<br/>SourceRoleArn:  The IAM role_arn used to access the source S3 bucket.<br/>SourceArn:  ARN of the source object in S3.<br/>ResourceId:  The resource ID to include in SPEKE key requests.<br/>PackagingGroupId:  The ID of the PackagingGroup for the Asset.<br/>Id:  The unique identifier for the Asset.<br/>EgressEndpoints:  The list of egress endpoints available for the Asset.<br/>CreatedAt:  The time the Asset was initially submitted for Ingest.<br/>Arn:  The ARN of the Asset.<br/>        """
        pass

    def create_packaging_configuration(self, PackagingGroupId: str, Id: str, CmafPackage: CmafPackage=None, DashPackage: DashPackage=None, HlsPackage: HlsPackage=None, MssPackage: MssPackage=None, Tags: Tags=None) -> CreatePackagingConfigurationResponse:
        r"""Creates a new MediaPackage VOD PackagingConfiguration resource.

        :param self:
        :param Tags:  A collection of tags associated with a resource<br/>PackagingGroupId:  The ID of a PackagingGroup.<br/>MssPackage:  A Microsoft Smooth Streaming (MSS) PackagingConfiguration.:<br/>Id:  The ID of the PackagingConfiguration.<br/>HlsPackage:  An HTTP Live Streaming (HLS) packaging configuration.:<br/>DashPackage:  A Dynamic Adaptive Streaming over HTTP (DASH) packaging configuration.:<br/>CmafPackage:  A CMAF packaging configuration.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentDurationSeconds</i> Duration (in seconds) of each fragment. Actual fragments will be
rounded to the nearest multiple of the source fragment duration.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeEncoderConfigurationInSegments</i> When includeEncoderConfigurationInSegments is set to true, MediaPackage places your encoder's Sequence Parameter Set (SPS), Picture Parameter Set (PPS), and Video Parameter Set (VPS) metadata in every video segment instead of in the init fragment. This lets you use different SPS/PPS/VPS settings for your assets during content playback.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HlsManifests</i> A list of HLS manifest configurations.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Encryption</i> A CMAF encryption configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Encryption</b>: A CMAF encryption configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ConstantInitializationVector</i> An optional 128-bit, 16-byte hex value represented by a 32-character string, used in conjunction with the key for encrypting blocks. If you don't specify a value, then MediaPackage creates the constant initialization vector (IV).<br/>A configuration for accessing an external Secure Packager and Encoder Key Exchange (SPEKE) service that will provide encryption keys.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SpekeKeyProvider</b>: A configuration for accessing an external Secure Packager and Encoder Key Exchange (SPEKE) service that will provide encryption keys.&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentTemplateFormat</i> Determines the type of SegmentTemplate included in the Media Presentation Description (MPD).  When set to NUMBER_WITH_TIMELINE, a full timeline is presented in each SegmentTemplate, with $Number$ media URLs.  When set to TIME_WITH_TIMELINE, a full timeline is presented in each SegmentTemplate, with $Time$ media URLs. When set to NUMBER_WITH_DURATION, only a duration is included in each SegmentTemplate, with $Number$ media URLs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentDurationSeconds</i> Duration (in seconds) of each segment. Actual segments will be
rounded to the nearest multiple of the source segment duration.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PeriodTriggers</i> A list of triggers that controls when the outgoing Dynamic Adaptive Streaming over HTTP (DASH)
Media Presentation Description (MPD) will be partitioned into multiple periods. If empty, the content will not
be partitioned into more than one period. If the list contains "ADS", new periods will be created where
the Asset contains SCTE-35 ad markers.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeEncoderConfigurationInSegments</i> When includeEncoderConfigurationInSegments is set to true, MediaPackage places your encoder's Sequence Parameter Set (SPS), Picture Parameter Set (PPS), and Video Parameter Set (VPS) metadata in every video segment instead of in the init fragment. This lets you use different SPS/PPS/VPS settings for your assets during content playback.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Encryption</i> A Dynamic Adaptive Streaming over HTTP (DASH) encryption configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Encryption</b>: A Dynamic Adaptive Streaming over HTTP (DASH) encryption configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DashManifests</i> A list of DASH manifest configurations.<br/>A configuration for accessing an external Secure Packager and Encoder Key Exchange (SPEKE) service that will provide encryption keys.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SpekeKeyProvider</b>: A configuration for accessing an external Secure Packager and Encoder Key Exchange (SPEKE) service that will provide encryption keys.&nbsp;&nbsp;&nbsp;&nbsp; <i>UseAudioRenditionGroup</i> When enabled, audio streams will be placed in rendition groups in the output.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentDurationSeconds</i> Duration (in seconds) of each fragment. Actual fragments will be
rounded to the nearest multiple of the source fragment duration.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HlsManifests</i> A list of HLS manifest configurations.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Encryption</i> An HTTP Live Streaming (HLS) encryption configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Encryption</b>: An HTTP Live Streaming (HLS) encryption configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EncryptionMethod</i> The encryption method to use.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ConstantInitializationVector</i> A constant initialization vector for encryption (optional).
When not specified the initialization vector will be periodically rotated.
<br/>A configuration for accessing an external Secure Packager and Encoder Key Exchange (SPEKE) service that will provide encryption keys.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SpekeKeyProvider</b>: A configuration for accessing an external Secure Packager and Encoder Key Exchange (SPEKE) service that will provide encryption keys.&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentDurationSeconds</i> The duration (in seconds) of each segment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MssManifests</i> A list of MSS manifest configurations.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Encryption</i> A Microsoft Smooth Streaming (MSS) encryption configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Encryption</b>: A Microsoft Smooth Streaming (MSS) encryption configuration.<br/>A configuration for accessing an external Secure Packager and Encoder Key Exchange (SPEKE) service that will provide encryption keys.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SpekeKeyProvider</b>: A configuration for accessing an external Secure Packager and Encoder Key Exchange (SPEKE) service that will provide encryption keys.
        :return: Tags:  A collection of tags associated with a resource<br/>PackagingGroupId:  The ID of a PackagingGroup.<br/>MssPackage:  A Microsoft Smooth Streaming (MSS) PackagingConfiguration.:<br/>Id:  The ID of the PackagingConfiguration.<br/>HlsPackage:  An HTTP Live Streaming (HLS) packaging configuration.:<br/>DashPackage:  A Dynamic Adaptive Streaming over HTTP (DASH) packaging configuration.:<br/>CmafPackage:  A CMAF packaging configuration.:<br/>Arn:  The ARN of the PackagingConfiguration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentDurationSeconds</i> Duration (in seconds) of each fragment. Actual fragments will be
rounded to the nearest multiple of the source fragment duration.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeEncoderConfigurationInSegments</i> When includeEncoderConfigurationInSegments is set to true, MediaPackage places your encoder's Sequence Parameter Set (SPS), Picture Parameter Set (PPS), and Video Parameter Set (VPS) metadata in every video segment instead of in the init fragment. This lets you use different SPS/PPS/VPS settings for your assets during content playback.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HlsManifests</i> A list of HLS manifest configurations.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Encryption</i> A CMAF encryption configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Encryption</b>: A CMAF encryption configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ConstantInitializationVector</i> An optional 128-bit, 16-byte hex value represented by a 32-character string, used in conjunction with the key for encrypting blocks. If you don't specify a value, then MediaPackage creates the constant initialization vector (IV).<br/>A configuration for accessing an external Secure Packager and Encoder Key Exchange (SPEKE) service that will provide encryption keys.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SpekeKeyProvider</b>: A configuration for accessing an external Secure Packager and Encoder Key Exchange (SPEKE) service that will provide encryption keys.&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentTemplateFormat</i> Determines the type of SegmentTemplate included in the Media Presentation Description (MPD).  When set to NUMBER_WITH_TIMELINE, a full timeline is presented in each SegmentTemplate, with $Number$ media URLs.  When set to TIME_WITH_TIMELINE, a full timeline is presented in each SegmentTemplate, with $Time$ media URLs. When set to NUMBER_WITH_DURATION, only a duration is included in each SegmentTemplate, with $Number$ media URLs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentDurationSeconds</i> Duration (in seconds) of each segment. Actual segments will be
rounded to the nearest multiple of the source segment duration.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PeriodTriggers</i> A list of triggers that controls when the outgoing Dynamic Adaptive Streaming over HTTP (DASH)
Media Presentation Description (MPD) will be partitioned into multiple periods. If empty, the content will not
be partitioned into more than one period. If the list contains "ADS", new periods will be created where
the Asset contains SCTE-35 ad markers.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeEncoderConfigurationInSegments</i> When includeEncoderConfigurationInSegments is set to true, MediaPackage places your encoder's Sequence Parameter Set (SPS), Picture Parameter Set (PPS), and Video Parameter Set (VPS) metadata in every video segment instead of in the init fragment. This lets you use different SPS/PPS/VPS settings for your assets during content playback.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Encryption</i> A Dynamic Adaptive Streaming over HTTP (DASH) encryption configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Encryption</b>: A Dynamic Adaptive Streaming over HTTP (DASH) encryption configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DashManifests</i> A list of DASH manifest configurations.<br/>A configuration for accessing an external Secure Packager and Encoder Key Exchange (SPEKE) service that will provide encryption keys.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SpekeKeyProvider</b>: A configuration for accessing an external Secure Packager and Encoder Key Exchange (SPEKE) service that will provide encryption keys.&nbsp;&nbsp;&nbsp;&nbsp; <i>UseAudioRenditionGroup</i> When enabled, audio streams will be placed in rendition groups in the output.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentDurationSeconds</i> Duration (in seconds) of each fragment. Actual fragments will be
rounded to the nearest multiple of the source fragment duration.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HlsManifests</i> A list of HLS manifest configurations.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Encryption</i> An HTTP Live Streaming (HLS) encryption configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Encryption</b>: An HTTP Live Streaming (HLS) encryption configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EncryptionMethod</i> The encryption method to use.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ConstantInitializationVector</i> A constant initialization vector for encryption (optional).
When not specified the initialization vector will be periodically rotated.
<br/>A configuration for accessing an external Secure Packager and Encoder Key Exchange (SPEKE) service that will provide encryption keys.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SpekeKeyProvider</b>: A configuration for accessing an external Secure Packager and Encoder Key Exchange (SPEKE) service that will provide encryption keys.&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentDurationSeconds</i> The duration (in seconds) of each segment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MssManifests</i> A list of MSS manifest configurations.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Encryption</i> A Microsoft Smooth Streaming (MSS) encryption configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Encryption</b>: A Microsoft Smooth Streaming (MSS) encryption configuration.<br/>A configuration for accessing an external Secure Packager and Encoder Key Exchange (SPEKE) service that will provide encryption keys.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SpekeKeyProvider</b>: A configuration for accessing an external Secure Packager and Encoder Key Exchange (SPEKE) service that will provide encryption keys.        """
        pass

    def create_packaging_group(self, Id: str, Authorization: Authorization=None, EgressAccessLogs: EgressAccessLogs=None, Tags: Tags=None) -> CreatePackagingGroupResponse:
        r"""Creates a new MediaPackage VOD PackagingGroup resource.

        :param self:
        :param Tags:  A collection of tags associated with a resource<br/>Id:  The ID of the PackagingGroup.<br/>EgressAccessLogs:  Configure egress access logging.:<br/>Authorization:  CDN Authorization credentials:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsRoleArn</i> The Amazon Resource Name (ARN) for the IAM role that allows MediaPackage to communicate with AWS Secrets Manager.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CdnIdentifierSecret</i> The Amazon Resource Name (ARN) for the secret in AWS Secrets Manager that is used for CDN authorization.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogGroupName</i> Customize the log group name.<br/>
        :return: Tags:  A collection of tags associated with a resource<br/>Id:  The ID of the PackagingGroup.<br/>EgressAccessLogs:  Configure egress access logging.:<br/>DomainName:  The fully qualified domain name for Assets in the PackagingGroup.<br/>Authorization:  CDN Authorization credentials:<br/>Arn:  The ARN of the PackagingGroup.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsRoleArn</i> The Amazon Resource Name (ARN) for the IAM role that allows MediaPackage to communicate with AWS Secrets Manager.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CdnIdentifierSecret</i> The Amazon Resource Name (ARN) for the secret in AWS Secrets Manager that is used for CDN authorization.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogGroupName</i> Customize the log group name.<br/>        """
        pass

    def delete_asset(self, Id: str) -> DeleteAssetResponse:
        r"""Deletes an existing MediaPackage VOD Asset resource.

        :param self:
        :param Id:  The ID of the MediaPackage VOD Asset resource to delete.<br/>
        :return:         """
        pass

    def delete_packaging_configuration(self, Id: str) -> DeletePackagingConfigurationResponse:
        r"""Deletes a MediaPackage VOD PackagingConfiguration resource.

        :param self:
        :param Id:  The ID of the MediaPackage VOD PackagingConfiguration resource to delete.<br/>
        :return:         """
        pass

    def delete_packaging_group(self, Id: str) -> DeletePackagingGroupResponse:
        r"""Deletes a MediaPackage VOD PackagingGroup resource.

        :param self:
        :param Id:  The ID of the MediaPackage VOD PackagingGroup resource to delete.<br/>
        :return:         """
        pass

    def describe_asset(self, Id: str) -> DescribeAssetResponse:
        r"""Returns a description of a MediaPackage VOD Asset resource.

        :param self:
        :param Id:  The ID of an MediaPackage VOD Asset resource.<br/>
        :return: Tags:  A collection of tags associated with a resource<br/>SourceRoleArn:  The IAM role_arn used to access the source S3 bucket.<br/>SourceArn:  ARN of the source object in S3.<br/>ResourceId:  The resource ID to include in SPEKE key requests.<br/>PackagingGroupId:  The ID of the PackagingGroup for the Asset.<br/>Id:  The unique identifier for the Asset.<br/>EgressEndpoints:  The list of egress endpoints available for the Asset.<br/>CreatedAt:  The time the Asset was initially submitted for Ingest.<br/>Arn:  The ARN of the Asset.<br/>        """
        pass

    def describe_packaging_configuration(self, Id: str) -> DescribePackagingConfigurationResponse:
        r"""Returns a description of a MediaPackage VOD PackagingConfiguration resource.

        :param self:
        :param Id:  The ID of a MediaPackage VOD PackagingConfiguration resource.<br/>
        :return: Tags:  A collection of tags associated with a resource<br/>PackagingGroupId:  The ID of a PackagingGroup.<br/>MssPackage:  A Microsoft Smooth Streaming (MSS) PackagingConfiguration.:<br/>Id:  The ID of the PackagingConfiguration.<br/>HlsPackage:  An HTTP Live Streaming (HLS) packaging configuration.:<br/>DashPackage:  A Dynamic Adaptive Streaming over HTTP (DASH) packaging configuration.:<br/>CmafPackage:  A CMAF packaging configuration.:<br/>Arn:  The ARN of the PackagingConfiguration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentDurationSeconds</i> Duration (in seconds) of each fragment. Actual fragments will be
rounded to the nearest multiple of the source fragment duration.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeEncoderConfigurationInSegments</i> When includeEncoderConfigurationInSegments is set to true, MediaPackage places your encoder's Sequence Parameter Set (SPS), Picture Parameter Set (PPS), and Video Parameter Set (VPS) metadata in every video segment instead of in the init fragment. This lets you use different SPS/PPS/VPS settings for your assets during content playback.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HlsManifests</i> A list of HLS manifest configurations.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Encryption</i> A CMAF encryption configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Encryption</b>: A CMAF encryption configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ConstantInitializationVector</i> An optional 128-bit, 16-byte hex value represented by a 32-character string, used in conjunction with the key for encrypting blocks. If you don't specify a value, then MediaPackage creates the constant initialization vector (IV).<br/>A configuration for accessing an external Secure Packager and Encoder Key Exchange (SPEKE) service that will provide encryption keys.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SpekeKeyProvider</b>: A configuration for accessing an external Secure Packager and Encoder Key Exchange (SPEKE) service that will provide encryption keys.&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentTemplateFormat</i> Determines the type of SegmentTemplate included in the Media Presentation Description (MPD).  When set to NUMBER_WITH_TIMELINE, a full timeline is presented in each SegmentTemplate, with $Number$ media URLs.  When set to TIME_WITH_TIMELINE, a full timeline is presented in each SegmentTemplate, with $Time$ media URLs. When set to NUMBER_WITH_DURATION, only a duration is included in each SegmentTemplate, with $Number$ media URLs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentDurationSeconds</i> Duration (in seconds) of each segment. Actual segments will be
rounded to the nearest multiple of the source segment duration.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PeriodTriggers</i> A list of triggers that controls when the outgoing Dynamic Adaptive Streaming over HTTP (DASH)
Media Presentation Description (MPD) will be partitioned into multiple periods. If empty, the content will not
be partitioned into more than one period. If the list contains "ADS", new periods will be created where
the Asset contains SCTE-35 ad markers.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeEncoderConfigurationInSegments</i> When includeEncoderConfigurationInSegments is set to true, MediaPackage places your encoder's Sequence Parameter Set (SPS), Picture Parameter Set (PPS), and Video Parameter Set (VPS) metadata in every video segment instead of in the init fragment. This lets you use different SPS/PPS/VPS settings for your assets during content playback.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Encryption</i> A Dynamic Adaptive Streaming over HTTP (DASH) encryption configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Encryption</b>: A Dynamic Adaptive Streaming over HTTP (DASH) encryption configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DashManifests</i> A list of DASH manifest configurations.<br/>A configuration for accessing an external Secure Packager and Encoder Key Exchange (SPEKE) service that will provide encryption keys.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SpekeKeyProvider</b>: A configuration for accessing an external Secure Packager and Encoder Key Exchange (SPEKE) service that will provide encryption keys.&nbsp;&nbsp;&nbsp;&nbsp; <i>UseAudioRenditionGroup</i> When enabled, audio streams will be placed in rendition groups in the output.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentDurationSeconds</i> Duration (in seconds) of each fragment. Actual fragments will be
rounded to the nearest multiple of the source fragment duration.
<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HlsManifests</i> A list of HLS manifest configurations.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Encryption</i> An HTTP Live Streaming (HLS) encryption configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Encryption</b>: An HTTP Live Streaming (HLS) encryption configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EncryptionMethod</i> The encryption method to use.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ConstantInitializationVector</i> A constant initialization vector for encryption (optional).
When not specified the initialization vector will be periodically rotated.
<br/>A configuration for accessing an external Secure Packager and Encoder Key Exchange (SPEKE) service that will provide encryption keys.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SpekeKeyProvider</b>: A configuration for accessing an external Secure Packager and Encoder Key Exchange (SPEKE) service that will provide encryption keys.&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentDurationSeconds</i> The duration (in seconds) of each segment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MssManifests</i> A list of MSS manifest configurations.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Encryption</i> A Microsoft Smooth Streaming (MSS) encryption configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Encryption</b>: A Microsoft Smooth Streaming (MSS) encryption configuration.<br/>A configuration for accessing an external Secure Packager and Encoder Key Exchange (SPEKE) service that will provide encryption keys.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SpekeKeyProvider</b>: A configuration for accessing an external Secure Packager and Encoder Key Exchange (SPEKE) service that will provide encryption keys.        """
        pass

    def describe_packaging_group(self, Id: str) -> DescribePackagingGroupResponse:
        r"""Returns a description of a MediaPackage VOD PackagingGroup resource.

        :param self:
        :param Id:  The ID of a MediaPackage VOD PackagingGroup resource.<br/>
        :return: Tags:  A collection of tags associated with a resource<br/>Id:  The ID of the PackagingGroup.<br/>EgressAccessLogs:  Configure egress access logging.:<br/>DomainName:  The fully qualified domain name for Assets in the PackagingGroup.<br/>Authorization:  CDN Authorization credentials:<br/>Arn:  The ARN of the PackagingGroup.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsRoleArn</i> The Amazon Resource Name (ARN) for the IAM role that allows MediaPackage to communicate with AWS Secrets Manager.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CdnIdentifierSecret</i> The Amazon Resource Name (ARN) for the secret in AWS Secrets Manager that is used for CDN authorization.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogGroupName</i> Customize the log group name.<br/>        """
        pass

    def list_assets(self, MaxResults: int=None, NextToken: str=None, PackagingGroupId: str=None) -> ListAssetsResponse:
        r"""Returns a collection of MediaPackage VOD Asset resources.

        :param self:
        :param PackagingGroupId:  Returns Assets associated with the specified PackagingGroup.<br/>NextToken:  A token used to resume pagination from the end of a previous request.<br/>MaxResults:  Upper bound on number of records to return.<br/>
        :return: NextToken:  A token that can be used to resume pagination from the end of the collection.<br/>Assets:  A list of MediaPackage VOD Asset resources.<br/>        """
        pass

    def list_packaging_configurations(self, MaxResults: int=None, NextToken: str=None, PackagingGroupId: str=None) -> ListPackagingConfigurationsResponse:
        r"""Returns a collection of MediaPackage VOD PackagingConfiguration resources.

        :param self:
        :param PackagingGroupId:  Returns MediaPackage VOD PackagingConfigurations associated with the specified PackagingGroup.<br/>NextToken:  A token used to resume pagination from the end of a previous request.<br/>MaxResults:  Upper bound on number of records to return.<br/>
        :return: PackagingConfigurations:  A list of MediaPackage VOD PackagingConfiguration resources.<br/>NextToken:  A token that can be used to resume pagination from the end of the collection.<br/>        """
        pass

    def list_packaging_groups(self, MaxResults: int=None, NextToken: str=None) -> ListPackagingGroupsResponse:
        r"""Returns a collection of MediaPackage VOD PackagingGroup resources.

        :param self:
        :param NextToken:  A token used to resume pagination from the end of a previous request.<br/>MaxResults:  Upper bound on number of records to return.<br/>
        :return: PackagingGroups:  A list of MediaPackage VOD PackagingGroup resources.<br/>NextToken:  A token that can be used to resume pagination from the end of the collection.<br/>        """
        pass

    def list_tags_for_resource(self, ResourceArn: str) -> ListTagsForResourceResponse:
        r"""Returns a list of the tags assigned to the specified resource.

        :param self:
        :param ResourceArn:  The Amazon Resource Name (ARN) for the resource. You can get this from the response to any request to the resource.<br/>
        :return: Tags:  A collection of tags associated with a resource<br/>        """
        pass

    def tag_resource(self, Tags: __mapOf__string, ResourceArn: str):
        r"""Adds tags to the specified resource. You can specify one or more tags to add.

        :param self:
        :param Tags:  A collection of tags associated with a resource<br/>ResourceArn:  The Amazon Resource Name (ARN) for the resource. You can get this from the response to any request to the resource.<br/>
        :return:         """
        pass

    def untag_resource(self, TagKeys: List[__string], ResourceArn: str):
        r"""Removes tags from the specified resource. You can specify one or more tags to remove.

        :param self:
        :param TagKeys:  A comma-separated list of the tag keys to remove from the resource.<br/>ResourceArn:  The Amazon Resource Name (ARN) for the resource. You can get this from the response to any request to the resource.<br/>
        :return:         """
        pass

    def update_packaging_group(self, Id: str, Authorization: Authorization=None) -> UpdatePackagingGroupResponse:
        r"""Updates a specific packaging group. You can't change the id attribute or any other system-generated attributes.

        :param self:
        :param Id:  The ID of a MediaPackage VOD PackagingGroup resource.<br/>Authorization:  CDN Authorization credentials:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsRoleArn</i> The Amazon Resource Name (ARN) for the IAM role that allows MediaPackage to communicate with AWS Secrets Manager.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CdnIdentifierSecret</i> The Amazon Resource Name (ARN) for the secret in AWS Secrets Manager that is used for CDN authorization.<br/>
        :return: Tags:  A collection of tags associated with a resource<br/>Id:  The ID of the PackagingGroup.<br/>EgressAccessLogs:  Configure egress access logging.:<br/>DomainName:  The fully qualified domain name for Assets in the PackagingGroup.<br/>Authorization:  CDN Authorization credentials:<br/>Arn:  The ARN of the PackagingGroup.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsRoleArn</i> The Amazon Resource Name (ARN) for the IAM role that allows MediaPackage to communicate with AWS Secrets Manager.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CdnIdentifierSecret</i> The Amazon Resource Name (ARN) for the secret in AWS Secrets Manager that is used for CDN authorization.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogGroupName</i> Customize the log group name.<br/>        """
        pass





class MediaStore(BaseClient):
    r"""An AWS Elemental MediaStore container is a namespace that holds folders and objects. You use a container endpoint to create, read, and delete objects. """


    class ListContainersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_containers` for valid parameters"""
            pass


    class CreateContainerInput(Mapping):
        pass
    
    class CreateContainerOutput(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class DeleteContainerInput(Mapping):
        pass
    
    class DeleteContainerOutput(Mapping):
        pass
    
    class DeleteContainerPolicyInput(Mapping):
        pass
    
    class DeleteContainerPolicyOutput(Mapping):
        pass
    
    class DeleteCorsPolicyInput(Mapping):
        pass
    
    class DeleteCorsPolicyOutput(Mapping):
        pass
    
    class DeleteLifecyclePolicyInput(Mapping):
        pass
    
    class DeleteLifecyclePolicyOutput(Mapping):
        pass
    
    class DeleteMetricPolicyInput(Mapping):
        pass
    
    class DeleteMetricPolicyOutput(Mapping):
        pass
    
    class DescribeContainerInput(Mapping):
        pass
    
    class DescribeContainerOutput(Mapping):
        pass
    
    class GetContainerPolicyInput(Mapping):
        pass
    
    class GetContainerPolicyOutput(Mapping):
        pass
    
    class GetCorsPolicyInput(Mapping):
        pass
    
    class GetCorsPolicyOutput(Mapping):
        pass
    
    class GetLifecyclePolicyInput(Mapping):
        pass
    
    class GetLifecyclePolicyOutput(Mapping):
        pass
    
    class GetMetricPolicyInput(Mapping):
        pass
    
    class GetMetricPolicyOutput(Mapping):
        pass
    
    class ListContainersInput(Mapping):
        pass
    
    class ListContainersOutput(Mapping):
        pass
    
    class ListTagsForResourceInput(Mapping):
        pass
    
    class ListTagsForResourceOutput(Mapping):
        pass
    
    class PutContainerPolicyInput(Mapping):
        pass
    
    class PutContainerPolicyOutput(Mapping):
        pass
    
    class PutCorsPolicyInput(Mapping):
        pass
    
    class PutCorsPolicyOutput(Mapping):
        pass
    
    class CorsRule(Mapping):
        pass
    
    class PutLifecyclePolicyInput(Mapping):
        pass
    
    class PutLifecyclePolicyOutput(Mapping):
        pass
    
    class PutMetricPolicyInput(Mapping):
        pass
    
    class PutMetricPolicyOutput(Mapping):
        pass
    
    class MetricPolicy(Mapping):
        pass
    
    class StartAccessLoggingInput(Mapping):
        pass
    
    class StartAccessLoggingOutput(Mapping):
        pass
    
    class StopAccessLoggingInput(Mapping):
        pass
    
    class StopAccessLoggingOutput(Mapping):
        pass
    
    class TagResourceInput(Mapping):
        pass
    
    class TagResourceOutput(Mapping):
        pass
    
    class UntagResourceInput(Mapping):
        pass
    
    class UntagResourceOutput(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    def create_container(self, ContainerName: str, Tags: List[Tag]=None) -> CreateContainerOutput:
        r"""Creates a storage container to hold objects. A container is similar to a bucket in the Amazon S3 service.

        :param self:
        :param Tags:  An array of key:value pairs that you define. These values can be anything that you want. Typically, the tag key represents a category (such as "environment") and the tag value represents a specific value within that category (such as "test," "development," or "production"). You can add up to 50 tags to each container. For more information about tagging, including naming and usage conventions, see <a href="https://docs.aws.amazon.com/mediastore/latest/ug/tagging.html">Tagging Resources in MediaStore</a>.<br/>ContainerName:  The name for the container. The name must be from 1 to 255 characters. Container names must be unique to your AWS account within a specific region. As an example, you could create a container named <code>movies</code> in every region, as long as you don’t have an existing container with that name.<br/>
        :return: Container:  ContainerARN: The Amazon Resource Name (ARN) of the newly created container. The ARN has the following format: arn:aws:&lt;region&gt;:&lt;account that owns this container&gt;:container/&lt;name of container&gt;. For example: arn:aws:mediastore:us-west-2:111122223333:container/movies  ContainerName: The container name as specified in the request. CreationTime: Unix time stamp. Status: The status of container creation or deletion. The status is one of the following: <code>CREATING</code>, <code>ACTIVE</code>, or <code>DELETING</code>. While the service is creating the container, the status is <code>CREATING</code>. When an endpoint is available, the status changes to <code>ACTIVE</code>. The return value does not include the container's endpoint. To make downstream requests, you must obtain this value by using <a>DescribeContainer</a> or <a>ListContainers</a>.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccessLoggingEnabled</i> The state of access logging on the container. This value is <code>false</code> by default, indicating that AWS Elemental MediaStore does not send access logs to Amazon CloudWatch Logs. When you enable access logging on the container, MediaStore changes this value to <code>true</code>, indicating that the service delivers access logs for objects stored in that container to CloudWatch Logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of container creation or deletion. The status is one of the following: <code>CREATING</code>, <code>ACTIVE</code>, or <code>DELETING</code>. While the service is creating the container, the status is <code>CREATING</code>. When the endpoint is available, the status changes to <code>ACTIVE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the container.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ARN</i> The Amazon Resource Name (ARN) of the container. The ARN has the following format: arn:aws:&lt;region&gt;:&lt;account that owns this container&gt;:container/&lt;name of container&gt;  For example: arn:aws:mediastore:us-west-2:111122223333:container/movies <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> Unix timestamp.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i> The DNS endpoint of the container. Use the endpoint to identify the specific container when sending requests to the data plane. The service assigns this value when the container is created. Once the value has been assigned, it does not change.<br/>        """
        pass

    def delete_container(self, ContainerName: str) -> DeleteContainerOutput:
        r"""Deletes the specified container. Before you make a <code>DeleteContainer</code> request, delete any objects in the container or in any folders in the container. You can delete only empty containers. 

        :param self:
        :param ContainerName:  The name of the container to delete. <br/>
        :return:         """
        pass

    def delete_container_policy(self, ContainerName: str) -> DeleteContainerPolicyOutput:
        r"""Deletes the access policy that is associated with the specified container.

        :param self:
        :param ContainerName:  The name of the container that holds the policy.<br/>
        :return:         """
        pass

    def delete_cors_policy(self, ContainerName: str) -> DeleteCorsPolicyOutput:
        r"""Deletes the cross-origin resource sharing (CORS) configuration information that is set for the container. To use this operation, you must have permission to perform the <code>MediaStore:DeleteCorsPolicy</code> action. The container owner has this permission by default and can grant this permission to others.

        :param self:
        :param ContainerName:  The name of the container to remove the policy from.<br/>
        :return:         """
        pass

    def delete_lifecycle_policy(self, ContainerName: str) -> DeleteLifecyclePolicyOutput:
        r"""Removes an object lifecycle policy from a container. It takes up to 20 minutes for the change to take effect.

        :param self:
        :param ContainerName:  The name of the container that holds the object lifecycle policy.<br/>
        :return:         """
        pass

    def delete_metric_policy(self, ContainerName: str) -> DeleteMetricPolicyOutput:
        r"""Deletes the metric policy that is associated with the specified container. If there is no metric policy associated with the container, MediaStore doesn't send metrics to CloudWatch.

        :param self:
        :param ContainerName:  The name of the container that is associated with the metric policy that you want to delete.<br/>
        :return:         """
        pass

    def describe_container(self, ContainerName: str=None) -> DescribeContainerOutput:
        r"""Retrieves the properties of the requested container. This request is commonly used to retrieve the endpoint of a container. An endpoint is a value assigned by the service when a new container is created. A container's endpoint does not change after it has been assigned. The <code>DescribeContainer</code> request returns a single <code>Container</code> object based on <code>ContainerName</code>. To return all <code>Container</code> objects that are associated with a specified AWS account, use <a>ListContainers</a>.

        :param self:
        :param ContainerName:  The name of the container to query.<br/>
        :return: Container:  The name of the queried container.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccessLoggingEnabled</i> The state of access logging on the container. This value is <code>false</code> by default, indicating that AWS Elemental MediaStore does not send access logs to Amazon CloudWatch Logs. When you enable access logging on the container, MediaStore changes this value to <code>true</code>, indicating that the service delivers access logs for objects stored in that container to CloudWatch Logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of container creation or deletion. The status is one of the following: <code>CREATING</code>, <code>ACTIVE</code>, or <code>DELETING</code>. While the service is creating the container, the status is <code>CREATING</code>. When the endpoint is available, the status changes to <code>ACTIVE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the container.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ARN</i> The Amazon Resource Name (ARN) of the container. The ARN has the following format: arn:aws:&lt;region&gt;:&lt;account that owns this container&gt;:container/&lt;name of container&gt;  For example: arn:aws:mediastore:us-west-2:111122223333:container/movies <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> Unix timestamp.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i> The DNS endpoint of the container. Use the endpoint to identify the specific container when sending requests to the data plane. The service assigns this value when the container is created. Once the value has been assigned, it does not change.<br/>        """
        pass

    def get_container_policy(self, ContainerName: str) -> GetContainerPolicyOutput:
        r"""Retrieves the access policy for the specified container. For information about the data that is included in an access policy, see the <a href="https://aws.amazon.com/documentation/iam/">AWS Identity and Access Management User Guide</a>.

        :param self:
        :param ContainerName:  The name of the container. <br/>
        :return: Policy:  The contents of the access policy.<br/>        """
        pass

    def get_cors_policy(self, ContainerName: str) -> GetCorsPolicyOutput:
        r"""Returns the cross-origin resource sharing (CORS) configuration information that is set for the container. To use this operation, you must have permission to perform the <code>MediaStore:GetCorsPolicy</code> action. By default, the container owner has this permission and can grant it to others.

        :param self:
        :param ContainerName:  The name of the container that the policy is assigned to.<br/>
        :return: CorsPolicy:  The CORS policy assigned to the container.<br/>        """
        pass

    def get_lifecycle_policy(self, ContainerName: str) -> GetLifecyclePolicyOutput:
        r"""Retrieves the object lifecycle policy that is assigned to a container.

        :param self:
        :param ContainerName:  The name of the container that the object lifecycle policy is assigned to.<br/>
        :return: LifecyclePolicy:  The object lifecycle policy that is assigned to the container.<br/>        """
        pass

    def get_metric_policy(self, ContainerName: str) -> GetMetricPolicyOutput:
        r"""Returns the metric policy for the specified container. 

        :param self:
        :param ContainerName:  The name of the container that is associated with the metric policy.<br/>
        :return: MetricPolicy:  The metric policy that is associated with the specific container.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MetricPolicyRules</i> A parameter that holds an array of rules that enable metrics at the object level. This parameter is optional, but if you choose to include it, you must also include at least one rule. By default, you can include up to five rules. You can also <a href="https://console.aws.amazon.com/servicequotas/home?region=us-east-1#!/services/mediastore/quotas">request a quota increase</a> to allow up to 300 rules per policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ContainerLevelMetrics</i> A setting to enable or disable metrics at the container level.<br/>        """
        pass

    def list_containers(self, NextToken: str=None, MaxResults: int=None) -> ListContainersOutput:
        r"""Lists the properties of all containers in AWS Elemental MediaStore.  You can query to receive all the containers in one response. Or you can include the <code>MaxResults</code> parameter to receive a limited number of containers in each response. In this case, the response includes a token. To get the next set of containers, send the command again, this time with the <code>NextToken</code> parameter (with the returned token as its value). The next set of responses appears, with a token if there are still more containers to receive.  See also <a>DescribeContainer</a>, which gets the properties of one container. 

        :param self:
        :param MaxResults:  Enter the maximum number of containers in the response. Use from 1 to 255 characters. <br/>NextToken:  Only if you used <code>MaxResults</code> in the first command, enter the token (which was included in the previous response) to obtain the next set of containers. This token is included in a response only if there actually are more containers to list.<br/>
        :return: NextToken:   <code>NextToken</code> is the token to use in the next call to <code>ListContainers</code>. This token is returned only if you included the <code>MaxResults</code> tag in the original command, and only if there are still containers to return. <br/>Containers:  The names of the containers.<br/>        """
        pass

    def list_tags_for_resource(self, Resource: str) -> ListTagsForResourceOutput:
        r"""Returns a list of the tags assigned to the specified container. 

        :param self:
        :param Resource:  The Amazon Resource Name (ARN) for the container.<br/>
        :return: Tags:  An array of key:value pairs that are assigned to the container.<br/>        """
        pass

    def put_container_policy(self, Policy: str, ContainerName: str) -> PutContainerPolicyOutput:
        r"""Creates an access policy for the specified container to restrict the users and clients that can access it. For information about the data that is included in an access policy, see the <a href="https://aws.amazon.com/documentation/iam/">AWS Identity and Access Management User Guide</a>. For this release of the REST API, you can create only one policy for a container. If you enter <code>PutContainerPolicy</code> twice, the second command modifies the existing policy. 

        :param self:
        :param Policy:  The contents of the policy, which includes the following:  <ul> <li> One <code>Version</code> tag </li> <li> One <code>Statement</code> tag that contains the standard tags for the policy. </li> </ul><br/>ContainerName:  The name of the container.<br/>
        :return:         """
        pass

    def put_cors_policy(self, CorsPolicy: List[CorsRule], ContainerName: str) -> PutCorsPolicyOutput:
        r"""Sets the cross-origin resource sharing (CORS) configuration on a container so that the container can service cross-origin requests. For example, you might want to enable a request whose origin is http://www.example.com to access your AWS Elemental MediaStore container at my.example.container.com by using the browser's XMLHttpRequest capability. To enable CORS on a container, you attach a CORS policy to the container. In the CORS policy, you configure rules that identify origins and the HTTP methods that can be executed on your container. The policy can contain up to 398,000 characters. You can add up to 100 rules to a CORS policy. If more than one rule applies, the service uses the first applicable rule listed. To learn more about CORS, see <a href="https://docs.aws.amazon.com/mediastore/latest/ug/cors-policy.html">Cross-Origin Resource Sharing (CORS) in AWS Elemental MediaStore</a>.

        :param self:
        :param CorsPolicy:  The CORS policy to apply to the container. <br/>ContainerName:  The name of the container that you want to assign the CORS policy to.<br/>
        :return:         """
        pass

    def put_lifecycle_policy(self, LifecyclePolicy: str, ContainerName: str) -> PutLifecyclePolicyOutput:
        r"""Writes an object lifecycle policy to a container. If the container already has an object lifecycle policy, the service replaces the existing policy with the new policy. It takes up to 20 minutes for the change to take effect. For information about how to construct an object lifecycle policy, see <a href="https://docs.aws.amazon.com/mediastore/latest/ug/policies-object-lifecycle-components.html">Components of an Object Lifecycle Policy</a>.

        :param self:
        :param LifecyclePolicy:  The object lifecycle policy to apply to the container.<br/>ContainerName:  The name of the container that you want to assign the object lifecycle policy to.<br/>
        :return:         """
        pass

    def put_metric_policy(self, MetricPolicy: MetricPolicy, ContainerName: str) -> PutMetricPolicyOutput:
        r"""The metric policy that you want to add to the container. A metric policy allows AWS Elemental MediaStore to send metrics to Amazon CloudWatch. It takes up to 20 minutes for the new policy to take effect.

        :param self:
        :param MetricPolicy:  The metric policy that you want to associate with the container. In the policy, you must indicate whether you want MediaStore to send container-level metrics. You can also include up to five rules to define groups of objects that you want MediaStore to send object-level metrics for. If you include rules in the policy, construct each rule with both of the following: <ul> <li> An object group that defines which objects to include in the group. The definition can be a path or a file name, but it can't have more than 900 characters. Valid characters are: a-z, A-Z, 0-9, _ (underscore), = (equal), : (colon), . (period), - (hyphen), ~ (tilde), / (forward slash), and * (asterisk). Wildcards (*) are acceptable. </li> <li> An object group name that allows you to refer to the object group. The name can't have more than 30 characters. Valid characters are: a-z, A-Z, 0-9, and _ (underscore). </li> </ul>:<br/>ContainerName:  The name of the container that you want to add the metric policy to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MetricPolicyRules</i> A parameter that holds an array of rules that enable metrics at the object level. This parameter is optional, but if you choose to include it, you must also include at least one rule. By default, you can include up to five rules. You can also <a href="https://console.aws.amazon.com/servicequotas/home?region=us-east-1#!/services/mediastore/quotas">request a quota increase</a> to allow up to 300 rules per policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ContainerLevelMetrics</i> A setting to enable or disable metrics at the container level.<br/>
        :return:         """
        pass

    def start_access_logging(self, ContainerName: str) -> StartAccessLoggingOutput:
        r"""Starts access logging on the specified container. When you enable access logging on a container, MediaStore delivers access logs for objects stored in that container to Amazon CloudWatch Logs.

        :param self:
        :param ContainerName:  The name of the container that you want to start access logging on.<br/>
        :return:         """
        pass

    def stop_access_logging(self, ContainerName: str) -> StopAccessLoggingOutput:
        r"""Stops access logging on the specified container. When you stop access logging on a container, MediaStore stops sending access logs to Amazon CloudWatch Logs. These access logs are not saved and are not retrievable.

        :param self:
        :param ContainerName:  The name of the container that you want to stop access logging on.<br/>
        :return:         """
        pass

    def tag_resource(self, Tags: List[Tag], Resource: str) -> TagResourceOutput:
        r"""Adds tags to the specified AWS Elemental MediaStore container. Tags are key:value pairs that you can associate with AWS resources. For example, the tag key might be "customer" and the tag value might be "companyA." You can specify one or more tags to add to each container. You can add up to 50 tags to each container. For more information about tagging, including naming and usage conventions, see <a href="https://docs.aws.amazon.com/mediastore/latest/ug/tagging.html">Tagging Resources in MediaStore</a>.

        :param self:
        :param Tags:  An array of key:value pairs that you want to add to the container. You need to specify only the tags that you want to add or update. For example, suppose a container already has two tags (customer:CompanyA and priority:High). You want to change the priority tag and also add a third tag (type:Contract). For TagResource, you specify the following tags: priority:Medium, type:Contract. The result is that your container has three tags: customer:CompanyA, priority:Medium, and type:Contract.<br/>Resource:  The Amazon Resource Name (ARN) for the container. <br/>
        :return:         """
        pass

    def untag_resource(self, TagKeys: List[TagKey], Resource: str) -> UntagResourceOutput:
        r"""Removes tags from the specified container. You can specify one or more tags to remove. 

        :param self:
        :param TagKeys:  A comma-separated list of keys for tags that you want to remove from the container. For example, if your container has two tags (customer:CompanyA and priority:High) and you want to remove one of the tags (priority:High), you specify the key for the tag that you want to remove (priority).<br/>Resource:  The Amazon Resource Name (ARN) for the container.<br/>
        :return:         """
        pass





class MediaStoreData(BaseClient):
    r"""An AWS Elemental MediaStore asset is an object, similar to an object in the Amazon S3 service. Objects are the fundamental entities that are stored in AWS Elemental MediaStore."""


    class ListItemsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_items` for valid parameters"""
            pass


    class DeleteObjectRequest(Mapping):
        pass
    
    class DeleteObjectResponse(Mapping):
        pass
    
    class DescribeObjectRequest(Mapping):
        pass
    
    class DescribeObjectResponse(Mapping):
        pass
    
    class GetObjectRequest(Mapping):
        pass
    
    class GetObjectResponse(Mapping):
        pass
    
    class ListItemsRequest(Mapping):
        pass
    
    class ListItemsResponse(Mapping):
        pass
    
    class PutObjectRequest(Mapping):
        pass
    
    class PutObjectResponse(Mapping):
        pass
    
    class PayloadBlob(object):
        pass
    
    def delete_object(self, Path: str) -> DeleteObjectResponse:
        r"""Deletes an object at the specified path.

        :param self:
        :param Path:  The path (including the file name) where the object is stored in the container. Format: &lt;folder name&gt;/&lt;folder name&gt;/&lt;file name&gt;<br/>
        :return:         """
        pass

    def describe_object(self, Path: str) -> DescribeObjectResponse:
        r"""Gets the headers for an object at the specified path.

        :param self:
        :param Path:  The path (including the file name) where the object is stored in the container. Format: &lt;folder name&gt;/&lt;folder name&gt;/&lt;file name&gt;<br/>
        :return: LastModified:  The date and time that the object was last modified.<br/>CacheControl:  An optional <code>CacheControl</code> header that allows the caller to control the object's cache behavior. Headers can be passed in as specified in the HTTP at <a href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9">https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9</a>. Headers with a custom user-defined value are also accepted.<br/>ContentLength:  The length of the object in bytes.<br/>ContentType:  The content type of the object.<br/>ETag:  The ETag that represents a unique instance of the object.<br/>        """
        pass

    def get_object(self, Path: str, Range: str=None) -> GetObjectResponse:
        r"""Downloads the object at the specified path. If the object’s upload availability is set to <code>streaming</code>, AWS Elemental MediaStore downloads the object even if it’s still uploading the object.

        :param self:
        :param Range:  The range bytes of an object to retrieve. For more information about the <code>Range</code> header, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35">http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35</a>. AWS Elemental MediaStore ignores this header for partially uploaded objects that have streaming upload availability.<br/>Path:  The path (including the file name) where the object is stored in the container. Format: &lt;folder name&gt;/&lt;folder name&gt;/&lt;file name&gt; For example, to upload the file <code>mlaw.avi</code> to the folder path <code>premium\canada</code> in the container <code>movies</code>, enter the path <code>premium/canada/mlaw.avi</code>. Do not include the container name in this path. If the path includes any folders that don't exist yet, the service creates them. For example, suppose you have an existing <code>premium/usa</code> subfolder. If you specify <code>premium/canada</code>, the service creates a <code>canada</code> subfolder in the <code>premium</code> folder. You then have two subfolders, <code>usa</code> and <code>canada</code>, in the <code>premium</code> folder.  There is no correlation between the path to the source and the path (folders) in the container in AWS Elemental MediaStore. For more information about folders and how they exist in a container, see the <a href="http://docs.aws.amazon.com/mediastore/latest/ug/">AWS Elemental MediaStore User Guide</a>. The file name is the name that is assigned to the file that you upload. The file can have the same name inside and outside of AWS Elemental MediaStore, or it can have the same name. The file name can include or omit an extension. <br/>
        :return: StatusCode:  The HTML status code of the request. Status codes ranging from 200 to 299 indicate success. All other status codes indicate the type of error that occurred.<br/>LastModified:  The date and time that the object was last modified.<br/>ETag:  The ETag that represents a unique instance of the object.<br/>ContentType:  The content type of the object.<br/>ContentLength:  The length of the object in bytes.<br/>ContentRange:  The range of bytes to retrieve.<br/>CacheControl:  An optional <code>CacheControl</code> header that allows the caller to control the object's cache behavior. Headers can be passed in as specified in the HTTP spec at <a href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9">https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9</a>. Headers with a custom user-defined value are also accepted.<br/>Body:  The bytes of the object. <br/>        """
        pass

    def list_items(self, Path: str=None, MaxResults: int=None, NextToken: str=None) -> ListItemsResponse:
        r"""Provides a list of metadata entries about folders and objects in the specified folder.

        :param self:
        :param NextToken:  The token that identifies which batch of results that you want to see. For example, you submit a <code>ListItems</code> request with <code>MaxResults</code> set at 500. The service returns the first batch of results (up to 500) and a <code>NextToken</code> value. To see the next batch of results, you can submit the <code>ListItems</code> request a second time and specify the <code>NextToken</code> value. Tokens expire after 15 minutes.<br/>MaxResults:  The maximum number of results to return per API request. For example, you submit a <code>ListItems</code> request with <code>MaxResults</code> set at 500. Although 2,000 items match your request, the service returns no more than the first 500 items. (The service also returns a <code>NextToken</code> value that you can use to fetch the next batch of results.) The service might return fewer results than the <code>MaxResults</code> value. If <code>MaxResults</code> is not included in the request, the service defaults to pagination with a maximum of 1,000 results per page.<br/>Path:  The path in the container from which to retrieve items. Format: &lt;folder name&gt;/&lt;folder name&gt;/&lt;file name&gt;<br/>
        :return: NextToken:  The token that can be used in a request to view the next set of results. For example, you submit a <code>ListItems</code> request that matches 2,000 items with <code>MaxResults</code> set at 500. The service returns the first batch of results (up to 500) and a <code>NextToken</code> value that can be used to fetch the next batch of results.<br/>Items:  The metadata entries for the folders and objects at the requested path.<br/>        """
        pass

    def put_object(self, Path: str, Body: PayloadBlob, ContentType: str=None, CacheControl: str=None, StorageClass: str=None, UploadAvailability: str=None) -> PutObjectResponse:
        r"""Uploads an object to the specified path. Object sizes are limited to 25 MB for standard upload availability and 10 MB for streaming upload availability.

        :param self:
        :param UploadAvailability:  Indicates the availability of an object while it is still uploading. If the value is set to <code>streaming</code>, the object is available for downloading after some initial buffering but before the object is uploaded completely. If the value is set to <code>standard</code>, the object is available for downloading only when it is uploaded completely. The default value for this header is <code>standard</code>. To use this header, you must also set the HTTP <code>Transfer-Encoding</code> header to <code>chunked</code>.<br/>StorageClass:  Indicates the storage class of a <code>Put</code> request. Defaults to high-performance temporal storage class, and objects are persisted into durable storage shortly after being received.<br/>CacheControl:  An optional <code>CacheControl</code> header that allows the caller to control the object's cache behavior. Headers can be passed in as specified in the HTTP at <a href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9">https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9</a>. Headers with a custom user-defined value are also accepted.<br/>ContentType:  The content type of the object.<br/>Path:  The path (including the file name) where the object is stored in the container. Format: &lt;folder name&gt;/&lt;folder name&gt;/&lt;file name&gt; For example, to upload the file <code>mlaw.avi</code> to the folder path <code>premium\canada</code> in the container <code>movies</code>, enter the path <code>premium/canada/mlaw.avi</code>. Do not include the container name in this path. If the path includes any folders that don't exist yet, the service creates them. For example, suppose you have an existing <code>premium/usa</code> subfolder. If you specify <code>premium/canada</code>, the service creates a <code>canada</code> subfolder in the <code>premium</code> folder. You then have two subfolders, <code>usa</code> and <code>canada</code>, in the <code>premium</code> folder.  There is no correlation between the path to the source and the path (folders) in the container in AWS Elemental MediaStore. For more information about folders and how they exist in a container, see the <a href="http://docs.aws.amazon.com/mediastore/latest/ug/">AWS Elemental MediaStore User Guide</a>. The file name is the name that is assigned to the file that you upload. The file can have the same name inside and outside of AWS Elemental MediaStore, or it can have the same name. The file name can include or omit an extension. <br/>Body:  The bytes to be stored. <br/>
        :return: StorageClass:  The storage class where the object was persisted. The class should be “Temporal”.<br/>ETag:  Unique identifier of the object in the container.<br/>ContentSHA256:  The SHA256 digest of the object that is persisted.<br/>        """
        pass





class MediaTailor(BaseClient):
    r"""Use the AWS Elemental MediaTailor SDKs and CLI to configure scalable ad insertion and linear channels. With MediaTailor, you can assemble existing content into a linear stream and serve targeted ads to viewers while maintaining broadcast quality in over-the-top (OTT) video applications. For information about using the service, including detailed information about the settings covered in this guide, see the <a href="https://docs.aws.amazon.com/mediatailor/latest/ug/">AWS Elemental MediaTailor User Guide</a>. Through the SDKs and the CLI you manage AWS Elemental MediaTailor configurations and channels the same as you do through the console. For example, you specify ad insertion behavior and mapping information for the origin server and the ad decision server (ADS)."""


    class ListPlaybackConfigurationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_playback_configurations` for valid parameters"""
            pass
    class GetChannelSchedulePaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_channel_schedule` for valid parameters"""
            pass
    class ListChannelsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_channels` for valid parameters"""
            pass
    class ListSourceLocationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_source_locations` for valid parameters"""
            pass
    class ListVodSourcesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_vod_sources` for valid parameters"""
            pass
    class ListAlertsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_alerts` for valid parameters"""
            pass


    class CreateChannelRequest(Mapping):
        pass
    
    class CreateChannelResponse(Mapping):
        pass
    
    class RequestOutputItem(Mapping):
        pass
    
    class __mapOf__string(object):
        pass
    
    class CreateProgramRequest(Mapping):
        pass
    
    class CreateProgramResponse(Mapping):
        pass
    
    class AdBreak(Mapping):
        pass
    
    class ScheduleConfiguration(Mapping):
        pass
    
    class CreateSourceLocationRequest(Mapping):
        pass
    
    class CreateSourceLocationResponse(Mapping):
        pass
    
    class AccessConfiguration(Mapping):
        pass
    
    class DefaultSegmentDeliveryConfiguration(Mapping):
        pass
    
    class HttpConfiguration(Mapping):
        pass
    
    class CreateVodSourceRequest(Mapping):
        pass
    
    class CreateVodSourceResponse(Mapping):
        pass
    
    class HttpPackageConfiguration(Mapping):
        pass
    
    class DeleteChannelRequest(Mapping):
        pass
    
    class DeleteChannelResponse(Mapping):
        pass
    
    class DeleteChannelPolicyRequest(Mapping):
        pass
    
    class DeleteChannelPolicyResponse(Mapping):
        pass
    
    class DeletePlaybackConfigurationRequest(Mapping):
        pass
    
    class DeletePlaybackConfigurationResponse(Mapping):
        pass
    
    class DeleteProgramRequest(Mapping):
        pass
    
    class DeleteProgramResponse(Mapping):
        pass
    
    class DeleteSourceLocationRequest(Mapping):
        pass
    
    class DeleteSourceLocationResponse(Mapping):
        pass
    
    class DeleteVodSourceRequest(Mapping):
        pass
    
    class DeleteVodSourceResponse(Mapping):
        pass
    
    class DescribeChannelRequest(Mapping):
        pass
    
    class DescribeChannelResponse(Mapping):
        pass
    
    class DescribeProgramRequest(Mapping):
        pass
    
    class DescribeProgramResponse(Mapping):
        pass
    
    class DescribeSourceLocationRequest(Mapping):
        pass
    
    class DescribeSourceLocationResponse(Mapping):
        pass
    
    class DescribeVodSourceRequest(Mapping):
        pass
    
    class DescribeVodSourceResponse(Mapping):
        pass
    
    class GetChannelPolicyRequest(Mapping):
        pass
    
    class GetChannelPolicyResponse(Mapping):
        pass
    
    class GetChannelScheduleRequest(Mapping):
        pass
    
    class GetChannelScheduleResponse(Mapping):
        pass
    
    class GetPlaybackConfigurationRequest(Mapping):
        pass
    
    class GetPlaybackConfigurationResponse(Mapping):
        pass
    
    class ListAlertsRequest(Mapping):
        pass
    
    class ListAlertsResponse(Mapping):
        pass
    
    class ListChannelsRequest(Mapping):
        pass
    
    class ListChannelsResponse(Mapping):
        pass
    
    class ListPlaybackConfigurationsRequest(Mapping):
        pass
    
    class ListPlaybackConfigurationsResponse(Mapping):
        pass
    
    class ListSourceLocationsRequest(Mapping):
        pass
    
    class ListSourceLocationsResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class ListVodSourcesRequest(Mapping):
        pass
    
    class ListVodSourcesResponse(Mapping):
        pass
    
    class PutChannelPolicyRequest(Mapping):
        pass
    
    class PutChannelPolicyResponse(Mapping):
        pass
    
    class PutPlaybackConfigurationRequest(Mapping):
        pass
    
    class PutPlaybackConfigurationResponse(Mapping):
        pass
    
    class AvailSuppression(Mapping):
        pass
    
    class Bumper(Mapping):
        pass
    
    class CdnConfiguration(Mapping):
        pass
    
    class ConfigurationAliasesRequest(object):
        pass
    
    class DashConfigurationForPut(Mapping):
        pass
    
    class LivePreRollConfiguration(Mapping):
        pass
    
    class ManifestProcessingRules(Mapping):
        pass
    
    class StartChannelRequest(Mapping):
        pass
    
    class StartChannelResponse(Mapping):
        pass
    
    class StopChannelRequest(Mapping):
        pass
    
    class StopChannelResponse(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class __string(object):
        pass
    
    class UpdateChannelRequest(Mapping):
        pass
    
    class UpdateChannelResponse(Mapping):
        pass
    
    class UpdateSourceLocationRequest(Mapping):
        pass
    
    class UpdateSourceLocationResponse(Mapping):
        pass
    
    class UpdateVodSourceRequest(Mapping):
        pass
    
    class UpdateVodSourceResponse(Mapping):
        pass
    
    def create_channel(self, PlaybackMode: str, Outputs: List[RequestOutputItem], ChannelName: str, Tags: __mapOf__string=None) -> CreateChannelResponse:
        r"""Creates a channel.

        :param self:
        :param Tags:  The tags to assign to the channel.<br/>PlaybackMode:  The type of playback mode for this channel. The only supported value is LOOP.<br/>Outputs:  The channel's output properties.<br/>ChannelName:  The identifier for the channel you are working on.<br/>
        :return: Tags:  The tags assigned to the channel.<br/>PlaybackMode:  The type of playback for this channel. The only supported value is LOOP.<br/>Outputs:  The channel's output properties.<br/>LastModifiedTime:  The timestamp of when the channel was last modified.<br/>CreationTime:  The timestamp of when the channel was created.<br/>ChannelState:  Indicates whether the channel is in a running state or not.<br/>ChannelName:  The name of the channel.<br/>Arn:  The ARN of the channel.<br/>        """
        pass

    def create_program(self, VodSourceName: str, SourceLocationName: str, ScheduleConfiguration: ScheduleConfiguration, ProgramName: str, ChannelName: str, AdBreaks: List[AdBreak]=None) -> CreateProgramResponse:
        r"""Creates a program.

        :param self:
        :param VodSourceName:  The name that's used to refer to a VOD source.<br/>SourceLocationName:  The name of the source location.<br/>ScheduleConfiguration:  The schedule configuration settings.:<br/>ProgramName:  The identifier for the program you are working on.<br/>ChannelName:  The identifier for the channel you are working on.<br/>AdBreaks:  The ad break configuration settings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Transition</i> Program transition configurations.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Transition</b>: Program transition configurations.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> When the program should be played. RELATIVE means that programs will be played back-to-back.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RelativeProgram</i> The name of the program that this program will be inserted next to, as defined by RelativePosition.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RelativePosition</i> The position where this program will be inserted relative to the RelativeProgram. Possible values are: AFTER_PROGRAM, and BEFORE_PROGRAM.<br/>
        :return: VodSourceName:  The name that's used to refer to a VOD source.<br/>SourceLocationName:  The source location name.<br/>ProgramName:  The name of the program.<br/>CreationTime:  The timestamp of when the program was created.<br/>ChannelName:  The name of the channel that the program belongs to.<br/>Arn:  The ARN of the program.<br/>AdBreaks:  The ad break configuration settings.<br/>        """
        pass

    def create_source_location(self, SourceLocationName: str, HttpConfiguration: HttpConfiguration, AccessConfiguration: AccessConfiguration=None, DefaultSegmentDeliveryConfiguration: DefaultSegmentDeliveryConfiguration=None, Tags: __mapOf__string=None) -> CreateSourceLocationResponse:
        r"""Creates a source location on a specific channel.

        :param self:
        :param Tags:  The tags to assign to the source location.<br/>SourceLocationName:  The identifier for the source location you are working on.<br/>HttpConfiguration:  The source's HTTP package configurations.:<br/>DefaultSegmentDeliveryConfiguration:  The optional configuration for the server that serves segments.:<br/>AccessConfiguration:  Access configuration parameters. Configures the type of authentication used to access content from your source location.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerAccessTokenConfiguration</i> AWS Secrets Manager access token configuration parameters.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SecretsManagerAccessTokenConfiguration</b>: AWS Secrets Manager access token configuration parameters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccessType</i> The type of authentication used to access content from HttpConfiguration::BaseUrl on your source location. Accepted value: S3_SIGV4. S3_SIGV4 - AWS Signature Version 4 authentication for Amazon S3 hosted virtual-style access. If your source location base URL is an Amazon S3 bucket, MediaTailor can use AWS Signature Version 4 (SigV4) authentication to access the bucket where your source content is stored. Your MediaTailor source location baseURL must follow the S3 virtual hosted-style request URL format. For example, https://bucket-name.s3.Region.amazonaws.com/key-name. Before you can use S3_SIGV4, you must meet these requirements: • You must allow MediaTailor to access your S3 bucket by granting mediatailor.amazonaws.com principal access in IAM. For information about configuring access in IAM, see Access management in the IAM User Guide. • The mediatailor.amazonaws.com service principal must have permissions to read all top level manifests referenced by the VodSource packaging configurations. • The caller of the API must have s3:GetObject IAM permissions to read all top level manifests referenced by your MediaTailor VodSource packaging configurations.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretStringKey</i> The AWS Secrets Manager <a href="https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_CreateSecret.html#SecretsManager-CreateSecret-request-SecretString.html">SecretString</a> key associated with the access token. MediaTailor uses the key to look up SecretString key and value pair containing the access token.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretArn</i> The Amazon Resource Name (ARN) of the AWS Secrets Manager secret that contains the access token.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HeaderName</i> The name of the HTTP header used to supply the access token in requests to the source location.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BaseUrl</i> The hostname of the server that will be used to serve segments. This string must include the protocol, such as <b>https://</b>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BaseUrl</i> The base URL for the source location host server. This string must include the protocol, such as <b>https://</b>.<br/>
        :return: Tags:  The tags assigned to the source location.<br/>SourceLocationName:  The name of the source location.<br/>LastModifiedTime:  The timestamp that indicates when the source location was last modified.<br/>HttpConfiguration:  The HTTP package configuration settings for the source location.:<br/>DefaultSegmentDeliveryConfiguration:  The default segment delivery configuration settings.:<br/>CreationTime:  The timestamp that indicates when the source location was created.<br/>Arn:  The ARN of the source location.<br/>AccessConfiguration:  The access configuration for the source location.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerAccessTokenConfiguration</i> AWS Secrets Manager access token configuration parameters.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SecretsManagerAccessTokenConfiguration</b>: AWS Secrets Manager access token configuration parameters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccessType</i> The type of authentication used to access content from HttpConfiguration::BaseUrl on your source location. Accepted value: S3_SIGV4. S3_SIGV4 - AWS Signature Version 4 authentication for Amazon S3 hosted virtual-style access. If your source location base URL is an Amazon S3 bucket, MediaTailor can use AWS Signature Version 4 (SigV4) authentication to access the bucket where your source content is stored. Your MediaTailor source location baseURL must follow the S3 virtual hosted-style request URL format. For example, https://bucket-name.s3.Region.amazonaws.com/key-name. Before you can use S3_SIGV4, you must meet these requirements: • You must allow MediaTailor to access your S3 bucket by granting mediatailor.amazonaws.com principal access in IAM. For information about configuring access in IAM, see Access management in the IAM User Guide. • The mediatailor.amazonaws.com service principal must have permissions to read all top level manifests referenced by the VodSource packaging configurations. • The caller of the API must have s3:GetObject IAM permissions to read all top level manifests referenced by your MediaTailor VodSource packaging configurations.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretStringKey</i> The AWS Secrets Manager <a href="https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_CreateSecret.html#SecretsManager-CreateSecret-request-SecretString.html">SecretString</a> key associated with the access token. MediaTailor uses the key to look up SecretString key and value pair containing the access token.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretArn</i> The Amazon Resource Name (ARN) of the AWS Secrets Manager secret that contains the access token.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HeaderName</i> The name of the HTTP header used to supply the access token in requests to the source location.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BaseUrl</i> The hostname of the server that will be used to serve segments. This string must include the protocol, such as <b>https://</b>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BaseUrl</i> The base URL for the source location host server. This string must include the protocol, such as <b>https://</b>.<br/>        """
        pass

    def create_vod_source(self, VodSourceName: str, SourceLocationName: str, HttpPackageConfigurations: List[HttpPackageConfiguration], Tags: __mapOf__string=None) -> CreateVodSourceResponse:
        r"""Creates name for a specific VOD source in a source location.

        :param self:
        :param VodSourceName:  The identifier for the VOD source you are working on.<br/>Tags:  The tags to assign to the VOD source.<br/>SourceLocationName:  The identifier for the source location you are working on.<br/>HttpPackageConfigurations:  An array of HTTP package configuration parameters for this VOD source.<br/>
        :return: VodSourceName:  The name of the VOD source.<br/>Tags:  The tags assigned to the VOD source.<br/>SourceLocationName:  The name of the source location associated with the VOD source.<br/>LastModifiedTime:  The ARN for the VOD source.<br/>HttpPackageConfigurations:  The HTTP package configurations.<br/>CreationTime:  The timestamp that indicates when the VOD source was created.<br/>Arn:  The ARN of the VOD source.<br/>        """
        pass

    def delete_channel(self, ChannelName: str) -> DeleteChannelResponse:
        r"""Deletes a channel. You must stop the channel before it can be deleted.

        :param self:
        :param ChannelName:  The identifier for the channel you are working on.<br/>
        :return:         """
        pass

    def delete_channel_policy(self, ChannelName: str) -> DeleteChannelPolicyResponse:
        r"""Deletes a channel's IAM policy.

        :param self:
        :param ChannelName:  The identifier for the channel you are working on.<br/>
        :return:         """
        pass

    def delete_playback_configuration(self, Name: str) -> DeletePlaybackConfigurationResponse:
        r"""Deletes the playback configuration for the specified name.  

        :param self:
        :param Name:  The identifier for the playback configuration.<br/>
        :return:         """
        pass

    def delete_program(self, ProgramName: str, ChannelName: str) -> DeleteProgramResponse:
        r"""Deletes a specific program on a specific channel.

        :param self:
        :param ProgramName:  The identifier for the program you are working on.<br/>ChannelName:  The identifier for the channel you are working on.<br/>
        :return:         """
        pass

    def delete_source_location(self, SourceLocationName: str) -> DeleteSourceLocationResponse:
        r"""Deletes a source location on a specific channel.

        :param self:
        :param SourceLocationName:  The identifier for the source location you are working on.<br/>
        :return:         """
        pass

    def delete_vod_source(self, VodSourceName: str, SourceLocationName: str) -> DeleteVodSourceResponse:
        r"""Deletes a specific VOD source in a specific source location.

        :param self:
        :param VodSourceName:  The identifier for the VOD source you are working on.<br/>SourceLocationName:  The identifier for the source location you are working on.<br/>
        :return:         """
        pass

    def describe_channel(self, ChannelName: str) -> DescribeChannelResponse:
        r"""Describes the properties of a specific channel.

        :param self:
        :param ChannelName:  The identifier for the channel you are working on.<br/>
        :return: Tags:  The tags assigned to the channel.<br/>PlaybackMode:  The type of playback for this channel. The only supported value is LOOP.<br/>Outputs:  The channel's output properties.<br/>LastModifiedTime:  The timestamp of when the channel was last modified.<br/>CreationTime:  The timestamp of when the channel was created.<br/>ChannelState:  Indicates whether the channel is in a running state or not.<br/>ChannelName:  The name of the channel.<br/>Arn:  The ARN of the channel.<br/>        """
        pass

    def describe_program(self, ProgramName: str, ChannelName: str) -> DescribeProgramResponse:
        r"""Retrieves the properties of the requested program.

        :param self:
        :param ProgramName:  The identifier for the program you are working on.<br/>ChannelName:  The identifier for the channel you are working on.<br/>
        :return: VodSourceName:  The name that's used to refer to a VOD source.<br/>SourceLocationName:  The source location name.<br/>ProgramName:  The name of the program.<br/>CreationTime:  The timestamp of when the program was created.<br/>ChannelName:  The name of the channel that the program belongs to.<br/>Arn:  The ARN of the program.<br/>AdBreaks:  The ad break configuration settings.<br/>        """
        pass

    def describe_source_location(self, SourceLocationName: str) -> DescribeSourceLocationResponse:
        r"""Retrieves the properties of the requested source location.

        :param self:
        :param SourceLocationName:  The identifier for the source location you are working on.<br/>
        :return: Tags:  The tags assigned to the source location.<br/>SourceLocationName:  The name of the source location.<br/>LastModifiedTime:  The timestamp that indicates when the source location was last modified.<br/>HttpConfiguration:  The HTTP package configuration settings for the source location.:<br/>DefaultSegmentDeliveryConfiguration:  The default segment delivery configuration settings.:<br/>CreationTime:  The timestamp that indicates when the source location was created.<br/>Arn:  The ARN of the source location.<br/>AccessConfiguration:  The access configuration for the source location.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerAccessTokenConfiguration</i> AWS Secrets Manager access token configuration parameters.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SecretsManagerAccessTokenConfiguration</b>: AWS Secrets Manager access token configuration parameters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccessType</i> The type of authentication used to access content from HttpConfiguration::BaseUrl on your source location. Accepted value: S3_SIGV4. S3_SIGV4 - AWS Signature Version 4 authentication for Amazon S3 hosted virtual-style access. If your source location base URL is an Amazon S3 bucket, MediaTailor can use AWS Signature Version 4 (SigV4) authentication to access the bucket where your source content is stored. Your MediaTailor source location baseURL must follow the S3 virtual hosted-style request URL format. For example, https://bucket-name.s3.Region.amazonaws.com/key-name. Before you can use S3_SIGV4, you must meet these requirements: • You must allow MediaTailor to access your S3 bucket by granting mediatailor.amazonaws.com principal access in IAM. For information about configuring access in IAM, see Access management in the IAM User Guide. • The mediatailor.amazonaws.com service principal must have permissions to read all top level manifests referenced by the VodSource packaging configurations. • The caller of the API must have s3:GetObject IAM permissions to read all top level manifests referenced by your MediaTailor VodSource packaging configurations.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretStringKey</i> The AWS Secrets Manager <a href="https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_CreateSecret.html#SecretsManager-CreateSecret-request-SecretString.html">SecretString</a> key associated with the access token. MediaTailor uses the key to look up SecretString key and value pair containing the access token.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretArn</i> The Amazon Resource Name (ARN) of the AWS Secrets Manager secret that contains the access token.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HeaderName</i> The name of the HTTP header used to supply the access token in requests to the source location.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BaseUrl</i> The hostname of the server that will be used to serve segments. This string must include the protocol, such as <b>https://</b>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BaseUrl</i> The base URL for the source location host server. This string must include the protocol, such as <b>https://</b>.<br/>        """
        pass

    def describe_vod_source(self, VodSourceName: str, SourceLocationName: str) -> DescribeVodSourceResponse:
        r"""Provides details about a specific VOD source in a specific source location.

        :param self:
        :param VodSourceName:  The identifier for the VOD source you are working on.<br/>SourceLocationName:  The identifier for the source location you are working on.<br/>
        :return: VodSourceName:  The name of the VOD source.<br/>Tags:  The tags assigned to the VOD source.<br/>SourceLocationName:  The name of the source location associated with the VOD source.<br/>LastModifiedTime:  The ARN for the VOD source.<br/>HttpPackageConfigurations:  The HTTP package configurations.<br/>CreationTime:  The timestamp that indicates when the VOD source was created.<br/>Arn:  The ARN of the VOD source.<br/>        """
        pass

    def get_channel_policy(self, ChannelName: str) -> GetChannelPolicyResponse:
        r"""Retrieves information about a channel's IAM policy.

        :param self:
        :param ChannelName:  The identifier for the channel you are working on.<br/>
        :return: Policy:  The IAM policy for the channel.<br/>        """
        pass

    def get_channel_schedule(self, ChannelName: str, DurationMinutes: str=None, MaxResults: int=None, NextToken: str=None) -> GetChannelScheduleResponse:
        r"""Retrieves information about your channel's schedule.

        :param self:
        :param NextToken:  Pagination token from the GET list request. Use the token to fetch the next page of results.<br/>MaxResults:  Upper bound on number of records to return. The maximum number of results is 100.<br/>DurationMinutes:  The schedule duration in minutes. The maximum duration is 4320 minutes (three days).<br/>ChannelName:  The identifier for the channel you are working on.<br/>
        :return: NextToken:  Pagination token from the GET list request. Use the token to fetch the next page of results.<br/>Items:  An array of schedule entries for the channel.<br/>        """
        pass

    def get_playback_configuration(self, Name: str) -> GetPlaybackConfigurationResponse:
        r"""Returns the playback configuration for the specified name.  

        :param self:
        :param Name:  The identifier for the playback configuration.<br/>
        :return: VideoContentSourceUrl:  The URL prefix for the parent manifest for the stream, minus the asset ID. The maximum length is 512 characters.<br/>TranscodeProfileName:  The name that is used to associate this playback configuration with a custom transcode profile. This overrides the dynamic transcoding defaults of MediaTailor. Use this only if you have already set up custom profiles with the help of AWS Support.<br/>Tags:  The tags assigned to the playback configuration.<br/>SlateAdUrl:  The URL for a high-quality video asset to transcode and use to fill in time that's not used by ads. AWS Elemental MediaTailor shows the slate to fill in gaps in media content. Configuring the slate is optional for non-VPAID playback configurations. For VPAID, the slate is required because MediaTailor provides it in the slots designated for dynamic ad content. The slate must be a high-quality asset that contains both audio and video.<br/>SessionInitializationEndpointPrefix:  The URL that the player uses to initialize a session that uses client-side reporting.<br/>PlaybackEndpointPrefix:  The URL that the player accesses to get a manifest from AWS Elemental MediaTailor. This session will use server-side reporting.<br/>PlaybackConfigurationArn:  The Amazon Resource Name (ARN) for the playback configuration.<br/>PersonalizationThresholdSeconds:  Defines the maximum duration of underfilled ad time (in seconds) allowed in an ad break. If the duration of underfilled ad time exceeds the personalization threshold, then the personalization of the ad break is abandoned and the underlying content is shown. This feature applies to <i>ad replacement</i> in live and VOD streams, rather than ad insertion, because it relies on an underlying content stream. For more information about ad break behavior, including ad replacement and insertion, see <a href="https://docs.aws.amazon.com/mediatailor/latest/ug/ad-behavior.html">Ad Behavior in AWS Elemental MediaTailor</a>.<br/>Name:  The identifier for the playback configuration.<br/>ManifestProcessingRules:  The configuration for manifest processing rules. Manifest processing rules enable customization of the personalized manifests created by MediaTailor.:<br/>LivePreRollConfiguration:  The configuration for pre-roll ad insertion.:<br/>HlsConfiguration:  The configuration for HLS content.:<br/>DashConfiguration:  The configuration for DASH content.:<br/>ConfigurationAliases:  The player parameters and aliases used as dynamic variables during session initialization. For more information, see <a href="https://docs.aws.amazon.com/mediatailor/latest/ug/variables-domain.html">Domain Variables</a>.<br/>CdnConfiguration:  The configuration for using a content delivery network (CDN), like Amazon CloudFront, for content and ad segment management.:<br/>Bumper:  The configuration for bumpers. Bumpers are short audio or video clips that play at the start or before the end of an ad break. To learn more about bumpers, see <a href="https://docs.aws.amazon.com/mediatailor/latest/ug/bumpers.html">Bumpers</a>.:<br/>AvailSuppression:  The configuration for avail suppression, also known as ad suppression. For more information about ad suppression, see <a href="https://docs.aws.amazon.com/mediatailor/latest/ug/ad-behavior.html">Ad Suppression</a>.:<br/>AdDecisionServerUrl:  The URL for the ad decision server (ADS). This includes the specification of static parameters and placeholders for dynamic parameters. AWS Elemental MediaTailor substitutes player-specific and session-specific parameters as needed when calling the ADS. Alternately, for testing, you can provide a static VAST URL. The maximum length is 25,000 characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Value</i> A live edge offset time in HH:MM:SS. MediaTailor won't fill ad breaks on or behind this time in the manifest lookback window. If Value is set to 00:00:00, it is in sync with the live edge, and MediaTailor won't fill any ad breaks on or behind the live edge. If you set a Value time, MediaTailor won't fill any ad breaks on or behind this time in the manifest lookback window. For example, if you set 00:45:00, then MediaTailor will fill ad breaks that occur within 45 minutes behind the live edge, but won't fill ad breaks on or behind 45 minutes behind the live edge.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Mode</i> Sets the ad suppression mode. By default, ad suppression is off and all ad breaks are filled with ads or slate. When Mode is set to BEHIND_LIVE_EDGE, ad suppression is active and MediaTailor won't fill ad breaks on or behind the ad suppression Value time in the manifest lookback window.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StartUrl</i> The URL for the start bumper asset.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndUrl</i> The URL for the end bumper asset.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ContentSegmentUrlPrefix</i> A content delivery network (CDN) to cache content segments, so that content requests don’t always have to go to the origin server. First, create a rule in your CDN for the content segment origin server. Then specify the rule's name in this ContentSegmentUrlPrefix. When AWS Elemental MediaTailor serves a manifest, it reports your CDN as the source for content segments.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdSegmentUrlPrefix</i> A non-default content delivery network (CDN) to serve ad segments. By default, AWS Elemental MediaTailor uses Amazon CloudFront with default cache settings as its CDN for ad segments. To set up an alternate CDN, create a rule in your CDN for the origin ads.mediatailor.&amp;lt;region&gt;.amazonaws.com. Then specify the rule's name in this AdSegmentUrlPrefix. When AWS Elemental MediaTailor serves a manifest, it reports your CDN as the source for ad segments.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OriginManifestType</i> The setting that controls whether MediaTailor handles manifests from the origin server as multi-period manifests or single-period manifests. If your origin server produces single-period manifests, set this to SINGLE_PERIOD. The default setting is MULTI_PERIOD. For multi-period manifests, omit this setting or set it to MULTI_PERIOD.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MpdLocation</i> The setting that controls whether MediaTailor includes the Location tag in DASH manifests. MediaTailor populates the Location tag with the URL for manifest update requests, to be used by players that don't support sticky redirects. Disable this if you have CDN routing rules set up for accessing MediaTailor manifests, and you are either using client-side reporting or your players support sticky HTTP redirects. Valid values are DISABLED and EMT_DEFAULT. The EMT_DEFAULT setting enables the inclusion of the tag and is the default value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ManifestEndpointPrefix</i> The URL generated by MediaTailor to initiate a playback session. The session uses server-side reporting. This setting is ignored in PUT operations.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ManifestEndpointPrefix</i> The URL that is used to initiate a playback session for devices that support Apple HLS. The session uses server-side reporting.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxDurationSeconds</i> The maximum allowed duration for the pre-roll ad avail. AWS Elemental MediaTailor won't play pre-roll ads to exceed this duration, regardless of the total duration of ads that the ADS returns.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdDecisionServerUrl</i> The URL for the ad decision server (ADS) for pre-roll ads. This includes the specification of static parameters and placeholders for dynamic parameters. AWS Elemental MediaTailor substitutes player-specific and session-specific parameters as needed when calling the ADS. Alternately, for testing, you can provide a static VAST URL. The maximum length is 25,000 characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdMarkerPassthrough</i> For HLS, when set to true, MediaTailor passes through EXT-X-CUE-IN, EXT-X-CUE-OUT, and EXT-X-SPLICEPOINT-SCTE35 ad markers from the origin manifest to the MediaTailor personalized manifest. No logic is applied to these ad markers. For example, if EXT-X-CUE-OUT has a value of 60, but no ads are filled for that ad break, MediaTailor will not set the value to 0.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AdMarkerPassthrough</b>: For HLS, when set to true, MediaTailor passes through EXT-X-CUE-IN, EXT-X-CUE-OUT, and EXT-X-SPLICEPOINT-SCTE35 ad markers from the origin manifest to the MediaTailor personalized manifest. No logic is applied to these ad markers. For example, if EXT-X-CUE-OUT has a value of 60, but no ads are filled for that ad break, MediaTailor will not set the value to 0.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Enables ad marker passthrough for your configuration.<br/>        """
        pass

    def list_alerts(self, ResourceArn: str, MaxResults: int=None, NextToken: str=None) -> ListAlertsResponse:
        r"""Returns a list of alerts for the given resource.

        :param self:
        :param ResourceArn:  The Amazon Resource Name (ARN) of the resource.<br/>NextToken:  Pagination token from the GET list request. Use the token to fetch the next page of results.<br/>MaxResults:  Upper bound on number of records to return. The maximum number of results is 100.<br/>
        :return: NextToken:  Pagination token from the list request. Use the token to fetch the next page of results.<br/>Items:  An array of alerts that are associated with this resource.<br/>        """
        pass

    def list_channels(self, MaxResults: int=None, NextToken: str=None) -> ListChannelsResponse:
        r"""Retrieves a list of channels that are associated with this account.

        :param self:
        :param NextToken:  Pagination token from the GET list request. Use the token to fetch the next page of results.<br/>MaxResults:  Upper bound on number of records to return. The maximum number of results is 100.<br/>
        :return: NextToken:  Pagination token returned by the list request when results exceed the maximum allowed. Use the token to fetch the next page of results.<br/>Items:  An array of channels that are associated with this account.<br/>        """
        pass

    def list_playback_configurations(self, MaxResults: int=None, NextToken: str=None) -> ListPlaybackConfigurationsResponse:
        r"""Returns a list of the playback configurations defined in AWS Elemental MediaTailor. You can specify a maximum number of configurations to return at a time. The default maximum is 50. Results are returned in pagefuls. If MediaTailor has more configurations than the specified maximum, it provides parameters in the response that you can use to retrieve the next pageful.  

        :param self:
        :param NextToken:  Pagination token returned by the GET list request when results exceed the maximum allowed. Use the token to fetch the next page of results.<br/>MaxResults:  Maximum number of records to return.<br/>
        :return: NextToken:  Pagination token returned by the GET list request when results exceed the maximum allowed. Use the token to fetch the next page of results.<br/>Items:  Array of playback configurations. This might be all the available configurations or a subset, depending on the settings that you provide and the total number of configurations stored.<br/>        """
        pass

    def list_source_locations(self, MaxResults: int=None, NextToken: str=None) -> ListSourceLocationsResponse:
        r"""Retrieves a list of source locations.

        :param self:
        :param NextToken:  Pagination token from the GET list request. Use the token to fetch the next page of results.<br/>MaxResults:  Upper bound on number of records to return. The maximum number of results is 100.<br/>
        :return: NextToken:  Pagination token from the list request. Use the token to fetch the next page of results.<br/>Items:  An array of source locations.<br/>        """
        pass

    def list_tags_for_resource(self, ResourceArn: str) -> ListTagsForResourceResponse:
        r"""Returns a list of the tags assigned to the specified playback configuration resource.  

        :param self:
        :param ResourceArn:  The Amazon Resource Name (ARN) for the playback configuration. You can get this from the response to any playback configuration request.<br/>
        :return: Tags:  A comma-separated list of tag key:value pairs.<br/>        """
        pass

    def list_vod_sources(self, SourceLocationName: str, MaxResults: int=None, NextToken: str=None) -> ListVodSourcesResponse:
        r"""Lists all the VOD sources in a source location.

        :param self:
        :param SourceLocationName:  The identifier for the source location you are working on.<br/>NextToken:  Pagination token from the GET list request. Use the token to fetch the next page of results.<br/>MaxResults:  Upper bound on number of records to return. The maximum number of results is 100.<br/>
        :return: NextToken:  Pagination token from the list request. Use the token to fetch the next page of results.<br/>Items:  Lists the VOD sources.<br/>        """
        pass

    def put_channel_policy(self, Policy: str, ChannelName: str) -> PutChannelPolicyResponse:
        r"""Creates an IAM policy for the channel.

        :param self:
        :param Policy:  Adds an IAM role that determines the permissions of your channel.<br/>ChannelName:  The identifier for the channel you are working on.<br/>
        :return:         """
        pass

    def put_playback_configuration(self, AdDecisionServerUrl: str=None, AvailSuppression: AvailSuppression=None, Bumper: Bumper=None, CdnConfiguration: CdnConfiguration=None, ConfigurationAliases: ConfigurationAliasesRequest=None, DashConfiguration: DashConfigurationForPut=None, LivePreRollConfiguration: LivePreRollConfiguration=None, ManifestProcessingRules: ManifestProcessingRules=None, Name: str=None, PersonalizationThresholdSeconds: int=None, SlateAdUrl: str=None, Tags: __mapOf__string=None, TranscodeProfileName: str=None, VideoContentSourceUrl: str=None) -> PutPlaybackConfigurationResponse:
        r"""Adds a new playback configuration to AWS Elemental MediaTailor.  

        :param self:
        :param VideoContentSourceUrl:  The URL prefix for the parent manifest for the stream, minus the asset ID. The maximum length is 512 characters.<br/>TranscodeProfileName:  The name that is used to associate this playback configuration with a custom transcode profile. This overrides the dynamic transcoding defaults of MediaTailor. Use this only if you have already set up custom profiles with the help of AWS Support.<br/>Tags:  The tags to assign to the playback configuration.<br/>SlateAdUrl:  The URL for a high-quality video asset to transcode and use to fill in time that's not used by ads. AWS Elemental MediaTailor shows the slate to fill in gaps in media content. Configuring the slate is optional for non-VPAID configurations. For VPAID, the slate is required because MediaTailor provides it in the slots that are designated for dynamic ad content. The slate must be a high-quality asset that contains both audio and video.<br/>PersonalizationThresholdSeconds:  Defines the maximum duration of underfilled ad time (in seconds) allowed in an ad break. If the duration of underfilled ad time exceeds the personalization threshold, then the personalization of the ad break is abandoned and the underlying content is shown. This feature applies to <i>ad replacement</i> in live and VOD streams, rather than ad insertion, because it relies on an underlying content stream. For more information about ad break behavior, including ad replacement and insertion, see <a href="https://docs.aws.amazon.com/mediatailor/latest/ug/ad-behavior.html">Ad Behavior in AWS Elemental MediaTailor</a>.<br/>Name:  The identifier for the playback configuration.<br/>ManifestProcessingRules:  The configuration for manifest processing rules. Manifest processing rules enable customization of the personalized manifests created by MediaTailor.:<br/>LivePreRollConfiguration:  The configuration for pre-roll ad insertion.:<br/>DashConfiguration:  The configuration for DASH content.:<br/>ConfigurationAliases:  The player parameters and aliases used as dynamic variables during session initialization. For more information, see <a href="https://docs.aws.amazon.com/mediatailor/latest/ug/variables-domain.html">Domain Variables</a>. <br/>CdnConfiguration:  The configuration for using a content delivery network (CDN), like Amazon CloudFront, for content and ad segment management.:<br/>Bumper:  The configuration for bumpers. Bumpers are short audio or video clips that play at the start or before the end of an ad break. To learn more about bumpers, see <a href="https://docs.aws.amazon.com/mediatailor/latest/ug/bumpers.html">Bumpers</a>.:<br/>AvailSuppression:  The configuration for avail suppression, also known as ad suppression. For more information about ad suppression, see <a href="https://docs.aws.amazon.com/mediatailor/latest/ug/ad-behavior.html">Ad Suppression</a>.:<br/>AdDecisionServerUrl:  The URL for the ad decision server (ADS). This includes the specification of static parameters and placeholders for dynamic parameters. AWS Elemental MediaTailor substitutes player-specific and session-specific parameters as needed when calling the ADS. Alternately, for testing you can provide a static VAST URL. The maximum length is 25,000 characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Value</i> A live edge offset time in HH:MM:SS. MediaTailor won't fill ad breaks on or behind this time in the manifest lookback window. If Value is set to 00:00:00, it is in sync with the live edge, and MediaTailor won't fill any ad breaks on or behind the live edge. If you set a Value time, MediaTailor won't fill any ad breaks on or behind this time in the manifest lookback window. For example, if you set 00:45:00, then MediaTailor will fill ad breaks that occur within 45 minutes behind the live edge, but won't fill ad breaks on or behind 45 minutes behind the live edge.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Mode</i> Sets the ad suppression mode. By default, ad suppression is off and all ad breaks are filled with ads or slate. When Mode is set to BEHIND_LIVE_EDGE, ad suppression is active and MediaTailor won't fill ad breaks on or behind the ad suppression Value time in the manifest lookback window.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StartUrl</i> The URL for the start bumper asset.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndUrl</i> The URL for the end bumper asset.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ContentSegmentUrlPrefix</i> A content delivery network (CDN) to cache content segments, so that content requests don’t always have to go to the origin server. First, create a rule in your CDN for the content segment origin server. Then specify the rule's name in this ContentSegmentUrlPrefix. When AWS Elemental MediaTailor serves a manifest, it reports your CDN as the source for content segments.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdSegmentUrlPrefix</i> A non-default content delivery network (CDN) to serve ad segments. By default, AWS Elemental MediaTailor uses Amazon CloudFront with default cache settings as its CDN for ad segments. To set up an alternate CDN, create a rule in your CDN for the origin ads.mediatailor.&amp;lt;region&gt;.amazonaws.com. Then specify the rule's name in this AdSegmentUrlPrefix. When AWS Elemental MediaTailor serves a manifest, it reports your CDN as the source for ad segments.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OriginManifestType</i> The setting that controls whether MediaTailor handles manifests from the origin server as multi-period manifests or single-period manifests. If your origin server produces single-period manifests, set this to SINGLE_PERIOD. The default setting is MULTI_PERIOD. For multi-period manifests, omit this setting or set it to MULTI_PERIOD.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MpdLocation</i> The setting that controls whether MediaTailor includes the Location tag in DASH manifests. MediaTailor populates the Location tag with the URL for manifest update requests, to be used by players that don't support sticky redirects. Disable this if you have CDN routing rules set up for accessing MediaTailor manifests, and you are either using client-side reporting or your players support sticky HTTP redirects. Valid values are DISABLED and EMT_DEFAULT. The EMT_DEFAULT setting enables the inclusion of the tag and is the default value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxDurationSeconds</i> The maximum allowed duration for the pre-roll ad avail. AWS Elemental MediaTailor won't play pre-roll ads to exceed this duration, regardless of the total duration of ads that the ADS returns.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdDecisionServerUrl</i> The URL for the ad decision server (ADS) for pre-roll ads. This includes the specification of static parameters and placeholders for dynamic parameters. AWS Elemental MediaTailor substitutes player-specific and session-specific parameters as needed when calling the ADS. Alternately, for testing, you can provide a static VAST URL. The maximum length is 25,000 characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdMarkerPassthrough</i> For HLS, when set to true, MediaTailor passes through EXT-X-CUE-IN, EXT-X-CUE-OUT, and EXT-X-SPLICEPOINT-SCTE35 ad markers from the origin manifest to the MediaTailor personalized manifest. No logic is applied to these ad markers. For example, if EXT-X-CUE-OUT has a value of 60, but no ads are filled for that ad break, MediaTailor will not set the value to 0.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AdMarkerPassthrough</b>: For HLS, when set to true, MediaTailor passes through EXT-X-CUE-IN, EXT-X-CUE-OUT, and EXT-X-SPLICEPOINT-SCTE35 ad markers from the origin manifest to the MediaTailor personalized manifest. No logic is applied to these ad markers. For example, if EXT-X-CUE-OUT has a value of 60, but no ads are filled for that ad break, MediaTailor will not set the value to 0.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Enables ad marker passthrough for your configuration.<br/>
        :return: VideoContentSourceUrl:  The URL prefix for the parent manifest for the stream, minus the asset ID. The maximum length is 512 characters.<br/>TranscodeProfileName:  The name that is used to associate this playback configuration with a custom transcode profile. This overrides the dynamic transcoding defaults of MediaTailor. Use this only if you have already set up custom profiles with the help of AWS Support.<br/>Tags:  The tags assigned to the playback configuration.<br/>SlateAdUrl:  The URL for a high-quality video asset to transcode and use to fill in time that's not used by ads. AWS Elemental MediaTailor shows the slate to fill in gaps in media content. Configuring the slate is optional for non-VPAID playback configurations. For VPAID, the slate is required because MediaTailor provides it in the slots designated for dynamic ad content. The slate must be a high-quality asset that contains both audio and video.<br/>SessionInitializationEndpointPrefix:  The URL that the player uses to initialize a session that uses client-side reporting.<br/>PlaybackEndpointPrefix:  The URL that the player accesses to get a manifest from AWS Elemental MediaTailor. This session will use server-side reporting.<br/>PlaybackConfigurationArn:  The Amazon Resource Name (ARN) for the playback configuration.<br/>PersonalizationThresholdSeconds:  Defines the maximum duration of underfilled ad time (in seconds) allowed in an ad break. If the duration of underfilled ad time exceeds the personalization threshold, then the personalization of the ad break is abandoned and the underlying content is shown. This feature applies to <i>ad replacement</i> in live and VOD streams, rather than ad insertion, because it relies on an underlying content stream. For more information about ad break behavior, including ad replacement and insertion, see <a href="https://docs.aws.amazon.com/mediatailor/latest/ug/ad-behavior.html">Ad Behavior in AWS Elemental MediaTailor</a>.<br/>Name:  The identifier for the playback configuration.<br/>ManifestProcessingRules:  The configuration for manifest processing rules. Manifest processing rules enable customization of the personalized manifests created by MediaTailor.:<br/>LivePreRollConfiguration:  The configuration for pre-roll ad insertion.:<br/>HlsConfiguration:  The configuration for HLS content.:<br/>DashConfiguration:  The configuration for DASH content.:<br/>ConfigurationAliases:  The player parameters and aliases used as dynamic variables during session initialization. For more information, see <a href="https://docs.aws.amazon.com/mediatailor/latest/ug/variables-domain.html">Domain Variables</a>.<br/>CdnConfiguration:  The configuration for using a content delivery network (CDN), like Amazon CloudFront, for content and ad segment management.:<br/>Bumper:  The configuration for bumpers. Bumpers are short audio or video clips that play at the start or before the end of an ad break. To learn more about bumpers, see <a href="https://docs.aws.amazon.com/mediatailor/latest/ug/bumpers.html">Bumpers</a>.:<br/>AvailSuppression:  The configuration for avail suppression, also known as ad suppression. For more information about ad suppression, see <a href="https://docs.aws.amazon.com/mediatailor/latest/ug/ad-behavior.html">Ad Suppression</a>.:<br/>AdDecisionServerUrl:  The URL for the ad decision server (ADS). This includes the specification of static parameters and placeholders for dynamic parameters. AWS Elemental MediaTailor substitutes player-specific and session-specific parameters as needed when calling the ADS. Alternately, for testing, you can provide a static VAST URL. The maximum length is 25,000 characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Value</i> A live edge offset time in HH:MM:SS. MediaTailor won't fill ad breaks on or behind this time in the manifest lookback window. If Value is set to 00:00:00, it is in sync with the live edge, and MediaTailor won't fill any ad breaks on or behind the live edge. If you set a Value time, MediaTailor won't fill any ad breaks on or behind this time in the manifest lookback window. For example, if you set 00:45:00, then MediaTailor will fill ad breaks that occur within 45 minutes behind the live edge, but won't fill ad breaks on or behind 45 minutes behind the live edge.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Mode</i> Sets the ad suppression mode. By default, ad suppression is off and all ad breaks are filled with ads or slate. When Mode is set to BEHIND_LIVE_EDGE, ad suppression is active and MediaTailor won't fill ad breaks on or behind the ad suppression Value time in the manifest lookback window.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StartUrl</i> The URL for the start bumper asset.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndUrl</i> The URL for the end bumper asset.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ContentSegmentUrlPrefix</i> A content delivery network (CDN) to cache content segments, so that content requests don’t always have to go to the origin server. First, create a rule in your CDN for the content segment origin server. Then specify the rule's name in this ContentSegmentUrlPrefix. When AWS Elemental MediaTailor serves a manifest, it reports your CDN as the source for content segments.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdSegmentUrlPrefix</i> A non-default content delivery network (CDN) to serve ad segments. By default, AWS Elemental MediaTailor uses Amazon CloudFront with default cache settings as its CDN for ad segments. To set up an alternate CDN, create a rule in your CDN for the origin ads.mediatailor.&amp;lt;region&gt;.amazonaws.com. Then specify the rule's name in this AdSegmentUrlPrefix. When AWS Elemental MediaTailor serves a manifest, it reports your CDN as the source for ad segments.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OriginManifestType</i> The setting that controls whether MediaTailor handles manifests from the origin server as multi-period manifests or single-period manifests. If your origin server produces single-period manifests, set this to SINGLE_PERIOD. The default setting is MULTI_PERIOD. For multi-period manifests, omit this setting or set it to MULTI_PERIOD.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MpdLocation</i> The setting that controls whether MediaTailor includes the Location tag in DASH manifests. MediaTailor populates the Location tag with the URL for manifest update requests, to be used by players that don't support sticky redirects. Disable this if you have CDN routing rules set up for accessing MediaTailor manifests, and you are either using client-side reporting or your players support sticky HTTP redirects. Valid values are DISABLED and EMT_DEFAULT. The EMT_DEFAULT setting enables the inclusion of the tag and is the default value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ManifestEndpointPrefix</i> The URL generated by MediaTailor to initiate a playback session. The session uses server-side reporting. This setting is ignored in PUT operations.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ManifestEndpointPrefix</i> The URL that is used to initiate a playback session for devices that support Apple HLS. The session uses server-side reporting.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxDurationSeconds</i> The maximum allowed duration for the pre-roll ad avail. AWS Elemental MediaTailor won't play pre-roll ads to exceed this duration, regardless of the total duration of ads that the ADS returns.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdDecisionServerUrl</i> The URL for the ad decision server (ADS) for pre-roll ads. This includes the specification of static parameters and placeholders for dynamic parameters. AWS Elemental MediaTailor substitutes player-specific and session-specific parameters as needed when calling the ADS. Alternately, for testing, you can provide a static VAST URL. The maximum length is 25,000 characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdMarkerPassthrough</i> For HLS, when set to true, MediaTailor passes through EXT-X-CUE-IN, EXT-X-CUE-OUT, and EXT-X-SPLICEPOINT-SCTE35 ad markers from the origin manifest to the MediaTailor personalized manifest. No logic is applied to these ad markers. For example, if EXT-X-CUE-OUT has a value of 60, but no ads are filled for that ad break, MediaTailor will not set the value to 0.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AdMarkerPassthrough</b>: For HLS, when set to true, MediaTailor passes through EXT-X-CUE-IN, EXT-X-CUE-OUT, and EXT-X-SPLICEPOINT-SCTE35 ad markers from the origin manifest to the MediaTailor personalized manifest. No logic is applied to these ad markers. For example, if EXT-X-CUE-OUT has a value of 60, but no ads are filled for that ad break, MediaTailor will not set the value to 0.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Enables ad marker passthrough for your configuration.<br/>        """
        pass

    def start_channel(self, ChannelName: str) -> StartChannelResponse:
        r"""Starts a specific channel.

        :param self:
        :param ChannelName:  The identifier for the channel you are working on.<br/>
        :return:         """
        pass

    def stop_channel(self, ChannelName: str) -> StopChannelResponse:
        r"""Stops a specific channel.

        :param self:
        :param ChannelName:  The identifier for the channel you are working on.<br/>
        :return:         """
        pass

    def tag_resource(self, Tags: __mapOf__string, ResourceArn: str):
        r"""Adds tags to the specified playback configuration resource. You can specify one or more tags to add.  

        :param self:
        :param Tags:  A comma-separated list of tag key:value pairs.<br/>ResourceArn:  The Amazon Resource Name (ARN) for the playback configuration. You can get this from the response to any playback configuration request.<br/>
        :return:         """
        pass

    def untag_resource(self, TagKeys: List[__string], ResourceArn: str):
        r"""Removes tags from the specified playback configuration resource. You can specify one or more tags to remove.  

        :param self:
        :param TagKeys:  A comma-separated list of the tag keys to remove from the playback configuration.<br/>ResourceArn:  The Amazon Resource Name (ARN) for the playback configuration. You can get this from the response to any playback configuration request.<br/>
        :return:         """
        pass

    def update_channel(self, Outputs: List[RequestOutputItem], ChannelName: str) -> UpdateChannelResponse:
        r"""Updates an existing channel.

        :param self:
        :param Outputs:  The channel's output properties.<br/>ChannelName:  The identifier for the channel you are working on.<br/>
        :return: Tags:  The tags assigned to the channel.<br/>PlaybackMode:  The type of playback for this channel. The only supported value is LOOP.<br/>Outputs:  The channel's output properties.<br/>LastModifiedTime:  The timestamp of when the channel was last modified.<br/>CreationTime:  The timestamp of when the channel was created.<br/>ChannelState:  Indicates whether the channel is in a running state or not.<br/>ChannelName:  The name of the channel.<br/>Arn:  The ARN of the channel.<br/>        """
        pass

    def update_source_location(self, SourceLocationName: str, HttpConfiguration: HttpConfiguration, AccessConfiguration: AccessConfiguration=None, DefaultSegmentDeliveryConfiguration: DefaultSegmentDeliveryConfiguration=None) -> UpdateSourceLocationResponse:
        r"""Updates a source location on a specific channel.

        :param self:
        :param SourceLocationName:  The identifier for the source location you are working on.<br/>HttpConfiguration:  The HTTP configuration for the source location.:<br/>DefaultSegmentDeliveryConfiguration:  The optional configuration for the host server that serves segments.:<br/>AccessConfiguration:  Access configuration parameters. Configures the type of authentication used to access content from your source location.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerAccessTokenConfiguration</i> AWS Secrets Manager access token configuration parameters.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SecretsManagerAccessTokenConfiguration</b>: AWS Secrets Manager access token configuration parameters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccessType</i> The type of authentication used to access content from HttpConfiguration::BaseUrl on your source location. Accepted value: S3_SIGV4. S3_SIGV4 - AWS Signature Version 4 authentication for Amazon S3 hosted virtual-style access. If your source location base URL is an Amazon S3 bucket, MediaTailor can use AWS Signature Version 4 (SigV4) authentication to access the bucket where your source content is stored. Your MediaTailor source location baseURL must follow the S3 virtual hosted-style request URL format. For example, https://bucket-name.s3.Region.amazonaws.com/key-name. Before you can use S3_SIGV4, you must meet these requirements: • You must allow MediaTailor to access your S3 bucket by granting mediatailor.amazonaws.com principal access in IAM. For information about configuring access in IAM, see Access management in the IAM User Guide. • The mediatailor.amazonaws.com service principal must have permissions to read all top level manifests referenced by the VodSource packaging configurations. • The caller of the API must have s3:GetObject IAM permissions to read all top level manifests referenced by your MediaTailor VodSource packaging configurations.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretStringKey</i> The AWS Secrets Manager <a href="https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_CreateSecret.html#SecretsManager-CreateSecret-request-SecretString.html">SecretString</a> key associated with the access token. MediaTailor uses the key to look up SecretString key and value pair containing the access token.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretArn</i> The Amazon Resource Name (ARN) of the AWS Secrets Manager secret that contains the access token.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HeaderName</i> The name of the HTTP header used to supply the access token in requests to the source location.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BaseUrl</i> The hostname of the server that will be used to serve segments. This string must include the protocol, such as <b>https://</b>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BaseUrl</i> The base URL for the source location host server. This string must include the protocol, such as <b>https://</b>.<br/>
        :return: Tags:  The tags assigned to the source location.<br/>SourceLocationName:  The name of the source location.<br/>LastModifiedTime:  The timestamp that indicates when the source location was last modified.<br/>HttpConfiguration:  The HTTP package configuration settings for the source location.:<br/>DefaultSegmentDeliveryConfiguration:  The default segment delivery configuration settings.:<br/>CreationTime:  The timestamp that indicates when the source location was created.<br/>Arn:  The ARN of the source location.<br/>AccessConfiguration:  The access configuration for the source location.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretsManagerAccessTokenConfiguration</i> AWS Secrets Manager access token configuration parameters.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SecretsManagerAccessTokenConfiguration</b>: AWS Secrets Manager access token configuration parameters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccessType</i> The type of authentication used to access content from HttpConfiguration::BaseUrl on your source location. Accepted value: S3_SIGV4. S3_SIGV4 - AWS Signature Version 4 authentication for Amazon S3 hosted virtual-style access. If your source location base URL is an Amazon S3 bucket, MediaTailor can use AWS Signature Version 4 (SigV4) authentication to access the bucket where your source content is stored. Your MediaTailor source location baseURL must follow the S3 virtual hosted-style request URL format. For example, https://bucket-name.s3.Region.amazonaws.com/key-name. Before you can use S3_SIGV4, you must meet these requirements: • You must allow MediaTailor to access your S3 bucket by granting mediatailor.amazonaws.com principal access in IAM. For information about configuring access in IAM, see Access management in the IAM User Guide. • The mediatailor.amazonaws.com service principal must have permissions to read all top level manifests referenced by the VodSource packaging configurations. • The caller of the API must have s3:GetObject IAM permissions to read all top level manifests referenced by your MediaTailor VodSource packaging configurations.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretStringKey</i> The AWS Secrets Manager <a href="https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_CreateSecret.html#SecretsManager-CreateSecret-request-SecretString.html">SecretString</a> key associated with the access token. MediaTailor uses the key to look up SecretString key and value pair containing the access token.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretArn</i> The Amazon Resource Name (ARN) of the AWS Secrets Manager secret that contains the access token.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HeaderName</i> The name of the HTTP header used to supply the access token in requests to the source location.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BaseUrl</i> The hostname of the server that will be used to serve segments. This string must include the protocol, such as <b>https://</b>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BaseUrl</i> The base URL for the source location host server. This string must include the protocol, such as <b>https://</b>.<br/>        """
        pass

    def update_vod_source(self, VodSourceName: str, SourceLocationName: str, HttpPackageConfigurations: List[HttpPackageConfiguration]) -> UpdateVodSourceResponse:
        r"""Updates a specific VOD source in a specific source location.

        :param self:
        :param VodSourceName:  The identifier for the VOD source you are working on.<br/>SourceLocationName:  The identifier for the source location you are working on.<br/>HttpPackageConfigurations:  An array of HTTP package configurations for the VOD source on this account.<br/>
        :return: VodSourceName:  The name of the VOD source.<br/>Tags:  The tags assigned to the VOD source.<br/>SourceLocationName:  The name of the source location associated with the VOD source.<br/>LastModifiedTime:  The ARN for the VOD source.<br/>HttpPackageConfigurations:  The HTTP package configurations.<br/>CreationTime:  The timestamp that indicates when the VOD source was created.<br/>Arn:  The ARN of the VOD source.<br/>        """
        pass





class MarketplaceMetering(BaseClient):
    r"""<fullname>AWS Marketplace Metering Service</fullname> This reference provides descriptions of the low-level AWS Marketplace Metering Service API. AWS Marketplace sellers can use this API to submit usage data for custom usage dimensions. For information on the permissions you need to use this API, see <a href="https://docs.aws.amazon.com/marketplace/latest/userguide/iam-user-policy-for-aws-marketplace-actions.html">AWS Marketing metering and entitlement API permissions</a> in the <i>AWS Marketplace Seller Guide.</i>   <b>Submitting Metering Records</b>  <ul> <li>  <i>MeterUsage</i>- Submits the metering record for a Marketplace product. MeterUsage is called from an EC2 instance or a container running on EKS or ECS. </li> <li>  <i>BatchMeterUsage</i>- Submits the metering record for a set of customers. BatchMeterUsage is called from a software-as-a-service (SaaS) application. </li> </ul>  <b>Accepting New Customers</b>  <ul> <li>  <i>ResolveCustomer</i>- Called by a SaaS application during the registration process. When a buyer visits your website during the registration process, the buyer submits a Registration Token through the browser. The Registration Token is resolved through this API to obtain a CustomerIdentifier and Product Code. </li> </ul>  <b>Entitlement and Metering for Paid Container Products</b>  <ul> <li>  Paid container software products sold through AWS Marketplace must integrate with the AWS Marketplace Metering Service and call the RegisterUsage operation for software entitlement and metering. Free and BYOL products for Amazon ECS or Amazon EKS aren't required to call RegisterUsage, but you can do so if you want to receive usage data in your seller reports. For more information on using the RegisterUsage operation, see <a href="https://docs.aws.amazon.com/marketplace/latest/userguide/container-based-products.html">Container-Based Products</a>.  </li> </ul> BatchMeterUsage API calls are captured by AWS CloudTrail. You can use Cloudtrail to verify that the SaaS metering records that you sent are accurate by searching for records with the eventName of BatchMeterUsage. You can also use CloudTrail to audit records over time. For more information, see the <i> <a href="http://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-concepts.html">AWS CloudTrail User Guide</a> </i>."""




    class BatchMeterUsageRequest(Mapping):
        pass
    
    class BatchMeterUsageResult(Mapping):
        pass
    
    class UsageRecord(Mapping):
        pass
    
    class MeterUsageRequest(Mapping):
        pass
    
    class MeterUsageResult(Mapping):
        pass
    
    class Timestamp(object):
        pass
    
    class Boolean(object):
        pass
    
    class UsageAllocation(Mapping):
        pass
    
    class RegisterUsageRequest(Mapping):
        pass
    
    class RegisterUsageResult(Mapping):
        pass
    
    class ResolveCustomerRequest(Mapping):
        pass
    
    class ResolveCustomerResult(Mapping):
        pass
    
    def batch_meter_usage(self, ProductCode: str, UsageRecords: List[UsageRecord]) -> BatchMeterUsageResult:
        r"""BatchMeterUsage is called from a SaaS application listed on the AWS Marketplace to post metering records for a set of customers. For identical requests, the API is idempotent; requests can be retried with the same records or a subset of the input records. Every request to BatchMeterUsage is for one product. If you need to meter usage for multiple products, you must make multiple calls to BatchMeterUsage. BatchMeterUsage can process up to 25 UsageRecords at a time. A UsageRecord can optionally include multiple usage allocations, to provide customers with usagedata split into buckets by tags that you define (or allow the customer to define). BatchMeterUsage requests must be less than 1MB in size.

        :param self:
        :param ProductCode:  Product code is used to uniquely identify a product in AWS Marketplace. The product code should be the same as the one used during the publishing of a new product.<br/>UsageRecords:  The set of UsageRecords to submit. BatchMeterUsage accepts up to 25 UsageRecords at a time.<br/>
        :return: UnprocessedRecords:  Contains all UsageRecords that were not processed by BatchMeterUsage. This is a list of UsageRecords. You can retry the failed request by making another BatchMeterUsage call with this list as input in the BatchMeterUsageRequest.<br/>Results:  Contains all UsageRecords processed by BatchMeterUsage. These records were either honored by AWS Marketplace Metering Service or were invalid.<br/>        """
        pass

    def meter_usage(self, UsageDimension: str, Timestamp: Timestamp, ProductCode: str, UsageQuantity: int=None, DryRun: Boolean=None, UsageAllocations: List[UsageAllocation]=None) -> MeterUsageResult:
        r"""API to emit metering records. For identical requests, the API is idempotent. It simply returns the metering record ID. MeterUsage is authenticated on the buyer's AWS account using credentials from the EC2 instance, ECS task, or EKS pod. MeterUsage can optionally include multiple usage allocations, to provide customers with usage data split into buckets by tags that you define (or allow the customer to define).

        :param self:
        :param UsageAllocations:  The set of UsageAllocations to submit. The sum of all UsageAllocation quantities must equal the UsageQuantity of the MeterUsage request, and each UsageAllocation must have a unique set of tags (include no tags).<br/>DryRun:  Checks whether you have the permissions required for the action, but does not make the request. If you have the permissions, the request returns DryRunOperation; otherwise, it returns UnauthorizedException. Defaults to <code>false</code> if not specified.<br/>UsageQuantity:  Consumption value for the hour. Defaults to <code>0</code> if not specified.<br/>UsageDimension:  It will be one of the fcp dimension name provided during the publishing of the product.<br/>Timestamp:  Timestamp, in UTC, for which the usage is being reported. Your application can meter usage for up to one hour in the past. Make sure the timestamp value is not before the start of the software usage.<br/>ProductCode:  Product code is used to uniquely identify a product in AWS Marketplace. The product code should be the same as the one used during the publishing of a new product.<br/>
        :return: MeteringRecordId:  Metering record id.<br/>        """
        pass

    def register_usage(self, PublicKeyVersion: int, ProductCode: str, Nonce: str=None) -> RegisterUsageResult:
        r"""Paid container software products sold through AWS Marketplace must integrate with the AWS Marketplace Metering Service and call the RegisterUsage operation for software entitlement and metering. Free and BYOL products for Amazon ECS or Amazon EKS aren't required to call RegisterUsage, but you may choose to do so if you would like to receive usage data in your seller reports. The sections below explain the behavior of RegisterUsage. RegisterUsage performs two primary functions: metering and entitlement. <ul> <li>  <i>Entitlement</i>: RegisterUsage allows you to verify that the customer running your paid software is subscribed to your product on AWS Marketplace, enabling you to guard against unauthorized use. Your container image that integrates with RegisterUsage is only required to guard against unauthorized use at container startup, as such a CustomerNotSubscribedException/PlatformNotSupportedException will only be thrown on the initial call to RegisterUsage. Subsequent calls from the same Amazon ECS task instance (e.g. task-id) or Amazon EKS pod will not throw a CustomerNotSubscribedException, even if the customer unsubscribes while the Amazon ECS task or Amazon EKS pod is still running. </li> <li>  <i>Metering</i>: RegisterUsage meters software use per ECS task, per hour, or per pod for Amazon EKS with usage prorated to the second. A minimum of 1 minute of usage applies to tasks that are short lived. For example, if a customer has a 10 node Amazon ECS or Amazon EKS cluster and a service configured as a Daemon Set, then Amazon ECS or Amazon EKS will launch a task on all 10 cluster nodes and the customer will be charged: (10 * hourly_rate). Metering for software use is automatically handled by the AWS Marketplace Metering Control Plane -- your software is not required to perform any metering specific actions, other than call RegisterUsage once for metering of software use to commence. The AWS Marketplace Metering Control Plane will also continue to bill customers for running ECS tasks and Amazon EKS pods, regardless of the customers subscription state, removing the need for your software to perform entitlement checks at runtime. </li> </ul>

        :param self:
        :param Nonce:  (Optional) To scope down the registration to a specific running software instance and guard against replay attacks.<br/>PublicKeyVersion:  Public Key Version provided by AWS Marketplace<br/>ProductCode:  Product code is used to uniquely identify a product in AWS Marketplace. The product code should be the same as the one used during the publishing of a new product.<br/>
        :return: Signature:  JWT Token<br/>PublicKeyRotationTimestamp:  (Optional) Only included when public key version has expired<br/>        """
        pass

    def resolve_customer(self, RegistrationToken: str) -> ResolveCustomerResult:
        r"""ResolveCustomer is called by a SaaS application during the registration process. When a buyer visits your website during the registration process, the buyer submits a registration token through their browser. The registration token is resolved through this API to obtain a CustomerIdentifier and product code.

        :param self:
        :param RegistrationToken:  When a buyer visits your website during the registration process, the buyer submits a registration token through the browser. The registration token is resolved to obtain a CustomerIdentifier and product code.<br/>
        :return: ProductCode:  The product code is returned to confirm that the buyer is registering for your product. Subsequent BatchMeterUsage calls should be made using this product code.<br/>CustomerIdentifier:  The CustomerIdentifier is used to identify an individual customer in your application. Calls to BatchMeterUsage require CustomerIdentifiers for each UsageRecord.<br/>        """
        pass





class MigrationHub(BaseClient):
    r"""The AWS Migration Hub API methods help to obtain server and application migration status and integrate your resource-specific migration tool by providing a programmatic interface to Migration Hub. Remember that you must set your AWS Migration Hub home region before you call any of these APIs, or a <code>HomeRegionNotSetException</code> error will be returned. Also, you must make the API calls while in your home region."""


    class ListCreatedArtifactsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_created_artifacts` for valid parameters"""
            pass
    class ListDiscoveredResourcesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_discovered_resources` for valid parameters"""
            pass
    class ListMigrationTasksPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_migration_tasks` for valid parameters"""
            pass
    class ListProgressUpdateStreamsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_progress_update_streams` for valid parameters"""
            pass
    class ListApplicationStatesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_application_states` for valid parameters"""
            pass


    class AssociateCreatedArtifactRequest(Mapping):
        pass
    
    class AssociateCreatedArtifactResult(Mapping):
        pass
    
    class CreatedArtifact(Mapping):
        pass
    
    class DryRun(object):
        pass
    
    class AssociateDiscoveredResourceRequest(Mapping):
        pass
    
    class AssociateDiscoveredResourceResult(Mapping):
        pass
    
    class DiscoveredResource(Mapping):
        pass
    
    class CreateProgressUpdateStreamRequest(Mapping):
        pass
    
    class CreateProgressUpdateStreamResult(Mapping):
        pass
    
    class DeleteProgressUpdateStreamRequest(Mapping):
        pass
    
    class DeleteProgressUpdateStreamResult(Mapping):
        pass
    
    class DescribeApplicationStateRequest(Mapping):
        pass
    
    class DescribeApplicationStateResult(Mapping):
        pass
    
    class DescribeMigrationTaskRequest(Mapping):
        pass
    
    class DescribeMigrationTaskResult(Mapping):
        pass
    
    class DisassociateCreatedArtifactRequest(Mapping):
        pass
    
    class DisassociateCreatedArtifactResult(Mapping):
        pass
    
    class DisassociateDiscoveredResourceRequest(Mapping):
        pass
    
    class DisassociateDiscoveredResourceResult(Mapping):
        pass
    
    class ImportMigrationTaskRequest(Mapping):
        pass
    
    class ImportMigrationTaskResult(Mapping):
        pass
    
    class ListApplicationStatesRequest(Mapping):
        pass
    
    class ListApplicationStatesResult(Mapping):
        pass
    
    class ApplicationId(object):
        pass
    
    class ListCreatedArtifactsRequest(Mapping):
        pass
    
    class ListCreatedArtifactsResult(Mapping):
        pass
    
    class ListDiscoveredResourcesRequest(Mapping):
        pass
    
    class ListDiscoveredResourcesResult(Mapping):
        pass
    
    class ListMigrationTasksRequest(Mapping):
        pass
    
    class ListMigrationTasksResult(Mapping):
        pass
    
    class ListProgressUpdateStreamsRequest(Mapping):
        pass
    
    class ListProgressUpdateStreamsResult(Mapping):
        pass
    
    class NotifyApplicationStateRequest(Mapping):
        pass
    
    class NotifyApplicationStateResult(Mapping):
        pass
    
    class UpdateDateTime(object):
        pass
    
    class NotifyMigrationTaskStateRequest(Mapping):
        pass
    
    class NotifyMigrationTaskStateResult(Mapping):
        pass
    
    class Task(Mapping):
        pass
    
    class PutResourceAttributesRequest(Mapping):
        pass
    
    class PutResourceAttributesResult(Mapping):
        pass
    
    class ResourceAttribute(Mapping):
        pass
    
    def associate_created_artifact(self, CreatedArtifact: CreatedArtifact, MigrationTaskName: str, ProgressUpdateStream: str, DryRun: DryRun=None) -> AssociateCreatedArtifactResult:
        r"""Associates a created artifact of an AWS cloud resource, the target receiving the migration, with the migration task performed by a migration tool. This API has the following traits: <ul> <li> Migration tools can call the <code>AssociateCreatedArtifact</code> operation to indicate which AWS artifact is associated with a migration task. </li> <li> The created artifact name must be provided in ARN (Amazon Resource Name) format which will contain information about type and region; for example: <code>arn:aws:ec2:us-east-1:488216288981:image/ami-6d0ba87b</code>. </li> <li> Examples of the AWS resource behind the created artifact are, AMI's, EC2 instance, or DMS endpoint, etc. </li> </ul>

        :param self:
        :param DryRun:  Optional boolean flag to indicate whether any effect should take place. Used to test if the caller has permission to make the call.<br/>CreatedArtifact:  An ARN of the AWS resource related to the migration (e.g., AMI, EC2 instance, RDS instance, etc.) :<br/>MigrationTaskName:  Unique identifier that references the migration task. <i>Do not store personal data in this field.</i> <br/>ProgressUpdateStream:  The name of the ProgressUpdateStream. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A description that can be free-form text to record additional detail about the artifact for clarity or for later reference.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> An ARN that uniquely identifies the result of a migration task.<br/>
        :return:         """
        pass

    def associate_discovered_resource(self, DiscoveredResource: DiscoveredResource, MigrationTaskName: str, ProgressUpdateStream: str, DryRun: DryRun=None) -> AssociateDiscoveredResourceResult:
        r"""Associates a discovered resource ID from Application Discovery Service with a migration task.

        :param self:
        :param DryRun:  Optional boolean flag to indicate whether any effect should take place. Used to test if the caller has permission to make the call.<br/>DiscoveredResource:  Object representing a Resource.:<br/>MigrationTaskName:  The identifier given to the MigrationTask. <i>Do not store personal data in this field.</i> <br/>ProgressUpdateStream:  The name of the ProgressUpdateStream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A description that can be free-form text to record additional detail about the discovered resource for clarity or later reference.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConfigurationId</i> The configurationId in Application Discovery Service that uniquely identifies the on-premise resource.<br/>
        :return:         """
        pass

    def create_progress_update_stream(self, ProgressUpdateStreamName: str, DryRun: DryRun=None) -> CreateProgressUpdateStreamResult:
        r"""Creates a progress update stream which is an AWS resource used for access control as well as a namespace for migration task names that is implicitly linked to your AWS account. It must uniquely identify the migration tool as it is used for all updates made by the tool; however, it does not need to be unique for each AWS account because it is scoped to the AWS account.

        :param self:
        :param DryRun:  Optional boolean flag to indicate whether any effect should take place. Used to test if the caller has permission to make the call.<br/>ProgressUpdateStreamName:  The name of the ProgressUpdateStream. <i>Do not store personal data in this field.</i> <br/>
        :return:         """
        pass

    def delete_progress_update_stream(self, ProgressUpdateStreamName: str, DryRun: DryRun=None) -> DeleteProgressUpdateStreamResult:
        r"""Deletes a progress update stream, including all of its tasks, which was previously created as an AWS resource used for access control. This API has the following traits: <ul> <li> The only parameter needed for <code>DeleteProgressUpdateStream</code> is the stream name (same as a <code>CreateProgressUpdateStream</code> call). </li> <li> The call will return, and a background process will asynchronously delete the stream and all of its resources (tasks, associated resources, resource attributes, created artifacts). </li> <li> If the stream takes time to be deleted, it might still show up on a <code>ListProgressUpdateStreams</code> call. </li> <li>  <code>CreateProgressUpdateStream</code>, <code>ImportMigrationTask</code>, <code>NotifyMigrationTaskState</code>, and all Associate[*] APIs related to the tasks belonging to the stream will throw "InvalidInputException" if the stream of the same name is in the process of being deleted. </li> <li> Once the stream and all of its resources are deleted, <code>CreateProgressUpdateStream</code> for a stream of the same name will succeed, and that stream will be an entirely new logical resource (without any resources associated with the old stream). </li> </ul>

        :param self:
        :param DryRun:  Optional boolean flag to indicate whether any effect should take place. Used to test if the caller has permission to make the call.<br/>ProgressUpdateStreamName:  The name of the ProgressUpdateStream. <i>Do not store personal data in this field.</i> <br/>
        :return:         """
        pass

    def describe_application_state(self, ApplicationId: str) -> DescribeApplicationStateResult:
        r"""Gets the migration status of an application.

        :param self:
        :param ApplicationId:  The configurationId in Application Discovery Service that uniquely identifies the grouped application.<br/>
        :return: LastUpdatedTime:  The timestamp when the application status was last updated.<br/>ApplicationStatus:  Status of the application - Not Started, In-Progress, Complete.<br/>        """
        pass

    def describe_migration_task(self, MigrationTaskName: str, ProgressUpdateStream: str) -> DescribeMigrationTaskResult:
        r"""Retrieves a list of all attributes associated with a specific migration task.

        :param self:
        :param MigrationTaskName:  The identifier given to the MigrationTask. <i>Do not store personal data in this field.</i> <br/>ProgressUpdateStream:  The name of the ProgressUpdateStream. <br/>
        :return: MigrationTask:  Object encapsulating information about the migration task.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceAttributeList</i> Information about the resource that is being migrated. This data will be used to map the task to a resource in the Application Discovery Service repository.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdateDateTime</i> The timestamp when the task was gathered.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Task</i> Task object encapsulating task information.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Task</b>: Task object encapsulating task information.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MigrationTaskName</i> Unique identifier that references the migration task. <i>Do not store personal data in this field.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProgressUpdateStream</i> A name that identifies the vendor of the migration tool being used.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ProgressPercent</i> Indication of the percentage completion of the task.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusDetail</i> Details of task status as notified by a migration tool. A tool might use this field to provide clarifying information about the status that is unique to that tool or that explains an error state.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Status of the task - Not Started, In-Progress, Complete.<br/>        """
        pass

    def disassociate_created_artifact(self, CreatedArtifactName: str, MigrationTaskName: str, ProgressUpdateStream: str, DryRun: DryRun=None) -> DisassociateCreatedArtifactResult:
        r"""Disassociates a created artifact of an AWS resource with a migration task performed by a migration tool that was previously associated. This API has the following traits: <ul> <li> A migration user can call the <code>DisassociateCreatedArtifacts</code> operation to disassociate a created AWS Artifact from a migration task. </li> <li> The created artifact name must be provided in ARN (Amazon Resource Name) format which will contain information about type and region; for example: <code>arn:aws:ec2:us-east-1:488216288981:image/ami-6d0ba87b</code>. </li> <li> Examples of the AWS resource behind the created artifact are, AMI's, EC2 instance, or RDS instance, etc. </li> </ul>

        :param self:
        :param DryRun:  Optional boolean flag to indicate whether any effect should take place. Used to test if the caller has permission to make the call.<br/>CreatedArtifactName:  An ARN of the AWS resource related to the migration (e.g., AMI, EC2 instance, RDS instance, etc.)<br/>MigrationTaskName:  Unique identifier that references the migration task to be disassociated with the artifact. <i>Do not store personal data in this field.</i> <br/>ProgressUpdateStream:  The name of the ProgressUpdateStream. <br/>
        :return:         """
        pass

    def disassociate_discovered_resource(self, ConfigurationId: str, MigrationTaskName: str, ProgressUpdateStream: str, DryRun: DryRun=None) -> DisassociateDiscoveredResourceResult:
        r"""Disassociate an Application Discovery Service discovered resource from a migration task.

        :param self:
        :param DryRun:  Optional boolean flag to indicate whether any effect should take place. Used to test if the caller has permission to make the call.<br/>ConfigurationId:  ConfigurationId of the Application Discovery Service resource to be disassociated.<br/>MigrationTaskName:  The identifier given to the MigrationTask. <i>Do not store personal data in this field.</i> <br/>ProgressUpdateStream:  The name of the ProgressUpdateStream.<br/>
        :return:         """
        pass

    def import_migration_task(self, MigrationTaskName: str, ProgressUpdateStream: str, DryRun: DryRun=None) -> ImportMigrationTaskResult:
        r"""Registers a new migration task which represents a server, database, etc., being migrated to AWS by a migration tool. This API is a prerequisite to calling the <code>NotifyMigrationTaskState</code> API as the migration tool must first register the migration task with Migration Hub.

        :param self:
        :param DryRun:  Optional boolean flag to indicate whether any effect should take place. Used to test if the caller has permission to make the call.<br/>MigrationTaskName:  Unique identifier that references the migration task. <i>Do not store personal data in this field.</i> <br/>ProgressUpdateStream:  The name of the ProgressUpdateStream. &gt;<br/>
        :return:         """
        pass

    def list_application_states(self, ApplicationIds: List[ApplicationId]=None, NextToken: str=None, MaxResults: int=None) -> ListApplicationStatesResult:
        r"""Lists all the migration statuses for your applications. If you use the optional <code>ApplicationIds</code> parameter, only the migration statuses for those applications will be returned.

        :param self:
        :param MaxResults:  Maximum number of results to be returned per page.<br/>NextToken:  If a <code>NextToken</code> was returned by a previous call, there are more results available. To retrieve the next page of results, make the call again using the returned token in <code>NextToken</code>.<br/>ApplicationIds:  The configurationIds from the Application Discovery Service that uniquely identifies your applications.<br/>
        :return: NextToken:  If a <code>NextToken</code> was returned by a previous call, there are more results available. To retrieve the next page of results, make the call again using the returned token in <code>NextToken</code>.<br/>ApplicationStateList:  A list of Applications that exist in Application Discovery Service.<br/>        """
        pass

    def list_created_artifacts(self, MigrationTaskName: str, ProgressUpdateStream: str, NextToken: str=None, MaxResults: int=None) -> ListCreatedArtifactsResult:
        r"""Lists the created artifacts attached to a given migration task in an update stream. This API has the following traits: <ul> <li> Gets the list of the created artifacts while migration is taking place. </li> <li> Shows the artifacts created by the migration tool that was associated by the <code>AssociateCreatedArtifact</code> API.  </li> <li> Lists created artifacts in a paginated interface.  </li> </ul>

        :param self:
        :param MaxResults:  Maximum number of results to be returned per page.<br/>NextToken:  If a <code>NextToken</code> was returned by a previous call, there are more results available. To retrieve the next page of results, make the call again using the returned token in <code>NextToken</code>.<br/>MigrationTaskName:  Unique identifier that references the migration task. <i>Do not store personal data in this field.</i> <br/>ProgressUpdateStream:  The name of the ProgressUpdateStream. <br/>
        :return: CreatedArtifactList:  List of created artifacts up to the maximum number of results specified in the request.<br/>NextToken:  If there are more created artifacts than the max result, return the next token to be passed to the next call as a bookmark of where to start from.<br/>        """
        pass

    def list_discovered_resources(self, MigrationTaskName: str, ProgressUpdateStream: str, NextToken: str=None, MaxResults: int=None) -> ListDiscoveredResourcesResult:
        r"""Lists discovered resources associated with the given <code>MigrationTask</code>.

        :param self:
        :param MaxResults:  The maximum number of results returned per page.<br/>NextToken:  If a <code>NextToken</code> was returned by a previous call, there are more results available. To retrieve the next page of results, make the call again using the returned token in <code>NextToken</code>.<br/>MigrationTaskName:  The name of the MigrationTask. <i>Do not store personal data in this field.</i> <br/>ProgressUpdateStream:  The name of the ProgressUpdateStream.<br/>
        :return: DiscoveredResourceList:  Returned list of discovered resources associated with the given MigrationTask.<br/>NextToken:  If there are more discovered resources than the max result, return the next token to be passed to the next call as a bookmark of where to start from.<br/>        """
        pass

    def list_migration_tasks(self, NextToken: str=None, MaxResults: int=None, ResourceName: str=None) -> ListMigrationTasksResult:
        r"""Lists all, or filtered by resource name, migration tasks associated with the user account making this call. This API has the following traits: <ul> <li> Can show a summary list of the most recent migration tasks. </li> <li> Can show a summary list of migration tasks associated with a given discovered resource. </li> <li> Lists migration tasks in a paginated interface. </li> </ul>

        :param self:
        :param ResourceName:  Filter migration tasks by discovered resource name.<br/>MaxResults:  Value to specify how many results are returned per page.<br/>NextToken:  If a <code>NextToken</code> was returned by a previous call, there are more results available. To retrieve the next page of results, make the call again using the returned token in <code>NextToken</code>.<br/>
        :return: MigrationTaskSummaryList:  Lists the migration task's summary which includes: <code>MigrationTaskName</code>, <code>ProgressPercent</code>, <code>ProgressUpdateStream</code>, <code>Status</code>, and the <code>UpdateDateTime</code> for each task.<br/>NextToken:  If there are more migration tasks than the max result, return the next token to be passed to the next call as a bookmark of where to start from.<br/>        """
        pass

    def list_progress_update_streams(self, NextToken: str=None, MaxResults: int=None) -> ListProgressUpdateStreamsResult:
        r"""Lists progress update streams associated with the user account making this call.

        :param self:
        :param MaxResults:  Filter to limit the maximum number of results to list per page.<br/>NextToken:  If a <code>NextToken</code> was returned by a previous call, there are more results available. To retrieve the next page of results, make the call again using the returned token in <code>NextToken</code>.<br/>
        :return: NextToken:  If there are more streams created than the max result, return the next token to be passed to the next call as a bookmark of where to start from.<br/>ProgressUpdateStreamSummaryList:  List of progress update streams up to the max number of results passed in the input.<br/>        """
        pass

    def notify_application_state(self, Status: str, ApplicationId: str, UpdateDateTime: UpdateDateTime=None, DryRun: DryRun=None) -> NotifyApplicationStateResult:
        r"""Sets the migration state of an application. For a given application identified by the value passed to <code>ApplicationId</code>, its status is set or updated by passing one of three values to <code>Status</code>: <code>NOT_STARTED | IN_PROGRESS | COMPLETED</code>.

        :param self:
        :param DryRun:  Optional boolean flag to indicate whether any effect should take place. Used to test if the caller has permission to make the call.<br/>UpdateDateTime:  The timestamp when the application state changed.<br/>Status:  Status of the application - Not Started, In-Progress, Complete.<br/>ApplicationId:  The configurationId in Application Discovery Service that uniquely identifies the grouped application.<br/>
        :return:         """
        pass

    def notify_migration_task_state(self, NextUpdateSeconds: int, UpdateDateTime: UpdateDateTime, Task: Task, MigrationTaskName: str, ProgressUpdateStream: str, DryRun: DryRun=None) -> NotifyMigrationTaskStateResult:
        r"""Notifies Migration Hub of the current status, progress, or other detail regarding a migration task. This API has the following traits: <ul> <li> Migration tools will call the <code>NotifyMigrationTaskState</code> API to share the latest progress and status. </li> <li>  <code>MigrationTaskName</code> is used for addressing updates to the correct target. </li> <li>  <code>ProgressUpdateStream</code> is used for access control and to provide a namespace for each migration tool. </li> </ul>

        :param self:
        :param DryRun:  Optional boolean flag to indicate whether any effect should take place. Used to test if the caller has permission to make the call.<br/>NextUpdateSeconds:  Number of seconds after the UpdateDateTime within which the Migration Hub can expect an update. If Migration Hub does not receive an update within the specified interval, then the migration task will be considered stale.<br/>UpdateDateTime:  The timestamp when the task was gathered.<br/>Task:  Information about the task's progress and status.:<br/>MigrationTaskName:  Unique identifier that references the migration task. <i>Do not store personal data in this field.</i> <br/>ProgressUpdateStream:  The name of the ProgressUpdateStream. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProgressPercent</i> Indication of the percentage completion of the task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusDetail</i> Details of task status as notified by a migration tool. A tool might use this field to provide clarifying information about the status that is unique to that tool or that explains an error state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Status of the task - Not Started, In-Progress, Complete.<br/>
        :return:         """
        pass

    def put_resource_attributes(self, ResourceAttributeList: List[ResourceAttribute], MigrationTaskName: str, ProgressUpdateStream: str, DryRun: DryRun=None) -> PutResourceAttributesResult:
        r"""Provides identifying details of the resource being migrated so that it can be associated in the Application Discovery Service repository. This association occurs asynchronously after <code>PutResourceAttributes</code> returns. <important> <ul> <li> Keep in mind that subsequent calls to PutResourceAttributes will override previously stored attributes. For example, if it is first called with a MAC address, but later, it is desired to <i>add</i> an IP address, it will then be required to call it with <i>both</i> the IP and MAC addresses to prevent overriding the MAC address. </li> <li> Note the instructions regarding the special use case of the <a href="https://docs.aws.amazon.com/migrationhub/latest/ug/API_PutResourceAttributes.html#migrationhub-PutResourceAttributes-request-ResourceAttributeList"> <code>ResourceAttributeList</code> </a> parameter when specifying any "VM" related value. </li> </ul> </important> <note> Because this is an asynchronous call, it will always return 200, whether an association occurs or not. To confirm if an association was found based on the provided details, call <code>ListDiscoveredResources</code>. </note>

        :param self:
        :param DryRun:  Optional boolean flag to indicate whether any effect should take place. Used to test if the caller has permission to make the call.<br/>ResourceAttributeList:  Information about the resource that is being migrated. This data will be used to map the task to a resource in the Application Discovery Service repository. <note> Takes the object array of <code>ResourceAttribute</code> where the <code>Type</code> field is reserved for the following values: <code>IPV4_ADDRESS | IPV6_ADDRESS | MAC_ADDRESS | FQDN | VM_MANAGER_ID | VM_MANAGED_OBJECT_REFERENCE | VM_NAME | VM_PATH | BIOS_ID | MOTHERBOARD_SERIAL_NUMBER</code> where the identifying value can be a string up to 256 characters. </note> <important> <ul> <li> If any "VM" related value is set for a <code>ResourceAttribute</code> object, it is required that <code>VM_MANAGER_ID</code>, as a minimum, is always set. If <code>VM_MANAGER_ID</code> is not set, then all "VM" fields will be discarded and "VM" fields will not be used for matching the migration task to a server in Application Discovery Service repository. See the <a href="https://docs.aws.amazon.com/migrationhub/latest/ug/API_PutResourceAttributes.html#API_PutResourceAttributes_Examples">Example</a> section below for a use case of specifying "VM" related values. </li> <li>  If a server you are trying to match has multiple IP or MAC addresses, you should provide as many as you know in separate type/value pairs passed to the <code>ResourceAttributeList</code> parameter to maximize the chances of matching. </li> </ul> </important><br/>MigrationTaskName:  Unique identifier that references the migration task. <i>Do not store personal data in this field.</i> <br/>ProgressUpdateStream:  The name of the ProgressUpdateStream. <br/>
        :return:         """
        pass





class mgn(BaseClient):
    r"""The Application Migration Service service."""


    class DescribeJobLogItemsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_job_log_items` for valid parameters"""
            pass
    class DescribeJobsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_jobs` for valid parameters"""
            pass
    class DescribeReplicationConfigurationTemplatesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_replication_configuration_templates` for valid parameters"""
            pass
    class DescribeSourceServersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_source_servers` for valid parameters"""
            pass


    class ChangeServerLifeCycleStateRequest(Mapping):
        pass
    
    class SourceServer(Mapping):
        pass
    
    class ChangeServerLifeCycleStateSourceServerLifecycle(Mapping):
        pass
    
    class CreateReplicationConfigurationTemplateRequest(Mapping):
        pass
    
    class ReplicationConfigurationTemplate(Mapping):
        pass
    
    class Boolean(object):
        pass
    
    class PositiveInteger(object):
        pass
    
    class SecurityGroupID(object):
        pass
    
    class TagsMap(object):
        pass
    
    class DeleteJobRequest(Mapping):
        pass
    
    class DeleteJobResponse(Mapping):
        pass
    
    class DeleteReplicationConfigurationTemplateRequest(Mapping):
        pass
    
    class DeleteReplicationConfigurationTemplateResponse(Mapping):
        pass
    
    class DeleteSourceServerRequest(Mapping):
        pass
    
    class DeleteSourceServerResponse(Mapping):
        pass
    
    class DescribeJobLogItemsRequest(Mapping):
        pass
    
    class DescribeJobLogItemsResponse(Mapping):
        pass
    
    class DescribeJobsRequest(Mapping):
        pass
    
    class DescribeJobsResponse(Mapping):
        pass
    
    class DescribeJobsRequestFilters(Mapping):
        pass
    
    class DescribeReplicationConfigurationTemplatesRequest(Mapping):
        pass
    
    class DescribeReplicationConfigurationTemplatesResponse(Mapping):
        pass
    
    class ReplicationConfigurationTemplateID(object):
        pass
    
    class DescribeSourceServersRequest(Mapping):
        pass
    
    class DescribeSourceServersResponse(Mapping):
        pass
    
    class DescribeSourceServersRequestFilters(Mapping):
        pass
    
    class DisconnectFromServiceRequest(Mapping):
        pass
    
    class FinalizeCutoverRequest(Mapping):
        pass
    
    class GetLaunchConfigurationRequest(Mapping):
        pass
    
    class LaunchConfiguration(Mapping):
        pass
    
    class GetReplicationConfigurationRequest(Mapping):
        pass
    
    class ReplicationConfiguration(Mapping):
        pass
    
    class InitializeServiceRequest(Mapping):
        pass
    
    class InitializeServiceResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class MarkAsArchivedRequest(Mapping):
        pass
    
    class RetryDataReplicationRequest(Mapping):
        pass
    
    class StartCutoverRequest(Mapping):
        pass
    
    class StartCutoverResponse(Mapping):
        pass
    
    class SourceServerID(object):
        pass
    
    class StartTestRequest(Mapping):
        pass
    
    class StartTestResponse(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TerminateTargetInstancesRequest(Mapping):
        pass
    
    class TerminateTargetInstancesResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateLaunchConfigurationRequest(Mapping):
        pass
    
    class Licensing(Mapping):
        pass
    
    class UpdateReplicationConfigurationRequest(Mapping):
        pass
    
    class ReplicationConfigurationReplicatedDisk(Mapping):
        pass
    
    class UpdateReplicationConfigurationTemplateRequest(Mapping):
        pass
    
    def change_server_life_cycle_state(self, sourceServerID: str, lifeCycle: ChangeServerLifeCycleStateSourceServerLifecycle) -> SourceServer:
        r"""Allows the user to set the SourceServer.LifeCycle.state property for specific Source Server IDs to one of the following: READY_FOR_TEST or READY_FOR_CUTOVER. This command only works if the Source Server is already launchable (dataReplicationInfo.lagDuration is not null.)

        :param self:
        :param sourceServerID:  The request to change the source server migration lifecycle state by source server ID.<br/>lifeCycle:  The request to change the source server migration lifecycle state.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>state</i> The request to change the source server migration lifecycle state.<br/>
        :return: tags:  Source server Tags.<br/>sourceServerID:  Source server ID.<br/>sourceProperties:  Source server properties.:<br/>lifeCycle:  Source server lifecycle state.:<br/>launchedInstance:  Source server launched instance.:<br/>isArchived:  Source server archived status.<br/>dataReplicationInfo:  Source server data replication info.:<br/>arn:  Source server ARN.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>replicatedDisks</i> Request to query disks replicated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lagDuration</i> Request to query data replication lag durating.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>etaDateTime</i> Request to query the time when data replication will be complete.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>dataReplicationState</i> Request to query the data replication state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>dataReplicationInitiation</i> Request to query whether data replication has been initiated.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>dataReplicationInitiation</b>: Request to query whether data replication has been initiated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>dataReplicationError</i> Error in obtaining data replication info.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>dataReplicationError</b>: Error in obtaining data replication info.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>rawError</i> Error in data replication.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>error</i> Error in data replication.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>steps</i> Request to query data initiation steps.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>startDateTime</i> Request to query data initiation start date and time.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>nextAttemptDateTime</i> Request to query next data initiation date and time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>jobID</i> Configure launced instance Job ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>firstBoot</i> Configure launced instance first boot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ec2InstanceID</i> Configure launced instance EC2 ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>state</i> Lifecycle state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastTest</i> Lifecycle last Test.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>lastTest</b>: Lifecycle last Test.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastSeenByServiceDateTime</i> Lifecycle last seen date and time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastCutover</i> Lifecycle last Cutover.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>lastCutover</b>: Lifecycle last Cutover.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>firstByteDateTime</i> Lifecycle replication initiation date and time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>elapsedReplicationDuration</i> Lifecycle elapsed time and duration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>addedToServiceDateTime</i> Lifecycle added to service data and time.<br/>Lifecycle Cutover finalized date and time.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>finalized</b>: Lifecycle Cutover finalized date and time.Lifecycle last Test finlized.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>finalized</b>: Lifecycle last Test finlized.&nbsp;&nbsp;&nbsp;&nbsp; <i>recommendedInstanceType</i> Source server recommended instance type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ramBytes</i> Source server RAM in bytes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>os</i> Source server OS.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>os</b>: Source server OS.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>networkInterfaces</i> Source server network interfaces.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedDateTime</i> Source server last update date and time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>identificationHints</i> Source server identification hints.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>identificationHints</b>: Source server identification hints.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>disks</i> Source Server disks.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>cpus</i> Source Server CPUs.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>vmWareUuid</i> vmWare UUID identification hint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>hostname</i> Hostname identification hint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>fqdn</i> FQDN address identification hint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>awsInstanceID</i> AWS Instance ID identification hint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>fullString</i> OS full string.<br/>        """
        pass

    def create_replication_configuration_template(self, useDedicatedReplicationServer: Boolean, stagingAreaTags: TagsMap, stagingAreaSubnetId: str, replicationServersSecurityGroupsIDs: List[SecurityGroupID], replicationServerInstanceType: str, ebsEncryption: str, defaultLargeStagingDiskType: str, dataPlaneRouting: str, createPublicIP: Boolean, bandwidthThrottling: PositiveInteger, associateDefaultSecurityGroup: Boolean, ebsEncryptionKeyArn: str=None, tags: TagsMap=None) -> ReplicationConfigurationTemplate:
        r"""Creates a new ReplicationConfigurationTemplate.

        :param self:
        :param useDedicatedReplicationServer:  Request to use Dedicated Replication Servers during Replication Settings template creation.<br/>tags:  Request to configure tags during Replication Settings template creation.<br/>stagingAreaTags:  Request to configure Staiging Area tags during Replication Settings template creation.<br/>stagingAreaSubnetId:  Request to configure the Staging Area subnet ID during Replication Settings template creation.<br/>replicationServersSecurityGroupsIDs:  Request to configure the Replication Server Secuirity group ID during Replication Settings template creation.<br/>replicationServerInstanceType:  Request to configure the Replication Server instance type during Replication Settings template creation.<br/>ebsEncryptionKeyArn:  Request to configure an EBS enryption key during Replication Settings template creation.<br/>ebsEncryption:  Request to configure EBS enryption during Replication Settings template creation.<br/>defaultLargeStagingDiskType:  Request to configure the Staging Disk EBS volume type to "gp2" during Replication Settings template creation.<br/>dataPlaneRouting:  Request to configure data plane routing during Replication Settings template creation.<br/>createPublicIP:  Request to create Public IP during Replication Settings template creation.<br/>bandwidthThrottling:  Request to configure bandwidth throttling during Replication Settings template creation.<br/>associateDefaultSecurityGroup:  Request to associate the default Application Migration Service Security group with the Replication Settings template.<br/>
        :return: useDedicatedReplicationServer:  Replication Configuration template use Dedicated Replication Server.<br/>tags:  Replication Configuration template Tags.<br/>stagingAreaTags:  Replication Configuration template Staging Area Tags.<br/>stagingAreaSubnetId:  Replication Configuration template Staging Area subnet ID.<br/>replicationServersSecurityGroupsIDs:  Replication Configuration template server Security Groups IDs.<br/>replicationServerInstanceType:  Replication Configuration template server instance type.<br/>replicationConfigurationTemplateID:  Replication Configuration template template ID.<br/>ebsEncryptionKeyArn:  Replication Configuration template EBS encryption key ARN.<br/>ebsEncryption:  Replication Configuration template EBS encryption.<br/>defaultLargeStagingDiskType:  Replication Configuration template use dedault large Staging Disk type.<br/>dataPlaneRouting:  Replication Configuration template data plane routing.<br/>createPublicIP:  Replication Configuration template create Public IP.<br/>bandwidthThrottling:  Replication Configuration template bandwidth throtting.<br/>associateDefaultSecurityGroup:  Replication Configuration template associate default Application Migration Service Security group.<br/>arn:  Replication Configuration template ARN.<br/>        """
        pass

    def delete_job(self, jobID: str) -> DeleteJobResponse:
        r"""Deletes a single Job by ID.

        :param self:
        :param jobID:  Request to delete Job from service by Job ID.<br/>
        :return:         """
        pass

    def delete_replication_configuration_template(self, replicationConfigurationTemplateID: str) -> DeleteReplicationConfigurationTemplateResponse:
        r"""Deletes a single Replication Configuration Template by ID

        :param self:
        :param replicationConfigurationTemplateID:  Request to delete Replication Configuration Template from service by Replication Configuration Template ID.<br/>
        :return:         """
        pass

    def delete_source_server(self, sourceServerID: str) -> DeleteSourceServerResponse:
        r"""Deletes a single source server by ID.

        :param self:
        :param sourceServerID:  Request to delete Source Server from service by Server ID.<br/>
        :return:         """
        pass

    def describe_job_log_items(self, jobID: str, maxResults: int=None, nextToken: str=None) -> DescribeJobLogItemsResponse:
        r"""Retrieves detailed Job log with paging.

        :param self:
        :param nextToken:  Request to describe Job log next token.<br/>maxResults:  Request to describe Job log item maximum results.<br/>jobID:  Request to describe Job log job ID.<br/>
        :return: nextToken:  Request to describe Job log response next token.<br/>items:  Request to describe Job log response items.<br/>        """
        pass

    def describe_jobs(self, filters: DescribeJobsRequestFilters, maxResults: int=None, nextToken: str=None) -> DescribeJobsResponse:
        r"""Returns a list of Jobs. Use the JobsID and fromDate and toData filters to limit which jobs are returned. The response is sorted by creationDataTime - latest date first. Jobs are normaly created by the StartTest, StartCutover, and TerminateTargetInstances APIs. Jobs are also created by DiagnosticLaunch and TerminateDiagnosticInstances, which are APIs available only to *Support* and only used in response to relevant support tickets.

        :param self:
        :param nextToken:  Request to describe Job logby next token.<br/>maxResults:  Request to describe Job log by max results.<br/>filters:  Request to describe Job log filters.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>toDate</i> Request to describe Job log by last date.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>jobIDs</i> Request to describe Job log filters by job ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>fromDate</i> Request to describe Job log filters by date.<br/>
        :return: nextToken:  Request to describe Job response by next token.<br/>items:  Request to describe Job log items.<br/>        """
        pass

    def describe_replication_configuration_templates(self, replicationConfigurationTemplateIDs: List[ReplicationConfigurationTemplateID], maxResults: int=None, nextToken: str=None) -> DescribeReplicationConfigurationTemplatesResponse:
        r"""Lists all ReplicationConfigurationTemplates, filtered by Source Server IDs.

        :param self:
        :param replicationConfigurationTemplateIDs:  Request to describe Replication Configuration template by template IDs.<br/>nextToken:  Request to describe Replication Configuration template by next token.<br/>maxResults:  Request to describe Replication Configuration template by max results.<br/>
        :return: nextToken:  Request to describe Replication Configuration template by next token.<br/>items:  Request to describe Replication Configuration template by items.<br/>        """
        pass

    def describe_source_servers(self, filters: DescribeSourceServersRequestFilters, maxResults: int=None, nextToken: str=None) -> DescribeSourceServersResponse:
        r"""Retrieves all SourceServers or multiple SourceServers by ID.

        :param self:
        :param nextToken:  Request to filter Source Servers list by next token.<br/>maxResults:  Request to filter Source Servers list by maximum results.<br/>filters:  Request to filter Source Servers list.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>sourceServerIDs</i> Request to filter Source Servers list by Source Server ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>isArchived</i> Request to filter Source Servers list by archived.<br/>
        :return: nextToken:  Request to filter Source Servers next token.<br/>items:  Request to filter Source Servers list by item.<br/>        """
        pass

    def disconnect_from_service(self, sourceServerID: str) -> SourceServer:
        r"""Disconnects specific Source Servers from Application Migration Service. Data replication is stopped immediately. All AWS resources created by Application Migration Service for enabling the replication of these source servers will be terminated / deleted within 90 minutes. Launched Test or Cutover instances will NOT be terminated. If the agent on the source server has not been prevented from communciating with the Application Migration Service service, then it will receive a command to uninstall itself (within approximately 10 minutes). The following properties of the SourceServer will be changed immediately: dataReplicationInfo.dataReplicationState will be set to DISCONNECTED; The totalStorageBytes property for each of dataReplicationInfo.replicatedDisks will be set to zero; dataReplicationInfo.lagDuration and dataReplicationInfo.lagDurationwill be nullified.

        :param self:
        :param sourceServerID:  Request to disconnect Source Server from service by Server ID.<br/>
        :return: tags:  Source server Tags.<br/>sourceServerID:  Source server ID.<br/>sourceProperties:  Source server properties.:<br/>lifeCycle:  Source server lifecycle state.:<br/>launchedInstance:  Source server launched instance.:<br/>isArchived:  Source server archived status.<br/>dataReplicationInfo:  Source server data replication info.:<br/>arn:  Source server ARN.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>replicatedDisks</i> Request to query disks replicated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lagDuration</i> Request to query data replication lag durating.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>etaDateTime</i> Request to query the time when data replication will be complete.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>dataReplicationState</i> Request to query the data replication state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>dataReplicationInitiation</i> Request to query whether data replication has been initiated.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>dataReplicationInitiation</b>: Request to query whether data replication has been initiated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>dataReplicationError</i> Error in obtaining data replication info.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>dataReplicationError</b>: Error in obtaining data replication info.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>rawError</i> Error in data replication.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>error</i> Error in data replication.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>steps</i> Request to query data initiation steps.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>startDateTime</i> Request to query data initiation start date and time.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>nextAttemptDateTime</i> Request to query next data initiation date and time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>jobID</i> Configure launced instance Job ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>firstBoot</i> Configure launced instance first boot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ec2InstanceID</i> Configure launced instance EC2 ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>state</i> Lifecycle state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastTest</i> Lifecycle last Test.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>lastTest</b>: Lifecycle last Test.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastSeenByServiceDateTime</i> Lifecycle last seen date and time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastCutover</i> Lifecycle last Cutover.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>lastCutover</b>: Lifecycle last Cutover.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>firstByteDateTime</i> Lifecycle replication initiation date and time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>elapsedReplicationDuration</i> Lifecycle elapsed time and duration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>addedToServiceDateTime</i> Lifecycle added to service data and time.<br/>Lifecycle Cutover finalized date and time.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>finalized</b>: Lifecycle Cutover finalized date and time.Lifecycle last Test finlized.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>finalized</b>: Lifecycle last Test finlized.&nbsp;&nbsp;&nbsp;&nbsp; <i>recommendedInstanceType</i> Source server recommended instance type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ramBytes</i> Source server RAM in bytes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>os</i> Source server OS.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>os</b>: Source server OS.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>networkInterfaces</i> Source server network interfaces.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedDateTime</i> Source server last update date and time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>identificationHints</i> Source server identification hints.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>identificationHints</b>: Source server identification hints.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>disks</i> Source Server disks.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>cpus</i> Source Server CPUs.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>vmWareUuid</i> vmWare UUID identification hint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>hostname</i> Hostname identification hint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>fqdn</i> FQDN address identification hint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>awsInstanceID</i> AWS Instance ID identification hint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>fullString</i> OS full string.<br/>        """
        pass

    def finalize_cutover(self, sourceServerID: str) -> SourceServer:
        r"""Finalizes the cutover immediately for specific Source Servers. All AWS resources created by Application Migration Service for enabling the replication of these source servers will be terminated / deleted within 90 minutes. Launched Test or Cutover instances will NOT be terminated. The AWS Replication Agent will receive a command to uninstall itself (within 10 minutes). The following properties of the SourceServer will be changed immediately: dataReplicationInfo.dataReplicationState will be to DISCONNECTED; The SourceServer.lifeCycle.state will be changed to CUTOVER; The totalStorageBytes property fo each of dataReplicationInfo.replicatedDisks will be set to zero; dataReplicationInfo.lagDuration and dataReplicationInfo.lagDurationwill be nullified.

        :param self:
        :param sourceServerID:  Request to finalize Cutover by Soure Server ID.<br/>
        :return: tags:  Source server Tags.<br/>sourceServerID:  Source server ID.<br/>sourceProperties:  Source server properties.:<br/>lifeCycle:  Source server lifecycle state.:<br/>launchedInstance:  Source server launched instance.:<br/>isArchived:  Source server archived status.<br/>dataReplicationInfo:  Source server data replication info.:<br/>arn:  Source server ARN.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>replicatedDisks</i> Request to query disks replicated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lagDuration</i> Request to query data replication lag durating.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>etaDateTime</i> Request to query the time when data replication will be complete.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>dataReplicationState</i> Request to query the data replication state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>dataReplicationInitiation</i> Request to query whether data replication has been initiated.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>dataReplicationInitiation</b>: Request to query whether data replication has been initiated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>dataReplicationError</i> Error in obtaining data replication info.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>dataReplicationError</b>: Error in obtaining data replication info.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>rawError</i> Error in data replication.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>error</i> Error in data replication.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>steps</i> Request to query data initiation steps.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>startDateTime</i> Request to query data initiation start date and time.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>nextAttemptDateTime</i> Request to query next data initiation date and time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>jobID</i> Configure launced instance Job ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>firstBoot</i> Configure launced instance first boot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ec2InstanceID</i> Configure launced instance EC2 ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>state</i> Lifecycle state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastTest</i> Lifecycle last Test.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>lastTest</b>: Lifecycle last Test.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastSeenByServiceDateTime</i> Lifecycle last seen date and time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastCutover</i> Lifecycle last Cutover.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>lastCutover</b>: Lifecycle last Cutover.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>firstByteDateTime</i> Lifecycle replication initiation date and time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>elapsedReplicationDuration</i> Lifecycle elapsed time and duration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>addedToServiceDateTime</i> Lifecycle added to service data and time.<br/>Lifecycle Cutover finalized date and time.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>finalized</b>: Lifecycle Cutover finalized date and time.Lifecycle last Test finlized.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>finalized</b>: Lifecycle last Test finlized.&nbsp;&nbsp;&nbsp;&nbsp; <i>recommendedInstanceType</i> Source server recommended instance type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ramBytes</i> Source server RAM in bytes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>os</i> Source server OS.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>os</b>: Source server OS.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>networkInterfaces</i> Source server network interfaces.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedDateTime</i> Source server last update date and time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>identificationHints</i> Source server identification hints.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>identificationHints</b>: Source server identification hints.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>disks</i> Source Server disks.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>cpus</i> Source Server CPUs.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>vmWareUuid</i> vmWare UUID identification hint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>hostname</i> Hostname identification hint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>fqdn</i> FQDN address identification hint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>awsInstanceID</i> AWS Instance ID identification hint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>fullString</i> OS full string.<br/>        """
        pass

    def get_launch_configuration(self, sourceServerID: str) -> LaunchConfiguration:
        r"""Lists all LaunchConfigurations available, filtered by Source Server IDs.

        :param self:
        :param sourceServerID:  Request to get Launch Configuration information by Source Server ID.<br/>
        :return: targetInstanceTypeRightSizingMethod:  Configure launch configuration Target instance type right sizing method.<br/>sourceServerID:  Configure launch configuration Source Server ID.<br/>name:  Configure launch configuration name.<br/>licensing:  Configure launch configuration OS licensing.:<br/>launchDisposition:  Configure launch dispostion for launch configuration.<br/>ec2LaunchTemplateID:  Configure EC2 lauch configuration template ID.<br/>copyTags:  Copy Tags during Launch Configuration.<br/>copyPrivateIp:  Copy Private IP during Launch Configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>osByol</i> Configure BYOL OS licensing.<br/>        """
        pass

    def get_replication_configuration(self, sourceServerID: str) -> ReplicationConfiguration:
        r"""Lists all ReplicationConfigurations, filtered by Source Server ID.

        :param self:
        :param sourceServerID:  Request to get Replication Configuaration by Source Server ID.<br/>
        :return: useDedicatedReplicationServer:  Replication Configuration use Dedicated Replication Server.<br/>stagingAreaTags:  Replication Configuration Staging Area tags.<br/>stagingAreaSubnetId:  Replication Configuration Staging Area subnet ID.<br/>sourceServerID:  Replication Configuration Source Server ID.<br/>replicationServersSecurityGroupsIDs:  Replication Configuration Replication Server Security Group IDs.<br/>replicationServerInstanceType:  Replication Configuration Replication Server instance type.<br/>replicatedDisks:  Replication Configuration replicated disks.<br/>name:  Replication Configuration name.<br/>ebsEncryptionKeyArn:  Replication Configuration EBS encryption key ARN.<br/>ebsEncryption:  Replication Configuration EBS encryption.<br/>defaultLargeStagingDiskType:  Replication Configuration use default large Staging Disks.<br/>dataPlaneRouting:  Replication Configuration data plane routing.<br/>createPublicIP:  Replication Configuration create Public IP.<br/>bandwidthThrottling:  Replication Configuration set bandwidth throttling.<br/>associateDefaultSecurityGroup:  Replication Configuration associate default Application Migration Service Security Group.<br/>        """
        pass

    def initialize_service(self) -> InitializeServiceResponse:
        r"""Initialize Application Migration Service.

        :param self:
        :param 
        :return:         """
        pass

    def list_tags_for_resource(self, resourceArn: str) -> ListTagsForResourceResponse:
        r"""List all tags for your Application Migration Service resources.

        :param self:
        :param resourceArn:  List tags for resource request by ARN.<br/>
        :return: tags:  List tags for resource response.<br/>        """
        pass

    def mark_as_archived(self, sourceServerID: str) -> SourceServer:
        r"""Archives specific Source Servers by setting the SourceServer.isArchived property to true for specified SourceServers by ID. This command only works for SourceServers with a lifecycle.state which equals DISCONNECTED or CUTOVER.

        :param self:
        :param sourceServerID:  Mark as archived by Source Server ID.<br/>
        :return: tags:  Source server Tags.<br/>sourceServerID:  Source server ID.<br/>sourceProperties:  Source server properties.:<br/>lifeCycle:  Source server lifecycle state.:<br/>launchedInstance:  Source server launched instance.:<br/>isArchived:  Source server archived status.<br/>dataReplicationInfo:  Source server data replication info.:<br/>arn:  Source server ARN.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>replicatedDisks</i> Request to query disks replicated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lagDuration</i> Request to query data replication lag durating.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>etaDateTime</i> Request to query the time when data replication will be complete.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>dataReplicationState</i> Request to query the data replication state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>dataReplicationInitiation</i> Request to query whether data replication has been initiated.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>dataReplicationInitiation</b>: Request to query whether data replication has been initiated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>dataReplicationError</i> Error in obtaining data replication info.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>dataReplicationError</b>: Error in obtaining data replication info.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>rawError</i> Error in data replication.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>error</i> Error in data replication.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>steps</i> Request to query data initiation steps.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>startDateTime</i> Request to query data initiation start date and time.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>nextAttemptDateTime</i> Request to query next data initiation date and time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>jobID</i> Configure launced instance Job ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>firstBoot</i> Configure launced instance first boot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ec2InstanceID</i> Configure launced instance EC2 ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>state</i> Lifecycle state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastTest</i> Lifecycle last Test.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>lastTest</b>: Lifecycle last Test.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastSeenByServiceDateTime</i> Lifecycle last seen date and time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastCutover</i> Lifecycle last Cutover.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>lastCutover</b>: Lifecycle last Cutover.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>firstByteDateTime</i> Lifecycle replication initiation date and time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>elapsedReplicationDuration</i> Lifecycle elapsed time and duration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>addedToServiceDateTime</i> Lifecycle added to service data and time.<br/>Lifecycle Cutover finalized date and time.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>finalized</b>: Lifecycle Cutover finalized date and time.Lifecycle last Test finlized.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>finalized</b>: Lifecycle last Test finlized.&nbsp;&nbsp;&nbsp;&nbsp; <i>recommendedInstanceType</i> Source server recommended instance type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ramBytes</i> Source server RAM in bytes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>os</i> Source server OS.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>os</b>: Source server OS.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>networkInterfaces</i> Source server network interfaces.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedDateTime</i> Source server last update date and time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>identificationHints</i> Source server identification hints.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>identificationHints</b>: Source server identification hints.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>disks</i> Source Server disks.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>cpus</i> Source Server CPUs.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>vmWareUuid</i> vmWare UUID identification hint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>hostname</i> Hostname identification hint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>fqdn</i> FQDN address identification hint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>awsInstanceID</i> AWS Instance ID identification hint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>fullString</i> OS full string.<br/>        """
        pass

    def retry_data_replication(self, sourceServerID: str) -> SourceServer:
        r"""Causes the data replication initiation sequence to begin immediately upon next Handshake for specified SourceServer IDs, regardless of when the previous initiation started. This command will not work if the SourceServer is not stalled or is in a DISCONNECTED or STOPPED state.

        :param self:
        :param sourceServerID:  Retry data replication for Source Server ID.<br/>
        :return: tags:  Source server Tags.<br/>sourceServerID:  Source server ID.<br/>sourceProperties:  Source server properties.:<br/>lifeCycle:  Source server lifecycle state.:<br/>launchedInstance:  Source server launched instance.:<br/>isArchived:  Source server archived status.<br/>dataReplicationInfo:  Source server data replication info.:<br/>arn:  Source server ARN.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>replicatedDisks</i> Request to query disks replicated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lagDuration</i> Request to query data replication lag durating.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>etaDateTime</i> Request to query the time when data replication will be complete.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>dataReplicationState</i> Request to query the data replication state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>dataReplicationInitiation</i> Request to query whether data replication has been initiated.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>dataReplicationInitiation</b>: Request to query whether data replication has been initiated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>dataReplicationError</i> Error in obtaining data replication info.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>dataReplicationError</b>: Error in obtaining data replication info.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>rawError</i> Error in data replication.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>error</i> Error in data replication.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>steps</i> Request to query data initiation steps.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>startDateTime</i> Request to query data initiation start date and time.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>nextAttemptDateTime</i> Request to query next data initiation date and time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>jobID</i> Configure launced instance Job ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>firstBoot</i> Configure launced instance first boot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ec2InstanceID</i> Configure launced instance EC2 ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>state</i> Lifecycle state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastTest</i> Lifecycle last Test.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>lastTest</b>: Lifecycle last Test.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastSeenByServiceDateTime</i> Lifecycle last seen date and time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastCutover</i> Lifecycle last Cutover.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>lastCutover</b>: Lifecycle last Cutover.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>firstByteDateTime</i> Lifecycle replication initiation date and time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>elapsedReplicationDuration</i> Lifecycle elapsed time and duration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>addedToServiceDateTime</i> Lifecycle added to service data and time.<br/>Lifecycle Cutover finalized date and time.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>finalized</b>: Lifecycle Cutover finalized date and time.Lifecycle last Test finlized.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>finalized</b>: Lifecycle last Test finlized.&nbsp;&nbsp;&nbsp;&nbsp; <i>recommendedInstanceType</i> Source server recommended instance type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ramBytes</i> Source server RAM in bytes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>os</i> Source server OS.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>os</b>: Source server OS.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>networkInterfaces</i> Source server network interfaces.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedDateTime</i> Source server last update date and time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>identificationHints</i> Source server identification hints.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>identificationHints</b>: Source server identification hints.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>disks</i> Source Server disks.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>cpus</i> Source Server CPUs.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>vmWareUuid</i> vmWare UUID identification hint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>hostname</i> Hostname identification hint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>fqdn</i> FQDN address identification hint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>awsInstanceID</i> AWS Instance ID identification hint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>fullString</i> OS full string.<br/>        """
        pass

    def start_cutover(self, sourceServerIDs: List[SourceServerID], tags: TagsMap=None) -> StartCutoverResponse:
        r"""Launches a Cutover Instance for specific Source Servers. This command starts a LAUNCH job whose initiatedBy property is StartCutover and changes the SourceServer.lifeCycle.state property to CUTTING_OVER.

        :param self:
        :param tags:  Start Cutover by Tags.<br/>sourceServerIDs:  Start Cutover by Source Server IDs.<br/>
        :return: job:  Start Cutover Job response.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> Job type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> Tags associated with spcific Job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> Job status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>participatingServers</i> Servers participating in a specific Job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>jobID</i> Job ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>initiatedBy</i> Job initiated by field.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>endDateTime</i> Job end time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationDateTime</i> Job creation time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> the ARN of the specific Job.<br/>        """
        pass

    def start_test(self, sourceServerIDs: List[SourceServerID], tags: TagsMap=None) -> StartTestResponse:
        r"""Lauches a Test Instance for specific Source Servers. This command starts a LAUNCH job whose initiatedBy property is StartTest and changes the SourceServer.lifeCycle.state property to TESTING.

        :param self:
        :param tags:  Start Test by Tags.<br/>sourceServerIDs:  Start Test for Source Server IDs.<br/>
        :return: job:  Start Test Job response.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> Job type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> Tags associated with spcific Job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> Job status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>participatingServers</i> Servers participating in a specific Job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>jobID</i> Job ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>initiatedBy</i> Job initiated by field.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>endDateTime</i> Job end time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationDateTime</i> Job creation time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> the ARN of the specific Job.<br/>        """
        pass

    def tag_resource(self, tags: TagsMap, resourceArn: str):
        r"""Adds or overwrites only the specified tags for the specified Application Migration Service resource or resources. When you specify an existing tag key, the value is overwritten with the new value. Each resource can have a maximum of 50 tags. Each tag consists of a key and optional value.

        :param self:
        :param tags:  Tag resource by Tags.<br/>resourceArn:  Tag resource by ARN.<br/>
        :return:         """
        pass

    def terminate_target_instances(self, sourceServerIDs: List[SourceServerID], tags: TagsMap=None) -> TerminateTargetInstancesResponse:
        r"""Starts a job that terminates specific launched EC2 Test and Cutover instances. This command will not work for any Source Server with a lifecycle.state of TESTING, CUTTING_OVER, or CUTOVER.

        :param self:
        :param tags:  Terminate Target instance by Tags.<br/>sourceServerIDs:  Terminate Target instance by Source Server IDs.<br/>
        :return: job:  Terminate Target instance Job response.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> Job type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> Tags associated with spcific Job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> Job status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>participatingServers</i> Servers participating in a specific Job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>jobID</i> Job ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>initiatedBy</i> Job initiated by field.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>endDateTime</i> Job end time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationDateTime</i> Job creation time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> the ARN of the specific Job.<br/>        """
        pass

    def untag_resource(self, tagKeys: List[TagKey], resourceArn: str):
        r"""Deletes the specified set of tags from the specified set of Application Migration Service resources.

        :param self:
        :param tagKeys:  Untag resource by Keys.<br/>resourceArn:  Untag resource by ARN.<br/>
        :return:         """
        pass

    def update_launch_configuration(self, sourceServerID: str, copyPrivateIp: Boolean=None, copyTags: Boolean=None, launchDisposition: str=None, licensing: Licensing=None, name: str=None, targetInstanceTypeRightSizingMethod: str=None) -> LaunchConfiguration:
        r"""Updates multiple LaunchConfigurations by Source Server ID.

        :param self:
        :param targetInstanceTypeRightSizingMethod:  Update Launch configuration Target instance right sizing request.<br/>sourceServerID:  Update Launch configuration by Source Server ID request.<br/>name:  Update Launch configuration name request.<br/>licensing:  Update Launch configuration licensing request.:<br/>launchDisposition:  Update Launch configuration launch disposition request.<br/>copyTags:  Update Launch configuration copy Tags request.<br/>copyPrivateIp:  Update Launch configuration copy Private IP request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>osByol</i> Configure BYOL OS licensing.<br/>
        :return: targetInstanceTypeRightSizingMethod:  Configure launch configuration Target instance type right sizing method.<br/>sourceServerID:  Configure launch configuration Source Server ID.<br/>name:  Configure launch configuration name.<br/>licensing:  Configure launch configuration OS licensing.:<br/>launchDisposition:  Configure launch dispostion for launch configuration.<br/>ec2LaunchTemplateID:  Configure EC2 lauch configuration template ID.<br/>copyTags:  Copy Tags during Launch Configuration.<br/>copyPrivateIp:  Copy Private IP during Launch Configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>osByol</i> Configure BYOL OS licensing.<br/>        """
        pass

    def update_replication_configuration(self, sourceServerID: str, associateDefaultSecurityGroup: Boolean=None, bandwidthThrottling: PositiveInteger=None, createPublicIP: Boolean=None, dataPlaneRouting: str=None, defaultLargeStagingDiskType: str=None, ebsEncryption: str=None, ebsEncryptionKeyArn: str=None, name: str=None, replicatedDisks: List[ReplicationConfigurationReplicatedDisk]=None, replicationServerInstanceType: str=None, replicationServersSecurityGroupsIDs: List[SecurityGroupID]=None, stagingAreaSubnetId: str=None, stagingAreaTags: TagsMap=None, useDedicatedReplicationServer: Boolean=None) -> ReplicationConfiguration:
        r"""Allows you to update multiple ReplicationConfigurations by Source Server ID.

        :param self:
        :param useDedicatedReplicationServer:  Update replication configuration use dedicated Replication Server request.<br/>stagingAreaTags:  Update replication configuration Staging Area Tags request.<br/>stagingAreaSubnetId:  Update replication configuration Staging Area subnet request.<br/>sourceServerID:  Update replication configuration Source Server ID request.<br/>replicationServersSecurityGroupsIDs:  Update replication configuration Replication Server Security Groups IDs request.<br/>replicationServerInstanceType:  Update replication configuration Replication Server instance type request.<br/>replicatedDisks:  Update replication configuration replicated disks request.<br/>name:  Update replication configuration name request.<br/>ebsEncryptionKeyArn:  Update replication configuration EBS encryption key ARN request.<br/>ebsEncryption:  Update replication configuration EBS encryption request.<br/>defaultLargeStagingDiskType:  Update replication configuration use default large Staging Disk type request.<br/>dataPlaneRouting:  Update replication configuration data plane routing request.<br/>createPublicIP:  Update replication configuration create Public IP request.<br/>bandwidthThrottling:  Update replication configuration bandwidth throttling request.<br/>associateDefaultSecurityGroup:  Update replication configuration associate default Application Migration Service Security group request.<br/>
        :return: useDedicatedReplicationServer:  Replication Configuration use Dedicated Replication Server.<br/>stagingAreaTags:  Replication Configuration Staging Area tags.<br/>stagingAreaSubnetId:  Replication Configuration Staging Area subnet ID.<br/>sourceServerID:  Replication Configuration Source Server ID.<br/>replicationServersSecurityGroupsIDs:  Replication Configuration Replication Server Security Group IDs.<br/>replicationServerInstanceType:  Replication Configuration Replication Server instance type.<br/>replicatedDisks:  Replication Configuration replicated disks.<br/>name:  Replication Configuration name.<br/>ebsEncryptionKeyArn:  Replication Configuration EBS encryption key ARN.<br/>ebsEncryption:  Replication Configuration EBS encryption.<br/>defaultLargeStagingDiskType:  Replication Configuration use default large Staging Disks.<br/>dataPlaneRouting:  Replication Configuration data plane routing.<br/>createPublicIP:  Replication Configuration create Public IP.<br/>bandwidthThrottling:  Replication Configuration set bandwidth throttling.<br/>associateDefaultSecurityGroup:  Replication Configuration associate default Application Migration Service Security Group.<br/>        """
        pass

    def update_replication_configuration_template(self, replicationConfigurationTemplateID: str, arn: str=None, associateDefaultSecurityGroup: Boolean=None, bandwidthThrottling: PositiveInteger=None, createPublicIP: Boolean=None, dataPlaneRouting: str=None, defaultLargeStagingDiskType: str=None, ebsEncryption: str=None, ebsEncryptionKeyArn: str=None, replicationServerInstanceType: str=None, replicationServersSecurityGroupsIDs: List[SecurityGroupID]=None, stagingAreaSubnetId: str=None, stagingAreaTags: TagsMap=None, useDedicatedReplicationServer: Boolean=None) -> ReplicationConfigurationTemplate:
        r"""Updates multiple ReplicationConfigurationTemplates by ID.

        :param self:
        :param useDedicatedReplicationServer:  Update replication configuration template use dedicated Replication Server request.<br/>stagingAreaTags:  Update replication configuration template Staging Area Tags request.<br/>stagingAreaSubnetId:  Update replication configuration template Staging Area subnet ID request.<br/>replicationServersSecurityGroupsIDs:  Update replication configuration template Replication Server Security groups IDs request.<br/>replicationServerInstanceType:  Update replication configuration template Replication Server instance type request.<br/>replicationConfigurationTemplateID:  Update replication configuration template template ID request.<br/>ebsEncryptionKeyArn:  Update replication configuration template EBS encryption key ARN request.<br/>ebsEncryption:  Update replication configuration template EBS encryption request.<br/>defaultLargeStagingDiskType:  Update replication configuration template use default large Staging Disk type request.<br/>dataPlaneRouting:  Update replication configuration template data plane routing request.<br/>createPublicIP:  Update replication configuration template create Public IP request.<br/>bandwidthThrottling:  Update replication configuration template bandwidth throttling request.<br/>associateDefaultSecurityGroup:  Update replication configuration template associate default Application Migration Service Security group request.<br/>arn:  Update replication configuration template ARN request.<br/>
        :return: useDedicatedReplicationServer:  Replication Configuration template use Dedicated Replication Server.<br/>tags:  Replication Configuration template Tags.<br/>stagingAreaTags:  Replication Configuration template Staging Area Tags.<br/>stagingAreaSubnetId:  Replication Configuration template Staging Area subnet ID.<br/>replicationServersSecurityGroupsIDs:  Replication Configuration template server Security Groups IDs.<br/>replicationServerInstanceType:  Replication Configuration template server instance type.<br/>replicationConfigurationTemplateID:  Replication Configuration template template ID.<br/>ebsEncryptionKeyArn:  Replication Configuration template EBS encryption key ARN.<br/>ebsEncryption:  Replication Configuration template EBS encryption.<br/>defaultLargeStagingDiskType:  Replication Configuration template use dedault large Staging Disk type.<br/>dataPlaneRouting:  Replication Configuration template data plane routing.<br/>createPublicIP:  Replication Configuration template create Public IP.<br/>bandwidthThrottling:  Replication Configuration template bandwidth throtting.<br/>associateDefaultSecurityGroup:  Replication Configuration template associate default Application Migration Service Security group.<br/>arn:  Replication Configuration template ARN.<br/>        """
        pass





class MigrationHubConfig(BaseClient):
    r"""The AWS Migration Hub home region APIs are available specifically for working with your Migration Hub home region. You can use these APIs to determine a home region, as well as to create and work with controls that describe the home region. <ul> <li> You must make API calls for write actions (create, notify, associate, disassociate, import, or put) while in your home region, or a <code>HomeRegionNotSetException</code> error is returned. </li> <li> API calls for read actions (list, describe, stop, and delete) are permitted outside of your home region. </li> <li> If you call a write API outside the home region, an <code>InvalidInputException</code> is returned. </li> <li> You can call <code>GetHomeRegion</code> action to obtain the account's Migration Hub home region. </li> </ul> For specific API usage, see the sections that follow in this AWS Migration Hub Home Region API reference. """




    class CreateHomeRegionControlRequest(Mapping):
        pass
    
    class CreateHomeRegionControlResult(Mapping):
        pass
    
    class Target(Mapping):
        pass
    
    class DryRun(object):
        pass
    
    class DescribeHomeRegionControlsRequest(Mapping):
        pass
    
    class DescribeHomeRegionControlsResult(Mapping):
        pass
    
    class GetHomeRegionRequest(Mapping):
        pass
    
    class GetHomeRegionResult(Mapping):
        pass
    
    def create_home_region_control(self, Target: Target, HomeRegion: str, DryRun: DryRun=None) -> CreateHomeRegionControlResult:
        r"""This API sets up the home region for the calling account only.

        :param self:
        :param DryRun:  Optional Boolean flag to indicate whether any effect should take place. It tests whether the caller has permission to make the call.<br/>Target:  The account for which this command sets up a home region control. The <code>Target</code> is always of type <code>ACCOUNT</code>.:<br/>HomeRegion:  The name of the home region of the calling account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The <code>TargetID</code> is a 12-character identifier of the <code>ACCOUNT</code> for which the control was created. (This must be the current account.) <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The target type is always an <code>ACCOUNT</code>.<br/>
        :return: HomeRegionControl:  This object is the <code>HomeRegionControl</code> object that's returned by a successful call to <code>CreateHomeRegionControl</code>.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequestedTime</i> A timestamp representing the time when the customer called <code>CreateHomeregionControl</code> and set the home region for the account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Target</i> The target parameter specifies the identifier to which the home region is applied, which is always an <code>ACCOUNT</code>. It applies the home region to the current <code>ACCOUNT</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Target</b>: The target parameter specifies the identifier to which the home region is applied, which is always an <code>ACCOUNT</code>. It applies the home region to the current <code>ACCOUNT</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HomeRegion</i> The AWS Region that's been set as home region. For example, "us-west-2" or "eu-central-1" are valid home regions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ControlId</i> A unique identifier that's generated for each home region control. It's always a string that begins with "hrc-" followed by 12 lowercase letters and numbers.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The <code>TargetID</code> is a 12-character identifier of the <code>ACCOUNT</code> for which the control was created. (This must be the current account.) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The target type is always an <code>ACCOUNT</code>.<br/>        """
        pass

    def describe_home_region_controls(self, ControlId: str=None, HomeRegion: str=None, Target: Target=None, MaxResults: int=None, NextToken: str=None) -> DescribeHomeRegionControlsResult:
        r"""This API permits filtering on the <code>ControlId</code> and <code>HomeRegion</code> fields.

        :param self:
        :param NextToken:  If a <code>NextToken</code> was returned by a previous call, more results are available. To retrieve the next page of results, make the call again using the returned token in <code>NextToken</code>.<br/>MaxResults:  The maximum number of filtering results to display per page. <br/>Target:  The target parameter specifies the identifier to which the home region is applied, which is always of type <code>ACCOUNT</code>. It applies the home region to the current <code>ACCOUNT</code>.:<br/>HomeRegion:  The name of the home region you'd like to view.<br/>ControlId:  The <code>ControlID</code> is a unique identifier string of your <code>HomeRegionControl</code> object.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The <code>TargetID</code> is a 12-character identifier of the <code>ACCOUNT</code> for which the control was created. (This must be the current account.) <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The target type is always an <code>ACCOUNT</code>.<br/>
        :return: NextToken:  If a <code>NextToken</code> was returned by a previous call, more results are available. To retrieve the next page of results, make the call again using the returned token in <code>NextToken</code>.<br/>HomeRegionControls:  An array that contains your <code>HomeRegionControl</code> objects.<br/>        """
        pass

    def get_home_region(self) -> GetHomeRegionResult:
        r"""Returns the calling account’s home region, if configured. This API is used by other AWS services to determine the regional endpoint for calling AWS Application Discovery Service and Migration Hub. You must call <code>GetHomeRegion</code> at least once before you call any other AWS Application Discovery Service and AWS Migration Hub APIs, to obtain the account's Migration Hub home region.

        :param self:
        :param 
        :return: HomeRegion:  The name of the home region of the calling account.<br/>        """
        pass





class Mobile(BaseClient):
    r""" AWS Mobile Service provides mobile app and website developers with capabilities required to configure AWS resources and bootstrap their developer desktop projects with the necessary SDKs, constants, tools and samples to make use of those resources. """


    class ListBundlesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_bundles` for valid parameters"""
            pass
    class ListProjectsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_projects` for valid parameters"""
            pass


    class CreateProjectRequest(Mapping):
        pass
    
    class CreateProjectResult(Mapping):
        pass
    
    class Contents(object):
        pass
    
    class DeleteProjectRequest(Mapping):
        pass
    
    class DeleteProjectResult(Mapping):
        pass
    
    class DescribeBundleRequest(Mapping):
        pass
    
    class DescribeBundleResult(Mapping):
        pass
    
    class DescribeProjectRequest(Mapping):
        pass
    
    class DescribeProjectResult(Mapping):
        pass
    
    class Boolean(object):
        pass
    
    class ExportBundleRequest(Mapping):
        pass
    
    class ExportBundleResult(Mapping):
        pass
    
    class ExportProjectRequest(Mapping):
        pass
    
    class ExportProjectResult(Mapping):
        pass
    
    class ListBundlesRequest(Mapping):
        pass
    
    class ListBundlesResult(Mapping):
        pass
    
    class ListProjectsRequest(Mapping):
        pass
    
    class ListProjectsResult(Mapping):
        pass
    
    class UpdateProjectRequest(Mapping):
        pass
    
    class UpdateProjectResult(Mapping):
        pass
    
    def create_project(self, name: str=None, region: str=None, contents: Contents=None, snapshotId: str=None) -> CreateProjectResult:
        r""" Creates an AWS Mobile Hub project. 

        :param self:
        :param snapshotId:   Unique identifier for an exported snapshot of project configuration. This snapshot identifier is included in the share URL when a project is exported. <br/>contents:   ZIP or YAML file which contains configuration settings to be used when creating the project. This may be the contents of the file downloaded from the URL provided in an export project operation. <br/>region:   Default region where project resources should be created. <br/>name:   Name of the project. <br/>
        :return: details:   Detailed information about the created AWS Mobile Hub project. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resources</i>  List of AWS resources associated with a project. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>consoleUrl</i>  Website URL for this project in the AWS Mobile Hub console. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedDate</i>  Date of the last modification of the project. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdDate</i>  Date the project was created. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>state</i>  Synchronization state for a project. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>region</i>  Default region to use for AWS resource creation in the AWS Mobile Hub project. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>projectId</i>  Unique project identifier. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i>  Name of the project. <br/>        """
        pass

    def delete_project(self, projectId: str) -> DeleteProjectResult:
        r""" Delets a project in AWS Mobile Hub. 

        :param self:
        :param projectId:   Unique project identifier. <br/>
        :return: orphanedResources:   Resources which were not deleted, due to a risk of losing potentially important data or files. <br/>deletedResources:   Resources which were deleted. <br/>        """
        pass

    def describe_bundle(self, bundleId: str) -> DescribeBundleResult:
        r""" Get the bundle details for the requested bundle id. 

        :param self:
        :param bundleId:   Unique bundle identifier. <br/>
        :return: details:   The details of the bundle. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>availablePlatforms</i>  Developer desktop or mobile app or website platforms. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>iconUrl</i>  Icon for the download bundle. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i>  Description of the download bundle. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i>  Version of the download bundle. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>title</i>  Title of the download bundle. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>bundleId</i>  Unique bundle identifier. <br/>        """
        pass

    def describe_project(self, projectId: str, syncFromResources: Boolean=None) -> DescribeProjectResult:
        r""" Gets details about a project in AWS Mobile Hub. 

        :param self:
        :param syncFromResources:   If set to true, causes AWS Mobile Hub to synchronize information from other services, e.g., update state of AWS CloudFormation stacks in the AWS Mobile Hub project. <br/>projectId:   Unique project identifier. <br/>
        :return: details:   Detailed information about an AWS Mobile Hub project. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resources</i>  List of AWS resources associated with a project. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>consoleUrl</i>  Website URL for this project in the AWS Mobile Hub console. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedDate</i>  Date of the last modification of the project. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdDate</i>  Date the project was created. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>state</i>  Synchronization state for a project. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>region</i>  Default region to use for AWS resource creation in the AWS Mobile Hub project. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>projectId</i>  Unique project identifier. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i>  Name of the project. <br/>        """
        pass

    def export_bundle(self, bundleId: str, projectId: str=None, platform: str=None) -> ExportBundleResult:
        r""" Generates customized software development kit (SDK) and or tool packages used to integrate mobile web or mobile app clients with backend AWS resources. 

        :param self:
        :param platform:   Developer desktop or target application platform. <br/>projectId:   Unique project identifier. <br/>bundleId:   Unique bundle identifier. <br/>
        :return: downloadUrl:   URL which contains the custom-generated SDK and tool packages used to integrate the client mobile app or web app with the AWS resources created by the AWS Mobile Hub project. <br/>        """
        pass

    def export_project(self, projectId: str) -> ExportProjectResult:
        r""" Exports project configuration to a snapshot which can be downloaded and shared. Note that mobile app push credentials are encrypted in exported projects, so they can only be shared successfully within the same AWS account. 

        :param self:
        :param projectId:   Unique project identifier. <br/>
        :return: snapshotId:   Unique identifier for the exported snapshot of the project configuration. This snapshot identifier is included in the share URL. <br/>shareUrl:   URL which can be shared to allow other AWS users to create their own project in AWS Mobile Hub with the same configuration as the specified project. This URL pertains to a snapshot in time of the project configuration that is created when this API is called. If you want to share additional changes to your project configuration, then you will need to create and share a new snapshot by calling this method again. <br/>downloadUrl:   URL which can be used to download the exported project configuation file(s). <br/>        """
        pass

    def list_bundles(self, maxResults: int=None, nextToken: str=None) -> ListBundlesResult:
        r""" List all available bundles. 

        :param self:
        :param nextToken:   Pagination token. Set to null to start listing bundles from start. If non-null pagination token is returned in a result, then pass its value in here in another request to list more bundles. <br/>maxResults:   Maximum number of records to list in a single response. <br/>
        :return: nextToken:   Pagination token. If non-null pagination token is returned in a result, then pass its value in another request to fetch more entries. <br/>bundleList:   A list of bundles. <br/>        """
        pass

    def list_projects(self, maxResults: int=None, nextToken: str=None) -> ListProjectsResult:
        r""" Lists projects in AWS Mobile Hub. 

        :param self:
        :param nextToken:   Pagination token. Set to null to start listing projects from start. If non-null pagination token is returned in a result, then pass its value in here in another request to list more projects. <br/>maxResults:   Maximum number of records to list in a single response. <br/>
        :return: nextToken:   Pagination token. Set to null to start listing records from start. If non-null pagination token is returned in a result, then pass its value in here in another request to list more entries. <br/>projects:   List of projects. <br/>        """
        pass

    def update_project(self, projectId: str, contents: Contents=None) -> UpdateProjectResult:
        r""" Update an existing project. 

        :param self:
        :param projectId:   Unique project identifier. <br/>contents:   ZIP or YAML file which contains project configuration to be updated. This should be the contents of the file downloaded from the URL provided in an export project operation. <br/>
        :return: details:   Detailed information about the updated AWS Mobile Hub project. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resources</i>  List of AWS resources associated with a project. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>consoleUrl</i>  Website URL for this project in the AWS Mobile Hub console. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedDate</i>  Date of the last modification of the project. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdDate</i>  Date the project was created. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>state</i>  Synchronization state for a project. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>region</i>  Default region to use for AWS resource creation in the AWS Mobile Hub project. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>projectId</i>  Unique project identifier. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i>  Name of the project. <br/>        """
        pass





class MQ(BaseClient):
    r"""Amazon MQ is a managed message broker service for Apache ActiveMQ and RabbitMQ that makes it easy to set up and operate message brokers in the cloud. A message broker allows software applications and components to communicate using various programming languages, operating systems, and formal messaging protocols."""


    class ListBrokersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_brokers` for valid parameters"""
            pass


    class CreateBrokerRequest(Mapping):
        pass
    
    class CreateBrokerResponse(Mapping):
        pass
    
    class __boolean(object):
        pass
    
    class ConfigurationId(Mapping):
        pass
    
    class EncryptionOptions(Mapping):
        pass
    
    class LdapServerMetadataInput(Mapping):
        pass
    
    class Logs(Mapping):
        pass
    
    class WeeklyStartTime(Mapping):
        pass
    
    class __string(object):
        pass
    
    class __mapOf__string(object):
        pass
    
    class User(Mapping):
        pass
    
    class CreateConfigurationRequest(Mapping):
        pass
    
    class CreateConfigurationResponse(Mapping):
        pass
    
    class CreateTagsRequest(Mapping):
        pass
    
    class CreateUserRequest(Mapping):
        pass
    
    class CreateUserResponse(Mapping):
        pass
    
    class DeleteBrokerRequest(Mapping):
        pass
    
    class DeleteBrokerResponse(Mapping):
        pass
    
    class DeleteTagsRequest(Mapping):
        pass
    
    class DeleteUserRequest(Mapping):
        pass
    
    class DeleteUserResponse(Mapping):
        pass
    
    class DescribeBrokerRequest(Mapping):
        pass
    
    class DescribeBrokerResponse(Mapping):
        pass
    
    class DescribeBrokerEngineTypesRequest(Mapping):
        pass
    
    class DescribeBrokerEngineTypesResponse(Mapping):
        pass
    
    class DescribeBrokerInstanceOptionsRequest(Mapping):
        pass
    
    class DescribeBrokerInstanceOptionsResponse(Mapping):
        pass
    
    class DescribeConfigurationRequest(Mapping):
        pass
    
    class DescribeConfigurationResponse(Mapping):
        pass
    
    class DescribeConfigurationRevisionRequest(Mapping):
        pass
    
    class DescribeConfigurationRevisionResponse(Mapping):
        pass
    
    class DescribeUserRequest(Mapping):
        pass
    
    class DescribeUserResponse(Mapping):
        pass
    
    class ListBrokersRequest(Mapping):
        pass
    
    class ListBrokersResponse(Mapping):
        pass
    
    class ListConfigurationRevisionsRequest(Mapping):
        pass
    
    class ListConfigurationRevisionsResponse(Mapping):
        pass
    
    class ListConfigurationsRequest(Mapping):
        pass
    
    class ListConfigurationsResponse(Mapping):
        pass
    
    class ListTagsRequest(Mapping):
        pass
    
    class ListTagsResponse(Mapping):
        pass
    
    class ListUsersRequest(Mapping):
        pass
    
    class ListUsersResponse(Mapping):
        pass
    
    class RebootBrokerRequest(Mapping):
        pass
    
    class RebootBrokerResponse(Mapping):
        pass
    
    class UpdateBrokerRequest(Mapping):
        pass
    
    class UpdateBrokerResponse(Mapping):
        pass
    
    class UpdateConfigurationRequest(Mapping):
        pass
    
    class UpdateConfigurationResponse(Mapping):
        pass
    
    class UpdateUserRequest(Mapping):
        pass
    
    class UpdateUserResponse(Mapping):
        pass
    
    def create_broker(self, Users: List[User], PubliclyAccessible: __boolean, HostInstanceType: str, EngineVersion: str, EngineType: str, DeploymentMode: str, BrokerName: str, AutoMinorVersionUpgrade: __boolean, AuthenticationStrategy: str=None, Configuration: ConfigurationId=None, CreatorRequestId: str=None, EncryptionOptions: EncryptionOptions=None, LdapServerMetadata: LdapServerMetadataInput=None, Logs: Logs=None, MaintenanceWindowStartTime: WeeklyStartTime=None, SecurityGroups: List[__string]=None, StorageType: str=None, SubnetIds: List[__string]=None, Tags: __mapOf__string=None) -> CreateBrokerResponse:
        r"""Creates a broker. Note: This API is asynchronous. To create a broker, you must either use the AmazonMQFullAccess IAM policy or include the following EC2 permissions in your IAM policy. <ul><li>ec2:CreateNetworkInterface This permission is required to allow Amazon MQ to create an elastic network interface (ENI) on behalf of your account.</li> <li>ec2:CreateNetworkInterfacePermission This permission is required to attach the ENI to the broker instance.</li> <li>ec2:DeleteNetworkInterface</li> <li>ec2:DeleteNetworkInterfacePermission</li> <li>ec2:DetachNetworkInterface</li> <li>ec2:DescribeInternetGateways</li> <li>ec2:DescribeNetworkInterfaces</li> <li>ec2:DescribeNetworkInterfacePermissions</li> <li>ec2:DescribeRouteTables</li> <li>ec2:DescribeSecurityGroups</li> <li>ec2:DescribeSubnets</li> <li>ec2:DescribeVpcs</li></ul> For more information, see <a href="https://docs.aws.amazon.com//amazon-mq/latest/developer-guide/amazon-mq-setting-up.html#create-iam-user">Create an IAM User and Get Your AWS Credentials</a> and <a href="https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/connecting-to-amazon-mq.html#never-modify-delete-elastic-network-interface">Never Modify or Delete the Amazon MQ Elastic Network Interface</a> in the <i>Amazon MQ Developer Guide</i>.

        :param self:
        :param Users:  Required. The list of broker users (persons or applications) who can access queues and topics. This value can contain only alphanumeric characters, dashes, periods, underscores, and tildes (- . _ ~). This value must be 2-100 characters long. <important><title>Amazon MQ for RabbitMQ</title> When you create an Amazon MQ for RabbitMQ broker, one and only one administrative user is accepted and created when a broker is first provisioned. All subsequent broker users are created by making RabbitMQ API calls directly to brokers or via the RabbitMQ web console.</important><br/>Tags:  Create tags when creating the broker.<br/>SubnetIds:  The list of groups that define which subnets and IP ranges the broker can use from different Availability Zones. If you specify more than one subnet, the subnets must be in different Availability Zones. Amazon MQ will not be able to create VPC endpoints for your broker with multiple subnets in the same Availability Zone. A SINGLE_INSTANCE deployment requires one subnet (for example, the default subnet). An ACTIVE_STANDBY_MULTI_AZ Amazon MQ for ActiveMQ deployment requires two subnets. A CLUSTER_MULTI_AZ Amazon MQ for RabbitMQ deployment has no subnet requirements when deployed with public accessibility. Deployment without public accessibility requires at least one subnet. <important>If you specify subnets in a <a href="https://docs.aws.amazon.com/vpc/latest/userguide/vpc-sharing.html">shared VPC</a> for a RabbitMQ broker, the associated VPC to which the specified subnets belong must be owned by your AWS account. Amazon MQ will not be able to create VPC endpoints in VPCs that are not owned by your AWS account.</important><br/>StorageType:  The broker's storage type.<br/>SecurityGroups:  The list of rules (1 minimum, 125 maximum) that authorize connections to brokers.<br/>PubliclyAccessible:  Enables connections from applications outside of the VPC that hosts the broker's subnets. Set to false by default, if no value is provided.<br/>MaintenanceWindowStartTime:  The parameters that determine the WeeklyStartTime.:<br/>Logs:  Enables Amazon CloudWatch logging for brokers.:<br/>LdapServerMetadata:  Optional. The metadata of the LDAP server used to authenticate and authorize connections to the broker. Does not apply to RabbitMQ brokers.:<br/>HostInstanceType:  Required. The broker's instance type.<br/>EngineVersion:  Required. The broker engine's version. For a list of supported engine versions, see <a href="https://docs.aws.amazon.com//amazon-mq/latest/developer-guide/broker-engine.html">Supported engines</a>.<br/>EngineType:  Required. The type of broker engine. Currently, Amazon MQ supports ACTIVEMQ and RABBITMQ.<br/>EncryptionOptions:  Encryption options for the broker. Does not apply to RabbitMQ brokers.:<br/>DeploymentMode:  Required. The broker's deployment mode.<br/>CreatorRequestId:  The unique ID that the requester receives for the created broker. Amazon MQ passes your ID with the API action. Note: We recommend using a Universally Unique Identifier (UUID) for the creatorRequestId. You may omit the creatorRequestId if your application doesn't require idempotency.<br/>Configuration:  A list of information about the configuration.:<br/>BrokerName:  Required. The broker's name. This value must be unique in your AWS account, 1-50 characters long, must contain only letters, numbers, dashes, and underscores, and must not contain white spaces, brackets, wildcard characters, or special characters.<br/>AutoMinorVersionUpgrade:  Enables automatic upgrades to new minor versions for brokers, as new versions are released and supported by Amazon MQ. Automatic upgrades occur during the scheduled maintenance window of the broker or after a manual broker reboot. Set to true by default, if no value is specified.<br/>AuthenticationStrategy:  Optional. The authentication strategy used to secure the broker. The default is SIMPLE.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Revision</i> The revision number of the configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> Required. The unique ID that Amazon MQ generates for the configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UseAwsOwnedKey</i> Enables the use of an AWS owned CMK using AWS Key Management Service (KMS). Set to true by default, if no value is provided, for example, for RabbitMQ brokers.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The customer master key (CMK) to use for the AWS Key Management Service (KMS). This key is used to encrypt your data at rest. If not provided, Amazon MQ will use a default CMK to encrypt your data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserSearchSubtree</i> The directory search scope for the user. If set to true, scope is to search the entire subtree.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserSearchMatching</i> The LDAP search filter used to find users within the userBase. The client's username is substituted into the {0} placeholder in the search filter. For example, if this option is set to (uid={0}) and the received username is janedoe, the search filter becomes (uid=janedoe) after string substitution. It will result in matching an entry like uid=janedoe, ou=Users,ou=corp, dc=corp, dc=example,
                  dc=com.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserRoleName</i> Specifies the name of the LDAP attribute for the user group membership.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserBase</i> Select a particular subtree of the directory information tree (DIT) to search for user entries. The subtree is specified by a DN, which specifies the base node of the subtree. For example, by setting this option to ou=Users,ou=corp, dc=corp,
                  dc=example, dc=com, the search for user entries is restricted to the subtree beneath ou=Users, ou=corp, dc=corp, dc=example, dc=com.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceAccountUsername</i> Service account username. A service account is an account in your LDAP server that has access to initiate a connection. For example, cn=admin,dc=corp, dc=example,
                  dc=com.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceAccountPassword</i> Service account password. A service account is an account in your LDAP server that has access to initiate a connection. For example, cn=admin,dc=corp, dc=example,
                  dc=com.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleSearchSubtree</i> The directory search scope for the role. If set to true, scope is to search the entire subtree.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleSearchMatching</i> The LDAP search filter used to find roles within the roleBase. The distinguished name of the user matched by userSearchMatching is substituted into the {0} placeholder in the search filter. The client's username is substituted into the {1} placeholder. For example, if you set this option to (member=uid={1})for the user janedoe, the search filter becomes (member=uid=janedoe) after string substitution. It matches all role entries that have a member attribute equal to uid=janedoe under the subtree selected by the roleBase.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleName</i> Specifies the LDAP attribute that identifies the group name attribute in the object returned from the group membership query.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleBase</i> The distinguished name of the node in the directory information tree (DIT) to search for roles or groups. For example, ou=group, ou=corp, dc=corp,
                  dc=example, dc=com.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Hosts</i> Specifies the location of the LDAP server such as AWS Directory Service for Microsoft Active Directory . Optional failover server.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>General</i> Enables general logging.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Audit</i> Enables audit logging. Every user management action made using JMX or the ActiveMQ Web Console is logged. Does not apply to RabbitMQ brokers.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TimeZone</i> The time zone, UTC by default, in either the Country/City format, or the UTC offset format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TimeOfDay</i> Required. The time, in 24-hour format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DayOfWeek</i> Required. The day of the week.<br/>
        :return: BrokerId:  The unique ID that Amazon MQ generates for the broker.<br/>BrokerArn:  The broker's Amazon Resource Name (ARN).<br/>        """
        pass

    def create_configuration(self, Name: str, EngineVersion: str, EngineType: str, AuthenticationStrategy: str=None, Tags: __mapOf__string=None) -> CreateConfigurationResponse:
        r"""Creates a new configuration for the specified configuration name. Amazon MQ uses the default configuration (the engine type and version).

        :param self:
        :param Tags:  Create tags when creating the configuration.<br/>Name:  Required. The name of the configuration. This value can contain only alphanumeric characters, dashes, periods, underscores, and tildes (- . _ ~). This value must be 1-150 characters long.<br/>EngineVersion:  Required. The broker engine's version. For a list of supported engine versions, see <a href="https://docs.aws.amazon.com//amazon-mq/latest/developer-guide/broker-engine.html">Supported engines</a>.<br/>EngineType:  Required. The type of broker engine. Currently, Amazon MQ supports ACTIVEMQ and RABBITMQ.<br/>AuthenticationStrategy:  Optional. The authentication strategy associated with the configuration. The default is SIMPLE.<br/>
        :return: Name:  Required. The name of the configuration. This value can contain only alphanumeric characters, dashes, periods, underscores, and tildes (- . _ ~). This value must be 1-150 characters long.<br/>LatestRevision:  The latest revision of the configuration.:<br/>Id:  Required. The unique ID that Amazon MQ generates for the configuration.<br/>Created:  Required. The date and time of the configuration.<br/>AuthenticationStrategy:  Optional. The authentication strategy associated with the configuration. The default is SIMPLE.<br/>Arn:  Required. The Amazon Resource Name (ARN) of the configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Revision</i> Required. The revision number of the configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the configuration revision.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Created</i> Required. The date and time of the configuration revision.<br/>        """
        pass

    def create_tags(self, ResourceArn: str, Tags: __mapOf__string=None):
        r"""Add a tag to a resource.

        :param self:
        :param Tags:  The key-value pair for the resource tag.<br/>ResourceArn:  The Amazon Resource Name (ARN) of the resource tag.<br/>
        :return:         """
        pass

    def create_user(self, Username: str, Password: str, BrokerId: str, ConsoleAccess: __boolean=None, Groups: List[__string]=None) -> CreateUserResponse:
        r"""Creates an ActiveMQ user.

        :param self:
        :param Username:  The username of the ActiveMQ user. This value can contain only alphanumeric characters, dashes, periods, underscores, and tildes (- . _ ~). This value must be 2-100 characters long.<br/>Password:  Required. The password of the user. This value must be at least 12 characters long, must contain at least 4 unique characters, and must not contain commas, colons, or equal signs (,:=).<br/>Groups:  The list of groups (20 maximum) to which the ActiveMQ user belongs. This value can contain only alphanumeric characters, dashes, periods, underscores, and tildes (- . _ ~). This value must be 2-100 characters long.<br/>ConsoleAccess:  Enables access to the ActiveMQ Web Console for the ActiveMQ user.<br/>BrokerId:  The unique ID that Amazon MQ generates for the broker.<br/>
        :return:         """
        pass

    def delete_broker(self, BrokerId: str) -> DeleteBrokerResponse:
        r"""Deletes a broker. Note: This API is asynchronous.

        :param self:
        :param BrokerId:  The unique ID that Amazon MQ generates for the broker.<br/>
        :return: BrokerId:  The unique ID that Amazon MQ generates for the broker.<br/>        """
        pass

    def delete_tags(self, TagKeys: List[__string], ResourceArn: str):
        r"""Removes a tag from a resource.

        :param self:
        :param TagKeys:  An array of tag keys to delete<br/>ResourceArn:  The Amazon Resource Name (ARN) of the resource tag.<br/>
        :return:         """
        pass

    def delete_user(self, Username: str, BrokerId: str) -> DeleteUserResponse:
        r"""Deletes an ActiveMQ user.

        :param self:
        :param Username:  The username of the ActiveMQ user. This value can contain only alphanumeric characters, dashes, periods, underscores, and tildes (- . _ ~). This value must be 2-100 characters long.<br/>BrokerId:  The unique ID that Amazon MQ generates for the broker.<br/>
        :return:         """
        pass

    def describe_broker(self, BrokerId: str) -> DescribeBrokerResponse:
        r"""Returns information about the specified broker.

        :param self:
        :param BrokerId:  The unique ID that Amazon MQ generates for the broker.<br/>
        :return: Users:  The list of all broker usernames for the specified broker.<br/>Tags:  The list of all tags associated with this broker.<br/>SubnetIds:  The list of groups that define which subnets and IP ranges the broker can use from different Availability Zones.<br/>StorageType:  The broker's storage type.<br/>SecurityGroups:  The list of rules (1 minimum, 125 maximum) that authorize connections to brokers.<br/>PubliclyAccessible:  Enables connections from applications outside of the VPC that hosts the broker's subnets.<br/>PendingSecurityGroups:  The list of pending security groups to authorize connections to brokers.<br/>PendingLdapServerMetadata:  The metadata of the LDAP server that will be used to authenticate and authorize connections to the broker after it is rebooted.:<br/>PendingHostInstanceType:  The broker's host instance type to upgrade to. For a list of supported instance types, see <a href="https://docs.aws.amazon.com//amazon-mq/latest/developer-guide/broker.html#broker-instance-types">Broker instance types</a>.<br/>PendingEngineVersion:  The broker engine version to upgrade to. For a list of supported engine versions, see <a href="https://docs.aws.amazon.com//amazon-mq/latest/developer-guide/broker-engine.html">Supported engines</a>.<br/>PendingAuthenticationStrategy:  The authentication strategy that will be applied when the broker is rebooted. The default is SIMPLE.<br/>MaintenanceWindowStartTime:  The parameters that determine the WeeklyStartTime.:<br/>Logs:  The list of information about logs currently enabled and pending to be deployed for the specified broker.:<br/>LdapServerMetadata:  The metadata of the LDAP server used to authenticate and authorize connections to the broker.:<br/>HostInstanceType:  The broker's instance type.<br/>EngineVersion:  The broker engine's version. For a list of supported engine versions, see <a href="https://docs.aws.amazon.com//amazon-mq/latest/developer-guide/broker-engine.html">Supported engines</a>.<br/>EngineType:  The type of broker engine. Currently, Amazon MQ supports ACTIVEMQ and RABBITMQ.<br/>EncryptionOptions:  Encryption options for the broker. Does not apply to RabbitMQ brokers.:<br/>DeploymentMode:  The broker's deployment mode.<br/>Created:  The time when the broker was created.<br/>Configurations:  The list of all revisions for the specified configuration.:<br/>BrokerState:  The broker's status.<br/>BrokerName:  The broker's name. This value must be unique in your AWS account, 1-50 characters long, must contain only letters, numbers, dashes, and underscores, and must not contain white spaces, brackets, wildcard characters, or special characters.<br/>BrokerInstances:  A list of information about allocated brokers.<br/>BrokerId:  The unique ID that Amazon MQ generates for the broker.<br/>BrokerArn:  The broker's Amazon Resource Name (ARN).<br/>AutoMinorVersionUpgrade:  Enables automatic upgrades to new minor versions for brokers, as new versions are released and supported by Amazon MQ. Automatic upgrades occur during the scheduled maintenance window of the broker or after a manual broker reboot.<br/>AuthenticationStrategy:  The authentication strategy used to secure the broker. The default is SIMPLE.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Pending</i> The broker's pending configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Pending</b>: The broker's pending configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>History</i> The history of configurations applied to the broker.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Current</i> The broker's current configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Current</b>: The broker's current configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Revision</i> The revision number of the configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> Required. The unique ID that Amazon MQ generates for the configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Revision</i> The revision number of the configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> Required. The unique ID that Amazon MQ generates for the configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UseAwsOwnedKey</i> Enables the use of an AWS owned CMK using AWS Key Management Service (KMS). Set to true by default, if no value is provided, for example, for RabbitMQ brokers.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The customer master key (CMK) to use for the AWS Key Management Service (KMS). This key is used to encrypt your data at rest. If not provided, Amazon MQ will use a default CMK to encrypt your data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserSearchSubtree</i> The directory search scope for the user. If set to true, scope is to search the entire subtree.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserSearchMatching</i> The LDAP search filter used to find users within the userBase. The client's username is substituted into the {0} placeholder in the search filter. For example, if this option is set to (uid={0}) and the received username is janedoe, the search filter becomes (uid=janedoe) after string substitution. It will result in matching an entry like uid=janedoe, ou=Users,ou=corp, dc=corp, dc=example,
               dc=com.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserRoleName</i> Specifies the name of the LDAP attribute for the user group membership.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserBase</i> Select a particular subtree of the directory information tree (DIT) to search for user entries. The subtree is specified by a DN, which specifies the base node of the subtree. For example, by setting this option to ou=Users,ou=corp, dc=corp,
                  dc=example, dc=com, the search for user entries is restricted to the subtree beneath ou=Users, ou=corp, dc=corp, dc=example, dc=com.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceAccountUsername</i> Service account username. A service account is an account in your LDAP server that has access to initiate a connection. For example, cn=admin,dc=corp, dc=example,
                  dc=com.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleSearchSubtree</i> The directory search scope for the role. If set to true, scope is to search the entire subtree.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleSearchMatching</i> The LDAP search filter used to find roles within the roleBase. The distinguished name of the user matched by userSearchMatching is substituted into the {0} placeholder in the search filter. The client's username is substituted into the {1} placeholder. For example, if you set this option to (member=uid={1})for the user janedoe, the search filter becomes (member=uid=janedoe) after string substitution. It matches all role entries that have a member attribute equal to uid=janedoe under the subtree selected by the roleBase.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleName</i> Specifies the LDAP attribute that identifies the group name attribute in the object returned from the group membership query.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleBase</i> The distinguished name of the node in the directory information tree (DIT) to search for roles or groups. For example, ou=group, ou=corp, dc=corp,
                  dc=example, dc=com.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Hosts</i> Specifies the location of the LDAP server such as AWS Directory Service for Microsoft Active Directory . Optional failover server.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Pending</i> The list of information about logs pending to be deployed for the specified broker.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Pending</b>: The list of information about logs pending to be deployed for the specified broker.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GeneralLogGroup</i> The location of the CloudWatch Logs log group where general logs are sent.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>General</i> Enables general logging.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AuditLogGroup</i> The location of the CloudWatch Logs log group where audit logs are sent.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Audit</i> Enables audit logging. Every user management action made using JMX or the ActiveMQ Web Console is logged.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>General</i> Enables general logging.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Audit</i> Enables audit logging. Every user management action made using JMX or the ActiveMQ Web Console is logged.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TimeZone</i> The time zone, UTC by default, in either the Country/City format, or the UTC offset format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TimeOfDay</i> Required. The time, in 24-hour format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DayOfWeek</i> Required. The day of the week.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserSearchSubtree</i> The directory search scope for the user. If set to true, scope is to search the entire subtree.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserSearchMatching</i> The LDAP search filter used to find users within the userBase. The client's username is substituted into the {0} placeholder in the search filter. For example, if this option is set to (uid={0}) and the received username is janedoe, the search filter becomes (uid=janedoe) after string substitution. It will result in matching an entry like uid=janedoe, ou=Users,ou=corp, dc=corp, dc=example,
               dc=com.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserRoleName</i> Specifies the name of the LDAP attribute for the user group membership.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserBase</i> Select a particular subtree of the directory information tree (DIT) to search for user entries. The subtree is specified by a DN, which specifies the base node of the subtree. For example, by setting this option to ou=Users,ou=corp, dc=corp,
                  dc=example, dc=com, the search for user entries is restricted to the subtree beneath ou=Users, ou=corp, dc=corp, dc=example, dc=com.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceAccountUsername</i> Service account username. A service account is an account in your LDAP server that has access to initiate a connection. For example, cn=admin,dc=corp, dc=example,
                  dc=com.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleSearchSubtree</i> The directory search scope for the role. If set to true, scope is to search the entire subtree.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleSearchMatching</i> The LDAP search filter used to find roles within the roleBase. The distinguished name of the user matched by userSearchMatching is substituted into the {0} placeholder in the search filter. The client's username is substituted into the {1} placeholder. For example, if you set this option to (member=uid={1})for the user janedoe, the search filter becomes (member=uid=janedoe) after string substitution. It matches all role entries that have a member attribute equal to uid=janedoe under the subtree selected by the roleBase.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleName</i> Specifies the LDAP attribute that identifies the group name attribute in the object returned from the group membership query.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleBase</i> The distinguished name of the node in the directory information tree (DIT) to search for roles or groups. For example, ou=group, ou=corp, dc=corp,
                  dc=example, dc=com.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Hosts</i> Specifies the location of the LDAP server such as AWS Directory Service for Microsoft Active Directory . Optional failover server.<br/>        """
        pass

    def describe_broker_engine_types(self, EngineType: str=None, MaxResults: int=None, NextToken: str=None) -> DescribeBrokerEngineTypesResponse:
        r"""Describe available engine types and versions.

        :param self:
        :param NextToken:  The token that specifies the next page of results Amazon MQ should return. To request the first page, leave nextToken empty.<br/>MaxResults:  The maximum number of brokers that Amazon MQ can return per page (20 by default). This value must be an integer from 5 to 100.<br/>EngineType:  Filter response by engine type.<br/>
        :return: NextToken:  The token that specifies the next page of results Amazon MQ should return. To request the first page, leave nextToken empty.<br/>MaxResults:  Required. The maximum number of engine types that can be returned per page (20 by default). This value must be an integer from 5 to 100.<br/>BrokerEngineTypes:  List of available engine types and versions.<br/>        """
        pass

    def describe_broker_instance_options(self, EngineType: str=None, HostInstanceType: str=None, MaxResults: int=None, NextToken: str=None, StorageType: str=None) -> DescribeBrokerInstanceOptionsResponse:
        r"""Describe available broker instance options.

        :param self:
        :param StorageType:  Filter response by storage type.<br/>NextToken:  The token that specifies the next page of results Amazon MQ should return. To request the first page, leave nextToken empty.<br/>MaxResults:  The maximum number of brokers that Amazon MQ can return per page (20 by default). This value must be an integer from 5 to 100.<br/>HostInstanceType:  Filter response by host instance type.<br/>EngineType:  Filter response by engine type.<br/>
        :return: NextToken:  The token that specifies the next page of results Amazon MQ should return. To request the first page, leave nextToken empty.<br/>MaxResults:  Required. The maximum number of instance options that can be returned per page (20 by default). This value must be an integer from 5 to 100.<br/>BrokerInstanceOptions:  List of available broker instance options.<br/>        """
        pass

    def describe_configuration(self, ConfigurationId: str) -> DescribeConfigurationResponse:
        r"""Returns information about the specified configuration.

        :param self:
        :param ConfigurationId:  The unique ID that Amazon MQ generates for the configuration.<br/>
        :return: Tags:  The list of all tags associated with this configuration.<br/>Name:  Required. The name of the configuration. This value can contain only alphanumeric characters, dashes, periods, underscores, and tildes (- . _ ~). This value must be 1-150 characters long.<br/>LatestRevision:  Required. The latest revision of the configuration.:<br/>Id:  Required. The unique ID that Amazon MQ generates for the configuration.<br/>EngineVersion:  Required. The broker engine's version. For a list of supported engine versions, see, <a href="https://docs.aws.amazon.com//amazon-mq/latest/developer-guide/broker-engine.html">Supported engines</a>.<br/>EngineType:  Required. The type of broker engine. Currently, Amazon MQ supports ACTIVEMQ and RABBITMQ.<br/>Description:  Required. The description of the configuration.<br/>Created:  Required. The date and time of the configuration revision.<br/>AuthenticationStrategy:  Optional. The authentication strategy associated with the configuration. The default is SIMPLE.<br/>Arn:  Required. The ARN of the configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Revision</i> Required. The revision number of the configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the configuration revision.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Created</i> Required. The date and time of the configuration revision.<br/>        """
        pass

    def describe_configuration_revision(self, ConfigurationRevision: str, ConfigurationId: str) -> DescribeConfigurationRevisionResponse:
        r"""Returns the specified configuration revision for the specified configuration.

        :param self:
        :param ConfigurationRevision:  The revision of the configuration.<br/>ConfigurationId:  The unique ID that Amazon MQ generates for the configuration.<br/>
        :return: Description:  The description of the configuration.<br/>Data:  Required. The base64-encoded XML configuration.<br/>Created:  Required. The date and time of the configuration.<br/>ConfigurationId:  Required. The unique ID that Amazon MQ generates for the configuration.<br/>        """
        pass

    def describe_user(self, Username: str, BrokerId: str) -> DescribeUserResponse:
        r"""Returns information about an ActiveMQ user.

        :param self:
        :param Username:  The username of the ActiveMQ user. This value can contain only alphanumeric characters, dashes, periods, underscores, and tildes (- . _ ~). This value must be 2-100 characters long.<br/>BrokerId:  The unique ID that Amazon MQ generates for the broker.<br/>
        :return: Username:  Required. The username of the ActiveMQ user. This value can contain only alphanumeric characters, dashes, periods, underscores, and tildes (- . _ ~). This value must be 2-100 characters long.<br/>Pending:  The status of the changes pending for the ActiveMQ user.:<br/>Groups:  The list of groups (20 maximum) to which the ActiveMQ user belongs. This value can contain only alphanumeric characters, dashes, periods, underscores, and tildes (- . _ ~). This value must be 2-100 characters long.<br/>ConsoleAccess:  Enables access to the the ActiveMQ Web Console for the ActiveMQ user.<br/>BrokerId:  Required. The unique ID that Amazon MQ generates for the broker.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingChange</i> Required. The type of change pending for the ActiveMQ user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Groups</i> The list of groups (20 maximum) to which the ActiveMQ user belongs. This value can contain only alphanumeric characters, dashes, periods, underscores, and tildes (- . _ ~). This value must be 2-100 characters long.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConsoleAccess</i> Enables access to the the ActiveMQ Web Console for the ActiveMQ user.<br/>        """
        pass

    def list_brokers(self, MaxResults: int=None, NextToken: str=None) -> ListBrokersResponse:
        r"""Returns a list of all brokers.

        :param self:
        :param NextToken:  The token that specifies the next page of results Amazon MQ should return. To request the first page, leave nextToken empty.<br/>MaxResults:  The maximum number of brokers that Amazon MQ can return per page (20 by default). This value must be an integer from 5 to 100.<br/>
        :return: NextToken:  The token that specifies the next page of results Amazon MQ should return. To request the first page, leave nextToken empty.<br/>BrokerSummaries:  A list of information about all brokers.<br/>        """
        pass

    def list_configuration_revisions(self, ConfigurationId: str, MaxResults: int=None, NextToken: str=None) -> ListConfigurationRevisionsResponse:
        r"""Returns a list of all revisions for the specified configuration.

        :param self:
        :param NextToken:  The token that specifies the next page of results Amazon MQ should return. To request the first page, leave nextToken empty.<br/>MaxResults:  The maximum number of brokers that Amazon MQ can return per page (20 by default). This value must be an integer from 5 to 100.<br/>ConfigurationId:  The unique ID that Amazon MQ generates for the configuration.<br/>
        :return: Revisions:  The list of all revisions for the specified configuration.<br/>NextToken:  The token that specifies the next page of results Amazon MQ should return. To request the first page, leave nextToken empty.<br/>MaxResults:  The maximum number of configuration revisions that can be returned per page (20 by default). This value must be an integer from 5 to 100.<br/>ConfigurationId:  The unique ID that Amazon MQ generates for the configuration.<br/>        """
        pass

    def list_configurations(self, MaxResults: int=None, NextToken: str=None) -> ListConfigurationsResponse:
        r"""Returns a list of all configurations.

        :param self:
        :param NextToken:  The token that specifies the next page of results Amazon MQ should return. To request the first page, leave nextToken empty.<br/>MaxResults:  The maximum number of brokers that Amazon MQ can return per page (20 by default). This value must be an integer from 5 to 100.<br/>
        :return: NextToken:  The token that specifies the next page of results Amazon MQ should return. To request the first page, leave nextToken empty.<br/>MaxResults:  The maximum number of configurations that Amazon MQ can return per page (20 by default). This value must be an integer from 5 to 100.<br/>Configurations:  The list of all revisions for the specified configuration.<br/>        """
        pass

    def list_tags(self, ResourceArn: str) -> ListTagsResponse:
        r"""Lists tags for a resource.

        :param self:
        :param ResourceArn:  The Amazon Resource Name (ARN) of the resource tag.<br/>
        :return: Tags:  The key-value pair for the resource tag.<br/>        """
        pass

    def list_users(self, BrokerId: str, MaxResults: int=None, NextToken: str=None) -> ListUsersResponse:
        r"""Returns a list of all ActiveMQ users.

        :param self:
        :param NextToken:  The token that specifies the next page of results Amazon MQ should return. To request the first page, leave nextToken empty.<br/>MaxResults:  The maximum number of brokers that Amazon MQ can return per page (20 by default). This value must be an integer from 5 to 100.<br/>BrokerId:  The unique ID that Amazon MQ generates for the broker.<br/>
        :return: Users:  Required. The list of all ActiveMQ usernames for the specified broker. Does not apply to RabbitMQ brokers.<br/>NextToken:  The token that specifies the next page of results Amazon MQ should return. To request the first page, leave nextToken empty.<br/>MaxResults:  Required. The maximum number of ActiveMQ users that can be returned per page (20 by default). This value must be an integer from 5 to 100.<br/>BrokerId:  Required. The unique ID that Amazon MQ generates for the broker.<br/>        """
        pass

    def reboot_broker(self, BrokerId: str) -> RebootBrokerResponse:
        r"""Reboots a broker. Note: This API is asynchronous.

        :param self:
        :param BrokerId:  The unique ID that Amazon MQ generates for the broker.<br/>
        :return:         """
        pass

    def update_broker(self, BrokerId: str, AuthenticationStrategy: str=None, AutoMinorVersionUpgrade: __boolean=None, Configuration: ConfigurationId=None, EngineVersion: str=None, HostInstanceType: str=None, LdapServerMetadata: LdapServerMetadataInput=None, Logs: Logs=None, MaintenanceWindowStartTime: WeeklyStartTime=None, SecurityGroups: List[__string]=None) -> UpdateBrokerResponse:
        r"""Adds a pending configuration change to a broker.

        :param self:
        :param SecurityGroups:  The list of security groups (1 minimum, 5 maximum) that authorizes connections to brokers.<br/>MaintenanceWindowStartTime:  The parameters that determine the WeeklyStartTime.:<br/>Logs:  Enables Amazon CloudWatch logging for brokers.:<br/>LdapServerMetadata:  Optional. The metadata of the LDAP server used to authenticate and authorize connections to the broker. Does not apply to RabbitMQ brokers.:<br/>HostInstanceType:  The broker's host instance type to upgrade to. For a list of supported instance types, see <a href="https://docs.aws.amazon.com//amazon-mq/latest/developer-guide/broker.html#broker-instance-types">Broker instance types</a>.<br/>EngineVersion:  The broker engine version. For a list of supported engine versions, see <a href="https://docs.aws.amazon.com//amazon-mq/latest/developer-guide/broker-engine.html">Supported engines</a>.<br/>Configuration:  A list of information about the configuration.:<br/>BrokerId:  The unique ID that Amazon MQ generates for the broker.<br/>AutoMinorVersionUpgrade:  Enables automatic upgrades to new minor versions for brokers, as new versions are released and supported by Amazon MQ. Automatic upgrades occur during the scheduled maintenance window of the broker or after a manual broker reboot.<br/>AuthenticationStrategy:  Optional. The authentication strategy used to secure the broker. The default is SIMPLE.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Revision</i> The revision number of the configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> Required. The unique ID that Amazon MQ generates for the configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserSearchSubtree</i> The directory search scope for the user. If set to true, scope is to search the entire subtree.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserSearchMatching</i> The LDAP search filter used to find users within the userBase. The client's username is substituted into the {0} placeholder in the search filter. For example, if this option is set to (uid={0}) and the received username is janedoe, the search filter becomes (uid=janedoe) after string substitution. It will result in matching an entry like uid=janedoe, ou=Users,ou=corp, dc=corp, dc=example,
                  dc=com.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserRoleName</i> Specifies the name of the LDAP attribute for the user group membership.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserBase</i> Select a particular subtree of the directory information tree (DIT) to search for user entries. The subtree is specified by a DN, which specifies the base node of the subtree. For example, by setting this option to ou=Users,ou=corp, dc=corp,
                  dc=example, dc=com, the search for user entries is restricted to the subtree beneath ou=Users, ou=corp, dc=corp, dc=example, dc=com.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceAccountUsername</i> Service account username. A service account is an account in your LDAP server that has access to initiate a connection. For example, cn=admin,dc=corp, dc=example,
                  dc=com.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceAccountPassword</i> Service account password. A service account is an account in your LDAP server that has access to initiate a connection. For example, cn=admin,dc=corp, dc=example,
                  dc=com.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleSearchSubtree</i> The directory search scope for the role. If set to true, scope is to search the entire subtree.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleSearchMatching</i> The LDAP search filter used to find roles within the roleBase. The distinguished name of the user matched by userSearchMatching is substituted into the {0} placeholder in the search filter. The client's username is substituted into the {1} placeholder. For example, if you set this option to (member=uid={1})for the user janedoe, the search filter becomes (member=uid=janedoe) after string substitution. It matches all role entries that have a member attribute equal to uid=janedoe under the subtree selected by the roleBase.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleName</i> Specifies the LDAP attribute that identifies the group name attribute in the object returned from the group membership query.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleBase</i> The distinguished name of the node in the directory information tree (DIT) to search for roles or groups. For example, ou=group, ou=corp, dc=corp,
                  dc=example, dc=com.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Hosts</i> Specifies the location of the LDAP server such as AWS Directory Service for Microsoft Active Directory . Optional failover server.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>General</i> Enables general logging.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Audit</i> Enables audit logging. Every user management action made using JMX or the ActiveMQ Web Console is logged. Does not apply to RabbitMQ brokers.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TimeZone</i> The time zone, UTC by default, in either the Country/City format, or the UTC offset format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TimeOfDay</i> Required. The time, in 24-hour format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DayOfWeek</i> Required. The day of the week.<br/>
        :return: SecurityGroups:  The list of security groups (1 minimum, 5 maximum) that authorizes connections to brokers.<br/>MaintenanceWindowStartTime:  The parameters that determine the WeeklyStartTime.:<br/>Logs:  The list of information about logs to be enabled for the specified broker.:<br/>LdapServerMetadata:  Optional. The metadata of the LDAP server used to authenticate and authorize connections to the broker. Does not apply to RabbitMQ brokers.:<br/>HostInstanceType:  The broker's host instance type to upgrade to. For a list of supported instance types, see <a href="https://docs.aws.amazon.com//amazon-mq/latest/developer-guide/broker.html#broker-instance-types">Broker instance types</a>.<br/>EngineVersion:  The broker engine version to upgrade to. For a list of supported engine versions, see <a href="https://docs.aws.amazon.com//amazon-mq/latest/developer-guide/broker-engine.html">Supported engines</a>.<br/>Configuration:  The ID of the updated configuration.:<br/>BrokerId:  Required. The unique ID that Amazon MQ generates for the broker.<br/>AutoMinorVersionUpgrade:  The new boolean value that specifies whether broker engines automatically upgrade to new minor versions as new versions are released and supported by Amazon MQ.<br/>AuthenticationStrategy:  Optional. The authentication strategy used to secure the broker. The default is SIMPLE.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Revision</i> The revision number of the configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> Required. The unique ID that Amazon MQ generates for the configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserSearchSubtree</i> The directory search scope for the user. If set to true, scope is to search the entire subtree.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserSearchMatching</i> The LDAP search filter used to find users within the userBase. The client's username is substituted into the {0} placeholder in the search filter. For example, if this option is set to (uid={0}) and the received username is janedoe, the search filter becomes (uid=janedoe) after string substitution. It will result in matching an entry like uid=janedoe, ou=Users,ou=corp, dc=corp, dc=example,
               dc=com.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserRoleName</i> Specifies the name of the LDAP attribute for the user group membership.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserBase</i> Select a particular subtree of the directory information tree (DIT) to search for user entries. The subtree is specified by a DN, which specifies the base node of the subtree. For example, by setting this option to ou=Users,ou=corp, dc=corp,
                  dc=example, dc=com, the search for user entries is restricted to the subtree beneath ou=Users, ou=corp, dc=corp, dc=example, dc=com.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceAccountUsername</i> Service account username. A service account is an account in your LDAP server that has access to initiate a connection. For example, cn=admin,dc=corp, dc=example,
                  dc=com.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleSearchSubtree</i> The directory search scope for the role. If set to true, scope is to search the entire subtree.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleSearchMatching</i> The LDAP search filter used to find roles within the roleBase. The distinguished name of the user matched by userSearchMatching is substituted into the {0} placeholder in the search filter. The client's username is substituted into the {1} placeholder. For example, if you set this option to (member=uid={1})for the user janedoe, the search filter becomes (member=uid=janedoe) after string substitution. It matches all role entries that have a member attribute equal to uid=janedoe under the subtree selected by the roleBase.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleName</i> Specifies the LDAP attribute that identifies the group name attribute in the object returned from the group membership query.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleBase</i> The distinguished name of the node in the directory information tree (DIT) to search for roles or groups. For example, ou=group, ou=corp, dc=corp,
                  dc=example, dc=com.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Hosts</i> Specifies the location of the LDAP server such as AWS Directory Service for Microsoft Active Directory . Optional failover server.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>General</i> Enables general logging.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Audit</i> Enables audit logging. Every user management action made using JMX or the ActiveMQ Web Console is logged. Does not apply to RabbitMQ brokers.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TimeZone</i> The time zone, UTC by default, in either the Country/City format, or the UTC offset format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TimeOfDay</i> Required. The time, in 24-hour format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DayOfWeek</i> Required. The day of the week.<br/>        """
        pass

    def update_configuration(self, Data: str, ConfigurationId: str, Description: str=None) -> UpdateConfigurationResponse:
        r"""Updates the specified configuration.

        :param self:
        :param Description:  The description of the configuration.<br/>Data:  Required. The base64-encoded XML configuration.<br/>ConfigurationId:  The unique ID that Amazon MQ generates for the configuration.<br/>
        :return: Warnings:  The list of the first 20 warnings about the configuration XML elements or attributes that were sanitized.<br/>Name:  Required. The name of the configuration. This value can contain only alphanumeric characters, dashes, periods, underscores, and tildes (- . _ ~). This value must be 1-150 characters long.<br/>LatestRevision:  The latest revision of the configuration.:<br/>Id:  Required. The unique ID that Amazon MQ generates for the configuration.<br/>Created:  Required. The date and time of the configuration.<br/>Arn:  Required. The Amazon Resource Name (ARN) of the configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Revision</i> Required. The revision number of the configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the configuration revision.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Created</i> Required. The date and time of the configuration revision.<br/>        """
        pass

    def update_user(self, Username: str, BrokerId: str, ConsoleAccess: __boolean=None, Groups: List[__string]=None, Password: str=None) -> UpdateUserResponse:
        r"""Updates the information for an ActiveMQ user.

        :param self:
        :param Username:  The username of the ActiveMQ user. This value can contain only alphanumeric characters, dashes, periods, underscores, and tildes (- . _ ~). This value must be 2-100 characters long.<br/>Password:  The password of the user. This value must be at least 12 characters long, must contain at least 4 unique characters, and must not contain commas, colons, or equal signs (,:=).<br/>Groups:  The list of groups (20 maximum) to which the ActiveMQ user belongs. This value can contain only alphanumeric characters, dashes, periods, underscores, and tildes (- . _ ~). This value must be 2-100 characters long.<br/>ConsoleAccess:  Enables access to the the ActiveMQ Web Console for the ActiveMQ user.<br/>BrokerId:  The unique ID that Amazon MQ generates for the broker.<br/>
        :return:         """
        pass





class MTurk(BaseClient):
    r"""<fullname>Amazon Mechanical Turk API Reference</fullname>"""


    class ListAssignmentsForHITPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_assignments_for_hit` for valid parameters"""
            pass
    class ListQualificationTypesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_qualification_types` for valid parameters"""
            pass
    class ListHITsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_hits` for valid parameters"""
            pass
    class ListWorkerBlocksPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_worker_blocks` for valid parameters"""
            pass
    class ListReviewableHITsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_reviewable_hits` for valid parameters"""
            pass
    class ListHITsForQualificationTypePaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_hits_for_qualification_type` for valid parameters"""
            pass
    class ListQualificationRequestsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_qualification_requests` for valid parameters"""
            pass
    class ListWorkersWithQualificationTypePaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_workers_with_qualification_type` for valid parameters"""
            pass
    class ListBonusPaymentsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_bonus_payments` for valid parameters"""
            pass


    class AcceptQualificationRequestRequest(Mapping):
        pass
    
    class AcceptQualificationRequestResponse(Mapping):
        pass
    
    class ApproveAssignmentRequest(Mapping):
        pass
    
    class ApproveAssignmentResponse(Mapping):
        pass
    
    class Boolean(object):
        pass
    
    class AssociateQualificationWithWorkerRequest(Mapping):
        pass
    
    class AssociateQualificationWithWorkerResponse(Mapping):
        pass
    
    class CreateAdditionalAssignmentsForHITRequest(Mapping):
        pass
    
    class CreateAdditionalAssignmentsForHITResponse(Mapping):
        pass
    
    class CreateHITRequest(Mapping):
        pass
    
    class CreateHITResponse(Mapping):
        pass
    
    class Long(object):
        pass
    
    class QualificationRequirement(Mapping):
        pass
    
    class ReviewPolicy(Mapping):
        pass
    
    class HITLayoutParameter(Mapping):
        pass
    
    class CreateHITTypeRequest(Mapping):
        pass
    
    class CreateHITTypeResponse(Mapping):
        pass
    
    class CreateHITWithHITTypeRequest(Mapping):
        pass
    
    class CreateHITWithHITTypeResponse(Mapping):
        pass
    
    class CreateQualificationTypeRequest(Mapping):
        pass
    
    class CreateQualificationTypeResponse(Mapping):
        pass
    
    class CreateWorkerBlockRequest(Mapping):
        pass
    
    class CreateWorkerBlockResponse(Mapping):
        pass
    
    class DeleteHITRequest(Mapping):
        pass
    
    class DeleteHITResponse(Mapping):
        pass
    
    class DeleteQualificationTypeRequest(Mapping):
        pass
    
    class DeleteQualificationTypeResponse(Mapping):
        pass
    
    class DeleteWorkerBlockRequest(Mapping):
        pass
    
    class DeleteWorkerBlockResponse(Mapping):
        pass
    
    class DisassociateQualificationFromWorkerRequest(Mapping):
        pass
    
    class DisassociateQualificationFromWorkerResponse(Mapping):
        pass
    
    class GetAccountBalanceRequest(Mapping):
        pass
    
    class GetAccountBalanceResponse(Mapping):
        pass
    
    class GetAssignmentRequest(Mapping):
        pass
    
    class GetAssignmentResponse(Mapping):
        pass
    
    class GetFileUploadURLRequest(Mapping):
        pass
    
    class GetFileUploadURLResponse(Mapping):
        pass
    
    class GetHITRequest(Mapping):
        pass
    
    class GetHITResponse(Mapping):
        pass
    
    class GetQualificationScoreRequest(Mapping):
        pass
    
    class GetQualificationScoreResponse(Mapping):
        pass
    
    class GetQualificationTypeRequest(Mapping):
        pass
    
    class GetQualificationTypeResponse(Mapping):
        pass
    
    class ListAssignmentsForHITRequest(Mapping):
        pass
    
    class ListAssignmentsForHITResponse(Mapping):
        pass
    
    class AssignmentStatus(object):
        pass
    
    class ListBonusPaymentsRequest(Mapping):
        pass
    
    class ListBonusPaymentsResponse(Mapping):
        pass
    
    class ListHITsRequest(Mapping):
        pass
    
    class ListHITsResponse(Mapping):
        pass
    
    class ListHITsForQualificationTypeRequest(Mapping):
        pass
    
    class ListHITsForQualificationTypeResponse(Mapping):
        pass
    
    class ListQualificationRequestsRequest(Mapping):
        pass
    
    class ListQualificationRequestsResponse(Mapping):
        pass
    
    class ListQualificationTypesRequest(Mapping):
        pass
    
    class ListQualificationTypesResponse(Mapping):
        pass
    
    class ListReviewPolicyResultsForHITRequest(Mapping):
        pass
    
    class ListReviewPolicyResultsForHITResponse(Mapping):
        pass
    
    class ReviewPolicyLevel(object):
        pass
    
    class ListReviewableHITsRequest(Mapping):
        pass
    
    class ListReviewableHITsResponse(Mapping):
        pass
    
    class ListWorkerBlocksRequest(Mapping):
        pass
    
    class ListWorkerBlocksResponse(Mapping):
        pass
    
    class ListWorkersWithQualificationTypeRequest(Mapping):
        pass
    
    class ListWorkersWithQualificationTypeResponse(Mapping):
        pass
    
    class NotifyWorkersRequest(Mapping):
        pass
    
    class NotifyWorkersResponse(Mapping):
        pass
    
    class CustomerId(object):
        pass
    
    class RejectAssignmentRequest(Mapping):
        pass
    
    class RejectAssignmentResponse(Mapping):
        pass
    
    class RejectQualificationRequestRequest(Mapping):
        pass
    
    class RejectQualificationRequestResponse(Mapping):
        pass
    
    class SendBonusRequest(Mapping):
        pass
    
    class SendBonusResponse(Mapping):
        pass
    
    class SendTestEventNotificationRequest(Mapping):
        pass
    
    class SendTestEventNotificationResponse(Mapping):
        pass
    
    class NotificationSpecification(Mapping):
        pass
    
    class UpdateExpirationForHITRequest(Mapping):
        pass
    
    class UpdateExpirationForHITResponse(Mapping):
        pass
    
    class Timestamp(object):
        pass
    
    class UpdateHITReviewStatusRequest(Mapping):
        pass
    
    class UpdateHITReviewStatusResponse(Mapping):
        pass
    
    class UpdateHITTypeOfHITRequest(Mapping):
        pass
    
    class UpdateHITTypeOfHITResponse(Mapping):
        pass
    
    class UpdateNotificationSettingsRequest(Mapping):
        pass
    
    class UpdateNotificationSettingsResponse(Mapping):
        pass
    
    class UpdateQualificationTypeRequest(Mapping):
        pass
    
    class UpdateQualificationTypeResponse(Mapping):
        pass
    
    def accept_qualification_request(self, QualificationRequestId: str, IntegerValue: int=None) -> AcceptQualificationRequestResponse:
        r""" The <code>AcceptQualificationRequest</code> operation approves a Worker's request for a Qualification.   Only the owner of the Qualification type can grant a Qualification request for that type.   A successful request for the <code>AcceptQualificationRequest</code> operation returns with no errors and an empty body. 

        :param self:
        :param IntegerValue:   The value of the Qualification. You can omit this value if you are using the presence or absence of the Qualification as the basis for a HIT requirement. <br/>QualificationRequestId:  The ID of the Qualification request, as returned by the <code>GetQualificationRequests</code> operation.<br/>
        :return:         """
        pass

    def approve_assignment(self, AssignmentId: str, RequesterFeedback: str=None, OverrideRejection: Boolean=None) -> ApproveAssignmentResponse:
        r""" The <code>ApproveAssignment</code> operation approves the results of a completed assignment.   Approving an assignment initiates two payments from the Requester's Amazon.com account  <ul> <li>  The Worker who submitted the results is paid the reward specified in the HIT.  </li> <li>  Amazon Mechanical Turk fees are debited.  </li> </ul>  If the Requester's account does not have adequate funds for these payments, the call to ApproveAssignment returns an exception, and the approval is not processed. You can include an optional feedback message with the approval, which the Worker can see in the Status section of the web site.   You can also call this operation for assignments that were previous rejected and approve them by explicitly overriding the previous rejection. This only works on rejected assignments that were submitted within the previous 30 days and only if the assignment's related HIT has not been deleted. 

        :param self:
        :param OverrideRejection:   A flag indicating that an assignment should be approved even if it was previously rejected. Defaults to <code>False</code>. <br/>RequesterFeedback:   A message for the Worker, which the Worker can see in the Status section of the web site. <br/>AssignmentId:   The ID of the assignment. The assignment must correspond to a HIT created by the Requester. <br/>
        :return:         """
        pass

    def associate_qualification_with_worker(self, WorkerId: str, QualificationTypeId: str, IntegerValue: int=None, SendNotification: Boolean=None) -> AssociateQualificationWithWorkerResponse:
        r""" The <code>AssociateQualificationWithWorker</code> operation gives a Worker a Qualification. <code>AssociateQualificationWithWorker</code> does not require that the Worker submit a Qualification request. It gives the Qualification directly to the Worker.   You can only assign a Qualification of a Qualification type that you created (using the <code>CreateQualificationType</code> operation).  <note>  Note: <code>AssociateQualificationWithWorker</code> does not affect any pending Qualification requests for the Qualification by the Worker. If you assign a Qualification to a Worker, then later grant a Qualification request made by the Worker, the granting of the request may modify the Qualification score. To resolve a pending Qualification request without affecting the Qualification the Worker already has, reject the request with the <code>RejectQualificationRequest</code> operation.  </note>

        :param self:
        :param SendNotification:   Specifies whether to send a notification email message to the Worker saying that the qualification was assigned to the Worker. Note: this is true by default. <br/>IntegerValue:  The value of the Qualification to assign.<br/>WorkerId:   The ID of the Worker to whom the Qualification is being assigned. Worker IDs are included with submitted HIT assignments and Qualification requests. <br/>QualificationTypeId:  The ID of the Qualification type to use for the assigned Qualification.<br/>
        :return:         """
        pass

    def create_additional_assignments_for_hit(self, NumberOfAdditionalAssignments: int, HITId: str, UniqueRequestToken: str=None) -> CreateAdditionalAssignmentsForHITResponse:
        r""" The <code>CreateAdditionalAssignmentsForHIT</code> operation increases the maximum number of assignments of an existing HIT.   To extend the maximum number of assignments, specify the number of additional assignments. <note> <ul> <li> HITs created with fewer than 10 assignments cannot be extended to have 10 or more assignments. Attempting to add assignments in a way that brings the total number of assignments for a HIT from fewer than 10 assignments to 10 or more assignments will result in an <code>AWS.MechanicalTurk.InvalidMaximumAssignmentsIncrease</code> exception. </li> <li> HITs that were created before July 22, 2015 cannot be extended. Attempting to extend HITs that were created before July 22, 2015 will result in an <code>AWS.MechanicalTurk.HITTooOldForExtension</code> exception.  </li> </ul> </note>

        :param self:
        :param UniqueRequestToken:   A unique identifier for this request, which allows you to retry the call on error without extending the HIT multiple times. This is useful in cases such as network timeouts where it is unclear whether or not the call succeeded on the server. If the extend HIT already exists in the system from a previous call using the same <code>UniqueRequestToken</code>, subsequent calls will return an error with a message containing the request ID. <br/>NumberOfAdditionalAssignments:  The number of additional assignments to request for this HIT.<br/>HITId:  The ID of the HIT to extend.<br/>
        :return:         """
        pass

    def create_hit(self, Description: str, Title: str, Reward: str, AssignmentDurationInSeconds: Long, LifetimeInSeconds: Long, MaxAssignments: int=None, AutoApprovalDelayInSeconds: Long=None, Keywords: str=None, Question: str=None, RequesterAnnotation: str=None, QualificationRequirements: List[QualificationRequirement]=None, UniqueRequestToken: str=None, AssignmentReviewPolicy: ReviewPolicy=None, HITReviewPolicy: ReviewPolicy=None, HITLayoutId: str=None, HITLayoutParameters: List[HITLayoutParameter]=None) -> CreateHITResponse:
        r"""The <code>CreateHIT</code> operation creates a new Human Intelligence Task (HIT). The new HIT is made available for Workers to find and accept on the Amazon Mechanical Turk website.   This operation allows you to specify a new HIT by passing in values for the properties of the HIT, such as its title, reward amount and number of assignments. When you pass these values to <code>CreateHIT</code>, a new HIT is created for you, with a new <code>HITTypeID</code>. The HITTypeID can be used to create additional HITs in the future without needing to specify common parameters such as the title, description and reward amount each time.  An alternative way to create HITs is to first generate a HITTypeID using the <code>CreateHITType</code> operation and then call the <code>CreateHITWithHITType</code> operation. This is the recommended best practice for Requesters who are creating large numbers of HITs.  CreateHIT also supports several ways to provide question data: by providing a value for the <code>Question</code> parameter that fully specifies the contents of the HIT, or by providing a <code>HitLayoutId</code> and associated <code>HitLayoutParameters</code>.  <note>  If a HIT is created with 10 or more maximum assignments, there is an additional fee. For more information, see <a href="https://requester.mturk.com/pricing">Amazon Mechanical Turk Pricing</a>. </note>

        :param self:
        :param HITLayoutParameters:   If the HITLayoutId is provided, any placeholder values must be filled in with values using the HITLayoutParameter structure. For more information, see HITLayout. <br/>HITLayoutId:   The HITLayoutId allows you to use a pre-existing HIT design with placeholder values and create an additional HIT by providing those values as HITLayoutParameters.   Constraints: Either a Question parameter or a HITLayoutId parameter must be provided. <br/>HITReviewPolicy:   The HIT-level Review Policy applies to the HIT. You can specify for Mechanical Turk to take various actions based on the policy. :<br/>AssignmentReviewPolicy:   The Assignment-level Review Policy applies to the assignments under the HIT. You can specify for Mechanical Turk to take various actions based on the policy. :<br/>UniqueRequestToken:   A unique identifier for this request which allows you to retry the call on error without creating duplicate HITs. This is useful in cases such as network timeouts where it is unclear whether or not the call succeeded on the server. If the HIT already exists in the system from a previous call using the same UniqueRequestToken, subsequent calls will return a AWS.MechanicalTurk.HitAlreadyExists error with a message containing the HITId.  <note>  Note: It is your responsibility to ensure uniqueness of the token. The unique token expires after 24 hours. Subsequent calls using the same UniqueRequestToken made after the 24 hour limit could create duplicate HITs.  </note><br/>QualificationRequirements:   Conditions that a Worker's Qualifications must meet in order to accept the HIT. A HIT can have between zero and ten Qualification requirements. All requirements must be met in order for a Worker to accept the HIT. Additionally, other actions can be restricted using the <code>ActionsGuarded</code> field on each <code>QualificationRequirement</code> structure. <br/>RequesterAnnotation:   An arbitrary data field. The RequesterAnnotation parameter lets your application attach arbitrary data to the HIT for tracking purposes. For example, this parameter could be an identifier internal to the Requester's application that corresponds with the HIT.   The RequesterAnnotation parameter for a HIT is only visible to the Requester who created the HIT. It is not shown to the Worker, or any other Requester.   The RequesterAnnotation parameter may be different for each HIT you submit. It does not affect how your HITs are grouped. <br/>Question:   The data the person completing the HIT uses to produce the results.   Constraints: Must be a QuestionForm data structure, an ExternalQuestion data structure, or an HTMLQuestion data structure. The XML question data must not be larger than 64 kilobytes (65,535 bytes) in size, including whitespace.  Either a Question parameter or a HITLayoutId parameter must be provided.<br/>Description:   A general description of the HIT. A description includes detailed information about the kind of task the HIT contains. On the Amazon Mechanical Turk web site, the HIT description appears in the expanded view of search results, and in the HIT and assignment screens. A good description gives the user enough information to evaluate the HIT before accepting it. <br/>Keywords:   One or more words or phrases that describe the HIT, separated by commas. These words are used in searches to find HITs. <br/>Title:   The title of the HIT. A title should be short and descriptive about the kind of task the HIT contains. On the Amazon Mechanical Turk web site, the HIT title appears in search results, and everywhere the HIT is mentioned. <br/>Reward:   The amount of money the Requester will pay a Worker for successfully completing the HIT. <br/>AssignmentDurationInSeconds:   The amount of time, in seconds, that a Worker has to complete the HIT after accepting it. If a Worker does not complete the assignment within the specified duration, the assignment is considered abandoned. If the HIT is still active (that is, its lifetime has not elapsed), the assignment becomes available for other users to find and accept. <br/>LifetimeInSeconds:   An amount of time, in seconds, after which the HIT is no longer available for users to accept. After the lifetime of the HIT elapses, the HIT no longer appears in HIT searches, even if not all of the assignments for the HIT have been accepted. <br/>AutoApprovalDelayInSeconds:   The number of seconds after an assignment for the HIT has been submitted, after which the assignment is considered Approved automatically unless the Requester explicitly rejects it. <br/>MaxAssignments:   The number of times the HIT can be accepted and completed before the HIT becomes unavailable. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Parameters</i> Name of the parameter from the Review policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PolicyName</i>  Name of a Review Policy: SimplePlurality/2011-09-01 or ScoreMyKnownAnswers/2011-09-01 <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Parameters</i> Name of the parameter from the Review policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PolicyName</i>  Name of a Review Policy: SimplePlurality/2011-09-01 or ScoreMyKnownAnswers/2011-09-01 <br/>
        :return: HIT:   Contains the newly created HIT data. For a description of the HIT data structure as it appears in responses, see the HIT Data Structure documentation. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberOfAssignmentsCompleted</i>  The number of assignments for this HIT that have been approved or rejected.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberOfAssignmentsAvailable</i>  The number of assignments for this HIT that are available for Workers to accept.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberOfAssignmentsPending</i>  The number of assignments for this HIT that are being previewed or have been accepted by Workers, but have not yet been submitted, returned, or abandoned.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HITReviewStatus</i>  Indicates the review status of the HIT. Valid Values are NotReviewed | MarkedForReview | ReviewedAppropriate | ReviewedInappropriate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>QualificationRequirements</i>  Conditions that a Worker's Qualifications must meet in order to accept the HIT. A HIT can have between zero and ten Qualification requirements. All requirements must be met in order for a Worker to accept the HIT. Additionally, other actions can be restricted using the <code>ActionsGuarded</code> field on each <code>QualificationRequirement</code> structure. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequesterAnnotation</i>  An arbitrary data field the Requester who created the HIT can use. This field is visible only to the creator of the HIT.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssignmentDurationInSeconds</i>  The length of time, in seconds, that a Worker has to complete the HIT after accepting it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Expiration</i> The date and time the HIT expires.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoApprovalDelayInSeconds</i> The amount of time, in seconds, after the Worker submits an assignment for the HIT that the results are automatically approved by Amazon Mechanical Turk. This is the amount of time the Requester has to reject an assignment submitted by a Worker before the assignment is auto-approved and the Worker is paid. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Reward</i> A string representing a currency amount.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxAssignments</i> The number of times the HIT can be accepted and completed before the HIT becomes unavailable. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HITStatus</i> The status of the HIT and its assignments. Valid Values are Assignable | Unassignable | Reviewable | Reviewing | Disposed. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Keywords</i>  One or more words or phrases that describe the HIT, separated by commas. Search terms similar to the keywords of a HIT are more likely to have the HIT in the search results.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Question</i>  The data the Worker completing the HIT uses produce the results. This is either either a QuestionForm, HTMLQuestion or an ExternalQuestion data structure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i>  A general description of the HIT.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Title</i>  The title of the HIT.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i>  The date and time the HIT was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HITLayoutId</i>  The ID of the HIT Layout of this HIT.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HITGroupId</i>  The ID of the HIT Group of this HIT.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HITTypeId</i> The ID of the HIT type of this HIT<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HITId</i>  A unique identifier for the HIT.<br/>        """
        pass

    def create_hit_type(self, Description: str, Title: str, Reward: str, AssignmentDurationInSeconds: Long, AutoApprovalDelayInSeconds: Long=None, Keywords: str=None, QualificationRequirements: List[QualificationRequirement]=None) -> CreateHITTypeResponse:
        r""" The <code>CreateHITType</code> operation creates a new HIT type. This operation allows you to define a standard set of HIT properties to use when creating HITs. If you register a HIT type with values that match an existing HIT type, the HIT type ID of the existing type will be returned. 

        :param self:
        :param QualificationRequirements:   Conditions that a Worker's Qualifications must meet in order to accept the HIT. A HIT can have between zero and ten Qualification requirements. All requirements must be met in order for a Worker to accept the HIT. Additionally, other actions can be restricted using the <code>ActionsGuarded</code> field on each <code>QualificationRequirement</code> structure. <br/>Description:   A general description of the HIT. A description includes detailed information about the kind of task the HIT contains. On the Amazon Mechanical Turk web site, the HIT description appears in the expanded view of search results, and in the HIT and assignment screens. A good description gives the user enough information to evaluate the HIT before accepting it. <br/>Keywords:   One or more words or phrases that describe the HIT, separated by commas. These words are used in searches to find HITs. <br/>Title:   The title of the HIT. A title should be short and descriptive about the kind of task the HIT contains. On the Amazon Mechanical Turk web site, the HIT title appears in search results, and everywhere the HIT is mentioned. <br/>Reward:   The amount of money the Requester will pay a Worker for successfully completing the HIT. <br/>AssignmentDurationInSeconds:   The amount of time, in seconds, that a Worker has to complete the HIT after accepting it. If a Worker does not complete the assignment within the specified duration, the assignment is considered abandoned. If the HIT is still active (that is, its lifetime has not elapsed), the assignment becomes available for other users to find and accept. <br/>AutoApprovalDelayInSeconds:   The number of seconds after an assignment for the HIT has been submitted, after which the assignment is considered Approved automatically unless the Requester explicitly rejects it. <br/>
        :return: HITTypeId:   The ID of the newly registered HIT type.<br/>        """
        pass

    def create_hit_with_hit_type(self, LifetimeInSeconds: Long, HITTypeId: str, MaxAssignments: int=None, Question: str=None, RequesterAnnotation: str=None, UniqueRequestToken: str=None, AssignmentReviewPolicy: ReviewPolicy=None, HITReviewPolicy: ReviewPolicy=None, HITLayoutId: str=None, HITLayoutParameters: List[HITLayoutParameter]=None) -> CreateHITWithHITTypeResponse:
        r""" The <code>CreateHITWithHITType</code> operation creates a new Human Intelligence Task (HIT) using an existing HITTypeID generated by the <code>CreateHITType</code> operation.   This is an alternative way to create HITs from the <code>CreateHIT</code> operation. This is the recommended best practice for Requesters who are creating large numbers of HITs.  CreateHITWithHITType also supports several ways to provide question data: by providing a value for the <code>Question</code> parameter that fully specifies the contents of the HIT, or by providing a <code>HitLayoutId</code> and associated <code>HitLayoutParameters</code>.  <note>  If a HIT is created with 10 or more maximum assignments, there is an additional fee. For more information, see <a href="https://requester.mturk.com/pricing">Amazon Mechanical Turk Pricing</a>.  </note>

        :param self:
        :param HITLayoutParameters:   If the HITLayoutId is provided, any placeholder values must be filled in with values using the HITLayoutParameter structure. For more information, see HITLayout. <br/>HITLayoutId:   The HITLayoutId allows you to use a pre-existing HIT design with placeholder values and create an additional HIT by providing those values as HITLayoutParameters.   Constraints: Either a Question parameter or a HITLayoutId parameter must be provided. <br/>HITReviewPolicy:   The HIT-level Review Policy applies to the HIT. You can specify for Mechanical Turk to take various actions based on the policy. :<br/>AssignmentReviewPolicy:   The Assignment-level Review Policy applies to the assignments under the HIT. You can specify for Mechanical Turk to take various actions based on the policy. :<br/>UniqueRequestToken:   A unique identifier for this request which allows you to retry the call on error without creating duplicate HITs. This is useful in cases such as network timeouts where it is unclear whether or not the call succeeded on the server. If the HIT already exists in the system from a previous call using the same UniqueRequestToken, subsequent calls will return a AWS.MechanicalTurk.HitAlreadyExists error with a message containing the HITId.  <note>  Note: It is your responsibility to ensure uniqueness of the token. The unique token expires after 24 hours. Subsequent calls using the same UniqueRequestToken made after the 24 hour limit could create duplicate HITs.  </note><br/>RequesterAnnotation:   An arbitrary data field. The RequesterAnnotation parameter lets your application attach arbitrary data to the HIT for tracking purposes. For example, this parameter could be an identifier internal to the Requester's application that corresponds with the HIT.   The RequesterAnnotation parameter for a HIT is only visible to the Requester who created the HIT. It is not shown to the Worker, or any other Requester.   The RequesterAnnotation parameter may be different for each HIT you submit. It does not affect how your HITs are grouped. <br/>Question:   The data the person completing the HIT uses to produce the results.   Constraints: Must be a QuestionForm data structure, an ExternalQuestion data structure, or an HTMLQuestion data structure. The XML question data must not be larger than 64 kilobytes (65,535 bytes) in size, including whitespace.  Either a Question parameter or a HITLayoutId parameter must be provided.<br/>LifetimeInSeconds:   An amount of time, in seconds, after which the HIT is no longer available for users to accept. After the lifetime of the HIT elapses, the HIT no longer appears in HIT searches, even if not all of the assignments for the HIT have been accepted. <br/>MaxAssignments:   The number of times the HIT can be accepted and completed before the HIT becomes unavailable. <br/>HITTypeId:  The HIT type ID you want to create this HIT with.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Parameters</i> Name of the parameter from the Review policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PolicyName</i>  Name of a Review Policy: SimplePlurality/2011-09-01 or ScoreMyKnownAnswers/2011-09-01 <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Parameters</i> Name of the parameter from the Review policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PolicyName</i>  Name of a Review Policy: SimplePlurality/2011-09-01 or ScoreMyKnownAnswers/2011-09-01 <br/>
        :return: HIT:   Contains the newly created HIT data. For a description of the HIT data structure as it appears in responses, see the HIT Data Structure documentation. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberOfAssignmentsCompleted</i>  The number of assignments for this HIT that have been approved or rejected.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberOfAssignmentsAvailable</i>  The number of assignments for this HIT that are available for Workers to accept.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberOfAssignmentsPending</i>  The number of assignments for this HIT that are being previewed or have been accepted by Workers, but have not yet been submitted, returned, or abandoned.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HITReviewStatus</i>  Indicates the review status of the HIT. Valid Values are NotReviewed | MarkedForReview | ReviewedAppropriate | ReviewedInappropriate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>QualificationRequirements</i>  Conditions that a Worker's Qualifications must meet in order to accept the HIT. A HIT can have between zero and ten Qualification requirements. All requirements must be met in order for a Worker to accept the HIT. Additionally, other actions can be restricted using the <code>ActionsGuarded</code> field on each <code>QualificationRequirement</code> structure. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequesterAnnotation</i>  An arbitrary data field the Requester who created the HIT can use. This field is visible only to the creator of the HIT.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssignmentDurationInSeconds</i>  The length of time, in seconds, that a Worker has to complete the HIT after accepting it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Expiration</i> The date and time the HIT expires.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoApprovalDelayInSeconds</i> The amount of time, in seconds, after the Worker submits an assignment for the HIT that the results are automatically approved by Amazon Mechanical Turk. This is the amount of time the Requester has to reject an assignment submitted by a Worker before the assignment is auto-approved and the Worker is paid. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Reward</i> A string representing a currency amount.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxAssignments</i> The number of times the HIT can be accepted and completed before the HIT becomes unavailable. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HITStatus</i> The status of the HIT and its assignments. Valid Values are Assignable | Unassignable | Reviewable | Reviewing | Disposed. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Keywords</i>  One or more words or phrases that describe the HIT, separated by commas. Search terms similar to the keywords of a HIT are more likely to have the HIT in the search results.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Question</i>  The data the Worker completing the HIT uses produce the results. This is either either a QuestionForm, HTMLQuestion or an ExternalQuestion data structure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i>  A general description of the HIT.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Title</i>  The title of the HIT.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i>  The date and time the HIT was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HITLayoutId</i>  The ID of the HIT Layout of this HIT.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HITGroupId</i>  The ID of the HIT Group of this HIT.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HITTypeId</i> The ID of the HIT type of this HIT<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HITId</i>  A unique identifier for the HIT.<br/>        """
        pass

    def create_qualification_type(self, QualificationTypeStatus: str, Description: str, Name: str, Keywords: str=None, RetryDelayInSeconds: Long=None, Test: str=None, AnswerKey: str=None, TestDurationInSeconds: Long=None, AutoGranted: Boolean=None, AutoGrantedValue: int=None) -> CreateQualificationTypeResponse:
        r""" The <code>CreateQualificationType</code> operation creates a new Qualification type, which is represented by a <code>QualificationType</code> data structure. 

        :param self:
        :param AutoGrantedValue:  The Qualification value to use for automatically granted Qualifications. This parameter is used only if the AutoGranted parameter is true.<br/>AutoGranted:  Specifies whether requests for the Qualification type are granted immediately, without prompting the Worker with a Qualification test. Constraints: If the Test parameter is specified, this parameter cannot be true.<br/>TestDurationInSeconds:  The number of seconds the Worker has to complete the Qualification test, starting from the time the Worker requests the Qualification.<br/>AnswerKey:  The answers to the Qualification test specified in the Test parameter, in the form of an AnswerKey data structure. Constraints: Must not be longer than 65535 bytes. Constraints: None. If not specified, you must process Qualification requests manually.<br/>Test:   The questions for the Qualification test a Worker must answer correctly to obtain a Qualification of this type. If this parameter is specified, <code>TestDurationInSeconds</code> must also be specified.  Constraints: Must not be longer than 65535 bytes. Must be a QuestionForm data structure. This parameter cannot be specified if AutoGranted is true. Constraints: None. If not specified, the Worker may request the Qualification without answering any questions.<br/>RetryDelayInSeconds:  The number of seconds that a Worker must wait after requesting a Qualification of the Qualification type before the worker can retry the Qualification request. Constraints: None. If not specified, retries are disabled and Workers can request a Qualification of this type only once, even if the Worker has not been granted the Qualification. It is not possible to disable retries for a Qualification type after it has been created with retries enabled. If you want to disable retries, you must delete existing retry-enabled Qualification type and then create a new Qualification type with retries disabled.<br/>QualificationTypeStatus:  The initial status of the Qualification type. Constraints: Valid values are: Active | Inactive<br/>Description:  A long description for the Qualification type. On the Amazon Mechanical Turk website, the long description is displayed when a Worker examines a Qualification type.<br/>Keywords:  One or more words or phrases that describe the Qualification type, separated by commas. The keywords of a type make the type easier to find during a search.<br/>Name:   The name you give to the Qualification type. The type name is used to represent the Qualification to Workers, and to find the type using a Qualification type search. It must be unique across all of your Qualification types.<br/>
        :return: QualificationType:  The created Qualification type, returned as a QualificationType data structure.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoGrantedValue</i>  The Qualification integer value to use for automatically granted Qualifications, if AutoGranted is true. This is 1 by default. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoGranted</i> Specifies that requests for the Qualification type are granted immediately, without prompting the Worker with a Qualification test. Valid values are True | False.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsRequestable</i>  Specifies whether the Qualification type is one that a user can request through the Amazon Mechanical Turk web site, such as by taking a Qualification test. This value is False for Qualifications assigned automatically by the system. Valid values are True | False. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RetryDelayInSeconds</i>  The amount of time, in seconds, Workers must wait after taking the Qualification test before they can take it again. Workers can take a Qualification test multiple times if they were not granted the Qualification from a previous attempt, or if the test offers a gradient score and they want a better score. If not specified, retries are disabled and Workers can request a Qualification only once. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AnswerKey</i> The answers to the Qualification test specified in the Test parameter.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TestDurationInSeconds</i>  The amount of time, in seconds, given to a Worker to complete the Qualification test, beginning from the time the Worker requests the Qualification. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Test</i>  The questions for a Qualification test associated with this Qualification type that a user can take to obtain a Qualification of this type. This parameter must be specified if AnswerKey is present. A Qualification type cannot have both a specified Test parameter and an AutoGranted value of true. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>QualificationTypeStatus</i>  The status of the Qualification type. A Qualification type's status determines if users can apply to receive a Qualification of this type, and if HITs can be created with requirements based on this type. Valid values are Active | Inactive. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Keywords</i>  One or more words or phrases that describe theQualification type, separated by commas. The Keywords make the type easier to find using a search. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i>  A long description for the Qualification type. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i>  The name of the Qualification type. The type name is used to identify the type, and to find the type using a Qualification type search. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i>  The date and time the Qualification type was created. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>QualificationTypeId</i>  A unique identifier for the Qualification type. A Qualification type is given a Qualification type ID when you call the CreateQualificationType operation. <br/>        """
        pass

    def create_worker_block(self, Reason: str, WorkerId: str) -> CreateWorkerBlockResponse:
        r"""The <code>CreateWorkerBlock</code> operation allows you to prevent a Worker from working on your HITs. For example, you can block a Worker who is producing poor quality work. You can block up to 100,000 Workers.

        :param self:
        :param Reason:  A message explaining the reason for blocking the Worker. This parameter enables you to keep track of your Workers. The Worker does not see this message.<br/>WorkerId:  The ID of the Worker to block.<br/>
        :return:         """
        pass

    def delete_hit(self, HITId: str) -> DeleteHITResponse:
        r""" The <code>DeleteHIT</code> operation is used to delete HIT that is no longer needed. Only the Requester who created the HIT can delete it.   You can only dispose of HITs that are in the <code>Reviewable</code> state, with all of their submitted assignments already either approved or rejected. If you call the DeleteHIT operation on a HIT that is not in the <code>Reviewable</code> state (for example, that has not expired, or still has active assignments), or on a HIT that is Reviewable but without all of its submitted assignments already approved or rejected, the service will return an error.  <note> <ul> <li>  HITs are automatically disposed of after 120 days.  </li> <li>  After you dispose of a HIT, you can no longer approve the HIT's rejected assignments.  </li> <li>  Disposed HITs are not returned in results for the ListHITs operation.  </li> <li>  Disposing HITs can improve the performance of operations such as ListReviewableHITs and ListHITs.  </li> </ul> </note>

        :param self:
        :param HITId:  The ID of the HIT to be deleted.<br/>
        :return:         """
        pass

    def delete_qualification_type(self, QualificationTypeId: str) -> DeleteQualificationTypeResponse:
        r""" The <code>DeleteQualificationType</code> deletes a Qualification type and deletes any HIT types that are associated with the Qualification type.  This operation does not revoke Qualifications already assigned to Workers because the Qualifications might be needed for active HITs. If there are any pending requests for the Qualification type, Amazon Mechanical Turk rejects those requests. After you delete a Qualification type, you can no longer use it to create HITs or HIT types. <note> DeleteQualificationType must wait for all the HITs that use the deleted Qualification type to be deleted before completing. It may take up to 48 hours before DeleteQualificationType completes and the unique name of the Qualification type is available for reuse with CreateQualificationType. </note>

        :param self:
        :param QualificationTypeId:  The ID of the QualificationType to dispose.<br/>
        :return:         """
        pass

    def delete_worker_block(self, WorkerId: str, Reason: str=None) -> DeleteWorkerBlockResponse:
        r"""The <code>DeleteWorkerBlock</code> operation allows you to reinstate a blocked Worker to work on your HITs. This operation reverses the effects of the CreateWorkerBlock operation. You need the Worker ID to use this operation. If the Worker ID is missing or invalid, this operation fails and returns the message “WorkerId is invalid.” If the specified Worker is not blocked, this operation returns successfully.

        :param self:
        :param Reason:  A message that explains the reason for unblocking the Worker. The Worker does not see this message.<br/>WorkerId:  The ID of the Worker to unblock.<br/>
        :return:         """
        pass

    def disassociate_qualification_from_worker(self, QualificationTypeId: str, WorkerId: str, Reason: str=None) -> DisassociateQualificationFromWorkerResponse:
        r""" The <code>DisassociateQualificationFromWorker</code> revokes a previously granted Qualification from a user.   You can provide a text message explaining why the Qualification was revoked. The user who had the Qualification can see this message. 

        :param self:
        :param Reason:  A text message that explains why the Qualification was revoked. The user who had the Qualification sees this message.<br/>QualificationTypeId:  The ID of the Qualification type of the Qualification to be revoked.<br/>WorkerId:  The ID of the Worker who possesses the Qualification to be revoked.<br/>
        :return:         """
        pass

    def get_account_balance(self) -> GetAccountBalanceResponse:
        r"""The <code>GetAccountBalance</code> operation retrieves the Prepaid HITs balance in your Amazon Mechanical Turk account if you are a Prepaid Requester. Alternatively, this operation will retrieve the remaining available AWS Billing usage if you have enabled AWS Billing. Note: If you have enabled AWS Billing and still have a remaining Prepaid HITs balance, this balance can be viewed on the My Account page in the Requester console.

        :param self:
        :param 
        :return: OnHoldBalance:  A string representing a currency amount.<br/>AvailableBalance:  A string representing a currency amount.<br/>        """
        pass

    def get_assignment(self, AssignmentId: str) -> GetAssignmentResponse:
        r""" The <code>GetAssignment</code> operation retrieves the details of the specified Assignment. 

        :param self:
        :param AssignmentId:  The ID of the Assignment to be retrieved.<br/>
        :return: HIT:   The HIT associated with this assignment. The response includes one HIT element.:<br/>Assignment:   The assignment. The response includes one Assignment element. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequesterFeedback</i>  The feedback string included with the call to the ApproveAssignment operation or the RejectAssignment operation, if the Requester approved or rejected the assignment and specified feedback.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Answer</i>  The Worker's answers submitted for the HIT contained in a QuestionFormAnswers document, if the Worker provides an answer. If the Worker does not provide any answers, Answer may contain a QuestionFormAnswers document, or Answer may be empty.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Deadline</i>  The date and time of the deadline for the assignment. This value is derived from the deadline specification for the HIT and the date and time the Worker accepted the HIT.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RejectionTime</i>  If the Worker has submitted results and the Requester has rejected the results, RejectionTime is the date and time the Requester rejected the results.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApprovalTime</i>  If the Worker has submitted results and the Requester has approved the results, ApprovalTime is the date and time the Requester approved the results. This value is omitted from the assignment if the Requester has not yet approved the results.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubmitTime</i>  If the Worker has submitted results, SubmitTime is the date and time the assignment was submitted. This value is omitted from the assignment if the Worker has not yet submitted results.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AcceptTime</i>  The date and time the Worker accepted the assignment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoApprovalTime</i>  If results have been submitted, AutoApprovalTime is the date and time the results of the assignment results are considered Approved automatically if they have not already been explicitly approved or rejected by the Requester. This value is derived from the auto-approval delay specified by the Requester in the HIT. This value is omitted from the assignment if the Worker has not yet submitted results.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssignmentStatus</i>  The status of the assignment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HITId</i>  The ID of the HIT.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WorkerId</i>  The ID of the Worker who accepted the HIT.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssignmentId</i>  A unique identifier for the assignment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberOfAssignmentsCompleted</i>  The number of assignments for this HIT that have been approved or rejected.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberOfAssignmentsAvailable</i>  The number of assignments for this HIT that are available for Workers to accept.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberOfAssignmentsPending</i>  The number of assignments for this HIT that are being previewed or have been accepted by Workers, but have not yet been submitted, returned, or abandoned.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HITReviewStatus</i>  Indicates the review status of the HIT. Valid Values are NotReviewed | MarkedForReview | ReviewedAppropriate | ReviewedInappropriate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>QualificationRequirements</i>  Conditions that a Worker's Qualifications must meet in order to accept the HIT. A HIT can have between zero and ten Qualification requirements. All requirements must be met in order for a Worker to accept the HIT. Additionally, other actions can be restricted using the <code>ActionsGuarded</code> field on each <code>QualificationRequirement</code> structure. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequesterAnnotation</i>  An arbitrary data field the Requester who created the HIT can use. This field is visible only to the creator of the HIT.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssignmentDurationInSeconds</i>  The length of time, in seconds, that a Worker has to complete the HIT after accepting it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Expiration</i> The date and time the HIT expires.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoApprovalDelayInSeconds</i> The amount of time, in seconds, after the Worker submits an assignment for the HIT that the results are automatically approved by Amazon Mechanical Turk. This is the amount of time the Requester has to reject an assignment submitted by a Worker before the assignment is auto-approved and the Worker is paid. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Reward</i> A string representing a currency amount.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxAssignments</i> The number of times the HIT can be accepted and completed before the HIT becomes unavailable. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HITStatus</i> The status of the HIT and its assignments. Valid Values are Assignable | Unassignable | Reviewable | Reviewing | Disposed. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Keywords</i>  One or more words or phrases that describe the HIT, separated by commas. Search terms similar to the keywords of a HIT are more likely to have the HIT in the search results.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Question</i>  The data the Worker completing the HIT uses produce the results. This is either either a QuestionForm, HTMLQuestion or an ExternalQuestion data structure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i>  A general description of the HIT.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Title</i>  The title of the HIT.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i>  The date and time the HIT was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HITLayoutId</i>  The ID of the HIT Layout of this HIT.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HITGroupId</i>  The ID of the HIT Group of this HIT.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HITTypeId</i> The ID of the HIT type of this HIT<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HITId</i>  A unique identifier for the HIT.<br/>        """
        pass

    def get_file_upload_url(self, QuestionIdentifier: str, AssignmentId: str) -> GetFileUploadURLResponse:
        r""" The <code>GetFileUploadURL</code> operation generates and returns a temporary URL. You use the temporary URL to retrieve a file uploaded by a Worker as an answer to a FileUploadAnswer question for a HIT. The temporary URL is generated the instant the GetFileUploadURL operation is called, and is valid for 60 seconds. You can get a temporary file upload URL any time until the HIT is disposed. After the HIT is disposed, any uploaded files are deleted, and cannot be retrieved. Pending Deprecation on December 12, 2017. The Answer Specification structure will no longer support the <code>FileUploadAnswer</code> element to be used for the QuestionForm data structure. Instead, we recommend that Requesters who want to create HITs asking Workers to upload files to use Amazon S3. 

        :param self:
        :param QuestionIdentifier:  The identifier of the question with a FileUploadAnswer, as specified in the QuestionForm of the HIT.<br/>AssignmentId:  The ID of the assignment that contains the question with a FileUploadAnswer.<br/>
        :return: FileUploadURL:   A temporary URL for the file that the Worker uploaded for the answer. <br/>        """
        pass

    def get_hit(self, HITId: str) -> GetHITResponse:
        r""" The <code>GetHIT</code> operation retrieves the details of the specified HIT. 

        :param self:
        :param HITId:  The ID of the HIT to be retrieved.<br/>
        :return: HIT:   Contains the requested HIT data.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberOfAssignmentsCompleted</i>  The number of assignments for this HIT that have been approved or rejected.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberOfAssignmentsAvailable</i>  The number of assignments for this HIT that are available for Workers to accept.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberOfAssignmentsPending</i>  The number of assignments for this HIT that are being previewed or have been accepted by Workers, but have not yet been submitted, returned, or abandoned.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HITReviewStatus</i>  Indicates the review status of the HIT. Valid Values are NotReviewed | MarkedForReview | ReviewedAppropriate | ReviewedInappropriate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>QualificationRequirements</i>  Conditions that a Worker's Qualifications must meet in order to accept the HIT. A HIT can have between zero and ten Qualification requirements. All requirements must be met in order for a Worker to accept the HIT. Additionally, other actions can be restricted using the <code>ActionsGuarded</code> field on each <code>QualificationRequirement</code> structure. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequesterAnnotation</i>  An arbitrary data field the Requester who created the HIT can use. This field is visible only to the creator of the HIT.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssignmentDurationInSeconds</i>  The length of time, in seconds, that a Worker has to complete the HIT after accepting it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Expiration</i> The date and time the HIT expires.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoApprovalDelayInSeconds</i> The amount of time, in seconds, after the Worker submits an assignment for the HIT that the results are automatically approved by Amazon Mechanical Turk. This is the amount of time the Requester has to reject an assignment submitted by a Worker before the assignment is auto-approved and the Worker is paid. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Reward</i> A string representing a currency amount.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxAssignments</i> The number of times the HIT can be accepted and completed before the HIT becomes unavailable. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HITStatus</i> The status of the HIT and its assignments. Valid Values are Assignable | Unassignable | Reviewable | Reviewing | Disposed. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Keywords</i>  One or more words or phrases that describe the HIT, separated by commas. Search terms similar to the keywords of a HIT are more likely to have the HIT in the search results.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Question</i>  The data the Worker completing the HIT uses produce the results. This is either either a QuestionForm, HTMLQuestion or an ExternalQuestion data structure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i>  A general description of the HIT.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Title</i>  The title of the HIT.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i>  The date and time the HIT was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HITLayoutId</i>  The ID of the HIT Layout of this HIT.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HITGroupId</i>  The ID of the HIT Group of this HIT.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HITTypeId</i> The ID of the HIT type of this HIT<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HITId</i>  A unique identifier for the HIT.<br/>        """
        pass

    def get_qualification_score(self, WorkerId: str, QualificationTypeId: str) -> GetQualificationScoreResponse:
        r""" The <code>GetQualificationScore</code> operation returns the value of a Worker's Qualification for a given Qualification type.   To get a Worker's Qualification, you must know the Worker's ID. The Worker's ID is included in the assignment data returned by the <code>ListAssignmentsForHIT</code> operation.  Only the owner of a Qualification type can query the value of a Worker's Qualification of that type.

        :param self:
        :param WorkerId:  The ID of the Worker whose Qualification is being updated.<br/>QualificationTypeId:  The ID of the QualificationType.<br/>
        :return: Qualification:   The Qualification data structure of the Qualification assigned to a user, including the Qualification type and the value (score). :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i>  The status of the Qualification. Valid values are Granted | Revoked.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LocaleValue</i> The Locale data structure represents a geographical region or location.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>LocaleValue</b>: The Locale data structure represents a geographical region or location.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IntegerValue</i>  The value (score) of the Qualification, if the Qualification has an integer value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GrantTime</i>  The date and time the Qualification was granted to the Worker. If the Worker's Qualification was revoked, and then re-granted based on a new Qualification request, GrantTime is the date and time of the last call to the AcceptQualificationRequest operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WorkerId</i>  The ID of the Worker who possesses the Qualification. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>QualificationTypeId</i>  The ID of the Qualification type for the Qualification.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Subdivision</i> The state or subdivision of the locale. A valid ISO 3166-2 subdivision code. For example, the code WA refers to the state of Washington.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Country</i>  The country of the locale. Must be a valid ISO 3166 country code. For example, the code US refers to the United States of America. <br/>        """
        pass

    def get_qualification_type(self, QualificationTypeId: str) -> GetQualificationTypeResponse:
        r""" The <code>GetQualificationType</code>operation retrieves information about a Qualification type using its ID. 

        :param self:
        :param QualificationTypeId:  The ID of the QualificationType.<br/>
        :return: QualificationType:   The returned Qualification Type:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoGrantedValue</i>  The Qualification integer value to use for automatically granted Qualifications, if AutoGranted is true. This is 1 by default. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoGranted</i> Specifies that requests for the Qualification type are granted immediately, without prompting the Worker with a Qualification test. Valid values are True | False.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsRequestable</i>  Specifies whether the Qualification type is one that a user can request through the Amazon Mechanical Turk web site, such as by taking a Qualification test. This value is False for Qualifications assigned automatically by the system. Valid values are True | False. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RetryDelayInSeconds</i>  The amount of time, in seconds, Workers must wait after taking the Qualification test before they can take it again. Workers can take a Qualification test multiple times if they were not granted the Qualification from a previous attempt, or if the test offers a gradient score and they want a better score. If not specified, retries are disabled and Workers can request a Qualification only once. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AnswerKey</i> The answers to the Qualification test specified in the Test parameter.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TestDurationInSeconds</i>  The amount of time, in seconds, given to a Worker to complete the Qualification test, beginning from the time the Worker requests the Qualification. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Test</i>  The questions for a Qualification test associated with this Qualification type that a user can take to obtain a Qualification of this type. This parameter must be specified if AnswerKey is present. A Qualification type cannot have both a specified Test parameter and an AutoGranted value of true. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>QualificationTypeStatus</i>  The status of the Qualification type. A Qualification type's status determines if users can apply to receive a Qualification of this type, and if HITs can be created with requirements based on this type. Valid values are Active | Inactive. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Keywords</i>  One or more words or phrases that describe theQualification type, separated by commas. The Keywords make the type easier to find using a search. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i>  A long description for the Qualification type. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i>  The name of the Qualification type. The type name is used to identify the type, and to find the type using a Qualification type search. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i>  The date and time the Qualification type was created. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>QualificationTypeId</i>  A unique identifier for the Qualification type. A Qualification type is given a Qualification type ID when you call the CreateQualificationType operation. <br/>        """
        pass

    def list_assignments_for_hit(self, HITId: str, NextToken: str=None, MaxResults: int=None, AssignmentStatuses: List[AssignmentStatus]=None) -> ListAssignmentsForHITResponse:
        r""" The <code>ListAssignmentsForHIT</code> operation retrieves completed assignments for a HIT. You can use this operation to retrieve the results for a HIT.   You can get assignments for a HIT at any time, even if the HIT is not yet Reviewable. If a HIT requested multiple assignments, and has received some results but has not yet become Reviewable, you can still retrieve the partial results with this operation.   Use the AssignmentStatus parameter to control which set of assignments for a HIT are returned. The ListAssignmentsForHIT operation can return submitted assignments awaiting approval, or it can return assignments that have already been approved or rejected. You can set AssignmentStatus=Approved,Rejected to get assignments that have already been approved and rejected together in one result set.   Only the Requester who created the HIT can retrieve the assignments for that HIT.   Results are sorted and divided into numbered pages and the operation returns a single page of results. You can use the parameters of the operation to control sorting and pagination. 

        :param self:
        :param AssignmentStatuses:  The status of the assignments to return: Submitted | Approved | Rejected<br/>MaxResults:  <br/>NextToken:  Pagination token<br/>HITId:  The ID of the HIT.<br/>
        :return: Assignments:   The collection of Assignment data structures returned by this call.<br/>NumResults:   The number of assignments on the page in the filtered results list, equivalent to the number of assignments returned by this call.<br/>NextToken:  If the previous response was incomplete (because there is more data to retrieve), Amazon Mechanical Turk returns a pagination token in the response. You can use this pagination token to retrieve the next set of results. <br/>        """
        pass

    def list_bonus_payments(self, HITId: str=None, AssignmentId: str=None, NextToken: str=None, MaxResults: int=None) -> ListBonusPaymentsResponse:
        r""" The <code>ListBonusPayments</code> operation retrieves the amounts of bonuses you have paid to Workers for a given HIT or assignment. 

        :param self:
        :param MaxResults:  <br/>NextToken:  Pagination token<br/>AssignmentId:  The ID of the assignment associated with the bonus payments to retrieve. If specified, only bonus payments for the given assignment are returned. Either the HITId parameter or the AssignmentId parameter must be specified<br/>HITId:  The ID of the HIT associated with the bonus payments to retrieve. If not specified, all bonus payments for all assignments for the given HIT are returned. Either the HITId parameter or the AssignmentId parameter must be specified<br/>
        :return: BonusPayments:  A successful request to the ListBonusPayments operation returns a list of BonusPayment objects. <br/>NextToken:  If the previous response was incomplete (because there is more data to retrieve), Amazon Mechanical Turk returns a pagination token in the response. You can use this pagination token to retrieve the next set of results. <br/>NumResults:  The number of bonus payments on this page in the filtered results list, equivalent to the number of bonus payments being returned by this call. <br/>        """
        pass

    def list_hits(self, NextToken: str=None, MaxResults: int=None) -> ListHITsResponse:
        r""" The <code>ListHITs</code> operation returns all of a Requester's HITs. The operation returns HITs of any status, except for HITs that have been deleted of with the DeleteHIT operation or that have been auto-deleted. 

        :param self:
        :param MaxResults:  <br/>NextToken:  Pagination token<br/>
        :return: HITs:   The list of HIT elements returned by the query.<br/>NumResults:  The number of HITs on this page in the filtered results list, equivalent to the number of HITs being returned by this call.<br/>NextToken:  If the previous response was incomplete (because there is more data to retrieve), Amazon Mechanical Turk returns a pagination token in the response. You can use this pagination token to retrieve the next set of results. <br/>        """
        pass

    def list_hits_for_qualification_type(self, QualificationTypeId: str, NextToken: str=None, MaxResults: int=None) -> ListHITsForQualificationTypeResponse:
        r""" The <code>ListHITsForQualificationType</code> operation returns the HITs that use the given Qualification type for a Qualification requirement. The operation returns HITs of any status, except for HITs that have been deleted with the <code>DeleteHIT</code> operation or that have been auto-deleted. 

        :param self:
        :param MaxResults:   Limit the number of results returned. <br/>NextToken:  Pagination Token<br/>QualificationTypeId:   The ID of the Qualification type to use when querying HITs. <br/>
        :return: HITs:   The list of HIT elements returned by the query.<br/>NumResults:   The number of HITs on this page in the filtered results list, equivalent to the number of HITs being returned by this call. <br/>NextToken:  If the previous response was incomplete (because there is more data to retrieve), Amazon Mechanical Turk returns a pagination token in the response. You can use this pagination token to retrieve the next set of results. <br/>        """
        pass

    def list_qualification_requests(self, QualificationTypeId: str=None, NextToken: str=None, MaxResults: int=None) -> ListQualificationRequestsResponse:
        r""" The <code>ListQualificationRequests</code> operation retrieves requests for Qualifications of a particular Qualification type. The owner of the Qualification type calls this operation to poll for pending requests, and accepts them using the AcceptQualification operation. 

        :param self:
        :param MaxResults:   The maximum number of results to return in a single call. <br/>NextToken:  If the previous response was incomplete (because there is more data to retrieve), Amazon Mechanical Turk returns a pagination token in the response. You can use this pagination token to retrieve the next set of results. <br/>QualificationTypeId:  The ID of the QualificationType.<br/>
        :return: QualificationRequests:  The Qualification request. The response includes one QualificationRequest element for each Qualification request returned by the query.<br/>NextToken:  If the previous response was incomplete (because there is more data to retrieve), Amazon Mechanical Turk returns a pagination token in the response. You can use this pagination token to retrieve the next set of results. <br/>NumResults:  The number of Qualification requests on this page in the filtered results list, equivalent to the number of Qualification requests being returned by this call.<br/>        """
        pass

    def list_qualification_types(self, MustBeRequestable: Boolean, Query: str=None, MustBeOwnedByCaller: Boolean=None, NextToken: str=None, MaxResults: int=None) -> ListQualificationTypesResponse:
        r""" The <code>ListQualificationTypes</code> operation returns a list of Qualification types, filtered by an optional search term. 

        :param self:
        :param MaxResults:   The maximum number of results to return in a single call. <br/>NextToken:  If the previous response was incomplete (because there is more data to retrieve), Amazon Mechanical Turk returns a pagination token in the response. You can use this pagination token to retrieve the next set of results. <br/>MustBeOwnedByCaller:   Specifies that only Qualification types that the Requester created are returned. If false, the operation returns all Qualification types. <br/>MustBeRequestable:  Specifies that only Qualification types that a user can request through the Amazon Mechanical Turk web site, such as by taking a Qualification test, are returned as results of the search. Some Qualification types, such as those assigned automatically by the system, cannot be requested directly by users. If false, all Qualification types, including those managed by the system, are considered. Valid values are True | False. <br/>Query:   A text query against all of the searchable attributes of Qualification types. <br/>
        :return: QualificationTypes:   The list of QualificationType elements returned by the query. <br/>NextToken:  If the previous response was incomplete (because there is more data to retrieve), Amazon Mechanical Turk returns a pagination token in the response. You can use this pagination token to retrieve the next set of results. <br/>NumResults:   The number of Qualification types on this page in the filtered results list, equivalent to the number of types this operation returns. <br/>        """
        pass

    def list_review_policy_results_for_hit(self, HITId: str, PolicyLevels: List[ReviewPolicyLevel]=None, RetrieveActions: Boolean=None, RetrieveResults: Boolean=None, NextToken: str=None, MaxResults: int=None) -> ListReviewPolicyResultsForHITResponse:
        r""" The <code>ListReviewPolicyResultsForHIT</code> operation retrieves the computed results and the actions taken in the course of executing your Review Policies for a given HIT. For information about how to specify Review Policies when you call CreateHIT, see Review Policies. The ListReviewPolicyResultsForHIT operation can return results for both Assignment-level and HIT-level review results. 

        :param self:
        :param MaxResults:  Limit the number of results returned.<br/>NextToken:  Pagination token<br/>RetrieveResults:   Specify if the operation should retrieve a list of the results computed by the Review Policies. <br/>RetrieveActions:   Specify if the operation should retrieve a list of the actions taken executing the Review Policies and their outcomes. <br/>PolicyLevels:   The Policy Level(s) to retrieve review results for - HIT or Assignment. If omitted, the default behavior is to retrieve all data for both policy levels. For a list of all the described policies, see Review Policies. <br/>HITId:  The unique identifier of the HIT to retrieve review results for.<br/>
        :return: NextToken:  If the previous response was incomplete (because there is more data to retrieve), Amazon Mechanical Turk returns a pagination token in the response. You can use this pagination token to retrieve the next set of results. <br/>HITReviewReport:  Contains both ReviewResult and ReviewAction elements for a particular HIT. :<br/>AssignmentReviewReport:   Contains both ReviewResult and ReviewAction elements for an Assignment. :<br/>HITReviewPolicy:  The name of the HIT-level Review Policy. This contains only the PolicyName element.:<br/>AssignmentReviewPolicy:   The name of the Assignment-level Review Policy. This contains only the PolicyName element. :<br/>HITId:  The HITId of the HIT for which results have been returned.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Parameters</i> Name of the parameter from the Review policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PolicyName</i>  Name of a Review Policy: SimplePlurality/2011-09-01 or ScoreMyKnownAnswers/2011-09-01 <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Parameters</i> Name of the parameter from the Review policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PolicyName</i>  Name of a Review Policy: SimplePlurality/2011-09-01 or ScoreMyKnownAnswers/2011-09-01 <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReviewActions</i>  A list of ReviewAction objects for each action specified in the Review Policy. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReviewResults</i>  A list of ReviewResults objects for each action specified in the Review Policy. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReviewActions</i>  A list of ReviewAction objects for each action specified in the Review Policy. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReviewResults</i>  A list of ReviewResults objects for each action specified in the Review Policy. <br/>        """
        pass

    def list_reviewable_hits(self, HITTypeId: str=None, Status: str=None, NextToken: str=None, MaxResults: int=None) -> ListReviewableHITsResponse:
        r""" The <code>ListReviewableHITs</code> operation retrieves the HITs with Status equal to Reviewable or Status equal to Reviewing that belong to the Requester calling the operation. 

        :param self:
        :param MaxResults:   Limit the number of results returned. <br/>NextToken:  Pagination Token<br/>Status:   Can be either <code>Reviewable</code> or <code>Reviewing</code>. Reviewable is the default value. <br/>HITTypeId:   The ID of the HIT type of the HITs to consider for the query. If not specified, all HITs for the Reviewer are considered <br/>
        :return: HITs:   The list of HIT elements returned by the query.<br/>NumResults:   The number of HITs on this page in the filtered results list, equivalent to the number of HITs being returned by this call. <br/>NextToken:  If the previous response was incomplete (because there is more data to retrieve), Amazon Mechanical Turk returns a pagination token in the response. You can use this pagination token to retrieve the next set of results. <br/>        """
        pass

    def list_worker_blocks(self, NextToken: str=None, MaxResults: int=None) -> ListWorkerBlocksResponse:
        r"""The <code>ListWorkersBlocks</code> operation retrieves a list of Workers who are blocked from working on your HITs.

        :param self:
        :param MaxResults:  <br/>NextToken:  Pagination token<br/>
        :return: WorkerBlocks:   The list of WorkerBlocks, containing the collection of Worker IDs and reasons for blocking.<br/>NumResults:   The number of assignments on the page in the filtered results list, equivalent to the number of assignments returned by this call.<br/>NextToken:  If the previous response was incomplete (because there is more data to retrieve), Amazon Mechanical Turk returns a pagination token in the response. You can use this pagination token to retrieve the next set of results. <br/>        """
        pass

    def list_workers_with_qualification_type(self, QualificationTypeId: str, Status: str=None, NextToken: str=None, MaxResults: int=None) -> ListWorkersWithQualificationTypeResponse:
        r""" The <code>ListWorkersWithQualificationType</code> operation returns all of the Workers that have been associated with a given Qualification type. 

        :param self:
        :param MaxResults:   Limit the number of results returned. <br/>NextToken:  Pagination Token<br/>Status:   The status of the Qualifications to return. Can be <code>Granted | Revoked</code>. <br/>QualificationTypeId:  The ID of the Qualification type of the Qualifications to return.<br/>
        :return: Qualifications:   The list of Qualification elements returned by this call. <br/>NumResults:   The number of Qualifications on this page in the filtered results list, equivalent to the number of Qualifications being returned by this call.<br/>NextToken:  If the previous response was incomplete (because there is more data to retrieve), Amazon Mechanical Turk returns a pagination token in the response. You can use this pagination token to retrieve the next set of results. <br/>        """
        pass

    def notify_workers(self, WorkerIds: List[CustomerId], MessageText: str, Subject: str) -> NotifyWorkersResponse:
        r""" The <code>NotifyWorkers</code> operation sends an email to one or more Workers that you specify with the Worker ID. You can specify up to 100 Worker IDs to send the same message with a single call to the NotifyWorkers operation. The NotifyWorkers operation will send a notification email to a Worker only if you have previously approved or rejected work from the Worker. 

        :param self:
        :param WorkerIds:  A list of Worker IDs you wish to notify. You can notify upto 100 Workers at a time.<br/>MessageText:  The text of the email message to send. Can include up to 4,096 characters<br/>Subject:  The subject line of the email message to send. Can include up to 200 characters.<br/>
        :return: NotifyWorkersFailureStatuses:   When MTurk sends notifications to the list of Workers, it returns back any failures it encounters in this list of NotifyWorkersFailureStatus objects. <br/>        """
        pass

    def reject_assignment(self, RequesterFeedback: str, AssignmentId: str) -> RejectAssignmentResponse:
        r""" The <code>RejectAssignment</code> operation rejects the results of a completed assignment.   You can include an optional feedback message with the rejection, which the Worker can see in the Status section of the web site. When you include a feedback message with the rejection, it helps the Worker understand why the assignment was rejected, and can improve the quality of the results the Worker submits in the future.   Only the Requester who created the HIT can reject an assignment for the HIT. 

        :param self:
        :param RequesterFeedback:   A message for the Worker, which the Worker can see in the Status section of the web site. <br/>AssignmentId:   The ID of the assignment. The assignment must correspond to a HIT created by the Requester. <br/>
        :return:         """
        pass

    def reject_qualification_request(self, QualificationRequestId: str, Reason: str=None) -> RejectQualificationRequestResponse:
        r""" The <code>RejectQualificationRequest</code> operation rejects a user's request for a Qualification.   You can provide a text message explaining why the request was rejected. The Worker who made the request can see this message.

        :param self:
        :param Reason:  A text message explaining why the request was rejected, to be shown to the Worker who made the request.<br/>QualificationRequestId:   The ID of the Qualification request, as returned by the <code>ListQualificationRequests</code> operation. <br/>
        :return:         """
        pass

    def send_bonus(self, Reason: str, AssignmentId: str, BonusAmount: str, WorkerId: str, UniqueRequestToken: str=None) -> SendBonusResponse:
        r""" The <code>SendBonus</code> operation issues a payment of money from your account to a Worker. This payment happens separately from the reward you pay to the Worker when you approve the Worker's assignment. The SendBonus operation requires the Worker's ID and the assignment ID as parameters to initiate payment of the bonus. You must include a message that explains the reason for the bonus payment, as the Worker may not be expecting the payment. Amazon Mechanical Turk collects a fee for bonus payments, similar to the HIT listing fee. This operation fails if your account does not have enough funds to pay for both the bonus and the fees. 

        :param self:
        :param UniqueRequestToken:  A unique identifier for this request, which allows you to retry the call on error without granting multiple bonuses. This is useful in cases such as network timeouts where it is unclear whether or not the call succeeded on the server. If the bonus already exists in the system from a previous call using the same UniqueRequestToken, subsequent calls will return an error with a message containing the request ID.<br/>Reason:  A message that explains the reason for the bonus payment. The Worker receiving the bonus can see this message.<br/>AssignmentId:  The ID of the assignment for which this bonus is paid.<br/>BonusAmount:   The Bonus amount is a US Dollar amount specified using a string (for example, "5" represents $5.00 USD and "101.42" represents $101.42 USD). Do not include currency symbols or currency codes. <br/>WorkerId:  The ID of the Worker being paid the bonus.<br/>
        :return:         """
        pass

    def send_test_event_notification(self, TestEventType: str, Notification: NotificationSpecification) -> SendTestEventNotificationResponse:
        r""" The <code>SendTestEventNotification</code> operation causes Amazon Mechanical Turk to send a notification message as if a HIT event occurred, according to the provided notification specification. This allows you to test notifications without setting up notifications for a real HIT type and trying to trigger them using the website. When you call this operation, the service attempts to send the test notification immediately. 

        :param self:
        :param TestEventType:   The event to simulate to test the notification specification. This event is included in the test message even if the notification specification does not include the event type. The notification specification does not filter out the test event. <br/>Notification:   The notification specification to test. This value is identical to the value you would provide to the UpdateNotificationSettings operation when you establish the notification specification for a HIT type. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EventTypes</i>  The list of events that should cause notifications to be sent. Valid Values: AssignmentAccepted | AssignmentAbandoned | AssignmentReturned | AssignmentSubmitted | AssignmentRejected | AssignmentApproved | HITCreated | HITExtended | HITDisposed | HITReviewable | HITExpired | Ping. The Ping event is only valid for the SendTestEventNotification operation. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The version of the Notification API to use. Valid value is 2006-05-05.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Transport</i>  The method Amazon Mechanical Turk uses to send the notification. Valid Values: Email | SQS | SNS. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Destination</i>  The target for notification messages. The Destination’s format is determined by the specified Transport:  <ul> <li> When Transport is Email, the Destination is your email address. </li> <li> When Transport is SQS, the Destination is your queue URL. </li> <li> When Transport is SNS, the Destination is the ARN of your topic. </li> </ul><br/>
        :return:         """
        pass

    def update_expiration_for_hit(self, ExpireAt: Timestamp, HITId: str) -> UpdateExpirationForHITResponse:
        r""" The <code>UpdateExpirationForHIT</code> operation allows you update the expiration time of a HIT. If you update it to a time in the past, the HIT will be immediately expired. 

        :param self:
        :param ExpireAt:   The date and time at which you want the HIT to expire <br/>HITId:   The HIT to update. <br/>
        :return:         """
        pass

    def update_hit_review_status(self, HITId: str, Revert: Boolean=None) -> UpdateHITReviewStatusResponse:
        r""" The <code>UpdateHITReviewStatus</code> operation updates the status of a HIT. If the status is Reviewable, this operation can update the status to Reviewing, or it can revert a Reviewing HIT back to the Reviewable status. 

        :param self:
        :param Revert:   Specifies how to update the HIT status. Default is <code>False</code>.  <ul> <li>  Setting this to false will only transition a HIT from <code>Reviewable</code> to <code>Reviewing</code>  </li> <li>  Setting this to true will only transition a HIT from <code>Reviewing</code> to <code>Reviewable</code>  </li> </ul><br/>HITId:   The ID of the HIT to update. <br/>
        :return:         """
        pass

    def update_hit_type_of_hit(self, HITTypeId: str, HITId: str) -> UpdateHITTypeOfHITResponse:
        r""" The <code>UpdateHITTypeOfHIT</code> operation allows you to change the HITType properties of a HIT. This operation disassociates the HIT from its old HITType properties and associates it with the new HITType properties. The HIT takes on the properties of the new HITType in place of the old ones. 

        :param self:
        :param HITTypeId:  The ID of the new HIT type.<br/>HITId:  The HIT to update.<br/>
        :return:         """
        pass

    def update_notification_settings(self, HITTypeId: str, Notification: NotificationSpecification=None, Active: Boolean=None) -> UpdateNotificationSettingsResponse:
        r""" The <code>UpdateNotificationSettings</code> operation creates, updates, disables or re-enables notifications for a HIT type. If you call the UpdateNotificationSettings operation for a HIT type that already has a notification specification, the operation replaces the old specification with a new one. You can call the UpdateNotificationSettings operation to enable or disable notifications for the HIT type, without having to modify the notification specification itself by providing updates to the Active status without specifying a new notification specification. To change the Active status of a HIT type's notifications, the HIT type must already have a notification specification, or one must be provided in the same call to <code>UpdateNotificationSettings</code>. 

        :param self:
        :param Active:   Specifies whether notifications are sent for HITs of this HIT type, according to the notification specification. You must specify either the Notification parameter or the Active parameter for the call to UpdateNotificationSettings to succeed. <br/>Notification:   The notification specification for the HIT type. :<br/>HITTypeId:   The ID of the HIT type whose notification specification is being updated. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EventTypes</i>  The list of events that should cause notifications to be sent. Valid Values: AssignmentAccepted | AssignmentAbandoned | AssignmentReturned | AssignmentSubmitted | AssignmentRejected | AssignmentApproved | HITCreated | HITExtended | HITDisposed | HITReviewable | HITExpired | Ping. The Ping event is only valid for the SendTestEventNotification operation. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The version of the Notification API to use. Valid value is 2006-05-05.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Transport</i>  The method Amazon Mechanical Turk uses to send the notification. Valid Values: Email | SQS | SNS. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Destination</i>  The target for notification messages. The Destination’s format is determined by the specified Transport:  <ul> <li> When Transport is Email, the Destination is your email address. </li> <li> When Transport is SQS, the Destination is your queue URL. </li> <li> When Transport is SNS, the Destination is the ARN of your topic. </li> </ul><br/>
        :return:         """
        pass

    def update_qualification_type(self, QualificationTypeId: str, Description: str=None, QualificationTypeStatus: str=None, Test: str=None, AnswerKey: str=None, TestDurationInSeconds: Long=None, RetryDelayInSeconds: Long=None, AutoGranted: Boolean=None, AutoGrantedValue: int=None) -> UpdateQualificationTypeResponse:
        r""" The <code>UpdateQualificationType</code> operation modifies the attributes of an existing Qualification type, which is represented by a QualificationType data structure. Only the owner of a Qualification type can modify its attributes.   Most attributes of a Qualification type can be changed after the type has been created. However, the Name and Keywords fields cannot be modified. The RetryDelayInSeconds parameter can be modified or added to change the delay or to enable retries, but RetryDelayInSeconds cannot be used to disable retries.   You can use this operation to update the test for a Qualification type. The test is updated based on the values specified for the Test, TestDurationInSeconds and AnswerKey parameters. All three parameters specify the updated test. If you are updating the test for a type, you must specify the Test and TestDurationInSeconds parameters. The AnswerKey parameter is optional; omitting it specifies that the updated test does not have an answer key.   If you omit the Test parameter, the test for the Qualification type is unchanged. There is no way to remove a test from a Qualification type that has one. If the type already has a test, you cannot update it to be AutoGranted. If the Qualification type does not have a test and one is provided by an update, the type will henceforth have a test.   If you want to update the test duration or answer key for an existing test without changing the questions, you must specify a Test parameter with the original questions, along with the updated values.   If you provide an updated Test but no AnswerKey, the new test will not have an answer key. Requests for such Qualifications must be granted manually.   You can also update the AutoGranted and AutoGrantedValue attributes of the Qualification type.

        :param self:
        :param AutoGrantedValue:  The Qualification value to use for automatically granted Qualifications. This parameter is used only if the AutoGranted parameter is true.<br/>AutoGranted:  Specifies whether requests for the Qualification type are granted immediately, without prompting the Worker with a Qualification test. Constraints: If the Test parameter is specified, this parameter cannot be true.<br/>RetryDelayInSeconds:  The amount of time, in seconds, that Workers must wait after requesting a Qualification of the specified Qualification type before they can retry the Qualification request. It is not possible to disable retries for a Qualification type after it has been created with retries enabled. If you want to disable retries, you must dispose of the existing retry-enabled Qualification type using DisposeQualificationType and then create a new Qualification type with retries disabled using CreateQualificationType.<br/>TestDurationInSeconds:  The number of seconds the Worker has to complete the Qualification test, starting from the time the Worker requests the Qualification.<br/>AnswerKey:  The answers to the Qualification test specified in the Test parameter, in the form of an AnswerKey data structure.<br/>Test:  The questions for the Qualification test a Worker must answer correctly to obtain a Qualification of this type. If this parameter is specified, <code>TestDurationInSeconds</code> must also be specified. Constraints: Must not be longer than 65535 bytes. Must be a QuestionForm data structure. This parameter cannot be specified if AutoGranted is true. Constraints: None. If not specified, the Worker may request the Qualification without answering any questions.<br/>QualificationTypeStatus:  The new status of the Qualification type - Active | Inactive<br/>Description:  The new description of the Qualification type.<br/>QualificationTypeId:  The ID of the Qualification type to update.<br/>
        :return: QualificationType:   Contains a QualificationType data structure.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoGrantedValue</i>  The Qualification integer value to use for automatically granted Qualifications, if AutoGranted is true. This is 1 by default. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoGranted</i> Specifies that requests for the Qualification type are granted immediately, without prompting the Worker with a Qualification test. Valid values are True | False.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsRequestable</i>  Specifies whether the Qualification type is one that a user can request through the Amazon Mechanical Turk web site, such as by taking a Qualification test. This value is False for Qualifications assigned automatically by the system. Valid values are True | False. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RetryDelayInSeconds</i>  The amount of time, in seconds, Workers must wait after taking the Qualification test before they can take it again. Workers can take a Qualification test multiple times if they were not granted the Qualification from a previous attempt, or if the test offers a gradient score and they want a better score. If not specified, retries are disabled and Workers can request a Qualification only once. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AnswerKey</i> The answers to the Qualification test specified in the Test parameter.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TestDurationInSeconds</i>  The amount of time, in seconds, given to a Worker to complete the Qualification test, beginning from the time the Worker requests the Qualification. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Test</i>  The questions for a Qualification test associated with this Qualification type that a user can take to obtain a Qualification of this type. This parameter must be specified if AnswerKey is present. A Qualification type cannot have both a specified Test parameter and an AutoGranted value of true. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>QualificationTypeStatus</i>  The status of the Qualification type. A Qualification type's status determines if users can apply to receive a Qualification of this type, and if HITs can be created with requirements based on this type. Valid values are Active | Inactive. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Keywords</i>  One or more words or phrases that describe theQualification type, separated by commas. The Keywords make the type easier to find using a search. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i>  A long description for the Qualification type. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i>  The name of the Qualification type. The type name is used to identify the type, and to find the type using a Qualification type search. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i>  The date and time the Qualification type was created. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>QualificationTypeId</i>  A unique identifier for the Qualification type. A Qualification type is given a Qualification type ID when you call the CreateQualificationType operation. <br/>        """
        pass





class MWAA(BaseClient):
    r"""<fullname>Amazon Managed Workflows for Apache Airflow</fullname> This section contains the Amazon Managed Workflows for Apache Airflow (MWAA) API reference documentation. For more information, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/what-is-mwaa.html">What Is Amazon MWAA?</a>."""


    class ListEnvironmentsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_environments` for valid parameters"""
            pass


    class CreateCliTokenRequest(Mapping):
        pass
    
    class CreateCliTokenResponse(Mapping):
        pass
    
    class CreateEnvironmentInput(Mapping):
        pass
    
    class CreateEnvironmentOutput(Mapping):
        pass
    
    class SyntheticCreateEnvironmentInputAirflowConfigurationOptions(object):
        pass
    
    class LoggingConfigurationInput(Mapping):
        pass
    
    class NetworkConfiguration(Mapping):
        pass
    
    class TagMap(object):
        pass
    
    class CreateWebLoginTokenRequest(Mapping):
        pass
    
    class CreateWebLoginTokenResponse(Mapping):
        pass
    
    class DeleteEnvironmentInput(Mapping):
        pass
    
    class DeleteEnvironmentOutput(Mapping):
        pass
    
    class GetEnvironmentInput(Mapping):
        pass
    
    class GetEnvironmentOutput(Mapping):
        pass
    
    class ListEnvironmentsInput(Mapping):
        pass
    
    class ListEnvironmentsOutput(Mapping):
        pass
    
    class ListTagsForResourceInput(Mapping):
        pass
    
    class ListTagsForResourceOutput(Mapping):
        pass
    
    class PublishMetricsInput(Mapping):
        pass
    
    class PublishMetricsOutput(Mapping):
        pass
    
    class MetricDatum(Mapping):
        pass
    
    class TagResourceInput(Mapping):
        pass
    
    class TagResourceOutput(Mapping):
        pass
    
    class UntagResourceInput(Mapping):
        pass
    
    class UntagResourceOutput(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateEnvironmentInput(Mapping):
        pass
    
    class UpdateEnvironmentOutput(Mapping):
        pass
    
    class SyntheticUpdateEnvironmentInputAirflowConfigurationOptions(object):
        pass
    
    class UpdateNetworkConfigurationInput(Mapping):
        pass
    
    def create_cli_token(self, Name: str) -> CreateCliTokenResponse:
        r"""Create a CLI token to use Airflow CLI.

        :param self:
        :param Name:  Create a CLI token request for a MWAA environment.<br/>
        :return: WebServerHostname:  Create an Airflow CLI login token response for the provided webserver hostname.<br/>CliToken:  Create an Airflow CLI login token response for the provided JWT token.<br/>        """
        pass

    def create_environment(self, SourceBucketArn: str, NetworkConfiguration: NetworkConfiguration, Name: str, ExecutionRoleArn: str, DagS3Path: str, AirflowConfigurationOptions: SyntheticCreateEnvironmentInputAirflowConfigurationOptions=None, AirflowVersion: str=None, EnvironmentClass: str=None, KmsKey: str=None, LoggingConfiguration: LoggingConfigurationInput=None, MaxWorkers: int=None, MinWorkers: int=None, PluginsS3ObjectVersion: str=None, PluginsS3Path: str=None, RequirementsS3ObjectVersion: str=None, RequirementsS3Path: str=None, Schedulers: int=None, Tags: TagMap=None, WebserverAccessMode: str=None, WeeklyMaintenanceWindowStart: str=None) -> CreateEnvironmentOutput:
        r"""Creates an Amazon Managed Workflows for Apache Airflow (MWAA) environment.

        :param self:
        :param WeeklyMaintenanceWindowStart:  The day and time of the week to start weekly maintenance updates of your environment in the following format: <code>DAY:HH:MM</code>. For example: <code>TUE:03:30</code>. You can specify a start time in 30 minute increments only. Supported input includes the following: <ul> <li> MON|TUE|WED|THU|FRI|SAT|SUN:([01]\\d|2[0-3]):(00|30) </li> </ul><br/>WebserverAccessMode:  The Apache Airflow <i>Web server</i> access mode. To learn more, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-networking.html">Apache Airflow access modes</a>.<br/>Tags:  The key-value tag pairs you want to associate to your environment. For example, <code>"Environment": "Staging"</code>. To learn more, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html">Tagging AWS resources</a>.<br/>SourceBucketArn:  The Amazon Resource Name (ARN) of the Amazon S3 bucket where your DAG code and supporting files are stored. For example, <code>arn:aws:s3:::my-airflow-bucket-unique-name</code>. To learn more, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/mwaa-s3-bucket.html">Create an Amazon S3 bucket for Amazon MWAA</a>.<br/>Schedulers:  The number of Apache Airflow schedulers to run in your environment.<br/>RequirementsS3Path:  The relative path to the <code>requirements.txt</code> file on your Amazon S3 bucket. For example, <code>requirements.txt</code>. If specified, then a file version is required. To learn more, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/working-dags-dependencies.html">Installing Python dependencies</a>.<br/>RequirementsS3ObjectVersion:  The version of the requirements.txt file on your Amazon S3 bucket. A version must be specified each time a requirements.txt file is updated. To learn more, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/versioning-workflows.html">How S3 Versioning works</a>.<br/>PluginsS3Path:  The relative path to the <code>plugins.zip</code> file on your Amazon S3 bucket. For example, <code>plugins.zip</code>. If specified, then the plugins.zip version is required. To learn more, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-dag-import-plugins.html">Installing custom plugins</a>.<br/>PluginsS3ObjectVersion:  The version of the plugins.zip file on your Amazon S3 bucket. A version must be specified each time a plugins.zip file is updated. To learn more, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/versioning-workflows.html">How S3 Versioning works</a>.<br/>NetworkConfiguration:  The VPC networking components used to secure and enable network traffic between the AWS resources for your environment. To learn more, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/networking-about.html">About networking on Amazon MWAA</a>.:<br/>Name:  The name of the Amazon MWAA environment. For example, <code>MyMWAAEnvironment</code>.<br/>MinWorkers:  The minimum number of workers that you want to run in your environment. MWAA scales the number of Apache Airflow workers up to the number you specify in the <code>MaxWorkers</code> field. When there are no more tasks running, and no more in the queue, MWAA disposes of the extra workers leaving the worker count you specify in the <code>MinWorkers</code> field. For example, <code>2</code>.<br/>MaxWorkers:  The maximum number of workers that you want to run in your environment. MWAA scales the number of Apache Airflow workers up to the number you specify in the <code>MaxWorkers</code> field. For example, <code>20</code>. When there are no more tasks running, and no more in the queue, MWAA disposes of the extra workers leaving the one worker that is included with your environment, or the number you specify in <code>MinWorkers</code>.<br/>LoggingConfiguration:  Defines the Apache Airflow logs to send to CloudWatch Logs: <code>DagProcessingLogs</code>, <code>SchedulerLogs</code>, <code>TaskLogs</code>, <code>WebserverLogs</code>, <code>WorkerLogs</code>.:<br/>KmsKey:  The AWS Key Management Service (KMS) key to encrypt the data in your environment. You can use an AWS owned CMK, or a Customer managed CMK (advanced). To learn more, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/get-started.html">Get started with Amazon Managed Workflows for Apache Airflow</a>.<br/>ExecutionRoleArn:  The Amazon Resource Name (ARN) of the execution role for your environment. An execution role is an AWS Identity and Access Management (IAM) role that grants MWAA permission to access AWS services and resources used by your environment. For example, <code>arn:aws:iam::123456789:role/my-execution-role</code>. To learn more, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/mwaa-create-role.html">Amazon MWAA Execution role</a>.<br/>EnvironmentClass:  The environment class type. Valid values: <code>mw1.small</code>, <code>mw1.medium</code>, <code>mw1.large</code>. To learn more, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/environment-class.html">Amazon MWAA environment class</a>.<br/>DagS3Path:  The relative path to the DAGs folder on your Amazon S3 bucket. For example, <code>dags</code>. To learn more, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-dag-folder.html">Adding or updating DAGs</a>.<br/>AirflowVersion:  The Apache Airflow version for your environment. For example, <code>v1.10.12</code>. If no value is specified, defaults to the latest version. Valid values: <code>v1.10.12</code>.<br/>AirflowConfigurationOptions:  A list of key-value pairs containing the Apache Airflow configuration options you want to attach to your environment. To learn more, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-env-variables.html">Apache Airflow configuration options</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WorkerLogs</i> Defines the type of logs to send for the Apache Airflow log type (e.g. <code>DagProcessingLogs</code>). Valid values: <code>CloudWatchLogGroupArn</code>, <code>Enabled</code>, <code>LogLevel</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>WorkerLogs</b>: Defines the type of logs to send for the Apache Airflow log type (e.g. <code>DagProcessingLogs</code>). Valid values: <code>CloudWatchLogGroupArn</code>, <code>Enabled</code>, <code>LogLevel</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WebserverLogs</i> Defines the type of logs to send for the Apache Airflow log type (e.g. <code>DagProcessingLogs</code>). Valid values: <code>CloudWatchLogGroupArn</code>, <code>Enabled</code>, <code>LogLevel</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>WebserverLogs</b>: Defines the type of logs to send for the Apache Airflow log type (e.g. <code>DagProcessingLogs</code>). Valid values: <code>CloudWatchLogGroupArn</code>, <code>Enabled</code>, <code>LogLevel</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TaskLogs</i> Defines the type of logs to send for the Apache Airflow log type (e.g. <code>DagProcessingLogs</code>). Valid values: <code>CloudWatchLogGroupArn</code>, <code>Enabled</code>, <code>LogLevel</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TaskLogs</b>: Defines the type of logs to send for the Apache Airflow log type (e.g. <code>DagProcessingLogs</code>). Valid values: <code>CloudWatchLogGroupArn</code>, <code>Enabled</code>, <code>LogLevel</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SchedulerLogs</i> Defines the type of logs to send for the Apache Airflow log type (e.g. <code>DagProcessingLogs</code>). Valid values: <code>CloudWatchLogGroupArn</code>, <code>Enabled</code>, <code>LogLevel</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SchedulerLogs</b>: Defines the type of logs to send for the Apache Airflow log type (e.g. <code>DagProcessingLogs</code>). Valid values: <code>CloudWatchLogGroupArn</code>, <code>Enabled</code>, <code>LogLevel</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DagProcessingLogs</i> Defines the type of logs to send for the Apache Airflow log type (e.g. <code>DagProcessingLogs</code>). Valid values: <code>CloudWatchLogGroupArn</code>, <code>Enabled</code>, <code>LogLevel</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DagProcessingLogs</b>: Defines the type of logs to send for the Apache Airflow log type (e.g. <code>DagProcessingLogs</code>). Valid values: <code>CloudWatchLogGroupArn</code>, <code>Enabled</code>, <code>LogLevel</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LogLevel</i> Defines the Apache Airflow logs to send for the log type (e.g. <code>DagProcessingLogs</code>) to CloudWatch Logs. Valid values: <code>CRITICAL</code>, <code>ERROR</code>, <code>WARNING</code>, <code>INFO</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Indicates whether to enable the Apache Airflow log type (e.g. <code>DagProcessingLogs</code>) in CloudWatch Logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LogLevel</i> Defines the Apache Airflow logs to send for the log type (e.g. <code>DagProcessingLogs</code>) to CloudWatch Logs. Valid values: <code>CRITICAL</code>, <code>ERROR</code>, <code>WARNING</code>, <code>INFO</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Indicates whether to enable the Apache Airflow log type (e.g. <code>DagProcessingLogs</code>) in CloudWatch Logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LogLevel</i> Defines the Apache Airflow logs to send for the log type (e.g. <code>DagProcessingLogs</code>) to CloudWatch Logs. Valid values: <code>CRITICAL</code>, <code>ERROR</code>, <code>WARNING</code>, <code>INFO</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Indicates whether to enable the Apache Airflow log type (e.g. <code>DagProcessingLogs</code>) in CloudWatch Logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LogLevel</i> Defines the Apache Airflow logs to send for the log type (e.g. <code>DagProcessingLogs</code>) to CloudWatch Logs. Valid values: <code>CRITICAL</code>, <code>ERROR</code>, <code>WARNING</code>, <code>INFO</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Indicates whether to enable the Apache Airflow log type (e.g. <code>DagProcessingLogs</code>) in CloudWatch Logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LogLevel</i> Defines the Apache Airflow logs to send for the log type (e.g. <code>DagProcessingLogs</code>) to CloudWatch Logs. Valid values: <code>CRITICAL</code>, <code>ERROR</code>, <code>WARNING</code>, <code>INFO</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Indicates whether to enable the Apache Airflow log type (e.g. <code>DagProcessingLogs</code>) in CloudWatch Logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetIds</i> A list of 2 subnet IDs. <b>Required</b> to create an environment. Must be private subnets in two different availability zones. A subnet must be attached to the same VPC as the security group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> A list of 1 or more security group IDs. Accepts up to 5 security group IDs. A security group must be attached to the same VPC as the subnets. To learn more, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/vpc-security.html">Security in your VPC on Amazon MWAA</a>.<br/>
        :return: Arn:  The Amazon Resource Name (ARN) returned in the response for the environment.<br/>        """
        pass

    def create_web_login_token(self, Name: str) -> CreateWebLoginTokenResponse:
        r"""Create a JWT token to be used to login to Airflow Web UI with claims based Authentication.

        :param self:
        :param Name:  Create an Airflow Web UI login token request for a MWAA environment.<br/>
        :return: WebToken:  Create an Airflow Web UI login token response for the provided JWT token.<br/>WebServerHostname:  Create an Airflow Web UI login token response for the provided webserver hostname.<br/>        """
        pass

    def delete_environment(self, Name: str) -> DeleteEnvironmentOutput:
        r"""Deletes an Amazon Managed Workflows for Apache Airflow (MWAA) environment.

        :param self:
        :param Name:  The name of the Amazon MWAA environment. For example, <code>MyMWAAEnvironment</code>.<br/>
        :return:         """
        pass

    def get_environment(self, Name: str) -> GetEnvironmentOutput:
        r"""Retrieves the details of an Amazon Managed Workflows for Apache Airflow (MWAA) environment.

        :param self:
        :param Name:  The name of the Amazon MWAA environment. For example, <code>MyMWAAEnvironment</code>.<br/>
        :return: Environment:  An object containing all available details about the environment.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WeeklyMaintenanceWindowStart</i> The day and time of the week that weekly maintenance updates are scheduled. For example: <code>TUE:03:30</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WebserverUrl</i> The Apache Airflow <i>Web server</i> host name for the Amazon MWAA environment. To learn more, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/access-airflow-ui.html">Accessing the Apache Airflow UI</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WebserverAccessMode</i> The Apache Airflow <i>Web server</i> access mode. To learn more, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-networking.html">Apache Airflow access modes</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The key-value tag pairs associated to your environment. For example, <code>"Environment": "Staging"</code>. To learn more, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html">Tagging AWS resources</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the Amazon MWAA environment. Valid values: <ul> <li>  <code>CREATING</code> - Indicates the request to create the environment is in progress. </li> <li>  <code>CREATE_FAILED</code> - Indicates the request to create the environment failed, and the environment could not be created. </li> <li>  <code>AVAILABLE</code> - Indicates the request was successful and the environment is ready to use. </li> <li>  <code>UPDATING</code> - Indicates the request to update the environment is in progress. </li> <li>  <code>DELETING</code> - Indicates the request to delete the environment is in progress. </li> <li>  <code>DELETED</code> - Indicates the request to delete the environment is complete, and the environment has been deleted. </li> <li>  <code>UNAVAILABLE</code> - Indicates the request failed, but the environment was unable to rollback and is not in a stable state. </li> <li>  <code>UPDATE_FAILED</code> - Indicates the request to update the environment failed, and the environment has rolled back successfully and is ready to use. </li> </ul> We recommend reviewing our troubleshooting guide for a list of common errors and their solutions. To learn more, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/troubleshooting.html">Amazon MWAA troubleshooting</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceBucketArn</i> The Amazon Resource Name (ARN) of the Amazon S3 bucket where your DAG code and supporting files are stored. For example, <code>arn:aws:s3:::my-airflow-bucket-unique-name</code>. To learn more, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/mwaa-s3-bucket.html">Create an Amazon S3 bucket for Amazon MWAA</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceRoleArn</i> The Amazon Resource Name (ARN) for the service-linked role of the environment. To learn more, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/mwaa-slr.html">Amazon MWAA Service-linked role</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Schedulers</i> The number of Apache Airflow schedulers that run in your Amazon MWAA environment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequirementsS3Path</i> The relative path to the <code>requirements.txt</code> file on your Amazon S3 bucket. For example, <code>requirements.txt</code>. To learn more, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/working-dags-dependencies.html">Installing Python dependencies</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequirementsS3ObjectVersion</i> The version of the requirements.txt file on your Amazon S3 bucket. To learn more, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/working-dags-dependencies.html">Installing Python dependencies</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PluginsS3Path</i> The relative path to the <code>plugins.zip</code> file on your Amazon S3 bucket. For example, <code>plugins.zip</code>. To learn more, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-dag-import-plugins.html">Installing custom plugins</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PluginsS3ObjectVersion</i> The version of the plugins.zip file on your Amazon S3 bucket. To learn more, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-dag-import-plugins.html">Installing custom plugins</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkConfiguration</i> The VPC networking components used to secure and enable network traffic between the AWS resources for your environment. To learn more, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/networking-about.html">About networking on Amazon MWAA</a>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>NetworkConfiguration</b>: The VPC networking components used to secure and enable network traffic between the AWS resources for your environment. To learn more, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/networking-about.html">About networking on Amazon MWAA</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the Amazon MWAA environment. For example, <code>MyMWAAEnvironment</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MinWorkers</i> The minimum number of workers that run in your environment. For example, <code>2</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxWorkers</i> The maximum number of workers that run in your environment. For example, <code>20</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LoggingConfiguration</i> The Apache Airflow logs being sent to CloudWatch Logs: <code>DagProcessingLogs</code>, <code>SchedulerLogs</code>, <code>TaskLogs</code>, <code>WebserverLogs</code>, <code>WorkerLogs</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>LoggingConfiguration</b>: The Apache Airflow logs being sent to CloudWatch Logs: <code>DagProcessingLogs</code>, <code>SchedulerLogs</code>, <code>TaskLogs</code>, <code>WebserverLogs</code>, <code>WorkerLogs</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdate</i> The status of the last update on the environment, and any errors that were encountered.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>LastUpdate</b>: The status of the last update on the environment, and any errors that were encountered.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKey</i> The Key Management Service (KMS) encryption key used to encrypt the data in your environment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExecutionRoleArn</i> The Amazon Resource Name (ARN) of the execution role in IAM that allows MWAA to access AWS resources in your environment. For example, <code>arn:aws:iam::123456789:role/my-execution-role</code>. To learn more, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/mwaa-create-role.html">Amazon MWAA Execution role</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnvironmentClass</i> The environment class type. Valid values: <code>mw1.small</code>, <code>mw1.medium</code>, <code>mw1.large</code>. To learn more, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/environment-class.html">Amazon MWAA environment class</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DagS3Path</i> The relative path to the DAGs folder on your Amazon S3 bucket. For example, <code>dags</code>. To learn more, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-dag-folder.html">Adding or updating DAGs</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedAt</i> The day and time the environment was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the Amazon MWAA environment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AirflowVersion</i> The Apache Airflow version on your environment. For example, <code>v1.10.12</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AirflowConfigurationOptions</i> A list of key-value pairs containing the Apache Airflow configuration options attached to your environment. To learn more, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-env-variables.html">Apache Airflow configuration options</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedAt</i> The day and time of the last update on the environment.<br/>The error that was encountered during the last update of the environment.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Error</b>: The error that was encountered during the last update of the environment.Defines the type of logs to send for the Apache Airflow log type (e.g. <code>DagProcessingLogs</code>). Valid values: <code>CloudWatchLogGroupArn</code>, <code>Enabled</code>, <code>LogLevel</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DagProcessingLogs</b>: Defines the type of logs to send for the Apache Airflow log type (e.g. <code>DagProcessingLogs</code>). Valid values: <code>CloudWatchLogGroupArn</code>, <code>Enabled</code>, <code>LogLevel</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetIds</i> A list of 2 subnet IDs. <b>Required</b> to create an environment. Must be private subnets in two different availability zones. A subnet must be attached to the same VPC as the security group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> A list of 1 or more security group IDs. Accepts up to 5 security group IDs. A security group must be attached to the same VPC as the subnets. To learn more, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/vpc-security.html">Security in your VPC on Amazon MWAA</a>.<br/>        """
        pass

    def list_environments(self, MaxResults: int=None, NextToken: str=None) -> ListEnvironmentsOutput:
        r"""Lists the Amazon Managed Workflows for Apache Airflow (MWAA) environments.

        :param self:
        :param NextToken:  Retrieves the next page of the results.<br/>MaxResults:  The maximum number of results to retrieve per page. For example, <code>5</code> environments per page.<br/>
        :return: NextToken:  Retrieves the next page of the results.<br/>Environments:  Returns the list of Amazon MWAA environments.<br/>        """
        pass

    def list_tags_for_resource(self, ResourceArn: str) -> ListTagsForResourceOutput:
        r"""Lists the key-value tag pairs associated to the Amazon Managed Workflows for Apache Airflow (MWAA) environment. For example, <code>"Environment": "Staging"</code>. 

        :param self:
        :param ResourceArn:  The Amazon Resource Name (ARN) of the Amazon MWAA environment. For example, <code>arn:aws:airflow:us-east-1:123456789012:environment/MyMWAAEnvironment</code>.<br/>
        :return: Tags:  The key-value tag pairs associated to your environment. To learn more, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html">Tagging AWS resources</a>.<br/>        """
        pass

    def publish_metrics(self, MetricData: List[MetricDatum], EnvironmentName: str) -> PublishMetricsOutput:
        r"""An operation for publishing metrics from the customers to the Ops plane.

        :param self:
        :param MetricData:  Publishes metric data points to Amazon CloudWatch. CloudWatch associates the data points with the specified metrica.<br/>EnvironmentName:  Publishes environment metric data to Amazon CloudWatch.<br/>
        :return:         """
        pass

    def tag_resource(self, Tags: TagMap, ResourceArn: str) -> TagResourceOutput:
        r"""Associates key-value tag pairs to your Amazon Managed Workflows for Apache Airflow (MWAA) environment. 

        :param self:
        :param Tags:  The key-value tag pairs you want to associate to your environment. For example, <code>"Environment": "Staging"</code>. To learn more, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html">Tagging AWS resources</a>.<br/>ResourceArn:  The Amazon Resource Name (ARN) of the Amazon MWAA environment. For example, <code>arn:aws:airflow:us-east-1:123456789012:environment/MyMWAAEnvironment</code>.<br/>
        :return:         """
        pass

    def untag_resource(self, tagKeys: List[TagKey], ResourceArn: str) -> UntagResourceOutput:
        r"""Removes key-value tag pairs associated to your Amazon Managed Workflows for Apache Airflow (MWAA) environment. For example, <code>"Environment": "Staging"</code>.

        :param self:
        :param tagKeys:  The key-value tag pair you want to remove. For example, <code>"Environment": "Staging"</code>. <br/>ResourceArn:  The Amazon Resource Name (ARN) of the Amazon MWAA environment. For example, <code>arn:aws:airflow:us-east-1:123456789012:environment/MyMWAAEnvironment</code>.<br/>
        :return:         """
        pass

    def update_environment(self, Name: str, AirflowConfigurationOptions: SyntheticUpdateEnvironmentInputAirflowConfigurationOptions=None, AirflowVersion: str=None, DagS3Path: str=None, EnvironmentClass: str=None, ExecutionRoleArn: str=None, LoggingConfiguration: LoggingConfigurationInput=None, MaxWorkers: int=None, MinWorkers: int=None, NetworkConfiguration: UpdateNetworkConfigurationInput=None, PluginsS3ObjectVersion: str=None, PluginsS3Path: str=None, RequirementsS3ObjectVersion: str=None, RequirementsS3Path: str=None, Schedulers: int=None, SourceBucketArn: str=None, WebserverAccessMode: str=None, WeeklyMaintenanceWindowStart: str=None) -> UpdateEnvironmentOutput:
        r"""Updates an Amazon Managed Workflows for Apache Airflow (MWAA) environment.

        :param self:
        :param WeeklyMaintenanceWindowStart:  The day and time of the week to start weekly maintenance updates of your environment in the following format: <code>DAY:HH:MM</code>. For example: <code>TUE:03:30</code>. You can specify a start time in 30 minute increments only. Supported input includes the following: <ul> <li> MON|TUE|WED|THU|FRI|SAT|SUN:([01]\\d|2[0-3]):(00|30) </li> </ul><br/>WebserverAccessMode:  The Apache Airflow <i>Web server</i> access mode. To learn more, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-networking.html">Apache Airflow access modes</a>.<br/>SourceBucketArn:  The Amazon Resource Name (ARN) of the Amazon S3 bucket where your DAG code and supporting files are stored. For example, <code>arn:aws:s3:::my-airflow-bucket-unique-name</code>. To learn more, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/mwaa-s3-bucket.html">Create an Amazon S3 bucket for Amazon MWAA</a>.<br/>Schedulers:  The number of Apache Airflow schedulers to run in your Amazon MWAA environment.<br/>RequirementsS3Path:  The relative path to the <code>requirements.txt</code> file on your Amazon S3 bucket. For example, <code>requirements.txt</code>. If specified, then a file version is required. To learn more, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/working-dags-dependencies.html">Installing Python dependencies</a>.<br/>RequirementsS3ObjectVersion:  The version of the requirements.txt file on your Amazon S3 bucket. A version must be specified each time a requirements.txt file is updated. To learn more, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/versioning-workflows.html">How S3 Versioning works</a>.<br/>PluginsS3Path:  The relative path to the <code>plugins.zip</code> file on your Amazon S3 bucket. For example, <code>plugins.zip</code>. If specified, then the plugins.zip version is required. To learn more, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-dag-import-plugins.html">Installing custom plugins</a>.<br/>PluginsS3ObjectVersion:  The version of the plugins.zip file on your Amazon S3 bucket. A version must be specified each time a plugins.zip file is updated. To learn more, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/versioning-workflows.html">How S3 Versioning works</a>.<br/>NetworkConfiguration:  The VPC networking components used to secure and enable network traffic between the AWS resources for your environment. To learn more, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/networking-about.html">About networking on Amazon MWAA</a>.:<br/>Name:  The name of your Amazon MWAA environment. For example, <code>MyMWAAEnvironment</code>.<br/>MinWorkers:  The minimum number of workers that you want to run in your environment. MWAA scales the number of Apache Airflow workers up to the number you specify in the <code>MaxWorkers</code> field. When there are no more tasks running, and no more in the queue, MWAA disposes of the extra workers leaving the worker count you specify in the <code>MinWorkers</code> field. For example, <code>2</code>.<br/>MaxWorkers:  The maximum number of workers that you want to run in your environment. MWAA scales the number of Apache Airflow workers up to the number you specify in the <code>MaxWorkers</code> field. For example, <code>20</code>. When there are no more tasks running, and no more in the queue, MWAA disposes of the extra workers leaving the one worker that is included with your environment, or the number you specify in <code>MinWorkers</code>.<br/>LoggingConfiguration:  Defines the Apache Airflow logs to send to CloudWatch Logs: <code>DagProcessingLogs</code>, <code>SchedulerLogs</code>, <code>TaskLogs</code>, <code>WebserverLogs</code>, <code>WorkerLogs</code>.:<br/>ExecutionRoleArn:  The Amazon Resource Name (ARN) of the execution role in IAM that allows MWAA to access AWS resources in your environment. For example, <code>arn:aws:iam::123456789:role/my-execution-role</code>. To learn more, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/mwaa-create-role.html">Amazon MWAA Execution role</a>.<br/>EnvironmentClass:  The environment class type. Valid values: <code>mw1.small</code>, <code>mw1.medium</code>, <code>mw1.large</code>. To learn more, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/environment-class.html">Amazon MWAA environment class</a>.<br/>DagS3Path:  The relative path to the DAGs folder on your Amazon S3 bucket. For example, <code>dags</code>. To learn more, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-dag-folder.html">Adding or updating DAGs</a>.<br/>AirflowVersion:  The Apache Airflow version for your environment. For example, <code>v1.10.12</code>. If no value is specified, defaults to the latest version. Valid values: <code>v1.10.12</code>.<br/>AirflowConfigurationOptions:  A list of key-value pairs containing the Apache Airflow configuration options you want to attach to your environment. To learn more, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-env-variables.html">Apache Airflow configuration options</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WorkerLogs</i> Defines the type of logs to send for the Apache Airflow log type (e.g. <code>DagProcessingLogs</code>). Valid values: <code>CloudWatchLogGroupArn</code>, <code>Enabled</code>, <code>LogLevel</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>WorkerLogs</b>: Defines the type of logs to send for the Apache Airflow log type (e.g. <code>DagProcessingLogs</code>). Valid values: <code>CloudWatchLogGroupArn</code>, <code>Enabled</code>, <code>LogLevel</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WebserverLogs</i> Defines the type of logs to send for the Apache Airflow log type (e.g. <code>DagProcessingLogs</code>). Valid values: <code>CloudWatchLogGroupArn</code>, <code>Enabled</code>, <code>LogLevel</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>WebserverLogs</b>: Defines the type of logs to send for the Apache Airflow log type (e.g. <code>DagProcessingLogs</code>). Valid values: <code>CloudWatchLogGroupArn</code>, <code>Enabled</code>, <code>LogLevel</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TaskLogs</i> Defines the type of logs to send for the Apache Airflow log type (e.g. <code>DagProcessingLogs</code>). Valid values: <code>CloudWatchLogGroupArn</code>, <code>Enabled</code>, <code>LogLevel</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TaskLogs</b>: Defines the type of logs to send for the Apache Airflow log type (e.g. <code>DagProcessingLogs</code>). Valid values: <code>CloudWatchLogGroupArn</code>, <code>Enabled</code>, <code>LogLevel</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SchedulerLogs</i> Defines the type of logs to send for the Apache Airflow log type (e.g. <code>DagProcessingLogs</code>). Valid values: <code>CloudWatchLogGroupArn</code>, <code>Enabled</code>, <code>LogLevel</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SchedulerLogs</b>: Defines the type of logs to send for the Apache Airflow log type (e.g. <code>DagProcessingLogs</code>). Valid values: <code>CloudWatchLogGroupArn</code>, <code>Enabled</code>, <code>LogLevel</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DagProcessingLogs</i> Defines the type of logs to send for the Apache Airflow log type (e.g. <code>DagProcessingLogs</code>). Valid values: <code>CloudWatchLogGroupArn</code>, <code>Enabled</code>, <code>LogLevel</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DagProcessingLogs</b>: Defines the type of logs to send for the Apache Airflow log type (e.g. <code>DagProcessingLogs</code>). Valid values: <code>CloudWatchLogGroupArn</code>, <code>Enabled</code>, <code>LogLevel</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LogLevel</i> Defines the Apache Airflow logs to send for the log type (e.g. <code>DagProcessingLogs</code>) to CloudWatch Logs. Valid values: <code>CRITICAL</code>, <code>ERROR</code>, <code>WARNING</code>, <code>INFO</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Indicates whether to enable the Apache Airflow log type (e.g. <code>DagProcessingLogs</code>) in CloudWatch Logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LogLevel</i> Defines the Apache Airflow logs to send for the log type (e.g. <code>DagProcessingLogs</code>) to CloudWatch Logs. Valid values: <code>CRITICAL</code>, <code>ERROR</code>, <code>WARNING</code>, <code>INFO</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Indicates whether to enable the Apache Airflow log type (e.g. <code>DagProcessingLogs</code>) in CloudWatch Logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LogLevel</i> Defines the Apache Airflow logs to send for the log type (e.g. <code>DagProcessingLogs</code>) to CloudWatch Logs. Valid values: <code>CRITICAL</code>, <code>ERROR</code>, <code>WARNING</code>, <code>INFO</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Indicates whether to enable the Apache Airflow log type (e.g. <code>DagProcessingLogs</code>) in CloudWatch Logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LogLevel</i> Defines the Apache Airflow logs to send for the log type (e.g. <code>DagProcessingLogs</code>) to CloudWatch Logs. Valid values: <code>CRITICAL</code>, <code>ERROR</code>, <code>WARNING</code>, <code>INFO</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Indicates whether to enable the Apache Airflow log type (e.g. <code>DagProcessingLogs</code>) in CloudWatch Logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LogLevel</i> Defines the Apache Airflow logs to send for the log type (e.g. <code>DagProcessingLogs</code>) to CloudWatch Logs. Valid values: <code>CRITICAL</code>, <code>ERROR</code>, <code>WARNING</code>, <code>INFO</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Indicates whether to enable the Apache Airflow log type (e.g. <code>DagProcessingLogs</code>) in CloudWatch Logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> A list of 1 or more security group IDs. Accepts up to 5 security group IDs. A security group must be attached to the same VPC as the subnets. To learn more, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/vpc-security.html">Security in your VPC on Amazon MWAA</a>.<br/>
        :return: Arn:  The Amazon Resource Name (ARN) of the Amazon MWAA environment. For example, <code>arn:aws:airflow:us-east-1:123456789012:environment/MyMWAAEnvironment</code>.<br/>        """
        pass





class Neptune(BaseClient):
    r"""<fullname>Amazon Neptune</fullname> Amazon Neptune is a fast, reliable, fully-managed graph database service that makes it easy to build and run applications that work with highly connected datasets. The core of Amazon Neptune is a purpose-built, high-performance graph database engine optimized for storing billions of relationships and querying the graph with milliseconds latency. Amazon Neptune supports popular graph models Property Graph and W3C's RDF, and their respective query languages Apache TinkerPop Gremlin and SPARQL, allowing you to easily build queries that efficiently navigate highly connected datasets. Neptune powers graph use cases such as recommendation engines, fraud detection, knowledge graphs, drug discovery, and network security. This interface reference for Amazon Neptune contains documentation for a programming or command line interface you can use to manage Amazon Neptune. Note that Amazon Neptune is asynchronous, which means that some interfaces might require techniques such as polling or callback functions to determine when a command has been applied. In this reference, the parameter descriptions indicate whether a command is applied immediately, on the next instance reboot, or during the maintenance window. The reference structure is as follows, and we list following some related topics from the user guide."""

    class DBInstanceAvailableWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_db_instances` for valid parameters"""
            pass
    class DBInstanceDeletedWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_db_instances` for valid parameters"""
            pass


    class DescribeDBEngineVersionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_db_engine_versions` for valid parameters"""
            pass
    class DescribeDBInstancesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_db_instances` for valid parameters"""
            pass
    class DescribeDBParameterGroupsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_db_parameter_groups` for valid parameters"""
            pass
    class DescribeDBParametersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_db_parameters` for valid parameters"""
            pass
    class DescribeDBSubnetGroupsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_db_subnet_groups` for valid parameters"""
            pass
    class DescribeEngineDefaultParametersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_engine_default_parameters` for valid parameters"""
            pass
    class DescribeEventSubscriptionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_event_subscriptions` for valid parameters"""
            pass
    class DescribeEventsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_events` for valid parameters"""
            pass
    class DescribeOrderableDBInstanceOptionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_orderable_db_instance_options` for valid parameters"""
            pass
    class DescribeDBClusterParameterGroupsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_db_cluster_parameter_groups` for valid parameters"""
            pass
    class DescribeDBClusterParametersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_db_cluster_parameters` for valid parameters"""
            pass
    class DescribeDBClusterSnapshotsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_db_cluster_snapshots` for valid parameters"""
            pass
    class DescribeDBClustersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_db_clusters` for valid parameters"""
            pass
    class DescribePendingMaintenanceActionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_pending_maintenance_actions` for valid parameters"""
            pass
    class DescribeDBClusterEndpointsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_db_cluster_endpoints` for valid parameters"""
            pass


    class AddRoleToDBClusterMessage(Mapping):
        pass
    
    class AddSourceIdentifierToSubscriptionMessage(Mapping):
        pass
    
    class AddSourceIdentifierToSubscriptionResult(Mapping):
        pass
    
    class AddTagsToResourceMessage(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class ApplyPendingMaintenanceActionMessage(Mapping):
        pass
    
    class ApplyPendingMaintenanceActionResult(Mapping):
        pass
    
    class CopyDBClusterParameterGroupMessage(Mapping):
        pass
    
    class CopyDBClusterParameterGroupResult(Mapping):
        pass
    
    class CopyDBClusterSnapshotMessage(Mapping):
        pass
    
    class CopyDBClusterSnapshotResult(Mapping):
        pass
    
    class BooleanOptional(object):
        pass
    
    class CopyDBParameterGroupMessage(Mapping):
        pass
    
    class CopyDBParameterGroupResult(Mapping):
        pass
    
    class CreateDBClusterMessage(Mapping):
        pass
    
    class CreateDBClusterResult(Mapping):
        pass
    
    class String(object):
        pass
    
    class CreateDBClusterEndpointMessage(Mapping):
        pass
    
    class CreateDBClusterEndpointOutput(Mapping):
        pass
    
    class CreateDBClusterParameterGroupMessage(Mapping):
        pass
    
    class CreateDBClusterParameterGroupResult(Mapping):
        pass
    
    class CreateDBClusterSnapshotMessage(Mapping):
        pass
    
    class CreateDBClusterSnapshotResult(Mapping):
        pass
    
    class CreateDBInstanceMessage(Mapping):
        pass
    
    class CreateDBInstanceResult(Mapping):
        pass
    
    class CreateDBParameterGroupMessage(Mapping):
        pass
    
    class CreateDBParameterGroupResult(Mapping):
        pass
    
    class CreateDBSubnetGroupMessage(Mapping):
        pass
    
    class CreateDBSubnetGroupResult(Mapping):
        pass
    
    class CreateEventSubscriptionMessage(Mapping):
        pass
    
    class CreateEventSubscriptionResult(Mapping):
        pass
    
    class DeleteDBClusterMessage(Mapping):
        pass
    
    class DeleteDBClusterResult(Mapping):
        pass
    
    class Boolean(object):
        pass
    
    class DeleteDBClusterEndpointMessage(Mapping):
        pass
    
    class DeleteDBClusterEndpointOutput(Mapping):
        pass
    
    class DeleteDBClusterParameterGroupMessage(Mapping):
        pass
    
    class DeleteDBClusterSnapshotMessage(Mapping):
        pass
    
    class DeleteDBClusterSnapshotResult(Mapping):
        pass
    
    class DeleteDBInstanceMessage(Mapping):
        pass
    
    class DeleteDBInstanceResult(Mapping):
        pass
    
    class DeleteDBParameterGroupMessage(Mapping):
        pass
    
    class DeleteDBSubnetGroupMessage(Mapping):
        pass
    
    class DeleteEventSubscriptionMessage(Mapping):
        pass
    
    class DeleteEventSubscriptionResult(Mapping):
        pass
    
    class DescribeDBClusterEndpointsMessage(Mapping):
        pass
    
    class DBClusterEndpointMessage(Mapping):
        pass
    
    class Filter(Mapping):
        pass
    
    class DescribeDBClusterParameterGroupsMessage(Mapping):
        pass
    
    class DBClusterParameterGroupsMessage(Mapping):
        pass
    
    class DescribeDBClusterParametersMessage(Mapping):
        pass
    
    class DBClusterParameterGroupDetails(Mapping):
        pass
    
    class DescribeDBClusterSnapshotAttributesMessage(Mapping):
        pass
    
    class DescribeDBClusterSnapshotAttributesResult(Mapping):
        pass
    
    class DescribeDBClusterSnapshotsMessage(Mapping):
        pass
    
    class DBClusterSnapshotMessage(Mapping):
        pass
    
    class DescribeDBClustersMessage(Mapping):
        pass
    
    class DBClusterMessage(Mapping):
        pass
    
    class DescribeDBEngineVersionsMessage(Mapping):
        pass
    
    class DBEngineVersionMessage(Mapping):
        pass
    
    class DescribeDBInstancesMessage(Mapping):
        pass
    
    class DBInstanceMessage(Mapping):
        pass
    
    class DescribeDBParameterGroupsMessage(Mapping):
        pass
    
    class DBParameterGroupsMessage(Mapping):
        pass
    
    class DescribeDBParametersMessage(Mapping):
        pass
    
    class DBParameterGroupDetails(Mapping):
        pass
    
    class DescribeDBSubnetGroupsMessage(Mapping):
        pass
    
    class DBSubnetGroupMessage(Mapping):
        pass
    
    class DescribeEngineDefaultClusterParametersMessage(Mapping):
        pass
    
    class DescribeEngineDefaultClusterParametersResult(Mapping):
        pass
    
    class DescribeEngineDefaultParametersMessage(Mapping):
        pass
    
    class DescribeEngineDefaultParametersResult(Mapping):
        pass
    
    class DescribeEventCategoriesMessage(Mapping):
        pass
    
    class EventCategoriesMessage(Mapping):
        pass
    
    class DescribeEventSubscriptionsMessage(Mapping):
        pass
    
    class EventSubscriptionsMessage(Mapping):
        pass
    
    class DescribeEventsMessage(Mapping):
        pass
    
    class EventsMessage(Mapping):
        pass
    
    class TStamp(object):
        pass
    
    class DescribeOrderableDBInstanceOptionsMessage(Mapping):
        pass
    
    class OrderableDBInstanceOptionsMessage(Mapping):
        pass
    
    class DescribePendingMaintenanceActionsMessage(Mapping):
        pass
    
    class PendingMaintenanceActionsMessage(Mapping):
        pass
    
    class DescribeValidDBInstanceModificationsMessage(Mapping):
        pass
    
    class DescribeValidDBInstanceModificationsResult(Mapping):
        pass
    
    class FailoverDBClusterMessage(Mapping):
        pass
    
    class FailoverDBClusterResult(Mapping):
        pass
    
    class ListTagsForResourceMessage(Mapping):
        pass
    
    class TagListMessage(Mapping):
        pass
    
    class ModifyDBClusterMessage(Mapping):
        pass
    
    class ModifyDBClusterResult(Mapping):
        pass
    
    class CloudwatchLogsExportConfiguration(Mapping):
        pass
    
    class ModifyDBClusterEndpointMessage(Mapping):
        pass
    
    class ModifyDBClusterEndpointOutput(Mapping):
        pass
    
    class ModifyDBClusterParameterGroupMessage(Mapping):
        pass
    
    class DBClusterParameterGroupNameMessage(Mapping):
        pass
    
    class Parameter(Mapping):
        pass
    
    class ModifyDBClusterSnapshotAttributeMessage(Mapping):
        pass
    
    class ModifyDBClusterSnapshotAttributeResult(Mapping):
        pass
    
    class ModifyDBInstanceMessage(Mapping):
        pass
    
    class ModifyDBInstanceResult(Mapping):
        pass
    
    class ModifyDBParameterGroupMessage(Mapping):
        pass
    
    class DBParameterGroupNameMessage(Mapping):
        pass
    
    class ModifyDBSubnetGroupMessage(Mapping):
        pass
    
    class ModifyDBSubnetGroupResult(Mapping):
        pass
    
    class ModifyEventSubscriptionMessage(Mapping):
        pass
    
    class ModifyEventSubscriptionResult(Mapping):
        pass
    
    class PromoteReadReplicaDBClusterMessage(Mapping):
        pass
    
    class PromoteReadReplicaDBClusterResult(Mapping):
        pass
    
    class RebootDBInstanceMessage(Mapping):
        pass
    
    class RebootDBInstanceResult(Mapping):
        pass
    
    class RemoveRoleFromDBClusterMessage(Mapping):
        pass
    
    class RemoveSourceIdentifierFromSubscriptionMessage(Mapping):
        pass
    
    class RemoveSourceIdentifierFromSubscriptionResult(Mapping):
        pass
    
    class RemoveTagsFromResourceMessage(Mapping):
        pass
    
    class ResetDBClusterParameterGroupMessage(Mapping):
        pass
    
    class ResetDBParameterGroupMessage(Mapping):
        pass
    
    class RestoreDBClusterFromSnapshotMessage(Mapping):
        pass
    
    class RestoreDBClusterFromSnapshotResult(Mapping):
        pass
    
    class RestoreDBClusterToPointInTimeMessage(Mapping):
        pass
    
    class RestoreDBClusterToPointInTimeResult(Mapping):
        pass
    
    class StartDBClusterMessage(Mapping):
        pass
    
    class StartDBClusterResult(Mapping):
        pass
    
    class StopDBClusterMessage(Mapping):
        pass
    
    class StopDBClusterResult(Mapping):
        pass
    
    def add_role_to_db_cluster(self, RoleArn: str, DBClusterIdentifier: str, FeatureName: str=None):
        r"""Associates an Identity and Access Management (IAM) role from an Neptune DB cluster.

        :param self:
        :param FeatureName:  The name of the feature for the Neptune DB cluster that the IAM role is to be associated with. For the list of supported feature names, see <a>DBEngineVersion</a>.<br/>RoleArn:  The Amazon Resource Name (ARN) of the IAM role to associate with the Neptune DB cluster, for example <code>arn:aws:iam::123456789012:role/NeptuneAccessRole</code>.<br/>DBClusterIdentifier:  The name of the DB cluster to associate the IAM role with.<br/>
        :return:         """
        pass

    def add_source_identifier_to_subscription(self, SourceIdentifier: str, SubscriptionName: str) -> AddSourceIdentifierToSubscriptionResult:
        r"""Adds a source identifier to an existing event notification subscription.

        :param self:
        :param SourceIdentifier:  The identifier of the event source to be added. Constraints: <ul> <li> If the source type is a DB instance, then a <code>DBInstanceIdentifier</code> must be supplied. </li> <li> If the source type is a DB security group, a <code>DBSecurityGroupName</code> must be supplied. </li> <li> If the source type is a DB parameter group, a <code>DBParameterGroupName</code> must be supplied. </li> <li> If the source type is a DB snapshot, a <code>DBSnapshotIdentifier</code> must be supplied. </li> </ul><br/>SubscriptionName:  The name of the event notification subscription you want to add a source identifier to.<br/>
        :return: EventSubscription:  Contains the results of a successful invocation of the <a>DescribeEventSubscriptions</a> action.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EventSubscriptionArn</i> The Amazon Resource Name (ARN) for the event subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> A Boolean value indicating if the subscription is enabled. True indicates the subscription is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EventCategoriesList</i> A list of event categories for the event notification subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceIdsList</i> A list of source IDs for the event notification subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceType</i> The source type for the event notification subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubscriptionCreationTime</i> The time the event notification subscription was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the event notification subscription. Constraints: Can be one of the following: creating | modifying | deleting | active | no-permission | topic-not-exist The status "no-permission" indicates that Neptune no longer has permission to post to the SNS topic. The status "topic-not-exist" indicates that the topic was deleted after the subscription was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnsTopicArn</i> The topic ARN of the event notification subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustSubscriptionId</i> The event notification subscription Id.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomerAwsId</i> The Amazon customer account associated with the event notification subscription.<br/>        """
        pass

    def add_tags_to_resource(self, Tags: List[Tag], ResourceName: str):
        r"""Adds metadata tags to an Amazon Neptune resource. These tags can also be used with cost allocation reporting to track cost associated with Amazon Neptune resources, or used in a Condition statement in an IAM policy for Amazon Neptune.

        :param self:
        :param Tags:  The tags to be assigned to the Amazon Neptune resource.<br/>ResourceName:  The Amazon Neptune resource that the tags are added to. This value is an Amazon Resource Name (ARN). For information about creating an ARN, see <a href="https://docs.aws.amazon.com/neptune/latest/UserGuide/tagging.ARN.html#tagging.ARN.Constructing"> Constructing an Amazon Resource Name (ARN)</a>.<br/>
        :return:         """
        pass

    def apply_pending_maintenance_action(self, OptInType: str, ApplyAction: str, ResourceIdentifier: str) -> ApplyPendingMaintenanceActionResult:
        r"""Applies a pending maintenance action to a resource (for example, to a DB instance).

        :param self:
        :param OptInType:  A value that specifies the type of opt-in request, or undoes an opt-in request. An opt-in request of type <code>immediate</code> can't be undone. Valid values: <ul> <li>  <code>immediate</code> - Apply the maintenance action immediately. </li> <li>  <code>next-maintenance</code> - Apply the maintenance action during the next maintenance window for the resource. </li> <li>  <code>undo-opt-in</code> - Cancel any existing <code>next-maintenance</code> opt-in requests. </li> </ul><br/>ApplyAction:  The pending maintenance action to apply to this resource. Valid values: <code>system-update</code>, <code>db-upgrade</code> <br/>ResourceIdentifier:  The Amazon Resource Name (ARN) of the resource that the pending maintenance action applies to. For information about creating an ARN, see <a href="https://docs.aws.amazon.com/neptune/latest/UserGuide/tagging.ARN.html#tagging.ARN.Constructing"> Constructing an Amazon Resource Name (ARN)</a>.<br/>
        :return: ResourcePendingMaintenanceActions:  Describes the pending maintenance actions for a resource.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingMaintenanceActionDetails</i> A list that provides details about the pending maintenance actions for the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceIdentifier</i> The ARN of the resource that has pending maintenance actions.<br/>        """
        pass

    def copy_db_cluster_parameter_group(self, TargetDBClusterParameterGroupDescription: str, TargetDBClusterParameterGroupIdentifier: str, SourceDBClusterParameterGroupIdentifier: str, Tags: List[Tag]=None) -> CopyDBClusterParameterGroupResult:
        r"""Copies the specified DB cluster parameter group.

        :param self:
        :param Tags:  The tags to be assigned to the copied DB cluster parameter group.<br/>TargetDBClusterParameterGroupDescription:  A description for the copied DB cluster parameter group.<br/>TargetDBClusterParameterGroupIdentifier:  The identifier for the copied DB cluster parameter group. Constraints: <ul> <li> Cannot be null, empty, or blank </li> <li> Must contain from 1 to 255 letters, numbers, or hyphens </li> <li> First character must be a letter </li> <li> Cannot end with a hyphen or contain two consecutive hyphens </li> </ul> Example: <code>my-cluster-param-group1</code> <br/>SourceDBClusterParameterGroupIdentifier:  The identifier or Amazon Resource Name (ARN) for the source DB cluster parameter group. For information about creating an ARN, see <a href="https://docs.aws.amazon.com/neptune/latest/UserGuide/tagging.ARN.html#tagging.ARN.Constructing"> Constructing an Amazon Resource Name (ARN)</a>. Constraints: <ul> <li> Must specify a valid DB cluster parameter group. </li> <li> If the source DB cluster parameter group is in the same Amazon Region as the copy, specify a valid DB parameter group identifier, for example <code>my-db-cluster-param-group</code>, or a valid ARN. </li> <li> If the source DB parameter group is in a different Amazon Region than the copy, specify a valid DB cluster parameter group ARN, for example <code>arn:aws:rds:us-east-1:123456789012:cluster-pg:custom-cluster-group1</code>. </li> </ul><br/>
        :return: DBClusterParameterGroup:  Contains the details of an Amazon Neptune DB cluster parameter group. This data type is used as a response element in the <a>DescribeDBClusterParameterGroups</a> action.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterParameterGroupArn</i> The Amazon Resource Name (ARN) for the DB cluster parameter group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> Provides the customer-specified description for this DB cluster parameter group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBParameterGroupFamily</i> Provides the name of the DB parameter group family that this DB cluster parameter group is compatible with.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterParameterGroupName</i> Provides the name of the DB cluster parameter group.<br/>        """
        pass

    def copy_db_cluster_snapshot(self, TargetDBClusterSnapshotIdentifier: str, SourceDBClusterSnapshotIdentifier: str, KmsKeyId: str=None, PreSignedUrl: str=None, CopyTags: BooleanOptional=None, Tags: List[Tag]=None, SourceRegion: str=None) -> CopyDBClusterSnapshotResult:
        r"""Copies a snapshot of a DB cluster. To copy a DB cluster snapshot from a shared manual DB cluster snapshot, <code>SourceDBClusterSnapshotIdentifier</code> must be the Amazon Resource Name (ARN) of the shared DB cluster snapshot.

        :param self:
        :param SourceRegion:  The ID of the region that contains the snapshot to be copied.<br/>Tags:  The tags to assign to the new DB cluster snapshot copy.<br/>CopyTags:  True to copy all tags from the source DB cluster snapshot to the target DB cluster snapshot, and otherwise false. The default is false.<br/>PreSignedUrl:  Not currently supported.<br/>KmsKeyId:  The Amazon Amazon KMS key ID for an encrypted DB cluster snapshot. The KMS key ID is the Amazon Resource Name (ARN), KMS key identifier, or the KMS key alias for the KMS encryption key. If you copy an encrypted DB cluster snapshot from your Amazon account, you can specify a value for <code>KmsKeyId</code> to encrypt the copy with a new KMS encryption key. If you don't specify a value for <code>KmsKeyId</code>, then the copy of the DB cluster snapshot is encrypted with the same KMS key as the source DB cluster snapshot. If you copy an encrypted DB cluster snapshot that is shared from another Amazon account, then you must specify a value for <code>KmsKeyId</code>.  KMS encryption keys are specific to the Amazon Region that they are created in, and you can't use encryption keys from one Amazon Region in another Amazon Region. You cannot encrypt an unencrypted DB cluster snapshot when you copy it. If you try to copy an unencrypted DB cluster snapshot and specify a value for the KmsKeyId parameter, an error is returned.<br/>TargetDBClusterSnapshotIdentifier:  The identifier of the new DB cluster snapshot to create from the source DB cluster snapshot. This parameter is not case-sensitive. Constraints: <ul> <li> Must contain from 1 to 63 letters, numbers, or hyphens. </li> <li> First character must be a letter. </li> <li> Cannot end with a hyphen or contain two consecutive hyphens. </li> </ul> Example: <code>my-cluster-snapshot2</code> <br/>SourceDBClusterSnapshotIdentifier:  The identifier of the DB cluster snapshot to copy. This parameter is not case-sensitive. Constraints: <ul> <li> Must specify a valid system snapshot in the "available" state. </li> <li> Specify a valid DB snapshot identifier. </li> </ul> Example: <code>my-cluster-snapshot1</code> <br/>
        :return: DBClusterSnapshot:  Contains the details for an Amazon Neptune DB cluster snapshot This data type is used as a response element in the <a>DescribeDBClusterSnapshots</a> action.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IAMDatabaseAuthenticationEnabled</i> True if mapping of Amazon Identity and Access Management (IAM) accounts to database accounts is enabled, and otherwise false.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceDBClusterSnapshotArn</i> If the DB cluster snapshot was copied from a source DB cluster snapshot, the Amazon Resource Name (ARN) for the source DB cluster snapshot, otherwise, a null value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterSnapshotArn</i> The Amazon Resource Name (ARN) for the DB cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> If <code>StorageEncrypted</code> is true, the Amazon KMS key identifier for the encrypted DB cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageEncrypted</i> Specifies whether the DB cluster snapshot is encrypted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PercentProgress</i> Specifies the percentage of the estimated data that has been transferred.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotType</i> Provides the type of the DB cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LicenseModel</i> Provides the license model information for this DB cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> Provides the version of the database engine for this DB cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUsername</i> Not supported by Neptune.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterCreateTime</i> Specifies the time when the DB cluster was created, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> Provides the VPC ID associated with the DB cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Specifies the port that the DB cluster was listening on at the time of the snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Specifies the status of this DB cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllocatedStorage</i> Specifies the allocated storage size in gibibytes (GiB).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> Specifies the name of the database engine.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotCreateTime</i> Provides the time when the snapshot was taken, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterIdentifier</i> Specifies the DB cluster identifier of the DB cluster that this DB cluster snapshot was created from.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterSnapshotIdentifier</i> Specifies the identifier for a DB cluster snapshot. Must match the identifier of an existing snapshot. After you restore a DB cluster using a <code>DBClusterSnapshotIdentifier</code>, you must specify the same <code>DBClusterSnapshotIdentifier</code> for any future updates to the DB cluster. When you specify this property for an update, the DB cluster is not restored from the snapshot again, and the data in the database is not changed. However, if you don't specify the <code>DBClusterSnapshotIdentifier</code>, an empty DB cluster is created, and the original DB cluster is deleted. If you specify a property that is different from the previous snapshot restore property, the DB cluster is restored from the snapshot specified by the <code>DBClusterSnapshotIdentifier</code>, and the original DB cluster is deleted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZones</i> Provides the list of EC2 Availability Zones that instances in the DB cluster snapshot can be restored in.<br/>        """
        pass

    def copy_db_parameter_group(self, TargetDBParameterGroupDescription: str, TargetDBParameterGroupIdentifier: str, SourceDBParameterGroupIdentifier: str, Tags: List[Tag]=None) -> CopyDBParameterGroupResult:
        r"""Copies the specified DB parameter group.

        :param self:
        :param Tags:  The tags to be assigned to the copied DB parameter group.<br/>TargetDBParameterGroupDescription:  A description for the copied DB parameter group.<br/>TargetDBParameterGroupIdentifier:  The identifier for the copied DB parameter group. Constraints: <ul> <li> Cannot be null, empty, or blank. </li> <li> Must contain from 1 to 255 letters, numbers, or hyphens. </li> <li> First character must be a letter. </li> <li> Cannot end with a hyphen or contain two consecutive hyphens. </li> </ul> Example: <code>my-db-parameter-group</code> <br/>SourceDBParameterGroupIdentifier:  The identifier or ARN for the source DB parameter group. For information about creating an ARN, see <a href="https://docs.aws.amazon.com/neptune/latest/UserGuide/tagging.ARN.html#tagging.ARN.Constructing"> Constructing an Amazon Resource Name (ARN)</a>. Constraints: <ul> <li> Must specify a valid DB parameter group. </li> <li> Must specify a valid DB parameter group identifier, for example <code>my-db-param-group</code>, or a valid ARN. </li> </ul><br/>
        :return: DBParameterGroup:  Contains the details of an Amazon Neptune DB parameter group. This data type is used as a response element in the <a>DescribeDBParameterGroups</a> action.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBParameterGroupArn</i> The Amazon Resource Name (ARN) for the DB parameter group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> Provides the customer-specified description for this DB parameter group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBParameterGroupFamily</i> Provides the name of the DB parameter group family that this DB parameter group is compatible with.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBParameterGroupName</i> Provides the name of the DB parameter group.<br/>        """
        pass

    def create_db_cluster(self, Engine: str, DBClusterIdentifier: str, AvailabilityZones: List[String]=None, BackupRetentionPeriod: int=None, CharacterSetName: str=None, CopyTagsToSnapshot: BooleanOptional=None, DatabaseName: str=None, DBClusterParameterGroupName: str=None, VpcSecurityGroupIds: List[String]=None, DBSubnetGroupName: str=None, EngineVersion: str=None, Port: int=None, MasterUsername: str=None, MasterUserPassword: str=None, OptionGroupName: str=None, PreferredBackupWindow: str=None, PreferredMaintenanceWindow: str=None, ReplicationSourceIdentifier: str=None, Tags: List[Tag]=None, StorageEncrypted: BooleanOptional=None, KmsKeyId: str=None, PreSignedUrl: str=None, EnableIAMDatabaseAuthentication: BooleanOptional=None, EnableCloudwatchLogsExports: List[String]=None, DeletionProtection: BooleanOptional=None, SourceRegion: str=None) -> CreateDBClusterResult:
        r"""Creates a new Amazon Neptune DB cluster. You can use the <code>ReplicationSourceIdentifier</code> parameter to create the DB cluster as a Read Replica of another DB cluster or Amazon Neptune DB instance. Note that when you create a new cluster using <code>CreateDBCluster</code> directly, deletion protection is disabled by default (when you create a new production cluster in the console, deletion protection is enabled by default). You can only delete a DB cluster if its <code>DeletionProtection</code> field is set to <code>false</code>.

        :param self:
        :param SourceRegion:  The ID of the region that contains the source for the db cluster.<br/>DeletionProtection:  A value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is enabled.<br/>EnableCloudwatchLogsExports:  The list of log types that need to be enabled for exporting to CloudWatch Logs.<br/>EnableIAMDatabaseAuthentication:  If set to <code>true</code>, enables Amazon Identity and Access Management (IAM) authentication for the entire DB cluster (this cannot be set at an instance level). Default: <code>false</code>.<br/>PreSignedUrl:  This parameter is not currently supported.<br/>KmsKeyId:  The Amazon KMS key identifier for an encrypted DB cluster. The KMS key identifier is the Amazon Resource Name (ARN) for the KMS encryption key. If you are creating a DB cluster with the same Amazon account that owns the KMS encryption key used to encrypt the new DB cluster, then you can use the KMS key alias instead of the ARN for the KMS encryption key. If an encryption key is not specified in <code>KmsKeyId</code>: <ul> <li> If <code>ReplicationSourceIdentifier</code> identifies an encrypted source, then Amazon Neptune will use the encryption key used to encrypt the source. Otherwise, Amazon Neptune will use your default encryption key. </li> <li> If the <code>StorageEncrypted</code> parameter is true and <code>ReplicationSourceIdentifier</code> is not specified, then Amazon Neptune will use your default encryption key. </li> </ul> Amazon KMS creates the default encryption key for your Amazon account. Your Amazon account has a different default encryption key for each Amazon Region. If you create a Read Replica of an encrypted DB cluster in another Amazon Region, you must set <code>KmsKeyId</code> to a KMS key ID that is valid in the destination Amazon Region. This key is used to encrypt the Read Replica in that Amazon Region.<br/>StorageEncrypted:  Specifies whether the DB cluster is encrypted.<br/>Tags:  The tags to assign to the new DB cluster.<br/>ReplicationSourceIdentifier:  The Amazon Resource Name (ARN) of the source DB instance or DB cluster if this DB cluster is created as a Read Replica.<br/>PreferredMaintenanceWindow:  The weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC). Format: <code>ddd:hh24:mi-ddd:hh24:mi</code>  The default is a 30-minute window selected at random from an 8-hour block of time for each Amazon Region, occurring on a random day of the week. To see the time blocks available, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/AdjustingTheMaintenanceWindow.html"> Adjusting the Preferred Maintenance Window</a> in the <i>Amazon Neptune User Guide.</i>  Valid Days: Mon, Tue, Wed, Thu, Fri, Sat, Sun. Constraints: Minimum 30-minute window.<br/>PreferredBackupWindow:  The daily time range during which automated backups are created if automated backups are enabled using the <code>BackupRetentionPeriod</code> parameter. The default is a 30-minute window selected at random from an 8-hour block of time for each Amazon Region. To see the time blocks available, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/AdjustingTheMaintenanceWindow.html"> Adjusting the Preferred Maintenance Window</a> in the <i>Amazon Neptune User Guide.</i>  Constraints: <ul> <li> Must be in the format <code>hh24:mi-hh24:mi</code>. </li> <li> Must be in Universal Coordinated Time (UTC). </li> <li> Must not conflict with the preferred maintenance window. </li> <li> Must be at least 30 minutes. </li> </ul><br/>OptionGroupName:   <i>(Not supported by Neptune)</i> <br/>MasterUserPassword:  Not supported by Neptune.<br/>MasterUsername:  Not supported by Neptune.<br/>Port:  The port number on which the instances in the DB cluster accept connections.  Default: <code>8182</code> <br/>EngineVersion:  The version number of the database engine to use for the new DB cluster. Example: <code>1.0.2.1</code> <br/>Engine:  The name of the database engine to be used for this DB cluster. Valid Values: <code>neptune</code> <br/>DBSubnetGroupName:  A DB subnet group to associate with this DB cluster. Constraints: Must match the name of an existing DBSubnetGroup. Must not be default. Example: <code>mySubnetgroup</code> <br/>VpcSecurityGroupIds:  A list of EC2 VPC security groups to associate with this DB cluster.<br/>DBClusterParameterGroupName:   The name of the DB cluster parameter group to associate with this DB cluster. If this argument is omitted, the default is used. Constraints: <ul> <li> If supplied, must match the name of an existing DBClusterParameterGroup. </li> </ul><br/>DBClusterIdentifier:  The DB cluster identifier. This parameter is stored as a lowercase string. Constraints: <ul> <li> Must contain from 1 to 63 letters, numbers, or hyphens. </li> <li> First character must be a letter. </li> <li> Cannot end with a hyphen or contain two consecutive hyphens. </li> </ul> Example: <code>my-cluster1</code> <br/>DatabaseName:  The name for your database of up to 64 alpha-numeric characters. If you do not provide a name, Amazon Neptune will not create a database in the DB cluster you are creating.<br/>CopyTagsToSnapshot:   <i>If set to <code>true</code>, tags are copied to any snapshot of the DB cluster that is created.</i> <br/>CharacterSetName:   <i>(Not supported by Neptune)</i> <br/>BackupRetentionPeriod:  The number of days for which automated backups are retained. You must specify a minimum value of 1. Default: 1 Constraints: <ul> <li> Must be a value from 1 to 35 </li> </ul><br/>AvailabilityZones:  A list of EC2 Availability Zones that instances in the DB cluster can be created in.<br/>
        :return: DBCluster:  Contains the details of an Amazon Neptune DB cluster. This data type is used as a response element in the <a>DescribeDBClusters</a> action.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomaticRestartTime</i> Time at which the DB cluster will be automatically restarted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CrossAccountClone</i> If set to <code>true</code>, the DB cluster can be cloned across accounts.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeletionProtection</i> Indicates whether or not the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnabledCloudwatchLogsExports</i> A list of log types that this DB cluster is configured to export to CloudWatch Logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CopyTagsToSnapshot</i>  <i>If set to <code>true</code>, tags are copied to any snapshot of the DB cluster that is created.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterCreateTime</i> Specifies the time when the DB cluster was created, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloneGroupId</i> Identifies the clone group to which the DB cluster is associated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IAMDatabaseAuthenticationEnabled</i> True if mapping of Amazon Identity and Access Management (IAM) accounts to database accounts is enabled, and otherwise false.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociatedRoles</i> Provides a list of the Amazon Identity and Access Management (IAM) roles that are associated with the DB cluster. IAM roles that are associated with a DB cluster grant permission for the DB cluster to access other Amazon services on your behalf.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterArn</i> The Amazon Resource Name (ARN) for the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DbClusterResourceId</i> The Amazon Region-unique, immutable identifier for the DB cluster. This identifier is found in Amazon CloudTrail log entries whenever the Amazon KMS key for the DB cluster is accessed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> If <code>StorageEncrypted</code> is true, the Amazon KMS key identifier for the encrypted DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageEncrypted</i> Specifies whether the DB cluster is encrypted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HostedZoneId</i> Specifies the ID that Amazon Route 53 assigns when you create a hosted zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcSecurityGroups</i> Provides a list of VPC security groups that the DB cluster belongs to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterMembers</i> Provides the list of instances that make up the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadReplicaIdentifiers</i> Contains one or more identifiers of the Read Replicas associated with this DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationSourceIdentifier</i> Not supported by Neptune.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i> Specifies the weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredBackupWindow</i> Specifies the daily time range during which automated backups are created if automated backups are enabled, as determined by the <code>BackupRetentionPeriod</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterOptionGroupMemberships</i> Not supported by Neptune.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUsername</i> Not supported by Neptune.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Specifies the port that the database engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestRestorableTime</i> Specifies the latest time to which a database can be restored with point-in-time restore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> Indicates the database engine version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> Provides the name of the database engine to be used for this DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiAZ</i> Specifies whether the DB cluster has instances in multiple Availability Zones.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReaderEndpoint</i> The reader endpoint for the DB cluster. The reader endpoint for a DB cluster load-balances connections across the Read Replicas that are available in a DB cluster. As clients request new connections to the reader endpoint, Neptune distributes the connection requests among the Read Replicas in the DB cluster. This functionality can help balance your read workload across multiple Read Replicas in your DB cluster. If a failover occurs, and the Read Replica that you are connected to is promoted to be the primary instance, your connection is dropped. To continue sending your read workload to other Read Replicas in the cluster, you can then reconnect to the reader endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i> Specifies the connection endpoint for the primary instance of the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EarliestRestorableTime</i> Specifies the earliest time to which a database can be restored with point-in-time restore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PercentProgress</i> Specifies the progress of the operation as a percentage.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Specifies the current state of this DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroup</i> Specifies information on the subnet group associated with the DB cluster, including the name, description, and subnets in the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterParameterGroup</i> Specifies the name of the DB cluster parameter group for the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterIdentifier</i> Contains a user-supplied DB cluster identifier. This identifier is the unique key that identifies a DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> Contains the name of the initial database of this DB cluster that was provided at create time, if one was specified when the DB cluster was created. This same name is returned for the life of the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CharacterSetName</i> Not supported by Neptune.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupRetentionPeriod</i> Specifies the number of days for which automatic DB snapshots are retained.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZones</i> Provides the list of EC2 Availability Zones that instances in the DB cluster can be created in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllocatedStorage</i>  <code>AllocatedStorage</code> always returns 1, because Neptune DB cluster storage size is not fixed, but instead automatically adjusts as needed.<br/>        """
        pass

    def create_db_cluster_endpoint(self, EndpointType: str, DBClusterEndpointIdentifier: str, DBClusterIdentifier: str, StaticMembers: List[String]=None, ExcludedMembers: List[String]=None, Tags: List[Tag]=None) -> CreateDBClusterEndpointOutput:
        r"""Creates a new custom endpoint and associates it with an Amazon Neptune DB cluster.

        :param self:
        :param Tags:  The tags to be assigned to the Amazon Neptune resource.<br/>ExcludedMembers:  List of DB instance identifiers that aren't part of the custom endpoint group. All other eligible instances are reachable through the custom endpoint. Only relevant if the list of static members is empty.<br/>StaticMembers:  List of DB instance identifiers that are part of the custom endpoint group.<br/>EndpointType:  The type of the endpoint. One of: <code>READER</code>, <code>WRITER</code>, <code>ANY</code>.<br/>DBClusterEndpointIdentifier:  The identifier to use for the new endpoint. This parameter is stored as a lowercase string.<br/>DBClusterIdentifier:  The DB cluster identifier of the DB cluster associated with the endpoint. This parameter is stored as a lowercase string.<br/>
        :return: DBClusterEndpointArn:  The Amazon Resource Name (ARN) for the endpoint.<br/>ExcludedMembers:  List of DB instance identifiers that aren't part of the custom endpoint group. All other eligible instances are reachable through the custom endpoint. Only relevant if the list of static members is empty.<br/>StaticMembers:  List of DB instance identifiers that are part of the custom endpoint group.<br/>CustomEndpointType:  The type associated with a custom endpoint. One of: <code>READER</code>, <code>WRITER</code>, <code>ANY</code>.<br/>EndpointType:  The type of the endpoint. One of: <code>READER</code>, <code>WRITER</code>, <code>CUSTOM</code>.<br/>Status:  The current status of the endpoint. One of: <code>creating</code>, <code>available</code>, <code>deleting</code>, <code>inactive</code>, <code>modifying</code>. The <code>inactive</code> state applies to an endpoint that cannot be used for a certain kind of cluster, such as a <code>writer</code> endpoint for a read-only secondary cluster in a global database.<br/>Endpoint:  The DNS address of the endpoint.<br/>DBClusterEndpointResourceIdentifier:  A unique system-generated identifier for an endpoint. It remains the same for the whole life of the endpoint.<br/>DBClusterIdentifier:  The DB cluster identifier of the DB cluster associated with the endpoint. This parameter is stored as a lowercase string.<br/>DBClusterEndpointIdentifier:  The identifier associated with the endpoint. This parameter is stored as a lowercase string.<br/>        """
        pass

    def create_db_cluster_parameter_group(self, Description: str, DBParameterGroupFamily: str, DBClusterParameterGroupName: str, Tags: List[Tag]=None) -> CreateDBClusterParameterGroupResult:
        r"""Creates a new DB cluster parameter group. Parameters in a DB cluster parameter group apply to all of the instances in a DB cluster.  A DB cluster parameter group is initially created with the default parameters for the database engine used by instances in the DB cluster. To provide custom values for any of the parameters, you must modify the group after creating it using <a>ModifyDBClusterParameterGroup</a>. Once you've created a DB cluster parameter group, you need to associate it with your DB cluster using <a>ModifyDBCluster</a>. When you associate a new DB cluster parameter group with a running DB cluster, you need to reboot the DB instances in the DB cluster without failover for the new DB cluster parameter group and associated settings to take effect. <important> After you create a DB cluster parameter group, you should wait at least 5 minutes before creating your first DB cluster that uses that DB cluster parameter group as the default parameter group. This allows Amazon Neptune to fully complete the create action before the DB cluster parameter group is used as the default for a new DB cluster. This is especially important for parameters that are critical when creating the default database for a DB cluster, such as the character set for the default database defined by the <code>character_set_database</code> parameter. You can use the <i>Parameter Groups</i> option of the <a href="https://console.aws.amazon.com/rds/">Amazon Neptune console</a> or the <a>DescribeDBClusterParameters</a> command to verify that your DB cluster parameter group has been created or modified. </important>

        :param self:
        :param Tags:  The tags to be assigned to the new DB cluster parameter group.<br/>Description:  The description for the DB cluster parameter group.<br/>DBParameterGroupFamily:  The DB cluster parameter group family name. A DB cluster parameter group can be associated with one and only one DB cluster parameter group family, and can be applied only to a DB cluster running a database engine and engine version compatible with that DB cluster parameter group family.<br/>DBClusterParameterGroupName:  The name of the DB cluster parameter group. Constraints: <ul> <li> Must match the name of an existing DBClusterParameterGroup. </li> </ul> <note> This value is stored as a lowercase string. </note><br/>
        :return: DBClusterParameterGroup:  Contains the details of an Amazon Neptune DB cluster parameter group. This data type is used as a response element in the <a>DescribeDBClusterParameterGroups</a> action.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterParameterGroupArn</i> The Amazon Resource Name (ARN) for the DB cluster parameter group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> Provides the customer-specified description for this DB cluster parameter group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBParameterGroupFamily</i> Provides the name of the DB parameter group family that this DB cluster parameter group is compatible with.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterParameterGroupName</i> Provides the name of the DB cluster parameter group.<br/>        """
        pass

    def create_db_cluster_snapshot(self, DBClusterIdentifier: str, DBClusterSnapshotIdentifier: str, Tags: List[Tag]=None) -> CreateDBClusterSnapshotResult:
        r"""Creates a snapshot of a DB cluster.

        :param self:
        :param Tags:  The tags to be assigned to the DB cluster snapshot.<br/>DBClusterIdentifier:  The identifier of the DB cluster to create a snapshot for. This parameter is not case-sensitive. Constraints: <ul> <li> Must match the identifier of an existing DBCluster. </li> </ul> Example: <code>my-cluster1</code> <br/>DBClusterSnapshotIdentifier:  The identifier of the DB cluster snapshot. This parameter is stored as a lowercase string. Constraints: <ul> <li> Must contain from 1 to 63 letters, numbers, or hyphens. </li> <li> First character must be a letter. </li> <li> Cannot end with a hyphen or contain two consecutive hyphens. </li> </ul> Example: <code>my-cluster1-snapshot1</code> <br/>
        :return: DBClusterSnapshot:  Contains the details for an Amazon Neptune DB cluster snapshot This data type is used as a response element in the <a>DescribeDBClusterSnapshots</a> action.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IAMDatabaseAuthenticationEnabled</i> True if mapping of Amazon Identity and Access Management (IAM) accounts to database accounts is enabled, and otherwise false.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceDBClusterSnapshotArn</i> If the DB cluster snapshot was copied from a source DB cluster snapshot, the Amazon Resource Name (ARN) for the source DB cluster snapshot, otherwise, a null value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterSnapshotArn</i> The Amazon Resource Name (ARN) for the DB cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> If <code>StorageEncrypted</code> is true, the Amazon KMS key identifier for the encrypted DB cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageEncrypted</i> Specifies whether the DB cluster snapshot is encrypted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PercentProgress</i> Specifies the percentage of the estimated data that has been transferred.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotType</i> Provides the type of the DB cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LicenseModel</i> Provides the license model information for this DB cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> Provides the version of the database engine for this DB cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUsername</i> Not supported by Neptune.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterCreateTime</i> Specifies the time when the DB cluster was created, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> Provides the VPC ID associated with the DB cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Specifies the port that the DB cluster was listening on at the time of the snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Specifies the status of this DB cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllocatedStorage</i> Specifies the allocated storage size in gibibytes (GiB).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> Specifies the name of the database engine.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotCreateTime</i> Provides the time when the snapshot was taken, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterIdentifier</i> Specifies the DB cluster identifier of the DB cluster that this DB cluster snapshot was created from.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterSnapshotIdentifier</i> Specifies the identifier for a DB cluster snapshot. Must match the identifier of an existing snapshot. After you restore a DB cluster using a <code>DBClusterSnapshotIdentifier</code>, you must specify the same <code>DBClusterSnapshotIdentifier</code> for any future updates to the DB cluster. When you specify this property for an update, the DB cluster is not restored from the snapshot again, and the data in the database is not changed. However, if you don't specify the <code>DBClusterSnapshotIdentifier</code>, an empty DB cluster is created, and the original DB cluster is deleted. If you specify a property that is different from the previous snapshot restore property, the DB cluster is restored from the snapshot specified by the <code>DBClusterSnapshotIdentifier</code>, and the original DB cluster is deleted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZones</i> Provides the list of EC2 Availability Zones that instances in the DB cluster snapshot can be restored in.<br/>        """
        pass

    def create_db_instance(self, Engine: str, DBInstanceClass: str, DBInstanceIdentifier: str, DBName: str=None, AllocatedStorage: int=None, MasterUsername: str=None, MasterUserPassword: str=None, DBSecurityGroups: List[String]=None, VpcSecurityGroupIds: List[String]=None, AvailabilityZone: str=None, DBSubnetGroupName: str=None, PreferredMaintenanceWindow: str=None, DBParameterGroupName: str=None, BackupRetentionPeriod: int=None, PreferredBackupWindow: str=None, Port: int=None, MultiAZ: BooleanOptional=None, EngineVersion: str=None, AutoMinorVersionUpgrade: BooleanOptional=None, LicenseModel: str=None, Iops: int=None, OptionGroupName: str=None, CharacterSetName: str=None, PubliclyAccessible: BooleanOptional=None, Tags: List[Tag]=None, DBClusterIdentifier: str=None, StorageType: str=None, TdeCredentialArn: str=None, TdeCredentialPassword: str=None, StorageEncrypted: BooleanOptional=None, KmsKeyId: str=None, Domain: str=None, CopyTagsToSnapshot: BooleanOptional=None, MonitoringInterval: int=None, MonitoringRoleArn: str=None, DomainIAMRoleName: str=None, PromotionTier: int=None, Timezone: str=None, EnableIAMDatabaseAuthentication: BooleanOptional=None, EnablePerformanceInsights: BooleanOptional=None, PerformanceInsightsKMSKeyId: str=None, EnableCloudwatchLogsExports: List[String]=None, DeletionProtection: BooleanOptional=None) -> CreateDBInstanceResult:
        r"""Creates a new DB instance.

        :param self:
        :param DeletionProtection:  A value that indicates whether the DB instance has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled. See <a href="https://docs.aws.amazon.com/neptune/latest/userguide/manage-console-instances-delete.html">Deleting a DB Instance</a>. DB instances in a DB cluster can be deleted even when deletion protection is enabled in their parent DB cluster.<br/>EnableCloudwatchLogsExports:  The list of log types that need to be enabled for exporting to CloudWatch Logs.<br/>PerformanceInsightsKMSKeyId:   <i>(Not supported by Neptune)</i> <br/>EnablePerformanceInsights:   <i>(Not supported by Neptune)</i> <br/>EnableIAMDatabaseAuthentication:  Not supported by Neptune (ignored).<br/>Timezone:  The time zone of the DB instance.<br/>PromotionTier:  A value that specifies the order in which an Read Replica is promoted to the primary instance after a failure of the existing primary instance.  Default: 1 Valid Values: 0 - 15<br/>DomainIAMRoleName:  Specify the name of the IAM role to be used when making API calls to the Directory Service.<br/>MonitoringRoleArn:  The ARN for the IAM role that permits Neptune to send enhanced monitoring metrics to Amazon CloudWatch Logs. For example, <code>arn:aws:iam:123456789012:role/emaccess</code>. If <code>MonitoringInterval</code> is set to a value other than 0, then you must supply a <code>MonitoringRoleArn</code> value.<br/>MonitoringInterval:  The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance. To disable collecting Enhanced Monitoring metrics, specify 0. The default is 0. If <code>MonitoringRoleArn</code> is specified, then you must also set <code>MonitoringInterval</code> to a value other than 0. Valid Values: <code>0, 1, 5, 10, 15, 30, 60</code> <br/>CopyTagsToSnapshot:  True to copy all tags from the DB instance to snapshots of the DB instance, and otherwise false. The default is false.<br/>Domain:  Specify the Active Directory Domain to create the instance in.<br/>KmsKeyId:  The Amazon KMS key identifier for an encrypted DB instance. The KMS key identifier is the Amazon Resource Name (ARN) for the KMS encryption key. If you are creating a DB instance with the same Amazon account that owns the KMS encryption key used to encrypt the new DB instance, then you can use the KMS key alias instead of the ARN for the KM encryption key. Not applicable. The KMS key identifier is managed by the DB cluster. For more information, see <a>CreateDBCluster</a>. If the <code>StorageEncrypted</code> parameter is true, and you do not specify a value for the <code>KmsKeyId</code> parameter, then Amazon Neptune will use your default encryption key. Amazon KMS creates the default encryption key for your Amazon account. Your Amazon account has a different default encryption key for each Amazon Region.<br/>StorageEncrypted:  Specifies whether the DB instance is encrypted. Not applicable. The encryption for DB instances is managed by the DB cluster. For more information, see <a>CreateDBCluster</a>. Default: false<br/>TdeCredentialPassword:  The password for the given ARN from the key store in order to access the device.<br/>TdeCredentialArn:  The ARN from the key store with which to associate the instance for TDE encryption.<br/>StorageType:  Specifies the storage type to be associated with the DB instance. Not applicable. Storage is managed by the DB Cluster.<br/>DBClusterIdentifier:  The identifier of the DB cluster that the instance will belong to. For information on creating a DB cluster, see <a>CreateDBCluster</a>. Type: String<br/>Tags:  The tags to assign to the new instance.<br/>PubliclyAccessible:  This flag should no longer be used.<br/>CharacterSetName:   <i>(Not supported by Neptune)</i> <br/>OptionGroupName:   <i>(Not supported by Neptune)</i> <br/>Iops:  The amount of Provisioned IOPS (input/output operations per second) to be initially allocated for the DB instance.<br/>LicenseModel:  License model information for this DB instance.  Valid values: <code>license-included</code> | <code>bring-your-own-license</code> | <code>general-public-license</code> <br/>AutoMinorVersionUpgrade:  Indicates that minor engine upgrades are applied automatically to the DB instance during the maintenance window. Default: <code>true</code> <br/>EngineVersion:  The version number of the database engine to use. Currently, setting this parameter has no effect.<br/>MultiAZ:  Specifies if the DB instance is a Multi-AZ deployment. You can't set the AvailabilityZone parameter if the MultiAZ parameter is set to true.<br/>Port:  The port number on which the database accepts connections. Not applicable. The port is managed by the DB cluster. For more information, see <a>CreateDBCluster</a>.  Default: <code>8182</code>  Type: Integer<br/>PreferredBackupWindow:   The daily time range during which automated backups are created. Not applicable. The daily time range for creating automated backups is managed by the DB cluster. For more information, see <a>CreateDBCluster</a>.<br/>BackupRetentionPeriod:  The number of days for which automated backups are retained. Not applicable. The retention period for automated backups is managed by the DB cluster. For more information, see <a>CreateDBCluster</a>. Default: 1 Constraints: <ul> <li> Must be a value from 0 to 35 </li> <li> Cannot be set to 0 if the DB instance is a source to Read Replicas </li> </ul><br/>DBParameterGroupName:  The name of the DB parameter group to associate with this DB instance. If this argument is omitted, the default DBParameterGroup for the specified engine is used. Constraints: <ul> <li> Must be 1 to 255 letters, numbers, or hyphens. </li> <li> First character must be a letter </li> <li> Cannot end with a hyphen or contain two consecutive hyphens </li> </ul><br/>PreferredMaintenanceWindow:  The time range each week during which system maintenance can occur, in Universal Coordinated Time (UTC).  Format: <code>ddd:hh24:mi-ddd:hh24:mi</code>  The default is a 30-minute window selected at random from an 8-hour block of time for each Amazon Region, occurring on a random day of the week. Valid Days: Mon, Tue, Wed, Thu, Fri, Sat, Sun. Constraints: Minimum 30-minute window.<br/>DBSubnetGroupName:  A DB subnet group to associate with this DB instance. If there is no DB subnet group, then it is a non-VPC DB instance.<br/>AvailabilityZone:   The EC2 Availability Zone that the DB instance is created in Default: A random, system-chosen Availability Zone in the endpoint's Amazon Region.  Example: <code>us-east-1d</code>   Constraint: The AvailabilityZone parameter can't be specified if the MultiAZ parameter is set to <code>true</code>. The specified Availability Zone must be in the same Amazon Region as the current endpoint.<br/>VpcSecurityGroupIds:  A list of EC2 VPC security groups to associate with this DB instance. Not applicable. The associated list of EC2 VPC security groups is managed by the DB cluster. For more information, see <a>CreateDBCluster</a>. Default: The default EC2 VPC security group for the DB subnet group's VPC.<br/>DBSecurityGroups:  A list of DB security groups to associate with this DB instance. Default: The default DB security group for the database engine.<br/>MasterUserPassword:  Not supported by Neptune.<br/>MasterUsername:  Not supported by Neptune.<br/>Engine:  The name of the database engine to be used for this instance. Valid Values: <code>neptune</code> <br/>DBInstanceClass:  The compute and memory capacity of the DB instance, for example, <code>db.m4.large</code>. Not all DB instance classes are available in all Amazon Regions.<br/>AllocatedStorage:  Not supported by Neptune.<br/>DBInstanceIdentifier:  The DB instance identifier. This parameter is stored as a lowercase string. Constraints: <ul> <li> Must contain from 1 to 63 letters, numbers, or hyphens. </li> <li> First character must be a letter. </li> <li> Cannot end with a hyphen or contain two consecutive hyphens. </li> </ul> Example: <code>mydbinstance</code> <br/>DBName:  Not supported.<br/>
        :return: DBInstance:  Contains the details of an Amazon Neptune DB instance. This data type is used as a response element in the <a>DescribeDBInstances</a> action.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeletionProtection</i> Indicates whether or not the DB instance has deletion protection enabled. The instance can't be deleted when deletion protection is enabled. See <a href="https://docs.aws.amazon.com/neptune/latest/userguide/manage-console-instances-delete.html">Deleting a DB Instance</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnabledCloudwatchLogsExports</i> A list of log types that this DB instance is configured to export to CloudWatch Logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PerformanceInsightsKMSKeyId</i>  <i>(Not supported by Neptune)</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PerformanceInsightsEnabled</i>  <i>(Not supported by Neptune)</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IAMDatabaseAuthenticationEnabled</i> True if Amazon Identity and Access Management (IAM) authentication is enabled, and otherwise false.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Timezone</i> Not supported.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceArn</i> The Amazon Resource Name (ARN) for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PromotionTier</i> A value that specifies the order in which a Read Replica is promoted to the primary instance after a failure of the existing primary instance. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MonitoringRoleArn</i> The ARN for the IAM role that permits Neptune to send Enhanced Monitoring metrics to Amazon CloudWatch Logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnhancedMonitoringResourceArn</i> The Amazon Resource Name (ARN) of the Amazon CloudWatch Logs log stream that receives the Enhanced Monitoring metrics data for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MonitoringInterval</i> The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CopyTagsToSnapshot</i> Specifies whether tags are copied from the DB instance to snapshots of the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainMemberships</i> Not supported<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CACertificateIdentifier</i> The identifier of the CA certificate for this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DbiResourceId</i> The Amazon Region-unique, immutable identifier for the DB instance. This identifier is found in Amazon CloudTrail log entries whenever the Amazon KMS key for the DB instance is accessed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i>  Not supported: The encryption for DB instances is managed by the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageEncrypted</i> Not supported: The encryption for DB instances is managed by the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterIdentifier</i> If the DB instance is a member of a DB cluster, contains the name of the DB cluster that the DB instance is a member of.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DbInstancePort</i> Specifies the port that the DB instance listens on. If the DB instance is part of a DB cluster, this can be a different port than the DB cluster port.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TdeCredentialArn</i> The ARN from the key store with which the instance is associated for TDE encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageType</i> Specifies the storage type associated with DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusInfos</i> The status of a Read Replica. If the instance is not a Read Replica, this is blank.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PubliclyAccessible</i> This flag should no longer be used.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecondaryAvailabilityZone</i> If present, specifies the name of the secondary Availability Zone for a DB instance with multi-AZ support.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CharacterSetName</i>  <i>(Not supported by Neptune)</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OptionGroupMemberships</i>  <i>(Not supported by Neptune)</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Iops</i> Specifies the Provisioned IOPS (I/O operations per second) value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LicenseModel</i> License model information for this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadReplicaDBClusterIdentifiers</i> Contains one or more identifiers of DB clusters that are Read Replicas of this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadReplicaDBInstanceIdentifiers</i> Contains one or more identifiers of the Read Replicas associated with this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadReplicaSourceDBInstanceIdentifier</i> Contains the identifier of the source DB instance if this DB instance is a Read Replica.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoMinorVersionUpgrade</i> Indicates that minor version patches are applied automatically.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> Indicates the database engine version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiAZ</i> Specifies if the DB instance is a Multi-AZ deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestRestorableTime</i> Specifies the latest time to which a database can be restored with point-in-time restore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingModifiedValues</i> Specifies that changes to the DB instance are pending. This element is only included when changes are pending. Specific changes are identified by subelements.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingModifiedValues</b>: Specifies that changes to the DB instance are pending. This element is only included when changes are pending. Specific changes are identified by subelements.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i> Specifies the weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroup</i> Specifies information on the subnet group associated with the DB instance, including the name, description, and subnets in the subnet group.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DBSubnetGroup</b>: Specifies information on the subnet group associated with the DB instance, including the name, description, and subnets in the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZone</i> Specifies the name of the Availability Zone the DB instance is located in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBParameterGroups</i> Provides the list of DB parameter groups applied to this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcSecurityGroups</i> Provides a list of VPC security group elements that the DB instance belongs to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSecurityGroups</i>  Provides List of DB security group elements containing only <code>DBSecurityGroup.Name</code> and <code>DBSecurityGroup.Status</code> subelements.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupRetentionPeriod</i> Specifies the number of days for which automatic DB snapshots are retained.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredBackupWindow</i>  Specifies the daily time range during which automated backups are created if automated backups are enabled, as determined by the <code>BackupRetentionPeriod</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceCreateTime</i> Provides the date and time the DB instance was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllocatedStorage</i> Not supported by Neptune.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i> Specifies the connection endpoint.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Endpoint</b>: Specifies the connection endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBName</i> The database name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUsername</i> Not supported by Neptune.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceStatus</i> Specifies the current state of this database.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> Provides the name of the database engine to be used for this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceClass</i> Contains the name of the compute and memory capacity class of the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceIdentifier</i> Contains a user-supplied database identifier. This identifier is the unique key that identifies a DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HostedZoneId</i> Specifies the ID that Amazon Route 53 assigns when you create a hosted zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Specifies the port that the database engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Address</i> Specifies the DNS address of the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupArn</i> The Amazon Resource Name (ARN) for the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Subnets</i>  Contains a list of <a>Subnet</a> elements.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetGroupStatus</i> Provides the status of the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> Provides the VpcId of the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupDescription</i> Provides the description of the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupName</i> The name of the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupName</i> The new DB subnet group for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CACertificateIdentifier</i> Specifies the identifier of the CA certificate for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageType</i> Specifies the storage type to be associated with the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceIdentifier</i>  Contains the new <code>DBInstanceIdentifier</code> for the DB instance that will be applied or is currently being applied.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Iops</i> Specifies the new Provisioned IOPS value for the DB instance that will be applied or is currently being applied.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LicenseModel</i> Not supported by Neptune.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> Indicates the database engine version.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiAZ</i> Indicates that the Single-AZ DB instance is to change to a Multi-AZ deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupRetentionPeriod</i> Specifies the pending number of days for which automated backups are retained.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Specifies the pending port for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUserPassword</i> Not supported by Neptune.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AllocatedStorage</i>  Contains the new <code>AllocatedStorage</code> size for the DB instance that will be applied or is currently being applied.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceClass</i>  Contains the new <code>DBInstanceClass</code> for the DB instance that will be applied or is currently being applied.<br/>This <code>PendingCloudwatchLogsExports</code> structure specifies pending changes to which CloudWatch logs are enabled and which are disabled.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingCloudwatchLogsExports</b>: This <code>PendingCloudwatchLogsExports</code> structure specifies pending changes to which CloudWatch logs are enabled and which are disabled.        """
        pass

    def create_db_parameter_group(self, Description: str, DBParameterGroupFamily: str, DBParameterGroupName: str, Tags: List[Tag]=None) -> CreateDBParameterGroupResult:
        r"""Creates a new DB parameter group. A DB parameter group is initially created with the default parameters for the database engine used by the DB instance. To provide custom values for any of the parameters, you must modify the group after creating it using <i>ModifyDBParameterGroup</i>. Once you've created a DB parameter group, you need to associate it with your DB instance using <i>ModifyDBInstance</i>. When you associate a new DB parameter group with a running DB instance, you need to reboot the DB instance without failover for the new DB parameter group and associated settings to take effect. <important> After you create a DB parameter group, you should wait at least 5 minutes before creating your first DB instance that uses that DB parameter group as the default parameter group. This allows Amazon Neptune to fully complete the create action before the parameter group is used as the default for a new DB instance. This is especially important for parameters that are critical when creating the default database for a DB instance, such as the character set for the default database defined by the <code>character_set_database</code> parameter. You can use the <i>Parameter Groups</i> option of the Amazon Neptune console or the <i>DescribeDBParameters</i> command to verify that your DB parameter group has been created or modified. </important>

        :param self:
        :param Tags:  The tags to be assigned to the new DB parameter group.<br/>Description:  The description for the DB parameter group.<br/>DBParameterGroupFamily:  The DB parameter group family name. A DB parameter group can be associated with one and only one DB parameter group family, and can be applied only to a DB instance running a database engine and engine version compatible with that DB parameter group family.<br/>DBParameterGroupName:  The name of the DB parameter group. Constraints: <ul> <li> Must be 1 to 255 letters, numbers, or hyphens. </li> <li> First character must be a letter </li> <li> Cannot end with a hyphen or contain two consecutive hyphens </li> </ul> <note> This value is stored as a lowercase string. </note><br/>
        :return: DBParameterGroup:  Contains the details of an Amazon Neptune DB parameter group. This data type is used as a response element in the <a>DescribeDBParameterGroups</a> action.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBParameterGroupArn</i> The Amazon Resource Name (ARN) for the DB parameter group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> Provides the customer-specified description for this DB parameter group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBParameterGroupFamily</i> Provides the name of the DB parameter group family that this DB parameter group is compatible with.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBParameterGroupName</i> Provides the name of the DB parameter group.<br/>        """
        pass

    def create_db_subnet_group(self, SubnetIds: List[String], DBSubnetGroupDescription: str, DBSubnetGroupName: str, Tags: List[Tag]=None) -> CreateDBSubnetGroupResult:
        r"""Creates a new DB subnet group. DB subnet groups must contain at least one subnet in at least two AZs in the Amazon Region.

        :param self:
        :param Tags:  The tags to be assigned to the new DB subnet group.<br/>SubnetIds:  The EC2 Subnet IDs for the DB subnet group.<br/>DBSubnetGroupDescription:  The description for the DB subnet group.<br/>DBSubnetGroupName:  The name for the DB subnet group. This value is stored as a lowercase string. Constraints: Must contain no more than 255 letters, numbers, periods, underscores, spaces, or hyphens. Must not be default. Example: <code>mySubnetgroup</code> <br/>
        :return: DBSubnetGroup:  Contains the details of an Amazon Neptune DB subnet group. This data type is used as a response element in the <a>DescribeDBSubnetGroups</a> action.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupArn</i> The Amazon Resource Name (ARN) for the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Subnets</i>  Contains a list of <a>Subnet</a> elements.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetGroupStatus</i> Provides the status of the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> Provides the VpcId of the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupDescription</i> Provides the description of the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupName</i> The name of the DB subnet group.<br/>        """
        pass

    def create_event_subscription(self, SnsTopicArn: str, SubscriptionName: str, SourceType: str=None, EventCategories: List[String]=None, SourceIds: List[String]=None, Enabled: BooleanOptional=None, Tags: List[Tag]=None) -> CreateEventSubscriptionResult:
        r"""Creates an event notification subscription. This action requires a topic ARN (Amazon Resource Name) created by either the Neptune console, the SNS console, or the SNS API. To obtain an ARN with SNS, you must create a topic in Amazon SNS and subscribe to the topic. The ARN is displayed in the SNS console. You can specify the type of source (SourceType) you want to be notified of, provide a list of Neptune sources (SourceIds) that triggers the events, and provide a list of event categories (EventCategories) for events you want to be notified of. For example, you can specify SourceType = db-instance, SourceIds = mydbinstance1, mydbinstance2 and EventCategories = Availability, Backup. If you specify both the SourceType and SourceIds, such as SourceType = db-instance and SourceIdentifier = myDBInstance1, you are notified of all the db-instance events for the specified source. If you specify a SourceType but do not specify a SourceIdentifier, you receive notice of the events for that source type for all your Neptune sources. If you do not specify either the SourceType nor the SourceIdentifier, you are notified of events generated from all Neptune sources belonging to your customer account.

        :param self:
        :param Tags:  The tags to be applied to the new event subscription.<br/>Enabled:   A Boolean value; set to <b>true</b> to activate the subscription, set to <b>false</b> to create the subscription but not active it.<br/>SourceIds:  The list of identifiers of the event sources for which events are returned. If not specified, then all sources are included in the response. An identifier must begin with a letter and must contain only ASCII letters, digits, and hyphens; it can't end with a hyphen or contain two consecutive hyphens. Constraints: <ul> <li> If SourceIds are supplied, SourceType must also be provided. </li> <li> If the source type is a DB instance, then a <code>DBInstanceIdentifier</code> must be supplied. </li> <li> If the source type is a DB security group, a <code>DBSecurityGroupName</code> must be supplied. </li> <li> If the source type is a DB parameter group, a <code>DBParameterGroupName</code> must be supplied. </li> <li> If the source type is a DB snapshot, a <code>DBSnapshotIdentifier</code> must be supplied. </li> </ul><br/>EventCategories:   A list of event categories for a SourceType that you want to subscribe to. You can see a list of the categories for a given SourceType by using the <b>DescribeEventCategories</b> action.<br/>SourceType:  The type of source that is generating the events. For example, if you want to be notified of events generated by a DB instance, you would set this parameter to db-instance. if this value is not specified, all events are returned. Valid values: <code>db-instance</code> | <code>db-cluster</code> | <code>db-parameter-group</code> | <code>db-security-group</code> | <code>db-snapshot</code> | <code>db-cluster-snapshot</code> <br/>SnsTopicArn:  The Amazon Resource Name (ARN) of the SNS topic created for event notification. The ARN is created by Amazon SNS when you create a topic and subscribe to it.<br/>SubscriptionName:  The name of the subscription. Constraints: The name must be less than 255 characters.<br/>
        :return: EventSubscription:  Contains the results of a successful invocation of the <a>DescribeEventSubscriptions</a> action.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EventSubscriptionArn</i> The Amazon Resource Name (ARN) for the event subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> A Boolean value indicating if the subscription is enabled. True indicates the subscription is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EventCategoriesList</i> A list of event categories for the event notification subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceIdsList</i> A list of source IDs for the event notification subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceType</i> The source type for the event notification subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubscriptionCreationTime</i> The time the event notification subscription was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the event notification subscription. Constraints: Can be one of the following: creating | modifying | deleting | active | no-permission | topic-not-exist The status "no-permission" indicates that Neptune no longer has permission to post to the SNS topic. The status "topic-not-exist" indicates that the topic was deleted after the subscription was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnsTopicArn</i> The topic ARN of the event notification subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustSubscriptionId</i> The event notification subscription Id.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomerAwsId</i> The Amazon customer account associated with the event notification subscription.<br/>        """
        pass

    def delete_db_cluster(self, DBClusterIdentifier: str, SkipFinalSnapshot: Boolean=None, FinalDBSnapshotIdentifier: str=None) -> DeleteDBClusterResult:
        r"""The DeleteDBCluster action deletes a previously provisioned DB cluster. When you delete a DB cluster, all automated backups for that DB cluster are deleted and can't be recovered. Manual DB cluster snapshots of the specified DB cluster are not deleted. Note that the DB Cluster cannot be deleted if deletion protection is enabled. To delete it, you must first set its <code>DeletionProtection</code> field to <code>False</code>.

        :param self:
        :param FinalDBSnapshotIdentifier:   The DB cluster snapshot identifier of the new DB cluster snapshot created when <code>SkipFinalSnapshot</code> is set to <code>false</code>. <note>  Specifying this parameter and also setting the <code>SkipFinalShapshot</code> parameter to true results in an error. </note> Constraints: <ul> <li> Must be 1 to 255 letters, numbers, or hyphens. </li> <li> First character must be a letter </li> <li> Cannot end with a hyphen or contain two consecutive hyphens </li> </ul><br/>SkipFinalSnapshot:   Determines whether a final DB cluster snapshot is created before the DB cluster is deleted. If <code>true</code> is specified, no DB cluster snapshot is created. If <code>false</code> is specified, a DB cluster snapshot is created before the DB cluster is deleted. <note> You must specify a <code>FinalDBSnapshotIdentifier</code> parameter if <code>SkipFinalSnapshot</code> is <code>false</code>. </note> Default: <code>false</code> <br/>DBClusterIdentifier:  The DB cluster identifier for the DB cluster to be deleted. This parameter isn't case-sensitive. Constraints: <ul> <li> Must match an existing DBClusterIdentifier. </li> </ul><br/>
        :return: DBCluster:  Contains the details of an Amazon Neptune DB cluster. This data type is used as a response element in the <a>DescribeDBClusters</a> action.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomaticRestartTime</i> Time at which the DB cluster will be automatically restarted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CrossAccountClone</i> If set to <code>true</code>, the DB cluster can be cloned across accounts.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeletionProtection</i> Indicates whether or not the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnabledCloudwatchLogsExports</i> A list of log types that this DB cluster is configured to export to CloudWatch Logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CopyTagsToSnapshot</i>  <i>If set to <code>true</code>, tags are copied to any snapshot of the DB cluster that is created.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterCreateTime</i> Specifies the time when the DB cluster was created, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloneGroupId</i> Identifies the clone group to which the DB cluster is associated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IAMDatabaseAuthenticationEnabled</i> True if mapping of Amazon Identity and Access Management (IAM) accounts to database accounts is enabled, and otherwise false.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociatedRoles</i> Provides a list of the Amazon Identity and Access Management (IAM) roles that are associated with the DB cluster. IAM roles that are associated with a DB cluster grant permission for the DB cluster to access other Amazon services on your behalf.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterArn</i> The Amazon Resource Name (ARN) for the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DbClusterResourceId</i> The Amazon Region-unique, immutable identifier for the DB cluster. This identifier is found in Amazon CloudTrail log entries whenever the Amazon KMS key for the DB cluster is accessed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> If <code>StorageEncrypted</code> is true, the Amazon KMS key identifier for the encrypted DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageEncrypted</i> Specifies whether the DB cluster is encrypted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HostedZoneId</i> Specifies the ID that Amazon Route 53 assigns when you create a hosted zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcSecurityGroups</i> Provides a list of VPC security groups that the DB cluster belongs to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterMembers</i> Provides the list of instances that make up the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadReplicaIdentifiers</i> Contains one or more identifiers of the Read Replicas associated with this DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationSourceIdentifier</i> Not supported by Neptune.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i> Specifies the weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredBackupWindow</i> Specifies the daily time range during which automated backups are created if automated backups are enabled, as determined by the <code>BackupRetentionPeriod</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterOptionGroupMemberships</i> Not supported by Neptune.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUsername</i> Not supported by Neptune.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Specifies the port that the database engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestRestorableTime</i> Specifies the latest time to which a database can be restored with point-in-time restore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> Indicates the database engine version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> Provides the name of the database engine to be used for this DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiAZ</i> Specifies whether the DB cluster has instances in multiple Availability Zones.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReaderEndpoint</i> The reader endpoint for the DB cluster. The reader endpoint for a DB cluster load-balances connections across the Read Replicas that are available in a DB cluster. As clients request new connections to the reader endpoint, Neptune distributes the connection requests among the Read Replicas in the DB cluster. This functionality can help balance your read workload across multiple Read Replicas in your DB cluster. If a failover occurs, and the Read Replica that you are connected to is promoted to be the primary instance, your connection is dropped. To continue sending your read workload to other Read Replicas in the cluster, you can then reconnect to the reader endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i> Specifies the connection endpoint for the primary instance of the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EarliestRestorableTime</i> Specifies the earliest time to which a database can be restored with point-in-time restore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PercentProgress</i> Specifies the progress of the operation as a percentage.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Specifies the current state of this DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroup</i> Specifies information on the subnet group associated with the DB cluster, including the name, description, and subnets in the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterParameterGroup</i> Specifies the name of the DB cluster parameter group for the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterIdentifier</i> Contains a user-supplied DB cluster identifier. This identifier is the unique key that identifies a DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> Contains the name of the initial database of this DB cluster that was provided at create time, if one was specified when the DB cluster was created. This same name is returned for the life of the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CharacterSetName</i> Not supported by Neptune.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupRetentionPeriod</i> Specifies the number of days for which automatic DB snapshots are retained.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZones</i> Provides the list of EC2 Availability Zones that instances in the DB cluster can be created in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllocatedStorage</i>  <code>AllocatedStorage</code> always returns 1, because Neptune DB cluster storage size is not fixed, but instead automatically adjusts as needed.<br/>        """
        pass

    def delete_db_cluster_endpoint(self, DBClusterEndpointIdentifier: str) -> DeleteDBClusterEndpointOutput:
        r"""Deletes a custom endpoint and removes it from an Amazon Neptune DB cluster.

        :param self:
        :param DBClusterEndpointIdentifier:  The identifier associated with the custom endpoint. This parameter is stored as a lowercase string.<br/>
        :return: DBClusterEndpointArn:  The Amazon Resource Name (ARN) for the endpoint.<br/>ExcludedMembers:  List of DB instance identifiers that aren't part of the custom endpoint group. All other eligible instances are reachable through the custom endpoint. Only relevant if the list of static members is empty.<br/>StaticMembers:  List of DB instance identifiers that are part of the custom endpoint group.<br/>CustomEndpointType:  The type associated with a custom endpoint. One of: <code>READER</code>, <code>WRITER</code>, <code>ANY</code>.<br/>EndpointType:  The type of the endpoint. One of: <code>READER</code>, <code>WRITER</code>, <code>CUSTOM</code>.<br/>Status:  The current status of the endpoint. One of: <code>creating</code>, <code>available</code>, <code>deleting</code>, <code>inactive</code>, <code>modifying</code>. The <code>inactive</code> state applies to an endpoint that cannot be used for a certain kind of cluster, such as a <code>writer</code> endpoint for a read-only secondary cluster in a global database.<br/>Endpoint:  The DNS address of the endpoint.<br/>DBClusterEndpointResourceIdentifier:  A unique system-generated identifier for an endpoint. It remains the same for the whole life of the endpoint.<br/>DBClusterIdentifier:  The DB cluster identifier of the DB cluster associated with the endpoint. This parameter is stored as a lowercase string.<br/>DBClusterEndpointIdentifier:  The identifier associated with the endpoint. This parameter is stored as a lowercase string.<br/>        """
        pass

    def delete_db_cluster_parameter_group(self, DBClusterParameterGroupName: str):
        r"""Deletes a specified DB cluster parameter group. The DB cluster parameter group to be deleted can't be associated with any DB clusters.

        :param self:
        :param DBClusterParameterGroupName:  The name of the DB cluster parameter group. Constraints: <ul> <li> Must be the name of an existing DB cluster parameter group. </li> <li> You can't delete a default DB cluster parameter group. </li> <li> Cannot be associated with any DB clusters. </li> </ul><br/>
        :return:         """
        pass

    def delete_db_cluster_snapshot(self, DBClusterSnapshotIdentifier: str) -> DeleteDBClusterSnapshotResult:
        r"""Deletes a DB cluster snapshot. If the snapshot is being copied, the copy operation is terminated. <note> The DB cluster snapshot must be in the <code>available</code> state to be deleted. </note>

        :param self:
        :param DBClusterSnapshotIdentifier:  The identifier of the DB cluster snapshot to delete. Constraints: Must be the name of an existing DB cluster snapshot in the <code>available</code> state.<br/>
        :return: DBClusterSnapshot:  Contains the details for an Amazon Neptune DB cluster snapshot This data type is used as a response element in the <a>DescribeDBClusterSnapshots</a> action.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IAMDatabaseAuthenticationEnabled</i> True if mapping of Amazon Identity and Access Management (IAM) accounts to database accounts is enabled, and otherwise false.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceDBClusterSnapshotArn</i> If the DB cluster snapshot was copied from a source DB cluster snapshot, the Amazon Resource Name (ARN) for the source DB cluster snapshot, otherwise, a null value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterSnapshotArn</i> The Amazon Resource Name (ARN) for the DB cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> If <code>StorageEncrypted</code> is true, the Amazon KMS key identifier for the encrypted DB cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageEncrypted</i> Specifies whether the DB cluster snapshot is encrypted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PercentProgress</i> Specifies the percentage of the estimated data that has been transferred.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotType</i> Provides the type of the DB cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LicenseModel</i> Provides the license model information for this DB cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> Provides the version of the database engine for this DB cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUsername</i> Not supported by Neptune.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterCreateTime</i> Specifies the time when the DB cluster was created, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> Provides the VPC ID associated with the DB cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Specifies the port that the DB cluster was listening on at the time of the snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Specifies the status of this DB cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllocatedStorage</i> Specifies the allocated storage size in gibibytes (GiB).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> Specifies the name of the database engine.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotCreateTime</i> Provides the time when the snapshot was taken, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterIdentifier</i> Specifies the DB cluster identifier of the DB cluster that this DB cluster snapshot was created from.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterSnapshotIdentifier</i> Specifies the identifier for a DB cluster snapshot. Must match the identifier of an existing snapshot. After you restore a DB cluster using a <code>DBClusterSnapshotIdentifier</code>, you must specify the same <code>DBClusterSnapshotIdentifier</code> for any future updates to the DB cluster. When you specify this property for an update, the DB cluster is not restored from the snapshot again, and the data in the database is not changed. However, if you don't specify the <code>DBClusterSnapshotIdentifier</code>, an empty DB cluster is created, and the original DB cluster is deleted. If you specify a property that is different from the previous snapshot restore property, the DB cluster is restored from the snapshot specified by the <code>DBClusterSnapshotIdentifier</code>, and the original DB cluster is deleted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZones</i> Provides the list of EC2 Availability Zones that instances in the DB cluster snapshot can be restored in.<br/>        """
        pass

    def delete_db_instance(self, DBInstanceIdentifier: str, SkipFinalSnapshot: Boolean=None, FinalDBSnapshotIdentifier: str=None) -> DeleteDBInstanceResult:
        r"""The DeleteDBInstance action deletes a previously provisioned DB instance. When you delete a DB instance, all automated backups for that instance are deleted and can't be recovered. Manual DB snapshots of the DB instance to be deleted by <code>DeleteDBInstance</code> are not deleted.  If you request a final DB snapshot the status of the Amazon Neptune DB instance is <code>deleting</code> until the DB snapshot is created. The API action <code>DescribeDBInstance</code> is used to monitor the status of this operation. The action can't be canceled or reverted once submitted. Note that when a DB instance is in a failure state and has a status of <code>failed</code>, <code>incompatible-restore</code>, or <code>incompatible-network</code>, you can only delete it when the <code>SkipFinalSnapshot</code> parameter is set to <code>true</code>. You can't delete a DB instance if it is the only instance in the DB cluster, or if it has deletion protection enabled.

        :param self:
        :param FinalDBSnapshotIdentifier:   The DBSnapshotIdentifier of the new DBSnapshot created when SkipFinalSnapshot is set to <code>false</code>. <note> Specifying this parameter and also setting the SkipFinalShapshot parameter to true results in an error. </note> Constraints: <ul> <li> Must be 1 to 255 letters or numbers. </li> <li> First character must be a letter </li> <li> Cannot end with a hyphen or contain two consecutive hyphens </li> <li> Cannot be specified when deleting a Read Replica. </li> </ul><br/>SkipFinalSnapshot:   Determines whether a final DB snapshot is created before the DB instance is deleted. If <code>true</code> is specified, no DBSnapshot is created. If <code>false</code> is specified, a DB snapshot is created before the DB instance is deleted. Note that when a DB instance is in a failure state and has a status of 'failed', 'incompatible-restore', or 'incompatible-network', it can only be deleted when the SkipFinalSnapshot parameter is set to "true". Specify <code>true</code> when deleting a Read Replica. <note> The FinalDBSnapshotIdentifier parameter must be specified if SkipFinalSnapshot is <code>false</code>. </note> Default: <code>false</code> <br/>DBInstanceIdentifier:  The DB instance identifier for the DB instance to be deleted. This parameter isn't case-sensitive. Constraints: <ul> <li> Must match the name of an existing DB instance. </li> </ul><br/>
        :return: DBInstance:  Contains the details of an Amazon Neptune DB instance. This data type is used as a response element in the <a>DescribeDBInstances</a> action.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeletionProtection</i> Indicates whether or not the DB instance has deletion protection enabled. The instance can't be deleted when deletion protection is enabled. See <a href="https://docs.aws.amazon.com/neptune/latest/userguide/manage-console-instances-delete.html">Deleting a DB Instance</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnabledCloudwatchLogsExports</i> A list of log types that this DB instance is configured to export to CloudWatch Logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PerformanceInsightsKMSKeyId</i>  <i>(Not supported by Neptune)</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PerformanceInsightsEnabled</i>  <i>(Not supported by Neptune)</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IAMDatabaseAuthenticationEnabled</i> True if Amazon Identity and Access Management (IAM) authentication is enabled, and otherwise false.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Timezone</i> Not supported.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceArn</i> The Amazon Resource Name (ARN) for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PromotionTier</i> A value that specifies the order in which a Read Replica is promoted to the primary instance after a failure of the existing primary instance. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MonitoringRoleArn</i> The ARN for the IAM role that permits Neptune to send Enhanced Monitoring metrics to Amazon CloudWatch Logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnhancedMonitoringResourceArn</i> The Amazon Resource Name (ARN) of the Amazon CloudWatch Logs log stream that receives the Enhanced Monitoring metrics data for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MonitoringInterval</i> The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CopyTagsToSnapshot</i> Specifies whether tags are copied from the DB instance to snapshots of the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainMemberships</i> Not supported<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CACertificateIdentifier</i> The identifier of the CA certificate for this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DbiResourceId</i> The Amazon Region-unique, immutable identifier for the DB instance. This identifier is found in Amazon CloudTrail log entries whenever the Amazon KMS key for the DB instance is accessed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i>  Not supported: The encryption for DB instances is managed by the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageEncrypted</i> Not supported: The encryption for DB instances is managed by the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterIdentifier</i> If the DB instance is a member of a DB cluster, contains the name of the DB cluster that the DB instance is a member of.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DbInstancePort</i> Specifies the port that the DB instance listens on. If the DB instance is part of a DB cluster, this can be a different port than the DB cluster port.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TdeCredentialArn</i> The ARN from the key store with which the instance is associated for TDE encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageType</i> Specifies the storage type associated with DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusInfos</i> The status of a Read Replica. If the instance is not a Read Replica, this is blank.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PubliclyAccessible</i> This flag should no longer be used.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecondaryAvailabilityZone</i> If present, specifies the name of the secondary Availability Zone for a DB instance with multi-AZ support.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CharacterSetName</i>  <i>(Not supported by Neptune)</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OptionGroupMemberships</i>  <i>(Not supported by Neptune)</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Iops</i> Specifies the Provisioned IOPS (I/O operations per second) value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LicenseModel</i> License model information for this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadReplicaDBClusterIdentifiers</i> Contains one or more identifiers of DB clusters that are Read Replicas of this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadReplicaDBInstanceIdentifiers</i> Contains one or more identifiers of the Read Replicas associated with this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadReplicaSourceDBInstanceIdentifier</i> Contains the identifier of the source DB instance if this DB instance is a Read Replica.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoMinorVersionUpgrade</i> Indicates that minor version patches are applied automatically.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> Indicates the database engine version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiAZ</i> Specifies if the DB instance is a Multi-AZ deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestRestorableTime</i> Specifies the latest time to which a database can be restored with point-in-time restore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingModifiedValues</i> Specifies that changes to the DB instance are pending. This element is only included when changes are pending. Specific changes are identified by subelements.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingModifiedValues</b>: Specifies that changes to the DB instance are pending. This element is only included when changes are pending. Specific changes are identified by subelements.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i> Specifies the weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroup</i> Specifies information on the subnet group associated with the DB instance, including the name, description, and subnets in the subnet group.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DBSubnetGroup</b>: Specifies information on the subnet group associated with the DB instance, including the name, description, and subnets in the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZone</i> Specifies the name of the Availability Zone the DB instance is located in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBParameterGroups</i> Provides the list of DB parameter groups applied to this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcSecurityGroups</i> Provides a list of VPC security group elements that the DB instance belongs to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSecurityGroups</i>  Provides List of DB security group elements containing only <code>DBSecurityGroup.Name</code> and <code>DBSecurityGroup.Status</code> subelements.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupRetentionPeriod</i> Specifies the number of days for which automatic DB snapshots are retained.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredBackupWindow</i>  Specifies the daily time range during which automated backups are created if automated backups are enabled, as determined by the <code>BackupRetentionPeriod</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceCreateTime</i> Provides the date and time the DB instance was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllocatedStorage</i> Not supported by Neptune.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i> Specifies the connection endpoint.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Endpoint</b>: Specifies the connection endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBName</i> The database name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUsername</i> Not supported by Neptune.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceStatus</i> Specifies the current state of this database.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> Provides the name of the database engine to be used for this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceClass</i> Contains the name of the compute and memory capacity class of the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceIdentifier</i> Contains a user-supplied database identifier. This identifier is the unique key that identifies a DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HostedZoneId</i> Specifies the ID that Amazon Route 53 assigns when you create a hosted zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Specifies the port that the database engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Address</i> Specifies the DNS address of the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupArn</i> The Amazon Resource Name (ARN) for the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Subnets</i>  Contains a list of <a>Subnet</a> elements.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetGroupStatus</i> Provides the status of the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> Provides the VpcId of the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupDescription</i> Provides the description of the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupName</i> The name of the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupName</i> The new DB subnet group for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CACertificateIdentifier</i> Specifies the identifier of the CA certificate for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageType</i> Specifies the storage type to be associated with the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceIdentifier</i>  Contains the new <code>DBInstanceIdentifier</code> for the DB instance that will be applied or is currently being applied.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Iops</i> Specifies the new Provisioned IOPS value for the DB instance that will be applied or is currently being applied.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LicenseModel</i> Not supported by Neptune.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> Indicates the database engine version.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiAZ</i> Indicates that the Single-AZ DB instance is to change to a Multi-AZ deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupRetentionPeriod</i> Specifies the pending number of days for which automated backups are retained.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Specifies the pending port for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUserPassword</i> Not supported by Neptune.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AllocatedStorage</i>  Contains the new <code>AllocatedStorage</code> size for the DB instance that will be applied or is currently being applied.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceClass</i>  Contains the new <code>DBInstanceClass</code> for the DB instance that will be applied or is currently being applied.<br/>This <code>PendingCloudwatchLogsExports</code> structure specifies pending changes to which CloudWatch logs are enabled and which are disabled.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingCloudwatchLogsExports</b>: This <code>PendingCloudwatchLogsExports</code> structure specifies pending changes to which CloudWatch logs are enabled and which are disabled.        """
        pass

    def delete_db_parameter_group(self, DBParameterGroupName: str):
        r"""Deletes a specified DBParameterGroup. The DBParameterGroup to be deleted can't be associated with any DB instances.

        :param self:
        :param DBParameterGroupName:  The name of the DB parameter group. Constraints: <ul> <li> Must be the name of an existing DB parameter group </li> <li> You can't delete a default DB parameter group </li> <li> Cannot be associated with any DB instances </li> </ul><br/>
        :return:         """
        pass

    def delete_db_subnet_group(self, DBSubnetGroupName: str):
        r"""Deletes a DB subnet group. <note> The specified database subnet group must not be associated with any DB instances. </note>

        :param self:
        :param DBSubnetGroupName:  The name of the database subnet group to delete. <note> You can't delete the default subnet group. </note> Constraints: Constraints: Must match the name of an existing DBSubnetGroup. Must not be default. Example: <code>mySubnetgroup</code> <br/>
        :return:         """
        pass

    def delete_event_subscription(self, SubscriptionName: str) -> DeleteEventSubscriptionResult:
        r"""Deletes an event notification subscription.

        :param self:
        :param SubscriptionName:  The name of the event notification subscription you want to delete.<br/>
        :return: EventSubscription:  Contains the results of a successful invocation of the <a>DescribeEventSubscriptions</a> action.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EventSubscriptionArn</i> The Amazon Resource Name (ARN) for the event subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> A Boolean value indicating if the subscription is enabled. True indicates the subscription is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EventCategoriesList</i> A list of event categories for the event notification subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceIdsList</i> A list of source IDs for the event notification subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceType</i> The source type for the event notification subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubscriptionCreationTime</i> The time the event notification subscription was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the event notification subscription. Constraints: Can be one of the following: creating | modifying | deleting | active | no-permission | topic-not-exist The status "no-permission" indicates that Neptune no longer has permission to post to the SNS topic. The status "topic-not-exist" indicates that the topic was deleted after the subscription was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnsTopicArn</i> The topic ARN of the event notification subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustSubscriptionId</i> The event notification subscription Id.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomerAwsId</i> The Amazon customer account associated with the event notification subscription.<br/>        """
        pass

    def describe_db_cluster_endpoints(self, DBClusterIdentifier: str=None, DBClusterEndpointIdentifier: str=None, Filters: List[Filter]=None, MaxRecords: int=None, Marker: str=None) -> DBClusterEndpointMessage:
        r"""Returns information about endpoints for an Amazon Neptune DB cluster. <note> This operation can also return information for Amazon RDS clusters and Amazon DocDB clusters. </note>

        :param self:
        :param Marker:   An optional pagination token provided by a previous <code>DescribeDBClusterEndpoints</code> request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>. <br/>MaxRecords:  The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a pagination token called a marker is included in the response so you can retrieve the remaining results.  Default: 100 Constraints: Minimum 20, maximum 100.<br/>Filters:  A set of name-value pairs that define which endpoints to include in the output. The filters are specified as name-value pairs, in the format <code>Name=<i>endpoint_type</i>,Values=<i>endpoint_type1</i>,<i>endpoint_type2</i>,...</code>. <code>Name</code> can be one of: <code>db-cluster-endpoint-type</code>, <code>db-cluster-endpoint-custom-type</code>, <code>db-cluster-endpoint-id</code>, <code>db-cluster-endpoint-status</code>. <code>Values</code> for the <code> db-cluster-endpoint-type</code> filter can be one or more of: <code>reader</code>, <code>writer</code>, <code>custom</code>. <code>Values</code> for the <code>db-cluster-endpoint-custom-type</code> filter can be one or more of: <code>reader</code>, <code>any</code>. <code>Values</code> for the <code>db-cluster-endpoint-status</code> filter can be one or more of: <code>available</code>, <code>creating</code>, <code>deleting</code>, <code>inactive</code>, <code>modifying</code>. <br/>DBClusterEndpointIdentifier:  The identifier of the endpoint to describe. This parameter is stored as a lowercase string.<br/>DBClusterIdentifier:  The DB cluster identifier of the DB cluster associated with the endpoint. This parameter is stored as a lowercase string.<br/>
        :return: DBClusterEndpoints:  Contains the details of the endpoints associated with the cluster and matching any filter conditions.<br/>Marker:   An optional pagination token provided by a previous <code>DescribeDBClusterEndpoints</code> request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>. <br/>        """
        pass

    def describe_db_cluster_parameter_groups(self, DBClusterParameterGroupName: str=None, Filters: List[Filter]=None, MaxRecords: int=None, Marker: str=None) -> DBClusterParameterGroupsMessage:
        r""" Returns a list of <code>DBClusterParameterGroup</code> descriptions. If a <code>DBClusterParameterGroupName</code> parameter is specified, the list will contain only the description of the specified DB cluster parameter group.

        :param self:
        :param Marker:   An optional pagination token provided by a previous <code>DescribeDBClusterParameterGroups</code> request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>.<br/>MaxRecords:   The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a pagination token called a marker is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: Minimum 20, maximum 100.<br/>Filters:  This parameter is not currently supported.<br/>DBClusterParameterGroupName:  The name of a specific DB cluster parameter group to return details for. Constraints: <ul> <li> If supplied, must match the name of an existing DBClusterParameterGroup. </li> </ul><br/>
        :return: DBClusterParameterGroups:  A list of DB cluster parameter groups.<br/>Marker:   An optional pagination token provided by a previous <code>DescribeDBClusterParameterGroups</code> request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>.<br/>        """
        pass

    def describe_db_cluster_parameters(self, DBClusterParameterGroupName: str, Source: str=None, Filters: List[Filter]=None, MaxRecords: int=None, Marker: str=None) -> DBClusterParameterGroupDetails:
        r"""Returns the detailed parameter list for a particular DB cluster parameter group.

        :param self:
        :param Marker:   An optional pagination token provided by a previous <code>DescribeDBClusterParameters</code> request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>. <br/>MaxRecords:   The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a pagination token called a marker is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: Minimum 20, maximum 100.<br/>Filters:  This parameter is not currently supported.<br/>Source:   A value that indicates to return only parameters for a specific source. Parameter sources can be <code>engine</code>, <code>service</code>, or <code>customer</code>.<br/>DBClusterParameterGroupName:  The name of a specific DB cluster parameter group to return parameter details for. Constraints: <ul> <li> If supplied, must match the name of an existing DBClusterParameterGroup. </li> </ul><br/>
        :return: Marker:   An optional pagination token provided by a previous DescribeDBClusterParameters request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code> .<br/>Parameters:  Provides a list of parameters for the DB cluster parameter group.<br/>        """
        pass

    def describe_db_cluster_snapshot_attributes(self, DBClusterSnapshotIdentifier: str) -> DescribeDBClusterSnapshotAttributesResult:
        r"""Returns a list of DB cluster snapshot attribute names and values for a manual DB cluster snapshot. When sharing snapshots with other Amazon accounts, <code>DescribeDBClusterSnapshotAttributes</code> returns the <code>restore</code> attribute and a list of IDs for the Amazon accounts that are authorized to copy or restore the manual DB cluster snapshot. If <code>all</code> is included in the list of values for the <code>restore</code> attribute, then the manual DB cluster snapshot is public and can be copied or restored by all Amazon accounts. To add or remove access for an Amazon account to copy or restore a manual DB cluster snapshot, or to make the manual DB cluster snapshot public or private, use the <a>ModifyDBClusterSnapshotAttribute</a> API action.

        :param self:
        :param DBClusterSnapshotIdentifier:  The identifier for the DB cluster snapshot to describe the attributes for.<br/>
        :return: DBClusterSnapshotAttributesResult:  Contains the results of a successful call to the <a>DescribeDBClusterSnapshotAttributes</a> API action. Manual DB cluster snapshot attributes are used to authorize other Amazon accounts to copy or restore a manual DB cluster snapshot. For more information, see the <a>ModifyDBClusterSnapshotAttribute</a> API action.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterSnapshotAttributes</i> The list of attributes and values for the manual DB cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterSnapshotIdentifier</i> The identifier of the manual DB cluster snapshot that the attributes apply to.<br/>        """
        pass

    def describe_db_cluster_snapshots(self, DBClusterIdentifier: str=None, DBClusterSnapshotIdentifier: str=None, SnapshotType: str=None, Filters: List[Filter]=None, MaxRecords: int=None, Marker: str=None, IncludeShared: Boolean=None, IncludePublic: Boolean=None) -> DBClusterSnapshotMessage:
        r"""Returns information about DB cluster snapshots. This API action supports pagination.

        :param self:
        :param IncludePublic:  True to include manual DB cluster snapshots that are public and can be copied or restored by any Amazon account, and otherwise false. The default is <code>false</code>. The default is false. You can share a manual DB cluster snapshot as public by using the <a>ModifyDBClusterSnapshotAttribute</a> API action.<br/>IncludeShared:  True to include shared manual DB cluster snapshots from other Amazon accounts that this AWS account has been given permission to copy or restore, and otherwise false. The default is <code>false</code>. You can give an Amazon account permission to restore a manual DB cluster snapshot from another Amazon account by the <a>ModifyDBClusterSnapshotAttribute</a> API action.<br/>Marker:  An optional pagination token provided by a previous <code>DescribeDBClusterSnapshots</code> request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>. <br/>MaxRecords:  The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a pagination token called a marker is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: Minimum 20, maximum 100.<br/>Filters:  This parameter is not currently supported.<br/>SnapshotType:  The type of DB cluster snapshots to be returned. You can specify one of the following values: <ul> <li>  <code>automated</code> - Return all DB cluster snapshots that have been automatically taken by Amazon Neptune for my Amazon account. </li> <li>  <code>manual</code> - Return all DB cluster snapshots that have been taken by my AWS account. </li> <li>  <code>shared</code> - Return all manual DB cluster snapshots that have been shared to my Amazon account. </li> <li>  <code>public</code> - Return all DB cluster snapshots that have been marked as public. </li> </ul> If you don't specify a <code>SnapshotType</code> value, then both automated and manual DB cluster snapshots are returned. You can include shared DB cluster snapshots with these results by setting the <code>IncludeShared</code> parameter to <code>true</code>. You can include public DB cluster snapshots with these results by setting the <code>IncludePublic</code> parameter to <code>true</code>. The <code>IncludeShared</code> and <code>IncludePublic</code> parameters don't apply for <code>SnapshotType</code> values of <code>manual</code> or <code>automated</code>. The <code>IncludePublic</code> parameter doesn't apply when <code>SnapshotType</code> is set to <code>shared</code>. The <code>IncludeShared</code> parameter doesn't apply when <code>SnapshotType</code> is set to <code>public</code>.<br/>DBClusterSnapshotIdentifier:  A specific DB cluster snapshot identifier to describe. This parameter can't be used in conjunction with the <code>DBClusterIdentifier</code> parameter. This value is stored as a lowercase string. Constraints: <ul> <li> If supplied, must match the identifier of an existing DBClusterSnapshot. </li> <li> If this identifier is for an automated snapshot, the <code>SnapshotType</code> parameter must also be specified. </li> </ul><br/>DBClusterIdentifier:  The ID of the DB cluster to retrieve the list of DB cluster snapshots for. This parameter can't be used in conjunction with the <code>DBClusterSnapshotIdentifier</code> parameter. This parameter is not case-sensitive. Constraints: <ul> <li> If supplied, must match the identifier of an existing DBCluster. </li> </ul><br/>
        :return: DBClusterSnapshots:  Provides a list of DB cluster snapshots for the user.<br/>Marker:   An optional pagination token provided by a previous <a>DescribeDBClusterSnapshots</a> request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>. <br/>        """
        pass

    def describe_db_clusters(self, DBClusterIdentifier: str=None, Filters: List[Filter]=None, MaxRecords: int=None, Marker: str=None) -> DBClusterMessage:
        r"""Returns information about provisioned DB clusters, and supports pagination. <note> This operation can also return information for Amazon RDS clusters and Amazon DocDB clusters. </note>

        :param self:
        :param Marker:  An optional pagination token provided by a previous <a>DescribeDBClusters</a> request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>.<br/>MaxRecords:  The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a pagination token called a marker is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: Minimum 20, maximum 100.<br/>Filters:  A filter that specifies one or more DB clusters to describe. Supported filters: <ul> <li>  <code>db-cluster-id</code> - Accepts DB cluster identifiers and DB cluster Amazon Resource Names (ARNs). The results list will only include information about the DB clusters identified by these ARNs. </li> <li>  <code>engine</code> - Accepts an engine name (such as <code>neptune</code>), and restricts the results list to DB clusters created by that engine. </li> </ul> For example, to invoke this API from the Amazon CLI and filter so that only Neptune DB clusters are returned, you could use the following command:<br/>DBClusterIdentifier:  The user-supplied DB cluster identifier. If this parameter is specified, information from only the specific DB cluster is returned. This parameter isn't case-sensitive. Constraints: <ul> <li> If supplied, must match an existing DBClusterIdentifier. </li> </ul><br/>
        :return: DBClusters:  Contains a list of DB clusters for the user.<br/>Marker:  A pagination token that can be used in a subsequent DescribeDBClusters request.<br/>        """
        pass

    def describe_db_engine_versions(self, Engine: str=None, EngineVersion: str=None, DBParameterGroupFamily: str=None, Filters: List[Filter]=None, MaxRecords: int=None, Marker: str=None, DefaultOnly: Boolean=None, ListSupportedCharacterSets: BooleanOptional=None, ListSupportedTimezones: BooleanOptional=None) -> DBEngineVersionMessage:
        r"""Returns a list of the available DB engines.

        :param self:
        :param ListSupportedTimezones:  If this parameter is specified and the requested engine supports the <code>TimeZone</code> parameter for <code>CreateDBInstance</code>, the response includes a list of supported time zones for each engine version.<br/>ListSupportedCharacterSets:  If this parameter is specified and the requested engine supports the <code>CharacterSetName</code> parameter for <code>CreateDBInstance</code>, the response includes a list of supported character sets for each engine version.<br/>DefaultOnly:  Indicates that only the default version of the specified engine or engine and major version combination is returned.<br/>Marker:   An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>.<br/>MaxRecords:   The maximum number of records to include in the response. If more than the <code>MaxRecords</code> value is available, a pagination token called a marker is included in the response so that the following results can be retrieved. Default: 100 Constraints: Minimum 20, maximum 100.<br/>Filters:  Not currently supported.<br/>DBParameterGroupFamily:  The name of a specific DB parameter group family to return details for. Constraints: <ul> <li> If supplied, must match an existing DBParameterGroupFamily. </li> </ul><br/>EngineVersion:  The database engine version to return. Example: <code>5.1.49</code> <br/>Engine:  The database engine to return.<br/>
        :return: DBEngineVersions:   A list of <code>DBEngineVersion</code> elements.<br/>Marker:   An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>.<br/>        """
        pass

    def describe_db_instances(self, DBInstanceIdentifier: str=None, Filters: List[Filter]=None, MaxRecords: int=None, Marker: str=None) -> DBInstanceMessage:
        r"""Returns information about provisioned instances, and supports pagination. <note> This operation can also return information for Amazon RDS instances and Amazon DocDB instances. </note>

        :param self:
        :param Marker:   An optional pagination token provided by a previous <code>DescribeDBInstances</code> request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>.<br/>MaxRecords:   The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a pagination token called a marker is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: Minimum 20, maximum 100.<br/>Filters:  A filter that specifies one or more DB instances to describe. Supported filters: <ul> <li>  <code>db-cluster-id</code> - Accepts DB cluster identifiers and DB cluster Amazon Resource Names (ARNs). The results list will only include information about the DB instances associated with the DB clusters identified by these ARNs. </li> <li>  <code>engine</code> - Accepts an engine name (such as <code>neptune</code>), and restricts the results list to DB instances created by that engine. </li> </ul> For example, to invoke this API from the Amazon CLI and filter so that only Neptune DB instances are returned, you could use the following command:<br/>DBInstanceIdentifier:  The user-supplied instance identifier. If this parameter is specified, information from only the specific DB instance is returned. This parameter isn't case-sensitive. Constraints: <ul> <li> If supplied, must match the identifier of an existing DBInstance. </li> </ul><br/>
        :return: DBInstances:   A list of <a>DBInstance</a> instances.<br/>Marker:   An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code> .<br/>        """
        pass

    def describe_db_parameter_groups(self, DBParameterGroupName: str=None, Filters: List[Filter]=None, MaxRecords: int=None, Marker: str=None) -> DBParameterGroupsMessage:
        r"""Returns a list of <code>DBParameterGroup</code> descriptions. If a <code>DBParameterGroupName</code> is specified, the list will contain only the description of the specified DB parameter group.

        :param self:
        :param Marker:  An optional pagination token provided by a previous <code>DescribeDBParameterGroups</code> request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>.<br/>MaxRecords:  The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a pagination token called a marker is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: Minimum 20, maximum 100.<br/>Filters:  This parameter is not currently supported.<br/>DBParameterGroupName:  The name of a specific DB parameter group to return details for. Constraints: <ul> <li> If supplied, must match the name of an existing DBClusterParameterGroup. </li> </ul><br/>
        :return: DBParameterGroups:  A list of <a>DBParameterGroup</a> instances.<br/>Marker:  An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>.<br/>        """
        pass

    def describe_db_parameters(self, DBParameterGroupName: str, Source: str=None, Filters: List[Filter]=None, MaxRecords: int=None, Marker: str=None) -> DBParameterGroupDetails:
        r"""Returns the detailed parameter list for a particular DB parameter group.

        :param self:
        :param Marker:  An optional pagination token provided by a previous <code>DescribeDBParameters</code> request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>.<br/>MaxRecords:  The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a pagination token called a marker is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: Minimum 20, maximum 100.<br/>Filters:  This parameter is not currently supported.<br/>Source:  The parameter types to return. Default: All parameter types returned Valid Values: <code>user | system | engine-default</code> <br/>DBParameterGroupName:  The name of a specific DB parameter group to return details for. Constraints: <ul> <li> If supplied, must match the name of an existing DBParameterGroup. </li> </ul><br/>
        :return: Marker:  An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>.<br/>Parameters:  A list of <a>Parameter</a> values.<br/>        """
        pass

    def describe_db_subnet_groups(self, DBSubnetGroupName: str=None, Filters: List[Filter]=None, MaxRecords: int=None, Marker: str=None) -> DBSubnetGroupMessage:
        r"""Returns a list of DBSubnetGroup descriptions. If a DBSubnetGroupName is specified, the list will contain only the descriptions of the specified DBSubnetGroup. For an overview of CIDR ranges, go to the <a href="http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing">Wikipedia Tutorial</a>.

        :param self:
        :param Marker:   An optional pagination token provided by a previous DescribeDBSubnetGroups request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>.<br/>MaxRecords:   The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a pagination token called a marker is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: Minimum 20, maximum 100.<br/>Filters:  This parameter is not currently supported.<br/>DBSubnetGroupName:  The name of the DB subnet group to return details for.<br/>
        :return: DBSubnetGroups:   A list of <a>DBSubnetGroup</a> instances.<br/>Marker:   An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>.<br/>        """
        pass

    def describe_engine_default_cluster_parameters(self, DBParameterGroupFamily: str, Filters: List[Filter]=None, MaxRecords: int=None, Marker: str=None) -> DescribeEngineDefaultClusterParametersResult:
        r"""Returns the default engine and system parameter information for the cluster database engine.

        :param self:
        :param Marker:   An optional pagination token provided by a previous <code>DescribeEngineDefaultClusterParameters</code> request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>.<br/>MaxRecords:   The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a pagination token called a marker is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: Minimum 20, maximum 100.<br/>Filters:  This parameter is not currently supported.<br/>DBParameterGroupFamily:  The name of the DB cluster parameter group family to return engine parameter information for.<br/>
        :return: EngineDefaults:   Contains the result of a successful invocation of the <a>DescribeEngineDefaultParameters</a> action.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Parameters</i> Contains a list of engine default parameters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Marker</i>  An optional pagination token provided by a previous EngineDefaults request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code> .<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBParameterGroupFamily</i> Specifies the name of the DB parameter group family that the engine default parameters apply to.<br/>        """
        pass

    def describe_engine_default_parameters(self, DBParameterGroupFamily: str, Filters: List[Filter]=None, MaxRecords: int=None, Marker: str=None) -> DescribeEngineDefaultParametersResult:
        r"""Returns the default engine and system parameter information for the specified database engine.

        :param self:
        :param Marker:   An optional pagination token provided by a previous <code>DescribeEngineDefaultParameters</code> request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>.<br/>MaxRecords:   The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a pagination token called a marker is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: Minimum 20, maximum 100.<br/>Filters:  Not currently supported.<br/>DBParameterGroupFamily:  The name of the DB parameter group family.<br/>
        :return: EngineDefaults:   Contains the result of a successful invocation of the <a>DescribeEngineDefaultParameters</a> action.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Parameters</i> Contains a list of engine default parameters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Marker</i>  An optional pagination token provided by a previous EngineDefaults request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code> .<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBParameterGroupFamily</i> Specifies the name of the DB parameter group family that the engine default parameters apply to.<br/>        """
        pass

    def describe_event_categories(self, SourceType: str=None, Filters: List[Filter]=None) -> EventCategoriesMessage:
        r"""Displays a list of categories for all event source types, or, if specified, for a specified source type.

        :param self:
        :param Filters:  This parameter is not currently supported.<br/>SourceType:  The type of source that is generating the events. Valid values: db-instance | db-parameter-group | db-security-group | db-snapshot<br/>
        :return: EventCategoriesMapList:  A list of EventCategoriesMap data types.<br/>        """
        pass

    def describe_event_subscriptions(self, SubscriptionName: str=None, Filters: List[Filter]=None, MaxRecords: int=None, Marker: str=None) -> EventSubscriptionsMessage:
        r"""Lists all the subscription descriptions for a customer account. The description for a subscription includes SubscriptionName, SNSTopicARN, CustomerID, SourceType, SourceID, CreationTime, and Status. If you specify a SubscriptionName, lists the description for that subscription.

        :param self:
        :param Marker:   An optional pagination token provided by a previous DescribeOrderableDBInstanceOptions request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code> .<br/>MaxRecords:   The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a pagination token called a marker is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: Minimum 20, maximum 100.<br/>Filters:  This parameter is not currently supported.<br/>SubscriptionName:  The name of the event notification subscription you want to describe.<br/>
        :return: EventSubscriptionsList:  A list of EventSubscriptions data types.<br/>Marker:   An optional pagination token provided by a previous DescribeOrderableDBInstanceOptions request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>.<br/>        """
        pass

    def describe_events(self, SourceIdentifier: str=None, SourceType: str=None, StartTime: TStamp=None, EndTime: TStamp=None, Duration: int=None, EventCategories: List[String]=None, Filters: List[Filter]=None, MaxRecords: int=None, Marker: str=None) -> EventsMessage:
        r"""Returns events related to DB instances, DB security groups, DB snapshots, and DB parameter groups for the past 14 days. Events specific to a particular DB instance, DB security group, database snapshot, or DB parameter group can be obtained by providing the name as a parameter. By default, the past hour of events are returned.

        :param self:
        :param Marker:   An optional pagination token provided by a previous DescribeEvents request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>.<br/>MaxRecords:   The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a pagination token called a marker is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: Minimum 20, maximum 100.<br/>Filters:  This parameter is not currently supported.<br/>EventCategories:  A list of event categories that trigger notifications for a event notification subscription.<br/>Duration:  The number of minutes to retrieve events for. Default: 60<br/>EndTime:   The end of the time interval for which to retrieve events, specified in ISO 8601 format. For more information about ISO 8601, go to the <a href="http://en.wikipedia.org/wiki/ISO_8601">ISO8601 Wikipedia page.</a>  Example: 2009-07-08T18:00Z<br/>StartTime:   The beginning of the time interval to retrieve events for, specified in ISO 8601 format. For more information about ISO 8601, go to the <a href="http://en.wikipedia.org/wiki/ISO_8601">ISO8601 Wikipedia page.</a>  Example: 2009-07-08T18:00Z<br/>SourceType:  The event source to retrieve events for. If no value is specified, all events are returned.<br/>SourceIdentifier:  The identifier of the event source for which events are returned. If not specified, then all sources are included in the response. Constraints: <ul> <li> If SourceIdentifier is supplied, SourceType must also be provided. </li> <li> If the source type is <code>DBInstance</code>, then a <code>DBInstanceIdentifier</code> must be supplied. </li> <li> If the source type is <code>DBSecurityGroup</code>, a <code>DBSecurityGroupName</code> must be supplied. </li> <li> If the source type is <code>DBParameterGroup</code>, a <code>DBParameterGroupName</code> must be supplied. </li> <li> If the source type is <code>DBSnapshot</code>, a <code>DBSnapshotIdentifier</code> must be supplied. </li> <li> Cannot end with a hyphen or contain two consecutive hyphens. </li> </ul><br/>
        :return: Events:   A list of <a>Event</a> instances.<br/>Marker:   An optional pagination token provided by a previous Events request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code> .<br/>        """
        pass

    def describe_orderable_db_instance_options(self, Engine: str, EngineVersion: str=None, DBInstanceClass: str=None, LicenseModel: str=None, Vpc: BooleanOptional=None, Filters: List[Filter]=None, MaxRecords: int=None, Marker: str=None) -> OrderableDBInstanceOptionsMessage:
        r"""Returns a list of orderable DB instance options for the specified engine.

        :param self:
        :param Marker:   An optional pagination token provided by a previous DescribeOrderableDBInstanceOptions request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code> .<br/>MaxRecords:   The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a pagination token called a marker is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: Minimum 20, maximum 100.<br/>Filters:  This parameter is not currently supported.<br/>Vpc:  The VPC filter value. Specify this parameter to show only the available VPC or non-VPC offerings.<br/>LicenseModel:  The license model filter value. Specify this parameter to show only the available offerings matching the specified license model.<br/>DBInstanceClass:  The DB instance class filter value. Specify this parameter to show only the available offerings matching the specified DB instance class.<br/>EngineVersion:  The engine version filter value. Specify this parameter to show only the available offerings matching the specified engine version.<br/>Engine:  The name of the engine to retrieve DB instance options for.<br/>
        :return: Marker:   An optional pagination token provided by a previous OrderableDBInstanceOptions request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code> .<br/>OrderableDBInstanceOptions:  An <a>OrderableDBInstanceOption</a> structure containing information about orderable options for the DB instance.<br/>        """
        pass

    def describe_pending_maintenance_actions(self, ResourceIdentifier: str=None, Filters: List[Filter]=None, Marker: str=None, MaxRecords: int=None) -> PendingMaintenanceActionsMessage:
        r"""Returns a list of resources (for example, DB instances) that have at least one pending maintenance action.

        :param self:
        :param MaxRecords:   The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a pagination token called a marker is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: Minimum 20, maximum 100.<br/>Marker:   An optional pagination token provided by a previous <code>DescribePendingMaintenanceActions</code> request. If this parameter is specified, the response includes only records beyond the marker, up to a number of records specified by <code>MaxRecords</code>.<br/>Filters:  A filter that specifies one or more resources to return pending maintenance actions for. Supported filters: <ul> <li>  <code>db-cluster-id</code> - Accepts DB cluster identifiers and DB cluster Amazon Resource Names (ARNs). The results list will only include pending maintenance actions for the DB clusters identified by these ARNs. </li> <li>  <code>db-instance-id</code> - Accepts DB instance identifiers and DB instance ARNs. The results list will only include pending maintenance actions for the DB instances identified by these ARNs. </li> </ul><br/>ResourceIdentifier:  The ARN of a resource to return pending maintenance actions for.<br/>
        :return: Marker:   An optional pagination token provided by a previous <code>DescribePendingMaintenanceActions</code> request. If this parameter is specified, the response includes only records beyond the marker, up to a number of records specified by <code>MaxRecords</code>.<br/>PendingMaintenanceActions:  A list of the pending maintenance actions for the resource.<br/>        """
        pass

    def describe_valid_db_instance_modifications(self, DBInstanceIdentifier: str) -> DescribeValidDBInstanceModificationsResult:
        r"""You can call <a>DescribeValidDBInstanceModifications</a> to learn what modifications you can make to your DB instance. You can use this information when you call <a>ModifyDBInstance</a>.

        :param self:
        :param DBInstanceIdentifier:  The customer identifier or the ARN of your DB instance.<br/>
        :return: ValidDBInstanceModificationsMessage:  Information about valid modifications that you can make to your DB instance. Contains the result of a successful call to the <a>DescribeValidDBInstanceModifications</a> action. You can use this information when you call <a>ModifyDBInstance</a>. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Storage</i> Valid storage options for your DB instance.<br/>        """
        pass

    def failover_db_cluster(self, DBClusterIdentifier: str=None, TargetDBInstanceIdentifier: str=None) -> FailoverDBClusterResult:
        r"""Forces a failover for a DB cluster. A failover for a DB cluster promotes one of the Read Replicas (read-only instances) in the DB cluster to be the primary instance (the cluster writer). Amazon Neptune will automatically fail over to a Read Replica, if one exists, when the primary instance fails. You can force a failover when you want to simulate a failure of a primary instance for testing. Because each instance in a DB cluster has its own endpoint address, you will need to clean up and re-establish any existing connections that use those endpoint addresses when the failover is complete.

        :param self:
        :param TargetDBInstanceIdentifier:  The name of the instance to promote to the primary instance. You must specify the instance identifier for an Read Replica in the DB cluster. For example, <code>mydbcluster-replica1</code>.<br/>DBClusterIdentifier:  A DB cluster identifier to force a failover for. This parameter is not case-sensitive. Constraints: <ul> <li> Must match the identifier of an existing DBCluster. </li> </ul><br/>
        :return: DBCluster:  Contains the details of an Amazon Neptune DB cluster. This data type is used as a response element in the <a>DescribeDBClusters</a> action.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomaticRestartTime</i> Time at which the DB cluster will be automatically restarted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CrossAccountClone</i> If set to <code>true</code>, the DB cluster can be cloned across accounts.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeletionProtection</i> Indicates whether or not the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnabledCloudwatchLogsExports</i> A list of log types that this DB cluster is configured to export to CloudWatch Logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CopyTagsToSnapshot</i>  <i>If set to <code>true</code>, tags are copied to any snapshot of the DB cluster that is created.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterCreateTime</i> Specifies the time when the DB cluster was created, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloneGroupId</i> Identifies the clone group to which the DB cluster is associated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IAMDatabaseAuthenticationEnabled</i> True if mapping of Amazon Identity and Access Management (IAM) accounts to database accounts is enabled, and otherwise false.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociatedRoles</i> Provides a list of the Amazon Identity and Access Management (IAM) roles that are associated with the DB cluster. IAM roles that are associated with a DB cluster grant permission for the DB cluster to access other Amazon services on your behalf.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterArn</i> The Amazon Resource Name (ARN) for the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DbClusterResourceId</i> The Amazon Region-unique, immutable identifier for the DB cluster. This identifier is found in Amazon CloudTrail log entries whenever the Amazon KMS key for the DB cluster is accessed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> If <code>StorageEncrypted</code> is true, the Amazon KMS key identifier for the encrypted DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageEncrypted</i> Specifies whether the DB cluster is encrypted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HostedZoneId</i> Specifies the ID that Amazon Route 53 assigns when you create a hosted zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcSecurityGroups</i> Provides a list of VPC security groups that the DB cluster belongs to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterMembers</i> Provides the list of instances that make up the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadReplicaIdentifiers</i> Contains one or more identifiers of the Read Replicas associated with this DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationSourceIdentifier</i> Not supported by Neptune.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i> Specifies the weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredBackupWindow</i> Specifies the daily time range during which automated backups are created if automated backups are enabled, as determined by the <code>BackupRetentionPeriod</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterOptionGroupMemberships</i> Not supported by Neptune.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUsername</i> Not supported by Neptune.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Specifies the port that the database engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestRestorableTime</i> Specifies the latest time to which a database can be restored with point-in-time restore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> Indicates the database engine version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> Provides the name of the database engine to be used for this DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiAZ</i> Specifies whether the DB cluster has instances in multiple Availability Zones.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReaderEndpoint</i> The reader endpoint for the DB cluster. The reader endpoint for a DB cluster load-balances connections across the Read Replicas that are available in a DB cluster. As clients request new connections to the reader endpoint, Neptune distributes the connection requests among the Read Replicas in the DB cluster. This functionality can help balance your read workload across multiple Read Replicas in your DB cluster. If a failover occurs, and the Read Replica that you are connected to is promoted to be the primary instance, your connection is dropped. To continue sending your read workload to other Read Replicas in the cluster, you can then reconnect to the reader endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i> Specifies the connection endpoint for the primary instance of the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EarliestRestorableTime</i> Specifies the earliest time to which a database can be restored with point-in-time restore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PercentProgress</i> Specifies the progress of the operation as a percentage.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Specifies the current state of this DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroup</i> Specifies information on the subnet group associated with the DB cluster, including the name, description, and subnets in the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterParameterGroup</i> Specifies the name of the DB cluster parameter group for the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterIdentifier</i> Contains a user-supplied DB cluster identifier. This identifier is the unique key that identifies a DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> Contains the name of the initial database of this DB cluster that was provided at create time, if one was specified when the DB cluster was created. This same name is returned for the life of the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CharacterSetName</i> Not supported by Neptune.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupRetentionPeriod</i> Specifies the number of days for which automatic DB snapshots are retained.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZones</i> Provides the list of EC2 Availability Zones that instances in the DB cluster can be created in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllocatedStorage</i>  <code>AllocatedStorage</code> always returns 1, because Neptune DB cluster storage size is not fixed, but instead automatically adjusts as needed.<br/>        """
        pass

    def list_tags_for_resource(self, ResourceName: str, Filters: List[Filter]=None) -> TagListMessage:
        r"""Lists all tags on an Amazon Neptune resource.

        :param self:
        :param Filters:  This parameter is not currently supported.<br/>ResourceName:  The Amazon Neptune resource with tags to be listed. This value is an Amazon Resource Name (ARN). For information about creating an ARN, see <a href="https://docs.aws.amazon.com/neptune/latest/UserGuide/tagging.ARN.html#tagging.ARN.Constructing"> Constructing an Amazon Resource Name (ARN)</a>.<br/>
        :return: TagList:  List of tags returned by the ListTagsForResource operation.<br/>        """
        pass

    def modify_db_cluster(self, DBClusterIdentifier: str, NewDBClusterIdentifier: str=None, ApplyImmediately: Boolean=None, BackupRetentionPeriod: int=None, DBClusterParameterGroupName: str=None, VpcSecurityGroupIds: List[String]=None, Port: int=None, MasterUserPassword: str=None, OptionGroupName: str=None, PreferredBackupWindow: str=None, PreferredMaintenanceWindow: str=None, EnableIAMDatabaseAuthentication: BooleanOptional=None, CloudwatchLogsExportConfiguration: CloudwatchLogsExportConfiguration=None, EngineVersion: str=None, DeletionProtection: BooleanOptional=None, CopyTagsToSnapshot: BooleanOptional=None) -> ModifyDBClusterResult:
        r"""Modify a setting for a DB cluster. You can change one or more database configuration parameters by specifying these parameters and the new values in the request.

        :param self:
        :param CopyTagsToSnapshot:   <i>If set to <code>true</code>, tags are copied to any snapshot of the DB cluster that is created.</i> <br/>DeletionProtection:  A value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled.<br/>EngineVersion:  The version number of the database engine to which you want to upgrade. Changing this parameter results in an outage. The change is applied during the next maintenance window unless the <code>ApplyImmediately</code> parameter is set to true. For a list of valid engine versions, see <a href="https://docs.aws.amazon.com/neptune/latest/userguide/engine-releases.html">Engine Releases for Amazon Neptune</a>, or call <a href="https://docs.aws.amazon.com/neptune/latest/userguide/api-other-apis.html#DescribeDBEngineVersions">DescribeDBEngineVersions</a>.<br/>CloudwatchLogsExportConfiguration:  The configuration setting for the log types to be enabled for export to CloudWatch Logs for a specific DB cluster.:<br/>EnableIAMDatabaseAuthentication:  True to enable mapping of Amazon Identity and Access Management (IAM) accounts to database accounts, and otherwise false. Default: <code>false</code> <br/>PreferredMaintenanceWindow:  The weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC). Format: <code>ddd:hh24:mi-ddd:hh24:mi</code>  The default is a 30-minute window selected at random from an 8-hour block of time for each Amazon Region, occurring on a random day of the week. Valid Days: Mon, Tue, Wed, Thu, Fri, Sat, Sun. Constraints: Minimum 30-minute window.<br/>PreferredBackupWindow:  The daily time range during which automated backups are created if automated backups are enabled, using the <code>BackupRetentionPeriod</code> parameter. The default is a 30-minute window selected at random from an 8-hour block of time for each Amazon Region. Constraints: <ul> <li> Must be in the format <code>hh24:mi-hh24:mi</code>. </li> <li> Must be in Universal Coordinated Time (UTC). </li> <li> Must not conflict with the preferred maintenance window. </li> <li> Must be at least 30 minutes. </li> </ul><br/>OptionGroupName:   <i>Not supported by Neptune.</i> <br/>MasterUserPassword:  Not supported by Neptune.<br/>Port:  The port number on which the DB cluster accepts connections. Constraints: Value must be <code>1150-65535</code>  Default: The same port as the original DB cluster.<br/>VpcSecurityGroupIds:  A list of VPC security groups that the DB cluster will belong to.<br/>DBClusterParameterGroupName:  The name of the DB cluster parameter group to use for the DB cluster.<br/>BackupRetentionPeriod:  The number of days for which automated backups are retained. You must specify a minimum value of 1. Default: 1 Constraints: <ul> <li> Must be a value from 1 to 35 </li> </ul><br/>ApplyImmediately:  A value that specifies whether the modifications in this request and any pending modifications are asynchronously applied as soon as possible, regardless of the <code>PreferredMaintenanceWindow</code> setting for the DB cluster. If this parameter is set to <code>false</code>, changes to the DB cluster are applied during the next maintenance window. The <code>ApplyImmediately</code> parameter only affects <code>NewDBClusterIdentifier</code> values. If you set the <code>ApplyImmediately</code> parameter value to false, then changes to <code>NewDBClusterIdentifier</code> values are applied during the next maintenance window. All other changes are applied immediately, regardless of the value of the <code>ApplyImmediately</code> parameter. Default: <code>false</code> <br/>NewDBClusterIdentifier:  The new DB cluster identifier for the DB cluster when renaming a DB cluster. This value is stored as a lowercase string. Constraints: <ul> <li> Must contain from 1 to 63 letters, numbers, or hyphens </li> <li> The first character must be a letter </li> <li> Cannot end with a hyphen or contain two consecutive hyphens </li> </ul> Example: <code>my-cluster2</code> <br/>DBClusterIdentifier:  The DB cluster identifier for the cluster being modified. This parameter is not case-sensitive. Constraints: <ul> <li> Must match the identifier of an existing DBCluster. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DisableLogTypes</i> The list of log types to disable.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableLogTypes</i> The list of log types to enable.<br/>
        :return: DBCluster:  Contains the details of an Amazon Neptune DB cluster. This data type is used as a response element in the <a>DescribeDBClusters</a> action.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomaticRestartTime</i> Time at which the DB cluster will be automatically restarted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CrossAccountClone</i> If set to <code>true</code>, the DB cluster can be cloned across accounts.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeletionProtection</i> Indicates whether or not the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnabledCloudwatchLogsExports</i> A list of log types that this DB cluster is configured to export to CloudWatch Logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CopyTagsToSnapshot</i>  <i>If set to <code>true</code>, tags are copied to any snapshot of the DB cluster that is created.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterCreateTime</i> Specifies the time when the DB cluster was created, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloneGroupId</i> Identifies the clone group to which the DB cluster is associated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IAMDatabaseAuthenticationEnabled</i> True if mapping of Amazon Identity and Access Management (IAM) accounts to database accounts is enabled, and otherwise false.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociatedRoles</i> Provides a list of the Amazon Identity and Access Management (IAM) roles that are associated with the DB cluster. IAM roles that are associated with a DB cluster grant permission for the DB cluster to access other Amazon services on your behalf.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterArn</i> The Amazon Resource Name (ARN) for the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DbClusterResourceId</i> The Amazon Region-unique, immutable identifier for the DB cluster. This identifier is found in Amazon CloudTrail log entries whenever the Amazon KMS key for the DB cluster is accessed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> If <code>StorageEncrypted</code> is true, the Amazon KMS key identifier for the encrypted DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageEncrypted</i> Specifies whether the DB cluster is encrypted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HostedZoneId</i> Specifies the ID that Amazon Route 53 assigns when you create a hosted zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcSecurityGroups</i> Provides a list of VPC security groups that the DB cluster belongs to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterMembers</i> Provides the list of instances that make up the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadReplicaIdentifiers</i> Contains one or more identifiers of the Read Replicas associated with this DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationSourceIdentifier</i> Not supported by Neptune.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i> Specifies the weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredBackupWindow</i> Specifies the daily time range during which automated backups are created if automated backups are enabled, as determined by the <code>BackupRetentionPeriod</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterOptionGroupMemberships</i> Not supported by Neptune.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUsername</i> Not supported by Neptune.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Specifies the port that the database engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestRestorableTime</i> Specifies the latest time to which a database can be restored with point-in-time restore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> Indicates the database engine version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> Provides the name of the database engine to be used for this DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiAZ</i> Specifies whether the DB cluster has instances in multiple Availability Zones.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReaderEndpoint</i> The reader endpoint for the DB cluster. The reader endpoint for a DB cluster load-balances connections across the Read Replicas that are available in a DB cluster. As clients request new connections to the reader endpoint, Neptune distributes the connection requests among the Read Replicas in the DB cluster. This functionality can help balance your read workload across multiple Read Replicas in your DB cluster. If a failover occurs, and the Read Replica that you are connected to is promoted to be the primary instance, your connection is dropped. To continue sending your read workload to other Read Replicas in the cluster, you can then reconnect to the reader endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i> Specifies the connection endpoint for the primary instance of the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EarliestRestorableTime</i> Specifies the earliest time to which a database can be restored with point-in-time restore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PercentProgress</i> Specifies the progress of the operation as a percentage.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Specifies the current state of this DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroup</i> Specifies information on the subnet group associated with the DB cluster, including the name, description, and subnets in the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterParameterGroup</i> Specifies the name of the DB cluster parameter group for the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterIdentifier</i> Contains a user-supplied DB cluster identifier. This identifier is the unique key that identifies a DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> Contains the name of the initial database of this DB cluster that was provided at create time, if one was specified when the DB cluster was created. This same name is returned for the life of the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CharacterSetName</i> Not supported by Neptune.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupRetentionPeriod</i> Specifies the number of days for which automatic DB snapshots are retained.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZones</i> Provides the list of EC2 Availability Zones that instances in the DB cluster can be created in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllocatedStorage</i>  <code>AllocatedStorage</code> always returns 1, because Neptune DB cluster storage size is not fixed, but instead automatically adjusts as needed.<br/>        """
        pass

    def modify_db_cluster_endpoint(self, DBClusterEndpointIdentifier: str, EndpointType: str=None, StaticMembers: List[String]=None, ExcludedMembers: List[String]=None) -> ModifyDBClusterEndpointOutput:
        r"""Modifies the properties of an endpoint in an Amazon Neptune DB cluster.

        :param self:
        :param ExcludedMembers:  List of DB instance identifiers that aren't part of the custom endpoint group. All other eligible instances are reachable through the custom endpoint. Only relevant if the list of static members is empty.<br/>StaticMembers:  List of DB instance identifiers that are part of the custom endpoint group.<br/>EndpointType:  The type of the endpoint. One of: <code>READER</code>, <code>WRITER</code>, <code>ANY</code>.<br/>DBClusterEndpointIdentifier:  The identifier of the endpoint to modify. This parameter is stored as a lowercase string.<br/>
        :return: DBClusterEndpointArn:  The Amazon Resource Name (ARN) for the endpoint.<br/>ExcludedMembers:  List of DB instance identifiers that aren't part of the custom endpoint group. All other eligible instances are reachable through the custom endpoint. Only relevant if the list of static members is empty.<br/>StaticMembers:  List of DB instance identifiers that are part of the custom endpoint group.<br/>CustomEndpointType:  The type associated with a custom endpoint. One of: <code>READER</code>, <code>WRITER</code>, <code>ANY</code>.<br/>EndpointType:  The type of the endpoint. One of: <code>READER</code>, <code>WRITER</code>, <code>CUSTOM</code>.<br/>Status:  The current status of the endpoint. One of: <code>creating</code>, <code>available</code>, <code>deleting</code>, <code>inactive</code>, <code>modifying</code>. The <code>inactive</code> state applies to an endpoint that cannot be used for a certain kind of cluster, such as a <code>writer</code> endpoint for a read-only secondary cluster in a global database.<br/>Endpoint:  The DNS address of the endpoint.<br/>DBClusterEndpointResourceIdentifier:  A unique system-generated identifier for an endpoint. It remains the same for the whole life of the endpoint.<br/>DBClusterIdentifier:  The DB cluster identifier of the DB cluster associated with the endpoint. This parameter is stored as a lowercase string.<br/>DBClusterEndpointIdentifier:  The identifier associated with the endpoint. This parameter is stored as a lowercase string.<br/>        """
        pass

    def modify_db_cluster_parameter_group(self, Parameters: List[Parameter], DBClusterParameterGroupName: str) -> DBClusterParameterGroupNameMessage:
        r""" Modifies the parameters of a DB cluster parameter group. To modify more than one parameter, submit a list of the following: <code>ParameterName</code>, <code>ParameterValue</code>, and <code>ApplyMethod</code>. A maximum of 20 parameters can be modified in a single request. <note> Changes to dynamic parameters are applied immediately. Changes to static parameters require a reboot without failover to the DB cluster associated with the parameter group before the change can take effect. </note> <important> After you create a DB cluster parameter group, you should wait at least 5 minutes before creating your first DB cluster that uses that DB cluster parameter group as the default parameter group. This allows Amazon Neptune to fully complete the create action before the parameter group is used as the default for a new DB cluster. This is especially important for parameters that are critical when creating the default database for a DB cluster, such as the character set for the default database defined by the <code>character_set_database</code> parameter. You can use the <i>Parameter Groups</i> option of the Amazon Neptune console or the <a>DescribeDBClusterParameters</a> command to verify that your DB cluster parameter group has been created or modified. </important>

        :param self:
        :param Parameters:  A list of parameters in the DB cluster parameter group to modify.<br/>DBClusterParameterGroupName:  The name of the DB cluster parameter group to modify.<br/>
        :return: DBClusterParameterGroupName:  The name of the DB cluster parameter group. Constraints: <ul> <li> Must be 1 to 255 letters or numbers. </li> <li> First character must be a letter </li> <li> Cannot end with a hyphen or contain two consecutive hyphens </li> </ul> <note> This value is stored as a lowercase string. </note><br/>        """
        pass

    def modify_db_cluster_snapshot_attribute(self, AttributeName: str, DBClusterSnapshotIdentifier: str, ValuesToAdd: List[String]=None, ValuesToRemove: List[String]=None) -> ModifyDBClusterSnapshotAttributeResult:
        r"""Adds an attribute and values to, or removes an attribute and values from, a manual DB cluster snapshot. To share a manual DB cluster snapshot with other Amazon accounts, specify <code>restore</code> as the <code>AttributeName</code> and use the <code>ValuesToAdd</code> parameter to add a list of IDs of the Amazon accounts that are authorized to restore the manual DB cluster snapshot. Use the value <code>all</code> to make the manual DB cluster snapshot public, which means that it can be copied or restored by all Amazon accounts. Do not add the <code>all</code> value for any manual DB cluster snapshots that contain private information that you don't want available to all Amazon accounts. If a manual DB cluster snapshot is encrypted, it can be shared, but only by specifying a list of authorized Amazon account IDs for the <code>ValuesToAdd</code> parameter. You can't use <code>all</code> as a value for that parameter in this case. To view which Amazon accounts have access to copy or restore a manual DB cluster snapshot, or whether a manual DB cluster snapshot public or private, use the <a>DescribeDBClusterSnapshotAttributes</a> API action.

        :param self:
        :param ValuesToRemove:  A list of DB cluster snapshot attributes to remove from the attribute specified by <code>AttributeName</code>. To remove authorization for other Amazon accounts to copy or restore a manual DB cluster snapshot, set this list to include one or more Amazon account identifiers, or <code>all</code> to remove authorization for any Amazon account to copy or restore the DB cluster snapshot. If you specify <code>all</code>, an Amazon account whose account ID is explicitly added to the <code>restore</code> attribute can still copy or restore a manual DB cluster snapshot.<br/>ValuesToAdd:  A list of DB cluster snapshot attributes to add to the attribute specified by <code>AttributeName</code>. To authorize other Amazon accounts to copy or restore a manual DB cluster snapshot, set this list to include one or more Amazon account IDs, or <code>all</code> to make the manual DB cluster snapshot restorable by any Amazon account. Do not add the <code>all</code> value for any manual DB cluster snapshots that contain private information that you don't want available to all AWS accounts.<br/>AttributeName:  The name of the DB cluster snapshot attribute to modify. To manage authorization for other Amazon accounts to copy or restore a manual DB cluster snapshot, set this value to <code>restore</code>.<br/>DBClusterSnapshotIdentifier:  The identifier for the DB cluster snapshot to modify the attributes for.<br/>
        :return: DBClusterSnapshotAttributesResult:  Contains the results of a successful call to the <a>DescribeDBClusterSnapshotAttributes</a> API action. Manual DB cluster snapshot attributes are used to authorize other Amazon accounts to copy or restore a manual DB cluster snapshot. For more information, see the <a>ModifyDBClusterSnapshotAttribute</a> API action.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterSnapshotAttributes</i> The list of attributes and values for the manual DB cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterSnapshotIdentifier</i> The identifier of the manual DB cluster snapshot that the attributes apply to.<br/>        """
        pass

    def modify_db_instance(self, DBInstanceIdentifier: str, AllocatedStorage: int=None, DBInstanceClass: str=None, DBSubnetGroupName: str=None, DBSecurityGroups: List[String]=None, VpcSecurityGroupIds: List[String]=None, ApplyImmediately: Boolean=None, MasterUserPassword: str=None, DBParameterGroupName: str=None, BackupRetentionPeriod: int=None, PreferredBackupWindow: str=None, PreferredMaintenanceWindow: str=None, MultiAZ: BooleanOptional=None, EngineVersion: str=None, AllowMajorVersionUpgrade: Boolean=None, AutoMinorVersionUpgrade: BooleanOptional=None, LicenseModel: str=None, Iops: int=None, OptionGroupName: str=None, NewDBInstanceIdentifier: str=None, StorageType: str=None, TdeCredentialArn: str=None, TdeCredentialPassword: str=None, CACertificateIdentifier: str=None, Domain: str=None, CopyTagsToSnapshot: BooleanOptional=None, MonitoringInterval: int=None, DBPortNumber: int=None, PubliclyAccessible: BooleanOptional=None, MonitoringRoleArn: str=None, DomainIAMRoleName: str=None, PromotionTier: int=None, EnableIAMDatabaseAuthentication: BooleanOptional=None, EnablePerformanceInsights: BooleanOptional=None, PerformanceInsightsKMSKeyId: str=None, CloudwatchLogsExportConfiguration: CloudwatchLogsExportConfiguration=None, DeletionProtection: BooleanOptional=None) -> ModifyDBInstanceResult:
        r"""Modifies settings for a DB instance. You can change one or more database configuration parameters by specifying these parameters and the new values in the request. To learn what modifications you can make to your DB instance, call <a>DescribeValidDBInstanceModifications</a> before you call <a>ModifyDBInstance</a>.

        :param self:
        :param DeletionProtection:  A value that indicates whether the DB instance has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled. See <a href="https://docs.aws.amazon.com/neptune/latest/userguide/manage-console-instances-delete.html">Deleting a DB Instance</a>.<br/>CloudwatchLogsExportConfiguration:  The configuration setting for the log types to be enabled for export to CloudWatch Logs for a specific DB instance or DB cluster.:<br/>PerformanceInsightsKMSKeyId:   <i>(Not supported by Neptune)</i> <br/>EnablePerformanceInsights:   <i>(Not supported by Neptune)</i> <br/>EnableIAMDatabaseAuthentication:  True to enable mapping of Amazon Identity and Access Management (IAM) accounts to database accounts, and otherwise false. You can enable IAM database authentication for the following database engines Not applicable. Mapping Amazon IAM accounts to database accounts is managed by the DB cluster. For more information, see <a>ModifyDBCluster</a>. Default: <code>false</code> <br/>PromotionTier:  A value that specifies the order in which a Read Replica is promoted to the primary instance after a failure of the existing primary instance. Default: 1 Valid Values: 0 - 15<br/>DomainIAMRoleName:  Not supported<br/>MonitoringRoleArn:  The ARN for the IAM role that permits Neptune to send enhanced monitoring metrics to Amazon CloudWatch Logs. For example, <code>arn:aws:iam:123456789012:role/emaccess</code>. If <code>MonitoringInterval</code> is set to a value other than 0, then you must supply a <code>MonitoringRoleArn</code> value.<br/>PubliclyAccessible:  This flag should no longer be used.<br/>DBPortNumber:  The port number on which the database accepts connections. The value of the <code>DBPortNumber</code> parameter must not match any of the port values specified for options in the option group for the DB instance. Your database will restart when you change the <code>DBPortNumber</code> value regardless of the value of the <code>ApplyImmediately</code> parameter.  Default: <code>8182</code> <br/>MonitoringInterval:  The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance. To disable collecting Enhanced Monitoring metrics, specify 0. The default is 0. If <code>MonitoringRoleArn</code> is specified, then you must also set <code>MonitoringInterval</code> to a value other than 0. Valid Values: <code>0, 1, 5, 10, 15, 30, 60</code> <br/>CopyTagsToSnapshot:  True to copy all tags from the DB instance to snapshots of the DB instance, and otherwise false. The default is false.<br/>Domain:  Not supported.<br/>CACertificateIdentifier:  Indicates the certificate that needs to be associated with the instance.<br/>TdeCredentialPassword:  The password for the given ARN from the key store in order to access the device.<br/>TdeCredentialArn:  The ARN from the key store with which to associate the instance for TDE encryption.<br/>StorageType:  Not supported.<br/>NewDBInstanceIdentifier:   The new DB instance identifier for the DB instance when renaming a DB instance. When you change the DB instance identifier, an instance reboot will occur immediately if you set <code>Apply Immediately</code> to true, or will occur during the next maintenance window if <code>Apply Immediately</code> to false. This value is stored as a lowercase string. Constraints: <ul> <li> Must contain from 1 to 63 letters, numbers, or hyphens. </li> <li> The first character must be a letter. </li> <li> Cannot end with a hyphen or contain two consecutive hyphens. </li> </ul> Example: <code>mydbinstance</code> <br/>OptionGroupName:   <i>(Not supported by Neptune)</i> <br/>Iops:  The new Provisioned IOPS (I/O operations per second) value for the instance. Changing this setting doesn't result in an outage and the change is applied during the next maintenance window unless the <code>ApplyImmediately</code> parameter is set to <code>true</code> for this request. Default: Uses existing setting<br/>LicenseModel:  Not supported by Neptune.<br/>AutoMinorVersionUpgrade:   Indicates that minor version upgrades are applied automatically to the DB instance during the maintenance window. Changing this parameter doesn't result in an outage except in the following case and the change is asynchronously applied as soon as possible. An outage will result if this parameter is set to <code>true</code> during the maintenance window, and a newer minor version is available, and Neptune has enabled auto patching for that engine version.<br/>AllowMajorVersionUpgrade:  Indicates that major version upgrades are allowed. Changing this parameter doesn't result in an outage and the change is asynchronously applied as soon as possible.<br/>EngineVersion:  The version number of the database engine to upgrade to. Currently, setting this parameter has no effect. To upgrade your database engine to the most recent release, use the <a>ApplyPendingMaintenanceAction</a> API.<br/>MultiAZ:  Specifies if the DB instance is a Multi-AZ deployment. Changing this parameter doesn't result in an outage and the change is applied during the next maintenance window unless the <code>ApplyImmediately</code> parameter is set to <code>true</code> for this request.<br/>PreferredMaintenanceWindow:  The weekly time range (in UTC) during which system maintenance can occur, which might result in an outage. Changing this parameter doesn't result in an outage, except in the following situation, and the change is asynchronously applied as soon as possible. If there are pending actions that cause a reboot, and the maintenance window is changed to include the current time, then changing this parameter will cause a reboot of the DB instance. If moving this window to the current time, there must be at least 30 minutes between the current time and end of the window to ensure pending changes are applied. Default: Uses existing setting Format: ddd:hh24:mi-ddd:hh24:mi Valid Days: Mon | Tue | Wed | Thu | Fri | Sat | Sun Constraints: Must be at least 30 minutes<br/>PreferredBackupWindow:   The daily time range during which automated backups are created if automated backups are enabled. Not applicable. The daily time range for creating automated backups is managed by the DB cluster. For more information, see <a>ModifyDBCluster</a>. Constraints: <ul> <li> Must be in the format hh24:mi-hh24:mi </li> <li> Must be in Universal Time Coordinated (UTC) </li> <li> Must not conflict with the preferred maintenance window </li> <li> Must be at least 30 minutes </li> </ul><br/>BackupRetentionPeriod:  Not applicable. The retention period for automated backups is managed by the DB cluster. For more information, see <a>ModifyDBCluster</a>. Default: Uses existing setting<br/>DBParameterGroupName:  The name of the DB parameter group to apply to the DB instance. Changing this setting doesn't result in an outage. The parameter group name itself is changed immediately, but the actual parameter changes are not applied until you reboot the instance without failover. The db instance will NOT be rebooted automatically and the parameter changes will NOT be applied during the next maintenance window. Default: Uses existing setting Constraints: The DB parameter group must be in the same DB parameter group family as this DB instance.<br/>MasterUserPassword:  Not supported by Neptune.<br/>ApplyImmediately:  Specifies whether the modifications in this request and any pending modifications are asynchronously applied as soon as possible, regardless of the <code>PreferredMaintenanceWindow</code> setting for the DB instance.  If this parameter is set to <code>false</code>, changes to the DB instance are applied during the next maintenance window. Some parameter changes can cause an outage and are applied on the next call to <a>RebootDBInstance</a>, or the next failure reboot. Default: <code>false</code> <br/>VpcSecurityGroupIds:  A list of EC2 VPC security groups to authorize on this DB instance. This change is asynchronously applied as soon as possible. Not applicable. The associated list of EC2 VPC security groups is managed by the DB cluster. For more information, see <a>ModifyDBCluster</a>. Constraints: <ul> <li> If supplied, must match existing VpcSecurityGroupIds. </li> </ul><br/>DBSecurityGroups:  A list of DB security groups to authorize on this DB instance. Changing this setting doesn't result in an outage and the change is asynchronously applied as soon as possible. Constraints: <ul> <li> If supplied, must match existing DBSecurityGroups. </li> </ul><br/>DBSubnetGroupName:  The new DB subnet group for the DB instance. You can use this parameter to move your DB instance to a different VPC. Changing the subnet group causes an outage during the change. The change is applied during the next maintenance window, unless you specify <code>true</code> for the <code>ApplyImmediately</code> parameter. Constraints: If supplied, must match the name of an existing DBSubnetGroup. Example: <code>mySubnetGroup</code> <br/>DBInstanceClass:  The new compute and memory capacity of the DB instance, for example, <code>db.m4.large</code>. Not all DB instance classes are available in all AWS Regions. If you modify the DB instance class, an outage occurs during the change. The change is applied during the next maintenance window, unless <code>ApplyImmediately</code> is specified as <code>true</code> for this request. Default: Uses existing setting<br/>AllocatedStorage:  Not supported by Neptune.<br/>DBInstanceIdentifier:  The DB instance identifier. This value is stored as a lowercase string. Constraints: <ul> <li> Must match the identifier of an existing DBInstance. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DisableLogTypes</i> The list of log types to disable.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableLogTypes</i> The list of log types to enable.<br/>
        :return: DBInstance:  Contains the details of an Amazon Neptune DB instance. This data type is used as a response element in the <a>DescribeDBInstances</a> action.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeletionProtection</i> Indicates whether or not the DB instance has deletion protection enabled. The instance can't be deleted when deletion protection is enabled. See <a href="https://docs.aws.amazon.com/neptune/latest/userguide/manage-console-instances-delete.html">Deleting a DB Instance</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnabledCloudwatchLogsExports</i> A list of log types that this DB instance is configured to export to CloudWatch Logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PerformanceInsightsKMSKeyId</i>  <i>(Not supported by Neptune)</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PerformanceInsightsEnabled</i>  <i>(Not supported by Neptune)</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IAMDatabaseAuthenticationEnabled</i> True if Amazon Identity and Access Management (IAM) authentication is enabled, and otherwise false.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Timezone</i> Not supported.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceArn</i> The Amazon Resource Name (ARN) for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PromotionTier</i> A value that specifies the order in which a Read Replica is promoted to the primary instance after a failure of the existing primary instance. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MonitoringRoleArn</i> The ARN for the IAM role that permits Neptune to send Enhanced Monitoring metrics to Amazon CloudWatch Logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnhancedMonitoringResourceArn</i> The Amazon Resource Name (ARN) of the Amazon CloudWatch Logs log stream that receives the Enhanced Monitoring metrics data for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MonitoringInterval</i> The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CopyTagsToSnapshot</i> Specifies whether tags are copied from the DB instance to snapshots of the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainMemberships</i> Not supported<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CACertificateIdentifier</i> The identifier of the CA certificate for this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DbiResourceId</i> The Amazon Region-unique, immutable identifier for the DB instance. This identifier is found in Amazon CloudTrail log entries whenever the Amazon KMS key for the DB instance is accessed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i>  Not supported: The encryption for DB instances is managed by the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageEncrypted</i> Not supported: The encryption for DB instances is managed by the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterIdentifier</i> If the DB instance is a member of a DB cluster, contains the name of the DB cluster that the DB instance is a member of.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DbInstancePort</i> Specifies the port that the DB instance listens on. If the DB instance is part of a DB cluster, this can be a different port than the DB cluster port.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TdeCredentialArn</i> The ARN from the key store with which the instance is associated for TDE encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageType</i> Specifies the storage type associated with DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusInfos</i> The status of a Read Replica. If the instance is not a Read Replica, this is blank.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PubliclyAccessible</i> This flag should no longer be used.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecondaryAvailabilityZone</i> If present, specifies the name of the secondary Availability Zone for a DB instance with multi-AZ support.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CharacterSetName</i>  <i>(Not supported by Neptune)</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OptionGroupMemberships</i>  <i>(Not supported by Neptune)</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Iops</i> Specifies the Provisioned IOPS (I/O operations per second) value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LicenseModel</i> License model information for this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadReplicaDBClusterIdentifiers</i> Contains one or more identifiers of DB clusters that are Read Replicas of this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadReplicaDBInstanceIdentifiers</i> Contains one or more identifiers of the Read Replicas associated with this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadReplicaSourceDBInstanceIdentifier</i> Contains the identifier of the source DB instance if this DB instance is a Read Replica.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoMinorVersionUpgrade</i> Indicates that minor version patches are applied automatically.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> Indicates the database engine version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiAZ</i> Specifies if the DB instance is a Multi-AZ deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestRestorableTime</i> Specifies the latest time to which a database can be restored with point-in-time restore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingModifiedValues</i> Specifies that changes to the DB instance are pending. This element is only included when changes are pending. Specific changes are identified by subelements.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingModifiedValues</b>: Specifies that changes to the DB instance are pending. This element is only included when changes are pending. Specific changes are identified by subelements.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i> Specifies the weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroup</i> Specifies information on the subnet group associated with the DB instance, including the name, description, and subnets in the subnet group.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DBSubnetGroup</b>: Specifies information on the subnet group associated with the DB instance, including the name, description, and subnets in the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZone</i> Specifies the name of the Availability Zone the DB instance is located in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBParameterGroups</i> Provides the list of DB parameter groups applied to this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcSecurityGroups</i> Provides a list of VPC security group elements that the DB instance belongs to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSecurityGroups</i>  Provides List of DB security group elements containing only <code>DBSecurityGroup.Name</code> and <code>DBSecurityGroup.Status</code> subelements.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupRetentionPeriod</i> Specifies the number of days for which automatic DB snapshots are retained.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredBackupWindow</i>  Specifies the daily time range during which automated backups are created if automated backups are enabled, as determined by the <code>BackupRetentionPeriod</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceCreateTime</i> Provides the date and time the DB instance was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllocatedStorage</i> Not supported by Neptune.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i> Specifies the connection endpoint.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Endpoint</b>: Specifies the connection endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBName</i> The database name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUsername</i> Not supported by Neptune.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceStatus</i> Specifies the current state of this database.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> Provides the name of the database engine to be used for this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceClass</i> Contains the name of the compute and memory capacity class of the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceIdentifier</i> Contains a user-supplied database identifier. This identifier is the unique key that identifies a DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HostedZoneId</i> Specifies the ID that Amazon Route 53 assigns when you create a hosted zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Specifies the port that the database engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Address</i> Specifies the DNS address of the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupArn</i> The Amazon Resource Name (ARN) for the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Subnets</i>  Contains a list of <a>Subnet</a> elements.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetGroupStatus</i> Provides the status of the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> Provides the VpcId of the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupDescription</i> Provides the description of the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupName</i> The name of the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupName</i> The new DB subnet group for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CACertificateIdentifier</i> Specifies the identifier of the CA certificate for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageType</i> Specifies the storage type to be associated with the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceIdentifier</i>  Contains the new <code>DBInstanceIdentifier</code> for the DB instance that will be applied or is currently being applied.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Iops</i> Specifies the new Provisioned IOPS value for the DB instance that will be applied or is currently being applied.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LicenseModel</i> Not supported by Neptune.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> Indicates the database engine version.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiAZ</i> Indicates that the Single-AZ DB instance is to change to a Multi-AZ deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupRetentionPeriod</i> Specifies the pending number of days for which automated backups are retained.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Specifies the pending port for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUserPassword</i> Not supported by Neptune.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AllocatedStorage</i>  Contains the new <code>AllocatedStorage</code> size for the DB instance that will be applied or is currently being applied.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceClass</i>  Contains the new <code>DBInstanceClass</code> for the DB instance that will be applied or is currently being applied.<br/>This <code>PendingCloudwatchLogsExports</code> structure specifies pending changes to which CloudWatch logs are enabled and which are disabled.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingCloudwatchLogsExports</b>: This <code>PendingCloudwatchLogsExports</code> structure specifies pending changes to which CloudWatch logs are enabled and which are disabled.        """
        pass

    def modify_db_parameter_group(self, Parameters: List[Parameter], DBParameterGroupName: str) -> DBParameterGroupNameMessage:
        r"""Modifies the parameters of a DB parameter group. To modify more than one parameter, submit a list of the following: <code>ParameterName</code>, <code>ParameterValue</code>, and <code>ApplyMethod</code>. A maximum of 20 parameters can be modified in a single request. <note> Changes to dynamic parameters are applied immediately. Changes to static parameters require a reboot without failover to the DB instance associated with the parameter group before the change can take effect. </note> <important> After you modify a DB parameter group, you should wait at least 5 minutes before creating your first DB instance that uses that DB parameter group as the default parameter group. This allows Amazon Neptune to fully complete the modify action before the parameter group is used as the default for a new DB instance. This is especially important for parameters that are critical when creating the default database for a DB instance, such as the character set for the default database defined by the <code>character_set_database</code> parameter. You can use the <i>Parameter Groups</i> option of the Amazon Neptune console or the <i>DescribeDBParameters</i> command to verify that your DB parameter group has been created or modified. </important>

        :param self:
        :param Parameters:  An array of parameter names, values, and the apply method for the parameter update. At least one parameter name, value, and apply method must be supplied; subsequent arguments are optional. A maximum of 20 parameters can be modified in a single request. Valid Values (for the application method): <code>immediate | pending-reboot</code>  <note> You can use the immediate value with dynamic parameters only. You can use the pending-reboot value for both dynamic and static parameters, and changes are applied when you reboot the DB instance without failover. </note><br/>DBParameterGroupName:  The name of the DB parameter group. Constraints: <ul> <li> If supplied, must match the name of an existing DBParameterGroup. </li> </ul><br/>
        :return: DBParameterGroupName:  Provides the name of the DB parameter group.<br/>        """
        pass

    def modify_db_subnet_group(self, SubnetIds: List[String], DBSubnetGroupName: str, DBSubnetGroupDescription: str=None) -> ModifyDBSubnetGroupResult:
        r"""Modifies an existing DB subnet group. DB subnet groups must contain at least one subnet in at least two AZs in the Amazon Region.

        :param self:
        :param SubnetIds:  The EC2 subnet IDs for the DB subnet group.<br/>DBSubnetGroupDescription:  The description for the DB subnet group.<br/>DBSubnetGroupName:  The name for the DB subnet group. This value is stored as a lowercase string. You can't modify the default subnet group. Constraints: Must match the name of an existing DBSubnetGroup. Must not be default. Example: <code>mySubnetgroup</code> <br/>
        :return: DBSubnetGroup:  Contains the details of an Amazon Neptune DB subnet group. This data type is used as a response element in the <a>DescribeDBSubnetGroups</a> action.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupArn</i> The Amazon Resource Name (ARN) for the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Subnets</i>  Contains a list of <a>Subnet</a> elements.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetGroupStatus</i> Provides the status of the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> Provides the VpcId of the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupDescription</i> Provides the description of the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupName</i> The name of the DB subnet group.<br/>        """
        pass

    def modify_event_subscription(self, SubscriptionName: str, SnsTopicArn: str=None, SourceType: str=None, EventCategories: List[String]=None, Enabled: BooleanOptional=None) -> ModifyEventSubscriptionResult:
        r"""Modifies an existing event notification subscription. Note that you can't modify the source identifiers using this call; to change source identifiers for a subscription, use the <a>AddSourceIdentifierToSubscription</a> and <a>RemoveSourceIdentifierFromSubscription</a> calls. You can see a list of the event categories for a given SourceType by using the <b>DescribeEventCategories</b> action.

        :param self:
        :param Enabled:   A Boolean value; set to <b>true</b> to activate the subscription.<br/>EventCategories:   A list of event categories for a SourceType that you want to subscribe to. You can see a list of the categories for a given SourceType by using the <b>DescribeEventCategories</b> action.<br/>SourceType:  The type of source that is generating the events. For example, if you want to be notified of events generated by a DB instance, you would set this parameter to db-instance. if this value is not specified, all events are returned. Valid values: db-instance | db-parameter-group | db-security-group | db-snapshot<br/>SnsTopicArn:  The Amazon Resource Name (ARN) of the SNS topic created for event notification. The ARN is created by Amazon SNS when you create a topic and subscribe to it.<br/>SubscriptionName:  The name of the event notification subscription.<br/>
        :return: EventSubscription:  Contains the results of a successful invocation of the <a>DescribeEventSubscriptions</a> action.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EventSubscriptionArn</i> The Amazon Resource Name (ARN) for the event subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> A Boolean value indicating if the subscription is enabled. True indicates the subscription is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EventCategoriesList</i> A list of event categories for the event notification subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceIdsList</i> A list of source IDs for the event notification subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceType</i> The source type for the event notification subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubscriptionCreationTime</i> The time the event notification subscription was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the event notification subscription. Constraints: Can be one of the following: creating | modifying | deleting | active | no-permission | topic-not-exist The status "no-permission" indicates that Neptune no longer has permission to post to the SNS topic. The status "topic-not-exist" indicates that the topic was deleted after the subscription was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnsTopicArn</i> The topic ARN of the event notification subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustSubscriptionId</i> The event notification subscription Id.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomerAwsId</i> The Amazon customer account associated with the event notification subscription.<br/>        """
        pass

    def promote_read_replica_db_cluster(self, DBClusterIdentifier: str) -> PromoteReadReplicaDBClusterResult:
        r"""Not supported.

        :param self:
        :param DBClusterIdentifier:  Not supported.<br/>
        :return: DBCluster:  Contains the details of an Amazon Neptune DB cluster. This data type is used as a response element in the <a>DescribeDBClusters</a> action.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomaticRestartTime</i> Time at which the DB cluster will be automatically restarted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CrossAccountClone</i> If set to <code>true</code>, the DB cluster can be cloned across accounts.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeletionProtection</i> Indicates whether or not the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnabledCloudwatchLogsExports</i> A list of log types that this DB cluster is configured to export to CloudWatch Logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CopyTagsToSnapshot</i>  <i>If set to <code>true</code>, tags are copied to any snapshot of the DB cluster that is created.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterCreateTime</i> Specifies the time when the DB cluster was created, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloneGroupId</i> Identifies the clone group to which the DB cluster is associated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IAMDatabaseAuthenticationEnabled</i> True if mapping of Amazon Identity and Access Management (IAM) accounts to database accounts is enabled, and otherwise false.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociatedRoles</i> Provides a list of the Amazon Identity and Access Management (IAM) roles that are associated with the DB cluster. IAM roles that are associated with a DB cluster grant permission for the DB cluster to access other Amazon services on your behalf.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterArn</i> The Amazon Resource Name (ARN) for the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DbClusterResourceId</i> The Amazon Region-unique, immutable identifier for the DB cluster. This identifier is found in Amazon CloudTrail log entries whenever the Amazon KMS key for the DB cluster is accessed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> If <code>StorageEncrypted</code> is true, the Amazon KMS key identifier for the encrypted DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageEncrypted</i> Specifies whether the DB cluster is encrypted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HostedZoneId</i> Specifies the ID that Amazon Route 53 assigns when you create a hosted zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcSecurityGroups</i> Provides a list of VPC security groups that the DB cluster belongs to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterMembers</i> Provides the list of instances that make up the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadReplicaIdentifiers</i> Contains one or more identifiers of the Read Replicas associated with this DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationSourceIdentifier</i> Not supported by Neptune.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i> Specifies the weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredBackupWindow</i> Specifies the daily time range during which automated backups are created if automated backups are enabled, as determined by the <code>BackupRetentionPeriod</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterOptionGroupMemberships</i> Not supported by Neptune.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUsername</i> Not supported by Neptune.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Specifies the port that the database engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestRestorableTime</i> Specifies the latest time to which a database can be restored with point-in-time restore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> Indicates the database engine version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> Provides the name of the database engine to be used for this DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiAZ</i> Specifies whether the DB cluster has instances in multiple Availability Zones.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReaderEndpoint</i> The reader endpoint for the DB cluster. The reader endpoint for a DB cluster load-balances connections across the Read Replicas that are available in a DB cluster. As clients request new connections to the reader endpoint, Neptune distributes the connection requests among the Read Replicas in the DB cluster. This functionality can help balance your read workload across multiple Read Replicas in your DB cluster. If a failover occurs, and the Read Replica that you are connected to is promoted to be the primary instance, your connection is dropped. To continue sending your read workload to other Read Replicas in the cluster, you can then reconnect to the reader endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i> Specifies the connection endpoint for the primary instance of the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EarliestRestorableTime</i> Specifies the earliest time to which a database can be restored with point-in-time restore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PercentProgress</i> Specifies the progress of the operation as a percentage.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Specifies the current state of this DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroup</i> Specifies information on the subnet group associated with the DB cluster, including the name, description, and subnets in the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterParameterGroup</i> Specifies the name of the DB cluster parameter group for the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterIdentifier</i> Contains a user-supplied DB cluster identifier. This identifier is the unique key that identifies a DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> Contains the name of the initial database of this DB cluster that was provided at create time, if one was specified when the DB cluster was created. This same name is returned for the life of the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CharacterSetName</i> Not supported by Neptune.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupRetentionPeriod</i> Specifies the number of days for which automatic DB snapshots are retained.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZones</i> Provides the list of EC2 Availability Zones that instances in the DB cluster can be created in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllocatedStorage</i>  <code>AllocatedStorage</code> always returns 1, because Neptune DB cluster storage size is not fixed, but instead automatically adjusts as needed.<br/>        """
        pass

    def reboot_db_instance(self, DBInstanceIdentifier: str, ForceFailover: BooleanOptional=None) -> RebootDBInstanceResult:
        r"""You might need to reboot your DB instance, usually for maintenance reasons. For example, if you make certain modifications, or if you change the DB parameter group associated with the DB instance, you must reboot the instance for the changes to take effect. Rebooting a DB instance restarts the database engine service. Rebooting a DB instance results in a momentary outage, during which the DB instance status is set to rebooting.

        :param self:
        :param ForceFailover:   When <code>true</code>, the reboot is conducted through a MultiAZ failover. Constraint: You can't specify <code>true</code> if the instance is not configured for MultiAZ.<br/>DBInstanceIdentifier:  The DB instance identifier. This parameter is stored as a lowercase string. Constraints: <ul> <li> Must match the identifier of an existing DBInstance. </li> </ul><br/>
        :return: DBInstance:  Contains the details of an Amazon Neptune DB instance. This data type is used as a response element in the <a>DescribeDBInstances</a> action.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeletionProtection</i> Indicates whether or not the DB instance has deletion protection enabled. The instance can't be deleted when deletion protection is enabled. See <a href="https://docs.aws.amazon.com/neptune/latest/userguide/manage-console-instances-delete.html">Deleting a DB Instance</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnabledCloudwatchLogsExports</i> A list of log types that this DB instance is configured to export to CloudWatch Logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PerformanceInsightsKMSKeyId</i>  <i>(Not supported by Neptune)</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PerformanceInsightsEnabled</i>  <i>(Not supported by Neptune)</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IAMDatabaseAuthenticationEnabled</i> True if Amazon Identity and Access Management (IAM) authentication is enabled, and otherwise false.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Timezone</i> Not supported.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceArn</i> The Amazon Resource Name (ARN) for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PromotionTier</i> A value that specifies the order in which a Read Replica is promoted to the primary instance after a failure of the existing primary instance. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MonitoringRoleArn</i> The ARN for the IAM role that permits Neptune to send Enhanced Monitoring metrics to Amazon CloudWatch Logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnhancedMonitoringResourceArn</i> The Amazon Resource Name (ARN) of the Amazon CloudWatch Logs log stream that receives the Enhanced Monitoring metrics data for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MonitoringInterval</i> The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CopyTagsToSnapshot</i> Specifies whether tags are copied from the DB instance to snapshots of the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainMemberships</i> Not supported<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CACertificateIdentifier</i> The identifier of the CA certificate for this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DbiResourceId</i> The Amazon Region-unique, immutable identifier for the DB instance. This identifier is found in Amazon CloudTrail log entries whenever the Amazon KMS key for the DB instance is accessed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i>  Not supported: The encryption for DB instances is managed by the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageEncrypted</i> Not supported: The encryption for DB instances is managed by the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterIdentifier</i> If the DB instance is a member of a DB cluster, contains the name of the DB cluster that the DB instance is a member of.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DbInstancePort</i> Specifies the port that the DB instance listens on. If the DB instance is part of a DB cluster, this can be a different port than the DB cluster port.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TdeCredentialArn</i> The ARN from the key store with which the instance is associated for TDE encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageType</i> Specifies the storage type associated with DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusInfos</i> The status of a Read Replica. If the instance is not a Read Replica, this is blank.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PubliclyAccessible</i> This flag should no longer be used.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecondaryAvailabilityZone</i> If present, specifies the name of the secondary Availability Zone for a DB instance with multi-AZ support.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CharacterSetName</i>  <i>(Not supported by Neptune)</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OptionGroupMemberships</i>  <i>(Not supported by Neptune)</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Iops</i> Specifies the Provisioned IOPS (I/O operations per second) value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LicenseModel</i> License model information for this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadReplicaDBClusterIdentifiers</i> Contains one or more identifiers of DB clusters that are Read Replicas of this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadReplicaDBInstanceIdentifiers</i> Contains one or more identifiers of the Read Replicas associated with this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadReplicaSourceDBInstanceIdentifier</i> Contains the identifier of the source DB instance if this DB instance is a Read Replica.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoMinorVersionUpgrade</i> Indicates that minor version patches are applied automatically.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> Indicates the database engine version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiAZ</i> Specifies if the DB instance is a Multi-AZ deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestRestorableTime</i> Specifies the latest time to which a database can be restored with point-in-time restore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingModifiedValues</i> Specifies that changes to the DB instance are pending. This element is only included when changes are pending. Specific changes are identified by subelements.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingModifiedValues</b>: Specifies that changes to the DB instance are pending. This element is only included when changes are pending. Specific changes are identified by subelements.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i> Specifies the weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroup</i> Specifies information on the subnet group associated with the DB instance, including the name, description, and subnets in the subnet group.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DBSubnetGroup</b>: Specifies information on the subnet group associated with the DB instance, including the name, description, and subnets in the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZone</i> Specifies the name of the Availability Zone the DB instance is located in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBParameterGroups</i> Provides the list of DB parameter groups applied to this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcSecurityGroups</i> Provides a list of VPC security group elements that the DB instance belongs to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSecurityGroups</i>  Provides List of DB security group elements containing only <code>DBSecurityGroup.Name</code> and <code>DBSecurityGroup.Status</code> subelements.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupRetentionPeriod</i> Specifies the number of days for which automatic DB snapshots are retained.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredBackupWindow</i>  Specifies the daily time range during which automated backups are created if automated backups are enabled, as determined by the <code>BackupRetentionPeriod</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceCreateTime</i> Provides the date and time the DB instance was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllocatedStorage</i> Not supported by Neptune.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i> Specifies the connection endpoint.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Endpoint</b>: Specifies the connection endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBName</i> The database name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUsername</i> Not supported by Neptune.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceStatus</i> Specifies the current state of this database.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> Provides the name of the database engine to be used for this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceClass</i> Contains the name of the compute and memory capacity class of the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceIdentifier</i> Contains a user-supplied database identifier. This identifier is the unique key that identifies a DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HostedZoneId</i> Specifies the ID that Amazon Route 53 assigns when you create a hosted zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Specifies the port that the database engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Address</i> Specifies the DNS address of the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupArn</i> The Amazon Resource Name (ARN) for the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Subnets</i>  Contains a list of <a>Subnet</a> elements.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetGroupStatus</i> Provides the status of the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> Provides the VpcId of the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupDescription</i> Provides the description of the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupName</i> The name of the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupName</i> The new DB subnet group for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CACertificateIdentifier</i> Specifies the identifier of the CA certificate for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageType</i> Specifies the storage type to be associated with the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceIdentifier</i>  Contains the new <code>DBInstanceIdentifier</code> for the DB instance that will be applied or is currently being applied.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Iops</i> Specifies the new Provisioned IOPS value for the DB instance that will be applied or is currently being applied.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LicenseModel</i> Not supported by Neptune.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> Indicates the database engine version.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiAZ</i> Indicates that the Single-AZ DB instance is to change to a Multi-AZ deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupRetentionPeriod</i> Specifies the pending number of days for which automated backups are retained.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Specifies the pending port for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUserPassword</i> Not supported by Neptune.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AllocatedStorage</i>  Contains the new <code>AllocatedStorage</code> size for the DB instance that will be applied or is currently being applied.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceClass</i>  Contains the new <code>DBInstanceClass</code> for the DB instance that will be applied or is currently being applied.<br/>This <code>PendingCloudwatchLogsExports</code> structure specifies pending changes to which CloudWatch logs are enabled and which are disabled.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingCloudwatchLogsExports</b>: This <code>PendingCloudwatchLogsExports</code> structure specifies pending changes to which CloudWatch logs are enabled and which are disabled.        """
        pass

    def remove_role_from_db_cluster(self, RoleArn: str, DBClusterIdentifier: str, FeatureName: str=None):
        r"""Disassociates an Identity and Access Management (IAM) role from a DB cluster.

        :param self:
        :param FeatureName:  The name of the feature for the DB cluster that the IAM role is to be disassociated from. For the list of supported feature names, see <a>DBEngineVersion</a>.<br/>RoleArn:  The Amazon Resource Name (ARN) of the IAM role to disassociate from the DB cluster, for example <code>arn:aws:iam::123456789012:role/NeptuneAccessRole</code>.<br/>DBClusterIdentifier:  The name of the DB cluster to disassociate the IAM role from.<br/>
        :return:         """
        pass

    def remove_source_identifier_from_subscription(self, SourceIdentifier: str, SubscriptionName: str) -> RemoveSourceIdentifierFromSubscriptionResult:
        r"""Removes a source identifier from an existing event notification subscription.

        :param self:
        :param SourceIdentifier:   The source identifier to be removed from the subscription, such as the <b>DB instance identifier</b> for a DB instance or the name of a security group.<br/>SubscriptionName:  The name of the event notification subscription you want to remove a source identifier from.<br/>
        :return: EventSubscription:  Contains the results of a successful invocation of the <a>DescribeEventSubscriptions</a> action.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EventSubscriptionArn</i> The Amazon Resource Name (ARN) for the event subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> A Boolean value indicating if the subscription is enabled. True indicates the subscription is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EventCategoriesList</i> A list of event categories for the event notification subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceIdsList</i> A list of source IDs for the event notification subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceType</i> The source type for the event notification subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubscriptionCreationTime</i> The time the event notification subscription was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the event notification subscription. Constraints: Can be one of the following: creating | modifying | deleting | active | no-permission | topic-not-exist The status "no-permission" indicates that Neptune no longer has permission to post to the SNS topic. The status "topic-not-exist" indicates that the topic was deleted after the subscription was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnsTopicArn</i> The topic ARN of the event notification subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustSubscriptionId</i> The event notification subscription Id.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomerAwsId</i> The Amazon customer account associated with the event notification subscription.<br/>        """
        pass

    def remove_tags_from_resource(self, TagKeys: List[String], ResourceName: str):
        r"""Removes metadata tags from an Amazon Neptune resource.

        :param self:
        :param TagKeys:  The tag key (name) of the tag to be removed.<br/>ResourceName:  The Amazon Neptune resource that the tags are removed from. This value is an Amazon Resource Name (ARN). For information about creating an ARN, see <a href="https://docs.aws.amazon.com/neptune/latest/UserGuide/tagging.ARN.html#tagging.ARN.Constructing"> Constructing an Amazon Resource Name (ARN)</a>.<br/>
        :return:         """
        pass

    def reset_db_cluster_parameter_group(self, DBClusterParameterGroupName: str, ResetAllParameters: Boolean=None, Parameters: List[Parameter]=None) -> DBClusterParameterGroupNameMessage:
        r""" Modifies the parameters of a DB cluster parameter group to the default value. To reset specific parameters submit a list of the following: <code>ParameterName</code> and <code>ApplyMethod</code>. To reset the entire DB cluster parameter group, specify the <code>DBClusterParameterGroupName</code> and <code>ResetAllParameters</code> parameters.  When resetting the entire group, dynamic parameters are updated immediately and static parameters are set to <code>pending-reboot</code> to take effect on the next DB instance restart or <a>RebootDBInstance</a> request. You must call <a>RebootDBInstance</a> for every DB instance in your DB cluster that you want the updated static parameter to apply to.

        :param self:
        :param Parameters:  A list of parameter names in the DB cluster parameter group to reset to the default values. You can't use this parameter if the <code>ResetAllParameters</code> parameter is set to <code>true</code>.<br/>ResetAllParameters:  A value that is set to <code>true</code> to reset all parameters in the DB cluster parameter group to their default values, and <code>false</code> otherwise. You can't use this parameter if there is a list of parameter names specified for the <code>Parameters</code> parameter.<br/>DBClusterParameterGroupName:  The name of the DB cluster parameter group to reset.<br/>
        :return: DBClusterParameterGroupName:  The name of the DB cluster parameter group. Constraints: <ul> <li> Must be 1 to 255 letters or numbers. </li> <li> First character must be a letter </li> <li> Cannot end with a hyphen or contain two consecutive hyphens </li> </ul> <note> This value is stored as a lowercase string. </note><br/>        """
        pass

    def reset_db_parameter_group(self, DBParameterGroupName: str, ResetAllParameters: Boolean=None, Parameters: List[Parameter]=None) -> DBParameterGroupNameMessage:
        r"""Modifies the parameters of a DB parameter group to the engine/system default value. To reset specific parameters, provide a list of the following: <code>ParameterName</code> and <code>ApplyMethod</code>. To reset the entire DB parameter group, specify the <code>DBParameterGroup</code> name and <code>ResetAllParameters</code> parameters. When resetting the entire group, dynamic parameters are updated immediately and static parameters are set to <code>pending-reboot</code> to take effect on the next DB instance restart or <code>RebootDBInstance</code> request.

        :param self:
        :param Parameters:  To reset the entire DB parameter group, specify the <code>DBParameterGroup</code> name and <code>ResetAllParameters</code> parameters. To reset specific parameters, provide a list of the following: <code>ParameterName</code> and <code>ApplyMethod</code>. A maximum of 20 parameters can be modified in a single request. Valid Values (for Apply method): <code>pending-reboot</code> <br/>ResetAllParameters:  Specifies whether (<code>true</code>) or not (<code>false</code>) to reset all parameters in the DB parameter group to default values. Default: <code>true</code> <br/>DBParameterGroupName:  The name of the DB parameter group. Constraints: <ul> <li> Must match the name of an existing DBParameterGroup. </li> </ul><br/>
        :return: DBParameterGroupName:  Provides the name of the DB parameter group.<br/>        """
        pass

    def restore_db_cluster_from_snapshot(self, Engine: str, SnapshotIdentifier: str, DBClusterIdentifier: str, AvailabilityZones: List[String]=None, EngineVersion: str=None, Port: int=None, DBSubnetGroupName: str=None, DatabaseName: str=None, OptionGroupName: str=None, VpcSecurityGroupIds: List[String]=None, Tags: List[Tag]=None, KmsKeyId: str=None, EnableIAMDatabaseAuthentication: BooleanOptional=None, EnableCloudwatchLogsExports: List[String]=None, DBClusterParameterGroupName: str=None, DeletionProtection: BooleanOptional=None, CopyTagsToSnapshot: BooleanOptional=None) -> RestoreDBClusterFromSnapshotResult:
        r"""Creates a new DB cluster from a DB snapshot or DB cluster snapshot. If a DB snapshot is specified, the target DB cluster is created from the source DB snapshot with a default configuration and default security group. If a DB cluster snapshot is specified, the target DB cluster is created from the source DB cluster restore point with the same configuration as the original source DB cluster, except that the new DB cluster is created with the default security group.

        :param self:
        :param CopyTagsToSnapshot:   <i>If set to <code>true</code>, tags are copied to any snapshot of the restored DB cluster that is created.</i> <br/>DeletionProtection:  A value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled. <br/>DBClusterParameterGroupName:  The name of the DB cluster parameter group to associate with the new DB cluster. Constraints: <ul> <li> If supplied, must match the name of an existing DBClusterParameterGroup. </li> </ul><br/>EnableCloudwatchLogsExports:  The list of logs that the restored DB cluster is to export to Amazon CloudWatch Logs.<br/>EnableIAMDatabaseAuthentication:  True to enable mapping of Amazon Identity and Access Management (IAM) accounts to database accounts, and otherwise false. Default: <code>false</code> <br/>KmsKeyId:  The Amazon KMS key identifier to use when restoring an encrypted DB cluster from a DB snapshot or DB cluster snapshot. The KMS key identifier is the Amazon Resource Name (ARN) for the KMS encryption key. If you are restoring a DB cluster with the same Amazon account that owns the KMS encryption key used to encrypt the new DB cluster, then you can use the KMS key alias instead of the ARN for the KMS encryption key. If you do not specify a value for the <code>KmsKeyId</code> parameter, then the following will occur: <ul> <li> If the DB snapshot or DB cluster snapshot in <code>SnapshotIdentifier</code> is encrypted, then the restored DB cluster is encrypted using the KMS key that was used to encrypt the DB snapshot or DB cluster snapshot. </li> <li> If the DB snapshot or DB cluster snapshot in <code>SnapshotIdentifier</code> is not encrypted, then the restored DB cluster is not encrypted. </li> </ul><br/>Tags:  The tags to be assigned to the restored DB cluster.<br/>VpcSecurityGroupIds:  A list of VPC security groups that the new DB cluster will belong to.<br/>OptionGroupName:   <i>(Not supported by Neptune)</i> <br/>DatabaseName:  Not supported.<br/>DBSubnetGroupName:  The name of the DB subnet group to use for the new DB cluster. Constraints: If supplied, must match the name of an existing DBSubnetGroup. Example: <code>mySubnetgroup</code> <br/>Port:  The port number on which the new DB cluster accepts connections. Constraints: Value must be <code>1150-65535</code>  Default: The same port as the original DB cluster.<br/>EngineVersion:  The version of the database engine to use for the new DB cluster.<br/>Engine:  The database engine to use for the new DB cluster. Default: The same as source Constraint: Must be compatible with the engine of the source<br/>SnapshotIdentifier:  The identifier for the DB snapshot or DB cluster snapshot to restore from. You can use either the name or the Amazon Resource Name (ARN) to specify a DB cluster snapshot. However, you can use only the ARN to specify a DB snapshot. Constraints: <ul> <li> Must match the identifier of an existing Snapshot. </li> </ul><br/>DBClusterIdentifier:  The name of the DB cluster to create from the DB snapshot or DB cluster snapshot. This parameter isn't case-sensitive. Constraints: <ul> <li> Must contain from 1 to 63 letters, numbers, or hyphens </li> <li> First character must be a letter </li> <li> Cannot end with a hyphen or contain two consecutive hyphens </li> </ul> Example: <code>my-snapshot-id</code> <br/>AvailabilityZones:  Provides the list of EC2 Availability Zones that instances in the restored DB cluster can be created in.<br/>
        :return: DBCluster:  Contains the details of an Amazon Neptune DB cluster. This data type is used as a response element in the <a>DescribeDBClusters</a> action.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomaticRestartTime</i> Time at which the DB cluster will be automatically restarted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CrossAccountClone</i> If set to <code>true</code>, the DB cluster can be cloned across accounts.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeletionProtection</i> Indicates whether or not the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnabledCloudwatchLogsExports</i> A list of log types that this DB cluster is configured to export to CloudWatch Logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CopyTagsToSnapshot</i>  <i>If set to <code>true</code>, tags are copied to any snapshot of the DB cluster that is created.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterCreateTime</i> Specifies the time when the DB cluster was created, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloneGroupId</i> Identifies the clone group to which the DB cluster is associated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IAMDatabaseAuthenticationEnabled</i> True if mapping of Amazon Identity and Access Management (IAM) accounts to database accounts is enabled, and otherwise false.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociatedRoles</i> Provides a list of the Amazon Identity and Access Management (IAM) roles that are associated with the DB cluster. IAM roles that are associated with a DB cluster grant permission for the DB cluster to access other Amazon services on your behalf.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterArn</i> The Amazon Resource Name (ARN) for the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DbClusterResourceId</i> The Amazon Region-unique, immutable identifier for the DB cluster. This identifier is found in Amazon CloudTrail log entries whenever the Amazon KMS key for the DB cluster is accessed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> If <code>StorageEncrypted</code> is true, the Amazon KMS key identifier for the encrypted DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageEncrypted</i> Specifies whether the DB cluster is encrypted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HostedZoneId</i> Specifies the ID that Amazon Route 53 assigns when you create a hosted zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcSecurityGroups</i> Provides a list of VPC security groups that the DB cluster belongs to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterMembers</i> Provides the list of instances that make up the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadReplicaIdentifiers</i> Contains one or more identifiers of the Read Replicas associated with this DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationSourceIdentifier</i> Not supported by Neptune.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i> Specifies the weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredBackupWindow</i> Specifies the daily time range during which automated backups are created if automated backups are enabled, as determined by the <code>BackupRetentionPeriod</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterOptionGroupMemberships</i> Not supported by Neptune.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUsername</i> Not supported by Neptune.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Specifies the port that the database engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestRestorableTime</i> Specifies the latest time to which a database can be restored with point-in-time restore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> Indicates the database engine version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> Provides the name of the database engine to be used for this DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiAZ</i> Specifies whether the DB cluster has instances in multiple Availability Zones.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReaderEndpoint</i> The reader endpoint for the DB cluster. The reader endpoint for a DB cluster load-balances connections across the Read Replicas that are available in a DB cluster. As clients request new connections to the reader endpoint, Neptune distributes the connection requests among the Read Replicas in the DB cluster. This functionality can help balance your read workload across multiple Read Replicas in your DB cluster. If a failover occurs, and the Read Replica that you are connected to is promoted to be the primary instance, your connection is dropped. To continue sending your read workload to other Read Replicas in the cluster, you can then reconnect to the reader endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i> Specifies the connection endpoint for the primary instance of the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EarliestRestorableTime</i> Specifies the earliest time to which a database can be restored with point-in-time restore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PercentProgress</i> Specifies the progress of the operation as a percentage.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Specifies the current state of this DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroup</i> Specifies information on the subnet group associated with the DB cluster, including the name, description, and subnets in the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterParameterGroup</i> Specifies the name of the DB cluster parameter group for the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterIdentifier</i> Contains a user-supplied DB cluster identifier. This identifier is the unique key that identifies a DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> Contains the name of the initial database of this DB cluster that was provided at create time, if one was specified when the DB cluster was created. This same name is returned for the life of the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CharacterSetName</i> Not supported by Neptune.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupRetentionPeriod</i> Specifies the number of days for which automatic DB snapshots are retained.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZones</i> Provides the list of EC2 Availability Zones that instances in the DB cluster can be created in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllocatedStorage</i>  <code>AllocatedStorage</code> always returns 1, because Neptune DB cluster storage size is not fixed, but instead automatically adjusts as needed.<br/>        """
        pass

    def restore_db_cluster_to_point_in_time(self, SourceDBClusterIdentifier: str, DBClusterIdentifier: str, RestoreType: str=None, RestoreToTime: TStamp=None, UseLatestRestorableTime: Boolean=None, Port: int=None, DBSubnetGroupName: str=None, OptionGroupName: str=None, VpcSecurityGroupIds: List[String]=None, Tags: List[Tag]=None, KmsKeyId: str=None, EnableIAMDatabaseAuthentication: BooleanOptional=None, EnableCloudwatchLogsExports: List[String]=None, DBClusterParameterGroupName: str=None, DeletionProtection: BooleanOptional=None) -> RestoreDBClusterToPointInTimeResult:
        r"""Restores a DB cluster to an arbitrary point in time. Users can restore to any point in time before <code>LatestRestorableTime</code> for up to <code>BackupRetentionPeriod</code> days. The target DB cluster is created from the source DB cluster with the same configuration as the original DB cluster, except that the new DB cluster is created with the default DB security group. <note> This action only restores the DB cluster, not the DB instances for that DB cluster. You must invoke the <a>CreateDBInstance</a> action to create DB instances for the restored DB cluster, specifying the identifier of the restored DB cluster in <code>DBClusterIdentifier</code>. You can create DB instances only after the <code>RestoreDBClusterToPointInTime</code> action has completed and the DB cluster is available. </note>

        :param self:
        :param DeletionProtection:  A value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled. <br/>DBClusterParameterGroupName:  The name of the DB cluster parameter group to associate with the new DB cluster. Constraints: <ul> <li> If supplied, must match the name of an existing DBClusterParameterGroup. </li> </ul><br/>EnableCloudwatchLogsExports:  The list of logs that the restored DB cluster is to export to CloudWatch Logs.<br/>EnableIAMDatabaseAuthentication:  True to enable mapping of Amazon Identity and Access Management (IAM) accounts to database accounts, and otherwise false. Default: <code>false</code> <br/>KmsKeyId:  The Amazon KMS key identifier to use when restoring an encrypted DB cluster from an encrypted DB cluster. The KMS key identifier is the Amazon Resource Name (ARN) for the KMS encryption key. If you are restoring a DB cluster with the same Amazon account that owns the KMS encryption key used to encrypt the new DB cluster, then you can use the KMS key alias instead of the ARN for the KMS encryption key. You can restore to a new DB cluster and encrypt the new DB cluster with a KMS key that is different than the KMS key used to encrypt the source DB cluster. The new DB cluster is encrypted with the KMS key identified by the <code>KmsKeyId</code> parameter. If you do not specify a value for the <code>KmsKeyId</code> parameter, then the following will occur: <ul> <li> If the DB cluster is encrypted, then the restored DB cluster is encrypted using the KMS key that was used to encrypt the source DB cluster. </li> <li> If the DB cluster is not encrypted, then the restored DB cluster is not encrypted. </li> </ul> If <code>DBClusterIdentifier</code> refers to a DB cluster that is not encrypted, then the restore request is rejected.<br/>Tags:  The tags to be applied to the restored DB cluster.<br/>VpcSecurityGroupIds:  A list of VPC security groups that the new DB cluster belongs to.<br/>OptionGroupName:   <i>(Not supported by Neptune)</i> <br/>DBSubnetGroupName:  The DB subnet group name to use for the new DB cluster. Constraints: If supplied, must match the name of an existing DBSubnetGroup. Example: <code>mySubnetgroup</code> <br/>Port:  The port number on which the new DB cluster accepts connections. Constraints: Value must be <code>1150-65535</code>  Default: The same port as the original DB cluster.<br/>UseLatestRestorableTime:  A value that is set to <code>true</code> to restore the DB cluster to the latest restorable backup time, and <code>false</code> otherwise. Default: <code>false</code>  Constraints: Cannot be specified if <code>RestoreToTime</code> parameter is provided.<br/>RestoreToTime:  The date and time to restore the DB cluster to. Valid Values: Value must be a time in Universal Coordinated Time (UTC) format Constraints: <ul> <li> Must be before the latest restorable time for the DB instance </li> <li> Must be specified if <code>UseLatestRestorableTime</code> parameter is not provided </li> <li> Cannot be specified if <code>UseLatestRestorableTime</code> parameter is true </li> <li> Cannot be specified if <code>RestoreType</code> parameter is <code>copy-on-write</code>  </li> </ul> Example: <code>2015-03-07T23:45:00Z</code> <br/>SourceDBClusterIdentifier:  The identifier of the source DB cluster from which to restore. Constraints: <ul> <li> Must match the identifier of an existing DBCluster. </li> </ul><br/>RestoreType:  The type of restore to be performed. You can specify one of the following values: <ul> <li>  <code>full-copy</code> - The new DB cluster is restored as a full copy of the source DB cluster. </li> <li>  <code>copy-on-write</code> - The new DB cluster is restored as a clone of the source DB cluster. </li> </ul> If you don't specify a <code>RestoreType</code> value, then the new DB cluster is restored as a full copy of the source DB cluster.<br/>DBClusterIdentifier:  The name of the new DB cluster to be created. Constraints: <ul> <li> Must contain from 1 to 63 letters, numbers, or hyphens </li> <li> First character must be a letter </li> <li> Cannot end with a hyphen or contain two consecutive hyphens </li> </ul><br/>
        :return: DBCluster:  Contains the details of an Amazon Neptune DB cluster. This data type is used as a response element in the <a>DescribeDBClusters</a> action.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomaticRestartTime</i> Time at which the DB cluster will be automatically restarted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CrossAccountClone</i> If set to <code>true</code>, the DB cluster can be cloned across accounts.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeletionProtection</i> Indicates whether or not the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnabledCloudwatchLogsExports</i> A list of log types that this DB cluster is configured to export to CloudWatch Logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CopyTagsToSnapshot</i>  <i>If set to <code>true</code>, tags are copied to any snapshot of the DB cluster that is created.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterCreateTime</i> Specifies the time when the DB cluster was created, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloneGroupId</i> Identifies the clone group to which the DB cluster is associated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IAMDatabaseAuthenticationEnabled</i> True if mapping of Amazon Identity and Access Management (IAM) accounts to database accounts is enabled, and otherwise false.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociatedRoles</i> Provides a list of the Amazon Identity and Access Management (IAM) roles that are associated with the DB cluster. IAM roles that are associated with a DB cluster grant permission for the DB cluster to access other Amazon services on your behalf.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterArn</i> The Amazon Resource Name (ARN) for the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DbClusterResourceId</i> The Amazon Region-unique, immutable identifier for the DB cluster. This identifier is found in Amazon CloudTrail log entries whenever the Amazon KMS key for the DB cluster is accessed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> If <code>StorageEncrypted</code> is true, the Amazon KMS key identifier for the encrypted DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageEncrypted</i> Specifies whether the DB cluster is encrypted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HostedZoneId</i> Specifies the ID that Amazon Route 53 assigns when you create a hosted zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcSecurityGroups</i> Provides a list of VPC security groups that the DB cluster belongs to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterMembers</i> Provides the list of instances that make up the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadReplicaIdentifiers</i> Contains one or more identifiers of the Read Replicas associated with this DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationSourceIdentifier</i> Not supported by Neptune.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i> Specifies the weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredBackupWindow</i> Specifies the daily time range during which automated backups are created if automated backups are enabled, as determined by the <code>BackupRetentionPeriod</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterOptionGroupMemberships</i> Not supported by Neptune.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUsername</i> Not supported by Neptune.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Specifies the port that the database engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestRestorableTime</i> Specifies the latest time to which a database can be restored with point-in-time restore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> Indicates the database engine version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> Provides the name of the database engine to be used for this DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiAZ</i> Specifies whether the DB cluster has instances in multiple Availability Zones.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReaderEndpoint</i> The reader endpoint for the DB cluster. The reader endpoint for a DB cluster load-balances connections across the Read Replicas that are available in a DB cluster. As clients request new connections to the reader endpoint, Neptune distributes the connection requests among the Read Replicas in the DB cluster. This functionality can help balance your read workload across multiple Read Replicas in your DB cluster. If a failover occurs, and the Read Replica that you are connected to is promoted to be the primary instance, your connection is dropped. To continue sending your read workload to other Read Replicas in the cluster, you can then reconnect to the reader endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i> Specifies the connection endpoint for the primary instance of the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EarliestRestorableTime</i> Specifies the earliest time to which a database can be restored with point-in-time restore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PercentProgress</i> Specifies the progress of the operation as a percentage.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Specifies the current state of this DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroup</i> Specifies information on the subnet group associated with the DB cluster, including the name, description, and subnets in the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterParameterGroup</i> Specifies the name of the DB cluster parameter group for the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterIdentifier</i> Contains a user-supplied DB cluster identifier. This identifier is the unique key that identifies a DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> Contains the name of the initial database of this DB cluster that was provided at create time, if one was specified when the DB cluster was created. This same name is returned for the life of the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CharacterSetName</i> Not supported by Neptune.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupRetentionPeriod</i> Specifies the number of days for which automatic DB snapshots are retained.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZones</i> Provides the list of EC2 Availability Zones that instances in the DB cluster can be created in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllocatedStorage</i>  <code>AllocatedStorage</code> always returns 1, because Neptune DB cluster storage size is not fixed, but instead automatically adjusts as needed.<br/>        """
        pass

    def start_db_cluster(self, DBClusterIdentifier: str) -> StartDBClusterResult:
        r"""Starts an Amazon Neptune DB cluster that was stopped using the AWS console, the Amazon CLI stop-db-cluster command, or the StopDBCluster API.

        :param self:
        :param DBClusterIdentifier:  The DB cluster identifier of the Neptune DB cluster to be started. This parameter is stored as a lowercase string.<br/>
        :return: DBCluster:  Contains the details of an Amazon Neptune DB cluster. This data type is used as a response element in the <a>DescribeDBClusters</a> action.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomaticRestartTime</i> Time at which the DB cluster will be automatically restarted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CrossAccountClone</i> If set to <code>true</code>, the DB cluster can be cloned across accounts.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeletionProtection</i> Indicates whether or not the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnabledCloudwatchLogsExports</i> A list of log types that this DB cluster is configured to export to CloudWatch Logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CopyTagsToSnapshot</i>  <i>If set to <code>true</code>, tags are copied to any snapshot of the DB cluster that is created.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterCreateTime</i> Specifies the time when the DB cluster was created, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloneGroupId</i> Identifies the clone group to which the DB cluster is associated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IAMDatabaseAuthenticationEnabled</i> True if mapping of Amazon Identity and Access Management (IAM) accounts to database accounts is enabled, and otherwise false.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociatedRoles</i> Provides a list of the Amazon Identity and Access Management (IAM) roles that are associated with the DB cluster. IAM roles that are associated with a DB cluster grant permission for the DB cluster to access other Amazon services on your behalf.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterArn</i> The Amazon Resource Name (ARN) for the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DbClusterResourceId</i> The Amazon Region-unique, immutable identifier for the DB cluster. This identifier is found in Amazon CloudTrail log entries whenever the Amazon KMS key for the DB cluster is accessed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> If <code>StorageEncrypted</code> is true, the Amazon KMS key identifier for the encrypted DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageEncrypted</i> Specifies whether the DB cluster is encrypted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HostedZoneId</i> Specifies the ID that Amazon Route 53 assigns when you create a hosted zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcSecurityGroups</i> Provides a list of VPC security groups that the DB cluster belongs to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterMembers</i> Provides the list of instances that make up the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadReplicaIdentifiers</i> Contains one or more identifiers of the Read Replicas associated with this DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationSourceIdentifier</i> Not supported by Neptune.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i> Specifies the weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredBackupWindow</i> Specifies the daily time range during which automated backups are created if automated backups are enabled, as determined by the <code>BackupRetentionPeriod</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterOptionGroupMemberships</i> Not supported by Neptune.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUsername</i> Not supported by Neptune.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Specifies the port that the database engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestRestorableTime</i> Specifies the latest time to which a database can be restored with point-in-time restore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> Indicates the database engine version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> Provides the name of the database engine to be used for this DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiAZ</i> Specifies whether the DB cluster has instances in multiple Availability Zones.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReaderEndpoint</i> The reader endpoint for the DB cluster. The reader endpoint for a DB cluster load-balances connections across the Read Replicas that are available in a DB cluster. As clients request new connections to the reader endpoint, Neptune distributes the connection requests among the Read Replicas in the DB cluster. This functionality can help balance your read workload across multiple Read Replicas in your DB cluster. If a failover occurs, and the Read Replica that you are connected to is promoted to be the primary instance, your connection is dropped. To continue sending your read workload to other Read Replicas in the cluster, you can then reconnect to the reader endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i> Specifies the connection endpoint for the primary instance of the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EarliestRestorableTime</i> Specifies the earliest time to which a database can be restored with point-in-time restore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PercentProgress</i> Specifies the progress of the operation as a percentage.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Specifies the current state of this DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroup</i> Specifies information on the subnet group associated with the DB cluster, including the name, description, and subnets in the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterParameterGroup</i> Specifies the name of the DB cluster parameter group for the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterIdentifier</i> Contains a user-supplied DB cluster identifier. This identifier is the unique key that identifies a DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> Contains the name of the initial database of this DB cluster that was provided at create time, if one was specified when the DB cluster was created. This same name is returned for the life of the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CharacterSetName</i> Not supported by Neptune.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupRetentionPeriod</i> Specifies the number of days for which automatic DB snapshots are retained.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZones</i> Provides the list of EC2 Availability Zones that instances in the DB cluster can be created in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllocatedStorage</i>  <code>AllocatedStorage</code> always returns 1, because Neptune DB cluster storage size is not fixed, but instead automatically adjusts as needed.<br/>        """
        pass

    def stop_db_cluster(self, DBClusterIdentifier: str) -> StopDBClusterResult:
        r"""Stops an Amazon Neptune DB cluster. When you stop a DB cluster, Neptune retains the DB cluster's metadata, including its endpoints and DB parameter groups. Neptune also retains the transaction logs so you can do a point-in-time restore if necessary.

        :param self:
        :param DBClusterIdentifier:  The DB cluster identifier of the Neptune DB cluster to be stopped. This parameter is stored as a lowercase string.<br/>
        :return: DBCluster:  Contains the details of an Amazon Neptune DB cluster. This data type is used as a response element in the <a>DescribeDBClusters</a> action.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomaticRestartTime</i> Time at which the DB cluster will be automatically restarted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CrossAccountClone</i> If set to <code>true</code>, the DB cluster can be cloned across accounts.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeletionProtection</i> Indicates whether or not the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnabledCloudwatchLogsExports</i> A list of log types that this DB cluster is configured to export to CloudWatch Logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CopyTagsToSnapshot</i>  <i>If set to <code>true</code>, tags are copied to any snapshot of the DB cluster that is created.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterCreateTime</i> Specifies the time when the DB cluster was created, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloneGroupId</i> Identifies the clone group to which the DB cluster is associated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IAMDatabaseAuthenticationEnabled</i> True if mapping of Amazon Identity and Access Management (IAM) accounts to database accounts is enabled, and otherwise false.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociatedRoles</i> Provides a list of the Amazon Identity and Access Management (IAM) roles that are associated with the DB cluster. IAM roles that are associated with a DB cluster grant permission for the DB cluster to access other Amazon services on your behalf.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterArn</i> The Amazon Resource Name (ARN) for the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DbClusterResourceId</i> The Amazon Region-unique, immutable identifier for the DB cluster. This identifier is found in Amazon CloudTrail log entries whenever the Amazon KMS key for the DB cluster is accessed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> If <code>StorageEncrypted</code> is true, the Amazon KMS key identifier for the encrypted DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageEncrypted</i> Specifies whether the DB cluster is encrypted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HostedZoneId</i> Specifies the ID that Amazon Route 53 assigns when you create a hosted zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcSecurityGroups</i> Provides a list of VPC security groups that the DB cluster belongs to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterMembers</i> Provides the list of instances that make up the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadReplicaIdentifiers</i> Contains one or more identifiers of the Read Replicas associated with this DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationSourceIdentifier</i> Not supported by Neptune.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i> Specifies the weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredBackupWindow</i> Specifies the daily time range during which automated backups are created if automated backups are enabled, as determined by the <code>BackupRetentionPeriod</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterOptionGroupMemberships</i> Not supported by Neptune.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUsername</i> Not supported by Neptune.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Specifies the port that the database engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestRestorableTime</i> Specifies the latest time to which a database can be restored with point-in-time restore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> Indicates the database engine version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> Provides the name of the database engine to be used for this DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiAZ</i> Specifies whether the DB cluster has instances in multiple Availability Zones.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReaderEndpoint</i> The reader endpoint for the DB cluster. The reader endpoint for a DB cluster load-balances connections across the Read Replicas that are available in a DB cluster. As clients request new connections to the reader endpoint, Neptune distributes the connection requests among the Read Replicas in the DB cluster. This functionality can help balance your read workload across multiple Read Replicas in your DB cluster. If a failover occurs, and the Read Replica that you are connected to is promoted to be the primary instance, your connection is dropped. To continue sending your read workload to other Read Replicas in the cluster, you can then reconnect to the reader endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i> Specifies the connection endpoint for the primary instance of the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EarliestRestorableTime</i> Specifies the earliest time to which a database can be restored with point-in-time restore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PercentProgress</i> Specifies the progress of the operation as a percentage.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Specifies the current state of this DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroup</i> Specifies information on the subnet group associated with the DB cluster, including the name, description, and subnets in the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterParameterGroup</i> Specifies the name of the DB cluster parameter group for the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterIdentifier</i> Contains a user-supplied DB cluster identifier. This identifier is the unique key that identifies a DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> Contains the name of the initial database of this DB cluster that was provided at create time, if one was specified when the DB cluster was created. This same name is returned for the life of the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CharacterSetName</i> Not supported by Neptune.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupRetentionPeriod</i> Specifies the number of days for which automatic DB snapshots are retained.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZones</i> Provides the list of EC2 Availability Zones that instances in the DB cluster can be created in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllocatedStorage</i>  <code>AllocatedStorage</code> always returns 1, because Neptune DB cluster storage size is not fixed, but instead automatically adjusts as needed.<br/>        """
        pass





class NetworkFirewall(BaseClient):
    r"""This is the API Reference for AWS Network Firewall. This guide is for developers who need detailed information about the Network Firewall API actions, data types, and errors.  <ul> <li> The REST API requires you to handle connection details, such as calculating signatures, handling request retries, and error handling. For general information about using the AWS REST APIs, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-apis.html">AWS APIs</a>.  To access Network Firewall using the REST API endpoint: <code>https://network-firewall.&lt;region&gt;.amazonaws.com </code>  </li> <li> Alternatively, you can use one of the AWS SDKs to access an API that's tailored to the programming language or platform that you're using. For more information, see <a href="http://aws.amazon.com/tools/#SDKs">AWS SDKs</a>. </li> <li> For descriptions of Network Firewall features, including and step-by-step instructions on how to use them through the Network Firewall console, see the <a href="https://docs.aws.amazon.com/network-firewall/latest/developerguide/">Network Firewall Developer Guide</a>. </li> </ul> Network Firewall is a stateful, managed, network firewall and intrusion detection and prevention service for Amazon Virtual Private Cloud (Amazon VPC). With Network Firewall, you can filter traffic at the perimeter of your VPC. This includes filtering traffic going to and coming from an internet gateway, NAT gateway, or over VPN or AWS Direct Connect. Network Firewall uses rules that are compatible with Suricata, a free, open source intrusion detection system (IDS) engine. For information about Suricata, see the <a href="https://suricata-ids.org/">Suricata website</a>. You can use Network Firewall to monitor and protect your VPC traffic in a number of ways. The following are just a few examples:  <ul> <li> Allow domains or IP addresses for known AWS service endpoints, such as Amazon S3, and block all other forms of traffic. </li> <li> Use custom lists of known bad domains to limit the types of domain names that your applications can access. </li> <li> Perform deep packet inspection on traffic entering or leaving your VPC. </li> <li> Use stateful protocol detection to filter protocols like HTTPS, regardless of the port used. </li> </ul> To enable Network Firewall for your VPCs, you perform steps in both Amazon VPC and in Network Firewall. For information about using Amazon VPC, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/">Amazon VPC User Guide</a>. To start using Network Firewall, do the following:  <ol> <li> (Optional) If you don't already have a VPC that you want to protect, create it in Amazon VPC.  </li> <li> In Amazon VPC, in each Availability Zone where you want to have a firewall endpoint, create a subnet for the sole use of Network Firewall.  </li> <li> In Network Firewall, create stateless and stateful rule groups, to define the components of the network traffic filtering behavior that you want your firewall to have.  </li> <li> In Network Firewall, create a firewall policy that uses your rule groups and specifies additional default traffic filtering behavior.  </li> <li> In Network Firewall, create a firewall and specify your new firewall policy and VPC subnets. Network Firewall creates a firewall endpoint in each subnet that you specify, with the behavior that's defined in the firewall policy. </li> <li> In Amazon VPC, use ingress routing enhancements to route traffic through the new firewall endpoints. </li> </ol>"""


    class ListFirewallPoliciesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_firewall_policies` for valid parameters"""
            pass
    class ListFirewallsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_firewalls` for valid parameters"""
            pass
    class ListRuleGroupsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_rule_groups` for valid parameters"""
            pass
    class ListTagsForResourcePaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_tags_for_resource` for valid parameters"""
            pass


    class AssociateFirewallPolicyRequest(Mapping):
        pass
    
    class AssociateFirewallPolicyResponse(Mapping):
        pass
    
    class AssociateSubnetsRequest(Mapping):
        pass
    
    class AssociateSubnetsResponse(Mapping):
        pass
    
    class SubnetMapping(Mapping):
        pass
    
    class CreateFirewallRequest(Mapping):
        pass
    
    class CreateFirewallResponse(Mapping):
        pass
    
    class Boolean(object):
        pass
    
    class Tag(Mapping):
        pass
    
    class CreateFirewallPolicyRequest(Mapping):
        pass
    
    class CreateFirewallPolicyResponse(Mapping):
        pass
    
    class FirewallPolicy(Mapping):
        pass
    
    class CreateRuleGroupRequest(Mapping):
        pass
    
    class CreateRuleGroupResponse(Mapping):
        pass
    
    class RuleGroup(Mapping):
        pass
    
    class DeleteFirewallRequest(Mapping):
        pass
    
    class DeleteFirewallResponse(Mapping):
        pass
    
    class DeleteFirewallPolicyRequest(Mapping):
        pass
    
    class DeleteFirewallPolicyResponse(Mapping):
        pass
    
    class DeleteResourcePolicyRequest(Mapping):
        pass
    
    class DeleteResourcePolicyResponse(Mapping):
        pass
    
    class DeleteRuleGroupRequest(Mapping):
        pass
    
    class DeleteRuleGroupResponse(Mapping):
        pass
    
    class DescribeFirewallRequest(Mapping):
        pass
    
    class DescribeFirewallResponse(Mapping):
        pass
    
    class DescribeFirewallPolicyRequest(Mapping):
        pass
    
    class DescribeFirewallPolicyResponse(Mapping):
        pass
    
    class DescribeLoggingConfigurationRequest(Mapping):
        pass
    
    class DescribeLoggingConfigurationResponse(Mapping):
        pass
    
    class DescribeResourcePolicyRequest(Mapping):
        pass
    
    class DescribeResourcePolicyResponse(Mapping):
        pass
    
    class DescribeRuleGroupRequest(Mapping):
        pass
    
    class DescribeRuleGroupResponse(Mapping):
        pass
    
    class DisassociateSubnetsRequest(Mapping):
        pass
    
    class DisassociateSubnetsResponse(Mapping):
        pass
    
    class AzSubnet(object):
        pass
    
    class ListFirewallPoliciesRequest(Mapping):
        pass
    
    class ListFirewallPoliciesResponse(Mapping):
        pass
    
    class ListFirewallsRequest(Mapping):
        pass
    
    class ListFirewallsResponse(Mapping):
        pass
    
    class VpcId(object):
        pass
    
    class ListRuleGroupsRequest(Mapping):
        pass
    
    class ListRuleGroupsResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class PutResourcePolicyRequest(Mapping):
        pass
    
    class PutResourcePolicyResponse(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateFirewallDeleteProtectionRequest(Mapping):
        pass
    
    class UpdateFirewallDeleteProtectionResponse(Mapping):
        pass
    
    class UpdateFirewallDescriptionRequest(Mapping):
        pass
    
    class UpdateFirewallDescriptionResponse(Mapping):
        pass
    
    class UpdateFirewallPolicyRequest(Mapping):
        pass
    
    class UpdateFirewallPolicyResponse(Mapping):
        pass
    
    class UpdateFirewallPolicyChangeProtectionRequest(Mapping):
        pass
    
    class UpdateFirewallPolicyChangeProtectionResponse(Mapping):
        pass
    
    class UpdateLoggingConfigurationRequest(Mapping):
        pass
    
    class UpdateLoggingConfigurationResponse(Mapping):
        pass
    
    class LoggingConfiguration(Mapping):
        pass
    
    class UpdateRuleGroupRequest(Mapping):
        pass
    
    class UpdateRuleGroupResponse(Mapping):
        pass
    
    class UpdateSubnetChangeProtectionRequest(Mapping):
        pass
    
    class UpdateSubnetChangeProtectionResponse(Mapping):
        pass
    
    def associate_firewall_policy(self, FirewallPolicyArn: str, UpdateToken: str=None, FirewallArn: str=None, FirewallName: str=None) -> AssociateFirewallPolicyResponse:
        r"""Associates a <a>FirewallPolicy</a> to a <a>Firewall</a>.  A firewall policy defines how to monitor and manage your VPC network traffic, using a collection of inspection rule groups and other settings. Each firewall requires one firewall policy association, and you can use the same firewall policy for multiple firewalls. 

        :param self:
        :param FirewallPolicyArn:  The Amazon Resource Name (ARN) of the firewall policy.<br/>FirewallName:  The descriptive name of the firewall. You can't change the name of a firewall after you create it. You must specify the ARN or the name, and you can specify both. <br/>FirewallArn:  The Amazon Resource Name (ARN) of the firewall. You must specify the ARN or the name, and you can specify both. <br/>UpdateToken:  An optional token that you can use for optimistic locking. Network Firewall returns a token to your requests that access the firewall. The token marks the state of the firewall resource at the time of the request.  To make an unconditional change to the firewall, omit the token in your update request. Without the token, Network Firewall performs your updates regardless of whether the firewall has changed since you last retrieved it. To make a conditional change to the firewall, provide the token in your update request. Network Firewall uses the token to ensure that the firewall hasn't changed since you last retrieved it. If it has changed, the operation fails with an <code>InvalidTokenException</code>. If this happens, retrieve the firewall again to get a current copy of it with a new token. Reapply your changes as needed, then try the operation again using the new token. <br/>
        :return: UpdateToken:  An optional token that you can use for optimistic locking. Network Firewall returns a token to your requests that access the firewall. The token marks the state of the firewall resource at the time of the request.  To make an unconditional change to the firewall, omit the token in your update request. Without the token, Network Firewall performs your updates regardless of whether the firewall has changed since you last retrieved it. To make a conditional change to the firewall, provide the token in your update request. Network Firewall uses the token to ensure that the firewall hasn't changed since you last retrieved it. If it has changed, the operation fails with an <code>InvalidTokenException</code>. If this happens, retrieve the firewall again to get a current copy of it with a new token. Reapply your changes as needed, then try the operation again using the new token. <br/>FirewallPolicyArn:  The Amazon Resource Name (ARN) of the firewall policy.<br/>FirewallName:  The descriptive name of the firewall. You can't change the name of a firewall after you create it.<br/>FirewallArn:  The Amazon Resource Name (ARN) of the firewall.<br/>        """
        pass

    def associate_subnets(self, SubnetMappings: List[SubnetMapping], UpdateToken: str=None, FirewallArn: str=None, FirewallName: str=None) -> AssociateSubnetsResponse:
        r"""Associates the specified subnets in the Amazon VPC to the firewall. You can specify one subnet for each of the Availability Zones that the VPC spans.  This request creates an AWS Network Firewall firewall endpoint in each of the subnets. To enable the firewall's protections, you must also modify the VPC's route tables for each subnet's Availability Zone, to redirect the traffic that's coming into and going out of the zone through the firewall endpoint. 

        :param self:
        :param SubnetMappings:  The IDs of the subnets that you want to associate with the firewall. <br/>FirewallName:  The descriptive name of the firewall. You can't change the name of a firewall after you create it. You must specify the ARN or the name, and you can specify both. <br/>FirewallArn:  The Amazon Resource Name (ARN) of the firewall. You must specify the ARN or the name, and you can specify both. <br/>UpdateToken:  An optional token that you can use for optimistic locking. Network Firewall returns a token to your requests that access the firewall. The token marks the state of the firewall resource at the time of the request.  To make an unconditional change to the firewall, omit the token in your update request. Without the token, Network Firewall performs your updates regardless of whether the firewall has changed since you last retrieved it. To make a conditional change to the firewall, provide the token in your update request. Network Firewall uses the token to ensure that the firewall hasn't changed since you last retrieved it. If it has changed, the operation fails with an <code>InvalidTokenException</code>. If this happens, retrieve the firewall again to get a current copy of it with a new token. Reapply your changes as needed, then try the operation again using the new token. <br/>
        :return: UpdateToken:  An optional token that you can use for optimistic locking. Network Firewall returns a token to your requests that access the firewall. The token marks the state of the firewall resource at the time of the request.  To make an unconditional change to the firewall, omit the token in your update request. Without the token, Network Firewall performs your updates regardless of whether the firewall has changed since you last retrieved it. To make a conditional change to the firewall, provide the token in your update request. Network Firewall uses the token to ensure that the firewall hasn't changed since you last retrieved it. If it has changed, the operation fails with an <code>InvalidTokenException</code>. If this happens, retrieve the firewall again to get a current copy of it with a new token. Reapply your changes as needed, then try the operation again using the new token. <br/>SubnetMappings:  The IDs of the subnets that are associated with the firewall. <br/>FirewallName:  The descriptive name of the firewall. You can't change the name of a firewall after you create it.<br/>FirewallArn:  The Amazon Resource Name (ARN) of the firewall.<br/>        """
        pass

    def create_firewall(self, SubnetMappings: List[SubnetMapping], VpcId: str, FirewallPolicyArn: str, FirewallName: str, DeleteProtection: Boolean=None, SubnetChangeProtection: Boolean=None, FirewallPolicyChangeProtection: Boolean=None, Description: str=None, Tags: List[Tag]=None) -> CreateFirewallResponse:
        r"""Creates an AWS Network Firewall <a>Firewall</a> and accompanying <a>FirewallStatus</a> for a VPC.  The firewall defines the configuration settings for an AWS Network Firewall firewall. The settings that you can define at creation include the firewall policy, the subnets in your VPC to use for the firewall endpoints, and any tags that are attached to the firewall AWS resource.  After you create a firewall, you can provide additional settings, like the logging configuration.  To update the settings for a firewall, you use the operations that apply to the settings themselves, for example <a>UpdateLoggingConfiguration</a>, <a>AssociateSubnets</a>, and <a>UpdateFirewallDeleteProtection</a>.  To manage a firewall's tags, use the standard AWS resource tagging operations, <a>ListTagsForResource</a>, <a>TagResource</a>, and <a>UntagResource</a>. To retrieve information about firewalls, use <a>ListFirewalls</a> and <a>DescribeFirewall</a>.

        :param self:
        :param Tags:  The key:value pairs to associate with the resource.<br/>Description:  A description of the firewall.<br/>FirewallPolicyChangeProtection:  A setting indicating whether the firewall is protected against a change to the firewall policy association. Use this setting to protect against accidentally modifying the firewall policy for a firewall that is in use. When you create a firewall, the operation initializes this setting to <code>TRUE</code>.<br/>SubnetChangeProtection:  A setting indicating whether the firewall is protected against changes to the subnet associations. Use this setting to protect against accidentally modifying the subnet associations for a firewall that is in use. When you create a firewall, the operation initializes this setting to <code>TRUE</code>.<br/>DeleteProtection:  A flag indicating whether it is possible to delete the firewall. A setting of <code>TRUE</code> indicates that the firewall is protected against deletion. Use this setting to protect against accidentally deleting a firewall that is in use. When you create a firewall, the operation initializes this flag to <code>TRUE</code>.<br/>SubnetMappings:  The public subnets to use for your Network Firewall firewalls. Each subnet must belong to a different Availability Zone in the VPC. Network Firewall creates a firewall endpoint in each subnet. <br/>VpcId:  The unique identifier of the VPC where Network Firewall should create the firewall.  You can't change this setting after you create the firewall. <br/>FirewallPolicyArn:  The Amazon Resource Name (ARN) of the <a>FirewallPolicy</a> that you want to use for the firewall.<br/>FirewallName:  The descriptive name of the firewall. You can't change the name of a firewall after you create it.<br/>
        :return: FirewallStatus:  Detailed information about the current status of a <a>Firewall</a>. You can retrieve this for a firewall by calling <a>DescribeFirewall</a> and providing the firewall name and ARN.:<br/>Firewall:  The configuration settings for the firewall. These settings include the firewall policy and the subnets in your VPC to use for the firewall endpoints. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> <p/><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FirewallId</i> The unique identifier for the firewall. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A description of the firewall.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FirewallPolicyChangeProtection</i> A setting indicating whether the firewall is protected against a change to the firewall policy association. Use this setting to protect against accidentally modifying the firewall policy for a firewall that is in use. When you create a firewall, the operation initializes this setting to <code>TRUE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetChangeProtection</i> A setting indicating whether the firewall is protected against changes to the subnet associations. Use this setting to protect against accidentally modifying the subnet associations for a firewall that is in use. When you create a firewall, the operation initializes this setting to <code>TRUE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeleteProtection</i> A flag indicating whether it is possible to delete the firewall. A setting of <code>TRUE</code> indicates that the firewall is protected against deletion. Use this setting to protect against accidentally deleting a firewall that is in use. When you create a firewall, the operation initializes this flag to <code>TRUE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetMappings</i> The public subnets that Network Firewall is using for the firewall. Each subnet must belong to a different Availability Zone. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The unique identifier of the VPC where the firewall is in use. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FirewallPolicyArn</i> The Amazon Resource Name (ARN) of the firewall policy. The relationship of firewall to firewall policy is many to one. Each firewall requires one firewall policy association, and you can use the same firewall policy for multiple firewalls. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FirewallArn</i> The Amazon Resource Name (ARN) of the firewall.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FirewallName</i> The descriptive name of the firewall. You can't change the name of a firewall after you create it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SyncStates</i> The subnets that you've configured for use by the Network Firewall firewall. This contains one array element per Availability Zone where you've configured a subnet. These objects provide details of the information that is summarized in the <code>ConfigurationSyncStateSummary</code> and <code>Status</code>, broken down by zone and configuration object. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConfigurationSyncStateSummary</i> The configuration sync state for the firewall. This summarizes the sync states reported in the <code>Config</code> settings for all of the Availability Zones where you have configured the firewall.  When you create a firewall or update its configuration, for example by adding a rule group to its firewall policy, Network Firewall distributes the configuration changes to all zones where the firewall is in use. This summary indicates whether the configuration changes have been applied everywhere.  This status must be <code>IN_SYNC</code> for the firewall to be ready for use, but it doesn't indicate that the firewall is ready. The <code>Status</code> setting indicates firewall readiness.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The readiness of the configured firewall to handle network traffic across all of the Availability Zones where you've configured it. This setting is <code>READY</code> only when the <code>ConfigurationSyncStateSummary</code> value is <code>IN_SYNC</code> and the <code>Attachment</code> <code>Status</code> values for all of the configured subnets are <code>READY</code>. <br/>        """
        pass

    def create_firewall_policy(self, FirewallPolicy: FirewallPolicy, FirewallPolicyName: str, Description: str=None, Tags: List[Tag]=None, DryRun: Boolean=None) -> CreateFirewallPolicyResponse:
        r"""Creates the firewall policy for the firewall according to the specifications.  An AWS Network Firewall firewall policy defines the behavior of a firewall, in a collection of stateless and stateful rule groups and other settings. You can use one firewall policy for multiple firewalls. 

        :param self:
        :param DryRun:  Indicates whether you want Network Firewall to just check the validity of the request, rather than run the request.  If set to <code>TRUE</code>, Network Firewall checks whether the request can run successfully, but doesn't actually make the requested changes. The call returns the value that the request would return if you ran it with dry run set to <code>FALSE</code>, but doesn't make additions or changes to your resources. This option allows you to make sure that you have the required permissions to run the request and that your request parameters are valid.  If set to <code>FALSE</code>, Network Firewall makes the requested changes to your resources. <br/>Tags:  The key:value pairs to associate with the resource.<br/>Description:  A description of the firewall policy.<br/>FirewallPolicy:  The rule groups and policy actions to use in the firewall policy.:<br/>FirewallPolicyName:  The descriptive name of the firewall policy. You can't change the name of a firewall policy after you create it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatefulRuleGroupReferences</i> References to the stateless rule groups that are used in the policy. These define the inspection criteria in stateful rules. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatelessCustomActions</i> The custom action definitions that are available for use in the firewall policy's <code>StatelessDefaultActions</code> setting. You name each custom action that you define, and then you can use it by name in your default actions specifications.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatelessFragmentDefaultActions</i> The actions to take on a fragmented UDP packet if it doesn't match any of the stateless rules in the policy. Network Firewall only manages UDP packet fragments and silently drops packet fragments for other protocols. If you want non-matching fragmented UDP packets to be forwarded for stateful inspection, specify <code>aws:forward_to_sfe</code>.  You must specify one of the standard actions: <code>aws:pass</code>, <code>aws:drop</code>, or <code>aws:forward_to_sfe</code>. In addition, you can specify custom actions that are compatible with your standard section choice. For example, you could specify <code>["aws:pass"]</code> or you could specify <code>["aws:pass", “customActionName”]</code>. For information about compatibility, see the custom action descriptions under <a>CustomAction</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatelessDefaultActions</i> The actions to take on a packet if it doesn't match any of the stateless rules in the policy. If you want non-matching packets to be forwarded for stateful inspection, specify <code>aws:forward_to_sfe</code>.  You must specify one of the standard actions: <code>aws:pass</code>, <code>aws:drop</code>, or <code>aws:forward_to_sfe</code>. In addition, you can specify custom actions that are compatible with your standard section choice. For example, you could specify <code>["aws:pass"]</code> or you could specify <code>["aws:pass", “customActionName”]</code>. For information about compatibility, see the custom action descriptions under <a>CustomAction</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatelessRuleGroupReferences</i> References to the stateless rule groups that are used in the policy. These define the matching criteria in stateless rules. <br/>
        :return: FirewallPolicyResponse:  The high-level properties of a firewall policy. This, along with the <a>FirewallPolicy</a>, define the policy. You can retrieve all objects for a firewall policy by calling <a>DescribeFirewallPolicy</a>. :<br/>UpdateToken:  A token used for optimistic locking. Network Firewall returns a token to your requests that access the firewall policy. The token marks the state of the policy resource at the time of the request.  To make changes to the policy, you provide the token in your request. Network Firewall uses the token to ensure that the policy hasn't changed since you last retrieved it. If it has changed, the operation fails with an <code>InvalidTokenException</code>. If this happens, retrieve the firewall policy again to get a current copy of it with current token. Reapply your changes as needed, then try the operation again using the new token. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The key:value pairs to associate with the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FirewallPolicyStatus</i> The current status of the firewall policy. You can retrieve this for a firewall policy by calling <a>DescribeFirewallPolicy</a> and providing the firewall policy's name or ARN.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A description of the firewall policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FirewallPolicyId</i> The unique identifier for the firewall policy. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FirewallPolicyArn</i> The Amazon Resource Name (ARN) of the firewall policy. <note> If this response is for a create request that had <code>DryRun</code> set to <code>TRUE</code>, then this ARN is a placeholder that isn't attached to a valid resource. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FirewallPolicyName</i> The descriptive name of the firewall policy. You can't change the name of a firewall policy after you create it.<br/>        """
        pass

    def create_rule_group(self, Capacity: int, Type: str, RuleGroupName: str, RuleGroup: RuleGroup=None, Rules: str=None, Description: str=None, Tags: List[Tag]=None, DryRun: Boolean=None) -> CreateRuleGroupResponse:
        r"""Creates the specified stateless or stateful rule group, which includes the rules for network traffic inspection, a capacity setting, and tags.  You provide your rule group specification in your request using either <code>RuleGroup</code> or <code>Rules</code>.

        :param self:
        :param DryRun:  Indicates whether you want Network Firewall to just check the validity of the request, rather than run the request.  If set to <code>TRUE</code>, Network Firewall checks whether the request can run successfully, but doesn't actually make the requested changes. The call returns the value that the request would return if you ran it with dry run set to <code>FALSE</code>, but doesn't make additions or changes to your resources. This option allows you to make sure that you have the required permissions to run the request and that your request parameters are valid.  If set to <code>FALSE</code>, Network Firewall makes the requested changes to your resources. <br/>Tags:  The key:value pairs to associate with the resource.<br/>Capacity:  The maximum operating resources that this rule group can use. Rule group capacity is fixed at creation. When you update a rule group, you are limited to this capacity. When you reference a rule group from a firewall policy, Network Firewall reserves this capacity for the rule group.  You can retrieve the capacity that would be required for a rule group before you create the rule group by calling <a>CreateRuleGroup</a> with <code>DryRun</code> set to <code>TRUE</code>.  <note> You can't change or exceed this capacity when you update the rule group, so leave room for your rule group to grow.  </note>  <b>Capacity for a stateless rule group</b>  For a stateless rule group, the capacity required is the sum of the capacity requirements of the individual rules that you expect to have in the rule group.  To calculate the capacity requirement of a single rule, multiply the capacity requirement values of each of the rule's match settings: <ul> <li> A match setting with no criteria specified has a value of 1.  </li> <li> A match setting with <code>Any</code> specified has a value of 1.  </li> <li> All other match settings have a value equal to the number of elements provided in the setting. For example, a protocol setting ["UDP"] and a source setting ["10.0.0.0/24"] each have a value of 1. A protocol setting ["UDP","TCP"] has a value of 2. A source setting ["10.0.0.0/24","10.0.0.1/24","10.0.0.2/24"] has a value of 3.  </li> </ul> A rule with no criteria specified in any of its match settings has a capacity requirement of 1. A rule with protocol setting ["UDP","TCP"], source setting ["10.0.0.0/24","10.0.0.1/24","10.0.0.2/24"], and a single specification or no specification for each of the other match settings has a capacity requirement of 6.   <b>Capacity for a stateful rule group</b>  For a stateful rule group, the minimum capacity required is the number of individual rules that you expect to have in the rule group. <br/>Description:  A description of the rule group. <br/>Type:  Indicates whether the rule group is stateless or stateful. If the rule group is stateless, it contains stateless rules. If it is stateful, it contains stateful rules. <br/>Rules:  A string containing stateful rule group rules specifications in Suricata flat format, with one rule per line. Use this to import your existing Suricata compatible rule groups.  <note> You must provide either this rules setting or a populated <code>RuleGroup</code> setting, but not both.  </note> You can provide your rule group specification in Suricata flat format through this setting when you create or update your rule group. The call response returns a <a>RuleGroup</a> object that Network Firewall has populated from your string. <br/>RuleGroup:  An object that defines the rule group rules.  <note> You must provide either this rule group setting or a <code>Rules</code> setting, but not both.  </note>:<br/>RuleGroupName:  The descriptive name of the rule group. You can't change the name of a rule group after you create it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RulesSource</i> The stateful rules or stateless rules for the rule group. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RulesSource</b>: The stateful rules or stateless rules for the rule group. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RuleVariables</i> Settings that are available for use in the rules in the rule group. You can only use these for stateful rule groups. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RuleVariables</b>: Settings that are available for use in the rules in the rule group. You can only use these for stateful rule groups. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PortSets</i> A list of port ranges. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IPSets</i> A list of IP addresses and address ranges, in CIDR notation. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RulesString</i> Stateful inspection criteria, provided in Suricata compatible intrusion prevention system (IPS) rules. Suricata is an open-source network IPS that includes a standard rule-based language for network traffic inspection. These rules contain the inspection criteria and the action to take for traffic that matches the criteria, so this type of rule group doesn't have a separate action setting.<br/>Stateful inspection criteria for a domain list rule group. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RulesSourceList</b>: Stateful inspection criteria for a domain list rule group. 
        :return: RuleGroupResponse:  The high-level properties of a rule group. This, along with the <a>RuleGroup</a>, define the rule group. You can retrieve all objects for a rule group by calling <a>DescribeRuleGroup</a>. :<br/>UpdateToken:  A token used for optimistic locking. Network Firewall returns a token to your requests that access the rule group. The token marks the state of the rule group resource at the time of the request.  To make changes to the rule group, you provide the token in your request. Network Firewall uses the token to ensure that the rule group hasn't changed since you last retrieved it. If it has changed, the operation fails with an <code>InvalidTokenException</code>. If this happens, retrieve the rule group again to get a current copy of it with a current token. Reapply your changes as needed, then try the operation again using the new token. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The key:value pairs to associate with the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RuleGroupStatus</i> Detailed information about the current status of a rule group. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Capacity</i> The maximum operating resources that this rule group can use. Rule group capacity is fixed at creation. When you update a rule group, you are limited to this capacity. When you reference a rule group from a firewall policy, Network Firewall reserves this capacity for the rule group.  You can retrieve the capacity that would be required for a rule group before you create the rule group by calling <a>CreateRuleGroup</a> with <code>DryRun</code> set to <code>TRUE</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> Indicates whether the rule group is stateless or stateful. If the rule group is stateless, it contains stateless rules. If it is stateful, it contains stateful rules. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A description of the rule group. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RuleGroupId</i> The unique identifier for the rule group. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RuleGroupName</i> The descriptive name of the rule group. You can't change the name of a rule group after you create it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RuleGroupArn</i> The Amazon Resource Name (ARN) of the rule group. <note> If this response is for a create request that had <code>DryRun</code> set to <code>TRUE</code>, then this ARN is a placeholder that isn't attached to a valid resource. </note><br/>        """
        pass

    def delete_firewall(self, FirewallName: str=None, FirewallArn: str=None) -> DeleteFirewallResponse:
        r"""Deletes the specified <a>Firewall</a> and its <a>FirewallStatus</a>. This operation requires the firewall's <code>DeleteProtection</code> flag to be <code>FALSE</code>. You can't revert this operation.  You can check whether a firewall is in use by reviewing the route tables for the Availability Zones where you have firewall subnet mappings. Retrieve the subnet mappings by calling <a>DescribeFirewall</a>. You define and update the route tables through Amazon VPC. As needed, update the route tables for the zones to remove the firewall endpoints. When the route tables no longer use the firewall endpoints, you can remove the firewall safely. To delete a firewall, remove the delete protection if you need to using <a>UpdateFirewallDeleteProtection</a>, then delete the firewall by calling <a>DeleteFirewall</a>. 

        :param self:
        :param FirewallArn:  The Amazon Resource Name (ARN) of the firewall. You must specify the ARN or the name, and you can specify both. <br/>FirewallName:  The descriptive name of the firewall. You can't change the name of a firewall after you create it. You must specify the ARN or the name, and you can specify both. <br/>
        :return: FirewallStatus:  Detailed information about the current status of a <a>Firewall</a>. You can retrieve this for a firewall by calling <a>DescribeFirewall</a> and providing the firewall name and ARN.:<br/>Firewall:  The firewall defines the configuration settings for an AWS Network Firewall firewall. These settings include the firewall policy, the subnets in your VPC to use for the firewall endpoints, and any tags that are attached to the firewall AWS resource.  The status of the firewall, for example whether it's ready to filter network traffic, is provided in the corresponding <a>FirewallStatus</a>. You can retrieve both objects by calling <a>DescribeFirewall</a>.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> <p/><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FirewallId</i> The unique identifier for the firewall. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A description of the firewall.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FirewallPolicyChangeProtection</i> A setting indicating whether the firewall is protected against a change to the firewall policy association. Use this setting to protect against accidentally modifying the firewall policy for a firewall that is in use. When you create a firewall, the operation initializes this setting to <code>TRUE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetChangeProtection</i> A setting indicating whether the firewall is protected against changes to the subnet associations. Use this setting to protect against accidentally modifying the subnet associations for a firewall that is in use. When you create a firewall, the operation initializes this setting to <code>TRUE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeleteProtection</i> A flag indicating whether it is possible to delete the firewall. A setting of <code>TRUE</code> indicates that the firewall is protected against deletion. Use this setting to protect against accidentally deleting a firewall that is in use. When you create a firewall, the operation initializes this flag to <code>TRUE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetMappings</i> The public subnets that Network Firewall is using for the firewall. Each subnet must belong to a different Availability Zone. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The unique identifier of the VPC where the firewall is in use. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FirewallPolicyArn</i> The Amazon Resource Name (ARN) of the firewall policy. The relationship of firewall to firewall policy is many to one. Each firewall requires one firewall policy association, and you can use the same firewall policy for multiple firewalls. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FirewallArn</i> The Amazon Resource Name (ARN) of the firewall.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FirewallName</i> The descriptive name of the firewall. You can't change the name of a firewall after you create it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SyncStates</i> The subnets that you've configured for use by the Network Firewall firewall. This contains one array element per Availability Zone where you've configured a subnet. These objects provide details of the information that is summarized in the <code>ConfigurationSyncStateSummary</code> and <code>Status</code>, broken down by zone and configuration object. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConfigurationSyncStateSummary</i> The configuration sync state for the firewall. This summarizes the sync states reported in the <code>Config</code> settings for all of the Availability Zones where you have configured the firewall.  When you create a firewall or update its configuration, for example by adding a rule group to its firewall policy, Network Firewall distributes the configuration changes to all zones where the firewall is in use. This summary indicates whether the configuration changes have been applied everywhere.  This status must be <code>IN_SYNC</code> for the firewall to be ready for use, but it doesn't indicate that the firewall is ready. The <code>Status</code> setting indicates firewall readiness.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The readiness of the configured firewall to handle network traffic across all of the Availability Zones where you've configured it. This setting is <code>READY</code> only when the <code>ConfigurationSyncStateSummary</code> value is <code>IN_SYNC</code> and the <code>Attachment</code> <code>Status</code> values for all of the configured subnets are <code>READY</code>. <br/>        """
        pass

    def delete_firewall_policy(self, FirewallPolicyName: str=None, FirewallPolicyArn: str=None) -> DeleteFirewallPolicyResponse:
        r"""Deletes the specified <a>FirewallPolicy</a>. 

        :param self:
        :param FirewallPolicyArn:  The Amazon Resource Name (ARN) of the firewall policy. You must specify the ARN or the name, and you can specify both. <br/>FirewallPolicyName:  The descriptive name of the firewall policy. You can't change the name of a firewall policy after you create it. You must specify the ARN or the name, and you can specify both. <br/>
        :return: FirewallPolicyResponse:  The object containing the definition of the <a>FirewallPolicyResponse</a> that you asked to delete. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The key:value pairs to associate with the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FirewallPolicyStatus</i> The current status of the firewall policy. You can retrieve this for a firewall policy by calling <a>DescribeFirewallPolicy</a> and providing the firewall policy's name or ARN.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A description of the firewall policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FirewallPolicyId</i> The unique identifier for the firewall policy. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FirewallPolicyArn</i> The Amazon Resource Name (ARN) of the firewall policy. <note> If this response is for a create request that had <code>DryRun</code> set to <code>TRUE</code>, then this ARN is a placeholder that isn't attached to a valid resource. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FirewallPolicyName</i> The descriptive name of the firewall policy. You can't change the name of a firewall policy after you create it.<br/>        """
        pass

    def delete_resource_policy(self, ResourceArn: str) -> DeleteResourcePolicyResponse:
        r"""Deletes a resource policy that you created in a <a>PutResourcePolicy</a> request. 

        :param self:
        :param ResourceArn:  The Amazon Resource Name (ARN) of the rule group or firewall policy whose resource policy you want to delete. <br/>
        :return:         """
        pass

    def delete_rule_group(self, RuleGroupName: str=None, RuleGroupArn: str=None, Type: str=None) -> DeleteRuleGroupResponse:
        r"""Deletes the specified <a>RuleGroup</a>. 

        :param self:
        :param Type:  Indicates whether the rule group is stateless or stateful. If the rule group is stateless, it contains stateless rules. If it is stateful, it contains stateful rules.  <note> This setting is required for requests that do not include the <code>RuleGroupARN</code>. </note><br/>RuleGroupArn:  The Amazon Resource Name (ARN) of the rule group. You must specify the ARN or the name, and you can specify both. <br/>RuleGroupName:  The descriptive name of the rule group. You can't change the name of a rule group after you create it. You must specify the ARN or the name, and you can specify both. <br/>
        :return: RuleGroupResponse:  The high-level properties of a rule group. This, along with the <a>RuleGroup</a>, define the rule group. You can retrieve all objects for a rule group by calling <a>DescribeRuleGroup</a>. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The key:value pairs to associate with the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RuleGroupStatus</i> Detailed information about the current status of a rule group. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Capacity</i> The maximum operating resources that this rule group can use. Rule group capacity is fixed at creation. When you update a rule group, you are limited to this capacity. When you reference a rule group from a firewall policy, Network Firewall reserves this capacity for the rule group.  You can retrieve the capacity that would be required for a rule group before you create the rule group by calling <a>CreateRuleGroup</a> with <code>DryRun</code> set to <code>TRUE</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> Indicates whether the rule group is stateless or stateful. If the rule group is stateless, it contains stateless rules. If it is stateful, it contains stateful rules. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A description of the rule group. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RuleGroupId</i> The unique identifier for the rule group. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RuleGroupName</i> The descriptive name of the rule group. You can't change the name of a rule group after you create it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RuleGroupArn</i> The Amazon Resource Name (ARN) of the rule group. <note> If this response is for a create request that had <code>DryRun</code> set to <code>TRUE</code>, then this ARN is a placeholder that isn't attached to a valid resource. </note><br/>        """
        pass

    def describe_firewall(self, FirewallName: str=None, FirewallArn: str=None) -> DescribeFirewallResponse:
        r"""Returns the data objects for the specified firewall. 

        :param self:
        :param FirewallArn:  The Amazon Resource Name (ARN) of the firewall. You must specify the ARN or the name, and you can specify both. <br/>FirewallName:  The descriptive name of the firewall. You can't change the name of a firewall after you create it. You must specify the ARN or the name, and you can specify both. <br/>
        :return: FirewallStatus:  Detailed information about the current status of a <a>Firewall</a>. You can retrieve this for a firewall by calling <a>DescribeFirewall</a> and providing the firewall name and ARN.:<br/>Firewall:  The configuration settings for the firewall. These settings include the firewall policy and the subnets in your VPC to use for the firewall endpoints. :<br/>UpdateToken:  An optional token that you can use for optimistic locking. Network Firewall returns a token to your requests that access the firewall. The token marks the state of the firewall resource at the time of the request.  To make an unconditional change to the firewall, omit the token in your update request. Without the token, Network Firewall performs your updates regardless of whether the firewall has changed since you last retrieved it. To make a conditional change to the firewall, provide the token in your update request. Network Firewall uses the token to ensure that the firewall hasn't changed since you last retrieved it. If it has changed, the operation fails with an <code>InvalidTokenException</code>. If this happens, retrieve the firewall again to get a current copy of it with a new token. Reapply your changes as needed, then try the operation again using the new token. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> <p/><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FirewallId</i> The unique identifier for the firewall. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A description of the firewall.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FirewallPolicyChangeProtection</i> A setting indicating whether the firewall is protected against a change to the firewall policy association. Use this setting to protect against accidentally modifying the firewall policy for a firewall that is in use. When you create a firewall, the operation initializes this setting to <code>TRUE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetChangeProtection</i> A setting indicating whether the firewall is protected against changes to the subnet associations. Use this setting to protect against accidentally modifying the subnet associations for a firewall that is in use. When you create a firewall, the operation initializes this setting to <code>TRUE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeleteProtection</i> A flag indicating whether it is possible to delete the firewall. A setting of <code>TRUE</code> indicates that the firewall is protected against deletion. Use this setting to protect against accidentally deleting a firewall that is in use. When you create a firewall, the operation initializes this flag to <code>TRUE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetMappings</i> The public subnets that Network Firewall is using for the firewall. Each subnet must belong to a different Availability Zone. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The unique identifier of the VPC where the firewall is in use. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FirewallPolicyArn</i> The Amazon Resource Name (ARN) of the firewall policy. The relationship of firewall to firewall policy is many to one. Each firewall requires one firewall policy association, and you can use the same firewall policy for multiple firewalls. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FirewallArn</i> The Amazon Resource Name (ARN) of the firewall.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FirewallName</i> The descriptive name of the firewall. You can't change the name of a firewall after you create it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SyncStates</i> The subnets that you've configured for use by the Network Firewall firewall. This contains one array element per Availability Zone where you've configured a subnet. These objects provide details of the information that is summarized in the <code>ConfigurationSyncStateSummary</code> and <code>Status</code>, broken down by zone and configuration object. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConfigurationSyncStateSummary</i> The configuration sync state for the firewall. This summarizes the sync states reported in the <code>Config</code> settings for all of the Availability Zones where you have configured the firewall.  When you create a firewall or update its configuration, for example by adding a rule group to its firewall policy, Network Firewall distributes the configuration changes to all zones where the firewall is in use. This summary indicates whether the configuration changes have been applied everywhere.  This status must be <code>IN_SYNC</code> for the firewall to be ready for use, but it doesn't indicate that the firewall is ready. The <code>Status</code> setting indicates firewall readiness.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The readiness of the configured firewall to handle network traffic across all of the Availability Zones where you've configured it. This setting is <code>READY</code> only when the <code>ConfigurationSyncStateSummary</code> value is <code>IN_SYNC</code> and the <code>Attachment</code> <code>Status</code> values for all of the configured subnets are <code>READY</code>. <br/>        """
        pass

    def describe_firewall_policy(self, FirewallPolicyName: str=None, FirewallPolicyArn: str=None) -> DescribeFirewallPolicyResponse:
        r"""Returns the data objects for the specified firewall policy. 

        :param self:
        :param FirewallPolicyArn:  The Amazon Resource Name (ARN) of the firewall policy. You must specify the ARN or the name, and you can specify both. <br/>FirewallPolicyName:  The descriptive name of the firewall policy. You can't change the name of a firewall policy after you create it. You must specify the ARN or the name, and you can specify both. <br/>
        :return: FirewallPolicy:  The policy for the specified firewall policy. :<br/>FirewallPolicyResponse:  The high-level properties of a firewall policy. This, along with the <a>FirewallPolicy</a>, define the policy. You can retrieve all objects for a firewall policy by calling <a>DescribeFirewallPolicy</a>. :<br/>UpdateToken:  A token used for optimistic locking. Network Firewall returns a token to your requests that access the firewall policy. The token marks the state of the policy resource at the time of the request.  To make changes to the policy, you provide the token in your request. Network Firewall uses the token to ensure that the policy hasn't changed since you last retrieved it. If it has changed, the operation fails with an <code>InvalidTokenException</code>. If this happens, retrieve the firewall policy again to get a current copy of it with current token. Reapply your changes as needed, then try the operation again using the new token. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The key:value pairs to associate with the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FirewallPolicyStatus</i> The current status of the firewall policy. You can retrieve this for a firewall policy by calling <a>DescribeFirewallPolicy</a> and providing the firewall policy's name or ARN.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A description of the firewall policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FirewallPolicyId</i> The unique identifier for the firewall policy. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FirewallPolicyArn</i> The Amazon Resource Name (ARN) of the firewall policy. <note> If this response is for a create request that had <code>DryRun</code> set to <code>TRUE</code>, then this ARN is a placeholder that isn't attached to a valid resource. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FirewallPolicyName</i> The descriptive name of the firewall policy. You can't change the name of a firewall policy after you create it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatefulRuleGroupReferences</i> References to the stateless rule groups that are used in the policy. These define the inspection criteria in stateful rules. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatelessCustomActions</i> The custom action definitions that are available for use in the firewall policy's <code>StatelessDefaultActions</code> setting. You name each custom action that you define, and then you can use it by name in your default actions specifications.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatelessFragmentDefaultActions</i> The actions to take on a fragmented UDP packet if it doesn't match any of the stateless rules in the policy. Network Firewall only manages UDP packet fragments and silently drops packet fragments for other protocols. If you want non-matching fragmented UDP packets to be forwarded for stateful inspection, specify <code>aws:forward_to_sfe</code>.  You must specify one of the standard actions: <code>aws:pass</code>, <code>aws:drop</code>, or <code>aws:forward_to_sfe</code>. In addition, you can specify custom actions that are compatible with your standard section choice. For example, you could specify <code>["aws:pass"]</code> or you could specify <code>["aws:pass", “customActionName”]</code>. For information about compatibility, see the custom action descriptions under <a>CustomAction</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatelessDefaultActions</i> The actions to take on a packet if it doesn't match any of the stateless rules in the policy. If you want non-matching packets to be forwarded for stateful inspection, specify <code>aws:forward_to_sfe</code>.  You must specify one of the standard actions: <code>aws:pass</code>, <code>aws:drop</code>, or <code>aws:forward_to_sfe</code>. In addition, you can specify custom actions that are compatible with your standard section choice. For example, you could specify <code>["aws:pass"]</code> or you could specify <code>["aws:pass", “customActionName”]</code>. For information about compatibility, see the custom action descriptions under <a>CustomAction</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatelessRuleGroupReferences</i> References to the stateless rule groups that are used in the policy. These define the matching criteria in stateless rules. <br/>        """
        pass

    def describe_logging_configuration(self, FirewallArn: str=None, FirewallName: str=None) -> DescribeLoggingConfigurationResponse:
        r"""Returns the logging configuration for the specified firewall. 

        :param self:
        :param FirewallName:  The descriptive name of the firewall. You can't change the name of a firewall after you create it. You must specify the ARN or the name, and you can specify both. <br/>FirewallArn:  The Amazon Resource Name (ARN) of the firewall. You must specify the ARN or the name, and you can specify both. <br/>
        :return: LoggingConfiguration:  Defines how AWS Network Firewall performs logging for a <a>Firewall</a>. :<br/>FirewallArn:  The Amazon Resource Name (ARN) of the firewall.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogDestinationConfigs</i> Defines the logging destinations for the logs for a firewall. Network Firewall generates logs for stateful rule groups. <br/>        """
        pass

    def describe_resource_policy(self, ResourceArn: str) -> DescribeResourcePolicyResponse:
        r"""Retrieves a resource policy that you created in a <a>PutResourcePolicy</a> request. 

        :param self:
        :param ResourceArn:  The Amazon Resource Name (ARN) of the rule group or firewall policy whose resource policy you want to retrieve. <br/>
        :return: Policy:  The AWS Identity and Access Management policy for the resource. <br/>        """
        pass

    def describe_rule_group(self, RuleGroupName: str=None, RuleGroupArn: str=None, Type: str=None) -> DescribeRuleGroupResponse:
        r"""Returns the data objects for the specified rule group. 

        :param self:
        :param Type:  Indicates whether the rule group is stateless or stateful. If the rule group is stateless, it contains stateless rules. If it is stateful, it contains stateful rules.  <note> This setting is required for requests that do not include the <code>RuleGroupARN</code>. </note><br/>RuleGroupArn:  The Amazon Resource Name (ARN) of the rule group. You must specify the ARN or the name, and you can specify both. <br/>RuleGroupName:  The descriptive name of the rule group. You can't change the name of a rule group after you create it. You must specify the ARN or the name, and you can specify both. <br/>
        :return: RuleGroupResponse:  The high-level properties of a rule group. This, along with the <a>RuleGroup</a>, define the rule group. You can retrieve all objects for a rule group by calling <a>DescribeRuleGroup</a>. :<br/>RuleGroup:  The object that defines the rules in a rule group. This, along with <a>RuleGroupResponse</a>, define the rule group. You can retrieve all objects for a rule group by calling <a>DescribeRuleGroup</a>.  AWS Network Firewall uses a rule group to inspect and control network traffic. You define stateless rule groups to inspect individual packets and you define stateful rule groups to inspect packets in the context of their traffic flow.  To use a rule group, you include it by reference in an Network Firewall firewall policy, then you use the policy in a firewall. You can reference a rule group from more than one firewall policy, and you can use a firewall policy in more than one firewall. :<br/>UpdateToken:  A token used for optimistic locking. Network Firewall returns a token to your requests that access the rule group. The token marks the state of the rule group resource at the time of the request.  To make changes to the rule group, you provide the token in your request. Network Firewall uses the token to ensure that the rule group hasn't changed since you last retrieved it. If it has changed, the operation fails with an <code>InvalidTokenException</code>. If this happens, retrieve the rule group again to get a current copy of it with a current token. Reapply your changes as needed, then try the operation again using the new token. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RulesSource</i> The stateful rules or stateless rules for the rule group. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RulesSource</b>: The stateful rules or stateless rules for the rule group. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RuleVariables</i> Settings that are available for use in the rules in the rule group. You can only use these for stateful rule groups. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RuleVariables</b>: Settings that are available for use in the rules in the rule group. You can only use these for stateful rule groups. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PortSets</i> A list of port ranges. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IPSets</i> A list of IP addresses and address ranges, in CIDR notation. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RulesString</i> Stateful inspection criteria, provided in Suricata compatible intrusion prevention system (IPS) rules. Suricata is an open-source network IPS that includes a standard rule-based language for network traffic inspection. These rules contain the inspection criteria and the action to take for traffic that matches the criteria, so this type of rule group doesn't have a separate action setting.<br/>Stateful inspection criteria for a domain list rule group. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RulesSourceList</b>: Stateful inspection criteria for a domain list rule group. &nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The key:value pairs to associate with the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RuleGroupStatus</i> Detailed information about the current status of a rule group. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Capacity</i> The maximum operating resources that this rule group can use. Rule group capacity is fixed at creation. When you update a rule group, you are limited to this capacity. When you reference a rule group from a firewall policy, Network Firewall reserves this capacity for the rule group.  You can retrieve the capacity that would be required for a rule group before you create the rule group by calling <a>CreateRuleGroup</a> with <code>DryRun</code> set to <code>TRUE</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> Indicates whether the rule group is stateless or stateful. If the rule group is stateless, it contains stateless rules. If it is stateful, it contains stateful rules. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A description of the rule group. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RuleGroupId</i> The unique identifier for the rule group. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RuleGroupName</i> The descriptive name of the rule group. You can't change the name of a rule group after you create it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RuleGroupArn</i> The Amazon Resource Name (ARN) of the rule group. <note> If this response is for a create request that had <code>DryRun</code> set to <code>TRUE</code>, then this ARN is a placeholder that isn't attached to a valid resource. </note><br/>        """
        pass

    def disassociate_subnets(self, SubnetIds: List[AzSubnet], UpdateToken: str=None, FirewallArn: str=None, FirewallName: str=None) -> DisassociateSubnetsResponse:
        r"""Removes the specified subnet associations from the firewall. This removes the firewall endpoints from the subnets and removes any network filtering protections that the endpoints were providing. 

        :param self:
        :param SubnetIds:  The unique identifiers for the subnets that you want to disassociate. <br/>FirewallName:  The descriptive name of the firewall. You can't change the name of a firewall after you create it. You must specify the ARN or the name, and you can specify both. <br/>FirewallArn:  The Amazon Resource Name (ARN) of the firewall. You must specify the ARN or the name, and you can specify both. <br/>UpdateToken:  An optional token that you can use for optimistic locking. Network Firewall returns a token to your requests that access the firewall. The token marks the state of the firewall resource at the time of the request.  To make an unconditional change to the firewall, omit the token in your update request. Without the token, Network Firewall performs your updates regardless of whether the firewall has changed since you last retrieved it. To make a conditional change to the firewall, provide the token in your update request. Network Firewall uses the token to ensure that the firewall hasn't changed since you last retrieved it. If it has changed, the operation fails with an <code>InvalidTokenException</code>. If this happens, retrieve the firewall again to get a current copy of it with a new token. Reapply your changes as needed, then try the operation again using the new token. <br/>
        :return: UpdateToken:  An optional token that you can use for optimistic locking. Network Firewall returns a token to your requests that access the firewall. The token marks the state of the firewall resource at the time of the request.  To make an unconditional change to the firewall, omit the token in your update request. Without the token, Network Firewall performs your updates regardless of whether the firewall has changed since you last retrieved it. To make a conditional change to the firewall, provide the token in your update request. Network Firewall uses the token to ensure that the firewall hasn't changed since you last retrieved it. If it has changed, the operation fails with an <code>InvalidTokenException</code>. If this happens, retrieve the firewall again to get a current copy of it with a new token. Reapply your changes as needed, then try the operation again using the new token. <br/>SubnetMappings:  The IDs of the subnets that are associated with the firewall. <br/>FirewallName:  The descriptive name of the firewall. You can't change the name of a firewall after you create it.<br/>FirewallArn:  The Amazon Resource Name (ARN) of the firewall.<br/>        """
        pass

    def list_firewall_policies(self, NextToken: str=None, MaxResults: int=None) -> ListFirewallPoliciesResponse:
        r"""Retrieves the metadata for the firewall policies that you have defined. Depending on your setting for max results and the number of firewall policies, a single call might not return the full list. 

        :param self:
        :param MaxResults:  The maximum number of objects that you want Network Firewall to return for this request. If more objects are available, in the response, Network Firewall provides a <code>NextToken</code> value that you can use in a subsequent call to get the next batch of objects.<br/>NextToken:  When you request a list of objects with a <code>MaxResults</code> setting, if the number of objects that are still available for retrieval exceeds the maximum you requested, Network Firewall returns a <code>NextToken</code> value in the response. To retrieve the next batch of objects, use the token returned from the prior request in your next request.<br/>
        :return: FirewallPolicies:  The metadata for the firewall policies. Depending on your setting for max results and the number of firewall policies that you have, this might not be the full list. <br/>NextToken:  When you request a list of objects with a <code>MaxResults</code> setting, if the number of objects that are still available for retrieval exceeds the maximum you requested, Network Firewall returns a <code>NextToken</code> value in the response. To retrieve the next batch of objects, use the token returned from the prior request in your next request.<br/>        """
        pass

    def list_firewalls(self, NextToken: str=None, VpcIds: List[VpcId]=None, MaxResults: int=None) -> ListFirewallsResponse:
        r"""Retrieves the metadata for the firewalls that you have defined. If you provide VPC identifiers in your request, this returns only the firewalls for those VPCs. Depending on your setting for max results and the number of firewalls, a single call might not return the full list. 

        :param self:
        :param MaxResults:  The maximum number of objects that you want Network Firewall to return for this request. If more objects are available, in the response, Network Firewall provides a <code>NextToken</code> value that you can use in a subsequent call to get the next batch of objects.<br/>VpcIds:  The unique identifiers of the VPCs that you want Network Firewall to retrieve the firewalls for. Leave this blank to retrieve all firewalls that you have defined.<br/>NextToken:  When you request a list of objects with a <code>MaxResults</code> setting, if the number of objects that are still available for retrieval exceeds the maximum you requested, Network Firewall returns a <code>NextToken</code> value in the response. To retrieve the next batch of objects, use the token returned from the prior request in your next request.<br/>
        :return: Firewalls:  The firewall metadata objects for the VPCs that you specified. Depending on your setting for max results and the number of firewalls you have, a single call might not be the full list. <br/>NextToken:  When you request a list of objects with a <code>MaxResults</code> setting, if the number of objects that are still available for retrieval exceeds the maximum you requested, Network Firewall returns a <code>NextToken</code> value in the response. To retrieve the next batch of objects, use the token returned from the prior request in your next request.<br/>        """
        pass

    def list_rule_groups(self, NextToken: str=None, MaxResults: int=None) -> ListRuleGroupsResponse:
        r"""Retrieves the metadata for the rule groups that you have defined. Depending on your setting for max results and the number of rule groups, a single call might not return the full list. 

        :param self:
        :param MaxResults:  The maximum number of objects that you want Network Firewall to return for this request. If more objects are available, in the response, Network Firewall provides a <code>NextToken</code> value that you can use in a subsequent call to get the next batch of objects.<br/>NextToken:  When you request a list of objects with a <code>MaxResults</code> setting, if the number of objects that are still available for retrieval exceeds the maximum you requested, Network Firewall returns a <code>NextToken</code> value in the response. To retrieve the next batch of objects, use the token returned from the prior request in your next request.<br/>
        :return: RuleGroups:  The rule group metadata objects that you've defined. Depending on your setting for max results and the number of rule groups, this might not be the full list. <br/>NextToken:  When you request a list of objects with a <code>MaxResults</code> setting, if the number of objects that are still available for retrieval exceeds the maximum you requested, Network Firewall returns a <code>NextToken</code> value in the response. To retrieve the next batch of objects, use the token returned from the prior request in your next request.<br/>        """
        pass

    def list_tags_for_resource(self, ResourceArn: str, NextToken: str=None, MaxResults: int=None) -> ListTagsForResourceResponse:
        r"""Retrieves the tags associated with the specified resource. Tags are key:value pairs that you can use to categorize and manage your resources, for purposes like billing. For example, you might set the tag key to "customer" and the value to the customer name or ID. You can specify one or more tags to add to each AWS resource, up to 50 tags for a resource. You can tag the AWS resources that you manage through AWS Network Firewall: firewalls, firewall policies, and rule groups. 

        :param self:
        :param ResourceArn:  The Amazon Resource Name (ARN) of the resource.<br/>MaxResults:  The maximum number of objects that you want Network Firewall to return for this request. If more objects are available, in the response, Network Firewall provides a <code>NextToken</code> value that you can use in a subsequent call to get the next batch of objects.<br/>NextToken:  When you request a list of objects with a <code>MaxResults</code> setting, if the number of objects that are still available for retrieval exceeds the maximum you requested, Network Firewall returns a <code>NextToken</code> value in the response. To retrieve the next batch of objects, use the token returned from the prior request in your next request.<br/>
        :return: Tags:  The tags that are associated with the resource. <br/>NextToken:  When you request a list of objects with a <code>MaxResults</code> setting, if the number of objects that are still available for retrieval exceeds the maximum you requested, Network Firewall returns a <code>NextToken</code> value in the response. To retrieve the next batch of objects, use the token returned from the prior request in your next request.<br/>        """
        pass

    def put_resource_policy(self, Policy: str, ResourceArn: str) -> PutResourcePolicyResponse:
        r"""Creates or updates an AWS Identity and Access Management policy for your rule group or firewall policy. Use this to share rule groups and firewall policies between accounts. This operation works in conjunction with the AWS Resource Access Manager (RAM) service to manage resource sharing for Network Firewall.  Use this operation to create or update a resource policy for your rule group or firewall policy. In the policy, you specify the accounts that you want to share the resource with and the operations that you want the accounts to be able to perform.  When you add an account in the resource policy, you then run the following Resource Access Manager (RAM) operations to access and accept the shared rule group or firewall policy.  <ul> <li>  <a href="https://docs.aws.amazon.com/ram/latest/APIReference/API_GetResourceShareInvitations.html">GetResourceShareInvitations</a> - Returns the Amazon Resource Names (ARNs) of the resource share invitations.  </li> <li>  <a href="https://docs.aws.amazon.com/ram/latest/APIReference/API_AcceptResourceShareInvitation.html">AcceptResourceShareInvitation</a> - Accepts the share invitation for a specified resource share.  </li> </ul> For additional information about resource sharing using RAM, see <a href="https://docs.aws.amazon.com/ram/latest/userguide/what-is.html">AWS Resource Access Manager User Guide</a>.

        :param self:
        :param Policy:  The AWS Identity and Access Management policy statement that lists the accounts that you want to share your rule group or firewall policy with and the operations that you want the accounts to be able to perform.  For a rule group resource, you can specify the following operations in the Actions section of the statement: <ul> <li> network-firewall:CreateFirewallPolicy </li> <li> network-firewall:UpdateFirewallPolicy </li> <li> network-firewall:ListRuleGroups </li> </ul> For a firewall policy resource, you can specify the following operations in the Actions section of the statement: <ul> <li> network-firewall:CreateFirewall </li> <li> network-firewall:UpdateFirewall </li> <li> network-firewall:AssociateFirewallPolicy </li> <li> network-firewall:ListFirewallPolicies </li> </ul> In the Resource section of the statement, you specify the ARNs for the rule groups and firewall policies that you want to share with the account that you specified in <code>Arn</code>.<br/>ResourceArn:  The Amazon Resource Name (ARN) of the account that you want to share rule groups and firewall policies with.<br/>
        :return:         """
        pass

    def tag_resource(self, Tags: List[Tag], ResourceArn: str) -> TagResourceResponse:
        r"""Adds the specified tags to the specified resource. Tags are key:value pairs that you can use to categorize and manage your resources, for purposes like billing. For example, you might set the tag key to "customer" and the value to the customer name or ID. You can specify one or more tags to add to each AWS resource, up to 50 tags for a resource. You can tag the AWS resources that you manage through AWS Network Firewall: firewalls, firewall policies, and rule groups. 

        :param self:
        :param Tags:  <p/><br/>ResourceArn:  The Amazon Resource Name (ARN) of the resource.<br/>
        :return:         """
        pass

    def untag_resource(self, TagKeys: List[TagKey], ResourceArn: str) -> UntagResourceResponse:
        r"""Removes the tags with the specified keys from the specified resource. Tags are key:value pairs that you can use to categorize and manage your resources, for purposes like billing. For example, you might set the tag key to "customer" and the value to the customer name or ID. You can specify one or more tags to add to each AWS resource, up to 50 tags for a resource. You can manage tags for the AWS resources that you manage through AWS Network Firewall: firewalls, firewall policies, and rule groups. 

        :param self:
        :param TagKeys:  <p/><br/>ResourceArn:  The Amazon Resource Name (ARN) of the resource.<br/>
        :return:         """
        pass

    def update_firewall_delete_protection(self, DeleteProtection: Boolean, UpdateToken: str=None, FirewallArn: str=None, FirewallName: str=None) -> UpdateFirewallDeleteProtectionResponse:
        r"""Modifies the flag, <code>DeleteProtection</code>, which indicates whether it is possible to delete the firewall. If the flag is set to <code>TRUE</code>, the firewall is protected against deletion. This setting helps protect against accidentally deleting a firewall that's in use. 

        :param self:
        :param DeleteProtection:  A flag indicating whether it is possible to delete the firewall. A setting of <code>TRUE</code> indicates that the firewall is protected against deletion. Use this setting to protect against accidentally deleting a firewall that is in use. When you create a firewall, the operation initializes this flag to <code>TRUE</code>.<br/>FirewallName:  The descriptive name of the firewall. You can't change the name of a firewall after you create it. You must specify the ARN or the name, and you can specify both. <br/>FirewallArn:  The Amazon Resource Name (ARN) of the firewall. You must specify the ARN or the name, and you can specify both. <br/>UpdateToken:  An optional token that you can use for optimistic locking. Network Firewall returns a token to your requests that access the firewall. The token marks the state of the firewall resource at the time of the request.  To make an unconditional change to the firewall, omit the token in your update request. Without the token, Network Firewall performs your updates regardless of whether the firewall has changed since you last retrieved it. To make a conditional change to the firewall, provide the token in your update request. Network Firewall uses the token to ensure that the firewall hasn't changed since you last retrieved it. If it has changed, the operation fails with an <code>InvalidTokenException</code>. If this happens, retrieve the firewall again to get a current copy of it with a new token. Reapply your changes as needed, then try the operation again using the new token. <br/>
        :return: UpdateToken:  An optional token that you can use for optimistic locking. Network Firewall returns a token to your requests that access the firewall. The token marks the state of the firewall resource at the time of the request.  To make an unconditional change to the firewall, omit the token in your update request. Without the token, Network Firewall performs your updates regardless of whether the firewall has changed since you last retrieved it. To make a conditional change to the firewall, provide the token in your update request. Network Firewall uses the token to ensure that the firewall hasn't changed since you last retrieved it. If it has changed, the operation fails with an <code>InvalidTokenException</code>. If this happens, retrieve the firewall again to get a current copy of it with a new token. Reapply your changes as needed, then try the operation again using the new token. <br/>DeleteProtection:  <p/><br/>FirewallName:  The descriptive name of the firewall. You can't change the name of a firewall after you create it.<br/>FirewallArn:  The Amazon Resource Name (ARN) of the firewall.<br/>        """
        pass

    def update_firewall_description(self, UpdateToken: str=None, FirewallArn: str=None, FirewallName: str=None, Description: str=None) -> UpdateFirewallDescriptionResponse:
        r"""Modifies the description for the specified firewall. Use the description to help you identify the firewall when you're working with it. 

        :param self:
        :param Description:  The new description for the firewall. If you omit this setting, Network Firewall removes the description for the firewall.<br/>FirewallName:  The descriptive name of the firewall. You can't change the name of a firewall after you create it. You must specify the ARN or the name, and you can specify both. <br/>FirewallArn:  The Amazon Resource Name (ARN) of the firewall. You must specify the ARN or the name, and you can specify both. <br/>UpdateToken:  An optional token that you can use for optimistic locking. Network Firewall returns a token to your requests that access the firewall. The token marks the state of the firewall resource at the time of the request.  To make an unconditional change to the firewall, omit the token in your update request. Without the token, Network Firewall performs your updates regardless of whether the firewall has changed since you last retrieved it. To make a conditional change to the firewall, provide the token in your update request. Network Firewall uses the token to ensure that the firewall hasn't changed since you last retrieved it. If it has changed, the operation fails with an <code>InvalidTokenException</code>. If this happens, retrieve the firewall again to get a current copy of it with a new token. Reapply your changes as needed, then try the operation again using the new token. <br/>
        :return: UpdateToken:  An optional token that you can use for optimistic locking. Network Firewall returns a token to your requests that access the firewall. The token marks the state of the firewall resource at the time of the request.  To make an unconditional change to the firewall, omit the token in your update request. Without the token, Network Firewall performs your updates regardless of whether the firewall has changed since you last retrieved it. To make a conditional change to the firewall, provide the token in your update request. Network Firewall uses the token to ensure that the firewall hasn't changed since you last retrieved it. If it has changed, the operation fails with an <code>InvalidTokenException</code>. If this happens, retrieve the firewall again to get a current copy of it with a new token. Reapply your changes as needed, then try the operation again using the new token. <br/>Description:  A description of the firewall.<br/>FirewallName:  The descriptive name of the firewall. You can't change the name of a firewall after you create it.<br/>FirewallArn:  The Amazon Resource Name (ARN) of the firewall.<br/>        """
        pass

    def update_firewall_policy(self, FirewallPolicy: FirewallPolicy, UpdateToken: str, FirewallPolicyArn: str=None, FirewallPolicyName: str=None, Description: str=None, DryRun: Boolean=None) -> UpdateFirewallPolicyResponse:
        r"""Updates the properties of the specified firewall policy.

        :param self:
        :param DryRun:  Indicates whether you want Network Firewall to just check the validity of the request, rather than run the request.  If set to <code>TRUE</code>, Network Firewall checks whether the request can run successfully, but doesn't actually make the requested changes. The call returns the value that the request would return if you ran it with dry run set to <code>FALSE</code>, but doesn't make additions or changes to your resources. This option allows you to make sure that you have the required permissions to run the request and that your request parameters are valid.  If set to <code>FALSE</code>, Network Firewall makes the requested changes to your resources. <br/>Description:  A description of the firewall policy.<br/>FirewallPolicy:  The updated firewall policy to use for the firewall. :<br/>FirewallPolicyName:  The descriptive name of the firewall policy. You can't change the name of a firewall policy after you create it. You must specify the ARN or the name, and you can specify both. <br/>FirewallPolicyArn:  The Amazon Resource Name (ARN) of the firewall policy. You must specify the ARN or the name, and you can specify both. <br/>UpdateToken:  A token used for optimistic locking. Network Firewall returns a token to your requests that access the firewall policy. The token marks the state of the policy resource at the time of the request.  To make changes to the policy, you provide the token in your request. Network Firewall uses the token to ensure that the policy hasn't changed since you last retrieved it. If it has changed, the operation fails with an <code>InvalidTokenException</code>. If this happens, retrieve the firewall policy again to get a current copy of it with current token. Reapply your changes as needed, then try the operation again using the new token. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatefulRuleGroupReferences</i> References to the stateless rule groups that are used in the policy. These define the inspection criteria in stateful rules. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatelessCustomActions</i> The custom action definitions that are available for use in the firewall policy's <code>StatelessDefaultActions</code> setting. You name each custom action that you define, and then you can use it by name in your default actions specifications.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatelessFragmentDefaultActions</i> The actions to take on a fragmented UDP packet if it doesn't match any of the stateless rules in the policy. Network Firewall only manages UDP packet fragments and silently drops packet fragments for other protocols. If you want non-matching fragmented UDP packets to be forwarded for stateful inspection, specify <code>aws:forward_to_sfe</code>.  You must specify one of the standard actions: <code>aws:pass</code>, <code>aws:drop</code>, or <code>aws:forward_to_sfe</code>. In addition, you can specify custom actions that are compatible with your standard section choice. For example, you could specify <code>["aws:pass"]</code> or you could specify <code>["aws:pass", “customActionName”]</code>. For information about compatibility, see the custom action descriptions under <a>CustomAction</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatelessDefaultActions</i> The actions to take on a packet if it doesn't match any of the stateless rules in the policy. If you want non-matching packets to be forwarded for stateful inspection, specify <code>aws:forward_to_sfe</code>.  You must specify one of the standard actions: <code>aws:pass</code>, <code>aws:drop</code>, or <code>aws:forward_to_sfe</code>. In addition, you can specify custom actions that are compatible with your standard section choice. For example, you could specify <code>["aws:pass"]</code> or you could specify <code>["aws:pass", “customActionName”]</code>. For information about compatibility, see the custom action descriptions under <a>CustomAction</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatelessRuleGroupReferences</i> References to the stateless rule groups that are used in the policy. These define the matching criteria in stateless rules. <br/>
        :return: FirewallPolicyResponse:  The high-level properties of a firewall policy. This, along with the <a>FirewallPolicy</a>, define the policy. You can retrieve all objects for a firewall policy by calling <a>DescribeFirewallPolicy</a>. :<br/>UpdateToken:  A token used for optimistic locking. Network Firewall returns a token to your requests that access the firewall policy. The token marks the state of the policy resource at the time of the request.  To make changes to the policy, you provide the token in your request. Network Firewall uses the token to ensure that the policy hasn't changed since you last retrieved it. If it has changed, the operation fails with an <code>InvalidTokenException</code>. If this happens, retrieve the firewall policy again to get a current copy of it with current token. Reapply your changes as needed, then try the operation again using the new token. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The key:value pairs to associate with the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FirewallPolicyStatus</i> The current status of the firewall policy. You can retrieve this for a firewall policy by calling <a>DescribeFirewallPolicy</a> and providing the firewall policy's name or ARN.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A description of the firewall policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FirewallPolicyId</i> The unique identifier for the firewall policy. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FirewallPolicyArn</i> The Amazon Resource Name (ARN) of the firewall policy. <note> If this response is for a create request that had <code>DryRun</code> set to <code>TRUE</code>, then this ARN is a placeholder that isn't attached to a valid resource. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FirewallPolicyName</i> The descriptive name of the firewall policy. You can't change the name of a firewall policy after you create it.<br/>        """
        pass

    def update_firewall_policy_change_protection(self, FirewallPolicyChangeProtection: Boolean, UpdateToken: str=None, FirewallArn: str=None, FirewallName: str=None) -> UpdateFirewallPolicyChangeProtectionResponse:
        r"""<p/>

        :param self:
        :param FirewallPolicyChangeProtection:  A setting indicating whether the firewall is protected against a change to the firewall policy association. Use this setting to protect against accidentally modifying the firewall policy for a firewall that is in use. When you create a firewall, the operation initializes this setting to <code>TRUE</code>.<br/>FirewallName:  The descriptive name of the firewall. You can't change the name of a firewall after you create it. You must specify the ARN or the name, and you can specify both. <br/>FirewallArn:  The Amazon Resource Name (ARN) of the firewall. You must specify the ARN or the name, and you can specify both. <br/>UpdateToken:  An optional token that you can use for optimistic locking. Network Firewall returns a token to your requests that access the firewall. The token marks the state of the firewall resource at the time of the request.  To make an unconditional change to the firewall, omit the token in your update request. Without the token, Network Firewall performs your updates regardless of whether the firewall has changed since you last retrieved it. To make a conditional change to the firewall, provide the token in your update request. Network Firewall uses the token to ensure that the firewall hasn't changed since you last retrieved it. If it has changed, the operation fails with an <code>InvalidTokenException</code>. If this happens, retrieve the firewall again to get a current copy of it with a new token. Reapply your changes as needed, then try the operation again using the new token. <br/>
        :return: FirewallPolicyChangeProtection:  A setting indicating whether the firewall is protected against a change to the firewall policy association. Use this setting to protect against accidentally modifying the firewall policy for a firewall that is in use. When you create a firewall, the operation initializes this setting to <code>TRUE</code>.<br/>FirewallName:  The descriptive name of the firewall. You can't change the name of a firewall after you create it.<br/>FirewallArn:  The Amazon Resource Name (ARN) of the firewall.<br/>UpdateToken:  An optional token that you can use for optimistic locking. Network Firewall returns a token to your requests that access the firewall. The token marks the state of the firewall resource at the time of the request.  To make an unconditional change to the firewall, omit the token in your update request. Without the token, Network Firewall performs your updates regardless of whether the firewall has changed since you last retrieved it. To make a conditional change to the firewall, provide the token in your update request. Network Firewall uses the token to ensure that the firewall hasn't changed since you last retrieved it. If it has changed, the operation fails with an <code>InvalidTokenException</code>. If this happens, retrieve the firewall again to get a current copy of it with a new token. Reapply your changes as needed, then try the operation again using the new token. <br/>        """
        pass

    def update_logging_configuration(self, FirewallArn: str=None, FirewallName: str=None, LoggingConfiguration: LoggingConfiguration=None) -> UpdateLoggingConfigurationResponse:
        r"""Sets the logging configuration for the specified firewall.  To change the logging configuration, retrieve the <a>LoggingConfiguration</a> by calling <a>DescribeLoggingConfiguration</a>, then change it and provide the modified object to this update call. You must change the logging configuration one <a>LogDestinationConfig</a> at a time inside the retrieved <a>LoggingConfiguration</a> object.  You can perform only one of the following actions in any call to <code>UpdateLoggingConfiguration</code>:  <ul> <li> Create a new log destination object by adding a single <code>LogDestinationConfig</code> array element to <code>LogDestinationConfigs</code>. </li> <li> Delete a log destination object by removing a single <code>LogDestinationConfig</code> array element from <code>LogDestinationConfigs</code>. </li> <li> Change the <code>LogDestination</code> setting in a single <code>LogDestinationConfig</code> array element. </li> </ul> You can't change the <code>LogDestinationType</code> or <code>LogType</code> in a <code>LogDestinationConfig</code>. To change these settings, delete the existing <code>LogDestinationConfig</code> object and create a new one, using two separate calls to this update operation.

        :param self:
        :param LoggingConfiguration:  Defines how Network Firewall performs logging for a firewall. If you omit this setting, Network Firewall disables logging for the firewall.:<br/>FirewallName:  The descriptive name of the firewall. You can't change the name of a firewall after you create it. You must specify the ARN or the name, and you can specify both. <br/>FirewallArn:  The Amazon Resource Name (ARN) of the firewall. You must specify the ARN or the name, and you can specify both. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogDestinationConfigs</i> Defines the logging destinations for the logs for a firewall. Network Firewall generates logs for stateful rule groups. <br/>
        :return: LoggingConfiguration:  Defines how AWS Network Firewall performs logging for a <a>Firewall</a>. :<br/>FirewallName:  The descriptive name of the firewall. You can't change the name of a firewall after you create it.<br/>FirewallArn:  The Amazon Resource Name (ARN) of the firewall.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogDestinationConfigs</i> Defines the logging destinations for the logs for a firewall. Network Firewall generates logs for stateful rule groups. <br/>        """
        pass

    def update_rule_group(self, UpdateToken: str, RuleGroupArn: str=None, RuleGroupName: str=None, RuleGroup: RuleGroup=None, Rules: str=None, Type: str=None, Description: str=None, DryRun: Boolean=None) -> UpdateRuleGroupResponse:
        r"""Updates the rule settings for the specified rule group. You use a rule group by reference in one or more firewall policies. When you modify a rule group, you modify all firewall policies that use the rule group.  To update a rule group, first call <a>DescribeRuleGroup</a> to retrieve the current <a>RuleGroup</a> object, update the object as needed, and then provide the updated object to this call. 

        :param self:
        :param DryRun:  Indicates whether you want Network Firewall to just check the validity of the request, rather than run the request.  If set to <code>TRUE</code>, Network Firewall checks whether the request can run successfully, but doesn't actually make the requested changes. The call returns the value that the request would return if you ran it with dry run set to <code>FALSE</code>, but doesn't make additions or changes to your resources. This option allows you to make sure that you have the required permissions to run the request and that your request parameters are valid.  If set to <code>FALSE</code>, Network Firewall makes the requested changes to your resources. <br/>Description:  A description of the rule group. <br/>Type:  Indicates whether the rule group is stateless or stateful. If the rule group is stateless, it contains stateless rules. If it is stateful, it contains stateful rules.  <note> This setting is required for requests that do not include the <code>RuleGroupARN</code>. </note><br/>Rules:  A string containing stateful rule group rules specifications in Suricata flat format, with one rule per line. Use this to import your existing Suricata compatible rule groups.  <note> You must provide either this rules setting or a populated <code>RuleGroup</code> setting, but not both.  </note> You can provide your rule group specification in Suricata flat format through this setting when you create or update your rule group. The call response returns a <a>RuleGroup</a> object that Network Firewall has populated from your string. <br/>RuleGroup:  An object that defines the rule group rules.  <note> You must provide either this rule group setting or a <code>Rules</code> setting, but not both.  </note>:<br/>RuleGroupName:  The descriptive name of the rule group. You can't change the name of a rule group after you create it. You must specify the ARN or the name, and you can specify both. <br/>RuleGroupArn:  The Amazon Resource Name (ARN) of the rule group. You must specify the ARN or the name, and you can specify both. <br/>UpdateToken:  A token used for optimistic locking. Network Firewall returns a token to your requests that access the rule group. The token marks the state of the rule group resource at the time of the request.  To make changes to the rule group, you provide the token in your request. Network Firewall uses the token to ensure that the rule group hasn't changed since you last retrieved it. If it has changed, the operation fails with an <code>InvalidTokenException</code>. If this happens, retrieve the rule group again to get a current copy of it with a current token. Reapply your changes as needed, then try the operation again using the new token. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RulesSource</i> The stateful rules or stateless rules for the rule group. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RulesSource</b>: The stateful rules or stateless rules for the rule group. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RuleVariables</i> Settings that are available for use in the rules in the rule group. You can only use these for stateful rule groups. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RuleVariables</b>: Settings that are available for use in the rules in the rule group. You can only use these for stateful rule groups. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PortSets</i> A list of port ranges. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IPSets</i> A list of IP addresses and address ranges, in CIDR notation. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RulesString</i> Stateful inspection criteria, provided in Suricata compatible intrusion prevention system (IPS) rules. Suricata is an open-source network IPS that includes a standard rule-based language for network traffic inspection. These rules contain the inspection criteria and the action to take for traffic that matches the criteria, so this type of rule group doesn't have a separate action setting.<br/>Stateful inspection criteria for a domain list rule group. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RulesSourceList</b>: Stateful inspection criteria for a domain list rule group. 
        :return: RuleGroupResponse:  The high-level properties of a rule group. This, along with the <a>RuleGroup</a>, define the rule group. You can retrieve all objects for a rule group by calling <a>DescribeRuleGroup</a>. :<br/>UpdateToken:  A token used for optimistic locking. Network Firewall returns a token to your requests that access the rule group. The token marks the state of the rule group resource at the time of the request.  To make changes to the rule group, you provide the token in your request. Network Firewall uses the token to ensure that the rule group hasn't changed since you last retrieved it. If it has changed, the operation fails with an <code>InvalidTokenException</code>. If this happens, retrieve the rule group again to get a current copy of it with a current token. Reapply your changes as needed, then try the operation again using the new token. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The key:value pairs to associate with the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RuleGroupStatus</i> Detailed information about the current status of a rule group. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Capacity</i> The maximum operating resources that this rule group can use. Rule group capacity is fixed at creation. When you update a rule group, you are limited to this capacity. When you reference a rule group from a firewall policy, Network Firewall reserves this capacity for the rule group.  You can retrieve the capacity that would be required for a rule group before you create the rule group by calling <a>CreateRuleGroup</a> with <code>DryRun</code> set to <code>TRUE</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> Indicates whether the rule group is stateless or stateful. If the rule group is stateless, it contains stateless rules. If it is stateful, it contains stateful rules. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A description of the rule group. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RuleGroupId</i> The unique identifier for the rule group. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RuleGroupName</i> The descriptive name of the rule group. You can't change the name of a rule group after you create it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RuleGroupArn</i> The Amazon Resource Name (ARN) of the rule group. <note> If this response is for a create request that had <code>DryRun</code> set to <code>TRUE</code>, then this ARN is a placeholder that isn't attached to a valid resource. </note><br/>        """
        pass

    def update_subnet_change_protection(self, SubnetChangeProtection: Boolean, UpdateToken: str=None, FirewallArn: str=None, FirewallName: str=None) -> UpdateSubnetChangeProtectionResponse:
        r"""<p/>

        :param self:
        :param SubnetChangeProtection:  A setting indicating whether the firewall is protected against changes to the subnet associations. Use this setting to protect against accidentally modifying the subnet associations for a firewall that is in use. When you create a firewall, the operation initializes this setting to <code>TRUE</code>.<br/>FirewallName:  The descriptive name of the firewall. You can't change the name of a firewall after you create it. You must specify the ARN or the name, and you can specify both. <br/>FirewallArn:  The Amazon Resource Name (ARN) of the firewall. You must specify the ARN or the name, and you can specify both. <br/>UpdateToken:  An optional token that you can use for optimistic locking. Network Firewall returns a token to your requests that access the firewall. The token marks the state of the firewall resource at the time of the request.  To make an unconditional change to the firewall, omit the token in your update request. Without the token, Network Firewall performs your updates regardless of whether the firewall has changed since you last retrieved it. To make a conditional change to the firewall, provide the token in your update request. Network Firewall uses the token to ensure that the firewall hasn't changed since you last retrieved it. If it has changed, the operation fails with an <code>InvalidTokenException</code>. If this happens, retrieve the firewall again to get a current copy of it with a new token. Reapply your changes as needed, then try the operation again using the new token. <br/>
        :return: SubnetChangeProtection:  A setting indicating whether the firewall is protected against changes to the subnet associations. Use this setting to protect against accidentally modifying the subnet associations for a firewall that is in use. When you create a firewall, the operation initializes this setting to <code>TRUE</code>.<br/>FirewallName:  The descriptive name of the firewall. You can't change the name of a firewall after you create it.<br/>FirewallArn:  The Amazon Resource Name (ARN) of the firewall.<br/>UpdateToken:  An optional token that you can use for optimistic locking. Network Firewall returns a token to your requests that access the firewall. The token marks the state of the firewall resource at the time of the request.  To make an unconditional change to the firewall, omit the token in your update request. Without the token, Network Firewall performs your updates regardless of whether the firewall has changed since you last retrieved it. To make a conditional change to the firewall, provide the token in your update request. Network Firewall uses the token to ensure that the firewall hasn't changed since you last retrieved it. If it has changed, the operation fails with an <code>InvalidTokenException</code>. If this happens, retrieve the firewall again to get a current copy of it with a new token. Reapply your changes as needed, then try the operation again using the new token. <br/>        """
        pass





class NetworkManager(BaseClient):
    r"""Transit Gateway Network Manager (Network Manager) enables you to create a global network, in which you can monitor your AWS and on-premises networks that are built around transit gateways. The Network Manager APIs are supported in the US West (Oregon) Region only. You must specify the <code>us-west-2</code> Region in all requests made to Network Manager."""


    class DescribeGlobalNetworksPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_global_networks` for valid parameters"""
            pass
    class GetCustomerGatewayAssociationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_customer_gateway_associations` for valid parameters"""
            pass
    class GetDevicesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_devices` for valid parameters"""
            pass
    class GetLinkAssociationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_link_associations` for valid parameters"""
            pass
    class GetLinksPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_links` for valid parameters"""
            pass
    class GetSitesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_sites` for valid parameters"""
            pass
    class GetTransitGatewayRegistrationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_transit_gateway_registrations` for valid parameters"""
            pass
    class GetConnectionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_connections` for valid parameters"""
            pass
    class GetTransitGatewayConnectPeerAssociationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_transit_gateway_connect_peer_associations` for valid parameters"""
            pass


    class AssociateCustomerGatewayRequest(Mapping):
        pass
    
    class AssociateCustomerGatewayResponse(Mapping):
        pass
    
    class AssociateLinkRequest(Mapping):
        pass
    
    class AssociateLinkResponse(Mapping):
        pass
    
    class AssociateTransitGatewayConnectPeerRequest(Mapping):
        pass
    
    class AssociateTransitGatewayConnectPeerResponse(Mapping):
        pass
    
    class CreateConnectionRequest(Mapping):
        pass
    
    class CreateConnectionResponse(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class CreateDeviceRequest(Mapping):
        pass
    
    class CreateDeviceResponse(Mapping):
        pass
    
    class AWSLocation(Mapping):
        pass
    
    class Location(Mapping):
        pass
    
    class CreateGlobalNetworkRequest(Mapping):
        pass
    
    class CreateGlobalNetworkResponse(Mapping):
        pass
    
    class CreateLinkRequest(Mapping):
        pass
    
    class CreateLinkResponse(Mapping):
        pass
    
    class Bandwidth(Mapping):
        pass
    
    class CreateSiteRequest(Mapping):
        pass
    
    class CreateSiteResponse(Mapping):
        pass
    
    class DeleteConnectionRequest(Mapping):
        pass
    
    class DeleteConnectionResponse(Mapping):
        pass
    
    class DeleteDeviceRequest(Mapping):
        pass
    
    class DeleteDeviceResponse(Mapping):
        pass
    
    class DeleteGlobalNetworkRequest(Mapping):
        pass
    
    class DeleteGlobalNetworkResponse(Mapping):
        pass
    
    class DeleteLinkRequest(Mapping):
        pass
    
    class DeleteLinkResponse(Mapping):
        pass
    
    class DeleteSiteRequest(Mapping):
        pass
    
    class DeleteSiteResponse(Mapping):
        pass
    
    class DeregisterTransitGatewayRequest(Mapping):
        pass
    
    class DeregisterTransitGatewayResponse(Mapping):
        pass
    
    class DescribeGlobalNetworksRequest(Mapping):
        pass
    
    class DescribeGlobalNetworksResponse(Mapping):
        pass
    
    class String(object):
        pass
    
    class DisassociateCustomerGatewayRequest(Mapping):
        pass
    
    class DisassociateCustomerGatewayResponse(Mapping):
        pass
    
    class DisassociateLinkRequest(Mapping):
        pass
    
    class DisassociateLinkResponse(Mapping):
        pass
    
    class DisassociateTransitGatewayConnectPeerRequest(Mapping):
        pass
    
    class DisassociateTransitGatewayConnectPeerResponse(Mapping):
        pass
    
    class GetConnectionsRequest(Mapping):
        pass
    
    class GetConnectionsResponse(Mapping):
        pass
    
    class GetCustomerGatewayAssociationsRequest(Mapping):
        pass
    
    class GetCustomerGatewayAssociationsResponse(Mapping):
        pass
    
    class GetDevicesRequest(Mapping):
        pass
    
    class GetDevicesResponse(Mapping):
        pass
    
    class GetLinkAssociationsRequest(Mapping):
        pass
    
    class GetLinkAssociationsResponse(Mapping):
        pass
    
    class GetLinksRequest(Mapping):
        pass
    
    class GetLinksResponse(Mapping):
        pass
    
    class GetSitesRequest(Mapping):
        pass
    
    class GetSitesResponse(Mapping):
        pass
    
    class GetTransitGatewayConnectPeerAssociationsRequest(Mapping):
        pass
    
    class GetTransitGatewayConnectPeerAssociationsResponse(Mapping):
        pass
    
    class GetTransitGatewayRegistrationsRequest(Mapping):
        pass
    
    class GetTransitGatewayRegistrationsResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class RegisterTransitGatewayRequest(Mapping):
        pass
    
    class RegisterTransitGatewayResponse(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateConnectionRequest(Mapping):
        pass
    
    class UpdateConnectionResponse(Mapping):
        pass
    
    class UpdateDeviceRequest(Mapping):
        pass
    
    class UpdateDeviceResponse(Mapping):
        pass
    
    class UpdateGlobalNetworkRequest(Mapping):
        pass
    
    class UpdateGlobalNetworkResponse(Mapping):
        pass
    
    class UpdateLinkRequest(Mapping):
        pass
    
    class UpdateLinkResponse(Mapping):
        pass
    
    class UpdateSiteRequest(Mapping):
        pass
    
    class UpdateSiteResponse(Mapping):
        pass
    
    def associate_customer_gateway(self, DeviceId: str, GlobalNetworkId: str, CustomerGatewayArn: str, LinkId: str=None) -> AssociateCustomerGatewayResponse:
        r"""Associates a customer gateway with a device and optionally, with a link. If you specify a link, it must be associated with the specified device.  You can only associate customer gateways that are connected to a VPN attachment on a transit gateway. The transit gateway must be registered in your global network. When you register a transit gateway, customer gateways that are connected to the transit gateway are automatically included in the global network. To list customer gateways that are connected to a transit gateway, use the <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeVpnConnections.html">DescribeVpnConnections</a> EC2 API and filter by <code>transit-gateway-id</code>. You cannot associate a customer gateway with more than one device and link. 

        :param self:
        :param LinkId:  The ID of the link.<br/>DeviceId:  The ID of the device.<br/>GlobalNetworkId:  The ID of the global network.<br/>CustomerGatewayArn:  The Amazon Resource Name (ARN) of the customer gateway. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazonec2.html#amazonec2-resources-for-iam-policies">Resources Defined by Amazon EC2</a>.<br/>
        :return: CustomerGatewayAssociation:  The customer gateway association.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The association state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LinkId</i> The ID of the link.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeviceId</i> The ID of the device.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalNetworkId</i> The ID of the global network.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomerGatewayArn</i> The Amazon Resource Name (ARN) of the customer gateway.<br/>        """
        pass

    def associate_link(self, LinkId: str, DeviceId: str, GlobalNetworkId: str) -> AssociateLinkResponse:
        r"""Associates a link to a device. A device can be associated to multiple links and a link can be associated to multiple devices. The device and link must be in the same global network and the same site.

        :param self:
        :param LinkId:  The ID of the link.<br/>DeviceId:  The ID of the device.<br/>GlobalNetworkId:  The ID of the global network.<br/>
        :return: LinkAssociation:  The link association.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LinkAssociationState</i> The state of the association.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LinkId</i> The ID of the link.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeviceId</i> The device ID for the link association.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalNetworkId</i> The ID of the global network.<br/>        """
        pass

    def associate_transit_gateway_connect_peer(self, DeviceId: str, TransitGatewayConnectPeerArn: str, GlobalNetworkId: str, LinkId: str=None) -> AssociateTransitGatewayConnectPeerResponse:
        r"""Associates a transit gateway Connect peer with a device, and optionally, with a link. If you specify a link, it must be associated with the specified device.  You can only associate transit gateway Connect peers that have been created on a transit gateway that's registered in your global network. You cannot associate a transit gateway Connect peer with more than one device and link. 

        :param self:
        :param LinkId:  The ID of the link.<br/>DeviceId:  The ID of the device.<br/>TransitGatewayConnectPeerArn:  The Amazon Resource Name (ARN) of the Connect peer.<br/>GlobalNetworkId:  The ID of the global network.<br/>
        :return: TransitGatewayConnectPeerAssociation:  The transit gateway Connect peer association.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the association.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LinkId</i> The ID of the link.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeviceId</i> The ID of the device.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalNetworkId</i> The ID of the global network.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayConnectPeerArn</i> The Amazon Resource Name (ARN) of the transit gateway Connect peer.<br/>        """
        pass

    def create_connection(self, ConnectedDeviceId: str, DeviceId: str, GlobalNetworkId: str, LinkId: str=None, ConnectedLinkId: str=None, Description: str=None, Tags: List[Tag]=None) -> CreateConnectionResponse:
        r"""Creates a connection between two devices. The devices can be a physical or virtual appliance that connects to a third-party appliance in a VPC, or a physical appliance that connects to another physical appliance in an on-premises network.

        :param self:
        :param Tags:  The tags to apply to the resource during creation.<br/>Description:  A description of the connection. Length Constraints: Maximum length of 256 characters.<br/>ConnectedLinkId:  The ID of the link for the second device.<br/>LinkId:  The ID of the link for the first device.<br/>ConnectedDeviceId:  The ID of the second device in the connection.<br/>DeviceId:  The ID of the first device in the connection.<br/>GlobalNetworkId:  The ID of the global network.<br/>
        :return: Connection:  Information about the connection.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The tags for the connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedAt</i> The date and time that the connection was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConnectedLinkId</i> The ID of the link for the second device in the connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LinkId</i> The ID of the link for the first device in the connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConnectedDeviceId</i> The ID of the second device in the connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeviceId</i> The ID of the first device in the connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalNetworkId</i> The ID of the global network.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConnectionArn</i> The Amazon Resource Name (ARN) of the connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConnectionId</i> The ID of the connection.<br/>        """
        pass

    def create_device(self, GlobalNetworkId: str, AWSLocation: AWSLocation=None, Description: str=None, Type: str=None, Vendor: str=None, Model: str=None, SerialNumber: str=None, Location: Location=None, SiteId: str=None, Tags: List[Tag]=None) -> CreateDeviceResponse:
        r"""Creates a new device in a global network. If you specify both a site ID and a location, the location of the site is used for visualization in the Network Manager console.

        :param self:
        :param Tags:  The tags to apply to the resource during creation.<br/>SiteId:  The ID of the site.<br/>Location:  The location of the device.:<br/>SerialNumber:  The serial number of the device. Length Constraints: Maximum length of 128 characters.<br/>Model:  The model of the device. Length Constraints: Maximum length of 128 characters.<br/>Vendor:  The vendor of the device. Length Constraints: Maximum length of 128 characters.<br/>Type:  The type of the device.<br/>Description:  A description of the device. Length Constraints: Maximum length of 256 characters.<br/>AWSLocation:  The AWS location of the device.:<br/>GlobalNetworkId:  The ID of the global network.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetArn</i> The Amazon Resource Name (ARN) of the subnet the device is located in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Zone</i> The Zone the device is located in. This can be the ID of an Availability Zone, Local Zone, Wavelength Zone, or an Outpost.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Longitude</i> The longitude.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Latitude</i> The latitude.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Address</i> The physical address.<br/>
        :return: Device:  Information about the device.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The tags for the device.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The device state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedAt</i> The date and time that the site was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SiteId</i> The site ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Location</i> The site location.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Location</b>: The site location.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SerialNumber</i> The device serial number.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Model</i> The device model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Vendor</i> The device vendor.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The device type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the device.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AWSLocation</i> The AWS location of the device.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AWSLocation</b>: The AWS location of the device.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalNetworkId</i> The ID of the global network.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeviceArn</i> The Amazon Resource Name (ARN) of the device.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeviceId</i> The ID of the device.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetArn</i> The Amazon Resource Name (ARN) of the subnet the device is located in.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Zone</i> The Zone the device is located in. This can be the ID of an Availability Zone, Local Zone, Wavelength Zone, or an Outpost.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Longitude</i> The longitude.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Latitude</i> The latitude.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Address</i> The physical address.<br/>        """
        pass

    def create_global_network(self, Description: str=None, Tags: List[Tag]=None) -> CreateGlobalNetworkResponse:
        r"""Creates a new, empty global network.

        :param self:
        :param Tags:  The tags to apply to the resource during creation.<br/>Description:  A description of the global network. Length Constraints: Maximum length of 256 characters.<br/>
        :return: GlobalNetwork:  Information about the global network object.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The tags for the global network.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the global network.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedAt</i> The date and time that the global network was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the global network.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalNetworkArn</i> The Amazon Resource Name (ARN) of the global network.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalNetworkId</i> The ID of the global network.<br/>        """
        pass

    def create_link(self, SiteId: str, Bandwidth: Bandwidth, GlobalNetworkId: str, Description: str=None, Type: str=None, Provider: str=None, Tags: List[Tag]=None) -> CreateLinkResponse:
        r"""Creates a new link for a specified site.

        :param self:
        :param Tags:  The tags to apply to the resource during creation.<br/>SiteId:  The ID of the site.<br/>Provider:  The provider of the link. Constraints: Cannot include the following characters: | \ ^ Length Constraints: Maximum length of 128 characters.<br/>Bandwidth:   The upload speed and download speed in Mbps. :<br/>Type:  The type of the link. Constraints: Cannot include the following characters: | \ ^ Length Constraints: Maximum length of 128 characters.<br/>Description:  A description of the link. Length Constraints: Maximum length of 256 characters.<br/>GlobalNetworkId:  The ID of the global network.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DownloadSpeed</i> Download speed in Mbps.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UploadSpeed</i> Upload speed in Mbps.<br/>
        :return: Link:  Information about the link.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The tags for the link.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the link.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedAt</i> The date and time that the link was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Provider</i> The provider of the link.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Bandwidth</i> The bandwidth for the link.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Bandwidth</b>: The bandwidth for the link.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of the link.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the link.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SiteId</i> The ID of the site.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalNetworkId</i> The ID of the global network.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LinkArn</i> The Amazon Resource Name (ARN) of the link.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LinkId</i> The ID of the link.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DownloadSpeed</i> Download speed in Mbps.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UploadSpeed</i> Upload speed in Mbps.<br/>        """
        pass

    def create_site(self, GlobalNetworkId: str, Description: str=None, Location: Location=None, Tags: List[Tag]=None) -> CreateSiteResponse:
        r"""Creates a new site in a global network.

        :param self:
        :param Tags:  The tags to apply to the resource during creation.<br/>Location:  The site location. This information is used for visualization in the Network Manager console. If you specify the address, the latitude and longitude are automatically calculated. <ul> <li>  <code>Address</code>: The physical address of the site. </li> <li>  <code>Latitude</code>: The latitude of the site.  </li> <li>  <code>Longitude</code>: The longitude of the site. </li> </ul>:<br/>Description:  A description of your site. Length Constraints: Maximum length of 256 characters.<br/>GlobalNetworkId:  The ID of the global network.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Longitude</i> The longitude.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Latitude</i> The latitude.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Address</i> The physical address.<br/>
        :return: Site:  Information about the site.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The tags for the site.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the site.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedAt</i> The date and time that the site was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Location</i> The location of the site.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Location</b>: The location of the site.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the site.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalNetworkId</i> The ID of the global network.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SiteArn</i> The Amazon Resource Name (ARN) of the site.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SiteId</i> The ID of the site.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Longitude</i> The longitude.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Latitude</i> The latitude.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Address</i> The physical address.<br/>        """
        pass

    def delete_connection(self, ConnectionId: str, GlobalNetworkId: str) -> DeleteConnectionResponse:
        r"""Deletes the specified connection in your global network.

        :param self:
        :param ConnectionId:  The ID of the connection.<br/>GlobalNetworkId:  The ID of the global network.<br/>
        :return: Connection:  Information about the connection.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The tags for the connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedAt</i> The date and time that the connection was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConnectedLinkId</i> The ID of the link for the second device in the connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LinkId</i> The ID of the link for the first device in the connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConnectedDeviceId</i> The ID of the second device in the connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeviceId</i> The ID of the first device in the connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalNetworkId</i> The ID of the global network.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConnectionArn</i> The Amazon Resource Name (ARN) of the connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConnectionId</i> The ID of the connection.<br/>        """
        pass

    def delete_device(self, DeviceId: str, GlobalNetworkId: str) -> DeleteDeviceResponse:
        r"""Deletes an existing device. You must first disassociate the device from any links and customer gateways.

        :param self:
        :param DeviceId:  The ID of the device.<br/>GlobalNetworkId:  The ID of the global network.<br/>
        :return: Device:  Information about the device.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The tags for the device.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The device state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedAt</i> The date and time that the site was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SiteId</i> The site ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Location</i> The site location.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Location</b>: The site location.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SerialNumber</i> The device serial number.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Model</i> The device model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Vendor</i> The device vendor.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The device type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the device.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AWSLocation</i> The AWS location of the device.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AWSLocation</b>: The AWS location of the device.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalNetworkId</i> The ID of the global network.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeviceArn</i> The Amazon Resource Name (ARN) of the device.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeviceId</i> The ID of the device.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetArn</i> The Amazon Resource Name (ARN) of the subnet the device is located in.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Zone</i> The Zone the device is located in. This can be the ID of an Availability Zone, Local Zone, Wavelength Zone, or an Outpost.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Longitude</i> The longitude.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Latitude</i> The latitude.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Address</i> The physical address.<br/>        """
        pass

    def delete_global_network(self, GlobalNetworkId: str) -> DeleteGlobalNetworkResponse:
        r"""Deletes an existing global network. You must first delete all global network objects (devices, links, and sites) and deregister all transit gateways.

        :param self:
        :param GlobalNetworkId:  The ID of the global network.<br/>
        :return: GlobalNetwork:  Information about the global network.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The tags for the global network.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the global network.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedAt</i> The date and time that the global network was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the global network.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalNetworkArn</i> The Amazon Resource Name (ARN) of the global network.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalNetworkId</i> The ID of the global network.<br/>        """
        pass

    def delete_link(self, LinkId: str, GlobalNetworkId: str) -> DeleteLinkResponse:
        r"""Deletes an existing link. You must first disassociate the link from any devices and customer gateways.

        :param self:
        :param LinkId:  The ID of the link.<br/>GlobalNetworkId:  The ID of the global network.<br/>
        :return: Link:  Information about the link.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The tags for the link.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the link.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedAt</i> The date and time that the link was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Provider</i> The provider of the link.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Bandwidth</i> The bandwidth for the link.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Bandwidth</b>: The bandwidth for the link.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of the link.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the link.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SiteId</i> The ID of the site.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalNetworkId</i> The ID of the global network.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LinkArn</i> The Amazon Resource Name (ARN) of the link.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LinkId</i> The ID of the link.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DownloadSpeed</i> Download speed in Mbps.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UploadSpeed</i> Upload speed in Mbps.<br/>        """
        pass

    def delete_site(self, SiteId: str, GlobalNetworkId: str) -> DeleteSiteResponse:
        r"""Deletes an existing site. The site cannot be associated with any device or link.

        :param self:
        :param SiteId:  The ID of the site.<br/>GlobalNetworkId:  The ID of the global network.<br/>
        :return: Site:  Information about the site.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The tags for the site.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the site.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedAt</i> The date and time that the site was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Location</i> The location of the site.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Location</b>: The location of the site.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the site.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalNetworkId</i> The ID of the global network.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SiteArn</i> The Amazon Resource Name (ARN) of the site.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SiteId</i> The ID of the site.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Longitude</i> The longitude.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Latitude</i> The latitude.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Address</i> The physical address.<br/>        """
        pass

    def deregister_transit_gateway(self, TransitGatewayArn: str, GlobalNetworkId: str) -> DeregisterTransitGatewayResponse:
        r"""Deregisters a transit gateway from your global network. This action does not delete your transit gateway, or modify any of its attachments. This action removes any customer gateway associations.

        :param self:
        :param TransitGatewayArn:  The Amazon Resource Name (ARN) of the transit gateway.<br/>GlobalNetworkId:  The ID of the global network.<br/>
        :return: TransitGatewayRegistration:  The transit gateway registration information.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the transit gateway registration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>State</b>: The state of the transit gateway registration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayArn</i> The Amazon Resource Name (ARN) of the transit gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalNetworkId</i> The ID of the global network.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> The message for the state reason.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Code</i> The code for the state reason.<br/>        """
        pass

    def describe_global_networks(self, GlobalNetworkIds: List[String]=None, MaxResults: int=None, NextToken: str=None) -> DescribeGlobalNetworksResponse:
        r"""Describes one or more global networks. By default, all global networks are described. To describe the objects in your global network, you must use the appropriate <code>Get*</code> action. For example, to list the transit gateways in your global network, use <a>GetTransitGatewayRegistrations</a>.

        :param self:
        :param NextToken:  The token for the next page of results.<br/>MaxResults:  The maximum number of results to return.<br/>GlobalNetworkIds:  The IDs of one or more global networks. The maximum is 10.<br/>
        :return: NextToken:  The token for the next page of results.<br/>GlobalNetworks:  Information about the global networks.<br/>        """
        pass

    def disassociate_customer_gateway(self, CustomerGatewayArn: str, GlobalNetworkId: str) -> DisassociateCustomerGatewayResponse:
        r"""Disassociates a customer gateway from a device and a link.

        :param self:
        :param CustomerGatewayArn:  The Amazon Resource Name (ARN) of the customer gateway. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazonec2.html#amazonec2-resources-for-iam-policies">Resources Defined by Amazon EC2</a>.<br/>GlobalNetworkId:  The ID of the global network.<br/>
        :return: CustomerGatewayAssociation:  Information about the customer gateway association.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The association state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LinkId</i> The ID of the link.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeviceId</i> The ID of the device.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalNetworkId</i> The ID of the global network.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomerGatewayArn</i> The Amazon Resource Name (ARN) of the customer gateway.<br/>        """
        pass

    def disassociate_link(self, LinkId: str, DeviceId: str, GlobalNetworkId: str) -> DisassociateLinkResponse:
        r"""Disassociates an existing device from a link. You must first disassociate any customer gateways that are associated with the link.

        :param self:
        :param LinkId:  The ID of the link.<br/>DeviceId:  The ID of the device.<br/>GlobalNetworkId:  The ID of the global network.<br/>
        :return: LinkAssociation:  Information about the link association.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LinkAssociationState</i> The state of the association.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LinkId</i> The ID of the link.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeviceId</i> The device ID for the link association.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalNetworkId</i> The ID of the global network.<br/>        """
        pass

    def disassociate_transit_gateway_connect_peer(self, TransitGatewayConnectPeerArn: str, GlobalNetworkId: str) -> DisassociateTransitGatewayConnectPeerResponse:
        r"""Disassociates a transit gateway Connect peer from a device and link.

        :param self:
        :param TransitGatewayConnectPeerArn:  The Amazon Resource Name (ARN) of the transit gateway Connect peer.<br/>GlobalNetworkId:  The ID of the global network.<br/>
        :return: TransitGatewayConnectPeerAssociation:  The transit gateway Connect peer association.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the association.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LinkId</i> The ID of the link.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeviceId</i> The ID of the device.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalNetworkId</i> The ID of the global network.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayConnectPeerArn</i> The Amazon Resource Name (ARN) of the transit gateway Connect peer.<br/>        """
        pass

    def get_connections(self, GlobalNetworkId: str, ConnectionIds: List[String]=None, DeviceId: str=None, MaxResults: int=None, NextToken: str=None) -> GetConnectionsResponse:
        r"""Gets information about one or more of your connections in a global network.

        :param self:
        :param NextToken:  The token for the next page of results.<br/>MaxResults:  The maximum number of results to return.<br/>DeviceId:  The ID of the device.<br/>ConnectionIds:  One or more connection IDs.<br/>GlobalNetworkId:  The ID of the global network.<br/>
        :return: NextToken:  The token to use for the next page of results.<br/>Connections:  Information about the connections.<br/>        """
        pass

    def get_customer_gateway_associations(self, GlobalNetworkId: str, CustomerGatewayArns: List[String]=None, MaxResults: int=None, NextToken: str=None) -> GetCustomerGatewayAssociationsResponse:
        r"""Gets the association information for customer gateways that are associated with devices and links in your global network.

        :param self:
        :param NextToken:  The token for the next page of results.<br/>MaxResults:  The maximum number of results to return.<br/>CustomerGatewayArns:  One or more customer gateway Amazon Resource Names (ARNs). For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazonec2.html#amazonec2-resources-for-iam-policies">Resources Defined by Amazon EC2</a>. The maximum is 10.<br/>GlobalNetworkId:  The ID of the global network.<br/>
        :return: NextToken:  The token for the next page of results.<br/>CustomerGatewayAssociations:  The customer gateway associations.<br/>        """
        pass

    def get_devices(self, GlobalNetworkId: str, DeviceIds: List[String]=None, SiteId: str=None, MaxResults: int=None, NextToken: str=None) -> GetDevicesResponse:
        r"""Gets information about one or more of your devices in a global network.

        :param self:
        :param NextToken:  The token for the next page of results.<br/>MaxResults:  The maximum number of results to return.<br/>SiteId:  The ID of the site.<br/>DeviceIds:  One or more device IDs. The maximum is 10.<br/>GlobalNetworkId:  The ID of the global network.<br/>
        :return: NextToken:  The token for the next page of results.<br/>Devices:  The devices.<br/>        """
        pass

    def get_link_associations(self, GlobalNetworkId: str, DeviceId: str=None, LinkId: str=None, MaxResults: int=None, NextToken: str=None) -> GetLinkAssociationsResponse:
        r"""Gets the link associations for a device or a link. Either the device ID or the link ID must be specified.

        :param self:
        :param NextToken:  The token for the next page of results.<br/>MaxResults:  The maximum number of results to return.<br/>LinkId:  The ID of the link.<br/>DeviceId:  The ID of the device.<br/>GlobalNetworkId:  The ID of the global network.<br/>
        :return: NextToken:  The token for the next page of results.<br/>LinkAssociations:  The link associations.<br/>        """
        pass

    def get_links(self, GlobalNetworkId: str, LinkIds: List[String]=None, SiteId: str=None, Type: str=None, Provider: str=None, MaxResults: int=None, NextToken: str=None) -> GetLinksResponse:
        r"""Gets information about one or more links in a specified global network. If you specify the site ID, you cannot specify the type or provider in the same request. You can specify the type and provider in the same request.

        :param self:
        :param NextToken:  The token for the next page of results.<br/>MaxResults:  The maximum number of results to return.<br/>Provider:  The link provider.<br/>Type:  The link type.<br/>SiteId:  The ID of the site.<br/>LinkIds:  One or more link IDs. The maximum is 10.<br/>GlobalNetworkId:  The ID of the global network.<br/>
        :return: NextToken:  The token for the next page of results.<br/>Links:  The links.<br/>        """
        pass

    def get_sites(self, GlobalNetworkId: str, SiteIds: List[String]=None, MaxResults: int=None, NextToken: str=None) -> GetSitesResponse:
        r"""Gets information about one or more of your sites in a global network.

        :param self:
        :param NextToken:  The token for the next page of results.<br/>MaxResults:  The maximum number of results to return.<br/>SiteIds:  One or more site IDs. The maximum is 10.<br/>GlobalNetworkId:  The ID of the global network.<br/>
        :return: NextToken:  The token for the next page of results.<br/>Sites:  The sites.<br/>        """
        pass

    def get_transit_gateway_connect_peer_associations(self, GlobalNetworkId: str, TransitGatewayConnectPeerArns: List[String]=None, MaxResults: int=None, NextToken: str=None) -> GetTransitGatewayConnectPeerAssociationsResponse:
        r"""Gets information about one or more of your transit gateway Connect peer associations in a global network.

        :param self:
        :param NextToken:  The token for the next page of results.<br/>MaxResults:  The maximum number of results to return.<br/>TransitGatewayConnectPeerArns:  One or more transit gateway Connect peer Amazon Resource Names (ARNs).<br/>GlobalNetworkId:  The ID of the global network.<br/>
        :return: NextToken:  The token to use for the next page of results.<br/>TransitGatewayConnectPeerAssociations:  Information about the transit gateway Connect peer associations.<br/>        """
        pass

    def get_transit_gateway_registrations(self, GlobalNetworkId: str, TransitGatewayArns: List[String]=None, MaxResults: int=None, NextToken: str=None) -> GetTransitGatewayRegistrationsResponse:
        r"""Gets information about the transit gateway registrations in a specified global network.

        :param self:
        :param NextToken:  The token for the next page of results.<br/>MaxResults:  The maximum number of results to return.<br/>TransitGatewayArns:  The Amazon Resource Names (ARNs) of one or more transit gateways. The maximum is 10.<br/>GlobalNetworkId:  The ID of the global network.<br/>
        :return: NextToken:  The token for the next page of results.<br/>TransitGatewayRegistrations:  The transit gateway registrations.<br/>        """
        pass

    def list_tags_for_resource(self, ResourceArn: str) -> ListTagsForResourceResponse:
        r"""Lists the tags for a specified resource.

        :param self:
        :param ResourceArn:  The Amazon Resource Name (ARN) of the resource.<br/>
        :return: TagList:  The list of tags.<br/>        """
        pass

    def register_transit_gateway(self, TransitGatewayArn: str, GlobalNetworkId: str) -> RegisterTransitGatewayResponse:
        r"""Registers a transit gateway in your global network. The transit gateway can be in any AWS Region, but it must be owned by the same AWS account that owns the global network. You cannot register a transit gateway in more than one global network.

        :param self:
        :param TransitGatewayArn:  The Amazon Resource Name (ARN) of the transit gateway. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazonec2.html#amazonec2-resources-for-iam-policies">Resources Defined by Amazon EC2</a>.<br/>GlobalNetworkId:  The ID of the global network.<br/>
        :return: TransitGatewayRegistration:  Information about the transit gateway registration.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the transit gateway registration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>State</b>: The state of the transit gateway registration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransitGatewayArn</i> The Amazon Resource Name (ARN) of the transit gateway.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalNetworkId</i> The ID of the global network.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> The message for the state reason.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Code</i> The code for the state reason.<br/>        """
        pass

    def tag_resource(self, Tags: List[Tag], ResourceArn: str) -> TagResourceResponse:
        r"""Tags a specified resource.

        :param self:
        :param Tags:  The tags to apply to the specified resource.<br/>ResourceArn:  The Amazon Resource Name (ARN) of the resource.<br/>
        :return:         """
        pass

    def untag_resource(self, TagKeys: List[TagKey], ResourceArn: str) -> UntagResourceResponse:
        r"""Removes tags from a specified resource.

        :param self:
        :param TagKeys:  The tag keys to remove from the specified resource.<br/>ResourceArn:  The Amazon Resource Name (ARN) of the resource.<br/>
        :return:         """
        pass

    def update_connection(self, ConnectionId: str, GlobalNetworkId: str, LinkId: str=None, ConnectedLinkId: str=None, Description: str=None) -> UpdateConnectionResponse:
        r"""Updates the information for an existing connection. To remove information for any of the parameters, specify an empty string.

        :param self:
        :param Description:  A description of the connection. Length Constraints: Maximum length of 256 characters.<br/>ConnectedLinkId:  The ID of the link for the second device in the connection.<br/>LinkId:  The ID of the link for the first device in the connection.<br/>ConnectionId:  The ID of the connection.<br/>GlobalNetworkId:  The ID of the global network.<br/>
        :return: Connection:  Information about the connection.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The tags for the connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedAt</i> The date and time that the connection was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConnectedLinkId</i> The ID of the link for the second device in the connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LinkId</i> The ID of the link for the first device in the connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConnectedDeviceId</i> The ID of the second device in the connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeviceId</i> The ID of the first device in the connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalNetworkId</i> The ID of the global network.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConnectionArn</i> The Amazon Resource Name (ARN) of the connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConnectionId</i> The ID of the connection.<br/>        """
        pass

    def update_device(self, DeviceId: str, GlobalNetworkId: str, AWSLocation: AWSLocation=None, Description: str=None, Type: str=None, Vendor: str=None, Model: str=None, SerialNumber: str=None, Location: Location=None, SiteId: str=None) -> UpdateDeviceResponse:
        r"""Updates the details for an existing device. To remove information for any of the parameters, specify an empty string.

        :param self:
        :param SiteId:  The ID of the site.<br/>Location:  Describes a location.:<br/>SerialNumber:  The serial number of the device. Length Constraints: Maximum length of 128 characters.<br/>Model:  The model of the device. Length Constraints: Maximum length of 128 characters.<br/>Vendor:  The vendor of the device. Length Constraints: Maximum length of 128 characters.<br/>Type:  The type of the device.<br/>Description:  A description of the device. Length Constraints: Maximum length of 256 characters.<br/>AWSLocation:  The AWS location of the device.:<br/>DeviceId:  The ID of the device.<br/>GlobalNetworkId:  The ID of the global network.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetArn</i> The Amazon Resource Name (ARN) of the subnet the device is located in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Zone</i> The Zone the device is located in. This can be the ID of an Availability Zone, Local Zone, Wavelength Zone, or an Outpost.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Longitude</i> The longitude.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Latitude</i> The latitude.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Address</i> The physical address.<br/>
        :return: Device:  Information about the device.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The tags for the device.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The device state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedAt</i> The date and time that the site was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SiteId</i> The site ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Location</i> The site location.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Location</b>: The site location.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SerialNumber</i> The device serial number.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Model</i> The device model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Vendor</i> The device vendor.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The device type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the device.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AWSLocation</i> The AWS location of the device.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AWSLocation</b>: The AWS location of the device.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalNetworkId</i> The ID of the global network.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeviceArn</i> The Amazon Resource Name (ARN) of the device.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeviceId</i> The ID of the device.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetArn</i> The Amazon Resource Name (ARN) of the subnet the device is located in.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Zone</i> The Zone the device is located in. This can be the ID of an Availability Zone, Local Zone, Wavelength Zone, or an Outpost.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Longitude</i> The longitude.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Latitude</i> The latitude.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Address</i> The physical address.<br/>        """
        pass

    def update_global_network(self, GlobalNetworkId: str, Description: str=None) -> UpdateGlobalNetworkResponse:
        r"""Updates an existing global network. To remove information for any of the parameters, specify an empty string.

        :param self:
        :param Description:  A description of the global network. Length Constraints: Maximum length of 256 characters.<br/>GlobalNetworkId:  The ID of your global network.<br/>
        :return: GlobalNetwork:  Information about the global network object.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The tags for the global network.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the global network.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedAt</i> The date and time that the global network was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the global network.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalNetworkArn</i> The Amazon Resource Name (ARN) of the global network.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalNetworkId</i> The ID of the global network.<br/>        """
        pass

    def update_link(self, LinkId: str, GlobalNetworkId: str, Description: str=None, Type: str=None, Bandwidth: Bandwidth=None, Provider: str=None) -> UpdateLinkResponse:
        r"""Updates the details for an existing link. To remove information for any of the parameters, specify an empty string.

        :param self:
        :param Provider:  The provider of the link. Length Constraints: Maximum length of 128 characters.<br/>Bandwidth:  The upload and download speed in Mbps. :<br/>Type:  The type of the link. Length Constraints: Maximum length of 128 characters.<br/>Description:  A description of the link. Length Constraints: Maximum length of 256 characters.<br/>LinkId:  The ID of the link.<br/>GlobalNetworkId:  The ID of the global network.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DownloadSpeed</i> Download speed in Mbps.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UploadSpeed</i> Upload speed in Mbps.<br/>
        :return: Link:  Information about the link.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The tags for the link.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the link.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedAt</i> The date and time that the link was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Provider</i> The provider of the link.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Bandwidth</i> The bandwidth for the link.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Bandwidth</b>: The bandwidth for the link.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of the link.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the link.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SiteId</i> The ID of the site.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalNetworkId</i> The ID of the global network.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LinkArn</i> The Amazon Resource Name (ARN) of the link.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LinkId</i> The ID of the link.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DownloadSpeed</i> Download speed in Mbps.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UploadSpeed</i> Upload speed in Mbps.<br/>        """
        pass

    def update_site(self, SiteId: str, GlobalNetworkId: str, Description: str=None, Location: Location=None) -> UpdateSiteResponse:
        r"""Updates the information for an existing site. To remove information for any of the parameters, specify an empty string.

        :param self:
        :param Location:  The site location: <ul> <li>  <code>Address</code>: The physical address of the site. </li> <li>  <code>Latitude</code>: The latitude of the site.  </li> <li>  <code>Longitude</code>: The longitude of the site. </li> </ul>:<br/>Description:  A description of your site. Length Constraints: Maximum length of 256 characters.<br/>SiteId:  The ID of your site.<br/>GlobalNetworkId:  The ID of the global network.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Longitude</i> The longitude.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Latitude</i> The latitude.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Address</i> The physical address.<br/>
        :return: Site:  Information about the site.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The tags for the site.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the site.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedAt</i> The date and time that the site was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Location</i> The location of the site.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Location</b>: The location of the site.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the site.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalNetworkId</i> The ID of the global network.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SiteArn</i> The Amazon Resource Name (ARN) of the site.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SiteId</i> The ID of the site.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Longitude</i> The longitude.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Latitude</i> The latitude.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Address</i> The physical address.<br/>        """
        pass





class NimbleStudio(BaseClient):
    r""""""


    class ListEulaAcceptancesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_eula_acceptances` for valid parameters"""
            pass
    class ListEulasPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_eulas` for valid parameters"""
            pass
    class ListLaunchProfileMembersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_launch_profile_members` for valid parameters"""
            pass
    class ListLaunchProfilesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_launch_profiles` for valid parameters"""
            pass
    class ListStreamingImagesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_streaming_images` for valid parameters"""
            pass
    class ListStreamingSessionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_streaming_sessions` for valid parameters"""
            pass
    class ListStudioComponentsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_studio_components` for valid parameters"""
            pass
    class ListStudioMembersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_studio_members` for valid parameters"""
            pass
    class ListStudiosPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_studios` for valid parameters"""
            pass


    class AcceptEulasRequest(Mapping):
        pass
    
    class AcceptEulasResponse(Mapping):
        pass
    
    class __string(object):
        pass
    
    class CreateLaunchProfileRequest(Mapping):
        pass
    
    class CreateLaunchProfileResponse(Mapping):
        pass
    
    class EC2SubnetId(object):
        pass
    
    class LaunchProfileProtocolVersion(object):
        pass
    
    class StreamConfigurationCreate(Mapping):
        pass
    
    class Tags(object):
        pass
    
    class CreateStreamingImageRequest(Mapping):
        pass
    
    class CreateStreamingImageResponse(Mapping):
        pass
    
    class CreateStreamingSessionRequest(Mapping):
        pass
    
    class CreateStreamingSessionResponse(Mapping):
        pass
    
    class CreateStreamingSessionStreamRequest(Mapping):
        pass
    
    class CreateStreamingSessionStreamResponse(Mapping):
        pass
    
    class CreateStudioRequest(Mapping):
        pass
    
    class CreateStudioResponse(Mapping):
        pass
    
    class StudioEncryptionConfiguration(Mapping):
        pass
    
    class CreateStudioComponentRequest(Mapping):
        pass
    
    class CreateStudioComponentResponse(Mapping):
        pass
    
    class StudioComponentConfiguration(Mapping):
        pass
    
    class SecurityGroupId(object):
        pass
    
    class StudioComponentInitializationScript(Mapping):
        pass
    
    class ScriptParameterKeyValue(Mapping):
        pass
    
    class DeleteLaunchProfileRequest(Mapping):
        pass
    
    class DeleteLaunchProfileResponse(Mapping):
        pass
    
    class DeleteLaunchProfileMemberRequest(Mapping):
        pass
    
    class DeleteLaunchProfileMemberResponse(Mapping):
        pass
    
    class DeleteStreamingImageRequest(Mapping):
        pass
    
    class DeleteStreamingImageResponse(Mapping):
        pass
    
    class DeleteStreamingSessionRequest(Mapping):
        pass
    
    class DeleteStreamingSessionResponse(Mapping):
        pass
    
    class DeleteStudioRequest(Mapping):
        pass
    
    class DeleteStudioResponse(Mapping):
        pass
    
    class DeleteStudioComponentRequest(Mapping):
        pass
    
    class DeleteStudioComponentResponse(Mapping):
        pass
    
    class DeleteStudioMemberRequest(Mapping):
        pass
    
    class DeleteStudioMemberResponse(Mapping):
        pass
    
    class GetEulaRequest(Mapping):
        pass
    
    class GetEulaResponse(Mapping):
        pass
    
    class GetLaunchProfileRequest(Mapping):
        pass
    
    class GetLaunchProfileResponse(Mapping):
        pass
    
    class GetLaunchProfileDetailsRequest(Mapping):
        pass
    
    class GetLaunchProfileDetailsResponse(Mapping):
        pass
    
    class GetLaunchProfileInitializationRequest(Mapping):
        pass
    
    class GetLaunchProfileInitializationResponse(Mapping):
        pass
    
    class GetLaunchProfileMemberRequest(Mapping):
        pass
    
    class GetLaunchProfileMemberResponse(Mapping):
        pass
    
    class GetStreamingImageRequest(Mapping):
        pass
    
    class GetStreamingImageResponse(Mapping):
        pass
    
    class GetStreamingSessionRequest(Mapping):
        pass
    
    class GetStreamingSessionResponse(Mapping):
        pass
    
    class GetStreamingSessionStreamRequest(Mapping):
        pass
    
    class GetStreamingSessionStreamResponse(Mapping):
        pass
    
    class GetStudioRequest(Mapping):
        pass
    
    class GetStudioResponse(Mapping):
        pass
    
    class GetStudioComponentRequest(Mapping):
        pass
    
    class GetStudioComponentResponse(Mapping):
        pass
    
    class GetStudioMemberRequest(Mapping):
        pass
    
    class GetStudioMemberResponse(Mapping):
        pass
    
    class ListEulaAcceptancesRequest(Mapping):
        pass
    
    class ListEulaAcceptancesResponse(Mapping):
        pass
    
    class ListEulasRequest(Mapping):
        pass
    
    class ListEulasResponse(Mapping):
        pass
    
    class ListLaunchProfileMembersRequest(Mapping):
        pass
    
    class ListLaunchProfileMembersResponse(Mapping):
        pass
    
    class ListLaunchProfilesRequest(Mapping):
        pass
    
    class ListLaunchProfilesResponse(Mapping):
        pass
    
    class ListStreamingImagesRequest(Mapping):
        pass
    
    class ListStreamingImagesResponse(Mapping):
        pass
    
    class ListStreamingSessionsRequest(Mapping):
        pass
    
    class ListStreamingSessionsResponse(Mapping):
        pass
    
    class ListStudioComponentsRequest(Mapping):
        pass
    
    class ListStudioComponentsResponse(Mapping):
        pass
    
    class ListStudioMembersRequest(Mapping):
        pass
    
    class ListStudioMembersResponse(Mapping):
        pass
    
    class ListStudiosRequest(Mapping):
        pass
    
    class ListStudiosResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class PutLaunchProfileMembersRequest(Mapping):
        pass
    
    class PutLaunchProfileMembersResponse(Mapping):
        pass
    
    class NewLaunchProfileMember(Mapping):
        pass
    
    class PutStudioMembersRequest(Mapping):
        pass
    
    class PutStudioMembersResponse(Mapping):
        pass
    
    class NewStudioMember(Mapping):
        pass
    
    class StartStudioSSOConfigurationRepairRequest(Mapping):
        pass
    
    class StartStudioSSOConfigurationRepairResponse(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class UpdateLaunchProfileRequest(Mapping):
        pass
    
    class UpdateLaunchProfileResponse(Mapping):
        pass
    
    class UpdateLaunchProfileMemberRequest(Mapping):
        pass
    
    class UpdateLaunchProfileMemberResponse(Mapping):
        pass
    
    class UpdateStreamingImageRequest(Mapping):
        pass
    
    class UpdateStreamingImageResponse(Mapping):
        pass
    
    class UpdateStudioRequest(Mapping):
        pass
    
    class UpdateStudioResponse(Mapping):
        pass
    
    class UpdateStudioComponentRequest(Mapping):
        pass
    
    class UpdateStudioComponentResponse(Mapping):
        pass
    
    def accept_eulas(self, studioId: str, clientToken: str=None, eulaIds: List[__string]=None) -> AcceptEulasResponse:
        r"""Accept EULAs.

        :param self:
        :param studioId:  The studio ID.<br/>eulaIds:  The EULA ID.<br/>clientToken:  To make an idempotent API request using one of these actions, specify a client token in the request. You should not reuse the same client token for other API requests. If you retry a request that completed successfully using the same client token and the same parameters, the retry succeeds without performing any further actions. If you retry a successful request using the same client token, but one or more of the parameters are different, the retry fails with a ValidationException error.<br/>
        :return: eulaAcceptances:  A collection of EULA acceptances.<br/>        """
        pass

    def create_launch_profile(self, studioId: str, studioComponentIds: List[__string], streamConfiguration: StreamConfigurationCreate, name: str, launchProfileProtocolVersions: List[LaunchProfileProtocolVersion], ec2SubnetIds: List[EC2SubnetId], clientToken: str=None, description: str=None, tags: Tags=None) -> CreateLaunchProfileResponse:
        r"""Create a launch profile.

        :param self:
        :param tags:  A collection of labels, in the form of key:value pairs, that apply to this resource.<br/>studioId:  The studio ID.<br/>studioComponentIds:  Unique identifiers for a collection of studio components that can be used with this launch profile.<br/>streamConfiguration:  A configuration for a streaming session.:<br/>name:  The name for the launch profile.<br/>launchProfileProtocolVersions:  The version number of the protocol that is used by the launch profile. The only valid version is "2021-03-31".<br/>ec2SubnetIds:  <br/>description:  The description.<br/>clientToken:  To make an idempotent API request using one of these actions, specify a client token in the request. You should not reuse the same client token for other API requests. If you retry a request that completed successfully using the same client token and the same parameters, the retry succeeds without performing any further actions. If you retry a successful request using the same client token, but one or more of the parameters are different, the retry fails with a ValidationException error.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>streamingImageIds</i> The streaming images that users can select from when launching a streaming session with this launch profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>maxSessionLengthInMinutes</i> The length of time, in minutes, that a streaming session can run. After this point, Nimble Studio automatically terminates the session.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ec2InstanceTypes</i> The EC2 instance types that users can select from when launching a streaming session with this launch profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>clipboardMode</i> Enable or disable the use of the system clipboard to copy and paste between the streaming session and streaming client.<br/>
        :return: launchProfile:  The launch profile.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>updatedBy</i> The user ID of the user that most recently updated the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>updatedAt</i> The Unix epoch timestamp in seconds for when the resource was updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> A collection of labels, in the form of key:value pairs, that apply to this resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>studioComponentIds</i> Unique identifiers for a collection of studio components that can be used with this launch profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>streamConfiguration</i> A configuration for a streaming session.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>streamConfiguration</b>: A configuration for a streaming session.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusMessage</i> The status message for the launch profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusCode</i> The status code.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>state</i> The current state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> A friendly name for the launch profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>launchProfileProtocolVersions</i> The version number of the protocol that is used by the launch profile. The only valid version is "2021-03-31".<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>launchProfileId</i> The launch profile ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ec2SubnetIds</i> Unique identifiers for a collection of EC2 subnets.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> A human-readable description of the launch profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdBy</i> The user ID of the user that created the launch profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The Unix epoch timestamp in seconds for when the resource was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The ARN of the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>streamingImageIds</i> The streaming images that users can select from when launching a streaming session with this launch profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>maxSessionLengthInMinutes</i> The length of time, in minutes, that a streaming session can run. After this point, Nimble Studio automatically terminates the session.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ec2InstanceTypes</i> The EC2 instance types that users can select from when launching a streaming session with this launch profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>clipboardMode</i> Enable or disable the use of the system clipboard to copy and paste between the streaming session and streaming client.<br/>        """
        pass

    def create_streaming_image(self, studioId: str, name: str, ec2ImageId: str, clientToken: str=None, description: str=None, tags: Tags=None) -> CreateStreamingImageResponse:
        r"""Creates a streaming image resource in a studio.

        :param self:
        :param tags:  A collection of labels, in the form of key:value pairs, that apply to this resource.<br/>studioId:  The studio ID.<br/>name:  A friendly name for a streaming image resource.<br/>ec2ImageId:  The ID of an EC2 machine image with which to create this streaming image.<br/>description:  A human-readable description of the streaming image.<br/>clientToken:  To make an idempotent API request using one of these actions, specify a client token in the request. You should not reuse the same client token for other API requests. If you retry a request that completed successfully using the same client token and the same parameters, the retry succeeds without performing any further actions. If you retry a successful request using the same client token, but one or more of the parameters are different, the retry fails with a ValidationException error.<br/>
        :return: streamingImage:  :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> A collection of labels, in the form of key:value pairs, that apply to this resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>streamingImageId</i> The ID of the streaming image.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusMessage</i> The status message for the streaming image.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusCode</i> The status code.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>state</i> The current state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>platform</i> The platform of the streaming image, either WINDOWS or LINUX.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>owner</i> The owner of the streaming image, either the studioId that contains the streaming image, or 'amazon' for images that are provided by Amazon Nimble Studio.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> A friendly name for a streaming image resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>eulaIds</i> The list of EULAs that must be accepted before a Streaming Session can be started using this streaming image.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>encryptionConfiguration</i> The encryption configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>encryptionConfiguration</b>: The encryption configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ec2ImageId</i> The ID of an EC2 machine image with which to create the streaming image.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> A human-readable description of the streaming image.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The ARN of the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>keyType</i> The type of KMS key that is used to encrypt studio data.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>keyArn</i> The ARN for a KMS key that is used to encrypt studio data.<br/>        """
        pass

    def create_streaming_session(self, studioId: str, clientToken: str=None, ec2InstanceType: str=None, launchProfileId: str=None, streamingImageId: str=None, tags: Tags=None) -> CreateStreamingSessionResponse:
        r"""Creates a streaming session in a studio. After invoking this operation, you must poll GetStreamingSession until the streaming session is in state READY.

        :param self:
        :param tags:  A collection of labels, in the form of key:value pairs, that apply to this resource.<br/>studioId:  The studio ID.<br/>streamingImageId:  The ID of the streaming image.<br/>launchProfileId:  The launch profile ID.<br/>ec2InstanceType:  The EC2 Instance type used for the streaming session.<br/>clientToken:  To make an idempotent API request using one of these actions, specify a client token in the request. You should not reuse the same client token for other API requests. If you retry a request that completed successfully using the same client token and the same parameters, the retry succeeds without performing any further actions. If you retry a successful request using the same client token, but one or more of the parameters are different, the retry fails with a ValidationException error.<br/>
        :return: session:  The session.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>updatedBy</i> The user ID of the user that most recently updated the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>updatedAt</i> The Unix epoch timestamp in seconds for when the resource was updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>terminateAt</i> The time the streaming session will automatically terminate if not terminated by the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> A collection of labels, in the form of key:value pairs, that apply to this resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>streamingImageId</i> The ID of the streaming image.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusMessage</i> The status message for the streaming session.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusCode</i> The status code.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>state</i> The current state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>sessionId</i> The session ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>launchProfileId</i> The ID of the launch profile used to control access from the streaming session.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ec2InstanceType</i> The EC2 Instance type used for the streaming session.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdBy</i> The user ID of the user that created the streaming session.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The Unix epoch timestamp in seconds for when the resource was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The ARN of the resource.<br/>        """
        pass

    def create_streaming_session_stream(self, studioId: str, sessionId: str, clientToken: str=None, expirationInSeconds: int=None) -> CreateStreamingSessionStreamResponse:
        r"""Creates a streaming session stream for a streaming session. After invoking this API, invoke GetStreamingSessionStream with the returned streamId to poll the resource until it is in state READY.

        :param self:
        :param studioId:  The studio ID.<br/>sessionId:  The session ID.<br/>expirationInSeconds:  The expiration time in seconds.<br/>clientToken:  To make an idempotent API request using one of these actions, specify a client token in the request. You should not reuse the same client token for other API requests. If you retry a request that completed successfully using the same client token and the same parameters, the retry succeeds without performing any further actions. If you retry a successful request using the same client token, but one or more of the parameters are different, the retry fails with a ValidationException error.<br/>
        :return: stream:  The stream.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>url</i> The URL to connect to this stream using the DCV client.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>streamId</i> The stream ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusCode</i> The streaming session stream status code.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>state</i> The current state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>expiresAt</i> The Unix epoch timestamp in seconds for when the resource expires.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdBy</i> The user ID of the user that created the streaming session stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The Unix epoch timestamp in seconds for when the resource was created.<br/>        """
        pass

    def create_studio(self, userRoleArn: str, studioName: str, displayName: str, adminRoleArn: str, clientToken: str=None, studioEncryptionConfiguration: StudioEncryptionConfiguration=None, tags: Tags=None) -> CreateStudioResponse:
        r"""Create a new Studio. When creating a Studio, two IAM roles must be provided: the admin role and the user Role. These roles are assumed by your users when they log in to the Nimble Studio portal. The user role must have the AmazonNimbleStudio-StudioUser managed policy attached for the portal to function properly. The Admin Role must have the AmazonNimbleStudio-StudioAdmin managed policy attached for the portal to function properly. You may optionally specify a KMS key in the StudioEncryptionConfiguration. In Nimble Studio, resource names, descriptions, initialization scripts, and other data you provide are always encrypted at rest using an AWS KMS key. By default, this key is owned by AWS and managed on your behalf. You may provide your own AWS KMS key when calling CreateStudio to encrypt this data using a key you own and manage. When providing an AWS KMS key during studio creation, Nimble Studio creates KMS grants in your account to provide your studio user and admin roles access to these KMS keys. If you delete this grant, the studio will no longer be accessible to your portal users. If you delete the studio KMS key, your studio will no longer be accessible.

        :param self:
        :param userRoleArn:  The IAM role that Studio Users will assume when logging in to the Nimble Studio portal.<br/>tags:  A collection of labels, in the form of key:value pairs, that apply to this resource.<br/>studioName:  The studio name that is used in the URL of the Nimble Studio portal when accessed by Nimble Studio users.<br/>studioEncryptionConfiguration:  The studio encryption configuration.:<br/>displayName:  A friendly name for the studio.<br/>clientToken:  To make an idempotent API request using one of these actions, specify a client token in the request. You should not reuse the same client token for other API requests. If you retry a request that completed successfully using the same client token and the same parameters, the retry succeeds without performing any further actions. If you retry a successful request using the same client token, but one or more of the parameters are different, the retry fails with a ValidationException error.<br/>adminRoleArn:  The IAM role that Studio Admins will assume when logging in to the Nimble Studio portal.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>keyType</i> The type of KMS key that is used to encrypt studio data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>keyArn</i> The ARN for a KMS key that is used to encrypt studio data.<br/>
        :return: studio:  Information about a studio.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>userRoleArn</i> The IAM role that studio users assume when logging in to the Nimble Studio portal.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>updatedAt</i> The Unix epoch timestamp in seconds for when the resource was updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> A collection of labels, in the form of key:value pairs, that apply to this resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>studioUrl</i> The address of the web page for the studio.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>studioName</i> The name of the studio, as included in the URL when accessing it in the Nimble Studio portal.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>studioId</i> The unique identifier for a studio resource. In Nimble Studio, all other resources are contained in a studio resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>studioEncryptionConfiguration</i> Configuration of the encryption method that is used for the studio.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>studioEncryptionConfiguration</b>: Configuration of the encryption method that is used for the studio.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusMessage</i> Additional detail on the studio state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusCode</i> Status codes that provide additional detail on the studio state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>state</i> The current state of the studio resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ssoClientId</i> The AWS SSO application client ID used to integrate with AWS SSO to enable AWS SSO users to log in to Nimble portal.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>homeRegion</i> The AWS region where the studio resource is located.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>displayName</i> A friendly name for the studio.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The Unix epoch timestamp in seconds for when the resource was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) that is assigned to a studio resource and uniquely identifies it. ARNs are unique across all Regions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>adminRoleArn</i> The IAM role that studio admins assume when logging in to the Nimble Studio portal.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>keyType</i> The type of KMS key that is used to encrypt studio data.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>keyArn</i> The ARN for a KMS key that is used to encrypt studio data.<br/>        """
        pass

    def create_studio_component(self, type: str, studioId: str, name: str, clientToken: str=None, configuration: StudioComponentConfiguration=None, description: str=None, ec2SecurityGroupIds: List[SecurityGroupId]=None, initializationScripts: List[StudioComponentInitializationScript]=None, scriptParameters: List[ScriptParameterKeyValue]=None, subtype: str=None, tags: Tags=None) -> CreateStudioComponentResponse:
        r"""Creates a studio component resource.

        :param self:
        :param type:  The type of the studio component.<br/>tags:  A collection of labels, in the form of key:value pairs, that apply to this resource.<br/>subtype:  The specific subtype of a studio component.<br/>studioId:  The studio ID.<br/>scriptParameters:  Parameters for the studio component scripts.<br/>name:  The name for the studio component.<br/>initializationScripts:  Initialization scripts for studio components.<br/>ec2SecurityGroupIds:  The EC2 security groups that control access to the studio component.<br/>description:  The description.<br/>configuration:  The configuration of the studio component, based on component type.:<br/>clientToken:  To make an idempotent API request using one of these actions, specify a client token in the request. You should not reuse the same client token for other API requests. If you retry a request that completed successfully using the same client token and the same parameters, the retry succeeds without performing any further actions. If you retry a successful request using the same client token, but one or more of the parameters are different, the retry fails with a ValidationException error.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>sharedFileSystemConfiguration</i> The configuration for a shared file storage system that is associated with a studio resource.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>sharedFileSystemConfiguration</b>: The configuration for a shared file storage system that is associated with a studio resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>licenseServiceConfiguration</i> The configuration for a license service that is associated with a studio resource.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>licenseServiceConfiguration</b>: The configuration for a license service that is associated with a studio resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>computeFarmConfiguration</i> The configuration for a render farm that is associated with a studio resource.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>computeFarmConfiguration</b>: The configuration for a render farm that is associated with a studio resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>activeDirectoryConfiguration</i> The configuration for a Microsoft Active Directory (Microsoft AD) studio resource.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>activeDirectoryConfiguration</b>: The configuration for a Microsoft Active Directory (Microsoft AD) studio resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>organizationalUnitDistinguishedName</i> The distinguished name (DN) and organizational unit (OU) of an Active Directory computer.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>directoryId</i> The directory ID of the AWS Directory Service for Microsoft AD to access using this studio component.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>computerAttributes</i> A collection of custom attributes for an Active Directory computer.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>endpoint</i> The endpoint of the ComputeFarm that is accessed by the studio component resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>activeDirectoryUser</i> The name of an Active Directory user that is used on ComputeFarm worker instances.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>endpoint</i> The endpoint of the license service that is accessed by the studio component resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>windowsMountDrive</i> The mount location for a shared file system on a Windows virtual workstation.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>shareName</i> The name of the file share.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>linuxMountPoint</i> The mount location for a shared file system on a Linux virtual workstation.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>fileSystemId</i> The unique identifier for a file system.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>endpoint</i> The endpoint of the shared file system that is accessed by the studio component resource.<br/>
        :return: studioComponent:  Information about the studio component.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>updatedBy</i> The user ID of the user that most recently updated the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>updatedAt</i> The Unix epoch timestamp in seconds for when the resource was updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of the studio component.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> A collection of labels, in the form of key:value pairs, that apply to this resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>subtype</i> The specific subtype of a studio component.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>studioComponentId</i> The unique identifier for a studio component resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusMessage</i> The status message for the studio component.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusCode</i> The status code.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>state</i> The current state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>scriptParameters</i> Parameters for the studio component scripts.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> A friendly name for the studio component resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>initializationScripts</i> Initialization scripts for studio components.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ec2SecurityGroupIds</i> The EC2 security groups that control access to the studio component.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> A human-readable description for the studio component resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdBy</i> The user ID of the user that created the studio component.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The Unix epoch timestamp in seconds for when the resource was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>configuration</i> The configuration of the studio component, based on component type.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>configuration</b>: The configuration of the studio component, based on component type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The ARN of the resource.<br/>The configuration for a Microsoft Active Directory (Microsoft AD) studio resource.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>activeDirectoryConfiguration</b>: The configuration for a Microsoft Active Directory (Microsoft AD) studio resource.        """
        pass

    def delete_launch_profile(self, studioId: str, launchProfileId: str, clientToken: str=None) -> DeleteLaunchProfileResponse:
        r"""Permanently delete a launch profile.

        :param self:
        :param studioId:  The studio ID.<br/>launchProfileId:  The launch profile ID.<br/>clientToken:  To make an idempotent API request using one of these actions, specify a client token in the request. You should not reuse the same client token for other API requests. If you retry a request that completed successfully using the same client token and the same parameters, the retry succeeds without performing any further actions. If you retry a successful request using the same client token, but one or more of the parameters are different, the retry fails with a ValidationException error.<br/>
        :return: launchProfile:  The launch profile.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>updatedBy</i> The user ID of the user that most recently updated the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>updatedAt</i> The Unix epoch timestamp in seconds for when the resource was updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> A collection of labels, in the form of key:value pairs, that apply to this resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>studioComponentIds</i> Unique identifiers for a collection of studio components that can be used with this launch profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>streamConfiguration</i> A configuration for a streaming session.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>streamConfiguration</b>: A configuration for a streaming session.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusMessage</i> The status message for the launch profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusCode</i> The status code.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>state</i> The current state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> A friendly name for the launch profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>launchProfileProtocolVersions</i> The version number of the protocol that is used by the launch profile. The only valid version is "2021-03-31".<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>launchProfileId</i> The launch profile ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ec2SubnetIds</i> Unique identifiers for a collection of EC2 subnets.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> A human-readable description of the launch profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdBy</i> The user ID of the user that created the launch profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The Unix epoch timestamp in seconds for when the resource was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The ARN of the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>streamingImageIds</i> The streaming images that users can select from when launching a streaming session with this launch profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>maxSessionLengthInMinutes</i> The length of time, in minutes, that a streaming session can run. After this point, Nimble Studio automatically terminates the session.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ec2InstanceTypes</i> The EC2 instance types that users can select from when launching a streaming session with this launch profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>clipboardMode</i> Enable or disable the use of the system clipboard to copy and paste between the streaming session and streaming client.<br/>        """
        pass

    def delete_launch_profile_member(self, studioId: str, principalId: str, launchProfileId: str, clientToken: str=None) -> DeleteLaunchProfileMemberResponse:
        r"""Delete a user from launch profile membership.

        :param self:
        :param studioId:  The studio ID.<br/>principalId:  The principal ID.<br/>launchProfileId:  The launch profile ID.<br/>clientToken:  To make an idempotent API request using one of these actions, specify a client token in the request. You should not reuse the same client token for other API requests. If you retry a request that completed successfully using the same client token and the same parameters, the retry succeeds without performing any further actions. If you retry a successful request using the same client token, but one or more of the parameters are different, the retry fails with a ValidationException error.<br/>
        :return:         """
        pass

    def delete_streaming_image(self, studioId: str, streamingImageId: str, clientToken: str=None) -> DeleteStreamingImageResponse:
        r"""Delete streaming image.

        :param self:
        :param studioId:  The studio ID.<br/>streamingImageId:  The streaming image ID.<br/>clientToken:  To make an idempotent API request using one of these actions, specify a client token in the request. You should not reuse the same client token for other API requests. If you retry a request that completed successfully using the same client token and the same parameters, the retry succeeds without performing any further actions. If you retry a successful request using the same client token, but one or more of the parameters are different, the retry fails with a ValidationException error.<br/>
        :return: streamingImage:  The streaming image.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> A collection of labels, in the form of key:value pairs, that apply to this resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>streamingImageId</i> The ID of the streaming image.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusMessage</i> The status message for the streaming image.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusCode</i> The status code.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>state</i> The current state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>platform</i> The platform of the streaming image, either WINDOWS or LINUX.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>owner</i> The owner of the streaming image, either the studioId that contains the streaming image, or 'amazon' for images that are provided by Amazon Nimble Studio.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> A friendly name for a streaming image resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>eulaIds</i> The list of EULAs that must be accepted before a Streaming Session can be started using this streaming image.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>encryptionConfiguration</i> The encryption configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>encryptionConfiguration</b>: The encryption configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ec2ImageId</i> The ID of an EC2 machine image with which to create the streaming image.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> A human-readable description of the streaming image.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The ARN of the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>keyType</i> The type of KMS key that is used to encrypt studio data.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>keyArn</i> The ARN for a KMS key that is used to encrypt studio data.<br/>        """
        pass

    def delete_streaming_session(self, studioId: str, sessionId: str, clientToken: str=None) -> DeleteStreamingSessionResponse:
        r"""Deletes streaming session resource. After invoking this operation, use GetStreamingSession to poll the resource until it transitions to a DELETED state. A streaming session will count against your streaming session quota until it is marked DELETED.

        :param self:
        :param studioId:  The studio ID.<br/>sessionId:  The session ID.<br/>clientToken:  To make an idempotent API request using one of these actions, specify a client token in the request. You should not reuse the same client token for other API requests. If you retry a request that completed successfully using the same client token and the same parameters, the retry succeeds without performing any further actions. If you retry a successful request using the same client token, but one or more of the parameters are different, the retry fails with a ValidationException error.<br/>
        :return: session:  The session.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>updatedBy</i> The user ID of the user that most recently updated the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>updatedAt</i> The Unix epoch timestamp in seconds for when the resource was updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>terminateAt</i> The time the streaming session will automatically terminate if not terminated by the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> A collection of labels, in the form of key:value pairs, that apply to this resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>streamingImageId</i> The ID of the streaming image.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusMessage</i> The status message for the streaming session.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusCode</i> The status code.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>state</i> The current state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>sessionId</i> The session ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>launchProfileId</i> The ID of the launch profile used to control access from the streaming session.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ec2InstanceType</i> The EC2 Instance type used for the streaming session.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdBy</i> The user ID of the user that created the streaming session.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The Unix epoch timestamp in seconds for when the resource was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The ARN of the resource.<br/>        """
        pass

    def delete_studio(self, studioId: str, clientToken: str=None) -> DeleteStudioResponse:
        r"""Delete a studio resource.

        :param self:
        :param studioId:  The studio ID.<br/>clientToken:  To make an idempotent API request using one of these actions, specify a client token in the request. You should not reuse the same client token for other API requests. If you retry a request that completed successfully using the same client token and the same parameters, the retry succeeds without performing any further actions. If you retry a successful request using the same client token, but one or more of the parameters are different, the retry fails with a ValidationException error.<br/>
        :return: studio:  Information about a studio.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>userRoleArn</i> The IAM role that studio users assume when logging in to the Nimble Studio portal.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>updatedAt</i> The Unix epoch timestamp in seconds for when the resource was updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> A collection of labels, in the form of key:value pairs, that apply to this resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>studioUrl</i> The address of the web page for the studio.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>studioName</i> The name of the studio, as included in the URL when accessing it in the Nimble Studio portal.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>studioId</i> The unique identifier for a studio resource. In Nimble Studio, all other resources are contained in a studio resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>studioEncryptionConfiguration</i> Configuration of the encryption method that is used for the studio.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>studioEncryptionConfiguration</b>: Configuration of the encryption method that is used for the studio.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusMessage</i> Additional detail on the studio state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusCode</i> Status codes that provide additional detail on the studio state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>state</i> The current state of the studio resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ssoClientId</i> The AWS SSO application client ID used to integrate with AWS SSO to enable AWS SSO users to log in to Nimble portal.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>homeRegion</i> The AWS region where the studio resource is located.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>displayName</i> A friendly name for the studio.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The Unix epoch timestamp in seconds for when the resource was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) that is assigned to a studio resource and uniquely identifies it. ARNs are unique across all Regions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>adminRoleArn</i> The IAM role that studio admins assume when logging in to the Nimble Studio portal.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>keyType</i> The type of KMS key that is used to encrypt studio data.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>keyArn</i> The ARN for a KMS key that is used to encrypt studio data.<br/>        """
        pass

    def delete_studio_component(self, studioId: str, studioComponentId: str, clientToken: str=None) -> DeleteStudioComponentResponse:
        r"""Deletes a studio component resource.

        :param self:
        :param studioId:  The studio ID.<br/>studioComponentId:  The studio component ID.<br/>clientToken:  To make an idempotent API request using one of these actions, specify a client token in the request. You should not reuse the same client token for other API requests. If you retry a request that completed successfully using the same client token and the same parameters, the retry succeeds without performing any further actions. If you retry a successful request using the same client token, but one or more of the parameters are different, the retry fails with a ValidationException error.<br/>
        :return: studioComponent:  Information about the studio component.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>updatedBy</i> The user ID of the user that most recently updated the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>updatedAt</i> The Unix epoch timestamp in seconds for when the resource was updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of the studio component.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> A collection of labels, in the form of key:value pairs, that apply to this resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>subtype</i> The specific subtype of a studio component.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>studioComponentId</i> The unique identifier for a studio component resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusMessage</i> The status message for the studio component.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusCode</i> The status code.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>state</i> The current state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>scriptParameters</i> Parameters for the studio component scripts.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> A friendly name for the studio component resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>initializationScripts</i> Initialization scripts for studio components.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ec2SecurityGroupIds</i> The EC2 security groups that control access to the studio component.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> A human-readable description for the studio component resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdBy</i> The user ID of the user that created the studio component.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The Unix epoch timestamp in seconds for when the resource was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>configuration</i> The configuration of the studio component, based on component type.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>configuration</b>: The configuration of the studio component, based on component type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The ARN of the resource.<br/>The configuration for a Microsoft Active Directory (Microsoft AD) studio resource.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>activeDirectoryConfiguration</b>: The configuration for a Microsoft Active Directory (Microsoft AD) studio resource.        """
        pass

    def delete_studio_member(self, studioId: str, principalId: str, clientToken: str=None) -> DeleteStudioMemberResponse:
        r"""Delete a user from studio membership.

        :param self:
        :param studioId:  The studio ID.<br/>principalId:  The principal ID.<br/>clientToken:  To make an idempotent API request using one of these actions, specify a client token in the request. You should not reuse the same client token for other API requests. If you retry a request that completed successfully using the same client token and the same parameters, the retry succeeds without performing any further actions. If you retry a successful request using the same client token, but one or more of the parameters are different, the retry fails with a ValidationException error.<br/>
        :return:         """
        pass

    def get_eula(self, eulaId: str) -> GetEulaResponse:
        r"""Get Eula.

        :param self:
        :param eulaId:  The EULA ID.<br/>
        :return: eula:  The EULA.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>updatedAt</i> The Unix epoch timestamp in seconds for when the resource was updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name for the EULA.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>eulaId</i> The EULA ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The Unix epoch timestamp in seconds for when the resource was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>content</i> The EULA content.<br/>        """
        pass

    def get_launch_profile(self, studioId: str, launchProfileId: str) -> GetLaunchProfileResponse:
        r"""Get a launch profile.

        :param self:
        :param studioId:  The studio ID.<br/>launchProfileId:  The launch profile ID.<br/>
        :return: launchProfile:  The launch profile.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>updatedBy</i> The user ID of the user that most recently updated the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>updatedAt</i> The Unix epoch timestamp in seconds for when the resource was updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> A collection of labels, in the form of key:value pairs, that apply to this resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>studioComponentIds</i> Unique identifiers for a collection of studio components that can be used with this launch profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>streamConfiguration</i> A configuration for a streaming session.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>streamConfiguration</b>: A configuration for a streaming session.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusMessage</i> The status message for the launch profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusCode</i> The status code.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>state</i> The current state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> A friendly name for the launch profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>launchProfileProtocolVersions</i> The version number of the protocol that is used by the launch profile. The only valid version is "2021-03-31".<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>launchProfileId</i> The launch profile ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ec2SubnetIds</i> Unique identifiers for a collection of EC2 subnets.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> A human-readable description of the launch profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdBy</i> The user ID of the user that created the launch profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The Unix epoch timestamp in seconds for when the resource was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The ARN of the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>streamingImageIds</i> The streaming images that users can select from when launching a streaming session with this launch profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>maxSessionLengthInMinutes</i> The length of time, in minutes, that a streaming session can run. After this point, Nimble Studio automatically terminates the session.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ec2InstanceTypes</i> The EC2 instance types that users can select from when launching a streaming session with this launch profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>clipboardMode</i> Enable or disable the use of the system clipboard to copy and paste between the streaming session and streaming client.<br/>        """
        pass

    def get_launch_profile_details(self, studioId: str, launchProfileId: str) -> GetLaunchProfileDetailsResponse:
        r"""Launch profile details include the launch profile resource and summary information of resources that are used by, or available to, the launch profile. This includes the name and description of all studio components used by the launch profiles, and the name and description of streaming images that can be used with this launch profile.

        :param self:
        :param studioId:  The studio ID.<br/>launchProfileId:  The launch profile ID.<br/>
        :return: studioComponentSummaries:  A collection of studio component summaries.<br/>streamingImages:  A collection of streaming images.<br/>launchProfile:  The launch profile.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>updatedBy</i> The user ID of the user that most recently updated the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>updatedAt</i> The Unix epoch timestamp in seconds for when the resource was updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> A collection of labels, in the form of key:value pairs, that apply to this resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>studioComponentIds</i> Unique identifiers for a collection of studio components that can be used with this launch profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>streamConfiguration</i> A configuration for a streaming session.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>streamConfiguration</b>: A configuration for a streaming session.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusMessage</i> The status message for the launch profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusCode</i> The status code.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>state</i> The current state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> A friendly name for the launch profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>launchProfileProtocolVersions</i> The version number of the protocol that is used by the launch profile. The only valid version is "2021-03-31".<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>launchProfileId</i> The launch profile ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ec2SubnetIds</i> Unique identifiers for a collection of EC2 subnets.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> A human-readable description of the launch profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdBy</i> The user ID of the user that created the launch profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The Unix epoch timestamp in seconds for when the resource was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The ARN of the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>streamingImageIds</i> The streaming images that users can select from when launching a streaming session with this launch profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>maxSessionLengthInMinutes</i> The length of time, in minutes, that a streaming session can run. After this point, Nimble Studio automatically terminates the session.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ec2InstanceTypes</i> The EC2 instance types that users can select from when launching a streaming session with this launch profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>clipboardMode</i> Enable or disable the use of the system clipboard to copy and paste between the streaming session and streaming client.<br/>        """
        pass

    def get_launch_profile_initialization(self, studioId: str, platform: str, launchPurpose: str, launchProfileProtocolVersions: List[__string], launchProfileId: str) -> GetLaunchProfileInitializationResponse:
        r"""Get a launch profile initialization.

        :param self:
        :param studioId:  The studio ID.<br/>platform:  The platform.<br/>launchPurpose:  The launch purpose.<br/>launchProfileProtocolVersions:  A collection of launch profile protocol versions.<br/>launchProfileId:  The launch profile ID.<br/>
        :return: launchProfileInitialization:  The launch profile initialization.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>userInitializationScripts</i> The user initializtion scripts.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>systemInitializationScripts</i> The system initializtion scripts.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>platform</i> The platform of the launch platform, either WINDOWS or LINUX.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name for the launch profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>launchPurpose</i> The launch purpose.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>launchProfileProtocolVersion</i> The version number of the protocol that is used by the launch profile. The only valid version is "2021-03-31".<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>launchProfileId</i> The launch profile ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ec2SecurityGroupIds</i> The EC2 security groups that control access to the studio component.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>activeDirectory</i> A LaunchProfileInitializationActiveDirectory resource.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>activeDirectory</b>: A LaunchProfileInitializationActiveDirectory resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>studioComponentName</i> The name for the studio component.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>studioComponentId</i> The unique identifier for a studio component resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>organizationalUnitDistinguishedName</i> The name for the organizational unit distinguished name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>dnsIpAddresses</i> The DNS IP address.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>directoryName</i> The directory name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>directoryId</i> The directory ID of the AWS Directory Service for Microsoft AD to access using this launch profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>computerAttributes</i> A collection of custom attributes for an Active Directory computer.<br/>        """
        pass

    def get_launch_profile_member(self, studioId: str, principalId: str, launchProfileId: str) -> GetLaunchProfileMemberResponse:
        r"""Get a user persona in launch profile membership.

        :param self:
        :param studioId:  The studio ID.<br/>principalId:  The principal ID.<br/>launchProfileId:  The launch profile ID.<br/>
        :return: member:  The member.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>principalId</i> The principal ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>persona</i> The persona.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>identityStoreId</i> The ID of the identity store.<br/>        """
        pass

    def get_streaming_image(self, studioId: str, streamingImageId: str) -> GetStreamingImageResponse:
        r"""Get streaming image.

        :param self:
        :param studioId:  The studio ID.<br/>streamingImageId:  The streaming image ID.<br/>
        :return: streamingImage:  The streaming image.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> A collection of labels, in the form of key:value pairs, that apply to this resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>streamingImageId</i> The ID of the streaming image.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusMessage</i> The status message for the streaming image.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusCode</i> The status code.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>state</i> The current state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>platform</i> The platform of the streaming image, either WINDOWS or LINUX.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>owner</i> The owner of the streaming image, either the studioId that contains the streaming image, or 'amazon' for images that are provided by Amazon Nimble Studio.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> A friendly name for a streaming image resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>eulaIds</i> The list of EULAs that must be accepted before a Streaming Session can be started using this streaming image.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>encryptionConfiguration</i> The encryption configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>encryptionConfiguration</b>: The encryption configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ec2ImageId</i> The ID of an EC2 machine image with which to create the streaming image.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> A human-readable description of the streaming image.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The ARN of the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>keyType</i> The type of KMS key that is used to encrypt studio data.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>keyArn</i> The ARN for a KMS key that is used to encrypt studio data.<br/>        """
        pass

    def get_streaming_session(self, studioId: str, sessionId: str) -> GetStreamingSessionResponse:
        r"""Gets StreamingSession resource. Invoke this operation to poll for a streaming session state while creating or deleting a session.

        :param self:
        :param studioId:  The studio ID.<br/>sessionId:  The session ID.<br/>
        :return: session:  The session.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>updatedBy</i> The user ID of the user that most recently updated the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>updatedAt</i> The Unix epoch timestamp in seconds for when the resource was updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>terminateAt</i> The time the streaming session will automatically terminate if not terminated by the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> A collection of labels, in the form of key:value pairs, that apply to this resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>streamingImageId</i> The ID of the streaming image.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusMessage</i> The status message for the streaming session.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusCode</i> The status code.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>state</i> The current state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>sessionId</i> The session ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>launchProfileId</i> The ID of the launch profile used to control access from the streaming session.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ec2InstanceType</i> The EC2 Instance type used for the streaming session.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdBy</i> The user ID of the user that created the streaming session.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The Unix epoch timestamp in seconds for when the resource was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The ARN of the resource.<br/>        """
        pass

    def get_streaming_session_stream(self, studioId: str, streamId: str, sessionId: str) -> GetStreamingSessionStreamResponse:
        r"""Gets a StreamingSessionStream for a streaming session. Invoke this operation to poll the resource after invoking CreateStreamingSessionStream. After the StreamingSessionStream changes to the state READY, the url property will contain a stream to be used with the DCV streaming client.

        :param self:
        :param studioId:  The studio ID.<br/>streamId:  The stream ID.<br/>sessionId:  The session ID.<br/>
        :return: stream:  The stream.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>url</i> The URL to connect to this stream using the DCV client.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>streamId</i> The stream ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusCode</i> The streaming session stream status code.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>state</i> The current state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>expiresAt</i> The Unix epoch timestamp in seconds for when the resource expires.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdBy</i> The user ID of the user that created the streaming session stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The Unix epoch timestamp in seconds for when the resource was created.<br/>        """
        pass

    def get_studio(self, studioId: str) -> GetStudioResponse:
        r"""Get a Studio resource.

        :param self:
        :param studioId:  The studio ID.<br/>
        :return: studio:  Information about a studio.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>userRoleArn</i> The IAM role that studio users assume when logging in to the Nimble Studio portal.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>updatedAt</i> The Unix epoch timestamp in seconds for when the resource was updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> A collection of labels, in the form of key:value pairs, that apply to this resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>studioUrl</i> The address of the web page for the studio.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>studioName</i> The name of the studio, as included in the URL when accessing it in the Nimble Studio portal.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>studioId</i> The unique identifier for a studio resource. In Nimble Studio, all other resources are contained in a studio resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>studioEncryptionConfiguration</i> Configuration of the encryption method that is used for the studio.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>studioEncryptionConfiguration</b>: Configuration of the encryption method that is used for the studio.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusMessage</i> Additional detail on the studio state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusCode</i> Status codes that provide additional detail on the studio state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>state</i> The current state of the studio resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ssoClientId</i> The AWS SSO application client ID used to integrate with AWS SSO to enable AWS SSO users to log in to Nimble portal.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>homeRegion</i> The AWS region where the studio resource is located.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>displayName</i> A friendly name for the studio.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The Unix epoch timestamp in seconds for when the resource was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) that is assigned to a studio resource and uniquely identifies it. ARNs are unique across all Regions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>adminRoleArn</i> The IAM role that studio admins assume when logging in to the Nimble Studio portal.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>keyType</i> The type of KMS key that is used to encrypt studio data.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>keyArn</i> The ARN for a KMS key that is used to encrypt studio data.<br/>        """
        pass

    def get_studio_component(self, studioId: str, studioComponentId: str) -> GetStudioComponentResponse:
        r"""Gets a studio component resource.

        :param self:
        :param studioId:  The studio ID.<br/>studioComponentId:  The studio component ID.<br/>
        :return: studioComponent:  Information about the studio component.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>updatedBy</i> The user ID of the user that most recently updated the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>updatedAt</i> The Unix epoch timestamp in seconds for when the resource was updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of the studio component.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> A collection of labels, in the form of key:value pairs, that apply to this resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>subtype</i> The specific subtype of a studio component.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>studioComponentId</i> The unique identifier for a studio component resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusMessage</i> The status message for the studio component.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusCode</i> The status code.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>state</i> The current state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>scriptParameters</i> Parameters for the studio component scripts.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> A friendly name for the studio component resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>initializationScripts</i> Initialization scripts for studio components.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ec2SecurityGroupIds</i> The EC2 security groups that control access to the studio component.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> A human-readable description for the studio component resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdBy</i> The user ID of the user that created the studio component.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The Unix epoch timestamp in seconds for when the resource was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>configuration</i> The configuration of the studio component, based on component type.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>configuration</b>: The configuration of the studio component, based on component type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The ARN of the resource.<br/>The configuration for a Microsoft Active Directory (Microsoft AD) studio resource.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>activeDirectoryConfiguration</b>: The configuration for a Microsoft Active Directory (Microsoft AD) studio resource.        """
        pass

    def get_studio_member(self, studioId: str, principalId: str) -> GetStudioMemberResponse:
        r"""Get a user's membership in a studio.

        :param self:
        :param studioId:  The studio ID.<br/>principalId:  The principal ID.<br/>
        :return: member:  The member.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>principalId</i> The principal ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>persona</i> The persona.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>identityStoreId</i> The ID of the identity store.<br/>        """
        pass

    def list_eula_acceptances(self, studioId: str, eulaIds: List[__string]=None, nextToken: str=None) -> ListEulaAcceptancesResponse:
        r"""List Eula Acceptances.

        :param self:
        :param studioId:  The studio ID.<br/>nextToken:  The token for the next set of results, or null if there are no more results.<br/>eulaIds:  A collection of EULA IDs.<br/>
        :return: nextToken:  The token for the next set of results, or null if there are no more results.<br/>eulaAcceptances:  A collection of EULA acceptances.<br/>        """
        pass

    def list_eulas(self, eulaIds: List[__string]=None, nextToken: str=None) -> ListEulasResponse:
        r"""List Eulas.

        :param self:
        :param nextToken:  The token for the next set of results, or null if there are no more results.<br/>eulaIds:  A collection of EULA IDs.<br/>
        :return: nextToken:  The token for the next set of results, or null if there are no more results.<br/>eulas:  A collection of EULA resources.<br/>        """
        pass

    def list_launch_profile_members(self, studioId: str, launchProfileId: str, maxResults: int=None, nextToken: str=None) -> ListLaunchProfileMembersResponse:
        r"""Get all users in a given launch profile membership.

        :param self:
        :param studioId:  The studio ID.<br/>nextToken:  The token for the next set of results, or null if there are no more results.<br/>maxResults:  The maximum number of results to be returned per request.<br/>launchProfileId:  The launch profile ID.<br/>
        :return: nextToken:  The token for the next set of results, or null if there are no more results.<br/>members:  A list of members.<br/>        """
        pass

    def list_launch_profiles(self, studioId: str, maxResults: int=None, nextToken: str=None, principalId: str=None, states: List[__string]=None) -> ListLaunchProfilesResponse:
        r"""List all the launch profiles a studio.

        :param self:
        :param studioId:  The studio ID.<br/>states:  A list of states.<br/>principalId:  The principal ID.<br/>nextToken:  The token for the next set of results, or null if there are no more results.<br/>maxResults:  The maximum number of results to be returned per request.<br/>
        :return: nextToken:  The token for the next set of results, or null if there are no more results.<br/>launchProfiles:  A collection of launch profiles.<br/>        """
        pass

    def list_streaming_images(self, studioId: str, nextToken: str=None, owner: str=None) -> ListStreamingImagesResponse:
        r"""List the streaming image resources available to this studio. This list will contain both images provided by AWS, as well as streaming images that you have created in your studio.

        :param self:
        :param studioId:  The studio ID.<br/>owner:  The owner.<br/>nextToken:  The token for the next set of results, or null if there are no more results.<br/>
        :return: streamingImages:  A collection of streaming images.<br/>nextToken:  The token for the next set of results, or null if there are no more results.<br/>        """
        pass

    def list_streaming_sessions(self, studioId: str, createdBy: str=None, nextToken: str=None, sessionIds: str=None) -> ListStreamingSessionsResponse:
        r"""Lists the streaming image resources in a studio.

        :param self:
        :param studioId:  The studio ID.<br/>sessionIds:  A collection of session IDs.<br/>nextToken:  The token for the next set of results, or null if there are no more results.<br/>createdBy:  The user ID.<br/>
        :return: sessions:  A collection of streaming sessions.<br/>nextToken:  The token for the next set of results, or null if there are no more results.<br/>        """
        pass

    def list_studio_components(self, studioId: str, maxResults: int=None, nextToken: str=None, states: List[__string]=None, types: List[__string]=None) -> ListStudioComponentsResponse:
        r"""Lists the StudioComponents in a studio.

        :param self:
        :param types:  The types.<br/>studioId:  The studio ID.<br/>states:  A list of states.<br/>nextToken:  The token for the next set of results, or null if there are no more results.<br/>maxResults:  The maximum number of results to be returned per request.<br/>
        :return: studioComponents:  A collection of studio components.<br/>nextToken:  The token for the next set of results, or null if there are no more results.<br/>        """
        pass

    def list_studio_members(self, studioId: str, maxResults: int=None, nextToken: str=None) -> ListStudioMembersResponse:
        r"""Get all users in a given studio membership.

        :param self:
        :param studioId:  The studio ID.<br/>nextToken:  The token for the next set of results, or null if there are no more results.<br/>maxResults:  The maximum number of results to be returned per request.<br/>
        :return: nextToken:  The token for the next set of results, or null if there are no more results.<br/>members:  A list of members.<br/>        """
        pass

    def list_studios(self, nextToken: str=None) -> ListStudiosResponse:
        r"""List studios in your AWS account in the requested AWS Region.

        :param self:
        :param nextToken:  The token for the next set of results, or null if there are no more results.<br/>
        :return: studios:  A collection of studios.<br/>nextToken:  The token for the next set of results, or null if there are no more results.<br/>        """
        pass

    def list_tags_for_resource(self, resourceArn: str) -> ListTagsForResourceResponse:
        r"""Gets the tags for a resource, given its Amazon Resource Names (ARN). This operation supports ARNs for all resource types in Nimble Studio that support tags, including studio, studio component, launch profile, streaming image, and streaming session. All resources that can be tagged will contain an ARN property, so you do not have to create this ARN yourself.

        :param self:
        :param resourceArn:  The ARN of the target resource for tagging operations.<br/>
        :return: tags:  A collection of labels, in the form of key:value pairs, that apply to this resource.<br/>        """
        pass

    def put_launch_profile_members(self, studioId: str, members: List[NewLaunchProfileMember], launchProfileId: str, identityStoreId: str, clientToken: str=None) -> PutLaunchProfileMembersResponse:
        r"""Add/update users with given persona to launch profile membership.

        :param self:
        :param studioId:  The studio ID.<br/>members:  A list of members.<br/>launchProfileId:  The launch profile ID.<br/>identityStoreId:  The ID of the identity store.<br/>clientToken:  To make an idempotent API request using one of these actions, specify a client token in the request. You should not reuse the same client token for other API requests. If you retry a request that completed successfully using the same client token and the same parameters, the retry succeeds without performing any further actions. If you retry a successful request using the same client token, but one or more of the parameters are different, the retry fails with a ValidationException error.<br/>
        :return:         """
        pass

    def put_studio_members(self, studioId: str, members: List[NewStudioMember], identityStoreId: str, clientToken: str=None) -> PutStudioMembersResponse:
        r"""Add/update users with given persona to studio membership.

        :param self:
        :param studioId:  The studio ID.<br/>members:  A list of members.<br/>identityStoreId:  The ID of the identity store.<br/>clientToken:  To make an idempotent API request using one of these actions, specify a client token in the request. You should not reuse the same client token for other API requests. If you retry a request that completed successfully using the same client token and the same parameters, the retry succeeds without performing any further actions. If you retry a successful request using the same client token, but one or more of the parameters are different, the retry fails with a ValidationException error.<br/>
        :return:         """
        pass

    def start_studio_sso_configuration_repair(self, studioId: str, clientToken: str=None) -> StartStudioSSOConfigurationRepairResponse:
        r"""Repairs the SSO configuration for a given studio. If the studio has a valid AWS SSO configuration currently associated with it, this operation will fail with a validation error. If the studio does not have a valid AWS SSO configuration currently associated with it, then a new AWS SSO application is created for the studio and the studio is changed to the READY state. After the AWS SSO application is repaired, you must use the Amazon Nimble Studio console to add administrators and users to your studio.

        :param self:
        :param studioId:  The studio ID.<br/>clientToken:  To make an idempotent API request using one of these actions, specify a client token in the request. You should not reuse the same client token for other API requests. If you retry a request that completed successfully using the same client token and the same parameters, the retry succeeds without performing any further actions. If you retry a successful request using the same client token, but one or more of the parameters are different, the retry fails with a ValidationException error.<br/>
        :return: studio:  Information about a studio.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>userRoleArn</i> The IAM role that studio users assume when logging in to the Nimble Studio portal.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>updatedAt</i> The Unix epoch timestamp in seconds for when the resource was updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> A collection of labels, in the form of key:value pairs, that apply to this resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>studioUrl</i> The address of the web page for the studio.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>studioName</i> The name of the studio, as included in the URL when accessing it in the Nimble Studio portal.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>studioId</i> The unique identifier for a studio resource. In Nimble Studio, all other resources are contained in a studio resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>studioEncryptionConfiguration</i> Configuration of the encryption method that is used for the studio.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>studioEncryptionConfiguration</b>: Configuration of the encryption method that is used for the studio.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusMessage</i> Additional detail on the studio state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusCode</i> Status codes that provide additional detail on the studio state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>state</i> The current state of the studio resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ssoClientId</i> The AWS SSO application client ID used to integrate with AWS SSO to enable AWS SSO users to log in to Nimble portal.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>homeRegion</i> The AWS region where the studio resource is located.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>displayName</i> A friendly name for the studio.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The Unix epoch timestamp in seconds for when the resource was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) that is assigned to a studio resource and uniquely identifies it. ARNs are unique across all Regions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>adminRoleArn</i> The IAM role that studio admins assume when logging in to the Nimble Studio portal.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>keyType</i> The type of KMS key that is used to encrypt studio data.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>keyArn</i> The ARN for a KMS key that is used to encrypt studio data.<br/>        """
        pass

    def tag_resource(self, resourceArn: str, tags: Tags=None) -> TagResourceResponse:
        r"""Creates tags for a resource, given its ARN.

        :param self:
        :param tags:  A collection of labels, in the form of key:value pairs, that apply to this resource.<br/>resourceArn:  The ARN of the target resource for tagging operations.<br/>
        :return:         """
        pass

    def untag_resource(self, tagKeys: List[__string], resourceArn: str) -> UntagResourceResponse:
        r"""Deletes the tags for a resource.

        :param self:
        :param tagKeys:  An array of tag keys to delete.<br/>resourceArn:  The ARN of the target resource for tagging operations.<br/>
        :return:         """
        pass

    def update_launch_profile(self, studioId: str, launchProfileId: str, clientToken: str=None, description: str=None, launchProfileProtocolVersions: List[LaunchProfileProtocolVersion]=None, name: str=None, streamConfiguration: StreamConfigurationCreate=None, studioComponentIds: List[__string]=None) -> UpdateLaunchProfileResponse:
        r"""Update a launch profile.

        :param self:
        :param studioId:  The studio ID.<br/>studioComponentIds:  Unique identifiers for a collection of studio components that can be used with this launch profile.<br/>streamConfiguration:  A configuration for a streaming session.:<br/>name:  The name for the launch profile.<br/>launchProfileProtocolVersions:  The version number of the protocol that is used by the launch profile. The only valid version is "2021-03-31".<br/>launchProfileId:  The launch profile ID.<br/>description:  The description.<br/>clientToken:  To make an idempotent API request using one of these actions, specify a client token in the request. You should not reuse the same client token for other API requests. If you retry a request that completed successfully using the same client token and the same parameters, the retry succeeds without performing any further actions. If you retry a successful request using the same client token, but one or more of the parameters are different, the retry fails with a ValidationException error.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>streamingImageIds</i> The streaming images that users can select from when launching a streaming session with this launch profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>maxSessionLengthInMinutes</i> The length of time, in minutes, that a streaming session can run. After this point, Nimble Studio automatically terminates the session.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ec2InstanceTypes</i> The EC2 instance types that users can select from when launching a streaming session with this launch profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>clipboardMode</i> Enable or disable the use of the system clipboard to copy and paste between the streaming session and streaming client.<br/>
        :return: launchProfile:  The launch profile.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>updatedBy</i> The user ID of the user that most recently updated the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>updatedAt</i> The Unix epoch timestamp in seconds for when the resource was updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> A collection of labels, in the form of key:value pairs, that apply to this resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>studioComponentIds</i> Unique identifiers for a collection of studio components that can be used with this launch profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>streamConfiguration</i> A configuration for a streaming session.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>streamConfiguration</b>: A configuration for a streaming session.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusMessage</i> The status message for the launch profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusCode</i> The status code.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>state</i> The current state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> A friendly name for the launch profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>launchProfileProtocolVersions</i> The version number of the protocol that is used by the launch profile. The only valid version is "2021-03-31".<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>launchProfileId</i> The launch profile ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ec2SubnetIds</i> Unique identifiers for a collection of EC2 subnets.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> A human-readable description of the launch profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdBy</i> The user ID of the user that created the launch profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The Unix epoch timestamp in seconds for when the resource was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The ARN of the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>streamingImageIds</i> The streaming images that users can select from when launching a streaming session with this launch profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>maxSessionLengthInMinutes</i> The length of time, in minutes, that a streaming session can run. After this point, Nimble Studio automatically terminates the session.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ec2InstanceTypes</i> The EC2 instance types that users can select from when launching a streaming session with this launch profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>clipboardMode</i> Enable or disable the use of the system clipboard to copy and paste between the streaming session and streaming client.<br/>        """
        pass

    def update_launch_profile_member(self, studioId: str, principalId: str, persona: str, launchProfileId: str, clientToken: str=None) -> UpdateLaunchProfileMemberResponse:
        r"""Update a user persona in launch profile membership.

        :param self:
        :param studioId:  The studio ID.<br/>principalId:  The principal ID.<br/>persona:  The persona.<br/>launchProfileId:  The launch profile ID.<br/>clientToken:  To make an idempotent API request using one of these actions, specify a client token in the request. You should not reuse the same client token for other API requests. If you retry a request that completed successfully using the same client token and the same parameters, the retry succeeds without performing any further actions. If you retry a successful request using the same client token, but one or more of the parameters are different, the retry fails with a ValidationException error.<br/>
        :return: member:  The member.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>principalId</i> The principal ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>persona</i> The persona.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>identityStoreId</i> The ID of the identity store.<br/>        """
        pass

    def update_streaming_image(self, studioId: str, streamingImageId: str, clientToken: str=None, description: str=None, name: str=None) -> UpdateStreamingImageResponse:
        r"""Update streaming image.

        :param self:
        :param studioId:  The studio ID.<br/>streamingImageId:  The streaming image ID.<br/>name:  The name for the streaming image.<br/>description:  The description.<br/>clientToken:  To make an idempotent API request using one of these actions, specify a client token in the request. You should not reuse the same client token for other API requests. If you retry a request that completed successfully using the same client token and the same parameters, the retry succeeds without performing any further actions. If you retry a successful request using the same client token, but one or more of the parameters are different, the retry fails with a ValidationException error.<br/>
        :return: streamingImage:  :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> A collection of labels, in the form of key:value pairs, that apply to this resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>streamingImageId</i> The ID of the streaming image.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusMessage</i> The status message for the streaming image.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusCode</i> The status code.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>state</i> The current state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>platform</i> The platform of the streaming image, either WINDOWS or LINUX.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>owner</i> The owner of the streaming image, either the studioId that contains the streaming image, or 'amazon' for images that are provided by Amazon Nimble Studio.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> A friendly name for a streaming image resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>eulaIds</i> The list of EULAs that must be accepted before a Streaming Session can be started using this streaming image.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>encryptionConfiguration</i> The encryption configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>encryptionConfiguration</b>: The encryption configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ec2ImageId</i> The ID of an EC2 machine image with which to create the streaming image.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> A human-readable description of the streaming image.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The ARN of the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>keyType</i> The type of KMS key that is used to encrypt studio data.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>keyArn</i> The ARN for a KMS key that is used to encrypt studio data.<br/>        """
        pass

    def update_studio(self, studioId: str, adminRoleArn: str=None, clientToken: str=None, displayName: str=None, userRoleArn: str=None) -> UpdateStudioResponse:
        r"""Update a Studio resource. Currently, this operation only supports updating the displayName of your studio.

        :param self:
        :param userRoleArn:  The IAM role that Studio Users will assume when logging in to the Nimble Studio portal.<br/>studioId:  The studio ID.<br/>displayName:  A friendly name for the studio.<br/>clientToken:  To make an idempotent API request using one of these actions, specify a client token in the request. You should not reuse the same client token for other API requests. If you retry a request that completed successfully using the same client token and the same parameters, the retry succeeds without performing any further actions. If you retry a successful request using the same client token, but one or more of the parameters are different, the retry fails with a ValidationException error.<br/>adminRoleArn:  The IAM role that Studio Admins will assume when logging in to the Nimble Studio portal.<br/>
        :return: studio:  Information about a studio.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>userRoleArn</i> The IAM role that studio users assume when logging in to the Nimble Studio portal.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>updatedAt</i> The Unix epoch timestamp in seconds for when the resource was updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> A collection of labels, in the form of key:value pairs, that apply to this resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>studioUrl</i> The address of the web page for the studio.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>studioName</i> The name of the studio, as included in the URL when accessing it in the Nimble Studio portal.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>studioId</i> The unique identifier for a studio resource. In Nimble Studio, all other resources are contained in a studio resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>studioEncryptionConfiguration</i> Configuration of the encryption method that is used for the studio.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>studioEncryptionConfiguration</b>: Configuration of the encryption method that is used for the studio.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusMessage</i> Additional detail on the studio state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusCode</i> Status codes that provide additional detail on the studio state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>state</i> The current state of the studio resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ssoClientId</i> The AWS SSO application client ID used to integrate with AWS SSO to enable AWS SSO users to log in to Nimble portal.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>homeRegion</i> The AWS region where the studio resource is located.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>displayName</i> A friendly name for the studio.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The Unix epoch timestamp in seconds for when the resource was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) that is assigned to a studio resource and uniquely identifies it. ARNs are unique across all Regions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>adminRoleArn</i> The IAM role that studio admins assume when logging in to the Nimble Studio portal.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>keyType</i> The type of KMS key that is used to encrypt studio data.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>keyArn</i> The ARN for a KMS key that is used to encrypt studio data.<br/>        """
        pass

    def update_studio_component(self, studioId: str, studioComponentId: str, clientToken: str=None, configuration: StudioComponentConfiguration=None, description: str=None, ec2SecurityGroupIds: List[SecurityGroupId]=None, initializationScripts: List[StudioComponentInitializationScript]=None, name: str=None, scriptParameters: List[ScriptParameterKeyValue]=None, subtype: str=None, type: str=None) -> UpdateStudioComponentResponse:
        r"""Updates a studio component resource.

        :param self:
        :param type:  The type of the studio component.<br/>subtype:  The specific subtype of a studio component.<br/>studioId:  The studio ID.<br/>studioComponentId:  The studio component ID.<br/>scriptParameters:  Parameters for the studio component scripts.<br/>name:  The name for the studio component.<br/>initializationScripts:  Initialization scripts for studio components.<br/>ec2SecurityGroupIds:  The EC2 security groups that control access to the studio component.<br/>description:  The description.<br/>configuration:  The configuration of the studio component, based on component type.:<br/>clientToken:  To make an idempotent API request using one of these actions, specify a client token in the request. You should not reuse the same client token for other API requests. If you retry a request that completed successfully using the same client token and the same parameters, the retry succeeds without performing any further actions. If you retry a successful request using the same client token, but one or more of the parameters are different, the retry fails with a ValidationException error.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>sharedFileSystemConfiguration</i> The configuration for a shared file storage system that is associated with a studio resource.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>sharedFileSystemConfiguration</b>: The configuration for a shared file storage system that is associated with a studio resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>licenseServiceConfiguration</i> The configuration for a license service that is associated with a studio resource.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>licenseServiceConfiguration</b>: The configuration for a license service that is associated with a studio resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>computeFarmConfiguration</i> The configuration for a render farm that is associated with a studio resource.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>computeFarmConfiguration</b>: The configuration for a render farm that is associated with a studio resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>activeDirectoryConfiguration</i> The configuration for a Microsoft Active Directory (Microsoft AD) studio resource.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>activeDirectoryConfiguration</b>: The configuration for a Microsoft Active Directory (Microsoft AD) studio resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>organizationalUnitDistinguishedName</i> The distinguished name (DN) and organizational unit (OU) of an Active Directory computer.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>directoryId</i> The directory ID of the AWS Directory Service for Microsoft AD to access using this studio component.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>computerAttributes</i> A collection of custom attributes for an Active Directory computer.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>endpoint</i> The endpoint of the ComputeFarm that is accessed by the studio component resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>activeDirectoryUser</i> The name of an Active Directory user that is used on ComputeFarm worker instances.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>endpoint</i> The endpoint of the license service that is accessed by the studio component resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>windowsMountDrive</i> The mount location for a shared file system on a Windows virtual workstation.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>shareName</i> The name of the file share.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>linuxMountPoint</i> The mount location for a shared file system on a Linux virtual workstation.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>fileSystemId</i> The unique identifier for a file system.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>endpoint</i> The endpoint of the shared file system that is accessed by the studio component resource.<br/>
        :return: studioComponent:  Information about the studio component.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>updatedBy</i> The user ID of the user that most recently updated the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>updatedAt</i> The Unix epoch timestamp in seconds for when the resource was updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of the studio component.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> A collection of labels, in the form of key:value pairs, that apply to this resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>subtype</i> The specific subtype of a studio component.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>studioComponentId</i> The unique identifier for a studio component resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusMessage</i> The status message for the studio component.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusCode</i> The status code.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>state</i> The current state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>scriptParameters</i> Parameters for the studio component scripts.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> A friendly name for the studio component resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>initializationScripts</i> Initialization scripts for studio components.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ec2SecurityGroupIds</i> The EC2 security groups that control access to the studio component.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> A human-readable description for the studio component resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdBy</i> The user ID of the user that created the studio component.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The Unix epoch timestamp in seconds for when the resource was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>configuration</i> The configuration of the studio component, based on component type.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>configuration</b>: The configuration of the studio component, based on component type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The ARN of the resource.<br/>The configuration for a Microsoft Active Directory (Microsoft AD) studio resource.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>activeDirectoryConfiguration</b>: The configuration for a Microsoft Active Directory (Microsoft AD) studio resource.        """
        pass





class OpsWorks(BaseClient):
    r"""<fullname>AWS OpsWorks</fullname> Welcome to the <i>AWS OpsWorks Stacks API Reference</i>. This guide provides descriptions, syntax, and usage examples for AWS OpsWorks Stacks actions and data types, including common parameters and error codes.  AWS OpsWorks Stacks is an application management service that provides an integrated experience for overseeing the complete application lifecycle. For information about this product, go to the <a href="http://aws.amazon.com/opsworks/">AWS OpsWorks</a> details page.   <b>SDKs and CLI</b>  The most common way to use the AWS OpsWorks Stacks API is by using the AWS Command Line Interface (CLI) or by using one of the AWS SDKs to implement applications in your preferred language. For more information, see: <ul> <li>  <a href="https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html">AWS CLI</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/opsworks/AWSOpsWorksClient.html">AWS SDK for Java</a>  </li> <li>  <a href="https://docs.aws.amazon.com/sdkfornet/latest/apidocs/html/N_Amazon_OpsWorks.htm">AWS SDK for .NET</a>  </li> <li>  <a href="https://docs.aws.amazon.com/aws-sdk-php-2/latest/class-Aws.OpsWorks.OpsWorksClient.html">AWS SDK for PHP 2</a>  </li> <li>  <a href="http://docs.aws.amazon.com/sdkforruby/api/">AWS SDK for Ruby</a>  </li> <li>  <a href="http://aws.amazon.com/documentation/sdkforjavascript/">AWS SDK for Node.js</a>  </li> <li>  <a href="http://docs.pythonboto.org/en/latest/ref/opsworks.html">AWS SDK for Python(Boto)</a>  </li> </ul>  <b>Endpoints</b>  AWS OpsWorks Stacks supports the following endpoints, all HTTPS. You must connect to one of the following endpoints. Stacks can only be accessed or managed within the endpoint in which they are created. <ul> <li> opsworks.us-east-1.amazonaws.com </li> <li> opsworks.us-east-2.amazonaws.com </li> <li> opsworks.us-west-1.amazonaws.com </li> <li> opsworks.us-west-2.amazonaws.com </li> <li> opsworks.ca-central-1.amazonaws.com (API only; not available in the AWS console) </li> <li> opsworks.eu-west-1.amazonaws.com </li> <li> opsworks.eu-west-2.amazonaws.com </li> <li> opsworks.eu-west-3.amazonaws.com </li> <li> opsworks.eu-central-1.amazonaws.com </li> <li> opsworks.ap-northeast-1.amazonaws.com </li> <li> opsworks.ap-northeast-2.amazonaws.com </li> <li> opsworks.ap-south-1.amazonaws.com </li> <li> opsworks.ap-southeast-1.amazonaws.com </li> <li> opsworks.ap-southeast-2.amazonaws.com </li> <li> opsworks.sa-east-1.amazonaws.com </li> </ul>  <b>Chef Versions</b>  When you call <a>CreateStack</a>, <a>CloneStack</a>, or <a>UpdateStack</a> we recommend you use the <code>ConfigurationManager</code> parameter to specify the Chef version. The recommended and default value for Linux stacks is currently 12. Windows stacks use Chef 12.2. For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workingcookbook-chef11.html">Chef Versions</a>. <note> You can specify Chef 12, 11.10, or 11.4 for your Linux stack. We recommend migrating your existing Linux stacks to Chef 12 as soon as possible. </note>"""

    class AppExistsWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_apps` for valid parameters"""
            pass
    class DeploymentSuccessfulWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_deployments` for valid parameters"""
            pass
    class InstanceOnlineWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_instances` for valid parameters"""
            pass
    class InstanceRegisteredWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_instances` for valid parameters"""
            pass
    class InstanceStoppedWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_instances` for valid parameters"""
            pass
    class InstanceTerminatedWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_instances` for valid parameters"""
            pass


    class DescribeEcsClustersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_ecs_clusters` for valid parameters"""
            pass


    class AssignInstanceRequest(Mapping):
        pass
    
    class String(object):
        pass
    
    class AssignVolumeRequest(Mapping):
        pass
    
    class AssociateElasticIpRequest(Mapping):
        pass
    
    class AttachElasticLoadBalancerRequest(Mapping):
        pass
    
    class CloneStackRequest(Mapping):
        pass
    
    class CloneStackResult(Mapping):
        pass
    
    class StackAttributes(object):
        pass
    
    class StackConfigurationManager(Mapping):
        pass
    
    class ChefConfiguration(Mapping):
        pass
    
    class Boolean(object):
        pass
    
    class Source(Mapping):
        pass
    
    class CreateAppRequest(Mapping):
        pass
    
    class CreateAppResult(Mapping):
        pass
    
    class DataSource(Mapping):
        pass
    
    class SslConfiguration(Mapping):
        pass
    
    class AppAttributes(object):
        pass
    
    class EnvironmentVariable(Mapping):
        pass
    
    class CreateDeploymentRequest(Mapping):
        pass
    
    class CreateDeploymentResult(Mapping):
        pass
    
    class DeploymentCommand(Mapping):
        pass
    
    class CreateInstanceRequest(Mapping):
        pass
    
    class CreateInstanceResult(Mapping):
        pass
    
    class BlockDeviceMapping(Mapping):
        pass
    
    class CreateLayerRequest(Mapping):
        pass
    
    class CreateLayerResult(Mapping):
        pass
    
    class LayerAttributes(object):
        pass
    
    class CloudWatchLogsConfiguration(Mapping):
        pass
    
    class VolumeConfiguration(Mapping):
        pass
    
    class Recipes(Mapping):
        pass
    
    class LifecycleEventConfiguration(Mapping):
        pass
    
    class CreateStackRequest(Mapping):
        pass
    
    class CreateStackResult(Mapping):
        pass
    
    class CreateUserProfileRequest(Mapping):
        pass
    
    class CreateUserProfileResult(Mapping):
        pass
    
    class DeleteAppRequest(Mapping):
        pass
    
    class DeleteInstanceRequest(Mapping):
        pass
    
    class DeleteLayerRequest(Mapping):
        pass
    
    class DeleteStackRequest(Mapping):
        pass
    
    class DeleteUserProfileRequest(Mapping):
        pass
    
    class DeregisterEcsClusterRequest(Mapping):
        pass
    
    class DeregisterElasticIpRequest(Mapping):
        pass
    
    class DeregisterInstanceRequest(Mapping):
        pass
    
    class DeregisterRdsDbInstanceRequest(Mapping):
        pass
    
    class DeregisterVolumeRequest(Mapping):
        pass
    
    class DescribeAgentVersionsRequest(Mapping):
        pass
    
    class DescribeAgentVersionsResult(Mapping):
        pass
    
    class DescribeAppsRequest(Mapping):
        pass
    
    class DescribeAppsResult(Mapping):
        pass
    
    class DescribeCommandsRequest(Mapping):
        pass
    
    class DescribeCommandsResult(Mapping):
        pass
    
    class DescribeDeploymentsRequest(Mapping):
        pass
    
    class DescribeDeploymentsResult(Mapping):
        pass
    
    class DescribeEcsClustersRequest(Mapping):
        pass
    
    class DescribeEcsClustersResult(Mapping):
        pass
    
    class DescribeElasticIpsRequest(Mapping):
        pass
    
    class DescribeElasticIpsResult(Mapping):
        pass
    
    class DescribeElasticLoadBalancersRequest(Mapping):
        pass
    
    class DescribeElasticLoadBalancersResult(Mapping):
        pass
    
    class DescribeInstancesRequest(Mapping):
        pass
    
    class DescribeInstancesResult(Mapping):
        pass
    
    class DescribeLayersRequest(Mapping):
        pass
    
    class DescribeLayersResult(Mapping):
        pass
    
    class DescribeLoadBasedAutoScalingRequest(Mapping):
        pass
    
    class DescribeLoadBasedAutoScalingResult(Mapping):
        pass
    
    class DescribeMyUserProfileResult(Mapping):
        pass
    
    class DescribeOperatingSystemsResponse(Mapping):
        pass
    
    class DescribePermissionsRequest(Mapping):
        pass
    
    class DescribePermissionsResult(Mapping):
        pass
    
    class DescribeRaidArraysRequest(Mapping):
        pass
    
    class DescribeRaidArraysResult(Mapping):
        pass
    
    class DescribeRdsDbInstancesRequest(Mapping):
        pass
    
    class DescribeRdsDbInstancesResult(Mapping):
        pass
    
    class DescribeServiceErrorsRequest(Mapping):
        pass
    
    class DescribeServiceErrorsResult(Mapping):
        pass
    
    class DescribeStackProvisioningParametersRequest(Mapping):
        pass
    
    class DescribeStackProvisioningParametersResult(Mapping):
        pass
    
    class DescribeStackSummaryRequest(Mapping):
        pass
    
    class DescribeStackSummaryResult(Mapping):
        pass
    
    class DescribeStacksRequest(Mapping):
        pass
    
    class DescribeStacksResult(Mapping):
        pass
    
    class DescribeTimeBasedAutoScalingRequest(Mapping):
        pass
    
    class DescribeTimeBasedAutoScalingResult(Mapping):
        pass
    
    class DescribeUserProfilesRequest(Mapping):
        pass
    
    class DescribeUserProfilesResult(Mapping):
        pass
    
    class DescribeVolumesRequest(Mapping):
        pass
    
    class DescribeVolumesResult(Mapping):
        pass
    
    class DetachElasticLoadBalancerRequest(Mapping):
        pass
    
    class DisassociateElasticIpRequest(Mapping):
        pass
    
    class GetHostnameSuggestionRequest(Mapping):
        pass
    
    class GetHostnameSuggestionResult(Mapping):
        pass
    
    class GrantAccessRequest(Mapping):
        pass
    
    class GrantAccessResult(Mapping):
        pass
    
    class ListTagsRequest(Mapping):
        pass
    
    class ListTagsResult(Mapping):
        pass
    
    class RebootInstanceRequest(Mapping):
        pass
    
    class RegisterEcsClusterRequest(Mapping):
        pass
    
    class RegisterEcsClusterResult(Mapping):
        pass
    
    class RegisterElasticIpRequest(Mapping):
        pass
    
    class RegisterElasticIpResult(Mapping):
        pass
    
    class RegisterInstanceRequest(Mapping):
        pass
    
    class RegisterInstanceResult(Mapping):
        pass
    
    class InstanceIdentity(Mapping):
        pass
    
    class RegisterRdsDbInstanceRequest(Mapping):
        pass
    
    class RegisterVolumeRequest(Mapping):
        pass
    
    class RegisterVolumeResult(Mapping):
        pass
    
    class SetLoadBasedAutoScalingRequest(Mapping):
        pass
    
    class AutoScalingThresholds(Mapping):
        pass
    
    class SetPermissionRequest(Mapping):
        pass
    
    class SetTimeBasedAutoScalingRequest(Mapping):
        pass
    
    class WeeklyAutoScalingSchedule(Mapping):
        pass
    
    class StartInstanceRequest(Mapping):
        pass
    
    class StartStackRequest(Mapping):
        pass
    
    class StopInstanceRequest(Mapping):
        pass
    
    class StopStackRequest(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class Tags(object):
        pass
    
    class UnassignInstanceRequest(Mapping):
        pass
    
    class UnassignVolumeRequest(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateAppRequest(Mapping):
        pass
    
    class UpdateElasticIpRequest(Mapping):
        pass
    
    class UpdateInstanceRequest(Mapping):
        pass
    
    class UpdateLayerRequest(Mapping):
        pass
    
    class UpdateMyUserProfileRequest(Mapping):
        pass
    
    class UpdateRdsDbInstanceRequest(Mapping):
        pass
    
    class UpdateStackRequest(Mapping):
        pass
    
    class UpdateUserProfileRequest(Mapping):
        pass
    
    class UpdateVolumeRequest(Mapping):
        pass
    
    def assign_instance(self, LayerIds: List[String], InstanceId: str):
        r"""Assign a registered instance to a layer. <ul> <li> You can assign registered on-premises instances to any layer type. </li> <li> You can assign registered Amazon EC2 instances only to custom layers. </li> <li> You cannot use this action with instances that were created with AWS OpsWorks Stacks. </li> </ul>  <b>Required Permissions</b>: To use this action, an AWS Identity and Access Management (IAM) user must have a Manage permissions level for the stack or an attached policy that explicitly grants permissions. For more information on user permissions, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-users.html">Managing User Permissions</a>.

        :param self:
        :param LayerIds:  The layer ID, which must correspond to a custom layer. You cannot assign a registered instance to a built-in layer.<br/>InstanceId:  The instance ID.<br/>
        :return:         """
        pass

    def assign_volume(self, VolumeId: str, InstanceId: str=None):
        r"""Assigns one of the stack's registered Amazon EBS volumes to a specified instance. The volume must first be registered with the stack by calling <a>RegisterVolume</a>. After you register the volume, you must call <a>UpdateVolume</a> to specify a mount point before calling <code>AssignVolume</code>. For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/resources.html">Resource Management</a>.  <b>Required Permissions</b>: To use this action, an IAM user must have a Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-users.html">Managing User Permissions</a>.

        :param self:
        :param InstanceId:  The instance ID.<br/>VolumeId:  The volume ID.<br/>
        :return:         """
        pass

    def associate_elastic_ip(self, ElasticIp: str, InstanceId: str=None):
        r"""Associates one of the stack's registered Elastic IP addresses with a specified instance. The address must first be registered with the stack by calling <a>RegisterElasticIp</a>. For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/resources.html">Resource Management</a>.  <b>Required Permissions</b>: To use this action, an IAM user must have a Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-users.html">Managing User Permissions</a>.

        :param self:
        :param InstanceId:  The instance ID.<br/>ElasticIp:  The Elastic IP address.<br/>
        :return:         """
        pass

    def attach_elastic_load_balancer(self, LayerId: str, ElasticLoadBalancerName: str):
        r"""Attaches an Elastic Load Balancing load balancer to a specified layer. AWS OpsWorks Stacks does not support Application Load Balancer. You can only use Classic Load Balancer with AWS OpsWorks Stacks. For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/layers-elb.html">Elastic Load Balancing</a>. <note> You must create the Elastic Load Balancing instance separately, by using the Elastic Load Balancing console, API, or CLI. For more information, see <a href="https://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/Welcome.html"> Elastic Load Balancing Developer Guide</a>. </note>  <b>Required Permissions</b>: To use this action, an IAM user must have a Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-users.html">Managing User Permissions</a>.

        :param self:
        :param LayerId:  The ID of the layer to which the Elastic Load Balancing instance is to be attached.<br/>ElasticLoadBalancerName:  The Elastic Load Balancing instance's name.<br/>
        :return:         """
        pass

    def clone_stack(self, ServiceRoleArn: str, SourceStackId: str, Name: str=None, Region: str=None, VpcId: str=None, Attributes: StackAttributes=None, DefaultInstanceProfileArn: str=None, DefaultOs: str=None, HostnameTheme: str=None, DefaultAvailabilityZone: str=None, DefaultSubnetId: str=None, CustomJson: str=None, ConfigurationManager: StackConfigurationManager=None, ChefConfiguration: ChefConfiguration=None, UseCustomCookbooks: Boolean=None, UseOpsworksSecurityGroups: Boolean=None, CustomCookbooksSource: Source=None, DefaultSshKeyName: str=None, ClonePermissions: Boolean=None, CloneAppIds: List[String]=None, DefaultRootDeviceType: str=None, AgentVersion: str=None) -> CloneStackResult:
        r"""Creates a clone of a specified stack. For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-cloning.html">Clone a Stack</a>. By default, all parameters are set to the values used by the parent stack.  <b>Required Permissions</b>: To use this action, an IAM user must have an attached policy that explicitly grants permissions. For more information about user permissions, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-users.html">Managing User Permissions</a>.

        :param self:
        :param AgentVersion:  The default AWS OpsWorks Stacks agent version. You have the following options: <ul> <li> Auto-update - Set this parameter to <code>LATEST</code>. AWS OpsWorks Stacks automatically installs new agent versions on the stack's instances as soon as they are available. </li> <li> Fixed version - Set this parameter to your preferred agent version. To update the agent version, you must edit the stack configuration and specify a new version. AWS OpsWorks Stacks then automatically installs that version on the stack's instances. </li> </ul> The default setting is <code>LATEST</code>. To specify an agent version, you must use the complete version number, not the abbreviated number shown on the console. For a list of available agent version numbers, call <a>DescribeAgentVersions</a>. AgentVersion cannot be set to Chef 12.2. <note> You can also specify an agent version when you create or update an instance, which overrides the stack's default setting. </note><br/>DefaultRootDeviceType:  The default root device type. This value is used by default for all instances in the cloned stack, but you can override it when you create an instance. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ComponentsAMIs.html#storage-for-the-root-device">Storage for the Root Device</a>.<br/>CloneAppIds:  A list of source stack app IDs to be included in the cloned stack.<br/>ClonePermissions:  Whether to clone the source stack's permissions.<br/>DefaultSshKeyName:  A default Amazon EC2 key pair name. The default value is none. If you specify a key pair name, AWS OpsWorks installs the public key on the instance and you can use the private key with an SSH client to log in to the instance. For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-ssh.html"> Using SSH to Communicate with an Instance</a> and <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/security-ssh-access.html"> Managing SSH Access</a>. You can override this setting by specifying a different key pair, or no key pair, when you <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-add.html"> create an instance</a>. <br/>CustomCookbooksSource:  Contains the information required to retrieve an app or cookbook from a repository. For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workingapps-creating.html">Adding Apps</a> or <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workingcookbook.html">Cookbooks and Recipes</a>.:<br/>UseOpsworksSecurityGroups:  Whether to associate the AWS OpsWorks Stacks built-in security groups with the stack's layers. AWS OpsWorks Stacks provides a standard set of built-in security groups, one for each layer, which are associated with layers by default. With <code>UseOpsworksSecurityGroups</code> you can instead provide your own custom security groups. <code>UseOpsworksSecurityGroups</code> has the following settings:  <ul> <li> True - AWS OpsWorks Stacks automatically associates the appropriate built-in security group with each layer (default setting). You can associate additional security groups with a layer after you create it but you cannot delete the built-in security group. </li> <li> False - AWS OpsWorks Stacks does not associate built-in security groups with layers. You must create appropriate Amazon Elastic Compute Cloud (Amazon EC2) security groups and associate a security group with each layer that you create. However, you can still manually associate a built-in security group with a layer on creation; custom security groups are required only for those layers that need custom settings. </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-creating.html">Create a New Stack</a>.<br/>UseCustomCookbooks:  Whether to use custom cookbooks.<br/>ChefConfiguration:  A <code>ChefConfiguration</code> object that specifies whether to enable Berkshelf and the Berkshelf version on Chef 11.10 stacks. For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-creating.html">Create a New Stack</a>.:<br/>ConfigurationManager:  The configuration manager. When you clone a stack we recommend that you use the configuration manager to specify the Chef version: 12, 11.10, or 11.4 for Linux stacks, or 12.2 for Windows stacks. The default value for Linux stacks is currently 12.:<br/>CustomJson:  A string that contains user-defined, custom JSON. It is used to override the corresponding default stack configuration JSON values. The string should be in the following format:  <code>"{\"key1\": \"value1\", \"key2\": \"value2\",...}"</code>  For more information about custom JSON, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-json.html">Use Custom JSON to Modify the Stack Configuration Attributes</a> <br/>DefaultSubnetId:  The stack's default VPC subnet ID. This parameter is required if you specify a value for the <code>VpcId</code> parameter. All instances are launched into this subnet unless you specify otherwise when you create the instance. If you also specify a value for <code>DefaultAvailabilityZone</code>, the subnet must be in that zone. For information on default values and when this parameter is required, see the <code>VpcId</code> parameter description. <br/>DefaultAvailabilityZone:  The cloned stack's default Availability Zone, which must be in the specified region. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/rande.html">Regions and Endpoints</a>. If you also specify a value for <code>DefaultSubnetId</code>, the subnet must be in the same zone. For more information, see the <code>VpcId</code> parameter description. <br/>HostnameTheme:  The stack's host name theme, with spaces are replaced by underscores. The theme is used to generate host names for the stack's instances. By default, <code>HostnameTheme</code> is set to <code>Layer_Dependent</code>, which creates host names by appending integers to the layer's short name. The other themes are: <ul> <li>  <code>Baked_Goods</code>  </li> <li>  <code>Clouds</code>  </li> <li>  <code>Europe_Cities</code>  </li> <li>  <code>Fruits</code>  </li> <li>  <code>Greek_Deities_and_Titans</code>  </li> <li>  <code>Legendary_creatures_from_Japan</code>  </li> <li>  <code>Planets_and_Moons</code>  </li> <li>  <code>Roman_Deities</code>  </li> <li>  <code>Scottish_Islands</code>  </li> <li>  <code>US_Cities</code>  </li> <li>  <code>Wild_Cats</code>  </li> </ul> To obtain a generated host name, call <code>GetHostNameSuggestion</code>, which returns a host name based on the current theme.<br/>DefaultOs:  The stack's operating system, which must be set to one of the following. <ul> <li> A supported Linux operating system: An Amazon Linux version, such as <code>Amazon Linux 2018.03</code>, <code>Amazon Linux 2017.09</code>, <code>Amazon Linux 2017.03</code>, <code>Amazon Linux 2016.09</code>, <code>Amazon Linux 2016.03</code>, <code>Amazon Linux 2015.09</code>, or <code>Amazon Linux 2015.03</code>. </li> <li> A supported Ubuntu operating system, such as <code>Ubuntu 16.04 LTS</code>, <code>Ubuntu 14.04 LTS</code>, or <code>Ubuntu 12.04 LTS</code>. </li> <li>  <code>CentOS Linux 7</code>  </li> <li>  <code>Red Hat Enterprise Linux 7</code>  </li> <li>  <code>Microsoft Windows Server 2012 R2 Base</code>, <code>Microsoft Windows Server 2012 R2 with SQL Server Express</code>, <code>Microsoft Windows Server 2012 R2 with SQL Server Standard</code>, or <code>Microsoft Windows Server 2012 R2 with SQL Server Web</code>. </li> <li> A custom AMI: <code>Custom</code>. You specify the custom AMI you want to use when you create instances. For more information about how to use custom AMIs with OpsWorks, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-custom-ami.html">Using Custom AMIs</a>. </li> </ul> The default option is the parent stack's operating system. For more information about supported operating systems, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-os.html">AWS OpsWorks Stacks Operating Systems</a>. <note> You can specify a different Linux operating system for the cloned stack, but you cannot change from Linux to Windows or Windows to Linux. </note><br/>DefaultInstanceProfileArn:  The Amazon Resource Name (ARN) of an IAM profile that is the default profile for all of the stack's EC2 instances. For more information about IAM ARNs, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html">Using Identifiers</a>.<br/>ServiceRoleArn:  The stack AWS Identity and Access Management (IAM) role, which allows AWS OpsWorks Stacks to work with AWS resources on your behalf. You must set this parameter to the Amazon Resource Name (ARN) for an existing IAM role. If you create a stack by using the AWS OpsWorks Stacks console, it creates the role for you. You can obtain an existing stack's IAM ARN programmatically by calling <a>DescribePermissions</a>. For more information about IAM ARNs, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html">Using Identifiers</a>. <note> You must set this parameter to a valid service role ARN or the action will fail; there is no default value. You can specify the source stack's service role ARN, if you prefer, but you must do so explicitly. </note><br/>Attributes:  A list of stack attributes and values as key/value pairs to be added to the cloned stack.<br/>VpcId:  The ID of the VPC that the cloned stack is to be launched into. It must be in the specified region. All instances are launched into this VPC, and you cannot change the ID later. <ul> <li> If your account supports EC2 Classic, the default value is no VPC. </li> <li> If your account does not support EC2 Classic, the default value is the default VPC for the specified region. </li> </ul> If the VPC ID corresponds to a default VPC and you have specified either the <code>DefaultAvailabilityZone</code> or the <code>DefaultSubnetId</code> parameter only, AWS OpsWorks Stacks infers the value of the other parameter. If you specify neither parameter, AWS OpsWorks Stacks sets these parameters to the first valid Availability Zone for the specified region and the corresponding default VPC subnet ID, respectively.  If you specify a nondefault VPC ID, note the following: <ul> <li> It must belong to a VPC in your account that is in the specified region. </li> <li> You must specify a value for <code>DefaultSubnetId</code>. </li> </ul> For more information about how to use AWS OpsWorks Stacks with a VPC, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-vpc.html">Running a Stack in a VPC</a>. For more information about default VPC and EC2 Classic, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-supported-platforms.html">Supported Platforms</a>. <br/>Region:  The cloned stack AWS region, such as "ap-northeast-2". For more information about AWS regions, see <a href="https://docs.aws.amazon.com/general/latest/gr/rande.html">Regions and Endpoints</a>.<br/>Name:  The cloned stack name.<br/>SourceStackId:  The source stack ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The Chef version. This parameter must be set to 12, 11.10, or 11.4 for Linux stacks, and to 12.2 for Windows stacks. The default value for Linux stacks is 11.4.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name. This parameter must be set to "Chef".<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BerkshelfVersion</i> The Berkshelf version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ManageBerkshelf</i> Whether to enable Berkshelf.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Revision</i> The application's version. AWS OpsWorks Stacks enables you to easily deploy new versions of an application. One of the simplest approaches is to have branches or revisions in your repository that represent different versions that can potentially be deployed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SshKey</i> In requests, the repository's SSH key. In responses, AWS OpsWorks Stacks returns <code>*****FILTERED*****</code> instead of the actual value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Password</i> When included in a request, the parameter depends on the repository type. <ul> <li> For Amazon S3 bundles, set <code>Password</code> to the appropriate IAM secret access key. </li> <li> For HTTP bundles and Subversion repositories, set <code>Password</code> to the password. </li> </ul> For more information on how to safely handle IAM credentials, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-access-keys-best-practices.html">https://docs.aws.amazon.com/general/latest/gr/aws-access-keys-best-practices.html</a>. In responses, AWS OpsWorks Stacks returns <code>*****FILTERED*****</code> instead of the actual value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Username</i> This parameter depends on the repository type. <ul> <li> For Amazon S3 bundles, set <code>Username</code> to the appropriate IAM access key ID. </li> <li> For HTTP bundles, Git repositories, and Subversion repositories, set <code>Username</code> to the user name. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Url</i> The source URL. The following is an example of an Amazon S3 source URL: <code>https://s3.amazonaws.com/opsworks-demo-bucket/opsworks_cookbook_demo.tar.gz</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The repository type.<br/>
        :return: StackId:  The cloned stack ID.<br/>        """
        pass

    def create_app(self, Type: str, Name: str, StackId: str, Shortname: str=None, Description: str=None, DataSources: List[DataSource]=None, AppSource: Source=None, Domains: List[String]=None, EnableSsl: Boolean=None, SslConfiguration: SslConfiguration=None, Attributes: AppAttributes=None, Environment: List[EnvironmentVariable]=None) -> CreateAppResult:
        r"""Creates an app for a specified stack. For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workingapps-creating.html">Creating Apps</a>.  <b>Required Permissions</b>: To use this action, an IAM user must have a Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-users.html">Managing User Permissions</a>.

        :param self:
        :param Environment:  An array of <code>EnvironmentVariable</code> objects that specify environment variables to be associated with the app. After you deploy the app, these variables are defined on the associated app server instance. For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workingapps-creating.html#workingapps-creating-environment"> Environment Variables</a>. There is no specific limit on the number of environment variables. However, the size of the associated data structure - which includes the variables' names, values, and protected flag values - cannot exceed 20 KB. This limit should accommodate most if not all use cases. Exceeding it will cause an exception with the message, "Environment: is too large (maximum is 20KB)." <note> If you have specified one or more environment variables, you cannot modify the stack's Chef version. </note><br/>Attributes:  One or more user-defined key/value pairs to be added to the stack attributes.<br/>SslConfiguration:  An <code>SslConfiguration</code> object with the SSL configuration.:<br/>EnableSsl:  Whether to enable SSL for the app.<br/>Domains:  The app virtual host settings, with multiple domains separated by commas. For example: <code>'www.example.com, example.com'</code> <br/>AppSource:  A <code>Source</code> object that specifies the app repository.:<br/>Type:  The app type. Each supported type is associated with a particular layer. For example, PHP applications are associated with a PHP layer. AWS OpsWorks Stacks deploys an application to those instances that are members of the corresponding layer. If your app isn't one of the standard types, or you prefer to implement your own Deploy recipes, specify <code>other</code>.<br/>DataSources:  The app's data source.<br/>Description:  A description of the app.<br/>Name:  The app name.<br/>Shortname:  The app's short name.<br/>StackId:  The stack ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Revision</i> The application's version. AWS OpsWorks Stacks enables you to easily deploy new versions of an application. One of the simplest approaches is to have branches or revisions in your repository that represent different versions that can potentially be deployed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SshKey</i> In requests, the repository's SSH key. In responses, AWS OpsWorks Stacks returns <code>*****FILTERED*****</code> instead of the actual value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Password</i> When included in a request, the parameter depends on the repository type. <ul> <li> For Amazon S3 bundles, set <code>Password</code> to the appropriate IAM secret access key. </li> <li> For HTTP bundles and Subversion repositories, set <code>Password</code> to the password. </li> </ul> For more information on how to safely handle IAM credentials, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-access-keys-best-practices.html">https://docs.aws.amazon.com/general/latest/gr/aws-access-keys-best-practices.html</a>. In responses, AWS OpsWorks Stacks returns <code>*****FILTERED*****</code> instead of the actual value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Username</i> This parameter depends on the repository type. <ul> <li> For Amazon S3 bundles, set <code>Username</code> to the appropriate IAM access key ID. </li> <li> For HTTP bundles, Git repositories, and Subversion repositories, set <code>Username</code> to the user name. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Url</i> The source URL. The following is an example of an Amazon S3 source URL: <code>https://s3.amazonaws.com/opsworks-demo-bucket/opsworks_cookbook_demo.tar.gz</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The repository type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Chain</i> Optional. Can be used to specify an intermediate certificate authority key or client authentication.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PrivateKey</i> The private key; the contents of the certificate's domain.kex file.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Certificate</i> The contents of the certificate's domain.crt file.<br/>
        :return: AppId:  The app ID.<br/>        """
        pass

    def create_deployment(self, Command: DeploymentCommand, StackId: str, AppId: str=None, InstanceIds: List[String]=None, LayerIds: List[String]=None, Comment: str=None, CustomJson: str=None) -> CreateDeploymentResult:
        r"""Runs deployment or stack commands. For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workingapps-deploying.html">Deploying Apps</a> and <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-commands.html">Run Stack Commands</a>.  <b>Required Permissions</b>: To use this action, an IAM user must have a Deploy or Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-users.html">Managing User Permissions</a>.

        :param self:
        :param CustomJson:  A string that contains user-defined, custom JSON. You can use this parameter to override some corresponding default stack configuration JSON values. The string should be in the following format:  <code>"{\"key1\": \"value1\", \"key2\": \"value2\",...}"</code>  For more information about custom JSON, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-json.html">Use Custom JSON to Modify the Stack Configuration Attributes</a> and <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workingcookbook-json-override.html">Overriding Attributes With Custom JSON</a>.<br/>Comment:  A user-defined comment.<br/>Command:  A <code>DeploymentCommand</code> object that specifies the deployment command and any associated arguments.:<br/>LayerIds:  The layer IDs for the deployment targets.<br/>InstanceIds:  The instance IDs for the deployment targets.<br/>AppId:  The app ID. This parameter is required for app deployments, but not for other deployment commands.<br/>StackId:  The stack ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Args</i> The arguments of those commands that take arguments. It should be set to a JSON object with the following format:  <code>{"arg_name1" : ["value1", "value2", ...], "arg_name2" : ["value1", "value2", ...], ...}</code>  The <code>update_dependencies</code> command takes two arguments: <ul> <li>  <code>upgrade_os_to</code> - Specifies the desired Amazon Linux version for instances whose OS you want to upgrade, such as <code>Amazon Linux 2016.09</code>. You must also set the <code>allow_reboot</code> argument to true. </li> <li>  <code>allow_reboot</code> - Specifies whether to allow AWS OpsWorks Stacks to reboot the instances if necessary, after installing the updates. This argument can be set to either <code>true</code> or <code>false</code>. The default value is <code>false</code>. </li> </ul> For example, to upgrade an instance to Amazon Linux 2016.09, set <code>Args</code> to the following.  <code> { "upgrade_os_to":["Amazon Linux 2016.09"], "allow_reboot":["true"] } </code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> Specifies the operation. You can specify only one command. For stacks, the following commands are available: <ul> <li>  <code>execute_recipes</code>: Execute one or more recipes. To specify the recipes, set an <code>Args</code> parameter named <code>recipes</code> to the list of recipes to be executed. For example, to execute <code>phpapp::appsetup</code>, set <code>Args</code> to <code>{"recipes":["phpapp::appsetup"]}</code>. </li> <li>  <code>install_dependencies</code>: Install the stack's dependencies. </li> <li>  <code>update_custom_cookbooks</code>: Update the stack's custom cookbooks. </li> <li>  <code>update_dependencies</code>: Update the stack's dependencies. </li> </ul> <note> The update_dependencies and install_dependencies commands are supported only for Linux instances. You can run the commands successfully on Windows instances, but they do nothing. </note> For apps, the following commands are available: <ul> <li>  <code>deploy</code>: Deploy an app. Ruby on Rails apps have an optional <code>Args</code> parameter named <code>migrate</code>. Set <code>Args</code> to {"migrate":["true"]} to migrate the database. The default setting is {"migrate":["false"]}. </li> <li>  <code>rollback</code> Roll the app back to the previous version. When you update an app, AWS OpsWorks Stacks stores the previous version, up to a maximum of five versions. You can use this command to roll an app back as many as four versions. </li> <li>  <code>start</code>: Start the app's web or application server. </li> <li>  <code>stop</code>: Stop the app's web or application server. </li> <li>  <code>restart</code>: Restart the app's web or application server. </li> <li>  <code>undeploy</code>: Undeploy the app. </li> </ul><br/>
        :return: DeploymentId:  The deployment ID, which can be used with other requests to identify the deployment.<br/>        """
        pass

    def create_instance(self, InstanceType: str, LayerIds: List[String], StackId: str, AutoScalingType: str=None, Hostname: str=None, Os: str=None, AmiId: str=None, SshKeyName: str=None, AvailabilityZone: str=None, VirtualizationType: str=None, SubnetId: str=None, Architecture: str=None, RootDeviceType: str=None, BlockDeviceMappings: List[BlockDeviceMapping]=None, InstallUpdatesOnBoot: Boolean=None, EbsOptimized: Boolean=None, AgentVersion: str=None, Tenancy: str=None) -> CreateInstanceResult:
        r"""Creates an instance in a specified stack. For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-add.html">Adding an Instance to a Layer</a>.  <b>Required Permissions</b>: To use this action, an IAM user must have a Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-users.html">Managing User Permissions</a>.

        :param self:
        :param Tenancy:  The instance's tenancy option. The default option is no tenancy, or if the instance is running in a VPC, inherit tenancy settings from the VPC. The following are valid values for this parameter: <code>dedicated</code>, <code>default</code>, or <code>host</code>. Because there are costs associated with changes in tenancy options, we recommend that you research tenancy options before choosing them for your instances. For more information about dedicated hosts, see <a href="http://aws.amazon.com/ec2/dedicated-hosts/">Dedicated Hosts Overview</a> and <a href="http://aws.amazon.com/ec2/dedicated-hosts/">Amazon EC2 Dedicated Hosts</a>. For more information about dedicated instances, see <a href="https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/dedicated-instance.html">Dedicated Instances</a> and <a href="http://aws.amazon.com/ec2/purchasing-options/dedicated-instances/">Amazon EC2 Dedicated Instances</a>.<br/>AgentVersion:  The default AWS OpsWorks Stacks agent version. You have the following options: <ul> <li>  <code>INHERIT</code> - Use the stack's default agent version setting. </li> <li>  <i>version_number</i> - Use the specified agent version. This value overrides the stack's default setting. To update the agent version, edit the instance configuration and specify a new version. AWS OpsWorks Stacks then automatically installs that version on the instance. </li> </ul> The default setting is <code>INHERIT</code>. To specify an agent version, you must use the complete version number, not the abbreviated number shown on the console. For a list of available agent version numbers, call <a>DescribeAgentVersions</a>. AgentVersion cannot be set to Chef 12.2.<br/>EbsOptimized:  Whether to create an Amazon EBS-optimized instance.<br/>InstallUpdatesOnBoot:  Whether to install operating system and package updates when the instance boots. The default value is <code>true</code>. To control when updates are installed, set this value to <code>false</code>. You must then update your instances manually by using <a>CreateDeployment</a> to run the <code>update_dependencies</code> stack command or by manually running <code>yum</code> (Amazon Linux) or <code>apt-get</code> (Ubuntu) on the instances.  <note> We strongly recommend using the default value of <code>true</code> to ensure that your instances have the latest security updates. </note><br/>BlockDeviceMappings:  An array of <code>BlockDeviceMapping</code> objects that specify the instance's block devices. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/block-device-mapping-concepts.html">Block Device Mapping</a>. Note that block device mappings are not supported for custom AMIs.<br/>RootDeviceType:  The instance root device type. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ComponentsAMIs.html#storage-for-the-root-device">Storage for the Root Device</a>.<br/>Architecture:  The instance architecture. The default option is <code>x86_64</code>. Instance types do not necessarily support both architectures. For a list of the architectures that are supported by the different instance types, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html">Instance Families and Types</a>.<br/>SubnetId:  The ID of the instance's subnet. If the stack is running in a VPC, you can use this parameter to override the stack's default subnet ID value and direct AWS OpsWorks Stacks to launch the instance in a different subnet.<br/>VirtualizationType:  The instance's virtualization type, <code>paravirtual</code> or <code>hvm</code>.<br/>AvailabilityZone:  The instance Availability Zone. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/rande.html">Regions and Endpoints</a>.<br/>SshKeyName:  The instance's Amazon EC2 key-pair name.<br/>AmiId:  A custom AMI ID to be used to create the instance. The AMI should be based on one of the supported operating systems. For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-custom-ami.html">Using Custom AMIs</a>. <note> If you specify a custom AMI, you must set <code>Os</code> to <code>Custom</code>. </note><br/>Os:  The instance's operating system, which must be set to one of the following. <ul> <li> A supported Linux operating system: An Amazon Linux version, such as <code>Amazon Linux 2018.03</code>, <code>Amazon Linux 2017.09</code>, <code>Amazon Linux 2017.03</code>, <code>Amazon Linux 2016.09</code>, <code>Amazon Linux 2016.03</code>, <code>Amazon Linux 2015.09</code>, or <code>Amazon Linux 2015.03</code>. </li> <li> A supported Ubuntu operating system, such as <code>Ubuntu 16.04 LTS</code>, <code>Ubuntu 14.04 LTS</code>, or <code>Ubuntu 12.04 LTS</code>. </li> <li>  <code>CentOS Linux 7</code>  </li> <li>  <code>Red Hat Enterprise Linux 7</code>  </li> <li> A supported Windows operating system, such as <code>Microsoft Windows Server 2012 R2 Base</code>, <code>Microsoft Windows Server 2012 R2 with SQL Server Express</code>, <code>Microsoft Windows Server 2012 R2 with SQL Server Standard</code>, or <code>Microsoft Windows Server 2012 R2 with SQL Server Web</code>. </li> <li> A custom AMI: <code>Custom</code>. </li> </ul> For more information about the supported operating systems, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-os.html">AWS OpsWorks Stacks Operating Systems</a>. The default option is the current Amazon Linux version. If you set this parameter to <code>Custom</code>, you must use the <a>CreateInstance</a> action's AmiId parameter to specify the custom AMI that you want to use. Block device mappings are not supported if the value is <code>Custom</code>. For more information about supported operating systems, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-os.html">Operating Systems</a>For more information about how to use custom AMIs with AWS OpsWorks Stacks, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-custom-ami.html">Using Custom AMIs</a>.<br/>Hostname:  The instance host name.<br/>AutoScalingType:  For load-based or time-based instances, the type. Windows stacks can use only time-based instances.<br/>InstanceType:  The instance type, such as <code>t2.micro</code>. For a list of supported instance types, open the stack in the console, choose <b>Instances</b>, and choose <b>+ Instance</b>. The <b>Size</b> list contains the currently supported types. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html">Instance Families and Types</a>. The parameter values that you use to specify the various types are in the <b>API Name</b> column of the <b>Available Instance Types</b> table.<br/>LayerIds:  An array that contains the instance's layer IDs.<br/>StackId:  The stack ID.<br/>
        :return: InstanceId:  The instance ID.<br/>        """
        pass

    def create_layer(self, Shortname: str, Name: str, Type: str, StackId: str, Attributes: LayerAttributes=None, CloudWatchLogsConfiguration: CloudWatchLogsConfiguration=None, CustomInstanceProfileArn: str=None, CustomJson: str=None, CustomSecurityGroupIds: List[String]=None, Packages: List[String]=None, VolumeConfigurations: List[VolumeConfiguration]=None, EnableAutoHealing: Boolean=None, AutoAssignElasticIps: Boolean=None, AutoAssignPublicIps: Boolean=None, CustomRecipes: Recipes=None, InstallUpdatesOnBoot: Boolean=None, UseEbsOptimizedInstances: Boolean=None, LifecycleEventConfiguration: LifecycleEventConfiguration=None) -> CreateLayerResult:
        r"""Creates a layer. For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workinglayers-basics-create.html">How to Create a Layer</a>. <note> You should use <b>CreateLayer</b> for noncustom layer types such as PHP App Server only if the stack does not have an existing layer of that type. A stack can have at most one instance of each noncustom layer; if you attempt to create a second instance, <b>CreateLayer</b> fails. A stack can have an arbitrary number of custom layers, so you can call <b>CreateLayer</b> as many times as you like for that layer type. </note>  <b>Required Permissions</b>: To use this action, an IAM user must have a Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-users.html">Managing User Permissions</a>.

        :param self:
        :param LifecycleEventConfiguration:  A <code>LifeCycleEventConfiguration</code> object that you can use to configure the Shutdown event to specify an execution timeout and enable or disable Elastic Load Balancer connection draining.:<br/>UseEbsOptimizedInstances:  Whether to use Amazon EBS-optimized instances.<br/>InstallUpdatesOnBoot:  Whether to install operating system and package updates when the instance boots. The default value is <code>true</code>. To control when updates are installed, set this value to <code>false</code>. You must then update your instances manually by using <a>CreateDeployment</a> to run the <code>update_dependencies</code> stack command or by manually running <code>yum</code> (Amazon Linux) or <code>apt-get</code> (Ubuntu) on the instances.  <note> To ensure that your instances have the latest security updates, we strongly recommend using the default value of <code>true</code>. </note><br/>CustomRecipes:  A <code>LayerCustomRecipes</code> object that specifies the layer custom recipes.:<br/>AutoAssignPublicIps:  For stacks that are running in a VPC, whether to automatically assign a public IP address to the layer's instances. For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workinglayers-basics-edit.html">How to Edit a Layer</a>.<br/>AutoAssignElasticIps:  Whether to automatically assign an <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html">Elastic IP address</a> to the layer's instances. For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workinglayers-basics-edit.html">How to Edit a Layer</a>.<br/>EnableAutoHealing:  Whether to disable auto healing for the layer.<br/>VolumeConfigurations:  A <code>VolumeConfigurations</code> object that describes the layer's Amazon EBS volumes.<br/>Packages:  An array of <code>Package</code> objects that describes the layer packages.<br/>CustomSecurityGroupIds:  An array containing the layer custom security group IDs.<br/>CustomJson:  A JSON-formatted string containing custom stack configuration and deployment attributes to be installed on the layer's instances. For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workingcookbook-json-override.html"> Using Custom JSON</a>. This feature is supported as of version 1.7.42 of the AWS CLI. <br/>CustomInstanceProfileArn:  The ARN of an IAM profile to be used for the layer's EC2 instances. For more information about IAM ARNs, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html">Using Identifiers</a>.<br/>CloudWatchLogsConfiguration:  Specifies CloudWatch Logs configuration options for the layer. For more information, see <a>CloudWatchLogsLogStream</a>.:<br/>Attributes:  One or more user-defined key-value pairs to be added to the stack attributes. To create a cluster layer, set the <code>EcsClusterArn</code> attribute to the cluster's ARN.<br/>Shortname:  For custom layers only, use this parameter to specify the layer's short name, which is used internally by AWS OpsWorks Stacks and by Chef recipes. The short name is also used as the name for the directory where your app files are installed. It can have a maximum of 200 characters, which are limited to the alphanumeric characters, '-', '_', and '.'. The built-in layers' short names are defined by AWS OpsWorks Stacks. For more information, see the <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/layers.html">Layer Reference</a>.<br/>Name:  The layer name, which is used by the console.<br/>Type:  The layer type. A stack cannot have more than one built-in layer of the same type. It can have any number of custom layers. Built-in layers are not available in Chef 12 stacks.<br/>StackId:  The layer stack ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogStreams</i> A list of configuration options for CloudWatch Logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Whether CloudWatch Logs is enabled for a layer.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Shutdown</i> An array of custom recipe names to be run following a <code>shutdown</code> event.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Undeploy</i> An array of custom recipe names to be run following a <code>undeploy</code> event.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Deploy</i> An array of custom recipe names to be run following a <code>deploy</code> event.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Configure</i> An array of custom recipe names to be run following a <code>configure</code> event.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Setup</i> An array of custom recipe names to be run following a <code>setup</code> event.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Shutdown</i> A <code>ShutdownEventConfiguration</code> object that specifies the Shutdown event configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Shutdown</b>: A <code>ShutdownEventConfiguration</code> object that specifies the Shutdown event configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DelayUntilElbConnectionsDrained</i> Whether to enable Elastic Load Balancing connection draining. For more information, see <a href="https://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/TerminologyandKeyConcepts.html#conn-drain">Connection Draining</a> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ExecutionTimeout</i> The time, in seconds, that AWS OpsWorks Stacks will wait after triggering a Shutdown event before shutting down an instance.<br/>
        :return: LayerId:  The layer ID.<br/>        """
        pass

    def create_stack(self, DefaultInstanceProfileArn: str, ServiceRoleArn: str, Region: str, Name: str, VpcId: str=None, Attributes: StackAttributes=None, DefaultOs: str=None, HostnameTheme: str=None, DefaultAvailabilityZone: str=None, DefaultSubnetId: str=None, CustomJson: str=None, ConfigurationManager: StackConfigurationManager=None, ChefConfiguration: ChefConfiguration=None, UseCustomCookbooks: Boolean=None, UseOpsworksSecurityGroups: Boolean=None, CustomCookbooksSource: Source=None, DefaultSshKeyName: str=None, DefaultRootDeviceType: str=None, AgentVersion: str=None) -> CreateStackResult:
        r"""Creates a new stack. For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-edit.html">Create a New Stack</a>.  <b>Required Permissions</b>: To use this action, an IAM user must have an attached policy that explicitly grants permissions. For more information about user permissions, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-users.html">Managing User Permissions</a>.

        :param self:
        :param AgentVersion:  The default AWS OpsWorks Stacks agent version. You have the following options: <ul> <li> Auto-update - Set this parameter to <code>LATEST</code>. AWS OpsWorks Stacks automatically installs new agent versions on the stack's instances as soon as they are available. </li> <li> Fixed version - Set this parameter to your preferred agent version. To update the agent version, you must edit the stack configuration and specify a new version. AWS OpsWorks Stacks then automatically installs that version on the stack's instances. </li> </ul> The default setting is the most recent release of the agent. To specify an agent version, you must use the complete version number, not the abbreviated number shown on the console. For a list of available agent version numbers, call <a>DescribeAgentVersions</a>. AgentVersion cannot be set to Chef 12.2. <note> You can also specify an agent version when you create or update an instance, which overrides the stack's default setting. </note><br/>DefaultRootDeviceType:  The default root device type. This value is the default for all instances in the stack, but you can override it when you create an instance. The default option is <code>instance-store</code>. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ComponentsAMIs.html#storage-for-the-root-device">Storage for the Root Device</a>.<br/>DefaultSshKeyName:  A default Amazon EC2 key pair name. The default value is none. If you specify a key pair name, AWS OpsWorks installs the public key on the instance and you can use the private key with an SSH client to log in to the instance. For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-ssh.html"> Using SSH to Communicate with an Instance</a> and <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/security-ssh-access.html"> Managing SSH Access</a>. You can override this setting by specifying a different key pair, or no key pair, when you <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-add.html"> create an instance</a>. <br/>CustomCookbooksSource:  Contains the information required to retrieve an app or cookbook from a repository. For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workingapps-creating.html">Adding Apps</a> or <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workingcookbook.html">Cookbooks and Recipes</a>.:<br/>UseOpsworksSecurityGroups:  Whether to associate the AWS OpsWorks Stacks built-in security groups with the stack's layers. AWS OpsWorks Stacks provides a standard set of built-in security groups, one for each layer, which are associated with layers by default. With <code>UseOpsworksSecurityGroups</code> you can instead provide your own custom security groups. <code>UseOpsworksSecurityGroups</code> has the following settings:  <ul> <li> True - AWS OpsWorks Stacks automatically associates the appropriate built-in security group with each layer (default setting). You can associate additional security groups with a layer after you create it, but you cannot delete the built-in security group. </li> <li> False - AWS OpsWorks Stacks does not associate built-in security groups with layers. You must create appropriate EC2 security groups and associate a security group with each layer that you create. However, you can still manually associate a built-in security group with a layer on creation; custom security groups are required only for those layers that need custom settings. </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-creating.html">Create a New Stack</a>.<br/>UseCustomCookbooks:  Whether the stack uses custom cookbooks.<br/>ChefConfiguration:  A <code>ChefConfiguration</code> object that specifies whether to enable Berkshelf and the Berkshelf version on Chef 11.10 stacks. For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-creating.html">Create a New Stack</a>.:<br/>ConfigurationManager:  The configuration manager. When you create a stack we recommend that you use the configuration manager to specify the Chef version: 12, 11.10, or 11.4 for Linux stacks, or 12.2 for Windows stacks. The default value for Linux stacks is currently 12.:<br/>CustomJson:  A string that contains user-defined, custom JSON. It can be used to override the corresponding default stack configuration attribute values or to pass data to recipes. The string should be in the following format:  <code>"{\"key1\": \"value1\", \"key2\": \"value2\",...}"</code>  For more information about custom JSON, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-json.html">Use Custom JSON to Modify the Stack Configuration Attributes</a>.<br/>DefaultSubnetId:  The stack's default VPC subnet ID. This parameter is required if you specify a value for the <code>VpcId</code> parameter. All instances are launched into this subnet unless you specify otherwise when you create the instance. If you also specify a value for <code>DefaultAvailabilityZone</code>, the subnet must be in that zone. For information on default values and when this parameter is required, see the <code>VpcId</code> parameter description. <br/>DefaultAvailabilityZone:  The stack's default Availability Zone, which must be in the specified region. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/rande.html">Regions and Endpoints</a>. If you also specify a value for <code>DefaultSubnetId</code>, the subnet must be in the same zone. For more information, see the <code>VpcId</code> parameter description. <br/>HostnameTheme:  The stack's host name theme, with spaces replaced by underscores. The theme is used to generate host names for the stack's instances. By default, <code>HostnameTheme</code> is set to <code>Layer_Dependent</code>, which creates host names by appending integers to the layer's short name. The other themes are: <ul> <li>  <code>Baked_Goods</code>  </li> <li>  <code>Clouds</code>  </li> <li>  <code>Europe_Cities</code>  </li> <li>  <code>Fruits</code>  </li> <li>  <code>Greek_Deities_and_Titans</code>  </li> <li>  <code>Legendary_creatures_from_Japan</code>  </li> <li>  <code>Planets_and_Moons</code>  </li> <li>  <code>Roman_Deities</code>  </li> <li>  <code>Scottish_Islands</code>  </li> <li>  <code>US_Cities</code>  </li> <li>  <code>Wild_Cats</code>  </li> </ul> To obtain a generated host name, call <code>GetHostNameSuggestion</code>, which returns a host name based on the current theme.<br/>DefaultOs:  The stack's default operating system, which is installed on every instance unless you specify a different operating system when you create the instance. You can specify one of the following. <ul> <li> A supported Linux operating system: An Amazon Linux version, such as <code>Amazon Linux 2018.03</code>, <code>Amazon Linux 2017.09</code>, <code>Amazon Linux 2017.03</code>, <code>Amazon Linux 2016.09</code>, <code>Amazon Linux 2016.03</code>, <code>Amazon Linux 2015.09</code>, or <code>Amazon Linux 2015.03</code>. </li> <li> A supported Ubuntu operating system, such as <code>Ubuntu 16.04 LTS</code>, <code>Ubuntu 14.04 LTS</code>, or <code>Ubuntu 12.04 LTS</code>. </li> <li>  <code>CentOS Linux 7</code>  </li> <li>  <code>Red Hat Enterprise Linux 7</code>  </li> <li> A supported Windows operating system, such as <code>Microsoft Windows Server 2012 R2 Base</code>, <code>Microsoft Windows Server 2012 R2 with SQL Server Express</code>, <code>Microsoft Windows Server 2012 R2 with SQL Server Standard</code>, or <code>Microsoft Windows Server 2012 R2 with SQL Server Web</code>. </li> <li> A custom AMI: <code>Custom</code>. You specify the custom AMI you want to use when you create instances. For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-custom-ami.html"> Using Custom AMIs</a>. </li> </ul> The default option is the current Amazon Linux version. For more information about supported operating systems, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-os.html">AWS OpsWorks Stacks Operating Systems</a>.<br/>DefaultInstanceProfileArn:  The Amazon Resource Name (ARN) of an IAM profile that is the default profile for all of the stack's EC2 instances. For more information about IAM ARNs, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html">Using Identifiers</a>.<br/>ServiceRoleArn:  The stack's AWS Identity and Access Management (IAM) role, which allows AWS OpsWorks Stacks to work with AWS resources on your behalf. You must set this parameter to the Amazon Resource Name (ARN) for an existing IAM role. For more information about IAM ARNs, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html">Using Identifiers</a>.<br/>Attributes:  One or more user-defined key-value pairs to be added to the stack attributes.<br/>VpcId:  The ID of the VPC that the stack is to be launched into. The VPC must be in the stack's region. All instances are launched into this VPC. You cannot change the ID later. <ul> <li> If your account supports EC2-Classic, the default value is <code>no VPC</code>. </li> <li> If your account does not support EC2-Classic, the default value is the default VPC for the specified region. </li> </ul> If the VPC ID corresponds to a default VPC and you have specified either the <code>DefaultAvailabilityZone</code> or the <code>DefaultSubnetId</code> parameter only, AWS OpsWorks Stacks infers the value of the other parameter. If you specify neither parameter, AWS OpsWorks Stacks sets these parameters to the first valid Availability Zone for the specified region and the corresponding default VPC subnet ID, respectively. If you specify a nondefault VPC ID, note the following: <ul> <li> It must belong to a VPC in your account that is in the specified region. </li> <li> You must specify a value for <code>DefaultSubnetId</code>. </li> </ul> For more information about how to use AWS OpsWorks Stacks with a VPC, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-vpc.html">Running a Stack in a VPC</a>. For more information about default VPC and EC2-Classic, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-supported-platforms.html">Supported Platforms</a>. <br/>Region:  The stack's AWS region, such as <code>ap-south-1</code>. For more information about Amazon regions, see <a href="https://docs.aws.amazon.com/general/latest/gr/rande.html">Regions and Endpoints</a>. <note> In the AWS CLI, this API maps to the <code>--stack-region</code> parameter. If the <code>--stack-region</code> parameter and the AWS CLI common parameter <code>--region</code> are set to the same value, the stack uses a <i>regional</i> endpoint. If the <code>--stack-region</code> parameter is not set, but the AWS CLI <code>--region</code> parameter is, this also results in a stack with a <i>regional</i> endpoint. However, if the <code>--region</code> parameter is set to <code>us-east-1</code>, and the <code>--stack-region</code> parameter is set to one of the following, then the stack uses a legacy or <i>classic</i> region: <code>us-west-1, us-west-2, sa-east-1, eu-central-1, eu-west-1, ap-northeast-1, ap-southeast-1, ap-southeast-2</code>. In this case, the actual API endpoint of the stack is in <code>us-east-1</code>. Only the preceding regions are supported as classic regions in the <code>us-east-1</code> API endpoint. Because it is a best practice to choose the regional endpoint that is closest to where you manage AWS, we recommend that you use regional endpoints for new stacks. The AWS CLI common <code>--region</code> parameter always specifies a regional API endpoint; it cannot be used to specify a classic AWS OpsWorks Stacks region. </note><br/>Name:  The stack name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The Chef version. This parameter must be set to 12, 11.10, or 11.4 for Linux stacks, and to 12.2 for Windows stacks. The default value for Linux stacks is 11.4.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name. This parameter must be set to "Chef".<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BerkshelfVersion</i> The Berkshelf version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ManageBerkshelf</i> Whether to enable Berkshelf.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Revision</i> The application's version. AWS OpsWorks Stacks enables you to easily deploy new versions of an application. One of the simplest approaches is to have branches or revisions in your repository that represent different versions that can potentially be deployed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SshKey</i> In requests, the repository's SSH key. In responses, AWS OpsWorks Stacks returns <code>*****FILTERED*****</code> instead of the actual value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Password</i> When included in a request, the parameter depends on the repository type. <ul> <li> For Amazon S3 bundles, set <code>Password</code> to the appropriate IAM secret access key. </li> <li> For HTTP bundles and Subversion repositories, set <code>Password</code> to the password. </li> </ul> For more information on how to safely handle IAM credentials, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-access-keys-best-practices.html">https://docs.aws.amazon.com/general/latest/gr/aws-access-keys-best-practices.html</a>. In responses, AWS OpsWorks Stacks returns <code>*****FILTERED*****</code> instead of the actual value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Username</i> This parameter depends on the repository type. <ul> <li> For Amazon S3 bundles, set <code>Username</code> to the appropriate IAM access key ID. </li> <li> For HTTP bundles, Git repositories, and Subversion repositories, set <code>Username</code> to the user name. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Url</i> The source URL. The following is an example of an Amazon S3 source URL: <code>https://s3.amazonaws.com/opsworks-demo-bucket/opsworks_cookbook_demo.tar.gz</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The repository type.<br/>
        :return: StackId:  The stack ID, which is an opaque string that you use to identify the stack when performing actions such as <code>DescribeStacks</code>.<br/>        """
        pass

    def create_user_profile(self, IamUserArn: str, SshUsername: str=None, SshPublicKey: str=None, AllowSelfManagement: Boolean=None) -> CreateUserProfileResult:
        r"""Creates a new user profile.  <b>Required Permissions</b>: To use this action, an IAM user must have an attached policy that explicitly grants permissions. For more information about user permissions, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-users.html">Managing User Permissions</a>.

        :param self:
        :param AllowSelfManagement:  Whether users can specify their own SSH public key through the My Settings page. For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/security-settingsshkey.html">Setting an IAM User's Public SSH Key</a>.<br/>SshPublicKey:  The user's public SSH key.<br/>SshUsername:  The user's SSH user name. The allowable characters are [a-z], [A-Z], [0-9], '-', and '_'. If the specified name includes other punctuation marks, AWS OpsWorks Stacks removes them. For example, <code>my.name</code> will be changed to <code>myname</code>. If you do not specify an SSH user name, AWS OpsWorks Stacks generates one from the IAM user name. <br/>IamUserArn:  The user's IAM ARN; this can also be a federated user's ARN.<br/>
        :return: IamUserArn:  The user's IAM ARN.<br/>        """
        pass

    def delete_app(self, AppId: str):
        r"""Deletes a specified app.  <b>Required Permissions</b>: To use this action, an IAM user must have a Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-users.html">Managing User Permissions</a>.

        :param self:
        :param AppId:  The app ID.<br/>
        :return:         """
        pass

    def delete_instance(self, InstanceId: str, DeleteElasticIp: Boolean=None, DeleteVolumes: Boolean=None):
        r"""Deletes a specified instance, which terminates the associated Amazon EC2 instance. You must stop an instance before you can delete it. For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-delete.html">Deleting Instances</a>.  <b>Required Permissions</b>: To use this action, an IAM user must have a Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-users.html">Managing User Permissions</a>.

        :param self:
        :param DeleteVolumes:  Whether to delete the instance's Amazon EBS volumes.<br/>DeleteElasticIp:  Whether to delete the instance Elastic IP address.<br/>InstanceId:  The instance ID.<br/>
        :return:         """
        pass

    def delete_layer(self, LayerId: str):
        r"""Deletes a specified layer. You must first stop and then delete all associated instances or unassign registered instances. For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workinglayers-basics-delete.html">How to Delete a Layer</a>.  <b>Required Permissions</b>: To use this action, an IAM user must have a Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-users.html">Managing User Permissions</a>.

        :param self:
        :param LayerId:  The layer ID.<br/>
        :return:         """
        pass

    def delete_stack(self, StackId: str):
        r"""Deletes a specified stack. You must first delete all instances, layers, and apps or deregister registered instances. For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-shutting.html">Shut Down a Stack</a>.  <b>Required Permissions</b>: To use this action, an IAM user must have a Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-users.html">Managing User Permissions</a>.

        :param self:
        :param StackId:  The stack ID.<br/>
        :return:         """
        pass

    def delete_user_profile(self, IamUserArn: str):
        r"""Deletes a user profile.  <b>Required Permissions</b>: To use this action, an IAM user must have an attached policy that explicitly grants permissions. For more information about user permissions, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-users.html">Managing User Permissions</a>.

        :param self:
        :param IamUserArn:  The user's IAM ARN. This can also be a federated user's ARN.<br/>
        :return:         """
        pass

    def deregister_ecs_cluster(self, EcsClusterArn: str):
        r"""Deregisters a specified Amazon ECS cluster from a stack. For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workinglayers-ecscluster.html#workinglayers-ecscluster-delete"> Resource Management</a>.  <b>Required Permissions</b>: To use this action, an IAM user must have a Manage permissions level for the stack or an attached policy that explicitly grants permissions. For more information on user permissions, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-users.html">https://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-users.html</a>.

        :param self:
        :param EcsClusterArn:  The cluster's Amazon Resource Number (ARN).<br/>
        :return:         """
        pass

    def deregister_elastic_ip(self, ElasticIp: str):
        r"""Deregisters a specified Elastic IP address. The address can then be registered by another stack. For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/resources.html">Resource Management</a>.  <b>Required Permissions</b>: To use this action, an IAM user must have a Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-users.html">Managing User Permissions</a>.

        :param self:
        :param ElasticIp:  The Elastic IP address.<br/>
        :return:         """
        pass

    def deregister_instance(self, InstanceId: str):
        r"""Deregister a registered Amazon EC2 or on-premises instance. This action removes the instance from the stack and returns it to your control. This action cannot be used with instances that were created with AWS OpsWorks Stacks.  <b>Required Permissions</b>: To use this action, an IAM user must have a Manage permissions level for the stack or an attached policy that explicitly grants permissions. For more information on user permissions, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-users.html">Managing User Permissions</a>.

        :param self:
        :param InstanceId:  The instance ID.<br/>
        :return:         """
        pass

    def deregister_rds_db_instance(self, RdsDbInstanceArn: str):
        r"""Deregisters an Amazon RDS instance.  <b>Required Permissions</b>: To use this action, an IAM user must have a Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-users.html">Managing User Permissions</a>.

        :param self:
        :param RdsDbInstanceArn:  The Amazon RDS instance's ARN.<br/>
        :return:         """
        pass

    def deregister_volume(self, VolumeId: str):
        r"""Deregisters an Amazon EBS volume. The volume can then be registered by another stack. For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/resources.html">Resource Management</a>.  <b>Required Permissions</b>: To use this action, an IAM user must have a Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-users.html">Managing User Permissions</a>.

        :param self:
        :param VolumeId:  The AWS OpsWorks Stacks volume ID, which is the GUID that AWS OpsWorks Stacks assigned to the instance when you registered the volume with the stack, not the Amazon EC2 volume ID.<br/>
        :return:         """
        pass

    def describe_agent_versions(self, StackId: str=None, ConfigurationManager: StackConfigurationManager=None) -> DescribeAgentVersionsResult:
        r"""Describes the available AWS OpsWorks Stacks agent versions. You must specify a stack ID or a configuration manager. <code>DescribeAgentVersions</code> returns a list of available agent versions for the specified stack or configuration manager.

        :param self:
        :param ConfigurationManager:  The configuration manager.:<br/>StackId:  The stack ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The Chef version. This parameter must be set to 12, 11.10, or 11.4 for Linux stacks, and to 12.2 for Windows stacks. The default value for Linux stacks is 11.4.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name. This parameter must be set to "Chef".<br/>
        :return: AgentVersions:  The agent versions for the specified stack or configuration manager. Note that this value is the complete version number, not the abbreviated number used by the console.<br/>        """
        pass

    def describe_apps(self, StackId: str=None, AppIds: List[String]=None) -> DescribeAppsResult:
        r"""Requests a description of a specified set of apps. <note> This call accepts only one resource-identifying parameter. </note>  <b>Required Permissions</b>: To use this action, an IAM user must have a Show, Deploy, or Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information about user permissions, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-users.html">Managing User Permissions</a>.

        :param self:
        :param AppIds:  An array of app IDs for the apps to be described. If you use this parameter, <code>DescribeApps</code> returns a description of the specified apps. Otherwise, it returns a description of every app.<br/>StackId:  The app stack ID. If you use this parameter, <code>DescribeApps</code> returns a description of the apps in the specified stack.<br/>
        :return: Apps:  An array of <code>App</code> objects that describe the specified apps. <br/>        """
        pass

    def describe_commands(self, DeploymentId: str=None, InstanceId: str=None, CommandIds: List[String]=None) -> DescribeCommandsResult:
        r"""Describes the results of specified commands. <note> This call accepts only one resource-identifying parameter. </note>  <b>Required Permissions</b>: To use this action, an IAM user must have a Show, Deploy, or Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information about user permissions, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-users.html">Managing User Permissions</a>.

        :param self:
        :param CommandIds:  An array of command IDs. If you include this parameter, <code>DescribeCommands</code> returns a description of the specified commands. Otherwise, it returns a description of every command.<br/>InstanceId:  The instance ID. If you include this parameter, <code>DescribeCommands</code> returns a description of the commands associated with the specified instance.<br/>DeploymentId:  The deployment ID. If you include this parameter, <code>DescribeCommands</code> returns a description of the commands associated with the specified deployment.<br/>
        :return: Commands:  An array of <code>Command</code> objects that describe each of the specified commands.<br/>        """
        pass

    def describe_deployments(self, StackId: str=None, AppId: str=None, DeploymentIds: List[String]=None) -> DescribeDeploymentsResult:
        r"""Requests a description of a specified set of deployments. <note> This call accepts only one resource-identifying parameter. </note>  <b>Required Permissions</b>: To use this action, an IAM user must have a Show, Deploy, or Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information about user permissions, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-users.html">Managing User Permissions</a>.

        :param self:
        :param DeploymentIds:  An array of deployment IDs to be described. If you include this parameter, the command returns a description of the specified deployments. Otherwise, it returns a description of every deployment.<br/>AppId:  The app ID. If you include this parameter, the command returns a description of the commands associated with the specified app.<br/>StackId:  The stack ID. If you include this parameter, the command returns a description of the commands associated with the specified stack.<br/>
        :return: Deployments:  An array of <code>Deployment</code> objects that describe the deployments.<br/>        """
        pass

    def describe_ecs_clusters(self, EcsClusterArns: List[String]=None, StackId: str=None, NextToken: str=None, MaxResults: int=None) -> DescribeEcsClustersResult:
        r"""Describes Amazon ECS clusters that are registered with a stack. If you specify only a stack ID, you can use the <code>MaxResults</code> and <code>NextToken</code> parameters to paginate the response. However, AWS OpsWorks Stacks currently supports only one cluster per layer, so the result set has a maximum of one element.  <b>Required Permissions</b>: To use this action, an IAM user must have a Show, Deploy, or Manage permissions level for the stack or an attached policy that explicitly grants permission. For more information about user permissions, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-users.html">Managing User Permissions</a>. This call accepts only one resource-identifying parameter.

        :param self:
        :param MaxResults:  To receive a paginated response, use this parameter to specify the maximum number of results to be returned with a single call. If the number of available results exceeds this maximum, the response includes a <code>NextToken</code> value that you can assign to the <code>NextToken</code> request parameter to get the next set of results.<br/>NextToken:  If the previous paginated request did not return all of the remaining results, the response object's<code>NextToken</code> parameter value is set to a token. To retrieve the next set of results, call <code>DescribeEcsClusters</code> again and assign that token to the request object's <code>NextToken</code> parameter. If there are no remaining results, the previous response object's <code>NextToken</code> parameter is set to <code>null</code>.<br/>StackId:  A stack ID. <code>DescribeEcsClusters</code> returns a description of the cluster that is registered with the stack.<br/>EcsClusterArns:  A list of ARNs, one for each cluster to be described.<br/>
        :return: NextToken:  If a paginated request does not return all of the remaining results, this parameter is set to a token that you can assign to the request object's <code>NextToken</code> parameter to retrieve the next set of results. If the previous paginated request returned all of the remaining results, this parameter is set to <code>null</code>.<br/>EcsClusters:  A list of <code>EcsCluster</code> objects containing the cluster descriptions.<br/>        """
        pass

    def describe_elastic_ips(self, InstanceId: str=None, StackId: str=None, Ips: List[String]=None) -> DescribeElasticIpsResult:
        r"""Describes <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html">Elastic IP addresses</a>. <note> This call accepts only one resource-identifying parameter. </note>  <b>Required Permissions</b>: To use this action, an IAM user must have a Show, Deploy, or Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information about user permissions, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-users.html">Managing User Permissions</a>.

        :param self:
        :param Ips:  An array of Elastic IP addresses to be described. If you include this parameter, <code>DescribeElasticIps</code> returns a description of the specified Elastic IP addresses. Otherwise, it returns a description of every Elastic IP address.<br/>StackId:  A stack ID. If you include this parameter, <code>DescribeElasticIps</code> returns a description of the Elastic IP addresses that are registered with the specified stack.<br/>InstanceId:  The instance ID. If you include this parameter, <code>DescribeElasticIps</code> returns a description of the Elastic IP addresses associated with the specified instance.<br/>
        :return: ElasticIps:  An <code>ElasticIps</code> object that describes the specified Elastic IP addresses.<br/>        """
        pass

    def describe_elastic_load_balancers(self, StackId: str=None, LayerIds: List[String]=None) -> DescribeElasticLoadBalancersResult:
        r"""Describes a stack's Elastic Load Balancing instances. <note> This call accepts only one resource-identifying parameter. </note>  <b>Required Permissions</b>: To use this action, an IAM user must have a Show, Deploy, or Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information about user permissions, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-users.html">Managing User Permissions</a>.

        :param self:
        :param LayerIds:  A list of layer IDs. The action describes the Elastic Load Balancing instances for the specified layers.<br/>StackId:  A stack ID. The action describes the stack's Elastic Load Balancing instances.<br/>
        :return: ElasticLoadBalancers:  A list of <code>ElasticLoadBalancer</code> objects that describe the specified Elastic Load Balancing instances.<br/>        """
        pass

    def describe_instances(self, StackId: str=None, LayerId: str=None, InstanceIds: List[String]=None) -> DescribeInstancesResult:
        r"""Requests a description of a set of instances. <note> This call accepts only one resource-identifying parameter. </note>  <b>Required Permissions</b>: To use this action, an IAM user must have a Show, Deploy, or Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information about user permissions, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-users.html">Managing User Permissions</a>.

        :param self:
        :param InstanceIds:  An array of instance IDs to be described. If you use this parameter, <code>DescribeInstances</code> returns a description of the specified instances. Otherwise, it returns a description of every instance.<br/>LayerId:  A layer ID. If you use this parameter, <code>DescribeInstances</code> returns descriptions of the instances associated with the specified layer.<br/>StackId:  A stack ID. If you use this parameter, <code>DescribeInstances</code> returns descriptions of the instances associated with the specified stack.<br/>
        :return: Instances:  An array of <code>Instance</code> objects that describe the instances.<br/>        """
        pass

    def describe_layers(self, StackId: str=None, LayerIds: List[String]=None) -> DescribeLayersResult:
        r"""Requests a description of one or more layers in a specified stack. <note> This call accepts only one resource-identifying parameter. </note>  <b>Required Permissions</b>: To use this action, an IAM user must have a Show, Deploy, or Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information about user permissions, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-users.html">Managing User Permissions</a>.

        :param self:
        :param LayerIds:  An array of layer IDs that specify the layers to be described. If you omit this parameter, <code>DescribeLayers</code> returns a description of every layer in the specified stack.<br/>StackId:  The stack ID.<br/>
        :return: Layers:  An array of <code>Layer</code> objects that describe the layers.<br/>        """
        pass

    def describe_load_based_auto_scaling(self, LayerIds: List[String]) -> DescribeLoadBasedAutoScalingResult:
        r"""Describes load-based auto scaling configurations for specified layers. <note> You must specify at least one of the parameters. </note>  <b>Required Permissions</b>: To use this action, an IAM user must have a Show, Deploy, or Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information about user permissions, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-users.html">Managing User Permissions</a>.

        :param self:
        :param LayerIds:  An array of layer IDs.<br/>
        :return: LoadBasedAutoScalingConfigurations:  An array of <code>LoadBasedAutoScalingConfiguration</code> objects that describe each layer's configuration.<br/>        """
        pass

    def describe_my_user_profile(self) -> DescribeMyUserProfileResult:
        r"""Describes a user's SSH information.  <b>Required Permissions</b>: To use this action, an IAM user must have self-management enabled or an attached policy that explicitly grants permissions. For more information about user permissions, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-users.html">Managing User Permissions</a>.

        :param self:
        :param 
        :return: UserProfile:  A <code>UserProfile</code> object that describes the user's SSH information.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SshPublicKey</i> The user's SSH public key.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SshUsername</i> The user's SSH user name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The user's name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IamUserArn</i> The user's IAM ARN.<br/>        """
        pass

    def describe_operating_systems(self) -> DescribeOperatingSystemsResponse:
        r"""Describes the operating systems that are supported by AWS OpsWorks Stacks.

        :param self:
        :param 
        :return: OperatingSystems:  Contains information in response to a <code>DescribeOperatingSystems</code> request.<br/>        """
        pass

    def describe_permissions(self, IamUserArn: str=None, StackId: str=None) -> DescribePermissionsResult:
        r"""Describes the permissions for a specified stack.  <b>Required Permissions</b>: To use this action, an IAM user must have a Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-users.html">Managing User Permissions</a>.

        :param self:
        :param StackId:  The stack ID.<br/>IamUserArn:  The user's IAM ARN. This can also be a federated user's ARN. For more information about IAM ARNs, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html">Using Identifiers</a>.<br/>
        :return: Permissions:  An array of <code>Permission</code> objects that describe the stack permissions. <ul> <li> If the request object contains only a stack ID, the array contains a <code>Permission</code> object with permissions for each of the stack IAM ARNs. </li> <li> If the request object contains only an IAM ARN, the array contains a <code>Permission</code> object with permissions for each of the user's stack IDs. </li> <li> If the request contains a stack ID and an IAM ARN, the array contains a single <code>Permission</code> object with permissions for the specified stack and IAM ARN. </li> </ul><br/>        """
        pass

    def describe_raid_arrays(self, InstanceId: str=None, StackId: str=None, RaidArrayIds: List[String]=None) -> DescribeRaidArraysResult:
        r"""Describe an instance's RAID arrays. <note> This call accepts only one resource-identifying parameter. </note>  <b>Required Permissions</b>: To use this action, an IAM user must have a Show, Deploy, or Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information about user permissions, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-users.html">Managing User Permissions</a>.

        :param self:
        :param RaidArrayIds:  An array of RAID array IDs. If you use this parameter, <code>DescribeRaidArrays</code> returns descriptions of the specified arrays. Otherwise, it returns a description of every array.<br/>StackId:  The stack ID.<br/>InstanceId:  The instance ID. If you use this parameter, <code>DescribeRaidArrays</code> returns descriptions of the RAID arrays associated with the specified instance. <br/>
        :return: RaidArrays:  A <code>RaidArrays</code> object that describes the specified RAID arrays.<br/>        """
        pass

    def describe_rds_db_instances(self, StackId: str, RdsDbInstanceArns: List[String]=None) -> DescribeRdsDbInstancesResult:
        r"""Describes Amazon RDS instances.  <b>Required Permissions</b>: To use this action, an IAM user must have a Show, Deploy, or Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information about user permissions, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-users.html">Managing User Permissions</a>. This call accepts only one resource-identifying parameter.

        :param self:
        :param RdsDbInstanceArns:  An array containing the ARNs of the instances to be described.<br/>StackId:  The ID of the stack with which the instances are registered. The operation returns descriptions of all registered Amazon RDS instances.<br/>
        :return: RdsDbInstances:  An a array of <code>RdsDbInstance</code> objects that describe the instances.<br/>        """
        pass

    def describe_service_errors(self, StackId: str=None, InstanceId: str=None, ServiceErrorIds: List[String]=None) -> DescribeServiceErrorsResult:
        r"""Describes AWS OpsWorks Stacks service errors.  <b>Required Permissions</b>: To use this action, an IAM user must have a Show, Deploy, or Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information about user permissions, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-users.html">Managing User Permissions</a>. This call accepts only one resource-identifying parameter.

        :param self:
        :param ServiceErrorIds:  An array of service error IDs. If you use this parameter, <code>DescribeServiceErrors</code> returns descriptions of the specified errors. Otherwise, it returns a description of every error.<br/>InstanceId:  The instance ID. If you use this parameter, <code>DescribeServiceErrors</code> returns descriptions of the errors associated with the specified instance.<br/>StackId:  The stack ID. If you use this parameter, <code>DescribeServiceErrors</code> returns descriptions of the errors associated with the specified stack.<br/>
        :return: ServiceErrors:  An array of <code>ServiceError</code> objects that describe the specified service errors.<br/>        """
        pass

    def describe_stack_provisioning_parameters(self, StackId: str) -> DescribeStackProvisioningParametersResult:
        r"""Requests a description of a stack's provisioning parameters.  <b>Required Permissions</b>: To use this action, an IAM user must have a Show, Deploy, or Manage permissions level for the stack or an attached policy that explicitly grants permissions. For more information about user permissions, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-users.html">Managing User Permissions</a>.

        :param self:
        :param StackId:  The stack ID.<br/>
        :return: Parameters:  An embedded object that contains the provisioning parameters.<br/>AgentInstallerUrl:  The AWS OpsWorks Stacks agent installer's URL.<br/>        """
        pass

    def describe_stack_summary(self, StackId: str) -> DescribeStackSummaryResult:
        r"""Describes the number of layers and apps in a specified stack, and the number of instances in each state, such as <code>running_setup</code> or <code>online</code>.  <b>Required Permissions</b>: To use this action, an IAM user must have a Show, Deploy, or Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information about user permissions, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-users.html">Managing User Permissions</a>.

        :param self:
        :param StackId:  The stack ID.<br/>
        :return: StackSummary:  A <code>StackSummary</code> object that contains the results.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstancesCount</i> An <code>InstancesCount</code> object with the number of instances in each status.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>InstancesCount</b>: An <code>InstancesCount</code> object with the number of instances in each status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AppsCount</i> The number of apps.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LayersCount</i> The number of layers.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The stack's ARN.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The stack name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StackId</i> The stack ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Unassigning</i> The number of instances in the Unassigning state.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Terminating</i> The number of instances with <code>terminating</code> status.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Terminated</i> The number of instances with <code>terminated</code> status.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Stopping</i> The number of instances with <code>stopping</code> status.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Stopped</i> The number of instances with <code>stopped</code> status.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StopFailed</i> The number of instances with <code>stop_failed</code> status.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StartFailed</i> The number of instances with <code>start_failed</code> status.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ShuttingDown</i> The number of instances with <code>shutting_down</code> status.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SetupFailed</i> The number of instances with <code>setup_failed</code> status.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RunningSetup</i> The number of instances with <code>running_setup</code> status.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Requested</i> The number of instances with <code>requested</code> status.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Registering</i> The number of instances in the Registering state.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Registered</i> The number of instances in the Registered state.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Rebooting</i> The number of instances with <code>rebooting</code> status.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Pending</i> The number of instances with <code>pending</code> status.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Online</i> The number of instances with <code>online</code> status.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Deregistering</i> The number of instances in the Deregistering state.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ConnectionLost</i> The number of instances with <code>connection_lost</code> status.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Booting</i> The number of instances with <code>booting</code> status.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Assigning</i> The number of instances in the Assigning state.<br/>        """
        pass

    def describe_stacks(self, StackIds: List[String]=None) -> DescribeStacksResult:
        r"""Requests a description of one or more stacks.  <b>Required Permissions</b>: To use this action, an IAM user must have a Show, Deploy, or Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information about user permissions, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-users.html">Managing User Permissions</a>.

        :param self:
        :param StackIds:  An array of stack IDs that specify the stacks to be described. If you omit this parameter, <code>DescribeStacks</code> returns a description of every stack.<br/>
        :return: Stacks:  An array of <code>Stack</code> objects that describe the stacks.<br/>        """
        pass

    def describe_time_based_auto_scaling(self, InstanceIds: List[String]) -> DescribeTimeBasedAutoScalingResult:
        r"""Describes time-based auto scaling configurations for specified instances. <note> You must specify at least one of the parameters. </note>  <b>Required Permissions</b>: To use this action, an IAM user must have a Show, Deploy, or Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information about user permissions, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-users.html">Managing User Permissions</a>.

        :param self:
        :param InstanceIds:  An array of instance IDs.<br/>
        :return: TimeBasedAutoScalingConfigurations:  An array of <code>TimeBasedAutoScalingConfiguration</code> objects that describe the configuration for the specified instances.<br/>        """
        pass

    def describe_user_profiles(self, IamUserArns: List[String]=None) -> DescribeUserProfilesResult:
        r"""Describe specified users.  <b>Required Permissions</b>: To use this action, an IAM user must have an attached policy that explicitly grants permissions. For more information about user permissions, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-users.html">Managing User Permissions</a>.

        :param self:
        :param IamUserArns:  An array of IAM or federated user ARNs that identify the users to be described.<br/>
        :return: UserProfiles:  A <code>Users</code> object that describes the specified users.<br/>        """
        pass

    def describe_volumes(self, InstanceId: str=None, StackId: str=None, RaidArrayId: str=None, VolumeIds: List[String]=None) -> DescribeVolumesResult:
        r"""Describes an instance's Amazon EBS volumes. <note> This call accepts only one resource-identifying parameter. </note>  <b>Required Permissions</b>: To use this action, an IAM user must have a Show, Deploy, or Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information about user permissions, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-users.html">Managing User Permissions</a>.

        :param self:
        :param VolumeIds:  Am array of volume IDs. If you use this parameter, <code>DescribeVolumes</code> returns descriptions of the specified volumes. Otherwise, it returns a description of every volume.<br/>RaidArrayId:  The RAID array ID. If you use this parameter, <code>DescribeVolumes</code> returns descriptions of the volumes associated with the specified RAID array.<br/>StackId:  A stack ID. The action describes the stack's registered Amazon EBS volumes.<br/>InstanceId:  The instance ID. If you use this parameter, <code>DescribeVolumes</code> returns descriptions of the volumes associated with the specified instance.<br/>
        :return: Volumes:  An array of volume IDs.<br/>        """
        pass

    def detach_elastic_load_balancer(self, LayerId: str, ElasticLoadBalancerName: str):
        r"""Detaches a specified Elastic Load Balancing instance from its layer.  <b>Required Permissions</b>: To use this action, an IAM user must have a Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-users.html">Managing User Permissions</a>.

        :param self:
        :param LayerId:  The ID of the layer that the Elastic Load Balancing instance is attached to.<br/>ElasticLoadBalancerName:  The Elastic Load Balancing instance's name.<br/>
        :return:         """
        pass

    def disassociate_elastic_ip(self, ElasticIp: str):
        r"""Disassociates an Elastic IP address from its instance. The address remains registered with the stack. For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/resources.html">Resource Management</a>.  <b>Required Permissions</b>: To use this action, an IAM user must have a Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-users.html">Managing User Permissions</a>.

        :param self:
        :param ElasticIp:  The Elastic IP address.<br/>
        :return:         """
        pass

    def get_hostname_suggestion(self, LayerId: str) -> GetHostnameSuggestionResult:
        r"""Gets a generated host name for the specified layer, based on the current host name theme.  <b>Required Permissions</b>: To use this action, an IAM user must have a Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-users.html">Managing User Permissions</a>.

        :param self:
        :param LayerId:  The layer ID.<br/>
        :return: Hostname:  The generated host name.<br/>LayerId:  The layer ID.<br/>        """
        pass

    def grant_access(self, InstanceId: str, ValidForInMinutes: int=None) -> GrantAccessResult:
        r"""<note> This action can be used only with Windows stacks. </note> Grants RDP access to a Windows instance for a specified time period.

        :param self:
        :param ValidForInMinutes:  The length of time (in minutes) that the grant is valid. When the grant expires at the end of this period, the user will no longer be able to use the credentials to log in. If the user is logged in at the time, he or she automatically will be logged out.<br/>InstanceId:  The instance's AWS OpsWorks Stacks ID.<br/>
        :return: TemporaryCredential:  A <code>TemporaryCredential</code> object that contains the data needed to log in to the instance by RDP clients, such as the Microsoft Remote Desktop Connection.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceId</i> The instance's AWS OpsWorks Stacks ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ValidForInMinutes</i> The length of time (in minutes) that the grant is valid. When the grant expires, at the end of this period, the user will no longer be able to use the credentials to log in. If they are logged in at the time, they will be automatically logged out.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Password</i> The password.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Username</i> The user name.<br/>        """
        pass

    def list_tags(self, ResourceArn: str, MaxResults: int=None, NextToken: str=None) -> ListTagsResult:
        r"""Returns a list of tags that are applied to the specified stack or layer.

        :param self:
        :param NextToken:  Do not use. A validation exception occurs if you add a <code>NextToken</code> parameter to a <code>ListTagsRequest</code> call. <br/>MaxResults:  Do not use. A validation exception occurs if you add a <code>MaxResults</code> parameter to a <code>ListTagsRequest</code> call. <br/>ResourceArn:  The stack or layer's Amazon Resource Number (ARN).<br/>
        :return: NextToken:  If a paginated request does not return all of the remaining results, this parameter is set to a token that you can assign to the request object's <code>NextToken</code> parameter to get the next set of results. If the previous paginated request returned all of the remaining results, this parameter is set to <code>null</code>. <br/>Tags:  A set of key-value pairs that contain tag keys and tag values that are attached to a stack or layer.<br/>        """
        pass

    def reboot_instance(self, InstanceId: str):
        r"""Reboots a specified instance. For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-starting.html">Starting, Stopping, and Rebooting Instances</a>.  <b>Required Permissions</b>: To use this action, an IAM user must have a Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-users.html">Managing User Permissions</a>.

        :param self:
        :param InstanceId:  The instance ID.<br/>
        :return:         """
        pass

    def register_ecs_cluster(self, StackId: str, EcsClusterArn: str) -> RegisterEcsClusterResult:
        r"""Registers a specified Amazon ECS cluster with a stack. You can register only one cluster with a stack. A cluster can be registered with only one stack. For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workinglayers-ecscluster.html"> Resource Management</a>.  <b>Required Permissions</b>: To use this action, an IAM user must have a Manage permissions level for the stack or an attached policy that explicitly grants permissions. For more information on user permissions, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-users.html"> Managing User Permissions</a>.

        :param self:
        :param StackId:  The stack ID.<br/>EcsClusterArn:  The cluster's ARN.<br/>
        :return: EcsClusterArn:  The cluster's ARN.<br/>        """
        pass

    def register_elastic_ip(self, StackId: str, ElasticIp: str) -> RegisterElasticIpResult:
        r"""Registers an Elastic IP address with a specified stack. An address can be registered with only one stack at a time. If the address is already registered, you must first deregister it by calling <a>DeregisterElasticIp</a>. For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/resources.html">Resource Management</a>.  <b>Required Permissions</b>: To use this action, an IAM user must have a Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-users.html">Managing User Permissions</a>.

        :param self:
        :param StackId:  The stack ID.<br/>ElasticIp:  The Elastic IP address.<br/>
        :return: ElasticIp:  The Elastic IP address.<br/>        """
        pass

    def register_instance(self, StackId: str, Hostname: str=None, PublicIp: str=None, PrivateIp: str=None, RsaPublicKey: str=None, RsaPublicKeyFingerprint: str=None, InstanceIdentity: InstanceIdentity=None) -> RegisterInstanceResult:
        r"""Registers instances that were created outside of AWS OpsWorks Stacks with a specified stack. <note> We do not recommend using this action to register instances. The complete registration operation includes two tasks: installing the AWS OpsWorks Stacks agent on the instance, and registering the instance with the stack. <code>RegisterInstance</code> handles only the second step. You should instead use the AWS CLI <code>register</code> command, which performs the entire registration operation. For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/registered-instances-register.html"> Registering an Instance with an AWS OpsWorks Stacks Stack</a>. </note> Registered instances have the same requirements as instances that are created by using the <a>CreateInstance</a> API. For example, registered instances must be running a supported Linux-based operating system, and they must have a supported instance type. For more information about requirements for instances that you want to register, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/registered-instances-register-registering-preparer.html"> Preparing the Instance</a>.  <b>Required Permissions</b>: To use this action, an IAM user must have a Manage permissions level for the stack or an attached policy that explicitly grants permissions. For more information on user permissions, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-users.html">Managing User Permissions</a>.

        :param self:
        :param InstanceIdentity:  An InstanceIdentity object that contains the instance's identity.:<br/>RsaPublicKeyFingerprint:  The instances public RSA key fingerprint.<br/>RsaPublicKey:  The instances public RSA key. This key is used to encrypt communication between the instance and the service.<br/>PrivateIp:  The instance's private IP address.<br/>PublicIp:  The instance's public IP address.<br/>Hostname:  The instance's hostname.<br/>StackId:  The ID of the stack that the instance is to be registered with.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Signature</i> A signature that can be used to verify the document's accuracy and authenticity.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Document</i> A JSON document that contains the metadata.<br/>
        :return: InstanceId:  The registered instance's AWS OpsWorks Stacks ID.<br/>        """
        pass

    def register_rds_db_instance(self, DbPassword: str, DbUser: str, RdsDbInstanceArn: str, StackId: str):
        r"""Registers an Amazon RDS instance with a stack.  <b>Required Permissions</b>: To use this action, an IAM user must have a Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-users.html">Managing User Permissions</a>.

        :param self:
        :param DbPassword:  The database password.<br/>DbUser:  The database's master user name.<br/>RdsDbInstanceArn:  The Amazon RDS instance's ARN.<br/>StackId:  The stack ID.<br/>
        :return:         """
        pass

    def register_volume(self, StackId: str, Ec2VolumeId: str=None) -> RegisterVolumeResult:
        r"""Registers an Amazon EBS volume with a specified stack. A volume can be registered with only one stack at a time. If the volume is already registered, you must first deregister it by calling <a>DeregisterVolume</a>. For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/resources.html">Resource Management</a>.  <b>Required Permissions</b>: To use this action, an IAM user must have a Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-users.html">Managing User Permissions</a>.

        :param self:
        :param StackId:  The stack ID.<br/>Ec2VolumeId:  The Amazon EBS volume ID.<br/>
        :return: VolumeId:  The volume ID.<br/>        """
        pass

    def set_load_based_auto_scaling(self, LayerId: str, Enable: Boolean=None, UpScaling: AutoScalingThresholds=None, DownScaling: AutoScalingThresholds=None):
        r"""Specify the load-based auto scaling configuration for a specified layer. For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-autoscaling.html">Managing Load with Time-based and Load-based Instances</a>. <note> To use load-based auto scaling, you must create a set of load-based auto scaling instances. Load-based auto scaling operates only on the instances from that set, so you must ensure that you have created enough instances to handle the maximum anticipated load. </note>  <b>Required Permissions</b>: To use this action, an IAM user must have a Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-users.html">Managing User Permissions</a>.

        :param self:
        :param DownScaling:  An <code>AutoScalingThresholds</code> object with the downscaling threshold configuration. If the load falls below these thresholds for a specified amount of time, AWS OpsWorks Stacks stops a specified number of instances.:<br/>UpScaling:  An <code>AutoScalingThresholds</code> object with the upscaling threshold configuration. If the load exceeds these thresholds for a specified amount of time, AWS OpsWorks Stacks starts a specified number of instances.:<br/>Enable:  Enables load-based auto scaling for the layer.<br/>LayerId:  The layer ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Alarms</i> Custom Cloudwatch auto scaling alarms, to be used as thresholds. This parameter takes a list of up to five alarm names, which are case sensitive and must be in the same region as the stack. <note> To use custom alarms, you must update your service role to allow <code>cloudwatch:DescribeAlarms</code>. You can either have AWS OpsWorks Stacks update the role for you when you first use this feature or you can edit the role manually. For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-servicerole.html">Allowing AWS OpsWorks Stacks to Act on Your Behalf</a>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LoadThreshold</i> The load threshold. A value of -1 disables the threshold. For more information about how load is computed, see <a href="http://en.wikipedia.org/wiki/Load_%28computing%29">Load (computing)</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MemoryThreshold</i> The memory utilization threshold, as a percent of the available memory. A value of -1 disables the threshold.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CpuThreshold</i> The CPU utilization threshold, as a percent of the available CPU. A value of -1 disables the threshold.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IgnoreMetricsTime</i> The amount of time (in minutes) after a scaling event occurs that AWS OpsWorks Stacks should ignore metrics and suppress additional scaling events. For example, AWS OpsWorks Stacks adds new instances following an upscaling event but the instances won't start reducing the load until they have been booted and configured. There is no point in raising additional scaling events during that operation, which typically takes several minutes. <code>IgnoreMetricsTime</code> allows you to direct AWS OpsWorks Stacks to suppress scaling events long enough to get the new instances online.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ThresholdsWaitTime</i> The amount of time, in minutes, that the load must exceed a threshold before more instances are added or removed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceCount</i> The number of instances to add or remove when the load exceeds a threshold.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Alarms</i> Custom Cloudwatch auto scaling alarms, to be used as thresholds. This parameter takes a list of up to five alarm names, which are case sensitive and must be in the same region as the stack. <note> To use custom alarms, you must update your service role to allow <code>cloudwatch:DescribeAlarms</code>. You can either have AWS OpsWorks Stacks update the role for you when you first use this feature or you can edit the role manually. For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-servicerole.html">Allowing AWS OpsWorks Stacks to Act on Your Behalf</a>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LoadThreshold</i> The load threshold. A value of -1 disables the threshold. For more information about how load is computed, see <a href="http://en.wikipedia.org/wiki/Load_%28computing%29">Load (computing)</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MemoryThreshold</i> The memory utilization threshold, as a percent of the available memory. A value of -1 disables the threshold.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CpuThreshold</i> The CPU utilization threshold, as a percent of the available CPU. A value of -1 disables the threshold.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IgnoreMetricsTime</i> The amount of time (in minutes) after a scaling event occurs that AWS OpsWorks Stacks should ignore metrics and suppress additional scaling events. For example, AWS OpsWorks Stacks adds new instances following an upscaling event but the instances won't start reducing the load until they have been booted and configured. There is no point in raising additional scaling events during that operation, which typically takes several minutes. <code>IgnoreMetricsTime</code> allows you to direct AWS OpsWorks Stacks to suppress scaling events long enough to get the new instances online.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ThresholdsWaitTime</i> The amount of time, in minutes, that the load must exceed a threshold before more instances are added or removed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceCount</i> The number of instances to add or remove when the load exceeds a threshold.<br/>
        :return:         """
        pass

    def set_permission(self, IamUserArn: str, StackId: str, AllowSsh: Boolean=None, AllowSudo: Boolean=None, Level: str=None):
        r"""Specifies a user's permissions. For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workingsecurity.html">Security and Permissions</a>.  <b>Required Permissions</b>: To use this action, an IAM user must have a Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-users.html">Managing User Permissions</a>.

        :param self:
        :param Level:  The user's permission level, which must be set to one of the following strings. You cannot set your own permissions level. <ul> <li>  <code>deny</code>  </li> <li>  <code>show</code>  </li> <li>  <code>deploy</code>  </li> <li>  <code>manage</code>  </li> <li>  <code>iam_only</code>  </li> </ul> For more information about the permissions associated with these levels, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-users.html">Managing User Permissions</a>.<br/>AllowSudo:  The user is allowed to use <b>sudo</b> to elevate privileges.<br/>AllowSsh:  The user is allowed to use SSH to communicate with the instance.<br/>IamUserArn:  The user's IAM ARN. This can also be a federated user's ARN.<br/>StackId:  The stack ID.<br/>
        :return:         """
        pass

    def set_time_based_auto_scaling(self, InstanceId: str, AutoScalingSchedule: WeeklyAutoScalingSchedule=None):
        r"""Specify the time-based auto scaling configuration for a specified instance. For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-autoscaling.html">Managing Load with Time-based and Load-based Instances</a>.  <b>Required Permissions</b>: To use this action, an IAM user must have a Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-users.html">Managing User Permissions</a>.

        :param self:
        :param AutoScalingSchedule:  An <code>AutoScalingSchedule</code> with the instance schedule.:<br/>InstanceId:  The instance ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Sunday</i> The schedule for Sunday.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Saturday</i> The schedule for Saturday.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Friday</i> The schedule for Friday.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Thursday</i> The schedule for Thursday.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Wednesday</i> The schedule for Wednesday.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tuesday</i> The schedule for Tuesday.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Monday</i> The schedule for Monday.<br/>
        :return:         """
        pass

    def start_instance(self, InstanceId: str):
        r"""Starts a specified instance. For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-starting.html">Starting, Stopping, and Rebooting Instances</a>.  <b>Required Permissions</b>: To use this action, an IAM user must have a Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-users.html">Managing User Permissions</a>.

        :param self:
        :param InstanceId:  The instance ID.<br/>
        :return:         """
        pass

    def start_stack(self, StackId: str):
        r"""Starts a stack's instances.  <b>Required Permissions</b>: To use this action, an IAM user must have a Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-users.html">Managing User Permissions</a>.

        :param self:
        :param StackId:  The stack ID.<br/>
        :return:         """
        pass

    def stop_instance(self, InstanceId: str, Force: Boolean=None):
        r"""Stops a specified instance. When you stop a standard instance, the data disappears and must be reinstalled when you restart the instance. You can stop an Amazon EBS-backed instance without losing data. For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-starting.html">Starting, Stopping, and Rebooting Instances</a>.  <b>Required Permissions</b>: To use this action, an IAM user must have a Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-users.html">Managing User Permissions</a>.

        :param self:
        :param Force:  Specifies whether to force an instance to stop. If the instance's root device type is <code>ebs</code>, or EBS-backed, adding the <code>Force</code> parameter to the <code>StopInstances</code> API call disassociates the AWS OpsWorks Stacks instance from EC2, and forces deletion of <i>only</i> the OpsWorks Stacks instance. You must also delete the formerly-associated instance in EC2 after troubleshooting and replacing the AWS OpsWorks Stacks instance with a new one.<br/>InstanceId:  The instance ID.<br/>
        :return:         """
        pass

    def stop_stack(self, StackId: str):
        r"""Stops a specified stack.  <b>Required Permissions</b>: To use this action, an IAM user must have a Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-users.html">Managing User Permissions</a>.

        :param self:
        :param StackId:  The stack ID.<br/>
        :return:         """
        pass

    def tag_resource(self, Tags: Tags, ResourceArn: str):
        r"""Apply cost-allocation tags to a specified stack or layer in AWS OpsWorks Stacks. For more information about how tagging works, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/tagging.html">Tags</a> in the AWS OpsWorks User Guide.

        :param self:
        :param Tags:  A map that contains tag keys and tag values that are attached to a stack or layer. <ul> <li> The key cannot be empty. </li> <li> The key can be a maximum of 127 characters, and can contain only Unicode letters, numbers, or separators, or the following special characters: <code>+ - = . _ : /</code>  </li> <li> The value can be a maximum 255 characters, and contain only Unicode letters, numbers, or separators, or the following special characters: <code>+ - = . _ : /</code>  </li> <li> Leading and trailing white spaces are trimmed from both the key and value. </li> <li> A maximum of 40 tags is allowed for any resource. </li> </ul><br/>ResourceArn:  The stack or layer's Amazon Resource Number (ARN).<br/>
        :return:         """
        pass

    def unassign_instance(self, InstanceId: str):
        r"""Unassigns a registered instance from all layers that are using the instance. The instance remains in the stack as an unassigned instance, and can be assigned to another layer as needed. You cannot use this action with instances that were created with AWS OpsWorks Stacks.  <b>Required Permissions</b>: To use this action, an IAM user must have a Manage permissions level for the stack or an attached policy that explicitly grants permissions. For more information about user permissions, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-users.html">Managing User Permissions</a>.

        :param self:
        :param InstanceId:  The instance ID.<br/>
        :return:         """
        pass

    def unassign_volume(self, VolumeId: str):
        r"""Unassigns an assigned Amazon EBS volume. The volume remains registered with the stack. For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/resources.html">Resource Management</a>.  <b>Required Permissions</b>: To use this action, an IAM user must have a Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-users.html">Managing User Permissions</a>.

        :param self:
        :param VolumeId:  The volume ID.<br/>
        :return:         """
        pass

    def untag_resource(self, TagKeys: List[TagKey], ResourceArn: str):
        r"""Removes tags from a specified stack or layer.

        :param self:
        :param TagKeys:  A list of the keys of tags to be removed from a stack or layer.<br/>ResourceArn:  The stack or layer's Amazon Resource Number (ARN).<br/>
        :return:         """
        pass

    def update_app(self, AppId: str, Name: str=None, Description: str=None, DataSources: List[DataSource]=None, Type: str=None, AppSource: Source=None, Domains: List[String]=None, EnableSsl: Boolean=None, SslConfiguration: SslConfiguration=None, Attributes: AppAttributes=None, Environment: List[EnvironmentVariable]=None):
        r"""Updates a specified app.  <b>Required Permissions</b>: To use this action, an IAM user must have a Deploy or Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-users.html">Managing User Permissions</a>.

        :param self:
        :param Environment:  An array of <code>EnvironmentVariable</code> objects that specify environment variables to be associated with the app. After you deploy the app, these variables are defined on the associated app server instances.For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workingapps-creating.html#workingapps-creating-environment"> Environment Variables</a>. There is no specific limit on the number of environment variables. However, the size of the associated data structure - which includes the variables' names, values, and protected flag values - cannot exceed 20 KB. This limit should accommodate most if not all use cases. Exceeding it will cause an exception with the message, "Environment: is too large (maximum is 20 KB)." <note> If you have specified one or more environment variables, you cannot modify the stack's Chef version. </note><br/>Attributes:  One or more user-defined key/value pairs to be added to the stack attributes.<br/>SslConfiguration:  An <code>SslConfiguration</code> object with the SSL configuration.:<br/>EnableSsl:  Whether SSL is enabled for the app.<br/>Domains:  The app's virtual host settings, with multiple domains separated by commas. For example: <code>'www.example.com, example.com'</code> <br/>AppSource:  A <code>Source</code> object that specifies the app repository.:<br/>Type:  The app type.<br/>DataSources:  The app's data sources.<br/>Description:  A description of the app.<br/>Name:  The app name.<br/>AppId:  The app ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Revision</i> The application's version. AWS OpsWorks Stacks enables you to easily deploy new versions of an application. One of the simplest approaches is to have branches or revisions in your repository that represent different versions that can potentially be deployed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SshKey</i> In requests, the repository's SSH key. In responses, AWS OpsWorks Stacks returns <code>*****FILTERED*****</code> instead of the actual value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Password</i> When included in a request, the parameter depends on the repository type. <ul> <li> For Amazon S3 bundles, set <code>Password</code> to the appropriate IAM secret access key. </li> <li> For HTTP bundles and Subversion repositories, set <code>Password</code> to the password. </li> </ul> For more information on how to safely handle IAM credentials, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-access-keys-best-practices.html">https://docs.aws.amazon.com/general/latest/gr/aws-access-keys-best-practices.html</a>. In responses, AWS OpsWorks Stacks returns <code>*****FILTERED*****</code> instead of the actual value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Username</i> This parameter depends on the repository type. <ul> <li> For Amazon S3 bundles, set <code>Username</code> to the appropriate IAM access key ID. </li> <li> For HTTP bundles, Git repositories, and Subversion repositories, set <code>Username</code> to the user name. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Url</i> The source URL. The following is an example of an Amazon S3 source URL: <code>https://s3.amazonaws.com/opsworks-demo-bucket/opsworks_cookbook_demo.tar.gz</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The repository type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Chain</i> Optional. Can be used to specify an intermediate certificate authority key or client authentication.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PrivateKey</i> The private key; the contents of the certificate's domain.kex file.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Certificate</i> The contents of the certificate's domain.crt file.<br/>
        :return:         """
        pass

    def update_elastic_ip(self, ElasticIp: str, Name: str=None):
        r"""Updates a registered Elastic IP address's name. For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/resources.html">Resource Management</a>.  <b>Required Permissions</b>: To use this action, an IAM user must have a Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-users.html">Managing User Permissions</a>.

        :param self:
        :param Name:  The new name.<br/>ElasticIp:  The IP address for which you want to update the name.<br/>
        :return:         """
        pass

    def update_instance(self, InstanceId: str, LayerIds: List[String]=None, InstanceType: str=None, AutoScalingType: str=None, Hostname: str=None, Os: str=None, AmiId: str=None, SshKeyName: str=None, Architecture: str=None, InstallUpdatesOnBoot: Boolean=None, EbsOptimized: Boolean=None, AgentVersion: str=None):
        r"""Updates a specified instance.  <b>Required Permissions</b>: To use this action, an IAM user must have a Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-users.html">Managing User Permissions</a>.

        :param self:
        :param AgentVersion:  The default AWS OpsWorks Stacks agent version. You have the following options: <ul> <li>  <code>INHERIT</code> - Use the stack's default agent version setting. </li> <li>  <i>version_number</i> - Use the specified agent version. This value overrides the stack's default setting. To update the agent version, you must edit the instance configuration and specify a new version. AWS OpsWorks Stacks then automatically installs that version on the instance. </li> </ul> The default setting is <code>INHERIT</code>. To specify an agent version, you must use the complete version number, not the abbreviated number shown on the console. For a list of available agent version numbers, call <a>DescribeAgentVersions</a>. AgentVersion cannot be set to Chef 12.2.<br/>EbsOptimized:  This property cannot be updated.<br/>InstallUpdatesOnBoot:  Whether to install operating system and package updates when the instance boots. The default value is <code>true</code>. To control when updates are installed, set this value to <code>false</code>. You must then update your instances manually by using <a>CreateDeployment</a> to run the <code>update_dependencies</code> stack command or by manually running <code>yum</code> (Amazon Linux) or <code>apt-get</code> (Ubuntu) on the instances.  <note> We strongly recommend using the default value of <code>true</code>, to ensure that your instances have the latest security updates. </note><br/>Architecture:  The instance architecture. Instance types do not necessarily support both architectures. For a list of the architectures that are supported by the different instance types, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html">Instance Families and Types</a>.<br/>SshKeyName:  The instance's Amazon EC2 key name.<br/>AmiId:  The ID of the AMI that was used to create the instance. The value of this parameter must be the same AMI ID that the instance is already using. You cannot apply a new AMI to an instance by running UpdateInstance. UpdateInstance does not work on instances that are using custom AMIs. <br/>Os:  The instance's operating system, which must be set to one of the following. You cannot update an instance that is using a custom AMI. <ul> <li> A supported Linux operating system: An Amazon Linux version, such as <code>Amazon Linux 2018.03</code>, <code>Amazon Linux 2017.09</code>, <code>Amazon Linux 2017.03</code>, <code>Amazon Linux 2016.09</code>, <code>Amazon Linux 2016.03</code>, <code>Amazon Linux 2015.09</code>, or <code>Amazon Linux 2015.03</code>. </li> <li> A supported Ubuntu operating system, such as <code>Ubuntu 16.04 LTS</code>, <code>Ubuntu 14.04 LTS</code>, or <code>Ubuntu 12.04 LTS</code>. </li> <li>  <code>CentOS Linux 7</code>  </li> <li>  <code>Red Hat Enterprise Linux 7</code>  </li> <li> A supported Windows operating system, such as <code>Microsoft Windows Server 2012 R2 Base</code>, <code>Microsoft Windows Server 2012 R2 with SQL Server Express</code>, <code>Microsoft Windows Server 2012 R2 with SQL Server Standard</code>, or <code>Microsoft Windows Server 2012 R2 with SQL Server Web</code>. </li> </ul> For more information about supported operating systems, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-os.html">AWS OpsWorks Stacks Operating Systems</a>. The default option is the current Amazon Linux version. If you set this parameter to <code>Custom</code>, you must use the AmiId parameter to specify the custom AMI that you want to use. For more information about supported operating systems, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-os.html">Operating Systems</a>. For more information about how to use custom AMIs with OpsWorks, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-custom-ami.html">Using Custom AMIs</a>. <note> You can specify a different Linux operating system for the updated stack, but you cannot change from Linux to Windows or Windows to Linux. </note><br/>Hostname:  The instance host name.<br/>AutoScalingType:  For load-based or time-based instances, the type. Windows stacks can use only time-based instances.<br/>InstanceType:  The instance type, such as <code>t2.micro</code>. For a list of supported instance types, open the stack in the console, choose <b>Instances</b>, and choose <b>+ Instance</b>. The <b>Size</b> list contains the currently supported types. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html">Instance Families and Types</a>. The parameter values that you use to specify the various types are in the <b>API Name</b> column of the <b>Available Instance Types</b> table.<br/>LayerIds:  The instance's layer IDs.<br/>InstanceId:  The instance ID.<br/>
        :return:         """
        pass

    def update_layer(self, LayerId: str, Name: str=None, Shortname: str=None, Attributes: LayerAttributes=None, CloudWatchLogsConfiguration: CloudWatchLogsConfiguration=None, CustomInstanceProfileArn: str=None, CustomJson: str=None, CustomSecurityGroupIds: List[String]=None, Packages: List[String]=None, VolumeConfigurations: List[VolumeConfiguration]=None, EnableAutoHealing: Boolean=None, AutoAssignElasticIps: Boolean=None, AutoAssignPublicIps: Boolean=None, CustomRecipes: Recipes=None, InstallUpdatesOnBoot: Boolean=None, UseEbsOptimizedInstances: Boolean=None, LifecycleEventConfiguration: LifecycleEventConfiguration=None):
        r"""Updates a specified layer.  <b>Required Permissions</b>: To use this action, an IAM user must have a Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-users.html">Managing User Permissions</a>.

        :param self:
        :param LifecycleEventConfiguration:  <p/>:<br/>UseEbsOptimizedInstances:  Whether to use Amazon EBS-optimized instances.<br/>InstallUpdatesOnBoot:  Whether to install operating system and package updates when the instance boots. The default value is <code>true</code>. To control when updates are installed, set this value to <code>false</code>. You must then update your instances manually by using <a>CreateDeployment</a> to run the <code>update_dependencies</code> stack command or manually running <code>yum</code> (Amazon Linux) or <code>apt-get</code> (Ubuntu) on the instances.  <note> We strongly recommend using the default value of <code>true</code>, to ensure that your instances have the latest security updates. </note><br/>CustomRecipes:  A <code>LayerCustomRecipes</code> object that specifies the layer's custom recipes.:<br/>AutoAssignPublicIps:  For stacks that are running in a VPC, whether to automatically assign a public IP address to the layer's instances. For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workinglayers-basics-edit.html">How to Edit a Layer</a>.<br/>AutoAssignElasticIps:  Whether to automatically assign an <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html">Elastic IP address</a> to the layer's instances. For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workinglayers-basics-edit.html">How to Edit a Layer</a>.<br/>EnableAutoHealing:  Whether to disable auto healing for the layer.<br/>VolumeConfigurations:  A <code>VolumeConfigurations</code> object that describes the layer's Amazon EBS volumes.<br/>Packages:  An array of <code>Package</code> objects that describe the layer's packages.<br/>CustomSecurityGroupIds:  An array containing the layer's custom security group IDs.<br/>CustomJson:  A JSON-formatted string containing custom stack configuration and deployment attributes to be installed on the layer's instances. For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workingcookbook-json-override.html"> Using Custom JSON</a>. <br/>CustomInstanceProfileArn:  The ARN of an IAM profile to be used for all of the layer's EC2 instances. For more information about IAM ARNs, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html">Using Identifiers</a>.<br/>CloudWatchLogsConfiguration:  Specifies CloudWatch Logs configuration options for the layer. For more information, see <a>CloudWatchLogsLogStream</a>.:<br/>Attributes:  One or more user-defined key/value pairs to be added to the stack attributes.<br/>Shortname:  For custom layers only, use this parameter to specify the layer's short name, which is used internally by AWS OpsWorks Stacks and by Chef. The short name is also used as the name for the directory where your app files are installed. It can have a maximum of 200 characters and must be in the following format: /\A[a-z0-9\-\_\.]+\Z/. The built-in layers' short names are defined by AWS OpsWorks Stacks. For more information, see the <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/layers.html">Layer Reference</a> <br/>Name:  The layer name, which is used by the console.<br/>LayerId:  The layer ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogStreams</i> A list of configuration options for CloudWatch Logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Whether CloudWatch Logs is enabled for a layer.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Shutdown</i> An array of custom recipe names to be run following a <code>shutdown</code> event.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Undeploy</i> An array of custom recipe names to be run following a <code>undeploy</code> event.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Deploy</i> An array of custom recipe names to be run following a <code>deploy</code> event.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Configure</i> An array of custom recipe names to be run following a <code>configure</code> event.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Setup</i> An array of custom recipe names to be run following a <code>setup</code> event.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Shutdown</i> A <code>ShutdownEventConfiguration</code> object that specifies the Shutdown event configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Shutdown</b>: A <code>ShutdownEventConfiguration</code> object that specifies the Shutdown event configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DelayUntilElbConnectionsDrained</i> Whether to enable Elastic Load Balancing connection draining. For more information, see <a href="https://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/TerminologyandKeyConcepts.html#conn-drain">Connection Draining</a> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ExecutionTimeout</i> The time, in seconds, that AWS OpsWorks Stacks will wait after triggering a Shutdown event before shutting down an instance.<br/>
        :return:         """
        pass

    def update_my_user_profile(self, SshPublicKey: str=None):
        r"""Updates a user's SSH public key.  <b>Required Permissions</b>: To use this action, an IAM user must have self-management enabled or an attached policy that explicitly grants permissions. For more information about user permissions, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-users.html">Managing User Permissions</a>.

        :param self:
        :param SshPublicKey:  The user's SSH public key.<br/>
        :return:         """
        pass

    def update_rds_db_instance(self, RdsDbInstanceArn: str, DbUser: str=None, DbPassword: str=None):
        r"""Updates an Amazon RDS instance.  <b>Required Permissions</b>: To use this action, an IAM user must have a Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-users.html">Managing User Permissions</a>.

        :param self:
        :param DbPassword:  The database password.<br/>DbUser:  The master user name.<br/>RdsDbInstanceArn:  The Amazon RDS instance's ARN.<br/>
        :return:         """
        pass

    def update_stack(self, StackId: str, Name: str=None, Attributes: StackAttributes=None, ServiceRoleArn: str=None, DefaultInstanceProfileArn: str=None, DefaultOs: str=None, HostnameTheme: str=None, DefaultAvailabilityZone: str=None, DefaultSubnetId: str=None, CustomJson: str=None, ConfigurationManager: StackConfigurationManager=None, ChefConfiguration: ChefConfiguration=None, UseCustomCookbooks: Boolean=None, CustomCookbooksSource: Source=None, DefaultSshKeyName: str=None, DefaultRootDeviceType: str=None, UseOpsworksSecurityGroups: Boolean=None, AgentVersion: str=None):
        r"""Updates a specified stack.  <b>Required Permissions</b>: To use this action, an IAM user must have a Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-users.html">Managing User Permissions</a>.

        :param self:
        :param AgentVersion:  The default AWS OpsWorks Stacks agent version. You have the following options: <ul> <li> Auto-update - Set this parameter to <code>LATEST</code>. AWS OpsWorks Stacks automatically installs new agent versions on the stack's instances as soon as they are available. </li> <li> Fixed version - Set this parameter to your preferred agent version. To update the agent version, you must edit the stack configuration and specify a new version. AWS OpsWorks Stacks then automatically installs that version on the stack's instances. </li> </ul> The default setting is <code>LATEST</code>. To specify an agent version, you must use the complete version number, not the abbreviated number shown on the console. For a list of available agent version numbers, call <a>DescribeAgentVersions</a>. AgentVersion cannot be set to Chef 12.2. <note> You can also specify an agent version when you create or update an instance, which overrides the stack's default setting. </note><br/>UseOpsworksSecurityGroups:  Whether to associate the AWS OpsWorks Stacks built-in security groups with the stack's layers. AWS OpsWorks Stacks provides a standard set of built-in security groups, one for each layer, which are associated with layers by default. <code>UseOpsworksSecurityGroups</code> allows you to provide your own custom security groups instead of using the built-in groups. <code>UseOpsworksSecurityGroups</code> has the following settings:  <ul> <li> True - AWS OpsWorks Stacks automatically associates the appropriate built-in security group with each layer (default setting). You can associate additional security groups with a layer after you create it, but you cannot delete the built-in security group. </li> <li> False - AWS OpsWorks Stacks does not associate built-in security groups with layers. You must create appropriate EC2 security groups and associate a security group with each layer that you create. However, you can still manually associate a built-in security group with a layer on. Custom security groups are required only for those layers that need custom settings. </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-creating.html">Create a New Stack</a>.<br/>DefaultRootDeviceType:  The default root device type. This value is used by default for all instances in the stack, but you can override it when you create an instance. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ComponentsAMIs.html#storage-for-the-root-device">Storage for the Root Device</a>.<br/>DefaultSshKeyName:  A default Amazon EC2 key-pair name. The default value is <code>none</code>. If you specify a key-pair name, AWS OpsWorks Stacks installs the public key on the instance and you can use the private key with an SSH client to log in to the instance. For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-ssh.html"> Using SSH to Communicate with an Instance</a> and <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/security-ssh-access.html"> Managing SSH Access</a>. You can override this setting by specifying a different key pair, or no key pair, when you <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-add.html"> create an instance</a>. <br/>CustomCookbooksSource:  Contains the information required to retrieve an app or cookbook from a repository. For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workingapps-creating.html">Adding Apps</a> or <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workingcookbook.html">Cookbooks and Recipes</a>.:<br/>UseCustomCookbooks:  Whether the stack uses custom cookbooks.<br/>ChefConfiguration:  A <code>ChefConfiguration</code> object that specifies whether to enable Berkshelf and the Berkshelf version on Chef 11.10 stacks. For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-creating.html">Create a New Stack</a>.:<br/>ConfigurationManager:  The configuration manager. When you update a stack, we recommend that you use the configuration manager to specify the Chef version: 12, 11.10, or 11.4 for Linux stacks, or 12.2 for Windows stacks. The default value for Linux stacks is currently 12.:<br/>CustomJson:  A string that contains user-defined, custom JSON. It can be used to override the corresponding default stack configuration JSON values or to pass data to recipes. The string should be in the following format:  <code>"{\"key1\": \"value1\", \"key2\": \"value2\",...}"</code>  For more information about custom JSON, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-json.html">Use Custom JSON to Modify the Stack Configuration Attributes</a>.<br/>DefaultSubnetId:  The stack's default VPC subnet ID. This parameter is required if you specify a value for the <code>VpcId</code> parameter. All instances are launched into this subnet unless you specify otherwise when you create the instance. If you also specify a value for <code>DefaultAvailabilityZone</code>, the subnet must be in that zone. For information on default values and when this parameter is required, see the <code>VpcId</code> parameter description. <br/>DefaultAvailabilityZone:  The stack's default Availability Zone, which must be in the stack's region. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/rande.html">Regions and Endpoints</a>. If you also specify a value for <code>DefaultSubnetId</code>, the subnet must be in the same zone. For more information, see <a>CreateStack</a>. <br/>HostnameTheme:  The stack's new host name theme, with spaces replaced by underscores. The theme is used to generate host names for the stack's instances. By default, <code>HostnameTheme</code> is set to <code>Layer_Dependent</code>, which creates host names by appending integers to the layer's short name. The other themes are: <ul> <li>  <code>Baked_Goods</code>  </li> <li>  <code>Clouds</code>  </li> <li>  <code>Europe_Cities</code>  </li> <li>  <code>Fruits</code>  </li> <li>  <code>Greek_Deities_and_Titans</code>  </li> <li>  <code>Legendary_creatures_from_Japan</code>  </li> <li>  <code>Planets_and_Moons</code>  </li> <li>  <code>Roman_Deities</code>  </li> <li>  <code>Scottish_Islands</code>  </li> <li>  <code>US_Cities</code>  </li> <li>  <code>Wild_Cats</code>  </li> </ul> To obtain a generated host name, call <code>GetHostNameSuggestion</code>, which returns a host name based on the current theme.<br/>DefaultOs:  The stack's operating system, which must be set to one of the following: <ul> <li> A supported Linux operating system: An Amazon Linux version, such as <code>Amazon Linux 2018.03</code>, <code>Amazon Linux 2017.09</code>, <code>Amazon Linux 2017.03</code>, <code>Amazon Linux 2016.09</code>, <code>Amazon Linux 2016.03</code>, <code>Amazon Linux 2015.09</code>, or <code>Amazon Linux 2015.03</code>. </li> <li> A supported Ubuntu operating system, such as <code>Ubuntu 16.04 LTS</code>, <code>Ubuntu 14.04 LTS</code>, or <code>Ubuntu 12.04 LTS</code>. </li> <li>  <code>CentOS Linux 7</code>  </li> <li>  <code>Red Hat Enterprise Linux 7</code>  </li> <li> A supported Windows operating system, such as <code>Microsoft Windows Server 2012 R2 Base</code>, <code>Microsoft Windows Server 2012 R2 with SQL Server Express</code>, <code>Microsoft Windows Server 2012 R2 with SQL Server Standard</code>, or <code>Microsoft Windows Server 2012 R2 with SQL Server Web</code>. </li> <li> A custom AMI: <code>Custom</code>. You specify the custom AMI you want to use when you create instances. For more information about how to use custom AMIs with OpsWorks, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-custom-ami.html">Using Custom AMIs</a>. </li> </ul> The default option is the stack's current operating system. For more information about supported operating systems, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-os.html">AWS OpsWorks Stacks Operating Systems</a>.<br/>DefaultInstanceProfileArn:  The ARN of an IAM profile that is the default profile for all of the stack's EC2 instances. For more information about IAM ARNs, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html">Using Identifiers</a>.<br/>ServiceRoleArn:  Do not use this parameter. You cannot update a stack's service role.<br/>Attributes:  One or more user-defined key-value pairs to be added to the stack attributes.<br/>Name:  The stack's new name.<br/>StackId:  The stack ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The Chef version. This parameter must be set to 12, 11.10, or 11.4 for Linux stacks, and to 12.2 for Windows stacks. The default value for Linux stacks is 11.4.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name. This parameter must be set to "Chef".<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BerkshelfVersion</i> The Berkshelf version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ManageBerkshelf</i> Whether to enable Berkshelf.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Revision</i> The application's version. AWS OpsWorks Stacks enables you to easily deploy new versions of an application. One of the simplest approaches is to have branches or revisions in your repository that represent different versions that can potentially be deployed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SshKey</i> In requests, the repository's SSH key. In responses, AWS OpsWorks Stacks returns <code>*****FILTERED*****</code> instead of the actual value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Password</i> When included in a request, the parameter depends on the repository type. <ul> <li> For Amazon S3 bundles, set <code>Password</code> to the appropriate IAM secret access key. </li> <li> For HTTP bundles and Subversion repositories, set <code>Password</code> to the password. </li> </ul> For more information on how to safely handle IAM credentials, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-access-keys-best-practices.html">https://docs.aws.amazon.com/general/latest/gr/aws-access-keys-best-practices.html</a>. In responses, AWS OpsWorks Stacks returns <code>*****FILTERED*****</code> instead of the actual value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Username</i> This parameter depends on the repository type. <ul> <li> For Amazon S3 bundles, set <code>Username</code> to the appropriate IAM access key ID. </li> <li> For HTTP bundles, Git repositories, and Subversion repositories, set <code>Username</code> to the user name. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Url</i> The source URL. The following is an example of an Amazon S3 source URL: <code>https://s3.amazonaws.com/opsworks-demo-bucket/opsworks_cookbook_demo.tar.gz</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The repository type.<br/>
        :return:         """
        pass

    def update_user_profile(self, IamUserArn: str, SshUsername: str=None, SshPublicKey: str=None, AllowSelfManagement: Boolean=None):
        r"""Updates a specified user profile.  <b>Required Permissions</b>: To use this action, an IAM user must have an attached policy that explicitly grants permissions. For more information about user permissions, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-users.html">Managing User Permissions</a>.

        :param self:
        :param AllowSelfManagement:  Whether users can specify their own SSH public key through the My Settings page. For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/security-settingsshkey.html">Managing User Permissions</a>.<br/>SshPublicKey:  The user's new SSH public key.<br/>SshUsername:  The user's SSH user name. The allowable characters are [a-z], [A-Z], [0-9], '-', and '_'. If the specified name includes other punctuation marks, AWS OpsWorks Stacks removes them. For example, <code>my.name</code> will be changed to <code>myname</code>. If you do not specify an SSH user name, AWS OpsWorks Stacks generates one from the IAM user name. <br/>IamUserArn:  The user IAM ARN. This can also be a federated user's ARN.<br/>
        :return:         """
        pass

    def update_volume(self, VolumeId: str, Name: str=None, MountPoint: str=None):
        r"""Updates an Amazon EBS volume's name or mount point. For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/resources.html">Resource Management</a>.  <b>Required Permissions</b>: To use this action, an IAM user must have a Manage permissions level for the stack, or an attached policy that explicitly grants permissions. For more information on user permissions, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-users.html">Managing User Permissions</a>.

        :param self:
        :param MountPoint:  The new mount point.<br/>Name:  The new name.<br/>VolumeId:  The volume ID.<br/>
        :return:         """
        pass



    class OpsworksResource:
        
        class Layer:
            r"""Creates a Layer resource.::

  layer = opsworks.Layer('id')

:type id: string
:param id: The Layer's id identifier. This **must** be set.

:rtype: :py:class:`OpsWorks.Layer`
:returns: A Layer resource"""

            def __init__(self, id):
                pass
            
            class LayerAttributes(object):
                pass

            class Boolean(object):
                pass

            class CloudWatchLogsConfiguration(Mapping):
                pass

            class LifecycleEventConfiguration(Mapping):
                pass

            class Recipes(Mapping):
                pass

            class String(object):
                pass

            class VolumeConfiguration(Mapping):
                pass
        
            arn: str=None
            stack_id: str=None
            layer_id: str=None
            type: str=None
            name: str=None
            shortname: str=None
            attributes: LayerAttributes=None
            cloud_watch_logs_configuration: CloudWatchLogsConfiguration=None
            custom_instance_profile_arn: str=None
            custom_json: str=None
            custom_security_group_ids: List[String]=None
            default_security_group_names: List[String]=None
            packages: List[String]=None
            volume_configurations: List[VolumeConfiguration]=None
            enable_auto_healing: Boolean=None
            auto_assign_elastic_ips: Boolean=None
            auto_assign_public_ips: Boolean=None
            default_recipes: Recipes=None
            custom_recipes: Recipes=None
            created_at: str=None
            install_updates_on_boot: Boolean=None
            use_ebs_optimized_instances: Boolean=None
            lifecycle_event_configuration: LifecycleEventConfiguration=None
            
            def delete(self, **kwargs):
                # type: (object) -> dict
                return {}


        
        class Stack:
            r"""Creates a Stack resource.::

  stack = opsworks.Stack('id')

:type id: string
:param id: The Stack's id identifier. This **must** be set.

:rtype: :py:class:`OpsWorks.Stack`
:returns: A Stack resource"""

            def __init__(self, id):
                pass
            
            class Source(Mapping):
                pass

            class StackConfigurationManager(Mapping):
                pass

            class Boolean(object):
                pass

            class ChefConfiguration(Mapping):
                pass

            class StackAttributes(object):
                pass
        
            stack_id: str=None
            name: str=None
            arn: str=None
            region: str=None
            vpc_id: str=None
            attributes: StackAttributes=None
            service_role_arn: str=None
            default_instance_profile_arn: str=None
            default_os: str=None
            hostname_theme: str=None
            default_availability_zone: str=None
            default_subnet_id: str=None
            custom_json: str=None
            configuration_manager: StackConfigurationManager=None
            chef_configuration: ChefConfiguration=None
            use_custom_cookbooks: Boolean=None
            use_opsworks_security_groups: Boolean=None
            custom_cookbooks_source: Source=None
            default_ssh_key_name: str=None
            created_at: str=None
            default_root_device_type: str=None
            agent_version: str=None
            
            def create_layer(self, **kwargs):
                # type: (object) -> Layer
                return Layer()

            def delete(self, **kwargs):
                # type: (object) -> dict
                return {}


        
        class StackSummary:
            r"""Creates a StackSummary resource.::

  stack_summary = opsworks.StackSummary('stack_id')

:type stack_id: string
:param stack_id: The StackSummary's stack_id identifier. This **must** be set.

:rtype: :py:class:`OpsWorks.StackSummary`
:returns: A StackSummary resource"""

            def __init__(self, stack_id):
                pass
            
            class InstancesCount(Mapping):
                pass
        
            stack_id: str=None
            name: str=None
            arn: str=None
            layers_count: int=None
            apps_count: int=None
            instances_count: InstancesCount=None
            

        def create_stack(self, **kwargs):
            # type: (object) -> Stack
            pass

        def get_available_subresources(self) -> List[str]:
            pass

        class StackResourceCollection(List[Stack], ResourceCollection):
            pass

        stacks: StackResourceCollection = None




class OpsWorksCM(BaseClient):
    r"""<fullname>AWS OpsWorks CM</fullname> AWS OpsWorks for configuration management (CM) is a service that runs and manages configuration management servers. You can use AWS OpsWorks CM to create and manage AWS OpsWorks for Chef Automate and AWS OpsWorks for Puppet Enterprise servers, and add or remove nodes for the servers to manage.  <b>Glossary of terms</b>  <ul> <li>  <b>Server</b>: A configuration management server that can be highly-available. The configuration management server runs on an Amazon Elastic Compute Cloud (EC2) instance, and may use various other AWS services, such as Amazon Relational Database Service (RDS) and Elastic Load Balancing. A server is a generic abstraction over the configuration manager that you want to use, much like Amazon RDS. In AWS OpsWorks CM, you do not start or stop servers. After you create servers, they continue to run until they are deleted. </li> <li>  <b>Engine</b>: The engine is the specific configuration manager that you want to use. Valid values in this release include <code>ChefAutomate</code> and <code>Puppet</code>. </li> <li>  <b>Backup</b>: This is an application-level backup of the data that the configuration manager stores. AWS OpsWorks CM creates an S3 bucket for backups when you launch the first server. A backup maintains a snapshot of a server's configuration-related attributes at the time the backup starts. </li> <li>  <b>Events</b>: Events are always related to a server. Events are written during server creation, when health checks run, when backups are created, when system maintenance is performed, etc. When you delete a server, the server's events are also deleted. </li> <li>  <b>Account attributes</b>: Every account has attributes that are assigned in the AWS OpsWorks CM database. These attributes store information about configuration limits (servers, backups, etc.) and your customer account.  </li> </ul>  <b>Endpoints</b>  AWS OpsWorks CM supports the following endpoints, all HTTPS. You must connect to one of the following endpoints. Your servers can only be accessed or managed within the endpoint in which they are created. <ul> <li> opsworks-cm.us-east-1.amazonaws.com </li> <li> opsworks-cm.us-east-2.amazonaws.com </li> <li> opsworks-cm.us-west-1.amazonaws.com </li> <li> opsworks-cm.us-west-2.amazonaws.com </li> <li> opsworks-cm.ap-northeast-1.amazonaws.com </li> <li> opsworks-cm.ap-southeast-1.amazonaws.com </li> <li> opsworks-cm.ap-southeast-2.amazonaws.com </li> <li> opsworks-cm.eu-central-1.amazonaws.com </li> <li> opsworks-cm.eu-west-1.amazonaws.com </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/opsworks-service.html">AWS OpsWorks endpoints and quotas</a> in the AWS General Reference.  <b>Throttling limits</b>  All API operations allow for five requests per second with a burst of 10 requests per second."""

    class NodeAssociatedWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_node_association_status` for valid parameters"""
            pass


    class DescribeBackupsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_backups` for valid parameters"""
            pass
    class DescribeEventsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_events` for valid parameters"""
            pass
    class DescribeServersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_servers` for valid parameters"""
            pass
    class ListTagsForResourcePaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_tags_for_resource` for valid parameters"""
            pass


    class AssociateNodeRequest(Mapping):
        pass
    
    class AssociateNodeResponse(Mapping):
        pass
    
    class EngineAttribute(Mapping):
        pass
    
    class CreateBackupRequest(Mapping):
        pass
    
    class CreateBackupResponse(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class CreateServerRequest(Mapping):
        pass
    
    class CreateServerResponse(Mapping):
        pass
    
    class Boolean(object):
        pass
    
    class String(object):
        pass
    
    class DeleteBackupRequest(Mapping):
        pass
    
    class DeleteBackupResponse(Mapping):
        pass
    
    class DeleteServerRequest(Mapping):
        pass
    
    class DeleteServerResponse(Mapping):
        pass
    
    class DescribeAccountAttributesRequest(Mapping):
        pass
    
    class DescribeAccountAttributesResponse(Mapping):
        pass
    
    class DescribeBackupsRequest(Mapping):
        pass
    
    class DescribeBackupsResponse(Mapping):
        pass
    
    class DescribeEventsRequest(Mapping):
        pass
    
    class DescribeEventsResponse(Mapping):
        pass
    
    class DescribeNodeAssociationStatusRequest(Mapping):
        pass
    
    class DescribeNodeAssociationStatusResponse(Mapping):
        pass
    
    class DescribeServersRequest(Mapping):
        pass
    
    class DescribeServersResponse(Mapping):
        pass
    
    class DisassociateNodeRequest(Mapping):
        pass
    
    class DisassociateNodeResponse(Mapping):
        pass
    
    class ExportServerEngineAttributeRequest(Mapping):
        pass
    
    class ExportServerEngineAttributeResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class RestoreServerRequest(Mapping):
        pass
    
    class RestoreServerResponse(Mapping):
        pass
    
    class StartMaintenanceRequest(Mapping):
        pass
    
    class StartMaintenanceResponse(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateServerRequest(Mapping):
        pass
    
    class UpdateServerResponse(Mapping):
        pass
    
    class UpdateServerEngineAttributesRequest(Mapping):
        pass
    
    class UpdateServerEngineAttributesResponse(Mapping):
        pass
    
    def associate_node(self, EngineAttributes: List[EngineAttribute], NodeName: str, ServerName: str) -> AssociateNodeResponse:
        r""" Associates a new node with the server. For more information about how to disassociate a node, see <a>DisassociateNode</a>.  On a Chef server: This command is an alternative to <code>knife bootstrap</code>.  Example (Chef): <code>aws opsworks-cm associate-node --server-name <i>MyServer</i> --node-name <i>MyManagedNode</i> --engine-attributes "Name=<i>CHEF_ORGANIZATION</i>,Value=default" "Name=<i>CHEF_NODE_PUBLIC_KEY</i>,Value=<i>public-key-pem</i>"</code>   On a Puppet server, this command is an alternative to the <code>puppet cert sign</code> command that signs a Puppet node CSR.   Example (Puppet): <code>aws opsworks-cm associate-node --server-name <i>MyServer</i> --node-name <i>MyManagedNode</i> --engine-attributes "Name=<i>PUPPET_NODE_CSR</i>,Value=<i>csr-pem</i>"</code>   A node can can only be associated with servers that are in a <code>HEALTHY</code> state. Otherwise, an <code>InvalidStateException</code> is thrown. A <code>ResourceNotFoundException</code> is thrown when the server does not exist. A <code>ValidationException</code> is raised when parameters of the request are not valid. The AssociateNode API call can be integrated into Auto Scaling configurations, AWS Cloudformation templates, or the user data of a server's instance. 

        :param self:
        :param EngineAttributes:  Engine attributes used for associating the node.  <p class="title"> <b>Attributes accepted in a AssociateNode request for Chef</b>  <ul> <li>  <code>CHEF_ORGANIZATION</code>: The Chef organization with which the node is associated. By default only one organization named <code>default</code> can exist.  </li> <li>  <code>CHEF_NODE_PUBLIC_KEY</code>: A PEM-formatted public key. This key is required for the <code>chef-client</code> agent to access the Chef API.  </li> </ul> <p class="title"> <b>Attributes accepted in a AssociateNode request for Puppet</b>  <ul> <li>  <code>PUPPET_NODE_CSR</code>: A PEM-formatted certificate-signing request (CSR) that is created by the node.  </li> </ul><br/>NodeName:  The name of the node. <br/>ServerName:  The name of the server with which to associate the node. <br/>
        :return: NodeAssociationStatusToken:  Contains a token which can be passed to the <code>DescribeNodeAssociationStatus</code> API call to get the status of the association request. <br/>        """
        pass

    def create_backup(self, ServerName: str, Description: str=None, Tags: List[Tag]=None) -> CreateBackupResponse:
        r""" Creates an application-level backup of a server. While the server is in the <code>BACKING_UP</code> state, the server cannot be changed, and no additional backup can be created.   Backups can be created for servers in <code>RUNNING</code>, <code>HEALTHY</code>, and <code>UNHEALTHY</code> states. By default, you can create a maximum of 50 manual backups.   This operation is asynchronous.   A <code>LimitExceededException</code> is thrown when the maximum number of manual backups is reached. An <code>InvalidStateException</code> is thrown when the server is not in any of the following states: RUNNING, HEALTHY, or UNHEALTHY. A <code>ResourceNotFoundException</code> is thrown when the server is not found. A <code>ValidationException</code> is thrown when parameters of the request are not valid. 

        :param self:
        :param Tags:  A map that contains tag keys and tag values to attach to an AWS OpsWorks-CM server backup. <ul> <li> The key cannot be empty. </li> <li> The key can be a maximum of 127 characters, and can contain only Unicode letters, numbers, or separators, or the following special characters: <code>+ - = . _ : /</code>  </li> <li> The value can be a maximum 255 characters, and contain only Unicode letters, numbers, or separators, or the following special characters: <code>+ - = . _ : /</code>  </li> <li> Leading and trailing white spaces are trimmed from both the key and value. </li> <li> A maximum of 50 user-applied tags is allowed for tag-supported AWS OpsWorks-CM resources. </li> </ul><br/>Description:   A user-defined description of the backup. <br/>ServerName:  The name of the server that you want to back up. <br/>
        :return: Backup:  Backup created by request.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserArn</i>  The IAM user ARN of the requester for manual backups. This field is empty for automated backups. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ToolsVersion</i>  The version of AWS OpsWorks CM-specific tools that is obtained from the server when the backup is created. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetIds</i>  The subnet IDs that are obtained from the server when the backup is created. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusDescription</i>  An informational message about backup status. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of a backup while in progress. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceRoleArn</i>  The service role ARN that is obtained from the server when the backup is created. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerName</i>  The name of the server from which the backup was made. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i>  The security group IDs that are obtained from the server when the backup is created. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3LogUrl</i>  The Amazon S3 URL of the backup's log file. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3DataUrl</i>  This field is deprecated and is no longer used. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3DataSize</i>  This field is deprecated and is no longer used. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i>  The preferred maintenance period that is obtained from the server when the backup is created. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredBackupWindow</i>  The preferred backup period that is obtained from the server when the backup is created. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KeyPair</i>  The key pair that is obtained from the server when the backup is created. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceType</i>  The instance type that is obtained from the server when the backup is created. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceProfileArn</i>  The EC2 instance profile ARN that is obtained from the server when the backup is created. Because this value is stored, you are not required to provide the InstanceProfileArn again if you restore a backup. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i>  The engine version that is obtained from the server when the backup is created. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineModel</i>  The engine model that is obtained from the server when the backup is created. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i>  The engine type that is obtained from the server when the backup is created. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i>  A user-provided description for a manual backup. This field is empty for automated backups. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedAt</i>  The time stamp when the backup was created in the database. Example: <code>2016-07-29T13:38:47.520Z</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupType</i>  The backup type. Valid values are <code>automated</code> or <code>manual</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupId</i>  The generated ID of the backup. Example: <code>myServerName-yyyyMMddHHmmssSSS</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupArn</i> The ARN of the backup. <br/>        """
        pass

    def create_server(self, ServiceRoleArn: str, InstanceType: str, InstanceProfileArn: str, ServerName: str, Engine: str, AssociatePublicIpAddress: Boolean=None, CustomDomain: str=None, CustomCertificate: str=None, CustomPrivateKey: str=None, DisableAutomatedBackup: Boolean=None, EngineModel: str=None, EngineVersion: str=None, EngineAttributes: List[EngineAttribute]=None, BackupRetentionCount: int=None, KeyPair: str=None, PreferredMaintenanceWindow: str=None, PreferredBackupWindow: str=None, SecurityGroupIds: List[String]=None, SubnetIds: List[String]=None, Tags: List[Tag]=None, BackupId: str=None) -> CreateServerResponse:
        r""" Creates and immedately starts a new server. The server is ready to use when it is in the <code>HEALTHY</code> state. By default, you can create a maximum of 10 servers.   This operation is asynchronous.   A <code>LimitExceededException</code> is thrown when you have created the maximum number of servers (10). A <code>ResourceAlreadyExistsException</code> is thrown when a server with the same name already exists in the account. A <code>ResourceNotFoundException</code> is thrown when you specify a backup ID that is not valid or is for a backup that does not exist. A <code>ValidationException</code> is thrown when parameters of the request are not valid.   If you do not specify a security group by adding the <code>SecurityGroupIds</code> parameter, AWS OpsWorks creates a new security group.   <i>Chef Automate:</i> The default security group opens the Chef server to the world on TCP port 443. If a KeyName is present, AWS OpsWorks enables SSH access. SSH is also open to the world on TCP port 22.   <i>Puppet Enterprise:</i> The default security group opens TCP ports 22, 443, 4433, 8140, 8142, 8143, and 8170. If a KeyName is present, AWS OpsWorks enables SSH access. SSH is also open to the world on TCP port 22.  By default, your server is accessible from any IP address. We recommend that you update your security group rules to allow access from known IP addresses and address ranges only. To edit security group rules, open Security Groups in the navigation pane of the EC2 management console.  To specify your own domain for a server, and provide your own self-signed or CA-signed certificate and private key, specify values for <code>CustomDomain</code>, <code>CustomCertificate</code>, and <code>CustomPrivateKey</code>.

        :param self:
        :param BackupId:   If you specify this field, AWS OpsWorks CM creates the server by using the backup represented by BackupId. <br/>Tags:  A map that contains tag keys and tag values to attach to an AWS OpsWorks for Chef Automate or AWS OpsWorks for Puppet Enterprise server. <ul> <li> The key cannot be empty. </li> <li> The key can be a maximum of 127 characters, and can contain only Unicode letters, numbers, or separators, or the following special characters: <code>+ - = . _ : / @</code>  </li> <li> The value can be a maximum 255 characters, and contain only Unicode letters, numbers, or separators, or the following special characters: <code>+ - = . _ : / @</code>  </li> <li> Leading and trailing white spaces are trimmed from both the key and value. </li> <li> A maximum of 50 user-applied tags is allowed for any AWS OpsWorks-CM server. </li> </ul><br/>SubnetIds:   The IDs of subnets in which to launch the server EC2 instance.   Amazon EC2-Classic customers: This field is required. All servers must run within a VPC. The VPC must have "Auto Assign Public IP" enabled.   EC2-VPC customers: This field is optional. If you do not specify subnet IDs, your EC2 instances are created in a default subnet that is selected by Amazon EC2. If you specify subnet IDs, the VPC must have "Auto Assign Public IP" enabled.  For more information about supported Amazon EC2 platforms, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-supported-platforms.html">Supported Platforms</a>.<br/>ServiceRoleArn:   The service role that the AWS OpsWorks CM service backend uses to work with your account. Although the AWS OpsWorks management console typically creates the service role for you, if you are using the AWS CLI or API commands, run the service-role-creation.yaml AWS CloudFormation template, located at https://s3.amazonaws.com/opsworks-cm-us-east-1-prod-default-assets/misc/opsworks-cm-roles.yaml. This template creates a CloudFormation stack that includes the service role and instance profile that you need. <br/>SecurityGroupIds:   A list of security group IDs to attach to the Amazon EC2 instance. If you add this parameter, the specified security groups must be within the VPC that is specified by <code>SubnetIds</code>.   If you do not specify this parameter, AWS OpsWorks CM creates one new security group that uses TCP ports 22 and 443, open to 0.0.0.0/0 (everyone). <br/>PreferredBackupWindow:   The start time for a one-hour period during which AWS OpsWorks CM backs up application-level data on your server if automated backups are enabled. Valid values must be specified in one of the following formats:  <ul> <li>  <code>HH:MM</code> for daily backups </li> <li>  <code>DDD:HH:MM</code> for weekly backups </li> </ul>  <code>MM</code> must be specified as <code>00</code>. The specified time is in coordinated universal time (UTC). The default value is a random, daily start time.  <b>Example:</b> <code>08:00</code>, which represents a daily start time of 08:00 UTC.  <b>Example:</b> <code>Mon:08:00</code>, which represents a start time of every Monday at 08:00 UTC. (8:00 a.m.)<br/>PreferredMaintenanceWindow:   The start time for a one-hour period each week during which AWS OpsWorks CM performs maintenance on the instance. Valid values must be specified in the following format: <code>DDD:HH:MM</code>. <code>MM</code> must be specified as <code>00</code>. The specified time is in coordinated universal time (UTC). The default value is a random one-hour period on Tuesday, Wednesday, or Friday. See <code>TimeWindowDefinition</code> for more information.   <b>Example:</b> <code>Mon:08:00</code>, which represents a start time of every Monday at 08:00 UTC. (8:00 a.m.) <br/>KeyPair:   The Amazon EC2 key pair to set for the instance. This parameter is optional; if desired, you may specify this parameter to connect to your instances by using SSH. <br/>InstanceType:   The Amazon EC2 instance type to use. For example, <code>m5.large</code>. <br/>InstanceProfileArn:   The ARN of the instance profile that your Amazon EC2 instances use. Although the AWS OpsWorks console typically creates the instance profile for you, if you are using API commands instead, run the service-role-creation.yaml AWS CloudFormation template, located at https://s3.amazonaws.com/opsworks-cm-us-east-1-prod-default-assets/misc/opsworks-cm-roles.yaml. This template creates a CloudFormation stack that includes the instance profile you need. <br/>ServerName:   The name of the server. The server name must be unique within your AWS account, within each region. Server names must start with a letter; then letters, numbers, or hyphens (-) are allowed, up to a maximum of 40 characters. <br/>BackupRetentionCount:   The number of automated backups that you want to keep. Whenever a new backup is created, AWS OpsWorks CM deletes the oldest backups if this number is exceeded. The default value is <code>1</code>. <br/>EngineAttributes:  Optional engine attributes on a specified server.  <p class="title"> <b>Attributes accepted in a Chef createServer request:</b>  <ul> <li>  <code>CHEF_AUTOMATE_PIVOTAL_KEY</code>: A base64-encoded RSA public key. The corresponding private key is required to access the Chef API. When no CHEF_AUTOMATE_PIVOTAL_KEY is set, a private key is generated and returned in the response.  </li> <li>  <code>CHEF_AUTOMATE_ADMIN_PASSWORD</code>: The password for the administrative user in the Chef Automate web-based dashboard. The password length is a minimum of eight characters, and a maximum of 32. The password can contain letters, numbers, and special characters (!/@#$%^&amp;+=_). The password must contain at least one lower case letter, one upper case letter, one number, and one special character. When no CHEF_AUTOMATE_ADMIN_PASSWORD is set, one is generated and returned in the response. </li> </ul> <p class="title"> <b>Attributes accepted in a Puppet createServer request:</b>  <ul> <li>  <code>PUPPET_ADMIN_PASSWORD</code>: To work with the Puppet Enterprise console, a password must use ASCII characters. </li> <li>  <code>PUPPET_R10K_REMOTE</code>: The r10k remote is the URL of your control repository (for example, ssh://git@your.git-repo.com:user/control-repo.git). Specifying an r10k remote opens TCP port 8170. </li> <li>  <code>PUPPET_R10K_PRIVATE_KEY</code>: If you are using a private Git repository, add PUPPET_R10K_PRIVATE_KEY to specify a PEM-encoded private SSH key. </li> </ul><br/>EngineVersion:   The major release version of the engine that you want to use. For a Chef server, the valid value for EngineVersion is currently <code>2</code>. For a Puppet server, valid values are <code>2019</code> or <code>2017</code>. <br/>EngineModel:   The engine model of the server. Valid values in this release include <code>Monolithic</code> for Puppet and <code>Single</code> for Chef. <br/>Engine:   The configuration management engine to use. Valid values include <code>ChefAutomate</code> and <code>Puppet</code>. <br/>DisableAutomatedBackup:   Enable or disable scheduled backups. Valid values are <code>true</code> or <code>false</code>. The default value is <code>true</code>. <br/>CustomPrivateKey:  A private key in PEM format for connecting to the server by using HTTPS. The private key must not be encrypted; it cannot be protected by a password or passphrase. If you specify a custom private key, you must also specify values for <code>CustomDomain</code> and <code>CustomCertificate</code>.<br/>CustomCertificate:  A PEM-formatted HTTPS certificate. The value can be be a single, self-signed certificate, or a certificate chain. If you specify a custom certificate, you must also specify values for <code>CustomDomain</code> and <code>CustomPrivateKey</code>. The following are requirements for the <code>CustomCertificate</code> value: <ul> <li> You can provide either a self-signed, custom certificate, or the full certificate chain. </li> <li> The certificate must be a valid X509 certificate, or a certificate chain in PEM format. </li> <li> The certificate must be valid at the time of upload. A certificate can't be used before its validity period begins (the certificate's <code>NotBefore</code> date), or after it expires (the certificate's <code>NotAfter</code> date). </li> <li> The certificate’s common name or subject alternative names (SANs), if present, must match the value of <code>CustomDomain</code>. </li> <li> The certificate must match the value of <code>CustomPrivateKey</code>. </li> </ul><br/>CustomDomain:  An optional public endpoint of a server, such as <code>https://aws.my-company.com</code>. To access the server, create a CNAME DNS record in your preferred DNS service that points the custom domain to the endpoint that is generated when the server is created (the value of the CreateServer Endpoint attribute). You cannot access the server by using the generated <code>Endpoint</code> value if the server is using a custom domain. If you specify a custom domain, you must also specify values for <code>CustomCertificate</code> and <code>CustomPrivateKey</code>.<br/>AssociatePublicIpAddress:   Associate a public IP address with a server that you are launching. Valid values are <code>true</code> or <code>false</code>. The default value is <code>true</code>. <br/>
        :return: Server:  The server that is created by the request. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerArn</i> The ARN of the server. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetIds</i>  The subnet IDs specified in a CreateServer request. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusReason</i>  Depending on the server status, this field has either a human-readable message (such as a create or backup error), or an escaped block of JSON (used for health check results). <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i>  The server's status. This field displays the states of actions in progress, such as creating, running, or backing up the server, as well as the server's health state. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceRoleArn</i> The service role ARN used to create the server. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i>  The security group IDs for the server, as specified in the CloudFormation stack. These might not be the same security groups that are shown in the EC2 console. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredBackupWindow</i> The preferred backup period specified for the server. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i> The preferred maintenance period specified for the server. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaintenanceStatus</i> The status of the most recent server maintenance run. Shows <code>SUCCESS</code> or <code>FAILED</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KeyPair</i> The key pair associated with the server. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceType</i>  The instance type for the server, as specified in the CloudFormation stack. This might not be the same instance type that is shown in the EC2 console. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceProfileArn</i> The instance profile ARN of the server. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> The engine version of the server. For a Chef server, the valid value for EngineVersion is currently <code>2</code>. For a Puppet server, specify either <code>2019</code> or <code>2017</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineAttributes</i> The response of a createServer() request returns the master credential to access the server in EngineAttributes. These credentials are not stored by AWS OpsWorks CM; they are returned only as part of the result of createServer().  <p class="title"> <b>Attributes returned in a createServer response for Chef</b>  <ul> <li>  <code>CHEF_AUTOMATE_PIVOTAL_KEY</code>: A base64-encoded RSA private key that is generated by AWS OpsWorks for Chef Automate. This private key is required to access the Chef API. </li> <li>  <code>CHEF_STARTER_KIT</code>: A base64-encoded ZIP file. The ZIP file contains a Chef starter kit, which includes a README, a configuration file, and the required RSA private key. Save this file, unzip it, and then change to the directory where you've unzipped the file contents. From this directory, you can run Knife commands. </li> </ul> <p class="title"> <b>Attributes returned in a createServer response for Puppet</b>  <ul> <li>  <code>PUPPET_STARTER_KIT</code>: A base64-encoded ZIP file. The ZIP file contains a Puppet starter kit, including a README and a required private key. Save this file, unzip it, and then change to the directory where you've unzipped the file contents. </li> <li>  <code>PUPPET_ADMIN_PASSWORD</code>: An administrator password that you can use to sign in to the Puppet Enterprise console after the server is online. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineModel</i> The engine model of the server. Valid values in this release include <code>Monolithic</code> for Puppet and <code>Single</code> for Chef. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> The engine type of the server. Valid values in this release include <code>ChefAutomate</code> and <code>Puppet</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i>  A DNS name that can be used to access the engine. Example: <code>myserver-asdfghjkl.us-east-1.opsworks.io</code>. You cannot access the server by using the <code>Endpoint</code> value if the server has a <code>CustomDomain</code> specified. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DisableAutomatedBackup</i> Disables automated backups. The number of stored backups is dependent on the value of PreferredBackupCount. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomDomain</i> An optional public endpoint of a server, such as <code>https://aws.my-company.com</code>. You cannot access the server by using the <code>Endpoint</code> value if the server has a <code>CustomDomain</code> specified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudFormationStackArn</i> The ARN of the CloudFormation stack that was used to create the server. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedAt</i> Time stamp of server creation. Example <code>2016-07-29T13:38:47.520Z</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerName</i> The name of the server. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupRetentionCount</i> The number of automated backups to keep. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociatePublicIpAddress</i> Associate a public IP address with a server that you are launching. <br/>        """
        pass

    def delete_backup(self, BackupId: str) -> DeleteBackupResponse:
        r""" Deletes a backup. You can delete both manual and automated backups. This operation is asynchronous.   An <code>InvalidStateException</code> is thrown when a backup deletion is already in progress. A <code>ResourceNotFoundException</code> is thrown when the backup does not exist. A <code>ValidationException</code> is thrown when parameters of the request are not valid. 

        :param self:
        :param BackupId:  The ID of the backup to delete. Run the DescribeBackups command to get a list of backup IDs. Backup IDs are in the format <code>ServerName-yyyyMMddHHmmssSSS</code>. <br/>
        :return:         """
        pass

    def delete_server(self, ServerName: str) -> DeleteServerResponse:
        r""" Deletes the server and the underlying AWS CloudFormation stacks (including the server's EC2 instance). When you run this command, the server state is updated to <code>DELETING</code>. After the server is deleted, it is no longer returned by <code>DescribeServer</code> requests. If the AWS CloudFormation stack cannot be deleted, the server cannot be deleted.   This operation is asynchronous.   An <code>InvalidStateException</code> is thrown when a server deletion is already in progress. A <code>ResourceNotFoundException</code> is thrown when the server does not exist. A <code>ValidationException</code> is raised when parameters of the request are not valid.   

        :param self:
        :param ServerName:  The ID of the server to delete.<br/>
        :return:         """
        pass

    def describe_account_attributes(self) -> DescribeAccountAttributesResponse:
        r""" Describes your OpsWorks-CM account attributes.   This operation is synchronous. 

        :param self:
        :param 
        :return: Attributes:   The attributes that are currently set for the account. <br/>        """
        pass

    def describe_backups(self, BackupId: str=None, ServerName: str=None, NextToken: str=None, MaxResults: int=None) -> DescribeBackupsResponse:
        r""" Describes backups. The results are ordered by time, with newest backups first. If you do not specify a BackupId or ServerName, the command returns all backups.   This operation is synchronous.   A <code>ResourceNotFoundException</code> is thrown when the backup does not exist. A <code>ValidationException</code> is raised when parameters of the request are not valid. 

        :param self:
        :param MaxResults:  This is not currently implemented for <code>DescribeBackups</code> requests.<br/>NextToken:  This is not currently implemented for <code>DescribeBackups</code> requests.<br/>ServerName:  Returns backups for the server with the specified ServerName. <br/>BackupId:  Describes a single backup. <br/>
        :return: NextToken:  This is not currently implemented for <code>DescribeBackups</code> requests.<br/>Backups:  Contains the response to a <code>DescribeBackups</code> request. <br/>        """
        pass

    def describe_events(self, ServerName: str, NextToken: str=None, MaxResults: int=None) -> DescribeEventsResponse:
        r""" Describes events for a specified server. Results are ordered by time, with newest events first.   This operation is synchronous.   A <code>ResourceNotFoundException</code> is thrown when the server does not exist. A <code>ValidationException</code> is raised when parameters of the request are not valid. 

        :param self:
        :param MaxResults:  To receive a paginated response, use this parameter to specify the maximum number of results to be returned with a single call. If the number of available results exceeds this maximum, the response includes a <code>NextToken</code> value that you can assign to the <code>NextToken</code> request parameter to get the next set of results. <br/>NextToken:  NextToken is a string that is returned in some command responses. It indicates that not all entries have been returned, and that you must run at least one more request to get remaining items. To get remaining results, call <code>DescribeEvents</code> again, and assign the token from the previous results as the value of the <code>nextToken</code> parameter. If there are no more results, the response object's <code>nextToken</code> parameter value is <code>null</code>. Setting a <code>nextToken</code> value that was not returned in your previous results causes an <code>InvalidNextTokenException</code> to occur. <br/>ServerName:  The name of the server for which you want to view events.<br/>
        :return: NextToken:  NextToken is a string that is returned in some command responses. It indicates that not all entries have been returned, and that you must run at least one more request to get remaining items. To get remaining results, call <code>DescribeEvents</code> again, and assign the token from the previous results as the value of the <code>nextToken</code> parameter. If there are no more results, the response object's <code>nextToken</code> parameter value is <code>null</code>. Setting a <code>nextToken</code> value that was not returned in your previous results causes an <code>InvalidNextTokenException</code> to occur. <br/>ServerEvents:  Contains the response to a <code>DescribeEvents</code> request. <br/>        """
        pass

    def describe_node_association_status(self, ServerName: str, NodeAssociationStatusToken: str) -> DescribeNodeAssociationStatusResponse:
        r""" Returns the current status of an existing association or disassociation request.   A <code>ResourceNotFoundException</code> is thrown when no recent association or disassociation request with the specified token is found, or when the server does not exist. A <code>ValidationException</code> is raised when parameters of the request are not valid. 

        :param self:
        :param ServerName:  The name of the server from which to disassociate the node. <br/>NodeAssociationStatusToken:  The token returned in either the AssociateNodeResponse or the DisassociateNodeResponse. <br/>
        :return: EngineAttributes:  Attributes specific to the node association. In Puppet, the attibute PUPPET_NODE_CERT contains the signed certificate (the result of the CSR). <br/>NodeAssociationStatus:  The status of the association or disassociation request.  <p class="title"> <b>Possible values:</b>  <ul> <li>  <code>SUCCESS</code>: The association or disassociation succeeded.  </li> <li>  <code>FAILED</code>: The association or disassociation failed.  </li> <li>  <code>IN_PROGRESS</code>: The association or disassociation is still in progress.  </li> </ul><br/>        """
        pass

    def describe_servers(self, ServerName: str=None, NextToken: str=None, MaxResults: int=None) -> DescribeServersResponse:
        r""" Lists all configuration management servers that are identified with your account. Only the stored results from Amazon DynamoDB are returned. AWS OpsWorks CM does not query other services.   This operation is synchronous.   A <code>ResourceNotFoundException</code> is thrown when the server does not exist. A <code>ValidationException</code> is raised when parameters of the request are not valid. 

        :param self:
        :param MaxResults:  This is not currently implemented for <code>DescribeServers</code> requests. <br/>NextToken:  This is not currently implemented for <code>DescribeServers</code> requests. <br/>ServerName:  Describes the server with the specified ServerName.<br/>
        :return: NextToken:  This is not currently implemented for <code>DescribeServers</code> requests. <br/>Servers:  Contains the response to a <code>DescribeServers</code> request.  <i>For Chef Automate servers:</i> If <code>DescribeServersResponse$Servers$EngineAttributes</code> includes CHEF_MAJOR_UPGRADE_AVAILABLE, you can upgrade the Chef Automate server to Chef Automate 2. To be eligible for upgrade, a server running Chef Automate 1 must have had at least one successful maintenance run after November 1, 2019.  <i>For Puppet servers:</i> <code>DescribeServersResponse$Servers$EngineAttributes</code> contains the following two responses: <ul> <li>  <code>PUPPET_API_CA_CERT</code>, the PEM-encoded CA certificate that is used by the Puppet API over TCP port number 8140. The CA certificate is also used to sign node certificates. </li> <li>  <code>PUPPET_API_CRL</code>, a certificate revocation list. The certificate revocation list is for internal maintenance purposes only. For more information about the Puppet certificate revocation list, see <a href="https://puppet.com/docs/puppet/5.5/man/certificate_revocation_list.html">Man Page: puppet certificate_revocation_list</a> in the Puppet documentation. </li> </ul><br/>        """
        pass

    def disassociate_node(self, NodeName: str, ServerName: str, EngineAttributes: List[EngineAttribute]=None) -> DisassociateNodeResponse:
        r""" Disassociates a node from an AWS OpsWorks CM server, and removes the node from the server's managed nodes. After a node is disassociated, the node key pair is no longer valid for accessing the configuration manager's API. For more information about how to associate a node, see <a>AssociateNode</a>.  A node can can only be disassociated from a server that is in a <code>HEALTHY</code> state. Otherwise, an <code>InvalidStateException</code> is thrown. A <code>ResourceNotFoundException</code> is thrown when the server does not exist. A <code>ValidationException</code> is raised when parameters of the request are not valid. 

        :param self:
        :param EngineAttributes:  Engine attributes that are used for disassociating the node. No attributes are required for Puppet.  <p class="title"> <b>Attributes required in a DisassociateNode request for Chef</b>  <ul> <li>  <code>CHEF_ORGANIZATION</code>: The Chef organization with which the node was associated. By default only one organization named <code>default</code> can exist.  </li> </ul><br/>NodeName:  The name of the client node. <br/>ServerName:  The name of the server from which to disassociate the node. <br/>
        :return: NodeAssociationStatusToken:  Contains a token which can be passed to the <code>DescribeNodeAssociationStatus</code> API call to get the status of the disassociation request. <br/>        """
        pass

    def export_server_engine_attribute(self, ServerName: str, ExportAttributeName: str, InputAttributes: List[EngineAttribute]=None) -> ExportServerEngineAttributeResponse:
        r""" Exports a specified server engine attribute as a base64-encoded string. For example, you can export user data that you can use in EC2 to associate nodes with a server.   This operation is synchronous.   A <code>ValidationException</code> is raised when parameters of the request are not valid. A <code>ResourceNotFoundException</code> is thrown when the server does not exist. An <code>InvalidStateException</code> is thrown when the server is in any of the following states: CREATING, TERMINATED, FAILED or DELETING. 

        :param self:
        :param InputAttributes:  The list of engine attributes. The list type is <code>EngineAttribute</code>. An <code>EngineAttribute</code> list item is a pair that includes an attribute name and its value. For the <code>Userdata</code> ExportAttributeName, the following are supported engine attribute names. <ul> <li>  <b>RunList</b> In Chef, a list of roles or recipes that are run in the specified order. In Puppet, this parameter is ignored. </li> <li>  <b>OrganizationName</b> In Chef, an organization name. AWS OpsWorks for Chef Automate always creates the organization <code>default</code>. In Puppet, this parameter is ignored. </li> <li>  <b>NodeEnvironment</b> In Chef, a node environment (for example, development, staging, or one-box). In Puppet, this parameter is ignored. </li> <li>  <b>NodeClientVersion</b> In Chef, the version of the Chef engine (three numbers separated by dots, such as 13.8.5). If this attribute is empty, OpsWorks for Chef Automate uses the most current version. In Puppet, this parameter is ignored. </li> </ul><br/>ServerName:  The name of the server from which you are exporting the attribute.<br/>ExportAttributeName:  The name of the export attribute. Currently, the supported export attribute is <code>Userdata</code>. This exports a user data script that includes parameters and values provided in the <code>InputAttributes</code> list.<br/>
        :return: ServerName:  The server name used in the request.<br/>EngineAttribute:  The requested engine attribute pair with attribute name and value.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Value</i> The value of the engine attribute. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the engine attribute. <br/>        """
        pass

    def list_tags_for_resource(self, ResourceArn: str, NextToken: str=None, MaxResults: int=None) -> ListTagsForResourceResponse:
        r"""Returns a list of tags that are applied to the specified AWS OpsWorks for Chef Automate or AWS OpsWorks for Puppet Enterprise servers or backups.

        :param self:
        :param MaxResults:  To receive a paginated response, use this parameter to specify the maximum number of results to be returned with a single call. If the number of available results exceeds this maximum, the response includes a <code>NextToken</code> value that you can assign to the <code>NextToken</code> request parameter to get the next set of results.<br/>NextToken:  NextToken is a string that is returned in some command responses. It indicates that not all entries have been returned, and that you must run at least one more request to get remaining items. To get remaining results, call <code>ListTagsForResource</code> again, and assign the token from the previous results as the value of the <code>nextToken</code> parameter. If there are no more results, the response object's <code>nextToken</code> parameter value is <code>null</code>. Setting a <code>nextToken</code> value that was not returned in your previous results causes an <code>InvalidNextTokenException</code> to occur.<br/>ResourceArn:  The Amazon Resource Number (ARN) of an AWS OpsWorks for Chef Automate or AWS OpsWorks for Puppet Enterprise server for which you want to show applied tags. For example, <code>arn:aws:opsworks-cm:us-west-2:123456789012:server/test-owcm-server/EXAMPLE-66b0-4196-8274-d1a2bEXAMPLE</code>.<br/>
        :return: NextToken:  A token that you can use as the value of <code>NextToken</code> in subsequent calls to the API to show more results.<br/>Tags:  Tags that have been applied to the resource.<br/>        """
        pass

    def restore_server(self, ServerName: str, BackupId: str, InstanceType: str=None, KeyPair: str=None) -> RestoreServerResponse:
        r""" Restores a backup to a server that is in a <code>CONNECTION_LOST</code>, <code>HEALTHY</code>, <code>RUNNING</code>, <code>UNHEALTHY</code>, or <code>TERMINATED</code> state. When you run RestoreServer, the server's EC2 instance is deleted, and a new EC2 instance is configured. RestoreServer maintains the existing server endpoint, so configuration management of the server's client devices (nodes) should continue to work.  Restoring from a backup is performed by creating a new EC2 instance. If restoration is successful, and the server is in a <code>HEALTHY</code> state, AWS OpsWorks CM switches traffic over to the new instance. After restoration is finished, the old EC2 instance is maintained in a <code>Running</code> or <code>Stopped</code> state, but is eventually terminated.  This operation is asynchronous.   An <code>InvalidStateException</code> is thrown when the server is not in a valid state. A <code>ResourceNotFoundException</code> is thrown when the server does not exist. A <code>ValidationException</code> is raised when parameters of the request are not valid. 

        :param self:
        :param KeyPair:   The name of the key pair to set on the new EC2 instance. This can be helpful if the administrator no longer has the SSH key. <br/>InstanceType:   The type of instance to restore. Valid values must be specified in the following format: <code>^([cm][34]|t2).*</code> For example, <code>m5.large</code>. Valid values are <code>m5.large</code>, <code>r5.xlarge</code>, and <code>r5.2xlarge</code>. If you do not specify this parameter, RestoreServer uses the instance type from the specified backup. <br/>ServerName:   The name of the server that you want to restore. <br/>BackupId:   The ID of the backup that you want to use to restore a server. <br/>
        :return: Server:  Describes a configuration management server. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerArn</i> The ARN of the server. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetIds</i>  The subnet IDs specified in a CreateServer request. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusReason</i>  Depending on the server status, this field has either a human-readable message (such as a create or backup error), or an escaped block of JSON (used for health check results). <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i>  The server's status. This field displays the states of actions in progress, such as creating, running, or backing up the server, as well as the server's health state. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceRoleArn</i> The service role ARN used to create the server. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i>  The security group IDs for the server, as specified in the CloudFormation stack. These might not be the same security groups that are shown in the EC2 console. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredBackupWindow</i> The preferred backup period specified for the server. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i> The preferred maintenance period specified for the server. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaintenanceStatus</i> The status of the most recent server maintenance run. Shows <code>SUCCESS</code> or <code>FAILED</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KeyPair</i> The key pair associated with the server. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceType</i>  The instance type for the server, as specified in the CloudFormation stack. This might not be the same instance type that is shown in the EC2 console. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceProfileArn</i> The instance profile ARN of the server. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> The engine version of the server. For a Chef server, the valid value for EngineVersion is currently <code>2</code>. For a Puppet server, specify either <code>2019</code> or <code>2017</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineAttributes</i> The response of a createServer() request returns the master credential to access the server in EngineAttributes. These credentials are not stored by AWS OpsWorks CM; they are returned only as part of the result of createServer().  <p class="title"> <b>Attributes returned in a createServer response for Chef</b>  <ul> <li>  <code>CHEF_AUTOMATE_PIVOTAL_KEY</code>: A base64-encoded RSA private key that is generated by AWS OpsWorks for Chef Automate. This private key is required to access the Chef API. </li> <li>  <code>CHEF_STARTER_KIT</code>: A base64-encoded ZIP file. The ZIP file contains a Chef starter kit, which includes a README, a configuration file, and the required RSA private key. Save this file, unzip it, and then change to the directory where you've unzipped the file contents. From this directory, you can run Knife commands. </li> </ul> <p class="title"> <b>Attributes returned in a createServer response for Puppet</b>  <ul> <li>  <code>PUPPET_STARTER_KIT</code>: A base64-encoded ZIP file. The ZIP file contains a Puppet starter kit, including a README and a required private key. Save this file, unzip it, and then change to the directory where you've unzipped the file contents. </li> <li>  <code>PUPPET_ADMIN_PASSWORD</code>: An administrator password that you can use to sign in to the Puppet Enterprise console after the server is online. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineModel</i> The engine model of the server. Valid values in this release include <code>Monolithic</code> for Puppet and <code>Single</code> for Chef. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> The engine type of the server. Valid values in this release include <code>ChefAutomate</code> and <code>Puppet</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i>  A DNS name that can be used to access the engine. Example: <code>myserver-asdfghjkl.us-east-1.opsworks.io</code>. You cannot access the server by using the <code>Endpoint</code> value if the server has a <code>CustomDomain</code> specified. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DisableAutomatedBackup</i> Disables automated backups. The number of stored backups is dependent on the value of PreferredBackupCount. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomDomain</i> An optional public endpoint of a server, such as <code>https://aws.my-company.com</code>. You cannot access the server by using the <code>Endpoint</code> value if the server has a <code>CustomDomain</code> specified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudFormationStackArn</i> The ARN of the CloudFormation stack that was used to create the server. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedAt</i> Time stamp of server creation. Example <code>2016-07-29T13:38:47.520Z</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerName</i> The name of the server. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupRetentionCount</i> The number of automated backups to keep. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociatePublicIpAddress</i> Associate a public IP address with a server that you are launching. <br/>        """
        pass

    def start_maintenance(self, ServerName: str, EngineAttributes: List[EngineAttribute]=None) -> StartMaintenanceResponse:
        r""" Manually starts server maintenance. This command can be useful if an earlier maintenance attempt failed, and the underlying cause of maintenance failure has been resolved. The server is in an <code>UNDER_MAINTENANCE</code> state while maintenance is in progress.   Maintenance can only be started on servers in <code>HEALTHY</code> and <code>UNHEALTHY</code> states. Otherwise, an <code>InvalidStateException</code> is thrown. A <code>ResourceNotFoundException</code> is thrown when the server does not exist. A <code>ValidationException</code> is raised when parameters of the request are not valid. 

        :param self:
        :param EngineAttributes:  Engine attributes that are specific to the server on which you want to run maintenance. <p class="title"> <b>Attributes accepted in a StartMaintenance request for Chef</b>  <ul> <li>  <code>CHEF_MAJOR_UPGRADE</code>: If a Chef Automate server is eligible for upgrade to Chef Automate 2, add this engine attribute to a <code>StartMaintenance</code> request and set the value to <code>true</code> to upgrade the server to Chef Automate 2. For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/opscm-a2upgrade.html">Upgrade an AWS OpsWorks for Chef Automate Server to Chef Automate 2</a>.  </li> </ul><br/>ServerName:  The name of the server on which to run maintenance. <br/>
        :return: Server:  Contains the response to a <code>StartMaintenance</code> request. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerArn</i> The ARN of the server. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetIds</i>  The subnet IDs specified in a CreateServer request. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusReason</i>  Depending on the server status, this field has either a human-readable message (such as a create or backup error), or an escaped block of JSON (used for health check results). <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i>  The server's status. This field displays the states of actions in progress, such as creating, running, or backing up the server, as well as the server's health state. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceRoleArn</i> The service role ARN used to create the server. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i>  The security group IDs for the server, as specified in the CloudFormation stack. These might not be the same security groups that are shown in the EC2 console. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredBackupWindow</i> The preferred backup period specified for the server. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i> The preferred maintenance period specified for the server. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaintenanceStatus</i> The status of the most recent server maintenance run. Shows <code>SUCCESS</code> or <code>FAILED</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KeyPair</i> The key pair associated with the server. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceType</i>  The instance type for the server, as specified in the CloudFormation stack. This might not be the same instance type that is shown in the EC2 console. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceProfileArn</i> The instance profile ARN of the server. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> The engine version of the server. For a Chef server, the valid value for EngineVersion is currently <code>2</code>. For a Puppet server, specify either <code>2019</code> or <code>2017</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineAttributes</i> The response of a createServer() request returns the master credential to access the server in EngineAttributes. These credentials are not stored by AWS OpsWorks CM; they are returned only as part of the result of createServer().  <p class="title"> <b>Attributes returned in a createServer response for Chef</b>  <ul> <li>  <code>CHEF_AUTOMATE_PIVOTAL_KEY</code>: A base64-encoded RSA private key that is generated by AWS OpsWorks for Chef Automate. This private key is required to access the Chef API. </li> <li>  <code>CHEF_STARTER_KIT</code>: A base64-encoded ZIP file. The ZIP file contains a Chef starter kit, which includes a README, a configuration file, and the required RSA private key. Save this file, unzip it, and then change to the directory where you've unzipped the file contents. From this directory, you can run Knife commands. </li> </ul> <p class="title"> <b>Attributes returned in a createServer response for Puppet</b>  <ul> <li>  <code>PUPPET_STARTER_KIT</code>: A base64-encoded ZIP file. The ZIP file contains a Puppet starter kit, including a README and a required private key. Save this file, unzip it, and then change to the directory where you've unzipped the file contents. </li> <li>  <code>PUPPET_ADMIN_PASSWORD</code>: An administrator password that you can use to sign in to the Puppet Enterprise console after the server is online. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineModel</i> The engine model of the server. Valid values in this release include <code>Monolithic</code> for Puppet and <code>Single</code> for Chef. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> The engine type of the server. Valid values in this release include <code>ChefAutomate</code> and <code>Puppet</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i>  A DNS name that can be used to access the engine. Example: <code>myserver-asdfghjkl.us-east-1.opsworks.io</code>. You cannot access the server by using the <code>Endpoint</code> value if the server has a <code>CustomDomain</code> specified. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DisableAutomatedBackup</i> Disables automated backups. The number of stored backups is dependent on the value of PreferredBackupCount. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomDomain</i> An optional public endpoint of a server, such as <code>https://aws.my-company.com</code>. You cannot access the server by using the <code>Endpoint</code> value if the server has a <code>CustomDomain</code> specified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudFormationStackArn</i> The ARN of the CloudFormation stack that was used to create the server. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedAt</i> Time stamp of server creation. Example <code>2016-07-29T13:38:47.520Z</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerName</i> The name of the server. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupRetentionCount</i> The number of automated backups to keep. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociatePublicIpAddress</i> Associate a public IP address with a server that you are launching. <br/>        """
        pass

    def tag_resource(self, Tags: List[Tag], ResourceArn: str) -> TagResourceResponse:
        r"""Applies tags to an AWS OpsWorks for Chef Automate or AWS OpsWorks for Puppet Enterprise server, or to server backups.

        :param self:
        :param Tags:  A map that contains tag keys and tag values to attach to AWS OpsWorks-CM servers or backups. <ul> <li> The key cannot be empty. </li> <li> The key can be a maximum of 127 characters, and can contain only Unicode letters, numbers, or separators, or the following special characters: <code>+ - = . _ : /</code>  </li> <li> The value can be a maximum 255 characters, and contain only Unicode letters, numbers, or separators, or the following special characters: <code>+ - = . _ : /</code>  </li> <li> Leading and trailing white spaces are trimmed from both the key and value. </li> <li> A maximum of 50 user-applied tags is allowed for any AWS OpsWorks-CM server or backup. </li> </ul><br/>ResourceArn:  The Amazon Resource Number (ARN) of a resource to which you want to apply tags. For example, <code>arn:aws:opsworks-cm:us-west-2:123456789012:server/test-owcm-server/EXAMPLE-66b0-4196-8274-d1a2bEXAMPLE</code>.<br/>
        :return:         """
        pass

    def untag_resource(self, TagKeys: List[TagKey], ResourceArn: str) -> UntagResourceResponse:
        r"""Removes specified tags from an AWS OpsWorks-CM server or backup.

        :param self:
        :param TagKeys:  The keys of tags that you want to remove.<br/>ResourceArn:  The Amazon Resource Number (ARN) of a resource from which you want to remove tags. For example, <code>arn:aws:opsworks-cm:us-west-2:123456789012:server/test-owcm-server/EXAMPLE-66b0-4196-8274-d1a2bEXAMPLE</code>.<br/>
        :return:         """
        pass

    def update_server(self, ServerName: str, DisableAutomatedBackup: Boolean=None, BackupRetentionCount: int=None, PreferredMaintenanceWindow: str=None, PreferredBackupWindow: str=None) -> UpdateServerResponse:
        r""" Updates settings for a server.   This operation is synchronous. 

        :param self:
        :param PreferredBackupWindow:   <code>DDD:HH:MM</code> (weekly start time) or <code>HH:MM</code> (daily start time).   Time windows always use coordinated universal time (UTC). Valid strings for day of week (<code>DDD</code>) are: <code>Mon</code>, <code>Tue</code>, <code>Wed</code>, <code>Thr</code>, <code>Fri</code>, <code>Sat</code>, or <code>Sun</code>.<br/>PreferredMaintenanceWindow:   <code>DDD:HH:MM</code> (weekly start time) or <code>HH:MM</code> (daily start time).   Time windows always use coordinated universal time (UTC). Valid strings for day of week (<code>DDD</code>) are: <code>Mon</code>, <code>Tue</code>, <code>Wed</code>, <code>Thr</code>, <code>Fri</code>, <code>Sat</code>, or <code>Sun</code>.<br/>ServerName:  The name of the server to update. <br/>BackupRetentionCount:  Sets the number of automated backups that you want to keep. <br/>DisableAutomatedBackup:  Setting DisableAutomatedBackup to <code>true</code> disables automated or scheduled backups. Automated backups are enabled by default. <br/>
        :return: Server:  Contains the response to a <code>UpdateServer</code> request. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerArn</i> The ARN of the server. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetIds</i>  The subnet IDs specified in a CreateServer request. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusReason</i>  Depending on the server status, this field has either a human-readable message (such as a create or backup error), or an escaped block of JSON (used for health check results). <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i>  The server's status. This field displays the states of actions in progress, such as creating, running, or backing up the server, as well as the server's health state. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceRoleArn</i> The service role ARN used to create the server. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i>  The security group IDs for the server, as specified in the CloudFormation stack. These might not be the same security groups that are shown in the EC2 console. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredBackupWindow</i> The preferred backup period specified for the server. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i> The preferred maintenance period specified for the server. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaintenanceStatus</i> The status of the most recent server maintenance run. Shows <code>SUCCESS</code> or <code>FAILED</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KeyPair</i> The key pair associated with the server. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceType</i>  The instance type for the server, as specified in the CloudFormation stack. This might not be the same instance type that is shown in the EC2 console. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceProfileArn</i> The instance profile ARN of the server. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> The engine version of the server. For a Chef server, the valid value for EngineVersion is currently <code>2</code>. For a Puppet server, specify either <code>2019</code> or <code>2017</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineAttributes</i> The response of a createServer() request returns the master credential to access the server in EngineAttributes. These credentials are not stored by AWS OpsWorks CM; they are returned only as part of the result of createServer().  <p class="title"> <b>Attributes returned in a createServer response for Chef</b>  <ul> <li>  <code>CHEF_AUTOMATE_PIVOTAL_KEY</code>: A base64-encoded RSA private key that is generated by AWS OpsWorks for Chef Automate. This private key is required to access the Chef API. </li> <li>  <code>CHEF_STARTER_KIT</code>: A base64-encoded ZIP file. The ZIP file contains a Chef starter kit, which includes a README, a configuration file, and the required RSA private key. Save this file, unzip it, and then change to the directory where you've unzipped the file contents. From this directory, you can run Knife commands. </li> </ul> <p class="title"> <b>Attributes returned in a createServer response for Puppet</b>  <ul> <li>  <code>PUPPET_STARTER_KIT</code>: A base64-encoded ZIP file. The ZIP file contains a Puppet starter kit, including a README and a required private key. Save this file, unzip it, and then change to the directory where you've unzipped the file contents. </li> <li>  <code>PUPPET_ADMIN_PASSWORD</code>: An administrator password that you can use to sign in to the Puppet Enterprise console after the server is online. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineModel</i> The engine model of the server. Valid values in this release include <code>Monolithic</code> for Puppet and <code>Single</code> for Chef. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> The engine type of the server. Valid values in this release include <code>ChefAutomate</code> and <code>Puppet</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i>  A DNS name that can be used to access the engine. Example: <code>myserver-asdfghjkl.us-east-1.opsworks.io</code>. You cannot access the server by using the <code>Endpoint</code> value if the server has a <code>CustomDomain</code> specified. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DisableAutomatedBackup</i> Disables automated backups. The number of stored backups is dependent on the value of PreferredBackupCount. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomDomain</i> An optional public endpoint of a server, such as <code>https://aws.my-company.com</code>. You cannot access the server by using the <code>Endpoint</code> value if the server has a <code>CustomDomain</code> specified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudFormationStackArn</i> The ARN of the CloudFormation stack that was used to create the server. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedAt</i> Time stamp of server creation. Example <code>2016-07-29T13:38:47.520Z</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerName</i> The name of the server. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupRetentionCount</i> The number of automated backups to keep. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociatePublicIpAddress</i> Associate a public IP address with a server that you are launching. <br/>        """
        pass

    def update_server_engine_attributes(self, AttributeName: str, ServerName: str, AttributeValue: str=None) -> UpdateServerEngineAttributesResponse:
        r""" Updates engine-specific attributes on a specified server. The server enters the <code>MODIFYING</code> state when this operation is in progress. Only one update can occur at a time. You can use this command to reset a Chef server's public key (<code>CHEF_PIVOTAL_KEY</code>) or a Puppet server's admin password (<code>PUPPET_ADMIN_PASSWORD</code>).   This operation is asynchronous.   This operation can only be called for servers in <code>HEALTHY</code> or <code>UNHEALTHY</code> states. Otherwise, an <code>InvalidStateException</code> is raised. A <code>ResourceNotFoundException</code> is thrown when the server does not exist. A <code>ValidationException</code> is raised when parameters of the request are not valid. 

        :param self:
        :param AttributeValue:  The value to set for the attribute. <br/>AttributeName:  The name of the engine attribute to update. <br/>ServerName:  The name of the server to update. <br/>
        :return: Server:  Contains the response to an <code>UpdateServerEngineAttributes</code> request. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerArn</i> The ARN of the server. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetIds</i>  The subnet IDs specified in a CreateServer request. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusReason</i>  Depending on the server status, this field has either a human-readable message (such as a create or backup error), or an escaped block of JSON (used for health check results). <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i>  The server's status. This field displays the states of actions in progress, such as creating, running, or backing up the server, as well as the server's health state. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceRoleArn</i> The service role ARN used to create the server. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i>  The security group IDs for the server, as specified in the CloudFormation stack. These might not be the same security groups that are shown in the EC2 console. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredBackupWindow</i> The preferred backup period specified for the server. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i> The preferred maintenance period specified for the server. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaintenanceStatus</i> The status of the most recent server maintenance run. Shows <code>SUCCESS</code> or <code>FAILED</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KeyPair</i> The key pair associated with the server. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceType</i>  The instance type for the server, as specified in the CloudFormation stack. This might not be the same instance type that is shown in the EC2 console. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceProfileArn</i> The instance profile ARN of the server. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> The engine version of the server. For a Chef server, the valid value for EngineVersion is currently <code>2</code>. For a Puppet server, specify either <code>2019</code> or <code>2017</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineAttributes</i> The response of a createServer() request returns the master credential to access the server in EngineAttributes. These credentials are not stored by AWS OpsWorks CM; they are returned only as part of the result of createServer().  <p class="title"> <b>Attributes returned in a createServer response for Chef</b>  <ul> <li>  <code>CHEF_AUTOMATE_PIVOTAL_KEY</code>: A base64-encoded RSA private key that is generated by AWS OpsWorks for Chef Automate. This private key is required to access the Chef API. </li> <li>  <code>CHEF_STARTER_KIT</code>: A base64-encoded ZIP file. The ZIP file contains a Chef starter kit, which includes a README, a configuration file, and the required RSA private key. Save this file, unzip it, and then change to the directory where you've unzipped the file contents. From this directory, you can run Knife commands. </li> </ul> <p class="title"> <b>Attributes returned in a createServer response for Puppet</b>  <ul> <li>  <code>PUPPET_STARTER_KIT</code>: A base64-encoded ZIP file. The ZIP file contains a Puppet starter kit, including a README and a required private key. Save this file, unzip it, and then change to the directory where you've unzipped the file contents. </li> <li>  <code>PUPPET_ADMIN_PASSWORD</code>: An administrator password that you can use to sign in to the Puppet Enterprise console after the server is online. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineModel</i> The engine model of the server. Valid values in this release include <code>Monolithic</code> for Puppet and <code>Single</code> for Chef. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> The engine type of the server. Valid values in this release include <code>ChefAutomate</code> and <code>Puppet</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i>  A DNS name that can be used to access the engine. Example: <code>myserver-asdfghjkl.us-east-1.opsworks.io</code>. You cannot access the server by using the <code>Endpoint</code> value if the server has a <code>CustomDomain</code> specified. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DisableAutomatedBackup</i> Disables automated backups. The number of stored backups is dependent on the value of PreferredBackupCount. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomDomain</i> An optional public endpoint of a server, such as <code>https://aws.my-company.com</code>. You cannot access the server by using the <code>Endpoint</code> value if the server has a <code>CustomDomain</code> specified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudFormationStackArn</i> The ARN of the CloudFormation stack that was used to create the server. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedAt</i> Time stamp of server creation. Example <code>2016-07-29T13:38:47.520Z</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerName</i> The name of the server. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupRetentionCount</i> The number of automated backups to keep. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociatePublicIpAddress</i> Associate a public IP address with a server that you are launching. <br/>        """
        pass





class Organizations(BaseClient):
    r"""AWS Organizations is a web service that enables you to consolidate your multiple AWS accounts into an <i>organization</i> and centrally manage your accounts and their resources. This guide provides descriptions of the Organizations operations. For more information about using this service, see the <a href="http://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html">AWS Organizations User Guide</a>.  <b>Support and feedback for AWS Organizations</b>  We welcome your feedback. Send your comments to <a href="mailto:feedback-awsorganizations@amazon.com">feedback-awsorganizations@amazon.com</a> or post your feedback and questions in the <a href="http://forums.aws.amazon.com/forum.jspa?forumID=219">AWS Organizations support forum</a>. For more information about the AWS support forums, see <a href="http://forums.aws.amazon.com/help.jspa">Forums Help</a>.  <b>Endpoint to call When using the AWS CLI or the AWS SDK</b>  For the current release of Organizations, specify the <code>us-east-1</code> region for all AWS API and AWS CLI calls made from the commercial AWS Regions outside of China. If calling from one of the AWS Regions in China, then specify <code>cn-northwest-1</code>. You can do this in the AWS CLI by using these parameters and commands: <ul> <li> Use the following parameter with each command to specify both the endpoint and its region:  <code>--endpoint-url https://organizations.us-east-1.amazonaws.com</code> <i>(from commercial AWS Regions outside of China)</i>  or  <code>--endpoint-url https://organizations.cn-northwest-1.amazonaws.com.cn</code> <i>(from AWS Regions in China)</i>  </li> <li> Use the default endpoint, but configure your default region with this command:  <code>aws configure set default.region us-east-1</code> <i>(from commercial AWS Regions outside of China)</i>  or  <code>aws configure set default.region cn-northwest-1</code> <i>(from AWS Regions in China)</i>  </li> <li> Use the following parameter with each command to specify the endpoint:  <code>--region us-east-1</code> <i>(from commercial AWS Regions outside of China)</i>  or  <code>--region cn-northwest-1</code> <i>(from AWS Regions in China)</i>  </li> </ul>  <b>Recording API Requests</b>  AWS Organizations supports AWS CloudTrail, a service that records AWS API calls for your AWS account and delivers log files to an Amazon S3 bucket. By using information collected by AWS CloudTrail, you can determine which requests the Organizations service received, who made the request and when, and so on. For more about AWS Organizations and its support for AWS CloudTrail, see <a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_incident-response.html#orgs_cloudtrail-integration">Logging AWS Organizations Events with AWS CloudTrail</a> in the <i>AWS Organizations User Guide</i>. To learn more about AWS CloudTrail, including how to turn it on and find your log files, see the <a href="http://docs.aws.amazon.com/awscloudtrail/latest/userguide/what_is_cloud_trail_top_level.html">AWS CloudTrail User Guide</a>."""


    class ListAccountsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_accounts` for valid parameters"""
            pass
    class ListAccountsForParentPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_accounts_for_parent` for valid parameters"""
            pass
    class ListChildrenPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_children` for valid parameters"""
            pass
    class ListCreateAccountStatusPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_create_account_status` for valid parameters"""
            pass
    class ListHandshakesForAccountPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_handshakes_for_account` for valid parameters"""
            pass
    class ListHandshakesForOrganizationPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_handshakes_for_organization` for valid parameters"""
            pass
    class ListOrganizationalUnitsForParentPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_organizational_units_for_parent` for valid parameters"""
            pass
    class ListParentsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_parents` for valid parameters"""
            pass
    class ListPoliciesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_policies` for valid parameters"""
            pass
    class ListPoliciesForTargetPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_policies_for_target` for valid parameters"""
            pass
    class ListRootsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_roots` for valid parameters"""
            pass
    class ListTargetsForPolicyPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_targets_for_policy` for valid parameters"""
            pass
    class ListAWSServiceAccessForOrganizationPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_aws_service_access_for_organization` for valid parameters"""
            pass
    class ListTagsForResourcePaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_tags_for_resource` for valid parameters"""
            pass
    class ListDelegatedAdministratorsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_delegated_administrators` for valid parameters"""
            pass
    class ListDelegatedServicesForAccountPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_delegated_services_for_account` for valid parameters"""
            pass


    class AcceptHandshakeRequest(Mapping):
        pass
    
    class AcceptHandshakeResponse(Mapping):
        pass
    
    class AttachPolicyRequest(Mapping):
        pass
    
    class CancelHandshakeRequest(Mapping):
        pass
    
    class CancelHandshakeResponse(Mapping):
        pass
    
    class CreateAccountRequest(Mapping):
        pass
    
    class CreateAccountResponse(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class CreateGovCloudAccountRequest(Mapping):
        pass
    
    class CreateGovCloudAccountResponse(Mapping):
        pass
    
    class CreateOrganizationRequest(Mapping):
        pass
    
    class CreateOrganizationResponse(Mapping):
        pass
    
    class CreateOrganizationalUnitRequest(Mapping):
        pass
    
    class CreateOrganizationalUnitResponse(Mapping):
        pass
    
    class CreatePolicyRequest(Mapping):
        pass
    
    class CreatePolicyResponse(Mapping):
        pass
    
    class DeclineHandshakeRequest(Mapping):
        pass
    
    class DeclineHandshakeResponse(Mapping):
        pass
    
    class DeleteOrganizationalUnitRequest(Mapping):
        pass
    
    class DeletePolicyRequest(Mapping):
        pass
    
    class DeregisterDelegatedAdministratorRequest(Mapping):
        pass
    
    class DescribeAccountRequest(Mapping):
        pass
    
    class DescribeAccountResponse(Mapping):
        pass
    
    class DescribeCreateAccountStatusRequest(Mapping):
        pass
    
    class DescribeCreateAccountStatusResponse(Mapping):
        pass
    
    class DescribeEffectivePolicyRequest(Mapping):
        pass
    
    class DescribeEffectivePolicyResponse(Mapping):
        pass
    
    class DescribeHandshakeRequest(Mapping):
        pass
    
    class DescribeHandshakeResponse(Mapping):
        pass
    
    class DescribeOrganizationResponse(Mapping):
        pass
    
    class DescribeOrganizationalUnitRequest(Mapping):
        pass
    
    class DescribeOrganizationalUnitResponse(Mapping):
        pass
    
    class DescribePolicyRequest(Mapping):
        pass
    
    class DescribePolicyResponse(Mapping):
        pass
    
    class DetachPolicyRequest(Mapping):
        pass
    
    class DisableAWSServiceAccessRequest(Mapping):
        pass
    
    class DisablePolicyTypeRequest(Mapping):
        pass
    
    class DisablePolicyTypeResponse(Mapping):
        pass
    
    class EnableAWSServiceAccessRequest(Mapping):
        pass
    
    class EnableAllFeaturesRequest(Mapping):
        pass
    
    class EnableAllFeaturesResponse(Mapping):
        pass
    
    class EnablePolicyTypeRequest(Mapping):
        pass
    
    class EnablePolicyTypeResponse(Mapping):
        pass
    
    class InviteAccountToOrganizationRequest(Mapping):
        pass
    
    class InviteAccountToOrganizationResponse(Mapping):
        pass
    
    class HandshakeParty(Mapping):
        pass
    
    class ListAWSServiceAccessForOrganizationRequest(Mapping):
        pass
    
    class ListAWSServiceAccessForOrganizationResponse(Mapping):
        pass
    
    class ListAccountsRequest(Mapping):
        pass
    
    class ListAccountsResponse(Mapping):
        pass
    
    class ListAccountsForParentRequest(Mapping):
        pass
    
    class ListAccountsForParentResponse(Mapping):
        pass
    
    class ListChildrenRequest(Mapping):
        pass
    
    class ListChildrenResponse(Mapping):
        pass
    
    class ListCreateAccountStatusRequest(Mapping):
        pass
    
    class ListCreateAccountStatusResponse(Mapping):
        pass
    
    class CreateAccountState(object):
        pass
    
    class ListDelegatedAdministratorsRequest(Mapping):
        pass
    
    class ListDelegatedAdministratorsResponse(Mapping):
        pass
    
    class ListDelegatedServicesForAccountRequest(Mapping):
        pass
    
    class ListDelegatedServicesForAccountResponse(Mapping):
        pass
    
    class ListHandshakesForAccountRequest(Mapping):
        pass
    
    class ListHandshakesForAccountResponse(Mapping):
        pass
    
    class HandshakeFilter(Mapping):
        pass
    
    class ListHandshakesForOrganizationRequest(Mapping):
        pass
    
    class ListHandshakesForOrganizationResponse(Mapping):
        pass
    
    class ListOrganizationalUnitsForParentRequest(Mapping):
        pass
    
    class ListOrganizationalUnitsForParentResponse(Mapping):
        pass
    
    class ListParentsRequest(Mapping):
        pass
    
    class ListParentsResponse(Mapping):
        pass
    
    class ListPoliciesRequest(Mapping):
        pass
    
    class ListPoliciesResponse(Mapping):
        pass
    
    class ListPoliciesForTargetRequest(Mapping):
        pass
    
    class ListPoliciesForTargetResponse(Mapping):
        pass
    
    class ListRootsRequest(Mapping):
        pass
    
    class ListRootsResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class ListTargetsForPolicyRequest(Mapping):
        pass
    
    class ListTargetsForPolicyResponse(Mapping):
        pass
    
    class MoveAccountRequest(Mapping):
        pass
    
    class RegisterDelegatedAdministratorRequest(Mapping):
        pass
    
    class RemoveAccountFromOrganizationRequest(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateOrganizationalUnitRequest(Mapping):
        pass
    
    class UpdateOrganizationalUnitResponse(Mapping):
        pass
    
    class UpdatePolicyRequest(Mapping):
        pass
    
    class UpdatePolicyResponse(Mapping):
        pass
    
    def accept_handshake(self, HandshakeId: str) -> AcceptHandshakeResponse:
        r"""Sends a response to the originator of a handshake agreeing to the action proposed by the handshake request. This operation can be called only by the following principals when they also have the relevant IAM permissions: <ul> <li>  <b>Invitation to join</b> or <b>Approve all features request</b> handshakes: only a principal from the member account. The user who calls the API for an invitation to join must have the <code>organizations:AcceptHandshake</code> permission. If you enabled all features in the organization, the user must also have the <code>iam:CreateServiceLinkedRole</code> permission so that AWS Organizations can create the required service-linked role named <code>AWSServiceRoleForOrganizations</code>. For more information, see <a href="http://docs.aws.amazon.com/organizations/latest/userguide/orgs_integration_services.html#orgs_integration_service-linked-roles">AWS Organizations and Service-Linked Roles</a> in the <i>AWS Organizations User Guide</i>. </li> <li>  <b>Enable all features final confirmation</b> handshake: only a principal from the management account. For more information about invitations, see <a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_accounts_invites.html">Inviting an AWS Account to Join Your Organization</a> in the <i>AWS Organizations User Guide.</i> For more information about requests to enable all features in the organization, see <a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_org_support-all-features.html">Enabling All Features in Your Organization</a> in the <i>AWS Organizations User Guide.</i>  </li> </ul> After you accept a handshake, it continues to appear in the results of relevant APIs for only 30 days. After that, it's deleted.

        :param self:
        :param HandshakeId:  The unique identifier (ID) of the handshake that you want to accept. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> for handshake ID string requires "h-" followed by from 8 to 32 lowercase letters or digits.<br/>
        :return: Handshake:  A structure that contains details about the accepted handshake.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Resources</i> Additional information that is needed to process the handshake.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Action</i> The type of handshake, indicating what action occurs when the recipient accepts the handshake. The following handshake types are supported: <ul> <li>  <b>INVITE</b>: This type of handshake represents a request to join an organization. It is always sent from the management account to only non-member accounts. </li> <li>  <b>ENABLE_ALL_FEATURES</b>: This type of handshake represents a request to enable all features in an organization. It is always sent from the management account to only <i>invited</i> member accounts. Created accounts do not receive this because those accounts were created by the organization's management account and approval is inferred. </li> <li>  <b>APPROVE_ALL_FEATURES</b>: This type of handshake is sent from the Organizations service when all member accounts have approved the <code>ENABLE_ALL_FEATURES</code> invitation. It is sent only to the management account and signals the master that it can finalize the process to enable all features. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExpirationTimestamp</i> The date and time that the handshake expires. If the recipient of the handshake request fails to respond before the specified date and time, the handshake becomes inactive and is no longer valid.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequestedTimestamp</i> The date and time that the handshake request was made.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The current state of the handshake. Use the state to trace the flow of the handshake through the process from its creation to its acceptance. The meaning of each of the valid values is as follows: <ul> <li>  <b>REQUESTED</b>: This handshake was sent to multiple recipients (applicable to only some handshake types) and not all recipients have responded yet. The request stays in this state until all recipients respond. </li> <li>  <b>OPEN</b>: This handshake was sent to multiple recipients (applicable to only some policy types) and all recipients have responded, allowing the originator to complete the handshake action. </li> <li>  <b>CANCELED</b>: This handshake is no longer active because it was canceled by the originating account. </li> <li>  <b>ACCEPTED</b>: This handshake is complete because it has been accepted by the recipient. </li> <li>  <b>DECLINED</b>: This handshake is no longer active because it was declined by the recipient account. </li> <li>  <b>EXPIRED</b>: This handshake is no longer active because the originator did not receive a response of any kind from the recipient before the expiration time (15 days). </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Parties</i> Information about the two accounts that are participating in the handshake.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of a handshake. For more information about ARNs in Organizations, see <a href="https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsorganizations.html#awsorganizations-resources-for-iam-policies">ARN Formats Supported by Organizations</a> in the <i>AWS Service Authorization Reference</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The unique identifier (ID) of a handshake. The originating account creates the ID when it initiates the handshake. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> for handshake ID string requires "h-" followed by from 8 to 32 lowercase letters or digits.<br/>        """
        pass

    def attach_policy(self, TargetId: str, PolicyId: str):
        r"""Attaches a policy to a root, an organizational unit (OU), or an individual account. How the policy affects accounts depends on the type of policy. Refer to the <i>AWS Organizations User Guide</i> for information about each policy type: <ul> <li>  <a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_ai-opt-out.html">AISERVICES_OPT_OUT_POLICY</a>  </li> <li>  <a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_backup.html">BACKUP_POLICY</a>  </li> <li>  <a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scp.html">SERVICE_CONTROL_POLICY</a>  </li> <li>  <a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_tag-policies.html">TAG_POLICY</a>  </li> </ul> This operation can be called only from the organization's management account.

        :param self:
        :param TargetId:  The unique identifier (ID) of the root, OU, or account that you want to attach the policy to. You can get the ID by calling the <a>ListRoots</a>, <a>ListOrganizationalUnitsForParent</a>, or <a>ListAccounts</a> operations. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> for a target ID string requires one of the following: <ul> <li>  <b>Root</b> - A string that begins with "r-" followed by from 4 to 32 lowercase letters or digits. </li> <li>  <b>Account</b> - A string that consists of exactly 12 digits. </li> <li>  <b>Organizational unit (OU)</b> - A string that begins with "ou-" followed by from 4 to 32 lowercase letters or digits (the ID of the root that the OU is in). This string is followed by a second "-" dash and from 8 to 32 additional lowercase letters or digits. </li> </ul><br/>PolicyId:  The unique identifier (ID) of the policy that you want to attach to the target. You can get the ID for the policy by calling the <a>ListPolicies</a> operation. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> for a policy ID string requires "p-" followed by from 8 to 128 lowercase or uppercase letters, digits, or the underscore character (_).<br/>
        :return:         """
        pass

    def cancel_handshake(self, HandshakeId: str) -> CancelHandshakeResponse:
        r"""Cancels a handshake. Canceling a handshake sets the handshake state to <code>CANCELED</code>. This operation can be called only from the account that originated the handshake. The recipient of the handshake can't cancel it, but can use <a>DeclineHandshake</a> instead. After a handshake is canceled, the recipient can no longer respond to that handshake. After you cancel a handshake, it continues to appear in the results of relevant APIs for only 30 days. After that, it's deleted.

        :param self:
        :param HandshakeId:  The unique identifier (ID) of the handshake that you want to cancel. You can get the ID from the <a>ListHandshakesForOrganization</a> operation. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> for handshake ID string requires "h-" followed by from 8 to 32 lowercase letters or digits.<br/>
        :return: Handshake:  A structure that contains details about the handshake that you canceled.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Resources</i> Additional information that is needed to process the handshake.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Action</i> The type of handshake, indicating what action occurs when the recipient accepts the handshake. The following handshake types are supported: <ul> <li>  <b>INVITE</b>: This type of handshake represents a request to join an organization. It is always sent from the management account to only non-member accounts. </li> <li>  <b>ENABLE_ALL_FEATURES</b>: This type of handshake represents a request to enable all features in an organization. It is always sent from the management account to only <i>invited</i> member accounts. Created accounts do not receive this because those accounts were created by the organization's management account and approval is inferred. </li> <li>  <b>APPROVE_ALL_FEATURES</b>: This type of handshake is sent from the Organizations service when all member accounts have approved the <code>ENABLE_ALL_FEATURES</code> invitation. It is sent only to the management account and signals the master that it can finalize the process to enable all features. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExpirationTimestamp</i> The date and time that the handshake expires. If the recipient of the handshake request fails to respond before the specified date and time, the handshake becomes inactive and is no longer valid.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequestedTimestamp</i> The date and time that the handshake request was made.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The current state of the handshake. Use the state to trace the flow of the handshake through the process from its creation to its acceptance. The meaning of each of the valid values is as follows: <ul> <li>  <b>REQUESTED</b>: This handshake was sent to multiple recipients (applicable to only some handshake types) and not all recipients have responded yet. The request stays in this state until all recipients respond. </li> <li>  <b>OPEN</b>: This handshake was sent to multiple recipients (applicable to only some policy types) and all recipients have responded, allowing the originator to complete the handshake action. </li> <li>  <b>CANCELED</b>: This handshake is no longer active because it was canceled by the originating account. </li> <li>  <b>ACCEPTED</b>: This handshake is complete because it has been accepted by the recipient. </li> <li>  <b>DECLINED</b>: This handshake is no longer active because it was declined by the recipient account. </li> <li>  <b>EXPIRED</b>: This handshake is no longer active because the originator did not receive a response of any kind from the recipient before the expiration time (15 days). </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Parties</i> Information about the two accounts that are participating in the handshake.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of a handshake. For more information about ARNs in Organizations, see <a href="https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsorganizations.html#awsorganizations-resources-for-iam-policies">ARN Formats Supported by Organizations</a> in the <i>AWS Service Authorization Reference</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The unique identifier (ID) of a handshake. The originating account creates the ID when it initiates the handshake. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> for handshake ID string requires "h-" followed by from 8 to 32 lowercase letters or digits.<br/>        """
        pass

    def create_account(self, AccountName: str, Email: str, RoleName: str=None, IamUserAccessToBilling: str=None, Tags: List[Tag]=None) -> CreateAccountResponse:
        r"""Creates an AWS account that is automatically a member of the organization whose credentials made the request. This is an asynchronous request that AWS performs in the background. Because <code>CreateAccount</code> operates asynchronously, it can return a successful completion message even though account initialization might still be in progress. You might need to wait a few minutes before you can successfully access the account. To check the status of the request, do one of the following: <ul> <li> Use the <code>Id</code> member of the <code>CreateAccountStatus</code> response element from this operation to provide as a parameter to the <a>DescribeCreateAccountStatus</a> operation. </li> <li> Check the AWS CloudTrail log for the <code>CreateAccountResult</code> event. For information on using AWS CloudTrail with AWS Organizations, see <a href="http://docs.aws.amazon.com/organizations/latest/userguide/orgs_security_incident-response.html#orgs_cloudtrail-integration">Logging and monitoring in AWS Organizations</a> in the <i>AWS Organizations User Guide.</i>  </li> </ul> The user who calls the API to create an account must have the <code>organizations:CreateAccount</code> permission. If you enabled all features in the organization, AWS Organizations creates the required service-linked role named <code>AWSServiceRoleForOrganizations</code>. For more information, see <a href="http://docs.aws.amazon.com/organizations/latest/userguide/orgs_integrate_services.html#orgs_integrate_services-using_slrs">AWS Organizations and Service-Linked Roles</a> in the <i>AWS Organizations User Guide</i>. If the request includes tags, then the requester must have the <code>organizations:TagResource</code> permission. AWS Organizations preconfigures the new member account with a role (named <code>OrganizationAccountAccessRole</code> by default) that grants users in the management account administrator permissions in the new member account. Principals in the management account can assume the role. AWS Organizations clones the company name and address information for the new account from the organization's management account. This operation can be called only from the organization's management account. For more information about creating accounts, see <a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_accounts_create.html">Creating an AWS Account in Your Organization</a> in the <i>AWS Organizations User Guide.</i>  <important> <ul> <li> When you create an account in an organization using the AWS Organizations console, API, or CLI commands, the information required for the account to operate as a standalone account, such as a payment method and signing the end user license agreement (EULA) is <i>not</i> automatically collected. If you must remove an account from your organization later, you can do so only after you provide the missing information. Follow the steps at <a href="http://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_accounts_remove.html#leave-without-all-info"> To leave an organization as a member account</a> in the <i>AWS Organizations User Guide</i>. </li> <li> If you get an exception that indicates that you exceeded your account limits for the organization, contact <a href="https://console.aws.amazon.com/support/home#/">AWS Support</a>. </li> <li> If you get an exception that indicates that the operation failed because your organization is still initializing, wait one hour and then try again. If the error persists, contact <a href="https://console.aws.amazon.com/support/home#/">AWS Support</a>. </li> <li> Using <code>CreateAccount</code> to create multiple temporary accounts isn't recommended. You can only close an account from the Billing and Cost Management Console, and you must be signed in as the root user. For information on the requirements and process for closing an account, see <a href="http://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_accounts_close.html">Closing an AWS Account</a> in the <i>AWS Organizations User Guide</i>. </li> </ul> </important> <note> When you create a member account with this operation, you can choose whether to create the account with the <b>IAM User and Role Access to Billing Information</b> switch enabled. If you enable it, IAM users and roles that have appropriate permissions can view billing information for the account. If you disable it, only the account root user can access billing information. For information about how to disable this switch for an account, see <a href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/grantaccess.html">Granting Access to Your Billing Information and Tools</a>. </note>

        :param self:
        :param Tags:  A list of tags that you want to attach to the newly created account. For each tag in the list, you must specify both a tag key and a value. You can set the value to an empty string, but you can't set it to <code>null</code>. For more information about tagging, see <a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_tagging.html">Tagging AWS Organizations resources</a> in the AWS Organizations User Guide. <note> If any one of the tags is invalid or if you exceed the allowed number of tags for an account, then the entire request fails and the account is not created. </note><br/>IamUserAccessToBilling:  If set to <code>ALLOW</code>, the new account enables IAM users to access account billing information <i>if</i> they have the required permissions. If set to <code>DENY</code>, only the root user of the new account can access account billing information. For more information, see <a href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/grantaccess.html#ControllingAccessWebsite-Activate">Activating Access to the Billing and Cost Management Console</a> in the <i>AWS Billing and Cost Management User Guide</i>. If you don't specify this parameter, the value defaults to <code>ALLOW</code>, and IAM users and roles with the required permissions can access billing information for the new account.<br/>RoleName:  (Optional) The name of an IAM role that AWS Organizations automatically preconfigures in the new member account. This role trusts the management account, allowing users in the management account to assume the role, as permitted by the management account administrator. The role has administrator permissions in the new member account. If you don't specify this parameter, the role name defaults to <code>OrganizationAccountAccessRole</code>. For more information about how to use this role to access the member account, see the following links: <ul> <li>  <a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_accounts_access.html#orgs_manage_accounts_create-cross-account-role">Accessing and Administering the Member Accounts in Your Organization</a> in the <i>AWS Organizations User Guide</i>  </li> <li> Steps 2 and 3 in <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_cross-account-with-roles.html">Tutorial: Delegate Access Across AWS Accounts Using IAM Roles</a> in the <i>IAM User Guide</i>  </li> </ul> The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> that is used to validate this parameter. The pattern can include uppercase letters, lowercase letters, digits with no spaces, and any of the following characters: =,.@-<br/>AccountName:  The friendly name of the member account.<br/>Email:  The email address of the owner to assign to the new member account. This email address must not already be associated with another AWS account. You must use a valid email address to complete account creation. You can't access the root user of the account or remove an account that was created with an invalid email address.<br/>
        :return: CreateAccountStatus:  A structure that contains details about the request to create an account. This response structure might not be fully populated when you first receive it because account creation is an asynchronous process. You can pass the returned <code>CreateAccountStatus</code> ID as a parameter to <a>DescribeCreateAccountStatus</a> to get status about the progress of the request at later times. You can also check the AWS CloudTrail log for the <code>CreateAccountResult</code> event. For more information, see <a href="http://docs.aws.amazon.com/organizations/latest/userguide/orgs_monitoring.html">Monitoring the Activity in Your Organization</a> in the <i>AWS Organizations User Guide</i>.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FailureReason</i> If the request failed, a description of the reason for the failure. <ul> <li> ACCOUNT_LIMIT_EXCEEDED: The account couldn't be created because you reached the limit on the number of accounts in your organization. </li> <li> CONCURRENT_ACCOUNT_MODIFICATION: You already submitted a request with the same information. </li> <li> EMAIL_ALREADY_EXISTS: The account could not be created because another AWS account with that email address already exists. </li> <li> FAILED_BUSINESS_VALIDATION: The AWS account that owns your organization failed to receive business license validation. </li> <li> GOVCLOUD_ACCOUNT_ALREADY_EXISTS: The account in the AWS GovCloud (US) Region could not be created because this Region already includes an account with that email address. </li> <li> IDENTITY_INVALID_BUSINESS_VALIDATION: The AWS account that owns your organization can't complete business license validation because it doesn't have valid identity data. </li> <li> INVALID_ADDRESS: The account could not be created because the address you provided is not valid. </li> <li> INVALID_EMAIL: The account could not be created because the email address you provided is not valid. </li> <li> INTERNAL_FAILURE: The account could not be created because of an internal failure. Try again later. If the problem persists, contact AWS Customer Support. </li> <li> MISSING_BUSINESS_VALIDATION: The AWS account that owns your organization has not received Business Validation. </li> <li>  MISSING_PAYMENT_INSTRUMENT: You must configure the management account with a valid payment method, such as a credit card. </li> <li> PENDING_BUSINESS_VALIDATION: The AWS account that owns your organization is still in the process of completing business license validation. </li> <li> UNKNOWN_BUSINESS_VALIDATION: The AWS account that owns your organization has an unknown issue with business license validation. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GovCloudAccountId</i> If the account was created successfully, the unique identifier (ID) of the new account in the AWS GovCloud (US) Region.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccountId</i> If the account was created successfully, the unique identifier (ID) of the new account. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> for an account ID string requires exactly 12 digits.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CompletedTimestamp</i> The date and time that the account was created and the request completed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequestedTimestamp</i> The date and time that the request was made for the account creation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The status of the asynchronous request to create an AWS account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccountName</i> The account name given to the account when it was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The unique identifier (ID) that references this request. You get this value from the response of the initial <a>CreateAccount</a> request to create the account. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> for a create account request ID string requires "car-" followed by from 8 to 32 lowercase letters or digits.<br/>        """
        pass

    def create_gov_cloud_account(self, AccountName: str, Email: str, RoleName: str=None, IamUserAccessToBilling: str=None, Tags: List[Tag]=None) -> CreateGovCloudAccountResponse:
        r"""This action is available if all of the following are true: <ul> <li> You're authorized to create accounts in the AWS GovCloud (US) Region. For more information on the AWS GovCloud (US) Region, see the <a href="http://docs.aws.amazon.com/govcloud-us/latest/UserGuide/welcome.html"> <i>AWS GovCloud User Guide</i>.</a>  </li> <li> You already have an account in the AWS GovCloud (US) Region that is paired with a management account of an organization in the commercial Region. </li> <li> You call this action from the management account of your organization in the commercial Region. </li> <li> You have the <code>organizations:CreateGovCloudAccount</code> permission.  </li> </ul> AWS Organizations automatically creates the required service-linked role named <code>AWSServiceRoleForOrganizations</code>. For more information, see <a href="http://docs.aws.amazon.com/organizations/latest/userguide/orgs_integrate_services.html#orgs_integrate_services-using_slrs">AWS Organizations and Service-Linked Roles</a> in the <i>AWS Organizations User Guide.</i>  AWS automatically enables AWS CloudTrail for AWS GovCloud (US) accounts, but you should also do the following: <ul> <li> Verify that AWS CloudTrail is enabled to store logs. </li> <li> Create an S3 bucket for AWS CloudTrail log storage. For more information, see <a href="http://docs.aws.amazon.com/govcloud-us/latest/UserGuide/verifying-cloudtrail.html">Verifying AWS CloudTrail Is Enabled</a> in the <i>AWS GovCloud User Guide</i>.  </li> </ul> If the request includes tags, then the requester must have the <code>organizations:TagResource</code> permission. The tags are attached to the commercial account associated with the GovCloud account, rather than the GovCloud account itself. To add tags to the GovCloud account, call the <a>TagResource</a> operation in the GovCloud Region after the new GovCloud account exists. You call this action from the management account of your organization in the commercial Region to create a standalone AWS account in the AWS GovCloud (US) Region. After the account is created, the management account of an organization in the AWS GovCloud (US) Region can invite it to that organization. For more information on inviting standalone accounts in the AWS GovCloud (US) to join an organization, see <a href="http://docs.aws.amazon.com/govcloud-us/latest/UserGuide/govcloud-organizations.html">AWS Organizations</a> in the <i>AWS GovCloud User Guide.</i>  Calling <code>CreateGovCloudAccount</code> is an asynchronous request that AWS performs in the background. Because <code>CreateGovCloudAccount</code> operates asynchronously, it can return a successful completion message even though account initialization might still be in progress. You might need to wait a few minutes before you can successfully access the account. To check the status of the request, do one of the following: <ul> <li> Use the <code>OperationId</code> response element from this operation to provide as a parameter to the <a>DescribeCreateAccountStatus</a> operation. </li> <li> Check the AWS CloudTrail log for the <code>CreateAccountResult</code> event. For information on using AWS CloudTrail with Organizations, see <a href="http://docs.aws.amazon.com/organizations/latest/userguide/orgs_monitoring.html">Monitoring the Activity in Your Organization</a> in the <i>AWS Organizations User Guide.</i>  </li> </ul> <p/> When you call the <code>CreateGovCloudAccount</code> action, you create two accounts: a standalone account in the AWS GovCloud (US) Region and an associated account in the commercial Region for billing and support purposes. The account in the commercial Region is automatically a member of the organization whose credentials made the request. Both accounts are associated with the same email address. A role is created in the new account in the commercial Region that allows the management account in the organization in the commercial Region to assume it. An AWS GovCloud (US) account is then created and associated with the commercial account that you just created. A role is also created in the new AWS GovCloud (US) account that can be assumed by the AWS GovCloud (US) account that is associated with the management account of the commercial organization. For more information and to view a diagram that explains how account access works, see <a href="http://docs.aws.amazon.com/govcloud-us/latest/UserGuide/govcloud-organizations.html">AWS Organizations</a> in the <i>AWS GovCloud User Guide.</i>  For more information about creating accounts, see <a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_accounts_create.html">Creating an AWS Account in Your Organization</a> in the <i>AWS Organizations User Guide.</i>  <important> <ul> <li> When you create an account in an organization using the AWS Organizations console, API, or CLI commands, the information required for the account to operate as a standalone account is <i>not</i> automatically collected. This includes a payment method and signing the end user license agreement (EULA). If you must remove an account from your organization later, you can do so only after you provide the missing information. Follow the steps at <a href="http://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_accounts_remove.html#leave-without-all-info"> To leave an organization as a member account</a> in the <i>AWS Organizations User Guide.</i>  </li> <li> If you get an exception that indicates that you exceeded your account limits for the organization, contact <a href="https://console.aws.amazon.com/support/home#/">AWS Support</a>. </li> <li> If you get an exception that indicates that the operation failed because your organization is still initializing, wait one hour and then try again. If the error persists, contact <a href="https://console.aws.amazon.com/support/home#/">AWS Support</a>. </li> <li> Using <code>CreateGovCloudAccount</code> to create multiple temporary accounts isn't recommended. You can only close an account from the AWS Billing and Cost Management console, and you must be signed in as the root user. For information on the requirements and process for closing an account, see <a href="http://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_accounts_close.html">Closing an AWS Account</a> in the <i>AWS Organizations User Guide</i>. </li> </ul> </important> <note> When you create a member account with this operation, you can choose whether to create the account with the <b>IAM User and Role Access to Billing Information</b> switch enabled. If you enable it, IAM users and roles that have appropriate permissions can view billing information for the account. If you disable it, only the account root user can access billing information. For information about how to disable this switch for an account, see <a href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/grantaccess.html">Granting Access to Your Billing Information and Tools</a>. </note>

        :param self:
        :param Tags:  A list of tags that you want to attach to the newly created account. These tags are attached to the commercial account associated with the GovCloud account, and not to the GovCloud account itself. To add tags to the actual GovCloud account, call the <a>TagResource</a> operation in the GovCloud region after the new GovCloud account exists. For each tag in the list, you must specify both a tag key and a value. You can set the value to an empty string, but you can't set it to <code>null</code>. For more information about tagging, see <a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_tagging.html">Tagging AWS Organizations resources</a> in the AWS Organizations User Guide. <note> If any one of the tags is invalid or if you exceed the allowed number of tags for an account, then the entire request fails and the account is not created. </note><br/>IamUserAccessToBilling:  If set to <code>ALLOW</code>, the new linked account in the commercial Region enables IAM users to access account billing information <i>if</i> they have the required permissions. If set to <code>DENY</code>, only the root user of the new account can access account billing information. For more information, see <a href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/grantaccess.html#ControllingAccessWebsite-Activate">Activating Access to the Billing and Cost Management Console</a> in the <i>AWS Billing and Cost Management User Guide.</i>  If you don't specify this parameter, the value defaults to <code>ALLOW</code>, and IAM users and roles with the required permissions can access billing information for the new account.<br/>RoleName:  (Optional) The name of an IAM role that AWS Organizations automatically preconfigures in the new member accounts in both the AWS GovCloud (US) Region and in the commercial Region. This role trusts the management account, allowing users in the management account to assume the role, as permitted by the management account administrator. The role has administrator permissions in the new member account. If you don't specify this parameter, the role name defaults to <code>OrganizationAccountAccessRole</code>. For more information about how to use this role to access the member account, see <a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_accounts_access.html#orgs_manage_accounts_create-cross-account-role">Accessing and Administering the Member Accounts in Your Organization</a> in the <i>AWS Organizations User Guide</i> and steps 2 and 3 in <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_cross-account-with-roles.html">Tutorial: Delegate Access Across AWS Accounts Using IAM Roles</a> in the <i>IAM User Guide.</i>  The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> that is used to validate this parameter. The pattern can include uppercase letters, lowercase letters, digits with no spaces, and any of the following characters: =,.@-<br/>AccountName:  The friendly name of the member account.<br/>Email:  The email address of the owner to assign to the new member account in the commercial Region. This email address must not already be associated with another AWS account. You must use a valid email address to complete account creation. You can't access the root user of the account or remove an account that was created with an invalid email address. Like all request parameters for <code>CreateGovCloudAccount</code>, the request for the email address for the AWS GovCloud (US) account originates from the commercial Region, not from the AWS GovCloud (US) Region.<br/>
        :return: CreateAccountStatus:  Contains the status about a <a>CreateAccount</a> or <a>CreateGovCloudAccount</a> request to create an AWS account or an AWS GovCloud (US) account in an organization.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FailureReason</i> If the request failed, a description of the reason for the failure. <ul> <li> ACCOUNT_LIMIT_EXCEEDED: The account couldn't be created because you reached the limit on the number of accounts in your organization. </li> <li> CONCURRENT_ACCOUNT_MODIFICATION: You already submitted a request with the same information. </li> <li> EMAIL_ALREADY_EXISTS: The account could not be created because another AWS account with that email address already exists. </li> <li> FAILED_BUSINESS_VALIDATION: The AWS account that owns your organization failed to receive business license validation. </li> <li> GOVCLOUD_ACCOUNT_ALREADY_EXISTS: The account in the AWS GovCloud (US) Region could not be created because this Region already includes an account with that email address. </li> <li> IDENTITY_INVALID_BUSINESS_VALIDATION: The AWS account that owns your organization can't complete business license validation because it doesn't have valid identity data. </li> <li> INVALID_ADDRESS: The account could not be created because the address you provided is not valid. </li> <li> INVALID_EMAIL: The account could not be created because the email address you provided is not valid. </li> <li> INTERNAL_FAILURE: The account could not be created because of an internal failure. Try again later. If the problem persists, contact AWS Customer Support. </li> <li> MISSING_BUSINESS_VALIDATION: The AWS account that owns your organization has not received Business Validation. </li> <li>  MISSING_PAYMENT_INSTRUMENT: You must configure the management account with a valid payment method, such as a credit card. </li> <li> PENDING_BUSINESS_VALIDATION: The AWS account that owns your organization is still in the process of completing business license validation. </li> <li> UNKNOWN_BUSINESS_VALIDATION: The AWS account that owns your organization has an unknown issue with business license validation. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GovCloudAccountId</i> If the account was created successfully, the unique identifier (ID) of the new account in the AWS GovCloud (US) Region.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccountId</i> If the account was created successfully, the unique identifier (ID) of the new account. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> for an account ID string requires exactly 12 digits.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CompletedTimestamp</i> The date and time that the account was created and the request completed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequestedTimestamp</i> The date and time that the request was made for the account creation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The status of the asynchronous request to create an AWS account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccountName</i> The account name given to the account when it was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The unique identifier (ID) that references this request. You get this value from the response of the initial <a>CreateAccount</a> request to create the account. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> for a create account request ID string requires "car-" followed by from 8 to 32 lowercase letters or digits.<br/>        """
        pass

    def create_organization(self, FeatureSet: str=None) -> CreateOrganizationResponse:
        r"""Creates an AWS organization. The account whose user is calling the <code>CreateOrganization</code> operation automatically becomes the <a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_getting-started_concepts.html#account">management account</a> of the new organization. This operation must be called using credentials from the account that is to become the new organization's management account. The principal must also have the relevant IAM permissions. By default (or if you set the <code>FeatureSet</code> parameter to <code>ALL</code>), the new organization is created with all features enabled and service control policies automatically enabled in the root. If you instead choose to create the organization supporting only the consolidated billing features by setting the <code>FeatureSet</code> parameter to <code>CONSOLIDATED_BILLING"</code>, no policy types are enabled by default, and you can't use organization policies

        :param self:
        :param FeatureSet:  Specifies the feature set supported by the new organization. Each feature set supports different levels of functionality. <ul> <li>  <code>CONSOLIDATED_BILLING</code>: All member accounts have their bills consolidated to and paid by the management account. For more information, see <a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_getting-started_concepts.html#feature-set-cb-only">Consolidated billing</a> in the <i>AWS Organizations User Guide.</i>   The consolidated billing feature subset isn't available for organizations in the AWS GovCloud (US) Region. </li> <li>  <code>ALL</code>: In addition to all the features supported by the consolidated billing feature set, the management account can also apply any policy type to any member account in the organization. For more information, see <a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_getting-started_concepts.html#feature-set-all">All features</a> in the <i>AWS Organizations User Guide.</i>  </li> </ul><br/>
        :return: Organization:  A structure that contains details about the newly created organization.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailablePolicyTypes</i> <important> Do not use. This field is deprecated and doesn't provide complete information about the policies in your organization. </important> To determine the policies that are enabled and available for use in your organization, use the <a>ListRoots</a> operation instead.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterAccountEmail</i> The email address that is associated with the AWS account that is designated as the management account for the organization.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterAccountId</i> The unique identifier (ID) of the management account of an organization. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> for an account ID string requires exactly 12 digits.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterAccountArn</i> The Amazon Resource Name (ARN) of the account that is designated as the management account for the organization. For more information about ARNs in Organizations, see <a href="https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsorganizations.html#awsorganizations-resources-for-iam-policies">ARN Formats Supported by Organizations</a> in the <i>AWS Service Authorization Reference</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FeatureSet</i> Specifies the functionality that currently is available to the organization. If set to "ALL", then all features are enabled and policies can be applied to accounts in the organization. If set to "CONSOLIDATED_BILLING", then only consolidated billing functionality is available. For more information, see <a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_org_support-all-features.html">Enabling All Features in Your Organization</a> in the <i>AWS Organizations User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of an organization. For more information about ARNs in Organizations, see <a href="https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsorganizations.html#awsorganizations-resources-for-iam-policies">ARN Formats Supported by Organizations</a> in the <i>AWS Service Authorization Reference</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The unique identifier (ID) of an organization. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> for an organization ID string requires "o-" followed by from 10 to 32 lowercase letters or digits.<br/>        """
        pass

    def create_organizational_unit(self, Name: str, ParentId: str, Tags: List[Tag]=None) -> CreateOrganizationalUnitResponse:
        r"""Creates an organizational unit (OU) within a root or parent OU. An OU is a container for accounts that enables you to organize your accounts to apply policies according to your business requirements. The number of levels deep that you can nest OUs is dependent upon the policy types enabled for that root. For service control policies, the limit is five. For more information about OUs, see <a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_ous.html">Managing Organizational Units</a> in the <i>AWS Organizations User Guide.</i>  If the request includes tags, then the requester must have the <code>organizations:TagResource</code> permission. This operation can be called only from the organization's management account.

        :param self:
        :param Tags:  A list of tags that you want to attach to the newly created OU. For each tag in the list, you must specify both a tag key and a value. You can set the value to an empty string, but you can't set it to <code>null</code>. For more information about tagging, see <a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_tagging.html">Tagging AWS Organizations resources</a> in the AWS Organizations User Guide. <note> If any one of the tags is invalid or if you exceed the allowed number of tags for an OU, then the entire request fails and the OU is not created. </note><br/>Name:  The friendly name to assign to the new OU.<br/>ParentId:  The unique identifier (ID) of the parent root or OU that you want to create the new OU in. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> for a parent ID string requires one of the following: <ul> <li>  <b>Root</b> - A string that begins with "r-" followed by from 4 to 32 lowercase letters or digits. </li> <li>  <b>Organizational unit (OU)</b> - A string that begins with "ou-" followed by from 4 to 32 lowercase letters or digits (the ID of the root that the OU is in). This string is followed by a second "-" dash and from 8 to 32 additional lowercase letters or digits. </li> </ul><br/>
        :return: OrganizationalUnit:  A structure that contains details about the newly created OU.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The friendly name of this OU. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> that is used to validate this parameter is a string of any of the characters in the ASCII character range.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of this OU. For more information about ARNs in Organizations, see <a href="https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsorganizations.html#awsorganizations-resources-for-iam-policies">ARN Formats Supported by Organizations</a> in the <i>AWS Service Authorization Reference</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The unique identifier (ID) associated with this OU. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> for an organizational unit ID string requires "ou-" followed by from 4 to 32 lowercase letters or digits (the ID of the root that contains the OU). This string is followed by a second "-" dash and from 8 to 32 additional lowercase letters or digits.<br/>        """
        pass

    def create_policy(self, Type: str, Name: str, Description: str, Content: str, Tags: List[Tag]=None) -> CreatePolicyResponse:
        r"""Creates a policy of a specified type that you can attach to a root, an organizational unit (OU), or an individual AWS account. For more information about policies and their use, see <a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies.html">Managing Organization Policies</a>. If the request includes tags, then the requester must have the <code>organizations:TagResource</code> permission. This operation can be called only from the organization's management account.

        :param self:
        :param Tags:  A list of tags that you want to attach to the newly created policy. For each tag in the list, you must specify both a tag key and a value. You can set the value to an empty string, but you can't set it to <code>null</code>. For more information about tagging, see <a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_tagging.html">Tagging AWS Organizations resources</a> in the AWS Organizations User Guide. <note> If any one of the tags is invalid or if you exceed the allowed number of tags for a policy, then the entire request fails and the policy is not created. </note><br/>Type:  The type of policy to create. You can specify one of the following values: <ul> <li>  <a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_ai-opt-out.html">AISERVICES_OPT_OUT_POLICY</a>  </li> <li>  <a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_backup.html">BACKUP_POLICY</a>  </li> <li>  <a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scp.html">SERVICE_CONTROL_POLICY</a>  </li> <li>  <a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_tag-policies.html">TAG_POLICY</a>  </li> </ul><br/>Name:  The friendly name to assign to the policy. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> that is used to validate this parameter is a string of any of the characters in the ASCII character range.<br/>Description:  An optional description to assign to the policy.<br/>Content:  The policy text content to add to the new policy. The text that you supply must adhere to the rules of the policy type you specify in the <code>Type</code> parameter.<br/>
        :return: Policy:  A structure that contains details about the newly created policy.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Content</i> The text content of the policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PolicySummary</i> A structure that contains additional details about the policy.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PolicySummary</b>: A structure that contains additional details about the policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AwsManaged</i> A boolean value that indicates whether the specified policy is an AWS managed policy. If true, then you can attach the policy to roots, OUs, or accounts, but you cannot edit it.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The friendly name of the policy. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> that is used to validate this parameter is a string of any of the characters in the ASCII character range.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the policy. For more information about ARNs in Organizations, see <a href="https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsorganizations.html#awsorganizations-resources-for-iam-policies">ARN Formats Supported by Organizations</a> in the <i>AWS Service Authorization Reference</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The unique identifier (ID) of the policy. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> for a policy ID string requires "p-" followed by from 8 to 128 lowercase or uppercase letters, digits, or the underscore character (_).<br/>        """
        pass

    def decline_handshake(self, HandshakeId: str) -> DeclineHandshakeResponse:
        r"""Declines a handshake request. This sets the handshake state to <code>DECLINED</code> and effectively deactivates the request. This operation can be called only from the account that received the handshake. The originator of the handshake can use <a>CancelHandshake</a> instead. The originator can't reactivate a declined request, but can reinitiate the process with a new handshake request. After you decline a handshake, it continues to appear in the results of relevant APIs for only 30 days. After that, it's deleted.

        :param self:
        :param HandshakeId:  The unique identifier (ID) of the handshake that you want to decline. You can get the ID from the <a>ListHandshakesForAccount</a> operation. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> for handshake ID string requires "h-" followed by from 8 to 32 lowercase letters or digits.<br/>
        :return: Handshake:  A structure that contains details about the declined handshake. The state is updated to show the value <code>DECLINED</code>.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Resources</i> Additional information that is needed to process the handshake.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Action</i> The type of handshake, indicating what action occurs when the recipient accepts the handshake. The following handshake types are supported: <ul> <li>  <b>INVITE</b>: This type of handshake represents a request to join an organization. It is always sent from the management account to only non-member accounts. </li> <li>  <b>ENABLE_ALL_FEATURES</b>: This type of handshake represents a request to enable all features in an organization. It is always sent from the management account to only <i>invited</i> member accounts. Created accounts do not receive this because those accounts were created by the organization's management account and approval is inferred. </li> <li>  <b>APPROVE_ALL_FEATURES</b>: This type of handshake is sent from the Organizations service when all member accounts have approved the <code>ENABLE_ALL_FEATURES</code> invitation. It is sent only to the management account and signals the master that it can finalize the process to enable all features. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExpirationTimestamp</i> The date and time that the handshake expires. If the recipient of the handshake request fails to respond before the specified date and time, the handshake becomes inactive and is no longer valid.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequestedTimestamp</i> The date and time that the handshake request was made.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The current state of the handshake. Use the state to trace the flow of the handshake through the process from its creation to its acceptance. The meaning of each of the valid values is as follows: <ul> <li>  <b>REQUESTED</b>: This handshake was sent to multiple recipients (applicable to only some handshake types) and not all recipients have responded yet. The request stays in this state until all recipients respond. </li> <li>  <b>OPEN</b>: This handshake was sent to multiple recipients (applicable to only some policy types) and all recipients have responded, allowing the originator to complete the handshake action. </li> <li>  <b>CANCELED</b>: This handshake is no longer active because it was canceled by the originating account. </li> <li>  <b>ACCEPTED</b>: This handshake is complete because it has been accepted by the recipient. </li> <li>  <b>DECLINED</b>: This handshake is no longer active because it was declined by the recipient account. </li> <li>  <b>EXPIRED</b>: This handshake is no longer active because the originator did not receive a response of any kind from the recipient before the expiration time (15 days). </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Parties</i> Information about the two accounts that are participating in the handshake.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of a handshake. For more information about ARNs in Organizations, see <a href="https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsorganizations.html#awsorganizations-resources-for-iam-policies">ARN Formats Supported by Organizations</a> in the <i>AWS Service Authorization Reference</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The unique identifier (ID) of a handshake. The originating account creates the ID when it initiates the handshake. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> for handshake ID string requires "h-" followed by from 8 to 32 lowercase letters or digits.<br/>        """
        pass

    def delete_organization(self):
        r"""Deletes the organization. You can delete an organization only by using credentials from the management account. The organization must be empty of member accounts.

        :param self:
        :param 
        :return:         """
        pass

    def delete_organizational_unit(self, OrganizationalUnitId: str):
        r"""Deletes an organizational unit (OU) from a root or another OU. You must first remove all accounts and child OUs from the OU that you want to delete. This operation can be called only from the organization's management account.

        :param self:
        :param OrganizationalUnitId:  The unique identifier (ID) of the organizational unit that you want to delete. You can get the ID from the <a>ListOrganizationalUnitsForParent</a> operation. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> for an organizational unit ID string requires "ou-" followed by from 4 to 32 lowercase letters or digits (the ID of the root that contains the OU). This string is followed by a second "-" dash and from 8 to 32 additional lowercase letters or digits.<br/>
        :return:         """
        pass

    def delete_policy(self, PolicyId: str):
        r"""Deletes the specified policy from your organization. Before you perform this operation, you must first detach the policy from all organizational units (OUs), roots, and accounts. This operation can be called only from the organization's management account.

        :param self:
        :param PolicyId:  The unique identifier (ID) of the policy that you want to delete. You can get the ID from the <a>ListPolicies</a> or <a>ListPoliciesForTarget</a> operations. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> for a policy ID string requires "p-" followed by from 8 to 128 lowercase or uppercase letters, digits, or the underscore character (_).<br/>
        :return:         """
        pass

    def deregister_delegated_administrator(self, ServicePrincipal: str, AccountId: str):
        r"""Removes the specified member AWS account as a delegated administrator for the specified AWS service. <important> Deregistering a delegated administrator can have unintended impacts on the functionality of the enabled AWS service. See the documentation for the enabled service before you deregister a delegated administrator so that you understand any potential impacts. </important> You can run this action only for AWS services that support this feature. For a current list of services that support it, see the column <i>Supports Delegated Administrator</i> in the table at <a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_integrate_services_list.html">AWS Services that you can use with AWS Organizations</a> in the <i>AWS Organizations User Guide.</i>  This operation can be called only from the organization's management account.

        :param self:
        :param ServicePrincipal:  The service principal name of an AWS service for which the account is a delegated administrator. Delegated administrator privileges are revoked for only the specified AWS service from the member account. If the specified service is the only service for which the member account is a delegated administrator, the operation also revokes Organizations read action permissions.<br/>AccountId:  The account ID number of the member account in the organization that you want to deregister as a delegated administrator.<br/>
        :return:         """
        pass

    def describe_account(self, AccountId: str) -> DescribeAccountResponse:
        r"""Retrieves AWS Organizations-related information about the specified account. This operation can be called only from the organization's management account or by a member account that is a delegated administrator for an AWS service.

        :param self:
        :param AccountId:  The unique identifier (ID) of the AWS account that you want information about. You can get the ID from the <a>ListAccounts</a> or <a>ListAccountsForParent</a> operations. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> for an account ID string requires exactly 12 digits.<br/>
        :return: Account:  A structure that contains information about the requested account.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JoinedTimestamp</i> The date the account became a part of the organization.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JoinedMethod</i> The method by which the account joined the organization.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the account in the organization.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The friendly name of the account. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> that is used to validate this parameter is a string of any of the characters in the ASCII character range.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Email</i> The email address associated with the AWS account. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> for this parameter is a string of characters that represents a standard internet email address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the account. For more information about ARNs in Organizations, see <a href="https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsorganizations.html#awsorganizations-resources-for-iam-policies">ARN Formats Supported by Organizations</a> in the <i>AWS Service Authorization Reference</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The unique identifier (ID) of the account. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> for an account ID string requires exactly 12 digits.<br/>        """
        pass

    def describe_create_account_status(self, CreateAccountRequestId: str) -> DescribeCreateAccountStatusResponse:
        r"""Retrieves the current status of an asynchronous request to create an account. This operation can be called only from the organization's management account or by a member account that is a delegated administrator for an AWS service.

        :param self:
        :param CreateAccountRequestId:  Specifies the <code>Id</code> value that uniquely identifies the <code>CreateAccount</code> request. You can get the value from the <code>CreateAccountStatus.Id</code> response in an earlier <a>CreateAccount</a> request, or from the <a>ListCreateAccountStatus</a> operation. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> for a create account request ID string requires "car-" followed by from 8 to 32 lowercase letters or digits.<br/>
        :return: CreateAccountStatus:  A structure that contains the current status of an account creation request.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FailureReason</i> If the request failed, a description of the reason for the failure. <ul> <li> ACCOUNT_LIMIT_EXCEEDED: The account couldn't be created because you reached the limit on the number of accounts in your organization. </li> <li> CONCURRENT_ACCOUNT_MODIFICATION: You already submitted a request with the same information. </li> <li> EMAIL_ALREADY_EXISTS: The account could not be created because another AWS account with that email address already exists. </li> <li> FAILED_BUSINESS_VALIDATION: The AWS account that owns your organization failed to receive business license validation. </li> <li> GOVCLOUD_ACCOUNT_ALREADY_EXISTS: The account in the AWS GovCloud (US) Region could not be created because this Region already includes an account with that email address. </li> <li> IDENTITY_INVALID_BUSINESS_VALIDATION: The AWS account that owns your organization can't complete business license validation because it doesn't have valid identity data. </li> <li> INVALID_ADDRESS: The account could not be created because the address you provided is not valid. </li> <li> INVALID_EMAIL: The account could not be created because the email address you provided is not valid. </li> <li> INTERNAL_FAILURE: The account could not be created because of an internal failure. Try again later. If the problem persists, contact AWS Customer Support. </li> <li> MISSING_BUSINESS_VALIDATION: The AWS account that owns your organization has not received Business Validation. </li> <li>  MISSING_PAYMENT_INSTRUMENT: You must configure the management account with a valid payment method, such as a credit card. </li> <li> PENDING_BUSINESS_VALIDATION: The AWS account that owns your organization is still in the process of completing business license validation. </li> <li> UNKNOWN_BUSINESS_VALIDATION: The AWS account that owns your organization has an unknown issue with business license validation. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GovCloudAccountId</i> If the account was created successfully, the unique identifier (ID) of the new account in the AWS GovCloud (US) Region.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccountId</i> If the account was created successfully, the unique identifier (ID) of the new account. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> for an account ID string requires exactly 12 digits.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CompletedTimestamp</i> The date and time that the account was created and the request completed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequestedTimestamp</i> The date and time that the request was made for the account creation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The status of the asynchronous request to create an AWS account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccountName</i> The account name given to the account when it was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The unique identifier (ID) that references this request. You get this value from the response of the initial <a>CreateAccount</a> request to create the account. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> for a create account request ID string requires "car-" followed by from 8 to 32 lowercase letters or digits.<br/>        """
        pass

    def describe_effective_policy(self, PolicyType: str, TargetId: str=None) -> DescribeEffectivePolicyResponse:
        r"""Returns the contents of the effective policy for specified policy type and account. The effective policy is the aggregation of any policies of the specified type that the account inherits, plus any policy of that type that is directly attached to the account. This operation applies only to policy types <i>other</i> than service control policies (SCPs). For more information about policy inheritance, see <a href="http://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies-inheritance.html">How Policy Inheritance Works</a> in the <i>AWS Organizations User Guide</i>. This operation can be called only from the organization's management account or by a member account that is a delegated administrator for an AWS service.

        :param self:
        :param TargetId:  When you're signed in as the management account, specify the ID of the account that you want details about. Specifying an organization root or organizational unit (OU) as the target is not supported.<br/>PolicyType:  The type of policy that you want information about. You can specify one of the following values: <ul> <li>  <a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_ai-opt-out.html">AISERVICES_OPT_OUT_POLICY</a>  </li> <li>  <a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_backup.html">BACKUP_POLICY</a>  </li> <li>  <a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_tag-policies.html">TAG_POLICY</a>  </li> </ul><br/>
        :return: EffectivePolicy:  The contents of the effective policy.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PolicyType</i> The policy type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetId</i> The account ID of the policy target. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdatedTimestamp</i> The time of the last update to this policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PolicyContent</i> The text content of the policy.<br/>        """
        pass

    def describe_handshake(self, HandshakeId: str) -> DescribeHandshakeResponse:
        r"""Retrieves information about a previously requested handshake. The handshake ID comes from the response to the original <a>InviteAccountToOrganization</a> operation that generated the handshake. You can access handshakes that are <code>ACCEPTED</code>, <code>DECLINED</code>, or <code>CANCELED</code> for only 30 days after they change to that state. They're then deleted and no longer accessible. This operation can be called from any account in the organization.

        :param self:
        :param HandshakeId:  The unique identifier (ID) of the handshake that you want information about. You can get the ID from the original call to <a>InviteAccountToOrganization</a>, or from a call to <a>ListHandshakesForAccount</a> or <a>ListHandshakesForOrganization</a>. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> for handshake ID string requires "h-" followed by from 8 to 32 lowercase letters or digits.<br/>
        :return: Handshake:  A structure that contains information about the specified handshake.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Resources</i> Additional information that is needed to process the handshake.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Action</i> The type of handshake, indicating what action occurs when the recipient accepts the handshake. The following handshake types are supported: <ul> <li>  <b>INVITE</b>: This type of handshake represents a request to join an organization. It is always sent from the management account to only non-member accounts. </li> <li>  <b>ENABLE_ALL_FEATURES</b>: This type of handshake represents a request to enable all features in an organization. It is always sent from the management account to only <i>invited</i> member accounts. Created accounts do not receive this because those accounts were created by the organization's management account and approval is inferred. </li> <li>  <b>APPROVE_ALL_FEATURES</b>: This type of handshake is sent from the Organizations service when all member accounts have approved the <code>ENABLE_ALL_FEATURES</code> invitation. It is sent only to the management account and signals the master that it can finalize the process to enable all features. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExpirationTimestamp</i> The date and time that the handshake expires. If the recipient of the handshake request fails to respond before the specified date and time, the handshake becomes inactive and is no longer valid.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequestedTimestamp</i> The date and time that the handshake request was made.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The current state of the handshake. Use the state to trace the flow of the handshake through the process from its creation to its acceptance. The meaning of each of the valid values is as follows: <ul> <li>  <b>REQUESTED</b>: This handshake was sent to multiple recipients (applicable to only some handshake types) and not all recipients have responded yet. The request stays in this state until all recipients respond. </li> <li>  <b>OPEN</b>: This handshake was sent to multiple recipients (applicable to only some policy types) and all recipients have responded, allowing the originator to complete the handshake action. </li> <li>  <b>CANCELED</b>: This handshake is no longer active because it was canceled by the originating account. </li> <li>  <b>ACCEPTED</b>: This handshake is complete because it has been accepted by the recipient. </li> <li>  <b>DECLINED</b>: This handshake is no longer active because it was declined by the recipient account. </li> <li>  <b>EXPIRED</b>: This handshake is no longer active because the originator did not receive a response of any kind from the recipient before the expiration time (15 days). </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Parties</i> Information about the two accounts that are participating in the handshake.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of a handshake. For more information about ARNs in Organizations, see <a href="https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsorganizations.html#awsorganizations-resources-for-iam-policies">ARN Formats Supported by Organizations</a> in the <i>AWS Service Authorization Reference</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The unique identifier (ID) of a handshake. The originating account creates the ID when it initiates the handshake. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> for handshake ID string requires "h-" followed by from 8 to 32 lowercase letters or digits.<br/>        """
        pass

    def describe_organization(self) -> DescribeOrganizationResponse:
        r"""Retrieves information about the organization that the user's account belongs to. This operation can be called from any account in the organization. <note> Even if a policy type is shown as available in the organization, you can disable it separately at the root level with <a>DisablePolicyType</a>. Use <a>ListRoots</a> to see the status of policy types for a specified root. </note>

        :param self:
        :param 
        :return: Organization:  A structure that contains information about the organization. <important> The <code>AvailablePolicyTypes</code> part of the response is deprecated, and you shouldn't use it in your apps. It doesn't include any policy type supported by Organizations other than SCPs. To determine which policy types are enabled in your organization, use the <code> <a>ListRoots</a> </code> operation. </important>:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailablePolicyTypes</i> <important> Do not use. This field is deprecated and doesn't provide complete information about the policies in your organization. </important> To determine the policies that are enabled and available for use in your organization, use the <a>ListRoots</a> operation instead.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterAccountEmail</i> The email address that is associated with the AWS account that is designated as the management account for the organization.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterAccountId</i> The unique identifier (ID) of the management account of an organization. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> for an account ID string requires exactly 12 digits.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterAccountArn</i> The Amazon Resource Name (ARN) of the account that is designated as the management account for the organization. For more information about ARNs in Organizations, see <a href="https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsorganizations.html#awsorganizations-resources-for-iam-policies">ARN Formats Supported by Organizations</a> in the <i>AWS Service Authorization Reference</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FeatureSet</i> Specifies the functionality that currently is available to the organization. If set to "ALL", then all features are enabled and policies can be applied to accounts in the organization. If set to "CONSOLIDATED_BILLING", then only consolidated billing functionality is available. For more information, see <a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_org_support-all-features.html">Enabling All Features in Your Organization</a> in the <i>AWS Organizations User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of an organization. For more information about ARNs in Organizations, see <a href="https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsorganizations.html#awsorganizations-resources-for-iam-policies">ARN Formats Supported by Organizations</a> in the <i>AWS Service Authorization Reference</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The unique identifier (ID) of an organization. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> for an organization ID string requires "o-" followed by from 10 to 32 lowercase letters or digits.<br/>        """
        pass

    def describe_organizational_unit(self, OrganizationalUnitId: str) -> DescribeOrganizationalUnitResponse:
        r"""Retrieves information about an organizational unit (OU). This operation can be called only from the organization's management account or by a member account that is a delegated administrator for an AWS service.

        :param self:
        :param OrganizationalUnitId:  The unique identifier (ID) of the organizational unit that you want details about. You can get the ID from the <a>ListOrganizationalUnitsForParent</a> operation. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> for an organizational unit ID string requires "ou-" followed by from 4 to 32 lowercase letters or digits (the ID of the root that contains the OU). This string is followed by a second "-" dash and from 8 to 32 additional lowercase letters or digits.<br/>
        :return: OrganizationalUnit:  A structure that contains details about the specified OU.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The friendly name of this OU. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> that is used to validate this parameter is a string of any of the characters in the ASCII character range.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of this OU. For more information about ARNs in Organizations, see <a href="https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsorganizations.html#awsorganizations-resources-for-iam-policies">ARN Formats Supported by Organizations</a> in the <i>AWS Service Authorization Reference</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The unique identifier (ID) associated with this OU. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> for an organizational unit ID string requires "ou-" followed by from 4 to 32 lowercase letters or digits (the ID of the root that contains the OU). This string is followed by a second "-" dash and from 8 to 32 additional lowercase letters or digits.<br/>        """
        pass

    def describe_policy(self, PolicyId: str) -> DescribePolicyResponse:
        r"""Retrieves information about a policy. This operation can be called only from the organization's management account or by a member account that is a delegated administrator for an AWS service.

        :param self:
        :param PolicyId:  The unique identifier (ID) of the policy that you want details about. You can get the ID from the <a>ListPolicies</a> or <a>ListPoliciesForTarget</a> operations. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> for a policy ID string requires "p-" followed by from 8 to 128 lowercase or uppercase letters, digits, or the underscore character (_).<br/>
        :return: Policy:  A structure that contains details about the specified policy.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Content</i> The text content of the policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PolicySummary</i> A structure that contains additional details about the policy.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PolicySummary</b>: A structure that contains additional details about the policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AwsManaged</i> A boolean value that indicates whether the specified policy is an AWS managed policy. If true, then you can attach the policy to roots, OUs, or accounts, but you cannot edit it.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The friendly name of the policy. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> that is used to validate this parameter is a string of any of the characters in the ASCII character range.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the policy. For more information about ARNs in Organizations, see <a href="https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsorganizations.html#awsorganizations-resources-for-iam-policies">ARN Formats Supported by Organizations</a> in the <i>AWS Service Authorization Reference</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The unique identifier (ID) of the policy. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> for a policy ID string requires "p-" followed by from 8 to 128 lowercase or uppercase letters, digits, or the underscore character (_).<br/>        """
        pass

    def detach_policy(self, TargetId: str, PolicyId: str):
        r"""Detaches a policy from a target root, organizational unit (OU), or account. <important> If the policy being detached is a service control policy (SCP), the changes to permissions for AWS Identity and Access Management (IAM) users and roles in affected accounts are immediate. </important> Every root, OU, and account must have at least one SCP attached. If you want to replace the default <code>FullAWSAccess</code> policy with an SCP that limits the permissions that can be delegated, you must attach the replacement SCP before you can remove the default SCP. This is the authorization strategy of an "<a href="https://docs.aws.amazon.com/organizations/latest/userguide/SCP_strategies.html#orgs_policies_allowlist">allow list</a>". If you instead attach a second SCP and leave the <code>FullAWSAccess</code> SCP still attached, and specify <code>"Effect": "Deny"</code> in the second SCP to override the <code>"Effect": "Allow"</code> in the <code>FullAWSAccess</code> policy (or any other attached SCP), you're using the authorization strategy of a "<a href="https://docs.aws.amazon.com/organizations/latest/userguide/SCP_strategies.html#orgs_policies_denylist">deny list</a>". This operation can be called only from the organization's management account.

        :param self:
        :param TargetId:  The unique identifier (ID) of the root, OU, or account that you want to detach the policy from. You can get the ID from the <a>ListRoots</a>, <a>ListOrganizationalUnitsForParent</a>, or <a>ListAccounts</a> operations. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> for a target ID string requires one of the following: <ul> <li>  <b>Root</b> - A string that begins with "r-" followed by from 4 to 32 lowercase letters or digits. </li> <li>  <b>Account</b> - A string that consists of exactly 12 digits. </li> <li>  <b>Organizational unit (OU)</b> - A string that begins with "ou-" followed by from 4 to 32 lowercase letters or digits (the ID of the root that the OU is in). This string is followed by a second "-" dash and from 8 to 32 additional lowercase letters or digits. </li> </ul><br/>PolicyId:  The unique identifier (ID) of the policy you want to detach. You can get the ID from the <a>ListPolicies</a> or <a>ListPoliciesForTarget</a> operations. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> for a policy ID string requires "p-" followed by from 8 to 128 lowercase or uppercase letters, digits, or the underscore character (_).<br/>
        :return:         """
        pass

    def disable_aws_service_access(self, ServicePrincipal: str):
        r"""Disables the integration of an AWS service (the service that is specified by <code>ServicePrincipal</code>) with AWS Organizations. When you disable integration, the specified service no longer can create a <a href="http://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html">service-linked role</a> in <i>new</i> accounts in your organization. This means the service can't perform operations on your behalf on any new accounts in your organization. The service can still perform operations in older accounts until the service completes its clean-up from AWS Organizations. <important> We <b> <i>strongly recommend</i> </b> that you don't use this command to disable integration between AWS Organizations and the specified AWS service. Instead, use the console or commands that are provided by the specified service. This lets the trusted service perform any required initialization when enabling trusted access, such as creating any required resources and any required clean up of resources when disabling trusted access.  For information about how to disable trusted service access to your organization using the trusted service, see the <b>Learn more</b> link under the <b>Supports Trusted Access</b> column at <a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_integrate_services_list.html">AWS services that you can use with AWS Organizations</a>. on this page. If you disable access by using this command, it causes the following actions to occur: <ul> <li> The service can no longer create a service-linked role in the accounts in your organization. This means that the service can't perform operations on your behalf on any new accounts in your organization. The service can still perform operations in older accounts until the service completes its clean-up from AWS Organizations.  </li> <li> The service can no longer perform tasks in the member accounts in the organization, unless those operations are explicitly permitted by the IAM policies that are attached to your roles. This includes any data aggregation from the member accounts to the management account, or to a delegated administrator account, where relevant. </li> <li> Some services detect this and clean up any remaining data or resources related to the integration, while other services stop accessing the organization but leave any historical data and configuration in place to support a possible re-enabling of the integration. </li> </ul> Using the other service's console or commands to disable the integration ensures that the other service is aware that it can clean up any resources that are required only for the integration. How the service cleans up its resources in the organization's accounts depends on that service. For more information, see the documentation for the other AWS service.  </important> After you perform the <code>DisableAWSServiceAccess</code> operation, the specified service can no longer perform operations in your organization's accounts  For more information about integrating other services with AWS Organizations, including the list of services that work with Organizations, see <a href="http://docs.aws.amazon.com/organizations/latest/userguide/orgs_integrate_services.html">Integrating AWS Organizations with Other AWS Services</a> in the <i>AWS Organizations User Guide.</i>  This operation can be called only from the organization's management account.

        :param self:
        :param ServicePrincipal:  The service principal name of the AWS service for which you want to disable integration with your organization. This is typically in the form of a URL, such as <code> <i>service-abbreviation</i>.amazonaws.com</code>.<br/>
        :return:         """
        pass

    def disable_policy_type(self, PolicyType: str, RootId: str) -> DisablePolicyTypeResponse:
        r"""Disables an organizational policy type in a root. A policy of a certain type can be attached to entities in a root only if that type is enabled in the root. After you perform this operation, you no longer can attach policies of the specified type to that root or to any organizational unit (OU) or account in that root. You can undo this by using the <a>EnablePolicyType</a> operation. This is an asynchronous request that AWS performs in the background. If you disable a policy type for a root, it still appears enabled for the organization if <a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_org_support-all-features.html">all features</a> are enabled for the organization. AWS recommends that you first use <a>ListRoots</a> to see the status of policy types for a specified root, and then use this operation. This operation can be called only from the organization's management account.  To view the status of available policy types in the organization, use <a>DescribeOrganization</a>.

        :param self:
        :param PolicyType:  The policy type that you want to disable in this root. You can specify one of the following values: <ul> <li>  <a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_ai-opt-out.html">AISERVICES_OPT_OUT_POLICY</a>  </li> <li>  <a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_backup.html">BACKUP_POLICY</a>  </li> <li>  <a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scp.html">SERVICE_CONTROL_POLICY</a>  </li> <li>  <a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_tag-policies.html">TAG_POLICY</a>  </li> </ul><br/>RootId:  The unique identifier (ID) of the root in which you want to disable a policy type. You can get the ID from the <a>ListRoots</a> operation. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> for a root ID string requires "r-" followed by from 4 to 32 lowercase letters or digits.<br/>
        :return: Root:  A structure that shows the root with the updated list of enabled policy types.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PolicyTypes</i> The types of policies that are currently enabled for the root and therefore can be attached to the root or to its OUs or accounts. <note> Even if a policy type is shown as available in the organization, you can separately enable and disable them at the root level by using <a>EnablePolicyType</a> and <a>DisablePolicyType</a>. Use <a>DescribeOrganization</a> to see the availability of the policy types in that organization. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The friendly name of the root. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> that is used to validate this parameter is a string of any of the characters in the ASCII character range.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the root. For more information about ARNs in Organizations, see <a href="https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsorganizations.html#awsorganizations-resources-for-iam-policies">ARN Formats Supported by Organizations</a> in the <i>AWS Service Authorization Reference</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The unique identifier (ID) for the root. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> for a root ID string requires "r-" followed by from 4 to 32 lowercase letters or digits.<br/>        """
        pass

    def enable_aws_service_access(self, ServicePrincipal: str):
        r"""Enables the integration of an AWS service (the service that is specified by <code>ServicePrincipal</code>) with AWS Organizations. When you enable integration, you allow the specified service to create a <a href="http://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html">service-linked role</a> in all the accounts in your organization. This allows the service to perform operations on your behalf in your organization and its accounts. <important> We recommend that you enable integration between AWS Organizations and the specified AWS service by using the console or commands that are provided by the specified service. Doing so ensures that the service is aware that it can create the resources that are required for the integration. How the service creates those resources in the organization's accounts depends on that service. For more information, see the documentation for the other AWS service. </important> For more information about enabling services to integrate with AWS Organizations, see <a href="http://docs.aws.amazon.com/organizations/latest/userguide/orgs_integrate_services.html">Integrating AWS Organizations with Other AWS Services</a> in the <i>AWS Organizations User Guide.</i>  This operation can be called only from the organization's management account and only if the organization has <a href="http://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_org_support-all-features.html">enabled all features</a>.

        :param self:
        :param ServicePrincipal:  The service principal name of the AWS service for which you want to enable integration with your organization. This is typically in the form of a URL, such as <code> <i>service-abbreviation</i>.amazonaws.com</code>.<br/>
        :return:         """
        pass

    def enable_all_features(self) -> EnableAllFeaturesResponse:
        r"""Enables all features in an organization. This enables the use of organization policies that can restrict the services and actions that can be called in each account. Until you enable all features, you have access only to consolidated billing, and you can't use any of the advanced account administration features that AWS Organizations supports. For more information, see <a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_org_support-all-features.html">Enabling All Features in Your Organization</a> in the <i>AWS Organizations User Guide.</i>  <important> This operation is required only for organizations that were created explicitly with only the consolidated billing features enabled. Calling this operation sends a handshake to every invited account in the organization. The feature set change can be finalized and the additional features enabled only after all administrators in the invited accounts approve the change by accepting the handshake. </important> After you enable all features, you can separately enable or disable individual policy types in a root using <a>EnablePolicyType</a> and <a>DisablePolicyType</a>. To see the status of policy types in a root, use <a>ListRoots</a>. After all invited member accounts accept the handshake, you finalize the feature set change by accepting the handshake that contains <code>"Action": "ENABLE_ALL_FEATURES"</code>. This completes the change. After you enable all features in your organization, the management account in the organization can apply policies on all member accounts. These policies can restrict what users and even administrators in those accounts can do. The management account can apply policies that prevent accounts from leaving the organization. Ensure that your account administrators are aware of this. This operation can be called only from the organization's management account.

        :param self:
        :param 
        :return: Handshake:  A structure that contains details about the handshake created to support this request to enable all features in the organization.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Resources</i> Additional information that is needed to process the handshake.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Action</i> The type of handshake, indicating what action occurs when the recipient accepts the handshake. The following handshake types are supported: <ul> <li>  <b>INVITE</b>: This type of handshake represents a request to join an organization. It is always sent from the management account to only non-member accounts. </li> <li>  <b>ENABLE_ALL_FEATURES</b>: This type of handshake represents a request to enable all features in an organization. It is always sent from the management account to only <i>invited</i> member accounts. Created accounts do not receive this because those accounts were created by the organization's management account and approval is inferred. </li> <li>  <b>APPROVE_ALL_FEATURES</b>: This type of handshake is sent from the Organizations service when all member accounts have approved the <code>ENABLE_ALL_FEATURES</code> invitation. It is sent only to the management account and signals the master that it can finalize the process to enable all features. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExpirationTimestamp</i> The date and time that the handshake expires. If the recipient of the handshake request fails to respond before the specified date and time, the handshake becomes inactive and is no longer valid.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequestedTimestamp</i> The date and time that the handshake request was made.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The current state of the handshake. Use the state to trace the flow of the handshake through the process from its creation to its acceptance. The meaning of each of the valid values is as follows: <ul> <li>  <b>REQUESTED</b>: This handshake was sent to multiple recipients (applicable to only some handshake types) and not all recipients have responded yet. The request stays in this state until all recipients respond. </li> <li>  <b>OPEN</b>: This handshake was sent to multiple recipients (applicable to only some policy types) and all recipients have responded, allowing the originator to complete the handshake action. </li> <li>  <b>CANCELED</b>: This handshake is no longer active because it was canceled by the originating account. </li> <li>  <b>ACCEPTED</b>: This handshake is complete because it has been accepted by the recipient. </li> <li>  <b>DECLINED</b>: This handshake is no longer active because it was declined by the recipient account. </li> <li>  <b>EXPIRED</b>: This handshake is no longer active because the originator did not receive a response of any kind from the recipient before the expiration time (15 days). </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Parties</i> Information about the two accounts that are participating in the handshake.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of a handshake. For more information about ARNs in Organizations, see <a href="https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsorganizations.html#awsorganizations-resources-for-iam-policies">ARN Formats Supported by Organizations</a> in the <i>AWS Service Authorization Reference</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The unique identifier (ID) of a handshake. The originating account creates the ID when it initiates the handshake. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> for handshake ID string requires "h-" followed by from 8 to 32 lowercase letters or digits.<br/>        """
        pass

    def enable_policy_type(self, PolicyType: str, RootId: str) -> EnablePolicyTypeResponse:
        r"""Enables a policy type in a root. After you enable a policy type in a root, you can attach policies of that type to the root, any organizational unit (OU), or account in that root. You can undo this by using the <a>DisablePolicyType</a> operation. This is an asynchronous request that AWS performs in the background. AWS recommends that you first use <a>ListRoots</a> to see the status of policy types for a specified root, and then use this operation. This operation can be called only from the organization's management account. You can enable a policy type in a root only if that policy type is available in the organization. To view the status of available policy types in the organization, use <a>DescribeOrganization</a>.

        :param self:
        :param PolicyType:  The policy type that you want to enable. You can specify one of the following values: <ul> <li>  <a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_ai-opt-out.html">AISERVICES_OPT_OUT_POLICY</a>  </li> <li>  <a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_backup.html">BACKUP_POLICY</a>  </li> <li>  <a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scp.html">SERVICE_CONTROL_POLICY</a>  </li> <li>  <a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_tag-policies.html">TAG_POLICY</a>  </li> </ul><br/>RootId:  The unique identifier (ID) of the root in which you want to enable a policy type. You can get the ID from the <a>ListRoots</a> operation. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> for a root ID string requires "r-" followed by from 4 to 32 lowercase letters or digits.<br/>
        :return: Root:  A structure that shows the root with the updated list of enabled policy types.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PolicyTypes</i> The types of policies that are currently enabled for the root and therefore can be attached to the root or to its OUs or accounts. <note> Even if a policy type is shown as available in the organization, you can separately enable and disable them at the root level by using <a>EnablePolicyType</a> and <a>DisablePolicyType</a>. Use <a>DescribeOrganization</a> to see the availability of the policy types in that organization. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The friendly name of the root. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> that is used to validate this parameter is a string of any of the characters in the ASCII character range.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the root. For more information about ARNs in Organizations, see <a href="https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsorganizations.html#awsorganizations-resources-for-iam-policies">ARN Formats Supported by Organizations</a> in the <i>AWS Service Authorization Reference</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The unique identifier (ID) for the root. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> for a root ID string requires "r-" followed by from 4 to 32 lowercase letters or digits.<br/>        """
        pass

    def invite_account_to_organization(self, Target: HandshakeParty, Notes: str=None, Tags: List[Tag]=None) -> InviteAccountToOrganizationResponse:
        r"""Sends an invitation to another account to join your organization as a member account. AWS Organizations sends email on your behalf to the email address that is associated with the other account's owner. The invitation is implemented as a <a>Handshake</a> whose details are in the response. <important> <ul> <li> You can invite AWS accounts only from the same seller as the management account. For example, if your organization's management account was created by Amazon Internet Services Pvt. Ltd (AISPL), an AWS seller in India, you can invite only other AISPL accounts to your organization. You can't combine accounts from AISPL and AWS or from any other AWS seller. For more information, see <a href="http://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/useconsolidatedbilliing-India.html">Consolidated Billing in India</a>. </li> <li> If you receive an exception that indicates that you exceeded your account limits for the organization or that the operation failed because your organization is still initializing, wait one hour and then try again. If the error persists after an hour, contact <a href="https://console.aws.amazon.com/support/home#/">AWS Support</a>. </li> </ul> </important> If the request includes tags, then the requester must have the <code>organizations:TagResource</code> permission. This operation can be called only from the organization's management account.

        :param self:
        :param Tags:  A list of tags that you want to attach to the account when it becomes a member of the organization. For each tag in the list, you must specify both a tag key and a value. You can set the value to an empty string, but you can't set it to <code>null</code>. For more information about tagging, see <a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_tagging.html">Tagging AWS Organizations resources</a> in the AWS Organizations User Guide. <important> Any tags in the request are checked for compliance with any applicable tag policies when the request is made. The request is rejected if the tags in the request don't match the requirements of the policy at that time. Tag policy compliance is <i> <b>not</b> </i> checked again when the invitation is accepted and the tags are actually attached to the account. That means that if the tag policy changes between the invitation and the acceptance, then that tags could potentially be non-compliant. </important> <note> If any one of the tags is invalid or if you exceed the allowed number of tags for an account, then the entire request fails and invitations are not sent. </note><br/>Notes:  Additional information that you want to include in the generated email to the recipient account owner.<br/>Target:  The identifier (ID) of the AWS account that you want to invite to join your organization. This is a JSON object that contains the following elements:  <code>{ "Type": "ACCOUNT", "Id": "&lt;<i> <b>account id number</b> </i>&gt;" }</code>  If you use the AWS CLI, you can submit this as a single string, similar to the following example:  <code>--target Id=123456789012,Type=ACCOUNT</code>  If you specify <code>"Type": "ACCOUNT"</code>, you must provide the AWS account ID number as the <code>Id</code>. If you specify <code>"Type": "EMAIL"</code>, you must specify the email address that is associated with the account.  <code>--target Id=diego@example.com,Type=EMAIL</code> :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of party.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The unique identifier (ID) for the party. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> for handshake ID string requires "h-" followed by from 8 to 32 lowercase letters or digits.<br/>
        :return: Handshake:  A structure that contains details about the handshake that is created to support this invitation request.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Resources</i> Additional information that is needed to process the handshake.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Action</i> The type of handshake, indicating what action occurs when the recipient accepts the handshake. The following handshake types are supported: <ul> <li>  <b>INVITE</b>: This type of handshake represents a request to join an organization. It is always sent from the management account to only non-member accounts. </li> <li>  <b>ENABLE_ALL_FEATURES</b>: This type of handshake represents a request to enable all features in an organization. It is always sent from the management account to only <i>invited</i> member accounts. Created accounts do not receive this because those accounts were created by the organization's management account and approval is inferred. </li> <li>  <b>APPROVE_ALL_FEATURES</b>: This type of handshake is sent from the Organizations service when all member accounts have approved the <code>ENABLE_ALL_FEATURES</code> invitation. It is sent only to the management account and signals the master that it can finalize the process to enable all features. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExpirationTimestamp</i> The date and time that the handshake expires. If the recipient of the handshake request fails to respond before the specified date and time, the handshake becomes inactive and is no longer valid.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequestedTimestamp</i> The date and time that the handshake request was made.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The current state of the handshake. Use the state to trace the flow of the handshake through the process from its creation to its acceptance. The meaning of each of the valid values is as follows: <ul> <li>  <b>REQUESTED</b>: This handshake was sent to multiple recipients (applicable to only some handshake types) and not all recipients have responded yet. The request stays in this state until all recipients respond. </li> <li>  <b>OPEN</b>: This handshake was sent to multiple recipients (applicable to only some policy types) and all recipients have responded, allowing the originator to complete the handshake action. </li> <li>  <b>CANCELED</b>: This handshake is no longer active because it was canceled by the originating account. </li> <li>  <b>ACCEPTED</b>: This handshake is complete because it has been accepted by the recipient. </li> <li>  <b>DECLINED</b>: This handshake is no longer active because it was declined by the recipient account. </li> <li>  <b>EXPIRED</b>: This handshake is no longer active because the originator did not receive a response of any kind from the recipient before the expiration time (15 days). </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Parties</i> Information about the two accounts that are participating in the handshake.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of a handshake. For more information about ARNs in Organizations, see <a href="https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsorganizations.html#awsorganizations-resources-for-iam-policies">ARN Formats Supported by Organizations</a> in the <i>AWS Service Authorization Reference</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The unique identifier (ID) of a handshake. The originating account creates the ID when it initiates the handshake. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> for handshake ID string requires "h-" followed by from 8 to 32 lowercase letters or digits.<br/>        """
        pass

    def leave_organization(self):
        r"""Removes a member account from its parent organization. This version of the operation is performed by the account that wants to leave. To remove a member account as a user in the management account, use <a>RemoveAccountFromOrganization</a> instead. This operation can be called only from a member account in the organization. <important> <ul> <li> The management account in an organization with all features enabled can set service control policies (SCPs) that can restrict what administrators of member accounts can do. This includes preventing them from successfully calling <code>LeaveOrganization</code> and leaving the organization. </li> <li> You can leave an organization as a member account only if the account is configured with the information required to operate as a standalone account. When you create an account in an organization using the AWS Organizations console, API, or CLI commands, the information required of standalone accounts is <i>not</i> automatically collected. For each account that you want to make standalone, you must perform the following steps. If any of the steps are already completed for this account, that step doesn't appear. <ul> <li> Choose a support plan </li> <li> Provide and verify the required contact information </li> <li> Provide a current payment method </li> </ul> AWS uses the payment method to charge for any billable (not free tier) AWS activity that occurs while the account isn't attached to an organization. Follow the steps at <a href="http://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_accounts_remove.html#leave-without-all-info"> To leave an organization when all required account information has not yet been provided</a> in the <i>AWS Organizations User Guide.</i>  </li> <li> The account that you want to leave must not be a delegated administrator account for any AWS service enabled for your organization. If the account is a delegated administrator, you must first change the delegated administrator account to another account that is remaining in the organization. </li> <li> You can leave an organization only after you enable IAM user access to billing in your account. For more information, see <a href="http://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/grantaccess.html#ControllingAccessWebsite-Activate">Activating Access to the Billing and Cost Management Console</a> in the <i>AWS Billing and Cost Management User Guide.</i>  </li> <li> After the account leaves the organization, all tags that were attached to the account object in the organization are deleted. AWS accounts outside of an organization do not support tags. </li> <li> A newly created account has a waiting period before it can be removed from its organization. If you get an error that indicates that a wait period is required, then try again in a few days. </li> </ul> </important>

        :param self:
        :param 
        :return:         """
        pass

    def list_aws_service_access_for_organization(self, NextToken: str=None, MaxResults: int=None) -> ListAWSServiceAccessForOrganizationResponse:
        r"""Returns a list of the AWS services that you enabled to integrate with your organization. After a service on this list creates the resources that it requires for the integration, it can perform operations on your organization and its accounts. For more information about integrating other services with AWS Organizations, including the list of services that currently work with Organizations, see <a href="http://docs.aws.amazon.com/organizations/latest/userguide/orgs_integrate_services.html">Integrating AWS Organizations with Other AWS Services</a> in the <i>AWS Organizations User Guide.</i>  This operation can be called only from the organization's management account or by a member account that is a delegated administrator for an AWS service.

        :param self:
        :param MaxResults:  The total number of results that you want included on each page of the response. If you do not include this parameter, it defaults to a value that is specific to the operation. If additional items exist beyond the maximum you specify, the <code>NextToken</code> response element is present and has a value (is not null). Include that value as the <code>NextToken</code> request parameter in the next call to the operation to get the next part of the results. Note that Organizations might return fewer results than the maximum even when there are more results available. You should check <code>NextToken</code> after every operation to ensure that you receive all of the results.<br/>NextToken:  The parameter for receiving additional results if you receive a <code>NextToken</code> response in a previous request. A <code>NextToken</code> response indicates that more output is available. Set this parameter to the value of the previous call's <code>NextToken</code> response to indicate where the output should continue from.<br/>
        :return: NextToken:  If present, indicates that more output is available than is included in the current response. Use this value in the <code>NextToken</code> request parameter in a subsequent call to the operation to get the next part of the output. You should repeat this until the <code>NextToken</code> response element comes back as <code>null</code>.<br/>EnabledServicePrincipals:  A list of the service principals for the services that are enabled to integrate with your organization. Each principal is a structure that includes the name and the date that it was enabled for integration with AWS Organizations.<br/>        """
        pass

    def list_accounts(self, NextToken: str=None, MaxResults: int=None) -> ListAccountsResponse:
        r"""Lists all the accounts in the organization. To request only the accounts in a specified root or organizational unit (OU), use the <a>ListAccountsForParent</a> operation instead. <note> Always check the <code>NextToken</code> response parameter for a <code>null</code> value when calling a <code>List*</code> operation. These operations can occasionally return an empty set of results even when there are more results available. The <code>NextToken</code> response parameter value is <code>null</code> <i>only</i> when there are no more results to display. </note> This operation can be called only from the organization's management account or by a member account that is a delegated administrator for an AWS service.

        :param self:
        :param MaxResults:  The total number of results that you want included on each page of the response. If you do not include this parameter, it defaults to a value that is specific to the operation. If additional items exist beyond the maximum you specify, the <code>NextToken</code> response element is present and has a value (is not null). Include that value as the <code>NextToken</code> request parameter in the next call to the operation to get the next part of the results. Note that Organizations might return fewer results than the maximum even when there are more results available. You should check <code>NextToken</code> after every operation to ensure that you receive all of the results.<br/>NextToken:  The parameter for receiving additional results if you receive a <code>NextToken</code> response in a previous request. A <code>NextToken</code> response indicates that more output is available. Set this parameter to the value of the previous call's <code>NextToken</code> response to indicate where the output should continue from.<br/>
        :return: NextToken:  If present, indicates that more output is available than is included in the current response. Use this value in the <code>NextToken</code> request parameter in a subsequent call to the operation to get the next part of the output. You should repeat this until the <code>NextToken</code> response element comes back as <code>null</code>.<br/>Accounts:  A list of objects in the organization.<br/>        """
        pass

    def list_accounts_for_parent(self, ParentId: str, NextToken: str=None, MaxResults: int=None) -> ListAccountsForParentResponse:
        r"""Lists the accounts in an organization that are contained by the specified target root or organizational unit (OU). If you specify the root, you get a list of all the accounts that aren't in any OU. If you specify an OU, you get a list of all the accounts in only that OU and not in any child OUs. To get a list of all accounts in the organization, use the <a>ListAccounts</a> operation. <note> Always check the <code>NextToken</code> response parameter for a <code>null</code> value when calling a <code>List*</code> operation. These operations can occasionally return an empty set of results even when there are more results available. The <code>NextToken</code> response parameter value is <code>null</code> <i>only</i> when there are no more results to display. </note> This operation can be called only from the organization's management account or by a member account that is a delegated administrator for an AWS service.

        :param self:
        :param MaxResults:  The total number of results that you want included on each page of the response. If you do not include this parameter, it defaults to a value that is specific to the operation. If additional items exist beyond the maximum you specify, the <code>NextToken</code> response element is present and has a value (is not null). Include that value as the <code>NextToken</code> request parameter in the next call to the operation to get the next part of the results. Note that Organizations might return fewer results than the maximum even when there are more results available. You should check <code>NextToken</code> after every operation to ensure that you receive all of the results.<br/>NextToken:  The parameter for receiving additional results if you receive a <code>NextToken</code> response in a previous request. A <code>NextToken</code> response indicates that more output is available. Set this parameter to the value of the previous call's <code>NextToken</code> response to indicate where the output should continue from.<br/>ParentId:  The unique identifier (ID) for the parent root or organization unit (OU) whose accounts you want to list.<br/>
        :return: NextToken:  If present, indicates that more output is available than is included in the current response. Use this value in the <code>NextToken</code> request parameter in a subsequent call to the operation to get the next part of the output. You should repeat this until the <code>NextToken</code> response element comes back as <code>null</code>.<br/>Accounts:  A list of the accounts in the specified root or OU.<br/>        """
        pass

    def list_children(self, ChildType: str, ParentId: str, NextToken: str=None, MaxResults: int=None) -> ListChildrenResponse:
        r"""Lists all of the organizational units (OUs) or accounts that are contained in the specified parent OU or root. This operation, along with <a>ListParents</a> enables you to traverse the tree structure that makes up this root. <note> Always check the <code>NextToken</code> response parameter for a <code>null</code> value when calling a <code>List*</code> operation. These operations can occasionally return an empty set of results even when there are more results available. The <code>NextToken</code> response parameter value is <code>null</code> <i>only</i> when there are no more results to display. </note> This operation can be called only from the organization's management account or by a member account that is a delegated administrator for an AWS service.

        :param self:
        :param MaxResults:  The total number of results that you want included on each page of the response. If you do not include this parameter, it defaults to a value that is specific to the operation. If additional items exist beyond the maximum you specify, the <code>NextToken</code> response element is present and has a value (is not null). Include that value as the <code>NextToken</code> request parameter in the next call to the operation to get the next part of the results. Note that Organizations might return fewer results than the maximum even when there are more results available. You should check <code>NextToken</code> after every operation to ensure that you receive all of the results.<br/>NextToken:  The parameter for receiving additional results if you receive a <code>NextToken</code> response in a previous request. A <code>NextToken</code> response indicates that more output is available. Set this parameter to the value of the previous call's <code>NextToken</code> response to indicate where the output should continue from.<br/>ChildType:  Filters the output to include only the specified child type.<br/>ParentId:  The unique identifier (ID) for the parent root or OU whose children you want to list. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> for a parent ID string requires one of the following: <ul> <li>  <b>Root</b> - A string that begins with "r-" followed by from 4 to 32 lowercase letters or digits. </li> <li>  <b>Organizational unit (OU)</b> - A string that begins with "ou-" followed by from 4 to 32 lowercase letters or digits (the ID of the root that the OU is in). This string is followed by a second "-" dash and from 8 to 32 additional lowercase letters or digits. </li> </ul><br/>
        :return: NextToken:  If present, indicates that more output is available than is included in the current response. Use this value in the <code>NextToken</code> request parameter in a subsequent call to the operation to get the next part of the output. You should repeat this until the <code>NextToken</code> response element comes back as <code>null</code>.<br/>Children:  The list of children of the specified parent container.<br/>        """
        pass

    def list_create_account_status(self, States: List[CreateAccountState]=None, NextToken: str=None, MaxResults: int=None) -> ListCreateAccountStatusResponse:
        r"""Lists the account creation requests that match the specified status that is currently being tracked for the organization. <note> Always check the <code>NextToken</code> response parameter for a <code>null</code> value when calling a <code>List*</code> operation. These operations can occasionally return an empty set of results even when there are more results available. The <code>NextToken</code> response parameter value is <code>null</code> <i>only</i> when there are no more results to display. </note> This operation can be called only from the organization's management account or by a member account that is a delegated administrator for an AWS service.

        :param self:
        :param MaxResults:  The total number of results that you want included on each page of the response. If you do not include this parameter, it defaults to a value that is specific to the operation. If additional items exist beyond the maximum you specify, the <code>NextToken</code> response element is present and has a value (is not null). Include that value as the <code>NextToken</code> request parameter in the next call to the operation to get the next part of the results. Note that Organizations might return fewer results than the maximum even when there are more results available. You should check <code>NextToken</code> after every operation to ensure that you receive all of the results.<br/>NextToken:  The parameter for receiving additional results if you receive a <code>NextToken</code> response in a previous request. A <code>NextToken</code> response indicates that more output is available. Set this parameter to the value of the previous call's <code>NextToken</code> response to indicate where the output should continue from.<br/>States:  A list of one or more states that you want included in the response. If this parameter isn't present, all requests are included in the response.<br/>
        :return: NextToken:  If present, indicates that more output is available than is included in the current response. Use this value in the <code>NextToken</code> request parameter in a subsequent call to the operation to get the next part of the output. You should repeat this until the <code>NextToken</code> response element comes back as <code>null</code>.<br/>CreateAccountStatuses:  A list of objects with details about the requests. Certain elements, such as the accountId number, are present in the output only after the account has been successfully created.<br/>        """
        pass

    def list_delegated_administrators(self, ServicePrincipal: str=None, NextToken: str=None, MaxResults: int=None) -> ListDelegatedAdministratorsResponse:
        r"""Lists the AWS accounts that are designated as delegated administrators in this organization. This operation can be called only from the organization's management account or by a member account that is a delegated administrator for an AWS service.

        :param self:
        :param MaxResults:  The total number of results that you want included on each page of the response. If you do not include this parameter, it defaults to a value that is specific to the operation. If additional items exist beyond the maximum you specify, the <code>NextToken</code> response element is present and has a value (is not null). Include that value as the <code>NextToken</code> request parameter in the next call to the operation to get the next part of the results. Note that Organizations might return fewer results than the maximum even when there are more results available. You should check <code>NextToken</code> after every operation to ensure that you receive all of the results.<br/>NextToken:  The parameter for receiving additional results if you receive a <code>NextToken</code> response in a previous request. A <code>NextToken</code> response indicates that more output is available. Set this parameter to the value of the previous call's <code>NextToken</code> response to indicate where the output should continue from.<br/>ServicePrincipal:  Specifies a service principal name. If specified, then the operation lists the delegated administrators only for the specified service. If you don't specify a service principal, the operation lists all delegated administrators for all services in your organization.<br/>
        :return: NextToken:  If present, indicates that more output is available than is included in the current response. Use this value in the <code>NextToken</code> request parameter in a subsequent call to the operation to get the next part of the output. You should repeat this until the <code>NextToken</code> response element comes back as <code>null</code>.<br/>DelegatedAdministrators:  The list of delegated administrators in your organization.<br/>        """
        pass

    def list_delegated_services_for_account(self, AccountId: str, NextToken: str=None, MaxResults: int=None) -> ListDelegatedServicesForAccountResponse:
        r"""List the AWS services for which the specified account is a delegated administrator. This operation can be called only from the organization's management account or by a member account that is a delegated administrator for an AWS service.

        :param self:
        :param MaxResults:  The total number of results that you want included on each page of the response. If you do not include this parameter, it defaults to a value that is specific to the operation. If additional items exist beyond the maximum you specify, the <code>NextToken</code> response element is present and has a value (is not null). Include that value as the <code>NextToken</code> request parameter in the next call to the operation to get the next part of the results. Note that Organizations might return fewer results than the maximum even when there are more results available. You should check <code>NextToken</code> after every operation to ensure that you receive all of the results.<br/>NextToken:  The parameter for receiving additional results if you receive a <code>NextToken</code> response in a previous request. A <code>NextToken</code> response indicates that more output is available. Set this parameter to the value of the previous call's <code>NextToken</code> response to indicate where the output should continue from.<br/>AccountId:  The account ID number of a delegated administrator account in the organization.<br/>
        :return: NextToken:  If present, indicates that more output is available than is included in the current response. Use this value in the <code>NextToken</code> request parameter in a subsequent call to the operation to get the next part of the output. You should repeat this until the <code>NextToken</code> response element comes back as <code>null</code>.<br/>DelegatedServices:  The services for which the account is a delegated administrator.<br/>        """
        pass

    def list_handshakes_for_account(self, Filter: HandshakeFilter=None, NextToken: str=None, MaxResults: int=None) -> ListHandshakesForAccountResponse:
        r"""Lists the current handshakes that are associated with the account of the requesting user. Handshakes that are <code>ACCEPTED</code>, <code>DECLINED</code>, or <code>CANCELED</code> appear in the results of this API for only 30 days after changing to that state. After that, they're deleted and no longer accessible. <note> Always check the <code>NextToken</code> response parameter for a <code>null</code> value when calling a <code>List*</code> operation. These operations can occasionally return an empty set of results even when there are more results available. The <code>NextToken</code> response parameter value is <code>null</code> <i>only</i> when there are no more results to display. </note> This operation can be called from any account in the organization.

        :param self:
        :param MaxResults:  The total number of results that you want included on each page of the response. If you do not include this parameter, it defaults to a value that is specific to the operation. If additional items exist beyond the maximum you specify, the <code>NextToken</code> response element is present and has a value (is not null). Include that value as the <code>NextToken</code> request parameter in the next call to the operation to get the next part of the results. Note that Organizations might return fewer results than the maximum even when there are more results available. You should check <code>NextToken</code> after every operation to ensure that you receive all of the results.<br/>NextToken:  The parameter for receiving additional results if you receive a <code>NextToken</code> response in a previous request. A <code>NextToken</code> response indicates that more output is available. Set this parameter to the value of the previous call's <code>NextToken</code> response to indicate where the output should continue from.<br/>Filter:  Filters the handshakes that you want included in the response. The default is all types. Use the <code>ActionType</code> element to limit the output to only a specified type, such as <code>INVITE</code>, <code>ENABLE_ALL_FEATURES</code>, or <code>APPROVE_ALL_FEATURES</code>. Alternatively, for the <code>ENABLE_ALL_FEATURES</code> handshake that generates a separate child handshake for each member account, you can specify <code>ParentHandshakeId</code> to see only the handshakes that were generated by that parent request.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ParentHandshakeId</i> Specifies the parent handshake. Only used for handshake types that are a child of another type. If you specify <code>ParentHandshakeId</code>, you cannot also specify <code>ActionType</code>. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> for handshake ID string requires "h-" followed by from 8 to 32 lowercase letters or digits.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActionType</i> Specifies the type of handshake action. If you specify <code>ActionType</code>, you cannot also specify <code>ParentHandshakeId</code>.<br/>
        :return: NextToken:  If present, indicates that more output is available than is included in the current response. Use this value in the <code>NextToken</code> request parameter in a subsequent call to the operation to get the next part of the output. You should repeat this until the <code>NextToken</code> response element comes back as <code>null</code>.<br/>Handshakes:  A list of <a>Handshake</a> objects with details about each of the handshakes that is associated with the specified account.<br/>        """
        pass

    def list_handshakes_for_organization(self, Filter: HandshakeFilter=None, NextToken: str=None, MaxResults: int=None) -> ListHandshakesForOrganizationResponse:
        r"""Lists the handshakes that are associated with the organization that the requesting user is part of. The <code>ListHandshakesForOrganization</code> operation returns a list of handshake structures. Each structure contains details and status about a handshake. Handshakes that are <code>ACCEPTED</code>, <code>DECLINED</code>, or <code>CANCELED</code> appear in the results of this API for only 30 days after changing to that state. After that, they're deleted and no longer accessible. <note> Always check the <code>NextToken</code> response parameter for a <code>null</code> value when calling a <code>List*</code> operation. These operations can occasionally return an empty set of results even when there are more results available. The <code>NextToken</code> response parameter value is <code>null</code> <i>only</i> when there are no more results to display. </note> This operation can be called only from the organization's management account or by a member account that is a delegated administrator for an AWS service.

        :param self:
        :param MaxResults:  The total number of results that you want included on each page of the response. If you do not include this parameter, it defaults to a value that is specific to the operation. If additional items exist beyond the maximum you specify, the <code>NextToken</code> response element is present and has a value (is not null). Include that value as the <code>NextToken</code> request parameter in the next call to the operation to get the next part of the results. Note that Organizations might return fewer results than the maximum even when there are more results available. You should check <code>NextToken</code> after every operation to ensure that you receive all of the results.<br/>NextToken:  The parameter for receiving additional results if you receive a <code>NextToken</code> response in a previous request. A <code>NextToken</code> response indicates that more output is available. Set this parameter to the value of the previous call's <code>NextToken</code> response to indicate where the output should continue from.<br/>Filter:  A filter of the handshakes that you want included in the response. The default is all types. Use the <code>ActionType</code> element to limit the output to only a specified type, such as <code>INVITE</code>, <code>ENABLE-ALL-FEATURES</code>, or <code>APPROVE-ALL-FEATURES</code>. Alternatively, for the <code>ENABLE-ALL-FEATURES</code> handshake that generates a separate child handshake for each member account, you can specify the <code>ParentHandshakeId</code> to see only the handshakes that were generated by that parent request.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ParentHandshakeId</i> Specifies the parent handshake. Only used for handshake types that are a child of another type. If you specify <code>ParentHandshakeId</code>, you cannot also specify <code>ActionType</code>. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> for handshake ID string requires "h-" followed by from 8 to 32 lowercase letters or digits.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActionType</i> Specifies the type of handshake action. If you specify <code>ActionType</code>, you cannot also specify <code>ParentHandshakeId</code>.<br/>
        :return: NextToken:  If present, indicates that more output is available than is included in the current response. Use this value in the <code>NextToken</code> request parameter in a subsequent call to the operation to get the next part of the output. You should repeat this until the <code>NextToken</code> response element comes back as <code>null</code>.<br/>Handshakes:  A list of <a>Handshake</a> objects with details about each of the handshakes that are associated with an organization.<br/>        """
        pass

    def list_organizational_units_for_parent(self, ParentId: str, NextToken: str=None, MaxResults: int=None) -> ListOrganizationalUnitsForParentResponse:
        r"""Lists the organizational units (OUs) in a parent organizational unit or root. <note> Always check the <code>NextToken</code> response parameter for a <code>null</code> value when calling a <code>List*</code> operation. These operations can occasionally return an empty set of results even when there are more results available. The <code>NextToken</code> response parameter value is <code>null</code> <i>only</i> when there are no more results to display. </note> This operation can be called only from the organization's management account or by a member account that is a delegated administrator for an AWS service.

        :param self:
        :param MaxResults:  The total number of results that you want included on each page of the response. If you do not include this parameter, it defaults to a value that is specific to the operation. If additional items exist beyond the maximum you specify, the <code>NextToken</code> response element is present and has a value (is not null). Include that value as the <code>NextToken</code> request parameter in the next call to the operation to get the next part of the results. Note that Organizations might return fewer results than the maximum even when there are more results available. You should check <code>NextToken</code> after every operation to ensure that you receive all of the results.<br/>NextToken:  The parameter for receiving additional results if you receive a <code>NextToken</code> response in a previous request. A <code>NextToken</code> response indicates that more output is available. Set this parameter to the value of the previous call's <code>NextToken</code> response to indicate where the output should continue from.<br/>ParentId:  The unique identifier (ID) of the root or OU whose child OUs you want to list. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> for a parent ID string requires one of the following: <ul> <li>  <b>Root</b> - A string that begins with "r-" followed by from 4 to 32 lowercase letters or digits. </li> <li>  <b>Organizational unit (OU)</b> - A string that begins with "ou-" followed by from 4 to 32 lowercase letters or digits (the ID of the root that the OU is in). This string is followed by a second "-" dash and from 8 to 32 additional lowercase letters or digits. </li> </ul><br/>
        :return: NextToken:  If present, indicates that more output is available than is included in the current response. Use this value in the <code>NextToken</code> request parameter in a subsequent call to the operation to get the next part of the output. You should repeat this until the <code>NextToken</code> response element comes back as <code>null</code>.<br/>OrganizationalUnits:  A list of the OUs in the specified root or parent OU.<br/>        """
        pass

    def list_parents(self, ChildId: str, NextToken: str=None, MaxResults: int=None) -> ListParentsResponse:
        r"""Lists the root or organizational units (OUs) that serve as the immediate parent of the specified child OU or account. This operation, along with <a>ListChildren</a> enables you to traverse the tree structure that makes up this root. <note> Always check the <code>NextToken</code> response parameter for a <code>null</code> value when calling a <code>List*</code> operation. These operations can occasionally return an empty set of results even when there are more results available. The <code>NextToken</code> response parameter value is <code>null</code> <i>only</i> when there are no more results to display. </note> This operation can be called only from the organization's management account or by a member account that is a delegated administrator for an AWS service. <note> In the current release, a child can have only a single parent. </note>

        :param self:
        :param MaxResults:  The total number of results that you want included on each page of the response. If you do not include this parameter, it defaults to a value that is specific to the operation. If additional items exist beyond the maximum you specify, the <code>NextToken</code> response element is present and has a value (is not null). Include that value as the <code>NextToken</code> request parameter in the next call to the operation to get the next part of the results. Note that Organizations might return fewer results than the maximum even when there are more results available. You should check <code>NextToken</code> after every operation to ensure that you receive all of the results.<br/>NextToken:  The parameter for receiving additional results if you receive a <code>NextToken</code> response in a previous request. A <code>NextToken</code> response indicates that more output is available. Set this parameter to the value of the previous call's <code>NextToken</code> response to indicate where the output should continue from.<br/>ChildId:  The unique identifier (ID) of the OU or account whose parent containers you want to list. Don't specify a root. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> for a child ID string requires one of the following: <ul> <li>  <b>Account</b> - A string that consists of exactly 12 digits. </li> <li>  <b>Organizational unit (OU)</b> - A string that begins with "ou-" followed by from 4 to 32 lowercase letters or digits (the ID of the root that contains the OU). This string is followed by a second "-" dash and from 8 to 32 additional lowercase letters or digits. </li> </ul><br/>
        :return: NextToken:  If present, indicates that more output is available than is included in the current response. Use this value in the <code>NextToken</code> request parameter in a subsequent call to the operation to get the next part of the output. You should repeat this until the <code>NextToken</code> response element comes back as <code>null</code>.<br/>Parents:  A list of parents for the specified child account or OU.<br/>        """
        pass

    def list_policies(self, Filter: str, NextToken: str=None, MaxResults: int=None) -> ListPoliciesResponse:
        r"""Retrieves the list of all policies in an organization of a specified type. <note> Always check the <code>NextToken</code> response parameter for a <code>null</code> value when calling a <code>List*</code> operation. These operations can occasionally return an empty set of results even when there are more results available. The <code>NextToken</code> response parameter value is <code>null</code> <i>only</i> when there are no more results to display. </note> This operation can be called only from the organization's management account or by a member account that is a delegated administrator for an AWS service.

        :param self:
        :param MaxResults:  The total number of results that you want included on each page of the response. If you do not include this parameter, it defaults to a value that is specific to the operation. If additional items exist beyond the maximum you specify, the <code>NextToken</code> response element is present and has a value (is not null). Include that value as the <code>NextToken</code> request parameter in the next call to the operation to get the next part of the results. Note that Organizations might return fewer results than the maximum even when there are more results available. You should check <code>NextToken</code> after every operation to ensure that you receive all of the results.<br/>NextToken:  The parameter for receiving additional results if you receive a <code>NextToken</code> response in a previous request. A <code>NextToken</code> response indicates that more output is available. Set this parameter to the value of the previous call's <code>NextToken</code> response to indicate where the output should continue from.<br/>Filter:  Specifies the type of policy that you want to include in the response. You must specify one of the following values: <ul> <li>  <a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_ai-opt-out.html">AISERVICES_OPT_OUT_POLICY</a>  </li> <li>  <a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_backup.html">BACKUP_POLICY</a>  </li> <li>  <a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scp.html">SERVICE_CONTROL_POLICY</a>  </li> <li>  <a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_tag-policies.html">TAG_POLICY</a>  </li> </ul><br/>
        :return: NextToken:  If present, indicates that more output is available than is included in the current response. Use this value in the <code>NextToken</code> request parameter in a subsequent call to the operation to get the next part of the output. You should repeat this until the <code>NextToken</code> response element comes back as <code>null</code>.<br/>Policies:  A list of policies that match the filter criteria in the request. The output list doesn't include the policy contents. To see the content for a policy, see <a>DescribePolicy</a>.<br/>        """
        pass

    def list_policies_for_target(self, Filter: str, TargetId: str, NextToken: str=None, MaxResults: int=None) -> ListPoliciesForTargetResponse:
        r"""Lists the policies that are directly attached to the specified target root, organizational unit (OU), or account. You must specify the policy type that you want included in the returned list. <note> Always check the <code>NextToken</code> response parameter for a <code>null</code> value when calling a <code>List*</code> operation. These operations can occasionally return an empty set of results even when there are more results available. The <code>NextToken</code> response parameter value is <code>null</code> <i>only</i> when there are no more results to display. </note> This operation can be called only from the organization's management account or by a member account that is a delegated administrator for an AWS service.

        :param self:
        :param MaxResults:  The total number of results that you want included on each page of the response. If you do not include this parameter, it defaults to a value that is specific to the operation. If additional items exist beyond the maximum you specify, the <code>NextToken</code> response element is present and has a value (is not null). Include that value as the <code>NextToken</code> request parameter in the next call to the operation to get the next part of the results. Note that Organizations might return fewer results than the maximum even when there are more results available. You should check <code>NextToken</code> after every operation to ensure that you receive all of the results.<br/>NextToken:  The parameter for receiving additional results if you receive a <code>NextToken</code> response in a previous request. A <code>NextToken</code> response indicates that more output is available. Set this parameter to the value of the previous call's <code>NextToken</code> response to indicate where the output should continue from.<br/>Filter:  The type of policy that you want to include in the returned list. You must specify one of the following values: <ul> <li>  <a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_ai-opt-out.html">AISERVICES_OPT_OUT_POLICY</a>  </li> <li>  <a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_backup.html">BACKUP_POLICY</a>  </li> <li>  <a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scp.html">SERVICE_CONTROL_POLICY</a>  </li> <li>  <a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_tag-policies.html">TAG_POLICY</a>  </li> </ul><br/>TargetId:  The unique identifier (ID) of the root, organizational unit, or account whose policies you want to list. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> for a target ID string requires one of the following: <ul> <li>  <b>Root</b> - A string that begins with "r-" followed by from 4 to 32 lowercase letters or digits. </li> <li>  <b>Account</b> - A string that consists of exactly 12 digits. </li> <li>  <b>Organizational unit (OU)</b> - A string that begins with "ou-" followed by from 4 to 32 lowercase letters or digits (the ID of the root that the OU is in). This string is followed by a second "-" dash and from 8 to 32 additional lowercase letters or digits. </li> </ul><br/>
        :return: NextToken:  If present, indicates that more output is available than is included in the current response. Use this value in the <code>NextToken</code> request parameter in a subsequent call to the operation to get the next part of the output. You should repeat this until the <code>NextToken</code> response element comes back as <code>null</code>.<br/>Policies:  The list of policies that match the criteria in the request.<br/>        """
        pass

    def list_roots(self, NextToken: str=None, MaxResults: int=None) -> ListRootsResponse:
        r"""Lists the roots that are defined in the current organization. <note> Always check the <code>NextToken</code> response parameter for a <code>null</code> value when calling a <code>List*</code> operation. These operations can occasionally return an empty set of results even when there are more results available. The <code>NextToken</code> response parameter value is <code>null</code> <i>only</i> when there are no more results to display. </note> This operation can be called only from the organization's management account or by a member account that is a delegated administrator for an AWS service. <note> Policy types can be enabled and disabled in roots. This is distinct from whether they're available in the organization. When you enable all features, you make policy types available for use in that organization. Individual policy types can then be enabled and disabled in a root. To see the availability of a policy type in an organization, use <a>DescribeOrganization</a>. </note>

        :param self:
        :param MaxResults:  The total number of results that you want included on each page of the response. If you do not include this parameter, it defaults to a value that is specific to the operation. If additional items exist beyond the maximum you specify, the <code>NextToken</code> response element is present and has a value (is not null). Include that value as the <code>NextToken</code> request parameter in the next call to the operation to get the next part of the results. Note that Organizations might return fewer results than the maximum even when there are more results available. You should check <code>NextToken</code> after every operation to ensure that you receive all of the results.<br/>NextToken:  The parameter for receiving additional results if you receive a <code>NextToken</code> response in a previous request. A <code>NextToken</code> response indicates that more output is available. Set this parameter to the value of the previous call's <code>NextToken</code> response to indicate where the output should continue from.<br/>
        :return: NextToken:  If present, indicates that more output is available than is included in the current response. Use this value in the <code>NextToken</code> request parameter in a subsequent call to the operation to get the next part of the output. You should repeat this until the <code>NextToken</code> response element comes back as <code>null</code>.<br/>Roots:  A list of roots that are defined in an organization.<br/>        """
        pass

    def list_tags_for_resource(self, ResourceId: str, NextToken: str=None) -> ListTagsForResourceResponse:
        r"""Lists tags that are attached to the specified resource. You can attach tags to the following resources in AWS Organizations. <ul> <li> AWS account </li> <li> Organization root </li> <li> Organizational unit (OU) </li> <li> Policy (any type) </li> </ul> This operation can be called only from the organization's management account or by a member account that is a delegated administrator for an AWS service.

        :param self:
        :param NextToken:  The parameter for receiving additional results if you receive a <code>NextToken</code> response in a previous request. A <code>NextToken</code> response indicates that more output is available. Set this parameter to the value of the previous call's <code>NextToken</code> response to indicate where the output should continue from.<br/>ResourceId:  The ID of the resource with the tags to list. You can specify any of the following taggable resources. <ul> <li> AWS account – specify the account ID number. </li> <li> Organizational unit – specify the OU ID that begins with <code>ou-</code> and looks similar to: <code>ou-<i>1a2b-34uvwxyz</i> </code>  </li> <li> Root – specify the root ID that begins with <code>r-</code> and looks similar to: <code>r-<i>1a2b</i> </code>  </li> <li> Policy – specify the policy ID that begins with <code>p-</code> andlooks similar to: <code>p-<i>12abcdefg3</i> </code>  </li> </ul><br/>
        :return: NextToken:  If present, indicates that more output is available than is included in the current response. Use this value in the <code>NextToken</code> request parameter in a subsequent call to the operation to get the next part of the output. You should repeat this until the <code>NextToken</code> response element comes back as <code>null</code>.<br/>Tags:  The tags that are assigned to the resource.<br/>        """
        pass

    def list_targets_for_policy(self, PolicyId: str, NextToken: str=None, MaxResults: int=None) -> ListTargetsForPolicyResponse:
        r"""Lists all the roots, organizational units (OUs), and accounts that the specified policy is attached to. <note> Always check the <code>NextToken</code> response parameter for a <code>null</code> value when calling a <code>List*</code> operation. These operations can occasionally return an empty set of results even when there are more results available. The <code>NextToken</code> response parameter value is <code>null</code> <i>only</i> when there are no more results to display. </note> This operation can be called only from the organization's management account or by a member account that is a delegated administrator for an AWS service.

        :param self:
        :param MaxResults:  The total number of results that you want included on each page of the response. If you do not include this parameter, it defaults to a value that is specific to the operation. If additional items exist beyond the maximum you specify, the <code>NextToken</code> response element is present and has a value (is not null). Include that value as the <code>NextToken</code> request parameter in the next call to the operation to get the next part of the results. Note that Organizations might return fewer results than the maximum even when there are more results available. You should check <code>NextToken</code> after every operation to ensure that you receive all of the results.<br/>NextToken:  The parameter for receiving additional results if you receive a <code>NextToken</code> response in a previous request. A <code>NextToken</code> response indicates that more output is available. Set this parameter to the value of the previous call's <code>NextToken</code> response to indicate where the output should continue from.<br/>PolicyId:  The unique identifier (ID) of the policy whose attachments you want to know. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> for a policy ID string requires "p-" followed by from 8 to 128 lowercase or uppercase letters, digits, or the underscore character (_).<br/>
        :return: NextToken:  If present, indicates that more output is available than is included in the current response. Use this value in the <code>NextToken</code> request parameter in a subsequent call to the operation to get the next part of the output. You should repeat this until the <code>NextToken</code> response element comes back as <code>null</code>.<br/>Targets:  A list of structures, each of which contains details about one of the entities to which the specified policy is attached.<br/>        """
        pass

    def move_account(self, DestinationParentId: str, SourceParentId: str, AccountId: str):
        r"""Moves an account from its current source parent root or organizational unit (OU) to the specified destination parent root or OU. This operation can be called only from the organization's management account.

        :param self:
        :param DestinationParentId:  The unique identifier (ID) of the root or organizational unit that you want to move the account to. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> for a parent ID string requires one of the following: <ul> <li>  <b>Root</b> - A string that begins with "r-" followed by from 4 to 32 lowercase letters or digits. </li> <li>  <b>Organizational unit (OU)</b> - A string that begins with "ou-" followed by from 4 to 32 lowercase letters or digits (the ID of the root that the OU is in). This string is followed by a second "-" dash and from 8 to 32 additional lowercase letters or digits. </li> </ul><br/>SourceParentId:  The unique identifier (ID) of the root or organizational unit that you want to move the account from. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> for a parent ID string requires one of the following: <ul> <li>  <b>Root</b> - A string that begins with "r-" followed by from 4 to 32 lowercase letters or digits. </li> <li>  <b>Organizational unit (OU)</b> - A string that begins with "ou-" followed by from 4 to 32 lowercase letters or digits (the ID of the root that the OU is in). This string is followed by a second "-" dash and from 8 to 32 additional lowercase letters or digits. </li> </ul><br/>AccountId:  The unique identifier (ID) of the account that you want to move. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> for an account ID string requires exactly 12 digits.<br/>
        :return:         """
        pass

    def register_delegated_administrator(self, ServicePrincipal: str, AccountId: str):
        r"""Enables the specified member account to administer the Organizations features of the specified AWS service. It grants read-only access to AWS Organizations service data. The account still requires IAM permissions to access and administer the AWS service. You can run this action only for AWS services that support this feature. For a current list of services that support it, see the column <i>Supports Delegated Administrator</i> in the table at <a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_integrate_services_list.html">AWS Services that you can use with AWS Organizations</a> in the <i>AWS Organizations User Guide.</i>  This operation can be called only from the organization's management account.

        :param self:
        :param ServicePrincipal:  The service principal of the AWS service for which you want to make the member account a delegated administrator.<br/>AccountId:  The account ID number of the member account in the organization to register as a delegated administrator.<br/>
        :return:         """
        pass

    def remove_account_from_organization(self, AccountId: str):
        r"""Removes the specified account from the organization. The removed account becomes a standalone account that isn't a member of any organization. It's no longer subject to any policies and is responsible for its own bill payments. The organization's management account is no longer charged for any expenses accrued by the member account after it's removed from the organization. This operation can be called only from the organization's management account. Member accounts can remove themselves with <a>LeaveOrganization</a> instead. <important> <ul> <li> You can remove an account from your organization only if the account is configured with the information required to operate as a standalone account. When you create an account in an organization using the AWS Organizations console, API, or CLI commands, the information required of standalone accounts is <i>not</i> automatically collected. For an account that you want to make standalone, you must choose a support plan, provide and verify the required contact information, and provide a current payment method. AWS uses the payment method to charge for any billable (not free tier) AWS activity that occurs while the account isn't attached to an organization. To remove an account that doesn't yet have this information, you must sign in as the member account and follow the steps at <a href="http://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_accounts_remove.html#leave-without-all-info"> To leave an organization when all required account information has not yet been provided</a> in the <i>AWS Organizations User Guide.</i>  </li> <li> The account that you want to leave must not be a delegated administrator account for any AWS service enabled for your organization. If the account is a delegated administrator, you must first change the delegated administrator account to another account that is remaining in the organization. </li> <li> After the account leaves the organization, all tags that were attached to the account object in the organization are deleted. AWS accounts outside of an organization do not support tags. </li> </ul> </important>

        :param self:
        :param AccountId:  The unique identifier (ID) of the member account that you want to remove from the organization. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> for an account ID string requires exactly 12 digits.<br/>
        :return:         """
        pass

    def tag_resource(self, Tags: List[Tag], ResourceId: str):
        r"""Adds one or more tags to the specified resource. Currently, you can attach tags to the following resources in AWS Organizations. <ul> <li> AWS account </li> <li> Organization root </li> <li> Organizational unit (OU) </li> <li> Policy (any type) </li> </ul> This operation can be called only from the organization's management account.

        :param self:
        :param Tags:  A list of tags to add to the specified resource. You can specify any of the following taggable resources. <ul> <li> AWS account – specify the account ID number. </li> <li> Organizational unit – specify the OU ID that begins with <code>ou-</code> and looks similar to: <code>ou-<i>1a2b-34uvwxyz</i> </code>  </li> <li> Root – specify the root ID that begins with <code>r-</code> and looks similar to: <code>r-<i>1a2b</i> </code>  </li> <li> Policy – specify the policy ID that begins with <code>p-</code> andlooks similar to: <code>p-<i>12abcdefg3</i> </code>  </li> </ul> For each tag in the list, you must specify both a tag key and a value. You can set the value to an empty string, but you can't set it to <code>null</code>. <note> If any one of the tags is invalid or if you exceed the allowed number of tags for an account user, then the entire request fails and the account is not created. </note><br/>ResourceId:  The ID of the resource to add a tag to.<br/>
        :return:         """
        pass

    def untag_resource(self, TagKeys: List[TagKey], ResourceId: str):
        r"""Removes any tags with the specified keys from the specified resource. You can attach tags to the following resources in AWS Organizations. <ul> <li> AWS account </li> <li> Organization root </li> <li> Organizational unit (OU) </li> <li> Policy (any type) </li> </ul> This operation can be called only from the organization's management account.

        :param self:
        :param TagKeys:  The list of keys for tags to remove from the specified resource.<br/>ResourceId:  The ID of the resource to remove a tag from. You can specify any of the following taggable resources. <ul> <li> AWS account – specify the account ID number. </li> <li> Organizational unit – specify the OU ID that begins with <code>ou-</code> and looks similar to: <code>ou-<i>1a2b-34uvwxyz</i> </code>  </li> <li> Root – specify the root ID that begins with <code>r-</code> and looks similar to: <code>r-<i>1a2b</i> </code>  </li> <li> Policy – specify the policy ID that begins with <code>p-</code> andlooks similar to: <code>p-<i>12abcdefg3</i> </code>  </li> </ul><br/>
        :return:         """
        pass

    def update_organizational_unit(self, OrganizationalUnitId: str, Name: str=None) -> UpdateOrganizationalUnitResponse:
        r"""Renames the specified organizational unit (OU). The ID and ARN don't change. The child OUs and accounts remain in place, and any attached policies of the OU remain attached. This operation can be called only from the organization's management account.

        :param self:
        :param Name:  The new name that you want to assign to the OU. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> that is used to validate this parameter is a string of any of the characters in the ASCII character range.<br/>OrganizationalUnitId:  The unique identifier (ID) of the OU that you want to rename. You can get the ID from the <a>ListOrganizationalUnitsForParent</a> operation. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> for an organizational unit ID string requires "ou-" followed by from 4 to 32 lowercase letters or digits (the ID of the root that contains the OU). This string is followed by a second "-" dash and from 8 to 32 additional lowercase letters or digits.<br/>
        :return: OrganizationalUnit:  A structure that contains the details about the specified OU, including its new name.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The friendly name of this OU. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> that is used to validate this parameter is a string of any of the characters in the ASCII character range.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of this OU. For more information about ARNs in Organizations, see <a href="https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsorganizations.html#awsorganizations-resources-for-iam-policies">ARN Formats Supported by Organizations</a> in the <i>AWS Service Authorization Reference</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The unique identifier (ID) associated with this OU. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> for an organizational unit ID string requires "ou-" followed by from 4 to 32 lowercase letters or digits (the ID of the root that contains the OU). This string is followed by a second "-" dash and from 8 to 32 additional lowercase letters or digits.<br/>        """
        pass

    def update_policy(self, PolicyId: str, Name: str=None, Description: str=None, Content: str=None) -> UpdatePolicyResponse:
        r"""Updates an existing policy with a new name, description, or content. If you don't supply any parameter, that value remains unchanged. You can't change a policy's type. This operation can be called only from the organization's management account.

        :param self:
        :param Content:  If provided, the new content for the policy. The text must be correctly formatted JSON that complies with the syntax for the policy's type. For more information, see <a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_reference_scp-syntax.html">Service Control Policy Syntax</a> in the <i>AWS Organizations User Guide.</i> <br/>Description:  If provided, the new description for the policy.<br/>Name:  If provided, the new name for the policy. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> that is used to validate this parameter is a string of any of the characters in the ASCII character range.<br/>PolicyId:  The unique identifier (ID) of the policy that you want to update. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> for a policy ID string requires "p-" followed by from 8 to 128 lowercase or uppercase letters, digits, or the underscore character (_).<br/>
        :return: Policy:  A structure that contains details about the updated policy, showing the requested changes.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Content</i> The text content of the policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PolicySummary</i> A structure that contains additional details about the policy.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PolicySummary</b>: A structure that contains additional details about the policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AwsManaged</i> A boolean value that indicates whether the specified policy is an AWS managed policy. If true, then you can attach the policy to roots, OUs, or accounts, but you cannot edit it.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The friendly name of the policy. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> that is used to validate this parameter is a string of any of the characters in the ASCII character range.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the policy. For more information about ARNs in Organizations, see <a href="https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsorganizations.html#awsorganizations-resources-for-iam-policies">ARN Formats Supported by Organizations</a> in the <i>AWS Service Authorization Reference</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The unique identifier (ID) of the policy. The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> for a policy ID string requires "p-" followed by from 8 to 128 lowercase or uppercase letters, digits, or the underscore character (_).<br/>        """
        pass





class Outposts(BaseClient):
    r"""AWS Outposts is a fully managed service that extends AWS infrastructure, APIs, and tools to customer premises. By providing local access to AWS managed infrastructure, AWS Outposts enables customers to build and run applications on premises using the same programming interfaces as in AWS Regions, while using local compute and storage resources for lower latency and local data processing needs."""




    class CreateOutpostInput(Mapping):
        pass
    
    class CreateOutpostOutput(Mapping):
        pass
    
    class TagMap(object):
        pass
    
    class DeleteOutpostInput(Mapping):
        pass
    
    class DeleteOutpostOutput(Mapping):
        pass
    
    class DeleteSiteInput(Mapping):
        pass
    
    class DeleteSiteOutput(Mapping):
        pass
    
    class GetOutpostInput(Mapping):
        pass
    
    class GetOutpostOutput(Mapping):
        pass
    
    class GetOutpostInstanceTypesInput(Mapping):
        pass
    
    class GetOutpostInstanceTypesOutput(Mapping):
        pass
    
    class ListOutpostsInput(Mapping):
        pass
    
    class ListOutpostsOutput(Mapping):
        pass
    
    class LifeCycleStatus(object):
        pass
    
    class AvailabilityZone(object):
        pass
    
    class AvailabilityZoneId(object):
        pass
    
    class ListSitesInput(Mapping):
        pass
    
    class ListSitesOutput(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    def create_outpost(self, SiteId: str, Name: str, Description: str=None, AvailabilityZone: str=None, AvailabilityZoneId: str=None, Tags: TagMap=None) -> CreateOutpostOutput:
        r"""Creates an Outpost. You can specify <code>AvailabilityZone</code> or <code>AvailabilityZoneId</code>.

        :param self:
        :param Tags:  The tags to apply to the Outpost.<br/>AvailabilityZoneId:  The ID of the Availability Zone.<br/>AvailabilityZone:  The Availability Zone.<br/>SiteId:  The ID of the site.<br/>Description:  The description of the Outpost.<br/>Name:  The name of the Outpost.<br/>
        :return: Outpost:  Information about an Outpost.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SiteArn</i> The Amazon Resource Name (ARN) of the site.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The Outpost tags.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZoneId</i> The ID of the Availability Zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZone</i> The Availability Zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LifeCycleStatus</i> The life cycle status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the Outpost.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the Outpost.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SiteId</i> The ID of the site.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OutpostArn</i> The Amazon Resource Name (ARN) of the Outpost.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> The AWS account ID of the Outpost owner.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OutpostId</i> The ID of the Outpost.<br/>        """
        pass

    def delete_outpost(self, OutpostId: str) -> DeleteOutpostOutput:
        r"""Deletes the Outpost.

        :param self:
        :param OutpostId:  The ID of the Outpost.<br/>
        :return:         """
        pass

    def delete_site(self, SiteId: str) -> DeleteSiteOutput:
        r"""Deletes the site.

        :param self:
        :param SiteId:  The ID of the site.<br/>
        :return:         """
        pass

    def get_outpost(self, OutpostId: str) -> GetOutpostOutput:
        r"""Gets information about the specified Outpost.

        :param self:
        :param OutpostId:  The ID of the Outpost.<br/>
        :return: Outpost:  Information about an Outpost.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SiteArn</i> The Amazon Resource Name (ARN) of the site.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The Outpost tags.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZoneId</i> The ID of the Availability Zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZone</i> The Availability Zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LifeCycleStatus</i> The life cycle status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the Outpost.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the Outpost.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SiteId</i> The ID of the site.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OutpostArn</i> The Amazon Resource Name (ARN) of the Outpost.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> The AWS account ID of the Outpost owner.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OutpostId</i> The ID of the Outpost.<br/>        """
        pass

    def get_outpost_instance_types(self, OutpostId: str, NextToken: str=None, MaxResults: int=None) -> GetOutpostInstanceTypesOutput:
        r"""Lists the instance types for the specified Outpost.

        :param self:
        :param MaxResults:  The maximum page size.<br/>NextToken:  The pagination token.<br/>OutpostId:  The ID of the Outpost.<br/>
        :return: OutpostArn:  The Amazon Resource Name (ARN) of the Outpost.<br/>OutpostId:  The ID of the Outpost.<br/>NextToken:  The pagination token.<br/>InstanceTypes:  Information about the instance types.<br/>        """
        pass

    def list_outposts(self, NextToken: str=None, MaxResults: int=None, LifeCycleStatusFilter: List[LifeCycleStatus]=None, AvailabilityZoneFilter: List[AvailabilityZone]=None, AvailabilityZoneIdFilter: List[AvailabilityZoneId]=None) -> ListOutpostsOutput:
        r"""Create a list of the Outposts for your AWS account. Add filters to your request to return a more specific list of results. Use filters to match an Outpost lifecycle status, Availibility Zone (<code>us-east-1a</code>), and AZ ID (<code>use1-az1</code>).  If you specify multiple filters, the filters are joined with an <code>AND</code>, and the request returns only results that match all of the specified filters.

        :param self:
        :param AvailabilityZoneIdFilter:   A filter for the AZ IDs (<code>use1-az1</code>) of the Outpost.   Filter values are case sensitive. If you specify multiple values for a filter, the values are joined with an <code>OR</code>, and the request returns all results that match any of the specified values. <br/>AvailabilityZoneFilter:   A filter for the Availibility Zone (<code>us-east-1a</code>) of the Outpost.   Filter values are case sensitive. If you specify multiple values for a filter, the values are joined with an <code>OR</code>, and the request returns all results that match any of the specified values. <br/>LifeCycleStatusFilter:   A filter for the lifecycle status of the Outpost.   Filter values are case sensitive. If you specify multiple values for a filter, the values are joined with an <code>OR</code>, and the request returns all results that match any of the specified values. <br/>MaxResults:  The maximum page size.<br/>NextToken:  The pagination token.<br/>
        :return: NextToken:  The pagination token.<br/>Outposts:  Information about the Outposts.<br/>        """
        pass

    def list_sites(self, NextToken: str=None, MaxResults: int=None) -> ListSitesOutput:
        r"""Lists the sites for the specified AWS account.

        :param self:
        :param MaxResults:  The maximum page size.<br/>NextToken:  The pagination token.<br/>
        :return: NextToken:  The pagination token.<br/>Sites:  Information about the sites.<br/>        """
        pass

    def list_tags_for_resource(self, ResourceArn: str) -> ListTagsForResourceResponse:
        r"""Lists the tags for the specified resource.

        :param self:
        :param ResourceArn:  The Amazon Resource Name (ARN) of the resource.<br/>
        :return: Tags:  The resource tags.<br/>        """
        pass

    def tag_resource(self, Tags: TagMap, ResourceArn: str) -> TagResourceResponse:
        r"""Adds tags to the specified resource.

        :param self:
        :param Tags:  The tags to add to the resource.<br/>ResourceArn:  The Amazon Resource Name (ARN) of the resource.<br/>
        :return:         """
        pass

    def untag_resource(self, TagKeys: List[TagKey], ResourceArn: str) -> UntagResourceResponse:
        r"""Removes tags from the specified resource.

        :param self:
        :param TagKeys:  The tag keys.<br/>ResourceArn:  The Amazon Resource Name (ARN) of the resource.<br/>
        :return:         """
        pass





class Personalize(BaseClient):
    r"""Amazon Personalize is a machine learning service that makes it easy to add individualized recommendations to customers."""


    class ListCampaignsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_campaigns` for valid parameters"""
            pass
    class ListDatasetGroupsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_dataset_groups` for valid parameters"""
            pass
    class ListDatasetImportJobsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_dataset_import_jobs` for valid parameters"""
            pass
    class ListDatasetsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_datasets` for valid parameters"""
            pass
    class ListEventTrackersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_event_trackers` for valid parameters"""
            pass
    class ListRecipesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_recipes` for valid parameters"""
            pass
    class ListSchemasPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_schemas` for valid parameters"""
            pass
    class ListSolutionVersionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_solution_versions` for valid parameters"""
            pass
    class ListSolutionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_solutions` for valid parameters"""
            pass
    class ListBatchInferenceJobsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_batch_inference_jobs` for valid parameters"""
            pass
    class ListDatasetExportJobsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_dataset_export_jobs` for valid parameters"""
            pass
    class ListFiltersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_filters` for valid parameters"""
            pass


    class CreateBatchInferenceJobRequest(Mapping):
        pass
    
    class CreateBatchInferenceJobResponse(Mapping):
        pass
    
    class BatchInferenceJobInput(Mapping):
        pass
    
    class BatchInferenceJobOutput(Mapping):
        pass
    
    class BatchInferenceJobConfig(Mapping):
        pass
    
    class CreateCampaignRequest(Mapping):
        pass
    
    class CreateCampaignResponse(Mapping):
        pass
    
    class CampaignConfig(Mapping):
        pass
    
    class CreateDatasetRequest(Mapping):
        pass
    
    class CreateDatasetResponse(Mapping):
        pass
    
    class CreateDatasetExportJobRequest(Mapping):
        pass
    
    class CreateDatasetExportJobResponse(Mapping):
        pass
    
    class DatasetExportJobOutput(Mapping):
        pass
    
    class CreateDatasetGroupRequest(Mapping):
        pass
    
    class CreateDatasetGroupResponse(Mapping):
        pass
    
    class CreateDatasetImportJobRequest(Mapping):
        pass
    
    class CreateDatasetImportJobResponse(Mapping):
        pass
    
    class DataSource(Mapping):
        pass
    
    class CreateEventTrackerRequest(Mapping):
        pass
    
    class CreateEventTrackerResponse(Mapping):
        pass
    
    class CreateFilterRequest(Mapping):
        pass
    
    class CreateFilterResponse(Mapping):
        pass
    
    class CreateSchemaRequest(Mapping):
        pass
    
    class CreateSchemaResponse(Mapping):
        pass
    
    class CreateSolutionRequest(Mapping):
        pass
    
    class CreateSolutionResponse(Mapping):
        pass
    
    class Boolean(object):
        pass
    
    class PerformAutoML(object):
        pass
    
    class SolutionConfig(Mapping):
        pass
    
    class CreateSolutionVersionRequest(Mapping):
        pass
    
    class CreateSolutionVersionResponse(Mapping):
        pass
    
    class DeleteCampaignRequest(Mapping):
        pass
    
    class DeleteDatasetRequest(Mapping):
        pass
    
    class DeleteDatasetGroupRequest(Mapping):
        pass
    
    class DeleteEventTrackerRequest(Mapping):
        pass
    
    class DeleteFilterRequest(Mapping):
        pass
    
    class DeleteSchemaRequest(Mapping):
        pass
    
    class DeleteSolutionRequest(Mapping):
        pass
    
    class DescribeAlgorithmRequest(Mapping):
        pass
    
    class DescribeAlgorithmResponse(Mapping):
        pass
    
    class DescribeBatchInferenceJobRequest(Mapping):
        pass
    
    class DescribeBatchInferenceJobResponse(Mapping):
        pass
    
    class DescribeCampaignRequest(Mapping):
        pass
    
    class DescribeCampaignResponse(Mapping):
        pass
    
    class DescribeDatasetRequest(Mapping):
        pass
    
    class DescribeDatasetResponse(Mapping):
        pass
    
    class DescribeDatasetExportJobRequest(Mapping):
        pass
    
    class DescribeDatasetExportJobResponse(Mapping):
        pass
    
    class DescribeDatasetGroupRequest(Mapping):
        pass
    
    class DescribeDatasetGroupResponse(Mapping):
        pass
    
    class DescribeDatasetImportJobRequest(Mapping):
        pass
    
    class DescribeDatasetImportJobResponse(Mapping):
        pass
    
    class DescribeEventTrackerRequest(Mapping):
        pass
    
    class DescribeEventTrackerResponse(Mapping):
        pass
    
    class DescribeFeatureTransformationRequest(Mapping):
        pass
    
    class DescribeFeatureTransformationResponse(Mapping):
        pass
    
    class DescribeFilterRequest(Mapping):
        pass
    
    class DescribeFilterResponse(Mapping):
        pass
    
    class DescribeRecipeRequest(Mapping):
        pass
    
    class DescribeRecipeResponse(Mapping):
        pass
    
    class DescribeSchemaRequest(Mapping):
        pass
    
    class DescribeSchemaResponse(Mapping):
        pass
    
    class DescribeSolutionRequest(Mapping):
        pass
    
    class DescribeSolutionResponse(Mapping):
        pass
    
    class DescribeSolutionVersionRequest(Mapping):
        pass
    
    class DescribeSolutionVersionResponse(Mapping):
        pass
    
    class GetSolutionMetricsRequest(Mapping):
        pass
    
    class GetSolutionMetricsResponse(Mapping):
        pass
    
    class ListBatchInferenceJobsRequest(Mapping):
        pass
    
    class ListBatchInferenceJobsResponse(Mapping):
        pass
    
    class ListCampaignsRequest(Mapping):
        pass
    
    class ListCampaignsResponse(Mapping):
        pass
    
    class ListDatasetExportJobsRequest(Mapping):
        pass
    
    class ListDatasetExportJobsResponse(Mapping):
        pass
    
    class ListDatasetGroupsRequest(Mapping):
        pass
    
    class ListDatasetGroupsResponse(Mapping):
        pass
    
    class ListDatasetImportJobsRequest(Mapping):
        pass
    
    class ListDatasetImportJobsResponse(Mapping):
        pass
    
    class ListDatasetsRequest(Mapping):
        pass
    
    class ListDatasetsResponse(Mapping):
        pass
    
    class ListEventTrackersRequest(Mapping):
        pass
    
    class ListEventTrackersResponse(Mapping):
        pass
    
    class ListFiltersRequest(Mapping):
        pass
    
    class ListFiltersResponse(Mapping):
        pass
    
    class ListRecipesRequest(Mapping):
        pass
    
    class ListRecipesResponse(Mapping):
        pass
    
    class ListSchemasRequest(Mapping):
        pass
    
    class ListSchemasResponse(Mapping):
        pass
    
    class ListSolutionVersionsRequest(Mapping):
        pass
    
    class ListSolutionVersionsResponse(Mapping):
        pass
    
    class ListSolutionsRequest(Mapping):
        pass
    
    class ListSolutionsResponse(Mapping):
        pass
    
    class StopSolutionVersionCreationRequest(Mapping):
        pass
    
    class UpdateCampaignRequest(Mapping):
        pass
    
    class UpdateCampaignResponse(Mapping):
        pass
    
    def create_batch_inference_job(self, roleArn: str, jobOutput: BatchInferenceJobOutput, jobInput: BatchInferenceJobInput, solutionVersionArn: str, jobName: str, filterArn: str=None, numResults: int=None, batchInferenceJobConfig: BatchInferenceJobConfig=None) -> CreateBatchInferenceJobResponse:
        r"""Creates a batch inference job. The operation can handle up to 50 million records and the input file must be in JSON format. For more information, see <a>recommendations-batch</a>.

        :param self:
        :param batchInferenceJobConfig:  The configuration details of a batch inference job.:<br/>roleArn:  The ARN of the Amazon Identity and Access Management role that has permissions to read and write to your input and output Amazon S3 buckets respectively.<br/>jobOutput:  The path to the Amazon S3 bucket where the job's output will be stored.:<br/>jobInput:  The Amazon S3 path that leads to the input file to base your recommendations on. The input material must be in JSON format.:<br/>numResults:  The number of recommendations to retreive.<br/>filterArn:  The ARN of the filter to apply to the batch inference job. For more information on using filters, see <a href="https://docs.aws.amazon.com/personalize/latest/dg/filter-batch.html">Filtering Batch Recommendations</a>..<br/>solutionVersionArn:  The Amazon Resource Name (ARN) of the solution version that will be used to generate the batch inference recommendations.<br/>jobName:  The name of the batch inference job to create.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>s3DataSource</i> The URI of the Amazon S3 location that contains your input data. The Amazon S3 bucket must be in the same region as the API endpoint you are calling.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>s3DataSource</b>: The URI of the Amazon S3 location that contains your input data. The Amazon S3 bucket must be in the same region as the API endpoint you are calling.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>kmsKeyArn</i> The Amazon Resource Name (ARN) of the Amazon Key Management Service (KMS) key that Amazon Personalize uses to encrypt or decrypt the input and output files of a batch inference job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>path</i> The file path of the Amazon S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>s3DataDestination</i> Information on the Amazon S3 bucket in which the batch inference job's output is stored.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>s3DataDestination</b>: Information on the Amazon S3 bucket in which the batch inference job's output is stored.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>kmsKeyArn</i> The Amazon Resource Name (ARN) of the Amazon Key Management Service (KMS) key that Amazon Personalize uses to encrypt or decrypt the input and output files of a batch inference job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>path</i> The file path of the Amazon S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>itemExplorationConfig</i> A string to string map specifying the exploration configuration hyperparameters, including <code>explorationWeight</code> and <code>explorationItemAgeCutOff</code>, you want to use to configure the amount of item exploration Amazon Personalize uses when recommending items. See <a href="https://docs.aws.amazon.com/personalize/latest/dg/native-recipe-new-item-USER_PERSONALIZATION.html">User-Personalization</a>.<br/>
        :return: batchInferenceJobArn:  The ARN of the batch inference job.<br/>        """
        pass

    def create_campaign(self, minProvisionedTPS: int, solutionVersionArn: str, name: str, campaignConfig: CampaignConfig=None) -> CreateCampaignResponse:
        r"""Creates a campaign by deploying a solution version. When a client calls the <a href="https://docs.aws.amazon.com/personalize/latest/dg/API_RS_GetRecommendations.html">GetRecommendations</a> and <a href="https://docs.aws.amazon.com/personalize/latest/dg/API_RS_GetPersonalizedRanking.html">GetPersonalizedRanking</a> APIs, a campaign is specified in the request.  <b>Minimum Provisioned TPS and Auto-Scaling</b>  A transaction is a single <code>GetRecommendations</code> or <code>GetPersonalizedRanking</code> call. Transactions per second (TPS) is the throughput and unit of billing for Amazon Personalize. The minimum provisioned TPS (<code>minProvisionedTPS</code>) specifies the baseline throughput provisioned by Amazon Personalize, and thus, the minimum billing charge.   If your TPS increases beyond <code>minProvisionedTPS</code>, Amazon Personalize auto-scales the provisioned capacity up and down, but never below <code>minProvisionedTPS</code>. There's a short time delay while the capacity is increased that might cause loss of transactions. The actual TPS used is calculated as the average requests/second within a 5-minute window. You pay for maximum of either the minimum provisioned TPS or the actual TPS. We recommend starting with a low <code>minProvisionedTPS</code>, track your usage using Amazon CloudWatch metrics, and then increase the <code>minProvisionedTPS</code> as necessary.  <b>Status</b>  A campaign can be in one of the following states: <ul> <li> CREATE PENDING &gt; CREATE IN_PROGRESS &gt; ACTIVE -or- CREATE FAILED </li> <li> DELETE PENDING &gt; DELETE IN_PROGRESS </li> </ul> To get the campaign status, call <a>DescribeCampaign</a>. <note> Wait until the <code>status</code> of the campaign is <code>ACTIVE</code> before asking the campaign for recommendations. </note> <p class="title"> <b>Related APIs</b>  <ul> <li>  <a>ListCampaigns</a>  </li> <li>  <a>DescribeCampaign</a>  </li> <li>  <a>UpdateCampaign</a>  </li> <li>  <a>DeleteCampaign</a>  </li> </ul>

        :param self:
        :param campaignConfig:  The configuration details of a campaign.:<br/>minProvisionedTPS:  Specifies the requested minimum provisioned transactions (recommendations) per second that Amazon Personalize will support.<br/>solutionVersionArn:  The Amazon Resource Name (ARN) of the solution version to deploy.<br/>name:  A name for the new campaign. The campaign name must be unique within your account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>itemExplorationConfig</i> A string to string map specifying the exploration configuration hyperparameters, including <code>explorationWeight</code> and <code>explorationItemAgeCutOff</code>, you want to use to configure the amount of item exploration Amazon Personalize uses when recommending items. Provide <code>itemExplorationConfig</code> data only if your solution uses the <a href="https://docs.aws.amazon.com/personalize/latest/dg/native-recipe-new-item-USER_PERSONALIZATION.html">User-Personalization</a> recipe.<br/>
        :return: campaignArn:  The Amazon Resource Name (ARN) of the campaign.<br/>        """
        pass

    def create_dataset(self, datasetType: str, datasetGroupArn: str, schemaArn: str, name: str) -> CreateDatasetResponse:
        r"""Creates an empty dataset and adds it to the specified dataset group. Use <a>CreateDatasetImportJob</a> to import your training data to a dataset. There are three types of datasets: <ul> <li> Interactions </li> <li> Items </li> <li> Users </li> </ul> Each dataset type has an associated schema with required field types. Only the <code>Interactions</code> dataset is required in order to train a model (also referred to as creating a solution). A dataset can be in one of the following states: <ul> <li> CREATE PENDING &gt; CREATE IN_PROGRESS &gt; ACTIVE -or- CREATE FAILED </li> <li> DELETE PENDING &gt; DELETE IN_PROGRESS </li> </ul> To get the status of the dataset, call <a>DescribeDataset</a>. <p class="title"> <b>Related APIs</b>  <ul> <li>  <a>CreateDatasetGroup</a>  </li> <li>  <a>ListDatasets</a>  </li> <li>  <a>DescribeDataset</a>  </li> <li>  <a>DeleteDataset</a>  </li> </ul>

        :param self:
        :param datasetType:  The type of dataset. One of the following (case insensitive) values: <ul> <li> Interactions </li> <li> Items </li> <li> Users </li> </ul><br/>datasetGroupArn:  The Amazon Resource Name (ARN) of the dataset group to add the dataset to.<br/>schemaArn:  The ARN of the schema to associate with the dataset. The schema defines the dataset fields.<br/>name:  The name for the dataset.<br/>
        :return: datasetArn:  The ARN of the dataset.<br/>        """
        pass

    def create_dataset_export_job(self, jobOutput: DatasetExportJobOutput, roleArn: str, datasetArn: str, jobName: str, ingestionMode: str=None) -> CreateDatasetExportJobResponse:
        r""" Creates a job that exports data from your dataset to an Amazon S3 bucket. To allow Amazon Personalize to export the training data, you must specify an service-linked AWS Identity and Access Management (IAM) role that gives Amazon Personalize <code>PutObject</code> permissions for your Amazon S3 bucket. For information, see <a href="https://docs.aws.amazon.com/personalize/latest/dg/export-data.html">Exporting a dataset</a> in the Amazon Personalize developer guide.   <b>Status</b>  A dataset export job can be in one of the following states: <ul> <li> CREATE PENDING &gt; CREATE IN_PROGRESS &gt; ACTIVE -or- CREATE FAILED </li> </ul>  To get the status of the export job, call <a>DescribeDatasetExportJob</a>, and specify the Amazon Resource Name (ARN) of the dataset export job. The dataset export is complete when the status shows as ACTIVE. If the status shows as CREATE FAILED, the response includes a <code>failureReason</code> key, which describes why the job failed. 

        :param self:
        :param jobOutput:  The path to the Amazon S3 bucket where the job's output is stored.:<br/>roleArn:  The Amazon Resource Name (ARN) of the AWS Identity and Access Management service role that has permissions to add data to your output Amazon S3 bucket.<br/>ingestionMode:  The data to export, based on how you imported the data. You can choose to export only <code>BULK</code> data that you imported using a dataset import job, only <code>PUT</code> data that you imported incrementally (using the console, PutEvents, PutUsers and PutItems operations), or <code>ALL</code> for both types. The default value is <code>PUT</code>. <br/>datasetArn:  The Amazon Resource Name (ARN) of the dataset that contains the data to export.<br/>jobName:  The name for the dataset export job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>s3DataDestination</i> The configuration details of an Amazon S3 input or output bucket.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>s3DataDestination</b>: The configuration details of an Amazon S3 input or output bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>kmsKeyArn</i> The Amazon Resource Name (ARN) of the Amazon Key Management Service (KMS) key that Amazon Personalize uses to encrypt or decrypt the input and output files of a batch inference job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>path</i> The file path of the Amazon S3 bucket.<br/>
        :return: datasetExportJobArn:  The Amazon Resource Name (ARN) of the dataset export job.<br/>        """
        pass

    def create_dataset_group(self, name: str, roleArn: str=None, kmsKeyArn: str=None) -> CreateDatasetGroupResponse:
        r"""Creates an empty dataset group. A dataset group contains related datasets that supply data for training a model. A dataset group can contain at most three datasets, one for each type of dataset: <ul> <li> Interactions </li> <li> Items </li> <li> Users </li> </ul> To train a model (create a solution), a dataset group that contains an <code>Interactions</code> dataset is required. Call <a>CreateDataset</a> to add a dataset to the group. A dataset group can be in one of the following states: <ul> <li> CREATE PENDING &gt; CREATE IN_PROGRESS &gt; ACTIVE -or- CREATE FAILED </li> <li> DELETE PENDING </li> </ul> To get the status of the dataset group, call <a>DescribeDatasetGroup</a>. If the status shows as CREATE FAILED, the response includes a <code>failureReason</code> key, which describes why the creation failed. <note> You must wait until the <code>status</code> of the dataset group is <code>ACTIVE</code> before adding a dataset to the group. </note> You can specify an AWS Key Management Service (KMS) key to encrypt the datasets in the group. If you specify a KMS key, you must also include an AWS Identity and Access Management (IAM) role that has permission to access the key. <p class="title"> <b>APIs that require a dataset group ARN in the request</b>  <ul> <li>  <a>CreateDataset</a>  </li> <li>  <a>CreateEventTracker</a>  </li> <li>  <a>CreateSolution</a>  </li> </ul> <p class="title"> <b>Related APIs</b>  <ul> <li>  <a>ListDatasetGroups</a>  </li> <li>  <a>DescribeDatasetGroup</a>  </li> <li>  <a>DeleteDatasetGroup</a>  </li> </ul>

        :param self:
        :param kmsKeyArn:  The Amazon Resource Name (ARN) of a KMS key used to encrypt the datasets.<br/>roleArn:  The ARN of the IAM role that has permissions to access the KMS key. Supplying an IAM role is only valid when also specifying a KMS key.<br/>name:  The name for the new dataset group.<br/>
        :return: datasetGroupArn:  The Amazon Resource Name (ARN) of the new dataset group.<br/>        """
        pass

    def create_dataset_import_job(self, roleArn: str, dataSource: DataSource, datasetArn: str, jobName: str) -> CreateDatasetImportJobResponse:
        r"""Creates a job that imports training data from your data source (an Amazon S3 bucket) to an Amazon Personalize dataset. To allow Amazon Personalize to import the training data, you must specify an AWS Identity and Access Management (IAM) service role that has permission to read from the data source, as Amazon Personalize makes a copy of your data and processes it in an internal AWS system. For information on granting access to your Amazon S3 bucket, see <a href="https://docs.aws.amazon.com/personalize/latest/dg/granting-personalize-s3-access.html">Giving Amazon Personalize Access to Amazon S3 Resources</a>.  <important> The dataset import job replaces any existing data in the dataset that you imported in bulk. </important>  <b>Status</b>  A dataset import job can be in one of the following states: <ul> <li> CREATE PENDING &gt; CREATE IN_PROGRESS &gt; ACTIVE -or- CREATE FAILED </li> </ul> To get the status of the import job, call <a>DescribeDatasetImportJob</a>, providing the Amazon Resource Name (ARN) of the dataset import job. The dataset import is complete when the status shows as ACTIVE. If the status shows as CREATE FAILED, the response includes a <code>failureReason</code> key, which describes why the job failed. <note> Importing takes time. You must wait until the status shows as ACTIVE before training a model using the dataset. </note> <p class="title"> <b>Related APIs</b>  <ul> <li>  <a>ListDatasetImportJobs</a>  </li> <li>  <a>DescribeDatasetImportJob</a>  </li> </ul>

        :param self:
        :param roleArn:  The ARN of the IAM role that has permissions to read from the Amazon S3 data source.<br/>dataSource:  The Amazon S3 bucket that contains the training data to import.:<br/>datasetArn:  The ARN of the dataset that receives the imported data.<br/>jobName:  The name for the dataset import job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>dataLocation</i> The path to the Amazon S3 bucket where the data that you want to upload to your dataset is stored. For example:   <code>s3://bucket-name/folder-name/</code> <br/>
        :return: datasetImportJobArn:  The ARN of the dataset import job.<br/>        """
        pass

    def create_event_tracker(self, datasetGroupArn: str, name: str) -> CreateEventTrackerResponse:
        r"""Creates an event tracker that you use when adding event data to a specified dataset group using the <a href="https://docs.aws.amazon.com/personalize/latest/dg/API_UBS_PutEvents.html">PutEvents</a> API. <note> Only one event tracker can be associated with a dataset group. You will get an error if you call <code>CreateEventTracker</code> using the same dataset group as an existing event tracker. </note> When you create an event tracker, the response includes a tracking ID, which you pass as a parameter when you use the <a href="https://docs.aws.amazon.com/personalize/latest/dg/API_UBS_PutEvents.html">PutEvents</a> operation. Amazon Personalize then appends the event data to the Interactions dataset of the dataset group you specify in your event tracker.  The event tracker can be in one of the following states: <ul> <li> CREATE PENDING &gt; CREATE IN_PROGRESS &gt; ACTIVE -or- CREATE FAILED </li> <li> DELETE PENDING &gt; DELETE IN_PROGRESS </li> </ul> To get the status of the event tracker, call <a>DescribeEventTracker</a>. <note> The event tracker must be in the ACTIVE state before using the tracking ID. </note> <p class="title"> <b>Related APIs</b>  <ul> <li>  <a>ListEventTrackers</a>  </li> <li>  <a>DescribeEventTracker</a>  </li> <li>  <a>DeleteEventTracker</a>  </li> </ul>

        :param self:
        :param datasetGroupArn:  The Amazon Resource Name (ARN) of the dataset group that receives the event data.<br/>name:  The name for the event tracker.<br/>
        :return: trackingId:  The ID of the event tracker. Include this ID in requests to the <a href="https://docs.aws.amazon.com/personalize/latest/dg/API_UBS_PutEvents.html">PutEvents</a> API.<br/>eventTrackerArn:  The ARN of the event tracker.<br/>        """
        pass

    def create_filter(self, filterExpression: str, datasetGroupArn: str, name: str) -> CreateFilterResponse:
        r"""Creates a recommendation filter. For more information, see <a>filter</a>.

        :param self:
        :param filterExpression:  The filter expression defines which items are included or excluded from recommendations. Filter expression must follow specific format rules. For information about filter expression structure and syntax, see <a>filter-expressions</a>.<br/>datasetGroupArn:  The ARN of the dataset group that the filter will belong to.<br/>name:  The name of the filter to create.<br/>
        :return: filterArn:  The ARN of the new filter.<br/>        """
        pass

    def create_schema(self, schema: str, name: str) -> CreateSchemaResponse:
        r"""Creates an Amazon Personalize schema from the specified schema string. The schema you create must be in Avro JSON format. Amazon Personalize recognizes three schema variants. Each schema is associated with a dataset type and has a set of required field and keywords. You specify a schema when you call <a>CreateDataset</a>. <p class="title"> <b>Related APIs</b>  <ul> <li>  <a>ListSchemas</a>  </li> <li>  <a>DescribeSchema</a>  </li> <li>  <a>DeleteSchema</a>  </li> </ul>

        :param self:
        :param schema:  A schema in Avro JSON format.<br/>name:  The name for the schema.<br/>
        :return: schemaArn:  The Amazon Resource Name (ARN) of the created schema.<br/>        """
        pass

    def create_solution(self, datasetGroupArn: str, name: str, performHPO: Boolean=None, performAutoML: PerformAutoML=None, recipeArn: str=None, eventType: str=None, solutionConfig: SolutionConfig=None) -> CreateSolutionResponse:
        r"""Creates the configuration for training a model. A trained model is known as a solution. After the configuration is created, you train the model (create a solution) by calling the <a>CreateSolutionVersion</a> operation. Every time you call <code>CreateSolutionVersion</code>, a new version of the solution is created. After creating a solution version, you check its accuracy by calling <a>GetSolutionMetrics</a>. When you are satisfied with the version, you deploy it using <a>CreateCampaign</a>. The campaign provides recommendations to a client through the <a href="https://docs.aws.amazon.com/personalize/latest/dg/API_RS_GetRecommendations.html">GetRecommendations</a> API. To train a model, Amazon Personalize requires training data and a recipe. The training data comes from the dataset group that you provide in the request. A recipe specifies the training algorithm and a feature transformation. You can specify one of the predefined recipes provided by Amazon Personalize. Alternatively, you can specify <code>performAutoML</code> and Amazon Personalize will analyze your data and select the optimum USER_PERSONALIZATION recipe for you. <note> Amazon Personalize doesn't support configuring the <code>hpoObjective</code> for solution hyperparameter optimization at this time. </note>  <b>Status</b>  A solution can be in one of the following states: <ul> <li> CREATE PENDING &gt; CREATE IN_PROGRESS &gt; ACTIVE -or- CREATE FAILED </li> <li> DELETE PENDING &gt; DELETE IN_PROGRESS </li> </ul> To get the status of the solution, call <a>DescribeSolution</a>. Wait until the status shows as ACTIVE before calling <code>CreateSolutionVersion</code>. <p class="title"> <b>Related APIs</b>  <ul> <li>  <a>ListSolutions</a>  </li> <li>  <a>CreateSolutionVersion</a>  </li> <li>  <a>DescribeSolution</a>  </li> <li>  <a>DeleteSolution</a>  </li> </ul> <ul> <li>  <a>ListSolutionVersions</a>  </li> <li>  <a>DescribeSolutionVersion</a>  </li> </ul>

        :param self:
        :param solutionConfig:  The configuration to use with the solution. When <code>performAutoML</code> is set to true, Amazon Personalize only evaluates the <code>autoMLConfig</code> section of the solution configuration. <note> Amazon Personalize doesn't support configuring the <code>hpoObjective</code> at this time. </note>:<br/>eventType:  When your have multiple event types (using an <code>EVENT_TYPE</code> schema field), this parameter specifies which event type (for example, 'click' or 'like') is used for training the model. If you do not provide an <code>eventType</code>, Amazon Personalize will use all interactions for training with equal weight regardless of type.<br/>datasetGroupArn:  The Amazon Resource Name (ARN) of the dataset group that provides the training data.<br/>recipeArn:  The ARN of the recipe to use for model training. Only specified when <code>performAutoML</code> is false.<br/>performAutoML:  Whether to perform automated machine learning (AutoML). The default is <code>false</code>. For this case, you must specify <code>recipeArn</code>. When set to <code>true</code>, Amazon Personalize analyzes your training data and selects the optimal USER_PERSONALIZATION recipe and hyperparameters. In this case, you must omit <code>recipeArn</code>. Amazon Personalize determines the optimal recipe by running tests with different values for the hyperparameters. AutoML lengthens the training process as compared to selecting a specific recipe.<br/>performHPO:  Whether to perform hyperparameter optimization (HPO) on the specified or selected recipe. The default is <code>false</code>. When performing AutoML, this parameter is always <code>true</code> and you should not set it to <code>false</code>.<br/>name:  The name for the solution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>optimizationObjective</i> Describes the additional objective for the solution, such as maximizing streaming minutes or increasing revenue. For more information see <a href="https://docs.aws.amazon.com/personalize/latest/dg/optimizing-solution-for-objective.html">Optimizing a solution</a>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>optimizationObjective</b>: Describes the additional objective for the solution, such as maximizing streaming minutes or increasing revenue. For more information see <a href="https://docs.aws.amazon.com/personalize/latest/dg/optimizing-solution-for-objective.html">Optimizing a solution</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>autoMLConfig</i> The <a>AutoMLConfig</a> object containing a list of recipes to search when AutoML is performed.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>autoMLConfig</b>: The <a>AutoMLConfig</a> object containing a list of recipes to search when AutoML is performed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>featureTransformationParameters</i> Lists the feature transformation parameters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>algorithmHyperParameters</i> Lists the hyperparameter names and ranges.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>hpoConfig</i> Describes the properties for hyperparameter optimization (HPO).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>hpoConfig</b>: Describes the properties for hyperparameter optimization (HPO).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>eventValueThreshold</i> Only events with a value greater than or equal to this threshold are used for training a model.<br/>The metric to optimize during HPO. <note> Amazon Personalize doesn't support configuring the <code>hpoObjective</code> at this time. </note>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>hpoObjective</b>: The metric to optimize during HPO. <note> Amazon Personalize doesn't support configuring the <code>hpoObjective</code> at this time. </note>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>recipeList</i> The list of candidate recipes.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>metricName</i> The metric to optimize.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>objectiveSensitivity</i> Specifies how Amazon Personalize balances the importance of your optimization objective versus relevance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>itemAttribute</i> The numerical metadata column in an Items dataset related to the optimization objective. For example, VIDEO_LENGTH (to maximize streaming minutes), or PRICE (to maximize revenue).<br/>
        :return: solutionArn:  The ARN of the solution.<br/>        """
        pass

    def create_solution_version(self, solutionArn: str, trainingMode: str=None) -> CreateSolutionVersionResponse:
        r"""Trains or retrains an active solution. A solution is created using the <a>CreateSolution</a> operation and must be in the ACTIVE state before calling <code>CreateSolutionVersion</code>. A new version of the solution is created every time you call this operation.  <b>Status</b>  A solution version can be in one of the following states: <ul> <li> CREATE PENDING </li> <li> CREATE IN_PROGRESS </li> <li> ACTIVE </li> <li> CREATE FAILED </li> <li> CREATE STOPPING </li> <li> CREATE STOPPED </li> </ul> To get the status of the version, call <a>DescribeSolutionVersion</a>. Wait until the status shows as ACTIVE before calling <code>CreateCampaign</code>. If the status shows as CREATE FAILED, the response includes a <code>failureReason</code> key, which describes why the job failed. <p class="title"> <b>Related APIs</b>  <ul> <li>  <a>ListSolutionVersions</a>  </li> <li>  <a>DescribeSolutionVersion</a>  </li> </ul> <ul> <li>  <a>ListSolutions</a>  </li> <li>  <a>CreateSolution</a>  </li> <li>  <a>DescribeSolution</a>  </li> <li>  <a>DeleteSolution</a>  </li> </ul>

        :param self:
        :param trainingMode:  The scope of training to be performed when creating the solution version. The <code>FULL</code> option trains the solution version based on the entirety of the input solution's training data, while the <code>UPDATE</code> option processes only the data that has changed in comparison to the input solution. Choose <code>UPDATE</code> when you want to incrementally update your solution version instead of creating an entirely new one. <important> The <code>UPDATE</code> option can only be used when you already have an active solution version created from the input solution using the <code>FULL</code> option and the input solution was trained with the <a href="https://docs.aws.amazon.com/personalize/latest/dg/native-recipe-new-item-USER_PERSONALIZATION.html">User-Personalization</a> recipe or the <a href="https://docs.aws.amazon.com/personalize/latest/dg/native-recipe-hrnn-coldstart.html">HRNN-Coldstart</a> recipe. </important><br/>solutionArn:  The Amazon Resource Name (ARN) of the solution containing the training configuration information.<br/>
        :return: solutionVersionArn:  The ARN of the new solution version.<br/>        """
        pass

    def delete_campaign(self, campaignArn: str):
        r"""Removes a campaign by deleting the solution deployment. The solution that the campaign is based on is not deleted and can be redeployed when needed. A deleted campaign can no longer be specified in a <a href="https://docs.aws.amazon.com/personalize/latest/dg/API_RS_GetRecommendations.html">GetRecommendations</a> request. For more information on campaigns, see <a>CreateCampaign</a>.

        :param self:
        :param campaignArn:  The Amazon Resource Name (ARN) of the campaign to delete.<br/>
        :return:         """
        pass

    def delete_dataset(self, datasetArn: str):
        r"""Deletes a dataset. You can't delete a dataset if an associated <code>DatasetImportJob</code> or <code>SolutionVersion</code> is in the CREATE PENDING or IN PROGRESS state. For more information on datasets, see <a>CreateDataset</a>.

        :param self:
        :param datasetArn:  The Amazon Resource Name (ARN) of the dataset to delete.<br/>
        :return:         """
        pass

    def delete_dataset_group(self, datasetGroupArn: str):
        r"""Deletes a dataset group. Before you delete a dataset group, you must delete the following: <ul> <li> All associated event trackers. </li> <li> All associated solutions. </li> <li> All datasets in the dataset group. </li> </ul>

        :param self:
        :param datasetGroupArn:  The ARN of the dataset group to delete.<br/>
        :return:         """
        pass

    def delete_event_tracker(self, eventTrackerArn: str):
        r"""Deletes the event tracker. Does not delete the event-interactions dataset from the associated dataset group. For more information on event trackers, see <a>CreateEventTracker</a>.

        :param self:
        :param eventTrackerArn:  The Amazon Resource Name (ARN) of the event tracker to delete.<br/>
        :return:         """
        pass

    def delete_filter(self, filterArn: str):
        r"""Deletes a filter.

        :param self:
        :param filterArn:  The ARN of the filter to delete.<br/>
        :return:         """
        pass

    def delete_schema(self, schemaArn: str):
        r"""Deletes a schema. Before deleting a schema, you must delete all datasets referencing the schema. For more information on schemas, see <a>CreateSchema</a>.

        :param self:
        :param schemaArn:  The Amazon Resource Name (ARN) of the schema to delete.<br/>
        :return:         """
        pass

    def delete_solution(self, solutionArn: str):
        r"""Deletes all versions of a solution and the <code>Solution</code> object itself. Before deleting a solution, you must delete all campaigns based on the solution. To determine what campaigns are using the solution, call <a>ListCampaigns</a> and supply the Amazon Resource Name (ARN) of the solution. You can't delete a solution if an associated <code>SolutionVersion</code> is in the CREATE PENDING or IN PROGRESS state. For more information on solutions, see <a>CreateSolution</a>.

        :param self:
        :param solutionArn:  The ARN of the solution to delete.<br/>
        :return:         """
        pass

    def describe_algorithm(self, algorithmArn: str) -> DescribeAlgorithmResponse:
        r"""Describes the given algorithm.

        :param self:
        :param algorithmArn:  The Amazon Resource Name (ARN) of the algorithm to describe.<br/>
        :return: algorithm:  A listing of the properties of the algorithm.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedDateTime</i> The date and time (in Unix time) that the algorithm was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationDateTime</i> The date and time (in Unix time) that the algorithm was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>roleArn</i> The Amazon Resource Name (ARN) of the role.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>trainingInputMode</i> The training input mode.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>defaultResourceConfig</i> Specifies the default maximum number of training jobs and parallel training jobs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>defaultHyperParameterRanges</i> Specifies the default hyperparameters, their ranges, and whether they are tunable. A tunable hyperparameter can have its value determined during hyperparameter optimization (HPO).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>defaultHyperParameterRanges</b>: Specifies the default hyperparameters, their ranges, and whether they are tunable. A tunable hyperparameter can have its value determined during hyperparameter optimization (HPO).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>defaultHyperParameters</i> Specifies the default hyperparameters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>algorithmImage</i> The URI of the Docker container for the algorithm image.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>algorithmImage</b>: The URI of the Docker container for the algorithm image.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>algorithmArn</i> The Amazon Resource Name (ARN) of the algorithm.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the algorithm.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>dockerURI</i> The URI of the Docker container for the algorithm image.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the algorithm image.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>categoricalHyperParameterRanges</i> The categorical hyperparameters and their default ranges.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>continuousHyperParameterRanges</i> The continuous hyperparameters and their default ranges.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>integerHyperParameterRanges</i> The integer-valued hyperparameters and their default ranges.<br/>        """
        pass

    def describe_batch_inference_job(self, batchInferenceJobArn: str) -> DescribeBatchInferenceJobResponse:
        r"""Gets the properties of a batch inference job including name, Amazon Resource Name (ARN), status, input and output configurations, and the ARN of the solution version used to generate the recommendations.

        :param self:
        :param batchInferenceJobArn:  The ARN of the batch inference job to describe.<br/>
        :return: batchInferenceJob:  Information on the specified batch inference job.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedDateTime</i> The time at which the batch inference job was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationDateTime</i> The time at which the batch inference job was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the batch inference job. The status is one of the following values: <ul> <li> PENDING </li> <li> IN PROGRESS </li> <li> ACTIVE </li> <li> CREATE FAILED </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>roleArn</i> The ARN of the Amazon Identity and Access Management (IAM) role that requested the batch inference job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>batchInferenceJobConfig</i> A string to string map of the configuration details of a batch inference job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>batchInferenceJobConfig</b>: A string to string map of the configuration details of a batch inference job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>jobOutput</i> The Amazon S3 bucket that contains the output data generated by the batch inference job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>jobOutput</b>: The Amazon S3 bucket that contains the output data generated by the batch inference job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>jobInput</i> The Amazon S3 path that leads to the input data used to generate the batch inference job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>jobInput</b>: The Amazon S3 path that leads to the input data used to generate the batch inference job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>numResults</i> The number of recommendations generated by the batch inference job. This number includes the error messages generated for failed input records.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>solutionVersionArn</i> The Amazon Resource Name (ARN) of the solution version from which the batch inference job was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>failureReason</i> If the batch inference job failed, the reason for the failure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>filterArn</i> The ARN of the filter used on the batch inference job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>batchInferenceJobArn</i> The Amazon Resource Name (ARN) of the batch inference job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>jobName</i> The name of the batch inference job.<br/>The URI of the Amazon S3 location that contains your input data. The Amazon S3 bucket must be in the same region as the API endpoint you are calling.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>s3DataSource</b>: The URI of the Amazon S3 location that contains your input data. The Amazon S3 bucket must be in the same region as the API endpoint you are calling.Information on the Amazon S3 bucket in which the batch inference job's output is stored.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>s3DataDestination</b>: Information on the Amazon S3 bucket in which the batch inference job's output is stored.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>itemExplorationConfig</i> A string to string map specifying the exploration configuration hyperparameters, including <code>explorationWeight</code> and <code>explorationItemAgeCutOff</code>, you want to use to configure the amount of item exploration Amazon Personalize uses when recommending items. See <a href="https://docs.aws.amazon.com/personalize/latest/dg/native-recipe-new-item-USER_PERSONALIZATION.html">User-Personalization</a>.<br/>        """
        pass

    def describe_campaign(self, campaignArn: str) -> DescribeCampaignResponse:
        r"""Describes the given campaign, including its status. A campaign can be in one of the following states: <ul> <li> CREATE PENDING &gt; CREATE IN_PROGRESS &gt; ACTIVE -or- CREATE FAILED </li> <li> DELETE PENDING &gt; DELETE IN_PROGRESS </li> </ul> When the <code>status</code> is <code>CREATE FAILED</code>, the response includes the <code>failureReason</code> key, which describes why. For more information on campaigns, see <a>CreateCampaign</a>.

        :param self:
        :param campaignArn:  The Amazon Resource Name (ARN) of the campaign.<br/>
        :return: campaign:  The properties of the campaign.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>latestCampaignUpdate</i> Provides a summary of the properties of a campaign update. For a complete listing, call the <a>DescribeCampaign</a> API.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>latestCampaignUpdate</b>: Provides a summary of the properties of a campaign update. For a complete listing, call the <a>DescribeCampaign</a> API.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedDateTime</i> The date and time (in Unix format) that the campaign was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationDateTime</i> The date and time (in Unix format) that the campaign was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>failureReason</i> If a campaign fails, the reason behind the failure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the campaign. A campaign can be in one of the following states: <ul> <li> CREATE PENDING &gt; CREATE IN_PROGRESS &gt; ACTIVE -or- CREATE FAILED </li> <li> DELETE PENDING &gt; DELETE IN_PROGRESS </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>campaignConfig</i> The configuration details of a campaign.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>campaignConfig</b>: The configuration details of a campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>minProvisionedTPS</i> Specifies the requested minimum provisioned transactions (recommendations) per second.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>solutionVersionArn</i> The Amazon Resource Name (ARN) of a specific version of the solution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>campaignArn</i> The Amazon Resource Name (ARN) of the campaign. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>itemExplorationConfig</i> A string to string map specifying the exploration configuration hyperparameters, including <code>explorationWeight</code> and <code>explorationItemAgeCutOff</code>, you want to use to configure the amount of item exploration Amazon Personalize uses when recommending items. Provide <code>itemExplorationConfig</code> data only if your solution uses the <a href="https://docs.aws.amazon.com/personalize/latest/dg/native-recipe-new-item-USER_PERSONALIZATION.html">User-Personalization</a> recipe.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>minProvisionedTPS</i> Specifies the requested minimum provisioned transactions (recommendations) per second that Amazon Personalize will support.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>solutionVersionArn</i> The Amazon Resource Name (ARN) of the deployed solution version.<br/>The configuration details of a campaign.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>campaignConfig</b>: The configuration details of a campaign.        """
        pass

    def describe_dataset(self, datasetArn: str) -> DescribeDatasetResponse:
        r"""Describes the given dataset. For more information on datasets, see <a>CreateDataset</a>.

        :param self:
        :param datasetArn:  The Amazon Resource Name (ARN) of the dataset to describe.<br/>
        :return: dataset:  A listing of the dataset's properties.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedDateTime</i> A time stamp that shows when the dataset was updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationDateTime</i> The creation date and time (in Unix time) of the dataset.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the dataset. A dataset can be in one of the following states: <ul> <li> CREATE PENDING &gt; CREATE IN_PROGRESS &gt; ACTIVE -or- CREATE FAILED </li> <li> DELETE PENDING &gt; DELETE IN_PROGRESS </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>schemaArn</i> The ARN of the associated schema.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>datasetType</i> One of the following values: <ul> <li> Interactions </li> <li> Items </li> <li> Users </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>datasetGroupArn</i> The Amazon Resource Name (ARN) of the dataset group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>datasetArn</i> The Amazon Resource Name (ARN) of the dataset that you want metadata for.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the dataset.<br/>        """
        pass

    def describe_dataset_export_job(self, datasetExportJobArn: str) -> DescribeDatasetExportJobResponse:
        r"""Describes the dataset export job created by <a>CreateDatasetExportJob</a>, including the export job status.

        :param self:
        :param datasetExportJobArn:  The Amazon Resource Name (ARN) of the dataset export job to describe.<br/>
        :return: datasetExportJob:  Information about the dataset export job, including the status. The status is one of the following values: <ul> <li> CREATE PENDING </li> <li> CREATE IN_PROGRESS </li> <li> ACTIVE </li> <li> CREATE FAILED </li> </ul>:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>failureReason</i> If a dataset export job fails, provides the reason why.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedDateTime</i> The date and time (in Unix time) the status of the dataset export job was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationDateTime</i> The creation date and time (in Unix time) of the dataset export job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>jobOutput</i> The path to the Amazon S3 bucket where the job's output is stored. For example:  <code>s3://bucket-name/folder-name/</code> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>jobOutput</b>: The path to the Amazon S3 bucket where the job's output is stored. For example:  <code>s3://bucket-name/folder-name/</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the dataset export job. A dataset export job can be in one of the following states: <ul> <li> CREATE PENDING &gt; CREATE IN_PROGRESS &gt; ACTIVE -or- CREATE FAILED </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>roleArn</i> The Amazon Resource Name (ARN) of the AWS Identity and Access Management service role that has permissions to add data to your output Amazon S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ingestionMode</i> The data to export, based on how you imported the data. You can choose to export <code>BULK</code> data that you imported using a dataset import job, <code>PUT</code> data that you imported incrementally (using the console, PutEvents, PutUsers and PutItems operations), or <code>ALL</code> for both types. The default value is <code>PUT</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>datasetArn</i> The Amazon Resource Name (ARN) of the dataset to export.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>datasetExportJobArn</i> The Amazon Resource Name (ARN) of the dataset export job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>jobName</i> The name of the export job.<br/>The configuration details of an Amazon S3 input or output bucket.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>s3DataDestination</b>: The configuration details of an Amazon S3 input or output bucket.        """
        pass

    def describe_dataset_group(self, datasetGroupArn: str) -> DescribeDatasetGroupResponse:
        r"""Describes the given dataset group. For more information on dataset groups, see <a>CreateDatasetGroup</a>.

        :param self:
        :param datasetGroupArn:  The Amazon Resource Name (ARN) of the dataset group to describe.<br/>
        :return: datasetGroup:  A listing of the dataset group's properties.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>failureReason</i> If creating a dataset group fails, provides the reason why.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedDateTime</i> The last update date and time (in Unix time) of the dataset group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationDateTime</i> The creation date and time (in Unix time) of the dataset group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>kmsKeyArn</i> The Amazon Resource Name (ARN) of the KMS key used to encrypt the datasets.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>roleArn</i> The ARN of the IAM role that has permissions to create the dataset group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current status of the dataset group. A dataset group can be in one of the following states: <ul> <li> CREATE PENDING &gt; CREATE IN_PROGRESS &gt; ACTIVE -or- CREATE FAILED </li> <li> DELETE PENDING </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>datasetGroupArn</i> The Amazon Resource Name (ARN) of the dataset group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the dataset group.<br/>        """
        pass

    def describe_dataset_import_job(self, datasetImportJobArn: str) -> DescribeDatasetImportJobResponse:
        r"""Describes the dataset import job created by <a>CreateDatasetImportJob</a>, including the import job status.

        :param self:
        :param datasetImportJobArn:  The Amazon Resource Name (ARN) of the dataset import job to describe.<br/>
        :return: datasetImportJob:  Information about the dataset import job, including the status. The status is one of the following values: <ul> <li> CREATE PENDING </li> <li> CREATE IN_PROGRESS </li> <li> ACTIVE </li> <li> CREATE FAILED </li> </ul>:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>failureReason</i> If a dataset import job fails, provides the reason why.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedDateTime</i> The date and time (in Unix time) the dataset was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationDateTime</i> The creation date and time (in Unix time) of the dataset import job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the dataset import job. A dataset import job can be in one of the following states: <ul> <li> CREATE PENDING &gt; CREATE IN_PROGRESS &gt; ACTIVE -or- CREATE FAILED </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>roleArn</i> The ARN of the AWS Identity and Access Management (IAM) role that has permissions to read from the Amazon S3 data source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>dataSource</i> The Amazon S3 bucket that contains the training data to import.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>dataSource</b>: The Amazon S3 bucket that contains the training data to import.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>datasetArn</i> The Amazon Resource Name (ARN) of the dataset that receives the imported data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>datasetImportJobArn</i> The ARN of the dataset import job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>jobName</i> The name of the import job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>dataLocation</i> The path to the Amazon S3 bucket where the data that you want to upload to your dataset is stored. For example:   <code>s3://bucket-name/folder-name/</code> <br/>        """
        pass

    def describe_event_tracker(self, eventTrackerArn: str) -> DescribeEventTrackerResponse:
        r"""Describes an event tracker. The response includes the <code>trackingId</code> and <code>status</code> of the event tracker. For more information on event trackers, see <a>CreateEventTracker</a>.

        :param self:
        :param eventTrackerArn:  The Amazon Resource Name (ARN) of the event tracker to describe.<br/>
        :return: eventTracker:  An object that describes the event tracker.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedDateTime</i> The date and time (in Unix time) that the event tracker was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationDateTime</i> The date and time (in Unix format) that the event tracker was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the event tracker. An event tracker can be in one of the following states: <ul> <li> CREATE PENDING &gt; CREATE IN_PROGRESS &gt; ACTIVE -or- CREATE FAILED </li> <li> DELETE PENDING &gt; DELETE IN_PROGRESS </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>datasetGroupArn</i> The Amazon Resource Name (ARN) of the dataset group that receives the event data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>trackingId</i> The ID of the event tracker. Include this ID in requests to the <a href="https://docs.aws.amazon.com/personalize/latest/dg/API_UBS_PutEvents.html">PutEvents</a> API.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>accountId</i> The Amazon AWS account that owns the event tracker.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>eventTrackerArn</i> The ARN of the event tracker.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the event tracker.<br/>        """
        pass

    def describe_feature_transformation(self, featureTransformationArn: str) -> DescribeFeatureTransformationResponse:
        r"""Describes the given feature transformation.

        :param self:
        :param featureTransformationArn:  The Amazon Resource Name (ARN) of the feature transformation to describe.<br/>
        :return: featureTransformation:  A listing of the FeatureTransformation properties.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the feature transformation. A feature transformation can be in one of the following states: <ul> <li> CREATE PENDING &gt; CREATE IN_PROGRESS &gt; ACTIVE -or- CREATE FAILED </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedDateTime</i> The last update date and time (in Unix time) of the feature transformation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationDateTime</i> The creation date and time (in Unix time) of the feature transformation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>defaultParameters</i> Provides the default parameters for feature transformation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>featureTransformationArn</i> The Amazon Resource Name (ARN) of the FeatureTransformation object.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the feature transformation.<br/>        """
        pass

    def describe_filter(self, filterArn: str) -> DescribeFilterResponse:
        r"""Describes a filter's properties.

        :param self:
        :param filterArn:  The ARN of the filter to describe.<br/>
        :return: filter:  The filter's details.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the filter.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>filterExpression</i> Specifies the type of item interactions to filter out of recommendation results. The filter expression must follow specific format rules. For information about filter expression structure and syntax, see <a>filter-expressions</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>failureReason</i> If the filter failed, the reason for its failure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>datasetGroupArn</i> The ARN of the dataset group to which the filter belongs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedDateTime</i> The time at which the filter was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationDateTime</i> The time at which the filter was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>filterArn</i> The ARN of the filter.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the filter.<br/>        """
        pass

    def describe_recipe(self, recipeArn: str) -> DescribeRecipeResponse:
        r"""Describes a recipe. A recipe contains three items: <ul> <li> An algorithm that trains a model. </li> <li> Hyperparameters that govern the training. </li> <li> Feature transformation information for modifying the input data before training. </li> </ul> Amazon Personalize provides a set of predefined recipes. You specify a recipe when you create a solution with the <a>CreateSolution</a> API. <code>CreateSolution</code> trains a model by using the algorithm in the specified recipe and a training dataset. The solution, when deployed as a campaign, can provide recommendations using the <a href="https://docs.aws.amazon.com/personalize/latest/dg/API_RS_GetRecommendations.html">GetRecommendations</a> API.

        :param self:
        :param recipeArn:  The Amazon Resource Name (ARN) of the recipe to describe.<br/>
        :return: recipe:  An object that describes the recipe.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedDateTime</i> The date and time (in Unix format) that the recipe was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>recipeType</i> One of the following values: <ul> <li> PERSONALIZED_RANKING </li> <li> RELATED_ITEMS </li> <li> USER_PERSONALIZATION </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationDateTime</i> The date and time (in Unix format) that the recipe was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> The description of the recipe.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the recipe.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>featureTransformationArn</i> The ARN of the FeatureTransformation object.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>algorithmArn</i> The Amazon Resource Name (ARN) of the algorithm that Amazon Personalize uses to train the model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>recipeArn</i> The Amazon Resource Name (ARN) of the recipe.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the recipe.<br/>        """
        pass

    def describe_schema(self, schemaArn: str) -> DescribeSchemaResponse:
        r"""Describes a schema. For more information on schemas, see <a>CreateSchema</a>.

        :param self:
        :param schemaArn:  The Amazon Resource Name (ARN) of the schema to retrieve.<br/>
        :return: schema:  The requested schema.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedDateTime</i> The date and time (in Unix time) that the schema was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationDateTime</i> The date and time (in Unix time) that the schema was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>schema</i> The schema.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>schemaArn</i> The Amazon Resource Name (ARN) of the schema.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the schema.<br/>        """
        pass

    def describe_solution(self, solutionArn: str) -> DescribeSolutionResponse:
        r"""Describes a solution. For more information on solutions, see <a>CreateSolution</a>.

        :param self:
        :param solutionArn:  The Amazon Resource Name (ARN) of the solution to describe.<br/>
        :return: solution:  An object that describes the solution.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>latestSolutionVersion</i> Describes the latest version of the solution, including the status and the ARN.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>latestSolutionVersion</b>: Describes the latest version of the solution, including the status and the ARN.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedDateTime</i> The date and time (in Unix time) that the solution was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationDateTime</i> The creation date and time (in Unix time) of the solution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the solution. A solution can be in one of the following states: <ul> <li> CREATE PENDING &gt; CREATE IN_PROGRESS &gt; ACTIVE -or- CREATE FAILED </li> <li> DELETE PENDING &gt; DELETE IN_PROGRESS </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>autoMLResult</i> When <code>performAutoML</code> is true, specifies the best recipe found.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>autoMLResult</b>: When <code>performAutoML</code> is true, specifies the best recipe found.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>solutionConfig</i> Describes the configuration properties for the solution.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>solutionConfig</b>: Describes the configuration properties for the solution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>eventType</i> The event type (for example, 'click' or 'like') that is used for training the model. If no <code>eventType</code> is provided, Amazon Personalize uses all interactions for training with equal weight regardless of type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>datasetGroupArn</i> The Amazon Resource Name (ARN) of the dataset group that provides the training data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>recipeArn</i> The ARN of the recipe used to create the solution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>performAutoML</i> When true, Amazon Personalize performs a search for the best USER_PERSONALIZATION recipe from the list specified in the solution configuration (<code>recipeArn</code> must not be specified). When false (the default), Amazon Personalize uses <code>recipeArn</code> for training.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>performHPO</i> Whether to perform hyperparameter optimization (HPO) on the chosen recipe. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>solutionArn</i> The ARN of the solution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the solution.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>eventValueThreshold</i> Only events with a value greater than or equal to this threshold are used for training a model.<br/>Describes the properties for hyperparameter optimization (HPO).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>hpoConfig</b>: Describes the properties for hyperparameter optimization (HPO).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>bestRecipeArn</i> The Amazon Resource Name (ARN) of the best recipe.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>failureReason</i> If a solution version fails, the reason behind the failure.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedDateTime</i> The date and time (in Unix time) that the solution version was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>creationDateTime</i> The date and time (in Unix time) that this version of a solution was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the solution version. A solution version can be in one of the following states: <ul> <li> CREATE PENDING &gt; CREATE IN_PROGRESS &gt; ACTIVE -or- CREATE FAILED </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>solutionVersionArn</i> The Amazon Resource Name (ARN) of the solution version.<br/>        """
        pass

    def describe_solution_version(self, solutionVersionArn: str) -> DescribeSolutionVersionResponse:
        r"""Describes a specific version of a solution. For more information on solutions, see <a>CreateSolution</a>.

        :param self:
        :param solutionVersionArn:  The Amazon Resource Name (ARN) of the solution version.<br/>
        :return: solutionVersion:  The solution version.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedDateTime</i> The date and time (in Unix time) that the solution was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationDateTime</i> The date and time (in Unix time) that this version of the solution was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>failureReason</i> If training a solution version fails, the reason for the failure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the solution version. A solution version can be in one of the following states: <ul> <li> CREATE PENDING </li> <li> CREATE IN_PROGRESS </li> <li> ACTIVE </li> <li> CREATE FAILED </li> <li> CREATE STOPPING </li> <li> CREATE STOPPED </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tunedHPOParams</i> If hyperparameter optimization was performed, contains the hyperparameter values of the best performing model.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>tunedHPOParams</b>: If hyperparameter optimization was performed, contains the hyperparameter values of the best performing model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>trainingMode</i> The scope of training to be performed when creating the solution version. The <code>FULL</code> option trains the solution version based on the entirety of the input solution's training data, while the <code>UPDATE</code> option processes only the data that has changed in comparison to the input solution. Choose <code>UPDATE</code> when you want to incrementally update your solution version instead of creating an entirely new one. <important> The <code>UPDATE</code> option can only be used when you already have an active solution version created from the input solution using the <code>FULL</code> option and the input solution was trained with the <a href="https://docs.aws.amazon.com/personalize/latest/dg/native-recipe-new-item-USER_PERSONALIZATION.html">User-Personalization</a> recipe or the <a href="https://docs.aws.amazon.com/personalize/latest/dg/native-recipe-hrnn-coldstart.html">HRNN-Coldstart</a> recipe. </important><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>trainingHours</i> The time used to train the model. You are billed for the time it takes to train a model. This field is visible only after Amazon Personalize successfully trains a model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>solutionConfig</i> Describes the configuration properties for the solution.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>solutionConfig</b>: Describes the configuration properties for the solution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>datasetGroupArn</i> The Amazon Resource Name (ARN) of the dataset group providing the training data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>eventType</i> The event type (for example, 'click' or 'like') that is used for training the model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>recipeArn</i> The ARN of the recipe used in the solution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>performAutoML</i> When true, Amazon Personalize searches for the most optimal recipe according to the solution configuration. When false (the default), Amazon Personalize uses <code>recipeArn</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>performHPO</i> Whether to perform hyperparameter optimization (HPO) on the chosen recipe. The default is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>solutionArn</i> The ARN of the solution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>solutionVersionArn</i> The ARN of the solution version.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>eventValueThreshold</i> Only events with a value greater than or equal to this threshold are used for training a model.<br/>Describes the properties for hyperparameter optimization (HPO).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>hpoConfig</b>: Describes the properties for hyperparameter optimization (HPO).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>algorithmHyperParameters</i> A list of the hyperparameter values of the best performing model.<br/>        """
        pass

    def get_solution_metrics(self, solutionVersionArn: str) -> GetSolutionMetricsResponse:
        r"""Gets the metrics for the specified solution version.

        :param self:
        :param solutionVersionArn:  The Amazon Resource Name (ARN) of the solution version for which to get metrics.<br/>
        :return: metrics:  The metrics for the solution version.<br/>solutionVersionArn:  The same solution version ARN as specified in the request.<br/>        """
        pass

    def list_batch_inference_jobs(self, solutionVersionArn: str=None, nextToken: str=None, maxResults: int=None) -> ListBatchInferenceJobsResponse:
        r"""Gets a list of the batch inference jobs that have been performed off of a solution version.

        :param self:
        :param maxResults:  The maximum number of batch inference job results to return in each page. The default value is 100.<br/>nextToken:  The token to request the next page of results.<br/>solutionVersionArn:  The Amazon Resource Name (ARN) of the solution version from which the batch inference jobs were created.<br/>
        :return: nextToken:  The token to use to retrieve the next page of results. The value is <code>null</code> when there are no more results to return.<br/>batchInferenceJobs:  A list containing information on each job that is returned.<br/>        """
        pass

    def list_campaigns(self, solutionArn: str=None, nextToken: str=None, maxResults: int=None) -> ListCampaignsResponse:
        r"""Returns a list of campaigns that use the given solution. When a solution is not specified, all the campaigns associated with the account are listed. The response provides the properties for each campaign, including the Amazon Resource Name (ARN). For more information on campaigns, see <a>CreateCampaign</a>.

        :param self:
        :param maxResults:  The maximum number of campaigns to return.<br/>nextToken:  A token returned from the previous call to <code>ListCampaigns</code> for getting the next set of campaigns (if they exist).<br/>solutionArn:  The Amazon Resource Name (ARN) of the solution to list the campaigns for. When a solution is not specified, all the campaigns associated with the account are listed.<br/>
        :return: nextToken:  A token for getting the next set of campaigns (if they exist).<br/>campaigns:  A list of the campaigns.<br/>        """
        pass

    def list_dataset_export_jobs(self, datasetArn: str=None, nextToken: str=None, maxResults: int=None) -> ListDatasetExportJobsResponse:
        r"""Returns a list of dataset export jobs that use the given dataset. When a dataset is not specified, all the dataset export jobs associated with the account are listed. The response provides the properties for each dataset export job, including the Amazon Resource Name (ARN). For more information on dataset export jobs, see <a>CreateDatasetExportJob</a>. For more information on datasets, see <a>CreateDataset</a>.

        :param self:
        :param maxResults:  The maximum number of dataset export jobs to return.<br/>nextToken:  A token returned from the previous call to <code>ListDatasetExportJobs</code> for getting the next set of dataset export jobs (if they exist).<br/>datasetArn:  The Amazon Resource Name (ARN) of the dataset to list the dataset export jobs for.<br/>
        :return: nextToken:  A token for getting the next set of dataset export jobs (if they exist).<br/>datasetExportJobs:  The list of dataset export jobs.<br/>        """
        pass

    def list_dataset_groups(self, nextToken: str=None, maxResults: int=None) -> ListDatasetGroupsResponse:
        r"""Returns a list of dataset groups. The response provides the properties for each dataset group, including the Amazon Resource Name (ARN). For more information on dataset groups, see <a>CreateDatasetGroup</a>.

        :param self:
        :param maxResults:  The maximum number of dataset groups to return.<br/>nextToken:  A token returned from the previous call to <code>ListDatasetGroups</code> for getting the next set of dataset groups (if they exist).<br/>
        :return: nextToken:  A token for getting the next set of dataset groups (if they exist).<br/>datasetGroups:  The list of your dataset groups.<br/>        """
        pass

    def list_dataset_import_jobs(self, datasetArn: str=None, nextToken: str=None, maxResults: int=None) -> ListDatasetImportJobsResponse:
        r"""Returns a list of dataset import jobs that use the given dataset. When a dataset is not specified, all the dataset import jobs associated with the account are listed. The response provides the properties for each dataset import job, including the Amazon Resource Name (ARN). For more information on dataset import jobs, see <a>CreateDatasetImportJob</a>. For more information on datasets, see <a>CreateDataset</a>.

        :param self:
        :param maxResults:  The maximum number of dataset import jobs to return.<br/>nextToken:  A token returned from the previous call to <code>ListDatasetImportJobs</code> for getting the next set of dataset import jobs (if they exist).<br/>datasetArn:  The Amazon Resource Name (ARN) of the dataset to list the dataset import jobs for.<br/>
        :return: nextToken:  A token for getting the next set of dataset import jobs (if they exist).<br/>datasetImportJobs:  The list of dataset import jobs.<br/>        """
        pass

    def list_datasets(self, datasetGroupArn: str=None, nextToken: str=None, maxResults: int=None) -> ListDatasetsResponse:
        r"""Returns the list of datasets contained in the given dataset group. The response provides the properties for each dataset, including the Amazon Resource Name (ARN). For more information on datasets, see <a>CreateDataset</a>.

        :param self:
        :param maxResults:  The maximum number of datasets to return.<br/>nextToken:  A token returned from the previous call to <code>ListDatasetImportJobs</code> for getting the next set of dataset import jobs (if they exist).<br/>datasetGroupArn:  The Amazon Resource Name (ARN) of the dataset group that contains the datasets to list.<br/>
        :return: nextToken:  A token for getting the next set of datasets (if they exist).<br/>datasets:  An array of <code>Dataset</code> objects. Each object provides metadata information.<br/>        """
        pass

    def list_event_trackers(self, datasetGroupArn: str=None, nextToken: str=None, maxResults: int=None) -> ListEventTrackersResponse:
        r"""Returns the list of event trackers associated with the account. The response provides the properties for each event tracker, including the Amazon Resource Name (ARN) and tracking ID. For more information on event trackers, see <a>CreateEventTracker</a>.

        :param self:
        :param maxResults:  The maximum number of event trackers to return.<br/>nextToken:  A token returned from the previous call to <code>ListEventTrackers</code> for getting the next set of event trackers (if they exist).<br/>datasetGroupArn:  The ARN of a dataset group used to filter the response.<br/>
        :return: nextToken:  A token for getting the next set of event trackers (if they exist).<br/>eventTrackers:  A list of event trackers.<br/>        """
        pass

    def list_filters(self, datasetGroupArn: str=None, nextToken: str=None, maxResults: int=None) -> ListFiltersResponse:
        r"""Lists all filters that belong to a given dataset group.

        :param self:
        :param maxResults:  The maximum number of filters to return.<br/>nextToken:  A token returned from the previous call to <code>ListFilters</code> for getting the next set of filters (if they exist).<br/>datasetGroupArn:  The ARN of the dataset group that contains the filters.<br/>
        :return: nextToken:  A token for getting the next set of filters (if they exist).<br/>Filters:  A list of returned filters.<br/>        """
        pass

    def list_recipes(self, recipeProvider: str=None, nextToken: str=None, maxResults: int=None) -> ListRecipesResponse:
        r"""Returns a list of available recipes. The response provides the properties for each recipe, including the recipe's Amazon Resource Name (ARN).

        :param self:
        :param maxResults:  The maximum number of recipes to return.<br/>nextToken:  A token returned from the previous call to <code>ListRecipes</code> for getting the next set of recipes (if they exist).<br/>recipeProvider:  The default is <code>SERVICE</code>.<br/>
        :return: nextToken:  A token for getting the next set of recipes.<br/>recipes:  The list of available recipes.<br/>        """
        pass

    def list_schemas(self, nextToken: str=None, maxResults: int=None) -> ListSchemasResponse:
        r"""Returns the list of schemas associated with the account. The response provides the properties for each schema, including the Amazon Resource Name (ARN). For more information on schemas, see <a>CreateSchema</a>.

        :param self:
        :param maxResults:  The maximum number of schemas to return.<br/>nextToken:  A token returned from the previous call to <code>ListSchemas</code> for getting the next set of schemas (if they exist).<br/>
        :return: nextToken:  A token used to get the next set of schemas (if they exist).<br/>schemas:  A list of schemas.<br/>        """
        pass

    def list_solution_versions(self, solutionArn: str=None, nextToken: str=None, maxResults: int=None) -> ListSolutionVersionsResponse:
        r"""Returns a list of solution versions for the given solution. When a solution is not specified, all the solution versions associated with the account are listed. The response provides the properties for each solution version, including the Amazon Resource Name (ARN). For more information on solutions, see <a>CreateSolution</a>.

        :param self:
        :param maxResults:  The maximum number of solution versions to return.<br/>nextToken:  A token returned from the previous call to <code>ListSolutionVersions</code> for getting the next set of solution versions (if they exist).<br/>solutionArn:  The Amazon Resource Name (ARN) of the solution.<br/>
        :return: nextToken:  A token for getting the next set of solution versions (if they exist).<br/>solutionVersions:  A list of solution versions describing the version properties.<br/>        """
        pass

    def list_solutions(self, datasetGroupArn: str=None, nextToken: str=None, maxResults: int=None) -> ListSolutionsResponse:
        r"""Returns a list of solutions that use the given dataset group. When a dataset group is not specified, all the solutions associated with the account are listed. The response provides the properties for each solution, including the Amazon Resource Name (ARN). For more information on solutions, see <a>CreateSolution</a>.

        :param self:
        :param maxResults:  The maximum number of solutions to return.<br/>nextToken:  A token returned from the previous call to <code>ListSolutions</code> for getting the next set of solutions (if they exist).<br/>datasetGroupArn:  The Amazon Resource Name (ARN) of the dataset group.<br/>
        :return: nextToken:  A token for getting the next set of solutions (if they exist).<br/>solutions:  A list of the current solutions.<br/>        """
        pass

    def stop_solution_version_creation(self, solutionVersionArn: str):
        r"""Stops creating a solution version that is in a state of CREATE_PENDING or CREATE IN_PROGRESS.  Depending on the current state of the solution version, the solution version state changes as follows: <ul> <li> CREATE_PENDING &gt; CREATE_STOPPED or </li> <li> CREATE_IN_PROGRESS &gt; CREATE_STOPPING &gt; CREATE_STOPPED </li> </ul> You are billed for all of the training completed up until you stop the solution version creation. You cannot resume creating a solution version once it has been stopped.

        :param self:
        :param solutionVersionArn:  The Amazon Resource Name (ARN) of the solution version you want to stop creating.<br/>
        :return:         """
        pass

    def update_campaign(self, campaignArn: str, solutionVersionArn: str=None, minProvisionedTPS: int=None, campaignConfig: CampaignConfig=None) -> UpdateCampaignResponse:
        r"""Updates a campaign by either deploying a new solution or changing the value of the campaign's <code>minProvisionedTPS</code> parameter. To update a campaign, the campaign status must be ACTIVE or CREATE FAILED. Check the campaign status using the <a>DescribeCampaign</a> API. <note> You must wait until the <code>status</code> of the updated campaign is <code>ACTIVE</code> before asking the campaign for recommendations. </note> For more information on campaigns, see <a>CreateCampaign</a>.

        :param self:
        :param campaignConfig:  The configuration details of a campaign.:<br/>minProvisionedTPS:  Specifies the requested minimum provisioned transactions (recommendations) per second that Amazon Personalize will support.<br/>solutionVersionArn:  The ARN of a new solution version to deploy.<br/>campaignArn:  The Amazon Resource Name (ARN) of the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>itemExplorationConfig</i> A string to string map specifying the exploration configuration hyperparameters, including <code>explorationWeight</code> and <code>explorationItemAgeCutOff</code>, you want to use to configure the amount of item exploration Amazon Personalize uses when recommending items. Provide <code>itemExplorationConfig</code> data only if your solution uses the <a href="https://docs.aws.amazon.com/personalize/latest/dg/native-recipe-new-item-USER_PERSONALIZATION.html">User-Personalization</a> recipe.<br/>
        :return: campaignArn:  The same campaign ARN as given in the request.<br/>        """
        pass





class PersonalizeEvents(BaseClient):
    r"""Amazon Personalize can consume real-time user event data, such as <i>stream</i> or <i>click</i> data, and use it for model training either alone or combined with historical data. For more information see <a href="https://docs.aws.amazon.com/personalize/latest/dg/recording-events.html">Recording Events</a>."""




    class PutEventsRequest(Mapping):
        pass
    
    class Event(Mapping):
        pass
    
    class PutItemsRequest(Mapping):
        pass
    
    class Item(Mapping):
        pass
    
    class PutUsersRequest(Mapping):
        pass
    
    class User(Mapping):
        pass
    
    def put_events(self, eventList: List[Event], sessionId: str, trackingId: str, userId: str=None):
        r"""Records user interaction event data. For more information see <a href="https://docs.aws.amazon.com/personalize/latest/dg/recording-events.html">Recording Events</a>.

        :param self:
        :param eventList:  A list of event data from the session.<br/>sessionId:  The session ID associated with the user's visit. Your application generates the sessionId when a user first visits your website or uses your application. Amazon Personalize uses the sessionId to associate events with the user before they log in. For more information, see <a href="https://docs.aws.amazon.com/personalize/latest/dg/recording-events.html">Recording Events</a>.<br/>userId:  The user associated with the event.<br/>trackingId:  The tracking ID for the event. The ID is generated by a call to the <a href="https://docs.aws.amazon.com/personalize/latest/dg/API_CreateEventTracker.html">CreateEventTracker</a> API.<br/>
        :return:         """
        pass

    def put_items(self, items: List[Item], datasetArn: str):
        r"""Adds one or more items to an Items dataset. For more information see <a href="https://docs.aws.amazon.com/personalize/latest/dg/importing-items.html">Importing Items Incrementally</a>. 

        :param self:
        :param items:  A list of item data.<br/>datasetArn:  The Amazon Resource Name (ARN) of the Items dataset you are adding the item or items to.<br/>
        :return:         """
        pass

    def put_users(self, users: List[User], datasetArn: str):
        r"""Adds one or more users to a Users dataset. For more information see <a href="https://docs.aws.amazon.com/personalize/latest/dg/importing-users.html">Importing Users Incrementally</a>.

        :param self:
        :param users:  A list of user data.<br/>datasetArn:  The Amazon Resource Name (ARN) of the Users dataset you are adding the user or users to.<br/>
        :return:         """
        pass





class PersonalizeRuntime(BaseClient):
    r"""<p/>"""




    class GetPersonalizedRankingRequest(Mapping):
        pass
    
    class GetPersonalizedRankingResponse(Mapping):
        pass
    
    class ItemID(object):
        pass
    
    class Context(object):
        pass
    
    class FilterValues(object):
        pass
    
    class GetRecommendationsRequest(Mapping):
        pass
    
    class GetRecommendationsResponse(Mapping):
        pass
    
    def get_personalized_ranking(self, userId: str, inputList: List[ItemID], campaignArn: str, context: Context=None, filterArn: str=None, filterValues: FilterValues=None) -> GetPersonalizedRankingResponse:
        r"""Re-ranks a list of recommended items for the given user. The first item in the list is deemed the most likely item to be of interest to the user. <note> The solution backing the campaign must have been created using a recipe of type PERSONALIZED_RANKING. </note>

        :param self:
        :param filterValues:  The values to use when filtering recommendations. For each placeholder parameter in your filter expression, provide the parameter name (in matching case) as a key and the filter value(s) as the corresponding value. Separate multiple values for one parameter with a comma.  For filter expressions that use an <code>INCLUDE</code> element to include items, you must provide values for all parameters that are defined in the expression. For filters with expressions that use an <code>EXCLUDE</code> element to exclude items, you can omit the <code>filter-values</code>.In this case, Amazon Personalize doesn't use that portion of the expression to filter recommendations. For more information, see <a href="https://docs.aws.amazon.com/personalize/latest/dg/filter.html">Filtering Recommendations</a>.<br/>filterArn:  The Amazon Resource Name (ARN) of a filter you created to include items or exclude items from recommendations for a given user. For more information, see <a href="https://docs.aws.amazon.com/personalize/latest/dg/filter.html">Filtering Recommendations</a>.<br/>context:  The contextual metadata to use when getting recommendations. Contextual metadata includes any interaction information that might be relevant when getting a user's recommendations, such as the user's current location or device type.<br/>userId:  The user for which you want the campaign to provide a personalized ranking.<br/>inputList:  A list of items (by <code>itemId</code>) to rank. If an item was not included in the training dataset, the item is appended to the end of the reranked list. The maximum is 500.<br/>campaignArn:  The Amazon Resource Name (ARN) of the campaign to use for generating the personalized ranking.<br/>
        :return: recommendationId:  The ID of the recommendation.<br/>personalizedRanking:  A list of items in order of most likely interest to the user. The maximum is 500.<br/>        """
        pass

    def get_recommendations(self, campaignArn: str, itemId: str=None, userId: str=None, numResults: int=None, context: Context=None, filterArn: str=None, filterValues: FilterValues=None) -> GetRecommendationsResponse:
        r"""Returns a list of recommended items. The required input depends on the recipe type used to create the solution backing the campaign, as follows: <ul> <li> RELATED_ITEMS - <code>itemId</code> required, <code>userId</code> not used </li> <li> USER_PERSONALIZATION - <code>itemId</code> optional, <code>userId</code> required </li> </ul> <note> Campaigns that are backed by a solution created using a recipe of type PERSONALIZED_RANKING use the API. </note>

        :param self:
        :param filterValues:  The values to use when filtering recommendations. For each placeholder parameter in your filter expression, provide the parameter name (in matching case) as a key and the filter value(s) as the corresponding value. Separate multiple values for one parameter with a comma.  For filter expressions that use an <code>INCLUDE</code> element to include items, you must provide values for all parameters that are defined in the expression. For filters with expressions that use an <code>EXCLUDE</code> element to exclude items, you can omit the <code>filter-values</code>.In this case, Amazon Personalize doesn't use that portion of the expression to filter recommendations. For more information, see <a href="https://docs.aws.amazon.com/personalize/latest/dg/filter.html">Filtering Recommendations</a>.<br/>filterArn:  The ARN of the filter to apply to the returned recommendations. For more information, see <a href="https://docs.aws.amazon.com/personalize/latest/dg/filter.html">Filtering Recommendations</a>. When using this parameter, be sure the filter resource is <code>ACTIVE</code>.<br/>context:  The contextual metadata to use when getting recommendations. Contextual metadata includes any interaction information that might be relevant when getting a user's recommendations, such as the user's current location or device type.<br/>numResults:  The number of results to return. The default is 25. The maximum is 500.<br/>userId:  The user ID to provide recommendations for. Required for <code>USER_PERSONALIZATION</code> recipe type.<br/>itemId:  The item ID to provide recommendations for. Required for <code>RELATED_ITEMS</code> recipe type.<br/>campaignArn:  The Amazon Resource Name (ARN) of the campaign to use for getting recommendations.<br/>
        :return: recommendationId:  The ID of the recommendation.<br/>itemList:  A list of recommendations sorted in ascending order by prediction score. There can be a maximum of 500 items in the list.<br/>        """
        pass





class PI(BaseClient):
    r"""<fullname>Amazon RDS Performance Insights</fullname> Amazon RDS Performance Insights enables you to monitor and explore different dimensions of database load based on data captured from a running DB instance. The guide provides detailed information about Performance Insights data types, parameters and errors. When Performance Insights is enabled, the Amazon RDS Performance Insights API provides visibility into the performance of your DB instance. Amazon CloudWatch provides the authoritative source for AWS service-vended monitoring metrics. Performance Insights offers a domain-specific view of DB load.  DB load is measured as Average Active Sessions. Performance Insights provides the data to API consumers as a two-dimensional time-series dataset. The time dimension provides DB load data for each time point in the queried time range. Each time point decomposes overall load in relation to the requested dimensions, measured at that time point. Examples include SQL, Wait event, User, and Host. <ul> <li> To learn more about Performance Insights and Amazon Aurora DB instances, go to the <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_PerfInsights.html">Amazon Aurora User Guide</a>. </li> <li> To learn more about Performance Insights and Amazon RDS DB instances, go to the <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html">Amazon RDS User Guide</a>. </li> </ul>"""




    class DescribeDimensionKeysRequest(Mapping):
        pass
    
    class DescribeDimensionKeysResponse(Mapping):
        pass
    
    class ISOTimestamp(object):
        pass
    
    class DimensionGroup(Mapping):
        pass
    
    class MetricQueryFilterMap(object):
        pass
    
    class GetDimensionKeyDetailsRequest(Mapping):
        pass
    
    class GetDimensionKeyDetailsResponse(Mapping):
        pass
    
    class RequestString(object):
        pass
    
    class GetResourceMetricsRequest(Mapping):
        pass
    
    class GetResourceMetricsResponse(Mapping):
        pass
    
    class MetricQuery(Mapping):
        pass
    
    def describe_dimension_keys(self, GroupBy: DimensionGroup, Metric: str, EndTime: ISOTimestamp, StartTime: ISOTimestamp, Identifier: str, ServiceType: str, PeriodInSeconds: int=None, PartitionBy: DimensionGroup=None, Filter: MetricQueryFilterMap=None, MaxResults: int=None, NextToken: str=None) -> DescribeDimensionKeysResponse:
        r"""For a specific time period, retrieve the top <code>N</code> dimension keys for a metric. <note> Each response element returns a maximum of 500 bytes. For larger elements, such as SQL statements, only the first 500 bytes are returned. </note>

        :param self:
        :param NextToken:  An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the token, up to the value specified by <code>MaxRecords</code>.<br/>MaxResults:  The maximum number of items to return in the response. If more items exist than the specified <code>MaxRecords</code> value, a pagination token is included in the response so that the remaining results can be retrieved. <br/>Filter:  One or more filters to apply in the request. Restrictions: <ul> <li> Any number of filters by the same dimension, as specified in the <code>GroupBy</code> or <code>Partition</code> parameters. </li> <li> A single filter for any other dimension in this dimension group. </li> </ul><br/>PartitionBy:  For each dimension specified in <code>GroupBy</code>, specify a secondary dimension to further subdivide the partition keys in the response.:<br/>GroupBy:  A specification for how to aggregate the data points from a query result. You must specify a valid dimension group. Performance Insights returns all dimensions within this group, unless you provide the names of specific dimensions within this group. You can also request that Performance Insights return a limited number of values for a dimension.:<br/>PeriodInSeconds:  The granularity, in seconds, of the data points returned from Performance Insights. A period can be as short as one second, or as long as one day (86400 seconds). Valid values are: <ul> <li>  <code>1</code> (one second) </li> <li>  <code>60</code> (one minute) </li> <li>  <code>300</code> (five minutes) </li> <li>  <code>3600</code> (one hour) </li> <li>  <code>86400</code> (twenty-four hours) </li> </ul> If you don't specify <code>PeriodInSeconds</code>, then Performance Insights chooses a value for you, with a goal of returning roughly 100-200 data points in the response.<br/>Metric:  The name of a Performance Insights metric to be measured. Valid values for <code>Metric</code> are: <ul> <li>  <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine. </li> <li>  <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine. </li> </ul> If the number of active sessions is less than an internal Performance Insights threshold, <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active sessions is greater than the internal threshold, Performance Insights samples the active sessions, with <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw values, and <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you can query <code>db.load.avg</code> only. <br/>EndTime:  The date and time specifying the end of the requested time series data. The value specified is <i>exclusive</i>, which means that data points less than (but not equal to) <code>EndTime</code> are returned. The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.<br/>StartTime:  The date and time specifying the beginning of the requested time series data. You must specify a <code>StartTime</code> within the past 7 days. The value specified is <i>inclusive</i>, which means that data points equal to or greater than <code>StartTime</code> are returned. The value for <code>StartTime</code> must be earlier than the value for <code>EndTime</code>.<br/>Identifier:  An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source. To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value. For example, specify <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code> <br/>ServiceType:  The AWS service for which Performance Insights will return metrics. The only valid value for <i>ServiceType</i> is <code>RDS</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Limit</i> The maximum number of items to fetch for this dimension group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Dimensions</i> A list of specific dimensions from a dimension group. If this parameter is not present, then it signifies that all of the dimensions in the group were requested, or are present in the response. Valid values for elements in the <code>Dimensions</code> array are: <ul> <li>  <code>db.application.name</code> - The name of the application that is connected to the database (only Aurora PostgreSQL and RDS PostgreSQL) </li> <li>  <code>db.host.id</code> - The host ID of the connected client (all engines) </li> <li>  <code>db.host.name</code> - The host name of the connected client (all engines) </li> <li>  <code>db.name</code> - The name of the database to which the client is connected (only Aurora PostgreSQL, RDS PostgreSQL, Aurora MySQL, RDS MySQL, and MariaDB) </li> <li>  <code>db.session_type.name</code> - The type of the current session (only Aurora PostgreSQL and RDS PostgreSQL) </li> <li>  <code>db.sql.id</code> - The SQL ID generated by Performance Insights (all engines) </li> <li>  <code>db.sql.db_id</code> - The SQL ID generated by the database (all engines) </li> <li>  <code>db.sql.statement</code> - The SQL text that is being executed (all engines) </li> <li>  <code>db.sql.tokenized_id</code>  </li> <li>  <code>db.sql_tokenized.id</code> - The SQL digest ID generated by Performance Insights (all engines) </li> <li>  <code>db.sql_tokenized.db_id</code> - SQL digest ID generated by the database (all engines) </li> <li>  <code>db.sql_tokenized.statement</code> - The SQL digest text (all engines) </li> <li>  <code>db.user.id</code> - The ID of the user logged in to the database (all engines) </li> <li>  <code>db.user.name</code> - The name of the user logged in to the database (all engines) </li> <li>  <code>db.wait_event.name</code> - The event for which the backend is waiting (all engines) </li> <li>  <code>db.wait_event.type</code> - The type of event for which the backend is waiting (all engines) </li> <li>  <code>db.wait_event_type.name</code> - The name of the event type for which the backend is waiting (all engines) </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Group</i> The name of the dimension group. Valid values are: <ul> <li>  <code>db</code> - The name of the database to which the client is connected (only Aurora PostgreSQL, RDS PostgreSQL, Aurora MySQL, RDS MySQL, and MariaDB) </li> <li>  <code>db.application</code> - The name of the application that is connected to the database (only Aurora PostgreSQL and RDS PostgreSQL) </li> <li>  <code>db.host</code> - The host name of the connected client (all engines) </li> <li>  <code>db.session_type</code> - The type of the current session (only Aurora PostgreSQL and RDS PostgreSQL) </li> <li>  <code>db.sql</code> - The SQL that is currently executing (all engines) </li> <li>  <code>db.sql_tokenized</code> - The SQL digest (all engines) </li> <li>  <code>db.wait_event</code> - The event for which the database backend is waiting (all engines) </li> <li>  <code>db.wait_event_type</code> - The type of event for which the database backend is waiting (all engines) </li> <li>  <code>db.user</code> - The user logged in to the database (all engines) </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Limit</i> The maximum number of items to fetch for this dimension group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Dimensions</i> A list of specific dimensions from a dimension group. If this parameter is not present, then it signifies that all of the dimensions in the group were requested, or are present in the response. Valid values for elements in the <code>Dimensions</code> array are: <ul> <li>  <code>db.application.name</code> - The name of the application that is connected to the database (only Aurora PostgreSQL and RDS PostgreSQL) </li> <li>  <code>db.host.id</code> - The host ID of the connected client (all engines) </li> <li>  <code>db.host.name</code> - The host name of the connected client (all engines) </li> <li>  <code>db.name</code> - The name of the database to which the client is connected (only Aurora PostgreSQL, RDS PostgreSQL, Aurora MySQL, RDS MySQL, and MariaDB) </li> <li>  <code>db.session_type.name</code> - The type of the current session (only Aurora PostgreSQL and RDS PostgreSQL) </li> <li>  <code>db.sql.id</code> - The SQL ID generated by Performance Insights (all engines) </li> <li>  <code>db.sql.db_id</code> - The SQL ID generated by the database (all engines) </li> <li>  <code>db.sql.statement</code> - The SQL text that is being executed (all engines) </li> <li>  <code>db.sql.tokenized_id</code>  </li> <li>  <code>db.sql_tokenized.id</code> - The SQL digest ID generated by Performance Insights (all engines) </li> <li>  <code>db.sql_tokenized.db_id</code> - SQL digest ID generated by the database (all engines) </li> <li>  <code>db.sql_tokenized.statement</code> - The SQL digest text (all engines) </li> <li>  <code>db.user.id</code> - The ID of the user logged in to the database (all engines) </li> <li>  <code>db.user.name</code> - The name of the user logged in to the database (all engines) </li> <li>  <code>db.wait_event.name</code> - The event for which the backend is waiting (all engines) </li> <li>  <code>db.wait_event.type</code> - The type of event for which the backend is waiting (all engines) </li> <li>  <code>db.wait_event_type.name</code> - The name of the event type for which the backend is waiting (all engines) </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Group</i> The name of the dimension group. Valid values are: <ul> <li>  <code>db</code> - The name of the database to which the client is connected (only Aurora PostgreSQL, RDS PostgreSQL, Aurora MySQL, RDS MySQL, and MariaDB) </li> <li>  <code>db.application</code> - The name of the application that is connected to the database (only Aurora PostgreSQL and RDS PostgreSQL) </li> <li>  <code>db.host</code> - The host name of the connected client (all engines) </li> <li>  <code>db.session_type</code> - The type of the current session (only Aurora PostgreSQL and RDS PostgreSQL) </li> <li>  <code>db.sql</code> - The SQL that is currently executing (all engines) </li> <li>  <code>db.sql_tokenized</code> - The SQL digest (all engines) </li> <li>  <code>db.wait_event</code> - The event for which the database backend is waiting (all engines) </li> <li>  <code>db.wait_event_type</code> - The type of event for which the database backend is waiting (all engines) </li> <li>  <code>db.user</code> - The user logged in to the database (all engines) </li> </ul><br/>
        :return: NextToken:  An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the token, up to the value specified by <code>MaxRecords</code>.<br/>Keys:  The dimension keys that were requested.<br/>PartitionKeys:  If <code>PartitionBy</code> was present in the request, <code>PartitionKeys</code> contains the breakdown of dimension keys by the specified partitions.<br/>AlignedEndTime:  The end time for the returned dimension keys, after alignment to a granular boundary (as specified by <code>PeriodInSeconds</code>). <code>AlignedEndTime</code> will be greater than or equal to the value of the user-specified <code>Endtime</code>.<br/>AlignedStartTime:  The start time for the returned dimension keys, after alignment to a granular boundary (as specified by <code>PeriodInSeconds</code>). <code>AlignedStartTime</code> will be less than or equal to the value of the user-specified <code>StartTime</code>.<br/>        """
        pass

    def get_dimension_key_details(self, GroupIdentifier: str, Group: str, Identifier: str, ServiceType: str, RequestedDimensions: List[RequestString]=None) -> GetDimensionKeyDetailsResponse:
        r"""Get the attributes of the specified dimension group for a DB instance or data source. For example, if you specify a SQL ID, <code>GetDimensionKeyDetails</code> retrieves the full text of the dimension <code>db.sql.statement</code> associated with this ID. This operation is useful because <code>GetResourceMetrics</code> and <code>DescribeDimensionKeys</code> don't support retrieval of large SQL statement text.

        :param self:
        :param RequestedDimensions:  A list of dimensions to retrieve the detail data for within the given dimension group. For the dimension group <code>db.sql</code>, specify either the full dimension name <code>db.sql.statement</code> or the short dimension name <code>statement</code>. If you don't specify this parameter, Performance Insights returns all dimension data within the specified dimension group.<br/>GroupIdentifier:  The ID of the dimension group from which to retrieve dimension details. For dimension group <code>db.sql</code>, the group ID is <code>db.sql.id</code>.<br/>Group:  The name of the dimension group. The only valid value is <code>db.sql</code>. Performance Insights searches the specified group for the dimension group ID.<br/>Identifier:  The ID for a data source from which to gather dimension data. This ID must be immutable and unique within an AWS Region. When a DB instance is the data source, specify its <code>DbiResourceId</code> value. For example, specify <code>db-ABCDEFGHIJKLMNOPQRSTU1VW2X</code>. <br/>ServiceType:  The AWS service for which Performance Insights returns data. The only valid value is <code>RDS</code>.<br/>
        :return: Dimensions:  The details for the requested dimensions.<br/>        """
        pass

    def get_resource_metrics(self, EndTime: ISOTimestamp, StartTime: ISOTimestamp, MetricQueries: List[MetricQuery], Identifier: str, ServiceType: str, PeriodInSeconds: int=None, MaxResults: int=None, NextToken: str=None) -> GetResourceMetricsResponse:
        r"""Retrieve Performance Insights metrics for a set of data sources, over a time period. You can provide specific dimension groups and dimensions, and provide aggregation and filtering criteria for each group. <note> Each response element returns a maximum of 500 bytes. For larger elements, such as SQL statements, only the first 500 bytes are returned. </note>

        :param self:
        :param NextToken:  An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the token, up to the value specified by <code>MaxRecords</code>.<br/>MaxResults:  The maximum number of items to return in the response. If more items exist than the specified <code>MaxRecords</code> value, a pagination token is included in the response so that the remaining results can be retrieved. <br/>PeriodInSeconds:  The granularity, in seconds, of the data points returned from Performance Insights. A period can be as short as one second, or as long as one day (86400 seconds). Valid values are: <ul> <li>  <code>1</code> (one second) </li> <li>  <code>60</code> (one minute) </li> <li>  <code>300</code> (five minutes) </li> <li>  <code>3600</code> (one hour) </li> <li>  <code>86400</code> (twenty-four hours) </li> </ul> If you don't specify <code>PeriodInSeconds</code>, then Performance Insights will choose a value for you, with a goal of returning roughly 100-200 data points in the response.<br/>EndTime:  The date and time specifying the end of the requested time series data. The value specified is <i>exclusive</i> - data points less than (but not equal to) <code>EndTime</code> will be returned. The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.<br/>StartTime:  The date and time specifying the beginning of the requested time series data. You can't specify a <code>StartTime</code> that's earlier than 7 days ago. The value specified is <i>inclusive</i> - data points equal to or greater than <code>StartTime</code> will be returned. The value for <code>StartTime</code> must be earlier than the value for <code>EndTime</code>.<br/>MetricQueries:  An array of one or more queries to perform. Each query must specify a Performance Insights metric, and can optionally specify aggregation and filtering criteria.<br/>Identifier:  An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source. To use a DB instance as a data source, specify its <code>DbiResourceId</code> value. For example, specify <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>.<br/>ServiceType:  The AWS service for which Performance Insights returns metrics. The only valid value for <i>ServiceType</i> is <code>RDS</code>.<br/>
        :return: NextToken:  An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the token, up to the value specified by <code>MaxRecords</code>.<br/>MetricList:  An array of metric results,, where each array element contains all of the data points for a particular dimension.<br/>Identifier:  An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source. To use a DB instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code> <br/>AlignedEndTime:  The end time for the returned metrics, after alignment to a granular boundary (as specified by <code>PeriodInSeconds</code>). <code>AlignedEndTime</code> will be greater than or equal to the value of the user-specified <code>Endtime</code>.<br/>AlignedStartTime:  The start time for the returned metrics, after alignment to a granular boundary (as specified by <code>PeriodInSeconds</code>). <code>AlignedStartTime</code> will be less than or equal to the value of the user-specified <code>StartTime</code>.<br/>        """
        pass





class Pinpoint(BaseClient):
    r"""Doc Engage API - Amazon Pinpoint API"""



    class CreateAppRequest(Mapping):
        pass
    
    class CreateAppResponse(Mapping):
        pass
    
    class CreateApplicationRequest(Mapping):
        pass
    
    class CreateCampaignRequest(Mapping):
        pass
    
    class CreateCampaignResponse(Mapping):
        pass
    
    class WriteCampaignRequest(Mapping):
        pass
    
    class CreateEmailTemplateRequest(Mapping):
        pass
    
    class CreateEmailTemplateResponse(Mapping):
        pass
    
    class EmailTemplateRequest(Mapping):
        pass
    
    class CreateExportJobRequest(Mapping):
        pass
    
    class CreateExportJobResponse(Mapping):
        pass
    
    class ExportJobRequest(Mapping):
        pass
    
    class CreateImportJobRequest(Mapping):
        pass
    
    class CreateImportJobResponse(Mapping):
        pass
    
    class ImportJobRequest(Mapping):
        pass
    
    class CreateJourneyRequest(Mapping):
        pass
    
    class CreateJourneyResponse(Mapping):
        pass
    
    class WriteJourneyRequest(Mapping):
        pass
    
    class CreatePushTemplateRequest(Mapping):
        pass
    
    class CreatePushTemplateResponse(Mapping):
        pass
    
    class PushNotificationTemplateRequest(Mapping):
        pass
    
    class CreateRecommenderConfigurationRequest(Mapping):
        pass
    
    class CreateRecommenderConfigurationResponse(Mapping):
        pass
    
    class CreateRecommenderConfiguration(Mapping):
        pass
    
    class CreateSegmentRequest(Mapping):
        pass
    
    class CreateSegmentResponse(Mapping):
        pass
    
    class WriteSegmentRequest(Mapping):
        pass
    
    class CreateSmsTemplateRequest(Mapping):
        pass
    
    class CreateSmsTemplateResponse(Mapping):
        pass
    
    class SMSTemplateRequest(Mapping):
        pass
    
    class CreateVoiceTemplateRequest(Mapping):
        pass
    
    class CreateVoiceTemplateResponse(Mapping):
        pass
    
    class VoiceTemplateRequest(Mapping):
        pass
    
    class DeleteAdmChannelRequest(Mapping):
        pass
    
    class DeleteAdmChannelResponse(Mapping):
        pass
    
    class DeleteApnsChannelRequest(Mapping):
        pass
    
    class DeleteApnsChannelResponse(Mapping):
        pass
    
    class DeleteApnsSandboxChannelRequest(Mapping):
        pass
    
    class DeleteApnsSandboxChannelResponse(Mapping):
        pass
    
    class DeleteApnsVoipChannelRequest(Mapping):
        pass
    
    class DeleteApnsVoipChannelResponse(Mapping):
        pass
    
    class DeleteApnsVoipSandboxChannelRequest(Mapping):
        pass
    
    class DeleteApnsVoipSandboxChannelResponse(Mapping):
        pass
    
    class DeleteAppRequest(Mapping):
        pass
    
    class DeleteAppResponse(Mapping):
        pass
    
    class DeleteBaiduChannelRequest(Mapping):
        pass
    
    class DeleteBaiduChannelResponse(Mapping):
        pass
    
    class DeleteCampaignRequest(Mapping):
        pass
    
    class DeleteCampaignResponse(Mapping):
        pass
    
    class DeleteEmailChannelRequest(Mapping):
        pass
    
    class DeleteEmailChannelResponse(Mapping):
        pass
    
    class DeleteEmailTemplateRequest(Mapping):
        pass
    
    class DeleteEmailTemplateResponse(Mapping):
        pass
    
    class DeleteEndpointRequest(Mapping):
        pass
    
    class DeleteEndpointResponse(Mapping):
        pass
    
    class DeleteEventStreamRequest(Mapping):
        pass
    
    class DeleteEventStreamResponse(Mapping):
        pass
    
    class DeleteGcmChannelRequest(Mapping):
        pass
    
    class DeleteGcmChannelResponse(Mapping):
        pass
    
    class DeleteJourneyRequest(Mapping):
        pass
    
    class DeleteJourneyResponse(Mapping):
        pass
    
    class DeletePushTemplateRequest(Mapping):
        pass
    
    class DeletePushTemplateResponse(Mapping):
        pass
    
    class DeleteRecommenderConfigurationRequest(Mapping):
        pass
    
    class DeleteRecommenderConfigurationResponse(Mapping):
        pass
    
    class DeleteSegmentRequest(Mapping):
        pass
    
    class DeleteSegmentResponse(Mapping):
        pass
    
    class DeleteSmsChannelRequest(Mapping):
        pass
    
    class DeleteSmsChannelResponse(Mapping):
        pass
    
    class DeleteSmsTemplateRequest(Mapping):
        pass
    
    class DeleteSmsTemplateResponse(Mapping):
        pass
    
    class DeleteUserEndpointsRequest(Mapping):
        pass
    
    class DeleteUserEndpointsResponse(Mapping):
        pass
    
    class DeleteVoiceChannelRequest(Mapping):
        pass
    
    class DeleteVoiceChannelResponse(Mapping):
        pass
    
    class DeleteVoiceTemplateRequest(Mapping):
        pass
    
    class DeleteVoiceTemplateResponse(Mapping):
        pass
    
    class GetAdmChannelRequest(Mapping):
        pass
    
    class GetAdmChannelResponse(Mapping):
        pass
    
    class GetApnsChannelRequest(Mapping):
        pass
    
    class GetApnsChannelResponse(Mapping):
        pass
    
    class GetApnsSandboxChannelRequest(Mapping):
        pass
    
    class GetApnsSandboxChannelResponse(Mapping):
        pass
    
    class GetApnsVoipChannelRequest(Mapping):
        pass
    
    class GetApnsVoipChannelResponse(Mapping):
        pass
    
    class GetApnsVoipSandboxChannelRequest(Mapping):
        pass
    
    class GetApnsVoipSandboxChannelResponse(Mapping):
        pass
    
    class GetAppRequest(Mapping):
        pass
    
    class GetAppResponse(Mapping):
        pass
    
    class GetApplicationDateRangeKpiRequest(Mapping):
        pass
    
    class GetApplicationDateRangeKpiResponse(Mapping):
        pass
    
    class __timestampIso8601(object):
        pass
    
    class GetApplicationSettingsRequest(Mapping):
        pass
    
    class GetApplicationSettingsResponse(Mapping):
        pass
    
    class GetAppsRequest(Mapping):
        pass
    
    class GetAppsResponse(Mapping):
        pass
    
    class GetBaiduChannelRequest(Mapping):
        pass
    
    class GetBaiduChannelResponse(Mapping):
        pass
    
    class GetCampaignRequest(Mapping):
        pass
    
    class GetCampaignResponse(Mapping):
        pass
    
    class GetCampaignActivitiesRequest(Mapping):
        pass
    
    class GetCampaignActivitiesResponse(Mapping):
        pass
    
    class GetCampaignDateRangeKpiRequest(Mapping):
        pass
    
    class GetCampaignDateRangeKpiResponse(Mapping):
        pass
    
    class GetCampaignVersionRequest(Mapping):
        pass
    
    class GetCampaignVersionResponse(Mapping):
        pass
    
    class GetCampaignVersionsRequest(Mapping):
        pass
    
    class GetCampaignVersionsResponse(Mapping):
        pass
    
    class GetCampaignsRequest(Mapping):
        pass
    
    class GetCampaignsResponse(Mapping):
        pass
    
    class GetChannelsRequest(Mapping):
        pass
    
    class GetChannelsResponse(Mapping):
        pass
    
    class GetEmailChannelRequest(Mapping):
        pass
    
    class GetEmailChannelResponse(Mapping):
        pass
    
    class GetEmailTemplateRequest(Mapping):
        pass
    
    class GetEmailTemplateResponse(Mapping):
        pass
    
    class GetEndpointRequest(Mapping):
        pass
    
    class GetEndpointResponse(Mapping):
        pass
    
    class GetEventStreamRequest(Mapping):
        pass
    
    class GetEventStreamResponse(Mapping):
        pass
    
    class GetExportJobRequest(Mapping):
        pass
    
    class GetExportJobResponse(Mapping):
        pass
    
    class GetExportJobsRequest(Mapping):
        pass
    
    class GetExportJobsResponse(Mapping):
        pass
    
    class GetGcmChannelRequest(Mapping):
        pass
    
    class GetGcmChannelResponse(Mapping):
        pass
    
    class GetImportJobRequest(Mapping):
        pass
    
    class GetImportJobResponse(Mapping):
        pass
    
    class GetImportJobsRequest(Mapping):
        pass
    
    class GetImportJobsResponse(Mapping):
        pass
    
    class GetJourneyRequest(Mapping):
        pass
    
    class GetJourneyResponse(Mapping):
        pass
    
    class GetJourneyDateRangeKpiRequest(Mapping):
        pass
    
    class GetJourneyDateRangeKpiResponse(Mapping):
        pass
    
    class GetJourneyExecutionActivityMetricsRequest(Mapping):
        pass
    
    class GetJourneyExecutionActivityMetricsResponse(Mapping):
        pass
    
    class GetJourneyExecutionMetricsRequest(Mapping):
        pass
    
    class GetJourneyExecutionMetricsResponse(Mapping):
        pass
    
    class GetPushTemplateRequest(Mapping):
        pass
    
    class GetPushTemplateResponse(Mapping):
        pass
    
    class GetRecommenderConfigurationRequest(Mapping):
        pass
    
    class GetRecommenderConfigurationResponse(Mapping):
        pass
    
    class GetRecommenderConfigurationsRequest(Mapping):
        pass
    
    class GetRecommenderConfigurationsResponse(Mapping):
        pass
    
    class GetSegmentRequest(Mapping):
        pass
    
    class GetSegmentResponse(Mapping):
        pass
    
    class GetSegmentExportJobsRequest(Mapping):
        pass
    
    class GetSegmentExportJobsResponse(Mapping):
        pass
    
    class GetSegmentImportJobsRequest(Mapping):
        pass
    
    class GetSegmentImportJobsResponse(Mapping):
        pass
    
    class GetSegmentVersionRequest(Mapping):
        pass
    
    class GetSegmentVersionResponse(Mapping):
        pass
    
    class GetSegmentVersionsRequest(Mapping):
        pass
    
    class GetSegmentVersionsResponse(Mapping):
        pass
    
    class GetSegmentsRequest(Mapping):
        pass
    
    class GetSegmentsResponse(Mapping):
        pass
    
    class GetSmsChannelRequest(Mapping):
        pass
    
    class GetSmsChannelResponse(Mapping):
        pass
    
    class GetSmsTemplateRequest(Mapping):
        pass
    
    class GetSmsTemplateResponse(Mapping):
        pass
    
    class GetUserEndpointsRequest(Mapping):
        pass
    
    class GetUserEndpointsResponse(Mapping):
        pass
    
    class GetVoiceChannelRequest(Mapping):
        pass
    
    class GetVoiceChannelResponse(Mapping):
        pass
    
    class GetVoiceTemplateRequest(Mapping):
        pass
    
    class GetVoiceTemplateResponse(Mapping):
        pass
    
    class ListJourneysRequest(Mapping):
        pass
    
    class ListJourneysResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class ListTemplateVersionsRequest(Mapping):
        pass
    
    class ListTemplateVersionsResponse(Mapping):
        pass
    
    class ListTemplatesRequest(Mapping):
        pass
    
    class ListTemplatesResponse(Mapping):
        pass
    
    class PhoneNumberValidateRequest(Mapping):
        pass
    
    class PhoneNumberValidateResponse(Mapping):
        pass
    
    class NumberValidateRequest(Mapping):
        pass
    
    class PutEventStreamRequest(Mapping):
        pass
    
    class PutEventStreamResponse(Mapping):
        pass
    
    class WriteEventStream(Mapping):
        pass
    
    class PutEventsRequest(Mapping):
        pass
    
    class PutEventsResponse(Mapping):
        pass
    
    class EventsRequest(Mapping):
        pass
    
    class RemoveAttributesRequest(Mapping):
        pass
    
    class RemoveAttributesResponse(Mapping):
        pass
    
    class UpdateAttributesRequest(Mapping):
        pass
    
    class SendMessagesRequest(Mapping):
        pass
    
    class SendMessagesResponse(Mapping):
        pass
    
    class MessageRequest(Mapping):
        pass
    
    class SendUsersMessagesRequest(Mapping):
        pass
    
    class SendUsersMessagesResponse(Mapping):
        pass
    
    class SendUsersMessageRequest(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagsModel(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class __string(object):
        pass
    
    class UpdateAdmChannelRequest(Mapping):
        pass
    
    class UpdateAdmChannelResponse(Mapping):
        pass
    
    class ADMChannelRequest(Mapping):
        pass
    
    class UpdateApnsChannelRequest(Mapping):
        pass
    
    class UpdateApnsChannelResponse(Mapping):
        pass
    
    class APNSChannelRequest(Mapping):
        pass
    
    class UpdateApnsSandboxChannelRequest(Mapping):
        pass
    
    class UpdateApnsSandboxChannelResponse(Mapping):
        pass
    
    class APNSSandboxChannelRequest(Mapping):
        pass
    
    class UpdateApnsVoipChannelRequest(Mapping):
        pass
    
    class UpdateApnsVoipChannelResponse(Mapping):
        pass
    
    class APNSVoipChannelRequest(Mapping):
        pass
    
    class UpdateApnsVoipSandboxChannelRequest(Mapping):
        pass
    
    class UpdateApnsVoipSandboxChannelResponse(Mapping):
        pass
    
    class APNSVoipSandboxChannelRequest(Mapping):
        pass
    
    class UpdateApplicationSettingsRequest(Mapping):
        pass
    
    class UpdateApplicationSettingsResponse(Mapping):
        pass
    
    class WriteApplicationSettingsRequest(Mapping):
        pass
    
    class UpdateBaiduChannelRequest(Mapping):
        pass
    
    class UpdateBaiduChannelResponse(Mapping):
        pass
    
    class BaiduChannelRequest(Mapping):
        pass
    
    class UpdateCampaignRequest(Mapping):
        pass
    
    class UpdateCampaignResponse(Mapping):
        pass
    
    class UpdateEmailChannelRequest(Mapping):
        pass
    
    class UpdateEmailChannelResponse(Mapping):
        pass
    
    class EmailChannelRequest(Mapping):
        pass
    
    class UpdateEmailTemplateRequest(Mapping):
        pass
    
    class UpdateEmailTemplateResponse(Mapping):
        pass
    
    class __boolean(object):
        pass
    
    class UpdateEndpointRequest(Mapping):
        pass
    
    class UpdateEndpointResponse(Mapping):
        pass
    
    class EndpointRequest(Mapping):
        pass
    
    class UpdateEndpointsBatchRequest(Mapping):
        pass
    
    class UpdateEndpointsBatchResponse(Mapping):
        pass
    
    class EndpointBatchRequest(Mapping):
        pass
    
    class UpdateGcmChannelRequest(Mapping):
        pass
    
    class UpdateGcmChannelResponse(Mapping):
        pass
    
    class GCMChannelRequest(Mapping):
        pass
    
    class UpdateJourneyRequest(Mapping):
        pass
    
    class UpdateJourneyResponse(Mapping):
        pass
    
    class UpdateJourneyStateRequest(Mapping):
        pass
    
    class UpdateJourneyStateResponse(Mapping):
        pass
    
    class JourneyStateRequest(Mapping):
        pass
    
    class UpdatePushTemplateRequest(Mapping):
        pass
    
    class UpdatePushTemplateResponse(Mapping):
        pass
    
    class UpdateRecommenderConfigurationRequest(Mapping):
        pass
    
    class UpdateRecommenderConfigurationResponse(Mapping):
        pass
    
    class UpdateRecommenderConfiguration(Mapping):
        pass
    
    class UpdateSegmentRequest(Mapping):
        pass
    
    class UpdateSegmentResponse(Mapping):
        pass
    
    class UpdateSmsChannelRequest(Mapping):
        pass
    
    class UpdateSmsChannelResponse(Mapping):
        pass
    
    class SMSChannelRequest(Mapping):
        pass
    
    class UpdateSmsTemplateRequest(Mapping):
        pass
    
    class UpdateSmsTemplateResponse(Mapping):
        pass
    
    class UpdateTemplateActiveVersionRequest(Mapping):
        pass
    
    class UpdateTemplateActiveVersionResponse(Mapping):
        pass
    
    class TemplateActiveVersionRequest(Mapping):
        pass
    
    class UpdateVoiceChannelRequest(Mapping):
        pass
    
    class UpdateVoiceChannelResponse(Mapping):
        pass
    
    class VoiceChannelRequest(Mapping):
        pass
    
    class UpdateVoiceTemplateRequest(Mapping):
        pass
    
    class UpdateVoiceTemplateResponse(Mapping):
        pass
    
    def create_app(self, CreateApplicationRequest: CreateApplicationRequest) -> CreateAppResponse:
        r""" Creates an application.

        :param self:
        :param CreateApplicationRequest:  Specifies the display name of an application and the tags to associate with the application.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> A string-to-string map of key-value pairs that defines the tags to associate with the application. Each tag consists of a required tag key and an associated tag value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The display name of the application. This name is displayed as the <b>Project name</b> on the Amazon Pinpoint console.<br/>
        :return: ApplicationResponse:  Provides information about an application.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> A string-to-string map of key-value pairs that identifies the tags that are associated with the application. Each tag consists of a required tag key and an associated tag value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The display name of the application. This name is displayed as the <b>Project name</b> on the Amazon Pinpoint console.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the application.<br/>        """
        pass

    def create_campaign(self, WriteCampaignRequest: WriteCampaignRequest, ApplicationId: str) -> CreateCampaignResponse:
        r"""Creates a new campaign for an application or updates the settings of an existing campaign for an application.

        :param self:
        :param WriteCampaignRequest:  Specifies the configuration and other settings for a campaign.:<br/>ApplicationId:  The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TreatmentName</i> A custom name of the default treatment for the campaign, if the campaign has multiple treatments. A <i>treatment</i> is a variation of a campaign that's used for A/B testing.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TreatmentDescription</i> A custom description of the default treatment for the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TemplateConfiguration</i> The message template to use for the campaign.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TemplateConfiguration</b>: The message template to use for the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> A string-to-string map of key-value pairs that defines the tags to associate with the campaign. Each tag consists of a required tag key and an associated tag value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentVersion</i> The version of the segment to associate with the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentId</i> The unique identifier for the segment to associate with the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Schedule</i> The schedule settings for the campaign.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Schedule</b>: The schedule settings for the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A custom name for the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MessageConfiguration</i> The message configuration settings for the campaign.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>MessageConfiguration</b>: The message configuration settings for the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Limits</i> The messaging limits for the campaign.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Limits</b>: The messaging limits for the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsPaused</i> Specifies whether to pause the campaign. A paused campaign doesn't run unless you resume it by changing this value to false.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Hook</i> The settings for the AWS Lambda function to invoke as a code hook for the campaign. You can use this hook to customize the segment that's used by the campaign.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Hook</b>: The settings for the AWS Lambda function to invoke as a code hook for the campaign. You can use this hook to customize the segment that's used by the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HoldoutPercent</i> The allocated percentage of users (segment members) who shouldn't receive messages from the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A custom description of the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomDeliveryConfiguration</i> The delivery configuration settings for sending the campaign through a custom channel. This object is required if the MessageConfiguration object for the campaign specifies a CustomMessage object.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CustomDeliveryConfiguration</b>: The delivery configuration settings for sending the campaign through a custom channel. This object is required if the MessageConfiguration object for the campaign specifies a CustomMessage object.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdditionalTreatments</i> An array of requests that defines additional treatments for the campaign, in addition to the default treatment for the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointTypes</i> The types of endpoints to send the campaign or treatment to. Each valid value maps to a type of channel that you can associate with an endpoint by using the ChannelType property of an endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DeliveryUri</i> The destination to send the campaign or treatment to. This value can be one of the following: <ul><li>The name or Amazon Resource Name (ARN) of an AWS Lambda function to invoke to handle delivery of the campaign or treatment.</li> <li>The URL for a web application or service that supports HTTPS and can receive the message. The URL has to be a full URL, including the HTTPS protocol.</li></ul> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>WebUrl</i>  The web URL that Amazon Pinpoint calls to invoke the AWS Lambda function over HTTPS.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Mode</i> The mode that Amazon Pinpoint uses to invoke the AWS Lambda function. Possible values are: <ul><li>FILTER - Invoke the function to customize the segment that's used by a campaign.</li> <li>DELIVERY - (Deprecated) Previously, invoked the function to send a campaign through a custom channel. This functionality is not supported anymore. To send a campaign through a custom channel, use the CustomDeliveryConfiguration and CampaignCustomMessage objects of the campaign.</li></ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LambdaFunctionName</i> The name or Amazon Resource Name (ARN) of the AWS Lambda function that Amazon Pinpoint invokes to customize a segment for a campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Total</i> The maximum number of messages that a campaign can send to a single endpoint during the course of the campaign. If a campaign recurs, this setting applies to all runs of the campaign. The maximum value is 100.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MessagesPerSecond</i> The maximum number of messages that a campaign can send each second. For an application, this value specifies the default limit for the number of messages that campaigns can send each second. The minimum value is 50. The maximum value is 20,000.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaximumDuration</i> The maximum amount of time, in seconds, that a campaign can attempt to deliver a message after the scheduled start time for the campaign. The minimum value is 60 seconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Daily</i> The maximum number of messages that a campaign can send to a single endpoint during a 24-hour period. For an application, this value specifies the default limit for the number of messages that campaigns and journeys can send to a single endpoint during a 24-hour period. The maximum value is 100.<br/>The message that the campaign sends through the ADM (Amazon Device Messaging) channel. If specified, this message overrides the default message.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ADMMessage</b>: The message that the campaign sends through the ADM (Amazon Device Messaging) channel. If specified, this message overrides the default message.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EndTime</i> The scheduled time, in ISO 8601 format, when the campaign ended or will end.<br/>The type of event that causes the campaign to be sent, if the value of the Frequency property is EVENT.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EventFilter</b>: The type of event that causes the campaign to be sent, if the value of the Frequency property is EVENT.The email template to use for the message.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EmailTemplate</b>: The email template to use for the message.
        :return: CampaignResponse:  Provides information about the status, configuration, and other settings for a campaign.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The version number of the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TreatmentName</i> The custom name of the default treatment for the campaign, if the campaign has multiple treatments. A <i>treatment</i> is a variation of a campaign that's used for A/B testing.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TreatmentDescription</i> The custom description of the default treatment for the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TemplateConfiguration</i> The message template that’s used for the campaign.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TemplateConfiguration</b>: The message template that’s used for the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> A string-to-string map of key-value pairs that identifies the tags that are associated with the campaign. Each tag consists of a required tag key and an associated tag value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The current status of the campaign.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>State</b>: The current status of the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentVersion</i> The version number of the segment that's associated with the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentId</i> The unique identifier for the segment that's associated with the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Schedule</i> The schedule settings for the campaign.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Schedule</b>: The schedule settings for the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MessageConfiguration</i> The message configuration settings for the campaign.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>MessageConfiguration</b>: The message configuration settings for the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Limits</i> The messaging limits for the campaign.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Limits</b>: The messaging limits for the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> The date, in ISO 8601 format, when the campaign was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsPaused</i> Specifies whether the campaign is paused. A paused campaign doesn't run unless you resume it by changing this value to false.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The unique identifier for the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Hook</i> The settings for the AWS Lambda function to use as a code hook for the campaign. You can use this hook to customize the segment that's used by the campaign.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Hook</b>: The settings for the AWS Lambda function to use as a code hook for the campaign. You can use this hook to customize the segment that's used by the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HoldoutPercent</i> The allocated percentage of users (segment members) who shouldn't receive messages from the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The custom description of the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultState</i> The current status of the campaign's default treatment. This value exists only for campaigns that have more than one treatment.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DefaultState</b>: The current status of the campaign's default treatment. This value exists only for campaigns that have more than one treatment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomDeliveryConfiguration</i> The delivery configuration settings for sending the campaign through a custom channel.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CustomDeliveryConfiguration</b>: The delivery configuration settings for sending the campaign through a custom channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date, in ISO 8601 format, when the campaign was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationId</i> The unique identifier for the application that the campaign applies to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdditionalTreatments</i> An array of responses, one for each treatment that you defined for the campaign, in addition to the default treatment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointTypes</i> The types of endpoints to send the campaign or treatment to. Each valid value maps to a type of channel that you can associate with an endpoint by using the ChannelType property of an endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DeliveryUri</i> The destination to send the campaign or treatment to. This value can be one of the following: <ul><li>The name or Amazon Resource Name (ARN) of an AWS Lambda function to invoke to handle delivery of the campaign or treatment.</li> <li>The URL for a web application or service that supports HTTPS and can receive the message. The URL has to be a full URL, including the HTTPS protocol.</li></ul> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CampaignStatus</i> The current status of the campaign, or the current status of a treatment that belongs to an A/B test campaign. If a campaign uses A/B testing, the campaign has a status of COMPLETED only if all campaign treatments have a status of COMPLETED. If you delete the segment that's associated with a campaign, the campaign fails and has a status of DELETED.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>WebUrl</i>  The web URL that Amazon Pinpoint calls to invoke the AWS Lambda function over HTTPS.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Mode</i> The mode that Amazon Pinpoint uses to invoke the AWS Lambda function. Possible values are: <ul><li>FILTER - Invoke the function to customize the segment that's used by a campaign.</li> <li>DELIVERY - (Deprecated) Previously, invoked the function to send a campaign through a custom channel. This functionality is not supported anymore. To send a campaign through a custom channel, use the CustomDeliveryConfiguration and CampaignCustomMessage objects of the campaign.</li></ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LambdaFunctionName</i> The name or Amazon Resource Name (ARN) of the AWS Lambda function that Amazon Pinpoint invokes to customize a segment for a campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Total</i> The maximum number of messages that a campaign can send to a single endpoint during the course of the campaign. If a campaign recurs, this setting applies to all runs of the campaign. The maximum value is 100.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MessagesPerSecond</i> The maximum number of messages that a campaign can send each second. For an application, this value specifies the default limit for the number of messages that campaigns can send each second. The minimum value is 50. The maximum value is 20,000.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaximumDuration</i> The maximum amount of time, in seconds, that a campaign can attempt to deliver a message after the scheduled start time for the campaign. The minimum value is 60 seconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Daily</i> The maximum number of messages that a campaign can send to a single endpoint during a 24-hour period. For an application, this value specifies the default limit for the number of messages that campaigns and journeys can send to a single endpoint during a 24-hour period. The maximum value is 100.<br/>The message that the campaign sends through the ADM (Amazon Device Messaging) channel. If specified, this message overrides the default message.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ADMMessage</b>: The message that the campaign sends through the ADM (Amazon Device Messaging) channel. If specified, this message overrides the default message.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EndTime</i> The scheduled time, in ISO 8601 format, when the campaign ended or will end.<br/>The type of event that causes the campaign to be sent, if the value of the Frequency property is EVENT.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EventFilter</b>: The type of event that causes the campaign to be sent, if the value of the Frequency property is EVENT.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CampaignStatus</i> The current status of the campaign, or the current status of a treatment that belongs to an A/B test campaign. If a campaign uses A/B testing, the campaign has a status of COMPLETED only if all campaign treatments have a status of COMPLETED. If you delete the segment that's associated with a campaign, the campaign fails and has a status of DELETED.<br/>The email template to use for the message.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EmailTemplate</b>: The email template to use for the message.        """
        pass

    def create_email_template(self, TemplateName: str, EmailTemplateRequest: EmailTemplateRequest) -> CreateEmailTemplateResponse:
        r"""Creates a message template for messages that are sent through the email channel.

        :param self:
        :param TemplateName:  The name of the message template. A template name must start with an alphanumeric character and can contain a maximum of 128 characters. The characters can be alphanumeric characters, underscores (_), or hyphens (-). Template names are case sensitive.<br/>EmailTemplateRequest:  Specifies the content and settings for a message template that can be used in messages that are sent through the email channel.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TextPart</i> The message body, in plain text format, to use in email messages that are based on the message template. We recommend using plain text format for email clients that don't render HTML content and clients that are connected to high-latency networks, such as mobile devices.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TemplateDescription</i> A custom description of the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> A string-to-string map of key-value pairs that defines the tags to associate with the message template. Each tag consists of a required tag key and an associated tag value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Subject</i> The subject line, or title, to use in email messages that are based on the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecommenderId</i> The unique identifier for the recommender model to use for the message template. Amazon Pinpoint uses this value to determine how to retrieve and process data from a recommender model when it sends messages that use the template, if the template contains message variables for recommendation data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HtmlPart</i> The message body, in HTML format, to use in email messages that are based on the message template. We recommend using HTML format for email clients that render HTML content. You can include links, formatted text, and more in an HTML message.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultSubstitutions</i> A JSON object that specifies the default values to use for message variables in the message template. This object is a set of key-value pairs. Each key defines a message variable in the template. The corresponding value defines the default value for that variable. When you create a message that's based on the template, you can override these defaults with message-specific and address-specific variables and values.<br/>
        :return: CreateTemplateMessageBody:  Provides information about a request to create a message template.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequestID</i> The unique identifier for the request to create the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> The message that's returned from the API for the request to create the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the message template that was created.<br/>        """
        pass

    def create_export_job(self, ExportJobRequest: ExportJobRequest, ApplicationId: str) -> CreateExportJobResponse:
        r"""Creates an export job for an application.

        :param self:
        :param ExportJobRequest:  Specifies the settings for a job that exports endpoint definitions to an Amazon Simple Storage Service (Amazon S3) bucket.:<br/>ApplicationId:  The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentVersion</i> The version of the segment to export endpoint definitions from, if specified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentId</i> The identifier for the segment to export endpoint definitions from. If you don't specify this value, Amazon Pinpoint exports definitions for all the endpoints that are associated with the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3UrlPrefix</i> The URL of the location in an Amazon Simple Storage Service (Amazon S3) bucket where you want to export endpoint definitions to. This location is typically a folder that contains multiple files. The URL should be in the following format: s3://<replaceable>bucket-name</replaceable>/<replaceable>folder-name</replaceable>/.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that authorizes Amazon Pinpoint to access the Amazon S3 location where you want to export endpoint definitions to.<br/>
        :return: ExportJobResponse:  Provides information about the status and settings of a job that exports endpoint definitions to a file. The file can be added directly to an Amazon Simple Storage Service (Amazon S3) bucket by using the Amazon Pinpoint API or downloaded directly to a computer by using the Amazon Pinpoint console.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The job type. This value is EXPORT for export jobs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalProcessed</i> The total number of endpoint definitions that were processed by the export job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalPieces</i> The total number of pieces that must be processed to complete the export job. Each piece consists of an approximately equal portion of the endpoint definitions that are part of the export job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalFailures</i> The total number of endpoint definitions that weren't processed successfully (failed) by the export job, typically because an error, such as a syntax error, occurred.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobStatus</i> The status of the export job. The job status is FAILED if Amazon Pinpoint wasn't able to process one or more pieces in the job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The unique identifier for the export job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Failures</i> An array of entries, one for each of the first 100 entries that weren't processed successfully (failed) by the export job, if any.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FailedPieces</i> The number of pieces that weren't processed successfully (failed) by the export job, as of the time of the request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Definition</i> The resource settings that apply to the export job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Definition</b>: The resource settings that apply to the export job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date, in ISO 8601 format, when the export job was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CompletionDate</i> The date, in ISO 8601 format, when the export job was completed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CompletedPieces</i> The number of pieces that were processed successfully (completed) by the export job, as of the time of the request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationId</i> The unique identifier for the application that's associated with the export job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentVersion</i> The version of the segment that the endpoint definitions were exported from.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentId</i> The identifier for the segment that the endpoint definitions were exported from. If this value isn't present, Amazon Pinpoint exported definitions for all the endpoints that are associated with the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3UrlPrefix</i> The URL of the location in an Amazon Simple Storage Service (Amazon S3) bucket where the endpoint definitions were exported to. This location is typically a folder that contains multiple files. The URL should be in the following format: s3://<replaceable>bucket-name</replaceable>/<replaceable>folder-name</replaceable>/.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that authorized Amazon Pinpoint to access the Amazon S3 location where the endpoint definitions were exported to.<br/>        """
        pass

    def create_import_job(self, ImportJobRequest: ImportJobRequest, ApplicationId: str) -> CreateImportJobResponse:
        r"""Creates an import job for an application.

        :param self:
        :param ImportJobRequest:  Specifies the settings for a job that imports endpoint definitions from an Amazon Simple Storage Service (Amazon S3) bucket.:<br/>ApplicationId:  The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentName</i> A custom name for the segment that's created by the import job, if the value of the DefineSegment property is true.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentId</i> The identifier for the segment to update or add the imported endpoint definitions to, if the import job is meant to update an existing segment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Url</i> The URL of the Amazon Simple Storage Service (Amazon S3) bucket that contains the endpoint definitions to import. This location can be a folder or a single file. If the location is a folder, Amazon Pinpoint imports endpoint definitions from the files in this location, including any subfolders that the folder contains. The URL should be in the following format: s3://<replaceable>bucket-name</replaceable>/<replaceable>folder-name</replaceable>/<replaceable>file-name</replaceable>. The location can end with the key for an individual object or a prefix that qualifies multiple objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that authorizes Amazon Pinpoint to access the Amazon S3 location to import endpoint definitions from.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RegisterEndpoints</i> Specifies whether to register the endpoints with Amazon Pinpoint, when the endpoint definitions are imported.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Format</i> The format of the files that contain the endpoint definitions to import. Valid values are: CSV, for comma-separated values format; and, JSON, for newline-delimited JSON format. If the Amazon S3 location stores multiple files that use different formats, Amazon Pinpoint imports data only from the files that use the specified format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExternalId</i> (Deprecated) Your AWS account ID, which you assigned to an external ID key in an IAM trust policy. Amazon Pinpoint previously used this value to assume an IAM role when importing endpoint definitions, but we removed this requirement. We don't recommend use of external IDs for IAM roles that are assumed by Amazon Pinpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefineSegment</i> Specifies whether to create a segment that contains the endpoints, when the endpoint definitions are imported.<br/>
        :return: ImportJobResponse:  Provides information about the status and settings of a job that imports endpoint definitions from one or more files. The files can be stored in an Amazon Simple Storage Service (Amazon S3) bucket or uploaded directly from a computer by using the Amazon Pinpoint console.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The job type. This value is IMPORT for import jobs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalProcessed</i> The total number of endpoint definitions that were processed by the import job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalPieces</i> The total number of pieces that must be processed to complete the import job. Each piece consists of an approximately equal portion of the endpoint definitions that are part of the import job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalFailures</i> The total number of endpoint definitions that weren't processed successfully (failed) by the import job, typically because an error, such as a syntax error, occurred.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobStatus</i> The status of the import job. The job status is FAILED if Amazon Pinpoint wasn't able to process one or more pieces in the job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The unique identifier for the import job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Failures</i> An array of entries, one for each of the first 100 entries that weren't processed successfully (failed) by the import job, if any.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FailedPieces</i> The number of pieces that weren't processed successfully (failed) by the import job, as of the time of the request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Definition</i> The resource settings that apply to the import job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Definition</b>: The resource settings that apply to the import job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date, in ISO 8601 format, when the import job was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CompletionDate</i> The date, in ISO 8601 format, when the import job was completed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CompletedPieces</i> The number of pieces that were processed successfully (completed) by the import job, as of the time of the request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationId</i> The unique identifier for the application that's associated with the import job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentName</i> The custom name for the segment that's created by the import job, if the value of the DefineSegment property is true.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentId</i> The identifier for the segment that the import job updates or adds endpoint definitions to, if the import job updates an existing segment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Url</i> The URL of the Amazon Simple Storage Service (Amazon S3) bucket that contains the endpoint definitions to import. This location can be a folder or a single file. If the location is a folder, Amazon Pinpoint imports endpoint definitions from the files in this location, including any subfolders that the folder contains. The URL should be in the following format: s3://<replaceable>bucket-name</replaceable>/<replaceable>folder-name</replaceable>/<replaceable>file-name</replaceable>. The location can end with the key for an individual object or a prefix that qualifies multiple objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that authorizes Amazon Pinpoint to access the Amazon S3 location to import endpoint definitions from.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RegisterEndpoints</i> Specifies whether the import job registers the endpoints with Amazon Pinpoint, when the endpoint definitions are imported.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Format</i> The format of the files that contain the endpoint definitions to import. Valid values are: CSV, for comma-separated values format; and, JSON, for newline-delimited JSON format. If the files are stored in an Amazon S3 location and that location contains multiple files that use different formats, Amazon Pinpoint imports data only from the files that use the specified format.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ExternalId</i> (Deprecated) Your AWS account ID, which you assigned to an external ID key in an IAM trust policy. Amazon Pinpoint previously used this value to assume an IAM role when importing endpoint definitions, but we removed this requirement. We don't recommend use of external IDs for IAM roles that are assumed by Amazon Pinpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DefineSegment</i> Specifies whether the import job creates a segment that contains the endpoints, when the endpoint definitions are imported.<br/>        """
        pass

    def create_journey(self, WriteJourneyRequest: WriteJourneyRequest, ApplicationId: str) -> CreateJourneyResponse:
        r"""Creates a journey for an application.

        :param self:
        :param WriteJourneyRequest:  Specifies the configuration and other settings for a journey.:<br/>ApplicationId:  The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RefreshOnSegmentUpdate</i> Specifies whether a journey should be refreshed on segment update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WaitForQuietTime</i> Specifies whether endpoints in quiet hours should enter a wait till the end of their quiet hours.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The status of the journey. Valid values are: <ul><li>DRAFT - Saves the journey and doesn't publish it.</li> <li>ACTIVE - Saves and publishes the journey. Depending on the journey's schedule, the journey starts running immediately or at the scheduled start time. If a journey's status is ACTIVE, you can't add, change, or remove activities from it.</li></ul> PAUSED, CANCELLED, COMPLETED, and CLOSED states are not supported in requests to create or update a journey. To cancel, pause, or resume a journey, use the <link  linkend="apps-application-id-journeys-journey-id-state">Journey State</link> resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StartCondition</i> The segment that defines which users are participants in the journey.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StartCondition</b>: The segment that defines which users are participants in the journey.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StartActivity</i> The unique identifier for the first activity in the journey. The identifier for this activity can contain a maximum of 128 characters. The characters must be alphanumeric characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Schedule</i> The schedule settings for the journey.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Schedule</b>: The schedule settings for the journey.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RefreshFrequency</i> The frequency with which Amazon Pinpoint evaluates segment and event data for the journey, as a duration in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>QuietTime</i> The quiet time settings for the journey. Quiet time is a specific time range when a journey doesn't send messages to participants, if all the following conditions are met: <ul><li>The EndpointDemographic.Timezone property of the endpoint for the participant is set to a valid value.</li> <li>The current time in the participant's time zone is later than or equal to the time specified by the QuietTime.Start property for the journey.</li> <li>The current time in the participant's time zone is earlier than or equal to the time specified by the QuietTime.End property for the journey.</li></ul> If any of the preceding conditions isn't met, the participant will receive messages from the journey, even if quiet time is enabled.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>QuietTime</b>: The quiet time settings for the journey. Quiet time is a specific time range when a journey doesn't send messages to participants, if all the following conditions are met: <ul><li>The EndpointDemographic.Timezone property of the endpoint for the participant is set to a valid value.</li> <li>The current time in the participant's time zone is later than or equal to the time specified by the QuietTime.Start property for the journey.</li> <li>The current time in the participant's time zone is earlier than or equal to the time specified by the QuietTime.End property for the journey.</li></ul> If any of the preceding conditions isn't met, the participant will receive messages from the journey, even if quiet time is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the journey. A journey name can contain a maximum of 150 characters. The characters can be alphanumeric characters or symbols, such as underscores (_) or hyphens (-). A journey name can't contain any spaces.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LocalTime</i> Specifies whether the journey's scheduled start and end times use each participant's local time. To base the schedule on each participant's local time, set this value to true.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Limits</i> The messaging and entry limits for the journey.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Limits</b>: The messaging and entry limits for the journey.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> The date, in ISO 8601 format, when the journey was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date, in ISO 8601 format, when the journey was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Activities</i> A map that contains a set of Activity objects, one object for each activity in the journey. For each Activity object, the key is the unique identifier (string) for an activity and the value is the settings for the activity. An activity identifier can contain a maximum of 100 characters. The characters must be alphanumeric characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointReentryInterval</i> Minimum time that must pass before an endpoint can re-enter a given journey. The duration should use an ISO 8601 format, such as PT1H. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MessagesPerSecond</i> The maximum number of messages that the journey can send each second.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointReentryCap</i> The maximum number of times that a participant can enter the journey. The maximum value is 100. To allow participants to enter the journey an unlimited number of times, set this value to 0.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DailyCap</i> The maximum number of messages that the journey can send to a single participant during a 24-hour period. The maximum value is 100.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Start</i> The specific time when quiet time begins. This value has to use 24-hour notation and be in HH:MM format, where HH is the hour (with a leading zero, if applicable) and MM is the minutes. For example, use 02:30 to represent 2:30 AM, or 14:30 to represent 2:30 PM.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>End</i> The specific time when quiet time ends. This value has to use 24-hour notation and be in HH:MM format, where HH is the hour (with a leading zero, if applicable) and MM is the minutes. For example, use 02:30 to represent 2:30 AM, or 14:30 to represent 2:30 PM.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Timezone</i> The starting UTC offset for the journey schedule, if the value of the journey's LocalTime property is true. Valid values are: UTC,
                  UTC+01, UTC+02, UTC+03, UTC+03:30, UTC+04, UTC+04:30, UTC+05, UTC+05:30,
                  UTC+05:45, UTC+06, UTC+06:30, UTC+07, UTC+08, UTC+08:45, UTC+09, UTC+09:30,
                  UTC+10, UTC+10:30, UTC+11, UTC+12, UTC+12:45, UTC+13, UTC+13:45, UTC-02,
                  UTC-02:30, UTC-03, UTC-03:30, UTC-04, UTC-05, UTC-06, UTC-07, UTC-08, UTC-09,
                  UTC-09:30, UTC-10, and UTC-11.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StartTime</i> The scheduled time, in ISO 8601 format, when the journey began or will begin.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EndTime</i> The scheduled time, in ISO 8601 format, when the journey ended or will end.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The custom description of the condition.<br/>Specifies the settings for an event that causes a journey activity to start.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EventStartCondition</b>: Specifies the settings for an event that causes a journey activity to start.
        :return: JourneyResponse:  Provides information about the status, configuration, and other settings for a journey.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RefreshOnSegmentUpdate</i> Specifies whether a journey should be refreshed on segment update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WaitForQuietTime</i> Specifies whether endpoints in quiet hours should enter a wait till the end of their quiet hours.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> This object is not used or supported.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The current status of the journey. Possible values are: <ul><li>DRAFT - The journey is being developed and hasn't been published yet.</li> <li>ACTIVE - The journey has been developed and published. Depending on the journey's schedule, the journey may currently be running or scheduled to start running at a later time. If a journey's status is ACTIVE, you can't add, change, or remove activities from it.</li> <li>COMPLETED - The journey has been published and has finished running. All participants have entered the journey and no participants are waiting to complete the journey or any activities in the journey.</li> <li>CANCELLED - The journey has been stopped. If a journey's status is CANCELLED, you can't add, change, or remove activities or segment settings from the journey.</li> <li>CLOSED - The journey has been published and has started running. It may have also passed its scheduled end time, or passed its scheduled start time and a refresh frequency hasn't been specified for it. If a journey's status is CLOSED, you can't add participants to it, and no existing participants can enter the journey for the first time. However, any existing participants who are currently waiting to start an activity may continue the journey.</li></ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StartCondition</i> The segment that defines which users are participants in the journey.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StartCondition</b>: The segment that defines which users are participants in the journey.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StartActivity</i> The unique identifier for the first activity in the journey.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Schedule</i> The schedule settings for the journey.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Schedule</b>: The schedule settings for the journey.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RefreshFrequency</i> The frequency with which Amazon Pinpoint evaluates segment and event data for the journey, as a duration in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>QuietTime</i> The quiet time settings for the journey. Quiet time is a specific time range when a journey doesn't send messages to participants, if all the following conditions are met: <ul><li>The EndpointDemographic.Timezone property of the endpoint for the participant is set to a valid value.</li> <li>The current time in the participant's time zone is later than or equal to the time specified by the QuietTime.Start property for the journey.</li> <li>The current time in the participant's time zone is earlier than or equal to the time specified by the QuietTime.End property for the journey.</li></ul> If any of the preceding conditions isn't met, the participant will receive messages from the journey, even if quiet time is enabled.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>QuietTime</b>: The quiet time settings for the journey. Quiet time is a specific time range when a journey doesn't send messages to participants, if all the following conditions are met: <ul><li>The EndpointDemographic.Timezone property of the endpoint for the participant is set to a valid value.</li> <li>The current time in the participant's time zone is later than or equal to the time specified by the QuietTime.Start property for the journey.</li> <li>The current time in the participant's time zone is earlier than or equal to the time specified by the QuietTime.End property for the journey.</li></ul> If any of the preceding conditions isn't met, the participant will receive messages from the journey, even if quiet time is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the journey.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LocalTime</i> Specifies whether the journey's scheduled start and end times use each participant's local time. If this value is true, the schedule uses each participant's local time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Limits</i> The messaging and entry limits for the journey.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Limits</b>: The messaging and entry limits for the journey.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> The date, in ISO 8601 format, when the journey was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The unique identifier for the journey.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date, in ISO 8601 format, when the journey was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationId</i> The unique identifier for the application that the journey applies to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Activities</i> A map that contains a set of Activity objects, one object for each activity in the journey. For each Activity object, the key is the unique identifier (string) for an activity and the value is the settings for the activity.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointReentryInterval</i> Minimum time that must pass before an endpoint can re-enter a given journey. The duration should use an ISO 8601 format, such as PT1H. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MessagesPerSecond</i> The maximum number of messages that the journey can send each second.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointReentryCap</i> The maximum number of times that a participant can enter the journey. The maximum value is 100. To allow participants to enter the journey an unlimited number of times, set this value to 0.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DailyCap</i> The maximum number of messages that the journey can send to a single participant during a 24-hour period. The maximum value is 100.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Start</i> The specific time when quiet time begins. This value has to use 24-hour notation and be in HH:MM format, where HH is the hour (with a leading zero, if applicable) and MM is the minutes. For example, use 02:30 to represent 2:30 AM, or 14:30 to represent 2:30 PM.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>End</i> The specific time when quiet time ends. This value has to use 24-hour notation and be in HH:MM format, where HH is the hour (with a leading zero, if applicable) and MM is the minutes. For example, use 02:30 to represent 2:30 AM, or 14:30 to represent 2:30 PM.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Timezone</i> The starting UTC offset for the journey schedule, if the value of the journey's LocalTime property is true. Valid values are: UTC,
                  UTC+01, UTC+02, UTC+03, UTC+03:30, UTC+04, UTC+04:30, UTC+05, UTC+05:30,
                  UTC+05:45, UTC+06, UTC+06:30, UTC+07, UTC+08, UTC+08:45, UTC+09, UTC+09:30,
                  UTC+10, UTC+10:30, UTC+11, UTC+12, UTC+12:45, UTC+13, UTC+13:45, UTC-02,
                  UTC-02:30, UTC-03, UTC-03:30, UTC-04, UTC-05, UTC-06, UTC-07, UTC-08, UTC-09,
                  UTC-09:30, UTC-10, and UTC-11.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StartTime</i> The scheduled time, in ISO 8601 format, when the journey began or will begin.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EndTime</i> The scheduled time, in ISO 8601 format, when the journey ended or will end.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The custom description of the condition.<br/>Specifies the settings for an event that causes a journey activity to start.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EventStartCondition</b>: Specifies the settings for an event that causes a journey activity to start.        """
        pass

    def create_push_template(self, TemplateName: str, PushNotificationTemplateRequest: PushNotificationTemplateRequest) -> CreatePushTemplateResponse:
        r"""Creates a message template for messages that are sent through a push notification channel.

        :param self:
        :param TemplateName:  The name of the message template. A template name must start with an alphanumeric character and can contain a maximum of 128 characters. The characters can be alphanumeric characters, underscores (_), or hyphens (-). Template names are case sensitive.<br/>PushNotificationTemplateRequest:  Specifies the content and settings for a message template that can be used in messages that are sent through a push notification channel.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TemplateDescription</i> A custom description of the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> A string-to-string map of key-value pairs that defines the tags to associate with the message template. Each tag consists of a required tag key and an associated tag value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecommenderId</i> The unique identifier for the recommender model to use for the message template. Amazon Pinpoint uses this value to determine how to retrieve and process data from a recommender model when it sends messages that use the template, if the template contains message variables for recommendation data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GCM</i> The message template to use for the GCM channel, which is used to send notifications through the Firebase Cloud Messaging (FCM), formerly Google Cloud Messaging (GCM), service. This message template overrides the default template for push notification channels (DefaultPushNotificationTemplate).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>GCM</b>: The message template to use for the GCM channel, which is used to send notifications through the Firebase Cloud Messaging (FCM), formerly Google Cloud Messaging (GCM), service. This message template overrides the default template for push notification channels (DefaultPushNotificationTemplate).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultSubstitutions</i> A JSON object that specifies the default values to use for message variables in the message template. This object is a set of key-value pairs. Each key defines a message variable in the template. The corresponding value defines the default value for that variable. When you create a message that's based on the template, you can override these defaults with message-specific and address-specific variables and values.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Default</i> The default message template to use for push notification channels.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Default</b>: The default message template to use for push notification channels.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Baidu</i> The message template to use for the Baidu (Baidu Cloud Push) channel. This message template overrides the default template for push notification channels (DefaultPushNotificationTemplate).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Baidu</b>: The message template to use for the Baidu (Baidu Cloud Push) channel. This message template overrides the default template for push notification channels (DefaultPushNotificationTemplate).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>APNS</i> The message template to use for the APNs (Apple Push Notification service) channel. This message template overrides the default template for push notification channels (DefaultPushNotificationTemplate).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>APNS</b>: The message template to use for the APNs (Apple Push Notification service) channel. This message template overrides the default template for push notification channels (DefaultPushNotificationTemplate).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ADM</i> The message template to use for the ADM (Amazon Device Messaging) channel. This message template overrides the default template for push notification channels (DefaultPushNotificationTemplate).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ADM</b>: The message template to use for the ADM (Amazon Device Messaging) channel. This message template overrides the default template for push notification channels (DefaultPushNotificationTemplate).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Url</i> The URL to open in a recipient's default mobile browser, if a recipient taps a push notification that's based on the message template and the value of the Action property is URL.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Title</i> The title to use in a push notification that's based on the message template. This title appears above the notification message on a recipient's device.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Sound</i> The sound to play when a recipient receives a push notification that's based on the message template. You can use the default stream or specify the file name of a sound resource that's bundled in your app. On an Android platform, the sound file must reside in /res/raw/.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SmallImageIconUrl</i> The URL of the small icon image to display in the status bar and the content view of a push notification that's based on the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RawContent</i> The raw, JSON-formatted string to use as the payload for a push notification that's based on the message template. If specified, this value overrides all other content for the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ImageUrl</i> The URL of an image to display in a push notification that's based on the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ImageIconUrl</i> The URL of the large icon image to display in the content view of a push notification that's based on the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Body</i> The message body to use in a push notification that's based on the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Action</i> The action to occur if a recipient taps a push notification that's based on the message template. Valid values are: <ul><li>OPEN_APP - Your app opens or it becomes the foreground app if it was sent to the background. This is the default action.</li> <li>DEEP_LINK - Your app opens and displays a designated user interface in the app. This action uses the deep-linking features of the Android platform.</li> <li>URL - The default mobile browser on the recipient's device opens and loads the web page at a URL that you specify.</li></ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Url</i> The URL to open in the recipient's default mobile browser, if a recipient taps a push notification that's based on the message template and the value of the Action property is URL.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Title</i> The title to use in push notifications that are based on the message template. This title appears above the notification message on a recipient's device.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Sound</i> The key for the sound to play when the recipient receives a push notification that's based on the message template. The value for this key is the name of a sound file in your app's main bundle or the Library/Sounds folder in your app's data container. If the sound file can't be found or you specify default for the value, the system plays the default alert sound.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RawContent</i> The raw, JSON-formatted string to use as the payload for push notifications that are based on the message template. If specified, this value overrides all other content for the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MediaUrl</i> The URL of an image or video to display in push notifications that are based on the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Body</i> The message body to use in push notifications that are based on the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Action</i> The action to occur if a recipient taps a push notification that's based on the message template. Valid values are: <ul><li>OPEN_APP - Your app opens or it becomes the foreground app if it was sent to the background. This is the default action.</li> <li>DEEP_LINK - Your app opens and displays a designated user interface in the app. This setting uses the deep-linking features of the iOS platform.</li> <li>URL - The default mobile browser on the recipient's device opens and loads the web page at a URL that you specify.</li></ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Url</i> The URL to open in a recipient's default mobile browser, if a recipient taps a push notification that's based on the message template and the value of the Action property is URL.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Title</i> The title to use in a push notification that's based on the message template. This title appears above the notification message on a recipient's device.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Sound</i> The sound to play when a recipient receives a push notification that's based on the message template. You can use the default stream or specify the file name of a sound resource that's bundled in your app. On an Android platform, the sound file must reside in /res/raw/.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SmallImageIconUrl</i> The URL of the small icon image to display in the status bar and the content view of a push notification that's based on the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RawContent</i> The raw, JSON-formatted string to use as the payload for a push notification that's based on the message template. If specified, this value overrides all other content for the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ImageUrl</i> The URL of an image to display in a push notification that's based on the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ImageIconUrl</i> The URL of the large icon image to display in the content view of a push notification that's based on the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Body</i> The message body to use in a push notification that's based on the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Action</i> The action to occur if a recipient taps a push notification that's based on the message template. Valid values are: <ul><li>OPEN_APP - Your app opens or it becomes the foreground app if it was sent to the background. This is the default action.</li> <li>DEEP_LINK - Your app opens and displays a designated user interface in the app. This action uses the deep-linking features of the Android platform.</li> <li>URL - The default mobile browser on the recipient's device opens and loads the web page at a URL that you specify.</li></ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Url</i> The URL to open in a recipient's default mobile browser, if a recipient taps a push notification that's based on the message template and the value of the Action property is URL.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Title</i> The title to use in push notifications that are based on the message template. This title appears above the notification message on a recipient's device.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Sound</i> The sound to play when a recipient receives a push notification that's based on the message template. You can use the default stream or specify the file name of a sound resource that's bundled in your app. On an Android platform, the sound file must reside in /res/raw/. For an iOS platform, this value is the key for the name of a sound file in your app's main bundle or the Library/Sounds folder in your app's data container. If the sound file can't be found or you specify default for the value, the system plays the default alert sound.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Body</i> The message body to use in push notifications that are based on the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Action</i> The action to occur if a recipient taps a push notification that's based on the message template. Valid values are: <ul><li>OPEN_APP - Your app opens or it becomes the foreground app if it was sent to the background. This is the default action.</li> <li>DEEP_LINK - Your app opens and displays a designated user interface in the app. This setting uses the deep-linking features of the iOS and Android platforms.</li> <li>URL - The default mobile browser on the recipient's device opens and loads the web page at a URL that you specify.</li></ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Url</i> The URL to open in a recipient's default mobile browser, if a recipient taps a push notification that's based on the message template and the value of the Action property is URL.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Title</i> The title to use in a push notification that's based on the message template. This title appears above the notification message on a recipient's device.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Sound</i> The sound to play when a recipient receives a push notification that's based on the message template. You can use the default stream or specify the file name of a sound resource that's bundled in your app. On an Android platform, the sound file must reside in /res/raw/.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SmallImageIconUrl</i> The URL of the small icon image to display in the status bar and the content view of a push notification that's based on the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RawContent</i> The raw, JSON-formatted string to use as the payload for a push notification that's based on the message template. If specified, this value overrides all other content for the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ImageUrl</i> The URL of an image to display in a push notification that's based on the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ImageIconUrl</i> The URL of the large icon image to display in the content view of a push notification that's based on the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Body</i> The message body to use in a push notification that's based on the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Action</i> The action to occur if a recipient taps a push notification that's based on the message template. Valid values are: <ul><li>OPEN_APP - Your app opens or it becomes the foreground app if it was sent to the background. This is the default action.</li> <li>DEEP_LINK - Your app opens and displays a designated user interface in the app. This action uses the deep-linking features of the Android platform.</li> <li>URL - The default mobile browser on the recipient's device opens and loads the web page at a URL that you specify.</li></ul><br/>
        :return: CreateTemplateMessageBody:  Provides information about a request to create a message template.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequestID</i> The unique identifier for the request to create the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> The message that's returned from the API for the request to create the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the message template that was created.<br/>        """
        pass

    def create_recommender_configuration(self, CreateRecommenderConfiguration: CreateRecommenderConfiguration) -> CreateRecommenderConfigurationResponse:
        r"""Creates an Amazon Pinpoint configuration for a recommender model.

        :param self:
        :param CreateRecommenderConfiguration:  Specifies Amazon Pinpoint configuration settings for retrieving and processing recommendation data from a recommender model.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecommendationsPerMessage</i> The number of recommended items to retrieve from the model for each endpoint or user, depending on the value for the RecommendationProviderIdType property. This number determines how many recommended items are available for use in message variables. The minimum value is 1. The maximum value is 5. The default value is 5. To use multiple recommended items and custom attributes with message variables, you have to use an AWS Lambda function (RecommendationTransformerUri) to perform additional processing of recommendation data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecommendationsDisplayName</i> A custom display name for the standard endpoint or user attribute (RecommendationItems) that temporarily stores recommended items for each endpoint or user, depending on the value for the RecommendationProviderIdType property. This value is required if the configuration doesn't invoke an AWS Lambda function (RecommendationTransformerUri) to perform additional processing of recommendation data. This name appears in the <b>Attribute finder</b> of the template editor on the Amazon Pinpoint console. The name can contain up to 25 characters. The characters can be letters, numbers, spaces, underscores (_), or hyphens (-). These restrictions don't apply to attribute values.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecommendationTransformerUri</i> The name or Amazon Resource Name (ARN) of the AWS Lambda function to invoke for additional processing of recommendation data that's retrieved from the recommender model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecommendationProviderUri</i> The Amazon Resource Name (ARN) of the recommender model to retrieve recommendation data from. This value must match the ARN of an Amazon Personalize campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecommendationProviderRoleArn</i> The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that authorizes Amazon Pinpoint to retrieve recommendation data from the recommender model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecommendationProviderIdType</i> The type of Amazon Pinpoint ID to associate with unique user IDs in the recommender model. This value enables the model to use attribute and event data that’s specific to a particular endpoint or user in an Amazon Pinpoint application. Valid values are: <ul><li>PINPOINT_ENDPOINT_ID - Associate each user in the model with a particular endpoint in Amazon Pinpoint. The data is correlated based on endpoint IDs in Amazon Pinpoint. This is the default value.</li> <li>PINPOINT_USER_ID - Associate each user in the model with a particular user and endpoint in Amazon Pinpoint. The data is correlated based on user IDs in Amazon Pinpoint. If you specify this value, an endpoint definition in Amazon Pinpoint has to specify both a user ID (UserId) and an endpoint ID. Otherwise, messages won’t be sent to the user's endpoint.</li></ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A custom name of the configuration for the recommender model. The name must start with a letter or number and it can contain up to 128 characters. The characters can be letters, numbers, spaces, underscores (_), or hyphens (-).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A custom description of the configuration for the recommender model. The description can contain up to 128 characters. The characters can be letters, numbers, spaces, or the following symbols: _ ; () , ‐.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Attributes</i> A map of key-value pairs that defines 1-10 custom endpoint or user attributes, depending on the value for the RecommendationProviderIdType property. Each of these attributes temporarily stores a recommended item that's retrieved from the recommender model and sent to an AWS Lambda function for additional processing. Each attribute can be used as a message variable in a message template. In the map, the key is the name of a custom attribute and the value is a custom display name for that attribute. The display name appears in the <b>Attribute finder</b> of the template editor on the Amazon Pinpoint console. The following restrictions apply to these names: <ul><li>An attribute name must start with a letter or number and it can contain up to 50 characters. The characters can be letters, numbers, underscores (_), or hyphens (-). Attribute names are case sensitive and must be unique.</li> <li>An attribute display name must start with a letter or number and it can contain up to 25 characters. The characters can be letters, numbers, spaces, underscores (_), or hyphens (-).</li></ul> This object is required if the configuration invokes an AWS Lambda function (RecommendationTransformerUri) to process recommendation data. Otherwise, don't include this object in your request.<br/>
        :return: RecommenderConfigurationResponse:  Provides information about Amazon Pinpoint configuration settings for retrieving and processing data from a recommender model.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecommendationsPerMessage</i> The number of recommended items that are retrieved from the model for each endpoint or user, depending on the value for the RecommendationProviderIdType property. This number determines how many recommended items are available for use in message variables.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecommendationsDisplayName</i> The custom display name for the standard endpoint or user attribute (RecommendationItems) that temporarily stores recommended items for each endpoint or user, depending on the value for the RecommendationProviderIdType property. This name appears in the <b>Attribute finder</b> of the template editor on the Amazon Pinpoint console. This value is null if the configuration doesn't invoke an AWS Lambda function (RecommendationTransformerUri) to perform additional processing of recommendation data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecommendationTransformerUri</i> The name or Amazon Resource Name (ARN) of the AWS Lambda function that Amazon Pinpoint invokes to perform additional processing of recommendation data that it retrieves from the recommender model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecommendationProviderUri</i> The Amazon Resource Name (ARN) of the recommender model that Amazon Pinpoint retrieves the recommendation data from. This value is the ARN of an Amazon Personalize campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecommendationProviderRoleArn</i> The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that authorizes Amazon Pinpoint to retrieve recommendation data from the recommender model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecommendationProviderIdType</i> The type of Amazon Pinpoint ID that's associated with unique user IDs in the recommender model. This value enables the model to use attribute and event data that’s specific to a particular endpoint or user in an Amazon Pinpoint application. Possible values are: <ul><li>PINPOINT_ENDPOINT_ID - Each user in the model is associated with a particular endpoint in Amazon Pinpoint. The data is correlated based on endpoint IDs in Amazon Pinpoint. This is the default value.</li> <li>PINPOINT_USER_ID - Each user in the model is associated with a particular user and endpoint in Amazon Pinpoint. The data is correlated based on user IDs in Amazon Pinpoint. If this value is specified, an endpoint definition in Amazon Pinpoint has to specify both a user ID (UserId) and an endpoint ID. Otherwise, messages won’t be sent to the user's endpoint.</li></ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The custom name of the configuration for the recommender model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> The date, in extended ISO 8601 format, when the configuration for the recommender model was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The unique identifier for the recommender model configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The custom description of the configuration for the recommender model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date, in extended ISO 8601 format, when the configuration was created for the recommender model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Attributes</i> A map that defines 1-10 custom endpoint or user attributes, depending on the value for the RecommendationProviderIdType property. Each of these attributes temporarily stores a recommended item that's retrieved from the recommender model and sent to an AWS Lambda function for additional processing. Each attribute can be used as a message variable in a message template. This value is null if the configuration doesn't invoke an AWS Lambda function (RecommendationTransformerUri) to perform additional processing of recommendation data.<br/>        """
        pass

    def create_segment(self, WriteSegmentRequest: WriteSegmentRequest, ApplicationId: str) -> CreateSegmentResponse:
        r"""Creates a new segment for an application or updates the configuration, dimension, and other settings for an existing segment that's associated with an application.

        :param self:
        :param WriteSegmentRequest:  Specifies the configuration, dimension, and other settings for a segment. A WriteSegmentRequest object can include a Dimensions object or a SegmentGroups object, but not both.:<br/>ApplicationId:  The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> A string-to-string map of key-value pairs that defines the tags to associate with the segment. Each tag consists of a required tag key and an associated tag value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentGroups</i> The segment group to use and the dimensions to apply to the group's base segments in order to build the segment. A segment group can consist of zero or more base segments. Your request can include only one segment group.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SegmentGroups</b>: The segment group to use and the dimensions to apply to the group's base segments in order to build the segment. A segment group can consist of zero or more base segments. Your request can include only one segment group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the segment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Dimensions</i> The criteria that define the dimensions for the segment.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Dimensions</b>: The criteria that define the dimensions for the segment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Attributes</i> One or more custom attributes to use as criteria for the segment.<br/>The behavior-based criteria, such as how recently users have used your app, for the segment.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Behavior</b>: The behavior-based criteria, such as how recently users have used your app, for the segment.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Include</i> Specifies how to handle multiple segment groups for the segment. For example, if the segment includes three segment groups, whether the resulting segment includes endpoints that match all, any, or none of the segment groups.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Groups</i> An array that defines the set of segment criteria to evaluate when handling segment groups for the segment.<br/>
        :return: SegmentResponse:  Provides information about the configuration, dimension, and other settings for a segment.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The version number of the segment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> A string-to-string map of key-value pairs that identifies the tags that are associated with the segment. Each tag consists of a required tag key and an associated tag value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentType</i> The segment type. Valid values are: <ul><li>DIMENSIONAL - A dynamic segment, which is a segment that uses selection criteria that you specify and is based on endpoint data that's reported by your app. Dynamic segments can change over time.</li> <li>IMPORT - A static segment, which is a segment that uses selection criteria that you specify and is based on endpoint definitions that you import from a file. Imported segments are static; they don't change over time.</li></ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentGroups</i> A list of one or more segment groups that apply to the segment. Each segment group consists of zero or more base segments and the dimensions that are applied to those base segments.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SegmentGroups</b>: A list of one or more segment groups that apply to the segment. Each segment group consists of zero or more base segments and the dimensions that are applied to those base segments.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the segment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> The date and time when the segment was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImportDefinition</i> The settings for the import job that's associated with the segment.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ImportDefinition</b>: The settings for the import job that's associated with the segment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The unique identifier for the segment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Dimensions</i> The dimension settings for the segment.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Dimensions</b>: The dimension settings for the segment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date and time when the segment was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the segment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationId</i> The unique identifier for the application that the segment is associated with.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Attributes</i> One or more custom attributes to use as criteria for the segment.<br/>The behavior-based criteria, such as how recently users have used your app, for the segment.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Behavior</b>: The behavior-based criteria, such as how recently users have used your app, for the segment.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Size</i> The number of endpoint definitions that were imported successfully to create the segment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Url</i> The URL of the Amazon Simple Storage Service (Amazon S3) bucket that the endpoint definitions were imported from to create the segment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that authorized Amazon Pinpoint to access the Amazon S3 location to import endpoint definitions from.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Format</i> The format of the files that were imported to create the segment. Valid values are: CSV, for comma-separated values format; and, JSON, for newline-delimited JSON format.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ExternalId</i> (Deprecated) Your AWS account ID, which you assigned to an external ID key in an IAM trust policy. Amazon Pinpoint previously used this value to assume an IAM role when importing endpoint definitions, but we removed this requirement. We don't recommend use of external IDs for IAM roles that are assumed by Amazon Pinpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ChannelCounts</i> The number of channel types in the endpoint definitions that were imported to create the segment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Include</i> Specifies how to handle multiple segment groups for the segment. For example, if the segment includes three segment groups, whether the resulting segment includes endpoints that match all, any, or none of the segment groups.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Groups</i> An array that defines the set of segment criteria to evaluate when handling segment groups for the segment.<br/>        """
        pass

    def create_sms_template(self, TemplateName: str, SMSTemplateRequest: SMSTemplateRequest) -> CreateSmsTemplateResponse:
        r"""Creates a message template for messages that are sent through the SMS channel.

        :param self:
        :param TemplateName:  The name of the message template. A template name must start with an alphanumeric character and can contain a maximum of 128 characters. The characters can be alphanumeric characters, underscores (_), or hyphens (-). Template names are case sensitive.<br/>SMSTemplateRequest:  Specifies the content and settings for a message template that can be used in text messages that are sent through the SMS channel.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TemplateDescription</i> A custom description of the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> A string-to-string map of key-value pairs that defines the tags to associate with the message template. Each tag consists of a required tag key and an associated tag value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecommenderId</i> The unique identifier for the recommender model to use for the message template. Amazon Pinpoint uses this value to determine how to retrieve and process data from a recommender model when it sends messages that use the template, if the template contains message variables for recommendation data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultSubstitutions</i> A JSON object that specifies the default values to use for message variables in the message template. This object is a set of key-value pairs. Each key defines a message variable in the template. The corresponding value defines the default value for that variable. When you create a message that's based on the template, you can override these defaults with message-specific and address-specific variables and values.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Body</i> The message body to use in text messages that are based on the message template.<br/>
        :return: CreateTemplateMessageBody:  Provides information about a request to create a message template.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequestID</i> The unique identifier for the request to create the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> The message that's returned from the API for the request to create the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the message template that was created.<br/>        """
        pass

    def create_voice_template(self, VoiceTemplateRequest: VoiceTemplateRequest, TemplateName: str) -> CreateVoiceTemplateResponse:
        r"""Creates a message template for messages that are sent through the voice channel.

        :param self:
        :param VoiceTemplateRequest:  Specifies the content and settings for a message template that can be used in messages that are sent through the voice channel.:<br/>TemplateName:  The name of the message template. A template name must start with an alphanumeric character and can contain a maximum of 128 characters. The characters can be alphanumeric characters, underscores (_), or hyphens (-). Template names are case sensitive.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VoiceId</i> The name of the voice to use when delivering messages that are based on the message template. For a list of supported voices, see the <a href="https://docs.aws.amazon.com/polly/latest/dg/what-is.html">Amazon Polly Developer Guide</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TemplateDescription</i> A custom description of the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> A string-to-string map of key-value pairs that defines the tags to associate with the message template. Each tag consists of a required tag key and an associated tag value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LanguageCode</i> The code for the language to use when synthesizing the text of the script in messages that are based on the message template. For a list of supported languages and the code for each one, see the <a href="https://docs.aws.amazon.com/polly/latest/dg/what-is.html">Amazon Polly Developer Guide</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultSubstitutions</i> A JSON object that specifies the default values to use for message variables in the message template. This object is a set of key-value pairs. Each key defines a message variable in the template. The corresponding value defines the default value for that variable. When you create a message that's based on the template, you can override these defaults with message-specific and address-specific variables and values.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Body</i> The text of the script to use in messages that are based on the message template, in plain text format.<br/>
        :return: CreateTemplateMessageBody:  Provides information about a request to create a message template.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequestID</i> The unique identifier for the request to create the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> The message that's returned from the API for the request to create the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the message template that was created.<br/>        """
        pass

    def delete_adm_channel(self, ApplicationId: str) -> DeleteAdmChannelResponse:
        r"""Disables the ADM channel for an application and deletes any existing settings for the channel.

        :param self:
        :param ApplicationId:  The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>
        :return: ADMChannelResponse:  Provides information about the status and settings of the ADM (Amazon Device Messaging) channel for an application.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The current version of the ADM channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Platform</i> The type of messaging or notification platform for the channel. For the ADM channel, this value is ADM.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> The date and time when the ADM channel was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedBy</i> The user who last modified the ADM channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsArchived</i> Specifies whether the ADM channel is archived.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> (Deprecated) An identifier for the ADM channel. This property is retained only for backward compatibility.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HasCredential</i> (Not used) This property is retained only for backward compatibility.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specifies whether the ADM channel is enabled for the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date and time when the ADM channel was enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationId</i> The unique identifier for the application that the ADM channel applies to.<br/>        """
        pass

    def delete_apns_channel(self, ApplicationId: str) -> DeleteApnsChannelResponse:
        r"""Disables the APNs channel for an application and deletes any existing settings for the channel.

        :param self:
        :param ApplicationId:  The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>
        :return: APNSChannelResponse:  Provides information about the status and settings of the APNs (Apple Push Notification service) channel for an application.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The current version of the APNs channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Platform</i>  The type of messaging or notification platform for the channel. For the APNs channel, this value is APNS.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> The date and time when the APNs channel was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedBy</i> The user who last modified the APNs channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsArchived</i> Specifies whether the APNs channel is archived.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> (Deprecated) An identifier for the APNs channel. This property is retained only for backward compatibility.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HasTokenKey</i> Specifies whether the APNs channel is configured to communicate with APNs by using APNs tokens. To provide an authentication key for APNs tokens, set the TokenKey property of the channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HasCredential</i> (Not used) This property is retained only for backward compatibility.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specifies whether the APNs channel is enabled for the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultAuthenticationMethod</i> The default authentication method that Amazon Pinpoint uses to authenticate with APNs for this channel, key or certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date and time when the APNs channel was enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationId</i> The unique identifier for the application that the APNs channel applies to.<br/>        """
        pass

    def delete_apns_sandbox_channel(self, ApplicationId: str) -> DeleteApnsSandboxChannelResponse:
        r"""Disables the APNs sandbox channel for an application and deletes any existing settings for the channel.

        :param self:
        :param ApplicationId:  The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>
        :return: APNSSandboxChannelResponse:  Provides information about the status and settings of the APNs (Apple Push Notification service) sandbox channel for an application.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The current version of the APNs sandbox channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Platform</i> The type of messaging or notification platform for the channel. For the APNs sandbox channel, this value is APNS_SANDBOX.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> The date and time when the APNs sandbox channel was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedBy</i> The user who last modified the APNs sandbox channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsArchived</i> Specifies whether the APNs sandbox channel is archived.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> (Deprecated) An identifier for the APNs sandbox channel. This property is retained only for backward compatibility.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HasTokenKey</i> Specifies whether the APNs sandbox channel is configured to communicate with APNs by using APNs tokens. To provide an authentication key for APNs tokens, set the TokenKey property of the channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HasCredential</i> (Not used) This property is retained only for backward compatibility.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specifies whether the APNs sandbox channel is enabled for the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultAuthenticationMethod</i> The default authentication method that Amazon Pinpoint uses to authenticate with the APNs sandbox environment for this channel, key or certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date and time when the APNs sandbox channel was enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationId</i> The unique identifier for the application that the APNs sandbox channel applies to.<br/>        """
        pass

    def delete_apns_voip_channel(self, ApplicationId: str) -> DeleteApnsVoipChannelResponse:
        r"""Disables the APNs VoIP channel for an application and deletes any existing settings for the channel.

        :param self:
        :param ApplicationId:  The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>
        :return: APNSVoipChannelResponse:  Provides information about the status and settings of the APNs (Apple Push Notification service) VoIP channel for an application.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The current version of the APNs VoIP channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Platform</i> The type of messaging or notification platform for the channel. For the APNs VoIP channel, this value is APNS_VOIP.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> The date and time when the APNs VoIP channel was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedBy</i> The user who last modified the APNs VoIP channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsArchived</i> Specifies whether the APNs VoIP channel is archived.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> (Deprecated) An identifier for the APNs VoIP channel. This property is retained only for backward compatibility.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HasTokenKey</i> Specifies whether the APNs VoIP channel is configured to communicate with APNs by using APNs tokens. To provide an authentication key for APNs tokens, set the TokenKey property of the channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HasCredential</i> (Not used) This property is retained only for backward compatibility.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specifies whether the APNs VoIP channel is enabled for the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultAuthenticationMethod</i> The default authentication method that Amazon Pinpoint uses to authenticate with APNs for this channel, key or certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date and time when the APNs VoIP channel was enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationId</i> The unique identifier for the application that the APNs VoIP channel applies to.<br/>        """
        pass

    def delete_apns_voip_sandbox_channel(self, ApplicationId: str) -> DeleteApnsVoipSandboxChannelResponse:
        r"""Disables the APNs VoIP sandbox channel for an application and deletes any existing settings for the channel.

        :param self:
        :param ApplicationId:  The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>
        :return: APNSVoipSandboxChannelResponse:  Provides information about the status and settings of the APNs (Apple Push Notification service) VoIP sandbox channel for an application.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The current version of the APNs VoIP sandbox channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Platform</i> The type of messaging or notification platform for the channel. For the APNs VoIP sandbox channel, this value is APNS_VOIP_SANDBOX.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> The date and time when the APNs VoIP sandbox channel was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedBy</i> The user who last modified the APNs VoIP sandbox channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsArchived</i> Specifies whether the APNs VoIP sandbox channel is archived.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> (Deprecated) An identifier for the APNs VoIP sandbox channel. This property is retained only for backward compatibility.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HasTokenKey</i> Specifies whether the APNs VoIP sandbox channel is configured to communicate with APNs by using APNs tokens. To provide an authentication key for APNs tokens, set the TokenKey property of the channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HasCredential</i> (Not used) This property is retained only for backward compatibility.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specifies whether the APNs VoIP sandbox channel is enabled for the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultAuthenticationMethod</i> The default authentication method that Amazon Pinpoint uses to authenticate with the APNs sandbox environment for this channel, key or certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date and time when the APNs VoIP sandbox channel was enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationId</i> The unique identifier for the application that the APNs VoIP sandbox channel applies to.<br/>        """
        pass

    def delete_app(self, ApplicationId: str) -> DeleteAppResponse:
        r"""Deletes an application.

        :param self:
        :param ApplicationId:  The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>
        :return: ApplicationResponse:  Provides information about an application.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> A string-to-string map of key-value pairs that identifies the tags that are associated with the application. Each tag consists of a required tag key and an associated tag value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The display name of the application. This name is displayed as the <b>Project name</b> on the Amazon Pinpoint console.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the application.<br/>        """
        pass

    def delete_baidu_channel(self, ApplicationId: str) -> DeleteBaiduChannelResponse:
        r"""Disables the Baidu channel for an application and deletes any existing settings for the channel.

        :param self:
        :param ApplicationId:  The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>
        :return: BaiduChannelResponse:  Provides information about the status and settings of the Baidu (Baidu Cloud Push) channel for an application.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The current version of the Baidu channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Platform</i> The type of messaging or notification platform for the channel. For the Baidu channel, this value is BAIDU.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> The date and time when the Baidu channel was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedBy</i> The user who last modified the Baidu channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsArchived</i> Specifies whether the Baidu channel is archived.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> (Deprecated) An identifier for the Baidu channel. This property is retained only for backward compatibility.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HasCredential</i> (Not used) This property is retained only for backward compatibility.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specifies whether the Baidu channel is enabled for the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Credential</i> The API key that you received from the Baidu Cloud Push service to communicate with the service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date and time when the Baidu channel was enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationId</i> The unique identifier for the application that the Baidu channel applies to.<br/>        """
        pass

    def delete_campaign(self, CampaignId: str, ApplicationId: str) -> DeleteCampaignResponse:
        r"""Deletes a campaign from an application.

        :param self:
        :param CampaignId:  The unique identifier for the campaign.<br/>ApplicationId:  The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>
        :return: CampaignResponse:  Provides information about the status, configuration, and other settings for a campaign.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The version number of the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TreatmentName</i> The custom name of the default treatment for the campaign, if the campaign has multiple treatments. A <i>treatment</i> is a variation of a campaign that's used for A/B testing.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TreatmentDescription</i> The custom description of the default treatment for the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TemplateConfiguration</i> The message template that’s used for the campaign.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TemplateConfiguration</b>: The message template that’s used for the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> A string-to-string map of key-value pairs that identifies the tags that are associated with the campaign. Each tag consists of a required tag key and an associated tag value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The current status of the campaign.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>State</b>: The current status of the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentVersion</i> The version number of the segment that's associated with the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentId</i> The unique identifier for the segment that's associated with the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Schedule</i> The schedule settings for the campaign.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Schedule</b>: The schedule settings for the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MessageConfiguration</i> The message configuration settings for the campaign.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>MessageConfiguration</b>: The message configuration settings for the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Limits</i> The messaging limits for the campaign.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Limits</b>: The messaging limits for the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> The date, in ISO 8601 format, when the campaign was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsPaused</i> Specifies whether the campaign is paused. A paused campaign doesn't run unless you resume it by changing this value to false.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The unique identifier for the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Hook</i> The settings for the AWS Lambda function to use as a code hook for the campaign. You can use this hook to customize the segment that's used by the campaign.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Hook</b>: The settings for the AWS Lambda function to use as a code hook for the campaign. You can use this hook to customize the segment that's used by the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HoldoutPercent</i> The allocated percentage of users (segment members) who shouldn't receive messages from the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The custom description of the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultState</i> The current status of the campaign's default treatment. This value exists only for campaigns that have more than one treatment.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DefaultState</b>: The current status of the campaign's default treatment. This value exists only for campaigns that have more than one treatment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomDeliveryConfiguration</i> The delivery configuration settings for sending the campaign through a custom channel.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CustomDeliveryConfiguration</b>: The delivery configuration settings for sending the campaign through a custom channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date, in ISO 8601 format, when the campaign was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationId</i> The unique identifier for the application that the campaign applies to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdditionalTreatments</i> An array of responses, one for each treatment that you defined for the campaign, in addition to the default treatment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointTypes</i> The types of endpoints to send the campaign or treatment to. Each valid value maps to a type of channel that you can associate with an endpoint by using the ChannelType property of an endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DeliveryUri</i> The destination to send the campaign or treatment to. This value can be one of the following: <ul><li>The name or Amazon Resource Name (ARN) of an AWS Lambda function to invoke to handle delivery of the campaign or treatment.</li> <li>The URL for a web application or service that supports HTTPS and can receive the message. The URL has to be a full URL, including the HTTPS protocol.</li></ul> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CampaignStatus</i> The current status of the campaign, or the current status of a treatment that belongs to an A/B test campaign. If a campaign uses A/B testing, the campaign has a status of COMPLETED only if all campaign treatments have a status of COMPLETED. If you delete the segment that's associated with a campaign, the campaign fails and has a status of DELETED.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>WebUrl</i>  The web URL that Amazon Pinpoint calls to invoke the AWS Lambda function over HTTPS.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Mode</i> The mode that Amazon Pinpoint uses to invoke the AWS Lambda function. Possible values are: <ul><li>FILTER - Invoke the function to customize the segment that's used by a campaign.</li> <li>DELIVERY - (Deprecated) Previously, invoked the function to send a campaign through a custom channel. This functionality is not supported anymore. To send a campaign through a custom channel, use the CustomDeliveryConfiguration and CampaignCustomMessage objects of the campaign.</li></ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LambdaFunctionName</i> The name or Amazon Resource Name (ARN) of the AWS Lambda function that Amazon Pinpoint invokes to customize a segment for a campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Total</i> The maximum number of messages that a campaign can send to a single endpoint during the course of the campaign. If a campaign recurs, this setting applies to all runs of the campaign. The maximum value is 100.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MessagesPerSecond</i> The maximum number of messages that a campaign can send each second. For an application, this value specifies the default limit for the number of messages that campaigns can send each second. The minimum value is 50. The maximum value is 20,000.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaximumDuration</i> The maximum amount of time, in seconds, that a campaign can attempt to deliver a message after the scheduled start time for the campaign. The minimum value is 60 seconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Daily</i> The maximum number of messages that a campaign can send to a single endpoint during a 24-hour period. For an application, this value specifies the default limit for the number of messages that campaigns and journeys can send to a single endpoint during a 24-hour period. The maximum value is 100.<br/>The message that the campaign sends through the ADM (Amazon Device Messaging) channel. If specified, this message overrides the default message.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ADMMessage</b>: The message that the campaign sends through the ADM (Amazon Device Messaging) channel. If specified, this message overrides the default message.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EndTime</i> The scheduled time, in ISO 8601 format, when the campaign ended or will end.<br/>The type of event that causes the campaign to be sent, if the value of the Frequency property is EVENT.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EventFilter</b>: The type of event that causes the campaign to be sent, if the value of the Frequency property is EVENT.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CampaignStatus</i> The current status of the campaign, or the current status of a treatment that belongs to an A/B test campaign. If a campaign uses A/B testing, the campaign has a status of COMPLETED only if all campaign treatments have a status of COMPLETED. If you delete the segment that's associated with a campaign, the campaign fails and has a status of DELETED.<br/>The email template to use for the message.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EmailTemplate</b>: The email template to use for the message.        """
        pass

    def delete_email_channel(self, ApplicationId: str) -> DeleteEmailChannelResponse:
        r"""Disables the email channel for an application and deletes any existing settings for the channel.

        :param self:
        :param ApplicationId:  The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>
        :return: EmailChannelResponse:  Provides information about the status and settings of the email channel for an application.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The current version of the email channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i>  The ARN of the AWS Identity and Access Management (IAM) role that Amazon Pinpoint uses to submit email-related event data for the channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Platform</i> The type of messaging or notification platform for the channel. For the email channel, this value is EMAIL.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MessagesPerSecond</i> The maximum number of emails that can be sent through the channel each second.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> The date and time, in ISO 8601 format, when the email channel was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedBy</i> The user who last modified the email channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsArchived</i> Specifies whether the email channel is archived.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Identity</i>  The Amazon Resource Name (ARN) of the identity, verified with Amazon Simple Email Service (Amazon SES), that's used when you send email through the channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> (Deprecated) An identifier for the email channel. This property is retained only for backward compatibility.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HasCredential</i> (Not used) This property is retained only for backward compatibility.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FromAddress</i> The verified email address that email is sent from when you send email through the channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specifies whether the email channel is enabled for the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date and time, in ISO 8601 format, when the email channel was enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConfigurationSet</i> The <a href="https://docs.aws.amazon.com/ses/latest/APIReference/API_ConfigurationSet.html">Amazon SES configuration set</a> that's applied to messages that are sent through the channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationId</i> The unique identifier for the application that the email channel applies to.<br/>        """
        pass

    def delete_email_template(self, TemplateName: str, Version: str=None) -> DeleteEmailTemplateResponse:
        r"""Deletes a message template for messages that were sent through the email channel.

        :param self:
        :param Version:  The unique identifier for the version of the message template to update, retrieve information about, or delete. To retrieve identifiers and other information for all the versions of a template, use the <link  linkend="templates-template-name-template-type-versions">Template Versions</link> resource. If specified, this value must match the identifier for an existing template version. If specified for an update operation, this value must match the identifier for the latest existing version of the template. This restriction helps ensure that race conditions don't occur. If you don't specify a value for this parameter, Amazon Pinpoint does the following: <ul><li>For a get operation, retrieves information about the active version of the template.</li> <li>For an update operation, saves the updates to (overwrites) the latest existing version of the template, if the create-new-version parameter isn't used or is set to false.</li> <li>For a delete operation, deletes the template, including all versions of the template.</li></ul><br/>TemplateName:  The name of the message template. A template name must start with an alphanumeric character and can contain a maximum of 128 characters. The characters can be alphanumeric characters, underscores (_), or hyphens (-). Template names are case sensitive.<br/>
        :return: MessageBody:  Provides information about an API request or response.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequestID</i> The unique identifier for the request or response.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> The message that's returned from the API.<br/>        """
        pass

    def delete_endpoint(self, EndpointId: str, ApplicationId: str) -> DeleteEndpointResponse:
        r"""Deletes an endpoint from an application.

        :param self:
        :param EndpointId:  The unique identifier for the endpoint.<br/>ApplicationId:  The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>
        :return: EndpointResponse:  Provides information about the channel type and other settings for an endpoint.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>User</i> One or more custom user attributes that your app reports to Amazon Pinpoint for the user who's associated with the endpoint.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>User</b>: One or more custom user attributes that your app reports to Amazon Pinpoint for the user who's associated with the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequestId</i> The unique identifier for the most recent request to update the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OptOut</i> Specifies whether the user who's associated with the endpoint has opted out of receiving messages and push notifications from you. Possible values are: ALL, the user has opted out and doesn't want to receive any messages or push notifications; and, NONE, the user hasn't opted out and wants to receive all messages and push notifications.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Metrics</i> One or more custom metrics that your app reports to Amazon Pinpoint for the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Location</i> The geographic information for the endpoint.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Location</b>: The geographic information for the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The unique identifier that you assigned to the endpoint. The identifier should be a globally unique identifier (GUID) to ensure that it doesn't conflict with other endpoint identifiers that are associated with the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointStatus</i> Specifies whether messages or push notifications are sent to the endpoint. Possible values are: ACTIVE, messages are sent to the endpoint; and, INACTIVE, messages aren’t sent to the endpoint. Amazon Pinpoint automatically sets this value to ACTIVE when you create an endpoint or update an existing endpoint. Amazon Pinpoint automatically sets this value to INACTIVE if you update another endpoint that has the same address specified by the Address property.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EffectiveDate</i> The date and time, in ISO 8601 format, when the endpoint was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Demographic</i> The demographic information for the endpoint, such as the time zone and platform.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Demographic</b>: The demographic information for the endpoint, such as the time zone and platform.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date and time, in ISO 8601 format, when the endpoint was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CohortId</i> A number from 0-99 that represents the cohort that the endpoint is assigned to. Endpoints are grouped into cohorts randomly, and each cohort contains approximately 1 percent of the endpoints for an application. Amazon Pinpoint assigns cohorts to the holdout or treatment allocations for campaigns.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ChannelType</i> The channel that's used when sending messages or push notifications to the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Attributes</i> One or more custom attributes that describe the endpoint by associating a name with an array of values. For example, the value of a custom attribute named Interests might be: ["Science", "Music", "Travel"]. You can use these attributes as filter criteria when you create segments.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationId</i> The unique identifier for the application that's associated with the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Address</i> The destination address for messages or push notifications that you send to the endpoint. The address varies by channel. For example, the address for a push-notification channel is typically the token provided by a push notification service, such as an Apple Push Notification service (APNs) device token or a Firebase Cloud Messaging (FCM) registration token. The address for the SMS channel is a phone number in E.164 format, such as +12065550100. The address for the email channel is an email address.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Timezone</i> The time zone of the endpoint, specified as a tz database name value, such as America/Los_Angeles.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PlatformVersion</i> The platform version of the endpoint device.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Platform</i> The platform of the endpoint device, such as ios.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ModelVersion</i> The model version of the endpoint device.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Model</i> The model name or number of the endpoint device, such as iPhone or SM-G900F.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Make</i> The manufacturer of the endpoint device, such as apple or samsung.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Locale</i> The locale of the endpoint, in the following format: the ISO 639-1 alpha-2 code, followed by an underscore (_), followed by an ISO 3166-1 alpha-2 value.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AppVersion</i> The version of the app that's associated with the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Region</i> The name of the region where the endpoint is located. For locations in the United States, this value is the name of a state.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PostalCode</i> The postal or ZIP code for the area where the endpoint is located.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Longitude</i> The longitude coordinate of the endpoint location, rounded to one decimal place.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Latitude</i> The latitude coordinate of the endpoint location, rounded to one decimal place.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Country</i> The two-character code, in ISO 3166-1 alpha-2 format, for the country or region where the endpoint is located. For example, US for the United States.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>City</i> The name of the city where the endpoint is located.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UserId</i> The unique identifier for the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UserAttributes</i> One or more custom attributes that describe the user by associating a name with an array of values. For example, the value of an attribute named Interests might be: ["Science", "Music", "Travel"]. You can use these attributes as filter criteria when you create segments. Attribute names are case sensitive. An attribute name can contain up to 50 characters. An attribute value can contain up to 100 characters. When you define the name of a custom attribute, avoid using the following characters: number sign (#), colon (:), question mark (?), backslash (\), and slash (/). The Amazon Pinpoint console can't display attribute names that contain these characters. This restriction doesn't apply to attribute values.<br/>        """
        pass

    def delete_event_stream(self, ApplicationId: str) -> DeleteEventStreamResponse:
        r"""Deletes the event stream for an application.

        :param self:
        :param ApplicationId:  The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>
        :return: EventStream:  Specifies settings for publishing event data to an Amazon Kinesis data stream or an Amazon Kinesis Data Firehose delivery stream.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The AWS Identity and Access Management (IAM) role that authorizes Amazon Pinpoint to publish event data to the stream in your AWS account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdatedBy</i> The IAM user who last modified the event stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> The date, in ISO 8601 format, when the event stream was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExternalId</i> (Deprecated) Your AWS account ID, which you assigned to an external ID key in an IAM trust policy. Amazon Pinpoint previously used this value to assume an IAM role when publishing event data, but we removed this requirement. We don't recommend use of external IDs for IAM roles that are assumed by Amazon Pinpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DestinationStreamArn</i> The Amazon Resource Name (ARN) of the Amazon Kinesis data stream or Amazon Kinesis Data Firehose delivery stream to publish event data to. For a Kinesis data stream, the ARN format is: arn:aws:kinesis:<replaceable>region</replaceable>:<replaceable>account-id</replaceable>:stream/<replaceable>stream_name</replaceable>
                For a Kinesis Data Firehose delivery stream, the ARN format is: arn:aws:firehose:<replaceable>region</replaceable>:<replaceable>account-id</replaceable>:deliverystream/<replaceable>stream_name</replaceable>
               <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationId</i> The unique identifier for the application to publish event data for.<br/>        """
        pass

    def delete_gcm_channel(self, ApplicationId: str) -> DeleteGcmChannelResponse:
        r"""Disables the GCM channel for an application and deletes any existing settings for the channel.

        :param self:
        :param ApplicationId:  The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>
        :return: GCMChannelResponse:  Provides information about the status and settings of the GCM channel for an application. The GCM channel enables Amazon Pinpoint to send push notifications through the Firebase Cloud Messaging (FCM), formerly Google Cloud Messaging (GCM), service.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The current version of the GCM channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Platform</i> The type of messaging or notification platform for the channel. For the GCM channel, this value is GCM.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> The date and time when the GCM channel was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedBy</i> The user who last modified the GCM channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsArchived</i> Specifies whether the GCM channel is archived.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> (Deprecated) An identifier for the GCM channel. This property is retained only for backward compatibility.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HasCredential</i> (Not used) This property is retained only for backward compatibility.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specifies whether the GCM channel is enabled for the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Credential</i> The Web API Key, also referred to as an <i>API_KEY</i> or <i>server key</i>, that you received from Google to communicate with Google services.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date and time when the GCM channel was enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationId</i> The unique identifier for the application that the GCM channel applies to.<br/>        """
        pass

    def delete_journey(self, JourneyId: str, ApplicationId: str) -> DeleteJourneyResponse:
        r"""Deletes a journey from an application.

        :param self:
        :param JourneyId:  The unique identifier for the journey.<br/>ApplicationId:  The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>
        :return: JourneyResponse:  Provides information about the status, configuration, and other settings for a journey.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RefreshOnSegmentUpdate</i> Specifies whether a journey should be refreshed on segment update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WaitForQuietTime</i> Specifies whether endpoints in quiet hours should enter a wait till the end of their quiet hours.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> This object is not used or supported.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The current status of the journey. Possible values are: <ul><li>DRAFT - The journey is being developed and hasn't been published yet.</li> <li>ACTIVE - The journey has been developed and published. Depending on the journey's schedule, the journey may currently be running or scheduled to start running at a later time. If a journey's status is ACTIVE, you can't add, change, or remove activities from it.</li> <li>COMPLETED - The journey has been published and has finished running. All participants have entered the journey and no participants are waiting to complete the journey or any activities in the journey.</li> <li>CANCELLED - The journey has been stopped. If a journey's status is CANCELLED, you can't add, change, or remove activities or segment settings from the journey.</li> <li>CLOSED - The journey has been published and has started running. It may have also passed its scheduled end time, or passed its scheduled start time and a refresh frequency hasn't been specified for it. If a journey's status is CLOSED, you can't add participants to it, and no existing participants can enter the journey for the first time. However, any existing participants who are currently waiting to start an activity may continue the journey.</li></ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StartCondition</i> The segment that defines which users are participants in the journey.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StartCondition</b>: The segment that defines which users are participants in the journey.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StartActivity</i> The unique identifier for the first activity in the journey.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Schedule</i> The schedule settings for the journey.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Schedule</b>: The schedule settings for the journey.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RefreshFrequency</i> The frequency with which Amazon Pinpoint evaluates segment and event data for the journey, as a duration in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>QuietTime</i> The quiet time settings for the journey. Quiet time is a specific time range when a journey doesn't send messages to participants, if all the following conditions are met: <ul><li>The EndpointDemographic.Timezone property of the endpoint for the participant is set to a valid value.</li> <li>The current time in the participant's time zone is later than or equal to the time specified by the QuietTime.Start property for the journey.</li> <li>The current time in the participant's time zone is earlier than or equal to the time specified by the QuietTime.End property for the journey.</li></ul> If any of the preceding conditions isn't met, the participant will receive messages from the journey, even if quiet time is enabled.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>QuietTime</b>: The quiet time settings for the journey. Quiet time is a specific time range when a journey doesn't send messages to participants, if all the following conditions are met: <ul><li>The EndpointDemographic.Timezone property of the endpoint for the participant is set to a valid value.</li> <li>The current time in the participant's time zone is later than or equal to the time specified by the QuietTime.Start property for the journey.</li> <li>The current time in the participant's time zone is earlier than or equal to the time specified by the QuietTime.End property for the journey.</li></ul> If any of the preceding conditions isn't met, the participant will receive messages from the journey, even if quiet time is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the journey.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LocalTime</i> Specifies whether the journey's scheduled start and end times use each participant's local time. If this value is true, the schedule uses each participant's local time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Limits</i> The messaging and entry limits for the journey.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Limits</b>: The messaging and entry limits for the journey.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> The date, in ISO 8601 format, when the journey was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The unique identifier for the journey.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date, in ISO 8601 format, when the journey was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationId</i> The unique identifier for the application that the journey applies to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Activities</i> A map that contains a set of Activity objects, one object for each activity in the journey. For each Activity object, the key is the unique identifier (string) for an activity and the value is the settings for the activity.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointReentryInterval</i> Minimum time that must pass before an endpoint can re-enter a given journey. The duration should use an ISO 8601 format, such as PT1H. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MessagesPerSecond</i> The maximum number of messages that the journey can send each second.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointReentryCap</i> The maximum number of times that a participant can enter the journey. The maximum value is 100. To allow participants to enter the journey an unlimited number of times, set this value to 0.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DailyCap</i> The maximum number of messages that the journey can send to a single participant during a 24-hour period. The maximum value is 100.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Start</i> The specific time when quiet time begins. This value has to use 24-hour notation and be in HH:MM format, where HH is the hour (with a leading zero, if applicable) and MM is the minutes. For example, use 02:30 to represent 2:30 AM, or 14:30 to represent 2:30 PM.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>End</i> The specific time when quiet time ends. This value has to use 24-hour notation and be in HH:MM format, where HH is the hour (with a leading zero, if applicable) and MM is the minutes. For example, use 02:30 to represent 2:30 AM, or 14:30 to represent 2:30 PM.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Timezone</i> The starting UTC offset for the journey schedule, if the value of the journey's LocalTime property is true. Valid values are: UTC,
                  UTC+01, UTC+02, UTC+03, UTC+03:30, UTC+04, UTC+04:30, UTC+05, UTC+05:30,
                  UTC+05:45, UTC+06, UTC+06:30, UTC+07, UTC+08, UTC+08:45, UTC+09, UTC+09:30,
                  UTC+10, UTC+10:30, UTC+11, UTC+12, UTC+12:45, UTC+13, UTC+13:45, UTC-02,
                  UTC-02:30, UTC-03, UTC-03:30, UTC-04, UTC-05, UTC-06, UTC-07, UTC-08, UTC-09,
                  UTC-09:30, UTC-10, and UTC-11.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StartTime</i> The scheduled time, in ISO 8601 format, when the journey began or will begin.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EndTime</i> The scheduled time, in ISO 8601 format, when the journey ended or will end.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The custom description of the condition.<br/>Specifies the settings for an event that causes a journey activity to start.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EventStartCondition</b>: Specifies the settings for an event that causes a journey activity to start.        """
        pass

    def delete_push_template(self, TemplateName: str, Version: str=None) -> DeletePushTemplateResponse:
        r"""Deletes a message template for messages that were sent through a push notification channel.

        :param self:
        :param Version:  The unique identifier for the version of the message template to update, retrieve information about, or delete. To retrieve identifiers and other information for all the versions of a template, use the <link  linkend="templates-template-name-template-type-versions">Template Versions</link> resource. If specified, this value must match the identifier for an existing template version. If specified for an update operation, this value must match the identifier for the latest existing version of the template. This restriction helps ensure that race conditions don't occur. If you don't specify a value for this parameter, Amazon Pinpoint does the following: <ul><li>For a get operation, retrieves information about the active version of the template.</li> <li>For an update operation, saves the updates to (overwrites) the latest existing version of the template, if the create-new-version parameter isn't used or is set to false.</li> <li>For a delete operation, deletes the template, including all versions of the template.</li></ul><br/>TemplateName:  The name of the message template. A template name must start with an alphanumeric character and can contain a maximum of 128 characters. The characters can be alphanumeric characters, underscores (_), or hyphens (-). Template names are case sensitive.<br/>
        :return: MessageBody:  Provides information about an API request or response.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequestID</i> The unique identifier for the request or response.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> The message that's returned from the API.<br/>        """
        pass

    def delete_recommender_configuration(self, RecommenderId: str) -> DeleteRecommenderConfigurationResponse:
        r"""Deletes an Amazon Pinpoint configuration for a recommender model.

        :param self:
        :param RecommenderId:  The unique identifier for the recommender model configuration. This identifier is displayed as the <b>Recommender ID</b> on the Amazon Pinpoint console.<br/>
        :return: RecommenderConfigurationResponse:  Provides information about Amazon Pinpoint configuration settings for retrieving and processing data from a recommender model.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecommendationsPerMessage</i> The number of recommended items that are retrieved from the model for each endpoint or user, depending on the value for the RecommendationProviderIdType property. This number determines how many recommended items are available for use in message variables.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecommendationsDisplayName</i> The custom display name for the standard endpoint or user attribute (RecommendationItems) that temporarily stores recommended items for each endpoint or user, depending on the value for the RecommendationProviderIdType property. This name appears in the <b>Attribute finder</b> of the template editor on the Amazon Pinpoint console. This value is null if the configuration doesn't invoke an AWS Lambda function (RecommendationTransformerUri) to perform additional processing of recommendation data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecommendationTransformerUri</i> The name or Amazon Resource Name (ARN) of the AWS Lambda function that Amazon Pinpoint invokes to perform additional processing of recommendation data that it retrieves from the recommender model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecommendationProviderUri</i> The Amazon Resource Name (ARN) of the recommender model that Amazon Pinpoint retrieves the recommendation data from. This value is the ARN of an Amazon Personalize campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecommendationProviderRoleArn</i> The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that authorizes Amazon Pinpoint to retrieve recommendation data from the recommender model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecommendationProviderIdType</i> The type of Amazon Pinpoint ID that's associated with unique user IDs in the recommender model. This value enables the model to use attribute and event data that’s specific to a particular endpoint or user in an Amazon Pinpoint application. Possible values are: <ul><li>PINPOINT_ENDPOINT_ID - Each user in the model is associated with a particular endpoint in Amazon Pinpoint. The data is correlated based on endpoint IDs in Amazon Pinpoint. This is the default value.</li> <li>PINPOINT_USER_ID - Each user in the model is associated with a particular user and endpoint in Amazon Pinpoint. The data is correlated based on user IDs in Amazon Pinpoint. If this value is specified, an endpoint definition in Amazon Pinpoint has to specify both a user ID (UserId) and an endpoint ID. Otherwise, messages won’t be sent to the user's endpoint.</li></ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The custom name of the configuration for the recommender model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> The date, in extended ISO 8601 format, when the configuration for the recommender model was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The unique identifier for the recommender model configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The custom description of the configuration for the recommender model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date, in extended ISO 8601 format, when the configuration was created for the recommender model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Attributes</i> A map that defines 1-10 custom endpoint or user attributes, depending on the value for the RecommendationProviderIdType property. Each of these attributes temporarily stores a recommended item that's retrieved from the recommender model and sent to an AWS Lambda function for additional processing. Each attribute can be used as a message variable in a message template. This value is null if the configuration doesn't invoke an AWS Lambda function (RecommendationTransformerUri) to perform additional processing of recommendation data.<br/>        """
        pass

    def delete_segment(self, SegmentId: str, ApplicationId: str) -> DeleteSegmentResponse:
        r"""Deletes a segment from an application.

        :param self:
        :param SegmentId:  The unique identifier for the segment.<br/>ApplicationId:  The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>
        :return: SegmentResponse:  Provides information about the configuration, dimension, and other settings for a segment.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The version number of the segment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> A string-to-string map of key-value pairs that identifies the tags that are associated with the segment. Each tag consists of a required tag key and an associated tag value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentType</i> The segment type. Valid values are: <ul><li>DIMENSIONAL - A dynamic segment, which is a segment that uses selection criteria that you specify and is based on endpoint data that's reported by your app. Dynamic segments can change over time.</li> <li>IMPORT - A static segment, which is a segment that uses selection criteria that you specify and is based on endpoint definitions that you import from a file. Imported segments are static; they don't change over time.</li></ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentGroups</i> A list of one or more segment groups that apply to the segment. Each segment group consists of zero or more base segments and the dimensions that are applied to those base segments.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SegmentGroups</b>: A list of one or more segment groups that apply to the segment. Each segment group consists of zero or more base segments and the dimensions that are applied to those base segments.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the segment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> The date and time when the segment was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImportDefinition</i> The settings for the import job that's associated with the segment.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ImportDefinition</b>: The settings for the import job that's associated with the segment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The unique identifier for the segment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Dimensions</i> The dimension settings for the segment.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Dimensions</b>: The dimension settings for the segment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date and time when the segment was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the segment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationId</i> The unique identifier for the application that the segment is associated with.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Attributes</i> One or more custom attributes to use as criteria for the segment.<br/>The behavior-based criteria, such as how recently users have used your app, for the segment.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Behavior</b>: The behavior-based criteria, such as how recently users have used your app, for the segment.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Size</i> The number of endpoint definitions that were imported successfully to create the segment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Url</i> The URL of the Amazon Simple Storage Service (Amazon S3) bucket that the endpoint definitions were imported from to create the segment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that authorized Amazon Pinpoint to access the Amazon S3 location to import endpoint definitions from.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Format</i> The format of the files that were imported to create the segment. Valid values are: CSV, for comma-separated values format; and, JSON, for newline-delimited JSON format.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ExternalId</i> (Deprecated) Your AWS account ID, which you assigned to an external ID key in an IAM trust policy. Amazon Pinpoint previously used this value to assume an IAM role when importing endpoint definitions, but we removed this requirement. We don't recommend use of external IDs for IAM roles that are assumed by Amazon Pinpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ChannelCounts</i> The number of channel types in the endpoint definitions that were imported to create the segment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Include</i> Specifies how to handle multiple segment groups for the segment. For example, if the segment includes three segment groups, whether the resulting segment includes endpoints that match all, any, or none of the segment groups.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Groups</i> An array that defines the set of segment criteria to evaluate when handling segment groups for the segment.<br/>        """
        pass

    def delete_sms_channel(self, ApplicationId: str) -> DeleteSmsChannelResponse:
        r"""Disables the SMS channel for an application and deletes any existing settings for the channel.

        :param self:
        :param ApplicationId:  The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>
        :return: SMSChannelResponse:  Provides information about the status and settings of the SMS channel for an application.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The current version of the SMS channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransactionalMessagesPerSecond</i> The maximum number of transactional messages that you can send through the SMS channel each second.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ShortCode</i> The registered short code to use when you send messages through the SMS channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SenderId</i> The identity that displays on recipients' devices when they receive messages from the SMS channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PromotionalMessagesPerSecond</i> The maximum number of promotional messages that you can send through the SMS channel each second.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Platform</i> The type of messaging or notification platform for the channel. For the SMS channel, this value is SMS.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> The date and time, in ISO 8601 format, when the SMS channel was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedBy</i> The user who last modified the SMS channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsArchived</i> Specifies whether the SMS channel is archived.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> (Deprecated) An identifier for the SMS channel. This property is retained only for backward compatibility.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HasCredential</i> (Not used) This property is retained only for backward compatibility.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specifies whether the SMS channel is enabled for the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date and time, in ISO 8601 format, when the SMS channel was enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationId</i> The unique identifier for the application that the SMS channel applies to.<br/>        """
        pass

    def delete_sms_template(self, TemplateName: str, Version: str=None) -> DeleteSmsTemplateResponse:
        r"""Deletes a message template for messages that were sent through the SMS channel.

        :param self:
        :param Version:  The unique identifier for the version of the message template to update, retrieve information about, or delete. To retrieve identifiers and other information for all the versions of a template, use the <link  linkend="templates-template-name-template-type-versions">Template Versions</link> resource. If specified, this value must match the identifier for an existing template version. If specified for an update operation, this value must match the identifier for the latest existing version of the template. This restriction helps ensure that race conditions don't occur. If you don't specify a value for this parameter, Amazon Pinpoint does the following: <ul><li>For a get operation, retrieves information about the active version of the template.</li> <li>For an update operation, saves the updates to (overwrites) the latest existing version of the template, if the create-new-version parameter isn't used or is set to false.</li> <li>For a delete operation, deletes the template, including all versions of the template.</li></ul><br/>TemplateName:  The name of the message template. A template name must start with an alphanumeric character and can contain a maximum of 128 characters. The characters can be alphanumeric characters, underscores (_), or hyphens (-). Template names are case sensitive.<br/>
        :return: MessageBody:  Provides information about an API request or response.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequestID</i> The unique identifier for the request or response.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> The message that's returned from the API.<br/>        """
        pass

    def delete_user_endpoints(self, UserId: str, ApplicationId: str) -> DeleteUserEndpointsResponse:
        r"""Deletes all the endpoints that are associated with a specific user ID.

        :param self:
        :param UserId:  The unique identifier for the user.<br/>ApplicationId:  The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>
        :return: EndpointsResponse:  Provides information about all the endpoints that are associated with a user ID.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Item</i> An array of responses, one for each endpoint that's associated with the user ID.<br/>        """
        pass

    def delete_voice_channel(self, ApplicationId: str) -> DeleteVoiceChannelResponse:
        r"""Disables the voice channel for an application and deletes any existing settings for the channel.

        :param self:
        :param ApplicationId:  The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>
        :return: VoiceChannelResponse:  Provides information about the status and settings of the voice channel for an application.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The current version of the voice channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Platform</i> The type of messaging or notification platform for the channel. For the voice channel, this value is VOICE.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> The date and time, in ISO 8601 format, when the voice channel was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedBy</i> The user who last modified the voice channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsArchived</i> Specifies whether the voice channel is archived.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> (Deprecated) An identifier for the voice channel. This property is retained only for backward compatibility.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HasCredential</i> (Not used) This property is retained only for backward compatibility.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specifies whether the voice channel is enabled for the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date and time, in ISO 8601 format, when the voice channel was enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationId</i> The unique identifier for the application that the voice channel applies to.<br/>        """
        pass

    def delete_voice_template(self, TemplateName: str, Version: str=None) -> DeleteVoiceTemplateResponse:
        r"""Deletes a message template for messages that were sent through the voice channel.

        :param self:
        :param Version:  The unique identifier for the version of the message template to update, retrieve information about, or delete. To retrieve identifiers and other information for all the versions of a template, use the <link  linkend="templates-template-name-template-type-versions">Template Versions</link> resource. If specified, this value must match the identifier for an existing template version. If specified for an update operation, this value must match the identifier for the latest existing version of the template. This restriction helps ensure that race conditions don't occur. If you don't specify a value for this parameter, Amazon Pinpoint does the following: <ul><li>For a get operation, retrieves information about the active version of the template.</li> <li>For an update operation, saves the updates to (overwrites) the latest existing version of the template, if the create-new-version parameter isn't used or is set to false.</li> <li>For a delete operation, deletes the template, including all versions of the template.</li></ul><br/>TemplateName:  The name of the message template. A template name must start with an alphanumeric character and can contain a maximum of 128 characters. The characters can be alphanumeric characters, underscores (_), or hyphens (-). Template names are case sensitive.<br/>
        :return: MessageBody:  Provides information about an API request or response.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequestID</i> The unique identifier for the request or response.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> The message that's returned from the API.<br/>        """
        pass

    def get_adm_channel(self, ApplicationId: str) -> GetAdmChannelResponse:
        r"""Retrieves information about the status and settings of the ADM channel for an application.

        :param self:
        :param ApplicationId:  The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>
        :return: ADMChannelResponse:  Provides information about the status and settings of the ADM (Amazon Device Messaging) channel for an application.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The current version of the ADM channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Platform</i> The type of messaging or notification platform for the channel. For the ADM channel, this value is ADM.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> The date and time when the ADM channel was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedBy</i> The user who last modified the ADM channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsArchived</i> Specifies whether the ADM channel is archived.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> (Deprecated) An identifier for the ADM channel. This property is retained only for backward compatibility.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HasCredential</i> (Not used) This property is retained only for backward compatibility.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specifies whether the ADM channel is enabled for the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date and time when the ADM channel was enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationId</i> The unique identifier for the application that the ADM channel applies to.<br/>        """
        pass

    def get_apns_channel(self, ApplicationId: str) -> GetApnsChannelResponse:
        r"""Retrieves information about the status and settings of the APNs channel for an application.

        :param self:
        :param ApplicationId:  The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>
        :return: APNSChannelResponse:  Provides information about the status and settings of the APNs (Apple Push Notification service) channel for an application.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The current version of the APNs channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Platform</i>  The type of messaging or notification platform for the channel. For the APNs channel, this value is APNS.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> The date and time when the APNs channel was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedBy</i> The user who last modified the APNs channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsArchived</i> Specifies whether the APNs channel is archived.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> (Deprecated) An identifier for the APNs channel. This property is retained only for backward compatibility.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HasTokenKey</i> Specifies whether the APNs channel is configured to communicate with APNs by using APNs tokens. To provide an authentication key for APNs tokens, set the TokenKey property of the channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HasCredential</i> (Not used) This property is retained only for backward compatibility.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specifies whether the APNs channel is enabled for the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultAuthenticationMethod</i> The default authentication method that Amazon Pinpoint uses to authenticate with APNs for this channel, key or certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date and time when the APNs channel was enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationId</i> The unique identifier for the application that the APNs channel applies to.<br/>        """
        pass

    def get_apns_sandbox_channel(self, ApplicationId: str) -> GetApnsSandboxChannelResponse:
        r"""Retrieves information about the status and settings of the APNs sandbox channel for an application.

        :param self:
        :param ApplicationId:  The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>
        :return: APNSSandboxChannelResponse:  Provides information about the status and settings of the APNs (Apple Push Notification service) sandbox channel for an application.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The current version of the APNs sandbox channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Platform</i> The type of messaging or notification platform for the channel. For the APNs sandbox channel, this value is APNS_SANDBOX.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> The date and time when the APNs sandbox channel was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedBy</i> The user who last modified the APNs sandbox channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsArchived</i> Specifies whether the APNs sandbox channel is archived.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> (Deprecated) An identifier for the APNs sandbox channel. This property is retained only for backward compatibility.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HasTokenKey</i> Specifies whether the APNs sandbox channel is configured to communicate with APNs by using APNs tokens. To provide an authentication key for APNs tokens, set the TokenKey property of the channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HasCredential</i> (Not used) This property is retained only for backward compatibility.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specifies whether the APNs sandbox channel is enabled for the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultAuthenticationMethod</i> The default authentication method that Amazon Pinpoint uses to authenticate with the APNs sandbox environment for this channel, key or certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date and time when the APNs sandbox channel was enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationId</i> The unique identifier for the application that the APNs sandbox channel applies to.<br/>        """
        pass

    def get_apns_voip_channel(self, ApplicationId: str) -> GetApnsVoipChannelResponse:
        r"""Retrieves information about the status and settings of the APNs VoIP channel for an application.

        :param self:
        :param ApplicationId:  The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>
        :return: APNSVoipChannelResponse:  Provides information about the status and settings of the APNs (Apple Push Notification service) VoIP channel for an application.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The current version of the APNs VoIP channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Platform</i> The type of messaging or notification platform for the channel. For the APNs VoIP channel, this value is APNS_VOIP.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> The date and time when the APNs VoIP channel was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedBy</i> The user who last modified the APNs VoIP channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsArchived</i> Specifies whether the APNs VoIP channel is archived.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> (Deprecated) An identifier for the APNs VoIP channel. This property is retained only for backward compatibility.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HasTokenKey</i> Specifies whether the APNs VoIP channel is configured to communicate with APNs by using APNs tokens. To provide an authentication key for APNs tokens, set the TokenKey property of the channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HasCredential</i> (Not used) This property is retained only for backward compatibility.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specifies whether the APNs VoIP channel is enabled for the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultAuthenticationMethod</i> The default authentication method that Amazon Pinpoint uses to authenticate with APNs for this channel, key or certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date and time when the APNs VoIP channel was enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationId</i> The unique identifier for the application that the APNs VoIP channel applies to.<br/>        """
        pass

    def get_apns_voip_sandbox_channel(self, ApplicationId: str) -> GetApnsVoipSandboxChannelResponse:
        r"""Retrieves information about the status and settings of the APNs VoIP sandbox channel for an application.

        :param self:
        :param ApplicationId:  The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>
        :return: APNSVoipSandboxChannelResponse:  Provides information about the status and settings of the APNs (Apple Push Notification service) VoIP sandbox channel for an application.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The current version of the APNs VoIP sandbox channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Platform</i> The type of messaging or notification platform for the channel. For the APNs VoIP sandbox channel, this value is APNS_VOIP_SANDBOX.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> The date and time when the APNs VoIP sandbox channel was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedBy</i> The user who last modified the APNs VoIP sandbox channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsArchived</i> Specifies whether the APNs VoIP sandbox channel is archived.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> (Deprecated) An identifier for the APNs VoIP sandbox channel. This property is retained only for backward compatibility.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HasTokenKey</i> Specifies whether the APNs VoIP sandbox channel is configured to communicate with APNs by using APNs tokens. To provide an authentication key for APNs tokens, set the TokenKey property of the channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HasCredential</i> (Not used) This property is retained only for backward compatibility.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specifies whether the APNs VoIP sandbox channel is enabled for the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultAuthenticationMethod</i> The default authentication method that Amazon Pinpoint uses to authenticate with the APNs sandbox environment for this channel, key or certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date and time when the APNs VoIP sandbox channel was enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationId</i> The unique identifier for the application that the APNs VoIP sandbox channel applies to.<br/>        """
        pass

    def get_app(self, ApplicationId: str) -> GetAppResponse:
        r"""Retrieves information about an application.

        :param self:
        :param ApplicationId:  The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>
        :return: ApplicationResponse:  Provides information about an application.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> A string-to-string map of key-value pairs that identifies the tags that are associated with the application. Each tag consists of a required tag key and an associated tag value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The display name of the application. This name is displayed as the <b>Project name</b> on the Amazon Pinpoint console.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the application.<br/>        """
        pass

    def get_application_date_range_kpi(self, KpiName: str, ApplicationId: str, EndTime: __timestampIso8601=None, NextToken: str=None, PageSize: str=None, StartTime: __timestampIso8601=None) -> GetApplicationDateRangeKpiResponse:
        r"""Retrieves (queries) pre-aggregated data for a standard metric that applies to an application.

        :param self:
        :param StartTime:  The first date and time to retrieve data for, as part of an inclusive date range that filters the query results. This value should be in extended ISO 8601 format and use Coordinated Universal Time (UTC), for example: 2019-07-19T20:00:00Z for 8:00 PM UTC July 19, 2019. This value should also be fewer than 90 days from the current day.<br/>PageSize:  The maximum number of items to include in each page of a paginated response. This parameter is not supported for application, campaign, and journey metrics.<br/>NextToken:  The  string that specifies which page of results to return in a paginated response. This parameter is not supported for application, campaign, and journey metrics.<br/>KpiName:  The name of the metric, also referred to as a <i>key performance indicator (KPI)</i>, to retrieve data for. This value describes the associated metric and consists of two or more terms, which are comprised of lowercase alphanumeric characters, separated by a hyphen. Examples are email-open-rate and successful-delivery-rate. For a list of valid values, see the <a href="https://docs.aws.amazon.com/pinpoint/latest/developerguide/analytics-standard-metrics.html">Amazon Pinpoint Developer Guide</a>.<br/>EndTime:  The last date and time to retrieve data for, as part of an inclusive date range that filters the query results. This value should be in extended ISO 8601 format and use Coordinated Universal Time (UTC), for example: 2019-07-26T20:00:00Z for 8:00 PM UTC July 26, 2019.<br/>ApplicationId:  The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>
        :return: ApplicationDateRangeKpiResponse:  Provides the results of a query that retrieved the data for a standard metric that applies to an application, and provides information about that query.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StartTime</i> The first date and time of the date range that was used to filter the query results, in extended ISO 8601 format. The date range is inclusive.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NextToken</i> The string to use in a subsequent request to get the next page of results in a paginated response. This value is null for the Application Metrics resource because the resource returns all results in a single page.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KpiResult</i> An array of objects that contains the results of the query. Each object contains the value for the metric and metadata about that value.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>KpiResult</b>: An array of objects that contains the results of the query. Each object contains the value for the metric and metadata about that value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KpiName</i> The name of the metric, also referred to as a <i>key performance indicator (KPI)</i>, that the data was retrieved for. This value describes the associated metric and consists of two or more terms, which are comprised of lowercase alphanumeric characters, separated by a hyphen. For a list of possible values, see the <a href="https://docs.aws.amazon.com/pinpoint/latest/developerguide/analytics-standard-metrics.html">Amazon Pinpoint Developer Guide</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndTime</i> The last date and time of the date range that was used to filter the query results, in extended ISO 8601 format. The date range is inclusive.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationId</i> The unique identifier for the application that the metric applies to.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Rows</i> An array of objects that provides the results of a query that retrieved the data for a standard metric that applies to an application, campaign, or journey.<br/>        """
        pass

    def get_application_settings(self, ApplicationId: str) -> GetApplicationSettingsResponse:
        r"""Retrieves information about the settings for an application.

        :param self:
        :param ApplicationId:  The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>
        :return: ApplicationSettingsResource:  Provides information about an application, including the default settings for an application.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>QuietTime</i> The default quiet time for campaigns in the application. Quiet time is a specific time range when messages aren't sent to endpoints, if all the following conditions are met: <ul><li>The EndpointDemographic.Timezone property of the endpoint is set to a valid value.</li> <li>The current time in the endpoint's time zone is later than or equal to the time specified by the QuietTime.Start property for the application (or a campaign or journey that has custom quiet time settings).</li> <li>The current time in the endpoint's time zone is earlier than or equal to the time specified by the QuietTime.End property for the application (or a campaign or journey that has custom quiet time settings).</li></ul> If any of the preceding conditions isn't met, the endpoint will receive messages from a campaign or journey, even if quiet time is enabled.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>QuietTime</b>: The default quiet time for campaigns in the application. Quiet time is a specific time range when messages aren't sent to endpoints, if all the following conditions are met: <ul><li>The EndpointDemographic.Timezone property of the endpoint is set to a valid value.</li> <li>The current time in the endpoint's time zone is later than or equal to the time specified by the QuietTime.Start property for the application (or a campaign or journey that has custom quiet time settings).</li> <li>The current time in the endpoint's time zone is earlier than or equal to the time specified by the QuietTime.End property for the application (or a campaign or journey that has custom quiet time settings).</li></ul> If any of the preceding conditions isn't met, the endpoint will receive messages from a campaign or journey, even if quiet time is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Limits</i> The default sending limits for campaigns in the application.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Limits</b>: The default sending limits for campaigns in the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> The date and time, in ISO 8601 format, when the application's settings were last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CampaignHook</i> The settings for the AWS Lambda function to invoke by default as a code hook for campaigns in the application. You can use this hook to customize segments that are used by campaigns in the application.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CampaignHook</b>: The settings for the AWS Lambda function to invoke by default as a code hook for campaigns in the application. You can use this hook to customize segments that are used by campaigns in the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationId</i> The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>WebUrl</i>  The web URL that Amazon Pinpoint calls to invoke the AWS Lambda function over HTTPS.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Mode</i> The mode that Amazon Pinpoint uses to invoke the AWS Lambda function. Possible values are: <ul><li>FILTER - Invoke the function to customize the segment that's used by a campaign.</li> <li>DELIVERY - (Deprecated) Previously, invoked the function to send a campaign through a custom channel. This functionality is not supported anymore. To send a campaign through a custom channel, use the CustomDeliveryConfiguration and CampaignCustomMessage objects of the campaign.</li></ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LambdaFunctionName</i> The name or Amazon Resource Name (ARN) of the AWS Lambda function that Amazon Pinpoint invokes to customize a segment for a campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Total</i> The maximum number of messages that a campaign can send to a single endpoint during the course of the campaign. If a campaign recurs, this setting applies to all runs of the campaign. The maximum value is 100.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MessagesPerSecond</i> The maximum number of messages that a campaign can send each second. For an application, this value specifies the default limit for the number of messages that campaigns can send each second. The minimum value is 50. The maximum value is 20,000.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaximumDuration</i> The maximum amount of time, in seconds, that a campaign can attempt to deliver a message after the scheduled start time for the campaign. The minimum value is 60 seconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Daily</i> The maximum number of messages that a campaign can send to a single endpoint during a 24-hour period. For an application, this value specifies the default limit for the number of messages that campaigns and journeys can send to a single endpoint during a 24-hour period. The maximum value is 100.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Start</i> The specific time when quiet time begins. This value has to use 24-hour notation and be in HH:MM format, where HH is the hour (with a leading zero, if applicable) and MM is the minutes. For example, use 02:30 to represent 2:30 AM, or 14:30 to represent 2:30 PM.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>End</i> The specific time when quiet time ends. This value has to use 24-hour notation and be in HH:MM format, where HH is the hour (with a leading zero, if applicable) and MM is the minutes. For example, use 02:30 to represent 2:30 AM, or 14:30 to represent 2:30 PM.<br/>        """
        pass

    def get_apps(self, PageSize: str=None, Token: str=None) -> GetAppsResponse:
        r"""Retrieves information about all the applications that are associated with your Amazon Pinpoint account.

        :param self:
        :param Token:  The NextToken string that specifies which page of results to return in a paginated response.<br/>PageSize:  The maximum number of items to include in each page of a paginated response. This parameter is not supported for application, campaign, and journey metrics.<br/>
        :return: ApplicationsResponse:  Provides information about all of your applications.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NextToken</i> The string to use in a subsequent request to get the next page of results in a paginated response. This value is null if there are no additional pages.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Item</i> An array of responses, one for each application that was returned.<br/>        """
        pass

    def get_baidu_channel(self, ApplicationId: str) -> GetBaiduChannelResponse:
        r"""Retrieves information about the status and settings of the Baidu channel for an application.

        :param self:
        :param ApplicationId:  The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>
        :return: BaiduChannelResponse:  Provides information about the status and settings of the Baidu (Baidu Cloud Push) channel for an application.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The current version of the Baidu channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Platform</i> The type of messaging or notification platform for the channel. For the Baidu channel, this value is BAIDU.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> The date and time when the Baidu channel was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedBy</i> The user who last modified the Baidu channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsArchived</i> Specifies whether the Baidu channel is archived.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> (Deprecated) An identifier for the Baidu channel. This property is retained only for backward compatibility.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HasCredential</i> (Not used) This property is retained only for backward compatibility.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specifies whether the Baidu channel is enabled for the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Credential</i> The API key that you received from the Baidu Cloud Push service to communicate with the service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date and time when the Baidu channel was enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationId</i> The unique identifier for the application that the Baidu channel applies to.<br/>        """
        pass

    def get_campaign(self, CampaignId: str, ApplicationId: str) -> GetCampaignResponse:
        r"""Retrieves information about the status, configuration, and other settings for a campaign.

        :param self:
        :param CampaignId:  The unique identifier for the campaign.<br/>ApplicationId:  The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>
        :return: CampaignResponse:  Provides information about the status, configuration, and other settings for a campaign.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The version number of the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TreatmentName</i> The custom name of the default treatment for the campaign, if the campaign has multiple treatments. A <i>treatment</i> is a variation of a campaign that's used for A/B testing.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TreatmentDescription</i> The custom description of the default treatment for the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TemplateConfiguration</i> The message template that’s used for the campaign.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TemplateConfiguration</b>: The message template that’s used for the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> A string-to-string map of key-value pairs that identifies the tags that are associated with the campaign. Each tag consists of a required tag key and an associated tag value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The current status of the campaign.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>State</b>: The current status of the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentVersion</i> The version number of the segment that's associated with the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentId</i> The unique identifier for the segment that's associated with the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Schedule</i> The schedule settings for the campaign.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Schedule</b>: The schedule settings for the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MessageConfiguration</i> The message configuration settings for the campaign.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>MessageConfiguration</b>: The message configuration settings for the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Limits</i> The messaging limits for the campaign.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Limits</b>: The messaging limits for the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> The date, in ISO 8601 format, when the campaign was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsPaused</i> Specifies whether the campaign is paused. A paused campaign doesn't run unless you resume it by changing this value to false.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The unique identifier for the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Hook</i> The settings for the AWS Lambda function to use as a code hook for the campaign. You can use this hook to customize the segment that's used by the campaign.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Hook</b>: The settings for the AWS Lambda function to use as a code hook for the campaign. You can use this hook to customize the segment that's used by the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HoldoutPercent</i> The allocated percentage of users (segment members) who shouldn't receive messages from the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The custom description of the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultState</i> The current status of the campaign's default treatment. This value exists only for campaigns that have more than one treatment.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DefaultState</b>: The current status of the campaign's default treatment. This value exists only for campaigns that have more than one treatment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomDeliveryConfiguration</i> The delivery configuration settings for sending the campaign through a custom channel.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CustomDeliveryConfiguration</b>: The delivery configuration settings for sending the campaign through a custom channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date, in ISO 8601 format, when the campaign was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationId</i> The unique identifier for the application that the campaign applies to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdditionalTreatments</i> An array of responses, one for each treatment that you defined for the campaign, in addition to the default treatment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointTypes</i> The types of endpoints to send the campaign or treatment to. Each valid value maps to a type of channel that you can associate with an endpoint by using the ChannelType property of an endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DeliveryUri</i> The destination to send the campaign or treatment to. This value can be one of the following: <ul><li>The name or Amazon Resource Name (ARN) of an AWS Lambda function to invoke to handle delivery of the campaign or treatment.</li> <li>The URL for a web application or service that supports HTTPS and can receive the message. The URL has to be a full URL, including the HTTPS protocol.</li></ul> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CampaignStatus</i> The current status of the campaign, or the current status of a treatment that belongs to an A/B test campaign. If a campaign uses A/B testing, the campaign has a status of COMPLETED only if all campaign treatments have a status of COMPLETED. If you delete the segment that's associated with a campaign, the campaign fails and has a status of DELETED.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>WebUrl</i>  The web URL that Amazon Pinpoint calls to invoke the AWS Lambda function over HTTPS.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Mode</i> The mode that Amazon Pinpoint uses to invoke the AWS Lambda function. Possible values are: <ul><li>FILTER - Invoke the function to customize the segment that's used by a campaign.</li> <li>DELIVERY - (Deprecated) Previously, invoked the function to send a campaign through a custom channel. This functionality is not supported anymore. To send a campaign through a custom channel, use the CustomDeliveryConfiguration and CampaignCustomMessage objects of the campaign.</li></ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LambdaFunctionName</i> The name or Amazon Resource Name (ARN) of the AWS Lambda function that Amazon Pinpoint invokes to customize a segment for a campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Total</i> The maximum number of messages that a campaign can send to a single endpoint during the course of the campaign. If a campaign recurs, this setting applies to all runs of the campaign. The maximum value is 100.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MessagesPerSecond</i> The maximum number of messages that a campaign can send each second. For an application, this value specifies the default limit for the number of messages that campaigns can send each second. The minimum value is 50. The maximum value is 20,000.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaximumDuration</i> The maximum amount of time, in seconds, that a campaign can attempt to deliver a message after the scheduled start time for the campaign. The minimum value is 60 seconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Daily</i> The maximum number of messages that a campaign can send to a single endpoint during a 24-hour period. For an application, this value specifies the default limit for the number of messages that campaigns and journeys can send to a single endpoint during a 24-hour period. The maximum value is 100.<br/>The message that the campaign sends through the ADM (Amazon Device Messaging) channel. If specified, this message overrides the default message.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ADMMessage</b>: The message that the campaign sends through the ADM (Amazon Device Messaging) channel. If specified, this message overrides the default message.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EndTime</i> The scheduled time, in ISO 8601 format, when the campaign ended or will end.<br/>The type of event that causes the campaign to be sent, if the value of the Frequency property is EVENT.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EventFilter</b>: The type of event that causes the campaign to be sent, if the value of the Frequency property is EVENT.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CampaignStatus</i> The current status of the campaign, or the current status of a treatment that belongs to an A/B test campaign. If a campaign uses A/B testing, the campaign has a status of COMPLETED only if all campaign treatments have a status of COMPLETED. If you delete the segment that's associated with a campaign, the campaign fails and has a status of DELETED.<br/>The email template to use for the message.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EmailTemplate</b>: The email template to use for the message.        """
        pass

    def get_campaign_activities(self, CampaignId: str, ApplicationId: str, PageSize: str=None, Token: str=None) -> GetCampaignActivitiesResponse:
        r"""Retrieves information about all the activities for a campaign.

        :param self:
        :param Token:  The NextToken string that specifies which page of results to return in a paginated response.<br/>PageSize:  The maximum number of items to include in each page of a paginated response. This parameter is not supported for application, campaign, and journey metrics.<br/>CampaignId:  The unique identifier for the campaign.<br/>ApplicationId:  The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>
        :return: ActivitiesResponse:  Provides information about the activities that were performed by a campaign.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NextToken</i> The string to use in a subsequent request to get the next page of results in a paginated response. This value is null if there are no additional pages.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Item</i> An array of responses, one for each activity that was performed by the campaign.<br/>        """
        pass

    def get_campaign_date_range_kpi(self, KpiName: str, CampaignId: str, ApplicationId: str, EndTime: __timestampIso8601=None, NextToken: str=None, PageSize: str=None, StartTime: __timestampIso8601=None) -> GetCampaignDateRangeKpiResponse:
        r"""Retrieves (queries) pre-aggregated data for a standard metric that applies to a campaign.

        :param self:
        :param StartTime:  The first date and time to retrieve data for, as part of an inclusive date range that filters the query results. This value should be in extended ISO 8601 format and use Coordinated Universal Time (UTC), for example: 2019-07-19T20:00:00Z for 8:00 PM UTC July 19, 2019. This value should also be fewer than 90 days from the current day.<br/>PageSize:  The maximum number of items to include in each page of a paginated response. This parameter is not supported for application, campaign, and journey metrics.<br/>NextToken:  The  string that specifies which page of results to return in a paginated response. This parameter is not supported for application, campaign, and journey metrics.<br/>KpiName:  The name of the metric, also referred to as a <i>key performance indicator (KPI)</i>, to retrieve data for. This value describes the associated metric and consists of two or more terms, which are comprised of lowercase alphanumeric characters, separated by a hyphen. Examples are email-open-rate and successful-delivery-rate. For a list of valid values, see the <a href="https://docs.aws.amazon.com/pinpoint/latest/developerguide/analytics-standard-metrics.html">Amazon Pinpoint Developer Guide</a>.<br/>EndTime:  The last date and time to retrieve data for, as part of an inclusive date range that filters the query results. This value should be in extended ISO 8601 format and use Coordinated Universal Time (UTC), for example: 2019-07-26T20:00:00Z for 8:00 PM UTC July 26, 2019.<br/>CampaignId:  The unique identifier for the campaign.<br/>ApplicationId:  The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>
        :return: CampaignDateRangeKpiResponse:  Provides the results of a query that retrieved the data for a standard metric that applies to a campaign, and provides information about that query.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StartTime</i> The first date and time of the date range that was used to filter the query results, in extended ISO 8601 format. The date range is inclusive.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NextToken</i> The string to use in a subsequent request to get the next page of results in a paginated response. This value is null for the Campaign Metrics resource because the resource returns all results in a single page.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KpiResult</i> An array of objects that contains the results of the query. Each object contains the value for the metric and metadata about that value.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>KpiResult</b>: An array of objects that contains the results of the query. Each object contains the value for the metric and metadata about that value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KpiName</i> The name of the metric, also referred to as a <i>key performance indicator (KPI)</i>, that the data was retrieved for. This value describes the associated metric and consists of two or more terms, which are comprised of lowercase alphanumeric characters, separated by a hyphen. For a list of possible values, see the <a href="https://docs.aws.amazon.com/pinpoint/latest/developerguide/analytics-standard-metrics.html">Amazon Pinpoint Developer Guide</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndTime</i> The last date and time of the date range that was used to filter the query results, in extended ISO 8601 format. The date range is inclusive.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CampaignId</i> The unique identifier for the campaign that the metric applies to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationId</i> The unique identifier for the application that the metric applies to.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Rows</i> An array of objects that provides the results of a query that retrieved the data for a standard metric that applies to an application, campaign, or journey.<br/>        """
        pass

    def get_campaign_version(self, Version: str, CampaignId: str, ApplicationId: str) -> GetCampaignVersionResponse:
        r"""Retrieves information about the status, configuration, and other settings for a specific version of a campaign.

        :param self:
        :param Version:  The unique version number (Version property) for the campaign version.<br/>CampaignId:  The unique identifier for the campaign.<br/>ApplicationId:  The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>
        :return: CampaignResponse:  Provides information about the status, configuration, and other settings for a campaign.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The version number of the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TreatmentName</i> The custom name of the default treatment for the campaign, if the campaign has multiple treatments. A <i>treatment</i> is a variation of a campaign that's used for A/B testing.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TreatmentDescription</i> The custom description of the default treatment for the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TemplateConfiguration</i> The message template that’s used for the campaign.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TemplateConfiguration</b>: The message template that’s used for the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> A string-to-string map of key-value pairs that identifies the tags that are associated with the campaign. Each tag consists of a required tag key and an associated tag value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The current status of the campaign.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>State</b>: The current status of the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentVersion</i> The version number of the segment that's associated with the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentId</i> The unique identifier for the segment that's associated with the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Schedule</i> The schedule settings for the campaign.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Schedule</b>: The schedule settings for the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MessageConfiguration</i> The message configuration settings for the campaign.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>MessageConfiguration</b>: The message configuration settings for the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Limits</i> The messaging limits for the campaign.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Limits</b>: The messaging limits for the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> The date, in ISO 8601 format, when the campaign was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsPaused</i> Specifies whether the campaign is paused. A paused campaign doesn't run unless you resume it by changing this value to false.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The unique identifier for the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Hook</i> The settings for the AWS Lambda function to use as a code hook for the campaign. You can use this hook to customize the segment that's used by the campaign.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Hook</b>: The settings for the AWS Lambda function to use as a code hook for the campaign. You can use this hook to customize the segment that's used by the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HoldoutPercent</i> The allocated percentage of users (segment members) who shouldn't receive messages from the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The custom description of the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultState</i> The current status of the campaign's default treatment. This value exists only for campaigns that have more than one treatment.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DefaultState</b>: The current status of the campaign's default treatment. This value exists only for campaigns that have more than one treatment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomDeliveryConfiguration</i> The delivery configuration settings for sending the campaign through a custom channel.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CustomDeliveryConfiguration</b>: The delivery configuration settings for sending the campaign through a custom channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date, in ISO 8601 format, when the campaign was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationId</i> The unique identifier for the application that the campaign applies to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdditionalTreatments</i> An array of responses, one for each treatment that you defined for the campaign, in addition to the default treatment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointTypes</i> The types of endpoints to send the campaign or treatment to. Each valid value maps to a type of channel that you can associate with an endpoint by using the ChannelType property of an endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DeliveryUri</i> The destination to send the campaign or treatment to. This value can be one of the following: <ul><li>The name or Amazon Resource Name (ARN) of an AWS Lambda function to invoke to handle delivery of the campaign or treatment.</li> <li>The URL for a web application or service that supports HTTPS and can receive the message. The URL has to be a full URL, including the HTTPS protocol.</li></ul> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CampaignStatus</i> The current status of the campaign, or the current status of a treatment that belongs to an A/B test campaign. If a campaign uses A/B testing, the campaign has a status of COMPLETED only if all campaign treatments have a status of COMPLETED. If you delete the segment that's associated with a campaign, the campaign fails and has a status of DELETED.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>WebUrl</i>  The web URL that Amazon Pinpoint calls to invoke the AWS Lambda function over HTTPS.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Mode</i> The mode that Amazon Pinpoint uses to invoke the AWS Lambda function. Possible values are: <ul><li>FILTER - Invoke the function to customize the segment that's used by a campaign.</li> <li>DELIVERY - (Deprecated) Previously, invoked the function to send a campaign through a custom channel. This functionality is not supported anymore. To send a campaign through a custom channel, use the CustomDeliveryConfiguration and CampaignCustomMessage objects of the campaign.</li></ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LambdaFunctionName</i> The name or Amazon Resource Name (ARN) of the AWS Lambda function that Amazon Pinpoint invokes to customize a segment for a campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Total</i> The maximum number of messages that a campaign can send to a single endpoint during the course of the campaign. If a campaign recurs, this setting applies to all runs of the campaign. The maximum value is 100.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MessagesPerSecond</i> The maximum number of messages that a campaign can send each second. For an application, this value specifies the default limit for the number of messages that campaigns can send each second. The minimum value is 50. The maximum value is 20,000.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaximumDuration</i> The maximum amount of time, in seconds, that a campaign can attempt to deliver a message after the scheduled start time for the campaign. The minimum value is 60 seconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Daily</i> The maximum number of messages that a campaign can send to a single endpoint during a 24-hour period. For an application, this value specifies the default limit for the number of messages that campaigns and journeys can send to a single endpoint during a 24-hour period. The maximum value is 100.<br/>The message that the campaign sends through the ADM (Amazon Device Messaging) channel. If specified, this message overrides the default message.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ADMMessage</b>: The message that the campaign sends through the ADM (Amazon Device Messaging) channel. If specified, this message overrides the default message.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EndTime</i> The scheduled time, in ISO 8601 format, when the campaign ended or will end.<br/>The type of event that causes the campaign to be sent, if the value of the Frequency property is EVENT.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EventFilter</b>: The type of event that causes the campaign to be sent, if the value of the Frequency property is EVENT.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CampaignStatus</i> The current status of the campaign, or the current status of a treatment that belongs to an A/B test campaign. If a campaign uses A/B testing, the campaign has a status of COMPLETED only if all campaign treatments have a status of COMPLETED. If you delete the segment that's associated with a campaign, the campaign fails and has a status of DELETED.<br/>The email template to use for the message.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EmailTemplate</b>: The email template to use for the message.        """
        pass

    def get_campaign_versions(self, CampaignId: str, ApplicationId: str, PageSize: str=None, Token: str=None) -> GetCampaignVersionsResponse:
        r"""Retrieves information about the status, configuration, and other settings for all versions of a campaign.

        :param self:
        :param Token:  The NextToken string that specifies which page of results to return in a paginated response.<br/>PageSize:  The maximum number of items to include in each page of a paginated response. This parameter is not supported for application, campaign, and journey metrics.<br/>CampaignId:  The unique identifier for the campaign.<br/>ApplicationId:  The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>
        :return: CampaignsResponse:  Provides information about the configuration and other settings for all the campaigns that are associated with an application.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NextToken</i> The string to use in a subsequent request to get the next page of results in a paginated response. This value is null if there are no additional pages.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Item</i> An array of responses, one for each campaign that's associated with the application.<br/>        """
        pass

    def get_campaigns(self, ApplicationId: str, PageSize: str=None, Token: str=None) -> GetCampaignsResponse:
        r"""Retrieves information about the status, configuration, and other settings for all the campaigns that are associated with an application.

        :param self:
        :param Token:  The NextToken string that specifies which page of results to return in a paginated response.<br/>PageSize:  The maximum number of items to include in each page of a paginated response. This parameter is not supported for application, campaign, and journey metrics.<br/>ApplicationId:  The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>
        :return: CampaignsResponse:  Provides information about the configuration and other settings for all the campaigns that are associated with an application.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NextToken</i> The string to use in a subsequent request to get the next page of results in a paginated response. This value is null if there are no additional pages.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Item</i> An array of responses, one for each campaign that's associated with the application.<br/>        """
        pass

    def get_channels(self, ApplicationId: str) -> GetChannelsResponse:
        r"""Retrieves information about the history and status of each channel for an application.

        :param self:
        :param ApplicationId:  The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>
        :return: ChannelsResponse:  Provides information about the general settings and status of all channels for an application, including channels that aren't enabled for the application.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Channels</i> A map that contains a multipart response for each channel. For each item in this object, the ChannelType is the key and the Channel is the value.<br/>        """
        pass

    def get_email_channel(self, ApplicationId: str) -> GetEmailChannelResponse:
        r"""Retrieves information about the status and settings of the email channel for an application.

        :param self:
        :param ApplicationId:  The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>
        :return: EmailChannelResponse:  Provides information about the status and settings of the email channel for an application.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The current version of the email channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i>  The ARN of the AWS Identity and Access Management (IAM) role that Amazon Pinpoint uses to submit email-related event data for the channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Platform</i> The type of messaging or notification platform for the channel. For the email channel, this value is EMAIL.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MessagesPerSecond</i> The maximum number of emails that can be sent through the channel each second.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> The date and time, in ISO 8601 format, when the email channel was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedBy</i> The user who last modified the email channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsArchived</i> Specifies whether the email channel is archived.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Identity</i>  The Amazon Resource Name (ARN) of the identity, verified with Amazon Simple Email Service (Amazon SES), that's used when you send email through the channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> (Deprecated) An identifier for the email channel. This property is retained only for backward compatibility.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HasCredential</i> (Not used) This property is retained only for backward compatibility.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FromAddress</i> The verified email address that email is sent from when you send email through the channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specifies whether the email channel is enabled for the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date and time, in ISO 8601 format, when the email channel was enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConfigurationSet</i> The <a href="https://docs.aws.amazon.com/ses/latest/APIReference/API_ConfigurationSet.html">Amazon SES configuration set</a> that's applied to messages that are sent through the channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationId</i> The unique identifier for the application that the email channel applies to.<br/>        """
        pass

    def get_email_template(self, TemplateName: str, Version: str=None) -> GetEmailTemplateResponse:
        r"""Retrieves the content and settings of a message template for messages that are sent through the email channel.

        :param self:
        :param Version:  The unique identifier for the version of the message template to update, retrieve information about, or delete. To retrieve identifiers and other information for all the versions of a template, use the <link  linkend="templates-template-name-template-type-versions">Template Versions</link> resource. If specified, this value must match the identifier for an existing template version. If specified for an update operation, this value must match the identifier for the latest existing version of the template. This restriction helps ensure that race conditions don't occur. If you don't specify a value for this parameter, Amazon Pinpoint does the following: <ul><li>For a get operation, retrieves information about the active version of the template.</li> <li>For an update operation, saves the updates to (overwrites) the latest existing version of the template, if the create-new-version parameter isn't used or is set to false.</li> <li>For a delete operation, deletes the template, including all versions of the template.</li></ul><br/>TemplateName:  The name of the message template. A template name must start with an alphanumeric character and can contain a maximum of 128 characters. The characters can be alphanumeric characters, underscores (_), or hyphens (-). Template names are case sensitive.<br/>
        :return: EmailTemplateResponse:  Provides information about the content and settings for a message template that can be used in messages that are sent through the email channel.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The unique identifier, as an integer, for the active version of the message template, or the version of the template that you specified by using the version parameter in your request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TextPart</i> The message body, in plain text format, that's used in email messages that are based on the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TemplateType</i> The type of channel that the message template is designed for. For an email template, this value is EMAIL.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TemplateName</i> The name of the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TemplateDescription</i> The custom description of the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> A string-to-string map of key-value pairs that identifies the tags that are associated with the message template. Each tag consists of a required tag key and an associated tag value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Subject</i> The subject line, or title, that's used in email messages that are based on the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecommenderId</i> The unique identifier for the recommender model that's used by the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> The date, in ISO 8601 format, when the message template was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HtmlPart</i> The message body, in HTML format, that's used in email messages that are based on the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultSubstitutions</i> The JSON object that specifies the default values that are used for message variables in the message template. This object is a set of key-value pairs. Each key defines a message variable in the template. The corresponding value defines the default value for that variable.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date, in ISO 8601 format, when the message template was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the message template.<br/>        """
        pass

    def get_endpoint(self, EndpointId: str, ApplicationId: str) -> GetEndpointResponse:
        r"""Retrieves information about the settings and attributes of a specific endpoint for an application.

        :param self:
        :param EndpointId:  The unique identifier for the endpoint.<br/>ApplicationId:  The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>
        :return: EndpointResponse:  Provides information about the channel type and other settings for an endpoint.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>User</i> One or more custom user attributes that your app reports to Amazon Pinpoint for the user who's associated with the endpoint.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>User</b>: One or more custom user attributes that your app reports to Amazon Pinpoint for the user who's associated with the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequestId</i> The unique identifier for the most recent request to update the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OptOut</i> Specifies whether the user who's associated with the endpoint has opted out of receiving messages and push notifications from you. Possible values are: ALL, the user has opted out and doesn't want to receive any messages or push notifications; and, NONE, the user hasn't opted out and wants to receive all messages and push notifications.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Metrics</i> One or more custom metrics that your app reports to Amazon Pinpoint for the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Location</i> The geographic information for the endpoint.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Location</b>: The geographic information for the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The unique identifier that you assigned to the endpoint. The identifier should be a globally unique identifier (GUID) to ensure that it doesn't conflict with other endpoint identifiers that are associated with the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointStatus</i> Specifies whether messages or push notifications are sent to the endpoint. Possible values are: ACTIVE, messages are sent to the endpoint; and, INACTIVE, messages aren’t sent to the endpoint. Amazon Pinpoint automatically sets this value to ACTIVE when you create an endpoint or update an existing endpoint. Amazon Pinpoint automatically sets this value to INACTIVE if you update another endpoint that has the same address specified by the Address property.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EffectiveDate</i> The date and time, in ISO 8601 format, when the endpoint was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Demographic</i> The demographic information for the endpoint, such as the time zone and platform.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Demographic</b>: The demographic information for the endpoint, such as the time zone and platform.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date and time, in ISO 8601 format, when the endpoint was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CohortId</i> A number from 0-99 that represents the cohort that the endpoint is assigned to. Endpoints are grouped into cohorts randomly, and each cohort contains approximately 1 percent of the endpoints for an application. Amazon Pinpoint assigns cohorts to the holdout or treatment allocations for campaigns.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ChannelType</i> The channel that's used when sending messages or push notifications to the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Attributes</i> One or more custom attributes that describe the endpoint by associating a name with an array of values. For example, the value of a custom attribute named Interests might be: ["Science", "Music", "Travel"]. You can use these attributes as filter criteria when you create segments.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationId</i> The unique identifier for the application that's associated with the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Address</i> The destination address for messages or push notifications that you send to the endpoint. The address varies by channel. For example, the address for a push-notification channel is typically the token provided by a push notification service, such as an Apple Push Notification service (APNs) device token or a Firebase Cloud Messaging (FCM) registration token. The address for the SMS channel is a phone number in E.164 format, such as +12065550100. The address for the email channel is an email address.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Timezone</i> The time zone of the endpoint, specified as a tz database name value, such as America/Los_Angeles.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PlatformVersion</i> The platform version of the endpoint device.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Platform</i> The platform of the endpoint device, such as ios.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ModelVersion</i> The model version of the endpoint device.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Model</i> The model name or number of the endpoint device, such as iPhone or SM-G900F.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Make</i> The manufacturer of the endpoint device, such as apple or samsung.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Locale</i> The locale of the endpoint, in the following format: the ISO 639-1 alpha-2 code, followed by an underscore (_), followed by an ISO 3166-1 alpha-2 value.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AppVersion</i> The version of the app that's associated with the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Region</i> The name of the region where the endpoint is located. For locations in the United States, this value is the name of a state.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PostalCode</i> The postal or ZIP code for the area where the endpoint is located.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Longitude</i> The longitude coordinate of the endpoint location, rounded to one decimal place.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Latitude</i> The latitude coordinate of the endpoint location, rounded to one decimal place.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Country</i> The two-character code, in ISO 3166-1 alpha-2 format, for the country or region where the endpoint is located. For example, US for the United States.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>City</i> The name of the city where the endpoint is located.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UserId</i> The unique identifier for the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UserAttributes</i> One or more custom attributes that describe the user by associating a name with an array of values. For example, the value of an attribute named Interests might be: ["Science", "Music", "Travel"]. You can use these attributes as filter criteria when you create segments. Attribute names are case sensitive. An attribute name can contain up to 50 characters. An attribute value can contain up to 100 characters. When you define the name of a custom attribute, avoid using the following characters: number sign (#), colon (:), question mark (?), backslash (\), and slash (/). The Amazon Pinpoint console can't display attribute names that contain these characters. This restriction doesn't apply to attribute values.<br/>        """
        pass

    def get_event_stream(self, ApplicationId: str) -> GetEventStreamResponse:
        r"""Retrieves information about the event stream settings for an application.

        :param self:
        :param ApplicationId:  The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>
        :return: EventStream:  Specifies settings for publishing event data to an Amazon Kinesis data stream or an Amazon Kinesis Data Firehose delivery stream.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The AWS Identity and Access Management (IAM) role that authorizes Amazon Pinpoint to publish event data to the stream in your AWS account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdatedBy</i> The IAM user who last modified the event stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> The date, in ISO 8601 format, when the event stream was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExternalId</i> (Deprecated) Your AWS account ID, which you assigned to an external ID key in an IAM trust policy. Amazon Pinpoint previously used this value to assume an IAM role when publishing event data, but we removed this requirement. We don't recommend use of external IDs for IAM roles that are assumed by Amazon Pinpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DestinationStreamArn</i> The Amazon Resource Name (ARN) of the Amazon Kinesis data stream or Amazon Kinesis Data Firehose delivery stream to publish event data to. For a Kinesis data stream, the ARN format is: arn:aws:kinesis:<replaceable>region</replaceable>:<replaceable>account-id</replaceable>:stream/<replaceable>stream_name</replaceable>
                For a Kinesis Data Firehose delivery stream, the ARN format is: arn:aws:firehose:<replaceable>region</replaceable>:<replaceable>account-id</replaceable>:deliverystream/<replaceable>stream_name</replaceable>
               <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationId</i> The unique identifier for the application to publish event data for.<br/>        """
        pass

    def get_export_job(self, JobId: str, ApplicationId: str) -> GetExportJobResponse:
        r"""Retrieves information about the status and settings of a specific export job for an application.

        :param self:
        :param JobId:  The unique identifier for the job.<br/>ApplicationId:  The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>
        :return: ExportJobResponse:  Provides information about the status and settings of a job that exports endpoint definitions to a file. The file can be added directly to an Amazon Simple Storage Service (Amazon S3) bucket by using the Amazon Pinpoint API or downloaded directly to a computer by using the Amazon Pinpoint console.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The job type. This value is EXPORT for export jobs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalProcessed</i> The total number of endpoint definitions that were processed by the export job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalPieces</i> The total number of pieces that must be processed to complete the export job. Each piece consists of an approximately equal portion of the endpoint definitions that are part of the export job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalFailures</i> The total number of endpoint definitions that weren't processed successfully (failed) by the export job, typically because an error, such as a syntax error, occurred.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobStatus</i> The status of the export job. The job status is FAILED if Amazon Pinpoint wasn't able to process one or more pieces in the job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The unique identifier for the export job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Failures</i> An array of entries, one for each of the first 100 entries that weren't processed successfully (failed) by the export job, if any.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FailedPieces</i> The number of pieces that weren't processed successfully (failed) by the export job, as of the time of the request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Definition</i> The resource settings that apply to the export job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Definition</b>: The resource settings that apply to the export job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date, in ISO 8601 format, when the export job was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CompletionDate</i> The date, in ISO 8601 format, when the export job was completed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CompletedPieces</i> The number of pieces that were processed successfully (completed) by the export job, as of the time of the request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationId</i> The unique identifier for the application that's associated with the export job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentVersion</i> The version of the segment that the endpoint definitions were exported from.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentId</i> The identifier for the segment that the endpoint definitions were exported from. If this value isn't present, Amazon Pinpoint exported definitions for all the endpoints that are associated with the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3UrlPrefix</i> The URL of the location in an Amazon Simple Storage Service (Amazon S3) bucket where the endpoint definitions were exported to. This location is typically a folder that contains multiple files. The URL should be in the following format: s3://<replaceable>bucket-name</replaceable>/<replaceable>folder-name</replaceable>/.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that authorized Amazon Pinpoint to access the Amazon S3 location where the endpoint definitions were exported to.<br/>        """
        pass

    def get_export_jobs(self, ApplicationId: str, PageSize: str=None, Token: str=None) -> GetExportJobsResponse:
        r"""Retrieves information about the status and settings of all the export jobs for an application.

        :param self:
        :param Token:  The NextToken string that specifies which page of results to return in a paginated response.<br/>PageSize:  The maximum number of items to include in each page of a paginated response. This parameter is not supported for application, campaign, and journey metrics.<br/>ApplicationId:  The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>
        :return: ExportJobsResponse:  Provides information about all the export jobs that are associated with an application or segment. An export job is a job that exports endpoint definitions to a file.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NextToken</i> The string to use in a subsequent request to get the next page of results in a paginated response. This value is null if there are no additional pages.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Item</i> An array of responses, one for each export job that's associated with the application (Export Jobs resource) or segment (Segment Export Jobs resource).<br/>        """
        pass

    def get_gcm_channel(self, ApplicationId: str) -> GetGcmChannelResponse:
        r"""Retrieves information about the status and settings of the GCM channel for an application.

        :param self:
        :param ApplicationId:  The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>
        :return: GCMChannelResponse:  Provides information about the status and settings of the GCM channel for an application. The GCM channel enables Amazon Pinpoint to send push notifications through the Firebase Cloud Messaging (FCM), formerly Google Cloud Messaging (GCM), service.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The current version of the GCM channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Platform</i> The type of messaging or notification platform for the channel. For the GCM channel, this value is GCM.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> The date and time when the GCM channel was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedBy</i> The user who last modified the GCM channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsArchived</i> Specifies whether the GCM channel is archived.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> (Deprecated) An identifier for the GCM channel. This property is retained only for backward compatibility.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HasCredential</i> (Not used) This property is retained only for backward compatibility.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specifies whether the GCM channel is enabled for the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Credential</i> The Web API Key, also referred to as an <i>API_KEY</i> or <i>server key</i>, that you received from Google to communicate with Google services.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date and time when the GCM channel was enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationId</i> The unique identifier for the application that the GCM channel applies to.<br/>        """
        pass

    def get_import_job(self, JobId: str, ApplicationId: str) -> GetImportJobResponse:
        r"""Retrieves information about the status and settings of a specific import job for an application.

        :param self:
        :param JobId:  The unique identifier for the job.<br/>ApplicationId:  The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>
        :return: ImportJobResponse:  Provides information about the status and settings of a job that imports endpoint definitions from one or more files. The files can be stored in an Amazon Simple Storage Service (Amazon S3) bucket or uploaded directly from a computer by using the Amazon Pinpoint console.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The job type. This value is IMPORT for import jobs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalProcessed</i> The total number of endpoint definitions that were processed by the import job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalPieces</i> The total number of pieces that must be processed to complete the import job. Each piece consists of an approximately equal portion of the endpoint definitions that are part of the import job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalFailures</i> The total number of endpoint definitions that weren't processed successfully (failed) by the import job, typically because an error, such as a syntax error, occurred.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobStatus</i> The status of the import job. The job status is FAILED if Amazon Pinpoint wasn't able to process one or more pieces in the job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The unique identifier for the import job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Failures</i> An array of entries, one for each of the first 100 entries that weren't processed successfully (failed) by the import job, if any.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FailedPieces</i> The number of pieces that weren't processed successfully (failed) by the import job, as of the time of the request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Definition</i> The resource settings that apply to the import job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Definition</b>: The resource settings that apply to the import job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date, in ISO 8601 format, when the import job was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CompletionDate</i> The date, in ISO 8601 format, when the import job was completed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CompletedPieces</i> The number of pieces that were processed successfully (completed) by the import job, as of the time of the request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationId</i> The unique identifier for the application that's associated with the import job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentName</i> The custom name for the segment that's created by the import job, if the value of the DefineSegment property is true.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentId</i> The identifier for the segment that the import job updates or adds endpoint definitions to, if the import job updates an existing segment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Url</i> The URL of the Amazon Simple Storage Service (Amazon S3) bucket that contains the endpoint definitions to import. This location can be a folder or a single file. If the location is a folder, Amazon Pinpoint imports endpoint definitions from the files in this location, including any subfolders that the folder contains. The URL should be in the following format: s3://<replaceable>bucket-name</replaceable>/<replaceable>folder-name</replaceable>/<replaceable>file-name</replaceable>. The location can end with the key for an individual object or a prefix that qualifies multiple objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that authorizes Amazon Pinpoint to access the Amazon S3 location to import endpoint definitions from.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RegisterEndpoints</i> Specifies whether the import job registers the endpoints with Amazon Pinpoint, when the endpoint definitions are imported.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Format</i> The format of the files that contain the endpoint definitions to import. Valid values are: CSV, for comma-separated values format; and, JSON, for newline-delimited JSON format. If the files are stored in an Amazon S3 location and that location contains multiple files that use different formats, Amazon Pinpoint imports data only from the files that use the specified format.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ExternalId</i> (Deprecated) Your AWS account ID, which you assigned to an external ID key in an IAM trust policy. Amazon Pinpoint previously used this value to assume an IAM role when importing endpoint definitions, but we removed this requirement. We don't recommend use of external IDs for IAM roles that are assumed by Amazon Pinpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DefineSegment</i> Specifies whether the import job creates a segment that contains the endpoints, when the endpoint definitions are imported.<br/>        """
        pass

    def get_import_jobs(self, ApplicationId: str, PageSize: str=None, Token: str=None) -> GetImportJobsResponse:
        r"""Retrieves information about the status and settings of all the import jobs for an application.

        :param self:
        :param Token:  The NextToken string that specifies which page of results to return in a paginated response.<br/>PageSize:  The maximum number of items to include in each page of a paginated response. This parameter is not supported for application, campaign, and journey metrics.<br/>ApplicationId:  The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>
        :return: ImportJobsResponse:  Provides information about the status and settings of all the import jobs that are associated with an application or segment. An import job is a job that imports endpoint definitions from one or more files.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NextToken</i> The string to use in a subsequent request to get the next page of results in a paginated response. This value is null if there are no additional pages.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Item</i> An array of responses, one for each import job that's associated with the application (Import Jobs resource) or segment (Segment Import Jobs resource).<br/>        """
        pass

    def get_journey(self, JourneyId: str, ApplicationId: str) -> GetJourneyResponse:
        r"""Retrieves information about the status, configuration, and other settings for a journey.

        :param self:
        :param JourneyId:  The unique identifier for the journey.<br/>ApplicationId:  The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>
        :return: JourneyResponse:  Provides information about the status, configuration, and other settings for a journey.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RefreshOnSegmentUpdate</i> Specifies whether a journey should be refreshed on segment update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WaitForQuietTime</i> Specifies whether endpoints in quiet hours should enter a wait till the end of their quiet hours.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> This object is not used or supported.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The current status of the journey. Possible values are: <ul><li>DRAFT - The journey is being developed and hasn't been published yet.</li> <li>ACTIVE - The journey has been developed and published. Depending on the journey's schedule, the journey may currently be running or scheduled to start running at a later time. If a journey's status is ACTIVE, you can't add, change, or remove activities from it.</li> <li>COMPLETED - The journey has been published and has finished running. All participants have entered the journey and no participants are waiting to complete the journey or any activities in the journey.</li> <li>CANCELLED - The journey has been stopped. If a journey's status is CANCELLED, you can't add, change, or remove activities or segment settings from the journey.</li> <li>CLOSED - The journey has been published and has started running. It may have also passed its scheduled end time, or passed its scheduled start time and a refresh frequency hasn't been specified for it. If a journey's status is CLOSED, you can't add participants to it, and no existing participants can enter the journey for the first time. However, any existing participants who are currently waiting to start an activity may continue the journey.</li></ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StartCondition</i> The segment that defines which users are participants in the journey.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StartCondition</b>: The segment that defines which users are participants in the journey.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StartActivity</i> The unique identifier for the first activity in the journey.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Schedule</i> The schedule settings for the journey.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Schedule</b>: The schedule settings for the journey.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RefreshFrequency</i> The frequency with which Amazon Pinpoint evaluates segment and event data for the journey, as a duration in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>QuietTime</i> The quiet time settings for the journey. Quiet time is a specific time range when a journey doesn't send messages to participants, if all the following conditions are met: <ul><li>The EndpointDemographic.Timezone property of the endpoint for the participant is set to a valid value.</li> <li>The current time in the participant's time zone is later than or equal to the time specified by the QuietTime.Start property for the journey.</li> <li>The current time in the participant's time zone is earlier than or equal to the time specified by the QuietTime.End property for the journey.</li></ul> If any of the preceding conditions isn't met, the participant will receive messages from the journey, even if quiet time is enabled.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>QuietTime</b>: The quiet time settings for the journey. Quiet time is a specific time range when a journey doesn't send messages to participants, if all the following conditions are met: <ul><li>The EndpointDemographic.Timezone property of the endpoint for the participant is set to a valid value.</li> <li>The current time in the participant's time zone is later than or equal to the time specified by the QuietTime.Start property for the journey.</li> <li>The current time in the participant's time zone is earlier than or equal to the time specified by the QuietTime.End property for the journey.</li></ul> If any of the preceding conditions isn't met, the participant will receive messages from the journey, even if quiet time is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the journey.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LocalTime</i> Specifies whether the journey's scheduled start and end times use each participant's local time. If this value is true, the schedule uses each participant's local time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Limits</i> The messaging and entry limits for the journey.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Limits</b>: The messaging and entry limits for the journey.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> The date, in ISO 8601 format, when the journey was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The unique identifier for the journey.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date, in ISO 8601 format, when the journey was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationId</i> The unique identifier for the application that the journey applies to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Activities</i> A map that contains a set of Activity objects, one object for each activity in the journey. For each Activity object, the key is the unique identifier (string) for an activity and the value is the settings for the activity.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointReentryInterval</i> Minimum time that must pass before an endpoint can re-enter a given journey. The duration should use an ISO 8601 format, such as PT1H. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MessagesPerSecond</i> The maximum number of messages that the journey can send each second.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointReentryCap</i> The maximum number of times that a participant can enter the journey. The maximum value is 100. To allow participants to enter the journey an unlimited number of times, set this value to 0.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DailyCap</i> The maximum number of messages that the journey can send to a single participant during a 24-hour period. The maximum value is 100.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Start</i> The specific time when quiet time begins. This value has to use 24-hour notation and be in HH:MM format, where HH is the hour (with a leading zero, if applicable) and MM is the minutes. For example, use 02:30 to represent 2:30 AM, or 14:30 to represent 2:30 PM.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>End</i> The specific time when quiet time ends. This value has to use 24-hour notation and be in HH:MM format, where HH is the hour (with a leading zero, if applicable) and MM is the minutes. For example, use 02:30 to represent 2:30 AM, or 14:30 to represent 2:30 PM.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Timezone</i> The starting UTC offset for the journey schedule, if the value of the journey's LocalTime property is true. Valid values are: UTC,
                  UTC+01, UTC+02, UTC+03, UTC+03:30, UTC+04, UTC+04:30, UTC+05, UTC+05:30,
                  UTC+05:45, UTC+06, UTC+06:30, UTC+07, UTC+08, UTC+08:45, UTC+09, UTC+09:30,
                  UTC+10, UTC+10:30, UTC+11, UTC+12, UTC+12:45, UTC+13, UTC+13:45, UTC-02,
                  UTC-02:30, UTC-03, UTC-03:30, UTC-04, UTC-05, UTC-06, UTC-07, UTC-08, UTC-09,
                  UTC-09:30, UTC-10, and UTC-11.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StartTime</i> The scheduled time, in ISO 8601 format, when the journey began or will begin.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EndTime</i> The scheduled time, in ISO 8601 format, when the journey ended or will end.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The custom description of the condition.<br/>Specifies the settings for an event that causes a journey activity to start.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EventStartCondition</b>: Specifies the settings for an event that causes a journey activity to start.        """
        pass

    def get_journey_date_range_kpi(self, KpiName: str, JourneyId: str, ApplicationId: str, EndTime: __timestampIso8601=None, NextToken: str=None, PageSize: str=None, StartTime: __timestampIso8601=None) -> GetJourneyDateRangeKpiResponse:
        r"""Retrieves (queries) pre-aggregated data for a standard engagement metric that applies to a journey.

        :param self:
        :param StartTime:  The first date and time to retrieve data for, as part of an inclusive date range that filters the query results. This value should be in extended ISO 8601 format and use Coordinated Universal Time (UTC), for example: 2019-07-19T20:00:00Z for 8:00 PM UTC July 19, 2019. This value should also be fewer than 90 days from the current day.<br/>PageSize:  The maximum number of items to include in each page of a paginated response. This parameter is not supported for application, campaign, and journey metrics.<br/>NextToken:  The  string that specifies which page of results to return in a paginated response. This parameter is not supported for application, campaign, and journey metrics.<br/>KpiName:  The name of the metric, also referred to as a <i>key performance indicator (KPI)</i>, to retrieve data for. This value describes the associated metric and consists of two or more terms, which are comprised of lowercase alphanumeric characters, separated by a hyphen. Examples are email-open-rate and successful-delivery-rate. For a list of valid values, see the <a href="https://docs.aws.amazon.com/pinpoint/latest/developerguide/analytics-standard-metrics.html">Amazon Pinpoint Developer Guide</a>.<br/>JourneyId:  The unique identifier for the journey.<br/>EndTime:  The last date and time to retrieve data for, as part of an inclusive date range that filters the query results. This value should be in extended ISO 8601 format and use Coordinated Universal Time (UTC), for example: 2019-07-26T20:00:00Z for 8:00 PM UTC July 26, 2019.<br/>ApplicationId:  The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>
        :return: JourneyDateRangeKpiResponse:  Provides the results of a query that retrieved the data for a standard engagement metric that applies to a journey, and provides information about that query.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StartTime</i> The first date and time of the date range that was used to filter the query results, in extended ISO 8601 format. The date range is inclusive.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NextToken</i> The string to use in a subsequent request to get the next page of results in a paginated response. This value is null for the Journey Engagement Metrics resource because the resource returns all results in a single page.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KpiResult</i> An array of objects that contains the results of the query. Each object contains the value for the metric and metadata about that value.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>KpiResult</b>: An array of objects that contains the results of the query. Each object contains the value for the metric and metadata about that value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KpiName</i> The name of the metric, also referred to as a <i>key performance indicator (KPI)</i>, that the data was retrieved for. This value describes the associated metric and consists of two or more terms, which are comprised of lowercase alphanumeric characters, separated by a hyphen. For a list of possible values, see the <a href="https://docs.aws.amazon.com/pinpoint/latest/developerguide/analytics-standard-metrics.html">Amazon Pinpoint Developer Guide</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JourneyId</i> The unique identifier for the journey that the metric applies to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndTime</i> The last date and time of the date range that was used to filter the query results, in extended ISO 8601 format. The date range is inclusive.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationId</i> The unique identifier for the application that the metric applies to.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Rows</i> An array of objects that provides the results of a query that retrieved the data for a standard metric that applies to an application, campaign, or journey.<br/>        """
        pass

    def get_journey_execution_activity_metrics(self, JourneyId: str, JourneyActivityId: str, ApplicationId: str, NextToken: str=None, PageSize: str=None) -> GetJourneyExecutionActivityMetricsResponse:
        r"""Retrieves (queries) pre-aggregated data for a standard execution metric that applies to a journey activity.

        :param self:
        :param PageSize:  The maximum number of items to include in each page of a paginated response. This parameter is not supported for application, campaign, and journey metrics.<br/>NextToken:  The  string that specifies which page of results to return in a paginated response. This parameter is not supported for application, campaign, and journey metrics.<br/>JourneyId:  The unique identifier for the journey.<br/>JourneyActivityId:  The unique identifier for the journey activity.<br/>ApplicationId:  The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>
        :return: JourneyExecutionActivityMetricsResponse:  Provides the results of a query that retrieved the data for a standard execution metric that applies to a journey activity, and provides information about that query.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Metrics</i> A JSON object that contains the results of the query. The results vary depending on the type of activity (ActivityType). For information about the structure and contents of the results, see the <a href="https://docs.aws.amazon.com/pinpoint/latest/developerguide/analytics-standard-metrics.html">Amazon Pinpoint Developer Guide</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastEvaluatedTime</i> The date and time, in ISO 8601 format, when Amazon Pinpoint last evaluated the execution status of the activity and updated the data for the metric.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JourneyId</i> The unique identifier for the journey that the metric applies to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JourneyActivityId</i> The unique identifier for the activity that the metric applies to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationId</i> The unique identifier for the application that the metric applies to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityType</i> The type of activity that the metric applies to. Possible values are: <ul><li>CONDITIONAL_SPLIT - For a yes/no split activity, which is an activity that sends participants down one of two paths in a journey.</li> <li>HOLDOUT - For a holdout activity, which is an activity that stops a journey for a specified percentage of participants.</li> <li>MESSAGE - For an email activity, which is an activity that sends an email message to participants.</li> <li>MULTI_CONDITIONAL_SPLIT - For a multivariate split activity, which is an activity that sends participants down one of as many as five paths in a journey.</li> <li>RANDOM_SPLIT - For a random split activity, which is an activity that sends specified percentages of participants down one of as many as five paths in a journey.</li> <li>WAIT - For a wait activity, which is an activity that waits for a certain amount of time or until a specific date and time before moving participants to the next activity in a journey.</li></ul><br/>        """
        pass

    def get_journey_execution_metrics(self, JourneyId: str, ApplicationId: str, NextToken: str=None, PageSize: str=None) -> GetJourneyExecutionMetricsResponse:
        r"""Retrieves (queries) pre-aggregated data for a standard execution metric that applies to a journey.

        :param self:
        :param PageSize:  The maximum number of items to include in each page of a paginated response. This parameter is not supported for application, campaign, and journey metrics.<br/>NextToken:  The  string that specifies which page of results to return in a paginated response. This parameter is not supported for application, campaign, and journey metrics.<br/>JourneyId:  The unique identifier for the journey.<br/>ApplicationId:  The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>
        :return: JourneyExecutionMetricsResponse:  Provides the results of a query that retrieved the data for a standard execution metric that applies to a journey, and provides information about that query.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Metrics</i> A JSON object that contains the results of the query. For information about the structure and contents of the results, see the <a href="https://docs.aws.amazon.com//pinpoint/latest/developerguide/analytics-standard-metrics.html">Amazon Pinpoint Developer Guide</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastEvaluatedTime</i> The date and time, in ISO 8601 format, when Amazon Pinpoint last evaluated the journey and updated the data for the metric.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JourneyId</i> The unique identifier for the journey that the metric applies to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationId</i> The unique identifier for the application that the metric applies to.<br/>        """
        pass

    def get_push_template(self, TemplateName: str, Version: str=None) -> GetPushTemplateResponse:
        r"""Retrieves the content and settings of a message template for messages that are sent through a push notification channel.

        :param self:
        :param Version:  The unique identifier for the version of the message template to update, retrieve information about, or delete. To retrieve identifiers and other information for all the versions of a template, use the <link  linkend="templates-template-name-template-type-versions">Template Versions</link> resource. If specified, this value must match the identifier for an existing template version. If specified for an update operation, this value must match the identifier for the latest existing version of the template. This restriction helps ensure that race conditions don't occur. If you don't specify a value for this parameter, Amazon Pinpoint does the following: <ul><li>For a get operation, retrieves information about the active version of the template.</li> <li>For an update operation, saves the updates to (overwrites) the latest existing version of the template, if the create-new-version parameter isn't used or is set to false.</li> <li>For a delete operation, deletes the template, including all versions of the template.</li></ul><br/>TemplateName:  The name of the message template. A template name must start with an alphanumeric character and can contain a maximum of 128 characters. The characters can be alphanumeric characters, underscores (_), or hyphens (-). Template names are case sensitive.<br/>
        :return: PushNotificationTemplateResponse:  Provides information about the content and settings for a message template that can be used in messages that are sent through a push notification channel.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The unique identifier, as an integer, for the active version of the message template, or the version of the template that you specified by using the version parameter in your request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TemplateType</i> The type of channel that the message template is designed for. For a push notification template, this value is PUSH.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TemplateName</i> The name of the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TemplateDescription</i> The custom description of the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> A string-to-string map of key-value pairs that identifies the tags that are associated with the message template. Each tag consists of a required tag key and an associated tag value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecommenderId</i> The unique identifier for the recommender model that's used by the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> The date, in ISO 8601 format, when the message template was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GCM</i> The message template that's used for the GCM channel, which is used to send notifications through the Firebase Cloud Messaging (FCM), formerly Google Cloud Messaging (GCM), service. This message template overrides the default template for push notification channels (DefaultPushNotificationTemplate).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>GCM</b>: The message template that's used for the GCM channel, which is used to send notifications through the Firebase Cloud Messaging (FCM), formerly Google Cloud Messaging (GCM), service. This message template overrides the default template for push notification channels (DefaultPushNotificationTemplate).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultSubstitutions</i> The JSON object that specifies the default values that are used for message variables in the message template. This object is a set of key-value pairs. Each key defines a message variable in the template. The corresponding value defines the default value for that variable.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Default</i> The default message template that's used for push notification channels.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Default</b>: The default message template that's used for push notification channels.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date, in ISO 8601 format, when the message template was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Baidu</i> The message template that's used for the Baidu (Baidu Cloud Push) channel. This message template overrides the default template for push notification channels (DefaultPushNotificationTemplate).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Baidu</b>: The message template that's used for the Baidu (Baidu Cloud Push) channel. This message template overrides the default template for push notification channels (DefaultPushNotificationTemplate).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>APNS</i> The message template that's used for the APNs (Apple Push Notification service) channel. This message template overrides the default template for push notification channels (DefaultPushNotificationTemplate).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>APNS</b>: The message template that's used for the APNs (Apple Push Notification service) channel. This message template overrides the default template for push notification channels (DefaultPushNotificationTemplate).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ADM</i> The message template that's used for the ADM (Amazon Device Messaging) channel. This message template overrides the default template for push notification channels (DefaultPushNotificationTemplate).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ADM</b>: The message template that's used for the ADM (Amazon Device Messaging) channel. This message template overrides the default template for push notification channels (DefaultPushNotificationTemplate).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Url</i> The URL to open in a recipient's default mobile browser, if a recipient taps a push notification that's based on the message template and the value of the Action property is URL.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Title</i> The title to use in a push notification that's based on the message template. This title appears above the notification message on a recipient's device.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Sound</i> The sound to play when a recipient receives a push notification that's based on the message template. You can use the default stream or specify the file name of a sound resource that's bundled in your app. On an Android platform, the sound file must reside in /res/raw/.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SmallImageIconUrl</i> The URL of the small icon image to display in the status bar and the content view of a push notification that's based on the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RawContent</i> The raw, JSON-formatted string to use as the payload for a push notification that's based on the message template. If specified, this value overrides all other content for the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ImageUrl</i> The URL of an image to display in a push notification that's based on the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ImageIconUrl</i> The URL of the large icon image to display in the content view of a push notification that's based on the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Body</i> The message body to use in a push notification that's based on the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Action</i> The action to occur if a recipient taps a push notification that's based on the message template. Valid values are: <ul><li>OPEN_APP - Your app opens or it becomes the foreground app if it was sent to the background. This is the default action.</li> <li>DEEP_LINK - Your app opens and displays a designated user interface in the app. This action uses the deep-linking features of the Android platform.</li> <li>URL - The default mobile browser on the recipient's device opens and loads the web page at a URL that you specify.</li></ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Url</i> The URL to open in the recipient's default mobile browser, if a recipient taps a push notification that's based on the message template and the value of the Action property is URL.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Title</i> The title to use in push notifications that are based on the message template. This title appears above the notification message on a recipient's device.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Sound</i> The key for the sound to play when the recipient receives a push notification that's based on the message template. The value for this key is the name of a sound file in your app's main bundle or the Library/Sounds folder in your app's data container. If the sound file can't be found or you specify default for the value, the system plays the default alert sound.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RawContent</i> The raw, JSON-formatted string to use as the payload for push notifications that are based on the message template. If specified, this value overrides all other content for the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MediaUrl</i> The URL of an image or video to display in push notifications that are based on the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Body</i> The message body to use in push notifications that are based on the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Action</i> The action to occur if a recipient taps a push notification that's based on the message template. Valid values are: <ul><li>OPEN_APP - Your app opens or it becomes the foreground app if it was sent to the background. This is the default action.</li> <li>DEEP_LINK - Your app opens and displays a designated user interface in the app. This setting uses the deep-linking features of the iOS platform.</li> <li>URL - The default mobile browser on the recipient's device opens and loads the web page at a URL that you specify.</li></ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Url</i> The URL to open in a recipient's default mobile browser, if a recipient taps a push notification that's based on the message template and the value of the Action property is URL.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Title</i> The title to use in a push notification that's based on the message template. This title appears above the notification message on a recipient's device.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Sound</i> The sound to play when a recipient receives a push notification that's based on the message template. You can use the default stream or specify the file name of a sound resource that's bundled in your app. On an Android platform, the sound file must reside in /res/raw/.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SmallImageIconUrl</i> The URL of the small icon image to display in the status bar and the content view of a push notification that's based on the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RawContent</i> The raw, JSON-formatted string to use as the payload for a push notification that's based on the message template. If specified, this value overrides all other content for the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ImageUrl</i> The URL of an image to display in a push notification that's based on the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ImageIconUrl</i> The URL of the large icon image to display in the content view of a push notification that's based on the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Body</i> The message body to use in a push notification that's based on the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Action</i> The action to occur if a recipient taps a push notification that's based on the message template. Valid values are: <ul><li>OPEN_APP - Your app opens or it becomes the foreground app if it was sent to the background. This is the default action.</li> <li>DEEP_LINK - Your app opens and displays a designated user interface in the app. This action uses the deep-linking features of the Android platform.</li> <li>URL - The default mobile browser on the recipient's device opens and loads the web page at a URL that you specify.</li></ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Url</i> The URL to open in a recipient's default mobile browser, if a recipient taps a push notification that's based on the message template and the value of the Action property is URL.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Title</i> The title to use in push notifications that are based on the message template. This title appears above the notification message on a recipient's device.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Sound</i> The sound to play when a recipient receives a push notification that's based on the message template. You can use the default stream or specify the file name of a sound resource that's bundled in your app. On an Android platform, the sound file must reside in /res/raw/. For an iOS platform, this value is the key for the name of a sound file in your app's main bundle or the Library/Sounds folder in your app's data container. If the sound file can't be found or you specify default for the value, the system plays the default alert sound.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Body</i> The message body to use in push notifications that are based on the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Action</i> The action to occur if a recipient taps a push notification that's based on the message template. Valid values are: <ul><li>OPEN_APP - Your app opens or it becomes the foreground app if it was sent to the background. This is the default action.</li> <li>DEEP_LINK - Your app opens and displays a designated user interface in the app. This setting uses the deep-linking features of the iOS and Android platforms.</li> <li>URL - The default mobile browser on the recipient's device opens and loads the web page at a URL that you specify.</li></ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Url</i> The URL to open in a recipient's default mobile browser, if a recipient taps a push notification that's based on the message template and the value of the Action property is URL.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Title</i> The title to use in a push notification that's based on the message template. This title appears above the notification message on a recipient's device.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Sound</i> The sound to play when a recipient receives a push notification that's based on the message template. You can use the default stream or specify the file name of a sound resource that's bundled in your app. On an Android platform, the sound file must reside in /res/raw/.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SmallImageIconUrl</i> The URL of the small icon image to display in the status bar and the content view of a push notification that's based on the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RawContent</i> The raw, JSON-formatted string to use as the payload for a push notification that's based on the message template. If specified, this value overrides all other content for the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ImageUrl</i> The URL of an image to display in a push notification that's based on the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ImageIconUrl</i> The URL of the large icon image to display in the content view of a push notification that's based on the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Body</i> The message body to use in a push notification that's based on the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Action</i> The action to occur if a recipient taps a push notification that's based on the message template. Valid values are: <ul><li>OPEN_APP - Your app opens or it becomes the foreground app if it was sent to the background. This is the default action.</li> <li>DEEP_LINK - Your app opens and displays a designated user interface in the app. This action uses the deep-linking features of the Android platform.</li> <li>URL - The default mobile browser on the recipient's device opens and loads the web page at a URL that you specify.</li></ul><br/>        """
        pass

    def get_recommender_configuration(self, RecommenderId: str) -> GetRecommenderConfigurationResponse:
        r"""Retrieves information about an Amazon Pinpoint configuration for a recommender model.

        :param self:
        :param RecommenderId:  The unique identifier for the recommender model configuration. This identifier is displayed as the <b>Recommender ID</b> on the Amazon Pinpoint console.<br/>
        :return: RecommenderConfigurationResponse:  Provides information about Amazon Pinpoint configuration settings for retrieving and processing data from a recommender model.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecommendationsPerMessage</i> The number of recommended items that are retrieved from the model for each endpoint or user, depending on the value for the RecommendationProviderIdType property. This number determines how many recommended items are available for use in message variables.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecommendationsDisplayName</i> The custom display name for the standard endpoint or user attribute (RecommendationItems) that temporarily stores recommended items for each endpoint or user, depending on the value for the RecommendationProviderIdType property. This name appears in the <b>Attribute finder</b> of the template editor on the Amazon Pinpoint console. This value is null if the configuration doesn't invoke an AWS Lambda function (RecommendationTransformerUri) to perform additional processing of recommendation data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecommendationTransformerUri</i> The name or Amazon Resource Name (ARN) of the AWS Lambda function that Amazon Pinpoint invokes to perform additional processing of recommendation data that it retrieves from the recommender model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecommendationProviderUri</i> The Amazon Resource Name (ARN) of the recommender model that Amazon Pinpoint retrieves the recommendation data from. This value is the ARN of an Amazon Personalize campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecommendationProviderRoleArn</i> The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that authorizes Amazon Pinpoint to retrieve recommendation data from the recommender model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecommendationProviderIdType</i> The type of Amazon Pinpoint ID that's associated with unique user IDs in the recommender model. This value enables the model to use attribute and event data that’s specific to a particular endpoint or user in an Amazon Pinpoint application. Possible values are: <ul><li>PINPOINT_ENDPOINT_ID - Each user in the model is associated with a particular endpoint in Amazon Pinpoint. The data is correlated based on endpoint IDs in Amazon Pinpoint. This is the default value.</li> <li>PINPOINT_USER_ID - Each user in the model is associated with a particular user and endpoint in Amazon Pinpoint. The data is correlated based on user IDs in Amazon Pinpoint. If this value is specified, an endpoint definition in Amazon Pinpoint has to specify both a user ID (UserId) and an endpoint ID. Otherwise, messages won’t be sent to the user's endpoint.</li></ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The custom name of the configuration for the recommender model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> The date, in extended ISO 8601 format, when the configuration for the recommender model was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The unique identifier for the recommender model configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The custom description of the configuration for the recommender model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date, in extended ISO 8601 format, when the configuration was created for the recommender model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Attributes</i> A map that defines 1-10 custom endpoint or user attributes, depending on the value for the RecommendationProviderIdType property. Each of these attributes temporarily stores a recommended item that's retrieved from the recommender model and sent to an AWS Lambda function for additional processing. Each attribute can be used as a message variable in a message template. This value is null if the configuration doesn't invoke an AWS Lambda function (RecommendationTransformerUri) to perform additional processing of recommendation data.<br/>        """
        pass

    def get_recommender_configurations(self, PageSize: str=None, Token: str=None) -> GetRecommenderConfigurationsResponse:
        r"""Retrieves information about all the recommender model configurations that are associated with your Amazon Pinpoint account.

        :param self:
        :param Token:  The NextToken string that specifies which page of results to return in a paginated response.<br/>PageSize:  The maximum number of items to include in each page of a paginated response. This parameter is not supported for application, campaign, and journey metrics.<br/>
        :return: ListRecommenderConfigurationsResponse:  Provides information about all the recommender model configurations that are associated with your Amazon Pinpoint account.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NextToken</i> The string to use in a subsequent request to get the next page of results in a paginated response. This value is null if there are no additional pages.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Item</i> An array of responses, one for each recommender model configuration that's associated with your Amazon Pinpoint account.<br/>        """
        pass

    def get_segment(self, SegmentId: str, ApplicationId: str) -> GetSegmentResponse:
        r"""Retrieves information about the configuration, dimension, and other settings for a specific segment that's associated with an application.

        :param self:
        :param SegmentId:  The unique identifier for the segment.<br/>ApplicationId:  The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>
        :return: SegmentResponse:  Provides information about the configuration, dimension, and other settings for a segment.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The version number of the segment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> A string-to-string map of key-value pairs that identifies the tags that are associated with the segment. Each tag consists of a required tag key and an associated tag value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentType</i> The segment type. Valid values are: <ul><li>DIMENSIONAL - A dynamic segment, which is a segment that uses selection criteria that you specify and is based on endpoint data that's reported by your app. Dynamic segments can change over time.</li> <li>IMPORT - A static segment, which is a segment that uses selection criteria that you specify and is based on endpoint definitions that you import from a file. Imported segments are static; they don't change over time.</li></ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentGroups</i> A list of one or more segment groups that apply to the segment. Each segment group consists of zero or more base segments and the dimensions that are applied to those base segments.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SegmentGroups</b>: A list of one or more segment groups that apply to the segment. Each segment group consists of zero or more base segments and the dimensions that are applied to those base segments.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the segment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> The date and time when the segment was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImportDefinition</i> The settings for the import job that's associated with the segment.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ImportDefinition</b>: The settings for the import job that's associated with the segment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The unique identifier for the segment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Dimensions</i> The dimension settings for the segment.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Dimensions</b>: The dimension settings for the segment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date and time when the segment was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the segment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationId</i> The unique identifier for the application that the segment is associated with.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Attributes</i> One or more custom attributes to use as criteria for the segment.<br/>The behavior-based criteria, such as how recently users have used your app, for the segment.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Behavior</b>: The behavior-based criteria, such as how recently users have used your app, for the segment.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Size</i> The number of endpoint definitions that were imported successfully to create the segment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Url</i> The URL of the Amazon Simple Storage Service (Amazon S3) bucket that the endpoint definitions were imported from to create the segment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that authorized Amazon Pinpoint to access the Amazon S3 location to import endpoint definitions from.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Format</i> The format of the files that were imported to create the segment. Valid values are: CSV, for comma-separated values format; and, JSON, for newline-delimited JSON format.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ExternalId</i> (Deprecated) Your AWS account ID, which you assigned to an external ID key in an IAM trust policy. Amazon Pinpoint previously used this value to assume an IAM role when importing endpoint definitions, but we removed this requirement. We don't recommend use of external IDs for IAM roles that are assumed by Amazon Pinpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ChannelCounts</i> The number of channel types in the endpoint definitions that were imported to create the segment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Include</i> Specifies how to handle multiple segment groups for the segment. For example, if the segment includes three segment groups, whether the resulting segment includes endpoints that match all, any, or none of the segment groups.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Groups</i> An array that defines the set of segment criteria to evaluate when handling segment groups for the segment.<br/>        """
        pass

    def get_segment_export_jobs(self, SegmentId: str, ApplicationId: str, PageSize: str=None, Token: str=None) -> GetSegmentExportJobsResponse:
        r"""Retrieves information about the status and settings of the export jobs for a segment.

        :param self:
        :param Token:  The NextToken string that specifies which page of results to return in a paginated response.<br/>SegmentId:  The unique identifier for the segment.<br/>PageSize:  The maximum number of items to include in each page of a paginated response. This parameter is not supported for application, campaign, and journey metrics.<br/>ApplicationId:  The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>
        :return: ExportJobsResponse:  Provides information about all the export jobs that are associated with an application or segment. An export job is a job that exports endpoint definitions to a file.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NextToken</i> The string to use in a subsequent request to get the next page of results in a paginated response. This value is null if there are no additional pages.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Item</i> An array of responses, one for each export job that's associated with the application (Export Jobs resource) or segment (Segment Export Jobs resource).<br/>        """
        pass

    def get_segment_import_jobs(self, SegmentId: str, ApplicationId: str, PageSize: str=None, Token: str=None) -> GetSegmentImportJobsResponse:
        r"""Retrieves information about the status and settings of the import jobs for a segment.

        :param self:
        :param Token:  The NextToken string that specifies which page of results to return in a paginated response.<br/>SegmentId:  The unique identifier for the segment.<br/>PageSize:  The maximum number of items to include in each page of a paginated response. This parameter is not supported for application, campaign, and journey metrics.<br/>ApplicationId:  The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>
        :return: ImportJobsResponse:  Provides information about the status and settings of all the import jobs that are associated with an application or segment. An import job is a job that imports endpoint definitions from one or more files.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NextToken</i> The string to use in a subsequent request to get the next page of results in a paginated response. This value is null if there are no additional pages.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Item</i> An array of responses, one for each import job that's associated with the application (Import Jobs resource) or segment (Segment Import Jobs resource).<br/>        """
        pass

    def get_segment_version(self, Version: str, SegmentId: str, ApplicationId: str) -> GetSegmentVersionResponse:
        r"""Retrieves information about the configuration, dimension, and other settings for a specific version of a segment that's associated with an application.

        :param self:
        :param Version:  The unique version number (Version property) for the campaign version.<br/>SegmentId:  The unique identifier for the segment.<br/>ApplicationId:  The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>
        :return: SegmentResponse:  Provides information about the configuration, dimension, and other settings for a segment.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The version number of the segment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> A string-to-string map of key-value pairs that identifies the tags that are associated with the segment. Each tag consists of a required tag key and an associated tag value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentType</i> The segment type. Valid values are: <ul><li>DIMENSIONAL - A dynamic segment, which is a segment that uses selection criteria that you specify and is based on endpoint data that's reported by your app. Dynamic segments can change over time.</li> <li>IMPORT - A static segment, which is a segment that uses selection criteria that you specify and is based on endpoint definitions that you import from a file. Imported segments are static; they don't change over time.</li></ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentGroups</i> A list of one or more segment groups that apply to the segment. Each segment group consists of zero or more base segments and the dimensions that are applied to those base segments.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SegmentGroups</b>: A list of one or more segment groups that apply to the segment. Each segment group consists of zero or more base segments and the dimensions that are applied to those base segments.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the segment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> The date and time when the segment was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImportDefinition</i> The settings for the import job that's associated with the segment.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ImportDefinition</b>: The settings for the import job that's associated with the segment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The unique identifier for the segment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Dimensions</i> The dimension settings for the segment.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Dimensions</b>: The dimension settings for the segment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date and time when the segment was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the segment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationId</i> The unique identifier for the application that the segment is associated with.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Attributes</i> One or more custom attributes to use as criteria for the segment.<br/>The behavior-based criteria, such as how recently users have used your app, for the segment.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Behavior</b>: The behavior-based criteria, such as how recently users have used your app, for the segment.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Size</i> The number of endpoint definitions that were imported successfully to create the segment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Url</i> The URL of the Amazon Simple Storage Service (Amazon S3) bucket that the endpoint definitions were imported from to create the segment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that authorized Amazon Pinpoint to access the Amazon S3 location to import endpoint definitions from.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Format</i> The format of the files that were imported to create the segment. Valid values are: CSV, for comma-separated values format; and, JSON, for newline-delimited JSON format.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ExternalId</i> (Deprecated) Your AWS account ID, which you assigned to an external ID key in an IAM trust policy. Amazon Pinpoint previously used this value to assume an IAM role when importing endpoint definitions, but we removed this requirement. We don't recommend use of external IDs for IAM roles that are assumed by Amazon Pinpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ChannelCounts</i> The number of channel types in the endpoint definitions that were imported to create the segment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Include</i> Specifies how to handle multiple segment groups for the segment. For example, if the segment includes three segment groups, whether the resulting segment includes endpoints that match all, any, or none of the segment groups.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Groups</i> An array that defines the set of segment criteria to evaluate when handling segment groups for the segment.<br/>        """
        pass

    def get_segment_versions(self, SegmentId: str, ApplicationId: str, PageSize: str=None, Token: str=None) -> GetSegmentVersionsResponse:
        r"""Retrieves information about the configuration, dimension, and other settings for all the versions of a specific segment that's associated with an application.

        :param self:
        :param Token:  The NextToken string that specifies which page of results to return in a paginated response.<br/>SegmentId:  The unique identifier for the segment.<br/>PageSize:  The maximum number of items to include in each page of a paginated response. This parameter is not supported for application, campaign, and journey metrics.<br/>ApplicationId:  The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>
        :return: SegmentsResponse:  Provides information about all the segments that are associated with an application.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NextToken</i> The string to use in a subsequent request to get the next page of results in a paginated response. This value is null if there are no additional pages.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Item</i> An array of responses, one for each segment that's associated with the application (Segments resource) or each version of a segment that's associated with the application (Segment Versions resource).<br/>        """
        pass

    def get_segments(self, ApplicationId: str, PageSize: str=None, Token: str=None) -> GetSegmentsResponse:
        r"""Retrieves information about the configuration, dimension, and other settings for all the segments that are associated with an application.

        :param self:
        :param Token:  The NextToken string that specifies which page of results to return in a paginated response.<br/>PageSize:  The maximum number of items to include in each page of a paginated response. This parameter is not supported for application, campaign, and journey metrics.<br/>ApplicationId:  The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>
        :return: SegmentsResponse:  Provides information about all the segments that are associated with an application.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NextToken</i> The string to use in a subsequent request to get the next page of results in a paginated response. This value is null if there are no additional pages.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Item</i> An array of responses, one for each segment that's associated with the application (Segments resource) or each version of a segment that's associated with the application (Segment Versions resource).<br/>        """
        pass

    def get_sms_channel(self, ApplicationId: str) -> GetSmsChannelResponse:
        r"""Retrieves information about the status and settings of the SMS channel for an application.

        :param self:
        :param ApplicationId:  The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>
        :return: SMSChannelResponse:  Provides information about the status and settings of the SMS channel for an application.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The current version of the SMS channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransactionalMessagesPerSecond</i> The maximum number of transactional messages that you can send through the SMS channel each second.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ShortCode</i> The registered short code to use when you send messages through the SMS channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SenderId</i> The identity that displays on recipients' devices when they receive messages from the SMS channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PromotionalMessagesPerSecond</i> The maximum number of promotional messages that you can send through the SMS channel each second.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Platform</i> The type of messaging or notification platform for the channel. For the SMS channel, this value is SMS.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> The date and time, in ISO 8601 format, when the SMS channel was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedBy</i> The user who last modified the SMS channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsArchived</i> Specifies whether the SMS channel is archived.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> (Deprecated) An identifier for the SMS channel. This property is retained only for backward compatibility.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HasCredential</i> (Not used) This property is retained only for backward compatibility.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specifies whether the SMS channel is enabled for the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date and time, in ISO 8601 format, when the SMS channel was enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationId</i> The unique identifier for the application that the SMS channel applies to.<br/>        """
        pass

    def get_sms_template(self, TemplateName: str, Version: str=None) -> GetSmsTemplateResponse:
        r"""Retrieves the content and settings of a message template for messages that are sent through the SMS channel.

        :param self:
        :param Version:  The unique identifier for the version of the message template to update, retrieve information about, or delete. To retrieve identifiers and other information for all the versions of a template, use the <link  linkend="templates-template-name-template-type-versions">Template Versions</link> resource. If specified, this value must match the identifier for an existing template version. If specified for an update operation, this value must match the identifier for the latest existing version of the template. This restriction helps ensure that race conditions don't occur. If you don't specify a value for this parameter, Amazon Pinpoint does the following: <ul><li>For a get operation, retrieves information about the active version of the template.</li> <li>For an update operation, saves the updates to (overwrites) the latest existing version of the template, if the create-new-version parameter isn't used or is set to false.</li> <li>For a delete operation, deletes the template, including all versions of the template.</li></ul><br/>TemplateName:  The name of the message template. A template name must start with an alphanumeric character and can contain a maximum of 128 characters. The characters can be alphanumeric characters, underscores (_), or hyphens (-). Template names are case sensitive.<br/>
        :return: SMSTemplateResponse:  Provides information about the content and settings for a message template that can be used in text messages that are sent through the SMS channel.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The unique identifier, as an integer, for the active version of the message template, or the version of the template that you specified by using the version parameter in your request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TemplateType</i> The type of channel that the message template is designed for. For an SMS template, this value is SMS.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TemplateName</i> The name of the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TemplateDescription</i> The custom description of the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> A string-to-string map of key-value pairs that identifies the tags that are associated with the message template. Each tag consists of a required tag key and an associated tag value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecommenderId</i> The unique identifier for the recommender model that's used by the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> The date, in ISO 8601 format, when the message template was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultSubstitutions</i> The JSON object that specifies the default values that are used for message variables in the message template. This object is a set of key-value pairs. Each key defines a message variable in the template. The corresponding value defines the default value for that variable.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date, in ISO 8601 format, when the message template was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Body</i> The message body that's used in text messages that are based on the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the message template.<br/>        """
        pass

    def get_user_endpoints(self, UserId: str, ApplicationId: str) -> GetUserEndpointsResponse:
        r"""Retrieves information about all the endpoints that are associated with a specific user ID.

        :param self:
        :param UserId:  The unique identifier for the user.<br/>ApplicationId:  The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>
        :return: EndpointsResponse:  Provides information about all the endpoints that are associated with a user ID.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Item</i> An array of responses, one for each endpoint that's associated with the user ID.<br/>        """
        pass

    def get_voice_channel(self, ApplicationId: str) -> GetVoiceChannelResponse:
        r"""Retrieves information about the status and settings of the voice channel for an application.

        :param self:
        :param ApplicationId:  The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>
        :return: VoiceChannelResponse:  Provides information about the status and settings of the voice channel for an application.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The current version of the voice channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Platform</i> The type of messaging or notification platform for the channel. For the voice channel, this value is VOICE.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> The date and time, in ISO 8601 format, when the voice channel was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedBy</i> The user who last modified the voice channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsArchived</i> Specifies whether the voice channel is archived.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> (Deprecated) An identifier for the voice channel. This property is retained only for backward compatibility.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HasCredential</i> (Not used) This property is retained only for backward compatibility.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specifies whether the voice channel is enabled for the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date and time, in ISO 8601 format, when the voice channel was enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationId</i> The unique identifier for the application that the voice channel applies to.<br/>        """
        pass

    def get_voice_template(self, TemplateName: str, Version: str=None) -> GetVoiceTemplateResponse:
        r"""Retrieves the content and settings of a message template for messages that are sent through the voice channel.

        :param self:
        :param Version:  The unique identifier for the version of the message template to update, retrieve information about, or delete. To retrieve identifiers and other information for all the versions of a template, use the <link  linkend="templates-template-name-template-type-versions">Template Versions</link> resource. If specified, this value must match the identifier for an existing template version. If specified for an update operation, this value must match the identifier for the latest existing version of the template. This restriction helps ensure that race conditions don't occur. If you don't specify a value for this parameter, Amazon Pinpoint does the following: <ul><li>For a get operation, retrieves information about the active version of the template.</li> <li>For an update operation, saves the updates to (overwrites) the latest existing version of the template, if the create-new-version parameter isn't used or is set to false.</li> <li>For a delete operation, deletes the template, including all versions of the template.</li></ul><br/>TemplateName:  The name of the message template. A template name must start with an alphanumeric character and can contain a maximum of 128 characters. The characters can be alphanumeric characters, underscores (_), or hyphens (-). Template names are case sensitive.<br/>
        :return: VoiceTemplateResponse:  Provides information about the content and settings for a message template that can be used in messages that are sent through the voice channel.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VoiceId</i> The name of the voice that's used when delivering messages that are based on the message template. For a list of supported voices, see the <a href="https://docs.aws.amazon.com/polly/latest/dg/what-is.html">Amazon Polly Developer Guide</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The unique identifier, as an integer, for the active version of the message template, or the version of the template that you specified by using the version parameter in your request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TemplateType</i> The type of channel that the message template is designed for. For a voice template, this value is VOICE.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TemplateName</i> The name of the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TemplateDescription</i> The custom description of the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> A string-to-string map of key-value pairs that identifies the tags that are associated with the message template. Each tag consists of a required tag key and an associated tag value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> The date, in ISO 8601 format, when the message template was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LanguageCode</i> The code for the language that's used when synthesizing the text of the script in messages that are based on the message template. For a list of supported languages and the code for each one, see the <a href="https://docs.aws.amazon.com/polly/latest/dg/what-is.html">Amazon Polly Developer Guide</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultSubstitutions</i> The JSON object that specifies the default values that are used for message variables in the message template. This object is a set of key-value pairs. Each key defines a message variable in the template. The corresponding value defines the default value for that variable.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date, in ISO 8601 format, when the message template was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Body</i> The text of the script that's used in messages that are based on the message template, in plain text format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the message template.<br/>        """
        pass

    def list_journeys(self, ApplicationId: str, PageSize: str=None, Token: str=None) -> ListJourneysResponse:
        r"""Retrieves information about the status, configuration, and other settings for all the journeys that are associated with an application.

        :param self:
        :param Token:  The NextToken string that specifies which page of results to return in a paginated response.<br/>PageSize:  The maximum number of items to include in each page of a paginated response. This parameter is not supported for application, campaign, and journey metrics.<br/>ApplicationId:  The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>
        :return: JourneysResponse:  Provides information about the status, configuration, and other settings for all the journeys that are associated with an application.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NextToken</i> The string to use in a subsequent request to get the next page of results in a paginated response. This value is null if there are no additional pages.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Item</i> An array of responses, one for each journey that's associated with the application.<br/>        """
        pass

    def list_tags_for_resource(self, ResourceArn: str) -> ListTagsForResourceResponse:
        r"""Retrieves all the tags (keys and values) that are associated with an application, campaign, message template, or segment.

        :param self:
        :param ResourceArn:  The Amazon Resource Name (ARN) of the resource.<br/>
        :return: TagsModel:  Specifies the tags (keys and values) for an application, campaign, message template, or segment.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> A string-to-string map of key-value pairs that defines the tags for an application, campaign, message template, or segment. Each of these resources can have a maximum of 50 tags. Each tag consists of a required tag key and an associated tag value. The maximum length of a tag key is 128 characters. The maximum length of a tag value is 256 characters.<br/>        """
        pass

    def list_template_versions(self, TemplateType: str, TemplateName: str, NextToken: str=None, PageSize: str=None) -> ListTemplateVersionsResponse:
        r"""Retrieves information about all the versions of a specific message template.

        :param self:
        :param TemplateType:  The type of channel that the message template is designed for. Valid values are: EMAIL, PUSH, SMS, and VOICE.<br/>TemplateName:  The name of the message template. A template name must start with an alphanumeric character and can contain a maximum of 128 characters. The characters can be alphanumeric characters, underscores (_), or hyphens (-). Template names are case sensitive.<br/>PageSize:  The maximum number of items to include in each page of a paginated response. This parameter is not supported for application, campaign, and journey metrics.<br/>NextToken:  The  string that specifies which page of results to return in a paginated response. This parameter is not supported for application, campaign, and journey metrics.<br/>
        :return: TemplateVersionsResponse:  Provides information about all the versions of a specific message template.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequestID</i> The unique identifier for the request to retrieve information about all the versions of the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NextToken</i> The string to use in a subsequent request to get the next page of results in a paginated response. This value is null if there are no additional pages.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> The message that's returned from the API for the request to retrieve information about all the versions of the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Item</i> An array of responses, one for each version of the message template.<br/>        """
        pass

    def list_templates(self, NextToken: str=None, PageSize: str=None, Prefix: str=None, TemplateType: str=None) -> ListTemplatesResponse:
        r"""Retrieves information about all the message templates that are associated with your Amazon Pinpoint account.

        :param self:
        :param TemplateType:  The type of message template to include in the results. Valid values are: EMAIL, PUSH, SMS, and VOICE. To include all types of templates in the results, don't include this parameter in your request.<br/>Prefix:  The substring to match in the names of the message templates to include in the results. If you specify this value, Amazon Pinpoint returns only those templates whose names begin with the value that you specify.<br/>PageSize:  The maximum number of items to include in each page of a paginated response. This parameter is not supported for application, campaign, and journey metrics.<br/>NextToken:  The  string that specifies which page of results to return in a paginated response. This parameter is not supported for application, campaign, and journey metrics.<br/>
        :return: TemplatesResponse:  Provides information about all the message templates that are associated with your Amazon Pinpoint account.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NextToken</i> The string to use in a subsequent request to get the next page of results in a paginated response. This value is null if there are no additional pages.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Item</i> An array of responses, one for each message template that's associated with your Amazon Pinpoint account and meets any filter criteria that you specified in the request.<br/>        """
        pass

    def phone_number_validate(self, NumberValidateRequest: NumberValidateRequest) -> PhoneNumberValidateResponse:
        r"""Retrieves information about a phone number.

        :param self:
        :param NumberValidateRequest:  Specifies a phone number to validate and retrieve information about.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PhoneNumber</i> The phone number to retrieve information about. The phone number that you provide should include a valid numeric country code. Otherwise, the operation might result in an error.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsoCountryCode</i> The two-character code, in ISO 3166-1 alpha-2 format, for the country or region where the phone number was originally registered.<br/>
        :return: NumberValidateResponse:  Provides information about a phone number.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ZipCode</i> The postal or ZIP code for the location where the phone number was originally registered.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Timezone</i> The time zone for the location where the phone number was originally registered.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PhoneTypeCode</i> The phone type, represented by an integer. Valid values are: 0 (mobile), 1 (landline), 2 (VoIP), 3 (invalid), 4 (other), and 5 (prepaid).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PhoneType</i> The description of the phone type. Valid values are: MOBILE, LANDLINE, VOIP,
                  INVALID, PREPAID, and OTHER.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OriginalPhoneNumber</i> The phone number that was sent in the request body.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OriginalCountryCodeIso2</i> The two-character code, in ISO 3166-1 alpha-2 format, that was sent in the request body.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>County</i> The name of the county where the phone number was originally registered.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CountryCodeNumeric</i> The numeric code for the country or region where the phone number was originally registered.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CountryCodeIso2</i> The two-character code, in ISO 3166-1 alpha-2 format, for the country or region where the phone number was originally registered.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Country</i> The name of the country or region where the phone number was originally registered.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CleansedPhoneNumberNational</i> The cleansed phone number, in the format for the location where the phone number was originally registered.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CleansedPhoneNumberE164</i> The cleansed phone number, in E.164 format, for the location where the phone number was originally registered.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>City</i> The name of the city where the phone number was originally registered.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Carrier</i> The carrier or service provider that the phone number is currently registered with. In some countries and regions, this value may be the carrier or service provider that the phone number was originally registered with.<br/>        """
        pass

    def put_event_stream(self, WriteEventStream: WriteEventStream, ApplicationId: str) -> PutEventStreamResponse:
        r"""Creates a new event stream for an application or updates the settings of an existing event stream for an application.

        :param self:
        :param WriteEventStream:  Specifies the Amazon Resource Name (ARN) of an event stream to publish events to and the AWS Identity and Access Management (IAM) role to use when publishing those events.:<br/>ApplicationId:  The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The AWS Identity and Access Management (IAM) role that authorizes Amazon Pinpoint to publish event data to the stream in your AWS account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DestinationStreamArn</i> The Amazon Resource Name (ARN) of the Amazon Kinesis data stream or Amazon Kinesis Data Firehose delivery stream that you want to publish event data to. For a Kinesis data stream, the ARN format is: arn:aws:kinesis:<replaceable>region</replaceable>:<replaceable>account-id</replaceable>:stream/<replaceable>stream_name</replaceable>
                For a Kinesis Data Firehose delivery stream, the ARN format is: arn:aws:firehose:<replaceable>region</replaceable>:<replaceable>account-id</replaceable>:deliverystream/<replaceable>stream_name</replaceable>
               <br/>
        :return: EventStream:  Specifies settings for publishing event data to an Amazon Kinesis data stream or an Amazon Kinesis Data Firehose delivery stream.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The AWS Identity and Access Management (IAM) role that authorizes Amazon Pinpoint to publish event data to the stream in your AWS account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdatedBy</i> The IAM user who last modified the event stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> The date, in ISO 8601 format, when the event stream was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExternalId</i> (Deprecated) Your AWS account ID, which you assigned to an external ID key in an IAM trust policy. Amazon Pinpoint previously used this value to assume an IAM role when publishing event data, but we removed this requirement. We don't recommend use of external IDs for IAM roles that are assumed by Amazon Pinpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DestinationStreamArn</i> The Amazon Resource Name (ARN) of the Amazon Kinesis data stream or Amazon Kinesis Data Firehose delivery stream to publish event data to. For a Kinesis data stream, the ARN format is: arn:aws:kinesis:<replaceable>region</replaceable>:<replaceable>account-id</replaceable>:stream/<replaceable>stream_name</replaceable>
                For a Kinesis Data Firehose delivery stream, the ARN format is: arn:aws:firehose:<replaceable>region</replaceable>:<replaceable>account-id</replaceable>:deliverystream/<replaceable>stream_name</replaceable>
               <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationId</i> The unique identifier for the application to publish event data for.<br/>        """
        pass

    def put_events(self, EventsRequest: EventsRequest, ApplicationId: str) -> PutEventsResponse:
        r"""Creates a new event to record for endpoints, or creates or updates endpoint data that existing events are associated with.

        :param self:
        :param EventsRequest:  Specifies a batch of events to process.:<br/>ApplicationId:  The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BatchItem</i> The batch of events to process. For each item in a batch, the endpoint ID acts as a key that has an EventsBatch object as its value.<br/>
        :return: EventsResponse:  Provides information about endpoints and the events that they're associated with.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Results</i> A map that contains a multipart response for each endpoint. For each item in this object, the endpoint ID is the key and the item response is the value. If no item response exists, the value can also be one of the following: 202, the request was processed successfully; or 400, the payload wasn't valid or required fields were missing.<br/>        """
        pass

    def remove_attributes(self, UpdateAttributesRequest: UpdateAttributesRequest, AttributeType: str, ApplicationId: str) -> RemoveAttributesResponse:
        r"""Removes one or more attributes, of the same attribute type, from all the endpoints that are associated with an application.

        :param self:
        :param UpdateAttributesRequest:  Specifies one or more attributes to remove from all the endpoints that are associated with an application.:<br/>AttributeType:   The type of attribute or attributes to remove. Valid values are: <ul><li>endpoint-custom-attributes - Custom attributes that describe endpoints, such as the date when an associated user opted in or out of receiving communications from you through a specific type of channel.</li> <li>endpoint-metric-attributes - Custom metrics that your app reports to Amazon Pinpoint for endpoints, such as the number of app sessions or the number of items left in a cart.</li> <li>endpoint-user-attributes - Custom attributes that describe users, such as first name, last name, and age.</li></ul><br/>ApplicationId:  The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Blacklist</i> An array of the attributes to remove from all the endpoints that are associated with the application. The array can specify the complete, exact name of each attribute to remove or it can specify a glob pattern that an attribute name must match in order for the attribute to be removed.<br/>
        :return: AttributesResource:  Provides information about the type and the names of attributes that were removed from all the endpoints that are associated with an application.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Attributes</i> An array that specifies the names of the attributes that were removed from the endpoints.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AttributeType</i> The type of attribute or attributes that were removed from the endpoints. Valid values are: <ul><li>endpoint-custom-attributes - Custom attributes that describe endpoints.</li> <li>endpoint-metric-attributes - Custom metrics that your app reports to Amazon Pinpoint for endpoints.</li> <li>endpoint-user-attributes - Custom attributes that describe users.</li></ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationId</i> The unique identifier for the application.<br/>        """
        pass

    def send_messages(self, MessageRequest: MessageRequest, ApplicationId: str) -> SendMessagesResponse:
        r"""Creates and sends a direct message.

        :param self:
        :param MessageRequest:  Specifies the configuration and other settings for a message.:<br/>ApplicationId:  The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TraceId</i> The unique identifier for tracing the message. This identifier is visible to message recipients.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TemplateConfiguration</i> The message template to use for the message.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TemplateConfiguration</b>: The message template to use for the message.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MessageConfiguration</i> The settings and content for the default message and any default messages that you defined for specific channels.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>MessageConfiguration</b>: The settings and content for the default message and any default messages that you defined for specific channels.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoints</i> A map of key-value pairs, where each key is an endpoint ID and each value is an <a href="https://docs.aws.amazon.com/pinpoint/latest/apireference/apps-application-id-messages.html#apps-application-id-messages-model-endpointsendconfiguration">EndpointSendConfiguration</a> object. You can use an <a href="https://docs.aws.amazon.com/pinpoint/latest/apireference/apps-application-id-messages.html#apps-application-id-messages-model-endpointsendconfiguration">EndpointSendConfiguration</a> object to tailor the message for an endpoint by specifying settings such as content overrides and message variables.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Context</i> A map of custom attributes to attach to the message. For a push notification, this payload is added to the data.pinpoint object. For an email or text message, this payload is added to email/SMS delivery receipt event attributes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Addresses</i> A map of key-value pairs, where each key is an address and each value is an <a href="https://docs.aws.amazon.com/pinpoint/latest/apireference/apps-application-id-messages.html#apps-application-id-messages-model-addressconfiguration">AddressConfiguration</a> object. An address can be a push notification token, a phone number, or an email address. You can use an <a href="https://docs.aws.amazon.com/pinpoint/latest/apireference/apps-application-id-messages.html#apps-application-id-messages-model-addressconfiguration">AddressConfiguration</a> object to tailor the message for an address by specifying settings such as content overrides and message variables.<br/>The default push notification message for the ADM (Amazon Device Messaging) channel. This message overrides the default push notification message (DefaultPushNotificationMessage).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ADMMessage</b>: The default push notification message for the ADM (Amazon Device Messaging) channel. This message overrides the default push notification message (DefaultPushNotificationMessage).The email template to use for the message.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EmailTemplate</b>: The email template to use for the message.
        :return: MessageResponse:  Provides information about the results of a request to send a message to an endpoint address.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Result</i> A map that contains a multipart response for each address (email address, phone number, or push notification token) that the message was sent to. In the map, the address is the key and the result is the value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequestId</i> The identifier for the original request that the message was delivered for.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointResult</i> A map that contains a multipart response for each address that the message was sent to. In the map, the endpoint ID is the key and the result is the value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationId</i> The unique identifier for the application that was used to send the message.<br/>        """
        pass

    def send_users_messages(self, SendUsersMessageRequest: SendUsersMessageRequest, ApplicationId: str) -> SendUsersMessagesResponse:
        r"""Creates and sends a message to a list of users.

        :param self:
        :param SendUsersMessageRequest:  Specifies the configuration and other settings for a message to send to all the endpoints that are associated with a list of users.:<br/>ApplicationId:  The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Users</i> A map that associates user IDs with <a href="https://docs.aws.amazon.com/pinpoint/latest/apireference/apps-application-id-messages.html#apps-application-id-messages-model-endpointsendconfiguration">EndpointSendConfiguration</a> objects. You can use an <a href="https://docs.aws.amazon.com/pinpoint/latest/apireference/apps-application-id-messages.html#apps-application-id-messages-model-endpointsendconfiguration">EndpointSendConfiguration</a> object to tailor the message for a user by specifying settings such as content overrides and message variables.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TraceId</i> The unique identifier for tracing the message. This identifier is visible to message recipients.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TemplateConfiguration</i> The message template to use for the message.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TemplateConfiguration</b>: The message template to use for the message.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MessageConfiguration</i> The settings and content for the default message and any default messages that you defined for specific channels.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>MessageConfiguration</b>: The settings and content for the default message and any default messages that you defined for specific channels.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Context</i> A map of custom attribute-value pairs. For a push notification, Amazon Pinpoint adds these attributes to the data.pinpoint object in the body of the notification payload. Amazon Pinpoint also provides these attributes in the events that it generates for users-messages deliveries.<br/>The default push notification message for the ADM (Amazon Device Messaging) channel. This message overrides the default push notification message (DefaultPushNotificationMessage).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ADMMessage</b>: The default push notification message for the ADM (Amazon Device Messaging) channel. This message overrides the default push notification message (DefaultPushNotificationMessage).The email template to use for the message.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EmailTemplate</b>: The email template to use for the message.
        :return: SendUsersMessageResponse:  Provides information about which users and endpoints a message was sent to.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Result</i> An object that indicates which endpoints the message was sent to, for each user. The object lists user IDs and, for each user ID, provides the endpoint IDs that the message was sent to. For each endpoint ID, it provides an EndpointMessageResult object.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequestId</i> The unique identifier that was assigned to the message request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationId</i> The unique identifier for the application that was used to send the message.<br/>        """
        pass

    def tag_resource(self, TagsModel: TagsModel, ResourceArn: str):
        r"""Adds one or more tags (keys and values) to an application, campaign, message template, or segment.

        :param self:
        :param TagsModel:  Specifies the tags (keys and values) for an application, campaign, message template, or segment.:<br/>ResourceArn:  The Amazon Resource Name (ARN) of the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> A string-to-string map of key-value pairs that defines the tags for an application, campaign, message template, or segment. Each of these resources can have a maximum of 50 tags. Each tag consists of a required tag key and an associated tag value. The maximum length of a tag key is 128 characters. The maximum length of a tag value is 256 characters.<br/>
        :return:         """
        pass

    def untag_resource(self, TagKeys: List[__string], ResourceArn: str):
        r"""Removes one or more tags (keys and values) from an application, campaign, message template, or segment.

        :param self:
        :param TagKeys:  The key of the tag to remove from the resource. To remove multiple tags, append the tagKeys parameter and argument for each additional tag to remove, separated by an ampersand (&amp;).<br/>ResourceArn:  The Amazon Resource Name (ARN) of the resource.<br/>
        :return:         """
        pass

    def update_adm_channel(self, ApplicationId: str, ADMChannelRequest: ADMChannelRequest) -> UpdateAdmChannelResponse:
        r"""Enables the ADM channel for an application or updates the status and settings of the ADM channel for an application.

        :param self:
        :param ApplicationId:  The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>ADMChannelRequest:  Specifies the status and settings of the ADM (Amazon Device Messaging) channel for an application.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specifies whether to enable the ADM channel for the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClientSecret</i> The Client Secret that you received from Amazon to send messages by using ADM.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClientId</i> The Client ID that you received from Amazon to send messages by using ADM.<br/>
        :return: ADMChannelResponse:  Provides information about the status and settings of the ADM (Amazon Device Messaging) channel for an application.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The current version of the ADM channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Platform</i> The type of messaging or notification platform for the channel. For the ADM channel, this value is ADM.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> The date and time when the ADM channel was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedBy</i> The user who last modified the ADM channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsArchived</i> Specifies whether the ADM channel is archived.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> (Deprecated) An identifier for the ADM channel. This property is retained only for backward compatibility.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HasCredential</i> (Not used) This property is retained only for backward compatibility.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specifies whether the ADM channel is enabled for the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date and time when the ADM channel was enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationId</i> The unique identifier for the application that the ADM channel applies to.<br/>        """
        pass

    def update_apns_channel(self, ApplicationId: str, APNSChannelRequest: APNSChannelRequest) -> UpdateApnsChannelResponse:
        r"""Enables the APNs channel for an application or updates the status and settings of the APNs channel for an application.

        :param self:
        :param ApplicationId:  The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>APNSChannelRequest:  Specifies the status and settings of the APNs (Apple Push Notification service) channel for an application.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TokenKeyId</i> The key identifier that's assigned to your APNs signing key, if you want Amazon Pinpoint to communicate with APNs by using APNs tokens.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TokenKey</i> The authentication key to use for APNs tokens.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TeamId</i> The identifier that's assigned to your Apple developer account team. This identifier is used for APNs tokens.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PrivateKey</i> The private key for the APNs client certificate that you want Amazon Pinpoint to use to communicate with APNs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specifies whether to enable the APNs channel for the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultAuthenticationMethod</i> The default authentication method that you want Amazon Pinpoint to use when authenticating with APNs, key or certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Certificate</i> The APNs client certificate that you received from Apple, if you want Amazon Pinpoint to communicate with APNs by using an APNs certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BundleId</i> The bundle identifier that's assigned to your iOS app. This identifier is used for APNs tokens.<br/>
        :return: APNSChannelResponse:  Provides information about the status and settings of the APNs (Apple Push Notification service) channel for an application.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The current version of the APNs channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Platform</i>  The type of messaging or notification platform for the channel. For the APNs channel, this value is APNS.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> The date and time when the APNs channel was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedBy</i> The user who last modified the APNs channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsArchived</i> Specifies whether the APNs channel is archived.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> (Deprecated) An identifier for the APNs channel. This property is retained only for backward compatibility.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HasTokenKey</i> Specifies whether the APNs channel is configured to communicate with APNs by using APNs tokens. To provide an authentication key for APNs tokens, set the TokenKey property of the channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HasCredential</i> (Not used) This property is retained only for backward compatibility.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specifies whether the APNs channel is enabled for the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultAuthenticationMethod</i> The default authentication method that Amazon Pinpoint uses to authenticate with APNs for this channel, key or certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date and time when the APNs channel was enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationId</i> The unique identifier for the application that the APNs channel applies to.<br/>        """
        pass

    def update_apns_sandbox_channel(self, ApplicationId: str, APNSSandboxChannelRequest: APNSSandboxChannelRequest) -> UpdateApnsSandboxChannelResponse:
        r"""Enables the APNs sandbox channel for an application or updates the status and settings of the APNs sandbox channel for an application.

        :param self:
        :param ApplicationId:  The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>APNSSandboxChannelRequest:  Specifies the status and settings of the APNs (Apple Push Notification service) sandbox channel for an application.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TokenKeyId</i> The key identifier that's assigned to your APNs signing key, if you want Amazon Pinpoint to communicate with the APNs sandbox environment by using APNs tokens.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TokenKey</i> The authentication key to use for APNs tokens.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TeamId</i> The identifier that's assigned to your Apple developer account team. This identifier is used for APNs tokens.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PrivateKey</i> The private key for the APNs client certificate that you want Amazon Pinpoint to use to communicate with the APNs sandbox environment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specifies whether to enable the APNs sandbox channel for the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultAuthenticationMethod</i> The default authentication method that you want Amazon Pinpoint to use when authenticating with the APNs sandbox environment, key or certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Certificate</i> The APNs client certificate that you received from Apple, if you want Amazon Pinpoint to communicate with the APNs sandbox environment by using an APNs certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BundleId</i> The bundle identifier that's assigned to your iOS app. This identifier is used for APNs tokens.<br/>
        :return: APNSSandboxChannelResponse:  Provides information about the status and settings of the APNs (Apple Push Notification service) sandbox channel for an application.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The current version of the APNs sandbox channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Platform</i> The type of messaging or notification platform for the channel. For the APNs sandbox channel, this value is APNS_SANDBOX.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> The date and time when the APNs sandbox channel was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedBy</i> The user who last modified the APNs sandbox channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsArchived</i> Specifies whether the APNs sandbox channel is archived.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> (Deprecated) An identifier for the APNs sandbox channel. This property is retained only for backward compatibility.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HasTokenKey</i> Specifies whether the APNs sandbox channel is configured to communicate with APNs by using APNs tokens. To provide an authentication key for APNs tokens, set the TokenKey property of the channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HasCredential</i> (Not used) This property is retained only for backward compatibility.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specifies whether the APNs sandbox channel is enabled for the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultAuthenticationMethod</i> The default authentication method that Amazon Pinpoint uses to authenticate with the APNs sandbox environment for this channel, key or certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date and time when the APNs sandbox channel was enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationId</i> The unique identifier for the application that the APNs sandbox channel applies to.<br/>        """
        pass

    def update_apns_voip_channel(self, ApplicationId: str, APNSVoipChannelRequest: APNSVoipChannelRequest) -> UpdateApnsVoipChannelResponse:
        r"""Enables the APNs VoIP channel for an application or updates the status and settings of the APNs VoIP channel for an application.

        :param self:
        :param ApplicationId:  The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>APNSVoipChannelRequest:  Specifies the status and settings of the APNs (Apple Push Notification service) VoIP channel for an application.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TokenKeyId</i> The key identifier that's assigned to your APNs signing key, if you want Amazon Pinpoint to communicate with APNs by using APNs tokens.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TokenKey</i> The authentication key to use for APNs tokens.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TeamId</i> The identifier that's assigned to your Apple developer account team. This identifier is used for APNs tokens.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PrivateKey</i> The private key for the APNs client certificate that you want Amazon Pinpoint to use to communicate with APNs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specifies whether to enable the APNs VoIP channel for the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultAuthenticationMethod</i> The default authentication method that you want Amazon Pinpoint to use when authenticating with APNs, key or certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Certificate</i> The APNs client certificate that you received from Apple, if you want Amazon Pinpoint to communicate with APNs by using an APNs certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BundleId</i> The bundle identifier that's assigned to your iOS app. This identifier is used for APNs tokens.<br/>
        :return: APNSVoipChannelResponse:  Provides information about the status and settings of the APNs (Apple Push Notification service) VoIP channel for an application.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The current version of the APNs VoIP channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Platform</i> The type of messaging or notification platform for the channel. For the APNs VoIP channel, this value is APNS_VOIP.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> The date and time when the APNs VoIP channel was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedBy</i> The user who last modified the APNs VoIP channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsArchived</i> Specifies whether the APNs VoIP channel is archived.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> (Deprecated) An identifier for the APNs VoIP channel. This property is retained only for backward compatibility.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HasTokenKey</i> Specifies whether the APNs VoIP channel is configured to communicate with APNs by using APNs tokens. To provide an authentication key for APNs tokens, set the TokenKey property of the channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HasCredential</i> (Not used) This property is retained only for backward compatibility.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specifies whether the APNs VoIP channel is enabled for the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultAuthenticationMethod</i> The default authentication method that Amazon Pinpoint uses to authenticate with APNs for this channel, key or certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date and time when the APNs VoIP channel was enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationId</i> The unique identifier for the application that the APNs VoIP channel applies to.<br/>        """
        pass

    def update_apns_voip_sandbox_channel(self, ApplicationId: str, APNSVoipSandboxChannelRequest: APNSVoipSandboxChannelRequest) -> UpdateApnsVoipSandboxChannelResponse:
        r"""Enables the APNs VoIP sandbox channel for an application or updates the status and settings of the APNs VoIP sandbox channel for an application.

        :param self:
        :param ApplicationId:  The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>APNSVoipSandboxChannelRequest:  Specifies the status and settings of the APNs (Apple Push Notification service) VoIP sandbox channel for an application.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TokenKeyId</i> The key identifier that's assigned to your APNs signing key, if you want Amazon Pinpoint to communicate with the APNs sandbox environment by using APNs tokens.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TokenKey</i> The authentication key to use for APNs tokens.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TeamId</i> The identifier that's assigned to your Apple developer account team. This identifier is used for APNs tokens.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PrivateKey</i> The private key for the APNs client certificate that you want Amazon Pinpoint to use to communicate with the APNs sandbox environment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specifies whether the APNs VoIP sandbox channel is enabled for the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultAuthenticationMethod</i> The default authentication method that you want Amazon Pinpoint to use when authenticating with the APNs sandbox environment for this channel, key or certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Certificate</i> The APNs client certificate that you received from Apple, if you want Amazon Pinpoint to communicate with the APNs sandbox environment by using an APNs certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BundleId</i> The bundle identifier that's assigned to your iOS app. This identifier is used for APNs tokens.<br/>
        :return: APNSVoipSandboxChannelResponse:  Provides information about the status and settings of the APNs (Apple Push Notification service) VoIP sandbox channel for an application.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The current version of the APNs VoIP sandbox channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Platform</i> The type of messaging or notification platform for the channel. For the APNs VoIP sandbox channel, this value is APNS_VOIP_SANDBOX.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> The date and time when the APNs VoIP sandbox channel was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedBy</i> The user who last modified the APNs VoIP sandbox channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsArchived</i> Specifies whether the APNs VoIP sandbox channel is archived.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> (Deprecated) An identifier for the APNs VoIP sandbox channel. This property is retained only for backward compatibility.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HasTokenKey</i> Specifies whether the APNs VoIP sandbox channel is configured to communicate with APNs by using APNs tokens. To provide an authentication key for APNs tokens, set the TokenKey property of the channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HasCredential</i> (Not used) This property is retained only for backward compatibility.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specifies whether the APNs VoIP sandbox channel is enabled for the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultAuthenticationMethod</i> The default authentication method that Amazon Pinpoint uses to authenticate with the APNs sandbox environment for this channel, key or certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date and time when the APNs VoIP sandbox channel was enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationId</i> The unique identifier for the application that the APNs VoIP sandbox channel applies to.<br/>        """
        pass

    def update_application_settings(self, WriteApplicationSettingsRequest: WriteApplicationSettingsRequest, ApplicationId: str) -> UpdateApplicationSettingsResponse:
        r"""Updates the settings for an application.

        :param self:
        :param WriteApplicationSettingsRequest:  Specifies the default settings for an application.:<br/>ApplicationId:  The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>QuietTime</i> The default quiet time for campaigns in the application. Quiet time is a specific time range when messages aren't sent to endpoints, if all the following conditions are met: <ul><li>The EndpointDemographic.Timezone property of the endpoint is set to a valid value.</li> <li>The current time in the endpoint's time zone is later than or equal to the time specified by the QuietTime.Start property for the application (or a campaign or journey that has custom quiet time settings).</li> <li>The current time in the endpoint's time zone is earlier than or equal to the time specified by the QuietTime.End property for the application (or a campaign or journey that has custom quiet time settings).</li></ul> If any of the preceding conditions isn't met, the endpoint will receive messages from a campaign or journey, even if quiet time is enabled. To override the default quiet time settings for a specific campaign or journey, use the <link  linkend="apps-application-id-campaigns-campaign-id">Campaign</link> resource or the <link  linkend="apps-application-id-journeys-journey-id">Journey</link> resource to define a custom quiet time for the campaign or journey.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>QuietTime</b>: The default quiet time for campaigns in the application. Quiet time is a specific time range when messages aren't sent to endpoints, if all the following conditions are met: <ul><li>The EndpointDemographic.Timezone property of the endpoint is set to a valid value.</li> <li>The current time in the endpoint's time zone is later than or equal to the time specified by the QuietTime.Start property for the application (or a campaign or journey that has custom quiet time settings).</li> <li>The current time in the endpoint's time zone is earlier than or equal to the time specified by the QuietTime.End property for the application (or a campaign or journey that has custom quiet time settings).</li></ul> If any of the preceding conditions isn't met, the endpoint will receive messages from a campaign or journey, even if quiet time is enabled. To override the default quiet time settings for a specific campaign or journey, use the <link  linkend="apps-application-id-campaigns-campaign-id">Campaign</link> resource or the <link  linkend="apps-application-id-journeys-journey-id">Journey</link> resource to define a custom quiet time for the campaign or journey.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Limits</i> The default sending limits for campaigns in the application. To override these limits and define custom limits for a specific campaign or journey, use the <link  linkend="apps-application-id-campaigns-campaign-id">Campaign</link> resource or the <link  linkend="apps-application-id-journeys-journey-id">Journey</link> resource, respectively.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Limits</b>: The default sending limits for campaigns in the application. To override these limits and define custom limits for a specific campaign or journey, use the <link  linkend="apps-application-id-campaigns-campaign-id">Campaign</link> resource or the <link  linkend="apps-application-id-journeys-journey-id">Journey</link> resource, respectively.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EventTaggingEnabled</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudWatchMetricsEnabled</i> Specifies whether to enable application-related alarms in Amazon CloudWatch.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CampaignHook</i> The settings for the AWS Lambda function to invoke by default as a code hook for campaigns in the application. You can use this hook to customize segments that are used by campaigns in the application. To override these settings and define custom settings for a specific campaign, use the CampaignHook object of the <link  linkend="apps-application-id-campaigns-campaign-id">Campaign</link> resource.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CampaignHook</b>: The settings for the AWS Lambda function to invoke by default as a code hook for campaigns in the application. You can use this hook to customize segments that are used by campaigns in the application. To override these settings and define custom settings for a specific campaign, use the CampaignHook object of the <link  linkend="apps-application-id-campaigns-campaign-id">Campaign</link> resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>WebUrl</i>  The web URL that Amazon Pinpoint calls to invoke the AWS Lambda function over HTTPS.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Mode</i> The mode that Amazon Pinpoint uses to invoke the AWS Lambda function. Possible values are: <ul><li>FILTER - Invoke the function to customize the segment that's used by a campaign.</li> <li>DELIVERY - (Deprecated) Previously, invoked the function to send a campaign through a custom channel. This functionality is not supported anymore. To send a campaign through a custom channel, use the CustomDeliveryConfiguration and CampaignCustomMessage objects of the campaign.</li></ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LambdaFunctionName</i> The name or Amazon Resource Name (ARN) of the AWS Lambda function that Amazon Pinpoint invokes to customize a segment for a campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Total</i> The maximum number of messages that a campaign can send to a single endpoint during the course of the campaign. If a campaign recurs, this setting applies to all runs of the campaign. The maximum value is 100.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MessagesPerSecond</i> The maximum number of messages that a campaign can send each second. For an application, this value specifies the default limit for the number of messages that campaigns can send each second. The minimum value is 50. The maximum value is 20,000.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaximumDuration</i> The maximum amount of time, in seconds, that a campaign can attempt to deliver a message after the scheduled start time for the campaign. The minimum value is 60 seconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Daily</i> The maximum number of messages that a campaign can send to a single endpoint during a 24-hour period. For an application, this value specifies the default limit for the number of messages that campaigns and journeys can send to a single endpoint during a 24-hour period. The maximum value is 100.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Start</i> The specific time when quiet time begins. This value has to use 24-hour notation and be in HH:MM format, where HH is the hour (with a leading zero, if applicable) and MM is the minutes. For example, use 02:30 to represent 2:30 AM, or 14:30 to represent 2:30 PM.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>End</i> The specific time when quiet time ends. This value has to use 24-hour notation and be in HH:MM format, where HH is the hour (with a leading zero, if applicable) and MM is the minutes. For example, use 02:30 to represent 2:30 AM, or 14:30 to represent 2:30 PM.<br/>
        :return: ApplicationSettingsResource:  Provides information about an application, including the default settings for an application.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>QuietTime</i> The default quiet time for campaigns in the application. Quiet time is a specific time range when messages aren't sent to endpoints, if all the following conditions are met: <ul><li>The EndpointDemographic.Timezone property of the endpoint is set to a valid value.</li> <li>The current time in the endpoint's time zone is later than or equal to the time specified by the QuietTime.Start property for the application (or a campaign or journey that has custom quiet time settings).</li> <li>The current time in the endpoint's time zone is earlier than or equal to the time specified by the QuietTime.End property for the application (or a campaign or journey that has custom quiet time settings).</li></ul> If any of the preceding conditions isn't met, the endpoint will receive messages from a campaign or journey, even if quiet time is enabled.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>QuietTime</b>: The default quiet time for campaigns in the application. Quiet time is a specific time range when messages aren't sent to endpoints, if all the following conditions are met: <ul><li>The EndpointDemographic.Timezone property of the endpoint is set to a valid value.</li> <li>The current time in the endpoint's time zone is later than or equal to the time specified by the QuietTime.Start property for the application (or a campaign or journey that has custom quiet time settings).</li> <li>The current time in the endpoint's time zone is earlier than or equal to the time specified by the QuietTime.End property for the application (or a campaign or journey that has custom quiet time settings).</li></ul> If any of the preceding conditions isn't met, the endpoint will receive messages from a campaign or journey, even if quiet time is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Limits</i> The default sending limits for campaigns in the application.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Limits</b>: The default sending limits for campaigns in the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> The date and time, in ISO 8601 format, when the application's settings were last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CampaignHook</i> The settings for the AWS Lambda function to invoke by default as a code hook for campaigns in the application. You can use this hook to customize segments that are used by campaigns in the application.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CampaignHook</b>: The settings for the AWS Lambda function to invoke by default as a code hook for campaigns in the application. You can use this hook to customize segments that are used by campaigns in the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationId</i> The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>WebUrl</i>  The web URL that Amazon Pinpoint calls to invoke the AWS Lambda function over HTTPS.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Mode</i> The mode that Amazon Pinpoint uses to invoke the AWS Lambda function. Possible values are: <ul><li>FILTER - Invoke the function to customize the segment that's used by a campaign.</li> <li>DELIVERY - (Deprecated) Previously, invoked the function to send a campaign through a custom channel. This functionality is not supported anymore. To send a campaign through a custom channel, use the CustomDeliveryConfiguration and CampaignCustomMessage objects of the campaign.</li></ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LambdaFunctionName</i> The name or Amazon Resource Name (ARN) of the AWS Lambda function that Amazon Pinpoint invokes to customize a segment for a campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Total</i> The maximum number of messages that a campaign can send to a single endpoint during the course of the campaign. If a campaign recurs, this setting applies to all runs of the campaign. The maximum value is 100.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MessagesPerSecond</i> The maximum number of messages that a campaign can send each second. For an application, this value specifies the default limit for the number of messages that campaigns can send each second. The minimum value is 50. The maximum value is 20,000.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaximumDuration</i> The maximum amount of time, in seconds, that a campaign can attempt to deliver a message after the scheduled start time for the campaign. The minimum value is 60 seconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Daily</i> The maximum number of messages that a campaign can send to a single endpoint during a 24-hour period. For an application, this value specifies the default limit for the number of messages that campaigns and journeys can send to a single endpoint during a 24-hour period. The maximum value is 100.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Start</i> The specific time when quiet time begins. This value has to use 24-hour notation and be in HH:MM format, where HH is the hour (with a leading zero, if applicable) and MM is the minutes. For example, use 02:30 to represent 2:30 AM, or 14:30 to represent 2:30 PM.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>End</i> The specific time when quiet time ends. This value has to use 24-hour notation and be in HH:MM format, where HH is the hour (with a leading zero, if applicable) and MM is the minutes. For example, use 02:30 to represent 2:30 AM, or 14:30 to represent 2:30 PM.<br/>        """
        pass

    def update_baidu_channel(self, BaiduChannelRequest: BaiduChannelRequest, ApplicationId: str) -> UpdateBaiduChannelResponse:
        r"""Enables the Baidu channel for an application or updates the status and settings of the Baidu channel for an application.

        :param self:
        :param BaiduChannelRequest:  Specifies the status and settings of the Baidu (Baidu Cloud Push) channel for an application.:<br/>ApplicationId:  The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretKey</i> The secret key that you received from the Baidu Cloud Push service to communicate with the service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specifies whether to enable the Baidu channel for the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApiKey</i> The API key that you received from the Baidu Cloud Push service to communicate with the service.<br/>
        :return: BaiduChannelResponse:  Provides information about the status and settings of the Baidu (Baidu Cloud Push) channel for an application.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The current version of the Baidu channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Platform</i> The type of messaging or notification platform for the channel. For the Baidu channel, this value is BAIDU.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> The date and time when the Baidu channel was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedBy</i> The user who last modified the Baidu channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsArchived</i> Specifies whether the Baidu channel is archived.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> (Deprecated) An identifier for the Baidu channel. This property is retained only for backward compatibility.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HasCredential</i> (Not used) This property is retained only for backward compatibility.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specifies whether the Baidu channel is enabled for the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Credential</i> The API key that you received from the Baidu Cloud Push service to communicate with the service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date and time when the Baidu channel was enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationId</i> The unique identifier for the application that the Baidu channel applies to.<br/>        """
        pass

    def update_campaign(self, WriteCampaignRequest: WriteCampaignRequest, CampaignId: str, ApplicationId: str) -> UpdateCampaignResponse:
        r"""Updates the configuration and other settings for a campaign.

        :param self:
        :param WriteCampaignRequest:  Specifies the configuration and other settings for a campaign.:<br/>CampaignId:  The unique identifier for the campaign.<br/>ApplicationId:  The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TreatmentName</i> A custom name of the default treatment for the campaign, if the campaign has multiple treatments. A <i>treatment</i> is a variation of a campaign that's used for A/B testing.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TreatmentDescription</i> A custom description of the default treatment for the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TemplateConfiguration</i> The message template to use for the campaign.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TemplateConfiguration</b>: The message template to use for the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> A string-to-string map of key-value pairs that defines the tags to associate with the campaign. Each tag consists of a required tag key and an associated tag value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentVersion</i> The version of the segment to associate with the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentId</i> The unique identifier for the segment to associate with the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Schedule</i> The schedule settings for the campaign.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Schedule</b>: The schedule settings for the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A custom name for the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MessageConfiguration</i> The message configuration settings for the campaign.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>MessageConfiguration</b>: The message configuration settings for the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Limits</i> The messaging limits for the campaign.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Limits</b>: The messaging limits for the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsPaused</i> Specifies whether to pause the campaign. A paused campaign doesn't run unless you resume it by changing this value to false.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Hook</i> The settings for the AWS Lambda function to invoke as a code hook for the campaign. You can use this hook to customize the segment that's used by the campaign.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Hook</b>: The settings for the AWS Lambda function to invoke as a code hook for the campaign. You can use this hook to customize the segment that's used by the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HoldoutPercent</i> The allocated percentage of users (segment members) who shouldn't receive messages from the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A custom description of the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomDeliveryConfiguration</i> The delivery configuration settings for sending the campaign through a custom channel. This object is required if the MessageConfiguration object for the campaign specifies a CustomMessage object.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CustomDeliveryConfiguration</b>: The delivery configuration settings for sending the campaign through a custom channel. This object is required if the MessageConfiguration object for the campaign specifies a CustomMessage object.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdditionalTreatments</i> An array of requests that defines additional treatments for the campaign, in addition to the default treatment for the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointTypes</i> The types of endpoints to send the campaign or treatment to. Each valid value maps to a type of channel that you can associate with an endpoint by using the ChannelType property of an endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DeliveryUri</i> The destination to send the campaign or treatment to. This value can be one of the following: <ul><li>The name or Amazon Resource Name (ARN) of an AWS Lambda function to invoke to handle delivery of the campaign or treatment.</li> <li>The URL for a web application or service that supports HTTPS and can receive the message. The URL has to be a full URL, including the HTTPS protocol.</li></ul> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>WebUrl</i>  The web URL that Amazon Pinpoint calls to invoke the AWS Lambda function over HTTPS.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Mode</i> The mode that Amazon Pinpoint uses to invoke the AWS Lambda function. Possible values are: <ul><li>FILTER - Invoke the function to customize the segment that's used by a campaign.</li> <li>DELIVERY - (Deprecated) Previously, invoked the function to send a campaign through a custom channel. This functionality is not supported anymore. To send a campaign through a custom channel, use the CustomDeliveryConfiguration and CampaignCustomMessage objects of the campaign.</li></ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LambdaFunctionName</i> The name or Amazon Resource Name (ARN) of the AWS Lambda function that Amazon Pinpoint invokes to customize a segment for a campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Total</i> The maximum number of messages that a campaign can send to a single endpoint during the course of the campaign. If a campaign recurs, this setting applies to all runs of the campaign. The maximum value is 100.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MessagesPerSecond</i> The maximum number of messages that a campaign can send each second. For an application, this value specifies the default limit for the number of messages that campaigns can send each second. The minimum value is 50. The maximum value is 20,000.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaximumDuration</i> The maximum amount of time, in seconds, that a campaign can attempt to deliver a message after the scheduled start time for the campaign. The minimum value is 60 seconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Daily</i> The maximum number of messages that a campaign can send to a single endpoint during a 24-hour period. For an application, this value specifies the default limit for the number of messages that campaigns and journeys can send to a single endpoint during a 24-hour period. The maximum value is 100.<br/>The message that the campaign sends through the ADM (Amazon Device Messaging) channel. If specified, this message overrides the default message.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ADMMessage</b>: The message that the campaign sends through the ADM (Amazon Device Messaging) channel. If specified, this message overrides the default message.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EndTime</i> The scheduled time, in ISO 8601 format, when the campaign ended or will end.<br/>The type of event that causes the campaign to be sent, if the value of the Frequency property is EVENT.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EventFilter</b>: The type of event that causes the campaign to be sent, if the value of the Frequency property is EVENT.The email template to use for the message.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EmailTemplate</b>: The email template to use for the message.
        :return: CampaignResponse:  Provides information about the status, configuration, and other settings for a campaign.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The version number of the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TreatmentName</i> The custom name of the default treatment for the campaign, if the campaign has multiple treatments. A <i>treatment</i> is a variation of a campaign that's used for A/B testing.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TreatmentDescription</i> The custom description of the default treatment for the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TemplateConfiguration</i> The message template that’s used for the campaign.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TemplateConfiguration</b>: The message template that’s used for the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> A string-to-string map of key-value pairs that identifies the tags that are associated with the campaign. Each tag consists of a required tag key and an associated tag value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The current status of the campaign.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>State</b>: The current status of the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentVersion</i> The version number of the segment that's associated with the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentId</i> The unique identifier for the segment that's associated with the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Schedule</i> The schedule settings for the campaign.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Schedule</b>: The schedule settings for the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MessageConfiguration</i> The message configuration settings for the campaign.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>MessageConfiguration</b>: The message configuration settings for the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Limits</i> The messaging limits for the campaign.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Limits</b>: The messaging limits for the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> The date, in ISO 8601 format, when the campaign was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsPaused</i> Specifies whether the campaign is paused. A paused campaign doesn't run unless you resume it by changing this value to false.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The unique identifier for the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Hook</i> The settings for the AWS Lambda function to use as a code hook for the campaign. You can use this hook to customize the segment that's used by the campaign.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Hook</b>: The settings for the AWS Lambda function to use as a code hook for the campaign. You can use this hook to customize the segment that's used by the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HoldoutPercent</i> The allocated percentage of users (segment members) who shouldn't receive messages from the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The custom description of the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultState</i> The current status of the campaign's default treatment. This value exists only for campaigns that have more than one treatment.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DefaultState</b>: The current status of the campaign's default treatment. This value exists only for campaigns that have more than one treatment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomDeliveryConfiguration</i> The delivery configuration settings for sending the campaign through a custom channel.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CustomDeliveryConfiguration</b>: The delivery configuration settings for sending the campaign through a custom channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date, in ISO 8601 format, when the campaign was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationId</i> The unique identifier for the application that the campaign applies to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdditionalTreatments</i> An array of responses, one for each treatment that you defined for the campaign, in addition to the default treatment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointTypes</i> The types of endpoints to send the campaign or treatment to. Each valid value maps to a type of channel that you can associate with an endpoint by using the ChannelType property of an endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DeliveryUri</i> The destination to send the campaign or treatment to. This value can be one of the following: <ul><li>The name or Amazon Resource Name (ARN) of an AWS Lambda function to invoke to handle delivery of the campaign or treatment.</li> <li>The URL for a web application or service that supports HTTPS and can receive the message. The URL has to be a full URL, including the HTTPS protocol.</li></ul> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CampaignStatus</i> The current status of the campaign, or the current status of a treatment that belongs to an A/B test campaign. If a campaign uses A/B testing, the campaign has a status of COMPLETED only if all campaign treatments have a status of COMPLETED. If you delete the segment that's associated with a campaign, the campaign fails and has a status of DELETED.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>WebUrl</i>  The web URL that Amazon Pinpoint calls to invoke the AWS Lambda function over HTTPS.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Mode</i> The mode that Amazon Pinpoint uses to invoke the AWS Lambda function. Possible values are: <ul><li>FILTER - Invoke the function to customize the segment that's used by a campaign.</li> <li>DELIVERY - (Deprecated) Previously, invoked the function to send a campaign through a custom channel. This functionality is not supported anymore. To send a campaign through a custom channel, use the CustomDeliveryConfiguration and CampaignCustomMessage objects of the campaign.</li></ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LambdaFunctionName</i> The name or Amazon Resource Name (ARN) of the AWS Lambda function that Amazon Pinpoint invokes to customize a segment for a campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Total</i> The maximum number of messages that a campaign can send to a single endpoint during the course of the campaign. If a campaign recurs, this setting applies to all runs of the campaign. The maximum value is 100.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MessagesPerSecond</i> The maximum number of messages that a campaign can send each second. For an application, this value specifies the default limit for the number of messages that campaigns can send each second. The minimum value is 50. The maximum value is 20,000.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaximumDuration</i> The maximum amount of time, in seconds, that a campaign can attempt to deliver a message after the scheduled start time for the campaign. The minimum value is 60 seconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Daily</i> The maximum number of messages that a campaign can send to a single endpoint during a 24-hour period. For an application, this value specifies the default limit for the number of messages that campaigns and journeys can send to a single endpoint during a 24-hour period. The maximum value is 100.<br/>The message that the campaign sends through the ADM (Amazon Device Messaging) channel. If specified, this message overrides the default message.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ADMMessage</b>: The message that the campaign sends through the ADM (Amazon Device Messaging) channel. If specified, this message overrides the default message.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EndTime</i> The scheduled time, in ISO 8601 format, when the campaign ended or will end.<br/>The type of event that causes the campaign to be sent, if the value of the Frequency property is EVENT.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EventFilter</b>: The type of event that causes the campaign to be sent, if the value of the Frequency property is EVENT.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CampaignStatus</i> The current status of the campaign, or the current status of a treatment that belongs to an A/B test campaign. If a campaign uses A/B testing, the campaign has a status of COMPLETED only if all campaign treatments have a status of COMPLETED. If you delete the segment that's associated with a campaign, the campaign fails and has a status of DELETED.<br/>The email template to use for the message.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EmailTemplate</b>: The email template to use for the message.        """
        pass

    def update_email_channel(self, EmailChannelRequest: EmailChannelRequest, ApplicationId: str) -> UpdateEmailChannelResponse:
        r"""Enables the email channel for an application or updates the status and settings of the email channel for an application.

        :param self:
        :param EmailChannelRequest:  Specifies the status and settings of the email channel for an application.:<br/>ApplicationId:  The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i>  The ARN of the AWS Identity and Access Management (IAM) role that you want Amazon Pinpoint to use when it submits email-related event data for the channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Identity</i>  The Amazon Resource Name (ARN) of the identity, verified with Amazon Simple Email Service (Amazon SES), that you want to use when you send email through the channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FromAddress</i>  The verified email address that you want to send email from when you send email through the channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specifies whether to enable the email channel for the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConfigurationSet</i> The <a href="https://docs.aws.amazon.com/ses/latest/APIReference/API_ConfigurationSet.html">Amazon SES configuration set</a> that you want to apply to messages that you send through the channel.<br/>
        :return: EmailChannelResponse:  Provides information about the status and settings of the email channel for an application.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The current version of the email channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i>  The ARN of the AWS Identity and Access Management (IAM) role that Amazon Pinpoint uses to submit email-related event data for the channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Platform</i> The type of messaging or notification platform for the channel. For the email channel, this value is EMAIL.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MessagesPerSecond</i> The maximum number of emails that can be sent through the channel each second.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> The date and time, in ISO 8601 format, when the email channel was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedBy</i> The user who last modified the email channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsArchived</i> Specifies whether the email channel is archived.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Identity</i>  The Amazon Resource Name (ARN) of the identity, verified with Amazon Simple Email Service (Amazon SES), that's used when you send email through the channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> (Deprecated) An identifier for the email channel. This property is retained only for backward compatibility.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HasCredential</i> (Not used) This property is retained only for backward compatibility.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FromAddress</i> The verified email address that email is sent from when you send email through the channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specifies whether the email channel is enabled for the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date and time, in ISO 8601 format, when the email channel was enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConfigurationSet</i> The <a href="https://docs.aws.amazon.com/ses/latest/APIReference/API_ConfigurationSet.html">Amazon SES configuration set</a> that's applied to messages that are sent through the channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationId</i> The unique identifier for the application that the email channel applies to.<br/>        """
        pass

    def update_email_template(self, TemplateName: str, EmailTemplateRequest: EmailTemplateRequest, CreateNewVersion: __boolean=None, Version: str=None) -> UpdateEmailTemplateResponse:
        r"""Updates an existing message template for messages that are sent through the email channel.

        :param self:
        :param Version:  The unique identifier for the version of the message template to update, retrieve information about, or delete. To retrieve identifiers and other information for all the versions of a template, use the <link  linkend="templates-template-name-template-type-versions">Template Versions</link> resource. If specified, this value must match the identifier for an existing template version. If specified for an update operation, this value must match the identifier for the latest existing version of the template. This restriction helps ensure that race conditions don't occur. If you don't specify a value for this parameter, Amazon Pinpoint does the following: <ul><li>For a get operation, retrieves information about the active version of the template.</li> <li>For an update operation, saves the updates to (overwrites) the latest existing version of the template, if the create-new-version parameter isn't used or is set to false.</li> <li>For a delete operation, deletes the template, including all versions of the template.</li></ul><br/>TemplateName:  The name of the message template. A template name must start with an alphanumeric character and can contain a maximum of 128 characters. The characters can be alphanumeric characters, underscores (_), or hyphens (-). Template names are case sensitive.<br/>EmailTemplateRequest:  Specifies the content and settings for a message template that can be used in messages that are sent through the email channel.:<br/>CreateNewVersion:  Specifies whether to save the updates as a new version of the message template. Valid values are: true, save the updates as a new version; and, false, save the updates to (overwrite) the latest existing version of the template. If you don't specify a value for this parameter, Amazon Pinpoint saves the updates to (overwrites) the latest existing version of the template. If you specify a value of true for this parameter, don't specify a value for the version parameter. Otherwise, an error will occur.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TextPart</i> The message body, in plain text format, to use in email messages that are based on the message template. We recommend using plain text format for email clients that don't render HTML content and clients that are connected to high-latency networks, such as mobile devices.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TemplateDescription</i> A custom description of the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> A string-to-string map of key-value pairs that defines the tags to associate with the message template. Each tag consists of a required tag key and an associated tag value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Subject</i> The subject line, or title, to use in email messages that are based on the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecommenderId</i> The unique identifier for the recommender model to use for the message template. Amazon Pinpoint uses this value to determine how to retrieve and process data from a recommender model when it sends messages that use the template, if the template contains message variables for recommendation data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HtmlPart</i> The message body, in HTML format, to use in email messages that are based on the message template. We recommend using HTML format for email clients that render HTML content. You can include links, formatted text, and more in an HTML message.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultSubstitutions</i> A JSON object that specifies the default values to use for message variables in the message template. This object is a set of key-value pairs. Each key defines a message variable in the template. The corresponding value defines the default value for that variable. When you create a message that's based on the template, you can override these defaults with message-specific and address-specific variables and values.<br/>
        :return: MessageBody:  Provides information about an API request or response.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequestID</i> The unique identifier for the request or response.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> The message that's returned from the API.<br/>        """
        pass

    def update_endpoint(self, EndpointRequest: EndpointRequest, EndpointId: str, ApplicationId: str) -> UpdateEndpointResponse:
        r"""Creates a new endpoint for an application or updates the settings and attributes of an existing endpoint for an application. You can also use this operation to define custom attributes for an endpoint. If an update includes one or more values for a custom attribute, Amazon Pinpoint replaces (overwrites) any existing values with the new values.

        :param self:
        :param EndpointRequest:  Specifies the channel type and other settings for an endpoint.:<br/>EndpointId:  The unique identifier for the endpoint.<br/>ApplicationId:  The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>User</i> One or more custom attributes that describe the user who's associated with the endpoint.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>User</b>: One or more custom attributes that describe the user who's associated with the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequestId</i> The unique identifier for the most recent request to update the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OptOut</i> Specifies whether the user who's associated with the endpoint has opted out of receiving messages and push notifications from you. Possible values are: ALL, the user has opted out and doesn't want to receive any messages or push notifications; and, NONE, the user hasn't opted out and wants to receive all messages and push notifications.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Metrics</i> One or more custom metrics that your app reports to Amazon Pinpoint for the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Location</i> The geographic information for the endpoint.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Location</b>: The geographic information for the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointStatus</i> Specifies whether to send messages or push notifications to the endpoint. Valid values are: ACTIVE, messages are sent to the endpoint; and, INACTIVE, messages aren’t sent to the endpoint. Amazon Pinpoint automatically sets this value to ACTIVE when you create an endpoint or update an existing endpoint. Amazon Pinpoint automatically sets this value to INACTIVE if you update another endpoint that has the same address specified by the Address property.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EffectiveDate</i> The date and time, in ISO 8601 format, when the endpoint is updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Demographic</i> The demographic information for the endpoint, such as the time zone and platform.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Demographic</b>: The demographic information for the endpoint, such as the time zone and platform.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ChannelType</i> The channel to use when sending messages or push notifications to the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Attributes</i> One or more custom attributes that describe the endpoint by associating a name with an array of values. For example, the value of a custom attribute named Interests might be: ["Science", "Music", "Travel"]. You can use these attributes as filter criteria when you create segments. Attribute names are case sensitive. An attribute name can contain up to 50 characters. An attribute value can contain up to 100 characters. When you define the name of a custom attribute, avoid using the following characters: number sign (#), colon (:), question mark (?), backslash (\), and slash (/). The Amazon Pinpoint console can't display attribute names that contain these characters. This restriction doesn't apply to attribute values.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Address</i> The destination address for messages or push notifications that you send to the endpoint. The address varies by channel. For a push-notification channel, use the token provided by the push notification service, such as an Apple Push Notification service (APNs) device token or a Firebase Cloud Messaging (FCM) registration token. For the SMS channel, use a phone number in E.164 format, such as +12065550100. For the email channel, use an email address.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Timezone</i> The time zone of the endpoint, specified as a tz database name value, such as America/Los_Angeles.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PlatformVersion</i> The platform version of the endpoint device.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Platform</i> The platform of the endpoint device, such as ios.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ModelVersion</i> The model version of the endpoint device.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Model</i> The model name or number of the endpoint device, such as iPhone or SM-G900F.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Make</i> The manufacturer of the endpoint device, such as apple or samsung.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Locale</i> The locale of the endpoint, in the following format: the ISO 639-1 alpha-2 code, followed by an underscore (_), followed by an ISO 3166-1 alpha-2 value.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AppVersion</i> The version of the app that's associated with the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Region</i> The name of the region where the endpoint is located. For locations in the United States, this value is the name of a state.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PostalCode</i> The postal or ZIP code for the area where the endpoint is located.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Longitude</i> The longitude coordinate of the endpoint location, rounded to one decimal place.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Latitude</i> The latitude coordinate of the endpoint location, rounded to one decimal place.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Country</i> The two-character code, in ISO 3166-1 alpha-2 format, for the country or region where the endpoint is located. For example, US for the United States.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>City</i> The name of the city where the endpoint is located.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UserId</i> The unique identifier for the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UserAttributes</i> One or more custom attributes that describe the user by associating a name with an array of values. For example, the value of an attribute named Interests might be: ["Science", "Music", "Travel"]. You can use these attributes as filter criteria when you create segments. Attribute names are case sensitive. An attribute name can contain up to 50 characters. An attribute value can contain up to 100 characters. When you define the name of a custom attribute, avoid using the following characters: number sign (#), colon (:), question mark (?), backslash (\), and slash (/). The Amazon Pinpoint console can't display attribute names that contain these characters. This restriction doesn't apply to attribute values.<br/>
        :return: MessageBody:  Provides information about an API request or response.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequestID</i> The unique identifier for the request or response.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> The message that's returned from the API.<br/>        """
        pass

    def update_endpoints_batch(self, EndpointBatchRequest: EndpointBatchRequest, ApplicationId: str) -> UpdateEndpointsBatchResponse:
        r"""Creates a new batch of endpoints for an application or updates the settings and attributes of a batch of existing endpoints for an application. You can also use this operation to define custom attributes for a batch of endpoints. If an update includes one or more values for a custom attribute, Amazon Pinpoint replaces (overwrites) any existing values with the new values.

        :param self:
        :param EndpointBatchRequest:  Specifies a batch of endpoints to create or update and the settings and attributes to set or change for each endpoint.:<br/>ApplicationId:  The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Item</i> An array that defines the endpoints to create or update and, for each endpoint, the property values to set or change. An array can contain a maximum of 100 items.<br/>
        :return: MessageBody:  Provides information about an API request or response.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequestID</i> The unique identifier for the request or response.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> The message that's returned from the API.<br/>        """
        pass

    def update_gcm_channel(self, GCMChannelRequest: GCMChannelRequest, ApplicationId: str) -> UpdateGcmChannelResponse:
        r"""Enables the GCM channel for an application or updates the status and settings of the GCM channel for an application.

        :param self:
        :param GCMChannelRequest:  Specifies the status and settings of the GCM channel for an application. This channel enables Amazon Pinpoint to send push notifications through the Firebase Cloud Messaging (FCM), formerly Google Cloud Messaging (GCM), service.:<br/>ApplicationId:  The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specifies whether to enable the GCM channel for the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApiKey</i> The Web API Key, also referred to as an <i>API_KEY</i> or <i>server key</i>, that you received from Google to communicate with Google services.<br/>
        :return: GCMChannelResponse:  Provides information about the status and settings of the GCM channel for an application. The GCM channel enables Amazon Pinpoint to send push notifications through the Firebase Cloud Messaging (FCM), formerly Google Cloud Messaging (GCM), service.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The current version of the GCM channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Platform</i> The type of messaging or notification platform for the channel. For the GCM channel, this value is GCM.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> The date and time when the GCM channel was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedBy</i> The user who last modified the GCM channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsArchived</i> Specifies whether the GCM channel is archived.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> (Deprecated) An identifier for the GCM channel. This property is retained only for backward compatibility.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HasCredential</i> (Not used) This property is retained only for backward compatibility.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specifies whether the GCM channel is enabled for the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Credential</i> The Web API Key, also referred to as an <i>API_KEY</i> or <i>server key</i>, that you received from Google to communicate with Google services.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date and time when the GCM channel was enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationId</i> The unique identifier for the application that the GCM channel applies to.<br/>        """
        pass

    def update_journey(self, WriteJourneyRequest: WriteJourneyRequest, JourneyId: str, ApplicationId: str) -> UpdateJourneyResponse:
        r"""Updates the configuration and other settings for a journey.

        :param self:
        :param WriteJourneyRequest:  Specifies the configuration and other settings for a journey.:<br/>JourneyId:  The unique identifier for the journey.<br/>ApplicationId:  The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RefreshOnSegmentUpdate</i> Specifies whether a journey should be refreshed on segment update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WaitForQuietTime</i> Specifies whether endpoints in quiet hours should enter a wait till the end of their quiet hours.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The status of the journey. Valid values are: <ul><li>DRAFT - Saves the journey and doesn't publish it.</li> <li>ACTIVE - Saves and publishes the journey. Depending on the journey's schedule, the journey starts running immediately or at the scheduled start time. If a journey's status is ACTIVE, you can't add, change, or remove activities from it.</li></ul> PAUSED, CANCELLED, COMPLETED, and CLOSED states are not supported in requests to create or update a journey. To cancel, pause, or resume a journey, use the <link  linkend="apps-application-id-journeys-journey-id-state">Journey State</link> resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StartCondition</i> The segment that defines which users are participants in the journey.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StartCondition</b>: The segment that defines which users are participants in the journey.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StartActivity</i> The unique identifier for the first activity in the journey. The identifier for this activity can contain a maximum of 128 characters. The characters must be alphanumeric characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Schedule</i> The schedule settings for the journey.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Schedule</b>: The schedule settings for the journey.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RefreshFrequency</i> The frequency with which Amazon Pinpoint evaluates segment and event data for the journey, as a duration in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>QuietTime</i> The quiet time settings for the journey. Quiet time is a specific time range when a journey doesn't send messages to participants, if all the following conditions are met: <ul><li>The EndpointDemographic.Timezone property of the endpoint for the participant is set to a valid value.</li> <li>The current time in the participant's time zone is later than or equal to the time specified by the QuietTime.Start property for the journey.</li> <li>The current time in the participant's time zone is earlier than or equal to the time specified by the QuietTime.End property for the journey.</li></ul> If any of the preceding conditions isn't met, the participant will receive messages from the journey, even if quiet time is enabled.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>QuietTime</b>: The quiet time settings for the journey. Quiet time is a specific time range when a journey doesn't send messages to participants, if all the following conditions are met: <ul><li>The EndpointDemographic.Timezone property of the endpoint for the participant is set to a valid value.</li> <li>The current time in the participant's time zone is later than or equal to the time specified by the QuietTime.Start property for the journey.</li> <li>The current time in the participant's time zone is earlier than or equal to the time specified by the QuietTime.End property for the journey.</li></ul> If any of the preceding conditions isn't met, the participant will receive messages from the journey, even if quiet time is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the journey. A journey name can contain a maximum of 150 characters. The characters can be alphanumeric characters or symbols, such as underscores (_) or hyphens (-). A journey name can't contain any spaces.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LocalTime</i> Specifies whether the journey's scheduled start and end times use each participant's local time. To base the schedule on each participant's local time, set this value to true.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Limits</i> The messaging and entry limits for the journey.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Limits</b>: The messaging and entry limits for the journey.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> The date, in ISO 8601 format, when the journey was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date, in ISO 8601 format, when the journey was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Activities</i> A map that contains a set of Activity objects, one object for each activity in the journey. For each Activity object, the key is the unique identifier (string) for an activity and the value is the settings for the activity. An activity identifier can contain a maximum of 100 characters. The characters must be alphanumeric characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointReentryInterval</i> Minimum time that must pass before an endpoint can re-enter a given journey. The duration should use an ISO 8601 format, such as PT1H. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MessagesPerSecond</i> The maximum number of messages that the journey can send each second.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointReentryCap</i> The maximum number of times that a participant can enter the journey. The maximum value is 100. To allow participants to enter the journey an unlimited number of times, set this value to 0.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DailyCap</i> The maximum number of messages that the journey can send to a single participant during a 24-hour period. The maximum value is 100.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Start</i> The specific time when quiet time begins. This value has to use 24-hour notation and be in HH:MM format, where HH is the hour (with a leading zero, if applicable) and MM is the minutes. For example, use 02:30 to represent 2:30 AM, or 14:30 to represent 2:30 PM.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>End</i> The specific time when quiet time ends. This value has to use 24-hour notation and be in HH:MM format, where HH is the hour (with a leading zero, if applicable) and MM is the minutes. For example, use 02:30 to represent 2:30 AM, or 14:30 to represent 2:30 PM.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Timezone</i> The starting UTC offset for the journey schedule, if the value of the journey's LocalTime property is true. Valid values are: UTC,
                  UTC+01, UTC+02, UTC+03, UTC+03:30, UTC+04, UTC+04:30, UTC+05, UTC+05:30,
                  UTC+05:45, UTC+06, UTC+06:30, UTC+07, UTC+08, UTC+08:45, UTC+09, UTC+09:30,
                  UTC+10, UTC+10:30, UTC+11, UTC+12, UTC+12:45, UTC+13, UTC+13:45, UTC-02,
                  UTC-02:30, UTC-03, UTC-03:30, UTC-04, UTC-05, UTC-06, UTC-07, UTC-08, UTC-09,
                  UTC-09:30, UTC-10, and UTC-11.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StartTime</i> The scheduled time, in ISO 8601 format, when the journey began or will begin.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EndTime</i> The scheduled time, in ISO 8601 format, when the journey ended or will end.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The custom description of the condition.<br/>Specifies the settings for an event that causes a journey activity to start.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EventStartCondition</b>: Specifies the settings for an event that causes a journey activity to start.
        :return: JourneyResponse:  Provides information about the status, configuration, and other settings for a journey.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RefreshOnSegmentUpdate</i> Specifies whether a journey should be refreshed on segment update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WaitForQuietTime</i> Specifies whether endpoints in quiet hours should enter a wait till the end of their quiet hours.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> This object is not used or supported.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The current status of the journey. Possible values are: <ul><li>DRAFT - The journey is being developed and hasn't been published yet.</li> <li>ACTIVE - The journey has been developed and published. Depending on the journey's schedule, the journey may currently be running or scheduled to start running at a later time. If a journey's status is ACTIVE, you can't add, change, or remove activities from it.</li> <li>COMPLETED - The journey has been published and has finished running. All participants have entered the journey and no participants are waiting to complete the journey or any activities in the journey.</li> <li>CANCELLED - The journey has been stopped. If a journey's status is CANCELLED, you can't add, change, or remove activities or segment settings from the journey.</li> <li>CLOSED - The journey has been published and has started running. It may have also passed its scheduled end time, or passed its scheduled start time and a refresh frequency hasn't been specified for it. If a journey's status is CLOSED, you can't add participants to it, and no existing participants can enter the journey for the first time. However, any existing participants who are currently waiting to start an activity may continue the journey.</li></ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StartCondition</i> The segment that defines which users are participants in the journey.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StartCondition</b>: The segment that defines which users are participants in the journey.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StartActivity</i> The unique identifier for the first activity in the journey.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Schedule</i> The schedule settings for the journey.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Schedule</b>: The schedule settings for the journey.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RefreshFrequency</i> The frequency with which Amazon Pinpoint evaluates segment and event data for the journey, as a duration in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>QuietTime</i> The quiet time settings for the journey. Quiet time is a specific time range when a journey doesn't send messages to participants, if all the following conditions are met: <ul><li>The EndpointDemographic.Timezone property of the endpoint for the participant is set to a valid value.</li> <li>The current time in the participant's time zone is later than or equal to the time specified by the QuietTime.Start property for the journey.</li> <li>The current time in the participant's time zone is earlier than or equal to the time specified by the QuietTime.End property for the journey.</li></ul> If any of the preceding conditions isn't met, the participant will receive messages from the journey, even if quiet time is enabled.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>QuietTime</b>: The quiet time settings for the journey. Quiet time is a specific time range when a journey doesn't send messages to participants, if all the following conditions are met: <ul><li>The EndpointDemographic.Timezone property of the endpoint for the participant is set to a valid value.</li> <li>The current time in the participant's time zone is later than or equal to the time specified by the QuietTime.Start property for the journey.</li> <li>The current time in the participant's time zone is earlier than or equal to the time specified by the QuietTime.End property for the journey.</li></ul> If any of the preceding conditions isn't met, the participant will receive messages from the journey, even if quiet time is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the journey.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LocalTime</i> Specifies whether the journey's scheduled start and end times use each participant's local time. If this value is true, the schedule uses each participant's local time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Limits</i> The messaging and entry limits for the journey.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Limits</b>: The messaging and entry limits for the journey.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> The date, in ISO 8601 format, when the journey was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The unique identifier for the journey.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date, in ISO 8601 format, when the journey was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationId</i> The unique identifier for the application that the journey applies to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Activities</i> A map that contains a set of Activity objects, one object for each activity in the journey. For each Activity object, the key is the unique identifier (string) for an activity and the value is the settings for the activity.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointReentryInterval</i> Minimum time that must pass before an endpoint can re-enter a given journey. The duration should use an ISO 8601 format, such as PT1H. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MessagesPerSecond</i> The maximum number of messages that the journey can send each second.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointReentryCap</i> The maximum number of times that a participant can enter the journey. The maximum value is 100. To allow participants to enter the journey an unlimited number of times, set this value to 0.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DailyCap</i> The maximum number of messages that the journey can send to a single participant during a 24-hour period. The maximum value is 100.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Start</i> The specific time when quiet time begins. This value has to use 24-hour notation and be in HH:MM format, where HH is the hour (with a leading zero, if applicable) and MM is the minutes. For example, use 02:30 to represent 2:30 AM, or 14:30 to represent 2:30 PM.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>End</i> The specific time when quiet time ends. This value has to use 24-hour notation and be in HH:MM format, where HH is the hour (with a leading zero, if applicable) and MM is the minutes. For example, use 02:30 to represent 2:30 AM, or 14:30 to represent 2:30 PM.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Timezone</i> The starting UTC offset for the journey schedule, if the value of the journey's LocalTime property is true. Valid values are: UTC,
                  UTC+01, UTC+02, UTC+03, UTC+03:30, UTC+04, UTC+04:30, UTC+05, UTC+05:30,
                  UTC+05:45, UTC+06, UTC+06:30, UTC+07, UTC+08, UTC+08:45, UTC+09, UTC+09:30,
                  UTC+10, UTC+10:30, UTC+11, UTC+12, UTC+12:45, UTC+13, UTC+13:45, UTC-02,
                  UTC-02:30, UTC-03, UTC-03:30, UTC-04, UTC-05, UTC-06, UTC-07, UTC-08, UTC-09,
                  UTC-09:30, UTC-10, and UTC-11.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StartTime</i> The scheduled time, in ISO 8601 format, when the journey began or will begin.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EndTime</i> The scheduled time, in ISO 8601 format, when the journey ended or will end.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The custom description of the condition.<br/>Specifies the settings for an event that causes a journey activity to start.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EventStartCondition</b>: Specifies the settings for an event that causes a journey activity to start.        """
        pass

    def update_journey_state(self, JourneyStateRequest: JourneyStateRequest, JourneyId: str, ApplicationId: str) -> UpdateJourneyStateResponse:
        r"""Cancels (stops) an active journey.

        :param self:
        :param JourneyStateRequest:  Changes the status of a journey.:<br/>JourneyId:  The unique identifier for the journey.<br/>ApplicationId:  The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The status of the journey. Currently, Supported values are ACTIVE, PAUSED, and CANCELLED If you cancel a journey, Amazon Pinpoint continues to perform activities that are currently in progress, until those activities are complete. Amazon Pinpoint also continues to collect and aggregate analytics data for those activities, until they are complete, and any activities that were complete when you cancelled the journey. After you cancel a journey, you can't add, change, or remove any activities from the journey. In addition, Amazon Pinpoint stops evaluating the journey and doesn't perform any activities that haven't started. When the journey is paused, Amazon Pinpoint continues to perform activities that are currently in progress, until those activities are complete. Endpoints will stop entering journeys when the journey is paused and will resume entering the journey after the journey is resumed. For wait activities, wait time is paused when the journey is paused. Currently, PAUSED only supports journeys with a segment refresh interval.<br/>
        :return: JourneyResponse:  Provides information about the status, configuration, and other settings for a journey.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RefreshOnSegmentUpdate</i> Specifies whether a journey should be refreshed on segment update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WaitForQuietTime</i> Specifies whether endpoints in quiet hours should enter a wait till the end of their quiet hours.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> This object is not used or supported.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The current status of the journey. Possible values are: <ul><li>DRAFT - The journey is being developed and hasn't been published yet.</li> <li>ACTIVE - The journey has been developed and published. Depending on the journey's schedule, the journey may currently be running or scheduled to start running at a later time. If a journey's status is ACTIVE, you can't add, change, or remove activities from it.</li> <li>COMPLETED - The journey has been published and has finished running. All participants have entered the journey and no participants are waiting to complete the journey or any activities in the journey.</li> <li>CANCELLED - The journey has been stopped. If a journey's status is CANCELLED, you can't add, change, or remove activities or segment settings from the journey.</li> <li>CLOSED - The journey has been published and has started running. It may have also passed its scheduled end time, or passed its scheduled start time and a refresh frequency hasn't been specified for it. If a journey's status is CLOSED, you can't add participants to it, and no existing participants can enter the journey for the first time. However, any existing participants who are currently waiting to start an activity may continue the journey.</li></ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StartCondition</i> The segment that defines which users are participants in the journey.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StartCondition</b>: The segment that defines which users are participants in the journey.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StartActivity</i> The unique identifier for the first activity in the journey.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Schedule</i> The schedule settings for the journey.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Schedule</b>: The schedule settings for the journey.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RefreshFrequency</i> The frequency with which Amazon Pinpoint evaluates segment and event data for the journey, as a duration in ISO 8601 format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>QuietTime</i> The quiet time settings for the journey. Quiet time is a specific time range when a journey doesn't send messages to participants, if all the following conditions are met: <ul><li>The EndpointDemographic.Timezone property of the endpoint for the participant is set to a valid value.</li> <li>The current time in the participant's time zone is later than or equal to the time specified by the QuietTime.Start property for the journey.</li> <li>The current time in the participant's time zone is earlier than or equal to the time specified by the QuietTime.End property for the journey.</li></ul> If any of the preceding conditions isn't met, the participant will receive messages from the journey, even if quiet time is enabled.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>QuietTime</b>: The quiet time settings for the journey. Quiet time is a specific time range when a journey doesn't send messages to participants, if all the following conditions are met: <ul><li>The EndpointDemographic.Timezone property of the endpoint for the participant is set to a valid value.</li> <li>The current time in the participant's time zone is later than or equal to the time specified by the QuietTime.Start property for the journey.</li> <li>The current time in the participant's time zone is earlier than or equal to the time specified by the QuietTime.End property for the journey.</li></ul> If any of the preceding conditions isn't met, the participant will receive messages from the journey, even if quiet time is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the journey.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LocalTime</i> Specifies whether the journey's scheduled start and end times use each participant's local time. If this value is true, the schedule uses each participant's local time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Limits</i> The messaging and entry limits for the journey.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Limits</b>: The messaging and entry limits for the journey.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> The date, in ISO 8601 format, when the journey was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The unique identifier for the journey.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date, in ISO 8601 format, when the journey was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationId</i> The unique identifier for the application that the journey applies to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Activities</i> A map that contains a set of Activity objects, one object for each activity in the journey. For each Activity object, the key is the unique identifier (string) for an activity and the value is the settings for the activity.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointReentryInterval</i> Minimum time that must pass before an endpoint can re-enter a given journey. The duration should use an ISO 8601 format, such as PT1H. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MessagesPerSecond</i> The maximum number of messages that the journey can send each second.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointReentryCap</i> The maximum number of times that a participant can enter the journey. The maximum value is 100. To allow participants to enter the journey an unlimited number of times, set this value to 0.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DailyCap</i> The maximum number of messages that the journey can send to a single participant during a 24-hour period. The maximum value is 100.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Start</i> The specific time when quiet time begins. This value has to use 24-hour notation and be in HH:MM format, where HH is the hour (with a leading zero, if applicable) and MM is the minutes. For example, use 02:30 to represent 2:30 AM, or 14:30 to represent 2:30 PM.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>End</i> The specific time when quiet time ends. This value has to use 24-hour notation and be in HH:MM format, where HH is the hour (with a leading zero, if applicable) and MM is the minutes. For example, use 02:30 to represent 2:30 AM, or 14:30 to represent 2:30 PM.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Timezone</i> The starting UTC offset for the journey schedule, if the value of the journey's LocalTime property is true. Valid values are: UTC,
                  UTC+01, UTC+02, UTC+03, UTC+03:30, UTC+04, UTC+04:30, UTC+05, UTC+05:30,
                  UTC+05:45, UTC+06, UTC+06:30, UTC+07, UTC+08, UTC+08:45, UTC+09, UTC+09:30,
                  UTC+10, UTC+10:30, UTC+11, UTC+12, UTC+12:45, UTC+13, UTC+13:45, UTC-02,
                  UTC-02:30, UTC-03, UTC-03:30, UTC-04, UTC-05, UTC-06, UTC-07, UTC-08, UTC-09,
                  UTC-09:30, UTC-10, and UTC-11.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StartTime</i> The scheduled time, in ISO 8601 format, when the journey began or will begin.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EndTime</i> The scheduled time, in ISO 8601 format, when the journey ended or will end.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The custom description of the condition.<br/>Specifies the settings for an event that causes a journey activity to start.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EventStartCondition</b>: Specifies the settings for an event that causes a journey activity to start.        """
        pass

    def update_push_template(self, TemplateName: str, PushNotificationTemplateRequest: PushNotificationTemplateRequest, CreateNewVersion: __boolean=None, Version: str=None) -> UpdatePushTemplateResponse:
        r"""Updates an existing message template for messages that are sent through a push notification channel.

        :param self:
        :param Version:  The unique identifier for the version of the message template to update, retrieve information about, or delete. To retrieve identifiers and other information for all the versions of a template, use the <link  linkend="templates-template-name-template-type-versions">Template Versions</link> resource. If specified, this value must match the identifier for an existing template version. If specified for an update operation, this value must match the identifier for the latest existing version of the template. This restriction helps ensure that race conditions don't occur. If you don't specify a value for this parameter, Amazon Pinpoint does the following: <ul><li>For a get operation, retrieves information about the active version of the template.</li> <li>For an update operation, saves the updates to (overwrites) the latest existing version of the template, if the create-new-version parameter isn't used or is set to false.</li> <li>For a delete operation, deletes the template, including all versions of the template.</li></ul><br/>TemplateName:  The name of the message template. A template name must start with an alphanumeric character and can contain a maximum of 128 characters. The characters can be alphanumeric characters, underscores (_), or hyphens (-). Template names are case sensitive.<br/>PushNotificationTemplateRequest:  Specifies the content and settings for a message template that can be used in messages that are sent through a push notification channel.:<br/>CreateNewVersion:  Specifies whether to save the updates as a new version of the message template. Valid values are: true, save the updates as a new version; and, false, save the updates to (overwrite) the latest existing version of the template. If you don't specify a value for this parameter, Amazon Pinpoint saves the updates to (overwrites) the latest existing version of the template. If you specify a value of true for this parameter, don't specify a value for the version parameter. Otherwise, an error will occur.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TemplateDescription</i> A custom description of the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> A string-to-string map of key-value pairs that defines the tags to associate with the message template. Each tag consists of a required tag key and an associated tag value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecommenderId</i> The unique identifier for the recommender model to use for the message template. Amazon Pinpoint uses this value to determine how to retrieve and process data from a recommender model when it sends messages that use the template, if the template contains message variables for recommendation data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GCM</i> The message template to use for the GCM channel, which is used to send notifications through the Firebase Cloud Messaging (FCM), formerly Google Cloud Messaging (GCM), service. This message template overrides the default template for push notification channels (DefaultPushNotificationTemplate).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>GCM</b>: The message template to use for the GCM channel, which is used to send notifications through the Firebase Cloud Messaging (FCM), formerly Google Cloud Messaging (GCM), service. This message template overrides the default template for push notification channels (DefaultPushNotificationTemplate).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultSubstitutions</i> A JSON object that specifies the default values to use for message variables in the message template. This object is a set of key-value pairs. Each key defines a message variable in the template. The corresponding value defines the default value for that variable. When you create a message that's based on the template, you can override these defaults with message-specific and address-specific variables and values.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Default</i> The default message template to use for push notification channels.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Default</b>: The default message template to use for push notification channels.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Baidu</i> The message template to use for the Baidu (Baidu Cloud Push) channel. This message template overrides the default template for push notification channels (DefaultPushNotificationTemplate).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Baidu</b>: The message template to use for the Baidu (Baidu Cloud Push) channel. This message template overrides the default template for push notification channels (DefaultPushNotificationTemplate).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>APNS</i> The message template to use for the APNs (Apple Push Notification service) channel. This message template overrides the default template for push notification channels (DefaultPushNotificationTemplate).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>APNS</b>: The message template to use for the APNs (Apple Push Notification service) channel. This message template overrides the default template for push notification channels (DefaultPushNotificationTemplate).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ADM</i> The message template to use for the ADM (Amazon Device Messaging) channel. This message template overrides the default template for push notification channels (DefaultPushNotificationTemplate).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ADM</b>: The message template to use for the ADM (Amazon Device Messaging) channel. This message template overrides the default template for push notification channels (DefaultPushNotificationTemplate).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Url</i> The URL to open in a recipient's default mobile browser, if a recipient taps a push notification that's based on the message template and the value of the Action property is URL.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Title</i> The title to use in a push notification that's based on the message template. This title appears above the notification message on a recipient's device.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Sound</i> The sound to play when a recipient receives a push notification that's based on the message template. You can use the default stream or specify the file name of a sound resource that's bundled in your app. On an Android platform, the sound file must reside in /res/raw/.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SmallImageIconUrl</i> The URL of the small icon image to display in the status bar and the content view of a push notification that's based on the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RawContent</i> The raw, JSON-formatted string to use as the payload for a push notification that's based on the message template. If specified, this value overrides all other content for the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ImageUrl</i> The URL of an image to display in a push notification that's based on the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ImageIconUrl</i> The URL of the large icon image to display in the content view of a push notification that's based on the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Body</i> The message body to use in a push notification that's based on the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Action</i> The action to occur if a recipient taps a push notification that's based on the message template. Valid values are: <ul><li>OPEN_APP - Your app opens or it becomes the foreground app if it was sent to the background. This is the default action.</li> <li>DEEP_LINK - Your app opens and displays a designated user interface in the app. This action uses the deep-linking features of the Android platform.</li> <li>URL - The default mobile browser on the recipient's device opens and loads the web page at a URL that you specify.</li></ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Url</i> The URL to open in the recipient's default mobile browser, if a recipient taps a push notification that's based on the message template and the value of the Action property is URL.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Title</i> The title to use in push notifications that are based on the message template. This title appears above the notification message on a recipient's device.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Sound</i> The key for the sound to play when the recipient receives a push notification that's based on the message template. The value for this key is the name of a sound file in your app's main bundle or the Library/Sounds folder in your app's data container. If the sound file can't be found or you specify default for the value, the system plays the default alert sound.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RawContent</i> The raw, JSON-formatted string to use as the payload for push notifications that are based on the message template. If specified, this value overrides all other content for the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MediaUrl</i> The URL of an image or video to display in push notifications that are based on the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Body</i> The message body to use in push notifications that are based on the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Action</i> The action to occur if a recipient taps a push notification that's based on the message template. Valid values are: <ul><li>OPEN_APP - Your app opens or it becomes the foreground app if it was sent to the background. This is the default action.</li> <li>DEEP_LINK - Your app opens and displays a designated user interface in the app. This setting uses the deep-linking features of the iOS platform.</li> <li>URL - The default mobile browser on the recipient's device opens and loads the web page at a URL that you specify.</li></ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Url</i> The URL to open in a recipient's default mobile browser, if a recipient taps a push notification that's based on the message template and the value of the Action property is URL.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Title</i> The title to use in a push notification that's based on the message template. This title appears above the notification message on a recipient's device.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Sound</i> The sound to play when a recipient receives a push notification that's based on the message template. You can use the default stream or specify the file name of a sound resource that's bundled in your app. On an Android platform, the sound file must reside in /res/raw/.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SmallImageIconUrl</i> The URL of the small icon image to display in the status bar and the content view of a push notification that's based on the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RawContent</i> The raw, JSON-formatted string to use as the payload for a push notification that's based on the message template. If specified, this value overrides all other content for the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ImageUrl</i> The URL of an image to display in a push notification that's based on the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ImageIconUrl</i> The URL of the large icon image to display in the content view of a push notification that's based on the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Body</i> The message body to use in a push notification that's based on the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Action</i> The action to occur if a recipient taps a push notification that's based on the message template. Valid values are: <ul><li>OPEN_APP - Your app opens or it becomes the foreground app if it was sent to the background. This is the default action.</li> <li>DEEP_LINK - Your app opens and displays a designated user interface in the app. This action uses the deep-linking features of the Android platform.</li> <li>URL - The default mobile browser on the recipient's device opens and loads the web page at a URL that you specify.</li></ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Url</i> The URL to open in a recipient's default mobile browser, if a recipient taps a push notification that's based on the message template and the value of the Action property is URL.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Title</i> The title to use in push notifications that are based on the message template. This title appears above the notification message on a recipient's device.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Sound</i> The sound to play when a recipient receives a push notification that's based on the message template. You can use the default stream or specify the file name of a sound resource that's bundled in your app. On an Android platform, the sound file must reside in /res/raw/. For an iOS platform, this value is the key for the name of a sound file in your app's main bundle or the Library/Sounds folder in your app's data container. If the sound file can't be found or you specify default for the value, the system plays the default alert sound.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Body</i> The message body to use in push notifications that are based on the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Action</i> The action to occur if a recipient taps a push notification that's based on the message template. Valid values are: <ul><li>OPEN_APP - Your app opens or it becomes the foreground app if it was sent to the background. This is the default action.</li> <li>DEEP_LINK - Your app opens and displays a designated user interface in the app. This setting uses the deep-linking features of the iOS and Android platforms.</li> <li>URL - The default mobile browser on the recipient's device opens and loads the web page at a URL that you specify.</li></ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Url</i> The URL to open in a recipient's default mobile browser, if a recipient taps a push notification that's based on the message template and the value of the Action property is URL.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Title</i> The title to use in a push notification that's based on the message template. This title appears above the notification message on a recipient's device.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Sound</i> The sound to play when a recipient receives a push notification that's based on the message template. You can use the default stream or specify the file name of a sound resource that's bundled in your app. On an Android platform, the sound file must reside in /res/raw/.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SmallImageIconUrl</i> The URL of the small icon image to display in the status bar and the content view of a push notification that's based on the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RawContent</i> The raw, JSON-formatted string to use as the payload for a push notification that's based on the message template. If specified, this value overrides all other content for the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ImageUrl</i> The URL of an image to display in a push notification that's based on the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ImageIconUrl</i> The URL of the large icon image to display in the content view of a push notification that's based on the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Body</i> The message body to use in a push notification that's based on the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Action</i> The action to occur if a recipient taps a push notification that's based on the message template. Valid values are: <ul><li>OPEN_APP - Your app opens or it becomes the foreground app if it was sent to the background. This is the default action.</li> <li>DEEP_LINK - Your app opens and displays a designated user interface in the app. This action uses the deep-linking features of the Android platform.</li> <li>URL - The default mobile browser on the recipient's device opens and loads the web page at a URL that you specify.</li></ul><br/>
        :return: MessageBody:  Provides information about an API request or response.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequestID</i> The unique identifier for the request or response.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> The message that's returned from the API.<br/>        """
        pass

    def update_recommender_configuration(self, UpdateRecommenderConfiguration: UpdateRecommenderConfiguration, RecommenderId: str) -> UpdateRecommenderConfigurationResponse:
        r"""Updates an Amazon Pinpoint configuration for a recommender model.

        :param self:
        :param UpdateRecommenderConfiguration:  Specifies Amazon Pinpoint configuration settings for retrieving and processing recommendation data from a recommender model.:<br/>RecommenderId:  The unique identifier for the recommender model configuration. This identifier is displayed as the <b>Recommender ID</b> on the Amazon Pinpoint console.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecommendationsPerMessage</i> The number of recommended items to retrieve from the model for each endpoint or user, depending on the value for the RecommendationProviderIdType property. This number determines how many recommended items are available for use in message variables. The minimum value is 1. The maximum value is 5. The default value is 5. To use multiple recommended items and custom attributes with message variables, you have to use an AWS Lambda function (RecommendationTransformerUri) to perform additional processing of recommendation data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecommendationsDisplayName</i> A custom display name for the standard endpoint or user attribute (RecommendationItems) that temporarily stores recommended items for each endpoint or user, depending on the value for the RecommendationProviderIdType property. This value is required if the configuration doesn't invoke an AWS Lambda function (RecommendationTransformerUri) to perform additional processing of recommendation data. This name appears in the <b>Attribute finder</b> of the template editor on the Amazon Pinpoint console. The name can contain up to 25 characters. The characters can be letters, numbers, spaces, underscores (_), or hyphens (-). These restrictions don't apply to attribute values.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecommendationTransformerUri</i> The name or Amazon Resource Name (ARN) of the AWS Lambda function to invoke for additional processing of recommendation data that's retrieved from the recommender model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecommendationProviderUri</i> The Amazon Resource Name (ARN) of the recommender model to retrieve recommendation data from. This value must match the ARN of an Amazon Personalize campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecommendationProviderRoleArn</i> The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that authorizes Amazon Pinpoint to retrieve recommendation data from the recommender model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecommendationProviderIdType</i> The type of Amazon Pinpoint ID to associate with unique user IDs in the recommender model. This value enables the model to use attribute and event data that’s specific to a particular endpoint or user in an Amazon Pinpoint application. Valid values are: <ul><li>PINPOINT_ENDPOINT_ID - Associate each user in the model with a particular endpoint in Amazon Pinpoint. The data is correlated based on endpoint IDs in Amazon Pinpoint. This is the default value.</li> <li>PINPOINT_USER_ID - Associate each user in the model with a particular user and endpoint in Amazon Pinpoint. The data is correlated based on user IDs in Amazon Pinpoint. If you specify this value, an endpoint definition in Amazon Pinpoint has to specify both a user ID (UserId) and an endpoint ID. Otherwise, messages won’t be sent to the user's endpoint.</li></ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A custom name of the configuration for the recommender model. The name must start with a letter or number and it can contain up to 128 characters. The characters can be letters, numbers, spaces, underscores (_), or hyphens (-).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A custom description of the configuration for the recommender model. The description can contain up to 128 characters. The characters can be letters, numbers, spaces, or the following symbols: _ ; () , ‐.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Attributes</i> A map of key-value pairs that defines 1-10 custom endpoint or user attributes, depending on the value for the RecommendationProviderIdType property. Each of these attributes temporarily stores a recommended item that's retrieved from the recommender model and sent to an AWS Lambda function for additional processing. Each attribute can be used as a message variable in a message template. In the map, the key is the name of a custom attribute and the value is a custom display name for that attribute. The display name appears in the <b>Attribute finder</b> of the template editor on the Amazon Pinpoint console. The following restrictions apply to these names: <ul><li>An attribute name must start with a letter or number and it can contain up to 50 characters. The characters can be letters, numbers, underscores (_), or hyphens (-). Attribute names are case sensitive and must be unique.</li> <li>An attribute display name must start with a letter or number and it can contain up to 25 characters. The characters can be letters, numbers, spaces, underscores (_), or hyphens (-).</li></ul> This object is required if the configuration invokes an AWS Lambda function (RecommendationTransformerUri) to process recommendation data. Otherwise, don't include this object in your request.<br/>
        :return: RecommenderConfigurationResponse:  Provides information about Amazon Pinpoint configuration settings for retrieving and processing data from a recommender model.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecommendationsPerMessage</i> The number of recommended items that are retrieved from the model for each endpoint or user, depending on the value for the RecommendationProviderIdType property. This number determines how many recommended items are available for use in message variables.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecommendationsDisplayName</i> The custom display name for the standard endpoint or user attribute (RecommendationItems) that temporarily stores recommended items for each endpoint or user, depending on the value for the RecommendationProviderIdType property. This name appears in the <b>Attribute finder</b> of the template editor on the Amazon Pinpoint console. This value is null if the configuration doesn't invoke an AWS Lambda function (RecommendationTransformerUri) to perform additional processing of recommendation data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecommendationTransformerUri</i> The name or Amazon Resource Name (ARN) of the AWS Lambda function that Amazon Pinpoint invokes to perform additional processing of recommendation data that it retrieves from the recommender model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecommendationProviderUri</i> The Amazon Resource Name (ARN) of the recommender model that Amazon Pinpoint retrieves the recommendation data from. This value is the ARN of an Amazon Personalize campaign.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecommendationProviderRoleArn</i> The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that authorizes Amazon Pinpoint to retrieve recommendation data from the recommender model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecommendationProviderIdType</i> The type of Amazon Pinpoint ID that's associated with unique user IDs in the recommender model. This value enables the model to use attribute and event data that’s specific to a particular endpoint or user in an Amazon Pinpoint application. Possible values are: <ul><li>PINPOINT_ENDPOINT_ID - Each user in the model is associated with a particular endpoint in Amazon Pinpoint. The data is correlated based on endpoint IDs in Amazon Pinpoint. This is the default value.</li> <li>PINPOINT_USER_ID - Each user in the model is associated with a particular user and endpoint in Amazon Pinpoint. The data is correlated based on user IDs in Amazon Pinpoint. If this value is specified, an endpoint definition in Amazon Pinpoint has to specify both a user ID (UserId) and an endpoint ID. Otherwise, messages won’t be sent to the user's endpoint.</li></ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The custom name of the configuration for the recommender model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> The date, in extended ISO 8601 format, when the configuration for the recommender model was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The unique identifier for the recommender model configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The custom description of the configuration for the recommender model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date, in extended ISO 8601 format, when the configuration was created for the recommender model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Attributes</i> A map that defines 1-10 custom endpoint or user attributes, depending on the value for the RecommendationProviderIdType property. Each of these attributes temporarily stores a recommended item that's retrieved from the recommender model and sent to an AWS Lambda function for additional processing. Each attribute can be used as a message variable in a message template. This value is null if the configuration doesn't invoke an AWS Lambda function (RecommendationTransformerUri) to perform additional processing of recommendation data.<br/>        """
        pass

    def update_segment(self, WriteSegmentRequest: WriteSegmentRequest, SegmentId: str, ApplicationId: str) -> UpdateSegmentResponse:
        r"""Creates a new segment for an application or updates the configuration, dimension, and other settings for an existing segment that's associated with an application.

        :param self:
        :param WriteSegmentRequest:  Specifies the configuration, dimension, and other settings for a segment. A WriteSegmentRequest object can include a Dimensions object or a SegmentGroups object, but not both.:<br/>SegmentId:  The unique identifier for the segment.<br/>ApplicationId:  The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> A string-to-string map of key-value pairs that defines the tags to associate with the segment. Each tag consists of a required tag key and an associated tag value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentGroups</i> The segment group to use and the dimensions to apply to the group's base segments in order to build the segment. A segment group can consist of zero or more base segments. Your request can include only one segment group.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SegmentGroups</b>: The segment group to use and the dimensions to apply to the group's base segments in order to build the segment. A segment group can consist of zero or more base segments. Your request can include only one segment group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the segment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Dimensions</i> The criteria that define the dimensions for the segment.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Dimensions</b>: The criteria that define the dimensions for the segment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Attributes</i> One or more custom attributes to use as criteria for the segment.<br/>The behavior-based criteria, such as how recently users have used your app, for the segment.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Behavior</b>: The behavior-based criteria, such as how recently users have used your app, for the segment.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Include</i> Specifies how to handle multiple segment groups for the segment. For example, if the segment includes three segment groups, whether the resulting segment includes endpoints that match all, any, or none of the segment groups.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Groups</i> An array that defines the set of segment criteria to evaluate when handling segment groups for the segment.<br/>
        :return: SegmentResponse:  Provides information about the configuration, dimension, and other settings for a segment.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The version number of the segment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> A string-to-string map of key-value pairs that identifies the tags that are associated with the segment. Each tag consists of a required tag key and an associated tag value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentType</i> The segment type. Valid values are: <ul><li>DIMENSIONAL - A dynamic segment, which is a segment that uses selection criteria that you specify and is based on endpoint data that's reported by your app. Dynamic segments can change over time.</li> <li>IMPORT - A static segment, which is a segment that uses selection criteria that you specify and is based on endpoint definitions that you import from a file. Imported segments are static; they don't change over time.</li></ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SegmentGroups</i> A list of one or more segment groups that apply to the segment. Each segment group consists of zero or more base segments and the dimensions that are applied to those base segments.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SegmentGroups</b>: A list of one or more segment groups that apply to the segment. Each segment group consists of zero or more base segments and the dimensions that are applied to those base segments.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the segment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> The date and time when the segment was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImportDefinition</i> The settings for the import job that's associated with the segment.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ImportDefinition</b>: The settings for the import job that's associated with the segment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The unique identifier for the segment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Dimensions</i> The dimension settings for the segment.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Dimensions</b>: The dimension settings for the segment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date and time when the segment was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the segment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationId</i> The unique identifier for the application that the segment is associated with.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Attributes</i> One or more custom attributes to use as criteria for the segment.<br/>The behavior-based criteria, such as how recently users have used your app, for the segment.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Behavior</b>: The behavior-based criteria, such as how recently users have used your app, for the segment.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Size</i> The number of endpoint definitions that were imported successfully to create the segment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Url</i> The URL of the Amazon Simple Storage Service (Amazon S3) bucket that the endpoint definitions were imported from to create the segment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that authorized Amazon Pinpoint to access the Amazon S3 location to import endpoint definitions from.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Format</i> The format of the files that were imported to create the segment. Valid values are: CSV, for comma-separated values format; and, JSON, for newline-delimited JSON format.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ExternalId</i> (Deprecated) Your AWS account ID, which you assigned to an external ID key in an IAM trust policy. Amazon Pinpoint previously used this value to assume an IAM role when importing endpoint definitions, but we removed this requirement. We don't recommend use of external IDs for IAM roles that are assumed by Amazon Pinpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ChannelCounts</i> The number of channel types in the endpoint definitions that were imported to create the segment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Include</i> Specifies how to handle multiple segment groups for the segment. For example, if the segment includes three segment groups, whether the resulting segment includes endpoints that match all, any, or none of the segment groups.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Groups</i> An array that defines the set of segment criteria to evaluate when handling segment groups for the segment.<br/>        """
        pass

    def update_sms_channel(self, SMSChannelRequest: SMSChannelRequest, ApplicationId: str) -> UpdateSmsChannelResponse:
        r"""Enables the SMS channel for an application or updates the status and settings of the SMS channel for an application.

        :param self:
        :param SMSChannelRequest:  Specifies the status and settings of the SMS channel for an application.:<br/>ApplicationId:  The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ShortCode</i> The registered short code that you want to use when you send messages through the SMS channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SenderId</i> The identity that you want to display on recipients' devices when they receive messages from the SMS channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specifies whether to enable the SMS channel for the application.<br/>
        :return: SMSChannelResponse:  Provides information about the status and settings of the SMS channel for an application.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The current version of the SMS channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransactionalMessagesPerSecond</i> The maximum number of transactional messages that you can send through the SMS channel each second.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ShortCode</i> The registered short code to use when you send messages through the SMS channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SenderId</i> The identity that displays on recipients' devices when they receive messages from the SMS channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PromotionalMessagesPerSecond</i> The maximum number of promotional messages that you can send through the SMS channel each second.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Platform</i> The type of messaging or notification platform for the channel. For the SMS channel, this value is SMS.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> The date and time, in ISO 8601 format, when the SMS channel was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedBy</i> The user who last modified the SMS channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsArchived</i> Specifies whether the SMS channel is archived.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> (Deprecated) An identifier for the SMS channel. This property is retained only for backward compatibility.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HasCredential</i> (Not used) This property is retained only for backward compatibility.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specifies whether the SMS channel is enabled for the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date and time, in ISO 8601 format, when the SMS channel was enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationId</i> The unique identifier for the application that the SMS channel applies to.<br/>        """
        pass

    def update_sms_template(self, TemplateName: str, SMSTemplateRequest: SMSTemplateRequest, CreateNewVersion: __boolean=None, Version: str=None) -> UpdateSmsTemplateResponse:
        r"""Updates an existing message template for messages that are sent through the SMS channel.

        :param self:
        :param Version:  The unique identifier for the version of the message template to update, retrieve information about, or delete. To retrieve identifiers and other information for all the versions of a template, use the <link  linkend="templates-template-name-template-type-versions">Template Versions</link> resource. If specified, this value must match the identifier for an existing template version. If specified for an update operation, this value must match the identifier for the latest existing version of the template. This restriction helps ensure that race conditions don't occur. If you don't specify a value for this parameter, Amazon Pinpoint does the following: <ul><li>For a get operation, retrieves information about the active version of the template.</li> <li>For an update operation, saves the updates to (overwrites) the latest existing version of the template, if the create-new-version parameter isn't used or is set to false.</li> <li>For a delete operation, deletes the template, including all versions of the template.</li></ul><br/>TemplateName:  The name of the message template. A template name must start with an alphanumeric character and can contain a maximum of 128 characters. The characters can be alphanumeric characters, underscores (_), or hyphens (-). Template names are case sensitive.<br/>SMSTemplateRequest:  Specifies the content and settings for a message template that can be used in text messages that are sent through the SMS channel.:<br/>CreateNewVersion:  Specifies whether to save the updates as a new version of the message template. Valid values are: true, save the updates as a new version; and, false, save the updates to (overwrite) the latest existing version of the template. If you don't specify a value for this parameter, Amazon Pinpoint saves the updates to (overwrites) the latest existing version of the template. If you specify a value of true for this parameter, don't specify a value for the version parameter. Otherwise, an error will occur.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TemplateDescription</i> A custom description of the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> A string-to-string map of key-value pairs that defines the tags to associate with the message template. Each tag consists of a required tag key and an associated tag value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecommenderId</i> The unique identifier for the recommender model to use for the message template. Amazon Pinpoint uses this value to determine how to retrieve and process data from a recommender model when it sends messages that use the template, if the template contains message variables for recommendation data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultSubstitutions</i> A JSON object that specifies the default values to use for message variables in the message template. This object is a set of key-value pairs. Each key defines a message variable in the template. The corresponding value defines the default value for that variable. When you create a message that's based on the template, you can override these defaults with message-specific and address-specific variables and values.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Body</i> The message body to use in text messages that are based on the message template.<br/>
        :return: MessageBody:  Provides information about an API request or response.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequestID</i> The unique identifier for the request or response.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> The message that's returned from the API.<br/>        """
        pass

    def update_template_active_version(self, TemplateType: str, TemplateName: str, TemplateActiveVersionRequest: TemplateActiveVersionRequest) -> UpdateTemplateActiveVersionResponse:
        r"""Changes the status of a specific version of a message template to <i>active</i>.

        :param self:
        :param TemplateType:  The type of channel that the message template is designed for. Valid values are: EMAIL, PUSH, SMS, and VOICE.<br/>TemplateName:  The name of the message template. A template name must start with an alphanumeric character and can contain a maximum of 128 characters. The characters can be alphanumeric characters, underscores (_), or hyphens (-). Template names are case sensitive.<br/>TemplateActiveVersionRequest:  Specifies which version of a message template to use as the active version of the template.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The version of the message template to use as the active version of the template. Valid values are: latest, for the most recent version of the template; or, the unique identifier for any existing version of the template. If you specify an identifier, the value must match the identifier for an existing template version. To retrieve a list of versions and version identifiers for a template, use the <link  linkend="templates-template-name-template-type-versions">Template Versions</link> resource.<br/>
        :return: MessageBody:  Provides information about an API request or response.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequestID</i> The unique identifier for the request or response.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> The message that's returned from the API.<br/>        """
        pass

    def update_voice_channel(self, VoiceChannelRequest: VoiceChannelRequest, ApplicationId: str) -> UpdateVoiceChannelResponse:
        r"""Enables the voice channel for an application or updates the status and settings of the voice channel for an application.

        :param self:
        :param VoiceChannelRequest:  Specifies the status and settings of the voice channel for an application.:<br/>ApplicationId:  The unique identifier for the application. This identifier is displayed as the <b>Project ID</b> on the Amazon Pinpoint console.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specifies whether to enable the voice channel for the application.<br/>
        :return: VoiceChannelResponse:  Provides information about the status and settings of the voice channel for an application.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The current version of the voice channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Platform</i> The type of messaging or notification platform for the channel. For the voice channel, this value is VOICE.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> The date and time, in ISO 8601 format, when the voice channel was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedBy</i> The user who last modified the voice channel.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsArchived</i> Specifies whether the voice channel is archived.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> (Deprecated) An identifier for the voice channel. This property is retained only for backward compatibility.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HasCredential</i> (Not used) This property is retained only for backward compatibility.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specifies whether the voice channel is enabled for the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The date and time, in ISO 8601 format, when the voice channel was enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationId</i> The unique identifier for the application that the voice channel applies to.<br/>        """
        pass

    def update_voice_template(self, VoiceTemplateRequest: VoiceTemplateRequest, TemplateName: str, CreateNewVersion: __boolean=None, Version: str=None) -> UpdateVoiceTemplateResponse:
        r"""Updates an existing message template for messages that are sent through the voice channel.

        :param self:
        :param VoiceTemplateRequest:  Specifies the content and settings for a message template that can be used in messages that are sent through the voice channel.:<br/>Version:  The unique identifier for the version of the message template to update, retrieve information about, or delete. To retrieve identifiers and other information for all the versions of a template, use the <link  linkend="templates-template-name-template-type-versions">Template Versions</link> resource. If specified, this value must match the identifier for an existing template version. If specified for an update operation, this value must match the identifier for the latest existing version of the template. This restriction helps ensure that race conditions don't occur. If you don't specify a value for this parameter, Amazon Pinpoint does the following: <ul><li>For a get operation, retrieves information about the active version of the template.</li> <li>For an update operation, saves the updates to (overwrites) the latest existing version of the template, if the create-new-version parameter isn't used or is set to false.</li> <li>For a delete operation, deletes the template, including all versions of the template.</li></ul><br/>TemplateName:  The name of the message template. A template name must start with an alphanumeric character and can contain a maximum of 128 characters. The characters can be alphanumeric characters, underscores (_), or hyphens (-). Template names are case sensitive.<br/>CreateNewVersion:  Specifies whether to save the updates as a new version of the message template. Valid values are: true, save the updates as a new version; and, false, save the updates to (overwrite) the latest existing version of the template. If you don't specify a value for this parameter, Amazon Pinpoint saves the updates to (overwrites) the latest existing version of the template. If you specify a value of true for this parameter, don't specify a value for the version parameter. Otherwise, an error will occur.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VoiceId</i> The name of the voice to use when delivering messages that are based on the message template. For a list of supported voices, see the <a href="https://docs.aws.amazon.com/polly/latest/dg/what-is.html">Amazon Polly Developer Guide</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TemplateDescription</i> A custom description of the message template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> A string-to-string map of key-value pairs that defines the tags to associate with the message template. Each tag consists of a required tag key and an associated tag value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LanguageCode</i> The code for the language to use when synthesizing the text of the script in messages that are based on the message template. For a list of supported languages and the code for each one, see the <a href="https://docs.aws.amazon.com/polly/latest/dg/what-is.html">Amazon Polly Developer Guide</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultSubstitutions</i> A JSON object that specifies the default values to use for message variables in the message template. This object is a set of key-value pairs. Each key defines a message variable in the template. The corresponding value defines the default value for that variable. When you create a message that's based on the template, you can override these defaults with message-specific and address-specific variables and values.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Body</i> The text of the script to use in messages that are based on the message template, in plain text format.<br/>
        :return: MessageBody:  Provides information about an API request or response.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequestID</i> The unique identifier for the request or response.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> The message that's returned from the API.<br/>        """
        pass





class PinpointEmail(BaseClient):
    r"""<fullname>Amazon Pinpoint Email Service</fullname> Welcome to the <i>Amazon Pinpoint Email API Reference</i>. This guide provides information about the Amazon Pinpoint Email API (version 1.0), including supported operations, data types, parameters, and schemas.  <a href="https://aws.amazon.com/pinpoint">Amazon Pinpoint</a> is an AWS service that you can use to engage with your customers across multiple messaging channels. You can use Amazon Pinpoint to send email, SMS text messages, voice messages, and push notifications. The Amazon Pinpoint Email API provides programmatic access to options that are unique to the email channel and supplement the options provided by the Amazon Pinpoint API. If you're new to Amazon Pinpoint, you might find it helpful to also review the <a href="https://docs.aws.amazon.com/pinpoint/latest/developerguide/welcome.html">Amazon Pinpoint Developer Guide</a>. The <i>Amazon Pinpoint Developer Guide</i> provides tutorials, code samples, and procedures that demonstrate how to use Amazon Pinpoint features programmatically and how to integrate Amazon Pinpoint functionality into mobile apps and other types of applications. The guide also provides information about key topics such as Amazon Pinpoint integration with other AWS services and the limits that apply to using the service. The Amazon Pinpoint Email API is available in several AWS Regions and it provides an endpoint for each of these Regions. For a list of all the Regions and endpoints where the API is currently available, see <a href="https://docs.aws.amazon.com/general/latest/gr/rande.html#pinpoint_region">AWS Service Endpoints</a> in the <i>Amazon Web Services General Reference</i>. To learn more about AWS Regions, see <a href="https://docs.aws.amazon.com/general/latest/gr/rande-manage.html">Managing AWS Regions</a> in the <i>Amazon Web Services General Reference</i>. In each Region, AWS maintains multiple Availability Zones. These Availability Zones are physically isolated from each other, but are united by private, low-latency, high-throughput, and highly redundant network connections. These Availability Zones enable us to provide very high levels of availability and redundancy, while also minimizing latency. To learn more about the number of Availability Zones that are available in each Region, see <a href="http://aws.amazon.com/about-aws/global-infrastructure/">AWS Global Infrastructure</a>."""


    class GetDedicatedIpsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_dedicated_ips` for valid parameters"""
            pass
    class ListConfigurationSetsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_configuration_sets` for valid parameters"""
            pass
    class ListDedicatedIpPoolsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_dedicated_ip_pools` for valid parameters"""
            pass
    class ListDeliverabilityTestReportsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_deliverability_test_reports` for valid parameters"""
            pass
    class ListEmailIdentitiesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_email_identities` for valid parameters"""
            pass


    class CreateConfigurationSetRequest(Mapping):
        pass
    
    class CreateConfigurationSetResponse(Mapping):
        pass
    
    class TrackingOptions(Mapping):
        pass
    
    class DeliveryOptions(Mapping):
        pass
    
    class ReputationOptions(Mapping):
        pass
    
    class SendingOptions(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class CreateConfigurationSetEventDestinationRequest(Mapping):
        pass
    
    class CreateConfigurationSetEventDestinationResponse(Mapping):
        pass
    
    class EventDestinationDefinition(Mapping):
        pass
    
    class CreateDedicatedIpPoolRequest(Mapping):
        pass
    
    class CreateDedicatedIpPoolResponse(Mapping):
        pass
    
    class CreateDeliverabilityTestReportRequest(Mapping):
        pass
    
    class CreateDeliverabilityTestReportResponse(Mapping):
        pass
    
    class EmailContent(Mapping):
        pass
    
    class CreateEmailIdentityRequest(Mapping):
        pass
    
    class CreateEmailIdentityResponse(Mapping):
        pass
    
    class DeleteConfigurationSetRequest(Mapping):
        pass
    
    class DeleteConfigurationSetResponse(Mapping):
        pass
    
    class DeleteConfigurationSetEventDestinationRequest(Mapping):
        pass
    
    class DeleteConfigurationSetEventDestinationResponse(Mapping):
        pass
    
    class DeleteDedicatedIpPoolRequest(Mapping):
        pass
    
    class DeleteDedicatedIpPoolResponse(Mapping):
        pass
    
    class DeleteEmailIdentityRequest(Mapping):
        pass
    
    class DeleteEmailIdentityResponse(Mapping):
        pass
    
    class GetAccountRequest(Mapping):
        pass
    
    class GetAccountResponse(Mapping):
        pass
    
    class GetBlacklistReportsRequest(Mapping):
        pass
    
    class GetBlacklistReportsResponse(Mapping):
        pass
    
    class BlacklistItemName(object):
        pass
    
    class GetConfigurationSetRequest(Mapping):
        pass
    
    class GetConfigurationSetResponse(Mapping):
        pass
    
    class GetConfigurationSetEventDestinationsRequest(Mapping):
        pass
    
    class GetConfigurationSetEventDestinationsResponse(Mapping):
        pass
    
    class GetDedicatedIpRequest(Mapping):
        pass
    
    class GetDedicatedIpResponse(Mapping):
        pass
    
    class GetDedicatedIpsRequest(Mapping):
        pass
    
    class GetDedicatedIpsResponse(Mapping):
        pass
    
    class GetDeliverabilityDashboardOptionsRequest(Mapping):
        pass
    
    class GetDeliverabilityDashboardOptionsResponse(Mapping):
        pass
    
    class GetDeliverabilityTestReportRequest(Mapping):
        pass
    
    class GetDeliverabilityTestReportResponse(Mapping):
        pass
    
    class GetDomainDeliverabilityCampaignRequest(Mapping):
        pass
    
    class GetDomainDeliverabilityCampaignResponse(Mapping):
        pass
    
    class GetDomainStatisticsReportRequest(Mapping):
        pass
    
    class GetDomainStatisticsReportResponse(Mapping):
        pass
    
    class Timestamp(object):
        pass
    
    class GetEmailIdentityRequest(Mapping):
        pass
    
    class GetEmailIdentityResponse(Mapping):
        pass
    
    class ListConfigurationSetsRequest(Mapping):
        pass
    
    class ListConfigurationSetsResponse(Mapping):
        pass
    
    class ListDedicatedIpPoolsRequest(Mapping):
        pass
    
    class ListDedicatedIpPoolsResponse(Mapping):
        pass
    
    class ListDeliverabilityTestReportsRequest(Mapping):
        pass
    
    class ListDeliverabilityTestReportsResponse(Mapping):
        pass
    
    class ListDomainDeliverabilityCampaignsRequest(Mapping):
        pass
    
    class ListDomainDeliverabilityCampaignsResponse(Mapping):
        pass
    
    class ListEmailIdentitiesRequest(Mapping):
        pass
    
    class ListEmailIdentitiesResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class PutAccountDedicatedIpWarmupAttributesRequest(Mapping):
        pass
    
    class PutAccountDedicatedIpWarmupAttributesResponse(Mapping):
        pass
    
    class Enabled(object):
        pass
    
    class PutAccountSendingAttributesRequest(Mapping):
        pass
    
    class PutAccountSendingAttributesResponse(Mapping):
        pass
    
    class PutConfigurationSetDeliveryOptionsRequest(Mapping):
        pass
    
    class PutConfigurationSetDeliveryOptionsResponse(Mapping):
        pass
    
    class PutConfigurationSetReputationOptionsRequest(Mapping):
        pass
    
    class PutConfigurationSetReputationOptionsResponse(Mapping):
        pass
    
    class PutConfigurationSetSendingOptionsRequest(Mapping):
        pass
    
    class PutConfigurationSetSendingOptionsResponse(Mapping):
        pass
    
    class PutConfigurationSetTrackingOptionsRequest(Mapping):
        pass
    
    class PutConfigurationSetTrackingOptionsResponse(Mapping):
        pass
    
    class PutDedicatedIpInPoolRequest(Mapping):
        pass
    
    class PutDedicatedIpInPoolResponse(Mapping):
        pass
    
    class PutDedicatedIpWarmupAttributesRequest(Mapping):
        pass
    
    class PutDedicatedIpWarmupAttributesResponse(Mapping):
        pass
    
    class PutDeliverabilityDashboardOptionRequest(Mapping):
        pass
    
    class PutDeliverabilityDashboardOptionResponse(Mapping):
        pass
    
    class DomainDeliverabilityTrackingOption(Mapping):
        pass
    
    class PutEmailIdentityDkimAttributesRequest(Mapping):
        pass
    
    class PutEmailIdentityDkimAttributesResponse(Mapping):
        pass
    
    class PutEmailIdentityFeedbackAttributesRequest(Mapping):
        pass
    
    class PutEmailIdentityFeedbackAttributesResponse(Mapping):
        pass
    
    class PutEmailIdentityMailFromAttributesRequest(Mapping):
        pass
    
    class PutEmailIdentityMailFromAttributesResponse(Mapping):
        pass
    
    class SendEmailRequest(Mapping):
        pass
    
    class SendEmailResponse(Mapping):
        pass
    
    class Destination(Mapping):
        pass
    
    class EmailAddress(object):
        pass
    
    class MessageTag(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateConfigurationSetEventDestinationRequest(Mapping):
        pass
    
    class UpdateConfigurationSetEventDestinationResponse(Mapping):
        pass
    
    def create_configuration_set(self, ConfigurationSetName: str, TrackingOptions: TrackingOptions=None, DeliveryOptions: DeliveryOptions=None, ReputationOptions: ReputationOptions=None, SendingOptions: SendingOptions=None, Tags: List[Tag]=None) -> CreateConfigurationSetResponse:
        r"""Create a configuration set. <i>Configuration sets</i> are groups of rules that you can apply to the emails you send using Amazon Pinpoint. You apply a configuration set to an email by including a reference to the configuration set in the headers of the email. When you apply a configuration set to an email, all of the rules in that configuration set are applied to the email. 

        :param self:
        :param Tags:  An array of objects that define the tags (keys and values) that you want to associate with the configuration set.<br/>SendingOptions:  An object that defines whether or not Amazon Pinpoint can send email that you send using the configuration set.:<br/>ReputationOptions:  An object that defines whether or not Amazon Pinpoint collects reputation metrics for the emails that you send that use the configuration set.:<br/>DeliveryOptions:  An object that defines the dedicated IP pool that is used to send emails that you send using the configuration set.:<br/>TrackingOptions:  An object that defines the open and click tracking options for emails that you send using the configuration set.:<br/>ConfigurationSetName:  The name of the configuration set.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomRedirectDomain</i> The domain that you want to use for tracking open and click events.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SendingPoolName</i> The name of the dedicated IP pool that you want to associate with the configuration set.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TlsPolicy</i> Specifies whether messages that use the configuration set are required to use Transport Layer Security (TLS). If the value is <code>Require</code>, messages are only delivered if a TLS connection can be established. If the value is <code>Optional</code>, messages can be delivered in plain text if a TLS connection can't be established.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastFreshStart</i> The date and time (in Unix time) when the reputation metrics were last given a fresh start. When your account is given a fresh start, your reputation metrics are calculated starting from the date of the fresh start.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReputationMetricsEnabled</i> If <code>true</code>, tracking of reputation metrics is enabled for the configuration set. If <code>false</code>, tracking of reputation metrics is disabled for the configuration set.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SendingEnabled</i> If <code>true</code>, email sending is enabled for the configuration set. If <code>false</code>, email sending is disabled for the configuration set.<br/>
        :return:         """
        pass

    def create_configuration_set_event_destination(self, EventDestination: EventDestinationDefinition, EventDestinationName: str, ConfigurationSetName: str) -> CreateConfigurationSetEventDestinationResponse:
        r"""Create an event destination. In Amazon Pinpoint, <i>events</i> include message sends, deliveries, opens, clicks, bounces, and complaints. <i>Event destinations</i> are places that you can send information about these events to. For example, you can send event data to Amazon SNS to receive notifications when you receive bounces or complaints, or you can use Amazon Kinesis Data Firehose to stream data to Amazon S3 for long-term storage. A single configuration set can include more than one event destination.

        :param self:
        :param EventDestination:  An object that defines the event destination.:<br/>EventDestinationName:  A name that identifies the event destination within the configuration set.<br/>ConfigurationSetName:  The name of the configuration set that you want to add an event destination to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PinpointDestination</i> An object that defines a Amazon Pinpoint destination for email events. You can use Amazon Pinpoint events to create attributes in Amazon Pinpoint projects. You can use these attributes to create segments for your campaigns.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PinpointDestination</b>: An object that defines a Amazon Pinpoint destination for email events. You can use Amazon Pinpoint events to create attributes in Amazon Pinpoint projects. You can use these attributes to create segments for your campaigns.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnsDestination</i> An object that defines an Amazon SNS destination for email events. You can use Amazon SNS to send notification when certain email events occur.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SnsDestination</b>: An object that defines an Amazon SNS destination for email events. You can use Amazon SNS to send notification when certain email events occur.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudWatchDestination</i> An object that defines an Amazon CloudWatch destination for email events. You can use Amazon CloudWatch to monitor and gain insights on your email sending metrics.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CloudWatchDestination</b>: An object that defines an Amazon CloudWatch destination for email events. You can use Amazon CloudWatch to monitor and gain insights on your email sending metrics.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KinesisFirehoseDestination</i> An object that defines an Amazon Kinesis Data Firehose destination for email events. You can use Amazon Kinesis Data Firehose to stream data to other services, such as Amazon S3 and Amazon Redshift.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>KinesisFirehoseDestination</b>: An object that defines an Amazon Kinesis Data Firehose destination for email events. You can use Amazon Kinesis Data Firehose to stream data to other services, such as Amazon S3 and Amazon Redshift.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MatchingEventTypes</i> An array that specifies which events Amazon Pinpoint should send to the destinations in this <code>EventDestinationDefinition</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> If <code>true</code>, the event destination is enabled. When the event destination is enabled, the specified event types are sent to the destinations in this <code>EventDestinationDefinition</code>. If <code>false</code>, the event destination is disabled. When the event destination is disabled, events aren't sent to the specified destinations.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DeliveryStreamArn</i> The Amazon Resource Name (ARN) of the Amazon Kinesis Data Firehose stream that Amazon Pinpoint sends email events to.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IamRoleArn</i> The Amazon Resource Name (ARN) of the IAM role that Amazon Pinpoint uses when sending email events to the Amazon Kinesis Data Firehose stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DimensionConfigurations</i> An array of objects that define the dimensions to use when you send email events to Amazon CloudWatch.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TopicArn</i> The Amazon Resource Name (ARN) of the Amazon SNS topic that you want to publish email events to. For more information about Amazon SNS topics, see the <a href="https://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html">Amazon SNS Developer Guide</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationArn</i> The Amazon Resource Name (ARN) of the Amazon Pinpoint project that you want to send email events to.<br/>
        :return:         """
        pass

    def create_dedicated_ip_pool(self, PoolName: str, Tags: List[Tag]=None) -> CreateDedicatedIpPoolResponse:
        r"""Create a new pool of dedicated IP addresses. A pool can include one or more dedicated IP addresses that are associated with your Amazon Pinpoint account. You can associate a pool with a configuration set. When you send an email that uses that configuration set, Amazon Pinpoint sends it using only the IP addresses in the associated pool.

        :param self:
        :param Tags:  An object that defines the tags (keys and values) that you want to associate with the pool.<br/>PoolName:  The name of the dedicated IP pool.<br/>
        :return:         """
        pass

    def create_deliverability_test_report(self, Content: EmailContent, FromEmailAddress: str, ReportName: str=None, Tags: List[Tag]=None) -> CreateDeliverabilityTestReportResponse:
        r"""Create a new predictive inbox placement test. Predictive inbox placement tests can help you predict how your messages will be handled by various email providers around the world. When you perform a predictive inbox placement test, you provide a sample message that contains the content that you plan to send to your customers. Amazon Pinpoint then sends that message to special email addresses spread across several major email providers. After about 24 hours, the test is complete, and you can use the <code>GetDeliverabilityTestReport</code> operation to view the results of the test.

        :param self:
        :param Tags:  An array of objects that define the tags (keys and values) that you want to associate with the predictive inbox placement test.<br/>Content:  The HTML body of the message that you sent when you performed the predictive inbox placement test.:<br/>FromEmailAddress:  The email address that the predictive inbox placement test email was sent from.<br/>ReportName:  A unique name that helps you to identify the predictive inbox placement test when you retrieve the results.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Template</i> The template to use for the email message.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Template</b>: The template to use for the email message.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Raw</i> The raw email message. The message has to meet the following criteria: <ul> <li> The message has to contain a header and a body, separated by one blank line. </li> <li> All of the required header fields must be present in the message. </li> <li> Each part of a multipart MIME message must be formatted properly. </li> <li> If you include attachments, they must be in a file format that Amazon Pinpoint supports.  </li> <li> The entire message must be Base64 encoded. </li> <li> If any of the MIME parts in your message contain content that is outside of the 7-bit ASCII character range, you should encode that content to ensure that recipients' email clients render the message properly. </li> <li> The length of any single line of text in the message can't exceed 1,000 characters. This restriction is defined in <a href="https://tools.ietf.org/html/rfc5321">RFC 5321</a>. </li> </ul>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Raw</b>: The raw email message. The message has to meet the following criteria: <ul> <li> The message has to contain a header and a body, separated by one blank line. </li> <li> All of the required header fields must be present in the message. </li> <li> Each part of a multipart MIME message must be formatted properly. </li> <li> If you include attachments, they must be in a file format that Amazon Pinpoint supports.  </li> <li> The entire message must be Base64 encoded. </li> <li> If any of the MIME parts in your message contain content that is outside of the 7-bit ASCII character range, you should encode that content to ensure that recipients' email clients render the message properly. </li> <li> The length of any single line of text in the message can't exceed 1,000 characters. This restriction is defined in <a href="https://tools.ietf.org/html/rfc5321">RFC 5321</a>. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Simple</i> The simple email message. The message consists of a subject and a message body.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Simple</b>: The simple email message. The message consists of a subject and a message body.<br/>The subject line of the email. The subject line can only contain 7-bit ASCII characters. However, you can specify non-ASCII characters in the subject line by using encoded-word syntax, as described in <a href="https://tools.ietf.org/html/rfc2047">RFC 2047</a>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Subject</b>: The subject line of the email. The subject line can only contain 7-bit ASCII characters. However, you can specify non-ASCII characters in the subject line by using encoded-word syntax, as described in <a href="https://tools.ietf.org/html/rfc2047">RFC 2047</a>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Data</i> The raw email message. The message has to meet the following criteria: <ul> <li> The message has to contain a header and a body, separated by one blank line. </li> <li> All of the required header fields must be present in the message. </li> <li> Each part of a multipart MIME message must be formatted properly. </li> <li> Attachments must be in a file format that Amazon Pinpoint supports.  </li> <li> The entire message must be Base64 encoded. </li> <li> If any of the MIME parts in your message contain content that is outside of the 7-bit ASCII character range, you should encode that content to ensure that recipients' email clients render the message properly. </li> <li> The length of any single line of text in the message can't exceed 1,000 characters. This restriction is defined in <a href="https://tools.ietf.org/html/rfc5321">RFC 5321</a>. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TemplateData</i> An object that defines the values to use for message variables in the template. This object is a set of key-value pairs. Each key defines a message variable in the template. The corresponding value defines the value to use for that variable.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TemplateArn</i> The Amazon Resource Name (ARN) of the template.<br/>
        :return: DeliverabilityTestStatus:  The status of the predictive inbox placement test. If the status is <code>IN_PROGRESS</code>, then the predictive inbox placement test is currently running. Predictive inbox placement tests are usually complete within 24 hours of creating the test. If the status is <code>COMPLETE</code>, then the test is finished, and you can use the <code>GetDeliverabilityTestReport</code> to view the results of the test.<br/>ReportId:  A unique string that identifies the predictive inbox placement test.<br/>        """
        pass

    def create_email_identity(self, EmailIdentity: str, Tags: List[Tag]=None) -> CreateEmailIdentityResponse:
        r"""Verifies an email identity for use with Amazon Pinpoint. In Amazon Pinpoint, an identity is an email address or domain that you use when you send email. Before you can use an identity to send email with Amazon Pinpoint, you first have to verify it. By verifying an address, you demonstrate that you're the owner of the address, and that you've given Amazon Pinpoint permission to send email from the address. When you verify an email address, Amazon Pinpoint sends an email to the address. Your email address is verified as soon as you follow the link in the verification email.  When you verify a domain, this operation provides a set of DKIM tokens, which you can convert into CNAME tokens. You add these CNAME tokens to the DNS configuration for your domain. Your domain is verified when Amazon Pinpoint detects these records in the DNS configuration for your domain. It usually takes around 72 hours to complete the domain verification process.

        :param self:
        :param Tags:  An array of objects that define the tags (keys and values) that you want to associate with the email identity.<br/>EmailIdentity:  The email address or domain that you want to verify.<br/>
        :return: DkimAttributes:  An object that contains information about the DKIM attributes for the identity. This object includes the tokens that you use to create the CNAME records that are required to complete the DKIM verification process.:<br/>VerifiedForSendingStatus:  Specifies whether or not the identity is verified. In Amazon Pinpoint, you can only send email from verified email addresses or domains. For more information about verifying identities, see the <a href="https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-email-manage-verify.html">Amazon Pinpoint User Guide</a>.<br/>IdentityType:  The email identity type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tokens</i> A set of unique strings that you use to create a set of CNAME records that you add to the DNS configuration for your domain. When Amazon Pinpoint detects these records in the DNS configuration for your domain, the DKIM authentication process is complete. Amazon Pinpoint usually detects these records within about 72 hours of adding them to the DNS configuration for your domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Describes whether or not Amazon Pinpoint has successfully located the DKIM records in the DNS records for the domain. The status can be one of the following: <ul> <li>  <code>PENDING</code> – Amazon Pinpoint hasn't yet located the DKIM records in the DNS configuration for the domain, but will continue to attempt to locate them. </li> <li>  <code>SUCCESS</code> – Amazon Pinpoint located the DKIM records in the DNS configuration for the domain and determined that they're correct. Amazon Pinpoint can now send DKIM-signed email from the identity. </li> <li>  <code>FAILED</code> – Amazon Pinpoint was unable to locate the DKIM records in the DNS settings for the domain, and won't continue to search for them. </li> <li>  <code>TEMPORARY_FAILURE</code> – A temporary issue occurred, which prevented Amazon Pinpoint from determining the DKIM status for the domain. </li> <li>  <code>NOT_STARTED</code> – Amazon Pinpoint hasn't yet started searching for the DKIM records in the DKIM records for the domain. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SigningEnabled</i> If the value is <code>true</code>, then the messages that Amazon Pinpoint sends from the identity are DKIM-signed. If the value is <code>false</code>, then the messages that Amazon Pinpoint sends from the identity aren't DKIM-signed.<br/>        """
        pass

    def delete_configuration_set(self, ConfigurationSetName: str) -> DeleteConfigurationSetResponse:
        r"""Delete an existing configuration set. In Amazon Pinpoint, <i>configuration sets</i> are groups of rules that you can apply to the emails you send. You apply a configuration set to an email by including a reference to the configuration set in the headers of the email. When you apply a configuration set to an email, all of the rules in that configuration set are applied to the email.

        :param self:
        :param ConfigurationSetName:  The name of the configuration set that you want to delete.<br/>
        :return:         """
        pass

    def delete_configuration_set_event_destination(self, EventDestinationName: str, ConfigurationSetName: str) -> DeleteConfigurationSetEventDestinationResponse:
        r"""Delete an event destination. In Amazon Pinpoint, <i>events</i> include message sends, deliveries, opens, clicks, bounces, and complaints. <i>Event destinations</i> are places that you can send information about these events to. For example, you can send event data to Amazon SNS to receive notifications when you receive bounces or complaints, or you can use Amazon Kinesis Data Firehose to stream data to Amazon S3 for long-term storage.

        :param self:
        :param EventDestinationName:  The name of the event destination that you want to delete.<br/>ConfigurationSetName:  The name of the configuration set that contains the event destination that you want to delete.<br/>
        :return:         """
        pass

    def delete_dedicated_ip_pool(self, PoolName: str) -> DeleteDedicatedIpPoolResponse:
        r"""Delete a dedicated IP pool.

        :param self:
        :param PoolName:  The name of the dedicated IP pool that you want to delete.<br/>
        :return:         """
        pass

    def delete_email_identity(self, EmailIdentity: str) -> DeleteEmailIdentityResponse:
        r"""Deletes an email identity that you previously verified for use with Amazon Pinpoint. An identity can be either an email address or a domain name.

        :param self:
        :param EmailIdentity:  The identity (that is, the email address or domain) that you want to delete from your Amazon Pinpoint account.<br/>
        :return:         """
        pass

    def get_account(self) -> GetAccountResponse:
        r"""Obtain information about the email-sending status and capabilities of your Amazon Pinpoint account in the current AWS Region.

        :param self:
        :param 
        :return: ProductionAccessEnabled:  Indicates whether or not your account has production access in the current AWS Region. If the value is <code>false</code>, then your account is in the <i>sandbox</i>. When your account is in the sandbox, you can only send email to verified identities. Additionally, the maximum number of emails you can send in a 24-hour period (your sending quota) is 200, and the maximum number of emails you can send per second (your maximum sending rate) is 1. If the value is <code>true</code>, then your account has production access. When your account has production access, you can send email to any address. The sending quota and maximum sending rate for your account vary based on your specific use case.<br/>EnforcementStatus:  The reputation status of your Amazon Pinpoint account. The status can be one of the following: <ul> <li>  <code>HEALTHY</code> – There are no reputation-related issues that currently impact your account. </li> <li>  <code>PROBATION</code> – We've identified some issues with your Amazon Pinpoint account. We're placing your account under review while you work on correcting these issues. </li> <li>  <code>SHUTDOWN</code> – Your account's ability to send email is currently paused because of an issue with the email sent from your account. When you correct the issue, you can contact us and request that your account's ability to send email is resumed. </li> </ul><br/>DedicatedIpAutoWarmupEnabled:  Indicates whether or not the automatic warm-up feature is enabled for dedicated IP addresses that are associated with your account.<br/>SendingEnabled:  Indicates whether or not email sending is enabled for your Amazon Pinpoint account in the current AWS Region.<br/>SendQuota:  An object that contains information about the per-day and per-second sending limits for your Amazon Pinpoint account in the current AWS Region.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SentLast24Hours</i> The number of emails sent from your Amazon Pinpoint account in the current AWS Region over the past 24 hours.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxSendRate</i> The maximum number of emails that you can send per second in the current AWS Region. This value is also called your <i>maximum sending rate</i> or your <i>maximum TPS (transactions per second) rate</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Max24HourSend</i> The maximum number of emails that you can send in the current AWS Region over a 24-hour period. This value is also called your <i>sending quota</i>.<br/>        """
        pass

    def get_blacklist_reports(self, BlacklistItemNames: List[BlacklistItemName]) -> GetBlacklistReportsResponse:
        r"""Retrieve a list of the blacklists that your dedicated IP addresses appear on.

        :param self:
        :param BlacklistItemNames:  A list of IP addresses that you want to retrieve blacklist information about. You can only specify the dedicated IP addresses that you use to send email using Amazon Pinpoint or Amazon SES.<br/>
        :return: BlacklistReport:  An object that contains information about a blacklist that one of your dedicated IP addresses appears on.<br/>        """
        pass

    def get_configuration_set(self, ConfigurationSetName: str) -> GetConfigurationSetResponse:
        r"""Get information about an existing configuration set, including the dedicated IP pool that it's associated with, whether or not it's enabled for sending email, and more. In Amazon Pinpoint, <i>configuration sets</i> are groups of rules that you can apply to the emails you send. You apply a configuration set to an email by including a reference to the configuration set in the headers of the email. When you apply a configuration set to an email, all of the rules in that configuration set are applied to the email.

        :param self:
        :param ConfigurationSetName:  The name of the configuration set that you want to obtain more information about.<br/>
        :return: Tags:  An array of objects that define the tags (keys and values) that are associated with the configuration set.<br/>SendingOptions:  An object that defines whether or not Amazon Pinpoint can send email that you send using the configuration set.:<br/>ReputationOptions:  An object that defines whether or not Amazon Pinpoint collects reputation metrics for the emails that you send that use the configuration set.:<br/>DeliveryOptions:  An object that defines the dedicated IP pool that is used to send emails that you send using the configuration set.:<br/>TrackingOptions:  An object that defines the open and click tracking options for emails that you send using the configuration set.:<br/>ConfigurationSetName:  The name of the configuration set.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomRedirectDomain</i> The domain that you want to use for tracking open and click events.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SendingPoolName</i> The name of the dedicated IP pool that you want to associate with the configuration set.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TlsPolicy</i> Specifies whether messages that use the configuration set are required to use Transport Layer Security (TLS). If the value is <code>Require</code>, messages are only delivered if a TLS connection can be established. If the value is <code>Optional</code>, messages can be delivered in plain text if a TLS connection can't be established.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastFreshStart</i> The date and time (in Unix time) when the reputation metrics were last given a fresh start. When your account is given a fresh start, your reputation metrics are calculated starting from the date of the fresh start.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReputationMetricsEnabled</i> If <code>true</code>, tracking of reputation metrics is enabled for the configuration set. If <code>false</code>, tracking of reputation metrics is disabled for the configuration set.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SendingEnabled</i> If <code>true</code>, email sending is enabled for the configuration set. If <code>false</code>, email sending is disabled for the configuration set.<br/>        """
        pass

    def get_configuration_set_event_destinations(self, ConfigurationSetName: str) -> GetConfigurationSetEventDestinationsResponse:
        r"""Retrieve a list of event destinations that are associated with a configuration set. In Amazon Pinpoint, <i>events</i> include message sends, deliveries, opens, clicks, bounces, and complaints. <i>Event destinations</i> are places that you can send information about these events to. For example, you can send event data to Amazon SNS to receive notifications when you receive bounces or complaints, or you can use Amazon Kinesis Data Firehose to stream data to Amazon S3 for long-term storage.

        :param self:
        :param ConfigurationSetName:  The name of the configuration set that contains the event destination.<br/>
        :return: EventDestinations:  An array that includes all of the events destinations that have been configured for the configuration set.<br/>        """
        pass

    def get_dedicated_ip(self, Ip: str) -> GetDedicatedIpResponse:
        r"""Get information about a dedicated IP address, including the name of the dedicated IP pool that it's associated with, as well information about the automatic warm-up process for the address.

        :param self:
        :param Ip:  The IP address that you want to obtain more information about. The value you specify has to be a dedicated IP address that's assocaited with your Amazon Pinpoint account.<br/>
        :return: DedicatedIp:  An object that contains information about a dedicated IP address.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PoolName</i> The name of the dedicated IP pool that the IP address is associated with.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WarmupPercentage</i> Indicates how complete the dedicated IP warm-up process is. When this value equals 1, the address has completed the warm-up process and is ready for use.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WarmupStatus</i> The warm-up status of a dedicated IP address. The status can have one of the following values: <ul> <li>  <code>IN_PROGRESS</code> – The IP address isn't ready to use because the dedicated IP warm-up process is ongoing. </li> <li>  <code>DONE</code> – The dedicated IP warm-up process is complete, and the IP address is ready to use. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Ip</i> An IP address that is reserved for use by your Amazon Pinpoint account.<br/>        """
        pass

    def get_dedicated_ips(self, PoolName: str=None, NextToken: str=None, PageSize: int=None) -> GetDedicatedIpsResponse:
        r"""List the dedicated IP addresses that are associated with your Amazon Pinpoint account.

        :param self:
        :param PageSize:  The number of results to show in a single call to <code>GetDedicatedIpsRequest</code>. If the number of results is larger than the number you specified in this parameter, then the response includes a <code>NextToken</code> element, which you can use to obtain additional results.<br/>NextToken:  A token returned from a previous call to <code>GetDedicatedIps</code> to indicate the position of the dedicated IP pool in the list of IP pools.<br/>PoolName:  The name of the IP pool that the dedicated IP address is associated with.<br/>
        :return: NextToken:  A token that indicates that there are additional dedicated IP addresses to list. To view additional addresses, issue another request to <code>GetDedicatedIps</code>, passing this token in the <code>NextToken</code> parameter.<br/>DedicatedIps:  A list of dedicated IP addresses that are reserved for use by your Amazon Pinpoint account.<br/>        """
        pass

    def get_deliverability_dashboard_options(self) -> GetDeliverabilityDashboardOptionsResponse:
        r"""Retrieve information about the status of the Deliverability dashboard for your Amazon Pinpoint account. When the Deliverability dashboard is enabled, you gain access to reputation, deliverability, and other metrics for the domains that you use to send email using Amazon Pinpoint. You also gain the ability to perform predictive inbox placement tests. When you use the Deliverability dashboard, you pay a monthly subscription charge, in addition to any other fees that you accrue by using Amazon Pinpoint. For more information about the features and cost of a Deliverability dashboard subscription, see <a href="http://aws.amazon.com/pinpoint/pricing/">Amazon Pinpoint Pricing</a>.

        :param self:
        :param 
        :return: PendingExpirationSubscribedDomains:  An array of objects, one for each verified domain that you use to send email and currently has an active Deliverability dashboard subscription that's scheduled to expire at the end of the current calendar month.<br/>ActiveSubscribedDomains:  An array of objects, one for each verified domain that you use to send email and currently has an active Deliverability dashboard subscription that isn’t scheduled to expire at the end of the current calendar month.<br/>AccountStatus:  The current status of your Deliverability dashboard subscription. If this value is <code>PENDING_EXPIRATION</code>, your subscription is scheduled to expire at the end of the current calendar month.<br/>SubscriptionExpiryDate:  The date, in Unix time format, when your current subscription to the Deliverability dashboard is scheduled to expire, if your subscription is scheduled to expire at the end of the current calendar month. This value is null if you have an active subscription that isn’t due to expire at the end of the month.<br/>DashboardEnabled:  Specifies whether the Deliverability dashboard is enabled for your Amazon Pinpoint account. If this value is <code>true</code>, the dashboard is enabled.<br/>        """
        pass

    def get_deliverability_test_report(self, ReportId: str) -> GetDeliverabilityTestReportResponse:
        r"""Retrieve the results of a predictive inbox placement test.

        :param self:
        :param ReportId:  A unique string that identifies the predictive inbox placement test.<br/>
        :return: Tags:  An array of objects that define the tags (keys and values) that are associated with the predictive inbox placement test.<br/>Message:  An object that contains the message that you sent when you performed this predictive inbox placement test.<br/>IspPlacements:  An object that describes how the test email was handled by several email providers, including Gmail, Hotmail, Yahoo, AOL, and others.<br/>OverallPlacement:  An object that specifies how many test messages that were sent during the predictive inbox placement test were delivered to recipients' inboxes, how many were sent to recipients' spam folders, and how many weren't delivered.:<br/>DeliverabilityTestReport:  An object that contains the results of the predictive inbox placement test.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeliverabilityTestStatus</i> The status of the predictive inbox placement test. If the status is <code>IN_PROGRESS</code>, then the predictive inbox placement test is currently running. Predictive inbox placement tests are usually complete within 24 hours of creating the test. If the status is <code>COMPLETE</code>, then the test is finished, and you can use the <code>GetDeliverabilityTestReport</code> to view the results of the test.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreateDate</i> The date and time when the predictive inbox placement test was created, in Unix time format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FromEmailAddress</i> The sender address that you specified for the predictive inbox placement test.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Subject</i> The subject line for an email that you submitted in a predictive inbox placement test.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReportName</i> A name that helps you identify a predictive inbox placement test report.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReportId</i> A unique string that identifies the predictive inbox placement test.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DkimPercentage</i> The percentage of emails that were authenticated by using DomainKeys Identified Mail (DKIM) during the predictive inbox placement test.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SpfPercentage</i> The percentage of emails that were authenticated by using Sender Policy Framework (SPF) during the predictive inbox placement test.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MissingPercentage</i> The percentage of emails that didn't arrive in recipients' inboxes at all during the predictive inbox placement test.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SpamPercentage</i> The percentage of emails that arrived in recipients' spam or junk mail folders during the predictive inbox placement test.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InboxPercentage</i> The percentage of emails that arrived in recipients' inboxes during the predictive inbox placement test.<br/>        """
        pass

    def get_domain_deliverability_campaign(self, CampaignId: str) -> GetDomainDeliverabilityCampaignResponse:
        r"""Retrieve all the deliverability data for a specific campaign. This data is available for a campaign only if the campaign sent email by using a domain that the Deliverability dashboard is enabled for (<code>PutDeliverabilityDashboardOption</code> operation).

        :param self:
        :param CampaignId:  The unique identifier for the campaign. Amazon Pinpoint automatically generates and assigns this identifier to a campaign. This value is not the same as the campaign identifier that Amazon Pinpoint assigns to campaigns that you create and manage by using the Amazon Pinpoint API or the Amazon Pinpoint console.<br/>
        :return: DomainDeliverabilityCampaign:  An object that contains the deliverability data for the campaign.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Esps</i> The major email providers who handled the email message.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProjectedVolume</i> The projected number of recipients that the email message was sent to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadDeleteRate</i> The percentage of email messages that were opened and then deleted by recipients. Due to technical limitations, this value only includes recipients who opened the message by using an email client that supports images.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeleteRate</i> The percentage of email messages that were deleted by recipients, without being opened first. Due to technical limitations, this value only includes recipients who opened the message by using an email client that supports images.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadRate</i> The percentage of email messages that were opened by recipients. Due to technical limitations, this value only includes recipients who opened the message by using an email client that supports images.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SpamCount</i> The number of email messages that were delivered to recipients' spam or junk mail folders.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InboxCount</i> The number of email messages that were delivered to recipients’ inboxes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastSeenDateTime</i> The last time, in Unix time format, when the email message was delivered to any recipient's inbox. This value can help you determine how long it took for a campaign to deliver an email message.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FirstSeenDateTime</i> The first time, in Unix time format, when the email message was delivered to any recipient's inbox. This value can help you determine how long it took for a campaign to deliver an email message.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SendingIps</i> The IP addresses that were used to send the email message.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FromAddress</i> The verified email address that the email message was sent from.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Subject</i> The subject line, or title, of the email message.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImageUrl</i> The URL of an image that contains a snapshot of the email message that was sent.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CampaignId</i> The unique identifier for the campaign. Amazon Pinpoint automatically generates and assigns this identifier to a campaign. This value is not the same as the campaign identifier that Amazon Pinpoint assigns to campaigns that you create and manage by using the Amazon Pinpoint API or the Amazon Pinpoint console.<br/>        """
        pass

    def get_domain_statistics_report(self, EndDate: Timestamp, StartDate: Timestamp, Domain: str) -> GetDomainStatisticsReportResponse:
        r"""Retrieve inbox placement and engagement rates for the domains that you use to send email.

        :param self:
        :param EndDate:  The last day (in Unix time) that you want to obtain domain deliverability metrics for. The <code>EndDate</code> that you specify has to be less than or equal to 30 days after the <code>StartDate</code>.<br/>StartDate:  The first day (in Unix time) that you want to obtain domain deliverability metrics for.<br/>Domain:  The domain that you want to obtain deliverability metrics for.<br/>
        :return: DailyVolumes:  An object that contains deliverability metrics for the domain that you specified. This object contains data for each day, starting on the <code>StartDate</code> and ending on the <code>EndDate</code>.<br/>OverallVolume:  An object that contains deliverability metrics for the domain that you specified. The data in this object is a summary of all of the data that was collected from the <code>StartDate</code> to the <code>EndDate</code>.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainIspPlacements</i> An object that contains inbox and junk mail placement metrics for individual email providers.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadRatePercent</i> The percentage of emails that were sent from the domain that were read by their recipients.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VolumeStatistics</i> An object that contains information about the numbers of messages that arrived in recipients' inboxes and junk mail folders.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>VolumeStatistics</b>: An object that contains information about the numbers of messages that arrived in recipients' inboxes and junk mail folders.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ProjectedSpam</i> An estimate of the percentage of emails sent from the current domain that will arrive in recipients' spam or junk mail folders.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ProjectedInbox</i> An estimate of the percentage of emails sent from the current domain that will arrive in recipients' inboxes.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SpamRawCount</i> The total number of emails that arrived in recipients' spam or junk mail folders.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InboxRawCount</i> The total number of emails that arrived in recipients' inboxes.<br/>        """
        pass

    def get_email_identity(self, EmailIdentity: str) -> GetEmailIdentityResponse:
        r"""Provides information about a specific identity associated with your Amazon Pinpoint account, including the identity's verification status, its DKIM authentication status, and its custom Mail-From settings.

        :param self:
        :param EmailIdentity:  The email identity that you want to retrieve details for.<br/>
        :return: Tags:  An array of objects that define the tags (keys and values) that are associated with the email identity.<br/>MailFromAttributes:  An object that contains information about the Mail-From attributes for the email identity.:<br/>DkimAttributes:  An object that contains information about the DKIM attributes for the identity. This object includes the tokens that you use to create the CNAME records that are required to complete the DKIM verification process.:<br/>VerifiedForSendingStatus:  Specifies whether or not the identity is verified. In Amazon Pinpoint, you can only send email from verified email addresses or domains. For more information about verifying identities, see the <a href="https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-email-manage-verify.html">Amazon Pinpoint User Guide</a>.<br/>FeedbackForwardingStatus:  The feedback forwarding configuration for the identity. If the value is <code>true</code>, Amazon Pinpoint sends you email notifications when bounce or complaint events occur. Amazon Pinpoint sends this notification to the address that you specified in the Return-Path header of the original email. When you set this value to <code>false</code>, Amazon Pinpoint sends notifications through other mechanisms, such as by notifying an Amazon SNS topic or another event destination. You're required to have a method of tracking bounces and complaints. If you haven't set up another mechanism for receiving bounce or complaint notifications, Amazon Pinpoint sends an email notification when these events occur (even if this setting is disabled).<br/>IdentityType:  The email identity type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tokens</i> A set of unique strings that you use to create a set of CNAME records that you add to the DNS configuration for your domain. When Amazon Pinpoint detects these records in the DNS configuration for your domain, the DKIM authentication process is complete. Amazon Pinpoint usually detects these records within about 72 hours of adding them to the DNS configuration for your domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Describes whether or not Amazon Pinpoint has successfully located the DKIM records in the DNS records for the domain. The status can be one of the following: <ul> <li>  <code>PENDING</code> – Amazon Pinpoint hasn't yet located the DKIM records in the DNS configuration for the domain, but will continue to attempt to locate them. </li> <li>  <code>SUCCESS</code> – Amazon Pinpoint located the DKIM records in the DNS configuration for the domain and determined that they're correct. Amazon Pinpoint can now send DKIM-signed email from the identity. </li> <li>  <code>FAILED</code> – Amazon Pinpoint was unable to locate the DKIM records in the DNS settings for the domain, and won't continue to search for them. </li> <li>  <code>TEMPORARY_FAILURE</code> – A temporary issue occurred, which prevented Amazon Pinpoint from determining the DKIM status for the domain. </li> <li>  <code>NOT_STARTED</code> – Amazon Pinpoint hasn't yet started searching for the DKIM records in the DKIM records for the domain. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SigningEnabled</i> If the value is <code>true</code>, then the messages that Amazon Pinpoint sends from the identity are DKIM-signed. If the value is <code>false</code>, then the messages that Amazon Pinpoint sends from the identity aren't DKIM-signed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BehaviorOnMxFailure</i> The action that Amazon Pinpoint to takes if it can't read the required MX record for a custom MAIL FROM domain. When you set this value to <code>UseDefaultValue</code>, Amazon Pinpoint uses <i>amazonses.com</i> as the MAIL FROM domain. When you set this value to <code>RejectMessage</code>, Amazon Pinpoint returns a <code>MailFromDomainNotVerified</code> error, and doesn't attempt to deliver the email. These behaviors are taken when the custom MAIL FROM domain configuration is in the <code>Pending</code>, <code>Failed</code>, and <code>TemporaryFailure</code> states.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MailFromDomainStatus</i> The status of the MAIL FROM domain. This status can have the following values: <ul> <li>  <code>PENDING</code> – Amazon Pinpoint hasn't started searching for the MX record yet. </li> <li>  <code>SUCCESS</code> – Amazon Pinpoint detected the required MX record for the MAIL FROM domain. </li> <li>  <code>FAILED</code> – Amazon Pinpoint can't find the required MX record, or the record no longer exists. </li> <li>  <code>TEMPORARY_FAILURE</code> – A temporary issue occurred, which prevented Amazon Pinpoint from determining the status of the MAIL FROM domain. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MailFromDomain</i> The name of a domain that an email identity uses as a custom MAIL FROM domain.<br/>        """
        pass

    def list_configuration_sets(self, NextToken: str=None, PageSize: int=None) -> ListConfigurationSetsResponse:
        r"""List all of the configuration sets associated with your Amazon Pinpoint account in the current region. In Amazon Pinpoint, <i>configuration sets</i> are groups of rules that you can apply to the emails you send. You apply a configuration set to an email by including a reference to the configuration set in the headers of the email. When you apply a configuration set to an email, all of the rules in that configuration set are applied to the email.

        :param self:
        :param PageSize:  The number of results to show in a single call to <code>ListConfigurationSets</code>. If the number of results is larger than the number you specified in this parameter, then the response includes a <code>NextToken</code> element, which you can use to obtain additional results.<br/>NextToken:  A token returned from a previous call to <code>ListConfigurationSets</code> to indicate the position in the list of configuration sets.<br/>
        :return: NextToken:  A token that indicates that there are additional configuration sets to list. To view additional configuration sets, issue another request to <code>ListConfigurationSets</code>, and pass this token in the <code>NextToken</code> parameter.<br/>ConfigurationSets:  An array that contains all of the configuration sets in your Amazon Pinpoint account in the current AWS Region.<br/>        """
        pass

    def list_dedicated_ip_pools(self, NextToken: str=None, PageSize: int=None) -> ListDedicatedIpPoolsResponse:
        r"""List all of the dedicated IP pools that exist in your Amazon Pinpoint account in the current AWS Region.

        :param self:
        :param PageSize:  The number of results to show in a single call to <code>ListDedicatedIpPools</code>. If the number of results is larger than the number you specified in this parameter, then the response includes a <code>NextToken</code> element, which you can use to obtain additional results.<br/>NextToken:  A token returned from a previous call to <code>ListDedicatedIpPools</code> to indicate the position in the list of dedicated IP pools.<br/>
        :return: NextToken:  A token that indicates that there are additional IP pools to list. To view additional IP pools, issue another request to <code>ListDedicatedIpPools</code>, passing this token in the <code>NextToken</code> parameter.<br/>DedicatedIpPools:  A list of all of the dedicated IP pools that are associated with your Amazon Pinpoint account.<br/>        """
        pass

    def list_deliverability_test_reports(self, NextToken: str=None, PageSize: int=None) -> ListDeliverabilityTestReportsResponse:
        r"""Show a list of the predictive inbox placement tests that you've performed, regardless of their statuses. For predictive inbox placement tests that are complete, you can use the <code>GetDeliverabilityTestReport</code> operation to view the results.

        :param self:
        :param PageSize:  The number of results to show in a single call to <code>ListDeliverabilityTestReports</code>. If the number of results is larger than the number you specified in this parameter, then the response includes a <code>NextToken</code> element, which you can use to obtain additional results. The value you specify has to be at least 0, and can be no more than 1000.<br/>NextToken:  A token returned from a previous call to <code>ListDeliverabilityTestReports</code> to indicate the position in the list of predictive inbox placement tests.<br/>
        :return: NextToken:  A token that indicates that there are additional predictive inbox placement tests to list. To view additional predictive inbox placement tests, issue another request to <code>ListDeliverabilityTestReports</code>, and pass this token in the <code>NextToken</code> parameter.<br/>DeliverabilityTestReports:  An object that contains a lists of predictive inbox placement tests that you've performed.<br/>        """
        pass

    def list_domain_deliverability_campaigns(self, SubscribedDomain: str, EndDate: Timestamp, StartDate: Timestamp, NextToken: str=None, PageSize: int=None) -> ListDomainDeliverabilityCampaignsResponse:
        r"""Retrieve deliverability data for all the campaigns that used a specific domain to send email during a specified time range. This data is available for a domain only if you enabled the Deliverability dashboard (<code>PutDeliverabilityDashboardOption</code> operation) for the domain.

        :param self:
        :param PageSize:  The maximum number of results to include in response to a single call to the <code>ListDomainDeliverabilityCampaigns</code> operation. If the number of results is larger than the number that you specify in this parameter, the response includes a <code>NextToken</code> element, which you can use to obtain additional results.<br/>NextToken:  A token that’s returned from a previous call to the <code>ListDomainDeliverabilityCampaigns</code> operation. This token indicates the position of a campaign in the list of campaigns.<br/>SubscribedDomain:  The domain to obtain deliverability data for.<br/>EndDate:  The last day, in Unix time format, that you want to obtain deliverability data for. This value has to be less than or equal to 30 days after the value of the <code>StartDate</code> parameter.<br/>StartDate:  The first day, in Unix time format, that you want to obtain deliverability data for.<br/>
        :return: NextToken:  A token that’s returned from a previous call to the <code>ListDomainDeliverabilityCampaigns</code> operation. This token indicates the position of the campaign in the list of campaigns.<br/>DomainDeliverabilityCampaigns:  An array of responses, one for each campaign that used the domain to send email during the specified time range.<br/>        """
        pass

    def list_email_identities(self, NextToken: str=None, PageSize: int=None) -> ListEmailIdentitiesResponse:
        r"""Returns a list of all of the email identities that are associated with your Amazon Pinpoint account. An identity can be either an email address or a domain. This operation returns identities that are verified as well as those that aren't.

        :param self:
        :param PageSize:  The number of results to show in a single call to <code>ListEmailIdentities</code>. If the number of results is larger than the number you specified in this parameter, then the response includes a <code>NextToken</code> element, which you can use to obtain additional results. The value you specify has to be at least 0, and can be no more than 1000.<br/>NextToken:  A token returned from a previous call to <code>ListEmailIdentities</code> to indicate the position in the list of identities.<br/>
        :return: NextToken:  A token that indicates that there are additional configuration sets to list. To view additional configuration sets, issue another request to <code>ListEmailIdentities</code>, and pass this token in the <code>NextToken</code> parameter.<br/>EmailIdentities:  An array that includes all of the identities associated with your Amazon Pinpoint account.<br/>        """
        pass

    def list_tags_for_resource(self, ResourceArn: str) -> ListTagsForResourceResponse:
        r"""Retrieve a list of the tags (keys and values) that are associated with a specified resource. A <i>tag</i> is a label that you optionally define and associate with a resource in Amazon Pinpoint. Each tag consists of a required <i>tag key</i> and an optional associated <i>tag value</i>. A tag key is a general label that acts as a category for more specific tag values. A tag value acts as a descriptor within a tag key.

        :param self:
        :param ResourceArn:  The Amazon Resource Name (ARN) of the resource that you want to retrieve tag information for.<br/>
        :return: Tags:  An array that lists all the tags that are associated with the resource. Each tag consists of a required tag key (<code>Key</code>) and an associated tag value (<code>Value</code>)<br/>        """
        pass

    def put_account_dedicated_ip_warmup_attributes(self, AutoWarmupEnabled: Enabled=None) -> PutAccountDedicatedIpWarmupAttributesResponse:
        r"""Enable or disable the automatic warm-up feature for dedicated IP addresses.

        :param self:
        :param AutoWarmupEnabled:  Enables or disables the automatic warm-up feature for dedicated IP addresses that are associated with your Amazon Pinpoint account in the current AWS Region. Set to <code>true</code> to enable the automatic warm-up feature, or set to <code>false</code> to disable it.<br/>
        :return:         """
        pass

    def put_account_sending_attributes(self, SendingEnabled: Enabled=None) -> PutAccountSendingAttributesResponse:
        r"""Enable or disable the ability of your account to send email.

        :param self:
        :param SendingEnabled:  Enables or disables your account's ability to send email. Set to <code>true</code> to enable email sending, or set to <code>false</code> to disable email sending. <note> If AWS paused your account's ability to send email, you can't use this operation to resume your account's ability to send email. </note><br/>
        :return:         """
        pass

    def put_configuration_set_delivery_options(self, ConfigurationSetName: str, TlsPolicy: str=None, SendingPoolName: str=None) -> PutConfigurationSetDeliveryOptionsResponse:
        r"""Associate a configuration set with a dedicated IP pool. You can use dedicated IP pools to create groups of dedicated IP addresses for sending specific types of email.

        :param self:
        :param SendingPoolName:  The name of the dedicated IP pool that you want to associate with the configuration set.<br/>TlsPolicy:  Specifies whether messages that use the configuration set are required to use Transport Layer Security (TLS). If the value is <code>Require</code>, messages are only delivered if a TLS connection can be established. If the value is <code>Optional</code>, messages can be delivered in plain text if a TLS connection can't be established.<br/>ConfigurationSetName:  The name of the configuration set that you want to associate with a dedicated IP pool.<br/>
        :return:         """
        pass

    def put_configuration_set_reputation_options(self, ConfigurationSetName: str, ReputationMetricsEnabled: Enabled=None) -> PutConfigurationSetReputationOptionsResponse:
        r"""Enable or disable collection of reputation metrics for emails that you send using a particular configuration set in a specific AWS Region.

        :param self:
        :param ReputationMetricsEnabled:  If <code>true</code>, tracking of reputation metrics is enabled for the configuration set. If <code>false</code>, tracking of reputation metrics is disabled for the configuration set.<br/>ConfigurationSetName:  The name of the configuration set that you want to enable or disable reputation metric tracking for.<br/>
        :return:         """
        pass

    def put_configuration_set_sending_options(self, ConfigurationSetName: str, SendingEnabled: Enabled=None) -> PutConfigurationSetSendingOptionsResponse:
        r"""Enable or disable email sending for messages that use a particular configuration set in a specific AWS Region.

        :param self:
        :param SendingEnabled:  If <code>true</code>, email sending is enabled for the configuration set. If <code>false</code>, email sending is disabled for the configuration set.<br/>ConfigurationSetName:  The name of the configuration set that you want to enable or disable email sending for.<br/>
        :return:         """
        pass

    def put_configuration_set_tracking_options(self, ConfigurationSetName: str, CustomRedirectDomain: str=None) -> PutConfigurationSetTrackingOptionsResponse:
        r"""Specify a custom domain to use for open and click tracking elements in email that you send using Amazon Pinpoint.

        :param self:
        :param CustomRedirectDomain:  The domain that you want to use to track open and click events.<br/>ConfigurationSetName:  The name of the configuration set that you want to add a custom tracking domain to.<br/>
        :return:         """
        pass

    def put_dedicated_ip_in_pool(self, DestinationPoolName: str, Ip: str) -> PutDedicatedIpInPoolResponse:
        r"""Move a dedicated IP address to an existing dedicated IP pool. <note> The dedicated IP address that you specify must already exist, and must be associated with your Amazon Pinpoint account.  The dedicated IP pool you specify must already exist. You can create a new pool by using the <code>CreateDedicatedIpPool</code> operation. </note>

        :param self:
        :param DestinationPoolName:  The name of the IP pool that you want to add the dedicated IP address to. You have to specify an IP pool that already exists.<br/>Ip:  The IP address that you want to move to the dedicated IP pool. The value you specify has to be a dedicated IP address that's associated with your Amazon Pinpoint account.<br/>
        :return:         """
        pass

    def put_dedicated_ip_warmup_attributes(self, WarmupPercentage: int, Ip: str) -> PutDedicatedIpWarmupAttributesResponse:
        r"""<p/>

        :param self:
        :param WarmupPercentage:  The warm-up percentage that you want to associate with the dedicated IP address.<br/>Ip:  The dedicated IP address that you want to update the warm-up attributes for.<br/>
        :return:         """
        pass

    def put_deliverability_dashboard_option(self, DashboardEnabled: Enabled, SubscribedDomains: List[DomainDeliverabilityTrackingOption]=None) -> PutDeliverabilityDashboardOptionResponse:
        r"""Enable or disable the Deliverability dashboard for your Amazon Pinpoint account. When you enable the Deliverability dashboard, you gain access to reputation, deliverability, and other metrics for the domains that you use to send email using Amazon Pinpoint. You also gain the ability to perform predictive inbox placement tests. When you use the Deliverability dashboard, you pay a monthly subscription charge, in addition to any other fees that you accrue by using Amazon Pinpoint. For more information about the features and cost of a Deliverability dashboard subscription, see <a href="http://aws.amazon.com/pinpoint/pricing/">Amazon Pinpoint Pricing</a>.

        :param self:
        :param SubscribedDomains:  An array of objects, one for each verified domain that you use to send email and enabled the Deliverability dashboard for.<br/>DashboardEnabled:  Specifies whether to enable the Deliverability dashboard for your Amazon Pinpoint account. To enable the dashboard, set this value to <code>true</code>.<br/>
        :return:         """
        pass

    def put_email_identity_dkim_attributes(self, EmailIdentity: str, SigningEnabled: Enabled=None) -> PutEmailIdentityDkimAttributesResponse:
        r"""Used to enable or disable DKIM authentication for an email identity.

        :param self:
        :param SigningEnabled:  Sets the DKIM signing configuration for the identity. When you set this value <code>true</code>, then the messages that Amazon Pinpoint sends from the identity are DKIM-signed. When you set this value to <code>false</code>, then the messages that Amazon Pinpoint sends from the identity aren't DKIM-signed.<br/>EmailIdentity:  The email identity that you want to change the DKIM settings for.<br/>
        :return:         """
        pass

    def put_email_identity_feedback_attributes(self, EmailIdentity: str, EmailForwardingEnabled: Enabled=None) -> PutEmailIdentityFeedbackAttributesResponse:
        r"""Used to enable or disable feedback forwarding for an identity. This setting determines what happens when an identity is used to send an email that results in a bounce or complaint event. When you enable feedback forwarding, Amazon Pinpoint sends you email notifications when bounce or complaint events occur. Amazon Pinpoint sends this notification to the address that you specified in the Return-Path header of the original email. When you disable feedback forwarding, Amazon Pinpoint sends notifications through other mechanisms, such as by notifying an Amazon SNS topic. You're required to have a method of tracking bounces and complaints. If you haven't set up another mechanism for receiving bounce or complaint notifications, Amazon Pinpoint sends an email notification when these events occur (even if this setting is disabled).

        :param self:
        :param EmailForwardingEnabled:  Sets the feedback forwarding configuration for the identity. If the value is <code>true</code>, Amazon Pinpoint sends you email notifications when bounce or complaint events occur. Amazon Pinpoint sends this notification to the address that you specified in the Return-Path header of the original email. When you set this value to <code>false</code>, Amazon Pinpoint sends notifications through other mechanisms, such as by notifying an Amazon SNS topic or another event destination. You're required to have a method of tracking bounces and complaints. If you haven't set up another mechanism for receiving bounce or complaint notifications, Amazon Pinpoint sends an email notification when these events occur (even if this setting is disabled).<br/>EmailIdentity:  The email identity that you want to configure bounce and complaint feedback forwarding for.<br/>
        :return:         """
        pass

    def put_email_identity_mail_from_attributes(self, EmailIdentity: str, MailFromDomain: str=None, BehaviorOnMxFailure: str=None) -> PutEmailIdentityMailFromAttributesResponse:
        r"""Used to enable or disable the custom Mail-From domain configuration for an email identity.

        :param self:
        :param BehaviorOnMxFailure:  The action that you want Amazon Pinpoint to take if it can't read the required MX record when you send an email. When you set this value to <code>UseDefaultValue</code>, Amazon Pinpoint uses <i>amazonses.com</i> as the MAIL FROM domain. When you set this value to <code>RejectMessage</code>, Amazon Pinpoint returns a <code>MailFromDomainNotVerified</code> error, and doesn't attempt to deliver the email. These behaviors are taken when the custom MAIL FROM domain configuration is in the <code>Pending</code>, <code>Failed</code>, and <code>TemporaryFailure</code> states.<br/>MailFromDomain:   The custom MAIL FROM domain that you want the verified identity to use. The MAIL FROM domain must meet the following criteria: <ul> <li> It has to be a subdomain of the verified identity. </li> <li> It can't be used to receive email. </li> <li> It can't be used in a "From" address if the MAIL FROM domain is a destination for feedback forwarding emails. </li> </ul><br/>EmailIdentity:  The verified email identity that you want to set up the custom MAIL FROM domain for.<br/>
        :return:         """
        pass

    def send_email(self, Content: EmailContent, Destination: Destination, FromEmailAddress: str=None, ReplyToAddresses: List[EmailAddress]=None, FeedbackForwardingEmailAddress: str=None, EmailTags: List[MessageTag]=None, ConfigurationSetName: str=None) -> SendEmailResponse:
        r"""Sends an email message. You can use the Amazon Pinpoint Email API to send two types of messages: <ul> <li>  <b>Simple</b> – A standard email message. When you create this type of message, you specify the sender, the recipient, and the message body, and Amazon Pinpoint assembles the message for you. </li> <li>  <b>Raw</b> – A raw, MIME-formatted email message. When you send this type of email, you have to specify all of the message headers, as well as the message body. You can use this message type to send messages that contain attachments. The message that you specify has to be a valid MIME message. </li> </ul>

        :param self:
        :param ConfigurationSetName:  The name of the configuration set that you want to use when sending the email.<br/>EmailTags:  A list of tags, in the form of name/value pairs, to apply to an email that you send using the <code>SendEmail</code> operation. Tags correspond to characteristics of the email that you define, so that you can publish email sending events. <br/>Content:  An object that contains the body of the message. You can send either a Simple message or a Raw message.:<br/>FeedbackForwardingEmailAddress:  The address that Amazon Pinpoint should send bounce and complaint notifications to.<br/>ReplyToAddresses:  The "Reply-to" email addresses for the message. When the recipient replies to the message, each Reply-to address receives the reply.<br/>Destination:  An object that contains the recipients of the email message.:<br/>FromEmailAddress:  The email address that you want to use as the "From" address for the email. The address that you specify has to be verified. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BccAddresses</i> An array that contains the email addresses of the "BCC" (blind carbon copy) recipients for the email.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CcAddresses</i> An array that contains the email addresses of the "CC" (carbon copy) recipients for the email.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ToAddresses</i> An array that contains the email addresses of the "To" recipients for the email.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Template</i> The template to use for the email message.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Template</b>: The template to use for the email message.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Raw</i> The raw email message. The message has to meet the following criteria: <ul> <li> The message has to contain a header and a body, separated by one blank line. </li> <li> All of the required header fields must be present in the message. </li> <li> Each part of a multipart MIME message must be formatted properly. </li> <li> If you include attachments, they must be in a file format that Amazon Pinpoint supports.  </li> <li> The entire message must be Base64 encoded. </li> <li> If any of the MIME parts in your message contain content that is outside of the 7-bit ASCII character range, you should encode that content to ensure that recipients' email clients render the message properly. </li> <li> The length of any single line of text in the message can't exceed 1,000 characters. This restriction is defined in <a href="https://tools.ietf.org/html/rfc5321">RFC 5321</a>. </li> </ul>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Raw</b>: The raw email message. The message has to meet the following criteria: <ul> <li> The message has to contain a header and a body, separated by one blank line. </li> <li> All of the required header fields must be present in the message. </li> <li> Each part of a multipart MIME message must be formatted properly. </li> <li> If you include attachments, they must be in a file format that Amazon Pinpoint supports.  </li> <li> The entire message must be Base64 encoded. </li> <li> If any of the MIME parts in your message contain content that is outside of the 7-bit ASCII character range, you should encode that content to ensure that recipients' email clients render the message properly. </li> <li> The length of any single line of text in the message can't exceed 1,000 characters. This restriction is defined in <a href="https://tools.ietf.org/html/rfc5321">RFC 5321</a>. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Simple</i> The simple email message. The message consists of a subject and a message body.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Simple</b>: The simple email message. The message consists of a subject and a message body.<br/>The subject line of the email. The subject line can only contain 7-bit ASCII characters. However, you can specify non-ASCII characters in the subject line by using encoded-word syntax, as described in <a href="https://tools.ietf.org/html/rfc2047">RFC 2047</a>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Subject</b>: The subject line of the email. The subject line can only contain 7-bit ASCII characters. However, you can specify non-ASCII characters in the subject line by using encoded-word syntax, as described in <a href="https://tools.ietf.org/html/rfc2047">RFC 2047</a>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Data</i> The raw email message. The message has to meet the following criteria: <ul> <li> The message has to contain a header and a body, separated by one blank line. </li> <li> All of the required header fields must be present in the message. </li> <li> Each part of a multipart MIME message must be formatted properly. </li> <li> Attachments must be in a file format that Amazon Pinpoint supports.  </li> <li> The entire message must be Base64 encoded. </li> <li> If any of the MIME parts in your message contain content that is outside of the 7-bit ASCII character range, you should encode that content to ensure that recipients' email clients render the message properly. </li> <li> The length of any single line of text in the message can't exceed 1,000 characters. This restriction is defined in <a href="https://tools.ietf.org/html/rfc5321">RFC 5321</a>. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TemplateData</i> An object that defines the values to use for message variables in the template. This object is a set of key-value pairs. Each key defines a message variable in the template. The corresponding value defines the value to use for that variable.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TemplateArn</i> The Amazon Resource Name (ARN) of the template.<br/>
        :return: MessageId:  A unique identifier for the message that is generated when Amazon Pinpoint accepts the message. <note> It is possible for Amazon Pinpoint to accept a message without sending it. This can happen when the message you're trying to send has an attachment doesn't pass a virus check, or when you send a templated email that contains invalid personalization content, for example. </note><br/>        """
        pass

    def tag_resource(self, Tags: List[Tag], ResourceArn: str) -> TagResourceResponse:
        r"""Add one or more tags (keys and values) to a specified resource. A <i>tag</i> is a label that you optionally define and associate with a resource in Amazon Pinpoint. Tags can help you categorize and manage resources in different ways, such as by purpose, owner, environment, or other criteria. A resource can have as many as 50 tags. Each tag consists of a required <i>tag key</i> and an associated <i>tag value</i>, both of which you define. A tag key is a general label that acts as a category for more specific tag values. A tag value acts as a descriptor within a tag key.

        :param self:
        :param Tags:  A list of the tags that you want to add to the resource. A tag consists of a required tag key (<code>Key</code>) and an associated tag value (<code>Value</code>). The maximum length of a tag key is 128 characters. The maximum length of a tag value is 256 characters.<br/>ResourceArn:  The Amazon Resource Name (ARN) of the resource that you want to add one or more tags to.<br/>
        :return:         """
        pass

    def untag_resource(self, TagKeys: List[TagKey], ResourceArn: str) -> UntagResourceResponse:
        r"""Remove one or more tags (keys and values) from a specified resource.

        :param self:
        :param TagKeys:  The tags (tag keys) that you want to remove from the resource. When you specify a tag key, the action removes both that key and its associated tag value. To remove more than one tag from the resource, append the <code>TagKeys</code> parameter and argument for each additional tag to remove, separated by an ampersand. For example: <code>/v1/email/tags?ResourceArn=ResourceArn&amp;TagKeys=Key1&amp;TagKeys=Key2</code> <br/>ResourceArn:  The Amazon Resource Name (ARN) of the resource that you want to remove one or more tags from.<br/>
        :return:         """
        pass

    def update_configuration_set_event_destination(self, EventDestination: EventDestinationDefinition, EventDestinationName: str, ConfigurationSetName: str) -> UpdateConfigurationSetEventDestinationResponse:
        r"""Update the configuration of an event destination for a configuration set. In Amazon Pinpoint, <i>events</i> include message sends, deliveries, opens, clicks, bounces, and complaints. <i>Event destinations</i> are places that you can send information about these events to. For example, you can send event data to Amazon SNS to receive notifications when you receive bounces or complaints, or you can use Amazon Kinesis Data Firehose to stream data to Amazon S3 for long-term storage.

        :param self:
        :param EventDestination:  An object that defines the event destination.:<br/>EventDestinationName:  The name of the event destination that you want to modify.<br/>ConfigurationSetName:  The name of the configuration set that contains the event destination that you want to modify.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PinpointDestination</i> An object that defines a Amazon Pinpoint destination for email events. You can use Amazon Pinpoint events to create attributes in Amazon Pinpoint projects. You can use these attributes to create segments for your campaigns.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PinpointDestination</b>: An object that defines a Amazon Pinpoint destination for email events. You can use Amazon Pinpoint events to create attributes in Amazon Pinpoint projects. You can use these attributes to create segments for your campaigns.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnsDestination</i> An object that defines an Amazon SNS destination for email events. You can use Amazon SNS to send notification when certain email events occur.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SnsDestination</b>: An object that defines an Amazon SNS destination for email events. You can use Amazon SNS to send notification when certain email events occur.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudWatchDestination</i> An object that defines an Amazon CloudWatch destination for email events. You can use Amazon CloudWatch to monitor and gain insights on your email sending metrics.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CloudWatchDestination</b>: An object that defines an Amazon CloudWatch destination for email events. You can use Amazon CloudWatch to monitor and gain insights on your email sending metrics.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KinesisFirehoseDestination</i> An object that defines an Amazon Kinesis Data Firehose destination for email events. You can use Amazon Kinesis Data Firehose to stream data to other services, such as Amazon S3 and Amazon Redshift.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>KinesisFirehoseDestination</b>: An object that defines an Amazon Kinesis Data Firehose destination for email events. You can use Amazon Kinesis Data Firehose to stream data to other services, such as Amazon S3 and Amazon Redshift.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MatchingEventTypes</i> An array that specifies which events Amazon Pinpoint should send to the destinations in this <code>EventDestinationDefinition</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> If <code>true</code>, the event destination is enabled. When the event destination is enabled, the specified event types are sent to the destinations in this <code>EventDestinationDefinition</code>. If <code>false</code>, the event destination is disabled. When the event destination is disabled, events aren't sent to the specified destinations.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DeliveryStreamArn</i> The Amazon Resource Name (ARN) of the Amazon Kinesis Data Firehose stream that Amazon Pinpoint sends email events to.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IamRoleArn</i> The Amazon Resource Name (ARN) of the IAM role that Amazon Pinpoint uses when sending email events to the Amazon Kinesis Data Firehose stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DimensionConfigurations</i> An array of objects that define the dimensions to use when you send email events to Amazon CloudWatch.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TopicArn</i> The Amazon Resource Name (ARN) of the Amazon SNS topic that you want to publish email events to. For more information about Amazon SNS topics, see the <a href="https://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html">Amazon SNS Developer Guide</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationArn</i> The Amazon Resource Name (ARN) of the Amazon Pinpoint project that you want to send email events to.<br/>
        :return:         """
        pass





class PinpointSMSVoice(BaseClient):
    r"""Pinpoint SMS and Voice Messaging public facing APIs"""



    class CreateConfigurationSetRequest(Mapping):
        pass
    
    class CreateConfigurationSetResponse(Mapping):
        pass
    
    class CreateConfigurationSetEventDestinationRequest(Mapping):
        pass
    
    class CreateConfigurationSetEventDestinationResponse(Mapping):
        pass
    
    class EventDestinationDefinition(Mapping):
        pass
    
    class DeleteConfigurationSetRequest(Mapping):
        pass
    
    class DeleteConfigurationSetResponse(Mapping):
        pass
    
    class DeleteConfigurationSetEventDestinationRequest(Mapping):
        pass
    
    class DeleteConfigurationSetEventDestinationResponse(Mapping):
        pass
    
    class GetConfigurationSetEventDestinationsRequest(Mapping):
        pass
    
    class GetConfigurationSetEventDestinationsResponse(Mapping):
        pass
    
    class SendVoiceMessageRequest(Mapping):
        pass
    
    class SendVoiceMessageResponse(Mapping):
        pass
    
    class VoiceMessageContent(Mapping):
        pass
    
    class UpdateConfigurationSetEventDestinationRequest(Mapping):
        pass
    
    class UpdateConfigurationSetEventDestinationResponse(Mapping):
        pass
    
    def create_configuration_set(self, ConfigurationSetName: str=None) -> CreateConfigurationSetResponse:
        r"""Create a new configuration set. After you create the configuration set, you can add one or more event destinations to it.

        :param self:
        :param ConfigurationSetName:  The name that you want to give the configuration set.<br/>
        :return:         """
        pass

    def create_configuration_set_event_destination(self, ConfigurationSetName: str, EventDestination: EventDestinationDefinition=None, EventDestinationName: str=None) -> CreateConfigurationSetEventDestinationResponse:
        r"""Create a new event destination in a configuration set.

        :param self:
        :param EventDestinationName:  A name that identifies the event destination.<br/>EventDestination:  An object that defines a single event destination.:<br/>ConfigurationSetName:  ConfigurationSetName<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnsDestination</i> An object that contains information about an event destination that sends data to Amazon SNS.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SnsDestination</b>: An object that contains information about an event destination that sends data to Amazon SNS.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MatchingEventTypes</i> An array of EventDestination objects. Each EventDestination object includes ARNs and other information that define an event destination.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KinesisFirehoseDestination</i> An object that contains information about an event destination that sends data to Amazon Kinesis Data Firehose.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>KinesisFirehoseDestination</b>: An object that contains information about an event destination that sends data to Amazon Kinesis Data Firehose.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Indicates whether or not the event destination is enabled. If the event destination is enabled, then Amazon Pinpoint sends response data to the specified event destination.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudWatchLogsDestination</i> An object that contains information about an event destination that sends data to Amazon CloudWatch Logs.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CloudWatchLogsDestination</b>: An object that contains information about an event destination that sends data to Amazon CloudWatch Logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LogGroupArn</i> The name of the Amazon CloudWatch Log Group that you want to record events in.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IamRoleArn</i> The Amazon Resource Name (ARN) of an Amazon Identity and Access Management (IAM) role that is able to write event data to an Amazon CloudWatch destination.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IamRoleArn</i> The Amazon Resource Name (ARN) of the Amazon Kinesis Data Firehose destination that you want to use in the event destination.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DeliveryStreamArn</i> The Amazon Resource Name (ARN) of an IAM role that can write data to an Amazon Kinesis Data Firehose stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TopicArn</i> The Amazon Resource Name (ARN) of the Amazon SNS topic that you want to publish events to.<br/>
        :return:         """
        pass

    def delete_configuration_set(self, ConfigurationSetName: str) -> DeleteConfigurationSetResponse:
        r"""Deletes an existing configuration set.

        :param self:
        :param ConfigurationSetName:  ConfigurationSetName<br/>
        :return:         """
        pass

    def delete_configuration_set_event_destination(self, EventDestinationName: str, ConfigurationSetName: str) -> DeleteConfigurationSetEventDestinationResponse:
        r"""Deletes an event destination in a configuration set.

        :param self:
        :param EventDestinationName:  EventDestinationName<br/>ConfigurationSetName:  ConfigurationSetName<br/>
        :return:         """
        pass

    def get_configuration_set_event_destinations(self, ConfigurationSetName: str) -> GetConfigurationSetEventDestinationsResponse:
        r"""Obtain information about an event destination, including the types of events it reports, the Amazon Resource Name (ARN) of the destination, and the name of the event destination.

        :param self:
        :param ConfigurationSetName:  ConfigurationSetName<br/>
        :return: EventDestinations:  An array of EventDestination objects. Each EventDestination object includes ARNs and other information that define an event destination.<br/>        """
        pass

    def send_voice_message(self, CallerId: str=None, ConfigurationSetName: str=None, Content: VoiceMessageContent=None, DestinationPhoneNumber: str=None, OriginationPhoneNumber: str=None) -> SendVoiceMessageResponse:
        r"""Create a new voice message and send it to a recipient's phone number.

        :param self:
        :param OriginationPhoneNumber:  The phone number that Amazon Pinpoint should use to send the voice message. This isn't necessarily the phone number that appears on recipients' devices when they receive the message, because you can specify a CallerId parameter in the request.<br/>DestinationPhoneNumber:  The phone number that you want to send the voice message to.<br/>Content:  An object that contains a voice message and information about the recipient that you want to send it to.:<br/>ConfigurationSetName:  The name of the configuration set that you want to use to send the message.<br/>CallerId:  The phone number that appears on recipients' devices when they receive the message.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SSMLMessage</i> An object that defines a message that contains SSML-formatted text.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SSMLMessage</b>: An object that defines a message that contains SSML-formatted text.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PlainTextMessage</i> An object that defines a message that contains unformatted text.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PlainTextMessage</b>: An object that defines a message that contains unformatted text.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CallInstructionsMessage</i> An object that defines a message that contains text formatted using Amazon Pinpoint Voice Instructions markup.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CallInstructionsMessage</b>: An object that defines a message that contains text formatted using Amazon Pinpoint Voice Instructions markup.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Text</i> The language to use when delivering the message. For a complete list of supported languages, see the Amazon Polly Developer Guide.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VoiceId</i> The name of the voice that you want to use to deliver the message. For a complete list of supported voices, see the Amazon Polly Developer Guide.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Text</i> The plain (not SSML-formatted) text to deliver to the recipient.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LanguageCode</i> The language to use when delivering the message. For a complete list of supported languages, see the Amazon Polly Developer Guide.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VoiceId</i> The name of the voice that you want to use to deliver the message. For a complete list of supported voices, see the Amazon Polly Developer Guide.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Text</i> The SSML-formatted text to deliver to the recipient.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LanguageCode</i> The language to use when delivering the message. For a complete list of supported languages, see the Amazon Polly Developer Guide.<br/>
        :return: MessageId:  A unique identifier for the voice message.<br/>        """
        pass

    def update_configuration_set_event_destination(self, EventDestinationName: str, ConfigurationSetName: str, EventDestination: EventDestinationDefinition=None) -> UpdateConfigurationSetEventDestinationResponse:
        r"""Update an event destination in a configuration set. An event destination is a location that you publish information about your voice calls to. For example, you can log an event to an Amazon CloudWatch destination when a call fails.

        :param self:
        :param EventDestinationName:  EventDestinationName<br/>EventDestination:  An object that defines a single event destination.:<br/>ConfigurationSetName:  ConfigurationSetName<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnsDestination</i> An object that contains information about an event destination that sends data to Amazon SNS.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SnsDestination</b>: An object that contains information about an event destination that sends data to Amazon SNS.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MatchingEventTypes</i> An array of EventDestination objects. Each EventDestination object includes ARNs and other information that define an event destination.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KinesisFirehoseDestination</i> An object that contains information about an event destination that sends data to Amazon Kinesis Data Firehose.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>KinesisFirehoseDestination</b>: An object that contains information about an event destination that sends data to Amazon Kinesis Data Firehose.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Indicates whether or not the event destination is enabled. If the event destination is enabled, then Amazon Pinpoint sends response data to the specified event destination.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudWatchLogsDestination</i> An object that contains information about an event destination that sends data to Amazon CloudWatch Logs.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CloudWatchLogsDestination</b>: An object that contains information about an event destination that sends data to Amazon CloudWatch Logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LogGroupArn</i> The name of the Amazon CloudWatch Log Group that you want to record events in.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IamRoleArn</i> The Amazon Resource Name (ARN) of an Amazon Identity and Access Management (IAM) role that is able to write event data to an Amazon CloudWatch destination.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IamRoleArn</i> The Amazon Resource Name (ARN) of the Amazon Kinesis Data Firehose destination that you want to use in the event destination.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DeliveryStreamArn</i> The Amazon Resource Name (ARN) of an IAM role that can write data to an Amazon Kinesis Data Firehose stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TopicArn</i> The Amazon Resource Name (ARN) of the Amazon SNS topic that you want to publish events to.<br/>
        :return:         """
        pass





class Polly(BaseClient):
    r"""Amazon Polly is a web service that makes it easy to synthesize speech from text. The Amazon Polly service provides API operations for synthesizing high-quality speech from plain text and Speech Synthesis Markup Language (SSML), along with managing pronunciations lexicons that enable you to get the best results for your application domain."""


    class DescribeVoicesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_voices` for valid parameters"""
            pass
    class ListLexiconsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_lexicons` for valid parameters"""
            pass
    class ListSpeechSynthesisTasksPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_speech_synthesis_tasks` for valid parameters"""
            pass


    class DeleteLexiconInput(Mapping):
        pass
    
    class DeleteLexiconOutput(Mapping):
        pass
    
    class DescribeVoicesInput(Mapping):
        pass
    
    class DescribeVoicesOutput(Mapping):
        pass
    
    class IncludeAdditionalLanguageCodes(object):
        pass
    
    class GetLexiconInput(Mapping):
        pass
    
    class GetLexiconOutput(Mapping):
        pass
    
    class GetSpeechSynthesisTaskInput(Mapping):
        pass
    
    class GetSpeechSynthesisTaskOutput(Mapping):
        pass
    
    class ListLexiconsInput(Mapping):
        pass
    
    class ListLexiconsOutput(Mapping):
        pass
    
    class ListSpeechSynthesisTasksInput(Mapping):
        pass
    
    class ListSpeechSynthesisTasksOutput(Mapping):
        pass
    
    class PutLexiconInput(Mapping):
        pass
    
    class PutLexiconOutput(Mapping):
        pass
    
    class StartSpeechSynthesisTaskInput(Mapping):
        pass
    
    class StartSpeechSynthesisTaskOutput(Mapping):
        pass
    
    class LexiconName(object):
        pass
    
    class SpeechMarkType(object):
        pass
    
    class SynthesizeSpeechInput(Mapping):
        pass
    
    class SynthesizeSpeechOutput(Mapping):
        pass
    
    def delete_lexicon(self, Name: str) -> DeleteLexiconOutput:
        r"""Deletes the specified pronunciation lexicon stored in an AWS Region. A lexicon which has been deleted is not available for speech synthesis, nor is it possible to retrieve it using either the <code>GetLexicon</code> or <code>ListLexicon</code> APIs. For more information, see <a href="https://docs.aws.amazon.com/polly/latest/dg/managing-lexicons.html">Managing Lexicons</a>.

        :param self:
        :param Name:  The name of the lexicon to delete. Must be an existing lexicon in the region.<br/>
        :return:         """
        pass

    def describe_voices(self, Engine: str=None, LanguageCode: str=None, IncludeAdditionalLanguageCodes: IncludeAdditionalLanguageCodes=None, NextToken: str=None) -> DescribeVoicesOutput:
        r"""Returns the list of voices that are available for use when requesting speech synthesis. Each voice speaks a specified language, is either male or female, and is identified by an ID, which is the ASCII version of the voice name.  When synthesizing speech ( <code>SynthesizeSpeech</code> ), you provide the voice ID for the voice you want from the list of voices returned by <code>DescribeVoices</code>. For example, you want your news reader application to read news in a specific language, but giving a user the option to choose the voice. Using the <code>DescribeVoices</code> operation you can provide the user with a list of available voices to select from.  You can optionally specify a language code to filter the available voices. For example, if you specify <code>en-US</code>, the operation returns a list of all available US English voices.  This operation requires permissions to perform the <code>polly:DescribeVoices</code> action.

        :param self:
        :param NextToken:  An opaque pagination token returned from the previous <code>DescribeVoices</code> operation. If present, this indicates where to continue the listing.<br/>IncludeAdditionalLanguageCodes:  Boolean value indicating whether to return any bilingual voices that use the specified language as an additional language. For instance, if you request all languages that use US English (es-US), and there is an Italian voice that speaks both Italian (it-IT) and US English, that voice will be included if you specify <code>yes</code> but not if you specify <code>no</code>.<br/>LanguageCode:   The language identification tag (ISO 639 code for the language name-ISO 3166 country code) for filtering the list of voices returned. If you don't specify this optional parameter, all available voices are returned. <br/>Engine:  Specifies the engine (<code>standard</code> or <code>neural</code>) used by Amazon Polly when processing input text for speech synthesis. <br/>
        :return: NextToken:  The pagination token to use in the next request to continue the listing of voices. <code>NextToken</code> is returned only if the response is truncated.<br/>Voices:  A list of voices with their properties.<br/>        """
        pass

    def get_lexicon(self, Name: str) -> GetLexiconOutput:
        r"""Returns the content of the specified pronunciation lexicon stored in an AWS Region. For more information, see <a href="https://docs.aws.amazon.com/polly/latest/dg/managing-lexicons.html">Managing Lexicons</a>.

        :param self:
        :param Name:  Name of the lexicon.<br/>
        :return: LexiconAttributes:  Metadata of the lexicon, including phonetic alphabetic used, language code, lexicon ARN, number of lexemes defined in the lexicon, and size of lexicon in bytes.:<br/>Lexicon:  Lexicon object that provides name and the string content of the lexicon. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> Name of the lexicon.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Content</i> Lexicon content in string format. The content of a lexicon must be in PLS format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Size</i> Total size of the lexicon, in characters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LexemesCount</i> Number of lexemes in the lexicon.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LexiconArn</i> Amazon Resource Name (ARN) of the lexicon.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModified</i> Date lexicon was last modified (a timestamp value).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LanguageCode</i> Language code that the lexicon applies to. A lexicon with a language code such as "en" would be applied to all English languages (en-GB, en-US, en-AUS, en-WLS, and so on.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Alphabet</i> Phonetic alphabet used in the lexicon. Valid values are <code>ipa</code> and <code>x-sampa</code>.<br/>        """
        pass

    def get_speech_synthesis_task(self, TaskId: str) -> GetSpeechSynthesisTaskOutput:
        r"""Retrieves a specific SpeechSynthesisTask object based on its TaskID. This object contains information about the given speech synthesis task, including the status of the task, and a link to the S3 bucket containing the output of the task.

        :param self:
        :param TaskId:  The Amazon Polly generated identifier for a speech synthesis task.<br/>
        :return: SynthesisTask:  SynthesisTask object that provides information from the requested task, including output format, creation time, task status, and so on.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LanguageCode</i> Optional language code for a synthesis task. This is only necessary if using a bilingual voice, such as Aditi, which can be used for either Indian English (en-IN) or Hindi (hi-IN).  If a bilingual voice is used and no language code is specified, Amazon Polly will use the default language of the bilingual voice. The default language for any voice is the one returned by the <a href="https://docs.aws.amazon.com/polly/latest/dg/API_DescribeVoices.html">DescribeVoices</a> operation for the <code>LanguageCode</code> parameter. For example, if no language code is specified, Aditi will use Indian English rather than Hindi.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VoiceId</i> Voice ID to use for the synthesis. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TextType</i> Specifies whether the input text is plain text or SSML. The default value is plain text. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SpeechMarkTypes</i> The type of speech marks returned for the input text.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SampleRate</i> The audio frequency specified in Hz. The valid values for mp3 and ogg_vorbis are "8000", "16000", "22050", and "24000". The default value for standard voices is "22050". The default value for neural voices is "24000". Valid values for pcm are "8000" and "16000" The default value is "16000". <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OutputFormat</i> The format in which the returned output will be encoded. For audio stream, this will be mp3, ogg_vorbis, or pcm. For speech marks, this will be json. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LexiconNames</i> List of one or more pronunciation lexicon names you want the service to apply during synthesis. Lexicons are applied only if the language of the lexicon is the same as the language of the voice. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnsTopicArn</i> ARN for the SNS topic optionally used for providing status notification for a speech synthesis task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequestCharacters</i> Number of billable characters synthesized.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> Timestamp for the time the synthesis task was started.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OutputUri</i> Pathway for the output speech file.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TaskStatusReason</i> Reason for the current status of a specific speech synthesis task, including errors if the task has failed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TaskStatus</i> Current status of the individual speech synthesis task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TaskId</i> The Amazon Polly generated identifier for a speech synthesis task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> Specifies the engine (<code>standard</code> or <code>neural</code>) for Amazon Polly to use when processing input text for speech synthesis. Using a voice that is not supported for the engine selected will result in an error.<br/>        """
        pass

    def list_lexicons(self, NextToken: str=None) -> ListLexiconsOutput:
        r"""Returns a list of pronunciation lexicons stored in an AWS Region. For more information, see <a href="https://docs.aws.amazon.com/polly/latest/dg/managing-lexicons.html">Managing Lexicons</a>.

        :param self:
        :param NextToken:  An opaque pagination token returned from previous <code>ListLexicons</code> operation. If present, indicates where to continue the list of lexicons.<br/>
        :return: NextToken:  The pagination token to use in the next request to continue the listing of lexicons. <code>NextToken</code> is returned only if the response is truncated.<br/>Lexicons:  A list of lexicon names and attributes.<br/>        """
        pass

    def list_speech_synthesis_tasks(self, MaxResults: int=None, NextToken: str=None, Status: str=None) -> ListSpeechSynthesisTasksOutput:
        r"""Returns a list of SpeechSynthesisTask objects ordered by their creation date. This operation can filter the tasks by their status, for example, allowing users to list only tasks that are completed.

        :param self:
        :param Status:  Status of the speech synthesis tasks returned in a List operation<br/>NextToken:  The pagination token to use in the next request to continue the listing of speech synthesis tasks. <br/>MaxResults:  Maximum number of speech synthesis tasks returned in a List operation.<br/>
        :return: SynthesisTasks:  List of SynthesisTask objects that provides information from the specified task in the list request, including output format, creation time, task status, and so on.<br/>NextToken:  An opaque pagination token returned from the previous List operation in this request. If present, this indicates where to continue the listing.<br/>        """
        pass

    def put_lexicon(self, Content: str, Name: str) -> PutLexiconOutput:
        r"""Stores a pronunciation lexicon in an AWS Region. If a lexicon with the same name already exists in the region, it is overwritten by the new lexicon. Lexicon operations have eventual consistency, therefore, it might take some time before the lexicon is available to the SynthesizeSpeech operation. For more information, see <a href="https://docs.aws.amazon.com/polly/latest/dg/managing-lexicons.html">Managing Lexicons</a>.

        :param self:
        :param Content:  Content of the PLS lexicon as string data.<br/>Name:  Name of the lexicon. The name must follow the regular express format [0-9A-Za-z]{1,20}. That is, the name is a case-sensitive alphanumeric string up to 20 characters long. <br/>
        :return:         """
        pass

    def start_speech_synthesis_task(self, VoiceId: str, Text: str, OutputS3BucketName: str, OutputFormat: str, Engine: str=None, LanguageCode: str=None, LexiconNames: List[LexiconName]=None, OutputS3KeyPrefix: str=None, SampleRate: str=None, SnsTopicArn: str=None, SpeechMarkTypes: List[SpeechMarkType]=None, TextType: str=None) -> StartSpeechSynthesisTaskOutput:
        r"""Allows the creation of an asynchronous synthesis task, by starting a new <code>SpeechSynthesisTask</code>. This operation requires all the standard information needed for speech synthesis, plus the name of an Amazon S3 bucket for the service to store the output of the synthesis task and two optional parameters (OutputS3KeyPrefix and SnsTopicArn). Once the synthesis task is created, this operation will return a SpeechSynthesisTask object, which will include an identifier of this task as well as the current status.

        :param self:
        :param VoiceId:  Voice ID to use for the synthesis. <br/>TextType:  Specifies whether the input text is plain text or SSML. The default value is plain text. <br/>Text:  The input text to synthesize. If you specify ssml as the TextType, follow the SSML format for the input text. <br/>SpeechMarkTypes:  The type of speech marks returned for the input text.<br/>SnsTopicArn:  ARN for the SNS topic optionally used for providing status notification for a speech synthesis task.<br/>SampleRate:  The audio frequency specified in Hz. The valid values for mp3 and ogg_vorbis are "8000", "16000", "22050", and "24000". The default value for standard voices is "22050". The default value for neural voices is "24000". Valid values for pcm are "8000" and "16000" The default value is "16000". <br/>OutputS3KeyPrefix:  The Amazon S3 key prefix for the output speech file.<br/>OutputS3BucketName:  Amazon S3 bucket name to which the output file will be saved.<br/>OutputFormat:  The format in which the returned output will be encoded. For audio stream, this will be mp3, ogg_vorbis, or pcm. For speech marks, this will be json. <br/>LexiconNames:  List of one or more pronunciation lexicon names you want the service to apply during synthesis. Lexicons are applied only if the language of the lexicon is the same as the language of the voice. <br/>LanguageCode:  Optional language code for the Speech Synthesis request. This is only necessary if using a bilingual voice, such as Aditi, which can be used for either Indian English (en-IN) or Hindi (hi-IN).  If a bilingual voice is used and no language code is specified, Amazon Polly will use the default language of the bilingual voice. The default language for any voice is the one returned by the <a href="https://docs.aws.amazon.com/polly/latest/dg/API_DescribeVoices.html">DescribeVoices</a> operation for the <code>LanguageCode</code> parameter. For example, if no language code is specified, Aditi will use Indian English rather than Hindi.<br/>Engine:  Specifies the engine (<code>standard</code> or <code>neural</code>) for Amazon Polly to use when processing input text for speech synthesis. Using a voice that is not supported for the engine selected will result in an error.<br/>
        :return: SynthesisTask:  SynthesisTask object that provides information and attributes about a newly submitted speech synthesis task.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LanguageCode</i> Optional language code for a synthesis task. This is only necessary if using a bilingual voice, such as Aditi, which can be used for either Indian English (en-IN) or Hindi (hi-IN).  If a bilingual voice is used and no language code is specified, Amazon Polly will use the default language of the bilingual voice. The default language for any voice is the one returned by the <a href="https://docs.aws.amazon.com/polly/latest/dg/API_DescribeVoices.html">DescribeVoices</a> operation for the <code>LanguageCode</code> parameter. For example, if no language code is specified, Aditi will use Indian English rather than Hindi.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VoiceId</i> Voice ID to use for the synthesis. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TextType</i> Specifies whether the input text is plain text or SSML. The default value is plain text. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SpeechMarkTypes</i> The type of speech marks returned for the input text.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SampleRate</i> The audio frequency specified in Hz. The valid values for mp3 and ogg_vorbis are "8000", "16000", "22050", and "24000". The default value for standard voices is "22050". The default value for neural voices is "24000". Valid values for pcm are "8000" and "16000" The default value is "16000". <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OutputFormat</i> The format in which the returned output will be encoded. For audio stream, this will be mp3, ogg_vorbis, or pcm. For speech marks, this will be json. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LexiconNames</i> List of one or more pronunciation lexicon names you want the service to apply during synthesis. Lexicons are applied only if the language of the lexicon is the same as the language of the voice. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnsTopicArn</i> ARN for the SNS topic optionally used for providing status notification for a speech synthesis task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequestCharacters</i> Number of billable characters synthesized.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> Timestamp for the time the synthesis task was started.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OutputUri</i> Pathway for the output speech file.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TaskStatusReason</i> Reason for the current status of a specific speech synthesis task, including errors if the task has failed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TaskStatus</i> Current status of the individual speech synthesis task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TaskId</i> The Amazon Polly generated identifier for a speech synthesis task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> Specifies the engine (<code>standard</code> or <code>neural</code>) for Amazon Polly to use when processing input text for speech synthesis. Using a voice that is not supported for the engine selected will result in an error.<br/>        """
        pass

    def synthesize_speech(self, VoiceId: str, Text: str, OutputFormat: str, Engine: str=None, LanguageCode: str=None, LexiconNames: List[LexiconName]=None, SampleRate: str=None, SpeechMarkTypes: List[SpeechMarkType]=None, TextType: str=None) -> SynthesizeSpeechOutput:
        r"""Synthesizes UTF-8 input, plain text or SSML, to a stream of bytes. SSML input must be valid, well-formed SSML. Some alphabets might not be available with all the voices (for example, Cyrillic might not be read at all by English voices) unless phoneme mapping is used. For more information, see <a href="https://docs.aws.amazon.com/polly/latest/dg/how-text-to-speech-works.html">How it Works</a>.

        :param self:
        :param VoiceId:   Voice ID to use for the synthesis. You can get a list of available voice IDs by calling the <a href="https://docs.aws.amazon.com/polly/latest/dg/API_DescribeVoices.html">DescribeVoices</a> operation. <br/>TextType:   Specifies whether the input text is plain text or SSML. The default value is plain text. For more information, see <a href="https://docs.aws.amazon.com/polly/latest/dg/ssml.html">Using SSML</a>.<br/>Text:   Input text to synthesize. If you specify <code>ssml</code> as the <code>TextType</code>, follow the SSML format for the input text. <br/>SpeechMarkTypes:  The type of speech marks returned for the input text.<br/>SampleRate:  The audio frequency specified in Hz. The valid values for mp3 and ogg_vorbis are "8000", "16000", "22050", and "24000". The default value for standard voices is "22050". The default value for neural voices is "24000". Valid values for pcm are "8000" and "16000" The default value is "16000". <br/>OutputFormat:   The format in which the returned output will be encoded. For audio stream, this will be mp3, ogg_vorbis, or pcm. For speech marks, this will be json.  When pcm is used, the content returned is audio/pcm in a signed 16-bit, 1 channel (mono), little-endian format. <br/>LexiconNames:  List of one or more pronunciation lexicon names you want the service to apply during synthesis. Lexicons are applied only if the language of the lexicon is the same as the language of the voice. For information about storing lexicons, see <a href="https://docs.aws.amazon.com/polly/latest/dg/API_PutLexicon.html">PutLexicon</a>.<br/>LanguageCode:  Optional language code for the Synthesize Speech request. This is only necessary if using a bilingual voice, such as Aditi, which can be used for either Indian English (en-IN) or Hindi (hi-IN).  If a bilingual voice is used and no language code is specified, Amazon Polly will use the default language of the bilingual voice. The default language for any voice is the one returned by the <a href="https://docs.aws.amazon.com/polly/latest/dg/API_DescribeVoices.html">DescribeVoices</a> operation for the <code>LanguageCode</code> parameter. For example, if no language code is specified, Aditi will use Indian English rather than Hindi.<br/>Engine:  Specifies the engine (<code>standard</code> or <code>neural</code>) for Amazon Polly to use when processing input text for speech synthesis. For information on Amazon Polly voices and which voices are available in standard-only, NTTS-only, and both standard and NTTS formats, see <a href="https://docs.aws.amazon.com/polly/latest/dg/voicelist.html">Available Voices</a>.  <b>NTTS-only voices</b>  When using NTTS-only voices such as Kevin (en-US), this parameter is required and must be set to <code>neural</code>. If the engine is not specified, or is set to <code>standard</code>, this will result in an error.  Type: String Valid Values: <code>standard</code> | <code>neural</code>  Required: Yes  <b>Standard voices</b>  For standard voices, this is not required; the engine parameter defaults to <code>standard</code>. If the engine is not specified, or is set to <code>standard</code> and an NTTS-only voice is selected, this will result in an error. <br/>
        :return: RequestCharacters:  Number of characters synthesized.<br/>ContentType:   Specifies the type audio stream. This should reflect the <code>OutputFormat</code> parameter in your request.  <ul> <li>  If you request <code>mp3</code> as the <code>OutputFormat</code>, the <code>ContentType</code> returned is audio/mpeg.  </li> <li>  If you request <code>ogg_vorbis</code> as the <code>OutputFormat</code>, the <code>ContentType</code> returned is audio/ogg.  </li> <li>  If you request <code>pcm</code> as the <code>OutputFormat</code>, the <code>ContentType</code> returned is audio/pcm in a signed 16-bit, 1 channel (mono), little-endian format.  </li> <li> If you request <code>json</code> as the <code>OutputFormat</code>, the <code>ContentType</code> returned is audio/json. </li> </ul>  <br/>AudioStream:   Stream containing the synthesized speech. <br/>        """
        pass





class Pricing(BaseClient):
    r"""AWS Price List Service API (AWS Price List Service) is a centralized and convenient way to programmatically query Amazon Web Services for services, products, and pricing information. The AWS Price List Service uses standardized product attributes such as <code>Location</code>, <code>Storage Class</code>, and <code>Operating System</code>, and provides prices at the SKU level. You can use the AWS Price List Service to build cost control and scenario planning tools, reconcile billing data, forecast future spend for budgeting purposes, and provide cost benefit analysis that compare your internal workloads with AWS. Use <code>GetServices</code> without a service code to retrieve the service codes for all AWS services, then <code>GetServices</code> with a service code to retreive the attribute names for that service. After you have the service code and attribute names, you can use <code>GetAttributeValues</code> to see what values are available for an attribute. With the service code and an attribute name and value, you can use <code>GetProducts</code> to find specific products that you're interested in, such as an <code>AmazonEC2</code> instance, with a <code>Provisioned IOPS</code> <code>volumeType</code>. Service Endpoint AWS Price List Service API provides the following two endpoints: <ul> <li> https://api.pricing.us-east-1.amazonaws.com </li> <li> https://api.pricing.ap-south-1.amazonaws.com </li> </ul>"""


    class DescribeServicesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_services` for valid parameters"""
            pass
    class GetAttributeValuesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_attribute_values` for valid parameters"""
            pass
    class GetProductsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_products` for valid parameters"""
            pass


    class DescribeServicesRequest(Mapping):
        pass
    
    class DescribeServicesResponse(Mapping):
        pass
    
    class GetAttributeValuesRequest(Mapping):
        pass
    
    class GetAttributeValuesResponse(Mapping):
        pass
    
    class GetProductsRequest(Mapping):
        pass
    
    class GetProductsResponse(Mapping):
        pass
    
    class Filter(Mapping):
        pass
    
    def describe_services(self, ServiceCode: str=None, FormatVersion: str=None, NextToken: str=None, MaxResults: int=None) -> DescribeServicesResponse:
        r"""Returns the metadata for one service or a list of the metadata for all services. Use this without a service code to get the service codes for all services. Use it with a service code, such as <code>AmazonEC2</code>, to get information specific to that service, such as the attribute names available for that service. For example, some of the attribute names available for EC2 are <code>volumeType</code>, <code>maxIopsVolume</code>, <code>operation</code>, <code>locationType</code>, and <code>instanceCapacity10xlarge</code>.

        :param self:
        :param MaxResults:  The maximum number of results that you want returned in the response.<br/>NextToken:  The pagination token that indicates the next set of results that you want to retrieve.<br/>FormatVersion:  The format version that you want the response to be in. Valid values are: <code>aws_v1</code> <br/>ServiceCode:  The code for the service whose information you want to retrieve, such as <code>AmazonEC2</code>. You can use the <code>ServiceCode</code> to filter the results in a <code>GetProducts</code> call. To retrieve a list of all services, leave this blank.<br/>
        :return: NextToken:  The pagination token for the next set of retreivable results.<br/>FormatVersion:  The format version of the response. For example, <code>aws_v1</code>.<br/>Services:  The service metadata for the service or services in the response.<br/>        """
        pass

    def get_attribute_values(self, AttributeName: str, ServiceCode: str, NextToken: str=None, MaxResults: int=None) -> GetAttributeValuesResponse:
        r"""Returns a list of attribute values. Attibutes are similar to the details in a Price List API offer file. For a list of available attributes, see <a href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/reading-an-offer.html#pps-defs">Offer File Definitions</a> in the <a href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/billing-what-is.html">AWS Billing and Cost Management User Guide</a>.

        :param self:
        :param MaxResults:  The maximum number of results to return in response.<br/>NextToken:  The pagination token that indicates the next set of results that you want to retrieve.<br/>AttributeName:  The name of the attribute that you want to retrieve the values for, such as <code>volumeType</code>.<br/>ServiceCode:  The service code for the service whose attributes you want to retrieve. For example, if you want the retrieve an EC2 attribute, use <code>AmazonEC2</code>.<br/>
        :return: NextToken:  The pagination token that indicates the next set of results to retrieve.<br/>AttributeValues:  The list of values for an attribute. For example, <code>Throughput Optimized HDD</code> and <code>Provisioned IOPS</code> are two available values for the <code>AmazonEC2</code> <code>volumeType</code>.<br/>        """
        pass

    def get_products(self, ServiceCode: str=None, Filters: List[Filter]=None, FormatVersion: str=None, NextToken: str=None, MaxResults: int=None) -> GetProductsResponse:
        r"""Returns a list of all products that match the filter criteria.

        :param self:
        :param MaxResults:  The maximum number of results to return in the response.<br/>NextToken:  The pagination token that indicates the next set of results that you want to retrieve.<br/>FormatVersion:  The format version that you want the response to be in. Valid values are: <code>aws_v1</code> <br/>Filters:  The list of filters that limit the returned products. only products that match all filters are returned.<br/>ServiceCode:  The code for the service whose products you want to retrieve. <br/>
        :return: NextToken:  The pagination token that indicates the next set of results to retrieve.<br/>PriceList:  The list of products that match your filters. The list contains both the product metadata and the price information.<br/>FormatVersion:  The format version of the response. For example, aws_v1.<br/>        """
        pass





class Proton(BaseClient):
    r"""This is the AWS Proton Service API Reference. It provides descriptions, syntax and usage examples for each of the <a href="https://docs.aws.amazon.com/proton/latest/APIReference/API_Operations.html">actions</a> and <a href="https://docs.aws.amazon.com/proton/latest/APIReference/API_Types.html">data types</a> for the AWS Proton service. The documentation for each action shows the Query API request parameters and the XML response. Alternatively, you can use the AWS CLI to access an API. For more information, see the <a href="https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html">AWS Command Line Interface User Guide</a>. The AWS Proton service is a two-pronged automation framework. Administrators create service templates to provide standardized infrastructure and deployment tooling for serverless and container based applications. Developers, in turn, select from the available service templates to automate their application or service deployments. Because administrators define the infrastructure and tooling that AWS Proton deploys and manages, they need permissions to use all of the listed API operations. When developers select a specific infrastructure and tooling set, AWS Proton deploys their applications. To monitor their applications that are running on AWS Proton, developers need permissions to the service <i>create</i>, <i>list</i>, <i>update</i> and <i>delete</i> API operations and the service instance <i>list</i> and <i>update</i> API operations. To learn more about AWS Proton administration, see the <a href="https://docs.aws.amazon.com/proton/latest/adminguide/Welcome.html">AWS Proton Administration Guide</a>. To learn more about deploying serverless and containerized applications on AWS Proton, see the <a href="https://docs.aws.amazon.com/proton/latest/userguide/Welcome.html">AWS Proton User Guide</a>.  <b>Ensuring Idempotency</b>  When you make a mutating API request, the request typically returns a result before the asynchronous workflows of the operation are complete. Operations might also time out or encounter other server issues before they're complete, even if the request already returned a result. This might make it difficult to determine whether the request succeeded. Moreover, you might need to retry the request multiple times to ensure that the operation completes successfully. However, if the original request and the subsequent retries are successful, the operation occurs multiple times. This means that you might create more resources than you intended.  <i>Idempotency</i> ensures that an API request action completes no more than one time. With an idempotent request, if the original request action completes successfully, any subsequent retries complete successfully without performing any further actions. However, the result might contain updated information, such as the current creation status. The following lists of APIs are grouped according to methods that ensure idempotency.  <b>Idempotent create APIs with a client token</b>  The API actions in this list support idempotency with the use of a <i>client token</i>. The corresponding AWS CLI commands also support idempotency using a client token. A client token is a unique, case-sensitive string of up to 64 ASCII characters. To make an idempotent API request using one of these actions, specify a client token in the request. We recommend that you <i>don't</i> reuse the same client token for other API requests. If you don’t provide a client token for these APIs, a default client token is automatically provided by SDKs. Given a request action that has succeeded: If you retry the request using the same client token and the same parameters, the retry succeeds without performing any further actions other than returning the original resource detail data in the response. If you retry the request using the same client token, but one or more of the parameters are different, the retry throws a <code>ValidationException</code> with an <code>IdempotentParameterMismatch</code> error. Client tokens expire eight hours after a request is made. If you retry the request with the expired token, a new resource is created. If the original resource is deleted and you retry the request, a new resource is created. Idempotent create APIs with a client token: <ul> <li> CreateEnvironmentTemplateVersion </li> <li> CreateServiceTemplateVersion </li> <li> CreateEnvironmentAccountConnection </li> </ul> <pre><code> &lt;p&gt; &lt;b&gt;Idempotent delete APIs&lt;/b&gt; &lt;/p&gt; &lt;p&gt;Given a request action that has succeeded:&lt;/p&gt; &lt;p&gt;When you retry the request with an API from this group and the resource was deleted, its metadata is returned in the response.&lt;/p&gt; &lt;p&gt;If you retry and the resource doesn't exist, the response is empty.&lt;/p&gt; &lt;p&gt;In both cases, the retry succeeds.&lt;/p&gt; &lt;p&gt;Idempotent delete APIs:&lt;/p&gt; &lt;ul&gt; &lt;li&gt; &lt;p&gt;DeleteEnvironmentTemplate&lt;/p&gt; &lt;/li&gt; &lt;li&gt; &lt;p&gt;DeleteEnvironmentTemplateVersion&lt;/p&gt; &lt;/li&gt; &lt;li&gt; &lt;p&gt;DeleteServiceTemplate&lt;/p&gt; &lt;/li&gt; &lt;li&gt; &lt;p&gt;DeleteServiceTemplateVersion&lt;/p&gt; &lt;/li&gt; &lt;li&gt; &lt;p&gt;DeleteEnvironmentAccountConnection&lt;/p&gt; &lt;/li&gt; &lt;/ul&gt; &lt;p&gt; &lt;b&gt;Asynchronous idempotent delete APIs&lt;/b&gt; &lt;/p&gt; &lt;p&gt;Given a request action that has succeeded:&lt;/p&gt; &lt;p&gt;If you retry the request with an API from this group, if the original request delete operation status is &lt;code&gt;DELETE_IN_PROGRESS&lt;/code&gt;, the retry returns the resource detail data in the response without performing any further actions.&lt;/p&gt; &lt;p&gt;If the original request delete operation is complete, a retry returns an empty response.&lt;/p&gt; &lt;p&gt;Asynchronous idempotent delete APIs:&lt;/p&gt; &lt;ul&gt; &lt;li&gt; &lt;p&gt;DeleteEnvironment&lt;/p&gt; &lt;/li&gt; &lt;li&gt; &lt;p&gt;DeleteService&lt;/p&gt; &lt;/li&gt; &lt;/ul&gt; </code></pre>"""

    class EnvironmentDeployedWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `get_environment` for valid parameters"""
            pass
    class EnvironmentTemplateVersionRegisteredWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `get_environment_template_version` for valid parameters"""
            pass
    class ServiceCreatedWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `get_service` for valid parameters"""
            pass
    class ServiceDeletedWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `get_service` for valid parameters"""
            pass
    class ServiceInstanceDeployedWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `get_service_instance` for valid parameters"""
            pass
    class ServicePipelineDeployedWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `get_service` for valid parameters"""
            pass
    class ServiceTemplateVersionRegisteredWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `get_service_template_version` for valid parameters"""
            pass
    class ServiceUpdatedWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `get_service` for valid parameters"""
            pass


    class ListEnvironmentAccountConnectionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_environment_account_connections` for valid parameters"""
            pass
    class ListEnvironmentTemplateVersionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_environment_template_versions` for valid parameters"""
            pass
    class ListEnvironmentTemplatesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_environment_templates` for valid parameters"""
            pass
    class ListEnvironmentsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_environments` for valid parameters"""
            pass
    class ListServiceInstancesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_service_instances` for valid parameters"""
            pass
    class ListServiceTemplateVersionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_service_template_versions` for valid parameters"""
            pass
    class ListServiceTemplatesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_service_templates` for valid parameters"""
            pass
    class ListServicesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_services` for valid parameters"""
            pass
    class ListTagsForResourcePaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_tags_for_resource` for valid parameters"""
            pass


    class AcceptEnvironmentAccountConnectionInput(Mapping):
        pass
    
    class AcceptEnvironmentAccountConnectionOutput(Mapping):
        pass
    
    class CancelEnvironmentDeploymentInput(Mapping):
        pass
    
    class CancelEnvironmentDeploymentOutput(Mapping):
        pass
    
    class CancelServiceInstanceDeploymentInput(Mapping):
        pass
    
    class CancelServiceInstanceDeploymentOutput(Mapping):
        pass
    
    class CancelServicePipelineDeploymentInput(Mapping):
        pass
    
    class CancelServicePipelineDeploymentOutput(Mapping):
        pass
    
    class CreateEnvironmentInput(Mapping):
        pass
    
    class CreateEnvironmentOutput(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class CreateEnvironmentAccountConnectionInput(Mapping):
        pass
    
    class CreateEnvironmentAccountConnectionOutput(Mapping):
        pass
    
    class CreateEnvironmentTemplateInput(Mapping):
        pass
    
    class CreateEnvironmentTemplateOutput(Mapping):
        pass
    
    class CreateEnvironmentTemplateVersionInput(Mapping):
        pass
    
    class CreateEnvironmentTemplateVersionOutput(Mapping):
        pass
    
    class TemplateVersionSourceInput(Mapping):
        pass
    
    class CreateServiceInput(Mapping):
        pass
    
    class CreateServiceOutput(Mapping):
        pass
    
    class CreateServiceTemplateInput(Mapping):
        pass
    
    class CreateServiceTemplateOutput(Mapping):
        pass
    
    class CreateServiceTemplateVersionInput(Mapping):
        pass
    
    class CreateServiceTemplateVersionOutput(Mapping):
        pass
    
    class CompatibleEnvironmentTemplateInput(Mapping):
        pass
    
    class DeleteEnvironmentInput(Mapping):
        pass
    
    class DeleteEnvironmentOutput(Mapping):
        pass
    
    class DeleteEnvironmentAccountConnectionInput(Mapping):
        pass
    
    class DeleteEnvironmentAccountConnectionOutput(Mapping):
        pass
    
    class DeleteEnvironmentTemplateInput(Mapping):
        pass
    
    class DeleteEnvironmentTemplateOutput(Mapping):
        pass
    
    class DeleteEnvironmentTemplateVersionInput(Mapping):
        pass
    
    class DeleteEnvironmentTemplateVersionOutput(Mapping):
        pass
    
    class DeleteServiceInput(Mapping):
        pass
    
    class DeleteServiceOutput(Mapping):
        pass
    
    class DeleteServiceTemplateInput(Mapping):
        pass
    
    class DeleteServiceTemplateOutput(Mapping):
        pass
    
    class DeleteServiceTemplateVersionInput(Mapping):
        pass
    
    class DeleteServiceTemplateVersionOutput(Mapping):
        pass
    
    class GetAccountSettingsInput(Mapping):
        pass
    
    class GetAccountSettingsOutput(Mapping):
        pass
    
    class GetEnvironmentInput(Mapping):
        pass
    
    class GetEnvironmentOutput(Mapping):
        pass
    
    class GetEnvironmentAccountConnectionInput(Mapping):
        pass
    
    class GetEnvironmentAccountConnectionOutput(Mapping):
        pass
    
    class GetEnvironmentTemplateInput(Mapping):
        pass
    
    class GetEnvironmentTemplateOutput(Mapping):
        pass
    
    class GetEnvironmentTemplateVersionInput(Mapping):
        pass
    
    class GetEnvironmentTemplateVersionOutput(Mapping):
        pass
    
    class GetServiceInput(Mapping):
        pass
    
    class GetServiceOutput(Mapping):
        pass
    
    class GetServiceInstanceInput(Mapping):
        pass
    
    class GetServiceInstanceOutput(Mapping):
        pass
    
    class GetServiceTemplateInput(Mapping):
        pass
    
    class GetServiceTemplateOutput(Mapping):
        pass
    
    class GetServiceTemplateVersionInput(Mapping):
        pass
    
    class GetServiceTemplateVersionOutput(Mapping):
        pass
    
    class ListEnvironmentAccountConnectionsInput(Mapping):
        pass
    
    class ListEnvironmentAccountConnectionsOutput(Mapping):
        pass
    
    class EnvironmentAccountConnectionStatus(object):
        pass
    
    class ListEnvironmentTemplateVersionsInput(Mapping):
        pass
    
    class ListEnvironmentTemplateVersionsOutput(Mapping):
        pass
    
    class ListEnvironmentTemplatesInput(Mapping):
        pass
    
    class ListEnvironmentTemplatesOutput(Mapping):
        pass
    
    class ListEnvironmentsInput(Mapping):
        pass
    
    class ListEnvironmentsOutput(Mapping):
        pass
    
    class EnvironmentTemplateFilter(Mapping):
        pass
    
    class ListServiceInstancesInput(Mapping):
        pass
    
    class ListServiceInstancesOutput(Mapping):
        pass
    
    class ListServiceTemplateVersionsInput(Mapping):
        pass
    
    class ListServiceTemplateVersionsOutput(Mapping):
        pass
    
    class ListServiceTemplatesInput(Mapping):
        pass
    
    class ListServiceTemplatesOutput(Mapping):
        pass
    
    class ListServicesInput(Mapping):
        pass
    
    class ListServicesOutput(Mapping):
        pass
    
    class ListTagsForResourceInput(Mapping):
        pass
    
    class ListTagsForResourceOutput(Mapping):
        pass
    
    class RejectEnvironmentAccountConnectionInput(Mapping):
        pass
    
    class RejectEnvironmentAccountConnectionOutput(Mapping):
        pass
    
    class TagResourceInput(Mapping):
        pass
    
    class TagResourceOutput(Mapping):
        pass
    
    class UntagResourceInput(Mapping):
        pass
    
    class UntagResourceOutput(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateAccountSettingsInput(Mapping):
        pass
    
    class UpdateAccountSettingsOutput(Mapping):
        pass
    
    class UpdateEnvironmentInput(Mapping):
        pass
    
    class UpdateEnvironmentOutput(Mapping):
        pass
    
    class UpdateEnvironmentAccountConnectionInput(Mapping):
        pass
    
    class UpdateEnvironmentAccountConnectionOutput(Mapping):
        pass
    
    class UpdateEnvironmentTemplateInput(Mapping):
        pass
    
    class UpdateEnvironmentTemplateOutput(Mapping):
        pass
    
    class UpdateEnvironmentTemplateVersionInput(Mapping):
        pass
    
    class UpdateEnvironmentTemplateVersionOutput(Mapping):
        pass
    
    class UpdateServiceInput(Mapping):
        pass
    
    class UpdateServiceOutput(Mapping):
        pass
    
    class UpdateServiceInstanceInput(Mapping):
        pass
    
    class UpdateServiceInstanceOutput(Mapping):
        pass
    
    class UpdateServicePipelineInput(Mapping):
        pass
    
    class UpdateServicePipelineOutput(Mapping):
        pass
    
    class UpdateServiceTemplateInput(Mapping):
        pass
    
    class UpdateServiceTemplateOutput(Mapping):
        pass
    
    class UpdateServiceTemplateVersionInput(Mapping):
        pass
    
    class UpdateServiceTemplateVersionOutput(Mapping):
        pass
    
    def accept_environment_account_connection(self, id: str) -> AcceptEnvironmentAccountConnectionOutput:
        r"""In a management account, an environment account connection request is accepted. When the environment account connection request is accepted, AWS Proton can use the associated IAM role to provision environment infrastructure resources in the associated environment account. For more information, see <a href="proton/latest/adminguide/ag-env-account-connections.html">Environment account connections</a> in the <i>AWS Proton Administration guide</i>.

        :param self:
        :param id:  The ID of the environment account connection.<br/>
        :return: environmentAccountConnection:  The environment account connection data that's returned by AWS Proton.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the environment account connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>roleArn</i> The IAM service role that's associated with the environment account connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>requestedAt</i> The time when the environment account connection request was made.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>managementAccountId</i> The ID of the management account that's connected to the environment account connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastModifiedAt</i> The time when the environment account connection was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The ID of the environment account connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>environmentName</i> The name of the environment that's associated with the environment account connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>environmentAccountId</i> The environment account that's connected to the environment account connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the environment account connection.<br/>        """
        pass

    def cancel_environment_deployment(self, environmentName: str) -> CancelEnvironmentDeploymentOutput:
        r"""Attempts to cancel an environment deployment on an <a>UpdateEnvironment</a> action, if the deployment is <code>IN_PROGRESS</code>. For more information, see <a href="https://docs.aws.amazon.com/proton/latest/adminguide/ag-env-update.html">Update an environment</a> in the <i>AWS Proton Administration guide</i>. The following list includes potential cancellation scenarios. <ul> <li> If the cancellation attempt succeeds, the resulting deployment state is <code>CANCELLED</code>. </li> <li> If the cancellation attempt fails, the resulting deployment state is <code>FAILED</code>. </li> <li> If the current <a>UpdateEnvironment</a> action succeeds before the cancellation attempt starts, the resulting deployment state is <code>SUCCEEDED</code> and the cancellation attempt has no effect. </li> </ul>

        :param self:
        :param environmentName:  The name of the environment with the deployment to cancel.<br/>
        :return: environment:  The environment summary data that's returned by AWS Proton.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>templateName</i> The ARN of the environment template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>templateMinorVersion</i> The ID of the minor version of the environment template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>templateMajorVersion</i> The ID of the major version of the environment template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>spec</i> The environment spec.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>provisioning</i> When included, indicates that the environment template is for customer provisioned and managed infrastructure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>protonServiceRoleArn</i> The ARN of the AWS Proton service role that allows AWS Proton to make calls to other services on your behalf.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the environment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastDeploymentSucceededAt</i> The time when the environment was last deployed successfully.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastDeploymentAttemptedAt</i> The time when a deployment of the environment was last attempted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>environmentAccountId</i> The ID of the environment account that the environment infrastructure resources are provisioned in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>environmentAccountConnectionId</i> The ID of the environment account connection that's used to provision infrastructure resources in an environment account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> The description of the environment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deploymentStatusMessage</i> An environment deployment status message.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deploymentStatus</i> The environment deployment status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The time when the environment was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the environment.<br/>        """
        pass

    def cancel_service_instance_deployment(self, serviceName: str, serviceInstanceName: str) -> CancelServiceInstanceDeploymentOutput:
        r"""Attempts to cancel a service instance deployment on an <a>UpdateServiceInstance</a> action, if the deployment is <code>IN_PROGRESS</code>. For more information, see <i>Update a service instance</i> in the <a href="https://docs.aws.amazon.com/proton/latest/adminguide/ag-svc-instance-update.html">AWS Proton Administration guide</a> or the <a href="https://docs.aws.amazon.com/proton/latest/userguide/ug-svc-instance-update.html">AWS Proton User guide</a>. The following list includes potential cancellation scenarios. <ul> <li> If the cancellation attempt succeeds, the resulting deployment state is <code>CANCELLED</code>. </li> <li> If the cancellation attempt fails, the resulting deployment state is <code>FAILED</code>. </li> <li> If the current <a>UpdateServiceInstance</a> action succeeds before the cancellation attempt starts, the resulting deployment state is <code>SUCCEEDED</code> and the cancellation attempt has no effect. </li> </ul>

        :param self:
        :param serviceName:  The name of the service with the service instance deployment to cancel.<br/>serviceInstanceName:  The name of the service instance with the deployment to cancel.<br/>
        :return: serviceInstance:  The service instance summary data that's returned by AWS Proton.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>templateName</i> The name of the service template that was used to create the service instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>templateMinorVersion</i> The ID of the minor version of the service template that was used to create the service instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>templateMajorVersion</i> The ID of the major version of the service template that was used to create the service instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>spec</i> The service spec that was used to create the service instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>serviceName</i> The name of the service that the service instance belongs to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the service instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastDeploymentSucceededAt</i> The time when the service instance was last deployed successfully.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastDeploymentAttemptedAt</i> The time when a deployment of the service instance was last attempted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>environmentName</i> The name of the environment that the service instance was deployed into.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deploymentStatusMessage</i> A service instance deployment status message.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deploymentStatus</i> The service instance deployment status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The time when the service instance was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the service instance.<br/>        """
        pass

    def cancel_service_pipeline_deployment(self, serviceName: str) -> CancelServicePipelineDeploymentOutput:
        r"""Attempts to cancel a service pipeline deployment on an <a>UpdateServicePipeline</a> action, if the deployment is <code>IN_PROGRESS</code>. For more information, see <i>Update a service pipeline</i> in the <a href="https://docs.aws.amazon.com/proton/latest/adminguide/ag-svc-pipeline-update.html">AWS Proton Administration guide</a> or the <a href="https://docs.aws.amazon.com/proton/latest/userguide/ug-svc-pipeline-update.html">AWS Proton User guide</a>. The following list includes potential cancellation scenarios. <ul> <li> If the cancellation attempt succeeds, the resulting deployment state is <code>CANCELLED</code>. </li> <li> If the cancellation attempt fails, the resulting deployment state is <code>FAILED</code>. </li> <li> If the current <a>UpdateServicePipeline</a> action succeeds before the cancellation attempt starts, the resulting deployment state is <code>SUCCEEDED</code> and the cancellation attempt has no effect. </li> </ul>

        :param self:
        :param serviceName:  The name of the service with the service pipeline deployment to cancel.<br/>
        :return: pipeline:  The service pipeline detail data that's returned by AWS Proton.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>templateName</i> The name of the service template that was used to create the service pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>templateMinorVersion</i> The ID of the minor version of the service template that was used to create the service pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>templateMajorVersion</i> The ID of the major version of the service template that was used to create the service pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>spec</i> The service spec that was used to create the service pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastDeploymentSucceededAt</i> The time when the service pipeline was last deployed successfully.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastDeploymentAttemptedAt</i> The time when a deployment of the service pipeline was last attempted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deploymentStatusMessage</i> A service pipeline deployment status message.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deploymentStatus</i> The deployment status of the service pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The time when the service pipeline was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the service pipeline.<br/>        """
        pass

    def create_environment(self, templateName: str, templateMajorVersion: str, spec: str, name: str, description: str=None, environmentAccountConnectionId: str=None, protonServiceRoleArn: str=None, tags: List[Tag]=None, templateMinorVersion: str=None) -> CreateEnvironmentOutput:
        r"""Deploy a new environment. An AWS Proton environment is created from an environment template that defines infrastructure and resources that can be shared across services. For more information, see the <a href="https://docs.aws.amazon.com/proton/latest/adminguide/ag-environments.html">Environments</a> in the <i>AWS Proton Administration Guide.</i> 

        :param self:
        :param templateName:  The name of the environment template. For more information, see <a href="https://docs.aws.amazon.com/proton/latest/adminguide/ag-env-templates.html">Environment Templates</a> in the <i>AWS Proton Administration Guide</i>.<br/>templateMinorVersion:  The ID of the minor version of the environment template.<br/>templateMajorVersion:  The ID of the major version of the environment template.<br/>tags:  Create tags for your environment. For more information, see <i>AWS Proton resources and tagging</i> in the <a href="https://docs.aws.amazon.com/proton/latest/adminguide/resources.html">AWS Proton Administration Guide</a> or <a href="https://docs.aws.amazon.com/proton/latest/userguide/resources.html">AWS Proton User Guide</a>.<br/>spec:  A link to a YAML formatted spec file that provides inputs as defined in the environment template bundle schema file. For more information, see <a href="https://docs.aws.amazon.com/proton/latest/adminguide/ag-managing-environments.html">Environments</a> in the <i>AWS Proton Administration Guide</i>.<br/>protonServiceRoleArn:  The Amazon Resource Name (ARN) of the AWS Proton service role that allows AWS Proton to make calls to other services on your behalf. You must include either the <code>environmentAccountConnectionId</code> or <code>protonServiceRoleArn</code> parameter and value.<br/>name:  The name of the environment.<br/>environmentAccountConnectionId:  The ID of the environment account connection that you provide if you're provisioning your environment infrastructure resources to an environment account. You must include either the <code>environmentAccountConnectionId</code> or <code>protonServiceRoleArn</code> parameter and value. For more information, see <a href="proton/latest/adminguide/ag-env-account-connections.html">Environment account connections</a> in the <i>AWS Proton Administration guide</i>.<br/>description:  A description of the environment that's being created and deployed.<br/>
        :return: environment:  The environment detail data that's returned by AWS Proton.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>templateName</i> The ARN of the environment template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>templateMinorVersion</i> The ID of the minor version of the environment template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>templateMajorVersion</i> The ID of the major version of the environment template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>spec</i> The environment spec.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>provisioning</i> When included, indicates that the environment template is for customer provisioned and managed infrastructure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>protonServiceRoleArn</i> The ARN of the AWS Proton service role that allows AWS Proton to make calls to other services on your behalf.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the environment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastDeploymentSucceededAt</i> The time when the environment was last deployed successfully.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastDeploymentAttemptedAt</i> The time when a deployment of the environment was last attempted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>environmentAccountId</i> The ID of the environment account that the environment infrastructure resources are provisioned in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>environmentAccountConnectionId</i> The ID of the environment account connection that's used to provision infrastructure resources in an environment account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> The description of the environment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deploymentStatusMessage</i> An environment deployment status message.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deploymentStatus</i> The environment deployment status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The time when the environment was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the environment.<br/>        """
        pass

    def create_environment_account_connection(self, roleArn: str, managementAccountId: str, environmentName: str, clientToken: str=None) -> CreateEnvironmentAccountConnectionOutput:
        r"""Create an environment account connection in an environment account so that environment infrastructure resources can be provisioned in the environment account from the management account. An environment account connection is a secure bi-directional connection between a <i>management account</i> and an <i>environment account</i> that maintains authorization and permissions. For more information, see <a href="proton/latest/adminguide/ag-env-account-connections.html">Environment account connections</a> in the <i>AWS Proton Administration guide</i>.

        :param self:
        :param roleArn:  The Amazon Resource Name (ARN) of the IAM service role that's created in the environment account. AWS Proton uses this role to provision infrastructure resources in the associated environment account.<br/>managementAccountId:  The ID of the management account that accepts or rejects the environment account connection. You create an manage the AWS Proton environment in this account. If the management account accepts the environment account connection, AWS Proton can use the associated IAM role to provision environment infrastructure resources in the associated environment account.<br/>environmentName:  The name of the AWS Proton environment that's created in the associated management account.<br/>clientToken:  When included, if two identicial requests are made with the same client token, AWS Proton returns the environment account connection that the first request created.<br/>
        :return: environmentAccountConnection:  The environment account connection detail data that's returned by AWS Proton.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the environment account connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>roleArn</i> The IAM service role that's associated with the environment account connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>requestedAt</i> The time when the environment account connection request was made.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>managementAccountId</i> The ID of the management account that's connected to the environment account connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastModifiedAt</i> The time when the environment account connection was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The ID of the environment account connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>environmentName</i> The name of the environment that's associated with the environment account connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>environmentAccountId</i> The environment account that's connected to the environment account connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the environment account connection.<br/>        """
        pass

    def create_environment_template(self, name: str, description: str=None, displayName: str=None, encryptionKey: str=None, provisioning: str=None, tags: List[Tag]=None) -> CreateEnvironmentTemplateOutput:
        r"""Create an environment template for AWS Proton. For more information, see <a href="https://docs.aws.amazon.com/proton/latest/adminguide/ag-env-templates.html">Environment Templates</a> in the <i>AWS Proton Administration Guide</i>. You can create an environment template in one of the two following ways: <ul> <li> Register and publish a <i>standard</i> environment template that instructs AWS Proton to deploy and manage environment infrastructure. </li> <li> Register and publish a <i>customer managed</i> environment template that connects AWS Proton to your existing provisioned infrastructure that you manage. AWS Proton <i>doesn't</i> manage your existing provisioned infrastructure. To create an environment template for customer provisioned and managed infrastructure, include the <code>provisioning</code> parameter and set the value to <code>CUSTOMER_MANAGED</code>. For more information, see <a href="https://docs.aws.amazon.com/proton/latest/adminguide/env-template-v1.html">Register and publish an environment template</a> in the <i>AWS Proton Administration Guide</i>. </li> </ul>

        :param self:
        :param tags:  Create tags for your environment template. For more information, see <i>AWS Proton resources and tagging</i> in the <a href="https://docs.aws.amazon.com/proton/latest/adminguide/resources.html">AWS Proton Administration Guide</a> or <a href="https://docs.aws.amazon.com/proton/latest/userguide/resources.html">AWS Proton User Guide</a>.<br/>provisioning:  When included, indicates that the environment template is for customer provisioned and managed infrastructure.<br/>name:  The name of the environment template.<br/>encryptionKey:  A customer provided encryption key that AWS Proton uses to encrypt data.<br/>displayName:  The environment template name as displayed in the developer interface.<br/>description:  A description of the environment template.<br/>
        :return: environmentTemplate:  The environment template detail data that's returned by AWS Proton.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>recommendedVersion</i> The ID of the recommended version of the environment template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>provisioning</i> When included, indicates that the environment template is for customer provisioned and managed infrastructure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the environment template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastModifiedAt</i> The time when the environment template was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>encryptionKey</i> The customer provided encryption key for the environment template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>displayName</i> The name of the environment template as displayed in the developer interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> A description of the environment template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The time when the environment template was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the environment template.<br/>        """
        pass

    def create_environment_template_version(self, templateName: str, source: TemplateVersionSourceInput, clientToken: str=None, description: str=None, majorVersion: str=None, tags: List[Tag]=None) -> CreateEnvironmentTemplateVersionOutput:
        r"""Create a new major or minor version of an environment template. A major version of an environment template is a version that <i>isn't</i> backwards compatible. A minor version of an environment template is a version that's backwards compatible within its major version.

        :param self:
        :param templateName:  The name of the environment template.<br/>tags:  Create tags for a new version of an environment template.<br/>source:  An object that includes the template bundle S3 bucket path and name for the new version of an template.:<br/>majorVersion:  To create a new minor version of the environment template, include a <code>majorVersion</code>. To create a new major and minor version of the environment template, exclude <code>majorVersion</code>.<br/>description:  A description of the new version of an environment template.<br/>clientToken:  When included, if two identicial requests are made with the same client token, AWS Proton returns the environment template version that the first request created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>s3</i> An S3 source object that includes the template bundle S3 path and name for a template minor version.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>s3</b>: An S3 source object that includes the template bundle S3 path and name for a template minor version.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>key</i> The path to the S3 bucket that contains a template bundle.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>bucket</i> The name of the S3 bucket that contains a template bundle.<br/>
        :return: environmentTemplateVersion:  The environment template detail data that's returned by AWS Proton.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>templateName</i> The name of the version of an environment template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusMessage</i> The status message of the version of an environment template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the version of an environment template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>schema</i> The schema of the version of an environment template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>recommendedMinorVersion</i> The ID of the recommended minor version of the environment template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>minorVersion</i> The ID of the minor version of an environment template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>majorVersion</i> The ID of the latest major version that's associated with the version of an environment template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastModifiedAt</i> The time when the version of an environment template was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> A description of the minor version of an environment template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The time when the version of an environment template was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the version of an environment template.<br/>        """
        pass

    def create_service(self, templateName: str, templateMajorVersion: str, spec: str, name: str, branchName: str=None, description: str=None, repositoryConnectionArn: str=None, repositoryId: str=None, tags: List[Tag]=None, templateMinorVersion: str=None) -> CreateServiceOutput:
        r"""Create an AWS Proton service. An AWS Proton service is an instantiation of a service template and often includes several service instances and pipeline. For more information, see <a href="https://docs.aws.amazon.com/proton/latest/adminguide/ag-services.html">Services</a> in the <i>AWS Proton Administration Guide</i> and <a href="https://docs.aws.amazon.com/proton/latest/userguide/ug-service.html">Services</a> in the <i>AWS Proton User Guide</i>.

        :param self:
        :param templateName:  The name of the service template that's used to create the service.<br/>templateMinorVersion:  The ID of the minor version of the service template that was used to create the service.<br/>templateMajorVersion:  The ID of the major version of the service template that was used to create the service.<br/>tags:  Create tags for your service. For more information, see <i>AWS Proton resources and tagging</i> in the <a href="https://docs.aws.amazon.com/proton/latest/adminguide/resources.html">AWS Proton Administration Guide</a> or <a href="https://docs.aws.amazon.com/proton/latest/userguide/resources.html">AWS Proton User Guide</a>.<br/>spec:  A link to a spec file that provides inputs as defined in the service template bundle schema file. The spec file is in YAML format. Don’t include pipeline inputs in the spec if your service template doesn’t include a service pipeline. For more information, see <a href="https://docs.aws.amazon.com/proton/latest/adminguide/ag-create-svc.html.html">Create a service</a> in the <i>AWS Proton Administration Guide</i> and <a href="https://docs.aws.amazon.com/proton/latest/userguide/ug-svc-create.html">Create a service</a> in the <i>AWS Proton User Guide</i>.<br/>repositoryId:  The ID of the code repository. <i>Don't</i> include this parameter if your service template <i>doesn't</i> include a service pipeline.<br/>repositoryConnectionArn:  The ARN of the repository connection. For more information, see <a href="https://docs.aws.amazon.com/proton/latest/adminguide/setting-up-for-service.html#settingSS-up-vcontrol">Set up repository connection</a> in the <i>AWS Proton Administration Guide</i> and <a href="https://docs.aws.amazon.com/proton/latest/userguide/ug-getting-started.html#getting-started-step1">Getting started</a> in the <i>AWS Proton User Guide</i>. <i>Don't</i> include this parameter if your service template <i>doesn't</i> include a service pipeline.<br/>name:  The service name.<br/>description:  A description of the AWS Proton service.<br/>branchName:  The name of the code repository branch that holds the code that's deployed in AWS Proton. <i>Don't</i> include this parameter if your service template <i>doesn't</i> include a service pipeline.<br/>
        :return: service:  The service detail data that's returned by AWS Proton.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>templateName</i> The name of the service template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusMessage</i> A service status message.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>spec</i> The formatted specification that defines the service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>repositoryId</i> The ID of the code repository.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>repositoryConnectionArn</i> The ARN of the repository connection. For more information, see <a href="https://docs.aws.amazon.com/proton/latest/adminguide/setting-up-for-service.html#setting-up-vcontrol">Set up a repository connection</a> in the <i>AWS Proton Administration Guide</i> and <a href="https://docs.aws.amazon.com/proton/latest/userguide/ug-getting-started.html#getting-started-step1">Getting started</a> in the <i>AWS Proton User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>pipeline</i> The service pipeline detail data.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>pipeline</b>: The service pipeline detail data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastModifiedAt</i> The time when the service was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> A description of a service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The time when the service was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>branchName</i> The name of the code repository branch that holds the code that's deployed in AWS Proton.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the service.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>templateName</i> The name of the service template that was used to create the service pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>templateMinorVersion</i> The ID of the minor version of the service template that was used to create the service pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>templateMajorVersion</i> The ID of the major version of the service template that was used to create the service pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>spec</i> The service spec that was used to create the service pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>lastDeploymentSucceededAt</i> The time when the service pipeline was last deployed successfully.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>lastDeploymentAttemptedAt</i> The time when a deployment of the service pipeline was last attempted.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>deploymentStatusMessage</i> A service pipeline deployment status message.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>deploymentStatus</i> The deployment status of the service pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The time when the service pipeline was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the service pipeline.<br/>        """
        pass

    def create_service_template(self, name: str, description: str=None, displayName: str=None, encryptionKey: str=None, pipelineProvisioning: str=None, tags: List[Tag]=None) -> CreateServiceTemplateOutput:
        r"""Create a service template. The administrator creates a service template to define standardized infrastructure and an optional CICD service pipeline. Developers, in turn, select the service template from AWS Proton. If the selected service template includes a service pipeline definition, they provide a link to their source code repository. AWS Proton then deploys and manages the infrastructure defined by the selected service template. For more information, see <a href="https://docs.aws.amazon.com/proton/latest/adminguide/managing-svc-templates.html">Service Templates</a> in the <i>AWS Proton Administration Guide</i>.

        :param self:
        :param tags:  Create tags for your service template. For more information, see <i>AWS Proton resources and tagging</i> in the <a href="https://docs.aws.amazon.com/proton/latest/adminguide/resources.html">AWS Proton Administration Guide</a> or <a href="https://docs.aws.amazon.com/proton/latest/userguide/resources.html">AWS Proton User Guide</a>.<br/>pipelineProvisioning:  AWS Proton includes a service pipeline for your service by default. When included, this parameter indicates that an AWS Proton service pipeline <i>won't</i> be included for your service. Once specified, this parameter <i>can't</i> be changed. For more information, see <a href="https://docs.aws.amazon.com/proton/latest/adminguide/ag-svc-template-bundles.html">Service template bundles</a> in the <i>AWS Proton Administration Guide</i>.<br/>name:  The name of the service template.<br/>encryptionKey:  A customer provided encryption key that's used to encrypt data.<br/>displayName:  The name of the service template as displayed in the developer interface.<br/>description:  A description of the service template.<br/>
        :return: serviceTemplate:  The service template detail data that's returned by AWS Proton.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>recommendedVersion</i> The ID of the recommended version of the service template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>pipelineProvisioning</i> If <code>pipelineProvisioning</code> is <code>true</code>, a service pipeline is included in the service template. Otherwise, a service pipeline <i>isn't</i> included in the service template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the service template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastModifiedAt</i> The time when the service template was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>encryptionKey</i> The customer provided service template encryption key that's used to encrypt data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>displayName</i> The service template name as displayed in the developer interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> A description of the service template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The time when the service template was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the service template.<br/>        """
        pass

    def create_service_template_version(self, templateName: str, source: TemplateVersionSourceInput, compatibleEnvironmentTemplates: List[CompatibleEnvironmentTemplateInput], clientToken: str=None, description: str=None, majorVersion: str=None, tags: List[Tag]=None) -> CreateServiceTemplateVersionOutput:
        r"""Create a new major or minor version of a service template. A major version of a service template is a version that <i>isn't</i> backwards compatible. A minor version of a service template is a version that's backwards compatible within its major version.

        :param self:
        :param templateName:  The name of the service template.<br/>tags:  Create tags for a new version of a service template.<br/>source:  An object that includes the template bundle S3 bucket path and name for the new version of a service template.:<br/>majorVersion:  To create a new minor version of the service template, include a <code>majorVersion</code>. To create a new major and minor version of the service template, <i>exclude</i> <code>majorVersion</code>.<br/>description:  A description of the new version of a service template.<br/>compatibleEnvironmentTemplates:  An array of compatible environment template objects for the new version of a service template.<br/>clientToken:  When included, if two identicial requests are made with the same client token, AWS Proton returns the service template version that the first request created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>s3</i> An S3 source object that includes the template bundle S3 path and name for a template minor version.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>s3</b>: An S3 source object that includes the template bundle S3 path and name for a template minor version.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>key</i> The path to the S3 bucket that contains a template bundle.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>bucket</i> The name of the S3 bucket that contains a template bundle.<br/>
        :return: serviceTemplateVersion:  The service template version summary of detail data that's returned by AWS Proton.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>templateName</i> The name of the version of a service template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusMessage</i> A service template version status message.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The service template version status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>schema</i> The schema of the version of a service template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>recommendedMinorVersion</i> The ID of the recommended minor version of the service template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>minorVersion</i> The ID of the minor version of a service template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>majorVersion</i> The ID of the latest major version that's associated with the version of a service template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastModifiedAt</i> The time when the version of a service template was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> A description of the version of a service template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The time when the version of a service template was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>compatibleEnvironmentTemplates</i> An array of compatible environment template names for the major version of a service template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the version of a service template.<br/>        """
        pass

    def delete_environment(self, name: str) -> DeleteEnvironmentOutput:
        r"""Delete an environment.

        :param self:
        :param name:  The name of the environment to delete.<br/>
        :return: environment:  The environment detail data that's returned by AWS Proton.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>templateName</i> The ARN of the environment template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>templateMinorVersion</i> The ID of the minor version of the environment template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>templateMajorVersion</i> The ID of the major version of the environment template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>spec</i> The environment spec.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>provisioning</i> When included, indicates that the environment template is for customer provisioned and managed infrastructure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>protonServiceRoleArn</i> The ARN of the AWS Proton service role that allows AWS Proton to make calls to other services on your behalf.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the environment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastDeploymentSucceededAt</i> The time when the environment was last deployed successfully.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastDeploymentAttemptedAt</i> The time when a deployment of the environment was last attempted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>environmentAccountId</i> The ID of the environment account that the environment infrastructure resources are provisioned in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>environmentAccountConnectionId</i> The ID of the environment account connection that's used to provision infrastructure resources in an environment account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> The description of the environment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deploymentStatusMessage</i> An environment deployment status message.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deploymentStatus</i> The environment deployment status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The time when the environment was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the environment.<br/>        """
        pass

    def delete_environment_account_connection(self, id: str) -> DeleteEnvironmentAccountConnectionOutput:
        r"""In an environment account, delete an environment account connection. After you delete an environment account connection that’s in use by an AWS Proton environment, AWS Proton <i>can’t</i> manage the environment infrastructure resources until a new environment account connection is accepted for the environment account and associated environment. You're responsible for cleaning up provisioned resources that remain without an environment connection. For more information, see <a href="proton/latest/adminguide/ag-env-account-connections.html">Environment account connections</a> in the <i>AWS Proton Administration guide</i>.

        :param self:
        :param id:  The ID of the environment account connection to delete.<br/>
        :return: environmentAccountConnection:  The environment account connection detail data that's returned by AWS Proton.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the environment account connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>roleArn</i> The IAM service role that's associated with the environment account connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>requestedAt</i> The time when the environment account connection request was made.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>managementAccountId</i> The ID of the management account that's connected to the environment account connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastModifiedAt</i> The time when the environment account connection was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The ID of the environment account connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>environmentName</i> The name of the environment that's associated with the environment account connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>environmentAccountId</i> The environment account that's connected to the environment account connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the environment account connection.<br/>        """
        pass

    def delete_environment_template(self, name: str) -> DeleteEnvironmentTemplateOutput:
        r"""If no other major or minor versions of an environment template exist, delete the environment template.

        :param self:
        :param name:  The name of the environment template to delete.<br/>
        :return: environmentTemplate:  The environment template detail data that's returned by AWS Proton.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>recommendedVersion</i> The ID of the recommended version of the environment template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>provisioning</i> When included, indicates that the environment template is for customer provisioned and managed infrastructure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the environment template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastModifiedAt</i> The time when the environment template was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>encryptionKey</i> The customer provided encryption key for the environment template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>displayName</i> The name of the environment template as displayed in the developer interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> A description of the environment template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The time when the environment template was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the environment template.<br/>        """
        pass

    def delete_environment_template_version(self, templateName: str, minorVersion: str, majorVersion: str) -> DeleteEnvironmentTemplateVersionOutput:
        r"""If no other minor versions of an environment template exist, delete a major version of the environment template if it's not the <code>Recommended</code> version. Delete the <code>Recommended</code> version of the environment template if no other major versions or minor versions of the environment template exist. A major version of an environment template is a version that's not backwards compatible. Delete a minor version of an environment template if it <i>isn't</i> the <code>Recommended</code> version. Delete a <code>Recommended</code> minor version of the environment template if no other minor versions of the environment template exist. A minor version of an environment template is a version that's backwards compatible.

        :param self:
        :param templateName:  The name of the environment template.<br/>minorVersion:  The environment template minor version to delete.<br/>majorVersion:  The environment template major version to delete.<br/>
        :return: environmentTemplateVersion:  The environment template version detail data that's returned by AWS Proton.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>templateName</i> The name of the version of an environment template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusMessage</i> The status message of the version of an environment template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the version of an environment template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>schema</i> The schema of the version of an environment template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>recommendedMinorVersion</i> The ID of the recommended minor version of the environment template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>minorVersion</i> The ID of the minor version of an environment template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>majorVersion</i> The ID of the latest major version that's associated with the version of an environment template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastModifiedAt</i> The time when the version of an environment template was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> A description of the minor version of an environment template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The time when the version of an environment template was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the version of an environment template.<br/>        """
        pass

    def delete_service(self, name: str) -> DeleteServiceOutput:
        r"""Delete a service.

        :param self:
        :param name:  The name of the service to delete.<br/>
        :return: service:  The service detail data that's returned by AWS Proton.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>templateName</i> The name of the service template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusMessage</i> A service status message.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>spec</i> The formatted specification that defines the service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>repositoryId</i> The ID of the code repository.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>repositoryConnectionArn</i> The ARN of the repository connection. For more information, see <a href="https://docs.aws.amazon.com/proton/latest/adminguide/setting-up-for-service.html#setting-up-vcontrol">Set up a repository connection</a> in the <i>AWS Proton Administration Guide</i> and <a href="https://docs.aws.amazon.com/proton/latest/userguide/ug-getting-started.html#getting-started-step1">Getting started</a> in the <i>AWS Proton User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>pipeline</i> The service pipeline detail data.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>pipeline</b>: The service pipeline detail data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastModifiedAt</i> The time when the service was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> A description of a service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The time when the service was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>branchName</i> The name of the code repository branch that holds the code that's deployed in AWS Proton.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the service.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>templateName</i> The name of the service template that was used to create the service pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>templateMinorVersion</i> The ID of the minor version of the service template that was used to create the service pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>templateMajorVersion</i> The ID of the major version of the service template that was used to create the service pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>spec</i> The service spec that was used to create the service pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>lastDeploymentSucceededAt</i> The time when the service pipeline was last deployed successfully.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>lastDeploymentAttemptedAt</i> The time when a deployment of the service pipeline was last attempted.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>deploymentStatusMessage</i> A service pipeline deployment status message.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>deploymentStatus</i> The deployment status of the service pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The time when the service pipeline was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the service pipeline.<br/>        """
        pass

    def delete_service_template(self, name: str) -> DeleteServiceTemplateOutput:
        r"""If no other major or minor versions of the service template exist, delete the service template.

        :param self:
        :param name:  The name of the service template to delete.<br/>
        :return: serviceTemplate:  The service template detail data that's returned by AWS Proton.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>recommendedVersion</i> The ID of the recommended version of the service template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>pipelineProvisioning</i> If <code>pipelineProvisioning</code> is <code>true</code>, a service pipeline is included in the service template. Otherwise, a service pipeline <i>isn't</i> included in the service template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the service template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastModifiedAt</i> The time when the service template was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>encryptionKey</i> The customer provided service template encryption key that's used to encrypt data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>displayName</i> The service template name as displayed in the developer interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> A description of the service template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The time when the service template was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the service template.<br/>        """
        pass

    def delete_service_template_version(self, templateName: str, minorVersion: str, majorVersion: str) -> DeleteServiceTemplateVersionOutput:
        r"""If no other minor versions of a service template exist, delete a major version of the service template if it's not the <code>Recommended</code> version. Delete the <code>Recommended</code> version of the service template if no other major versions or minor versions of the service template exist. A major version of a service template is a version that <i>isn't</i> backwards compatible. Delete a minor version of a service template if it's not the <code>Recommended</code> version. Delete a <code>Recommended</code> minor version of the service template if no other minor versions of the service template exist. A minor version of a service template is a version that's backwards compatible.

        :param self:
        :param templateName:  The name of the service template.<br/>minorVersion:  The service template minor version to delete.<br/>majorVersion:  The service template major version to delete.<br/>
        :return: serviceTemplateVersion:  The service template version detail data that's returned by AWS Proton.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>templateName</i> The name of the version of a service template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusMessage</i> A service template version status message.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The service template version status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>schema</i> The schema of the version of a service template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>recommendedMinorVersion</i> The ID of the recommended minor version of the service template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>minorVersion</i> The ID of the minor version of a service template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>majorVersion</i> The ID of the latest major version that's associated with the version of a service template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastModifiedAt</i> The time when the version of a service template was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> A description of the version of a service template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The time when the version of a service template was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>compatibleEnvironmentTemplates</i> An array of compatible environment template names for the major version of a service template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the version of a service template.<br/>        """
        pass

    def get_account_settings(self) -> GetAccountSettingsOutput:
        r"""Get detail data for the AWS Proton pipeline service role.

        :param self:
        :param 
        :return: accountSettings:  The AWS Proton pipeline service role detail data that's returned by AWS Proton.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>pipelineServiceRoleArn</i> The Amazon Resource Name (ARN) of the AWS Proton pipeline service role.<br/>        """
        pass

    def get_environment(self, name: str) -> GetEnvironmentOutput:
        r"""Get detail data for an environment.

        :param self:
        :param name:  The name of the environment that you want to get the detail data for.<br/>
        :return: environment:  The environment detail data that's returned by AWS Proton.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>templateName</i> The ARN of the environment template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>templateMinorVersion</i> The ID of the minor version of the environment template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>templateMajorVersion</i> The ID of the major version of the environment template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>spec</i> The environment spec.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>provisioning</i> When included, indicates that the environment template is for customer provisioned and managed infrastructure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>protonServiceRoleArn</i> The ARN of the AWS Proton service role that allows AWS Proton to make calls to other services on your behalf.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the environment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastDeploymentSucceededAt</i> The time when the environment was last deployed successfully.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastDeploymentAttemptedAt</i> The time when a deployment of the environment was last attempted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>environmentAccountId</i> The ID of the environment account that the environment infrastructure resources are provisioned in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>environmentAccountConnectionId</i> The ID of the environment account connection that's used to provision infrastructure resources in an environment account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> The description of the environment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deploymentStatusMessage</i> An environment deployment status message.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deploymentStatus</i> The environment deployment status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The time when the environment was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the environment.<br/>        """
        pass

    def get_environment_account_connection(self, id: str) -> GetEnvironmentAccountConnectionOutput:
        r"""In an environment account, view the detail data for an environment account connection. For more information, see <a href="proton/latest/adminguide/ag-env-account-connections.html">Environment account connections</a> in the <i>AWS Proton Administration guide</i>.

        :param self:
        :param id:  The ID of the environment account connection.<br/>
        :return: environmentAccountConnection:  The environment account connection detail data that's returned by AWS Proton.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the environment account connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>roleArn</i> The IAM service role that's associated with the environment account connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>requestedAt</i> The time when the environment account connection request was made.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>managementAccountId</i> The ID of the management account that's connected to the environment account connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastModifiedAt</i> The time when the environment account connection was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The ID of the environment account connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>environmentName</i> The name of the environment that's associated with the environment account connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>environmentAccountId</i> The environment account that's connected to the environment account connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the environment account connection.<br/>        """
        pass

    def get_environment_template(self, name: str) -> GetEnvironmentTemplateOutput:
        r"""Get detail data for an environment template.

        :param self:
        :param name:  The name of the environment template that you want to get the detail data for.<br/>
        :return: environmentTemplate:  The environment template detail data that's returned by AWS Proton.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>recommendedVersion</i> The ID of the recommended version of the environment template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>provisioning</i> When included, indicates that the environment template is for customer provisioned and managed infrastructure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the environment template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastModifiedAt</i> The time when the environment template was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>encryptionKey</i> The customer provided encryption key for the environment template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>displayName</i> The name of the environment template as displayed in the developer interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> A description of the environment template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The time when the environment template was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the environment template.<br/>        """
        pass

    def get_environment_template_version(self, templateName: str, minorVersion: str, majorVersion: str) -> GetEnvironmentTemplateVersionOutput:
        r"""View detail data for a major or minor version of an environment template.

        :param self:
        :param templateName:  The name of the environment template.<br/>minorVersion:  To view environment template minor version detail data, include <code>minorVersion</code>.<br/>majorVersion:  To view environment template major version detail data, include <code>majorVersion</code>.<br/>
        :return: environmentTemplateVersion:  The environment template version detail data that's returned by AWS Proton.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>templateName</i> The name of the version of an environment template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusMessage</i> The status message of the version of an environment template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the version of an environment template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>schema</i> The schema of the version of an environment template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>recommendedMinorVersion</i> The ID of the recommended minor version of the environment template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>minorVersion</i> The ID of the minor version of an environment template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>majorVersion</i> The ID of the latest major version that's associated with the version of an environment template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastModifiedAt</i> The time when the version of an environment template was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> A description of the minor version of an environment template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The time when the version of an environment template was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the version of an environment template.<br/>        """
        pass

    def get_service(self, name: str) -> GetServiceOutput:
        r"""Get detail data for a service.

        :param self:
        :param name:  The name of the service that you want to get the detail data for.<br/>
        :return: service:  The service detail data that's returned by AWS Proton.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>templateName</i> The name of the service template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusMessage</i> A service status message.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>spec</i> The formatted specification that defines the service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>repositoryId</i> The ID of the code repository.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>repositoryConnectionArn</i> The ARN of the repository connection. For more information, see <a href="https://docs.aws.amazon.com/proton/latest/adminguide/setting-up-for-service.html#setting-up-vcontrol">Set up a repository connection</a> in the <i>AWS Proton Administration Guide</i> and <a href="https://docs.aws.amazon.com/proton/latest/userguide/ug-getting-started.html#getting-started-step1">Getting started</a> in the <i>AWS Proton User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>pipeline</i> The service pipeline detail data.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>pipeline</b>: The service pipeline detail data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastModifiedAt</i> The time when the service was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> A description of a service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The time when the service was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>branchName</i> The name of the code repository branch that holds the code that's deployed in AWS Proton.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the service.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>templateName</i> The name of the service template that was used to create the service pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>templateMinorVersion</i> The ID of the minor version of the service template that was used to create the service pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>templateMajorVersion</i> The ID of the major version of the service template that was used to create the service pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>spec</i> The service spec that was used to create the service pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>lastDeploymentSucceededAt</i> The time when the service pipeline was last deployed successfully.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>lastDeploymentAttemptedAt</i> The time when a deployment of the service pipeline was last attempted.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>deploymentStatusMessage</i> A service pipeline deployment status message.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>deploymentStatus</i> The deployment status of the service pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The time when the service pipeline was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the service pipeline.<br/>        """
        pass

    def get_service_instance(self, serviceName: str, name: str) -> GetServiceInstanceOutput:
        r"""Get detail data for a service instance. A service instance is an instantiation of service template, which is running in a specific environment.

        :param self:
        :param serviceName:  The name of the service that the service instance belongs to.<br/>name:  The name of a service instance that you want to get the detail data for.<br/>
        :return: serviceInstance:  The service instance detail data that's returned by AWS Proton.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>templateName</i> The name of the service template that was used to create the service instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>templateMinorVersion</i> The ID of the minor version of the service template that was used to create the service instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>templateMajorVersion</i> The ID of the major version of the service template that was used to create the service instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>spec</i> The service spec that was used to create the service instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>serviceName</i> The name of the service that the service instance belongs to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the service instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastDeploymentSucceededAt</i> The time when the service instance was last deployed successfully.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastDeploymentAttemptedAt</i> The time when a deployment of the service instance was last attempted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>environmentName</i> The name of the environment that the service instance was deployed into.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deploymentStatusMessage</i> A service instance deployment status message.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deploymentStatus</i> The service instance deployment status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The time when the service instance was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the service instance.<br/>        """
        pass

    def get_service_template(self, name: str) -> GetServiceTemplateOutput:
        r"""Get detail data for a service template.

        :param self:
        :param name:  The name of the service template that you want to get detail data for.<br/>
        :return: serviceTemplate:  The service template detail data that's returned by AWS Proton.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>recommendedVersion</i> The ID of the recommended version of the service template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>pipelineProvisioning</i> If <code>pipelineProvisioning</code> is <code>true</code>, a service pipeline is included in the service template. Otherwise, a service pipeline <i>isn't</i> included in the service template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the service template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastModifiedAt</i> The time when the service template was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>encryptionKey</i> The customer provided service template encryption key that's used to encrypt data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>displayName</i> The service template name as displayed in the developer interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> A description of the service template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The time when the service template was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the service template.<br/>        """
        pass

    def get_service_template_version(self, templateName: str, minorVersion: str, majorVersion: str) -> GetServiceTemplateVersionOutput:
        r"""View detail data for a major or minor version of a service template.

        :param self:
        :param templateName:  The name of the service template.<br/>minorVersion:  To view service template minor version detail data, include <code>minorVersion</code>.<br/>majorVersion:  To view service template major version detail data, include <code>majorVersion</code>.<br/>
        :return: serviceTemplateVersion:  The service template version detail data that's returned by AWS Proton.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>templateName</i> The name of the version of a service template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusMessage</i> A service template version status message.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The service template version status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>schema</i> The schema of the version of a service template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>recommendedMinorVersion</i> The ID of the recommended minor version of the service template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>minorVersion</i> The ID of the minor version of a service template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>majorVersion</i> The ID of the latest major version that's associated with the version of a service template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastModifiedAt</i> The time when the version of a service template was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> A description of the version of a service template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The time when the version of a service template was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>compatibleEnvironmentTemplates</i> An array of compatible environment template names for the major version of a service template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the version of a service template.<br/>        """
        pass

    def list_environment_account_connections(self, requestedBy: str, environmentName: str=None, maxResults: int=None, nextToken: str=None, statuses: List[EnvironmentAccountConnectionStatus]=None) -> ListEnvironmentAccountConnectionsOutput:
        r"""View a list of environment account connections. For more information, see <a href="proton/latest/adminguide/ag-env-account-connections.html">Environment account connections</a> in the <i>AWS Proton Administration guide</i>.

        :param self:
        :param statuses:  The status details for each listed environment account connection.<br/>requestedBy:  The type of account making the <code>ListEnvironmentAccountConnections</code> request.<br/>nextToken:  A token to indicate the location of the next environment account connection in the array of environment account connections, after the list of environment account connections that was previously requested.<br/>maxResults:  The maximum number of environment account connections to list.<br/>environmentName:  The environment name that's associated with each listed environment account connection.<br/>
        :return: nextToken:  A token to indicate the location of the next environment account connection in the array of environment account connections, after the current requested list of environment account connections.<br/>environmentAccountConnections:  An array of environment account connections with details that's returned by AWS Proton. <br/>        """
        pass

    def list_environment_template_versions(self, templateName: str, majorVersion: str=None, maxResults: int=None, nextToken: str=None) -> ListEnvironmentTemplateVersionsOutput:
        r"""List major or minor versions of an environment template with detail data.

        :param self:
        :param templateName:  The name of the environment template.<br/>nextToken:  A token to indicate the location of the next major or minor version in the array of major or minor versions of an environment template, after the list of major or minor versions that was previously requested.<br/>maxResults:  The maximum number of major or minor versions of an environment template to list.<br/>majorVersion:  To view a list of minor of versions under a major version of an environment template, include <code>majorVersion</code>. To view a list of major versions of an environment template, <i>exclude</i> <code>majorVersion</code>.<br/>
        :return: templateVersions:  An array of major or minor versions of an environment template detail data.<br/>nextToken:  A token to indicate the location of the next major or minor version in the array of major or minor versions of an environment template, after the list of major or minor versions that was previously requested.<br/>        """
        pass

    def list_environment_templates(self, maxResults: int=None, nextToken: str=None) -> ListEnvironmentTemplatesOutput:
        r"""List environment templates.

        :param self:
        :param nextToken:  A token to indicate the location of the next environment template in the array of environment templates, after the list of environment templates that was previously requested.<br/>maxResults:  The maximum number of environment templates to list.<br/>
        :return: templates:  An array of environment templates with detail data.<br/>nextToken:  A token to indicate the location of the next environment template in the array of environment templates, after the current requested list of environment templates.<br/>        """
        pass

    def list_environments(self, environmentTemplates: List[EnvironmentTemplateFilter]=None, maxResults: int=None, nextToken: str=None) -> ListEnvironmentsOutput:
        r"""List environments with detail data summaries.

        :param self:
        :param nextToken:  A token to indicate the location of the next environment in the array of environments, after the list of environments that was previously requested.<br/>maxResults:  The maximum number of environments to list.<br/>environmentTemplates:  An array of the versions of the environment template.<br/>
        :return: nextToken:  A token to indicate the location of the next environment in the array of environments, after the current requested list of environments.<br/>environments:  An array of environment detail data summaries.<br/>        """
        pass

    def list_service_instances(self, maxResults: int=None, nextToken: str=None, serviceName: str=None) -> ListServiceInstancesOutput:
        r"""List service instances with summaries of detail data.

        :param self:
        :param serviceName:  The name of the service that the service instance belongs to.<br/>nextToken:  A token to indicate the location of the next service in the array of service instances, after the list of service instances that was previously requested.<br/>maxResults:  The maximum number of service instances to list.<br/>
        :return: serviceInstances:  An array of service instances with summaries of detail data.<br/>nextToken:  A token to indicate the location of the next service instance in the array of service instances, after the current requested list of service instances.<br/>        """
        pass

    def list_service_template_versions(self, templateName: str, majorVersion: str=None, maxResults: int=None, nextToken: str=None) -> ListServiceTemplateVersionsOutput:
        r"""List major or minor versions of a service template with detail data.

        :param self:
        :param templateName:  The name of the service template.<br/>nextToken:  A token to indicate the location of the next major or minor version in the array of major or minor versions of a service template, after the list of major or minor versions that was previously requested.<br/>maxResults:  The maximum number of major or minor versions of a service template to list.<br/>majorVersion:  To view a list of minor of versions under a major version of a service template, include <code>majorVersion</code>. To view a list of major versions of a service template, <i>exclude</i> <code>majorVersion</code>.<br/>
        :return: templateVersions:  An array of major or minor versions of a service template with detail data.<br/>nextToken:  A token to indicate the location of the next major or minor version in the array of major or minor versions of a service template, after the list of major or minor versions that was previously requested.<br/>        """
        pass

    def list_service_templates(self, maxResults: int=None, nextToken: str=None) -> ListServiceTemplatesOutput:
        r"""List service templates with detail data.

        :param self:
        :param nextToken:  A token to indicate the location of the next service template in the array of service templates, after the list of service templates previously requested.<br/>maxResults:  The maximum number of service templates to list.<br/>
        :return: templates:  An array of service templates with detail data.<br/>nextToken:  A token to indicate the location of the next service template in the array of service templates, after the current requested list of service templates.<br/>        """
        pass

    def list_services(self, maxResults: int=None, nextToken: str=None) -> ListServicesOutput:
        r"""List services with summaries of detail data.

        :param self:
        :param nextToken:  A token to indicate the location of the next service in the array of services, after the list of services that was previously requested.<br/>maxResults:  The maximum number of services to list.<br/>
        :return: services:  An array of services with summaries of detail data.<br/>nextToken:  A token to indicate the location of the next service in the array of services, after the current requested list of services.<br/>        """
        pass

    def list_tags_for_resource(self, resourceArn: str, maxResults: int=None, nextToken: str=None) -> ListTagsForResourceOutput:
        r"""List tags for a resource. For more information, see <i>AWS Proton resources and tagging</i> in the <a href="https://docs.aws.amazon.com/proton/latest/adminguide/resources.html">AWS Proton Administration Guide</a> or <a href="https://docs.aws.amazon.com/proton/latest/userguide/resources.html">AWS Proton User Guide</a>.

        :param self:
        :param resourceArn:  The ARN of the resource for the listed tags.<br/>nextToken:  A token to indicate the location of the next resource tag in the array of resource tags, after the list of resource tags that was previously requested.<br/>maxResults:  The maximum number of tags to list.<br/>
        :return: tags:  An array of resource tags with detail data.<br/>nextToken:  A token to indicate the location of the next resource tag in the array of resource tags, after the current requested list of resource tags.<br/>        """
        pass

    def reject_environment_account_connection(self, id: str) -> RejectEnvironmentAccountConnectionOutput:
        r"""In a management account, reject an environment account connection from another environment account. After you reject an environment account connection request, you <i>won’t</i> be able to accept or use the rejected environment account connection. You <i>can’t</i> reject an environment account connection that is connected to an environment. For more information, see <a href="proton/latest/adminguide/ag-env-account-connections.html">Environment account connections</a> in the <i>AWS Proton Administration guide</i>.

        :param self:
        :param id:  The ID of the environment account connection to reject.<br/>
        :return: environmentAccountConnection:  The environment connection account detail data that's returned by AWS Proton.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the environment account connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>roleArn</i> The IAM service role that's associated with the environment account connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>requestedAt</i> The time when the environment account connection request was made.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>managementAccountId</i> The ID of the management account that's connected to the environment account connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastModifiedAt</i> The time when the environment account connection was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The ID of the environment account connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>environmentName</i> The name of the environment that's associated with the environment account connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>environmentAccountId</i> The environment account that's connected to the environment account connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the environment account connection.<br/>        """
        pass

    def tag_resource(self, tags: List[Tag], resourceArn: str) -> TagResourceOutput:
        r"""Tag a resource. For more information, see <i>AWS Proton resources and tagging</i> in the <a href="https://docs.aws.amazon.com/proton/latest/adminguide/resources.html">AWS Proton Administration Guide</a> or <a href="https://docs.aws.amazon.com/proton/latest/userguide/resources.html">AWS Proton User Guide</a>.

        :param self:
        :param tags:  An array of resource tags to apply to a resource.<br/>resourceArn:  The Amazon Resource Name (ARN) of the resource that the resource tag is applied to.<br/>
        :return:         """
        pass

    def untag_resource(self, tagKeys: List[TagKey], resourceArn: str) -> UntagResourceOutput:
        r"""Remove a tag from a resource. For more information, see <i>AWS Proton resources and tagging</i> in the <a href="https://docs.aws.amazon.com/proton/latest/adminguide/resources.html">AWS Proton Administration Guide</a> or <a href="https://docs.aws.amazon.com/proton/latest/userguide/resources.html">AWS Proton User Guide</a>.

        :param self:
        :param tagKeys:  An array of tag keys indicating the resource tags to be removed from the resource.<br/>resourceArn:  The Amazon Resource Name (ARN) of the resource that the tag is to be removed from.<br/>
        :return:         """
        pass

    def update_account_settings(self, pipelineServiceRoleArn: str=None) -> UpdateAccountSettingsOutput:
        r"""Update the AWS Proton pipeline service account settings.

        :param self:
        :param pipelineServiceRoleArn:  The Amazon Resource Name (ARN) of the AWS Proton pipeline service role.<br/>
        :return: accountSettings:  The AWS Proton pipeline service role detail data that's returned by AWS Proton.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>pipelineServiceRoleArn</i> The Amazon Resource Name (ARN) of the AWS Proton pipeline service role.<br/>        """
        pass

    def update_environment(self, name: str, deploymentType: str, description: str=None, environmentAccountConnectionId: str=None, protonServiceRoleArn: str=None, spec: str=None, templateMajorVersion: str=None, templateMinorVersion: str=None) -> UpdateEnvironmentOutput:
        r"""Update an environment. If the environment is associated with an environment account connection, <i>don't</i> update or include the <code>protonServiceRoleArn</code> parameter to update or connect to an environment account connection.  You can only update to a new environment account connection if it was created in the same environment account that the current environment account connection was created in and associated with the current environment. If the environment <i>isn't</i> associated with an environment account connection, <i>don't</i> update or include the <code>environmentAccountConnectionId</code> parameter to update or connect to an environment account connection. You can update either the <code>environmentAccountConnectionId</code> or <code>protonServiceRoleArn</code> parameter and value. You can’t update both. There are four modes for updating an environment as described in the following. The <code>deploymentType</code> field defines the mode. <dl> <dt/> <dd>  <code>NONE</code>  In this mode, a deployment <i>doesn't</i> occur. Only the requested metadata parameters are updated. </dd> <dt/> <dd>  <code>CURRENT_VERSION</code>  In this mode, the environment is deployed and updated with the new spec that you provide. Only requested parameters are updated. <i>Don’t</i> include minor or major version parameters when you use this <code>deployment-type</code>. </dd> <dt/> <dd>  <code>MINOR_VERSION</code>  In this mode, the environment is deployed and updated with the published, recommended (latest) minor version of the current major version in use, by default. You can also specify a different minor version of the current major version in use. </dd> <dt/> <dd>  <code>MAJOR_VERSION</code>  In this mode, the environment is deployed and updated with the published, recommended (latest) major and minor version of the current template, by default. You can also specify a different major version that's higher than the major version in use and a minor version (optional). </dd> </dl>

        :param self:
        :param templateMinorVersion:  The ID of the minor version of the environment to update.<br/>templateMajorVersion:  The ID of the major version of the environment to update.<br/>spec:  The formatted specification that defines the update.<br/>protonServiceRoleArn:  The ARN of the AWS Proton service role that allows AWS Proton to make API calls to other services your behalf.<br/>name:  The name of the environment to update.<br/>environmentAccountConnectionId:  The ID of the environment account connection. You can only update to a new environment account connection if it was created in the same environment account that the current environment account connection was created in and associated with the current environment.<br/>description:  A description of the environment update.<br/>deploymentType:  There are four modes for updating an environment as described in the following. The <code>deploymentType</code> field defines the mode. <dl> <dt/> <dd>  <code>NONE</code>  In this mode, a deployment <i>doesn't</i> occur. Only the requested metadata parameters are updated. </dd> <dt/> <dd>  <code>CURRENT_VERSION</code>  In this mode, the environment is deployed and updated with the new spec that you provide. Only requested parameters are updated. <i>Don’t</i> include minor or major version parameters when you use this <code>deployment-type</code>. </dd> <dt/> <dd>  <code>MINOR_VERSION</code>  In this mode, the environment is deployed and updated with the published, recommended (latest) minor version of the current major version in use, by default. You can also specify a different minor version of the current major version in use. </dd> <dt/> <dd>  <code>MAJOR_VERSION</code>  In this mode, the environment is deployed and updated with the published, recommended (latest) major and minor version of the current template, by default. You can also specify a different major version that is higher than the major version in use and a minor version (optional). </dd> </dl><br/>
        :return: environment:  The environment detail data that's returned by AWS Proton.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>templateName</i> The ARN of the environment template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>templateMinorVersion</i> The ID of the minor version of the environment template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>templateMajorVersion</i> The ID of the major version of the environment template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>spec</i> The environment spec.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>provisioning</i> When included, indicates that the environment template is for customer provisioned and managed infrastructure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>protonServiceRoleArn</i> The ARN of the AWS Proton service role that allows AWS Proton to make calls to other services on your behalf.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the environment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastDeploymentSucceededAt</i> The time when the environment was last deployed successfully.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastDeploymentAttemptedAt</i> The time when a deployment of the environment was last attempted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>environmentAccountId</i> The ID of the environment account that the environment infrastructure resources are provisioned in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>environmentAccountConnectionId</i> The ID of the environment account connection that's used to provision infrastructure resources in an environment account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> The description of the environment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deploymentStatusMessage</i> An environment deployment status message.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deploymentStatus</i> The environment deployment status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The time when the environment was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the environment.<br/>        """
        pass

    def update_environment_account_connection(self, roleArn: str, id: str) -> UpdateEnvironmentAccountConnectionOutput:
        r"""In an environment account, update an environment account connection to use a new IAM role. For more information, see <a href="proton/latest/adminguide/ag-env-account-connections.html">Environment account connections</a> in the <i>AWS Proton Administration guide</i>.

        :param self:
        :param roleArn:  The Amazon Resource Name (ARN) of the IAM service role that is associated with the environment account connection to update.<br/>id:  The ID of the environment account connection to update.<br/>
        :return: environmentAccountConnection:  The environment account connection detail data that's returned by AWS Proton.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the environment account connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>roleArn</i> The IAM service role that's associated with the environment account connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>requestedAt</i> The time when the environment account connection request was made.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>managementAccountId</i> The ID of the management account that's connected to the environment account connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastModifiedAt</i> The time when the environment account connection was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The ID of the environment account connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>environmentName</i> The name of the environment that's associated with the environment account connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>environmentAccountId</i> The environment account that's connected to the environment account connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the environment account connection.<br/>        """
        pass

    def update_environment_template(self, name: str, description: str=None, displayName: str=None) -> UpdateEnvironmentTemplateOutput:
        r"""Update an environment template.

        :param self:
        :param name:  The name of the environment template to update.<br/>displayName:  The name of the environment template to update as displayed in the developer interface.<br/>description:  A description of the environment template update.<br/>
        :return: environmentTemplate:  The environment template detail data that's returned by AWS Proton.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>recommendedVersion</i> The ID of the recommended version of the environment template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>provisioning</i> When included, indicates that the environment template is for customer provisioned and managed infrastructure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the environment template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastModifiedAt</i> The time when the environment template was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>encryptionKey</i> The customer provided encryption key for the environment template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>displayName</i> The name of the environment template as displayed in the developer interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> A description of the environment template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The time when the environment template was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the environment template.<br/>        """
        pass

    def update_environment_template_version(self, templateName: str, minorVersion: str, majorVersion: str, description: str=None, status: str=None) -> UpdateEnvironmentTemplateVersionOutput:
        r"""Update a major or minor version of an environment template.

        :param self:
        :param templateName:  The name of the environment template.<br/>status:  The status of the environment template minor version to update.<br/>minorVersion:  To update a minor version of an environment template, include <code>minorVersion</code>.<br/>majorVersion:  To update a major version of an environment template, include <code>majorVersion</code>.<br/>description:  A description of environment template version to update.<br/>
        :return: environmentTemplateVersion:  The environment template version detail data that's returned by AWS Proton.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>templateName</i> The name of the version of an environment template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusMessage</i> The status message of the version of an environment template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the version of an environment template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>schema</i> The schema of the version of an environment template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>recommendedMinorVersion</i> The ID of the recommended minor version of the environment template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>minorVersion</i> The ID of the minor version of an environment template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>majorVersion</i> The ID of the latest major version that's associated with the version of an environment template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastModifiedAt</i> The time when the version of an environment template was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> A description of the minor version of an environment template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The time when the version of an environment template was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the version of an environment template.<br/>        """
        pass

    def update_service(self, name: str, description: str=None, spec: str=None) -> UpdateServiceOutput:
        r"""Edit a service description or use a spec to add and delete service instances. <note> Existing service instances and the service pipeline <i>can't</i> be edited using this API. They can only be deleted. </note> Use the <code>description</code> parameter to modify the description. Edit the <code>spec</code> parameter to add or delete instances.

        :param self:
        :param spec:  Lists the service instances to add and the existing service instances to remain. Omit the existing service instances to delete from the list. <i>Don't</i> include edits to the existing service instances or pipeline. For more information, see <i>Edit a service</i> in the <a href="https://docs.aws.amazon.com/proton/latest/adminguide/ag-svc-update.html">AWS Proton Administration Guide</a> or the <a href="https://docs.aws.amazon.com/proton/latest/userguide/ug-svc-update.html">AWS Proton User Guide</a>.<br/>name:  The name of the service to edit.<br/>description:  The edited service description.<br/>
        :return: service:  The service detail data that's returned by AWS Proton.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>templateName</i> The name of the service template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusMessage</i> A service status message.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>spec</i> The formatted specification that defines the service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>repositoryId</i> The ID of the code repository.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>repositoryConnectionArn</i> The ARN of the repository connection. For more information, see <a href="https://docs.aws.amazon.com/proton/latest/adminguide/setting-up-for-service.html#setting-up-vcontrol">Set up a repository connection</a> in the <i>AWS Proton Administration Guide</i> and <a href="https://docs.aws.amazon.com/proton/latest/userguide/ug-getting-started.html#getting-started-step1">Getting started</a> in the <i>AWS Proton User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>pipeline</i> The service pipeline detail data.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>pipeline</b>: The service pipeline detail data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastModifiedAt</i> The time when the service was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> A description of a service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The time when the service was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>branchName</i> The name of the code repository branch that holds the code that's deployed in AWS Proton.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the service.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>templateName</i> The name of the service template that was used to create the service pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>templateMinorVersion</i> The ID of the minor version of the service template that was used to create the service pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>templateMajorVersion</i> The ID of the major version of the service template that was used to create the service pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>spec</i> The service spec that was used to create the service pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>lastDeploymentSucceededAt</i> The time when the service pipeline was last deployed successfully.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>lastDeploymentAttemptedAt</i> The time when a deployment of the service pipeline was last attempted.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>deploymentStatusMessage</i> A service pipeline deployment status message.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>deploymentStatus</i> The deployment status of the service pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The time when the service pipeline was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the service pipeline.<br/>        """
        pass

    def update_service_instance(self, serviceName: str, name: str, deploymentType: str, spec: str=None, templateMajorVersion: str=None, templateMinorVersion: str=None) -> UpdateServiceInstanceOutput:
        r"""Update a service instance. There are four modes for updating a service instance as described in the following. The <code>deploymentType</code> field defines the mode. <dl> <dt/> <dd>  <code>NONE</code>  In this mode, a deployment <i>doesn't</i> occur. Only the requested metadata parameters are updated. </dd> <dt/> <dd>  <code>CURRENT_VERSION</code>  In this mode, the service instance is deployed and updated with the new spec that you provide. Only requested parameters are updated. <i>Don’t</i> include minor or major version parameters when you use this <code>deployment-type</code>. </dd> <dt/> <dd>  <code>MINOR_VERSION</code>  In this mode, the service instance is deployed and updated with the published, recommended (latest) minor version of the current major version in use, by default. You can also specify a different minor version of the current major version in use. </dd> <dt/> <dd>  <code>MAJOR_VERSION</code>  In this mode, the service instance is deployed and updated with the published, recommended (latest) major and minor version of the current template, by default. You can also specify a different major version that is higher than the major version in use and a minor version (optional). </dd> </dl>

        :param self:
        :param templateMinorVersion:  The minor version of the service template to update.<br/>templateMajorVersion:  The major version of the service template to update.<br/>spec:  The formatted specification that defines the service instance update.<br/>serviceName:  The name of the service that the service instance belongs to.<br/>name:  The name of the service instance to update.<br/>deploymentType:  The deployment type. There are four modes for updating a service instance as described in the following. The <code>deploymentType</code> field defines the mode. <dl> <dt/> <dd>  <code>NONE</code>  In this mode, a deployment <i>doesn't</i> occur. Only the requested metadata parameters are updated. </dd> <dt/> <dd>  <code>CURRENT_VERSION</code>  In this mode, the service instance is deployed and updated with the new spec that you provide. Only requested parameters are updated. <i>Don’t</i> include minor or major version parameters when you use this <code>deployment-type</code>. </dd> <dt/> <dd>  <code>MINOR_VERSION</code>  In this mode, the service instance is deployed and updated with the published, recommended (latest) minor version of the current major version in use, by default. You can also specify a different minor version of the current major version in use. </dd> <dt/> <dd>  <code>MAJOR_VERSION</code>  In this mode, the service instance is deployed and updated with the published, recommended (latest) major and minor version of the current template, by default. You can also specify a different major version that is higher than the major version in use and a minor version (optional). </dd> </dl><br/>
        :return: serviceInstance:  The service instance summary data returned by AWS Proton.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>templateName</i> The name of the service template that was used to create the service instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>templateMinorVersion</i> The ID of the minor version of the service template that was used to create the service instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>templateMajorVersion</i> The ID of the major version of the service template that was used to create the service instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>spec</i> The service spec that was used to create the service instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>serviceName</i> The name of the service that the service instance belongs to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the service instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastDeploymentSucceededAt</i> The time when the service instance was last deployed successfully.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastDeploymentAttemptedAt</i> The time when a deployment of the service instance was last attempted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>environmentName</i> The name of the environment that the service instance was deployed into.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deploymentStatusMessage</i> A service instance deployment status message.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deploymentStatus</i> The service instance deployment status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The time when the service instance was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the service instance.<br/>        """
        pass

    def update_service_pipeline(self, spec: str, serviceName: str, deploymentType: str, templateMajorVersion: str=None, templateMinorVersion: str=None) -> UpdateServicePipelineOutput:
        r"""Update the service pipeline. There are four modes for updating a service pipeline as described in the following. The <code>deploymentType</code> field defines the mode. <dl> <dt/> <dd>  <code>NONE</code>  In this mode, a deployment <i>doesn't</i> occur. Only the requested metadata parameters are updated. </dd> <dt/> <dd>  <code>CURRENT_VERSION</code>  In this mode, the service pipeline is deployed and updated with the new spec that you provide. Only requested parameters are updated. <i>Don’t</i> include minor or major version parameters when you use this <code>deployment-type</code>. </dd> <dt/> <dd>  <code>MINOR_VERSION</code>  In this mode, the service pipeline is deployed and updated with the published, recommended (latest) minor version of the current major version in use, by default. You can also specify a different minor version of the current major version in use. </dd> <dt/> <dd>  <code>MAJOR_VERSION</code>  In this mode, the service pipeline is deployed and updated with the published, recommended (latest) major and minor version of the current template by default. You can also specify a different major version that is higher than the major version in use and a minor version (optional). </dd> </dl>

        :param self:
        :param templateMinorVersion:  The minor version of the service template that was used to create the service that the pipeline is associated with.<br/>templateMajorVersion:  The major version of the service template that was used to create the service that the pipeline is associated with.<br/>spec:  The spec for the service pipeline to update.<br/>serviceName:  The name of the service to that the pipeline is associated with.<br/>deploymentType:  The deployment type. There are four modes for updating a service pipeline as described in the following. The <code>deploymentType</code> field defines the mode. <dl> <dt/> <dd>  <code>NONE</code>  In this mode, a deployment <i>doesn't</i> occur. Only the requested metadata parameters are updated. </dd> <dt/> <dd>  <code>CURRENT_VERSION</code>  In this mode, the service pipeline is deployed and updated with the new spec that you provide. Only requested parameters are updated. <i>Don’t</i> include minor or major version parameters when you use this <code>deployment-type</code>. </dd> <dt/> <dd>  <code>MINOR_VERSION</code>  In this mode, the service pipeline is deployed and updated with the published, recommended (latest) minor version of the current major version in use, by default. You can also specify a different minor version of the current major version in use. </dd> <dt/> <dd>  <code>MAJOR_VERSION</code>  In this mode, the service pipeline is deployed and updated with the published, recommended (latest) major and minor version of the current template, by default. You can also specify a different major version that is higher than the major version in use and a minor version (optional). </dd> </dl><br/>
        :return: pipeline:  The pipeline details returned by AWS Proton.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>templateName</i> The name of the service template that was used to create the service pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>templateMinorVersion</i> The ID of the minor version of the service template that was used to create the service pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>templateMajorVersion</i> The ID of the major version of the service template that was used to create the service pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>spec</i> The service spec that was used to create the service pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastDeploymentSucceededAt</i> The time when the service pipeline was last deployed successfully.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastDeploymentAttemptedAt</i> The time when a deployment of the service pipeline was last attempted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deploymentStatusMessage</i> A service pipeline deployment status message.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deploymentStatus</i> The deployment status of the service pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The time when the service pipeline was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the service pipeline.<br/>        """
        pass

    def update_service_template(self, name: str, description: str=None, displayName: str=None) -> UpdateServiceTemplateOutput:
        r"""Update a service template.

        :param self:
        :param name:  The name of the service template to update.<br/>displayName:  The name of the service template to update as displayed in the developer interface.<br/>description:  A description of the service template update.<br/>
        :return: serviceTemplate:  The service template detail data that's returned by AWS Proton.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>recommendedVersion</i> The ID of the recommended version of the service template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>pipelineProvisioning</i> If <code>pipelineProvisioning</code> is <code>true</code>, a service pipeline is included in the service template. Otherwise, a service pipeline <i>isn't</i> included in the service template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the service template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastModifiedAt</i> The time when the service template was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>encryptionKey</i> The customer provided service template encryption key that's used to encrypt data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>displayName</i> The service template name as displayed in the developer interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> A description of the service template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The time when the service template was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the service template.<br/>        """
        pass

    def update_service_template_version(self, templateName: str, minorVersion: str, majorVersion: str, compatibleEnvironmentTemplates: List[CompatibleEnvironmentTemplateInput]=None, description: str=None, status: str=None) -> UpdateServiceTemplateVersionOutput:
        r"""Update a major or minor version of a service template.

        :param self:
        :param templateName:  The name of the service template.<br/>status:  The status of the service template minor version to update.<br/>minorVersion:  To update a minor version of a service template, include <code>minorVersion</code>.<br/>majorVersion:  To update a major version of a service template, include <code>majorVersion</code>.<br/>description:  A description of a service template version to update.<br/>compatibleEnvironmentTemplates:  An array of compatible environment names for a service template major or minor version to update.<br/>
        :return: serviceTemplateVersion:  The service template version detail data that's returned by AWS Proton.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>templateName</i> The name of the version of a service template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusMessage</i> A service template version status message.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The service template version status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>schema</i> The schema of the version of a service template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>recommendedMinorVersion</i> The ID of the recommended minor version of the service template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>minorVersion</i> The ID of the minor version of a service template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>majorVersion</i> The ID of the latest major version that's associated with the version of a service template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastModifiedAt</i> The time when the version of a service template was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> A description of the version of a service template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdAt</i> The time when the version of a service template was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>compatibleEnvironmentTemplates</i> An array of compatible environment template names for the major version of a service template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the version of a service template.<br/>        """
        pass





class QLDB(BaseClient):
    r"""The control plane for Amazon QLDB"""




    class CancelJournalKinesisStreamRequest(Mapping):
        pass
    
    class CancelJournalKinesisStreamResponse(Mapping):
        pass
    
    class CreateLedgerRequest(Mapping):
        pass
    
    class CreateLedgerResponse(Mapping):
        pass
    
    class Tags(object):
        pass
    
    class DeletionProtection(object):
        pass
    
    class DeleteLedgerRequest(Mapping):
        pass
    
    class DescribeJournalKinesisStreamRequest(Mapping):
        pass
    
    class DescribeJournalKinesisStreamResponse(Mapping):
        pass
    
    class DescribeJournalS3ExportRequest(Mapping):
        pass
    
    class DescribeJournalS3ExportResponse(Mapping):
        pass
    
    class DescribeLedgerRequest(Mapping):
        pass
    
    class DescribeLedgerResponse(Mapping):
        pass
    
    class ExportJournalToS3Request(Mapping):
        pass
    
    class ExportJournalToS3Response(Mapping):
        pass
    
    class Timestamp(object):
        pass
    
    class S3ExportConfiguration(Mapping):
        pass
    
    class GetBlockRequest(Mapping):
        pass
    
    class GetBlockResponse(Mapping):
        pass
    
    class ValueHolder(Mapping):
        pass
    
    class GetDigestRequest(Mapping):
        pass
    
    class GetDigestResponse(Mapping):
        pass
    
    class GetRevisionRequest(Mapping):
        pass
    
    class GetRevisionResponse(Mapping):
        pass
    
    class ListJournalKinesisStreamsForLedgerRequest(Mapping):
        pass
    
    class ListJournalKinesisStreamsForLedgerResponse(Mapping):
        pass
    
    class ListJournalS3ExportsRequest(Mapping):
        pass
    
    class ListJournalS3ExportsResponse(Mapping):
        pass
    
    class ListJournalS3ExportsForLedgerRequest(Mapping):
        pass
    
    class ListJournalS3ExportsForLedgerResponse(Mapping):
        pass
    
    class ListLedgersRequest(Mapping):
        pass
    
    class ListLedgersResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class StreamJournalToKinesisRequest(Mapping):
        pass
    
    class StreamJournalToKinesisResponse(Mapping):
        pass
    
    class KinesisConfiguration(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateLedgerRequest(Mapping):
        pass
    
    class UpdateLedgerResponse(Mapping):
        pass
    
    class UpdateLedgerPermissionsModeRequest(Mapping):
        pass
    
    class UpdateLedgerPermissionsModeResponse(Mapping):
        pass
    
    def cancel_journal_kinesis_stream(self, StreamId: str, LedgerName: str) -> CancelJournalKinesisStreamResponse:
        r"""Ends a given Amazon QLDB journal stream. Before a stream can be canceled, its current status must be <code>ACTIVE</code>. You can't restart a stream after you cancel it. Canceled QLDB stream resources are subject to a 7-day retention period, so they are automatically deleted after this limit expires.

        :param self:
        :param StreamId:  The UUID (represented in Base62-encoded text) of the QLDB journal stream to be canceled.<br/>LedgerName:  The name of the ledger.<br/>
        :return: StreamId:  The UUID (Base62-encoded text) of the canceled QLDB journal stream.<br/>        """
        pass

    def create_ledger(self, PermissionsMode: str, Name: str, Tags: Tags=None, DeletionProtection: DeletionProtection=None) -> CreateLedgerResponse:
        r"""Creates a new ledger in your AWS account in the current Region.

        :param self:
        :param DeletionProtection:  The flag that prevents a ledger from being deleted by any user. If not provided on ledger creation, this feature is enabled (<code>true</code>) by default. If deletion protection is enabled, you must first disable it before you can delete the ledger. You can disable it by calling the <code>UpdateLedger</code> operation to set the flag to <code>false</code>.<br/>PermissionsMode:  The permissions mode to assign to the ledger that you want to create. This parameter can have one of the following values: <ul> <li>  <code>ALLOW_ALL</code>: A legacy permissions mode that enables access control with API-level granularity for ledgers. This mode allows users who have the <code>SendCommand</code> API permission for this ledger to run all PartiQL commands (hence, <code>ALLOW_ALL</code>) on any tables in the specified ledger. This mode disregards any table-level or command-level IAM permissions policies that you create for the ledger. </li> <li>  <code>STANDARD</code>: (<i>Recommended</i>) A permissions mode that enables access control with finer granularity for ledgers, tables, and PartiQL commands. By default, this mode denies all user requests to run any PartiQL commands on any tables in this ledger. To allow PartiQL commands to run, you must create IAM permissions policies for specific table resources and PartiQL actions, in addition to the <code>SendCommand</code> API permission for the ledger. For information, see <a href="https://docs.aws.amazon.com/qldb/latest/developerguide/getting-started-standard-mode.html">Getting started with the standard permissions mode</a> in the <i>Amazon QLDB Developer Guide</i>. </li> </ul> <note> We strongly recommend using the <code>STANDARD</code> permissions mode to maximize the security of your ledger data. </note><br/>Tags:  The key-value pairs to add as tags to the ledger that you want to create. Tag keys are case sensitive. Tag values are case sensitive and can be null.<br/>Name:  The name of the ledger that you want to create. The name must be unique among all of your ledgers in the current AWS Region. Naming constraints for ledger names are defined in <a href="https://docs.aws.amazon.com/qldb/latest/developerguide/limits.html#limits.naming">Quotas in Amazon QLDB</a> in the <i>Amazon QLDB Developer Guide</i>.<br/>
        :return: DeletionProtection:  The flag that prevents a ledger from being deleted by any user. If not provided on ledger creation, this feature is enabled (<code>true</code>) by default. If deletion protection is enabled, you must first disable it before you can delete the ledger. You can disable it by calling the <code>UpdateLedger</code> operation to set the flag to <code>false</code>.<br/>PermissionsMode:  The permissions mode of the ledger that you created.<br/>CreationDateTime:  The date and time, in epoch time format, when the ledger was created. (Epoch time format is the number of seconds elapsed since 12:00:00 AM January 1, 1970 UTC.)<br/>State:  The current status of the ledger.<br/>Arn:  The Amazon Resource Name (ARN) for the ledger.<br/>Name:  The name of the ledger.<br/>        """
        pass

    def delete_ledger(self, Name: str):
        r"""Deletes a ledger and all of its contents. This action is irreversible. If deletion protection is enabled, you must first disable it before you can delete the ledger. You can disable it by calling the <code>UpdateLedger</code> operation to set the flag to <code>false</code>.

        :param self:
        :param Name:  The name of the ledger that you want to delete.<br/>
        :return:         """
        pass

    def describe_journal_kinesis_stream(self, StreamId: str, LedgerName: str) -> DescribeJournalKinesisStreamResponse:
        r"""Returns detailed information about a given Amazon QLDB journal stream. The output includes the Amazon Resource Name (ARN), stream name, current status, creation time, and the parameters of the original stream creation request. This action does not return any expired journal streams. For more information, see <a href="https://docs.aws.amazon.com/qldb/latest/developerguide/streams.create.html#streams.create.states.expiration">Expiration for terminal streams</a> in the <i>Amazon QLDB Developer Guide</i>.

        :param self:
        :param StreamId:  The UUID (represented in Base62-encoded text) of the QLDB journal stream to describe.<br/>LedgerName:  The name of the ledger.<br/>
        :return: Stream:  Information about the QLDB journal stream returned by a <code>DescribeJournalS3Export</code> request.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamName</i> The user-defined name of the QLDB journal stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorCause</i> The error message that describes the reason that a stream has a status of <code>IMPAIRED</code> or <code>FAILED</code>. This is not applicable to streams that have other status values.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KinesisConfiguration</i> The configuration settings of the Amazon Kinesis Data Streams destination for a QLDB journal stream.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>KinesisConfiguration</b>: The configuration settings of the Amazon Kinesis Data Streams destination for a QLDB journal stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current state of the QLDB journal stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the QLDB journal stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamId</i> The UUID (represented in Base62-encoded text) of the QLDB journal stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The Amazon Resource Name (ARN) of the IAM role that grants QLDB permissions for a journal stream to write data records to a Kinesis Data Streams resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExclusiveEndTime</i> The exclusive date and time that specifies when the stream ends. If this parameter is blank, the stream runs indefinitely until you cancel it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InclusiveStartTime</i> The inclusive start date and time from which to start streaming journal data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The date and time, in epoch time format, when the QLDB journal stream was created. (Epoch time format is the number of seconds elapsed since 12:00:00 AM January 1, 1970 UTC.)<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LedgerName</i> The name of the ledger.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AggregationEnabled</i> Enables QLDB to publish multiple data records in a single Kinesis Data Streams record, increasing the number of records sent per API call.  <i>This option is enabled by default.</i> Record aggregation has important implications for processing records and requires de-aggregation in your stream consumer. To learn more, see <a href="https://docs.aws.amazon.com/streams/latest/dev/kinesis-kpl-concepts.html">KPL Key Concepts</a> and <a href="https://docs.aws.amazon.com/streams/latest/dev/kinesis-kpl-consumer-deaggregation.html">Consumer De-aggregation</a> in the <i>Amazon Kinesis Data Streams Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamArn</i> The Amazon Resource Name (ARN) of the Kinesis Data Streams resource.<br/>        """
        pass

    def describe_journal_s3_export(self, ExportId: str, Name: str) -> DescribeJournalS3ExportResponse:
        r"""Returns information about a journal export job, including the ledger name, export ID, creation time, current status, and the parameters of the original export creation request. This action does not return any expired export jobs. For more information, see <a href="https://docs.aws.amazon.com/qldb/latest/developerguide/export-journal.request.html#export-journal.request.expiration">Export job expiration</a> in the <i>Amazon QLDB Developer Guide</i>. If the export job with the given <code>ExportId</code> doesn't exist, then throws <code>ResourceNotFoundException</code>. If the ledger with the given <code>Name</code> doesn't exist, then throws <code>ResourceNotFoundException</code>.

        :param self:
        :param ExportId:  The UUID (represented in Base62-encoded text) of the journal export job to describe.<br/>Name:  The name of the ledger.<br/>
        :return: ExportDescription:  Information about the journal export job returned by a <code>DescribeJournalS3Export</code> request.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The Amazon Resource Name (ARN) of the IAM role that grants QLDB permissions for a journal export job to do the following: <ul> <li> Write objects into your Amazon Simple Storage Service (Amazon S3) bucket. </li> <li> (Optional) Use your customer master key (CMK) in AWS Key Management Service (AWS KMS) for server-side encryption of your exported data. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3ExportConfiguration</i> The Amazon Simple Storage Service (Amazon S3) bucket location in which a journal export job writes the journal contents.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3ExportConfiguration</b>: The Amazon Simple Storage Service (Amazon S3) bucket location in which a journal export job writes the journal contents.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExclusiveEndTime</i> The exclusive end date and time for the range of journal contents that are specified in the original export request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InclusiveStartTime</i> The inclusive start date and time for the range of journal contents that are specified in the original export request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current state of the journal export job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExportCreationTime</i> The date and time, in epoch time format, when the export job was created. (Epoch time format is the number of seconds elapsed since 12:00:00 AM January 1, 1970 UTC.)<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExportId</i> The UUID (represented in Base62-encoded text) of the journal export job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LedgerName</i> The name of the ledger.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Prefix</i> The prefix for the Amazon S3 bucket in which a journal export job writes the journal contents. The prefix must comply with Amazon S3 key naming rules and restrictions. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMetadata.html">Object Key and Metadata</a> in the <i>Amazon S3 Developer Guide</i>. The following are examples of valid <code>Prefix</code> values: <ul> <li>  <code>JournalExports-ForMyLedger/Testing/</code>  </li> <li>  <code>JournalExports</code>  </li> <li>  <code>My:Tests/</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i> The Amazon S3 bucket name in which a journal export job writes the journal contents. The bucket name must comply with the Amazon S3 bucket naming conventions. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.html">Bucket Restrictions and Limitations</a> in the <i>Amazon S3 Developer Guide</i>.<br/>The encryption settings that are used by a journal export job to write data in an Amazon S3 bucket.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EncryptionConfiguration</b>: The encryption settings that are used by a journal export job to write data in an Amazon S3 bucket.        """
        pass

    def describe_ledger(self, Name: str) -> DescribeLedgerResponse:
        r"""Returns information about a ledger, including its state and when it was created.

        :param self:
        :param Name:  The name of the ledger that you want to describe.<br/>
        :return: DeletionProtection:  The flag that prevents a ledger from being deleted by any user. If not provided on ledger creation, this feature is enabled (<code>true</code>) by default. If deletion protection is enabled, you must first disable it before you can delete the ledger. You can disable it by calling the <code>UpdateLedger</code> operation to set the flag to <code>false</code>.<br/>PermissionsMode:  The permissions mode of the ledger.<br/>CreationDateTime:  The date and time, in epoch time format, when the ledger was created. (Epoch time format is the number of seconds elapsed since 12:00:00 AM January 1, 1970 UTC.)<br/>State:  The current status of the ledger.<br/>Arn:  The Amazon Resource Name (ARN) for the ledger.<br/>Name:  The name of the ledger.<br/>        """
        pass

    def export_journal_to_s3(self, RoleArn: str, S3ExportConfiguration: S3ExportConfiguration, ExclusiveEndTime: Timestamp, InclusiveStartTime: Timestamp, Name: str) -> ExportJournalToS3Response:
        r"""Exports journal contents within a date and time range from a ledger into a specified Amazon Simple Storage Service (Amazon S3) bucket. The data is written as files in Amazon Ion format. If the ledger with the given <code>Name</code> doesn't exist, then throws <code>ResourceNotFoundException</code>. If the ledger with the given <code>Name</code> is in <code>CREATING</code> status, then throws <code>ResourcePreconditionNotMetException</code>. You can initiate up to two concurrent journal export requests for each ledger. Beyond this limit, journal export requests throw <code>LimitExceededException</code>.

        :param self:
        :param RoleArn:  The Amazon Resource Name (ARN) of the IAM role that grants QLDB permissions for a journal export job to do the following: <ul> <li> Write objects into your Amazon Simple Storage Service (Amazon S3) bucket. </li> <li> (Optional) Use your customer master key (CMK) in AWS Key Management Service (AWS KMS) for server-side encryption of your exported data. </li> </ul><br/>S3ExportConfiguration:  The configuration settings of the Amazon S3 bucket destination for your export request.:<br/>ExclusiveEndTime:  The exclusive end date and time for the range of journal contents to export. The <code>ExclusiveEndTime</code> must be in <code>ISO 8601</code> date and time format and in Universal Coordinated Time (UTC). For example: <code>2019-06-13T21:36:34Z</code>. The <code>ExclusiveEndTime</code> must be less than or equal to the current UTC date and time.<br/>InclusiveStartTime:  The inclusive start date and time for the range of journal contents to export. The <code>InclusiveStartTime</code> must be in <code>ISO 8601</code> date and time format and in Universal Coordinated Time (UTC). For example: <code>2019-06-13T21:36:34Z</code>. The <code>InclusiveStartTime</code> must be before <code>ExclusiveEndTime</code>. If you provide an <code>InclusiveStartTime</code> that is before the ledger's <code>CreationDateTime</code>, Amazon QLDB defaults it to the ledger's <code>CreationDateTime</code>.<br/>Name:  The name of the ledger.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EncryptionConfiguration</i> The encryption settings that are used by a journal export job to write data in an Amazon S3 bucket.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EncryptionConfiguration</b>: The encryption settings that are used by a journal export job to write data in an Amazon S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Prefix</i> The prefix for the Amazon S3 bucket in which a journal export job writes the journal contents. The prefix must comply with Amazon S3 key naming rules and restrictions. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMetadata.html">Object Key and Metadata</a> in the <i>Amazon S3 Developer Guide</i>. The following are examples of valid <code>Prefix</code> values: <ul> <li>  <code>JournalExports-ForMyLedger/Testing/</code>  </li> <li>  <code>JournalExports</code>  </li> <li>  <code>My:Tests/</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i> The Amazon S3 bucket name in which a journal export job writes the journal contents. The bucket name must comply with the Amazon S3 bucket naming conventions. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.html">Bucket Restrictions and Limitations</a> in the <i>Amazon S3 Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyArn</i> The Amazon Resource Name (ARN) for a symmetric customer master key (CMK) in AWS Key Management Service (AWS KMS). Amazon S3 does not support asymmetric CMKs. You must provide a <code>KmsKeyArn</code> if you specify <code>SSE_KMS</code> as the <code>ObjectEncryptionType</code>.  <code>KmsKeyArn</code> is not required if you specify <code>SSE_S3</code> as the <code>ObjectEncryptionType</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ObjectEncryptionType</i> The Amazon S3 object encryption type. To learn more about server-side encryption options in Amazon S3, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html">Protecting Data Using Server-Side Encryption</a> in the <i>Amazon S3 Developer Guide</i>.<br/>
        :return: ExportId:  The UUID (represented in Base62-encoded text) that QLDB assigns to each journal export job. To describe your export request and check the status of the job, you can use <code>ExportId</code> to call <code>DescribeJournalS3Export</code>.<br/>        """
        pass

    def get_block(self, BlockAddress: ValueHolder, Name: str, DigestTipAddress: ValueHolder=None) -> GetBlockResponse:
        r"""Returns a block object at a specified address in a journal. Also returns a proof of the specified block for verification if <code>DigestTipAddress</code> is provided. For information about the data contents in a block, see <a href="https://docs.aws.amazon.com/qldb/latest/developerguide/journal-contents.html">Journal contents</a> in the <i>Amazon QLDB Developer Guide</i>. If the specified ledger doesn't exist or is in <code>DELETING</code> status, then throws <code>ResourceNotFoundException</code>. If the specified ledger is in <code>CREATING</code> status, then throws <code>ResourcePreconditionNotMetException</code>. If no block exists with the specified address, then throws <code>InvalidParameterException</code>.

        :param self:
        :param DigestTipAddress:  The latest block location covered by the digest for which to request a proof. An address is an Amazon Ion structure that has two fields: <code>strandId</code> and <code>sequenceNo</code>. For example: <code>{strandId:"BlFTjlSXze9BIh1KOszcE3",sequenceNo:49}</code>.:<br/>BlockAddress:  The location of the block that you want to request. An address is an Amazon Ion structure that has two fields: <code>strandId</code> and <code>sequenceNo</code>. For example: <code>{strandId:"BlFTjlSXze9BIh1KOszcE3",sequenceNo:14}</code>.:<br/>Name:  The name of the ledger.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IonText</i> An Amazon Ion plaintext value contained in a <code>ValueHolder</code> structure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IonText</i> An Amazon Ion plaintext value contained in a <code>ValueHolder</code> structure.<br/>
        :return: Proof:  The proof object in Amazon Ion format returned by a <code>GetBlock</code> request. A proof contains the list of hash values required to recalculate the specified digest using a Merkle tree, starting with the specified block.:<br/>Block:  The block data object in Amazon Ion format.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IonText</i> An Amazon Ion plaintext value contained in a <code>ValueHolder</code> structure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IonText</i> An Amazon Ion plaintext value contained in a <code>ValueHolder</code> structure.<br/>        """
        pass

    def get_digest(self, Name: str) -> GetDigestResponse:
        r"""Returns the digest of a ledger at the latest committed block in the journal. The response includes a 256-bit hash value and a block address.

        :param self:
        :param Name:  The name of the ledger.<br/>
        :return: DigestTipAddress:  The latest block location covered by the digest that you requested. An address is an Amazon Ion structure that has two fields: <code>strandId</code> and <code>sequenceNo</code>.:<br/>Digest:  The 256-bit hash value representing the digest returned by a <code>GetDigest</code> request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IonText</i> An Amazon Ion plaintext value contained in a <code>ValueHolder</code> structure.<br/>        """
        pass

    def get_revision(self, DocumentId: str, BlockAddress: ValueHolder, Name: str, DigestTipAddress: ValueHolder=None) -> GetRevisionResponse:
        r"""Returns a revision data object for a specified document ID and block address. Also returns a proof of the specified revision for verification if <code>DigestTipAddress</code> is provided.

        :param self:
        :param DigestTipAddress:  The latest block location covered by the digest for which to request a proof. An address is an Amazon Ion structure that has two fields: <code>strandId</code> and <code>sequenceNo</code>. For example: <code>{strandId:"BlFTjlSXze9BIh1KOszcE3",sequenceNo:49}</code>.:<br/>DocumentId:  The UUID (represented in Base62-encoded text) of the document to be verified.<br/>BlockAddress:  The block location of the document revision to be verified. An address is an Amazon Ion structure that has two fields: <code>strandId</code> and <code>sequenceNo</code>. For example: <code>{strandId:"BlFTjlSXze9BIh1KOszcE3",sequenceNo:14}</code>.:<br/>Name:  The name of the ledger.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IonText</i> An Amazon Ion plaintext value contained in a <code>ValueHolder</code> structure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IonText</i> An Amazon Ion plaintext value contained in a <code>ValueHolder</code> structure.<br/>
        :return: Revision:  The document revision data object in Amazon Ion format.:<br/>Proof:  The proof object in Amazon Ion format returned by a <code>GetRevision</code> request. A proof contains the list of hash values that are required to recalculate the specified digest using a Merkle tree, starting with the specified document revision.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IonText</i> An Amazon Ion plaintext value contained in a <code>ValueHolder</code> structure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IonText</i> An Amazon Ion plaintext value contained in a <code>ValueHolder</code> structure.<br/>        """
        pass

    def list_journal_kinesis_streams_for_ledger(self, LedgerName: str, MaxResults: int=None, NextToken: str=None) -> ListJournalKinesisStreamsForLedgerResponse:
        r"""Returns an array of all Amazon QLDB journal stream descriptors for a given ledger. The output of each stream descriptor includes the same details that are returned by <code>DescribeJournalKinesisStream</code>. This action does not return any expired journal streams. For more information, see <a href="https://docs.aws.amazon.com/qldb/latest/developerguide/streams.create.html#streams.create.states.expiration">Expiration for terminal streams</a> in the <i>Amazon QLDB Developer Guide</i>. This action returns a maximum of <code>MaxResults</code> items. It is paginated so that you can retrieve all the items by calling <code>ListJournalKinesisStreamsForLedger</code> multiple times.

        :param self:
        :param NextToken:  A pagination token, indicating that you want to retrieve the next page of results. If you received a value for <code>NextToken</code> in the response from a previous <code>ListJournalKinesisStreamsForLedger</code> call, you should use that value as input here.<br/>MaxResults:  The maximum number of results to return in a single <code>ListJournalKinesisStreamsForLedger</code> request. (The actual number of results returned might be fewer.)<br/>LedgerName:  The name of the ledger.<br/>
        :return: NextToken:  <ul> <li> If <code>NextToken</code> is empty, the last page of results has been processed and there are no more results to be retrieved. </li> <li> If <code>NextToken</code> is <i>not</i> empty, more results are available. To retrieve the next page of results, use the value of <code>NextToken</code> in a subsequent <code>ListJournalKinesisStreamsForLedger</code> call. </li> </ul><br/>Streams:  The array of QLDB journal stream descriptors that are associated with the given ledger.<br/>        """
        pass

    def list_journal_s3_exports(self, MaxResults: int=None, NextToken: str=None) -> ListJournalS3ExportsResponse:
        r"""Returns an array of journal export job descriptions for all ledgers that are associated with the current AWS account and Region. This action returns a maximum of <code>MaxResults</code> items, and is paginated so that you can retrieve all the items by calling <code>ListJournalS3Exports</code> multiple times. This action does not return any expired export jobs. For more information, see <a href="https://docs.aws.amazon.com/qldb/latest/developerguide/export-journal.request.html#export-journal.request.expiration">Export job expiration</a> in the <i>Amazon QLDB Developer Guide</i>.

        :param self:
        :param NextToken:  A pagination token, indicating that you want to retrieve the next page of results. If you received a value for <code>NextToken</code> in the response from a previous <code>ListJournalS3Exports</code> call, then you should use that value as input here.<br/>MaxResults:  The maximum number of results to return in a single <code>ListJournalS3Exports</code> request. (The actual number of results returned might be fewer.)<br/>
        :return: NextToken:  <ul> <li> If <code>NextToken</code> is empty, then the last page of results has been processed and there are no more results to be retrieved. </li> <li> If <code>NextToken</code> is <i>not</i> empty, then there are more results available. To retrieve the next page of results, use the value of <code>NextToken</code> in a subsequent <code>ListJournalS3Exports</code> call. </li> </ul><br/>JournalS3Exports:  The array of journal export job descriptions for all ledgers that are associated with the current AWS account and Region.<br/>        """
        pass

    def list_journal_s3_exports_for_ledger(self, Name: str, MaxResults: int=None, NextToken: str=None) -> ListJournalS3ExportsForLedgerResponse:
        r"""Returns an array of journal export job descriptions for a specified ledger. This action returns a maximum of <code>MaxResults</code> items, and is paginated so that you can retrieve all the items by calling <code>ListJournalS3ExportsForLedger</code> multiple times. This action does not return any expired export jobs. For more information, see <a href="https://docs.aws.amazon.com/qldb/latest/developerguide/export-journal.request.html#export-journal.request.expiration">Export job expiration</a> in the <i>Amazon QLDB Developer Guide</i>.

        :param self:
        :param NextToken:  A pagination token, indicating that you want to retrieve the next page of results. If you received a value for <code>NextToken</code> in the response from a previous <code>ListJournalS3ExportsForLedger</code> call, then you should use that value as input here.<br/>MaxResults:  The maximum number of results to return in a single <code>ListJournalS3ExportsForLedger</code> request. (The actual number of results returned might be fewer.)<br/>Name:  The name of the ledger.<br/>
        :return: NextToken:  <ul> <li> If <code>NextToken</code> is empty, then the last page of results has been processed and there are no more results to be retrieved. </li> <li> If <code>NextToken</code> is <i>not</i> empty, then there are more results available. To retrieve the next page of results, use the value of <code>NextToken</code> in a subsequent <code>ListJournalS3ExportsForLedger</code> call. </li> </ul><br/>JournalS3Exports:  The array of journal export job descriptions that are associated with the specified ledger.<br/>        """
        pass

    def list_ledgers(self, MaxResults: int=None, NextToken: str=None) -> ListLedgersResponse:
        r"""Returns an array of ledger summaries that are associated with the current AWS account and Region. This action returns a maximum of 100 items and is paginated so that you can retrieve all the items by calling <code>ListLedgers</code> multiple times.

        :param self:
        :param NextToken:  A pagination token, indicating that you want to retrieve the next page of results. If you received a value for <code>NextToken</code> in the response from a previous <code>ListLedgers</code> call, then you should use that value as input here.<br/>MaxResults:  The maximum number of results to return in a single <code>ListLedgers</code> request. (The actual number of results returned might be fewer.)<br/>
        :return: NextToken:  A pagination token, indicating whether there are more results available: <ul> <li> If <code>NextToken</code> is empty, then the last page of results has been processed and there are no more results to be retrieved. </li> <li> If <code>NextToken</code> is <i>not</i> empty, then there are more results available. To retrieve the next page of results, use the value of <code>NextToken</code> in a subsequent <code>ListLedgers</code> call. </li> </ul><br/>Ledgers:  The array of ledger summaries that are associated with the current AWS account and Region.<br/>        """
        pass

    def list_tags_for_resource(self, ResourceArn: str) -> ListTagsForResourceResponse:
        r"""Returns all tags for a specified Amazon QLDB resource.

        :param self:
        :param ResourceArn:  The Amazon Resource Name (ARN) for which to list the tags. For example:  <code>arn:aws:qldb:us-east-1:123456789012:ledger/exampleLedger</code> <br/>
        :return: Tags:  The tags that are currently associated with the specified Amazon QLDB resource.<br/>        """
        pass

    def stream_journal_to_kinesis(self, StreamName: str, KinesisConfiguration: KinesisConfiguration, InclusiveStartTime: Timestamp, RoleArn: str, LedgerName: str, Tags: Tags=None, ExclusiveEndTime: Timestamp=None) -> StreamJournalToKinesisResponse:
        r"""Creates a journal stream for a given Amazon QLDB ledger. The stream captures every document revision that is committed to the ledger's journal and delivers the data to a specified Amazon Kinesis Data Streams resource.

        :param self:
        :param StreamName:  The name that you want to assign to the QLDB journal stream. User-defined names can help identify and indicate the purpose of a stream. Your stream name must be unique among other <i>active</i> streams for a given ledger. Stream names have the same naming constraints as ledger names, as defined in <a href="https://docs.aws.amazon.com/qldb/latest/developerguide/limits.html#limits.naming">Quotas in Amazon QLDB</a> in the <i>Amazon QLDB Developer Guide</i>.<br/>KinesisConfiguration:  The configuration settings of the Kinesis Data Streams destination for your stream request.:<br/>ExclusiveEndTime:  The exclusive date and time that specifies when the stream ends. If you don't define this parameter, the stream runs indefinitely until you cancel it. The <code>ExclusiveEndTime</code> must be in <code>ISO 8601</code> date and time format and in Universal Coordinated Time (UTC). For example: <code>2019-06-13T21:36:34Z</code>.<br/>InclusiveStartTime:  The inclusive start date and time from which to start streaming journal data. This parameter must be in <code>ISO 8601</code> date and time format and in Universal Coordinated Time (UTC). For example: <code>2019-06-13T21:36:34Z</code>. The <code>InclusiveStartTime</code> cannot be in the future and must be before <code>ExclusiveEndTime</code>. If you provide an <code>InclusiveStartTime</code> that is before the ledger's <code>CreationDateTime</code>, QLDB effectively defaults it to the ledger's <code>CreationDateTime</code>.<br/>Tags:  The key-value pairs to add as tags to the stream that you want to create. Tag keys are case sensitive. Tag values are case sensitive and can be null.<br/>RoleArn:  The Amazon Resource Name (ARN) of the IAM role that grants QLDB permissions for a journal stream to write data records to a Kinesis Data Streams resource.<br/>LedgerName:  The name of the ledger.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AggregationEnabled</i> Enables QLDB to publish multiple data records in a single Kinesis Data Streams record, increasing the number of records sent per API call.  <i>This option is enabled by default.</i> Record aggregation has important implications for processing records and requires de-aggregation in your stream consumer. To learn more, see <a href="https://docs.aws.amazon.com/streams/latest/dev/kinesis-kpl-concepts.html">KPL Key Concepts</a> and <a href="https://docs.aws.amazon.com/streams/latest/dev/kinesis-kpl-consumer-deaggregation.html">Consumer De-aggregation</a> in the <i>Amazon Kinesis Data Streams Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StreamArn</i> The Amazon Resource Name (ARN) of the Kinesis Data Streams resource.<br/>
        :return: StreamId:  The UUID (represented in Base62-encoded text) that QLDB assigns to each QLDB journal stream.<br/>        """
        pass

    def tag_resource(self, Tags: Tags, ResourceArn: str) -> TagResourceResponse:
        r"""Adds one or more tags to a specified Amazon QLDB resource. A resource can have up to 50 tags. If you try to create more than 50 tags for a resource, your request fails and returns an error.

        :param self:
        :param Tags:  The key-value pairs to add as tags to the specified QLDB resource. Tag keys are case sensitive. If you specify a key that already exists for the resource, your request fails and returns an error. Tag values are case sensitive and can be null.<br/>ResourceArn:  The Amazon Resource Name (ARN) to which you want to add the tags. For example:  <code>arn:aws:qldb:us-east-1:123456789012:ledger/exampleLedger</code> <br/>
        :return:         """
        pass

    def untag_resource(self, TagKeys: List[TagKey], ResourceArn: str) -> UntagResourceResponse:
        r"""Removes one or more tags from a specified Amazon QLDB resource. You can specify up to 50 tag keys to remove.

        :param self:
        :param TagKeys:  The list of tag keys to remove.<br/>ResourceArn:  The Amazon Resource Name (ARN) from which to remove the tags. For example:  <code>arn:aws:qldb:us-east-1:123456789012:ledger/exampleLedger</code> <br/>
        :return:         """
        pass

    def update_ledger(self, Name: str, DeletionProtection: DeletionProtection=None) -> UpdateLedgerResponse:
        r"""Updates properties on a ledger.

        :param self:
        :param DeletionProtection:  The flag that prevents a ledger from being deleted by any user. If not provided on ledger creation, this feature is enabled (<code>true</code>) by default. If deletion protection is enabled, you must first disable it before you can delete the ledger. You can disable it by calling the <code>UpdateLedger</code> operation to set the flag to <code>false</code>.<br/>Name:  The name of the ledger.<br/>
        :return: DeletionProtection:  The flag that prevents a ledger from being deleted by any user. If not provided on ledger creation, this feature is enabled (<code>true</code>) by default. If deletion protection is enabled, you must first disable it before you can delete the ledger. You can disable it by calling the <code>UpdateLedger</code> operation to set the flag to <code>false</code>.<br/>CreationDateTime:  The date and time, in epoch time format, when the ledger was created. (Epoch time format is the number of seconds elapsed since 12:00:00 AM January 1, 1970 UTC.)<br/>State:  The current status of the ledger.<br/>Arn:  The Amazon Resource Name (ARN) for the ledger.<br/>Name:  The name of the ledger.<br/>        """
        pass

    def update_ledger_permissions_mode(self, PermissionsMode: str, Name: str) -> UpdateLedgerPermissionsModeResponse:
        r"""Updates the permissions mode of a ledger. <important> Before you switch to the <code>STANDARD</code> permissions mode, you must first create all required IAM policies and table tags to avoid disruption to your users. To learn more, see <a href="https://docs.aws.amazon.com/qldb/latest/developerguide/ledger-management.basics.html#ledger-mgmt.basics.update-permissions.migrating">Migrating to the standard permissions mode</a> in the <i>Amazon QLDB Developer Guide</i>. </important>

        :param self:
        :param PermissionsMode:  The permissions mode to assign to the ledger. This parameter can have one of the following values: <ul> <li>  <code>ALLOW_ALL</code>: A legacy permissions mode that enables access control with API-level granularity for ledgers. This mode allows users who have the <code>SendCommand</code> API permission for this ledger to run all PartiQL commands (hence, <code>ALLOW_ALL</code>) on any tables in the specified ledger. This mode disregards any table-level or command-level IAM permissions policies that you create for the ledger. </li> <li>  <code>STANDARD</code>: (<i>Recommended</i>) A permissions mode that enables access control with finer granularity for ledgers, tables, and PartiQL commands. By default, this mode denies all user requests to run any PartiQL commands on any tables in this ledger. To allow PartiQL commands to run, you must create IAM permissions policies for specific table resources and PartiQL actions, in addition to the <code>SendCommand</code> API permission for the ledger. For information, see <a href="https://docs.aws.amazon.com/qldb/latest/developerguide/getting-started-standard-mode.html">Getting started with the standard permissions mode</a> in the <i>Amazon QLDB Developer Guide</i>. </li> </ul> <note> We strongly recommend using the <code>STANDARD</code> permissions mode to maximize the security of your ledger data. </note><br/>Name:  The name of the ledger.<br/>
        :return: PermissionsMode:  The current permissions mode of the ledger.<br/>Arn:  The Amazon Resource Name (ARN) for the ledger.<br/>Name:  The name of the ledger.<br/>        """
        pass





class QLDBSession(BaseClient):
    r"""The transactional data APIs for Amazon QLDB <note> Instead of interacting directly with this API, we recommend using the QLDB driver or the QLDB shell to execute data transactions on a ledger. <ul> <li> If you are working with an AWS SDK, use the QLDB driver. The driver provides a high-level abstraction layer above this <i>QLDB Session</i> data plane and manages <code>SendCommand</code> API calls for you. For information and a list of supported programming languages, see <a href="https://docs.aws.amazon.com/qldb/latest/developerguide/getting-started-driver.html">Getting started with the driver</a> in the <i>Amazon QLDB Developer Guide</i>. </li> <li> If you are working with the AWS Command Line Interface (AWS CLI), use the QLDB shell. The shell is a command line interface that uses the QLDB driver to interact with a ledger. For information, see <a href="https://docs.aws.amazon.com/qldb/latest/developerguide/data-shell.html">Accessing Amazon QLDB using the QLDB shell</a>. </li> </ul> </note>"""




    class SendCommandRequest(Mapping):
        pass
    
    class SendCommandResult(Mapping):
        pass
    
    class StartSessionRequest(Mapping):
        pass
    
    class StartTransactionRequest(Mapping):
        pass
    
    class EndSessionRequest(Mapping):
        pass
    
    class CommitTransactionRequest(Mapping):
        pass
    
    class AbortTransactionRequest(Mapping):
        pass
    
    class ExecuteStatementRequest(Mapping):
        pass
    
    class FetchPageRequest(Mapping):
        pass
    
    def send_command(self, SessionToken: str=None, StartSession: StartSessionRequest=None, StartTransaction: StartTransactionRequest=None, EndSession: EndSessionRequest=None, CommitTransaction: CommitTransactionRequest=None, AbortTransaction: AbortTransactionRequest=None, ExecuteStatement: ExecuteStatementRequest=None, FetchPage: FetchPageRequest=None) -> SendCommandResult:
        r"""Sends a command to an Amazon QLDB ledger. <note> Instead of interacting directly with this API, we recommend using the QLDB driver or the QLDB shell to execute data transactions on a ledger. <ul> <li> If you are working with an AWS SDK, use the QLDB driver. The driver provides a high-level abstraction layer above this <i>QLDB Session</i> data plane and manages <code>SendCommand</code> API calls for you. For information and a list of supported programming languages, see <a href="https://docs.aws.amazon.com/qldb/latest/developerguide/getting-started-driver.html">Getting started with the driver</a> in the <i>Amazon QLDB Developer Guide</i>. </li> <li> If you are working with the AWS Command Line Interface (AWS CLI), use the QLDB shell. The shell is a command line interface that uses the QLDB driver to interact with a ledger. For information, see <a href="https://docs.aws.amazon.com/qldb/latest/developerguide/data-shell.html">Accessing Amazon QLDB using the QLDB shell</a>. </li> </ul> </note>

        :param self:
        :param StartSession:  Command to start a new session. A session token is obtained as part of the response.:<br/>SessionToken:  Specifies the session token for the current command. A session token is constant throughout the life of the session. To obtain a session token, run the <code>StartSession</code> command. This <code>SessionToken</code> is required for every subsequent command that is issued during the current session.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LedgerName</i> The name of the ledger to start a new session against.<br/>Command to start a new transaction.:
        :return: FetchPage:  Contains the details of the fetched page.:<br/>ExecuteStatement:  Contains the details of the executed statement.:<br/>AbortTransaction:  Contains the details of the aborted transaction.:<br/>CommitTransaction:  Contains the details of the committed transaction.:<br/>EndSession:  Contains the details of the ended session.:<br/>StartTransaction:  Contains the details of the started transaction.:<br/>StartSession:  Contains the details of the started session that includes a session token. This <code>SessionToken</code> is required for every subsequent command that is issued during the current session.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TimingInformation</i> Contains server-side performance information for the command.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TimingInformation</b>: Contains server-side performance information for the command.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SessionToken</i> Session token of the started session. This <code>SessionToken</code> is required for every subsequent command that is issued during the current session.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ProcessingTimeMilliseconds</i> The amount of time that QLDB spent on processing the command, measured in milliseconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TimingInformation</i> Contains server-side performance information for the command.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TimingInformation</b>: Contains server-side performance information for the command.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransactionId</i> The transaction ID of the started transaction.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ProcessingTimeMilliseconds</i> The amount of time that QLDB spent on processing the command, measured in milliseconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TimingInformation</i> Contains server-side performance information for the command.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TimingInformation</b>: Contains server-side performance information for the command.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ProcessingTimeMilliseconds</i> The amount of time that QLDB spent on processing the command, measured in milliseconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConsumedIOs</i> Contains metrics about the number of I/O requests that were consumed.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ConsumedIOs</b>: Contains metrics about the number of I/O requests that were consumed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TimingInformation</i> Contains server-side performance information for the command.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TimingInformation</b>: Contains server-side performance information for the command.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CommitDigest</i> The commit digest of the committed transaction.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransactionId</i> The transaction ID of the committed transaction.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ProcessingTimeMilliseconds</i> The amount of time that QLDB spent on processing the command, measured in milliseconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>WriteIOs</i> The number of write I/O requests that the command made.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadIOs</i> The number of read I/O requests that the command made.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TimingInformation</i> Contains server-side performance information for the command.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TimingInformation</b>: Contains server-side performance information for the command.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ProcessingTimeMilliseconds</i> The amount of time that QLDB spent on processing the command, measured in milliseconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConsumedIOs</i> Contains metrics about the number of I/O requests that were consumed.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ConsumedIOs</b>: Contains metrics about the number of I/O requests that were consumed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TimingInformation</i> Contains server-side performance information for the command.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TimingInformation</b>: Contains server-side performance information for the command.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FirstPage</i> Contains the details of the first fetched page.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>FirstPage</b>: Contains the details of the first fetched page.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NextPageToken</i> The token of the next page.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Values</i> A structure that contains values in multiple encoding formats.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ProcessingTimeMilliseconds</i> The amount of time that QLDB spent on processing the command, measured in milliseconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>WriteIOs</i> The number of write I/O requests that the command made.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadIOs</i> The number of read I/O requests that the command made.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConsumedIOs</i> Contains metrics about the number of I/O requests that were consumed.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ConsumedIOs</b>: Contains metrics about the number of I/O requests that were consumed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TimingInformation</i> Contains server-side performance information for the command.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TimingInformation</b>: Contains server-side performance information for the command.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Page</i> Contains details of the fetched page.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Page</b>: Contains details of the fetched page.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NextPageToken</i> The token of the next page.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Values</i> A structure that contains values in multiple encoding formats.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ProcessingTimeMilliseconds</i> The amount of time that QLDB spent on processing the command, measured in milliseconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>WriteIOs</i> The number of write I/O requests that the command made.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadIOs</i> The number of read I/O requests that the command made.<br/>        """
        pass





class QuickSight(BaseClient):
    r"""<fullname>Amazon QuickSight API Reference</fullname> Amazon QuickSight is a fully managed, serverless business intelligence service for the AWS Cloud that makes it easy to extend data and insights to every user in your organization. This API reference contains documentation for a programming interface that you can use to manage Amazon QuickSight. """


    class ListAnalysesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_analyses` for valid parameters"""
            pass
    class ListDashboardVersionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_dashboard_versions` for valid parameters"""
            pass
    class ListDashboardsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_dashboards` for valid parameters"""
            pass
    class ListDataSetsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_data_sets` for valid parameters"""
            pass
    class ListDataSourcesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_data_sources` for valid parameters"""
            pass
    class ListIngestionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_ingestions` for valid parameters"""
            pass
    class ListNamespacesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_namespaces` for valid parameters"""
            pass
    class ListTemplateAliasesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_template_aliases` for valid parameters"""
            pass
    class ListTemplateVersionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_template_versions` for valid parameters"""
            pass
    class ListTemplatesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_templates` for valid parameters"""
            pass
    class ListThemeVersionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_theme_versions` for valid parameters"""
            pass
    class ListThemesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_themes` for valid parameters"""
            pass
    class SearchAnalysesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `search_analyses` for valid parameters"""
            pass
    class SearchDashboardsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `search_dashboards` for valid parameters"""
            pass


    class CancelIngestionRequest(Mapping):
        pass
    
    class CancelIngestionResponse(Mapping):
        pass
    
    class CreateAccountCustomizationRequest(Mapping):
        pass
    
    class CreateAccountCustomizationResponse(Mapping):
        pass
    
    class AccountCustomization(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class CreateAnalysisRequest(Mapping):
        pass
    
    class CreateAnalysisResponse(Mapping):
        pass
    
    class Parameters(Mapping):
        pass
    
    class ResourcePermission(Mapping):
        pass
    
    class AnalysisSourceEntity(Mapping):
        pass
    
    class CreateDashboardRequest(Mapping):
        pass
    
    class CreateDashboardResponse(Mapping):
        pass
    
    class DashboardSourceEntity(Mapping):
        pass
    
    class DashboardPublishOptions(Mapping):
        pass
    
    class CreateDataSetRequest(Mapping):
        pass
    
    class CreateDataSetResponse(Mapping):
        pass
    
    class PhysicalTableMap(object):
        pass
    
    class LogicalTableMap(object):
        pass
    
    class ColumnGroup(Mapping):
        pass
    
    class FieldFolderMap(object):
        pass
    
    class RowLevelPermissionDataSet(Mapping):
        pass
    
    class ColumnLevelPermissionRule(Mapping):
        pass
    
    class CreateDataSourceRequest(Mapping):
        pass
    
    class CreateDataSourceResponse(Mapping):
        pass
    
    class DataSourceParameters(Mapping):
        pass
    
    class DataSourceCredentials(Mapping):
        pass
    
    class VpcConnectionProperties(Mapping):
        pass
    
    class SslProperties(Mapping):
        pass
    
    class CreateFolderRequest(Mapping):
        pass
    
    class CreateFolderResponse(Mapping):
        pass
    
    class CreateFolderMembershipRequest(Mapping):
        pass
    
    class CreateFolderMembershipResponse(Mapping):
        pass
    
    class CreateGroupRequest(Mapping):
        pass
    
    class CreateGroupResponse(Mapping):
        pass
    
    class CreateGroupMembershipRequest(Mapping):
        pass
    
    class CreateGroupMembershipResponse(Mapping):
        pass
    
    class CreateIAMPolicyAssignmentRequest(Mapping):
        pass
    
    class CreateIAMPolicyAssignmentResponse(Mapping):
        pass
    
    class IdentityMap(object):
        pass
    
    class CreateIngestionRequest(Mapping):
        pass
    
    class CreateIngestionResponse(Mapping):
        pass
    
    class CreateNamespaceRequest(Mapping):
        pass
    
    class CreateNamespaceResponse(Mapping):
        pass
    
    class CreateTemplateRequest(Mapping):
        pass
    
    class CreateTemplateResponse(Mapping):
        pass
    
    class TemplateSourceEntity(Mapping):
        pass
    
    class CreateTemplateAliasRequest(Mapping):
        pass
    
    class CreateTemplateAliasResponse(Mapping):
        pass
    
    class VersionNumber(object):
        pass
    
    class CreateThemeRequest(Mapping):
        pass
    
    class CreateThemeResponse(Mapping):
        pass
    
    class ThemeConfiguration(Mapping):
        pass
    
    class CreateThemeAliasRequest(Mapping):
        pass
    
    class CreateThemeAliasResponse(Mapping):
        pass
    
    class DeleteAccountCustomizationRequest(Mapping):
        pass
    
    class DeleteAccountCustomizationResponse(Mapping):
        pass
    
    class DeleteAnalysisRequest(Mapping):
        pass
    
    class DeleteAnalysisResponse(Mapping):
        pass
    
    class RecoveryWindowInDays(object):
        pass
    
    class boolean(object):
        pass
    
    class DeleteDashboardRequest(Mapping):
        pass
    
    class DeleteDashboardResponse(Mapping):
        pass
    
    class DeleteDataSetRequest(Mapping):
        pass
    
    class DeleteDataSetResponse(Mapping):
        pass
    
    class DeleteDataSourceRequest(Mapping):
        pass
    
    class DeleteDataSourceResponse(Mapping):
        pass
    
    class DeleteFolderRequest(Mapping):
        pass
    
    class DeleteFolderResponse(Mapping):
        pass
    
    class DeleteFolderMembershipRequest(Mapping):
        pass
    
    class DeleteFolderMembershipResponse(Mapping):
        pass
    
    class DeleteGroupRequest(Mapping):
        pass
    
    class DeleteGroupResponse(Mapping):
        pass
    
    class DeleteGroupMembershipRequest(Mapping):
        pass
    
    class DeleteGroupMembershipResponse(Mapping):
        pass
    
    class DeleteIAMPolicyAssignmentRequest(Mapping):
        pass
    
    class DeleteIAMPolicyAssignmentResponse(Mapping):
        pass
    
    class DeleteNamespaceRequest(Mapping):
        pass
    
    class DeleteNamespaceResponse(Mapping):
        pass
    
    class DeleteTemplateRequest(Mapping):
        pass
    
    class DeleteTemplateResponse(Mapping):
        pass
    
    class DeleteTemplateAliasRequest(Mapping):
        pass
    
    class DeleteTemplateAliasResponse(Mapping):
        pass
    
    class DeleteThemeRequest(Mapping):
        pass
    
    class DeleteThemeResponse(Mapping):
        pass
    
    class DeleteThemeAliasRequest(Mapping):
        pass
    
    class DeleteThemeAliasResponse(Mapping):
        pass
    
    class DeleteUserRequest(Mapping):
        pass
    
    class DeleteUserResponse(Mapping):
        pass
    
    class DeleteUserByPrincipalIdRequest(Mapping):
        pass
    
    class DeleteUserByPrincipalIdResponse(Mapping):
        pass
    
    class DescribeAccountCustomizationRequest(Mapping):
        pass
    
    class DescribeAccountCustomizationResponse(Mapping):
        pass
    
    class DescribeAccountSettingsRequest(Mapping):
        pass
    
    class DescribeAccountSettingsResponse(Mapping):
        pass
    
    class DescribeAnalysisRequest(Mapping):
        pass
    
    class DescribeAnalysisResponse(Mapping):
        pass
    
    class DescribeAnalysisPermissionsRequest(Mapping):
        pass
    
    class DescribeAnalysisPermissionsResponse(Mapping):
        pass
    
    class DescribeDashboardRequest(Mapping):
        pass
    
    class DescribeDashboardResponse(Mapping):
        pass
    
    class DescribeDashboardPermissionsRequest(Mapping):
        pass
    
    class DescribeDashboardPermissionsResponse(Mapping):
        pass
    
    class DescribeDataSetRequest(Mapping):
        pass
    
    class DescribeDataSetResponse(Mapping):
        pass
    
    class DescribeDataSetPermissionsRequest(Mapping):
        pass
    
    class DescribeDataSetPermissionsResponse(Mapping):
        pass
    
    class DescribeDataSourceRequest(Mapping):
        pass
    
    class DescribeDataSourceResponse(Mapping):
        pass
    
    class DescribeDataSourcePermissionsRequest(Mapping):
        pass
    
    class DescribeDataSourcePermissionsResponse(Mapping):
        pass
    
    class DescribeFolderRequest(Mapping):
        pass
    
    class DescribeFolderResponse(Mapping):
        pass
    
    class DescribeFolderPermissionsRequest(Mapping):
        pass
    
    class DescribeFolderPermissionsResponse(Mapping):
        pass
    
    class DescribeFolderResolvedPermissionsRequest(Mapping):
        pass
    
    class DescribeFolderResolvedPermissionsResponse(Mapping):
        pass
    
    class DescribeGroupRequest(Mapping):
        pass
    
    class DescribeGroupResponse(Mapping):
        pass
    
    class DescribeIAMPolicyAssignmentRequest(Mapping):
        pass
    
    class DescribeIAMPolicyAssignmentResponse(Mapping):
        pass
    
    class DescribeIngestionRequest(Mapping):
        pass
    
    class DescribeIngestionResponse(Mapping):
        pass
    
    class DescribeNamespaceRequest(Mapping):
        pass
    
    class DescribeNamespaceResponse(Mapping):
        pass
    
    class DescribeTemplateRequest(Mapping):
        pass
    
    class DescribeTemplateResponse(Mapping):
        pass
    
    class DescribeTemplateAliasRequest(Mapping):
        pass
    
    class DescribeTemplateAliasResponse(Mapping):
        pass
    
    class DescribeTemplatePermissionsRequest(Mapping):
        pass
    
    class DescribeTemplatePermissionsResponse(Mapping):
        pass
    
    class DescribeThemeRequest(Mapping):
        pass
    
    class DescribeThemeResponse(Mapping):
        pass
    
    class DescribeThemeAliasRequest(Mapping):
        pass
    
    class DescribeThemeAliasResponse(Mapping):
        pass
    
    class DescribeThemePermissionsRequest(Mapping):
        pass
    
    class DescribeThemePermissionsResponse(Mapping):
        pass
    
    class DescribeUserRequest(Mapping):
        pass
    
    class DescribeUserResponse(Mapping):
        pass
    
    class GetDashboardEmbedUrlRequest(Mapping):
        pass
    
    class GetDashboardEmbedUrlResponse(Mapping):
        pass
    
    class SessionLifetimeInMinutes(object):
        pass
    
    class Boolean(object):
        pass
    
    class RestrictiveResourceId(object):
        pass
    
    class GetSessionEmbedUrlRequest(Mapping):
        pass
    
    class GetSessionEmbedUrlResponse(Mapping):
        pass
    
    class ListAnalysesRequest(Mapping):
        pass
    
    class ListAnalysesResponse(Mapping):
        pass
    
    class ListDashboardVersionsRequest(Mapping):
        pass
    
    class ListDashboardVersionsResponse(Mapping):
        pass
    
    class ListDashboardsRequest(Mapping):
        pass
    
    class ListDashboardsResponse(Mapping):
        pass
    
    class ListDataSetsRequest(Mapping):
        pass
    
    class ListDataSetsResponse(Mapping):
        pass
    
    class ListDataSourcesRequest(Mapping):
        pass
    
    class ListDataSourcesResponse(Mapping):
        pass
    
    class ListFolderMembersRequest(Mapping):
        pass
    
    class ListFolderMembersResponse(Mapping):
        pass
    
    class ListFoldersRequest(Mapping):
        pass
    
    class ListFoldersResponse(Mapping):
        pass
    
    class ListGroupMembershipsRequest(Mapping):
        pass
    
    class ListGroupMembershipsResponse(Mapping):
        pass
    
    class ListGroupsRequest(Mapping):
        pass
    
    class ListGroupsResponse(Mapping):
        pass
    
    class ListIAMPolicyAssignmentsRequest(Mapping):
        pass
    
    class ListIAMPolicyAssignmentsResponse(Mapping):
        pass
    
    class ListIAMPolicyAssignmentsForUserRequest(Mapping):
        pass
    
    class ListIAMPolicyAssignmentsForUserResponse(Mapping):
        pass
    
    class ListIngestionsRequest(Mapping):
        pass
    
    class ListIngestionsResponse(Mapping):
        pass
    
    class ListNamespacesRequest(Mapping):
        pass
    
    class ListNamespacesResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class ListTemplateAliasesRequest(Mapping):
        pass
    
    class ListTemplateAliasesResponse(Mapping):
        pass
    
    class ListTemplateVersionsRequest(Mapping):
        pass
    
    class ListTemplateVersionsResponse(Mapping):
        pass
    
    class ListTemplatesRequest(Mapping):
        pass
    
    class ListTemplatesResponse(Mapping):
        pass
    
    class ListThemeAliasesRequest(Mapping):
        pass
    
    class ListThemeAliasesResponse(Mapping):
        pass
    
    class ListThemeVersionsRequest(Mapping):
        pass
    
    class ListThemeVersionsResponse(Mapping):
        pass
    
    class ListThemesRequest(Mapping):
        pass
    
    class ListThemesResponse(Mapping):
        pass
    
    class ListUserGroupsRequest(Mapping):
        pass
    
    class ListUserGroupsResponse(Mapping):
        pass
    
    class ListUsersRequest(Mapping):
        pass
    
    class ListUsersResponse(Mapping):
        pass
    
    class RegisterUserRequest(Mapping):
        pass
    
    class RegisterUserResponse(Mapping):
        pass
    
    class RestoreAnalysisRequest(Mapping):
        pass
    
    class RestoreAnalysisResponse(Mapping):
        pass
    
    class SearchAnalysesRequest(Mapping):
        pass
    
    class SearchAnalysesResponse(Mapping):
        pass
    
    class AnalysisSearchFilter(Mapping):
        pass
    
    class SearchDashboardsRequest(Mapping):
        pass
    
    class SearchDashboardsResponse(Mapping):
        pass
    
    class DashboardSearchFilter(Mapping):
        pass
    
    class SearchFoldersRequest(Mapping):
        pass
    
    class SearchFoldersResponse(Mapping):
        pass
    
    class FolderSearchFilter(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateAccountCustomizationRequest(Mapping):
        pass
    
    class UpdateAccountCustomizationResponse(Mapping):
        pass
    
    class UpdateAccountSettingsRequest(Mapping):
        pass
    
    class UpdateAccountSettingsResponse(Mapping):
        pass
    
    class UpdateAnalysisRequest(Mapping):
        pass
    
    class UpdateAnalysisResponse(Mapping):
        pass
    
    class UpdateAnalysisPermissionsRequest(Mapping):
        pass
    
    class UpdateAnalysisPermissionsResponse(Mapping):
        pass
    
    class UpdateDashboardRequest(Mapping):
        pass
    
    class UpdateDashboardResponse(Mapping):
        pass
    
    class UpdateDashboardPermissionsRequest(Mapping):
        pass
    
    class UpdateDashboardPermissionsResponse(Mapping):
        pass
    
    class UpdateDashboardPublishedVersionRequest(Mapping):
        pass
    
    class UpdateDashboardPublishedVersionResponse(Mapping):
        pass
    
    class UpdateDataSetRequest(Mapping):
        pass
    
    class UpdateDataSetResponse(Mapping):
        pass
    
    class UpdateDataSetPermissionsRequest(Mapping):
        pass
    
    class UpdateDataSetPermissionsResponse(Mapping):
        pass
    
    class UpdateDataSourceRequest(Mapping):
        pass
    
    class UpdateDataSourceResponse(Mapping):
        pass
    
    class UpdateDataSourcePermissionsRequest(Mapping):
        pass
    
    class UpdateDataSourcePermissionsResponse(Mapping):
        pass
    
    class UpdateFolderRequest(Mapping):
        pass
    
    class UpdateFolderResponse(Mapping):
        pass
    
    class UpdateFolderPermissionsRequest(Mapping):
        pass
    
    class UpdateFolderPermissionsResponse(Mapping):
        pass
    
    class UpdateGroupRequest(Mapping):
        pass
    
    class UpdateGroupResponse(Mapping):
        pass
    
    class UpdateIAMPolicyAssignmentRequest(Mapping):
        pass
    
    class UpdateIAMPolicyAssignmentResponse(Mapping):
        pass
    
    class UpdateTemplateRequest(Mapping):
        pass
    
    class UpdateTemplateResponse(Mapping):
        pass
    
    class UpdateTemplateAliasRequest(Mapping):
        pass
    
    class UpdateTemplateAliasResponse(Mapping):
        pass
    
    class UpdateTemplatePermissionsRequest(Mapping):
        pass
    
    class UpdateTemplatePermissionsResponse(Mapping):
        pass
    
    class UpdateThemeRequest(Mapping):
        pass
    
    class UpdateThemeResponse(Mapping):
        pass
    
    class UpdateThemeAliasRequest(Mapping):
        pass
    
    class UpdateThemeAliasResponse(Mapping):
        pass
    
    class UpdateThemePermissionsRequest(Mapping):
        pass
    
    class UpdateThemePermissionsResponse(Mapping):
        pass
    
    class UpdateUserRequest(Mapping):
        pass
    
    class UpdateUserResponse(Mapping):
        pass
    
    def cancel_ingestion(self, IngestionId: str, DataSetId: str, AwsAccountId: str) -> CancelIngestionResponse:
        r"""Cancels an ongoing ingestion of data into SPICE.

        :param self:
        :param IngestionId:  An ID for the ingestion.<br/>DataSetId:  The ID of the dataset used in the ingestion.<br/>AwsAccountId:  The AWS account ID.<br/>
        :return: Status:  The HTTP status of the request.<br/>RequestId:  The AWS request ID for this operation.<br/>IngestionId:  An ID for the ingestion.<br/>Arn:  The Amazon Resource Name (ARN) for the data ingestion.<br/>        """
        pass

    def create_account_customization(self, AccountCustomization: AccountCustomization, AwsAccountId: str, Namespace: str=None, Tags: List[Tag]=None) -> CreateAccountCustomizationResponse:
        r"""Creates Amazon QuickSight customizations the current AWS Region. Currently, you can add a custom default theme by using the <code>CreateAccountCustomization</code> or <code>UpdateAccountCustomization</code> API operation. To further customize QuickSight by removing QuickSight sample assets and videos for all new users, see <a href="https://docs.aws.amazon.com/quicksight/latest/user/customizing-quicksight.html">Customizing QuickSight</a> in the <i>Amazon QuickSight User Guide.</i>  You can create customizations for your AWS account or, if you specify a namespace, for a QuickSight namespace instead. Customizations that apply to a namespace always override customizations that apply to an AWS account. To find out which customizations apply, use the <code>DescribeAccountCustomization</code> API operation. Before you use the <code>CreateAccountCustomization</code> API operation to add a theme as the namespace default, make sure that you first share the theme with the namespace. If you don't share it with the namespace, the theme isn't visible to your users even if you make it the default theme. To check if the theme is shared, view the current permissions by using the <code> <a>DescribeThemePermissions</a> </code> API operation. To share the theme, grant permissions by using the <code> <a>UpdateThemePermissions</a> </code> API operation. 

        :param self:
        :param Tags:  A list of the tags that you want to attach to this resource.<br/>AccountCustomization:  The QuickSight customizations you're adding in the current AWS Region. You can add these to an AWS account and a QuickSight namespace.  For example, you can add a default theme by setting <code>AccountCustomization</code> to the midnight theme: <code>"AccountCustomization": { "DefaultTheme": "arn:aws:quicksight::aws:theme/MIDNIGHT" }</code>. Or, you can add a custom theme by specifying <code>"AccountCustomization": { "DefaultTheme": "arn:aws:quicksight:us-west-2:111122223333:theme/bdb844d0-0fe9-4d9d-b520-0fe602d93639" }</code>. :<br/>Namespace:  The QuickSight namespace that you want to add customizations to.<br/>AwsAccountId:  The ID for the AWS account that you want to customize QuickSight for.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultTheme</i> The default theme for this QuickSight subscription.<br/>
        :return: Status:  The HTTP status of the request.<br/>RequestId:  The AWS request ID for this operation.<br/>AccountCustomization:  The QuickSight customizations you're adding in the current AWS Region. :<br/>Namespace:  The namespace associated with the customization you're creating. <br/>AwsAccountId:  The ID for the AWS account that you want to customize QuickSight for.<br/>Arn:  The Amazon Resource Name (ARN) for the customization that you created for this AWS account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultTheme</i> The default theme for this QuickSight subscription.<br/>        """
        pass

    def create_analysis(self, SourceEntity: AnalysisSourceEntity, Name: str, AnalysisId: str, AwsAccountId: str, Parameters: Parameters=None, Permissions: List[ResourcePermission]=None, ThemeArn: str=None, Tags: List[Tag]=None) -> CreateAnalysisResponse:
        r"""Creates an analysis in Amazon QuickSight.

        :param self:
        :param Tags:  Contains a map of the key-value pairs for the resource tag or tags assigned to the analysis.<br/>ThemeArn:  The ARN for the theme to apply to the analysis that you're creating. To see the theme in the QuickSight console, make sure that you have access to it.<br/>SourceEntity:  A source entity to use for the analysis that you're creating. This metadata structure contains details that describe a source template and one or more datasets.:<br/>Permissions:  A structure that describes the principals and the resource-level permissions on an analysis. You can use the <code>Permissions</code> structure to grant permissions by providing a list of AWS Identity and Access Management (IAM) action information for each principal listed by Amazon Resource Name (ARN).  To specify no permissions, omit <code>Permissions</code>.<br/>Parameters:  The parameter names and override values that you want to use. An analysis can have any parameter type, and some parameters might accept multiple values. :<br/>Name:  A descriptive name for the analysis that you're creating. This name displays for the analysis in the QuickSight console. <br/>AnalysisId:  The ID for the analysis that you're creating. This ID displays in the URL of the analysis.<br/>AwsAccountId:  The ID of the AWS account where you are creating an analysis.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DateTimeParameters</i> Date-time parameters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DecimalParameters</i> Decimal parameters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IntegerParameters</i> Integer parameters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StringParameters</i> String parameters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceTemplate</i> The source template for the source entity of the analysis.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SourceTemplate</b>: The source template for the source entity of the analysis.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the source template of an analysis.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DataSetReferences</i> The dataset references of the source template of an analysis.<br/>
        :return: RequestId:  The AWS request ID for this operation.<br/>Status:  The HTTP status of the request.<br/>CreationStatus:  The status of the creation of the analysis. <br/>AnalysisId:  The ID of the analysis.<br/>Arn:  The ARN for the analysis.<br/>        """
        pass

    def create_dashboard(self, SourceEntity: DashboardSourceEntity, Name: str, DashboardId: str, AwsAccountId: str, Parameters: Parameters=None, Permissions: List[ResourcePermission]=None, Tags: List[Tag]=None, VersionDescription: str=None, DashboardPublishOptions: DashboardPublishOptions=None, ThemeArn: str=None) -> CreateDashboardResponse:
        r"""Creates a dashboard from a template. To first create a template, see the <code> <a>CreateTemplate</a> </code> API operation. A dashboard is an entity in QuickSight that identifies QuickSight reports, created from analyses. You can share QuickSight dashboards. With the right permissions, you can create scheduled email reports from them. If you have the correct permissions, you can create a dashboard from a template that exists in a different AWS account.

        :param self:
        :param ThemeArn:  The Amazon Resource Name (ARN) of the theme that is being used for this dashboard. If you add a value for this field, it overrides the value that is used in the source entity. The theme ARN must exist in the same AWS account where you create the dashboard.<br/>DashboardPublishOptions:  Options for publishing the dashboard when you create it: <ul> <li>  <code>AvailabilityStatus</code> for <code>AdHocFilteringOption</code> - This status can be either <code>ENABLED</code> or <code>DISABLED</code>. When this is set to <code>DISABLED</code>, QuickSight disables the left filter pane on the published dashboard, which can be used for ad hoc (one-time) filtering. This option is <code>ENABLED</code> by default.  </li> <li>  <code>AvailabilityStatus</code> for <code>ExportToCSVOption</code> - This status can be either <code>ENABLED</code> or <code>DISABLED</code>. The visual option to export data to .CSV format isn't enabled when this is set to <code>DISABLED</code>. This option is <code>ENABLED</code> by default.  </li> <li>  <code>VisibilityState</code> for <code>SheetControlsOption</code> - This visibility state can be either <code>COLLAPSED</code> or <code>EXPANDED</code>. This option is <code>COLLAPSED</code> by default.  </li> </ul>:<br/>VersionDescription:  A description for the first version of the dashboard being created.<br/>Tags:  Contains a map of the key-value pairs for the resource tag or tags assigned to the dashboard.<br/>SourceEntity:  The entity that you are using as a source when you create the dashboard. In <code>SourceEntity</code>, you specify the type of object you're using as source. You can only create a dashboard from a template, so you use a <code>SourceTemplate</code> entity. If you need to create a dashboard from an analysis, first convert the analysis to a template by using the <a>CreateTemplate</a> API operation. For <code>SourceTemplate</code>, specify the Amazon Resource Name (ARN) of the source template. The <code>SourceTemplate</code>ARN can contain any AWS Account and any QuickSight-supported AWS Region.  Use the <code>DataSetReferences</code> entity within <code>SourceTemplate</code> to list the replacement datasets for the placeholders listed in the original. The schema in each dataset must match its placeholder. :<br/>Permissions:  A structure that contains the permissions of the dashboard. You can use this structure for granting permissions by providing a list of IAM action information for each principal ARN.  To specify no permissions, omit the permissions list.<br/>Parameters:  The parameters for the creation of the dashboard, which you want to use to override the default settings. A dashboard can have any type of parameters, and some parameters might accept multiple values. :<br/>Name:  The display name of the dashboard.<br/>DashboardId:  The ID for the dashboard, also added to the IAM policy.<br/>AwsAccountId:  The ID of the AWS account where you want to create the dashboard.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DateTimeParameters</i> Date-time parameters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DecimalParameters</i> Decimal parameters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IntegerParameters</i> Integer parameters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StringParameters</i> String parameters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceTemplate</i> Source template.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SourceTemplate</b>: Source template.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DataSetReferences</i> Dataset references.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SheetControlsOption</i> Sheet controls option.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SheetControlsOption</b>: Sheet controls option.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExportToCSVOption</i> Export to .csv option.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ExportToCSVOption</b>: Export to .csv option.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdHocFilteringOption</i> Ad hoc (one-time) filtering option.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AdHocFilteringOption</b>: Ad hoc (one-time) filtering option.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityStatus</i> Availability status.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityStatus</i> Availability status.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VisibilityState</i> Visibility state.<br/>
        :return: RequestId:  The AWS request ID for this operation.<br/>Status:  The HTTP status of the request.<br/>CreationStatus:  The status of the dashboard creation request.<br/>DashboardId:  The ID for the dashboard.<br/>VersionArn:  The ARN of the dashboard, including the version number of the first version that is created.<br/>Arn:  The ARN of the dashboard.<br/>        """
        pass

    def create_data_set(self, ImportMode: str, PhysicalTableMap: PhysicalTableMap, Name: str, DataSetId: str, AwsAccountId: str, LogicalTableMap: LogicalTableMap=None, ColumnGroups: List[ColumnGroup]=None, FieldFolders: FieldFolderMap=None, Permissions: List[ResourcePermission]=None, RowLevelPermissionDataSet: RowLevelPermissionDataSet=None, ColumnLevelPermissionRules: List[ColumnLevelPermissionRule]=None, Tags: List[Tag]=None) -> CreateDataSetResponse:
        r"""Creates a dataset.

        :param self:
        :param Tags:  Contains a map of the key-value pairs for the resource tag or tags assigned to the dataset.<br/>ColumnLevelPermissionRules:  A set of one or more definitions of a <code> <a>ColumnLevelPermissionRule</a> </code>.<br/>RowLevelPermissionDataSet:  The row-level security configuration for the data that you want to create.:<br/>Permissions:  A list of resource permissions on the dataset.<br/>FieldFolders:  The folder that contains fields and nested subfolders for your dataset.<br/>ColumnGroups:  Groupings of columns that work together in certain QuickSight features. Currently, only geospatial hierarchy is supported.<br/>ImportMode:  Indicates whether you want to import the data into SPICE.<br/>LogicalTableMap:  Configures the combination and transformation of the data from the physical tables.<br/>PhysicalTableMap:  Declares the physical tables that are available in the underlying data sources.<br/>Name:  The display name for the dataset.<br/>DataSetId:  An ID for the dataset that you want to create. This ID is unique per AWS Region for each AWS account.<br/>AwsAccountId:  The AWS account ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FormatVersion</i> The user or group rules associated with the dataset that contains permissions for RLS. By default, <code>FormatVersion</code> is <code>VERSION_1</code>. When <code>FormatVersion</code> is <code>VERSION_1</code>, <code>UserName</code> and <code>GroupName</code> are required. When <code>FormatVersion</code> is <code>VERSION_2</code>, <code>UserARN</code> and <code>GroupARN</code> are required, and <code>Namespace</code> must not exist.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PermissionPolicy</i> The type of permissions to use when interpretting the permissions for RLS. <code>DENY_ACCESS</code> is included for backward compatibility only.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the dataset that contains permissions for RLS.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Namespace</i> The namespace associated with the dataset that contains permissions for RLS.<br/>
        :return: Status:  The HTTP status of the request.<br/>RequestId:  The AWS request ID for this operation.<br/>IngestionId:  The ID of the ingestion, which is triggered as a result of dataset creation if the import mode is SPICE.<br/>IngestionArn:  The ARN for the ingestion, which is triggered as a result of dataset creation if the import mode is SPICE.<br/>DataSetId:  The ID for the dataset that you want to create. This ID is unique per AWS Region for each AWS account.<br/>Arn:  The Amazon Resource Name (ARN) of the dataset.<br/>        """
        pass

    def create_data_source(self, Type: str, Name: str, DataSourceId: str, AwsAccountId: str, DataSourceParameters: DataSourceParameters=None, Credentials: DataSourceCredentials=None, Permissions: List[ResourcePermission]=None, VpcConnectionProperties: VpcConnectionProperties=None, SslProperties: SslProperties=None, Tags: List[Tag]=None) -> CreateDataSourceResponse:
        r"""Creates a data source.

        :param self:
        :param Tags:  Contains a map of the key-value pairs for the resource tag or tags assigned to the data source.<br/>SslProperties:  Secure Socket Layer (SSL) properties that apply when QuickSight connects to your underlying source.:<br/>VpcConnectionProperties:  Use this parameter only when you want QuickSight to use a VPC connection when connecting to your underlying source.:<br/>Permissions:  A list of resource permissions on the data source.<br/>Credentials:  The credentials QuickSight that uses to connect to your underlying source. Currently, only credentials based on user name and password are supported.:<br/>DataSourceParameters:  The parameters that QuickSight uses to connect to your underlying source.:<br/>Type:  The type of the data source. Currently, the supported types for this operation are: <code>ATHENA, AURORA, AURORA_POSTGRESQL, AMAZON_ELASTICSEARCH, MARIADB, MYSQL, POSTGRESQL, PRESTO, REDSHIFT, S3, SNOWFLAKE, SPARK, SQLSERVER, TERADATA</code>. Use <code>ListDataSources</code> to return a list of all data sources.  <code>AMAZON_ELASTICSEARCH</code> is for Amazon managed Elasticsearch Service.<br/>Name:  A display name for the data source.<br/>DataSourceId:  An ID for the data source. This ID is unique per AWS Region for each AWS account. <br/>AwsAccountId:  The AWS account ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TwitterParameters</i> Twitter parameters.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TwitterParameters</b>: Twitter parameters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TeradataParameters</i> Teradata parameters.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TeradataParameters</b>: Teradata parameters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SqlServerParameters</i> SQL Server parameters.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SqlServerParameters</b>: SQL Server parameters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SparkParameters</i> Spark parameters.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SparkParameters</b>: Spark parameters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnowflakeParameters</i> Snowflake parameters.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SnowflakeParameters</b>: Snowflake parameters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceNowParameters</i> ServiceNow parameters.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ServiceNowParameters</b>: ServiceNow parameters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Parameters</i> S3 parameters.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3Parameters</b>: S3 parameters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RedshiftParameters</i> Amazon Redshift parameters.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RedshiftParameters</b>: Amazon Redshift parameters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RdsParameters</i> Amazon RDS parameters.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RdsParameters</b>: Amazon RDS parameters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PrestoParameters</i> Presto parameters.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PrestoParameters</b>: Presto parameters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PostgreSqlParameters</i> PostgreSQL parameters.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PostgreSqlParameters</b>: PostgreSQL parameters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OracleParameters</i> Oracle parameters.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>OracleParameters</b>: Oracle parameters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MySqlParameters</i> MySQL parameters.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>MySqlParameters</b>: MySQL parameters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MariaDbParameters</i> MariaDB parameters.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>MariaDbParameters</b>: MariaDB parameters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JiraParameters</i> Jira parameters.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>JiraParameters</b>: Jira parameters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AwsIotAnalyticsParameters</i> AWS IoT Analytics parameters.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AwsIotAnalyticsParameters</b>: AWS IoT Analytics parameters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AuroraPostgreSqlParameters</i> Aurora PostgreSQL parameters.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AuroraPostgreSqlParameters</b>: Aurora PostgreSQL parameters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AuroraParameters</i> Amazon Aurora MySQL parameters.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AuroraParameters</b>: Amazon Aurora MySQL parameters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AthenaParameters</i> Amazon Athena parameters.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AthenaParameters</b>: Amazon Athena parameters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AmazonElasticsearchParameters</i> Amazon Elasticsearch Service parameters.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AmazonElasticsearchParameters</b>: Amazon Elasticsearch Service parameters.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Domain</i> The Amazon Elasticsearch Service domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>WorkGroup</i> The workgroup that Amazon Athena uses.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Database</i> Database.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Port.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Host</i> Host.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Database</i> Database.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Port.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Host</i> Host.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DataSetName</i> Dataset name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SiteBaseUrl</i> The base URL of the Jira site.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Database</i> Database.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Port.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Host</i> Host.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Database</i> Database.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Port.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Host</i> Host.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Database</i> Database.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Port.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Host</i> An Oracle host.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Database</i> Database.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Port.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Host</i> Host.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Catalog</i> Catalog.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Port.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Host</i> Host.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Database</i> Database.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceId</i> Instance ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterId</i> Cluster ID. This field can be blank if the <code>Host</code> and <code>Port</code> are provided.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Database</i> Database.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Port. This field can be blank if the <code>ClusterId</code> is provided.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Host</i> Host. This field can be blank if <code>ClusterId</code> is provided.<br/>Location of the Amazon S3 manifest file. This is NULL if the manifest file was uploaded in the console.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ManifestFileLocation</b>: Location of the Amazon S3 manifest file. This is NULL if the manifest file was uploaded in the console.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SiteBaseUrl</i> URL of the base site.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Warehouse</i> Warehouse.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Database</i> Database.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Host</i> Host.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Port.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Host</i> Host.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Database</i> Database.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Port.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Host</i> Host.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Database</i> Database.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Port.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Host</i> Host.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxRows</i> Maximum number of rows to query Twitter.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Query</i> Twitter query string.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CopySourceArn</i> The Amazon Resource Name (ARN) of a data source that has the credential pair that you want to use. When <code>CopySourceArn</code> is not null, the credential pair from the data source in the ARN is used as the credentials for the <code>DataSourceCredentials</code> structure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CredentialPair</i> Credential pair. For more information, see <a>CredentialPair</a>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CredentialPair</b>: Credential pair. For more information, see <a>CredentialPair</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AlternateDataSourceParameters</i> A set of alternate data source parameters that you want to share for these credentials. The credentials are applied in tandem with the data source parameters when you copy a data source by using a create or update request. The API operation compares the <code>DataSourceParameters</code> structure that's in the request with the structures in the <code>AlternateDataSourceParameters</code> allow list. If the structures are an exact match, the request is allowed to use the new data source with the existing credentials. If the <code>AlternateDataSourceParameters</code> list is null, the <code>DataSourceParameters</code> originally used with these <code>Credentials</code> is automatically allowed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Password</i> Password.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Username</i> User name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcConnectionArn</i> The Amazon Resource Name (ARN) for the VPC connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DisableSsl</i> A Boolean option to control whether SSL should be disabled.<br/>
        :return: Status:  The HTTP status of the request.<br/>RequestId:  The AWS request ID for this operation.<br/>CreationStatus:  The status of creating the data source.<br/>DataSourceId:  The ID of the data source. This ID is unique per AWS Region for each AWS account.<br/>Arn:  The Amazon Resource Name (ARN) of the data source.<br/>        """
        pass

    def create_folder(self, FolderId: str, AwsAccountId: str, Name: str=None, FolderType: str=None, ParentFolderArn: str=None, Permissions: List[ResourcePermission]=None, Tags: List[Tag]=None) -> CreateFolderResponse:
        r"""Creates an empty shared folder.

        :param self:
        :param Tags:  Tags for the folder.<br/>Permissions:  A structure that describes the principals and the resource-level permissions of a folder. To specify no permissions, omit <code>Permissions</code>.<br/>ParentFolderArn:  The Amazon Resource Name (ARN) for the parent folder.  <code>ParentFolderArn</code> can be null. An empty <code>parentFolderArn</code> creates a root-level folder.<br/>FolderType:  The type of folder. By default, <code>folderType</code> is <code>SHARED</code>.<br/>Name:  The name of the folder.<br/>FolderId:  The folder ID.<br/>AwsAccountId:  The AWS Account ID.<br/>
        :return: RequestId:  The request ID for the newly created folder.<br/>FolderId:  The folder ID for the newly created folder.<br/>Arn:  The Amazon Resource Name (ARN) for the newly created folder.<br/>Status:  The status of the newly created folder. If succeeded, the status is <code>SC_OK (200)</code>.<br/>        """
        pass

    def create_folder_membership(self, MemberType: str, MemberId: str, FolderId: str, AwsAccountId: str) -> CreateFolderMembershipResponse:
        r"""Adds an asset, such as a dashboard, analysis, or dataset into a folder.

        :param self:
        :param MemberType:  The type of the member, including <code>DASHBOARD</code>, <code>ANALYSIS</code>, and <code>DATASET</code>.<br/>MemberId:  The ID of the asset (the dashboard, analysis, or dataset).<br/>FolderId:  The folder ID.<br/>AwsAccountId:  The AWS Account ID.<br/>
        :return: RequestId:  The request ID.<br/>FolderMember:  Information about the member in the folder.:<br/>Status:  The status of the folder membership. If succeeded, the status is <code>SC_OK (200)</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MemberType</i> The type of the asset.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MemberId</i> The ID of the asset.<br/>        """
        pass

    def create_group(self, Namespace: str, AwsAccountId: str, GroupName: str, Description: str=None) -> CreateGroupResponse:
        r"""Creates an Amazon QuickSight group. The permissions resource is <code>arn:aws:quicksight:us-east-1:<i>&lt;relevant-aws-account-id&gt;</i>:group/default/<i>&lt;group-name&gt;</i> </code>. The response is a group object.

        :param self:
        :param Namespace:  The namespace. Currently, you should set this to <code>default</code>.<br/>AwsAccountId:  The ID for the AWS account that the group is in. Currently, you use the ID for the AWS account that contains your Amazon QuickSight account.<br/>Description:  A description for the group that you want to create.<br/>GroupName:  A name for the group that you want to create.<br/>
        :return: Status:  The HTTP status of the request.<br/>RequestId:  The AWS request ID for this operation.<br/>Group:  The name of the group.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PrincipalId</i> The principal ID of the group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The group description.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GroupName</i> The name of the group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) for the group.<br/>        """
        pass

    def create_group_membership(self, Namespace: str, AwsAccountId: str, GroupName: str, MemberName: str) -> CreateGroupMembershipResponse:
        r"""Adds an Amazon QuickSight user to an Amazon QuickSight group. 

        :param self:
        :param Namespace:  The namespace. Currently, you should set this to <code>default</code>.<br/>AwsAccountId:  The ID for the AWS account that the group is in. Currently, you use the ID for the AWS account that contains your Amazon QuickSight account.<br/>GroupName:  The name of the group that you want to add the user to.<br/>MemberName:  The name of the user that you want to add to the group membership.<br/>
        :return: Status:  The HTTP status of the request.<br/>RequestId:  The AWS request ID for this operation.<br/>GroupMember:  The group member.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MemberName</i> The name of the group member (user).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) for the group member (user).<br/>        """
        pass

    def create_iam_policy_assignment(self, Namespace: str, AssignmentStatus: str, AssignmentName: str, AwsAccountId: str, PolicyArn: str=None, Identities: IdentityMap=None) -> CreateIAMPolicyAssignmentResponse:
        r"""Creates an assignment with one specified IAM policy, identified by its Amazon Resource Name (ARN). This policy assignment is attached to the specified groups or users of Amazon QuickSight. Assignment names are unique per AWS account. To avoid overwriting rules in other namespaces, use assignment names that are unique.

        :param self:
        :param Namespace:  The namespace that contains the assignment.<br/>Identities:  The QuickSight users, groups, or both that you want to assign the policy to.<br/>PolicyArn:  The ARN for the IAM policy to apply to the QuickSight users and groups specified in this assignment.<br/>AssignmentStatus:  The status of the assignment. Possible values are as follows: <ul> <li>  <code>ENABLED</code> - Anything specified in this assignment is used when creating the data source. </li> <li>  <code>DISABLED</code> - This assignment isn't used when creating the data source. </li> <li>  <code>DRAFT</code> - This assignment is an unfinished draft and isn't used when creating the data source. </li> </ul><br/>AssignmentName:  The name of the assignment, also called a rule. It must be unique within an AWS account.<br/>AwsAccountId:  The ID of the AWS account where you want to assign an IAM policy to QuickSight users or groups.<br/>
        :return: Status:  The HTTP status of the request.<br/>RequestId:  The AWS request ID for this operation.<br/>Identities:  The QuickSight users, groups, or both that the IAM policy is assigned to.<br/>PolicyArn:  The ARN for the IAM policy that is applied to the QuickSight users and groups specified in this assignment.<br/>AssignmentStatus:  The status of the assignment. Possible values are as follows: <ul> <li>  <code>ENABLED</code> - Anything specified in this assignment is used when creating the data source. </li> <li>  <code>DISABLED</code> - This assignment isn't used when creating the data source. </li> <li>  <code>DRAFT</code> - This assignment is an unfinished draft and isn't used when creating the data source. </li> </ul><br/>AssignmentId:  The ID for the assignment.<br/>AssignmentName:  The name of the assignment. This name must be unique within the AWS account.<br/>        """
        pass

    def create_ingestion(self, AwsAccountId: str, IngestionId: str, DataSetId: str) -> CreateIngestionResponse:
        r"""Creates and starts a new SPICE ingestion on a dataset Any ingestions operating on tagged datasets inherit the same tags automatically for use in access control. For an example, see <a href="http://aws.amazon.com/premiumsupport/knowledge-center/iam-ec2-resource-tags/">How do I create an IAM policy to control access to Amazon EC2 resources using tags?</a> in the AWS Knowledge Center. Tags are visible on the tagged dataset, but not on the ingestion resource.

        :param self:
        :param AwsAccountId:  The AWS account ID.<br/>IngestionId:  An ID for the ingestion.<br/>DataSetId:  The ID of the dataset used in the ingestion.<br/>
        :return: Status:  The HTTP status of the request.<br/>RequestId:  The AWS request ID for this operation.<br/>IngestionStatus:  The ingestion status.<br/>IngestionId:  An ID for the ingestion.<br/>Arn:  The Amazon Resource Name (ARN) for the data ingestion.<br/>        """
        pass

    def create_namespace(self, IdentityStore: str, Namespace: str, AwsAccountId: str, Tags: List[Tag]=None) -> CreateNamespaceResponse:
        r"""(Enterprise edition only) Creates a new namespace for you to use with Amazon QuickSight. A namespace allows you to isolate the QuickSight users and groups that are registered for that namespace. Users that access the namespace can share assets only with other users or groups in the same namespace. They can't see users and groups in other namespaces. You can create a namespace after your AWS account is subscribed to QuickSight. The namespace must be unique within the AWS account. By default, there is a limit of 100 namespaces per AWS account. To increase your limit, create a ticket with AWS Support. 

        :param self:
        :param Tags:  The tags that you want to associate with the namespace that you're creating.<br/>IdentityStore:  Specifies the type of your user identity directory. Currently, this supports users with an identity type of <code>QUICKSIGHT</code>.<br/>Namespace:  The name that you want to use to describe the new namespace.<br/>AwsAccountId:  The ID for the AWS account that you want to create the QuickSight namespace in.<br/>
        :return: Status:  The HTTP status of the request.<br/>RequestId:  The AWS request ID for this operation.<br/>IdentityStore:  Specifies the type of your user identity directory. Currently, this supports users with an identity type of <code>QUICKSIGHT</code>.<br/>CreationStatus:  The status of the creation of the namespace. This is an asynchronous process. A status of <code>CREATED</code> means that your namespace is ready to use. If an error occurs, it indicates if the process is <code>retryable</code> or <code>non-retryable</code>. In the case of a non-retryable error, refer to the error message for follow-up tasks.<br/>CapacityRegion:  The AWS Region that you want to use for the free SPICE capacity for the new namespace. This is set to the region that you run CreateNamespace in. <br/>Name:  The name of the new namespace that you created.<br/>Arn:  The ARN of the QuickSight namespace you created. <br/>        """
        pass

    def create_template(self, SourceEntity: TemplateSourceEntity, TemplateId: str, AwsAccountId: str, Name: str=None, Permissions: List[ResourcePermission]=None, Tags: List[Tag]=None, VersionDescription: str=None) -> CreateTemplateResponse:
        r"""Creates a template from an existing QuickSight analysis or template. You can use the resulting template to create a dashboard. A <i>template</i> is an entity in QuickSight that encapsulates the metadata required to create an analysis and that you can use to create s dashboard. A template adds a layer of abstraction by using placeholders to replace the dataset associated with the analysis. You can use templates to create dashboards by replacing dataset placeholders with datasets that follow the same schema that was used to create the source analysis and template.

        :param self:
        :param VersionDescription:  A description of the current template version being created. This API operation creates the first version of the template. Every time <code>UpdateTemplate</code> is called, a new version is created. Each version of the template maintains a description of the version in the <code>VersionDescription</code> field.<br/>Tags:  Contains a map of the key-value pairs for the resource tag or tags assigned to the resource.<br/>SourceEntity:  The entity that you are using as a source when you create the template. In <code>SourceEntity</code>, you specify the type of object you're using as source: <code>SourceTemplate</code> for a template or <code>SourceAnalysis</code> for an analysis. Both of these require an Amazon Resource Name (ARN). For <code>SourceTemplate</code>, specify the ARN of the source template. For <code>SourceAnalysis</code>, specify the ARN of the source analysis. The <code>SourceTemplate</code> ARN can contain any AWS Account and any QuickSight-supported AWS Region.  Use the <code>DataSetReferences</code> entity within <code>SourceTemplate</code> or <code>SourceAnalysis</code> to list the replacement datasets for the placeholders listed in the original. The schema in each dataset must match its placeholder. :<br/>Permissions:  A list of resource permissions to be set on the template. <br/>Name:  A display name for the template.<br/>TemplateId:  An ID for the template that you want to create. This template is unique per AWS Region in each AWS account.<br/>AwsAccountId:  The ID for the AWS account that the group is in. Currently, you use the ID for the AWS account that contains your Amazon QuickSight account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceTemplate</i> The source template, if it is based on an template.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SourceTemplate</b>: The source template, if it is based on an template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceAnalysis</i> The source analysis, if it is based on an analysis.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SourceAnalysis</b>: The source analysis, if it is based on an analysis.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DataSetReferences</i> A structure containing information about the dataset references used as placeholders in the template.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the resource.<br/>
        :return: RequestId:  The AWS request ID for this operation.<br/>Status:  The HTTP status of the request.<br/>CreationStatus:  The template creation status.<br/>TemplateId:  The ID of the template.<br/>VersionArn:  The ARN for the template, including the version information of the first version.<br/>Arn:  The ARN for the template.<br/>        """
        pass

    def create_template_alias(self, TemplateVersionNumber: VersionNumber, AliasName: str, TemplateId: str, AwsAccountId: str) -> CreateTemplateAliasResponse:
        r"""Creates a template alias for a template.

        :param self:
        :param TemplateVersionNumber:  The version number of the template.<br/>AliasName:  The name that you want to give to the template alias that you're creating. Don't start the alias name with the <code>$</code> character. Alias names that start with <code>$</code> are reserved by QuickSight. <br/>TemplateId:  An ID for the template.<br/>AwsAccountId:  The ID of the AWS account that contains the template that you creating an alias for.<br/>
        :return: RequestId:  The AWS request ID for this operation.<br/>Status:  The HTTP status of the request.<br/>TemplateAlias:  Information about the template alias.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TemplateVersionNumber</i> The version number of the template alias.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the template alias.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AliasName</i> The display name of the template alias.<br/>        """
        pass

    def create_theme(self, Configuration: ThemeConfiguration, BaseThemeId: str, Name: str, ThemeId: str, AwsAccountId: str, VersionDescription: str=None, Permissions: List[ResourcePermission]=None, Tags: List[Tag]=None) -> CreateThemeResponse:
        r"""Creates a theme. A <i>theme</i> is set of configuration options for color and layout. Themes apply to analyses and dashboards. For more information, see <a href="https://docs.aws.amazon.com/quicksight/latest/user/themes-in-quicksight.html">Using Themes in Amazon QuickSight</a> in the <i>Amazon QuickSight User Guide</i>.

        :param self:
        :param Tags:  A map of the key-value pairs for the resource tag or tags that you want to add to the resource.<br/>Permissions:  A valid grouping of resource permissions to apply to the new theme. <br/>Configuration:  The theme configuration, which contains the theme display properties.:<br/>VersionDescription:  A description of the first version of the theme that you're creating. Every time <code>UpdateTheme</code> is called, a new version is created. Each version of the theme has a description of the version in the <code>VersionDescription</code> field.<br/>BaseThemeId:  The ID of the theme that a custom theme will inherit from. All themes inherit from one of the starting themes defined by Amazon QuickSight. For a list of the starting themes, use <code>ListThemes</code> or choose <b>Themes</b> from within a QuickSight analysis. <br/>Name:  A display name for the theme.<br/>ThemeId:  An ID for the theme that you want to create. The theme ID is unique per AWS Region in each AWS account.<br/>AwsAccountId:  The ID of the AWS account where you want to store the new theme. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Sheet</i> Display options related to sheets.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Sheet</b>: Display options related to sheets.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UIColorPalette</i> Color properties that apply to the UI and to charts, excluding the colors that apply to data. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>UIColorPalette</b>: Color properties that apply to the UI and to charts, excluding the colors that apply to data. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataColorPalette</i> Color properties that apply to chart data colors.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DataColorPalette</b>: Color properties that apply to chart data colors.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EmptyFillColor</i> The hexadecimal code of a color that applies to charts where a lack of data is highlighted.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MinMaxGradient</i> The minimum and maximum hexadecimal codes that describe a color gradient. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Colors</i> The hexadecimal codes for the colors.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MeasureForeground</i> The foreground color that applies to any text or other elements that appear over the measure color.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Measure</i> The color that applies to the names of fields that are identified as measures.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DimensionForeground</i> The foreground color that applies to any text or other elements that appear over the dimension color.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Dimension</i> The color that applies to the names of fields that are identified as dimensions.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SuccessForeground</i> The foreground color that applies to any text or other elements that appear over the success color.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Success</i> The color that applies to success messages, for example the check mark for a successful download.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>WarningForeground</i> The foreground color that applies to any text or other elements that appear over the warning color.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Warning</i> This color that applies to warning and informational messages.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DangerForeground</i> The foreground color that applies to any text or other elements that appear over the error color.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Danger</i> The color that applies to error messages.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AccentForeground</i> The foreground color that applies to any text or other elements that appear over the accent color.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Accent</i> This color is that applies to selected states and buttons.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecondaryBackground</i> The background color that applies to the sheet background and sheet controls.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecondaryForeground</i> The foreground color that applies to any sheet title, sheet control text, or UI that appears over the secondary background.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PrimaryBackground</i> The background color that applies to visuals and other high emphasis UI.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PrimaryForeground</i> The color of text and other foreground elements that appear over the primary background regions, such as grid lines, borders, table banding, icons, and so on.<br/>The display options for tiles.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Tile</b>: The display options for tiles.
        :return: RequestId:  The AWS request ID for this operation.<br/>Status:  The HTTP status of the request.<br/>CreationStatus:  The theme creation status.<br/>ThemeId:  The ID of the theme.<br/>VersionArn:  The Amazon Resource Name (ARN) for the new theme.<br/>Arn:  The Amazon Resource Name (ARN) for the theme.<br/>        """
        pass

    def create_theme_alias(self, ThemeVersionNumber: VersionNumber, AliasName: str, ThemeId: str, AwsAccountId: str) -> CreateThemeAliasResponse:
        r"""Creates a theme alias for a theme.

        :param self:
        :param ThemeVersionNumber:  The version number of the theme.<br/>AliasName:  The name that you want to give to the theme alias that you are creating. The alias name can't begin with a <code>$</code>. Alias names that start with <code>$</code> are reserved by Amazon QuickSight. <br/>ThemeId:  An ID for the theme alias.<br/>AwsAccountId:  The ID of the AWS account that contains the theme for the new theme alias.<br/>
        :return: RequestId:  The AWS request ID for this operation.<br/>Status:  The HTTP status of the request.<br/>ThemeAlias:  Information about the theme alias.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ThemeVersionNumber</i> The version number of the theme alias.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AliasName</i> The display name of the theme alias.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the theme alias.<br/>        """
        pass

    def delete_account_customization(self, AwsAccountId: str, Namespace: str=None) -> DeleteAccountCustomizationResponse:
        r"""Deletes all Amazon QuickSight customizations in this AWS Region for the specified AWS account and QuickSight namespace.

        :param self:
        :param Namespace:  The QuickSight namespace that you're deleting the customizations from.<br/>AwsAccountId:  The ID for the AWS account that you want to delete QuickSight customizations from in this AWS Region.<br/>
        :return: Status:  The HTTP status of the request.<br/>RequestId:  The AWS request ID for this operation.<br/>        """
        pass

    def delete_analysis(self, AnalysisId: str, AwsAccountId: str, RecoveryWindowInDays: RecoveryWindowInDays=None, ForceDeleteWithoutRecovery: boolean=None) -> DeleteAnalysisResponse:
        r"""Deletes an analysis from Amazon QuickSight. You can optionally include a recovery window during which you can restore the analysis. If you don't specify a recovery window value, the operation defaults to 30 days. QuickSight attaches a <code>DeletionTime</code> stamp to the response that specifies the end of the recovery window. At the end of the recovery window, QuickSight deletes the analysis permanently. At any time before recovery window ends, you can use the <code>RestoreAnalysis</code> API operation to remove the <code>DeletionTime</code> stamp and cancel the deletion of the analysis. The analysis remains visible in the API until it's deleted, so you can describe it but you can't make a template from it. An analysis that's scheduled for deletion isn't accessible in the QuickSight console. To access it in the console, restore it. Deleting an analysis doesn't delete the dashboards that you publish from it.

        :param self:
        :param ForceDeleteWithoutRecovery:  This option defaults to the value <code>NoForceDeleteWithoutRecovery</code>. To immediately delete the analysis, add the <code>ForceDeleteWithoutRecovery</code> option. You can't restore an analysis after it's deleted. <br/>RecoveryWindowInDays:  A value that specifies the number of days that QuickSight waits before it deletes the analysis. You can't use this parameter with the <code>ForceDeleteWithoutRecovery</code> option in the same API call. The default value is 30.<br/>AnalysisId:  The ID of the analysis that you're deleting.<br/>AwsAccountId:  The ID of the AWS account where you want to delete an analysis.<br/>
        :return: RequestId:  The AWS request ID for this operation.<br/>DeletionTime:  The date and time that the analysis is scheduled to be deleted.<br/>AnalysisId:  The ID of the deleted analysis.<br/>Arn:  The Amazon Resource Name (ARN) of the deleted analysis.<br/>Status:  The HTTP status of the request.<br/>        """
        pass

    def delete_dashboard(self, DashboardId: str, AwsAccountId: str, VersionNumber: VersionNumber=None) -> DeleteDashboardResponse:
        r"""Deletes a dashboard.

        :param self:
        :param VersionNumber:  The version number of the dashboard. If the version number property is provided, only the specified version of the dashboard is deleted.<br/>DashboardId:  The ID for the dashboard.<br/>AwsAccountId:  The ID of the AWS account that contains the dashboard that you're deleting.<br/>
        :return: RequestId:  The AWS request ID for this operation.<br/>DashboardId:  The ID of the dashboard.<br/>Arn:  The Secure Socket Layer (SSL) properties that apply for the resource.<br/>Status:  The HTTP status of the request.<br/>        """
        pass

    def delete_data_set(self, DataSetId: str, AwsAccountId: str) -> DeleteDataSetResponse:
        r"""Deletes a dataset.

        :param self:
        :param DataSetId:  The ID for the dataset that you want to create. This ID is unique per AWS Region for each AWS account.<br/>AwsAccountId:  The AWS account ID.<br/>
        :return: Status:  The HTTP status of the request.<br/>RequestId:  The AWS request ID for this operation.<br/>DataSetId:  The ID for the dataset that you want to create. This ID is unique per AWS Region for each AWS account.<br/>Arn:  The Amazon Resource Name (ARN) of the dataset.<br/>        """
        pass

    def delete_data_source(self, DataSourceId: str, AwsAccountId: str) -> DeleteDataSourceResponse:
        r"""Deletes the data source permanently. This operation breaks all the datasets that reference the deleted data source.

        :param self:
        :param DataSourceId:  The ID of the data source. This ID is unique per AWS Region for each AWS account.<br/>AwsAccountId:  The AWS account ID.<br/>
        :return: Status:  The HTTP status of the request.<br/>RequestId:  The AWS request ID for this operation.<br/>DataSourceId:  The ID of the data source. This ID is unique per AWS Region for each AWS account.<br/>Arn:  The Amazon Resource Name (ARN) of the data source that you deleted.<br/>        """
        pass

    def delete_folder(self, FolderId: str, AwsAccountId: str) -> DeleteFolderResponse:
        r"""Deletes an empty folder.

        :param self:
        :param FolderId:  The folder ID.<br/>AwsAccountId:  The AWS Account ID for the folder.<br/>
        :return: RequestId:  The request ID.<br/>FolderId:  The folder ID.<br/>Arn:  The Amazon Resource Name of the deleted folder.<br/>Status:  The status of deleting the folder. If succeeded, the status is <code>SC_OK (200)</code>.<br/>        """
        pass

    def delete_folder_membership(self, MemberType: str, MemberId: str, FolderId: str, AwsAccountId: str) -> DeleteFolderMembershipResponse:
        r"""Removes an asset, such as a dashboard, analysis, or dataset, from a folder.

        :param self:
        :param MemberType:  The type of the member, including <code>DASHBOARD</code>, <code>ANALYSIS</code>, and <code>DATASET</code> <br/>MemberId:  The ID of the asset (the dashboard, analysis, or dataset) that you want to delete.<br/>FolderId:  The Folder ID.<br/>AwsAccountId:  The AWS Account ID.<br/>
        :return: RequestId:  The request ID.<br/>Status:  The status of deleting the asset. If succeeded, the status is <code>SC_OK (200)</code>.<br/>        """
        pass

    def delete_group(self, Namespace: str, AwsAccountId: str, GroupName: str) -> DeleteGroupResponse:
        r"""Removes a user group from Amazon QuickSight. 

        :param self:
        :param Namespace:  The namespace. Currently, you should set this to <code>default</code>.<br/>AwsAccountId:  The ID for the AWS account that the group is in. Currently, you use the ID for the AWS account that contains your Amazon QuickSight account.<br/>GroupName:  The name of the group that you want to delete.<br/>
        :return: Status:  The HTTP status of the request.<br/>RequestId:  The AWS request ID for this operation.<br/>        """
        pass

    def delete_group_membership(self, Namespace: str, AwsAccountId: str, GroupName: str, MemberName: str) -> DeleteGroupMembershipResponse:
        r"""Removes a user from a group so that the user is no longer a member of the group.

        :param self:
        :param Namespace:  The namespace. Currently, you should set this to <code>default</code>.<br/>AwsAccountId:  The ID for the AWS account that the group is in. Currently, you use the ID for the AWS account that contains your Amazon QuickSight account.<br/>GroupName:  The name of the group that you want to delete the user from.<br/>MemberName:  The name of the user that you want to delete from the group membership.<br/>
        :return: Status:  The HTTP status of the request.<br/>RequestId:  The AWS request ID for this operation.<br/>        """
        pass

    def delete_iam_policy_assignment(self, Namespace: str, AssignmentName: str, AwsAccountId: str) -> DeleteIAMPolicyAssignmentResponse:
        r"""Deletes an existing IAM policy assignment.

        :param self:
        :param Namespace:  The namespace that contains the assignment.<br/>AssignmentName:  The name of the assignment. <br/>AwsAccountId:  The AWS account ID where you want to delete the IAM policy assignment.<br/>
        :return: Status:  The HTTP status of the request.<br/>RequestId:  The AWS request ID for this operation.<br/>AssignmentName:  The name of the assignment. <br/>        """
        pass

    def delete_namespace(self, Namespace: str, AwsAccountId: str) -> DeleteNamespaceResponse:
        r"""Deletes a namespace and the users and groups that are associated with the namespace. This is an asynchronous process. Assets including dashboards, analyses, datasets and data sources are not deleted. To delete these assets, you use the API operations for the relevant asset. 

        :param self:
        :param Namespace:  The namespace that you want to delete.<br/>AwsAccountId:  The ID for the AWS account that you want to delete the QuickSight namespace from.<br/>
        :return: Status:  The HTTP status of the request.<br/>RequestId:  The AWS request ID for this operation.<br/>        """
        pass

    def delete_template(self, TemplateId: str, AwsAccountId: str, VersionNumber: VersionNumber=None) -> DeleteTemplateResponse:
        r"""Deletes a template.

        :param self:
        :param VersionNumber:  Specifies the version of the template that you want to delete. If you don't provide a version number, <code>DeleteTemplate</code> deletes all versions of the template. <br/>TemplateId:  An ID for the template you want to delete.<br/>AwsAccountId:  The ID of the AWS account that contains the template that you're deleting.<br/>
        :return: Status:  The HTTP status of the request.<br/>TemplateId:  An ID for the template.<br/>Arn:  The Amazon Resource Name (ARN) of the resource.<br/>RequestId:  The AWS request ID for this operation.<br/>        """
        pass

    def delete_template_alias(self, AliasName: str, TemplateId: str, AwsAccountId: str) -> DeleteTemplateAliasResponse:
        r"""Deletes the item that the specified template alias points to. If you provide a specific alias, you delete the version of the template that the alias points to.

        :param self:
        :param AliasName:  The name for the template alias. To delete a specific alias, you delete the version that the alias points to. You can specify the alias name, or specify the latest version of the template by providing the keyword <code>$LATEST</code> in the <code>AliasName</code> parameter. <br/>TemplateId:  The ID for the template that the specified alias is for.<br/>AwsAccountId:  The ID of the AWS account that contains the item to delete.<br/>
        :return: RequestId:  The AWS request ID for this operation.<br/>Arn:  The Amazon Resource Name (ARN) of the template you want to delete.<br/>AliasName:  The name for the template alias.<br/>TemplateId:  An ID for the template associated with the deletion.<br/>Status:  The HTTP status of the request.<br/>        """
        pass

    def delete_theme(self, ThemeId: str, AwsAccountId: str, VersionNumber: VersionNumber=None) -> DeleteThemeResponse:
        r"""Deletes a theme.

        :param self:
        :param VersionNumber:  The version of the theme that you want to delete.   <b>Note:</b> If you don't provide a version number, you're using this call to <code>DeleteTheme</code> to delete all versions of the theme.<br/>ThemeId:  An ID for the theme that you want to delete.<br/>AwsAccountId:  The ID of the AWS account that contains the theme that you're deleting.<br/>
        :return: ThemeId:  An ID for the theme.<br/>Status:  The HTTP status of the request.<br/>RequestId:  The AWS request ID for this operation.<br/>Arn:  The Amazon Resource Name (ARN) of the resource.<br/>        """
        pass

    def delete_theme_alias(self, AliasName: str, ThemeId: str, AwsAccountId: str) -> DeleteThemeAliasResponse:
        r"""Deletes the version of the theme that the specified theme alias points to. If you provide a specific alias, you delete the version of the theme that the alias points to.

        :param self:
        :param AliasName:  The unique name for the theme alias to delete.<br/>ThemeId:  The ID for the theme that the specified alias is for.<br/>AwsAccountId:  The ID of the AWS account that contains the theme alias to delete.<br/>
        :return: ThemeId:  An ID for the theme associated with the deletion.<br/>Status:  The HTTP status of the request.<br/>RequestId:  The AWS request ID for this operation.<br/>Arn:  The Amazon Resource Name (ARN) of the theme resource using the deleted alias.<br/>AliasName:  The name for the theme alias.<br/>        """
        pass

    def delete_user(self, Namespace: str, AwsAccountId: str, UserName: str) -> DeleteUserResponse:
        r"""Deletes the Amazon QuickSight user that is associated with the identity of the AWS Identity and Access Management (IAM) user or role that's making the call. The IAM user isn't deleted as a result of this call. 

        :param self:
        :param Namespace:  The namespace. Currently, you should set this to <code>default</code>.<br/>AwsAccountId:  The ID for the AWS account that the user is in. Currently, you use the ID for the AWS account that contains your Amazon QuickSight account.<br/>UserName:  The name of the user that you want to delete.<br/>
        :return: Status:  The HTTP status of the request.<br/>RequestId:  The AWS request ID for this operation.<br/>        """
        pass

    def delete_user_by_principal_id(self, Namespace: str, AwsAccountId: str, PrincipalId: str) -> DeleteUserByPrincipalIdResponse:
        r"""Deletes a user identified by its principal ID. 

        :param self:
        :param Namespace:  The namespace. Currently, you should set this to <code>default</code>.<br/>AwsAccountId:  The ID for the AWS account that the user is in. Currently, you use the ID for the AWS account that contains your Amazon QuickSight account.<br/>PrincipalId:  The principal ID of the user.<br/>
        :return: Status:  The HTTP status of the request.<br/>RequestId:  The AWS request ID for this operation.<br/>        """
        pass

    def describe_account_customization(self, AwsAccountId: str, Namespace: str=None, Resolved: boolean=None) -> DescribeAccountCustomizationResponse:
        r"""Describes the customizations associated with the provided AWS account and Amazon QuickSight namespace in an AWS Region. The QuickSight console evaluates which customizations to apply by running this API operation with the <code>Resolved</code> flag included.  To determine what customizations display when you run this command, it can help to visualize the relationship of the entities involved.  <ul> <li>  <code>AWS Account</code> - The AWS account exists at the top of the hierarchy. It has the potential to use all of the AWS Regions and AWS Services. When you subscribe to QuickSight, you choose one AWS Region to use as your home Region. That's where your free SPICE capacity is located. You can use QuickSight in any supported AWS Region.  </li> <li>  <code>AWS Region</code> - In each AWS Region where you sign in to QuickSight at least once, QuickSight acts as a separate instance of the same service. If you have a user directory, it resides in us-east-1, which is the US East (N. Virginia). Generally speaking, these users have access to QuickSight in any AWS Region, unless they are constrained to a namespace.  To run the command in a different AWS Region, you change your Region settings. If you're using the AWS CLI, you can use one of the following options: <ul> <li> Use <a href="https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-options.html">command line options</a>.  </li> <li> Use <a href="https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html">named profiles</a>.  </li> <li> Run <code>aws configure</code> to change your default AWS Region. Use Enter to key the same settings for your keys. For more information, see <a href="https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html">Configuring the AWS CLI</a>. </li> </ul> </li> <li>  <code>Namespace</code> - A QuickSight namespace is a partition that contains users and assets (data sources, datasets, dashboards, and so on). To access assets that are in a specific namespace, users and groups must also be part of the same namespace. People who share a namespace are completely isolated from users and assets in other namespaces, even if they are in the same AWS account and AWS Region. </li> <li>  <code>Applied customizations</code> - Within an AWS Region, a set of QuickSight customizations can apply to an AWS account or to a namespace. Settings that you apply to a namespace override settings that you apply to an AWS account. All settings are isolated to a single AWS Region. To apply them in other AWS Regions, run the <code>CreateAccountCustomization</code> command in each AWS Region where you want to apply the same customizations.  </li> </ul>

        :param self:
        :param Resolved:  The <code>Resolved</code> flag works with the other parameters to determine which view of QuickSight customizations is returned. You can add this flag to your command to use the same view that QuickSight uses to identify which customizations to apply to the console. Omit this flag, or set it to <code>no-resolved</code>, to reveal customizations that are configured at different levels. <br/>Namespace:  The QuickSight namespace that you want to describe QuickSight customizations for.<br/>AwsAccountId:  The ID for the AWS account that you want to describe QuickSight customizations for.<br/>
        :return: Status:  The HTTP status of the request.<br/>RequestId:  The AWS request ID for this operation.<br/>AccountCustomization:  The QuickSight customizations that exist in the current AWS Region. :<br/>Namespace:  The QuickSight namespace that you're describing. <br/>AwsAccountId:  The ID for the AWS account that you're describing.<br/>Arn:  The Amazon Resource Name (ARN) of the customization that's associated with this AWS account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultTheme</i> The default theme for this QuickSight subscription.<br/>        """
        pass

    def describe_account_settings(self, AwsAccountId: str) -> DescribeAccountSettingsResponse:
        r"""Describes the settings that were used when your QuickSight subscription was first created in this AWS account.

        :param self:
        :param AwsAccountId:  The ID for the AWS account that contains the settings that you want to list.<br/>
        :return: Status:  The HTTP status of the request.<br/>RequestId:  The AWS request ID for this operation.<br/>AccountSettings:  The QuickSight settings for this AWS account. This information includes the edition of Amazon QuickSight that you subscribed to (Standard or Enterprise) and the notification email for the QuickSight subscription. In the QuickSight console, the QuickSight subscription is sometimes referred to as a QuickSight "account" even though it's technically not an account by itself. Instead, it's a subscription to the QuickSight service for your AWS account. The edition that you subscribe to applies to QuickSight in every AWS Region where you use it.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NotificationEmail</i> The main notification email for your QuickSight subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultNamespace</i> The default QuickSight namespace for your AWS account. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Edition</i> The edition of QuickSight that you're currently subscribed to: Enterprise edition or Standard edition.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccountName</i> The "account name" you provided for the QuickSight subscription in your AWS account. You create this name when you sign up for QuickSight. It is unique in all of AWS and it appears only in the console when users sign in.<br/>        """
        pass

    def describe_analysis(self, AnalysisId: str, AwsAccountId: str) -> DescribeAnalysisResponse:
        r"""Provides a summary of the metadata for an analysis.

        :param self:
        :param AnalysisId:  The ID of the analysis that you're describing. The ID is part of the URL of the analysis.<br/>AwsAccountId:  The ID of the AWS account that contains the analysis. You must be using the AWS account that the analysis is in.<br/>
        :return: RequestId:  The AWS request ID for this operation.<br/>Status:  The HTTP status of the request.<br/>Analysis:  A metadata structure that contains summary information for the analysis that you're describing.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Sheets</i> A list of the associated sheets with the unique identifier and name of each sheet.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdatedTime</i> The time that the analysis was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTime</i> The time that the analysis was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ThemeArn</i> The ARN of the theme of the analysis.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataSetArns</i> The ARNs of the datasets of the analysis.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Errors</i> Errors associated with the analysis.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Status associated with the analysis.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The descriptive name of the analysis.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the analysis.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AnalysisId</i> The ID of the analysis.<br/>        """
        pass

    def describe_analysis_permissions(self, AnalysisId: str, AwsAccountId: str) -> DescribeAnalysisPermissionsResponse:
        r"""Provides the read and write permissions for an analysis.

        :param self:
        :param AnalysisId:  The ID of the analysis whose permissions you're describing. The ID is part of the analysis URL.<br/>AwsAccountId:  The ID of the AWS account that contains the analysis whose permissions you're describing. You must be using the AWS account that the analysis is in.<br/>
        :return: RequestId:  The AWS request ID for this operation.<br/>Status:  The HTTP status of the request.<br/>Permissions:  A structure that describes the principals and the resource-level permissions on an analysis.<br/>AnalysisArn:  The Amazon Resource Name (ARN) of the analysis whose permissions you're describing.<br/>AnalysisId:  The ID of the analysis whose permissions you're describing.<br/>        """
        pass

    def describe_dashboard(self, DashboardId: str, AwsAccountId: str, VersionNumber: VersionNumber=None, AliasName: str=None) -> DescribeDashboardResponse:
        r"""Provides a summary for a dashboard.

        :param self:
        :param AliasName:  The alias name.<br/>VersionNumber:  The version number for the dashboard. If a version number isn't passed, the latest published dashboard version is described. <br/>DashboardId:  The ID for the dashboard.<br/>AwsAccountId:  The ID of the AWS account that contains the dashboard that you're describing.<br/>
        :return: RequestId:  The AWS request ID for this operation.<br/>Status:  The HTTP status of this request.<br/>Dashboard:  Information about the dashboard.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdatedTime</i> The last time that this dataset was updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastPublishedTime</i> The last time that this dataset was published.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTime</i> The time that this dataset was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> Version.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Version</b>: Version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A display name for the dashboard.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DashboardId</i> Dashboard ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Sheets</i> A list of the associated sheets with the unique identifier and name of each sheet.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ThemeArn</i> The ARN of the theme associated with a version of the dashboard.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> Description.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DataSetArns</i> The Amazon Resource Numbers (ARNs) for the datasets that are associated with this version of the dashboard.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceEntityArn</i> Source entity ARN.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The HTTP status of the request.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VersionNumber</i> Version number for this version of the dashboard.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Errors</i> Errors associated with this dashboard version.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTime</i> The time that this dashboard version was created.<br/>        """
        pass

    def describe_dashboard_permissions(self, DashboardId: str, AwsAccountId: str) -> DescribeDashboardPermissionsResponse:
        r"""Describes read and write permissions for a dashboard.

        :param self:
        :param DashboardId:  The ID for the dashboard, also added to the IAM policy.<br/>AwsAccountId:  The ID of the AWS account that contains the dashboard that you're describing permissions for.<br/>
        :return: RequestId:  The AWS request ID for this operation.<br/>Status:  The HTTP status of the request.<br/>Permissions:  A structure that contains the permissions for the dashboard.<br/>DashboardArn:  The Amazon Resource Name (ARN) of the dashboard.<br/>DashboardId:  The ID for the dashboard.<br/>        """
        pass

    def describe_data_set(self, DataSetId: str, AwsAccountId: str) -> DescribeDataSetResponse:
        r"""Describes a dataset. 

        :param self:
        :param DataSetId:  The ID for the dataset that you want to create. This ID is unique per AWS Region for each AWS account.<br/>AwsAccountId:  The AWS account ID.<br/>
        :return: Status:  The HTTP status of the request.<br/>RequestId:  The AWS request ID for this operation.<br/>DataSet:  Information on the dataset.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ColumnLevelPermissionRules</i> A set of one or more definitions of a <code> <a>ColumnLevelPermissionRule</a> </code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RowLevelPermissionDataSet</i> The row-level security configuration for the dataset.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RowLevelPermissionDataSet</b>: The row-level security configuration for the dataset.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FieldFolders</i> The folder that contains fields and nested subfolders for your dataset.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ColumnGroups</i> Groupings of columns that work together in certain Amazon QuickSight features. Currently, only geospatial hierarchy is supported.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConsumedSpiceCapacityInBytes</i> The amount of SPICE capacity used by this dataset. This is 0 if the dataset isn't imported into SPICE.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImportMode</i> A value that indicates whether you want to import the data into SPICE.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OutputColumns</i> The list of columns after all transforms. These columns are available in templates, analyses, and dashboards.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogicalTableMap</i> Configures the combination and transformation of the data from the physical tables.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PhysicalTableMap</i> Declares the physical tables that are available in the underlying data sources.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdatedTime</i> The last time that this dataset was updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTime</i> The time that this dataset was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A display name for the dataset.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataSetId</i> The ID of the dataset.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FormatVersion</i> The user or group rules associated with the dataset that contains permissions for RLS. By default, <code>FormatVersion</code> is <code>VERSION_1</code>. When <code>FormatVersion</code> is <code>VERSION_1</code>, <code>UserName</code> and <code>GroupName</code> are required. When <code>FormatVersion</code> is <code>VERSION_2</code>, <code>UserARN</code> and <code>GroupARN</code> are required, and <code>Namespace</code> must not exist.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PermissionPolicy</i> The type of permissions to use when interpretting the permissions for RLS. <code>DENY_ACCESS</code> is included for backward compatibility only.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the dataset that contains permissions for RLS.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Namespace</i> The namespace associated with the dataset that contains permissions for RLS.<br/>        """
        pass

    def describe_data_set_permissions(self, DataSetId: str, AwsAccountId: str) -> DescribeDataSetPermissionsResponse:
        r"""Describes the permissions on a dataset. The permissions resource is <code>arn:aws:quicksight:region:aws-account-id:dataset/data-set-id</code>.

        :param self:
        :param DataSetId:  The ID for the dataset that you want to create. This ID is unique per AWS Region for each AWS account.<br/>AwsAccountId:  The AWS account ID.<br/>
        :return: Status:  The HTTP status of the request.<br/>RequestId:  The AWS request ID for this operation.<br/>Permissions:  A list of resource permissions on the dataset.<br/>DataSetId:  The ID for the dataset that you want to create. This ID is unique per AWS Region for each AWS account.<br/>DataSetArn:  The Amazon Resource Name (ARN) of the dataset.<br/>        """
        pass

    def describe_data_source(self, DataSourceId: str, AwsAccountId: str) -> DescribeDataSourceResponse:
        r"""Describes a data source.

        :param self:
        :param DataSourceId:  The ID of the data source. This ID is unique per AWS Region for each AWS account.<br/>AwsAccountId:  The AWS account ID.<br/>
        :return: Status:  The HTTP status of the request.<br/>RequestId:  The AWS request ID for this operation.<br/>DataSource:  The information on the data source.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorInfo</i> Error information from the last update or the creation of the data source.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ErrorInfo</b>: Error information from the last update or the creation of the data source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SslProperties</i> Secure Socket Layer (SSL) properties that apply when QuickSight connects to your underlying source.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SslProperties</b>: Secure Socket Layer (SSL) properties that apply when QuickSight connects to your underlying source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcConnectionProperties</i> The VPC connection information. You need to use this parameter only when you want QuickSight to use a VPC connection when connecting to your underlying source.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>VpcConnectionProperties</b>: The VPC connection information. You need to use this parameter only when you want QuickSight to use a VPC connection when connecting to your underlying source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AlternateDataSourceParameters</i> A set of alternate data source parameters that you want to share for the credentials stored with this data source. The credentials are applied in tandem with the data source parameters when you copy a data source by using a create or update request. The API operation compares the <code>DataSourceParameters</code> structure that's in the request with the structures in the <code>AlternateDataSourceParameters</code> allow list. If the structures are an exact match, the request is allowed to use the credentials from this existing data source. If the <code>AlternateDataSourceParameters</code> list is null, the <code>Credentials</code> originally used with this <code>DataSourceParameters</code> are automatically allowed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataSourceParameters</i> The parameters that Amazon QuickSight uses to connect to your underlying source. This is a variant type structure. For this structure to be valid, only one of the attributes can be non-null.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DataSourceParameters</b>: The parameters that Amazon QuickSight uses to connect to your underlying source. This is a variant type structure. For this structure to be valid, only one of the attributes can be non-null.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdatedTime</i> The last time that this data source was updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTime</i> The time that this data source was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The HTTP status of the request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of the data source. This type indicates which database engine the data source connects to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A display name for the data source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataSourceId</i> The ID of the data source. This ID is unique per AWS Region for each AWS account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the data source.<br/>Amazon Elasticsearch Service parameters.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AmazonElasticsearchParameters</b>: Amazon Elasticsearch Service parameters.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcConnectionArn</i> The Amazon Resource Name (ARN) for the VPC connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DisableSsl</i> A Boolean option to control whether SSL should be disabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> Error message.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> Error type.<br/>        """
        pass

    def describe_data_source_permissions(self, DataSourceId: str, AwsAccountId: str) -> DescribeDataSourcePermissionsResponse:
        r"""Describes the resource permissions for a data source.

        :param self:
        :param DataSourceId:  The ID of the data source. This ID is unique per AWS Region for each AWS account.<br/>AwsAccountId:  The AWS account ID.<br/>
        :return: Status:  The HTTP status of the request.<br/>RequestId:  The AWS request ID for this operation.<br/>Permissions:  A list of resource permissions on the data source.<br/>DataSourceId:  The ID of the data source. This ID is unique per AWS Region for each AWS account.<br/>DataSourceArn:  The Amazon Resource Name (ARN) of the data source.<br/>        """
        pass

    def describe_folder(self, FolderId: str, AwsAccountId: str) -> DescribeFolderResponse:
        r"""Describes a folder.

        :param self:
        :param FolderId:  The folder ID.<br/>AwsAccountId:  The AWS account ID.<br/>
        :return: RequestId:  The request ID.<br/>Folder:  Information about the folder.:<br/>Status:  The status. If succeeded, the status is <code>SC_OK (200)</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdatedTime</i> The time that the folder was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTime</i> The time that the folder was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FolderPath</i> An array of ancestor folder ARN strings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FolderType</i> The type of the folder.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A display name for the folder.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The folder Amazon Resource Name (ARN).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FolderId</i> The folder ID.<br/>        """
        pass

    def describe_folder_permissions(self, FolderId: str, AwsAccountId: str) -> DescribeFolderPermissionsResponse:
        r"""Describes permissions for a folder.

        :param self:
        :param FolderId:  The folder ID.<br/>AwsAccountId:  The AWS Account ID.<br/>
        :return: RequestId:  The request ID.<br/>Permissions:  Information about the permissions on the folder.<br/>Arn:  The Amazon Resource Name (ARN) for the folder.<br/>FolderId:  The folder ID.<br/>Status:  The status. If succeeded, the status is <code>SC_OK</code>.<br/>        """
        pass

    def describe_folder_resolved_permissions(self, FolderId: str, AwsAccountId: str) -> DescribeFolderResolvedPermissionsResponse:
        r"""Describes the folder resolved permissions. Permissions consists of both folder direct permissions and the inherited permissions from the ancestor folders.

        :param self:
        :param FolderId:  The folder ID.<br/>AwsAccountId:  The AWS account ID.<br/>
        :return: RequestId:  The request ID.<br/>Permissions:  Information about the permissions on the dashboard.<br/>Arn:  The Amazon Resource Name (ARN).<br/>FolderId:  The folder ID.<br/>Status:  The status. If succeeded, the status is <code>SC_OK</code> <br/>        """
        pass

    def describe_group(self, Namespace: str, AwsAccountId: str, GroupName: str) -> DescribeGroupResponse:
        r"""Returns an Amazon QuickSight group's description and Amazon Resource Name (ARN). 

        :param self:
        :param Namespace:  The namespace. Currently, you should set this to <code>default</code>.<br/>AwsAccountId:  The ID for the AWS account that the group is in. Currently, you use the ID for the AWS account that contains your Amazon QuickSight account.<br/>GroupName:  The name of the group that you want to describe.<br/>
        :return: Status:  The HTTP status of the request.<br/>RequestId:  The AWS request ID for this operation.<br/>Group:  The name of the group.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PrincipalId</i> The principal ID of the group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The group description.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GroupName</i> The name of the group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) for the group.<br/>        """
        pass

    def describe_iam_policy_assignment(self, Namespace: str, AssignmentName: str, AwsAccountId: str) -> DescribeIAMPolicyAssignmentResponse:
        r"""Describes an existing IAM policy assignment, as specified by the assignment name.

        :param self:
        :param Namespace:  The namespace that contains the assignment.<br/>AssignmentName:  The name of the assignment, also called a rule.<br/>AwsAccountId:  The ID of the AWS account that contains the assignment that you want to describe.<br/>
        :return: Status:  The HTTP status of the request.<br/>RequestId:  The AWS request ID for this operation.<br/>IAMPolicyAssignment:  Information describing the IAM policy assignment.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssignmentStatus</i> Assignment status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Identities</i> Identities.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PolicyArn</i> The Amazon Resource Name (ARN) for the IAM policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssignmentName</i> Assignment name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssignmentId</i> Assignment ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AwsAccountId</i> The AWS account ID.<br/>        """
        pass

    def describe_ingestion(self, IngestionId: str, DataSetId: str, AwsAccountId: str) -> DescribeIngestionResponse:
        r"""Describes a SPICE ingestion.

        :param self:
        :param IngestionId:  An ID for the ingestion.<br/>DataSetId:  The ID of the dataset used in the ingestion.<br/>AwsAccountId:  The AWS account ID.<br/>
        :return: Status:  The HTTP status of the request.<br/>RequestId:  The AWS request ID for this operation.<br/>Ingestion:  Information about the ingestion.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequestType</i> Type of this ingestion.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequestSource</i> Event source for this ingestion.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IngestionSizeInBytes</i> The size of the data ingested, in bytes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IngestionTimeInSeconds</i> The time that this ingestion took, measured in seconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTime</i> The time that this ingestion started.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>QueueInfo</i> Information about a queued dataset SPICE ingestion.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>QueueInfo</b>: Information about a queued dataset SPICE ingestion.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RowInfo</i> Information about rows for a data set SPICE ingestion.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RowInfo</b>: Information about rows for a data set SPICE ingestion.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorInfo</i> Error information for this ingestion.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ErrorInfo</b>: Error information for this ingestion.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IngestionStatus</i> Ingestion status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IngestionId</i> Ingestion ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> Error message.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> Error type.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RowsDropped</i> The number of rows that were not ingested.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RowsIngested</i> The number of rows that were ingested.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>QueuedIngestion</i> The ID of the ongoing ingestion. The queued ingestion is waiting for the ongoing ingestion to complete.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>WaitingOnIngestion</i> The ID of the queued ingestion.<br/>        """
        pass

    def describe_namespace(self, Namespace: str, AwsAccountId: str) -> DescribeNamespaceResponse:
        r"""Describes the current namespace.

        :param self:
        :param Namespace:  The namespace that you want to describe.<br/>AwsAccountId:  The ID for the AWS account that contains the QuickSight namespace that you want to describe.<br/>
        :return: Status:  The HTTP status of the request.<br/>RequestId:  The AWS request ID for this operation.<br/>Namespace:  The information about the namespace that you're describing. The response includes the namespace ARN, name, AWS Region, creation status, and identity store. <code>DescribeNamespace</code> also works for namespaces that are in the process of being created. For incomplete namespaces, this API operation lists the namespace error types and messages associated with the creation process.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NamespaceError</i> An error that occurred when the namespace was created.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>NamespaceError</b>: An error that occurred when the namespace was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IdentityStore</i> The identity store used for the namespace.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationStatus</i> The creation status of a namespace that is not yet completely created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CapacityRegion</i> The namespace AWS Region.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The namespace ARN.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the error.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> The message for the error.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The error type.<br/>        """
        pass

    def describe_template(self, TemplateId: str, AwsAccountId: str, VersionNumber: VersionNumber=None, AliasName: str=None) -> DescribeTemplateResponse:
        r"""Describes a template's metadata.

        :param self:
        :param AliasName:  The alias of the template that you want to describe. If you name a specific alias, you describe the version that the alias points to. You can specify the latest version of the template by providing the keyword <code>$LATEST</code> in the <code>AliasName</code> parameter. The keyword <code>$PUBLISHED</code> doesn't apply to templates.<br/>VersionNumber:  (Optional) The number for the version to describe. If a <code>VersionNumber</code> parameter value isn't provided, the latest version of the template is described.<br/>TemplateId:  The ID for the template.<br/>AwsAccountId:  The ID of the AWS account that contains the template that you're describing.<br/>
        :return: RequestId:  The AWS request ID for this operation.<br/>Status:  The HTTP status of the request.<br/>Template:  The template structure for the object you want to describe.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTime</i> Time when this was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdatedTime</i> Time when this was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TemplateId</i> The ID for the template. This is unique per AWS Region for each AWS account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> A structure describing the versions of the template.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Version</b>: A structure describing the versions of the template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The display name of the template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the template.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Sheets</i> A list of the associated sheets with the unique identifier and name of each sheet.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ThemeArn</i> The ARN of the theme associated with this version of the template.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceEntityArn</i> The Amazon Resource Name (ARN) of an analysis or template that was used to create this template.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the template.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DataSetConfigurations</i> Schema of the dataset identified by the placeholder. Any dashboard created from this template should be bound to new datasets matching the same schema described through this API operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The HTTP status of the request.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VersionNumber</i> The version number of the template version.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Errors</i> Errors associated with this template version.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTime</i> The time that this template version was created.<br/>        """
        pass

    def describe_template_alias(self, AliasName: str, TemplateId: str, AwsAccountId: str) -> DescribeTemplateAliasResponse:
        r"""Describes the template alias for a template.

        :param self:
        :param AliasName:  The name of the template alias that you want to describe. If you name a specific alias, you describe the version that the alias points to. You can specify the latest version of the template by providing the keyword <code>$LATEST</code> in the <code>AliasName</code> parameter. The keyword <code>$PUBLISHED</code> doesn't apply to templates.<br/>TemplateId:  The ID for the template.<br/>AwsAccountId:  The ID of the AWS account that contains the template alias that you're describing.<br/>
        :return: RequestId:  The AWS request ID for this operation.<br/>Status:  The HTTP status of the request.<br/>TemplateAlias:  Information about the template alias.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TemplateVersionNumber</i> The version number of the template alias.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the template alias.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AliasName</i> The display name of the template alias.<br/>        """
        pass

    def describe_template_permissions(self, TemplateId: str, AwsAccountId: str) -> DescribeTemplatePermissionsResponse:
        r"""Describes read and write permissions on a template.

        :param self:
        :param TemplateId:  The ID for the template.<br/>AwsAccountId:  The ID of the AWS account that contains the template that you're describing.<br/>
        :return: Status:  The HTTP status of the request.<br/>RequestId:  The AWS request ID for this operation.<br/>Permissions:  A list of resource permissions to be set on the template. <br/>TemplateArn:  The Amazon Resource Name (ARN) of the template.<br/>TemplateId:  The ID for the template.<br/>        """
        pass

    def describe_theme(self, ThemeId: str, AwsAccountId: str, VersionNumber: VersionNumber=None, AliasName: str=None) -> DescribeThemeResponse:
        r"""Describes a theme.

        :param self:
        :param AliasName:  The alias of the theme that you want to describe. If you name a specific alias, you describe the version that the alias points to. You can specify the latest version of the theme by providing the keyword <code>$LATEST</code> in the <code>AliasName</code> parameter. The keyword <code>$PUBLISHED</code> doesn't apply to themes.<br/>VersionNumber:  The version number for the version to describe. If a <code>VersionNumber</code> parameter value isn't provided, the latest version of the theme is described.<br/>ThemeId:  The ID for the theme.<br/>AwsAccountId:  The ID of the AWS account that contains the theme that you're describing.<br/>
        :return: RequestId:  The AWS request ID for this operation.<br/>Status:  The HTTP status of the request.<br/>Theme:  The information about the theme that you are describing.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of theme, based on how it was created. Valid values include: <code>QUICKSIGHT</code> and <code>CUSTOM</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdatedTime</i> The date and time that the theme was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTime</i> The date and time that the theme was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> A version of a theme.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Version</b>: A version of a theme.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ThemeId</i> The identifier that the user gives to the theme.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name that the user gives to the theme.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the theme.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTime</i> The date and time that this theme version was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BaseThemeId</i> The Amazon QuickSight-defined ID of the theme that a custom theme inherits from. All themes initially inherit from a default QuickSight theme.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the theme.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VersionNumber</i> The version number of the theme.<br/>The theme configuration, which contains all the theme display properties.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Configuration</b>: The theme configuration, which contains all the theme display properties.        """
        pass

    def describe_theme_alias(self, AliasName: str, ThemeId: str, AwsAccountId: str) -> DescribeThemeAliasResponse:
        r"""Describes the alias for a theme.

        :param self:
        :param AliasName:  The name of the theme alias that you want to describe.<br/>ThemeId:  The ID for the theme.<br/>AwsAccountId:  The ID of the AWS account that contains the theme alias that you're describing.<br/>
        :return: RequestId:  The AWS request ID for this operation.<br/>Status:  The HTTP status of the request.<br/>ThemeAlias:  Information about the theme alias.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ThemeVersionNumber</i> The version number of the theme alias.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AliasName</i> The display name of the theme alias.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the theme alias.<br/>        """
        pass

    def describe_theme_permissions(self, ThemeId: str, AwsAccountId: str) -> DescribeThemePermissionsResponse:
        r"""Describes the read and write permissions for a theme.

        :param self:
        :param ThemeId:  The ID for the theme that you want to describe permissions for.<br/>AwsAccountId:  The ID of the AWS account that contains the theme that you're describing.<br/>
        :return: Status:  The HTTP status of the request.<br/>RequestId:  The AWS request ID for this operation.<br/>Permissions:  A list of resource permissions set on the theme. <br/>ThemeArn:  The Amazon Resource Name (ARN) of the theme.<br/>ThemeId:  The ID for the theme.<br/>        """
        pass

    def describe_user(self, Namespace: str, AwsAccountId: str, UserName: str) -> DescribeUserResponse:
        r"""Returns information about a user, given the user name. 

        :param self:
        :param Namespace:  The namespace. Currently, you should set this to <code>default</code>.<br/>AwsAccountId:  The ID for the AWS account that the user is in. Currently, you use the ID for the AWS account that contains your Amazon QuickSight account.<br/>UserName:  The name of the user that you want to describe.<br/>
        :return: Status:  The HTTP status of the request.<br/>RequestId:  The AWS request ID for this operation.<br/>User:  The user name.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExternalLoginId</i> The identity ID for the user in the external login provider.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExternalLoginFederationProviderUrl</i> The URL of the external login provider.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExternalLoginFederationProviderType</i> The type of supported external login provider that provides identity to let the user federate into Amazon QuickSight with an associated IAM role. The type can be one of the following. <ul> <li>  <code>COGNITO</code>: Amazon Cognito. The provider URL is cognito-identity.amazonaws.com. </li> <li>  <code>CUSTOM_OIDC</code>: Custom OpenID Connect (OIDC) provider. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomPermissionsName</i> The custom permissions profile associated with this user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PrincipalId</i> The principal ID of the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Active</i> The active status of user. When you create an Amazon QuickSight user that’s not an IAM user or an Active Directory user, that user is inactive until they sign in and provide a password.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IdentityType</i> The type of identity authentication used by the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Role</i> The Amazon QuickSight role for the user. The user role can be one of the following:. <ul> <li>  <code>READER</code>: A user who has read-only access to dashboards. </li> <li>  <code>AUTHOR</code>: A user who can create data sources, datasets, analyses, and dashboards. </li> <li>  <code>ADMIN</code>: A user who is an author, who can also manage Amazon QuickSight settings. </li> <li>  <code>RESTRICTED_READER</code>: This role isn't currently available for use. </li> <li>  <code>RESTRICTED_AUTHOR</code>: This role isn't currently available for use. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Email</i> The user's email address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserName</i> The user's user name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) for the user.<br/>        """
        pass

    def get_dashboard_embed_url(self, IdentityType: str, DashboardId: str, AwsAccountId: str, SessionLifetimeInMinutes: SessionLifetimeInMinutes=None, UndoRedoDisabled: Boolean=None, ResetDisabled: Boolean=None, StatePersistenceEnabled: Boolean=None, UserArn: str=None, Namespace: str=None, AdditionalDashboardIds: List[RestrictiveResourceId]=None) -> GetDashboardEmbedUrlResponse:
        r"""Generates a session URL and authorization code that you can use to embed an Amazon QuickSight read-only dashboard in your web server code. Before you use this command, make sure that you have configured the dashboards and permissions.  Currently, you can use <code>GetDashboardEmbedURL</code> only from the server, not from the user's browser. The following rules apply to the combination of URL and authorization code: <ul> <li> They must be used together. </li> <li> They can be used one time only. </li> <li> They are valid for 5 minutes after you run this command. </li> <li> The resulting user session is valid for 10 hours. </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/quicksight/latest/user/embedded-analytics.html">Embedded Analytics</a> in the <i>Amazon QuickSight User Guide</i>.

        :param self:
        :param AdditionalDashboardIds:  A list of one or more dashboard IDs that you want to add to a session that includes anonymous users. The <code>IdentityType</code> parameter must be set to <code>ANONYMOUS</code> for this to work, because other identity types authenticate as QuickSight or IAM users. For example, if you set "<code>--dashboard-id dash_id1 --dashboard-id dash_id2 dash_id3 identity-type ANONYMOUS</code>", the session can access all three dashboards. <br/>Namespace:  The QuickSight namespace that contains the dashboard IDs in this request. If you're not using a custom namespace, set this to "<code>default</code>".<br/>UserArn:  The Amazon QuickSight user's Amazon Resource Name (ARN), for use with <code>QUICKSIGHT</code> identity type. You can use this for any Amazon QuickSight users in your account (readers, authors, or admins) authenticated as one of the following: <ul> <li> Active Directory (AD) users or group members </li> <li> Invited nonfederated users </li> <li> IAM users and IAM role-based sessions authenticated through Federated Single Sign-On using SAML, OpenID Connect, or IAM federation. </li> </ul> Omit this parameter for users in the third group – IAM users and IAM role-based sessions.<br/>StatePersistenceEnabled:  Adds persistence of state for the user session in an embedded dashboard. Persistence applies to the sheet and the parameter settings. These are control settings that the dashboard subscriber (QuickSight reader) chooses while viewing the dashboard. If this is set to <code>TRUE</code>, the settings are the same when the subscriber reopens the same dashboard URL. The state is stored in QuickSight, not in a browser cookie. If this is set to FALSE, the state of the user session is not persisted. The default is <code>FALSE</code>.<br/>ResetDisabled:  Remove the reset button on the embedded dashboard. The default is FALSE, which enables the reset button.<br/>UndoRedoDisabled:  Remove the undo/redo button on the embedded dashboard. The default is FALSE, which enables the undo/redo button.<br/>SessionLifetimeInMinutes:  How many minutes the session is valid. The session lifetime must be 15-600 minutes.<br/>IdentityType:  The authentication method that the user uses to sign in.<br/>DashboardId:  The ID for the dashboard, also added to the AWS Identity and Access Management (IAM) policy.<br/>AwsAccountId:  The ID for the AWS account that contains the dashboard that you're embedding.<br/>
        :return: RequestId:  The AWS request ID for this operation.<br/>Status:  The HTTP status of the request.<br/>EmbedUrl:  A single-use URL that you can put into your server-side webpage to embed your dashboard. This URL is valid for 5 minutes. The API operation provides the URL with an <code>auth_code</code> value that enables one (and only one) sign-on to a user session that is valid for 10 hours. <br/>        """
        pass

    def get_session_embed_url(self, AwsAccountId: str, EntryPoint: str=None, SessionLifetimeInMinutes: SessionLifetimeInMinutes=None, UserArn: str=None) -> GetSessionEmbedUrlResponse:
        r"""Generates a session URL and authorization code that you can use to embed the Amazon QuickSight console in your web server code. Use <code>GetSessionEmbedUrl</code> where you want to provide an authoring portal that allows users to create data sources, datasets, analyses, and dashboards. The users who access an embedded QuickSight console need belong to the author or admin security cohort. If you want to restrict permissions to some of these features, add a custom permissions profile to the user with the <code> <a>UpdateUser</a> </code> API operation. Use <code> <a>RegisterUser</a> </code> API operation to add a new user with a custom permission profile attached. For more information, see the following sections in the <i>Amazon QuickSight User Guide</i>: <ul> <li>  <a href="https://docs.aws.amazon.com/quicksight/latest/user/embedding-the-quicksight-console.html">Embedding the Amazon QuickSight Console</a>  </li> <li>  <a href="https://docs.aws.amazon.com/quicksight/latest/user/customizing-permissions-to-the-quicksight-console.html">Customizing Access to the Amazon QuickSight Console</a>  </li> </ul>

        :param self:
        :param UserArn:  The Amazon QuickSight user's Amazon Resource Name (ARN), for use with <code>QUICKSIGHT</code> identity type. You can use this for any type of Amazon QuickSight users in your account (readers, authors, or admins). They need to be authenticated as one of the following: <ol> <li> Active Directory (AD) users or group members </li> <li> Invited nonfederated users </li> <li> AWS Identity and Access Management (IAM) users and IAM role-based sessions authenticated through Federated Single Sign-On using SAML, OpenID Connect, or IAM federation </li> </ol> Omit this parameter for users in the third group, IAM users and IAM role-based sessions.<br/>SessionLifetimeInMinutes:  How many minutes the session is valid. The session lifetime must be 15-600 minutes.<br/>EntryPoint:  The URL you use to access the embedded session. The entry point URL is constrained to the following paths: <ul> <li>  <code>/start</code>  </li> <li>  <code>/start/analyses</code>  </li> <li>  <code>/start/dashboards</code>  </li> <li>  <code>/start/favorites</code>  </li> <li>  <code>/dashboards/<i>DashboardId</i> </code> - where <code>DashboardId</code> is the actual ID key from the QuickSight console URL of the dashboard </li> <li>  <code>/analyses/<i>AnalysisId</i> </code> - where <code>AnalysisId</code> is the actual ID key from the QuickSight console URL of the analysis </li> </ul><br/>AwsAccountId:  The ID for the AWS account associated with your QuickSight subscription.<br/>
        :return: RequestId:  The AWS request ID for this operation.<br/>Status:  The HTTP status of the request.<br/>EmbedUrl:  A single-use URL that you can put into your server-side web page to embed your QuickSight session. This URL is valid for 5 minutes. The API operation provides the URL with an <code>auth_code</code> value that enables one (and only one) sign-on to a user session that is valid for 10 hours. <br/>        """
        pass

    def list_analyses(self, AwsAccountId: str, NextToken: str=None, MaxResults: int=None) -> ListAnalysesResponse:
        r"""Lists Amazon QuickSight analyses that exist in the specified AWS account.

        :param self:
        :param MaxResults:  The maximum number of results to return.<br/>NextToken:  A pagination token that can be used in a subsequent request.<br/>AwsAccountId:  The ID of the AWS account that contains the analyses.<br/>
        :return: RequestId:  The AWS request ID for this operation.<br/>Status:  The HTTP status of the request.<br/>NextToken:  A pagination token that can be used in a subsequent request.<br/>AnalysisSummaryList:  Metadata describing each of the analyses that are listed.<br/>        """
        pass

    def list_dashboard_versions(self, DashboardId: str, AwsAccountId: str, NextToken: str=None, MaxResults: int=None) -> ListDashboardVersionsResponse:
        r"""Lists all the versions of the dashboards in the QuickSight subscription.

        :param self:
        :param MaxResults:  The maximum number of results to be returned per request.<br/>NextToken:  The token for the next set of results, or null if there are no more results.<br/>DashboardId:  The ID for the dashboard.<br/>AwsAccountId:  The ID of the AWS account that contains the dashboard that you're listing versions for.<br/>
        :return: RequestId:  The AWS request ID for this operation.<br/>Status:  The HTTP status of the request.<br/>NextToken:  The token for the next set of results, or null if there are no more results.<br/>DashboardVersionSummaryList:  A structure that contains information about each version of the dashboard.<br/>        """
        pass

    def list_dashboards(self, AwsAccountId: str, NextToken: str=None, MaxResults: int=None) -> ListDashboardsResponse:
        r"""Lists dashboards in an AWS account.

        :param self:
        :param MaxResults:  The maximum number of results to be returned per request.<br/>NextToken:  The token for the next set of results, or null if there are no more results.<br/>AwsAccountId:  The ID of the AWS account that contains the dashboards that you're listing.<br/>
        :return: RequestId:  The AWS request ID for this operation.<br/>Status:  The HTTP status of the request.<br/>NextToken:  The token for the next set of results, or null if there are no more results.<br/>DashboardSummaryList:  A structure that contains all of the dashboards in your AWS account. This structure provides basic information about the dashboards.<br/>        """
        pass

    def list_data_sets(self, AwsAccountId: str, NextToken: str=None, MaxResults: int=None) -> ListDataSetsResponse:
        r"""Lists all of the datasets belonging to the current AWS account in an AWS Region. The permissions resource is <code>arn:aws:quicksight:region:aws-account-id:dataset/*</code>.

        :param self:
        :param MaxResults:  The maximum number of results to be returned per request.<br/>NextToken:  The token for the next set of results, or null if there are no more results.<br/>AwsAccountId:  The AWS account ID.<br/>
        :return: Status:  The HTTP status of the request.<br/>RequestId:  The AWS request ID for this operation.<br/>NextToken:  The token for the next set of results, or null if there are no more results.<br/>DataSetSummaries:  The list of dataset summaries.<br/>        """
        pass

    def list_data_sources(self, AwsAccountId: str, NextToken: str=None, MaxResults: int=None) -> ListDataSourcesResponse:
        r"""Lists data sources in current AWS Region that belong to this AWS account.

        :param self:
        :param MaxResults:  The maximum number of results to be returned per request.<br/>NextToken:  The token for the next set of results, or null if there are no more results.<br/>AwsAccountId:  The AWS account ID.<br/>
        :return: Status:  The HTTP status of the request.<br/>RequestId:  The AWS request ID for this operation.<br/>NextToken:  The token for the next set of results, or null if there are no more results.<br/>DataSources:  A list of data sources.<br/>        """
        pass

    def list_folder_members(self, FolderId: str, AwsAccountId: str, NextToken: str=None, MaxResults: int=None) -> ListFolderMembersResponse:
        r"""List all assets (<code>DASHBOARD</code>, <code>ANALYSIS</code>, and <code>DATASET</code>) in a folder. 

        :param self:
        :param MaxResults:  The maximum number of results to be returned per request.<br/>NextToken:  The token for the next set of results, or null if there are no more results.<br/>FolderId:  The folder ID.<br/>AwsAccountId:  The AWS account ID.<br/>
        :return: RequestId:  The request ID.<br/>NextToken:  The token for the next set of results, or null if there are no more results.<br/>FolderMemberList:  A structure that contains all of the folder members (dashboards, analyses, and datasets) in the folder.<br/>Status:  The status. If succeeded, the status is <code>SC_OK</code> <br/>        """
        pass

    def list_folders(self, AwsAccountId: str, NextToken: str=None, MaxResults: int=None) -> ListFoldersResponse:
        r"""Lists all folders in an account.

        :param self:
        :param MaxResults:  The maximum number of results to be returned per request.<br/>NextToken:  The token for the next set of results, or null if there are no more results.<br/>AwsAccountId:  The AWS account ID.<br/>
        :return: RequestId:  The request ID.<br/>NextToken:  The token for the next set of results, or null if there are no more results.<br/>FolderSummaryList:  A structure that contains all of the folders in your AWS account. This structure provides basic information about the folders.<br/>Status:  The status. If succeeded, the status is <code>SC_OK</code> <br/>        """
        pass

    def list_group_memberships(self, Namespace: str, AwsAccountId: str, GroupName: str, NextToken: str=None, MaxResults: int=None) -> ListGroupMembershipsResponse:
        r"""Lists member users in a group.

        :param self:
        :param Namespace:  The namespace. Currently, you should set this to <code>default</code>.<br/>AwsAccountId:  The ID for the AWS account that the group is in. Currently, you use the ID for the AWS account that contains your Amazon QuickSight account.<br/>MaxResults:  The maximum number of results to return from this request.<br/>NextToken:  A pagination token that can be used in a subsequent request.<br/>GroupName:  The name of the group that you want to see a membership list of.<br/>
        :return: Status:  The HTTP status of the request.<br/>RequestId:  The AWS request ID for this operation.<br/>NextToken:  A pagination token that can be used in a subsequent request.<br/>GroupMemberList:  The list of the members of the group.<br/>        """
        pass

    def list_groups(self, Namespace: str, AwsAccountId: str, NextToken: str=None, MaxResults: int=None) -> ListGroupsResponse:
        r"""Lists all user groups in Amazon QuickSight. 

        :param self:
        :param Namespace:  The namespace. Currently, you should set this to <code>default</code>.<br/>MaxResults:  The maximum number of results to return.<br/>NextToken:  A pagination token that can be used in a subsequent request.<br/>AwsAccountId:  The ID for the AWS account that the group is in. Currently, you use the ID for the AWS account that contains your Amazon QuickSight account.<br/>
        :return: Status:  The HTTP status of the request.<br/>RequestId:  The AWS request ID for this operation.<br/>NextToken:  A pagination token that can be used in a subsequent request.<br/>GroupList:  The list of the groups.<br/>        """
        pass

    def list_iam_policy_assignments(self, Namespace: str, AwsAccountId: str, AssignmentStatus: str=None, NextToken: str=None, MaxResults: int=None) -> ListIAMPolicyAssignmentsResponse:
        r"""Lists IAM policy assignments in the current Amazon QuickSight account.

        :param self:
        :param MaxResults:  The maximum number of results to be returned per request.<br/>NextToken:  The token for the next set of results, or null if there are no more results.<br/>Namespace:  The namespace for the assignments.<br/>AssignmentStatus:  The status of the assignments.<br/>AwsAccountId:  The ID of the AWS account that contains these IAM policy assignments.<br/>
        :return: Status:  The HTTP status of the request.<br/>RequestId:  The AWS request ID for this operation.<br/>NextToken:  The token for the next set of results, or null if there are no more results.<br/>IAMPolicyAssignments:  Information describing the IAM policy assignments.<br/>        """
        pass

    def list_iam_policy_assignments_for_user(self, Namespace: str, UserName: str, AwsAccountId: str, NextToken: str=None, MaxResults: int=None) -> ListIAMPolicyAssignmentsForUserResponse:
        r"""Lists all the IAM policy assignments, including the Amazon Resource Names (ARNs) for the IAM policies assigned to the specified user and group or groups that the user belongs to.

        :param self:
        :param Namespace:  The namespace of the assignment.<br/>MaxResults:  The maximum number of results to be returned per request.<br/>NextToken:  The token for the next set of results, or null if there are no more results.<br/>UserName:  The name of the user.<br/>AwsAccountId:  The ID of the AWS account that contains the assignments.<br/>
        :return: Status:  The HTTP status of the request.<br/>NextToken:  The token for the next set of results, or null if there are no more results.<br/>RequestId:  The AWS request ID for this operation.<br/>ActiveAssignments:  The active assignments for this user.<br/>        """
        pass

    def list_ingestions(self, AwsAccountId: str, DataSetId: str, NextToken: str=None, MaxResults: int=None) -> ListIngestionsResponse:
        r"""Lists the history of SPICE ingestions for a dataset.

        :param self:
        :param MaxResults:  The maximum number of results to be returned per request.<br/>AwsAccountId:  The AWS account ID.<br/>NextToken:  The token for the next set of results, or null if there are no more results.<br/>DataSetId:  The ID of the dataset used in the ingestion.<br/>
        :return: Status:  The HTTP status of the request.<br/>RequestId:  The AWS request ID for this operation.<br/>NextToken:  The token for the next set of results, or null if there are no more results.<br/>Ingestions:  A list of the ingestions.<br/>        """
        pass

    def list_namespaces(self, AwsAccountId: str, NextToken: str=None, MaxResults: int=None) -> ListNamespacesResponse:
        r"""Lists the namespaces for the specified AWS account.

        :param self:
        :param MaxResults:  The maximum number of results to return.<br/>NextToken:  A pagination token that can be used in a subsequent request.<br/>AwsAccountId:  The ID for the AWS account that contains the QuickSight namespaces that you want to list.<br/>
        :return: Status:  The HTTP status of the request.<br/>RequestId:  The AWS request ID for this operation.<br/>NextToken:  A pagination token that can be used in a subsequent request.<br/>Namespaces:  The information about the namespaces in this AWS account. The response includes the namespace ARN, name, AWS Region, notification email address, creation status, and identity store.<br/>        """
        pass

    def list_tags_for_resource(self, ResourceArn: str) -> ListTagsForResourceResponse:
        r"""Lists the tags assigned to a resource.

        :param self:
        :param ResourceArn:  The Amazon Resource Name (ARN) of the resource that you want a list of tags for.<br/>
        :return: Status:  The HTTP status of the request.<br/>RequestId:  The AWS request ID for this operation.<br/>Tags:  Contains a map of the key-value pairs for the resource tag or tags assigned to the resource.<br/>        """
        pass

    def list_template_aliases(self, TemplateId: str, AwsAccountId: str, NextToken: str=None, MaxResults: int=None) -> ListTemplateAliasesResponse:
        r"""Lists all the aliases of a template.

        :param self:
        :param MaxResults:  The maximum number of results to be returned per request.<br/>NextToken:  The token for the next set of results, or null if there are no more results.<br/>TemplateId:  The ID for the template.<br/>AwsAccountId:  The ID of the AWS account that contains the template aliases that you're listing.<br/>
        :return: NextToken:  The token for the next set of results, or null if there are no more results.<br/>RequestId:  The AWS request ID for this operation.<br/>Status:  The HTTP status of the request.<br/>TemplateAliasList:  A structure containing the list of the template's aliases.<br/>        """
        pass

    def list_template_versions(self, TemplateId: str, AwsAccountId: str, NextToken: str=None, MaxResults: int=None) -> ListTemplateVersionsResponse:
        r"""Lists all the versions of the templates in the current Amazon QuickSight account.

        :param self:
        :param MaxResults:  The maximum number of results to be returned per request.<br/>NextToken:  The token for the next set of results, or null if there are no more results.<br/>TemplateId:  The ID for the template.<br/>AwsAccountId:  The ID of the AWS account that contains the templates that you're listing.<br/>
        :return: RequestId:  The AWS request ID for this operation.<br/>Status:  The HTTP status of the request.<br/>NextToken:  The token for the next set of results, or null if there are no more results.<br/>TemplateVersionSummaryList:  A structure containing a list of all the versions of the specified template.<br/>        """
        pass

    def list_templates(self, AwsAccountId: str, NextToken: str=None, MaxResults: int=None) -> ListTemplatesResponse:
        r"""Lists all the templates in the current Amazon QuickSight account.

        :param self:
        :param MaxResults:  The maximum number of results to be returned per request.<br/>NextToken:  The token for the next set of results, or null if there are no more results.<br/>AwsAccountId:  The ID of the AWS account that contains the templates that you're listing.<br/>
        :return: RequestId:  The AWS request ID for this operation.<br/>Status:  The HTTP status of the request.<br/>NextToken:  The token for the next set of results, or null if there are no more results.<br/>TemplateSummaryList:  A structure containing information about the templates in the list.<br/>        """
        pass

    def list_theme_aliases(self, ThemeId: str, AwsAccountId: str, NextToken: str=None, MaxResults: int=None) -> ListThemeAliasesResponse:
        r"""Lists all the aliases of a theme.

        :param self:
        :param MaxResults:  The maximum number of results to be returned per request.<br/>NextToken:  The token for the next set of results, or null if there are no more results.<br/>ThemeId:  The ID for the theme.<br/>AwsAccountId:  The ID of the AWS account that contains the theme aliases that you're listing.<br/>
        :return: NextToken:  The token for the next set of results, or null if there are no more results.<br/>RequestId:  The AWS request ID for this operation.<br/>Status:  The HTTP status of the request.<br/>ThemeAliasList:  A structure containing the list of the theme's aliases.<br/>        """
        pass

    def list_theme_versions(self, ThemeId: str, AwsAccountId: str, NextToken: str=None, MaxResults: int=None) -> ListThemeVersionsResponse:
        r"""Lists all the versions of the themes in the current AWS account.

        :param self:
        :param MaxResults:  The maximum number of results to be returned per request.<br/>NextToken:  The token for the next set of results, or null if there are no more results.<br/>ThemeId:  The ID for the theme.<br/>AwsAccountId:  The ID of the AWS account that contains the themes that you're listing.<br/>
        :return: RequestId:  The AWS request ID for this operation.<br/>Status:  The HTTP status of the request.<br/>NextToken:  The token for the next set of results, or null if there are no more results.<br/>ThemeVersionSummaryList:  A structure containing a list of all the versions of the specified theme.<br/>        """
        pass

    def list_themes(self, AwsAccountId: str, NextToken: str=None, MaxResults: int=None, Type: str=None) -> ListThemesResponse:
        r"""Lists all the themes in the current AWS account.

        :param self:
        :param Type:  The type of themes that you want to list. Valid options include the following: <ul> <li>  <code>ALL (default)</code>- Display all existing themes. </li> <li>  <code>CUSTOM</code> - Display only the themes created by people using Amazon QuickSight. </li> <li>  <code>QUICKSIGHT</code> - Display only the starting themes defined by QuickSight. </li> </ul><br/>MaxResults:  The maximum number of results to be returned per request.<br/>NextToken:  The token for the next set of results, or null if there are no more results.<br/>AwsAccountId:  The ID of the AWS account that contains the themes that you're listing.<br/>
        :return: RequestId:  The AWS request ID for this operation.<br/>Status:  The HTTP status of the request.<br/>NextToken:  The token for the next set of results, or null if there are no more results.<br/>ThemeSummaryList:  Information about the themes in the list.<br/>        """
        pass

    def list_user_groups(self, Namespace: str, AwsAccountId: str, UserName: str, NextToken: str=None, MaxResults: int=None) -> ListUserGroupsResponse:
        r"""Lists the Amazon QuickSight groups that an Amazon QuickSight user is a member of.

        :param self:
        :param MaxResults:  The maximum number of results to return from this request.<br/>NextToken:  A pagination token that can be used in a subsequent request.<br/>Namespace:  The namespace. Currently, you should set this to <code>default</code>.<br/>AwsAccountId:  The AWS account ID that the user is in. Currently, you use the ID for the AWS account that contains your Amazon QuickSight account.<br/>UserName:  The Amazon QuickSight user name that you want to list group memberships for.<br/>
        :return: Status:  The HTTP status of the request.<br/>RequestId:  The AWS request ID for this operation.<br/>NextToken:  A pagination token that can be used in a subsequent request.<br/>GroupList:  The list of groups the user is a member of.<br/>        """
        pass

    def list_users(self, Namespace: str, AwsAccountId: str, NextToken: str=None, MaxResults: int=None) -> ListUsersResponse:
        r"""Returns a list of all of the Amazon QuickSight users belonging to this account. 

        :param self:
        :param Namespace:  The namespace. Currently, you should set this to <code>default</code>.<br/>MaxResults:  The maximum number of results to return from this request.<br/>NextToken:  A pagination token that can be used in a subsequent request.<br/>AwsAccountId:  The ID for the AWS account that the user is in. Currently, you use the ID for the AWS account that contains your Amazon QuickSight account.<br/>
        :return: Status:  The HTTP status of the request.<br/>RequestId:  The AWS request ID for this operation.<br/>NextToken:  A pagination token that can be used in a subsequent request.<br/>UserList:  The list of users.<br/>        """
        pass

    def register_user(self, Namespace: str, AwsAccountId: str, UserRole: str, Email: str, IdentityType: str, IamArn: str=None, SessionName: str=None, UserName: str=None, CustomPermissionsName: str=None, ExternalLoginFederationProviderType: str=None, CustomFederationProviderUrl: str=None, ExternalLoginId: str=None) -> RegisterUserResponse:
        r"""Creates an Amazon QuickSight user, whose identity is associated with the AWS Identity and Access Management (IAM) identity or role specified in the request. 

        :param self:
        :param ExternalLoginId:  The identity ID for a user in the external login provider.<br/>CustomFederationProviderUrl:  The URL of the custom OpenID Connect (OIDC) provider that provides identity to let a user federate into QuickSight with an associated AWS Identity and Access Management (IAM) role. This parameter should only be used when <code>ExternalLoginFederationProviderType</code> parameter is set to <code>CUSTOM_OIDC</code>.<br/>ExternalLoginFederationProviderType:  The type of supported external login provider that provides identity to let a user federate into Amazon QuickSight with an associated AWS Identity and Access Management (IAM) role. The type of supported external login provider can be one of the following. <ul> <li>  <code>COGNITO</code>: Amazon Cognito. The provider URL is cognito-identity.amazonaws.com. When choosing the <code>COGNITO</code> provider type, don’t use the "CustomFederationProviderUrl" parameter which is only needed when the external provider is custom. </li> <li>  <code>CUSTOM_OIDC</code>: Custom OpenID Connect (OIDC) provider. When choosing <code>CUSTOM_OIDC</code> type, use the <code>CustomFederationProviderUrl</code> parameter to provide the custom OIDC provider URL. </li> </ul><br/>CustomPermissionsName:  (Enterprise edition only) The name of the custom permissions profile that you want to assign to this user. Customized permissions allows you to control a user's access by restricting access the following operations: <ul> <li> Create and update data sources </li> <li> Create and update datasets </li> <li> Create and update email reports </li> <li> Subscribe to email reports </li> </ul> To add custom permissions to an existing user, use <code> <a>UpdateUser</a> </code> instead. A set of custom permissions includes any combination of these restrictions. Currently, you need to create the profile names for custom permission sets by using the QuickSight console. Then, you use the <code>RegisterUser</code> API operation to assign the named set of permissions to a QuickSight user.  QuickSight custom permissions are applied through IAM policies. Therefore, they override the permissions typically granted by assigning QuickSight users to one of the default security cohorts in QuickSight (admin, author, reader). This feature is available only to QuickSight Enterprise edition subscriptions that use SAML 2.0-Based Federation for Single Sign-On (SSO).<br/>UserName:  The Amazon QuickSight user name that you want to create for the user you are registering.<br/>Namespace:  The namespace. Currently, you should set this to <code>default</code>.<br/>AwsAccountId:  The ID for the AWS account that the user is in. Currently, you use the ID for the AWS account that contains your Amazon QuickSight account.<br/>SessionName:  You need to use this parameter only when you register one or more users using an assumed IAM role. You don't need to provide the session name for other scenarios, for example when you are registering an IAM user or an Amazon QuickSight user. You can register multiple users using the same IAM role if each user has a different session name. For more information on assuming IAM roles, see <a href="https://docs.aws.amazon.com/cli/latest/reference/sts/assume-role.html"> <code>assume-role</code> </a> in the <i>AWS CLI Reference.</i> <br/>IamArn:  The ARN of the IAM user or role that you are registering with Amazon QuickSight. <br/>UserRole:  The Amazon QuickSight role for the user. The user role can be one of the following: <ul> <li>  <code>READER</code>: A user who has read-only access to dashboards. </li> <li>  <code>AUTHOR</code>: A user who can create data sources, datasets, analyses, and dashboards. </li> <li>  <code>ADMIN</code>: A user who is an author, who can also manage Amazon QuickSight settings. </li> <li>  <code>RESTRICTED_READER</code>: This role isn't currently available for use. </li> <li>  <code>RESTRICTED_AUTHOR</code>: This role isn't currently available for use. </li> </ul><br/>Email:  The email address of the user that you want to register.<br/>IdentityType:  Amazon QuickSight supports several ways of managing the identity of users. This parameter accepts two values: <ul> <li>  <code>IAM</code>: A user whose identity maps to an existing IAM user or role.  </li> <li>  <code>QUICKSIGHT</code>: A user whose identity is owned and managed internally by Amazon QuickSight.  </li> </ul><br/>
        :return: Status:  The HTTP status of the request.<br/>RequestId:  The AWS request ID for this operation.<br/>UserInvitationUrl:  The URL the user visits to complete registration and provide a password. This is returned only for users with an identity type of <code>QUICKSIGHT</code>.<br/>User:  The user's user name.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExternalLoginId</i> The identity ID for the user in the external login provider.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExternalLoginFederationProviderUrl</i> The URL of the external login provider.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExternalLoginFederationProviderType</i> The type of supported external login provider that provides identity to let the user federate into Amazon QuickSight with an associated IAM role. The type can be one of the following. <ul> <li>  <code>COGNITO</code>: Amazon Cognito. The provider URL is cognito-identity.amazonaws.com. </li> <li>  <code>CUSTOM_OIDC</code>: Custom OpenID Connect (OIDC) provider. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomPermissionsName</i> The custom permissions profile associated with this user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PrincipalId</i> The principal ID of the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Active</i> The active status of user. When you create an Amazon QuickSight user that’s not an IAM user or an Active Directory user, that user is inactive until they sign in and provide a password.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IdentityType</i> The type of identity authentication used by the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Role</i> The Amazon QuickSight role for the user. The user role can be one of the following:. <ul> <li>  <code>READER</code>: A user who has read-only access to dashboards. </li> <li>  <code>AUTHOR</code>: A user who can create data sources, datasets, analyses, and dashboards. </li> <li>  <code>ADMIN</code>: A user who is an author, who can also manage Amazon QuickSight settings. </li> <li>  <code>RESTRICTED_READER</code>: This role isn't currently available for use. </li> <li>  <code>RESTRICTED_AUTHOR</code>: This role isn't currently available for use. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Email</i> The user's email address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserName</i> The user's user name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) for the user.<br/>        """
        pass

    def restore_analysis(self, AnalysisId: str, AwsAccountId: str) -> RestoreAnalysisResponse:
        r"""Restores an analysis.

        :param self:
        :param AnalysisId:  The ID of the analysis that you're restoring.<br/>AwsAccountId:  The ID of the AWS account that contains the analysis.<br/>
        :return: RequestId:  The AWS request ID for this operation.<br/>AnalysisId:  The ID of the analysis that you're restoring. <br/>Arn:  The Amazon Resource Name (ARN) of the analysis that you're restoring.<br/>Status:  The HTTP status of the request.<br/>        """
        pass

    def search_analyses(self, Filters: List[AnalysisSearchFilter], AwsAccountId: str, NextToken: str=None, MaxResults: int=None) -> SearchAnalysesResponse:
        r"""Searches for analyses that belong to the user specified in the filter.

        :param self:
        :param MaxResults:  The maximum number of results to return.<br/>NextToken:  A pagination token that can be used in a subsequent request.<br/>Filters:  The structure for the search filters that you want to apply to your search. <br/>AwsAccountId:  The ID of the AWS account that contains the analyses that you're searching for.<br/>
        :return: RequestId:  The AWS request ID for this operation.<br/>Status:  The HTTP status of the request.<br/>NextToken:  A pagination token that can be used in a subsequent request. <br/>AnalysisSummaryList:  Metadata describing the analyses that you searched for.<br/>        """
        pass

    def search_dashboards(self, Filters: List[DashboardSearchFilter], AwsAccountId: str, NextToken: str=None, MaxResults: int=None) -> SearchDashboardsResponse:
        r"""Searches for dashboards that belong to a user. 

        :param self:
        :param MaxResults:  The maximum number of results to be returned per request.<br/>NextToken:  The token for the next set of results, or null if there are no more results.<br/>Filters:  The filters to apply to the search. Currently, you can search only by user name, for example, <code>"Filters": [ { "Name": "QUICKSIGHT_USER", "Operator": "StringEquals", "Value": "arn:aws:quicksight:us-east-1:1:user/default/UserName1" } ]</code> <br/>AwsAccountId:  The ID of the AWS account that contains the user whose dashboards you're searching for. <br/>
        :return: RequestId:  The AWS request ID for this operation.<br/>Status:  The HTTP status of the request.<br/>NextToken:  The token for the next set of results, or null if there are no more results.<br/>DashboardSummaryList:  The list of dashboards owned by the user specified in <code>Filters</code> in your request.<br/>        """
        pass

    def search_folders(self, Filters: List[FolderSearchFilter], AwsAccountId: str, NextToken: str=None, MaxResults: int=None) -> SearchFoldersResponse:
        r"""Searches the subfolders in a folder.

        :param self:
        :param MaxResults:  The maximum number of results to be returned per request.<br/>NextToken:  The token for the next set of results, or null if there are no more results.<br/>Filters:  The filters to apply to the search. Currently, you can search only by the parent folder ARN. For example, <code>"Filters": [ { "Name": "PARENT_FOLDER_ARN", "Operator": "StringEquals", "Value": "arn:aws:quicksight:us-east-1:1:folder/folderId" } ]</code>.<br/>AwsAccountId:  The AWS account ID.<br/>
        :return: RequestId:  The request ID.<br/>NextToken:  The token for the next set of results, or null if there are no more results.<br/>FolderSummaryList:  A structure that contains all of the folders in your AWS account. This structure provides basic information about the folders.<br/>Status:  The status. If succeeded, the status is <code>SC_OK</code>.<br/>        """
        pass

    def tag_resource(self, Tags: List[Tag], ResourceArn: str) -> TagResourceResponse:
        r"""Assigns one or more tags (key-value pairs) to the specified QuickSight resource.  Tags can help you organize and categorize your resources. You can also use them to scope user permissions, by granting a user permission to access or change only resources with certain tag values. You can use the <code>TagResource</code> operation with a resource that already has tags. If you specify a new tag key for the resource, this tag is appended to the list of tags associated with the resource. If you specify a tag key that is already associated with the resource, the new tag value that you specify replaces the previous value for that tag. You can associate as many as 50 tags with a resource. QuickSight supports tagging on data set, data source, dashboard, and template.  Tagging for QuickSight works in a similar way to tagging for other AWS services, except for the following: <ul> <li> You can't use tags to track AWS costs for QuickSight. This restriction is because QuickSight costs are based on users and SPICE capacity, which aren't taggable resources. </li> <li> QuickSight doesn't currently support the Tag Editor for AWS Resource Groups. </li> </ul>

        :param self:
        :param Tags:  Contains a map of the key-value pairs for the resource tag or tags assigned to the resource.<br/>ResourceArn:  The Amazon Resource Name (ARN) of the resource that you want to tag.<br/>
        :return: Status:  The HTTP status of the request.<br/>RequestId:  The AWS request ID for this operation.<br/>        """
        pass

    def untag_resource(self, TagKeys: List[TagKey], ResourceArn: str) -> UntagResourceResponse:
        r"""Removes a tag or tags from a resource.

        :param self:
        :param TagKeys:  The keys of the key-value pairs for the resource tag or tags assigned to the resource.<br/>ResourceArn:  The Amazon Resource Name (ARN) of the resource that you want to untag.<br/>
        :return: Status:  The HTTP status of the request.<br/>RequestId:  The AWS request ID for this operation.<br/>        """
        pass

    def update_account_customization(self, AccountCustomization: AccountCustomization, AwsAccountId: str, Namespace: str=None) -> UpdateAccountCustomizationResponse:
        r"""Updates Amazon QuickSight customizations the current AWS Region. Currently, the only customization you can use is a theme. You can use customizations for your AWS account or, if you specify a namespace, for a QuickSight namespace instead. Customizations that apply to a namespace override customizations that apply to an AWS account. To find out which customizations apply, use the <code>DescribeAccountCustomization</code> API operation. 

        :param self:
        :param AccountCustomization:  The QuickSight customizations you're updating in the current AWS Region. :<br/>Namespace:  The namespace that you want to update QuickSight customizations for.<br/>AwsAccountId:  The ID for the AWS account that you want to update QuickSight customizations for.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultTheme</i> The default theme for this QuickSight subscription.<br/>
        :return: Status:  The HTTP status of the request.<br/>RequestId:  The AWS request ID for this operation.<br/>AccountCustomization:  The QuickSight customizations you're updating in the current AWS Region. :<br/>Namespace:  The namespace associated with the customization that you're updating.<br/>AwsAccountId:  The ID for the AWS account that you want to update QuickSight customizations for.<br/>Arn:  The Amazon Resource Name (ARN) for the updated customization for this AWS account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultTheme</i> The default theme for this QuickSight subscription.<br/>        """
        pass

    def update_account_settings(self, DefaultNamespace: str, AwsAccountId: str, NotificationEmail: str=None) -> UpdateAccountSettingsResponse:
        r"""Updates the Amazon QuickSight settings in your AWS account.

        :param self:
        :param NotificationEmail:  The email address that you want QuickSight to send notifications to regarding your AWS account or QuickSight subscription.<br/>DefaultNamespace:  The default namespace for this AWS account. Currently, the default is <code>default</code>. AWS Identity and Access Management (IAM) users that register for the first time with QuickSight provide an email that becomes associated with the default namespace.<br/>AwsAccountId:  The ID for the AWS account that contains the QuickSight settings that you want to list.<br/>
        :return: Status:  The HTTP status of the request.<br/>RequestId:  The AWS request ID for this operation.<br/>        """
        pass

    def update_analysis(self, SourceEntity: AnalysisSourceEntity, Name: str, AnalysisId: str, AwsAccountId: str, Parameters: Parameters=None, ThemeArn: str=None) -> UpdateAnalysisResponse:
        r"""Updates an analysis in Amazon QuickSight

        :param self:
        :param ThemeArn:  The Amazon Resource Name (ARN) for the theme to apply to the analysis that you're creating. To see the theme in the QuickSight console, make sure that you have access to it.<br/>SourceEntity:  A source entity to use for the analysis that you're updating. This metadata structure contains details that describe a source template and one or more datasets.:<br/>Parameters:  The parameter names and override values that you want to use. An analysis can have any parameter type, and some parameters might accept multiple values. :<br/>Name:  A descriptive name for the analysis that you're updating. This name displays for the analysis in the QuickSight console.<br/>AnalysisId:  The ID for the analysis that you're updating. This ID displays in the URL of the analysis.<br/>AwsAccountId:  The ID of the AWS account that contains the analysis that you're updating.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DateTimeParameters</i> Date-time parameters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DecimalParameters</i> Decimal parameters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IntegerParameters</i> Integer parameters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StringParameters</i> String parameters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceTemplate</i> The source template for the source entity of the analysis.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SourceTemplate</b>: The source template for the source entity of the analysis.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the source template of an analysis.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DataSetReferences</i> The dataset references of the source template of an analysis.<br/>
        :return: RequestId:  The AWS request ID for this operation.<br/>Status:  The HTTP status of the request.<br/>UpdateStatus:  The update status of the last update that was made to the analysis.<br/>AnalysisId:  The ID of the analysis.<br/>Arn:  The ARN of the analysis that you're updating.<br/>        """
        pass

    def update_analysis_permissions(self, AnalysisId: str, AwsAccountId: str, GrantPermissions: List[ResourcePermission]=None, RevokePermissions: List[ResourcePermission]=None) -> UpdateAnalysisPermissionsResponse:
        r"""Updates the read and write permissions for an analysis.

        :param self:
        :param RevokePermissions:  A structure that describes the permissions to remove and the principal to remove them from.<br/>GrantPermissions:  A structure that describes the permissions to add and the principal to add them to.<br/>AnalysisId:  The ID of the analysis whose permissions you're updating. The ID is part of the analysis URL.<br/>AwsAccountId:  The ID of the AWS account that contains the analysis whose permissions you're updating. You must be using the AWS account that the analysis is in.<br/>
        :return: Status:  The HTTP status of the request.<br/>RequestId:  The AWS request ID for this operation.<br/>Permissions:  A structure that describes the principals and the resource-level permissions on an analysis.<br/>AnalysisId:  The ID of the analysis that you updated permissions for.<br/>AnalysisArn:  The Amazon Resource Name (ARN) of the analysis that you updated.<br/>        """
        pass

    def update_dashboard(self, SourceEntity: DashboardSourceEntity, Name: str, DashboardId: str, AwsAccountId: str, Parameters: Parameters=None, VersionDescription: str=None, DashboardPublishOptions: DashboardPublishOptions=None, ThemeArn: str=None) -> UpdateDashboardResponse:
        r"""Updates a dashboard in an AWS account.

        :param self:
        :param ThemeArn:  The Amazon Resource Name (ARN) of the theme that is being used for this dashboard. If you add a value for this field, it overrides the value that was originally associated with the entity. The theme ARN must exist in the same AWS account where you create the dashboard.<br/>DashboardPublishOptions:  Options for publishing the dashboard when you create it: <ul> <li>  <code>AvailabilityStatus</code> for <code>AdHocFilteringOption</code> - This status can be either <code>ENABLED</code> or <code>DISABLED</code>. When this is set to <code>DISABLED</code>, QuickSight disables the left filter pane on the published dashboard, which can be used for ad hoc (one-time) filtering. This option is <code>ENABLED</code> by default.  </li> <li>  <code>AvailabilityStatus</code> for <code>ExportToCSVOption</code> - This status can be either <code>ENABLED</code> or <code>DISABLED</code>. The visual option to export data to .CSV format isn't enabled when this is set to <code>DISABLED</code>. This option is <code>ENABLED</code> by default.  </li> <li>  <code>VisibilityState</code> for <code>SheetControlsOption</code> - This visibility state can be either <code>COLLAPSED</code> or <code>EXPANDED</code>. This option is <code>COLLAPSED</code> by default.  </li> </ul>:<br/>VersionDescription:  A description for the first version of the dashboard being created.<br/>Parameters:  A structure that contains the parameters of the dashboard. These are parameter overrides for a dashboard. A dashboard can have any type of parameters, and some parameters might accept multiple values.:<br/>SourceEntity:  The entity that you are using as a source when you update the dashboard. In <code>SourceEntity</code>, you specify the type of object you're using as source. You can only update a dashboard from a template, so you use a <code>SourceTemplate</code> entity. If you need to update a dashboard from an analysis, first convert the analysis to a template by using the <a>CreateTemplate</a> API operation. For <code>SourceTemplate</code>, specify the Amazon Resource Name (ARN) of the source template. The <code>SourceTemplate</code> ARN can contain any AWS Account and any QuickSight-supported AWS Region.  Use the <code>DataSetReferences</code> entity within <code>SourceTemplate</code> to list the replacement datasets for the placeholders listed in the original. The schema in each dataset must match its placeholder. :<br/>Name:  The display name of the dashboard.<br/>DashboardId:  The ID for the dashboard.<br/>AwsAccountId:  The ID of the AWS account that contains the dashboard that you're updating.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceTemplate</i> Source template.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SourceTemplate</b>: Source template.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DataSetReferences</i> Dataset references.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DateTimeParameters</i> Date-time parameters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DecimalParameters</i> Decimal parameters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IntegerParameters</i> Integer parameters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StringParameters</i> String parameters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SheetControlsOption</i> Sheet controls option.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SheetControlsOption</b>: Sheet controls option.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExportToCSVOption</i> Export to .csv option.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ExportToCSVOption</b>: Export to .csv option.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdHocFilteringOption</i> Ad hoc (one-time) filtering option.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AdHocFilteringOption</b>: Ad hoc (one-time) filtering option.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityStatus</i> Availability status.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityStatus</i> Availability status.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VisibilityState</i> Visibility state.<br/>
        :return: RequestId:  The AWS request ID for this operation.<br/>Status:  The HTTP status of the request.<br/>CreationStatus:  The creation status of the request.<br/>DashboardId:  The ID for the dashboard.<br/>VersionArn:  The ARN of the dashboard, including the version number.<br/>Arn:  The Amazon Resource Name (ARN) of the resource.<br/>        """
        pass

    def update_dashboard_permissions(self, DashboardId: str, AwsAccountId: str, GrantPermissions: List[ResourcePermission]=None, RevokePermissions: List[ResourcePermission]=None) -> UpdateDashboardPermissionsResponse:
        r"""Updates read and write permissions on a dashboard.

        :param self:
        :param RevokePermissions:  The permissions that you want to revoke from this resource.<br/>GrantPermissions:  The permissions that you want to grant on this resource.<br/>DashboardId:  The ID for the dashboard.<br/>AwsAccountId:  The ID of the AWS account that contains the dashboard whose permissions you're updating.<br/>
        :return: Status:  The HTTP status of the request.<br/>RequestId:  The AWS request ID for this operation.<br/>Permissions:  Information about the permissions on the dashboard.<br/>DashboardId:  The ID for the dashboard.<br/>DashboardArn:  The Amazon Resource Name (ARN) of the dashboard.<br/>        """
        pass

    def update_dashboard_published_version(self, VersionNumber: VersionNumber, DashboardId: str, AwsAccountId: str) -> UpdateDashboardPublishedVersionResponse:
        r"""Updates the published version of a dashboard.

        :param self:
        :param VersionNumber:  The version number of the dashboard.<br/>DashboardId:  The ID for the dashboard.<br/>AwsAccountId:  The ID of the AWS account that contains the dashboard that you're updating.<br/>
        :return: RequestId:  The AWS request ID for this operation.<br/>Status:  The HTTP status of the request.<br/>DashboardArn:  The Amazon Resource Name (ARN) of the dashboard.<br/>DashboardId:  The ID for the dashboard.<br/>        """
        pass

    def update_data_set(self, ImportMode: str, PhysicalTableMap: PhysicalTableMap, Name: str, DataSetId: str, AwsAccountId: str, LogicalTableMap: LogicalTableMap=None, ColumnGroups: List[ColumnGroup]=None, FieldFolders: FieldFolderMap=None, RowLevelPermissionDataSet: RowLevelPermissionDataSet=None, ColumnLevelPermissionRules: List[ColumnLevelPermissionRule]=None) -> UpdateDataSetResponse:
        r"""Updates a dataset.

        :param self:
        :param ColumnLevelPermissionRules:  A set of one or more definitions of a <code> <a>ColumnLevelPermissionRule</a> </code>.<br/>RowLevelPermissionDataSet:  The row-level security configuration for the data you want to create.:<br/>FieldFolders:  The folder that contains fields and nested subfolders for your dataset.<br/>ColumnGroups:  Groupings of columns that work together in certain QuickSight features. Currently, only geospatial hierarchy is supported.<br/>ImportMode:  Indicates whether you want to import the data into SPICE.<br/>LogicalTableMap:  Configures the combination and transformation of the data from the physical tables.<br/>PhysicalTableMap:  Declares the physical tables that are available in the underlying data sources.<br/>Name:  The display name for the dataset.<br/>DataSetId:  The ID for the dataset that you want to update. This ID is unique per AWS Region for each AWS account.<br/>AwsAccountId:  The AWS account ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FormatVersion</i> The user or group rules associated with the dataset that contains permissions for RLS. By default, <code>FormatVersion</code> is <code>VERSION_1</code>. When <code>FormatVersion</code> is <code>VERSION_1</code>, <code>UserName</code> and <code>GroupName</code> are required. When <code>FormatVersion</code> is <code>VERSION_2</code>, <code>UserARN</code> and <code>GroupARN</code> are required, and <code>Namespace</code> must not exist.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PermissionPolicy</i> The type of permissions to use when interpretting the permissions for RLS. <code>DENY_ACCESS</code> is included for backward compatibility only.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the dataset that contains permissions for RLS.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Namespace</i> The namespace associated with the dataset that contains permissions for RLS.<br/>
        :return: Status:  The HTTP status of the request.<br/>RequestId:  The AWS request ID for this operation.<br/>IngestionId:  The ID of the ingestion, which is triggered as a result of dataset creation if the import mode is SPICE.<br/>IngestionArn:  The ARN for the ingestion, which is triggered as a result of dataset creation if the import mode is SPICE.<br/>DataSetId:  The ID for the dataset that you want to create. This ID is unique per AWS Region for each AWS account.<br/>Arn:  The Amazon Resource Name (ARN) of the dataset.<br/>        """
        pass

    def update_data_set_permissions(self, DataSetId: str, AwsAccountId: str, GrantPermissions: List[ResourcePermission]=None, RevokePermissions: List[ResourcePermission]=None) -> UpdateDataSetPermissionsResponse:
        r"""Updates the permissions on a dataset. The permissions resource is <code>arn:aws:quicksight:region:aws-account-id:dataset/data-set-id</code>.

        :param self:
        :param RevokePermissions:  The resource permissions that you want to revoke from the dataset.<br/>GrantPermissions:  The resource permissions that you want to grant to the dataset.<br/>DataSetId:  The ID for the dataset whose permissions you want to update. This ID is unique per AWS Region for each AWS account.<br/>AwsAccountId:  The AWS account ID.<br/>
        :return: Status:  The HTTP status of the request.<br/>RequestId:  The AWS request ID for this operation.<br/>DataSetId:  The ID for the dataset whose permissions you want to update. This ID is unique per AWS Region for each AWS account.<br/>DataSetArn:  The Amazon Resource Name (ARN) of the dataset.<br/>        """
        pass

    def update_data_source(self, Name: str, DataSourceId: str, AwsAccountId: str, DataSourceParameters: DataSourceParameters=None, Credentials: DataSourceCredentials=None, VpcConnectionProperties: VpcConnectionProperties=None, SslProperties: SslProperties=None) -> UpdateDataSourceResponse:
        r"""Updates a data source.

        :param self:
        :param SslProperties:  Secure Socket Layer (SSL) properties that apply when QuickSight connects to your underlying source.:<br/>VpcConnectionProperties:  Use this parameter only when you want QuickSight to use a VPC connection when connecting to your underlying source.:<br/>Credentials:  The credentials that QuickSight that uses to connect to your underlying source. Currently, only credentials based on user name and password are supported.:<br/>DataSourceParameters:  The parameters that QuickSight uses to connect to your underlying source.:<br/>Name:  A display name for the data source.<br/>DataSourceId:  The ID of the data source. This ID is unique per AWS Region for each AWS account. <br/>AwsAccountId:  The AWS account ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TwitterParameters</i> Twitter parameters.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TwitterParameters</b>: Twitter parameters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TeradataParameters</i> Teradata parameters.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TeradataParameters</b>: Teradata parameters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SqlServerParameters</i> SQL Server parameters.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SqlServerParameters</b>: SQL Server parameters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SparkParameters</i> Spark parameters.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SparkParameters</b>: Spark parameters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnowflakeParameters</i> Snowflake parameters.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SnowflakeParameters</b>: Snowflake parameters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceNowParameters</i> ServiceNow parameters.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ServiceNowParameters</b>: ServiceNow parameters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Parameters</i> S3 parameters.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3Parameters</b>: S3 parameters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RedshiftParameters</i> Amazon Redshift parameters.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RedshiftParameters</b>: Amazon Redshift parameters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RdsParameters</i> Amazon RDS parameters.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RdsParameters</b>: Amazon RDS parameters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PrestoParameters</i> Presto parameters.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PrestoParameters</b>: Presto parameters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PostgreSqlParameters</i> PostgreSQL parameters.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PostgreSqlParameters</b>: PostgreSQL parameters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OracleParameters</i> Oracle parameters.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>OracleParameters</b>: Oracle parameters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MySqlParameters</i> MySQL parameters.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>MySqlParameters</b>: MySQL parameters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MariaDbParameters</i> MariaDB parameters.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>MariaDbParameters</b>: MariaDB parameters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JiraParameters</i> Jira parameters.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>JiraParameters</b>: Jira parameters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AwsIotAnalyticsParameters</i> AWS IoT Analytics parameters.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AwsIotAnalyticsParameters</b>: AWS IoT Analytics parameters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AuroraPostgreSqlParameters</i> Aurora PostgreSQL parameters.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AuroraPostgreSqlParameters</b>: Aurora PostgreSQL parameters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AuroraParameters</i> Amazon Aurora MySQL parameters.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AuroraParameters</b>: Amazon Aurora MySQL parameters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AthenaParameters</i> Amazon Athena parameters.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AthenaParameters</b>: Amazon Athena parameters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AmazonElasticsearchParameters</i> Amazon Elasticsearch Service parameters.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AmazonElasticsearchParameters</b>: Amazon Elasticsearch Service parameters.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Domain</i> The Amazon Elasticsearch Service domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>WorkGroup</i> The workgroup that Amazon Athena uses.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Database</i> Database.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Port.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Host</i> Host.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Database</i> Database.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Port.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Host</i> Host.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DataSetName</i> Dataset name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SiteBaseUrl</i> The base URL of the Jira site.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Database</i> Database.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Port.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Host</i> Host.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Database</i> Database.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Port.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Host</i> Host.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Database</i> Database.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Port.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Host</i> An Oracle host.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Database</i> Database.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Port.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Host</i> Host.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Catalog</i> Catalog.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Port.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Host</i> Host.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Database</i> Database.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceId</i> Instance ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterId</i> Cluster ID. This field can be blank if the <code>Host</code> and <code>Port</code> are provided.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Database</i> Database.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Port. This field can be blank if the <code>ClusterId</code> is provided.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Host</i> Host. This field can be blank if <code>ClusterId</code> is provided.<br/>Location of the Amazon S3 manifest file. This is NULL if the manifest file was uploaded in the console.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ManifestFileLocation</b>: Location of the Amazon S3 manifest file. This is NULL if the manifest file was uploaded in the console.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SiteBaseUrl</i> URL of the base site.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Warehouse</i> Warehouse.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Database</i> Database.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Host</i> Host.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Port.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Host</i> Host.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Database</i> Database.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Port.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Host</i> Host.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Database</i> Database.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Port.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Host</i> Host.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxRows</i> Maximum number of rows to query Twitter.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Query</i> Twitter query string.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CopySourceArn</i> The Amazon Resource Name (ARN) of a data source that has the credential pair that you want to use. When <code>CopySourceArn</code> is not null, the credential pair from the data source in the ARN is used as the credentials for the <code>DataSourceCredentials</code> structure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CredentialPair</i> Credential pair. For more information, see <a>CredentialPair</a>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CredentialPair</b>: Credential pair. For more information, see <a>CredentialPair</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AlternateDataSourceParameters</i> A set of alternate data source parameters that you want to share for these credentials. The credentials are applied in tandem with the data source parameters when you copy a data source by using a create or update request. The API operation compares the <code>DataSourceParameters</code> structure that's in the request with the structures in the <code>AlternateDataSourceParameters</code> allow list. If the structures are an exact match, the request is allowed to use the new data source with the existing credentials. If the <code>AlternateDataSourceParameters</code> list is null, the <code>DataSourceParameters</code> originally used with these <code>Credentials</code> is automatically allowed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Password</i> Password.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Username</i> User name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcConnectionArn</i> The Amazon Resource Name (ARN) for the VPC connection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DisableSsl</i> A Boolean option to control whether SSL should be disabled.<br/>
        :return: Status:  The HTTP status of the request.<br/>RequestId:  The AWS request ID for this operation.<br/>UpdateStatus:  The update status of the data source's last update.<br/>DataSourceId:  The ID of the data source. This ID is unique per AWS Region for each AWS account.<br/>Arn:  The Amazon Resource Name (ARN) of the data source.<br/>        """
        pass

    def update_data_source_permissions(self, DataSourceId: str, AwsAccountId: str, GrantPermissions: List[ResourcePermission]=None, RevokePermissions: List[ResourcePermission]=None) -> UpdateDataSourcePermissionsResponse:
        r"""Updates the permissions to a data source.

        :param self:
        :param RevokePermissions:  A list of resource permissions that you want to revoke on the data source.<br/>GrantPermissions:  A list of resource permissions that you want to grant on the data source.<br/>DataSourceId:  The ID of the data source. This ID is unique per AWS Region for each AWS account. <br/>AwsAccountId:  The AWS account ID.<br/>
        :return: Status:  The HTTP status of the request.<br/>RequestId:  The AWS request ID for this operation.<br/>DataSourceId:  The ID of the data source. This ID is unique per AWS Region for each AWS account.<br/>DataSourceArn:  The Amazon Resource Name (ARN) of the data source.<br/>        """
        pass

    def update_folder(self, Name: str, FolderId: str, AwsAccountId: str) -> UpdateFolderResponse:
        r"""Updates the name of a folder.

        :param self:
        :param Name:  The name of the folder.<br/>FolderId:  The folder ID.<br/>AwsAccountId:  The AWS account ID.<br/>
        :return: RequestId:  The request ID.<br/>FolderId:  The folder ID.<br/>Arn:  The Amazon Resource Name (ARN).<br/>Status:  The status. If succeeded, the status is <code>SC_OK</code>.<br/>        """
        pass

    def update_folder_permissions(self, FolderId: str, AwsAccountId: str, GrantPermissions: List[ResourcePermission]=None, RevokePermissions: List[ResourcePermission]=None) -> UpdateFolderPermissionsResponse:
        r"""Updates permissions of a folder.

        :param self:
        :param RevokePermissions:  The permissions that you want to revoke from a resource.<br/>GrantPermissions:  The permissions that you want to grant on a resource.<br/>FolderId:  The folder ID.<br/>AwsAccountId:  The AWS account ID.<br/>
        :return: RequestId:  The request ID.<br/>Permissions:  Information about the permissions on the dashboard.<br/>FolderId:  The folder ID.<br/>Arn:  The Amazon Resource Name (ARN).<br/>Status:  The status. If succeeded, the status is <code>SC_OK</code>.<br/>        """
        pass

    def update_group(self, Namespace: str, AwsAccountId: str, GroupName: str, Description: str=None) -> UpdateGroupResponse:
        r"""Changes a group description. 

        :param self:
        :param Namespace:  The namespace. Currently, you should set this to <code>default</code>.<br/>AwsAccountId:  The ID for the AWS account that the group is in. Currently, you use the ID for the AWS account that contains your Amazon QuickSight account.<br/>Description:  The description for the group that you want to update.<br/>GroupName:  The name of the group that you want to update.<br/>
        :return: Status:  The HTTP status of the request.<br/>RequestId:  The AWS request ID for this operation.<br/>Group:  The name of the group.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PrincipalId</i> The principal ID of the group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The group description.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GroupName</i> The name of the group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) for the group.<br/>        """
        pass

    def update_iam_policy_assignment(self, Namespace: str, AssignmentName: str, AwsAccountId: str, AssignmentStatus: str=None, PolicyArn: str=None, Identities: IdentityMap=None) -> UpdateIAMPolicyAssignmentResponse:
        r"""Updates an existing IAM policy assignment. This operation updates only the optional parameter or parameters that are specified in the request. This overwrites all of the users included in <code>Identities</code>. 

        :param self:
        :param Identities:  The QuickSight users, groups, or both that you want to assign the policy to.<br/>PolicyArn:  The ARN for the IAM policy to apply to the QuickSight users and groups specified in this assignment.<br/>AssignmentStatus:  The status of the assignment. Possible values are as follows: <ul> <li>  <code>ENABLED</code> - Anything specified in this assignment is used when creating the data source. </li> <li>  <code>DISABLED</code> - This assignment isn't used when creating the data source. </li> <li>  <code>DRAFT</code> - This assignment is an unfinished draft and isn't used when creating the data source. </li> </ul><br/>Namespace:  The namespace of the assignment.<br/>AssignmentName:  The name of the assignment, also called a rule. This name must be unique within an AWS account.<br/>AwsAccountId:  The ID of the AWS account that contains the IAM policy assignment. <br/>
        :return: Status:  The HTTP status of the request.<br/>RequestId:  The AWS request ID for this operation.<br/>AssignmentStatus:  The status of the assignment. Possible values are as follows: <ul> <li>  <code>ENABLED</code> - Anything specified in this assignment is used when creating the data source. </li> <li>  <code>DISABLED</code> - This assignment isn't used when creating the data source. </li> <li>  <code>DRAFT</code> - This assignment is an unfinished draft and isn't used when creating the data source. </li> </ul><br/>Identities:  The QuickSight users, groups, or both that the IAM policy is assigned to.<br/>PolicyArn:  The ARN for the IAM policy applied to the QuickSight users and groups specified in this assignment.<br/>AssignmentId:  The ID of the assignment.<br/>AssignmentName:  The name of the assignment or rule.<br/>        """
        pass

    def update_template(self, SourceEntity: TemplateSourceEntity, TemplateId: str, AwsAccountId: str, VersionDescription: str=None, Name: str=None) -> UpdateTemplateResponse:
        r"""Updates a template from an existing Amazon QuickSight analysis or another template.

        :param self:
        :param Name:  The name for the template.<br/>VersionDescription:  A description of the current template version that is being updated. Every time you call <code>UpdateTemplate</code>, you create a new version of the template. Each version of the template maintains a description of the version in the <code>VersionDescription</code> field.<br/>SourceEntity:  The entity that you are using as a source when you update the template. In <code>SourceEntity</code>, you specify the type of object you're using as source: <code>SourceTemplate</code> for a template or <code>SourceAnalysis</code> for an analysis. Both of these require an Amazon Resource Name (ARN). For <code>SourceTemplate</code>, specify the ARN of the source template. For <code>SourceAnalysis</code>, specify the ARN of the source analysis. The <code>SourceTemplate</code> ARN can contain any AWS Account and any QuickSight-supported AWS Region.  Use the <code>DataSetReferences</code> entity within <code>SourceTemplate</code> or <code>SourceAnalysis</code> to list the replacement datasets for the placeholders listed in the original. The schema in each dataset must match its placeholder. :<br/>TemplateId:  The ID for the template.<br/>AwsAccountId:  The ID of the AWS account that contains the template that you're updating.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceTemplate</i> The source template, if it is based on an template.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SourceTemplate</b>: The source template, if it is based on an template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceAnalysis</i> The source analysis, if it is based on an analysis.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SourceAnalysis</b>: The source analysis, if it is based on an analysis.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DataSetReferences</i> A structure containing information about the dataset references used as placeholders in the template.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the resource.<br/>
        :return: RequestId:  The AWS request ID for this operation.<br/>Status:  The HTTP status of the request.<br/>CreationStatus:  The creation status of the template.<br/>VersionArn:  The ARN for the template, including the version information of the first version.<br/>Arn:  The Amazon Resource Name (ARN) for the template.<br/>TemplateId:  The ID for the template.<br/>        """
        pass

    def update_template_alias(self, TemplateVersionNumber: VersionNumber, AliasName: str, TemplateId: str, AwsAccountId: str) -> UpdateTemplateAliasResponse:
        r"""Updates the template alias of a template.

        :param self:
        :param TemplateVersionNumber:  The version number of the template.<br/>AliasName:  The alias of the template that you want to update. If you name a specific alias, you update the version that the alias points to. You can specify the latest version of the template by providing the keyword <code>$LATEST</code> in the <code>AliasName</code> parameter. The keyword <code>$PUBLISHED</code> doesn't apply to templates.<br/>TemplateId:  The ID for the template.<br/>AwsAccountId:  The ID of the AWS account that contains the template alias that you're updating.<br/>
        :return: RequestId:  The AWS request ID for this operation.<br/>Status:  The HTTP status of the request.<br/>TemplateAlias:  The template alias.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TemplateVersionNumber</i> The version number of the template alias.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the template alias.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AliasName</i> The display name of the template alias.<br/>        """
        pass

    def update_template_permissions(self, TemplateId: str, AwsAccountId: str, GrantPermissions: List[ResourcePermission]=None, RevokePermissions: List[ResourcePermission]=None) -> UpdateTemplatePermissionsResponse:
        r"""Updates the resource permissions for a template.

        :param self:
        :param RevokePermissions:  A list of resource permissions to be revoked from the template. <br/>GrantPermissions:  A list of resource permissions to be granted on the template. <br/>TemplateId:  The ID for the template.<br/>AwsAccountId:  The ID of the AWS account that contains the template.<br/>
        :return: Status:  The HTTP status of the request.<br/>RequestId:  The AWS request ID for this operation.<br/>Permissions:  A list of resource permissions to be set on the template.<br/>TemplateArn:  The Amazon Resource Name (ARN) of the template.<br/>TemplateId:  The ID for the template.<br/>        """
        pass

    def update_theme(self, BaseThemeId: str, ThemeId: str, AwsAccountId: str, Name: str=None, VersionDescription: str=None, Configuration: ThemeConfiguration=None) -> UpdateThemeResponse:
        r"""Updates a theme.

        :param self:
        :param Configuration:  The theme configuration, which contains the theme display properties.:<br/>VersionDescription:  A description of the theme version that you're updating Every time that you call <code>UpdateTheme</code>, you create a new version of the theme. Each version of the theme maintains a description of the version in <code>VersionDescription</code>.<br/>BaseThemeId:  The theme ID, defined by Amazon QuickSight, that a custom theme inherits from. All themes initially inherit from a default QuickSight theme.<br/>Name:  The name for the theme.<br/>ThemeId:  The ID for the theme.<br/>AwsAccountId:  The ID of the AWS account that contains the theme that you're updating.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Sheet</i> Display options related to sheets.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Sheet</b>: Display options related to sheets.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UIColorPalette</i> Color properties that apply to the UI and to charts, excluding the colors that apply to data. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>UIColorPalette</b>: Color properties that apply to the UI and to charts, excluding the colors that apply to data. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataColorPalette</i> Color properties that apply to chart data colors.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DataColorPalette</b>: Color properties that apply to chart data colors.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EmptyFillColor</i> The hexadecimal code of a color that applies to charts where a lack of data is highlighted.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MinMaxGradient</i> The minimum and maximum hexadecimal codes that describe a color gradient. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Colors</i> The hexadecimal codes for the colors.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MeasureForeground</i> The foreground color that applies to any text or other elements that appear over the measure color.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Measure</i> The color that applies to the names of fields that are identified as measures.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DimensionForeground</i> The foreground color that applies to any text or other elements that appear over the dimension color.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Dimension</i> The color that applies to the names of fields that are identified as dimensions.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SuccessForeground</i> The foreground color that applies to any text or other elements that appear over the success color.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Success</i> The color that applies to success messages, for example the check mark for a successful download.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>WarningForeground</i> The foreground color that applies to any text or other elements that appear over the warning color.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Warning</i> This color that applies to warning and informational messages.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DangerForeground</i> The foreground color that applies to any text or other elements that appear over the error color.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Danger</i> The color that applies to error messages.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AccentForeground</i> The foreground color that applies to any text or other elements that appear over the accent color.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Accent</i> This color is that applies to selected states and buttons.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecondaryBackground</i> The background color that applies to the sheet background and sheet controls.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecondaryForeground</i> The foreground color that applies to any sheet title, sheet control text, or UI that appears over the secondary background.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PrimaryBackground</i> The background color that applies to visuals and other high emphasis UI.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PrimaryForeground</i> The color of text and other foreground elements that appear over the primary background regions, such as grid lines, borders, table banding, icons, and so on.<br/>The display options for tiles.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Tile</b>: The display options for tiles.
        :return: RequestId:  The AWS request ID for this operation.<br/>Status:  The HTTP status of the request.<br/>CreationStatus:  The creation status of the theme.<br/>VersionArn:  The Amazon Resource Name (ARN) for the new version of the theme.<br/>Arn:  The Amazon Resource Name (ARN) for the theme.<br/>ThemeId:  The ID for the theme.<br/>        """
        pass

    def update_theme_alias(self, ThemeVersionNumber: VersionNumber, AliasName: str, ThemeId: str, AwsAccountId: str) -> UpdateThemeAliasResponse:
        r"""Updates an alias of a theme.

        :param self:
        :param ThemeVersionNumber:  The version number of the theme that the alias should reference.<br/>AliasName:  The name of the theme alias that you want to update.<br/>ThemeId:  The ID for the theme.<br/>AwsAccountId:  The ID of the AWS account that contains the theme alias that you're updating.<br/>
        :return: RequestId:  The AWS request ID for this operation.<br/>Status:  The HTTP status of the request.<br/>ThemeAlias:  Information about the theme alias.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ThemeVersionNumber</i> The version number of the theme alias.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AliasName</i> The display name of the theme alias.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the theme alias.<br/>        """
        pass

    def update_theme_permissions(self, ThemeId: str, AwsAccountId: str, GrantPermissions: List[ResourcePermission]=None, RevokePermissions: List[ResourcePermission]=None) -> UpdateThemePermissionsResponse:
        r"""Updates the resource permissions for a theme. Permissions apply to the action to grant or revoke permissions on, for example <code>"quicksight:DescribeTheme"</code>. Theme permissions apply in groupings. Valid groupings include the following for the three levels of permissions, which are user, owner, or no permissions:  <ul> <li> User <ul> <li>  <code>"quicksight:DescribeTheme"</code>  </li> <li>  <code>"quicksight:DescribeThemeAlias"</code>  </li> <li>  <code>"quicksight:ListThemeAliases"</code>  </li> <li>  <code>"quicksight:ListThemeVersions"</code>  </li> </ul> </li> <li> Owner <ul> <li>  <code>"quicksight:DescribeTheme"</code>  </li> <li>  <code>"quicksight:DescribeThemeAlias"</code>  </li> <li>  <code>"quicksight:ListThemeAliases"</code>  </li> <li>  <code>"quicksight:ListThemeVersions"</code>  </li> <li>  <code>"quicksight:DeleteTheme"</code>  </li> <li>  <code>"quicksight:UpdateTheme"</code>  </li> <li>  <code>"quicksight:CreateThemeAlias"</code>  </li> <li>  <code>"quicksight:DeleteThemeAlias"</code>  </li> <li>  <code>"quicksight:UpdateThemeAlias"</code>  </li> <li>  <code>"quicksight:UpdateThemePermissions"</code>  </li> <li>  <code>"quicksight:DescribeThemePermissions"</code>  </li> </ul> </li> <li> To specify no permissions, omit the permissions list. </li> </ul>

        :param self:
        :param RevokePermissions:  A list of resource permissions to be revoked from the theme.<br/>GrantPermissions:  A list of resource permissions to be granted for the theme.<br/>ThemeId:  The ID for the theme.<br/>AwsAccountId:  The ID of the AWS account that contains the theme.<br/>
        :return: Status:  The HTTP status of the request.<br/>RequestId:  The AWS request ID for this operation.<br/>Permissions:  The resulting list of resource permissions for the theme.<br/>ThemeArn:  The Amazon Resource Name (ARN) of the theme.<br/>ThemeId:  The ID for the theme.<br/>        """
        pass

    def update_user(self, Role: str, Email: str, Namespace: str, AwsAccountId: str, UserName: str, CustomPermissionsName: str=None, UnapplyCustomPermissions: Boolean=None, ExternalLoginFederationProviderType: str=None, CustomFederationProviderUrl: str=None, ExternalLoginId: str=None) -> UpdateUserResponse:
        r"""Updates an Amazon QuickSight user.

        :param self:
        :param ExternalLoginId:  The identity ID for a user in the external login provider.<br/>CustomFederationProviderUrl:  The URL of the custom OpenID Connect (OIDC) provider that provides identity to let a user federate into QuickSight with an associated AWS Identity and Access Management (IAM) role. This parameter should only be used when <code>ExternalLoginFederationProviderType</code> parameter is set to <code>CUSTOM_OIDC</code>.<br/>ExternalLoginFederationProviderType:  The type of supported external login provider that provides identity to let a user federate into QuickSight with an associated AWS Identity and Access Management (IAM) role. The type of supported external login provider can be one of the following. <ul> <li>  <code>COGNITO</code>: Amazon Cognito. The provider URL is cognito-identity.amazonaws.com. When choosing the <code>COGNITO</code> provider type, don’t use the "CustomFederationProviderUrl" parameter which is only needed when the external provider is custom. </li> <li>  <code>CUSTOM_OIDC</code>: Custom OpenID Connect (OIDC) provider. When choosing <code>CUSTOM_OIDC</code> type, use the <code>CustomFederationProviderUrl</code> parameter to provide the custom OIDC provider URL. </li> <li>  <code>NONE</code>: This clears all the previously saved external login information for a user. Use <code> <a>DescribeUser</a> </code> API to check the external login information. </li> </ul><br/>UnapplyCustomPermissions:  A flag that you use to indicate that you want to remove all custom permissions from this user. Using this parameter resets the user to the state it was in before a custom permissions profile was applied. This parameter defaults to NULL and it doesn't accept any other value.<br/>CustomPermissionsName:  (Enterprise edition only) The name of the custom permissions profile that you want to assign to this user. Customized permissions allows you to control a user's access by restricting access the following operations: <ul> <li> Create and update data sources </li> <li> Create and update datasets </li> <li> Create and update email reports </li> <li> Subscribe to email reports </li> </ul> A set of custom permissions includes any combination of these restrictions. Currently, you need to create the profile names for custom permission sets by using the QuickSight console. Then, you use the <code>RegisterUser</code> API operation to assign the named set of permissions to a QuickSight user.  QuickSight custom permissions are applied through IAM policies. Therefore, they override the permissions typically granted by assigning QuickSight users to one of the default security cohorts in QuickSight (admin, author, reader). This feature is available only to QuickSight Enterprise edition subscriptions that use SAML 2.0-Based Federation for Single Sign-On (SSO).<br/>Role:  The Amazon QuickSight role of the user. The role can be one of the following default security cohorts: <ul> <li>  <code>READER</code>: A user who has read-only access to dashboards. </li> <li>  <code>AUTHOR</code>: A user who can create data sources, datasets, analyses, and dashboards. </li> <li>  <code>ADMIN</code>: A user who is an author, who can also manage Amazon QuickSight settings. </li> </ul> The name of the QuickSight role is invisible to the user except for the console screens dealing with permissions.<br/>Email:  The email address of the user that you want to update.<br/>Namespace:  The namespace. Currently, you should set this to <code>default</code>.<br/>AwsAccountId:  The ID for the AWS account that the user is in. Currently, you use the ID for the AWS account that contains your Amazon QuickSight account.<br/>UserName:  The Amazon QuickSight user name that you want to update.<br/>
        :return: Status:  The HTTP status of the request.<br/>RequestId:  The AWS request ID for this operation.<br/>User:  The Amazon QuickSight user.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExternalLoginId</i> The identity ID for the user in the external login provider.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExternalLoginFederationProviderUrl</i> The URL of the external login provider.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExternalLoginFederationProviderType</i> The type of supported external login provider that provides identity to let the user federate into Amazon QuickSight with an associated IAM role. The type can be one of the following. <ul> <li>  <code>COGNITO</code>: Amazon Cognito. The provider URL is cognito-identity.amazonaws.com. </li> <li>  <code>CUSTOM_OIDC</code>: Custom OpenID Connect (OIDC) provider. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomPermissionsName</i> The custom permissions profile associated with this user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PrincipalId</i> The principal ID of the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Active</i> The active status of user. When you create an Amazon QuickSight user that’s not an IAM user or an Active Directory user, that user is inactive until they sign in and provide a password.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IdentityType</i> The type of identity authentication used by the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Role</i> The Amazon QuickSight role for the user. The user role can be one of the following:. <ul> <li>  <code>READER</code>: A user who has read-only access to dashboards. </li> <li>  <code>AUTHOR</code>: A user who can create data sources, datasets, analyses, and dashboards. </li> <li>  <code>ADMIN</code>: A user who is an author, who can also manage Amazon QuickSight settings. </li> <li>  <code>RESTRICTED_READER</code>: This role isn't currently available for use. </li> <li>  <code>RESTRICTED_AUTHOR</code>: This role isn't currently available for use. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Email</i> The user's email address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserName</i> The user's user name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) for the user.<br/>        """
        pass





class RAM(BaseClient):
    r"""Use AWS Resource Access Manager to share AWS resources between AWS accounts. To share a resource, you create a resource share, associate the resource with the resource share, and specify the principals that can access the resources associated with the resource share. The following principals are supported: AWS accounts, organizational units (OU) from AWS Organizations, and organizations from AWS Organizations. For more information, see the <a href="https://docs.aws.amazon.com/ram/latest/userguide/">AWS Resource Access Manager User Guide</a>."""


    class GetResourcePoliciesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_resource_policies` for valid parameters"""
            pass
    class GetResourceShareAssociationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_resource_share_associations` for valid parameters"""
            pass
    class GetResourceShareInvitationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_resource_share_invitations` for valid parameters"""
            pass
    class GetResourceSharesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_resource_shares` for valid parameters"""
            pass
    class ListPrincipalsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_principals` for valid parameters"""
            pass
    class ListResourcesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_resources` for valid parameters"""
            pass


    class AcceptResourceShareInvitationRequest(Mapping):
        pass
    
    class AcceptResourceShareInvitationResponse(Mapping):
        pass
    
    class AssociateResourceShareRequest(Mapping):
        pass
    
    class AssociateResourceShareResponse(Mapping):
        pass
    
    class String(object):
        pass
    
    class AssociateResourceSharePermissionRequest(Mapping):
        pass
    
    class AssociateResourceSharePermissionResponse(Mapping):
        pass
    
    class Boolean(object):
        pass
    
    class CreateResourceShareRequest(Mapping):
        pass
    
    class CreateResourceShareResponse(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class DeleteResourceShareRequest(Mapping):
        pass
    
    class DeleteResourceShareResponse(Mapping):
        pass
    
    class DisassociateResourceShareRequest(Mapping):
        pass
    
    class DisassociateResourceShareResponse(Mapping):
        pass
    
    class DisassociateResourceSharePermissionRequest(Mapping):
        pass
    
    class DisassociateResourceSharePermissionResponse(Mapping):
        pass
    
    class EnableSharingWithAwsOrganizationRequest(Mapping):
        pass
    
    class EnableSharingWithAwsOrganizationResponse(Mapping):
        pass
    
    class GetPermissionRequest(Mapping):
        pass
    
    class GetPermissionResponse(Mapping):
        pass
    
    class GetResourcePoliciesRequest(Mapping):
        pass
    
    class GetResourcePoliciesResponse(Mapping):
        pass
    
    class GetResourceShareAssociationsRequest(Mapping):
        pass
    
    class GetResourceShareAssociationsResponse(Mapping):
        pass
    
    class GetResourceShareInvitationsRequest(Mapping):
        pass
    
    class GetResourceShareInvitationsResponse(Mapping):
        pass
    
    class GetResourceSharesRequest(Mapping):
        pass
    
    class GetResourceSharesResponse(Mapping):
        pass
    
    class TagFilter(Mapping):
        pass
    
    class ListPendingInvitationResourcesRequest(Mapping):
        pass
    
    class ListPendingInvitationResourcesResponse(Mapping):
        pass
    
    class ListPermissionsRequest(Mapping):
        pass
    
    class ListPermissionsResponse(Mapping):
        pass
    
    class ListPrincipalsRequest(Mapping):
        pass
    
    class ListPrincipalsResponse(Mapping):
        pass
    
    class ListResourceSharePermissionsRequest(Mapping):
        pass
    
    class ListResourceSharePermissionsResponse(Mapping):
        pass
    
    class ListResourceTypesRequest(Mapping):
        pass
    
    class ListResourceTypesResponse(Mapping):
        pass
    
    class ListResourcesRequest(Mapping):
        pass
    
    class ListResourcesResponse(Mapping):
        pass
    
    class PromoteResourceShareCreatedFromPolicyRequest(Mapping):
        pass
    
    class PromoteResourceShareCreatedFromPolicyResponse(Mapping):
        pass
    
    class RejectResourceShareInvitationRequest(Mapping):
        pass
    
    class RejectResourceShareInvitationResponse(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateResourceShareRequest(Mapping):
        pass
    
    class UpdateResourceShareResponse(Mapping):
        pass
    
    def accept_resource_share_invitation(self, resourceShareInvitationArn: str, clientToken: str=None) -> AcceptResourceShareInvitationResponse:
        r"""Accepts an invitation to a resource share from another AWS account.

        :param self:
        :param clientToken:  A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.<br/>resourceShareInvitationArn:  The Amazon Resource Name (ARN) of the invitation.<br/>
        :return: clientToken:  A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.<br/>resourceShareInvitation:  Information about the invitation.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>receiverArn</i> The Amazon Resource Name (ARN) of the IAM user or IAM role that received the invitation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceShareAssociations</i> To view the resources associated with a pending resource share invitation, use <a href="https://docs.aws.amazon.com/ram/latest/APIReference/API_ListPendingInvitationResources.html"> ListPendingInvitationResources</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the invitation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>invitationTimestamp</i> The date and time when the invitation was sent.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>receiverAccountId</i> The ID of the AWS account that received the invitation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>senderAccountId</i> The ID of the AWS account that sent the invitation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceShareArn</i> The Amazon Resource Name (ARN) of the resource share.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceShareName</i> The name of the resource share.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceShareInvitationArn</i> The Amazon Resource Name (ARN) of the invitation.<br/>        """
        pass

    def associate_resource_share(self, resourceShareArn: str, resourceArns: List[String]=None, principals: List[String]=None, clientToken: str=None) -> AssociateResourceShareResponse:
        r"""Associates the specified resource share with the specified principals and resources.

        :param self:
        :param clientToken:  A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.<br/>principals:  The principals to associate with the resource share. The possible values are IDs of AWS accounts, and the ARNs of organizational units (OU) or organizations from AWS Organizations.<br/>resourceArns:  The Amazon Resource Names (ARN) of the resources.<br/>resourceShareArn:  The Amazon Resource Name (ARN) of the resource share.<br/>
        :return: clientToken:  A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.<br/>resourceShareAssociations:  Information about the associations.<br/>        """
        pass

    def associate_resource_share_permission(self, permissionArn: str, resourceShareArn: str, replace: Boolean=None, clientToken: str=None, permissionVersion: int=None) -> AssociateResourceSharePermissionResponse:
        r"""Associates a permission with a resource share.

        :param self:
        :param permissionVersion:  The version of the AWS RAM permissions to associate with the resource share.<br/>clientToken:  A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.<br/>replace:  Indicates whether the permission should replace the permissions that are currently associated with the resource share. Use <code>true</code> to replace the current permissions. Use <code>false</code> to add the permission to the current permission.<br/>permissionArn:  The Amazon Resource Name (ARN) of the AWS RAM permissions to associate with the resource share.<br/>resourceShareArn:  The Amazon Resource Name (ARN) of the resource share.<br/>
        :return: clientToken:  A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.<br/>returnValue:  Indicates whether the request succeeded.<br/>        """
        pass

    def create_resource_share(self, name: str, resourceArns: List[String]=None, principals: List[String]=None, tags: List[Tag]=None, allowExternalPrincipals: Boolean=None, clientToken: str=None, permissionArns: List[String]=None) -> CreateResourceShareResponse:
        r"""Creates a resource share.

        :param self:
        :param permissionArns:  The ARNs of the permissions to associate with the resource share. If you do not specify an ARN for the permission, AWS RAM automatically attaches the default version of the permission for each resource type.<br/>clientToken:  A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.<br/>allowExternalPrincipals:  Indicates whether principals outside your AWS organization can be associated with a resource share.<br/>tags:  One or more tags.<br/>principals:  The principals to associate with the resource share. The possible values are IDs of AWS accounts, the ARN of an OU or organization from AWS Organizations.<br/>resourceArns:  The Amazon Resource Names (ARN) of the resources to associate with the resource share.<br/>name:  The name of the resource share.<br/>
        :return: clientToken:  A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.<br/>resourceShare:  Information about the resource share.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>featureSet</i> Indicates how the resource share was created. Possible values include: <ul> <li>  <code>CREATED_FROM_POLICY</code> - Indicates that the resource share was created from an AWS Identity and Access Management (AWS IAM) policy attached to a resource. These resource shares are visible only to the AWS account that created it. They cannot be modified in AWS RAM. </li> <li>  <code>PROMOTING_TO_STANDARD</code> - The resource share is in the process of being promoted. For more information, see <a>PromoteResourceShareCreatedFromPolicy</a>. </li> <li>  <code>STANDARD</code> - Indicates that the resource share was created in AWS RAM using the console or APIs. These resource shares are visible to all principals. They can be modified in AWS RAM. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedTime</i> The time when the resource share was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationTime</i> The time when the resource share was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The tags for the resource share.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusMessage</i> A message about the status of the resource share.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the resource share.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>allowExternalPrincipals</i> Indicates whether principals outside your AWS organization can be associated with a resource share.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>owningAccountId</i> The ID of the AWS account that owns the resource share.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the resource share.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceShareArn</i> The Amazon Resource Name (ARN) of the resource share.<br/>        """
        pass

    def delete_resource_share(self, resourceShareArn: str, clientToken: str=None) -> DeleteResourceShareResponse:
        r"""Deletes the specified resource share.

        :param self:
        :param clientToken:  A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.<br/>resourceShareArn:  The Amazon Resource Name (ARN) of the resource share.<br/>
        :return: clientToken:  A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.<br/>returnValue:  Indicates whether the request succeeded.<br/>        """
        pass

    def disassociate_resource_share(self, resourceShareArn: str, resourceArns: List[String]=None, principals: List[String]=None, clientToken: str=None) -> DisassociateResourceShareResponse:
        r"""Disassociates the specified principals or resources from the specified resource share.

        :param self:
        :param clientToken:  A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.<br/>principals:  The principals.<br/>resourceArns:  The Amazon Resource Names (ARNs) of the resources.<br/>resourceShareArn:  The Amazon Resource Name (ARN) of the resource share.<br/>
        :return: clientToken:  A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.<br/>resourceShareAssociations:  Information about the associations.<br/>        """
        pass

    def disassociate_resource_share_permission(self, permissionArn: str, resourceShareArn: str, clientToken: str=None) -> DisassociateResourceSharePermissionResponse:
        r"""Disassociates an AWS RAM permission from a resource share.

        :param self:
        :param clientToken:  A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.<br/>permissionArn:  The ARN of the permission to disassociate from the resource share.<br/>resourceShareArn:  The Amazon Resource Name (ARN) of the resource share.<br/>
        :return: clientToken:  A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.<br/>returnValue:  Indicates whether the request succeeded.<br/>        """
        pass

    def enable_sharing_with_aws_organization(self) -> EnableSharingWithAwsOrganizationResponse:
        r"""Enables resource sharing within your AWS Organization. The caller must be the master account for the AWS Organization.

        :param self:
        :param 
        :return: returnValue:  Indicates whether the request succeeded.<br/>        """
        pass

    def get_permission(self, permissionArn: str, permissionVersion: int=None) -> GetPermissionResponse:
        r"""Gets the contents of an AWS RAM permission in JSON format.

        :param self:
        :param permissionVersion:  The identifier for the version of the permission.<br/>permissionArn:  The ARN of the permission.<br/>
        :return: permission:  Information about the permission.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>isResourceTypeDefault</i> Specifies whether the version of the permission is set to the default version for this resource type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedTime</i> The date and time when the permission was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationTime</i> The date and time when the permission was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>permission</i> The permission's effect and actions in JSON format. The <code>effect</code> indicates whether the actions are allowed or denied. The <code>actions</code> list the API actions to which the principal is granted or denied access.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceType</i> The resource type to which the permission applies.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the permission.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>defaultVersion</i> Specifies whether the version of the permission is set to the default version for this permission.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The identifier for the version of the permission.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The ARN of the permission.<br/>        """
        pass

    def get_resource_policies(self, resourceArns: List[String], principal: str=None, nextToken: str=None, maxResults: int=None) -> GetResourcePoliciesResponse:
        r"""Gets the policies for the specified resources that you own and have shared.

        :param self:
        :param maxResults:  The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.<br/>nextToken:  The token for the next page of results.<br/>principal:  The principal.<br/>resourceArns:  The Amazon Resource Names (ARN) of the resources.<br/>
        :return: nextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>policies:  A key policy document, in JSON format.<br/>        """
        pass

    def get_resource_share_associations(self, associationType: str, resourceShareArns: List[String]=None, resourceArn: str=None, principal: str=None, associationStatus: str=None, nextToken: str=None, maxResults: int=None) -> GetResourceShareAssociationsResponse:
        r"""Gets the resources or principals for the resource shares that you own.

        :param self:
        :param maxResults:  The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.<br/>nextToken:  The token for the next page of results.<br/>associationStatus:  The association status.<br/>principal:  The principal. You cannot specify this parameter if the association type is <code>RESOURCE</code>.<br/>resourceArn:  The Amazon Resource Name (ARN) of the resource. You cannot specify this parameter if the association type is <code>PRINCIPAL</code>.<br/>resourceShareArns:  The Amazon Resource Names (ARN) of the resource shares.<br/>associationType:  The association type. Specify <code>PRINCIPAL</code> to list the principals that are associated with the specified resource share. Specify <code>RESOURCE</code> to list the resources that are associated with the specified resource share.<br/>
        :return: nextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>resourceShareAssociations:  Information about the associations.<br/>        """
        pass

    def get_resource_share_invitations(self, resourceShareInvitationArns: List[String]=None, resourceShareArns: List[String]=None, nextToken: str=None, maxResults: int=None) -> GetResourceShareInvitationsResponse:
        r"""Gets the invitations that you have received for resource shares.

        :param self:
        :param maxResults:  The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.<br/>nextToken:  The token for the next page of results.<br/>resourceShareArns:  The Amazon Resource Names (ARN) of the resource shares.<br/>resourceShareInvitationArns:  The Amazon Resource Names (ARN) of the invitations.<br/>
        :return: nextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>resourceShareInvitations:  Information about the invitations.<br/>        """
        pass

    def get_resource_shares(self, resourceOwner: str, resourceShareArns: List[String]=None, resourceShareStatus: str=None, name: str=None, tagFilters: List[TagFilter]=None, nextToken: str=None, maxResults: int=None, permissionArn: str=None) -> GetResourceSharesResponse:
        r"""Gets the resource shares that you own or the resource shares that are shared with you.

        :param self:
        :param permissionArn:  The Amazon Resource Name (ARN) of the AWS RAM permission that is associated with the resource share.<br/>maxResults:  The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.<br/>nextToken:  The token for the next page of results.<br/>tagFilters:  One or more tag filters.<br/>name:  The name of the resource share.<br/>resourceOwner:  The type of owner.<br/>resourceShareStatus:  The status of the resource share.<br/>resourceShareArns:  The ARNs of the resource shares.<br/>
        :return: nextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>resourceShares:  Information about the resource shares.<br/>        """
        pass

    def list_pending_invitation_resources(self, resourceShareInvitationArn: str, nextToken: str=None, maxResults: int=None) -> ListPendingInvitationResourcesResponse:
        r"""Lists the resources in a resource share that is shared with you but that the invitation is still pending for.

        :param self:
        :param maxResults:  The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.<br/>nextToken:  The token for the next page of results.<br/>resourceShareInvitationArn:  The Amazon Resource Name (ARN) of the invitation.<br/>
        :return: nextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>resources:  Information about the resources included the resource share.<br/>        """
        pass

    def list_permissions(self, resourceType: str=None, nextToken: str=None, maxResults: int=None) -> ListPermissionsResponse:
        r"""Lists the AWS RAM permissions.

        :param self:
        :param maxResults:  The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.<br/>nextToken:  The token for the next page of results.<br/>resourceType:  Specifies the resource type for which to list permissions. For example, to list only permissions that apply to EC2 subnets, specify <code>ec2:Subnet</code>.<br/>
        :return: nextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>permissions:  Information about the permissions.<br/>        """
        pass

    def list_principals(self, resourceOwner: str, resourceArn: str=None, principals: List[String]=None, resourceType: str=None, resourceShareArns: List[String]=None, nextToken: str=None, maxResults: int=None) -> ListPrincipalsResponse:
        r"""Lists the principals that you have shared resources with or that have shared resources with you.

        :param self:
        :param maxResults:  The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.<br/>nextToken:  The token for the next page of results.<br/>resourceShareArns:  The Amazon Resource Names (ARN) of the resource shares.<br/>resourceType:  The resource type. Valid values: <code>acm-pca:CertificateAuthority</code> | <code>appmesh:Mesh</code> | <code>codebuild:Project</code> | <code>codebuild:ReportGroup</code> | <code>ec2:CapacityReservation</code> | <code>ec2:DedicatedHost</code> | <code>ec2:LocalGatewayRouteTable</code> | <code>ec2:PrefixList</code> | <code>ec2:Subnet</code> | <code>ec2:TrafficMirrorTarget</code> | <code>ec2:TransitGateway</code> | <code>imagebuilder:Component</code> | <code>imagebuilder:Image</code> | <code>imagebuilder:ImageRecipe</code> | <code>imagebuilder:ContainerRecipe</code> | <code>glue:Catalog</code> | <code>glue:Database</code> | <code>glue:Table</code> | <code>license-manager:LicenseConfiguration</code> I <code>network-firewall:FirewallPolicy</code> | <code>network-firewall:StatefulRuleGroup</code> | <code>network-firewall:StatelessRuleGroup</code> | <code>outposts:Outpost</code> | <code>resource-groups:Group</code> | <code>rds:Cluster</code> | <code>route53resolver:ResolverQueryLogConfig</code> | <code>route53resolver:ResolverRule</code> <br/>principals:  The principals.<br/>resourceArn:  The Amazon Resource Name (ARN) of the resource.<br/>resourceOwner:  The type of owner.<br/>
        :return: nextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>principals:  The principals.<br/>        """
        pass

    def list_resource_share_permissions(self, resourceShareArn: str, nextToken: str=None, maxResults: int=None) -> ListResourceSharePermissionsResponse:
        r"""Lists the AWS RAM permissions that are associated with a resource share.

        :param self:
        :param maxResults:  The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.<br/>nextToken:  The token for the next page of results.<br/>resourceShareArn:  The Amazon Resource Name (ARN) of the resource share.<br/>
        :return: nextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>permissions:  The permissions associated with the resource share.<br/>        """
        pass

    def list_resource_types(self, nextToken: str=None, maxResults: int=None) -> ListResourceTypesResponse:
        r"""Lists the shareable resource types supported by AWS RAM.

        :param self:
        :param maxResults:  The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.<br/>nextToken:  The token for the next page of results.<br/>
        :return: nextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>resourceTypes:  The shareable resource types supported by AWS RAM.<br/>        """
        pass

    def list_resources(self, resourceOwner: str, principal: str=None, resourceType: str=None, resourceArns: List[String]=None, resourceShareArns: List[String]=None, nextToken: str=None, maxResults: int=None) -> ListResourcesResponse:
        r"""Lists the resources that you added to a resource shares or the resources that are shared with you.

        :param self:
        :param maxResults:  The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.<br/>nextToken:  The token for the next page of results.<br/>resourceShareArns:  The Amazon Resource Names (ARN) of the resource shares.<br/>resourceArns:  The Amazon Resource Names (ARN) of the resources.<br/>resourceType:  The resource type. Valid values: <code>acm-pca:CertificateAuthority</code> | <code>appmesh:Mesh</code> | <code>codebuild:Project</code> | <code>codebuild:ReportGroup</code> | <code>ec2:CapacityReservation</code> | <code>ec2:DedicatedHost</code> | <code>ec2:LocalGatewayRouteTable</code> | <code>ec2:PrefixList</code> | <code>ec2:Subnet</code> | <code>ec2:TrafficMirrorTarget</code> | <code>ec2:TransitGateway</code> | <code>imagebuilder:Component</code> | <code>imagebuilder:Image</code> | <code>imagebuilder:ImageRecipe</code> | <code>imagebuilder:ContainerRecipe</code> | <code>glue:Catalog</code> | <code>glue:Database</code> | <code>glue:Table</code> | <code>license-manager:LicenseConfiguration</code> I <code>network-firewall:FirewallPolicy</code> | <code>network-firewall:StatefulRuleGroup</code> | <code>network-firewall:StatelessRuleGroup</code> | <code>outposts:Outpost</code> | <code>resource-groups:Group</code> | <code>rds:Cluster</code> | <code>route53resolver:ResolverQueryLogConfig</code> | <code>route53resolver:ResolverRule</code> <br/>principal:  The principal.<br/>resourceOwner:  The type of owner.<br/>
        :return: nextToken:  The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.<br/>resources:  Information about the resources.<br/>        """
        pass

    def promote_resource_share_created_from_policy(self, resourceShareArn: str) -> PromoteResourceShareCreatedFromPolicyResponse:
        r"""Resource shares that were created by attaching a policy to a resource are visible only to the resource share owner, and the resource share cannot be modified in AWS RAM. Use this API action to promote the resource share. When you promote the resource share, it becomes: <ul> <li> Visible to all principals that it is shared with. </li> <li> Modifiable in AWS RAM. </li> </ul>

        :param self:
        :param resourceShareArn:  The ARN of the resource share to promote.<br/>
        :return: returnValue:  Indicates whether the request succeeded.<br/>        """
        pass

    def reject_resource_share_invitation(self, resourceShareInvitationArn: str, clientToken: str=None) -> RejectResourceShareInvitationResponse:
        r"""Rejects an invitation to a resource share from another AWS account.

        :param self:
        :param clientToken:  A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.<br/>resourceShareInvitationArn:  The Amazon Resource Name (ARN) of the invitation.<br/>
        :return: clientToken:  A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.<br/>resourceShareInvitation:  Information about the invitation.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>receiverArn</i> The Amazon Resource Name (ARN) of the IAM user or IAM role that received the invitation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceShareAssociations</i> To view the resources associated with a pending resource share invitation, use <a href="https://docs.aws.amazon.com/ram/latest/APIReference/API_ListPendingInvitationResources.html"> ListPendingInvitationResources</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the invitation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>invitationTimestamp</i> The date and time when the invitation was sent.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>receiverAccountId</i> The ID of the AWS account that received the invitation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>senderAccountId</i> The ID of the AWS account that sent the invitation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceShareArn</i> The Amazon Resource Name (ARN) of the resource share.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceShareName</i> The name of the resource share.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceShareInvitationArn</i> The Amazon Resource Name (ARN) of the invitation.<br/>        """
        pass

    def tag_resource(self, tags: List[Tag], resourceShareArn: str) -> TagResourceResponse:
        r"""Adds the specified tags to the specified resource share that you own.

        :param self:
        :param tags:  One or more tags.<br/>resourceShareArn:  The Amazon Resource Name (ARN) of the resource share.<br/>
        :return:         """
        pass

    def untag_resource(self, tagKeys: List[TagKey], resourceShareArn: str) -> UntagResourceResponse:
        r"""Removes the specified tags from the specified resource share that you own.

        :param self:
        :param tagKeys:  The tag keys of the tags to remove.<br/>resourceShareArn:  The Amazon Resource Name (ARN) of the resource share.<br/>
        :return:         """
        pass

    def update_resource_share(self, resourceShareArn: str, name: str=None, allowExternalPrincipals: Boolean=None, clientToken: str=None) -> UpdateResourceShareResponse:
        r"""Updates the specified resource share that you own.

        :param self:
        :param clientToken:  A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.<br/>allowExternalPrincipals:  Indicates whether principals outside your AWS organization can be associated with a resource share.<br/>name:  The name of the resource share.<br/>resourceShareArn:  The Amazon Resource Name (ARN) of the resource share.<br/>
        :return: clientToken:  A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.<br/>resourceShare:  Information about the resource share.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>featureSet</i> Indicates how the resource share was created. Possible values include: <ul> <li>  <code>CREATED_FROM_POLICY</code> - Indicates that the resource share was created from an AWS Identity and Access Management (AWS IAM) policy attached to a resource. These resource shares are visible only to the AWS account that created it. They cannot be modified in AWS RAM. </li> <li>  <code>PROMOTING_TO_STANDARD</code> - The resource share is in the process of being promoted. For more information, see <a>PromoteResourceShareCreatedFromPolicy</a>. </li> <li>  <code>STANDARD</code> - Indicates that the resource share was created in AWS RAM using the console or APIs. These resource shares are visible to all principals. They can be modified in AWS RAM. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdatedTime</i> The time when the resource share was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationTime</i> The time when the resource share was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> The tags for the resource share.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusMessage</i> A message about the status of the resource share.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the resource share.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>allowExternalPrincipals</i> Indicates whether principals outside your AWS organization can be associated with a resource share.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>owningAccountId</i> The ID of the AWS account that owns the resource share.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the resource share.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceShareArn</i> The Amazon Resource Name (ARN) of the resource share.<br/>        """
        pass





class RDS(BaseClient):
    r"""<fullname>Amazon Relational Database Service</fullname>   Amazon Relational Database Service (Amazon RDS) is a web service that makes it easier to set up, operate, and scale a relational database in the cloud. It provides cost-efficient, resizeable capacity for an industry-standard relational database and manages common database administration tasks, freeing up developers to focus on what makes their applications and businesses unique. Amazon RDS gives you access to the capabilities of a MySQL, MariaDB, PostgreSQL, Microsoft SQL Server, Oracle, or Amazon Aurora database server. These capabilities mean that the code, applications, and tools you already use today with your existing databases work with Amazon RDS without modification. Amazon RDS automatically backs up your database and maintains the database software that powers your DB instance. Amazon RDS is flexible: you can scale your DB instance's compute resources and storage capacity to meet your application's demand. As with all Amazon Web Services, there are no up-front investments, and you pay only for the resources you use. This interface reference for Amazon RDS contains documentation for a programming or command line interface you can use to manage Amazon RDS. Amazon RDS is asynchronous, which means that some interfaces might require techniques such as polling or callback functions to determine when a command has been applied. In this reference, the parameter descriptions indicate whether a command is applied immediately, on the next instance reboot, or during the maintenance window. The reference structure is as follows, and we list following some related topics from the user guide.  <b>Amazon RDS API Reference</b>  <ul> <li> For the alphabetical list of API actions, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_Operations.html">API Actions</a>. </li> <li> For the alphabetical list of data types, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_Types.html">Data Types</a>. </li> <li> For a list of common query parameters, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/CommonParameters.html">Common Parameters</a>. </li> <li> For descriptions of the error codes, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/CommonErrors.html">Common Errors</a>. </li> </ul>  <b>Amazon RDS User Guide</b>  <ul> <li> For a summary of the Amazon RDS interfaces, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html#Welcome.Interfaces">Available RDS Interfaces</a>. </li> <li> For more information about how to use the Query API, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Using_the_Query_API.html">Using the Query API</a>. </li> </ul>"""

    class DBClusterSnapshotAvailableWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_db_cluster_snapshots` for valid parameters"""
            pass
    class DBClusterSnapshotDeletedWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_db_cluster_snapshots` for valid parameters"""
            pass
    class DBInstanceAvailableWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_db_instances` for valid parameters"""
            pass
    class DBInstanceDeletedWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_db_instances` for valid parameters"""
            pass
    class DBSnapshotAvailableWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_db_snapshots` for valid parameters"""
            pass
    class DBSnapshotCompletedWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_db_snapshots` for valid parameters"""
            pass
    class DBSnapshotDeletedWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_db_snapshots` for valid parameters"""
            pass


    class DescribeCertificatesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_certificates` for valid parameters"""
            pass
    class DescribeDBClusterBacktracksPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_db_cluster_backtracks` for valid parameters"""
            pass
    class DescribeDBClusterParameterGroupsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_db_cluster_parameter_groups` for valid parameters"""
            pass
    class DescribeDBClusterParametersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_db_cluster_parameters` for valid parameters"""
            pass
    class DescribeDBClusterSnapshotsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_db_cluster_snapshots` for valid parameters"""
            pass
    class DescribeDBClustersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_db_clusters` for valid parameters"""
            pass
    class DescribeDBEngineVersionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_db_engine_versions` for valid parameters"""
            pass
    class DescribeDBInstanceAutomatedBackupsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_db_instance_automated_backups` for valid parameters"""
            pass
    class DescribeDBInstancesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_db_instances` for valid parameters"""
            pass
    class DescribeDBLogFilesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_db_log_files` for valid parameters"""
            pass
    class DescribeDBParameterGroupsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_db_parameter_groups` for valid parameters"""
            pass
    class DescribeDBParametersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_db_parameters` for valid parameters"""
            pass
    class DescribeDBSecurityGroupsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_db_security_groups` for valid parameters"""
            pass
    class DescribeDBSnapshotsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_db_snapshots` for valid parameters"""
            pass
    class DescribeDBSubnetGroupsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_db_subnet_groups` for valid parameters"""
            pass
    class DescribeEngineDefaultClusterParametersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_engine_default_cluster_parameters` for valid parameters"""
            pass
    class DescribeEngineDefaultParametersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_engine_default_parameters` for valid parameters"""
            pass
    class DescribeEventSubscriptionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_event_subscriptions` for valid parameters"""
            pass
    class DescribeEventsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_events` for valid parameters"""
            pass
    class DescribeGlobalClustersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_global_clusters` for valid parameters"""
            pass
    class DescribeOptionGroupOptionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_option_group_options` for valid parameters"""
            pass
    class DescribeOptionGroupsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_option_groups` for valid parameters"""
            pass
    class DescribeOrderableDBInstanceOptionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_orderable_db_instance_options` for valid parameters"""
            pass
    class DescribePendingMaintenanceActionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_pending_maintenance_actions` for valid parameters"""
            pass
    class DescribeReservedDBInstancesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_reserved_db_instances` for valid parameters"""
            pass
    class DescribeReservedDBInstancesOfferingsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_reserved_db_instances_offerings` for valid parameters"""
            pass
    class DescribeSourceRegionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_source_regions` for valid parameters"""
            pass
    class DownloadDBLogFilePortionPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `download_db_log_file_portion` for valid parameters"""
            pass
    class DescribeDBClusterEndpointsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_db_cluster_endpoints` for valid parameters"""
            pass
    class DescribeCustomAvailabilityZonesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_custom_availability_zones` for valid parameters"""
            pass
    class DescribeInstallationMediaPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_installation_media` for valid parameters"""
            pass
    class DescribeDBProxiesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_db_proxies` for valid parameters"""
            pass
    class DescribeDBProxyTargetGroupsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_db_proxy_target_groups` for valid parameters"""
            pass
    class DescribeDBProxyTargetsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_db_proxy_targets` for valid parameters"""
            pass
    class DescribeExportTasksPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_export_tasks` for valid parameters"""
            pass
    class DescribeDBProxyEndpointsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_db_proxy_endpoints` for valid parameters"""
            pass


    class AddRoleToDBClusterMessage(Mapping):
        pass
    
    class AddRoleToDBInstanceMessage(Mapping):
        pass
    
    class AddSourceIdentifierToSubscriptionMessage(Mapping):
        pass
    
    class AddSourceIdentifierToSubscriptionResult(Mapping):
        pass
    
    class AddTagsToResourceMessage(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class ApplyPendingMaintenanceActionMessage(Mapping):
        pass
    
    class ApplyPendingMaintenanceActionResult(Mapping):
        pass
    
    class AuthorizeDBSecurityGroupIngressMessage(Mapping):
        pass
    
    class AuthorizeDBSecurityGroupIngressResult(Mapping):
        pass
    
    class BacktrackDBClusterMessage(Mapping):
        pass
    
    class DBClusterBacktrack(Mapping):
        pass
    
    class TStamp(object):
        pass
    
    class BooleanOptional(object):
        pass
    
    class CancelExportTaskMessage(Mapping):
        pass
    
    class ExportTask(Mapping):
        pass
    
    class CopyDBClusterParameterGroupMessage(Mapping):
        pass
    
    class CopyDBClusterParameterGroupResult(Mapping):
        pass
    
    class CopyDBClusterSnapshotMessage(Mapping):
        pass
    
    class CopyDBClusterSnapshotResult(Mapping):
        pass
    
    class CopyDBParameterGroupMessage(Mapping):
        pass
    
    class CopyDBParameterGroupResult(Mapping):
        pass
    
    class CopyDBSnapshotMessage(Mapping):
        pass
    
    class CopyDBSnapshotResult(Mapping):
        pass
    
    class CopyOptionGroupMessage(Mapping):
        pass
    
    class CopyOptionGroupResult(Mapping):
        pass
    
    class CreateCustomAvailabilityZoneMessage(Mapping):
        pass
    
    class CreateCustomAvailabilityZoneResult(Mapping):
        pass
    
    class CreateDBClusterMessage(Mapping):
        pass
    
    class CreateDBClusterResult(Mapping):
        pass
    
    class String(object):
        pass
    
    class LongOptional(object):
        pass
    
    class ScalingConfiguration(Mapping):
        pass
    
    class CreateDBClusterEndpointMessage(Mapping):
        pass
    
    class DBClusterEndpoint(Mapping):
        pass
    
    class CreateDBClusterParameterGroupMessage(Mapping):
        pass
    
    class CreateDBClusterParameterGroupResult(Mapping):
        pass
    
    class CreateDBClusterSnapshotMessage(Mapping):
        pass
    
    class CreateDBClusterSnapshotResult(Mapping):
        pass
    
    class CreateDBInstanceMessage(Mapping):
        pass
    
    class CreateDBInstanceResult(Mapping):
        pass
    
    class ProcessorFeature(Mapping):
        pass
    
    class CreateDBInstanceReadReplicaMessage(Mapping):
        pass
    
    class CreateDBInstanceReadReplicaResult(Mapping):
        pass
    
    class CreateDBParameterGroupMessage(Mapping):
        pass
    
    class CreateDBParameterGroupResult(Mapping):
        pass
    
    class CreateDBProxyRequest(Mapping):
        pass
    
    class CreateDBProxyResponse(Mapping):
        pass
    
    class UserAuthConfig(Mapping):
        pass
    
    class Boolean(object):
        pass
    
    class CreateDBProxyEndpointRequest(Mapping):
        pass
    
    class CreateDBProxyEndpointResponse(Mapping):
        pass
    
    class CreateDBSecurityGroupMessage(Mapping):
        pass
    
    class CreateDBSecurityGroupResult(Mapping):
        pass
    
    class CreateDBSnapshotMessage(Mapping):
        pass
    
    class CreateDBSnapshotResult(Mapping):
        pass
    
    class CreateDBSubnetGroupMessage(Mapping):
        pass
    
    class CreateDBSubnetGroupResult(Mapping):
        pass
    
    class CreateEventSubscriptionMessage(Mapping):
        pass
    
    class CreateEventSubscriptionResult(Mapping):
        pass
    
    class CreateGlobalClusterMessage(Mapping):
        pass
    
    class CreateGlobalClusterResult(Mapping):
        pass
    
    class CreateOptionGroupMessage(Mapping):
        pass
    
    class CreateOptionGroupResult(Mapping):
        pass
    
    class DeleteCustomAvailabilityZoneMessage(Mapping):
        pass
    
    class DeleteCustomAvailabilityZoneResult(Mapping):
        pass
    
    class DeleteDBClusterMessage(Mapping):
        pass
    
    class DeleteDBClusterResult(Mapping):
        pass
    
    class DeleteDBClusterEndpointMessage(Mapping):
        pass
    
    class DeleteDBClusterParameterGroupMessage(Mapping):
        pass
    
    class DeleteDBClusterSnapshotMessage(Mapping):
        pass
    
    class DeleteDBClusterSnapshotResult(Mapping):
        pass
    
    class DeleteDBInstanceMessage(Mapping):
        pass
    
    class DeleteDBInstanceResult(Mapping):
        pass
    
    class DeleteDBInstanceAutomatedBackupMessage(Mapping):
        pass
    
    class DeleteDBInstanceAutomatedBackupResult(Mapping):
        pass
    
    class DeleteDBParameterGroupMessage(Mapping):
        pass
    
    class DeleteDBProxyRequest(Mapping):
        pass
    
    class DeleteDBProxyResponse(Mapping):
        pass
    
    class DeleteDBProxyEndpointRequest(Mapping):
        pass
    
    class DeleteDBProxyEndpointResponse(Mapping):
        pass
    
    class DeleteDBSecurityGroupMessage(Mapping):
        pass
    
    class DeleteDBSnapshotMessage(Mapping):
        pass
    
    class DeleteDBSnapshotResult(Mapping):
        pass
    
    class DeleteDBSubnetGroupMessage(Mapping):
        pass
    
    class DeleteEventSubscriptionMessage(Mapping):
        pass
    
    class DeleteEventSubscriptionResult(Mapping):
        pass
    
    class DeleteGlobalClusterMessage(Mapping):
        pass
    
    class DeleteGlobalClusterResult(Mapping):
        pass
    
    class DeleteInstallationMediaMessage(Mapping):
        pass
    
    class InstallationMedia(Mapping):
        pass
    
    class DeleteOptionGroupMessage(Mapping):
        pass
    
    class DeregisterDBProxyTargetsRequest(Mapping):
        pass
    
    class DeregisterDBProxyTargetsResponse(Mapping):
        pass
    
    class DescribeAccountAttributesMessage(Mapping):
        pass
    
    class AccountAttributesMessage(Mapping):
        pass
    
    class DescribeCertificatesMessage(Mapping):
        pass
    
    class CertificateMessage(Mapping):
        pass
    
    class Filter(Mapping):
        pass
    
    class DescribeCustomAvailabilityZonesMessage(Mapping):
        pass
    
    class CustomAvailabilityZoneMessage(Mapping):
        pass
    
    class DescribeDBClusterBacktracksMessage(Mapping):
        pass
    
    class DBClusterBacktrackMessage(Mapping):
        pass
    
    class DescribeDBClusterEndpointsMessage(Mapping):
        pass
    
    class DBClusterEndpointMessage(Mapping):
        pass
    
    class DescribeDBClusterParameterGroupsMessage(Mapping):
        pass
    
    class DBClusterParameterGroupsMessage(Mapping):
        pass
    
    class DescribeDBClusterParametersMessage(Mapping):
        pass
    
    class DBClusterParameterGroupDetails(Mapping):
        pass
    
    class DescribeDBClusterSnapshotAttributesMessage(Mapping):
        pass
    
    class DescribeDBClusterSnapshotAttributesResult(Mapping):
        pass
    
    class DescribeDBClusterSnapshotsMessage(Mapping):
        pass
    
    class DBClusterSnapshotMessage(Mapping):
        pass
    
    class DescribeDBClustersMessage(Mapping):
        pass
    
    class DBClusterMessage(Mapping):
        pass
    
    class DescribeDBEngineVersionsMessage(Mapping):
        pass
    
    class DBEngineVersionMessage(Mapping):
        pass
    
    class DescribeDBInstanceAutomatedBackupsMessage(Mapping):
        pass
    
    class DBInstanceAutomatedBackupMessage(Mapping):
        pass
    
    class DescribeDBInstancesMessage(Mapping):
        pass
    
    class DBInstanceMessage(Mapping):
        pass
    
    class DescribeDBLogFilesMessage(Mapping):
        pass
    
    class DescribeDBLogFilesResponse(Mapping):
        pass
    
    class Long(object):
        pass
    
    class DescribeDBParameterGroupsMessage(Mapping):
        pass
    
    class DBParameterGroupsMessage(Mapping):
        pass
    
    class DescribeDBParametersMessage(Mapping):
        pass
    
    class DBParameterGroupDetails(Mapping):
        pass
    
    class DescribeDBProxiesRequest(Mapping):
        pass
    
    class DescribeDBProxiesResponse(Mapping):
        pass
    
    class DescribeDBProxyEndpointsRequest(Mapping):
        pass
    
    class DescribeDBProxyEndpointsResponse(Mapping):
        pass
    
    class DescribeDBProxyTargetGroupsRequest(Mapping):
        pass
    
    class DescribeDBProxyTargetGroupsResponse(Mapping):
        pass
    
    class DescribeDBProxyTargetsRequest(Mapping):
        pass
    
    class DescribeDBProxyTargetsResponse(Mapping):
        pass
    
    class DescribeDBSecurityGroupsMessage(Mapping):
        pass
    
    class DBSecurityGroupMessage(Mapping):
        pass
    
    class DescribeDBSnapshotAttributesMessage(Mapping):
        pass
    
    class DescribeDBSnapshotAttributesResult(Mapping):
        pass
    
    class DescribeDBSnapshotsMessage(Mapping):
        pass
    
    class DBSnapshotMessage(Mapping):
        pass
    
    class DescribeDBSubnetGroupsMessage(Mapping):
        pass
    
    class DBSubnetGroupMessage(Mapping):
        pass
    
    class DescribeEngineDefaultClusterParametersMessage(Mapping):
        pass
    
    class DescribeEngineDefaultClusterParametersResult(Mapping):
        pass
    
    class DescribeEngineDefaultParametersMessage(Mapping):
        pass
    
    class DescribeEngineDefaultParametersResult(Mapping):
        pass
    
    class DescribeEventCategoriesMessage(Mapping):
        pass
    
    class EventCategoriesMessage(Mapping):
        pass
    
    class DescribeEventSubscriptionsMessage(Mapping):
        pass
    
    class EventSubscriptionsMessage(Mapping):
        pass
    
    class DescribeEventsMessage(Mapping):
        pass
    
    class EventsMessage(Mapping):
        pass
    
    class DescribeExportTasksMessage(Mapping):
        pass
    
    class ExportTasksMessage(Mapping):
        pass
    
    class DescribeGlobalClustersMessage(Mapping):
        pass
    
    class GlobalClustersMessage(Mapping):
        pass
    
    class DescribeInstallationMediaMessage(Mapping):
        pass
    
    class InstallationMediaMessage(Mapping):
        pass
    
    class DescribeOptionGroupOptionsMessage(Mapping):
        pass
    
    class OptionGroupOptionsMessage(Mapping):
        pass
    
    class DescribeOptionGroupsMessage(Mapping):
        pass
    
    class OptionGroups(Mapping):
        pass
    
    class DescribeOrderableDBInstanceOptionsMessage(Mapping):
        pass
    
    class OrderableDBInstanceOptionsMessage(Mapping):
        pass
    
    class DescribePendingMaintenanceActionsMessage(Mapping):
        pass
    
    class PendingMaintenanceActionsMessage(Mapping):
        pass
    
    class DescribeReservedDBInstancesMessage(Mapping):
        pass
    
    class ReservedDBInstanceMessage(Mapping):
        pass
    
    class DescribeReservedDBInstancesOfferingsMessage(Mapping):
        pass
    
    class ReservedDBInstancesOfferingMessage(Mapping):
        pass
    
    class DescribeSourceRegionsMessage(Mapping):
        pass
    
    class SourceRegionMessage(Mapping):
        pass
    
    class DescribeValidDBInstanceModificationsMessage(Mapping):
        pass
    
    class DescribeValidDBInstanceModificationsResult(Mapping):
        pass
    
    class DownloadDBLogFilePortionMessage(Mapping):
        pass
    
    class DownloadDBLogFilePortionDetails(Mapping):
        pass
    
    class FailoverDBClusterMessage(Mapping):
        pass
    
    class FailoverDBClusterResult(Mapping):
        pass
    
    class FailoverGlobalClusterMessage(Mapping):
        pass
    
    class FailoverGlobalClusterResult(Mapping):
        pass
    
    class ImportInstallationMediaMessage(Mapping):
        pass
    
    class ListTagsForResourceMessage(Mapping):
        pass
    
    class TagListMessage(Mapping):
        pass
    
    class ModifyCertificatesMessage(Mapping):
        pass
    
    class ModifyCertificatesResult(Mapping):
        pass
    
    class ModifyCurrentDBClusterCapacityMessage(Mapping):
        pass
    
    class DBClusterCapacityInfo(Mapping):
        pass
    
    class ModifyDBClusterMessage(Mapping):
        pass
    
    class ModifyDBClusterResult(Mapping):
        pass
    
    class CloudwatchLogsExportConfiguration(Mapping):
        pass
    
    class ModifyDBClusterEndpointMessage(Mapping):
        pass
    
    class ModifyDBClusterParameterGroupMessage(Mapping):
        pass
    
    class DBClusterParameterGroupNameMessage(Mapping):
        pass
    
    class Parameter(Mapping):
        pass
    
    class ModifyDBClusterSnapshotAttributeMessage(Mapping):
        pass
    
    class ModifyDBClusterSnapshotAttributeResult(Mapping):
        pass
    
    class ModifyDBInstanceMessage(Mapping):
        pass
    
    class ModifyDBInstanceResult(Mapping):
        pass
    
    class ModifyDBParameterGroupMessage(Mapping):
        pass
    
    class DBParameterGroupNameMessage(Mapping):
        pass
    
    class ModifyDBProxyRequest(Mapping):
        pass
    
    class ModifyDBProxyResponse(Mapping):
        pass
    
    class ModifyDBProxyEndpointRequest(Mapping):
        pass
    
    class ModifyDBProxyEndpointResponse(Mapping):
        pass
    
    class ModifyDBProxyTargetGroupRequest(Mapping):
        pass
    
    class ModifyDBProxyTargetGroupResponse(Mapping):
        pass
    
    class ConnectionPoolConfiguration(Mapping):
        pass
    
    class ModifyDBSnapshotMessage(Mapping):
        pass
    
    class ModifyDBSnapshotResult(Mapping):
        pass
    
    class ModifyDBSnapshotAttributeMessage(Mapping):
        pass
    
    class ModifyDBSnapshotAttributeResult(Mapping):
        pass
    
    class ModifyDBSubnetGroupMessage(Mapping):
        pass
    
    class ModifyDBSubnetGroupResult(Mapping):
        pass
    
    class ModifyEventSubscriptionMessage(Mapping):
        pass
    
    class ModifyEventSubscriptionResult(Mapping):
        pass
    
    class ModifyGlobalClusterMessage(Mapping):
        pass
    
    class ModifyGlobalClusterResult(Mapping):
        pass
    
    class ModifyOptionGroupMessage(Mapping):
        pass
    
    class ModifyOptionGroupResult(Mapping):
        pass
    
    class OptionConfiguration(Mapping):
        pass
    
    class PromoteReadReplicaMessage(Mapping):
        pass
    
    class PromoteReadReplicaResult(Mapping):
        pass
    
    class PromoteReadReplicaDBClusterMessage(Mapping):
        pass
    
    class PromoteReadReplicaDBClusterResult(Mapping):
        pass
    
    class PurchaseReservedDBInstancesOfferingMessage(Mapping):
        pass
    
    class PurchaseReservedDBInstancesOfferingResult(Mapping):
        pass
    
    class RebootDBInstanceMessage(Mapping):
        pass
    
    class RebootDBInstanceResult(Mapping):
        pass
    
    class RegisterDBProxyTargetsRequest(Mapping):
        pass
    
    class RegisterDBProxyTargetsResponse(Mapping):
        pass
    
    class RemoveFromGlobalClusterMessage(Mapping):
        pass
    
    class RemoveFromGlobalClusterResult(Mapping):
        pass
    
    class RemoveRoleFromDBClusterMessage(Mapping):
        pass
    
    class RemoveRoleFromDBInstanceMessage(Mapping):
        pass
    
    class RemoveSourceIdentifierFromSubscriptionMessage(Mapping):
        pass
    
    class RemoveSourceIdentifierFromSubscriptionResult(Mapping):
        pass
    
    class RemoveTagsFromResourceMessage(Mapping):
        pass
    
    class ResetDBClusterParameterGroupMessage(Mapping):
        pass
    
    class ResetDBParameterGroupMessage(Mapping):
        pass
    
    class RestoreDBClusterFromS3Message(Mapping):
        pass
    
    class RestoreDBClusterFromS3Result(Mapping):
        pass
    
    class RestoreDBClusterFromSnapshotMessage(Mapping):
        pass
    
    class RestoreDBClusterFromSnapshotResult(Mapping):
        pass
    
    class RestoreDBClusterToPointInTimeMessage(Mapping):
        pass
    
    class RestoreDBClusterToPointInTimeResult(Mapping):
        pass
    
    class RestoreDBInstanceFromDBSnapshotMessage(Mapping):
        pass
    
    class RestoreDBInstanceFromDBSnapshotResult(Mapping):
        pass
    
    class RestoreDBInstanceFromS3Message(Mapping):
        pass
    
    class RestoreDBInstanceFromS3Result(Mapping):
        pass
    
    class RestoreDBInstanceToPointInTimeMessage(Mapping):
        pass
    
    class RestoreDBInstanceToPointInTimeResult(Mapping):
        pass
    
    class RevokeDBSecurityGroupIngressMessage(Mapping):
        pass
    
    class RevokeDBSecurityGroupIngressResult(Mapping):
        pass
    
    class StartActivityStreamRequest(Mapping):
        pass
    
    class StartActivityStreamResponse(Mapping):
        pass
    
    class StartDBClusterMessage(Mapping):
        pass
    
    class StartDBClusterResult(Mapping):
        pass
    
    class StartDBInstanceMessage(Mapping):
        pass
    
    class StartDBInstanceResult(Mapping):
        pass
    
    class StartDBInstanceAutomatedBackupsReplicationMessage(Mapping):
        pass
    
    class StartDBInstanceAutomatedBackupsReplicationResult(Mapping):
        pass
    
    class StartExportTaskMessage(Mapping):
        pass
    
    class StopActivityStreamRequest(Mapping):
        pass
    
    class StopActivityStreamResponse(Mapping):
        pass
    
    class StopDBClusterMessage(Mapping):
        pass
    
    class StopDBClusterResult(Mapping):
        pass
    
    class StopDBInstanceMessage(Mapping):
        pass
    
    class StopDBInstanceResult(Mapping):
        pass
    
    class StopDBInstanceAutomatedBackupsReplicationMessage(Mapping):
        pass
    
    class StopDBInstanceAutomatedBackupsReplicationResult(Mapping):
        pass
    
    def add_role_to_db_cluster(self, RoleArn: str, DBClusterIdentifier: str, FeatureName: str=None):
        r"""Associates an Identity and Access Management (IAM) role from an Amazon Aurora DB cluster. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Integrating.Authorizing.html">Authorizing Amazon Aurora MySQL to Access Other Amazon Web Services Services on Your Behalf</a> in the <i>Amazon Aurora User Guide</i>. <note> This action only applies to Aurora DB clusters. </note>

        :param self:
        :param FeatureName:  The name of the feature for the DB cluster that the IAM role is to be associated with. For the list of supported feature names, see <a>DBEngineVersion</a>.<br/>RoleArn:  The Amazon Resource Name (ARN) of the IAM role to associate with the Aurora DB cluster, for example, <code>arn:aws:iam::123456789012:role/AuroraAccessRole</code>.<br/>DBClusterIdentifier:  The name of the DB cluster to associate the IAM role with.<br/>
        :return:         """
        pass

    def add_role_to_db_instance(self, FeatureName: str, RoleArn: str, DBInstanceIdentifier: str):
        r"""Associates an Amazon Web Services Identity and Access Management (IAM) role with a DB instance. <note> To add a role to a DB instance, the status of the DB instance must be <code>available</code>. </note>

        :param self:
        :param FeatureName:  The name of the feature for the DB instance that the IAM role is to be associated with. For the list of supported feature names, see <a>DBEngineVersion</a>. <br/>RoleArn:  The Amazon Resource Name (ARN) of the IAM role to associate with the DB instance, for example <code>arn:aws:iam::123456789012:role/AccessRole</code>. <br/>DBInstanceIdentifier:  The name of the DB instance to associate the IAM role with.<br/>
        :return:         """
        pass

    def add_source_identifier_to_subscription(self, SourceIdentifier: str, SubscriptionName: str) -> AddSourceIdentifierToSubscriptionResult:
        r"""Adds a source identifier to an existing RDS event notification subscription.

        :param self:
        :param SourceIdentifier:  The identifier of the event source to be added. Constraints: <ul> <li> If the source type is a DB instance, a <code>DBInstanceIdentifier</code> value must be supplied. </li> <li> If the source type is a DB cluster, a <code>DBClusterIdentifier</code> value must be supplied. </li> <li> If the source type is a DB parameter group, a <code>DBParameterGroupName</code> value must be supplied. </li> <li> If the source type is a DB security group, a <code>DBSecurityGroupName</code> value must be supplied. </li> <li> If the source type is a DB snapshot, a <code>DBSnapshotIdentifier</code> value must be supplied. </li> <li> If the source type is a DB cluster snapshot, a <code>DBClusterSnapshotIdentifier</code> value must be supplied. </li> </ul><br/>SubscriptionName:  The name of the RDS event notification subscription you want to add a source identifier to.<br/>
        :return: EventSubscription:  Contains the results of a successful invocation of the <code>DescribeEventSubscriptions</code> action.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EventSubscriptionArn</i> The Amazon Resource Name (ARN) for the event subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> A Boolean value indicating if the subscription is enabled. True indicates the subscription is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EventCategoriesList</i> A list of event categories for the RDS event notification subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceIdsList</i> A list of source IDs for the RDS event notification subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceType</i> The source type for the RDS event notification subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubscriptionCreationTime</i> The time the RDS event notification subscription was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the RDS event notification subscription. Constraints: Can be one of the following: creating | modifying | deleting | active | no-permission | topic-not-exist The status "no-permission" indicates that RDS no longer has permission to post to the SNS topic. The status "topic-not-exist" indicates that the topic was deleted after the subscription was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnsTopicArn</i> The topic ARN of the RDS event notification subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustSubscriptionId</i> The RDS event notification subscription Id.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomerAwsId</i> The Amazon Web Services customer account associated with the RDS event notification subscription.<br/>        """
        pass

    def add_tags_to_resource(self, Tags: List[Tag], ResourceName: str):
        r"""Adds metadata tags to an Amazon RDS resource. These tags can also be used with cost allocation reporting to track cost associated with Amazon RDS resources, or used in a Condition statement in an IAM policy for Amazon RDS. For an overview on tagging Amazon RDS resources, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.Tagging.html">Tagging Amazon RDS Resources</a>.

        :param self:
        :param Tags:  The tags to be assigned to the Amazon RDS resource.<br/>ResourceName:  The Amazon RDS resource that the tags are added to. This value is an Amazon Resource Name (ARN). For information about creating an ARN, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.ARN.html#USER_Tagging.ARN.Constructing"> Constructing an RDS Amazon Resource Name (ARN)</a>.<br/>
        :return:         """
        pass

    def apply_pending_maintenance_action(self, OptInType: str, ApplyAction: str, ResourceIdentifier: str) -> ApplyPendingMaintenanceActionResult:
        r"""Applies a pending maintenance action to a resource (for example, to a DB instance).

        :param self:
        :param OptInType:  A value that specifies the type of opt-in request, or undoes an opt-in request. An opt-in request of type <code>immediate</code> can't be undone. Valid values: <ul> <li>  <code>immediate</code> - Apply the maintenance action immediately. </li> <li>  <code>next-maintenance</code> - Apply the maintenance action during the next maintenance window for the resource. </li> <li>  <code>undo-opt-in</code> - Cancel any existing <code>next-maintenance</code> opt-in requests. </li> </ul><br/>ApplyAction:  The pending maintenance action to apply to this resource. Valid values: <code>system-update</code>, <code>db-upgrade</code>, <code>hardware-maintenance</code>, <code>ca-certificate-rotation</code> <br/>ResourceIdentifier:  The RDS Amazon Resource Name (ARN) of the resource that the pending maintenance action applies to. For information about creating an ARN, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.ARN.html#USER_Tagging.ARN.Constructing"> Constructing an RDS Amazon Resource Name (ARN)</a>.<br/>
        :return: ResourcePendingMaintenanceActions:  Describes the pending maintenance actions for a resource.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingMaintenanceActionDetails</i> A list that provides details about the pending maintenance actions for the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceIdentifier</i> The ARN of the resource that has pending maintenance actions.<br/>        """
        pass

    def authorize_db_security_group_ingress(self, DBSecurityGroupName: str, CIDRIP: str=None, EC2SecurityGroupName: str=None, EC2SecurityGroupId: str=None, EC2SecurityGroupOwnerId: str=None) -> AuthorizeDBSecurityGroupIngressResult:
        r"""Enables ingress to a DBSecurityGroup using one of two forms of authorization. First, EC2 or VPC security groups can be added to the DBSecurityGroup if the application using the database is running on EC2 or VPC instances. Second, IP ranges are available if the application accessing your database is running on the Internet. Required parameters for this API are one of CIDR range, EC2SecurityGroupId for VPC, or (EC2SecurityGroupOwnerId and either EC2SecurityGroupName or EC2SecurityGroupId for non-VPC). <note> You can't authorize ingress from an EC2 security group in one Amazon Web Services Region to an Amazon RDS DB instance in another. You can't authorize ingress from a VPC security group in one VPC to an Amazon RDS DB instance in another. </note> For an overview of CIDR ranges, go to the <a href="http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing">Wikipedia Tutorial</a>. 

        :param self:
        :param EC2SecurityGroupOwnerId:   Amazon Web Services account number of the owner of the EC2 security group specified in the <code>EC2SecurityGroupName</code> parameter. The Amazon Web Services access key ID isn't an acceptable value. For VPC DB security groups, <code>EC2SecurityGroupId</code> must be provided. Otherwise, <code>EC2SecurityGroupOwnerId</code> and either <code>EC2SecurityGroupName</code> or <code>EC2SecurityGroupId</code> must be provided. <br/>EC2SecurityGroupId:   Id of the EC2 security group to authorize. For VPC DB security groups, <code>EC2SecurityGroupId</code> must be provided. Otherwise, <code>EC2SecurityGroupOwnerId</code> and either <code>EC2SecurityGroupName</code> or <code>EC2SecurityGroupId</code> must be provided. <br/>EC2SecurityGroupName:   Name of the EC2 security group to authorize. For VPC DB security groups, <code>EC2SecurityGroupId</code> must be provided. Otherwise, <code>EC2SecurityGroupOwnerId</code> and either <code>EC2SecurityGroupName</code> or <code>EC2SecurityGroupId</code> must be provided. <br/>CIDRIP:  The IP range to authorize.<br/>DBSecurityGroupName:  The name of the DB security group to add authorization to.<br/>
        :return: DBSecurityGroup:  Contains the details for an Amazon RDS DB security group.  This data type is used as a response element in the <code>DescribeDBSecurityGroups</code> action. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSecurityGroupArn</i> The Amazon Resource Name (ARN) for the DB security group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IPRanges</i>  Contains a list of <code>IPRange</code> elements. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EC2SecurityGroups</i>  Contains a list of <code>EC2SecurityGroup</code> elements. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> Provides the VpcId of the DB security group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSecurityGroupDescription</i> Provides the description of the DB security group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSecurityGroupName</i> Specifies the name of the DB security group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> Provides the Amazon Web Services ID of the owner of a specific DB security group.<br/>        """
        pass

    def backtrack_db_cluster(self, BacktrackTo: TStamp, DBClusterIdentifier: str, Force: BooleanOptional=None, UseEarliestTimeOnPointInTimeUnavailable: BooleanOptional=None) -> DBClusterBacktrack:
        r"""Backtracks a DB cluster to a specific time, without creating a new DB cluster. For more information on backtracking, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Managing.Backtrack.html"> Backtracking an Aurora DB Cluster</a> in the <i>Amazon Aurora User Guide.</i>  <note> This action only applies to Aurora MySQL DB clusters. </note>

        :param self:
        :param UseEarliestTimeOnPointInTimeUnavailable:  A value that indicates whether to backtrack the DB cluster to the earliest possible backtrack time when <i>BacktrackTo</i> is set to a timestamp earlier than the earliest backtrack time. When this parameter is disabled and <i>BacktrackTo</i> is set to a timestamp earlier than the earliest backtrack time, an error occurs.<br/>Force:  A value that indicates whether to force the DB cluster to backtrack when binary logging is enabled. Otherwise, an error occurs when binary logging is enabled.<br/>BacktrackTo:  The timestamp of the time to backtrack the DB cluster to, specified in ISO 8601 format. For more information about ISO 8601, see the <a href="http://en.wikipedia.org/wiki/ISO_8601">ISO8601 Wikipedia page.</a>  <note> If the specified time isn't a consistent time for the DB cluster, Aurora automatically chooses the nearest possible consistent time for the DB cluster. </note> Constraints: <ul> <li> Must contain a valid ISO 8601 timestamp. </li> <li> Can't contain a timestamp set in the future. </li> </ul> Example: <code>2017-07-08T18:00Z</code> <br/>DBClusterIdentifier:  The DB cluster identifier of the DB cluster to be backtracked. This parameter is stored as a lowercase string. Constraints: <ul> <li> Must contain from 1 to 63 alphanumeric characters or hyphens. </li> <li> First character must be a letter. </li> <li> Can't end with a hyphen or contain two consecutive hyphens. </li> </ul> Example: <code>my-cluster1</code> <br/>
        :return: Status:  The status of the backtrack. This property returns one of the following values: <ul> <li>  <code>applying</code> - The backtrack is currently being applied to or rolled back from the DB cluster. </li> <li>  <code>completed</code> - The backtrack has successfully been applied to or rolled back from the DB cluster. </li> <li>  <code>failed</code> - An error occurred while the backtrack was applied to or rolled back from the DB cluster. </li> <li>  <code>pending</code> - The backtrack is currently pending application to or rollback from the DB cluster. </li> </ul><br/>BacktrackRequestCreationTime:  The timestamp of the time at which the backtrack was requested.<br/>BacktrackedFrom:  The timestamp of the time from which the DB cluster was backtracked.<br/>BacktrackTo:  The timestamp of the time to which the DB cluster was backtracked.<br/>BacktrackIdentifier:  Contains the backtrack identifier.<br/>DBClusterIdentifier:  Contains a user-supplied DB cluster identifier. This identifier is the unique key that identifies a DB cluster.<br/>        """
        pass

    def cancel_export_task(self, ExportTaskIdentifier: str) -> ExportTask:
        r"""Cancels an export task in progress that is exporting a snapshot to Amazon S3. Any data that has already been written to the S3 bucket isn't removed. 

        :param self:
        :param ExportTaskIdentifier:  The identifier of the snapshot export task to cancel.<br/>
        :return: WarningMessage:  A warning about the snapshot export task.<br/>FailureCause:  The reason the export failed, if it failed.<br/>TotalExtractedDataInGB:  The total amount of data exported, in gigabytes.<br/>PercentProgress:  The progress of the snapshot export task as a percentage.<br/>Status:  The progress status of the export task.<br/>KmsKeyId:  The key identifier of the Amazon Web Services KMS customer master key (CMK) that is used to encrypt the snapshot when it's exported to Amazon S3. The Amazon Web Services KMS CMK identifier is its key ARN, key ID, alias ARN, or alias name. The IAM role used for the snapshot export must have encryption and decryption permissions to use this Amazon Web Services KMS CMK. <br/>IamRoleArn:  The name of the IAM role that is used to write to Amazon S3 when exporting a snapshot. <br/>S3Prefix:  The Amazon S3 bucket prefix that is the file name and path of the exported snapshot.<br/>S3Bucket:  The Amazon S3 bucket that the snapshot is exported to.<br/>TaskEndTime:  The time that the snapshot export task completed.<br/>TaskStartTime:  The time that the snapshot export task started.<br/>SnapshotTime:  The time that the snapshot was created.<br/>ExportOnly:  The data exported from the snapshot. Valid values are the following: <ul> <li>  <code>database</code> - Export all the data from a specified database. </li> <li>  <code>database.table</code> <i>table-name</i> - Export a table of the snapshot. This format is valid only for RDS for MySQL, RDS for MariaDB, and Aurora MySQL. </li> <li>  <code>database.schema</code> <i>schema-name</i> - Export a database schema of the snapshot. This format is valid only for RDS for PostgreSQL and Aurora PostgreSQL. </li> <li>  <code>database.schema.table</code> <i>table-name</i> - Export a table of the database schema. This format is valid only for RDS for PostgreSQL and Aurora PostgreSQL. </li> </ul><br/>SourceArn:  The Amazon Resource Name (ARN) of the snapshot exported to Amazon S3.<br/>ExportTaskIdentifier:  A unique identifier for the snapshot export task. This ID isn't an identifier for the Amazon S3 bucket where the snapshot is exported to. <br/>        """
        pass

    def copy_db_cluster_parameter_group(self, TargetDBClusterParameterGroupDescription: str, TargetDBClusterParameterGroupIdentifier: str, SourceDBClusterParameterGroupIdentifier: str, Tags: List[Tag]=None) -> CopyDBClusterParameterGroupResult:
        r"""Copies the specified DB cluster parameter group. <note> This action only applies to Aurora DB clusters. </note>

        :param self:
        :param Tags:  A list of tags. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html">Tagging Amazon RDS Resources</a> in the <i>Amazon RDS User Guide.</i> <br/>TargetDBClusterParameterGroupDescription:  A description for the copied DB cluster parameter group.<br/>TargetDBClusterParameterGroupIdentifier:  The identifier for the copied DB cluster parameter group. Constraints: <ul> <li> Can't be null, empty, or blank </li> <li> Must contain from 1 to 255 letters, numbers, or hyphens </li> <li> First character must be a letter </li> <li> Can't end with a hyphen or contain two consecutive hyphens </li> </ul> Example: <code>my-cluster-param-group1</code> <br/>SourceDBClusterParameterGroupIdentifier:  The identifier or Amazon Resource Name (ARN) for the source DB cluster parameter group. For information about creating an ARN, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.ARN.html#USER_Tagging.ARN.Constructing"> Constructing an ARN for Amazon RDS</a> in the <i>Amazon Aurora User Guide</i>.  Constraints: <ul> <li> Must specify a valid DB cluster parameter group. </li> </ul><br/>
        :return: DBClusterParameterGroup:  Contains the details of an Amazon RDS DB cluster parameter group.  This data type is used as a response element in the <code>DescribeDBClusterParameterGroups</code> action. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterParameterGroupArn</i> The Amazon Resource Name (ARN) for the DB cluster parameter group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> Provides the customer-specified description for this DB cluster parameter group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBParameterGroupFamily</i> The name of the DB parameter group family that this DB cluster parameter group is compatible with.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterParameterGroupName</i> The name of the DB cluster parameter group.<br/>        """
        pass

    def copy_db_cluster_snapshot(self, TargetDBClusterSnapshotIdentifier: str, SourceDBClusterSnapshotIdentifier: str, KmsKeyId: str=None, PreSignedUrl: str=None, CopyTags: BooleanOptional=None, Tags: List[Tag]=None, SourceRegion: str=None) -> CopyDBClusterSnapshotResult:
        r"""Copies a snapshot of a DB cluster. To copy a DB cluster snapshot from a shared manual DB cluster snapshot, <code>SourceDBClusterSnapshotIdentifier</code> must be the Amazon Resource Name (ARN) of the shared DB cluster snapshot. You can copy an encrypted DB cluster snapshot from another Amazon Web Services Region. In that case, the Amazon Web Services Region where you call the <code>CopyDBClusterSnapshot</code> action is the destination Amazon Web Services Region for the encrypted DB cluster snapshot to be copied to. To copy an encrypted DB cluster snapshot from another Amazon Web Services Region, you must provide the following values: <ul> <li>  <code>KmsKeyId</code> - The Amazon Web Services Key Management System (Amazon Web Services KMS) key identifier for the key to use to encrypt the copy of the DB cluster snapshot in the destination Amazon Web Services Region. </li> <li>  <code>PreSignedUrl</code> - A URL that contains a Signature Version 4 signed request for the <code>CopyDBClusterSnapshot</code> action to be called in the source Amazon Web Services Region where the DB cluster snapshot is copied from. The pre-signed URL must be a valid request for the <code>CopyDBClusterSnapshot</code> API action that can be executed in the source Amazon Web Services Region that contains the encrypted DB cluster snapshot to be copied. The pre-signed URL request must contain the following parameter values: <ul> <li>  <code>KmsKeyId</code> - The Amazon Web Services KMS key identifier for the customer master key (CMK) to use to encrypt the copy of the DB cluster snapshot in the destination Amazon Web Services Region. This is the same identifier for both the <code>CopyDBClusterSnapshot</code> action that is called in the destination Amazon Web Services Region, and the action contained in the pre-signed URL. </li> <li>  <code>DestinationRegion</code> - The name of the Amazon Web Services Region that the DB cluster snapshot is to be created in. </li> <li>  <code>SourceDBClusterSnapshotIdentifier</code> - The DB cluster snapshot identifier for the encrypted DB cluster snapshot to be copied. This identifier must be in the Amazon Resource Name (ARN) format for the source Amazon Web Services Region. For example, if you are copying an encrypted DB cluster snapshot from the us-west-2 Amazon Web Services Region, then your <code>SourceDBClusterSnapshotIdentifier</code> looks like the following example: <code>arn:aws:rds:us-west-2:123456789012:cluster-snapshot:aurora-cluster1-snapshot-20161115</code>. </li> </ul> To learn how to generate a Signature Version 4 signed request, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-query-string-auth.html"> Authenticating Requests: Using Query Parameters (Amazon Web Services Signature Version 4)</a> and <a href="https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html"> Signature Version 4 Signing Process</a>. <note> If you are using an Amazon Web Services SDK tool or the CLI, you can specify <code>SourceRegion</code> (or <code>--source-region</code> for the CLI) instead of specifying <code>PreSignedUrl</code> manually. Specifying <code>SourceRegion</code> autogenerates a pre-signed URL that is a valid request for the operation that can be executed in the source Amazon Web Services Region. </note> </li> <li>  <code>TargetDBClusterSnapshotIdentifier</code> - The identifier for the new copy of the DB cluster snapshot in the destination Amazon Web Services Region. </li> <li>  <code>SourceDBClusterSnapshotIdentifier</code> - The DB cluster snapshot identifier for the encrypted DB cluster snapshot to be copied. This identifier must be in the ARN format for the source Amazon Web Services Region and is the same value as the <code>SourceDBClusterSnapshotIdentifier</code> in the pre-signed URL.  </li> </ul> To cancel the copy operation once it is in progress, delete the target DB cluster snapshot identified by <code>TargetDBClusterSnapshotIdentifier</code> while that DB cluster snapshot is in "copying" status. For more information on copying encrypted DB cluster snapshots from one Amazon Web Services Region to another, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_CopySnapshot.html"> Copying a Snapshot</a> in the <i>Amazon Aurora User Guide.</i>  For more information on Amazon Aurora, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html"> What Is Amazon Aurora?</a> in the <i>Amazon Aurora User Guide.</i>  <note> This action only applies to Aurora DB clusters. </note>

        :param self:
        :param SourceRegion:  The ID of the region that contains the snapshot to be copied.<br/>Tags:  A list of tags. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html">Tagging Amazon RDS Resources</a> in the <i>Amazon RDS User Guide.</i> <br/>CopyTags:  A value that indicates whether to copy all tags from the source DB cluster snapshot to the target DB cluster snapshot. By default, tags are not copied.<br/>PreSignedUrl:  The URL that contains a Signature Version 4 signed request for the <code>CopyDBClusterSnapshot</code> API action in the Amazon Web Services Region that contains the source DB cluster snapshot to copy. The <code>PreSignedUrl</code> parameter must be used when copying an encrypted DB cluster snapshot from another Amazon Web Services Region. Don't specify <code>PreSignedUrl</code> when you are copying an encrypted DB cluster snapshot in the same Amazon Web Services Region. The pre-signed URL must be a valid request for the <code>CopyDBClusterSnapshot</code> API action that can be executed in the source Amazon Web Services Region that contains the encrypted DB cluster snapshot to be copied. The pre-signed URL request must contain the following parameter values: <ul> <li>  <code>KmsKeyId</code> - The Amazon Web Services KMS key identifier for the customer master key (CMK) to use to encrypt the copy of the DB cluster snapshot in the destination Amazon Web Services Region. This is the same identifier for both the <code>CopyDBClusterSnapshot</code> action that is called in the destination Amazon Web Services Region, and the action contained in the pre-signed URL. </li> <li>  <code>DestinationRegion</code> - The name of the Amazon Web Services Region that the DB cluster snapshot is to be created in. </li> <li>  <code>SourceDBClusterSnapshotIdentifier</code> - The DB cluster snapshot identifier for the encrypted DB cluster snapshot to be copied. This identifier must be in the Amazon Resource Name (ARN) format for the source Amazon Web Services Region. For example, if you are copying an encrypted DB cluster snapshot from the us-west-2 Amazon Web Services Region, then your <code>SourceDBClusterSnapshotIdentifier</code> looks like the following example: <code>arn:aws:rds:us-west-2:123456789012:cluster-snapshot:aurora-cluster1-snapshot-20161115</code>. </li> </ul> To learn how to generate a Signature Version 4 signed request, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-query-string-auth.html"> Authenticating Requests: Using Query Parameters (Amazon Web Services Signature Version 4)</a> and <a href="https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html"> Signature Version 4 Signing Process</a>. <note> If you are using an Amazon Web Services SDK tool or the CLI, you can specify <code>SourceRegion</code> (or <code>--source-region</code> for the CLI) instead of specifying <code>PreSignedUrl</code> manually. Specifying <code>SourceRegion</code> autogenerates a pre-signed URL that is a valid request for the operation that can be executed in the source Amazon Web Services Region. </note><br/>KmsKeyId:  The Amazon Web Services KMS key identifier for an encrypted DB cluster snapshot. The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the Amazon Web Services KMS customer master key (CMK). If you copy an encrypted DB cluster snapshot from your Amazon Web Services account, you can specify a value for <code>KmsKeyId</code> to encrypt the copy with a new Amazon Web Services KMS CMK. If you don't specify a value for <code>KmsKeyId</code>, then the copy of the DB cluster snapshot is encrypted with the same Amazon Web Services KMS key as the source DB cluster snapshot.  If you copy an encrypted DB cluster snapshot that is shared from another Amazon Web Services account, then you must specify a value for <code>KmsKeyId</code>.  To copy an encrypted DB cluster snapshot to another Amazon Web Services Region, you must set <code>KmsKeyId</code> to the Amazon Web Services KMS key identifier you want to use to encrypt the copy of the DB cluster snapshot in the destination Amazon Web Services Region. Amazon Web Services KMS CMKs are specific to the Amazon Web Services Region that they are created in, and you can't use CMKs from one Amazon Web Services Region in another Amazon Web Services Region. If you copy an unencrypted DB cluster snapshot and specify a value for the <code>KmsKeyId</code> parameter, an error is returned.<br/>TargetDBClusterSnapshotIdentifier:  The identifier of the new DB cluster snapshot to create from the source DB cluster snapshot. This parameter isn't case-sensitive. Constraints: <ul> <li> Must contain from 1 to 63 letters, numbers, or hyphens. </li> <li> First character must be a letter. </li> <li> Can't end with a hyphen or contain two consecutive hyphens. </li> </ul> Example: <code>my-cluster-snapshot2</code> <br/>SourceDBClusterSnapshotIdentifier:  The identifier of the DB cluster snapshot to copy. This parameter isn't case-sensitive. You can't copy an encrypted, shared DB cluster snapshot from one Amazon Web Services Region to another. Constraints: <ul> <li> Must specify a valid system snapshot in the "available" state. </li> <li> If the source snapshot is in the same Amazon Web Services Region as the copy, specify a valid DB snapshot identifier. </li> <li> If the source snapshot is in a different Amazon Web Services Region than the copy, specify a valid DB cluster snapshot ARN. For more information, go to <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_CopySnapshot.html#USER_CopySnapshot.AcrossRegions"> Copying Snapshots Across Amazon Web Services Regions</a> in the <i>Amazon Aurora User Guide.</i>  </li> </ul> Example: <code>my-cluster-snapshot1</code> <br/>
        :return: DBClusterSnapshot:  Contains the details for an Amazon RDS DB cluster snapshot  This data type is used as a response element in the <code>DescribeDBClusterSnapshots</code> action. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TagList</i> A list of tags. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html">Tagging Amazon RDS Resources</a> in the <i>Amazon RDS User Guide.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IAMDatabaseAuthenticationEnabled</i> True if mapping of Amazon Web Services Identity and Access Management (IAM) accounts to database accounts is enabled, and otherwise false.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceDBClusterSnapshotArn</i> If the DB cluster snapshot was copied from a source DB cluster snapshot, the Amazon Resource Name (ARN) for the source DB cluster snapshot, otherwise, a null value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterSnapshotArn</i> The Amazon Resource Name (ARN) for the DB cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> If <code>StorageEncrypted</code> is true, the Amazon Web Services KMS key identifier for the encrypted DB cluster snapshot. The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the Amazon Web Services KMS customer master key (CMK).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageEncrypted</i> Specifies whether the DB cluster snapshot is encrypted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PercentProgress</i> Specifies the percentage of the estimated data that has been transferred.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotType</i> Provides the type of the DB cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LicenseModel</i> Provides the license model information for this DB cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> Provides the version of the database engine for this DB cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUsername</i> Provides the master username for this DB cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterCreateTime</i> Specifies the time when the DB cluster was created, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> Provides the VPC ID associated with the DB cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Specifies the port that the DB cluster was listening on at the time of the snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Specifies the status of this DB cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllocatedStorage</i> Specifies the allocated storage size in gibibytes (GiB).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineMode</i> Provides the engine mode of the database engine for this DB cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> Specifies the name of the database engine for this DB cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotCreateTime</i> Provides the time when the snapshot was taken, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterIdentifier</i> Specifies the DB cluster identifier of the DB cluster that this DB cluster snapshot was created from.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterSnapshotIdentifier</i> Specifies the identifier for the DB cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZones</i> Provides the list of Availability Zones (AZs) where instances in the DB cluster snapshot can be restored.<br/>        """
        pass

    def copy_db_parameter_group(self, TargetDBParameterGroupDescription: str, TargetDBParameterGroupIdentifier: str, SourceDBParameterGroupIdentifier: str, Tags: List[Tag]=None) -> CopyDBParameterGroupResult:
        r"""Copies the specified DB parameter group.

        :param self:
        :param Tags:  A list of tags. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html">Tagging Amazon RDS Resources</a> in the <i>Amazon RDS User Guide.</i> <br/>TargetDBParameterGroupDescription:  A description for the copied DB parameter group.<br/>TargetDBParameterGroupIdentifier:  The identifier for the copied DB parameter group. Constraints: <ul> <li> Can't be null, empty, or blank </li> <li> Must contain from 1 to 255 letters, numbers, or hyphens </li> <li> First character must be a letter </li> <li> Can't end with a hyphen or contain two consecutive hyphens </li> </ul> Example: <code>my-db-parameter-group</code> <br/>SourceDBParameterGroupIdentifier:   The identifier or ARN for the source DB parameter group. For information about creating an ARN, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.ARN.html#USER_Tagging.ARN.Constructing"> Constructing an ARN for Amazon RDS</a> in the <i>Amazon RDS User Guide</i>.  Constraints: <ul> <li> Must specify a valid DB parameter group. </li> </ul><br/>
        :return: DBParameterGroup:  Contains the details of an Amazon RDS DB parameter group.  This data type is used as a response element in the <code>DescribeDBParameterGroups</code> action. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBParameterGroupArn</i> The Amazon Resource Name (ARN) for the DB parameter group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> Provides the customer-specified description for this DB parameter group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBParameterGroupFamily</i> The name of the DB parameter group family that this DB parameter group is compatible with.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBParameterGroupName</i> The name of the DB parameter group.<br/>        """
        pass

    def copy_db_snapshot(self, TargetDBSnapshotIdentifier: str, SourceDBSnapshotIdentifier: str, KmsKeyId: str=None, Tags: List[Tag]=None, CopyTags: BooleanOptional=None, PreSignedUrl: str=None, OptionGroupName: str=None, TargetCustomAvailabilityZone: str=None, SourceRegion: str=None) -> CopyDBSnapshotResult:
        r"""Copies the specified DB snapshot. The source DB snapshot must be in the <code>available</code> state. You can copy a snapshot from one Amazon Web Services Region to another. In that case, the Amazon Web Services Region where you call the <code>CopyDBSnapshot</code> action is the destination Amazon Web Services Region for the DB snapshot copy.  For more information about copying snapshots, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CopySnapshot.html#USER_CopyDBSnapshot">Copying a DB Snapshot</a> in the <i>Amazon RDS User Guide.</i> 

        :param self:
        :param SourceRegion:  The ID of the region that contains the snapshot to be copied.<br/>TargetCustomAvailabilityZone:  The external custom Availability Zone (CAZ) identifier for the target CAZ. Example: <code>rds-caz-aiqhTgQv</code>.<br/>OptionGroupName:  The name of an option group to associate with the copy of the snapshot. Specify this option if you are copying a snapshot from one Amazon Web Services Region to another, and your DB instance uses a nondefault option group. If your source DB instance uses Transparent Data Encryption for Oracle or Microsoft SQL Server, you must specify this option when copying across Amazon Web Services Regions. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CopySnapshot.html#USER_CopySnapshot.Options">Option group considerations</a> in the <i>Amazon RDS User Guide.</i> <br/>PreSignedUrl:  The URL that contains a Signature Version 4 signed request for the <code>CopyDBSnapshot</code> API action in the source Amazon Web Services Region that contains the source DB snapshot to copy.  You must specify this parameter when you copy an encrypted DB snapshot from another Amazon Web Services Region by using the Amazon RDS API. Don't specify <code>PreSignedUrl</code> when you are copying an encrypted DB snapshot in the same Amazon Web Services Region. The presigned URL must be a valid request for the <code>CopyDBSnapshot</code> API action that can be executed in the source Amazon Web Services Region that contains the encrypted DB snapshot to be copied. The presigned URL request must contain the following parameter values:  <ul> <li>  <code>DestinationRegion</code> - The Amazon Web Services Region that the encrypted DB snapshot is copied to. This Amazon Web Services Region is the same one where the <code>CopyDBSnapshot</code> action is called that contains this presigned URL.  For example, if you copy an encrypted DB snapshot from the us-west-2 Amazon Web Services Region to the us-east-1 Amazon Web Services Region, then you call the <code>CopyDBSnapshot</code> action in the us-east-1 Amazon Web Services Region and provide a presigned URL that contains a call to the <code>CopyDBSnapshot</code> action in the us-west-2 Amazon Web Services Region. For this example, the <code>DestinationRegion</code> in the presigned URL must be set to the us-east-1 Amazon Web Services Region.  </li> <li>  <code>KmsKeyId</code> - The Amazon Web Services KMS key identifier for the customer master key (CMK) to use to encrypt the copy of the DB snapshot in the destination Amazon Web Services Region. This is the same identifier for both the <code>CopyDBSnapshot</code> action that is called in the destination Amazon Web Services Region, and the action contained in the presigned URL.  </li> <li>  <code>SourceDBSnapshotIdentifier</code> - The DB snapshot identifier for the encrypted snapshot to be copied. This identifier must be in the Amazon Resource Name (ARN) format for the source Amazon Web Services Region. For example, if you are copying an encrypted DB snapshot from the us-west-2 Amazon Web Services Region, then your <code>SourceDBSnapshotIdentifier</code> looks like the following example: <code>arn:aws:rds:us-west-2:123456789012:snapshot:mysql-instance1-snapshot-20161115</code>.  </li> </ul> To learn how to generate a Signature Version 4 signed request, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-query-string-auth.html">Authenticating Requests: Using Query Parameters (Amazon Web Services Signature Version 4)</a> and <a href="https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html">Signature Version 4 Signing Process</a>.  <note> If you are using an Amazon Web Services SDK tool or the CLI, you can specify <code>SourceRegion</code> (or <code>--source-region</code> for the CLI) instead of specifying <code>PreSignedUrl</code> manually. Specifying <code>SourceRegion</code> autogenerates a pre-signed URL that is a valid request for the operation that can be executed in the source Amazon Web Services Region. </note><br/>CopyTags:  A value that indicates whether to copy all tags from the source DB snapshot to the target DB snapshot. By default, tags are not copied.<br/>Tags:  A list of tags. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html">Tagging Amazon RDS Resources</a> in the <i>Amazon RDS User Guide.</i> <br/>KmsKeyId:  The Amazon Web Services KMS key identifier for an encrypted DB snapshot. The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the Amazon Web Services KMS customer master key (CMK).  If you copy an encrypted DB snapshot from your Amazon Web Services account, you can specify a value for this parameter to encrypt the copy with a new Amazon Web Services KMS CMK. If you don't specify a value for this parameter, then the copy of the DB snapshot is encrypted with the same Amazon Web Services KMS key as the source DB snapshot.  If you copy an encrypted DB snapshot that is shared from another Amazon Web Services account, then you must specify a value for this parameter.  If you specify this parameter when you copy an unencrypted snapshot, the copy is encrypted.  If you copy an encrypted snapshot to a different Amazon Web Services Region, then you must specify a Amazon Web Services KMS key identifier for the destination Amazon Web Services Region. Amazon Web Services KMS CMKs are specific to the Amazon Web Services Region that they are created in, and you can't use CMKs from one Amazon Web Services Region in another Amazon Web Services Region. <br/>TargetDBSnapshotIdentifier:  The identifier for the copy of the snapshot.  Constraints: <ul> <li> Can't be null, empty, or blank </li> <li> Must contain from 1 to 255 letters, numbers, or hyphens </li> <li> First character must be a letter </li> <li> Can't end with a hyphen or contain two consecutive hyphens </li> </ul> Example: <code>my-db-snapshot</code> <br/>SourceDBSnapshotIdentifier:  The identifier for the source DB snapshot. If the source snapshot is in the same Amazon Web Services Region as the copy, specify a valid DB snapshot identifier. For example, you might specify <code>rds:mysql-instance1-snapshot-20130805</code>.  If the source snapshot is in a different Amazon Web Services Region than the copy, specify a valid DB snapshot ARN. For example, you might specify <code>arn:aws:rds:us-west-2:123456789012:snapshot:mysql-instance1-snapshot-20130805</code>.  If you are copying from a shared manual DB snapshot, this parameter must be the Amazon Resource Name (ARN) of the shared DB snapshot.  If you are copying an encrypted snapshot this parameter must be in the ARN format for the source Amazon Web Services Region, and must match the <code>SourceDBSnapshotIdentifier</code> in the <code>PreSignedUrl</code> parameter.  Constraints: <ul> <li> Must specify a valid system snapshot in the "available" state. </li> </ul> Example: <code>rds:mydb-2012-04-02-00-01</code>  Example: <code>arn:aws:rds:us-west-2:123456789012:snapshot:mysql-instance1-snapshot-20130805</code> <br/>
        :return: DBSnapshot:  Contains the details of an Amazon RDS DB snapshot.  This data type is used as a response element in the <code>DescribeDBSnapshots</code> action. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TagList</i> A list of tags. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html">Tagging Amazon RDS Resources</a> in the <i>Amazon RDS User Guide.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DbiResourceId</i> The identifier for the source DB instance, which can't be changed and which is unique to an Amazon Web Services Region.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProcessorFeatures</i> The number of CPU cores and the number of threads per core for the DB instance class of the DB instance when the DB snapshot was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IAMDatabaseAuthenticationEnabled</i> True if mapping of Amazon Web Services Identity and Access Management (IAM) accounts to database accounts is enabled, and otherwise false.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Timezone</i> The time zone of the DB snapshot. In most cases, the <code>Timezone</code> element is empty. <code>Timezone</code> content appears only for snapshots taken from Microsoft SQL Server DB instances that were created with a time zone specified. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSnapshotArn</i> The Amazon Resource Name (ARN) for the DB snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i>  If <code>Encrypted</code> is true, the Amazon Web Services KMS key identifier for the encrypted DB snapshot.  The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the Amazon Web Services KMS customer master key (CMK).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Encrypted</i> Specifies whether the DB snapshot is encrypted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TdeCredentialArn</i> The ARN from the key store with which to associate the instance for TDE encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageType</i> Specifies the storage type associated with DB snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceDBSnapshotIdentifier</i> The DB snapshot Amazon Resource Name (ARN) that the DB snapshot was copied from. It only has value in case of cross-customer or cross-region copy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceRegion</i> The Amazon Web Services Region that the DB snapshot was created in or copied from.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PercentProgress</i> The percentage of the estimated data that has been transferred.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OptionGroupName</i> Provides the option group name for the DB snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Iops</i> Specifies the Provisioned IOPS (I/O operations per second) value of the DB instance at the time of the snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotType</i> Provides the type of the DB snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LicenseModel</i> License model information for the restored DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> Specifies the version of the database engine.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUsername</i> Provides the master username for the DB snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceCreateTime</i> Specifies the time in Coordinated Universal Time (UTC) when the DB instance, from which the snapshot was taken, was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> Provides the VPC ID associated with the DB snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZone</i> Specifies the name of the Availability Zone the DB instance was located in at the time of the DB snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Specifies the port that the database engine was listening on at the time of the snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Specifies the status of this DB snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllocatedStorage</i> Specifies the allocated storage size in gibibytes (GiB).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> Specifies the name of the database engine.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotCreateTime</i> Specifies when the snapshot was taken in Coordinated Universal Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceIdentifier</i> Specifies the DB instance identifier of the DB instance this DB snapshot was created from.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSnapshotIdentifier</i> Specifies the identifier for the DB snapshot.<br/>        """
        pass

    def copy_option_group(self, TargetOptionGroupDescription: str, TargetOptionGroupIdentifier: str, SourceOptionGroupIdentifier: str, Tags: List[Tag]=None) -> CopyOptionGroupResult:
        r"""Copies the specified option group.

        :param self:
        :param Tags:  A list of tags. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html">Tagging Amazon RDS Resources</a> in the <i>Amazon RDS User Guide.</i> <br/>TargetOptionGroupDescription:  The description for the copied option group.<br/>TargetOptionGroupIdentifier:  The identifier for the copied option group. Constraints: <ul> <li> Can't be null, empty, or blank </li> <li> Must contain from 1 to 255 letters, numbers, or hyphens </li> <li> First character must be a letter </li> <li> Can't end with a hyphen or contain two consecutive hyphens </li> </ul> Example: <code>my-option-group</code> <br/>SourceOptionGroupIdentifier:  The identifier for the source option group.  Constraints: <ul> <li> Must specify a valid option group. </li> </ul><br/>
        :return: OptionGroup:  <p/>:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OptionGroupArn</i> The Amazon Resource Name (ARN) for the option group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> If <b>AllowsVpcAndNonVpcInstanceMemberships</b> is <code>false</code>, this field is blank. If <b>AllowsVpcAndNonVpcInstanceMemberships</b> is <code>true</code> and this field is blank, then this option group can be applied to both VPC and non-VPC instances. If this field contains a value, then this option group can only be applied to instances that are in the VPC indicated by this field. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowsVpcAndNonVpcInstanceMemberships</i> Indicates whether this option group can be applied to both VPC and non-VPC instances. The value <code>true</code> indicates the option group can be applied to both VPC and non-VPC instances. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Options</i> Indicates what options are available in the option group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MajorEngineVersion</i> Indicates the major engine version associated with this option group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineName</i> Indicates the name of the engine that this option group can be applied to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OptionGroupDescription</i> Provides a description of the option group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OptionGroupName</i> Specifies the name of the option group.<br/>        """
        pass

    def create_custom_availability_zone(self, CustomAvailabilityZoneName: str, ExistingVpnId: str=None, NewVpnTunnelName: str=None, VpnTunnelOriginatorIP: str=None) -> CreateCustomAvailabilityZoneResult:
        r"""Creates a custom Availability Zone (AZ). A custom AZ is an on-premises AZ that is integrated with a VMware vSphere cluster. For more information about RDS on VMware, see the <a href="https://docs.aws.amazon.com/AmazonRDS/latest/RDSonVMwareUserGuide/rds-on-vmware.html"> RDS on VMware User Guide.</a> 

        :param self:
        :param VpnTunnelOriginatorIP:  The IP address of network traffic from your on-premises data center. A custom AZ receives the network traffic. Specify this parameter only if <code>ExistingVpnId</code> isn't specified.<br/>NewVpnTunnelName:  The name of a new VPN tunnel between the Amazon RDS website and the VMware vSphere cluster. Specify this parameter only if <code>ExistingVpnId</code> isn't specified.<br/>ExistingVpnId:  The ID of an existing virtual private network (VPN) between the Amazon RDS website and the VMware vSphere cluster.<br/>CustomAvailabilityZoneName:  The name of the custom Availability Zone (AZ).<br/>
        :return: CustomAvailabilityZone:  A custom Availability Zone (AZ) is an on-premises AZ that is integrated with a VMware vSphere cluster. For more information about RDS on VMware, see the <a href="https://docs.aws.amazon.com/AmazonRDS/latest/RDSonVMwareUserGuide/rds-on-vmware.html"> RDS on VMware User Guide.</a> :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpnDetails</i> Information about the virtual private network (VPN) between the VMware vSphere cluster and the Amazon Web Services website.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>VpnDetails</b>: Information about the virtual private network (VPN) between the VMware vSphere cluster and the Amazon Web Services website.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomAvailabilityZoneStatus</i> The status of the custom AZ.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomAvailabilityZoneName</i> The name of the custom AZ.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomAvailabilityZoneId</i> The identifier of the custom AZ. Amazon RDS generates a unique identifier when a custom AZ is created.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VpnState</i> The state of the VPN.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VpnName</i> The name of the VPN.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VpnPSK</i> The preshared key (PSK) for the VPN.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VpnGatewayIp</i> The IP address of network traffic from Amazon Web Services to your on-premises data center.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VpnTunnelOriginatorIP</i> The IP address of network traffic from your on-premises data center. A custom AZ receives the network traffic.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VpnId</i> The ID of the VPN.<br/>        """
        pass

    def create_db_cluster(self, Engine: str, DBClusterIdentifier: str, AvailabilityZones: List[String]=None, BackupRetentionPeriod: int=None, CharacterSetName: str=None, DatabaseName: str=None, DBClusterParameterGroupName: str=None, VpcSecurityGroupIds: List[String]=None, DBSubnetGroupName: str=None, EngineVersion: str=None, Port: int=None, MasterUsername: str=None, MasterUserPassword: str=None, OptionGroupName: str=None, PreferredBackupWindow: str=None, PreferredMaintenanceWindow: str=None, ReplicationSourceIdentifier: str=None, Tags: List[Tag]=None, StorageEncrypted: BooleanOptional=None, KmsKeyId: str=None, PreSignedUrl: str=None, EnableIAMDatabaseAuthentication: BooleanOptional=None, BacktrackWindow: LongOptional=None, EnableCloudwatchLogsExports: List[String]=None, EngineMode: str=None, ScalingConfiguration: ScalingConfiguration=None, DeletionProtection: BooleanOptional=None, GlobalClusterIdentifier: str=None, EnableHttpEndpoint: BooleanOptional=None, CopyTagsToSnapshot: BooleanOptional=None, Domain: str=None, DomainIAMRoleName: str=None, EnableGlobalWriteForwarding: BooleanOptional=None, SourceRegion: str=None) -> CreateDBClusterResult:
        r"""Creates a new Amazon Aurora DB cluster. You can use the <code>ReplicationSourceIdentifier</code> parameter to create the DB cluster as a read replica of another DB cluster or Amazon RDS MySQL or PostgreSQL DB instance. For cross-region replication where the DB cluster identified by <code>ReplicationSourceIdentifier</code> is encrypted, you must also specify the <code>PreSignedUrl</code> parameter. For more information on Amazon Aurora, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html"> What Is Amazon Aurora?</a> in the <i>Amazon Aurora User Guide.</i>  <note> This action only applies to Aurora DB clusters. </note>

        :param self:
        :param SourceRegion:  The ID of the region that contains the source for the db cluster.<br/>EnableGlobalWriteForwarding:  A value that indicates whether to enable this DB cluster to forward write operations to the primary cluster of an Aurora global database (<a>GlobalCluster</a>). By default, write operations are not allowed on Aurora DB clusters that are secondary clusters in an Aurora global database. You can set this value only on Aurora DB clusters that are members of an Aurora global database. With this parameter enabled, a secondary cluster can forward writes to the current primary cluster and the resulting changes are replicated back to this cluster. For the primary DB cluster of an Aurora global database, this value is used immediately if the primary is demoted by the <a>FailoverGlobalCluster</a> API operation, but it does nothing until then. <br/>DomainIAMRoleName:  Specify the name of the IAM role to be used when making API calls to the Directory Service.<br/>Domain:  The Active Directory directory ID to create the DB cluster in.  For Amazon Aurora DB clusters, Amazon RDS can use Kerberos Authentication to authenticate users that connect to the DB cluster. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/kerberos-authentication.html">Kerberos Authentication</a> in the <i>Amazon Aurora User Guide</i>. <br/>CopyTagsToSnapshot:  A value that indicates whether to copy all tags from the DB cluster to snapshots of the DB cluster. The default is not to copy them.<br/>EnableHttpEndpoint:  A value that indicates whether to enable the HTTP endpoint for an Aurora Serverless DB cluster. By default, the HTTP endpoint is disabled. When enabled, the HTTP endpoint provides a connectionless web service API for running SQL queries on the Aurora Serverless DB cluster. You can also query your database from inside the RDS console with the query editor. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/data-api.html">Using the Data API for Aurora Serverless</a> in the <i>Amazon Aurora User Guide</i>.<br/>GlobalClusterIdentifier:   The global cluster ID of an Aurora cluster that becomes the primary cluster in the new global database cluster. <br/>DeletionProtection:  A value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled.<br/>ScalingConfiguration:  For DB clusters in <code>serverless</code> DB engine mode, the scaling properties of the DB cluster.:<br/>EngineMode:  The DB engine mode of the DB cluster, either <code>provisioned</code>, <code>serverless</code>, <code>parallelquery</code>, <code>global</code>, or <code>multimaster</code>. The <code>parallelquery</code> engine mode isn't required for Aurora MySQL version 1.23 and higher 1.x versions, and version 2.09 and higher 2.x versions. The <code>global</code> engine mode isn't required for Aurora MySQL version 1.22 and higher 1.x versions, and <code>global</code> engine mode isn't required for any 2.x versions. The <code>multimaster</code> engine mode only applies for DB clusters created with Aurora MySQL version 5.6.10a. For Aurora PostgreSQL, the <code>global</code> engine mode isn't required, and both the <code>parallelquery</code> and the <code>multimaster</code> engine modes currently aren't supported. Limitations and requirements apply to some DB engine modes. For more information, see the following sections in the <i>Amazon Aurora User Guide</i>: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html#aurora-serverless.limitations"> Limitations of Aurora Serverless</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-mysql-parallel-query.html#aurora-mysql-parallel-query-limitations"> Limitations of Parallel Query</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database.html#aurora-global-database.limitations"> Limitations of Aurora Global Databases</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-multi-master.html#aurora-multi-master-limitations"> Limitations of Multi-Master Clusters</a>  </li> </ul><br/>EnableCloudwatchLogsExports:  The list of log types that need to be enabled for exporting to CloudWatch Logs. The values in the list depend on the DB engine being used. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_LogAccess.html#USER_LogAccess.Procedural.UploadtoCloudWatch">Publishing Database Logs to Amazon CloudWatch Logs</a> in the <i>Amazon Aurora User Guide</i>.  <b>Aurora MySQL</b>  Possible values are <code>audit</code>, <code>error</code>, <code>general</code>, and <code>slowquery</code>.   <b>Aurora PostgreSQL</b>  Possible value is <code>postgresql</code>. <br/>BacktrackWindow:  The target backtrack window, in seconds. To disable backtracking, set this value to 0.  <note> Currently, Backtrack is only supported for Aurora MySQL DB clusters. </note> Default: 0 Constraints: <ul> <li> If specified, this value must be set to a number from 0 to 259,200 (72 hours). </li> </ul><br/>EnableIAMDatabaseAuthentication:  A value that indicates whether to enable mapping of Amazon Web Services Identity and Access Management (IAM) accounts to database accounts. By default, mapping is disabled. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.IAMDBAuth.html"> IAM Database Authentication</a> in the <i>Amazon Aurora User Guide.</i> <br/>PreSignedUrl:  A URL that contains a Signature Version 4 signed request for the <code>CreateDBCluster</code> action to be called in the source Amazon Web Services Region where the DB cluster is replicated from. You only need to specify <code>PreSignedUrl</code> when you are performing cross-region replication from an encrypted DB cluster. The pre-signed URL must be a valid request for the <code>CreateDBCluster</code> API action that can be executed in the source Amazon Web Services Region that contains the encrypted DB cluster to be copied. The pre-signed URL request must contain the following parameter values: <ul> <li>  <code>KmsKeyId</code> - The Amazon Web Services KMS key identifier for the key to use to encrypt the copy of the DB cluster in the destination Amazon Web Services Region. This should refer to the same Amazon Web Services KMS CMK for both the <code>CreateDBCluster</code> action that is called in the destination Amazon Web Services Region, and the action contained in the pre-signed URL. </li> <li>  <code>DestinationRegion</code> - The name of the Amazon Web Services Region that Aurora read replica will be created in. </li> <li>  <code>ReplicationSourceIdentifier</code> - The DB cluster identifier for the encrypted DB cluster to be copied. This identifier must be in the Amazon Resource Name (ARN) format for the source Amazon Web Services Region. For example, if you are copying an encrypted DB cluster from the us-west-2 Amazon Web Services Region, then your <code>ReplicationSourceIdentifier</code> would look like Example: <code>arn:aws:rds:us-west-2:123456789012:cluster:aurora-cluster1</code>. </li> </ul> To learn how to generate a Signature Version 4 signed request, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-query-string-auth.html"> Authenticating Requests: Using Query Parameters (Amazon Web Services Signature Version 4)</a> and <a href="https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html"> Signature Version 4 Signing Process</a>. <note> If you are using an Amazon Web Services SDK tool or the CLI, you can specify <code>SourceRegion</code> (or <code>--source-region</code> for the CLI) instead of specifying <code>PreSignedUrl</code> manually. Specifying <code>SourceRegion</code> autogenerates a pre-signed URL that is a valid request for the operation that can be executed in the source Amazon Web Services Region. </note><br/>KmsKeyId:  The Amazon Web Services KMS key identifier for an encrypted DB cluster. The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the Amazon Web Services KMS customer master key (CMK). To use a CMK in a different Amazon Web Services account, specify the key ARN or alias ARN. When a CMK isn't specified in <code>KmsKeyId</code>: <ul> <li> If <code>ReplicationSourceIdentifier</code> identifies an encrypted source, then Amazon RDS will use the CMK used to encrypt the source. Otherwise, Amazon RDS will use your default CMK.  </li> <li> If the <code>StorageEncrypted</code> parameter is enabled and <code>ReplicationSourceIdentifier</code> isn't specified, then Amazon RDS will use your default CMK. </li> </ul> There is a default CMK for your Amazon Web Services account. Your Amazon Web Services account has a different default CMK for each Amazon Web Services Region. If you create a read replica of an encrypted DB cluster in another Amazon Web Services Region, you must set <code>KmsKeyId</code> to a Amazon Web Services KMS key identifier that is valid in the destination Amazon Web Services Region. This CMK is used to encrypt the read replica in that Amazon Web Services Region.<br/>StorageEncrypted:  A value that indicates whether the DB cluster is encrypted.<br/>Tags:  Tags to assign to the DB cluster.<br/>ReplicationSourceIdentifier:  The Amazon Resource Name (ARN) of the source DB instance or DB cluster if this DB cluster is created as a read replica.<br/>PreferredMaintenanceWindow:  The weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC). Format: <code>ddd:hh24:mi-ddd:hh24:mi</code>  The default is a 30-minute window selected at random from an 8-hour block of time for each Amazon Web Services Region, occurring on a random day of the week. To see the time blocks available, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_UpgradeDBInstance.Maintenance.html#AdjustingTheMaintenanceWindow.Aurora"> Adjusting the Preferred DB Cluster Maintenance Window</a> in the <i>Amazon Aurora User Guide.</i>  Valid Days: Mon, Tue, Wed, Thu, Fri, Sat, Sun. Constraints: Minimum 30-minute window.<br/>PreferredBackupWindow:  The daily time range during which automated backups are created if automated backups are enabled using the <code>BackupRetentionPeriod</code> parameter.  The default is a 30-minute window selected at random from an 8-hour block of time for each Amazon Web Services Region. To view the time blocks available, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Managing.Backups.html#Aurora.Managing.Backups.BackupWindow"> Backup window</a> in the <i>Amazon Aurora User Guide.</i>  Constraints: <ul> <li> Must be in the format <code>hh24:mi-hh24:mi</code>. </li> <li> Must be in Universal Coordinated Time (UTC). </li> <li> Must not conflict with the preferred maintenance window. </li> <li> Must be at least 30 minutes. </li> </ul><br/>OptionGroupName:  A value that indicates that the DB cluster should be associated with the specified option group. Permanent options can't be removed from an option group. The option group can't be removed from a DB cluster once it is associated with a DB cluster.<br/>MasterUserPassword:  The password for the master database user. This password can contain any printable ASCII character except "/", triple-quotes, or "@". Constraints: Must contain from 8 to 41 characters.<br/>MasterUsername:  The name of the master user for the DB cluster. Constraints: <ul> <li> Must be 1 to 16 letters or numbers. </li> <li> First character must be a letter. </li> <li> Can't be a reserved word for the chosen database engine. </li> </ul><br/>Port:  The port number on which the instances in the DB cluster accept connections.  Default: <code>3306</code> if engine is set as aurora or <code>5432</code> if set to aurora-postgresql. <br/>EngineVersion:  The version number of the database engine to use. To list all of the available engine versions for <code>aurora</code> (for MySQL 5.6-compatible Aurora), use the following command:  <code>aws rds describe-db-engine-versions --engine aurora --query "DBEngineVersions[].EngineVersion"</code>  To list all of the available engine versions for <code>aurora-mysql</code> (for MySQL 5.7-compatible Aurora), use the following command:  <code>aws rds describe-db-engine-versions --engine aurora-mysql --query "DBEngineVersions[].EngineVersion"</code>  To list all of the available engine versions for <code>aurora-postgresql</code>, use the following command:  <code>aws rds describe-db-engine-versions --engine aurora-postgresql --query "DBEngineVersions[].EngineVersion"</code>   <b>Aurora MySQL</b>  Example: <code>5.6.10a</code>, <code>5.6.mysql_aurora.1.19.2</code>, <code>5.7.12</code>, <code>5.7.mysql_aurora.2.04.5</code>   <b>Aurora PostgreSQL</b>  Example: <code>9.6.3</code>, <code>10.7</code> <br/>Engine:  The name of the database engine to be used for this DB cluster. Valid Values: <code>aurora</code> (for MySQL 5.6-compatible Aurora), <code>aurora-mysql</code> (for MySQL 5.7-compatible Aurora), and <code>aurora-postgresql</code> <br/>DBSubnetGroupName:  A DB subnet group to associate with this DB cluster. Constraints: Must match the name of an existing DBSubnetGroup. Must not be default. Example: <code>mySubnetgroup</code> <br/>VpcSecurityGroupIds:  A list of EC2 VPC security groups to associate with this DB cluster.<br/>DBClusterParameterGroupName:   The name of the DB cluster parameter group to associate with this DB cluster. If you do not specify a value, then the default DB cluster parameter group for the specified DB engine and version is used.  Constraints: <ul> <li> If supplied, must match the name of an existing DB cluster parameter group. </li> </ul><br/>DBClusterIdentifier:  The DB cluster identifier. This parameter is stored as a lowercase string. Constraints: <ul> <li> Must contain from 1 to 63 letters, numbers, or hyphens. </li> <li> First character must be a letter. </li> <li> Can't end with a hyphen or contain two consecutive hyphens. </li> </ul> Example: <code>my-cluster1</code> <br/>DatabaseName:  The name for your database of up to 64 alphanumeric characters. If you do not provide a name, Amazon RDS doesn't create a database in the DB cluster you are creating.<br/>CharacterSetName:  A value that indicates that the DB cluster should be associated with the specified CharacterSet.<br/>BackupRetentionPeriod:  The number of days for which automated backups are retained. Default: 1 Constraints: <ul> <li> Must be a value from 1 to 35 </li> </ul><br/>AvailabilityZones:  A list of Availability Zones (AZs) where instances in the DB cluster can be created. For information on Amazon Web Services Regions and Availability Zones, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Concepts.RegionsAndAvailabilityZones.html">Choosing the Regions and Availability Zones</a> in the <i>Amazon Aurora User Guide</i>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TimeoutAction</i> The action to take when the timeout is reached, either <code>ForceApplyCapacityChange</code> or <code>RollbackCapacityChange</code>.  <code>ForceApplyCapacityChange</code> sets the capacity to the specified value as soon as possible.  <code>RollbackCapacityChange</code>, the default, ignores the capacity change if a scaling point isn't found in the timeout period. <important> If you specify <code>ForceApplyCapacityChange</code>, connections that prevent Aurora Serverless from finding a scaling point might be dropped. </important> For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.how-it-works.html#aurora-serverless.how-it-works.auto-scaling"> Autoscaling for Aurora Serverless</a> in the <i>Amazon Aurora User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecondsUntilAutoPause</i> The time, in seconds, before an Aurora DB cluster in <code>serverless</code> mode is paused. Specify a value between 300 and 86,400 seconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoPause</i> A value that indicates whether to allow or disallow automatic pause for an Aurora DB cluster in <code>serverless</code> DB engine mode. A DB cluster can be paused only when it's idle (it has no connections). <note> If a DB cluster is paused for more than seven days, the DB cluster might be backed up with a snapshot. In this case, the DB cluster is restored when there is a request to connect to it.  </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxCapacity</i> The maximum capacity for an Aurora DB cluster in <code>serverless</code> DB engine mode. For Aurora MySQL, valid capacity values are <code>1</code>, <code>2</code>, <code>4</code>, <code>8</code>, <code>16</code>, <code>32</code>, <code>64</code>, <code>128</code>, and <code>256</code>. For Aurora PostgreSQL, valid capacity values are <code>2</code>, <code>4</code>, <code>8</code>, <code>16</code>, <code>32</code>, <code>64</code>, <code>192</code>, and <code>384</code>. The maximum capacity must be greater than or equal to the minimum capacity.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MinCapacity</i> The minimum capacity for an Aurora DB cluster in <code>serverless</code> DB engine mode. For Aurora MySQL, valid capacity values are <code>1</code>, <code>2</code>, <code>4</code>, <code>8</code>, <code>16</code>, <code>32</code>, <code>64</code>, <code>128</code>, and <code>256</code>. For Aurora PostgreSQL, valid capacity values are <code>2</code>, <code>4</code>, <code>8</code>, <code>16</code>, <code>32</code>, <code>64</code>, <code>192</code>, and <code>384</code>. The minimum capacity must be less than or equal to the maximum capacity.<br/>
        :return: DBCluster:  Contains the details of an Amazon Aurora DB cluster.  This data type is used as a response element in the <code>DescribeDBClusters</code>, <code>StopDBCluster</code>, and <code>StartDBCluster</code> actions. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingModifiedValues</i> A value that specifies that changes to the DB cluster are pending. This element is only included when changes are pending. Specific changes are identified by subelements.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingModifiedValues</b>: A value that specifies that changes to the DB cluster are pending. This element is only included when changes are pending. Specific changes are identified by subelements.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalWriteForwardingRequested</i> Specifies whether you have requested to enable write forwarding for a secondary cluster in an Aurora global database. Because write forwarding takes time to enable, check the value of <code>GlobalWriteForwardingStatus</code> to confirm that the request has completed before using the write forwarding feature for this cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalWriteForwardingStatus</i> Specifies whether a secondary cluster in an Aurora global database has write forwarding enabled, not enabled, or is in the process of enabling it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TagList</i> A list of tags. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html">Tagging Amazon RDS Resources</a> in the <i>Amazon RDS User Guide.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainMemberships</i> The Active Directory Domain membership records associated with the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CrossAccountClone</i> Specifies whether the DB cluster is a clone of a DB cluster owned by a different Amazon Web Services account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CopyTagsToSnapshot</i> Specifies whether tags are copied from the DB cluster to snapshots of the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamKinesisStreamName</i> The name of the Amazon Kinesis data stream used for the database activity stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamKmsKeyId</i> The Amazon Web Services KMS key identifier used for encrypting messages in the database activity stream. The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the Amazon Web Services KMS customer master key (CMK).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamStatus</i> The status of the database activity stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamMode</i> The mode of the database activity stream. Database events such as a change or access generate an activity stream event. The database session can handle these events either synchronously or asynchronously. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HttpEndpointEnabled</i> A value that indicates whether the HTTP endpoint for an Aurora Serverless DB cluster is enabled. When enabled, the HTTP endpoint provides a connectionless web service API for running SQL queries on the Aurora Serverless DB cluster. You can also query your database from inside the RDS console with the query editor. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/data-api.html">Using the Data API for Aurora Serverless</a> in the <i>Amazon Aurora User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeletionProtection</i> Indicates if the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ScalingConfigurationInfo</i> Shows the scaling configuration for an Aurora DB cluster in <code>serverless</code> DB engine mode. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html">Using Amazon Aurora Serverless</a> in the <i>Amazon Aurora User Guide</i>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ScalingConfigurationInfo</b>: Shows the scaling configuration for an Aurora DB cluster in <code>serverless</code> DB engine mode. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html">Using Amazon Aurora Serverless</a> in the <i>Amazon Aurora User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineMode</i> The DB engine mode of the DB cluster, either <code>provisioned</code>, <code>serverless</code>, <code>parallelquery</code>, <code>global</code>, or <code>multimaster</code>. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBCluster.html"> CreateDBCluster</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Capacity</i> The current capacity of an Aurora Serverless DB cluster. The capacity is 0 (zero) when the cluster is paused. For more information about Aurora Serverless, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html">Using Amazon Aurora Serverless</a> in the <i>Amazon Aurora User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnabledCloudwatchLogsExports</i> A list of log types that this DB cluster is configured to export to CloudWatch Logs. Log types vary by DB engine. For information about the log types for each DB engine, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_LogAccess.html">Amazon RDS Database Log Files</a> in the <i>Amazon Aurora User Guide.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BacktrackConsumedChangeRecords</i> The number of change records stored for Backtrack.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BacktrackWindow</i> The target backtrack window, in seconds. If this value is set to 0, backtracking is disabled for the DB cluster. Otherwise, backtracking is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EarliestBacktrackTime</i> The earliest time to which a DB cluster can be backtracked.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterCreateTime</i> Specifies the time when the DB cluster was created, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloneGroupId</i> Identifies the clone group to which the DB cluster is associated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IAMDatabaseAuthenticationEnabled</i> A value that indicates whether the mapping of Amazon Web Services Identity and Access Management (IAM) accounts to database accounts is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociatedRoles</i> Provides a list of the Amazon Web Services Identity and Access Management (IAM) roles that are associated with the DB cluster. IAM roles that are associated with a DB cluster grant permission for the DB cluster to access other Amazon Web Services on your behalf.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterArn</i> The Amazon Resource Name (ARN) for the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DbClusterResourceId</i> The Amazon Web Services Region-unique, immutable identifier for the DB cluster. This identifier is found in Amazon Web Services CloudTrail log entries whenever the Amazon Web Services KMS CMK for the DB cluster is accessed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> If <code>StorageEncrypted</code> is enabled, the Amazon Web Services KMS key identifier for the encrypted DB cluster. The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the Amazon Web Services KMS customer master key (CMK).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageEncrypted</i> Specifies whether the DB cluster is encrypted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HostedZoneId</i> Specifies the ID that Amazon Route 53 assigns when you create a hosted zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcSecurityGroups</i> Provides a list of VPC security groups that the DB cluster belongs to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterMembers</i> Provides the list of instances that make up the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadReplicaIdentifiers</i> Contains one or more identifiers of the read replicas associated with this DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationSourceIdentifier</i> Contains the identifier of the source DB cluster if this DB cluster is a read replica.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i> Specifies the weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredBackupWindow</i> Specifies the daily time range during which automated backups are created if automated backups are enabled, as determined by the <code>BackupRetentionPeriod</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterOptionGroupMemberships</i> Provides the list of option group memberships for this DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUsername</i> Contains the master username for the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Specifies the port that the database engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestRestorableTime</i> Specifies the latest time to which a database can be restored with point-in-time restore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> Indicates the database engine version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> The name of the database engine to be used for this DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiAZ</i> Specifies whether the DB cluster has instances in multiple Availability Zones.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomEndpoints</i> Identifies all custom endpoints associated with the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReaderEndpoint</i> The reader endpoint for the DB cluster. The reader endpoint for a DB cluster load-balances connections across the Aurora Replicas that are available in a DB cluster. As clients request new connections to the reader endpoint, Aurora distributes the connection requests among the Aurora Replicas in the DB cluster. This functionality can help balance your read workload across multiple Aurora Replicas in your DB cluster.  If a failover occurs, and the Aurora Replica that you are connected to is promoted to be the primary instance, your connection is dropped. To continue sending your read workload to other Aurora Replicas in the cluster, you can then reconnect to the reader endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i> Specifies the connection endpoint for the primary instance of the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EarliestRestorableTime</i> The earliest time to which a database can be restored with point-in-time restore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PercentProgress</i> Specifies the progress of the operation as a percentage.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Specifies the current state of this DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroup</i> Specifies information on the subnet group associated with the DB cluster, including the name, description, and subnets in the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterParameterGroup</i> Specifies the name of the DB cluster parameter group for the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterIdentifier</i> Contains a user-supplied DB cluster identifier. This identifier is the unique key that identifies a DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> Contains the name of the initial database of this DB cluster that was provided at create time, if one was specified when the DB cluster was created. This same name is returned for the life of the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CharacterSetName</i> If present, specifies the name of the character set that this cluster is associated with.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupRetentionPeriod</i> Specifies the number of days for which automatic DB snapshots are retained.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZones</i> Provides the list of Availability Zones (AZs) where instances in the DB cluster can be created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllocatedStorage</i> For all database engines except Amazon Aurora, <code>AllocatedStorage</code> specifies the allocated storage size in gibibytes (GiB). For Aurora, <code>AllocatedStorage</code> always returns 1, because Aurora DB cluster storage size isn't fixed, but instead automatically adjusts as needed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TimeoutAction</i> The timeout action of a call to <code>ModifyCurrentDBClusterCapacity</code>, either <code>ForceApplyCapacityChange</code> or <code>RollbackCapacityChange</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecondsUntilAutoPause</i> The remaining amount of time, in seconds, before the Aurora DB cluster in <code>serverless</code> mode is paused. A DB cluster can be paused only when it's idle (it has no connections).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoPause</i> A value that indicates whether automatic pause is allowed for the Aurora DB cluster in <code>serverless</code> DB engine mode. When the value is set to false for an Aurora Serverless DB cluster, the DB cluster automatically resumes.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxCapacity</i> The maximum capacity for an Aurora DB cluster in <code>serverless</code> DB engine mode.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MinCapacity</i> The maximum capacity for the Aurora DB cluster in <code>serverless</code> DB engine mode.<br/>A list of the log types whose configuration is still pending. In other words, these log types are in the process of being activated or deactivated.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingCloudwatchLogsExports</b>: A list of the log types whose configuration is still pending. In other words, these log types are in the process of being activated or deactivated.        """
        pass

    def create_db_cluster_endpoint(self, EndpointType: str, DBClusterEndpointIdentifier: str, DBClusterIdentifier: str, StaticMembers: List[String]=None, ExcludedMembers: List[String]=None, Tags: List[Tag]=None) -> DBClusterEndpoint:
        r"""Creates a new custom endpoint and associates it with an Amazon Aurora DB cluster. <note> This action only applies to Aurora DB clusters. </note>

        :param self:
        :param Tags:  The tags to be assigned to the Amazon RDS resource.<br/>ExcludedMembers:  List of DB instance identifiers that aren't part of the custom endpoint group. All other eligible instances are reachable through the custom endpoint. Only relevant if the list of static members is empty.<br/>StaticMembers:  List of DB instance identifiers that are part of the custom endpoint group.<br/>EndpointType:  The type of the endpoint. One of: <code>READER</code>, <code>WRITER</code>, <code>ANY</code>.<br/>DBClusterEndpointIdentifier:  The identifier to use for the new endpoint. This parameter is stored as a lowercase string.<br/>DBClusterIdentifier:  The DB cluster identifier of the DB cluster associated with the endpoint. This parameter is stored as a lowercase string.<br/>
        :return: DBClusterEndpointArn:  The Amazon Resource Name (ARN) for the endpoint.<br/>ExcludedMembers:  List of DB instance identifiers that aren't part of the custom endpoint group. All other eligible instances are reachable through the custom endpoint. Only relevant if the list of static members is empty.<br/>StaticMembers:  List of DB instance identifiers that are part of the custom endpoint group.<br/>CustomEndpointType:  The type associated with a custom endpoint. One of: <code>READER</code>, <code>WRITER</code>, <code>ANY</code>.<br/>EndpointType:  The type of the endpoint. One of: <code>READER</code>, <code>WRITER</code>, <code>CUSTOM</code>.<br/>Status:  The current status of the endpoint. One of: <code>creating</code>, <code>available</code>, <code>deleting</code>, <code>inactive</code>, <code>modifying</code>. The <code>inactive</code> state applies to an endpoint that can't be used for a certain kind of cluster, such as a <code>writer</code> endpoint for a read-only secondary cluster in a global database.<br/>Endpoint:  The DNS address of the endpoint.<br/>DBClusterEndpointResourceIdentifier:  A unique system-generated identifier for an endpoint. It remains the same for the whole life of the endpoint.<br/>DBClusterIdentifier:  The DB cluster identifier of the DB cluster associated with the endpoint. This parameter is stored as a lowercase string.<br/>DBClusterEndpointIdentifier:  The identifier associated with the endpoint. This parameter is stored as a lowercase string.<br/>        """
        pass

    def create_db_cluster_parameter_group(self, Description: str, DBParameterGroupFamily: str, DBClusterParameterGroupName: str, Tags: List[Tag]=None) -> CreateDBClusterParameterGroupResult:
        r"""Creates a new DB cluster parameter group. Parameters in a DB cluster parameter group apply to all of the instances in a DB cluster.  A DB cluster parameter group is initially created with the default parameters for the database engine used by instances in the DB cluster. To provide custom values for any of the parameters, you must modify the group after creating it using <code>ModifyDBClusterParameterGroup</code>. Once you've created a DB cluster parameter group, you need to associate it with your DB cluster using <code>ModifyDBCluster</code>. When you associate a new DB cluster parameter group with a running DB cluster, you need to reboot the DB instances in the DB cluster without failover for the new DB cluster parameter group and associated settings to take effect.  <important> After you create a DB cluster parameter group, you should wait at least 5 minutes before creating your first DB cluster that uses that DB cluster parameter group as the default parameter group. This allows Amazon RDS to fully complete the create action before the DB cluster parameter group is used as the default for a new DB cluster. This is especially important for parameters that are critical when creating the default database for a DB cluster, such as the character set for the default database defined by the <code>character_set_database</code> parameter. You can use the <i>Parameter Groups</i> option of the <a href="https://console.aws.amazon.com/rds/">Amazon RDS console</a> or the <code>DescribeDBClusterParameters</code> action to verify that your DB cluster parameter group has been created or modified. </important> For more information on Amazon Aurora, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html"> What Is Amazon Aurora?</a> in the <i>Amazon Aurora User Guide.</i>  <note> This action only applies to Aurora DB clusters. </note>

        :param self:
        :param Tags:  Tags to assign to the DB cluster parameter group.<br/>Description:  The description for the DB cluster parameter group.<br/>DBParameterGroupFamily:  The DB cluster parameter group family name. A DB cluster parameter group can be associated with one and only one DB cluster parameter group family, and can be applied only to a DB cluster running a database engine and engine version compatible with that DB cluster parameter group family.  <b>Aurora MySQL</b>  Example: <code>aurora5.6</code>, <code>aurora-mysql5.7</code>   <b>Aurora PostgreSQL</b>  Example: <code>aurora-postgresql9.6</code>  To list all of the available parameter group families for a DB engine, use the following command:  <code>aws rds describe-db-engine-versions --query "DBEngineVersions[].DBParameterGroupFamily" --engine &lt;engine&gt;</code>  For example, to list all of the available parameter group families for the Aurora PostgreSQL DB engine, use the following command:  <code>aws rds describe-db-engine-versions --query "DBEngineVersions[].DBParameterGroupFamily" --engine aurora-postgresql</code>  <note> The output contains duplicates. </note> The following are the valid DB engine values: <ul> <li>  <code>aurora</code> (for MySQL 5.6-compatible Aurora) </li> <li>  <code>aurora-mysql</code> (for MySQL 5.7-compatible Aurora) </li> <li>  <code>aurora-postgresql</code>  </li> </ul><br/>DBClusterParameterGroupName:  The name of the DB cluster parameter group. Constraints: <ul> <li> Must match the name of an existing DB cluster parameter group. </li> </ul> <note> This value is stored as a lowercase string. </note><br/>
        :return: DBClusterParameterGroup:  Contains the details of an Amazon RDS DB cluster parameter group.  This data type is used as a response element in the <code>DescribeDBClusterParameterGroups</code> action. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterParameterGroupArn</i> The Amazon Resource Name (ARN) for the DB cluster parameter group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> Provides the customer-specified description for this DB cluster parameter group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBParameterGroupFamily</i> The name of the DB parameter group family that this DB cluster parameter group is compatible with.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterParameterGroupName</i> The name of the DB cluster parameter group.<br/>        """
        pass

    def create_db_cluster_snapshot(self, DBClusterIdentifier: str, DBClusterSnapshotIdentifier: str, Tags: List[Tag]=None) -> CreateDBClusterSnapshotResult:
        r"""Creates a snapshot of a DB cluster. For more information on Amazon Aurora, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html"> What Is Amazon Aurora?</a> in the <i>Amazon Aurora User Guide.</i>  <note> This action only applies to Aurora DB clusters. </note>

        :param self:
        :param Tags:  The tags to be assigned to the DB cluster snapshot.<br/>DBClusterIdentifier:  The identifier of the DB cluster to create a snapshot for. This parameter isn't case-sensitive. Constraints: <ul> <li> Must match the identifier of an existing DBCluster. </li> </ul> Example: <code>my-cluster1</code> <br/>DBClusterSnapshotIdentifier:  The identifier of the DB cluster snapshot. This parameter is stored as a lowercase string. Constraints: <ul> <li> Must contain from 1 to 63 letters, numbers, or hyphens. </li> <li> First character must be a letter. </li> <li> Can't end with a hyphen or contain two consecutive hyphens. </li> </ul> Example: <code>my-cluster1-snapshot1</code> <br/>
        :return: DBClusterSnapshot:  Contains the details for an Amazon RDS DB cluster snapshot  This data type is used as a response element in the <code>DescribeDBClusterSnapshots</code> action. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TagList</i> A list of tags. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html">Tagging Amazon RDS Resources</a> in the <i>Amazon RDS User Guide.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IAMDatabaseAuthenticationEnabled</i> True if mapping of Amazon Web Services Identity and Access Management (IAM) accounts to database accounts is enabled, and otherwise false.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceDBClusterSnapshotArn</i> If the DB cluster snapshot was copied from a source DB cluster snapshot, the Amazon Resource Name (ARN) for the source DB cluster snapshot, otherwise, a null value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterSnapshotArn</i> The Amazon Resource Name (ARN) for the DB cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> If <code>StorageEncrypted</code> is true, the Amazon Web Services KMS key identifier for the encrypted DB cluster snapshot. The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the Amazon Web Services KMS customer master key (CMK).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageEncrypted</i> Specifies whether the DB cluster snapshot is encrypted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PercentProgress</i> Specifies the percentage of the estimated data that has been transferred.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotType</i> Provides the type of the DB cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LicenseModel</i> Provides the license model information for this DB cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> Provides the version of the database engine for this DB cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUsername</i> Provides the master username for this DB cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterCreateTime</i> Specifies the time when the DB cluster was created, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> Provides the VPC ID associated with the DB cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Specifies the port that the DB cluster was listening on at the time of the snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Specifies the status of this DB cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllocatedStorage</i> Specifies the allocated storage size in gibibytes (GiB).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineMode</i> Provides the engine mode of the database engine for this DB cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> Specifies the name of the database engine for this DB cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotCreateTime</i> Provides the time when the snapshot was taken, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterIdentifier</i> Specifies the DB cluster identifier of the DB cluster that this DB cluster snapshot was created from.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterSnapshotIdentifier</i> Specifies the identifier for the DB cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZones</i> Provides the list of Availability Zones (AZs) where instances in the DB cluster snapshot can be restored.<br/>        """
        pass

    def create_db_instance(self, Engine: str, DBInstanceClass: str, DBInstanceIdentifier: str, DBName: str=None, AllocatedStorage: int=None, MasterUsername: str=None, MasterUserPassword: str=None, DBSecurityGroups: List[String]=None, VpcSecurityGroupIds: List[String]=None, AvailabilityZone: str=None, DBSubnetGroupName: str=None, PreferredMaintenanceWindow: str=None, DBParameterGroupName: str=None, BackupRetentionPeriod: int=None, PreferredBackupWindow: str=None, Port: int=None, MultiAZ: BooleanOptional=None, EngineVersion: str=None, AutoMinorVersionUpgrade: BooleanOptional=None, LicenseModel: str=None, Iops: int=None, OptionGroupName: str=None, CharacterSetName: str=None, NcharCharacterSetName: str=None, PubliclyAccessible: BooleanOptional=None, Tags: List[Tag]=None, DBClusterIdentifier: str=None, StorageType: str=None, TdeCredentialArn: str=None, TdeCredentialPassword: str=None, StorageEncrypted: BooleanOptional=None, KmsKeyId: str=None, Domain: str=None, CopyTagsToSnapshot: BooleanOptional=None, MonitoringInterval: int=None, MonitoringRoleArn: str=None, DomainIAMRoleName: str=None, PromotionTier: int=None, Timezone: str=None, EnableIAMDatabaseAuthentication: BooleanOptional=None, EnablePerformanceInsights: BooleanOptional=None, PerformanceInsightsKMSKeyId: str=None, PerformanceInsightsRetentionPeriod: int=None, EnableCloudwatchLogsExports: List[String]=None, ProcessorFeatures: List[ProcessorFeature]=None, DeletionProtection: BooleanOptional=None, MaxAllocatedStorage: int=None, EnableCustomerOwnedIp: BooleanOptional=None) -> CreateDBInstanceResult:
        r"""Creates a new DB instance.

        :param self:
        :param EnableCustomerOwnedIp:  A value that indicates whether to enable a customer-owned IP address (CoIP) for an RDS on Outposts DB instance. A <i>CoIP</i> provides local or external connectivity to resources in your Outpost subnets through your on-premises network. For some use cases, a CoIP can provide lower latency for connections to the DB instance from outside of its virtual private cloud (VPC) on your local network. For more information about RDS on Outposts, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-on-outposts.html">Working with Amazon RDS on Amazon Web Services Outposts</a> in the <i>Amazon RDS User Guide</i>. For more information about CoIPs, see <a href="https://docs.aws.amazon.com/outposts/latest/userguide/outposts-networking-components.html#ip-addressing">Customer-owned IP addresses</a> in the <i>Amazon Web Services Outposts User Guide</i>.<br/>MaxAllocatedStorage:  The upper limit to which Amazon RDS can automatically scale the storage of the DB instance. For more information about this setting, including limitations that apply to it, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PIOPS.StorageTypes.html#USER_PIOPS.Autoscaling"> Managing capacity automatically with Amazon RDS storage autoscaling</a> in the <i>Amazon RDS User Guide</i>.<br/>DeletionProtection:  A value that indicates whether the DB instance has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_DeleteInstance.html"> Deleting a DB Instance</a>.   <b>Amazon Aurora</b>  Not applicable. You can enable or disable deletion protection for the DB cluster. For more information, see <code>CreateDBCluster</code>. DB instances in a DB cluster can be deleted even when deletion protection is enabled for the DB cluster. <br/>ProcessorFeatures:  The number of CPU cores and the number of threads per core for the DB instance class of the DB instance.<br/>EnableCloudwatchLogsExports:  The list of log types that need to be enabled for exporting to CloudWatch Logs. The values in the list depend on the DB engine being used. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.html#USER_LogAccess.Procedural.UploadtoCloudWatch">Publishing Database Logs to Amazon CloudWatch Logs </a> in the <i>Amazon Relational Database Service User Guide</i>.  <b>Amazon Aurora</b>  Not applicable. CloudWatch Logs exports are managed by the DB cluster.   <b>MariaDB</b>  Possible values are <code>audit</code>, <code>error</code>, <code>general</code>, and <code>slowquery</code>.   <b>Microsoft SQL Server</b>  Possible values are <code>agent</code> and <code>error</code>.   <b>MySQL</b>  Possible values are <code>audit</code>, <code>error</code>, <code>general</code>, and <code>slowquery</code>.   <b>Oracle</b>  Possible values are <code>alert</code>, <code>audit</code>, <code>listener</code>, <code>trace</code>, and <code>oemagent</code>.   <b>PostgreSQL</b>  Possible values are <code>postgresql</code> and <code>upgrade</code>. <br/>PerformanceInsightsRetentionPeriod:  The amount of time, in days, to retain Performance Insights data. Valid values are 7 or 731 (2 years). <br/>PerformanceInsightsKMSKeyId:  The Amazon Web Services KMS key identifier for encryption of Performance Insights data. The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the Amazon Web Services KMS customer master key (CMK). If you do not specify a value for <code>PerformanceInsightsKMSKeyId</code>, then Amazon RDS uses your default CMK. There is a default CMK for your Amazon Web Services account. Your Amazon Web Services account has a different default CMK for each Amazon Web Services Region.<br/>EnablePerformanceInsights:  A value that indicates whether to enable Performance Insights for the DB instance.  For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html">Using Amazon Performance Insights</a> in the <i>Amazon Relational Database Service User Guide</i>. <br/>EnableIAMDatabaseAuthentication:  A value that indicates whether to enable mapping of Amazon Web Services Identity and Access Management (IAM) accounts to database accounts. By default, mapping is disabled. This setting doesn't apply to Amazon Aurora. Mapping Amazon Web Services IAM accounts to database accounts is managed by the DB cluster. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.IAMDBAuth.html"> IAM Database Authentication for MySQL and PostgreSQL</a> in the <i>Amazon RDS User Guide.</i> <br/>Timezone:  The time zone of the DB instance. The time zone parameter is currently supported only by <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_SQLServer.html#SQLServer.Concepts.General.TimeZone">Microsoft SQL Server</a>. <br/>PromotionTier:  A value that specifies the order in which an Aurora Replica is promoted to the primary instance after a failure of the existing primary instance. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Managing.Backups.html#Aurora.Managing.FaultTolerance"> Fault Tolerance for an Aurora DB Cluster</a> in the <i>Amazon Aurora User Guide</i>.  Default: 1 Valid Values: 0 - 15<br/>DomainIAMRoleName:  Specify the name of the IAM role to be used when making API calls to the Directory Service.<br/>MonitoringRoleArn:  The ARN for the IAM role that permits RDS to send enhanced monitoring metrics to Amazon CloudWatch Logs. For example, <code>arn:aws:iam:123456789012:role/emaccess</code>. For information on creating a monitoring role, go to <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.html#USER_Monitoring.OS.Enabling">Setting Up and Enabling Enhanced Monitoring</a> in the <i>Amazon RDS User Guide</i>. If <code>MonitoringInterval</code> is set to a value other than 0, then you must supply a <code>MonitoringRoleArn</code> value.<br/>MonitoringInterval:  The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance. To disable collecting Enhanced Monitoring metrics, specify 0. The default is 0. If <code>MonitoringRoleArn</code> is specified, then you must also set <code>MonitoringInterval</code> to a value other than 0. Valid Values: <code>0, 1, 5, 10, 15, 30, 60</code> <br/>CopyTagsToSnapshot:  A value that indicates whether to copy tags from the DB instance to snapshots of the DB instance. By default, tags are not copied.  <b>Amazon Aurora</b>  Not applicable. Copying tags to snapshots is managed by the DB cluster. Setting this value for an Aurora DB instance has no effect on the DB cluster setting.<br/>Domain:  The Active Directory directory ID to create the DB instance in. Currently, only MySQL, Microsoft SQL Server, Oracle, and PostgreSQL DB instances can be created in an Active Directory Domain. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/kerberos-authentication.html"> Kerberos Authentication</a> in the <i>Amazon RDS User Guide</i>.<br/>KmsKeyId:  The Amazon Web Services KMS key identifier for an encrypted DB instance. The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the Amazon Web Services KMS customer master key (CMK). To use a CMK in a different Amazon Web Services account, specify the key ARN or alias ARN.  <b>Amazon Aurora</b>  Not applicable. The Amazon Web Services KMS key identifier is managed by the DB cluster. For more information, see <code>CreateDBCluster</code>. If <code>StorageEncrypted</code> is enabled, and you do not specify a value for the <code>KmsKeyId</code> parameter, then Amazon RDS uses your default CMK. There is a default CMK for your Amazon Web Services account. Your Amazon Web Services account has a different default CMK for each Amazon Web Services Region.<br/>StorageEncrypted:  A value that indicates whether the DB instance is encrypted. By default, it isn't encrypted.  <b>Amazon Aurora</b>  Not applicable. The encryption for DB instances is managed by the DB cluster.<br/>TdeCredentialPassword:  The password for the given ARN from the key store in order to access the device.<br/>TdeCredentialArn:  The ARN from the key store with which to associate the instance for TDE encryption.<br/>StorageType:  Specifies the storage type to be associated with the DB instance.  Valid values: <code>standard | gp2 | io1</code>   If you specify <code>io1</code>, you must also include a value for the <code>Iops</code> parameter.   Default: <code>io1</code> if the <code>Iops</code> parameter is specified, otherwise <code>gp2</code> <br/>DBClusterIdentifier:  The identifier of the DB cluster that the instance will belong to.<br/>Tags:  Tags to assign to the DB instance.<br/>PubliclyAccessible:  A value that indicates whether the DB instance is publicly accessible. When the DB instance is publicly accessible, its DNS endpoint resolves to the private IP address from within the DB instance's VPC, and to the public IP address from outside of the DB instance's VPC. Access to the DB instance is ultimately controlled by the security group it uses, and that public access is not permitted if the security group assigned to the DB instance doesn't permit it. When the DB instance isn't publicly accessible, it is an internal DB instance with a DNS name that resolves to a private IP address. Default: The default behavior varies depending on whether <code>DBSubnetGroupName</code> is specified. If <code>DBSubnetGroupName</code> isn't specified, and <code>PubliclyAccessible</code> isn't specified, the following applies: <ul> <li> If the default VPC in the target region doesn’t have an Internet gateway attached to it, the DB instance is private. </li> <li> If the default VPC in the target region has an Internet gateway attached to it, the DB instance is public. </li> </ul> If <code>DBSubnetGroupName</code> is specified, and <code>PubliclyAccessible</code> isn't specified, the following applies: <ul> <li> If the subnets are part of a VPC that doesn’t have an Internet gateway attached to it, the DB instance is private. </li> <li> If the subnets are part of a VPC that has an Internet gateway attached to it, the DB instance is public. </li> </ul><br/>NcharCharacterSetName:  The name of the NCHAR character set for the Oracle DB instance.<br/>CharacterSetName:  For supported engines, indicates that the DB instance should be associated with the specified CharacterSet.  <b>Amazon Aurora</b>  Not applicable. The character set is managed by the DB cluster. For more information, see <code>CreateDBCluster</code>.<br/>OptionGroupName:  A value that indicates that the DB instance should be associated with the specified option group. Permanent options, such as the TDE option for Oracle Advanced Security TDE, can't be removed from an option group. Also, that option group can't be removed from a DB instance once it is associated with a DB instance<br/>Iops:  The amount of Provisioned IOPS (input/output operations per second) to be initially allocated for the DB instance. For information about valid Iops values, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html#USER_PIOPS">Amazon RDS Provisioned IOPS Storage to Improve Performance</a> in the <i>Amazon RDS User Guide</i>.  Constraints: For MariaDB, MySQL, Oracle, and PostgreSQL DB instances, must be a multiple between .5 and 50 of the storage amount for the DB instance. For SQL Server DB instances, must be a multiple between 1 and 50 of the storage amount for the DB instance. <br/>LicenseModel:  License model information for this DB instance.  Valid values: <code>license-included</code> | <code>bring-your-own-license</code> | <code>general-public-license</code> <br/>AutoMinorVersionUpgrade:  A value that indicates whether minor engine upgrades are applied automatically to the DB instance during the maintenance window. By default, minor engine upgrades are applied automatically.<br/>EngineVersion:  The version number of the database engine to use. For a list of valid engine versions, use the <code>DescribeDBEngineVersions</code> action. The following are the database engines and links to information about the major and minor versions that are available with Amazon RDS. Not every database engine is available for every Amazon Web Services Region.  <b>Amazon Aurora</b>  Not applicable. The version number of the database engine to be used by the DB instance is managed by the DB cluster.  <b>MariaDB</b>  See <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_MariaDB.html#MariaDB.Concepts.VersionMgmt">MariaDB on Amazon RDS Versions</a> in the <i>Amazon RDS User Guide.</i>   <b>Microsoft SQL Server</b>  See <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_SQLServer.html#SQLServer.Concepts.General.VersionSupport">Microsoft SQL Server Versions on Amazon RDS</a> in the <i>Amazon RDS User Guide.</i>   <b>MySQL</b>  See <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_MySQL.html#MySQL.Concepts.VersionMgmt">MySQL on Amazon RDS Versions</a> in the <i>Amazon RDS User Guide.</i>   <b>Oracle</b>  See <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.Oracle.PatchComposition.html">Oracle Database Engine Release Notes</a> in the <i>Amazon RDS User Guide.</i>   <b>PostgreSQL</b>  See <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html#PostgreSQL.Concepts">Amazon RDS for PostgreSQL versions and extensions</a> in the <i>Amazon RDS User Guide.</i> <br/>MultiAZ:  A value that indicates whether the DB instance is a Multi-AZ deployment. You can't set the <code>AvailabilityZone</code> parameter if the DB instance is a Multi-AZ deployment.<br/>Port:  The port number on which the database accepts connections.  <b>MySQL</b>   Default: <code>3306</code>   Valid values: <code>1150-65535</code>  Type: Integer  <b>MariaDB</b>   Default: <code>3306</code>   Valid values: <code>1150-65535</code>  Type: Integer  <b>PostgreSQL</b>   Default: <code>5432</code>   Valid values: <code>1150-65535</code>  Type: Integer  <b>Oracle</b>   Default: <code>1521</code>   Valid values: <code>1150-65535</code>   <b>SQL Server</b>   Default: <code>1433</code>   Valid values: <code>1150-65535</code> except <code>1234</code>, <code>1434</code>, <code>3260</code>, <code>3343</code>, <code>3389</code>, <code>47001</code>, and <code>49152-49156</code>.  <b>Amazon Aurora</b>   Default: <code>3306</code>   Valid values: <code>1150-65535</code>  Type: Integer<br/>PreferredBackupWindow:   The daily time range during which automated backups are created if automated backups are enabled, using the <code>BackupRetentionPeriod</code> parameter. The default is a 30-minute window selected at random from an 8-hour block of time for each Amazon Web Services Region. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithAutomatedBackups.html#USER_WorkingWithAutomatedBackups.BackupWindow">Backup window</a> in the <i>Amazon RDS User Guide</i>.   <b>Amazon Aurora</b>  Not applicable. The daily time range for creating automated backups is managed by the DB cluster. Constraints: <ul> <li> Must be in the format <code>hh24:mi-hh24:mi</code>. </li> <li> Must be in Universal Coordinated Time (UTC). </li> <li> Must not conflict with the preferred maintenance window. </li> <li> Must be at least 30 minutes. </li> </ul><br/>BackupRetentionPeriod:  The number of days for which automated backups are retained. Setting this parameter to a positive number enables backups. Setting this parameter to 0 disables automated backups.  <b>Amazon Aurora</b>  Not applicable. The retention period for automated backups is managed by the DB cluster. Default: 1 Constraints: <ul> <li> Must be a value from 0 to 35 </li> <li> Can't be set to 0 if the DB instance is a source to read replicas </li> </ul><br/>DBParameterGroupName:  The name of the DB parameter group to associate with this DB instance. If you do not specify a value, then the default DB parameter group for the specified DB engine and version is used. Constraints: <ul> <li> Must be 1 to 255 letters, numbers, or hyphens. </li> <li> First character must be a letter </li> <li> Can't end with a hyphen or contain two consecutive hyphens </li> </ul><br/>PreferredMaintenanceWindow:  The time range each week during which system maintenance can occur, in Universal Coordinated Time (UTC). For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.Maintenance.html#Concepts.DBMaintenance">Amazon RDS Maintenance Window</a>.   Format: <code>ddd:hh24:mi-ddd:hh24:mi</code>  The default is a 30-minute window selected at random from an 8-hour block of time for each Amazon Web Services Region, occurring on a random day of the week.  Valid Days: Mon, Tue, Wed, Thu, Fri, Sat, Sun. Constraints: Minimum 30-minute window.<br/>DBSubnetGroupName:  A DB subnet group to associate with this DB instance. If there is no DB subnet group, then it is a non-VPC DB instance.<br/>AvailabilityZone:   The Availability Zone (AZ) where the database will be created. For information on Amazon Web Services Regions and Availability Zones, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RegionsAndAvailabilityZones.html">Regions and Availability Zones</a>.  Default: A random, system-chosen Availability Zone in the endpoint's Amazon Web Services Region.  Example: <code>us-east-1d</code>   Constraint: The <code>AvailabilityZone</code> parameter can't be specified if the DB instance is a Multi-AZ deployment. The specified Availability Zone must be in the same Amazon Web Services Region as the current endpoint.  <note> If you're creating a DB instance in an RDS on VMware environment, specify the identifier of the custom Availability Zone to create the DB instance in. For more information about RDS on VMware, see the <a href="https://docs.aws.amazon.com/AmazonRDS/latest/RDSonVMwareUserGuide/rds-on-vmware.html"> RDS on VMware User Guide.</a>  </note><br/>VpcSecurityGroupIds:  A list of Amazon EC2 VPC security groups to associate with this DB instance.  <b>Amazon Aurora</b>  Not applicable. The associated list of EC2 VPC security groups is managed by the DB cluster. Default: The default EC2 VPC security group for the DB subnet group's VPC.<br/>DBSecurityGroups:  A list of DB security groups to associate with this DB instance. Default: The default DB security group for the database engine.<br/>MasterUserPassword:  The password for the master user. The password can include any printable ASCII character except "/", triple-quotes, or "@".  <b>Amazon Aurora</b>  Not applicable. The password for the master user is managed by the DB cluster.  <b>MariaDB</b>  Constraints: Must contain from 8 to 41 characters.  <b>Microsoft SQL Server</b>  Constraints: Must contain from 8 to 128 characters.  <b>MySQL</b>  Constraints: Must contain from 8 to 41 characters.  <b>Oracle</b>  Constraints: Must contain from 8 to 30 characters.  <b>PostgreSQL</b>  Constraints: Must contain from 8 to 128 characters.<br/>MasterUsername:  The name for the master user.  <b>Amazon Aurora</b>  Not applicable. The name for the master user is managed by the DB cluster.   <b>MariaDB</b>  Constraints: <ul> <li> Required for MariaDB. </li> <li> Must be 1 to 16 letters or numbers. </li> <li> Can't be a reserved word for the chosen database engine. </li> </ul>  <b>Microsoft SQL Server</b>  Constraints: <ul> <li> Required for SQL Server. </li> <li> Must be 1 to 128 letters or numbers. </li> <li> The first character must be a letter. </li> <li> Can't be a reserved word for the chosen database engine. </li> </ul>  <b>MySQL</b>  Constraints: <ul> <li> Required for MySQL. </li> <li> Must be 1 to 16 letters or numbers. </li> <li> First character must be a letter. </li> <li> Can't be a reserved word for the chosen database engine. </li> </ul>  <b>Oracle</b>  Constraints: <ul> <li> Required for Oracle. </li> <li> Must be 1 to 30 letters or numbers. </li> <li> First character must be a letter. </li> <li> Can't be a reserved word for the chosen database engine. </li> </ul>  <b>PostgreSQL</b>  Constraints: <ul> <li> Required for PostgreSQL. </li> <li> Must be 1 to 63 letters or numbers. </li> <li> First character must be a letter. </li> <li> Can't be a reserved word for the chosen database engine. </li> </ul><br/>Engine:  The name of the database engine to be used for this instance.  Not every database engine is available for every Amazon Web Services Region.  Valid Values:  <ul> <li>  <code>aurora</code> (for MySQL 5.6-compatible Aurora) </li> <li>  <code>aurora-mysql</code> (for MySQL 5.7-compatible Aurora) </li> <li>  <code>aurora-postgresql</code>  </li> <li>  <code>mariadb</code>  </li> <li>  <code>mysql</code>  </li> <li>  <code>oracle-ee</code>  </li> <li>  <code>oracle-ee-cdb</code>  </li> <li>  <code>oracle-se2</code>  </li> <li>  <code>oracle-se2-cdb</code>  </li> <li>  <code>postgres</code>  </li> <li>  <code>sqlserver-ee</code>  </li> <li>  <code>sqlserver-se</code>  </li> <li>  <code>sqlserver-ex</code>  </li> <li>  <code>sqlserver-web</code>  </li> </ul><br/>DBInstanceClass:  The compute and memory capacity of the DB instance, for example, <code>db.m4.large</code>. Not all DB instance classes are available in all Amazon Web Services Regions, or for all database engines. For the full list of DB instance classes, and availability for your engine, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html">DB Instance Class</a> in the <i>Amazon RDS User Guide.</i> <br/>AllocatedStorage:  The amount of storage (in gibibytes) to allocate for the DB instance. Type: Integer  <b>Amazon Aurora</b>  Not applicable. Aurora cluster volumes automatically grow as the amount of data in your database increases, though you are only charged for the space that you use in an Aurora cluster volume.  <b>MySQL</b>  Constraints to the amount of storage for each storage type are the following:  <ul> <li> General Purpose (SSD) storage (gp2): Must be an integer from 20 to 65536. </li> <li> Provisioned IOPS storage (io1): Must be an integer from 100 to 65536. </li> <li> Magnetic storage (standard): Must be an integer from 5 to 3072. </li> </ul>  <b>MariaDB</b>  Constraints to the amount of storage for each storage type are the following:  <ul> <li> General Purpose (SSD) storage (gp2): Must be an integer from 20 to 65536. </li> <li> Provisioned IOPS storage (io1): Must be an integer from 100 to 65536. </li> <li> Magnetic storage (standard): Must be an integer from 5 to 3072. </li> </ul>  <b>PostgreSQL</b>  Constraints to the amount of storage for each storage type are the following:  <ul> <li> General Purpose (SSD) storage (gp2): Must be an integer from 20 to 65536. </li> <li> Provisioned IOPS storage (io1): Must be an integer from 100 to 65536. </li> <li> Magnetic storage (standard): Must be an integer from 5 to 3072. </li> </ul>  <b>Oracle</b>  Constraints to the amount of storage for each storage type are the following:  <ul> <li> General Purpose (SSD) storage (gp2): Must be an integer from 20 to 65536. </li> <li> Provisioned IOPS storage (io1): Must be an integer from 100 to 65536. </li> <li> Magnetic storage (standard): Must be an integer from 10 to 3072. </li> </ul>  <b>SQL Server</b>  Constraints to the amount of storage for each storage type are the following:  <ul> <li> General Purpose (SSD) storage (gp2): <ul> <li> Enterprise and Standard editions: Must be an integer from 200 to 16384. </li> <li> Web and Express editions: Must be an integer from 20 to 16384. </li> </ul> </li> <li> Provisioned IOPS storage (io1): <ul> <li> Enterprise and Standard editions: Must be an integer from 200 to 16384. </li> <li> Web and Express editions: Must be an integer from 100 to 16384. </li> </ul> </li> <li> Magnetic storage (standard): <ul> <li> Enterprise and Standard editions: Must be an integer from 200 to 1024. </li> <li> Web and Express editions: Must be an integer from 20 to 1024. </li> </ul> </li> </ul><br/>DBInstanceIdentifier:  The DB instance identifier. This parameter is stored as a lowercase string. Constraints: <ul> <li> Must contain from 1 to 63 letters, numbers, or hyphens. </li> <li> First character must be a letter. </li> <li> Can't end with a hyphen or contain two consecutive hyphens. </li> </ul> Example: <code>mydbinstance</code> <br/>DBName:  The meaning of this parameter differs according to the database engine you use.  <b>MySQL</b>  The name of the database to create when the DB instance is created. If this parameter isn't specified, no database is created in the DB instance. Constraints: <ul> <li> Must contain 1 to 64 letters or numbers. </li> <li> Must begin with a letter. Subsequent characters can be letters, underscores, or digits (0-9). </li> <li> Can't be a word reserved by the specified database engine </li> </ul>  <b>MariaDB</b>  The name of the database to create when the DB instance is created. If this parameter isn't specified, no database is created in the DB instance. Constraints: <ul> <li> Must contain 1 to 64 letters or numbers. </li> <li> Must begin with a letter. Subsequent characters can be letters, underscores, or digits (0-9). </li> <li> Can't be a word reserved by the specified database engine </li> </ul>  <b>PostgreSQL</b>  The name of the database to create when the DB instance is created. If this parameter isn't specified, a database named <code>postgres</code> is created in the DB instance. Constraints: <ul> <li> Must contain 1 to 63 letters, numbers, or underscores. </li> <li> Must begin with a letter. Subsequent characters can be letters, underscores, or digits (0-9). </li> <li> Can't be a word reserved by the specified database engine </li> </ul>  <b>Oracle</b>  The Oracle System ID (SID) of the created DB instance. If you specify <code>null</code>, the default value <code>ORCL</code> is used. You can't specify the string NULL, or any other reserved word, for <code>DBName</code>.  Default: <code>ORCL</code>  Constraints: <ul> <li> Can't be longer than 8 characters </li> </ul>  <b>SQL Server</b>  Not applicable. Must be null.  <b>Amazon Aurora MySQL</b>  The name of the database to create when the primary DB instance of the Aurora MySQL DB cluster is created. If this parameter isn't specified for an Aurora MySQL DB cluster, no database is created in the DB cluster. Constraints: <ul> <li> It must contain 1 to 64 alphanumeric characters. </li> <li> It can't be a word reserved by the database engine. </li> </ul>  <b>Amazon Aurora PostgreSQL</b>  The name of the database to create when the primary DB instance of the Aurora PostgreSQL DB cluster is created. If this parameter isn't specified for an Aurora PostgreSQL DB cluster, a database named <code>postgres</code> is created in the DB cluster. Constraints: <ul> <li> It must contain 1 to 63 alphanumeric characters. </li> <li> It must begin with a letter or an underscore. Subsequent characters can be letters, underscores, or digits (0 to 9). </li> <li> It can't be a word reserved by the database engine. </li> </ul><br/>
        :return: DBInstance:  Contains the details of an Amazon RDS DB instance.  This data type is used as a response element in the <code>DescribeDBInstances</code> action. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamEngineNativeAuditFieldsIncluded</i> Indicates whether engine-native audit fields are included in the database activity stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamMode</i> The mode of the database activity stream. Database events such as a change or access generate an activity stream event. RDS for Oracle always handles these events asynchronously.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamKinesisStreamName</i> The name of the Amazon Kinesis data stream used for the database activity stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamKmsKeyId</i> The Amazon Web Services KMS key identifier used for encrypting messages in the database activity stream. The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the Amazon Web Services KMS customer master key (CMK).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamStatus</i> The status of the database activity stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AwsBackupRecoveryPointArn</i> The Amazon Resource Name (ARN) of the recovery point in Amazon Web Services Backup.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomerOwnedIpEnabled</i> Specifies whether a customer-owned IP address (CoIP) is enabled for an RDS on Outposts DB instance. A <i>CoIP </i>provides local or external connectivity to resources in your Outpost subnets through your on-premises network. For some use cases, a CoIP can provide lower latency for connections to the DB instance from outside of its virtual private cloud (VPC) on your local network. For more information about RDS on Outposts, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-on-outposts.html">Working with Amazon RDS on Amazon Web Services Outposts</a> in the <i>Amazon RDS User Guide</i>. For more information about CoIPs, see <a href="https://docs.aws.amazon.com/outposts/latest/userguide/outposts-networking-components.html#ip-addressing">Customer-owned IP addresses</a> in the <i>Amazon Web Services Outposts User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceAutomatedBackupsReplications</i> The list of replicated automated backups associated with the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TagList</i> A list of tags. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html">Tagging Amazon RDS Resources</a> in the <i>Amazon RDS User Guide.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxAllocatedStorage</i> The upper limit to which Amazon RDS can automatically scale the storage of the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ListenerEndpoint</i> Specifies the listener connection endpoint for SQL Server Always On.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ListenerEndpoint</b>: Specifies the listener connection endpoint for SQL Server Always On.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociatedRoles</i>  The Amazon Web Services Identity and Access Management (IAM) roles associated with the DB instance. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeletionProtection</i> Indicates if the DB instance has deletion protection enabled. The database can't be deleted when deletion protection is enabled. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_DeleteInstance.html"> Deleting a DB Instance</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProcessorFeatures</i> The number of CPU cores and the number of threads per core for the DB instance class of the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnabledCloudwatchLogsExports</i> A list of log types that this DB instance is configured to export to CloudWatch Logs. Log types vary by DB engine. For information about the log types for each DB engine, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.html">Amazon RDS Database Log Files</a> in the <i>Amazon RDS User Guide.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PerformanceInsightsRetentionPeriod</i> The amount of time, in days, to retain Performance Insights data. Valid values are 7 or 731 (2 years). <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PerformanceInsightsKMSKeyId</i> The Amazon Web Services KMS key identifier for encryption of Performance Insights data. The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the Amazon Web Services KMS customer master key (CMK).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PerformanceInsightsEnabled</i> True if Performance Insights is enabled for the DB instance, and otherwise false.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IAMDatabaseAuthenticationEnabled</i> True if mapping of Amazon Web Services Identity and Access Management (IAM) accounts to database accounts is enabled, and otherwise false. IAM database authentication can be enabled for the following database engines <ul> <li> For MySQL 5.6, minor version 5.6.34 or higher </li> <li> For MySQL 5.7, minor version 5.7.16 or higher </li> <li> Aurora 5.6 or higher. To enable IAM database authentication for Aurora, see DBCluster Type. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Timezone</i> The time zone of the DB instance. In most cases, the <code>Timezone</code> element is empty. <code>Timezone</code> content appears only for Microsoft SQL Server DB instances that were created with a time zone specified. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceArn</i> The Amazon Resource Name (ARN) for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PromotionTier</i> A value that specifies the order in which an Aurora Replica is promoted to the primary instance after a failure of the existing primary instance. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Managing.Backups.html#Aurora.Managing.FaultTolerance"> Fault Tolerance for an Aurora DB Cluster</a> in the <i>Amazon Aurora User Guide</i>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MonitoringRoleArn</i> The ARN for the IAM role that permits RDS to send Enhanced Monitoring metrics to Amazon CloudWatch Logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnhancedMonitoringResourceArn</i> The Amazon Resource Name (ARN) of the Amazon CloudWatch Logs log stream that receives the Enhanced Monitoring metrics data for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MonitoringInterval</i> The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CopyTagsToSnapshot</i> Specifies whether tags are copied from the DB instance to snapshots of the DB instance.  <b>Amazon Aurora</b>  Not applicable. Copying tags to snapshots is managed by the DB cluster. Setting this value for an Aurora DB instance has no effect on the DB cluster setting. For more information, see <code>DBCluster</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainMemberships</i> The Active Directory Domain membership records associated with the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CACertificateIdentifier</i> The identifier of the CA certificate for this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DbiResourceId</i> The Amazon Web Services Region-unique, immutable identifier for the DB instance. This identifier is found in Amazon Web Services CloudTrail log entries whenever the Amazon Web Services KMS customer master key (CMK) for the DB instance is accessed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i>  If <code>StorageEncrypted</code> is true, the Amazon Web Services KMS key identifier for the encrypted DB instance.  The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the Amazon Web Services KMS customer master key (CMK).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageEncrypted</i> Specifies whether the DB instance is encrypted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterIdentifier</i> If the DB instance is a member of a DB cluster, contains the name of the DB cluster that the DB instance is a member of.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DbInstancePort</i> Specifies the port that the DB instance listens on. If the DB instance is part of a DB cluster, this can be a different port than the DB cluster port.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TdeCredentialArn</i> The ARN from the key store with which the instance is associated for TDE encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageType</i> Specifies the storage type associated with DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusInfos</i> The status of a read replica. If the instance isn't a read replica, this is blank.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PubliclyAccessible</i> Specifies the accessibility options for the DB instance. When the DB instance is publicly accessible, its DNS endpoint resolves to the private IP address from within the DB instance's VPC, and to the public IP address from outside of the DB instance's VPC. Access to the DB instance is ultimately controlled by the security group it uses, and that public access is not permitted if the security group assigned to the DB instance doesn't permit it. When the DB instance isn't publicly accessible, it is an internal DB instance with a DNS name that resolves to a private IP address. For more information, see <a>CreateDBInstance</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecondaryAvailabilityZone</i> If present, specifies the name of the secondary Availability Zone for a DB instance with multi-AZ support.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NcharCharacterSetName</i> The name of the NCHAR character set for the Oracle DB instance. This character set specifies the Unicode encoding for data stored in table columns of type NCHAR, NCLOB, or NVARCHAR2. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CharacterSetName</i> If present, specifies the name of the character set that this instance is associated with.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OptionGroupMemberships</i> Provides the list of option group memberships for this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Iops</i> Specifies the Provisioned IOPS (I/O operations per second) value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LicenseModel</i> License model information for this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicaMode</i> The open mode of an Oracle read replica. The default is <code>open-read-only</code>. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/oracle-read-replicas.html">Working with Oracle Read Replicas for Amazon RDS</a> in the <i>Amazon RDS User Guide</i>. <note> This attribute is only supported in RDS for Oracle. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadReplicaDBClusterIdentifiers</i> Contains one or more identifiers of Aurora DB clusters to which the RDS DB instance is replicated as a read replica. For example, when you create an Aurora read replica of an RDS MySQL DB instance, the Aurora MySQL DB cluster for the Aurora read replica is shown. This output does not contain information about cross region Aurora read replicas. <note> Currently, each RDS DB instance can have only one Aurora read replica. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadReplicaDBInstanceIdentifiers</i> Contains one or more identifiers of the read replicas associated with this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadReplicaSourceDBInstanceIdentifier</i> Contains the identifier of the source DB instance if this DB instance is a read replica.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoMinorVersionUpgrade</i> A value that indicates that minor version patches are applied automatically.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> Indicates the database engine version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiAZ</i> Specifies if the DB instance is a Multi-AZ deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestRestorableTime</i> Specifies the latest time to which a database can be restored with point-in-time restore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingModifiedValues</i> A value that specifies that changes to the DB instance are pending. This element is only included when changes are pending. Specific changes are identified by subelements.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingModifiedValues</b>: A value that specifies that changes to the DB instance are pending. This element is only included when changes are pending. Specific changes are identified by subelements.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i> Specifies the weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroup</i> Specifies information on the subnet group associated with the DB instance, including the name, description, and subnets in the subnet group.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DBSubnetGroup</b>: Specifies information on the subnet group associated with the DB instance, including the name, description, and subnets in the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZone</i> Specifies the name of the Availability Zone the DB instance is located in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBParameterGroups</i> Provides the list of DB parameter groups applied to this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcSecurityGroups</i> Provides a list of VPC security group elements that the DB instance belongs to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSecurityGroups</i>  A list of DB security group elements containing <code>DBSecurityGroup.Name</code> and <code>DBSecurityGroup.Status</code> subelements. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupRetentionPeriod</i> Specifies the number of days for which automatic DB snapshots are retained.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredBackupWindow</i>  Specifies the daily time range during which automated backups are created if automated backups are enabled, as determined by the <code>BackupRetentionPeriod</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceCreateTime</i> Provides the date and time the DB instance was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllocatedStorage</i> Specifies the allocated storage size specified in gibibytes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i> Specifies the connection endpoint.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Endpoint</b>: Specifies the connection endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBName</i> The meaning of this parameter differs according to the database engine you use.  <b>MySQL, MariaDB, SQL Server, PostgreSQL</b>  Contains the name of the initial database of this instance that was provided at create time, if one was specified when the DB instance was created. This same name is returned for the life of the DB instance. Type: String  <b>Oracle</b>  Contains the Oracle System ID (SID) of the created DB instance. Not shown when the returned parameters do not apply to an Oracle DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUsername</i> Contains the master username for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceStatus</i> Specifies the current state of this database. For information about DB instance statuses, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/accessing-monitoring.html#Overview.DBInstance.Status">Viewing DB instance status</a> in the <i>Amazon RDS User Guide.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> The name of the database engine to be used for this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceClass</i> Contains the name of the compute and memory capacity class of the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceIdentifier</i> Contains a user-supplied database identifier. This identifier is the unique key that identifies a DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HostedZoneId</i> Specifies the ID that Amazon Route 53 assigns when you create a hosted zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Specifies the port that the database engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Address</i> Specifies the DNS address of the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupArn</i> The Amazon Resource Name (ARN) for the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Subnets</i>  Contains a list of <code>Subnet</code> elements. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetGroupStatus</i> Provides the status of the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> Provides the VpcId of the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupDescription</i> Provides the description of the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupName</i> The name of the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupName</i> The DB subnet group for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CACertificateIdentifier</i> The identifier of the CA certificate for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageType</i> The storage type of the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceIdentifier</i> The database identifier for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Iops</i> The Provisioned IOPS value for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LicenseModel</i> The license model for the DB instance. Valid values: <code>license-included</code> | <code>bring-your-own-license</code> | <code>general-public-license</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> The database engine version.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiAZ</i> A value that indicates that the Single-AZ DB instance will change to a Multi-AZ deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupRetentionPeriod</i> The number of days for which automated backups are retained.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> The port for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUserPassword</i> The master credentials for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AllocatedStorage</i> The allocated storage size for the DB instance specified in gibibytes .<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceClass</i> The name of the compute and memory capacity class for the DB instance.<br/>A list of the log types whose configuration is still pending. In other words, these log types are in the process of being activated or deactivated.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingCloudwatchLogsExports</b>: A list of the log types whose configuration is still pending. In other words, these log types are in the process of being activated or deactivated.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HostedZoneId</i> Specifies the ID that Amazon Route 53 assigns when you create a hosted zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Specifies the port that the database engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Address</i> Specifies the DNS address of the DB instance.<br/>        """
        pass

    def create_db_instance_read_replica(self, SourceDBInstanceIdentifier: str, DBInstanceIdentifier: str, DBInstanceClass: str=None, AvailabilityZone: str=None, Port: int=None, MultiAZ: BooleanOptional=None, AutoMinorVersionUpgrade: BooleanOptional=None, Iops: int=None, OptionGroupName: str=None, DBParameterGroupName: str=None, PubliclyAccessible: BooleanOptional=None, Tags: List[Tag]=None, DBSubnetGroupName: str=None, VpcSecurityGroupIds: List[String]=None, StorageType: str=None, CopyTagsToSnapshot: BooleanOptional=None, MonitoringInterval: int=None, MonitoringRoleArn: str=None, KmsKeyId: str=None, PreSignedUrl: str=None, EnableIAMDatabaseAuthentication: BooleanOptional=None, EnablePerformanceInsights: BooleanOptional=None, PerformanceInsightsKMSKeyId: str=None, PerformanceInsightsRetentionPeriod: int=None, EnableCloudwatchLogsExports: List[String]=None, ProcessorFeatures: List[ProcessorFeature]=None, UseDefaultProcessorFeatures: BooleanOptional=None, DeletionProtection: BooleanOptional=None, Domain: str=None, DomainIAMRoleName: str=None, ReplicaMode: str=None, MaxAllocatedStorage: int=None, SourceRegion: str=None) -> CreateDBInstanceReadReplicaResult:
        r"""Creates a new DB instance that acts as a read replica for an existing source DB instance. You can create a read replica for a DB instance running MySQL, MariaDB, Oracle, PostgreSQL, or SQL Server. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ReadRepl.html">Working with Read Replicas</a> in the <i>Amazon RDS User Guide</i>.  Amazon Aurora doesn't support this action. Call the <code>CreateDBInstance</code> action to create a DB instance for an Aurora DB cluster. All read replica DB instances are created with backups disabled. All other DB instance attributes (including DB security groups and DB parameter groups) are inherited from the source DB instance, except as specified. <important> Your source DB instance must have backup retention enabled.  </important>

        :param self:
        :param SourceRegion:  The ID of the region that contains the source for the read replica.<br/>MaxAllocatedStorage:  The upper limit to which Amazon RDS can automatically scale the storage of the DB instance. For more information about this setting, including limitations that apply to it, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PIOPS.StorageTypes.html#USER_PIOPS.Autoscaling"> Managing capacity automatically with Amazon RDS storage autoscaling</a> in the <i>Amazon RDS User Guide</i>.<br/>ReplicaMode:  The open mode of the replica database: mounted or read-only. <note> This parameter is only supported for Oracle DB instances. </note> Mounted DB replicas are included in Oracle Enterprise Edition. The main use case for mounted replicas is cross-Region disaster recovery. The primary database doesn't use Active Data Guard to transmit information to the mounted replica. Because it doesn't accept user connections, a mounted replica can't serve a read-only workload. You can create a combination of mounted and read-only DB replicas for the same primary DB instance. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/oracle-read-replicas.html">Working with Oracle Read Replicas for Amazon RDS</a> in the <i>Amazon RDS User Guide</i>.<br/>DomainIAMRoleName:  Specify the name of the IAM role to be used when making API calls to the Directory Service.<br/>Domain:  The Active Directory directory ID to create the DB instance in. Currently, only MySQL, Microsoft SQL Server, Oracle, and PostgreSQL DB instances can be created in an Active Directory Domain. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/kerberos-authentication.html"> Kerberos Authentication</a> in the <i>Amazon RDS User Guide</i>.<br/>DeletionProtection:  A value that indicates whether the DB instance has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_DeleteInstance.html"> Deleting a DB Instance</a>. <br/>UseDefaultProcessorFeatures:  A value that indicates whether the DB instance class of the DB instance uses its default processor features.<br/>ProcessorFeatures:  The number of CPU cores and the number of threads per core for the DB instance class of the DB instance.<br/>EnableCloudwatchLogsExports:  The list of logs that the new DB instance is to export to CloudWatch Logs. The values in the list depend on the DB engine being used. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.html#USER_LogAccess.Procedural.UploadtoCloudWatch">Publishing Database Logs to Amazon CloudWatch Logs </a> in the <i>Amazon RDS User Guide</i>.<br/>PerformanceInsightsRetentionPeriod:  The amount of time, in days, to retain Performance Insights data. Valid values are 7 or 731 (2 years). <br/>PerformanceInsightsKMSKeyId:  The Amazon Web Services KMS key identifier for encryption of Performance Insights data. The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the Amazon Web Services KMS customer master key (CMK). If you do not specify a value for <code>PerformanceInsightsKMSKeyId</code>, then Amazon RDS uses your default CMK. There is a default CMK for your Amazon Web Services account. Your Amazon Web Services account has a different default CMK for each Amazon Web Services Region.<br/>EnablePerformanceInsights:  A value that indicates whether to enable Performance Insights for the read replica.  For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html">Using Amazon Performance Insights</a> in the <i>Amazon RDS User Guide</i>. <br/>EnableIAMDatabaseAuthentication:  A value that indicates whether to enable mapping of Amazon Web Services Identity and Access Management (IAM) accounts to database accounts. By default, mapping is disabled. For more information about IAM database authentication, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.IAMDBAuth.html"> IAM Database Authentication for MySQL and PostgreSQL</a> in the <i>Amazon RDS User Guide.</i> <br/>PreSignedUrl:  The URL that contains a Signature Version 4 signed request for the <code>CreateDBInstanceReadReplica</code> API action in the source Amazon Web Services Region that contains the source DB instance.  You must specify this parameter when you create an encrypted read replica from another Amazon Web Services Region by using the Amazon RDS API. Don't specify <code>PreSignedUrl</code> when you are creating an encrypted read replica in the same Amazon Web Services Region. The presigned URL must be a valid request for the <code>CreateDBInstanceReadReplica</code> API action that can be executed in the source Amazon Web Services Region that contains the encrypted source DB instance. The presigned URL request must contain the following parameter values:  <ul> <li>  <code>DestinationRegion</code> - The Amazon Web Services Region that the encrypted read replica is created in. This Amazon Web Services Region is the same one where the <code>CreateDBInstanceReadReplica</code> action is called that contains this presigned URL. For example, if you create an encrypted DB instance in the us-west-1 Amazon Web Services Region, from a source DB instance in the us-east-2 Amazon Web Services Region, then you call the <code>CreateDBInstanceReadReplica</code> action in the us-east-1 Amazon Web Services Region and provide a presigned URL that contains a call to the <code>CreateDBInstanceReadReplica</code> action in the us-west-2 Amazon Web Services Region. For this example, the <code>DestinationRegion</code> in the presigned URL must be set to the us-east-1 Amazon Web Services Region.  </li> <li>  <code>KmsKeyId</code> - The Amazon Web Services KMS key identifier for the key to use to encrypt the read replica in the destination Amazon Web Services Region. This is the same identifier for both the <code>CreateDBInstanceReadReplica</code> action that is called in the destination Amazon Web Services Region, and the action contained in the presigned URL.  </li> <li>  <code>SourceDBInstanceIdentifier</code> - The DB instance identifier for the encrypted DB instance to be replicated. This identifier must be in the Amazon Resource Name (ARN) format for the source Amazon Web Services Region. For example, if you are creating an encrypted read replica from a DB instance in the us-west-2 Amazon Web Services Region, then your <code>SourceDBInstanceIdentifier</code> looks like the following example: <code>arn:aws:rds:us-west-2:123456789012:instance:mysql-instance1-20161115</code>.  </li> </ul> To learn how to generate a Signature Version 4 signed request, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-query-string-auth.html">Authenticating Requests: Using Query Parameters (Amazon Web Services Signature Version 4)</a> and <a href="https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html">Signature Version 4 Signing Process</a>.  <note> If you are using an Amazon Web Services SDK tool or the CLI, you can specify <code>SourceRegion</code> (or <code>--source-region</code> for the CLI) instead of specifying <code>PreSignedUrl</code> manually. Specifying <code>SourceRegion</code> autogenerates a presigned URL that is a valid request for the operation that can be executed in the source Amazon Web Services Region.  <code>SourceRegion</code> isn't supported for SQL Server, because SQL Server on Amazon RDS doesn't support cross-region read replicas. </note><br/>KmsKeyId:  The Amazon Web Services KMS key identifier for an encrypted read replica. The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the Amazon Web Services KMS CMK. If you create an encrypted read replica in the same Amazon Web Services Region as the source DB instance, then do not specify a value for this parameter. A read replica in the same Region is always encrypted with the same Amazon Web Services KMS CMK as the source DB instance. If you create an encrypted read replica in a different Amazon Web Services Region, then you must specify a Amazon Web Services KMS key identifier for the destination Amazon Web Services Region. Amazon Web Services KMS CMKs are specific to the Amazon Web Services Region that they are created in, and you can't use CMKs from one Amazon Web Services Region in another Amazon Web Services Region. You can't create an encrypted read replica from an unencrypted DB instance.<br/>MonitoringRoleArn:  The ARN for the IAM role that permits RDS to send enhanced monitoring metrics to Amazon CloudWatch Logs. For example, <code>arn:aws:iam:123456789012:role/emaccess</code>. For information on creating a monitoring role, go to <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.html#USER_Monitoring.OS.IAMRole">To create an IAM role for Amazon RDS Enhanced Monitoring</a> in the <i>Amazon RDS User Guide</i>. If <code>MonitoringInterval</code> is set to a value other than 0, then you must supply a <code>MonitoringRoleArn</code> value.<br/>MonitoringInterval:  The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the read replica. To disable collecting Enhanced Monitoring metrics, specify 0. The default is 0. If <code>MonitoringRoleArn</code> is specified, then you must also set <code>MonitoringInterval</code> to a value other than 0. Valid Values: <code>0, 1, 5, 10, 15, 30, 60</code> <br/>CopyTagsToSnapshot:  A value that indicates whether to copy all tags from the read replica to snapshots of the read replica. By default, tags are not copied.<br/>StorageType:  Specifies the storage type to be associated with the read replica.  Valid values: <code>standard | gp2 | io1</code>   If you specify <code>io1</code>, you must also include a value for the <code>Iops</code> parameter.   Default: <code>io1</code> if the <code>Iops</code> parameter is specified, otherwise <code>gp2</code> <br/>VpcSecurityGroupIds:   A list of EC2 VPC security groups to associate with the read replica.   Default: The default EC2 VPC security group for the DB subnet group's VPC. <br/>DBSubnetGroupName:  Specifies a DB subnet group for the DB instance. The new DB instance is created in the VPC associated with the DB subnet group. If no DB subnet group is specified, then the new DB instance isn't created in a VPC. Constraints: <ul> <li> Can only be specified if the source DB instance identifier specifies a DB instance in another Amazon Web Services Region. </li> <li> If supplied, must match the name of an existing DBSubnetGroup. </li> <li> The specified DB subnet group must be in the same Amazon Web Services Region in which the operation is running. </li> <li> All read replicas in one Amazon Web Services Region that are created from the same source DB instance must either:&gt; <ul> <li> Specify DB subnet groups from the same VPC. All these read replicas are created in the same VPC. </li> <li> Not specify a DB subnet group. All these read replicas are created outside of any VPC. </li> </ul> </li> </ul> Example: <code>mySubnetgroup</code> <br/>Tags:  A list of tags. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html">Tagging Amazon RDS Resources</a> in the <i>Amazon RDS User Guide.</i> <br/>PubliclyAccessible:  A value that indicates whether the DB instance is publicly accessible. When the DB instance is publicly accessible, its DNS endpoint resolves to the private IP address from within the DB instance's VPC, and to the public IP address from outside of the DB instance's VPC. Access to the DB instance is ultimately controlled by the security group it uses, and that public access is not permitted if the security group assigned to the DB instance doesn't permit it. When the DB instance isn't publicly accessible, it is an internal DB instance with a DNS name that resolves to a private IP address. For more information, see <a>CreateDBInstance</a>.<br/>DBParameterGroupName:  The name of the DB parameter group to associate with this DB instance. If you do not specify a value for <code>DBParameterGroupName</code>, then Amazon RDS uses the <code>DBParameterGroup</code> of source DB instance for a same region read replica, or the default <code>DBParameterGroup</code> for the specified DB engine for a cross region read replica. <note> Currently, specifying a parameter group for this operation is only supported for Oracle DB instances. </note> Constraints: <ul> <li> Must be 1 to 255 letters, numbers, or hyphens. </li> <li> First character must be a letter </li> <li> Can't end with a hyphen or contain two consecutive hyphens </li> </ul><br/>OptionGroupName:  The option group the DB instance is associated with. If omitted, the option group associated with the source instance is used. <note> For SQL Server, you must use the option group associated with the source instance. </note><br/>Iops:  The amount of Provisioned IOPS (input/output operations per second) to be initially allocated for the DB instance.<br/>AutoMinorVersionUpgrade:  A value that indicates whether minor engine upgrades are applied automatically to the read replica during the maintenance window. Default: Inherits from the source DB instance<br/>MultiAZ:  A value that indicates whether the read replica is in a Multi-AZ deployment.  You can create a read replica as a Multi-AZ DB instance. RDS creates a standby of your replica in another Availability Zone for failover support for the replica. Creating your read replica as a Multi-AZ DB instance is independent of whether the source database is a Multi-AZ DB instance. <br/>Port:  The port number that the DB instance uses for connections. Default: Inherits from the source DB instance Valid Values: <code>1150-65535</code> <br/>AvailabilityZone:  The Availability Zone (AZ) where the read replica will be created. Default: A random, system-chosen Availability Zone in the endpoint's Amazon Web Services Region.  Example: <code>us-east-1d</code> <br/>DBInstanceClass:  The compute and memory capacity of the read replica, for example, <code>db.m4.large</code>. Not all DB instance classes are available in all Amazon Web Services Regions, or for all database engines. For the full list of DB instance classes, and availability for your engine, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html">DB Instance Class</a> in the <i>Amazon RDS User Guide.</i>  Default: Inherits from the source DB instance.<br/>SourceDBInstanceIdentifier:  The identifier of the DB instance that will act as the source for the read replica. Each DB instance can have up to five read replicas. Constraints: <ul> <li> Must be the identifier of an existing MySQL, MariaDB, Oracle, PostgreSQL, or SQL Server DB instance. </li> <li> Can specify a DB instance that is a MySQL read replica only if the source is running MySQL 5.6 or later. </li> <li> For the limitations of Oracle read replicas, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/oracle-read-replicas.html">Read Replica Limitations with Oracle</a> in the <i>Amazon RDS User Guide</i>. </li> <li> For the limitations of SQL Server read replicas, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/SQLServer.ReadReplicas.Limitations.html">Read Replica Limitations with Microsoft SQL Server</a> in the <i>Amazon RDS User Guide</i>. </li> <li> Can specify a PostgreSQL DB instance only if the source is running PostgreSQL 9.3.5 or later (9.4.7 and higher for cross-region replication). </li> <li> The specified DB instance must have automatic backups enabled, that is, its backup retention period must be greater than 0. </li> <li> If the source DB instance is in the same Amazon Web Services Region as the read replica, specify a valid DB instance identifier. </li> <li> If the source DB instance is in a different Amazon Web Services Region from the read replica, specify a valid DB instance ARN. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.ARN.html#USER_Tagging.ARN.Constructing">Constructing an ARN for Amazon RDS</a> in the <i>Amazon RDS User Guide</i>. This doesn't apply to SQL Server, which doesn't support cross-region replicas. </li> </ul><br/>DBInstanceIdentifier:  The DB instance identifier of the read replica. This identifier is the unique key that identifies a DB instance. This parameter is stored as a lowercase string.<br/>
        :return: DBInstance:  Contains the details of an Amazon RDS DB instance.  This data type is used as a response element in the <code>DescribeDBInstances</code> action. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamEngineNativeAuditFieldsIncluded</i> Indicates whether engine-native audit fields are included in the database activity stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamMode</i> The mode of the database activity stream. Database events such as a change or access generate an activity stream event. RDS for Oracle always handles these events asynchronously.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamKinesisStreamName</i> The name of the Amazon Kinesis data stream used for the database activity stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamKmsKeyId</i> The Amazon Web Services KMS key identifier used for encrypting messages in the database activity stream. The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the Amazon Web Services KMS customer master key (CMK).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamStatus</i> The status of the database activity stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AwsBackupRecoveryPointArn</i> The Amazon Resource Name (ARN) of the recovery point in Amazon Web Services Backup.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomerOwnedIpEnabled</i> Specifies whether a customer-owned IP address (CoIP) is enabled for an RDS on Outposts DB instance. A <i>CoIP </i>provides local or external connectivity to resources in your Outpost subnets through your on-premises network. For some use cases, a CoIP can provide lower latency for connections to the DB instance from outside of its virtual private cloud (VPC) on your local network. For more information about RDS on Outposts, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-on-outposts.html">Working with Amazon RDS on Amazon Web Services Outposts</a> in the <i>Amazon RDS User Guide</i>. For more information about CoIPs, see <a href="https://docs.aws.amazon.com/outposts/latest/userguide/outposts-networking-components.html#ip-addressing">Customer-owned IP addresses</a> in the <i>Amazon Web Services Outposts User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceAutomatedBackupsReplications</i> The list of replicated automated backups associated with the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TagList</i> A list of tags. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html">Tagging Amazon RDS Resources</a> in the <i>Amazon RDS User Guide.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxAllocatedStorage</i> The upper limit to which Amazon RDS can automatically scale the storage of the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ListenerEndpoint</i> Specifies the listener connection endpoint for SQL Server Always On.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ListenerEndpoint</b>: Specifies the listener connection endpoint for SQL Server Always On.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociatedRoles</i>  The Amazon Web Services Identity and Access Management (IAM) roles associated with the DB instance. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeletionProtection</i> Indicates if the DB instance has deletion protection enabled. The database can't be deleted when deletion protection is enabled. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_DeleteInstance.html"> Deleting a DB Instance</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProcessorFeatures</i> The number of CPU cores and the number of threads per core for the DB instance class of the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnabledCloudwatchLogsExports</i> A list of log types that this DB instance is configured to export to CloudWatch Logs. Log types vary by DB engine. For information about the log types for each DB engine, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.html">Amazon RDS Database Log Files</a> in the <i>Amazon RDS User Guide.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PerformanceInsightsRetentionPeriod</i> The amount of time, in days, to retain Performance Insights data. Valid values are 7 or 731 (2 years). <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PerformanceInsightsKMSKeyId</i> The Amazon Web Services KMS key identifier for encryption of Performance Insights data. The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the Amazon Web Services KMS customer master key (CMK).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PerformanceInsightsEnabled</i> True if Performance Insights is enabled for the DB instance, and otherwise false.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IAMDatabaseAuthenticationEnabled</i> True if mapping of Amazon Web Services Identity and Access Management (IAM) accounts to database accounts is enabled, and otherwise false. IAM database authentication can be enabled for the following database engines <ul> <li> For MySQL 5.6, minor version 5.6.34 or higher </li> <li> For MySQL 5.7, minor version 5.7.16 or higher </li> <li> Aurora 5.6 or higher. To enable IAM database authentication for Aurora, see DBCluster Type. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Timezone</i> The time zone of the DB instance. In most cases, the <code>Timezone</code> element is empty. <code>Timezone</code> content appears only for Microsoft SQL Server DB instances that were created with a time zone specified. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceArn</i> The Amazon Resource Name (ARN) for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PromotionTier</i> A value that specifies the order in which an Aurora Replica is promoted to the primary instance after a failure of the existing primary instance. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Managing.Backups.html#Aurora.Managing.FaultTolerance"> Fault Tolerance for an Aurora DB Cluster</a> in the <i>Amazon Aurora User Guide</i>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MonitoringRoleArn</i> The ARN for the IAM role that permits RDS to send Enhanced Monitoring metrics to Amazon CloudWatch Logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnhancedMonitoringResourceArn</i> The Amazon Resource Name (ARN) of the Amazon CloudWatch Logs log stream that receives the Enhanced Monitoring metrics data for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MonitoringInterval</i> The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CopyTagsToSnapshot</i> Specifies whether tags are copied from the DB instance to snapshots of the DB instance.  <b>Amazon Aurora</b>  Not applicable. Copying tags to snapshots is managed by the DB cluster. Setting this value for an Aurora DB instance has no effect on the DB cluster setting. For more information, see <code>DBCluster</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainMemberships</i> The Active Directory Domain membership records associated with the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CACertificateIdentifier</i> The identifier of the CA certificate for this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DbiResourceId</i> The Amazon Web Services Region-unique, immutable identifier for the DB instance. This identifier is found in Amazon Web Services CloudTrail log entries whenever the Amazon Web Services KMS customer master key (CMK) for the DB instance is accessed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i>  If <code>StorageEncrypted</code> is true, the Amazon Web Services KMS key identifier for the encrypted DB instance.  The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the Amazon Web Services KMS customer master key (CMK).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageEncrypted</i> Specifies whether the DB instance is encrypted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterIdentifier</i> If the DB instance is a member of a DB cluster, contains the name of the DB cluster that the DB instance is a member of.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DbInstancePort</i> Specifies the port that the DB instance listens on. If the DB instance is part of a DB cluster, this can be a different port than the DB cluster port.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TdeCredentialArn</i> The ARN from the key store with which the instance is associated for TDE encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageType</i> Specifies the storage type associated with DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusInfos</i> The status of a read replica. If the instance isn't a read replica, this is blank.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PubliclyAccessible</i> Specifies the accessibility options for the DB instance. When the DB instance is publicly accessible, its DNS endpoint resolves to the private IP address from within the DB instance's VPC, and to the public IP address from outside of the DB instance's VPC. Access to the DB instance is ultimately controlled by the security group it uses, and that public access is not permitted if the security group assigned to the DB instance doesn't permit it. When the DB instance isn't publicly accessible, it is an internal DB instance with a DNS name that resolves to a private IP address. For more information, see <a>CreateDBInstance</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecondaryAvailabilityZone</i> If present, specifies the name of the secondary Availability Zone for a DB instance with multi-AZ support.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NcharCharacterSetName</i> The name of the NCHAR character set for the Oracle DB instance. This character set specifies the Unicode encoding for data stored in table columns of type NCHAR, NCLOB, or NVARCHAR2. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CharacterSetName</i> If present, specifies the name of the character set that this instance is associated with.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OptionGroupMemberships</i> Provides the list of option group memberships for this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Iops</i> Specifies the Provisioned IOPS (I/O operations per second) value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LicenseModel</i> License model information for this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicaMode</i> The open mode of an Oracle read replica. The default is <code>open-read-only</code>. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/oracle-read-replicas.html">Working with Oracle Read Replicas for Amazon RDS</a> in the <i>Amazon RDS User Guide</i>. <note> This attribute is only supported in RDS for Oracle. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadReplicaDBClusterIdentifiers</i> Contains one or more identifiers of Aurora DB clusters to which the RDS DB instance is replicated as a read replica. For example, when you create an Aurora read replica of an RDS MySQL DB instance, the Aurora MySQL DB cluster for the Aurora read replica is shown. This output does not contain information about cross region Aurora read replicas. <note> Currently, each RDS DB instance can have only one Aurora read replica. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadReplicaDBInstanceIdentifiers</i> Contains one or more identifiers of the read replicas associated with this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadReplicaSourceDBInstanceIdentifier</i> Contains the identifier of the source DB instance if this DB instance is a read replica.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoMinorVersionUpgrade</i> A value that indicates that minor version patches are applied automatically.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> Indicates the database engine version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiAZ</i> Specifies if the DB instance is a Multi-AZ deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestRestorableTime</i> Specifies the latest time to which a database can be restored with point-in-time restore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingModifiedValues</i> A value that specifies that changes to the DB instance are pending. This element is only included when changes are pending. Specific changes are identified by subelements.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingModifiedValues</b>: A value that specifies that changes to the DB instance are pending. This element is only included when changes are pending. Specific changes are identified by subelements.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i> Specifies the weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroup</i> Specifies information on the subnet group associated with the DB instance, including the name, description, and subnets in the subnet group.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DBSubnetGroup</b>: Specifies information on the subnet group associated with the DB instance, including the name, description, and subnets in the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZone</i> Specifies the name of the Availability Zone the DB instance is located in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBParameterGroups</i> Provides the list of DB parameter groups applied to this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcSecurityGroups</i> Provides a list of VPC security group elements that the DB instance belongs to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSecurityGroups</i>  A list of DB security group elements containing <code>DBSecurityGroup.Name</code> and <code>DBSecurityGroup.Status</code> subelements. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupRetentionPeriod</i> Specifies the number of days for which automatic DB snapshots are retained.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredBackupWindow</i>  Specifies the daily time range during which automated backups are created if automated backups are enabled, as determined by the <code>BackupRetentionPeriod</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceCreateTime</i> Provides the date and time the DB instance was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllocatedStorage</i> Specifies the allocated storage size specified in gibibytes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i> Specifies the connection endpoint.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Endpoint</b>: Specifies the connection endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBName</i> The meaning of this parameter differs according to the database engine you use.  <b>MySQL, MariaDB, SQL Server, PostgreSQL</b>  Contains the name of the initial database of this instance that was provided at create time, if one was specified when the DB instance was created. This same name is returned for the life of the DB instance. Type: String  <b>Oracle</b>  Contains the Oracle System ID (SID) of the created DB instance. Not shown when the returned parameters do not apply to an Oracle DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUsername</i> Contains the master username for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceStatus</i> Specifies the current state of this database. For information about DB instance statuses, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/accessing-monitoring.html#Overview.DBInstance.Status">Viewing DB instance status</a> in the <i>Amazon RDS User Guide.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> The name of the database engine to be used for this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceClass</i> Contains the name of the compute and memory capacity class of the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceIdentifier</i> Contains a user-supplied database identifier. This identifier is the unique key that identifies a DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HostedZoneId</i> Specifies the ID that Amazon Route 53 assigns when you create a hosted zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Specifies the port that the database engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Address</i> Specifies the DNS address of the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupArn</i> The Amazon Resource Name (ARN) for the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Subnets</i>  Contains a list of <code>Subnet</code> elements. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetGroupStatus</i> Provides the status of the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> Provides the VpcId of the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupDescription</i> Provides the description of the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupName</i> The name of the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupName</i> The DB subnet group for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CACertificateIdentifier</i> The identifier of the CA certificate for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageType</i> The storage type of the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceIdentifier</i> The database identifier for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Iops</i> The Provisioned IOPS value for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LicenseModel</i> The license model for the DB instance. Valid values: <code>license-included</code> | <code>bring-your-own-license</code> | <code>general-public-license</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> The database engine version.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiAZ</i> A value that indicates that the Single-AZ DB instance will change to a Multi-AZ deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupRetentionPeriod</i> The number of days for which automated backups are retained.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> The port for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUserPassword</i> The master credentials for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AllocatedStorage</i> The allocated storage size for the DB instance specified in gibibytes .<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceClass</i> The name of the compute and memory capacity class for the DB instance.<br/>A list of the log types whose configuration is still pending. In other words, these log types are in the process of being activated or deactivated.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingCloudwatchLogsExports</b>: A list of the log types whose configuration is still pending. In other words, these log types are in the process of being activated or deactivated.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HostedZoneId</i> Specifies the ID that Amazon Route 53 assigns when you create a hosted zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Specifies the port that the database engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Address</i> Specifies the DNS address of the DB instance.<br/>        """
        pass

    def create_db_parameter_group(self, Description: str, DBParameterGroupFamily: str, DBParameterGroupName: str, Tags: List[Tag]=None) -> CreateDBParameterGroupResult:
        r"""Creates a new DB parameter group.  A DB parameter group is initially created with the default parameters for the database engine used by the DB instance. To provide custom values for any of the parameters, you must modify the group after creating it using <i>ModifyDBParameterGroup</i>. Once you've created a DB parameter group, you need to associate it with your DB instance using <i>ModifyDBInstance</i>. When you associate a new DB parameter group with a running DB instance, you need to reboot the DB instance without failover for the new DB parameter group and associated settings to take effect.  <important> After you create a DB parameter group, you should wait at least 5 minutes before creating your first DB instance that uses that DB parameter group as the default parameter group. This allows Amazon RDS to fully complete the create action before the parameter group is used as the default for a new DB instance. This is especially important for parameters that are critical when creating the default database for a DB instance, such as the character set for the default database defined by the <code>character_set_database</code> parameter. You can use the <i>Parameter Groups</i> option of the <a href="https://console.aws.amazon.com/rds/">Amazon RDS console</a> or the <i>DescribeDBParameters</i> command to verify that your DB parameter group has been created or modified. </important>

        :param self:
        :param Tags:  Tags to assign to the DB parameter group.<br/>Description:  The description for the DB parameter group.<br/>DBParameterGroupFamily:  The DB parameter group family name. A DB parameter group can be associated with one and only one DB parameter group family, and can be applied only to a DB instance running a database engine and engine version compatible with that DB parameter group family. To list all of the available parameter group families for a DB engine, use the following command:  <code>aws rds describe-db-engine-versions --query "DBEngineVersions[].DBParameterGroupFamily" --engine &lt;engine&gt;</code>  For example, to list all of the available parameter group families for the MySQL DB engine, use the following command:  <code>aws rds describe-db-engine-versions --query "DBEngineVersions[].DBParameterGroupFamily" --engine mysql</code>  <note> The output contains duplicates. </note> The following are the valid DB engine values: <ul> <li>  <code>aurora</code> (for MySQL 5.6-compatible Aurora) </li> <li>  <code>aurora-mysql</code> (for MySQL 5.7-compatible Aurora) </li> <li>  <code>aurora-postgresql</code>  </li> <li>  <code>mariadb</code>  </li> <li>  <code>mysql</code>  </li> <li>  <code>oracle-ee</code>  </li> <li>  <code>oracle-ee-cdb</code>  </li> <li>  <code>oracle-se2</code>  </li> <li>  <code>oracle-se2-cdb</code>  </li> <li>  <code>postgres</code>  </li> <li>  <code>sqlserver-ee</code>  </li> <li>  <code>sqlserver-se</code>  </li> <li>  <code>sqlserver-ex</code>  </li> <li>  <code>sqlserver-web</code>  </li> </ul><br/>DBParameterGroupName:  The name of the DB parameter group. Constraints: <ul> <li> Must be 1 to 255 letters, numbers, or hyphens. </li> <li> First character must be a letter </li> <li> Can't end with a hyphen or contain two consecutive hyphens </li> </ul> <note> This value is stored as a lowercase string. </note><br/>
        :return: DBParameterGroup:  Contains the details of an Amazon RDS DB parameter group.  This data type is used as a response element in the <code>DescribeDBParameterGroups</code> action. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBParameterGroupArn</i> The Amazon Resource Name (ARN) for the DB parameter group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> Provides the customer-specified description for this DB parameter group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBParameterGroupFamily</i> The name of the DB parameter group family that this DB parameter group is compatible with.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBParameterGroupName</i> The name of the DB parameter group.<br/>        """
        pass

    def create_db_proxy(self, VpcSubnetIds: List[String], RoleArn: str, Auth: List[UserAuthConfig], EngineFamily: str, DBProxyName: str, VpcSecurityGroupIds: List[String]=None, RequireTLS: Boolean=None, IdleClientTimeout: int=None, DebugLogging: Boolean=None, Tags: List[Tag]=None) -> CreateDBProxyResponse:
        r"""Creates a new DB proxy.

        :param self:
        :param Tags:  An optional set of key-value pairs to associate arbitrary data of your choosing with the proxy.<br/>DebugLogging:  Whether the proxy includes detailed information about SQL statements in its logs. This information helps you to debug issues involving SQL behavior or the performance and scalability of the proxy connections. The debug information includes the text of SQL statements that you submit through the proxy. Thus, only enable this setting when needed for debugging, and only when you have security measures in place to safeguard any sensitive information that appears in the logs.<br/>IdleClientTimeout:  The number of seconds that a connection to the proxy can be inactive before the proxy disconnects it. You can set this value higher or lower than the connection timeout limit for the associated database.<br/>RequireTLS:  A Boolean parameter that specifies whether Transport Layer Security (TLS) encryption is required for connections to the proxy. By enabling this setting, you can enforce encrypted TLS connections to the proxy.<br/>VpcSecurityGroupIds:  One or more VPC security group IDs to associate with the new proxy.<br/>VpcSubnetIds:  One or more VPC subnet IDs to associate with the new proxy.<br/>RoleArn:  The Amazon Resource Name (ARN) of the IAM role that the proxy uses to access secrets in Amazon Web Services Secrets Manager.<br/>Auth:  The authorization mechanism that the proxy uses.<br/>EngineFamily:  The kinds of databases that the proxy can connect to. This value determines which database network protocol the proxy recognizes when it interprets network traffic to and from the database. The engine family applies to MySQL and PostgreSQL for both RDS and Aurora.<br/>DBProxyName:  The identifier for the proxy. This name must be unique for all proxies owned by your Amazon Web Services account in the specified Amazon Web Services Region. An identifier must begin with a letter and must contain only ASCII letters, digits, and hyphens; it can't end with a hyphen or contain two consecutive hyphens.<br/>
        :return: DBProxy:  The <code>DBProxy</code> structure corresponding to the new proxy.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdatedDate</i> The date and time when the proxy was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedDate</i> The date and time when the proxy was first created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DebugLogging</i> Whether the proxy includes detailed information about SQL statements in its logs. This information helps you to debug issues involving SQL behavior or the performance and scalability of the proxy connections. The debug information includes the text of SQL statements that you submit through the proxy. Thus, only enable this setting when needed for debugging, and only when you have security measures in place to safeguard any sensitive information that appears in the logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IdleClientTimeout</i> The number of seconds a connection to the proxy can have no activity before the proxy drops the client connection. The proxy keeps the underlying database connection open and puts it back into the connection pool for reuse by later connection requests. Default: 1800 (30 minutes) Constraints: 1 to 28,800<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequireTLS</i> Indicates whether Transport Layer Security (TLS) encryption is required for connections to the proxy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i> The endpoint that you can use to connect to the DB proxy. You include the endpoint value in the connection string for a database client application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The Amazon Resource Name (ARN) for the IAM role that the proxy uses to access Amazon Secrets Manager.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Auth</i> One or more data structures specifying the authorization mechanism to connect to the associated RDS DB instance or Aurora DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcSubnetIds</i> The EC2 subnet IDs for the proxy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcSecurityGroupIds</i> Provides a list of VPC security groups that the proxy belongs to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> Provides the VPC ID of the DB proxy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineFamily</i> The engine family applies to MySQL and PostgreSQL for both RDS and Aurora.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current status of this proxy. A status of <code>available</code> means the proxy is ready to handle requests. Other values indicate that you must wait for the proxy to be ready, or take some action to resolve an issue.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBProxyArn</i> The Amazon Resource Name (ARN) for the proxy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBProxyName</i> The identifier for the proxy. This name must be unique for all proxies owned by your Amazon Web Services account in the specified Amazon Web Services Region.<br/>        """
        pass

    def create_db_proxy_endpoint(self, VpcSubnetIds: List[String], DBProxyEndpointName: str, DBProxyName: str, VpcSecurityGroupIds: List[String]=None, TargetRole: str=None, Tags: List[Tag]=None) -> CreateDBProxyEndpointResponse:
        r""" Creates a <code>DBProxyEndpoint</code>. Only applies to proxies that are associated with Aurora DB clusters. You can use DB proxy endpoints to specify read/write or read-only access to the DB cluster. You can also use DB proxy endpoints to access a DB proxy through a different VPC than the proxy's default VPC. 

        :param self:
        :param Tags:  A list of tags. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html">Tagging Amazon RDS Resources</a> in the <i>Amazon RDS User Guide.</i> <br/>TargetRole:  A value that indicates whether the DB proxy endpoint can be used for read/write or read-only operations. The default is <code>READ_WRITE</code>.<br/>VpcSecurityGroupIds:  The VPC security group IDs for the DB proxy endpoint that you create. You can specify a different set of security group IDs than for the original DB proxy. The default is the default security group for the VPC.<br/>VpcSubnetIds:  The VPC subnet IDs for the DB proxy endpoint that you create. You can specify a different set of subnet IDs than for the original DB proxy.<br/>DBProxyEndpointName:  The name of the DB proxy endpoint to create.<br/>DBProxyName:  The name of the DB proxy associated with the DB proxy endpoint that you create.<br/>
        :return: DBProxyEndpoint:  The <code>DBProxyEndpoint</code> object that is created by the API operation. The DB proxy endpoint that you create might provide capabilities such as read/write or read-only operations, or using a different VPC than the proxy's default VPC.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsDefault</i> A value that indicates whether this endpoint is the default endpoint for the associated DB proxy. Default DB proxy endpoints always have read/write capability. Other endpoints that you associate with the DB proxy can be either read/write or read-only.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetRole</i> A value that indicates whether the DB proxy endpoint can be used for read/write or read-only operations.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedDate</i> The date and time when the DB proxy endpoint was first created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i> The endpoint that you can use to connect to the DB proxy. You include the endpoint value in the connection string for a database client application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcSubnetIds</i> The EC2 subnet IDs for the DB proxy endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcSecurityGroupIds</i> Provides a list of VPC security groups that the DB proxy endpoint belongs to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> Provides the VPC ID of the DB proxy endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current status of this DB proxy endpoint. A status of <code>available</code> means the endpoint is ready to handle requests. Other values indicate that you must wait for the endpoint to be ready, or take some action to resolve an issue.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBProxyName</i> The identifier for the DB proxy that is associated with this DB proxy endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBProxyEndpointArn</i> The Amazon Resource Name (ARN) for the DB proxy endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBProxyEndpointName</i> The name for the DB proxy endpoint. An identifier must begin with a letter and must contain only ASCII letters, digits, and hyphens; it can't end with a hyphen or contain two consecutive hyphens.<br/>        """
        pass

    def create_db_security_group(self, DBSecurityGroupDescription: str, DBSecurityGroupName: str, Tags: List[Tag]=None) -> CreateDBSecurityGroupResult:
        r"""Creates a new DB security group. DB security groups control access to a DB instance. <note> A DB security group controls access to EC2-Classic DB instances that are not in a VPC. </note>

        :param self:
        :param Tags:  Tags to assign to the DB security group.<br/>DBSecurityGroupDescription:  The description for the DB security group.<br/>DBSecurityGroupName:  The name for the DB security group. This value is stored as a lowercase string. Constraints: <ul> <li> Must be 1 to 255 letters, numbers, or hyphens. </li> <li> First character must be a letter </li> <li> Can't end with a hyphen or contain two consecutive hyphens </li> <li> Must not be "Default" </li> </ul> Example: <code>mysecuritygroup</code> <br/>
        :return: DBSecurityGroup:  Contains the details for an Amazon RDS DB security group.  This data type is used as a response element in the <code>DescribeDBSecurityGroups</code> action. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSecurityGroupArn</i> The Amazon Resource Name (ARN) for the DB security group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IPRanges</i>  Contains a list of <code>IPRange</code> elements. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EC2SecurityGroups</i>  Contains a list of <code>EC2SecurityGroup</code> elements. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> Provides the VpcId of the DB security group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSecurityGroupDescription</i> Provides the description of the DB security group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSecurityGroupName</i> Specifies the name of the DB security group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> Provides the Amazon Web Services ID of the owner of a specific DB security group.<br/>        """
        pass

    def create_db_snapshot(self, DBInstanceIdentifier: str, DBSnapshotIdentifier: str, Tags: List[Tag]=None) -> CreateDBSnapshotResult:
        r"""Creates a snapshot of a DB instance. The source DB instance must be in the <code>available</code> or <code>storage-optimization</code> state.

        :param self:
        :param Tags:  A list of tags. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html">Tagging Amazon RDS Resources</a> in the <i>Amazon RDS User Guide.</i> <br/>DBInstanceIdentifier:  The identifier of the DB instance that you want to create the snapshot of. Constraints: <ul> <li> Must match the identifier of an existing DBInstance. </li> </ul><br/>DBSnapshotIdentifier:  The identifier for the DB snapshot. Constraints: <ul> <li> Can't be null, empty, or blank </li> <li> Must contain from 1 to 255 letters, numbers, or hyphens </li> <li> First character must be a letter </li> <li> Can't end with a hyphen or contain two consecutive hyphens </li> </ul> Example: <code>my-snapshot-id</code> <br/>
        :return: DBSnapshot:  Contains the details of an Amazon RDS DB snapshot.  This data type is used as a response element in the <code>DescribeDBSnapshots</code> action. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TagList</i> A list of tags. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html">Tagging Amazon RDS Resources</a> in the <i>Amazon RDS User Guide.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DbiResourceId</i> The identifier for the source DB instance, which can't be changed and which is unique to an Amazon Web Services Region.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProcessorFeatures</i> The number of CPU cores and the number of threads per core for the DB instance class of the DB instance when the DB snapshot was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IAMDatabaseAuthenticationEnabled</i> True if mapping of Amazon Web Services Identity and Access Management (IAM) accounts to database accounts is enabled, and otherwise false.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Timezone</i> The time zone of the DB snapshot. In most cases, the <code>Timezone</code> element is empty. <code>Timezone</code> content appears only for snapshots taken from Microsoft SQL Server DB instances that were created with a time zone specified. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSnapshotArn</i> The Amazon Resource Name (ARN) for the DB snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i>  If <code>Encrypted</code> is true, the Amazon Web Services KMS key identifier for the encrypted DB snapshot.  The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the Amazon Web Services KMS customer master key (CMK).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Encrypted</i> Specifies whether the DB snapshot is encrypted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TdeCredentialArn</i> The ARN from the key store with which to associate the instance for TDE encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageType</i> Specifies the storage type associated with DB snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceDBSnapshotIdentifier</i> The DB snapshot Amazon Resource Name (ARN) that the DB snapshot was copied from. It only has value in case of cross-customer or cross-region copy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceRegion</i> The Amazon Web Services Region that the DB snapshot was created in or copied from.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PercentProgress</i> The percentage of the estimated data that has been transferred.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OptionGroupName</i> Provides the option group name for the DB snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Iops</i> Specifies the Provisioned IOPS (I/O operations per second) value of the DB instance at the time of the snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotType</i> Provides the type of the DB snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LicenseModel</i> License model information for the restored DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> Specifies the version of the database engine.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUsername</i> Provides the master username for the DB snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceCreateTime</i> Specifies the time in Coordinated Universal Time (UTC) when the DB instance, from which the snapshot was taken, was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> Provides the VPC ID associated with the DB snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZone</i> Specifies the name of the Availability Zone the DB instance was located in at the time of the DB snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Specifies the port that the database engine was listening on at the time of the snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Specifies the status of this DB snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllocatedStorage</i> Specifies the allocated storage size in gibibytes (GiB).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> Specifies the name of the database engine.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotCreateTime</i> Specifies when the snapshot was taken in Coordinated Universal Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceIdentifier</i> Specifies the DB instance identifier of the DB instance this DB snapshot was created from.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSnapshotIdentifier</i> Specifies the identifier for the DB snapshot.<br/>        """
        pass

    def create_db_subnet_group(self, SubnetIds: List[String], DBSubnetGroupDescription: str, DBSubnetGroupName: str, Tags: List[Tag]=None) -> CreateDBSubnetGroupResult:
        r"""Creates a new DB subnet group. DB subnet groups must contain at least one subnet in at least two AZs in the Amazon Web Services Region.

        :param self:
        :param Tags:  Tags to assign to the DB subnet group.<br/>SubnetIds:  The EC2 Subnet IDs for the DB subnet group.<br/>DBSubnetGroupDescription:  The description for the DB subnet group.<br/>DBSubnetGroupName:  The name for the DB subnet group. This value is stored as a lowercase string. Constraints: Must contain no more than 255 letters, numbers, periods, underscores, spaces, or hyphens. Must not be default. Example: <code>mySubnetgroup</code> <br/>
        :return: DBSubnetGroup:  Contains the details of an Amazon RDS DB subnet group.  This data type is used as a response element in the <code>DescribeDBSubnetGroups</code> action. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupArn</i> The Amazon Resource Name (ARN) for the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Subnets</i>  Contains a list of <code>Subnet</code> elements. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetGroupStatus</i> Provides the status of the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> Provides the VpcId of the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupDescription</i> Provides the description of the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupName</i> The name of the DB subnet group.<br/>        """
        pass

    def create_event_subscription(self, SnsTopicArn: str, SubscriptionName: str, SourceType: str=None, EventCategories: List[String]=None, SourceIds: List[String]=None, Enabled: BooleanOptional=None, Tags: List[Tag]=None) -> CreateEventSubscriptionResult:
        r"""Creates an RDS event notification subscription. This action requires a topic Amazon Resource Name (ARN) created by either the RDS console, the SNS console, or the SNS API. To obtain an ARN with SNS, you must create a topic in Amazon SNS and subscribe to the topic. The ARN is displayed in the SNS console. You can specify the type of source (<code>SourceType</code>) that you want to be notified of and provide a list of RDS sources (<code>SourceIds</code>) that triggers the events. You can also provide a list of event categories (<code>EventCategories</code>) for events that you want to be notified of. For example, you can specify <code>SourceType</code> = <code>db-instance</code>, <code>SourceIds</code> = <code>mydbinstance1</code>, <code>mydbinstance2</code> and <code>EventCategories</code> = <code>Availability</code>, <code>Backup</code>. If you specify both the <code>SourceType</code> and <code>SourceIds</code>, such as <code>SourceType</code> = <code>db-instance</code> and <code>SourceIdentifier</code> = <code>myDBInstance1</code>, you are notified of all the <code>db-instance</code> events for the specified source. If you specify a <code>SourceType</code> but do not specify a <code>SourceIdentifier</code>, you receive notice of the events for that source type for all your RDS sources. If you don't specify either the SourceType or the <code>SourceIdentifier</code>, you are notified of events generated from all RDS sources belonging to your customer account. <note> RDS event notification is only available for unencrypted SNS topics. If you specify an encrypted SNS topic, event notifications aren't sent for the topic. </note>

        :param self:
        :param Tags:  A list of tags. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html">Tagging Amazon RDS Resources</a> in the <i>Amazon RDS User Guide.</i> <br/>Enabled:   A value that indicates whether to activate the subscription. If the event notification subscription isn't activated, the subscription is created but not active. <br/>SourceIds:  The list of identifiers of the event sources for which events are returned. If not specified, then all sources are included in the response. An identifier must begin with a letter and must contain only ASCII letters, digits, and hyphens. It can't end with a hyphen or contain two consecutive hyphens. Constraints: <ul> <li> If <code>SourceIds</code> are supplied, <code>SourceType</code> must also be provided. </li> <li> If the source type is a DB instance, a <code>DBInstanceIdentifier</code> value must be supplied. </li> <li> If the source type is a DB cluster, a <code>DBClusterIdentifier</code> value must be supplied. </li> <li> If the source type is a DB parameter group, a <code>DBParameterGroupName</code> value must be supplied. </li> <li> If the source type is a DB security group, a <code>DBSecurityGroupName</code> value must be supplied. </li> <li> If the source type is a DB snapshot, a <code>DBSnapshotIdentifier</code> value must be supplied. </li> <li> If the source type is a DB cluster snapshot, a <code>DBClusterSnapshotIdentifier</code> value must be supplied. </li> </ul><br/>EventCategories:   A list of event categories for a particular source type (<code>SourceType</code>) that you want to subscribe to. You can see a list of the categories for a given source type in <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Events.html">Events</a> in the <i>Amazon RDS User Guide</i> or by using the <code>DescribeEventCategories</code> operation. <br/>SourceType:  The type of source that is generating the events. For example, if you want to be notified of events generated by a DB instance, you set this parameter to <code>db-instance</code>. If this value isn't specified, all events are returned. Valid values: <code>db-instance</code> | <code>db-cluster</code> | <code>db-parameter-group</code> | <code>db-security-group</code> | <code>db-snapshot</code> | <code>db-cluster-snapshot</code> <br/>SnsTopicArn:  The Amazon Resource Name (ARN) of the SNS topic created for event notification. The ARN is created by Amazon SNS when you create a topic and subscribe to it.<br/>SubscriptionName:  The name of the subscription. Constraints: The name must be less than 255 characters.<br/>
        :return: EventSubscription:  Contains the results of a successful invocation of the <code>DescribeEventSubscriptions</code> action.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EventSubscriptionArn</i> The Amazon Resource Name (ARN) for the event subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> A Boolean value indicating if the subscription is enabled. True indicates the subscription is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EventCategoriesList</i> A list of event categories for the RDS event notification subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceIdsList</i> A list of source IDs for the RDS event notification subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceType</i> The source type for the RDS event notification subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubscriptionCreationTime</i> The time the RDS event notification subscription was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the RDS event notification subscription. Constraints: Can be one of the following: creating | modifying | deleting | active | no-permission | topic-not-exist The status "no-permission" indicates that RDS no longer has permission to post to the SNS topic. The status "topic-not-exist" indicates that the topic was deleted after the subscription was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnsTopicArn</i> The topic ARN of the RDS event notification subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustSubscriptionId</i> The RDS event notification subscription Id.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomerAwsId</i> The Amazon Web Services customer account associated with the RDS event notification subscription.<br/>        """
        pass

    def create_global_cluster(self, GlobalClusterIdentifier: str=None, SourceDBClusterIdentifier: str=None, Engine: str=None, EngineVersion: str=None, DeletionProtection: BooleanOptional=None, DatabaseName: str=None, StorageEncrypted: BooleanOptional=None) -> CreateGlobalClusterResult:
        r""" Creates an Aurora global database spread across multiple Amazon Web Services Regions. The global database contains a single primary cluster with read-write capability, and a read-only secondary cluster that receives data from the primary cluster through high-speed replication performed by the Aurora storage subsystem.   You can create a global database that is initially empty, and then add a primary cluster and a secondary cluster to it. Or you can specify an existing Aurora cluster during the create operation, and this cluster becomes the primary cluster of the global database.  <note> This action only applies to Aurora DB clusters. </note>

        :param self:
        :param StorageEncrypted:   The storage encryption setting for the new global database cluster. <br/>DatabaseName:   The name for your database of up to 64 alpha-numeric characters. If you do not provide a name, Amazon Aurora will not create a database in the global database cluster you are creating. <br/>DeletionProtection:   The deletion protection setting for the new global database. The global database can't be deleted when deletion protection is enabled. <br/>EngineVersion:  The engine version of the Aurora global database.<br/>Engine:  The name of the database engine to be used for this DB cluster.<br/>SourceDBClusterIdentifier:   The Amazon Resource Name (ARN) to use as the primary cluster of the global database. This parameter is optional. <br/>GlobalClusterIdentifier:  The cluster identifier of the new global database cluster.<br/>
        :return: GlobalCluster:  A data type representing an Aurora global database.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FailoverState</i> A data object containing all properties for the current state of an in-process or pending failover process for this Aurora global database. This object is empty unless the <a>FailoverGlobalCluster</a> API operation has been called on this Aurora global database (<a>GlobalCluster</a>). &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>FailoverState</b>: A data object containing all properties for the current state of an in-process or pending failover process for this Aurora global database. This object is empty unless the <a>FailoverGlobalCluster</a> API operation has been called on this Aurora global database (<a>GlobalCluster</a>). <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalClusterMembers</i>  The list of cluster IDs for secondary clusters within the global database cluster. Currently limited to 1 item. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeletionProtection</i>  The deletion protection setting for the new global database cluster. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageEncrypted</i>  The storage encryption setting for the global database cluster. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i>  The default database name within the new global database cluster. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> Indicates the database engine version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i>  The Aurora database engine used by the global database cluster. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Specifies the current state of this global database cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalClusterArn</i> The Amazon Resource Name (ARN) for the global database cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalClusterResourceId</i>  The Amazon Web Services Region-unique, immutable identifier for the global database cluster. This identifier is found in Amazon Web Services CloudTrail log entries whenever the Amazon Web Services KMS customer master key (CMK) for the DB cluster is accessed. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalClusterIdentifier</i>  Contains a user-supplied global database cluster identifier. This identifier is the unique key that identifies a global database cluster. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ToDbClusterArn</i> The Amazon Resource Name (ARN) of the Aurora DB cluster that is currently being promoted, and which is associated with this state.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FromDbClusterArn</i> The Amazon Resource Name (ARN) of the Aurora DB cluster that is currently being demoted, and which is associated with this state. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current status of the Aurora global database (<a>GlobalCluster</a>). Possible values are as follows:  <ul> <li> pending &#x96; A request to fail over the Aurora global database (<a>GlobalCluster</a>) has been received by the service. The <code>GlobalCluster</code>'s primary DB cluster and the specified secondary DB cluster are being verified before the failover process can start. </li> <li> failing-over &#x96; This status covers the range of Aurora internal operations that take place during the failover process, such as demoting the primary Aurora DB cluster, promoting the secondary Aurora DB, and synchronizing replicas.  </li> <li> cancelling &#x96; The request to fail over the Aurora global database (<a>GlobalCluster</a>) was cancelled and the primary Aurora DB cluster and the selected secondary Aurora DB cluster are returning to their previous states.  </li> </ul><br/>        """
        pass

    def create_option_group(self, OptionGroupDescription: str, MajorEngineVersion: str, EngineName: str, OptionGroupName: str, Tags: List[Tag]=None) -> CreateOptionGroupResult:
        r"""Creates a new option group. You can create up to 20 option groups.

        :param self:
        :param Tags:  Tags to assign to the option group.<br/>OptionGroupDescription:  The description of the option group.<br/>MajorEngineVersion:  Specifies the major version of the engine that this option group should be associated with.<br/>EngineName:  Specifies the name of the engine that this option group should be associated with. Valid Values:  <ul> <li>  <code>mariadb</code>  </li> <li>  <code>mysql</code>  </li> <li>  <code>oracle-ee</code>  </li> <li>  <code>oracle-ee-cdb</code>  </li> <li>  <code>oracle-se2</code>  </li> <li>  <code>oracle-se2-cdb</code>  </li> <li>  <code>postgres</code>  </li> <li>  <code>sqlserver-ee</code>  </li> <li>  <code>sqlserver-se</code>  </li> <li>  <code>sqlserver-ex</code>  </li> <li>  <code>sqlserver-web</code>  </li> </ul><br/>OptionGroupName:  Specifies the name of the option group to be created. Constraints: <ul> <li> Must be 1 to 255 letters, numbers, or hyphens </li> <li> First character must be a letter </li> <li> Can't end with a hyphen or contain two consecutive hyphens </li> </ul> Example: <code>myoptiongroup</code> <br/>
        :return: OptionGroup:  <p/>:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OptionGroupArn</i> The Amazon Resource Name (ARN) for the option group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> If <b>AllowsVpcAndNonVpcInstanceMemberships</b> is <code>false</code>, this field is blank. If <b>AllowsVpcAndNonVpcInstanceMemberships</b> is <code>true</code> and this field is blank, then this option group can be applied to both VPC and non-VPC instances. If this field contains a value, then this option group can only be applied to instances that are in the VPC indicated by this field. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowsVpcAndNonVpcInstanceMemberships</i> Indicates whether this option group can be applied to both VPC and non-VPC instances. The value <code>true</code> indicates the option group can be applied to both VPC and non-VPC instances. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Options</i> Indicates what options are available in the option group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MajorEngineVersion</i> Indicates the major engine version associated with this option group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineName</i> Indicates the name of the engine that this option group can be applied to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OptionGroupDescription</i> Provides a description of the option group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OptionGroupName</i> Specifies the name of the option group.<br/>        """
        pass

    def delete_custom_availability_zone(self, CustomAvailabilityZoneId: str) -> DeleteCustomAvailabilityZoneResult:
        r"""Deletes a custom Availability Zone (AZ). A custom AZ is an on-premises AZ that is integrated with a VMware vSphere cluster. For more information about RDS on VMware, see the <a href="https://docs.aws.amazon.com/AmazonRDS/latest/RDSonVMwareUserGuide/rds-on-vmware.html"> RDS on VMware User Guide.</a> 

        :param self:
        :param CustomAvailabilityZoneId:  The custom AZ identifier.<br/>
        :return: CustomAvailabilityZone:  A custom Availability Zone (AZ) is an on-premises AZ that is integrated with a VMware vSphere cluster. For more information about RDS on VMware, see the <a href="https://docs.aws.amazon.com/AmazonRDS/latest/RDSonVMwareUserGuide/rds-on-vmware.html"> RDS on VMware User Guide.</a> :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpnDetails</i> Information about the virtual private network (VPN) between the VMware vSphere cluster and the Amazon Web Services website.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>VpnDetails</b>: Information about the virtual private network (VPN) between the VMware vSphere cluster and the Amazon Web Services website.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomAvailabilityZoneStatus</i> The status of the custom AZ.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomAvailabilityZoneName</i> The name of the custom AZ.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomAvailabilityZoneId</i> The identifier of the custom AZ. Amazon RDS generates a unique identifier when a custom AZ is created.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VpnState</i> The state of the VPN.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VpnName</i> The name of the VPN.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VpnPSK</i> The preshared key (PSK) for the VPN.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VpnGatewayIp</i> The IP address of network traffic from Amazon Web Services to your on-premises data center.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VpnTunnelOriginatorIP</i> The IP address of network traffic from your on-premises data center. A custom AZ receives the network traffic.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VpnId</i> The ID of the VPN.<br/>        """
        pass

    def delete_db_cluster(self, DBClusterIdentifier: str, SkipFinalSnapshot: Boolean=None, FinalDBSnapshotIdentifier: str=None) -> DeleteDBClusterResult:
        r"""The DeleteDBCluster action deletes a previously provisioned DB cluster. When you delete a DB cluster, all automated backups for that DB cluster are deleted and can't be recovered. Manual DB cluster snapshots of the specified DB cluster are not deleted. <p/> For more information on Amazon Aurora, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html"> What Is Amazon Aurora?</a> in the <i>Amazon Aurora User Guide.</i>  <note> This action only applies to Aurora DB clusters. </note>

        :param self:
        :param FinalDBSnapshotIdentifier:   The DB cluster snapshot identifier of the new DB cluster snapshot created when <code>SkipFinalSnapshot</code> is disabled.  <note>  Specifying this parameter and also skipping the creation of a final DB cluster snapshot with the <code>SkipFinalShapshot</code> parameter results in an error. </note> Constraints: <ul> <li> Must be 1 to 255 letters, numbers, or hyphens. </li> <li> First character must be a letter </li> <li> Can't end with a hyphen or contain two consecutive hyphens </li> </ul><br/>SkipFinalSnapshot:  A value that indicates whether to skip the creation of a final DB cluster snapshot before the DB cluster is deleted. If skip is specified, no DB cluster snapshot is created. If skip isn't specified, a DB cluster snapshot is created before the DB cluster is deleted. By default, skip isn't specified, and the DB cluster snapshot is created. By default, this parameter is disabled. <note> You must specify a <code>FinalDBSnapshotIdentifier</code> parameter if <code>SkipFinalSnapshot</code> is disabled. </note><br/>DBClusterIdentifier:  The DB cluster identifier for the DB cluster to be deleted. This parameter isn't case-sensitive. Constraints: <ul> <li> Must match an existing DBClusterIdentifier. </li> </ul><br/>
        :return: DBCluster:  Contains the details of an Amazon Aurora DB cluster.  This data type is used as a response element in the <code>DescribeDBClusters</code>, <code>StopDBCluster</code>, and <code>StartDBCluster</code> actions. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingModifiedValues</i> A value that specifies that changes to the DB cluster are pending. This element is only included when changes are pending. Specific changes are identified by subelements.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingModifiedValues</b>: A value that specifies that changes to the DB cluster are pending. This element is only included when changes are pending. Specific changes are identified by subelements.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalWriteForwardingRequested</i> Specifies whether you have requested to enable write forwarding for a secondary cluster in an Aurora global database. Because write forwarding takes time to enable, check the value of <code>GlobalWriteForwardingStatus</code> to confirm that the request has completed before using the write forwarding feature for this cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalWriteForwardingStatus</i> Specifies whether a secondary cluster in an Aurora global database has write forwarding enabled, not enabled, or is in the process of enabling it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TagList</i> A list of tags. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html">Tagging Amazon RDS Resources</a> in the <i>Amazon RDS User Guide.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainMemberships</i> The Active Directory Domain membership records associated with the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CrossAccountClone</i> Specifies whether the DB cluster is a clone of a DB cluster owned by a different Amazon Web Services account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CopyTagsToSnapshot</i> Specifies whether tags are copied from the DB cluster to snapshots of the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamKinesisStreamName</i> The name of the Amazon Kinesis data stream used for the database activity stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamKmsKeyId</i> The Amazon Web Services KMS key identifier used for encrypting messages in the database activity stream. The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the Amazon Web Services KMS customer master key (CMK).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamStatus</i> The status of the database activity stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamMode</i> The mode of the database activity stream. Database events such as a change or access generate an activity stream event. The database session can handle these events either synchronously or asynchronously. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HttpEndpointEnabled</i> A value that indicates whether the HTTP endpoint for an Aurora Serverless DB cluster is enabled. When enabled, the HTTP endpoint provides a connectionless web service API for running SQL queries on the Aurora Serverless DB cluster. You can also query your database from inside the RDS console with the query editor. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/data-api.html">Using the Data API for Aurora Serverless</a> in the <i>Amazon Aurora User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeletionProtection</i> Indicates if the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ScalingConfigurationInfo</i> Shows the scaling configuration for an Aurora DB cluster in <code>serverless</code> DB engine mode. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html">Using Amazon Aurora Serverless</a> in the <i>Amazon Aurora User Guide</i>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ScalingConfigurationInfo</b>: Shows the scaling configuration for an Aurora DB cluster in <code>serverless</code> DB engine mode. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html">Using Amazon Aurora Serverless</a> in the <i>Amazon Aurora User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineMode</i> The DB engine mode of the DB cluster, either <code>provisioned</code>, <code>serverless</code>, <code>parallelquery</code>, <code>global</code>, or <code>multimaster</code>. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBCluster.html"> CreateDBCluster</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Capacity</i> The current capacity of an Aurora Serverless DB cluster. The capacity is 0 (zero) when the cluster is paused. For more information about Aurora Serverless, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html">Using Amazon Aurora Serverless</a> in the <i>Amazon Aurora User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnabledCloudwatchLogsExports</i> A list of log types that this DB cluster is configured to export to CloudWatch Logs. Log types vary by DB engine. For information about the log types for each DB engine, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_LogAccess.html">Amazon RDS Database Log Files</a> in the <i>Amazon Aurora User Guide.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BacktrackConsumedChangeRecords</i> The number of change records stored for Backtrack.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BacktrackWindow</i> The target backtrack window, in seconds. If this value is set to 0, backtracking is disabled for the DB cluster. Otherwise, backtracking is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EarliestBacktrackTime</i> The earliest time to which a DB cluster can be backtracked.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterCreateTime</i> Specifies the time when the DB cluster was created, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloneGroupId</i> Identifies the clone group to which the DB cluster is associated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IAMDatabaseAuthenticationEnabled</i> A value that indicates whether the mapping of Amazon Web Services Identity and Access Management (IAM) accounts to database accounts is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociatedRoles</i> Provides a list of the Amazon Web Services Identity and Access Management (IAM) roles that are associated with the DB cluster. IAM roles that are associated with a DB cluster grant permission for the DB cluster to access other Amazon Web Services on your behalf.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterArn</i> The Amazon Resource Name (ARN) for the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DbClusterResourceId</i> The Amazon Web Services Region-unique, immutable identifier for the DB cluster. This identifier is found in Amazon Web Services CloudTrail log entries whenever the Amazon Web Services KMS CMK for the DB cluster is accessed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> If <code>StorageEncrypted</code> is enabled, the Amazon Web Services KMS key identifier for the encrypted DB cluster. The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the Amazon Web Services KMS customer master key (CMK).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageEncrypted</i> Specifies whether the DB cluster is encrypted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HostedZoneId</i> Specifies the ID that Amazon Route 53 assigns when you create a hosted zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcSecurityGroups</i> Provides a list of VPC security groups that the DB cluster belongs to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterMembers</i> Provides the list of instances that make up the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadReplicaIdentifiers</i> Contains one or more identifiers of the read replicas associated with this DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationSourceIdentifier</i> Contains the identifier of the source DB cluster if this DB cluster is a read replica.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i> Specifies the weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredBackupWindow</i> Specifies the daily time range during which automated backups are created if automated backups are enabled, as determined by the <code>BackupRetentionPeriod</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterOptionGroupMemberships</i> Provides the list of option group memberships for this DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUsername</i> Contains the master username for the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Specifies the port that the database engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestRestorableTime</i> Specifies the latest time to which a database can be restored with point-in-time restore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> Indicates the database engine version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> The name of the database engine to be used for this DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiAZ</i> Specifies whether the DB cluster has instances in multiple Availability Zones.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomEndpoints</i> Identifies all custom endpoints associated with the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReaderEndpoint</i> The reader endpoint for the DB cluster. The reader endpoint for a DB cluster load-balances connections across the Aurora Replicas that are available in a DB cluster. As clients request new connections to the reader endpoint, Aurora distributes the connection requests among the Aurora Replicas in the DB cluster. This functionality can help balance your read workload across multiple Aurora Replicas in your DB cluster.  If a failover occurs, and the Aurora Replica that you are connected to is promoted to be the primary instance, your connection is dropped. To continue sending your read workload to other Aurora Replicas in the cluster, you can then reconnect to the reader endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i> Specifies the connection endpoint for the primary instance of the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EarliestRestorableTime</i> The earliest time to which a database can be restored with point-in-time restore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PercentProgress</i> Specifies the progress of the operation as a percentage.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Specifies the current state of this DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroup</i> Specifies information on the subnet group associated with the DB cluster, including the name, description, and subnets in the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterParameterGroup</i> Specifies the name of the DB cluster parameter group for the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterIdentifier</i> Contains a user-supplied DB cluster identifier. This identifier is the unique key that identifies a DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> Contains the name of the initial database of this DB cluster that was provided at create time, if one was specified when the DB cluster was created. This same name is returned for the life of the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CharacterSetName</i> If present, specifies the name of the character set that this cluster is associated with.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupRetentionPeriod</i> Specifies the number of days for which automatic DB snapshots are retained.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZones</i> Provides the list of Availability Zones (AZs) where instances in the DB cluster can be created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllocatedStorage</i> For all database engines except Amazon Aurora, <code>AllocatedStorage</code> specifies the allocated storage size in gibibytes (GiB). For Aurora, <code>AllocatedStorage</code> always returns 1, because Aurora DB cluster storage size isn't fixed, but instead automatically adjusts as needed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TimeoutAction</i> The timeout action of a call to <code>ModifyCurrentDBClusterCapacity</code>, either <code>ForceApplyCapacityChange</code> or <code>RollbackCapacityChange</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecondsUntilAutoPause</i> The remaining amount of time, in seconds, before the Aurora DB cluster in <code>serverless</code> mode is paused. A DB cluster can be paused only when it's idle (it has no connections).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoPause</i> A value that indicates whether automatic pause is allowed for the Aurora DB cluster in <code>serverless</code> DB engine mode. When the value is set to false for an Aurora Serverless DB cluster, the DB cluster automatically resumes.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxCapacity</i> The maximum capacity for an Aurora DB cluster in <code>serverless</code> DB engine mode.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MinCapacity</i> The maximum capacity for the Aurora DB cluster in <code>serverless</code> DB engine mode.<br/>A list of the log types whose configuration is still pending. In other words, these log types are in the process of being activated or deactivated.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingCloudwatchLogsExports</b>: A list of the log types whose configuration is still pending. In other words, these log types are in the process of being activated or deactivated.        """
        pass

    def delete_db_cluster_endpoint(self, DBClusterEndpointIdentifier: str) -> DBClusterEndpoint:
        r"""Deletes a custom endpoint and removes it from an Amazon Aurora DB cluster. <note> This action only applies to Aurora DB clusters. </note>

        :param self:
        :param DBClusterEndpointIdentifier:  The identifier associated with the custom endpoint. This parameter is stored as a lowercase string.<br/>
        :return: DBClusterEndpointArn:  The Amazon Resource Name (ARN) for the endpoint.<br/>ExcludedMembers:  List of DB instance identifiers that aren't part of the custom endpoint group. All other eligible instances are reachable through the custom endpoint. Only relevant if the list of static members is empty.<br/>StaticMembers:  List of DB instance identifiers that are part of the custom endpoint group.<br/>CustomEndpointType:  The type associated with a custom endpoint. One of: <code>READER</code>, <code>WRITER</code>, <code>ANY</code>.<br/>EndpointType:  The type of the endpoint. One of: <code>READER</code>, <code>WRITER</code>, <code>CUSTOM</code>.<br/>Status:  The current status of the endpoint. One of: <code>creating</code>, <code>available</code>, <code>deleting</code>, <code>inactive</code>, <code>modifying</code>. The <code>inactive</code> state applies to an endpoint that can't be used for a certain kind of cluster, such as a <code>writer</code> endpoint for a read-only secondary cluster in a global database.<br/>Endpoint:  The DNS address of the endpoint.<br/>DBClusterEndpointResourceIdentifier:  A unique system-generated identifier for an endpoint. It remains the same for the whole life of the endpoint.<br/>DBClusterIdentifier:  The DB cluster identifier of the DB cluster associated with the endpoint. This parameter is stored as a lowercase string.<br/>DBClusterEndpointIdentifier:  The identifier associated with the endpoint. This parameter is stored as a lowercase string.<br/>        """
        pass

    def delete_db_cluster_parameter_group(self, DBClusterParameterGroupName: str):
        r"""Deletes a specified DB cluster parameter group. The DB cluster parameter group to be deleted can't be associated with any DB clusters. For more information on Amazon Aurora, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html"> What Is Amazon Aurora?</a> in the <i>Amazon Aurora User Guide.</i>  <note> This action only applies to Aurora DB clusters. </note>

        :param self:
        :param DBClusterParameterGroupName:  The name of the DB cluster parameter group. Constraints: <ul> <li> Must be the name of an existing DB cluster parameter group. </li> <li> You can't delete a default DB cluster parameter group. </li> <li> Can't be associated with any DB clusters. </li> </ul><br/>
        :return:         """
        pass

    def delete_db_cluster_snapshot(self, DBClusterSnapshotIdentifier: str) -> DeleteDBClusterSnapshotResult:
        r"""Deletes a DB cluster snapshot. If the snapshot is being copied, the copy operation is terminated. <note> The DB cluster snapshot must be in the <code>available</code> state to be deleted. </note> For more information on Amazon Aurora, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html"> What Is Amazon Aurora?</a> in the <i>Amazon Aurora User Guide.</i>  <note> This action only applies to Aurora DB clusters. </note>

        :param self:
        :param DBClusterSnapshotIdentifier:  The identifier of the DB cluster snapshot to delete. Constraints: Must be the name of an existing DB cluster snapshot in the <code>available</code> state.<br/>
        :return: DBClusterSnapshot:  Contains the details for an Amazon RDS DB cluster snapshot  This data type is used as a response element in the <code>DescribeDBClusterSnapshots</code> action. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TagList</i> A list of tags. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html">Tagging Amazon RDS Resources</a> in the <i>Amazon RDS User Guide.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IAMDatabaseAuthenticationEnabled</i> True if mapping of Amazon Web Services Identity and Access Management (IAM) accounts to database accounts is enabled, and otherwise false.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceDBClusterSnapshotArn</i> If the DB cluster snapshot was copied from a source DB cluster snapshot, the Amazon Resource Name (ARN) for the source DB cluster snapshot, otherwise, a null value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterSnapshotArn</i> The Amazon Resource Name (ARN) for the DB cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> If <code>StorageEncrypted</code> is true, the Amazon Web Services KMS key identifier for the encrypted DB cluster snapshot. The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the Amazon Web Services KMS customer master key (CMK).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageEncrypted</i> Specifies whether the DB cluster snapshot is encrypted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PercentProgress</i> Specifies the percentage of the estimated data that has been transferred.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotType</i> Provides the type of the DB cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LicenseModel</i> Provides the license model information for this DB cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> Provides the version of the database engine for this DB cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUsername</i> Provides the master username for this DB cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterCreateTime</i> Specifies the time when the DB cluster was created, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> Provides the VPC ID associated with the DB cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Specifies the port that the DB cluster was listening on at the time of the snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Specifies the status of this DB cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllocatedStorage</i> Specifies the allocated storage size in gibibytes (GiB).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineMode</i> Provides the engine mode of the database engine for this DB cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> Specifies the name of the database engine for this DB cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotCreateTime</i> Provides the time when the snapshot was taken, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterIdentifier</i> Specifies the DB cluster identifier of the DB cluster that this DB cluster snapshot was created from.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterSnapshotIdentifier</i> Specifies the identifier for the DB cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZones</i> Provides the list of Availability Zones (AZs) where instances in the DB cluster snapshot can be restored.<br/>        """
        pass

    def delete_db_instance(self, DBInstanceIdentifier: str, SkipFinalSnapshot: Boolean=None, FinalDBSnapshotIdentifier: str=None, DeleteAutomatedBackups: BooleanOptional=None) -> DeleteDBInstanceResult:
        r"""The DeleteDBInstance action deletes a previously provisioned DB instance. When you delete a DB instance, all automated backups for that instance are deleted and can't be recovered. Manual DB snapshots of the DB instance to be deleted by <code>DeleteDBInstance</code> are not deleted.  If you request a final DB snapshot the status of the Amazon RDS DB instance is <code>deleting</code> until the DB snapshot is created. The API action <code>DescribeDBInstance</code> is used to monitor the status of this operation. The action can't be canceled or reverted once submitted.  When a DB instance is in a failure state and has a status of <code>failed</code>, <code>incompatible-restore</code>, or <code>incompatible-network</code>, you can only delete it when you skip creation of the final snapshot with the <code>SkipFinalSnapshot</code> parameter. If the specified DB instance is part of an Amazon Aurora DB cluster, you can't delete the DB instance if both of the following conditions are true: <ul> <li> The DB cluster is a read replica of another Amazon Aurora DB cluster. </li> <li> The DB instance is the only instance in the DB cluster. </li> </ul> To delete a DB instance in this case, first call the <code>PromoteReadReplicaDBCluster</code> API action to promote the DB cluster so it's no longer a read replica. After the promotion completes, then call the <code>DeleteDBInstance</code> API action to delete the final instance in the DB cluster.

        :param self:
        :param DeleteAutomatedBackups:  A value that indicates whether to remove automated backups immediately after the DB instance is deleted. This parameter isn't case-sensitive. The default is to remove automated backups immediately after the DB instance is deleted.<br/>FinalDBSnapshotIdentifier:   The <code>DBSnapshotIdentifier</code> of the new <code>DBSnapshot</code> created when the <code>SkipFinalSnapshot</code> parameter is disabled.  <note> Specifying this parameter and also specifying to skip final DB snapshot creation in SkipFinalShapshot results in an error. </note> Constraints: <ul> <li> Must be 1 to 255 letters or numbers. </li> <li> First character must be a letter. </li> <li> Can't end with a hyphen or contain two consecutive hyphens. </li> <li> Can't be specified when deleting a read replica. </li> </ul><br/>SkipFinalSnapshot:  A value that indicates whether to skip the creation of a final DB snapshot before the DB instance is deleted. If skip is specified, no DB snapshot is created. If skip isn't specified, a DB snapshot is created before the DB instance is deleted. By default, skip isn't specified, and the DB snapshot is created. When a DB instance is in a failure state and has a status of 'failed', 'incompatible-restore', or 'incompatible-network', it can only be deleted when skip is specified. Specify skip when deleting a read replica. <note> The FinalDBSnapshotIdentifier parameter must be specified if skip isn't specified. </note><br/>DBInstanceIdentifier:  The DB instance identifier for the DB instance to be deleted. This parameter isn't case-sensitive. Constraints: <ul> <li> Must match the name of an existing DB instance. </li> </ul><br/>
        :return: DBInstance:  Contains the details of an Amazon RDS DB instance.  This data type is used as a response element in the <code>DescribeDBInstances</code> action. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamEngineNativeAuditFieldsIncluded</i> Indicates whether engine-native audit fields are included in the database activity stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamMode</i> The mode of the database activity stream. Database events such as a change or access generate an activity stream event. RDS for Oracle always handles these events asynchronously.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamKinesisStreamName</i> The name of the Amazon Kinesis data stream used for the database activity stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamKmsKeyId</i> The Amazon Web Services KMS key identifier used for encrypting messages in the database activity stream. The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the Amazon Web Services KMS customer master key (CMK).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamStatus</i> The status of the database activity stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AwsBackupRecoveryPointArn</i> The Amazon Resource Name (ARN) of the recovery point in Amazon Web Services Backup.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomerOwnedIpEnabled</i> Specifies whether a customer-owned IP address (CoIP) is enabled for an RDS on Outposts DB instance. A <i>CoIP </i>provides local or external connectivity to resources in your Outpost subnets through your on-premises network. For some use cases, a CoIP can provide lower latency for connections to the DB instance from outside of its virtual private cloud (VPC) on your local network. For more information about RDS on Outposts, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-on-outposts.html">Working with Amazon RDS on Amazon Web Services Outposts</a> in the <i>Amazon RDS User Guide</i>. For more information about CoIPs, see <a href="https://docs.aws.amazon.com/outposts/latest/userguide/outposts-networking-components.html#ip-addressing">Customer-owned IP addresses</a> in the <i>Amazon Web Services Outposts User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceAutomatedBackupsReplications</i> The list of replicated automated backups associated with the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TagList</i> A list of tags. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html">Tagging Amazon RDS Resources</a> in the <i>Amazon RDS User Guide.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxAllocatedStorage</i> The upper limit to which Amazon RDS can automatically scale the storage of the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ListenerEndpoint</i> Specifies the listener connection endpoint for SQL Server Always On.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ListenerEndpoint</b>: Specifies the listener connection endpoint for SQL Server Always On.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociatedRoles</i>  The Amazon Web Services Identity and Access Management (IAM) roles associated with the DB instance. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeletionProtection</i> Indicates if the DB instance has deletion protection enabled. The database can't be deleted when deletion protection is enabled. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_DeleteInstance.html"> Deleting a DB Instance</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProcessorFeatures</i> The number of CPU cores and the number of threads per core for the DB instance class of the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnabledCloudwatchLogsExports</i> A list of log types that this DB instance is configured to export to CloudWatch Logs. Log types vary by DB engine. For information about the log types for each DB engine, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.html">Amazon RDS Database Log Files</a> in the <i>Amazon RDS User Guide.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PerformanceInsightsRetentionPeriod</i> The amount of time, in days, to retain Performance Insights data. Valid values are 7 or 731 (2 years). <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PerformanceInsightsKMSKeyId</i> The Amazon Web Services KMS key identifier for encryption of Performance Insights data. The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the Amazon Web Services KMS customer master key (CMK).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PerformanceInsightsEnabled</i> True if Performance Insights is enabled for the DB instance, and otherwise false.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IAMDatabaseAuthenticationEnabled</i> True if mapping of Amazon Web Services Identity and Access Management (IAM) accounts to database accounts is enabled, and otherwise false. IAM database authentication can be enabled for the following database engines <ul> <li> For MySQL 5.6, minor version 5.6.34 or higher </li> <li> For MySQL 5.7, minor version 5.7.16 or higher </li> <li> Aurora 5.6 or higher. To enable IAM database authentication for Aurora, see DBCluster Type. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Timezone</i> The time zone of the DB instance. In most cases, the <code>Timezone</code> element is empty. <code>Timezone</code> content appears only for Microsoft SQL Server DB instances that were created with a time zone specified. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceArn</i> The Amazon Resource Name (ARN) for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PromotionTier</i> A value that specifies the order in which an Aurora Replica is promoted to the primary instance after a failure of the existing primary instance. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Managing.Backups.html#Aurora.Managing.FaultTolerance"> Fault Tolerance for an Aurora DB Cluster</a> in the <i>Amazon Aurora User Guide</i>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MonitoringRoleArn</i> The ARN for the IAM role that permits RDS to send Enhanced Monitoring metrics to Amazon CloudWatch Logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnhancedMonitoringResourceArn</i> The Amazon Resource Name (ARN) of the Amazon CloudWatch Logs log stream that receives the Enhanced Monitoring metrics data for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MonitoringInterval</i> The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CopyTagsToSnapshot</i> Specifies whether tags are copied from the DB instance to snapshots of the DB instance.  <b>Amazon Aurora</b>  Not applicable. Copying tags to snapshots is managed by the DB cluster. Setting this value for an Aurora DB instance has no effect on the DB cluster setting. For more information, see <code>DBCluster</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainMemberships</i> The Active Directory Domain membership records associated with the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CACertificateIdentifier</i> The identifier of the CA certificate for this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DbiResourceId</i> The Amazon Web Services Region-unique, immutable identifier for the DB instance. This identifier is found in Amazon Web Services CloudTrail log entries whenever the Amazon Web Services KMS customer master key (CMK) for the DB instance is accessed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i>  If <code>StorageEncrypted</code> is true, the Amazon Web Services KMS key identifier for the encrypted DB instance.  The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the Amazon Web Services KMS customer master key (CMK).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageEncrypted</i> Specifies whether the DB instance is encrypted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterIdentifier</i> If the DB instance is a member of a DB cluster, contains the name of the DB cluster that the DB instance is a member of.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DbInstancePort</i> Specifies the port that the DB instance listens on. If the DB instance is part of a DB cluster, this can be a different port than the DB cluster port.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TdeCredentialArn</i> The ARN from the key store with which the instance is associated for TDE encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageType</i> Specifies the storage type associated with DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusInfos</i> The status of a read replica. If the instance isn't a read replica, this is blank.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PubliclyAccessible</i> Specifies the accessibility options for the DB instance. When the DB instance is publicly accessible, its DNS endpoint resolves to the private IP address from within the DB instance's VPC, and to the public IP address from outside of the DB instance's VPC. Access to the DB instance is ultimately controlled by the security group it uses, and that public access is not permitted if the security group assigned to the DB instance doesn't permit it. When the DB instance isn't publicly accessible, it is an internal DB instance with a DNS name that resolves to a private IP address. For more information, see <a>CreateDBInstance</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecondaryAvailabilityZone</i> If present, specifies the name of the secondary Availability Zone for a DB instance with multi-AZ support.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NcharCharacterSetName</i> The name of the NCHAR character set for the Oracle DB instance. This character set specifies the Unicode encoding for data stored in table columns of type NCHAR, NCLOB, or NVARCHAR2. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CharacterSetName</i> If present, specifies the name of the character set that this instance is associated with.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OptionGroupMemberships</i> Provides the list of option group memberships for this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Iops</i> Specifies the Provisioned IOPS (I/O operations per second) value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LicenseModel</i> License model information for this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicaMode</i> The open mode of an Oracle read replica. The default is <code>open-read-only</code>. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/oracle-read-replicas.html">Working with Oracle Read Replicas for Amazon RDS</a> in the <i>Amazon RDS User Guide</i>. <note> This attribute is only supported in RDS for Oracle. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadReplicaDBClusterIdentifiers</i> Contains one or more identifiers of Aurora DB clusters to which the RDS DB instance is replicated as a read replica. For example, when you create an Aurora read replica of an RDS MySQL DB instance, the Aurora MySQL DB cluster for the Aurora read replica is shown. This output does not contain information about cross region Aurora read replicas. <note> Currently, each RDS DB instance can have only one Aurora read replica. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadReplicaDBInstanceIdentifiers</i> Contains one or more identifiers of the read replicas associated with this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadReplicaSourceDBInstanceIdentifier</i> Contains the identifier of the source DB instance if this DB instance is a read replica.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoMinorVersionUpgrade</i> A value that indicates that minor version patches are applied automatically.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> Indicates the database engine version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiAZ</i> Specifies if the DB instance is a Multi-AZ deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestRestorableTime</i> Specifies the latest time to which a database can be restored with point-in-time restore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingModifiedValues</i> A value that specifies that changes to the DB instance are pending. This element is only included when changes are pending. Specific changes are identified by subelements.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingModifiedValues</b>: A value that specifies that changes to the DB instance are pending. This element is only included when changes are pending. Specific changes are identified by subelements.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i> Specifies the weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroup</i> Specifies information on the subnet group associated with the DB instance, including the name, description, and subnets in the subnet group.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DBSubnetGroup</b>: Specifies information on the subnet group associated with the DB instance, including the name, description, and subnets in the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZone</i> Specifies the name of the Availability Zone the DB instance is located in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBParameterGroups</i> Provides the list of DB parameter groups applied to this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcSecurityGroups</i> Provides a list of VPC security group elements that the DB instance belongs to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSecurityGroups</i>  A list of DB security group elements containing <code>DBSecurityGroup.Name</code> and <code>DBSecurityGroup.Status</code> subelements. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupRetentionPeriod</i> Specifies the number of days for which automatic DB snapshots are retained.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredBackupWindow</i>  Specifies the daily time range during which automated backups are created if automated backups are enabled, as determined by the <code>BackupRetentionPeriod</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceCreateTime</i> Provides the date and time the DB instance was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllocatedStorage</i> Specifies the allocated storage size specified in gibibytes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i> Specifies the connection endpoint.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Endpoint</b>: Specifies the connection endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBName</i> The meaning of this parameter differs according to the database engine you use.  <b>MySQL, MariaDB, SQL Server, PostgreSQL</b>  Contains the name of the initial database of this instance that was provided at create time, if one was specified when the DB instance was created. This same name is returned for the life of the DB instance. Type: String  <b>Oracle</b>  Contains the Oracle System ID (SID) of the created DB instance. Not shown when the returned parameters do not apply to an Oracle DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUsername</i> Contains the master username for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceStatus</i> Specifies the current state of this database. For information about DB instance statuses, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/accessing-monitoring.html#Overview.DBInstance.Status">Viewing DB instance status</a> in the <i>Amazon RDS User Guide.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> The name of the database engine to be used for this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceClass</i> Contains the name of the compute and memory capacity class of the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceIdentifier</i> Contains a user-supplied database identifier. This identifier is the unique key that identifies a DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HostedZoneId</i> Specifies the ID that Amazon Route 53 assigns when you create a hosted zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Specifies the port that the database engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Address</i> Specifies the DNS address of the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupArn</i> The Amazon Resource Name (ARN) for the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Subnets</i>  Contains a list of <code>Subnet</code> elements. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetGroupStatus</i> Provides the status of the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> Provides the VpcId of the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupDescription</i> Provides the description of the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupName</i> The name of the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupName</i> The DB subnet group for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CACertificateIdentifier</i> The identifier of the CA certificate for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageType</i> The storage type of the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceIdentifier</i> The database identifier for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Iops</i> The Provisioned IOPS value for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LicenseModel</i> The license model for the DB instance. Valid values: <code>license-included</code> | <code>bring-your-own-license</code> | <code>general-public-license</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> The database engine version.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiAZ</i> A value that indicates that the Single-AZ DB instance will change to a Multi-AZ deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupRetentionPeriod</i> The number of days for which automated backups are retained.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> The port for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUserPassword</i> The master credentials for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AllocatedStorage</i> The allocated storage size for the DB instance specified in gibibytes .<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceClass</i> The name of the compute and memory capacity class for the DB instance.<br/>A list of the log types whose configuration is still pending. In other words, these log types are in the process of being activated or deactivated.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingCloudwatchLogsExports</b>: A list of the log types whose configuration is still pending. In other words, these log types are in the process of being activated or deactivated.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HostedZoneId</i> Specifies the ID that Amazon Route 53 assigns when you create a hosted zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Specifies the port that the database engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Address</i> Specifies the DNS address of the DB instance.<br/>        """
        pass

    def delete_db_instance_automated_backup(self, DbiResourceId: str=None, DBInstanceAutomatedBackupsArn: str=None) -> DeleteDBInstanceAutomatedBackupResult:
        r"""Deletes automated backups using the <code>DbiResourceId</code> value of the source DB instance or the Amazon Resource Name (ARN) of the automated backups.

        :param self:
        :param DBInstanceAutomatedBackupsArn:  The Amazon Resource Name (ARN) of the automated backups to delete, for example, <code>arn:aws:rds:us-east-1:123456789012:auto-backup:ab-L2IJCEXJP7XQ7HOJ4SIEXAMPLE</code>.<br/>DbiResourceId:  The identifier for the source DB instance, which can't be changed and which is unique to an Amazon Web Services Region.<br/>
        :return: DBInstanceAutomatedBackup:  An automated backup of a DB instance. It consists of system backups, transaction logs, and the database instance properties that existed at the time you deleted the source instance.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceAutomatedBackupsReplications</i> The list of replications to different Amazon Web Services Regions associated with the automated backup.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceAutomatedBackupsArn</i> The Amazon Resource Name (ARN) for the replicated automated backups.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupRetentionPeriod</i> The retention period for the automated backups.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IAMDatabaseAuthenticationEnabled</i> True if mapping of Amazon Web Services Identity and Access Management (IAM) accounts to database accounts is enabled, and otherwise false.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Timezone</i> The time zone of the automated backup. In most cases, the <code>Timezone</code> element is empty. <code>Timezone</code> content appears only for Microsoft SQL Server DB instances that were created with a time zone specified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The Amazon Web Services KMS key ID for an automated backup. The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the Amazon Web Services KMS customer master key (CMK).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageType</i> Specifies the storage type associated with the automated backup.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Encrypted</i> Specifies whether the automated backup is encrypted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TdeCredentialArn</i> The ARN from the key store with which the automated backup is associated for TDE encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OptionGroupName</i> The option group the automated backup is associated with. If omitted, the default option group for the engine specified is used.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Iops</i> The IOPS (I/O operations per second) value for the automated backup. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LicenseModel</i> License model information for the automated backup.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> The version of the database engine for the automated backup.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> The name of the database engine for this automated backup.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUsername</i> The license model of an automated backup.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceCreateTime</i> Provides the date and time that the DB instance was created. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> Provides the VPC ID associated with the DB instance<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZone</i> The Availability Zone that the automated backup was created in. For information on Amazon Web Services Regions and Availability Zones, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RegionsAndAvailabilityZones.html">Regions and Availability Zones</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> The port number that the automated backup used for connections. Default: Inherits from the source DB instance Valid Values: <code>1150-65535</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Provides a list of status information for an automated backup: <ul> <li>  <code>active</code> - automated backups for current instances </li> <li>  <code>retained</code> - automated backups for deleted instances </li> <li>  <code>creating</code> - automated backups that are waiting for the first automated snapshot to be available. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllocatedStorage</i> Specifies the allocated storage size in gibibytes (GiB).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RestoreWindow</i> Earliest and latest time an instance can be restored to.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RestoreWindow</b>: Earliest and latest time an instance can be restored to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceIdentifier</i> The customer id of the instance that is/was associated with the automated backup. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Region</i> The Amazon Web Services Region associated with the automated backup.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DbiResourceId</i> The identifier for the source DB instance, which can't be changed and which is unique to an Amazon Web Services Region.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceArn</i> The Amazon Resource Name (ARN) for the automated backups.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestTime</i> The latest time you can restore an instance to.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EarliestTime</i> The earliest time you can restore an instance to.<br/>        """
        pass

    def delete_db_parameter_group(self, DBParameterGroupName: str):
        r"""Deletes a specified DB parameter group. The DB parameter group to be deleted can't be associated with any DB instances.

        :param self:
        :param DBParameterGroupName:  The name of the DB parameter group. Constraints: <ul> <li> Must be the name of an existing DB parameter group </li> <li> You can't delete a default DB parameter group </li> <li> Can't be associated with any DB instances </li> </ul><br/>
        :return:         """
        pass

    def delete_db_proxy(self, DBProxyName: str) -> DeleteDBProxyResponse:
        r"""Deletes an existing DB proxy.

        :param self:
        :param DBProxyName:  The name of the DB proxy to delete.<br/>
        :return: DBProxy:  The data structure representing the details of the DB proxy that you delete.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdatedDate</i> The date and time when the proxy was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedDate</i> The date and time when the proxy was first created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DebugLogging</i> Whether the proxy includes detailed information about SQL statements in its logs. This information helps you to debug issues involving SQL behavior or the performance and scalability of the proxy connections. The debug information includes the text of SQL statements that you submit through the proxy. Thus, only enable this setting when needed for debugging, and only when you have security measures in place to safeguard any sensitive information that appears in the logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IdleClientTimeout</i> The number of seconds a connection to the proxy can have no activity before the proxy drops the client connection. The proxy keeps the underlying database connection open and puts it back into the connection pool for reuse by later connection requests. Default: 1800 (30 minutes) Constraints: 1 to 28,800<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequireTLS</i> Indicates whether Transport Layer Security (TLS) encryption is required for connections to the proxy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i> The endpoint that you can use to connect to the DB proxy. You include the endpoint value in the connection string for a database client application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The Amazon Resource Name (ARN) for the IAM role that the proxy uses to access Amazon Secrets Manager.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Auth</i> One or more data structures specifying the authorization mechanism to connect to the associated RDS DB instance or Aurora DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcSubnetIds</i> The EC2 subnet IDs for the proxy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcSecurityGroupIds</i> Provides a list of VPC security groups that the proxy belongs to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> Provides the VPC ID of the DB proxy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineFamily</i> The engine family applies to MySQL and PostgreSQL for both RDS and Aurora.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current status of this proxy. A status of <code>available</code> means the proxy is ready to handle requests. Other values indicate that you must wait for the proxy to be ready, or take some action to resolve an issue.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBProxyArn</i> The Amazon Resource Name (ARN) for the proxy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBProxyName</i> The identifier for the proxy. This name must be unique for all proxies owned by your Amazon Web Services account in the specified Amazon Web Services Region.<br/>        """
        pass

    def delete_db_proxy_endpoint(self, DBProxyEndpointName: str) -> DeleteDBProxyEndpointResponse:
        r"""Deletes a <code>DBProxyEndpoint</code>. Doing so removes the ability to access the DB proxy using the endpoint that you defined. The endpoint that you delete might have provided capabilities such as read/write or read-only operations, or using a different VPC than the DB proxy's default VPC.

        :param self:
        :param DBProxyEndpointName:  The name of the DB proxy endpoint to delete.<br/>
        :return: DBProxyEndpoint:  The data structure representing the details of the DB proxy endpoint that you delete.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsDefault</i> A value that indicates whether this endpoint is the default endpoint for the associated DB proxy. Default DB proxy endpoints always have read/write capability. Other endpoints that you associate with the DB proxy can be either read/write or read-only.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetRole</i> A value that indicates whether the DB proxy endpoint can be used for read/write or read-only operations.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedDate</i> The date and time when the DB proxy endpoint was first created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i> The endpoint that you can use to connect to the DB proxy. You include the endpoint value in the connection string for a database client application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcSubnetIds</i> The EC2 subnet IDs for the DB proxy endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcSecurityGroupIds</i> Provides a list of VPC security groups that the DB proxy endpoint belongs to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> Provides the VPC ID of the DB proxy endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current status of this DB proxy endpoint. A status of <code>available</code> means the endpoint is ready to handle requests. Other values indicate that you must wait for the endpoint to be ready, or take some action to resolve an issue.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBProxyName</i> The identifier for the DB proxy that is associated with this DB proxy endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBProxyEndpointArn</i> The Amazon Resource Name (ARN) for the DB proxy endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBProxyEndpointName</i> The name for the DB proxy endpoint. An identifier must begin with a letter and must contain only ASCII letters, digits, and hyphens; it can't end with a hyphen or contain two consecutive hyphens.<br/>        """
        pass

    def delete_db_security_group(self, DBSecurityGroupName: str):
        r"""Deletes a DB security group. <note> The specified DB security group must not be associated with any DB instances. </note>

        :param self:
        :param DBSecurityGroupName:  The name of the DB security group to delete. <note> You can't delete the default DB security group. </note> Constraints: <ul> <li> Must be 1 to 255 letters, numbers, or hyphens. </li> <li> First character must be a letter </li> <li> Can't end with a hyphen or contain two consecutive hyphens </li> <li> Must not be "Default" </li> </ul><br/>
        :return:         """
        pass

    def delete_db_snapshot(self, DBSnapshotIdentifier: str) -> DeleteDBSnapshotResult:
        r"""Deletes a DB snapshot. If the snapshot is being copied, the copy operation is terminated. <note> The DB snapshot must be in the <code>available</code> state to be deleted. </note>

        :param self:
        :param DBSnapshotIdentifier:  The DB snapshot identifier. Constraints: Must be the name of an existing DB snapshot in the <code>available</code> state.<br/>
        :return: DBSnapshot:  Contains the details of an Amazon RDS DB snapshot.  This data type is used as a response element in the <code>DescribeDBSnapshots</code> action. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TagList</i> A list of tags. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html">Tagging Amazon RDS Resources</a> in the <i>Amazon RDS User Guide.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DbiResourceId</i> The identifier for the source DB instance, which can't be changed and which is unique to an Amazon Web Services Region.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProcessorFeatures</i> The number of CPU cores and the number of threads per core for the DB instance class of the DB instance when the DB snapshot was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IAMDatabaseAuthenticationEnabled</i> True if mapping of Amazon Web Services Identity and Access Management (IAM) accounts to database accounts is enabled, and otherwise false.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Timezone</i> The time zone of the DB snapshot. In most cases, the <code>Timezone</code> element is empty. <code>Timezone</code> content appears only for snapshots taken from Microsoft SQL Server DB instances that were created with a time zone specified. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSnapshotArn</i> The Amazon Resource Name (ARN) for the DB snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i>  If <code>Encrypted</code> is true, the Amazon Web Services KMS key identifier for the encrypted DB snapshot.  The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the Amazon Web Services KMS customer master key (CMK).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Encrypted</i> Specifies whether the DB snapshot is encrypted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TdeCredentialArn</i> The ARN from the key store with which to associate the instance for TDE encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageType</i> Specifies the storage type associated with DB snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceDBSnapshotIdentifier</i> The DB snapshot Amazon Resource Name (ARN) that the DB snapshot was copied from. It only has value in case of cross-customer or cross-region copy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceRegion</i> The Amazon Web Services Region that the DB snapshot was created in or copied from.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PercentProgress</i> The percentage of the estimated data that has been transferred.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OptionGroupName</i> Provides the option group name for the DB snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Iops</i> Specifies the Provisioned IOPS (I/O operations per second) value of the DB instance at the time of the snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotType</i> Provides the type of the DB snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LicenseModel</i> License model information for the restored DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> Specifies the version of the database engine.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUsername</i> Provides the master username for the DB snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceCreateTime</i> Specifies the time in Coordinated Universal Time (UTC) when the DB instance, from which the snapshot was taken, was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> Provides the VPC ID associated with the DB snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZone</i> Specifies the name of the Availability Zone the DB instance was located in at the time of the DB snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Specifies the port that the database engine was listening on at the time of the snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Specifies the status of this DB snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllocatedStorage</i> Specifies the allocated storage size in gibibytes (GiB).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> Specifies the name of the database engine.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotCreateTime</i> Specifies when the snapshot was taken in Coordinated Universal Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceIdentifier</i> Specifies the DB instance identifier of the DB instance this DB snapshot was created from.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSnapshotIdentifier</i> Specifies the identifier for the DB snapshot.<br/>        """
        pass

    def delete_db_subnet_group(self, DBSubnetGroupName: str):
        r"""Deletes a DB subnet group. <note> The specified database subnet group must not be associated with any DB instances. </note>

        :param self:
        :param DBSubnetGroupName:  The name of the database subnet group to delete. <note> You can't delete the default subnet group. </note> Constraints: Constraints: Must match the name of an existing DBSubnetGroup. Must not be default. Example: <code>mySubnetgroup</code> <br/>
        :return:         """
        pass

    def delete_event_subscription(self, SubscriptionName: str) -> DeleteEventSubscriptionResult:
        r"""Deletes an RDS event notification subscription.

        :param self:
        :param SubscriptionName:  The name of the RDS event notification subscription you want to delete.<br/>
        :return: EventSubscription:  Contains the results of a successful invocation of the <code>DescribeEventSubscriptions</code> action.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EventSubscriptionArn</i> The Amazon Resource Name (ARN) for the event subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> A Boolean value indicating if the subscription is enabled. True indicates the subscription is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EventCategoriesList</i> A list of event categories for the RDS event notification subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceIdsList</i> A list of source IDs for the RDS event notification subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceType</i> The source type for the RDS event notification subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubscriptionCreationTime</i> The time the RDS event notification subscription was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the RDS event notification subscription. Constraints: Can be one of the following: creating | modifying | deleting | active | no-permission | topic-not-exist The status "no-permission" indicates that RDS no longer has permission to post to the SNS topic. The status "topic-not-exist" indicates that the topic was deleted after the subscription was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnsTopicArn</i> The topic ARN of the RDS event notification subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustSubscriptionId</i> The RDS event notification subscription Id.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomerAwsId</i> The Amazon Web Services customer account associated with the RDS event notification subscription.<br/>        """
        pass

    def delete_global_cluster(self, GlobalClusterIdentifier: str) -> DeleteGlobalClusterResult:
        r""" Deletes a global database cluster. The primary and secondary clusters must already be detached or destroyed first.  <note> This action only applies to Aurora DB clusters. </note>

        :param self:
        :param GlobalClusterIdentifier:   The cluster identifier of the global database cluster being deleted. <br/>
        :return: GlobalCluster:  A data type representing an Aurora global database.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FailoverState</i> A data object containing all properties for the current state of an in-process or pending failover process for this Aurora global database. This object is empty unless the <a>FailoverGlobalCluster</a> API operation has been called on this Aurora global database (<a>GlobalCluster</a>). &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>FailoverState</b>: A data object containing all properties for the current state of an in-process or pending failover process for this Aurora global database. This object is empty unless the <a>FailoverGlobalCluster</a> API operation has been called on this Aurora global database (<a>GlobalCluster</a>). <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalClusterMembers</i>  The list of cluster IDs for secondary clusters within the global database cluster. Currently limited to 1 item. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeletionProtection</i>  The deletion protection setting for the new global database cluster. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageEncrypted</i>  The storage encryption setting for the global database cluster. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i>  The default database name within the new global database cluster. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> Indicates the database engine version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i>  The Aurora database engine used by the global database cluster. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Specifies the current state of this global database cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalClusterArn</i> The Amazon Resource Name (ARN) for the global database cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalClusterResourceId</i>  The Amazon Web Services Region-unique, immutable identifier for the global database cluster. This identifier is found in Amazon Web Services CloudTrail log entries whenever the Amazon Web Services KMS customer master key (CMK) for the DB cluster is accessed. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalClusterIdentifier</i>  Contains a user-supplied global database cluster identifier. This identifier is the unique key that identifies a global database cluster. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ToDbClusterArn</i> The Amazon Resource Name (ARN) of the Aurora DB cluster that is currently being promoted, and which is associated with this state.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FromDbClusterArn</i> The Amazon Resource Name (ARN) of the Aurora DB cluster that is currently being demoted, and which is associated with this state. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current status of the Aurora global database (<a>GlobalCluster</a>). Possible values are as follows:  <ul> <li> pending &#x96; A request to fail over the Aurora global database (<a>GlobalCluster</a>) has been received by the service. The <code>GlobalCluster</code>'s primary DB cluster and the specified secondary DB cluster are being verified before the failover process can start. </li> <li> failing-over &#x96; This status covers the range of Aurora internal operations that take place during the failover process, such as demoting the primary Aurora DB cluster, promoting the secondary Aurora DB, and synchronizing replicas.  </li> <li> cancelling &#x96; The request to fail over the Aurora global database (<a>GlobalCluster</a>) was cancelled and the primary Aurora DB cluster and the selected secondary Aurora DB cluster are returning to their previous states.  </li> </ul><br/>        """
        pass

    def delete_installation_media(self, InstallationMediaId: str) -> InstallationMedia:
        r"""Deletes the installation medium for a DB engine that requires an on-premises customer provided license, such as Microsoft SQL Server.

        :param self:
        :param InstallationMediaId:  The installation medium ID.<br/>
        :return: FailureCause:  If an installation media failure occurred, the cause of the failure.:<br/>Status:  The status of the installation medium.<br/>OSInstallationMediaPath:  The path to the installation medium for the operating system associated with the DB engine.<br/>EngineInstallationMediaPath:  The path to the installation medium for the DB engine.<br/>EngineVersion:  The engine version of the DB engine.<br/>Engine:  The DB engine.<br/>CustomAvailabilityZoneId:  The custom Availability Zone (AZ) that contains the installation media.<br/>InstallationMediaId:  The installation medium ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> The reason that an installation media import failed.<br/>        """
        pass

    def delete_option_group(self, OptionGroupName: str):
        r"""Deletes an existing option group.

        :param self:
        :param OptionGroupName:  The name of the option group to be deleted. <note> You can't delete default option groups. </note><br/>
        :return:         """
        pass

    def deregister_db_proxy_targets(self, DBProxyName: str, TargetGroupName: str=None, DBInstanceIdentifiers: List[String]=None, DBClusterIdentifiers: List[String]=None) -> DeregisterDBProxyTargetsResponse:
        r"""Remove the association between one or more <code>DBProxyTarget</code> data structures and a <code>DBProxyTargetGroup</code>.

        :param self:
        :param DBClusterIdentifiers:  One or more DB cluster identifiers.<br/>DBInstanceIdentifiers:  One or more DB instance identifiers.<br/>TargetGroupName:  The identifier of the <code>DBProxyTargetGroup</code>.<br/>DBProxyName:  The identifier of the <code>DBProxy</code> that is associated with the <code>DBProxyTargetGroup</code>.<br/>
        :return:         """
        pass

    def describe_account_attributes(self) -> AccountAttributesMessage:
        r"""Lists all of the attributes for a customer account. The attributes include Amazon RDS quotas for the account, such as the number of DB instances allowed. The description for a quota includes the quota name, current usage toward that quota, and the quota's maximum value. This command doesn't take any parameters.

        :param self:
        :param 
        :return: AccountQuotas:  A list of <code>AccountQuota</code> objects. Within this list, each quota has a name, a count of usage toward the quota maximum, and a maximum value for the quota.<br/>        """
        pass

    def describe_certificates(self, CertificateIdentifier: str=None, Filters: List[Filter]=None, MaxRecords: int=None, Marker: str=None) -> CertificateMessage:
        r"""Lists the set of CA certificates provided by Amazon RDS for this Amazon Web Services account.

        :param self:
        :param Marker:   An optional pagination token provided by a previous <code>DescribeCertificates</code> request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>. <br/>MaxRecords:   The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a pagination token called a marker is included in the response so you can retrieve the remaining results.  Default: 100 Constraints: Minimum 20, maximum 100.<br/>Filters:  This parameter isn't currently supported.<br/>CertificateIdentifier:  The user-supplied certificate identifier. If this parameter is specified, information for only the identified certificate is returned. This parameter isn't case-sensitive. Constraints: <ul> <li> Must match an existing CertificateIdentifier. </li> </ul><br/>
        :return: Marker:   An optional pagination token provided by a previous <code>DescribeCertificates</code> request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code> . <br/>Certificates:  The list of <code>Certificate</code> objects for the Amazon Web Services account.<br/>        """
        pass

    def describe_custom_availability_zones(self, CustomAvailabilityZoneId: str=None, Filters: List[Filter]=None, MaxRecords: int=None, Marker: str=None) -> CustomAvailabilityZoneMessage:
        r"""Returns information about custom Availability Zones (AZs). A custom AZ is an on-premises AZ that is integrated with a VMware vSphere cluster. For more information about RDS on VMware, see the <a href="https://docs.aws.amazon.com/AmazonRDS/latest/RDSonVMwareUserGuide/rds-on-vmware.html"> RDS on VMware User Guide.</a> 

        :param self:
        :param Marker:  An optional pagination token provided by a previous <code>DescribeCustomAvailabilityZones</code> request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>.<br/>MaxRecords:  The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a pagination token called a marker is included in the response so you can retrieve the remaining results. Default: 100 Constraints: Minimum 20, maximum 100.<br/>Filters:  A filter that specifies one or more custom AZs to describe.<br/>CustomAvailabilityZoneId:  The custom AZ identifier. If this parameter is specified, information from only the specific custom AZ is returned.<br/>
        :return: CustomAvailabilityZones:  The list of <a>CustomAvailabilityZone</a> objects for the Amazon Web Services account.<br/>Marker:  An optional pagination token provided by a previous <code>DescribeCustomAvailabilityZones</code> request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>.<br/>        """
        pass

    def describe_db_cluster_backtracks(self, DBClusterIdentifier: str, BacktrackIdentifier: str=None, Filters: List[Filter]=None, MaxRecords: int=None, Marker: str=None) -> DBClusterBacktrackMessage:
        r"""Returns information about backtracks for a DB cluster. For more information on Amazon Aurora, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html"> What Is Amazon Aurora?</a> in the <i>Amazon Aurora User Guide.</i>  <note> This action only applies to Aurora MySQL DB clusters. </note>

        :param self:
        :param Marker:   An optional pagination token provided by a previous <code>DescribeDBClusterBacktracks</code> request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>. <br/>MaxRecords:  The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a pagination token called a marker is included in the response so you can retrieve the remaining results.  Default: 100 Constraints: Minimum 20, maximum 100.<br/>Filters:  A filter that specifies one or more DB clusters to describe. Supported filters include the following: <ul> <li>  <code>db-cluster-backtrack-id</code> - Accepts backtrack identifiers. The results list includes information about only the backtracks identified by these identifiers. </li> <li>  <code>db-cluster-backtrack-status</code> - Accepts any of the following backtrack status values: <ul> <li>  <code>applying</code>  </li> <li>  <code>completed</code>  </li> <li>  <code>failed</code>  </li> <li>  <code>pending</code>  </li> </ul> The results list includes information about only the backtracks identified by these values. </li> </ul><br/>BacktrackIdentifier:  If specified, this value is the backtrack identifier of the backtrack to be described. Constraints: <ul> <li> Must contain a valid universally unique identifier (UUID). For more information about UUIDs, see <a href="http://www.ietf.org/rfc/rfc4122.txt">A Universally Unique Identifier (UUID) URN Namespace</a>. </li> </ul> Example: <code>123e4567-e89b-12d3-a456-426655440000</code> <br/>DBClusterIdentifier:  The DB cluster identifier of the DB cluster to be described. This parameter is stored as a lowercase string. Constraints: <ul> <li> Must contain from 1 to 63 alphanumeric characters or hyphens. </li> <li> First character must be a letter. </li> <li> Can't end with a hyphen or contain two consecutive hyphens. </li> </ul> Example: <code>my-cluster1</code> <br/>
        :return: DBClusterBacktracks:  Contains a list of backtracks for the user.<br/>Marker:  A pagination token that can be used in a later <code>DescribeDBClusterBacktracks</code> request.<br/>        """
        pass

    def describe_db_cluster_endpoints(self, DBClusterIdentifier: str=None, DBClusterEndpointIdentifier: str=None, Filters: List[Filter]=None, MaxRecords: int=None, Marker: str=None) -> DBClusterEndpointMessage:
        r"""Returns information about endpoints for an Amazon Aurora DB cluster. <note> This action only applies to Aurora DB clusters. </note>

        :param self:
        :param Marker:   An optional pagination token provided by a previous <code>DescribeDBClusterEndpoints</code> request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>. <br/>MaxRecords:  The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a pagination token called a marker is included in the response so you can retrieve the remaining results.  Default: 100 Constraints: Minimum 20, maximum 100.<br/>Filters:  A set of name-value pairs that define which endpoints to include in the output. The filters are specified as name-value pairs, in the format <code>Name=<i>endpoint_type</i>,Values=<i>endpoint_type1</i>,<i>endpoint_type2</i>,...</code>. <code>Name</code> can be one of: <code>db-cluster-endpoint-type</code>, <code>db-cluster-endpoint-custom-type</code>, <code>db-cluster-endpoint-id</code>, <code>db-cluster-endpoint-status</code>. <code>Values</code> for the <code> db-cluster-endpoint-type</code> filter can be one or more of: <code>reader</code>, <code>writer</code>, <code>custom</code>. <code>Values</code> for the <code>db-cluster-endpoint-custom-type</code> filter can be one or more of: <code>reader</code>, <code>any</code>. <code>Values</code> for the <code>db-cluster-endpoint-status</code> filter can be one or more of: <code>available</code>, <code>creating</code>, <code>deleting</code>, <code>inactive</code>, <code>modifying</code>. <br/>DBClusterEndpointIdentifier:  The identifier of the endpoint to describe. This parameter is stored as a lowercase string.<br/>DBClusterIdentifier:  The DB cluster identifier of the DB cluster associated with the endpoint. This parameter is stored as a lowercase string.<br/>
        :return: DBClusterEndpoints:  Contains the details of the endpoints associated with the cluster and matching any filter conditions.<br/>Marker:   An optional pagination token provided by a previous <code>DescribeDBClusterEndpoints</code> request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>. <br/>        """
        pass

    def describe_db_cluster_parameter_groups(self, DBClusterParameterGroupName: str=None, Filters: List[Filter]=None, MaxRecords: int=None, Marker: str=None) -> DBClusterParameterGroupsMessage:
        r""" Returns a list of <code>DBClusterParameterGroup</code> descriptions. If a <code>DBClusterParameterGroupName</code> parameter is specified, the list will contain only the description of the specified DB cluster parameter group.  For more information on Amazon Aurora, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html"> What Is Amazon Aurora?</a> in the <i>Amazon Aurora User Guide.</i>  <note> This action only applies to Aurora DB clusters. </note>

        :param self:
        :param Marker:   An optional pagination token provided by a previous <code>DescribeDBClusterParameterGroups</code> request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>. <br/>MaxRecords:   The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a pagination token called a marker is included in the response so you can retrieve the remaining results.  Default: 100 Constraints: Minimum 20, maximum 100.<br/>Filters:  This parameter isn't currently supported.<br/>DBClusterParameterGroupName:  The name of a specific DB cluster parameter group to return details for. Constraints: <ul> <li> If supplied, must match the name of an existing DBClusterParameterGroup. </li> </ul><br/>
        :return: DBClusterParameterGroups:  A list of DB cluster parameter groups.<br/>Marker:   An optional pagination token provided by a previous <code>DescribeDBClusterParameterGroups</code> request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>. <br/>        """
        pass

    def describe_db_cluster_parameters(self, DBClusterParameterGroupName: str, Source: str=None, Filters: List[Filter]=None, MaxRecords: int=None, Marker: str=None) -> DBClusterParameterGroupDetails:
        r"""Returns the detailed parameter list for a particular DB cluster parameter group. For more information on Amazon Aurora, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html"> What Is Amazon Aurora?</a> in the <i>Amazon Aurora User Guide.</i>  <note> This action only applies to Aurora DB clusters. </note>

        :param self:
        :param Marker:   An optional pagination token provided by a previous <code>DescribeDBClusterParameters</code> request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>. <br/>MaxRecords:   The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a pagination token called a marker is included in the response so you can retrieve the remaining results.  Default: 100 Constraints: Minimum 20, maximum 100.<br/>Filters:  This parameter isn't currently supported.<br/>Source:   A value that indicates to return only parameters for a specific source. Parameter sources can be <code>engine</code>, <code>service</code>, or <code>customer</code>. <br/>DBClusterParameterGroupName:  The name of a specific DB cluster parameter group to return parameter details for. Constraints: <ul> <li> If supplied, must match the name of an existing DBClusterParameterGroup. </li> </ul><br/>
        :return: Marker:   An optional pagination token provided by a previous DescribeDBClusterParameters request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code> . <br/>Parameters:  Provides a list of parameters for the DB cluster parameter group.<br/>        """
        pass

    def describe_db_cluster_snapshot_attributes(self, DBClusterSnapshotIdentifier: str) -> DescribeDBClusterSnapshotAttributesResult:
        r"""Returns a list of DB cluster snapshot attribute names and values for a manual DB cluster snapshot. When sharing snapshots with other Amazon Web Services accounts, <code>DescribeDBClusterSnapshotAttributes</code> returns the <code>restore</code> attribute and a list of IDs for the Amazon Web Services accounts that are authorized to copy or restore the manual DB cluster snapshot. If <code>all</code> is included in the list of values for the <code>restore</code> attribute, then the manual DB cluster snapshot is public and can be copied or restored by all Amazon Web Services accounts. To add or remove access for an Amazon Web Services account to copy or restore a manual DB cluster snapshot, or to make the manual DB cluster snapshot public or private, use the <code>ModifyDBClusterSnapshotAttribute</code> API action. <note> This action only applies to Aurora DB clusters. </note>

        :param self:
        :param DBClusterSnapshotIdentifier:  The identifier for the DB cluster snapshot to describe the attributes for.<br/>
        :return: DBClusterSnapshotAttributesResult:  Contains the results of a successful call to the <code>DescribeDBClusterSnapshotAttributes</code> API action. Manual DB cluster snapshot attributes are used to authorize other Amazon Web Services accounts to copy or restore a manual DB cluster snapshot. For more information, see the <code>ModifyDBClusterSnapshotAttribute</code> API action.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterSnapshotAttributes</i> The list of attributes and values for the manual DB cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterSnapshotIdentifier</i> The identifier of the manual DB cluster snapshot that the attributes apply to.<br/>        """
        pass

    def describe_db_cluster_snapshots(self, DBClusterIdentifier: str=None, DBClusterSnapshotIdentifier: str=None, SnapshotType: str=None, Filters: List[Filter]=None, MaxRecords: int=None, Marker: str=None, IncludeShared: Boolean=None, IncludePublic: Boolean=None) -> DBClusterSnapshotMessage:
        r"""Returns information about DB cluster snapshots. This API action supports pagination. For more information on Amazon Aurora, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html"> What Is Amazon Aurora?</a> in the <i>Amazon Aurora User Guide.</i>  <note> This action only applies to Aurora DB clusters. </note>

        :param self:
        :param IncludePublic:  A value that indicates whether to include manual DB cluster snapshots that are public and can be copied or restored by any Amazon Web Services account. By default, the public snapshots are not included. You can share a manual DB cluster snapshot as public by using the <a>ModifyDBClusterSnapshotAttribute</a> API action.<br/>IncludeShared:  A value that indicates whether to include shared manual DB cluster snapshots from other Amazon Web Services accounts that this Amazon Web Services account has been given permission to copy or restore. By default, these snapshots are not included. You can give an Amazon Web Services account permission to restore a manual DB cluster snapshot from another Amazon Web Services account by the <code>ModifyDBClusterSnapshotAttribute</code> API action.<br/>Marker:  An optional pagination token provided by a previous <code>DescribeDBClusterSnapshots</code> request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>. <br/>MaxRecords:  The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a pagination token called a marker is included in the response so you can retrieve the remaining results.  Default: 100 Constraints: Minimum 20, maximum 100.<br/>Filters:  A filter that specifies one or more DB cluster snapshots to describe. Supported filters: <ul> <li>  <code>db-cluster-id</code> - Accepts DB cluster identifiers and DB cluster Amazon Resource Names (ARNs). </li> <li>  <code>db-cluster-snapshot-id</code> - Accepts DB cluster snapshot identifiers. </li> <li>  <code>snapshot-type</code> - Accepts types of DB cluster snapshots. </li> <li>  <code>engine</code> - Accepts names of database engines. </li> </ul><br/>SnapshotType:  The type of DB cluster snapshots to be returned. You can specify one of the following values: <ul> <li>  <code>automated</code> - Return all DB cluster snapshots that have been automatically taken by Amazon RDS for my Amazon Web Services account. </li> <li>  <code>manual</code> - Return all DB cluster snapshots that have been taken by my Amazon Web Services account. </li> <li>  <code>shared</code> - Return all manual DB cluster snapshots that have been shared to my Amazon Web Services account. </li> <li>  <code>public</code> - Return all DB cluster snapshots that have been marked as public. </li> </ul> If you don't specify a <code>SnapshotType</code> value, then both automated and manual DB cluster snapshots are returned. You can include shared DB cluster snapshots with these results by enabling the <code>IncludeShared</code> parameter. You can include public DB cluster snapshots with these results by enabling the <code>IncludePublic</code> parameter. The <code>IncludeShared</code> and <code>IncludePublic</code> parameters don't apply for <code>SnapshotType</code> values of <code>manual</code> or <code>automated</code>. The <code>IncludePublic</code> parameter doesn't apply when <code>SnapshotType</code> is set to <code>shared</code>. The <code>IncludeShared</code> parameter doesn't apply when <code>SnapshotType</code> is set to <code>public</code>.<br/>DBClusterSnapshotIdentifier:  A specific DB cluster snapshot identifier to describe. This parameter can't be used in conjunction with the <code>DBClusterIdentifier</code> parameter. This value is stored as a lowercase string.  Constraints: <ul> <li> If supplied, must match the identifier of an existing DBClusterSnapshot. </li> <li> If this identifier is for an automated snapshot, the <code>SnapshotType</code> parameter must also be specified. </li> </ul><br/>DBClusterIdentifier:  The ID of the DB cluster to retrieve the list of DB cluster snapshots for. This parameter can't be used in conjunction with the <code>DBClusterSnapshotIdentifier</code> parameter. This parameter isn't case-sensitive.  Constraints: <ul> <li> If supplied, must match the identifier of an existing DBCluster. </li> </ul><br/>
        :return: DBClusterSnapshots:  Provides a list of DB cluster snapshots for the user.<br/>Marker:   An optional pagination token provided by a previous <code>DescribeDBClusterSnapshots</code> request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>. <br/>        """
        pass

    def describe_db_clusters(self, DBClusterIdentifier: str=None, Filters: List[Filter]=None, MaxRecords: int=None, Marker: str=None, IncludeShared: Boolean=None) -> DBClusterMessage:
        r"""Returns information about provisioned Aurora DB clusters. This API supports pagination. For more information on Amazon Aurora, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html"> What Is Amazon Aurora?</a> in the <i>Amazon Aurora User Guide.</i>  <note> This operation can also return information for Amazon Neptune DB instances and Amazon DocumentDB instances. </note>

        :param self:
        :param IncludeShared:  Optional Boolean parameter that specifies whether the output includes information about clusters shared from other Amazon Web Services accounts.<br/>Marker:  An optional pagination token provided by a previous <code>DescribeDBClusters</code> request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>. <br/>MaxRecords:  The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a pagination token called a marker is included in the response so you can retrieve the remaining results.  Default: 100 Constraints: Minimum 20, maximum 100.<br/>Filters:  A filter that specifies one or more DB clusters to describe. Supported filters: <ul> <li>  <code>db-cluster-id</code> - Accepts DB cluster identifiers and DB cluster Amazon Resource Names (ARNs). The results list will only include information about the DB clusters identified by these ARNs. </li> </ul><br/>DBClusterIdentifier:  The user-supplied DB cluster identifier. If this parameter is specified, information from only the specific DB cluster is returned. This parameter isn't case-sensitive. Constraints: <ul> <li> If supplied, must match an existing DBClusterIdentifier. </li> </ul><br/>
        :return: DBClusters:  Contains a list of DB clusters for the user.<br/>Marker:  A pagination token that can be used in a later DescribeDBClusters request.<br/>        """
        pass

    def describe_db_engine_versions(self, Engine: str=None, EngineVersion: str=None, DBParameterGroupFamily: str=None, Filters: List[Filter]=None, MaxRecords: int=None, Marker: str=None, DefaultOnly: Boolean=None, ListSupportedCharacterSets: BooleanOptional=None, ListSupportedTimezones: BooleanOptional=None, IncludeAll: BooleanOptional=None) -> DBEngineVersionMessage:
        r"""Returns a list of the available DB engines.

        :param self:
        :param IncludeAll:  A value that indicates whether to include engine versions that aren't available in the list. The default is to list only available engine versions.<br/>ListSupportedTimezones:  A value that indicates whether to list the supported time zones for each engine version. If this parameter is enabled and the requested engine supports the <code>TimeZone</code> parameter for <code>CreateDBInstance</code>, the response includes a list of supported time zones for each engine version. <br/>ListSupportedCharacterSets:  A value that indicates whether to list the supported character sets for each engine version. If this parameter is enabled and the requested engine supports the <code>CharacterSetName</code> parameter for <code>CreateDBInstance</code>, the response includes a list of supported character sets for each engine version. <br/>DefaultOnly:  A value that indicates whether only the default version of the specified engine or engine and major version combination is returned.<br/>Marker:   An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>. <br/>MaxRecords:   The maximum number of records to include in the response. If more than the <code>MaxRecords</code> value is available, a pagination token called a marker is included in the response so you can retrieve the remaining results.  Default: 100 Constraints: Minimum 20, maximum 100.<br/>Filters:  This parameter isn't currently supported.<br/>DBParameterGroupFamily:  The name of a specific DB parameter group family to return details for. Constraints: <ul> <li> If supplied, must match an existing DBParameterGroupFamily. </li> </ul><br/>EngineVersion:  The database engine version to return. Example: <code>5.1.49</code> <br/>Engine:  The database engine to return. Valid Values:  <ul> <li>  <code>aurora</code> (for MySQL 5.6-compatible Aurora) </li> <li>  <code>aurora-mysql</code> (for MySQL 5.7-compatible Aurora) </li> <li>  <code>aurora-postgresql</code>  </li> <li>  <code>mariadb</code>  </li> <li>  <code>mysql</code>  </li> <li>  <code>oracle-ee</code>  </li> <li>  <code>oracle-ee-cdb</code>  </li> <li>  <code>oracle-se2</code>  </li> <li>  <code>oracle-se2-cdb</code>  </li> <li>  <code>postgres</code>  </li> <li>  <code>sqlserver-ee</code>  </li> <li>  <code>sqlserver-se</code>  </li> <li>  <code>sqlserver-ex</code>  </li> <li>  <code>sqlserver-web</code>  </li> </ul><br/>
        :return: DBEngineVersions:   A list of <code>DBEngineVersion</code> elements. <br/>Marker:   An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>. <br/>        """
        pass

    def describe_db_instance_automated_backups(self, DbiResourceId: str=None, DBInstanceIdentifier: str=None, Filters: List[Filter]=None, MaxRecords: int=None, Marker: str=None, DBInstanceAutomatedBackupsArn: str=None) -> DBInstanceAutomatedBackupMessage:
        r"""Displays backups for both current and deleted instances. For example, use this operation to find details about automated backups for previously deleted instances. Current instances with retention periods greater than zero (0) are returned for both the <code>DescribeDBInstanceAutomatedBackups</code> and <code>DescribeDBInstances</code> operations. All parameters are optional.

        :param self:
        :param DBInstanceAutomatedBackupsArn:  The Amazon Resource Name (ARN) of the replicated automated backups, for example, <code>arn:aws:rds:us-east-1:123456789012:auto-backup:ab-L2IJCEXJP7XQ7HOJ4SIEXAMPLE</code>.<br/>Marker:  The pagination token provided in the previous request. If this parameter is specified the response includes only records beyond the marker, up to <code>MaxRecords</code>.<br/>MaxRecords:  The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a pagination token called a marker is included in the response so that you can retrieve the remaining results.<br/>Filters:  A filter that specifies which resources to return based on status. Supported filters are the following: <ul> <li>  <code>status</code>  <ul> <li>  <code>active</code> - automated backups for current instances </li> <li>  <code>retained</code> - automated backups for deleted instances and after backup replication is stopped </li> <li>  <code>creating</code> - automated backups that are waiting for the first automated snapshot to be available </li> </ul> </li> <li>  <code>db-instance-id</code> - Accepts DB instance identifiers and Amazon Resource Names (ARNs). The results list includes only information about the DB instance automated backups identified by these ARNs. </li> <li>  <code>dbi-resource-id</code> - Accepts DB resource identifiers and Amazon Resource Names (ARNs). The results list includes only information about the DB instance resources identified by these ARNs. </li> </ul> Returns all resources by default. The status for each resource is specified in the response.<br/>DBInstanceIdentifier:  (Optional) The user-supplied instance identifier. If this parameter is specified, it must match the identifier of an existing DB instance. It returns information from the specific DB instance' automated backup. This parameter isn't case-sensitive. <br/>DbiResourceId:  The resource ID of the DB instance that is the source of the automated backup. This parameter isn't case-sensitive. <br/>
        :return: DBInstanceAutomatedBackups:   A list of <code>DBInstanceAutomatedBackup</code> instances. <br/>Marker:   An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code> . <br/>        """
        pass

    def describe_db_instances(self, DBInstanceIdentifier: str=None, Filters: List[Filter]=None, MaxRecords: int=None, Marker: str=None) -> DBInstanceMessage:
        r"""Returns information about provisioned RDS instances. This API supports pagination. <note> This operation can also return information for Amazon Neptune DB instances and Amazon DocumentDB instances. </note>

        :param self:
        :param Marker:   An optional pagination token provided by a previous <code>DescribeDBInstances</code> request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>. <br/>MaxRecords:   The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a pagination token called a marker is included in the response so that you can retrieve the remaining results.  Default: 100 Constraints: Minimum 20, maximum 100.<br/>Filters:  A filter that specifies one or more DB instances to describe. Supported filters: <ul> <li>  <code>db-cluster-id</code> - Accepts DB cluster identifiers and DB cluster Amazon Resource Names (ARNs). The results list will only include information about the DB instances associated with the DB clusters identified by these ARNs. </li> <li>  <code>db-instance-id</code> - Accepts DB instance identifiers and DB instance Amazon Resource Names (ARNs). The results list will only include information about the DB instances identified by these ARNs. </li> <li>  <code>dbi-resource-id</code> - Accepts DB instance resource identifiers. The results list will only include information about the DB instances identified by these DB instance resource identifiers. </li> <li>  <code>domain</code> - Accepts Active Directory directory IDs. The results list will only include information about the DB instances associated with these domains. </li> <li>  <code>engine</code> - Accepts engine names. The results list will only include information about the DB instances for these engines. </li> </ul><br/>DBInstanceIdentifier:  The user-supplied instance identifier. If this parameter is specified, information from only the specific DB instance is returned. This parameter isn't case-sensitive. Constraints: <ul> <li> If supplied, must match the identifier of an existing DBInstance. </li> </ul><br/>
        :return: DBInstances:   A list of <code>DBInstance</code> instances. <br/>Marker:   An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code> . <br/>        """
        pass

    def describe_db_log_files(self, DBInstanceIdentifier: str, FilenameContains: str=None, FileLastWritten: Long=None, FileSize: Long=None, Filters: List[Filter]=None, MaxRecords: int=None, Marker: str=None) -> DescribeDBLogFilesResponse:
        r"""Returns a list of DB log files for the DB instance.

        :param self:
        :param Marker:  The pagination token provided in the previous request. If this parameter is specified the response includes only records beyond the marker, up to MaxRecords.<br/>MaxRecords:  The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so you can retrieve the remaining results.<br/>Filters:  This parameter isn't currently supported.<br/>FileSize:  Filters the available log files for files larger than the specified size.<br/>FileLastWritten:  Filters the available log files for files written since the specified date, in POSIX timestamp format with milliseconds.<br/>FilenameContains:  Filters the available log files for log file names that contain the specified string.<br/>DBInstanceIdentifier:  The customer-assigned name of the DB instance that contains the log files you want to list. Constraints: <ul> <li> Must match the identifier of an existing DBInstance. </li> </ul><br/>
        :return: Marker:  A pagination token that can be used in a later DescribeDBLogFiles request.<br/>DescribeDBLogFiles:  The DB log files returned.<br/>        """
        pass

    def describe_db_parameter_groups(self, DBParameterGroupName: str=None, Filters: List[Filter]=None, MaxRecords: int=None, Marker: str=None) -> DBParameterGroupsMessage:
        r""" Returns a list of <code>DBParameterGroup</code> descriptions. If a <code>DBParameterGroupName</code> is specified, the list will contain only the description of the specified DB parameter group. 

        :param self:
        :param Marker:   An optional pagination token provided by a previous <code>DescribeDBParameterGroups</code> request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>. <br/>MaxRecords:   The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a pagination token called a marker is included in the response so that you can retrieve the remaining results.  Default: 100 Constraints: Minimum 20, maximum 100.<br/>Filters:  This parameter isn't currently supported.<br/>DBParameterGroupName:  The name of a specific DB parameter group to return details for. Constraints: <ul> <li> If supplied, must match the name of an existing DBClusterParameterGroup. </li> </ul><br/>
        :return: DBParameterGroups:   A list of <code>DBParameterGroup</code> instances. <br/>Marker:   An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>. <br/>        """
        pass

    def describe_db_parameters(self, DBParameterGroupName: str, Source: str=None, Filters: List[Filter]=None, MaxRecords: int=None, Marker: str=None) -> DBParameterGroupDetails:
        r"""Returns the detailed parameter list for a particular DB parameter group.

        :param self:
        :param Marker:   An optional pagination token provided by a previous <code>DescribeDBParameters</code> request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>. <br/>MaxRecords:   The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a pagination token called a marker is included in the response so that you can retrieve the remaining results.  Default: 100 Constraints: Minimum 20, maximum 100.<br/>Filters:  This parameter isn't currently supported.<br/>Source:  The parameter types to return. Default: All parameter types returned Valid Values: <code>user | system | engine-default</code> <br/>DBParameterGroupName:  The name of a specific DB parameter group to return details for. Constraints: <ul> <li> If supplied, must match the name of an existing DBParameterGroup. </li> </ul><br/>
        :return: Marker:   An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>. <br/>Parameters:   A list of <code>Parameter</code> values. <br/>        """
        pass

    def describe_db_proxies(self, DBProxyName: str=None, Filters: List[Filter]=None, Marker: str=None, MaxRecords: int=None) -> DescribeDBProxiesResponse:
        r"""Returns information about DB proxies.

        :param self:
        :param MaxRecords:  The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a pagination token called a marker is included in the response so that the remaining results can be retrieved.  Default: 100 Constraints: Minimum 20, maximum 100.<br/>Marker:   An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>. <br/>Filters:  This parameter is not currently supported.<br/>DBProxyName:  The name of the DB proxy. If you omit this parameter, the output includes information about all DB proxies owned by your Amazon Web Services account ID.<br/>
        :return: Marker:   An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>. <br/>DBProxies:  A return value representing an arbitrary number of <code>DBProxy</code> data structures.<br/>        """
        pass

    def describe_db_proxy_endpoints(self, DBProxyName: str=None, DBProxyEndpointName: str=None, Filters: List[Filter]=None, Marker: str=None, MaxRecords: int=None) -> DescribeDBProxyEndpointsResponse:
        r"""Returns information about DB proxy endpoints.

        :param self:
        :param MaxRecords:  The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a pagination token called a marker is included in the response so that the remaining results can be retrieved.  Default: 100 Constraints: Minimum 20, maximum 100.<br/>Marker:   An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>. <br/>Filters:  This parameter is not currently supported.<br/>DBProxyEndpointName:  The name of a DB proxy endpoint to describe. If you omit this parameter, the output includes information about all DB proxy endpoints associated with the specified proxy.<br/>DBProxyName:  The name of the DB proxy whose endpoints you want to describe. If you omit this parameter, the output includes information about all DB proxy endpoints associated with all your DB proxies.<br/>
        :return: Marker:   An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>. <br/>DBProxyEndpoints:  The list of <code>ProxyEndpoint</code> objects returned by the API operation.<br/>        """
        pass

    def describe_db_proxy_target_groups(self, DBProxyName: str, TargetGroupName: str=None, Filters: List[Filter]=None, Marker: str=None, MaxRecords: int=None) -> DescribeDBProxyTargetGroupsResponse:
        r"""Returns information about DB proxy target groups, represented by <code>DBProxyTargetGroup</code> data structures.

        :param self:
        :param MaxRecords:   The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a pagination token called a marker is included in the response so that the remaining results can be retrieved.  Default: 100 Constraints: Minimum 20, maximum 100.<br/>Marker:   An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>. <br/>Filters:  This parameter is not currently supported.<br/>TargetGroupName:  The identifier of the <code>DBProxyTargetGroup</code> to describe.<br/>DBProxyName:  The identifier of the <code>DBProxy</code> associated with the target group.<br/>
        :return: Marker:   An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>. <br/>TargetGroups:  An arbitrary number of <code>DBProxyTargetGroup</code> objects, containing details of the corresponding target groups.<br/>        """
        pass

    def describe_db_proxy_targets(self, DBProxyName: str, TargetGroupName: str=None, Filters: List[Filter]=None, Marker: str=None, MaxRecords: int=None) -> DescribeDBProxyTargetsResponse:
        r"""Returns information about <code>DBProxyTarget</code> objects. This API supports pagination.

        :param self:
        :param MaxRecords:   The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a pagination token called a marker is included in the response so that the remaining results can be retrieved.  Default: 100 Constraints: Minimum 20, maximum 100.<br/>Marker:   An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>. <br/>Filters:  This parameter is not currently supported.<br/>TargetGroupName:  The identifier of the <code>DBProxyTargetGroup</code> to describe.<br/>DBProxyName:  The identifier of the <code>DBProxyTarget</code> to describe.<br/>
        :return: Marker:   An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>. <br/>Targets:  An arbitrary number of <code>DBProxyTarget</code> objects, containing details of the corresponding targets.<br/>        """
        pass

    def describe_db_security_groups(self, DBSecurityGroupName: str=None, Filters: List[Filter]=None, MaxRecords: int=None, Marker: str=None) -> DBSecurityGroupMessage:
        r""" Returns a list of <code>DBSecurityGroup</code> descriptions. If a <code>DBSecurityGroupName</code> is specified, the list will contain only the descriptions of the specified DB security group. 

        :param self:
        :param Marker:   An optional pagination token provided by a previous <code>DescribeDBSecurityGroups</code> request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>. <br/>MaxRecords:   The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a pagination token called a marker is included in the response so that you can retrieve the remaining results.  Default: 100 Constraints: Minimum 20, maximum 100.<br/>Filters:  This parameter isn't currently supported.<br/>DBSecurityGroupName:  The name of the DB security group to return details for.<br/>
        :return: DBSecurityGroups:   A list of <code>DBSecurityGroup</code> instances. <br/>Marker:   An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>. <br/>        """
        pass

    def describe_db_snapshot_attributes(self, DBSnapshotIdentifier: str) -> DescribeDBSnapshotAttributesResult:
        r"""Returns a list of DB snapshot attribute names and values for a manual DB snapshot. When sharing snapshots with other Amazon Web Services accounts, <code>DescribeDBSnapshotAttributes</code> returns the <code>restore</code> attribute and a list of IDs for the Amazon Web Services accounts that are authorized to copy or restore the manual DB snapshot. If <code>all</code> is included in the list of values for the <code>restore</code> attribute, then the manual DB snapshot is public and can be copied or restored by all Amazon Web Services accounts. To add or remove access for an Amazon Web Services account to copy or restore a manual DB snapshot, or to make the manual DB snapshot public or private, use the <code>ModifyDBSnapshotAttribute</code> API action.

        :param self:
        :param DBSnapshotIdentifier:  The identifier for the DB snapshot to describe the attributes for.<br/>
        :return: DBSnapshotAttributesResult:  Contains the results of a successful call to the <code>DescribeDBSnapshotAttributes</code> API action. Manual DB snapshot attributes are used to authorize other Amazon Web Services accounts to copy or restore a manual DB snapshot. For more information, see the <code>ModifyDBSnapshotAttribute</code> API action.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSnapshotAttributes</i> The list of attributes and values for the manual DB snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSnapshotIdentifier</i> The identifier of the manual DB snapshot that the attributes apply to.<br/>        """
        pass

    def describe_db_snapshots(self, DBInstanceIdentifier: str=None, DBSnapshotIdentifier: str=None, SnapshotType: str=None, Filters: List[Filter]=None, MaxRecords: int=None, Marker: str=None, IncludeShared: Boolean=None, IncludePublic: Boolean=None, DbiResourceId: str=None) -> DBSnapshotMessage:
        r"""Returns information about DB snapshots. This API action supports pagination.

        :param self:
        :param DbiResourceId:  A specific DB resource ID to describe.<br/>IncludePublic:  A value that indicates whether to include manual DB cluster snapshots that are public and can be copied or restored by any Amazon Web Services account. By default, the public snapshots are not included. You can share a manual DB snapshot as public by using the <a>ModifyDBSnapshotAttribute</a> API.<br/>IncludeShared:  A value that indicates whether to include shared manual DB cluster snapshots from other Amazon Web Services accounts that this Amazon Web Services account has been given permission to copy or restore. By default, these snapshots are not included. You can give an Amazon Web Services account permission to restore a manual DB snapshot from another Amazon Web Services account by using the <code>ModifyDBSnapshotAttribute</code> API action.<br/>Marker:   An optional pagination token provided by a previous <code>DescribeDBSnapshots</code> request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>. <br/>MaxRecords:   The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a pagination token called a marker is included in the response so that you can retrieve the remaining results.  Default: 100 Constraints: Minimum 20, maximum 100.<br/>Filters:  A filter that specifies one or more DB snapshots to describe. Supported filters: <ul> <li>  <code>db-instance-id</code> - Accepts DB instance identifiers and DB instance Amazon Resource Names (ARNs). </li> <li>  <code>db-snapshot-id</code> - Accepts DB snapshot identifiers. </li> <li>  <code>dbi-resource-id</code> - Accepts identifiers of source DB instances. </li> <li>  <code>snapshot-type</code> - Accepts types of DB snapshots. </li> <li>  <code>engine</code> - Accepts names of database engines. </li> </ul><br/>SnapshotType:  The type of snapshots to be returned. You can specify one of the following values: <ul> <li>  <code>automated</code> - Return all DB snapshots that have been automatically taken by Amazon RDS for my Amazon Web Services account. </li> <li>  <code>manual</code> - Return all DB snapshots that have been taken by my Amazon Web Services account. </li> <li>  <code>shared</code> - Return all manual DB snapshots that have been shared to my Amazon Web Services account. </li> <li>  <code>public</code> - Return all DB snapshots that have been marked as public. </li> <li>  <code>awsbackup</code> - Return the DB snapshots managed by the Amazon Web Services Backup service. For information about Amazon Web Services Backup, see the <a href="https://docs.aws.amazon.com/aws-backup/latest/devguide/whatisbackup.html"> <i>Amazon Web Services Backup Developer Guide.</i> </a>  The <code>awsbackup</code> type does not apply to Aurora. </li> </ul> If you don't specify a <code>SnapshotType</code> value, then both automated and manual snapshots are returned. Shared and public DB snapshots are not included in the returned results by default. You can include shared snapshots with these results by enabling the <code>IncludeShared</code> parameter. You can include public snapshots with these results by enabling the <code>IncludePublic</code> parameter. The <code>IncludeShared</code> and <code>IncludePublic</code> parameters don't apply for <code>SnapshotType</code> values of <code>manual</code> or <code>automated</code>. The <code>IncludePublic</code> parameter doesn't apply when <code>SnapshotType</code> is set to <code>shared</code>. The <code>IncludeShared</code> parameter doesn't apply when <code>SnapshotType</code> is set to <code>public</code>.<br/>DBSnapshotIdentifier:   A specific DB snapshot identifier to describe. This parameter can't be used in conjunction with <code>DBInstanceIdentifier</code>. This value is stored as a lowercase string.  Constraints: <ul> <li> If supplied, must match the identifier of an existing DBSnapshot. </li> <li> If this identifier is for an automated snapshot, the <code>SnapshotType</code> parameter must also be specified. </li> </ul><br/>DBInstanceIdentifier:  The ID of the DB instance to retrieve the list of DB snapshots for. This parameter can't be used in conjunction with <code>DBSnapshotIdentifier</code>. This parameter isn't case-sensitive.  Constraints: <ul> <li> If supplied, must match the identifier of an existing DBInstance. </li> </ul><br/>
        :return: DBSnapshots:   A list of <code>DBSnapshot</code> instances. <br/>Marker:   An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>. <br/>        """
        pass

    def describe_db_subnet_groups(self, DBSubnetGroupName: str=None, Filters: List[Filter]=None, MaxRecords: int=None, Marker: str=None) -> DBSubnetGroupMessage:
        r"""Returns a list of DBSubnetGroup descriptions. If a DBSubnetGroupName is specified, the list will contain only the descriptions of the specified DBSubnetGroup. For an overview of CIDR ranges, go to the <a href="http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing">Wikipedia Tutorial</a>. 

        :param self:
        :param Marker:   An optional pagination token provided by a previous DescribeDBSubnetGroups request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>. <br/>MaxRecords:   The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a pagination token called a marker is included in the response so that you can retrieve the remaining results.  Default: 100 Constraints: Minimum 20, maximum 100.<br/>Filters:  This parameter isn't currently supported.<br/>DBSubnetGroupName:  The name of the DB subnet group to return details for.<br/>
        :return: DBSubnetGroups:   A list of <code>DBSubnetGroup</code> instances. <br/>Marker:   An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>. <br/>        """
        pass

    def describe_engine_default_cluster_parameters(self, DBParameterGroupFamily: str, Filters: List[Filter]=None, MaxRecords: int=None, Marker: str=None) -> DescribeEngineDefaultClusterParametersResult:
        r"""Returns the default engine and system parameter information for the cluster database engine. For more information on Amazon Aurora, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html"> What Is Amazon Aurora?</a> in the <i>Amazon Aurora User Guide.</i> 

        :param self:
        :param Marker:   An optional pagination token provided by a previous <code>DescribeEngineDefaultClusterParameters</code> request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>. <br/>MaxRecords:   The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a pagination token called a marker is included in the response so you can retrieve the remaining results.  Default: 100 Constraints: Minimum 20, maximum 100.<br/>Filters:  This parameter isn't currently supported.<br/>DBParameterGroupFamily:  The name of the DB cluster parameter group family to return engine parameter information for.<br/>
        :return: EngineDefaults:   Contains the result of a successful invocation of the <code>DescribeEngineDefaultParameters</code> action. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Parameters</i> Contains a list of engine default parameters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Marker</i>  An optional pagination token provided by a previous EngineDefaults request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code> . <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBParameterGroupFamily</i> Specifies the name of the DB parameter group family that the engine default parameters apply to.<br/>        """
        pass

    def describe_engine_default_parameters(self, DBParameterGroupFamily: str, Filters: List[Filter]=None, MaxRecords: int=None, Marker: str=None) -> DescribeEngineDefaultParametersResult:
        r"""Returns the default engine and system parameter information for the specified database engine.

        :param self:
        :param Marker:   An optional pagination token provided by a previous <code>DescribeEngineDefaultParameters</code> request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>. <br/>MaxRecords:   The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a pagination token called a marker is included in the response so you can retrieve the remaining results.  Default: 100 Constraints: Minimum 20, maximum 100.<br/>Filters:  This parameter isn't currently supported.<br/>DBParameterGroupFamily:  The name of the DB parameter group family.<br/>
        :return: EngineDefaults:   Contains the result of a successful invocation of the <code>DescribeEngineDefaultParameters</code> action. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Parameters</i> Contains a list of engine default parameters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Marker</i>  An optional pagination token provided by a previous EngineDefaults request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code> . <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBParameterGroupFamily</i> Specifies the name of the DB parameter group family that the engine default parameters apply to.<br/>        """
        pass

    def describe_event_categories(self, SourceType: str=None, Filters: List[Filter]=None) -> EventCategoriesMessage:
        r"""Displays a list of categories for all event source types, or, if specified, for a specified source type. You can see a list of the event categories and source types in <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Events.html"> Events</a> in the <i>Amazon RDS User Guide.</i> 

        :param self:
        :param Filters:  This parameter isn't currently supported.<br/>SourceType:  The type of source that is generating the events. Valid values: <code>db-instance</code> | <code>db-cluster</code> | <code>db-parameter-group</code> | <code>db-security-group</code> | <code>db-snapshot</code> | <code>db-cluster-snapshot</code> <br/>
        :return: EventCategoriesMapList:  A list of EventCategoriesMap data types.<br/>        """
        pass

    def describe_event_subscriptions(self, SubscriptionName: str=None, Filters: List[Filter]=None, MaxRecords: int=None, Marker: str=None) -> EventSubscriptionsMessage:
        r"""Lists all the subscription descriptions for a customer account. The description for a subscription includes <code>SubscriptionName</code>, <code>SNSTopicARN</code>, <code>CustomerID</code>, <code>SourceType</code>, <code>SourceID</code>, <code>CreationTime</code>, and <code>Status</code>. If you specify a <code>SubscriptionName</code>, lists the description for that subscription.

        :param self:
        :param Marker:   An optional pagination token provided by a previous DescribeOrderableDBInstanceOptions request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code> . <br/>MaxRecords:   The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a pagination token called a marker is included in the response so that you can retrieve the remaining results.  Default: 100 Constraints: Minimum 20, maximum 100.<br/>Filters:  This parameter isn't currently supported.<br/>SubscriptionName:  The name of the RDS event notification subscription you want to describe.<br/>
        :return: EventSubscriptionsList:  A list of EventSubscriptions data types.<br/>Marker:   An optional pagination token provided by a previous DescribeOrderableDBInstanceOptions request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>. <br/>        """
        pass

    def describe_events(self, SourceIdentifier: str=None, SourceType: str=None, StartTime: TStamp=None, EndTime: TStamp=None, Duration: int=None, EventCategories: List[String]=None, Filters: List[Filter]=None, MaxRecords: int=None, Marker: str=None) -> EventsMessage:
        r"""Returns events related to DB instances, DB clusters, DB parameter groups, DB security groups, DB snapshots, and DB cluster snapshots for the past 14 days. Events specific to a particular DB instances, DB clusters, DB parameter groups, DB security groups, DB snapshots, and DB cluster snapshots group can be obtained by providing the name as a parameter. <note> By default, the past hour of events are returned. </note>

        :param self:
        :param Marker:   An optional pagination token provided by a previous DescribeEvents request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>. <br/>MaxRecords:   The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a pagination token called a marker is included in the response so that you can retrieve the remaining results.  Default: 100 Constraints: Minimum 20, maximum 100.<br/>Filters:  This parameter isn't currently supported.<br/>EventCategories:  A list of event categories that trigger notifications for a event notification subscription.<br/>Duration:  The number of minutes to retrieve events for. Default: 60<br/>EndTime:   The end of the time interval for which to retrieve events, specified in ISO 8601 format. For more information about ISO 8601, go to the <a href="http://en.wikipedia.org/wiki/ISO_8601">ISO8601 Wikipedia page.</a>  Example: 2009-07-08T18:00Z<br/>StartTime:   The beginning of the time interval to retrieve events for, specified in ISO 8601 format. For more information about ISO 8601, go to the <a href="http://en.wikipedia.org/wiki/ISO_8601">ISO8601 Wikipedia page.</a>  Example: 2009-07-08T18:00Z<br/>SourceType:  The event source to retrieve events for. If no value is specified, all events are returned.<br/>SourceIdentifier:  The identifier of the event source for which events are returned. If not specified, then all sources are included in the response. Constraints: <ul> <li> If <code>SourceIdentifier</code> is supplied, <code>SourceType</code> must also be provided. </li> <li> If the source type is a DB instance, a <code>DBInstanceIdentifier</code> value must be supplied. </li> <li> If the source type is a DB cluster, a <code>DBClusterIdentifier</code> value must be supplied. </li> <li> If the source type is a DB parameter group, a <code>DBParameterGroupName</code> value must be supplied. </li> <li> If the source type is a DB security group, a <code>DBSecurityGroupName</code> value must be supplied. </li> <li> If the source type is a DB snapshot, a <code>DBSnapshotIdentifier</code> value must be supplied. </li> <li> If the source type is a DB cluster snapshot, a <code>DBClusterSnapshotIdentifier</code> value must be supplied. </li> <li> Can't end with a hyphen or contain two consecutive hyphens. </li> </ul><br/>
        :return: Events:   A list of <code>Event</code> instances. <br/>Marker:   An optional pagination token provided by a previous Events request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code> . <br/>        """
        pass

    def describe_export_tasks(self, ExportTaskIdentifier: str=None, SourceArn: str=None, Filters: List[Filter]=None, Marker: str=None, MaxRecords: int=None) -> ExportTasksMessage:
        r"""Returns information about a snapshot export to Amazon S3. This API operation supports pagination. 

        :param self:
        :param MaxRecords:   The maximum number of records to include in the response. If more records exist than the specified value, a pagination token called a marker is included in the response. You can use the marker in a later <code>DescribeExportTasks</code> request to retrieve the remaining results.  Default: 100 Constraints: Minimum 20, maximum 100.<br/>Marker:   An optional pagination token provided by a previous <code>DescribeExportTasks</code> request. If you specify this parameter, the response includes only records beyond the marker, up to the value specified by the <code>MaxRecords</code> parameter. <br/>Filters:  Filters specify one or more snapshot exports to describe. The filters are specified as name-value pairs that define what to include in the output. Filter names and values are case-sensitive. Supported filters include the following:  <ul> <li>  <code>export-task-identifier</code> - An identifier for the snapshot export task. </li> <li>  <code>s3-bucket</code> - The Amazon S3 bucket the snapshot is exported to. </li> <li>  <code>source-arn</code> - The Amazon Resource Name (ARN) of the snapshot exported to Amazon S3 </li> <li>  <code>status</code> - The status of the export task. Must be lowercase, for example, <code>complete</code>. </li> </ul><br/>SourceArn:  The Amazon Resource Name (ARN) of the snapshot exported to Amazon S3.<br/>ExportTaskIdentifier:  The identifier of the snapshot export task to be described.<br/>
        :return: ExportTasks:  Information about an export of a snapshot to Amazon S3.<br/>Marker:  A pagination token that can be used in a later <code>DescribeExportTasks</code> request. A marker is used for pagination to identify the location to begin output for the next response of <code>DescribeExportTasks</code>.<br/>        """
        pass

    def describe_global_clusters(self, GlobalClusterIdentifier: str=None, Filters: List[Filter]=None, MaxRecords: int=None, Marker: str=None) -> GlobalClustersMessage:
        r""" Returns information about Aurora global database clusters. This API supports pagination.   For more information on Amazon Aurora, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html"> What Is Amazon Aurora?</a> in the <i>Amazon Aurora User Guide.</i>  <note> This action only applies to Aurora DB clusters. </note>

        :param self:
        :param Marker:   An optional pagination token provided by a previous <code>DescribeGlobalClusters</code> request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>. <br/>MaxRecords:   The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a pagination token called a marker is included in the response so that you can retrieve the remaining results.  Default: 100 Constraints: Minimum 20, maximum 100.<br/>Filters:  A filter that specifies one or more global DB clusters to describe. Supported filters: <ul> <li>  <code>db-cluster-id</code> - Accepts DB cluster identifiers and DB cluster Amazon Resource Names (ARNs). The results list will only include information about the DB clusters identified by these ARNs. </li> </ul><br/>GlobalClusterIdentifier:   The user-supplied DB cluster identifier. If this parameter is specified, information from only the specific DB cluster is returned. This parameter isn't case-sensitive.  Constraints: <ul> <li> If supplied, must match an existing DBClusterIdentifier. </li> </ul><br/>
        :return: GlobalClusters:   The list of global clusters returned by this request. <br/>Marker:   An optional pagination token provided by a previous <code>DescribeGlobalClusters</code> request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>. <br/>        """
        pass

    def describe_installation_media(self, InstallationMediaId: str=None, Filters: List[Filter]=None, MaxRecords: int=None, Marker: str=None) -> InstallationMediaMessage:
        r"""Describes the available installation media for a DB engine that requires an on-premises customer provided license, such as Microsoft SQL Server.

        :param self:
        :param Marker:  An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>.<br/>MaxRecords:  An optional pagination token provided by a previous DescribeInstallationMedia request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>.<br/>Filters:  A filter that specifies one or more installation media to describe. Supported filters include the following: <ul> <li>  <code>custom-availability-zone-id</code> - Accepts custom Availability Zone (AZ) identifiers. The results list includes information about only the custom AZs identified by these identifiers. </li> <li>  <code>engine</code> - Accepts database engines. The results list includes information about only the database engines identified by these identifiers. For more information about the valid engines for installation media, see <a>ImportInstallationMedia</a>. </li> </ul><br/>InstallationMediaId:  The installation medium ID.<br/>
        :return: InstallationMedia:  The list of <a>InstallationMedia</a> objects for the Amazon Web Services account.<br/>Marker:  An optional pagination token provided by a previous <a>DescribeInstallationMedia</a> request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>.<br/>        """
        pass

    def describe_option_group_options(self, EngineName: str, MajorEngineVersion: str=None, Filters: List[Filter]=None, MaxRecords: int=None, Marker: str=None) -> OptionGroupOptionsMessage:
        r"""Describes all available options.

        :param self:
        :param Marker:  An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>.<br/>MaxRecords:   The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a pagination token called a marker is included in the response so that you can retrieve the remaining results.  Default: 100 Constraints: Minimum 20, maximum 100.<br/>Filters:  This parameter isn't currently supported.<br/>MajorEngineVersion:  If specified, filters the results to include only options for the specified major engine version.<br/>EngineName:  A required parameter. Options available for the given engine name are described. Valid Values:  <ul> <li>  <code>mariadb</code>  </li> <li>  <code>mysql</code>  </li> <li>  <code>oracle-ee</code>  </li> <li>  <code>oracle-ee-cdb</code>  </li> <li>  <code>oracle-se2</code>  </li> <li>  <code>oracle-se2-cdb</code>  </li> <li>  <code>postgres</code>  </li> <li>  <code>sqlserver-ee</code>  </li> <li>  <code>sqlserver-se</code>  </li> <li>  <code>sqlserver-ex</code>  </li> <li>  <code>sqlserver-web</code>  </li> </ul><br/>
        :return: Marker:  An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>.<br/>OptionGroupOptions:  List of available option group options.<br/>        """
        pass

    def describe_option_groups(self, OptionGroupName: str=None, Filters: List[Filter]=None, Marker: str=None, MaxRecords: int=None, EngineName: str=None, MajorEngineVersion: str=None) -> OptionGroups:
        r"""Describes the available option groups.

        :param self:
        :param MajorEngineVersion:  Filters the list of option groups to only include groups associated with a specific database engine version. If specified, then EngineName must also be specified.<br/>EngineName:  Filters the list of option groups to only include groups associated with a specific database engine. Valid Values:  <ul> <li>  <code>mariadb</code>  </li> <li>  <code>mysql</code>  </li> <li>  <code>oracle-ee</code>  </li> <li>  <code>oracle-ee-cdb</code>  </li> <li>  <code>oracle-se2</code>  </li> <li>  <code>oracle-se2-cdb</code>  </li> <li>  <code>postgres</code>  </li> <li>  <code>sqlserver-ee</code>  </li> <li>  <code>sqlserver-se</code>  </li> <li>  <code>sqlserver-ex</code>  </li> <li>  <code>sqlserver-web</code>  </li> </ul><br/>MaxRecords:   The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a pagination token called a marker is included in the response so that you can retrieve the remaining results.  Default: 100 Constraints: Minimum 20, maximum 100.<br/>Marker:   An optional pagination token provided by a previous DescribeOptionGroups request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>. <br/>Filters:  This parameter isn't currently supported.<br/>OptionGroupName:  The name of the option group to describe. Can't be supplied together with EngineName or MajorEngineVersion.<br/>
        :return: Marker:  An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>. <br/>OptionGroupsList:  List of option groups.<br/>        """
        pass

    def describe_orderable_db_instance_options(self, Engine: str, EngineVersion: str=None, DBInstanceClass: str=None, LicenseModel: str=None, AvailabilityZoneGroup: str=None, Vpc: BooleanOptional=None, Filters: List[Filter]=None, MaxRecords: int=None, Marker: str=None) -> OrderableDBInstanceOptionsMessage:
        r"""Returns a list of orderable DB instance options for the specified engine.

        :param self:
        :param Marker:   An optional pagination token provided by a previous DescribeOrderableDBInstanceOptions request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code> . <br/>MaxRecords:   The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a pagination token called a marker is included in the response so that you can retrieve the remaining results.  Default: 100 Constraints: Minimum 20, maximum 100.<br/>Filters:  This parameter isn't currently supported.<br/>Vpc:  A value that indicates whether to show only VPC or non-VPC offerings.<br/>AvailabilityZoneGroup:  The Availability Zone group associated with a Local Zone. Specify this parameter to retrieve available offerings for the Local Zones in the group. Omit this parameter to show the available offerings in the specified Amazon Web Services Region.<br/>LicenseModel:  The license model filter value. Specify this parameter to show only the available offerings matching the specified license model.<br/>DBInstanceClass:  The DB instance class filter value. Specify this parameter to show only the available offerings matching the specified DB instance class.<br/>EngineVersion:  The engine version filter value. Specify this parameter to show only the available offerings matching the specified engine version.<br/>Engine:  The name of the engine to retrieve DB instance options for. Valid Values:  <ul> <li>  <code>aurora</code> (for MySQL 5.6-compatible Aurora) </li> <li>  <code>aurora-mysql</code> (for MySQL 5.7-compatible Aurora) </li> <li>  <code>aurora-postgresql</code>  </li> <li>  <code>mariadb</code>  </li> <li>  <code>mysql</code>  </li> <li>  <code>oracle-ee</code>  </li> <li>  <code>oracle-ee-cdb</code>  </li> <li>  <code>oracle-se2</code>  </li> <li>  <code>oracle-se2-cdb</code>  </li> <li>  <code>postgres</code>  </li> <li>  <code>sqlserver-ee</code>  </li> <li>  <code>sqlserver-se</code>  </li> <li>  <code>sqlserver-ex</code>  </li> <li>  <code>sqlserver-web</code>  </li> </ul><br/>
        :return: Marker:   An optional pagination token provided by a previous OrderableDBInstanceOptions request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code> . <br/>OrderableDBInstanceOptions:  An <code>OrderableDBInstanceOption</code> structure containing information about orderable options for the DB instance.<br/>        """
        pass

    def describe_pending_maintenance_actions(self, ResourceIdentifier: str=None, Filters: List[Filter]=None, Marker: str=None, MaxRecords: int=None) -> PendingMaintenanceActionsMessage:
        r"""Returns a list of resources (for example, DB instances) that have at least one pending maintenance action.

        :param self:
        :param MaxRecords:   The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a pagination token called a marker is included in the response so that you can retrieve the remaining results.  Default: 100 Constraints: Minimum 20, maximum 100.<br/>Marker:   An optional pagination token provided by a previous <code>DescribePendingMaintenanceActions</code> request. If this parameter is specified, the response includes only records beyond the marker, up to a number of records specified by <code>MaxRecords</code>. <br/>Filters:  A filter that specifies one or more resources to return pending maintenance actions for. Supported filters: <ul> <li>  <code>db-cluster-id</code> - Accepts DB cluster identifiers and DB cluster Amazon Resource Names (ARNs). The results list will only include pending maintenance actions for the DB clusters identified by these ARNs. </li> <li>  <code>db-instance-id</code> - Accepts DB instance identifiers and DB instance ARNs. The results list will only include pending maintenance actions for the DB instances identified by these ARNs. </li> </ul><br/>ResourceIdentifier:  The ARN of a resource to return pending maintenance actions for.<br/>
        :return: Marker:   An optional pagination token provided by a previous <code>DescribePendingMaintenanceActions</code> request. If this parameter is specified, the response includes only records beyond the marker, up to a number of records specified by <code>MaxRecords</code>. <br/>PendingMaintenanceActions:  A list of the pending maintenance actions for the resource.<br/>        """
        pass

    def describe_reserved_db_instances(self, ReservedDBInstanceId: str=None, ReservedDBInstancesOfferingId: str=None, DBInstanceClass: str=None, Duration: str=None, ProductDescription: str=None, OfferingType: str=None, MultiAZ: BooleanOptional=None, LeaseId: str=None, Filters: List[Filter]=None, MaxRecords: int=None, Marker: str=None) -> ReservedDBInstanceMessage:
        r"""Returns information about reserved DB instances for this account, or about a specified reserved DB instance.

        :param self:
        :param Marker:   An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>. <br/>MaxRecords:   The maximum number of records to include in the response. If more than the <code>MaxRecords</code> value is available, a pagination token called a marker is included in the response so you can retrieve the remaining results.  Default: 100 Constraints: Minimum 20, maximum 100.<br/>Filters:  This parameter isn't currently supported.<br/>LeaseId:  The lease identifier filter value. Specify this parameter to show only the reservation that matches the specified lease ID. <note> Amazon Web Services Support might request the lease ID for an issue related to a reserved DB instance. </note><br/>MultiAZ:  A value that indicates whether to show only those reservations that support Multi-AZ.<br/>OfferingType:  The offering type filter value. Specify this parameter to show only the available offerings matching the specified offering type. Valid Values: <code>"Partial Upfront" | "All Upfront" | "No Upfront" </code> <br/>ProductDescription:  The product description filter value. Specify this parameter to show only those reservations matching the specified product description.<br/>Duration:  The duration filter value, specified in years or seconds. Specify this parameter to show only reservations for this duration. Valid Values: <code>1 | 3 | 31536000 | 94608000</code> <br/>DBInstanceClass:  The DB instance class filter value. Specify this parameter to show only those reservations matching the specified DB instances class.<br/>ReservedDBInstancesOfferingId:  The offering identifier filter value. Specify this parameter to show only purchased reservations matching the specified offering identifier.<br/>ReservedDBInstanceId:  The reserved DB instance identifier filter value. Specify this parameter to show only the reservation that matches the specified reservation ID.<br/>
        :return: ReservedDBInstances:  A list of reserved DB instances.<br/>Marker:   An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>. <br/>        """
        pass

    def describe_reserved_db_instances_offerings(self, ReservedDBInstancesOfferingId: str=None, DBInstanceClass: str=None, Duration: str=None, ProductDescription: str=None, OfferingType: str=None, MultiAZ: BooleanOptional=None, Filters: List[Filter]=None, MaxRecords: int=None, Marker: str=None) -> ReservedDBInstancesOfferingMessage:
        r"""Lists available reserved DB instance offerings.

        :param self:
        :param Marker:   An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>. <br/>MaxRecords:   The maximum number of records to include in the response. If more than the <code>MaxRecords</code> value is available, a pagination token called a marker is included in the response so you can retrieve the remaining results.  Default: 100 Constraints: Minimum 20, maximum 100.<br/>Filters:  This parameter isn't currently supported.<br/>MultiAZ:  A value that indicates whether to show only those reservations that support Multi-AZ.<br/>OfferingType:  The offering type filter value. Specify this parameter to show only the available offerings matching the specified offering type. Valid Values: <code>"Partial Upfront" | "All Upfront" | "No Upfront" </code> <br/>ProductDescription:  Product description filter value. Specify this parameter to show only the available offerings that contain the specified product description. <note> The results show offerings that partially match the filter value. </note><br/>Duration:  Duration filter value, specified in years or seconds. Specify this parameter to show only reservations for this duration. Valid Values: <code>1 | 3 | 31536000 | 94608000</code> <br/>DBInstanceClass:  The DB instance class filter value. Specify this parameter to show only the available offerings matching the specified DB instance class.<br/>ReservedDBInstancesOfferingId:  The offering identifier filter value. Specify this parameter to show only the available offering that matches the specified reservation identifier. Example: <code>438012d3-4052-4cc7-b2e3-8d3372e0e706</code> <br/>
        :return: ReservedDBInstancesOfferings:  A list of reserved DB instance offerings.<br/>Marker:   An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>. <br/>        """
        pass

    def describe_source_regions(self, RegionName: str=None, MaxRecords: int=None, Marker: str=None, Filters: List[Filter]=None) -> SourceRegionMessage:
        r"""Returns a list of the source Amazon Web Services Regions where the current Amazon Web Services Region can create a read replica, copy a DB snapshot from, or replicate automated backups from. This API action supports pagination.

        :param self:
        :param Filters:  This parameter isn't currently supported.<br/>Marker:  An optional pagination token provided by a previous <code>DescribeSourceRegions</code> request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>.<br/>MaxRecords:  The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a pagination token called a marker is included in the response so you can retrieve the remaining results.  Default: 100 Constraints: Minimum 20, maximum 100.<br/>RegionName:  The source Amazon Web Services Region name. For example, <code>us-east-1</code>. Constraints: <ul> <li> Must specify a valid Amazon Web Services Region name. </li> </ul><br/>
        :return: SourceRegions:  A list of SourceRegion instances that contains each source Amazon Web Services Region that the current Amazon Web Services Region can get a read replica or a DB snapshot from.<br/>Marker:   An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by <code>MaxRecords</code>. <br/>        """
        pass

    def describe_valid_db_instance_modifications(self, DBInstanceIdentifier: str) -> DescribeValidDBInstanceModificationsResult:
        r"""You can call <code>DescribeValidDBInstanceModifications</code> to learn what modifications you can make to your DB instance. You can use this information when you call <code>ModifyDBInstance</code>. 

        :param self:
        :param DBInstanceIdentifier:  The customer identifier or the ARN of your DB instance. <br/>
        :return: ValidDBInstanceModificationsMessage:  Information about valid modifications that you can make to your DB instance. Contains the result of a successful call to the <code>DescribeValidDBInstanceModifications</code> action. You can use this information when you call <code>ModifyDBInstance</code>. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ValidProcessorFeatures</i> Valid processor features for your DB instance. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Storage</i> Valid storage options for your DB instance. <br/>        """
        pass

    def download_db_log_file_portion(self, LogFileName: str, DBInstanceIdentifier: str, Marker: str=None, NumberOfLines: int=None) -> DownloadDBLogFilePortionDetails:
        r"""Downloads all or a portion of the specified log file, up to 1 MB in size.

        :param self:
        :param NumberOfLines:  The number of lines to download. If the number of lines specified results in a file over 1 MB in size, the file is truncated at 1 MB in size. If the NumberOfLines parameter is specified, then the block of lines returned can be from the beginning or the end of the log file, depending on the value of the Marker parameter. <ul> <li> If neither Marker or NumberOfLines are specified, the entire log file is returned up to a maximum of 10000 lines, starting with the most recent log entries first. </li> <li> If NumberOfLines is specified and Marker isn't specified, then the most recent lines from the end of the log file are returned. </li> <li> If Marker is specified as "0", then the specified number of lines from the beginning of the log file are returned. </li> <li> You can download the log file in blocks of lines by specifying the size of the block using the NumberOfLines parameter, and by specifying a value of "0" for the Marker parameter in your first request. Include the Marker value returned in the response as the Marker value for the next request, continuing until the AdditionalDataPending response element returns false. </li> </ul><br/>Marker:  The pagination token provided in the previous request or "0". If the Marker parameter is specified the response includes only records beyond the marker until the end of the file or up to NumberOfLines.<br/>LogFileName:  The name of the log file to be downloaded.<br/>DBInstanceIdentifier:  The customer-assigned name of the DB instance that contains the log files you want to list. Constraints: <ul> <li> Must match the identifier of an existing DBInstance. </li> </ul><br/>
        :return: AdditionalDataPending:  Boolean value that if true, indicates there is more data to be downloaded.<br/>Marker:  A pagination token that can be used in a later DownloadDBLogFilePortion request.<br/>LogFileData:  Entries from the specified log file.<br/>        """
        pass

    def failover_db_cluster(self, DBClusterIdentifier: str, TargetDBInstanceIdentifier: str=None) -> FailoverDBClusterResult:
        r"""Forces a failover for a DB cluster. A failover for a DB cluster promotes one of the Aurora Replicas (read-only instances) in the DB cluster to be the primary instance (the cluster writer). Amazon Aurora will automatically fail over to an Aurora Replica, if one exists, when the primary instance fails. You can force a failover when you want to simulate a failure of a primary instance for testing. Because each instance in a DB cluster has its own endpoint address, you will need to clean up and re-establish any existing connections that use those endpoint addresses when the failover is complete. For more information on Amazon Aurora, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html"> What Is Amazon Aurora?</a> in the <i>Amazon Aurora User Guide.</i>  <note> This action only applies to Aurora DB clusters. </note>

        :param self:
        :param TargetDBInstanceIdentifier:  The name of the instance to promote to the primary instance. You must specify the instance identifier for an Aurora Replica in the DB cluster. For example, <code>mydbcluster-replica1</code>.<br/>DBClusterIdentifier:  A DB cluster identifier to force a failover for. This parameter isn't case-sensitive. Constraints: <ul> <li> Must match the identifier of an existing DBCluster. </li> </ul><br/>
        :return: DBCluster:  Contains the details of an Amazon Aurora DB cluster.  This data type is used as a response element in the <code>DescribeDBClusters</code>, <code>StopDBCluster</code>, and <code>StartDBCluster</code> actions. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingModifiedValues</i> A value that specifies that changes to the DB cluster are pending. This element is only included when changes are pending. Specific changes are identified by subelements.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingModifiedValues</b>: A value that specifies that changes to the DB cluster are pending. This element is only included when changes are pending. Specific changes are identified by subelements.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalWriteForwardingRequested</i> Specifies whether you have requested to enable write forwarding for a secondary cluster in an Aurora global database. Because write forwarding takes time to enable, check the value of <code>GlobalWriteForwardingStatus</code> to confirm that the request has completed before using the write forwarding feature for this cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalWriteForwardingStatus</i> Specifies whether a secondary cluster in an Aurora global database has write forwarding enabled, not enabled, or is in the process of enabling it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TagList</i> A list of tags. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html">Tagging Amazon RDS Resources</a> in the <i>Amazon RDS User Guide.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainMemberships</i> The Active Directory Domain membership records associated with the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CrossAccountClone</i> Specifies whether the DB cluster is a clone of a DB cluster owned by a different Amazon Web Services account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CopyTagsToSnapshot</i> Specifies whether tags are copied from the DB cluster to snapshots of the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamKinesisStreamName</i> The name of the Amazon Kinesis data stream used for the database activity stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamKmsKeyId</i> The Amazon Web Services KMS key identifier used for encrypting messages in the database activity stream. The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the Amazon Web Services KMS customer master key (CMK).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamStatus</i> The status of the database activity stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamMode</i> The mode of the database activity stream. Database events such as a change or access generate an activity stream event. The database session can handle these events either synchronously or asynchronously. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HttpEndpointEnabled</i> A value that indicates whether the HTTP endpoint for an Aurora Serverless DB cluster is enabled. When enabled, the HTTP endpoint provides a connectionless web service API for running SQL queries on the Aurora Serverless DB cluster. You can also query your database from inside the RDS console with the query editor. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/data-api.html">Using the Data API for Aurora Serverless</a> in the <i>Amazon Aurora User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeletionProtection</i> Indicates if the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ScalingConfigurationInfo</i> Shows the scaling configuration for an Aurora DB cluster in <code>serverless</code> DB engine mode. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html">Using Amazon Aurora Serverless</a> in the <i>Amazon Aurora User Guide</i>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ScalingConfigurationInfo</b>: Shows the scaling configuration for an Aurora DB cluster in <code>serverless</code> DB engine mode. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html">Using Amazon Aurora Serverless</a> in the <i>Amazon Aurora User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineMode</i> The DB engine mode of the DB cluster, either <code>provisioned</code>, <code>serverless</code>, <code>parallelquery</code>, <code>global</code>, or <code>multimaster</code>. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBCluster.html"> CreateDBCluster</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Capacity</i> The current capacity of an Aurora Serverless DB cluster. The capacity is 0 (zero) when the cluster is paused. For more information about Aurora Serverless, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html">Using Amazon Aurora Serverless</a> in the <i>Amazon Aurora User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnabledCloudwatchLogsExports</i> A list of log types that this DB cluster is configured to export to CloudWatch Logs. Log types vary by DB engine. For information about the log types for each DB engine, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_LogAccess.html">Amazon RDS Database Log Files</a> in the <i>Amazon Aurora User Guide.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BacktrackConsumedChangeRecords</i> The number of change records stored for Backtrack.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BacktrackWindow</i> The target backtrack window, in seconds. If this value is set to 0, backtracking is disabled for the DB cluster. Otherwise, backtracking is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EarliestBacktrackTime</i> The earliest time to which a DB cluster can be backtracked.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterCreateTime</i> Specifies the time when the DB cluster was created, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloneGroupId</i> Identifies the clone group to which the DB cluster is associated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IAMDatabaseAuthenticationEnabled</i> A value that indicates whether the mapping of Amazon Web Services Identity and Access Management (IAM) accounts to database accounts is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociatedRoles</i> Provides a list of the Amazon Web Services Identity and Access Management (IAM) roles that are associated with the DB cluster. IAM roles that are associated with a DB cluster grant permission for the DB cluster to access other Amazon Web Services on your behalf.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterArn</i> The Amazon Resource Name (ARN) for the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DbClusterResourceId</i> The Amazon Web Services Region-unique, immutable identifier for the DB cluster. This identifier is found in Amazon Web Services CloudTrail log entries whenever the Amazon Web Services KMS CMK for the DB cluster is accessed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> If <code>StorageEncrypted</code> is enabled, the Amazon Web Services KMS key identifier for the encrypted DB cluster. The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the Amazon Web Services KMS customer master key (CMK).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageEncrypted</i> Specifies whether the DB cluster is encrypted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HostedZoneId</i> Specifies the ID that Amazon Route 53 assigns when you create a hosted zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcSecurityGroups</i> Provides a list of VPC security groups that the DB cluster belongs to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterMembers</i> Provides the list of instances that make up the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadReplicaIdentifiers</i> Contains one or more identifiers of the read replicas associated with this DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationSourceIdentifier</i> Contains the identifier of the source DB cluster if this DB cluster is a read replica.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i> Specifies the weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredBackupWindow</i> Specifies the daily time range during which automated backups are created if automated backups are enabled, as determined by the <code>BackupRetentionPeriod</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterOptionGroupMemberships</i> Provides the list of option group memberships for this DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUsername</i> Contains the master username for the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Specifies the port that the database engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestRestorableTime</i> Specifies the latest time to which a database can be restored with point-in-time restore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> Indicates the database engine version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> The name of the database engine to be used for this DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiAZ</i> Specifies whether the DB cluster has instances in multiple Availability Zones.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomEndpoints</i> Identifies all custom endpoints associated with the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReaderEndpoint</i> The reader endpoint for the DB cluster. The reader endpoint for a DB cluster load-balances connections across the Aurora Replicas that are available in a DB cluster. As clients request new connections to the reader endpoint, Aurora distributes the connection requests among the Aurora Replicas in the DB cluster. This functionality can help balance your read workload across multiple Aurora Replicas in your DB cluster.  If a failover occurs, and the Aurora Replica that you are connected to is promoted to be the primary instance, your connection is dropped. To continue sending your read workload to other Aurora Replicas in the cluster, you can then reconnect to the reader endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i> Specifies the connection endpoint for the primary instance of the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EarliestRestorableTime</i> The earliest time to which a database can be restored with point-in-time restore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PercentProgress</i> Specifies the progress of the operation as a percentage.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Specifies the current state of this DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroup</i> Specifies information on the subnet group associated with the DB cluster, including the name, description, and subnets in the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterParameterGroup</i> Specifies the name of the DB cluster parameter group for the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterIdentifier</i> Contains a user-supplied DB cluster identifier. This identifier is the unique key that identifies a DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> Contains the name of the initial database of this DB cluster that was provided at create time, if one was specified when the DB cluster was created. This same name is returned for the life of the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CharacterSetName</i> If present, specifies the name of the character set that this cluster is associated with.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupRetentionPeriod</i> Specifies the number of days for which automatic DB snapshots are retained.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZones</i> Provides the list of Availability Zones (AZs) where instances in the DB cluster can be created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllocatedStorage</i> For all database engines except Amazon Aurora, <code>AllocatedStorage</code> specifies the allocated storage size in gibibytes (GiB). For Aurora, <code>AllocatedStorage</code> always returns 1, because Aurora DB cluster storage size isn't fixed, but instead automatically adjusts as needed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TimeoutAction</i> The timeout action of a call to <code>ModifyCurrentDBClusterCapacity</code>, either <code>ForceApplyCapacityChange</code> or <code>RollbackCapacityChange</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecondsUntilAutoPause</i> The remaining amount of time, in seconds, before the Aurora DB cluster in <code>serverless</code> mode is paused. A DB cluster can be paused only when it's idle (it has no connections).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoPause</i> A value that indicates whether automatic pause is allowed for the Aurora DB cluster in <code>serverless</code> DB engine mode. When the value is set to false for an Aurora Serverless DB cluster, the DB cluster automatically resumes.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxCapacity</i> The maximum capacity for an Aurora DB cluster in <code>serverless</code> DB engine mode.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MinCapacity</i> The maximum capacity for the Aurora DB cluster in <code>serverless</code> DB engine mode.<br/>A list of the log types whose configuration is still pending. In other words, these log types are in the process of being activated or deactivated.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingCloudwatchLogsExports</b>: A list of the log types whose configuration is still pending. In other words, these log types are in the process of being activated or deactivated.        """
        pass

    def failover_global_cluster(self, TargetDbClusterIdentifier: str, GlobalClusterIdentifier: str) -> FailoverGlobalClusterResult:
        r"""Initiates the failover process for an Aurora global database (<a>GlobalCluster</a>). A failover for an Aurora global database promotes one of secondary read-only DB clusters to be the primary DB cluster and demotes the primary DB cluster to being a secondary (read-only) DB cluster. In other words, the role of the current primary DB cluster and the selected (target) DB cluster are switched. The selected secondary DB cluster assumes full read/write capabilities for the Aurora global database. For more information about failing over an Amazon Aurora global database, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database-disaster-recovery.html#aurora-global-database-disaster-recovery.managed-failover">Managed planned failover for Amazon Aurora global databases</a> in the <i>Amazon Aurora User Guide.</i>  <note> This action applies to <a>GlobalCluster</a> (Aurora global databases) only. Use this action only on healthy Aurora global databases with running Aurora DB clusters and no Region-wide outages, to test disaster recovery scenarios or to reconfigure your Aurora global database topology.  </note>

        :param self:
        :param TargetDbClusterIdentifier:  Identifier of the secondary Aurora DB cluster that you want to promote to primary for the Aurora global database (<a>GlobalCluster</a>.) Use the Amazon Resource Name (ARN) for the identifier so that Aurora can locate the cluster in its Amazon Web Services Region. <br/>GlobalClusterIdentifier:  Identifier of the Aurora global database (<a>GlobalCluster</a>) that should be failed over. The identifier is the unique key assigned by the user when the Aurora global database was created. In other words, it's the name of the Aurora global database that you want to fail over.  Constraints: <ul> <li> Must match the identifier of an existing <a>GlobalCluster</a> (Aurora global database). </li> </ul><br/>
        :return: GlobalCluster:  A data type representing an Aurora global database.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FailoverState</i> A data object containing all properties for the current state of an in-process or pending failover process for this Aurora global database. This object is empty unless the <a>FailoverGlobalCluster</a> API operation has been called on this Aurora global database (<a>GlobalCluster</a>). &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>FailoverState</b>: A data object containing all properties for the current state of an in-process or pending failover process for this Aurora global database. This object is empty unless the <a>FailoverGlobalCluster</a> API operation has been called on this Aurora global database (<a>GlobalCluster</a>). <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalClusterMembers</i>  The list of cluster IDs for secondary clusters within the global database cluster. Currently limited to 1 item. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeletionProtection</i>  The deletion protection setting for the new global database cluster. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageEncrypted</i>  The storage encryption setting for the global database cluster. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i>  The default database name within the new global database cluster. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> Indicates the database engine version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i>  The Aurora database engine used by the global database cluster. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Specifies the current state of this global database cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalClusterArn</i> The Amazon Resource Name (ARN) for the global database cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalClusterResourceId</i>  The Amazon Web Services Region-unique, immutable identifier for the global database cluster. This identifier is found in Amazon Web Services CloudTrail log entries whenever the Amazon Web Services KMS customer master key (CMK) for the DB cluster is accessed. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalClusterIdentifier</i>  Contains a user-supplied global database cluster identifier. This identifier is the unique key that identifies a global database cluster. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ToDbClusterArn</i> The Amazon Resource Name (ARN) of the Aurora DB cluster that is currently being promoted, and which is associated with this state.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FromDbClusterArn</i> The Amazon Resource Name (ARN) of the Aurora DB cluster that is currently being demoted, and which is associated with this state. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current status of the Aurora global database (<a>GlobalCluster</a>). Possible values are as follows:  <ul> <li> pending &#x96; A request to fail over the Aurora global database (<a>GlobalCluster</a>) has been received by the service. The <code>GlobalCluster</code>'s primary DB cluster and the specified secondary DB cluster are being verified before the failover process can start. </li> <li> failing-over &#x96; This status covers the range of Aurora internal operations that take place during the failover process, such as demoting the primary Aurora DB cluster, promoting the secondary Aurora DB, and synchronizing replicas.  </li> <li> cancelling &#x96; The request to fail over the Aurora global database (<a>GlobalCluster</a>) was cancelled and the primary Aurora DB cluster and the selected secondary Aurora DB cluster are returning to their previous states.  </li> </ul><br/>        """
        pass

    def import_installation_media(self, OSInstallationMediaPath: str, EngineInstallationMediaPath: str, EngineVersion: str, Engine: str, CustomAvailabilityZoneId: str) -> InstallationMedia:
        r"""Imports the installation media for a DB engine that requires an on-premises customer provided license, such as SQL Server.

        :param self:
        :param OSInstallationMediaPath:  The path to the installation medium for the operating system associated with the specified DB engine. Example: <code>WindowsISO/en_windows_server_2016_x64_dvd_9327751.iso</code> <br/>EngineInstallationMediaPath:  The path to the installation medium for the specified DB engine. Example: <code>SQLServerISO/en_sql_server_2016_enterprise_x64_dvd_8701793.iso</code> <br/>EngineVersion:  The version number of the database engine to use. For a list of valid engine versions, call <a>DescribeDBEngineVersions</a>. The following are the database engines and links to information about the major and minor versions. The list only includes DB engines that require an on-premises customer provided license.  <b>Microsoft SQL Server</b>  See <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_SQLServer.html#SQLServer.Concepts.General.VersionSupport"> Microsoft SQL Server Versions on Amazon RDS</a> in the <i>Amazon RDS User Guide.</i> <br/>Engine:  The name of the database engine to be used for this instance.  The list only includes supported DB engines that require an on-premises customer provided license.  Valid Values:  <ul> <li>  <code>sqlserver-ee</code>  </li> <li>  <code>sqlserver-se</code>  </li> <li>  <code>sqlserver-ex</code>  </li> <li>  <code>sqlserver-web</code>  </li> </ul><br/>CustomAvailabilityZoneId:  The identifier of the custom Availability Zone (AZ) to import the installation media to.<br/>
        :return: FailureCause:  If an installation media failure occurred, the cause of the failure.:<br/>Status:  The status of the installation medium.<br/>OSInstallationMediaPath:  The path to the installation medium for the operating system associated with the DB engine.<br/>EngineInstallationMediaPath:  The path to the installation medium for the DB engine.<br/>EngineVersion:  The engine version of the DB engine.<br/>Engine:  The DB engine.<br/>CustomAvailabilityZoneId:  The custom Availability Zone (AZ) that contains the installation media.<br/>InstallationMediaId:  The installation medium ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> The reason that an installation media import failed.<br/>        """
        pass

    def list_tags_for_resource(self, ResourceName: str, Filters: List[Filter]=None) -> TagListMessage:
        r"""Lists all tags on an Amazon RDS resource. For an overview on tagging an Amazon RDS resource, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.Tagging.html">Tagging Amazon RDS Resources</a> in the <i>Amazon RDS User Guide</i>.

        :param self:
        :param Filters:  This parameter isn't currently supported.<br/>ResourceName:  The Amazon RDS resource with tags to be listed. This value is an Amazon Resource Name (ARN). For information about creating an ARN, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.ARN.html#USER_Tagging.ARN.Constructing"> Constructing an ARN for Amazon RDS</a> in the <i>Amazon RDS User Guide</i>.<br/>
        :return: TagList:  List of tags returned by the ListTagsForResource operation.<br/>        """
        pass

    def modify_certificates(self, CertificateIdentifier: str=None, RemoveCustomerOverride: BooleanOptional=None) -> ModifyCertificatesResult:
        r"""Override the system-default Secure Sockets Layer/Transport Layer Security (SSL/TLS) certificate for Amazon RDS for new DB instances temporarily, or remove the override. By using this operation, you can specify an RDS-approved SSL/TLS certificate for new DB instances that is different from the default certificate provided by RDS. You can also use this operation to remove the override, so that new DB instances use the default certificate provided by RDS. You might need to override the default certificate in the following situations: <ul> <li> You already migrated your applications to support the latest certificate authority (CA) certificate, but the new CA certificate is not yet the RDS default CA certificate for the specified Amazon Web Services Region. </li> <li> RDS has already moved to a new default CA certificate for the specified Amazon Web Services Region, but you are still in the process of supporting the new CA certificate. In this case, you temporarily need additional time to finish your application changes. </li> </ul> For more information about rotating your SSL/TLS certificate for RDS DB engines, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL-certificate-rotation.html"> Rotating Your SSL/TLS Certificate</a> in the <i>Amazon RDS User Guide</i>. For more information about rotating your SSL/TLS certificate for Aurora DB engines, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.SSL-certificate-rotation.html"> Rotating Your SSL/TLS Certificate</a> in the <i>Amazon Aurora User Guide</i>.

        :param self:
        :param RemoveCustomerOverride:  A value that indicates whether to remove the override for the default certificate. If the override is removed, the default certificate is the system default.<br/>CertificateIdentifier:  The new default certificate identifier to override the current one with. To determine the valid values, use the <code>describe-certificates</code> CLI command or the <code>DescribeCertificates</code> API operation.<br/>
        :return: Certificate:  A CA certificate for an Amazon Web Services account.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomerOverrideValidTill</i> If there is an override for the default certificate identifier, when the override expires.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomerOverride</i> Whether there is an override for the default certificate identifier.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CertificateArn</i> The Amazon Resource Name (ARN) for the certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ValidTill</i> The final date that the certificate continues to be valid.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ValidFrom</i> The starting date from which the certificate is valid.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Thumbprint</i> The thumbprint of the certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CertificateType</i> The type of the certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CertificateIdentifier</i> The unique key that identifies a certificate.<br/>        """
        pass

    def modify_current_db_cluster_capacity(self, DBClusterIdentifier: str, Capacity: int=None, SecondsBeforeTimeout: int=None, TimeoutAction: str=None) -> DBClusterCapacityInfo:
        r"""Set the capacity of an Aurora Serverless DB cluster to a specific value. Aurora Serverless scales seamlessly based on the workload on the DB cluster. In some cases, the capacity might not scale fast enough to meet a sudden change in workload, such as a large number of new transactions. Call <code>ModifyCurrentDBClusterCapacity</code> to set the capacity explicitly. After this call sets the DB cluster capacity, Aurora Serverless can automatically scale the DB cluster based on the cooldown period for scaling up and the cooldown period for scaling down. For more information about Aurora Serverless, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html">Using Amazon Aurora Serverless</a> in the <i>Amazon Aurora User Guide</i>. <important> If you call <code>ModifyCurrentDBClusterCapacity</code> with the default <code>TimeoutAction</code>, connections that prevent Aurora Serverless from finding a scaling point might be dropped. For more information about scaling points, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.how-it-works.html#aurora-serverless.how-it-works.auto-scaling"> Autoscaling for Aurora Serverless</a> in the <i>Amazon Aurora User Guide</i>. </important> <note> This action only applies to Aurora DB clusters. </note>

        :param self:
        :param TimeoutAction:  The action to take when the timeout is reached, either <code>ForceApplyCapacityChange</code> or <code>RollbackCapacityChange</code>.  <code>ForceApplyCapacityChange</code>, the default, sets the capacity to the specified value as soon as possible.  <code>RollbackCapacityChange</code> ignores the capacity change if a scaling point isn't found in the timeout period.<br/>SecondsBeforeTimeout:  The amount of time, in seconds, that Aurora Serverless tries to find a scaling point to perform seamless scaling before enforcing the timeout action. The default is 300. <ul> <li> Value must be from 10 through 600. </li> </ul><br/>Capacity:  The DB cluster capacity. When you change the capacity of a paused Aurora Serverless DB cluster, it automatically resumes. Constraints: <ul> <li> For Aurora MySQL, valid capacity values are <code>1</code>, <code>2</code>, <code>4</code>, <code>8</code>, <code>16</code>, <code>32</code>, <code>64</code>, <code>128</code>, and <code>256</code>. </li> <li> For Aurora PostgreSQL, valid capacity values are <code>2</code>, <code>4</code>, <code>8</code>, <code>16</code>, <code>32</code>, <code>64</code>, <code>192</code>, and <code>384</code>. </li> </ul><br/>DBClusterIdentifier:  The DB cluster identifier for the cluster being modified. This parameter isn't case-sensitive. Constraints: <ul> <li> Must match the identifier of an existing DB cluster. </li> </ul><br/>
        :return: TimeoutAction:  The timeout action of a call to <code>ModifyCurrentDBClusterCapacity</code>, either <code>ForceApplyCapacityChange</code> or <code>RollbackCapacityChange</code>.<br/>SecondsBeforeTimeout:  The number of seconds before a call to <code>ModifyCurrentDBClusterCapacity</code> times out.<br/>CurrentCapacity:  The current capacity of the DB cluster.<br/>PendingCapacity:  A value that specifies the capacity that the DB cluster scales to next.<br/>DBClusterIdentifier:  A user-supplied DB cluster identifier. This identifier is the unique key that identifies a DB cluster. <br/>        """
        pass

    def modify_db_cluster(self, DBClusterIdentifier: str, NewDBClusterIdentifier: str=None, ApplyImmediately: Boolean=None, BackupRetentionPeriod: int=None, DBClusterParameterGroupName: str=None, VpcSecurityGroupIds: List[String]=None, Port: int=None, MasterUserPassword: str=None, OptionGroupName: str=None, PreferredBackupWindow: str=None, PreferredMaintenanceWindow: str=None, EnableIAMDatabaseAuthentication: BooleanOptional=None, BacktrackWindow: LongOptional=None, CloudwatchLogsExportConfiguration: CloudwatchLogsExportConfiguration=None, EngineVersion: str=None, AllowMajorVersionUpgrade: Boolean=None, DBInstanceParameterGroupName: str=None, Domain: str=None, DomainIAMRoleName: str=None, ScalingConfiguration: ScalingConfiguration=None, DeletionProtection: BooleanOptional=None, EnableHttpEndpoint: BooleanOptional=None, CopyTagsToSnapshot: BooleanOptional=None, EnableGlobalWriteForwarding: BooleanOptional=None) -> ModifyDBClusterResult:
        r"""Modify a setting for an Amazon Aurora DB cluster. You can change one or more database configuration parameters by specifying these parameters and the new values in the request. For more information on Amazon Aurora, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html"> What Is Amazon Aurora?</a> in the <i>Amazon Aurora User Guide.</i>  <note> This action only applies to Aurora DB clusters. </note>

        :param self:
        :param EnableGlobalWriteForwarding:  A value that indicates whether to enable this DB cluster to forward write operations to the primary cluster of an Aurora global database (<a>GlobalCluster</a>). By default, write operations are not allowed on Aurora DB clusters that are secondary clusters in an Aurora global database. You can set this value only on Aurora DB clusters that are members of an Aurora global database. With this parameter enabled, a secondary cluster can forward writes to the current primary cluster and the resulting changes are replicated back to this cluster. For the primary DB cluster of an Aurora global database, this value is used immediately if the primary is demoted by the <a>FailoverGlobalCluster</a> API operation, but it does nothing until then. <br/>CopyTagsToSnapshot:  A value that indicates whether to copy all tags from the DB cluster to snapshots of the DB cluster. The default is not to copy them.<br/>EnableHttpEndpoint:  A value that indicates whether to enable the HTTP endpoint for an Aurora Serverless DB cluster. By default, the HTTP endpoint is disabled. When enabled, the HTTP endpoint provides a connectionless web service API for running SQL queries on the Aurora Serverless DB cluster. You can also query your database from inside the RDS console with the query editor. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/data-api.html">Using the Data API for Aurora Serverless</a> in the <i>Amazon Aurora User Guide</i>.<br/>DeletionProtection:  A value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled. <br/>ScalingConfiguration:  The scaling properties of the DB cluster. You can only modify scaling properties for DB clusters in <code>serverless</code> DB engine mode.:<br/>DomainIAMRoleName:  Specify the name of the IAM role to be used when making API calls to the Directory Service.<br/>Domain:  The Active Directory directory ID to move the DB cluster to. Specify <code>none</code> to remove the cluster from its current domain. The domain must be created prior to this operation.  For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/kerberos-authentication.html">Kerberos Authentication</a> in the <i>Amazon Aurora User Guide</i>. <br/>DBInstanceParameterGroupName:  The name of the DB parameter group to apply to all instances of the DB cluster.  <note> When you apply a parameter group using the <code>DBInstanceParameterGroupName</code> parameter, the DB cluster isn't rebooted automatically. Also, parameter changes aren't applied during the next maintenance window but instead are applied immediately. </note> Default: The existing name setting Constraints: <ul> <li> The DB parameter group must be in the same DB parameter group family as this DB cluster. </li> <li> The <code>DBInstanceParameterGroupName</code> parameter is only valid in combination with the <code>AllowMajorVersionUpgrade</code> parameter. </li> </ul><br/>AllowMajorVersionUpgrade:  A value that indicates whether major version upgrades are allowed. Constraints: You must allow major version upgrades when specifying a value for the <code>EngineVersion</code> parameter that is a different major version than the DB cluster's current version.<br/>EngineVersion:  The version number of the database engine to which you want to upgrade. Changing this parameter results in an outage. The change is applied during the next maintenance window unless <code>ApplyImmediately</code> is enabled. To list all of the available engine versions for <code>aurora</code> (for MySQL 5.6-compatible Aurora), use the following command:  <code>aws rds describe-db-engine-versions --engine aurora --query "DBEngineVersions[].EngineVersion"</code>  To list all of the available engine versions for <code>aurora-mysql</code> (for MySQL 5.7-compatible Aurora), use the following command:  <code>aws rds describe-db-engine-versions --engine aurora-mysql --query "DBEngineVersions[].EngineVersion"</code>  To list all of the available engine versions for <code>aurora-postgresql</code>, use the following command:  <code>aws rds describe-db-engine-versions --engine aurora-postgresql --query "DBEngineVersions[].EngineVersion"</code> <br/>CloudwatchLogsExportConfiguration:  The configuration setting for the log types to be enabled for export to CloudWatch Logs for a specific DB cluster.:<br/>BacktrackWindow:  The target backtrack window, in seconds. To disable backtracking, set this value to 0. <note> Currently, Backtrack is only supported for Aurora MySQL DB clusters. </note> Default: 0 Constraints: <ul> <li> If specified, this value must be set to a number from 0 to 259,200 (72 hours). </li> </ul><br/>EnableIAMDatabaseAuthentication:  A value that indicates whether to enable mapping of Amazon Web Services Identity and Access Management (IAM) accounts to database accounts. By default, mapping is disabled. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.IAMDBAuth.html"> IAM Database Authentication</a> in the <i>Amazon Aurora User Guide.</i> <br/>PreferredMaintenanceWindow:  The weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC). Format: <code>ddd:hh24:mi-ddd:hh24:mi</code>  The default is a 30-minute window selected at random from an 8-hour block of time for each Amazon Web Services Region, occurring on a random day of the week. To see the time blocks available, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_UpgradeDBInstance.Maintenance.html#AdjustingTheMaintenanceWindow.Aurora"> Adjusting the Preferred DB Cluster Maintenance Window</a> in the <i>Amazon Aurora User Guide.</i>  Valid Days: Mon, Tue, Wed, Thu, Fri, Sat, Sun. Constraints: Minimum 30-minute window.<br/>PreferredBackupWindow:  The daily time range during which automated backups are created if automated backups are enabled, using the <code>BackupRetentionPeriod</code> parameter.  The default is a 30-minute window selected at random from an 8-hour block of time for each Amazon Web Services Region. To view the time blocks available, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Managing.Backups.html#Aurora.Managing.Backups.BackupWindow"> Backup window</a> in the <i>Amazon Aurora User Guide.</i>  Constraints: <ul> <li> Must be in the format <code>hh24:mi-hh24:mi</code>. </li> <li> Must be in Universal Coordinated Time (UTC). </li> <li> Must not conflict with the preferred maintenance window. </li> <li> Must be at least 30 minutes. </li> </ul><br/>OptionGroupName:  A value that indicates that the DB cluster should be associated with the specified option group. Changing this parameter doesn't result in an outage except in the following case, and the change is applied during the next maintenance window unless the <code>ApplyImmediately</code> is enabled for this request. If the parameter change results in an option group that enables OEM, this change can cause a brief (sub-second) period during which new connections are rejected but existing connections are not interrupted.  Permanent options can't be removed from an option group. The option group can't be removed from a DB cluster once it is associated with a DB cluster.<br/>MasterUserPassword:  The new password for the master database user. This password can contain any printable ASCII character except "/", triple-quotes, or "@". Constraints: Must contain from 8 to 41 characters.<br/>Port:  The port number on which the DB cluster accepts connections. Constraints: Value must be <code>1150-65535</code>  Default: The same port as the original DB cluster.<br/>VpcSecurityGroupIds:  A list of VPC security groups that the DB cluster will belong to.<br/>DBClusterParameterGroupName:  The name of the DB cluster parameter group to use for the DB cluster.<br/>BackupRetentionPeriod:  The number of days for which automated backups are retained. You must specify a minimum value of 1. Default: 1 Constraints: <ul> <li> Must be a value from 1 to 35 </li> </ul><br/>ApplyImmediately:  A value that indicates whether the modifications in this request and any pending modifications are asynchronously applied as soon as possible, regardless of the <code>PreferredMaintenanceWindow</code> setting for the DB cluster. If this parameter is disabled, changes to the DB cluster are applied during the next maintenance window. The <code>ApplyImmediately</code> parameter only affects the <code>EnableIAMDatabaseAuthentication</code>, <code>MasterUserPassword</code>, and <code>NewDBClusterIdentifier</code> values. If the <code>ApplyImmediately</code> parameter is disabled, then changes to the <code>EnableIAMDatabaseAuthentication</code>, <code>MasterUserPassword</code>, and <code>NewDBClusterIdentifier</code> values are applied during the next maintenance window. All other changes are applied immediately, regardless of the value of the <code>ApplyImmediately</code> parameter. By default, this parameter is disabled.<br/>NewDBClusterIdentifier:  The new DB cluster identifier for the DB cluster when renaming a DB cluster. This value is stored as a lowercase string. Constraints: <ul> <li> Must contain from 1 to 63 letters, numbers, or hyphens </li> <li> The first character must be a letter </li> <li> Can't end with a hyphen or contain two consecutive hyphens </li> </ul> Example: <code>my-cluster2</code> <br/>DBClusterIdentifier:  The DB cluster identifier for the cluster being modified. This parameter isn't case-sensitive. Constraints: This identifier must match the identifier of an existing DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DisableLogTypes</i> The list of log types to disable.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableLogTypes</i> The list of log types to enable.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TimeoutAction</i> The action to take when the timeout is reached, either <code>ForceApplyCapacityChange</code> or <code>RollbackCapacityChange</code>.  <code>ForceApplyCapacityChange</code> sets the capacity to the specified value as soon as possible.  <code>RollbackCapacityChange</code>, the default, ignores the capacity change if a scaling point isn't found in the timeout period. <important> If you specify <code>ForceApplyCapacityChange</code>, connections that prevent Aurora Serverless from finding a scaling point might be dropped. </important> For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.how-it-works.html#aurora-serverless.how-it-works.auto-scaling"> Autoscaling for Aurora Serverless</a> in the <i>Amazon Aurora User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecondsUntilAutoPause</i> The time, in seconds, before an Aurora DB cluster in <code>serverless</code> mode is paused. Specify a value between 300 and 86,400 seconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoPause</i> A value that indicates whether to allow or disallow automatic pause for an Aurora DB cluster in <code>serverless</code> DB engine mode. A DB cluster can be paused only when it's idle (it has no connections). <note> If a DB cluster is paused for more than seven days, the DB cluster might be backed up with a snapshot. In this case, the DB cluster is restored when there is a request to connect to it.  </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxCapacity</i> The maximum capacity for an Aurora DB cluster in <code>serverless</code> DB engine mode. For Aurora MySQL, valid capacity values are <code>1</code>, <code>2</code>, <code>4</code>, <code>8</code>, <code>16</code>, <code>32</code>, <code>64</code>, <code>128</code>, and <code>256</code>. For Aurora PostgreSQL, valid capacity values are <code>2</code>, <code>4</code>, <code>8</code>, <code>16</code>, <code>32</code>, <code>64</code>, <code>192</code>, and <code>384</code>. The maximum capacity must be greater than or equal to the minimum capacity.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MinCapacity</i> The minimum capacity for an Aurora DB cluster in <code>serverless</code> DB engine mode. For Aurora MySQL, valid capacity values are <code>1</code>, <code>2</code>, <code>4</code>, <code>8</code>, <code>16</code>, <code>32</code>, <code>64</code>, <code>128</code>, and <code>256</code>. For Aurora PostgreSQL, valid capacity values are <code>2</code>, <code>4</code>, <code>8</code>, <code>16</code>, <code>32</code>, <code>64</code>, <code>192</code>, and <code>384</code>. The minimum capacity must be less than or equal to the maximum capacity.<br/>
        :return: DBCluster:  Contains the details of an Amazon Aurora DB cluster.  This data type is used as a response element in the <code>DescribeDBClusters</code>, <code>StopDBCluster</code>, and <code>StartDBCluster</code> actions. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingModifiedValues</i> A value that specifies that changes to the DB cluster are pending. This element is only included when changes are pending. Specific changes are identified by subelements.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingModifiedValues</b>: A value that specifies that changes to the DB cluster are pending. This element is only included when changes are pending. Specific changes are identified by subelements.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalWriteForwardingRequested</i> Specifies whether you have requested to enable write forwarding for a secondary cluster in an Aurora global database. Because write forwarding takes time to enable, check the value of <code>GlobalWriteForwardingStatus</code> to confirm that the request has completed before using the write forwarding feature for this cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalWriteForwardingStatus</i> Specifies whether a secondary cluster in an Aurora global database has write forwarding enabled, not enabled, or is in the process of enabling it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TagList</i> A list of tags. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html">Tagging Amazon RDS Resources</a> in the <i>Amazon RDS User Guide.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainMemberships</i> The Active Directory Domain membership records associated with the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CrossAccountClone</i> Specifies whether the DB cluster is a clone of a DB cluster owned by a different Amazon Web Services account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CopyTagsToSnapshot</i> Specifies whether tags are copied from the DB cluster to snapshots of the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamKinesisStreamName</i> The name of the Amazon Kinesis data stream used for the database activity stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamKmsKeyId</i> The Amazon Web Services KMS key identifier used for encrypting messages in the database activity stream. The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the Amazon Web Services KMS customer master key (CMK).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamStatus</i> The status of the database activity stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamMode</i> The mode of the database activity stream. Database events such as a change or access generate an activity stream event. The database session can handle these events either synchronously or asynchronously. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HttpEndpointEnabled</i> A value that indicates whether the HTTP endpoint for an Aurora Serverless DB cluster is enabled. When enabled, the HTTP endpoint provides a connectionless web service API for running SQL queries on the Aurora Serverless DB cluster. You can also query your database from inside the RDS console with the query editor. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/data-api.html">Using the Data API for Aurora Serverless</a> in the <i>Amazon Aurora User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeletionProtection</i> Indicates if the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ScalingConfigurationInfo</i> Shows the scaling configuration for an Aurora DB cluster in <code>serverless</code> DB engine mode. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html">Using Amazon Aurora Serverless</a> in the <i>Amazon Aurora User Guide</i>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ScalingConfigurationInfo</b>: Shows the scaling configuration for an Aurora DB cluster in <code>serverless</code> DB engine mode. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html">Using Amazon Aurora Serverless</a> in the <i>Amazon Aurora User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineMode</i> The DB engine mode of the DB cluster, either <code>provisioned</code>, <code>serverless</code>, <code>parallelquery</code>, <code>global</code>, or <code>multimaster</code>. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBCluster.html"> CreateDBCluster</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Capacity</i> The current capacity of an Aurora Serverless DB cluster. The capacity is 0 (zero) when the cluster is paused. For more information about Aurora Serverless, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html">Using Amazon Aurora Serverless</a> in the <i>Amazon Aurora User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnabledCloudwatchLogsExports</i> A list of log types that this DB cluster is configured to export to CloudWatch Logs. Log types vary by DB engine. For information about the log types for each DB engine, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_LogAccess.html">Amazon RDS Database Log Files</a> in the <i>Amazon Aurora User Guide.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BacktrackConsumedChangeRecords</i> The number of change records stored for Backtrack.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BacktrackWindow</i> The target backtrack window, in seconds. If this value is set to 0, backtracking is disabled for the DB cluster. Otherwise, backtracking is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EarliestBacktrackTime</i> The earliest time to which a DB cluster can be backtracked.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterCreateTime</i> Specifies the time when the DB cluster was created, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloneGroupId</i> Identifies the clone group to which the DB cluster is associated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IAMDatabaseAuthenticationEnabled</i> A value that indicates whether the mapping of Amazon Web Services Identity and Access Management (IAM) accounts to database accounts is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociatedRoles</i> Provides a list of the Amazon Web Services Identity and Access Management (IAM) roles that are associated with the DB cluster. IAM roles that are associated with a DB cluster grant permission for the DB cluster to access other Amazon Web Services on your behalf.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterArn</i> The Amazon Resource Name (ARN) for the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DbClusterResourceId</i> The Amazon Web Services Region-unique, immutable identifier for the DB cluster. This identifier is found in Amazon Web Services CloudTrail log entries whenever the Amazon Web Services KMS CMK for the DB cluster is accessed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> If <code>StorageEncrypted</code> is enabled, the Amazon Web Services KMS key identifier for the encrypted DB cluster. The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the Amazon Web Services KMS customer master key (CMK).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageEncrypted</i> Specifies whether the DB cluster is encrypted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HostedZoneId</i> Specifies the ID that Amazon Route 53 assigns when you create a hosted zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcSecurityGroups</i> Provides a list of VPC security groups that the DB cluster belongs to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterMembers</i> Provides the list of instances that make up the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadReplicaIdentifiers</i> Contains one or more identifiers of the read replicas associated with this DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationSourceIdentifier</i> Contains the identifier of the source DB cluster if this DB cluster is a read replica.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i> Specifies the weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredBackupWindow</i> Specifies the daily time range during which automated backups are created if automated backups are enabled, as determined by the <code>BackupRetentionPeriod</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterOptionGroupMemberships</i> Provides the list of option group memberships for this DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUsername</i> Contains the master username for the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Specifies the port that the database engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestRestorableTime</i> Specifies the latest time to which a database can be restored with point-in-time restore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> Indicates the database engine version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> The name of the database engine to be used for this DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiAZ</i> Specifies whether the DB cluster has instances in multiple Availability Zones.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomEndpoints</i> Identifies all custom endpoints associated with the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReaderEndpoint</i> The reader endpoint for the DB cluster. The reader endpoint for a DB cluster load-balances connections across the Aurora Replicas that are available in a DB cluster. As clients request new connections to the reader endpoint, Aurora distributes the connection requests among the Aurora Replicas in the DB cluster. This functionality can help balance your read workload across multiple Aurora Replicas in your DB cluster.  If a failover occurs, and the Aurora Replica that you are connected to is promoted to be the primary instance, your connection is dropped. To continue sending your read workload to other Aurora Replicas in the cluster, you can then reconnect to the reader endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i> Specifies the connection endpoint for the primary instance of the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EarliestRestorableTime</i> The earliest time to which a database can be restored with point-in-time restore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PercentProgress</i> Specifies the progress of the operation as a percentage.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Specifies the current state of this DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroup</i> Specifies information on the subnet group associated with the DB cluster, including the name, description, and subnets in the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterParameterGroup</i> Specifies the name of the DB cluster parameter group for the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterIdentifier</i> Contains a user-supplied DB cluster identifier. This identifier is the unique key that identifies a DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> Contains the name of the initial database of this DB cluster that was provided at create time, if one was specified when the DB cluster was created. This same name is returned for the life of the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CharacterSetName</i> If present, specifies the name of the character set that this cluster is associated with.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupRetentionPeriod</i> Specifies the number of days for which automatic DB snapshots are retained.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZones</i> Provides the list of Availability Zones (AZs) where instances in the DB cluster can be created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllocatedStorage</i> For all database engines except Amazon Aurora, <code>AllocatedStorage</code> specifies the allocated storage size in gibibytes (GiB). For Aurora, <code>AllocatedStorage</code> always returns 1, because Aurora DB cluster storage size isn't fixed, but instead automatically adjusts as needed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TimeoutAction</i> The timeout action of a call to <code>ModifyCurrentDBClusterCapacity</code>, either <code>ForceApplyCapacityChange</code> or <code>RollbackCapacityChange</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecondsUntilAutoPause</i> The remaining amount of time, in seconds, before the Aurora DB cluster in <code>serverless</code> mode is paused. A DB cluster can be paused only when it's idle (it has no connections).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoPause</i> A value that indicates whether automatic pause is allowed for the Aurora DB cluster in <code>serverless</code> DB engine mode. When the value is set to false for an Aurora Serverless DB cluster, the DB cluster automatically resumes.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxCapacity</i> The maximum capacity for an Aurora DB cluster in <code>serverless</code> DB engine mode.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MinCapacity</i> The maximum capacity for the Aurora DB cluster in <code>serverless</code> DB engine mode.<br/>A list of the log types whose configuration is still pending. In other words, these log types are in the process of being activated or deactivated.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingCloudwatchLogsExports</b>: A list of the log types whose configuration is still pending. In other words, these log types are in the process of being activated or deactivated.        """
        pass

    def modify_db_cluster_endpoint(self, DBClusterEndpointIdentifier: str, EndpointType: str=None, StaticMembers: List[String]=None, ExcludedMembers: List[String]=None) -> DBClusterEndpoint:
        r"""Modifies the properties of an endpoint in an Amazon Aurora DB cluster. <note> This action only applies to Aurora DB clusters. </note>

        :param self:
        :param ExcludedMembers:  List of DB instance identifiers that aren't part of the custom endpoint group. All other eligible instances are reachable through the custom endpoint. Only relevant if the list of static members is empty.<br/>StaticMembers:  List of DB instance identifiers that are part of the custom endpoint group.<br/>EndpointType:  The type of the endpoint. One of: <code>READER</code>, <code>WRITER</code>, <code>ANY</code>.<br/>DBClusterEndpointIdentifier:  The identifier of the endpoint to modify. This parameter is stored as a lowercase string.<br/>
        :return: DBClusterEndpointArn:  The Amazon Resource Name (ARN) for the endpoint.<br/>ExcludedMembers:  List of DB instance identifiers that aren't part of the custom endpoint group. All other eligible instances are reachable through the custom endpoint. Only relevant if the list of static members is empty.<br/>StaticMembers:  List of DB instance identifiers that are part of the custom endpoint group.<br/>CustomEndpointType:  The type associated with a custom endpoint. One of: <code>READER</code>, <code>WRITER</code>, <code>ANY</code>.<br/>EndpointType:  The type of the endpoint. One of: <code>READER</code>, <code>WRITER</code>, <code>CUSTOM</code>.<br/>Status:  The current status of the endpoint. One of: <code>creating</code>, <code>available</code>, <code>deleting</code>, <code>inactive</code>, <code>modifying</code>. The <code>inactive</code> state applies to an endpoint that can't be used for a certain kind of cluster, such as a <code>writer</code> endpoint for a read-only secondary cluster in a global database.<br/>Endpoint:  The DNS address of the endpoint.<br/>DBClusterEndpointResourceIdentifier:  A unique system-generated identifier for an endpoint. It remains the same for the whole life of the endpoint.<br/>DBClusterIdentifier:  The DB cluster identifier of the DB cluster associated with the endpoint. This parameter is stored as a lowercase string.<br/>DBClusterEndpointIdentifier:  The identifier associated with the endpoint. This parameter is stored as a lowercase string.<br/>        """
        pass

    def modify_db_cluster_parameter_group(self, Parameters: List[Parameter], DBClusterParameterGroupName: str) -> DBClusterParameterGroupNameMessage:
        r""" Modifies the parameters of a DB cluster parameter group. To modify more than one parameter, submit a list of the following: <code>ParameterName</code>, <code>ParameterValue</code>, and <code>ApplyMethod</code>. A maximum of 20 parameters can be modified in a single request.  For more information on Amazon Aurora, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html"> What Is Amazon Aurora?</a> in the <i>Amazon Aurora User Guide.</i>  <important> After you create a DB cluster parameter group, you should wait at least 5 minutes before creating your first DB cluster that uses that DB cluster parameter group as the default parameter group. This allows Amazon RDS to fully complete the create action before the parameter group is used as the default for a new DB cluster. This is especially important for parameters that are critical when creating the default database for a DB cluster, such as the character set for the default database defined by the <code>character_set_database</code> parameter. You can use the <i>Parameter Groups</i> option of the <a href="https://console.aws.amazon.com/rds/">Amazon RDS console</a> or the <code>DescribeDBClusterParameters</code> action to verify that your DB cluster parameter group has been created or modified. If the modified DB cluster parameter group is used by an Aurora Serverless cluster, Aurora applies the update immediately. The cluster restart might interrupt your workload. In that case, your application must reopen any connections and retry any transactions that were active when the parameter changes took effect. </important> <note> This action only applies to Aurora DB clusters. </note>

        :param self:
        :param Parameters:  A list of parameters in the DB cluster parameter group to modify. Valid Values (for the application method): <code>immediate | pending-reboot</code>  <note> You can use the <code>immediate</code> value with dynamic parameters only. You can use the <code>pending-reboot</code> value for both dynamic and static parameters. When the application method is <code>immediate</code>, changes to dynamic parameters are applied immediately to the DB clusters associated with the parameter group. When the application method is <code>pending-reboot</code>, changes to dynamic and static parameters are applied after a reboot without failover to the DB clusters associated with the parameter group. </note><br/>DBClusterParameterGroupName:  The name of the DB cluster parameter group to modify.<br/>
        :return: DBClusterParameterGroupName:  The name of the DB cluster parameter group. Constraints: <ul> <li> Must be 1 to 255 letters or numbers. </li> <li> First character must be a letter </li> <li> Can't end with a hyphen or contain two consecutive hyphens </li> </ul> <note> This value is stored as a lowercase string. </note><br/>        """
        pass

    def modify_db_cluster_snapshot_attribute(self, AttributeName: str, DBClusterSnapshotIdentifier: str, ValuesToAdd: List[String]=None, ValuesToRemove: List[String]=None) -> ModifyDBClusterSnapshotAttributeResult:
        r"""Adds an attribute and values to, or removes an attribute and values from, a manual DB cluster snapshot. To share a manual DB cluster snapshot with other Amazon Web Services accounts, specify <code>restore</code> as the <code>AttributeName</code> and use the <code>ValuesToAdd</code> parameter to add a list of IDs of the Amazon Web Services accounts that are authorized to restore the manual DB cluster snapshot. Use the value <code>all</code> to make the manual DB cluster snapshot public, which means that it can be copied or restored by all Amazon Web Services accounts. <note> Don't add the <code>all</code> value for any manual DB cluster snapshots that contain private information that you don't want available to all Amazon Web Services accounts. </note> If a manual DB cluster snapshot is encrypted, it can be shared, but only by specifying a list of authorized Amazon Web Services account IDs for the <code>ValuesToAdd</code> parameter. You can't use <code>all</code> as a value for that parameter in this case. To view which Amazon Web Services accounts have access to copy or restore a manual DB cluster snapshot, or whether a manual DB cluster snapshot is public or private, use the <a>DescribeDBClusterSnapshotAttributes</a> API action. The accounts are returned as values for the <code>restore</code> attribute. <note> This action only applies to Aurora DB clusters. </note>

        :param self:
        :param ValuesToRemove:  A list of DB cluster snapshot attributes to remove from the attribute specified by <code>AttributeName</code>. To remove authorization for other Amazon Web Services accounts to copy or restore a manual DB cluster snapshot, set this list to include one or more Amazon Web Services account identifiers, or <code>all</code> to remove authorization for any Amazon Web Services account to copy or restore the DB cluster snapshot. If you specify <code>all</code>, an Amazon Web Services account whose account ID is explicitly added to the <code>restore</code> attribute can still copy or restore a manual DB cluster snapshot.<br/>ValuesToAdd:  A list of DB cluster snapshot attributes to add to the attribute specified by <code>AttributeName</code>. To authorize other Amazon Web Services accounts to copy or restore a manual DB cluster snapshot, set this list to include one or more Amazon Web Services account IDs, or <code>all</code> to make the manual DB cluster snapshot restorable by any Amazon Web Services account. Do not add the <code>all</code> value for any manual DB cluster snapshots that contain private information that you don't want available to all Amazon Web Services accounts.<br/>AttributeName:  The name of the DB cluster snapshot attribute to modify. To manage authorization for other Amazon Web Services accounts to copy or restore a manual DB cluster snapshot, set this value to <code>restore</code>. <note> To view the list of attributes available to modify, use the <a>DescribeDBClusterSnapshotAttributes</a> API action. </note><br/>DBClusterSnapshotIdentifier:  The identifier for the DB cluster snapshot to modify the attributes for.<br/>
        :return: DBClusterSnapshotAttributesResult:  Contains the results of a successful call to the <code>DescribeDBClusterSnapshotAttributes</code> API action. Manual DB cluster snapshot attributes are used to authorize other Amazon Web Services accounts to copy or restore a manual DB cluster snapshot. For more information, see the <code>ModifyDBClusterSnapshotAttribute</code> API action.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterSnapshotAttributes</i> The list of attributes and values for the manual DB cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterSnapshotIdentifier</i> The identifier of the manual DB cluster snapshot that the attributes apply to.<br/>        """
        pass

    def modify_db_instance(self, DBInstanceIdentifier: str, AllocatedStorage: int=None, DBInstanceClass: str=None, DBSubnetGroupName: str=None, DBSecurityGroups: List[String]=None, VpcSecurityGroupIds: List[String]=None, ApplyImmediately: Boolean=None, MasterUserPassword: str=None, DBParameterGroupName: str=None, BackupRetentionPeriod: int=None, PreferredBackupWindow: str=None, PreferredMaintenanceWindow: str=None, MultiAZ: BooleanOptional=None, EngineVersion: str=None, AllowMajorVersionUpgrade: Boolean=None, AutoMinorVersionUpgrade: BooleanOptional=None, LicenseModel: str=None, Iops: int=None, OptionGroupName: str=None, NewDBInstanceIdentifier: str=None, StorageType: str=None, TdeCredentialArn: str=None, TdeCredentialPassword: str=None, CACertificateIdentifier: str=None, Domain: str=None, CopyTagsToSnapshot: BooleanOptional=None, MonitoringInterval: int=None, DBPortNumber: int=None, PubliclyAccessible: BooleanOptional=None, MonitoringRoleArn: str=None, DomainIAMRoleName: str=None, PromotionTier: int=None, EnableIAMDatabaseAuthentication: BooleanOptional=None, EnablePerformanceInsights: BooleanOptional=None, PerformanceInsightsKMSKeyId: str=None, PerformanceInsightsRetentionPeriod: int=None, CloudwatchLogsExportConfiguration: CloudwatchLogsExportConfiguration=None, ProcessorFeatures: List[ProcessorFeature]=None, UseDefaultProcessorFeatures: BooleanOptional=None, DeletionProtection: BooleanOptional=None, MaxAllocatedStorage: int=None, CertificateRotationRestart: BooleanOptional=None, ReplicaMode: str=None, EnableCustomerOwnedIp: BooleanOptional=None, AwsBackupRecoveryPointArn: str=None) -> ModifyDBInstanceResult:
        r"""Modifies settings for a DB instance. You can change one or more database configuration parameters by specifying these parameters and the new values in the request. To learn what modifications you can make to your DB instance, call <code>DescribeValidDBInstanceModifications</code> before you call <code>ModifyDBInstance</code>. 

        :param self:
        :param AwsBackupRecoveryPointArn:  The Amazon Resource Name (ARN) of the recovery point in Amazon Web Services Backup.<br/>EnableCustomerOwnedIp:  A value that indicates whether to enable a customer-owned IP address (CoIP) for an RDS on Outposts DB instance. A <i>CoIP</i> provides local or external connectivity to resources in your Outpost subnets through your on-premises network. For some use cases, a CoIP can provide lower latency for connections to the DB instance from outside of its virtual private cloud (VPC) on your local network. For more information about RDS on Outposts, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-on-outposts.html">Working with Amazon RDS on Amazon Web Services Outposts</a> in the <i>Amazon RDS User Guide</i>. For more information about CoIPs, see <a href="https://docs.aws.amazon.com/outposts/latest/userguide/outposts-networking-components.html#ip-addressing">Customer-owned IP addresses</a> in the <i>Amazon Web Services Outposts User Guide</i>.<br/>ReplicaMode:  A value that sets the open mode of a replica database to either mounted or read-only. <note> Currently, this parameter is only supported for Oracle DB instances. </note> Mounted DB replicas are included in Oracle Enterprise Edition. The main use case for mounted replicas is cross-Region disaster recovery. The primary database doesn't use Active Data Guard to transmit information to the mounted replica. Because it doesn't accept user connections, a mounted replica can't serve a read-only workload. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/oracle-read-replicas.html">Working with Oracle Read Replicas for Amazon RDS</a> in the <i>Amazon RDS User Guide</i>.<br/>CertificateRotationRestart:  A value that indicates whether the DB instance is restarted when you rotate your SSL/TLS certificate. By default, the DB instance is restarted when you rotate your SSL/TLS certificate. The certificate is not updated until the DB instance is restarted. <important> Set this parameter only if you are <i>not</i> using SSL/TLS to connect to the DB instance. </important> If you are using SSL/TLS to connect to the DB instance, follow the appropriate instructions for your DB engine to rotate your SSL/TLS certificate: <ul> <li> For more information about rotating your SSL/TLS certificate for RDS DB engines, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL-certificate-rotation.html"> Rotating Your SSL/TLS Certificate.</a> in the <i>Amazon RDS User Guide.</i>  </li> <li> For more information about rotating your SSL/TLS certificate for Aurora DB engines, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.SSL-certificate-rotation.html"> Rotating Your SSL/TLS Certificate</a> in the <i>Amazon Aurora User Guide.</i>  </li> </ul><br/>MaxAllocatedStorage:  The upper limit to which Amazon RDS can automatically scale the storage of the DB instance. For more information about this setting, including limitations that apply to it, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PIOPS.StorageTypes.html#USER_PIOPS.Autoscaling"> Managing capacity automatically with Amazon RDS storage autoscaling</a> in the <i>Amazon RDS User Guide</i>.<br/>DeletionProtection:  A value that indicates whether the DB instance has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_DeleteInstance.html"> Deleting a DB Instance</a>. <br/>UseDefaultProcessorFeatures:  A value that indicates whether the DB instance class of the DB instance uses its default processor features.<br/>ProcessorFeatures:  The number of CPU cores and the number of threads per core for the DB instance class of the DB instance.<br/>CloudwatchLogsExportConfiguration:  The configuration setting for the log types to be enabled for export to CloudWatch Logs for a specific DB instance. A change to the <code>CloudwatchLogsExportConfiguration</code> parameter is always applied to the DB instance immediately. Therefore, the <code>ApplyImmediately</code> parameter has no effect.:<br/>PerformanceInsightsRetentionPeriod:  The amount of time, in days, to retain Performance Insights data. Valid values are 7 or 731 (2 years). <br/>PerformanceInsightsKMSKeyId:  The Amazon Web Services KMS key identifier for encryption of Performance Insights data. The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the Amazon Web Services KMS customer master key (CMK). If you do not specify a value for <code>PerformanceInsightsKMSKeyId</code>, then Amazon RDS uses your default CMK. There is a default CMK for your Amazon Web Services account. Your Amazon Web Services account has a different default CMK for each Amazon Web Services Region.<br/>EnablePerformanceInsights:  A value that indicates whether to enable Performance Insights for the DB instance. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html">Using Amazon Performance Insights</a> in the <i>Amazon Relational Database Service User Guide</i>. <br/>EnableIAMDatabaseAuthentication:  A value that indicates whether to enable mapping of Amazon Web Services Identity and Access Management (IAM) accounts to database accounts. By default, mapping is disabled. This setting doesn't apply to Amazon Aurora. Mapping Amazon Web Services IAM accounts to database accounts is managed by the DB cluster. For more information about IAM database authentication, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.IAMDBAuth.html"> IAM Database Authentication for MySQL and PostgreSQL</a> in the <i>Amazon RDS User Guide.</i> <br/>PromotionTier:  A value that specifies the order in which an Aurora Replica is promoted to the primary instance after a failure of the existing primary instance. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Managing.Backups.html#Aurora.Managing.FaultTolerance"> Fault Tolerance for an Aurora DB Cluster</a> in the <i>Amazon Aurora User Guide</i>.  Default: 1 Valid Values: 0 - 15<br/>DomainIAMRoleName:  The name of the IAM role to use when making API calls to the Directory Service.<br/>MonitoringRoleArn:  The ARN for the IAM role that permits RDS to send enhanced monitoring metrics to Amazon CloudWatch Logs. For example, <code>arn:aws:iam:123456789012:role/emaccess</code>. For information on creating a monitoring role, go to <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.html#USER_Monitoring.OS.IAMRole">To create an IAM role for Amazon RDS Enhanced Monitoring</a> in the <i>Amazon RDS User Guide.</i>  If <code>MonitoringInterval</code> is set to a value other than 0, then you must supply a <code>MonitoringRoleArn</code> value.<br/>PubliclyAccessible:  A value that indicates whether the DB instance is publicly accessible.  When the DB instance is publicly accessible, its DNS endpoint resolves to the private IP address from within the DB instance's VPC, and to the public IP address from outside of the DB instance's VPC. Access to the DB instance is ultimately controlled by the security group it uses, and that public access is not permitted if the security group assigned to the DB instance doesn't permit it. When the DB instance isn't publicly accessible, it is an internal DB instance with a DNS name that resolves to a private IP address.  <code>PubliclyAccessible</code> only applies to DB instances in a VPC. The DB instance must be part of a public subnet and <code>PubliclyAccessible</code> must be enabled for it to be publicly accessible.  Changes to the <code>PubliclyAccessible</code> parameter are applied immediately regardless of the value of the <code>ApplyImmediately</code> parameter.<br/>DBPortNumber:  The port number on which the database accepts connections. The value of the <code>DBPortNumber</code> parameter must not match any of the port values specified for options in the option group for the DB instance. Your database will restart when you change the <code>DBPortNumber</code> value regardless of the value of the <code>ApplyImmediately</code> parameter.  <b>MySQL</b>   Default: <code>3306</code>   Valid values: <code>1150-65535</code>   <b>MariaDB</b>   Default: <code>3306</code>   Valid values: <code>1150-65535</code>   <b>PostgreSQL</b>   Default: <code>5432</code>   Valid values: <code>1150-65535</code>  Type: Integer  <b>Oracle</b>   Default: <code>1521</code>   Valid values: <code>1150-65535</code>   <b>SQL Server</b>   Default: <code>1433</code>   Valid values: <code>1150-65535</code> except <code>1234</code>, <code>1434</code>, <code>3260</code>, <code>3343</code>, <code>3389</code>, <code>47001</code>, and <code>49152-49156</code>.  <b>Amazon Aurora</b>   Default: <code>3306</code>   Valid values: <code>1150-65535</code> <br/>MonitoringInterval:  The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance. To disable collecting Enhanced Monitoring metrics, specify 0. The default is 0. If <code>MonitoringRoleArn</code> is specified, then you must also set <code>MonitoringInterval</code> to a value other than 0. Valid Values: <code>0, 1, 5, 10, 15, 30, 60</code> <br/>CopyTagsToSnapshot:  A value that indicates whether to copy all tags from the DB instance to snapshots of the DB instance. By default, tags are not copied.  <b>Amazon Aurora</b>  Not applicable. Copying tags to snapshots is managed by the DB cluster. Setting this value for an Aurora DB instance has no effect on the DB cluster setting. For more information, see <code>ModifyDBCluster</code>.<br/>Domain:  The Active Directory directory ID to move the DB instance to. Specify <code>none</code> to remove the instance from its current domain. The domain must be created prior to this operation. Currently, only MySQL, Microsoft SQL Server, Oracle, and PostgreSQL DB instances can be created in an Active Directory Domain. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/kerberos-authentication.html"> Kerberos Authentication</a> in the <i>Amazon RDS User Guide</i>.<br/>CACertificateIdentifier:  Indicates the certificate that needs to be associated with the instance.<br/>TdeCredentialPassword:  The password for the given ARN from the key store in order to access the device.<br/>TdeCredentialArn:  The ARN from the key store with which to associate the instance for TDE encryption.<br/>StorageType:  Specifies the storage type to be associated with the DB instance.  If you specify Provisioned IOPS (<code>io1</code>), you must also include a value for the <code>Iops</code> parameter.  If you choose to migrate your DB instance from using standard storage to using Provisioned IOPS, or from using Provisioned IOPS to using standard storage, the process can take time. The duration of the migration depends on several factors such as database load, storage size, storage type (standard or Provisioned IOPS), amount of IOPS provisioned (if any), and the number of prior scale storage operations. Typical migration times are under 24 hours, but the process can take up to several days in some cases. During the migration, the DB instance is available for use, but might experience performance degradation. While the migration takes place, nightly backups for the instance are suspended. No other Amazon RDS operations can take place for the instance, including modifying the instance, rebooting the instance, deleting the instance, creating a read replica for the instance, and creating a DB snapshot of the instance.   Valid values: <code>standard | gp2 | io1</code>  Default: <code>io1</code> if the <code>Iops</code> parameter is specified, otherwise <code>gp2</code> <br/>NewDBInstanceIdentifier:   The new DB instance identifier for the DB instance when renaming a DB instance. When you change the DB instance identifier, an instance reboot occurs immediately if you enable <code>ApplyImmediately</code>, or will occur during the next maintenance window if you disable Apply Immediately. This value is stored as a lowercase string.  Constraints: <ul> <li> Must contain from 1 to 63 letters, numbers, or hyphens. </li> <li> The first character must be a letter. </li> <li> Can't end with a hyphen or contain two consecutive hyphens. </li> </ul> Example: <code>mydbinstance</code> <br/>OptionGroupName:   A value that indicates the DB instance should be associated with the specified option group. Changing this parameter doesn't result in an outage except in the following case and the change is applied during the next maintenance window unless the <code>ApplyImmediately</code> parameter is enabled for this request. If the parameter change results in an option group that enables OEM, this change can cause a brief (sub-second) period during which new connections are rejected but existing connections are not interrupted.  Permanent options, such as the TDE option for Oracle Advanced Security TDE, can't be removed from an option group, and that option group can't be removed from a DB instance once it is associated with a DB instance<br/>Iops:  The new Provisioned IOPS (I/O operations per second) value for the RDS instance.  Changing this setting doesn't result in an outage and the change is applied during the next maintenance window unless the <code>ApplyImmediately</code> parameter is enabled for this request. If you are migrating from Provisioned IOPS to standard storage, set this value to 0. The DB instance will require a reboot for the change in storage type to take effect.  If you choose to migrate your DB instance from using standard storage to using Provisioned IOPS, or from using Provisioned IOPS to using standard storage, the process can take time. The duration of the migration depends on several factors such as database load, storage size, storage type (standard or Provisioned IOPS), amount of IOPS provisioned (if any), and the number of prior scale storage operations. Typical migration times are under 24 hours, but the process can take up to several days in some cases. During the migration, the DB instance is available for use, but might experience performance degradation. While the migration takes place, nightly backups for the instance are suspended. No other Amazon RDS operations can take place for the instance, including modifying the instance, rebooting the instance, deleting the instance, creating a read replica for the instance, and creating a DB snapshot of the instance.  Constraints: For MariaDB, MySQL, Oracle, and PostgreSQL, the value supplied must be at least 10% greater than the current value. Values that are not at least 10% greater than the existing value are rounded up so that they are 10% greater than the current value.  Default: Uses existing setting<br/>LicenseModel:  The license model for the DB instance. Valid values: <code>license-included</code> | <code>bring-your-own-license</code> | <code>general-public-license</code> <br/>AutoMinorVersionUpgrade:   A value that indicates whether minor version upgrades are applied automatically to the DB instance during the maintenance window. Changing this parameter doesn't result in an outage except in the following case and the change is asynchronously applied as soon as possible. An outage results if this parameter is enabled during the maintenance window, and a newer minor version is available, and RDS has enabled auto patching for that engine version. <br/>AllowMajorVersionUpgrade:  A value that indicates whether major version upgrades are allowed. Changing this parameter doesn't result in an outage and the change is asynchronously applied as soon as possible. Constraints: Major version upgrades must be allowed when specifying a value for the EngineVersion parameter that is a different major version than the DB instance's current version.<br/>EngineVersion:   The version number of the database engine to upgrade to. Changing this parameter results in an outage and the change is applied during the next maintenance window unless the <code>ApplyImmediately</code> parameter is enabled for this request.  For major version upgrades, if a nondefault DB parameter group is currently in use, a new DB parameter group in the DB parameter group family for the new engine version must be specified. The new DB parameter group can be the default for that DB parameter group family. If you specify only a major version, Amazon RDS will update the DB instance to the default minor version if the current minor version is lower. For information about valid engine versions, see <code>CreateDBInstance</code>, or call <code>DescribeDBEngineVersions</code>.<br/>MultiAZ:  A value that indicates whether the DB instance is a Multi-AZ deployment. Changing this parameter doesn't result in an outage and the change is applied during the next maintenance window unless the <code>ApplyImmediately</code> parameter is enabled for this request. <br/>PreferredMaintenanceWindow:  The weekly time range (in UTC) during which system maintenance can occur, which might result in an outage. Changing this parameter doesn't result in an outage, except in the following situation, and the change is asynchronously applied as soon as possible. If there are pending actions that cause a reboot, and the maintenance window is changed to include the current time, then changing this parameter will cause a reboot of the DB instance. If moving this window to the current time, there must be at least 30 minutes between the current time and end of the window to ensure pending changes are applied. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.Maintenance.html#Concepts.DBMaintenance">Amazon RDS Maintenance Window</a> in the <i>Amazon RDS User Guide.</i>  Default: Uses existing setting Format: ddd:hh24:mi-ddd:hh24:mi Valid Days: Mon | Tue | Wed | Thu | Fri | Sat | Sun Constraints: Must be at least 30 minutes<br/>PreferredBackupWindow:   The daily time range during which automated backups are created if automated backups are enabled, as determined by the <code>BackupRetentionPeriod</code> parameter. Changing this parameter doesn't result in an outage and the change is asynchronously applied as soon as possible. The default is a 30-minute window selected at random from an 8-hour block of time for each Amazon Web Services Region. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithAutomatedBackups.html#USER_WorkingWithAutomatedBackups.BackupWindow">Backup window</a> in the <i>Amazon RDS User Guide.</i>   <b>Amazon Aurora</b>  Not applicable. The daily time range for creating automated backups is managed by the DB cluster. For more information, see <code>ModifyDBCluster</code>. Constraints: <ul> <li> Must be in the format hh24:mi-hh24:mi </li> <li> Must be in Universal Time Coordinated (UTC) </li> <li> Must not conflict with the preferred maintenance window </li> <li> Must be at least 30 minutes </li> </ul><br/>BackupRetentionPeriod:  The number of days to retain automated backups. Setting this parameter to a positive number enables backups. Setting this parameter to 0 disables automated backups. <note> Enabling and disabling backups can result in a brief I/O suspension that lasts from a few seconds to a few minutes, depending on the size and class of your DB instance. </note> These changes are applied during the next maintenance window unless the <code>ApplyImmediately</code> parameter is enabled for this request. If you change the parameter from one non-zero value to another non-zero value, the change is asynchronously applied as soon as possible.  <b>Amazon Aurora</b>  Not applicable. The retention period for automated backups is managed by the DB cluster. For more information, see <code>ModifyDBCluster</code>. Default: Uses existing setting Constraints: <ul> <li> Must be a value from 0 to 35 </li> <li> Can be specified for a MySQL read replica only if the source is running MySQL 5.6 or later </li> <li> Can be specified for a PostgreSQL read replica only if the source is running PostgreSQL 9.3.5 </li> <li> Can't be set to 0 if the DB instance is a source to read replicas </li> </ul><br/>DBParameterGroupName:  The name of the DB parameter group to apply to the DB instance. Changing this setting doesn't result in an outage. The parameter group name itself is changed immediately, but the actual parameter changes are not applied until you reboot the instance without failover. In this case, the DB instance isn't rebooted automatically and the parameter changes isn't applied during the next maintenance window. Default: Uses existing setting Constraints: The DB parameter group must be in the same DB parameter group family as this DB instance.<br/>MasterUserPassword:  The new password for the master user. The password can include any printable ASCII character except "/", triple-quotes, or "@".  Changing this parameter doesn't result in an outage and the change is asynchronously applied as soon as possible. Between the time of the request and the completion of the request, the <code>MasterUserPassword</code> element exists in the <code>PendingModifiedValues</code> element of the operation response.   <b>Amazon Aurora</b>  Not applicable. The password for the master user is managed by the DB cluster. For more information, see <code>ModifyDBCluster</code>.  Default: Uses existing setting  <b>MariaDB</b>  Constraints: Must contain from 8 to 41 characters.  <b>Microsoft SQL Server</b>  Constraints: Must contain from 8 to 128 characters.  <b>MySQL</b>  Constraints: Must contain from 8 to 41 characters.  <b>Oracle</b>  Constraints: Must contain from 8 to 30 characters.  <b>PostgreSQL</b>  Constraints: Must contain from 8 to 128 characters. <note> Amazon RDS API actions never return the password, so this action provides a way to regain access to a primary instance user if the password is lost. This includes restoring privileges that might have been accidentally revoked.  </note><br/>ApplyImmediately:  A value that indicates whether the modifications in this request and any pending modifications are asynchronously applied as soon as possible, regardless of the <code>PreferredMaintenanceWindow</code> setting for the DB instance. By default, this parameter is disabled.   If this parameter is disabled, changes to the DB instance are applied during the next maintenance window. Some parameter changes can cause an outage and are applied on the next call to <a>RebootDBInstance</a>, or the next failure reboot. Review the table of parameters in <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.DBInstance.Modifying.html">Modifying a DB Instance</a> in the <i>Amazon RDS User Guide.</i> to see the impact of enabling or disabling <code>ApplyImmediately</code> for each modified parameter and to determine when the changes are applied. <br/>VpcSecurityGroupIds:  A list of EC2 VPC security groups to authorize on this DB instance. This change is asynchronously applied as soon as possible.  <b>Amazon Aurora</b>  Not applicable. The associated list of EC2 VPC security groups is managed by the DB cluster. For more information, see <code>ModifyDBCluster</code>. Constraints: <ul> <li> If supplied, must match existing VpcSecurityGroupIds. </li> </ul><br/>DBSecurityGroups:  A list of DB security groups to authorize on this DB instance. Changing this setting doesn't result in an outage and the change is asynchronously applied as soon as possible. Constraints: <ul> <li> If supplied, must match existing DBSecurityGroups. </li> </ul><br/>DBSubnetGroupName:  The new DB subnet group for the DB instance. You can use this parameter to move your DB instance to a different VPC. If your DB instance isn't in a VPC, you can also use this parameter to move your DB instance into a VPC. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.WorkingWithRDSInstanceinaVPC.html#USER_VPC.Non-VPC2VPC">Working with a DB instance in a VPC</a> in the <i>Amazon RDS User Guide.</i>  Changing the subnet group causes an outage during the change. The change is applied during the next maintenance window, unless you enable <code>ApplyImmediately</code>.  Constraints: If supplied, must match the name of an existing DBSubnetGroup. Example: <code>mySubnetGroup</code> <br/>DBInstanceClass:  The new compute and memory capacity of the DB instance, for example, <code>db.m4.large</code>. Not all DB instance classes are available in all Amazon Web Services Regions, or for all database engines. For the full list of DB instance classes, and availability for your engine, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html">DB Instance Class</a> in the <i>Amazon RDS User Guide.</i>  If you modify the DB instance class, an outage occurs during the change. The change is applied during the next maintenance window, unless <code>ApplyImmediately</code> is enabled for this request.  Default: Uses existing setting<br/>AllocatedStorage:  The new amount of storage (in gibibytes) to allocate for the DB instance.  For MariaDB, MySQL, Oracle, and PostgreSQL, the value supplied must be at least 10% greater than the current value. Values that are not at least 10% greater than the existing value are rounded up so that they are 10% greater than the current value.  For the valid values for allocated storage for each engine, see <code>CreateDBInstance</code>. <br/>DBInstanceIdentifier:  The DB instance identifier. This value is stored as a lowercase string. Constraints: <ul> <li> Must match the identifier of an existing DBInstance. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DisableLogTypes</i> The list of log types to disable.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableLogTypes</i> The list of log types to enable.<br/>
        :return: DBInstance:  Contains the details of an Amazon RDS DB instance.  This data type is used as a response element in the <code>DescribeDBInstances</code> action. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamEngineNativeAuditFieldsIncluded</i> Indicates whether engine-native audit fields are included in the database activity stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamMode</i> The mode of the database activity stream. Database events such as a change or access generate an activity stream event. RDS for Oracle always handles these events asynchronously.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamKinesisStreamName</i> The name of the Amazon Kinesis data stream used for the database activity stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamKmsKeyId</i> The Amazon Web Services KMS key identifier used for encrypting messages in the database activity stream. The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the Amazon Web Services KMS customer master key (CMK).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamStatus</i> The status of the database activity stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AwsBackupRecoveryPointArn</i> The Amazon Resource Name (ARN) of the recovery point in Amazon Web Services Backup.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomerOwnedIpEnabled</i> Specifies whether a customer-owned IP address (CoIP) is enabled for an RDS on Outposts DB instance. A <i>CoIP </i>provides local or external connectivity to resources in your Outpost subnets through your on-premises network. For some use cases, a CoIP can provide lower latency for connections to the DB instance from outside of its virtual private cloud (VPC) on your local network. For more information about RDS on Outposts, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-on-outposts.html">Working with Amazon RDS on Amazon Web Services Outposts</a> in the <i>Amazon RDS User Guide</i>. For more information about CoIPs, see <a href="https://docs.aws.amazon.com/outposts/latest/userguide/outposts-networking-components.html#ip-addressing">Customer-owned IP addresses</a> in the <i>Amazon Web Services Outposts User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceAutomatedBackupsReplications</i> The list of replicated automated backups associated with the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TagList</i> A list of tags. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html">Tagging Amazon RDS Resources</a> in the <i>Amazon RDS User Guide.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxAllocatedStorage</i> The upper limit to which Amazon RDS can automatically scale the storage of the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ListenerEndpoint</i> Specifies the listener connection endpoint for SQL Server Always On.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ListenerEndpoint</b>: Specifies the listener connection endpoint for SQL Server Always On.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociatedRoles</i>  The Amazon Web Services Identity and Access Management (IAM) roles associated with the DB instance. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeletionProtection</i> Indicates if the DB instance has deletion protection enabled. The database can't be deleted when deletion protection is enabled. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_DeleteInstance.html"> Deleting a DB Instance</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProcessorFeatures</i> The number of CPU cores and the number of threads per core for the DB instance class of the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnabledCloudwatchLogsExports</i> A list of log types that this DB instance is configured to export to CloudWatch Logs. Log types vary by DB engine. For information about the log types for each DB engine, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.html">Amazon RDS Database Log Files</a> in the <i>Amazon RDS User Guide.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PerformanceInsightsRetentionPeriod</i> The amount of time, in days, to retain Performance Insights data. Valid values are 7 or 731 (2 years). <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PerformanceInsightsKMSKeyId</i> The Amazon Web Services KMS key identifier for encryption of Performance Insights data. The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the Amazon Web Services KMS customer master key (CMK).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PerformanceInsightsEnabled</i> True if Performance Insights is enabled for the DB instance, and otherwise false.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IAMDatabaseAuthenticationEnabled</i> True if mapping of Amazon Web Services Identity and Access Management (IAM) accounts to database accounts is enabled, and otherwise false. IAM database authentication can be enabled for the following database engines <ul> <li> For MySQL 5.6, minor version 5.6.34 or higher </li> <li> For MySQL 5.7, minor version 5.7.16 or higher </li> <li> Aurora 5.6 or higher. To enable IAM database authentication for Aurora, see DBCluster Type. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Timezone</i> The time zone of the DB instance. In most cases, the <code>Timezone</code> element is empty. <code>Timezone</code> content appears only for Microsoft SQL Server DB instances that were created with a time zone specified. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceArn</i> The Amazon Resource Name (ARN) for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PromotionTier</i> A value that specifies the order in which an Aurora Replica is promoted to the primary instance after a failure of the existing primary instance. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Managing.Backups.html#Aurora.Managing.FaultTolerance"> Fault Tolerance for an Aurora DB Cluster</a> in the <i>Amazon Aurora User Guide</i>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MonitoringRoleArn</i> The ARN for the IAM role that permits RDS to send Enhanced Monitoring metrics to Amazon CloudWatch Logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnhancedMonitoringResourceArn</i> The Amazon Resource Name (ARN) of the Amazon CloudWatch Logs log stream that receives the Enhanced Monitoring metrics data for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MonitoringInterval</i> The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CopyTagsToSnapshot</i> Specifies whether tags are copied from the DB instance to snapshots of the DB instance.  <b>Amazon Aurora</b>  Not applicable. Copying tags to snapshots is managed by the DB cluster. Setting this value for an Aurora DB instance has no effect on the DB cluster setting. For more information, see <code>DBCluster</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainMemberships</i> The Active Directory Domain membership records associated with the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CACertificateIdentifier</i> The identifier of the CA certificate for this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DbiResourceId</i> The Amazon Web Services Region-unique, immutable identifier for the DB instance. This identifier is found in Amazon Web Services CloudTrail log entries whenever the Amazon Web Services KMS customer master key (CMK) for the DB instance is accessed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i>  If <code>StorageEncrypted</code> is true, the Amazon Web Services KMS key identifier for the encrypted DB instance.  The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the Amazon Web Services KMS customer master key (CMK).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageEncrypted</i> Specifies whether the DB instance is encrypted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterIdentifier</i> If the DB instance is a member of a DB cluster, contains the name of the DB cluster that the DB instance is a member of.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DbInstancePort</i> Specifies the port that the DB instance listens on. If the DB instance is part of a DB cluster, this can be a different port than the DB cluster port.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TdeCredentialArn</i> The ARN from the key store with which the instance is associated for TDE encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageType</i> Specifies the storage type associated with DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusInfos</i> The status of a read replica. If the instance isn't a read replica, this is blank.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PubliclyAccessible</i> Specifies the accessibility options for the DB instance. When the DB instance is publicly accessible, its DNS endpoint resolves to the private IP address from within the DB instance's VPC, and to the public IP address from outside of the DB instance's VPC. Access to the DB instance is ultimately controlled by the security group it uses, and that public access is not permitted if the security group assigned to the DB instance doesn't permit it. When the DB instance isn't publicly accessible, it is an internal DB instance with a DNS name that resolves to a private IP address. For more information, see <a>CreateDBInstance</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecondaryAvailabilityZone</i> If present, specifies the name of the secondary Availability Zone for a DB instance with multi-AZ support.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NcharCharacterSetName</i> The name of the NCHAR character set for the Oracle DB instance. This character set specifies the Unicode encoding for data stored in table columns of type NCHAR, NCLOB, or NVARCHAR2. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CharacterSetName</i> If present, specifies the name of the character set that this instance is associated with.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OptionGroupMemberships</i> Provides the list of option group memberships for this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Iops</i> Specifies the Provisioned IOPS (I/O operations per second) value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LicenseModel</i> License model information for this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicaMode</i> The open mode of an Oracle read replica. The default is <code>open-read-only</code>. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/oracle-read-replicas.html">Working with Oracle Read Replicas for Amazon RDS</a> in the <i>Amazon RDS User Guide</i>. <note> This attribute is only supported in RDS for Oracle. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadReplicaDBClusterIdentifiers</i> Contains one or more identifiers of Aurora DB clusters to which the RDS DB instance is replicated as a read replica. For example, when you create an Aurora read replica of an RDS MySQL DB instance, the Aurora MySQL DB cluster for the Aurora read replica is shown. This output does not contain information about cross region Aurora read replicas. <note> Currently, each RDS DB instance can have only one Aurora read replica. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadReplicaDBInstanceIdentifiers</i> Contains one or more identifiers of the read replicas associated with this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadReplicaSourceDBInstanceIdentifier</i> Contains the identifier of the source DB instance if this DB instance is a read replica.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoMinorVersionUpgrade</i> A value that indicates that minor version patches are applied automatically.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> Indicates the database engine version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiAZ</i> Specifies if the DB instance is a Multi-AZ deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestRestorableTime</i> Specifies the latest time to which a database can be restored with point-in-time restore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingModifiedValues</i> A value that specifies that changes to the DB instance are pending. This element is only included when changes are pending. Specific changes are identified by subelements.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingModifiedValues</b>: A value that specifies that changes to the DB instance are pending. This element is only included when changes are pending. Specific changes are identified by subelements.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i> Specifies the weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroup</i> Specifies information on the subnet group associated with the DB instance, including the name, description, and subnets in the subnet group.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DBSubnetGroup</b>: Specifies information on the subnet group associated with the DB instance, including the name, description, and subnets in the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZone</i> Specifies the name of the Availability Zone the DB instance is located in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBParameterGroups</i> Provides the list of DB parameter groups applied to this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcSecurityGroups</i> Provides a list of VPC security group elements that the DB instance belongs to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSecurityGroups</i>  A list of DB security group elements containing <code>DBSecurityGroup.Name</code> and <code>DBSecurityGroup.Status</code> subelements. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupRetentionPeriod</i> Specifies the number of days for which automatic DB snapshots are retained.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredBackupWindow</i>  Specifies the daily time range during which automated backups are created if automated backups are enabled, as determined by the <code>BackupRetentionPeriod</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceCreateTime</i> Provides the date and time the DB instance was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllocatedStorage</i> Specifies the allocated storage size specified in gibibytes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i> Specifies the connection endpoint.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Endpoint</b>: Specifies the connection endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBName</i> The meaning of this parameter differs according to the database engine you use.  <b>MySQL, MariaDB, SQL Server, PostgreSQL</b>  Contains the name of the initial database of this instance that was provided at create time, if one was specified when the DB instance was created. This same name is returned for the life of the DB instance. Type: String  <b>Oracle</b>  Contains the Oracle System ID (SID) of the created DB instance. Not shown when the returned parameters do not apply to an Oracle DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUsername</i> Contains the master username for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceStatus</i> Specifies the current state of this database. For information about DB instance statuses, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/accessing-monitoring.html#Overview.DBInstance.Status">Viewing DB instance status</a> in the <i>Amazon RDS User Guide.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> The name of the database engine to be used for this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceClass</i> Contains the name of the compute and memory capacity class of the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceIdentifier</i> Contains a user-supplied database identifier. This identifier is the unique key that identifies a DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HostedZoneId</i> Specifies the ID that Amazon Route 53 assigns when you create a hosted zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Specifies the port that the database engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Address</i> Specifies the DNS address of the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupArn</i> The Amazon Resource Name (ARN) for the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Subnets</i>  Contains a list of <code>Subnet</code> elements. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetGroupStatus</i> Provides the status of the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> Provides the VpcId of the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupDescription</i> Provides the description of the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupName</i> The name of the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupName</i> The DB subnet group for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CACertificateIdentifier</i> The identifier of the CA certificate for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageType</i> The storage type of the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceIdentifier</i> The database identifier for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Iops</i> The Provisioned IOPS value for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LicenseModel</i> The license model for the DB instance. Valid values: <code>license-included</code> | <code>bring-your-own-license</code> | <code>general-public-license</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> The database engine version.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiAZ</i> A value that indicates that the Single-AZ DB instance will change to a Multi-AZ deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupRetentionPeriod</i> The number of days for which automated backups are retained.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> The port for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUserPassword</i> The master credentials for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AllocatedStorage</i> The allocated storage size for the DB instance specified in gibibytes .<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceClass</i> The name of the compute and memory capacity class for the DB instance.<br/>A list of the log types whose configuration is still pending. In other words, these log types are in the process of being activated or deactivated.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingCloudwatchLogsExports</b>: A list of the log types whose configuration is still pending. In other words, these log types are in the process of being activated or deactivated.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HostedZoneId</i> Specifies the ID that Amazon Route 53 assigns when you create a hosted zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Specifies the port that the database engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Address</i> Specifies the DNS address of the DB instance.<br/>        """
        pass

    def modify_db_parameter_group(self, Parameters: List[Parameter], DBParameterGroupName: str) -> DBParameterGroupNameMessage:
        r""" Modifies the parameters of a DB parameter group. To modify more than one parameter, submit a list of the following: <code>ParameterName</code>, <code>ParameterValue</code>, and <code>ApplyMethod</code>. A maximum of 20 parameters can be modified in a single request.  <important> After you modify a DB parameter group, you should wait at least 5 minutes before creating your first DB instance that uses that DB parameter group as the default parameter group. This allows Amazon RDS to fully complete the modify action before the parameter group is used as the default for a new DB instance. This is especially important for parameters that are critical when creating the default database for a DB instance, such as the character set for the default database defined by the <code>character_set_database</code> parameter. You can use the <i>Parameter Groups</i> option of the <a href="https://console.aws.amazon.com/rds/">Amazon RDS console</a> or the <i>DescribeDBParameters</i> command to verify that your DB parameter group has been created or modified. </important>

        :param self:
        :param Parameters:  An array of parameter names, values, and the application methods for the parameter update. At least one parameter name, value, and application method method must be supplied; later arguments are optional. A maximum of 20 parameters can be modified in a single request. Valid Values (for the application method): <code>immediate | pending-reboot</code>  <note> You can use the <code>immediate</code> value with dynamic parameters only. You can use the <code>pending-reboot</code> value for both dynamic and static parameters. When the application method is <code>immediate</code>, changes to dynamic parameters are applied immediately to the DB instances associated with the parameter group. When the application method is <code>pending-reboot</code>, changes to dynamic and static parameters are applied after a reboot without failover to the DB instances associated with the parameter group. </note><br/>DBParameterGroupName:  The name of the DB parameter group. Constraints: <ul> <li> If supplied, must match the name of an existing <code>DBParameterGroup</code>. </li> </ul><br/>
        :return: DBParameterGroupName:  The name of the DB parameter group.<br/>        """
        pass

    def modify_db_proxy(self, DBProxyName: str, NewDBProxyName: str=None, Auth: List[UserAuthConfig]=None, RequireTLS: BooleanOptional=None, IdleClientTimeout: int=None, DebugLogging: BooleanOptional=None, RoleArn: str=None, SecurityGroups: List[String]=None) -> ModifyDBProxyResponse:
        r"""Changes the settings for an existing DB proxy.

        :param self:
        :param SecurityGroups:  The new list of security groups for the <code>DBProxy</code>.<br/>RoleArn:  The Amazon Resource Name (ARN) of the IAM role that the proxy uses to access secrets in Amazon Web Services Secrets Manager.<br/>DebugLogging:  Whether the proxy includes detailed information about SQL statements in its logs. This information helps you to debug issues involving SQL behavior or the performance and scalability of the proxy connections. The debug information includes the text of SQL statements that you submit through the proxy. Thus, only enable this setting when needed for debugging, and only when you have security measures in place to safeguard any sensitive information that appears in the logs.<br/>IdleClientTimeout:  The number of seconds that a connection to the proxy can be inactive before the proxy disconnects it. You can set this value higher or lower than the connection timeout limit for the associated database.<br/>RequireTLS:  Whether Transport Layer Security (TLS) encryption is required for connections to the proxy. By enabling this setting, you can enforce encrypted TLS connections to the proxy, even if the associated database doesn't use TLS.<br/>Auth:  The new authentication settings for the <code>DBProxy</code>.<br/>NewDBProxyName:  The new identifier for the <code>DBProxy</code>. An identifier must begin with a letter and must contain only ASCII letters, digits, and hyphens; it can't end with a hyphen or contain two consecutive hyphens.<br/>DBProxyName:  The identifier for the <code>DBProxy</code> to modify.<br/>
        :return: DBProxy:  The <code>DBProxy</code> object representing the new settings for the proxy.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdatedDate</i> The date and time when the proxy was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedDate</i> The date and time when the proxy was first created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DebugLogging</i> Whether the proxy includes detailed information about SQL statements in its logs. This information helps you to debug issues involving SQL behavior or the performance and scalability of the proxy connections. The debug information includes the text of SQL statements that you submit through the proxy. Thus, only enable this setting when needed for debugging, and only when you have security measures in place to safeguard any sensitive information that appears in the logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IdleClientTimeout</i> The number of seconds a connection to the proxy can have no activity before the proxy drops the client connection. The proxy keeps the underlying database connection open and puts it back into the connection pool for reuse by later connection requests. Default: 1800 (30 minutes) Constraints: 1 to 28,800<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequireTLS</i> Indicates whether Transport Layer Security (TLS) encryption is required for connections to the proxy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i> The endpoint that you can use to connect to the DB proxy. You include the endpoint value in the connection string for a database client application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The Amazon Resource Name (ARN) for the IAM role that the proxy uses to access Amazon Secrets Manager.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Auth</i> One or more data structures specifying the authorization mechanism to connect to the associated RDS DB instance or Aurora DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcSubnetIds</i> The EC2 subnet IDs for the proxy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcSecurityGroupIds</i> Provides a list of VPC security groups that the proxy belongs to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> Provides the VPC ID of the DB proxy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineFamily</i> The engine family applies to MySQL and PostgreSQL for both RDS and Aurora.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current status of this proxy. A status of <code>available</code> means the proxy is ready to handle requests. Other values indicate that you must wait for the proxy to be ready, or take some action to resolve an issue.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBProxyArn</i> The Amazon Resource Name (ARN) for the proxy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBProxyName</i> The identifier for the proxy. This name must be unique for all proxies owned by your Amazon Web Services account in the specified Amazon Web Services Region.<br/>        """
        pass

    def modify_db_proxy_endpoint(self, DBProxyEndpointName: str, NewDBProxyEndpointName: str=None, VpcSecurityGroupIds: List[String]=None) -> ModifyDBProxyEndpointResponse:
        r"""Changes the settings for an existing DB proxy endpoint.

        :param self:
        :param VpcSecurityGroupIds:  The VPC security group IDs for the DB proxy endpoint. When the DB proxy endpoint uses a different VPC than the original proxy, you also specify a different set of security group IDs than for the original proxy.<br/>NewDBProxyEndpointName:  The new identifier for the <code>DBProxyEndpoint</code>. An identifier must begin with a letter and must contain only ASCII letters, digits, and hyphens; it can't end with a hyphen or contain two consecutive hyphens.<br/>DBProxyEndpointName:  The name of the DB proxy sociated with the DB proxy endpoint that you want to modify.<br/>
        :return: DBProxyEndpoint:  The <code>DBProxyEndpoint</code> object representing the new settings for the DB proxy endpoint.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsDefault</i> A value that indicates whether this endpoint is the default endpoint for the associated DB proxy. Default DB proxy endpoints always have read/write capability. Other endpoints that you associate with the DB proxy can be either read/write or read-only.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetRole</i> A value that indicates whether the DB proxy endpoint can be used for read/write or read-only operations.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedDate</i> The date and time when the DB proxy endpoint was first created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i> The endpoint that you can use to connect to the DB proxy. You include the endpoint value in the connection string for a database client application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcSubnetIds</i> The EC2 subnet IDs for the DB proxy endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcSecurityGroupIds</i> Provides a list of VPC security groups that the DB proxy endpoint belongs to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> Provides the VPC ID of the DB proxy endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current status of this DB proxy endpoint. A status of <code>available</code> means the endpoint is ready to handle requests. Other values indicate that you must wait for the endpoint to be ready, or take some action to resolve an issue.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBProxyName</i> The identifier for the DB proxy that is associated with this DB proxy endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBProxyEndpointArn</i> The Amazon Resource Name (ARN) for the DB proxy endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBProxyEndpointName</i> The name for the DB proxy endpoint. An identifier must begin with a letter and must contain only ASCII letters, digits, and hyphens; it can't end with a hyphen or contain two consecutive hyphens.<br/>        """
        pass

    def modify_db_proxy_target_group(self, DBProxyName: str, TargetGroupName: str, ConnectionPoolConfig: ConnectionPoolConfiguration=None, NewName: str=None) -> ModifyDBProxyTargetGroupResponse:
        r"""Modifies the properties of a <code>DBProxyTargetGroup</code>.

        :param self:
        :param NewName:  The new name for the modified <code>DBProxyTarget</code>. An identifier must begin with a letter and must contain only ASCII letters, digits, and hyphens; it can't end with a hyphen or contain two consecutive hyphens.<br/>ConnectionPoolConfig:  The settings that determine the size and behavior of the connection pool for the target group.:<br/>DBProxyName:  The name of the new proxy to which to assign the target group.<br/>TargetGroupName:  The name of the new target group to assign to the proxy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InitQuery</i>  One or more SQL statements for the proxy to run when opening each new database connection. Typically used with <code>SET</code> statements to make sure that each connection has identical settings such as time zone and character set. For multiple statements, use semicolons as the separator. You can also include multiple variables in a single <code>SET</code> statement, such as <code>SET x=1, y=2</code>.  Default: no initialization query<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SessionPinningFilters</i> Each item in the list represents a class of SQL operations that normally cause all later statements in a session using a proxy to be pinned to the same underlying database connection. Including an item in the list exempts that class of SQL operations from the pinning behavior. Default: no session pinning filters<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConnectionBorrowTimeout</i> The number of seconds for a proxy to wait for a connection to become available in the connection pool. Only applies when the proxy has opened its maximum number of connections and all connections are busy with client sessions. Default: 120 Constraints: between 1 and 3600, or 0 representing unlimited<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxIdleConnectionsPercent</i>  Controls how actively the proxy closes idle database connections in the connection pool. A high value enables the proxy to leave a high percentage of idle connections open. A low value causes the proxy to close idle client connections and return the underlying database connections to the connection pool. For Aurora MySQL, it is expressed as a percentage of the <code>max_connections</code> setting for the RDS DB instance or Aurora DB cluster used by the target group.  Default: 50 Constraints: between 0 and <code>MaxConnectionsPercent</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxConnectionsPercent</i> The maximum size of the connection pool for each target in a target group. For Aurora MySQL, it is expressed as a percentage of the <code>max_connections</code> setting for the RDS DB instance or Aurora DB cluster used by the target group. Default: 100 Constraints: between 1 and 100<br/>
        :return: DBProxyTargetGroup:  The settings of the modified <code>DBProxyTarget</code>.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdatedDate</i> The date and time when the target group was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedDate</i> The date and time when the target group was first created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConnectionPoolConfig</i> The settings that determine the size and behavior of the connection pool for the target group.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ConnectionPoolConfig</b>: The settings that determine the size and behavior of the connection pool for the target group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current status of this target group. A status of <code>available</code> means the target group is correctly associated with a database. Other values indicate that you must wait for the target group to be ready, or take some action to resolve an issue.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsDefault</i> Whether this target group is the first one used for connection requests by the associated proxy. Because each proxy is currently associated with a single target group, currently this setting is always <code>true</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetGroupArn</i> The Amazon Resource Name (ARN) representing the target group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetGroupName</i> The identifier for the target group. This name must be unique for all target groups owned by your Amazon Web Services account in the specified Amazon Web Services Region.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBProxyName</i> The identifier for the RDS proxy associated with this target group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InitQuery</i>  One or more SQL statements for the proxy to run when opening each new database connection. Typically used with <code>SET</code> statements to make sure that each connection has identical settings such as time zone and character set. This setting is empty by default. For multiple statements, use semicolons as the separator. You can also include multiple variables in a single <code>SET</code> statement, such as <code>SET x=1, y=2</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SessionPinningFilters</i> Each item in the list represents a class of SQL operations that normally cause all later statements in a session using a proxy to be pinned to the same underlying database connection. Including an item in the list exempts that class of SQL operations from the pinning behavior. Currently, the only allowed value is <code>EXCLUDE_VARIABLE_SETS</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ConnectionBorrowTimeout</i> The number of seconds for a proxy to wait for a connection to become available in the connection pool. Only applies when the proxy has opened its maximum number of connections and all connections are busy with client sessions.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxIdleConnectionsPercent</i>  Controls how actively the proxy closes idle database connections in the connection pool. A high value enables the proxy to leave a high percentage of idle connections open. A low value causes the proxy to close idle client connections and return the underlying database connections to the connection pool. For Aurora MySQL, it is expressed as a percentage of the <code>max_connections</code> setting for the RDS DB instance or Aurora DB cluster used by the target group. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxConnectionsPercent</i> The maximum size of the connection pool for each target in a target group. For Aurora MySQL, it is expressed as a percentage of the <code>max_connections</code> setting for the RDS DB instance or Aurora DB cluster used by the target group.<br/>        """
        pass

    def modify_db_snapshot(self, DBSnapshotIdentifier: str, EngineVersion: str=None, OptionGroupName: str=None) -> ModifyDBSnapshotResult:
        r"""Updates a manual DB snapshot with a new engine version. The snapshot can be encrypted or unencrypted, but not shared or public.  Amazon RDS supports upgrading DB snapshots for MySQL, Oracle, and PostgreSQL. 

        :param self:
        :param OptionGroupName:  The option group to identify with the upgraded DB snapshot.  You can specify this parameter when you upgrade an Oracle DB snapshot. The same option group considerations apply when upgrading a DB snapshot as when upgrading a DB instance. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.Oracle.html#USER_UpgradeDBInstance.Oracle.OGPG.OG">Option group considerations</a> in the <i>Amazon RDS User Guide.</i> <br/>EngineVersion:  The engine version to upgrade the DB snapshot to.  The following are the database engines and engine versions that are available when you upgrade a DB snapshot.   <b>MySQL</b>  <ul> <li>  <code>5.5.46</code> (supported for 5.1 DB snapshots) </li> </ul>  <b>Oracle</b>  <ul> <li>  <code>12.1.0.2.v8</code> (supported for 12.1.0.1 DB snapshots) </li> <li>  <code>11.2.0.4.v12</code> (supported for 11.2.0.2 DB snapshots) </li> <li>  <code>11.2.0.4.v11</code> (supported for 11.2.0.3 DB snapshots) </li> </ul>  <b>PostgreSQL</b>  For the list of engine versions that are available for upgrading a DB snapshot, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.PostgreSQL.html#USER_UpgradeDBInstance.PostgreSQL.MajorVersion"> Upgrading the PostgreSQL DB Engine for Amazon RDS</a>. <br/>DBSnapshotIdentifier:  The identifier of the DB snapshot to modify.<br/>
        :return: DBSnapshot:  Contains the details of an Amazon RDS DB snapshot.  This data type is used as a response element in the <code>DescribeDBSnapshots</code> action. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TagList</i> A list of tags. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html">Tagging Amazon RDS Resources</a> in the <i>Amazon RDS User Guide.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DbiResourceId</i> The identifier for the source DB instance, which can't be changed and which is unique to an Amazon Web Services Region.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProcessorFeatures</i> The number of CPU cores and the number of threads per core for the DB instance class of the DB instance when the DB snapshot was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IAMDatabaseAuthenticationEnabled</i> True if mapping of Amazon Web Services Identity and Access Management (IAM) accounts to database accounts is enabled, and otherwise false.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Timezone</i> The time zone of the DB snapshot. In most cases, the <code>Timezone</code> element is empty. <code>Timezone</code> content appears only for snapshots taken from Microsoft SQL Server DB instances that were created with a time zone specified. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSnapshotArn</i> The Amazon Resource Name (ARN) for the DB snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i>  If <code>Encrypted</code> is true, the Amazon Web Services KMS key identifier for the encrypted DB snapshot.  The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the Amazon Web Services KMS customer master key (CMK).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Encrypted</i> Specifies whether the DB snapshot is encrypted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TdeCredentialArn</i> The ARN from the key store with which to associate the instance for TDE encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageType</i> Specifies the storage type associated with DB snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceDBSnapshotIdentifier</i> The DB snapshot Amazon Resource Name (ARN) that the DB snapshot was copied from. It only has value in case of cross-customer or cross-region copy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceRegion</i> The Amazon Web Services Region that the DB snapshot was created in or copied from.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PercentProgress</i> The percentage of the estimated data that has been transferred.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OptionGroupName</i> Provides the option group name for the DB snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Iops</i> Specifies the Provisioned IOPS (I/O operations per second) value of the DB instance at the time of the snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotType</i> Provides the type of the DB snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LicenseModel</i> License model information for the restored DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> Specifies the version of the database engine.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUsername</i> Provides the master username for the DB snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceCreateTime</i> Specifies the time in Coordinated Universal Time (UTC) when the DB instance, from which the snapshot was taken, was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> Provides the VPC ID associated with the DB snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZone</i> Specifies the name of the Availability Zone the DB instance was located in at the time of the DB snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Specifies the port that the database engine was listening on at the time of the snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Specifies the status of this DB snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllocatedStorage</i> Specifies the allocated storage size in gibibytes (GiB).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> Specifies the name of the database engine.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotCreateTime</i> Specifies when the snapshot was taken in Coordinated Universal Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceIdentifier</i> Specifies the DB instance identifier of the DB instance this DB snapshot was created from.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSnapshotIdentifier</i> Specifies the identifier for the DB snapshot.<br/>        """
        pass

    def modify_db_snapshot_attribute(self, AttributeName: str, DBSnapshotIdentifier: str, ValuesToAdd: List[String]=None, ValuesToRemove: List[String]=None) -> ModifyDBSnapshotAttributeResult:
        r"""Adds an attribute and values to, or removes an attribute and values from, a manual DB snapshot. To share a manual DB snapshot with other Amazon Web Services accounts, specify <code>restore</code> as the <code>AttributeName</code> and use the <code>ValuesToAdd</code> parameter to add a list of IDs of the Amazon Web Services accounts that are authorized to restore the manual DB snapshot. Uses the value <code>all</code> to make the manual DB snapshot public, which means it can be copied or restored by all Amazon Web Services accounts. <note> Don't add the <code>all</code> value for any manual DB snapshots that contain private information that you don't want available to all Amazon Web Services accounts. </note> If the manual DB snapshot is encrypted, it can be shared, but only by specifying a list of authorized Amazon Web Services account IDs for the <code>ValuesToAdd</code> parameter. You can't use <code>all</code> as a value for that parameter in this case. To view which Amazon Web Services accounts have access to copy or restore a manual DB snapshot, or whether a manual DB snapshot public or private, use the <a>DescribeDBSnapshotAttributes</a> API action. The accounts are returned as values for the <code>restore</code> attribute.

        :param self:
        :param ValuesToRemove:  A list of DB snapshot attributes to remove from the attribute specified by <code>AttributeName</code>. To remove authorization for other Amazon Web Services accounts to copy or restore a manual snapshot, set this list to include one or more Amazon Web Services account identifiers, or <code>all</code> to remove authorization for any Amazon Web Services account to copy or restore the DB snapshot. If you specify <code>all</code>, an Amazon Web Services account whose account ID is explicitly added to the <code>restore</code> attribute can still copy or restore the manual DB snapshot.<br/>ValuesToAdd:  A list of DB snapshot attributes to add to the attribute specified by <code>AttributeName</code>. To authorize other Amazon Web Services accounts to copy or restore a manual snapshot, set this list to include one or more Amazon Web Services account IDs, or <code>all</code> to make the manual DB snapshot restorable by any Amazon Web Services account. Do not add the <code>all</code> value for any manual DB snapshots that contain private information that you don't want available to all Amazon Web Services accounts.<br/>AttributeName:  The name of the DB snapshot attribute to modify. To manage authorization for other Amazon Web Services accounts to copy or restore a manual DB snapshot, set this value to <code>restore</code>. <note> To view the list of attributes available to modify, use the <a>DescribeDBSnapshotAttributes</a> API action. </note><br/>DBSnapshotIdentifier:  The identifier for the DB snapshot to modify the attributes for.<br/>
        :return: DBSnapshotAttributesResult:  Contains the results of a successful call to the <code>DescribeDBSnapshotAttributes</code> API action. Manual DB snapshot attributes are used to authorize other Amazon Web Services accounts to copy or restore a manual DB snapshot. For more information, see the <code>ModifyDBSnapshotAttribute</code> API action.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSnapshotAttributes</i> The list of attributes and values for the manual DB snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSnapshotIdentifier</i> The identifier of the manual DB snapshot that the attributes apply to.<br/>        """
        pass

    def modify_db_subnet_group(self, SubnetIds: List[String], DBSubnetGroupName: str, DBSubnetGroupDescription: str=None) -> ModifyDBSubnetGroupResult:
        r"""Modifies an existing DB subnet group. DB subnet groups must contain at least one subnet in at least two AZs in the Amazon Web Services Region.

        :param self:
        :param SubnetIds:  The EC2 subnet IDs for the DB subnet group.<br/>DBSubnetGroupDescription:  The description for the DB subnet group.<br/>DBSubnetGroupName:  The name for the DB subnet group. This value is stored as a lowercase string. You can't modify the default subnet group.  Constraints: Must match the name of an existing DBSubnetGroup. Must not be default. Example: <code>mySubnetgroup</code> <br/>
        :return: DBSubnetGroup:  Contains the details of an Amazon RDS DB subnet group.  This data type is used as a response element in the <code>DescribeDBSubnetGroups</code> action. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupArn</i> The Amazon Resource Name (ARN) for the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Subnets</i>  Contains a list of <code>Subnet</code> elements. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetGroupStatus</i> Provides the status of the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> Provides the VpcId of the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupDescription</i> Provides the description of the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupName</i> The name of the DB subnet group.<br/>        """
        pass

    def modify_event_subscription(self, SubscriptionName: str, SnsTopicArn: str=None, SourceType: str=None, EventCategories: List[String]=None, Enabled: BooleanOptional=None) -> ModifyEventSubscriptionResult:
        r"""Modifies an existing RDS event notification subscription. You can't modify the source identifiers using this call. To change source identifiers for a subscription, use the <code>AddSourceIdentifierToSubscription</code> and <code>RemoveSourceIdentifierFromSubscription</code> calls. You can see a list of the event categories for a given source type (<code>SourceType</code>) in <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Events.html">Events</a> in the <i>Amazon RDS User Guide</i> or by using the <code>DescribeEventCategories</code> operation.

        :param self:
        :param Enabled:   A value that indicates whether to activate the subscription. <br/>EventCategories:   A list of event categories for a source type (<code>SourceType</code>) that you want to subscribe to. You can see a list of the categories for a given source type in <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Events.html">Events</a> in the <i>Amazon RDS User Guide</i> or by using the <code>DescribeEventCategories</code> operation. <br/>SourceType:  The type of source that is generating the events. For example, if you want to be notified of events generated by a DB instance, you would set this parameter to db-instance. If this value isn't specified, all events are returned. Valid values: <code>db-instance</code> | <code>db-cluster</code> | <code>db-parameter-group</code> | <code>db-security-group</code> | <code>db-snapshot</code> | <code>db-cluster-snapshot</code> <br/>SnsTopicArn:  The Amazon Resource Name (ARN) of the SNS topic created for event notification. The ARN is created by Amazon SNS when you create a topic and subscribe to it.<br/>SubscriptionName:  The name of the RDS event notification subscription.<br/>
        :return: EventSubscription:  Contains the results of a successful invocation of the <code>DescribeEventSubscriptions</code> action.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EventSubscriptionArn</i> The Amazon Resource Name (ARN) for the event subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> A Boolean value indicating if the subscription is enabled. True indicates the subscription is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EventCategoriesList</i> A list of event categories for the RDS event notification subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceIdsList</i> A list of source IDs for the RDS event notification subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceType</i> The source type for the RDS event notification subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubscriptionCreationTime</i> The time the RDS event notification subscription was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the RDS event notification subscription. Constraints: Can be one of the following: creating | modifying | deleting | active | no-permission | topic-not-exist The status "no-permission" indicates that RDS no longer has permission to post to the SNS topic. The status "topic-not-exist" indicates that the topic was deleted after the subscription was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnsTopicArn</i> The topic ARN of the RDS event notification subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustSubscriptionId</i> The RDS event notification subscription Id.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomerAwsId</i> The Amazon Web Services customer account associated with the RDS event notification subscription.<br/>        """
        pass

    def modify_global_cluster(self, GlobalClusterIdentifier: str=None, NewGlobalClusterIdentifier: str=None, DeletionProtection: BooleanOptional=None, EngineVersion: str=None, AllowMajorVersionUpgrade: BooleanOptional=None) -> ModifyGlobalClusterResult:
        r""" Modify a setting for an Amazon Aurora global cluster. You can change one or more database configuration parameters by specifying these parameters and the new values in the request. For more information on Amazon Aurora, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html"> What Is Amazon Aurora?</a> in the <i>Amazon Aurora User Guide.</i>  <note> This action only applies to Aurora DB clusters. </note>

        :param self:
        :param AllowMajorVersionUpgrade:  A value that indicates whether major version upgrades are allowed. Constraints: You must allow major version upgrades when specifying a value for the <code>EngineVersion</code> parameter that is a different major version than the DB cluster's current version. If you upgrade the major version of a global database, the cluster and DB instance parameter groups are set to the default parameter groups for the new version. Apply any custom parameter groups after completing the upgrade.<br/>EngineVersion:  The version number of the database engine to which you want to upgrade. Changing this parameter results in an outage. The change is applied during the next maintenance window unless <code>ApplyImmediately</code> is enabled. To list all of the available engine versions for <code>aurora</code> (for MySQL 5.6-compatible Aurora), use the following command:  <code>aws rds describe-db-engine-versions --engine aurora --query '*[]|[?SupportsGlobalDatabases == `true`].[EngineVersion]'</code>  To list all of the available engine versions for <code>aurora-mysql</code> (for MySQL 5.7-compatible Aurora), use the following command:  <code>aws rds describe-db-engine-versions --engine aurora-mysql --query '*[]|[?SupportsGlobalDatabases == `true`].[EngineVersion]'</code>  To list all of the available engine versions for <code>aurora-postgresql</code>, use the following command:  <code>aws rds describe-db-engine-versions --engine aurora-postgresql --query '*[]|[?SupportsGlobalDatabases == `true`].[EngineVersion]'</code> <br/>DeletionProtection:   Indicates if the global database cluster has deletion protection enabled. The global database cluster can't be deleted when deletion protection is enabled. <br/>NewGlobalClusterIdentifier:   The new cluster identifier for the global database cluster when modifying a global database cluster. This value is stored as a lowercase string.  Constraints: <ul> <li> Must contain from 1 to 63 letters, numbers, or hyphens </li> <li> The first character must be a letter </li> <li> Can't end with a hyphen or contain two consecutive hyphens </li> </ul> Example: <code>my-cluster2</code> <br/>GlobalClusterIdentifier:   The DB cluster identifier for the global cluster being modified. This parameter isn't case-sensitive.  Constraints: <ul> <li> Must match the identifier of an existing global database cluster. </li> </ul><br/>
        :return: GlobalCluster:  A data type representing an Aurora global database.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FailoverState</i> A data object containing all properties for the current state of an in-process or pending failover process for this Aurora global database. This object is empty unless the <a>FailoverGlobalCluster</a> API operation has been called on this Aurora global database (<a>GlobalCluster</a>). &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>FailoverState</b>: A data object containing all properties for the current state of an in-process or pending failover process for this Aurora global database. This object is empty unless the <a>FailoverGlobalCluster</a> API operation has been called on this Aurora global database (<a>GlobalCluster</a>). <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalClusterMembers</i>  The list of cluster IDs for secondary clusters within the global database cluster. Currently limited to 1 item. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeletionProtection</i>  The deletion protection setting for the new global database cluster. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageEncrypted</i>  The storage encryption setting for the global database cluster. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i>  The default database name within the new global database cluster. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> Indicates the database engine version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i>  The Aurora database engine used by the global database cluster. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Specifies the current state of this global database cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalClusterArn</i> The Amazon Resource Name (ARN) for the global database cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalClusterResourceId</i>  The Amazon Web Services Region-unique, immutable identifier for the global database cluster. This identifier is found in Amazon Web Services CloudTrail log entries whenever the Amazon Web Services KMS customer master key (CMK) for the DB cluster is accessed. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalClusterIdentifier</i>  Contains a user-supplied global database cluster identifier. This identifier is the unique key that identifies a global database cluster. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ToDbClusterArn</i> The Amazon Resource Name (ARN) of the Aurora DB cluster that is currently being promoted, and which is associated with this state.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FromDbClusterArn</i> The Amazon Resource Name (ARN) of the Aurora DB cluster that is currently being demoted, and which is associated with this state. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current status of the Aurora global database (<a>GlobalCluster</a>). Possible values are as follows:  <ul> <li> pending &#x96; A request to fail over the Aurora global database (<a>GlobalCluster</a>) has been received by the service. The <code>GlobalCluster</code>'s primary DB cluster and the specified secondary DB cluster are being verified before the failover process can start. </li> <li> failing-over &#x96; This status covers the range of Aurora internal operations that take place during the failover process, such as demoting the primary Aurora DB cluster, promoting the secondary Aurora DB, and synchronizing replicas.  </li> <li> cancelling &#x96; The request to fail over the Aurora global database (<a>GlobalCluster</a>) was cancelled and the primary Aurora DB cluster and the selected secondary Aurora DB cluster are returning to their previous states.  </li> </ul><br/>        """
        pass

    def modify_option_group(self, OptionGroupName: str, OptionsToInclude: List[OptionConfiguration]=None, OptionsToRemove: List[String]=None, ApplyImmediately: Boolean=None) -> ModifyOptionGroupResult:
        r"""Modifies an existing option group.

        :param self:
        :param ApplyImmediately:  A value that indicates whether to apply the change immediately or during the next maintenance window for each instance associated with the option group.<br/>OptionsToRemove:  Options in this list are removed from the option group.<br/>OptionsToInclude:  Options in this list are added to the option group or, if already present, the specified configuration is used to update the existing configuration.<br/>OptionGroupName:  The name of the option group to be modified. Permanent options, such as the TDE option for Oracle Advanced Security TDE, can't be removed from an option group, and that option group can't be removed from a DB instance once it is associated with a DB instance<br/>
        :return: OptionGroup:  <p/>:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OptionGroupArn</i> The Amazon Resource Name (ARN) for the option group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> If <b>AllowsVpcAndNonVpcInstanceMemberships</b> is <code>false</code>, this field is blank. If <b>AllowsVpcAndNonVpcInstanceMemberships</b> is <code>true</code> and this field is blank, then this option group can be applied to both VPC and non-VPC instances. If this field contains a value, then this option group can only be applied to instances that are in the VPC indicated by this field. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowsVpcAndNonVpcInstanceMemberships</i> Indicates whether this option group can be applied to both VPC and non-VPC instances. The value <code>true</code> indicates the option group can be applied to both VPC and non-VPC instances. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Options</i> Indicates what options are available in the option group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MajorEngineVersion</i> Indicates the major engine version associated with this option group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineName</i> Indicates the name of the engine that this option group can be applied to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OptionGroupDescription</i> Provides a description of the option group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OptionGroupName</i> Specifies the name of the option group.<br/>        """
        pass

    def promote_read_replica(self, DBInstanceIdentifier: str, BackupRetentionPeriod: int=None, PreferredBackupWindow: str=None) -> PromoteReadReplicaResult:
        r"""Promotes a read replica DB instance to a standalone DB instance. <note> <ul> <li> Backup duration is a function of the amount of changes to the database since the previous backup. If you plan to promote a read replica to a standalone instance, we recommend that you enable backups and complete at least one backup prior to promotion. In addition, a read replica cannot be promoted to a standalone instance when it is in the <code>backing-up</code> status. If you have enabled backups on your read replica, configure the automated backup window so that daily backups do not interfere with read replica promotion. </li> <li> This command doesn't apply to Aurora MySQL and Aurora PostgreSQL. </li> </ul> </note>

        :param self:
        :param PreferredBackupWindow:   The daily time range during which automated backups are created if automated backups are enabled, using the <code>BackupRetentionPeriod</code> parameter.   The default is a 30-minute window selected at random from an 8-hour block of time for each Amazon Web Services Region. To see the time blocks available, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/AdjustingTheMaintenanceWindow.html"> Adjusting the Preferred Maintenance Window</a> in the <i>Amazon RDS User Guide.</i>  Constraints: <ul> <li> Must be in the format <code>hh24:mi-hh24:mi</code>. </li> <li> Must be in Universal Coordinated Time (UTC). </li> <li> Must not conflict with the preferred maintenance window. </li> <li> Must be at least 30 minutes. </li> </ul><br/>BackupRetentionPeriod:  The number of days for which automated backups are retained. Setting this parameter to a positive number enables backups. Setting this parameter to 0 disables automated backups. Default: 1 Constraints: <ul> <li> Must be a value from 0 to 35. </li> <li> Can't be set to 0 if the DB instance is a source to read replicas. </li> </ul><br/>DBInstanceIdentifier:  The DB instance identifier. This value is stored as a lowercase string. Constraints: <ul> <li> Must match the identifier of an existing read replica DB instance. </li> </ul> Example: <code>mydbinstance</code> <br/>
        :return: DBInstance:  Contains the details of an Amazon RDS DB instance.  This data type is used as a response element in the <code>DescribeDBInstances</code> action. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamEngineNativeAuditFieldsIncluded</i> Indicates whether engine-native audit fields are included in the database activity stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamMode</i> The mode of the database activity stream. Database events such as a change or access generate an activity stream event. RDS for Oracle always handles these events asynchronously.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamKinesisStreamName</i> The name of the Amazon Kinesis data stream used for the database activity stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamKmsKeyId</i> The Amazon Web Services KMS key identifier used for encrypting messages in the database activity stream. The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the Amazon Web Services KMS customer master key (CMK).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamStatus</i> The status of the database activity stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AwsBackupRecoveryPointArn</i> The Amazon Resource Name (ARN) of the recovery point in Amazon Web Services Backup.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomerOwnedIpEnabled</i> Specifies whether a customer-owned IP address (CoIP) is enabled for an RDS on Outposts DB instance. A <i>CoIP </i>provides local or external connectivity to resources in your Outpost subnets through your on-premises network. For some use cases, a CoIP can provide lower latency for connections to the DB instance from outside of its virtual private cloud (VPC) on your local network. For more information about RDS on Outposts, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-on-outposts.html">Working with Amazon RDS on Amazon Web Services Outposts</a> in the <i>Amazon RDS User Guide</i>. For more information about CoIPs, see <a href="https://docs.aws.amazon.com/outposts/latest/userguide/outposts-networking-components.html#ip-addressing">Customer-owned IP addresses</a> in the <i>Amazon Web Services Outposts User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceAutomatedBackupsReplications</i> The list of replicated automated backups associated with the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TagList</i> A list of tags. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html">Tagging Amazon RDS Resources</a> in the <i>Amazon RDS User Guide.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxAllocatedStorage</i> The upper limit to which Amazon RDS can automatically scale the storage of the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ListenerEndpoint</i> Specifies the listener connection endpoint for SQL Server Always On.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ListenerEndpoint</b>: Specifies the listener connection endpoint for SQL Server Always On.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociatedRoles</i>  The Amazon Web Services Identity and Access Management (IAM) roles associated with the DB instance. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeletionProtection</i> Indicates if the DB instance has deletion protection enabled. The database can't be deleted when deletion protection is enabled. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_DeleteInstance.html"> Deleting a DB Instance</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProcessorFeatures</i> The number of CPU cores and the number of threads per core for the DB instance class of the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnabledCloudwatchLogsExports</i> A list of log types that this DB instance is configured to export to CloudWatch Logs. Log types vary by DB engine. For information about the log types for each DB engine, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.html">Amazon RDS Database Log Files</a> in the <i>Amazon RDS User Guide.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PerformanceInsightsRetentionPeriod</i> The amount of time, in days, to retain Performance Insights data. Valid values are 7 or 731 (2 years). <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PerformanceInsightsKMSKeyId</i> The Amazon Web Services KMS key identifier for encryption of Performance Insights data. The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the Amazon Web Services KMS customer master key (CMK).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PerformanceInsightsEnabled</i> True if Performance Insights is enabled for the DB instance, and otherwise false.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IAMDatabaseAuthenticationEnabled</i> True if mapping of Amazon Web Services Identity and Access Management (IAM) accounts to database accounts is enabled, and otherwise false. IAM database authentication can be enabled for the following database engines <ul> <li> For MySQL 5.6, minor version 5.6.34 or higher </li> <li> For MySQL 5.7, minor version 5.7.16 or higher </li> <li> Aurora 5.6 or higher. To enable IAM database authentication for Aurora, see DBCluster Type. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Timezone</i> The time zone of the DB instance. In most cases, the <code>Timezone</code> element is empty. <code>Timezone</code> content appears only for Microsoft SQL Server DB instances that were created with a time zone specified. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceArn</i> The Amazon Resource Name (ARN) for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PromotionTier</i> A value that specifies the order in which an Aurora Replica is promoted to the primary instance after a failure of the existing primary instance. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Managing.Backups.html#Aurora.Managing.FaultTolerance"> Fault Tolerance for an Aurora DB Cluster</a> in the <i>Amazon Aurora User Guide</i>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MonitoringRoleArn</i> The ARN for the IAM role that permits RDS to send Enhanced Monitoring metrics to Amazon CloudWatch Logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnhancedMonitoringResourceArn</i> The Amazon Resource Name (ARN) of the Amazon CloudWatch Logs log stream that receives the Enhanced Monitoring metrics data for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MonitoringInterval</i> The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CopyTagsToSnapshot</i> Specifies whether tags are copied from the DB instance to snapshots of the DB instance.  <b>Amazon Aurora</b>  Not applicable. Copying tags to snapshots is managed by the DB cluster. Setting this value for an Aurora DB instance has no effect on the DB cluster setting. For more information, see <code>DBCluster</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainMemberships</i> The Active Directory Domain membership records associated with the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CACertificateIdentifier</i> The identifier of the CA certificate for this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DbiResourceId</i> The Amazon Web Services Region-unique, immutable identifier for the DB instance. This identifier is found in Amazon Web Services CloudTrail log entries whenever the Amazon Web Services KMS customer master key (CMK) for the DB instance is accessed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i>  If <code>StorageEncrypted</code> is true, the Amazon Web Services KMS key identifier for the encrypted DB instance.  The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the Amazon Web Services KMS customer master key (CMK).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageEncrypted</i> Specifies whether the DB instance is encrypted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterIdentifier</i> If the DB instance is a member of a DB cluster, contains the name of the DB cluster that the DB instance is a member of.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DbInstancePort</i> Specifies the port that the DB instance listens on. If the DB instance is part of a DB cluster, this can be a different port than the DB cluster port.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TdeCredentialArn</i> The ARN from the key store with which the instance is associated for TDE encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageType</i> Specifies the storage type associated with DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusInfos</i> The status of a read replica. If the instance isn't a read replica, this is blank.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PubliclyAccessible</i> Specifies the accessibility options for the DB instance. When the DB instance is publicly accessible, its DNS endpoint resolves to the private IP address from within the DB instance's VPC, and to the public IP address from outside of the DB instance's VPC. Access to the DB instance is ultimately controlled by the security group it uses, and that public access is not permitted if the security group assigned to the DB instance doesn't permit it. When the DB instance isn't publicly accessible, it is an internal DB instance with a DNS name that resolves to a private IP address. For more information, see <a>CreateDBInstance</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecondaryAvailabilityZone</i> If present, specifies the name of the secondary Availability Zone for a DB instance with multi-AZ support.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NcharCharacterSetName</i> The name of the NCHAR character set for the Oracle DB instance. This character set specifies the Unicode encoding for data stored in table columns of type NCHAR, NCLOB, or NVARCHAR2. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CharacterSetName</i> If present, specifies the name of the character set that this instance is associated with.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OptionGroupMemberships</i> Provides the list of option group memberships for this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Iops</i> Specifies the Provisioned IOPS (I/O operations per second) value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LicenseModel</i> License model information for this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicaMode</i> The open mode of an Oracle read replica. The default is <code>open-read-only</code>. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/oracle-read-replicas.html">Working with Oracle Read Replicas for Amazon RDS</a> in the <i>Amazon RDS User Guide</i>. <note> This attribute is only supported in RDS for Oracle. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadReplicaDBClusterIdentifiers</i> Contains one or more identifiers of Aurora DB clusters to which the RDS DB instance is replicated as a read replica. For example, when you create an Aurora read replica of an RDS MySQL DB instance, the Aurora MySQL DB cluster for the Aurora read replica is shown. This output does not contain information about cross region Aurora read replicas. <note> Currently, each RDS DB instance can have only one Aurora read replica. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadReplicaDBInstanceIdentifiers</i> Contains one or more identifiers of the read replicas associated with this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadReplicaSourceDBInstanceIdentifier</i> Contains the identifier of the source DB instance if this DB instance is a read replica.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoMinorVersionUpgrade</i> A value that indicates that minor version patches are applied automatically.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> Indicates the database engine version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiAZ</i> Specifies if the DB instance is a Multi-AZ deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestRestorableTime</i> Specifies the latest time to which a database can be restored with point-in-time restore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingModifiedValues</i> A value that specifies that changes to the DB instance are pending. This element is only included when changes are pending. Specific changes are identified by subelements.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingModifiedValues</b>: A value that specifies that changes to the DB instance are pending. This element is only included when changes are pending. Specific changes are identified by subelements.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i> Specifies the weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroup</i> Specifies information on the subnet group associated with the DB instance, including the name, description, and subnets in the subnet group.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DBSubnetGroup</b>: Specifies information on the subnet group associated with the DB instance, including the name, description, and subnets in the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZone</i> Specifies the name of the Availability Zone the DB instance is located in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBParameterGroups</i> Provides the list of DB parameter groups applied to this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcSecurityGroups</i> Provides a list of VPC security group elements that the DB instance belongs to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSecurityGroups</i>  A list of DB security group elements containing <code>DBSecurityGroup.Name</code> and <code>DBSecurityGroup.Status</code> subelements. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupRetentionPeriod</i> Specifies the number of days for which automatic DB snapshots are retained.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredBackupWindow</i>  Specifies the daily time range during which automated backups are created if automated backups are enabled, as determined by the <code>BackupRetentionPeriod</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceCreateTime</i> Provides the date and time the DB instance was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllocatedStorage</i> Specifies the allocated storage size specified in gibibytes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i> Specifies the connection endpoint.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Endpoint</b>: Specifies the connection endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBName</i> The meaning of this parameter differs according to the database engine you use.  <b>MySQL, MariaDB, SQL Server, PostgreSQL</b>  Contains the name of the initial database of this instance that was provided at create time, if one was specified when the DB instance was created. This same name is returned for the life of the DB instance. Type: String  <b>Oracle</b>  Contains the Oracle System ID (SID) of the created DB instance. Not shown when the returned parameters do not apply to an Oracle DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUsername</i> Contains the master username for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceStatus</i> Specifies the current state of this database. For information about DB instance statuses, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/accessing-monitoring.html#Overview.DBInstance.Status">Viewing DB instance status</a> in the <i>Amazon RDS User Guide.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> The name of the database engine to be used for this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceClass</i> Contains the name of the compute and memory capacity class of the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceIdentifier</i> Contains a user-supplied database identifier. This identifier is the unique key that identifies a DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HostedZoneId</i> Specifies the ID that Amazon Route 53 assigns when you create a hosted zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Specifies the port that the database engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Address</i> Specifies the DNS address of the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupArn</i> The Amazon Resource Name (ARN) for the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Subnets</i>  Contains a list of <code>Subnet</code> elements. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetGroupStatus</i> Provides the status of the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> Provides the VpcId of the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupDescription</i> Provides the description of the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupName</i> The name of the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupName</i> The DB subnet group for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CACertificateIdentifier</i> The identifier of the CA certificate for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageType</i> The storage type of the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceIdentifier</i> The database identifier for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Iops</i> The Provisioned IOPS value for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LicenseModel</i> The license model for the DB instance. Valid values: <code>license-included</code> | <code>bring-your-own-license</code> | <code>general-public-license</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> The database engine version.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiAZ</i> A value that indicates that the Single-AZ DB instance will change to a Multi-AZ deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupRetentionPeriod</i> The number of days for which automated backups are retained.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> The port for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUserPassword</i> The master credentials for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AllocatedStorage</i> The allocated storage size for the DB instance specified in gibibytes .<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceClass</i> The name of the compute and memory capacity class for the DB instance.<br/>A list of the log types whose configuration is still pending. In other words, these log types are in the process of being activated or deactivated.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingCloudwatchLogsExports</b>: A list of the log types whose configuration is still pending. In other words, these log types are in the process of being activated or deactivated.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HostedZoneId</i> Specifies the ID that Amazon Route 53 assigns when you create a hosted zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Specifies the port that the database engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Address</i> Specifies the DNS address of the DB instance.<br/>        """
        pass

    def promote_read_replica_db_cluster(self, DBClusterIdentifier: str) -> PromoteReadReplicaDBClusterResult:
        r"""Promotes a read replica DB cluster to a standalone DB cluster. <note> This action only applies to Aurora DB clusters. </note>

        :param self:
        :param DBClusterIdentifier:  The identifier of the DB cluster read replica to promote. This parameter isn't case-sensitive.  Constraints: <ul> <li> Must match the identifier of an existing DB cluster read replica. </li> </ul> Example: <code>my-cluster-replica1</code> <br/>
        :return: DBCluster:  Contains the details of an Amazon Aurora DB cluster.  This data type is used as a response element in the <code>DescribeDBClusters</code>, <code>StopDBCluster</code>, and <code>StartDBCluster</code> actions. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingModifiedValues</i> A value that specifies that changes to the DB cluster are pending. This element is only included when changes are pending. Specific changes are identified by subelements.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingModifiedValues</b>: A value that specifies that changes to the DB cluster are pending. This element is only included when changes are pending. Specific changes are identified by subelements.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalWriteForwardingRequested</i> Specifies whether you have requested to enable write forwarding for a secondary cluster in an Aurora global database. Because write forwarding takes time to enable, check the value of <code>GlobalWriteForwardingStatus</code> to confirm that the request has completed before using the write forwarding feature for this cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalWriteForwardingStatus</i> Specifies whether a secondary cluster in an Aurora global database has write forwarding enabled, not enabled, or is in the process of enabling it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TagList</i> A list of tags. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html">Tagging Amazon RDS Resources</a> in the <i>Amazon RDS User Guide.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainMemberships</i> The Active Directory Domain membership records associated with the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CrossAccountClone</i> Specifies whether the DB cluster is a clone of a DB cluster owned by a different Amazon Web Services account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CopyTagsToSnapshot</i> Specifies whether tags are copied from the DB cluster to snapshots of the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamKinesisStreamName</i> The name of the Amazon Kinesis data stream used for the database activity stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamKmsKeyId</i> The Amazon Web Services KMS key identifier used for encrypting messages in the database activity stream. The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the Amazon Web Services KMS customer master key (CMK).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamStatus</i> The status of the database activity stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamMode</i> The mode of the database activity stream. Database events such as a change or access generate an activity stream event. The database session can handle these events either synchronously or asynchronously. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HttpEndpointEnabled</i> A value that indicates whether the HTTP endpoint for an Aurora Serverless DB cluster is enabled. When enabled, the HTTP endpoint provides a connectionless web service API for running SQL queries on the Aurora Serverless DB cluster. You can also query your database from inside the RDS console with the query editor. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/data-api.html">Using the Data API for Aurora Serverless</a> in the <i>Amazon Aurora User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeletionProtection</i> Indicates if the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ScalingConfigurationInfo</i> Shows the scaling configuration for an Aurora DB cluster in <code>serverless</code> DB engine mode. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html">Using Amazon Aurora Serverless</a> in the <i>Amazon Aurora User Guide</i>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ScalingConfigurationInfo</b>: Shows the scaling configuration for an Aurora DB cluster in <code>serverless</code> DB engine mode. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html">Using Amazon Aurora Serverless</a> in the <i>Amazon Aurora User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineMode</i> The DB engine mode of the DB cluster, either <code>provisioned</code>, <code>serverless</code>, <code>parallelquery</code>, <code>global</code>, or <code>multimaster</code>. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBCluster.html"> CreateDBCluster</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Capacity</i> The current capacity of an Aurora Serverless DB cluster. The capacity is 0 (zero) when the cluster is paused. For more information about Aurora Serverless, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html">Using Amazon Aurora Serverless</a> in the <i>Amazon Aurora User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnabledCloudwatchLogsExports</i> A list of log types that this DB cluster is configured to export to CloudWatch Logs. Log types vary by DB engine. For information about the log types for each DB engine, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_LogAccess.html">Amazon RDS Database Log Files</a> in the <i>Amazon Aurora User Guide.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BacktrackConsumedChangeRecords</i> The number of change records stored for Backtrack.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BacktrackWindow</i> The target backtrack window, in seconds. If this value is set to 0, backtracking is disabled for the DB cluster. Otherwise, backtracking is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EarliestBacktrackTime</i> The earliest time to which a DB cluster can be backtracked.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterCreateTime</i> Specifies the time when the DB cluster was created, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloneGroupId</i> Identifies the clone group to which the DB cluster is associated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IAMDatabaseAuthenticationEnabled</i> A value that indicates whether the mapping of Amazon Web Services Identity and Access Management (IAM) accounts to database accounts is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociatedRoles</i> Provides a list of the Amazon Web Services Identity and Access Management (IAM) roles that are associated with the DB cluster. IAM roles that are associated with a DB cluster grant permission for the DB cluster to access other Amazon Web Services on your behalf.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterArn</i> The Amazon Resource Name (ARN) for the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DbClusterResourceId</i> The Amazon Web Services Region-unique, immutable identifier for the DB cluster. This identifier is found in Amazon Web Services CloudTrail log entries whenever the Amazon Web Services KMS CMK for the DB cluster is accessed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> If <code>StorageEncrypted</code> is enabled, the Amazon Web Services KMS key identifier for the encrypted DB cluster. The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the Amazon Web Services KMS customer master key (CMK).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageEncrypted</i> Specifies whether the DB cluster is encrypted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HostedZoneId</i> Specifies the ID that Amazon Route 53 assigns when you create a hosted zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcSecurityGroups</i> Provides a list of VPC security groups that the DB cluster belongs to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterMembers</i> Provides the list of instances that make up the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadReplicaIdentifiers</i> Contains one or more identifiers of the read replicas associated with this DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationSourceIdentifier</i> Contains the identifier of the source DB cluster if this DB cluster is a read replica.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i> Specifies the weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredBackupWindow</i> Specifies the daily time range during which automated backups are created if automated backups are enabled, as determined by the <code>BackupRetentionPeriod</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterOptionGroupMemberships</i> Provides the list of option group memberships for this DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUsername</i> Contains the master username for the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Specifies the port that the database engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestRestorableTime</i> Specifies the latest time to which a database can be restored with point-in-time restore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> Indicates the database engine version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> The name of the database engine to be used for this DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiAZ</i> Specifies whether the DB cluster has instances in multiple Availability Zones.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomEndpoints</i> Identifies all custom endpoints associated with the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReaderEndpoint</i> The reader endpoint for the DB cluster. The reader endpoint for a DB cluster load-balances connections across the Aurora Replicas that are available in a DB cluster. As clients request new connections to the reader endpoint, Aurora distributes the connection requests among the Aurora Replicas in the DB cluster. This functionality can help balance your read workload across multiple Aurora Replicas in your DB cluster.  If a failover occurs, and the Aurora Replica that you are connected to is promoted to be the primary instance, your connection is dropped. To continue sending your read workload to other Aurora Replicas in the cluster, you can then reconnect to the reader endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i> Specifies the connection endpoint for the primary instance of the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EarliestRestorableTime</i> The earliest time to which a database can be restored with point-in-time restore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PercentProgress</i> Specifies the progress of the operation as a percentage.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Specifies the current state of this DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroup</i> Specifies information on the subnet group associated with the DB cluster, including the name, description, and subnets in the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterParameterGroup</i> Specifies the name of the DB cluster parameter group for the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterIdentifier</i> Contains a user-supplied DB cluster identifier. This identifier is the unique key that identifies a DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> Contains the name of the initial database of this DB cluster that was provided at create time, if one was specified when the DB cluster was created. This same name is returned for the life of the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CharacterSetName</i> If present, specifies the name of the character set that this cluster is associated with.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupRetentionPeriod</i> Specifies the number of days for which automatic DB snapshots are retained.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZones</i> Provides the list of Availability Zones (AZs) where instances in the DB cluster can be created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllocatedStorage</i> For all database engines except Amazon Aurora, <code>AllocatedStorage</code> specifies the allocated storage size in gibibytes (GiB). For Aurora, <code>AllocatedStorage</code> always returns 1, because Aurora DB cluster storage size isn't fixed, but instead automatically adjusts as needed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TimeoutAction</i> The timeout action of a call to <code>ModifyCurrentDBClusterCapacity</code>, either <code>ForceApplyCapacityChange</code> or <code>RollbackCapacityChange</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecondsUntilAutoPause</i> The remaining amount of time, in seconds, before the Aurora DB cluster in <code>serverless</code> mode is paused. A DB cluster can be paused only when it's idle (it has no connections).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoPause</i> A value that indicates whether automatic pause is allowed for the Aurora DB cluster in <code>serverless</code> DB engine mode. When the value is set to false for an Aurora Serverless DB cluster, the DB cluster automatically resumes.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxCapacity</i> The maximum capacity for an Aurora DB cluster in <code>serverless</code> DB engine mode.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MinCapacity</i> The maximum capacity for the Aurora DB cluster in <code>serverless</code> DB engine mode.<br/>A list of the log types whose configuration is still pending. In other words, these log types are in the process of being activated or deactivated.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingCloudwatchLogsExports</b>: A list of the log types whose configuration is still pending. In other words, these log types are in the process of being activated or deactivated.        """
        pass

    def purchase_reserved_db_instances_offering(self, ReservedDBInstancesOfferingId: str, ReservedDBInstanceId: str=None, DBInstanceCount: int=None, Tags: List[Tag]=None) -> PurchaseReservedDBInstancesOfferingResult:
        r"""Purchases a reserved DB instance offering.

        :param self:
        :param Tags:  A list of tags. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html">Tagging Amazon RDS Resources</a> in the <i>Amazon RDS User Guide.</i> <br/>DBInstanceCount:  The number of instances to reserve. Default: <code>1</code> <br/>ReservedDBInstanceId:  Customer-specified identifier to track this reservation. Example: myreservationID<br/>ReservedDBInstancesOfferingId:  The ID of the Reserved DB instance offering to purchase. Example: 438012d3-4052-4cc7-b2e3-8d3372e0e706<br/>
        :return: ReservedDBInstance:   This data type is used as a response element in the <code>DescribeReservedDBInstances</code> and <code>PurchaseReservedDBInstancesOffering</code> actions. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LeaseId</i> The unique identifier for the lease associated with the reserved DB instance. <note> Amazon Web Services Support might request the lease ID for an issue related to a reserved DB instance. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReservedDBInstanceArn</i> The Amazon Resource Name (ARN) for the reserved DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecurringCharges</i> The recurring price charged to run this reserved DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the reserved DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiAZ</i> Indicates if the reservation applies to Multi-AZ deployments.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OfferingType</i> The offering type of this reserved DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProductDescription</i> The description of the reserved DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceCount</i> The number of reserved DB instances.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CurrencyCode</i> The currency code for the reserved DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UsagePrice</i> The hourly price charged for this reserved DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FixedPrice</i> The fixed price charged for this reserved DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Duration</i> The duration of the reservation in seconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StartTime</i> The time the reservation started.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceClass</i> The DB instance class for the reserved DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReservedDBInstancesOfferingId</i> The offering identifier.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReservedDBInstanceId</i> The unique identifier for the reservation.<br/>        """
        pass

    def reboot_db_instance(self, DBInstanceIdentifier: str, ForceFailover: BooleanOptional=None) -> RebootDBInstanceResult:
        r"""You might need to reboot your DB instance, usually for maintenance reasons. For example, if you make certain modifications, or if you change the DB parameter group associated with the DB instance, you must reboot the instance for the changes to take effect.  Rebooting a DB instance restarts the database engine service. Rebooting a DB instance results in a momentary outage, during which the DB instance status is set to rebooting.  For more information about rebooting, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_RebootInstance.html">Rebooting a DB Instance</a> in the <i>Amazon RDS User Guide.</i> 

        :param self:
        :param ForceFailover:   A value that indicates whether the reboot is conducted through a Multi-AZ failover.  Constraint: You can't enable force failover if the instance isn't configured for Multi-AZ.<br/>DBInstanceIdentifier:  The DB instance identifier. This parameter is stored as a lowercase string. Constraints: <ul> <li> Must match the identifier of an existing DBInstance. </li> </ul><br/>
        :return: DBInstance:  Contains the details of an Amazon RDS DB instance.  This data type is used as a response element in the <code>DescribeDBInstances</code> action. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamEngineNativeAuditFieldsIncluded</i> Indicates whether engine-native audit fields are included in the database activity stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamMode</i> The mode of the database activity stream. Database events such as a change or access generate an activity stream event. RDS for Oracle always handles these events asynchronously.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamKinesisStreamName</i> The name of the Amazon Kinesis data stream used for the database activity stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamKmsKeyId</i> The Amazon Web Services KMS key identifier used for encrypting messages in the database activity stream. The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the Amazon Web Services KMS customer master key (CMK).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamStatus</i> The status of the database activity stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AwsBackupRecoveryPointArn</i> The Amazon Resource Name (ARN) of the recovery point in Amazon Web Services Backup.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomerOwnedIpEnabled</i> Specifies whether a customer-owned IP address (CoIP) is enabled for an RDS on Outposts DB instance. A <i>CoIP </i>provides local or external connectivity to resources in your Outpost subnets through your on-premises network. For some use cases, a CoIP can provide lower latency for connections to the DB instance from outside of its virtual private cloud (VPC) on your local network. For more information about RDS on Outposts, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-on-outposts.html">Working with Amazon RDS on Amazon Web Services Outposts</a> in the <i>Amazon RDS User Guide</i>. For more information about CoIPs, see <a href="https://docs.aws.amazon.com/outposts/latest/userguide/outposts-networking-components.html#ip-addressing">Customer-owned IP addresses</a> in the <i>Amazon Web Services Outposts User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceAutomatedBackupsReplications</i> The list of replicated automated backups associated with the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TagList</i> A list of tags. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html">Tagging Amazon RDS Resources</a> in the <i>Amazon RDS User Guide.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxAllocatedStorage</i> The upper limit to which Amazon RDS can automatically scale the storage of the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ListenerEndpoint</i> Specifies the listener connection endpoint for SQL Server Always On.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ListenerEndpoint</b>: Specifies the listener connection endpoint for SQL Server Always On.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociatedRoles</i>  The Amazon Web Services Identity and Access Management (IAM) roles associated with the DB instance. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeletionProtection</i> Indicates if the DB instance has deletion protection enabled. The database can't be deleted when deletion protection is enabled. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_DeleteInstance.html"> Deleting a DB Instance</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProcessorFeatures</i> The number of CPU cores and the number of threads per core for the DB instance class of the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnabledCloudwatchLogsExports</i> A list of log types that this DB instance is configured to export to CloudWatch Logs. Log types vary by DB engine. For information about the log types for each DB engine, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.html">Amazon RDS Database Log Files</a> in the <i>Amazon RDS User Guide.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PerformanceInsightsRetentionPeriod</i> The amount of time, in days, to retain Performance Insights data. Valid values are 7 or 731 (2 years). <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PerformanceInsightsKMSKeyId</i> The Amazon Web Services KMS key identifier for encryption of Performance Insights data. The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the Amazon Web Services KMS customer master key (CMK).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PerformanceInsightsEnabled</i> True if Performance Insights is enabled for the DB instance, and otherwise false.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IAMDatabaseAuthenticationEnabled</i> True if mapping of Amazon Web Services Identity and Access Management (IAM) accounts to database accounts is enabled, and otherwise false. IAM database authentication can be enabled for the following database engines <ul> <li> For MySQL 5.6, minor version 5.6.34 or higher </li> <li> For MySQL 5.7, minor version 5.7.16 or higher </li> <li> Aurora 5.6 or higher. To enable IAM database authentication for Aurora, see DBCluster Type. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Timezone</i> The time zone of the DB instance. In most cases, the <code>Timezone</code> element is empty. <code>Timezone</code> content appears only for Microsoft SQL Server DB instances that were created with a time zone specified. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceArn</i> The Amazon Resource Name (ARN) for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PromotionTier</i> A value that specifies the order in which an Aurora Replica is promoted to the primary instance after a failure of the existing primary instance. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Managing.Backups.html#Aurora.Managing.FaultTolerance"> Fault Tolerance for an Aurora DB Cluster</a> in the <i>Amazon Aurora User Guide</i>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MonitoringRoleArn</i> The ARN for the IAM role that permits RDS to send Enhanced Monitoring metrics to Amazon CloudWatch Logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnhancedMonitoringResourceArn</i> The Amazon Resource Name (ARN) of the Amazon CloudWatch Logs log stream that receives the Enhanced Monitoring metrics data for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MonitoringInterval</i> The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CopyTagsToSnapshot</i> Specifies whether tags are copied from the DB instance to snapshots of the DB instance.  <b>Amazon Aurora</b>  Not applicable. Copying tags to snapshots is managed by the DB cluster. Setting this value for an Aurora DB instance has no effect on the DB cluster setting. For more information, see <code>DBCluster</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainMemberships</i> The Active Directory Domain membership records associated with the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CACertificateIdentifier</i> The identifier of the CA certificate for this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DbiResourceId</i> The Amazon Web Services Region-unique, immutable identifier for the DB instance. This identifier is found in Amazon Web Services CloudTrail log entries whenever the Amazon Web Services KMS customer master key (CMK) for the DB instance is accessed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i>  If <code>StorageEncrypted</code> is true, the Amazon Web Services KMS key identifier for the encrypted DB instance.  The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the Amazon Web Services KMS customer master key (CMK).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageEncrypted</i> Specifies whether the DB instance is encrypted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterIdentifier</i> If the DB instance is a member of a DB cluster, contains the name of the DB cluster that the DB instance is a member of.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DbInstancePort</i> Specifies the port that the DB instance listens on. If the DB instance is part of a DB cluster, this can be a different port than the DB cluster port.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TdeCredentialArn</i> The ARN from the key store with which the instance is associated for TDE encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageType</i> Specifies the storage type associated with DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusInfos</i> The status of a read replica. If the instance isn't a read replica, this is blank.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PubliclyAccessible</i> Specifies the accessibility options for the DB instance. When the DB instance is publicly accessible, its DNS endpoint resolves to the private IP address from within the DB instance's VPC, and to the public IP address from outside of the DB instance's VPC. Access to the DB instance is ultimately controlled by the security group it uses, and that public access is not permitted if the security group assigned to the DB instance doesn't permit it. When the DB instance isn't publicly accessible, it is an internal DB instance with a DNS name that resolves to a private IP address. For more information, see <a>CreateDBInstance</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecondaryAvailabilityZone</i> If present, specifies the name of the secondary Availability Zone for a DB instance with multi-AZ support.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NcharCharacterSetName</i> The name of the NCHAR character set for the Oracle DB instance. This character set specifies the Unicode encoding for data stored in table columns of type NCHAR, NCLOB, or NVARCHAR2. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CharacterSetName</i> If present, specifies the name of the character set that this instance is associated with.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OptionGroupMemberships</i> Provides the list of option group memberships for this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Iops</i> Specifies the Provisioned IOPS (I/O operations per second) value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LicenseModel</i> License model information for this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicaMode</i> The open mode of an Oracle read replica. The default is <code>open-read-only</code>. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/oracle-read-replicas.html">Working with Oracle Read Replicas for Amazon RDS</a> in the <i>Amazon RDS User Guide</i>. <note> This attribute is only supported in RDS for Oracle. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadReplicaDBClusterIdentifiers</i> Contains one or more identifiers of Aurora DB clusters to which the RDS DB instance is replicated as a read replica. For example, when you create an Aurora read replica of an RDS MySQL DB instance, the Aurora MySQL DB cluster for the Aurora read replica is shown. This output does not contain information about cross region Aurora read replicas. <note> Currently, each RDS DB instance can have only one Aurora read replica. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadReplicaDBInstanceIdentifiers</i> Contains one or more identifiers of the read replicas associated with this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadReplicaSourceDBInstanceIdentifier</i> Contains the identifier of the source DB instance if this DB instance is a read replica.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoMinorVersionUpgrade</i> A value that indicates that minor version patches are applied automatically.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> Indicates the database engine version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiAZ</i> Specifies if the DB instance is a Multi-AZ deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestRestorableTime</i> Specifies the latest time to which a database can be restored with point-in-time restore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingModifiedValues</i> A value that specifies that changes to the DB instance are pending. This element is only included when changes are pending. Specific changes are identified by subelements.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingModifiedValues</b>: A value that specifies that changes to the DB instance are pending. This element is only included when changes are pending. Specific changes are identified by subelements.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i> Specifies the weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroup</i> Specifies information on the subnet group associated with the DB instance, including the name, description, and subnets in the subnet group.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DBSubnetGroup</b>: Specifies information on the subnet group associated with the DB instance, including the name, description, and subnets in the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZone</i> Specifies the name of the Availability Zone the DB instance is located in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBParameterGroups</i> Provides the list of DB parameter groups applied to this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcSecurityGroups</i> Provides a list of VPC security group elements that the DB instance belongs to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSecurityGroups</i>  A list of DB security group elements containing <code>DBSecurityGroup.Name</code> and <code>DBSecurityGroup.Status</code> subelements. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupRetentionPeriod</i> Specifies the number of days for which automatic DB snapshots are retained.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredBackupWindow</i>  Specifies the daily time range during which automated backups are created if automated backups are enabled, as determined by the <code>BackupRetentionPeriod</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceCreateTime</i> Provides the date and time the DB instance was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllocatedStorage</i> Specifies the allocated storage size specified in gibibytes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i> Specifies the connection endpoint.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Endpoint</b>: Specifies the connection endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBName</i> The meaning of this parameter differs according to the database engine you use.  <b>MySQL, MariaDB, SQL Server, PostgreSQL</b>  Contains the name of the initial database of this instance that was provided at create time, if one was specified when the DB instance was created. This same name is returned for the life of the DB instance. Type: String  <b>Oracle</b>  Contains the Oracle System ID (SID) of the created DB instance. Not shown when the returned parameters do not apply to an Oracle DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUsername</i> Contains the master username for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceStatus</i> Specifies the current state of this database. For information about DB instance statuses, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/accessing-monitoring.html#Overview.DBInstance.Status">Viewing DB instance status</a> in the <i>Amazon RDS User Guide.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> The name of the database engine to be used for this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceClass</i> Contains the name of the compute and memory capacity class of the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceIdentifier</i> Contains a user-supplied database identifier. This identifier is the unique key that identifies a DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HostedZoneId</i> Specifies the ID that Amazon Route 53 assigns when you create a hosted zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Specifies the port that the database engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Address</i> Specifies the DNS address of the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupArn</i> The Amazon Resource Name (ARN) for the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Subnets</i>  Contains a list of <code>Subnet</code> elements. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetGroupStatus</i> Provides the status of the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> Provides the VpcId of the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupDescription</i> Provides the description of the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupName</i> The name of the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupName</i> The DB subnet group for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CACertificateIdentifier</i> The identifier of the CA certificate for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageType</i> The storage type of the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceIdentifier</i> The database identifier for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Iops</i> The Provisioned IOPS value for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LicenseModel</i> The license model for the DB instance. Valid values: <code>license-included</code> | <code>bring-your-own-license</code> | <code>general-public-license</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> The database engine version.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiAZ</i> A value that indicates that the Single-AZ DB instance will change to a Multi-AZ deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupRetentionPeriod</i> The number of days for which automated backups are retained.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> The port for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUserPassword</i> The master credentials for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AllocatedStorage</i> The allocated storage size for the DB instance specified in gibibytes .<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceClass</i> The name of the compute and memory capacity class for the DB instance.<br/>A list of the log types whose configuration is still pending. In other words, these log types are in the process of being activated or deactivated.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingCloudwatchLogsExports</b>: A list of the log types whose configuration is still pending. In other words, these log types are in the process of being activated or deactivated.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HostedZoneId</i> Specifies the ID that Amazon Route 53 assigns when you create a hosted zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Specifies the port that the database engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Address</i> Specifies the DNS address of the DB instance.<br/>        """
        pass

    def register_db_proxy_targets(self, DBProxyName: str, TargetGroupName: str=None, DBInstanceIdentifiers: List[String]=None, DBClusterIdentifiers: List[String]=None) -> RegisterDBProxyTargetsResponse:
        r"""Associate one or more <code>DBProxyTarget</code> data structures with a <code>DBProxyTargetGroup</code>.

        :param self:
        :param DBClusterIdentifiers:  One or more DB cluster identifiers.<br/>DBInstanceIdentifiers:  One or more DB instance identifiers.<br/>TargetGroupName:  The identifier of the <code>DBProxyTargetGroup</code>.<br/>DBProxyName:  The identifier of the <code>DBProxy</code> that is associated with the <code>DBProxyTargetGroup</code>.<br/>
        :return: DBProxyTargets:  One or more <code>DBProxyTarget</code> objects that are created when you register targets with a target group.<br/>        """
        pass

    def remove_from_global_cluster(self, GlobalClusterIdentifier: str=None, DbClusterIdentifier: str=None) -> RemoveFromGlobalClusterResult:
        r""" Detaches an Aurora secondary cluster from an Aurora global database cluster. The cluster becomes a standalone cluster with read-write capability instead of being read-only and receiving data from a primary cluster in a different region.  <note> This action only applies to Aurora DB clusters. </note>

        :param self:
        :param DbClusterIdentifier:   The Amazon Resource Name (ARN) identifying the cluster that was detached from the Aurora global database cluster. <br/>GlobalClusterIdentifier:   The cluster identifier to detach from the Aurora global database cluster. <br/>
        :return: GlobalCluster:  A data type representing an Aurora global database.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FailoverState</i> A data object containing all properties for the current state of an in-process or pending failover process for this Aurora global database. This object is empty unless the <a>FailoverGlobalCluster</a> API operation has been called on this Aurora global database (<a>GlobalCluster</a>). &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>FailoverState</b>: A data object containing all properties for the current state of an in-process or pending failover process for this Aurora global database. This object is empty unless the <a>FailoverGlobalCluster</a> API operation has been called on this Aurora global database (<a>GlobalCluster</a>). <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalClusterMembers</i>  The list of cluster IDs for secondary clusters within the global database cluster. Currently limited to 1 item. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeletionProtection</i>  The deletion protection setting for the new global database cluster. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageEncrypted</i>  The storage encryption setting for the global database cluster. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i>  The default database name within the new global database cluster. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> Indicates the database engine version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i>  The Aurora database engine used by the global database cluster. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Specifies the current state of this global database cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalClusterArn</i> The Amazon Resource Name (ARN) for the global database cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalClusterResourceId</i>  The Amazon Web Services Region-unique, immutable identifier for the global database cluster. This identifier is found in Amazon Web Services CloudTrail log entries whenever the Amazon Web Services KMS customer master key (CMK) for the DB cluster is accessed. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalClusterIdentifier</i>  Contains a user-supplied global database cluster identifier. This identifier is the unique key that identifies a global database cluster. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ToDbClusterArn</i> The Amazon Resource Name (ARN) of the Aurora DB cluster that is currently being promoted, and which is associated with this state.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FromDbClusterArn</i> The Amazon Resource Name (ARN) of the Aurora DB cluster that is currently being demoted, and which is associated with this state. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current status of the Aurora global database (<a>GlobalCluster</a>). Possible values are as follows:  <ul> <li> pending &#x96; A request to fail over the Aurora global database (<a>GlobalCluster</a>) has been received by the service. The <code>GlobalCluster</code>'s primary DB cluster and the specified secondary DB cluster are being verified before the failover process can start. </li> <li> failing-over &#x96; This status covers the range of Aurora internal operations that take place during the failover process, such as demoting the primary Aurora DB cluster, promoting the secondary Aurora DB, and synchronizing replicas.  </li> <li> cancelling &#x96; The request to fail over the Aurora global database (<a>GlobalCluster</a>) was cancelled and the primary Aurora DB cluster and the selected secondary Aurora DB cluster are returning to their previous states.  </li> </ul><br/>        """
        pass

    def remove_role_from_db_cluster(self, RoleArn: str, DBClusterIdentifier: str, FeatureName: str=None):
        r"""Disassociates an Amazon Web Services Identity and Access Management (IAM) role from an Amazon Aurora DB cluster. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Integrating.Authorizing.html">Authorizing Amazon Aurora MySQL to Access Other Amazon Web Services Services on Your Behalf </a> in the <i>Amazon Aurora User Guide</i>. <note> This action only applies to Aurora DB clusters. </note>

        :param self:
        :param FeatureName:  The name of the feature for the DB cluster that the IAM role is to be disassociated from. For the list of supported feature names, see <a>DBEngineVersion</a>.<br/>RoleArn:  The Amazon Resource Name (ARN) of the IAM role to disassociate from the Aurora DB cluster, for example <code>arn:aws:iam::123456789012:role/AuroraAccessRole</code>.<br/>DBClusterIdentifier:  The name of the DB cluster to disassociate the IAM role from.<br/>
        :return:         """
        pass

    def remove_role_from_db_instance(self, FeatureName: str, RoleArn: str, DBInstanceIdentifier: str):
        r"""Disassociates an Amazon Web Services Identity and Access Management (IAM) role from a DB instance.

        :param self:
        :param FeatureName:  The name of the feature for the DB instance that the IAM role is to be disassociated from. For the list of supported feature names, see <code>DBEngineVersion</code>. <br/>RoleArn:  The Amazon Resource Name (ARN) of the IAM role to disassociate from the DB instance, for example, <code>arn:aws:iam::123456789012:role/AccessRole</code>.<br/>DBInstanceIdentifier:  The name of the DB instance to disassociate the IAM role from.<br/>
        :return:         """
        pass

    def remove_source_identifier_from_subscription(self, SourceIdentifier: str, SubscriptionName: str) -> RemoveSourceIdentifierFromSubscriptionResult:
        r"""Removes a source identifier from an existing RDS event notification subscription.

        :param self:
        :param SourceIdentifier:   The source identifier to be removed from the subscription, such as the <b>DB instance identifier</b> for a DB instance or the name of a security group. <br/>SubscriptionName:  The name of the RDS event notification subscription you want to remove a source identifier from.<br/>
        :return: EventSubscription:  Contains the results of a successful invocation of the <code>DescribeEventSubscriptions</code> action.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EventSubscriptionArn</i> The Amazon Resource Name (ARN) for the event subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> A Boolean value indicating if the subscription is enabled. True indicates the subscription is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EventCategoriesList</i> A list of event categories for the RDS event notification subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceIdsList</i> A list of source IDs for the RDS event notification subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceType</i> The source type for the RDS event notification subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubscriptionCreationTime</i> The time the RDS event notification subscription was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the RDS event notification subscription. Constraints: Can be one of the following: creating | modifying | deleting | active | no-permission | topic-not-exist The status "no-permission" indicates that RDS no longer has permission to post to the SNS topic. The status "topic-not-exist" indicates that the topic was deleted after the subscription was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnsTopicArn</i> The topic ARN of the RDS event notification subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustSubscriptionId</i> The RDS event notification subscription Id.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomerAwsId</i> The Amazon Web Services customer account associated with the RDS event notification subscription.<br/>        """
        pass

    def remove_tags_from_resource(self, TagKeys: List[String], ResourceName: str):
        r"""Removes metadata tags from an Amazon RDS resource. For an overview on tagging an Amazon RDS resource, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.Tagging.html">Tagging Amazon RDS Resources</a> in the <i>Amazon RDS User Guide.</i> 

        :param self:
        :param TagKeys:  The tag key (name) of the tag to be removed.<br/>ResourceName:  The Amazon RDS resource that the tags are removed from. This value is an Amazon Resource Name (ARN). For information about creating an ARN, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.ARN.html#USER_Tagging.ARN.Constructing"> Constructing an ARN for Amazon RDS</a> in the <i>Amazon RDS User Guide.</i> <br/>
        :return:         """
        pass

    def reset_db_cluster_parameter_group(self, DBClusterParameterGroupName: str, ResetAllParameters: Boolean=None, Parameters: List[Parameter]=None) -> DBClusterParameterGroupNameMessage:
        r""" Modifies the parameters of a DB cluster parameter group to the default value. To reset specific parameters submit a list of the following: <code>ParameterName</code> and <code>ApplyMethod</code>. To reset the entire DB cluster parameter group, specify the <code>DBClusterParameterGroupName</code> and <code>ResetAllParameters</code> parameters.   When resetting the entire group, dynamic parameters are updated immediately and static parameters are set to <code>pending-reboot</code> to take effect on the next DB instance restart or <code>RebootDBInstance</code> request. You must call <code>RebootDBInstance</code> for every DB instance in your DB cluster that you want the updated static parameter to apply to. For more information on Amazon Aurora, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html"> What Is Amazon Aurora?</a> in the <i>Amazon Aurora User Guide.</i>  <note> This action only applies to Aurora DB clusters. </note>

        :param self:
        :param Parameters:  A list of parameter names in the DB cluster parameter group to reset to the default values. You can't use this parameter if the <code>ResetAllParameters</code> parameter is enabled.<br/>ResetAllParameters:  A value that indicates whether to reset all parameters in the DB cluster parameter group to their default values. You can't use this parameter if there is a list of parameter names specified for the <code>Parameters</code> parameter.<br/>DBClusterParameterGroupName:  The name of the DB cluster parameter group to reset.<br/>
        :return: DBClusterParameterGroupName:  The name of the DB cluster parameter group. Constraints: <ul> <li> Must be 1 to 255 letters or numbers. </li> <li> First character must be a letter </li> <li> Can't end with a hyphen or contain two consecutive hyphens </li> </ul> <note> This value is stored as a lowercase string. </note><br/>        """
        pass

    def reset_db_parameter_group(self, DBParameterGroupName: str, ResetAllParameters: Boolean=None, Parameters: List[Parameter]=None) -> DBParameterGroupNameMessage:
        r"""Modifies the parameters of a DB parameter group to the engine/system default value. To reset specific parameters, provide a list of the following: <code>ParameterName</code> and <code>ApplyMethod</code>. To reset the entire DB parameter group, specify the <code>DBParameterGroup</code> name and <code>ResetAllParameters</code> parameters. When resetting the entire group, dynamic parameters are updated immediately and static parameters are set to <code>pending-reboot</code> to take effect on the next DB instance restart or <code>RebootDBInstance</code> request. 

        :param self:
        :param Parameters:  To reset the entire DB parameter group, specify the <code>DBParameterGroup</code> name and <code>ResetAllParameters</code> parameters. To reset specific parameters, provide a list of the following: <code>ParameterName</code> and <code>ApplyMethod</code>. A maximum of 20 parameters can be modified in a single request.  <b>MySQL</b>  Valid Values (for Apply method): <code>immediate</code> | <code>pending-reboot</code>  You can use the immediate value with dynamic parameters only. You can use the <code>pending-reboot</code> value for both dynamic and static parameters, and changes are applied when DB instance reboots.  <b>MariaDB</b>  Valid Values (for Apply method): <code>immediate</code> | <code>pending-reboot</code>  You can use the immediate value with dynamic parameters only. You can use the <code>pending-reboot</code> value for both dynamic and static parameters, and changes are applied when DB instance reboots.  <b>Oracle</b>  Valid Values (for Apply method): <code>pending-reboot</code> <br/>ResetAllParameters:   A value that indicates whether to reset all parameters in the DB parameter group to default values. By default, all parameters in the DB parameter group are reset to default values. <br/>DBParameterGroupName:  The name of the DB parameter group. Constraints: <ul> <li> Must match the name of an existing <code>DBParameterGroup</code>. </li> </ul><br/>
        :return: DBParameterGroupName:  The name of the DB parameter group.<br/>        """
        pass

    def restore_db_cluster_from_s3(self, S3IngestionRoleArn: str, S3BucketName: str, SourceEngineVersion: str, SourceEngine: str, MasterUserPassword: str, MasterUsername: str, Engine: str, DBClusterIdentifier: str, AvailabilityZones: List[String]=None, BackupRetentionPeriod: int=None, CharacterSetName: str=None, DatabaseName: str=None, DBClusterParameterGroupName: str=None, VpcSecurityGroupIds: List[String]=None, DBSubnetGroupName: str=None, EngineVersion: str=None, Port: int=None, OptionGroupName: str=None, PreferredBackupWindow: str=None, PreferredMaintenanceWindow: str=None, Tags: List[Tag]=None, StorageEncrypted: BooleanOptional=None, KmsKeyId: str=None, EnableIAMDatabaseAuthentication: BooleanOptional=None, S3Prefix: str=None, BacktrackWindow: LongOptional=None, EnableCloudwatchLogsExports: List[String]=None, DeletionProtection: BooleanOptional=None, CopyTagsToSnapshot: BooleanOptional=None, Domain: str=None, DomainIAMRoleName: str=None) -> RestoreDBClusterFromS3Result:
        r"""Creates an Amazon Aurora DB cluster from MySQL data stored in an Amazon S3 bucket. Amazon RDS must be authorized to access the Amazon S3 bucket and the data must be created using the Percona XtraBackup utility as described in <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Migrating.ExtMySQL.html#AuroraMySQL.Migrating.ExtMySQL.S3"> Migrating Data from MySQL by Using an Amazon S3 Bucket</a> in the <i>Amazon Aurora User Guide</i>. <note> This action only restores the DB cluster, not the DB instances for that DB cluster. You must invoke the <code>CreateDBInstance</code> action to create DB instances for the restored DB cluster, specifying the identifier of the restored DB cluster in <code>DBClusterIdentifier</code>. You can create DB instances only after the <code>RestoreDBClusterFromS3</code> action has completed and the DB cluster is available. </note> For more information on Amazon Aurora, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html"> What Is Amazon Aurora?</a> in the <i>Amazon Aurora User Guide.</i>  <note> This action only applies to Aurora DB clusters. The source DB engine must be MySQL. </note>

        :param self:
        :param DomainIAMRoleName:  Specify the name of the IAM role to be used when making API calls to the Directory Service.<br/>Domain:  Specify the Active Directory directory ID to restore the DB cluster in. The domain must be created prior to this operation.   For Amazon Aurora DB clusters, Amazon RDS can use Kerberos Authentication to authenticate users that connect to the DB cluster. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/kerberos-authentication.html">Kerberos Authentication</a> in the <i>Amazon Aurora User Guide</i>. <br/>CopyTagsToSnapshot:  A value that indicates whether to copy all tags from the restored DB cluster to snapshots of the restored DB cluster. The default is not to copy them.<br/>DeletionProtection:  A value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled. <br/>EnableCloudwatchLogsExports:  The list of logs that the restored DB cluster is to export to CloudWatch Logs. The values in the list depend on the DB engine being used. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_LogAccess.html#USER_LogAccess.Procedural.UploadtoCloudWatch">Publishing Database Logs to Amazon CloudWatch Logs</a> in the <i>Amazon Aurora User Guide</i>.<br/>BacktrackWindow:  The target backtrack window, in seconds. To disable backtracking, set this value to 0. <note> Currently, Backtrack is only supported for Aurora MySQL DB clusters. </note> Default: 0 Constraints: <ul> <li> If specified, this value must be set to a number from 0 to 259,200 (72 hours). </li> </ul><br/>S3IngestionRoleArn:  The Amazon Resource Name (ARN) of the Amazon Web Services Identity and Access Management (IAM) role that authorizes Amazon RDS to access the Amazon S3 bucket on your behalf.<br/>S3Prefix:  The prefix for all of the file names that contain the data used to create the Amazon Aurora DB cluster. If you do not specify a <b>SourceS3Prefix</b> value, then the Amazon Aurora DB cluster is created by using all of the files in the Amazon S3 bucket.<br/>S3BucketName:  The name of the Amazon S3 bucket that contains the data used to create the Amazon Aurora DB cluster.<br/>SourceEngineVersion:  The version of the database that the backup files were created from. MySQL versions 5.5, 5.6, and 5.7 are supported.  Example: <code>5.6.40</code>, <code>5.7.28</code> <br/>SourceEngine:  The identifier for the database engine that was backed up to create the files stored in the Amazon S3 bucket.  Valid values: <code>mysql</code> <br/>EnableIAMDatabaseAuthentication:  A value that indicates whether to enable mapping of Amazon Web Services Identity and Access Management (IAM) accounts to database accounts. By default, mapping is disabled. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.IAMDBAuth.html"> IAM Database Authentication</a> in the <i>Amazon Aurora User Guide.</i> <br/>KmsKeyId:  The Amazon Web Services KMS key identifier for an encrypted DB cluster. The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the Amazon Web Services KMS customer master key (CMK). To use a CMK in a different Amazon Web Services account, specify the key ARN or alias ARN. If the StorageEncrypted parameter is enabled, and you do not specify a value for the <code>KmsKeyId</code> parameter, then Amazon RDS will use your default CMK. There is a default CMK for your Amazon Web Services account. Your Amazon Web Services account has a different default CMK for each Amazon Web Services Region.<br/>StorageEncrypted:  A value that indicates whether the restored DB cluster is encrypted.<br/>Tags:  A list of tags. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html">Tagging Amazon RDS Resources</a> in the <i>Amazon RDS User Guide.</i> <br/>PreferredMaintenanceWindow:  The weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC). Format: <code>ddd:hh24:mi-ddd:hh24:mi</code>  The default is a 30-minute window selected at random from an 8-hour block of time for each Amazon Web Services Region, occurring on a random day of the week. To see the time blocks available, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_UpgradeDBInstance.Maintenance.html#AdjustingTheMaintenanceWindow.Aurora"> Adjusting the Preferred Maintenance Window</a> in the <i>Amazon Aurora User Guide.</i>  Valid Days: Mon, Tue, Wed, Thu, Fri, Sat, Sun. Constraints: Minimum 30-minute window.<br/>PreferredBackupWindow:  The daily time range during which automated backups are created if automated backups are enabled using the <code>BackupRetentionPeriod</code> parameter.  The default is a 30-minute window selected at random from an 8-hour block of time for each Amazon Web Services Region. To view the time blocks available, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Managing.Backups.html#Aurora.Managing.Backups.BackupWindow"> Backup window</a> in the <i>Amazon Aurora User Guide.</i>  Constraints: <ul> <li> Must be in the format <code>hh24:mi-hh24:mi</code>. </li> <li> Must be in Universal Coordinated Time (UTC). </li> <li> Must not conflict with the preferred maintenance window. </li> <li> Must be at least 30 minutes. </li> </ul><br/>OptionGroupName:  A value that indicates that the restored DB cluster should be associated with the specified option group. Permanent options can't be removed from an option group. An option group can't be removed from a DB cluster once it is associated with a DB cluster.<br/>MasterUserPassword:  The password for the master database user. This password can contain any printable ASCII character except "/", triple-quotes, or "@". Constraints: Must contain from 8 to 41 characters.<br/>MasterUsername:  The name of the master user for the restored DB cluster. Constraints: <ul> <li> Must be 1 to 16 letters or numbers. </li> <li> First character must be a letter. </li> <li> Can't be a reserved word for the chosen database engine. </li> </ul><br/>Port:  The port number on which the instances in the restored DB cluster accept connections.  Default: <code>3306</code> <br/>EngineVersion:  The version number of the database engine to use. To list all of the available engine versions for <code>aurora</code> (for MySQL 5.6-compatible Aurora), use the following command:  <code>aws rds describe-db-engine-versions --engine aurora --query "DBEngineVersions[].EngineVersion"</code>  To list all of the available engine versions for <code>aurora-mysql</code> (for MySQL 5.7-compatible Aurora), use the following command:  <code>aws rds describe-db-engine-versions --engine aurora-mysql --query "DBEngineVersions[].EngineVersion"</code>  To list all of the available engine versions for <code>aurora-postgresql</code>, use the following command:  <code>aws rds describe-db-engine-versions --engine aurora-postgresql --query "DBEngineVersions[].EngineVersion"</code>   <b>Aurora MySQL</b>  Example: <code>5.6.10a</code>, <code>5.6.mysql_aurora.1.19.2</code>, <code>5.7.12</code>, <code>5.7.mysql_aurora.2.04.5</code>   <b>Aurora PostgreSQL</b>  Example: <code>9.6.3</code>, <code>10.7</code> <br/>Engine:  The name of the database engine to be used for this DB cluster. Valid Values: <code>aurora</code> (for MySQL 5.6-compatible Aurora), <code>aurora-mysql</code> (for MySQL 5.7-compatible Aurora), and <code>aurora-postgresql</code> <br/>DBSubnetGroupName:  A DB subnet group to associate with the restored DB cluster. Constraints: If supplied, must match the name of an existing DBSubnetGroup.  Example: <code>mySubnetgroup</code> <br/>VpcSecurityGroupIds:  A list of EC2 VPC security groups to associate with the restored DB cluster.<br/>DBClusterParameterGroupName:  The name of the DB cluster parameter group to associate with the restored DB cluster. If this argument is omitted, <code>default.aurora5.6</code> is used.  Constraints: <ul> <li> If supplied, must match the name of an existing DBClusterParameterGroup. </li> </ul><br/>DBClusterIdentifier:  The name of the DB cluster to create from the source data in the Amazon S3 bucket. This parameter isn't case-sensitive. Constraints: <ul> <li> Must contain from 1 to 63 letters, numbers, or hyphens. </li> <li> First character must be a letter. </li> <li> Can't end with a hyphen or contain two consecutive hyphens. </li> </ul> Example: <code>my-cluster1</code> <br/>DatabaseName:  The database name for the restored DB cluster.<br/>CharacterSetName:  A value that indicates that the restored DB cluster should be associated with the specified CharacterSet.<br/>BackupRetentionPeriod:  The number of days for which automated backups of the restored DB cluster are retained. You must specify a minimum value of 1. Default: 1 Constraints: <ul> <li> Must be a value from 1 to 35 </li> </ul><br/>AvailabilityZones:  A list of Availability Zones (AZs) where instances in the restored DB cluster can be created.<br/>
        :return: DBCluster:  Contains the details of an Amazon Aurora DB cluster.  This data type is used as a response element in the <code>DescribeDBClusters</code>, <code>StopDBCluster</code>, and <code>StartDBCluster</code> actions. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingModifiedValues</i> A value that specifies that changes to the DB cluster are pending. This element is only included when changes are pending. Specific changes are identified by subelements.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingModifiedValues</b>: A value that specifies that changes to the DB cluster are pending. This element is only included when changes are pending. Specific changes are identified by subelements.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalWriteForwardingRequested</i> Specifies whether you have requested to enable write forwarding for a secondary cluster in an Aurora global database. Because write forwarding takes time to enable, check the value of <code>GlobalWriteForwardingStatus</code> to confirm that the request has completed before using the write forwarding feature for this cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalWriteForwardingStatus</i> Specifies whether a secondary cluster in an Aurora global database has write forwarding enabled, not enabled, or is in the process of enabling it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TagList</i> A list of tags. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html">Tagging Amazon RDS Resources</a> in the <i>Amazon RDS User Guide.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainMemberships</i> The Active Directory Domain membership records associated with the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CrossAccountClone</i> Specifies whether the DB cluster is a clone of a DB cluster owned by a different Amazon Web Services account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CopyTagsToSnapshot</i> Specifies whether tags are copied from the DB cluster to snapshots of the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamKinesisStreamName</i> The name of the Amazon Kinesis data stream used for the database activity stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamKmsKeyId</i> The Amazon Web Services KMS key identifier used for encrypting messages in the database activity stream. The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the Amazon Web Services KMS customer master key (CMK).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamStatus</i> The status of the database activity stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamMode</i> The mode of the database activity stream. Database events such as a change or access generate an activity stream event. The database session can handle these events either synchronously or asynchronously. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HttpEndpointEnabled</i> A value that indicates whether the HTTP endpoint for an Aurora Serverless DB cluster is enabled. When enabled, the HTTP endpoint provides a connectionless web service API for running SQL queries on the Aurora Serverless DB cluster. You can also query your database from inside the RDS console with the query editor. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/data-api.html">Using the Data API for Aurora Serverless</a> in the <i>Amazon Aurora User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeletionProtection</i> Indicates if the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ScalingConfigurationInfo</i> Shows the scaling configuration for an Aurora DB cluster in <code>serverless</code> DB engine mode. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html">Using Amazon Aurora Serverless</a> in the <i>Amazon Aurora User Guide</i>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ScalingConfigurationInfo</b>: Shows the scaling configuration for an Aurora DB cluster in <code>serverless</code> DB engine mode. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html">Using Amazon Aurora Serverless</a> in the <i>Amazon Aurora User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineMode</i> The DB engine mode of the DB cluster, either <code>provisioned</code>, <code>serverless</code>, <code>parallelquery</code>, <code>global</code>, or <code>multimaster</code>. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBCluster.html"> CreateDBCluster</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Capacity</i> The current capacity of an Aurora Serverless DB cluster. The capacity is 0 (zero) when the cluster is paused. For more information about Aurora Serverless, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html">Using Amazon Aurora Serverless</a> in the <i>Amazon Aurora User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnabledCloudwatchLogsExports</i> A list of log types that this DB cluster is configured to export to CloudWatch Logs. Log types vary by DB engine. For information about the log types for each DB engine, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_LogAccess.html">Amazon RDS Database Log Files</a> in the <i>Amazon Aurora User Guide.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BacktrackConsumedChangeRecords</i> The number of change records stored for Backtrack.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BacktrackWindow</i> The target backtrack window, in seconds. If this value is set to 0, backtracking is disabled for the DB cluster. Otherwise, backtracking is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EarliestBacktrackTime</i> The earliest time to which a DB cluster can be backtracked.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterCreateTime</i> Specifies the time when the DB cluster was created, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloneGroupId</i> Identifies the clone group to which the DB cluster is associated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IAMDatabaseAuthenticationEnabled</i> A value that indicates whether the mapping of Amazon Web Services Identity and Access Management (IAM) accounts to database accounts is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociatedRoles</i> Provides a list of the Amazon Web Services Identity and Access Management (IAM) roles that are associated with the DB cluster. IAM roles that are associated with a DB cluster grant permission for the DB cluster to access other Amazon Web Services on your behalf.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterArn</i> The Amazon Resource Name (ARN) for the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DbClusterResourceId</i> The Amazon Web Services Region-unique, immutable identifier for the DB cluster. This identifier is found in Amazon Web Services CloudTrail log entries whenever the Amazon Web Services KMS CMK for the DB cluster is accessed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> If <code>StorageEncrypted</code> is enabled, the Amazon Web Services KMS key identifier for the encrypted DB cluster. The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the Amazon Web Services KMS customer master key (CMK).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageEncrypted</i> Specifies whether the DB cluster is encrypted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HostedZoneId</i> Specifies the ID that Amazon Route 53 assigns when you create a hosted zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcSecurityGroups</i> Provides a list of VPC security groups that the DB cluster belongs to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterMembers</i> Provides the list of instances that make up the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadReplicaIdentifiers</i> Contains one or more identifiers of the read replicas associated with this DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationSourceIdentifier</i> Contains the identifier of the source DB cluster if this DB cluster is a read replica.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i> Specifies the weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredBackupWindow</i> Specifies the daily time range during which automated backups are created if automated backups are enabled, as determined by the <code>BackupRetentionPeriod</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterOptionGroupMemberships</i> Provides the list of option group memberships for this DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUsername</i> Contains the master username for the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Specifies the port that the database engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestRestorableTime</i> Specifies the latest time to which a database can be restored with point-in-time restore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> Indicates the database engine version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> The name of the database engine to be used for this DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiAZ</i> Specifies whether the DB cluster has instances in multiple Availability Zones.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomEndpoints</i> Identifies all custom endpoints associated with the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReaderEndpoint</i> The reader endpoint for the DB cluster. The reader endpoint for a DB cluster load-balances connections across the Aurora Replicas that are available in a DB cluster. As clients request new connections to the reader endpoint, Aurora distributes the connection requests among the Aurora Replicas in the DB cluster. This functionality can help balance your read workload across multiple Aurora Replicas in your DB cluster.  If a failover occurs, and the Aurora Replica that you are connected to is promoted to be the primary instance, your connection is dropped. To continue sending your read workload to other Aurora Replicas in the cluster, you can then reconnect to the reader endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i> Specifies the connection endpoint for the primary instance of the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EarliestRestorableTime</i> The earliest time to which a database can be restored with point-in-time restore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PercentProgress</i> Specifies the progress of the operation as a percentage.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Specifies the current state of this DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroup</i> Specifies information on the subnet group associated with the DB cluster, including the name, description, and subnets in the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterParameterGroup</i> Specifies the name of the DB cluster parameter group for the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterIdentifier</i> Contains a user-supplied DB cluster identifier. This identifier is the unique key that identifies a DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> Contains the name of the initial database of this DB cluster that was provided at create time, if one was specified when the DB cluster was created. This same name is returned for the life of the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CharacterSetName</i> If present, specifies the name of the character set that this cluster is associated with.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupRetentionPeriod</i> Specifies the number of days for which automatic DB snapshots are retained.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZones</i> Provides the list of Availability Zones (AZs) where instances in the DB cluster can be created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllocatedStorage</i> For all database engines except Amazon Aurora, <code>AllocatedStorage</code> specifies the allocated storage size in gibibytes (GiB). For Aurora, <code>AllocatedStorage</code> always returns 1, because Aurora DB cluster storage size isn't fixed, but instead automatically adjusts as needed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TimeoutAction</i> The timeout action of a call to <code>ModifyCurrentDBClusterCapacity</code>, either <code>ForceApplyCapacityChange</code> or <code>RollbackCapacityChange</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecondsUntilAutoPause</i> The remaining amount of time, in seconds, before the Aurora DB cluster in <code>serverless</code> mode is paused. A DB cluster can be paused only when it's idle (it has no connections).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoPause</i> A value that indicates whether automatic pause is allowed for the Aurora DB cluster in <code>serverless</code> DB engine mode. When the value is set to false for an Aurora Serverless DB cluster, the DB cluster automatically resumes.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxCapacity</i> The maximum capacity for an Aurora DB cluster in <code>serverless</code> DB engine mode.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MinCapacity</i> The maximum capacity for the Aurora DB cluster in <code>serverless</code> DB engine mode.<br/>A list of the log types whose configuration is still pending. In other words, these log types are in the process of being activated or deactivated.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingCloudwatchLogsExports</b>: A list of the log types whose configuration is still pending. In other words, these log types are in the process of being activated or deactivated.        """
        pass

    def restore_db_cluster_from_snapshot(self, Engine: str, SnapshotIdentifier: str, DBClusterIdentifier: str, AvailabilityZones: List[String]=None, EngineVersion: str=None, Port: int=None, DBSubnetGroupName: str=None, DatabaseName: str=None, OptionGroupName: str=None, VpcSecurityGroupIds: List[String]=None, Tags: List[Tag]=None, KmsKeyId: str=None, EnableIAMDatabaseAuthentication: BooleanOptional=None, BacktrackWindow: LongOptional=None, EnableCloudwatchLogsExports: List[String]=None, EngineMode: str=None, ScalingConfiguration: ScalingConfiguration=None, DBClusterParameterGroupName: str=None, DeletionProtection: BooleanOptional=None, CopyTagsToSnapshot: BooleanOptional=None, Domain: str=None, DomainIAMRoleName: str=None) -> RestoreDBClusterFromSnapshotResult:
        r"""Creates a new DB cluster from a DB snapshot or DB cluster snapshot. This action only applies to Aurora DB clusters. The target DB cluster is created from the source snapshot with a default configuration. If you don't specify a security group, the new DB cluster is associated with the default security group. <note> This action only restores the DB cluster, not the DB instances for that DB cluster. You must invoke the <code>CreateDBInstance</code> action to create DB instances for the restored DB cluster, specifying the identifier of the restored DB cluster in <code>DBClusterIdentifier</code>. You can create DB instances only after the <code>RestoreDBClusterFromSnapshot</code> action has completed and the DB cluster is available. </note> For more information on Amazon Aurora, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html"> What Is Amazon Aurora?</a> in the <i>Amazon Aurora User Guide.</i>  <note> This action only applies to Aurora DB clusters. </note>

        :param self:
        :param DomainIAMRoleName:  Specify the name of the IAM role to be used when making API calls to the Directory Service.<br/>Domain:  Specify the Active Directory directory ID to restore the DB cluster in. The domain must be created prior to this operation. Currently, only MySQL, Microsoft SQL Server, Oracle, and PostgreSQL DB instances can be created in an Active Directory Domain. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/kerberos-authentication.html"> Kerberos Authentication</a> in the <i>Amazon RDS User Guide</i>. <br/>CopyTagsToSnapshot:  A value that indicates whether to copy all tags from the restored DB cluster to snapshots of the restored DB cluster. The default is not to copy them.<br/>DeletionProtection:  A value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled. <br/>DBClusterParameterGroupName:  The name of the DB cluster parameter group to associate with this DB cluster. If this argument is omitted, the default DB cluster parameter group for the specified engine is used. Constraints: <ul> <li> If supplied, must match the name of an existing default DB cluster parameter group. </li> <li> Must be 1 to 255 letters, numbers, or hyphens. </li> <li> First character must be a letter. </li> <li> Can't end with a hyphen or contain two consecutive hyphens. </li> </ul><br/>ScalingConfiguration:  For DB clusters in <code>serverless</code> DB engine mode, the scaling properties of the DB cluster.:<br/>EngineMode:  The DB engine mode of the DB cluster, either <code>provisioned</code>, <code>serverless</code>, <code>parallelquery</code>, <code>global</code>, or <code>multimaster</code>. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBCluster.html"> CreateDBCluster</a>.<br/>EnableCloudwatchLogsExports:  The list of logs that the restored DB cluster is to export to Amazon CloudWatch Logs. The values in the list depend on the DB engine being used. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_LogAccess.html#USER_LogAccess.Procedural.UploadtoCloudWatch">Publishing Database Logs to Amazon CloudWatch Logs </a> in the <i>Amazon Aurora User Guide</i>.<br/>BacktrackWindow:  The target backtrack window, in seconds. To disable backtracking, set this value to 0. <note> Currently, Backtrack is only supported for Aurora MySQL DB clusters. </note> Default: 0 Constraints: <ul> <li> If specified, this value must be set to a number from 0 to 259,200 (72 hours). </li> </ul><br/>EnableIAMDatabaseAuthentication:  A value that indicates whether to enable mapping of Amazon Web Services Identity and Access Management (IAM) accounts to database accounts. By default, mapping is disabled. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.IAMDBAuth.html"> IAM Database Authentication</a> in the <i>Amazon Aurora User Guide.</i> <br/>KmsKeyId:  The Amazon Web Services KMS key identifier to use when restoring an encrypted DB cluster from a DB snapshot or DB cluster snapshot. The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the Amazon Web Services KMS customer master key (CMK). To use a CMK in a different Amazon Web Services account, specify the key ARN or alias ARN. When you don't specify a value for the <code>KmsKeyId</code> parameter, then the following occurs: <ul> <li> If the DB snapshot or DB cluster snapshot in <code>SnapshotIdentifier</code> is encrypted, then the restored DB cluster is encrypted using the Amazon Web Services KMS CMK that was used to encrypt the DB snapshot or DB cluster snapshot. </li> <li> If the DB snapshot or DB cluster snapshot in <code>SnapshotIdentifier</code> isn't encrypted, then the restored DB cluster isn't encrypted. </li> </ul><br/>Tags:  The tags to be assigned to the restored DB cluster.<br/>VpcSecurityGroupIds:  A list of VPC security groups that the new DB cluster will belong to.<br/>OptionGroupName:  The name of the option group to use for the restored DB cluster.<br/>DatabaseName:  The database name for the restored DB cluster.<br/>DBSubnetGroupName:  The name of the DB subnet group to use for the new DB cluster. Constraints: If supplied, must match the name of an existing DB subnet group. Example: <code>mySubnetgroup</code> <br/>Port:  The port number on which the new DB cluster accepts connections. Constraints: This value must be <code>1150-65535</code>  Default: The same port as the original DB cluster.<br/>EngineVersion:  The version of the database engine to use for the new DB cluster. To list all of the available engine versions for <code>aurora</code> (for MySQL 5.6-compatible Aurora), use the following command:  <code>aws rds describe-db-engine-versions --engine aurora --query "DBEngineVersions[].EngineVersion"</code>  To list all of the available engine versions for <code>aurora-mysql</code> (for MySQL 5.7-compatible Aurora), use the following command:  <code>aws rds describe-db-engine-versions --engine aurora-mysql --query "DBEngineVersions[].EngineVersion"</code>  To list all of the available engine versions for <code>aurora-postgresql</code>, use the following command:  <code>aws rds describe-db-engine-versions --engine aurora-postgresql --query "DBEngineVersions[].EngineVersion"</code>  <note> If you aren't using the default engine version, then you must specify the engine version. </note>  <b>Aurora MySQL</b>  Example: <code>5.6.10a</code>, <code>5.6.mysql_aurora.1.19.2</code>, <code>5.7.12</code>, <code>5.7.mysql_aurora.2.04.5</code>   <b>Aurora PostgreSQL</b>  Example: <code>9.6.3</code>, <code>10.7</code> <br/>Engine:  The database engine to use for the new DB cluster. Default: The same as source Constraint: Must be compatible with the engine of the source<br/>SnapshotIdentifier:  The identifier for the DB snapshot or DB cluster snapshot to restore from. You can use either the name or the Amazon Resource Name (ARN) to specify a DB cluster snapshot. However, you can use only the ARN to specify a DB snapshot. Constraints: <ul> <li> Must match the identifier of an existing Snapshot. </li> </ul><br/>DBClusterIdentifier:  The name of the DB cluster to create from the DB snapshot or DB cluster snapshot. This parameter isn't case-sensitive. Constraints: <ul> <li> Must contain from 1 to 63 letters, numbers, or hyphens </li> <li> First character must be a letter </li> <li> Can't end with a hyphen or contain two consecutive hyphens </li> </ul> Example: <code>my-snapshot-id</code> <br/>AvailabilityZones:  Provides the list of Availability Zones (AZs) where instances in the restored DB cluster can be created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TimeoutAction</i> The action to take when the timeout is reached, either <code>ForceApplyCapacityChange</code> or <code>RollbackCapacityChange</code>.  <code>ForceApplyCapacityChange</code> sets the capacity to the specified value as soon as possible.  <code>RollbackCapacityChange</code>, the default, ignores the capacity change if a scaling point isn't found in the timeout period. <important> If you specify <code>ForceApplyCapacityChange</code>, connections that prevent Aurora Serverless from finding a scaling point might be dropped. </important> For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.how-it-works.html#aurora-serverless.how-it-works.auto-scaling"> Autoscaling for Aurora Serverless</a> in the <i>Amazon Aurora User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecondsUntilAutoPause</i> The time, in seconds, before an Aurora DB cluster in <code>serverless</code> mode is paused. Specify a value between 300 and 86,400 seconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoPause</i> A value that indicates whether to allow or disallow automatic pause for an Aurora DB cluster in <code>serverless</code> DB engine mode. A DB cluster can be paused only when it's idle (it has no connections). <note> If a DB cluster is paused for more than seven days, the DB cluster might be backed up with a snapshot. In this case, the DB cluster is restored when there is a request to connect to it.  </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxCapacity</i> The maximum capacity for an Aurora DB cluster in <code>serverless</code> DB engine mode. For Aurora MySQL, valid capacity values are <code>1</code>, <code>2</code>, <code>4</code>, <code>8</code>, <code>16</code>, <code>32</code>, <code>64</code>, <code>128</code>, and <code>256</code>. For Aurora PostgreSQL, valid capacity values are <code>2</code>, <code>4</code>, <code>8</code>, <code>16</code>, <code>32</code>, <code>64</code>, <code>192</code>, and <code>384</code>. The maximum capacity must be greater than or equal to the minimum capacity.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MinCapacity</i> The minimum capacity for an Aurora DB cluster in <code>serverless</code> DB engine mode. For Aurora MySQL, valid capacity values are <code>1</code>, <code>2</code>, <code>4</code>, <code>8</code>, <code>16</code>, <code>32</code>, <code>64</code>, <code>128</code>, and <code>256</code>. For Aurora PostgreSQL, valid capacity values are <code>2</code>, <code>4</code>, <code>8</code>, <code>16</code>, <code>32</code>, <code>64</code>, <code>192</code>, and <code>384</code>. The minimum capacity must be less than or equal to the maximum capacity.<br/>
        :return: DBCluster:  Contains the details of an Amazon Aurora DB cluster.  This data type is used as a response element in the <code>DescribeDBClusters</code>, <code>StopDBCluster</code>, and <code>StartDBCluster</code> actions. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingModifiedValues</i> A value that specifies that changes to the DB cluster are pending. This element is only included when changes are pending. Specific changes are identified by subelements.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingModifiedValues</b>: A value that specifies that changes to the DB cluster are pending. This element is only included when changes are pending. Specific changes are identified by subelements.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalWriteForwardingRequested</i> Specifies whether you have requested to enable write forwarding for a secondary cluster in an Aurora global database. Because write forwarding takes time to enable, check the value of <code>GlobalWriteForwardingStatus</code> to confirm that the request has completed before using the write forwarding feature for this cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalWriteForwardingStatus</i> Specifies whether a secondary cluster in an Aurora global database has write forwarding enabled, not enabled, or is in the process of enabling it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TagList</i> A list of tags. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html">Tagging Amazon RDS Resources</a> in the <i>Amazon RDS User Guide.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainMemberships</i> The Active Directory Domain membership records associated with the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CrossAccountClone</i> Specifies whether the DB cluster is a clone of a DB cluster owned by a different Amazon Web Services account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CopyTagsToSnapshot</i> Specifies whether tags are copied from the DB cluster to snapshots of the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamKinesisStreamName</i> The name of the Amazon Kinesis data stream used for the database activity stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamKmsKeyId</i> The Amazon Web Services KMS key identifier used for encrypting messages in the database activity stream. The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the Amazon Web Services KMS customer master key (CMK).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamStatus</i> The status of the database activity stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamMode</i> The mode of the database activity stream. Database events such as a change or access generate an activity stream event. The database session can handle these events either synchronously or asynchronously. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HttpEndpointEnabled</i> A value that indicates whether the HTTP endpoint for an Aurora Serverless DB cluster is enabled. When enabled, the HTTP endpoint provides a connectionless web service API for running SQL queries on the Aurora Serverless DB cluster. You can also query your database from inside the RDS console with the query editor. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/data-api.html">Using the Data API for Aurora Serverless</a> in the <i>Amazon Aurora User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeletionProtection</i> Indicates if the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ScalingConfigurationInfo</i> Shows the scaling configuration for an Aurora DB cluster in <code>serverless</code> DB engine mode. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html">Using Amazon Aurora Serverless</a> in the <i>Amazon Aurora User Guide</i>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ScalingConfigurationInfo</b>: Shows the scaling configuration for an Aurora DB cluster in <code>serverless</code> DB engine mode. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html">Using Amazon Aurora Serverless</a> in the <i>Amazon Aurora User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineMode</i> The DB engine mode of the DB cluster, either <code>provisioned</code>, <code>serverless</code>, <code>parallelquery</code>, <code>global</code>, or <code>multimaster</code>. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBCluster.html"> CreateDBCluster</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Capacity</i> The current capacity of an Aurora Serverless DB cluster. The capacity is 0 (zero) when the cluster is paused. For more information about Aurora Serverless, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html">Using Amazon Aurora Serverless</a> in the <i>Amazon Aurora User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnabledCloudwatchLogsExports</i> A list of log types that this DB cluster is configured to export to CloudWatch Logs. Log types vary by DB engine. For information about the log types for each DB engine, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_LogAccess.html">Amazon RDS Database Log Files</a> in the <i>Amazon Aurora User Guide.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BacktrackConsumedChangeRecords</i> The number of change records stored for Backtrack.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BacktrackWindow</i> The target backtrack window, in seconds. If this value is set to 0, backtracking is disabled for the DB cluster. Otherwise, backtracking is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EarliestBacktrackTime</i> The earliest time to which a DB cluster can be backtracked.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterCreateTime</i> Specifies the time when the DB cluster was created, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloneGroupId</i> Identifies the clone group to which the DB cluster is associated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IAMDatabaseAuthenticationEnabled</i> A value that indicates whether the mapping of Amazon Web Services Identity and Access Management (IAM) accounts to database accounts is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociatedRoles</i> Provides a list of the Amazon Web Services Identity and Access Management (IAM) roles that are associated with the DB cluster. IAM roles that are associated with a DB cluster grant permission for the DB cluster to access other Amazon Web Services on your behalf.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterArn</i> The Amazon Resource Name (ARN) for the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DbClusterResourceId</i> The Amazon Web Services Region-unique, immutable identifier for the DB cluster. This identifier is found in Amazon Web Services CloudTrail log entries whenever the Amazon Web Services KMS CMK for the DB cluster is accessed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> If <code>StorageEncrypted</code> is enabled, the Amazon Web Services KMS key identifier for the encrypted DB cluster. The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the Amazon Web Services KMS customer master key (CMK).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageEncrypted</i> Specifies whether the DB cluster is encrypted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HostedZoneId</i> Specifies the ID that Amazon Route 53 assigns when you create a hosted zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcSecurityGroups</i> Provides a list of VPC security groups that the DB cluster belongs to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterMembers</i> Provides the list of instances that make up the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadReplicaIdentifiers</i> Contains one or more identifiers of the read replicas associated with this DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationSourceIdentifier</i> Contains the identifier of the source DB cluster if this DB cluster is a read replica.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i> Specifies the weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredBackupWindow</i> Specifies the daily time range during which automated backups are created if automated backups are enabled, as determined by the <code>BackupRetentionPeriod</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterOptionGroupMemberships</i> Provides the list of option group memberships for this DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUsername</i> Contains the master username for the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Specifies the port that the database engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestRestorableTime</i> Specifies the latest time to which a database can be restored with point-in-time restore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> Indicates the database engine version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> The name of the database engine to be used for this DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiAZ</i> Specifies whether the DB cluster has instances in multiple Availability Zones.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomEndpoints</i> Identifies all custom endpoints associated with the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReaderEndpoint</i> The reader endpoint for the DB cluster. The reader endpoint for a DB cluster load-balances connections across the Aurora Replicas that are available in a DB cluster. As clients request new connections to the reader endpoint, Aurora distributes the connection requests among the Aurora Replicas in the DB cluster. This functionality can help balance your read workload across multiple Aurora Replicas in your DB cluster.  If a failover occurs, and the Aurora Replica that you are connected to is promoted to be the primary instance, your connection is dropped. To continue sending your read workload to other Aurora Replicas in the cluster, you can then reconnect to the reader endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i> Specifies the connection endpoint for the primary instance of the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EarliestRestorableTime</i> The earliest time to which a database can be restored with point-in-time restore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PercentProgress</i> Specifies the progress of the operation as a percentage.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Specifies the current state of this DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroup</i> Specifies information on the subnet group associated with the DB cluster, including the name, description, and subnets in the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterParameterGroup</i> Specifies the name of the DB cluster parameter group for the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterIdentifier</i> Contains a user-supplied DB cluster identifier. This identifier is the unique key that identifies a DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> Contains the name of the initial database of this DB cluster that was provided at create time, if one was specified when the DB cluster was created. This same name is returned for the life of the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CharacterSetName</i> If present, specifies the name of the character set that this cluster is associated with.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupRetentionPeriod</i> Specifies the number of days for which automatic DB snapshots are retained.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZones</i> Provides the list of Availability Zones (AZs) where instances in the DB cluster can be created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllocatedStorage</i> For all database engines except Amazon Aurora, <code>AllocatedStorage</code> specifies the allocated storage size in gibibytes (GiB). For Aurora, <code>AllocatedStorage</code> always returns 1, because Aurora DB cluster storage size isn't fixed, but instead automatically adjusts as needed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TimeoutAction</i> The timeout action of a call to <code>ModifyCurrentDBClusterCapacity</code>, either <code>ForceApplyCapacityChange</code> or <code>RollbackCapacityChange</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecondsUntilAutoPause</i> The remaining amount of time, in seconds, before the Aurora DB cluster in <code>serverless</code> mode is paused. A DB cluster can be paused only when it's idle (it has no connections).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoPause</i> A value that indicates whether automatic pause is allowed for the Aurora DB cluster in <code>serverless</code> DB engine mode. When the value is set to false for an Aurora Serverless DB cluster, the DB cluster automatically resumes.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxCapacity</i> The maximum capacity for an Aurora DB cluster in <code>serverless</code> DB engine mode.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MinCapacity</i> The maximum capacity for the Aurora DB cluster in <code>serverless</code> DB engine mode.<br/>A list of the log types whose configuration is still pending. In other words, these log types are in the process of being activated or deactivated.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingCloudwatchLogsExports</b>: A list of the log types whose configuration is still pending. In other words, these log types are in the process of being activated or deactivated.        """
        pass

    def restore_db_cluster_to_point_in_time(self, SourceDBClusterIdentifier: str, DBClusterIdentifier: str, RestoreType: str=None, RestoreToTime: TStamp=None, UseLatestRestorableTime: Boolean=None, Port: int=None, DBSubnetGroupName: str=None, OptionGroupName: str=None, VpcSecurityGroupIds: List[String]=None, Tags: List[Tag]=None, KmsKeyId: str=None, EnableIAMDatabaseAuthentication: BooleanOptional=None, BacktrackWindow: LongOptional=None, EnableCloudwatchLogsExports: List[String]=None, DBClusterParameterGroupName: str=None, DeletionProtection: BooleanOptional=None, CopyTagsToSnapshot: BooleanOptional=None, Domain: str=None, DomainIAMRoleName: str=None, ScalingConfiguration: ScalingConfiguration=None, EngineMode: str=None) -> RestoreDBClusterToPointInTimeResult:
        r"""Restores a DB cluster to an arbitrary point in time. Users can restore to any point in time before <code>LatestRestorableTime</code> for up to <code>BackupRetentionPeriod</code> days. The target DB cluster is created from the source DB cluster with the same configuration as the original DB cluster, except that the new DB cluster is created with the default DB security group.  <note> This action only restores the DB cluster, not the DB instances for that DB cluster. You must invoke the <code>CreateDBInstance</code> action to create DB instances for the restored DB cluster, specifying the identifier of the restored DB cluster in <code>DBClusterIdentifier</code>. You can create DB instances only after the <code>RestoreDBClusterToPointInTime</code> action has completed and the DB cluster is available. </note> For more information on Amazon Aurora, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html"> What Is Amazon Aurora?</a> in the <i>Amazon Aurora User Guide.</i>  <note> This action only applies to Aurora DB clusters. </note>

        :param self:
        :param EngineMode:  The engine mode of the new cluster. Specify <code>provisioned</code> or <code>serverless</code>, depending on the type of the cluster you are creating. You can create an Aurora Serverless clone from a provisioned cluster, or a provisioned clone from an Aurora Serverless cluster. To create a clone that is an Aurora Serverless cluster, the original cluster must be an Aurora Serverless cluster or an encrypted provisioned cluster.<br/>ScalingConfiguration:  For DB clusters in <code>serverless</code> DB engine mode, the scaling properties of the DB cluster.:<br/>DomainIAMRoleName:  Specify the name of the IAM role to be used when making API calls to the Directory Service.<br/>Domain:  Specify the Active Directory directory ID to restore the DB cluster in. The domain must be created prior to this operation.   For Amazon Aurora DB clusters, Amazon RDS can use Kerberos Authentication to authenticate users that connect to the DB cluster. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/kerberos-authentication.html">Kerberos Authentication</a> in the <i>Amazon Aurora User Guide</i>. <br/>CopyTagsToSnapshot:  A value that indicates whether to copy all tags from the restored DB cluster to snapshots of the restored DB cluster. The default is not to copy them.<br/>DeletionProtection:  A value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled. <br/>DBClusterParameterGroupName:  The name of the DB cluster parameter group to associate with this DB cluster. If this argument is omitted, the default DB cluster parameter group for the specified engine is used. Constraints: <ul> <li> If supplied, must match the name of an existing DB cluster parameter group. </li> <li> Must be 1 to 255 letters, numbers, or hyphens. </li> <li> First character must be a letter. </li> <li> Can't end with a hyphen or contain two consecutive hyphens. </li> </ul><br/>EnableCloudwatchLogsExports:  The list of logs that the restored DB cluster is to export to CloudWatch Logs. The values in the list depend on the DB engine being used. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_LogAccess.html#USER_LogAccess.Procedural.UploadtoCloudWatch">Publishing Database Logs to Amazon CloudWatch Logs</a> in the <i>Amazon Aurora User Guide</i>.<br/>BacktrackWindow:  The target backtrack window, in seconds. To disable backtracking, set this value to 0. <note> Currently, Backtrack is only supported for Aurora MySQL DB clusters. </note> Default: 0 Constraints: <ul> <li> If specified, this value must be set to a number from 0 to 259,200 (72 hours). </li> </ul><br/>EnableIAMDatabaseAuthentication:  A value that indicates whether to enable mapping of Amazon Web Services Identity and Access Management (IAM) accounts to database accounts. By default, mapping is disabled. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.IAMDBAuth.html"> IAM Database Authentication</a> in the <i>Amazon Aurora User Guide.</i> <br/>KmsKeyId:  The Amazon Web Services KMS key identifier to use when restoring an encrypted DB cluster from an encrypted DB cluster. The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the Amazon Web Services KMS customer master key (CMK). To use a CMK in a different Amazon Web Services account, specify the key ARN or alias ARN. You can restore to a new DB cluster and encrypt the new DB cluster with a Amazon Web Services KMS CMK that is different than the Amazon Web Services KMS key used to encrypt the source DB cluster. The new DB cluster is encrypted with the Amazon Web Services KMS CMK identified by the <code>KmsKeyId</code> parameter. If you don't specify a value for the <code>KmsKeyId</code> parameter, then the following occurs: <ul> <li> If the DB cluster is encrypted, then the restored DB cluster is encrypted using the Amazon Web Services KMS CMK that was used to encrypt the source DB cluster. </li> <li> If the DB cluster isn't encrypted, then the restored DB cluster isn't encrypted. </li> </ul> If <code>DBClusterIdentifier</code> refers to a DB cluster that isn't encrypted, then the restore request is rejected.<br/>Tags:  A list of tags. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html">Tagging Amazon RDS Resources</a> in the <i>Amazon RDS User Guide.</i> <br/>VpcSecurityGroupIds:  A list of VPC security groups that the new DB cluster belongs to.<br/>OptionGroupName:  The name of the option group for the new DB cluster.<br/>DBSubnetGroupName:  The DB subnet group name to use for the new DB cluster. Constraints: If supplied, must match the name of an existing DBSubnetGroup. Example: <code>mySubnetgroup</code> <br/>Port:  The port number on which the new DB cluster accepts connections. Constraints: A value from <code>1150-65535</code>.  Default: The default port for the engine.<br/>UseLatestRestorableTime:  A value that indicates whether to restore the DB cluster to the latest restorable backup time. By default, the DB cluster isn't restored to the latest restorable backup time.  Constraints: Can't be specified if <code>RestoreToTime</code> parameter is provided.<br/>RestoreToTime:  The date and time to restore the DB cluster to. Valid Values: Value must be a time in Universal Coordinated Time (UTC) format Constraints: <ul> <li> Must be before the latest restorable time for the DB instance </li> <li> Must be specified if <code>UseLatestRestorableTime</code> parameter isn't provided </li> <li> Can't be specified if the <code>UseLatestRestorableTime</code> parameter is enabled </li> <li> Can't be specified if the <code>RestoreType</code> parameter is <code>copy-on-write</code>  </li> </ul> Example: <code>2015-03-07T23:45:00Z</code> <br/>SourceDBClusterIdentifier:  The identifier of the source DB cluster from which to restore. Constraints: <ul> <li> Must match the identifier of an existing DBCluster. </li> </ul><br/>RestoreType:  The type of restore to be performed. You can specify one of the following values: <ul> <li>  <code>full-copy</code> - The new DB cluster is restored as a full copy of the source DB cluster. </li> <li>  <code>copy-on-write</code> - The new DB cluster is restored as a clone of the source DB cluster. </li> </ul> Constraints: You can't specify <code>copy-on-write</code> if the engine version of the source DB cluster is earlier than 1.11. If you don't specify a <code>RestoreType</code> value, then the new DB cluster is restored as a full copy of the source DB cluster.<br/>DBClusterIdentifier:  The name of the new DB cluster to be created. Constraints: <ul> <li> Must contain from 1 to 63 letters, numbers, or hyphens </li> <li> First character must be a letter </li> <li> Can't end with a hyphen or contain two consecutive hyphens </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TimeoutAction</i> The action to take when the timeout is reached, either <code>ForceApplyCapacityChange</code> or <code>RollbackCapacityChange</code>.  <code>ForceApplyCapacityChange</code> sets the capacity to the specified value as soon as possible.  <code>RollbackCapacityChange</code>, the default, ignores the capacity change if a scaling point isn't found in the timeout period. <important> If you specify <code>ForceApplyCapacityChange</code>, connections that prevent Aurora Serverless from finding a scaling point might be dropped. </important> For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.how-it-works.html#aurora-serverless.how-it-works.auto-scaling"> Autoscaling for Aurora Serverless</a> in the <i>Amazon Aurora User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecondsUntilAutoPause</i> The time, in seconds, before an Aurora DB cluster in <code>serverless</code> mode is paused. Specify a value between 300 and 86,400 seconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoPause</i> A value that indicates whether to allow or disallow automatic pause for an Aurora DB cluster in <code>serverless</code> DB engine mode. A DB cluster can be paused only when it's idle (it has no connections). <note> If a DB cluster is paused for more than seven days, the DB cluster might be backed up with a snapshot. In this case, the DB cluster is restored when there is a request to connect to it.  </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxCapacity</i> The maximum capacity for an Aurora DB cluster in <code>serverless</code> DB engine mode. For Aurora MySQL, valid capacity values are <code>1</code>, <code>2</code>, <code>4</code>, <code>8</code>, <code>16</code>, <code>32</code>, <code>64</code>, <code>128</code>, and <code>256</code>. For Aurora PostgreSQL, valid capacity values are <code>2</code>, <code>4</code>, <code>8</code>, <code>16</code>, <code>32</code>, <code>64</code>, <code>192</code>, and <code>384</code>. The maximum capacity must be greater than or equal to the minimum capacity.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MinCapacity</i> The minimum capacity for an Aurora DB cluster in <code>serverless</code> DB engine mode. For Aurora MySQL, valid capacity values are <code>1</code>, <code>2</code>, <code>4</code>, <code>8</code>, <code>16</code>, <code>32</code>, <code>64</code>, <code>128</code>, and <code>256</code>. For Aurora PostgreSQL, valid capacity values are <code>2</code>, <code>4</code>, <code>8</code>, <code>16</code>, <code>32</code>, <code>64</code>, <code>192</code>, and <code>384</code>. The minimum capacity must be less than or equal to the maximum capacity.<br/>
        :return: DBCluster:  Contains the details of an Amazon Aurora DB cluster.  This data type is used as a response element in the <code>DescribeDBClusters</code>, <code>StopDBCluster</code>, and <code>StartDBCluster</code> actions. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingModifiedValues</i> A value that specifies that changes to the DB cluster are pending. This element is only included when changes are pending. Specific changes are identified by subelements.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingModifiedValues</b>: A value that specifies that changes to the DB cluster are pending. This element is only included when changes are pending. Specific changes are identified by subelements.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalWriteForwardingRequested</i> Specifies whether you have requested to enable write forwarding for a secondary cluster in an Aurora global database. Because write forwarding takes time to enable, check the value of <code>GlobalWriteForwardingStatus</code> to confirm that the request has completed before using the write forwarding feature for this cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalWriteForwardingStatus</i> Specifies whether a secondary cluster in an Aurora global database has write forwarding enabled, not enabled, or is in the process of enabling it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TagList</i> A list of tags. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html">Tagging Amazon RDS Resources</a> in the <i>Amazon RDS User Guide.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainMemberships</i> The Active Directory Domain membership records associated with the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CrossAccountClone</i> Specifies whether the DB cluster is a clone of a DB cluster owned by a different Amazon Web Services account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CopyTagsToSnapshot</i> Specifies whether tags are copied from the DB cluster to snapshots of the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamKinesisStreamName</i> The name of the Amazon Kinesis data stream used for the database activity stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamKmsKeyId</i> The Amazon Web Services KMS key identifier used for encrypting messages in the database activity stream. The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the Amazon Web Services KMS customer master key (CMK).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamStatus</i> The status of the database activity stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamMode</i> The mode of the database activity stream. Database events such as a change or access generate an activity stream event. The database session can handle these events either synchronously or asynchronously. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HttpEndpointEnabled</i> A value that indicates whether the HTTP endpoint for an Aurora Serverless DB cluster is enabled. When enabled, the HTTP endpoint provides a connectionless web service API for running SQL queries on the Aurora Serverless DB cluster. You can also query your database from inside the RDS console with the query editor. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/data-api.html">Using the Data API for Aurora Serverless</a> in the <i>Amazon Aurora User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeletionProtection</i> Indicates if the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ScalingConfigurationInfo</i> Shows the scaling configuration for an Aurora DB cluster in <code>serverless</code> DB engine mode. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html">Using Amazon Aurora Serverless</a> in the <i>Amazon Aurora User Guide</i>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ScalingConfigurationInfo</b>: Shows the scaling configuration for an Aurora DB cluster in <code>serverless</code> DB engine mode. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html">Using Amazon Aurora Serverless</a> in the <i>Amazon Aurora User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineMode</i> The DB engine mode of the DB cluster, either <code>provisioned</code>, <code>serverless</code>, <code>parallelquery</code>, <code>global</code>, or <code>multimaster</code>. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBCluster.html"> CreateDBCluster</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Capacity</i> The current capacity of an Aurora Serverless DB cluster. The capacity is 0 (zero) when the cluster is paused. For more information about Aurora Serverless, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html">Using Amazon Aurora Serverless</a> in the <i>Amazon Aurora User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnabledCloudwatchLogsExports</i> A list of log types that this DB cluster is configured to export to CloudWatch Logs. Log types vary by DB engine. For information about the log types for each DB engine, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_LogAccess.html">Amazon RDS Database Log Files</a> in the <i>Amazon Aurora User Guide.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BacktrackConsumedChangeRecords</i> The number of change records stored for Backtrack.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BacktrackWindow</i> The target backtrack window, in seconds. If this value is set to 0, backtracking is disabled for the DB cluster. Otherwise, backtracking is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EarliestBacktrackTime</i> The earliest time to which a DB cluster can be backtracked.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterCreateTime</i> Specifies the time when the DB cluster was created, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloneGroupId</i> Identifies the clone group to which the DB cluster is associated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IAMDatabaseAuthenticationEnabled</i> A value that indicates whether the mapping of Amazon Web Services Identity and Access Management (IAM) accounts to database accounts is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociatedRoles</i> Provides a list of the Amazon Web Services Identity and Access Management (IAM) roles that are associated with the DB cluster. IAM roles that are associated with a DB cluster grant permission for the DB cluster to access other Amazon Web Services on your behalf.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterArn</i> The Amazon Resource Name (ARN) for the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DbClusterResourceId</i> The Amazon Web Services Region-unique, immutable identifier for the DB cluster. This identifier is found in Amazon Web Services CloudTrail log entries whenever the Amazon Web Services KMS CMK for the DB cluster is accessed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> If <code>StorageEncrypted</code> is enabled, the Amazon Web Services KMS key identifier for the encrypted DB cluster. The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the Amazon Web Services KMS customer master key (CMK).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageEncrypted</i> Specifies whether the DB cluster is encrypted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HostedZoneId</i> Specifies the ID that Amazon Route 53 assigns when you create a hosted zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcSecurityGroups</i> Provides a list of VPC security groups that the DB cluster belongs to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterMembers</i> Provides the list of instances that make up the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadReplicaIdentifiers</i> Contains one or more identifiers of the read replicas associated with this DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationSourceIdentifier</i> Contains the identifier of the source DB cluster if this DB cluster is a read replica.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i> Specifies the weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredBackupWindow</i> Specifies the daily time range during which automated backups are created if automated backups are enabled, as determined by the <code>BackupRetentionPeriod</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterOptionGroupMemberships</i> Provides the list of option group memberships for this DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUsername</i> Contains the master username for the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Specifies the port that the database engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestRestorableTime</i> Specifies the latest time to which a database can be restored with point-in-time restore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> Indicates the database engine version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> The name of the database engine to be used for this DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiAZ</i> Specifies whether the DB cluster has instances in multiple Availability Zones.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomEndpoints</i> Identifies all custom endpoints associated with the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReaderEndpoint</i> The reader endpoint for the DB cluster. The reader endpoint for a DB cluster load-balances connections across the Aurora Replicas that are available in a DB cluster. As clients request new connections to the reader endpoint, Aurora distributes the connection requests among the Aurora Replicas in the DB cluster. This functionality can help balance your read workload across multiple Aurora Replicas in your DB cluster.  If a failover occurs, and the Aurora Replica that you are connected to is promoted to be the primary instance, your connection is dropped. To continue sending your read workload to other Aurora Replicas in the cluster, you can then reconnect to the reader endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i> Specifies the connection endpoint for the primary instance of the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EarliestRestorableTime</i> The earliest time to which a database can be restored with point-in-time restore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PercentProgress</i> Specifies the progress of the operation as a percentage.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Specifies the current state of this DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroup</i> Specifies information on the subnet group associated with the DB cluster, including the name, description, and subnets in the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterParameterGroup</i> Specifies the name of the DB cluster parameter group for the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterIdentifier</i> Contains a user-supplied DB cluster identifier. This identifier is the unique key that identifies a DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> Contains the name of the initial database of this DB cluster that was provided at create time, if one was specified when the DB cluster was created. This same name is returned for the life of the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CharacterSetName</i> If present, specifies the name of the character set that this cluster is associated with.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupRetentionPeriod</i> Specifies the number of days for which automatic DB snapshots are retained.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZones</i> Provides the list of Availability Zones (AZs) where instances in the DB cluster can be created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllocatedStorage</i> For all database engines except Amazon Aurora, <code>AllocatedStorage</code> specifies the allocated storage size in gibibytes (GiB). For Aurora, <code>AllocatedStorage</code> always returns 1, because Aurora DB cluster storage size isn't fixed, but instead automatically adjusts as needed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TimeoutAction</i> The timeout action of a call to <code>ModifyCurrentDBClusterCapacity</code>, either <code>ForceApplyCapacityChange</code> or <code>RollbackCapacityChange</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecondsUntilAutoPause</i> The remaining amount of time, in seconds, before the Aurora DB cluster in <code>serverless</code> mode is paused. A DB cluster can be paused only when it's idle (it has no connections).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoPause</i> A value that indicates whether automatic pause is allowed for the Aurora DB cluster in <code>serverless</code> DB engine mode. When the value is set to false for an Aurora Serverless DB cluster, the DB cluster automatically resumes.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxCapacity</i> The maximum capacity for an Aurora DB cluster in <code>serverless</code> DB engine mode.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MinCapacity</i> The maximum capacity for the Aurora DB cluster in <code>serverless</code> DB engine mode.<br/>A list of the log types whose configuration is still pending. In other words, these log types are in the process of being activated or deactivated.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingCloudwatchLogsExports</b>: A list of the log types whose configuration is still pending. In other words, these log types are in the process of being activated or deactivated.        """
        pass

    def restore_db_instance_from_db_snapshot(self, DBSnapshotIdentifier: str, DBInstanceIdentifier: str, DBInstanceClass: str=None, Port: int=None, AvailabilityZone: str=None, DBSubnetGroupName: str=None, MultiAZ: BooleanOptional=None, PubliclyAccessible: BooleanOptional=None, AutoMinorVersionUpgrade: BooleanOptional=None, LicenseModel: str=None, DBName: str=None, Engine: str=None, Iops: int=None, OptionGroupName: str=None, Tags: List[Tag]=None, StorageType: str=None, TdeCredentialArn: str=None, TdeCredentialPassword: str=None, VpcSecurityGroupIds: List[String]=None, Domain: str=None, CopyTagsToSnapshot: BooleanOptional=None, DomainIAMRoleName: str=None, EnableIAMDatabaseAuthentication: BooleanOptional=None, EnableCloudwatchLogsExports: List[String]=None, ProcessorFeatures: List[ProcessorFeature]=None, UseDefaultProcessorFeatures: BooleanOptional=None, DBParameterGroupName: str=None, DeletionProtection: BooleanOptional=None, EnableCustomerOwnedIp: BooleanOptional=None) -> RestoreDBInstanceFromDBSnapshotResult:
        r"""Creates a new DB instance from a DB snapshot. The target database is created from the source database restore point with most of the source's original configuration, including the default security group and DB parameter group. By default, the new DB instance is created as a Single-AZ deployment, except when the instance is a SQL Server instance that has an option group associated with mirroring. In this case, the instance becomes a Multi-AZ deployment, not a Single-AZ deployment. If you want to replace your original DB instance with the new, restored DB instance, then rename your original DB instance before you call the RestoreDBInstanceFromDBSnapshot action. RDS doesn't allow two DB instances with the same name. After you have renamed your original DB instance with a different identifier, then you can pass the original name of the DB instance as the DBInstanceIdentifier in the call to the RestoreDBInstanceFromDBSnapshot action. The result is that you replace the original DB instance with the DB instance created from the snapshot. If you are restoring from a shared manual DB snapshot, the <code>DBSnapshotIdentifier</code> must be the ARN of the shared DB snapshot. <note> This command doesn't apply to Aurora MySQL and Aurora PostgreSQL. For Aurora, use <code>RestoreDBClusterFromSnapshot</code>. </note>

        :param self:
        :param EnableCustomerOwnedIp:  A value that indicates whether to enable a customer-owned IP address (CoIP) for an RDS on Outposts DB instance. A <i>CoIP</i> provides local or external connectivity to resources in your Outpost subnets through your on-premises network. For some use cases, a CoIP can provide lower latency for connections to the DB instance from outside of its virtual private cloud (VPC) on your local network. For more information about RDS on Outposts, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-on-outposts.html">Working with Amazon RDS on Amazon Web Services Outposts</a> in the <i>Amazon RDS User Guide</i>. For more information about CoIPs, see <a href="https://docs.aws.amazon.com/outposts/latest/userguide/outposts-networking-components.html#ip-addressing">Customer-owned IP addresses</a> in the <i>Amazon Web Services Outposts User Guide</i>.<br/>DeletionProtection:  A value that indicates whether the DB instance has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_DeleteInstance.html"> Deleting a DB Instance</a>. <br/>DBParameterGroupName:  The name of the DB parameter group to associate with this DB instance. If you do not specify a value for <code>DBParameterGroupName</code>, then the default <code>DBParameterGroup</code> for the specified DB engine is used. Constraints: <ul> <li> If supplied, must match the name of an existing DBParameterGroup. </li> <li> Must be 1 to 255 letters, numbers, or hyphens. </li> <li> First character must be a letter. </li> <li> Can't end with a hyphen or contain two consecutive hyphens. </li> </ul><br/>UseDefaultProcessorFeatures:  A value that indicates whether the DB instance class of the DB instance uses its default processor features.<br/>ProcessorFeatures:  The number of CPU cores and the number of threads per core for the DB instance class of the DB instance.<br/>EnableCloudwatchLogsExports:  The list of logs that the restored DB instance is to export to CloudWatch Logs. The values in the list depend on the DB engine being used. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.html#USER_LogAccess.Procedural.UploadtoCloudWatch">Publishing Database Logs to Amazon CloudWatch Logs</a> in the <i>Amazon RDS User Guide</i>.<br/>EnableIAMDatabaseAuthentication:  A value that indicates whether to enable mapping of Amazon Web Services Identity and Access Management (IAM) accounts to database accounts. By default, mapping is disabled. For more information about IAM database authentication, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.IAMDBAuth.html"> IAM Database Authentication for MySQL and PostgreSQL</a> in the <i>Amazon RDS User Guide.</i> <br/>DomainIAMRoleName:  Specify the name of the IAM role to be used when making API calls to the Directory Service.<br/>CopyTagsToSnapshot:  A value that indicates whether to copy all tags from the restored DB instance to snapshots of the DB instance. By default, tags are not copied.<br/>Domain:  Specify the Active Directory directory ID to restore the DB instance in. The domain must be created prior to this operation. Currently, only MySQL, Microsoft SQL Server, Oracle, and PostgreSQL DB instances can be created in an Active Directory Domain. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/kerberos-authentication.html"> Kerberos Authentication</a> in the <i>Amazon RDS User Guide</i>.<br/>VpcSecurityGroupIds:   A list of EC2 VPC security groups to associate with this DB instance.   Default: The default EC2 VPC security group for the DB subnet group's VPC. <br/>TdeCredentialPassword:  The password for the given ARN from the key store in order to access the device.<br/>TdeCredentialArn:  The ARN from the key store with which to associate the instance for TDE encryption.<br/>StorageType:  Specifies the storage type to be associated with the DB instance.  Valid values: <code>standard | gp2 | io1</code>   If you specify <code>io1</code>, you must also include a value for the <code>Iops</code> parameter.   Default: <code>io1</code> if the <code>Iops</code> parameter is specified, otherwise <code>gp2</code> <br/>Tags:  A list of tags. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html">Tagging Amazon RDS Resources</a> in the <i>Amazon RDS User Guide.</i> <br/>OptionGroupName:  The name of the option group to be used for the restored DB instance. Permanent options, such as the TDE option for Oracle Advanced Security TDE, can't be removed from an option group, and that option group can't be removed from a DB instance once it is associated with a DB instance<br/>Iops:  Specifies the amount of provisioned IOPS for the DB instance, expressed in I/O operations per second. If this parameter isn't specified, the IOPS value is taken from the backup. If this parameter is set to 0, the new instance is converted to a non-PIOPS instance. The conversion takes additional time, though your DB instance is available for connections before the conversion starts.  The provisioned IOPS value must follow the requirements for your database engine. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html#USER_PIOPS">Amazon RDS Provisioned IOPS Storage to Improve Performance</a> in the <i>Amazon RDS User Guide.</i>  Constraints: Must be an integer greater than 1000.<br/>Engine:  The database engine to use for the new instance. Default: The same as source Constraint: Must be compatible with the engine of the source. For example, you can restore a MariaDB 10.1 DB instance from a MySQL 5.6 snapshot. Valid Values: <ul> <li>  <code>mariadb</code>  </li> <li>  <code>mysql</code>  </li> <li>  <code>oracle-ee</code>  </li> <li>  <code>oracle-ee-cdb</code>  </li> <li>  <code>oracle-se2</code>  </li> <li>  <code>oracle-se2-cdb</code>  </li> <li>  <code>postgres</code>  </li> <li>  <code>sqlserver-ee</code>  </li> <li>  <code>sqlserver-se</code>  </li> <li>  <code>sqlserver-ex</code>  </li> <li>  <code>sqlserver-web</code>  </li> </ul><br/>DBName:  The database name for the restored DB instance. <note> This parameter doesn't apply to the MySQL, PostgreSQL, or MariaDB engines. </note><br/>LicenseModel:  License model information for the restored DB instance. Default: Same as source.  Valid values: <code>license-included</code> | <code>bring-your-own-license</code> | <code>general-public-license</code> <br/>AutoMinorVersionUpgrade:  A value that indicates whether minor version upgrades are applied automatically to the DB instance during the maintenance window.<br/>PubliclyAccessible:  A value that indicates whether the DB instance is publicly accessible. When the DB instance is publicly accessible, its DNS endpoint resolves to the private IP address from within the DB instance's VPC, and to the public IP address from outside of the DB instance's VPC. Access to the DB instance is ultimately controlled by the security group it uses, and that public access is not permitted if the security group assigned to the DB instance doesn't permit it. When the DB instance isn't publicly accessible, it is an internal DB instance with a DNS name that resolves to a private IP address. For more information, see <a>CreateDBInstance</a>.<br/>MultiAZ:  A value that indicates whether the DB instance is a Multi-AZ deployment. Constraint: You can't specify the <code>AvailabilityZone</code> parameter if the DB instance is a Multi-AZ deployment.<br/>DBSubnetGroupName:  The DB subnet group name to use for the new instance. Constraints: If supplied, must match the name of an existing DBSubnetGroup. Example: <code>mySubnetgroup</code> <br/>AvailabilityZone:  The Availability Zone (AZ) where the DB instance will be created. Default: A random, system-chosen Availability Zone. Constraint: You can't specify the <code>AvailabilityZone</code> parameter if the DB instance is a Multi-AZ deployment. Example: <code>us-east-1a</code> <br/>Port:  The port number on which the database accepts connections. Default: The same port as the original DB instance Constraints: Value must be <code>1150-65535</code> <br/>DBInstanceClass:  The compute and memory capacity of the Amazon RDS DB instance, for example, <code>db.m4.large</code>. Not all DB instance classes are available in all Amazon Web Services Regions, or for all database engines. For the full list of DB instance classes, and availability for your engine, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html">DB Instance Class</a> in the <i>Amazon RDS User Guide.</i>  Default: The same DBInstanceClass as the original DB instance.<br/>DBSnapshotIdentifier:  The identifier for the DB snapshot to restore from. Constraints: <ul> <li> Must match the identifier of an existing DBSnapshot. </li> <li> If you are restoring from a shared manual DB snapshot, the <code>DBSnapshotIdentifier</code> must be the ARN of the shared DB snapshot. </li> </ul><br/>DBInstanceIdentifier:  Name of the DB instance to create from the DB snapshot. This parameter isn't case-sensitive. Constraints: <ul> <li> Must contain from 1 to 63 numbers, letters, or hyphens </li> <li> First character must be a letter </li> <li> Can't end with a hyphen or contain two consecutive hyphens </li> </ul> Example: <code>my-snapshot-id</code> <br/>
        :return: DBInstance:  Contains the details of an Amazon RDS DB instance.  This data type is used as a response element in the <code>DescribeDBInstances</code> action. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamEngineNativeAuditFieldsIncluded</i> Indicates whether engine-native audit fields are included in the database activity stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamMode</i> The mode of the database activity stream. Database events such as a change or access generate an activity stream event. RDS for Oracle always handles these events asynchronously.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamKinesisStreamName</i> The name of the Amazon Kinesis data stream used for the database activity stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamKmsKeyId</i> The Amazon Web Services KMS key identifier used for encrypting messages in the database activity stream. The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the Amazon Web Services KMS customer master key (CMK).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamStatus</i> The status of the database activity stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AwsBackupRecoveryPointArn</i> The Amazon Resource Name (ARN) of the recovery point in Amazon Web Services Backup.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomerOwnedIpEnabled</i> Specifies whether a customer-owned IP address (CoIP) is enabled for an RDS on Outposts DB instance. A <i>CoIP </i>provides local or external connectivity to resources in your Outpost subnets through your on-premises network. For some use cases, a CoIP can provide lower latency for connections to the DB instance from outside of its virtual private cloud (VPC) on your local network. For more information about RDS on Outposts, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-on-outposts.html">Working with Amazon RDS on Amazon Web Services Outposts</a> in the <i>Amazon RDS User Guide</i>. For more information about CoIPs, see <a href="https://docs.aws.amazon.com/outposts/latest/userguide/outposts-networking-components.html#ip-addressing">Customer-owned IP addresses</a> in the <i>Amazon Web Services Outposts User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceAutomatedBackupsReplications</i> The list of replicated automated backups associated with the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TagList</i> A list of tags. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html">Tagging Amazon RDS Resources</a> in the <i>Amazon RDS User Guide.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxAllocatedStorage</i> The upper limit to which Amazon RDS can automatically scale the storage of the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ListenerEndpoint</i> Specifies the listener connection endpoint for SQL Server Always On.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ListenerEndpoint</b>: Specifies the listener connection endpoint for SQL Server Always On.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociatedRoles</i>  The Amazon Web Services Identity and Access Management (IAM) roles associated with the DB instance. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeletionProtection</i> Indicates if the DB instance has deletion protection enabled. The database can't be deleted when deletion protection is enabled. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_DeleteInstance.html"> Deleting a DB Instance</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProcessorFeatures</i> The number of CPU cores and the number of threads per core for the DB instance class of the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnabledCloudwatchLogsExports</i> A list of log types that this DB instance is configured to export to CloudWatch Logs. Log types vary by DB engine. For information about the log types for each DB engine, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.html">Amazon RDS Database Log Files</a> in the <i>Amazon RDS User Guide.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PerformanceInsightsRetentionPeriod</i> The amount of time, in days, to retain Performance Insights data. Valid values are 7 or 731 (2 years). <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PerformanceInsightsKMSKeyId</i> The Amazon Web Services KMS key identifier for encryption of Performance Insights data. The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the Amazon Web Services KMS customer master key (CMK).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PerformanceInsightsEnabled</i> True if Performance Insights is enabled for the DB instance, and otherwise false.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IAMDatabaseAuthenticationEnabled</i> True if mapping of Amazon Web Services Identity and Access Management (IAM) accounts to database accounts is enabled, and otherwise false. IAM database authentication can be enabled for the following database engines <ul> <li> For MySQL 5.6, minor version 5.6.34 or higher </li> <li> For MySQL 5.7, minor version 5.7.16 or higher </li> <li> Aurora 5.6 or higher. To enable IAM database authentication for Aurora, see DBCluster Type. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Timezone</i> The time zone of the DB instance. In most cases, the <code>Timezone</code> element is empty. <code>Timezone</code> content appears only for Microsoft SQL Server DB instances that were created with a time zone specified. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceArn</i> The Amazon Resource Name (ARN) for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PromotionTier</i> A value that specifies the order in which an Aurora Replica is promoted to the primary instance after a failure of the existing primary instance. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Managing.Backups.html#Aurora.Managing.FaultTolerance"> Fault Tolerance for an Aurora DB Cluster</a> in the <i>Amazon Aurora User Guide</i>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MonitoringRoleArn</i> The ARN for the IAM role that permits RDS to send Enhanced Monitoring metrics to Amazon CloudWatch Logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnhancedMonitoringResourceArn</i> The Amazon Resource Name (ARN) of the Amazon CloudWatch Logs log stream that receives the Enhanced Monitoring metrics data for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MonitoringInterval</i> The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CopyTagsToSnapshot</i> Specifies whether tags are copied from the DB instance to snapshots of the DB instance.  <b>Amazon Aurora</b>  Not applicable. Copying tags to snapshots is managed by the DB cluster. Setting this value for an Aurora DB instance has no effect on the DB cluster setting. For more information, see <code>DBCluster</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainMemberships</i> The Active Directory Domain membership records associated with the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CACertificateIdentifier</i> The identifier of the CA certificate for this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DbiResourceId</i> The Amazon Web Services Region-unique, immutable identifier for the DB instance. This identifier is found in Amazon Web Services CloudTrail log entries whenever the Amazon Web Services KMS customer master key (CMK) for the DB instance is accessed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i>  If <code>StorageEncrypted</code> is true, the Amazon Web Services KMS key identifier for the encrypted DB instance.  The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the Amazon Web Services KMS customer master key (CMK).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageEncrypted</i> Specifies whether the DB instance is encrypted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterIdentifier</i> If the DB instance is a member of a DB cluster, contains the name of the DB cluster that the DB instance is a member of.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DbInstancePort</i> Specifies the port that the DB instance listens on. If the DB instance is part of a DB cluster, this can be a different port than the DB cluster port.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TdeCredentialArn</i> The ARN from the key store with which the instance is associated for TDE encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageType</i> Specifies the storage type associated with DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusInfos</i> The status of a read replica. If the instance isn't a read replica, this is blank.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PubliclyAccessible</i> Specifies the accessibility options for the DB instance. When the DB instance is publicly accessible, its DNS endpoint resolves to the private IP address from within the DB instance's VPC, and to the public IP address from outside of the DB instance's VPC. Access to the DB instance is ultimately controlled by the security group it uses, and that public access is not permitted if the security group assigned to the DB instance doesn't permit it. When the DB instance isn't publicly accessible, it is an internal DB instance with a DNS name that resolves to a private IP address. For more information, see <a>CreateDBInstance</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecondaryAvailabilityZone</i> If present, specifies the name of the secondary Availability Zone for a DB instance with multi-AZ support.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NcharCharacterSetName</i> The name of the NCHAR character set for the Oracle DB instance. This character set specifies the Unicode encoding for data stored in table columns of type NCHAR, NCLOB, or NVARCHAR2. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CharacterSetName</i> If present, specifies the name of the character set that this instance is associated with.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OptionGroupMemberships</i> Provides the list of option group memberships for this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Iops</i> Specifies the Provisioned IOPS (I/O operations per second) value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LicenseModel</i> License model information for this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicaMode</i> The open mode of an Oracle read replica. The default is <code>open-read-only</code>. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/oracle-read-replicas.html">Working with Oracle Read Replicas for Amazon RDS</a> in the <i>Amazon RDS User Guide</i>. <note> This attribute is only supported in RDS for Oracle. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadReplicaDBClusterIdentifiers</i> Contains one or more identifiers of Aurora DB clusters to which the RDS DB instance is replicated as a read replica. For example, when you create an Aurora read replica of an RDS MySQL DB instance, the Aurora MySQL DB cluster for the Aurora read replica is shown. This output does not contain information about cross region Aurora read replicas. <note> Currently, each RDS DB instance can have only one Aurora read replica. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadReplicaDBInstanceIdentifiers</i> Contains one or more identifiers of the read replicas associated with this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadReplicaSourceDBInstanceIdentifier</i> Contains the identifier of the source DB instance if this DB instance is a read replica.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoMinorVersionUpgrade</i> A value that indicates that minor version patches are applied automatically.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> Indicates the database engine version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiAZ</i> Specifies if the DB instance is a Multi-AZ deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestRestorableTime</i> Specifies the latest time to which a database can be restored with point-in-time restore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingModifiedValues</i> A value that specifies that changes to the DB instance are pending. This element is only included when changes are pending. Specific changes are identified by subelements.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingModifiedValues</b>: A value that specifies that changes to the DB instance are pending. This element is only included when changes are pending. Specific changes are identified by subelements.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i> Specifies the weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroup</i> Specifies information on the subnet group associated with the DB instance, including the name, description, and subnets in the subnet group.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DBSubnetGroup</b>: Specifies information on the subnet group associated with the DB instance, including the name, description, and subnets in the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZone</i> Specifies the name of the Availability Zone the DB instance is located in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBParameterGroups</i> Provides the list of DB parameter groups applied to this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcSecurityGroups</i> Provides a list of VPC security group elements that the DB instance belongs to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSecurityGroups</i>  A list of DB security group elements containing <code>DBSecurityGroup.Name</code> and <code>DBSecurityGroup.Status</code> subelements. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupRetentionPeriod</i> Specifies the number of days for which automatic DB snapshots are retained.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredBackupWindow</i>  Specifies the daily time range during which automated backups are created if automated backups are enabled, as determined by the <code>BackupRetentionPeriod</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceCreateTime</i> Provides the date and time the DB instance was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllocatedStorage</i> Specifies the allocated storage size specified in gibibytes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i> Specifies the connection endpoint.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Endpoint</b>: Specifies the connection endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBName</i> The meaning of this parameter differs according to the database engine you use.  <b>MySQL, MariaDB, SQL Server, PostgreSQL</b>  Contains the name of the initial database of this instance that was provided at create time, if one was specified when the DB instance was created. This same name is returned for the life of the DB instance. Type: String  <b>Oracle</b>  Contains the Oracle System ID (SID) of the created DB instance. Not shown when the returned parameters do not apply to an Oracle DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUsername</i> Contains the master username for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceStatus</i> Specifies the current state of this database. For information about DB instance statuses, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/accessing-monitoring.html#Overview.DBInstance.Status">Viewing DB instance status</a> in the <i>Amazon RDS User Guide.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> The name of the database engine to be used for this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceClass</i> Contains the name of the compute and memory capacity class of the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceIdentifier</i> Contains a user-supplied database identifier. This identifier is the unique key that identifies a DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HostedZoneId</i> Specifies the ID that Amazon Route 53 assigns when you create a hosted zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Specifies the port that the database engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Address</i> Specifies the DNS address of the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupArn</i> The Amazon Resource Name (ARN) for the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Subnets</i>  Contains a list of <code>Subnet</code> elements. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetGroupStatus</i> Provides the status of the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> Provides the VpcId of the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupDescription</i> Provides the description of the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupName</i> The name of the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupName</i> The DB subnet group for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CACertificateIdentifier</i> The identifier of the CA certificate for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageType</i> The storage type of the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceIdentifier</i> The database identifier for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Iops</i> The Provisioned IOPS value for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LicenseModel</i> The license model for the DB instance. Valid values: <code>license-included</code> | <code>bring-your-own-license</code> | <code>general-public-license</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> The database engine version.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiAZ</i> A value that indicates that the Single-AZ DB instance will change to a Multi-AZ deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupRetentionPeriod</i> The number of days for which automated backups are retained.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> The port for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUserPassword</i> The master credentials for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AllocatedStorage</i> The allocated storage size for the DB instance specified in gibibytes .<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceClass</i> The name of the compute and memory capacity class for the DB instance.<br/>A list of the log types whose configuration is still pending. In other words, these log types are in the process of being activated or deactivated.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingCloudwatchLogsExports</b>: A list of the log types whose configuration is still pending. In other words, these log types are in the process of being activated or deactivated.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HostedZoneId</i> Specifies the ID that Amazon Route 53 assigns when you create a hosted zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Specifies the port that the database engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Address</i> Specifies the DNS address of the DB instance.<br/>        """
        pass

    def restore_db_instance_from_s3(self, S3IngestionRoleArn: str, S3BucketName: str, SourceEngineVersion: str, SourceEngine: str, Engine: str, DBInstanceClass: str, DBInstanceIdentifier: str, DBName: str=None, AllocatedStorage: int=None, MasterUsername: str=None, MasterUserPassword: str=None, DBSecurityGroups: List[String]=None, VpcSecurityGroupIds: List[String]=None, AvailabilityZone: str=None, DBSubnetGroupName: str=None, PreferredMaintenanceWindow: str=None, DBParameterGroupName: str=None, BackupRetentionPeriod: int=None, PreferredBackupWindow: str=None, Port: int=None, MultiAZ: BooleanOptional=None, EngineVersion: str=None, AutoMinorVersionUpgrade: BooleanOptional=None, LicenseModel: str=None, Iops: int=None, OptionGroupName: str=None, PubliclyAccessible: BooleanOptional=None, Tags: List[Tag]=None, StorageType: str=None, StorageEncrypted: BooleanOptional=None, KmsKeyId: str=None, CopyTagsToSnapshot: BooleanOptional=None, MonitoringInterval: int=None, MonitoringRoleArn: str=None, EnableIAMDatabaseAuthentication: BooleanOptional=None, S3Prefix: str=None, EnablePerformanceInsights: BooleanOptional=None, PerformanceInsightsKMSKeyId: str=None, PerformanceInsightsRetentionPeriod: int=None, EnableCloudwatchLogsExports: List[String]=None, ProcessorFeatures: List[ProcessorFeature]=None, UseDefaultProcessorFeatures: BooleanOptional=None, DeletionProtection: BooleanOptional=None, MaxAllocatedStorage: int=None) -> RestoreDBInstanceFromS3Result:
        r"""Amazon Relational Database Service (Amazon RDS) supports importing MySQL databases by using backup files. You can create a backup of your on-premises database, store it on Amazon Simple Storage Service (Amazon S3), and then restore the backup file onto a new Amazon RDS DB instance running MySQL. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/MySQL.Procedural.Importing.html">Importing Data into an Amazon RDS MySQL DB Instance</a> in the <i>Amazon RDS User Guide.</i> 

        :param self:
        :param MaxAllocatedStorage:  The upper limit to which Amazon RDS can automatically scale the storage of the DB instance. For more information about this setting, including limitations that apply to it, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PIOPS.StorageTypes.html#USER_PIOPS.Autoscaling"> Managing capacity automatically with Amazon RDS storage autoscaling</a> in the <i>Amazon RDS User Guide</i>.<br/>DeletionProtection:  A value that indicates whether the DB instance has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_DeleteInstance.html"> Deleting a DB Instance</a>. <br/>UseDefaultProcessorFeatures:  A value that indicates whether the DB instance class of the DB instance uses its default processor features.<br/>ProcessorFeatures:  The number of CPU cores and the number of threads per core for the DB instance class of the DB instance.<br/>EnableCloudwatchLogsExports:  The list of logs that the restored DB instance is to export to CloudWatch Logs. The values in the list depend on the DB engine being used. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.html#USER_LogAccess.Procedural.UploadtoCloudWatch">Publishing Database Logs to Amazon CloudWatch Logs</a> in the <i>Amazon RDS User Guide</i>.<br/>PerformanceInsightsRetentionPeriod:  The amount of time, in days, to retain Performance Insights data. Valid values are 7 or 731 (2 years). <br/>PerformanceInsightsKMSKeyId:  The Amazon Web Services KMS key identifier for encryption of Performance Insights data. The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the Amazon Web Services KMS customer master key (CMK). If you do not specify a value for <code>PerformanceInsightsKMSKeyId</code>, then Amazon RDS uses your default CMK. There is a default CMK for your Amazon Web Services account. Your Amazon Web Services account has a different default CMK for each Amazon Web Services Region.<br/>EnablePerformanceInsights:  A value that indicates whether to enable Performance Insights for the DB instance.  For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html">Using Amazon Performance Insights</a> in the <i>Amazon Relational Database Service User Guide</i>. <br/>S3IngestionRoleArn:  An Amazon Web Services Identity and Access Management (IAM) role to allow Amazon RDS to access your Amazon S3 bucket. <br/>S3Prefix:  The prefix of your Amazon S3 bucket. <br/>S3BucketName:  The name of your Amazon S3 bucket that contains your database backup file. <br/>SourceEngineVersion:  The version of the database that the backup files were created from. MySQL versions 5.6 and 5.7 are supported.  Example: <code>5.6.40</code> <br/>SourceEngine:  The name of the engine of your source database.  Valid Values: <code>mysql</code> <br/>EnableIAMDatabaseAuthentication:  A value that indicates whether to enable mapping of Amazon Web Services Identity and Access Management (IAM) accounts to database accounts. By default, mapping is disabled. For more information about IAM database authentication, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.IAMDBAuth.html"> IAM Database Authentication for MySQL and PostgreSQL</a> in the <i>Amazon RDS User Guide.</i> <br/>MonitoringRoleArn:  The ARN for the IAM role that permits RDS to send enhanced monitoring metrics to Amazon CloudWatch Logs. For example, <code>arn:aws:iam:123456789012:role/emaccess</code>. For information on creating a monitoring role, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.html#USER_Monitoring.OS.Enabling">Setting Up and Enabling Enhanced Monitoring</a> in the <i>Amazon RDS User Guide.</i>  If <code>MonitoringInterval</code> is set to a value other than 0, then you must supply a <code>MonitoringRoleArn</code> value. <br/>MonitoringInterval:  The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance. To disable collecting Enhanced Monitoring metrics, specify 0.  If <code>MonitoringRoleArn</code> is specified, then you must also set <code>MonitoringInterval</code> to a value other than 0.  Valid Values: 0, 1, 5, 10, 15, 30, 60  Default: <code>0</code> <br/>CopyTagsToSnapshot:  A value that indicates whether to copy all tags from the DB instance to snapshots of the DB instance. By default, tags are not copied. <br/>KmsKeyId:  The Amazon Web Services KMS key identifier for an encrypted DB instance.  The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the Amazon Web Services KMS customer master key (CMK). To use a CMK in a different Amazon Web Services account, specify the key ARN or alias ARN. If the <code>StorageEncrypted</code> parameter is enabled, and you do not specify a value for the <code>KmsKeyId</code> parameter, then Amazon RDS will use your default CMK. There is a default CMK for your Amazon Web Services account. Your Amazon Web Services account has a different default CMK for each Amazon Web Services Region. <br/>StorageEncrypted:  A value that indicates whether the new DB instance is encrypted or not. <br/>StorageType:  Specifies the storage type to be associated with the DB instance.  Valid values: <code>standard</code> | <code>gp2</code> | <code>io1</code>  If you specify <code>io1</code>, you must also include a value for the <code>Iops</code> parameter.  Default: <code>io1</code> if the <code>Iops</code> parameter is specified; otherwise <code>gp2</code> <br/>Tags:  A list of tags to associate with this DB instance. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html">Tagging Amazon RDS Resources</a> in the <i>Amazon RDS User Guide.</i> <br/>PubliclyAccessible:  A value that indicates whether the DB instance is publicly accessible. When the DB instance is publicly accessible, its DNS endpoint resolves to the private IP address from within the DB instance's VPC, and to the public IP address from outside of the DB instance's VPC. Access to the DB instance is ultimately controlled by the security group it uses, and that public access is not permitted if the security group assigned to the DB instance doesn't permit it. When the DB instance isn't publicly accessible, it is an internal DB instance with a DNS name that resolves to a private IP address. For more information, see <a>CreateDBInstance</a>.<br/>OptionGroupName:  The name of the option group to associate with this DB instance. If this argument is omitted, the default option group for the specified engine is used. <br/>Iops:  The amount of Provisioned IOPS (input/output operations per second) to allocate initially for the DB instance. For information about valid Iops values, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html#USER_PIOPS">Amazon RDS Provisioned IOPS Storage to Improve Performance</a> in the <i>Amazon RDS User Guide.</i> <br/>LicenseModel:  The license model for this DB instance. Use <code>general-public-license</code>. <br/>AutoMinorVersionUpgrade:  A value that indicates whether minor engine upgrades are applied automatically to the DB instance during the maintenance window. By default, minor engine upgrades are not applied automatically. <br/>EngineVersion:  The version number of the database engine to use. Choose the latest minor version of your database engine. For information about engine versions, see <code>CreateDBInstance</code>, or call <code>DescribeDBEngineVersions</code>. <br/>MultiAZ:  A value that indicates whether the DB instance is a Multi-AZ deployment. If the DB instance is a Multi-AZ deployment, you can't set the <code>AvailabilityZone</code> parameter. <br/>Port:  The port number on which the database accepts connections.  Type: Integer  Valid Values: <code>1150</code>-<code>65535</code>  Default: <code>3306</code> <br/>PreferredBackupWindow:  The time range each day during which automated backups are created if automated backups are enabled. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithAutomatedBackups.html#USER_WorkingWithAutomatedBackups.BackupWindow">Backup window</a> in the <i>Amazon RDS User Guide.</i>  Constraints: <ul> <li> Must be in the format <code>hh24:mi-hh24:mi</code>. </li> <li> Must be in Universal Coordinated Time (UTC). </li> <li> Must not conflict with the preferred maintenance window. </li> <li> Must be at least 30 minutes. </li> </ul><br/>BackupRetentionPeriod:  The number of days for which automated backups are retained. Setting this parameter to a positive number enables backups. For more information, see <code>CreateDBInstance</code>. <br/>DBParameterGroupName:  The name of the DB parameter group to associate with this DB instance. If you do not specify a value for <code>DBParameterGroupName</code>, then the default <code>DBParameterGroup</code> for the specified DB engine is used.<br/>PreferredMaintenanceWindow:  The time range each week during which system maintenance can occur, in Universal Coordinated Time (UTC). For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.Maintenance.html#Concepts.DBMaintenance">Amazon RDS Maintenance Window</a> in the <i>Amazon RDS User Guide.</i>  Constraints: <ul> <li> Must be in the format <code>ddd:hh24:mi-ddd:hh24:mi</code>. </li> <li> Valid Days: Mon, Tue, Wed, Thu, Fri, Sat, Sun. </li> <li> Must be in Universal Coordinated Time (UTC). </li> <li> Must not conflict with the preferred backup window. </li> <li> Must be at least 30 minutes. </li> </ul><br/>DBSubnetGroupName:  A DB subnet group to associate with this DB instance.<br/>AvailabilityZone:  The Availability Zone that the DB instance is created in. For information about Amazon Web Services Regions and Availability Zones, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RegionsAndAvailabilityZones.html">Regions and Availability Zones</a> in the <i>Amazon RDS User Guide.</i>  Default: A random, system-chosen Availability Zone in the endpoint's Amazon Web Services Region.   Example: <code>us-east-1d</code>  Constraint: The <code>AvailabilityZone</code> parameter can't be specified if the DB instance is a Multi-AZ deployment. The specified Availability Zone must be in the same Amazon Web Services Region as the current endpoint. <br/>VpcSecurityGroupIds:  A list of VPC security groups to associate with this DB instance. <br/>DBSecurityGroups:  A list of DB security groups to associate with this DB instance. Default: The default DB security group for the database engine.<br/>MasterUserPassword:  The password for the master user. The password can include any printable ASCII character except "/", triple-quotes, or "@".  Constraints: Must contain from 8 to 41 characters.<br/>MasterUsername:  The name for the master user.  Constraints:  <ul> <li> Must be 1 to 16 letters or numbers. </li> <li> First character must be a letter. </li> <li> Can't be a reserved word for the chosen database engine. </li> </ul><br/>Engine:  The name of the database engine to be used for this instance.  Valid Values: <code>mysql</code> <br/>DBInstanceClass:  The compute and memory capacity of the DB instance, for example, <code>db.m4.large</code>. Not all DB instance classes are available in all Amazon Web Services Regions, or for all database engines. For the full list of DB instance classes, and availability for your engine, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html">DB Instance Class</a> in the <i>Amazon RDS User Guide.</i>  Importing from Amazon S3 isn't supported on the db.t2.micro DB instance class. <br/>AllocatedStorage:  The amount of storage (in gigabytes) to allocate initially for the DB instance. Follow the allocation rules specified in <code>CreateDBInstance</code>.  <note> Be sure to allocate enough memory for your new DB instance so that the restore operation can succeed. You can also allocate additional memory for future growth.  </note><br/>DBInstanceIdentifier:  The DB instance identifier. This parameter is stored as a lowercase string.  Constraints: <ul> <li> Must contain from 1 to 63 letters, numbers, or hyphens. </li> <li> First character must be a letter. </li> <li> Can't end with a hyphen or contain two consecutive hyphens. </li> </ul> Example: <code>mydbinstance</code> <br/>DBName:  The name of the database to create when the DB instance is created. Follow the naming rules specified in <code>CreateDBInstance</code>. <br/>
        :return: DBInstance:  Contains the details of an Amazon RDS DB instance.  This data type is used as a response element in the <code>DescribeDBInstances</code> action. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamEngineNativeAuditFieldsIncluded</i> Indicates whether engine-native audit fields are included in the database activity stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamMode</i> The mode of the database activity stream. Database events such as a change or access generate an activity stream event. RDS for Oracle always handles these events asynchronously.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamKinesisStreamName</i> The name of the Amazon Kinesis data stream used for the database activity stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamKmsKeyId</i> The Amazon Web Services KMS key identifier used for encrypting messages in the database activity stream. The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the Amazon Web Services KMS customer master key (CMK).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamStatus</i> The status of the database activity stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AwsBackupRecoveryPointArn</i> The Amazon Resource Name (ARN) of the recovery point in Amazon Web Services Backup.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomerOwnedIpEnabled</i> Specifies whether a customer-owned IP address (CoIP) is enabled for an RDS on Outposts DB instance. A <i>CoIP </i>provides local or external connectivity to resources in your Outpost subnets through your on-premises network. For some use cases, a CoIP can provide lower latency for connections to the DB instance from outside of its virtual private cloud (VPC) on your local network. For more information about RDS on Outposts, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-on-outposts.html">Working with Amazon RDS on Amazon Web Services Outposts</a> in the <i>Amazon RDS User Guide</i>. For more information about CoIPs, see <a href="https://docs.aws.amazon.com/outposts/latest/userguide/outposts-networking-components.html#ip-addressing">Customer-owned IP addresses</a> in the <i>Amazon Web Services Outposts User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceAutomatedBackupsReplications</i> The list of replicated automated backups associated with the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TagList</i> A list of tags. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html">Tagging Amazon RDS Resources</a> in the <i>Amazon RDS User Guide.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxAllocatedStorage</i> The upper limit to which Amazon RDS can automatically scale the storage of the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ListenerEndpoint</i> Specifies the listener connection endpoint for SQL Server Always On.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ListenerEndpoint</b>: Specifies the listener connection endpoint for SQL Server Always On.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociatedRoles</i>  The Amazon Web Services Identity and Access Management (IAM) roles associated with the DB instance. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeletionProtection</i> Indicates if the DB instance has deletion protection enabled. The database can't be deleted when deletion protection is enabled. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_DeleteInstance.html"> Deleting a DB Instance</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProcessorFeatures</i> The number of CPU cores and the number of threads per core for the DB instance class of the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnabledCloudwatchLogsExports</i> A list of log types that this DB instance is configured to export to CloudWatch Logs. Log types vary by DB engine. For information about the log types for each DB engine, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.html">Amazon RDS Database Log Files</a> in the <i>Amazon RDS User Guide.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PerformanceInsightsRetentionPeriod</i> The amount of time, in days, to retain Performance Insights data. Valid values are 7 or 731 (2 years). <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PerformanceInsightsKMSKeyId</i> The Amazon Web Services KMS key identifier for encryption of Performance Insights data. The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the Amazon Web Services KMS customer master key (CMK).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PerformanceInsightsEnabled</i> True if Performance Insights is enabled for the DB instance, and otherwise false.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IAMDatabaseAuthenticationEnabled</i> True if mapping of Amazon Web Services Identity and Access Management (IAM) accounts to database accounts is enabled, and otherwise false. IAM database authentication can be enabled for the following database engines <ul> <li> For MySQL 5.6, minor version 5.6.34 or higher </li> <li> For MySQL 5.7, minor version 5.7.16 or higher </li> <li> Aurora 5.6 or higher. To enable IAM database authentication for Aurora, see DBCluster Type. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Timezone</i> The time zone of the DB instance. In most cases, the <code>Timezone</code> element is empty. <code>Timezone</code> content appears only for Microsoft SQL Server DB instances that were created with a time zone specified. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceArn</i> The Amazon Resource Name (ARN) for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PromotionTier</i> A value that specifies the order in which an Aurora Replica is promoted to the primary instance after a failure of the existing primary instance. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Managing.Backups.html#Aurora.Managing.FaultTolerance"> Fault Tolerance for an Aurora DB Cluster</a> in the <i>Amazon Aurora User Guide</i>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MonitoringRoleArn</i> The ARN for the IAM role that permits RDS to send Enhanced Monitoring metrics to Amazon CloudWatch Logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnhancedMonitoringResourceArn</i> The Amazon Resource Name (ARN) of the Amazon CloudWatch Logs log stream that receives the Enhanced Monitoring metrics data for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MonitoringInterval</i> The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CopyTagsToSnapshot</i> Specifies whether tags are copied from the DB instance to snapshots of the DB instance.  <b>Amazon Aurora</b>  Not applicable. Copying tags to snapshots is managed by the DB cluster. Setting this value for an Aurora DB instance has no effect on the DB cluster setting. For more information, see <code>DBCluster</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainMemberships</i> The Active Directory Domain membership records associated with the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CACertificateIdentifier</i> The identifier of the CA certificate for this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DbiResourceId</i> The Amazon Web Services Region-unique, immutable identifier for the DB instance. This identifier is found in Amazon Web Services CloudTrail log entries whenever the Amazon Web Services KMS customer master key (CMK) for the DB instance is accessed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i>  If <code>StorageEncrypted</code> is true, the Amazon Web Services KMS key identifier for the encrypted DB instance.  The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the Amazon Web Services KMS customer master key (CMK).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageEncrypted</i> Specifies whether the DB instance is encrypted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterIdentifier</i> If the DB instance is a member of a DB cluster, contains the name of the DB cluster that the DB instance is a member of.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DbInstancePort</i> Specifies the port that the DB instance listens on. If the DB instance is part of a DB cluster, this can be a different port than the DB cluster port.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TdeCredentialArn</i> The ARN from the key store with which the instance is associated for TDE encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageType</i> Specifies the storage type associated with DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusInfos</i> The status of a read replica. If the instance isn't a read replica, this is blank.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PubliclyAccessible</i> Specifies the accessibility options for the DB instance. When the DB instance is publicly accessible, its DNS endpoint resolves to the private IP address from within the DB instance's VPC, and to the public IP address from outside of the DB instance's VPC. Access to the DB instance is ultimately controlled by the security group it uses, and that public access is not permitted if the security group assigned to the DB instance doesn't permit it. When the DB instance isn't publicly accessible, it is an internal DB instance with a DNS name that resolves to a private IP address. For more information, see <a>CreateDBInstance</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecondaryAvailabilityZone</i> If present, specifies the name of the secondary Availability Zone for a DB instance with multi-AZ support.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NcharCharacterSetName</i> The name of the NCHAR character set for the Oracle DB instance. This character set specifies the Unicode encoding for data stored in table columns of type NCHAR, NCLOB, or NVARCHAR2. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CharacterSetName</i> If present, specifies the name of the character set that this instance is associated with.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OptionGroupMemberships</i> Provides the list of option group memberships for this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Iops</i> Specifies the Provisioned IOPS (I/O operations per second) value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LicenseModel</i> License model information for this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicaMode</i> The open mode of an Oracle read replica. The default is <code>open-read-only</code>. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/oracle-read-replicas.html">Working with Oracle Read Replicas for Amazon RDS</a> in the <i>Amazon RDS User Guide</i>. <note> This attribute is only supported in RDS for Oracle. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadReplicaDBClusterIdentifiers</i> Contains one or more identifiers of Aurora DB clusters to which the RDS DB instance is replicated as a read replica. For example, when you create an Aurora read replica of an RDS MySQL DB instance, the Aurora MySQL DB cluster for the Aurora read replica is shown. This output does not contain information about cross region Aurora read replicas. <note> Currently, each RDS DB instance can have only one Aurora read replica. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadReplicaDBInstanceIdentifiers</i> Contains one or more identifiers of the read replicas associated with this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadReplicaSourceDBInstanceIdentifier</i> Contains the identifier of the source DB instance if this DB instance is a read replica.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoMinorVersionUpgrade</i> A value that indicates that minor version patches are applied automatically.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> Indicates the database engine version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiAZ</i> Specifies if the DB instance is a Multi-AZ deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestRestorableTime</i> Specifies the latest time to which a database can be restored with point-in-time restore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingModifiedValues</i> A value that specifies that changes to the DB instance are pending. This element is only included when changes are pending. Specific changes are identified by subelements.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingModifiedValues</b>: A value that specifies that changes to the DB instance are pending. This element is only included when changes are pending. Specific changes are identified by subelements.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i> Specifies the weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroup</i> Specifies information on the subnet group associated with the DB instance, including the name, description, and subnets in the subnet group.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DBSubnetGroup</b>: Specifies information on the subnet group associated with the DB instance, including the name, description, and subnets in the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZone</i> Specifies the name of the Availability Zone the DB instance is located in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBParameterGroups</i> Provides the list of DB parameter groups applied to this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcSecurityGroups</i> Provides a list of VPC security group elements that the DB instance belongs to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSecurityGroups</i>  A list of DB security group elements containing <code>DBSecurityGroup.Name</code> and <code>DBSecurityGroup.Status</code> subelements. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupRetentionPeriod</i> Specifies the number of days for which automatic DB snapshots are retained.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredBackupWindow</i>  Specifies the daily time range during which automated backups are created if automated backups are enabled, as determined by the <code>BackupRetentionPeriod</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceCreateTime</i> Provides the date and time the DB instance was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllocatedStorage</i> Specifies the allocated storage size specified in gibibytes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i> Specifies the connection endpoint.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Endpoint</b>: Specifies the connection endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBName</i> The meaning of this parameter differs according to the database engine you use.  <b>MySQL, MariaDB, SQL Server, PostgreSQL</b>  Contains the name of the initial database of this instance that was provided at create time, if one was specified when the DB instance was created. This same name is returned for the life of the DB instance. Type: String  <b>Oracle</b>  Contains the Oracle System ID (SID) of the created DB instance. Not shown when the returned parameters do not apply to an Oracle DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUsername</i> Contains the master username for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceStatus</i> Specifies the current state of this database. For information about DB instance statuses, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/accessing-monitoring.html#Overview.DBInstance.Status">Viewing DB instance status</a> in the <i>Amazon RDS User Guide.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> The name of the database engine to be used for this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceClass</i> Contains the name of the compute and memory capacity class of the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceIdentifier</i> Contains a user-supplied database identifier. This identifier is the unique key that identifies a DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HostedZoneId</i> Specifies the ID that Amazon Route 53 assigns when you create a hosted zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Specifies the port that the database engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Address</i> Specifies the DNS address of the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupArn</i> The Amazon Resource Name (ARN) for the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Subnets</i>  Contains a list of <code>Subnet</code> elements. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetGroupStatus</i> Provides the status of the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> Provides the VpcId of the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupDescription</i> Provides the description of the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupName</i> The name of the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupName</i> The DB subnet group for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CACertificateIdentifier</i> The identifier of the CA certificate for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageType</i> The storage type of the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceIdentifier</i> The database identifier for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Iops</i> The Provisioned IOPS value for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LicenseModel</i> The license model for the DB instance. Valid values: <code>license-included</code> | <code>bring-your-own-license</code> | <code>general-public-license</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> The database engine version.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiAZ</i> A value that indicates that the Single-AZ DB instance will change to a Multi-AZ deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupRetentionPeriod</i> The number of days for which automated backups are retained.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> The port for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUserPassword</i> The master credentials for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AllocatedStorage</i> The allocated storage size for the DB instance specified in gibibytes .<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceClass</i> The name of the compute and memory capacity class for the DB instance.<br/>A list of the log types whose configuration is still pending. In other words, these log types are in the process of being activated or deactivated.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingCloudwatchLogsExports</b>: A list of the log types whose configuration is still pending. In other words, these log types are in the process of being activated or deactivated.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HostedZoneId</i> Specifies the ID that Amazon Route 53 assigns when you create a hosted zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Specifies the port that the database engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Address</i> Specifies the DNS address of the DB instance.<br/>        """
        pass

    def restore_db_instance_to_point_in_time(self, TargetDBInstanceIdentifier: str, SourceDBInstanceIdentifier: str=None, RestoreTime: TStamp=None, UseLatestRestorableTime: Boolean=None, DBInstanceClass: str=None, Port: int=None, AvailabilityZone: str=None, DBSubnetGroupName: str=None, MultiAZ: BooleanOptional=None, PubliclyAccessible: BooleanOptional=None, AutoMinorVersionUpgrade: BooleanOptional=None, LicenseModel: str=None, DBName: str=None, Engine: str=None, Iops: int=None, OptionGroupName: str=None, CopyTagsToSnapshot: BooleanOptional=None, Tags: List[Tag]=None, StorageType: str=None, TdeCredentialArn: str=None, TdeCredentialPassword: str=None, VpcSecurityGroupIds: List[String]=None, Domain: str=None, DomainIAMRoleName: str=None, EnableIAMDatabaseAuthentication: BooleanOptional=None, EnableCloudwatchLogsExports: List[String]=None, ProcessorFeatures: List[ProcessorFeature]=None, UseDefaultProcessorFeatures: BooleanOptional=None, DBParameterGroupName: str=None, DeletionProtection: BooleanOptional=None, SourceDbiResourceId: str=None, MaxAllocatedStorage: int=None, SourceDBInstanceAutomatedBackupsArn: str=None, EnableCustomerOwnedIp: BooleanOptional=None) -> RestoreDBInstanceToPointInTimeResult:
        r"""Restores a DB instance to an arbitrary point in time. You can restore to any point in time before the time identified by the LatestRestorableTime property. You can restore to a point up to the number of days specified by the BackupRetentionPeriod property. The target database is created with most of the original configuration, but in a system-selected Availability Zone, with the default security group, the default subnet group, and the default DB parameter group. By default, the new DB instance is created as a single-AZ deployment except when the instance is a SQL Server instance that has an option group that is associated with mirroring; in this case, the instance becomes a mirrored deployment and not a single-AZ deployment. <note> This command doesn't apply to Aurora MySQL and Aurora PostgreSQL. For Aurora, use <code>RestoreDBClusterToPointInTime</code>. </note>

        :param self:
        :param EnableCustomerOwnedIp:  A value that indicates whether to enable a customer-owned IP address (CoIP) for an RDS on Outposts DB instance. A <i>CoIP</i> provides local or external connectivity to resources in your Outpost subnets through your on-premises network. For some use cases, a CoIP can provide lower latency for connections to the DB instance from outside of its virtual private cloud (VPC) on your local network. For more information about RDS on Outposts, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-on-outposts.html">Working with Amazon RDS on Amazon Web Services Outposts</a> in the <i>Amazon RDS User Guide</i>. For more information about CoIPs, see <a href="https://docs.aws.amazon.com/outposts/latest/userguide/outposts-networking-components.html#ip-addressing">Customer-owned IP addresses</a> in the <i>Amazon Web Services Outposts User Guide</i>.<br/>SourceDBInstanceAutomatedBackupsArn:  The Amazon Resource Name (ARN) of the replicated automated backups from which to restore, for example, <code>arn:aws:rds:useast-1:123456789012:auto-backup:ab-L2IJCEXJP7XQ7HOJ4SIEXAMPLE</code>.<br/>MaxAllocatedStorage:  The upper limit to which Amazon RDS can automatically scale the storage of the DB instance. For more information about this setting, including limitations that apply to it, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PIOPS.StorageTypes.html#USER_PIOPS.Autoscaling"> Managing capacity automatically with Amazon RDS storage autoscaling</a> in the <i>Amazon RDS User Guide</i>.<br/>SourceDbiResourceId:  The resource ID of the source DB instance from which to restore.<br/>DeletionProtection:  A value that indicates whether the DB instance has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_DeleteInstance.html"> Deleting a DB Instance</a>. <br/>DBParameterGroupName:  The name of the DB parameter group to associate with this DB instance. If you do not specify a value for <code>DBParameterGroupName</code>, then the default <code>DBParameterGroup</code> for the specified DB engine is used. Constraints: <ul> <li> If supplied, must match the name of an existing DBParameterGroup. </li> <li> Must be 1 to 255 letters, numbers, or hyphens. </li> <li> First character must be a letter. </li> <li> Can't end with a hyphen or contain two consecutive hyphens. </li> </ul><br/>UseDefaultProcessorFeatures:  A value that indicates whether the DB instance class of the DB instance uses its default processor features.<br/>ProcessorFeatures:  The number of CPU cores and the number of threads per core for the DB instance class of the DB instance.<br/>EnableCloudwatchLogsExports:  The list of logs that the restored DB instance is to export to CloudWatch Logs. The values in the list depend on the DB engine being used. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.html#USER_LogAccess.Procedural.UploadtoCloudWatch">Publishing Database Logs to Amazon CloudWatch Logs</a> in the <i>Amazon RDS User Guide</i>.<br/>EnableIAMDatabaseAuthentication:  A value that indicates whether to enable mapping of Amazon Web Services Identity and Access Management (IAM) accounts to database accounts. By default, mapping is disabled. For more information about IAM database authentication, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.IAMDBAuth.html"> IAM Database Authentication for MySQL and PostgreSQL</a> in the <i>Amazon RDS User Guide.</i> <br/>DomainIAMRoleName:  Specify the name of the IAM role to be used when making API calls to the Directory Service.<br/>Domain:  Specify the Active Directory directory ID to restore the DB instance in. The domain must be created prior to this operation. Currently, only MySQL, Microsoft SQL Server, Oracle, and PostgreSQL DB instances can be created in an Active Directory Domain. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/kerberos-authentication.html"> Kerberos Authentication</a> in the <i>Amazon RDS User Guide</i>.<br/>VpcSecurityGroupIds:   A list of EC2 VPC security groups to associate with this DB instance.   Default: The default EC2 VPC security group for the DB subnet group's VPC. <br/>TdeCredentialPassword:  The password for the given ARN from the key store in order to access the device.<br/>TdeCredentialArn:  The ARN from the key store with which to associate the instance for TDE encryption.<br/>StorageType:  Specifies the storage type to be associated with the DB instance.  Valid values: <code>standard | gp2 | io1</code>   If you specify <code>io1</code>, you must also include a value for the <code>Iops</code> parameter.   Default: <code>io1</code> if the <code>Iops</code> parameter is specified, otherwise <code>gp2</code> <br/>Tags:  A list of tags. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html">Tagging Amazon RDS Resources</a> in the <i>Amazon RDS User Guide.</i> <br/>CopyTagsToSnapshot:  A value that indicates whether to copy all tags from the restored DB instance to snapshots of the DB instance. By default, tags are not copied.<br/>OptionGroupName:  The name of the option group to be used for the restored DB instance. Permanent options, such as the TDE option for Oracle Advanced Security TDE, can't be removed from an option group, and that option group can't be removed from a DB instance once it is associated with a DB instance<br/>Iops:  The amount of Provisioned IOPS (input/output operations per second) to be initially allocated for the DB instance. Constraints: Must be an integer greater than 1000.  <b>SQL Server</b>  Setting the IOPS value for the SQL Server database engine isn't supported.<br/>Engine:  The database engine to use for the new instance. Default: The same as source Constraint: Must be compatible with the engine of the source Valid Values: <ul> <li>  <code>mariadb</code>  </li> <li>  <code>mysql</code>  </li> <li>  <code>oracle-ee</code>  </li> <li>  <code>oracle-ee-cdb</code>  </li> <li>  <code>oracle-se2</code>  </li> <li>  <code>oracle-se2-cdb</code>  </li> <li>  <code>postgres</code>  </li> <li>  <code>sqlserver-ee</code>  </li> <li>  <code>sqlserver-se</code>  </li> <li>  <code>sqlserver-ex</code>  </li> <li>  <code>sqlserver-web</code>  </li> </ul><br/>DBName:  The database name for the restored DB instance. <note> This parameter isn't used for the MySQL or MariaDB engines. </note><br/>LicenseModel:  License model information for the restored DB instance. Default: Same as source.  Valid values: <code>license-included</code> | <code>bring-your-own-license</code> | <code>general-public-license</code> <br/>AutoMinorVersionUpgrade:  A value that indicates whether minor version upgrades are applied automatically to the DB instance during the maintenance window.<br/>PubliclyAccessible:  A value that indicates whether the DB instance is publicly accessible. When the DB instance is publicly accessible, its DNS endpoint resolves to the private IP address from within the DB instance's VPC, and to the public IP address from outside of the DB instance's VPC. Access to the DB instance is ultimately controlled by the security group it uses, and that public access is not permitted if the security group assigned to the DB instance doesn't permit it. When the DB instance isn't publicly accessible, it is an internal DB instance with a DNS name that resolves to a private IP address. For more information, see <a>CreateDBInstance</a>.<br/>MultiAZ:  A value that indicates whether the DB instance is a Multi-AZ deployment. Constraint: You can't specify the <code>AvailabilityZone</code> parameter if the DB instance is a Multi-AZ deployment.<br/>DBSubnetGroupName:  The DB subnet group name to use for the new instance. Constraints: If supplied, must match the name of an existing DBSubnetGroup. Example: <code>mySubnetgroup</code> <br/>AvailabilityZone:  The Availability Zone (AZ) where the DB instance will be created. Default: A random, system-chosen Availability Zone. Constraint: You can't specify the <code>AvailabilityZone</code> parameter if the DB instance is a Multi-AZ deployment. Example: <code>us-east-1a</code> <br/>Port:  The port number on which the database accepts connections. Constraints: Value must be <code>1150-65535</code>  Default: The same port as the original DB instance.<br/>DBInstanceClass:  The compute and memory capacity of the Amazon RDS DB instance, for example, <code>db.m4.large</code>. Not all DB instance classes are available in all Amazon Web Services Regions, or for all database engines. For the full list of DB instance classes, and availability for your engine, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html">DB Instance Class</a> in the <i>Amazon RDS User Guide.</i>  Default: The same DBInstanceClass as the original DB instance.<br/>UseLatestRestorableTime:   A value that indicates whether the DB instance is restored from the latest backup time. By default, the DB instance isn't restored from the latest backup time.  Constraints: Can't be specified if the <code>RestoreTime</code> parameter is provided.<br/>RestoreTime:  The date and time to restore from. Valid Values: Value must be a time in Universal Coordinated Time (UTC) format Constraints: <ul> <li> Must be before the latest restorable time for the DB instance </li> <li> Can't be specified if the <code>UseLatestRestorableTime</code> parameter is enabled </li> </ul> Example: <code>2009-09-07T23:45:00Z</code> <br/>TargetDBInstanceIdentifier:  The name of the new DB instance to be created. Constraints: <ul> <li> Must contain from 1 to 63 letters, numbers, or hyphens </li> <li> First character must be a letter </li> <li> Can't end with a hyphen or contain two consecutive hyphens </li> </ul><br/>SourceDBInstanceIdentifier:  The identifier of the source DB instance from which to restore. Constraints: <ul> <li> Must match the identifier of an existing DB instance. </li> </ul><br/>
        :return: DBInstance:  Contains the details of an Amazon RDS DB instance.  This data type is used as a response element in the <code>DescribeDBInstances</code> action. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamEngineNativeAuditFieldsIncluded</i> Indicates whether engine-native audit fields are included in the database activity stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamMode</i> The mode of the database activity stream. Database events such as a change or access generate an activity stream event. RDS for Oracle always handles these events asynchronously.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamKinesisStreamName</i> The name of the Amazon Kinesis data stream used for the database activity stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamKmsKeyId</i> The Amazon Web Services KMS key identifier used for encrypting messages in the database activity stream. The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the Amazon Web Services KMS customer master key (CMK).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamStatus</i> The status of the database activity stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AwsBackupRecoveryPointArn</i> The Amazon Resource Name (ARN) of the recovery point in Amazon Web Services Backup.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomerOwnedIpEnabled</i> Specifies whether a customer-owned IP address (CoIP) is enabled for an RDS on Outposts DB instance. A <i>CoIP </i>provides local or external connectivity to resources in your Outpost subnets through your on-premises network. For some use cases, a CoIP can provide lower latency for connections to the DB instance from outside of its virtual private cloud (VPC) on your local network. For more information about RDS on Outposts, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-on-outposts.html">Working with Amazon RDS on Amazon Web Services Outposts</a> in the <i>Amazon RDS User Guide</i>. For more information about CoIPs, see <a href="https://docs.aws.amazon.com/outposts/latest/userguide/outposts-networking-components.html#ip-addressing">Customer-owned IP addresses</a> in the <i>Amazon Web Services Outposts User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceAutomatedBackupsReplications</i> The list of replicated automated backups associated with the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TagList</i> A list of tags. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html">Tagging Amazon RDS Resources</a> in the <i>Amazon RDS User Guide.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxAllocatedStorage</i> The upper limit to which Amazon RDS can automatically scale the storage of the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ListenerEndpoint</i> Specifies the listener connection endpoint for SQL Server Always On.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ListenerEndpoint</b>: Specifies the listener connection endpoint for SQL Server Always On.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociatedRoles</i>  The Amazon Web Services Identity and Access Management (IAM) roles associated with the DB instance. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeletionProtection</i> Indicates if the DB instance has deletion protection enabled. The database can't be deleted when deletion protection is enabled. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_DeleteInstance.html"> Deleting a DB Instance</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProcessorFeatures</i> The number of CPU cores and the number of threads per core for the DB instance class of the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnabledCloudwatchLogsExports</i> A list of log types that this DB instance is configured to export to CloudWatch Logs. Log types vary by DB engine. For information about the log types for each DB engine, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.html">Amazon RDS Database Log Files</a> in the <i>Amazon RDS User Guide.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PerformanceInsightsRetentionPeriod</i> The amount of time, in days, to retain Performance Insights data. Valid values are 7 or 731 (2 years). <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PerformanceInsightsKMSKeyId</i> The Amazon Web Services KMS key identifier for encryption of Performance Insights data. The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the Amazon Web Services KMS customer master key (CMK).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PerformanceInsightsEnabled</i> True if Performance Insights is enabled for the DB instance, and otherwise false.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IAMDatabaseAuthenticationEnabled</i> True if mapping of Amazon Web Services Identity and Access Management (IAM) accounts to database accounts is enabled, and otherwise false. IAM database authentication can be enabled for the following database engines <ul> <li> For MySQL 5.6, minor version 5.6.34 or higher </li> <li> For MySQL 5.7, minor version 5.7.16 or higher </li> <li> Aurora 5.6 or higher. To enable IAM database authentication for Aurora, see DBCluster Type. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Timezone</i> The time zone of the DB instance. In most cases, the <code>Timezone</code> element is empty. <code>Timezone</code> content appears only for Microsoft SQL Server DB instances that were created with a time zone specified. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceArn</i> The Amazon Resource Name (ARN) for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PromotionTier</i> A value that specifies the order in which an Aurora Replica is promoted to the primary instance after a failure of the existing primary instance. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Managing.Backups.html#Aurora.Managing.FaultTolerance"> Fault Tolerance for an Aurora DB Cluster</a> in the <i>Amazon Aurora User Guide</i>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MonitoringRoleArn</i> The ARN for the IAM role that permits RDS to send Enhanced Monitoring metrics to Amazon CloudWatch Logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnhancedMonitoringResourceArn</i> The Amazon Resource Name (ARN) of the Amazon CloudWatch Logs log stream that receives the Enhanced Monitoring metrics data for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MonitoringInterval</i> The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CopyTagsToSnapshot</i> Specifies whether tags are copied from the DB instance to snapshots of the DB instance.  <b>Amazon Aurora</b>  Not applicable. Copying tags to snapshots is managed by the DB cluster. Setting this value for an Aurora DB instance has no effect on the DB cluster setting. For more information, see <code>DBCluster</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainMemberships</i> The Active Directory Domain membership records associated with the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CACertificateIdentifier</i> The identifier of the CA certificate for this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DbiResourceId</i> The Amazon Web Services Region-unique, immutable identifier for the DB instance. This identifier is found in Amazon Web Services CloudTrail log entries whenever the Amazon Web Services KMS customer master key (CMK) for the DB instance is accessed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i>  If <code>StorageEncrypted</code> is true, the Amazon Web Services KMS key identifier for the encrypted DB instance.  The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the Amazon Web Services KMS customer master key (CMK).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageEncrypted</i> Specifies whether the DB instance is encrypted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterIdentifier</i> If the DB instance is a member of a DB cluster, contains the name of the DB cluster that the DB instance is a member of.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DbInstancePort</i> Specifies the port that the DB instance listens on. If the DB instance is part of a DB cluster, this can be a different port than the DB cluster port.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TdeCredentialArn</i> The ARN from the key store with which the instance is associated for TDE encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageType</i> Specifies the storage type associated with DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusInfos</i> The status of a read replica. If the instance isn't a read replica, this is blank.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PubliclyAccessible</i> Specifies the accessibility options for the DB instance. When the DB instance is publicly accessible, its DNS endpoint resolves to the private IP address from within the DB instance's VPC, and to the public IP address from outside of the DB instance's VPC. Access to the DB instance is ultimately controlled by the security group it uses, and that public access is not permitted if the security group assigned to the DB instance doesn't permit it. When the DB instance isn't publicly accessible, it is an internal DB instance with a DNS name that resolves to a private IP address. For more information, see <a>CreateDBInstance</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecondaryAvailabilityZone</i> If present, specifies the name of the secondary Availability Zone for a DB instance with multi-AZ support.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NcharCharacterSetName</i> The name of the NCHAR character set for the Oracle DB instance. This character set specifies the Unicode encoding for data stored in table columns of type NCHAR, NCLOB, or NVARCHAR2. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CharacterSetName</i> If present, specifies the name of the character set that this instance is associated with.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OptionGroupMemberships</i> Provides the list of option group memberships for this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Iops</i> Specifies the Provisioned IOPS (I/O operations per second) value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LicenseModel</i> License model information for this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicaMode</i> The open mode of an Oracle read replica. The default is <code>open-read-only</code>. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/oracle-read-replicas.html">Working with Oracle Read Replicas for Amazon RDS</a> in the <i>Amazon RDS User Guide</i>. <note> This attribute is only supported in RDS for Oracle. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadReplicaDBClusterIdentifiers</i> Contains one or more identifiers of Aurora DB clusters to which the RDS DB instance is replicated as a read replica. For example, when you create an Aurora read replica of an RDS MySQL DB instance, the Aurora MySQL DB cluster for the Aurora read replica is shown. This output does not contain information about cross region Aurora read replicas. <note> Currently, each RDS DB instance can have only one Aurora read replica. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadReplicaDBInstanceIdentifiers</i> Contains one or more identifiers of the read replicas associated with this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadReplicaSourceDBInstanceIdentifier</i> Contains the identifier of the source DB instance if this DB instance is a read replica.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoMinorVersionUpgrade</i> A value that indicates that minor version patches are applied automatically.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> Indicates the database engine version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiAZ</i> Specifies if the DB instance is a Multi-AZ deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestRestorableTime</i> Specifies the latest time to which a database can be restored with point-in-time restore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingModifiedValues</i> A value that specifies that changes to the DB instance are pending. This element is only included when changes are pending. Specific changes are identified by subelements.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingModifiedValues</b>: A value that specifies that changes to the DB instance are pending. This element is only included when changes are pending. Specific changes are identified by subelements.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i> Specifies the weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroup</i> Specifies information on the subnet group associated with the DB instance, including the name, description, and subnets in the subnet group.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DBSubnetGroup</b>: Specifies information on the subnet group associated with the DB instance, including the name, description, and subnets in the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZone</i> Specifies the name of the Availability Zone the DB instance is located in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBParameterGroups</i> Provides the list of DB parameter groups applied to this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcSecurityGroups</i> Provides a list of VPC security group elements that the DB instance belongs to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSecurityGroups</i>  A list of DB security group elements containing <code>DBSecurityGroup.Name</code> and <code>DBSecurityGroup.Status</code> subelements. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupRetentionPeriod</i> Specifies the number of days for which automatic DB snapshots are retained.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredBackupWindow</i>  Specifies the daily time range during which automated backups are created if automated backups are enabled, as determined by the <code>BackupRetentionPeriod</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceCreateTime</i> Provides the date and time the DB instance was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllocatedStorage</i> Specifies the allocated storage size specified in gibibytes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i> Specifies the connection endpoint.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Endpoint</b>: Specifies the connection endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBName</i> The meaning of this parameter differs according to the database engine you use.  <b>MySQL, MariaDB, SQL Server, PostgreSQL</b>  Contains the name of the initial database of this instance that was provided at create time, if one was specified when the DB instance was created. This same name is returned for the life of the DB instance. Type: String  <b>Oracle</b>  Contains the Oracle System ID (SID) of the created DB instance. Not shown when the returned parameters do not apply to an Oracle DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUsername</i> Contains the master username for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceStatus</i> Specifies the current state of this database. For information about DB instance statuses, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/accessing-monitoring.html#Overview.DBInstance.Status">Viewing DB instance status</a> in the <i>Amazon RDS User Guide.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> The name of the database engine to be used for this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceClass</i> Contains the name of the compute and memory capacity class of the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceIdentifier</i> Contains a user-supplied database identifier. This identifier is the unique key that identifies a DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HostedZoneId</i> Specifies the ID that Amazon Route 53 assigns when you create a hosted zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Specifies the port that the database engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Address</i> Specifies the DNS address of the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupArn</i> The Amazon Resource Name (ARN) for the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Subnets</i>  Contains a list of <code>Subnet</code> elements. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetGroupStatus</i> Provides the status of the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> Provides the VpcId of the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupDescription</i> Provides the description of the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupName</i> The name of the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupName</i> The DB subnet group for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CACertificateIdentifier</i> The identifier of the CA certificate for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageType</i> The storage type of the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceIdentifier</i> The database identifier for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Iops</i> The Provisioned IOPS value for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LicenseModel</i> The license model for the DB instance. Valid values: <code>license-included</code> | <code>bring-your-own-license</code> | <code>general-public-license</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> The database engine version.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiAZ</i> A value that indicates that the Single-AZ DB instance will change to a Multi-AZ deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupRetentionPeriod</i> The number of days for which automated backups are retained.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> The port for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUserPassword</i> The master credentials for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AllocatedStorage</i> The allocated storage size for the DB instance specified in gibibytes .<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceClass</i> The name of the compute and memory capacity class for the DB instance.<br/>A list of the log types whose configuration is still pending. In other words, these log types are in the process of being activated or deactivated.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingCloudwatchLogsExports</b>: A list of the log types whose configuration is still pending. In other words, these log types are in the process of being activated or deactivated.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HostedZoneId</i> Specifies the ID that Amazon Route 53 assigns when you create a hosted zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Specifies the port that the database engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Address</i> Specifies the DNS address of the DB instance.<br/>        """
        pass

    def revoke_db_security_group_ingress(self, DBSecurityGroupName: str, CIDRIP: str=None, EC2SecurityGroupName: str=None, EC2SecurityGroupId: str=None, EC2SecurityGroupOwnerId: str=None) -> RevokeDBSecurityGroupIngressResult:
        r"""Revokes ingress from a DBSecurityGroup for previously authorized IP ranges or EC2 or VPC security groups. Required parameters for this API are one of CIDRIP, EC2SecurityGroupId for VPC, or (EC2SecurityGroupOwnerId and either EC2SecurityGroupName or EC2SecurityGroupId).

        :param self:
        :param EC2SecurityGroupOwnerId:   The Amazon Web Services account number of the owner of the EC2 security group specified in the <code>EC2SecurityGroupName</code> parameter. The Amazon Web Services access key ID isn't an acceptable value. For VPC DB security groups, <code>EC2SecurityGroupId</code> must be provided. Otherwise, EC2SecurityGroupOwnerId and either <code>EC2SecurityGroupName</code> or <code>EC2SecurityGroupId</code> must be provided. <br/>EC2SecurityGroupId:   The id of the EC2 security group to revoke access from. For VPC DB security groups, <code>EC2SecurityGroupId</code> must be provided. Otherwise, EC2SecurityGroupOwnerId and either <code>EC2SecurityGroupName</code> or <code>EC2SecurityGroupId</code> must be provided. <br/>EC2SecurityGroupName:   The name of the EC2 security group to revoke access from. For VPC DB security groups, <code>EC2SecurityGroupId</code> must be provided. Otherwise, EC2SecurityGroupOwnerId and either <code>EC2SecurityGroupName</code> or <code>EC2SecurityGroupId</code> must be provided. <br/>CIDRIP:   The IP range to revoke access from. Must be a valid CIDR range. If <code>CIDRIP</code> is specified, <code>EC2SecurityGroupName</code>, <code>EC2SecurityGroupId</code> and <code>EC2SecurityGroupOwnerId</code> can't be provided. <br/>DBSecurityGroupName:  The name of the DB security group to revoke ingress from.<br/>
        :return: DBSecurityGroup:  Contains the details for an Amazon RDS DB security group.  This data type is used as a response element in the <code>DescribeDBSecurityGroups</code> action. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSecurityGroupArn</i> The Amazon Resource Name (ARN) for the DB security group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IPRanges</i>  Contains a list of <code>IPRange</code> elements. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EC2SecurityGroups</i>  Contains a list of <code>EC2SecurityGroup</code> elements. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> Provides the VpcId of the DB security group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSecurityGroupDescription</i> Provides the description of the DB security group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSecurityGroupName</i> Specifies the name of the DB security group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> Provides the Amazon Web Services ID of the owner of a specific DB security group.<br/>        """
        pass

    def start_activity_stream(self, KmsKeyId: str, Mode: str, ResourceArn: str, ApplyImmediately: BooleanOptional=None, EngineNativeAuditFieldsIncluded: BooleanOptional=None) -> StartActivityStreamResponse:
        r"""Starts a database activity stream to monitor activity on the database. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/DBActivityStreams.html">Database Activity Streams</a> in the <i>Amazon Aurora User Guide</i>.

        :param self:
        :param EngineNativeAuditFieldsIncluded:  Specifies whether the database activity stream includes engine-native audit fields. This option only applies to an Oracle DB instance. By default, no engine-native audit fields are included.<br/>ApplyImmediately:  Specifies whether or not the database activity stream is to start as soon as possible, regardless of the maintenance window for the database.<br/>KmsKeyId:  The Amazon Web Services KMS key identifier for encrypting messages in the database activity stream. The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the Amazon Web Services KMS customer master key (CMK).<br/>Mode:  Specifies the mode of the database activity stream. Database events such as a change or access generate an activity stream event. The database session can handle these events either synchronously or asynchronously. <br/>ResourceArn:  The Amazon Resource Name (ARN) of the DB cluster, for example, <code>arn:aws:rds:us-east-1:12345667890:cluster:das-cluster</code>.<br/>
        :return: EngineNativeAuditFieldsIncluded:  Indicates whether engine-native audit fields are included in the database activity stream.<br/>ApplyImmediately:  Indicates whether or not the database activity stream will start as soon as possible, regardless of the maintenance window for the database.<br/>Mode:  The mode of the database activity stream.<br/>Status:  The status of the database activity stream.<br/>KinesisStreamName:  The name of the Amazon Kinesis data stream to be used for the database activity stream.<br/>KmsKeyId:  The Amazon Web Services KMS key identifier for encryption of messages in the database activity stream.<br/>        """
        pass

    def start_db_cluster(self, DBClusterIdentifier: str) -> StartDBClusterResult:
        r"""Starts an Amazon Aurora DB cluster that was stopped using the Amazon Web Services console, the stop-db-cluster CLI command, or the StopDBCluster action. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-cluster-stop-start.html"> Stopping and Starting an Aurora Cluster</a> in the <i>Amazon Aurora User Guide.</i>  <note> This action only applies to Aurora DB clusters. </note>

        :param self:
        :param DBClusterIdentifier:  The DB cluster identifier of the Amazon Aurora DB cluster to be started. This parameter is stored as a lowercase string.<br/>
        :return: DBCluster:  Contains the details of an Amazon Aurora DB cluster.  This data type is used as a response element in the <code>DescribeDBClusters</code>, <code>StopDBCluster</code>, and <code>StartDBCluster</code> actions. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingModifiedValues</i> A value that specifies that changes to the DB cluster are pending. This element is only included when changes are pending. Specific changes are identified by subelements.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingModifiedValues</b>: A value that specifies that changes to the DB cluster are pending. This element is only included when changes are pending. Specific changes are identified by subelements.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalWriteForwardingRequested</i> Specifies whether you have requested to enable write forwarding for a secondary cluster in an Aurora global database. Because write forwarding takes time to enable, check the value of <code>GlobalWriteForwardingStatus</code> to confirm that the request has completed before using the write forwarding feature for this cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalWriteForwardingStatus</i> Specifies whether a secondary cluster in an Aurora global database has write forwarding enabled, not enabled, or is in the process of enabling it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TagList</i> A list of tags. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html">Tagging Amazon RDS Resources</a> in the <i>Amazon RDS User Guide.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainMemberships</i> The Active Directory Domain membership records associated with the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CrossAccountClone</i> Specifies whether the DB cluster is a clone of a DB cluster owned by a different Amazon Web Services account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CopyTagsToSnapshot</i> Specifies whether tags are copied from the DB cluster to snapshots of the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamKinesisStreamName</i> The name of the Amazon Kinesis data stream used for the database activity stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamKmsKeyId</i> The Amazon Web Services KMS key identifier used for encrypting messages in the database activity stream. The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the Amazon Web Services KMS customer master key (CMK).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamStatus</i> The status of the database activity stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamMode</i> The mode of the database activity stream. Database events such as a change or access generate an activity stream event. The database session can handle these events either synchronously or asynchronously. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HttpEndpointEnabled</i> A value that indicates whether the HTTP endpoint for an Aurora Serverless DB cluster is enabled. When enabled, the HTTP endpoint provides a connectionless web service API for running SQL queries on the Aurora Serverless DB cluster. You can also query your database from inside the RDS console with the query editor. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/data-api.html">Using the Data API for Aurora Serverless</a> in the <i>Amazon Aurora User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeletionProtection</i> Indicates if the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ScalingConfigurationInfo</i> Shows the scaling configuration for an Aurora DB cluster in <code>serverless</code> DB engine mode. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html">Using Amazon Aurora Serverless</a> in the <i>Amazon Aurora User Guide</i>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ScalingConfigurationInfo</b>: Shows the scaling configuration for an Aurora DB cluster in <code>serverless</code> DB engine mode. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html">Using Amazon Aurora Serverless</a> in the <i>Amazon Aurora User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineMode</i> The DB engine mode of the DB cluster, either <code>provisioned</code>, <code>serverless</code>, <code>parallelquery</code>, <code>global</code>, or <code>multimaster</code>. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBCluster.html"> CreateDBCluster</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Capacity</i> The current capacity of an Aurora Serverless DB cluster. The capacity is 0 (zero) when the cluster is paused. For more information about Aurora Serverless, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html">Using Amazon Aurora Serverless</a> in the <i>Amazon Aurora User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnabledCloudwatchLogsExports</i> A list of log types that this DB cluster is configured to export to CloudWatch Logs. Log types vary by DB engine. For information about the log types for each DB engine, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_LogAccess.html">Amazon RDS Database Log Files</a> in the <i>Amazon Aurora User Guide.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BacktrackConsumedChangeRecords</i> The number of change records stored for Backtrack.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BacktrackWindow</i> The target backtrack window, in seconds. If this value is set to 0, backtracking is disabled for the DB cluster. Otherwise, backtracking is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EarliestBacktrackTime</i> The earliest time to which a DB cluster can be backtracked.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterCreateTime</i> Specifies the time when the DB cluster was created, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloneGroupId</i> Identifies the clone group to which the DB cluster is associated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IAMDatabaseAuthenticationEnabled</i> A value that indicates whether the mapping of Amazon Web Services Identity and Access Management (IAM) accounts to database accounts is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociatedRoles</i> Provides a list of the Amazon Web Services Identity and Access Management (IAM) roles that are associated with the DB cluster. IAM roles that are associated with a DB cluster grant permission for the DB cluster to access other Amazon Web Services on your behalf.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterArn</i> The Amazon Resource Name (ARN) for the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DbClusterResourceId</i> The Amazon Web Services Region-unique, immutable identifier for the DB cluster. This identifier is found in Amazon Web Services CloudTrail log entries whenever the Amazon Web Services KMS CMK for the DB cluster is accessed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> If <code>StorageEncrypted</code> is enabled, the Amazon Web Services KMS key identifier for the encrypted DB cluster. The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the Amazon Web Services KMS customer master key (CMK).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageEncrypted</i> Specifies whether the DB cluster is encrypted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HostedZoneId</i> Specifies the ID that Amazon Route 53 assigns when you create a hosted zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcSecurityGroups</i> Provides a list of VPC security groups that the DB cluster belongs to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterMembers</i> Provides the list of instances that make up the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadReplicaIdentifiers</i> Contains one or more identifiers of the read replicas associated with this DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationSourceIdentifier</i> Contains the identifier of the source DB cluster if this DB cluster is a read replica.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i> Specifies the weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredBackupWindow</i> Specifies the daily time range during which automated backups are created if automated backups are enabled, as determined by the <code>BackupRetentionPeriod</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterOptionGroupMemberships</i> Provides the list of option group memberships for this DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUsername</i> Contains the master username for the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Specifies the port that the database engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestRestorableTime</i> Specifies the latest time to which a database can be restored with point-in-time restore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> Indicates the database engine version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> The name of the database engine to be used for this DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiAZ</i> Specifies whether the DB cluster has instances in multiple Availability Zones.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomEndpoints</i> Identifies all custom endpoints associated with the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReaderEndpoint</i> The reader endpoint for the DB cluster. The reader endpoint for a DB cluster load-balances connections across the Aurora Replicas that are available in a DB cluster. As clients request new connections to the reader endpoint, Aurora distributes the connection requests among the Aurora Replicas in the DB cluster. This functionality can help balance your read workload across multiple Aurora Replicas in your DB cluster.  If a failover occurs, and the Aurora Replica that you are connected to is promoted to be the primary instance, your connection is dropped. To continue sending your read workload to other Aurora Replicas in the cluster, you can then reconnect to the reader endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i> Specifies the connection endpoint for the primary instance of the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EarliestRestorableTime</i> The earliest time to which a database can be restored with point-in-time restore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PercentProgress</i> Specifies the progress of the operation as a percentage.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Specifies the current state of this DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroup</i> Specifies information on the subnet group associated with the DB cluster, including the name, description, and subnets in the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterParameterGroup</i> Specifies the name of the DB cluster parameter group for the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterIdentifier</i> Contains a user-supplied DB cluster identifier. This identifier is the unique key that identifies a DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> Contains the name of the initial database of this DB cluster that was provided at create time, if one was specified when the DB cluster was created. This same name is returned for the life of the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CharacterSetName</i> If present, specifies the name of the character set that this cluster is associated with.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupRetentionPeriod</i> Specifies the number of days for which automatic DB snapshots are retained.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZones</i> Provides the list of Availability Zones (AZs) where instances in the DB cluster can be created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllocatedStorage</i> For all database engines except Amazon Aurora, <code>AllocatedStorage</code> specifies the allocated storage size in gibibytes (GiB). For Aurora, <code>AllocatedStorage</code> always returns 1, because Aurora DB cluster storage size isn't fixed, but instead automatically adjusts as needed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TimeoutAction</i> The timeout action of a call to <code>ModifyCurrentDBClusterCapacity</code>, either <code>ForceApplyCapacityChange</code> or <code>RollbackCapacityChange</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecondsUntilAutoPause</i> The remaining amount of time, in seconds, before the Aurora DB cluster in <code>serverless</code> mode is paused. A DB cluster can be paused only when it's idle (it has no connections).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoPause</i> A value that indicates whether automatic pause is allowed for the Aurora DB cluster in <code>serverless</code> DB engine mode. When the value is set to false for an Aurora Serverless DB cluster, the DB cluster automatically resumes.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxCapacity</i> The maximum capacity for an Aurora DB cluster in <code>serverless</code> DB engine mode.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MinCapacity</i> The maximum capacity for the Aurora DB cluster in <code>serverless</code> DB engine mode.<br/>A list of the log types whose configuration is still pending. In other words, these log types are in the process of being activated or deactivated.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingCloudwatchLogsExports</b>: A list of the log types whose configuration is still pending. In other words, these log types are in the process of being activated or deactivated.        """
        pass

    def start_db_instance(self, DBInstanceIdentifier: str) -> StartDBInstanceResult:
        r""" Starts an Amazon RDS DB instance that was stopped using the Amazon Web Services console, the stop-db-instance CLI command, or the StopDBInstance action.  For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_StartInstance.html"> Starting an Amazon RDS DB instance That Was Previously Stopped</a> in the <i>Amazon RDS User Guide.</i>  <note>  This command doesn't apply to Aurora MySQL and Aurora PostgreSQL. For Aurora DB clusters, use <code>StartDBCluster</code> instead.  </note>

        :param self:
        :param DBInstanceIdentifier:   The user-supplied instance identifier. <br/>
        :return: DBInstance:  Contains the details of an Amazon RDS DB instance.  This data type is used as a response element in the <code>DescribeDBInstances</code> action. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamEngineNativeAuditFieldsIncluded</i> Indicates whether engine-native audit fields are included in the database activity stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamMode</i> The mode of the database activity stream. Database events such as a change or access generate an activity stream event. RDS for Oracle always handles these events asynchronously.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamKinesisStreamName</i> The name of the Amazon Kinesis data stream used for the database activity stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamKmsKeyId</i> The Amazon Web Services KMS key identifier used for encrypting messages in the database activity stream. The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the Amazon Web Services KMS customer master key (CMK).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamStatus</i> The status of the database activity stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AwsBackupRecoveryPointArn</i> The Amazon Resource Name (ARN) of the recovery point in Amazon Web Services Backup.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomerOwnedIpEnabled</i> Specifies whether a customer-owned IP address (CoIP) is enabled for an RDS on Outposts DB instance. A <i>CoIP </i>provides local or external connectivity to resources in your Outpost subnets through your on-premises network. For some use cases, a CoIP can provide lower latency for connections to the DB instance from outside of its virtual private cloud (VPC) on your local network. For more information about RDS on Outposts, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-on-outposts.html">Working with Amazon RDS on Amazon Web Services Outposts</a> in the <i>Amazon RDS User Guide</i>. For more information about CoIPs, see <a href="https://docs.aws.amazon.com/outposts/latest/userguide/outposts-networking-components.html#ip-addressing">Customer-owned IP addresses</a> in the <i>Amazon Web Services Outposts User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceAutomatedBackupsReplications</i> The list of replicated automated backups associated with the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TagList</i> A list of tags. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html">Tagging Amazon RDS Resources</a> in the <i>Amazon RDS User Guide.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxAllocatedStorage</i> The upper limit to which Amazon RDS can automatically scale the storage of the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ListenerEndpoint</i> Specifies the listener connection endpoint for SQL Server Always On.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ListenerEndpoint</b>: Specifies the listener connection endpoint for SQL Server Always On.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociatedRoles</i>  The Amazon Web Services Identity and Access Management (IAM) roles associated with the DB instance. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeletionProtection</i> Indicates if the DB instance has deletion protection enabled. The database can't be deleted when deletion protection is enabled. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_DeleteInstance.html"> Deleting a DB Instance</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProcessorFeatures</i> The number of CPU cores and the number of threads per core for the DB instance class of the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnabledCloudwatchLogsExports</i> A list of log types that this DB instance is configured to export to CloudWatch Logs. Log types vary by DB engine. For information about the log types for each DB engine, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.html">Amazon RDS Database Log Files</a> in the <i>Amazon RDS User Guide.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PerformanceInsightsRetentionPeriod</i> The amount of time, in days, to retain Performance Insights data. Valid values are 7 or 731 (2 years). <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PerformanceInsightsKMSKeyId</i> The Amazon Web Services KMS key identifier for encryption of Performance Insights data. The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the Amazon Web Services KMS customer master key (CMK).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PerformanceInsightsEnabled</i> True if Performance Insights is enabled for the DB instance, and otherwise false.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IAMDatabaseAuthenticationEnabled</i> True if mapping of Amazon Web Services Identity and Access Management (IAM) accounts to database accounts is enabled, and otherwise false. IAM database authentication can be enabled for the following database engines <ul> <li> For MySQL 5.6, minor version 5.6.34 or higher </li> <li> For MySQL 5.7, minor version 5.7.16 or higher </li> <li> Aurora 5.6 or higher. To enable IAM database authentication for Aurora, see DBCluster Type. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Timezone</i> The time zone of the DB instance. In most cases, the <code>Timezone</code> element is empty. <code>Timezone</code> content appears only for Microsoft SQL Server DB instances that were created with a time zone specified. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceArn</i> The Amazon Resource Name (ARN) for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PromotionTier</i> A value that specifies the order in which an Aurora Replica is promoted to the primary instance after a failure of the existing primary instance. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Managing.Backups.html#Aurora.Managing.FaultTolerance"> Fault Tolerance for an Aurora DB Cluster</a> in the <i>Amazon Aurora User Guide</i>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MonitoringRoleArn</i> The ARN for the IAM role that permits RDS to send Enhanced Monitoring metrics to Amazon CloudWatch Logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnhancedMonitoringResourceArn</i> The Amazon Resource Name (ARN) of the Amazon CloudWatch Logs log stream that receives the Enhanced Monitoring metrics data for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MonitoringInterval</i> The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CopyTagsToSnapshot</i> Specifies whether tags are copied from the DB instance to snapshots of the DB instance.  <b>Amazon Aurora</b>  Not applicable. Copying tags to snapshots is managed by the DB cluster. Setting this value for an Aurora DB instance has no effect on the DB cluster setting. For more information, see <code>DBCluster</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainMemberships</i> The Active Directory Domain membership records associated with the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CACertificateIdentifier</i> The identifier of the CA certificate for this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DbiResourceId</i> The Amazon Web Services Region-unique, immutable identifier for the DB instance. This identifier is found in Amazon Web Services CloudTrail log entries whenever the Amazon Web Services KMS customer master key (CMK) for the DB instance is accessed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i>  If <code>StorageEncrypted</code> is true, the Amazon Web Services KMS key identifier for the encrypted DB instance.  The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the Amazon Web Services KMS customer master key (CMK).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageEncrypted</i> Specifies whether the DB instance is encrypted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterIdentifier</i> If the DB instance is a member of a DB cluster, contains the name of the DB cluster that the DB instance is a member of.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DbInstancePort</i> Specifies the port that the DB instance listens on. If the DB instance is part of a DB cluster, this can be a different port than the DB cluster port.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TdeCredentialArn</i> The ARN from the key store with which the instance is associated for TDE encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageType</i> Specifies the storage type associated with DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusInfos</i> The status of a read replica. If the instance isn't a read replica, this is blank.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PubliclyAccessible</i> Specifies the accessibility options for the DB instance. When the DB instance is publicly accessible, its DNS endpoint resolves to the private IP address from within the DB instance's VPC, and to the public IP address from outside of the DB instance's VPC. Access to the DB instance is ultimately controlled by the security group it uses, and that public access is not permitted if the security group assigned to the DB instance doesn't permit it. When the DB instance isn't publicly accessible, it is an internal DB instance with a DNS name that resolves to a private IP address. For more information, see <a>CreateDBInstance</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecondaryAvailabilityZone</i> If present, specifies the name of the secondary Availability Zone for a DB instance with multi-AZ support.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NcharCharacterSetName</i> The name of the NCHAR character set for the Oracle DB instance. This character set specifies the Unicode encoding for data stored in table columns of type NCHAR, NCLOB, or NVARCHAR2. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CharacterSetName</i> If present, specifies the name of the character set that this instance is associated with.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OptionGroupMemberships</i> Provides the list of option group memberships for this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Iops</i> Specifies the Provisioned IOPS (I/O operations per second) value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LicenseModel</i> License model information for this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicaMode</i> The open mode of an Oracle read replica. The default is <code>open-read-only</code>. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/oracle-read-replicas.html">Working with Oracle Read Replicas for Amazon RDS</a> in the <i>Amazon RDS User Guide</i>. <note> This attribute is only supported in RDS for Oracle. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadReplicaDBClusterIdentifiers</i> Contains one or more identifiers of Aurora DB clusters to which the RDS DB instance is replicated as a read replica. For example, when you create an Aurora read replica of an RDS MySQL DB instance, the Aurora MySQL DB cluster for the Aurora read replica is shown. This output does not contain information about cross region Aurora read replicas. <note> Currently, each RDS DB instance can have only one Aurora read replica. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadReplicaDBInstanceIdentifiers</i> Contains one or more identifiers of the read replicas associated with this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadReplicaSourceDBInstanceIdentifier</i> Contains the identifier of the source DB instance if this DB instance is a read replica.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoMinorVersionUpgrade</i> A value that indicates that minor version patches are applied automatically.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> Indicates the database engine version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiAZ</i> Specifies if the DB instance is a Multi-AZ deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestRestorableTime</i> Specifies the latest time to which a database can be restored with point-in-time restore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingModifiedValues</i> A value that specifies that changes to the DB instance are pending. This element is only included when changes are pending. Specific changes are identified by subelements.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingModifiedValues</b>: A value that specifies that changes to the DB instance are pending. This element is only included when changes are pending. Specific changes are identified by subelements.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i> Specifies the weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroup</i> Specifies information on the subnet group associated with the DB instance, including the name, description, and subnets in the subnet group.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DBSubnetGroup</b>: Specifies information on the subnet group associated with the DB instance, including the name, description, and subnets in the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZone</i> Specifies the name of the Availability Zone the DB instance is located in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBParameterGroups</i> Provides the list of DB parameter groups applied to this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcSecurityGroups</i> Provides a list of VPC security group elements that the DB instance belongs to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSecurityGroups</i>  A list of DB security group elements containing <code>DBSecurityGroup.Name</code> and <code>DBSecurityGroup.Status</code> subelements. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupRetentionPeriod</i> Specifies the number of days for which automatic DB snapshots are retained.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredBackupWindow</i>  Specifies the daily time range during which automated backups are created if automated backups are enabled, as determined by the <code>BackupRetentionPeriod</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceCreateTime</i> Provides the date and time the DB instance was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllocatedStorage</i> Specifies the allocated storage size specified in gibibytes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i> Specifies the connection endpoint.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Endpoint</b>: Specifies the connection endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBName</i> The meaning of this parameter differs according to the database engine you use.  <b>MySQL, MariaDB, SQL Server, PostgreSQL</b>  Contains the name of the initial database of this instance that was provided at create time, if one was specified when the DB instance was created. This same name is returned for the life of the DB instance. Type: String  <b>Oracle</b>  Contains the Oracle System ID (SID) of the created DB instance. Not shown when the returned parameters do not apply to an Oracle DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUsername</i> Contains the master username for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceStatus</i> Specifies the current state of this database. For information about DB instance statuses, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/accessing-monitoring.html#Overview.DBInstance.Status">Viewing DB instance status</a> in the <i>Amazon RDS User Guide.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> The name of the database engine to be used for this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceClass</i> Contains the name of the compute and memory capacity class of the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceIdentifier</i> Contains a user-supplied database identifier. This identifier is the unique key that identifies a DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HostedZoneId</i> Specifies the ID that Amazon Route 53 assigns when you create a hosted zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Specifies the port that the database engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Address</i> Specifies the DNS address of the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupArn</i> The Amazon Resource Name (ARN) for the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Subnets</i>  Contains a list of <code>Subnet</code> elements. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetGroupStatus</i> Provides the status of the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> Provides the VpcId of the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupDescription</i> Provides the description of the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupName</i> The name of the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupName</i> The DB subnet group for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CACertificateIdentifier</i> The identifier of the CA certificate for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageType</i> The storage type of the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceIdentifier</i> The database identifier for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Iops</i> The Provisioned IOPS value for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LicenseModel</i> The license model for the DB instance. Valid values: <code>license-included</code> | <code>bring-your-own-license</code> | <code>general-public-license</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> The database engine version.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiAZ</i> A value that indicates that the Single-AZ DB instance will change to a Multi-AZ deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupRetentionPeriod</i> The number of days for which automated backups are retained.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> The port for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUserPassword</i> The master credentials for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AllocatedStorage</i> The allocated storage size for the DB instance specified in gibibytes .<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceClass</i> The name of the compute and memory capacity class for the DB instance.<br/>A list of the log types whose configuration is still pending. In other words, these log types are in the process of being activated or deactivated.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingCloudwatchLogsExports</b>: A list of the log types whose configuration is still pending. In other words, these log types are in the process of being activated or deactivated.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HostedZoneId</i> Specifies the ID that Amazon Route 53 assigns when you create a hosted zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Specifies the port that the database engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Address</i> Specifies the DNS address of the DB instance.<br/>        """
        pass

    def start_db_instance_automated_backups_replication(self, SourceDBInstanceArn: str, BackupRetentionPeriod: int=None, KmsKeyId: str=None, PreSignedUrl: str=None, SourceRegion: str=None) -> StartDBInstanceAutomatedBackupsReplicationResult:
        r"""Enables replication of automated backups to a different Amazon Web Services Region. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ReplicateBackups.html"> Replicating Automated Backups to Another Amazon Web Services Region</a> in the <i>Amazon RDS User Guide.</i> 

        :param self:
        :param SourceRegion:  The ID of the region that contains the source for the db instance.<br/>PreSignedUrl:  A URL that contains a Signature Version 4 signed request for the StartDBInstanceAutomatedBackupsReplication action to be called in the Amazon Web Services Region of the source DB instance. The presigned URL must be a valid request for the StartDBInstanceAutomatedBackupsReplication API action that can be executed in the Amazon Web Services Region that contains the source DB instance.<br/>KmsKeyId:  The Amazon Web Services KMS key identifier for encryption of the replicated automated backups. The KMS key ID is the Amazon Resource Name (ARN) for the KMS encryption key in the destination Amazon Web Services Region, for example, <code>arn:aws:kms:us-east-1:123456789012:key/AKIAIOSFODNN7EXAMPLE</code>.<br/>BackupRetentionPeriod:  The retention period for the replicated automated backups.<br/>SourceDBInstanceArn:  The Amazon Resource Name (ARN) of the source DB instance for the replicated automated backups, for example, <code>arn:aws:rds:us-west-2:123456789012:db:mydatabase</code>.<br/>
        :return: DBInstanceAutomatedBackup:  An automated backup of a DB instance. It consists of system backups, transaction logs, and the database instance properties that existed at the time you deleted the source instance.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceAutomatedBackupsReplications</i> The list of replications to different Amazon Web Services Regions associated with the automated backup.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceAutomatedBackupsArn</i> The Amazon Resource Name (ARN) for the replicated automated backups.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupRetentionPeriod</i> The retention period for the automated backups.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IAMDatabaseAuthenticationEnabled</i> True if mapping of Amazon Web Services Identity and Access Management (IAM) accounts to database accounts is enabled, and otherwise false.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Timezone</i> The time zone of the automated backup. In most cases, the <code>Timezone</code> element is empty. <code>Timezone</code> content appears only for Microsoft SQL Server DB instances that were created with a time zone specified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The Amazon Web Services KMS key ID for an automated backup. The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the Amazon Web Services KMS customer master key (CMK).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageType</i> Specifies the storage type associated with the automated backup.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Encrypted</i> Specifies whether the automated backup is encrypted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TdeCredentialArn</i> The ARN from the key store with which the automated backup is associated for TDE encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OptionGroupName</i> The option group the automated backup is associated with. If omitted, the default option group for the engine specified is used.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Iops</i> The IOPS (I/O operations per second) value for the automated backup. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LicenseModel</i> License model information for the automated backup.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> The version of the database engine for the automated backup.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> The name of the database engine for this automated backup.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUsername</i> The license model of an automated backup.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceCreateTime</i> Provides the date and time that the DB instance was created. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> Provides the VPC ID associated with the DB instance<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZone</i> The Availability Zone that the automated backup was created in. For information on Amazon Web Services Regions and Availability Zones, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RegionsAndAvailabilityZones.html">Regions and Availability Zones</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> The port number that the automated backup used for connections. Default: Inherits from the source DB instance Valid Values: <code>1150-65535</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Provides a list of status information for an automated backup: <ul> <li>  <code>active</code> - automated backups for current instances </li> <li>  <code>retained</code> - automated backups for deleted instances </li> <li>  <code>creating</code> - automated backups that are waiting for the first automated snapshot to be available. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllocatedStorage</i> Specifies the allocated storage size in gibibytes (GiB).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RestoreWindow</i> Earliest and latest time an instance can be restored to.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RestoreWindow</b>: Earliest and latest time an instance can be restored to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceIdentifier</i> The customer id of the instance that is/was associated with the automated backup. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Region</i> The Amazon Web Services Region associated with the automated backup.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DbiResourceId</i> The identifier for the source DB instance, which can't be changed and which is unique to an Amazon Web Services Region.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceArn</i> The Amazon Resource Name (ARN) for the automated backups.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestTime</i> The latest time you can restore an instance to.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EarliestTime</i> The earliest time you can restore an instance to.<br/>        """
        pass

    def start_export_task(self, KmsKeyId: str, IamRoleArn: str, S3BucketName: str, SourceArn: str, ExportTaskIdentifier: str, S3Prefix: str=None, ExportOnly: List[String]=None) -> ExportTask:
        r"""Starts an export of a snapshot to Amazon S3. The provided IAM role must have access to the S3 bucket. 

        :param self:
        :param ExportOnly:  The data to be exported from the snapshot. If this parameter is not provided, all the snapshot data is exported. Valid values are the following: <ul> <li>  <code>database</code> - Export all the data from a specified database. </li> <li>  <code>database.table</code> <i>table-name</i> - Export a table of the snapshot. This format is valid only for RDS for MySQL, RDS for MariaDB, and Aurora MySQL. </li> <li>  <code>database.schema</code> <i>schema-name</i> - Export a database schema of the snapshot. This format is valid only for RDS for PostgreSQL and Aurora PostgreSQL. </li> <li>  <code>database.schema.table</code> <i>table-name</i> - Export a table of the database schema. This format is valid only for RDS for PostgreSQL and Aurora PostgreSQL. </li> </ul><br/>S3Prefix:  The Amazon S3 bucket prefix to use as the file name and path of the exported snapshot.<br/>KmsKeyId:  The ID of the Amazon Web Services KMS customer master key (CMK) to use to encrypt the snapshot exported to Amazon S3. The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the Amazon Web Services KMS customer master key (CMK). The caller of this operation must be authorized to execute the following operations. These can be set in the Amazon Web Services KMS key policy:  <ul> <li> GrantOperation.Encrypt </li> <li> GrantOperation.Decrypt </li> <li> GrantOperation.GenerateDataKey </li> <li> GrantOperation.GenerateDataKeyWithoutPlaintext </li> <li> GrantOperation.ReEncryptFrom </li> <li> GrantOperation.ReEncryptTo </li> <li> GrantOperation.CreateGrant </li> <li> GrantOperation.DescribeKey </li> <li> GrantOperation.RetireGrant </li> </ul><br/>IamRoleArn:  The name of the IAM role to use for writing to the Amazon S3 bucket when exporting a snapshot. <br/>S3BucketName:  The name of the Amazon S3 bucket to export the snapshot to.<br/>SourceArn:  The Amazon Resource Name (ARN) of the snapshot to export to Amazon S3.<br/>ExportTaskIdentifier:  A unique identifier for the snapshot export task. This ID isn't an identifier for the Amazon S3 bucket where the snapshot is to be exported to. <br/>
        :return: WarningMessage:  A warning about the snapshot export task.<br/>FailureCause:  The reason the export failed, if it failed.<br/>TotalExtractedDataInGB:  The total amount of data exported, in gigabytes.<br/>PercentProgress:  The progress of the snapshot export task as a percentage.<br/>Status:  The progress status of the export task.<br/>KmsKeyId:  The key identifier of the Amazon Web Services KMS customer master key (CMK) that is used to encrypt the snapshot when it's exported to Amazon S3. The Amazon Web Services KMS CMK identifier is its key ARN, key ID, alias ARN, or alias name. The IAM role used for the snapshot export must have encryption and decryption permissions to use this Amazon Web Services KMS CMK. <br/>IamRoleArn:  The name of the IAM role that is used to write to Amazon S3 when exporting a snapshot. <br/>S3Prefix:  The Amazon S3 bucket prefix that is the file name and path of the exported snapshot.<br/>S3Bucket:  The Amazon S3 bucket that the snapshot is exported to.<br/>TaskEndTime:  The time that the snapshot export task completed.<br/>TaskStartTime:  The time that the snapshot export task started.<br/>SnapshotTime:  The time that the snapshot was created.<br/>ExportOnly:  The data exported from the snapshot. Valid values are the following: <ul> <li>  <code>database</code> - Export all the data from a specified database. </li> <li>  <code>database.table</code> <i>table-name</i> - Export a table of the snapshot. This format is valid only for RDS for MySQL, RDS for MariaDB, and Aurora MySQL. </li> <li>  <code>database.schema</code> <i>schema-name</i> - Export a database schema of the snapshot. This format is valid only for RDS for PostgreSQL and Aurora PostgreSQL. </li> <li>  <code>database.schema.table</code> <i>table-name</i> - Export a table of the database schema. This format is valid only for RDS for PostgreSQL and Aurora PostgreSQL. </li> </ul><br/>SourceArn:  The Amazon Resource Name (ARN) of the snapshot exported to Amazon S3.<br/>ExportTaskIdentifier:  A unique identifier for the snapshot export task. This ID isn't an identifier for the Amazon S3 bucket where the snapshot is exported to. <br/>        """
        pass

    def stop_activity_stream(self, ResourceArn: str, ApplyImmediately: BooleanOptional=None) -> StopActivityStreamResponse:
        r"""Stops a database activity stream that was started using the Amazon Web Services console, the <code>start-activity-stream</code> CLI command, or the <code>StartActivityStream</code> action. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/DBActivityStreams.html">Database Activity Streams</a> in the <i>Amazon Aurora User Guide</i>.

        :param self:
        :param ApplyImmediately:  Specifies whether or not the database activity stream is to stop as soon as possible, regardless of the maintenance window for the database.<br/>ResourceArn:  The Amazon Resource Name (ARN) of the DB cluster for the database activity stream. For example, <code>arn:aws:rds:us-east-1:12345667890:cluster:das-cluster</code>. <br/>
        :return: Status:  The status of the database activity stream.<br/>KinesisStreamName:  The name of the Amazon Kinesis data stream used for the database activity stream.<br/>KmsKeyId:  The Amazon Web Services KMS key identifier used for encrypting messages in the database activity stream. The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the Amazon Web Services KMS customer master key (CMK).<br/>        """
        pass

    def stop_db_cluster(self, DBClusterIdentifier: str) -> StopDBClusterResult:
        r""" Stops an Amazon Aurora DB cluster. When you stop a DB cluster, Aurora retains the DB cluster's metadata, including its endpoints and DB parameter groups. Aurora also retains the transaction logs so you can do a point-in-time restore if necessary.  For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-cluster-stop-start.html"> Stopping and Starting an Aurora Cluster</a> in the <i>Amazon Aurora User Guide.</i>  <note> This action only applies to Aurora DB clusters. </note>

        :param self:
        :param DBClusterIdentifier:  The DB cluster identifier of the Amazon Aurora DB cluster to be stopped. This parameter is stored as a lowercase string.<br/>
        :return: DBCluster:  Contains the details of an Amazon Aurora DB cluster.  This data type is used as a response element in the <code>DescribeDBClusters</code>, <code>StopDBCluster</code>, and <code>StartDBCluster</code> actions. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingModifiedValues</i> A value that specifies that changes to the DB cluster are pending. This element is only included when changes are pending. Specific changes are identified by subelements.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingModifiedValues</b>: A value that specifies that changes to the DB cluster are pending. This element is only included when changes are pending. Specific changes are identified by subelements.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalWriteForwardingRequested</i> Specifies whether you have requested to enable write forwarding for a secondary cluster in an Aurora global database. Because write forwarding takes time to enable, check the value of <code>GlobalWriteForwardingStatus</code> to confirm that the request has completed before using the write forwarding feature for this cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalWriteForwardingStatus</i> Specifies whether a secondary cluster in an Aurora global database has write forwarding enabled, not enabled, or is in the process of enabling it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TagList</i> A list of tags. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html">Tagging Amazon RDS Resources</a> in the <i>Amazon RDS User Guide.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainMemberships</i> The Active Directory Domain membership records associated with the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CrossAccountClone</i> Specifies whether the DB cluster is a clone of a DB cluster owned by a different Amazon Web Services account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CopyTagsToSnapshot</i> Specifies whether tags are copied from the DB cluster to snapshots of the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamKinesisStreamName</i> The name of the Amazon Kinesis data stream used for the database activity stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamKmsKeyId</i> The Amazon Web Services KMS key identifier used for encrypting messages in the database activity stream. The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the Amazon Web Services KMS customer master key (CMK).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamStatus</i> The status of the database activity stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamMode</i> The mode of the database activity stream. Database events such as a change or access generate an activity stream event. The database session can handle these events either synchronously or asynchronously. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HttpEndpointEnabled</i> A value that indicates whether the HTTP endpoint for an Aurora Serverless DB cluster is enabled. When enabled, the HTTP endpoint provides a connectionless web service API for running SQL queries on the Aurora Serverless DB cluster. You can also query your database from inside the RDS console with the query editor. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/data-api.html">Using the Data API for Aurora Serverless</a> in the <i>Amazon Aurora User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeletionProtection</i> Indicates if the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ScalingConfigurationInfo</i> Shows the scaling configuration for an Aurora DB cluster in <code>serverless</code> DB engine mode. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html">Using Amazon Aurora Serverless</a> in the <i>Amazon Aurora User Guide</i>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ScalingConfigurationInfo</b>: Shows the scaling configuration for an Aurora DB cluster in <code>serverless</code> DB engine mode. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html">Using Amazon Aurora Serverless</a> in the <i>Amazon Aurora User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineMode</i> The DB engine mode of the DB cluster, either <code>provisioned</code>, <code>serverless</code>, <code>parallelquery</code>, <code>global</code>, or <code>multimaster</code>. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBCluster.html"> CreateDBCluster</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Capacity</i> The current capacity of an Aurora Serverless DB cluster. The capacity is 0 (zero) when the cluster is paused. For more information about Aurora Serverless, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html">Using Amazon Aurora Serverless</a> in the <i>Amazon Aurora User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnabledCloudwatchLogsExports</i> A list of log types that this DB cluster is configured to export to CloudWatch Logs. Log types vary by DB engine. For information about the log types for each DB engine, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_LogAccess.html">Amazon RDS Database Log Files</a> in the <i>Amazon Aurora User Guide.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BacktrackConsumedChangeRecords</i> The number of change records stored for Backtrack.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BacktrackWindow</i> The target backtrack window, in seconds. If this value is set to 0, backtracking is disabled for the DB cluster. Otherwise, backtracking is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EarliestBacktrackTime</i> The earliest time to which a DB cluster can be backtracked.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterCreateTime</i> Specifies the time when the DB cluster was created, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloneGroupId</i> Identifies the clone group to which the DB cluster is associated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IAMDatabaseAuthenticationEnabled</i> A value that indicates whether the mapping of Amazon Web Services Identity and Access Management (IAM) accounts to database accounts is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociatedRoles</i> Provides a list of the Amazon Web Services Identity and Access Management (IAM) roles that are associated with the DB cluster. IAM roles that are associated with a DB cluster grant permission for the DB cluster to access other Amazon Web Services on your behalf.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterArn</i> The Amazon Resource Name (ARN) for the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DbClusterResourceId</i> The Amazon Web Services Region-unique, immutable identifier for the DB cluster. This identifier is found in Amazon Web Services CloudTrail log entries whenever the Amazon Web Services KMS CMK for the DB cluster is accessed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> If <code>StorageEncrypted</code> is enabled, the Amazon Web Services KMS key identifier for the encrypted DB cluster. The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the Amazon Web Services KMS customer master key (CMK).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageEncrypted</i> Specifies whether the DB cluster is encrypted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HostedZoneId</i> Specifies the ID that Amazon Route 53 assigns when you create a hosted zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcSecurityGroups</i> Provides a list of VPC security groups that the DB cluster belongs to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterMembers</i> Provides the list of instances that make up the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadReplicaIdentifiers</i> Contains one or more identifiers of the read replicas associated with this DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicationSourceIdentifier</i> Contains the identifier of the source DB cluster if this DB cluster is a read replica.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i> Specifies the weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredBackupWindow</i> Specifies the daily time range during which automated backups are created if automated backups are enabled, as determined by the <code>BackupRetentionPeriod</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterOptionGroupMemberships</i> Provides the list of option group memberships for this DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUsername</i> Contains the master username for the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Specifies the port that the database engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestRestorableTime</i> Specifies the latest time to which a database can be restored with point-in-time restore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> Indicates the database engine version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> The name of the database engine to be used for this DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiAZ</i> Specifies whether the DB cluster has instances in multiple Availability Zones.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomEndpoints</i> Identifies all custom endpoints associated with the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReaderEndpoint</i> The reader endpoint for the DB cluster. The reader endpoint for a DB cluster load-balances connections across the Aurora Replicas that are available in a DB cluster. As clients request new connections to the reader endpoint, Aurora distributes the connection requests among the Aurora Replicas in the DB cluster. This functionality can help balance your read workload across multiple Aurora Replicas in your DB cluster.  If a failover occurs, and the Aurora Replica that you are connected to is promoted to be the primary instance, your connection is dropped. To continue sending your read workload to other Aurora Replicas in the cluster, you can then reconnect to the reader endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i> Specifies the connection endpoint for the primary instance of the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EarliestRestorableTime</i> The earliest time to which a database can be restored with point-in-time restore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PercentProgress</i> Specifies the progress of the operation as a percentage.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Specifies the current state of this DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroup</i> Specifies information on the subnet group associated with the DB cluster, including the name, description, and subnets in the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterParameterGroup</i> Specifies the name of the DB cluster parameter group for the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterIdentifier</i> Contains a user-supplied DB cluster identifier. This identifier is the unique key that identifies a DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> Contains the name of the initial database of this DB cluster that was provided at create time, if one was specified when the DB cluster was created. This same name is returned for the life of the DB cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CharacterSetName</i> If present, specifies the name of the character set that this cluster is associated with.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupRetentionPeriod</i> Specifies the number of days for which automatic DB snapshots are retained.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZones</i> Provides the list of Availability Zones (AZs) where instances in the DB cluster can be created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllocatedStorage</i> For all database engines except Amazon Aurora, <code>AllocatedStorage</code> specifies the allocated storage size in gibibytes (GiB). For Aurora, <code>AllocatedStorage</code> always returns 1, because Aurora DB cluster storage size isn't fixed, but instead automatically adjusts as needed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TimeoutAction</i> The timeout action of a call to <code>ModifyCurrentDBClusterCapacity</code>, either <code>ForceApplyCapacityChange</code> or <code>RollbackCapacityChange</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecondsUntilAutoPause</i> The remaining amount of time, in seconds, before the Aurora DB cluster in <code>serverless</code> mode is paused. A DB cluster can be paused only when it's idle (it has no connections).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoPause</i> A value that indicates whether automatic pause is allowed for the Aurora DB cluster in <code>serverless</code> DB engine mode. When the value is set to false for an Aurora Serverless DB cluster, the DB cluster automatically resumes.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxCapacity</i> The maximum capacity for an Aurora DB cluster in <code>serverless</code> DB engine mode.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MinCapacity</i> The maximum capacity for the Aurora DB cluster in <code>serverless</code> DB engine mode.<br/>A list of the log types whose configuration is still pending. In other words, these log types are in the process of being activated or deactivated.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingCloudwatchLogsExports</b>: A list of the log types whose configuration is still pending. In other words, these log types are in the process of being activated or deactivated.        """
        pass

    def stop_db_instance(self, DBInstanceIdentifier: str, DBSnapshotIdentifier: str=None) -> StopDBInstanceResult:
        r""" Stops an Amazon RDS DB instance. When you stop a DB instance, Amazon RDS retains the DB instance's metadata, including its endpoint, DB parameter group, and option group membership. Amazon RDS also retains the transaction logs so you can do a point-in-time restore if necessary.  For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_StopInstance.html"> Stopping an Amazon RDS DB Instance Temporarily</a> in the <i>Amazon RDS User Guide.</i>  <note>  This command doesn't apply to Aurora MySQL and Aurora PostgreSQL. For Aurora clusters, use <code>StopDBCluster</code> instead.  </note>

        :param self:
        :param DBSnapshotIdentifier:   The user-supplied instance identifier of the DB Snapshot created immediately before the DB instance is stopped. <br/>DBInstanceIdentifier:   The user-supplied instance identifier. <br/>
        :return: DBInstance:  Contains the details of an Amazon RDS DB instance.  This data type is used as a response element in the <code>DescribeDBInstances</code> action. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamEngineNativeAuditFieldsIncluded</i> Indicates whether engine-native audit fields are included in the database activity stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamMode</i> The mode of the database activity stream. Database events such as a change or access generate an activity stream event. RDS for Oracle always handles these events asynchronously.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamKinesisStreamName</i> The name of the Amazon Kinesis data stream used for the database activity stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamKmsKeyId</i> The Amazon Web Services KMS key identifier used for encrypting messages in the database activity stream. The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the Amazon Web Services KMS customer master key (CMK).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActivityStreamStatus</i> The status of the database activity stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AwsBackupRecoveryPointArn</i> The Amazon Resource Name (ARN) of the recovery point in Amazon Web Services Backup.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomerOwnedIpEnabled</i> Specifies whether a customer-owned IP address (CoIP) is enabled for an RDS on Outposts DB instance. A <i>CoIP </i>provides local or external connectivity to resources in your Outpost subnets through your on-premises network. For some use cases, a CoIP can provide lower latency for connections to the DB instance from outside of its virtual private cloud (VPC) on your local network. For more information about RDS on Outposts, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-on-outposts.html">Working with Amazon RDS on Amazon Web Services Outposts</a> in the <i>Amazon RDS User Guide</i>. For more information about CoIPs, see <a href="https://docs.aws.amazon.com/outposts/latest/userguide/outposts-networking-components.html#ip-addressing">Customer-owned IP addresses</a> in the <i>Amazon Web Services Outposts User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceAutomatedBackupsReplications</i> The list of replicated automated backups associated with the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TagList</i> A list of tags. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html">Tagging Amazon RDS Resources</a> in the <i>Amazon RDS User Guide.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxAllocatedStorage</i> The upper limit to which Amazon RDS can automatically scale the storage of the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ListenerEndpoint</i> Specifies the listener connection endpoint for SQL Server Always On.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ListenerEndpoint</b>: Specifies the listener connection endpoint for SQL Server Always On.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociatedRoles</i>  The Amazon Web Services Identity and Access Management (IAM) roles associated with the DB instance. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeletionProtection</i> Indicates if the DB instance has deletion protection enabled. The database can't be deleted when deletion protection is enabled. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_DeleteInstance.html"> Deleting a DB Instance</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProcessorFeatures</i> The number of CPU cores and the number of threads per core for the DB instance class of the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnabledCloudwatchLogsExports</i> A list of log types that this DB instance is configured to export to CloudWatch Logs. Log types vary by DB engine. For information about the log types for each DB engine, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.html">Amazon RDS Database Log Files</a> in the <i>Amazon RDS User Guide.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PerformanceInsightsRetentionPeriod</i> The amount of time, in days, to retain Performance Insights data. Valid values are 7 or 731 (2 years). <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PerformanceInsightsKMSKeyId</i> The Amazon Web Services KMS key identifier for encryption of Performance Insights data. The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the Amazon Web Services KMS customer master key (CMK).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PerformanceInsightsEnabled</i> True if Performance Insights is enabled for the DB instance, and otherwise false.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IAMDatabaseAuthenticationEnabled</i> True if mapping of Amazon Web Services Identity and Access Management (IAM) accounts to database accounts is enabled, and otherwise false. IAM database authentication can be enabled for the following database engines <ul> <li> For MySQL 5.6, minor version 5.6.34 or higher </li> <li> For MySQL 5.7, minor version 5.7.16 or higher </li> <li> Aurora 5.6 or higher. To enable IAM database authentication for Aurora, see DBCluster Type. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Timezone</i> The time zone of the DB instance. In most cases, the <code>Timezone</code> element is empty. <code>Timezone</code> content appears only for Microsoft SQL Server DB instances that were created with a time zone specified. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceArn</i> The Amazon Resource Name (ARN) for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PromotionTier</i> A value that specifies the order in which an Aurora Replica is promoted to the primary instance after a failure of the existing primary instance. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Managing.Backups.html#Aurora.Managing.FaultTolerance"> Fault Tolerance for an Aurora DB Cluster</a> in the <i>Amazon Aurora User Guide</i>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MonitoringRoleArn</i> The ARN for the IAM role that permits RDS to send Enhanced Monitoring metrics to Amazon CloudWatch Logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnhancedMonitoringResourceArn</i> The Amazon Resource Name (ARN) of the Amazon CloudWatch Logs log stream that receives the Enhanced Monitoring metrics data for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MonitoringInterval</i> The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CopyTagsToSnapshot</i> Specifies whether tags are copied from the DB instance to snapshots of the DB instance.  <b>Amazon Aurora</b>  Not applicable. Copying tags to snapshots is managed by the DB cluster. Setting this value for an Aurora DB instance has no effect on the DB cluster setting. For more information, see <code>DBCluster</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainMemberships</i> The Active Directory Domain membership records associated with the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CACertificateIdentifier</i> The identifier of the CA certificate for this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DbiResourceId</i> The Amazon Web Services Region-unique, immutable identifier for the DB instance. This identifier is found in Amazon Web Services CloudTrail log entries whenever the Amazon Web Services KMS customer master key (CMK) for the DB instance is accessed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i>  If <code>StorageEncrypted</code> is true, the Amazon Web Services KMS key identifier for the encrypted DB instance.  The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the Amazon Web Services KMS customer master key (CMK).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageEncrypted</i> Specifies whether the DB instance is encrypted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBClusterIdentifier</i> If the DB instance is a member of a DB cluster, contains the name of the DB cluster that the DB instance is a member of.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DbInstancePort</i> Specifies the port that the DB instance listens on. If the DB instance is part of a DB cluster, this can be a different port than the DB cluster port.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TdeCredentialArn</i> The ARN from the key store with which the instance is associated for TDE encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageType</i> Specifies the storage type associated with DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusInfos</i> The status of a read replica. If the instance isn't a read replica, this is blank.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PubliclyAccessible</i> Specifies the accessibility options for the DB instance. When the DB instance is publicly accessible, its DNS endpoint resolves to the private IP address from within the DB instance's VPC, and to the public IP address from outside of the DB instance's VPC. Access to the DB instance is ultimately controlled by the security group it uses, and that public access is not permitted if the security group assigned to the DB instance doesn't permit it. When the DB instance isn't publicly accessible, it is an internal DB instance with a DNS name that resolves to a private IP address. For more information, see <a>CreateDBInstance</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecondaryAvailabilityZone</i> If present, specifies the name of the secondary Availability Zone for a DB instance with multi-AZ support.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NcharCharacterSetName</i> The name of the NCHAR character set for the Oracle DB instance. This character set specifies the Unicode encoding for data stored in table columns of type NCHAR, NCLOB, or NVARCHAR2. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CharacterSetName</i> If present, specifies the name of the character set that this instance is associated with.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OptionGroupMemberships</i> Provides the list of option group memberships for this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Iops</i> Specifies the Provisioned IOPS (I/O operations per second) value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LicenseModel</i> License model information for this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReplicaMode</i> The open mode of an Oracle read replica. The default is <code>open-read-only</code>. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/oracle-read-replicas.html">Working with Oracle Read Replicas for Amazon RDS</a> in the <i>Amazon RDS User Guide</i>. <note> This attribute is only supported in RDS for Oracle. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadReplicaDBClusterIdentifiers</i> Contains one or more identifiers of Aurora DB clusters to which the RDS DB instance is replicated as a read replica. For example, when you create an Aurora read replica of an RDS MySQL DB instance, the Aurora MySQL DB cluster for the Aurora read replica is shown. This output does not contain information about cross region Aurora read replicas. <note> Currently, each RDS DB instance can have only one Aurora read replica. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadReplicaDBInstanceIdentifiers</i> Contains one or more identifiers of the read replicas associated with this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadReplicaSourceDBInstanceIdentifier</i> Contains the identifier of the source DB instance if this DB instance is a read replica.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoMinorVersionUpgrade</i> A value that indicates that minor version patches are applied automatically.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> Indicates the database engine version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiAZ</i> Specifies if the DB instance is a Multi-AZ deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestRestorableTime</i> Specifies the latest time to which a database can be restored with point-in-time restore.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingModifiedValues</i> A value that specifies that changes to the DB instance are pending. This element is only included when changes are pending. Specific changes are identified by subelements.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingModifiedValues</b>: A value that specifies that changes to the DB instance are pending. This element is only included when changes are pending. Specific changes are identified by subelements.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i> Specifies the weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroup</i> Specifies information on the subnet group associated with the DB instance, including the name, description, and subnets in the subnet group.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DBSubnetGroup</b>: Specifies information on the subnet group associated with the DB instance, including the name, description, and subnets in the subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZone</i> Specifies the name of the Availability Zone the DB instance is located in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBParameterGroups</i> Provides the list of DB parameter groups applied to this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcSecurityGroups</i> Provides a list of VPC security group elements that the DB instance belongs to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSecurityGroups</i>  A list of DB security group elements containing <code>DBSecurityGroup.Name</code> and <code>DBSecurityGroup.Status</code> subelements. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupRetentionPeriod</i> Specifies the number of days for which automatic DB snapshots are retained.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredBackupWindow</i>  Specifies the daily time range during which automated backups are created if automated backups are enabled, as determined by the <code>BackupRetentionPeriod</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceCreateTime</i> Provides the date and time the DB instance was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllocatedStorage</i> Specifies the allocated storage size specified in gibibytes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i> Specifies the connection endpoint.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Endpoint</b>: Specifies the connection endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBName</i> The meaning of this parameter differs according to the database engine you use.  <b>MySQL, MariaDB, SQL Server, PostgreSQL</b>  Contains the name of the initial database of this instance that was provided at create time, if one was specified when the DB instance was created. This same name is returned for the life of the DB instance. Type: String  <b>Oracle</b>  Contains the Oracle System ID (SID) of the created DB instance. Not shown when the returned parameters do not apply to an Oracle DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUsername</i> Contains the master username for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceStatus</i> Specifies the current state of this database. For information about DB instance statuses, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/accessing-monitoring.html#Overview.DBInstance.Status">Viewing DB instance status</a> in the <i>Amazon RDS User Guide.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> The name of the database engine to be used for this DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceClass</i> Contains the name of the compute and memory capacity class of the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceIdentifier</i> Contains a user-supplied database identifier. This identifier is the unique key that identifies a DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HostedZoneId</i> Specifies the ID that Amazon Route 53 assigns when you create a hosted zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Specifies the port that the database engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Address</i> Specifies the DNS address of the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupArn</i> The Amazon Resource Name (ARN) for the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Subnets</i>  Contains a list of <code>Subnet</code> elements. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetGroupStatus</i> Provides the status of the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> Provides the VpcId of the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupDescription</i> Provides the description of the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupName</i> The name of the DB subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBSubnetGroupName</i> The DB subnet group for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CACertificateIdentifier</i> The identifier of the CA certificate for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageType</i> The storage type of the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceIdentifier</i> The database identifier for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Iops</i> The Provisioned IOPS value for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LicenseModel</i> The license model for the DB instance. Valid values: <code>license-included</code> | <code>bring-your-own-license</code> | <code>general-public-license</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> The database engine version.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiAZ</i> A value that indicates that the Single-AZ DB instance will change to a Multi-AZ deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupRetentionPeriod</i> The number of days for which automated backups are retained.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> The port for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUserPassword</i> The master credentials for the DB instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AllocatedStorage</i> The allocated storage size for the DB instance specified in gibibytes .<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceClass</i> The name of the compute and memory capacity class for the DB instance.<br/>A list of the log types whose configuration is still pending. In other words, these log types are in the process of being activated or deactivated.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingCloudwatchLogsExports</b>: A list of the log types whose configuration is still pending. In other words, these log types are in the process of being activated or deactivated.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HostedZoneId</i> Specifies the ID that Amazon Route 53 assigns when you create a hosted zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> Specifies the port that the database engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Address</i> Specifies the DNS address of the DB instance.<br/>        """
        pass

    def stop_db_instance_automated_backups_replication(self, SourceDBInstanceArn: str) -> StopDBInstanceAutomatedBackupsReplicationResult:
        r"""Stops automated backup replication for a DB instance. For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ReplicateBackups.html"> Replicating Automated Backups to Another Amazon Web Services Region</a> in the <i>Amazon RDS User Guide.</i> 

        :param self:
        :param SourceDBInstanceArn:  The Amazon Resource Name (ARN) of the source DB instance for which to stop replicating automated backups, for example, <code>arn:aws:rds:us-west-2:123456789012:db:mydatabase</code>.<br/>
        :return: DBInstanceAutomatedBackup:  An automated backup of a DB instance. It consists of system backups, transaction logs, and the database instance properties that existed at the time you deleted the source instance.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceAutomatedBackupsReplications</i> The list of replications to different Amazon Web Services Regions associated with the automated backup.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceAutomatedBackupsArn</i> The Amazon Resource Name (ARN) for the replicated automated backups.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupRetentionPeriod</i> The retention period for the automated backups.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IAMDatabaseAuthenticationEnabled</i> True if mapping of Amazon Web Services Identity and Access Management (IAM) accounts to database accounts is enabled, and otherwise false.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Timezone</i> The time zone of the automated backup. In most cases, the <code>Timezone</code> element is empty. <code>Timezone</code> content appears only for Microsoft SQL Server DB instances that were created with a time zone specified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The Amazon Web Services KMS key ID for an automated backup. The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the Amazon Web Services KMS customer master key (CMK).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageType</i> Specifies the storage type associated with the automated backup.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Encrypted</i> Specifies whether the automated backup is encrypted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TdeCredentialArn</i> The ARN from the key store with which the automated backup is associated for TDE encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OptionGroupName</i> The option group the automated backup is associated with. If omitted, the default option group for the engine specified is used.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Iops</i> The IOPS (I/O operations per second) value for the automated backup. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LicenseModel</i> License model information for the automated backup.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineVersion</i> The version of the database engine for the automated backup.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Engine</i> The name of the database engine for this automated backup.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUsername</i> The license model of an automated backup.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceCreateTime</i> Provides the date and time that the DB instance was created. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> Provides the VPC ID associated with the DB instance<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZone</i> The Availability Zone that the automated backup was created in. For information on Amazon Web Services Regions and Availability Zones, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RegionsAndAvailabilityZones.html">Regions and Availability Zones</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> The port number that the automated backup used for connections. Default: Inherits from the source DB instance Valid Values: <code>1150-65535</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Provides a list of status information for an automated backup: <ul> <li>  <code>active</code> - automated backups for current instances </li> <li>  <code>retained</code> - automated backups for deleted instances </li> <li>  <code>creating</code> - automated backups that are waiting for the first automated snapshot to be available. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllocatedStorage</i> Specifies the allocated storage size in gibibytes (GiB).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RestoreWindow</i> Earliest and latest time an instance can be restored to.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RestoreWindow</b>: Earliest and latest time an instance can be restored to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceIdentifier</i> The customer id of the instance that is/was associated with the automated backup. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Region</i> The Amazon Web Services Region associated with the automated backup.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DbiResourceId</i> The identifier for the source DB instance, which can't be changed and which is unique to an Amazon Web Services Region.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBInstanceArn</i> The Amazon Resource Name (ARN) for the automated backups.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestTime</i> The latest time you can restore an instance to.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EarliestTime</i> The earliest time you can restore an instance to.<br/>        """
        pass





class RDSDataService(BaseClient):
    r"""<fullname>Amazon RDS Data Service</fullname> Amazon RDS provides an HTTP endpoint to run SQL statements on an Amazon Aurora Serverless DB cluster. To run these statements, you work with the Data Service API. For more information about the Data Service API, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/data-api.html">Using the Data API for Aurora Serverless</a> in the <i>Amazon Aurora User Guide</i>."""




    class BatchExecuteStatementRequest(Mapping):
        pass
    
    class BatchExecuteStatementResponse(Mapping):
        pass
    
    class SqlParametersList(object):
        pass
    
    class BeginTransactionRequest(Mapping):
        pass
    
    class BeginTransactionResponse(Mapping):
        pass
    
    class CommitTransactionRequest(Mapping):
        pass
    
    class CommitTransactionResponse(Mapping):
        pass
    
    class ExecuteSqlRequest(Mapping):
        pass
    
    class ExecuteSqlResponse(Mapping):
        pass
    
    class ExecuteStatementRequest(Mapping):
        pass
    
    class ExecuteStatementResponse(Mapping):
        pass
    
    class Boolean(object):
        pass
    
    class SqlParameter(Mapping):
        pass
    
    class ResultSetOptions(Mapping):
        pass
    
    class RollbackTransactionRequest(Mapping):
        pass
    
    class RollbackTransactionResponse(Mapping):
        pass
    
    def batch_execute_statement(self, sql: str, secretArn: str, resourceArn: str, database: str=None, parameterSets: List[SqlParametersList]=None, schema: str=None, transactionId: str=None) -> BatchExecuteStatementResponse:
        r"""Runs a batch SQL statement over an array of data. You can run bulk update and insert operations for multiple records using a DML statement with different parameter sets. Bulk operations can provide a significant performance improvement over individual insert and update operations. <important> If a call isn't part of a transaction because it doesn't include the <code>transactionID</code> parameter, changes that result from the call are committed automatically. </important>

        :param self:
        :param transactionId:  The identifier of a transaction that was started by using the <code>BeginTransaction</code> operation. Specify the transaction ID of the transaction that you want to include the SQL statement in. If the SQL statement is not part of a transaction, don't set this parameter.<br/>sql:  The SQL statement to run.<br/>secretArn:  The name or ARN of the secret that enables access to the DB cluster.<br/>schema:  The name of the database schema.<br/>resourceArn:  The Amazon Resource Name (ARN) of the Aurora Serverless DB cluster.<br/>parameterSets:  The parameter set for the batch operation. The SQL statement is executed as many times as the number of parameter sets provided. To execute a SQL statement with no parameters, use one of the following options: <ul> <li> Specify one or more empty parameter sets. </li> <li> Use the <code>ExecuteStatement</code> operation instead of the <code>BatchExecuteStatement</code> operation. </li> </ul> <note> Array parameters are not supported. </note><br/>database:  The name of the database.<br/>
        :return: updateResults:  The execution results of each batch entry.<br/>        """
        pass

    def begin_transaction(self, secretArn: str, resourceArn: str, database: str=None, schema: str=None) -> BeginTransactionResponse:
        r"""Starts a SQL transaction. <pre><code> &lt;important&gt; &lt;p&gt;A transaction can run for a maximum of 24 hours. A transaction is terminated and rolled back automatically after 24 hours.&lt;/p&gt; &lt;p&gt;A transaction times out if no calls use its transaction ID in three minutes. If a transaction times out before it's committed, it's rolled back automatically.&lt;/p&gt; &lt;p&gt;DDL statements inside a transaction cause an implicit commit. We recommend that you run each DDL statement in a separate &lt;code&gt;ExecuteStatement&lt;/code&gt; call with &lt;code&gt;continueAfterTimeout&lt;/code&gt; enabled.&lt;/p&gt; &lt;/important&gt; </code></pre>

        :param self:
        :param secretArn:  The name or ARN of the secret that enables access to the DB cluster.<br/>schema:  The name of the database schema.<br/>resourceArn:  The Amazon Resource Name (ARN) of the Aurora Serverless DB cluster.<br/>database:  The name of the database.<br/>
        :return: transactionId:  The transaction ID of the transaction started by the call.<br/>        """
        pass

    def commit_transaction(self, transactionId: str, secretArn: str, resourceArn: str) -> CommitTransactionResponse:
        r"""Ends a SQL transaction started with the <code>BeginTransaction</code> operation and commits the changes.

        :param self:
        :param transactionId:  The identifier of the transaction to end and commit.<br/>secretArn:  The name or ARN of the secret that enables access to the DB cluster.<br/>resourceArn:  The Amazon Resource Name (ARN) of the Aurora Serverless DB cluster.<br/>
        :return: transactionStatus:  The status of the commit operation.<br/>        """
        pass

    def execute_sql(self, sqlStatements: str, dbClusterOrInstanceArn: str, awsSecretStoreArn: str, database: str=None, schema: str=None) -> ExecuteSqlResponse:
        r"""Runs one or more SQL statements. <important> This operation is deprecated. Use the <code>BatchExecuteStatement</code> or <code>ExecuteStatement</code> operation. </important>

        :param self:
        :param sqlStatements:  One or more SQL statements to run on the DB cluster. You can separate SQL statements from each other with a semicolon (;). Any valid SQL statement is permitted, including data definition, data manipulation, and commit statements. <br/>schema:  The name of the database schema.<br/>dbClusterOrInstanceArn:  The ARN of the Aurora Serverless DB cluster.<br/>database:  The name of the database.<br/>awsSecretStoreArn:  The Amazon Resource Name (ARN) of the secret that enables access to the DB cluster.<br/>
        :return: sqlStatementResults:  The results of the SQL statement or statements.<br/>        """
        pass

    def execute_statement(self, sql: str, secretArn: str, resourceArn: str, continueAfterTimeout: Boolean=None, database: str=None, includeResultMetadata: Boolean=None, parameters: List[SqlParameter]=None, resultSetOptions: ResultSetOptions=None, schema: str=None, transactionId: str=None) -> ExecuteStatementResponse:
        r"""Runs a SQL statement against a database. <important> If a call isn't part of a transaction because it doesn't include the <code>transactionID</code> parameter, changes that result from the call are committed automatically. </important> The response size limit is 1 MB. If the call returns more than 1 MB of response data, the call is terminated.

        :param self:
        :param transactionId:  The identifier of a transaction that was started by using the <code>BeginTransaction</code> operation. Specify the transaction ID of the transaction that you want to include the SQL statement in. If the SQL statement is not part of a transaction, don't set this parameter.<br/>sql:  The SQL statement to run.<br/>secretArn:  The name or ARN of the secret that enables access to the DB cluster.<br/>schema:  The name of the database schema. <note> Currently, the <code>schema</code> parameter isn't supported. </note><br/>resultSetOptions:  Options that control how the result set is returned.:<br/>resourceArn:  The Amazon Resource Name (ARN) of the Aurora Serverless DB cluster.<br/>parameters:  The parameters for the SQL statement. <note> Array parameters are not supported. </note><br/>includeResultMetadata:  A value that indicates whether to include metadata in the results.<br/>database:  The name of the database.<br/>continueAfterTimeout:  A value that indicates whether to continue running the statement after the call times out. By default, the statement stops running when the call times out. <important> For DDL statements, we recommend continuing to run the statement after the call times out. When a DDL statement terminates before it is finished running, it can result in errors and possibly corrupted data structures. </important><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>decimalReturnType</i> A value that indicates how a field of <code>DECIMAL</code> type is represented in the response. The value of <code>STRING</code>, the default, specifies that it is converted to a String value. The value of <code>DOUBLE_OR_LONG</code> specifies that it is converted to a Long value if its scale is 0, or to a Double value otherwise. <important> Conversion to Double or Long can result in roundoff errors due to precision loss. We recommend converting to String, especially when working with currency values. </important><br/>
        :return: records:  The records returned by the SQL statement.<br/>numberOfRecordsUpdated:  The number of records updated by the request.<br/>generatedFields:  Values for fields generated during the request. <pre><code> &lt;note&gt; &lt;p&gt;The &lt;code&gt;generatedFields&lt;/code&gt; data isn't supported by Aurora PostgreSQL. To get the values of generated fields, use the &lt;code&gt;RETURNING&lt;/code&gt; clause. For more information, see &lt;a href=&quot;https://www.postgresql.org/docs/10/dml-returning.html&quot;&gt;Returning Data From Modified Rows&lt;/a&gt; in the PostgreSQL documentation.&lt;/p&gt; &lt;/note&gt; </code></pre><br/>columnMetadata:  Metadata for the columns included in the results.<br/>        """
        pass

    def rollback_transaction(self, transactionId: str, secretArn: str, resourceArn: str) -> RollbackTransactionResponse:
        r"""Performs a rollback of a transaction. Rolling back a transaction cancels its changes.

        :param self:
        :param transactionId:  The identifier of the transaction to roll back.<br/>secretArn:  The name or ARN of the secret that enables access to the DB cluster.<br/>resourceArn:  The Amazon Resource Name (ARN) of the Aurora Serverless DB cluster.<br/>
        :return: transactionStatus:  The status of the rollback operation.<br/>        """
        pass





class Redshift(BaseClient):
    r"""<fullname>Amazon Redshift</fullname>  <b>Overview</b>  This is an interface reference for Amazon Redshift. It contains documentation for one of the programming or command line interfaces you can use to manage Amazon Redshift clusters. Note that Amazon Redshift is asynchronous, which means that some interfaces may require techniques, such as polling or asynchronous callback handlers, to determine when a command has been applied. In this reference, the parameter descriptions indicate whether a change is applied immediately, on the next instance reboot, or during the next maintenance window. For a summary of the Amazon Redshift cluster management interfaces, go to <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/using-aws-sdk.html">Using the Amazon Redshift Management Interfaces</a>. Amazon Redshift manages all the work of setting up, operating, and scaling a data warehouse: provisioning capacity, monitoring and backing up the cluster, and applying patches and upgrades to the Amazon Redshift engine. You can focus on using your data to acquire new insights for your business and customers. If you are a first-time user of Amazon Redshift, we recommend that you begin by reading the <a href="https://docs.aws.amazon.com/redshift/latest/gsg/getting-started.html">Amazon Redshift Getting Started Guide</a>. If you are a database developer, the <a href="https://docs.aws.amazon.com/redshift/latest/dg/welcome.html">Amazon Redshift Database Developer Guide</a> explains how to design, build, query, and maintain the databases that make up your data warehouse. """

    class ClusterAvailableWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_clusters` for valid parameters"""
            pass
    class ClusterDeletedWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_clusters` for valid parameters"""
            pass
    class ClusterRestoredWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_clusters` for valid parameters"""
            pass
    class SnapshotAvailableWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_cluster_snapshots` for valid parameters"""
            pass


    class DescribeClusterParameterGroupsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_cluster_parameter_groups` for valid parameters"""
            pass
    class DescribeClusterParametersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_cluster_parameters` for valid parameters"""
            pass
    class DescribeClusterSecurityGroupsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_cluster_security_groups` for valid parameters"""
            pass
    class DescribeClusterSnapshotsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_cluster_snapshots` for valid parameters"""
            pass
    class DescribeClusterSubnetGroupsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_cluster_subnet_groups` for valid parameters"""
            pass
    class DescribeClusterVersionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_cluster_versions` for valid parameters"""
            pass
    class DescribeClustersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_clusters` for valid parameters"""
            pass
    class DescribeDefaultClusterParametersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_default_cluster_parameters` for valid parameters"""
            pass
    class DescribeEventSubscriptionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_event_subscriptions` for valid parameters"""
            pass
    class DescribeEventsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_events` for valid parameters"""
            pass
    class DescribeHsmClientCertificatesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_hsm_client_certificates` for valid parameters"""
            pass
    class DescribeHsmConfigurationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_hsm_configurations` for valid parameters"""
            pass
    class DescribeOrderableClusterOptionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_orderable_cluster_options` for valid parameters"""
            pass
    class DescribeReservedNodeOfferingsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_reserved_node_offerings` for valid parameters"""
            pass
    class DescribeReservedNodesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_reserved_nodes` for valid parameters"""
            pass
    class DescribeClusterDbRevisionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_cluster_db_revisions` for valid parameters"""
            pass
    class DescribeClusterTracksPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_cluster_tracks` for valid parameters"""
            pass
    class DescribeSnapshotCopyGrantsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_snapshot_copy_grants` for valid parameters"""
            pass
    class DescribeSnapshotSchedulesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_snapshot_schedules` for valid parameters"""
            pass
    class DescribeTableRestoreStatusPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_table_restore_status` for valid parameters"""
            pass
    class DescribeTagsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_tags` for valid parameters"""
            pass
    class GetReservedNodeExchangeOfferingsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_reserved_node_exchange_offerings` for valid parameters"""
            pass
    class DescribeNodeConfigurationOptionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_node_configuration_options` for valid parameters"""
            pass
    class DescribeScheduledActionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_scheduled_actions` for valid parameters"""
            pass
    class DescribeUsageLimitsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_usage_limits` for valid parameters"""
            pass
    class DescribeEndpointAccessPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_endpoint_access` for valid parameters"""
            pass
    class DescribeEndpointAuthorizationPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_endpoint_authorization` for valid parameters"""
            pass


    class AcceptReservedNodeExchangeInputMessage(Mapping):
        pass
    
    class AcceptReservedNodeExchangeOutputMessage(Mapping):
        pass
    
    class PartnerIntegrationInputMessage(Mapping):
        pass
    
    class PartnerIntegrationOutputMessage(Mapping):
        pass
    
    class AuthorizeClusterSecurityGroupIngressMessage(Mapping):
        pass
    
    class AuthorizeClusterSecurityGroupIngressResult(Mapping):
        pass
    
    class AuthorizeEndpointAccessMessage(Mapping):
        pass
    
    class EndpointAuthorization(Mapping):
        pass
    
    class String(object):
        pass
    
    class AuthorizeSnapshotAccessMessage(Mapping):
        pass
    
    class AuthorizeSnapshotAccessResult(Mapping):
        pass
    
    class BatchDeleteClusterSnapshotsRequest(Mapping):
        pass
    
    class BatchDeleteClusterSnapshotsResult(Mapping):
        pass
    
    class DeleteClusterSnapshotMessage(Mapping):
        pass
    
    class BatchModifyClusterSnapshotsMessage(Mapping):
        pass
    
    class BatchModifyClusterSnapshotsOutputMessage(Mapping):
        pass
    
    class Boolean(object):
        pass
    
    class CancelResizeMessage(Mapping):
        pass
    
    class ResizeProgressMessage(Mapping):
        pass
    
    class CopyClusterSnapshotMessage(Mapping):
        pass
    
    class CopyClusterSnapshotResult(Mapping):
        pass
    
    class CreateClusterMessage(Mapping):
        pass
    
    class CreateClusterResult(Mapping):
        pass
    
    class BooleanOptional(object):
        pass
    
    class Tag(Mapping):
        pass
    
    class CreateClusterParameterGroupMessage(Mapping):
        pass
    
    class CreateClusterParameterGroupResult(Mapping):
        pass
    
    class CreateClusterSecurityGroupMessage(Mapping):
        pass
    
    class CreateClusterSecurityGroupResult(Mapping):
        pass
    
    class CreateClusterSnapshotMessage(Mapping):
        pass
    
    class CreateClusterSnapshotResult(Mapping):
        pass
    
    class CreateClusterSubnetGroupMessage(Mapping):
        pass
    
    class CreateClusterSubnetGroupResult(Mapping):
        pass
    
    class CreateEndpointAccessMessage(Mapping):
        pass
    
    class EndpointAccess(Mapping):
        pass
    
    class CreateEventSubscriptionMessage(Mapping):
        pass
    
    class CreateEventSubscriptionResult(Mapping):
        pass
    
    class CreateHsmClientCertificateMessage(Mapping):
        pass
    
    class CreateHsmClientCertificateResult(Mapping):
        pass
    
    class CreateHsmConfigurationMessage(Mapping):
        pass
    
    class CreateHsmConfigurationResult(Mapping):
        pass
    
    class CreateScheduledActionMessage(Mapping):
        pass
    
    class ScheduledAction(Mapping):
        pass
    
    class ScheduledActionType(Mapping):
        pass
    
    class TStamp(object):
        pass
    
    class CreateSnapshotCopyGrantMessage(Mapping):
        pass
    
    class CreateSnapshotCopyGrantResult(Mapping):
        pass
    
    class CreateSnapshotScheduleMessage(Mapping):
        pass
    
    class SnapshotSchedule(Mapping):
        pass
    
    class CreateTagsMessage(Mapping):
        pass
    
    class CreateUsageLimitMessage(Mapping):
        pass
    
    class UsageLimit(Mapping):
        pass
    
    class Long(object):
        pass
    
    class DeleteClusterMessage(Mapping):
        pass
    
    class DeleteClusterResult(Mapping):
        pass
    
    class DeleteClusterParameterGroupMessage(Mapping):
        pass
    
    class DeleteClusterSecurityGroupMessage(Mapping):
        pass
    
    class DeleteClusterSnapshotResult(Mapping):
        pass
    
    class DeleteClusterSubnetGroupMessage(Mapping):
        pass
    
    class DeleteEndpointAccessMessage(Mapping):
        pass
    
    class DeleteEventSubscriptionMessage(Mapping):
        pass
    
    class DeleteHsmClientCertificateMessage(Mapping):
        pass
    
    class DeleteHsmConfigurationMessage(Mapping):
        pass
    
    class DeleteScheduledActionMessage(Mapping):
        pass
    
    class DeleteSnapshotCopyGrantMessage(Mapping):
        pass
    
    class DeleteSnapshotScheduleMessage(Mapping):
        pass
    
    class DeleteTagsMessage(Mapping):
        pass
    
    class DeleteUsageLimitMessage(Mapping):
        pass
    
    class DescribeAccountAttributesMessage(Mapping):
        pass
    
    class AccountAttributeList(Mapping):
        pass
    
    class DescribeClusterDbRevisionsMessage(Mapping):
        pass
    
    class ClusterDbRevisionsMessage(Mapping):
        pass
    
    class DescribeClusterParameterGroupsMessage(Mapping):
        pass
    
    class ClusterParameterGroupsMessage(Mapping):
        pass
    
    class DescribeClusterParametersMessage(Mapping):
        pass
    
    class ClusterParameterGroupDetails(Mapping):
        pass
    
    class DescribeClusterSecurityGroupsMessage(Mapping):
        pass
    
    class ClusterSecurityGroupMessage(Mapping):
        pass
    
    class DescribeClusterSnapshotsMessage(Mapping):
        pass
    
    class SnapshotMessage(Mapping):
        pass
    
    class SnapshotSortingEntity(Mapping):
        pass
    
    class DescribeClusterSubnetGroupsMessage(Mapping):
        pass
    
    class ClusterSubnetGroupMessage(Mapping):
        pass
    
    class DescribeClusterTracksMessage(Mapping):
        pass
    
    class TrackListMessage(Mapping):
        pass
    
    class DescribeClusterVersionsMessage(Mapping):
        pass
    
    class ClusterVersionsMessage(Mapping):
        pass
    
    class DescribeClustersMessage(Mapping):
        pass
    
    class ClustersMessage(Mapping):
        pass
    
    class DescribeDefaultClusterParametersMessage(Mapping):
        pass
    
    class DescribeDefaultClusterParametersResult(Mapping):
        pass
    
    class DescribeEndpointAccessMessage(Mapping):
        pass
    
    class EndpointAccessList(Mapping):
        pass
    
    class DescribeEndpointAuthorizationMessage(Mapping):
        pass
    
    class EndpointAuthorizationList(Mapping):
        pass
    
    class DescribeEventCategoriesMessage(Mapping):
        pass
    
    class EventCategoriesMessage(Mapping):
        pass
    
    class DescribeEventSubscriptionsMessage(Mapping):
        pass
    
    class EventSubscriptionsMessage(Mapping):
        pass
    
    class DescribeEventsMessage(Mapping):
        pass
    
    class EventsMessage(Mapping):
        pass
    
    class DescribeHsmClientCertificatesMessage(Mapping):
        pass
    
    class HsmClientCertificateMessage(Mapping):
        pass
    
    class DescribeHsmConfigurationsMessage(Mapping):
        pass
    
    class HsmConfigurationMessage(Mapping):
        pass
    
    class DescribeLoggingStatusMessage(Mapping):
        pass
    
    class LoggingStatus(Mapping):
        pass
    
    class DescribeNodeConfigurationOptionsMessage(Mapping):
        pass
    
    class NodeConfigurationOptionsMessage(Mapping):
        pass
    
    class NodeConfigurationOptionsFilter(Mapping):
        pass
    
    class DescribeOrderableClusterOptionsMessage(Mapping):
        pass
    
    class OrderableClusterOptionsMessage(Mapping):
        pass
    
    class DescribePartnersInputMessage(Mapping):
        pass
    
    class DescribePartnersOutputMessage(Mapping):
        pass
    
    class DescribeReservedNodeOfferingsMessage(Mapping):
        pass
    
    class ReservedNodeOfferingsMessage(Mapping):
        pass
    
    class DescribeReservedNodesMessage(Mapping):
        pass
    
    class ReservedNodesMessage(Mapping):
        pass
    
    class DescribeResizeMessage(Mapping):
        pass
    
    class DescribeScheduledActionsMessage(Mapping):
        pass
    
    class ScheduledActionsMessage(Mapping):
        pass
    
    class ScheduledActionFilter(Mapping):
        pass
    
    class DescribeSnapshotCopyGrantsMessage(Mapping):
        pass
    
    class SnapshotCopyGrantMessage(Mapping):
        pass
    
    class DescribeSnapshotSchedulesMessage(Mapping):
        pass
    
    class DescribeSnapshotSchedulesOutputMessage(Mapping):
        pass
    
    class CustomerStorageMessage(Mapping):
        pass
    
    class DescribeTableRestoreStatusMessage(Mapping):
        pass
    
    class TableRestoreStatusMessage(Mapping):
        pass
    
    class DescribeTagsMessage(Mapping):
        pass
    
    class TaggedResourceListMessage(Mapping):
        pass
    
    class DescribeUsageLimitsMessage(Mapping):
        pass
    
    class UsageLimitList(Mapping):
        pass
    
    class DisableLoggingMessage(Mapping):
        pass
    
    class DisableSnapshotCopyMessage(Mapping):
        pass
    
    class DisableSnapshotCopyResult(Mapping):
        pass
    
    class EnableLoggingMessage(Mapping):
        pass
    
    class EnableSnapshotCopyMessage(Mapping):
        pass
    
    class EnableSnapshotCopyResult(Mapping):
        pass
    
    class GetClusterCredentialsMessage(Mapping):
        pass
    
    class ClusterCredentials(Mapping):
        pass
    
    class GetReservedNodeExchangeOfferingsInputMessage(Mapping):
        pass
    
    class GetReservedNodeExchangeOfferingsOutputMessage(Mapping):
        pass
    
    class ModifyAquaInputMessage(Mapping):
        pass
    
    class ModifyAquaOutputMessage(Mapping):
        pass
    
    class ModifyClusterMessage(Mapping):
        pass
    
    class ModifyClusterResult(Mapping):
        pass
    
    class ModifyClusterDbRevisionMessage(Mapping):
        pass
    
    class ModifyClusterDbRevisionResult(Mapping):
        pass
    
    class ModifyClusterIamRolesMessage(Mapping):
        pass
    
    class ModifyClusterIamRolesResult(Mapping):
        pass
    
    class ModifyClusterMaintenanceMessage(Mapping):
        pass
    
    class ModifyClusterMaintenanceResult(Mapping):
        pass
    
    class ModifyClusterParameterGroupMessage(Mapping):
        pass
    
    class ClusterParameterGroupNameMessage(Mapping):
        pass
    
    class Parameter(Mapping):
        pass
    
    class ModifyClusterSnapshotMessage(Mapping):
        pass
    
    class ModifyClusterSnapshotResult(Mapping):
        pass
    
    class ModifyClusterSnapshotScheduleMessage(Mapping):
        pass
    
    class ModifyClusterSubnetGroupMessage(Mapping):
        pass
    
    class ModifyClusterSubnetGroupResult(Mapping):
        pass
    
    class ModifyEndpointAccessMessage(Mapping):
        pass
    
    class ModifyEventSubscriptionMessage(Mapping):
        pass
    
    class ModifyEventSubscriptionResult(Mapping):
        pass
    
    class ModifyScheduledActionMessage(Mapping):
        pass
    
    class ModifySnapshotCopyRetentionPeriodMessage(Mapping):
        pass
    
    class ModifySnapshotCopyRetentionPeriodResult(Mapping):
        pass
    
    class ModifySnapshotScheduleMessage(Mapping):
        pass
    
    class ModifyUsageLimitMessage(Mapping):
        pass
    
    class LongOptional(object):
        pass
    
    class PauseClusterMessage(Mapping):
        pass
    
    class PauseClusterResult(Mapping):
        pass
    
    class PurchaseReservedNodeOfferingMessage(Mapping):
        pass
    
    class PurchaseReservedNodeOfferingResult(Mapping):
        pass
    
    class RebootClusterMessage(Mapping):
        pass
    
    class RebootClusterResult(Mapping):
        pass
    
    class ResetClusterParameterGroupMessage(Mapping):
        pass
    
    class ResizeClusterMessage(Mapping):
        pass
    
    class ResizeClusterResult(Mapping):
        pass
    
    class RestoreFromClusterSnapshotMessage(Mapping):
        pass
    
    class RestoreFromClusterSnapshotResult(Mapping):
        pass
    
    class RestoreTableFromClusterSnapshotMessage(Mapping):
        pass
    
    class RestoreTableFromClusterSnapshotResult(Mapping):
        pass
    
    class ResumeClusterMessage(Mapping):
        pass
    
    class ResumeClusterResult(Mapping):
        pass
    
    class RevokeClusterSecurityGroupIngressMessage(Mapping):
        pass
    
    class RevokeClusterSecurityGroupIngressResult(Mapping):
        pass
    
    class RevokeEndpointAccessMessage(Mapping):
        pass
    
    class RevokeSnapshotAccessMessage(Mapping):
        pass
    
    class RevokeSnapshotAccessResult(Mapping):
        pass
    
    class RotateEncryptionKeyMessage(Mapping):
        pass
    
    class RotateEncryptionKeyResult(Mapping):
        pass
    
    class UpdatePartnerStatusInputMessage(Mapping):
        pass
    
    def accept_reserved_node_exchange(self, TargetReservedNodeOfferingId: str, ReservedNodeId: str) -> AcceptReservedNodeExchangeOutputMessage:
        r"""Exchanges a DC1 Reserved Node for a DC2 Reserved Node with no changes to the configuration (term, payment type, or number of nodes) and no additional costs. 

        :param self:
        :param TargetReservedNodeOfferingId:  The unique identifier of the DC2 Reserved Node offering to be used for the exchange. You can obtain the value for the parameter by calling <a>GetReservedNodeExchangeOfferings</a> <br/>ReservedNodeId:  A string representing the node identifier of the DC1 Reserved Node to be exchanged.<br/>
        :return: ExchangedReservedNode:  <p/>:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReservedNodeOfferingType</i> <p/><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecurringCharges</i> The recurring charges for the reserved node.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OfferingType</i> The anticipated utilization of the reserved node, as defined in the reserved node offering.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the reserved compute node. Possible Values: <ul> <li> pending-payment-This reserved node has recently been purchased, and the sale has been approved, but payment has not yet been confirmed. </li> <li> active-This reserved node is owned by the caller and is available for use. </li> <li> payment-failed-Payment failed for the purchase attempt. </li> <li> retired-The reserved node is no longer available.  </li> <li> exchanging-The owner is exchanging the reserved node for another reserved node. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NodeCount</i> The number of reserved compute nodes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CurrencyCode</i> The currency code for the reserved cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UsagePrice</i> The hourly rate Amazon Redshift charges you for this reserved node.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FixedPrice</i> The fixed cost Amazon Redshift charges you for this reserved node.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Duration</i> The duration of the node reservation in seconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StartTime</i> The time the reservation started. You purchase a reserved node offering for a duration. This is the start time of that duration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NodeType</i> The node type of the reserved node.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReservedNodeOfferingId</i> The identifier for the reserved node offering.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReservedNodeId</i> The unique identifier for the reservation.<br/>        """
        pass

    def add_partner(self, PartnerName: str, DatabaseName: str, ClusterIdentifier: str, AccountId: str) -> PartnerIntegrationOutputMessage:
        r"""Adds a partner integration to a cluster. This operation authorizes a partner to push status updates for the specified database. To complete the integration, you also set up the integration on the partner website.

        :param self:
        :param PartnerName:  The name of the partner that is authorized to send data.<br/>DatabaseName:  The name of the database that receives data from the partner.<br/>ClusterIdentifier:  The cluster identifier of the cluster that receives data from the partner.<br/>AccountId:  The AWS account ID that owns the cluster.<br/>
        :return: PartnerName:  The name of the partner that is authorized to send data.<br/>DatabaseName:  The name of the database that receives data from the partner.<br/>        """
        pass

    def authorize_cluster_security_group_ingress(self, ClusterSecurityGroupName: str, CIDRIP: str=None, EC2SecurityGroupName: str=None, EC2SecurityGroupOwnerId: str=None) -> AuthorizeClusterSecurityGroupIngressResult:
        r"""Adds an inbound (ingress) rule to an Amazon Redshift security group. Depending on whether the application accessing your cluster is running on the Internet or an Amazon EC2 instance, you can authorize inbound access to either a Classless Interdomain Routing (CIDR)/Internet Protocol (IP) range or to an Amazon EC2 security group. You can add as many as 20 ingress rules to an Amazon Redshift security group. If you authorize access to an Amazon EC2 security group, specify <i>EC2SecurityGroupName</i> and <i>EC2SecurityGroupOwnerId</i>. The Amazon EC2 security group and Amazon Redshift cluster must be in the same AWS Region.  If you authorize access to a CIDR/IP address range, specify <i>CIDRIP</i>. For an overview of CIDR blocks, see the Wikipedia article on <a href="http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing">Classless Inter-Domain Routing</a>.  You must also associate the security group with a cluster so that clients running on these IP addresses or the EC2 instance are authorized to connect to the cluster. For information about managing security groups, go to <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-security-groups.html">Working with Security Groups</a> in the <i>Amazon Redshift Cluster Management Guide</i>.

        :param self:
        :param EC2SecurityGroupOwnerId:  The AWS account number of the owner of the security group specified by the <i>EC2SecurityGroupName</i> parameter. The AWS Access Key ID is not an acceptable value.  Example: <code>111122223333</code> <br/>EC2SecurityGroupName:  The EC2 security group to be added the Amazon Redshift security group.<br/>CIDRIP:  The IP range to be added the Amazon Redshift security group.<br/>ClusterSecurityGroupName:  The name of the security group to which the ingress rule is added.<br/>
        :return: ClusterSecurityGroup:  Describes a security group.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The list of tags for the cluster security group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IPRanges</i> A list of IP ranges (CIDR blocks) that are permitted to access clusters associated with this cluster security group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EC2SecurityGroups</i> A list of EC2 security groups that are permitted to access clusters associated with this cluster security group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A description of the security group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterSecurityGroupName</i> The name of the cluster security group to which the operation was applied.<br/>        """
        pass

    def authorize_endpoint_access(self, Account: str, ClusterIdentifier: str=None, VpcIds: List[String]=None) -> EndpointAuthorization:
        r"""Grants access to a cluster.

        :param self:
        :param VpcIds:  The virtual private cloud (VPC) identifiers to grant access to.<br/>Account:  The AWS account ID to grant access to.<br/>ClusterIdentifier:  The cluster identifier of the cluster to grant access to.<br/>
        :return: EndpointCount:  The number of Redshift-managed VPC endpoints created for the authorization.<br/>AllowedVPCs:  The VPCs allowed access to the cluster.<br/>AllowedAllVPCs:  Indicates whether all VPCs in the grantee account are allowed access to the cluster.<br/>Status:  The status of the authorization action.<br/>ClusterStatus:  The status of the cluster.<br/>AuthorizeTime:  The time (UTC) when the authorization was created.<br/>ClusterIdentifier:  The cluster identifier.<br/>Grantee:  The AWS account ID of the grantee of the cluster.<br/>Grantor:  The AWS account ID of the cluster owner.<br/>        """
        pass

    def authorize_snapshot_access(self, AccountWithRestoreAccess: str, SnapshotIdentifier: str, SnapshotClusterIdentifier: str=None) -> AuthorizeSnapshotAccessResult:
        r"""Authorizes the specified AWS customer account to restore the specified snapshot.  For more information about working with snapshots, go to <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-snapshots.html">Amazon Redshift Snapshots</a> in the <i>Amazon Redshift Cluster Management Guide</i>.

        :param self:
        :param AccountWithRestoreAccess:  The identifier of the AWS customer account authorized to restore the specified snapshot. To share a snapshot with AWS support, specify amazon-redshift-support.<br/>SnapshotClusterIdentifier:  The identifier of the cluster the snapshot was created from. This parameter is required if your IAM user has a policy containing a snapshot resource element that specifies anything other than * for the cluster name.<br/>SnapshotIdentifier:  The identifier of the snapshot the account is authorized to restore.<br/>
        :return: Snapshot:  Describes a snapshot.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotRetentionStartTime</i> A timestamp representing the start of the retention period for the snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ManualSnapshotRemainingDays</i> The number of days until a manual snapshot will pass its retention period.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ManualSnapshotRetentionPeriod</i> The number of days that a manual snapshot is retained. If the value is -1, the manual snapshot is retained indefinitely.  The value must be either -1 or an integer between 1 and 3,653.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaintenanceTrackName</i> The name of the maintenance track for the snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnhancedVpcRouting</i> An option that specifies whether to create the cluster with enhanced VPC routing enabled. To create a cluster that uses enhanced VPC routing, the cluster must be in a VPC. For more information, see <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html">Enhanced VPC Routing</a> in the Amazon Redshift Cluster Management Guide. If this option is <code>true</code>, enhanced VPC routing is enabled.  Default: false<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RestorableNodeTypes</i> The list of node types that this cluster snapshot is able to restore into.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The list of tags for the cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceRegion</i> The source region from which the snapshot was copied.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ElapsedTimeInSeconds</i> The amount of time an in-progress snapshot backup has been running, or the amount of time it took a completed backup to finish.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EstimatedSecondsToCompletion</i> The estimate of the time remaining before the snapshot backup will complete. Returns <code>0</code> for a completed backup. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CurrentBackupRateInMegaBytesPerSecond</i> The number of megabytes per second being transferred to the snapshot backup. Returns <code>0</code> for a completed backup. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupProgressInMegaBytes</i> The number of megabytes that have been transferred to the snapshot backup.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActualIncrementalBackupSizeInMegaBytes</i> The size of the incremental backup.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalBackupSizeInMegaBytes</i> The size of the complete set of backup data that would be used to restore the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerAccount</i> For manual snapshots, the AWS customer account used to create or copy the snapshot. For automatic snapshots, the owner of the cluster. The owner can perform all snapshot actions, such as sharing a manual snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccountsWithRestoreAccess</i> A list of the AWS customer accounts authorized to restore the snapshot. Returns <code>null</code> if no accounts are authorized. Visible only to the snapshot owner. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EncryptedWithHSM</i> A boolean that indicates whether the snapshot data is encrypted using the HSM keys of the source cluster. <code>true</code> indicates that the data is encrypted using HSM keys.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The AWS Key Management Service (KMS) key ID of the encryption key that was used to encrypt data in the cluster from which the snapshot was taken.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Encrypted</i> If <code>true</code>, the data in the snapshot is encrypted at rest.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The VPC identifier of the cluster if the snapshot is from a cluster in a VPC. Otherwise, this field is not in the output.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBName</i> The name of the database that was created when the cluster was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberOfNodes</i> The number of nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NodeType</i> The node type of the nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotType</i> The snapshot type. Snapshots created using <a>CreateClusterSnapshot</a> and <a>CopyClusterSnapshot</a> are of type "manual". <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineFullVersion</i> The cluster version of the cluster used to create the snapshot. For example, 1.0.15503. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterVersion</i> The version ID of the Amazon Redshift engine that is running on the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUsername</i> The master user name for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterCreateTime</i> The time (UTC) when the cluster was originally created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZone</i> The Availability Zone in which the cluster was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> The port that the cluster is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The snapshot status. The value of the status depends on the API operation used:  <ul> <li>  <a>CreateClusterSnapshot</a> and <a>CopyClusterSnapshot</a> returns status as "creating".  </li> <li>  <a>DescribeClusterSnapshots</a> returns status as "creating", "available", "final snapshot", or "failed". </li> <li>  <a>DeleteClusterSnapshot</a> returns status as "deleted". </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotCreateTime</i> The time (in UTC format) when Amazon Redshift began the snapshot. A snapshot contains a copy of the cluster data as of this exact time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterIdentifier</i> The identifier of the cluster for which the snapshot was taken.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotIdentifier</i> The snapshot identifier that is provided in the request.<br/>        """
        pass

    def batch_delete_cluster_snapshots(self, Identifiers: List[DeleteClusterSnapshotMessage]) -> BatchDeleteClusterSnapshotsResult:
        r"""Deletes a set of cluster snapshots.

        :param self:
        :param Identifiers:  A list of identifiers for the snapshots that you want to delete.<br/>
        :return: Errors:  A list of any errors returned.<br/>Resources:  A list of the snapshot identifiers that were deleted. <br/>        """
        pass

    def batch_modify_cluster_snapshots(self, SnapshotIdentifierList: List[String], ManualSnapshotRetentionPeriod: int=None, Force: Boolean=None) -> BatchModifyClusterSnapshotsOutputMessage:
        r"""Modifies the settings for a set of cluster snapshots.

        :param self:
        :param Force:  A boolean value indicating whether to override an exception if the retention period has passed. <br/>ManualSnapshotRetentionPeriod:  The number of days that a manual snapshot is retained. If you specify the value -1, the manual snapshot is retained indefinitely. The number must be either -1 or an integer between 1 and 3,653. If you decrease the manual snapshot retention period from its current value, existing manual snapshots that fall outside of the new retention period will return an error. If you want to suppress the errors and delete the snapshots, use the force option. <br/>SnapshotIdentifierList:  A list of snapshot identifiers you want to modify.<br/>
        :return: Errors:  A list of any errors returned.<br/>Resources:  A list of the snapshots that were modified.<br/>        """
        pass

    def cancel_resize(self, ClusterIdentifier: str) -> ResizeProgressMessage:
        r"""Cancels a resize operation for a cluster.

        :param self:
        :param ClusterIdentifier:  The unique identifier for the cluster that you want to cancel a resize operation for.<br/>
        :return: DataTransferProgressPercent:  The percent of data transferred from source cluster to target cluster.<br/>TargetEncryptionType:  The type of encryption for the cluster after the resize is complete. Possible values are <code>KMS</code> and <code>None</code>. <br/>Message:  An optional string to provide additional details about the resize action.<br/>ResizeType:  An enum with possible values of <code>ClassicResize</code> and <code>ElasticResize</code>. These values describe the type of resize operation being performed. <br/>EstimatedTimeToCompletionInSeconds:  The estimated time remaining, in seconds, until the resize operation is complete. This value is calculated based on the average resize rate and the estimated amount of data remaining to be processed. Once the resize operation is complete, this value will be 0.<br/>ElapsedTimeInSeconds:  The amount of seconds that have elapsed since the resize operation began. After the resize operation completes, this value shows the total actual time, in seconds, for the resize operation.<br/>ProgressInMegaBytes:  While the resize operation is in progress, this value shows the current amount of data, in megabytes, that has been processed so far. When the resize operation is complete, this value shows the total amount of data, in megabytes, on the cluster, which may be more or less than TotalResizeDataInMegaBytes (the estimated total amount of data before resize).<br/>TotalResizeDataInMegaBytes:  The estimated total amount of data, in megabytes, on the cluster before the resize operation began.<br/>AvgResizeRateInMegaBytesPerSecond:  The average rate of the resize operation over the last few minutes, measured in megabytes per second. After the resize operation completes, this value shows the average rate of the entire resize operation.<br/>ImportTablesNotStarted:  The names of tables that have not been yet imported. Valid Values: List of table names<br/>ImportTablesInProgress:  The names of tables that are being currently imported. Valid Values: List of table names.<br/>ImportTablesCompleted:  The names of tables that have been completely imported . Valid Values: List of table names.<br/>Status:  The status of the resize operation. Valid Values: <code>NONE</code> | <code>IN_PROGRESS</code> | <code>FAILED</code> | <code>SUCCEEDED</code> | <code>CANCELLING</code> <br/>TargetClusterType:  The cluster type after the resize operation is complete. Valid Values: <code>multi-node</code> | <code>single-node</code> <br/>TargetNumberOfNodes:  The number of nodes that the cluster will have after the resize operation is complete.<br/>TargetNodeType:  The node type that the cluster will have after the resize operation is complete.<br/>        """
        pass

    def copy_cluster_snapshot(self, TargetSnapshotIdentifier: str, SourceSnapshotIdentifier: str, SourceSnapshotClusterIdentifier: str=None, ManualSnapshotRetentionPeriod: int=None) -> CopyClusterSnapshotResult:
        r"""Copies the specified automated cluster snapshot to a new manual cluster snapshot. The source must be an automated snapshot and it must be in the available state. When you delete a cluster, Amazon Redshift deletes any automated snapshots of the cluster. Also, when the retention period of the snapshot expires, Amazon Redshift automatically deletes it. If you want to keep an automated snapshot for a longer period, you can make a manual copy of the snapshot. Manual snapshots are retained until you delete them.  For more information about working with snapshots, go to <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-snapshots.html">Amazon Redshift Snapshots</a> in the <i>Amazon Redshift Cluster Management Guide</i>.

        :param self:
        :param ManualSnapshotRetentionPeriod:  The number of days that a manual snapshot is retained. If the value is -1, the manual snapshot is retained indefinitely.  The value must be either -1 or an integer between 1 and 3,653. The default value is -1.<br/>TargetSnapshotIdentifier:  The identifier given to the new manual snapshot. Constraints: <ul> <li> Cannot be null, empty, or blank. </li> <li> Must contain from 1 to 255 alphanumeric characters or hyphens. </li> <li> First character must be a letter. </li> <li> Cannot end with a hyphen or contain two consecutive hyphens. </li> <li> Must be unique for the AWS account that is making the request. </li> </ul><br/>SourceSnapshotClusterIdentifier:  The identifier of the cluster the source snapshot was created from. This parameter is required if your IAM user has a policy containing a snapshot resource element that specifies anything other than * for the cluster name. Constraints: <ul> <li> Must be the identifier for a valid cluster. </li> </ul><br/>SourceSnapshotIdentifier:  The identifier for the source snapshot. Constraints: <ul> <li> Must be the identifier for a valid automated snapshot whose state is <code>available</code>. </li> </ul><br/>
        :return: Snapshot:  Describes a snapshot.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotRetentionStartTime</i> A timestamp representing the start of the retention period for the snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ManualSnapshotRemainingDays</i> The number of days until a manual snapshot will pass its retention period.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ManualSnapshotRetentionPeriod</i> The number of days that a manual snapshot is retained. If the value is -1, the manual snapshot is retained indefinitely.  The value must be either -1 or an integer between 1 and 3,653.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaintenanceTrackName</i> The name of the maintenance track for the snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnhancedVpcRouting</i> An option that specifies whether to create the cluster with enhanced VPC routing enabled. To create a cluster that uses enhanced VPC routing, the cluster must be in a VPC. For more information, see <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html">Enhanced VPC Routing</a> in the Amazon Redshift Cluster Management Guide. If this option is <code>true</code>, enhanced VPC routing is enabled.  Default: false<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RestorableNodeTypes</i> The list of node types that this cluster snapshot is able to restore into.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The list of tags for the cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceRegion</i> The source region from which the snapshot was copied.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ElapsedTimeInSeconds</i> The amount of time an in-progress snapshot backup has been running, or the amount of time it took a completed backup to finish.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EstimatedSecondsToCompletion</i> The estimate of the time remaining before the snapshot backup will complete. Returns <code>0</code> for a completed backup. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CurrentBackupRateInMegaBytesPerSecond</i> The number of megabytes per second being transferred to the snapshot backup. Returns <code>0</code> for a completed backup. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupProgressInMegaBytes</i> The number of megabytes that have been transferred to the snapshot backup.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActualIncrementalBackupSizeInMegaBytes</i> The size of the incremental backup.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalBackupSizeInMegaBytes</i> The size of the complete set of backup data that would be used to restore the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerAccount</i> For manual snapshots, the AWS customer account used to create or copy the snapshot. For automatic snapshots, the owner of the cluster. The owner can perform all snapshot actions, such as sharing a manual snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccountsWithRestoreAccess</i> A list of the AWS customer accounts authorized to restore the snapshot. Returns <code>null</code> if no accounts are authorized. Visible only to the snapshot owner. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EncryptedWithHSM</i> A boolean that indicates whether the snapshot data is encrypted using the HSM keys of the source cluster. <code>true</code> indicates that the data is encrypted using HSM keys.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The AWS Key Management Service (KMS) key ID of the encryption key that was used to encrypt data in the cluster from which the snapshot was taken.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Encrypted</i> If <code>true</code>, the data in the snapshot is encrypted at rest.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The VPC identifier of the cluster if the snapshot is from a cluster in a VPC. Otherwise, this field is not in the output.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBName</i> The name of the database that was created when the cluster was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberOfNodes</i> The number of nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NodeType</i> The node type of the nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotType</i> The snapshot type. Snapshots created using <a>CreateClusterSnapshot</a> and <a>CopyClusterSnapshot</a> are of type "manual". <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineFullVersion</i> The cluster version of the cluster used to create the snapshot. For example, 1.0.15503. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterVersion</i> The version ID of the Amazon Redshift engine that is running on the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUsername</i> The master user name for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterCreateTime</i> The time (UTC) when the cluster was originally created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZone</i> The Availability Zone in which the cluster was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> The port that the cluster is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The snapshot status. The value of the status depends on the API operation used:  <ul> <li>  <a>CreateClusterSnapshot</a> and <a>CopyClusterSnapshot</a> returns status as "creating".  </li> <li>  <a>DescribeClusterSnapshots</a> returns status as "creating", "available", "final snapshot", or "failed". </li> <li>  <a>DeleteClusterSnapshot</a> returns status as "deleted". </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotCreateTime</i> The time (in UTC format) when Amazon Redshift began the snapshot. A snapshot contains a copy of the cluster data as of this exact time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterIdentifier</i> The identifier of the cluster for which the snapshot was taken.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotIdentifier</i> The snapshot identifier that is provided in the request.<br/>        """
        pass

    def create_cluster(self, MasterUserPassword: str, MasterUsername: str, NodeType: str, ClusterIdentifier: str, DBName: str=None, ClusterType: str=None, ClusterSecurityGroups: List[String]=None, VpcSecurityGroupIds: List[String]=None, ClusterSubnetGroupName: str=None, AvailabilityZone: str=None, PreferredMaintenanceWindow: str=None, ClusterParameterGroupName: str=None, AutomatedSnapshotRetentionPeriod: int=None, ManualSnapshotRetentionPeriod: int=None, Port: int=None, ClusterVersion: str=None, AllowVersionUpgrade: BooleanOptional=None, NumberOfNodes: int=None, PubliclyAccessible: BooleanOptional=None, Encrypted: BooleanOptional=None, HsmClientCertificateIdentifier: str=None, HsmConfigurationIdentifier: str=None, ElasticIp: str=None, Tags: List[Tag]=None, KmsKeyId: str=None, EnhancedVpcRouting: BooleanOptional=None, AdditionalInfo: str=None, IamRoles: List[String]=None, MaintenanceTrackName: str=None, SnapshotScheduleIdentifier: str=None, AvailabilityZoneRelocation: BooleanOptional=None, AquaConfigurationStatus: str=None) -> CreateClusterResult:
        r"""Creates a new cluster with the specified parameters. To create a cluster in Virtual Private Cloud (VPC), you must provide a cluster subnet group name. The cluster subnet group identifies the subnets of your VPC that Amazon Redshift uses when creating the cluster. For more information about managing clusters, go to <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html">Amazon Redshift Clusters</a> in the <i>Amazon Redshift Cluster Management Guide</i>.

        :param self:
        :param AquaConfigurationStatus:  The value represents how the cluster is configured to use AQUA (Advanced Query Accelerator) when it is created. Possible values include the following. <ul> <li> enabled - Use AQUA if it is available for the current AWS Region and Amazon Redshift node type. </li> <li> disabled - Don't use AQUA.  </li> <li> auto - Amazon Redshift determines whether to use AQUA. </li> </ul><br/>AvailabilityZoneRelocation:  The option to enable relocation for an Amazon Redshift cluster between Availability Zones after the cluster is created.<br/>SnapshotScheduleIdentifier:  A unique identifier for the snapshot schedule.<br/>MaintenanceTrackName:  An optional parameter for the name of the maintenance track for the cluster. If you don't provide a maintenance track name, the cluster is assigned to the <code>current</code> track.<br/>IamRoles:  A list of AWS Identity and Access Management (IAM) roles that can be used by the cluster to access other AWS services. You must supply the IAM roles in their Amazon Resource Name (ARN) format. You can supply up to 10 IAM roles in a single request. A cluster can have up to 10 IAM roles associated with it at any time.<br/>AdditionalInfo:  Reserved.<br/>EnhancedVpcRouting:  An option that specifies whether to create the cluster with enhanced VPC routing enabled. To create a cluster that uses enhanced VPC routing, the cluster must be in a VPC. For more information, see <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html">Enhanced VPC Routing</a> in the Amazon Redshift Cluster Management Guide. If this option is <code>true</code>, enhanced VPC routing is enabled.  Default: false<br/>KmsKeyId:  The AWS Key Management Service (KMS) key ID of the encryption key that you want to use to encrypt data in the cluster.<br/>Tags:  A list of tag instances.<br/>ElasticIp:  The Elastic IP (EIP) address for the cluster. Constraints: The cluster must be provisioned in EC2-VPC and publicly-accessible through an Internet gateway. For more information about provisioning clusters in EC2-VPC, go to <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html#cluster-platforms">Supported Platforms to Launch Your Cluster</a> in the Amazon Redshift Cluster Management Guide.<br/>HsmConfigurationIdentifier:  Specifies the name of the HSM configuration that contains the information the Amazon Redshift cluster can use to retrieve and store keys in an HSM.<br/>HsmClientCertificateIdentifier:  Specifies the name of the HSM client certificate the Amazon Redshift cluster uses to retrieve the data encryption keys stored in an HSM.<br/>Encrypted:  If <code>true</code>, the data in the cluster is encrypted at rest.  Default: false<br/>PubliclyAccessible:  If <code>true</code>, the cluster can be accessed from a public network. <br/>NumberOfNodes:  The number of compute nodes in the cluster. This parameter is required when the <b>ClusterType</b> parameter is specified as <code>multi-node</code>.  For information about determining how many nodes you need, go to <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html#how-many-nodes"> Working with Clusters</a> in the <i>Amazon Redshift Cluster Management Guide</i>.  If you don't specify this parameter, you get a single-node cluster. When requesting a multi-node cluster, you must specify the number of nodes that you want in the cluster. Default: <code>1</code>  Constraints: Value must be at least 1 and no more than 100.<br/>AllowVersionUpgrade:  If <code>true</code>, major version upgrades can be applied during the maintenance window to the Amazon Redshift engine that is running on the cluster. When a new major version of the Amazon Redshift engine is released, you can request that the service automatically apply upgrades during the maintenance window to the Amazon Redshift engine that is running on your cluster. Default: <code>true</code> <br/>ClusterVersion:  The version of the Amazon Redshift engine software that you want to deploy on the cluster. The version selected runs on all the nodes in the cluster. Constraints: Only version 1.0 is currently available. Example: <code>1.0</code> <br/>Port:  The port number on which the cluster accepts incoming connections. The cluster is accessible only via the JDBC and ODBC connection strings. Part of the connection string requires the port on which the cluster will listen for incoming connections. Default: <code>5439</code>  Valid Values: <code>1150-65535</code> <br/>ManualSnapshotRetentionPeriod:  The default number of days to retain a manual snapshot. If the value is -1, the snapshot is retained indefinitely. This setting doesn't change the retention period of existing snapshots. The value must be either -1 or an integer between 1 and 3,653.<br/>AutomatedSnapshotRetentionPeriod:  The number of days that automated snapshots are retained. If the value is 0, automated snapshots are disabled. Even if automated snapshots are disabled, you can still create manual snapshots when you want with <a>CreateClusterSnapshot</a>.  You can't disable automated snapshots for RA3 node types. Set the automated retention period from 1-35 days. Default: <code>1</code>  Constraints: Must be a value from 0 to 35.<br/>ClusterParameterGroupName:  The name of the parameter group to be associated with this cluster. Default: The default Amazon Redshift cluster parameter group. For information about the default parameter group, go to <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-parameter-groups.html">Working with Amazon Redshift Parameter Groups</a>  Constraints: <ul> <li> Must be 1 to 255 alphanumeric characters or hyphens. </li> <li> First character must be a letter. </li> <li> Cannot end with a hyphen or contain two consecutive hyphens. </li> </ul><br/>PreferredMaintenanceWindow:  The weekly time range (in UTC) during which automated cluster maintenance can occur.  Format: <code>ddd:hh24:mi-ddd:hh24:mi</code>   Default: A 30-minute window selected at random from an 8-hour block of time per region, occurring on a random day of the week. For more information about the time blocks for each region, see <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html#rs-maintenance-windows">Maintenance Windows</a> in Amazon Redshift Cluster Management Guide. Valid Days: Mon | Tue | Wed | Thu | Fri | Sat | Sun Constraints: Minimum 30-minute window.<br/>AvailabilityZone:  The EC2 Availability Zone (AZ) in which you want Amazon Redshift to provision the cluster. For example, if you have several EC2 instances running in a specific Availability Zone, then you might want the cluster to be provisioned in the same zone in order to decrease network latency. Default: A random, system-chosen Availability Zone in the region that is specified by the endpoint. Example: <code>us-east-2d</code>  Constraint: The specified Availability Zone must be in the same region as the current endpoint.<br/>ClusterSubnetGroupName:  The name of a cluster subnet group to be associated with this cluster. If this parameter is not provided the resulting cluster will be deployed outside virtual private cloud (VPC).<br/>VpcSecurityGroupIds:  A list of Virtual Private Cloud (VPC) security groups to be associated with the cluster. Default: The default VPC security group is associated with the cluster.<br/>ClusterSecurityGroups:  A list of security groups to be associated with this cluster. Default: The default cluster security group for Amazon Redshift.<br/>MasterUserPassword:  The password associated with the master user account for the cluster that is being created. Constraints: <ul> <li> Must be between 8 and 64 characters in length. </li> <li> Must contain at least one uppercase letter. </li> <li> Must contain at least one lowercase letter. </li> <li> Must contain one number. </li> <li> Can be any printable ASCII character (ASCII code 33 to 126) except ' (single quote), " (double quote), \, /, @, or space. </li> </ul><br/>MasterUsername:  The user name associated with the master user account for the cluster that is being created. Constraints: <ul> <li> Must be 1 - 128 alphanumeric characters. The user name can't be <code>PUBLIC</code>. </li> <li> First character must be a letter. </li> <li> Cannot be a reserved word. A list of reserved words can be found in <a href="https://docs.aws.amazon.com/redshift/latest/dg/r_pg_keywords.html">Reserved Words</a> in the Amazon Redshift Database Developer Guide.  </li> </ul><br/>NodeType:  The node type to be provisioned for the cluster. For information about node types, go to <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html#how-many-nodes"> Working with Clusters</a> in the <i>Amazon Redshift Cluster Management Guide</i>.  Valid Values: <code>ds2.xlarge</code> | <code>ds2.8xlarge</code> | <code>dc1.large</code> | <code>dc1.8xlarge</code> | <code>dc2.large</code> | <code>dc2.8xlarge</code> | <code>ra3.xlplus</code> | <code>ra3.4xlarge</code> | <code>ra3.16xlarge</code> <br/>ClusterType:  The type of the cluster. When cluster type is specified as <ul> <li>  <code>single-node</code>, the <b>NumberOfNodes</b> parameter is not required. </li> <li>  <code>multi-node</code>, the <b>NumberOfNodes</b> parameter is required. </li> </ul> Valid Values: <code>multi-node</code> | <code>single-node</code>  Default: <code>multi-node</code> <br/>ClusterIdentifier:  A unique identifier for the cluster. You use this identifier to refer to the cluster for any subsequent cluster operations such as deleting or modifying. The identifier also appears in the Amazon Redshift console. Constraints: <ul> <li> Must contain from 1 to 63 alphanumeric characters or hyphens. </li> <li> Alphabetic characters must be lowercase. </li> <li> First character must be a letter. </li> <li> Cannot end with a hyphen or contain two consecutive hyphens. </li> <li> Must be unique for all clusters within an AWS account. </li> </ul> Example: <code>myexamplecluster</code> <br/>DBName:  The name of the first database to be created when the cluster is created. To create additional databases after the cluster is created, connect to the cluster with a SQL client and use SQL commands to create a database. For more information, go to <a href="https://docs.aws.amazon.com/redshift/latest/dg/t_creating_database.html">Create a Database</a> in the Amazon Redshift Database Developer Guide.  Default: <code>dev</code>  Constraints: <ul> <li> Must contain 1 to 64 alphanumeric characters. </li> <li> Must contain only lowercase letters. </li> <li> Cannot be a word that is reserved by the service. A list of reserved words can be found in <a href="https://docs.aws.amazon.com/redshift/latest/dg/r_pg_keywords.html">Reserved Words</a> in the Amazon Redshift Database Developer Guide.  </li> </ul><br/>
        :return: Cluster:  Describes a cluster.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AquaConfiguration</i> The AQUA (Advanced Query Accelerator) configuration of the cluster.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AquaConfiguration</b>: The AQUA (Advanced Query Accelerator) configuration of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalStorageCapacityInMegaBytes</i> The total storage capacity of the cluster in megabytes. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterNamespaceArn</i> The namespace Amazon Resource Name (ARN) of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZoneRelocationStatus</i> Describes the status of the Availability Zone relocation operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResizeInfo</i> Returns the following: <ul> <li> AllowCancelResize: a boolean value indicating if the resize operation can be cancelled. </li> <li> ResizeType: Returns ClassicResize </li> </ul>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ResizeInfo</b>: Returns the following: <ul> <li> AllowCancelResize: a boolean value indicating if the resize operation can be cancelled. </li> <li> ResizeType: Returns ClassicResize </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NextMaintenanceWindowStartTime</i> The date and time in UTC when system maintenance can begin.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExpectedNextSnapshotScheduleTimeStatus</i>  The status of next expected snapshot for clusters having a valid snapshot schedule and backups enabled. Possible values are the following: <ul> <li> OnTrack - The next snapshot is expected to be taken on time.  </li> <li> Pending - The next snapshot is pending to be taken.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExpectedNextSnapshotScheduleTime</i> The date and time when the next snapshot is expected to be taken for clusters with a valid snapshot schedule and backups enabled. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotScheduleState</i> The current state of the cluster snapshot schedule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotScheduleIdentifier</i> A unique identifier for the cluster snapshot schedule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeferredMaintenanceWindows</i> Describes a group of <code>DeferredMaintenanceWindow</code> objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ElasticResizeNumberOfNodeOptions</i> The number of nodes that you can resize the cluster to with the elastic resize method. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaintenanceTrackName</i> The name of the maintenance track for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingActions</i> Cluster operations that are waiting to be started.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IamRoles</i> A list of AWS Identity and Access Management (IAM) roles that can be used by the cluster to access other AWS services.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnhancedVpcRouting</i> An option that specifies whether to create the cluster with enhanced VPC routing enabled. To create a cluster that uses enhanced VPC routing, the cluster must be in a VPC. For more information, see <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html">Enhanced VPC Routing</a> in the Amazon Redshift Cluster Management Guide. If this option is <code>true</code>, enhanced VPC routing is enabled.  Default: false<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The AWS Key Management Service (AWS KMS) key ID of the encryption key used to encrypt data in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The list of tags for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterRevisionNumber</i> The specific revision number of the database in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ElasticIpStatus</i> The status of the elastic IP (EIP) address.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ElasticIpStatus</b>: The status of the elastic IP (EIP) address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterNodes</i> The nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterPublicKey</i> The public key for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterSnapshotCopyStatus</i> A value that returns the destination region and retention period that are configured for cross-region snapshot copy.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ClusterSnapshotCopyStatus</b>: A value that returns the destination region and retention period that are configured for cross-region snapshot copy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HsmStatus</i> A value that reports whether the Amazon Redshift cluster has finished applying any hardware security module (HSM) settings changes specified in a modify cluster command. Values: active, applying&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>HsmStatus</b>: A value that reports whether the Amazon Redshift cluster has finished applying any hardware security module (HSM) settings changes specified in a modify cluster command. Values: active, applying<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataTransferProgress</i> <p/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DataTransferProgress</b>: <p/><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RestoreStatus</i> A value that describes the status of a cluster restore action. This parameter returns null if the cluster was not created by restoring a snapshot.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RestoreStatus</b>: A value that describes the status of a cluster restore action. This parameter returns null if the cluster was not created by restoring a snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Encrypted</i> A boolean value that, if <code>true</code>, indicates that data in the cluster is encrypted at rest.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PubliclyAccessible</i> A boolean value that, if <code>true</code>, indicates that the cluster can be accessed from a public network.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberOfNodes</i> The number of compute nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowVersionUpgrade</i> A boolean value that, if <code>true</code>, indicates that major version upgrades will be applied automatically to the cluster during the maintenance window. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterVersion</i> The version ID of the Amazon Redshift engine that is running on the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingModifiedValues</i> A value that, if present, indicates that changes to the cluster are pending. Specific pending changes are identified by subelements.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingModifiedValues</b>: A value that, if present, indicates that changes to the cluster are pending. Specific pending changes are identified by subelements.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i> The weekly time range, in Universal Coordinated Time (UTC), during which system maintenance can occur.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZone</i> The name of the Availability Zone in which the cluster is located.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The identifier of the VPC the cluster is in, if the cluster is in a VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterSubnetGroupName</i> The name of the subnet group that is associated with the cluster. This parameter is valid only when the cluster is in a VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterParameterGroups</i> The list of cluster parameter groups that are associated with this cluster. Each parameter group in the list is returned with its status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcSecurityGroups</i> A list of Amazon Virtual Private Cloud (Amazon VPC) security groups that are associated with the cluster. This parameter is returned only if the cluster is in a VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterSecurityGroups</i> A list of cluster security group that are associated with the cluster. Each security group is represented by an element that contains <code>ClusterSecurityGroup.Name</code> and <code>ClusterSecurityGroup.Status</code> subelements.  Cluster security groups are used when the cluster is not created in an Amazon Virtual Private Cloud (VPC). Clusters that are created in a VPC use VPC security groups, which are listed by the <b>VpcSecurityGroups</b> parameter. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ManualSnapshotRetentionPeriod</i> The default number of days to retain a manual snapshot. If the value is -1, the snapshot is retained indefinitely. This setting doesn't change the retention period of existing snapshots. The value must be either -1 or an integer between 1 and 3,653.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomatedSnapshotRetentionPeriod</i> The number of days that automatic cluster snapshots are retained.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterCreateTime</i> The date and time that the cluster was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i> The connection endpoint.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Endpoint</b>: The connection endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBName</i> The name of the initial database that was created when the cluster was created. This same name is returned for the life of the cluster. If an initial database was not specified, a database named <code>dev</code>dev was created by default. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUsername</i> The master user name for the cluster. This name is used to connect to the database that is specified in the <b>DBName</b> parameter. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ModifyStatus</i> The status of a modify operation, if any, initiated for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterAvailabilityStatus</i> The availability status of the cluster for queries. Possible values are the following: <ul> <li> Available - The cluster is available for queries.  </li> <li> Unavailable - The cluster is not available for queries. </li> <li> Maintenance - The cluster is intermittently available for queries due to maintenance activities. </li> <li> Modifying - The cluster is intermittently available for queries due to changes that modify the cluster. </li> <li> Failed - The cluster failed and is not available for queries. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterStatus</i>  The current state of the cluster. Possible values are the following: <ul> <li>  <code>available</code>  </li> <li>  <code>available, prep-for-resize</code>  </li> <li>  <code>available, resize-cleanup</code>  </li> <li>  <code>cancelling-resize</code>  </li> <li>  <code>creating</code>  </li> <li>  <code>deleting</code>  </li> <li>  <code>final-snapshot</code>  </li> <li>  <code>hardware-failure</code>  </li> <li>  <code>incompatible-hsm</code>  </li> <li>  <code>incompatible-network</code>  </li> <li>  <code>incompatible-parameters</code>  </li> <li>  <code>incompatible-restore</code>  </li> <li>  <code>modifying</code>  </li> <li>  <code>paused</code>  </li> <li>  <code>rebooting</code>  </li> <li>  <code>renaming</code>  </li> <li>  <code>resizing</code>  </li> <li>  <code>rotating-keys</code>  </li> <li>  <code>storage-full</code>  </li> <li>  <code>updating-hsm</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NodeType</i> The node type for the nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterIdentifier</i> The unique identifier of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcEndpoints</i> Describes a connection endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> The port that the database engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Address</i> The DNS address of the Cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EncryptionType</i> The encryption type for a cluster. Possible values are: KMS and None. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaintenanceTrackName</i> The name of the maintenance track that the cluster will change to during the next maintenance window.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EnhancedVpcRouting</i> An option that specifies whether to create the cluster with enhanced VPC routing enabled. To create a cluster that uses enhanced VPC routing, the cluster must be in a VPC. For more information, see <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html">Enhanced VPC Routing</a> in the Amazon Redshift Cluster Management Guide. If this option is <code>true</code>, enhanced VPC routing is enabled.  Default: false<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PubliclyAccessible</i> The pending or in-progress change of the ability to connect to the cluster from the public network.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterIdentifier</i> The pending or in-progress change of the new identifier for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomatedSnapshotRetentionPeriod</i> The pending or in-progress change of the automated snapshot retention period.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterVersion</i> The pending or in-progress change of the service version.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterType</i> The pending or in-progress change of the cluster type.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberOfNodes</i> The pending or in-progress change of the number of nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NodeType</i> The pending or in-progress change of the cluster's node type.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUserPassword</i> The pending or in-progress change of the master user password for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EstimatedTimeToCompletionInSeconds</i> The estimate of the time remaining before the restore will complete. Returns 0 for a completed restore. This field is only updated when you restore to DC2 and DS2 node types. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ElapsedTimeInSeconds</i> The amount of time an in-progress restore has been running, or the amount of time it took a completed restore to finish. This field is only updated when you restore to DC2 and DS2 node types. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ProgressInMegaBytes</i> The number of megabytes that have been transferred from snapshot storage. This field is only updated when you restore to DC2 and DS2 node types. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotSizeInMegaBytes</i> The size of the set of snapshot data used to restore the cluster. This field is only updated when you restore to DC2 and DS2 node types. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CurrentRestoreRateInMegaBytesPerSecond</i> The number of megabytes per second being transferred from the backup storage. Returns the average rate for a completed backup. This field is only updated when you restore to DC2 and DS2 node types. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the restore action. Returns starting, restoring, completed, or failed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ElapsedTimeInSeconds</i> Describes the number of seconds that have elapsed during the data transfer.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EstimatedTimeToCompletionInSeconds</i> Describes the estimated number of seconds remaining to complete the transfer.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DataTransferredInMegaBytes</i> Describes the total amount of data that has been transfered in MB's.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalDataInMegaBytes</i> Describes the total amount of data to be transfered in megabytes.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CurrentRateInMegaBytesPerSecond</i> Describes the data transfer rate in MB's per second.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Describes the status of the cluster. While the transfer is in progress the status is <code>transferringdata</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Reports whether the Amazon Redshift cluster has finished applying any HSM settings changes specified in a modify cluster command. Values: active, applying<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HsmConfigurationIdentifier</i> Specifies the name of the HSM configuration that contains the information the Amazon Redshift cluster can use to retrieve and store keys in an HSM.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HsmClientCertificateIdentifier</i> Specifies the name of the HSM client certificate the Amazon Redshift cluster uses to retrieve the data encryption keys stored in an HSM.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotCopyGrantName</i> The name of the snapshot copy grant.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ManualSnapshotRetentionPeriod</i> The number of days that automated snapshots are retained in the destination region after they are copied from a source region. If the value is -1, the manual snapshot is retained indefinitely.  The value must be either -1 or an integer between 1 and 3,653.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RetentionPeriod</i> The number of days that automated snapshots are retained in the destination region after they are copied from a source region.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DestinationRegion</i> The destination region that snapshots are automatically copied to when cross-region snapshot copy is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the elastic IP (EIP) address.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ElasticIp</i> The elastic IP (EIP) address for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowCancelResize</i> A boolean value indicating if the resize operation can be cancelled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ResizeType</i> Returns the value <code>ClassicResize</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AquaConfigurationStatus</i> The value represents how the cluster is configured to use AQUA. Possible values include the following. <ul> <li> enabled - Use AQUA if it is available for the current AWS Region and Amazon Redshift node type. </li> <li> disabled - Don't use AQUA.  </li> <li> auto - Amazon Redshift determines whether to use AQUA. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AquaStatus</i> The value indicates the status of AQUA on the cluster. Possible values include the following. <ul> <li> enabled - AQUA is enabled. </li> <li> disabled - AQUA is not enabled.  </li> <li> applying - AQUA status is being applied.  </li> </ul><br/>        """
        pass

    def create_cluster_parameter_group(self, Description: str, ParameterGroupFamily: str, ParameterGroupName: str, Tags: List[Tag]=None) -> CreateClusterParameterGroupResult:
        r"""Creates an Amazon Redshift parameter group. Creating parameter groups is independent of creating clusters. You can associate a cluster with a parameter group when you create the cluster. You can also associate an existing cluster with a parameter group after the cluster is created by using <a>ModifyCluster</a>.  Parameters in the parameter group define specific behavior that applies to the databases you create on the cluster. For more information about parameters and parameter groups, go to <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-parameter-groups.html">Amazon Redshift Parameter Groups</a> in the <i>Amazon Redshift Cluster Management Guide</i>.

        :param self:
        :param Tags:  A list of tag instances.<br/>Description:  A description of the parameter group.<br/>ParameterGroupFamily:  The Amazon Redshift engine version to which the cluster parameter group applies. The cluster engine version determines the set of parameters. To get a list of valid parameter group family names, you can call <a>DescribeClusterParameterGroups</a>. By default, Amazon Redshift returns a list of all the parameter groups that are owned by your AWS account, including the default parameter groups for each Amazon Redshift engine version. The parameter group family names associated with the default parameter groups provide you the valid values. For example, a valid family name is "redshift-1.0". <br/>ParameterGroupName:  The name of the cluster parameter group. Constraints: <ul> <li> Must be 1 to 255 alphanumeric characters or hyphens </li> <li> First character must be a letter. </li> <li> Cannot end with a hyphen or contain two consecutive hyphens. </li> <li> Must be unique withing your AWS account. </li> </ul> <note> This value is stored as a lower-case string. </note><br/>
        :return: ClusterParameterGroup:  Describes a parameter group.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The list of tags for the cluster parameter group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the parameter group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ParameterGroupFamily</i> The name of the cluster parameter group family that this cluster parameter group is compatible with.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ParameterGroupName</i> The name of the cluster parameter group.<br/>        """
        pass

    def create_cluster_security_group(self, Description: str, ClusterSecurityGroupName: str, Tags: List[Tag]=None) -> CreateClusterSecurityGroupResult:
        r"""Creates a new Amazon Redshift security group. You use security groups to control access to non-VPC clusters.  For information about managing security groups, go to <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-security-groups.html">Amazon Redshift Cluster Security Groups</a> in the <i>Amazon Redshift Cluster Management Guide</i>.

        :param self:
        :param Tags:  A list of tag instances.<br/>Description:  A description for the security group.<br/>ClusterSecurityGroupName:  The name for the security group. Amazon Redshift stores the value as a lowercase string. Constraints: <ul> <li> Must contain no more than 255 alphanumeric characters or hyphens. </li> <li> Must not be "Default". </li> <li> Must be unique for all security groups that are created by your AWS account. </li> </ul> Example: <code>examplesecuritygroup</code> <br/>
        :return: ClusterSecurityGroup:  Describes a security group.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The list of tags for the cluster security group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IPRanges</i> A list of IP ranges (CIDR blocks) that are permitted to access clusters associated with this cluster security group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EC2SecurityGroups</i> A list of EC2 security groups that are permitted to access clusters associated with this cluster security group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A description of the security group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterSecurityGroupName</i> The name of the cluster security group to which the operation was applied.<br/>        """
        pass

    def create_cluster_snapshot(self, ClusterIdentifier: str, SnapshotIdentifier: str, ManualSnapshotRetentionPeriod: int=None, Tags: List[Tag]=None) -> CreateClusterSnapshotResult:
        r"""Creates a manual snapshot of the specified cluster. The cluster must be in the <code>available</code> state.   For more information about working with snapshots, go to <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-snapshots.html">Amazon Redshift Snapshots</a> in the <i>Amazon Redshift Cluster Management Guide</i>.

        :param self:
        :param Tags:  A list of tag instances.<br/>ManualSnapshotRetentionPeriod:  The number of days that a manual snapshot is retained. If the value is -1, the manual snapshot is retained indefinitely.  The value must be either -1 or an integer between 1 and 3,653. The default value is -1.<br/>ClusterIdentifier:  The cluster identifier for which you want a snapshot.<br/>SnapshotIdentifier:  A unique identifier for the snapshot that you are requesting. This identifier must be unique for all snapshots within the AWS account. Constraints: <ul> <li> Cannot be null, empty, or blank </li> <li> Must contain from 1 to 255 alphanumeric characters or hyphens </li> <li> First character must be a letter </li> <li> Cannot end with a hyphen or contain two consecutive hyphens </li> </ul> Example: <code>my-snapshot-id</code> <br/>
        :return: Snapshot:  Describes a snapshot.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotRetentionStartTime</i> A timestamp representing the start of the retention period for the snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ManualSnapshotRemainingDays</i> The number of days until a manual snapshot will pass its retention period.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ManualSnapshotRetentionPeriod</i> The number of days that a manual snapshot is retained. If the value is -1, the manual snapshot is retained indefinitely.  The value must be either -1 or an integer between 1 and 3,653.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaintenanceTrackName</i> The name of the maintenance track for the snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnhancedVpcRouting</i> An option that specifies whether to create the cluster with enhanced VPC routing enabled. To create a cluster that uses enhanced VPC routing, the cluster must be in a VPC. For more information, see <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html">Enhanced VPC Routing</a> in the Amazon Redshift Cluster Management Guide. If this option is <code>true</code>, enhanced VPC routing is enabled.  Default: false<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RestorableNodeTypes</i> The list of node types that this cluster snapshot is able to restore into.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The list of tags for the cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceRegion</i> The source region from which the snapshot was copied.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ElapsedTimeInSeconds</i> The amount of time an in-progress snapshot backup has been running, or the amount of time it took a completed backup to finish.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EstimatedSecondsToCompletion</i> The estimate of the time remaining before the snapshot backup will complete. Returns <code>0</code> for a completed backup. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CurrentBackupRateInMegaBytesPerSecond</i> The number of megabytes per second being transferred to the snapshot backup. Returns <code>0</code> for a completed backup. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupProgressInMegaBytes</i> The number of megabytes that have been transferred to the snapshot backup.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActualIncrementalBackupSizeInMegaBytes</i> The size of the incremental backup.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalBackupSizeInMegaBytes</i> The size of the complete set of backup data that would be used to restore the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerAccount</i> For manual snapshots, the AWS customer account used to create or copy the snapshot. For automatic snapshots, the owner of the cluster. The owner can perform all snapshot actions, such as sharing a manual snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccountsWithRestoreAccess</i> A list of the AWS customer accounts authorized to restore the snapshot. Returns <code>null</code> if no accounts are authorized. Visible only to the snapshot owner. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EncryptedWithHSM</i> A boolean that indicates whether the snapshot data is encrypted using the HSM keys of the source cluster. <code>true</code> indicates that the data is encrypted using HSM keys.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The AWS Key Management Service (KMS) key ID of the encryption key that was used to encrypt data in the cluster from which the snapshot was taken.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Encrypted</i> If <code>true</code>, the data in the snapshot is encrypted at rest.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The VPC identifier of the cluster if the snapshot is from a cluster in a VPC. Otherwise, this field is not in the output.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBName</i> The name of the database that was created when the cluster was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberOfNodes</i> The number of nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NodeType</i> The node type of the nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotType</i> The snapshot type. Snapshots created using <a>CreateClusterSnapshot</a> and <a>CopyClusterSnapshot</a> are of type "manual". <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineFullVersion</i> The cluster version of the cluster used to create the snapshot. For example, 1.0.15503. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterVersion</i> The version ID of the Amazon Redshift engine that is running on the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUsername</i> The master user name for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterCreateTime</i> The time (UTC) when the cluster was originally created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZone</i> The Availability Zone in which the cluster was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> The port that the cluster is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The snapshot status. The value of the status depends on the API operation used:  <ul> <li>  <a>CreateClusterSnapshot</a> and <a>CopyClusterSnapshot</a> returns status as "creating".  </li> <li>  <a>DescribeClusterSnapshots</a> returns status as "creating", "available", "final snapshot", or "failed". </li> <li>  <a>DeleteClusterSnapshot</a> returns status as "deleted". </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotCreateTime</i> The time (in UTC format) when Amazon Redshift began the snapshot. A snapshot contains a copy of the cluster data as of this exact time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterIdentifier</i> The identifier of the cluster for which the snapshot was taken.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotIdentifier</i> The snapshot identifier that is provided in the request.<br/>        """
        pass

    def create_cluster_subnet_group(self, SubnetIds: List[String], Description: str, ClusterSubnetGroupName: str, Tags: List[Tag]=None) -> CreateClusterSubnetGroupResult:
        r"""Creates a new Amazon Redshift subnet group. You must provide a list of one or more subnets in your existing Amazon Virtual Private Cloud (Amazon VPC) when creating Amazon Redshift subnet group.  For information about subnet groups, go to <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-cluster-subnet-groups.html">Amazon Redshift Cluster Subnet Groups</a> in the <i>Amazon Redshift Cluster Management Guide</i>.

        :param self:
        :param Tags:  A list of tag instances.<br/>SubnetIds:  An array of VPC subnet IDs. A maximum of 20 subnets can be modified in a single request.<br/>Description:  A description for the subnet group.<br/>ClusterSubnetGroupName:  The name for the subnet group. Amazon Redshift stores the value as a lowercase string. Constraints: <ul> <li> Must contain no more than 255 alphanumeric characters or hyphens. </li> <li> Must not be "Default". </li> <li> Must be unique for all subnet groups that are created by your AWS account. </li> </ul> Example: <code>examplesubnetgroup</code> <br/>
        :return: ClusterSubnetGroup:  Describes a subnet group.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The list of tags for the cluster subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Subnets</i> A list of the VPC <a>Subnet</a> elements. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetGroupStatus</i> The status of the cluster subnet group. Possible values are <code>Complete</code>, <code>Incomplete</code> and <code>Invalid</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The VPC ID of the cluster subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the cluster subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterSubnetGroupName</i> The name of the cluster subnet group.<br/>        """
        pass

    def create_endpoint_access(self, SubnetGroupName: str, EndpointName: str, ClusterIdentifier: str=None, ResourceOwner: str=None, VpcSecurityGroupIds: List[String]=None) -> EndpointAccess:
        r"""Creates a Redshift-managed VPC endpoint.

        :param self:
        :param VpcSecurityGroupIds:  The security group that defines the ports, protocols, and sources for inbound traffic that you are authorizing into your endpoint.<br/>SubnetGroupName:  The subnet group from which Amazon Redshift chooses the subnet to deploy the endpoint.<br/>EndpointName:  The Redshift-managed VPC endpoint name. An endpoint name must contain 1-30 characters. Valid characters are A-Z, a-z, 0-9, and hyphen(-). The first character must be a letter. The name can't contain two consecutive hyphens or end with a hyphen.<br/>ResourceOwner:  The AWS account ID of the owner of the cluster. This is only required if the cluster is in another AWS account.<br/>ClusterIdentifier:  The cluster identifier of the cluster to access.<br/>
        :return: VpcEndpoint:  The connection endpoint for connecting to an Amazon Redshift cluster through the proxy.:<br/>VpcSecurityGroups:  The security groups associated with the endpoint.<br/>Address:  The DNS address of the endpoint.<br/>Port:  The port number on which the cluster accepts incoming connections.<br/>EndpointCreateTime:  The time (UTC) that the endpoint was created.<br/>EndpointName:  The name of the endpoint.<br/>EndpointStatus:  The status of the endpoint.<br/>SubnetGroupName:  The subnet group name where Amazon Redshift chooses to deploy the endpoint.<br/>ResourceOwner:  The AWS account ID of the owner of the cluster.<br/>ClusterIdentifier:  The cluster identifier of the cluster associated with the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkInterfaces</i> One or more network interfaces of the endpoint. Also known as an interface endpoint. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The VPC identifier that the endpoint is associated. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcEndpointId</i> The connection endpoint ID for connecting an Amazon Redshift cluster through the proxy.<br/>        """
        pass

    def create_event_subscription(self, SnsTopicArn: str, SubscriptionName: str, SourceType: str=None, SourceIds: List[String]=None, EventCategories: List[String]=None, Severity: str=None, Enabled: BooleanOptional=None, Tags: List[Tag]=None) -> CreateEventSubscriptionResult:
        r"""Creates an Amazon Redshift event notification subscription. This action requires an ARN (Amazon Resource Name) of an Amazon SNS topic created by either the Amazon Redshift console, the Amazon SNS console, or the Amazon SNS API. To obtain an ARN with Amazon SNS, you must create a topic in Amazon SNS and subscribe to the topic. The ARN is displayed in the SNS console. You can specify the source type, and lists of Amazon Redshift source IDs, event categories, and event severities. Notifications will be sent for all events you want that match those criteria. For example, you can specify source type = cluster, source ID = my-cluster-1 and mycluster2, event categories = Availability, Backup, and severity = ERROR. The subscription will only send notifications for those ERROR events in the Availability and Backup categories for the specified clusters. If you specify both the source type and source IDs, such as source type = cluster and source identifier = my-cluster-1, notifications will be sent for all the cluster events for my-cluster-1. If you specify a source type but do not specify a source identifier, you will receive notice of the events for the objects of that type in your AWS account. If you do not specify either the SourceType nor the SourceIdentifier, you will be notified of events generated from all Amazon Redshift sources belonging to your AWS account. You must specify a source type if you specify a source ID.

        :param self:
        :param Tags:  A list of tag instances.<br/>Enabled:  A boolean value; set to <code>true</code> to activate the subscription, and set to <code>false</code> to create the subscription but not activate it. <br/>Severity:  Specifies the Amazon Redshift event severity to be published by the event notification subscription. Values: ERROR, INFO<br/>EventCategories:  Specifies the Amazon Redshift event categories to be published by the event notification subscription. Values: configuration, management, monitoring, security<br/>SourceIds:  A list of one or more identifiers of Amazon Redshift source objects. All of the objects must be of the same type as was specified in the source type parameter. The event subscription will return only events generated by the specified objects. If not specified, then events are returned for all objects within the source type specified. Example: my-cluster-1, my-cluster-2 Example: my-snapshot-20131010<br/>SourceType:  The type of source that will be generating the events. For example, if you want to be notified of events generated by a cluster, you would set this parameter to cluster. If this value is not specified, events are returned for all Amazon Redshift objects in your AWS account. You must specify a source type in order to specify source IDs. Valid values: cluster, cluster-parameter-group, cluster-security-group, cluster-snapshot, and scheduled-action.<br/>SnsTopicArn:  The Amazon Resource Name (ARN) of the Amazon SNS topic used to transmit the event notifications. The ARN is created by Amazon SNS when you create a topic and subscribe to it.<br/>SubscriptionName:  The name of the event subscription to be created. Constraints: <ul> <li> Cannot be null, empty, or blank. </li> <li> Must contain from 1 to 255 alphanumeric characters or hyphens. </li> <li> First character must be a letter. </li> <li> Cannot end with a hyphen or contain two consecutive hyphens. </li> </ul><br/>
        :return: EventSubscription:  Describes event subscriptions.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The list of tags for the event subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> A boolean value indicating whether the subscription is enabled; <code>true</code> indicates that the subscription is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Severity</i> The event severity specified in the Amazon Redshift event notification subscription. Values: ERROR, INFO<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EventCategoriesList</i> The list of Amazon Redshift event categories specified in the event notification subscription. Values: Configuration, Management, Monitoring, Security<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceIdsList</i> A list of the sources that publish events to the Amazon Redshift event notification subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceType</i> The source type of the events returned by the Amazon Redshift event notification, such as cluster, cluster-snapshot, cluster-parameter-group, cluster-security-group, or scheduled-action. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubscriptionCreationTime</i> The date and time the Amazon Redshift event notification subscription was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the Amazon Redshift event notification subscription. Constraints: <ul> <li> Can be one of the following: active | no-permission | topic-not-exist </li> <li> The status "no-permission" indicates that Amazon Redshift no longer has permission to post to the Amazon SNS topic. The status "topic-not-exist" indicates that the topic was deleted after the subscription was created. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnsTopicArn</i> The Amazon Resource Name (ARN) of the Amazon SNS topic used by the event notification subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustSubscriptionId</i> The name of the Amazon Redshift event notification subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomerAwsId</i> The AWS customer account associated with the Amazon Redshift event notification subscription.<br/>        """
        pass

    def create_hsm_client_certificate(self, HsmClientCertificateIdentifier: str, Tags: List[Tag]=None) -> CreateHsmClientCertificateResult:
        r"""Creates an HSM client certificate that an Amazon Redshift cluster will use to connect to the client's HSM in order to store and retrieve the keys used to encrypt the cluster databases. The command returns a public key, which you must store in the HSM. In addition to creating the HSM certificate, you must create an Amazon Redshift HSM configuration that provides a cluster the information needed to store and use encryption keys in the HSM. For more information, go to <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-db-encryption.html#working-with-HSM">Hardware Security Modules</a> in the <i>Amazon Redshift Cluster Management Guide</i>.

        :param self:
        :param Tags:  A list of tag instances.<br/>HsmClientCertificateIdentifier:  The identifier to be assigned to the new HSM client certificate that the cluster will use to connect to the HSM to use the database encryption keys.<br/>
        :return: HsmClientCertificate:  Returns information about an HSM client certificate. The certificate is stored in a secure Hardware Storage Module (HSM), and used by the Amazon Redshift cluster to encrypt data files.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The list of tags for the HSM client certificate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HsmClientCertificatePublicKey</i> The public key that the Amazon Redshift cluster will use to connect to the HSM. You must register the public key in the HSM.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HsmClientCertificateIdentifier</i> The identifier of the HSM client certificate.<br/>        """
        pass

    def create_hsm_configuration(self, HsmServerPublicCertificate: str, HsmPartitionPassword: str, HsmPartitionName: str, HsmIpAddress: str, Description: str, HsmConfigurationIdentifier: str, Tags: List[Tag]=None) -> CreateHsmConfigurationResult:
        r"""Creates an HSM configuration that contains the information required by an Amazon Redshift cluster to store and use database encryption keys in a Hardware Security Module (HSM). After creating the HSM configuration, you can specify it as a parameter when creating a cluster. The cluster will then store its encryption keys in the HSM. In addition to creating an HSM configuration, you must also create an HSM client certificate. For more information, go to <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-HSM.html">Hardware Security Modules</a> in the Amazon Redshift Cluster Management Guide.

        :param self:
        :param Tags:  A list of tag instances.<br/>HsmServerPublicCertificate:  The HSMs public certificate file. When using Cloud HSM, the file name is server.pem.<br/>HsmPartitionPassword:  The password required to access the HSM partition.<br/>HsmPartitionName:  The name of the partition in the HSM where the Amazon Redshift clusters will store their database encryption keys.<br/>HsmIpAddress:  The IP address that the Amazon Redshift cluster must use to access the HSM.<br/>Description:  A text description of the HSM configuration to be created.<br/>HsmConfigurationIdentifier:  The identifier to be assigned to the new Amazon Redshift HSM configuration.<br/>
        :return: HsmConfiguration:  Returns information about an HSM configuration, which is an object that describes to Amazon Redshift clusters the information they require to connect to an HSM where they can store database encryption keys.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The list of tags for the HSM configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HsmPartitionName</i> The name of the partition in the HSM where the Amazon Redshift clusters will store their database encryption keys.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HsmIpAddress</i> The IP address that the Amazon Redshift cluster must use to access the HSM.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A text description of the HSM configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HsmConfigurationIdentifier</i> The name of the Amazon Redshift HSM configuration.<br/>        """
        pass

    def create_scheduled_action(self, IamRole: str, Schedule: str, TargetAction: ScheduledActionType, ScheduledActionName: str, ScheduledActionDescription: str=None, StartTime: TStamp=None, EndTime: TStamp=None, Enable: BooleanOptional=None) -> ScheduledAction:
        r"""Creates a scheduled action. A scheduled action contains a schedule and an Amazon Redshift API action. For example, you can create a schedule of when to run the <code>ResizeCluster</code> API operation. 

        :param self:
        :param Enable:  If true, the schedule is enabled. If false, the scheduled action does not trigger. For more information about <code>state</code> of the scheduled action, see <a>ScheduledAction</a>. <br/>EndTime:  The end time in UTC of the scheduled action. After this time, the scheduled action does not trigger. For more information about this parameter, see <a>ScheduledAction</a>. <br/>StartTime:  The start time in UTC of the scheduled action. Before this time, the scheduled action does not trigger. For more information about this parameter, see <a>ScheduledAction</a>.<br/>ScheduledActionDescription:  The description of the scheduled action. <br/>IamRole:  The IAM role to assume to run the target action. For more information about this parameter, see <a>ScheduledAction</a>. <br/>Schedule:  The schedule in <code>at( )</code> or <code>cron( )</code> format. For more information about this parameter, see <a>ScheduledAction</a>.<br/>TargetAction:  A JSON format string of the Amazon Redshift API operation with input parameters. For more information about this parameter, see <a>ScheduledAction</a>. :<br/>ScheduledActionName:  The name of the scheduled action. The name must be unique within an account. For more information about this parameter, see <a>ScheduledAction</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResumeCluster</i> An action that runs a <code>ResumeCluster</code> API operation. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ResumeCluster</b>: An action that runs a <code>ResumeCluster</code> API operation. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PauseCluster</i> An action that runs a <code>PauseCluster</code> API operation. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PauseCluster</b>: An action that runs a <code>PauseCluster</code> API operation. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResizeCluster</i> An action that runs a <code>ResizeCluster</code> API operation. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ResizeCluster</b>: An action that runs a <code>ResizeCluster</code> API operation. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Classic</i> A boolean value indicating whether the resize operation is using the classic resize process. If you don't provide this parameter or set the value to <code>false</code>, the resize type is elastic. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberOfNodes</i> The new number of nodes for the cluster. If not specified, the cluster's current number of nodes is used.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NodeType</i> The new node type for the nodes you are adding. If not specified, the cluster's current node type is used.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterType</i> The new cluster type for the specified cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterIdentifier</i> The unique identifier for the cluster to resize.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterIdentifier</i> The identifier of the cluster to be paused.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterIdentifier</i> The identifier of the cluster to be resumed.<br/>
        :return: EndTime:  The end time in UTC when the schedule is no longer active. After this time, the scheduled action does not trigger. <br/>StartTime:  The start time in UTC when the schedule is active. Before this time, the scheduled action does not trigger. <br/>NextInvocations:  List of times when the scheduled action will run. <br/>State:  The state of the scheduled action. For example, <code>DISABLED</code>. <br/>ScheduledActionDescription:  The description of the scheduled action. <br/>IamRole:  The IAM role to assume to run the scheduled action. This IAM role must have permission to run the Amazon Redshift API operation in the scheduled action. This IAM role must allow the Amazon Redshift scheduler (Principal scheduler.redshift.amazonaws.com) to assume permissions on your behalf. For more information about the IAM role to use with the Amazon Redshift scheduler, see <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-access-control-identity-based.html">Using Identity-Based Policies for Amazon Redshift</a> in the <i>Amazon Redshift Cluster Management Guide</i>. <br/>Schedule:  The schedule for a one-time (at format) or recurring (cron format) scheduled action. Schedule invocations must be separated by at least one hour. Format of at expressions is "<code>at(yyyy-mm-ddThh:mm:ss)</code>". For example, "<code>at(2016-03-04T17:27:00)</code>". Format of cron expressions is "<code>cron(Minutes Hours Day-of-month Month Day-of-week Year)</code>". For example, "<code>cron(0 10 ? * MON *)</code>". For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/ScheduledEvents.html#CronExpressions">Cron Expressions</a> in the <i>Amazon CloudWatch Events User Guide</i>.<br/>TargetAction:  A JSON format string of the Amazon Redshift API operation with input parameters.  "<code>{\"ResizeCluster\":{\"NodeType\":\"ds2.8xlarge\",\"ClusterIdentifier\":\"my-test-cluster\",\"NumberOfNodes\":3}}</code>". :<br/>ScheduledActionName:  The name of the scheduled action. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResumeCluster</i> An action that runs a <code>ResumeCluster</code> API operation. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ResumeCluster</b>: An action that runs a <code>ResumeCluster</code> API operation. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PauseCluster</i> An action that runs a <code>PauseCluster</code> API operation. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PauseCluster</b>: An action that runs a <code>PauseCluster</code> API operation. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResizeCluster</i> An action that runs a <code>ResizeCluster</code> API operation. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ResizeCluster</b>: An action that runs a <code>ResizeCluster</code> API operation. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Classic</i> A boolean value indicating whether the resize operation is using the classic resize process. If you don't provide this parameter or set the value to <code>false</code>, the resize type is elastic. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberOfNodes</i> The new number of nodes for the cluster. If not specified, the cluster's current number of nodes is used.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NodeType</i> The new node type for the nodes you are adding. If not specified, the cluster's current node type is used.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterType</i> The new cluster type for the specified cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterIdentifier</i> The unique identifier for the cluster to resize.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterIdentifier</i> The identifier of the cluster to be paused.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterIdentifier</i> The identifier of the cluster to be resumed.<br/>        """
        pass

    def create_snapshot_copy_grant(self, SnapshotCopyGrantName: str, KmsKeyId: str=None, Tags: List[Tag]=None) -> CreateSnapshotCopyGrantResult:
        r"""Creates a snapshot copy grant that permits Amazon Redshift to use a customer master key (CMK) from AWS Key Management Service (AWS KMS) to encrypt copied snapshots in a destination region.  For more information about managing snapshot copy grants, go to <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-db-encryption.html">Amazon Redshift Database Encryption</a> in the <i>Amazon Redshift Cluster Management Guide</i>. 

        :param self:
        :param Tags:  A list of tag instances.<br/>KmsKeyId:  The unique identifier of the customer master key (CMK) to which to grant Amazon Redshift permission. If no key is specified, the default key is used.<br/>SnapshotCopyGrantName:  The name of the snapshot copy grant. This name must be unique in the region for the AWS account. Constraints: <ul> <li> Must contain from 1 to 63 alphanumeric characters or hyphens. </li> <li> Alphabetic characters must be lowercase. </li> <li> First character must be a letter. </li> <li> Cannot end with a hyphen or contain two consecutive hyphens. </li> <li> Must be unique for all clusters within an AWS account. </li> </ul><br/>
        :return: SnapshotCopyGrant:  The snapshot copy grant that grants Amazon Redshift permission to encrypt copied snapshots with the specified customer master key (CMK) from AWS KMS in the destination region.  For more information about managing snapshot copy grants, go to <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-db-encryption.html">Amazon Redshift Database Encryption</a> in the <i>Amazon Redshift Cluster Management Guide</i>. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> A list of tag instances.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The unique identifier of the customer master key (CMK) in AWS KMS to which Amazon Redshift is granted permission.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotCopyGrantName</i> The name of the snapshot copy grant.<br/>        """
        pass

    def create_snapshot_schedule(self, ScheduleDefinitions: List[String]=None, ScheduleIdentifier: str=None, ScheduleDescription: str=None, Tags: List[Tag]=None, DryRun: BooleanOptional=None, NextInvocations: int=None) -> SnapshotSchedule:
        r"""Create a snapshot schedule that can be associated to a cluster and which overrides the default system backup schedule. 

        :param self:
        :param NextInvocations:  <p/><br/>DryRun:  <p/><br/>Tags:  An optional set of tags you can use to search for the schedule.<br/>ScheduleDescription:  The description of the snapshot schedule.<br/>ScheduleIdentifier:  A unique identifier for a snapshot schedule. Only alphanumeric characters are allowed for the identifier.<br/>ScheduleDefinitions:  The definition of the snapshot schedule. The definition is made up of schedule expressions, for example "cron(30 12 *)" or "rate(12 hours)". <br/>
        :return: AssociatedClusters:  A list of clusters associated with the schedule. A maximum of 100 clusters is returned.<br/>AssociatedClusterCount:  The number of clusters associated with the schedule.<br/>NextInvocations:  <p/><br/>Tags:  An optional set of tags describing the schedule.<br/>ScheduleDescription:  The description of the schedule.<br/>ScheduleIdentifier:  A unique identifier for the schedule.<br/>ScheduleDefinitions:  A list of ScheduleDefinitions.<br/>        """
        pass

    def create_tags(self, Tags: List[Tag], ResourceName: str):
        r"""Adds tags to a cluster. A resource can have up to 50 tags. If you try to create more than 50 tags for a resource, you will receive an error and the attempt will fail. If you specify a key that already exists for the resource, the value for that key will be updated with the new value.

        :param self:
        :param Tags:  One or more name/value pairs to add as tags to the specified resource. Each tag name is passed in with the parameter <code>Key</code> and the corresponding value is passed in with the parameter <code>Value</code>. The <code>Key</code> and <code>Value</code> parameters are separated by a comma (,). Separate multiple tags with a space. For example, <code>--tags "Key"="owner","Value"="admin" "Key"="environment","Value"="test" "Key"="version","Value"="1.0"</code>. <br/>ResourceName:  The Amazon Resource Name (ARN) to which you want to add the tag or tags. For example, <code>arn:aws:redshift:us-east-2:123456789:cluster:t1</code>. <br/>
        :return:         """
        pass

    def create_usage_limit(self, Amount: Long, LimitType: str, FeatureType: str, ClusterIdentifier: str, Period: str=None, BreachAction: str=None, Tags: List[Tag]=None) -> UsageLimit:
        r"""Creates a usage limit for a specified Amazon Redshift feature on a cluster. The usage limit is identified by the returned usage limit identifier.

        :param self:
        :param Tags:  A list of tag instances.<br/>BreachAction:  The action that Amazon Redshift takes when the limit is reached. The default is log. For more information about this parameter, see <a>UsageLimit</a>.<br/>Period:  The time period that the amount applies to. A <code>weekly</code> period begins on Sunday. The default is <code>monthly</code>. <br/>Amount:  The limit amount. If time-based, this amount is in minutes. If data-based, this amount is in terabytes (TB). The value must be a positive number. <br/>LimitType:  The type of limit. Depending on the feature type, this can be based on a time duration or data size. If <code>FeatureType</code> is <code>spectrum</code>, then <code>LimitType</code> must be <code>data-scanned</code>. If <code>FeatureType</code> is <code>concurrency-scaling</code>, then <code>LimitType</code> must be <code>time</code>. <br/>FeatureType:  The Amazon Redshift feature that you want to limit.<br/>ClusterIdentifier:  The identifier of the cluster that you want to limit usage.<br/>
        :return: Tags:  A list of tag instances.<br/>BreachAction:  The action that Amazon Redshift takes when the limit is reached. Possible values are:  <ul> <li>  <b>log</b> - To log an event in a system table. The default is log. </li> <li>  <b>emit-metric</b> - To emit CloudWatch metrics. </li> <li>  <b>disable</b> - To disable the feature until the next usage period begins. </li> </ul><br/>Period:  The time period that the amount applies to. A <code>weekly</code> period begins on Sunday. The default is <code>monthly</code>. <br/>Amount:  The limit amount. If time-based, this amount is in minutes. If data-based, this amount is in terabytes (TB).<br/>LimitType:  The type of limit. Depending on the feature type, this can be based on a time duration or data size.<br/>FeatureType:  The Amazon Redshift feature to which the limit applies.<br/>ClusterIdentifier:  The identifier of the cluster with a usage limit.<br/>UsageLimitId:  The identifier of the usage limit.<br/>        """
        pass

    def delete_cluster(self, ClusterIdentifier: str, SkipFinalClusterSnapshot: Boolean=None, FinalClusterSnapshotIdentifier: str=None, FinalClusterSnapshotRetentionPeriod: int=None) -> DeleteClusterResult:
        r"""Deletes a previously provisioned cluster without its final snapshot being created. A successful response from the web service indicates that the request was received correctly. Use <a>DescribeClusters</a> to monitor the status of the deletion. The delete operation cannot be canceled or reverted once submitted. For more information about managing clusters, go to <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html">Amazon Redshift Clusters</a> in the <i>Amazon Redshift Cluster Management Guide</i>. If you want to shut down the cluster and retain it for future use, set <i>SkipFinalClusterSnapshot</i> to <code>false</code> and specify a name for <i>FinalClusterSnapshotIdentifier</i>. You can later restore this snapshot to resume using the cluster. If a final cluster snapshot is requested, the status of the cluster will be "final-snapshot" while the snapshot is being taken, then it's "deleting" once Amazon Redshift begins deleting the cluster.   For more information about managing clusters, go to <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html">Amazon Redshift Clusters</a> in the <i>Amazon Redshift Cluster Management Guide</i>.

        :param self:
        :param FinalClusterSnapshotRetentionPeriod:  The number of days that a manual snapshot is retained. If the value is -1, the manual snapshot is retained indefinitely. The value must be either -1 or an integer between 1 and 3,653. The default value is -1.<br/>FinalClusterSnapshotIdentifier:  The identifier of the final snapshot that is to be created immediately before deleting the cluster. If this parameter is provided, <i>SkipFinalClusterSnapshot</i> must be <code>false</code>.  Constraints: <ul> <li> Must be 1 to 255 alphanumeric characters. </li> <li> First character must be a letter. </li> <li> Cannot end with a hyphen or contain two consecutive hyphens. </li> </ul><br/>SkipFinalClusterSnapshot:  Determines whether a final snapshot of the cluster is created before Amazon Redshift deletes the cluster. If <code>true</code>, a final cluster snapshot is not created. If <code>false</code>, a final cluster snapshot is created before the cluster is deleted.  <note> The <i>FinalClusterSnapshotIdentifier</i> parameter must be specified if <i>SkipFinalClusterSnapshot</i> is <code>false</code>. </note> Default: <code>false</code> <br/>ClusterIdentifier:  The identifier of the cluster to be deleted. Constraints: <ul> <li> Must contain lowercase characters. </li> <li> Must contain from 1 to 63 alphanumeric characters or hyphens. </li> <li> First character must be a letter. </li> <li> Cannot end with a hyphen or contain two consecutive hyphens. </li> </ul><br/>
        :return: Cluster:  Describes a cluster.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AquaConfiguration</i> The AQUA (Advanced Query Accelerator) configuration of the cluster.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AquaConfiguration</b>: The AQUA (Advanced Query Accelerator) configuration of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalStorageCapacityInMegaBytes</i> The total storage capacity of the cluster in megabytes. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterNamespaceArn</i> The namespace Amazon Resource Name (ARN) of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZoneRelocationStatus</i> Describes the status of the Availability Zone relocation operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResizeInfo</i> Returns the following: <ul> <li> AllowCancelResize: a boolean value indicating if the resize operation can be cancelled. </li> <li> ResizeType: Returns ClassicResize </li> </ul>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ResizeInfo</b>: Returns the following: <ul> <li> AllowCancelResize: a boolean value indicating if the resize operation can be cancelled. </li> <li> ResizeType: Returns ClassicResize </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NextMaintenanceWindowStartTime</i> The date and time in UTC when system maintenance can begin.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExpectedNextSnapshotScheduleTimeStatus</i>  The status of next expected snapshot for clusters having a valid snapshot schedule and backups enabled. Possible values are the following: <ul> <li> OnTrack - The next snapshot is expected to be taken on time.  </li> <li> Pending - The next snapshot is pending to be taken.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExpectedNextSnapshotScheduleTime</i> The date and time when the next snapshot is expected to be taken for clusters with a valid snapshot schedule and backups enabled. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotScheduleState</i> The current state of the cluster snapshot schedule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotScheduleIdentifier</i> A unique identifier for the cluster snapshot schedule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeferredMaintenanceWindows</i> Describes a group of <code>DeferredMaintenanceWindow</code> objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ElasticResizeNumberOfNodeOptions</i> The number of nodes that you can resize the cluster to with the elastic resize method. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaintenanceTrackName</i> The name of the maintenance track for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingActions</i> Cluster operations that are waiting to be started.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IamRoles</i> A list of AWS Identity and Access Management (IAM) roles that can be used by the cluster to access other AWS services.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnhancedVpcRouting</i> An option that specifies whether to create the cluster with enhanced VPC routing enabled. To create a cluster that uses enhanced VPC routing, the cluster must be in a VPC. For more information, see <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html">Enhanced VPC Routing</a> in the Amazon Redshift Cluster Management Guide. If this option is <code>true</code>, enhanced VPC routing is enabled.  Default: false<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The AWS Key Management Service (AWS KMS) key ID of the encryption key used to encrypt data in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The list of tags for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterRevisionNumber</i> The specific revision number of the database in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ElasticIpStatus</i> The status of the elastic IP (EIP) address.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ElasticIpStatus</b>: The status of the elastic IP (EIP) address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterNodes</i> The nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterPublicKey</i> The public key for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterSnapshotCopyStatus</i> A value that returns the destination region and retention period that are configured for cross-region snapshot copy.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ClusterSnapshotCopyStatus</b>: A value that returns the destination region and retention period that are configured for cross-region snapshot copy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HsmStatus</i> A value that reports whether the Amazon Redshift cluster has finished applying any hardware security module (HSM) settings changes specified in a modify cluster command. Values: active, applying&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>HsmStatus</b>: A value that reports whether the Amazon Redshift cluster has finished applying any hardware security module (HSM) settings changes specified in a modify cluster command. Values: active, applying<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataTransferProgress</i> <p/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DataTransferProgress</b>: <p/><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RestoreStatus</i> A value that describes the status of a cluster restore action. This parameter returns null if the cluster was not created by restoring a snapshot.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RestoreStatus</b>: A value that describes the status of a cluster restore action. This parameter returns null if the cluster was not created by restoring a snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Encrypted</i> A boolean value that, if <code>true</code>, indicates that data in the cluster is encrypted at rest.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PubliclyAccessible</i> A boolean value that, if <code>true</code>, indicates that the cluster can be accessed from a public network.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberOfNodes</i> The number of compute nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowVersionUpgrade</i> A boolean value that, if <code>true</code>, indicates that major version upgrades will be applied automatically to the cluster during the maintenance window. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterVersion</i> The version ID of the Amazon Redshift engine that is running on the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingModifiedValues</i> A value that, if present, indicates that changes to the cluster are pending. Specific pending changes are identified by subelements.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingModifiedValues</b>: A value that, if present, indicates that changes to the cluster are pending. Specific pending changes are identified by subelements.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i> The weekly time range, in Universal Coordinated Time (UTC), during which system maintenance can occur.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZone</i> The name of the Availability Zone in which the cluster is located.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The identifier of the VPC the cluster is in, if the cluster is in a VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterSubnetGroupName</i> The name of the subnet group that is associated with the cluster. This parameter is valid only when the cluster is in a VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterParameterGroups</i> The list of cluster parameter groups that are associated with this cluster. Each parameter group in the list is returned with its status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcSecurityGroups</i> A list of Amazon Virtual Private Cloud (Amazon VPC) security groups that are associated with the cluster. This parameter is returned only if the cluster is in a VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterSecurityGroups</i> A list of cluster security group that are associated with the cluster. Each security group is represented by an element that contains <code>ClusterSecurityGroup.Name</code> and <code>ClusterSecurityGroup.Status</code> subelements.  Cluster security groups are used when the cluster is not created in an Amazon Virtual Private Cloud (VPC). Clusters that are created in a VPC use VPC security groups, which are listed by the <b>VpcSecurityGroups</b> parameter. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ManualSnapshotRetentionPeriod</i> The default number of days to retain a manual snapshot. If the value is -1, the snapshot is retained indefinitely. This setting doesn't change the retention period of existing snapshots. The value must be either -1 or an integer between 1 and 3,653.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomatedSnapshotRetentionPeriod</i> The number of days that automatic cluster snapshots are retained.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterCreateTime</i> The date and time that the cluster was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i> The connection endpoint.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Endpoint</b>: The connection endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBName</i> The name of the initial database that was created when the cluster was created. This same name is returned for the life of the cluster. If an initial database was not specified, a database named <code>dev</code>dev was created by default. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUsername</i> The master user name for the cluster. This name is used to connect to the database that is specified in the <b>DBName</b> parameter. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ModifyStatus</i> The status of a modify operation, if any, initiated for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterAvailabilityStatus</i> The availability status of the cluster for queries. Possible values are the following: <ul> <li> Available - The cluster is available for queries.  </li> <li> Unavailable - The cluster is not available for queries. </li> <li> Maintenance - The cluster is intermittently available for queries due to maintenance activities. </li> <li> Modifying - The cluster is intermittently available for queries due to changes that modify the cluster. </li> <li> Failed - The cluster failed and is not available for queries. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterStatus</i>  The current state of the cluster. Possible values are the following: <ul> <li>  <code>available</code>  </li> <li>  <code>available, prep-for-resize</code>  </li> <li>  <code>available, resize-cleanup</code>  </li> <li>  <code>cancelling-resize</code>  </li> <li>  <code>creating</code>  </li> <li>  <code>deleting</code>  </li> <li>  <code>final-snapshot</code>  </li> <li>  <code>hardware-failure</code>  </li> <li>  <code>incompatible-hsm</code>  </li> <li>  <code>incompatible-network</code>  </li> <li>  <code>incompatible-parameters</code>  </li> <li>  <code>incompatible-restore</code>  </li> <li>  <code>modifying</code>  </li> <li>  <code>paused</code>  </li> <li>  <code>rebooting</code>  </li> <li>  <code>renaming</code>  </li> <li>  <code>resizing</code>  </li> <li>  <code>rotating-keys</code>  </li> <li>  <code>storage-full</code>  </li> <li>  <code>updating-hsm</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NodeType</i> The node type for the nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterIdentifier</i> The unique identifier of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcEndpoints</i> Describes a connection endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> The port that the database engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Address</i> The DNS address of the Cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EncryptionType</i> The encryption type for a cluster. Possible values are: KMS and None. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaintenanceTrackName</i> The name of the maintenance track that the cluster will change to during the next maintenance window.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EnhancedVpcRouting</i> An option that specifies whether to create the cluster with enhanced VPC routing enabled. To create a cluster that uses enhanced VPC routing, the cluster must be in a VPC. For more information, see <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html">Enhanced VPC Routing</a> in the Amazon Redshift Cluster Management Guide. If this option is <code>true</code>, enhanced VPC routing is enabled.  Default: false<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PubliclyAccessible</i> The pending or in-progress change of the ability to connect to the cluster from the public network.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterIdentifier</i> The pending or in-progress change of the new identifier for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomatedSnapshotRetentionPeriod</i> The pending or in-progress change of the automated snapshot retention period.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterVersion</i> The pending or in-progress change of the service version.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterType</i> The pending or in-progress change of the cluster type.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberOfNodes</i> The pending or in-progress change of the number of nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NodeType</i> The pending or in-progress change of the cluster's node type.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUserPassword</i> The pending or in-progress change of the master user password for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EstimatedTimeToCompletionInSeconds</i> The estimate of the time remaining before the restore will complete. Returns 0 for a completed restore. This field is only updated when you restore to DC2 and DS2 node types. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ElapsedTimeInSeconds</i> The amount of time an in-progress restore has been running, or the amount of time it took a completed restore to finish. This field is only updated when you restore to DC2 and DS2 node types. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ProgressInMegaBytes</i> The number of megabytes that have been transferred from snapshot storage. This field is only updated when you restore to DC2 and DS2 node types. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotSizeInMegaBytes</i> The size of the set of snapshot data used to restore the cluster. This field is only updated when you restore to DC2 and DS2 node types. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CurrentRestoreRateInMegaBytesPerSecond</i> The number of megabytes per second being transferred from the backup storage. Returns the average rate for a completed backup. This field is only updated when you restore to DC2 and DS2 node types. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the restore action. Returns starting, restoring, completed, or failed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ElapsedTimeInSeconds</i> Describes the number of seconds that have elapsed during the data transfer.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EstimatedTimeToCompletionInSeconds</i> Describes the estimated number of seconds remaining to complete the transfer.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DataTransferredInMegaBytes</i> Describes the total amount of data that has been transfered in MB's.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalDataInMegaBytes</i> Describes the total amount of data to be transfered in megabytes.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CurrentRateInMegaBytesPerSecond</i> Describes the data transfer rate in MB's per second.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Describes the status of the cluster. While the transfer is in progress the status is <code>transferringdata</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Reports whether the Amazon Redshift cluster has finished applying any HSM settings changes specified in a modify cluster command. Values: active, applying<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HsmConfigurationIdentifier</i> Specifies the name of the HSM configuration that contains the information the Amazon Redshift cluster can use to retrieve and store keys in an HSM.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HsmClientCertificateIdentifier</i> Specifies the name of the HSM client certificate the Amazon Redshift cluster uses to retrieve the data encryption keys stored in an HSM.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotCopyGrantName</i> The name of the snapshot copy grant.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ManualSnapshotRetentionPeriod</i> The number of days that automated snapshots are retained in the destination region after they are copied from a source region. If the value is -1, the manual snapshot is retained indefinitely.  The value must be either -1 or an integer between 1 and 3,653.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RetentionPeriod</i> The number of days that automated snapshots are retained in the destination region after they are copied from a source region.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DestinationRegion</i> The destination region that snapshots are automatically copied to when cross-region snapshot copy is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the elastic IP (EIP) address.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ElasticIp</i> The elastic IP (EIP) address for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowCancelResize</i> A boolean value indicating if the resize operation can be cancelled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ResizeType</i> Returns the value <code>ClassicResize</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AquaConfigurationStatus</i> The value represents how the cluster is configured to use AQUA. Possible values include the following. <ul> <li> enabled - Use AQUA if it is available for the current AWS Region and Amazon Redshift node type. </li> <li> disabled - Don't use AQUA.  </li> <li> auto - Amazon Redshift determines whether to use AQUA. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AquaStatus</i> The value indicates the status of AQUA on the cluster. Possible values include the following. <ul> <li> enabled - AQUA is enabled. </li> <li> disabled - AQUA is not enabled.  </li> <li> applying - AQUA status is being applied.  </li> </ul><br/>        """
        pass

    def delete_cluster_parameter_group(self, ParameterGroupName: str):
        r"""Deletes a specified Amazon Redshift parameter group. <note> You cannot delete a parameter group if it is associated with a cluster. </note>

        :param self:
        :param ParameterGroupName:  The name of the parameter group to be deleted. Constraints: <ul> <li> Must be the name of an existing cluster parameter group. </li> <li> Cannot delete a default cluster parameter group. </li> </ul><br/>
        :return:         """
        pass

    def delete_cluster_security_group(self, ClusterSecurityGroupName: str):
        r"""Deletes an Amazon Redshift security group. <note> You cannot delete a security group that is associated with any clusters. You cannot delete the default security group. </note>  For information about managing security groups, go to <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-security-groups.html">Amazon Redshift Cluster Security Groups</a> in the <i>Amazon Redshift Cluster Management Guide</i>.

        :param self:
        :param ClusterSecurityGroupName:  The name of the cluster security group to be deleted.<br/>
        :return:         """
        pass

    def delete_cluster_snapshot(self, SnapshotIdentifier: str, SnapshotClusterIdentifier: str=None) -> DeleteClusterSnapshotResult:
        r"""Deletes the specified manual snapshot. The snapshot must be in the <code>available</code> state, with no other users authorized to access the snapshot.  Unlike automated snapshots, manual snapshots are retained even after you delete your cluster. Amazon Redshift does not delete your manual snapshots. You must delete manual snapshot explicitly to avoid getting charged. If other accounts are authorized to access the snapshot, you must revoke all of the authorizations before you can delete the snapshot.

        :param self:
        :param SnapshotClusterIdentifier:  The unique identifier of the cluster the snapshot was created from. This parameter is required if your IAM user has a policy containing a snapshot resource element that specifies anything other than * for the cluster name. Constraints: Must be the name of valid cluster.<br/>SnapshotIdentifier:  The unique identifier of the manual snapshot to be deleted. Constraints: Must be the name of an existing snapshot that is in the <code>available</code>, <code>failed</code>, or <code>cancelled</code> state.<br/>
        :return: Snapshot:  Describes a snapshot.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotRetentionStartTime</i> A timestamp representing the start of the retention period for the snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ManualSnapshotRemainingDays</i> The number of days until a manual snapshot will pass its retention period.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ManualSnapshotRetentionPeriod</i> The number of days that a manual snapshot is retained. If the value is -1, the manual snapshot is retained indefinitely.  The value must be either -1 or an integer between 1 and 3,653.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaintenanceTrackName</i> The name of the maintenance track for the snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnhancedVpcRouting</i> An option that specifies whether to create the cluster with enhanced VPC routing enabled. To create a cluster that uses enhanced VPC routing, the cluster must be in a VPC. For more information, see <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html">Enhanced VPC Routing</a> in the Amazon Redshift Cluster Management Guide. If this option is <code>true</code>, enhanced VPC routing is enabled.  Default: false<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RestorableNodeTypes</i> The list of node types that this cluster snapshot is able to restore into.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The list of tags for the cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceRegion</i> The source region from which the snapshot was copied.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ElapsedTimeInSeconds</i> The amount of time an in-progress snapshot backup has been running, or the amount of time it took a completed backup to finish.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EstimatedSecondsToCompletion</i> The estimate of the time remaining before the snapshot backup will complete. Returns <code>0</code> for a completed backup. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CurrentBackupRateInMegaBytesPerSecond</i> The number of megabytes per second being transferred to the snapshot backup. Returns <code>0</code> for a completed backup. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupProgressInMegaBytes</i> The number of megabytes that have been transferred to the snapshot backup.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActualIncrementalBackupSizeInMegaBytes</i> The size of the incremental backup.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalBackupSizeInMegaBytes</i> The size of the complete set of backup data that would be used to restore the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerAccount</i> For manual snapshots, the AWS customer account used to create or copy the snapshot. For automatic snapshots, the owner of the cluster. The owner can perform all snapshot actions, such as sharing a manual snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccountsWithRestoreAccess</i> A list of the AWS customer accounts authorized to restore the snapshot. Returns <code>null</code> if no accounts are authorized. Visible only to the snapshot owner. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EncryptedWithHSM</i> A boolean that indicates whether the snapshot data is encrypted using the HSM keys of the source cluster. <code>true</code> indicates that the data is encrypted using HSM keys.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The AWS Key Management Service (KMS) key ID of the encryption key that was used to encrypt data in the cluster from which the snapshot was taken.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Encrypted</i> If <code>true</code>, the data in the snapshot is encrypted at rest.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The VPC identifier of the cluster if the snapshot is from a cluster in a VPC. Otherwise, this field is not in the output.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBName</i> The name of the database that was created when the cluster was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberOfNodes</i> The number of nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NodeType</i> The node type of the nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotType</i> The snapshot type. Snapshots created using <a>CreateClusterSnapshot</a> and <a>CopyClusterSnapshot</a> are of type "manual". <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineFullVersion</i> The cluster version of the cluster used to create the snapshot. For example, 1.0.15503. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterVersion</i> The version ID of the Amazon Redshift engine that is running on the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUsername</i> The master user name for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterCreateTime</i> The time (UTC) when the cluster was originally created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZone</i> The Availability Zone in which the cluster was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> The port that the cluster is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The snapshot status. The value of the status depends on the API operation used:  <ul> <li>  <a>CreateClusterSnapshot</a> and <a>CopyClusterSnapshot</a> returns status as "creating".  </li> <li>  <a>DescribeClusterSnapshots</a> returns status as "creating", "available", "final snapshot", or "failed". </li> <li>  <a>DeleteClusterSnapshot</a> returns status as "deleted". </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotCreateTime</i> The time (in UTC format) when Amazon Redshift began the snapshot. A snapshot contains a copy of the cluster data as of this exact time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterIdentifier</i> The identifier of the cluster for which the snapshot was taken.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotIdentifier</i> The snapshot identifier that is provided in the request.<br/>        """
        pass

    def delete_cluster_subnet_group(self, ClusterSubnetGroupName: str):
        r"""Deletes the specified cluster subnet group.

        :param self:
        :param ClusterSubnetGroupName:  The name of the cluster subnet group name to be deleted.<br/>
        :return:         """
        pass

    def delete_endpoint_access(self, EndpointName: str) -> EndpointAccess:
        r"""Deletes a Redshift-managed VPC endpoint.

        :param self:
        :param EndpointName:  The Redshift-managed VPC endpoint to delete.<br/>
        :return: VpcEndpoint:  The connection endpoint for connecting to an Amazon Redshift cluster through the proxy.:<br/>VpcSecurityGroups:  The security groups associated with the endpoint.<br/>Address:  The DNS address of the endpoint.<br/>Port:  The port number on which the cluster accepts incoming connections.<br/>EndpointCreateTime:  The time (UTC) that the endpoint was created.<br/>EndpointName:  The name of the endpoint.<br/>EndpointStatus:  The status of the endpoint.<br/>SubnetGroupName:  The subnet group name where Amazon Redshift chooses to deploy the endpoint.<br/>ResourceOwner:  The AWS account ID of the owner of the cluster.<br/>ClusterIdentifier:  The cluster identifier of the cluster associated with the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkInterfaces</i> One or more network interfaces of the endpoint. Also known as an interface endpoint. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The VPC identifier that the endpoint is associated. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcEndpointId</i> The connection endpoint ID for connecting an Amazon Redshift cluster through the proxy.<br/>        """
        pass

    def delete_event_subscription(self, SubscriptionName: str):
        r"""Deletes an Amazon Redshift event notification subscription.

        :param self:
        :param SubscriptionName:  The name of the Amazon Redshift event notification subscription to be deleted.<br/>
        :return:         """
        pass

    def delete_hsm_client_certificate(self, HsmClientCertificateIdentifier: str):
        r"""Deletes the specified HSM client certificate.

        :param self:
        :param HsmClientCertificateIdentifier:  The identifier of the HSM client certificate to be deleted.<br/>
        :return:         """
        pass

    def delete_hsm_configuration(self, HsmConfigurationIdentifier: str):
        r"""Deletes the specified Amazon Redshift HSM configuration.

        :param self:
        :param HsmConfigurationIdentifier:  The identifier of the Amazon Redshift HSM configuration to be deleted.<br/>
        :return:         """
        pass

    def delete_partner(self, PartnerName: str, DatabaseName: str, ClusterIdentifier: str, AccountId: str) -> PartnerIntegrationOutputMessage:
        r"""Deletes a partner integration from a cluster. Data can still flow to the cluster until the integration is deleted at the partner's website.

        :param self:
        :param PartnerName:  The name of the partner that is authorized to send data.<br/>DatabaseName:  The name of the database that receives data from the partner.<br/>ClusterIdentifier:  The cluster identifier of the cluster that receives data from the partner.<br/>AccountId:  The AWS account ID that owns the cluster.<br/>
        :return: PartnerName:  The name of the partner that is authorized to send data.<br/>DatabaseName:  The name of the database that receives data from the partner.<br/>        """
        pass

    def delete_scheduled_action(self, ScheduledActionName: str):
        r"""Deletes a scheduled action. 

        :param self:
        :param ScheduledActionName:  The name of the scheduled action to delete. <br/>
        :return:         """
        pass

    def delete_snapshot_copy_grant(self, SnapshotCopyGrantName: str):
        r"""Deletes the specified snapshot copy grant.

        :param self:
        :param SnapshotCopyGrantName:  The name of the snapshot copy grant to delete.<br/>
        :return:         """
        pass

    def delete_snapshot_schedule(self, ScheduleIdentifier: str):
        r"""Deletes a snapshot schedule.

        :param self:
        :param ScheduleIdentifier:  A unique identifier of the snapshot schedule to delete.<br/>
        :return:         """
        pass

    def delete_tags(self, TagKeys: List[String], ResourceName: str):
        r"""Deletes tags from a resource. You must provide the ARN of the resource from which you want to delete the tag or tags.

        :param self:
        :param TagKeys:  The tag key that you want to delete.<br/>ResourceName:  The Amazon Resource Name (ARN) from which you want to remove the tag or tags. For example, <code>arn:aws:redshift:us-east-2:123456789:cluster:t1</code>. <br/>
        :return:         """
        pass

    def delete_usage_limit(self, UsageLimitId: str):
        r"""Deletes a usage limit from a cluster.

        :param self:
        :param UsageLimitId:  The identifier of the usage limit to delete.<br/>
        :return:         """
        pass

    def describe_account_attributes(self, AttributeNames: List[String]=None) -> AccountAttributeList:
        r"""Returns a list of attributes attached to an account

        :param self:
        :param AttributeNames:  A list of attribute names.<br/>
        :return: AccountAttributes:  A list of attributes assigned to an account.<br/>        """
        pass

    def describe_cluster_db_revisions(self, ClusterIdentifier: str=None, MaxRecords: int=None, Marker: str=None) -> ClusterDbRevisionsMessage:
        r"""Returns an array of <code>ClusterDbRevision</code> objects.

        :param self:
        :param Marker:  An optional parameter that specifies the starting point for returning a set of response records. When the results of a <code>DescribeClusterDbRevisions</code> request exceed the value specified in <code>MaxRecords</code>, Amazon Redshift returns a value in the <code>marker</code> field of the response. You can retrieve the next set of response records by providing the returned <code>marker</code> value in the <code>marker</code> parameter and retrying the request.  Constraints: You can specify either the <code>ClusterIdentifier</code> parameter, or the <code>marker</code> parameter, but not both.<br/>MaxRecords:  The maximum number of response records to return in each call. If the number of remaining response records exceeds the specified MaxRecords value, a value is returned in the <code>marker</code> field of the response. You can retrieve the next set of response records by providing the returned <code>marker</code> value in the <code>marker</code> parameter and retrying the request.  Default: 100 Constraints: minimum 20, maximum 100.<br/>ClusterIdentifier:  A unique identifier for a cluster whose <code>ClusterDbRevisions</code> you are requesting. This parameter is case sensitive. All clusters defined for an account are returned by default.<br/>
        :return: ClusterDbRevisions:  A list of revisions.<br/>Marker:  A string representing the starting point for the next set of revisions. If a value is returned in a response, you can retrieve the next set of revisions by providing the value in the <code>marker</code> parameter and retrying the command. If the <code>marker</code> field is empty, all revisions have already been returned.<br/>        """
        pass

    def describe_cluster_parameter_groups(self, ParameterGroupName: str=None, MaxRecords: int=None, Marker: str=None, TagKeys: List[String]=None, TagValues: List[String]=None) -> ClusterParameterGroupsMessage:
        r"""Returns a list of Amazon Redshift parameter groups, including parameter groups you created and the default parameter group. For each parameter group, the response includes the parameter group name, description, and parameter group family name. You can optionally specify a name to retrieve the description of a specific parameter group.  For more information about parameters and parameter groups, go to <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-parameter-groups.html">Amazon Redshift Parameter Groups</a> in the <i>Amazon Redshift Cluster Management Guide</i>. If you specify both tag keys and tag values in the same request, Amazon Redshift returns all parameter groups that match any combination of the specified keys and values. For example, if you have <code>owner</code> and <code>environment</code> for tag keys, and <code>admin</code> and <code>test</code> for tag values, all parameter groups that have any combination of those values are returned. If both tag keys and values are omitted from the request, parameter groups are returned regardless of whether they have tag keys or values associated with them.

        :param self:
        :param TagValues:  A tag value or values for which you want to return all matching cluster parameter groups that are associated with the specified tag value or values. For example, suppose that you have parameter groups that are tagged with values called <code>admin</code> and <code>test</code>. If you specify both of these tag values in the request, Amazon Redshift returns a response with the parameter groups that have either or both of these tag values associated with them.<br/>TagKeys:  A tag key or keys for which you want to return all matching cluster parameter groups that are associated with the specified key or keys. For example, suppose that you have parameter groups that are tagged with keys called <code>owner</code> and <code>environment</code>. If you specify both of these tag keys in the request, Amazon Redshift returns a response with the parameter groups that have either or both of these tag keys associated with them.<br/>Marker:  An optional parameter that specifies the starting point to return a set of response records. When the results of a <a>DescribeClusterParameterGroups</a> request exceed the value specified in <code>MaxRecords</code>, AWS returns a value in the <code>Marker</code> field of the response. You can retrieve the next set of response records by providing the returned marker value in the <code>Marker</code> parameter and retrying the request. <br/>MaxRecords:  The maximum number of response records to return in each call. If the number of remaining response records exceeds the specified <code>MaxRecords</code> value, a value is returned in a <code>marker</code> field of the response. You can retrieve the next set of records by retrying the command with the returned marker value.  Default: <code>100</code>  Constraints: minimum 20, maximum 100.<br/>ParameterGroupName:  The name of a specific parameter group for which to return details. By default, details about all parameter groups and the default parameter group are returned.<br/>
        :return: ParameterGroups:  A list of <a>ClusterParameterGroup</a> instances. Each instance describes one cluster parameter group. <br/>Marker:  A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned marker value in the <code>Marker</code> parameter and retrying the command. If the <code>Marker</code> field is empty, all response records have been retrieved for the request. <br/>        """
        pass

    def describe_cluster_parameters(self, ParameterGroupName: str, Source: str=None, MaxRecords: int=None, Marker: str=None) -> ClusterParameterGroupDetails:
        r"""Returns a detailed list of parameters contained within the specified Amazon Redshift parameter group. For each parameter the response includes information such as parameter name, description, data type, value, whether the parameter value is modifiable, and so on. You can specify <i>source</i> filter to retrieve parameters of only specific type. For example, to retrieve parameters that were modified by a user action such as from <a>ModifyClusterParameterGroup</a>, you can specify <i>source</i> equal to <i>user</i>.  For more information about parameters and parameter groups, go to <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-parameter-groups.html">Amazon Redshift Parameter Groups</a> in the <i>Amazon Redshift Cluster Management Guide</i>.

        :param self:
        :param Marker:  An optional parameter that specifies the starting point to return a set of response records. When the results of a <a>DescribeClusterParameters</a> request exceed the value specified in <code>MaxRecords</code>, AWS returns a value in the <code>Marker</code> field of the response. You can retrieve the next set of response records by providing the returned marker value in the <code>Marker</code> parameter and retrying the request. <br/>MaxRecords:  The maximum number of response records to return in each call. If the number of remaining response records exceeds the specified <code>MaxRecords</code> value, a value is returned in a <code>marker</code> field of the response. You can retrieve the next set of records by retrying the command with the returned marker value.  Default: <code>100</code>  Constraints: minimum 20, maximum 100.<br/>Source:  The parameter types to return. Specify <code>user</code> to show parameters that are different form the default. Similarly, specify <code>engine-default</code> to show parameters that are the same as the default parameter group.  Default: All parameter types returned. Valid Values: <code>user</code> | <code>engine-default</code> <br/>ParameterGroupName:  The name of a cluster parameter group for which to return details.<br/>
        :return: Marker:  A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned marker value in the <code>Marker</code> parameter and retrying the command. If the <code>Marker</code> field is empty, all response records have been retrieved for the request. <br/>Parameters:  A list of <a>Parameter</a> instances. Each instance lists the parameters of one cluster parameter group. <br/>        """
        pass

    def describe_cluster_security_groups(self, ClusterSecurityGroupName: str=None, MaxRecords: int=None, Marker: str=None, TagKeys: List[String]=None, TagValues: List[String]=None) -> ClusterSecurityGroupMessage:
        r"""Returns information about Amazon Redshift security groups. If the name of a security group is specified, the response will contain only information about only that security group.  For information about managing security groups, go to <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-security-groups.html">Amazon Redshift Cluster Security Groups</a> in the <i>Amazon Redshift Cluster Management Guide</i>. If you specify both tag keys and tag values in the same request, Amazon Redshift returns all security groups that match any combination of the specified keys and values. For example, if you have <code>owner</code> and <code>environment</code> for tag keys, and <code>admin</code> and <code>test</code> for tag values, all security groups that have any combination of those values are returned. If both tag keys and values are omitted from the request, security groups are returned regardless of whether they have tag keys or values associated with them.

        :param self:
        :param TagValues:  A tag value or values for which you want to return all matching cluster security groups that are associated with the specified tag value or values. For example, suppose that you have security groups that are tagged with values called <code>admin</code> and <code>test</code>. If you specify both of these tag values in the request, Amazon Redshift returns a response with the security groups that have either or both of these tag values associated with them.<br/>TagKeys:  A tag key or keys for which you want to return all matching cluster security groups that are associated with the specified key or keys. For example, suppose that you have security groups that are tagged with keys called <code>owner</code> and <code>environment</code>. If you specify both of these tag keys in the request, Amazon Redshift returns a response with the security groups that have either or both of these tag keys associated with them.<br/>Marker:  An optional parameter that specifies the starting point to return a set of response records. When the results of a <a>DescribeClusterSecurityGroups</a> request exceed the value specified in <code>MaxRecords</code>, AWS returns a value in the <code>Marker</code> field of the response. You can retrieve the next set of response records by providing the returned marker value in the <code>Marker</code> parameter and retrying the request.  Constraints: You can specify either the <b>ClusterSecurityGroupName</b> parameter or the <b>Marker</b> parameter, but not both. <br/>MaxRecords:  The maximum number of response records to return in each call. If the number of remaining response records exceeds the specified <code>MaxRecords</code> value, a value is returned in a <code>marker</code> field of the response. You can retrieve the next set of records by retrying the command with the returned marker value.  Default: <code>100</code>  Constraints: minimum 20, maximum 100.<br/>ClusterSecurityGroupName:  The name of a cluster security group for which you are requesting details. You can specify either the <b>Marker</b> parameter or a <b>ClusterSecurityGroupName</b> parameter, but not both.   Example: <code>securitygroup1</code> <br/>
        :return: ClusterSecurityGroups:  A list of <a>ClusterSecurityGroup</a> instances. <br/>Marker:  A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned marker value in the <code>Marker</code> parameter and retrying the command. If the <code>Marker</code> field is empty, all response records have been retrieved for the request. <br/>        """
        pass

    def describe_cluster_snapshots(self, ClusterIdentifier: str=None, SnapshotIdentifier: str=None, SnapshotType: str=None, StartTime: TStamp=None, EndTime: TStamp=None, MaxRecords: int=None, Marker: str=None, OwnerAccount: str=None, TagKeys: List[String]=None, TagValues: List[String]=None, ClusterExists: BooleanOptional=None, SortingEntities: List[SnapshotSortingEntity]=None) -> SnapshotMessage:
        r"""Returns one or more snapshot objects, which contain metadata about your cluster snapshots. By default, this operation returns information about all snapshots of all clusters that are owned by you AWS customer account. No information is returned for snapshots owned by inactive AWS customer accounts. If you specify both tag keys and tag values in the same request, Amazon Redshift returns all snapshots that match any combination of the specified keys and values. For example, if you have <code>owner</code> and <code>environment</code> for tag keys, and <code>admin</code> and <code>test</code> for tag values, all snapshots that have any combination of those values are returned. Only snapshots that you own are returned in the response; shared snapshots are not returned with the tag key and tag value request parameters. If both tag keys and values are omitted from the request, snapshots are returned regardless of whether they have tag keys or values associated with them.

        :param self:
        :param SortingEntities:  <p/><br/>ClusterExists:  A value that indicates whether to return snapshots only for an existing cluster. You can perform table-level restore only by using a snapshot of an existing cluster, that is, a cluster that has not been deleted. Values for this parameter work as follows:  <ul> <li> If <code>ClusterExists</code> is set to <code>true</code>, <code>ClusterIdentifier</code> is required. </li> <li> If <code>ClusterExists</code> is set to <code>false</code> and <code>ClusterIdentifier</code> isn't specified, all snapshots associated with deleted clusters (orphaned snapshots) are returned.  </li> <li> If <code>ClusterExists</code> is set to <code>false</code> and <code>ClusterIdentifier</code> is specified for a deleted cluster, snapshots associated with that cluster are returned. </li> <li> If <code>ClusterExists</code> is set to <code>false</code> and <code>ClusterIdentifier</code> is specified for an existing cluster, no snapshots are returned.  </li> </ul><br/>TagValues:  A tag value or values for which you want to return all matching cluster snapshots that are associated with the specified tag value or values. For example, suppose that you have snapshots that are tagged with values called <code>admin</code> and <code>test</code>. If you specify both of these tag values in the request, Amazon Redshift returns a response with the snapshots that have either or both of these tag values associated with them.<br/>TagKeys:  A tag key or keys for which you want to return all matching cluster snapshots that are associated with the specified key or keys. For example, suppose that you have snapshots that are tagged with keys called <code>owner</code> and <code>environment</code>. If you specify both of these tag keys in the request, Amazon Redshift returns a response with the snapshots that have either or both of these tag keys associated with them.<br/>OwnerAccount:  The AWS customer account used to create or copy the snapshot. Use this field to filter the results to snapshots owned by a particular account. To describe snapshots you own, either specify your AWS customer account, or do not specify the parameter.<br/>Marker:  An optional parameter that specifies the starting point to return a set of response records. When the results of a <a>DescribeClusterSnapshots</a> request exceed the value specified in <code>MaxRecords</code>, AWS returns a value in the <code>Marker</code> field of the response. You can retrieve the next set of response records by providing the returned marker value in the <code>Marker</code> parameter and retrying the request. <br/>MaxRecords:  The maximum number of response records to return in each call. If the number of remaining response records exceeds the specified <code>MaxRecords</code> value, a value is returned in a <code>marker</code> field of the response. You can retrieve the next set of records by retrying the command with the returned marker value.  Default: <code>100</code>  Constraints: minimum 20, maximum 100.<br/>EndTime:  A time value that requests only snapshots created at or before the specified time. The time value is specified in ISO 8601 format. For more information about ISO 8601, go to the <a href="http://en.wikipedia.org/wiki/ISO_8601">ISO8601 Wikipedia page.</a>  Example: <code>2012-07-16T18:00:00Z</code> <br/>StartTime:  A value that requests only snapshots created at or after the specified time. The time value is specified in ISO 8601 format. For more information about ISO 8601, go to the <a href="http://en.wikipedia.org/wiki/ISO_8601">ISO8601 Wikipedia page.</a>  Example: <code>2012-07-16T18:00:00Z</code> <br/>SnapshotType:  The type of snapshots for which you are requesting information. By default, snapshots of all types are returned. Valid Values: <code>automated</code> | <code>manual</code> <br/>SnapshotIdentifier:  The snapshot identifier of the snapshot about which to return information.<br/>ClusterIdentifier:  The identifier of the cluster which generated the requested snapshots.<br/>
        :return: Snapshots:  A list of <a>Snapshot</a> instances. <br/>Marker:  A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned marker value in the <code>Marker</code> parameter and retrying the command. If the <code>Marker</code> field is empty, all response records have been retrieved for the request. <br/>        """
        pass

    def describe_cluster_subnet_groups(self, ClusterSubnetGroupName: str=None, MaxRecords: int=None, Marker: str=None, TagKeys: List[String]=None, TagValues: List[String]=None) -> ClusterSubnetGroupMessage:
        r"""Returns one or more cluster subnet group objects, which contain metadata about your cluster subnet groups. By default, this operation returns information about all cluster subnet groups that are defined in you AWS account. If you specify both tag keys and tag values in the same request, Amazon Redshift returns all subnet groups that match any combination of the specified keys and values. For example, if you have <code>owner</code> and <code>environment</code> for tag keys, and <code>admin</code> and <code>test</code> for tag values, all subnet groups that have any combination of those values are returned. If both tag keys and values are omitted from the request, subnet groups are returned regardless of whether they have tag keys or values associated with them.

        :param self:
        :param TagValues:  A tag value or values for which you want to return all matching cluster subnet groups that are associated with the specified tag value or values. For example, suppose that you have subnet groups that are tagged with values called <code>admin</code> and <code>test</code>. If you specify both of these tag values in the request, Amazon Redshift returns a response with the subnet groups that have either or both of these tag values associated with them.<br/>TagKeys:  A tag key or keys for which you want to return all matching cluster subnet groups that are associated with the specified key or keys. For example, suppose that you have subnet groups that are tagged with keys called <code>owner</code> and <code>environment</code>. If you specify both of these tag keys in the request, Amazon Redshift returns a response with the subnet groups that have either or both of these tag keys associated with them.<br/>Marker:  An optional parameter that specifies the starting point to return a set of response records. When the results of a <a>DescribeClusterSubnetGroups</a> request exceed the value specified in <code>MaxRecords</code>, AWS returns a value in the <code>Marker</code> field of the response. You can retrieve the next set of response records by providing the returned marker value in the <code>Marker</code> parameter and retrying the request. <br/>MaxRecords:  The maximum number of response records to return in each call. If the number of remaining response records exceeds the specified <code>MaxRecords</code> value, a value is returned in a <code>marker</code> field of the response. You can retrieve the next set of records by retrying the command with the returned marker value.  Default: <code>100</code>  Constraints: minimum 20, maximum 100.<br/>ClusterSubnetGroupName:  The name of the cluster subnet group for which information is requested.<br/>
        :return: ClusterSubnetGroups:  A list of <a>ClusterSubnetGroup</a> instances. <br/>Marker:  A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned marker value in the <code>Marker</code> parameter and retrying the command. If the <code>Marker</code> field is empty, all response records have been retrieved for the request. <br/>        """
        pass

    def describe_cluster_tracks(self, MaintenanceTrackName: str=None, MaxRecords: int=None, Marker: str=None) -> TrackListMessage:
        r"""Returns a list of all the available maintenance tracks.

        :param self:
        :param Marker:  An optional parameter that specifies the starting point to return a set of response records. When the results of a <code>DescribeClusterTracks</code> request exceed the value specified in <code>MaxRecords</code>, Amazon Redshift returns a value in the <code>Marker</code> field of the response. You can retrieve the next set of response records by providing the returned marker value in the <code>Marker</code> parameter and retrying the request. <br/>MaxRecords:  An integer value for the maximum number of maintenance tracks to return.<br/>MaintenanceTrackName:  The name of the maintenance track. <br/>
        :return: Marker:  The starting point to return a set of response tracklist records. You can retrieve the next set of response records by providing the returned marker value in the <code>Marker</code> parameter and retrying the request.<br/>MaintenanceTracks:  A list of maintenance tracks output by the <code>DescribeClusterTracks</code> operation. <br/>        """
        pass

    def describe_cluster_versions(self, ClusterVersion: str=None, ClusterParameterGroupFamily: str=None, MaxRecords: int=None, Marker: str=None) -> ClusterVersionsMessage:
        r"""Returns descriptions of the available Amazon Redshift cluster versions. You can call this operation even before creating any clusters to learn more about the Amazon Redshift versions. For more information about managing clusters, go to <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html">Amazon Redshift Clusters</a> in the <i>Amazon Redshift Cluster Management Guide</i>.

        :param self:
        :param Marker:  An optional parameter that specifies the starting point to return a set of response records. When the results of a <a>DescribeClusterVersions</a> request exceed the value specified in <code>MaxRecords</code>, AWS returns a value in the <code>Marker</code> field of the response. You can retrieve the next set of response records by providing the returned marker value in the <code>Marker</code> parameter and retrying the request. <br/>MaxRecords:  The maximum number of response records to return in each call. If the number of remaining response records exceeds the specified <code>MaxRecords</code> value, a value is returned in a <code>marker</code> field of the response. You can retrieve the next set of records by retrying the command with the returned marker value.  Default: <code>100</code>  Constraints: minimum 20, maximum 100.<br/>ClusterParameterGroupFamily:  The name of a specific cluster parameter group family to return details for. Constraints: <ul> <li> Must be 1 to 255 alphanumeric characters </li> <li> First character must be a letter </li> <li> Cannot end with a hyphen or contain two consecutive hyphens </li> </ul><br/>ClusterVersion:  The specific cluster version to return. Example: <code>1.0</code> <br/>
        :return: ClusterVersions:  A list of <code>Version</code> elements. <br/>Marker:  A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned marker value in the <code>Marker</code> parameter and retrying the command. If the <code>Marker</code> field is empty, all response records have been retrieved for the request. <br/>        """
        pass

    def describe_clusters(self, ClusterIdentifier: str=None, MaxRecords: int=None, Marker: str=None, TagKeys: List[String]=None, TagValues: List[String]=None) -> ClustersMessage:
        r"""Returns properties of provisioned clusters including general cluster properties, cluster database properties, maintenance and backup properties, and security and access properties. This operation supports pagination. For more information about managing clusters, go to <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html">Amazon Redshift Clusters</a> in the <i>Amazon Redshift Cluster Management Guide</i>. If you specify both tag keys and tag values in the same request, Amazon Redshift returns all clusters that match any combination of the specified keys and values. For example, if you have <code>owner</code> and <code>environment</code> for tag keys, and <code>admin</code> and <code>test</code> for tag values, all clusters that have any combination of those values are returned. If both tag keys and values are omitted from the request, clusters are returned regardless of whether they have tag keys or values associated with them.

        :param self:
        :param TagValues:  A tag value or values for which you want to return all matching clusters that are associated with the specified tag value or values. For example, suppose that you have clusters that are tagged with values called <code>admin</code> and <code>test</code>. If you specify both of these tag values in the request, Amazon Redshift returns a response with the clusters that have either or both of these tag values associated with them.<br/>TagKeys:  A tag key or keys for which you want to return all matching clusters that are associated with the specified key or keys. For example, suppose that you have clusters that are tagged with keys called <code>owner</code> and <code>environment</code>. If you specify both of these tag keys in the request, Amazon Redshift returns a response with the clusters that have either or both of these tag keys associated with them.<br/>Marker:  An optional parameter that specifies the starting point to return a set of response records. When the results of a <a>DescribeClusters</a> request exceed the value specified in <code>MaxRecords</code>, AWS returns a value in the <code>Marker</code> field of the response. You can retrieve the next set of response records by providing the returned marker value in the <code>Marker</code> parameter and retrying the request.  Constraints: You can specify either the <b>ClusterIdentifier</b> parameter or the <b>Marker</b> parameter, but not both. <br/>MaxRecords:  The maximum number of response records to return in each call. If the number of remaining response records exceeds the specified <code>MaxRecords</code> value, a value is returned in a <code>marker</code> field of the response. You can retrieve the next set of records by retrying the command with the returned marker value.  Default: <code>100</code>  Constraints: minimum 20, maximum 100.<br/>ClusterIdentifier:  The unique identifier of a cluster whose properties you are requesting. This parameter is case sensitive. The default is that all clusters defined for an account are returned.<br/>
        :return: Clusters:  A list of <code>Cluster</code> objects, where each object describes one cluster. <br/>Marker:  A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned marker value in the <code>Marker</code> parameter and retrying the command. If the <code>Marker</code> field is empty, all response records have been retrieved for the request. <br/>        """
        pass

    def describe_default_cluster_parameters(self, ParameterGroupFamily: str, MaxRecords: int=None, Marker: str=None) -> DescribeDefaultClusterParametersResult:
        r"""Returns a list of parameter settings for the specified parameter group family.  For more information about parameters and parameter groups, go to <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-parameter-groups.html">Amazon Redshift Parameter Groups</a> in the <i>Amazon Redshift Cluster Management Guide</i>.

        :param self:
        :param Marker:  An optional parameter that specifies the starting point to return a set of response records. When the results of a <a>DescribeDefaultClusterParameters</a> request exceed the value specified in <code>MaxRecords</code>, AWS returns a value in the <code>Marker</code> field of the response. You can retrieve the next set of response records by providing the returned marker value in the <code>Marker</code> parameter and retrying the request. <br/>MaxRecords:  The maximum number of response records to return in each call. If the number of remaining response records exceeds the specified <code>MaxRecords</code> value, a value is returned in a <code>marker</code> field of the response. You can retrieve the next set of records by retrying the command with the returned marker value.  Default: <code>100</code>  Constraints: minimum 20, maximum 100.<br/>ParameterGroupFamily:  The name of the cluster parameter group family.<br/>
        :return: DefaultClusterParameters:  Describes the default cluster parameters for a parameter group family.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Parameters</i> The list of cluster default parameters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Marker</i> A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned marker value in the <code>Marker</code> parameter and retrying the command. If the <code>Marker</code> field is empty, all response records have been retrieved for the request. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ParameterGroupFamily</i> The name of the cluster parameter group family to which the engine default parameters apply.<br/>        """
        pass

    def describe_endpoint_access(self, ClusterIdentifier: str=None, ResourceOwner: str=None, EndpointName: str=None, VpcId: str=None, MaxRecords: int=None, Marker: str=None) -> EndpointAccessList:
        r"""Describes a Redshift-managed VPC endpoint.

        :param self:
        :param Marker:  An optional pagination token provided by a previous <code>DescribeEndpointAccess</code> request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by the <code>MaxRecords</code> parameter.<br/>MaxRecords:  The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a pagination token called a <code>Marker</code> is included in the response so that the remaining results can be retrieved.<br/>VpcId:  The virtual private cloud (VPC) identifier with access to the cluster.<br/>EndpointName:  The name of the endpoint to be described.<br/>ResourceOwner:  The AWS account ID of the owner of the cluster.<br/>ClusterIdentifier:  The cluster identifier associated with the described endpoint.<br/>
        :return: Marker:  An optional pagination token provided by a previous <code>DescribeEndpointAccess</code> request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by the <code>MaxRecords</code> parameter.<br/>EndpointAccessList:  The list of endpoints with access to the cluster.<br/>        """
        pass

    def describe_endpoint_authorization(self, ClusterIdentifier: str=None, Account: str=None, Grantee: BooleanOptional=None, MaxRecords: int=None, Marker: str=None) -> EndpointAuthorizationList:
        r"""Describes an endpoint authorization.

        :param self:
        :param Marker:  An optional pagination token provided by a previous <code>DescribeEndpointAuthorization</code> request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by the <code>MaxRecords</code> parameter.<br/>MaxRecords:  The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a pagination token called a <code>Marker</code> is included in the response so that the remaining results can be retrieved.<br/>Grantee:  Indicates whether to check authorization from a grantor or grantee point of view. If true, Amazon Redshift returns endpoint authorizations that you've been granted. If false (default), checks authorization from a grantor point of view.<br/>Account:  The AWS account ID of either the cluster owner (grantor) or grantee. If <code>Grantee</code> parameter is true, then the <code>Account</code> value is of the grantor.<br/>ClusterIdentifier:  The cluster identifier of the cluster to access.<br/>
        :return: Marker:  An optional pagination token provided by a previous <code>DescribeEndpointAuthorization</code> request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by the <code>MaxRecords</code> parameter.<br/>EndpointAuthorizationList:  The authorizations to an endpoint.<br/>        """
        pass

    def describe_event_categories(self, SourceType: str=None) -> EventCategoriesMessage:
        r"""Displays a list of event categories for all event source types, or for a specified source type. For a list of the event categories and source types, go to <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-event-notifications.html">Amazon Redshift Event Notifications</a>.

        :param self:
        :param SourceType:  The source type, such as cluster or parameter group, to which the described event categories apply. Valid values: cluster, cluster-snapshot, cluster-parameter-group, cluster-security-group, and scheduled-action.<br/>
        :return: EventCategoriesMapList:  A list of event categories descriptions.<br/>        """
        pass

    def describe_event_subscriptions(self, SubscriptionName: str=None, MaxRecords: int=None, Marker: str=None, TagKeys: List[String]=None, TagValues: List[String]=None) -> EventSubscriptionsMessage:
        r"""Lists descriptions of all the Amazon Redshift event notification subscriptions for a customer account. If you specify a subscription name, lists the description for that subscription. If you specify both tag keys and tag values in the same request, Amazon Redshift returns all event notification subscriptions that match any combination of the specified keys and values. For example, if you have <code>owner</code> and <code>environment</code> for tag keys, and <code>admin</code> and <code>test</code> for tag values, all subscriptions that have any combination of those values are returned. If both tag keys and values are omitted from the request, subscriptions are returned regardless of whether they have tag keys or values associated with them.

        :param self:
        :param TagValues:  A tag value or values for which you want to return all matching event notification subscriptions that are associated with the specified tag value or values. For example, suppose that you have subscriptions that are tagged with values called <code>admin</code> and <code>test</code>. If you specify both of these tag values in the request, Amazon Redshift returns a response with the subscriptions that have either or both of these tag values associated with them.<br/>TagKeys:  A tag key or keys for which you want to return all matching event notification subscriptions that are associated with the specified key or keys. For example, suppose that you have subscriptions that are tagged with keys called <code>owner</code> and <code>environment</code>. If you specify both of these tag keys in the request, Amazon Redshift returns a response with the subscriptions that have either or both of these tag keys associated with them.<br/>Marker:  An optional parameter that specifies the starting point to return a set of response records. When the results of a DescribeEventSubscriptions request exceed the value specified in <code>MaxRecords</code>, AWS returns a value in the <code>Marker</code> field of the response. You can retrieve the next set of response records by providing the returned marker value in the <code>Marker</code> parameter and retrying the request. <br/>MaxRecords:  The maximum number of response records to return in each call. If the number of remaining response records exceeds the specified <code>MaxRecords</code> value, a value is returned in a <code>marker</code> field of the response. You can retrieve the next set of records by retrying the command with the returned marker value.  Default: <code>100</code>  Constraints: minimum 20, maximum 100.<br/>SubscriptionName:  The name of the Amazon Redshift event notification subscription to be described.<br/>
        :return: EventSubscriptionsList:  A list of event subscriptions.<br/>Marker:  A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned marker value in the <code>Marker</code> parameter and retrying the command. If the <code>Marker</code> field is empty, all response records have been retrieved for the request. <br/>        """
        pass

    def describe_events(self, SourceIdentifier: str=None, SourceType: str=None, StartTime: TStamp=None, EndTime: TStamp=None, Duration: int=None, MaxRecords: int=None, Marker: str=None) -> EventsMessage:
        r"""Returns events related to clusters, security groups, snapshots, and parameter groups for the past 14 days. Events specific to a particular cluster, security group, snapshot or parameter group can be obtained by providing the name as a parameter. By default, the past hour of events are returned.

        :param self:
        :param Marker:  An optional parameter that specifies the starting point to return a set of response records. When the results of a <a>DescribeEvents</a> request exceed the value specified in <code>MaxRecords</code>, AWS returns a value in the <code>Marker</code> field of the response. You can retrieve the next set of response records by providing the returned marker value in the <code>Marker</code> parameter and retrying the request. <br/>MaxRecords:  The maximum number of response records to return in each call. If the number of remaining response records exceeds the specified <code>MaxRecords</code> value, a value is returned in a <code>marker</code> field of the response. You can retrieve the next set of records by retrying the command with the returned marker value.  Default: <code>100</code>  Constraints: minimum 20, maximum 100.<br/>Duration:  The number of minutes prior to the time of the request for which to retrieve events. For example, if the request is sent at 18:00 and you specify a duration of 60, then only events which have occurred after 17:00 will be returned. Default: <code>60</code> <br/>EndTime:  The end of the time interval for which to retrieve events, specified in ISO 8601 format. For more information about ISO 8601, go to the <a href="http://en.wikipedia.org/wiki/ISO_8601">ISO8601 Wikipedia page.</a>  Example: <code>2009-07-08T18:00Z</code> <br/>StartTime:  The beginning of the time interval to retrieve events for, specified in ISO 8601 format. For more information about ISO 8601, go to the <a href="http://en.wikipedia.org/wiki/ISO_8601">ISO8601 Wikipedia page.</a>  Example: <code>2009-07-08T18:00Z</code> <br/>SourceType:  The event source to retrieve events for. If no value is specified, all events are returned. Constraints: If <i>SourceType</i> is supplied, <i>SourceIdentifier</i> must also be provided. <ul> <li> Specify <code>cluster</code> when <i>SourceIdentifier</i> is a cluster identifier. </li> <li> Specify <code>cluster-security-group</code> when <i>SourceIdentifier</i> is a cluster security group name. </li> <li> Specify <code>cluster-parameter-group</code> when <i>SourceIdentifier</i> is a cluster parameter group name. </li> <li> Specify <code>cluster-snapshot</code> when <i>SourceIdentifier</i> is a cluster snapshot identifier. </li> </ul><br/>SourceIdentifier:  The identifier of the event source for which events will be returned. If this parameter is not specified, then all sources are included in the response. Constraints: If <i>SourceIdentifier</i> is supplied, <i>SourceType</i> must also be provided. <ul> <li> Specify a cluster identifier when <i>SourceType</i> is <code>cluster</code>. </li> <li> Specify a cluster security group name when <i>SourceType</i> is <code>cluster-security-group</code>. </li> <li> Specify a cluster parameter group name when <i>SourceType</i> is <code>cluster-parameter-group</code>. </li> <li> Specify a cluster snapshot identifier when <i>SourceType</i> is <code>cluster-snapshot</code>. </li> </ul><br/>
        :return: Events:  A list of <code>Event</code> instances. <br/>Marker:  A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned marker value in the <code>Marker</code> parameter and retrying the command. If the <code>Marker</code> field is empty, all response records have been retrieved for the request. <br/>        """
        pass

    def describe_hsm_client_certificates(self, HsmClientCertificateIdentifier: str=None, MaxRecords: int=None, Marker: str=None, TagKeys: List[String]=None, TagValues: List[String]=None) -> HsmClientCertificateMessage:
        r"""Returns information about the specified HSM client certificate. If no certificate ID is specified, returns information about all the HSM certificates owned by your AWS customer account. If you specify both tag keys and tag values in the same request, Amazon Redshift returns all HSM client certificates that match any combination of the specified keys and values. For example, if you have <code>owner</code> and <code>environment</code> for tag keys, and <code>admin</code> and <code>test</code> for tag values, all HSM client certificates that have any combination of those values are returned. If both tag keys and values are omitted from the request, HSM client certificates are returned regardless of whether they have tag keys or values associated with them.

        :param self:
        :param TagValues:  A tag value or values for which you want to return all matching HSM client certificates that are associated with the specified tag value or values. For example, suppose that you have HSM client certificates that are tagged with values called <code>admin</code> and <code>test</code>. If you specify both of these tag values in the request, Amazon Redshift returns a response with the HSM client certificates that have either or both of these tag values associated with them.<br/>TagKeys:  A tag key or keys for which you want to return all matching HSM client certificates that are associated with the specified key or keys. For example, suppose that you have HSM client certificates that are tagged with keys called <code>owner</code> and <code>environment</code>. If you specify both of these tag keys in the request, Amazon Redshift returns a response with the HSM client certificates that have either or both of these tag keys associated with them.<br/>Marker:  An optional parameter that specifies the starting point to return a set of response records. When the results of a <a>DescribeHsmClientCertificates</a> request exceed the value specified in <code>MaxRecords</code>, AWS returns a value in the <code>Marker</code> field of the response. You can retrieve the next set of response records by providing the returned marker value in the <code>Marker</code> parameter and retrying the request. <br/>MaxRecords:  The maximum number of response records to return in each call. If the number of remaining response records exceeds the specified <code>MaxRecords</code> value, a value is returned in a <code>marker</code> field of the response. You can retrieve the next set of records by retrying the command with the returned marker value.  Default: <code>100</code>  Constraints: minimum 20, maximum 100.<br/>HsmClientCertificateIdentifier:  The identifier of a specific HSM client certificate for which you want information. If no identifier is specified, information is returned for all HSM client certificates owned by your AWS customer account.<br/>
        :return: HsmClientCertificates:  A list of the identifiers for one or more HSM client certificates used by Amazon Redshift clusters to store and retrieve database encryption keys in an HSM.<br/>Marker:  A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned marker value in the <code>Marker</code> parameter and retrying the command. If the <code>Marker</code> field is empty, all response records have been retrieved for the request. <br/>        """
        pass

    def describe_hsm_configurations(self, HsmConfigurationIdentifier: str=None, MaxRecords: int=None, Marker: str=None, TagKeys: List[String]=None, TagValues: List[String]=None) -> HsmConfigurationMessage:
        r"""Returns information about the specified Amazon Redshift HSM configuration. If no configuration ID is specified, returns information about all the HSM configurations owned by your AWS customer account. If you specify both tag keys and tag values in the same request, Amazon Redshift returns all HSM connections that match any combination of the specified keys and values. For example, if you have <code>owner</code> and <code>environment</code> for tag keys, and <code>admin</code> and <code>test</code> for tag values, all HSM connections that have any combination of those values are returned. If both tag keys and values are omitted from the request, HSM connections are returned regardless of whether they have tag keys or values associated with them.

        :param self:
        :param TagValues:  A tag value or values for which you want to return all matching HSM configurations that are associated with the specified tag value or values. For example, suppose that you have HSM configurations that are tagged with values called <code>admin</code> and <code>test</code>. If you specify both of these tag values in the request, Amazon Redshift returns a response with the HSM configurations that have either or both of these tag values associated with them.<br/>TagKeys:  A tag key or keys for which you want to return all matching HSM configurations that are associated with the specified key or keys. For example, suppose that you have HSM configurations that are tagged with keys called <code>owner</code> and <code>environment</code>. If you specify both of these tag keys in the request, Amazon Redshift returns a response with the HSM configurations that have either or both of these tag keys associated with them.<br/>Marker:  An optional parameter that specifies the starting point to return a set of response records. When the results of a <a>DescribeHsmConfigurations</a> request exceed the value specified in <code>MaxRecords</code>, AWS returns a value in the <code>Marker</code> field of the response. You can retrieve the next set of response records by providing the returned marker value in the <code>Marker</code> parameter and retrying the request. <br/>MaxRecords:  The maximum number of response records to return in each call. If the number of remaining response records exceeds the specified <code>MaxRecords</code> value, a value is returned in a <code>marker</code> field of the response. You can retrieve the next set of records by retrying the command with the returned marker value.  Default: <code>100</code>  Constraints: minimum 20, maximum 100.<br/>HsmConfigurationIdentifier:  The identifier of a specific Amazon Redshift HSM configuration to be described. If no identifier is specified, information is returned for all HSM configurations owned by your AWS customer account.<br/>
        :return: HsmConfigurations:  A list of <code>HsmConfiguration</code> objects.<br/>Marker:  A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned marker value in the <code>Marker</code> parameter and retrying the command. If the <code>Marker</code> field is empty, all response records have been retrieved for the request. <br/>        """
        pass

    def describe_logging_status(self, ClusterIdentifier: str) -> LoggingStatus:
        r"""Describes whether information, such as queries and connection attempts, is being logged for the specified Amazon Redshift cluster.

        :param self:
        :param ClusterIdentifier:  The identifier of the cluster from which to get the logging status. Example: <code>examplecluster</code> <br/>
        :return: LastFailureMessage:  The message indicating that logs failed to be delivered.<br/>LastFailureTime:  The last time when logs failed to be delivered.<br/>LastSuccessfulDeliveryTime:  The last time that logs were delivered.<br/>S3KeyPrefix:  The prefix applied to the log file names.<br/>BucketName:  The name of the S3 bucket where the log files are stored.<br/>LoggingEnabled:   <code>true</code> if logging is on, <code>false</code> if logging is off.<br/>        """
        pass

    def describe_node_configuration_options(self, ActionType: str, ClusterIdentifier: str=None, SnapshotIdentifier: str=None, OwnerAccount: str=None, Filters: List[NodeConfigurationOptionsFilter]=None, Marker: str=None, MaxRecords: int=None) -> NodeConfigurationOptionsMessage:
        r"""Returns properties of possible node configurations such as node type, number of nodes, and disk usage for the specified action type.

        :param self:
        :param MaxRecords:  The maximum number of response records to return in each call. If the number of remaining response records exceeds the specified <code>MaxRecords</code> value, a value is returned in a <code>marker</code> field of the response. You can retrieve the next set of records by retrying the command with the returned marker value.  Default: <code>500</code>  Constraints: minimum 100, maximum 500.<br/>Marker:  An optional parameter that specifies the starting point to return a set of response records. When the results of a <a>DescribeNodeConfigurationOptions</a> request exceed the value specified in <code>MaxRecords</code>, AWS returns a value in the <code>Marker</code> field of the response. You can retrieve the next set of response records by providing the returned marker value in the <code>Marker</code> parameter and retrying the request. <br/>Filters:  A set of name, operator, and value items to filter the results.<br/>OwnerAccount:  The AWS customer account used to create or copy the snapshot. Required if you are restoring a snapshot you do not own, optional if you own the snapshot.<br/>SnapshotIdentifier:  The identifier of the snapshot to evaluate for possible node configurations.<br/>ClusterIdentifier:  The identifier of the cluster to evaluate for possible node configurations.<br/>ActionType:  The action type to evaluate for possible node configurations. Specify "restore-cluster" to get configuration combinations based on an existing snapshot. Specify "recommend-node-config" to get configuration recommendations based on an existing cluster or snapshot. Specify "resize-cluster" to get configuration combinations for elastic resize based on an existing cluster. <br/>
        :return: Marker:  A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned marker value in the <code>Marker</code> parameter and retrying the command. If the <code>Marker</code> field is empty, all response records have been retrieved for the request. <br/>NodeConfigurationOptionList:  A list of valid node configurations.<br/>        """
        pass

    def describe_orderable_cluster_options(self, ClusterVersion: str=None, NodeType: str=None, MaxRecords: int=None, Marker: str=None) -> OrderableClusterOptionsMessage:
        r"""Returns a list of orderable cluster options. Before you create a new cluster you can use this operation to find what options are available, such as the EC2 Availability Zones (AZ) in the specific AWS Region that you can specify, and the node types you can request. The node types differ by available storage, memory, CPU and price. With the cost involved you might want to obtain a list of cluster options in the specific region and specify values when creating a cluster. For more information about managing clusters, go to <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html">Amazon Redshift Clusters</a> in the <i>Amazon Redshift Cluster Management Guide</i>.

        :param self:
        :param Marker:  An optional parameter that specifies the starting point to return a set of response records. When the results of a <a>DescribeOrderableClusterOptions</a> request exceed the value specified in <code>MaxRecords</code>, AWS returns a value in the <code>Marker</code> field of the response. You can retrieve the next set of response records by providing the returned marker value in the <code>Marker</code> parameter and retrying the request. <br/>MaxRecords:  The maximum number of response records to return in each call. If the number of remaining response records exceeds the specified <code>MaxRecords</code> value, a value is returned in a <code>marker</code> field of the response. You can retrieve the next set of records by retrying the command with the returned marker value.  Default: <code>100</code>  Constraints: minimum 20, maximum 100.<br/>NodeType:  The node type filter value. Specify this parameter to show only the available offerings matching the specified node type.<br/>ClusterVersion:  The version filter value. Specify this parameter to show only the available offerings matching the specified version. Default: All versions. Constraints: Must be one of the version returned from <a>DescribeClusterVersions</a>.<br/>
        :return: Marker:  A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned marker value in the <code>Marker</code> parameter and retrying the command. If the <code>Marker</code> field is empty, all response records have been retrieved for the request. <br/>OrderableClusterOptions:  An <code>OrderableClusterOption</code> structure containing information about orderable options for the cluster.<br/>        """
        pass

    def describe_partners(self, ClusterIdentifier: str, AccountId: str, DatabaseName: str=None, PartnerName: str=None) -> DescribePartnersOutputMessage:
        r"""Returns information about the partner integrations defined for a cluster.

        :param self:
        :param PartnerName:  The name of the partner that is being described. If partner name is not specified, then all partner integrations are described.<br/>DatabaseName:  The name of the database whose partner integration is being described. If database name is not specified, then all databases in the cluster are described.<br/>ClusterIdentifier:  The cluster identifier of the cluster whose partner integration is being described.<br/>AccountId:  The AWS account ID that owns the cluster.<br/>
        :return: PartnerIntegrationInfoList:  A list of partner integrations.<br/>        """
        pass

    def describe_reserved_node_offerings(self, ReservedNodeOfferingId: str=None, MaxRecords: int=None, Marker: str=None) -> ReservedNodeOfferingsMessage:
        r"""Returns a list of the available reserved node offerings by Amazon Redshift with their descriptions including the node type, the fixed and recurring costs of reserving the node and duration the node will be reserved for you. These descriptions help you determine which reserve node offering you want to purchase. You then use the unique offering ID in you call to <a>PurchaseReservedNodeOffering</a> to reserve one or more nodes for your Amazon Redshift cluster.   For more information about reserved node offerings, go to <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/purchase-reserved-node-instance.html">Purchasing Reserved Nodes</a> in the <i>Amazon Redshift Cluster Management Guide</i>.

        :param self:
        :param Marker:  An optional parameter that specifies the starting point to return a set of response records. When the results of a <a>DescribeReservedNodeOfferings</a> request exceed the value specified in <code>MaxRecords</code>, AWS returns a value in the <code>Marker</code> field of the response. You can retrieve the next set of response records by providing the returned marker value in the <code>Marker</code> parameter and retrying the request. <br/>MaxRecords:  The maximum number of response records to return in each call. If the number of remaining response records exceeds the specified <code>MaxRecords</code> value, a value is returned in a <code>marker</code> field of the response. You can retrieve the next set of records by retrying the command with the returned marker value.  Default: <code>100</code>  Constraints: minimum 20, maximum 100.<br/>ReservedNodeOfferingId:  The unique identifier for the offering.<br/>
        :return: ReservedNodeOfferings:  A list of <code>ReservedNodeOffering</code> objects.<br/>Marker:  A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned marker value in the <code>Marker</code> parameter and retrying the command. If the <code>Marker</code> field is empty, all response records have been retrieved for the request. <br/>        """
        pass

    def describe_reserved_nodes(self, ReservedNodeId: str=None, MaxRecords: int=None, Marker: str=None) -> ReservedNodesMessage:
        r"""Returns the descriptions of the reserved nodes.

        :param self:
        :param Marker:  An optional parameter that specifies the starting point to return a set of response records. When the results of a <a>DescribeReservedNodes</a> request exceed the value specified in <code>MaxRecords</code>, AWS returns a value in the <code>Marker</code> field of the response. You can retrieve the next set of response records by providing the returned marker value in the <code>Marker</code> parameter and retrying the request. <br/>MaxRecords:  The maximum number of response records to return in each call. If the number of remaining response records exceeds the specified <code>MaxRecords</code> value, a value is returned in a <code>marker</code> field of the response. You can retrieve the next set of records by retrying the command with the returned marker value.  Default: <code>100</code>  Constraints: minimum 20, maximum 100.<br/>ReservedNodeId:  Identifier for the node reservation.<br/>
        :return: ReservedNodes:  The list of <code>ReservedNode</code> objects.<br/>Marker:  A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned marker value in the <code>Marker</code> parameter and retrying the command. If the <code>Marker</code> field is empty, all response records have been retrieved for the request. <br/>        """
        pass

    def describe_resize(self, ClusterIdentifier: str) -> ResizeProgressMessage:
        r"""Returns information about the last resize operation for the specified cluster. If no resize operation has ever been initiated for the specified cluster, a <code>HTTP 404</code> error is returned. If a resize operation was initiated and completed, the status of the resize remains as <code>SUCCEEDED</code> until the next resize.  A resize operation can be requested using <a>ModifyCluster</a> and specifying a different number or type of nodes for the cluster. 

        :param self:
        :param ClusterIdentifier:  The unique identifier of a cluster whose resize progress you are requesting. This parameter is case-sensitive. By default, resize operations for all clusters defined for an AWS account are returned.<br/>
        :return: DataTransferProgressPercent:  The percent of data transferred from source cluster to target cluster.<br/>TargetEncryptionType:  The type of encryption for the cluster after the resize is complete. Possible values are <code>KMS</code> and <code>None</code>. <br/>Message:  An optional string to provide additional details about the resize action.<br/>ResizeType:  An enum with possible values of <code>ClassicResize</code> and <code>ElasticResize</code>. These values describe the type of resize operation being performed. <br/>EstimatedTimeToCompletionInSeconds:  The estimated time remaining, in seconds, until the resize operation is complete. This value is calculated based on the average resize rate and the estimated amount of data remaining to be processed. Once the resize operation is complete, this value will be 0.<br/>ElapsedTimeInSeconds:  The amount of seconds that have elapsed since the resize operation began. After the resize operation completes, this value shows the total actual time, in seconds, for the resize operation.<br/>ProgressInMegaBytes:  While the resize operation is in progress, this value shows the current amount of data, in megabytes, that has been processed so far. When the resize operation is complete, this value shows the total amount of data, in megabytes, on the cluster, which may be more or less than TotalResizeDataInMegaBytes (the estimated total amount of data before resize).<br/>TotalResizeDataInMegaBytes:  The estimated total amount of data, in megabytes, on the cluster before the resize operation began.<br/>AvgResizeRateInMegaBytesPerSecond:  The average rate of the resize operation over the last few minutes, measured in megabytes per second. After the resize operation completes, this value shows the average rate of the entire resize operation.<br/>ImportTablesNotStarted:  The names of tables that have not been yet imported. Valid Values: List of table names<br/>ImportTablesInProgress:  The names of tables that are being currently imported. Valid Values: List of table names.<br/>ImportTablesCompleted:  The names of tables that have been completely imported . Valid Values: List of table names.<br/>Status:  The status of the resize operation. Valid Values: <code>NONE</code> | <code>IN_PROGRESS</code> | <code>FAILED</code> | <code>SUCCEEDED</code> | <code>CANCELLING</code> <br/>TargetClusterType:  The cluster type after the resize operation is complete. Valid Values: <code>multi-node</code> | <code>single-node</code> <br/>TargetNumberOfNodes:  The number of nodes that the cluster will have after the resize operation is complete.<br/>TargetNodeType:  The node type that the cluster will have after the resize operation is complete.<br/>        """
        pass

    def describe_scheduled_actions(self, ScheduledActionName: str=None, TargetActionType: str=None, StartTime: TStamp=None, EndTime: TStamp=None, Active: BooleanOptional=None, Filters: List[ScheduledActionFilter]=None, Marker: str=None, MaxRecords: int=None) -> ScheduledActionsMessage:
        r"""Describes properties of scheduled actions. 

        :param self:
        :param MaxRecords:  The maximum number of response records to return in each call. If the number of remaining response records exceeds the specified <code>MaxRecords</code> value, a value is returned in a <code>marker</code> field of the response. You can retrieve the next set of records by retrying the command with the returned marker value.  Default: <code>100</code>  Constraints: minimum 20, maximum 100.<br/>Marker:  An optional parameter that specifies the starting point to return a set of response records. When the results of a <a>DescribeScheduledActions</a> request exceed the value specified in <code>MaxRecords</code>, AWS returns a value in the <code>Marker</code> field of the response. You can retrieve the next set of response records by providing the returned marker value in the <code>Marker</code> parameter and retrying the request. <br/>Filters:  List of scheduled action filters. <br/>Active:  If true, retrieve only active scheduled actions. If false, retrieve only disabled scheduled actions. <br/>EndTime:  The end time in UTC of the scheduled action to retrieve. Only active scheduled actions that have invocations before this time are retrieved.<br/>StartTime:  The start time in UTC of the scheduled actions to retrieve. Only active scheduled actions that have invocations after this time are retrieved.<br/>TargetActionType:  The type of the scheduled actions to retrieve. <br/>ScheduledActionName:  The name of the scheduled action to retrieve. <br/>
        :return: ScheduledActions:  List of retrieved scheduled actions. <br/>Marker:  An optional parameter that specifies the starting point to return a set of response records. When the results of a <a>DescribeScheduledActions</a> request exceed the value specified in <code>MaxRecords</code>, AWS returns a value in the <code>Marker</code> field of the response. You can retrieve the next set of response records by providing the returned marker value in the <code>Marker</code> parameter and retrying the request. <br/>        """
        pass

    def describe_snapshot_copy_grants(self, SnapshotCopyGrantName: str=None, MaxRecords: int=None, Marker: str=None, TagKeys: List[String]=None, TagValues: List[String]=None) -> SnapshotCopyGrantMessage:
        r"""Returns a list of snapshot copy grants owned by the AWS account in the destination region.  For more information about managing snapshot copy grants, go to <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-db-encryption.html">Amazon Redshift Database Encryption</a> in the <i>Amazon Redshift Cluster Management Guide</i>. 

        :param self:
        :param TagValues:  A tag value or values for which you want to return all matching resources that are associated with the specified value or values. For example, suppose that you have resources tagged with values called <code>admin</code> and <code>test</code>. If you specify both of these tag values in the request, Amazon Redshift returns a response with all resources that have either or both of these tag values associated with them.<br/>TagKeys:  A tag key or keys for which you want to return all matching resources that are associated with the specified key or keys. For example, suppose that you have resources tagged with keys called <code>owner</code> and <code>environment</code>. If you specify both of these tag keys in the request, Amazon Redshift returns a response with all resources that have either or both of these tag keys associated with them.<br/>Marker:  An optional parameter that specifies the starting point to return a set of response records. When the results of a <code>DescribeSnapshotCopyGrant</code> request exceed the value specified in <code>MaxRecords</code>, AWS returns a value in the <code>Marker</code> field of the response. You can retrieve the next set of response records by providing the returned marker value in the <code>Marker</code> parameter and retrying the request.  Constraints: You can specify either the <b>SnapshotCopyGrantName</b> parameter or the <b>Marker</b> parameter, but not both. <br/>MaxRecords:  The maximum number of response records to return in each call. If the number of remaining response records exceeds the specified <code>MaxRecords</code> value, a value is returned in a <code>marker</code> field of the response. You can retrieve the next set of records by retrying the command with the returned marker value.  Default: <code>100</code>  Constraints: minimum 20, maximum 100.<br/>SnapshotCopyGrantName:  The name of the snapshot copy grant.<br/>
        :return: SnapshotCopyGrants:  The list of <code>SnapshotCopyGrant</code> objects.<br/>Marker:  An optional parameter that specifies the starting point to return a set of response records. When the results of a <code>DescribeSnapshotCopyGrant</code> request exceed the value specified in <code>MaxRecords</code>, AWS returns a value in the <code>Marker</code> field of the response. You can retrieve the next set of response records by providing the returned marker value in the <code>Marker</code> parameter and retrying the request.  Constraints: You can specify either the <b>SnapshotCopyGrantName</b> parameter or the <b>Marker</b> parameter, but not both. <br/>        """
        pass

    def describe_snapshot_schedules(self, ClusterIdentifier: str=None, ScheduleIdentifier: str=None, TagKeys: List[String]=None, TagValues: List[String]=None, Marker: str=None, MaxRecords: int=None) -> DescribeSnapshotSchedulesOutputMessage:
        r"""Returns a list of snapshot schedules. 

        :param self:
        :param MaxRecords:  The maximum number or response records to return in each call. If the number of remaining response records exceeds the specified <code>MaxRecords</code> value, a value is returned in a <code>marker</code> field of the response. You can retrieve the next set of records by retrying the command with the returned <code>marker</code> value.<br/>Marker:  A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned marker value in the <code>marker</code> parameter and retrying the command. If the <code>marker</code> field is empty, all response records have been retrieved for the request.<br/>TagValues:  The value corresponding to the key of the snapshot schedule tag.<br/>TagKeys:  The key value for a snapshot schedule tag.<br/>ScheduleIdentifier:  A unique identifier for a snapshot schedule.<br/>ClusterIdentifier:  The unique identifier for the cluster whose snapshot schedules you want to view.<br/>
        :return: Marker:  A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned marker value in the <code>marker</code> parameter and retrying the command. If the <code>marker</code> field is empty, all response records have been retrieved for the request.<br/>SnapshotSchedules:  A list of SnapshotSchedules.<br/>        """
        pass

    def describe_storage(self) -> CustomerStorageMessage:
        r"""Returns account level backups storage size and provisional storage.

        :param self:
        :param 
        :return: TotalProvisionedStorageInMegaBytes:  The total amount of storage currently provisioned.<br/>TotalBackupSizeInMegaBytes:  The total amount of storage currently used for snapshots.<br/>        """
        pass

    def describe_table_restore_status(self, ClusterIdentifier: str=None, TableRestoreRequestId: str=None, MaxRecords: int=None, Marker: str=None) -> TableRestoreStatusMessage:
        r"""Lists the status of one or more table restore requests made using the <a>RestoreTableFromClusterSnapshot</a> API action. If you don't specify a value for the <code>TableRestoreRequestId</code> parameter, then <code>DescribeTableRestoreStatus</code> returns the status of all table restore requests ordered by the date and time of the request in ascending order. Otherwise <code>DescribeTableRestoreStatus</code> returns the status of the table specified by <code>TableRestoreRequestId</code>.

        :param self:
        :param Marker:  An optional pagination token provided by a previous <code>DescribeTableRestoreStatus</code> request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by the <code>MaxRecords</code> parameter.<br/>MaxRecords:  The maximum number of records to include in the response. If more records exist than the specified <code>MaxRecords</code> value, a pagination token called a marker is included in the response so that the remaining results can be retrieved.<br/>TableRestoreRequestId:  The identifier of the table restore request to return status for. If you don't specify a <code>TableRestoreRequestId</code> value, then <code>DescribeTableRestoreStatus</code> returns the status of all in-progress table restore requests.<br/>ClusterIdentifier:  The Amazon Redshift cluster that the table is being restored to.<br/>
        :return: Marker:  A pagination token that can be used in a subsequent <a>DescribeTableRestoreStatus</a> request.<br/>TableRestoreStatusDetails:  A list of status details for one or more table restore requests.<br/>        """
        pass

    def describe_tags(self, ResourceName: str=None, ResourceType: str=None, MaxRecords: int=None, Marker: str=None, TagKeys: List[String]=None, TagValues: List[String]=None) -> TaggedResourceListMessage:
        r"""Returns a list of tags. You can return tags from a specific resource by specifying an ARN, or you can return all tags for a given type of resource, such as clusters, snapshots, and so on. The following are limitations for <code>DescribeTags</code>:  <ul> <li> You cannot specify an ARN and a resource-type value together in the same request. </li> <li> You cannot use the <code>MaxRecords</code> and <code>Marker</code> parameters together with the ARN parameter. </li> <li> The <code>MaxRecords</code> parameter can be a range from 10 to 50 results to return in a request. </li> </ul> If you specify both tag keys and tag values in the same request, Amazon Redshift returns all resources that match any combination of the specified keys and values. For example, if you have <code>owner</code> and <code>environment</code> for tag keys, and <code>admin</code> and <code>test</code> for tag values, all resources that have any combination of those values are returned. If both tag keys and values are omitted from the request, resources are returned regardless of whether they have tag keys or values associated with them.

        :param self:
        :param TagValues:  A tag value or values for which you want to return all matching resources that are associated with the specified value or values. For example, suppose that you have resources tagged with values called <code>admin</code> and <code>test</code>. If you specify both of these tag values in the request, Amazon Redshift returns a response with all resources that have either or both of these tag values associated with them.<br/>TagKeys:  A tag key or keys for which you want to return all matching resources that are associated with the specified key or keys. For example, suppose that you have resources tagged with keys called <code>owner</code> and <code>environment</code>. If you specify both of these tag keys in the request, Amazon Redshift returns a response with all resources that have either or both of these tag keys associated with them.<br/>Marker:  A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned marker value in the <code>marker</code> parameter and retrying the command. If the <code>marker</code> field is empty, all response records have been retrieved for the request. <br/>MaxRecords:  The maximum number or response records to return in each call. If the number of remaining response records exceeds the specified <code>MaxRecords</code> value, a value is returned in a <code>marker</code> field of the response. You can retrieve the next set of records by retrying the command with the returned <code>marker</code> value. <br/>ResourceType:  The type of resource with which you want to view tags. Valid resource types are:  <ul> <li> Cluster </li> <li> CIDR/IP </li> <li> EC2 security group </li> <li> Snapshot </li> <li> Cluster security group </li> <li> Subnet group </li> <li> HSM connection </li> <li> HSM certificate </li> <li> Parameter group </li> <li> Snapshot copy grant </li> </ul> For more information about Amazon Redshift resource types and constructing ARNs, go to <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-access-control-overview.html#redshift-iam-access-control-specify-actions">Specifying Policy Elements: Actions, Effects, Resources, and Principals</a> in the Amazon Redshift Cluster Management Guide. <br/>ResourceName:  The Amazon Resource Name (ARN) for which you want to describe the tag or tags. For example, <code>arn:aws:redshift:us-east-2:123456789:cluster:t1</code>. <br/>
        :return: Marker:  A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned marker value in the <code>Marker</code> parameter and retrying the command. If the <code>Marker</code> field is empty, all response records have been retrieved for the request. <br/>TaggedResources:  A list of tags with their associated resources.<br/>        """
        pass

    def describe_usage_limits(self, UsageLimitId: str=None, ClusterIdentifier: str=None, FeatureType: str=None, MaxRecords: int=None, Marker: str=None, TagKeys: List[String]=None, TagValues: List[String]=None) -> UsageLimitList:
        r"""Shows usage limits on a cluster. Results are filtered based on the combination of input usage limit identifier, cluster identifier, and feature type parameters: <ul> <li> If usage limit identifier, cluster identifier, and feature type are not provided, then all usage limit objects for the current account in the current region are returned. </li> <li> If usage limit identifier is provided, then the corresponding usage limit object is returned. </li> <li> If cluster identifier is provided, then all usage limit objects for the specified cluster are returned. </li> <li> If cluster identifier and feature type are provided, then all usage limit objects for the combination of cluster and feature are returned. </li> </ul>

        :param self:
        :param TagValues:  A tag value or values for which you want to return all matching usage limit objects that are associated with the specified tag value or values. For example, suppose that you have parameter groups that are tagged with values called <code>admin</code> and <code>test</code>. If you specify both of these tag values in the request, Amazon Redshift returns a response with the usage limit objects that have either or both of these tag values associated with them.<br/>TagKeys:  A tag key or keys for which you want to return all matching usage limit objects that are associated with the specified key or keys. For example, suppose that you have parameter groups that are tagged with keys called <code>owner</code> and <code>environment</code>. If you specify both of these tag keys in the request, Amazon Redshift returns a response with the usage limit objects have either or both of these tag keys associated with them.<br/>Marker:  An optional parameter that specifies the starting point to return a set of response records. When the results of a <a>DescribeUsageLimits</a> request exceed the value specified in <code>MaxRecords</code>, AWS returns a value in the <code>Marker</code> field of the response. You can retrieve the next set of response records by providing the returned marker value in the <code>Marker</code> parameter and retrying the request. <br/>MaxRecords:  The maximum number of response records to return in each call. If the number of remaining response records exceeds the specified <code>MaxRecords</code> value, a value is returned in a <code>marker</code> field of the response. You can retrieve the next set of records by retrying the command with the returned marker value.  Default: <code>100</code>  Constraints: minimum 20, maximum 100.<br/>FeatureType:  The feature type for which you want to describe usage limits.<br/>ClusterIdentifier:  The identifier of the cluster for which you want to describe usage limits.<br/>UsageLimitId:  The identifier of the usage limit to describe.<br/>
        :return: Marker:  A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned marker value in the <code>Marker</code> parameter and retrying the command. If the <code>Marker</code> field is empty, all response records have been retrieved for the request. <br/>UsageLimits:  Contains the output from the <a>DescribeUsageLimits</a> action. <br/>        """
        pass

    def disable_logging(self, ClusterIdentifier: str) -> LoggingStatus:
        r"""Stops logging information, such as queries and connection attempts, for the specified Amazon Redshift cluster.

        :param self:
        :param ClusterIdentifier:  The identifier of the cluster on which logging is to be stopped. Example: <code>examplecluster</code> <br/>
        :return: LastFailureMessage:  The message indicating that logs failed to be delivered.<br/>LastFailureTime:  The last time when logs failed to be delivered.<br/>LastSuccessfulDeliveryTime:  The last time that logs were delivered.<br/>S3KeyPrefix:  The prefix applied to the log file names.<br/>BucketName:  The name of the S3 bucket where the log files are stored.<br/>LoggingEnabled:   <code>true</code> if logging is on, <code>false</code> if logging is off.<br/>        """
        pass

    def disable_snapshot_copy(self, ClusterIdentifier: str) -> DisableSnapshotCopyResult:
        r"""Disables the automatic copying of snapshots from one region to another region for a specified cluster. If your cluster and its snapshots are encrypted using a customer master key (CMK) from AWS KMS, use <a>DeleteSnapshotCopyGrant</a> to delete the grant that grants Amazon Redshift permission to the CMK in the destination region. 

        :param self:
        :param ClusterIdentifier:  The unique identifier of the source cluster that you want to disable copying of snapshots to a destination region. Constraints: Must be the valid name of an existing cluster that has cross-region snapshot copy enabled.<br/>
        :return: Cluster:  Describes a cluster.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AquaConfiguration</i> The AQUA (Advanced Query Accelerator) configuration of the cluster.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AquaConfiguration</b>: The AQUA (Advanced Query Accelerator) configuration of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalStorageCapacityInMegaBytes</i> The total storage capacity of the cluster in megabytes. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterNamespaceArn</i> The namespace Amazon Resource Name (ARN) of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZoneRelocationStatus</i> Describes the status of the Availability Zone relocation operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResizeInfo</i> Returns the following: <ul> <li> AllowCancelResize: a boolean value indicating if the resize operation can be cancelled. </li> <li> ResizeType: Returns ClassicResize </li> </ul>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ResizeInfo</b>: Returns the following: <ul> <li> AllowCancelResize: a boolean value indicating if the resize operation can be cancelled. </li> <li> ResizeType: Returns ClassicResize </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NextMaintenanceWindowStartTime</i> The date and time in UTC when system maintenance can begin.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExpectedNextSnapshotScheduleTimeStatus</i>  The status of next expected snapshot for clusters having a valid snapshot schedule and backups enabled. Possible values are the following: <ul> <li> OnTrack - The next snapshot is expected to be taken on time.  </li> <li> Pending - The next snapshot is pending to be taken.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExpectedNextSnapshotScheduleTime</i> The date and time when the next snapshot is expected to be taken for clusters with a valid snapshot schedule and backups enabled. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotScheduleState</i> The current state of the cluster snapshot schedule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotScheduleIdentifier</i> A unique identifier for the cluster snapshot schedule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeferredMaintenanceWindows</i> Describes a group of <code>DeferredMaintenanceWindow</code> objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ElasticResizeNumberOfNodeOptions</i> The number of nodes that you can resize the cluster to with the elastic resize method. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaintenanceTrackName</i> The name of the maintenance track for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingActions</i> Cluster operations that are waiting to be started.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IamRoles</i> A list of AWS Identity and Access Management (IAM) roles that can be used by the cluster to access other AWS services.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnhancedVpcRouting</i> An option that specifies whether to create the cluster with enhanced VPC routing enabled. To create a cluster that uses enhanced VPC routing, the cluster must be in a VPC. For more information, see <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html">Enhanced VPC Routing</a> in the Amazon Redshift Cluster Management Guide. If this option is <code>true</code>, enhanced VPC routing is enabled.  Default: false<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The AWS Key Management Service (AWS KMS) key ID of the encryption key used to encrypt data in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The list of tags for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterRevisionNumber</i> The specific revision number of the database in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ElasticIpStatus</i> The status of the elastic IP (EIP) address.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ElasticIpStatus</b>: The status of the elastic IP (EIP) address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterNodes</i> The nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterPublicKey</i> The public key for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterSnapshotCopyStatus</i> A value that returns the destination region and retention period that are configured for cross-region snapshot copy.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ClusterSnapshotCopyStatus</b>: A value that returns the destination region and retention period that are configured for cross-region snapshot copy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HsmStatus</i> A value that reports whether the Amazon Redshift cluster has finished applying any hardware security module (HSM) settings changes specified in a modify cluster command. Values: active, applying&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>HsmStatus</b>: A value that reports whether the Amazon Redshift cluster has finished applying any hardware security module (HSM) settings changes specified in a modify cluster command. Values: active, applying<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataTransferProgress</i> <p/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DataTransferProgress</b>: <p/><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RestoreStatus</i> A value that describes the status of a cluster restore action. This parameter returns null if the cluster was not created by restoring a snapshot.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RestoreStatus</b>: A value that describes the status of a cluster restore action. This parameter returns null if the cluster was not created by restoring a snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Encrypted</i> A boolean value that, if <code>true</code>, indicates that data in the cluster is encrypted at rest.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PubliclyAccessible</i> A boolean value that, if <code>true</code>, indicates that the cluster can be accessed from a public network.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberOfNodes</i> The number of compute nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowVersionUpgrade</i> A boolean value that, if <code>true</code>, indicates that major version upgrades will be applied automatically to the cluster during the maintenance window. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterVersion</i> The version ID of the Amazon Redshift engine that is running on the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingModifiedValues</i> A value that, if present, indicates that changes to the cluster are pending. Specific pending changes are identified by subelements.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingModifiedValues</b>: A value that, if present, indicates that changes to the cluster are pending. Specific pending changes are identified by subelements.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i> The weekly time range, in Universal Coordinated Time (UTC), during which system maintenance can occur.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZone</i> The name of the Availability Zone in which the cluster is located.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The identifier of the VPC the cluster is in, if the cluster is in a VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterSubnetGroupName</i> The name of the subnet group that is associated with the cluster. This parameter is valid only when the cluster is in a VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterParameterGroups</i> The list of cluster parameter groups that are associated with this cluster. Each parameter group in the list is returned with its status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcSecurityGroups</i> A list of Amazon Virtual Private Cloud (Amazon VPC) security groups that are associated with the cluster. This parameter is returned only if the cluster is in a VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterSecurityGroups</i> A list of cluster security group that are associated with the cluster. Each security group is represented by an element that contains <code>ClusterSecurityGroup.Name</code> and <code>ClusterSecurityGroup.Status</code> subelements.  Cluster security groups are used when the cluster is not created in an Amazon Virtual Private Cloud (VPC). Clusters that are created in a VPC use VPC security groups, which are listed by the <b>VpcSecurityGroups</b> parameter. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ManualSnapshotRetentionPeriod</i> The default number of days to retain a manual snapshot. If the value is -1, the snapshot is retained indefinitely. This setting doesn't change the retention period of existing snapshots. The value must be either -1 or an integer between 1 and 3,653.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomatedSnapshotRetentionPeriod</i> The number of days that automatic cluster snapshots are retained.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterCreateTime</i> The date and time that the cluster was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i> The connection endpoint.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Endpoint</b>: The connection endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBName</i> The name of the initial database that was created when the cluster was created. This same name is returned for the life of the cluster. If an initial database was not specified, a database named <code>dev</code>dev was created by default. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUsername</i> The master user name for the cluster. This name is used to connect to the database that is specified in the <b>DBName</b> parameter. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ModifyStatus</i> The status of a modify operation, if any, initiated for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterAvailabilityStatus</i> The availability status of the cluster for queries. Possible values are the following: <ul> <li> Available - The cluster is available for queries.  </li> <li> Unavailable - The cluster is not available for queries. </li> <li> Maintenance - The cluster is intermittently available for queries due to maintenance activities. </li> <li> Modifying - The cluster is intermittently available for queries due to changes that modify the cluster. </li> <li> Failed - The cluster failed and is not available for queries. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterStatus</i>  The current state of the cluster. Possible values are the following: <ul> <li>  <code>available</code>  </li> <li>  <code>available, prep-for-resize</code>  </li> <li>  <code>available, resize-cleanup</code>  </li> <li>  <code>cancelling-resize</code>  </li> <li>  <code>creating</code>  </li> <li>  <code>deleting</code>  </li> <li>  <code>final-snapshot</code>  </li> <li>  <code>hardware-failure</code>  </li> <li>  <code>incompatible-hsm</code>  </li> <li>  <code>incompatible-network</code>  </li> <li>  <code>incompatible-parameters</code>  </li> <li>  <code>incompatible-restore</code>  </li> <li>  <code>modifying</code>  </li> <li>  <code>paused</code>  </li> <li>  <code>rebooting</code>  </li> <li>  <code>renaming</code>  </li> <li>  <code>resizing</code>  </li> <li>  <code>rotating-keys</code>  </li> <li>  <code>storage-full</code>  </li> <li>  <code>updating-hsm</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NodeType</i> The node type for the nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterIdentifier</i> The unique identifier of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcEndpoints</i> Describes a connection endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> The port that the database engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Address</i> The DNS address of the Cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EncryptionType</i> The encryption type for a cluster. Possible values are: KMS and None. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaintenanceTrackName</i> The name of the maintenance track that the cluster will change to during the next maintenance window.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EnhancedVpcRouting</i> An option that specifies whether to create the cluster with enhanced VPC routing enabled. To create a cluster that uses enhanced VPC routing, the cluster must be in a VPC. For more information, see <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html">Enhanced VPC Routing</a> in the Amazon Redshift Cluster Management Guide. If this option is <code>true</code>, enhanced VPC routing is enabled.  Default: false<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PubliclyAccessible</i> The pending or in-progress change of the ability to connect to the cluster from the public network.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterIdentifier</i> The pending or in-progress change of the new identifier for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomatedSnapshotRetentionPeriod</i> The pending or in-progress change of the automated snapshot retention period.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterVersion</i> The pending or in-progress change of the service version.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterType</i> The pending or in-progress change of the cluster type.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberOfNodes</i> The pending or in-progress change of the number of nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NodeType</i> The pending or in-progress change of the cluster's node type.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUserPassword</i> The pending or in-progress change of the master user password for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EstimatedTimeToCompletionInSeconds</i> The estimate of the time remaining before the restore will complete. Returns 0 for a completed restore. This field is only updated when you restore to DC2 and DS2 node types. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ElapsedTimeInSeconds</i> The amount of time an in-progress restore has been running, or the amount of time it took a completed restore to finish. This field is only updated when you restore to DC2 and DS2 node types. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ProgressInMegaBytes</i> The number of megabytes that have been transferred from snapshot storage. This field is only updated when you restore to DC2 and DS2 node types. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotSizeInMegaBytes</i> The size of the set of snapshot data used to restore the cluster. This field is only updated when you restore to DC2 and DS2 node types. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CurrentRestoreRateInMegaBytesPerSecond</i> The number of megabytes per second being transferred from the backup storage. Returns the average rate for a completed backup. This field is only updated when you restore to DC2 and DS2 node types. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the restore action. Returns starting, restoring, completed, or failed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ElapsedTimeInSeconds</i> Describes the number of seconds that have elapsed during the data transfer.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EstimatedTimeToCompletionInSeconds</i> Describes the estimated number of seconds remaining to complete the transfer.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DataTransferredInMegaBytes</i> Describes the total amount of data that has been transfered in MB's.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalDataInMegaBytes</i> Describes the total amount of data to be transfered in megabytes.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CurrentRateInMegaBytesPerSecond</i> Describes the data transfer rate in MB's per second.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Describes the status of the cluster. While the transfer is in progress the status is <code>transferringdata</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Reports whether the Amazon Redshift cluster has finished applying any HSM settings changes specified in a modify cluster command. Values: active, applying<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HsmConfigurationIdentifier</i> Specifies the name of the HSM configuration that contains the information the Amazon Redshift cluster can use to retrieve and store keys in an HSM.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HsmClientCertificateIdentifier</i> Specifies the name of the HSM client certificate the Amazon Redshift cluster uses to retrieve the data encryption keys stored in an HSM.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotCopyGrantName</i> The name of the snapshot copy grant.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ManualSnapshotRetentionPeriod</i> The number of days that automated snapshots are retained in the destination region after they are copied from a source region. If the value is -1, the manual snapshot is retained indefinitely.  The value must be either -1 or an integer between 1 and 3,653.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RetentionPeriod</i> The number of days that automated snapshots are retained in the destination region after they are copied from a source region.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DestinationRegion</i> The destination region that snapshots are automatically copied to when cross-region snapshot copy is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the elastic IP (EIP) address.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ElasticIp</i> The elastic IP (EIP) address for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowCancelResize</i> A boolean value indicating if the resize operation can be cancelled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ResizeType</i> Returns the value <code>ClassicResize</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AquaConfigurationStatus</i> The value represents how the cluster is configured to use AQUA. Possible values include the following. <ul> <li> enabled - Use AQUA if it is available for the current AWS Region and Amazon Redshift node type. </li> <li> disabled - Don't use AQUA.  </li> <li> auto - Amazon Redshift determines whether to use AQUA. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AquaStatus</i> The value indicates the status of AQUA on the cluster. Possible values include the following. <ul> <li> enabled - AQUA is enabled. </li> <li> disabled - AQUA is not enabled.  </li> <li> applying - AQUA status is being applied.  </li> </ul><br/>        """
        pass

    def enable_logging(self, BucketName: str, ClusterIdentifier: str, S3KeyPrefix: str=None) -> LoggingStatus:
        r"""Starts logging information, such as queries and connection attempts, for the specified Amazon Redshift cluster.

        :param self:
        :param S3KeyPrefix:  The prefix applied to the log file names. Constraints: <ul> <li> Cannot exceed 512 characters </li> <li> Cannot contain spaces( ), double quotes ("), single quotes ('), a backslash (\), or control characters. The hexadecimal codes for invalid characters are:  <ul> <li> x00 to x20 </li> <li> x22 </li> <li> x27 </li> <li> x5c </li> <li> x7f or larger </li> </ul> </li> </ul><br/>BucketName:  The name of an existing S3 bucket where the log files are to be stored. Constraints: <ul> <li> Must be in the same region as the cluster </li> <li> The cluster must have read bucket and put object permissions </li> </ul><br/>ClusterIdentifier:  The identifier of the cluster on which logging is to be started. Example: <code>examplecluster</code> <br/>
        :return: LastFailureMessage:  The message indicating that logs failed to be delivered.<br/>LastFailureTime:  The last time when logs failed to be delivered.<br/>LastSuccessfulDeliveryTime:  The last time that logs were delivered.<br/>S3KeyPrefix:  The prefix applied to the log file names.<br/>BucketName:  The name of the S3 bucket where the log files are stored.<br/>LoggingEnabled:   <code>true</code> if logging is on, <code>false</code> if logging is off.<br/>        """
        pass

    def enable_snapshot_copy(self, DestinationRegion: str, ClusterIdentifier: str, RetentionPeriod: int=None, SnapshotCopyGrantName: str=None, ManualSnapshotRetentionPeriod: int=None) -> EnableSnapshotCopyResult:
        r"""Enables the automatic copy of snapshots from one region to another region for a specified cluster.

        :param self:
        :param ManualSnapshotRetentionPeriod:  The number of days to retain newly copied snapshots in the destination AWS Region after they are copied from the source AWS Region. If the value is -1, the manual snapshot is retained indefinitely.  The value must be either -1 or an integer between 1 and 3,653.<br/>SnapshotCopyGrantName:  The name of the snapshot copy grant to use when snapshots of an AWS KMS-encrypted cluster are copied to the destination region.<br/>RetentionPeriod:  The number of days to retain automated snapshots in the destination region after they are copied from the source region. Default: 7. Constraints: Must be at least 1 and no more than 35.<br/>DestinationRegion:  The destination AWS Region that you want to copy snapshots to. Constraints: Must be the name of a valid AWS Region. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/rande.html#redshift_region">Regions and Endpoints</a> in the Amazon Web Services General Reference. <br/>ClusterIdentifier:  The unique identifier of the source cluster to copy snapshots from. Constraints: Must be the valid name of an existing cluster that does not already have cross-region snapshot copy enabled.<br/>
        :return: Cluster:  Describes a cluster.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AquaConfiguration</i> The AQUA (Advanced Query Accelerator) configuration of the cluster.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AquaConfiguration</b>: The AQUA (Advanced Query Accelerator) configuration of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalStorageCapacityInMegaBytes</i> The total storage capacity of the cluster in megabytes. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterNamespaceArn</i> The namespace Amazon Resource Name (ARN) of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZoneRelocationStatus</i> Describes the status of the Availability Zone relocation operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResizeInfo</i> Returns the following: <ul> <li> AllowCancelResize: a boolean value indicating if the resize operation can be cancelled. </li> <li> ResizeType: Returns ClassicResize </li> </ul>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ResizeInfo</b>: Returns the following: <ul> <li> AllowCancelResize: a boolean value indicating if the resize operation can be cancelled. </li> <li> ResizeType: Returns ClassicResize </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NextMaintenanceWindowStartTime</i> The date and time in UTC when system maintenance can begin.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExpectedNextSnapshotScheduleTimeStatus</i>  The status of next expected snapshot for clusters having a valid snapshot schedule and backups enabled. Possible values are the following: <ul> <li> OnTrack - The next snapshot is expected to be taken on time.  </li> <li> Pending - The next snapshot is pending to be taken.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExpectedNextSnapshotScheduleTime</i> The date and time when the next snapshot is expected to be taken for clusters with a valid snapshot schedule and backups enabled. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotScheduleState</i> The current state of the cluster snapshot schedule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotScheduleIdentifier</i> A unique identifier for the cluster snapshot schedule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeferredMaintenanceWindows</i> Describes a group of <code>DeferredMaintenanceWindow</code> objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ElasticResizeNumberOfNodeOptions</i> The number of nodes that you can resize the cluster to with the elastic resize method. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaintenanceTrackName</i> The name of the maintenance track for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingActions</i> Cluster operations that are waiting to be started.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IamRoles</i> A list of AWS Identity and Access Management (IAM) roles that can be used by the cluster to access other AWS services.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnhancedVpcRouting</i> An option that specifies whether to create the cluster with enhanced VPC routing enabled. To create a cluster that uses enhanced VPC routing, the cluster must be in a VPC. For more information, see <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html">Enhanced VPC Routing</a> in the Amazon Redshift Cluster Management Guide. If this option is <code>true</code>, enhanced VPC routing is enabled.  Default: false<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The AWS Key Management Service (AWS KMS) key ID of the encryption key used to encrypt data in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The list of tags for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterRevisionNumber</i> The specific revision number of the database in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ElasticIpStatus</i> The status of the elastic IP (EIP) address.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ElasticIpStatus</b>: The status of the elastic IP (EIP) address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterNodes</i> The nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterPublicKey</i> The public key for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterSnapshotCopyStatus</i> A value that returns the destination region and retention period that are configured for cross-region snapshot copy.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ClusterSnapshotCopyStatus</b>: A value that returns the destination region and retention period that are configured for cross-region snapshot copy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HsmStatus</i> A value that reports whether the Amazon Redshift cluster has finished applying any hardware security module (HSM) settings changes specified in a modify cluster command. Values: active, applying&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>HsmStatus</b>: A value that reports whether the Amazon Redshift cluster has finished applying any hardware security module (HSM) settings changes specified in a modify cluster command. Values: active, applying<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataTransferProgress</i> <p/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DataTransferProgress</b>: <p/><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RestoreStatus</i> A value that describes the status of a cluster restore action. This parameter returns null if the cluster was not created by restoring a snapshot.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RestoreStatus</b>: A value that describes the status of a cluster restore action. This parameter returns null if the cluster was not created by restoring a snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Encrypted</i> A boolean value that, if <code>true</code>, indicates that data in the cluster is encrypted at rest.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PubliclyAccessible</i> A boolean value that, if <code>true</code>, indicates that the cluster can be accessed from a public network.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberOfNodes</i> The number of compute nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowVersionUpgrade</i> A boolean value that, if <code>true</code>, indicates that major version upgrades will be applied automatically to the cluster during the maintenance window. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterVersion</i> The version ID of the Amazon Redshift engine that is running on the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingModifiedValues</i> A value that, if present, indicates that changes to the cluster are pending. Specific pending changes are identified by subelements.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingModifiedValues</b>: A value that, if present, indicates that changes to the cluster are pending. Specific pending changes are identified by subelements.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i> The weekly time range, in Universal Coordinated Time (UTC), during which system maintenance can occur.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZone</i> The name of the Availability Zone in which the cluster is located.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The identifier of the VPC the cluster is in, if the cluster is in a VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterSubnetGroupName</i> The name of the subnet group that is associated with the cluster. This parameter is valid only when the cluster is in a VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterParameterGroups</i> The list of cluster parameter groups that are associated with this cluster. Each parameter group in the list is returned with its status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcSecurityGroups</i> A list of Amazon Virtual Private Cloud (Amazon VPC) security groups that are associated with the cluster. This parameter is returned only if the cluster is in a VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterSecurityGroups</i> A list of cluster security group that are associated with the cluster. Each security group is represented by an element that contains <code>ClusterSecurityGroup.Name</code> and <code>ClusterSecurityGroup.Status</code> subelements.  Cluster security groups are used when the cluster is not created in an Amazon Virtual Private Cloud (VPC). Clusters that are created in a VPC use VPC security groups, which are listed by the <b>VpcSecurityGroups</b> parameter. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ManualSnapshotRetentionPeriod</i> The default number of days to retain a manual snapshot. If the value is -1, the snapshot is retained indefinitely. This setting doesn't change the retention period of existing snapshots. The value must be either -1 or an integer between 1 and 3,653.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomatedSnapshotRetentionPeriod</i> The number of days that automatic cluster snapshots are retained.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterCreateTime</i> The date and time that the cluster was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i> The connection endpoint.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Endpoint</b>: The connection endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBName</i> The name of the initial database that was created when the cluster was created. This same name is returned for the life of the cluster. If an initial database was not specified, a database named <code>dev</code>dev was created by default. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUsername</i> The master user name for the cluster. This name is used to connect to the database that is specified in the <b>DBName</b> parameter. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ModifyStatus</i> The status of a modify operation, if any, initiated for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterAvailabilityStatus</i> The availability status of the cluster for queries. Possible values are the following: <ul> <li> Available - The cluster is available for queries.  </li> <li> Unavailable - The cluster is not available for queries. </li> <li> Maintenance - The cluster is intermittently available for queries due to maintenance activities. </li> <li> Modifying - The cluster is intermittently available for queries due to changes that modify the cluster. </li> <li> Failed - The cluster failed and is not available for queries. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterStatus</i>  The current state of the cluster. Possible values are the following: <ul> <li>  <code>available</code>  </li> <li>  <code>available, prep-for-resize</code>  </li> <li>  <code>available, resize-cleanup</code>  </li> <li>  <code>cancelling-resize</code>  </li> <li>  <code>creating</code>  </li> <li>  <code>deleting</code>  </li> <li>  <code>final-snapshot</code>  </li> <li>  <code>hardware-failure</code>  </li> <li>  <code>incompatible-hsm</code>  </li> <li>  <code>incompatible-network</code>  </li> <li>  <code>incompatible-parameters</code>  </li> <li>  <code>incompatible-restore</code>  </li> <li>  <code>modifying</code>  </li> <li>  <code>paused</code>  </li> <li>  <code>rebooting</code>  </li> <li>  <code>renaming</code>  </li> <li>  <code>resizing</code>  </li> <li>  <code>rotating-keys</code>  </li> <li>  <code>storage-full</code>  </li> <li>  <code>updating-hsm</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NodeType</i> The node type for the nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterIdentifier</i> The unique identifier of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcEndpoints</i> Describes a connection endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> The port that the database engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Address</i> The DNS address of the Cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EncryptionType</i> The encryption type for a cluster. Possible values are: KMS and None. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaintenanceTrackName</i> The name of the maintenance track that the cluster will change to during the next maintenance window.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EnhancedVpcRouting</i> An option that specifies whether to create the cluster with enhanced VPC routing enabled. To create a cluster that uses enhanced VPC routing, the cluster must be in a VPC. For more information, see <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html">Enhanced VPC Routing</a> in the Amazon Redshift Cluster Management Guide. If this option is <code>true</code>, enhanced VPC routing is enabled.  Default: false<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PubliclyAccessible</i> The pending or in-progress change of the ability to connect to the cluster from the public network.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterIdentifier</i> The pending or in-progress change of the new identifier for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomatedSnapshotRetentionPeriod</i> The pending or in-progress change of the automated snapshot retention period.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterVersion</i> The pending or in-progress change of the service version.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterType</i> The pending or in-progress change of the cluster type.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberOfNodes</i> The pending or in-progress change of the number of nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NodeType</i> The pending or in-progress change of the cluster's node type.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUserPassword</i> The pending or in-progress change of the master user password for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EstimatedTimeToCompletionInSeconds</i> The estimate of the time remaining before the restore will complete. Returns 0 for a completed restore. This field is only updated when you restore to DC2 and DS2 node types. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ElapsedTimeInSeconds</i> The amount of time an in-progress restore has been running, or the amount of time it took a completed restore to finish. This field is only updated when you restore to DC2 and DS2 node types. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ProgressInMegaBytes</i> The number of megabytes that have been transferred from snapshot storage. This field is only updated when you restore to DC2 and DS2 node types. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotSizeInMegaBytes</i> The size of the set of snapshot data used to restore the cluster. This field is only updated when you restore to DC2 and DS2 node types. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CurrentRestoreRateInMegaBytesPerSecond</i> The number of megabytes per second being transferred from the backup storage. Returns the average rate for a completed backup. This field is only updated when you restore to DC2 and DS2 node types. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the restore action. Returns starting, restoring, completed, or failed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ElapsedTimeInSeconds</i> Describes the number of seconds that have elapsed during the data transfer.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EstimatedTimeToCompletionInSeconds</i> Describes the estimated number of seconds remaining to complete the transfer.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DataTransferredInMegaBytes</i> Describes the total amount of data that has been transfered in MB's.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalDataInMegaBytes</i> Describes the total amount of data to be transfered in megabytes.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CurrentRateInMegaBytesPerSecond</i> Describes the data transfer rate in MB's per second.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Describes the status of the cluster. While the transfer is in progress the status is <code>transferringdata</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Reports whether the Amazon Redshift cluster has finished applying any HSM settings changes specified in a modify cluster command. Values: active, applying<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HsmConfigurationIdentifier</i> Specifies the name of the HSM configuration that contains the information the Amazon Redshift cluster can use to retrieve and store keys in an HSM.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HsmClientCertificateIdentifier</i> Specifies the name of the HSM client certificate the Amazon Redshift cluster uses to retrieve the data encryption keys stored in an HSM.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotCopyGrantName</i> The name of the snapshot copy grant.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ManualSnapshotRetentionPeriod</i> The number of days that automated snapshots are retained in the destination region after they are copied from a source region. If the value is -1, the manual snapshot is retained indefinitely.  The value must be either -1 or an integer between 1 and 3,653.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RetentionPeriod</i> The number of days that automated snapshots are retained in the destination region after they are copied from a source region.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DestinationRegion</i> The destination region that snapshots are automatically copied to when cross-region snapshot copy is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the elastic IP (EIP) address.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ElasticIp</i> The elastic IP (EIP) address for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowCancelResize</i> A boolean value indicating if the resize operation can be cancelled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ResizeType</i> Returns the value <code>ClassicResize</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AquaConfigurationStatus</i> The value represents how the cluster is configured to use AQUA. Possible values include the following. <ul> <li> enabled - Use AQUA if it is available for the current AWS Region and Amazon Redshift node type. </li> <li> disabled - Don't use AQUA.  </li> <li> auto - Amazon Redshift determines whether to use AQUA. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AquaStatus</i> The value indicates the status of AQUA on the cluster. Possible values include the following. <ul> <li> enabled - AQUA is enabled. </li> <li> disabled - AQUA is not enabled.  </li> <li> applying - AQUA status is being applied.  </li> </ul><br/>        """
        pass

    def get_cluster_credentials(self, ClusterIdentifier: str, DbUser: str, DbName: str=None, DurationSeconds: int=None, AutoCreate: BooleanOptional=None, DbGroups: List[String]=None) -> ClusterCredentials:
        r"""Returns a database user name and temporary password with temporary authorization to log on to an Amazon Redshift database. The action returns the database user name prefixed with <code>IAM:</code> if <code>AutoCreate</code> is <code>False</code> or <code>IAMA:</code> if <code>AutoCreate</code> is <code>True</code>. You can optionally specify one or more database user groups that the user will join at log on. By default, the temporary credentials expire in 900 seconds. You can optionally specify a duration between 900 seconds (15 minutes) and 3600 seconds (60 minutes). For more information, see <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/generating-user-credentials.html">Using IAM Authentication to Generate Database User Credentials</a> in the Amazon Redshift Cluster Management Guide. The AWS Identity and Access Management (IAM)user or role that executes GetClusterCredentials must have an IAM policy attached that allows access to all necessary actions and resources. For more information about permissions, see <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-access-control-identity-based.html#redshift-policy-resources.getclustercredentials-resources">Resource Policies for GetClusterCredentials</a> in the Amazon Redshift Cluster Management Guide. If the <code>DbGroups</code> parameter is specified, the IAM policy must allow the <code>redshift:JoinGroup</code> action with access to the listed <code>dbgroups</code>.  In addition, if the <code>AutoCreate</code> parameter is set to <code>True</code>, then the policy must include the <code>redshift:CreateClusterUser</code> privilege. If the <code>DbName</code> parameter is specified, the IAM policy must allow access to the resource <code>dbname</code> for the specified database name. 

        :param self:
        :param DbGroups:  A list of the names of existing database groups that the user named in <code>DbUser</code> will join for the current session, in addition to any group memberships for an existing user. If not specified, a new user is added only to PUBLIC. Database group name constraints <ul> <li> Must be 1 to 64 alphanumeric characters or hyphens </li> <li> Must contain only lowercase letters, numbers, underscore, plus sign, period (dot), at symbol (@), or hyphen. </li> <li> First character must be a letter. </li> <li> Must not contain a colon ( : ) or slash ( / ).  </li> <li> Cannot be a reserved word. A list of reserved words can be found in <a href="http://docs.aws.amazon.com/redshift/latest/dg/r_pg_keywords.html">Reserved Words</a> in the Amazon Redshift Database Developer Guide. </li> </ul><br/>AutoCreate:  Create a database user with the name specified for the user named in <code>DbUser</code> if one does not exist.<br/>DurationSeconds:  The number of seconds until the returned temporary password expires. Constraint: minimum 900, maximum 3600. Default: 900<br/>ClusterIdentifier:  The unique identifier of the cluster that contains the database for which your are requesting credentials. This parameter is case sensitive.<br/>DbName:  The name of a database that <code>DbUser</code> is authorized to log on to. If <code>DbName</code> is not specified, <code>DbUser</code> can log on to any existing database. Constraints: <ul> <li> Must be 1 to 64 alphanumeric characters or hyphens </li> <li> Must contain only lowercase letters, numbers, underscore, plus sign, period (dot), at symbol (@), or hyphen. </li> <li> First character must be a letter. </li> <li> Must not contain a colon ( : ) or slash ( / ).  </li> <li> Cannot be a reserved word. A list of reserved words can be found in <a href="http://docs.aws.amazon.com/redshift/latest/dg/r_pg_keywords.html">Reserved Words</a> in the Amazon Redshift Database Developer Guide. </li> </ul><br/>DbUser:  The name of a database user. If a user name matching <code>DbUser</code> exists in the database, the temporary user credentials have the same permissions as the existing user. If <code>DbUser</code> doesn't exist in the database and <code>Autocreate</code> is <code>True</code>, a new user is created using the value for <code>DbUser</code> with PUBLIC permissions. If a database user matching the value for <code>DbUser</code> doesn't exist and <code>Autocreate</code> is <code>False</code>, then the command succeeds but the connection attempt will fail because the user doesn't exist in the database. For more information, see <a href="https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_USER.html">CREATE USER</a> in the Amazon Redshift Database Developer Guide.  Constraints: <ul> <li> Must be 1 to 64 alphanumeric characters or hyphens. The user name can't be <code>PUBLIC</code>. </li> <li> Must contain only lowercase letters, numbers, underscore, plus sign, period (dot), at symbol (@), or hyphen. </li> <li> First character must be a letter. </li> <li> Must not contain a colon ( : ) or slash ( / ).  </li> <li> Cannot be a reserved word. A list of reserved words can be found in <a href="http://docs.aws.amazon.com/redshift/latest/dg/r_pg_keywords.html">Reserved Words</a> in the Amazon Redshift Database Developer Guide. </li> </ul><br/>
        :return: Expiration:  The date and time the password in <code>DbPassword</code> expires.<br/>DbPassword:  A temporary password that authorizes the user name returned by <code>DbUser</code> to log on to the database <code>DbName</code>. <br/>DbUser:  A database user name that is authorized to log on to the database <code>DbName</code> using the password <code>DbPassword</code>. If the specified DbUser exists in the database, the new user name has the same database privileges as the the user named in DbUser. By default, the user is added to PUBLIC. If the <code>DbGroups</code> parameter is specifed, <code>DbUser</code> is added to the listed groups for any sessions created using these credentials.<br/>        """
        pass

    def get_reserved_node_exchange_offerings(self, ReservedNodeId: str, MaxRecords: int=None, Marker: str=None) -> GetReservedNodeExchangeOfferingsOutputMessage:
        r"""Returns an array of DC2 ReservedNodeOfferings that matches the payment type, term, and usage price of the given DC1 reserved node.

        :param self:
        :param Marker:  A value that indicates the starting point for the next set of ReservedNodeOfferings.<br/>MaxRecords:  An integer setting the maximum number of ReservedNodeOfferings to retrieve.<br/>ReservedNodeId:  A string representing the node identifier for the DC1 Reserved Node to be exchanged.<br/>
        :return: ReservedNodeOfferings:  Returns an array of <a>ReservedNodeOffering</a> objects.<br/>Marker:  An optional parameter that specifies the starting point for returning a set of response records. When the results of a <code>GetReservedNodeExchangeOfferings</code> request exceed the value specified in MaxRecords, Amazon Redshift returns a value in the marker field of the response. You can retrieve the next set of response records by providing the returned marker value in the marker parameter and retrying the request. <br/>        """
        pass

    def modify_aqua_configuration(self, ClusterIdentifier: str, AquaConfigurationStatus: str=None) -> ModifyAquaOutputMessage:
        r"""Modifies whether a cluster can use AQUA (Advanced Query Accelerator). 

        :param self:
        :param AquaConfigurationStatus:  The new value of AQUA configuration status. Possible values include the following. <ul> <li> enabled - Use AQUA if it is available for the current AWS Region and Amazon Redshift node type. </li> <li> disabled - Don't use AQUA.  </li> <li> auto - Amazon Redshift determines whether to use AQUA. </li> </ul><br/>ClusterIdentifier:  The identifier of the cluster to be modified.<br/>
        :return: AquaConfiguration:  The updated AQUA configuration of the cluster. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AquaConfigurationStatus</i> The value represents how the cluster is configured to use AQUA. Possible values include the following. <ul> <li> enabled - Use AQUA if it is available for the current AWS Region and Amazon Redshift node type. </li> <li> disabled - Don't use AQUA.  </li> <li> auto - Amazon Redshift determines whether to use AQUA. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AquaStatus</i> The value indicates the status of AQUA on the cluster. Possible values include the following. <ul> <li> enabled - AQUA is enabled. </li> <li> disabled - AQUA is not enabled.  </li> <li> applying - AQUA status is being applied.  </li> </ul><br/>        """
        pass

    def modify_cluster(self, ClusterIdentifier: str, ClusterType: str=None, NodeType: str=None, NumberOfNodes: int=None, ClusterSecurityGroups: List[String]=None, VpcSecurityGroupIds: List[String]=None, MasterUserPassword: str=None, ClusterParameterGroupName: str=None, AutomatedSnapshotRetentionPeriod: int=None, ManualSnapshotRetentionPeriod: int=None, PreferredMaintenanceWindow: str=None, ClusterVersion: str=None, AllowVersionUpgrade: BooleanOptional=None, HsmClientCertificateIdentifier: str=None, HsmConfigurationIdentifier: str=None, NewClusterIdentifier: str=None, PubliclyAccessible: BooleanOptional=None, ElasticIp: str=None, EnhancedVpcRouting: BooleanOptional=None, MaintenanceTrackName: str=None, Encrypted: BooleanOptional=None, KmsKeyId: str=None, AvailabilityZoneRelocation: BooleanOptional=None, AvailabilityZone: str=None, Port: int=None) -> ModifyClusterResult:
        r"""Modifies the settings for a cluster. You can also change node type and the number of nodes to scale up or down the cluster. When resizing a cluster, you must specify both the number of nodes and the node type even if one of the parameters does not change. You can add another security or parameter group, or change the master user password. Resetting a cluster password or modifying the security groups associated with a cluster do not need a reboot. However, modifying a parameter group requires a reboot for parameters to take effect. For more information about managing clusters, go to <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html">Amazon Redshift Clusters</a> in the <i>Amazon Redshift Cluster Management Guide</i>.

        :param self:
        :param Port:  The option to change the port of an Amazon Redshift cluster.<br/>AvailabilityZone:  The option to initiate relocation for an Amazon Redshift cluster to the target Availability Zone.<br/>AvailabilityZoneRelocation:  The option to enable relocation for an Amazon Redshift cluster between Availability Zones after the cluster modification is complete.<br/>KmsKeyId:  The AWS Key Management Service (KMS) key ID of the encryption key that you want to use to encrypt data in the cluster.<br/>Encrypted:  Indicates whether the cluster is encrypted. If the value is encrypted (true) and you provide a value for the <code>KmsKeyId</code> parameter, we encrypt the cluster with the provided <code>KmsKeyId</code>. If you don't provide a <code>KmsKeyId</code>, we encrypt with the default key.  If the value is not encrypted (false), then the cluster is decrypted. <br/>MaintenanceTrackName:  The name for the maintenance track that you want to assign for the cluster. This name change is asynchronous. The new track name stays in the <code>PendingModifiedValues</code> for the cluster until the next maintenance window. When the maintenance track changes, the cluster is switched to the latest cluster release available for the maintenance track. At this point, the maintenance track name is applied.<br/>EnhancedVpcRouting:  An option that specifies whether to create the cluster with enhanced VPC routing enabled. To create a cluster that uses enhanced VPC routing, the cluster must be in a VPC. For more information, see <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html">Enhanced VPC Routing</a> in the Amazon Redshift Cluster Management Guide. If this option is <code>true</code>, enhanced VPC routing is enabled.  Default: false<br/>ElasticIp:  The Elastic IP (EIP) address for the cluster. Constraints: The cluster must be provisioned in EC2-VPC and publicly-accessible through an Internet gateway. For more information about provisioning clusters in EC2-VPC, go to <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html#cluster-platforms">Supported Platforms to Launch Your Cluster</a> in the Amazon Redshift Cluster Management Guide.<br/>PubliclyAccessible:  If <code>true</code>, the cluster can be accessed from a public network. Only clusters in VPCs can be set to be publicly available.<br/>NewClusterIdentifier:  The new identifier for the cluster. Constraints: <ul> <li> Must contain from 1 to 63 alphanumeric characters or hyphens. </li> <li> Alphabetic characters must be lowercase. </li> <li> First character must be a letter. </li> <li> Cannot end with a hyphen or contain two consecutive hyphens. </li> <li> Must be unique for all clusters within an AWS account. </li> </ul> Example: <code>examplecluster</code> <br/>HsmConfigurationIdentifier:  Specifies the name of the HSM configuration that contains the information the Amazon Redshift cluster can use to retrieve and store keys in an HSM.<br/>HsmClientCertificateIdentifier:  Specifies the name of the HSM client certificate the Amazon Redshift cluster uses to retrieve the data encryption keys stored in an HSM.<br/>AllowVersionUpgrade:  If <code>true</code>, major version upgrades will be applied automatically to the cluster during the maintenance window.  Default: <code>false</code> <br/>ClusterVersion:  The new version number of the Amazon Redshift engine to upgrade to. For major version upgrades, if a non-default cluster parameter group is currently in use, a new cluster parameter group in the cluster parameter group family for the new version must be specified. The new cluster parameter group can be the default for that cluster parameter group family. For more information about parameters and parameter groups, go to <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-parameter-groups.html">Amazon Redshift Parameter Groups</a> in the <i>Amazon Redshift Cluster Management Guide</i>. Example: <code>1.0</code> <br/>PreferredMaintenanceWindow:  The weekly time range (in UTC) during which system maintenance can occur, if necessary. If system maintenance is necessary during the window, it may result in an outage. This maintenance window change is made immediately. If the new maintenance window indicates the current time, there must be at least 120 minutes between the current time and end of the window in order to ensure that pending changes are applied. Default: Uses existing setting. Format: ddd:hh24:mi-ddd:hh24:mi, for example <code>wed:07:30-wed:08:00</code>. Valid Days: Mon | Tue | Wed | Thu | Fri | Sat | Sun Constraints: Must be at least 30 minutes.<br/>ManualSnapshotRetentionPeriod:  The default for number of days that a newly created manual snapshot is retained. If the value is -1, the manual snapshot is retained indefinitely. This value doesn't retroactively change the retention periods of existing manual snapshots. The value must be either -1 or an integer between 1 and 3,653. The default value is -1.<br/>AutomatedSnapshotRetentionPeriod:  The number of days that automated snapshots are retained. If the value is 0, automated snapshots are disabled. Even if automated snapshots are disabled, you can still create manual snapshots when you want with <a>CreateClusterSnapshot</a>.  If you decrease the automated snapshot retention period from its current value, existing automated snapshots that fall outside of the new retention period will be immediately deleted. You can't disable automated snapshots for RA3 node types. Set the automated retention period from 1-35 days. Default: Uses existing setting. Constraints: Must be a value from 0 to 35.<br/>ClusterParameterGroupName:  The name of the cluster parameter group to apply to this cluster. This change is applied only after the cluster is rebooted. To reboot a cluster use <a>RebootCluster</a>.  Default: Uses existing setting. Constraints: The cluster parameter group must be in the same parameter group family that matches the cluster version.<br/>MasterUserPassword:  The new password for the cluster master user. This change is asynchronously applied as soon as possible. Between the time of the request and the completion of the request, the <code>MasterUserPassword</code> element exists in the <code>PendingModifiedValues</code> element of the operation response.  <note> Operations never return the password, so this operation provides a way to regain access to the master user account for a cluster if the password is lost. </note> Default: Uses existing setting. Constraints: <ul> <li> Must be between 8 and 64 characters in length. </li> <li> Must contain at least one uppercase letter. </li> <li> Must contain at least one lowercase letter. </li> <li> Must contain one number. </li> <li> Can be any printable ASCII character (ASCII code 33 to 126) except ' (single quote), " (double quote), \, /, @, or space. </li> </ul><br/>VpcSecurityGroupIds:  A list of virtual private cloud (VPC) security groups to be associated with the cluster. This change is asynchronously applied as soon as possible.<br/>ClusterSecurityGroups:  A list of cluster security groups to be authorized on this cluster. This change is asynchronously applied as soon as possible. Security groups currently associated with the cluster, and not in the list of groups to apply, will be revoked from the cluster. Constraints: <ul> <li> Must be 1 to 255 alphanumeric characters or hyphens </li> <li> First character must be a letter </li> <li> Cannot end with a hyphen or contain two consecutive hyphens </li> </ul><br/>NumberOfNodes:  The new number of nodes of the cluster. If you specify a new number of nodes, you must also specify the node type parameter.  For more information about resizing clusters, go to <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/rs-resize-tutorial.html">Resizing Clusters in Amazon Redshift</a> in the <i>Amazon Redshift Cluster Management Guide</i>. Valid Values: Integer greater than <code>0</code>.<br/>NodeType:  The new node type of the cluster. If you specify a new node type, you must also specify the number of nodes parameter.  For more information about resizing clusters, go to <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/rs-resize-tutorial.html">Resizing Clusters in Amazon Redshift</a> in the <i>Amazon Redshift Cluster Management Guide</i>. Valid Values: <code>ds2.xlarge</code> | <code>ds2.8xlarge</code> | <code>dc1.large</code> | <code>dc1.8xlarge</code> | <code>dc2.large</code> | <code>dc2.8xlarge</code> | <code>ra3.xlplus</code> | <code>ra3.4xlarge</code> | <code>ra3.16xlarge</code> <br/>ClusterType:  The new cluster type. When you submit your cluster resize request, your existing cluster goes into a read-only mode. After Amazon Redshift provisions a new cluster based on your resize requirements, there will be outage for a period while the old cluster is deleted and your connection is switched to the new cluster. You can use <a>DescribeResize</a> to track the progress of the resize request.  Valid Values: <code> multi-node | single-node </code> <br/>ClusterIdentifier:  The unique identifier of the cluster to be modified. Example: <code>examplecluster</code> <br/>
        :return: Cluster:  Describes a cluster.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AquaConfiguration</i> The AQUA (Advanced Query Accelerator) configuration of the cluster.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AquaConfiguration</b>: The AQUA (Advanced Query Accelerator) configuration of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalStorageCapacityInMegaBytes</i> The total storage capacity of the cluster in megabytes. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterNamespaceArn</i> The namespace Amazon Resource Name (ARN) of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZoneRelocationStatus</i> Describes the status of the Availability Zone relocation operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResizeInfo</i> Returns the following: <ul> <li> AllowCancelResize: a boolean value indicating if the resize operation can be cancelled. </li> <li> ResizeType: Returns ClassicResize </li> </ul>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ResizeInfo</b>: Returns the following: <ul> <li> AllowCancelResize: a boolean value indicating if the resize operation can be cancelled. </li> <li> ResizeType: Returns ClassicResize </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NextMaintenanceWindowStartTime</i> The date and time in UTC when system maintenance can begin.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExpectedNextSnapshotScheduleTimeStatus</i>  The status of next expected snapshot for clusters having a valid snapshot schedule and backups enabled. Possible values are the following: <ul> <li> OnTrack - The next snapshot is expected to be taken on time.  </li> <li> Pending - The next snapshot is pending to be taken.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExpectedNextSnapshotScheduleTime</i> The date and time when the next snapshot is expected to be taken for clusters with a valid snapshot schedule and backups enabled. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotScheduleState</i> The current state of the cluster snapshot schedule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotScheduleIdentifier</i> A unique identifier for the cluster snapshot schedule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeferredMaintenanceWindows</i> Describes a group of <code>DeferredMaintenanceWindow</code> objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ElasticResizeNumberOfNodeOptions</i> The number of nodes that you can resize the cluster to with the elastic resize method. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaintenanceTrackName</i> The name of the maintenance track for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingActions</i> Cluster operations that are waiting to be started.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IamRoles</i> A list of AWS Identity and Access Management (IAM) roles that can be used by the cluster to access other AWS services.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnhancedVpcRouting</i> An option that specifies whether to create the cluster with enhanced VPC routing enabled. To create a cluster that uses enhanced VPC routing, the cluster must be in a VPC. For more information, see <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html">Enhanced VPC Routing</a> in the Amazon Redshift Cluster Management Guide. If this option is <code>true</code>, enhanced VPC routing is enabled.  Default: false<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The AWS Key Management Service (AWS KMS) key ID of the encryption key used to encrypt data in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The list of tags for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterRevisionNumber</i> The specific revision number of the database in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ElasticIpStatus</i> The status of the elastic IP (EIP) address.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ElasticIpStatus</b>: The status of the elastic IP (EIP) address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterNodes</i> The nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterPublicKey</i> The public key for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterSnapshotCopyStatus</i> A value that returns the destination region and retention period that are configured for cross-region snapshot copy.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ClusterSnapshotCopyStatus</b>: A value that returns the destination region and retention period that are configured for cross-region snapshot copy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HsmStatus</i> A value that reports whether the Amazon Redshift cluster has finished applying any hardware security module (HSM) settings changes specified in a modify cluster command. Values: active, applying&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>HsmStatus</b>: A value that reports whether the Amazon Redshift cluster has finished applying any hardware security module (HSM) settings changes specified in a modify cluster command. Values: active, applying<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataTransferProgress</i> <p/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DataTransferProgress</b>: <p/><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RestoreStatus</i> A value that describes the status of a cluster restore action. This parameter returns null if the cluster was not created by restoring a snapshot.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RestoreStatus</b>: A value that describes the status of a cluster restore action. This parameter returns null if the cluster was not created by restoring a snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Encrypted</i> A boolean value that, if <code>true</code>, indicates that data in the cluster is encrypted at rest.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PubliclyAccessible</i> A boolean value that, if <code>true</code>, indicates that the cluster can be accessed from a public network.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberOfNodes</i> The number of compute nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowVersionUpgrade</i> A boolean value that, if <code>true</code>, indicates that major version upgrades will be applied automatically to the cluster during the maintenance window. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterVersion</i> The version ID of the Amazon Redshift engine that is running on the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingModifiedValues</i> A value that, if present, indicates that changes to the cluster are pending. Specific pending changes are identified by subelements.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingModifiedValues</b>: A value that, if present, indicates that changes to the cluster are pending. Specific pending changes are identified by subelements.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i> The weekly time range, in Universal Coordinated Time (UTC), during which system maintenance can occur.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZone</i> The name of the Availability Zone in which the cluster is located.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The identifier of the VPC the cluster is in, if the cluster is in a VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterSubnetGroupName</i> The name of the subnet group that is associated with the cluster. This parameter is valid only when the cluster is in a VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterParameterGroups</i> The list of cluster parameter groups that are associated with this cluster. Each parameter group in the list is returned with its status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcSecurityGroups</i> A list of Amazon Virtual Private Cloud (Amazon VPC) security groups that are associated with the cluster. This parameter is returned only if the cluster is in a VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterSecurityGroups</i> A list of cluster security group that are associated with the cluster. Each security group is represented by an element that contains <code>ClusterSecurityGroup.Name</code> and <code>ClusterSecurityGroup.Status</code> subelements.  Cluster security groups are used when the cluster is not created in an Amazon Virtual Private Cloud (VPC). Clusters that are created in a VPC use VPC security groups, which are listed by the <b>VpcSecurityGroups</b> parameter. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ManualSnapshotRetentionPeriod</i> The default number of days to retain a manual snapshot. If the value is -1, the snapshot is retained indefinitely. This setting doesn't change the retention period of existing snapshots. The value must be either -1 or an integer between 1 and 3,653.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomatedSnapshotRetentionPeriod</i> The number of days that automatic cluster snapshots are retained.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterCreateTime</i> The date and time that the cluster was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i> The connection endpoint.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Endpoint</b>: The connection endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBName</i> The name of the initial database that was created when the cluster was created. This same name is returned for the life of the cluster. If an initial database was not specified, a database named <code>dev</code>dev was created by default. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUsername</i> The master user name for the cluster. This name is used to connect to the database that is specified in the <b>DBName</b> parameter. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ModifyStatus</i> The status of a modify operation, if any, initiated for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterAvailabilityStatus</i> The availability status of the cluster for queries. Possible values are the following: <ul> <li> Available - The cluster is available for queries.  </li> <li> Unavailable - The cluster is not available for queries. </li> <li> Maintenance - The cluster is intermittently available for queries due to maintenance activities. </li> <li> Modifying - The cluster is intermittently available for queries due to changes that modify the cluster. </li> <li> Failed - The cluster failed and is not available for queries. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterStatus</i>  The current state of the cluster. Possible values are the following: <ul> <li>  <code>available</code>  </li> <li>  <code>available, prep-for-resize</code>  </li> <li>  <code>available, resize-cleanup</code>  </li> <li>  <code>cancelling-resize</code>  </li> <li>  <code>creating</code>  </li> <li>  <code>deleting</code>  </li> <li>  <code>final-snapshot</code>  </li> <li>  <code>hardware-failure</code>  </li> <li>  <code>incompatible-hsm</code>  </li> <li>  <code>incompatible-network</code>  </li> <li>  <code>incompatible-parameters</code>  </li> <li>  <code>incompatible-restore</code>  </li> <li>  <code>modifying</code>  </li> <li>  <code>paused</code>  </li> <li>  <code>rebooting</code>  </li> <li>  <code>renaming</code>  </li> <li>  <code>resizing</code>  </li> <li>  <code>rotating-keys</code>  </li> <li>  <code>storage-full</code>  </li> <li>  <code>updating-hsm</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NodeType</i> The node type for the nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterIdentifier</i> The unique identifier of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcEndpoints</i> Describes a connection endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> The port that the database engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Address</i> The DNS address of the Cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EncryptionType</i> The encryption type for a cluster. Possible values are: KMS and None. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaintenanceTrackName</i> The name of the maintenance track that the cluster will change to during the next maintenance window.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EnhancedVpcRouting</i> An option that specifies whether to create the cluster with enhanced VPC routing enabled. To create a cluster that uses enhanced VPC routing, the cluster must be in a VPC. For more information, see <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html">Enhanced VPC Routing</a> in the Amazon Redshift Cluster Management Guide. If this option is <code>true</code>, enhanced VPC routing is enabled.  Default: false<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PubliclyAccessible</i> The pending or in-progress change of the ability to connect to the cluster from the public network.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterIdentifier</i> The pending or in-progress change of the new identifier for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomatedSnapshotRetentionPeriod</i> The pending or in-progress change of the automated snapshot retention period.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterVersion</i> The pending or in-progress change of the service version.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterType</i> The pending or in-progress change of the cluster type.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberOfNodes</i> The pending or in-progress change of the number of nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NodeType</i> The pending or in-progress change of the cluster's node type.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUserPassword</i> The pending or in-progress change of the master user password for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EstimatedTimeToCompletionInSeconds</i> The estimate of the time remaining before the restore will complete. Returns 0 for a completed restore. This field is only updated when you restore to DC2 and DS2 node types. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ElapsedTimeInSeconds</i> The amount of time an in-progress restore has been running, or the amount of time it took a completed restore to finish. This field is only updated when you restore to DC2 and DS2 node types. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ProgressInMegaBytes</i> The number of megabytes that have been transferred from snapshot storage. This field is only updated when you restore to DC2 and DS2 node types. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotSizeInMegaBytes</i> The size of the set of snapshot data used to restore the cluster. This field is only updated when you restore to DC2 and DS2 node types. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CurrentRestoreRateInMegaBytesPerSecond</i> The number of megabytes per second being transferred from the backup storage. Returns the average rate for a completed backup. This field is only updated when you restore to DC2 and DS2 node types. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the restore action. Returns starting, restoring, completed, or failed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ElapsedTimeInSeconds</i> Describes the number of seconds that have elapsed during the data transfer.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EstimatedTimeToCompletionInSeconds</i> Describes the estimated number of seconds remaining to complete the transfer.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DataTransferredInMegaBytes</i> Describes the total amount of data that has been transfered in MB's.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalDataInMegaBytes</i> Describes the total amount of data to be transfered in megabytes.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CurrentRateInMegaBytesPerSecond</i> Describes the data transfer rate in MB's per second.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Describes the status of the cluster. While the transfer is in progress the status is <code>transferringdata</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Reports whether the Amazon Redshift cluster has finished applying any HSM settings changes specified in a modify cluster command. Values: active, applying<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HsmConfigurationIdentifier</i> Specifies the name of the HSM configuration that contains the information the Amazon Redshift cluster can use to retrieve and store keys in an HSM.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HsmClientCertificateIdentifier</i> Specifies the name of the HSM client certificate the Amazon Redshift cluster uses to retrieve the data encryption keys stored in an HSM.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotCopyGrantName</i> The name of the snapshot copy grant.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ManualSnapshotRetentionPeriod</i> The number of days that automated snapshots are retained in the destination region after they are copied from a source region. If the value is -1, the manual snapshot is retained indefinitely.  The value must be either -1 or an integer between 1 and 3,653.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RetentionPeriod</i> The number of days that automated snapshots are retained in the destination region after they are copied from a source region.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DestinationRegion</i> The destination region that snapshots are automatically copied to when cross-region snapshot copy is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the elastic IP (EIP) address.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ElasticIp</i> The elastic IP (EIP) address for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowCancelResize</i> A boolean value indicating if the resize operation can be cancelled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ResizeType</i> Returns the value <code>ClassicResize</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AquaConfigurationStatus</i> The value represents how the cluster is configured to use AQUA. Possible values include the following. <ul> <li> enabled - Use AQUA if it is available for the current AWS Region and Amazon Redshift node type. </li> <li> disabled - Don't use AQUA.  </li> <li> auto - Amazon Redshift determines whether to use AQUA. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AquaStatus</i> The value indicates the status of AQUA on the cluster. Possible values include the following. <ul> <li> enabled - AQUA is enabled. </li> <li> disabled - AQUA is not enabled.  </li> <li> applying - AQUA status is being applied.  </li> </ul><br/>        """
        pass

    def modify_cluster_db_revision(self, RevisionTarget: str, ClusterIdentifier: str) -> ModifyClusterDbRevisionResult:
        r"""Modifies the database revision of a cluster. The database revision is a unique revision of the database running in a cluster.

        :param self:
        :param RevisionTarget:  The identifier of the database revision. You can retrieve this value from the response to the <a>DescribeClusterDbRevisions</a> request.<br/>ClusterIdentifier:  The unique identifier of a cluster whose database revision you want to modify.  Example: <code>examplecluster</code> <br/>
        :return: Cluster:  Describes a cluster.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AquaConfiguration</i> The AQUA (Advanced Query Accelerator) configuration of the cluster.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AquaConfiguration</b>: The AQUA (Advanced Query Accelerator) configuration of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalStorageCapacityInMegaBytes</i> The total storage capacity of the cluster in megabytes. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterNamespaceArn</i> The namespace Amazon Resource Name (ARN) of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZoneRelocationStatus</i> Describes the status of the Availability Zone relocation operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResizeInfo</i> Returns the following: <ul> <li> AllowCancelResize: a boolean value indicating if the resize operation can be cancelled. </li> <li> ResizeType: Returns ClassicResize </li> </ul>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ResizeInfo</b>: Returns the following: <ul> <li> AllowCancelResize: a boolean value indicating if the resize operation can be cancelled. </li> <li> ResizeType: Returns ClassicResize </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NextMaintenanceWindowStartTime</i> The date and time in UTC when system maintenance can begin.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExpectedNextSnapshotScheduleTimeStatus</i>  The status of next expected snapshot for clusters having a valid snapshot schedule and backups enabled. Possible values are the following: <ul> <li> OnTrack - The next snapshot is expected to be taken on time.  </li> <li> Pending - The next snapshot is pending to be taken.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExpectedNextSnapshotScheduleTime</i> The date and time when the next snapshot is expected to be taken for clusters with a valid snapshot schedule and backups enabled. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotScheduleState</i> The current state of the cluster snapshot schedule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotScheduleIdentifier</i> A unique identifier for the cluster snapshot schedule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeferredMaintenanceWindows</i> Describes a group of <code>DeferredMaintenanceWindow</code> objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ElasticResizeNumberOfNodeOptions</i> The number of nodes that you can resize the cluster to with the elastic resize method. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaintenanceTrackName</i> The name of the maintenance track for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingActions</i> Cluster operations that are waiting to be started.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IamRoles</i> A list of AWS Identity and Access Management (IAM) roles that can be used by the cluster to access other AWS services.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnhancedVpcRouting</i> An option that specifies whether to create the cluster with enhanced VPC routing enabled. To create a cluster that uses enhanced VPC routing, the cluster must be in a VPC. For more information, see <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html">Enhanced VPC Routing</a> in the Amazon Redshift Cluster Management Guide. If this option is <code>true</code>, enhanced VPC routing is enabled.  Default: false<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The AWS Key Management Service (AWS KMS) key ID of the encryption key used to encrypt data in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The list of tags for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterRevisionNumber</i> The specific revision number of the database in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ElasticIpStatus</i> The status of the elastic IP (EIP) address.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ElasticIpStatus</b>: The status of the elastic IP (EIP) address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterNodes</i> The nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterPublicKey</i> The public key for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterSnapshotCopyStatus</i> A value that returns the destination region and retention period that are configured for cross-region snapshot copy.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ClusterSnapshotCopyStatus</b>: A value that returns the destination region and retention period that are configured for cross-region snapshot copy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HsmStatus</i> A value that reports whether the Amazon Redshift cluster has finished applying any hardware security module (HSM) settings changes specified in a modify cluster command. Values: active, applying&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>HsmStatus</b>: A value that reports whether the Amazon Redshift cluster has finished applying any hardware security module (HSM) settings changes specified in a modify cluster command. Values: active, applying<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataTransferProgress</i> <p/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DataTransferProgress</b>: <p/><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RestoreStatus</i> A value that describes the status of a cluster restore action. This parameter returns null if the cluster was not created by restoring a snapshot.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RestoreStatus</b>: A value that describes the status of a cluster restore action. This parameter returns null if the cluster was not created by restoring a snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Encrypted</i> A boolean value that, if <code>true</code>, indicates that data in the cluster is encrypted at rest.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PubliclyAccessible</i> A boolean value that, if <code>true</code>, indicates that the cluster can be accessed from a public network.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberOfNodes</i> The number of compute nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowVersionUpgrade</i> A boolean value that, if <code>true</code>, indicates that major version upgrades will be applied automatically to the cluster during the maintenance window. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterVersion</i> The version ID of the Amazon Redshift engine that is running on the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingModifiedValues</i> A value that, if present, indicates that changes to the cluster are pending. Specific pending changes are identified by subelements.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingModifiedValues</b>: A value that, if present, indicates that changes to the cluster are pending. Specific pending changes are identified by subelements.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i> The weekly time range, in Universal Coordinated Time (UTC), during which system maintenance can occur.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZone</i> The name of the Availability Zone in which the cluster is located.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The identifier of the VPC the cluster is in, if the cluster is in a VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterSubnetGroupName</i> The name of the subnet group that is associated with the cluster. This parameter is valid only when the cluster is in a VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterParameterGroups</i> The list of cluster parameter groups that are associated with this cluster. Each parameter group in the list is returned with its status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcSecurityGroups</i> A list of Amazon Virtual Private Cloud (Amazon VPC) security groups that are associated with the cluster. This parameter is returned only if the cluster is in a VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterSecurityGroups</i> A list of cluster security group that are associated with the cluster. Each security group is represented by an element that contains <code>ClusterSecurityGroup.Name</code> and <code>ClusterSecurityGroup.Status</code> subelements.  Cluster security groups are used when the cluster is not created in an Amazon Virtual Private Cloud (VPC). Clusters that are created in a VPC use VPC security groups, which are listed by the <b>VpcSecurityGroups</b> parameter. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ManualSnapshotRetentionPeriod</i> The default number of days to retain a manual snapshot. If the value is -1, the snapshot is retained indefinitely. This setting doesn't change the retention period of existing snapshots. The value must be either -1 or an integer between 1 and 3,653.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomatedSnapshotRetentionPeriod</i> The number of days that automatic cluster snapshots are retained.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterCreateTime</i> The date and time that the cluster was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i> The connection endpoint.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Endpoint</b>: The connection endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBName</i> The name of the initial database that was created when the cluster was created. This same name is returned for the life of the cluster. If an initial database was not specified, a database named <code>dev</code>dev was created by default. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUsername</i> The master user name for the cluster. This name is used to connect to the database that is specified in the <b>DBName</b> parameter. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ModifyStatus</i> The status of a modify operation, if any, initiated for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterAvailabilityStatus</i> The availability status of the cluster for queries. Possible values are the following: <ul> <li> Available - The cluster is available for queries.  </li> <li> Unavailable - The cluster is not available for queries. </li> <li> Maintenance - The cluster is intermittently available for queries due to maintenance activities. </li> <li> Modifying - The cluster is intermittently available for queries due to changes that modify the cluster. </li> <li> Failed - The cluster failed and is not available for queries. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterStatus</i>  The current state of the cluster. Possible values are the following: <ul> <li>  <code>available</code>  </li> <li>  <code>available, prep-for-resize</code>  </li> <li>  <code>available, resize-cleanup</code>  </li> <li>  <code>cancelling-resize</code>  </li> <li>  <code>creating</code>  </li> <li>  <code>deleting</code>  </li> <li>  <code>final-snapshot</code>  </li> <li>  <code>hardware-failure</code>  </li> <li>  <code>incompatible-hsm</code>  </li> <li>  <code>incompatible-network</code>  </li> <li>  <code>incompatible-parameters</code>  </li> <li>  <code>incompatible-restore</code>  </li> <li>  <code>modifying</code>  </li> <li>  <code>paused</code>  </li> <li>  <code>rebooting</code>  </li> <li>  <code>renaming</code>  </li> <li>  <code>resizing</code>  </li> <li>  <code>rotating-keys</code>  </li> <li>  <code>storage-full</code>  </li> <li>  <code>updating-hsm</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NodeType</i> The node type for the nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterIdentifier</i> The unique identifier of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcEndpoints</i> Describes a connection endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> The port that the database engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Address</i> The DNS address of the Cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EncryptionType</i> The encryption type for a cluster. Possible values are: KMS and None. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaintenanceTrackName</i> The name of the maintenance track that the cluster will change to during the next maintenance window.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EnhancedVpcRouting</i> An option that specifies whether to create the cluster with enhanced VPC routing enabled. To create a cluster that uses enhanced VPC routing, the cluster must be in a VPC. For more information, see <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html">Enhanced VPC Routing</a> in the Amazon Redshift Cluster Management Guide. If this option is <code>true</code>, enhanced VPC routing is enabled.  Default: false<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PubliclyAccessible</i> The pending or in-progress change of the ability to connect to the cluster from the public network.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterIdentifier</i> The pending or in-progress change of the new identifier for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomatedSnapshotRetentionPeriod</i> The pending or in-progress change of the automated snapshot retention period.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterVersion</i> The pending or in-progress change of the service version.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterType</i> The pending or in-progress change of the cluster type.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberOfNodes</i> The pending or in-progress change of the number of nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NodeType</i> The pending or in-progress change of the cluster's node type.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUserPassword</i> The pending or in-progress change of the master user password for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EstimatedTimeToCompletionInSeconds</i> The estimate of the time remaining before the restore will complete. Returns 0 for a completed restore. This field is only updated when you restore to DC2 and DS2 node types. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ElapsedTimeInSeconds</i> The amount of time an in-progress restore has been running, or the amount of time it took a completed restore to finish. This field is only updated when you restore to DC2 and DS2 node types. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ProgressInMegaBytes</i> The number of megabytes that have been transferred from snapshot storage. This field is only updated when you restore to DC2 and DS2 node types. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotSizeInMegaBytes</i> The size of the set of snapshot data used to restore the cluster. This field is only updated when you restore to DC2 and DS2 node types. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CurrentRestoreRateInMegaBytesPerSecond</i> The number of megabytes per second being transferred from the backup storage. Returns the average rate for a completed backup. This field is only updated when you restore to DC2 and DS2 node types. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the restore action. Returns starting, restoring, completed, or failed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ElapsedTimeInSeconds</i> Describes the number of seconds that have elapsed during the data transfer.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EstimatedTimeToCompletionInSeconds</i> Describes the estimated number of seconds remaining to complete the transfer.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DataTransferredInMegaBytes</i> Describes the total amount of data that has been transfered in MB's.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalDataInMegaBytes</i> Describes the total amount of data to be transfered in megabytes.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CurrentRateInMegaBytesPerSecond</i> Describes the data transfer rate in MB's per second.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Describes the status of the cluster. While the transfer is in progress the status is <code>transferringdata</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Reports whether the Amazon Redshift cluster has finished applying any HSM settings changes specified in a modify cluster command. Values: active, applying<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HsmConfigurationIdentifier</i> Specifies the name of the HSM configuration that contains the information the Amazon Redshift cluster can use to retrieve and store keys in an HSM.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HsmClientCertificateIdentifier</i> Specifies the name of the HSM client certificate the Amazon Redshift cluster uses to retrieve the data encryption keys stored in an HSM.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotCopyGrantName</i> The name of the snapshot copy grant.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ManualSnapshotRetentionPeriod</i> The number of days that automated snapshots are retained in the destination region after they are copied from a source region. If the value is -1, the manual snapshot is retained indefinitely.  The value must be either -1 or an integer between 1 and 3,653.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RetentionPeriod</i> The number of days that automated snapshots are retained in the destination region after they are copied from a source region.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DestinationRegion</i> The destination region that snapshots are automatically copied to when cross-region snapshot copy is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the elastic IP (EIP) address.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ElasticIp</i> The elastic IP (EIP) address for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowCancelResize</i> A boolean value indicating if the resize operation can be cancelled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ResizeType</i> Returns the value <code>ClassicResize</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AquaConfigurationStatus</i> The value represents how the cluster is configured to use AQUA. Possible values include the following. <ul> <li> enabled - Use AQUA if it is available for the current AWS Region and Amazon Redshift node type. </li> <li> disabled - Don't use AQUA.  </li> <li> auto - Amazon Redshift determines whether to use AQUA. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AquaStatus</i> The value indicates the status of AQUA on the cluster. Possible values include the following. <ul> <li> enabled - AQUA is enabled. </li> <li> disabled - AQUA is not enabled.  </li> <li> applying - AQUA status is being applied.  </li> </ul><br/>        """
        pass

    def modify_cluster_iam_roles(self, ClusterIdentifier: str, AddIamRoles: List[String]=None, RemoveIamRoles: List[String]=None) -> ModifyClusterIamRolesResult:
        r"""Modifies the list of AWS Identity and Access Management (IAM) roles that can be used by the cluster to access other AWS services. A cluster can have up to 10 IAM roles associated at any time.

        :param self:
        :param RemoveIamRoles:  Zero or more IAM roles in ARN format to disassociate from the cluster. You can disassociate up to 10 IAM roles from a single cluster in a single request.<br/>AddIamRoles:  Zero or more IAM roles to associate with the cluster. The roles must be in their Amazon Resource Name (ARN) format. You can associate up to 10 IAM roles with a single cluster in a single request.<br/>ClusterIdentifier:  The unique identifier of the cluster for which you want to associate or disassociate IAM roles.<br/>
        :return: Cluster:  Describes a cluster.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AquaConfiguration</i> The AQUA (Advanced Query Accelerator) configuration of the cluster.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AquaConfiguration</b>: The AQUA (Advanced Query Accelerator) configuration of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalStorageCapacityInMegaBytes</i> The total storage capacity of the cluster in megabytes. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterNamespaceArn</i> The namespace Amazon Resource Name (ARN) of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZoneRelocationStatus</i> Describes the status of the Availability Zone relocation operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResizeInfo</i> Returns the following: <ul> <li> AllowCancelResize: a boolean value indicating if the resize operation can be cancelled. </li> <li> ResizeType: Returns ClassicResize </li> </ul>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ResizeInfo</b>: Returns the following: <ul> <li> AllowCancelResize: a boolean value indicating if the resize operation can be cancelled. </li> <li> ResizeType: Returns ClassicResize </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NextMaintenanceWindowStartTime</i> The date and time in UTC when system maintenance can begin.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExpectedNextSnapshotScheduleTimeStatus</i>  The status of next expected snapshot for clusters having a valid snapshot schedule and backups enabled. Possible values are the following: <ul> <li> OnTrack - The next snapshot is expected to be taken on time.  </li> <li> Pending - The next snapshot is pending to be taken.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExpectedNextSnapshotScheduleTime</i> The date and time when the next snapshot is expected to be taken for clusters with a valid snapshot schedule and backups enabled. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotScheduleState</i> The current state of the cluster snapshot schedule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotScheduleIdentifier</i> A unique identifier for the cluster snapshot schedule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeferredMaintenanceWindows</i> Describes a group of <code>DeferredMaintenanceWindow</code> objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ElasticResizeNumberOfNodeOptions</i> The number of nodes that you can resize the cluster to with the elastic resize method. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaintenanceTrackName</i> The name of the maintenance track for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingActions</i> Cluster operations that are waiting to be started.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IamRoles</i> A list of AWS Identity and Access Management (IAM) roles that can be used by the cluster to access other AWS services.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnhancedVpcRouting</i> An option that specifies whether to create the cluster with enhanced VPC routing enabled. To create a cluster that uses enhanced VPC routing, the cluster must be in a VPC. For more information, see <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html">Enhanced VPC Routing</a> in the Amazon Redshift Cluster Management Guide. If this option is <code>true</code>, enhanced VPC routing is enabled.  Default: false<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The AWS Key Management Service (AWS KMS) key ID of the encryption key used to encrypt data in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The list of tags for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterRevisionNumber</i> The specific revision number of the database in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ElasticIpStatus</i> The status of the elastic IP (EIP) address.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ElasticIpStatus</b>: The status of the elastic IP (EIP) address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterNodes</i> The nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterPublicKey</i> The public key for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterSnapshotCopyStatus</i> A value that returns the destination region and retention period that are configured for cross-region snapshot copy.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ClusterSnapshotCopyStatus</b>: A value that returns the destination region and retention period that are configured for cross-region snapshot copy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HsmStatus</i> A value that reports whether the Amazon Redshift cluster has finished applying any hardware security module (HSM) settings changes specified in a modify cluster command. Values: active, applying&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>HsmStatus</b>: A value that reports whether the Amazon Redshift cluster has finished applying any hardware security module (HSM) settings changes specified in a modify cluster command. Values: active, applying<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataTransferProgress</i> <p/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DataTransferProgress</b>: <p/><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RestoreStatus</i> A value that describes the status of a cluster restore action. This parameter returns null if the cluster was not created by restoring a snapshot.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RestoreStatus</b>: A value that describes the status of a cluster restore action. This parameter returns null if the cluster was not created by restoring a snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Encrypted</i> A boolean value that, if <code>true</code>, indicates that data in the cluster is encrypted at rest.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PubliclyAccessible</i> A boolean value that, if <code>true</code>, indicates that the cluster can be accessed from a public network.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberOfNodes</i> The number of compute nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowVersionUpgrade</i> A boolean value that, if <code>true</code>, indicates that major version upgrades will be applied automatically to the cluster during the maintenance window. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterVersion</i> The version ID of the Amazon Redshift engine that is running on the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingModifiedValues</i> A value that, if present, indicates that changes to the cluster are pending. Specific pending changes are identified by subelements.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingModifiedValues</b>: A value that, if present, indicates that changes to the cluster are pending. Specific pending changes are identified by subelements.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i> The weekly time range, in Universal Coordinated Time (UTC), during which system maintenance can occur.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZone</i> The name of the Availability Zone in which the cluster is located.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The identifier of the VPC the cluster is in, if the cluster is in a VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterSubnetGroupName</i> The name of the subnet group that is associated with the cluster. This parameter is valid only when the cluster is in a VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterParameterGroups</i> The list of cluster parameter groups that are associated with this cluster. Each parameter group in the list is returned with its status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcSecurityGroups</i> A list of Amazon Virtual Private Cloud (Amazon VPC) security groups that are associated with the cluster. This parameter is returned only if the cluster is in a VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterSecurityGroups</i> A list of cluster security group that are associated with the cluster. Each security group is represented by an element that contains <code>ClusterSecurityGroup.Name</code> and <code>ClusterSecurityGroup.Status</code> subelements.  Cluster security groups are used when the cluster is not created in an Amazon Virtual Private Cloud (VPC). Clusters that are created in a VPC use VPC security groups, which are listed by the <b>VpcSecurityGroups</b> parameter. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ManualSnapshotRetentionPeriod</i> The default number of days to retain a manual snapshot. If the value is -1, the snapshot is retained indefinitely. This setting doesn't change the retention period of existing snapshots. The value must be either -1 or an integer between 1 and 3,653.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomatedSnapshotRetentionPeriod</i> The number of days that automatic cluster snapshots are retained.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterCreateTime</i> The date and time that the cluster was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i> The connection endpoint.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Endpoint</b>: The connection endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBName</i> The name of the initial database that was created when the cluster was created. This same name is returned for the life of the cluster. If an initial database was not specified, a database named <code>dev</code>dev was created by default. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUsername</i> The master user name for the cluster. This name is used to connect to the database that is specified in the <b>DBName</b> parameter. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ModifyStatus</i> The status of a modify operation, if any, initiated for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterAvailabilityStatus</i> The availability status of the cluster for queries. Possible values are the following: <ul> <li> Available - The cluster is available for queries.  </li> <li> Unavailable - The cluster is not available for queries. </li> <li> Maintenance - The cluster is intermittently available for queries due to maintenance activities. </li> <li> Modifying - The cluster is intermittently available for queries due to changes that modify the cluster. </li> <li> Failed - The cluster failed and is not available for queries. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterStatus</i>  The current state of the cluster. Possible values are the following: <ul> <li>  <code>available</code>  </li> <li>  <code>available, prep-for-resize</code>  </li> <li>  <code>available, resize-cleanup</code>  </li> <li>  <code>cancelling-resize</code>  </li> <li>  <code>creating</code>  </li> <li>  <code>deleting</code>  </li> <li>  <code>final-snapshot</code>  </li> <li>  <code>hardware-failure</code>  </li> <li>  <code>incompatible-hsm</code>  </li> <li>  <code>incompatible-network</code>  </li> <li>  <code>incompatible-parameters</code>  </li> <li>  <code>incompatible-restore</code>  </li> <li>  <code>modifying</code>  </li> <li>  <code>paused</code>  </li> <li>  <code>rebooting</code>  </li> <li>  <code>renaming</code>  </li> <li>  <code>resizing</code>  </li> <li>  <code>rotating-keys</code>  </li> <li>  <code>storage-full</code>  </li> <li>  <code>updating-hsm</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NodeType</i> The node type for the nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterIdentifier</i> The unique identifier of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcEndpoints</i> Describes a connection endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> The port that the database engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Address</i> The DNS address of the Cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EncryptionType</i> The encryption type for a cluster. Possible values are: KMS and None. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaintenanceTrackName</i> The name of the maintenance track that the cluster will change to during the next maintenance window.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EnhancedVpcRouting</i> An option that specifies whether to create the cluster with enhanced VPC routing enabled. To create a cluster that uses enhanced VPC routing, the cluster must be in a VPC. For more information, see <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html">Enhanced VPC Routing</a> in the Amazon Redshift Cluster Management Guide. If this option is <code>true</code>, enhanced VPC routing is enabled.  Default: false<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PubliclyAccessible</i> The pending or in-progress change of the ability to connect to the cluster from the public network.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterIdentifier</i> The pending or in-progress change of the new identifier for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomatedSnapshotRetentionPeriod</i> The pending or in-progress change of the automated snapshot retention period.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterVersion</i> The pending or in-progress change of the service version.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterType</i> The pending or in-progress change of the cluster type.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberOfNodes</i> The pending or in-progress change of the number of nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NodeType</i> The pending or in-progress change of the cluster's node type.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUserPassword</i> The pending or in-progress change of the master user password for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EstimatedTimeToCompletionInSeconds</i> The estimate of the time remaining before the restore will complete. Returns 0 for a completed restore. This field is only updated when you restore to DC2 and DS2 node types. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ElapsedTimeInSeconds</i> The amount of time an in-progress restore has been running, or the amount of time it took a completed restore to finish. This field is only updated when you restore to DC2 and DS2 node types. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ProgressInMegaBytes</i> The number of megabytes that have been transferred from snapshot storage. This field is only updated when you restore to DC2 and DS2 node types. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotSizeInMegaBytes</i> The size of the set of snapshot data used to restore the cluster. This field is only updated when you restore to DC2 and DS2 node types. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CurrentRestoreRateInMegaBytesPerSecond</i> The number of megabytes per second being transferred from the backup storage. Returns the average rate for a completed backup. This field is only updated when you restore to DC2 and DS2 node types. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the restore action. Returns starting, restoring, completed, or failed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ElapsedTimeInSeconds</i> Describes the number of seconds that have elapsed during the data transfer.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EstimatedTimeToCompletionInSeconds</i> Describes the estimated number of seconds remaining to complete the transfer.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DataTransferredInMegaBytes</i> Describes the total amount of data that has been transfered in MB's.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalDataInMegaBytes</i> Describes the total amount of data to be transfered in megabytes.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CurrentRateInMegaBytesPerSecond</i> Describes the data transfer rate in MB's per second.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Describes the status of the cluster. While the transfer is in progress the status is <code>transferringdata</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Reports whether the Amazon Redshift cluster has finished applying any HSM settings changes specified in a modify cluster command. Values: active, applying<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HsmConfigurationIdentifier</i> Specifies the name of the HSM configuration that contains the information the Amazon Redshift cluster can use to retrieve and store keys in an HSM.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HsmClientCertificateIdentifier</i> Specifies the name of the HSM client certificate the Amazon Redshift cluster uses to retrieve the data encryption keys stored in an HSM.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotCopyGrantName</i> The name of the snapshot copy grant.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ManualSnapshotRetentionPeriod</i> The number of days that automated snapshots are retained in the destination region after they are copied from a source region. If the value is -1, the manual snapshot is retained indefinitely.  The value must be either -1 or an integer between 1 and 3,653.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RetentionPeriod</i> The number of days that automated snapshots are retained in the destination region after they are copied from a source region.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DestinationRegion</i> The destination region that snapshots are automatically copied to when cross-region snapshot copy is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the elastic IP (EIP) address.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ElasticIp</i> The elastic IP (EIP) address for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowCancelResize</i> A boolean value indicating if the resize operation can be cancelled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ResizeType</i> Returns the value <code>ClassicResize</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AquaConfigurationStatus</i> The value represents how the cluster is configured to use AQUA. Possible values include the following. <ul> <li> enabled - Use AQUA if it is available for the current AWS Region and Amazon Redshift node type. </li> <li> disabled - Don't use AQUA.  </li> <li> auto - Amazon Redshift determines whether to use AQUA. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AquaStatus</i> The value indicates the status of AQUA on the cluster. Possible values include the following. <ul> <li> enabled - AQUA is enabled. </li> <li> disabled - AQUA is not enabled.  </li> <li> applying - AQUA status is being applied.  </li> </ul><br/>        """
        pass

    def modify_cluster_maintenance(self, ClusterIdentifier: str, DeferMaintenance: BooleanOptional=None, DeferMaintenanceIdentifier: str=None, DeferMaintenanceStartTime: TStamp=None, DeferMaintenanceEndTime: TStamp=None, DeferMaintenanceDuration: int=None) -> ModifyClusterMaintenanceResult:
        r"""Modifies the maintenance settings of a cluster.

        :param self:
        :param DeferMaintenanceDuration:  An integer indicating the duration of the maintenance window in days. If you specify a duration, you can't specify an end time. The duration must be 45 days or less.<br/>DeferMaintenanceEndTime:  A timestamp indicating end time for the deferred maintenance window. If you specify an end time, you can't specify a duration.<br/>DeferMaintenanceStartTime:  A timestamp indicating the start time for the deferred maintenance window.<br/>DeferMaintenanceIdentifier:  A unique identifier for the deferred maintenance window.<br/>DeferMaintenance:  A boolean indicating whether to enable the deferred maintenance window. <br/>ClusterIdentifier:  A unique identifier for the cluster.<br/>
        :return: Cluster:  Describes a cluster.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AquaConfiguration</i> The AQUA (Advanced Query Accelerator) configuration of the cluster.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AquaConfiguration</b>: The AQUA (Advanced Query Accelerator) configuration of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalStorageCapacityInMegaBytes</i> The total storage capacity of the cluster in megabytes. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterNamespaceArn</i> The namespace Amazon Resource Name (ARN) of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZoneRelocationStatus</i> Describes the status of the Availability Zone relocation operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResizeInfo</i> Returns the following: <ul> <li> AllowCancelResize: a boolean value indicating if the resize operation can be cancelled. </li> <li> ResizeType: Returns ClassicResize </li> </ul>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ResizeInfo</b>: Returns the following: <ul> <li> AllowCancelResize: a boolean value indicating if the resize operation can be cancelled. </li> <li> ResizeType: Returns ClassicResize </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NextMaintenanceWindowStartTime</i> The date and time in UTC when system maintenance can begin.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExpectedNextSnapshotScheduleTimeStatus</i>  The status of next expected snapshot for clusters having a valid snapshot schedule and backups enabled. Possible values are the following: <ul> <li> OnTrack - The next snapshot is expected to be taken on time.  </li> <li> Pending - The next snapshot is pending to be taken.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExpectedNextSnapshotScheduleTime</i> The date and time when the next snapshot is expected to be taken for clusters with a valid snapshot schedule and backups enabled. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotScheduleState</i> The current state of the cluster snapshot schedule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotScheduleIdentifier</i> A unique identifier for the cluster snapshot schedule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeferredMaintenanceWindows</i> Describes a group of <code>DeferredMaintenanceWindow</code> objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ElasticResizeNumberOfNodeOptions</i> The number of nodes that you can resize the cluster to with the elastic resize method. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaintenanceTrackName</i> The name of the maintenance track for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingActions</i> Cluster operations that are waiting to be started.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IamRoles</i> A list of AWS Identity and Access Management (IAM) roles that can be used by the cluster to access other AWS services.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnhancedVpcRouting</i> An option that specifies whether to create the cluster with enhanced VPC routing enabled. To create a cluster that uses enhanced VPC routing, the cluster must be in a VPC. For more information, see <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html">Enhanced VPC Routing</a> in the Amazon Redshift Cluster Management Guide. If this option is <code>true</code>, enhanced VPC routing is enabled.  Default: false<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The AWS Key Management Service (AWS KMS) key ID of the encryption key used to encrypt data in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The list of tags for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterRevisionNumber</i> The specific revision number of the database in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ElasticIpStatus</i> The status of the elastic IP (EIP) address.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ElasticIpStatus</b>: The status of the elastic IP (EIP) address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterNodes</i> The nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterPublicKey</i> The public key for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterSnapshotCopyStatus</i> A value that returns the destination region and retention period that are configured for cross-region snapshot copy.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ClusterSnapshotCopyStatus</b>: A value that returns the destination region and retention period that are configured for cross-region snapshot copy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HsmStatus</i> A value that reports whether the Amazon Redshift cluster has finished applying any hardware security module (HSM) settings changes specified in a modify cluster command. Values: active, applying&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>HsmStatus</b>: A value that reports whether the Amazon Redshift cluster has finished applying any hardware security module (HSM) settings changes specified in a modify cluster command. Values: active, applying<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataTransferProgress</i> <p/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DataTransferProgress</b>: <p/><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RestoreStatus</i> A value that describes the status of a cluster restore action. This parameter returns null if the cluster was not created by restoring a snapshot.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RestoreStatus</b>: A value that describes the status of a cluster restore action. This parameter returns null if the cluster was not created by restoring a snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Encrypted</i> A boolean value that, if <code>true</code>, indicates that data in the cluster is encrypted at rest.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PubliclyAccessible</i> A boolean value that, if <code>true</code>, indicates that the cluster can be accessed from a public network.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberOfNodes</i> The number of compute nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowVersionUpgrade</i> A boolean value that, if <code>true</code>, indicates that major version upgrades will be applied automatically to the cluster during the maintenance window. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterVersion</i> The version ID of the Amazon Redshift engine that is running on the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingModifiedValues</i> A value that, if present, indicates that changes to the cluster are pending. Specific pending changes are identified by subelements.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingModifiedValues</b>: A value that, if present, indicates that changes to the cluster are pending. Specific pending changes are identified by subelements.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i> The weekly time range, in Universal Coordinated Time (UTC), during which system maintenance can occur.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZone</i> The name of the Availability Zone in which the cluster is located.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The identifier of the VPC the cluster is in, if the cluster is in a VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterSubnetGroupName</i> The name of the subnet group that is associated with the cluster. This parameter is valid only when the cluster is in a VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterParameterGroups</i> The list of cluster parameter groups that are associated with this cluster. Each parameter group in the list is returned with its status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcSecurityGroups</i> A list of Amazon Virtual Private Cloud (Amazon VPC) security groups that are associated with the cluster. This parameter is returned only if the cluster is in a VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterSecurityGroups</i> A list of cluster security group that are associated with the cluster. Each security group is represented by an element that contains <code>ClusterSecurityGroup.Name</code> and <code>ClusterSecurityGroup.Status</code> subelements.  Cluster security groups are used when the cluster is not created in an Amazon Virtual Private Cloud (VPC). Clusters that are created in a VPC use VPC security groups, which are listed by the <b>VpcSecurityGroups</b> parameter. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ManualSnapshotRetentionPeriod</i> The default number of days to retain a manual snapshot. If the value is -1, the snapshot is retained indefinitely. This setting doesn't change the retention period of existing snapshots. The value must be either -1 or an integer between 1 and 3,653.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomatedSnapshotRetentionPeriod</i> The number of days that automatic cluster snapshots are retained.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterCreateTime</i> The date and time that the cluster was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i> The connection endpoint.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Endpoint</b>: The connection endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBName</i> The name of the initial database that was created when the cluster was created. This same name is returned for the life of the cluster. If an initial database was not specified, a database named <code>dev</code>dev was created by default. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUsername</i> The master user name for the cluster. This name is used to connect to the database that is specified in the <b>DBName</b> parameter. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ModifyStatus</i> The status of a modify operation, if any, initiated for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterAvailabilityStatus</i> The availability status of the cluster for queries. Possible values are the following: <ul> <li> Available - The cluster is available for queries.  </li> <li> Unavailable - The cluster is not available for queries. </li> <li> Maintenance - The cluster is intermittently available for queries due to maintenance activities. </li> <li> Modifying - The cluster is intermittently available for queries due to changes that modify the cluster. </li> <li> Failed - The cluster failed and is not available for queries. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterStatus</i>  The current state of the cluster. Possible values are the following: <ul> <li>  <code>available</code>  </li> <li>  <code>available, prep-for-resize</code>  </li> <li>  <code>available, resize-cleanup</code>  </li> <li>  <code>cancelling-resize</code>  </li> <li>  <code>creating</code>  </li> <li>  <code>deleting</code>  </li> <li>  <code>final-snapshot</code>  </li> <li>  <code>hardware-failure</code>  </li> <li>  <code>incompatible-hsm</code>  </li> <li>  <code>incompatible-network</code>  </li> <li>  <code>incompatible-parameters</code>  </li> <li>  <code>incompatible-restore</code>  </li> <li>  <code>modifying</code>  </li> <li>  <code>paused</code>  </li> <li>  <code>rebooting</code>  </li> <li>  <code>renaming</code>  </li> <li>  <code>resizing</code>  </li> <li>  <code>rotating-keys</code>  </li> <li>  <code>storage-full</code>  </li> <li>  <code>updating-hsm</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NodeType</i> The node type for the nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterIdentifier</i> The unique identifier of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcEndpoints</i> Describes a connection endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> The port that the database engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Address</i> The DNS address of the Cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EncryptionType</i> The encryption type for a cluster. Possible values are: KMS and None. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaintenanceTrackName</i> The name of the maintenance track that the cluster will change to during the next maintenance window.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EnhancedVpcRouting</i> An option that specifies whether to create the cluster with enhanced VPC routing enabled. To create a cluster that uses enhanced VPC routing, the cluster must be in a VPC. For more information, see <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html">Enhanced VPC Routing</a> in the Amazon Redshift Cluster Management Guide. If this option is <code>true</code>, enhanced VPC routing is enabled.  Default: false<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PubliclyAccessible</i> The pending or in-progress change of the ability to connect to the cluster from the public network.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterIdentifier</i> The pending or in-progress change of the new identifier for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomatedSnapshotRetentionPeriod</i> The pending or in-progress change of the automated snapshot retention period.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterVersion</i> The pending or in-progress change of the service version.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterType</i> The pending or in-progress change of the cluster type.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberOfNodes</i> The pending or in-progress change of the number of nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NodeType</i> The pending or in-progress change of the cluster's node type.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUserPassword</i> The pending or in-progress change of the master user password for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EstimatedTimeToCompletionInSeconds</i> The estimate of the time remaining before the restore will complete. Returns 0 for a completed restore. This field is only updated when you restore to DC2 and DS2 node types. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ElapsedTimeInSeconds</i> The amount of time an in-progress restore has been running, or the amount of time it took a completed restore to finish. This field is only updated when you restore to DC2 and DS2 node types. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ProgressInMegaBytes</i> The number of megabytes that have been transferred from snapshot storage. This field is only updated when you restore to DC2 and DS2 node types. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotSizeInMegaBytes</i> The size of the set of snapshot data used to restore the cluster. This field is only updated when you restore to DC2 and DS2 node types. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CurrentRestoreRateInMegaBytesPerSecond</i> The number of megabytes per second being transferred from the backup storage. Returns the average rate for a completed backup. This field is only updated when you restore to DC2 and DS2 node types. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the restore action. Returns starting, restoring, completed, or failed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ElapsedTimeInSeconds</i> Describes the number of seconds that have elapsed during the data transfer.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EstimatedTimeToCompletionInSeconds</i> Describes the estimated number of seconds remaining to complete the transfer.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DataTransferredInMegaBytes</i> Describes the total amount of data that has been transfered in MB's.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalDataInMegaBytes</i> Describes the total amount of data to be transfered in megabytes.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CurrentRateInMegaBytesPerSecond</i> Describes the data transfer rate in MB's per second.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Describes the status of the cluster. While the transfer is in progress the status is <code>transferringdata</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Reports whether the Amazon Redshift cluster has finished applying any HSM settings changes specified in a modify cluster command. Values: active, applying<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HsmConfigurationIdentifier</i> Specifies the name of the HSM configuration that contains the information the Amazon Redshift cluster can use to retrieve and store keys in an HSM.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HsmClientCertificateIdentifier</i> Specifies the name of the HSM client certificate the Amazon Redshift cluster uses to retrieve the data encryption keys stored in an HSM.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotCopyGrantName</i> The name of the snapshot copy grant.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ManualSnapshotRetentionPeriod</i> The number of days that automated snapshots are retained in the destination region after they are copied from a source region. If the value is -1, the manual snapshot is retained indefinitely.  The value must be either -1 or an integer between 1 and 3,653.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RetentionPeriod</i> The number of days that automated snapshots are retained in the destination region after they are copied from a source region.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DestinationRegion</i> The destination region that snapshots are automatically copied to when cross-region snapshot copy is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the elastic IP (EIP) address.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ElasticIp</i> The elastic IP (EIP) address for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowCancelResize</i> A boolean value indicating if the resize operation can be cancelled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ResizeType</i> Returns the value <code>ClassicResize</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AquaConfigurationStatus</i> The value represents how the cluster is configured to use AQUA. Possible values include the following. <ul> <li> enabled - Use AQUA if it is available for the current AWS Region and Amazon Redshift node type. </li> <li> disabled - Don't use AQUA.  </li> <li> auto - Amazon Redshift determines whether to use AQUA. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AquaStatus</i> The value indicates the status of AQUA on the cluster. Possible values include the following. <ul> <li> enabled - AQUA is enabled. </li> <li> disabled - AQUA is not enabled.  </li> <li> applying - AQUA status is being applied.  </li> </ul><br/>        """
        pass

    def modify_cluster_parameter_group(self, Parameters: List[Parameter], ParameterGroupName: str) -> ClusterParameterGroupNameMessage:
        r"""Modifies the parameters of a parameter group.  For more information about parameters and parameter groups, go to <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-parameter-groups.html">Amazon Redshift Parameter Groups</a> in the <i>Amazon Redshift Cluster Management Guide</i>.

        :param self:
        :param Parameters:  An array of parameters to be modified. A maximum of 20 parameters can be modified in a single request. For each parameter to be modified, you must supply at least the parameter name and parameter value; other name-value pairs of the parameter are optional. For the workload management (WLM) configuration, you must supply all the name-value pairs in the wlm_json_configuration parameter.<br/>ParameterGroupName:  The name of the parameter group to be modified.<br/>
        :return: ParameterGroupStatus:  The status of the parameter group. For example, if you made a change to a parameter group name-value pair, then the change could be pending a reboot of an associated cluster.<br/>ParameterGroupName:  The name of the cluster parameter group.<br/>        """
        pass

    def modify_cluster_snapshot(self, SnapshotIdentifier: str, ManualSnapshotRetentionPeriod: int=None, Force: Boolean=None) -> ModifyClusterSnapshotResult:
        r"""Modifies the settings for a snapshot. This exanmple modifies the manual retention period setting for a cluster snapshot.

        :param self:
        :param Force:  A Boolean option to override an exception if the retention period has already passed.<br/>ManualSnapshotRetentionPeriod:  The number of days that a manual snapshot is retained. If the value is -1, the manual snapshot is retained indefinitely. If the manual snapshot falls outside of the new retention period, you can specify the force option to immediately delete the snapshot. The value must be either -1 or an integer between 1 and 3,653.<br/>SnapshotIdentifier:  The identifier of the snapshot whose setting you want to modify.<br/>
        :return: Snapshot:  Describes a snapshot.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotRetentionStartTime</i> A timestamp representing the start of the retention period for the snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ManualSnapshotRemainingDays</i> The number of days until a manual snapshot will pass its retention period.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ManualSnapshotRetentionPeriod</i> The number of days that a manual snapshot is retained. If the value is -1, the manual snapshot is retained indefinitely.  The value must be either -1 or an integer between 1 and 3,653.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaintenanceTrackName</i> The name of the maintenance track for the snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnhancedVpcRouting</i> An option that specifies whether to create the cluster with enhanced VPC routing enabled. To create a cluster that uses enhanced VPC routing, the cluster must be in a VPC. For more information, see <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html">Enhanced VPC Routing</a> in the Amazon Redshift Cluster Management Guide. If this option is <code>true</code>, enhanced VPC routing is enabled.  Default: false<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RestorableNodeTypes</i> The list of node types that this cluster snapshot is able to restore into.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The list of tags for the cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceRegion</i> The source region from which the snapshot was copied.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ElapsedTimeInSeconds</i> The amount of time an in-progress snapshot backup has been running, or the amount of time it took a completed backup to finish.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EstimatedSecondsToCompletion</i> The estimate of the time remaining before the snapshot backup will complete. Returns <code>0</code> for a completed backup. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CurrentBackupRateInMegaBytesPerSecond</i> The number of megabytes per second being transferred to the snapshot backup. Returns <code>0</code> for a completed backup. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupProgressInMegaBytes</i> The number of megabytes that have been transferred to the snapshot backup.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActualIncrementalBackupSizeInMegaBytes</i> The size of the incremental backup.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalBackupSizeInMegaBytes</i> The size of the complete set of backup data that would be used to restore the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerAccount</i> For manual snapshots, the AWS customer account used to create or copy the snapshot. For automatic snapshots, the owner of the cluster. The owner can perform all snapshot actions, such as sharing a manual snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccountsWithRestoreAccess</i> A list of the AWS customer accounts authorized to restore the snapshot. Returns <code>null</code> if no accounts are authorized. Visible only to the snapshot owner. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EncryptedWithHSM</i> A boolean that indicates whether the snapshot data is encrypted using the HSM keys of the source cluster. <code>true</code> indicates that the data is encrypted using HSM keys.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The AWS Key Management Service (KMS) key ID of the encryption key that was used to encrypt data in the cluster from which the snapshot was taken.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Encrypted</i> If <code>true</code>, the data in the snapshot is encrypted at rest.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The VPC identifier of the cluster if the snapshot is from a cluster in a VPC. Otherwise, this field is not in the output.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBName</i> The name of the database that was created when the cluster was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberOfNodes</i> The number of nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NodeType</i> The node type of the nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotType</i> The snapshot type. Snapshots created using <a>CreateClusterSnapshot</a> and <a>CopyClusterSnapshot</a> are of type "manual". <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineFullVersion</i> The cluster version of the cluster used to create the snapshot. For example, 1.0.15503. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterVersion</i> The version ID of the Amazon Redshift engine that is running on the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUsername</i> The master user name for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterCreateTime</i> The time (UTC) when the cluster was originally created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZone</i> The Availability Zone in which the cluster was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> The port that the cluster is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The snapshot status. The value of the status depends on the API operation used:  <ul> <li>  <a>CreateClusterSnapshot</a> and <a>CopyClusterSnapshot</a> returns status as "creating".  </li> <li>  <a>DescribeClusterSnapshots</a> returns status as "creating", "available", "final snapshot", or "failed". </li> <li>  <a>DeleteClusterSnapshot</a> returns status as "deleted". </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotCreateTime</i> The time (in UTC format) when Amazon Redshift began the snapshot. A snapshot contains a copy of the cluster data as of this exact time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterIdentifier</i> The identifier of the cluster for which the snapshot was taken.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotIdentifier</i> The snapshot identifier that is provided in the request.<br/>        """
        pass

    def modify_cluster_snapshot_schedule(self, ClusterIdentifier: str, ScheduleIdentifier: str=None, DisassociateSchedule: BooleanOptional=None):
        r"""Modifies a snapshot schedule for a cluster.

        :param self:
        :param DisassociateSchedule:  A boolean to indicate whether to remove the assoiciation between the cluster and the schedule.<br/>ScheduleIdentifier:  A unique alphanumeric identifier for the schedule that you want to associate with the cluster.<br/>ClusterIdentifier:  A unique identifier for the cluster whose snapshot schedule you want to modify. <br/>
        :return:         """
        pass

    def modify_cluster_subnet_group(self, SubnetIds: List[String], ClusterSubnetGroupName: str, Description: str=None) -> ModifyClusterSubnetGroupResult:
        r"""Modifies a cluster subnet group to include the specified list of VPC subnets. The operation replaces the existing list of subnets with the new list of subnets.

        :param self:
        :param SubnetIds:  An array of VPC subnet IDs. A maximum of 20 subnets can be modified in a single request.<br/>Description:  A text description of the subnet group to be modified.<br/>ClusterSubnetGroupName:  The name of the subnet group to be modified.<br/>
        :return: ClusterSubnetGroup:  Describes a subnet group.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The list of tags for the cluster subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Subnets</i> A list of the VPC <a>Subnet</a> elements. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetGroupStatus</i> The status of the cluster subnet group. Possible values are <code>Complete</code>, <code>Incomplete</code> and <code>Invalid</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The VPC ID of the cluster subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the cluster subnet group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterSubnetGroupName</i> The name of the cluster subnet group.<br/>        """
        pass

    def modify_endpoint_access(self, EndpointName: str, VpcSecurityGroupIds: List[String]=None) -> EndpointAccess:
        r"""Modifies a Redshift-managed VPC endpoint.

        :param self:
        :param VpcSecurityGroupIds:  The complete list of VPC security groups associated with the endpoint after the endpoint is modified.<br/>EndpointName:  The endpoint to be modified.<br/>
        :return: VpcEndpoint:  The connection endpoint for connecting to an Amazon Redshift cluster through the proxy.:<br/>VpcSecurityGroups:  The security groups associated with the endpoint.<br/>Address:  The DNS address of the endpoint.<br/>Port:  The port number on which the cluster accepts incoming connections.<br/>EndpointCreateTime:  The time (UTC) that the endpoint was created.<br/>EndpointName:  The name of the endpoint.<br/>EndpointStatus:  The status of the endpoint.<br/>SubnetGroupName:  The subnet group name where Amazon Redshift chooses to deploy the endpoint.<br/>ResourceOwner:  The AWS account ID of the owner of the cluster.<br/>ClusterIdentifier:  The cluster identifier of the cluster associated with the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkInterfaces</i> One or more network interfaces of the endpoint. Also known as an interface endpoint. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The VPC identifier that the endpoint is associated. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcEndpointId</i> The connection endpoint ID for connecting an Amazon Redshift cluster through the proxy.<br/>        """
        pass

    def modify_event_subscription(self, SubscriptionName: str, SnsTopicArn: str=None, SourceType: str=None, SourceIds: List[String]=None, EventCategories: List[String]=None, Severity: str=None, Enabled: BooleanOptional=None) -> ModifyEventSubscriptionResult:
        r"""Modifies an existing Amazon Redshift event notification subscription.

        :param self:
        :param Enabled:  A Boolean value indicating if the subscription is enabled. <code>true</code> indicates the subscription is enabled <br/>Severity:  Specifies the Amazon Redshift event severity to be published by the event notification subscription. Values: ERROR, INFO<br/>EventCategories:  Specifies the Amazon Redshift event categories to be published by the event notification subscription. Values: configuration, management, monitoring, security<br/>SourceIds:  A list of one or more identifiers of Amazon Redshift source objects. All of the objects must be of the same type as was specified in the source type parameter. The event subscription will return only events generated by the specified objects. If not specified, then events are returned for all objects within the source type specified. Example: my-cluster-1, my-cluster-2 Example: my-snapshot-20131010<br/>SourceType:  The type of source that will be generating the events. For example, if you want to be notified of events generated by a cluster, you would set this parameter to cluster. If this value is not specified, events are returned for all Amazon Redshift objects in your AWS account. You must specify a source type in order to specify source IDs. Valid values: cluster, cluster-parameter-group, cluster-security-group, cluster-snapshot, and scheduled-action.<br/>SnsTopicArn:  The Amazon Resource Name (ARN) of the SNS topic to be used by the event notification subscription.<br/>SubscriptionName:  The name of the modified Amazon Redshift event notification subscription.<br/>
        :return: EventSubscription:  Describes event subscriptions.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The list of tags for the event subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> A boolean value indicating whether the subscription is enabled; <code>true</code> indicates that the subscription is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Severity</i> The event severity specified in the Amazon Redshift event notification subscription. Values: ERROR, INFO<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EventCategoriesList</i> The list of Amazon Redshift event categories specified in the event notification subscription. Values: Configuration, Management, Monitoring, Security<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceIdsList</i> A list of the sources that publish events to the Amazon Redshift event notification subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceType</i> The source type of the events returned by the Amazon Redshift event notification, such as cluster, cluster-snapshot, cluster-parameter-group, cluster-security-group, or scheduled-action. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubscriptionCreationTime</i> The date and time the Amazon Redshift event notification subscription was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the Amazon Redshift event notification subscription. Constraints: <ul> <li> Can be one of the following: active | no-permission | topic-not-exist </li> <li> The status "no-permission" indicates that Amazon Redshift no longer has permission to post to the Amazon SNS topic. The status "topic-not-exist" indicates that the topic was deleted after the subscription was created. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnsTopicArn</i> The Amazon Resource Name (ARN) of the Amazon SNS topic used by the event notification subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustSubscriptionId</i> The name of the Amazon Redshift event notification subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomerAwsId</i> The AWS customer account associated with the Amazon Redshift event notification subscription.<br/>        """
        pass

    def modify_scheduled_action(self, ScheduledActionName: str, TargetAction: ScheduledActionType=None, Schedule: str=None, IamRole: str=None, ScheduledActionDescription: str=None, StartTime: TStamp=None, EndTime: TStamp=None, Enable: BooleanOptional=None) -> ScheduledAction:
        r"""Modifies a scheduled action. 

        :param self:
        :param Enable:  A modified enable flag of the scheduled action. If true, the scheduled action is active. If false, the scheduled action is disabled. <br/>EndTime:  A modified end time of the scheduled action. For more information about this parameter, see <a>ScheduledAction</a>. <br/>StartTime:  A modified start time of the scheduled action. For more information about this parameter, see <a>ScheduledAction</a>. <br/>ScheduledActionDescription:  A modified description of the scheduled action. <br/>IamRole:  A different IAM role to assume to run the target action. For more information about this parameter, see <a>ScheduledAction</a>.<br/>Schedule:  A modified schedule in either <code>at( )</code> or <code>cron( )</code> format. For more information about this parameter, see <a>ScheduledAction</a>.<br/>TargetAction:  A modified JSON format of the scheduled action. For more information about this parameter, see <a>ScheduledAction</a>. :<br/>ScheduledActionName:  The name of the scheduled action to modify. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResumeCluster</i> An action that runs a <code>ResumeCluster</code> API operation. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ResumeCluster</b>: An action that runs a <code>ResumeCluster</code> API operation. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PauseCluster</i> An action that runs a <code>PauseCluster</code> API operation. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PauseCluster</b>: An action that runs a <code>PauseCluster</code> API operation. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResizeCluster</i> An action that runs a <code>ResizeCluster</code> API operation. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ResizeCluster</b>: An action that runs a <code>ResizeCluster</code> API operation. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Classic</i> A boolean value indicating whether the resize operation is using the classic resize process. If you don't provide this parameter or set the value to <code>false</code>, the resize type is elastic. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberOfNodes</i> The new number of nodes for the cluster. If not specified, the cluster's current number of nodes is used.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NodeType</i> The new node type for the nodes you are adding. If not specified, the cluster's current node type is used.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterType</i> The new cluster type for the specified cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterIdentifier</i> The unique identifier for the cluster to resize.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterIdentifier</i> The identifier of the cluster to be paused.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterIdentifier</i> The identifier of the cluster to be resumed.<br/>
        :return: EndTime:  The end time in UTC when the schedule is no longer active. After this time, the scheduled action does not trigger. <br/>StartTime:  The start time in UTC when the schedule is active. Before this time, the scheduled action does not trigger. <br/>NextInvocations:  List of times when the scheduled action will run. <br/>State:  The state of the scheduled action. For example, <code>DISABLED</code>. <br/>ScheduledActionDescription:  The description of the scheduled action. <br/>IamRole:  The IAM role to assume to run the scheduled action. This IAM role must have permission to run the Amazon Redshift API operation in the scheduled action. This IAM role must allow the Amazon Redshift scheduler (Principal scheduler.redshift.amazonaws.com) to assume permissions on your behalf. For more information about the IAM role to use with the Amazon Redshift scheduler, see <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-access-control-identity-based.html">Using Identity-Based Policies for Amazon Redshift</a> in the <i>Amazon Redshift Cluster Management Guide</i>. <br/>Schedule:  The schedule for a one-time (at format) or recurring (cron format) scheduled action. Schedule invocations must be separated by at least one hour. Format of at expressions is "<code>at(yyyy-mm-ddThh:mm:ss)</code>". For example, "<code>at(2016-03-04T17:27:00)</code>". Format of cron expressions is "<code>cron(Minutes Hours Day-of-month Month Day-of-week Year)</code>". For example, "<code>cron(0 10 ? * MON *)</code>". For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/ScheduledEvents.html#CronExpressions">Cron Expressions</a> in the <i>Amazon CloudWatch Events User Guide</i>.<br/>TargetAction:  A JSON format string of the Amazon Redshift API operation with input parameters.  "<code>{\"ResizeCluster\":{\"NodeType\":\"ds2.8xlarge\",\"ClusterIdentifier\":\"my-test-cluster\",\"NumberOfNodes\":3}}</code>". :<br/>ScheduledActionName:  The name of the scheduled action. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResumeCluster</i> An action that runs a <code>ResumeCluster</code> API operation. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ResumeCluster</b>: An action that runs a <code>ResumeCluster</code> API operation. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PauseCluster</i> An action that runs a <code>PauseCluster</code> API operation. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PauseCluster</b>: An action that runs a <code>PauseCluster</code> API operation. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResizeCluster</i> An action that runs a <code>ResizeCluster</code> API operation. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ResizeCluster</b>: An action that runs a <code>ResizeCluster</code> API operation. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Classic</i> A boolean value indicating whether the resize operation is using the classic resize process. If you don't provide this parameter or set the value to <code>false</code>, the resize type is elastic. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberOfNodes</i> The new number of nodes for the cluster. If not specified, the cluster's current number of nodes is used.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NodeType</i> The new node type for the nodes you are adding. If not specified, the cluster's current node type is used.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterType</i> The new cluster type for the specified cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterIdentifier</i> The unique identifier for the cluster to resize.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterIdentifier</i> The identifier of the cluster to be paused.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterIdentifier</i> The identifier of the cluster to be resumed.<br/>        """
        pass

    def modify_snapshot_copy_retention_period(self, RetentionPeriod: int, ClusterIdentifier: str, Manual: Boolean=None) -> ModifySnapshotCopyRetentionPeriodResult:
        r"""Modifies the number of days to retain snapshots in the destination AWS Region after they are copied from the source AWS Region. By default, this operation only changes the retention period of copied automated snapshots. The retention periods for both new and existing copied automated snapshots are updated with the new retention period. You can set the manual option to change only the retention periods of copied manual snapshots. If you set this option, only newly copied manual snapshots have the new retention period. 

        :param self:
        :param Manual:  Indicates whether to apply the snapshot retention period to newly copied manual snapshots instead of automated snapshots.<br/>RetentionPeriod:  The number of days to retain automated snapshots in the destination AWS Region after they are copied from the source AWS Region. By default, this only changes the retention period of copied automated snapshots.  If you decrease the retention period for automated snapshots that are copied to a destination AWS Region, Amazon Redshift deletes any existing automated snapshots that were copied to the destination AWS Region and that fall outside of the new retention period. Constraints: Must be at least 1 and no more than 35 for automated snapshots.  If you specify the <code>manual</code> option, only newly copied manual snapshots will have the new retention period.  If you specify the value of -1 newly copied manual snapshots are retained indefinitely. Constraints: The number of days must be either -1 or an integer between 1 and 3,653 for manual snapshots.<br/>ClusterIdentifier:  The unique identifier of the cluster for which you want to change the retention period for either automated or manual snapshots that are copied to a destination AWS Region. Constraints: Must be the valid name of an existing cluster that has cross-region snapshot copy enabled.<br/>
        :return: Cluster:  Describes a cluster.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AquaConfiguration</i> The AQUA (Advanced Query Accelerator) configuration of the cluster.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AquaConfiguration</b>: The AQUA (Advanced Query Accelerator) configuration of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalStorageCapacityInMegaBytes</i> The total storage capacity of the cluster in megabytes. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterNamespaceArn</i> The namespace Amazon Resource Name (ARN) of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZoneRelocationStatus</i> Describes the status of the Availability Zone relocation operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResizeInfo</i> Returns the following: <ul> <li> AllowCancelResize: a boolean value indicating if the resize operation can be cancelled. </li> <li> ResizeType: Returns ClassicResize </li> </ul>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ResizeInfo</b>: Returns the following: <ul> <li> AllowCancelResize: a boolean value indicating if the resize operation can be cancelled. </li> <li> ResizeType: Returns ClassicResize </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NextMaintenanceWindowStartTime</i> The date and time in UTC when system maintenance can begin.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExpectedNextSnapshotScheduleTimeStatus</i>  The status of next expected snapshot for clusters having a valid snapshot schedule and backups enabled. Possible values are the following: <ul> <li> OnTrack - The next snapshot is expected to be taken on time.  </li> <li> Pending - The next snapshot is pending to be taken.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExpectedNextSnapshotScheduleTime</i> The date and time when the next snapshot is expected to be taken for clusters with a valid snapshot schedule and backups enabled. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotScheduleState</i> The current state of the cluster snapshot schedule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotScheduleIdentifier</i> A unique identifier for the cluster snapshot schedule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeferredMaintenanceWindows</i> Describes a group of <code>DeferredMaintenanceWindow</code> objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ElasticResizeNumberOfNodeOptions</i> The number of nodes that you can resize the cluster to with the elastic resize method. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaintenanceTrackName</i> The name of the maintenance track for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingActions</i> Cluster operations that are waiting to be started.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IamRoles</i> A list of AWS Identity and Access Management (IAM) roles that can be used by the cluster to access other AWS services.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnhancedVpcRouting</i> An option that specifies whether to create the cluster with enhanced VPC routing enabled. To create a cluster that uses enhanced VPC routing, the cluster must be in a VPC. For more information, see <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html">Enhanced VPC Routing</a> in the Amazon Redshift Cluster Management Guide. If this option is <code>true</code>, enhanced VPC routing is enabled.  Default: false<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The AWS Key Management Service (AWS KMS) key ID of the encryption key used to encrypt data in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The list of tags for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterRevisionNumber</i> The specific revision number of the database in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ElasticIpStatus</i> The status of the elastic IP (EIP) address.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ElasticIpStatus</b>: The status of the elastic IP (EIP) address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterNodes</i> The nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterPublicKey</i> The public key for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterSnapshotCopyStatus</i> A value that returns the destination region and retention period that are configured for cross-region snapshot copy.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ClusterSnapshotCopyStatus</b>: A value that returns the destination region and retention period that are configured for cross-region snapshot copy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HsmStatus</i> A value that reports whether the Amazon Redshift cluster has finished applying any hardware security module (HSM) settings changes specified in a modify cluster command. Values: active, applying&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>HsmStatus</b>: A value that reports whether the Amazon Redshift cluster has finished applying any hardware security module (HSM) settings changes specified in a modify cluster command. Values: active, applying<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataTransferProgress</i> <p/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DataTransferProgress</b>: <p/><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RestoreStatus</i> A value that describes the status of a cluster restore action. This parameter returns null if the cluster was not created by restoring a snapshot.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RestoreStatus</b>: A value that describes the status of a cluster restore action. This parameter returns null if the cluster was not created by restoring a snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Encrypted</i> A boolean value that, if <code>true</code>, indicates that data in the cluster is encrypted at rest.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PubliclyAccessible</i> A boolean value that, if <code>true</code>, indicates that the cluster can be accessed from a public network.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberOfNodes</i> The number of compute nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowVersionUpgrade</i> A boolean value that, if <code>true</code>, indicates that major version upgrades will be applied automatically to the cluster during the maintenance window. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterVersion</i> The version ID of the Amazon Redshift engine that is running on the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingModifiedValues</i> A value that, if present, indicates that changes to the cluster are pending. Specific pending changes are identified by subelements.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingModifiedValues</b>: A value that, if present, indicates that changes to the cluster are pending. Specific pending changes are identified by subelements.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i> The weekly time range, in Universal Coordinated Time (UTC), during which system maintenance can occur.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZone</i> The name of the Availability Zone in which the cluster is located.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The identifier of the VPC the cluster is in, if the cluster is in a VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterSubnetGroupName</i> The name of the subnet group that is associated with the cluster. This parameter is valid only when the cluster is in a VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterParameterGroups</i> The list of cluster parameter groups that are associated with this cluster. Each parameter group in the list is returned with its status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcSecurityGroups</i> A list of Amazon Virtual Private Cloud (Amazon VPC) security groups that are associated with the cluster. This parameter is returned only if the cluster is in a VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterSecurityGroups</i> A list of cluster security group that are associated with the cluster. Each security group is represented by an element that contains <code>ClusterSecurityGroup.Name</code> and <code>ClusterSecurityGroup.Status</code> subelements.  Cluster security groups are used when the cluster is not created in an Amazon Virtual Private Cloud (VPC). Clusters that are created in a VPC use VPC security groups, which are listed by the <b>VpcSecurityGroups</b> parameter. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ManualSnapshotRetentionPeriod</i> The default number of days to retain a manual snapshot. If the value is -1, the snapshot is retained indefinitely. This setting doesn't change the retention period of existing snapshots. The value must be either -1 or an integer between 1 and 3,653.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomatedSnapshotRetentionPeriod</i> The number of days that automatic cluster snapshots are retained.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterCreateTime</i> The date and time that the cluster was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i> The connection endpoint.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Endpoint</b>: The connection endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBName</i> The name of the initial database that was created when the cluster was created. This same name is returned for the life of the cluster. If an initial database was not specified, a database named <code>dev</code>dev was created by default. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUsername</i> The master user name for the cluster. This name is used to connect to the database that is specified in the <b>DBName</b> parameter. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ModifyStatus</i> The status of a modify operation, if any, initiated for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterAvailabilityStatus</i> The availability status of the cluster for queries. Possible values are the following: <ul> <li> Available - The cluster is available for queries.  </li> <li> Unavailable - The cluster is not available for queries. </li> <li> Maintenance - The cluster is intermittently available for queries due to maintenance activities. </li> <li> Modifying - The cluster is intermittently available for queries due to changes that modify the cluster. </li> <li> Failed - The cluster failed and is not available for queries. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterStatus</i>  The current state of the cluster. Possible values are the following: <ul> <li>  <code>available</code>  </li> <li>  <code>available, prep-for-resize</code>  </li> <li>  <code>available, resize-cleanup</code>  </li> <li>  <code>cancelling-resize</code>  </li> <li>  <code>creating</code>  </li> <li>  <code>deleting</code>  </li> <li>  <code>final-snapshot</code>  </li> <li>  <code>hardware-failure</code>  </li> <li>  <code>incompatible-hsm</code>  </li> <li>  <code>incompatible-network</code>  </li> <li>  <code>incompatible-parameters</code>  </li> <li>  <code>incompatible-restore</code>  </li> <li>  <code>modifying</code>  </li> <li>  <code>paused</code>  </li> <li>  <code>rebooting</code>  </li> <li>  <code>renaming</code>  </li> <li>  <code>resizing</code>  </li> <li>  <code>rotating-keys</code>  </li> <li>  <code>storage-full</code>  </li> <li>  <code>updating-hsm</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NodeType</i> The node type for the nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterIdentifier</i> The unique identifier of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcEndpoints</i> Describes a connection endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> The port that the database engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Address</i> The DNS address of the Cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EncryptionType</i> The encryption type for a cluster. Possible values are: KMS and None. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaintenanceTrackName</i> The name of the maintenance track that the cluster will change to during the next maintenance window.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EnhancedVpcRouting</i> An option that specifies whether to create the cluster with enhanced VPC routing enabled. To create a cluster that uses enhanced VPC routing, the cluster must be in a VPC. For more information, see <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html">Enhanced VPC Routing</a> in the Amazon Redshift Cluster Management Guide. If this option is <code>true</code>, enhanced VPC routing is enabled.  Default: false<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PubliclyAccessible</i> The pending or in-progress change of the ability to connect to the cluster from the public network.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterIdentifier</i> The pending or in-progress change of the new identifier for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomatedSnapshotRetentionPeriod</i> The pending or in-progress change of the automated snapshot retention period.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterVersion</i> The pending or in-progress change of the service version.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterType</i> The pending or in-progress change of the cluster type.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberOfNodes</i> The pending or in-progress change of the number of nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NodeType</i> The pending or in-progress change of the cluster's node type.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUserPassword</i> The pending or in-progress change of the master user password for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EstimatedTimeToCompletionInSeconds</i> The estimate of the time remaining before the restore will complete. Returns 0 for a completed restore. This field is only updated when you restore to DC2 and DS2 node types. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ElapsedTimeInSeconds</i> The amount of time an in-progress restore has been running, or the amount of time it took a completed restore to finish. This field is only updated when you restore to DC2 and DS2 node types. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ProgressInMegaBytes</i> The number of megabytes that have been transferred from snapshot storage. This field is only updated when you restore to DC2 and DS2 node types. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotSizeInMegaBytes</i> The size of the set of snapshot data used to restore the cluster. This field is only updated when you restore to DC2 and DS2 node types. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CurrentRestoreRateInMegaBytesPerSecond</i> The number of megabytes per second being transferred from the backup storage. Returns the average rate for a completed backup. This field is only updated when you restore to DC2 and DS2 node types. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the restore action. Returns starting, restoring, completed, or failed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ElapsedTimeInSeconds</i> Describes the number of seconds that have elapsed during the data transfer.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EstimatedTimeToCompletionInSeconds</i> Describes the estimated number of seconds remaining to complete the transfer.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DataTransferredInMegaBytes</i> Describes the total amount of data that has been transfered in MB's.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalDataInMegaBytes</i> Describes the total amount of data to be transfered in megabytes.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CurrentRateInMegaBytesPerSecond</i> Describes the data transfer rate in MB's per second.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Describes the status of the cluster. While the transfer is in progress the status is <code>transferringdata</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Reports whether the Amazon Redshift cluster has finished applying any HSM settings changes specified in a modify cluster command. Values: active, applying<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HsmConfigurationIdentifier</i> Specifies the name of the HSM configuration that contains the information the Amazon Redshift cluster can use to retrieve and store keys in an HSM.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HsmClientCertificateIdentifier</i> Specifies the name of the HSM client certificate the Amazon Redshift cluster uses to retrieve the data encryption keys stored in an HSM.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotCopyGrantName</i> The name of the snapshot copy grant.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ManualSnapshotRetentionPeriod</i> The number of days that automated snapshots are retained in the destination region after they are copied from a source region. If the value is -1, the manual snapshot is retained indefinitely.  The value must be either -1 or an integer between 1 and 3,653.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RetentionPeriod</i> The number of days that automated snapshots are retained in the destination region after they are copied from a source region.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DestinationRegion</i> The destination region that snapshots are automatically copied to when cross-region snapshot copy is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the elastic IP (EIP) address.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ElasticIp</i> The elastic IP (EIP) address for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowCancelResize</i> A boolean value indicating if the resize operation can be cancelled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ResizeType</i> Returns the value <code>ClassicResize</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AquaConfigurationStatus</i> The value represents how the cluster is configured to use AQUA. Possible values include the following. <ul> <li> enabled - Use AQUA if it is available for the current AWS Region and Amazon Redshift node type. </li> <li> disabled - Don't use AQUA.  </li> <li> auto - Amazon Redshift determines whether to use AQUA. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AquaStatus</i> The value indicates the status of AQUA on the cluster. Possible values include the following. <ul> <li> enabled - AQUA is enabled. </li> <li> disabled - AQUA is not enabled.  </li> <li> applying - AQUA status is being applied.  </li> </ul><br/>        """
        pass

    def modify_snapshot_schedule(self, ScheduleDefinitions: List[String], ScheduleIdentifier: str) -> SnapshotSchedule:
        r"""Modifies a snapshot schedule. Any schedule associated with a cluster is modified asynchronously.

        :param self:
        :param ScheduleDefinitions:  An updated list of schedule definitions. A schedule definition is made up of schedule expressions, for example, "cron(30 12 *)" or "rate(12 hours)".<br/>ScheduleIdentifier:  A unique alphanumeric identifier of the schedule to modify.<br/>
        :return: AssociatedClusters:  A list of clusters associated with the schedule. A maximum of 100 clusters is returned.<br/>AssociatedClusterCount:  The number of clusters associated with the schedule.<br/>NextInvocations:  <p/><br/>Tags:  An optional set of tags describing the schedule.<br/>ScheduleDescription:  The description of the schedule.<br/>ScheduleIdentifier:  A unique identifier for the schedule.<br/>ScheduleDefinitions:  A list of ScheduleDefinitions.<br/>        """
        pass

    def modify_usage_limit(self, UsageLimitId: str, Amount: LongOptional=None, BreachAction: str=None) -> UsageLimit:
        r"""Modifies a usage limit in a cluster. You can't modify the feature type or period of a usage limit.

        :param self:
        :param BreachAction:  The new action that Amazon Redshift takes when the limit is reached. For more information about this parameter, see <a>UsageLimit</a>. <br/>Amount:  The new limit amount. For more information about this parameter, see <a>UsageLimit</a>. <br/>UsageLimitId:  The identifier of the usage limit to modify.<br/>
        :return: Tags:  A list of tag instances.<br/>BreachAction:  The action that Amazon Redshift takes when the limit is reached. Possible values are:  <ul> <li>  <b>log</b> - To log an event in a system table. The default is log. </li> <li>  <b>emit-metric</b> - To emit CloudWatch metrics. </li> <li>  <b>disable</b> - To disable the feature until the next usage period begins. </li> </ul><br/>Period:  The time period that the amount applies to. A <code>weekly</code> period begins on Sunday. The default is <code>monthly</code>. <br/>Amount:  The limit amount. If time-based, this amount is in minutes. If data-based, this amount is in terabytes (TB).<br/>LimitType:  The type of limit. Depending on the feature type, this can be based on a time duration or data size.<br/>FeatureType:  The Amazon Redshift feature to which the limit applies.<br/>ClusterIdentifier:  The identifier of the cluster with a usage limit.<br/>UsageLimitId:  The identifier of the usage limit.<br/>        """
        pass

    def pause_cluster(self, ClusterIdentifier: str) -> PauseClusterResult:
        r"""Pauses a cluster.

        :param self:
        :param ClusterIdentifier:  The identifier of the cluster to be paused.<br/>
        :return: Cluster:  Describes a cluster.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AquaConfiguration</i> The AQUA (Advanced Query Accelerator) configuration of the cluster.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AquaConfiguration</b>: The AQUA (Advanced Query Accelerator) configuration of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalStorageCapacityInMegaBytes</i> The total storage capacity of the cluster in megabytes. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterNamespaceArn</i> The namespace Amazon Resource Name (ARN) of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZoneRelocationStatus</i> Describes the status of the Availability Zone relocation operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResizeInfo</i> Returns the following: <ul> <li> AllowCancelResize: a boolean value indicating if the resize operation can be cancelled. </li> <li> ResizeType: Returns ClassicResize </li> </ul>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ResizeInfo</b>: Returns the following: <ul> <li> AllowCancelResize: a boolean value indicating if the resize operation can be cancelled. </li> <li> ResizeType: Returns ClassicResize </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NextMaintenanceWindowStartTime</i> The date and time in UTC when system maintenance can begin.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExpectedNextSnapshotScheduleTimeStatus</i>  The status of next expected snapshot for clusters having a valid snapshot schedule and backups enabled. Possible values are the following: <ul> <li> OnTrack - The next snapshot is expected to be taken on time.  </li> <li> Pending - The next snapshot is pending to be taken.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExpectedNextSnapshotScheduleTime</i> The date and time when the next snapshot is expected to be taken for clusters with a valid snapshot schedule and backups enabled. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotScheduleState</i> The current state of the cluster snapshot schedule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotScheduleIdentifier</i> A unique identifier for the cluster snapshot schedule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeferredMaintenanceWindows</i> Describes a group of <code>DeferredMaintenanceWindow</code> objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ElasticResizeNumberOfNodeOptions</i> The number of nodes that you can resize the cluster to with the elastic resize method. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaintenanceTrackName</i> The name of the maintenance track for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingActions</i> Cluster operations that are waiting to be started.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IamRoles</i> A list of AWS Identity and Access Management (IAM) roles that can be used by the cluster to access other AWS services.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnhancedVpcRouting</i> An option that specifies whether to create the cluster with enhanced VPC routing enabled. To create a cluster that uses enhanced VPC routing, the cluster must be in a VPC. For more information, see <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html">Enhanced VPC Routing</a> in the Amazon Redshift Cluster Management Guide. If this option is <code>true</code>, enhanced VPC routing is enabled.  Default: false<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The AWS Key Management Service (AWS KMS) key ID of the encryption key used to encrypt data in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The list of tags for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterRevisionNumber</i> The specific revision number of the database in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ElasticIpStatus</i> The status of the elastic IP (EIP) address.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ElasticIpStatus</b>: The status of the elastic IP (EIP) address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterNodes</i> The nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterPublicKey</i> The public key for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterSnapshotCopyStatus</i> A value that returns the destination region and retention period that are configured for cross-region snapshot copy.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ClusterSnapshotCopyStatus</b>: A value that returns the destination region and retention period that are configured for cross-region snapshot copy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HsmStatus</i> A value that reports whether the Amazon Redshift cluster has finished applying any hardware security module (HSM) settings changes specified in a modify cluster command. Values: active, applying&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>HsmStatus</b>: A value that reports whether the Amazon Redshift cluster has finished applying any hardware security module (HSM) settings changes specified in a modify cluster command. Values: active, applying<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataTransferProgress</i> <p/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DataTransferProgress</b>: <p/><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RestoreStatus</i> A value that describes the status of a cluster restore action. This parameter returns null if the cluster was not created by restoring a snapshot.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RestoreStatus</b>: A value that describes the status of a cluster restore action. This parameter returns null if the cluster was not created by restoring a snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Encrypted</i> A boolean value that, if <code>true</code>, indicates that data in the cluster is encrypted at rest.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PubliclyAccessible</i> A boolean value that, if <code>true</code>, indicates that the cluster can be accessed from a public network.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberOfNodes</i> The number of compute nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowVersionUpgrade</i> A boolean value that, if <code>true</code>, indicates that major version upgrades will be applied automatically to the cluster during the maintenance window. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterVersion</i> The version ID of the Amazon Redshift engine that is running on the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingModifiedValues</i> A value that, if present, indicates that changes to the cluster are pending. Specific pending changes are identified by subelements.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingModifiedValues</b>: A value that, if present, indicates that changes to the cluster are pending. Specific pending changes are identified by subelements.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i> The weekly time range, in Universal Coordinated Time (UTC), during which system maintenance can occur.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZone</i> The name of the Availability Zone in which the cluster is located.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The identifier of the VPC the cluster is in, if the cluster is in a VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterSubnetGroupName</i> The name of the subnet group that is associated with the cluster. This parameter is valid only when the cluster is in a VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterParameterGroups</i> The list of cluster parameter groups that are associated with this cluster. Each parameter group in the list is returned with its status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcSecurityGroups</i> A list of Amazon Virtual Private Cloud (Amazon VPC) security groups that are associated with the cluster. This parameter is returned only if the cluster is in a VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterSecurityGroups</i> A list of cluster security group that are associated with the cluster. Each security group is represented by an element that contains <code>ClusterSecurityGroup.Name</code> and <code>ClusterSecurityGroup.Status</code> subelements.  Cluster security groups are used when the cluster is not created in an Amazon Virtual Private Cloud (VPC). Clusters that are created in a VPC use VPC security groups, which are listed by the <b>VpcSecurityGroups</b> parameter. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ManualSnapshotRetentionPeriod</i> The default number of days to retain a manual snapshot. If the value is -1, the snapshot is retained indefinitely. This setting doesn't change the retention period of existing snapshots. The value must be either -1 or an integer between 1 and 3,653.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomatedSnapshotRetentionPeriod</i> The number of days that automatic cluster snapshots are retained.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterCreateTime</i> The date and time that the cluster was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i> The connection endpoint.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Endpoint</b>: The connection endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBName</i> The name of the initial database that was created when the cluster was created. This same name is returned for the life of the cluster. If an initial database was not specified, a database named <code>dev</code>dev was created by default. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUsername</i> The master user name for the cluster. This name is used to connect to the database that is specified in the <b>DBName</b> parameter. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ModifyStatus</i> The status of a modify operation, if any, initiated for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterAvailabilityStatus</i> The availability status of the cluster for queries. Possible values are the following: <ul> <li> Available - The cluster is available for queries.  </li> <li> Unavailable - The cluster is not available for queries. </li> <li> Maintenance - The cluster is intermittently available for queries due to maintenance activities. </li> <li> Modifying - The cluster is intermittently available for queries due to changes that modify the cluster. </li> <li> Failed - The cluster failed and is not available for queries. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterStatus</i>  The current state of the cluster. Possible values are the following: <ul> <li>  <code>available</code>  </li> <li>  <code>available, prep-for-resize</code>  </li> <li>  <code>available, resize-cleanup</code>  </li> <li>  <code>cancelling-resize</code>  </li> <li>  <code>creating</code>  </li> <li>  <code>deleting</code>  </li> <li>  <code>final-snapshot</code>  </li> <li>  <code>hardware-failure</code>  </li> <li>  <code>incompatible-hsm</code>  </li> <li>  <code>incompatible-network</code>  </li> <li>  <code>incompatible-parameters</code>  </li> <li>  <code>incompatible-restore</code>  </li> <li>  <code>modifying</code>  </li> <li>  <code>paused</code>  </li> <li>  <code>rebooting</code>  </li> <li>  <code>renaming</code>  </li> <li>  <code>resizing</code>  </li> <li>  <code>rotating-keys</code>  </li> <li>  <code>storage-full</code>  </li> <li>  <code>updating-hsm</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NodeType</i> The node type for the nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterIdentifier</i> The unique identifier of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcEndpoints</i> Describes a connection endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> The port that the database engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Address</i> The DNS address of the Cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EncryptionType</i> The encryption type for a cluster. Possible values are: KMS and None. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaintenanceTrackName</i> The name of the maintenance track that the cluster will change to during the next maintenance window.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EnhancedVpcRouting</i> An option that specifies whether to create the cluster with enhanced VPC routing enabled. To create a cluster that uses enhanced VPC routing, the cluster must be in a VPC. For more information, see <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html">Enhanced VPC Routing</a> in the Amazon Redshift Cluster Management Guide. If this option is <code>true</code>, enhanced VPC routing is enabled.  Default: false<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PubliclyAccessible</i> The pending or in-progress change of the ability to connect to the cluster from the public network.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterIdentifier</i> The pending or in-progress change of the new identifier for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomatedSnapshotRetentionPeriod</i> The pending or in-progress change of the automated snapshot retention period.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterVersion</i> The pending or in-progress change of the service version.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterType</i> The pending or in-progress change of the cluster type.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberOfNodes</i> The pending or in-progress change of the number of nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NodeType</i> The pending or in-progress change of the cluster's node type.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUserPassword</i> The pending or in-progress change of the master user password for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EstimatedTimeToCompletionInSeconds</i> The estimate of the time remaining before the restore will complete. Returns 0 for a completed restore. This field is only updated when you restore to DC2 and DS2 node types. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ElapsedTimeInSeconds</i> The amount of time an in-progress restore has been running, or the amount of time it took a completed restore to finish. This field is only updated when you restore to DC2 and DS2 node types. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ProgressInMegaBytes</i> The number of megabytes that have been transferred from snapshot storage. This field is only updated when you restore to DC2 and DS2 node types. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotSizeInMegaBytes</i> The size of the set of snapshot data used to restore the cluster. This field is only updated when you restore to DC2 and DS2 node types. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CurrentRestoreRateInMegaBytesPerSecond</i> The number of megabytes per second being transferred from the backup storage. Returns the average rate for a completed backup. This field is only updated when you restore to DC2 and DS2 node types. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the restore action. Returns starting, restoring, completed, or failed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ElapsedTimeInSeconds</i> Describes the number of seconds that have elapsed during the data transfer.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EstimatedTimeToCompletionInSeconds</i> Describes the estimated number of seconds remaining to complete the transfer.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DataTransferredInMegaBytes</i> Describes the total amount of data that has been transfered in MB's.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalDataInMegaBytes</i> Describes the total amount of data to be transfered in megabytes.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CurrentRateInMegaBytesPerSecond</i> Describes the data transfer rate in MB's per second.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Describes the status of the cluster. While the transfer is in progress the status is <code>transferringdata</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Reports whether the Amazon Redshift cluster has finished applying any HSM settings changes specified in a modify cluster command. Values: active, applying<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HsmConfigurationIdentifier</i> Specifies the name of the HSM configuration that contains the information the Amazon Redshift cluster can use to retrieve and store keys in an HSM.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HsmClientCertificateIdentifier</i> Specifies the name of the HSM client certificate the Amazon Redshift cluster uses to retrieve the data encryption keys stored in an HSM.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotCopyGrantName</i> The name of the snapshot copy grant.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ManualSnapshotRetentionPeriod</i> The number of days that automated snapshots are retained in the destination region after they are copied from a source region. If the value is -1, the manual snapshot is retained indefinitely.  The value must be either -1 or an integer between 1 and 3,653.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RetentionPeriod</i> The number of days that automated snapshots are retained in the destination region after they are copied from a source region.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DestinationRegion</i> The destination region that snapshots are automatically copied to when cross-region snapshot copy is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the elastic IP (EIP) address.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ElasticIp</i> The elastic IP (EIP) address for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowCancelResize</i> A boolean value indicating if the resize operation can be cancelled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ResizeType</i> Returns the value <code>ClassicResize</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AquaConfigurationStatus</i> The value represents how the cluster is configured to use AQUA. Possible values include the following. <ul> <li> enabled - Use AQUA if it is available for the current AWS Region and Amazon Redshift node type. </li> <li> disabled - Don't use AQUA.  </li> <li> auto - Amazon Redshift determines whether to use AQUA. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AquaStatus</i> The value indicates the status of AQUA on the cluster. Possible values include the following. <ul> <li> enabled - AQUA is enabled. </li> <li> disabled - AQUA is not enabled.  </li> <li> applying - AQUA status is being applied.  </li> </ul><br/>        """
        pass

    def purchase_reserved_node_offering(self, ReservedNodeOfferingId: str, NodeCount: int=None) -> PurchaseReservedNodeOfferingResult:
        r"""Allows you to purchase reserved nodes. Amazon Redshift offers a predefined set of reserved node offerings. You can purchase one or more of the offerings. You can call the <a>DescribeReservedNodeOfferings</a> API to obtain the available reserved node offerings. You can call this API by providing a specific reserved node offering and the number of nodes you want to reserve.   For more information about reserved node offerings, go to <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/purchase-reserved-node-instance.html">Purchasing Reserved Nodes</a> in the <i>Amazon Redshift Cluster Management Guide</i>.

        :param self:
        :param NodeCount:  The number of reserved nodes that you want to purchase. Default: <code>1</code> <br/>ReservedNodeOfferingId:  The unique identifier of the reserved node offering you want to purchase.<br/>
        :return: ReservedNode:  Describes a reserved node. You can call the <a>DescribeReservedNodeOfferings</a> API to obtain the available reserved node offerings. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReservedNodeOfferingType</i> <p/><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecurringCharges</i> The recurring charges for the reserved node.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OfferingType</i> The anticipated utilization of the reserved node, as defined in the reserved node offering.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state of the reserved compute node. Possible Values: <ul> <li> pending-payment-This reserved node has recently been purchased, and the sale has been approved, but payment has not yet been confirmed. </li> <li> active-This reserved node is owned by the caller and is available for use. </li> <li> payment-failed-Payment failed for the purchase attempt. </li> <li> retired-The reserved node is no longer available.  </li> <li> exchanging-The owner is exchanging the reserved node for another reserved node. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NodeCount</i> The number of reserved compute nodes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CurrencyCode</i> The currency code for the reserved cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UsagePrice</i> The hourly rate Amazon Redshift charges you for this reserved node.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FixedPrice</i> The fixed cost Amazon Redshift charges you for this reserved node.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Duration</i> The duration of the node reservation in seconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StartTime</i> The time the reservation started. You purchase a reserved node offering for a duration. This is the start time of that duration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NodeType</i> The node type of the reserved node.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReservedNodeOfferingId</i> The identifier for the reserved node offering.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReservedNodeId</i> The unique identifier for the reservation.<br/>        """
        pass

    def reboot_cluster(self, ClusterIdentifier: str) -> RebootClusterResult:
        r"""Reboots a cluster. This action is taken as soon as possible. It results in a momentary outage to the cluster, during which the cluster status is set to <code>rebooting</code>. A cluster event is created when the reboot is completed. Any pending cluster modifications (see <a>ModifyCluster</a>) are applied at this reboot. For more information about managing clusters, go to <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html">Amazon Redshift Clusters</a> in the <i>Amazon Redshift Cluster Management Guide</i>. 

        :param self:
        :param ClusterIdentifier:  The cluster identifier.<br/>
        :return: Cluster:  Describes a cluster.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AquaConfiguration</i> The AQUA (Advanced Query Accelerator) configuration of the cluster.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AquaConfiguration</b>: The AQUA (Advanced Query Accelerator) configuration of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalStorageCapacityInMegaBytes</i> The total storage capacity of the cluster in megabytes. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterNamespaceArn</i> The namespace Amazon Resource Name (ARN) of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZoneRelocationStatus</i> Describes the status of the Availability Zone relocation operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResizeInfo</i> Returns the following: <ul> <li> AllowCancelResize: a boolean value indicating if the resize operation can be cancelled. </li> <li> ResizeType: Returns ClassicResize </li> </ul>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ResizeInfo</b>: Returns the following: <ul> <li> AllowCancelResize: a boolean value indicating if the resize operation can be cancelled. </li> <li> ResizeType: Returns ClassicResize </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NextMaintenanceWindowStartTime</i> The date and time in UTC when system maintenance can begin.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExpectedNextSnapshotScheduleTimeStatus</i>  The status of next expected snapshot for clusters having a valid snapshot schedule and backups enabled. Possible values are the following: <ul> <li> OnTrack - The next snapshot is expected to be taken on time.  </li> <li> Pending - The next snapshot is pending to be taken.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExpectedNextSnapshotScheduleTime</i> The date and time when the next snapshot is expected to be taken for clusters with a valid snapshot schedule and backups enabled. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotScheduleState</i> The current state of the cluster snapshot schedule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotScheduleIdentifier</i> A unique identifier for the cluster snapshot schedule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeferredMaintenanceWindows</i> Describes a group of <code>DeferredMaintenanceWindow</code> objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ElasticResizeNumberOfNodeOptions</i> The number of nodes that you can resize the cluster to with the elastic resize method. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaintenanceTrackName</i> The name of the maintenance track for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingActions</i> Cluster operations that are waiting to be started.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IamRoles</i> A list of AWS Identity and Access Management (IAM) roles that can be used by the cluster to access other AWS services.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnhancedVpcRouting</i> An option that specifies whether to create the cluster with enhanced VPC routing enabled. To create a cluster that uses enhanced VPC routing, the cluster must be in a VPC. For more information, see <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html">Enhanced VPC Routing</a> in the Amazon Redshift Cluster Management Guide. If this option is <code>true</code>, enhanced VPC routing is enabled.  Default: false<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The AWS Key Management Service (AWS KMS) key ID of the encryption key used to encrypt data in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The list of tags for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterRevisionNumber</i> The specific revision number of the database in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ElasticIpStatus</i> The status of the elastic IP (EIP) address.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ElasticIpStatus</b>: The status of the elastic IP (EIP) address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterNodes</i> The nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterPublicKey</i> The public key for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterSnapshotCopyStatus</i> A value that returns the destination region and retention period that are configured for cross-region snapshot copy.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ClusterSnapshotCopyStatus</b>: A value that returns the destination region and retention period that are configured for cross-region snapshot copy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HsmStatus</i> A value that reports whether the Amazon Redshift cluster has finished applying any hardware security module (HSM) settings changes specified in a modify cluster command. Values: active, applying&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>HsmStatus</b>: A value that reports whether the Amazon Redshift cluster has finished applying any hardware security module (HSM) settings changes specified in a modify cluster command. Values: active, applying<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataTransferProgress</i> <p/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DataTransferProgress</b>: <p/><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RestoreStatus</i> A value that describes the status of a cluster restore action. This parameter returns null if the cluster was not created by restoring a snapshot.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RestoreStatus</b>: A value that describes the status of a cluster restore action. This parameter returns null if the cluster was not created by restoring a snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Encrypted</i> A boolean value that, if <code>true</code>, indicates that data in the cluster is encrypted at rest.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PubliclyAccessible</i> A boolean value that, if <code>true</code>, indicates that the cluster can be accessed from a public network.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberOfNodes</i> The number of compute nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowVersionUpgrade</i> A boolean value that, if <code>true</code>, indicates that major version upgrades will be applied automatically to the cluster during the maintenance window. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterVersion</i> The version ID of the Amazon Redshift engine that is running on the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingModifiedValues</i> A value that, if present, indicates that changes to the cluster are pending. Specific pending changes are identified by subelements.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingModifiedValues</b>: A value that, if present, indicates that changes to the cluster are pending. Specific pending changes are identified by subelements.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i> The weekly time range, in Universal Coordinated Time (UTC), during which system maintenance can occur.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZone</i> The name of the Availability Zone in which the cluster is located.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The identifier of the VPC the cluster is in, if the cluster is in a VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterSubnetGroupName</i> The name of the subnet group that is associated with the cluster. This parameter is valid only when the cluster is in a VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterParameterGroups</i> The list of cluster parameter groups that are associated with this cluster. Each parameter group in the list is returned with its status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcSecurityGroups</i> A list of Amazon Virtual Private Cloud (Amazon VPC) security groups that are associated with the cluster. This parameter is returned only if the cluster is in a VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterSecurityGroups</i> A list of cluster security group that are associated with the cluster. Each security group is represented by an element that contains <code>ClusterSecurityGroup.Name</code> and <code>ClusterSecurityGroup.Status</code> subelements.  Cluster security groups are used when the cluster is not created in an Amazon Virtual Private Cloud (VPC). Clusters that are created in a VPC use VPC security groups, which are listed by the <b>VpcSecurityGroups</b> parameter. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ManualSnapshotRetentionPeriod</i> The default number of days to retain a manual snapshot. If the value is -1, the snapshot is retained indefinitely. This setting doesn't change the retention period of existing snapshots. The value must be either -1 or an integer between 1 and 3,653.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomatedSnapshotRetentionPeriod</i> The number of days that automatic cluster snapshots are retained.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterCreateTime</i> The date and time that the cluster was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i> The connection endpoint.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Endpoint</b>: The connection endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBName</i> The name of the initial database that was created when the cluster was created. This same name is returned for the life of the cluster. If an initial database was not specified, a database named <code>dev</code>dev was created by default. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUsername</i> The master user name for the cluster. This name is used to connect to the database that is specified in the <b>DBName</b> parameter. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ModifyStatus</i> The status of a modify operation, if any, initiated for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterAvailabilityStatus</i> The availability status of the cluster for queries. Possible values are the following: <ul> <li> Available - The cluster is available for queries.  </li> <li> Unavailable - The cluster is not available for queries. </li> <li> Maintenance - The cluster is intermittently available for queries due to maintenance activities. </li> <li> Modifying - The cluster is intermittently available for queries due to changes that modify the cluster. </li> <li> Failed - The cluster failed and is not available for queries. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterStatus</i>  The current state of the cluster. Possible values are the following: <ul> <li>  <code>available</code>  </li> <li>  <code>available, prep-for-resize</code>  </li> <li>  <code>available, resize-cleanup</code>  </li> <li>  <code>cancelling-resize</code>  </li> <li>  <code>creating</code>  </li> <li>  <code>deleting</code>  </li> <li>  <code>final-snapshot</code>  </li> <li>  <code>hardware-failure</code>  </li> <li>  <code>incompatible-hsm</code>  </li> <li>  <code>incompatible-network</code>  </li> <li>  <code>incompatible-parameters</code>  </li> <li>  <code>incompatible-restore</code>  </li> <li>  <code>modifying</code>  </li> <li>  <code>paused</code>  </li> <li>  <code>rebooting</code>  </li> <li>  <code>renaming</code>  </li> <li>  <code>resizing</code>  </li> <li>  <code>rotating-keys</code>  </li> <li>  <code>storage-full</code>  </li> <li>  <code>updating-hsm</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NodeType</i> The node type for the nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterIdentifier</i> The unique identifier of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcEndpoints</i> Describes a connection endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> The port that the database engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Address</i> The DNS address of the Cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EncryptionType</i> The encryption type for a cluster. Possible values are: KMS and None. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaintenanceTrackName</i> The name of the maintenance track that the cluster will change to during the next maintenance window.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EnhancedVpcRouting</i> An option that specifies whether to create the cluster with enhanced VPC routing enabled. To create a cluster that uses enhanced VPC routing, the cluster must be in a VPC. For more information, see <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html">Enhanced VPC Routing</a> in the Amazon Redshift Cluster Management Guide. If this option is <code>true</code>, enhanced VPC routing is enabled.  Default: false<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PubliclyAccessible</i> The pending or in-progress change of the ability to connect to the cluster from the public network.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterIdentifier</i> The pending or in-progress change of the new identifier for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomatedSnapshotRetentionPeriod</i> The pending or in-progress change of the automated snapshot retention period.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterVersion</i> The pending or in-progress change of the service version.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterType</i> The pending or in-progress change of the cluster type.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberOfNodes</i> The pending or in-progress change of the number of nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NodeType</i> The pending or in-progress change of the cluster's node type.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUserPassword</i> The pending or in-progress change of the master user password for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EstimatedTimeToCompletionInSeconds</i> The estimate of the time remaining before the restore will complete. Returns 0 for a completed restore. This field is only updated when you restore to DC2 and DS2 node types. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ElapsedTimeInSeconds</i> The amount of time an in-progress restore has been running, or the amount of time it took a completed restore to finish. This field is only updated when you restore to DC2 and DS2 node types. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ProgressInMegaBytes</i> The number of megabytes that have been transferred from snapshot storage. This field is only updated when you restore to DC2 and DS2 node types. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotSizeInMegaBytes</i> The size of the set of snapshot data used to restore the cluster. This field is only updated when you restore to DC2 and DS2 node types. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CurrentRestoreRateInMegaBytesPerSecond</i> The number of megabytes per second being transferred from the backup storage. Returns the average rate for a completed backup. This field is only updated when you restore to DC2 and DS2 node types. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the restore action. Returns starting, restoring, completed, or failed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ElapsedTimeInSeconds</i> Describes the number of seconds that have elapsed during the data transfer.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EstimatedTimeToCompletionInSeconds</i> Describes the estimated number of seconds remaining to complete the transfer.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DataTransferredInMegaBytes</i> Describes the total amount of data that has been transfered in MB's.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalDataInMegaBytes</i> Describes the total amount of data to be transfered in megabytes.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CurrentRateInMegaBytesPerSecond</i> Describes the data transfer rate in MB's per second.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Describes the status of the cluster. While the transfer is in progress the status is <code>transferringdata</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Reports whether the Amazon Redshift cluster has finished applying any HSM settings changes specified in a modify cluster command. Values: active, applying<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HsmConfigurationIdentifier</i> Specifies the name of the HSM configuration that contains the information the Amazon Redshift cluster can use to retrieve and store keys in an HSM.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HsmClientCertificateIdentifier</i> Specifies the name of the HSM client certificate the Amazon Redshift cluster uses to retrieve the data encryption keys stored in an HSM.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotCopyGrantName</i> The name of the snapshot copy grant.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ManualSnapshotRetentionPeriod</i> The number of days that automated snapshots are retained in the destination region after they are copied from a source region. If the value is -1, the manual snapshot is retained indefinitely.  The value must be either -1 or an integer between 1 and 3,653.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RetentionPeriod</i> The number of days that automated snapshots are retained in the destination region after they are copied from a source region.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DestinationRegion</i> The destination region that snapshots are automatically copied to when cross-region snapshot copy is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the elastic IP (EIP) address.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ElasticIp</i> The elastic IP (EIP) address for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowCancelResize</i> A boolean value indicating if the resize operation can be cancelled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ResizeType</i> Returns the value <code>ClassicResize</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AquaConfigurationStatus</i> The value represents how the cluster is configured to use AQUA. Possible values include the following. <ul> <li> enabled - Use AQUA if it is available for the current AWS Region and Amazon Redshift node type. </li> <li> disabled - Don't use AQUA.  </li> <li> auto - Amazon Redshift determines whether to use AQUA. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AquaStatus</i> The value indicates the status of AQUA on the cluster. Possible values include the following. <ul> <li> enabled - AQUA is enabled. </li> <li> disabled - AQUA is not enabled.  </li> <li> applying - AQUA status is being applied.  </li> </ul><br/>        """
        pass

    def reset_cluster_parameter_group(self, ParameterGroupName: str, ResetAllParameters: Boolean=None, Parameters: List[Parameter]=None) -> ClusterParameterGroupNameMessage:
        r"""Sets one or more parameters of the specified parameter group to their default values and sets the source values of the parameters to "engine-default". To reset the entire parameter group specify the <i>ResetAllParameters</i> parameter. For parameter changes to take effect you must reboot any associated clusters. 

        :param self:
        :param Parameters:  An array of names of parameters to be reset. If <i>ResetAllParameters</i> option is not used, then at least one parameter name must be supplied.  Constraints: A maximum of 20 parameters can be reset in a single request.<br/>ResetAllParameters:  If <code>true</code>, all parameters in the specified parameter group will be reset to their default values.  Default: <code>true</code> <br/>ParameterGroupName:  The name of the cluster parameter group to be reset.<br/>
        :return: ParameterGroupStatus:  The status of the parameter group. For example, if you made a change to a parameter group name-value pair, then the change could be pending a reboot of an associated cluster.<br/>ParameterGroupName:  The name of the cluster parameter group.<br/>        """
        pass

    def resize_cluster(self, ClusterIdentifier: str, ClusterType: str=None, NodeType: str=None, NumberOfNodes: int=None, Classic: BooleanOptional=None) -> ResizeClusterResult:
        r"""Changes the size of the cluster. You can change the cluster's type, or change the number or type of nodes. The default behavior is to use the elastic resize method. With an elastic resize, your cluster is available for read and write operations more quickly than with the classic resize method.  Elastic resize operations have the following restrictions: <ul> <li> You can only resize clusters of the following types: <ul> <li> dc1.large (if your cluster is in a VPC) </li> <li> dc1.8xlarge (if your cluster is in a VPC) </li> <li> dc2.large </li> <li> dc2.8xlarge </li> <li> ds2.xlarge </li> <li> ds2.8xlarge </li> <li> ra3.xlplus </li> <li> ra3.4xlarge </li> <li> ra3.16xlarge </li> </ul> </li> <li> The type of nodes that you add must match the node type for the cluster. </li> </ul>

        :param self:
        :param Classic:  A boolean value indicating whether the resize operation is using the classic resize process. If you don't provide this parameter or set the value to <code>false</code>, the resize type is elastic. <br/>NumberOfNodes:  The new number of nodes for the cluster. If not specified, the cluster's current number of nodes is used.<br/>NodeType:  The new node type for the nodes you are adding. If not specified, the cluster's current node type is used.<br/>ClusterType:  The new cluster type for the specified cluster.<br/>ClusterIdentifier:  The unique identifier for the cluster to resize.<br/>
        :return: Cluster:  Describes a cluster.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AquaConfiguration</i> The AQUA (Advanced Query Accelerator) configuration of the cluster.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AquaConfiguration</b>: The AQUA (Advanced Query Accelerator) configuration of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalStorageCapacityInMegaBytes</i> The total storage capacity of the cluster in megabytes. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterNamespaceArn</i> The namespace Amazon Resource Name (ARN) of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZoneRelocationStatus</i> Describes the status of the Availability Zone relocation operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResizeInfo</i> Returns the following: <ul> <li> AllowCancelResize: a boolean value indicating if the resize operation can be cancelled. </li> <li> ResizeType: Returns ClassicResize </li> </ul>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ResizeInfo</b>: Returns the following: <ul> <li> AllowCancelResize: a boolean value indicating if the resize operation can be cancelled. </li> <li> ResizeType: Returns ClassicResize </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NextMaintenanceWindowStartTime</i> The date and time in UTC when system maintenance can begin.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExpectedNextSnapshotScheduleTimeStatus</i>  The status of next expected snapshot for clusters having a valid snapshot schedule and backups enabled. Possible values are the following: <ul> <li> OnTrack - The next snapshot is expected to be taken on time.  </li> <li> Pending - The next snapshot is pending to be taken.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExpectedNextSnapshotScheduleTime</i> The date and time when the next snapshot is expected to be taken for clusters with a valid snapshot schedule and backups enabled. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotScheduleState</i> The current state of the cluster snapshot schedule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotScheduleIdentifier</i> A unique identifier for the cluster snapshot schedule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeferredMaintenanceWindows</i> Describes a group of <code>DeferredMaintenanceWindow</code> objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ElasticResizeNumberOfNodeOptions</i> The number of nodes that you can resize the cluster to with the elastic resize method. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaintenanceTrackName</i> The name of the maintenance track for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingActions</i> Cluster operations that are waiting to be started.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IamRoles</i> A list of AWS Identity and Access Management (IAM) roles that can be used by the cluster to access other AWS services.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnhancedVpcRouting</i> An option that specifies whether to create the cluster with enhanced VPC routing enabled. To create a cluster that uses enhanced VPC routing, the cluster must be in a VPC. For more information, see <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html">Enhanced VPC Routing</a> in the Amazon Redshift Cluster Management Guide. If this option is <code>true</code>, enhanced VPC routing is enabled.  Default: false<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The AWS Key Management Service (AWS KMS) key ID of the encryption key used to encrypt data in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The list of tags for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterRevisionNumber</i> The specific revision number of the database in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ElasticIpStatus</i> The status of the elastic IP (EIP) address.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ElasticIpStatus</b>: The status of the elastic IP (EIP) address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterNodes</i> The nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterPublicKey</i> The public key for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterSnapshotCopyStatus</i> A value that returns the destination region and retention period that are configured for cross-region snapshot copy.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ClusterSnapshotCopyStatus</b>: A value that returns the destination region and retention period that are configured for cross-region snapshot copy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HsmStatus</i> A value that reports whether the Amazon Redshift cluster has finished applying any hardware security module (HSM) settings changes specified in a modify cluster command. Values: active, applying&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>HsmStatus</b>: A value that reports whether the Amazon Redshift cluster has finished applying any hardware security module (HSM) settings changes specified in a modify cluster command. Values: active, applying<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataTransferProgress</i> <p/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DataTransferProgress</b>: <p/><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RestoreStatus</i> A value that describes the status of a cluster restore action. This parameter returns null if the cluster was not created by restoring a snapshot.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RestoreStatus</b>: A value that describes the status of a cluster restore action. This parameter returns null if the cluster was not created by restoring a snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Encrypted</i> A boolean value that, if <code>true</code>, indicates that data in the cluster is encrypted at rest.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PubliclyAccessible</i> A boolean value that, if <code>true</code>, indicates that the cluster can be accessed from a public network.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberOfNodes</i> The number of compute nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowVersionUpgrade</i> A boolean value that, if <code>true</code>, indicates that major version upgrades will be applied automatically to the cluster during the maintenance window. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterVersion</i> The version ID of the Amazon Redshift engine that is running on the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingModifiedValues</i> A value that, if present, indicates that changes to the cluster are pending. Specific pending changes are identified by subelements.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingModifiedValues</b>: A value that, if present, indicates that changes to the cluster are pending. Specific pending changes are identified by subelements.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i> The weekly time range, in Universal Coordinated Time (UTC), during which system maintenance can occur.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZone</i> The name of the Availability Zone in which the cluster is located.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The identifier of the VPC the cluster is in, if the cluster is in a VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterSubnetGroupName</i> The name of the subnet group that is associated with the cluster. This parameter is valid only when the cluster is in a VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterParameterGroups</i> The list of cluster parameter groups that are associated with this cluster. Each parameter group in the list is returned with its status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcSecurityGroups</i> A list of Amazon Virtual Private Cloud (Amazon VPC) security groups that are associated with the cluster. This parameter is returned only if the cluster is in a VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterSecurityGroups</i> A list of cluster security group that are associated with the cluster. Each security group is represented by an element that contains <code>ClusterSecurityGroup.Name</code> and <code>ClusterSecurityGroup.Status</code> subelements.  Cluster security groups are used when the cluster is not created in an Amazon Virtual Private Cloud (VPC). Clusters that are created in a VPC use VPC security groups, which are listed by the <b>VpcSecurityGroups</b> parameter. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ManualSnapshotRetentionPeriod</i> The default number of days to retain a manual snapshot. If the value is -1, the snapshot is retained indefinitely. This setting doesn't change the retention period of existing snapshots. The value must be either -1 or an integer between 1 and 3,653.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomatedSnapshotRetentionPeriod</i> The number of days that automatic cluster snapshots are retained.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterCreateTime</i> The date and time that the cluster was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i> The connection endpoint.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Endpoint</b>: The connection endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBName</i> The name of the initial database that was created when the cluster was created. This same name is returned for the life of the cluster. If an initial database was not specified, a database named <code>dev</code>dev was created by default. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUsername</i> The master user name for the cluster. This name is used to connect to the database that is specified in the <b>DBName</b> parameter. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ModifyStatus</i> The status of a modify operation, if any, initiated for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterAvailabilityStatus</i> The availability status of the cluster for queries. Possible values are the following: <ul> <li> Available - The cluster is available for queries.  </li> <li> Unavailable - The cluster is not available for queries. </li> <li> Maintenance - The cluster is intermittently available for queries due to maintenance activities. </li> <li> Modifying - The cluster is intermittently available for queries due to changes that modify the cluster. </li> <li> Failed - The cluster failed and is not available for queries. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterStatus</i>  The current state of the cluster. Possible values are the following: <ul> <li>  <code>available</code>  </li> <li>  <code>available, prep-for-resize</code>  </li> <li>  <code>available, resize-cleanup</code>  </li> <li>  <code>cancelling-resize</code>  </li> <li>  <code>creating</code>  </li> <li>  <code>deleting</code>  </li> <li>  <code>final-snapshot</code>  </li> <li>  <code>hardware-failure</code>  </li> <li>  <code>incompatible-hsm</code>  </li> <li>  <code>incompatible-network</code>  </li> <li>  <code>incompatible-parameters</code>  </li> <li>  <code>incompatible-restore</code>  </li> <li>  <code>modifying</code>  </li> <li>  <code>paused</code>  </li> <li>  <code>rebooting</code>  </li> <li>  <code>renaming</code>  </li> <li>  <code>resizing</code>  </li> <li>  <code>rotating-keys</code>  </li> <li>  <code>storage-full</code>  </li> <li>  <code>updating-hsm</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NodeType</i> The node type for the nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterIdentifier</i> The unique identifier of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcEndpoints</i> Describes a connection endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> The port that the database engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Address</i> The DNS address of the Cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EncryptionType</i> The encryption type for a cluster. Possible values are: KMS and None. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaintenanceTrackName</i> The name of the maintenance track that the cluster will change to during the next maintenance window.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EnhancedVpcRouting</i> An option that specifies whether to create the cluster with enhanced VPC routing enabled. To create a cluster that uses enhanced VPC routing, the cluster must be in a VPC. For more information, see <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html">Enhanced VPC Routing</a> in the Amazon Redshift Cluster Management Guide. If this option is <code>true</code>, enhanced VPC routing is enabled.  Default: false<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PubliclyAccessible</i> The pending or in-progress change of the ability to connect to the cluster from the public network.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterIdentifier</i> The pending or in-progress change of the new identifier for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomatedSnapshotRetentionPeriod</i> The pending or in-progress change of the automated snapshot retention period.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterVersion</i> The pending or in-progress change of the service version.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterType</i> The pending or in-progress change of the cluster type.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberOfNodes</i> The pending or in-progress change of the number of nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NodeType</i> The pending or in-progress change of the cluster's node type.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUserPassword</i> The pending or in-progress change of the master user password for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EstimatedTimeToCompletionInSeconds</i> The estimate of the time remaining before the restore will complete. Returns 0 for a completed restore. This field is only updated when you restore to DC2 and DS2 node types. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ElapsedTimeInSeconds</i> The amount of time an in-progress restore has been running, or the amount of time it took a completed restore to finish. This field is only updated when you restore to DC2 and DS2 node types. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ProgressInMegaBytes</i> The number of megabytes that have been transferred from snapshot storage. This field is only updated when you restore to DC2 and DS2 node types. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotSizeInMegaBytes</i> The size of the set of snapshot data used to restore the cluster. This field is only updated when you restore to DC2 and DS2 node types. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CurrentRestoreRateInMegaBytesPerSecond</i> The number of megabytes per second being transferred from the backup storage. Returns the average rate for a completed backup. This field is only updated when you restore to DC2 and DS2 node types. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the restore action. Returns starting, restoring, completed, or failed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ElapsedTimeInSeconds</i> Describes the number of seconds that have elapsed during the data transfer.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EstimatedTimeToCompletionInSeconds</i> Describes the estimated number of seconds remaining to complete the transfer.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DataTransferredInMegaBytes</i> Describes the total amount of data that has been transfered in MB's.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalDataInMegaBytes</i> Describes the total amount of data to be transfered in megabytes.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CurrentRateInMegaBytesPerSecond</i> Describes the data transfer rate in MB's per second.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Describes the status of the cluster. While the transfer is in progress the status is <code>transferringdata</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Reports whether the Amazon Redshift cluster has finished applying any HSM settings changes specified in a modify cluster command. Values: active, applying<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HsmConfigurationIdentifier</i> Specifies the name of the HSM configuration that contains the information the Amazon Redshift cluster can use to retrieve and store keys in an HSM.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HsmClientCertificateIdentifier</i> Specifies the name of the HSM client certificate the Amazon Redshift cluster uses to retrieve the data encryption keys stored in an HSM.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotCopyGrantName</i> The name of the snapshot copy grant.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ManualSnapshotRetentionPeriod</i> The number of days that automated snapshots are retained in the destination region after they are copied from a source region. If the value is -1, the manual snapshot is retained indefinitely.  The value must be either -1 or an integer between 1 and 3,653.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RetentionPeriod</i> The number of days that automated snapshots are retained in the destination region after they are copied from a source region.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DestinationRegion</i> The destination region that snapshots are automatically copied to when cross-region snapshot copy is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the elastic IP (EIP) address.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ElasticIp</i> The elastic IP (EIP) address for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowCancelResize</i> A boolean value indicating if the resize operation can be cancelled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ResizeType</i> Returns the value <code>ClassicResize</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AquaConfigurationStatus</i> The value represents how the cluster is configured to use AQUA. Possible values include the following. <ul> <li> enabled - Use AQUA if it is available for the current AWS Region and Amazon Redshift node type. </li> <li> disabled - Don't use AQUA.  </li> <li> auto - Amazon Redshift determines whether to use AQUA. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AquaStatus</i> The value indicates the status of AQUA on the cluster. Possible values include the following. <ul> <li> enabled - AQUA is enabled. </li> <li> disabled - AQUA is not enabled.  </li> <li> applying - AQUA status is being applied.  </li> </ul><br/>        """
        pass

    def restore_from_cluster_snapshot(self, SnapshotIdentifier: str, ClusterIdentifier: str, SnapshotClusterIdentifier: str=None, Port: int=None, AvailabilityZone: str=None, AllowVersionUpgrade: BooleanOptional=None, ClusterSubnetGroupName: str=None, PubliclyAccessible: BooleanOptional=None, OwnerAccount: str=None, HsmClientCertificateIdentifier: str=None, HsmConfigurationIdentifier: str=None, ElasticIp: str=None, ClusterParameterGroupName: str=None, ClusterSecurityGroups: List[String]=None, VpcSecurityGroupIds: List[String]=None, PreferredMaintenanceWindow: str=None, AutomatedSnapshotRetentionPeriod: int=None, ManualSnapshotRetentionPeriod: int=None, KmsKeyId: str=None, NodeType: str=None, EnhancedVpcRouting: BooleanOptional=None, AdditionalInfo: str=None, IamRoles: List[String]=None, MaintenanceTrackName: str=None, SnapshotScheduleIdentifier: str=None, NumberOfNodes: int=None, AvailabilityZoneRelocation: BooleanOptional=None, AquaConfigurationStatus: str=None) -> RestoreFromClusterSnapshotResult:
        r"""Creates a new cluster from a snapshot. By default, Amazon Redshift creates the resulting cluster with the same configuration as the original cluster from which the snapshot was created, except that the new cluster is created with the default cluster security and parameter groups. After Amazon Redshift creates the cluster, you can use the <a>ModifyCluster</a> API to associate a different security group and different parameter group with the restored cluster. If you are using a DS node type, you can also choose to change to another DS node type of the same size during restore. If you restore a cluster into a VPC, you must provide a cluster subnet group where you want the cluster restored.  For more information about working with snapshots, go to <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-snapshots.html">Amazon Redshift Snapshots</a> in the <i>Amazon Redshift Cluster Management Guide</i>.

        :param self:
        :param AquaConfigurationStatus:  The value represents how the cluster is configured to use AQUA (Advanced Query Accelerator) after the cluster is restored. Possible values include the following. <ul> <li> enabled - Use AQUA if it is available for the current AWS Region and Amazon Redshift node type. </li> <li> disabled - Don't use AQUA.  </li> <li> auto - Amazon Redshift determines whether to use AQUA. </li> </ul><br/>AvailabilityZoneRelocation:  The option to enable relocation for an Amazon Redshift cluster between Availability Zones after the cluster is restored.<br/>NumberOfNodes:  The number of nodes specified when provisioning the restored cluster.<br/>SnapshotScheduleIdentifier:  A unique identifier for the snapshot schedule.<br/>MaintenanceTrackName:  The name of the maintenance track for the restored cluster. When you take a snapshot, the snapshot inherits the <code>MaintenanceTrack</code> value from the cluster. The snapshot might be on a different track than the cluster that was the source for the snapshot. For example, suppose that you take a snapshot of a cluster that is on the current track and then change the cluster to be on the trailing track. In this case, the snapshot and the source cluster are on different tracks.<br/>IamRoles:  A list of AWS Identity and Access Management (IAM) roles that can be used by the cluster to access other AWS services. You must supply the IAM roles in their Amazon Resource Name (ARN) format. You can supply up to 10 IAM roles in a single request. A cluster can have up to 10 IAM roles associated at any time.<br/>AdditionalInfo:  Reserved.<br/>EnhancedVpcRouting:  An option that specifies whether to create the cluster with enhanced VPC routing enabled. To create a cluster that uses enhanced VPC routing, the cluster must be in a VPC. For more information, see <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html">Enhanced VPC Routing</a> in the Amazon Redshift Cluster Management Guide. If this option is <code>true</code>, enhanced VPC routing is enabled.  Default: false<br/>NodeType:  The node type that the restored cluster will be provisioned with. Default: The node type of the cluster from which the snapshot was taken. You can modify this if you are using any DS node type. In that case, you can choose to restore into another DS node type of the same size. For example, you can restore ds1.8xlarge into ds2.8xlarge, or ds1.xlarge into ds2.xlarge. If you have a DC instance type, you must restore into that same instance type and size. In other words, you can only restore a dc1.large instance type into another dc1.large instance type or dc2.large instance type. You can't restore dc1.8xlarge to dc2.8xlarge. First restore to a dc1.8xlarge cluster, then resize to a dc2.8large cluster. For more information about node types, see <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html#rs-about-clusters-and-nodes"> About Clusters and Nodes</a> in the <i>Amazon Redshift Cluster Management Guide</i>. <br/>KmsKeyId:  The AWS Key Management Service (KMS) key ID of the encryption key that you want to use to encrypt data in the cluster that you restore from a shared snapshot.<br/>ManualSnapshotRetentionPeriod:  The default number of days to retain a manual snapshot. If the value is -1, the snapshot is retained indefinitely. This setting doesn't change the retention period of existing snapshots. The value must be either -1 or an integer between 1 and 3,653.<br/>AutomatedSnapshotRetentionPeriod:  The number of days that automated snapshots are retained. If the value is 0, automated snapshots are disabled. Even if automated snapshots are disabled, you can still create manual snapshots when you want with <a>CreateClusterSnapshot</a>.  You can't disable automated snapshots for RA3 node types. Set the automated retention period from 1-35 days. Default: The value selected for the cluster from which the snapshot was taken. Constraints: Must be a value from 0 to 35.<br/>PreferredMaintenanceWindow:  The weekly time range (in UTC) during which automated cluster maintenance can occur.  Format: <code>ddd:hh24:mi-ddd:hh24:mi</code>   Default: The value selected for the cluster from which the snapshot was taken. For more information about the time blocks for each region, see <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html#rs-maintenance-windows">Maintenance Windows</a> in Amazon Redshift Cluster Management Guide.  Valid Days: Mon | Tue | Wed | Thu | Fri | Sat | Sun Constraints: Minimum 30-minute window.<br/>VpcSecurityGroupIds:  A list of Virtual Private Cloud (VPC) security groups to be associated with the cluster. Default: The default VPC security group is associated with the cluster. VPC security groups only apply to clusters in VPCs.<br/>ClusterSecurityGroups:  A list of security groups to be associated with this cluster. Default: The default cluster security group for Amazon Redshift. Cluster security groups only apply to clusters outside of VPCs.<br/>ClusterParameterGroupName:  The name of the parameter group to be associated with this cluster. Default: The default Amazon Redshift cluster parameter group. For information about the default parameter group, go to <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-parameter-groups.html">Working with Amazon Redshift Parameter Groups</a>. Constraints: <ul> <li> Must be 1 to 255 alphanumeric characters or hyphens. </li> <li> First character must be a letter. </li> <li> Cannot end with a hyphen or contain two consecutive hyphens. </li> </ul><br/>ElasticIp:  The elastic IP (EIP) address for the cluster.<br/>HsmConfigurationIdentifier:  Specifies the name of the HSM configuration that contains the information the Amazon Redshift cluster can use to retrieve and store keys in an HSM.<br/>HsmClientCertificateIdentifier:  Specifies the name of the HSM client certificate the Amazon Redshift cluster uses to retrieve the data encryption keys stored in an HSM.<br/>OwnerAccount:  The AWS customer account used to create or copy the snapshot. Required if you are restoring a snapshot you do not own, optional if you own the snapshot.<br/>PubliclyAccessible:  If <code>true</code>, the cluster can be accessed from a public network. <br/>ClusterSubnetGroupName:  The name of the subnet group where you want to cluster restored. A snapshot of cluster in VPC can be restored only in VPC. Therefore, you must provide subnet group name where you want the cluster restored.<br/>AllowVersionUpgrade:  If <code>true</code>, major version upgrades can be applied during the maintenance window to the Amazon Redshift engine that is running on the cluster.  Default: <code>true</code> <br/>AvailabilityZone:  The Amazon EC2 Availability Zone in which to restore the cluster. Default: A random, system-chosen Availability Zone. Example: <code>us-east-2a</code> <br/>Port:  The port number on which the cluster accepts connections. Default: The same port as the original cluster. Constraints: Must be between <code>1115</code> and <code>65535</code>.<br/>SnapshotClusterIdentifier:  The name of the cluster the source snapshot was created from. This parameter is required if your IAM user has a policy containing a snapshot resource element that specifies anything other than * for the cluster name.<br/>SnapshotIdentifier:  The name of the snapshot from which to create the new cluster. This parameter isn't case sensitive. Example: <code>my-snapshot-id</code> <br/>ClusterIdentifier:  The identifier of the cluster that will be created from restoring the snapshot. Constraints: <ul> <li> Must contain from 1 to 63 alphanumeric characters or hyphens. </li> <li> Alphabetic characters must be lowercase. </li> <li> First character must be a letter. </li> <li> Cannot end with a hyphen or contain two consecutive hyphens. </li> <li> Must be unique for all clusters within an AWS account. </li> </ul><br/>
        :return: Cluster:  Describes a cluster.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AquaConfiguration</i> The AQUA (Advanced Query Accelerator) configuration of the cluster.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AquaConfiguration</b>: The AQUA (Advanced Query Accelerator) configuration of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalStorageCapacityInMegaBytes</i> The total storage capacity of the cluster in megabytes. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterNamespaceArn</i> The namespace Amazon Resource Name (ARN) of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZoneRelocationStatus</i> Describes the status of the Availability Zone relocation operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResizeInfo</i> Returns the following: <ul> <li> AllowCancelResize: a boolean value indicating if the resize operation can be cancelled. </li> <li> ResizeType: Returns ClassicResize </li> </ul>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ResizeInfo</b>: Returns the following: <ul> <li> AllowCancelResize: a boolean value indicating if the resize operation can be cancelled. </li> <li> ResizeType: Returns ClassicResize </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NextMaintenanceWindowStartTime</i> The date and time in UTC when system maintenance can begin.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExpectedNextSnapshotScheduleTimeStatus</i>  The status of next expected snapshot for clusters having a valid snapshot schedule and backups enabled. Possible values are the following: <ul> <li> OnTrack - The next snapshot is expected to be taken on time.  </li> <li> Pending - The next snapshot is pending to be taken.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExpectedNextSnapshotScheduleTime</i> The date and time when the next snapshot is expected to be taken for clusters with a valid snapshot schedule and backups enabled. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotScheduleState</i> The current state of the cluster snapshot schedule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotScheduleIdentifier</i> A unique identifier for the cluster snapshot schedule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeferredMaintenanceWindows</i> Describes a group of <code>DeferredMaintenanceWindow</code> objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ElasticResizeNumberOfNodeOptions</i> The number of nodes that you can resize the cluster to with the elastic resize method. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaintenanceTrackName</i> The name of the maintenance track for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingActions</i> Cluster operations that are waiting to be started.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IamRoles</i> A list of AWS Identity and Access Management (IAM) roles that can be used by the cluster to access other AWS services.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnhancedVpcRouting</i> An option that specifies whether to create the cluster with enhanced VPC routing enabled. To create a cluster that uses enhanced VPC routing, the cluster must be in a VPC. For more information, see <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html">Enhanced VPC Routing</a> in the Amazon Redshift Cluster Management Guide. If this option is <code>true</code>, enhanced VPC routing is enabled.  Default: false<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The AWS Key Management Service (AWS KMS) key ID of the encryption key used to encrypt data in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The list of tags for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterRevisionNumber</i> The specific revision number of the database in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ElasticIpStatus</i> The status of the elastic IP (EIP) address.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ElasticIpStatus</b>: The status of the elastic IP (EIP) address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterNodes</i> The nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterPublicKey</i> The public key for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterSnapshotCopyStatus</i> A value that returns the destination region and retention period that are configured for cross-region snapshot copy.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ClusterSnapshotCopyStatus</b>: A value that returns the destination region and retention period that are configured for cross-region snapshot copy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HsmStatus</i> A value that reports whether the Amazon Redshift cluster has finished applying any hardware security module (HSM) settings changes specified in a modify cluster command. Values: active, applying&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>HsmStatus</b>: A value that reports whether the Amazon Redshift cluster has finished applying any hardware security module (HSM) settings changes specified in a modify cluster command. Values: active, applying<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataTransferProgress</i> <p/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DataTransferProgress</b>: <p/><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RestoreStatus</i> A value that describes the status of a cluster restore action. This parameter returns null if the cluster was not created by restoring a snapshot.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RestoreStatus</b>: A value that describes the status of a cluster restore action. This parameter returns null if the cluster was not created by restoring a snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Encrypted</i> A boolean value that, if <code>true</code>, indicates that data in the cluster is encrypted at rest.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PubliclyAccessible</i> A boolean value that, if <code>true</code>, indicates that the cluster can be accessed from a public network.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberOfNodes</i> The number of compute nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowVersionUpgrade</i> A boolean value that, if <code>true</code>, indicates that major version upgrades will be applied automatically to the cluster during the maintenance window. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterVersion</i> The version ID of the Amazon Redshift engine that is running on the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingModifiedValues</i> A value that, if present, indicates that changes to the cluster are pending. Specific pending changes are identified by subelements.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingModifiedValues</b>: A value that, if present, indicates that changes to the cluster are pending. Specific pending changes are identified by subelements.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i> The weekly time range, in Universal Coordinated Time (UTC), during which system maintenance can occur.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZone</i> The name of the Availability Zone in which the cluster is located.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The identifier of the VPC the cluster is in, if the cluster is in a VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterSubnetGroupName</i> The name of the subnet group that is associated with the cluster. This parameter is valid only when the cluster is in a VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterParameterGroups</i> The list of cluster parameter groups that are associated with this cluster. Each parameter group in the list is returned with its status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcSecurityGroups</i> A list of Amazon Virtual Private Cloud (Amazon VPC) security groups that are associated with the cluster. This parameter is returned only if the cluster is in a VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterSecurityGroups</i> A list of cluster security group that are associated with the cluster. Each security group is represented by an element that contains <code>ClusterSecurityGroup.Name</code> and <code>ClusterSecurityGroup.Status</code> subelements.  Cluster security groups are used when the cluster is not created in an Amazon Virtual Private Cloud (VPC). Clusters that are created in a VPC use VPC security groups, which are listed by the <b>VpcSecurityGroups</b> parameter. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ManualSnapshotRetentionPeriod</i> The default number of days to retain a manual snapshot. If the value is -1, the snapshot is retained indefinitely. This setting doesn't change the retention period of existing snapshots. The value must be either -1 or an integer between 1 and 3,653.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomatedSnapshotRetentionPeriod</i> The number of days that automatic cluster snapshots are retained.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterCreateTime</i> The date and time that the cluster was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i> The connection endpoint.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Endpoint</b>: The connection endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBName</i> The name of the initial database that was created when the cluster was created. This same name is returned for the life of the cluster. If an initial database was not specified, a database named <code>dev</code>dev was created by default. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUsername</i> The master user name for the cluster. This name is used to connect to the database that is specified in the <b>DBName</b> parameter. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ModifyStatus</i> The status of a modify operation, if any, initiated for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterAvailabilityStatus</i> The availability status of the cluster for queries. Possible values are the following: <ul> <li> Available - The cluster is available for queries.  </li> <li> Unavailable - The cluster is not available for queries. </li> <li> Maintenance - The cluster is intermittently available for queries due to maintenance activities. </li> <li> Modifying - The cluster is intermittently available for queries due to changes that modify the cluster. </li> <li> Failed - The cluster failed and is not available for queries. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterStatus</i>  The current state of the cluster. Possible values are the following: <ul> <li>  <code>available</code>  </li> <li>  <code>available, prep-for-resize</code>  </li> <li>  <code>available, resize-cleanup</code>  </li> <li>  <code>cancelling-resize</code>  </li> <li>  <code>creating</code>  </li> <li>  <code>deleting</code>  </li> <li>  <code>final-snapshot</code>  </li> <li>  <code>hardware-failure</code>  </li> <li>  <code>incompatible-hsm</code>  </li> <li>  <code>incompatible-network</code>  </li> <li>  <code>incompatible-parameters</code>  </li> <li>  <code>incompatible-restore</code>  </li> <li>  <code>modifying</code>  </li> <li>  <code>paused</code>  </li> <li>  <code>rebooting</code>  </li> <li>  <code>renaming</code>  </li> <li>  <code>resizing</code>  </li> <li>  <code>rotating-keys</code>  </li> <li>  <code>storage-full</code>  </li> <li>  <code>updating-hsm</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NodeType</i> The node type for the nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterIdentifier</i> The unique identifier of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcEndpoints</i> Describes a connection endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> The port that the database engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Address</i> The DNS address of the Cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EncryptionType</i> The encryption type for a cluster. Possible values are: KMS and None. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaintenanceTrackName</i> The name of the maintenance track that the cluster will change to during the next maintenance window.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EnhancedVpcRouting</i> An option that specifies whether to create the cluster with enhanced VPC routing enabled. To create a cluster that uses enhanced VPC routing, the cluster must be in a VPC. For more information, see <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html">Enhanced VPC Routing</a> in the Amazon Redshift Cluster Management Guide. If this option is <code>true</code>, enhanced VPC routing is enabled.  Default: false<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PubliclyAccessible</i> The pending or in-progress change of the ability to connect to the cluster from the public network.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterIdentifier</i> The pending or in-progress change of the new identifier for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomatedSnapshotRetentionPeriod</i> The pending or in-progress change of the automated snapshot retention period.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterVersion</i> The pending or in-progress change of the service version.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterType</i> The pending or in-progress change of the cluster type.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberOfNodes</i> The pending or in-progress change of the number of nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NodeType</i> The pending or in-progress change of the cluster's node type.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUserPassword</i> The pending or in-progress change of the master user password for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EstimatedTimeToCompletionInSeconds</i> The estimate of the time remaining before the restore will complete. Returns 0 for a completed restore. This field is only updated when you restore to DC2 and DS2 node types. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ElapsedTimeInSeconds</i> The amount of time an in-progress restore has been running, or the amount of time it took a completed restore to finish. This field is only updated when you restore to DC2 and DS2 node types. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ProgressInMegaBytes</i> The number of megabytes that have been transferred from snapshot storage. This field is only updated when you restore to DC2 and DS2 node types. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotSizeInMegaBytes</i> The size of the set of snapshot data used to restore the cluster. This field is only updated when you restore to DC2 and DS2 node types. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CurrentRestoreRateInMegaBytesPerSecond</i> The number of megabytes per second being transferred from the backup storage. Returns the average rate for a completed backup. This field is only updated when you restore to DC2 and DS2 node types. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the restore action. Returns starting, restoring, completed, or failed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ElapsedTimeInSeconds</i> Describes the number of seconds that have elapsed during the data transfer.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EstimatedTimeToCompletionInSeconds</i> Describes the estimated number of seconds remaining to complete the transfer.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DataTransferredInMegaBytes</i> Describes the total amount of data that has been transfered in MB's.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalDataInMegaBytes</i> Describes the total amount of data to be transfered in megabytes.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CurrentRateInMegaBytesPerSecond</i> Describes the data transfer rate in MB's per second.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Describes the status of the cluster. While the transfer is in progress the status is <code>transferringdata</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Reports whether the Amazon Redshift cluster has finished applying any HSM settings changes specified in a modify cluster command. Values: active, applying<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HsmConfigurationIdentifier</i> Specifies the name of the HSM configuration that contains the information the Amazon Redshift cluster can use to retrieve and store keys in an HSM.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HsmClientCertificateIdentifier</i> Specifies the name of the HSM client certificate the Amazon Redshift cluster uses to retrieve the data encryption keys stored in an HSM.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotCopyGrantName</i> The name of the snapshot copy grant.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ManualSnapshotRetentionPeriod</i> The number of days that automated snapshots are retained in the destination region after they are copied from a source region. If the value is -1, the manual snapshot is retained indefinitely.  The value must be either -1 or an integer between 1 and 3,653.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RetentionPeriod</i> The number of days that automated snapshots are retained in the destination region after they are copied from a source region.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DestinationRegion</i> The destination region that snapshots are automatically copied to when cross-region snapshot copy is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the elastic IP (EIP) address.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ElasticIp</i> The elastic IP (EIP) address for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowCancelResize</i> A boolean value indicating if the resize operation can be cancelled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ResizeType</i> Returns the value <code>ClassicResize</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AquaConfigurationStatus</i> The value represents how the cluster is configured to use AQUA. Possible values include the following. <ul> <li> enabled - Use AQUA if it is available for the current AWS Region and Amazon Redshift node type. </li> <li> disabled - Don't use AQUA.  </li> <li> auto - Amazon Redshift determines whether to use AQUA. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AquaStatus</i> The value indicates the status of AQUA on the cluster. Possible values include the following. <ul> <li> enabled - AQUA is enabled. </li> <li> disabled - AQUA is not enabled.  </li> <li> applying - AQUA status is being applied.  </li> </ul><br/>        """
        pass

    def restore_table_from_cluster_snapshot(self, NewTableName: str, SourceTableName: str, SourceDatabaseName: str, SnapshotIdentifier: str, ClusterIdentifier: str, SourceSchemaName: str=None, TargetDatabaseName: str=None, TargetSchemaName: str=None, EnableCaseSensitiveIdentifier: BooleanOptional=None) -> RestoreTableFromClusterSnapshotResult:
        r"""Creates a new table from a table in an Amazon Redshift cluster snapshot. You must create the new table within the Amazon Redshift cluster that the snapshot was taken from. You cannot use <code>RestoreTableFromClusterSnapshot</code> to restore a table with the same name as an existing table in an Amazon Redshift cluster. That is, you cannot overwrite an existing table in a cluster with a restored table. If you want to replace your original table with a new, restored table, then rename or drop your original table before you call <code>RestoreTableFromClusterSnapshot</code>. When you have renamed your original table, then you can pass the original name of the table as the <code>NewTableName</code> parameter value in the call to <code>RestoreTableFromClusterSnapshot</code>. This way, you can replace the original table with the table created from the snapshot.

        :param self:
        :param EnableCaseSensitiveIdentifier:  Indicates whether name identifiers for database, schema, and table are case sensitive. If <code>true</code>, the names are case sensitive. If <code>false</code> (default), the names are not case sensitive.<br/>NewTableName:  The name of the table to create as a result of the current request.<br/>TargetSchemaName:  The name of the schema to restore the table to.<br/>TargetDatabaseName:  The name of the database to restore the table to.<br/>SourceTableName:  The name of the source table to restore from.<br/>SourceSchemaName:  The name of the source schema that contains the table to restore from. If you do not specify a <code>SourceSchemaName</code> value, the default is <code>public</code>.<br/>SourceDatabaseName:  The name of the source database that contains the table to restore from.<br/>SnapshotIdentifier:  The identifier of the snapshot to restore the table from. This snapshot must have been created from the Amazon Redshift cluster specified by the <code>ClusterIdentifier</code> parameter.<br/>ClusterIdentifier:  The identifier of the Amazon Redshift cluster to restore the table to.<br/>
        :return: TableRestoreStatus:  Describes the status of a <a>RestoreTableFromClusterSnapshot</a> operation.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NewTableName</i> The name of the table to create as a result of the table restore request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetSchemaName</i> The name of the schema to restore the table to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetDatabaseName</i> The name of the database to restore the table to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceTableName</i> The name of the source table being restored.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceSchemaName</i> The name of the source schema that contains the table being restored.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceDatabaseName</i> The name of the source database that contains the table being restored.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotIdentifier</i> The identifier of the snapshot that the table is being restored from.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterIdentifier</i> The identifier of the Amazon Redshift cluster that the table is being restored to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalDataInMegaBytes</i> The total amount of data to restore to the new table, in megabytes (MB).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProgressInMegaBytes</i> The amount of data restored to the new table so far, in megabytes (MB).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequestTime</i> The time that the table restore request was made, in Universal Coordinated Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> A description of the status of the table restore request. Status values include <code>SUCCEEDED</code>, <code>FAILED</code>, <code>CANCELED</code>, <code>PENDING</code>, <code>IN_PROGRESS</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> A value that describes the current state of the table restore request. Valid Values: <code>SUCCEEDED</code>, <code>FAILED</code>, <code>CANCELED</code>, <code>PENDING</code>, <code>IN_PROGRESS</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TableRestoreRequestId</i> The unique identifier for the table restore request.<br/>        """
        pass

    def resume_cluster(self, ClusterIdentifier: str) -> ResumeClusterResult:
        r"""Resumes a paused cluster.

        :param self:
        :param ClusterIdentifier:  The identifier of the cluster to be resumed.<br/>
        :return: Cluster:  Describes a cluster.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AquaConfiguration</i> The AQUA (Advanced Query Accelerator) configuration of the cluster.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AquaConfiguration</b>: The AQUA (Advanced Query Accelerator) configuration of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalStorageCapacityInMegaBytes</i> The total storage capacity of the cluster in megabytes. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterNamespaceArn</i> The namespace Amazon Resource Name (ARN) of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZoneRelocationStatus</i> Describes the status of the Availability Zone relocation operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResizeInfo</i> Returns the following: <ul> <li> AllowCancelResize: a boolean value indicating if the resize operation can be cancelled. </li> <li> ResizeType: Returns ClassicResize </li> </ul>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ResizeInfo</b>: Returns the following: <ul> <li> AllowCancelResize: a boolean value indicating if the resize operation can be cancelled. </li> <li> ResizeType: Returns ClassicResize </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NextMaintenanceWindowStartTime</i> The date and time in UTC when system maintenance can begin.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExpectedNextSnapshotScheduleTimeStatus</i>  The status of next expected snapshot for clusters having a valid snapshot schedule and backups enabled. Possible values are the following: <ul> <li> OnTrack - The next snapshot is expected to be taken on time.  </li> <li> Pending - The next snapshot is pending to be taken.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExpectedNextSnapshotScheduleTime</i> The date and time when the next snapshot is expected to be taken for clusters with a valid snapshot schedule and backups enabled. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotScheduleState</i> The current state of the cluster snapshot schedule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotScheduleIdentifier</i> A unique identifier for the cluster snapshot schedule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeferredMaintenanceWindows</i> Describes a group of <code>DeferredMaintenanceWindow</code> objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ElasticResizeNumberOfNodeOptions</i> The number of nodes that you can resize the cluster to with the elastic resize method. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaintenanceTrackName</i> The name of the maintenance track for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingActions</i> Cluster operations that are waiting to be started.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IamRoles</i> A list of AWS Identity and Access Management (IAM) roles that can be used by the cluster to access other AWS services.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnhancedVpcRouting</i> An option that specifies whether to create the cluster with enhanced VPC routing enabled. To create a cluster that uses enhanced VPC routing, the cluster must be in a VPC. For more information, see <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html">Enhanced VPC Routing</a> in the Amazon Redshift Cluster Management Guide. If this option is <code>true</code>, enhanced VPC routing is enabled.  Default: false<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The AWS Key Management Service (AWS KMS) key ID of the encryption key used to encrypt data in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The list of tags for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterRevisionNumber</i> The specific revision number of the database in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ElasticIpStatus</i> The status of the elastic IP (EIP) address.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ElasticIpStatus</b>: The status of the elastic IP (EIP) address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterNodes</i> The nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterPublicKey</i> The public key for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterSnapshotCopyStatus</i> A value that returns the destination region and retention period that are configured for cross-region snapshot copy.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ClusterSnapshotCopyStatus</b>: A value that returns the destination region and retention period that are configured for cross-region snapshot copy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HsmStatus</i> A value that reports whether the Amazon Redshift cluster has finished applying any hardware security module (HSM) settings changes specified in a modify cluster command. Values: active, applying&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>HsmStatus</b>: A value that reports whether the Amazon Redshift cluster has finished applying any hardware security module (HSM) settings changes specified in a modify cluster command. Values: active, applying<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataTransferProgress</i> <p/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DataTransferProgress</b>: <p/><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RestoreStatus</i> A value that describes the status of a cluster restore action. This parameter returns null if the cluster was not created by restoring a snapshot.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RestoreStatus</b>: A value that describes the status of a cluster restore action. This parameter returns null if the cluster was not created by restoring a snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Encrypted</i> A boolean value that, if <code>true</code>, indicates that data in the cluster is encrypted at rest.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PubliclyAccessible</i> A boolean value that, if <code>true</code>, indicates that the cluster can be accessed from a public network.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberOfNodes</i> The number of compute nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowVersionUpgrade</i> A boolean value that, if <code>true</code>, indicates that major version upgrades will be applied automatically to the cluster during the maintenance window. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterVersion</i> The version ID of the Amazon Redshift engine that is running on the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingModifiedValues</i> A value that, if present, indicates that changes to the cluster are pending. Specific pending changes are identified by subelements.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingModifiedValues</b>: A value that, if present, indicates that changes to the cluster are pending. Specific pending changes are identified by subelements.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i> The weekly time range, in Universal Coordinated Time (UTC), during which system maintenance can occur.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZone</i> The name of the Availability Zone in which the cluster is located.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The identifier of the VPC the cluster is in, if the cluster is in a VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterSubnetGroupName</i> The name of the subnet group that is associated with the cluster. This parameter is valid only when the cluster is in a VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterParameterGroups</i> The list of cluster parameter groups that are associated with this cluster. Each parameter group in the list is returned with its status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcSecurityGroups</i> A list of Amazon Virtual Private Cloud (Amazon VPC) security groups that are associated with the cluster. This parameter is returned only if the cluster is in a VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterSecurityGroups</i> A list of cluster security group that are associated with the cluster. Each security group is represented by an element that contains <code>ClusterSecurityGroup.Name</code> and <code>ClusterSecurityGroup.Status</code> subelements.  Cluster security groups are used when the cluster is not created in an Amazon Virtual Private Cloud (VPC). Clusters that are created in a VPC use VPC security groups, which are listed by the <b>VpcSecurityGroups</b> parameter. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ManualSnapshotRetentionPeriod</i> The default number of days to retain a manual snapshot. If the value is -1, the snapshot is retained indefinitely. This setting doesn't change the retention period of existing snapshots. The value must be either -1 or an integer between 1 and 3,653.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomatedSnapshotRetentionPeriod</i> The number of days that automatic cluster snapshots are retained.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterCreateTime</i> The date and time that the cluster was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i> The connection endpoint.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Endpoint</b>: The connection endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBName</i> The name of the initial database that was created when the cluster was created. This same name is returned for the life of the cluster. If an initial database was not specified, a database named <code>dev</code>dev was created by default. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUsername</i> The master user name for the cluster. This name is used to connect to the database that is specified in the <b>DBName</b> parameter. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ModifyStatus</i> The status of a modify operation, if any, initiated for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterAvailabilityStatus</i> The availability status of the cluster for queries. Possible values are the following: <ul> <li> Available - The cluster is available for queries.  </li> <li> Unavailable - The cluster is not available for queries. </li> <li> Maintenance - The cluster is intermittently available for queries due to maintenance activities. </li> <li> Modifying - The cluster is intermittently available for queries due to changes that modify the cluster. </li> <li> Failed - The cluster failed and is not available for queries. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterStatus</i>  The current state of the cluster. Possible values are the following: <ul> <li>  <code>available</code>  </li> <li>  <code>available, prep-for-resize</code>  </li> <li>  <code>available, resize-cleanup</code>  </li> <li>  <code>cancelling-resize</code>  </li> <li>  <code>creating</code>  </li> <li>  <code>deleting</code>  </li> <li>  <code>final-snapshot</code>  </li> <li>  <code>hardware-failure</code>  </li> <li>  <code>incompatible-hsm</code>  </li> <li>  <code>incompatible-network</code>  </li> <li>  <code>incompatible-parameters</code>  </li> <li>  <code>incompatible-restore</code>  </li> <li>  <code>modifying</code>  </li> <li>  <code>paused</code>  </li> <li>  <code>rebooting</code>  </li> <li>  <code>renaming</code>  </li> <li>  <code>resizing</code>  </li> <li>  <code>rotating-keys</code>  </li> <li>  <code>storage-full</code>  </li> <li>  <code>updating-hsm</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NodeType</i> The node type for the nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterIdentifier</i> The unique identifier of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcEndpoints</i> Describes a connection endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> The port that the database engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Address</i> The DNS address of the Cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EncryptionType</i> The encryption type for a cluster. Possible values are: KMS and None. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaintenanceTrackName</i> The name of the maintenance track that the cluster will change to during the next maintenance window.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EnhancedVpcRouting</i> An option that specifies whether to create the cluster with enhanced VPC routing enabled. To create a cluster that uses enhanced VPC routing, the cluster must be in a VPC. For more information, see <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html">Enhanced VPC Routing</a> in the Amazon Redshift Cluster Management Guide. If this option is <code>true</code>, enhanced VPC routing is enabled.  Default: false<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PubliclyAccessible</i> The pending or in-progress change of the ability to connect to the cluster from the public network.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterIdentifier</i> The pending or in-progress change of the new identifier for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomatedSnapshotRetentionPeriod</i> The pending or in-progress change of the automated snapshot retention period.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterVersion</i> The pending or in-progress change of the service version.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterType</i> The pending or in-progress change of the cluster type.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberOfNodes</i> The pending or in-progress change of the number of nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NodeType</i> The pending or in-progress change of the cluster's node type.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUserPassword</i> The pending or in-progress change of the master user password for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EstimatedTimeToCompletionInSeconds</i> The estimate of the time remaining before the restore will complete. Returns 0 for a completed restore. This field is only updated when you restore to DC2 and DS2 node types. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ElapsedTimeInSeconds</i> The amount of time an in-progress restore has been running, or the amount of time it took a completed restore to finish. This field is only updated when you restore to DC2 and DS2 node types. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ProgressInMegaBytes</i> The number of megabytes that have been transferred from snapshot storage. This field is only updated when you restore to DC2 and DS2 node types. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotSizeInMegaBytes</i> The size of the set of snapshot data used to restore the cluster. This field is only updated when you restore to DC2 and DS2 node types. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CurrentRestoreRateInMegaBytesPerSecond</i> The number of megabytes per second being transferred from the backup storage. Returns the average rate for a completed backup. This field is only updated when you restore to DC2 and DS2 node types. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the restore action. Returns starting, restoring, completed, or failed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ElapsedTimeInSeconds</i> Describes the number of seconds that have elapsed during the data transfer.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EstimatedTimeToCompletionInSeconds</i> Describes the estimated number of seconds remaining to complete the transfer.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DataTransferredInMegaBytes</i> Describes the total amount of data that has been transfered in MB's.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalDataInMegaBytes</i> Describes the total amount of data to be transfered in megabytes.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CurrentRateInMegaBytesPerSecond</i> Describes the data transfer rate in MB's per second.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Describes the status of the cluster. While the transfer is in progress the status is <code>transferringdata</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Reports whether the Amazon Redshift cluster has finished applying any HSM settings changes specified in a modify cluster command. Values: active, applying<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HsmConfigurationIdentifier</i> Specifies the name of the HSM configuration that contains the information the Amazon Redshift cluster can use to retrieve and store keys in an HSM.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HsmClientCertificateIdentifier</i> Specifies the name of the HSM client certificate the Amazon Redshift cluster uses to retrieve the data encryption keys stored in an HSM.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotCopyGrantName</i> The name of the snapshot copy grant.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ManualSnapshotRetentionPeriod</i> The number of days that automated snapshots are retained in the destination region after they are copied from a source region. If the value is -1, the manual snapshot is retained indefinitely.  The value must be either -1 or an integer between 1 and 3,653.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RetentionPeriod</i> The number of days that automated snapshots are retained in the destination region after they are copied from a source region.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DestinationRegion</i> The destination region that snapshots are automatically copied to when cross-region snapshot copy is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the elastic IP (EIP) address.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ElasticIp</i> The elastic IP (EIP) address for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowCancelResize</i> A boolean value indicating if the resize operation can be cancelled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ResizeType</i> Returns the value <code>ClassicResize</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AquaConfigurationStatus</i> The value represents how the cluster is configured to use AQUA. Possible values include the following. <ul> <li> enabled - Use AQUA if it is available for the current AWS Region and Amazon Redshift node type. </li> <li> disabled - Don't use AQUA.  </li> <li> auto - Amazon Redshift determines whether to use AQUA. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AquaStatus</i> The value indicates the status of AQUA on the cluster. Possible values include the following. <ul> <li> enabled - AQUA is enabled. </li> <li> disabled - AQUA is not enabled.  </li> <li> applying - AQUA status is being applied.  </li> </ul><br/>        """
        pass

    def revoke_cluster_security_group_ingress(self, ClusterSecurityGroupName: str, CIDRIP: str=None, EC2SecurityGroupName: str=None, EC2SecurityGroupOwnerId: str=None) -> RevokeClusterSecurityGroupIngressResult:
        r"""Revokes an ingress rule in an Amazon Redshift security group for a previously authorized IP range or Amazon EC2 security group. To add an ingress rule, see <a>AuthorizeClusterSecurityGroupIngress</a>. For information about managing security groups, go to <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-security-groups.html">Amazon Redshift Cluster Security Groups</a> in the <i>Amazon Redshift Cluster Management Guide</i>. 

        :param self:
        :param EC2SecurityGroupOwnerId:  The AWS account number of the owner of the security group specified in the <code>EC2SecurityGroupName</code> parameter. The AWS access key ID is not an acceptable value. If <code>EC2SecurityGroupOwnerId</code> is specified, <code>EC2SecurityGroupName</code> must also be provided. and <code>CIDRIP</code> cannot be provided.  Example: <code>111122223333</code> <br/>EC2SecurityGroupName:  The name of the EC2 Security Group whose access is to be revoked. If <code>EC2SecurityGroupName</code> is specified, <code>EC2SecurityGroupOwnerId</code> must also be provided and <code>CIDRIP</code> cannot be provided. <br/>CIDRIP:  The IP range for which to revoke access. This range must be a valid Classless Inter-Domain Routing (CIDR) block of IP addresses. If <code>CIDRIP</code> is specified, <code>EC2SecurityGroupName</code> and <code>EC2SecurityGroupOwnerId</code> cannot be provided. <br/>ClusterSecurityGroupName:  The name of the security Group from which to revoke the ingress rule.<br/>
        :return: ClusterSecurityGroup:  Describes a security group.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The list of tags for the cluster security group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IPRanges</i> A list of IP ranges (CIDR blocks) that are permitted to access clusters associated with this cluster security group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EC2SecurityGroups</i> A list of EC2 security groups that are permitted to access clusters associated with this cluster security group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A description of the security group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterSecurityGroupName</i> The name of the cluster security group to which the operation was applied.<br/>        """
        pass

    def revoke_endpoint_access(self, ClusterIdentifier: str=None, Account: str=None, VpcIds: List[String]=None, Force: Boolean=None) -> EndpointAuthorization:
        r"""Revokes access to a cluster.

        :param self:
        :param Force:  Indicates whether to force the revoke action. If true, the Redshift-managed VPC endpoints associated with the endpoint authorization are also deleted.<br/>VpcIds:  The virtual private cloud (VPC) identifiers for which access is to be revoked.<br/>Account:  The AWS account ID whose access is to be revoked.<br/>ClusterIdentifier:  The cluster to revoke access from.<br/>
        :return: EndpointCount:  The number of Redshift-managed VPC endpoints created for the authorization.<br/>AllowedVPCs:  The VPCs allowed access to the cluster.<br/>AllowedAllVPCs:  Indicates whether all VPCs in the grantee account are allowed access to the cluster.<br/>Status:  The status of the authorization action.<br/>ClusterStatus:  The status of the cluster.<br/>AuthorizeTime:  The time (UTC) when the authorization was created.<br/>ClusterIdentifier:  The cluster identifier.<br/>Grantee:  The AWS account ID of the grantee of the cluster.<br/>Grantor:  The AWS account ID of the cluster owner.<br/>        """
        pass

    def revoke_snapshot_access(self, AccountWithRestoreAccess: str, SnapshotIdentifier: str, SnapshotClusterIdentifier: str=None) -> RevokeSnapshotAccessResult:
        r"""Removes the ability of the specified AWS customer account to restore the specified snapshot. If the account is currently restoring the snapshot, the restore will run to completion.  For more information about working with snapshots, go to <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-snapshots.html">Amazon Redshift Snapshots</a> in the <i>Amazon Redshift Cluster Management Guide</i>.

        :param self:
        :param AccountWithRestoreAccess:  The identifier of the AWS customer account that can no longer restore the specified snapshot.<br/>SnapshotClusterIdentifier:  The identifier of the cluster the snapshot was created from. This parameter is required if your IAM user has a policy containing a snapshot resource element that specifies anything other than * for the cluster name.<br/>SnapshotIdentifier:  The identifier of the snapshot that the account can no longer access.<br/>
        :return: Snapshot:  Describes a snapshot.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotRetentionStartTime</i> A timestamp representing the start of the retention period for the snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ManualSnapshotRemainingDays</i> The number of days until a manual snapshot will pass its retention period.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ManualSnapshotRetentionPeriod</i> The number of days that a manual snapshot is retained. If the value is -1, the manual snapshot is retained indefinitely.  The value must be either -1 or an integer between 1 and 3,653.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaintenanceTrackName</i> The name of the maintenance track for the snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnhancedVpcRouting</i> An option that specifies whether to create the cluster with enhanced VPC routing enabled. To create a cluster that uses enhanced VPC routing, the cluster must be in a VPC. For more information, see <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html">Enhanced VPC Routing</a> in the Amazon Redshift Cluster Management Guide. If this option is <code>true</code>, enhanced VPC routing is enabled.  Default: false<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RestorableNodeTypes</i> The list of node types that this cluster snapshot is able to restore into.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The list of tags for the cluster snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceRegion</i> The source region from which the snapshot was copied.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ElapsedTimeInSeconds</i> The amount of time an in-progress snapshot backup has been running, or the amount of time it took a completed backup to finish.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EstimatedSecondsToCompletion</i> The estimate of the time remaining before the snapshot backup will complete. Returns <code>0</code> for a completed backup. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CurrentBackupRateInMegaBytesPerSecond</i> The number of megabytes per second being transferred to the snapshot backup. Returns <code>0</code> for a completed backup. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BackupProgressInMegaBytes</i> The number of megabytes that have been transferred to the snapshot backup.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActualIncrementalBackupSizeInMegaBytes</i> The size of the incremental backup.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalBackupSizeInMegaBytes</i> The size of the complete set of backup data that would be used to restore the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerAccount</i> For manual snapshots, the AWS customer account used to create or copy the snapshot. For automatic snapshots, the owner of the cluster. The owner can perform all snapshot actions, such as sharing a manual snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccountsWithRestoreAccess</i> A list of the AWS customer accounts authorized to restore the snapshot. Returns <code>null</code> if no accounts are authorized. Visible only to the snapshot owner. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EncryptedWithHSM</i> A boolean that indicates whether the snapshot data is encrypted using the HSM keys of the source cluster. <code>true</code> indicates that the data is encrypted using HSM keys.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The AWS Key Management Service (KMS) key ID of the encryption key that was used to encrypt data in the cluster from which the snapshot was taken.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Encrypted</i> If <code>true</code>, the data in the snapshot is encrypted at rest.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The VPC identifier of the cluster if the snapshot is from a cluster in a VPC. Otherwise, this field is not in the output.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBName</i> The name of the database that was created when the cluster was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberOfNodes</i> The number of nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NodeType</i> The node type of the nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotType</i> The snapshot type. Snapshots created using <a>CreateClusterSnapshot</a> and <a>CopyClusterSnapshot</a> are of type "manual". <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineFullVersion</i> The cluster version of the cluster used to create the snapshot. For example, 1.0.15503. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterVersion</i> The version ID of the Amazon Redshift engine that is running on the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUsername</i> The master user name for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterCreateTime</i> The time (UTC) when the cluster was originally created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZone</i> The Availability Zone in which the cluster was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> The port that the cluster is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The snapshot status. The value of the status depends on the API operation used:  <ul> <li>  <a>CreateClusterSnapshot</a> and <a>CopyClusterSnapshot</a> returns status as "creating".  </li> <li>  <a>DescribeClusterSnapshots</a> returns status as "creating", "available", "final snapshot", or "failed". </li> <li>  <a>DeleteClusterSnapshot</a> returns status as "deleted". </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotCreateTime</i> The time (in UTC format) when Amazon Redshift began the snapshot. A snapshot contains a copy of the cluster data as of this exact time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterIdentifier</i> The identifier of the cluster for which the snapshot was taken.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotIdentifier</i> The snapshot identifier that is provided in the request.<br/>        """
        pass

    def rotate_encryption_key(self, ClusterIdentifier: str) -> RotateEncryptionKeyResult:
        r"""Rotates the encryption keys for a cluster.

        :param self:
        :param ClusterIdentifier:  The unique identifier of the cluster that you want to rotate the encryption keys for. Constraints: Must be the name of valid cluster that has encryption enabled.<br/>
        :return: Cluster:  Describes a cluster.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AquaConfiguration</i> The AQUA (Advanced Query Accelerator) configuration of the cluster.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AquaConfiguration</b>: The AQUA (Advanced Query Accelerator) configuration of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalStorageCapacityInMegaBytes</i> The total storage capacity of the cluster in megabytes. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterNamespaceArn</i> The namespace Amazon Resource Name (ARN) of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZoneRelocationStatus</i> Describes the status of the Availability Zone relocation operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResizeInfo</i> Returns the following: <ul> <li> AllowCancelResize: a boolean value indicating if the resize operation can be cancelled. </li> <li> ResizeType: Returns ClassicResize </li> </ul>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ResizeInfo</b>: Returns the following: <ul> <li> AllowCancelResize: a boolean value indicating if the resize operation can be cancelled. </li> <li> ResizeType: Returns ClassicResize </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NextMaintenanceWindowStartTime</i> The date and time in UTC when system maintenance can begin.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExpectedNextSnapshotScheduleTimeStatus</i>  The status of next expected snapshot for clusters having a valid snapshot schedule and backups enabled. Possible values are the following: <ul> <li> OnTrack - The next snapshot is expected to be taken on time.  </li> <li> Pending - The next snapshot is pending to be taken.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExpectedNextSnapshotScheduleTime</i> The date and time when the next snapshot is expected to be taken for clusters with a valid snapshot schedule and backups enabled. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotScheduleState</i> The current state of the cluster snapshot schedule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotScheduleIdentifier</i> A unique identifier for the cluster snapshot schedule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeferredMaintenanceWindows</i> Describes a group of <code>DeferredMaintenanceWindow</code> objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ElasticResizeNumberOfNodeOptions</i> The number of nodes that you can resize the cluster to with the elastic resize method. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaintenanceTrackName</i> The name of the maintenance track for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingActions</i> Cluster operations that are waiting to be started.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IamRoles</i> A list of AWS Identity and Access Management (IAM) roles that can be used by the cluster to access other AWS services.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnhancedVpcRouting</i> An option that specifies whether to create the cluster with enhanced VPC routing enabled. To create a cluster that uses enhanced VPC routing, the cluster must be in a VPC. For more information, see <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html">Enhanced VPC Routing</a> in the Amazon Redshift Cluster Management Guide. If this option is <code>true</code>, enhanced VPC routing is enabled.  Default: false<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The AWS Key Management Service (AWS KMS) key ID of the encryption key used to encrypt data in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The list of tags for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterRevisionNumber</i> The specific revision number of the database in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ElasticIpStatus</i> The status of the elastic IP (EIP) address.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ElasticIpStatus</b>: The status of the elastic IP (EIP) address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterNodes</i> The nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterPublicKey</i> The public key for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterSnapshotCopyStatus</i> A value that returns the destination region and retention period that are configured for cross-region snapshot copy.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ClusterSnapshotCopyStatus</b>: A value that returns the destination region and retention period that are configured for cross-region snapshot copy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HsmStatus</i> A value that reports whether the Amazon Redshift cluster has finished applying any hardware security module (HSM) settings changes specified in a modify cluster command. Values: active, applying&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>HsmStatus</b>: A value that reports whether the Amazon Redshift cluster has finished applying any hardware security module (HSM) settings changes specified in a modify cluster command. Values: active, applying<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataTransferProgress</i> <p/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DataTransferProgress</b>: <p/><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RestoreStatus</i> A value that describes the status of a cluster restore action. This parameter returns null if the cluster was not created by restoring a snapshot.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RestoreStatus</b>: A value that describes the status of a cluster restore action. This parameter returns null if the cluster was not created by restoring a snapshot.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Encrypted</i> A boolean value that, if <code>true</code>, indicates that data in the cluster is encrypted at rest.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PubliclyAccessible</i> A boolean value that, if <code>true</code>, indicates that the cluster can be accessed from a public network.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberOfNodes</i> The number of compute nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowVersionUpgrade</i> A boolean value that, if <code>true</code>, indicates that major version upgrades will be applied automatically to the cluster during the maintenance window. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterVersion</i> The version ID of the Amazon Redshift engine that is running on the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingModifiedValues</i> A value that, if present, indicates that changes to the cluster are pending. Specific pending changes are identified by subelements.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PendingModifiedValues</b>: A value that, if present, indicates that changes to the cluster are pending. Specific pending changes are identified by subelements.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreferredMaintenanceWindow</i> The weekly time range, in Universal Coordinated Time (UTC), during which system maintenance can occur.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailabilityZone</i> The name of the Availability Zone in which the cluster is located.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The identifier of the VPC the cluster is in, if the cluster is in a VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterSubnetGroupName</i> The name of the subnet group that is associated with the cluster. This parameter is valid only when the cluster is in a VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterParameterGroups</i> The list of cluster parameter groups that are associated with this cluster. Each parameter group in the list is returned with its status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcSecurityGroups</i> A list of Amazon Virtual Private Cloud (Amazon VPC) security groups that are associated with the cluster. This parameter is returned only if the cluster is in a VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterSecurityGroups</i> A list of cluster security group that are associated with the cluster. Each security group is represented by an element that contains <code>ClusterSecurityGroup.Name</code> and <code>ClusterSecurityGroup.Status</code> subelements.  Cluster security groups are used when the cluster is not created in an Amazon Virtual Private Cloud (VPC). Clusters that are created in a VPC use VPC security groups, which are listed by the <b>VpcSecurityGroups</b> parameter. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ManualSnapshotRetentionPeriod</i> The default number of days to retain a manual snapshot. If the value is -1, the snapshot is retained indefinitely. This setting doesn't change the retention period of existing snapshots. The value must be either -1 or an integer between 1 and 3,653.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomatedSnapshotRetentionPeriod</i> The number of days that automatic cluster snapshots are retained.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterCreateTime</i> The date and time that the cluster was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Endpoint</i> The connection endpoint.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Endpoint</b>: The connection endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DBName</i> The name of the initial database that was created when the cluster was created. This same name is returned for the life of the cluster. If an initial database was not specified, a database named <code>dev</code>dev was created by default. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUsername</i> The master user name for the cluster. This name is used to connect to the database that is specified in the <b>DBName</b> parameter. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ModifyStatus</i> The status of a modify operation, if any, initiated for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterAvailabilityStatus</i> The availability status of the cluster for queries. Possible values are the following: <ul> <li> Available - The cluster is available for queries.  </li> <li> Unavailable - The cluster is not available for queries. </li> <li> Maintenance - The cluster is intermittently available for queries due to maintenance activities. </li> <li> Modifying - The cluster is intermittently available for queries due to changes that modify the cluster. </li> <li> Failed - The cluster failed and is not available for queries. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterStatus</i>  The current state of the cluster. Possible values are the following: <ul> <li>  <code>available</code>  </li> <li>  <code>available, prep-for-resize</code>  </li> <li>  <code>available, resize-cleanup</code>  </li> <li>  <code>cancelling-resize</code>  </li> <li>  <code>creating</code>  </li> <li>  <code>deleting</code>  </li> <li>  <code>final-snapshot</code>  </li> <li>  <code>hardware-failure</code>  </li> <li>  <code>incompatible-hsm</code>  </li> <li>  <code>incompatible-network</code>  </li> <li>  <code>incompatible-parameters</code>  </li> <li>  <code>incompatible-restore</code>  </li> <li>  <code>modifying</code>  </li> <li>  <code>paused</code>  </li> <li>  <code>rebooting</code>  </li> <li>  <code>renaming</code>  </li> <li>  <code>resizing</code>  </li> <li>  <code>rotating-keys</code>  </li> <li>  <code>storage-full</code>  </li> <li>  <code>updating-hsm</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NodeType</i> The node type for the nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterIdentifier</i> The unique identifier of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcEndpoints</i> Describes a connection endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> The port that the database engine is listening on.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Address</i> The DNS address of the Cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EncryptionType</i> The encryption type for a cluster. Possible values are: KMS and None. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaintenanceTrackName</i> The name of the maintenance track that the cluster will change to during the next maintenance window.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EnhancedVpcRouting</i> An option that specifies whether to create the cluster with enhanced VPC routing enabled. To create a cluster that uses enhanced VPC routing, the cluster must be in a VPC. For more information, see <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html">Enhanced VPC Routing</a> in the Amazon Redshift Cluster Management Guide. If this option is <code>true</code>, enhanced VPC routing is enabled.  Default: false<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PubliclyAccessible</i> The pending or in-progress change of the ability to connect to the cluster from the public network.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterIdentifier</i> The pending or in-progress change of the new identifier for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomatedSnapshotRetentionPeriod</i> The pending or in-progress change of the automated snapshot retention period.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterVersion</i> The pending or in-progress change of the service version.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterType</i> The pending or in-progress change of the cluster type.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberOfNodes</i> The pending or in-progress change of the number of nodes in the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NodeType</i> The pending or in-progress change of the cluster's node type.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MasterUserPassword</i> The pending or in-progress change of the master user password for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EstimatedTimeToCompletionInSeconds</i> The estimate of the time remaining before the restore will complete. Returns 0 for a completed restore. This field is only updated when you restore to DC2 and DS2 node types. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ElapsedTimeInSeconds</i> The amount of time an in-progress restore has been running, or the amount of time it took a completed restore to finish. This field is only updated when you restore to DC2 and DS2 node types. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ProgressInMegaBytes</i> The number of megabytes that have been transferred from snapshot storage. This field is only updated when you restore to DC2 and DS2 node types. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotSizeInMegaBytes</i> The size of the set of snapshot data used to restore the cluster. This field is only updated when you restore to DC2 and DS2 node types. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CurrentRestoreRateInMegaBytesPerSecond</i> The number of megabytes per second being transferred from the backup storage. Returns the average rate for a completed backup. This field is only updated when you restore to DC2 and DS2 node types. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the restore action. Returns starting, restoring, completed, or failed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ElapsedTimeInSeconds</i> Describes the number of seconds that have elapsed during the data transfer.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EstimatedTimeToCompletionInSeconds</i> Describes the estimated number of seconds remaining to complete the transfer.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DataTransferredInMegaBytes</i> Describes the total amount of data that has been transfered in MB's.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalDataInMegaBytes</i> Describes the total amount of data to be transfered in megabytes.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CurrentRateInMegaBytesPerSecond</i> Describes the data transfer rate in MB's per second.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Describes the status of the cluster. While the transfer is in progress the status is <code>transferringdata</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Reports whether the Amazon Redshift cluster has finished applying any HSM settings changes specified in a modify cluster command. Values: active, applying<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HsmConfigurationIdentifier</i> Specifies the name of the HSM configuration that contains the information the Amazon Redshift cluster can use to retrieve and store keys in an HSM.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HsmClientCertificateIdentifier</i> Specifies the name of the HSM client certificate the Amazon Redshift cluster uses to retrieve the data encryption keys stored in an HSM.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SnapshotCopyGrantName</i> The name of the snapshot copy grant.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ManualSnapshotRetentionPeriod</i> The number of days that automated snapshots are retained in the destination region after they are copied from a source region. If the value is -1, the manual snapshot is retained indefinitely.  The value must be either -1 or an integer between 1 and 3,653.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RetentionPeriod</i> The number of days that automated snapshots are retained in the destination region after they are copied from a source region.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DestinationRegion</i> The destination region that snapshots are automatically copied to when cross-region snapshot copy is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the elastic IP (EIP) address.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ElasticIp</i> The elastic IP (EIP) address for the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowCancelResize</i> A boolean value indicating if the resize operation can be cancelled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ResizeType</i> Returns the value <code>ClassicResize</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AquaConfigurationStatus</i> The value represents how the cluster is configured to use AQUA. Possible values include the following. <ul> <li> enabled - Use AQUA if it is available for the current AWS Region and Amazon Redshift node type. </li> <li> disabled - Don't use AQUA.  </li> <li> auto - Amazon Redshift determines whether to use AQUA. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AquaStatus</i> The value indicates the status of AQUA on the cluster. Possible values include the following. <ul> <li> enabled - AQUA is enabled. </li> <li> disabled - AQUA is not enabled.  </li> <li> applying - AQUA status is being applied.  </li> </ul><br/>        """
        pass

    def update_partner_status(self, Status: str, PartnerName: str, DatabaseName: str, ClusterIdentifier: str, AccountId: str, StatusMessage: str=None) -> PartnerIntegrationOutputMessage:
        r"""Updates the status of a partner integration.

        :param self:
        :param StatusMessage:  The status message provided by the partner.<br/>Status:  The value of the updated status.<br/>PartnerName:  The name of the partner whose integration status is being updated.<br/>DatabaseName:  The name of the database whose partner integration status is being updated.<br/>ClusterIdentifier:  The cluster identifier of the cluster whose partner integration status is being updated.<br/>AccountId:  The AWS account ID that owns the cluster.<br/>
        :return: PartnerName:  The name of the partner that is authorized to send data.<br/>DatabaseName:  The name of the database that receives data from the partner.<br/>        """
        pass





class RedshiftDataAPIService(BaseClient):
    r"""You can use the Amazon Redshift Data API to run queries on Amazon Redshift tables. You can run individual SQL statements, which are committed if the statement succeeds.  For more information about the Amazon Redshift Data API, see <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/data-api.html">Using the Amazon Redshift Data API</a> in the <i>Amazon Redshift Cluster Management Guide</i>. """


    class DescribeTablePaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_table` for valid parameters"""
            pass
    class GetStatementResultPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_statement_result` for valid parameters"""
            pass
    class ListDatabasesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_databases` for valid parameters"""
            pass
    class ListSchemasPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_schemas` for valid parameters"""
            pass
    class ListStatementsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_statements` for valid parameters"""
            pass
    class ListTablesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_tables` for valid parameters"""
            pass


    class CancelStatementRequest(Mapping):
        pass
    
    class CancelStatementResponse(Mapping):
        pass
    
    class DescribeStatementRequest(Mapping):
        pass
    
    class DescribeStatementResponse(Mapping):
        pass
    
    class DescribeTableRequest(Mapping):
        pass
    
    class DescribeTableResponse(Mapping):
        pass
    
    class ExecuteStatementInput(Mapping):
        pass
    
    class ExecuteStatementOutput(Mapping):
        pass
    
    class SqlParameter(Mapping):
        pass
    
    class Boolean(object):
        pass
    
    class GetStatementResultRequest(Mapping):
        pass
    
    class GetStatementResultResponse(Mapping):
        pass
    
    class ListDatabasesRequest(Mapping):
        pass
    
    class ListDatabasesResponse(Mapping):
        pass
    
    class ListSchemasRequest(Mapping):
        pass
    
    class ListSchemasResponse(Mapping):
        pass
    
    class ListStatementsRequest(Mapping):
        pass
    
    class ListStatementsResponse(Mapping):
        pass
    
    class ListTablesRequest(Mapping):
        pass
    
    class ListTablesResponse(Mapping):
        pass
    
    def cancel_statement(self, Id: str) -> CancelStatementResponse:
        r"""Cancels a running query. To be canceled, a query must be running. 

        :param self:
        :param Id:  The identifier of the SQL statement to cancel. This value is a universally unique identifier (UUID) generated by Amazon Redshift Data API. This identifier is returned by <code>ExecuteStatment</code> and <code>ListStatements</code>. <br/>
        :return: Status:  A value that indicates whether the cancel statement succeeded (true). <br/>        """
        pass

    def describe_statement(self, Id: str) -> DescribeStatementResponse:
        r"""Describes the details about a specific instance when a query was run by the Amazon Redshift Data API. The information includes when the query started, when it finished, the query status, the number of rows returned, and the SQL statement. 

        :param self:
        :param Id:  The identifier of the SQL statement to describe. This value is a universally unique identifier (UUID) generated by Amazon Redshift Data API. This identifier is returned by <code>ExecuteStatment</code> and <code>ListStatements</code>. <br/>
        :return: UpdatedAt:  The date and time (UTC) that the metadata for the SQL statement was last updated. An example is the time the status last changed. <br/>Status:  The status of the SQL statement being described. Status values are defined as follows:  <ul> <li> ABORTED - The query run was stopped by the user.  </li> <li> ALL - A status value that includes all query statuses. This value can be used to filter results.  </li> <li> FAILED - The query run failed.  </li> <li> FINISHED - The query has finished running.  </li> <li> PICKED - The query has been chosen to be run.  </li> <li> STARTED - The query run has started.  </li> <li> SUBMITTED - The query was submitted, but not yet processed.  </li> </ul><br/>SecretArn:  The name or Amazon Resource Name (ARN) of the secret that enables access to the database. <br/>ResultSize:  The size in bytes of the returned results. <br/>ResultRows:  Either the number of rows returned from the SQL statement or the number of rows affected. If result size is greater than zero, the result rows can be the number of rows affected by SQL statements such as INSERT, UPDATE, DELETE, COPY, and others. <br/>RedshiftQueryId:  The identifier of the query generated by Amazon Redshift. These identifiers are also available in the <code>query</code> column of the <code>STL_QUERY</code> system view. <br/>RedshiftPid:  The process identifier from Amazon Redshift. <br/>QueryString:  The SQL statement text. <br/>QueryParameters:  The parameters for the SQL statement.<br/>Id:  The identifier of the SQL statement described. This value is a universally unique identifier (UUID) generated by Amazon Redshift Data API. <br/>HasResultSet:  A value that indicates whether the statement has a result set. The result set can be empty. <br/>Error:  The error message from the cluster if the SQL statement encountered an error while running. <br/>Duration:  The amount of time in nanoseconds that the statement ran. <br/>DbUser:  The database user name. <br/>Database:  The name of the database. <br/>CreatedAt:  The date and time (UTC) when the SQL statement was submitted to run. <br/>ClusterIdentifier:  The cluster identifier. <br/>        """
        pass

    def describe_table(self, Database: str, ClusterIdentifier: str, ConnectedDatabase: str=None, DbUser: str=None, MaxResults: int=None, NextToken: str=None, Schema: str=None, SecretArn: str=None, Table: str=None) -> DescribeTableResponse:
        r"""Describes the detailed information about a table from metadata in the cluster. The information includes its columns. A token is returned to page through the column list. Depending on the authorization method, use one of the following combinations of request parameters:  <ul> <li> AWS Secrets Manager - specify the Amazon Resource Name (ARN) of the secret and the cluster identifier that matches the cluster in the secret.  </li> <li> Temporary credentials - specify the cluster identifier, the database name, and the database user name. Permission to call the <code>redshift:GetClusterCredentials</code> operation is required to use this method.  </li> </ul>

        :param self:
        :param Table:  The table name. If no table is specified, then all tables for all matching schemas are returned. If no table and no schema is specified, then all tables for all schemas in the database are returned<br/>SecretArn:  The name or ARN of the secret that enables access to the database. This parameter is required when authenticating using AWS Secrets Manager. <br/>Schema:  The schema that contains the table. If no schema is specified, then matching tables for all schemas are returned. <br/>NextToken:  A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned NextToken value in the next NextToken parameter and retrying the command. If the NextToken field is empty, all response records have been retrieved for the request. <br/>MaxResults:  The maximum number of tables to return in the response. If more tables exist than fit in one response, then <code>NextToken</code> is returned to page through the results. <br/>DbUser:  The database user name. This parameter is required when authenticating using temporary credentials. <br/>Database:  The name of the database that contains the tables to be described. If <code>ConnectedDatabase</code> is not specified, this is also the database to connect to with your authentication credentials.<br/>ConnectedDatabase:  A database name. The connected database is specified when you connect with your authentication credentials. <br/>ClusterIdentifier:  The cluster identifier. This parameter is required when authenticating using either AWS Secrets Manager or temporary credentials. <br/>
        :return: TableName:  The table name. <br/>NextToken:  A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned NextToken value in the next NextToken parameter and retrying the command. If the NextToken field is empty, all response records have been retrieved for the request. <br/>ColumnList:  A list of columns in the table. <br/>        """
        pass

    def execute_statement(self, Sql: str, ClusterIdentifier: str, Database: str=None, DbUser: str=None, Parameters: List[SqlParameter]=None, SecretArn: str=None, StatementName: str=None, WithEvent: Boolean=None) -> ExecuteStatementOutput:
        r"""Runs an SQL statement, which can be data manipulation language (DML) or data definition language (DDL). This statement must be a single SQL statement. Depending on the authorization method, use one of the following combinations of request parameters:  <ul> <li> AWS Secrets Manager - specify the Amazon Resource Name (ARN) of the secret and the cluster identifier that matches the cluster in the secret.  </li> <li> Temporary credentials - specify the cluster identifier, the database name, and the database user name. Permission to call the <code>redshift:GetClusterCredentials</code> operation is required to use this method.  </li> </ul>

        :param self:
        :param WithEvent:  A value that indicates whether to send an event to the Amazon EventBridge event bus after the SQL statement runs. <br/>StatementName:  The name of the SQL statement. You can name the SQL statement when you create it to identify the query. <br/>Sql:  The SQL statement text to run. <br/>SecretArn:  The name or ARN of the secret that enables access to the database. This parameter is required when authenticating using AWS Secrets Manager. <br/>Parameters:  The parameters for the SQL statement.<br/>DbUser:  The database user name. This parameter is required when authenticating using temporary credentials. <br/>Database:  The name of the database. This parameter is required when authenticating using temporary credentials.<br/>ClusterIdentifier:  The cluster identifier. This parameter is required when authenticating using either AWS Secrets Manager or temporary credentials. <br/>
        :return: SecretArn:  The name or ARN of the secret that enables access to the database. <br/>Id:  The identifier of the statement to be run. This value is a universally unique identifier (UUID) generated by Amazon Redshift Data API. <br/>DbUser:  The database user name.<br/>Database:  The name of the database.<br/>CreatedAt:  The date and time (UTC) the statement was created. <br/>ClusterIdentifier:  The cluster identifier. <br/>        """
        pass

    def get_statement_result(self, Id: str, NextToken: str=None) -> GetStatementResultResponse:
        r"""Fetches the temporarily cached result of an SQL statement. A token is returned to page through the statement results. 

        :param self:
        :param NextToken:  A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned NextToken value in the next NextToken parameter and retrying the command. If the NextToken field is empty, all response records have been retrieved for the request. <br/>Id:  The identifier of the SQL statement whose results are to be fetched. This value is a universally unique identifier (UUID) generated by Amazon Redshift Data API. This identifier is returned by <code>ExecuteStatment</code> and <code>ListStatements</code>. <br/>
        :return: TotalNumRows:  The total number of rows in the result set returned from a query. You can use this number to estimate the number of calls to the <code>GetStatementResult</code> operation needed to page through the results. <br/>Records:  The results of the SQL statement.<br/>NextToken:  A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned NextToken value in the next NextToken parameter and retrying the command. If the NextToken field is empty, all response records have been retrieved for the request. <br/>ColumnMetadata:  The properties (metadata) of a column. <br/>        """
        pass

    def list_databases(self, ClusterIdentifier: str, Database: str=None, DbUser: str=None, MaxResults: int=None, NextToken: str=None, SecretArn: str=None) -> ListDatabasesResponse:
        r"""List the databases in a cluster. A token is returned to page through the database list. Depending on the authorization method, use one of the following combinations of request parameters:  <ul> <li> AWS Secrets Manager - specify the Amazon Resource Name (ARN) of the secret and the cluster identifier that matches the cluster in the secret.  </li> <li> Temporary credentials - specify the cluster identifier, the database name, and the database user name. Permission to call the <code>redshift:GetClusterCredentials</code> operation is required to use this method.  </li> </ul>

        :param self:
        :param SecretArn:  The name or ARN of the secret that enables access to the database. This parameter is required when authenticating using AWS Secrets Manager. <br/>NextToken:  A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned NextToken value in the next NextToken parameter and retrying the command. If the NextToken field is empty, all response records have been retrieved for the request. <br/>MaxResults:  The maximum number of databases to return in the response. If more databases exist than fit in one response, then <code>NextToken</code> is returned to page through the results. <br/>DbUser:  The database user name. This parameter is required when authenticating using temporary credentials. <br/>Database:  The name of the database. This parameter is required when authenticating using temporary credentials. <br/>ClusterIdentifier:  The cluster identifier. This parameter is required when authenticating using either AWS Secrets Manager or temporary credentials. <br/>
        :return: NextToken:  A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned NextToken value in the next NextToken parameter and retrying the command. If the NextToken field is empty, all response records have been retrieved for the request. <br/>Databases:  The names of databases. <br/>        """
        pass

    def list_schemas(self, Database: str, ClusterIdentifier: str, ConnectedDatabase: str=None, DbUser: str=None, MaxResults: int=None, NextToken: str=None, SchemaPattern: str=None, SecretArn: str=None) -> ListSchemasResponse:
        r"""Lists the schemas in a database. A token is returned to page through the schema list. Depending on the authorization method, use one of the following combinations of request parameters:  <ul> <li> AWS Secrets Manager - specify the Amazon Resource Name (ARN) of the secret and the cluster identifier that matches the cluster in the secret.  </li> <li> Temporary credentials - specify the cluster identifier, the database name, and the database user name. Permission to call the <code>redshift:GetClusterCredentials</code> operation is required to use this method.  </li> </ul>

        :param self:
        :param SecretArn:  The name or ARN of the secret that enables access to the database. This parameter is required when authenticating using AWS Secrets Manager. <br/>SchemaPattern:  A pattern to filter results by schema name. Within a schema pattern, "%" means match any substring of 0 or more characters and "_" means match any one character. Only schema name entries matching the search pattern are returned. <br/>NextToken:  A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned NextToken value in the next NextToken parameter and retrying the command. If the NextToken field is empty, all response records have been retrieved for the request. <br/>MaxResults:  The maximum number of schemas to return in the response. If more schemas exist than fit in one response, then <code>NextToken</code> is returned to page through the results. <br/>DbUser:  The database user name. This parameter is required when authenticating using temporary credentials. <br/>Database:  The name of the database that contains the schemas to list. If <code>ConnectedDatabase</code> is not specified, this is also the database to connect to with your authentication credentials.<br/>ConnectedDatabase:  A database name. The connected database is specified when you connect with your authentication credentials. <br/>ClusterIdentifier:  The cluster identifier. This parameter is required when authenticating using either AWS Secrets Manager or temporary credentials. <br/>
        :return: Schemas:  The schemas that match the request pattern. <br/>NextToken:  A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned NextToken value in the next NextToken parameter and retrying the command. If the NextToken field is empty, all response records have been retrieved for the request. <br/>        """
        pass

    def list_statements(self, MaxResults: int=None, NextToken: str=None, RoleLevel: Boolean=None, StatementName: str=None, Status: str=None) -> ListStatementsResponse:
        r"""List of SQL statements. By default, only finished statements are shown. A token is returned to page through the statement list. 

        :param self:
        :param Status:  The status of the SQL statement to list. Status values are defined as follows:  <ul> <li> ABORTED - The query run was stopped by the user.  </li> <li> ALL - A status value that includes all query statuses. This value can be used to filter results.  </li> <li> FAILED - The query run failed.  </li> <li> FINISHED - The query has finished running.  </li> <li> PICKED - The query has been chosen to be run.  </li> <li> STARTED - The query run has started.  </li> <li> SUBMITTED - The query was submitted, but not yet processed.  </li> </ul><br/>StatementName:  The name of the SQL statement specified as input to <code>ExecuteStatement</code> to identify the query. You can list multiple statements by providing a prefix that matches the beginning of the statement name. For example, to list myStatement1, myStatement2, myStatement3, and so on, then provide the a value of <code>myStatement</code>. Data API does a case-sensitive match of SQL statement names to the prefix value you provide. <br/>RoleLevel:  A value that filters which statements to return in the response. If true, all statements run by the caller's IAM role are returned. If false, only statements run by the caller's IAM role in the current IAM session are returned. The default is true. <br/>NextToken:  A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned NextToken value in the next NextToken parameter and retrying the command. If the NextToken field is empty, all response records have been retrieved for the request. <br/>MaxResults:  The maximum number of SQL statements to return in the response. If more SQL statements exist than fit in one response, then <code>NextToken</code> is returned to page through the results. <br/>
        :return: Statements:  The SQL statements. <br/>NextToken:  A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned NextToken value in the next NextToken parameter and retrying the command. If the NextToken field is empty, all response records have been retrieved for the request. <br/>        """
        pass

    def list_tables(self, Database: str, ClusterIdentifier: str, ConnectedDatabase: str=None, DbUser: str=None, MaxResults: int=None, NextToken: str=None, SchemaPattern: str=None, SecretArn: str=None, TablePattern: str=None) -> ListTablesResponse:
        r"""List the tables in a database. If neither <code>SchemaPattern</code> nor <code>TablePattern</code> are specified, then all tables in the database are returned. A token is returned to page through the table list. Depending on the authorization method, use one of the following combinations of request parameters:  <ul> <li> AWS Secrets Manager - specify the Amazon Resource Name (ARN) of the secret and the cluster identifier that matches the cluster in the secret.  </li> <li> Temporary credentials - specify the cluster identifier, the database name, and the database user name. Permission to call the <code>redshift:GetClusterCredentials</code> operation is required to use this method.  </li> </ul>

        :param self:
        :param TablePattern:  A pattern to filter results by table name. Within a table pattern, "%" means match any substring of 0 or more characters and "_" means match any one character. Only table name entries matching the search pattern are returned. If <code>TablePattern</code> is not specified, then all tables that match <code>SchemaPattern</code>are returned. If neither <code>SchemaPattern</code> or <code>TablePattern</code> are specified, then all tables are returned. <br/>SecretArn:  The name or ARN of the secret that enables access to the database. This parameter is required when authenticating using AWS Secrets Manager. <br/>SchemaPattern:  A pattern to filter results by schema name. Within a schema pattern, "%" means match any substring of 0 or more characters and "_" means match any one character. Only schema name entries matching the search pattern are returned. If <code>SchemaPattern</code> is not specified, then all tables that match <code>TablePattern</code> are returned. If neither <code>SchemaPattern</code> or <code>TablePattern</code> are specified, then all tables are returned. <br/>NextToken:  A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned NextToken value in the next NextToken parameter and retrying the command. If the NextToken field is empty, all response records have been retrieved for the request. <br/>MaxResults:  The maximum number of tables to return in the response. If more tables exist than fit in one response, then <code>NextToken</code> is returned to page through the results. <br/>DbUser:  The database user name. This parameter is required when authenticating using temporary credentials. <br/>Database:  The name of the database that contains the tables to list. If <code>ConnectedDatabase</code> is not specified, this is also the database to connect to with your authentication credentials.<br/>ConnectedDatabase:  A database name. The connected database is specified when you connect with your authentication credentials. <br/>ClusterIdentifier:  The cluster identifier. This parameter is required when authenticating using either AWS Secrets Manager or temporary credentials. <br/>
        :return: Tables:  The tables that match the request pattern. <br/>NextToken:  A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned NextToken value in the next NextToken parameter and retrying the command. If the NextToken field is empty, all response records have been retrieved for the request. <br/>        """
        pass





class Rekognition(BaseClient):
    r"""This is the Amazon Rekognition API reference."""

    class ProjectVersionRunningWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_project_versions` for valid parameters"""
            pass
    class ProjectVersionTrainingCompletedWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_project_versions` for valid parameters"""
            pass


    class ListCollectionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_collections` for valid parameters"""
            pass
    class ListFacesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_faces` for valid parameters"""
            pass
    class ListStreamProcessorsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_stream_processors` for valid parameters"""
            pass
    class DescribeProjectVersionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_project_versions` for valid parameters"""
            pass
    class DescribeProjectsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_projects` for valid parameters"""
            pass


    class CompareFacesRequest(Mapping):
        pass
    
    class CompareFacesResponse(Mapping):
        pass
    
    class Image(Mapping):
        pass
    
    class Percent(object):
        pass
    
    class CreateCollectionRequest(Mapping):
        pass
    
    class CreateCollectionResponse(Mapping):
        pass
    
    class TagMap(object):
        pass
    
    class CreateProjectRequest(Mapping):
        pass
    
    class CreateProjectResponse(Mapping):
        pass
    
    class CreateProjectVersionRequest(Mapping):
        pass
    
    class CreateProjectVersionResponse(Mapping):
        pass
    
    class OutputConfig(Mapping):
        pass
    
    class TrainingData(Mapping):
        pass
    
    class TestingData(Mapping):
        pass
    
    class CreateStreamProcessorRequest(Mapping):
        pass
    
    class CreateStreamProcessorResponse(Mapping):
        pass
    
    class StreamProcessorInput(Mapping):
        pass
    
    class StreamProcessorOutput(Mapping):
        pass
    
    class StreamProcessorSettings(Mapping):
        pass
    
    class DeleteCollectionRequest(Mapping):
        pass
    
    class DeleteCollectionResponse(Mapping):
        pass
    
    class DeleteFacesRequest(Mapping):
        pass
    
    class DeleteFacesResponse(Mapping):
        pass
    
    class FaceId(object):
        pass
    
    class DeleteProjectRequest(Mapping):
        pass
    
    class DeleteProjectResponse(Mapping):
        pass
    
    class DeleteProjectVersionRequest(Mapping):
        pass
    
    class DeleteProjectVersionResponse(Mapping):
        pass
    
    class DeleteStreamProcessorRequest(Mapping):
        pass
    
    class DeleteStreamProcessorResponse(Mapping):
        pass
    
    class DescribeCollectionRequest(Mapping):
        pass
    
    class DescribeCollectionResponse(Mapping):
        pass
    
    class DescribeProjectVersionsRequest(Mapping):
        pass
    
    class DescribeProjectVersionsResponse(Mapping):
        pass
    
    class VersionName(object):
        pass
    
    class DescribeProjectsRequest(Mapping):
        pass
    
    class DescribeProjectsResponse(Mapping):
        pass
    
    class DescribeStreamProcessorRequest(Mapping):
        pass
    
    class DescribeStreamProcessorResponse(Mapping):
        pass
    
    class DetectCustomLabelsRequest(Mapping):
        pass
    
    class DetectCustomLabelsResponse(Mapping):
        pass
    
    class DetectFacesRequest(Mapping):
        pass
    
    class DetectFacesResponse(Mapping):
        pass
    
    class Attribute(object):
        pass
    
    class DetectLabelsRequest(Mapping):
        pass
    
    class DetectLabelsResponse(Mapping):
        pass
    
    class DetectModerationLabelsRequest(Mapping):
        pass
    
    class DetectModerationLabelsResponse(Mapping):
        pass
    
    class HumanLoopConfig(Mapping):
        pass
    
    class DetectProtectiveEquipmentRequest(Mapping):
        pass
    
    class DetectProtectiveEquipmentResponse(Mapping):
        pass
    
    class ProtectiveEquipmentSummarizationAttributes(Mapping):
        pass
    
    class DetectTextRequest(Mapping):
        pass
    
    class DetectTextResponse(Mapping):
        pass
    
    class DetectTextFilters(Mapping):
        pass
    
    class GetCelebrityInfoRequest(Mapping):
        pass
    
    class GetCelebrityInfoResponse(Mapping):
        pass
    
    class GetCelebrityRecognitionRequest(Mapping):
        pass
    
    class GetCelebrityRecognitionResponse(Mapping):
        pass
    
    class GetContentModerationRequest(Mapping):
        pass
    
    class GetContentModerationResponse(Mapping):
        pass
    
    class GetFaceDetectionRequest(Mapping):
        pass
    
    class GetFaceDetectionResponse(Mapping):
        pass
    
    class GetFaceSearchRequest(Mapping):
        pass
    
    class GetFaceSearchResponse(Mapping):
        pass
    
    class GetLabelDetectionRequest(Mapping):
        pass
    
    class GetLabelDetectionResponse(Mapping):
        pass
    
    class GetPersonTrackingRequest(Mapping):
        pass
    
    class GetPersonTrackingResponse(Mapping):
        pass
    
    class GetSegmentDetectionRequest(Mapping):
        pass
    
    class GetSegmentDetectionResponse(Mapping):
        pass
    
    class GetTextDetectionRequest(Mapping):
        pass
    
    class GetTextDetectionResponse(Mapping):
        pass
    
    class IndexFacesRequest(Mapping):
        pass
    
    class IndexFacesResponse(Mapping):
        pass
    
    class ListCollectionsRequest(Mapping):
        pass
    
    class ListCollectionsResponse(Mapping):
        pass
    
    class ListFacesRequest(Mapping):
        pass
    
    class ListFacesResponse(Mapping):
        pass
    
    class ListStreamProcessorsRequest(Mapping):
        pass
    
    class ListStreamProcessorsResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class RecognizeCelebritiesRequest(Mapping):
        pass
    
    class RecognizeCelebritiesResponse(Mapping):
        pass
    
    class SearchFacesRequest(Mapping):
        pass
    
    class SearchFacesResponse(Mapping):
        pass
    
    class SearchFacesByImageRequest(Mapping):
        pass
    
    class SearchFacesByImageResponse(Mapping):
        pass
    
    class StartCelebrityRecognitionRequest(Mapping):
        pass
    
    class StartCelebrityRecognitionResponse(Mapping):
        pass
    
    class Video(Mapping):
        pass
    
    class NotificationChannel(Mapping):
        pass
    
    class StartContentModerationRequest(Mapping):
        pass
    
    class StartContentModerationResponse(Mapping):
        pass
    
    class StartFaceDetectionRequest(Mapping):
        pass
    
    class StartFaceDetectionResponse(Mapping):
        pass
    
    class StartFaceSearchRequest(Mapping):
        pass
    
    class StartFaceSearchResponse(Mapping):
        pass
    
    class StartLabelDetectionRequest(Mapping):
        pass
    
    class StartLabelDetectionResponse(Mapping):
        pass
    
    class StartPersonTrackingRequest(Mapping):
        pass
    
    class StartPersonTrackingResponse(Mapping):
        pass
    
    class StartProjectVersionRequest(Mapping):
        pass
    
    class StartProjectVersionResponse(Mapping):
        pass
    
    class StartSegmentDetectionRequest(Mapping):
        pass
    
    class StartSegmentDetectionResponse(Mapping):
        pass
    
    class StartSegmentDetectionFilters(Mapping):
        pass
    
    class SegmentType(object):
        pass
    
    class StartStreamProcessorRequest(Mapping):
        pass
    
    class StartStreamProcessorResponse(Mapping):
        pass
    
    class StartTextDetectionRequest(Mapping):
        pass
    
    class StartTextDetectionResponse(Mapping):
        pass
    
    class StartTextDetectionFilters(Mapping):
        pass
    
    class StopProjectVersionRequest(Mapping):
        pass
    
    class StopProjectVersionResponse(Mapping):
        pass
    
    class StopStreamProcessorRequest(Mapping):
        pass
    
    class StopStreamProcessorResponse(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    def compare_faces(self, TargetImage: Image, SourceImage: Image, SimilarityThreshold: Percent=None, QualityFilter: str=None) -> CompareFacesResponse:
        r"""Compares a face in the <i>source</i> input image with each of the 100 largest faces detected in the <i>target</i> input image.   If the source image contains multiple faces, the service detects the largest face and compares it with each face detected in the target image.  <note> CompareFaces uses machine learning algorithms, which are probabilistic. A false negative is an incorrect prediction that a face in the target image has a low similarity confidence score when compared to the face in the source image. To reduce the probability of false negatives, we recommend that you compare the target image against multiple source images. If you plan to use <code>CompareFaces</code> to make a decision that impacts an individual's rights, privacy, or access to services, we recommend that you pass the result to a human for review and further validation before taking action. </note> You pass the input and target images either as base64-encoded image bytes or as references to images in an Amazon S3 bucket. If you use the AWS CLI to call Amazon Rekognition operations, passing image bytes isn't supported. The image must be formatted as a PNG or JPEG file.  In response, the operation returns an array of face matches ordered by similarity score in descending order. For each face match, the response provides a bounding box of the face, facial landmarks, pose details (pitch, role, and yaw), quality (brightness and sharpness), and confidence value (indicating the level of confidence that the bounding box contains a face). The response also provides a similarity score, which indicates how closely the faces match.  <note> By default, only faces with a similarity score of greater than or equal to 80% are returned in the response. You can change this value by specifying the <code>SimilarityThreshold</code> parameter. </note>  <code>CompareFaces</code> also returns an array of faces that don't match the source image. For each face, it returns a bounding box, confidence value, landmarks, pose details, and quality. The response also returns information about the face in the source image, including the bounding box of the face and confidence value. The <code>QualityFilter</code> input parameter allows you to filter out detected faces that don’t meet a required quality bar. The quality bar is based on a variety of common use cases. Use <code>QualityFilter</code> to set the quality bar by specifying <code>LOW</code>, <code>MEDIUM</code>, or <code>HIGH</code>. If you do not want to filter detected faces, specify <code>NONE</code>. The default value is <code>NONE</code>.  If the image doesn't contain Exif metadata, <code>CompareFaces</code> returns orientation information for the source and target images. Use these values to display the images with the correct image orientation. If no faces are detected in the source or target images, <code>CompareFaces</code> returns an <code>InvalidParameterException</code> error.  <note>  This is a stateless API operation. That is, data returned by this operation doesn't persist. </note> For an example, see Comparing Faces in Images in the Amazon Rekognition Developer Guide. This operation requires permissions to perform the <code>rekognition:CompareFaces</code> action.

        :param self:
        :param QualityFilter:  A filter that specifies a quality bar for how much filtering is done to identify faces. Filtered faces aren't compared. If you specify <code>AUTO</code>, Amazon Rekognition chooses the quality bar. If you specify <code>LOW</code>, <code>MEDIUM</code>, or <code>HIGH</code>, filtering removes all faces that don’t meet the chosen quality bar. The quality bar is based on a variety of common use cases. Low-quality detections can occur for a number of reasons. Some examples are an object that's misidentified as a face, a face that's too blurry, or a face with a pose that's too extreme to use. If you specify <code>NONE</code>, no filtering is performed. The default value is <code>NONE</code>.  To use quality filtering, the collection you are using must be associated with version 3 of the face model or higher.<br/>SimilarityThreshold:  The minimum level of confidence in the face matches that a match must meet to be included in the <code>FaceMatches</code> array.<br/>TargetImage:  The target image as base64-encoded bytes or an S3 object. If you use the AWS CLI to call Amazon Rekognition operations, passing base64-encoded image bytes is not supported.  If you are using an AWS SDK to call Amazon Rekognition, you might not need to base64-encode image bytes passed using the <code>Bytes</code> field. For more information, see Images in the Amazon Rekognition developer guide.:<br/>SourceImage:  The input image as base64-encoded bytes or an S3 object. If you use the AWS CLI to call Amazon Rekognition operations, passing base64-encoded image bytes is not supported.  If you are using an AWS SDK to call Amazon Rekognition, you might not need to base64-encode image bytes passed using the <code>Bytes</code> field. For more information, see Images in the Amazon Rekognition developer guide.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Object</i> Identifies an S3 object as the image source.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3Object</b>: Identifies an S3 object as the image source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Bytes</i> Blob of image bytes up to 5 MBs.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> If the bucket is versioning enabled, you can specify the object version. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> S3 object key name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i> Name of the S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Object</i> Identifies an S3 object as the image source.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3Object</b>: Identifies an S3 object as the image source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Bytes</i> Blob of image bytes up to 5 MBs.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> If the bucket is versioning enabled, you can specify the object version. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> S3 object key name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i> Name of the S3 bucket.<br/>
        :return: TargetImageOrientationCorrection:  The value of <code>TargetImageOrientationCorrection</code> is always null. If the input image is in .jpeg format, it might contain exchangeable image file format (Exif) metadata that includes the image's orientation. Amazon Rekognition uses this orientation information to perform image correction. The bounding box coordinates are translated to represent object locations after the orientation information in the Exif metadata is used to correct the image orientation. Images in .png format don't contain Exif metadata. Amazon Rekognition doesn’t perform image correction for images in .png format and .jpeg images without orientation information in the image Exif metadata. The bounding box coordinates aren't translated and represent the object locations before the image is rotated. <br/>SourceImageOrientationCorrection:  The value of <code>SourceImageOrientationCorrection</code> is always null. If the input image is in .jpeg format, it might contain exchangeable image file format (Exif) metadata that includes the image's orientation. Amazon Rekognition uses this orientation information to perform image correction. The bounding box coordinates are translated to represent object locations after the orientation information in the Exif metadata is used to correct the image orientation. Images in .png format don't contain Exif metadata. Amazon Rekognition doesn’t perform image correction for images in .png format and .jpeg images without orientation information in the image Exif metadata. The bounding box coordinates aren't translated and represent the object locations before the image is rotated. <br/>UnmatchedFaces:  An array of faces in the target image that did not match the source image face.<br/>FaceMatches:  An array of faces in the target image that match the source image face. Each <code>CompareFacesMatch</code> object provides the bounding box, the confidence level that the bounding box contains a face, and the similarity score for the face in the bounding box and the face in the source image.<br/>SourceImageFace:  The face in the source image that was used for comparison.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Confidence</i> Confidence level that the selected bounding box contains a face.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BoundingBox</i> Bounding box of the face.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>BoundingBox</b>: Bounding box of the face.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Top</i> Top coordinate of the bounding box as a ratio of overall image height.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Left</i> Left coordinate of the bounding box as a ratio of overall image width.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Height</i> Height of the bounding box as a ratio of the overall image height.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Width</i> Width of the bounding box as a ratio of the overall image width.<br/>        """
        pass

    def create_collection(self, CollectionId: str, Tags: TagMap=None) -> CreateCollectionResponse:
        r"""Creates a collection in an AWS Region. You can add faces to the collection using the <a>IndexFaces</a> operation.  For example, you might create collections, one for each of your application users. A user can then index faces using the <code>IndexFaces</code> operation and persist results in a specific collection. Then, a user can search the collection for faces in the user-specific container.  When you create a collection, it is associated with the latest version of the face model version. <note> Collection names are case-sensitive. </note> This operation requires permissions to perform the <code>rekognition:CreateCollection</code> action. If you want to tag your collection, you also require permission to perform the <code>rekognition:TagResource</code> operation.

        :param self:
        :param Tags:   A set of tags (key-value pairs) that you want to attach to the collection. <br/>CollectionId:  ID for the collection that you are creating.<br/>
        :return: FaceModelVersion:  Version number of the face detection model associated with the collection you are creating.<br/>CollectionArn:  Amazon Resource Name (ARN) of the collection. You can use this to manage permissions on your resources. <br/>StatusCode:  HTTP status code indicating the result of the operation.<br/>        """
        pass

    def create_project(self, ProjectName: str) -> CreateProjectResponse:
        r"""Creates a new Amazon Rekognition Custom Labels project. A project is a logical grouping of resources (images, Labels, models) and operations (training, evaluation and detection).  This operation requires permissions to perform the <code>rekognition:CreateProject</code> action.

        :param self:
        :param ProjectName:  The name of the project to create.<br/>
        :return: ProjectArn:  The Amazon Resource Name (ARN) of the new project. You can use the ARN to configure IAM access to the project. <br/>        """
        pass

    def create_project_version(self, TestingData: TestingData, TrainingData: TrainingData, OutputConfig: OutputConfig, VersionName: str, ProjectArn: str, Tags: TagMap=None, KmsKeyId: str=None) -> CreateProjectVersionResponse:
        r"""Creates a new version of a model and begins training. Models are managed as part of an Amazon Rekognition Custom Labels project. You can specify one training dataset and one testing dataset. The response from <code>CreateProjectVersion</code> is an Amazon Resource Name (ARN) for the version of the model.  Training takes a while to complete. You can get the current status by calling <a>DescribeProjectVersions</a>. Once training has successfully completed, call <a>DescribeProjectVersions</a> to get the training results and evaluate the model.  After evaluating the model, you start the model by calling <a>StartProjectVersion</a>. This operation requires permissions to perform the <code>rekognition:CreateProjectVersion</code> action.

        :param self:
        :param KmsKeyId:  The identifier for your AWS Key Management Service (AWS KMS) customer master key (CMK). You can supply the Amazon Resource Name (ARN) of your CMK, the ID of your CMK, or an alias for your CMK. The key is used to encrypt training and test images copied into the service for model training. Your source images are unaffected. The key is also used to encrypt training results and manifest files written to the output Amazon S3 bucket (<code>OutputConfig</code>). If you don't specify a value for <code>KmsKeyId</code>, images copied into the service are encrypted using a key that AWS owns and manages.<br/>Tags:   A set of tags (key-value pairs) that you want to attach to the model. <br/>TestingData:  The dataset to use for testing.:<br/>TrainingData:  The dataset to use for training. :<br/>OutputConfig:  The Amazon S3 location to store the results of training.:<br/>VersionName:  A name for the version of the model. This value must be unique.<br/>ProjectArn:  The ARN of the Amazon Rekognition Custom Labels project that manages the model that you want to train.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3KeyPrefix</i> The prefix applied to the training output files. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Bucket</i> The S3 bucket where training output is placed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Assets</i> A Sagemaker GroundTruth manifest file that contains the training images (assets).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoCreate</i> If specified, Amazon Rekognition Custom Labels creates a testing dataset with an 80/20 split of the training dataset.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Assets</i> The assets used for testing.<br/>
        :return: ProjectVersionArn:  The ARN of the model version that was created. Use <code>DescribeProjectVersion</code> to get the current status of the training operation.<br/>        """
        pass

    def create_stream_processor(self, RoleArn: str, Settings: StreamProcessorSettings, Name: str, Output: StreamProcessorOutput, Input: StreamProcessorInput, Tags: TagMap=None) -> CreateStreamProcessorResponse:
        r"""Creates an Amazon Rekognition stream processor that you can use to detect and recognize faces in a streaming video. Amazon Rekognition Video is a consumer of live video from Amazon Kinesis Video Streams. Amazon Rekognition Video sends analysis results to Amazon Kinesis Data Streams. You provide as input a Kinesis video stream (<code>Input</code>) and a Kinesis data stream (<code>Output</code>) stream. You also specify the face recognition criteria in <code>Settings</code>. For example, the collection containing faces that you want to recognize. Use <code>Name</code> to assign an identifier for the stream processor. You use <code>Name</code> to manage the stream processor. For example, you can start processing the source video by calling <a>StartStreamProcessor</a> with the <code>Name</code> field.  After you have finished analyzing a streaming video, use <a>StopStreamProcessor</a> to stop processing. You can delete the stream processor by calling <a>DeleteStreamProcessor</a>. This operation requires permissions to perform the <code>rekognition:CreateStreamProcessor</code> action. If you want to tag your stream processor, you also require permission to perform the <code>rekognition:TagResource</code> operation.

        :param self:
        :param Tags:   A set of tags (key-value pairs) that you want to attach to the stream processor. <br/>RoleArn:  ARN of the IAM role that allows access to the stream processor.<br/>Settings:  Face recognition input parameters to be used by the stream processor. Includes the collection to use for face recognition and the face attributes to detect.:<br/>Name:  An identifier you assign to the stream processor. You can use <code>Name</code> to manage the stream processor. For example, you can get the current status of the stream processor by calling <a>DescribeStreamProcessor</a>. <code>Name</code> is idempotent. <br/>Output:  Kinesis data stream stream to which Amazon Rekognition Video puts the analysis results. If you are using the AWS CLI, the parameter name is <code>StreamProcessorOutput</code>.:<br/>Input:  Kinesis video stream stream that provides the source streaming video. If you are using the AWS CLI, the parameter name is <code>StreamProcessorInput</code>.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KinesisVideoStream</i> The Kinesis video stream input stream for the source streaming video.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>KinesisVideoStream</b>: The Kinesis video stream input stream for the source streaming video.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> ARN of the Kinesis video stream stream that streams the source video.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KinesisDataStream</i> The Amazon Kinesis Data Streams stream to which the Amazon Rekognition stream processor streams the analysis results.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>KinesisDataStream</b>: The Amazon Kinesis Data Streams stream to which the Amazon Rekognition stream processor streams the analysis results.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> ARN of the output Amazon Kinesis Data Streams stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FaceSearch</i> Face search settings to use on a streaming video. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>FaceSearch</b>: Face search settings to use on a streaming video. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FaceMatchThreshold</i> Minimum face match confidence score that must be met to return a result for a recognized face. Default is 80. 0 is the lowest confidence. 100 is the highest confidence.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CollectionId</i> The ID of a collection that contains faces that you want to search for.<br/>
        :return: StreamProcessorArn:  ARN for the newly create stream processor.<br/>        """
        pass

    def delete_collection(self, CollectionId: str) -> DeleteCollectionResponse:
        r"""Deletes the specified collection. Note that this operation removes all faces in the collection. For an example, see <a>delete-collection-procedure</a>. This operation requires permissions to perform the <code>rekognition:DeleteCollection</code> action.

        :param self:
        :param CollectionId:  ID of the collection to delete.<br/>
        :return: StatusCode:  HTTP status code that indicates the result of the operation.<br/>        """
        pass

    def delete_faces(self, FaceIds: List[FaceId], CollectionId: str) -> DeleteFacesResponse:
        r"""Deletes faces from a collection. You specify a collection ID and an array of face IDs to remove from the collection. This operation requires permissions to perform the <code>rekognition:DeleteFaces</code> action.

        :param self:
        :param FaceIds:  An array of face IDs to delete.<br/>CollectionId:  Collection from which to remove the specific faces.<br/>
        :return: DeletedFaces:  An array of strings (face IDs) of the faces that were deleted.<br/>        """
        pass

    def delete_project(self, ProjectArn: str) -> DeleteProjectResponse:
        r"""Deletes an Amazon Rekognition Custom Labels project. To delete a project you must first delete all models associated with the project. To delete a model, see <a>DeleteProjectVersion</a>. This operation requires permissions to perform the <code>rekognition:DeleteProject</code> action. 

        :param self:
        :param ProjectArn:  The Amazon Resource Name (ARN) of the project that you want to delete.<br/>
        :return: Status:  The current status of the delete project operation.<br/>        """
        pass

    def delete_project_version(self, ProjectVersionArn: str) -> DeleteProjectVersionResponse:
        r"""Deletes an Amazon Rekognition Custom Labels model.  You can't delete a model if it is running or if it is training. To check the status of a model, use the <code>Status</code> field returned from <a>DescribeProjectVersions</a>. To stop a running model call <a>StopProjectVersion</a>. If the model is training, wait until it finishes. This operation requires permissions to perform the <code>rekognition:DeleteProjectVersion</code> action. 

        :param self:
        :param ProjectVersionArn:  The Amazon Resource Name (ARN) of the model version that you want to delete.<br/>
        :return: Status:  The status of the deletion operation.<br/>        """
        pass

    def delete_stream_processor(self, Name: str) -> DeleteStreamProcessorResponse:
        r"""Deletes the stream processor identified by <code>Name</code>. You assign the value for <code>Name</code> when you create the stream processor with <a>CreateStreamProcessor</a>. You might not be able to use the same name for a stream processor for a few seconds after calling <code>DeleteStreamProcessor</code>.

        :param self:
        :param Name:  The name of the stream processor you want to delete.<br/>
        :return:         """
        pass

    def describe_collection(self, CollectionId: str) -> DescribeCollectionResponse:
        r"""Describes the specified collection. You can use <code>DescribeCollection</code> to get information, such as the number of faces indexed into a collection and the version of the model used by the collection for face detection. For more information, see Describing a Collection in the Amazon Rekognition Developer Guide.

        :param self:
        :param CollectionId:  The ID of the collection to describe.<br/>
        :return: CreationTimestamp:  The number of milliseconds since the Unix epoch time until the creation of the collection. The Unix epoch time is 00:00:00 Coordinated Universal Time (UTC), Thursday, 1 January 1970.<br/>CollectionARN:  The Amazon Resource Name (ARN) of the collection.<br/>FaceModelVersion:  The version of the face model that's used by the collection for face detection. For more information, see Model Versioning in the Amazon Rekognition Developer Guide.<br/>FaceCount:  The number of faces that are indexed into the collection. To index faces into a collection, use <a>IndexFaces</a>.<br/>        """
        pass

    def describe_project_versions(self, ProjectArn: str, VersionNames: List[VersionName]=None, NextToken: str=None, MaxResults: int=None) -> DescribeProjectVersionsResponse:
        r"""Lists and describes the models in an Amazon Rekognition Custom Labels project. You can specify up to 10 model versions in <code>ProjectVersionArns</code>. If you don't specify a value, descriptions for all models are returned. This operation requires permissions to perform the <code>rekognition:DescribeProjectVersions</code> action.

        :param self:
        :param MaxResults:  The maximum number of results to return per paginated call. The largest value you can specify is 100. If you specify a value greater than 100, a ValidationException error occurs. The default value is 100. <br/>NextToken:  If the previous response was incomplete (because there is more results to retrieve), Amazon Rekognition Custom Labels returns a pagination token in the response. You can use this pagination token to retrieve the next set of results. <br/>VersionNames:  A list of model version names that you want to describe. You can add up to 10 model version names to the list. If you don't specify a value, all model descriptions are returned. A version name is part of a model (ProjectVersion) ARN. For example, <code>my-model.2020-01-21T09.10.15</code> is the version name in the following ARN. <code>arn:aws:rekognition:us-east-1:123456789012:project/getting-started/version/<i>my-model.2020-01-21T09.10.15</i>/1234567890123</code>.<br/>ProjectArn:  The Amazon Resource Name (ARN) of the project that contains the models you want to describe.<br/>
        :return: NextToken:  If the previous response was incomplete (because there is more results to retrieve), Amazon Rekognition Custom Labels returns a pagination token in the response. You can use this pagination token to retrieve the next set of results. <br/>ProjectVersionDescriptions:  A list of model descriptions. The list is sorted by the creation date and time of the model versions, latest to earliest.<br/>        """
        pass

    def describe_projects(self, NextToken: str=None, MaxResults: int=None) -> DescribeProjectsResponse:
        r"""Lists and gets information about your Amazon Rekognition Custom Labels projects. This operation requires permissions to perform the <code>rekognition:DescribeProjects</code> action.

        :param self:
        :param MaxResults:  The maximum number of results to return per paginated call. The largest value you can specify is 100. If you specify a value greater than 100, a ValidationException error occurs. The default value is 100. <br/>NextToken:  If the previous response was incomplete (because there is more results to retrieve), Amazon Rekognition Custom Labels returns a pagination token in the response. You can use this pagination token to retrieve the next set of results. <br/>
        :return: NextToken:  If the previous response was incomplete (because there is more results to retrieve), Amazon Rekognition Custom Labels returns a pagination token in the response. You can use this pagination token to retrieve the next set of results. <br/>ProjectDescriptions:  A list of project descriptions. The list is sorted by the date and time the projects are created.<br/>        """
        pass

    def describe_stream_processor(self, Name: str) -> DescribeStreamProcessorResponse:
        r"""Provides information about a stream processor created by <a>CreateStreamProcessor</a>. You can get information about the input and output streams, the input parameters for the face recognition being performed, and the current status of the stream processor.

        :param self:
        :param Name:  Name of the stream processor for which you want information.<br/>
        :return: Settings:  Face recognition input parameters that are being used by the stream processor. Includes the collection to use for face recognition and the face attributes to detect.:<br/>RoleArn:  ARN of the IAM role that allows access to the stream processor.<br/>Output:  Kinesis data stream to which Amazon Rekognition Video puts the analysis results.:<br/>Input:  Kinesis video stream that provides the source streaming video.:<br/>LastUpdateTimestamp:  The time, in Unix format, the stream processor was last updated. For example, when the stream processor moves from a running state to a failed state, or when the user starts or stops the stream processor.<br/>CreationTimestamp:  Date and time the stream processor was created<br/>StatusMessage:  Detailed status message about the stream processor.<br/>Status:  Current status of the stream processor.<br/>StreamProcessorArn:  ARN of the stream processor.<br/>Name:  Name of the stream processor. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KinesisVideoStream</i> The Kinesis video stream input stream for the source streaming video.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>KinesisVideoStream</b>: The Kinesis video stream input stream for the source streaming video.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> ARN of the Kinesis video stream stream that streams the source video.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KinesisDataStream</i> The Amazon Kinesis Data Streams stream to which the Amazon Rekognition stream processor streams the analysis results.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>KinesisDataStream</b>: The Amazon Kinesis Data Streams stream to which the Amazon Rekognition stream processor streams the analysis results.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> ARN of the output Amazon Kinesis Data Streams stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FaceSearch</i> Face search settings to use on a streaming video. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>FaceSearch</b>: Face search settings to use on a streaming video. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FaceMatchThreshold</i> Minimum face match confidence score that must be met to return a result for a recognized face. Default is 80. 0 is the lowest confidence. 100 is the highest confidence.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CollectionId</i> The ID of a collection that contains faces that you want to search for.<br/>        """
        pass

    def detect_custom_labels(self, Image: Image, ProjectVersionArn: str, MaxResults: int=None, MinConfidence: Percent=None) -> DetectCustomLabelsResponse:
        r"""Detects custom labels in a supplied image by using an Amazon Rekognition Custom Labels model.  You specify which version of a model version to use by using the <code>ProjectVersionArn</code> input parameter.  You pass the input image as base64-encoded image bytes or as a reference to an image in an Amazon S3 bucket. If you use the AWS CLI to call Amazon Rekognition operations, passing image bytes is not supported. The image must be either a PNG or JPEG formatted file.   For each object that the model version detects on an image, the API returns a (<code>CustomLabel</code>) object in an array (<code>CustomLabels</code>). Each <code>CustomLabel</code> object provides the label name (<code>Name</code>), the level of confidence that the image contains the object (<code>Confidence</code>), and object location information, if it exists, for the label on the image (<code>Geometry</code>).  During training model calculates a threshold value that determines if a prediction for a label is true. By default, <code>DetectCustomLabels</code> doesn't return labels whose confidence value is below the model's calculated threshold value. To filter labels that are returned, specify a value for <code>MinConfidence</code> that is higher than the model's calculated threshold. You can get the model's calculated threshold from the model's training results shown in the Amazon Rekognition Custom Labels console. To get all labels, regardless of confidence, specify a <code>MinConfidence</code> value of 0.  You can also add the <code>MaxResults</code> parameter to limit the number of labels returned.  This is a stateless API operation. That is, the operation does not persist any data. This operation requires permissions to perform the <code>rekognition:DetectCustomLabels</code> action. 

        :param self:
        :param MinConfidence:  Specifies the minimum confidence level for the labels to return. Amazon Rekognition doesn't return any labels with a confidence lower than this specified value. If you specify a value of 0, all labels are return, regardless of the default thresholds that the model version applies.<br/>MaxResults:  Maximum number of results you want the service to return in the response. The service returns the specified number of highest confidence labels ranked from highest confidence to lowest.<br/>Image:  Provides the input image either as bytes or an S3 object. You pass image bytes to an Amazon Rekognition API operation by using the <code>Bytes</code> property. For example, you would use the <code>Bytes</code> property to pass an image loaded from a local file system. Image bytes passed by using the <code>Bytes</code> property must be base64-encoded. Your code may not need to encode image bytes if you are using an AWS SDK to call Amazon Rekognition API operations.  For more information, see Analyzing an Image Loaded from a Local File System in the Amazon Rekognition Developer Guide.  You pass images stored in an S3 bucket to an Amazon Rekognition API operation by using the <code>S3Object</code> property. Images stored in an S3 bucket do not need to be base64-encoded. The region for the S3 bucket containing the S3 object must match the region you use for Amazon Rekognition operations. If you use the AWS CLI to call Amazon Rekognition operations, passing image bytes using the Bytes property is not supported. You must first upload the image to an Amazon S3 bucket and then call the operation using the S3Object property. For Amazon Rekognition to process an S3 object, the user must have permission to access the S3 object. For more information, see Resource Based Policies in the Amazon Rekognition Developer Guide. :<br/>ProjectVersionArn:  The ARN of the model version that you want to use.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Object</i> Identifies an S3 object as the image source.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3Object</b>: Identifies an S3 object as the image source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Bytes</i> Blob of image bytes up to 5 MBs.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> If the bucket is versioning enabled, you can specify the object version. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> S3 object key name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i> Name of the S3 bucket.<br/>
        :return: CustomLabels:  An array of custom labels detected in the input image.<br/>        """
        pass

    def detect_faces(self, Image: Image, Attributes: List[Attribute]=None) -> DetectFacesResponse:
        r"""Detects faces within an image that is provided as input.  <code>DetectFaces</code> detects the 100 largest faces in the image. For each face detected, the operation returns face details. These details include a bounding box of the face, a confidence value (that the bounding box contains a face), and a fixed set of attributes such as facial landmarks (for example, coordinates of eye and mouth), presence of beard, sunglasses, and so on.  The face-detection algorithm is most effective on frontal faces. For non-frontal or obscured faces, the algorithm might not detect the faces or might detect faces with lower confidence.  You pass the input image either as base64-encoded image bytes or as a reference to an image in an Amazon S3 bucket. If you use the AWS CLI to call Amazon Rekognition operations, passing image bytes is not supported. The image must be either a PNG or JPEG formatted file.  <note> This is a stateless API operation. That is, the operation does not persist any data. </note> This operation requires permissions to perform the <code>rekognition:DetectFaces</code> action. 

        :param self:
        :param Attributes:  An array of facial attributes you want to be returned. This can be the default list of attributes or all attributes. If you don't specify a value for <code>Attributes</code> or if you specify <code>["DEFAULT"]</code>, the API returns the following subset of facial attributes: <code>BoundingBox</code>, <code>Confidence</code>, <code>Pose</code>, <code>Quality</code>, and <code>Landmarks</code>. If you provide <code>["ALL"]</code>, all facial attributes are returned, but the operation takes longer to complete. If you provide both, <code>["ALL", "DEFAULT"]</code>, the service uses a logical AND operator to determine which attributes to return (in this case, all attributes). <br/>Image:  The input image as base64-encoded bytes or an S3 object. If you use the AWS CLI to call Amazon Rekognition operations, passing base64-encoded image bytes is not supported.  If you are using an AWS SDK to call Amazon Rekognition, you might not need to base64-encode image bytes passed using the <code>Bytes</code> field. For more information, see Images in the Amazon Rekognition developer guide.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Object</i> Identifies an S3 object as the image source.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3Object</b>: Identifies an S3 object as the image source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Bytes</i> Blob of image bytes up to 5 MBs.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> If the bucket is versioning enabled, you can specify the object version. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> S3 object key name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i> Name of the S3 bucket.<br/>
        :return: OrientationCorrection:  The value of <code>OrientationCorrection</code> is always null. If the input image is in .jpeg format, it might contain exchangeable image file format (Exif) metadata that includes the image's orientation. Amazon Rekognition uses this orientation information to perform image correction. The bounding box coordinates are translated to represent object locations after the orientation information in the Exif metadata is used to correct the image orientation. Images in .png format don't contain Exif metadata. Amazon Rekognition doesn’t perform image correction for images in .png format and .jpeg images without orientation information in the image Exif metadata. The bounding box coordinates aren't translated and represent the object locations before the image is rotated. <br/>FaceDetails:  Details of each face found in the image. <br/>        """
        pass

    def detect_labels(self, Image: Image, MaxLabels: int=None, MinConfidence: Percent=None) -> DetectLabelsResponse:
        r"""Detects instances of real-world entities within an image (JPEG or PNG) provided as input. This includes objects like flower, tree, and table; events like wedding, graduation, and birthday party; and concepts like landscape, evening, and nature.  For an example, see Analyzing Images Stored in an Amazon S3 Bucket in the Amazon Rekognition Developer Guide. <note>  <code>DetectLabels</code> does not support the detection of activities. However, activity detection is supported for label detection in videos. For more information, see StartLabelDetection in the Amazon Rekognition Developer Guide. </note> You pass the input image as base64-encoded image bytes or as a reference to an image in an Amazon S3 bucket. If you use the AWS CLI to call Amazon Rekognition operations, passing image bytes is not supported. The image must be either a PNG or JPEG formatted file.   For each object, scene, and concept the API returns one or more labels. Each label provides the object name, and the level of confidence that the image contains the object. For example, suppose the input image has a lighthouse, the sea, and a rock. The response includes all three labels, one for each object.   <code>{Name: lighthouse, Confidence: 98.4629}</code>   <code>{Name: rock,Confidence: 79.2097}</code>   <code> {Name: sea,Confidence: 75.061}</code>  In the preceding example, the operation returns one label for each of the three objects. The operation can also return multiple labels for the same object in the image. For example, if the input image shows a flower (for example, a tulip), the operation might return the following three labels.   <code>{Name: flower,Confidence: 99.0562}</code>   <code>{Name: plant,Confidence: 99.0562}</code>   <code>{Name: tulip,Confidence: 99.0562}</code>  In this example, the detection algorithm more precisely identifies the flower as a tulip. In response, the API returns an array of labels. In addition, the response also includes the orientation correction. Optionally, you can specify <code>MinConfidence</code> to control the confidence threshold for the labels returned. The default is 55%. You can also add the <code>MaxLabels</code> parameter to limit the number of labels returned.  <note> If the object detected is a person, the operation doesn't provide the same facial details that the <a>DetectFaces</a> operation provides. </note>  <code>DetectLabels</code> returns bounding boxes for instances of common object labels in an array of <a>Instance</a> objects. An <code>Instance</code> object contains a <a>BoundingBox</a> object, for the location of the label on the image. It also includes the confidence by which the bounding box was detected.  <code>DetectLabels</code> also returns a hierarchical taxonomy of detected labels. For example, a detected car might be assigned the label <i>car</i>. The label <i>car</i> has two parent labels: <i>Vehicle</i> (its parent) and <i>Transportation</i> (its grandparent). The response returns the entire list of ancestors for a label. Each ancestor is a unique label in the response. In the previous example, <i>Car</i>, <i>Vehicle</i>, and <i>Transportation</i> are returned as unique labels in the response.  This is a stateless API operation. That is, the operation does not persist any data. This operation requires permissions to perform the <code>rekognition:DetectLabels</code> action. 

        :param self:
        :param MinConfidence:  Specifies the minimum confidence level for the labels to return. Amazon Rekognition doesn't return any labels with confidence lower than this specified value. If <code>MinConfidence</code> is not specified, the operation returns labels with a confidence values greater than or equal to 55 percent.<br/>MaxLabels:  Maximum number of labels you want the service to return in the response. The service returns the specified number of highest confidence labels. <br/>Image:  The input image as base64-encoded bytes or an S3 object. If you use the AWS CLI to call Amazon Rekognition operations, passing image bytes is not supported. Images stored in an S3 Bucket do not need to be base64-encoded. If you are using an AWS SDK to call Amazon Rekognition, you might not need to base64-encode image bytes passed using the <code>Bytes</code> field. For more information, see Images in the Amazon Rekognition developer guide.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Object</i> Identifies an S3 object as the image source.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3Object</b>: Identifies an S3 object as the image source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Bytes</i> Blob of image bytes up to 5 MBs.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> If the bucket is versioning enabled, you can specify the object version. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> S3 object key name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i> Name of the S3 bucket.<br/>
        :return: LabelModelVersion:  Version number of the label detection model that was used to detect labels.<br/>OrientationCorrection:  The value of <code>OrientationCorrection</code> is always null. If the input image is in .jpeg format, it might contain exchangeable image file format (Exif) metadata that includes the image's orientation. Amazon Rekognition uses this orientation information to perform image correction. The bounding box coordinates are translated to represent object locations after the orientation information in the Exif metadata is used to correct the image orientation. Images in .png format don't contain Exif metadata. Amazon Rekognition doesn’t perform image correction for images in .png format and .jpeg images without orientation information in the image Exif metadata. The bounding box coordinates aren't translated and represent the object locations before the image is rotated. <br/>Labels:  An array of labels for the real-world objects detected. <br/>        """
        pass

    def detect_moderation_labels(self, Image: Image, MinConfidence: Percent=None, HumanLoopConfig: HumanLoopConfig=None) -> DetectModerationLabelsResponse:
        r"""Detects unsafe content in a specified JPEG or PNG format image. Use <code>DetectModerationLabels</code> to moderate images depending on your requirements. For example, you might want to filter images that contain nudity, but not images containing suggestive content. To filter images, use the labels returned by <code>DetectModerationLabels</code> to determine which types of content are appropriate. For information about moderation labels, see Detecting Unsafe Content in the Amazon Rekognition Developer Guide. You pass the input image either as base64-encoded image bytes or as a reference to an image in an Amazon S3 bucket. If you use the AWS CLI to call Amazon Rekognition operations, passing image bytes is not supported. The image must be either a PNG or JPEG formatted file. 

        :param self:
        :param HumanLoopConfig:  Sets up the configuration for human evaluation, including the FlowDefinition the image will be sent to.:<br/>MinConfidence:  Specifies the minimum confidence level for the labels to return. Amazon Rekognition doesn't return any labels with a confidence level lower than this specified value. If you don't specify <code>MinConfidence</code>, the operation returns labels with confidence values greater than or equal to 50 percent.<br/>Image:  The input image as base64-encoded bytes or an S3 object. If you use the AWS CLI to call Amazon Rekognition operations, passing base64-encoded image bytes is not supported.  If you are using an AWS SDK to call Amazon Rekognition, you might not need to base64-encode image bytes passed using the <code>Bytes</code> field. For more information, see Images in the Amazon Rekognition developer guide.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Object</i> Identifies an S3 object as the image source.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3Object</b>: Identifies an S3 object as the image source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Bytes</i> Blob of image bytes up to 5 MBs.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> If the bucket is versioning enabled, you can specify the object version. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> S3 object key name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i> Name of the S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataAttributes</i> Sets attributes of the input data.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DataAttributes</b>: Sets attributes of the input data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FlowDefinitionArn</i> The Amazon Resource Name (ARN) of the flow definition. You can create a flow definition by using the Amazon Sagemaker <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/API_CreateFlowDefinition.html">CreateFlowDefinition</a> Operation. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HumanLoopName</i> The name of the human review used for this image. This should be kept unique within a region.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ContentClassifiers</i> Sets whether the input image is free of personally identifiable information.<br/>
        :return: HumanLoopActivationOutput:  Shows the results of the human in the loop evaluation.:<br/>ModerationModelVersion:  Version number of the moderation detection model that was used to detect unsafe content.<br/>ModerationLabels:  Array of detected Moderation labels and the time, in milliseconds from the start of the video, they were detected.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HumanLoopActivationConditionsEvaluationResults</i> Shows the result of condition evaluations, including those conditions which activated a human review.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HumanLoopActivationReasons</i> Shows if and why human review was needed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HumanLoopArn</i> The Amazon Resource Name (ARN) of the HumanLoop created.<br/>        """
        pass

    def detect_protective_equipment(self, Image: Image, SummarizationAttributes: ProtectiveEquipmentSummarizationAttributes=None) -> DetectProtectiveEquipmentResponse:
        r"""Detects Personal Protective Equipment (PPE) worn by people detected in an image. Amazon Rekognition can detect the following types of PPE. <ul> <li> Face cover </li> <li> Hand cover </li> <li> Head cover </li> </ul> You pass the input image as base64-encoded image bytes or as a reference to an image in an Amazon S3 bucket. The image must be either a PNG or JPG formatted file.   <code>DetectProtectiveEquipment</code> detects PPE worn by up to 15 persons detected in an image. For each person detected in the image the API returns an array of body parts (face, head, left-hand, right-hand). For each body part, an array of detected items of PPE is returned, including an indicator of whether or not the PPE covers the body part. The API returns the confidence it has in each detection (person, PPE, body part and body part coverage). It also returns a bounding box (<a>BoundingBox</a>) for each detected person and each detected item of PPE.  You can optionally request a summary of detected PPE items with the <code>SummarizationAttributes</code> input parameter. The summary provides the following information.  <ul> <li> The persons detected as wearing all of the types of PPE that you specify. </li> <li> The persons detected as not wearing all of the types PPE that you specify. </li> <li> The persons detected where PPE adornment could not be determined.  </li> </ul> This is a stateless API operation. That is, the operation does not persist any data. This operation requires permissions to perform the <code>rekognition:DetectProtectiveEquipment</code> action. 

        :param self:
        :param SummarizationAttributes:  An array of PPE types that you want to summarize.:<br/>Image:  The image in which you want to detect PPE on detected persons. The image can be passed as image bytes or you can reference an image stored in an Amazon S3 bucket. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Object</i> Identifies an S3 object as the image source.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3Object</b>: Identifies an S3 object as the image source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Bytes</i> Blob of image bytes up to 5 MBs.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> If the bucket is versioning enabled, you can specify the object version. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> S3 object key name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i> Name of the S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequiredEquipmentTypes</i> An array of personal protective equipment types for which you want summary information. If a person is detected wearing a required requipment type, the person's ID is added to the <code>PersonsWithRequiredEquipment</code> array field returned in <a>ProtectiveEquipmentSummary</a> by <code>DetectProtectiveEquipment</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MinConfidence</i> The minimum confidence level for which you want summary information. The confidence level applies to person detection, body part detection, equipment detection, and body part coverage. Amazon Rekognition doesn't return summary information with a confidence than this specified value. There isn't a default value. Specify a <code>MinConfidence</code> value that is between 50-100% as <code>DetectProtectiveEquipment</code> returns predictions only where the detection confidence is between 50% - 100%. If you specify a value that is less than 50%, the results are the same specifying a value of 50%.  <br/>
        :return: Summary:  Summary information for the types of PPE specified in the <code>SummarizationAttributes</code> input parameter.:<br/>Persons:  An array of persons detected in the image (including persons not wearing PPE).<br/>ProtectiveEquipmentModelVersion:  The version number of the PPE detection model used to detect PPE in the image.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PersonsIndeterminate</i> An array of IDs for persons where it was not possible to determine if they are wearing personal protective equipment. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PersonsWithoutRequiredEquipment</i> An array of IDs for persons who are not wearing all of the types of PPE specified in the <code>RequiredEquipmentTypes</code> field of the detected personal protective equipment. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PersonsWithRequiredEquipment</i> An array of IDs for persons who are wearing detected personal protective equipment. <br/>        """
        pass

    def detect_text(self, Image: Image, Filters: DetectTextFilters=None) -> DetectTextResponse:
        r"""Detects text in the input image and converts it into machine-readable text. Pass the input image as base64-encoded image bytes or as a reference to an image in an Amazon S3 bucket. If you use the AWS CLI to call Amazon Rekognition operations, you must pass it as a reference to an image in an Amazon S3 bucket. For the AWS CLI, passing image bytes is not supported. The image must be either a .png or .jpeg formatted file.  The <code>DetectText</code> operation returns text in an array of <a>TextDetection</a> elements, <code>TextDetections</code>. Each <code>TextDetection</code> element provides information about a single word or line of text that was detected in the image.  A word is one or more ISO basic latin script characters that are not separated by spaces. <code>DetectText</code> can detect up to 50 words in an image. A line is a string of equally spaced words. A line isn't necessarily a complete sentence. For example, a driver's license number is detected as a line. A line ends when there is no aligned text after it. Also, a line ends when there is a large gap between words, relative to the length of the words. This means, depending on the gap between words, Amazon Rekognition may detect multiple lines in text aligned in the same direction. Periods don't represent the end of a line. If a sentence spans multiple lines, the <code>DetectText</code> operation returns multiple lines. To determine whether a <code>TextDetection</code> element is a line of text or a word, use the <code>TextDetection</code> object <code>Type</code> field.  To be detected, text must be within +/- 90 degrees orientation of the horizontal axis. For more information, see DetectText in the Amazon Rekognition Developer Guide.

        :param self:
        :param Filters:  Optional parameters that let you set the criteria that the text must meet to be included in your response.:<br/>Image:  The input image as base64-encoded bytes or an Amazon S3 object. If you use the AWS CLI to call Amazon Rekognition operations, you can't pass image bytes.  If you are using an AWS SDK to call Amazon Rekognition, you might not need to base64-encode image bytes passed using the <code>Bytes</code> field. For more information, see Images in the Amazon Rekognition developer guide.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Object</i> Identifies an S3 object as the image source.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3Object</b>: Identifies an S3 object as the image source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Bytes</i> Blob of image bytes up to 5 MBs.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> If the bucket is versioning enabled, you can specify the object version. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> S3 object key name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i> Name of the S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RegionsOfInterest</i>  A Filter focusing on a certain area of the image. Uses a <code>BoundingBox</code> object to set the region of the image.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WordFilter</i> A set of parameters that allow you to filter out certain results from your returned results.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>WordFilter</b>: A set of parameters that allow you to filter out certain results from your returned results.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MinBoundingBoxWidth</i> Sets the minimum width of the word bounding box. Words with bounding boxes widths lesser than this value will be excluded from the result. Value is relative to the video frame width.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MinBoundingBoxHeight</i> Sets the minimum height of the word bounding box. Words with bounding box heights lesser than this value will be excluded from the result. Value is relative to the video frame height.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MinConfidence</i> Sets the confidence of word detection. Words with detection confidence below this will be excluded from the result. Values should be between 50 and 100 as Text in Video will not return any result below 50.<br/>
        :return: TextModelVersion:  The model version used to detect text.<br/>TextDetections:  An array of text that was detected in the input image.<br/>        """
        pass

    def get_celebrity_info(self, Id: str) -> GetCelebrityInfoResponse:
        r"""Gets the name and additional information about a celebrity based on his or her Amazon Rekognition ID. The additional information is returned as an array of URLs. If there is no additional information about the celebrity, this list is empty. For more information, see Recognizing Celebrities in an Image in the Amazon Rekognition Developer Guide. This operation requires permissions to perform the <code>rekognition:GetCelebrityInfo</code> action. 

        :param self:
        :param Id:  The ID for the celebrity. You get the celebrity ID from a call to the <a>RecognizeCelebrities</a> operation, which recognizes celebrities in an image. <br/>
        :return: Name:  The name of the celebrity.<br/>Urls:  An array of URLs pointing to additional celebrity information. <br/>        """
        pass

    def get_celebrity_recognition(self, JobId: str, MaxResults: int=None, NextToken: str=None, SortBy: str=None) -> GetCelebrityRecognitionResponse:
        r"""Gets the celebrity recognition results for a Amazon Rekognition Video analysis started by <a>StartCelebrityRecognition</a>. Celebrity recognition in a video is an asynchronous operation. Analysis is started by a call to <a>StartCelebrityRecognition</a> which returns a job identifier (<code>JobId</code>). When the celebrity recognition operation finishes, Amazon Rekognition Video publishes a completion status to the Amazon Simple Notification Service topic registered in the initial call to <code>StartCelebrityRecognition</code>. To get the results of the celebrity recognition analysis, first check that the status value published to the Amazon SNS topic is <code>SUCCEEDED</code>. If so, call <code>GetCelebrityDetection</code> and pass the job identifier (<code>JobId</code>) from the initial call to <code>StartCelebrityDetection</code>.  For more information, see Working With Stored Videos in the Amazon Rekognition Developer Guide.  <code>GetCelebrityRecognition</code> returns detected celebrities and the time(s) they are detected in an array (<code>Celebrities</code>) of <a>CelebrityRecognition</a> objects. Each <code>CelebrityRecognition</code> contains information about the celebrity in a <a>CelebrityDetail</a> object and the time, <code>Timestamp</code>, the celebrity was detected.  <note>  <code>GetCelebrityRecognition</code> only returns the default facial attributes (<code>BoundingBox</code>, <code>Confidence</code>, <code>Landmarks</code>, <code>Pose</code>, and <code>Quality</code>). The other facial attributes listed in the <code>Face</code> object of the following response syntax are not returned. For more information, see FaceDetail in the Amazon Rekognition Developer Guide.  </note> By default, the <code>Celebrities</code> array is sorted by time (milliseconds from the start of the video). You can also sort the array by celebrity by specifying the value <code>ID</code> in the <code>SortBy</code> input parameter. The <code>CelebrityDetail</code> object includes the celebrity identifer and additional information urls. If you don't store the additional information urls, you can get them later by calling <a>GetCelebrityInfo</a> with the celebrity identifer. No information is returned for faces not recognized as celebrities. Use MaxResults parameter to limit the number of labels returned. If there are more results than specified in <code>MaxResults</code>, the value of <code>NextToken</code> in the operation response contains a pagination token for getting the next set of results. To get the next page of results, call <code>GetCelebrityDetection</code> and populate the <code>NextToken</code> request parameter with the token value returned from the previous call to <code>GetCelebrityRecognition</code>.

        :param self:
        :param SortBy:  Sort to use for celebrities returned in <code>Celebrities</code> field. Specify <code>ID</code> to sort by the celebrity identifier, specify <code>TIMESTAMP</code> to sort by the time the celebrity was recognized.<br/>NextToken:  If the previous response was incomplete (because there is more recognized celebrities to retrieve), Amazon Rekognition Video returns a pagination token in the response. You can use this pagination token to retrieve the next set of celebrities. <br/>MaxResults:  Maximum number of results to return per paginated call. The largest value you can specify is 1000. If you specify a value greater than 1000, a maximum of 1000 results is returned. The default value is 1000.<br/>JobId:  Job identifier for the required celebrity recognition analysis. You can get the job identifer from a call to <code>StartCelebrityRecognition</code>.<br/>
        :return: Celebrities:  Array of celebrities recognized in the video.<br/>NextToken:  If the response is truncated, Amazon Rekognition Video returns this token that you can use in the subsequent request to retrieve the next set of celebrities.<br/>VideoMetadata:  Information about a video that Amazon Rekognition Video analyzed. <code>Videometadata</code> is returned in every page of paginated responses from a Amazon Rekognition Video operation.:<br/>StatusMessage:  If the job fails, <code>StatusMessage</code> provides a descriptive error message.<br/>JobStatus:  The current status of the celebrity recognition job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FrameWidth</i> Horizontal pixel dimension of the video.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FrameHeight</i> Vertical pixel dimension of the video.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FrameRate</i> Number of frames per second in the video.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Format</i> Format of the analyzed video. Possible values are MP4, MOV and AVI. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DurationMillis</i> Length of the video in milliseconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Codec</i> Type of compression used in the analyzed video. <br/>        """
        pass

    def get_content_moderation(self, JobId: str, MaxResults: int=None, NextToken: str=None, SortBy: str=None) -> GetContentModerationResponse:
        r"""Gets the unsafe content analysis results for a Amazon Rekognition Video analysis started by <a>StartContentModeration</a>. Unsafe content analysis of a video is an asynchronous operation. You start analysis by calling <a>StartContentModeration</a> which returns a job identifier (<code>JobId</code>). When analysis finishes, Amazon Rekognition Video publishes a completion status to the Amazon Simple Notification Service topic registered in the initial call to <code>StartContentModeration</code>. To get the results of the unsafe content analysis, first check that the status value published to the Amazon SNS topic is <code>SUCCEEDED</code>. If so, call <code>GetContentModeration</code> and pass the job identifier (<code>JobId</code>) from the initial call to <code>StartContentModeration</code>.  For more information, see Working with Stored Videos in the Amazon Rekognition Devlopers Guide.  <code>GetContentModeration</code> returns detected unsafe content labels, and the time they are detected, in an array, <code>ModerationLabels</code>, of <a>ContentModerationDetection</a> objects.  By default, the moderated labels are returned sorted by time, in milliseconds from the start of the video. You can also sort them by moderated label by specifying <code>NAME</code> for the <code>SortBy</code> input parameter.  Since video analysis can return a large number of results, use the <code>MaxResults</code> parameter to limit the number of labels returned in a single call to <code>GetContentModeration</code>. If there are more results than specified in <code>MaxResults</code>, the value of <code>NextToken</code> in the operation response contains a pagination token for getting the next set of results. To get the next page of results, call <code>GetContentModeration</code> and populate the <code>NextToken</code> request parameter with the value of <code>NextToken</code> returned from the previous call to <code>GetContentModeration</code>. For more information, see Detecting Unsafe Content in the Amazon Rekognition Developer Guide.

        :param self:
        :param SortBy:  Sort to use for elements in the <code>ModerationLabelDetections</code> array. Use <code>TIMESTAMP</code> to sort array elements by the time labels are detected. Use <code>NAME</code> to alphabetically group elements for a label together. Within each label group, the array element are sorted by detection confidence. The default sort is by <code>TIMESTAMP</code>.<br/>NextToken:  If the previous response was incomplete (because there is more data to retrieve), Amazon Rekognition returns a pagination token in the response. You can use this pagination token to retrieve the next set of unsafe content labels.<br/>MaxResults:  Maximum number of results to return per paginated call. The largest value you can specify is 1000. If you specify a value greater than 1000, a maximum of 1000 results is returned. The default value is 1000.<br/>JobId:  The identifier for the unsafe content job. Use <code>JobId</code> to identify the job in a subsequent call to <code>GetContentModeration</code>.<br/>
        :return: ModerationModelVersion:  Version number of the moderation detection model that was used to detect unsafe content.<br/>NextToken:  If the response is truncated, Amazon Rekognition Video returns this token that you can use in the subsequent request to retrieve the next set of unsafe content labels. <br/>ModerationLabels:  The detected unsafe content labels and the time(s) they were detected.<br/>VideoMetadata:  Information about a video that Amazon Rekognition analyzed. <code>Videometadata</code> is returned in every page of paginated responses from <code>GetContentModeration</code>. :<br/>StatusMessage:  If the job fails, <code>StatusMessage</code> provides a descriptive error message.<br/>JobStatus:  The current status of the unsafe content analysis job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FrameWidth</i> Horizontal pixel dimension of the video.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FrameHeight</i> Vertical pixel dimension of the video.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FrameRate</i> Number of frames per second in the video.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Format</i> Format of the analyzed video. Possible values are MP4, MOV and AVI. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DurationMillis</i> Length of the video in milliseconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Codec</i> Type of compression used in the analyzed video. <br/>        """
        pass

    def get_face_detection(self, JobId: str, MaxResults: int=None, NextToken: str=None) -> GetFaceDetectionResponse:
        r"""Gets face detection results for a Amazon Rekognition Video analysis started by <a>StartFaceDetection</a>. Face detection with Amazon Rekognition Video is an asynchronous operation. You start face detection by calling <a>StartFaceDetection</a> which returns a job identifier (<code>JobId</code>). When the face detection operation finishes, Amazon Rekognition Video publishes a completion status to the Amazon Simple Notification Service topic registered in the initial call to <code>StartFaceDetection</code>. To get the results of the face detection operation, first check that the status value published to the Amazon SNS topic is <code>SUCCEEDED</code>. If so, call <a>GetFaceDetection</a> and pass the job identifier (<code>JobId</code>) from the initial call to <code>StartFaceDetection</code>.  <code>GetFaceDetection</code> returns an array of detected faces (<code>Faces</code>) sorted by the time the faces were detected.  Use MaxResults parameter to limit the number of labels returned. If there are more results than specified in <code>MaxResults</code>, the value of <code>NextToken</code> in the operation response contains a pagination token for getting the next set of results. To get the next page of results, call <code>GetFaceDetection</code> and populate the <code>NextToken</code> request parameter with the token value returned from the previous call to <code>GetFaceDetection</code>.

        :param self:
        :param NextToken:  If the previous response was incomplete (because there are more faces to retrieve), Amazon Rekognition Video returns a pagination token in the response. You can use this pagination token to retrieve the next set of faces.<br/>MaxResults:  Maximum number of results to return per paginated call. The largest value you can specify is 1000. If you specify a value greater than 1000, a maximum of 1000 results is returned. The default value is 1000.<br/>JobId:  Unique identifier for the face detection job. The <code>JobId</code> is returned from <code>StartFaceDetection</code>.<br/>
        :return: Faces:  An array of faces detected in the video. Each element contains a detected face's details and the time, in milliseconds from the start of the video, the face was detected. <br/>NextToken:  If the response is truncated, Amazon Rekognition returns this token that you can use in the subsequent request to retrieve the next set of faces. <br/>VideoMetadata:  Information about a video that Amazon Rekognition Video analyzed. <code>Videometadata</code> is returned in every page of paginated responses from a Amazon Rekognition video operation.:<br/>StatusMessage:  If the job fails, <code>StatusMessage</code> provides a descriptive error message.<br/>JobStatus:  The current status of the face detection job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FrameWidth</i> Horizontal pixel dimension of the video.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FrameHeight</i> Vertical pixel dimension of the video.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FrameRate</i> Number of frames per second in the video.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Format</i> Format of the analyzed video. Possible values are MP4, MOV and AVI. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DurationMillis</i> Length of the video in milliseconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Codec</i> Type of compression used in the analyzed video. <br/>        """
        pass

    def get_face_search(self, JobId: str, MaxResults: int=None, NextToken: str=None, SortBy: str=None) -> GetFaceSearchResponse:
        r"""Gets the face search results for Amazon Rekognition Video face search started by <a>StartFaceSearch</a>. The search returns faces in a collection that match the faces of persons detected in a video. It also includes the time(s) that faces are matched in the video. Face search in a video is an asynchronous operation. You start face search by calling to <a>StartFaceSearch</a> which returns a job identifier (<code>JobId</code>). When the search operation finishes, Amazon Rekognition Video publishes a completion status to the Amazon Simple Notification Service topic registered in the initial call to <code>StartFaceSearch</code>. To get the search results, first check that the status value published to the Amazon SNS topic is <code>SUCCEEDED</code>. If so, call <code>GetFaceSearch</code> and pass the job identifier (<code>JobId</code>) from the initial call to <code>StartFaceSearch</code>. For more information, see Searching Faces in a Collection in the Amazon Rekognition Developer Guide. The search results are retured in an array, <code>Persons</code>, of <a>PersonMatch</a> objects. Each<code>PersonMatch</code> element contains details about the matching faces in the input collection, person information (facial attributes, bounding boxes, and person identifer) for the matched person, and the time the person was matched in the video. <note>  <code>GetFaceSearch</code> only returns the default facial attributes (<code>BoundingBox</code>, <code>Confidence</code>, <code>Landmarks</code>, <code>Pose</code>, and <code>Quality</code>). The other facial attributes listed in the <code>Face</code> object of the following response syntax are not returned. For more information, see FaceDetail in the Amazon Rekognition Developer Guide.  </note> By default, the <code>Persons</code> array is sorted by the time, in milliseconds from the start of the video, persons are matched. You can also sort by persons by specifying <code>INDEX</code> for the <code>SORTBY</code> input parameter.

        :param self:
        :param SortBy:  Sort to use for grouping faces in the response. Use <code>TIMESTAMP</code> to group faces by the time that they are recognized. Use <code>INDEX</code> to sort by recognized faces. <br/>NextToken:  If the previous response was incomplete (because there is more search results to retrieve), Amazon Rekognition Video returns a pagination token in the response. You can use this pagination token to retrieve the next set of search results. <br/>MaxResults:  Maximum number of results to return per paginated call. The largest value you can specify is 1000. If you specify a value greater than 1000, a maximum of 1000 results is returned. The default value is 1000.<br/>JobId:  The job identifer for the search request. You get the job identifier from an initial call to <code>StartFaceSearch</code>.<br/>
        :return: Persons:  An array of persons, <a>PersonMatch</a>, in the video whose face(s) match the face(s) in an Amazon Rekognition collection. It also includes time information for when persons are matched in the video. You specify the input collection in an initial call to <code>StartFaceSearch</code>. Each <code>Persons</code> element includes a time the person was matched, face match details (<code>FaceMatches</code>) for matching faces in the collection, and person information (<code>Person</code>) for the matched person. <br/>VideoMetadata:  Information about a video that Amazon Rekognition analyzed. <code>Videometadata</code> is returned in every page of paginated responses from a Amazon Rekognition Video operation. :<br/>NextToken:  If the response is truncated, Amazon Rekognition Video returns this token that you can use in the subsequent request to retrieve the next set of search results. <br/>StatusMessage:  If the job fails, <code>StatusMessage</code> provides a descriptive error message.<br/>JobStatus:  The current status of the face search job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FrameWidth</i> Horizontal pixel dimension of the video.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FrameHeight</i> Vertical pixel dimension of the video.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FrameRate</i> Number of frames per second in the video.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Format</i> Format of the analyzed video. Possible values are MP4, MOV and AVI. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DurationMillis</i> Length of the video in milliseconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Codec</i> Type of compression used in the analyzed video. <br/>        """
        pass

    def get_label_detection(self, JobId: str, MaxResults: int=None, NextToken: str=None, SortBy: str=None) -> GetLabelDetectionResponse:
        r"""Gets the label detection results of a Amazon Rekognition Video analysis started by <a>StartLabelDetection</a>.  The label detection operation is started by a call to <a>StartLabelDetection</a> which returns a job identifier (<code>JobId</code>). When the label detection operation finishes, Amazon Rekognition publishes a completion status to the Amazon Simple Notification Service topic registered in the initial call to <code>StartlabelDetection</code>. To get the results of the label detection operation, first check that the status value published to the Amazon SNS topic is <code>SUCCEEDED</code>. If so, call <a>GetLabelDetection</a> and pass the job identifier (<code>JobId</code>) from the initial call to <code>StartLabelDetection</code>.  <code>GetLabelDetection</code> returns an array of detected labels (<code>Labels</code>) sorted by the time the labels were detected. You can also sort by the label name by specifying <code>NAME</code> for the <code>SortBy</code> input parameter. The labels returned include the label name, the percentage confidence in the accuracy of the detected label, and the time the label was detected in the video. The returned labels also include bounding box information for common objects, a hierarchical taxonomy of detected labels, and the version of the label model used for detection. Use MaxResults parameter to limit the number of labels returned. If there are more results than specified in <code>MaxResults</code>, the value of <code>NextToken</code> in the operation response contains a pagination token for getting the next set of results. To get the next page of results, call <code>GetlabelDetection</code> and populate the <code>NextToken</code> request parameter with the token value returned from the previous call to <code>GetLabelDetection</code>.

        :param self:
        :param SortBy:  Sort to use for elements in the <code>Labels</code> array. Use <code>TIMESTAMP</code> to sort array elements by the time labels are detected. Use <code>NAME</code> to alphabetically group elements for a label together. Within each label group, the array element are sorted by detection confidence. The default sort is by <code>TIMESTAMP</code>.<br/>NextToken:  If the previous response was incomplete (because there are more labels to retrieve), Amazon Rekognition Video returns a pagination token in the response. You can use this pagination token to retrieve the next set of labels. <br/>MaxResults:  Maximum number of results to return per paginated call. The largest value you can specify is 1000. If you specify a value greater than 1000, a maximum of 1000 results is returned. The default value is 1000.<br/>JobId:  Job identifier for the label detection operation for which you want results returned. You get the job identifer from an initial call to <code>StartlabelDetection</code>.<br/>
        :return: LabelModelVersion:  Version number of the label detection model that was used to detect labels.<br/>Labels:  An array of labels detected in the video. Each element contains the detected label and the time, in milliseconds from the start of the video, that the label was detected. <br/>NextToken:  If the response is truncated, Amazon Rekognition Video returns this token that you can use in the subsequent request to retrieve the next set of labels.<br/>VideoMetadata:  Information about a video that Amazon Rekognition Video analyzed. <code>Videometadata</code> is returned in every page of paginated responses from a Amazon Rekognition video operation.:<br/>StatusMessage:  If the job fails, <code>StatusMessage</code> provides a descriptive error message.<br/>JobStatus:  The current status of the label detection job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FrameWidth</i> Horizontal pixel dimension of the video.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FrameHeight</i> Vertical pixel dimension of the video.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FrameRate</i> Number of frames per second in the video.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Format</i> Format of the analyzed video. Possible values are MP4, MOV and AVI. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DurationMillis</i> Length of the video in milliseconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Codec</i> Type of compression used in the analyzed video. <br/>        """
        pass

    def get_person_tracking(self, JobId: str, MaxResults: int=None, NextToken: str=None, SortBy: str=None) -> GetPersonTrackingResponse:
        r"""Gets the path tracking results of a Amazon Rekognition Video analysis started by <a>StartPersonTracking</a>. The person path tracking operation is started by a call to <code>StartPersonTracking</code> which returns a job identifier (<code>JobId</code>). When the operation finishes, Amazon Rekognition Video publishes a completion status to the Amazon Simple Notification Service topic registered in the initial call to <code>StartPersonTracking</code>. To get the results of the person path tracking operation, first check that the status value published to the Amazon SNS topic is <code>SUCCEEDED</code>. If so, call <a>GetPersonTracking</a> and pass the job identifier (<code>JobId</code>) from the initial call to <code>StartPersonTracking</code>.  <code>GetPersonTracking</code> returns an array, <code>Persons</code>, of tracked persons and the time(s) their paths were tracked in the video.  <note>  <code>GetPersonTracking</code> only returns the default facial attributes (<code>BoundingBox</code>, <code>Confidence</code>, <code>Landmarks</code>, <code>Pose</code>, and <code>Quality</code>). The other facial attributes listed in the <code>Face</code> object of the following response syntax are not returned.  For more information, see FaceDetail in the Amazon Rekognition Developer Guide. </note> By default, the array is sorted by the time(s) a person's path is tracked in the video. You can sort by tracked persons by specifying <code>INDEX</code> for the <code>SortBy</code> input parameter. Use the <code>MaxResults</code> parameter to limit the number of items returned. If there are more results than specified in <code>MaxResults</code>, the value of <code>NextToken</code> in the operation response contains a pagination token for getting the next set of results. To get the next page of results, call <code>GetPersonTracking</code> and populate the <code>NextToken</code> request parameter with the token value returned from the previous call to <code>GetPersonTracking</code>.

        :param self:
        :param SortBy:  Sort to use for elements in the <code>Persons</code> array. Use <code>TIMESTAMP</code> to sort array elements by the time persons are detected. Use <code>INDEX</code> to sort by the tracked persons. If you sort by <code>INDEX</code>, the array elements for each person are sorted by detection confidence. The default sort is by <code>TIMESTAMP</code>.<br/>NextToken:  If the previous response was incomplete (because there are more persons to retrieve), Amazon Rekognition Video returns a pagination token in the response. You can use this pagination token to retrieve the next set of persons. <br/>MaxResults:  Maximum number of results to return per paginated call. The largest value you can specify is 1000. If you specify a value greater than 1000, a maximum of 1000 results is returned. The default value is 1000.<br/>JobId:  The identifier for a job that tracks persons in a video. You get the <code>JobId</code> from a call to <code>StartPersonTracking</code>. <br/>
        :return: Persons:  An array of the persons detected in the video and the time(s) their path was tracked throughout the video. An array element will exist for each time a person's path is tracked. <br/>NextToken:  If the response is truncated, Amazon Rekognition Video returns this token that you can use in the subsequent request to retrieve the next set of persons. <br/>VideoMetadata:  Information about a video that Amazon Rekognition Video analyzed. <code>Videometadata</code> is returned in every page of paginated responses from a Amazon Rekognition Video operation.:<br/>StatusMessage:  If the job fails, <code>StatusMessage</code> provides a descriptive error message.<br/>JobStatus:  The current status of the person tracking job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FrameWidth</i> Horizontal pixel dimension of the video.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FrameHeight</i> Vertical pixel dimension of the video.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FrameRate</i> Number of frames per second in the video.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Format</i> Format of the analyzed video. Possible values are MP4, MOV and AVI. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DurationMillis</i> Length of the video in milliseconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Codec</i> Type of compression used in the analyzed video. <br/>        """
        pass

    def get_segment_detection(self, JobId: str, MaxResults: int=None, NextToken: str=None) -> GetSegmentDetectionResponse:
        r"""Gets the segment detection results of a Amazon Rekognition Video analysis started by <a>StartSegmentDetection</a>. Segment detection with Amazon Rekognition Video is an asynchronous operation. You start segment detection by calling <a>StartSegmentDetection</a> which returns a job identifier (<code>JobId</code>). When the segment detection operation finishes, Amazon Rekognition publishes a completion status to the Amazon Simple Notification Service topic registered in the initial call to <code>StartSegmentDetection</code>. To get the results of the segment detection operation, first check that the status value published to the Amazon SNS topic is <code>SUCCEEDED</code>. if so, call <code>GetSegmentDetection</code> and pass the job identifier (<code>JobId</code>) from the initial call of <code>StartSegmentDetection</code>.  <code>GetSegmentDetection</code> returns detected segments in an array (<code>Segments</code>) of <a>SegmentDetection</a> objects. <code>Segments</code> is sorted by the segment types specified in the <code>SegmentTypes</code> input parameter of <code>StartSegmentDetection</code>. Each element of the array includes the detected segment, the precentage confidence in the acuracy of the detected segment, the type of the segment, and the frame in which the segment was detected. Use <code>SelectedSegmentTypes</code> to find out the type of segment detection requested in the call to <code>StartSegmentDetection</code>. Use the <code>MaxResults</code> parameter to limit the number of segment detections returned. If there are more results than specified in <code>MaxResults</code>, the value of <code>NextToken</code> in the operation response contains a pagination token for getting the next set of results. To get the next page of results, call <code>GetSegmentDetection</code> and populate the <code>NextToken</code> request parameter with the token value returned from the previous call to <code>GetSegmentDetection</code>. For more information, see Detecting Video Segments in Stored Video in the Amazon Rekognition Developer Guide.

        :param self:
        :param NextToken:  If the response is truncated, Amazon Rekognition Video returns this token that you can use in the subsequent request to retrieve the next set of text.<br/>MaxResults:  Maximum number of results to return per paginated call. The largest value you can specify is 1000.<br/>JobId:  Job identifier for the text detection operation for which you want results returned. You get the job identifer from an initial call to <code>StartSegmentDetection</code>.<br/>
        :return: SelectedSegmentTypes:  An array containing the segment types requested in the call to <code>StartSegmentDetection</code>. <br/>Segments:  An array of segments detected in a video. The array is sorted by the segment types (TECHNICAL_CUE or SHOT) specified in the <code>SegmentTypes</code> input parameter of <code>StartSegmentDetection</code>. Within each segment type the array is sorted by timestamp values.<br/>NextToken:  If the previous response was incomplete (because there are more labels to retrieve), Amazon Rekognition Video returns a pagination token in the response. You can use this pagination token to retrieve the next set of text.<br/>AudioMetadata:  An array of objects. There can be multiple audio streams. Each <code>AudioMetadata</code> object contains metadata for a single audio stream. Audio information in an <code>AudioMetadata</code> objects includes the audio codec, the number of audio channels, the duration of the audio stream, and the sample rate. Audio metadata is returned in each page of information returned by <code>GetSegmentDetection</code>.<br/>VideoMetadata:  Currently, Amazon Rekognition Video returns a single object in the <code>VideoMetadata</code> array. The object contains information about the video stream in the input file that Amazon Rekognition Video chose to analyze. The <code>VideoMetadata</code> object includes the video codec, video format and other information. Video metadata is returned in each page of information returned by <code>GetSegmentDetection</code>.<br/>StatusMessage:  If the job fails, <code>StatusMessage</code> provides a descriptive error message.<br/>JobStatus:  Current status of the segment detection job.<br/>        """
        pass

    def get_text_detection(self, JobId: str, MaxResults: int=None, NextToken: str=None) -> GetTextDetectionResponse:
        r"""Gets the text detection results of a Amazon Rekognition Video analysis started by <a>StartTextDetection</a>. Text detection with Amazon Rekognition Video is an asynchronous operation. You start text detection by calling <a>StartTextDetection</a> which returns a job identifier (<code>JobId</code>) When the text detection operation finishes, Amazon Rekognition publishes a completion status to the Amazon Simple Notification Service topic registered in the initial call to <code>StartTextDetection</code>. To get the results of the text detection operation, first check that the status value published to the Amazon SNS topic is <code>SUCCEEDED</code>. if so, call <code>GetTextDetection</code> and pass the job identifier (<code>JobId</code>) from the initial call of <code>StartLabelDetection</code>.  <code>GetTextDetection</code> returns an array of detected text (<code>TextDetections</code>) sorted by the time the text was detected, up to 50 words per frame of video. Each element of the array includes the detected text, the precentage confidence in the acuracy of the detected text, the time the text was detected, bounding box information for where the text was located, and unique identifiers for words and their lines. Use MaxResults parameter to limit the number of text detections returned. If there are more results than specified in <code>MaxResults</code>, the value of <code>NextToken</code> in the operation response contains a pagination token for getting the next set of results. To get the next page of results, call <code>GetTextDetection</code> and populate the <code>NextToken</code> request parameter with the token value returned from the previous call to <code>GetTextDetection</code>.

        :param self:
        :param NextToken:  If the previous response was incomplete (because there are more labels to retrieve), Amazon Rekognition Video returns a pagination token in the response. You can use this pagination token to retrieve the next set of text.<br/>MaxResults:  Maximum number of results to return per paginated call. The largest value you can specify is 1000.<br/>JobId:  Job identifier for the text detection operation for which you want results returned. You get the job identifer from an initial call to <code>StartTextDetection</code>.<br/>
        :return: TextModelVersion:  Version number of the text detection model that was used to detect text.<br/>NextToken:  If the response is truncated, Amazon Rekognition Video returns this token that you can use in the subsequent request to retrieve the next set of text.<br/>TextDetections:  An array of text detected in the video. Each element contains the detected text, the time in milliseconds from the start of the video that the text was detected, and where it was detected on the screen.<br/>VideoMetadata:  Information about a video that Amazon Rekognition analyzed. <code>Videometadata</code> is returned in every page of paginated responses from a Amazon Rekognition video operation.:<br/>StatusMessage:  If the job fails, <code>StatusMessage</code> provides a descriptive error message.<br/>JobStatus:  Current status of the text detection job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FrameWidth</i> Horizontal pixel dimension of the video.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FrameHeight</i> Vertical pixel dimension of the video.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FrameRate</i> Number of frames per second in the video.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Format</i> Format of the analyzed video. Possible values are MP4, MOV and AVI. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DurationMillis</i> Length of the video in milliseconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Codec</i> Type of compression used in the analyzed video. <br/>        """
        pass

    def index_faces(self, Image: Image, CollectionId: str, ExternalImageId: str=None, DetectionAttributes: List[Attribute]=None, MaxFaces: int=None, QualityFilter: str=None) -> IndexFacesResponse:
        r"""Detects faces in the input image and adds them to the specified collection.  Amazon Rekognition doesn't save the actual faces that are detected. Instead, the underlying detection algorithm first detects the faces in the input image. For each face, the algorithm extracts facial features into a feature vector, and stores it in the backend database. Amazon Rekognition uses feature vectors when it performs face match and search operations using the <a>SearchFaces</a> and <a>SearchFacesByImage</a> operations. For more information, see Adding Faces to a Collection in the Amazon Rekognition Developer Guide. To get the number of faces in a collection, call <a>DescribeCollection</a>.  If you're using version 1.0 of the face detection model, <code>IndexFaces</code> indexes the 15 largest faces in the input image. Later versions of the face detection model index the 100 largest faces in the input image.  If you're using version 4 or later of the face model, image orientation information is not returned in the <code>OrientationCorrection</code> field.  To determine which version of the model you're using, call <a>DescribeCollection</a> and supply the collection ID. You can also get the model version from the value of <code>FaceModelVersion</code> in the response from <code>IndexFaces</code>  For more information, see Model Versioning in the Amazon Rekognition Developer Guide. If you provide the optional <code>ExternalImageId</code> for the input image you provided, Amazon Rekognition associates this ID with all faces that it detects. When you call the <a>ListFaces</a> operation, the response returns the external ID. You can use this external image ID to create a client-side index to associate the faces with each image. You can then use the index to find all faces in an image. You can specify the maximum number of faces to index with the <code>MaxFaces</code> input parameter. This is useful when you want to index the largest faces in an image and don't want to index smaller faces, such as those belonging to people standing in the background. The <code>QualityFilter</code> input parameter allows you to filter out detected faces that don’t meet a required quality bar. The quality bar is based on a variety of common use cases. By default, <code>IndexFaces</code> chooses the quality bar that's used to filter faces. You can also explicitly choose the quality bar. Use <code>QualityFilter</code>, to set the quality bar by specifying <code>LOW</code>, <code>MEDIUM</code>, or <code>HIGH</code>. If you do not want to filter detected faces, specify <code>NONE</code>.  <note> To use quality filtering, you need a collection associated with version 3 of the face model or higher. To get the version of the face model associated with a collection, call <a>DescribeCollection</a>.  </note> Information about faces detected in an image, but not indexed, is returned in an array of <a>UnindexedFace</a> objects, <code>UnindexedFaces</code>. Faces aren't indexed for reasons such as: <ul> <li> The number of faces detected exceeds the value of the <code>MaxFaces</code> request parameter. </li> <li> The face is too small compared to the image dimensions. </li> <li> The face is too blurry. </li> <li> The image is too dark. </li> <li> The face has an extreme pose. </li> <li> The face doesn’t have enough detail to be suitable for face search. </li> </ul> In response, the <code>IndexFaces</code> operation returns an array of metadata for all detected faces, <code>FaceRecords</code>. This includes:  <ul> <li> The bounding box, <code>BoundingBox</code>, of the detected face.  </li> <li> A confidence value, <code>Confidence</code>, which indicates the confidence that the bounding box contains a face. </li> <li> A face ID, <code>FaceId</code>, assigned by the service for each face that's detected and stored. </li> <li> An image ID, <code>ImageId</code>, assigned by the service for the input image. </li> </ul> If you request all facial attributes (by using the <code>detectionAttributes</code> parameter), Amazon Rekognition returns detailed facial attributes, such as facial landmarks (for example, location of eye and mouth) and other facial attributes. If you provide the same image, specify the same collection, and use the same external ID in the <code>IndexFaces</code> operation, Amazon Rekognition doesn't save duplicate face metadata. <p/> The input image is passed either as base64-encoded image bytes, or as a reference to an image in an Amazon S3 bucket. If you use the AWS CLI to call Amazon Rekognition operations, passing image bytes isn't supported. The image must be formatted as a PNG or JPEG file.  This operation requires permissions to perform the <code>rekognition:IndexFaces</code> action.

        :param self:
        :param QualityFilter:  A filter that specifies a quality bar for how much filtering is done to identify faces. Filtered faces aren't indexed. If you specify <code>AUTO</code>, Amazon Rekognition chooses the quality bar. If you specify <code>LOW</code>, <code>MEDIUM</code>, or <code>HIGH</code>, filtering removes all faces that don’t meet the chosen quality bar. The default value is <code>AUTO</code>. The quality bar is based on a variety of common use cases. Low-quality detections can occur for a number of reasons. Some examples are an object that's misidentified as a face, a face that's too blurry, or a face with a pose that's too extreme to use. If you specify <code>NONE</code>, no filtering is performed.  To use quality filtering, the collection you are using must be associated with version 3 of the face model or higher.<br/>MaxFaces:  The maximum number of faces to index. The value of <code>MaxFaces</code> must be greater than or equal to 1. <code>IndexFaces</code> returns no more than 100 detected faces in an image, even if you specify a larger value for <code>MaxFaces</code>. If <code>IndexFaces</code> detects more faces than the value of <code>MaxFaces</code>, the faces with the lowest quality are filtered out first. If there are still more faces than the value of <code>MaxFaces</code>, the faces with the smallest bounding boxes are filtered out (up to the number that's needed to satisfy the value of <code>MaxFaces</code>). Information about the unindexed faces is available in the <code>UnindexedFaces</code> array.  The faces that are returned by <code>IndexFaces</code> are sorted by the largest face bounding box size to the smallest size, in descending order.  <code>MaxFaces</code> can be used with a collection associated with any version of the face model.<br/>DetectionAttributes:  An array of facial attributes that you want to be returned. This can be the default list of attributes or all attributes. If you don't specify a value for <code>Attributes</code> or if you specify <code>["DEFAULT"]</code>, the API returns the following subset of facial attributes: <code>BoundingBox</code>, <code>Confidence</code>, <code>Pose</code>, <code>Quality</code>, and <code>Landmarks</code>. If you provide <code>["ALL"]</code>, all facial attributes are returned, but the operation takes longer to complete. If you provide both, <code>["ALL", "DEFAULT"]</code>, the service uses a logical AND operator to determine which attributes to return (in this case, all attributes). <br/>ExternalImageId:  The ID you want to assign to all the faces detected in the image.<br/>Image:  The input image as base64-encoded bytes or an S3 object. If you use the AWS CLI to call Amazon Rekognition operations, passing base64-encoded image bytes isn't supported.  If you are using an AWS SDK to call Amazon Rekognition, you might not need to base64-encode image bytes passed using the <code>Bytes</code> field. For more information, see Images in the Amazon Rekognition developer guide.:<br/>CollectionId:  The ID of an existing collection to which you want to add the faces that are detected in the input images.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Object</i> Identifies an S3 object as the image source.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3Object</b>: Identifies an S3 object as the image source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Bytes</i> Blob of image bytes up to 5 MBs.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> If the bucket is versioning enabled, you can specify the object version. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> S3 object key name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i> Name of the S3 bucket.<br/>
        :return: UnindexedFaces:  An array of faces that were detected in the image but weren't indexed. They weren't indexed because the quality filter identified them as low quality, or the <code>MaxFaces</code> request parameter filtered them out. To use the quality filter, you specify the <code>QualityFilter</code> request parameter.<br/>FaceModelVersion:  The version number of the face detection model that's associated with the input collection (<code>CollectionId</code>).<br/>OrientationCorrection:  If your collection is associated with a face detection model that's later than version 3.0, the value of <code>OrientationCorrection</code> is always null and no orientation information is returned. If your collection is associated with a face detection model that's version 3.0 or earlier, the following applies: <ul> <li> If the input image is in .jpeg format, it might contain exchangeable image file format (Exif) metadata that includes the image's orientation. Amazon Rekognition uses this orientation information to perform image correction - the bounding box coordinates are translated to represent object locations after the orientation information in the Exif metadata is used to correct the image orientation. Images in .png format don't contain Exif metadata. The value of <code>OrientationCorrection</code> is null. </li> <li> If the image doesn't contain orientation information in its Exif metadata, Amazon Rekognition returns an estimated orientation (ROTATE_0, ROTATE_90, ROTATE_180, ROTATE_270). Amazon Rekognition doesn’t perform image correction for images. The bounding box coordinates aren't translated and represent the object locations before the image is rotated. </li> </ul> Bounding box information is returned in the <code>FaceRecords</code> array. You can get the version of the face detection model by calling <a>DescribeCollection</a>. <br/>FaceRecords:  An array of faces detected and added to the collection. For more information, see Searching Faces in a Collection in the Amazon Rekognition Developer Guide. <br/>        """
        pass

    def list_collections(self, NextToken: str=None, MaxResults: int=None) -> ListCollectionsResponse:
        r"""Returns list of collection IDs in your account. If the result is truncated, the response also provides a <code>NextToken</code> that you can use in the subsequent request to fetch the next set of collection IDs. For an example, see Listing Collections in the Amazon Rekognition Developer Guide. This operation requires permissions to perform the <code>rekognition:ListCollections</code> action.

        :param self:
        :param MaxResults:  Maximum number of collection IDs to return. <br/>NextToken:  Pagination token from the previous response.<br/>
        :return: FaceModelVersions:  Version numbers of the face detection models associated with the collections in the array <code>CollectionIds</code>. For example, the value of <code>FaceModelVersions[2]</code> is the version number for the face detection model used by the collection in <code>CollectionId[2]</code>.<br/>NextToken:  If the result is truncated, the response provides a <code>NextToken</code> that you can use in the subsequent request to fetch the next set of collection IDs.<br/>CollectionIds:  An array of collection IDs.<br/>        """
        pass

    def list_faces(self, CollectionId: str, NextToken: str=None, MaxResults: int=None) -> ListFacesResponse:
        r"""Returns metadata for faces in the specified collection. This metadata includes information such as the bounding box coordinates, the confidence (that the bounding box contains a face), and face ID. For an example, see Listing Faces in a Collection in the Amazon Rekognition Developer Guide. This operation requires permissions to perform the <code>rekognition:ListFaces</code> action.

        :param self:
        :param MaxResults:  Maximum number of faces to return.<br/>NextToken:  If the previous response was incomplete (because there is more data to retrieve), Amazon Rekognition returns a pagination token in the response. You can use this pagination token to retrieve the next set of faces.<br/>CollectionId:  ID of the collection from which to list the faces.<br/>
        :return: FaceModelVersion:  Version number of the face detection model associated with the input collection (<code>CollectionId</code>).<br/>NextToken:  If the response is truncated, Amazon Rekognition returns this token that you can use in the subsequent request to retrieve the next set of faces.<br/>Faces:  An array of <code>Face</code> objects. <br/>        """
        pass

    def list_stream_processors(self, NextToken: str=None, MaxResults: int=None) -> ListStreamProcessorsResponse:
        r"""Gets a list of stream processors that you have created with <a>CreateStreamProcessor</a>. 

        :param self:
        :param MaxResults:  Maximum number of stream processors you want Amazon Rekognition Video to return in the response. The default is 1000. <br/>NextToken:  If the previous response was incomplete (because there are more stream processors to retrieve), Amazon Rekognition Video returns a pagination token in the response. You can use this pagination token to retrieve the next set of stream processors. <br/>
        :return: StreamProcessors:  List of stream processors that you have created.<br/>NextToken:  If the response is truncated, Amazon Rekognition Video returns this token that you can use in the subsequent request to retrieve the next set of stream processors. <br/>        """
        pass

    def list_tags_for_resource(self, ResourceArn: str) -> ListTagsForResourceResponse:
        r""" Returns a list of tags in an Amazon Rekognition collection, stream processor, or Custom Labels model.  This operation requires permissions to perform the <code>rekognition:ListTagsForResource</code> action. 

        :param self:
        :param ResourceArn:   Amazon Resource Name (ARN) of the model, collection, or stream processor that contains the tags that you want a list of. <br/>
        :return: Tags:   A list of key-value tags assigned to the resource. <br/>        """
        pass

    def recognize_celebrities(self, Image: Image) -> RecognizeCelebritiesResponse:
        r"""Returns an array of celebrities recognized in the input image. For more information, see Recognizing Celebrities in the Amazon Rekognition Developer Guide.   <code>RecognizeCelebrities</code> returns the 64 largest faces in the image. It lists recognized celebrities in the <code>CelebrityFaces</code> array and unrecognized faces in the <code>UnrecognizedFaces</code> array. <code>RecognizeCelebrities</code> doesn't return celebrities whose faces aren't among the largest 64 faces in the image. For each celebrity recognized, <code>RecognizeCelebrities</code> returns a <code>Celebrity</code> object. The <code>Celebrity</code> object contains the celebrity name, ID, URL links to additional information, match confidence, and a <code>ComparedFace</code> object that you can use to locate the celebrity's face on the image. Amazon Rekognition doesn't retain information about which images a celebrity has been recognized in. Your application must store this information and use the <code>Celebrity</code> ID property as a unique identifier for the celebrity. If you don't store the celebrity name or additional information URLs returned by <code>RecognizeCelebrities</code>, you will need the ID to identify the celebrity in a call to the <a>GetCelebrityInfo</a> operation. You pass the input image either as base64-encoded image bytes or as a reference to an image in an Amazon S3 bucket. If you use the AWS CLI to call Amazon Rekognition operations, passing image bytes is not supported. The image must be either a PNG or JPEG formatted file.  For an example, see Recognizing Celebrities in an Image in the Amazon Rekognition Developer Guide. This operation requires permissions to perform the <code>rekognition:RecognizeCelebrities</code> operation.

        :param self:
        :param Image:  The input image as base64-encoded bytes or an S3 object. If you use the AWS CLI to call Amazon Rekognition operations, passing base64-encoded image bytes is not supported.  If you are using an AWS SDK to call Amazon Rekognition, you might not need to base64-encode image bytes passed using the <code>Bytes</code> field. For more information, see Images in the Amazon Rekognition developer guide.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Object</i> Identifies an S3 object as the image source.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3Object</b>: Identifies an S3 object as the image source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Bytes</i> Blob of image bytes up to 5 MBs.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> If the bucket is versioning enabled, you can specify the object version. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> S3 object key name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i> Name of the S3 bucket.<br/>
        :return: OrientationCorrection:  The orientation of the input image (counterclockwise direction). If your application displays the image, you can use this value to correct the orientation. The bounding box coordinates returned in <code>CelebrityFaces</code> and <code>UnrecognizedFaces</code> represent face locations before the image orientation is corrected.  <note> If the input image is in .jpeg format, it might contain exchangeable image (Exif) metadata that includes the image's orientation. If so, and the Exif metadata for the input image populates the orientation field, the value of <code>OrientationCorrection</code> is null. The <code>CelebrityFaces</code> and <code>UnrecognizedFaces</code> bounding box coordinates represent face locations after Exif metadata is used to correct the image orientation. Images in .png format don't contain Exif metadata.  </note><br/>UnrecognizedFaces:  Details about each unrecognized face in the image.<br/>CelebrityFaces:  Details about each celebrity found in the image. Amazon Rekognition can detect a maximum of 64 celebrities in an image.<br/>        """
        pass

    def search_faces(self, FaceId: str, CollectionId: str, MaxFaces: int=None, FaceMatchThreshold: Percent=None) -> SearchFacesResponse:
        r"""For a given input face ID, searches for matching faces in the collection the face belongs to. You get a face ID when you add a face to the collection using the <a>IndexFaces</a> operation. The operation compares the features of the input face with faces in the specified collection.  <note> You can also search faces without indexing faces by using the <code>SearchFacesByImage</code> operation. </note>  The operation response returns an array of faces that match, ordered by similarity score with the highest similarity first. More specifically, it is an array of metadata for each face match that is found. Along with the metadata, the response also includes a <code>confidence</code> value for each face match, indicating the confidence that the specific face matches the input face.  For an example, see Searching for a Face Using Its Face ID in the Amazon Rekognition Developer Guide. This operation requires permissions to perform the <code>rekognition:SearchFaces</code> action.

        :param self:
        :param FaceMatchThreshold:  Optional value specifying the minimum confidence in the face match to return. For example, don't return any matches where confidence in matches is less than 70%. The default value is 80%. <br/>MaxFaces:  Maximum number of faces to return. The operation returns the maximum number of faces with the highest confidence in the match.<br/>FaceId:  ID of a face to find matches for in the collection.<br/>CollectionId:  ID of the collection the face belongs to.<br/>
        :return: FaceModelVersion:  Version number of the face detection model associated with the input collection (<code>CollectionId</code>).<br/>FaceMatches:  An array of faces that matched the input face, along with the confidence in the match.<br/>SearchedFaceId:  ID of the face that was searched for matches in a collection.<br/>        """
        pass

    def search_faces_by_image(self, Image: Image, CollectionId: str, MaxFaces: int=None, FaceMatchThreshold: Percent=None, QualityFilter: str=None) -> SearchFacesByImageResponse:
        r"""For a given input image, first detects the largest face in the image, and then searches the specified collection for matching faces. The operation compares the features of the input face with faces in the specified collection.  <note> To search for all faces in an input image, you might first call the <a>IndexFaces</a> operation, and then use the face IDs returned in subsequent calls to the <a>SearchFaces</a> operation.   You can also call the <code>DetectFaces</code> operation and use the bounding boxes in the response to make face crops, which then you can pass in to the <code>SearchFacesByImage</code> operation.  </note> You pass the input image either as base64-encoded image bytes or as a reference to an image in an Amazon S3 bucket. If you use the AWS CLI to call Amazon Rekognition operations, passing image bytes is not supported. The image must be either a PNG or JPEG formatted file.   The response returns an array of faces that match, ordered by similarity score with the highest similarity first. More specifically, it is an array of metadata for each face match found. Along with the metadata, the response also includes a <code>similarity</code> indicating how similar the face is to the input face. In the response, the operation also returns the bounding box (and a confidence level that the bounding box contains a face) of the face that Amazon Rekognition used for the input image.  If no faces are detected in the input image, <code>SearchFacesByImage</code> returns an <code>InvalidParameterException</code> error.  For an example, Searching for a Face Using an Image in the Amazon Rekognition Developer Guide. The <code>QualityFilter</code> input parameter allows you to filter out detected faces that don’t meet a required quality bar. The quality bar is based on a variety of common use cases. Use <code>QualityFilter</code> to set the quality bar for filtering by specifying <code>LOW</code>, <code>MEDIUM</code>, or <code>HIGH</code>. If you do not want to filter detected faces, specify <code>NONE</code>. The default value is <code>NONE</code>. <note> To use quality filtering, you need a collection associated with version 3 of the face model or higher. To get the version of the face model associated with a collection, call <a>DescribeCollection</a>.  </note> This operation requires permissions to perform the <code>rekognition:SearchFacesByImage</code> action.

        :param self:
        :param QualityFilter:  A filter that specifies a quality bar for how much filtering is done to identify faces. Filtered faces aren't searched for in the collection. If you specify <code>AUTO</code>, Amazon Rekognition chooses the quality bar. If you specify <code>LOW</code>, <code>MEDIUM</code>, or <code>HIGH</code>, filtering removes all faces that don’t meet the chosen quality bar. The quality bar is based on a variety of common use cases. Low-quality detections can occur for a number of reasons. Some examples are an object that's misidentified as a face, a face that's too blurry, or a face with a pose that's too extreme to use. If you specify <code>NONE</code>, no filtering is performed. The default value is <code>NONE</code>.  To use quality filtering, the collection you are using must be associated with version 3 of the face model or higher.<br/>FaceMatchThreshold:  (Optional) Specifies the minimum confidence in the face match to return. For example, don't return any matches where confidence in matches is less than 70%. The default value is 80%.<br/>MaxFaces:  Maximum number of faces to return. The operation returns the maximum number of faces with the highest confidence in the match.<br/>Image:  The input image as base64-encoded bytes or an S3 object. If you use the AWS CLI to call Amazon Rekognition operations, passing base64-encoded image bytes is not supported.  If you are using an AWS SDK to call Amazon Rekognition, you might not need to base64-encode image bytes passed using the <code>Bytes</code> field. For more information, see Images in the Amazon Rekognition developer guide.:<br/>CollectionId:  ID of the collection to search.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Object</i> Identifies an S3 object as the image source.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3Object</b>: Identifies an S3 object as the image source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Bytes</i> Blob of image bytes up to 5 MBs.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> If the bucket is versioning enabled, you can specify the object version. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> S3 object key name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i> Name of the S3 bucket.<br/>
        :return: FaceModelVersion:  Version number of the face detection model associated with the input collection (<code>CollectionId</code>).<br/>FaceMatches:  An array of faces that match the input face, along with the confidence in the match.<br/>SearchedFaceConfidence:  The level of confidence that the <code>searchedFaceBoundingBox</code>, contains a face.<br/>SearchedFaceBoundingBox:  The bounding box around the face in the input image that Amazon Rekognition used for the search.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Top</i> Top coordinate of the bounding box as a ratio of overall image height.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Left</i> Left coordinate of the bounding box as a ratio of overall image width.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Height</i> Height of the bounding box as a ratio of the overall image height.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Width</i> Width of the bounding box as a ratio of the overall image width.<br/>        """
        pass

    def start_celebrity_recognition(self, Video: Video, ClientRequestToken: str=None, NotificationChannel: NotificationChannel=None, JobTag: str=None) -> StartCelebrityRecognitionResponse:
        r"""Starts asynchronous recognition of celebrities in a stored video. Amazon Rekognition Video can detect celebrities in a video must be stored in an Amazon S3 bucket. Use <a>Video</a> to specify the bucket name and the filename of the video. <code>StartCelebrityRecognition</code> returns a job identifier (<code>JobId</code>) which you use to get the results of the analysis. When celebrity recognition analysis is finished, Amazon Rekognition Video publishes a completion status to the Amazon Simple Notification Service topic that you specify in <code>NotificationChannel</code>. To get the results of the celebrity recognition analysis, first check that the status value published to the Amazon SNS topic is <code>SUCCEEDED</code>. If so, call <a>GetCelebrityRecognition</a> and pass the job identifier (<code>JobId</code>) from the initial call to <code>StartCelebrityRecognition</code>.  For more information, see Recognizing Celebrities in the Amazon Rekognition Developer Guide.

        :param self:
        :param JobTag:  An identifier you specify that's returned in the completion notification that's published to your Amazon Simple Notification Service topic. For example, you can use <code>JobTag</code> to group related jobs and identify them in the completion notification.<br/>NotificationChannel:  The Amazon SNS topic ARN that you want Amazon Rekognition Video to publish the completion status of the celebrity recognition analysis to.:<br/>ClientRequestToken:  Idempotent token used to identify the start request. If you use the same token with multiple <code>StartCelebrityRecognition</code> requests, the same <code>JobId</code> is returned. Use <code>ClientRequestToken</code> to prevent the same job from being accidently started more than once. <br/>Video:  The video in which you want to recognize celebrities. The video must be stored in an Amazon S3 bucket.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Object</i> The Amazon S3 bucket name and file name for the video.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3Object</b>: The Amazon S3 bucket name and file name for the video.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> If the bucket is versioning enabled, you can specify the object version. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> S3 object key name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i> Name of the S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The ARN of an IAM role that gives Amazon Rekognition publishing permissions to the Amazon SNS topic. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SNSTopicArn</i> The Amazon SNS topic to which Amazon Rekognition to posts the completion status.<br/>
        :return: JobId:  The identifier for the celebrity recognition analysis job. Use <code>JobId</code> to identify the job in a subsequent call to <code>GetCelebrityRecognition</code>.<br/>        """
        pass

    def start_content_moderation(self, Video: Video, MinConfidence: Percent=None, ClientRequestToken: str=None, NotificationChannel: NotificationChannel=None, JobTag: str=None) -> StartContentModerationResponse:
        r""" Starts asynchronous detection of unsafe content in a stored video. Amazon Rekognition Video can moderate content in a video stored in an Amazon S3 bucket. Use <a>Video</a> to specify the bucket name and the filename of the video. <code>StartContentModeration</code> returns a job identifier (<code>JobId</code>) which you use to get the results of the analysis. When unsafe content analysis is finished, Amazon Rekognition Video publishes a completion status to the Amazon Simple Notification Service topic that you specify in <code>NotificationChannel</code>. To get the results of the unsafe content analysis, first check that the status value published to the Amazon SNS topic is <code>SUCCEEDED</code>. If so, call <a>GetContentModeration</a> and pass the job identifier (<code>JobId</code>) from the initial call to <code>StartContentModeration</code>.  For more information, see Detecting Unsafe Content in the Amazon Rekognition Developer Guide.

        :param self:
        :param JobTag:  An identifier you specify that's returned in the completion notification that's published to your Amazon Simple Notification Service topic. For example, you can use <code>JobTag</code> to group related jobs and identify them in the completion notification.<br/>NotificationChannel:  The Amazon SNS topic ARN that you want Amazon Rekognition Video to publish the completion status of the unsafe content analysis to.:<br/>ClientRequestToken:  Idempotent token used to identify the start request. If you use the same token with multiple <code>StartContentModeration</code> requests, the same <code>JobId</code> is returned. Use <code>ClientRequestToken</code> to prevent the same job from being accidently started more than once. <br/>MinConfidence:  Specifies the minimum confidence that Amazon Rekognition must have in order to return a moderated content label. Confidence represents how certain Amazon Rekognition is that the moderated content is correctly identified. 0 is the lowest confidence. 100 is the highest confidence. Amazon Rekognition doesn't return any moderated content labels with a confidence level lower than this specified value. If you don't specify <code>MinConfidence</code>, <code>GetContentModeration</code> returns labels with confidence values greater than or equal to 50 percent.<br/>Video:  The video in which you want to detect unsafe content. The video must be stored in an Amazon S3 bucket.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Object</i> The Amazon S3 bucket name and file name for the video.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3Object</b>: The Amazon S3 bucket name and file name for the video.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> If the bucket is versioning enabled, you can specify the object version. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> S3 object key name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i> Name of the S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The ARN of an IAM role that gives Amazon Rekognition publishing permissions to the Amazon SNS topic. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SNSTopicArn</i> The Amazon SNS topic to which Amazon Rekognition to posts the completion status.<br/>
        :return: JobId:  The identifier for the unsafe content analysis job. Use <code>JobId</code> to identify the job in a subsequent call to <code>GetContentModeration</code>.<br/>        """
        pass

    def start_face_detection(self, Video: Video, ClientRequestToken: str=None, NotificationChannel: NotificationChannel=None, FaceAttributes: str=None, JobTag: str=None) -> StartFaceDetectionResponse:
        r"""Starts asynchronous detection of faces in a stored video. Amazon Rekognition Video can detect faces in a video stored in an Amazon S3 bucket. Use <a>Video</a> to specify the bucket name and the filename of the video. <code>StartFaceDetection</code> returns a job identifier (<code>JobId</code>) that you use to get the results of the operation. When face detection is finished, Amazon Rekognition Video publishes a completion status to the Amazon Simple Notification Service topic that you specify in <code>NotificationChannel</code>. To get the results of the face detection operation, first check that the status value published to the Amazon SNS topic is <code>SUCCEEDED</code>. If so, call <a>GetFaceDetection</a> and pass the job identifier (<code>JobId</code>) from the initial call to <code>StartFaceDetection</code>. For more information, see Detecting Faces in a Stored Video in the Amazon Rekognition Developer Guide.

        :param self:
        :param JobTag:  An identifier you specify that's returned in the completion notification that's published to your Amazon Simple Notification Service topic. For example, you can use <code>JobTag</code> to group related jobs and identify them in the completion notification.<br/>FaceAttributes:  The face attributes you want returned.  <code>DEFAULT</code> - The following subset of facial attributes are returned: BoundingBox, Confidence, Pose, Quality and Landmarks.   <code>ALL</code> - All facial attributes are returned.<br/>NotificationChannel:  The ARN of the Amazon SNS topic to which you want Amazon Rekognition Video to publish the completion status of the face detection operation.:<br/>ClientRequestToken:  Idempotent token used to identify the start request. If you use the same token with multiple <code>StartFaceDetection</code> requests, the same <code>JobId</code> is returned. Use <code>ClientRequestToken</code> to prevent the same job from being accidently started more than once. <br/>Video:  The video in which you want to detect faces. The video must be stored in an Amazon S3 bucket.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Object</i> The Amazon S3 bucket name and file name for the video.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3Object</b>: The Amazon S3 bucket name and file name for the video.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> If the bucket is versioning enabled, you can specify the object version. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> S3 object key name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i> Name of the S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The ARN of an IAM role that gives Amazon Rekognition publishing permissions to the Amazon SNS topic. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SNSTopicArn</i> The Amazon SNS topic to which Amazon Rekognition to posts the completion status.<br/>
        :return: JobId:  The identifier for the face detection job. Use <code>JobId</code> to identify the job in a subsequent call to <code>GetFaceDetection</code>.<br/>        """
        pass

    def start_face_search(self, CollectionId: str, Video: Video, ClientRequestToken: str=None, FaceMatchThreshold: Percent=None, NotificationChannel: NotificationChannel=None, JobTag: str=None) -> StartFaceSearchResponse:
        r"""Starts the asynchronous search for faces in a collection that match the faces of persons detected in a stored video. The video must be stored in an Amazon S3 bucket. Use <a>Video</a> to specify the bucket name and the filename of the video. <code>StartFaceSearch</code> returns a job identifier (<code>JobId</code>) which you use to get the search results once the search has completed. When searching is finished, Amazon Rekognition Video publishes a completion status to the Amazon Simple Notification Service topic that you specify in <code>NotificationChannel</code>. To get the search results, first check that the status value published to the Amazon SNS topic is <code>SUCCEEDED</code>. If so, call <a>GetFaceSearch</a> and pass the job identifier (<code>JobId</code>) from the initial call to <code>StartFaceSearch</code>. For more information, see <a>procedure-person-search-videos</a>.

        :param self:
        :param JobTag:  An identifier you specify that's returned in the completion notification that's published to your Amazon Simple Notification Service topic. For example, you can use <code>JobTag</code> to group related jobs and identify them in the completion notification.<br/>NotificationChannel:  The ARN of the Amazon SNS topic to which you want Amazon Rekognition Video to publish the completion status of the search. :<br/>CollectionId:  ID of the collection that contains the faces you want to search for.<br/>FaceMatchThreshold:  The minimum confidence in the person match to return. For example, don't return any matches where confidence in matches is less than 70%. The default value is 80%.<br/>ClientRequestToken:  Idempotent token used to identify the start request. If you use the same token with multiple <code>StartFaceSearch</code> requests, the same <code>JobId</code> is returned. Use <code>ClientRequestToken</code> to prevent the same job from being accidently started more than once. <br/>Video:  The video you want to search. The video must be stored in an Amazon S3 bucket. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Object</i> The Amazon S3 bucket name and file name for the video.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3Object</b>: The Amazon S3 bucket name and file name for the video.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> If the bucket is versioning enabled, you can specify the object version. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> S3 object key name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i> Name of the S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The ARN of an IAM role that gives Amazon Rekognition publishing permissions to the Amazon SNS topic. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SNSTopicArn</i> The Amazon SNS topic to which Amazon Rekognition to posts the completion status.<br/>
        :return: JobId:  The identifier for the search job. Use <code>JobId</code> to identify the job in a subsequent call to <code>GetFaceSearch</code>. <br/>        """
        pass

    def start_label_detection(self, Video: Video, ClientRequestToken: str=None, MinConfidence: Percent=None, NotificationChannel: NotificationChannel=None, JobTag: str=None) -> StartLabelDetectionResponse:
        r"""Starts asynchronous detection of labels in a stored video. Amazon Rekognition Video can detect labels in a video. Labels are instances of real-world entities. This includes objects like flower, tree, and table; events like wedding, graduation, and birthday party; concepts like landscape, evening, and nature; and activities like a person getting out of a car or a person skiing. The video must be stored in an Amazon S3 bucket. Use <a>Video</a> to specify the bucket name and the filename of the video. <code>StartLabelDetection</code> returns a job identifier (<code>JobId</code>) which you use to get the results of the operation. When label detection is finished, Amazon Rekognition Video publishes a completion status to the Amazon Simple Notification Service topic that you specify in <code>NotificationChannel</code>. To get the results of the label detection operation, first check that the status value published to the Amazon SNS topic is <code>SUCCEEDED</code>. If so, call <a>GetLabelDetection</a> and pass the job identifier (<code>JobId</code>) from the initial call to <code>StartLabelDetection</code>. <p/>

        :param self:
        :param JobTag:  An identifier you specify that's returned in the completion notification that's published to your Amazon Simple Notification Service topic. For example, you can use <code>JobTag</code> to group related jobs and identify them in the completion notification.<br/>NotificationChannel:  The Amazon SNS topic ARN you want Amazon Rekognition Video to publish the completion status of the label detection operation to. :<br/>MinConfidence:  Specifies the minimum confidence that Amazon Rekognition Video must have in order to return a detected label. Confidence represents how certain Amazon Rekognition is that a label is correctly identified.0 is the lowest confidence. 100 is the highest confidence. Amazon Rekognition Video doesn't return any labels with a confidence level lower than this specified value. If you don't specify <code>MinConfidence</code>, the operation returns labels with confidence values greater than or equal to 50 percent.<br/>ClientRequestToken:  Idempotent token used to identify the start request. If you use the same token with multiple <code>StartLabelDetection</code> requests, the same <code>JobId</code> is returned. Use <code>ClientRequestToken</code> to prevent the same job from being accidently started more than once. <br/>Video:  The video in which you want to detect labels. The video must be stored in an Amazon S3 bucket.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Object</i> The Amazon S3 bucket name and file name for the video.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3Object</b>: The Amazon S3 bucket name and file name for the video.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> If the bucket is versioning enabled, you can specify the object version. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> S3 object key name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i> Name of the S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The ARN of an IAM role that gives Amazon Rekognition publishing permissions to the Amazon SNS topic. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SNSTopicArn</i> The Amazon SNS topic to which Amazon Rekognition to posts the completion status.<br/>
        :return: JobId:  The identifier for the label detection job. Use <code>JobId</code> to identify the job in a subsequent call to <code>GetLabelDetection</code>. <br/>        """
        pass

    def start_person_tracking(self, Video: Video, ClientRequestToken: str=None, NotificationChannel: NotificationChannel=None, JobTag: str=None) -> StartPersonTrackingResponse:
        r"""Starts the asynchronous tracking of a person's path in a stored video. Amazon Rekognition Video can track the path of people in a video stored in an Amazon S3 bucket. Use <a>Video</a> to specify the bucket name and the filename of the video. <code>StartPersonTracking</code> returns a job identifier (<code>JobId</code>) which you use to get the results of the operation. When label detection is finished, Amazon Rekognition publishes a completion status to the Amazon Simple Notification Service topic that you specify in <code>NotificationChannel</code>.  To get the results of the person detection operation, first check that the status value published to the Amazon SNS topic is <code>SUCCEEDED</code>. If so, call <a>GetPersonTracking</a> and pass the job identifier (<code>JobId</code>) from the initial call to <code>StartPersonTracking</code>.

        :param self:
        :param JobTag:  An identifier you specify that's returned in the completion notification that's published to your Amazon Simple Notification Service topic. For example, you can use <code>JobTag</code> to group related jobs and identify them in the completion notification.<br/>NotificationChannel:  The Amazon SNS topic ARN you want Amazon Rekognition Video to publish the completion status of the people detection operation to.:<br/>ClientRequestToken:  Idempotent token used to identify the start request. If you use the same token with multiple <code>StartPersonTracking</code> requests, the same <code>JobId</code> is returned. Use <code>ClientRequestToken</code> to prevent the same job from being accidently started more than once. <br/>Video:  The video in which you want to detect people. The video must be stored in an Amazon S3 bucket.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Object</i> The Amazon S3 bucket name and file name for the video.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3Object</b>: The Amazon S3 bucket name and file name for the video.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> If the bucket is versioning enabled, you can specify the object version. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> S3 object key name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i> Name of the S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The ARN of an IAM role that gives Amazon Rekognition publishing permissions to the Amazon SNS topic. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SNSTopicArn</i> The Amazon SNS topic to which Amazon Rekognition to posts the completion status.<br/>
        :return: JobId:  The identifier for the person detection job. Use <code>JobId</code> to identify the job in a subsequent call to <code>GetPersonTracking</code>.<br/>        """
        pass

    def start_project_version(self, MinInferenceUnits: int, ProjectVersionArn: str) -> StartProjectVersionResponse:
        r"""Starts the running of the version of a model. Starting a model takes a while to complete. To check the current state of the model, use <a>DescribeProjectVersions</a>. Once the model is running, you can detect custom labels in new images by calling <a>DetectCustomLabels</a>. <note> You are charged for the amount of time that the model is running. To stop a running model, call <a>StopProjectVersion</a>. </note> This operation requires permissions to perform the <code>rekognition:StartProjectVersion</code> action.

        :param self:
        :param MinInferenceUnits:  The minimum number of inference units to use. A single inference unit represents 1 hour of processing and can support up to 5 Transaction Pers Second (TPS). Use a higher number to increase the TPS throughput of your model. You are charged for the number of inference units that you use. <br/>ProjectVersionArn:  The Amazon Resource Name(ARN) of the model version that you want to start.<br/>
        :return: Status:  The current running status of the model. <br/>        """
        pass

    def start_segment_detection(self, SegmentTypes: List[SegmentType], Video: Video, ClientRequestToken: str=None, NotificationChannel: NotificationChannel=None, JobTag: str=None, Filters: StartSegmentDetectionFilters=None) -> StartSegmentDetectionResponse:
        r"""Starts asynchronous detection of segment detection in a stored video. Amazon Rekognition Video can detect segments in a video stored in an Amazon S3 bucket. Use <a>Video</a> to specify the bucket name and the filename of the video. <code>StartSegmentDetection</code> returns a job identifier (<code>JobId</code>) which you use to get the results of the operation. When segment detection is finished, Amazon Rekognition Video publishes a completion status to the Amazon Simple Notification Service topic that you specify in <code>NotificationChannel</code>. You can use the <code>Filters</code> (<a>StartSegmentDetectionFilters</a>) input parameter to specify the minimum detection confidence returned in the response. Within <code>Filters</code>, use <code>ShotFilter</code> (<a>StartShotDetectionFilter</a>) to filter detected shots. Use <code>TechnicalCueFilter</code> (<a>StartTechnicalCueDetectionFilter</a>) to filter technical cues.  To get the results of the segment detection operation, first check that the status value published to the Amazon SNS topic is <code>SUCCEEDED</code>. if so, call <a>GetSegmentDetection</a> and pass the job identifier (<code>JobId</code>) from the initial call to <code>StartSegmentDetection</code>.  For more information, see Detecting Video Segments in Stored Video in the Amazon Rekognition Developer Guide.

        :param self:
        :param SegmentTypes:  An array of segment types to detect in the video. Valid values are TECHNICAL_CUE and SHOT.<br/>Filters:  Filters for technical cue or shot detection.:<br/>JobTag:  An identifier you specify that's returned in the completion notification that's published to your Amazon Simple Notification Service topic. For example, you can use <code>JobTag</code> to group related jobs and identify them in the completion notification.<br/>NotificationChannel:  The ARN of the Amazon SNS topic to which you want Amazon Rekognition Video to publish the completion status of the segment detection operation.:<br/>ClientRequestToken:  Idempotent token used to identify the start request. If you use the same token with multiple <code>StartSegmentDetection</code> requests, the same <code>JobId</code> is returned. Use <code>ClientRequestToken</code> to prevent the same job from being accidently started more than once. <br/>Video:  Video file stored in an Amazon S3 bucket. Amazon Rekognition video start operations such as <a>StartLabelDetection</a> use <code>Video</code> to specify a video for analysis. The supported file formats are .mp4, .mov and .avi.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Object</i> The Amazon S3 bucket name and file name for the video.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3Object</b>: The Amazon S3 bucket name and file name for the video.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> If the bucket is versioning enabled, you can specify the object version. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> S3 object key name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i> Name of the S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The ARN of an IAM role that gives Amazon Rekognition publishing permissions to the Amazon SNS topic. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SNSTopicArn</i> The Amazon SNS topic to which Amazon Rekognition to posts the completion status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ShotFilter</i> Filters that are specific to shot detections.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ShotFilter</b>: Filters that are specific to shot detections.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TechnicalCueFilter</i> Filters that are specific to technical cues.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TechnicalCueFilter</b>: Filters that are specific to technical cues.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MinSegmentConfidence</i> Specifies the minimum confidence that Amazon Rekognition Video must have in order to return a detected segment. Confidence represents how certain Amazon Rekognition is that a segment is correctly identified. 0 is the lowest confidence. 100 is the highest confidence. Amazon Rekognition Video doesn't return any segments with a confidence level lower than this specified value. If you don't specify <code>MinSegmentConfidence</code>, <code>GetSegmentDetection</code> returns segments with confidence values greater than or equal to 50 percent.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MinSegmentConfidence</i> Specifies the minimum confidence that Amazon Rekognition Video must have in order to return a detected segment. Confidence represents how certain Amazon Rekognition is that a segment is correctly identified. 0 is the lowest confidence. 100 is the highest confidence. Amazon Rekognition Video doesn't return any segments with a confidence level lower than this specified value. If you don't specify <code>MinSegmentConfidence</code>, the <code>GetSegmentDetection</code> returns segments with confidence values greater than or equal to 50 percent.<br/>
        :return: JobId:  Unique identifier for the segment detection job. The <code>JobId</code> is returned from <code>StartSegmentDetection</code>. <br/>        """
        pass

    def start_stream_processor(self, Name: str) -> StartStreamProcessorResponse:
        r"""Starts processing a stream processor. You create a stream processor by calling <a>CreateStreamProcessor</a>. To tell <code>StartStreamProcessor</code> which stream processor to start, use the value of the <code>Name</code> field specified in the call to <code>CreateStreamProcessor</code>.

        :param self:
        :param Name:  The name of the stream processor to start processing.<br/>
        :return:         """
        pass

    def start_text_detection(self, Video: Video, ClientRequestToken: str=None, NotificationChannel: NotificationChannel=None, JobTag: str=None, Filters: StartTextDetectionFilters=None) -> StartTextDetectionResponse:
        r"""Starts asynchronous detection of text in a stored video. Amazon Rekognition Video can detect text in a video stored in an Amazon S3 bucket. Use <a>Video</a> to specify the bucket name and the filename of the video. <code>StartTextDetection</code> returns a job identifier (<code>JobId</code>) which you use to get the results of the operation. When text detection is finished, Amazon Rekognition Video publishes a completion status to the Amazon Simple Notification Service topic that you specify in <code>NotificationChannel</code>. To get the results of the text detection operation, first check that the status value published to the Amazon SNS topic is <code>SUCCEEDED</code>. if so, call <a>GetTextDetection</a> and pass the job identifier (<code>JobId</code>) from the initial call to <code>StartTextDetection</code>. 

        :param self:
        :param Filters:  Optional parameters that let you set criteria the text must meet to be included in your response.:<br/>JobTag:  An identifier returned in the completion status published by your Amazon Simple Notification Service topic. For example, you can use <code>JobTag</code> to group related jobs and identify them in the completion notification.<br/>NotificationChannel:  The Amazon Simple Notification Service topic to which Amazon Rekognition publishes the completion status of a video analysis operation. For more information, see <a>api-video</a>.:<br/>ClientRequestToken:  Idempotent token used to identify the start request. If you use the same token with multiple <code>StartTextDetection</code> requests, the same <code>JobId</code> is returned. Use <code>ClientRequestToken</code> to prevent the same job from being accidentaly started more than once.<br/>Video:  Video file stored in an Amazon S3 bucket. Amazon Rekognition video start operations such as <a>StartLabelDetection</a> use <code>Video</code> to specify a video for analysis. The supported file formats are .mp4, .mov and .avi.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Object</i> The Amazon S3 bucket name and file name for the video.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3Object</b>: The Amazon S3 bucket name and file name for the video.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> If the bucket is versioning enabled, you can specify the object version. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> S3 object key name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i> Name of the S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The ARN of an IAM role that gives Amazon Rekognition publishing permissions to the Amazon SNS topic. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SNSTopicArn</i> The Amazon SNS topic to which Amazon Rekognition to posts the completion status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RegionsOfInterest</i> Filter focusing on a certain area of the frame. Uses a <code>BoundingBox</code> object to set the region of the screen.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WordFilter</i> Filters focusing on qualities of the text, such as confidence or size.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>WordFilter</b>: Filters focusing on qualities of the text, such as confidence or size.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MinBoundingBoxWidth</i> Sets the minimum width of the word bounding box. Words with bounding boxes widths lesser than this value will be excluded from the result. Value is relative to the video frame width.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MinBoundingBoxHeight</i> Sets the minimum height of the word bounding box. Words with bounding box heights lesser than this value will be excluded from the result. Value is relative to the video frame height.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MinConfidence</i> Sets the confidence of word detection. Words with detection confidence below this will be excluded from the result. Values should be between 50 and 100 as Text in Video will not return any result below 50.<br/>
        :return: JobId:  Identifier for the text detection job. Use <code>JobId</code> to identify the job in a subsequent call to <code>GetTextDetection</code>.<br/>        """
        pass

    def stop_project_version(self, ProjectVersionArn: str) -> StopProjectVersionResponse:
        r"""Stops a running model. The operation might take a while to complete. To check the current status, call <a>DescribeProjectVersions</a>. 

        :param self:
        :param ProjectVersionArn:  The Amazon Resource Name (ARN) of the model version that you want to delete. This operation requires permissions to perform the <code>rekognition:StopProjectVersion</code> action.<br/>
        :return: Status:  The current status of the stop operation. <br/>        """
        pass

    def stop_stream_processor(self, Name: str) -> StopStreamProcessorResponse:
        r"""Stops a running stream processor that was created by <a>CreateStreamProcessor</a>.

        :param self:
        :param Name:  The name of a stream processor created by <a>CreateStreamProcessor</a>.<br/>
        :return:         """
        pass

    def tag_resource(self, Tags: TagMap, ResourceArn: str) -> TagResourceResponse:
        r""" Adds one or more key-value tags to an Amazon Rekognition collection, stream processor, or Custom Labels model. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html">Tagging AWS Resources</a>.  This operation requires permissions to perform the <code>rekognition:TagResource</code> action. 

        :param self:
        :param Tags:   The key-value tags to assign to the resource. <br/>ResourceArn:   Amazon Resource Name (ARN) of the model, collection, or stream processor that you want to assign the tags to. <br/>
        :return:         """
        pass

    def untag_resource(self, TagKeys: List[TagKey], ResourceArn: str) -> UntagResourceResponse:
        r""" Removes one or more tags from an Amazon Rekognition collection, stream processor, or Custom Labels model.  This operation requires permissions to perform the <code>rekognition:UntagResource</code> action. 

        :param self:
        :param TagKeys:   A list of the tags that you want to remove. <br/>ResourceArn:   Amazon Resource Name (ARN) of the model, collection, or stream processor that you want to remove the tags from. <br/>
        :return:         """
        pass





class ResourceGroups(BaseClient):
    r"""<fullname>AWS Resource Groups</fullname> AWS Resource Groups lets you organize AWS resources such as Amazon EC2 instances, Amazon Relational Database Service databases, and Amazon S3 buckets into groups using criteria that you define as tags. A resource group is a collection of resources that match the resource types specified in a query, and share one or more tags or portions of tags. You can create a group of resources based on their roles in your cloud infrastructure, lifecycle stages, regions, application layers, or virtually any criteria. Resource Groups enable you to automate management tasks, such as those in AWS Systems Manager Automation documents, on tag-related resources in AWS Systems Manager. Groups of tagged resources also let you quickly view a custom console in AWS Systems Manager that shows AWS Config compliance and other monitoring data about member resources. To create a resource group, build a resource query, and specify tags that identify the criteria that members of the group have in common. Tags are key-value pairs. For more information about Resource Groups, see the <a href="https://docs.aws.amazon.com/ARG/latest/userguide/welcome.html">AWS Resource Groups User Guide</a>. AWS Resource Groups uses a REST-compliant API that you can use to perform the following types of operations. <ul> <li> Create, Read, Update, and Delete (CRUD) operations on resource groups and resource query entities </li> <li> Applying, editing, and removing tags from resource groups </li> <li> Resolving resource group member ARNs so they can be returned as search results </li> <li> Getting data about resources that are members of a group </li> <li> Searching AWS resources based on a resource query </li> </ul>"""


    class ListGroupsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_groups` for valid parameters"""
            pass
    class SearchResourcesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `search_resources` for valid parameters"""
            pass
    class ListGroupResourcesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_group_resources` for valid parameters"""
            pass


    class CreateGroupInput(Mapping):
        pass
    
    class CreateGroupOutput(Mapping):
        pass
    
    class ResourceQuery(Mapping):
        pass
    
    class Tags(object):
        pass
    
    class GroupConfigurationItem(Mapping):
        pass
    
    class DeleteGroupInput(Mapping):
        pass
    
    class DeleteGroupOutput(Mapping):
        pass
    
    class GetGroupInput(Mapping):
        pass
    
    class GetGroupOutput(Mapping):
        pass
    
    class GetGroupConfigurationInput(Mapping):
        pass
    
    class GetGroupConfigurationOutput(Mapping):
        pass
    
    class GetGroupQueryInput(Mapping):
        pass
    
    class GetGroupQueryOutput(Mapping):
        pass
    
    class GetTagsInput(Mapping):
        pass
    
    class GetTagsOutput(Mapping):
        pass
    
    class GroupResourcesInput(Mapping):
        pass
    
    class GroupResourcesOutput(Mapping):
        pass
    
    class ResourceArn(object):
        pass
    
    class ListGroupResourcesInput(Mapping):
        pass
    
    class ListGroupResourcesOutput(Mapping):
        pass
    
    class ResourceFilter(Mapping):
        pass
    
    class ListGroupsInput(Mapping):
        pass
    
    class ListGroupsOutput(Mapping):
        pass
    
    class GroupFilter(Mapping):
        pass
    
    class PutGroupConfigurationInput(Mapping):
        pass
    
    class PutGroupConfigurationOutput(Mapping):
        pass
    
    class SearchResourcesInput(Mapping):
        pass
    
    class SearchResourcesOutput(Mapping):
        pass
    
    class TagInput(Mapping):
        pass
    
    class TagOutput(Mapping):
        pass
    
    class UngroupResourcesInput(Mapping):
        pass
    
    class UngroupResourcesOutput(Mapping):
        pass
    
    class UntagInput(Mapping):
        pass
    
    class UntagOutput(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateGroupInput(Mapping):
        pass
    
    class UpdateGroupOutput(Mapping):
        pass
    
    class UpdateGroupQueryInput(Mapping):
        pass
    
    class UpdateGroupQueryOutput(Mapping):
        pass
    
    def create_group(self, Name: str, Description: str=None, ResourceQuery: ResourceQuery=None, Tags: Tags=None, Configuration: List[GroupConfigurationItem]=None) -> CreateGroupOutput:
        r"""Creates a resource group with the specified name and description. You can optionally include a resource query, or a service configuration. For more information about constructing a resource query, see <a href="https://docs.aws.amazon.com/ARG/latest/userguide/gettingstarted-query.html#gettingstarted-query-cli-tag">Create a tag-based group in Resource Groups</a>. For more information about service configurations, see <a href="https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html">Service configurations for resource groups</a>.  <b>Minimum permissions</b>  To run this command, you must have the following permissions: <ul> <li>  <code>resource-groups:CreateGroup</code>  </li> </ul>

        :param self:
        :param Configuration:  A configuration associates the resource group with an AWS service and specifies how the service can interact with the resources in the group. A configuration is an array of <a>GroupConfigurationItem</a> elements. For details about the syntax of service configurations, see <a href="https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html">Service configurations for resource groups</a>. <note> A resource group can contain either a <code>Configuration</code> or a <code>ResourceQuery</code>, but not both. </note><br/>Tags:  The tags to add to the group. A tag is key-value pair string.<br/>ResourceQuery:  The resource query that determines which AWS resources are members of this group. For more information about resource queries, see <a href="https://docs.aws.amazon.com/ARG/latest/userguide/gettingstarted-query.html#gettingstarted-query-cli-tag">Create a tag-based group in Resource Groups</a>.  <note> A resource group can contain either a <code>ResourceQuery</code> or a <code>Configuration</code>, but not both. </note>:<br/>Description:  The description of the resource group. Descriptions can consist of letters, numbers, hyphens, underscores, periods, and spaces.<br/>Name:  The name of the group, which is the identifier of the group in other operations. You can't change the name of a resource group after you create it. A resource group name can consist of letters, numbers, hyphens, periods, and underscores. The name cannot start with <code>AWS</code> or <code>aws</code>; these are reserved. A resource group name must be unique within each AWS Region in your AWS account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Query</i> The query that defines a group or a search.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of the query. You can use the following values: <ul> <li>  <i> <code>CLOUDFORMATION_STACK_1_0:</code> </i>Specifies that the <code>Query</code> contains an ARN for a CloudFormation stack. </li> <li>  <i> <code>TAG_FILTERS_1_0:</code> </i>Specifies that the <code>Query</code> parameter contains a JSON string that represents a collection of simple tag filters for resource types and tags. The JSON string uses a syntax similar to the <code> <a href="https://docs.aws.amazon.com/resourcegroupstagging/latest/APIReference/API_GetResources.html">GetResources</a> </code> operation, but uses only the <code> <a href="https://docs.aws.amazon.com/resourcegroupstagging/latest/APIReference/API_GetResources.html#resourcegrouptagging-GetResources-request-ResourceTypeFilters"> ResourceTypeFilters</a> </code> and <code> <a href="https://docs.aws.amazon.com/resourcegroupstagging/latest/APIReference/API_GetResources.html#resourcegrouptagging-GetResources-request-TagFiltersTagFilters">TagFilters</a> </code> fields. If you specify more than one tag key, only resources that match all tag keys, and at least one value of each specified tag key, are returned in your query. If you specify more than one value for a tag key, a resource matches the filter if it has a tag key value that matches <i>any</i> of the specified values. For example, consider the following sample query for resources that have two tags, <code>Stage</code> and <code>Version</code>, with two values each:  <code>[{"Stage":["Test","Deploy"]},{"Version":["1","2"]}]</code>  The results of this query could include the following. <ul> <li> An EC2 instance that has the following two tags: <code>{"Stage":"Deploy"}</code>, and <code>{"Version":"2"}</code>  </li> <li> An S3 bucket that has the following two tags: <code>{"Stage":"Test"}</code>, and <code>{"Version":"1"}</code>  </li> </ul> The query would not include the following items in the results, however.  <ul> <li> An EC2 instance that has only the following tag: <code>{"Stage":"Deploy"}</code>. The instance does not have <b>all</b> of the tag keys specified in the filter, so it is excluded from the results. </li> <li> An RDS database that has the following two tags: <code>{"Stage":"Archived"}</code> and <code>{"Version":"4"}</code>  The database has all of the tag keys, but none of those keys has an associated value that matches at least one of the specified values in the filter. </li> </ul> </li> </ul><br/>
        :return: GroupConfiguration:  The service configuration associated with the resource group. For details about the syntax of a service configuration, see <a href="https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html">Service configurations for resource groups</a>.:<br/>Tags:  The tags associated with the group.<br/>ResourceQuery:  The resource query associated with the group. For more information about resource queries, see <a href="https://docs.aws.amazon.com/ARG/latest/userguide/gettingstarted-query.html#gettingstarted-query-cli-tag">Create a tag-based group in Resource Groups</a>. :<br/>Group:  The description of the resource group.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the resource group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the resource group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GroupArn</i> The ARN of the resource group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Query</i> The query that defines a group or a search.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of the query. You can use the following values: <ul> <li>  <i> <code>CLOUDFORMATION_STACK_1_0:</code> </i>Specifies that the <code>Query</code> contains an ARN for a CloudFormation stack. </li> <li>  <i> <code>TAG_FILTERS_1_0:</code> </i>Specifies that the <code>Query</code> parameter contains a JSON string that represents a collection of simple tag filters for resource types and tags. The JSON string uses a syntax similar to the <code> <a href="https://docs.aws.amazon.com/resourcegroupstagging/latest/APIReference/API_GetResources.html">GetResources</a> </code> operation, but uses only the <code> <a href="https://docs.aws.amazon.com/resourcegroupstagging/latest/APIReference/API_GetResources.html#resourcegrouptagging-GetResources-request-ResourceTypeFilters"> ResourceTypeFilters</a> </code> and <code> <a href="https://docs.aws.amazon.com/resourcegroupstagging/latest/APIReference/API_GetResources.html#resourcegrouptagging-GetResources-request-TagFiltersTagFilters">TagFilters</a> </code> fields. If you specify more than one tag key, only resources that match all tag keys, and at least one value of each specified tag key, are returned in your query. If you specify more than one value for a tag key, a resource matches the filter if it has a tag key value that matches <i>any</i> of the specified values. For example, consider the following sample query for resources that have two tags, <code>Stage</code> and <code>Version</code>, with two values each:  <code>[{"Stage":["Test","Deploy"]},{"Version":["1","2"]}]</code>  The results of this query could include the following. <ul> <li> An EC2 instance that has the following two tags: <code>{"Stage":"Deploy"}</code>, and <code>{"Version":"2"}</code>  </li> <li> An S3 bucket that has the following two tags: <code>{"Stage":"Test"}</code>, and <code>{"Version":"1"}</code>  </li> </ul> The query would not include the following items in the results, however.  <ul> <li> An EC2 instance that has only the following tag: <code>{"Stage":"Deploy"}</code>. The instance does not have <b>all</b> of the tag keys specified in the filter, so it is excluded from the results. </li> <li> An RDS database that has the following two tags: <code>{"Stage":"Archived"}</code> and <code>{"Version":"4"}</code>  The database has all of the tag keys, but none of those keys has an associated value that matches at least one of the specified values in the filter. </li> </ul> </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FailureReason</i> If present, the reason why a request to update the group configuration failed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current status of an attempt to update the group configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProposedConfiguration</i> If present, the new configuration that is in the process of being applied to the group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Configuration</i> The configuration currently associated with the group and in effect.<br/>        """
        pass

    def delete_group(self, GroupName: str=None, Group: str=None) -> DeleteGroupOutput:
        r"""Deletes the specified resource group. Deleting a resource group does not delete any resources that are members of the group; it only deletes the group structure.  <b>Minimum permissions</b>  To run this command, you must have the following permissions: <ul> <li>  <code>resource-groups:DeleteGroup</code>  </li> </ul>

        :param self:
        :param Group:  The name or the ARN of the resource group to delete.<br/>GroupName:  Deprecated - don't use this parameter. Use <code>Group</code> instead.<br/>
        :return: Group:  A full description of the deleted resource group.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the resource group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the resource group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GroupArn</i> The ARN of the resource group.<br/>        """
        pass

    def get_group(self, GroupName: str=None, Group: str=None) -> GetGroupOutput:
        r"""Returns information about a specified resource group.  <b>Minimum permissions</b>  To run this command, you must have the following permissions: <ul> <li>  <code>resource-groups:GetGroup</code>  </li> </ul>

        :param self:
        :param Group:  The name or the ARN of the resource group to retrieve.<br/>GroupName:  Deprecated - don't use this parameter. Use <code>Group</code> instead.<br/>
        :return: Group:  A full description of the resource group.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the resource group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the resource group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GroupArn</i> The ARN of the resource group.<br/>        """
        pass

    def get_group_configuration(self, Group: str=None) -> GetGroupConfigurationOutput:
        r"""Returns the service configuration associated with the specified resource group. For details about the service configuration syntax, see <a href="https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html">Service configurations for resource groups</a>.  <b>Minimum permissions</b>  To run this command, you must have the following permissions: <ul> <li>  <code>resource-groups:GetGroupConfiguration</code>  </li> </ul>

        :param self:
        :param Group:  The name or the ARN of the resource group.<br/>
        :return: GroupConfiguration:  The service configuration associated with the specified group. For details about the service configuration syntax, see <a href="https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html">Service configurations for resource groups</a>.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FailureReason</i> If present, the reason why a request to update the group configuration failed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current status of an attempt to update the group configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProposedConfiguration</i> If present, the new configuration that is in the process of being applied to the group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Configuration</i> The configuration currently associated with the group and in effect.<br/>        """
        pass

    def get_group_query(self, GroupName: str=None, Group: str=None) -> GetGroupQueryOutput:
        r"""Retrieves the resource query associated with the specified resource group. For more information about resource queries, see <a href="https://docs.aws.amazon.com/ARG/latest/userguide/gettingstarted-query.html#gettingstarted-query-cli-tag">Create a tag-based group in Resource Groups</a>.  <b>Minimum permissions</b>  To run this command, you must have the following permissions: <ul> <li>  <code>resource-groups:GetGroupQuery</code>  </li> </ul>

        :param self:
        :param Group:  The name or the ARN of the resource group to query.<br/>GroupName:  Don't use this parameter. Use <code>Group</code> instead.<br/>
        :return: GroupQuery:  The resource query associated with the specified group. For more information about resource queries, see <a href="https://docs.aws.amazon.com/ARG/latest/userguide/gettingstarted-query.html#gettingstarted-query-cli-tag">Create a tag-based group in Resource Groups</a>.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceQuery</i> The resource query that determines which AWS resources are members of the associated resource group.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ResourceQuery</b>: The resource query that determines which AWS resources are members of the associated resource group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GroupName</i> The name of the resource group that is associated with the specified resource query.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Query</i> The query that defines a group or a search.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of the query. You can use the following values: <ul> <li>  <i> <code>CLOUDFORMATION_STACK_1_0:</code> </i>Specifies that the <code>Query</code> contains an ARN for a CloudFormation stack. </li> <li>  <i> <code>TAG_FILTERS_1_0:</code> </i>Specifies that the <code>Query</code> parameter contains a JSON string that represents a collection of simple tag filters for resource types and tags. The JSON string uses a syntax similar to the <code> <a href="https://docs.aws.amazon.com/resourcegroupstagging/latest/APIReference/API_GetResources.html">GetResources</a> </code> operation, but uses only the <code> <a href="https://docs.aws.amazon.com/resourcegroupstagging/latest/APIReference/API_GetResources.html#resourcegrouptagging-GetResources-request-ResourceTypeFilters"> ResourceTypeFilters</a> </code> and <code> <a href="https://docs.aws.amazon.com/resourcegroupstagging/latest/APIReference/API_GetResources.html#resourcegrouptagging-GetResources-request-TagFiltersTagFilters">TagFilters</a> </code> fields. If you specify more than one tag key, only resources that match all tag keys, and at least one value of each specified tag key, are returned in your query. If you specify more than one value for a tag key, a resource matches the filter if it has a tag key value that matches <i>any</i> of the specified values. For example, consider the following sample query for resources that have two tags, <code>Stage</code> and <code>Version</code>, with two values each:  <code>[{"Stage":["Test","Deploy"]},{"Version":["1","2"]}]</code>  The results of this query could include the following. <ul> <li> An EC2 instance that has the following two tags: <code>{"Stage":"Deploy"}</code>, and <code>{"Version":"2"}</code>  </li> <li> An S3 bucket that has the following two tags: <code>{"Stage":"Test"}</code>, and <code>{"Version":"1"}</code>  </li> </ul> The query would not include the following items in the results, however.  <ul> <li> An EC2 instance that has only the following tag: <code>{"Stage":"Deploy"}</code>. The instance does not have <b>all</b> of the tag keys specified in the filter, so it is excluded from the results. </li> <li> An RDS database that has the following two tags: <code>{"Stage":"Archived"}</code> and <code>{"Version":"4"}</code>  The database has all of the tag keys, but none of those keys has an associated value that matches at least one of the specified values in the filter. </li> </ul> </li> </ul><br/>        """
        pass

    def get_tags(self, Arn: str) -> GetTagsOutput:
        r"""Returns a list of tags that are associated with a resource group, specified by an ARN.  <b>Minimum permissions</b>  To run this command, you must have the following permissions: <ul> <li>  <code>resource-groups:GetTags</code>  </li> </ul>

        :param self:
        :param Arn:  The ARN of the resource group whose tags you want to retrieve.<br/>
        :return: Tags:  The tags associated with the specified resource group.<br/>Arn:  The ARN of the tagged resource group.<br/>        """
        pass

    def group_resources(self, ResourceArns: List[ResourceArn], Group: str) -> GroupResourcesOutput:
        r"""Adds the specified resources to the specified group.  <b>Minimum permissions</b>  To run this command, you must have the following permissions: <ul> <li>  <code>resource-groups:GroupResources</code>  </li> </ul>

        :param self:
        :param ResourceArns:  The list of ARNs for resources to be added to the group. <br/>Group:  The name or the ARN of the resource group to add resources to.<br/>
        :return: Pending:  A list of ARNs of any resources that are still in the process of being added to the group by this operation. These pending additions continue asynchronously. You can check the status of pending additions by using the <code> <a>ListGroupResources</a> </code> operation, and checking the <code>Resources</code> array in the response and the <code>Status</code> field of each object in that array. <br/>Failed:  A list of ARNs of any resources that failed to be added to the group by this operation.<br/>Succeeded:  A list of ARNs of resources that were successfully added to the group by this operation.<br/>        """
        pass

    def list_group_resources(self, GroupName: str=None, Group: str=None, Filters: List[ResourceFilter]=None, MaxResults: int=None, NextToken: str=None) -> ListGroupResourcesOutput:
        r"""Returns a list of ARNs of the resources that are members of a specified resource group.  <b>Minimum permissions</b>  To run this command, you must have the following permissions: <ul> <li>  <code>resource-groups:ListGroupResources</code>  </li> <li>  <code>cloudformation:DescribeStacks</code>  </li> <li>  <code>cloudformation:ListStackResources</code>  </li> <li>  <code>tag:GetResources</code>  </li> </ul>

        :param self:
        :param NextToken:  The parameter for receiving additional results if you receive a <code>NextToken</code> response in a previous request. A <code>NextToken</code> response indicates that more output is available. Set this parameter to the value provided by a previous call's <code>NextToken</code> response to indicate where the output should continue from.<br/>MaxResults:  The total number of results that you want included on each page of the response. If you do not include this parameter, it defaults to a value that is specific to the operation. If additional items exist beyond the maximum you specify, the <code>NextToken</code> response element is present and has a value (is not null). Include that value as the <code>NextToken</code> request parameter in the next call to the operation to get the next part of the results. Note that the service might return fewer results than the maximum even when there are more results available. You should check <code>NextToken</code> after every operation to ensure that you receive all of the results.<br/>Filters:  Filters, formatted as <a>ResourceFilter</a> objects, that you want to apply to a <code>ListGroupResources</code> operation. Filters the results to include only those of the specified resource types. <ul> <li>  <code>resource-type</code> - Filter resources by their type. Specify up to five resource types in the format <code>AWS::ServiceCode::ResourceType</code>. For example, <code>AWS::EC2::Instance</code>, or <code>AWS::S3::Bucket</code>.  </li> </ul> When you specify a <code>resource-type</code> filter for <code>ListGroupResources</code>, AWS Resource Groups validates your filter resource types against the types that are defined in the query associated with the group. For example, if a group contains only S3 buckets because its query specifies only that resource type, but your <code>resource-type</code> filter includes EC2 instances, AWS Resource Groups does not filter for EC2 instances. In this case, a <code>ListGroupResources</code> request returns a <code>BadRequestException</code> error with a message similar to the following:  <code>The resource types specified as filters in the request are not valid.</code>  The error includes a list of resource types that failed the validation because they are not part of the query associated with the group. This validation doesn't occur when the group query specifies <code>AWS::AllSupported</code>, because a group based on such a query can contain any of the allowed resource types for the query type (tag-based or AWS CloudFormation stack-based queries).<br/>Group:  The name or the ARN of the resource group<br/>GroupName:  <important>  <i> <b>Deprecated - don't use this parameter. Use the <code>Group</code> request field instead.</b> </i>  </important><br/>
        :return: QueryErrors:  A list of <code>QueryError</code> objects. Each error is an object that contains <code>ErrorCode</code> and <code>Message</code> structures. Possible values for <code>ErrorCode</code> are <code>CLOUDFORMATION_STACK_INACTIVE</code> and <code>CLOUDFORMATION_STACK_NOT_EXISTING</code>.<br/>NextToken:  If present, indicates that more output is available than is included in the current response. Use this value in the <code>NextToken</code> request parameter in a subsequent call to the operation to get the next part of the output. You should repeat this until the <code>NextToken</code> response element comes back as <code>null</code>.<br/>ResourceIdentifiers:  <important>  <b> <i>Deprecated - don't use this parameter. Use the <code>Resources</code> response field instead.</i> </b>  </important><br/>Resources:  An array of resources from which you can determine each resource's identity, type, and group membership status.<br/>        """
        pass

    def list_groups(self, Filters: List[GroupFilter]=None, MaxResults: int=None, NextToken: str=None) -> ListGroupsOutput:
        r"""Returns a list of existing resource groups in your account.  <b>Minimum permissions</b>  To run this command, you must have the following permissions: <ul> <li>  <code>resource-groups:ListGroups</code>  </li> </ul>

        :param self:
        :param NextToken:  The parameter for receiving additional results if you receive a <code>NextToken</code> response in a previous request. A <code>NextToken</code> response indicates that more output is available. Set this parameter to the value provided by a previous call's <code>NextToken</code> response to indicate where the output should continue from.<br/>MaxResults:  The total number of results that you want included on each page of the response. If you do not include this parameter, it defaults to a value that is specific to the operation. If additional items exist beyond the maximum you specify, the <code>NextToken</code> response element is present and has a value (is not null). Include that value as the <code>NextToken</code> request parameter in the next call to the operation to get the next part of the results. Note that the service might return fewer results than the maximum even when there are more results available. You should check <code>NextToken</code> after every operation to ensure that you receive all of the results.<br/>Filters:  Filters, formatted as <a>GroupFilter</a> objects, that you want to apply to a <code>ListGroups</code> operation. <ul> <li>  <code>resource-type</code> - Filter the results to include only those of the specified resource types. Specify up to five resource types in the format <code>AWS::<i>ServiceCode</i>::<i>ResourceType</i> </code>. For example, <code>AWS::EC2::Instance</code>, or <code>AWS::S3::Bucket</code>. </li> <li>  <code>configuration-type</code> - Filter the results to include only those groups that have the specified configuration types attached. The current supported values are: <ul> <li>  <code>AWS:EC2::CapacityReservationPool</code>  </li> <li>  <code>AWS:EC2::HostManagement</code>  </li> </ul> </li> </ul><br/>
        :return: NextToken:  If present, indicates that more output is available than is included in the current response. Use this value in the <code>NextToken</code> request parameter in a subsequent call to the operation to get the next part of the output. You should repeat this until the <code>NextToken</code> response element comes back as <code>null</code>.<br/>Groups:  <important>  <i> <b>Deprecated - don't use this field. Use the <code>GroupIdentifiers</code> response field instead.</b> </i>  </important><br/>GroupIdentifiers:  A list of <a>GroupIdentifier</a> objects. Each identifier is an object that contains both the <code>Name</code> and the <code>GroupArn</code>.<br/>        """
        pass

    def put_group_configuration(self, Group: str=None, Configuration: List[GroupConfigurationItem]=None) -> PutGroupConfigurationOutput:
        r"""Attaches a service configuration to the specified group. This occurs asynchronously, and can take time to complete. You can use <a>GetGroupConfiguration</a> to check the status of the update.  <b>Minimum permissions</b>  To run this command, you must have the following permissions: <ul> <li>  <code>resource-groups:PutGroupConfiguration</code>  </li> </ul>

        :param self:
        :param Configuration:  The new configuration to associate with the specified group. A configuration associates the resource group with an AWS service and specifies how the service can interact with the resources in the group. A configuration is an array of <a>GroupConfigurationItem</a> elements. For information about the syntax of a service configuration, see <a href="https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html">Service configurations for resource groups</a>. <note> A resource group can contain either a <code>Configuration</code> or a <code>ResourceQuery</code>, but not both. </note><br/>Group:  The name or ARN of the resource group with the configuration that you want to update.<br/>
        :return:         """
        pass

    def search_resources(self, ResourceQuery: ResourceQuery, MaxResults: int=None, NextToken: str=None) -> SearchResourcesOutput:
        r"""Returns a list of AWS resource identifiers that matches the specified query. The query uses the same format as a resource query in a CreateGroup or UpdateGroupQuery operation.  <b>Minimum permissions</b>  To run this command, you must have the following permissions: <ul> <li>  <code>resource-groups:SearchResources</code>  </li> <li>  <code>cloudformation:DescribeStacks</code>  </li> <li>  <code>cloudformation:ListStackResources</code>  </li> <li>  <code>tag:GetResources</code>  </li> </ul>

        :param self:
        :param NextToken:  The parameter for receiving additional results if you receive a <code>NextToken</code> response in a previous request. A <code>NextToken</code> response indicates that more output is available. Set this parameter to the value provided by a previous call's <code>NextToken</code> response to indicate where the output should continue from.<br/>MaxResults:  The total number of results that you want included on each page of the response. If you do not include this parameter, it defaults to a value that is specific to the operation. If additional items exist beyond the maximum you specify, the <code>NextToken</code> response element is present and has a value (is not null). Include that value as the <code>NextToken</code> request parameter in the next call to the operation to get the next part of the results. Note that the service might return fewer results than the maximum even when there are more results available. You should check <code>NextToken</code> after every operation to ensure that you receive all of the results.<br/>ResourceQuery:  The search query, using the same formats that are supported for resource group definition. For more information, see <a>CreateGroup</a>.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Query</i> The query that defines a group or a search.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of the query. You can use the following values: <ul> <li>  <i> <code>CLOUDFORMATION_STACK_1_0:</code> </i>Specifies that the <code>Query</code> contains an ARN for a CloudFormation stack. </li> <li>  <i> <code>TAG_FILTERS_1_0:</code> </i>Specifies that the <code>Query</code> parameter contains a JSON string that represents a collection of simple tag filters for resource types and tags. The JSON string uses a syntax similar to the <code> <a href="https://docs.aws.amazon.com/resourcegroupstagging/latest/APIReference/API_GetResources.html">GetResources</a> </code> operation, but uses only the <code> <a href="https://docs.aws.amazon.com/resourcegroupstagging/latest/APIReference/API_GetResources.html#resourcegrouptagging-GetResources-request-ResourceTypeFilters"> ResourceTypeFilters</a> </code> and <code> <a href="https://docs.aws.amazon.com/resourcegroupstagging/latest/APIReference/API_GetResources.html#resourcegrouptagging-GetResources-request-TagFiltersTagFilters">TagFilters</a> </code> fields. If you specify more than one tag key, only resources that match all tag keys, and at least one value of each specified tag key, are returned in your query. If you specify more than one value for a tag key, a resource matches the filter if it has a tag key value that matches <i>any</i> of the specified values. For example, consider the following sample query for resources that have two tags, <code>Stage</code> and <code>Version</code>, with two values each:  <code>[{"Stage":["Test","Deploy"]},{"Version":["1","2"]}]</code>  The results of this query could include the following. <ul> <li> An EC2 instance that has the following two tags: <code>{"Stage":"Deploy"}</code>, and <code>{"Version":"2"}</code>  </li> <li> An S3 bucket that has the following two tags: <code>{"Stage":"Test"}</code>, and <code>{"Version":"1"}</code>  </li> </ul> The query would not include the following items in the results, however.  <ul> <li> An EC2 instance that has only the following tag: <code>{"Stage":"Deploy"}</code>. The instance does not have <b>all</b> of the tag keys specified in the filter, so it is excluded from the results. </li> <li> An RDS database that has the following two tags: <code>{"Stage":"Archived"}</code> and <code>{"Version":"4"}</code>  The database has all of the tag keys, but none of those keys has an associated value that matches at least one of the specified values in the filter. </li> </ul> </li> </ul><br/>
        :return: QueryErrors:  A list of <code>QueryError</code> objects. Each error is an object that contains <code>ErrorCode</code> and <code>Message</code> structures. Possible values for <code>ErrorCode</code> are <code>CLOUDFORMATION_STACK_INACTIVE</code> and <code>CLOUDFORMATION_STACK_NOT_EXISTING</code>.<br/>NextToken:  If present, indicates that more output is available than is included in the current response. Use this value in the <code>NextToken</code> request parameter in a subsequent call to the operation to get the next part of the output. You should repeat this until the <code>NextToken</code> response element comes back as <code>null</code>.<br/>ResourceIdentifiers:  The ARNs and resource types of resources that are members of the group that you specified.<br/>        """
        pass

    def tag(self, Tags: Tags, Arn: str) -> TagOutput:
        r"""Adds tags to a resource group with the specified ARN. Existing tags on a resource group are not changed if they are not specified in the request parameters. <important> Do not store personally identifiable information (PII) or other confidential or sensitive information in tags. We use tags to provide you with billing and administration services. Tags are not intended to be used for private or sensitive data. </important>  <b>Minimum permissions</b>  To run this command, you must have the following permissions: <ul> <li>  <code>resource-groups:Tag</code>  </li> </ul>

        :param self:
        :param Tags:  The tags to add to the specified resource group. A tag is a string-to-string map of key-value pairs.<br/>Arn:  The ARN of the resource group to which to add tags.<br/>
        :return: Tags:  The tags that have been added to the specified resource group.<br/>Arn:  The ARN of the tagged resource.<br/>        """
        pass

    def ungroup_resources(self, ResourceArns: List[ResourceArn], Group: str) -> UngroupResourcesOutput:
        r"""Removes the specified resources from the specified group.  <b>Minimum permissions</b>  To run this command, you must have the following permissions: <ul> <li>  <code>resource-groups:UngroupResources</code>  </li> </ul>

        :param self:
        :param ResourceArns:  The ARNs of the resources to be removed from the group.<br/>Group:  The name or the ARN of the resource group from which to remove the resources.<br/>
        :return: Pending:  A list of any resources that are still in the process of being removed from the group by this operation. These pending removals continue asynchronously. You can check the status of pending removals by using the <code> <a>ListGroupResources</a> </code> operation. After the resource is successfully removed, it no longer appears in the response.<br/>Failed:  A list of any resources that failed to be removed from the group by this operation.<br/>Succeeded:  A list of resources that were successfully removed from the group by this operation.<br/>        """
        pass

    def untag(self, Keys: List[TagKey], Arn: str) -> UntagOutput:
        r"""Deletes tags from a specified resource group.  <b>Minimum permissions</b>  To run this command, you must have the following permissions: <ul> <li>  <code>resource-groups:Untag</code>  </li> </ul>

        :param self:
        :param Keys:  The keys of the tags to be removed.<br/>Arn:  The ARN of the resource group from which to remove tags. The command removed both the specified keys and any values associated with those keys.<br/>
        :return: Keys:  The keys of the tags that were removed.<br/>Arn:  The ARN of the resource group from which tags have been removed.<br/>        """
        pass

    def update_group(self, GroupName: str=None, Group: str=None, Description: str=None) -> UpdateGroupOutput:
        r"""Updates the description for an existing group. You cannot update the name of a resource group.  <b>Minimum permissions</b>  To run this command, you must have the following permissions: <ul> <li>  <code>resource-groups:UpdateGroup</code>  </li> </ul>

        :param self:
        :param Description:  The new description that you want to update the resource group with. Descriptions can contain letters, numbers, hyphens, underscores, periods, and spaces.<br/>Group:  The name or the ARN of the resource group to modify.<br/>GroupName:  Don't use this parameter. Use <code>Group</code> instead.<br/>
        :return: Group:  The update description of the resource group.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the resource group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the resource group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GroupArn</i> The ARN of the resource group.<br/>        """
        pass

    def update_group_query(self, ResourceQuery: ResourceQuery, GroupName: str=None, Group: str=None) -> UpdateGroupQueryOutput:
        r"""Updates the resource query of a group. For more information about resource queries, see <a href="https://docs.aws.amazon.com/ARG/latest/userguide/gettingstarted-query.html#gettingstarted-query-cli-tag">Create a tag-based group in Resource Groups</a>.  <b>Minimum permissions</b>  To run this command, you must have the following permissions: <ul> <li>  <code>resource-groups:UpdateGroupQuery</code>  </li> </ul>

        :param self:
        :param ResourceQuery:  The resource query to determine which AWS resources are members of this resource group. <note> A resource group can contain either a <code>Configuration</code> or a <code>ResourceQuery</code>, but not both. </note>:<br/>Group:  The name or the ARN of the resource group to query.<br/>GroupName:  Don't use this parameter. Use <code>Group</code> instead.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Query</i> The query that defines a group or a search.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of the query. You can use the following values: <ul> <li>  <i> <code>CLOUDFORMATION_STACK_1_0:</code> </i>Specifies that the <code>Query</code> contains an ARN for a CloudFormation stack. </li> <li>  <i> <code>TAG_FILTERS_1_0:</code> </i>Specifies that the <code>Query</code> parameter contains a JSON string that represents a collection of simple tag filters for resource types and tags. The JSON string uses a syntax similar to the <code> <a href="https://docs.aws.amazon.com/resourcegroupstagging/latest/APIReference/API_GetResources.html">GetResources</a> </code> operation, but uses only the <code> <a href="https://docs.aws.amazon.com/resourcegroupstagging/latest/APIReference/API_GetResources.html#resourcegrouptagging-GetResources-request-ResourceTypeFilters"> ResourceTypeFilters</a> </code> and <code> <a href="https://docs.aws.amazon.com/resourcegroupstagging/latest/APIReference/API_GetResources.html#resourcegrouptagging-GetResources-request-TagFiltersTagFilters">TagFilters</a> </code> fields. If you specify more than one tag key, only resources that match all tag keys, and at least one value of each specified tag key, are returned in your query. If you specify more than one value for a tag key, a resource matches the filter if it has a tag key value that matches <i>any</i> of the specified values. For example, consider the following sample query for resources that have two tags, <code>Stage</code> and <code>Version</code>, with two values each:  <code>[{"Stage":["Test","Deploy"]},{"Version":["1","2"]}]</code>  The results of this query could include the following. <ul> <li> An EC2 instance that has the following two tags: <code>{"Stage":"Deploy"}</code>, and <code>{"Version":"2"}</code>  </li> <li> An S3 bucket that has the following two tags: <code>{"Stage":"Test"}</code>, and <code>{"Version":"1"}</code>  </li> </ul> The query would not include the following items in the results, however.  <ul> <li> An EC2 instance that has only the following tag: <code>{"Stage":"Deploy"}</code>. The instance does not have <b>all</b> of the tag keys specified in the filter, so it is excluded from the results. </li> <li> An RDS database that has the following two tags: <code>{"Stage":"Archived"}</code> and <code>{"Version":"4"}</code>  The database has all of the tag keys, but none of those keys has an associated value that matches at least one of the specified values in the filter. </li> </ul> </li> </ul><br/>
        :return: GroupQuery:  The updated resource query associated with the resource group after the update.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceQuery</i> The resource query that determines which AWS resources are members of the associated resource group.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ResourceQuery</b>: The resource query that determines which AWS resources are members of the associated resource group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GroupName</i> The name of the resource group that is associated with the specified resource query.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Query</i> The query that defines a group or a search.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of the query. You can use the following values: <ul> <li>  <i> <code>CLOUDFORMATION_STACK_1_0:</code> </i>Specifies that the <code>Query</code> contains an ARN for a CloudFormation stack. </li> <li>  <i> <code>TAG_FILTERS_1_0:</code> </i>Specifies that the <code>Query</code> parameter contains a JSON string that represents a collection of simple tag filters for resource types and tags. The JSON string uses a syntax similar to the <code> <a href="https://docs.aws.amazon.com/resourcegroupstagging/latest/APIReference/API_GetResources.html">GetResources</a> </code> operation, but uses only the <code> <a href="https://docs.aws.amazon.com/resourcegroupstagging/latest/APIReference/API_GetResources.html#resourcegrouptagging-GetResources-request-ResourceTypeFilters"> ResourceTypeFilters</a> </code> and <code> <a href="https://docs.aws.amazon.com/resourcegroupstagging/latest/APIReference/API_GetResources.html#resourcegrouptagging-GetResources-request-TagFiltersTagFilters">TagFilters</a> </code> fields. If you specify more than one tag key, only resources that match all tag keys, and at least one value of each specified tag key, are returned in your query. If you specify more than one value for a tag key, a resource matches the filter if it has a tag key value that matches <i>any</i> of the specified values. For example, consider the following sample query for resources that have two tags, <code>Stage</code> and <code>Version</code>, with two values each:  <code>[{"Stage":["Test","Deploy"]},{"Version":["1","2"]}]</code>  The results of this query could include the following. <ul> <li> An EC2 instance that has the following two tags: <code>{"Stage":"Deploy"}</code>, and <code>{"Version":"2"}</code>  </li> <li> An S3 bucket that has the following two tags: <code>{"Stage":"Test"}</code>, and <code>{"Version":"1"}</code>  </li> </ul> The query would not include the following items in the results, however.  <ul> <li> An EC2 instance that has only the following tag: <code>{"Stage":"Deploy"}</code>. The instance does not have <b>all</b> of the tag keys specified in the filter, so it is excluded from the results. </li> <li> An RDS database that has the following two tags: <code>{"Stage":"Archived"}</code> and <code>{"Version":"4"}</code>  The database has all of the tag keys, but none of those keys has an associated value that matches at least one of the specified values in the filter. </li> </ul> </li> </ul><br/>        """
        pass





class ResourceGroupsTaggingAPI(BaseClient):
    r"""<fullname>Resource Groups Tagging API</fullname>"""


    class GetResourcesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_resources` for valid parameters"""
            pass
    class GetTagKeysPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_tag_keys` for valid parameters"""
            pass
    class GetTagValuesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_tag_values` for valid parameters"""
            pass
    class GetComplianceSummaryPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_compliance_summary` for valid parameters"""
            pass


    class DescribeReportCreationInput(Mapping):
        pass
    
    class DescribeReportCreationOutput(Mapping):
        pass
    
    class GetComplianceSummaryInput(Mapping):
        pass
    
    class GetComplianceSummaryOutput(Mapping):
        pass
    
    class TargetId(object):
        pass
    
    class Region(object):
        pass
    
    class AmazonResourceType(object):
        pass
    
    class TagKey(object):
        pass
    
    class GroupByAttribute(object):
        pass
    
    class GetResourcesInput(Mapping):
        pass
    
    class GetResourcesOutput(Mapping):
        pass
    
    class TagFilter(Mapping):
        pass
    
    class IncludeComplianceDetails(object):
        pass
    
    class ExcludeCompliantResources(object):
        pass
    
    class ResourceARN(object):
        pass
    
    class GetTagKeysInput(Mapping):
        pass
    
    class GetTagKeysOutput(Mapping):
        pass
    
    class GetTagValuesInput(Mapping):
        pass
    
    class GetTagValuesOutput(Mapping):
        pass
    
    class StartReportCreationInput(Mapping):
        pass
    
    class StartReportCreationOutput(Mapping):
        pass
    
    class TagResourcesInput(Mapping):
        pass
    
    class TagResourcesOutput(Mapping):
        pass
    
    class TagMap(object):
        pass
    
    class UntagResourcesInput(Mapping):
        pass
    
    class UntagResourcesOutput(Mapping):
        pass
    
    def describe_report_creation(self) -> DescribeReportCreationOutput:
        r"""Describes the status of the <code>StartReportCreation</code> operation.  You can call this operation only from the organization's management account and from the us-east-1 Region.

        :param self:
        :param 
        :return: ErrorMessage:  Details of the common errors that all operations return.<br/>S3Location:  The path to the Amazon S3 bucket where the report was stored on creation.<br/>Status:  Reports the status of the operation. The operation status can be one of the following: <ul> <li>  <code>RUNNING</code> - Report creation is in progress. </li> <li>  <code>SUCCEEDED</code> - Report creation is complete. You can open the report from the Amazon S3 bucket that you specified when you ran <code>StartReportCreation</code>. </li> <li>  <code>FAILED</code> - Report creation timed out or the Amazon S3 bucket is not accessible.  </li> <li>  <code>NO REPORT</code> - No report was generated in the last 90 days. </li> </ul><br/>        """
        pass

    def get_compliance_summary(self, TargetIdFilters: List[TargetId]=None, RegionFilters: List[Region]=None, ResourceTypeFilters: List[AmazonResourceType]=None, TagKeyFilters: List[TagKey]=None, GroupBy: List[GroupByAttribute]=None, MaxResults: int=None, PaginationToken: str=None) -> GetComplianceSummaryOutput:
        r"""Returns a table that shows counts of resources that are noncompliant with their tag policies. For more information on tag policies, see <a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_tag-policies.html">Tag Policies</a> in the <i>AWS Organizations User Guide.</i>  You can call this operation only from the organization's management account and from the us-east-1 Region. This operation supports pagination, where the response can be sent in multiple pages. You should check the <code>PaginationToken</code> response parameter to determine if there are additional results available to return. Repeat the query, passing the <code>PaginationToken</code> response parameter value as an input to the next request until you recieve a <code>null</code> value. A null value for <code>PaginationToken</code> indicates that there are no more results waiting to be returned.

        :param self:
        :param PaginationToken:  Specifies a <code>PaginationToken</code> response value from a previous request to indicate that you want the next page of results. Leave this parameter empty in your initial request.<br/>MaxResults:  Specifies the maximum number of results to be returned in each page. A query can return fewer than this maximum, even if there are more results still to return. You should always check the <code>PaginationToken</code> response value to see if there are more results. You can specify a minimum of 1 and a maximum value of 100.<br/>GroupBy:  Specifies a list of attributes to group the counts of noncompliant resources by. If supplied, the counts are sorted by those attributes.<br/>TagKeyFilters:  Specifies that you want the response to include information for only resources that have tags with the specified tag keys. If you use this parameter, the count of returned noncompliant resources includes only resources that have the specified tag keys.<br/>ResourceTypeFilters:  Specifies that you want the response to include information for only resources of the specified types. The format of each resource type is <code>service[:resourceType]</code>. For example, specifying a resource type of <code>ec2</code> returns all Amazon EC2 resources (which includes EC2 instances). Specifying a resource type of <code>ec2:instance</code> returns only EC2 instances.  The string for each service name and resource type is the same as that embedded in a resource's Amazon Resource Name (ARN). Consult the <i>AWS General Reference</i> for the following: <ul> <li> For a list of service name strings, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#genref-aws-service-namespaces">AWS Service Namespaces</a>. </li> <li> For resource type strings, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arns-syntax">Example ARNs</a>. </li> <li> For more information about ARNs, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a>. </li> </ul> You can specify multiple resource types by using a comma separated array. The array can include up to 100 items. Note that the length constraint requirement applies to each resource type filter. <br/>RegionFilters:  Specifies a list of AWS Regions to limit the output by. If you use this parameter, the count of returned noncompliant resources includes only resources in the specified Regions.<br/>TargetIdFilters:  Specifies target identifiers (usually, specific account IDs) to limit the output by. If you use this parameter, the count of returned noncompliant resources includes only resources with the specified target IDs.<br/>
        :return: PaginationToken:  A string that indicates that there is more data available than this response contains. To receive the next part of the response, specify this response value as the <code>PaginationToken</code> value in the request for the next page.<br/>SummaryList:  A table that shows counts of noncompliant resources.<br/>        """
        pass

    def get_resources(self, PaginationToken: str=None, TagFilters: List[TagFilter]=None, ResourcesPerPage: int=None, TagsPerPage: int=None, ResourceTypeFilters: List[AmazonResourceType]=None, IncludeComplianceDetails: IncludeComplianceDetails=None, ExcludeCompliantResources: ExcludeCompliantResources=None, ResourceARNList: List[ResourceARN]=None) -> GetResourcesOutput:
        r"""Returns all the tagged or previously tagged resources that are located in the specified Region for the AWS account. Depending on what information you want returned, you can also specify the following: <ul> <li>  <i>Filters</i> that specify what tags and resource types you want returned. The response includes all tags that are associated with the requested resources. </li> <li> Information about compliance with the account's effective tag policy. For more information on tag policies, see <a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_tag-policies.html">Tag Policies</a> in the <i>AWS Organizations User Guide.</i>  </li> </ul> This operation supports pagination, where the response can be sent in multiple pages. You should check the <code>PaginationToken</code> response parameter to determine if there are additional results available to return. Repeat the query, passing the <code>PaginationToken</code> response parameter value as an input to the next request until you recieve a <code>null</code> value. A null value for <code>PaginationToken</code> indicates that there are no more results waiting to be returned.

        :param self:
        :param ResourceARNList:  Specifies a list of ARNs of resources for which you want to retrieve tag data. You can't specify both this parameter and any of the pagination parameters (<code>ResourcesPerPage</code>, <code>TagsPerPage</code>, <code>PaginationToken</code>) in the same request. If you specify both, you get an <code>Invalid Parameter</code> exception. If a resource specified by this parameter doesn't exist, it doesn't generate an error; it simply isn't included in the response. An ARN (Amazon Resource Name) uniquely identifies a resource. For more information, see <a href="http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a> in the <i>AWS General Reference</i>.<br/>ExcludeCompliantResources:  Specifies whether to exclude resources that are compliant with the tag policy. Set this to <code>true</code> if you are interested in retrieving information on noncompliant resources only. You can use this parameter only if the <code>IncludeComplianceDetails</code> parameter is also set to <code>true</code>.<br/>IncludeComplianceDetails:  Specifies whether to include details regarding the compliance with the effective tag policy. Set this to <code>true</code> to determine whether resources are compliant with the tag policy and to get details.<br/>ResourceTypeFilters:  Specifies the resource types that you want included in the response. The format of each resource type is <code>service[:resourceType]</code>. For example, specifying a resource type of <code>ec2</code> returns all Amazon EC2 resources (which includes EC2 instances). Specifying a resource type of <code>ec2:instance</code> returns only EC2 instances.  The string for each service name and resource type is the same as that embedded in a resource's Amazon Resource Name (ARN). Consult the <i>AWS General Reference</i> for the following: For more information about ARNs, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a>. You can specify multiple resource types by using an array. The array can include up to 100 items. Note that the length constraint requirement applies to each resource type filter. <br/>TagsPerPage:  AWS recommends using <code>ResourcesPerPage</code> instead of this parameter. A limit that restricts the number of tags (key and value pairs) returned by <code>GetResources</code> in paginated output. A resource with no tags is counted as having one tag (one key and value pair).  <code>GetResources</code> does not split a resource and its associated tags across pages. If the specified <code>TagsPerPage</code> would cause such a break, a <code>PaginationToken</code> is returned in place of the affected resource and its tags. Use that token in another request to get the remaining data. For example, if you specify a <code>TagsPerPage</code> of <code>100</code> and the account has 22 resources with 10 tags each (meaning that each resource has 10 key and value pairs), the output will consist of three pages. The first page displays the first 10 resources, each with its 10 tags. The second page displays the next 10 resources, each with its 10 tags. The third page displays the remaining 2 resources, each with its 10 tags. You can set <code>TagsPerPage</code> to a minimum of 100 items up to a maximum of 500 items.<br/>ResourcesPerPage:  Specifies the maximum number of results to be returned in each page. A query can return fewer than this maximum, even if there are more results still to return. You should always check the <code>PaginationToken</code> response value to see if there are more results. You can specify a minimum of 1 and a maximum value of 100.<br/>TagFilters:  Specifies a list of TagFilters (keys and values) to restrict the output to only those resources that have the specified tag and, if included, the specified value. Each <code>TagFilter</code> must contain a key with values optional. A request can include up to 50 keys, and each key can include up to 20 values.  Note the following when deciding how to use TagFilters: <ul> <li> If you <i>don't</i> specify a <code>TagFilter</code>, the response includes all resources that are currently tagged or ever had a tag. Resources that currently don't have tags are shown with an empty tag set, like this: <code>"Tags": []</code>. </li> <li> If you specify more than one filter in a single request, the response returns only those resources that satisfy all filters. </li> <li> If you specify a filter that contains more than one value for a key, the response returns resources that match any of the specified values for that key. </li> <li> If you don't specify any values for a key, the response returns resources that are tagged with that key and any or no value. For example, for the following filters: <code>filter1= {keyA,{value1}}</code>, <code>filter2={keyB,{value2,value3,value4}}</code>, <code>filter3= {keyC}</code>: <ul> <li>  <code>GetResources({filter1})</code> returns resources tagged with <code>key1=value1</code>  </li> <li>  <code>GetResources({filter2})</code> returns resources tagged with <code>key2=value2</code> or <code>key2=value3</code> or <code>key2=value4</code>  </li> <li>  <code>GetResources({filter3})</code> returns resources tagged with any tag with the key <code>key3</code>, and with any or no value </li> <li>  <code>GetResources({filter1,filter2,filter3})</code> returns resources tagged with <code>(key1=value1) and (key2=value2 or key2=value3 or key2=value4) and (key3, any or no value)</code>  </li> </ul> </li> </ul><br/>PaginationToken:  Specifies a <code>PaginationToken</code> response value from a previous request to indicate that you want the next page of results. Leave this parameter empty in your initial request.<br/>
        :return: ResourceTagMappingList:  A list of resource ARNs and the tags (keys and values) associated with those ARNs.<br/>PaginationToken:  A string that indicates that there is more data available than this response contains. To receive the next part of the response, specify this response value as the <code>PaginationToken</code> value in the request for the next page.<br/>        """
        pass

    def get_tag_keys(self, PaginationToken: str=None) -> GetTagKeysOutput:
        r"""Returns all tag keys currently in use in the specified Region for the calling AWS account. This operation supports pagination, where the response can be sent in multiple pages. You should check the <code>PaginationToken</code> response parameter to determine if there are additional results available to return. Repeat the query, passing the <code>PaginationToken</code> response parameter value as an input to the next request until you recieve a <code>null</code> value. A null value for <code>PaginationToken</code> indicates that there are no more results waiting to be returned.

        :param self:
        :param PaginationToken:  Specifies a <code>PaginationToken</code> response value from a previous request to indicate that you want the next page of results. Leave this parameter empty in your initial request.<br/>
        :return: TagKeys:  A list of all tag keys in the AWS account.<br/>PaginationToken:  A string that indicates that there is more data available than this response contains. To receive the next part of the response, specify this response value as the <code>PaginationToken</code> value in the request for the next page.<br/>        """
        pass

    def get_tag_values(self, Key: str, PaginationToken: str=None) -> GetTagValuesOutput:
        r"""Returns all tag values for the specified key that are used in the specified AWS Region for the calling AWS account. This operation supports pagination, where the response can be sent in multiple pages. You should check the <code>PaginationToken</code> response parameter to determine if there are additional results available to return. Repeat the query, passing the <code>PaginationToken</code> response parameter value as an input to the next request until you recieve a <code>null</code> value. A null value for <code>PaginationToken</code> indicates that there are no more results waiting to be returned.

        :param self:
        :param Key:  Specifies the tag key for which you want to list all existing values that are currently used in the specified AWS Region for the calling AWS account.<br/>PaginationToken:  Specifies a <code>PaginationToken</code> response value from a previous request to indicate that you want the next page of results. Leave this parameter empty in your initial request.<br/>
        :return: TagValues:  A list of all tag values for the specified key currently used in the specified AWS Region for the calling AWS account.<br/>PaginationToken:  A string that indicates that there is more data available than this response contains. To receive the next part of the response, specify this response value as the <code>PaginationToken</code> value in the request for the next page.<br/>        """
        pass

    def start_report_creation(self, S3Bucket: str) -> StartReportCreationOutput:
        r"""Generates a report that lists all tagged resources in the accounts across your organization and tells whether each resource is compliant with the effective tag policy. Compliance data is refreshed daily. The report is generated asynchronously. The generated report is saved to the following location:  <code>s3://example-bucket/AwsTagPolicies/o-exampleorgid/YYYY-MM-ddTHH:mm:ssZ/report.csv</code>  You can call this operation only from the organization's management account and from the us-east-1 Region.

        :param self:
        :param S3Bucket:  The name of the Amazon S3 bucket where the report will be stored; for example:  <code>awsexamplebucket</code>  For more information on S3 bucket requirements, including an example bucket policy, see the example S3 bucket policy on this page.<br/>
        :return:         """
        pass

    def tag_resources(self, Tags: TagMap, ResourceARNList: List[ResourceARN]) -> TagResourcesOutput:
        r"""Applies one or more tags to the specified resources. Note the following: <ul> <li> Not all resources can have tags. For a list of services with resources that support tagging using this operation, see <a href="https://docs.aws.amazon.com/resourcegroupstagging/latest/APIReference/supported-services.html">Services that support the Resource Groups Tagging API</a>. </li> <li> Each resource can have up to 50 tags. For other limits, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html#tag-conventions">Tag Naming and Usage Conventions</a> in the <i>AWS General Reference.</i>  </li> <li> You can only tag resources that are located in the specified AWS Region for the AWS account. </li> <li> To add tags to a resource, you need the necessary permissions for the service that the resource belongs to as well as permissions for adding tags. For more information, see the documentation for each service. </li> </ul> <important> Do not store personally identifiable information (PII) or other confidential or sensitive information in tags. We use tags to provide you with billing and administration services. Tags are not intended to be used for private or sensitive data. </important>

        :param self:
        :param Tags:  Specifies a list of tags that you want to add to the specified resources. A tag consists of a key and a value that you define.<br/>ResourceARNList:  Specifies the list of ARNs of the resources that you want to apply tags to. An ARN (Amazon Resource Name) uniquely identifies a resource. For more information, see <a href="http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a> in the <i>AWS General Reference</i>.<br/>
        :return: FailedResourcesMap:  A map containing a key-value pair for each failed item that couldn't be tagged. The key is the ARN of the failed resource. The value is a <code>FailureInfo</code> object that contains an error code, a status code, and an error message. If there are no errors, the <code>FailedResourcesMap</code> is empty.<br/>        """
        pass

    def untag_resources(self, TagKeys: List[TagKey], ResourceARNList: List[ResourceARN]) -> UntagResourcesOutput:
        r"""Removes the specified tags from the specified resources. When you specify a tag key, the action removes both that key and its associated value. The operation succeeds even if you attempt to remove tags from a resource that were already removed. Note the following: <ul> <li> To remove tags from a resource, you need the necessary permissions for the service that the resource belongs to as well as permissions for removing tags. For more information, see the documentation for the service whose resource you want to untag. </li> <li> You can only tag resources that are located in the specified AWS Region for the calling AWS account. </li> </ul>

        :param self:
        :param TagKeys:  Specifies a list of tag keys that you want to remove from the specified resources.<br/>ResourceARNList:  Specifies a list of ARNs of the resources that you want to remove tags from. An ARN (Amazon Resource Name) uniquely identifies a resource. For more information, see <a href="http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a> in the <i>AWS General Reference</i>.<br/>
        :return: FailedResourcesMap:  A map containing a key-value pair for each failed item that couldn't be untagged. The key is the ARN of the failed resource. The value is a <code>FailureInfo</code> object that contains an error code, a status code, and an error message. If there are no errors, the <code>FailedResourcesMap</code> is empty.<br/>        """
        pass





class RoboMaker(BaseClient):
    r"""This section provides documentation for the AWS RoboMaker API operations."""


    class ListDeploymentJobsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_deployment_jobs` for valid parameters"""
            pass
    class ListFleetsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_fleets` for valid parameters"""
            pass
    class ListRobotApplicationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_robot_applications` for valid parameters"""
            pass
    class ListRobotsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_robots` for valid parameters"""
            pass
    class ListSimulationApplicationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_simulation_applications` for valid parameters"""
            pass
    class ListSimulationJobsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_simulation_jobs` for valid parameters"""
            pass
    class ListSimulationJobBatchesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_simulation_job_batches` for valid parameters"""
            pass
    class ListWorldExportJobsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_world_export_jobs` for valid parameters"""
            pass
    class ListWorldGenerationJobsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_world_generation_jobs` for valid parameters"""
            pass
    class ListWorldTemplatesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_world_templates` for valid parameters"""
            pass
    class ListWorldsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_worlds` for valid parameters"""
            pass


    class BatchDeleteWorldsRequest(Mapping):
        pass
    
    class BatchDeleteWorldsResponse(Mapping):
        pass
    
    class Arn(object):
        pass
    
    class BatchDescribeSimulationJobRequest(Mapping):
        pass
    
    class BatchDescribeSimulationJobResponse(Mapping):
        pass
    
    class CancelDeploymentJobRequest(Mapping):
        pass
    
    class CancelDeploymentJobResponse(Mapping):
        pass
    
    class CancelSimulationJobRequest(Mapping):
        pass
    
    class CancelSimulationJobResponse(Mapping):
        pass
    
    class CancelSimulationJobBatchRequest(Mapping):
        pass
    
    class CancelSimulationJobBatchResponse(Mapping):
        pass
    
    class CancelWorldExportJobRequest(Mapping):
        pass
    
    class CancelWorldExportJobResponse(Mapping):
        pass
    
    class CancelWorldGenerationJobRequest(Mapping):
        pass
    
    class CancelWorldGenerationJobResponse(Mapping):
        pass
    
    class CreateDeploymentJobRequest(Mapping):
        pass
    
    class CreateDeploymentJobResponse(Mapping):
        pass
    
    class DeploymentConfig(Mapping):
        pass
    
    class DeploymentApplicationConfig(Mapping):
        pass
    
    class TagMap(object):
        pass
    
    class CreateFleetRequest(Mapping):
        pass
    
    class CreateFleetResponse(Mapping):
        pass
    
    class CreateRobotRequest(Mapping):
        pass
    
    class CreateRobotResponse(Mapping):
        pass
    
    class CreateRobotApplicationRequest(Mapping):
        pass
    
    class CreateRobotApplicationResponse(Mapping):
        pass
    
    class SourceConfig(Mapping):
        pass
    
    class RobotSoftwareSuite(Mapping):
        pass
    
    class CreateRobotApplicationVersionRequest(Mapping):
        pass
    
    class CreateRobotApplicationVersionResponse(Mapping):
        pass
    
    class CreateSimulationApplicationRequest(Mapping):
        pass
    
    class CreateSimulationApplicationResponse(Mapping):
        pass
    
    class SimulationSoftwareSuite(Mapping):
        pass
    
    class RenderingEngine(Mapping):
        pass
    
    class CreateSimulationApplicationVersionRequest(Mapping):
        pass
    
    class CreateSimulationApplicationVersionResponse(Mapping):
        pass
    
    class CreateSimulationJobRequest(Mapping):
        pass
    
    class CreateSimulationJobResponse(Mapping):
        pass
    
    class OutputLocation(Mapping):
        pass
    
    class LoggingConfig(Mapping):
        pass
    
    class JobDuration(object):
        pass
    
    class RobotApplicationConfig(Mapping):
        pass
    
    class SimulationApplicationConfig(Mapping):
        pass
    
    class DataSourceConfig(Mapping):
        pass
    
    class VPCConfig(Mapping):
        pass
    
    class Compute(Mapping):
        pass
    
    class CreateWorldExportJobRequest(Mapping):
        pass
    
    class CreateWorldExportJobResponse(Mapping):
        pass
    
    class CreateWorldGenerationJobRequest(Mapping):
        pass
    
    class CreateWorldGenerationJobResponse(Mapping):
        pass
    
    class WorldCount(Mapping):
        pass
    
    class CreateWorldTemplateRequest(Mapping):
        pass
    
    class CreateWorldTemplateResponse(Mapping):
        pass
    
    class TemplateLocation(Mapping):
        pass
    
    class DeleteFleetRequest(Mapping):
        pass
    
    class DeleteFleetResponse(Mapping):
        pass
    
    class DeleteRobotRequest(Mapping):
        pass
    
    class DeleteRobotResponse(Mapping):
        pass
    
    class DeleteRobotApplicationRequest(Mapping):
        pass
    
    class DeleteRobotApplicationResponse(Mapping):
        pass
    
    class DeleteSimulationApplicationRequest(Mapping):
        pass
    
    class DeleteSimulationApplicationResponse(Mapping):
        pass
    
    class DeleteWorldTemplateRequest(Mapping):
        pass
    
    class DeleteWorldTemplateResponse(Mapping):
        pass
    
    class DeregisterRobotRequest(Mapping):
        pass
    
    class DeregisterRobotResponse(Mapping):
        pass
    
    class DescribeDeploymentJobRequest(Mapping):
        pass
    
    class DescribeDeploymentJobResponse(Mapping):
        pass
    
    class DescribeFleetRequest(Mapping):
        pass
    
    class DescribeFleetResponse(Mapping):
        pass
    
    class DescribeRobotRequest(Mapping):
        pass
    
    class DescribeRobotResponse(Mapping):
        pass
    
    class DescribeRobotApplicationRequest(Mapping):
        pass
    
    class DescribeRobotApplicationResponse(Mapping):
        pass
    
    class DescribeSimulationApplicationRequest(Mapping):
        pass
    
    class DescribeSimulationApplicationResponse(Mapping):
        pass
    
    class DescribeSimulationJobRequest(Mapping):
        pass
    
    class DescribeSimulationJobResponse(Mapping):
        pass
    
    class DescribeSimulationJobBatchRequest(Mapping):
        pass
    
    class DescribeSimulationJobBatchResponse(Mapping):
        pass
    
    class DescribeWorldRequest(Mapping):
        pass
    
    class DescribeWorldResponse(Mapping):
        pass
    
    class DescribeWorldExportJobRequest(Mapping):
        pass
    
    class DescribeWorldExportJobResponse(Mapping):
        pass
    
    class DescribeWorldGenerationJobRequest(Mapping):
        pass
    
    class DescribeWorldGenerationJobResponse(Mapping):
        pass
    
    class DescribeWorldTemplateRequest(Mapping):
        pass
    
    class DescribeWorldTemplateResponse(Mapping):
        pass
    
    class GetWorldTemplateBodyRequest(Mapping):
        pass
    
    class GetWorldTemplateBodyResponse(Mapping):
        pass
    
    class ListDeploymentJobsRequest(Mapping):
        pass
    
    class ListDeploymentJobsResponse(Mapping):
        pass
    
    class Filter(Mapping):
        pass
    
    class ListFleetsRequest(Mapping):
        pass
    
    class ListFleetsResponse(Mapping):
        pass
    
    class ListRobotApplicationsRequest(Mapping):
        pass
    
    class ListRobotApplicationsResponse(Mapping):
        pass
    
    class ListRobotsRequest(Mapping):
        pass
    
    class ListRobotsResponse(Mapping):
        pass
    
    class ListSimulationApplicationsRequest(Mapping):
        pass
    
    class ListSimulationApplicationsResponse(Mapping):
        pass
    
    class ListSimulationJobBatchesRequest(Mapping):
        pass
    
    class ListSimulationJobBatchesResponse(Mapping):
        pass
    
    class ListSimulationJobsRequest(Mapping):
        pass
    
    class ListSimulationJobsResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class ListWorldExportJobsRequest(Mapping):
        pass
    
    class ListWorldExportJobsResponse(Mapping):
        pass
    
    class ListWorldGenerationJobsRequest(Mapping):
        pass
    
    class ListWorldGenerationJobsResponse(Mapping):
        pass
    
    class ListWorldTemplatesRequest(Mapping):
        pass
    
    class ListWorldTemplatesResponse(Mapping):
        pass
    
    class ListWorldsRequest(Mapping):
        pass
    
    class ListWorldsResponse(Mapping):
        pass
    
    class RegisterRobotRequest(Mapping):
        pass
    
    class RegisterRobotResponse(Mapping):
        pass
    
    class RestartSimulationJobRequest(Mapping):
        pass
    
    class RestartSimulationJobResponse(Mapping):
        pass
    
    class StartSimulationJobBatchRequest(Mapping):
        pass
    
    class StartSimulationJobBatchResponse(Mapping):
        pass
    
    class BatchPolicy(Mapping):
        pass
    
    class SimulationJobRequest(Mapping):
        pass
    
    class SyncDeploymentJobRequest(Mapping):
        pass
    
    class SyncDeploymentJobResponse(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateRobotApplicationRequest(Mapping):
        pass
    
    class UpdateRobotApplicationResponse(Mapping):
        pass
    
    class UpdateSimulationApplicationRequest(Mapping):
        pass
    
    class UpdateSimulationApplicationResponse(Mapping):
        pass
    
    class UpdateWorldTemplateRequest(Mapping):
        pass
    
    class UpdateWorldTemplateResponse(Mapping):
        pass
    
    def batch_delete_worlds(self, worlds: List[Arn]) -> BatchDeleteWorldsResponse:
        r"""Deletes one or more worlds in a batch operation.

        :param self:
        :param worlds:  A list of Amazon Resource Names (arns) that correspond to worlds to delete.<br/>
        :return: unprocessedWorlds:  A list of unprocessed worlds associated with the call. These worlds were not deleted.<br/>        """
        pass

    def batch_describe_simulation_job(self, jobs: List[Arn]) -> BatchDescribeSimulationJobResponse:
        r"""Describes one or more simulation jobs.

        :param self:
        :param jobs:  A list of Amazon Resource Names (ARNs) of simulation jobs to describe.<br/>
        :return: unprocessedJobs:  A list of unprocessed simulation job Amazon Resource Names (ARNs).<br/>jobs:  A list of simulation jobs.<br/>        """
        pass

    def cancel_deployment_job(self, job: str) -> CancelDeploymentJobResponse:
        r"""Cancels the specified deployment job.

        :param self:
        :param job:  The deployment job ARN to cancel.<br/>
        :return:         """
        pass

    def cancel_simulation_job(self, job: str) -> CancelSimulationJobResponse:
        r"""Cancels the specified simulation job.

        :param self:
        :param job:  The simulation job ARN to cancel.<br/>
        :return:         """
        pass

    def cancel_simulation_job_batch(self, batch: str) -> CancelSimulationJobBatchResponse:
        r"""Cancels a simulation job batch. When you cancel a simulation job batch, you are also cancelling all of the active simulation jobs created as part of the batch. 

        :param self:
        :param batch:  The id of the batch to cancel.<br/>
        :return:         """
        pass

    def cancel_world_export_job(self, job: str) -> CancelWorldExportJobResponse:
        r"""Cancels the specified export job.

        :param self:
        :param job:  The Amazon Resource Name (arn) of the world export job to cancel.<br/>
        :return:         """
        pass

    def cancel_world_generation_job(self, job: str) -> CancelWorldGenerationJobResponse:
        r"""Cancels the specified world generator job.

        :param self:
        :param job:  The Amazon Resource Name (arn) of the world generator job to cancel.<br/>
        :return:         """
        pass

    def create_deployment_job(self, deploymentApplicationConfigs: List[DeploymentApplicationConfig], fleet: str, clientRequestToken: str, deploymentConfig: DeploymentConfig=None, tags: TagMap=None) -> CreateDeploymentJobResponse:
        r"""Deploys a specific version of a robot application to robots in a fleet. The robot application must have a numbered <code>applicationVersion</code> for consistency reasons. To create a new version, use <code>CreateRobotApplicationVersion</code> or see <a href="https://docs.aws.amazon.com/robomaker/latest/dg/create-robot-application-version.html">Creating a Robot Application Version</a>.  <note> After 90 days, deployment jobs expire and will be deleted. They will no longer be accessible.  </note>

        :param self:
        :param tags:  A map that contains tag keys and tag values that are attached to the deployment job.<br/>deploymentApplicationConfigs:  The deployment application configuration.<br/>fleet:  The Amazon Resource Name (ARN) of the fleet to deploy.<br/>clientRequestToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.<br/>deploymentConfig:  The requested deployment configuration.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>downloadConditionFile</i> The download condition file.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>downloadConditionFile</b>: The download condition file.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>robotDeploymentTimeoutInSeconds</i> The amount of time, in seconds, to wait for deployment to a single robot to complete. Choose a time between 1 minute and 7 days. The default is 5 hours.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>failureThresholdPercentage</i> The percentage of deployments that need to fail before stopping deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>concurrentDeploymentPercentage</i> The percentage of robots receiving the deployment at the same time.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>etag</i> The etag of the object.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>key</i> The key of the object.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>bucket</i> The bucket containing the object.<br/>
        :return: tags:  The list of all tags added to the deployment job.<br/>deploymentConfig:  The deployment configuration.:<br/>createdAt:  The time, in milliseconds since the epoch, when the fleet was created.<br/>failureCode:  The failure code of the simulation job if it failed: <dl> <dt>BadPermissionError</dt> <dd> AWS Greengrass requires a service-level role permission to access other services. The role must include the <a href="https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/service-role/AWSGreengrassResourceAccessRolePolicy$jsonEditor"> <code>AWSGreengrassResourceAccessRolePolicy</code> managed policy</a>.  </dd> <dt>ExtractingBundleFailure</dt> <dd> The robot application could not be extracted from the bundle. </dd> <dt>FailureThresholdBreached</dt> <dd> The percentage of robots that could not be updated exceeded the percentage set for the deployment. </dd> <dt>GreengrassDeploymentFailed</dt> <dd> The robot application could not be deployed to the robot. </dd> <dt>GreengrassGroupVersionDoesNotExist</dt> <dd> The AWS Greengrass group or version associated with a robot is missing. </dd> <dt>InternalServerError</dt> <dd> An internal error has occurred. Retry your request, but if the problem persists, contact us with details. </dd> <dt>MissingRobotApplicationArchitecture</dt> <dd> The robot application does not have a source that matches the architecture of the robot. </dd> <dt>MissingRobotDeploymentResource</dt> <dd> One or more of the resources specified for the robot application are missing. For example, does the robot application have the correct launch package and launch file? </dd> <dt>PostLaunchFileFailure</dt> <dd> The post-launch script failed. </dd> <dt>PreLaunchFileFailure</dt> <dd> The pre-launch script failed. </dd> <dt>ResourceNotFound</dt> <dd> One or more deployment resources are missing. For example, do robot application source bundles still exist?  </dd> <dt>RobotDeploymentNoResponse</dt> <dd> There is no response from the robot. It might not be powered on or connected to the internet. </dd> </dl><br/>failureReason:  The failure reason of the deployment job if it failed.<br/>deploymentApplicationConfigs:  The deployment application configuration.<br/>status:  The status of the deployment job.<br/>fleet:  The target fleet for the deployment job.<br/>arn:  The Amazon Resource Name (ARN) of the deployment job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>downloadConditionFile</i> The download condition file.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>downloadConditionFile</b>: The download condition file.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>robotDeploymentTimeoutInSeconds</i> The amount of time, in seconds, to wait for deployment to a single robot to complete. Choose a time between 1 minute and 7 days. The default is 5 hours.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>failureThresholdPercentage</i> The percentage of deployments that need to fail before stopping deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>concurrentDeploymentPercentage</i> The percentage of robots receiving the deployment at the same time.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>etag</i> The etag of the object.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>key</i> The key of the object.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>bucket</i> The bucket containing the object.<br/>        """
        pass

    def create_fleet(self, name: str, tags: TagMap=None) -> CreateFleetResponse:
        r"""Creates a fleet, a logical group of robots running the same robot application.

        :param self:
        :param tags:  A map that contains tag keys and tag values that are attached to the fleet.<br/>name:  The name of the fleet.<br/>
        :return: tags:  The list of all tags added to the fleet.<br/>createdAt:  The time, in milliseconds since the epoch, when the fleet was created.<br/>name:  The name of the fleet.<br/>arn:  The Amazon Resource Name (ARN) of the fleet.<br/>        """
        pass

    def create_robot(self, greengrassGroupId: str, architecture: str, name: str, tags: TagMap=None) -> CreateRobotResponse:
        r"""Creates a robot.

        :param self:
        :param tags:  A map that contains tag keys and tag values that are attached to the robot.<br/>greengrassGroupId:  The Greengrass group id.<br/>architecture:  The target architecture of the robot.<br/>name:  The name for the robot.<br/>
        :return: tags:  The list of all tags added to the robot.<br/>architecture:  The target architecture of the robot.<br/>greengrassGroupId:  The Amazon Resource Name (ARN) of the Greengrass group associated with the robot.<br/>createdAt:  The time, in milliseconds since the epoch, when the robot was created.<br/>name:  The name of the robot.<br/>arn:  The Amazon Resource Name (ARN) of the robot.<br/>        """
        pass

    def create_robot_application(self, robotSoftwareSuite: RobotSoftwareSuite, sources: List[SourceConfig], name: str, tags: TagMap=None) -> CreateRobotApplicationResponse:
        r"""Creates a robot application. 

        :param self:
        :param tags:  A map that contains tag keys and tag values that are attached to the robot application.<br/>robotSoftwareSuite:  The robot software suite (ROS distribuition) used by the robot application.:<br/>sources:  The sources of the robot application.<br/>name:  The name of the robot application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The version of the robot software suite (ROS distribution).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the robot software suite (ROS distribution).<br/>
        :return: tags:  The list of all tags added to the robot application.<br/>revisionId:  The revision id of the robot application.<br/>lastUpdatedAt:  The time, in milliseconds since the epoch, when the robot application was last updated.<br/>robotSoftwareSuite:  The robot software suite (ROS distribution) used by the robot application.:<br/>sources:  The sources of the robot application.<br/>version:  The version of the robot application.<br/>name:  The name of the robot application.<br/>arn:  The Amazon Resource Name (ARN) of the robot application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The version of the robot software suite (ROS distribution).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the robot software suite (ROS distribution).<br/>        """
        pass

    def create_robot_application_version(self, application: str, currentRevisionId: str=None) -> CreateRobotApplicationVersionResponse:
        r"""Creates a version of a robot application.

        :param self:
        :param currentRevisionId:  The current revision id for the robot application. If you provide a value and it matches the latest revision ID, a new version will be created.<br/>application:  The application information for the robot application.<br/>
        :return: revisionId:  The revision id of the robot application.<br/>lastUpdatedAt:  The time, in milliseconds since the epoch, when the robot application was last updated.<br/>robotSoftwareSuite:  The robot software suite (ROS distribution) used by the robot application.:<br/>sources:  The sources of the robot application.<br/>version:  The version of the robot application.<br/>name:  The name of the robot application.<br/>arn:  The Amazon Resource Name (ARN) of the robot application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The version of the robot software suite (ROS distribution).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the robot software suite (ROS distribution).<br/>        """
        pass

    def create_simulation_application(self, robotSoftwareSuite: RobotSoftwareSuite, simulationSoftwareSuite: SimulationSoftwareSuite, sources: List[SourceConfig], name: str, renderingEngine: RenderingEngine=None, tags: TagMap=None) -> CreateSimulationApplicationResponse:
        r"""Creates a simulation application.

        :param self:
        :param tags:  A map that contains tag keys and tag values that are attached to the simulation application.<br/>renderingEngine:  The rendering engine for the simulation application.:<br/>robotSoftwareSuite:  The robot software suite (ROS distribution) used by the simulation application.:<br/>simulationSoftwareSuite:  The simulation software suite used by the simulation application.:<br/>sources:  The sources of the simulation application.<br/>name:  The name of the simulation application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The version of the simulation software suite.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the simulation software suite.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The version of the robot software suite (ROS distribution).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the robot software suite (ROS distribution).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The version of the rendering engine.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the rendering engine.<br/>
        :return: tags:  The list of all tags added to the simulation application.<br/>revisionId:  The revision id of the simulation application.<br/>lastUpdatedAt:  The time, in milliseconds since the epoch, when the simulation application was last updated.<br/>renderingEngine:  The rendering engine for the simulation application.:<br/>robotSoftwareSuite:  Information about the robot software suite (ROS distribution).:<br/>simulationSoftwareSuite:  The simulation software suite used by the simulation application.:<br/>sources:  The sources of the simulation application.<br/>version:  The version of the simulation application.<br/>name:  The name of the simulation application.<br/>arn:  The Amazon Resource Name (ARN) of the simulation application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The version of the simulation software suite.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the simulation software suite.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The version of the robot software suite (ROS distribution).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the robot software suite (ROS distribution).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The version of the rendering engine.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the rendering engine.<br/>        """
        pass

    def create_simulation_application_version(self, application: str, currentRevisionId: str=None) -> CreateSimulationApplicationVersionResponse:
        r"""Creates a simulation application with a specific revision id.

        :param self:
        :param currentRevisionId:  The current revision id for the simulation application. If you provide a value and it matches the latest revision ID, a new version will be created.<br/>application:  The application information for the simulation application.<br/>
        :return: revisionId:  The revision ID of the simulation application.<br/>lastUpdatedAt:  The time, in milliseconds since the epoch, when the simulation application was last updated.<br/>renderingEngine:  The rendering engine for the simulation application.:<br/>robotSoftwareSuite:  Information about the robot software suite (ROS distribution).:<br/>simulationSoftwareSuite:  The simulation software suite used by the simulation application.:<br/>sources:  The sources of the simulation application.<br/>version:  The version of the simulation application.<br/>name:  The name of the simulation application.<br/>arn:  The Amazon Resource Name (ARN) of the simulation application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The version of the simulation software suite.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the simulation software suite.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The version of the robot software suite (ROS distribution).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the robot software suite (ROS distribution).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The version of the rendering engine.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the rendering engine.<br/>        """
        pass

    def create_simulation_job(self, iamRole: str, maxJobDurationInSeconds: JobDuration, clientRequestToken: str=None, outputLocation: OutputLocation=None, loggingConfig: LoggingConfig=None, failureBehavior: str=None, robotApplications: List[RobotApplicationConfig]=None, simulationApplications: List[SimulationApplicationConfig]=None, dataSources: List[DataSourceConfig]=None, tags: TagMap=None, vpcConfig: VPCConfig=None, compute: Compute=None) -> CreateSimulationJobResponse:
        r"""Creates a simulation job. <note> After 90 days, simulation jobs expire and will be deleted. They will no longer be accessible.  </note>

        :param self:
        :param compute:  Compute information for the simulation job.:<br/>vpcConfig:  If your simulation job accesses resources in a VPC, you provide this parameter identifying the list of security group IDs and subnet IDs. These must belong to the same VPC. You must provide at least one security group and one subnet ID. :<br/>tags:  A map that contains tag keys and tag values that are attached to the simulation job.<br/>dataSources:  Specify data sources to mount read-only files from S3 into your simulation. These files are available under <code>/opt/robomaker/datasources/data_source_name</code>.  <note> There is a limit of 100 files and a combined size of 25GB for all <code>DataSourceConfig</code> objects.  </note><br/>simulationApplications:  The simulation application to use in the simulation job.<br/>robotApplications:  The robot application to use in the simulation job.<br/>failureBehavior:  The failure behavior the simulation job. <dl> <dt>Continue</dt> <dd> Restart the simulation job in the same host instance. </dd> <dt>Fail</dt> <dd> Stop the simulation job and terminate the instance. </dd> </dl><br/>iamRole:  The IAM role name that allows the simulation instance to call the AWS APIs that are specified in its associated policies on your behalf. This is how credentials are passed in to your simulation job. <br/>maxJobDurationInSeconds:  The maximum simulation job duration in seconds (up to 14 days or 1,209,600 seconds. When <code>maxJobDurationInSeconds</code> is reached, the simulation job will status will transition to <code>Completed</code>.<br/>loggingConfig:  The logging configuration.:<br/>outputLocation:  Location for output files generated by the simulation job.:<br/>clientRequestToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>s3Prefix</i> The S3 folder in the <code>s3Bucket</code> where output files will be placed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>s3Bucket</i> The S3 bucket for output.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>recordAllRosTopics</i> A boolean indicating whether to record all ROS topics.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>assignPublicIp</i> A boolean indicating whether to assign a public IP address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>securityGroups</i> A list of one or more security groups IDs in your VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>subnets</i> A list of one or more subnet IDs in your VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>simulationUnitLimit</i> The simulation unit limit. Your simulation is allocated CPU and memory proportional to the supplied simulation unit limit. A simulation unit is 1 vcpu and 2GB of memory. You are only billed for the SU utilization you consume up to the maximim value provided. The default is 15. <br/>
        :return: compute:  Compute information for the simulation job.:<br/>vpcConfig:  Information about the vpc configuration.:<br/>tags:  The list of all tags added to the simulation job.<br/>dataSources:  The data sources for the simulation job.<br/>simulationApplications:  The simulation application used by the simulation job.<br/>robotApplications:  The robot application used by the simulation job.<br/>iamRole:  The IAM role that allows the simulation job to call the AWS APIs that are specified in its associated policies on your behalf.<br/>simulationTimeMillis:  The simulation job execution duration in milliseconds.<br/>maxJobDurationInSeconds:  The maximum simulation job duration in seconds. <br/>loggingConfig:  The logging configuration.:<br/>outputLocation:  Simulation job output files location.:<br/>clientRequestToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.<br/>failureCode:  The failure code of the simulation job if it failed: <dl> <dt>InternalServiceError</dt> <dd> Internal service error. </dd> <dt>RobotApplicationCrash</dt> <dd> Robot application exited abnormally. </dd> <dt>SimulationApplicationCrash</dt> <dd>  Simulation application exited abnormally. </dd> <dt>BadPermissionsRobotApplication</dt> <dd> Robot application bundle could not be downloaded. </dd> <dt>BadPermissionsSimulationApplication</dt> <dd> Simulation application bundle could not be downloaded. </dd> <dt>BadPermissionsS3Output</dt> <dd> Unable to publish outputs to customer-provided S3 bucket. </dd> <dt>BadPermissionsCloudwatchLogs</dt> <dd> Unable to publish logs to customer-provided CloudWatch Logs resource. </dd> <dt>SubnetIpLimitExceeded</dt> <dd> Subnet IP limit exceeded. </dd> <dt>ENILimitExceeded</dt> <dd> ENI limit exceeded. </dd> <dt>BadPermissionsUserCredentials</dt> <dd> Unable to use the Role provided. </dd> <dt>InvalidBundleRobotApplication</dt> <dd> Robot bundle cannot be extracted (invalid format, bundling error, or other issue). </dd> <dt>InvalidBundleSimulationApplication</dt> <dd> Simulation bundle cannot be extracted (invalid format, bundling error, or other issue). </dd> <dt>RobotApplicationVersionMismatchedEtag</dt> <dd> Etag for RobotApplication does not match value during version creation. </dd> <dt>SimulationApplicationVersionMismatchedEtag</dt> <dd> Etag for SimulationApplication does not match value during version creation. </dd> </dl><br/>failureBehavior:  the failure behavior for the simulation job.<br/>lastUpdatedAt:  The time, in milliseconds since the epoch, when the simulation job was last updated.<br/>lastStartedAt:  The time, in milliseconds since the epoch, when the simulation job was last started.<br/>status:  The status of the simulation job.<br/>arn:  The Amazon Resource Name (ARN) of the simulation job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>s3Prefix</i> The S3 folder in the <code>s3Bucket</code> where output files will be placed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>s3Bucket</i> The S3 bucket for output.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>recordAllRosTopics</i> A boolean indicating whether to record all ROS topics.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>assignPublicIp</i> A boolean indicating if a public IP was assigned.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>vpcId</i> The VPC ID associated with your simulation job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>securityGroups</i> A list of security group IDs associated with the simulation job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>subnets</i> A list of subnet IDs associated with the simulation job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>simulationUnitLimit</i> The simulation unit limit. Your simulation is allocated CPU and memory proportional to the supplied simulation unit limit. A simulation unit is 1 vcpu and 2GB of memory. You are only billed for the SU utilization you consume up to the maximim value provided. The default is 15. <br/>        """
        pass

    def create_world_export_job(self, iamRole: str, outputLocation: OutputLocation, worlds: List[Arn], clientRequestToken: str=None, tags: TagMap=None) -> CreateWorldExportJobResponse:
        r"""Creates a world export job.

        :param self:
        :param tags:  A map that contains tag keys and tag values that are attached to the world export job.<br/>iamRole:  The IAM role that the world export process uses to access the Amazon S3 bucket and put the export.<br/>outputLocation:  The output location.:<br/>worlds:  A list of Amazon Resource Names (arns) that correspond to worlds to export.<br/>clientRequestToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>s3Prefix</i> The S3 folder in the <code>s3Bucket</code> where output files will be placed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>s3Bucket</i> The S3 bucket for output.<br/>
        :return: tags:  A map that contains tag keys and tag values that are attached to the world export job.<br/>iamRole:  The IAM role that the world export process uses to access the Amazon S3 bucket and put the export. <br/>outputLocation:  The output location.:<br/>clientRequestToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.<br/>failureCode:  The failure code of the world export job if it failed: <dl> <dt>InternalServiceError</dt> <dd> Internal service error. </dd> <dt>LimitExceeded</dt> <dd> The requested resource exceeds the maximum number allowed, or the number of concurrent stream requests exceeds the maximum number allowed.  </dd> <dt>ResourceNotFound</dt> <dd> The specified resource could not be found.  </dd> <dt>RequestThrottled</dt> <dd> The request was throttled. </dd> <dt>InvalidInput</dt> <dd> An input parameter in the request is not valid. </dd> <dt>AllWorldGenerationFailed</dt> <dd> All of the worlds in the world generation job failed. This can happen if your <code>worldCount</code> is greater than 50 or less than 1.  </dd> </dl> For more information about troubleshooting WorldForge, see <a href="https://docs.aws.amazon.com/robomaker/latest/dg/troubleshooting-worldforge.html">Troubleshooting Simulation WorldForge</a>. <br/>createdAt:  The time, in milliseconds since the epoch, when the world export job was created.<br/>status:  The status of the world export job. <dl> <dt>Pending</dt> <dd> The world export job request is pending. </dd> <dt>Running</dt> <dd> The world export job is running.  </dd> <dt>Completed</dt> <dd> The world export job completed.  </dd> <dt>Failed</dt> <dd> The world export job failed. See <code>failureCode</code> for more information.  </dd> <dt>Canceled</dt> <dd> The world export job was cancelled. </dd> <dt>Canceling</dt> <dd> The world export job is being cancelled. </dd> </dl><br/>arn:  The Amazon Resource Name (ARN) of the world export job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>s3Prefix</i> The S3 folder in the <code>s3Bucket</code> where output files will be placed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>s3Bucket</i> The S3 bucket for output.<br/>        """
        pass

    def create_world_generation_job(self, worldCount: WorldCount, template: str, clientRequestToken: str=None, tags: TagMap=None, worldTags: TagMap=None) -> CreateWorldGenerationJobResponse:
        r"""Creates worlds using the specified template.

        :param self:
        :param worldTags:  A map that contains tag keys and tag values that are attached to the generated worlds.<br/>tags:  A map that contains tag keys and tag values that are attached to the world generator job.<br/>worldCount:  Information about the world count.:<br/>template:  The Amazon Resource Name (arn) of the world template describing the worlds you want to create.<br/>clientRequestToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>interiorCountPerFloorplan</i> The number of unique interiors per floorplan.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>floorplanCount</i> The number of unique floorplans.<br/>
        :return: worldTags:  A map that contains tag keys and tag values that are attached to the generated worlds.<br/>tags:  A map that contains tag keys and tag values that are attached to the world generator job.<br/>worldCount:  Information about the world count. :<br/>template:  The Amazon Resource Name (arn) of the world template.<br/>clientRequestToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.<br/>failureCode:  The failure code of the world generator job if it failed: <dl> <dt>InternalServiceError</dt> <dd> Internal service error. </dd> <dt>LimitExceeded</dt> <dd> The requested resource exceeds the maximum number allowed, or the number of concurrent stream requests exceeds the maximum number allowed.  </dd> <dt>ResourceNotFound</dt> <dd> The specified resource could not be found.  </dd> <dt>RequestThrottled</dt> <dd> The request was throttled. </dd> <dt>InvalidInput</dt> <dd> An input parameter in the request is not valid. </dd> </dl><br/>createdAt:  The time, in milliseconds since the epoch, when the world generator job was created.<br/>status:  The status of the world generator job. <dl> <dt>Pending</dt> <dd> The world generator job request is pending. </dd> <dt>Running</dt> <dd> The world generator job is running.  </dd> <dt>Completed</dt> <dd> The world generator job completed.  </dd> <dt>Failed</dt> <dd> The world generator job failed. See <code>failureCode</code> for more information.  </dd> <dt>PartialFailed</dt> <dd> Some worlds did not generate. </dd> <dt>Canceled</dt> <dd> The world generator job was cancelled. </dd> <dt>Canceling</dt> <dd> The world generator job is being cancelled. </dd> </dl><br/>arn:  The Amazon Resource Name (ARN) of the world generator job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>interiorCountPerFloorplan</i> The number of unique interiors per floorplan.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>floorplanCount</i> The number of unique floorplans.<br/>        """
        pass

    def create_world_template(self, clientRequestToken: str=None, name: str=None, templateBody: str=None, templateLocation: TemplateLocation=None, tags: TagMap=None) -> CreateWorldTemplateResponse:
        r"""Creates a world template.

        :param self:
        :param tags:  A map that contains tag keys and tag values that are attached to the world template.<br/>templateLocation:  The location of the world template.:<br/>templateBody:  The world template body.<br/>name:  The name of the world template.<br/>clientRequestToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>s3Key</i> The list of S3 keys identifying the data source files.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>s3Bucket</i> The Amazon S3 bucket name.<br/>
        :return: tags:  A map that contains tag keys and tag values that are attached to the world template.<br/>name:  The name of the world template.<br/>createdAt:  The time, in milliseconds since the epoch, when the world template was created.<br/>clientRequestToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.<br/>arn:  The Amazon Resource Name (ARN) of the world template.<br/>        """
        pass

    def delete_fleet(self, fleet: str) -> DeleteFleetResponse:
        r"""Deletes a fleet.

        :param self:
        :param fleet:  The Amazon Resource Name (ARN) of the fleet.<br/>
        :return:         """
        pass

    def delete_robot(self, robot: str) -> DeleteRobotResponse:
        r"""Deletes a robot.

        :param self:
        :param robot:  The Amazon Resource Name (ARN) of the robot.<br/>
        :return:         """
        pass

    def delete_robot_application(self, application: str, applicationVersion: str=None) -> DeleteRobotApplicationResponse:
        r"""Deletes a robot application.

        :param self:
        :param applicationVersion:  The version of the robot application to delete.<br/>application:  The Amazon Resource Name (ARN) of the the robot application.<br/>
        :return:         """
        pass

    def delete_simulation_application(self, application: str, applicationVersion: str=None) -> DeleteSimulationApplicationResponse:
        r"""Deletes a simulation application.

        :param self:
        :param applicationVersion:  The version of the simulation application to delete.<br/>application:  The application information for the simulation application to delete.<br/>
        :return:         """
        pass

    def delete_world_template(self, template: str) -> DeleteWorldTemplateResponse:
        r"""Deletes a world template.

        :param self:
        :param template:  The Amazon Resource Name (arn) of the world template you want to delete.<br/>
        :return:         """
        pass

    def deregister_robot(self, robot: str, fleet: str) -> DeregisterRobotResponse:
        r"""Deregisters a robot.

        :param self:
        :param robot:  The Amazon Resource Name (ARN) of the robot.<br/>fleet:  The Amazon Resource Name (ARN) of the fleet.<br/>
        :return: robot:  The Amazon Resource Name (ARN) of the robot.<br/>fleet:  The Amazon Resource Name (ARN) of the fleet.<br/>        """
        pass

    def describe_deployment_job(self, job: str) -> DescribeDeploymentJobResponse:
        r"""Describes a deployment job.

        :param self:
        :param job:  The Amazon Resource Name (ARN) of the deployment job.<br/>
        :return: tags:  The list of all tags added to the specified deployment job.<br/>robotDeploymentSummary:  A list of robot deployment summaries.<br/>createdAt:  The time, in milliseconds since the epoch, when the deployment job was created.<br/>failureCode:  The deployment job failure code.<br/>failureReason:  A short description of the reason why the deployment job failed.<br/>deploymentApplicationConfigs:  The deployment application configuration.<br/>deploymentConfig:  The deployment configuration.:<br/>status:  The status of the deployment job.<br/>fleet:  The Amazon Resource Name (ARN) of the fleet.<br/>arn:  The Amazon Resource Name (ARN) of the deployment job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>downloadConditionFile</i> The download condition file.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>downloadConditionFile</b>: The download condition file.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>robotDeploymentTimeoutInSeconds</i> The amount of time, in seconds, to wait for deployment to a single robot to complete. Choose a time between 1 minute and 7 days. The default is 5 hours.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>failureThresholdPercentage</i> The percentage of deployments that need to fail before stopping deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>concurrentDeploymentPercentage</i> The percentage of robots receiving the deployment at the same time.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>etag</i> The etag of the object.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>key</i> The key of the object.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>bucket</i> The bucket containing the object.<br/>        """
        pass

    def describe_fleet(self, fleet: str) -> DescribeFleetResponse:
        r"""Describes a fleet.

        :param self:
        :param fleet:  The Amazon Resource Name (ARN) of the fleet.<br/>
        :return: tags:  The list of all tags added to the specified fleet.<br/>lastDeploymentTime:  The time of the last deployment.<br/>lastDeploymentJob:  The Amazon Resource Name (ARN) of the last deployment job.<br/>lastDeploymentStatus:  The status of the last deployment.<br/>createdAt:  The time, in milliseconds since the epoch, when the fleet was created.<br/>robots:  A list of robots.<br/>arn:  The Amazon Resource Name (ARN) of the fleet.<br/>name:  The name of the fleet.<br/>        """
        pass

    def describe_robot(self, robot: str) -> DescribeRobotResponse:
        r"""Describes a robot.

        :param self:
        :param robot:  The Amazon Resource Name (ARN) of the robot to be described.<br/>
        :return: tags:  The list of all tags added to the specified robot.<br/>lastDeploymentTime:  The time of the last deployment job.<br/>lastDeploymentJob:  The Amazon Resource Name (ARN) of the last deployment job.<br/>architecture:  The target architecture of the robot application.<br/>createdAt:  The time, in milliseconds since the epoch, when the robot was created.<br/>greengrassGroupId:  The Greengrass group id.<br/>status:  The status of the fleet.<br/>fleetArn:  The Amazon Resource Name (ARN) of the fleet.<br/>name:  The name of the robot.<br/>arn:  The Amazon Resource Name (ARN) of the robot.<br/>        """
        pass

    def describe_robot_application(self, application: str, applicationVersion: str=None) -> DescribeRobotApplicationResponse:
        r"""Describes a robot application.

        :param self:
        :param applicationVersion:  The version of the robot application to describe.<br/>application:  The Amazon Resource Name (ARN) of the robot application.<br/>
        :return: tags:  The list of all tags added to the specified robot application.<br/>lastUpdatedAt:  The time, in milliseconds since the epoch, when the robot application was last updated.<br/>revisionId:  The revision id of the robot application.<br/>robotSoftwareSuite:  The robot software suite (ROS distribution) used by the robot application.:<br/>sources:  The sources of the robot application.<br/>version:  The version of the robot application.<br/>name:  The name of the robot application.<br/>arn:  The Amazon Resource Name (ARN) of the robot application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The version of the robot software suite (ROS distribution).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the robot software suite (ROS distribution).<br/>        """
        pass

    def describe_simulation_application(self, application: str, applicationVersion: str=None) -> DescribeSimulationApplicationResponse:
        r"""Describes a simulation application.

        :param self:
        :param applicationVersion:  The version of the simulation application to describe.<br/>application:  The application information for the simulation application.<br/>
        :return: tags:  The list of all tags added to the specified simulation application.<br/>lastUpdatedAt:  The time, in milliseconds since the epoch, when the simulation application was last updated.<br/>revisionId:  The revision id of the simulation application.<br/>renderingEngine:  The rendering engine for the simulation application.:<br/>robotSoftwareSuite:  Information about the robot software suite (ROS distribution).:<br/>simulationSoftwareSuite:  The simulation software suite used by the simulation application.:<br/>sources:  The sources of the simulation application.<br/>version:  The version of the simulation application.<br/>name:  The name of the simulation application.<br/>arn:  The Amazon Resource Name (ARN) of the robot simulation application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The version of the simulation software suite.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the simulation software suite.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The version of the robot software suite (ROS distribution).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the robot software suite (ROS distribution).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The version of the rendering engine.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the rendering engine.<br/>        """
        pass

    def describe_simulation_job(self, job: str) -> DescribeSimulationJobResponse:
        r"""Describes a simulation job.

        :param self:
        :param job:  The Amazon Resource Name (ARN) of the simulation job to be described.<br/>
        :return: compute:  Compute information for the simulation job.:<br/>networkInterface:  The network interface information for the simulation job.:<br/>vpcConfig:  The VPC configuration.:<br/>tags:  The list of all tags added to the specified simulation job.<br/>dataSources:  The data sources for the simulation job.<br/>simulationApplications:  A list of simulation applications.<br/>robotApplications:  A list of robot applications.<br/>iamRole:  The IAM role that allows the simulation instance to call the AWS APIs that are specified in its associated policies on your behalf.<br/>simulationTimeMillis:  The simulation job execution duration in milliseconds.<br/>maxJobDurationInSeconds:  The maximum job duration in seconds. The value must be 8 days (691,200 seconds) or less.<br/>loggingConfig:  The logging configuration.:<br/>outputLocation:  Location for output files generated by the simulation job.:<br/>clientRequestToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.<br/>failureReason:  Details about why the simulation job failed. For more information about troubleshooting, see <a href="https://docs.aws.amazon.com/robomaker/latest/dg/troubleshooting.html">Troubleshooting</a>.<br/>failureCode:  The failure code of the simulation job if it failed: <dl> <dt>InternalServiceError</dt> <dd> Internal service error. </dd> <dt>RobotApplicationCrash</dt> <dd> Robot application exited abnormally. </dd> <dt>SimulationApplicationCrash</dt> <dd>  Simulation application exited abnormally. </dd> <dt>BadPermissionsRobotApplication</dt> <dd> Robot application bundle could not be downloaded. </dd> <dt>BadPermissionsSimulationApplication</dt> <dd> Simulation application bundle could not be downloaded. </dd> <dt>BadPermissionsS3Output</dt> <dd> Unable to publish outputs to customer-provided S3 bucket. </dd> <dt>BadPermissionsCloudwatchLogs</dt> <dd> Unable to publish logs to customer-provided CloudWatch Logs resource. </dd> <dt>SubnetIpLimitExceeded</dt> <dd> Subnet IP limit exceeded. </dd> <dt>ENILimitExceeded</dt> <dd> ENI limit exceeded. </dd> <dt>BadPermissionsUserCredentials</dt> <dd> Unable to use the Role provided. </dd> <dt>InvalidBundleRobotApplication</dt> <dd> Robot bundle cannot be extracted (invalid format, bundling error, or other issue). </dd> <dt>InvalidBundleSimulationApplication</dt> <dd> Simulation bundle cannot be extracted (invalid format, bundling error, or other issue). </dd> <dt>RobotApplicationVersionMismatchedEtag</dt> <dd> Etag for RobotApplication does not match value during version creation. </dd> <dt>SimulationApplicationVersionMismatchedEtag</dt> <dd> Etag for SimulationApplication does not match value during version creation. </dd> </dl><br/>failureBehavior:  The failure behavior for the simulation job.<br/>lastUpdatedAt:  The time, in milliseconds since the epoch, when the simulation job was last updated.<br/>lastStartedAt:  The time, in milliseconds since the epoch, when the simulation job was last started.<br/>status:  The status of the simulation job.<br/>name:  The name of the simulation job.<br/>arn:  The Amazon Resource Name (ARN) of the simulation job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>s3Prefix</i> The S3 folder in the <code>s3Bucket</code> where output files will be placed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>s3Bucket</i> The S3 bucket for output.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>recordAllRosTopics</i> A boolean indicating whether to record all ROS topics.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>assignPublicIp</i> A boolean indicating if a public IP was assigned.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>vpcId</i> The VPC ID associated with your simulation job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>securityGroups</i> A list of security group IDs associated with the simulation job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>subnets</i> A list of subnet IDs associated with the simulation job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>publicIpAddress</i> The IPv4 public address of the network interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>privateIpAddress</i> The IPv4 address of the network interface within the subnet.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>networkInterfaceId</i> The ID of the network interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>simulationUnitLimit</i> The simulation unit limit. Your simulation is allocated CPU and memory proportional to the supplied simulation unit limit. A simulation unit is 1 vcpu and 2GB of memory. You are only billed for the SU utilization you consume up to the maximim value provided. The default is 15. <br/>        """
        pass

    def describe_simulation_job_batch(self, batch: str) -> DescribeSimulationJobBatchResponse:
        r"""Describes a simulation job batch.

        :param self:
        :param batch:  The id of the batch to describe.<br/>
        :return: tags:  A map that contains tag keys and tag values that are attached to the simulation job batch.<br/>createdRequests:  A list of created simulation job summaries.<br/>pendingRequests:  A list of pending simulation job requests. These requests have not yet been created into simulation jobs.<br/>failedRequests:  A list of failed create simulation job requests. The request failed to be created into a simulation job. Failed requests do not have a simulation job ID. <br/>failureReason:  The reason the simulation job batch failed.<br/>failureCode:  The failure code of the simulation job batch.<br/>batchPolicy:  The batch policy.:<br/>clientRequestToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.<br/>createdAt:  The time, in milliseconds since the epoch, when the simulation job batch was created.<br/>lastUpdatedAt:  The time, in milliseconds since the epoch, when the simulation job batch was last updated.<br/>status:  The status of the batch. <dl> <dt>Pending</dt> <dd> The simulation job batch request is pending. </dd> <dt>InProgress</dt> <dd> The simulation job batch is in progress.  </dd> <dt>Failed</dt> <dd> The simulation job batch failed. One or more simulation job requests could not be completed due to an internal failure (like <code>InternalServiceError</code>). See <code>failureCode</code> and <code>failureReason</code> for more information. </dd> <dt>Completed</dt> <dd> The simulation batch job completed. A batch is complete when (1) there are no pending simulation job requests in the batch and none of the failed simulation job requests are due to <code>InternalServiceError</code> and (2) when all created simulation jobs have reached a terminal state (for example, <code>Completed</code> or <code>Failed</code>).  </dd> <dt>Canceled</dt> <dd> The simulation batch job was cancelled. </dd> <dt>Canceling</dt> <dd> The simulation batch job is being cancelled. </dd> <dt>Completing</dt> <dd> The simulation batch job is completing. </dd> <dt>TimingOut</dt> <dd> The simulation job batch is timing out. If a batch timing out, and there are pending requests that were failing due to an internal failure (like <code>InternalServiceError</code>), the batch status will be <code>Failed</code>. If there are no such failing request, the batch status will be <code>TimedOut</code>.  </dd> <dt>TimedOut</dt> <dd> The simulation batch job timed out. </dd> </dl><br/>arn:  The Amazon Resource Name (ARN) of the batch.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>maxConcurrency</i> The number of active simulation jobs create as part of the batch that can be in an active state at the same time.  Active states include: <code>Pending</code>,<code>Preparing</code>, <code>Running</code>, <code>Restarting</code>, <code>RunningFailed</code> and <code>Terminating</code>. All other states are terminal states. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>timeoutInSeconds</i> The amount of time, in seconds, to wait for the batch to complete.  If a batch times out, and there are pending requests that were failing due to an internal failure (like <code>InternalServiceError</code>), they will be moved to the failed list and the batch status will be <code>Failed</code>. If the pending requests were failing for any other reason, the failed pending requests will be moved to the failed list and the batch status will be <code>TimedOut</code>. <br/>        """
        pass

    def describe_world(self, world: str) -> DescribeWorldResponse:
        r"""Describes a world.

        :param self:
        :param world:  The Amazon Resource Name (arn) of the world you want to describe.<br/>
        :return: tags:  A map that contains tag keys and tag values that are attached to the world.<br/>createdAt:  The time, in milliseconds since the epoch, when the world was created.<br/>template:  The world template.<br/>generationJob:  The Amazon Resource Name (arn) of the world generation job that generated the world.<br/>arn:  The Amazon Resource Name (arn) of the world.<br/>        """
        pass

    def describe_world_export_job(self, job: str) -> DescribeWorldExportJobResponse:
        r"""Describes a world export job.

        :param self:
        :param job:  The Amazon Resource Name (arn) of the world export job to describe.<br/>
        :return: tags:  A map that contains tag keys and tag values that are attached to the world export job.<br/>iamRole:  The IAM role that the world export process uses to access the Amazon S3 bucket and put the export.<br/>outputLocation:  The output location.:<br/>worlds:  A list of Amazon Resource Names (arns) that correspond to worlds to be exported.<br/>clientRequestToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.<br/>failureReason:  The reason why the world export job failed.<br/>failureCode:  The failure code of the world export job if it failed: <dl> <dt>InternalServiceError</dt> <dd> Internal service error. </dd> <dt>LimitExceeded</dt> <dd> The requested resource exceeds the maximum number allowed, or the number of concurrent stream requests exceeds the maximum number allowed.  </dd> <dt>ResourceNotFound</dt> <dd> The specified resource could not be found.  </dd> <dt>RequestThrottled</dt> <dd> The request was throttled. </dd> <dt>InvalidInput</dt> <dd> An input parameter in the request is not valid. </dd> </dl><br/>createdAt:  The time, in milliseconds since the epoch, when the world export job was created.<br/>status:  The status of the world export job. <dl> <dt>Pending</dt> <dd> The world export job request is pending. </dd> <dt>Running</dt> <dd> The world export job is running.  </dd> <dt>Completed</dt> <dd> The world export job completed.  </dd> <dt>Failed</dt> <dd> The world export job failed. See <code>failureCode</code> and <code>failureReason</code> for more information.  </dd> <dt>Canceled</dt> <dd> The world export job was cancelled. </dd> <dt>Canceling</dt> <dd> The world export job is being cancelled. </dd> </dl><br/>arn:  The Amazon Resource Name (ARN) of the world export job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>s3Prefix</i> The S3 folder in the <code>s3Bucket</code> where output files will be placed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>s3Bucket</i> The S3 bucket for output.<br/>        """
        pass

    def describe_world_generation_job(self, job: str) -> DescribeWorldGenerationJobResponse:
        r"""Describes a world generation job.

        :param self:
        :param job:  The Amazon Resource Name (arn) of the world generation job to describe.<br/>
        :return: worldTags:  A map that contains tag keys and tag values that are attached to the generated worlds.<br/>tags:  A map that contains tag keys and tag values that are attached to the world generation job.<br/>finishedWorldsSummary:  Summary information about finished worlds.:<br/>worldCount:  Information about the world count.:<br/>template:  The Amazon Resource Name (arn) of the world template.<br/>clientRequestToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.<br/>failureReason:  The reason why the world generation job failed.<br/>failureCode:  The failure code of the world generation job if it failed: <dl> <dt>InternalServiceError</dt> <dd> Internal service error. </dd> <dt>LimitExceeded</dt> <dd> The requested resource exceeds the maximum number allowed, or the number of concurrent stream requests exceeds the maximum number allowed.  </dd> <dt>ResourceNotFound</dt> <dd> The specified resource could not be found.  </dd> <dt>RequestThrottled</dt> <dd> The request was throttled. </dd> <dt>InvalidInput</dt> <dd> An input parameter in the request is not valid. </dd> </dl><br/>createdAt:  The time, in milliseconds since the epoch, when the world generation job was created.<br/>status:  The status of the world generation job: <dl> <dt>Pending</dt> <dd> The world generation job request is pending. </dd> <dt>Running</dt> <dd> The world generation job is running.  </dd> <dt>Completed</dt> <dd> The world generation job completed.  </dd> <dt>Failed</dt> <dd> The world generation job failed. See <code>failureCode</code> for more information.  </dd> <dt>PartialFailed</dt> <dd> Some worlds did not generate. </dd> <dt>Canceled</dt> <dd> The world generation job was cancelled. </dd> <dt>Canceling</dt> <dd> The world generation job is being cancelled. </dd> </dl><br/>arn:  The Amazon Resource Name (ARN) of the world generation job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>interiorCountPerFloorplan</i> The number of unique interiors per floorplan.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>floorplanCount</i> The number of unique floorplans.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>failureSummary</i> Information about worlds that failed.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>failureSummary</b>: Information about worlds that failed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>succeededWorlds</i> A list of worlds that succeeded.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>finishedCount</i> The total number of finished worlds.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>failures</i> The worlds that failed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>totalFailureCount</i> The total number of failures.<br/>        """
        pass

    def describe_world_template(self, template: str) -> DescribeWorldTemplateResponse:
        r"""Describes a world template.

        :param self:
        :param template:  The Amazon Resource Name (arn) of the world template you want to describe.<br/>
        :return: tags:  A map that contains tag keys and tag values that are attached to the world template.<br/>lastUpdatedAt:  The time, in milliseconds since the epoch, when the world template was last updated.<br/>createdAt:  The time, in milliseconds since the epoch, when the world template was created.<br/>name:  The name of the world template.<br/>clientRequestToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.<br/>arn:  The Amazon Resource Name (ARN) of the world template.<br/>        """
        pass

    def get_world_template_body(self, template: str=None, generationJob: str=None) -> GetWorldTemplateBodyResponse:
        r"""Gets the world template body.

        :param self:
        :param generationJob:  The Amazon Resource Name (arn) of the world generator job.<br/>template:  The Amazon Resource Name (arn) of the world template.<br/>
        :return: templateBody:  The world template body.<br/>        """
        pass

    def list_deployment_jobs(self, filters: List[Filter]=None, nextToken: str=None, maxResults: int=None) -> ListDeploymentJobsResponse:
        r"""Returns a list of deployment jobs for a fleet. You can optionally provide filters to retrieve specific deployment jobs. 

        :param self:
        :param maxResults:  When this parameter is used, <code>ListDeploymentJobs</code> only returns <code>maxResults</code> results in a single page along with a <code>nextToken</code> response element. The remaining results of the initial request can be seen by sending another <code>ListDeploymentJobs</code> request with the returned <code>nextToken</code> value. This value can be between 1 and 200. If this parameter is not used, then <code>ListDeploymentJobs</code> returns up to 200 results and a <code>nextToken</code> value if applicable. <br/>nextToken:  If the previous paginated request did not return all of the remaining results, the response object's <code>nextToken</code> parameter value is set to a token. To retrieve the next set of results, call <code>ListDeploymentJobs</code> again and assign that token to the request object's <code>nextToken</code> parameter. If there are no remaining results, the previous response object's NextToken parameter is set to null. <br/>filters:  Optional filters to limit results. The filter names <code>status</code> and <code>fleetName</code> are supported. When filtering, you must use the complete value of the filtered item. You can use up to three filters, but they must be for the same named item. For example, if you are looking for items with the status <code>InProgress</code> or the status <code>Pending</code>.<br/>
        :return: nextToken:  If the previous paginated request did not return all of the remaining results, the response object's <code>nextToken</code> parameter value is set to a token. To retrieve the next set of results, call <code>ListDeploymentJobs</code> again and assign that token to the request object's <code>nextToken</code> parameter. If there are no remaining results, the previous response object's NextToken parameter is set to null. <br/>deploymentJobs:  A list of deployment jobs that meet the criteria of the request.<br/>        """
        pass

    def list_fleets(self, nextToken: str=None, maxResults: int=None, filters: List[Filter]=None) -> ListFleetsResponse:
        r"""Returns a list of fleets. You can optionally provide filters to retrieve specific fleets. 

        :param self:
        :param filters:  Optional filters to limit results. The filter name <code>name</code> is supported. When filtering, you must use the complete value of the filtered item. You can use up to three filters.<br/>maxResults:  When this parameter is used, <code>ListFleets</code> only returns <code>maxResults</code> results in a single page along with a <code>nextToken</code> response element. The remaining results of the initial request can be seen by sending another <code>ListFleets</code> request with the returned <code>nextToken</code> value. This value can be between 1 and 200. If this parameter is not used, then <code>ListFleets</code> returns up to 200 results and a <code>nextToken</code> value if applicable. <br/>nextToken:  If the previous paginated request did not return all of the remaining results, the response object's <code>nextToken</code> parameter value is set to a token. To retrieve the next set of results, call <code>ListFleets</code> again and assign that token to the request object's <code>nextToken</code> parameter. If there are no remaining results, the previous response object's NextToken parameter is set to null.  <note> This token should be treated as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes. </note><br/>
        :return: nextToken:  If the previous paginated request did not return all of the remaining results, the response object's <code>nextToken</code> parameter value is set to a token. To retrieve the next set of results, call <code>ListFleets</code> again and assign that token to the request object's <code>nextToken</code> parameter. If there are no remaining results, the previous response object's NextToken parameter is set to null. <br/>fleetDetails:  A list of fleet details meeting the request criteria.<br/>        """
        pass

    def list_robot_applications(self, versionQualifier: str=None, nextToken: str=None, maxResults: int=None, filters: List[Filter]=None) -> ListRobotApplicationsResponse:
        r"""Returns a list of robot application. You can optionally provide filters to retrieve specific robot applications.

        :param self:
        :param filters:  Optional filters to limit results. The filter name <code>name</code> is supported. When filtering, you must use the complete value of the filtered item. You can use up to three filters.<br/>maxResults:  When this parameter is used, <code>ListRobotApplications</code> only returns <code>maxResults</code> results in a single page along with a <code>nextToken</code> response element. The remaining results of the initial request can be seen by sending another <code>ListRobotApplications</code> request with the returned <code>nextToken</code> value. This value can be between 1 and 100. If this parameter is not used, then <code>ListRobotApplications</code> returns up to 100 results and a <code>nextToken</code> value if applicable. <br/>nextToken:  If the previous paginated request did not return all of the remaining results, the response object's <code>nextToken</code> parameter value is set to a token. To retrieve the next set of results, call <code>ListRobotApplications</code> again and assign that token to the request object's <code>nextToken</code> parameter. If there are no remaining results, the previous response object's NextToken parameter is set to null. <br/>versionQualifier:  The version qualifier of the robot application.<br/>
        :return: nextToken:  If the previous paginated request did not return all of the remaining results, the response object's <code>nextToken</code> parameter value is set to a token. To retrieve the next set of results, call <code>ListRobotApplications</code> again and assign that token to the request object's <code>nextToken</code> parameter. If there are no remaining results, the previous response object's NextToken parameter is set to null. <br/>robotApplicationSummaries:  A list of robot application summaries that meet the criteria of the request.<br/>        """
        pass

    def list_robots(self, nextToken: str=None, maxResults: int=None, filters: List[Filter]=None) -> ListRobotsResponse:
        r"""Returns a list of robots. You can optionally provide filters to retrieve specific robots.

        :param self:
        :param filters:  Optional filters to limit results. The filter names <code>status</code> and <code>fleetName</code> are supported. When filtering, you must use the complete value of the filtered item. You can use up to three filters, but they must be for the same named item. For example, if you are looking for items with the status <code>Registered</code> or the status <code>Available</code>.<br/>maxResults:  When this parameter is used, <code>ListRobots</code> only returns <code>maxResults</code> results in a single page along with a <code>nextToken</code> response element. The remaining results of the initial request can be seen by sending another <code>ListRobots</code> request with the returned <code>nextToken</code> value. This value can be between 1 and 200. If this parameter is not used, then <code>ListRobots</code> returns up to 200 results and a <code>nextToken</code> value if applicable. <br/>nextToken:  If the previous paginated request did not return all of the remaining results, the response object's <code>nextToken</code> parameter value is set to a token. To retrieve the next set of results, call <code>ListRobots</code> again and assign that token to the request object's <code>nextToken</code> parameter. If there are no remaining results, the previous response object's NextToken parameter is set to null. <br/>
        :return: nextToken:  If the previous paginated request did not return all of the remaining results, the response object's <code>nextToken</code> parameter value is set to a token. To retrieve the next set of results, call <code>ListRobots</code> again and assign that token to the request object's <code>nextToken</code> parameter. If there are no remaining results, the previous response object's NextToken parameter is set to null. <br/>robots:  A list of robots that meet the criteria of the request.<br/>        """
        pass

    def list_simulation_applications(self, versionQualifier: str=None, nextToken: str=None, maxResults: int=None, filters: List[Filter]=None) -> ListSimulationApplicationsResponse:
        r"""Returns a list of simulation applications. You can optionally provide filters to retrieve specific simulation applications. 

        :param self:
        :param filters:  Optional list of filters to limit results. The filter name <code>name</code> is supported. When filtering, you must use the complete value of the filtered item. You can use up to three filters.<br/>maxResults:  When this parameter is used, <code>ListSimulationApplications</code> only returns <code>maxResults</code> results in a single page along with a <code>nextToken</code> response element. The remaining results of the initial request can be seen by sending another <code>ListSimulationApplications</code> request with the returned <code>nextToken</code> value. This value can be between 1 and 100. If this parameter is not used, then <code>ListSimulationApplications</code> returns up to 100 results and a <code>nextToken</code> value if applicable. <br/>nextToken:  If the previous paginated request did not return all of the remaining results, the response object's <code>nextToken</code> parameter value is set to a token. To retrieve the next set of results, call <code>ListSimulationApplications</code> again and assign that token to the request object's <code>nextToken</code> parameter. If there are no remaining results, the previous response object's NextToken parameter is set to null. <br/>versionQualifier:  The version qualifier of the simulation application.<br/>
        :return: nextToken:  If the previous paginated request did not return all of the remaining results, the response object's <code>nextToken</code> parameter value is set to a token. To retrieve the next set of results, call <code>ListSimulationApplications</code> again and assign that token to the request object's <code>nextToken</code> parameter. If there are no remaining results, the previous response object's NextToken parameter is set to null. <br/>simulationApplicationSummaries:  A list of simulation application summaries that meet the criteria of the request.<br/>        """
        pass

    def list_simulation_job_batches(self, nextToken: str=None, maxResults: int=None, filters: List[Filter]=None) -> ListSimulationJobBatchesResponse:
        r"""Returns a list simulation job batches. You can optionally provide filters to retrieve specific simulation batch jobs. 

        :param self:
        :param filters:  Optional filters to limit results.<br/>maxResults:  When this parameter is used, <code>ListSimulationJobBatches</code> only returns <code>maxResults</code> results in a single page along with a <code>nextToken</code> response element. The remaining results of the initial request can be seen by sending another <code>ListSimulationJobBatches</code> request with the returned <code>nextToken</code> value. <br/>nextToken:  If the previous paginated request did not return all of the remaining results, the response object's <code>nextToken</code> parameter value is set to a token. To retrieve the next set of results, call <code>ListSimulationJobBatches</code> again and assign that token to the request object's <code>nextToken</code> parameter. If there are no remaining results, the previous response object's NextToken parameter is set to null. <br/>
        :return: nextToken:  If the previous paginated request did not return all of the remaining results, the response object's <code>nextToken</code> parameter value is set to a token. To retrieve the next set of results, call <code>ListSimulationJobBatches</code> again and assign that token to the request object's <code>nextToken</code> parameter. If there are no remaining results, the previous response object's NextToken parameter is set to null. <br/>simulationJobBatchSummaries:  A list of simulation job batch summaries.<br/>        """
        pass

    def list_simulation_jobs(self, nextToken: str=None, maxResults: int=None, filters: List[Filter]=None) -> ListSimulationJobsResponse:
        r"""Returns a list of simulation jobs. You can optionally provide filters to retrieve specific simulation jobs. 

        :param self:
        :param filters:  Optional filters to limit results. The filter names <code>status</code> and <code>simulationApplicationName</code> and <code>robotApplicationName</code> are supported. When filtering, you must use the complete value of the filtered item. You can use up to three filters, but they must be for the same named item. For example, if you are looking for items with the status <code>Preparing</code> or the status <code>Running</code>.<br/>maxResults:  When this parameter is used, <code>ListSimulationJobs</code> only returns <code>maxResults</code> results in a single page along with a <code>nextToken</code> response element. The remaining results of the initial request can be seen by sending another <code>ListSimulationJobs</code> request with the returned <code>nextToken</code> value. This value can be between 1 and 1000. If this parameter is not used, then <code>ListSimulationJobs</code> returns up to 1000 results and a <code>nextToken</code> value if applicable. <br/>nextToken:  If the previous paginated request did not return all of the remaining results, the response object's <code>nextToken</code> parameter value is set to a token. To retrieve the next set of results, call <code>ListSimulationJobs</code> again and assign that token to the request object's <code>nextToken</code> parameter. If there are no remaining results, the previous response object's NextToken parameter is set to null. <br/>
        :return: nextToken:  If the previous paginated request did not return all of the remaining results, the response object's <code>nextToken</code> parameter value is set to a token. To retrieve the next set of results, call <code>ListSimulationJobs</code> again and assign that token to the request object's <code>nextToken</code> parameter. If there are no remaining results, the previous response object's NextToken parameter is set to null. <br/>simulationJobSummaries:  A list of simulation job summaries that meet the criteria of the request.<br/>        """
        pass

    def list_tags_for_resource(self, resourceArn: str) -> ListTagsForResourceResponse:
        r"""Lists all tags on a AWS RoboMaker resource.

        :param self:
        :param resourceArn:  The AWS RoboMaker Amazon Resource Name (ARN) with tags to be listed.<br/>
        :return: tags:  The list of all tags added to the specified resource.<br/>        """
        pass

    def list_world_export_jobs(self, nextToken: str=None, maxResults: int=None, filters: List[Filter]=None) -> ListWorldExportJobsResponse:
        r"""Lists world export jobs.

        :param self:
        :param filters:  Optional filters to limit results. You can use <code>generationJobId</code> and <code>templateId</code>.<br/>maxResults:  When this parameter is used, <code>ListWorldExportJobs</code> only returns <code>maxResults</code> results in a single page along with a <code>nextToken</code> response element. The remaining results of the initial request can be seen by sending another <code>ListWorldExportJobs</code> request with the returned <code>nextToken</code> value. This value can be between 1 and 100. If this parameter is not used, then <code>ListWorldExportJobs</code> returns up to 100 results and a <code>nextToken</code> value if applicable. <br/>nextToken:  If the previous paginated request did not return all of the remaining results, the response object's <code>nextToken</code> parameter value is set to a token. To retrieve the next set of results, call <code>ListWorldExportJobs</code> again and assign that token to the request object's <code>nextToken</code> parameter. If there are no remaining results, the previous response object's NextToken parameter is set to null. <br/>
        :return: nextToken:  If the previous paginated request did not return all of the remaining results, the response object's <code>nextToken</code> parameter value is set to a token. To retrieve the next set of results, call <code>ListWorldExportJobsRequest</code> again and assign that token to the request object's <code>nextToken</code> parameter. If there are no remaining results, the previous response object's NextToken parameter is set to null. <br/>worldExportJobSummaries:  Summary information for world export jobs.<br/>        """
        pass

    def list_world_generation_jobs(self, nextToken: str=None, maxResults: int=None, filters: List[Filter]=None) -> ListWorldGenerationJobsResponse:
        r"""Lists world generator jobs.

        :param self:
        :param filters:  Optional filters to limit results. You can use <code>status</code> and <code>templateId</code>.<br/>maxResults:  When this parameter is used, <code>ListWorldGeneratorJobs</code> only returns <code>maxResults</code> results in a single page along with a <code>nextToken</code> response element. The remaining results of the initial request can be seen by sending another <code>ListWorldGeneratorJobs</code> request with the returned <code>nextToken</code> value. This value can be between 1 and 100. If this parameter is not used, then <code>ListWorldGeneratorJobs</code> returns up to 100 results and a <code>nextToken</code> value if applicable. <br/>nextToken:  If the previous paginated request did not return all of the remaining results, the response object's <code>nextToken</code> parameter value is set to a token. To retrieve the next set of results, call <code>ListWorldGenerationJobsRequest</code> again and assign that token to the request object's <code>nextToken</code> parameter. If there are no remaining results, the previous response object's NextToken parameter is set to null. <br/>
        :return: nextToken:  If the previous paginated request did not return all of the remaining results, the response object's <code>nextToken</code> parameter value is set to a token. To retrieve the next set of results, call <code>ListWorldGeneratorJobsRequest</code> again and assign that token to the request object's <code>nextToken</code> parameter. If there are no remaining results, the previous response object's NextToken parameter is set to null. <br/>worldGenerationJobSummaries:  Summary information for world generator jobs.<br/>        """
        pass

    def list_world_templates(self, nextToken: str=None, maxResults: int=None) -> ListWorldTemplatesResponse:
        r"""Lists world templates.

        :param self:
        :param maxResults:  When this parameter is used, <code>ListWorldTemplates</code> only returns <code>maxResults</code> results in a single page along with a <code>nextToken</code> response element. The remaining results of the initial request can be seen by sending another <code>ListWorldTemplates</code> request with the returned <code>nextToken</code> value. This value can be between 1 and 100. If this parameter is not used, then <code>ListWorldTemplates</code> returns up to 100 results and a <code>nextToken</code> value if applicable. <br/>nextToken:  If the previous paginated request did not return all of the remaining results, the response object's <code>nextToken</code> parameter value is set to a token. To retrieve the next set of results, call <code>ListWorldTemplates</code> again and assign that token to the request object's <code>nextToken</code> parameter. If there are no remaining results, the previous response object's NextToken parameter is set to null. <br/>
        :return: nextToken:  If the previous paginated request did not return all of the remaining results, the response object's <code>nextToken</code> parameter value is set to a token. To retrieve the next set of results, call <code>ListWorldTemplates</code> again and assign that token to the request object's <code>nextToken</code> parameter. If there are no remaining results, the previous response object's NextToken parameter is set to null. <br/>templateSummaries:  Summary information for templates.<br/>        """
        pass

    def list_worlds(self, nextToken: str=None, maxResults: int=None, filters: List[Filter]=None) -> ListWorldsResponse:
        r"""Lists worlds.

        :param self:
        :param filters:  Optional filters to limit results. You can use <code>status</code>.<br/>maxResults:  When this parameter is used, <code>ListWorlds</code> only returns <code>maxResults</code> results in a single page along with a <code>nextToken</code> response element. The remaining results of the initial request can be seen by sending another <code>ListWorlds</code> request with the returned <code>nextToken</code> value. This value can be between 1 and 100. If this parameter is not used, then <code>ListWorlds</code> returns up to 100 results and a <code>nextToken</code> value if applicable. <br/>nextToken:  If the previous paginated request did not return all of the remaining results, the response object's <code>nextToken</code> parameter value is set to a token. To retrieve the next set of results, call <code>ListWorlds</code> again and assign that token to the request object's <code>nextToken</code> parameter. If there are no remaining results, the previous response object's NextToken parameter is set to null. <br/>
        :return: nextToken:  If the previous paginated request did not return all of the remaining results, the response object's <code>nextToken</code> parameter value is set to a token. To retrieve the next set of results, call <code>ListWorlds</code> again and assign that token to the request object's <code>nextToken</code> parameter. If there are no remaining results, the previous response object's NextToken parameter is set to null. <br/>worldSummaries:  Summary information for worlds.<br/>        """
        pass

    def register_robot(self, robot: str, fleet: str) -> RegisterRobotResponse:
        r"""Registers a robot with a fleet.

        :param self:
        :param robot:  The Amazon Resource Name (ARN) of the robot.<br/>fleet:  The Amazon Resource Name (ARN) of the fleet.<br/>
        :return: robot:  Information about the robot registration.<br/>fleet:  The Amazon Resource Name (ARN) of the fleet that the robot will join.<br/>        """
        pass

    def restart_simulation_job(self, job: str) -> RestartSimulationJobResponse:
        r"""Restarts a running simulation job.

        :param self:
        :param job:  The Amazon Resource Name (ARN) of the simulation job.<br/>
        :return:         """
        pass

    def start_simulation_job_batch(self, createSimulationJobRequests: List[SimulationJobRequest], clientRequestToken: str=None, batchPolicy: BatchPolicy=None, tags: TagMap=None) -> StartSimulationJobBatchResponse:
        r"""Starts a new simulation job batch. The batch is defined using one or more <code>SimulationJobRequest</code> objects. 

        :param self:
        :param tags:  A map that contains tag keys and tag values that are attached to the deployment job batch.<br/>createSimulationJobRequests:  A list of simulation job requests to create in the batch.<br/>batchPolicy:  The batch policy.:<br/>clientRequestToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>maxConcurrency</i> The number of active simulation jobs create as part of the batch that can be in an active state at the same time.  Active states include: <code>Pending</code>,<code>Preparing</code>, <code>Running</code>, <code>Restarting</code>, <code>RunningFailed</code> and <code>Terminating</code>. All other states are terminal states. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>timeoutInSeconds</i> The amount of time, in seconds, to wait for the batch to complete.  If a batch times out, and there are pending requests that were failing due to an internal failure (like <code>InternalServiceError</code>), they will be moved to the failed list and the batch status will be <code>Failed</code>. If the pending requests were failing for any other reason, the failed pending requests will be moved to the failed list and the batch status will be <code>TimedOut</code>. <br/>
        :return: tags:  A map that contains tag keys and tag values that are attached to the deployment job batch.<br/>createdRequests:  A list of created simulation job request summaries.<br/>pendingRequests:  A list of pending simulation job requests. These requests have not yet been created into simulation jobs.<br/>failedRequests:  A list of failed simulation job requests. The request failed to be created into a simulation job. Failed requests do not have a simulation job ID. <br/>failureReason:  The reason the simulation job batch failed.<br/>failureCode:  The failure code if the simulation job batch failed.<br/>batchPolicy:  The batch policy.:<br/>clientRequestToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.<br/>createdAt:  The time, in milliseconds since the epoch, when the simulation job batch was created.<br/>status:  The status of the simulation job batch. <dl> <dt>Pending</dt> <dd> The simulation job batch request is pending. </dd> <dt>InProgress</dt> <dd> The simulation job batch is in progress.  </dd> <dt>Failed</dt> <dd> The simulation job batch failed. One or more simulation job requests could not be completed due to an internal failure (like <code>InternalServiceError</code>). See <code>failureCode</code> and <code>failureReason</code> for more information. </dd> <dt>Completed</dt> <dd> The simulation batch job completed. A batch is complete when (1) there are no pending simulation job requests in the batch and none of the failed simulation job requests are due to <code>InternalServiceError</code> and (2) when all created simulation jobs have reached a terminal state (for example, <code>Completed</code> or <code>Failed</code>).  </dd> <dt>Canceled</dt> <dd> The simulation batch job was cancelled. </dd> <dt>Canceling</dt> <dd> The simulation batch job is being cancelled. </dd> <dt>Completing</dt> <dd> The simulation batch job is completing. </dd> <dt>TimingOut</dt> <dd> The simulation job batch is timing out. If a batch timing out, and there are pending requests that were failing due to an internal failure (like <code>InternalServiceError</code>), the batch status will be <code>Failed</code>. If there are no such failing request, the batch status will be <code>TimedOut</code>.  </dd> <dt>TimedOut</dt> <dd> The simulation batch job timed out. </dd> </dl><br/>arn:  The Amazon Resource Name (arn) of the batch.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>maxConcurrency</i> The number of active simulation jobs create as part of the batch that can be in an active state at the same time.  Active states include: <code>Pending</code>,<code>Preparing</code>, <code>Running</code>, <code>Restarting</code>, <code>RunningFailed</code> and <code>Terminating</code>. All other states are terminal states. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>timeoutInSeconds</i> The amount of time, in seconds, to wait for the batch to complete.  If a batch times out, and there are pending requests that were failing due to an internal failure (like <code>InternalServiceError</code>), they will be moved to the failed list and the batch status will be <code>Failed</code>. If the pending requests were failing for any other reason, the failed pending requests will be moved to the failed list and the batch status will be <code>TimedOut</code>. <br/>        """
        pass

    def sync_deployment_job(self, fleet: str, clientRequestToken: str) -> SyncDeploymentJobResponse:
        r"""Syncrhonizes robots in a fleet to the latest deployment. This is helpful if robots were added after a deployment.

        :param self:
        :param fleet:  The target fleet for the synchronization.<br/>clientRequestToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.<br/>
        :return: createdAt:  The time, in milliseconds since the epoch, when the fleet was created.<br/>failureCode:  The failure code if the job fails: <dl> <dt>InternalServiceError</dt> <dd> Internal service error. </dd> <dt>RobotApplicationCrash</dt> <dd> Robot application exited abnormally. </dd> <dt>SimulationApplicationCrash</dt> <dd>  Simulation application exited abnormally. </dd> <dt>BadPermissionsRobotApplication</dt> <dd> Robot application bundle could not be downloaded. </dd> <dt>BadPermissionsSimulationApplication</dt> <dd> Simulation application bundle could not be downloaded. </dd> <dt>BadPermissionsS3Output</dt> <dd> Unable to publish outputs to customer-provided S3 bucket. </dd> <dt>BadPermissionsCloudwatchLogs</dt> <dd> Unable to publish logs to customer-provided CloudWatch Logs resource. </dd> <dt>SubnetIpLimitExceeded</dt> <dd> Subnet IP limit exceeded. </dd> <dt>ENILimitExceeded</dt> <dd> ENI limit exceeded. </dd> <dt>BadPermissionsUserCredentials</dt> <dd> Unable to use the Role provided. </dd> <dt>InvalidBundleRobotApplication</dt> <dd> Robot bundle cannot be extracted (invalid format, bundling error, or other issue). </dd> <dt>InvalidBundleSimulationApplication</dt> <dd> Simulation bundle cannot be extracted (invalid format, bundling error, or other issue). </dd> <dt>RobotApplicationVersionMismatchedEtag</dt> <dd> Etag for RobotApplication does not match value during version creation. </dd> <dt>SimulationApplicationVersionMismatchedEtag</dt> <dd> Etag for SimulationApplication does not match value during version creation. </dd> </dl><br/>failureReason:  The failure reason if the job fails.<br/>deploymentApplicationConfigs:  Information about the deployment application configurations.<br/>deploymentConfig:  Information about the deployment configuration.:<br/>status:  The status of the synchronization job.<br/>fleet:  The Amazon Resource Name (ARN) of the fleet.<br/>arn:  The Amazon Resource Name (ARN) of the synchronization request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>downloadConditionFile</i> The download condition file.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>downloadConditionFile</b>: The download condition file.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>robotDeploymentTimeoutInSeconds</i> The amount of time, in seconds, to wait for deployment to a single robot to complete. Choose a time between 1 minute and 7 days. The default is 5 hours.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>failureThresholdPercentage</i> The percentage of deployments that need to fail before stopping deployment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>concurrentDeploymentPercentage</i> The percentage of robots receiving the deployment at the same time.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>etag</i> The etag of the object.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>key</i> The key of the object.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>bucket</i> The bucket containing the object.<br/>        """
        pass

    def tag_resource(self, tags: TagMap, resourceArn: str) -> TagResourceResponse:
        r"""Adds or edits tags for a AWS RoboMaker resource. Each tag consists of a tag key and a tag value. Tag keys and tag values are both required, but tag values can be empty strings.  For information about the rules that apply to tag keys and tag values, see <a href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/allocation-tag-restrictions.html">User-Defined Tag Restrictions</a> in the <i>AWS Billing and Cost Management User Guide</i>. 

        :param self:
        :param tags:  A map that contains tag keys and tag values that are attached to the resource.<br/>resourceArn:  The Amazon Resource Name (ARN) of the AWS RoboMaker resource you are tagging.<br/>
        :return:         """
        pass

    def untag_resource(self, tagKeys: List[TagKey], resourceArn: str) -> UntagResourceResponse:
        r"""Removes the specified tags from the specified AWS RoboMaker resource. To remove a tag, specify the tag key. To change the tag value of an existing tag key, use <a href="https://docs.aws.amazon.com/robomaker/latest/dg/API_TagResource.html"> <code>TagResource</code> </a>. 

        :param self:
        :param tagKeys:  A map that contains tag keys and tag values that will be unattached from the resource.<br/>resourceArn:  The Amazon Resource Name (ARN) of the AWS RoboMaker resource you are removing tags.<br/>
        :return:         """
        pass

    def update_robot_application(self, robotSoftwareSuite: RobotSoftwareSuite, sources: List[SourceConfig], application: str, currentRevisionId: str=None) -> UpdateRobotApplicationResponse:
        r"""Updates a robot application.

        :param self:
        :param currentRevisionId:  The revision id for the robot application.<br/>robotSoftwareSuite:  The robot software suite (ROS distribution) used by the robot application.:<br/>sources:  The sources of the robot application.<br/>application:  The application information for the robot application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The version of the robot software suite (ROS distribution).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the robot software suite (ROS distribution).<br/>
        :return: revisionId:  The revision id of the robot application.<br/>lastUpdatedAt:  The time, in milliseconds since the epoch, when the robot application was last updated.<br/>robotSoftwareSuite:  The robot software suite (ROS distribution) used by the robot application.:<br/>sources:  The sources of the robot application.<br/>version:  The version of the robot application.<br/>name:  The name of the robot application.<br/>arn:  The Amazon Resource Name (ARN) of the updated robot application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The version of the robot software suite (ROS distribution).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the robot software suite (ROS distribution).<br/>        """
        pass

    def update_simulation_application(self, robotSoftwareSuite: RobotSoftwareSuite, simulationSoftwareSuite: SimulationSoftwareSuite, sources: List[SourceConfig], application: str, renderingEngine: RenderingEngine=None, currentRevisionId: str=None) -> UpdateSimulationApplicationResponse:
        r"""Updates a simulation application.

        :param self:
        :param currentRevisionId:  The revision id for the robot application.<br/>renderingEngine:  The rendering engine for the simulation application.:<br/>robotSoftwareSuite:  Information about the robot software suite (ROS distribution).:<br/>simulationSoftwareSuite:  The simulation software suite used by the simulation application.:<br/>sources:  The sources of the simulation application.<br/>application:  The application information for the simulation application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The version of the simulation software suite.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the simulation software suite.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The version of the robot software suite (ROS distribution).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the robot software suite (ROS distribution).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The version of the rendering engine.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the rendering engine.<br/>
        :return: revisionId:  The revision id of the simulation application.<br/>lastUpdatedAt:  The time, in milliseconds since the epoch, when the simulation application was last updated.<br/>renderingEngine:  The rendering engine for the simulation application.:<br/>robotSoftwareSuite:  Information about the robot software suite (ROS distribution).:<br/>simulationSoftwareSuite:  The simulation software suite used by the simulation application.:<br/>sources:  The sources of the simulation application.<br/>version:  The version of the robot application.<br/>name:  The name of the simulation application.<br/>arn:  The Amazon Resource Name (ARN) of the updated simulation application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The version of the simulation software suite.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the simulation software suite.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The version of the robot software suite (ROS distribution).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the robot software suite (ROS distribution).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The version of the rendering engine.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the rendering engine.<br/>        """
        pass

    def update_world_template(self, template: str, name: str=None, templateBody: str=None, templateLocation: TemplateLocation=None) -> UpdateWorldTemplateResponse:
        r"""Updates a world template.

        :param self:
        :param templateLocation:  The location of the world template.:<br/>templateBody:  The world template body.<br/>name:  The name of the template.<br/>template:  The Amazon Resource Name (arn) of the world template to update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>s3Key</i> The list of S3 keys identifying the data source files.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>s3Bucket</i> The Amazon S3 bucket name.<br/>
        :return: lastUpdatedAt:  The time, in milliseconds since the epoch, when the world template was last updated.<br/>createdAt:  The time, in milliseconds since the epoch, when the world template was created.<br/>name:  The name of the world template.<br/>arn:  The Amazon Resource Name (arn) of the world template.<br/>        """
        pass





class Route53(BaseClient):
    r"""Amazon Route 53 is a highly available and scalable Domain Name System (DNS) web service."""

    class ResourceRecordSetsChangedWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `get_change` for valid parameters"""
            pass


    class ListHealthChecksPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_health_checks` for valid parameters"""
            pass
    class ListHostedZonesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_hosted_zones` for valid parameters"""
            pass
    class ListResourceRecordSetsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_resource_record_sets` for valid parameters"""
            pass
    class ListVPCAssociationAuthorizationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_vpc_association_authorizations` for valid parameters"""
            pass
    class ListQueryLoggingConfigsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_query_logging_configs` for valid parameters"""
            pass


    class ActivateKeySigningKeyRequest(Mapping):
        pass
    
    class ActivateKeySigningKeyResponse(Mapping):
        pass
    
    class AssociateVPCWithHostedZoneRequest(Mapping):
        pass
    
    class AssociateVPCWithHostedZoneResponse(Mapping):
        pass
    
    class VPC(Mapping):
        pass
    
    class ChangeResourceRecordSetsRequest(Mapping):
        pass
    
    class ChangeResourceRecordSetsResponse(Mapping):
        pass
    
    class ChangeBatch(Mapping):
        pass
    
    class ChangeTagsForResourceRequest(Mapping):
        pass
    
    class ChangeTagsForResourceResponse(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class CreateHealthCheckRequest(Mapping):
        pass
    
    class CreateHealthCheckResponse(Mapping):
        pass
    
    class HealthCheckConfig(Mapping):
        pass
    
    class CreateHostedZoneRequest(Mapping):
        pass
    
    class CreateHostedZoneResponse(Mapping):
        pass
    
    class HostedZoneConfig(Mapping):
        pass
    
    class CreateKeySigningKeyRequest(Mapping):
        pass
    
    class CreateKeySigningKeyResponse(Mapping):
        pass
    
    class CreateQueryLoggingConfigRequest(Mapping):
        pass
    
    class CreateQueryLoggingConfigResponse(Mapping):
        pass
    
    class CreateReusableDelegationSetRequest(Mapping):
        pass
    
    class CreateReusableDelegationSetResponse(Mapping):
        pass
    
    class CreateTrafficPolicyRequest(Mapping):
        pass
    
    class CreateTrafficPolicyResponse(Mapping):
        pass
    
    class CreateTrafficPolicyInstanceRequest(Mapping):
        pass
    
    class CreateTrafficPolicyInstanceResponse(Mapping):
        pass
    
    class TTL(object):
        pass
    
    class CreateTrafficPolicyVersionRequest(Mapping):
        pass
    
    class CreateTrafficPolicyVersionResponse(Mapping):
        pass
    
    class CreateVPCAssociationAuthorizationRequest(Mapping):
        pass
    
    class CreateVPCAssociationAuthorizationResponse(Mapping):
        pass
    
    class DeactivateKeySigningKeyRequest(Mapping):
        pass
    
    class DeactivateKeySigningKeyResponse(Mapping):
        pass
    
    class DeleteHealthCheckRequest(Mapping):
        pass
    
    class DeleteHealthCheckResponse(Mapping):
        pass
    
    class DeleteHostedZoneRequest(Mapping):
        pass
    
    class DeleteHostedZoneResponse(Mapping):
        pass
    
    class DeleteKeySigningKeyRequest(Mapping):
        pass
    
    class DeleteKeySigningKeyResponse(Mapping):
        pass
    
    class DeleteQueryLoggingConfigRequest(Mapping):
        pass
    
    class DeleteQueryLoggingConfigResponse(Mapping):
        pass
    
    class DeleteReusableDelegationSetRequest(Mapping):
        pass
    
    class DeleteReusableDelegationSetResponse(Mapping):
        pass
    
    class DeleteTrafficPolicyRequest(Mapping):
        pass
    
    class DeleteTrafficPolicyResponse(Mapping):
        pass
    
    class DeleteTrafficPolicyInstanceRequest(Mapping):
        pass
    
    class DeleteTrafficPolicyInstanceResponse(Mapping):
        pass
    
    class DeleteVPCAssociationAuthorizationRequest(Mapping):
        pass
    
    class DeleteVPCAssociationAuthorizationResponse(Mapping):
        pass
    
    class DisableHostedZoneDNSSECRequest(Mapping):
        pass
    
    class DisableHostedZoneDNSSECResponse(Mapping):
        pass
    
    class DisassociateVPCFromHostedZoneRequest(Mapping):
        pass
    
    class DisassociateVPCFromHostedZoneResponse(Mapping):
        pass
    
    class EnableHostedZoneDNSSECRequest(Mapping):
        pass
    
    class EnableHostedZoneDNSSECResponse(Mapping):
        pass
    
    class GetAccountLimitRequest(Mapping):
        pass
    
    class GetAccountLimitResponse(Mapping):
        pass
    
    class GetChangeRequest(Mapping):
        pass
    
    class GetChangeResponse(Mapping):
        pass
    
    class GetCheckerIpRangesRequest(Mapping):
        pass
    
    class GetCheckerIpRangesResponse(Mapping):
        pass
    
    class GetDNSSECRequest(Mapping):
        pass
    
    class GetDNSSECResponse(Mapping):
        pass
    
    class GetGeoLocationRequest(Mapping):
        pass
    
    class GetGeoLocationResponse(Mapping):
        pass
    
    class GetHealthCheckRequest(Mapping):
        pass
    
    class GetHealthCheckResponse(Mapping):
        pass
    
    class GetHealthCheckCountRequest(Mapping):
        pass
    
    class GetHealthCheckCountResponse(Mapping):
        pass
    
    class GetHealthCheckLastFailureReasonRequest(Mapping):
        pass
    
    class GetHealthCheckLastFailureReasonResponse(Mapping):
        pass
    
    class GetHealthCheckStatusRequest(Mapping):
        pass
    
    class GetHealthCheckStatusResponse(Mapping):
        pass
    
    class GetHostedZoneRequest(Mapping):
        pass
    
    class GetHostedZoneResponse(Mapping):
        pass
    
    class GetHostedZoneCountRequest(Mapping):
        pass
    
    class GetHostedZoneCountResponse(Mapping):
        pass
    
    class GetHostedZoneLimitRequest(Mapping):
        pass
    
    class GetHostedZoneLimitResponse(Mapping):
        pass
    
    class GetQueryLoggingConfigRequest(Mapping):
        pass
    
    class GetQueryLoggingConfigResponse(Mapping):
        pass
    
    class GetReusableDelegationSetRequest(Mapping):
        pass
    
    class GetReusableDelegationSetResponse(Mapping):
        pass
    
    class GetReusableDelegationSetLimitRequest(Mapping):
        pass
    
    class GetReusableDelegationSetLimitResponse(Mapping):
        pass
    
    class GetTrafficPolicyRequest(Mapping):
        pass
    
    class GetTrafficPolicyResponse(Mapping):
        pass
    
    class GetTrafficPolicyInstanceRequest(Mapping):
        pass
    
    class GetTrafficPolicyInstanceResponse(Mapping):
        pass
    
    class GetTrafficPolicyInstanceCountRequest(Mapping):
        pass
    
    class GetTrafficPolicyInstanceCountResponse(Mapping):
        pass
    
    class ListGeoLocationsRequest(Mapping):
        pass
    
    class ListGeoLocationsResponse(Mapping):
        pass
    
    class ListHealthChecksRequest(Mapping):
        pass
    
    class ListHealthChecksResponse(Mapping):
        pass
    
    class ListHostedZonesRequest(Mapping):
        pass
    
    class ListHostedZonesResponse(Mapping):
        pass
    
    class ListHostedZonesByNameRequest(Mapping):
        pass
    
    class ListHostedZonesByNameResponse(Mapping):
        pass
    
    class ListHostedZonesByVPCRequest(Mapping):
        pass
    
    class ListHostedZonesByVPCResponse(Mapping):
        pass
    
    class ListQueryLoggingConfigsRequest(Mapping):
        pass
    
    class ListQueryLoggingConfigsResponse(Mapping):
        pass
    
    class ListResourceRecordSetsRequest(Mapping):
        pass
    
    class ListResourceRecordSetsResponse(Mapping):
        pass
    
    class ListReusableDelegationSetsRequest(Mapping):
        pass
    
    class ListReusableDelegationSetsResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class ListTagsForResourcesRequest(Mapping):
        pass
    
    class ListTagsForResourcesResponse(Mapping):
        pass
    
    class TagResourceId(object):
        pass
    
    class ListTrafficPoliciesRequest(Mapping):
        pass
    
    class ListTrafficPoliciesResponse(Mapping):
        pass
    
    class ListTrafficPolicyInstancesRequest(Mapping):
        pass
    
    class ListTrafficPolicyInstancesResponse(Mapping):
        pass
    
    class ListTrafficPolicyInstancesByHostedZoneRequest(Mapping):
        pass
    
    class ListTrafficPolicyInstancesByHostedZoneResponse(Mapping):
        pass
    
    class ListTrafficPolicyInstancesByPolicyRequest(Mapping):
        pass
    
    class ListTrafficPolicyInstancesByPolicyResponse(Mapping):
        pass
    
    class ListTrafficPolicyVersionsRequest(Mapping):
        pass
    
    class ListTrafficPolicyVersionsResponse(Mapping):
        pass
    
    class ListVPCAssociationAuthorizationsRequest(Mapping):
        pass
    
    class ListVPCAssociationAuthorizationsResponse(Mapping):
        pass
    
    class TestDNSAnswerRequest(Mapping):
        pass
    
    class TestDNSAnswerResponse(Mapping):
        pass
    
    class UpdateHealthCheckRequest(Mapping):
        pass
    
    class UpdateHealthCheckResponse(Mapping):
        pass
    
    class HealthCheckVersion(object):
        pass
    
    class Inverted(object):
        pass
    
    class Disabled(object):
        pass
    
    class HealthCheckId(object):
        pass
    
    class EnableSNI(object):
        pass
    
    class HealthCheckRegion(object):
        pass
    
    class AlarmIdentifier(Mapping):
        pass
    
    class ResettableElementName(object):
        pass
    
    class UpdateHostedZoneCommentRequest(Mapping):
        pass
    
    class UpdateHostedZoneCommentResponse(Mapping):
        pass
    
    class UpdateTrafficPolicyCommentRequest(Mapping):
        pass
    
    class UpdateTrafficPolicyCommentResponse(Mapping):
        pass
    
    class UpdateTrafficPolicyInstanceRequest(Mapping):
        pass
    
    class UpdateTrafficPolicyInstanceResponse(Mapping):
        pass
    
    def activate_key_signing_key(self, Name: str, HostedZoneId: str) -> ActivateKeySigningKeyResponse:
        r"""Activates a key-signing key (KSK) so that it can be used for signing by DNSSEC. This operation changes the KSK status to <code>ACTIVE</code>.

        :param self:
        :param Name:  A string used to identify a key-signing key (KSK). <code>Name</code> can include numbers, letters, and underscores (_). <code>Name</code> must be unique for each key-signing key in the same hosted zone.<br/>HostedZoneId:  A unique string used to identify a hosted zone.<br/>
        :return: ChangeInfo:  A complex type that describes change information about changes made to your hosted zone.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Comment</i> A complex type that describes change information about changes made to your hosted zone. This element contains an ID that you use when performing a <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_GetChange.html">GetChange</a> action to get detailed information about the change.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubmittedAt</i> The date and time that the change request was submitted in <a href="https://en.wikipedia.org/wiki/ISO_8601">ISO 8601 format</a> and Coordinated Universal Time (UTC). For example, the value <code>2017-03-27T17:48:16.751Z</code> represents March 27, 2017 at 17:48:16.751 UTC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current state of the request. <code>PENDING</code> indicates that this request has not yet been applied to all Amazon Route 53 DNS servers.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID of the request.<br/>        """
        pass

    def associate_vpc_with_hosted_zone(self, VPC: VPC, HostedZoneId: str, Comment: str=None) -> AssociateVPCWithHostedZoneResponse:
        r"""Associates an Amazon VPC with a private hosted zone.  <important> To perform the association, the VPC and the private hosted zone must already exist. You can't convert a public hosted zone into a private hosted zone. </important> <note> If you want to associate a VPC that was created by using one AWS account with a private hosted zone that was created by using a different account, the AWS account that created the private hosted zone must first submit a <code>CreateVPCAssociationAuthorization</code> request. Then the account that created the VPC must submit an <code>AssociateVPCWithHostedZone</code> request. </note>

        :param self:
        :param Comment:   <i>Optional:</i> A comment about the association request.<br/>VPC:  A complex type that contains information about the VPC that you want to associate with a private hosted zone.:<br/>HostedZoneId:  The ID of the private hosted zone that you want to associate an Amazon VPC with. Note that you can't associate a VPC with a hosted zone that doesn't have an existing VPC association.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VPCId</i> (Private hosted zones only) The ID of an Amazon VPC. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VPCRegion</i> (Private hosted zones only) The region that an Amazon VPC was created in.<br/>
        :return: ChangeInfo:  A complex type that describes the changes made to your hosted zone.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Comment</i> A complex type that describes change information about changes made to your hosted zone. This element contains an ID that you use when performing a <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_GetChange.html">GetChange</a> action to get detailed information about the change.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubmittedAt</i> The date and time that the change request was submitted in <a href="https://en.wikipedia.org/wiki/ISO_8601">ISO 8601 format</a> and Coordinated Universal Time (UTC). For example, the value <code>2017-03-27T17:48:16.751Z</code> represents March 27, 2017 at 17:48:16.751 UTC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current state of the request. <code>PENDING</code> indicates that this request has not yet been applied to all Amazon Route 53 DNS servers.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID of the request.<br/>        """
        pass

    def change_resource_record_sets(self, ChangeBatch: ChangeBatch, HostedZoneId: str) -> ChangeResourceRecordSetsResponse:
        r"""Creates, changes, or deletes a resource record set, which contains authoritative DNS information for a specified domain name or subdomain name. For example, you can use <code>ChangeResourceRecordSets</code> to create a resource record set that routes traffic for test.example.com to a web server that has an IP address of 192.0.2.44.  <b>Deleting Resource Record Sets</b>  To delete a resource record set, you must specify all the same values that you specified when you created it.  <b>Change Batches and Transactional Changes</b>  The request body must include a document with a <code>ChangeResourceRecordSetsRequest</code> element. The request body contains a list of change items, known as a change batch. Change batches are considered transactional changes. Route 53 validates the changes in the request and then either makes all or none of the changes in the change batch request. This ensures that DNS routing isn't adversely affected by partial changes to the resource record sets in a hosted zone.  For example, suppose a change batch request contains two changes: it deletes the <code>CNAME</code> resource record set for www.example.com and creates an alias resource record set for www.example.com. If validation for both records succeeds, Route 53 deletes the first resource record set and creates the second resource record set in a single operation. If validation for either the <code>DELETE</code> or the <code>CREATE</code> action fails, then the request is canceled, and the original <code>CNAME</code> record continues to exist. <note> If you try to delete the same resource record set more than once in a single change batch, Route 53 returns an <code>InvalidChangeBatch</code> error. </note>  <b>Traffic Flow</b>  To create resource record sets for complex routing configurations, use either the traffic flow visual editor in the Route 53 console or the API actions for traffic policies and traffic policy instances. Save the configuration as a traffic policy, then associate the traffic policy with one or more domain names (such as example.com) or subdomain names (such as www.example.com), in the same hosted zone or in multiple hosted zones. You can roll back the updates if the new configuration isn't performing as expected. For more information, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/traffic-flow.html">Using Traffic Flow to Route DNS Traffic</a> in the <i>Amazon Route 53 Developer Guide</i>.  <b>Create, Delete, and Upsert</b>  Use <code>ChangeResourceRecordsSetsRequest</code> to perform the following actions: <ul> <li>  <code>CREATE</code>: Creates a resource record set that has the specified values. </li> <li>  <code>DELETE</code>: Deletes an existing resource record set that has the specified values. </li> <li>  <code>UPSERT</code>: If a resource record set does not already exist, AWS creates it. If a resource set does exist, Route 53 updates it with the values in the request.  </li> </ul>  <b>Syntaxes for Creating, Updating, and Deleting Resource Record Sets</b>  The syntax for a request depends on the type of resource record set that you want to create, delete, or update, such as weighted, alias, or failover. The XML elements in your request must appear in the order listed in the syntax.  For an example for each type of resource record set, see "Examples." Don't refer to the syntax in the "Parameter Syntax" section, which includes all of the elements for every kind of resource record set that you can create, delete, or update by using <code>ChangeResourceRecordSets</code>.   <b>Change Propagation to Route 53 DNS Servers</b>  When you submit a <code>ChangeResourceRecordSets</code> request, Route 53 propagates your changes to all of the Route 53 authoritative DNS servers. While your changes are propagating, <code>GetChange</code> returns a status of <code>PENDING</code>. When propagation is complete, <code>GetChange</code> returns a status of <code>INSYNC</code>. Changes generally propagate to all Route 53 name servers within 60 seconds. For more information, see <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_GetChange.html">GetChange</a>.  <b>Limits on ChangeResourceRecordSets Requests</b>  For information about the limits on a <code>ChangeResourceRecordSets</code> request, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DNSLimitations.html">Limits</a> in the <i>Amazon Route 53 Developer Guide</i>.

        :param self:
        :param ChangeBatch:  A complex type that contains an optional comment and the <code>Changes</code> element.:<br/>HostedZoneId:  The ID of the hosted zone that contains the resource record sets that you want to change.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Changes</i> Information about the changes to make to the record sets.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Comment</i>  <i>Optional:</i> Any comments you want to include about a change batch request.<br/>
        :return: ChangeInfo:  A complex type that contains information about changes made to your hosted zone. This element contains an ID that you use when performing a <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_GetChange.html">GetChange</a> action to get detailed information about the change.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Comment</i> A complex type that describes change information about changes made to your hosted zone. This element contains an ID that you use when performing a <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_GetChange.html">GetChange</a> action to get detailed information about the change.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubmittedAt</i> The date and time that the change request was submitted in <a href="https://en.wikipedia.org/wiki/ISO_8601">ISO 8601 format</a> and Coordinated Universal Time (UTC). For example, the value <code>2017-03-27T17:48:16.751Z</code> represents March 27, 2017 at 17:48:16.751 UTC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current state of the request. <code>PENDING</code> indicates that this request has not yet been applied to all Amazon Route 53 DNS servers.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID of the request.<br/>        """
        pass

    def change_tags_for_resource(self, ResourceId: str, ResourceType: str, AddTags: List[Tag]=None, RemoveTagKeys: List[TagKey]=None) -> ChangeTagsForResourceResponse:
        r"""Adds, edits, or deletes tags for a health check or a hosted zone. For information about using tags for cost allocation, see <a href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html">Using Cost Allocation Tags</a> in the <i>AWS Billing and Cost Management User Guide</i>.

        :param self:
        :param RemoveTagKeys:  A complex type that contains a list of the tags that you want to delete from the specified health check or hosted zone. You can specify up to 10 keys.<br/>AddTags:  A complex type that contains a list of the tags that you want to add to the specified health check or hosted zone and/or the tags that you want to edit <code>Value</code> for. You can add a maximum of 10 tags to a health check or a hosted zone.<br/>ResourceId:  The ID of the resource for which you want to add, change, or delete tags.<br/>ResourceType:  The type of the resource. <ul> <li> The resource type for health checks is <code>healthcheck</code>. </li> <li> The resource type for hosted zones is <code>hostedzone</code>. </li> </ul><br/>
        :return:         """
        pass

    def create_health_check(self, HealthCheckConfig: HealthCheckConfig, CallerReference: str) -> CreateHealthCheckResponse:
        r"""Creates a new health check. For information about adding health checks to resource record sets, see <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_ResourceRecordSet.html#Route53-Type-ResourceRecordSet-HealthCheckId">HealthCheckId</a> in <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_ChangeResourceRecordSets.html">ChangeResourceRecordSets</a>.   <b>ELB Load Balancers</b>  If you're registering EC2 instances with an Elastic Load Balancing (ELB) load balancer, do not create Amazon Route 53 health checks for the EC2 instances. When you register an EC2 instance with a load balancer, you configure settings for an ELB health check, which performs a similar function to a Route 53 health check.  <b>Private Hosted Zones</b>  You can associate health checks with failover resource record sets in a private hosted zone. Note the following: <ul> <li> Route 53 health checkers are outside the VPC. To check the health of an endpoint within a VPC by IP address, you must assign a public IP address to the instance in the VPC. </li> <li> You can configure a health checker to check the health of an external resource that the instance relies on, such as a database server. </li> <li> You can create a CloudWatch metric, associate an alarm with the metric, and then create a health check that is based on the state of the alarm. For example, you might create a CloudWatch metric that checks the status of the Amazon EC2 <code>StatusCheckFailed</code> metric, add an alarm to the metric, and then create a health check that is based on the state of the alarm. For information about creating CloudWatch metrics and alarms by using the CloudWatch console, see the <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/WhatIsCloudWatch.html">Amazon CloudWatch User Guide</a>. </li> </ul>

        :param self:
        :param HealthCheckConfig:  A complex type that contains settings for a new health check.:<br/>CallerReference:  A unique string that identifies the request and that allows you to retry a failed <code>CreateHealthCheck</code> request without the risk of creating two identical health checks: <ul> <li> If you send a <code>CreateHealthCheck</code> request with the same <code>CallerReference</code> and settings as a previous request, and if the health check doesn't exist, Amazon Route 53 creates the health check. If the health check does exist, Route 53 returns the settings for the existing health check. </li> <li> If you send a <code>CreateHealthCheck</code> request with the same <code>CallerReference</code> as a deleted health check, regardless of the settings, Route 53 returns a <code>HealthCheckAlreadyExists</code> error. </li> <li> If you send a <code>CreateHealthCheck</code> request with the same <code>CallerReference</code> as an existing health check but with different settings, Route 53 returns a <code>HealthCheckAlreadyExists</code> error. </li> <li> If you send a <code>CreateHealthCheck</code> request with a unique <code>CallerReference</code> but settings identical to an existing health check, Route 53 creates the health check. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InsufficientDataHealthStatus</i> When CloudWatch has insufficient data about the metric to determine the alarm state, the status that you want Amazon Route 53 to assign to the health check: <ul> <li>  <code>Healthy</code>: Route 53 considers the health check to be healthy. </li> <li>  <code>Unhealthy</code>: Route 53 considers the health check to be unhealthy. </li> <li>  <code>LastKnownStatus</code>: Route 53 uses the status of the health check from the last time that CloudWatch had sufficient data to determine the alarm state. For new health checks that have no last known status, the default status for the health check is healthy. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AlarmIdentifier</i> A complex type that identifies the CloudWatch alarm that you want Amazon Route 53 health checkers to use to determine whether the specified health check is healthy.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AlarmIdentifier</b>: A complex type that identifies the CloudWatch alarm that you want Amazon Route 53 health checkers to use to determine whether the specified health check is healthy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Regions</i> A complex type that contains one <code>Region</code> element for each region from which you want Amazon Route 53 health checkers to check the specified endpoint. If you don't specify any regions, Route 53 health checkers automatically performs checks from all of the regions that are listed under <b>Valid Values</b>. If you update a health check to remove a region that has been performing health checks, Route 53 will briefly continue to perform checks from that region to ensure that some health checkers are always checking the endpoint (for example, if you replace three regions with four different regions). <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableSNI</i> Specify whether you want Amazon Route 53 to send the value of <code>FullyQualifiedDomainName</code> to the endpoint in the <code>client_hello</code> message during TLS negotiation. This allows the endpoint to respond to <code>HTTPS</code> health check requests with the applicable SSL/TLS certificate. Some endpoints require that <code>HTTPS</code> requests include the host name in the <code>client_hello</code> message. If you don't enable SNI, the status of the health check will be <code>SSL alert handshake_failure</code>. A health check can also have that status for other reasons. If SNI is enabled and you're still getting the error, check the SSL/TLS configuration on your endpoint and confirm that your certificate is valid. The SSL/TLS certificate on your endpoint includes a domain name in the <code>Common Name</code> field and possibly several more in the <code>Subject Alternative Names</code> field. One of the domain names in the certificate should match the value that you specify for <code>FullyQualifiedDomainName</code>. If the endpoint responds to the <code>client_hello</code> message with a certificate that does not include the domain name that you specified in <code>FullyQualifiedDomainName</code>, a health checker will retry the handshake. In the second attempt, the health checker will omit <code>FullyQualifiedDomainName</code> from the <code>client_hello</code> message.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ChildHealthChecks</i> (CALCULATED Health Checks Only) A complex type that contains one <code>ChildHealthCheck</code> element for each health check that you want to associate with a <code>CALCULATED</code> health check.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HealthThreshold</i> The number of child health checks that are associated with a <code>CALCULATED</code> health check that Amazon Route 53 must consider healthy for the <code>CALCULATED</code> health check to be considered healthy. To specify the child health checks that you want to associate with a <code>CALCULATED</code> health check, use the <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_UpdateHealthCheck.html#Route53-UpdateHealthCheck-request-ChildHealthChecks">ChildHealthChecks</a> element. Note the following: <ul> <li> If you specify a number greater than the number of child health checks, Route 53 always considers this health check to be unhealthy. </li> <li> If you specify <code>0</code>, Route 53 always considers this health check to be healthy. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Disabled</i> Stops Route 53 from performing health checks. When you disable a health check, here's what happens: <ul> <li>  <b>Health checks that check the health of endpoints:</b> Route 53 stops submitting requests to your application, server, or other resource. </li> <li>  <b>Calculated health checks:</b> Route 53 stops aggregating the status of the referenced health checks. </li> <li>  <b>Health checks that monitor CloudWatch alarms:</b> Route 53 stops monitoring the corresponding CloudWatch metrics. </li> </ul> After you disable a health check, Route 53 considers the status of the health check to always be healthy. If you configured DNS failover, Route 53 continues to route traffic to the corresponding resources. If you want to stop routing traffic to a resource, change the value of <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_UpdateHealthCheck.html#Route53-UpdateHealthCheck-request-Inverted">Inverted</a>.  Charges for a health check still apply when the health check is disabled. For more information, see <a href="http://aws.amazon.com/route53/pricing/">Amazon Route 53 Pricing</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Inverted</i> Specify whether you want Amazon Route 53 to invert the status of a health check, for example, to consider a health check unhealthy when it otherwise would be considered healthy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MeasureLatency</i> Specify whether you want Amazon Route 53 to measure the latency between health checkers in multiple AWS regions and your endpoint, and to display CloudWatch latency graphs on the <b>Health Checks</b> page in the Route 53 console. <important> You can't change the value of <code>MeasureLatency</code> after you create a health check. </important><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FailureThreshold</i> The number of consecutive health checks that an endpoint must pass or fail for Amazon Route 53 to change the current status of the endpoint from unhealthy to healthy or vice versa. For more information, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-determining-health-of-endpoints.html">How Amazon Route 53 Determines Whether an Endpoint Is Healthy</a> in the <i>Amazon Route 53 Developer Guide</i>. If you don't specify a value for <code>FailureThreshold</code>, the default value is three health checks.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequestInterval</i> The number of seconds between the time that Amazon Route 53 gets a response from your endpoint and the time that it sends the next health check request. Each Route 53 health checker makes requests at this interval. <important> You can't change the value of <code>RequestInterval</code> after you create a health check. </important> If you don't specify a value for <code>RequestInterval</code>, the default value is <code>30</code> seconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SearchString</i> If the value of Type is <code>HTTP_STR_MATCH</code> or <code>HTTPS_STR_MATCH</code>, the string that you want Amazon Route 53 to search for in the response body from the specified resource. If the string appears in the response body, Route 53 considers the resource healthy. Route 53 considers case when searching for <code>SearchString</code> in the response body. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FullyQualifiedDomainName</i> Amazon Route 53 behavior depends on whether you specify a value for <code>IPAddress</code>.  <b>If you specify a value for</b> <code>IPAddress</code>: Amazon Route 53 sends health check requests to the specified IPv4 or IPv6 address and passes the value of <code>FullyQualifiedDomainName</code> in the <code>Host</code> header for all health checks except TCP health checks. This is typically the fully qualified DNS name of the endpoint on which you want Route 53 to perform health checks. When Route 53 checks the health of an endpoint, here is how it constructs the <code>Host</code> header: <ul> <li> If you specify a value of <code>80</code> for <code>Port</code> and <code>HTTP</code> or <code>HTTP_STR_MATCH</code> for <code>Type</code>, Route 53 passes the value of <code>FullyQualifiedDomainName</code> to the endpoint in the Host header.  </li> <li> If you specify a value of <code>443</code> for <code>Port</code> and <code>HTTPS</code> or <code>HTTPS_STR_MATCH</code> for <code>Type</code>, Route 53 passes the value of <code>FullyQualifiedDomainName</code> to the endpoint in the <code>Host</code> header. </li> <li> If you specify another value for <code>Port</code> and any value except <code>TCP</code> for <code>Type</code>, Route 53 passes <code>FullyQualifiedDomainName:Port</code> to the endpoint in the <code>Host</code> header. </li> </ul> If you don't specify a value for <code>FullyQualifiedDomainName</code>, Route 53 substitutes the value of <code>IPAddress</code> in the <code>Host</code> header in each of the preceding cases.  <b>If you don't specify a value for <code>IPAddress</code> </b>: Route 53 sends a DNS request to the domain that you specify for <code>FullyQualifiedDomainName</code> at the interval that you specify for <code>RequestInterval</code>. Using an IPv4 address that DNS returns, Route 53 then checks the health of the endpoint. <note> If you don't specify a value for <code>IPAddress</code>, Route 53 uses only IPv4 to send health checks to the endpoint. If there's no resource record set with a type of A for the name that you specify for <code>FullyQualifiedDomainName</code>, the health check fails with a "DNS resolution failed" error. </note> If you want to check the health of weighted, latency, or failover resource record sets and you choose to specify the endpoint only by <code>FullyQualifiedDomainName</code>, we recommend that you create a separate health check for each endpoint. For example, create a health check for each HTTP server that is serving content for www.example.com. For the value of <code>FullyQualifiedDomainName</code>, specify the domain name of the server (such as us-east-2-www.example.com), not the name of the resource record sets (www.example.com). <important> In this configuration, if you create a health check for which the value of <code>FullyQualifiedDomainName</code> matches the name of the resource record sets and you then associate the health check with those resource record sets, health check results will be unpredictable. </important> In addition, if the value that you specify for <code>Type</code> is <code>HTTP</code>, <code>HTTPS</code>, <code>HTTP_STR_MATCH</code>, or <code>HTTPS_STR_MATCH</code>, Route 53 passes the value of <code>FullyQualifiedDomainName</code> in the <code>Host</code> header, as it does when you specify a value for <code>IPAddress</code>. If the value of <code>Type</code> is <code>TCP</code>, Route 53 doesn't pass a <code>Host</code> header.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourcePath</i> The path, if any, that you want Amazon Route 53 to request when performing health checks. The path can be any value for which your endpoint will return an HTTP status code of 2xx or 3xx when the endpoint is healthy, for example, the file /docs/route53-health-check.html. You can also include query string parameters, for example, <code>/welcome.html?language=jp&amp;login=y</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of health check that you want to create, which indicates how Amazon Route 53 determines whether an endpoint is healthy. <important> You can't change the value of <code>Type</code> after you create a health check. </important> You can create the following types of health checks: <ul> <li>  <b>HTTP</b>: Route 53 tries to establish a TCP connection. If successful, Route 53 submits an HTTP request and waits for an HTTP status code of 200 or greater and less than 400. </li> <li>  <b>HTTPS</b>: Route 53 tries to establish a TCP connection. If successful, Route 53 submits an HTTPS request and waits for an HTTP status code of 200 or greater and less than 400. <important> If you specify <code>HTTPS</code> for the value of <code>Type</code>, the endpoint must support TLS v1.0 or later. </important> </li> <li>  <b>HTTP_STR_MATCH</b>: Route 53 tries to establish a TCP connection. If successful, Route 53 submits an HTTP request and searches the first 5,120 bytes of the response body for the string that you specify in <code>SearchString</code>. </li> <li>  <b>HTTPS_STR_MATCH</b>: Route 53 tries to establish a TCP connection. If successful, Route 53 submits an <code>HTTPS</code> request and searches the first 5,120 bytes of the response body for the string that you specify in <code>SearchString</code>. </li> <li>  <b>TCP</b>: Route 53 tries to establish a TCP connection. </li> <li>  <b>CLOUDWATCH_METRIC</b>: The health check is associated with a CloudWatch alarm. If the state of the alarm is <code>OK</code>, the health check is considered healthy. If the state is <code>ALARM</code>, the health check is considered unhealthy. If CloudWatch doesn't have sufficient data to determine whether the state is <code>OK</code> or <code>ALARM</code>, the health check status depends on the setting for <code>InsufficientDataHealthStatus</code>: <code>Healthy</code>, <code>Unhealthy</code>, or <code>LastKnownStatus</code>.  </li> <li>  <b>CALCULATED</b>: For health checks that monitor the status of other health checks, Route 53 adds up the number of health checks that Route 53 health checkers consider to be healthy and compares that number with the value of <code>HealthThreshold</code>.  </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-determining-health-of-endpoints.html">How Route 53 Determines Whether an Endpoint Is Healthy</a> in the <i>Amazon Route 53 Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> The port on the endpoint that you want Amazon Route 53 to perform health checks on. <note> Don't specify a value for <code>Port</code> when you specify a value for <code>Type</code> of <code>CLOUDWATCH_METRIC</code> or <code>CALCULATED</code>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IPAddress</i> The IPv4 or IPv6 IP address of the endpoint that you want Amazon Route 53 to perform health checks on. If you don't specify a value for <code>IPAddress</code>, Route 53 sends a DNS request to resolve the domain name that you specify in <code>FullyQualifiedDomainName</code> at the interval that you specify in <code>RequestInterval</code>. Using an IP address returned by DNS, Route 53 then checks the health of the endpoint. Use one of the following formats for the value of <code>IPAddress</code>:  <ul> <li>  <b>IPv4 address</b>: four values between 0 and 255, separated by periods (.), for example, <code>192.0.2.44</code>. </li> <li>  <b>IPv6 address</b>: eight groups of four hexadecimal values, separated by colons (:), for example, <code>2001:0db8:85a3:0000:0000:abcd:0001:2345</code>. You can also shorten IPv6 addresses as described in RFC 5952, for example, <code>2001:db8:85a3::abcd:1:2345</code>. </li> </ul> If the endpoint is an EC2 instance, we recommend that you create an Elastic IP address, associate it with your EC2 instance, and specify the Elastic IP address for <code>IPAddress</code>. This ensures that the IP address of your instance will never change. For more information, see <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_UpdateHealthCheck.html#Route53-UpdateHealthCheck-request-FullyQualifiedDomainName">FullyQualifiedDomainName</a>.  Constraints: Route 53 can't check the health of endpoints for which the IP address is in local, private, non-routable, or multicast ranges. For more information about IP addresses for which you can't create health checks, see the following documents: <ul> <li>  <a href="https://tools.ietf.org/html/rfc5735">RFC 5735, Special Use IPv4 Addresses</a>  </li> <li>  <a href="https://tools.ietf.org/html/rfc6598">RFC 6598, IANA-Reserved IPv4 Prefix for Shared Address Space</a>  </li> <li>  <a href="https://tools.ietf.org/html/rfc5156">RFC 5156, Special-Use IPv6 Addresses</a>  </li> </ul> When the value of <code>Type</code> is <code>CALCULATED</code> or <code>CLOUDWATCH_METRIC</code>, omit <code>IPAddress</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the CloudWatch alarm that you want Amazon Route 53 health checkers to use to determine whether this health check is healthy. <note> Route 53 supports CloudWatch alarms with the following features: <ul> <li> Standard-resolution metrics. High-resolution metrics aren't supported. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/publishingMetrics.html#high-resolution-metrics">High-Resolution Metrics</a> in the <i>Amazon CloudWatch User Guide</i>. </li> <li> Statistics: Average, Minimum, Maximum, Sum, and SampleCount. Extended statistics aren't supported. </li> </ul> </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Region</i> For the CloudWatch alarm that you want Route 53 health checkers to use to determine whether this health check is healthy, the region that the alarm was created in. For the current list of CloudWatch regions, see <a href="https://docs.aws.amazon.com/general/latest/gr/cw_region.html">Amazon CloudWatch endpoints and quotas</a> in the <i>Amazon Web Services General Reference</i>.<br/>
        :return: Location:  The unique URL representing the new health check.<br/>HealthCheck:  A complex type that contains identifying information about the health check.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudWatchAlarmConfiguration</i> A complex type that contains information about the CloudWatch alarm that Amazon Route 53 is monitoring for this health check.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CloudWatchAlarmConfiguration</b>: A complex type that contains information about the CloudWatch alarm that Amazon Route 53 is monitoring for this health check.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HealthCheckVersion</i> The version of the health check. You can optionally pass this value in a call to <code>UpdateHealthCheck</code> to prevent overwriting another change to the health check.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HealthCheckConfig</i> A complex type that contains detailed information about one health check.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>HealthCheckConfig</b>: A complex type that contains detailed information about one health check.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LinkedService</i> If the health check was created by another service, the service that created the health check. When a health check is created by another service, you can't edit or delete it using Amazon Route 53. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>LinkedService</b>: If the health check was created by another service, the service that created the health check. When a health check is created by another service, you can't edit or delete it using Amazon Route 53. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CallerReference</i> A unique string that you specified when you created the health check.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The identifier that Amazon Route 53 assigned to the health check when you created it. When you add or update a resource record set, you use this value to specify which health check to use. The value can be up to 64 characters long. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> If the health check or hosted zone was created by another service, an optional description that can be provided by the other service. When a resource is created by another service, you can't edit or delete it using Amazon Route 53. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServicePrincipal</i> If the health check or hosted zone was created by another service, the service that created the resource. When a resource is created by another service, you can't edit or delete it using Amazon Route 53. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Regions</i> A complex type that contains one <code>Region</code> element for each region from which you want Amazon Route 53 health checkers to check the specified endpoint. If you don't specify any regions, Route 53 health checkers automatically performs checks from all of the regions that are listed under <b>Valid Values</b>. If you update a health check to remove a region that has been performing health checks, Route 53 will briefly continue to perform checks from that region to ensure that some health checkers are always checking the endpoint (for example, if you replace three regions with four different regions). <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableSNI</i> Specify whether you want Amazon Route 53 to send the value of <code>FullyQualifiedDomainName</code> to the endpoint in the <code>client_hello</code> message during TLS negotiation. This allows the endpoint to respond to <code>HTTPS</code> health check requests with the applicable SSL/TLS certificate. Some endpoints require that <code>HTTPS</code> requests include the host name in the <code>client_hello</code> message. If you don't enable SNI, the status of the health check will be <code>SSL alert handshake_failure</code>. A health check can also have that status for other reasons. If SNI is enabled and you're still getting the error, check the SSL/TLS configuration on your endpoint and confirm that your certificate is valid. The SSL/TLS certificate on your endpoint includes a domain name in the <code>Common Name</code> field and possibly several more in the <code>Subject Alternative Names</code> field. One of the domain names in the certificate should match the value that you specify for <code>FullyQualifiedDomainName</code>. If the endpoint responds to the <code>client_hello</code> message with a certificate that does not include the domain name that you specified in <code>FullyQualifiedDomainName</code>, a health checker will retry the handshake. In the second attempt, the health checker will omit <code>FullyQualifiedDomainName</code> from the <code>client_hello</code> message.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ChildHealthChecks</i> (CALCULATED Health Checks Only) A complex type that contains one <code>ChildHealthCheck</code> element for each health check that you want to associate with a <code>CALCULATED</code> health check.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HealthThreshold</i> The number of child health checks that are associated with a <code>CALCULATED</code> health check that Amazon Route 53 must consider healthy for the <code>CALCULATED</code> health check to be considered healthy. To specify the child health checks that you want to associate with a <code>CALCULATED</code> health check, use the <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_UpdateHealthCheck.html#Route53-UpdateHealthCheck-request-ChildHealthChecks">ChildHealthChecks</a> element. Note the following: <ul> <li> If you specify a number greater than the number of child health checks, Route 53 always considers this health check to be unhealthy. </li> <li> If you specify <code>0</code>, Route 53 always considers this health check to be healthy. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Disabled</i> Stops Route 53 from performing health checks. When you disable a health check, here's what happens: <ul> <li>  <b>Health checks that check the health of endpoints:</b> Route 53 stops submitting requests to your application, server, or other resource. </li> <li>  <b>Calculated health checks:</b> Route 53 stops aggregating the status of the referenced health checks. </li> <li>  <b>Health checks that monitor CloudWatch alarms:</b> Route 53 stops monitoring the corresponding CloudWatch metrics. </li> </ul> After you disable a health check, Route 53 considers the status of the health check to always be healthy. If you configured DNS failover, Route 53 continues to route traffic to the corresponding resources. If you want to stop routing traffic to a resource, change the value of <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_UpdateHealthCheck.html#Route53-UpdateHealthCheck-request-Inverted">Inverted</a>.  Charges for a health check still apply when the health check is disabled. For more information, see <a href="http://aws.amazon.com/route53/pricing/">Amazon Route 53 Pricing</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Inverted</i> Specify whether you want Amazon Route 53 to invert the status of a health check, for example, to consider a health check unhealthy when it otherwise would be considered healthy.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MeasureLatency</i> Specify whether you want Amazon Route 53 to measure the latency between health checkers in multiple AWS regions and your endpoint, and to display CloudWatch latency graphs on the <b>Health Checks</b> page in the Route 53 console. <important> You can't change the value of <code>MeasureLatency</code> after you create a health check. </important><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FailureThreshold</i> The number of consecutive health checks that an endpoint must pass or fail for Amazon Route 53 to change the current status of the endpoint from unhealthy to healthy or vice versa. For more information, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-determining-health-of-endpoints.html">How Amazon Route 53 Determines Whether an Endpoint Is Healthy</a> in the <i>Amazon Route 53 Developer Guide</i>. If you don't specify a value for <code>FailureThreshold</code>, the default value is three health checks.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RequestInterval</i> The number of seconds between the time that Amazon Route 53 gets a response from your endpoint and the time that it sends the next health check request. Each Route 53 health checker makes requests at this interval. <important> You can't change the value of <code>RequestInterval</code> after you create a health check. </important> If you don't specify a value for <code>RequestInterval</code>, the default value is <code>30</code> seconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SearchString</i> If the value of Type is <code>HTTP_STR_MATCH</code> or <code>HTTPS_STR_MATCH</code>, the string that you want Amazon Route 53 to search for in the response body from the specified resource. If the string appears in the response body, Route 53 considers the resource healthy. Route 53 considers case when searching for <code>SearchString</code> in the response body. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FullyQualifiedDomainName</i> Amazon Route 53 behavior depends on whether you specify a value for <code>IPAddress</code>.  <b>If you specify a value for</b> <code>IPAddress</code>: Amazon Route 53 sends health check requests to the specified IPv4 or IPv6 address and passes the value of <code>FullyQualifiedDomainName</code> in the <code>Host</code> header for all health checks except TCP health checks. This is typically the fully qualified DNS name of the endpoint on which you want Route 53 to perform health checks. When Route 53 checks the health of an endpoint, here is how it constructs the <code>Host</code> header: <ul> <li> If you specify a value of <code>80</code> for <code>Port</code> and <code>HTTP</code> or <code>HTTP_STR_MATCH</code> for <code>Type</code>, Route 53 passes the value of <code>FullyQualifiedDomainName</code> to the endpoint in the Host header.  </li> <li> If you specify a value of <code>443</code> for <code>Port</code> and <code>HTTPS</code> or <code>HTTPS_STR_MATCH</code> for <code>Type</code>, Route 53 passes the value of <code>FullyQualifiedDomainName</code> to the endpoint in the <code>Host</code> header. </li> <li> If you specify another value for <code>Port</code> and any value except <code>TCP</code> for <code>Type</code>, Route 53 passes <code>FullyQualifiedDomainName:Port</code> to the endpoint in the <code>Host</code> header. </li> </ul> If you don't specify a value for <code>FullyQualifiedDomainName</code>, Route 53 substitutes the value of <code>IPAddress</code> in the <code>Host</code> header in each of the preceding cases.  <b>If you don't specify a value for <code>IPAddress</code> </b>: Route 53 sends a DNS request to the domain that you specify for <code>FullyQualifiedDomainName</code> at the interval that you specify for <code>RequestInterval</code>. Using an IPv4 address that DNS returns, Route 53 then checks the health of the endpoint. <note> If you don't specify a value for <code>IPAddress</code>, Route 53 uses only IPv4 to send health checks to the endpoint. If there's no resource record set with a type of A for the name that you specify for <code>FullyQualifiedDomainName</code>, the health check fails with a "DNS resolution failed" error. </note> If you want to check the health of weighted, latency, or failover resource record sets and you choose to specify the endpoint only by <code>FullyQualifiedDomainName</code>, we recommend that you create a separate health check for each endpoint. For example, create a health check for each HTTP server that is serving content for www.example.com. For the value of <code>FullyQualifiedDomainName</code>, specify the domain name of the server (such as us-east-2-www.example.com), not the name of the resource record sets (www.example.com). <important> In this configuration, if you create a health check for which the value of <code>FullyQualifiedDomainName</code> matches the name of the resource record sets and you then associate the health check with those resource record sets, health check results will be unpredictable. </important> In addition, if the value that you specify for <code>Type</code> is <code>HTTP</code>, <code>HTTPS</code>, <code>HTTP_STR_MATCH</code>, or <code>HTTPS_STR_MATCH</code>, Route 53 passes the value of <code>FullyQualifiedDomainName</code> in the <code>Host</code> header, as it does when you specify a value for <code>IPAddress</code>. If the value of <code>Type</code> is <code>TCP</code>, Route 53 doesn't pass a <code>Host</code> header.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourcePath</i> The path, if any, that you want Amazon Route 53 to request when performing health checks. The path can be any value for which your endpoint will return an HTTP status code of 2xx or 3xx when the endpoint is healthy, for example, the file /docs/route53-health-check.html. You can also include query string parameters, for example, <code>/welcome.html?language=jp&amp;login=y</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of health check that you want to create, which indicates how Amazon Route 53 determines whether an endpoint is healthy. <important> You can't change the value of <code>Type</code> after you create a health check. </important> You can create the following types of health checks: <ul> <li>  <b>HTTP</b>: Route 53 tries to establish a TCP connection. If successful, Route 53 submits an HTTP request and waits for an HTTP status code of 200 or greater and less than 400. </li> <li>  <b>HTTPS</b>: Route 53 tries to establish a TCP connection. If successful, Route 53 submits an HTTPS request and waits for an HTTP status code of 200 or greater and less than 400. <important> If you specify <code>HTTPS</code> for the value of <code>Type</code>, the endpoint must support TLS v1.0 or later. </important> </li> <li>  <b>HTTP_STR_MATCH</b>: Route 53 tries to establish a TCP connection. If successful, Route 53 submits an HTTP request and searches the first 5,120 bytes of the response body for the string that you specify in <code>SearchString</code>. </li> <li>  <b>HTTPS_STR_MATCH</b>: Route 53 tries to establish a TCP connection. If successful, Route 53 submits an <code>HTTPS</code> request and searches the first 5,120 bytes of the response body for the string that you specify in <code>SearchString</code>. </li> <li>  <b>TCP</b>: Route 53 tries to establish a TCP connection. </li> <li>  <b>CLOUDWATCH_METRIC</b>: The health check is associated with a CloudWatch alarm. If the state of the alarm is <code>OK</code>, the health check is considered healthy. If the state is <code>ALARM</code>, the health check is considered unhealthy. If CloudWatch doesn't have sufficient data to determine whether the state is <code>OK</code> or <code>ALARM</code>, the health check status depends on the setting for <code>InsufficientDataHealthStatus</code>: <code>Healthy</code>, <code>Unhealthy</code>, or <code>LastKnownStatus</code>.  </li> <li>  <b>CALCULATED</b>: For health checks that monitor the status of other health checks, Route 53 adds up the number of health checks that Route 53 health checkers consider to be healthy and compares that number with the value of <code>HealthThreshold</code>.  </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-determining-health-of-endpoints.html">How Route 53 Determines Whether an Endpoint Is Healthy</a> in the <i>Amazon Route 53 Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> The port on the endpoint that you want Amazon Route 53 to perform health checks on. <note> Don't specify a value for <code>Port</code> when you specify a value for <code>Type</code> of <code>CLOUDWATCH_METRIC</code> or <code>CALCULATED</code>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IPAddress</i> The IPv4 or IPv6 IP address of the endpoint that you want Amazon Route 53 to perform health checks on. If you don't specify a value for <code>IPAddress</code>, Route 53 sends a DNS request to resolve the domain name that you specify in <code>FullyQualifiedDomainName</code> at the interval that you specify in <code>RequestInterval</code>. Using an IP address returned by DNS, Route 53 then checks the health of the endpoint. Use one of the following formats for the value of <code>IPAddress</code>:  <ul> <li>  <b>IPv4 address</b>: four values between 0 and 255, separated by periods (.), for example, <code>192.0.2.44</code>. </li> <li>  <b>IPv6 address</b>: eight groups of four hexadecimal values, separated by colons (:), for example, <code>2001:0db8:85a3:0000:0000:abcd:0001:2345</code>. You can also shorten IPv6 addresses as described in RFC 5952, for example, <code>2001:db8:85a3::abcd:1:2345</code>. </li> </ul> If the endpoint is an EC2 instance, we recommend that you create an Elastic IP address, associate it with your EC2 instance, and specify the Elastic IP address for <code>IPAddress</code>. This ensures that the IP address of your instance will never change. For more information, see <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_UpdateHealthCheck.html#Route53-UpdateHealthCheck-request-FullyQualifiedDomainName">FullyQualifiedDomainName</a>.  Constraints: Route 53 can't check the health of endpoints for which the IP address is in local, private, non-routable, or multicast ranges. For more information about IP addresses for which you can't create health checks, see the following documents: <ul> <li>  <a href="https://tools.ietf.org/html/rfc5735">RFC 5735, Special Use IPv4 Addresses</a>  </li> <li>  <a href="https://tools.ietf.org/html/rfc6598">RFC 6598, IANA-Reserved IPv4 Prefix for Shared Address Space</a>  </li> <li>  <a href="https://tools.ietf.org/html/rfc5156">RFC 5156, Special-Use IPv6 Addresses</a>  </li> </ul> When the value of <code>Type</code> is <code>CALCULATED</code> or <code>CLOUDWATCH_METRIC</code>, omit <code>IPAddress</code>.<br/>A complex type that identifies the CloudWatch alarm that you want Amazon Route 53 health checkers to use to determine whether the specified health check is healthy.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AlarmIdentifier</b>: A complex type that identifies the CloudWatch alarm that you want Amazon Route 53 health checkers to use to determine whether the specified health check is healthy.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Dimensions</i> For the metric that the CloudWatch alarm is associated with, a complex type that contains information about the dimensions for the metric. For information, see <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/CW_Support_For_AWS.html">Amazon CloudWatch Namespaces, Dimensions, and Metrics Reference</a> in the <i>Amazon CloudWatch User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Statistic</i> For the metric that the CloudWatch alarm is associated with, the statistic that is applied to the metric.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Namespace</i> The namespace of the metric that the alarm is associated with. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/CW_Support_For_AWS.html">Amazon CloudWatch Namespaces, Dimensions, and Metrics Reference</a> in the <i>Amazon CloudWatch User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MetricName</i> The name of the CloudWatch metric that the alarm is associated with.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Period</i> For the metric that the CloudWatch alarm is associated with, the duration of one evaluation period in seconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ComparisonOperator</i> For the metric that the CloudWatch alarm is associated with, the arithmetic operation that is used for the comparison.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Threshold</i> For the metric that the CloudWatch alarm is associated with, the value the metric is compared with.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EvaluationPeriods</i> For the metric that the CloudWatch alarm is associated with, the number of periods that the metric is compared to the threshold.<br/>        """
        pass

    def create_hosted_zone(self, CallerReference: str, Name: str, VPC: VPC=None, HostedZoneConfig: HostedZoneConfig=None, DelegationSetId: str=None) -> CreateHostedZoneResponse:
        r"""Creates a new public or private hosted zone. You create records in a public hosted zone to define how you want to route traffic on the internet for a domain, such as example.com, and its subdomains (apex.example.com, acme.example.com). You create records in a private hosted zone to define how you want to route traffic for a domain and its subdomains within one or more Amazon Virtual Private Clouds (Amazon VPCs).  <important> You can't convert a public hosted zone to a private hosted zone or vice versa. Instead, you must create a new hosted zone with the same name and create new resource record sets. </important> For more information about charges for hosted zones, see <a href="http://aws.amazon.com/route53/pricing/">Amazon Route 53 Pricing</a>. Note the following: <ul> <li> You can't create a hosted zone for a top-level domain (TLD) such as .com. </li> <li> For public hosted zones, Route 53 automatically creates a default SOA record and four NS records for the zone. For more information about SOA and NS records, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/SOA-NSrecords.html">NS and SOA Records that Route 53 Creates for a Hosted Zone</a> in the <i>Amazon Route 53 Developer Guide</i>. If you want to use the same name servers for multiple public hosted zones, you can optionally associate a reusable delegation set with the hosted zone. See the <code>DelegationSetId</code> element. </li> <li> If your domain is registered with a registrar other than Route 53, you must update the name servers with your registrar to make Route 53 the DNS service for the domain. For more information, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/MigratingDNS.html">Migrating DNS Service for an Existing Domain to Amazon Route 53</a> in the <i>Amazon Route 53 Developer Guide</i>.  </li> </ul> When you submit a <code>CreateHostedZone</code> request, the initial status of the hosted zone is <code>PENDING</code>. For public hosted zones, this means that the NS and SOA records are not yet available on all Route 53 DNS servers. When the NS and SOA records are available, the status of the zone changes to <code>INSYNC</code>. The <code>CreateHostedZone</code> request requires the caller to have an <code>ec2:DescribeVpcs</code> permission.

        :param self:
        :param DelegationSetId:  If you want to associate a reusable delegation set with this hosted zone, the ID that Amazon Route 53 assigned to the reusable delegation set when you created it. For more information about reusable delegation sets, see <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_CreateReusableDelegationSet.html">CreateReusableDelegationSet</a>.<br/>HostedZoneConfig:  (Optional) A complex type that contains the following optional values: <ul> <li> For public and private hosted zones, an optional comment </li> <li> For private hosted zones, an optional <code>PrivateZone</code> element </li> </ul> If you don't specify a comment or the <code>PrivateZone</code> element, omit <code>HostedZoneConfig</code> and the other elements.:<br/>CallerReference:  A unique string that identifies the request and that allows failed <code>CreateHostedZone</code> requests to be retried without the risk of executing the operation twice. You must use a unique <code>CallerReference</code> string every time you submit a <code>CreateHostedZone</code> request. <code>CallerReference</code> can be any unique string, for example, a date/time stamp.<br/>VPC:  (Private hosted zones only) A complex type that contains information about the Amazon VPC that you're associating with this hosted zone. You can specify only one Amazon VPC when you create a private hosted zone. To associate additional Amazon VPCs with the hosted zone, use <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_AssociateVPCWithHostedZone.html">AssociateVPCWithHostedZone</a> after you create a hosted zone.:<br/>Name:  The name of the domain. Specify a fully qualified domain name, for example, <i>www.example.com</i>. The trailing dot is optional; Amazon Route 53 assumes that the domain name is fully qualified. This means that Route 53 treats <i>www.example.com</i> (without a trailing dot) and <i>www.example.com.</i> (with a trailing dot) as identical. If you're creating a public hosted zone, this is the name you have registered with your DNS registrar. If your domain name is registered with a registrar other than Route 53, change the name servers for your domain to the set of <code>NameServers</code> that <code>CreateHostedZone</code> returns in <code>DelegationSet</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VPCId</i> (Private hosted zones only) The ID of an Amazon VPC. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VPCRegion</i> (Private hosted zones only) The region that an Amazon VPC was created in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PrivateZone</i> A value that indicates whether this is a private hosted zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Comment</i> Any comments that you want to include about the hosted zone.<br/>
        :return: Location:  The unique URL representing the new hosted zone.<br/>VPC:  A complex type that contains information about an Amazon VPC that you associated with this hosted zone.:<br/>DelegationSet:  A complex type that describes the name servers for this hosted zone.:<br/>ChangeInfo:  A complex type that contains information about the <code>CreateHostedZone</code> request.:<br/>HostedZone:  A complex type that contains general information about the hosted zone.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LinkedService</i> If the hosted zone was created by another service, the service that created the hosted zone. When a hosted zone is created by another service, you can't edit or delete it using Route 53. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>LinkedService</b>: If the hosted zone was created by another service, the service that created the hosted zone. When a hosted zone is created by another service, you can't edit or delete it using Route 53. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceRecordSetCount</i> The number of resource record sets in the hosted zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Config</i> A complex type that includes the <code>Comment</code> and <code>PrivateZone</code> elements. If you omitted the <code>HostedZoneConfig</code> and <code>Comment</code> elements from the request, the <code>Config</code> and <code>Comment</code> elements don't appear in the response.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Config</b>: A complex type that includes the <code>Comment</code> and <code>PrivateZone</code> elements. If you omitted the <code>HostedZoneConfig</code> and <code>Comment</code> elements from the request, the <code>Config</code> and <code>Comment</code> elements don't appear in the response.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CallerReference</i> The value that you specified for <code>CallerReference</code> when you created the hosted zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the domain. For public hosted zones, this is the name that you have registered with your DNS registrar. For information about how to specify characters other than <code>a-z</code>, <code>0-9</code>, and <code>-</code> (hyphen) and how to specify internationalized domain names, see <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_CreateHostedZone.html">CreateHostedZone</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID that Amazon Route 53 assigned to the hosted zone when you created it.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PrivateZone</i> A value that indicates whether this is a private hosted zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Comment</i> Any comments that you want to include about the hosted zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> If the health check or hosted zone was created by another service, an optional description that can be provided by the other service. When a resource is created by another service, you can't edit or delete it using Amazon Route 53. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServicePrincipal</i> If the health check or hosted zone was created by another service, the service that created the resource. When a resource is created by another service, you can't edit or delete it using Amazon Route 53. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Comment</i> A complex type that describes change information about changes made to your hosted zone. This element contains an ID that you use when performing a <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_GetChange.html">GetChange</a> action to get detailed information about the change.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubmittedAt</i> The date and time that the change request was submitted in <a href="https://en.wikipedia.org/wiki/ISO_8601">ISO 8601 format</a> and Coordinated Universal Time (UTC). For example, the value <code>2017-03-27T17:48:16.751Z</code> represents March 27, 2017 at 17:48:16.751 UTC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current state of the request. <code>PENDING</code> indicates that this request has not yet been applied to all Amazon Route 53 DNS servers.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID of the request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NameServers</i> A complex type that contains a list of the authoritative name servers for a hosted zone or for a reusable delegation set.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CallerReference</i> The value that you specified for <code>CallerReference</code> when you created the reusable delegation set.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID that Amazon Route 53 assigns to a reusable delegation set.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VPCId</i> (Private hosted zones only) The ID of an Amazon VPC. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VPCRegion</i> (Private hosted zones only) The region that an Amazon VPC was created in.<br/>        """
        pass

    def create_key_signing_key(self, Status: str, Name: str, KeyManagementServiceArn: str, HostedZoneId: str, CallerReference: str) -> CreateKeySigningKeyResponse:
        r"""Creates a new key-signing key (KSK) associated with a hosted zone. You can only have two KSKs per hosted zone.

        :param self:
        :param Status:  A string specifying the initial status of the key-signing key (KSK). You can set the value to <code>ACTIVE</code> or <code>INACTIVE</code>.<br/>Name:  A string used to identify a key-signing key (KSK). <code>Name</code> can include numbers, letters, and underscores (_). <code>Name</code> must be unique for each key-signing key in the same hosted zone.<br/>KeyManagementServiceArn:  The Amazon resource name (ARN) for a customer managed customer master key (CMK) in AWS Key Management Service (AWS KMS). The <code>KeyManagementServiceArn</code> must be unique for each key-signing key (KSK) in a single hosted zone. To see an example of <code>KeyManagementServiceArn</code> that grants the correct permissions for DNSSEC, scroll down to <b>Example</b>.  You must configure the customer managed CMK as follows: <dl> <dt>Status</dt> <dd> Enabled </dd> <dt>Key spec</dt> <dd> ECC_NIST_P256 </dd> <dt>Key usage</dt> <dd> Sign and verify </dd> <dt>Key policy</dt> <dd> The key policy must give permission for the following actions: <ul> <li> DescribeKey </li> <li> GetPublicKey </li> <li> Sign </li> </ul> The key policy must also include the Amazon Route 53 service in the principal for your account. Specify the following: <ul> <li>  <code>"Service": "dnssec.route53.aws.amazonaws.com"</code>  </li> </ul> </dd> </dl> For more information about working with a customer managed CMK in AWS KMS, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html">AWS Key Management Service concepts</a>.<br/>HostedZoneId:  The unique string (ID) used to identify a hosted zone.<br/>CallerReference:  A unique string that identifies the request.<br/>
        :return: Location:  The unique URL representing the new key-signing key (KSK).<br/>KeySigningKey:  The key-signing key (KSK) that the request creates.:<br/>ChangeInfo:  A complex type that describes change information about changes made to your hosted zone.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Comment</i> A complex type that describes change information about changes made to your hosted zone. This element contains an ID that you use when performing a <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_GetChange.html">GetChange</a> action to get detailed information about the change.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubmittedAt</i> The date and time that the change request was submitted in <a href="https://en.wikipedia.org/wiki/ISO_8601">ISO 8601 format</a> and Coordinated Universal Time (UTC). For example, the value <code>2017-03-27T17:48:16.751Z</code> represents March 27, 2017 at 17:48:16.751 UTC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current state of the request. <code>PENDING</code> indicates that this request has not yet been applied to all Amazon Route 53 DNS servers.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID of the request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> The last time that the key-signing key (KSK) was changed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedDate</i> The date when the key-signing key (KSK) was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusMessage</i> The status message provided for the following key-signing key (KSK) statuses: <code>ACTION_NEEDED</code> or <code>INTERNAL_FAILURE</code>. The status message includes information about what the problem might be and steps that you can take to correct the issue.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> A string that represents the current key-signing key (KSK) status. Status can have one of the following values: <dl> <dt>ACTIVE</dt> <dd> The KSK is being used for signing. </dd> <dt>INACTIVE</dt> <dd> The KSK is not being used for signing. </dd> <dt>DELETING</dt> <dd> The KSK is in the process of being deleted. </dd> <dt>ACTION_NEEDED</dt> <dd> There is a problem with the KSK that requires you to take action to resolve. For example, the customer managed customer master key (CMK) might have been deleted, or the permissions for the customer managed CMK might have been changed. </dd> <dt>INTERNAL_FAILURE</dt> <dd> There was an error during a request. Before you can continue to work with DNSSEC signing, including actions that involve this KSK, you must correct the problem. For example, you may need to activate or deactivate the KSK. </dd> </dl><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DNSKEYRecord</i> A string that represents a DNSKEY record.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DSRecord</i> A string that represents a delegation signer (DS) record.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PublicKey</i> The public key, represented as a Base64 encoding, as required by <a href="https://tools.ietf.org/rfc/rfc4034.txt"> RFC-4034 Page 5</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DigestValue</i> A cryptographic digest of a DNSKEY resource record (RR). DNSKEY records are used to publish the public key that resolvers can use to verify DNSSEC signatures that are used to secure certain kinds of information provided by the DNS system.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KeyTag</i> An integer used to identify the DNSSEC record for the domain name. The process used to calculate the value is described in <a href="https://tools.ietf.org/rfc/rfc4034.txt">RFC-4034 Appendix B</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DigestAlgorithmType</i> An integer used to represent the delegation signer digest algorithm. This value must follow the guidelines provided by <a href="https://tools.ietf.org/html/rfc8624#section-3.3">RFC-8624 Section 3.3</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DigestAlgorithmMnemonic</i> A string used to represent the delegation signer digest algorithm. This value must follow the guidelines provided by <a href="https://tools.ietf.org/html/rfc8624#section-3.3">RFC-8624 Section 3.3</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SigningAlgorithmType</i> An integer used to represent the signing algorithm. This value must follow the guidelines provided by <a href="https://tools.ietf.org/html/rfc8624#section-3.1">RFC-8624 Section 3.1</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SigningAlgorithmMnemonic</i> A string used to represent the signing algorithm. This value must follow the guidelines provided by <a href="https://tools.ietf.org/html/rfc8624#section-3.1">RFC-8624 Section 3.1</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Flag</i> An integer that specifies how the key is used. For key-signing key (KSK), this value is always 257.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsArn</i> The Amazon resource name (ARN) used to identify the customer managed customer master key (CMK) in AWS Key Management Service (AWS KMS). The <code>KmsArn</code> must be unique for each key-signing key (KSK) in a single hosted zone. You must configure the CMK as follows: <dl> <dt>Status</dt> <dd> Enabled </dd> <dt>Key spec</dt> <dd> ECC_NIST_P256 </dd> <dt>Key usage</dt> <dd> Sign and verify </dd> <dt>Key policy</dt> <dd> The key policy must give permission for the following actions: <ul> <li> DescribeKey </li> <li> GetPublicKey </li> <li> Sign </li> </ul> The key policy must also include the Amazon Route 53 service in the principal for your account. Specify the following: <ul> <li>  <code>"Service": "api-service.dnssec.route53.aws.internal"</code>  </li> </ul> </dd> </dl> For more information about working with the customer managed CMK in AWS KMS, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html">AWS Key Management Service concepts</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A string used to identify a key-signing key (KSK). <code>Name</code> can include numbers, letters, and underscores (_). <code>Name</code> must be unique for each key-signing key in the same hosted zone.<br/>        """
        pass

    def create_query_logging_config(self, CloudWatchLogsLogGroupArn: str, HostedZoneId: str) -> CreateQueryLoggingConfigResponse:
        r"""Creates a configuration for DNS query logging. After you create a query logging configuration, Amazon Route 53 begins to publish log data to an Amazon CloudWatch Logs log group. DNS query logs contain information about the queries that Route 53 receives for a specified public hosted zone, such as the following: <ul> <li> Route 53 edge location that responded to the DNS query </li> <li> Domain or subdomain that was requested </li> <li> DNS record type, such as A or AAAA </li> <li> DNS response code, such as <code>NoError</code> or <code>ServFail</code>  </li> </ul> <dl> <dt>Log Group and Resource Policy</dt> <dd> Before you create a query logging configuration, perform the following operations. <note> If you create a query logging configuration using the Route 53 console, Route 53 performs these operations automatically. </note> <ol> <li> Create a CloudWatch Logs log group, and make note of the ARN, which you specify when you create a query logging configuration. Note the following: <ul> <li> You must create the log group in the us-east-1 region. </li> <li> You must use the same AWS account to create the log group and the hosted zone that you want to configure query logging for. </li> <li> When you create log groups for query logging, we recommend that you use a consistent prefix, for example:  <code>/aws/route53/<i>hosted zone name</i> </code>  In the next step, you'll create a resource policy, which controls access to one or more log groups and the associated AWS resources, such as Route 53 hosted zones. There's a limit on the number of resource policies that you can create, so we recommend that you use a consistent prefix so you can use the same resource policy for all the log groups that you create for query logging. </li> </ul> </li> <li> Create a CloudWatch Logs resource policy, and give it the permissions that Route 53 needs to create log streams and to send query logs to log streams. For the value of <code>Resource</code>, specify the ARN for the log group that you created in the previous step. To use the same resource policy for all the CloudWatch Logs log groups that you created for query logging configurations, replace the hosted zone name with <code>*</code>, for example:  <code>arn:aws:logs:us-east-1:123412341234:log-group:/aws/route53/*</code>  <note> You can't use the CloudWatch console to create or edit a resource policy. You must use the CloudWatch API, one of the AWS SDKs, or the AWS CLI. </note> </li> </ol> </dd> <dt>Log Streams and Edge Locations</dt> <dd> When Route 53 finishes creating the configuration for DNS query logging, it does the following: <ul> <li> Creates a log stream for an edge location the first time that the edge location responds to DNS queries for the specified hosted zone. That log stream is used to log all queries that Route 53 responds to for that edge location. </li> <li> Begins to send query logs to the applicable log stream. </li> </ul> The name of each log stream is in the following format:  <code> <i>hosted zone ID</i>/<i>edge location code</i> </code>  The edge location code is a three-letter code and an arbitrarily assigned number, for example, DFW3. The three-letter code typically corresponds with the International Air Transport Association airport code for an airport near the edge location. (These abbreviations might change in the future.) For a list of edge locations, see "The Route 53 Global Network" on the <a href="http://aws.amazon.com/route53/details/">Route 53 Product Details</a> page. </dd> <dt>Queries That Are Logged</dt> <dd> Query logs contain only the queries that DNS resolvers forward to Route 53. If a DNS resolver has already cached the response to a query (such as the IP address for a load balancer for example.com), the resolver will continue to return the cached response. It doesn't forward another query to Route 53 until the TTL for the corresponding resource record set expires. Depending on how many DNS queries are submitted for a resource record set, and depending on the TTL for that resource record set, query logs might contain information about only one query out of every several thousand queries that are submitted to DNS. For more information about how DNS works, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/welcome-dns-service.html">Routing Internet Traffic to Your Website or Web Application</a> in the <i>Amazon Route 53 Developer Guide</i>. </dd> <dt>Log File Format</dt> <dd> For a list of the values in each query log and the format of each value, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/query-logs.html">Logging DNS Queries</a> in the <i>Amazon Route 53 Developer Guide</i>. </dd> <dt>Pricing</dt> <dd> For information about charges for query logs, see <a href="http://aws.amazon.com/cloudwatch/pricing/">Amazon CloudWatch Pricing</a>. </dd> <dt>How to Stop Logging</dt> <dd> If you want Route 53 to stop sending query logs to CloudWatch Logs, delete the query logging configuration. For more information, see <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_DeleteQueryLoggingConfig.html">DeleteQueryLoggingConfig</a>. </dd> </dl>

        :param self:
        :param CloudWatchLogsLogGroupArn:  The Amazon Resource Name (ARN) for the log group that you want to Amazon Route 53 to send query logs to. This is the format of the ARN: arn:aws:logs:<i>region</i>:<i>account-id</i>:log-group:<i>log_group_name</i>  To get the ARN for a log group, you can use the CloudWatch console, the <a href="https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DescribeLogGroups.html">DescribeLogGroups</a> API action, the <a href="https://docs.aws.amazon.com/cli/latest/reference/logs/describe-log-groups.html">describe-log-groups</a> command, or the applicable command in one of the AWS SDKs.<br/>HostedZoneId:  The ID of the hosted zone that you want to log queries for. You can log queries only for public hosted zones.<br/>
        :return: Location:  The unique URL representing the new query logging configuration.<br/>QueryLoggingConfig:  A complex type that contains the ID for a query logging configuration, the ID of the hosted zone that you want to log queries for, and the ARN for the log group that you want Amazon Route 53 to send query logs to.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudWatchLogsLogGroupArn</i> The Amazon Resource Name (ARN) of the CloudWatch Logs log group that Amazon Route 53 is publishing logs to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HostedZoneId</i> The ID of the hosted zone that CloudWatch Logs is logging queries for. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID for a configuration for DNS query logging.<br/>        """
        pass

    def create_reusable_delegation_set(self, CallerReference: str, HostedZoneId: str=None) -> CreateReusableDelegationSetResponse:
        r"""Creates a delegation set (a group of four name servers) that can be reused by multiple hosted zones that were created by the same AWS account.  You can also create a reusable delegation set that uses the four name servers that are associated with an existing hosted zone. Specify the hosted zone ID in the <code>CreateReusableDelegationSet</code> request. <note> You can't associate a reusable delegation set with a private hosted zone. </note> For information about using a reusable delegation set to configure white label name servers, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/white-label-name-servers.html">Configuring White Label Name Servers</a>. The process for migrating existing hosted zones to use a reusable delegation set is comparable to the process for configuring white label name servers. You need to perform the following steps: <ol> <li> Create a reusable delegation set. </li> <li> Recreate hosted zones, and reduce the TTL to 60 seconds or less. </li> <li> Recreate resource record sets in the new hosted zones. </li> <li> Change the registrar's name servers to use the name servers for the new hosted zones. </li> <li> Monitor traffic for the website or application. </li> <li> Change TTLs back to their original values. </li> </ol> If you want to migrate existing hosted zones to use a reusable delegation set, the existing hosted zones can't use any of the name servers that are assigned to the reusable delegation set. If one or more hosted zones do use one or more name servers that are assigned to the reusable delegation set, you can do one of the following: <ul> <li> For small numbers of hosted zones—up to a few hundred—it's relatively easy to create reusable delegation sets until you get one that has four name servers that don't overlap with any of the name servers in your hosted zones. </li> <li> For larger numbers of hosted zones, the easiest solution is to use more than one reusable delegation set. </li> <li> For larger numbers of hosted zones, you can also migrate hosted zones that have overlapping name servers to hosted zones that don't have overlapping name servers, then migrate the hosted zones again to use the reusable delegation set. </li> </ul>

        :param self:
        :param HostedZoneId:  If you want to mark the delegation set for an existing hosted zone as reusable, the ID for that hosted zone.<br/>CallerReference:  A unique string that identifies the request, and that allows you to retry failed <code>CreateReusableDelegationSet</code> requests without the risk of executing the operation twice. You must use a unique <code>CallerReference</code> string every time you submit a <code>CreateReusableDelegationSet</code> request. <code>CallerReference</code> can be any unique string, for example a date/time stamp.<br/>
        :return: Location:  The unique URL representing the new reusable delegation set.<br/>DelegationSet:  A complex type that contains name server information.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NameServers</i> A complex type that contains a list of the authoritative name servers for a hosted zone or for a reusable delegation set.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CallerReference</i> The value that you specified for <code>CallerReference</code> when you created the reusable delegation set.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID that Amazon Route 53 assigns to a reusable delegation set.<br/>        """
        pass

    def create_traffic_policy(self, Document: str, Name: str, Comment: str=None) -> CreateTrafficPolicyResponse:
        r"""Creates a traffic policy, which you use to create multiple DNS resource record sets for one domain name (such as example.com) or one subdomain name (such as www.example.com).

        :param self:
        :param Comment:  (Optional) Any comments that you want to include about the traffic policy.<br/>Document:  The definition of this traffic policy in JSON format. For more information, see <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/api-policies-traffic-policy-document-format.html">Traffic Policy Document Format</a>.<br/>Name:  The name of the traffic policy.<br/>
        :return: Location:  A unique URL that represents a new traffic policy.<br/>TrafficPolicy:  A complex type that contains settings for the new traffic policy.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Comment</i> The comment that you specify in the <code>CreateTrafficPolicy</code> request, if any.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Document</i> The definition of a traffic policy in JSON format. You specify the JSON document to use for a new traffic policy in the <code>CreateTrafficPolicy</code> request. For more information about the JSON format, see <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/api-policies-traffic-policy-document-format.html">Traffic Policy Document Format</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The DNS type of the resource record sets that Amazon Route 53 creates when you use a traffic policy to create a traffic policy instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name that you specified when you created the traffic policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The version number that Amazon Route 53 assigns to a traffic policy. For a new traffic policy, the value of <code>Version</code> is always 1.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID that Amazon Route 53 assigned to a traffic policy when you created it.<br/>        """
        pass

    def create_traffic_policy_instance(self, TrafficPolicyVersion: int, TrafficPolicyId: str, TTL: TTL, Name: str, HostedZoneId: str) -> CreateTrafficPolicyInstanceResponse:
        r"""Creates resource record sets in a specified hosted zone based on the settings in a specified traffic policy version. In addition, <code>CreateTrafficPolicyInstance</code> associates the resource record sets with a specified domain name (such as example.com) or subdomain name (such as www.example.com). Amazon Route 53 responds to DNS queries for the domain or subdomain name by using the resource record sets that <code>CreateTrafficPolicyInstance</code> created.

        :param self:
        :param TrafficPolicyVersion:  The version of the traffic policy that you want to use to create resource record sets in the specified hosted zone.<br/>TrafficPolicyId:  The ID of the traffic policy that you want to use to create resource record sets in the specified hosted zone.<br/>TTL:  (Optional) The TTL that you want Amazon Route 53 to assign to all of the resource record sets that it creates in the specified hosted zone.<br/>Name:  The domain name (such as example.com) or subdomain name (such as www.example.com) for which Amazon Route 53 responds to DNS queries by using the resource record sets that Route 53 creates for this traffic policy instance.<br/>HostedZoneId:  The ID of the hosted zone that you want Amazon Route 53 to create resource record sets in by using the configuration in a traffic policy.<br/>
        :return: Location:  A unique URL that represents a new traffic policy instance.<br/>TrafficPolicyInstance:  A complex type that contains settings for the new traffic policy instance.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TrafficPolicyType</i> The DNS type that Amazon Route 53 assigned to all of the resource record sets that it created for this traffic policy instance. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TrafficPolicyVersion</i> The version of the traffic policy that Amazon Route 53 used to create resource record sets in the specified hosted zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TrafficPolicyId</i> The ID of the traffic policy that Amazon Route 53 used to create resource record sets in the specified hosted zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> If <code>State</code> is <code>Failed</code>, an explanation of the reason for the failure. If <code>State</code> is another value, <code>Message</code> is empty.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The value of <code>State</code> is one of the following values: <dl> <dt>Applied</dt> <dd> Amazon Route 53 has finished creating resource record sets, and changes have propagated to all Route 53 edge locations. </dd> <dt>Creating</dt> <dd> Route 53 is creating the resource record sets. Use <code>GetTrafficPolicyInstance</code> to confirm that the <code>CreateTrafficPolicyInstance</code> request completed successfully. </dd> <dt>Failed</dt> <dd> Route 53 wasn't able to create or update the resource record sets. When the value of <code>State</code> is <code>Failed</code>, see <code>Message</code> for an explanation of what caused the request to fail. </dd> </dl><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TTL</i> The TTL that Amazon Route 53 assigned to all of the resource record sets that it created in the specified hosted zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The DNS name, such as www.example.com, for which Amazon Route 53 responds to queries by using the resource record sets that are associated with this traffic policy instance. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HostedZoneId</i> The ID of the hosted zone that Amazon Route 53 created resource record sets in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID that Amazon Route 53 assigned to the new traffic policy instance.<br/>        """
        pass

    def create_traffic_policy_version(self, Document: str, Id: str, Comment: str=None) -> CreateTrafficPolicyVersionResponse:
        r"""Creates a new version of an existing traffic policy. When you create a new version of a traffic policy, you specify the ID of the traffic policy that you want to update and a JSON-formatted document that describes the new version. You use traffic policies to create multiple DNS resource record sets for one domain name (such as example.com) or one subdomain name (such as www.example.com). You can create a maximum of 1000 versions of a traffic policy. If you reach the limit and need to create another version, you'll need to start a new traffic policy.

        :param self:
        :param Comment:  The comment that you specified in the <code>CreateTrafficPolicyVersion</code> request, if any.<br/>Document:  The definition of this version of the traffic policy, in JSON format. You specified the JSON in the <code>CreateTrafficPolicyVersion</code> request. For more information about the JSON format, see <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_CreateTrafficPolicy.html">CreateTrafficPolicy</a>.<br/>Id:  The ID of the traffic policy for which you want to create a new version.<br/>
        :return: Location:  A unique URL that represents a new traffic policy version.<br/>TrafficPolicy:  A complex type that contains settings for the new version of the traffic policy.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Comment</i> The comment that you specify in the <code>CreateTrafficPolicy</code> request, if any.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Document</i> The definition of a traffic policy in JSON format. You specify the JSON document to use for a new traffic policy in the <code>CreateTrafficPolicy</code> request. For more information about the JSON format, see <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/api-policies-traffic-policy-document-format.html">Traffic Policy Document Format</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The DNS type of the resource record sets that Amazon Route 53 creates when you use a traffic policy to create a traffic policy instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name that you specified when you created the traffic policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The version number that Amazon Route 53 assigns to a traffic policy. For a new traffic policy, the value of <code>Version</code> is always 1.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID that Amazon Route 53 assigned to a traffic policy when you created it.<br/>        """
        pass

    def create_vpc_association_authorization(self, VPC: VPC, HostedZoneId: str) -> CreateVPCAssociationAuthorizationResponse:
        r"""Authorizes the AWS account that created a specified VPC to submit an <code>AssociateVPCWithHostedZone</code> request to associate the VPC with a specified hosted zone that was created by a different account. To submit a <code>CreateVPCAssociationAuthorization</code> request, you must use the account that created the hosted zone. After you authorize the association, use the account that created the VPC to submit an <code>AssociateVPCWithHostedZone</code> request. <note> If you want to associate multiple VPCs that you created by using one account with a hosted zone that you created by using a different account, you must submit one authorization request for each VPC. </note>

        :param self:
        :param VPC:  A complex type that contains the VPC ID and region for the VPC that you want to authorize associating with your hosted zone.:<br/>HostedZoneId:  The ID of the private hosted zone that you want to authorize associating a VPC with.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VPCId</i> (Private hosted zones only) The ID of an Amazon VPC. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VPCRegion</i> (Private hosted zones only) The region that an Amazon VPC was created in.<br/>
        :return: VPC:  The VPC that you authorized associating with a hosted zone.:<br/>HostedZoneId:  The ID of the hosted zone that you authorized associating a VPC with.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VPCId</i> (Private hosted zones only) The ID of an Amazon VPC. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VPCRegion</i> (Private hosted zones only) The region that an Amazon VPC was created in.<br/>        """
        pass

    def deactivate_key_signing_key(self, Name: str, HostedZoneId: str) -> DeactivateKeySigningKeyResponse:
        r"""Deactivates a key-signing key (KSK) so that it will not be used for signing by DNSSEC. This operation changes the KSK status to <code>INACTIVE</code>.

        :param self:
        :param Name:  A string used to identify a key-signing key (KSK).<br/>HostedZoneId:  A unique string used to identify a hosted zone.<br/>
        :return: ChangeInfo:  A complex type that describes change information about changes made to your hosted zone.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Comment</i> A complex type that describes change information about changes made to your hosted zone. This element contains an ID that you use when performing a <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_GetChange.html">GetChange</a> action to get detailed information about the change.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubmittedAt</i> The date and time that the change request was submitted in <a href="https://en.wikipedia.org/wiki/ISO_8601">ISO 8601 format</a> and Coordinated Universal Time (UTC). For example, the value <code>2017-03-27T17:48:16.751Z</code> represents March 27, 2017 at 17:48:16.751 UTC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current state of the request. <code>PENDING</code> indicates that this request has not yet been applied to all Amazon Route 53 DNS servers.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID of the request.<br/>        """
        pass

    def delete_health_check(self, HealthCheckId: str) -> DeleteHealthCheckResponse:
        r"""Deletes a health check. <important> Amazon Route 53 does not prevent you from deleting a health check even if the health check is associated with one or more resource record sets. If you delete a health check and you don't update the associated resource record sets, the future status of the health check can't be predicted and may change. This will affect the routing of DNS queries for your DNS failover configuration. For more information, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/health-checks-creating-deleting.html#health-checks-deleting.html">Replacing and Deleting Health Checks</a> in the <i>Amazon Route 53 Developer Guide</i>. </important> If you're using AWS Cloud Map and you configured Cloud Map to create a Route 53 health check when you register an instance, you can't use the Route 53 <code>DeleteHealthCheck</code> command to delete the health check. The health check is deleted automatically when you deregister the instance; there can be a delay of several hours before the health check is deleted from Route 53. 

        :param self:
        :param HealthCheckId:  The ID of the health check that you want to delete.<br/>
        :return:         """
        pass

    def delete_hosted_zone(self, Id: str) -> DeleteHostedZoneResponse:
        r"""Deletes a hosted zone. If the hosted zone was created by another service, such as AWS Cloud Map, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DeleteHostedZone.html#delete-public-hosted-zone-created-by-another-service">Deleting Public Hosted Zones That Were Created by Another Service</a> in the <i>Amazon Route 53 Developer Guide</i> for information about how to delete it. (The process is the same for public and private hosted zones that were created by another service.) If you want to keep your domain registration but you want to stop routing internet traffic to your website or web application, we recommend that you delete resource record sets in the hosted zone instead of deleting the hosted zone. <important> If you delete a hosted zone, you can't undelete it. You must create a new hosted zone and update the name servers for your domain registration, which can require up to 48 hours to take effect. (If you delegated responsibility for a subdomain to a hosted zone and you delete the child hosted zone, you must update the name servers in the parent hosted zone.) In addition, if you delete a hosted zone, someone could hijack the domain and route traffic to their own resources using your domain name. </important> If you want to avoid the monthly charge for the hosted zone, you can transfer DNS service for the domain to a free DNS service. When you transfer DNS service, you have to update the name servers for the domain registration. If the domain is registered with Route 53, see <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_UpdateDomainNameservers.html">UpdateDomainNameservers</a> for information about how to replace Route 53 name servers with name servers for the new DNS service. If the domain is registered with another registrar, use the method provided by the registrar to update name servers for the domain registration. For more information, perform an internet search on "free DNS service." You can delete a hosted zone only if it contains only the default SOA record and NS resource record sets. If the hosted zone contains other resource record sets, you must delete them before you can delete the hosted zone. If you try to delete a hosted zone that contains other resource record sets, the request fails, and Route 53 returns a <code>HostedZoneNotEmpty</code> error. For information about deleting records from your hosted zone, see <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_ChangeResourceRecordSets.html">ChangeResourceRecordSets</a>. To verify that the hosted zone has been deleted, do one of the following: <ul> <li> Use the <code>GetHostedZone</code> action to request information about the hosted zone. </li> <li> Use the <code>ListHostedZones</code> action to get a list of the hosted zones associated with the current AWS account. </li> </ul>

        :param self:
        :param Id:  The ID of the hosted zone you want to delete.<br/>
        :return: ChangeInfo:  A complex type that contains the ID, the status, and the date and time of a request to delete a hosted zone.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Comment</i> A complex type that describes change information about changes made to your hosted zone. This element contains an ID that you use when performing a <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_GetChange.html">GetChange</a> action to get detailed information about the change.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubmittedAt</i> The date and time that the change request was submitted in <a href="https://en.wikipedia.org/wiki/ISO_8601">ISO 8601 format</a> and Coordinated Universal Time (UTC). For example, the value <code>2017-03-27T17:48:16.751Z</code> represents March 27, 2017 at 17:48:16.751 UTC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current state of the request. <code>PENDING</code> indicates that this request has not yet been applied to all Amazon Route 53 DNS servers.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID of the request.<br/>        """
        pass

    def delete_key_signing_key(self, Name: str, HostedZoneId: str) -> DeleteKeySigningKeyResponse:
        r"""Deletes a key-signing key (KSK). Before you can delete a KSK, you must deactivate it. The KSK must be deactivated before you can delete it regardless of whether the hosted zone is enabled for DNSSEC signing.

        :param self:
        :param Name:  A string used to identify a key-signing key (KSK).<br/>HostedZoneId:  A unique string used to identify a hosted zone.<br/>
        :return: ChangeInfo:  A complex type that describes change information about changes made to your hosted zone.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Comment</i> A complex type that describes change information about changes made to your hosted zone. This element contains an ID that you use when performing a <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_GetChange.html">GetChange</a> action to get detailed information about the change.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubmittedAt</i> The date and time that the change request was submitted in <a href="https://en.wikipedia.org/wiki/ISO_8601">ISO 8601 format</a> and Coordinated Universal Time (UTC). For example, the value <code>2017-03-27T17:48:16.751Z</code> represents March 27, 2017 at 17:48:16.751 UTC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current state of the request. <code>PENDING</code> indicates that this request has not yet been applied to all Amazon Route 53 DNS servers.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID of the request.<br/>        """
        pass

    def delete_query_logging_config(self, Id: str) -> DeleteQueryLoggingConfigResponse:
        r"""Deletes a configuration for DNS query logging. If you delete a configuration, Amazon Route 53 stops sending query logs to CloudWatch Logs. Route 53 doesn't delete any logs that are already in CloudWatch Logs. For more information about DNS query logs, see <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_CreateQueryLoggingConfig.html">CreateQueryLoggingConfig</a>.

        :param self:
        :param Id:  The ID of the configuration that you want to delete. <br/>
        :return:         """
        pass

    def delete_reusable_delegation_set(self, Id: str) -> DeleteReusableDelegationSetResponse:
        r"""Deletes a reusable delegation set. <important> You can delete a reusable delegation set only if it isn't associated with any hosted zones. </important> To verify that the reusable delegation set is not associated with any hosted zones, submit a <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_GetReusableDelegationSet.html">GetReusableDelegationSet</a> request and specify the ID of the reusable delegation set that you want to delete.

        :param self:
        :param Id:  The ID of the reusable delegation set that you want to delete.<br/>
        :return:         """
        pass

    def delete_traffic_policy(self, Version: int, Id: str) -> DeleteTrafficPolicyResponse:
        r"""Deletes a traffic policy. When you delete a traffic policy, Route 53 sets a flag on the policy to indicate that it has been deleted. However, Route 53 never fully deletes the traffic policy. Note the following: <ul> <li> Deleted traffic policies aren't listed if you run <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_ListTrafficPolicies.html">ListTrafficPolicies</a>. </li> <li>  There's no way to get a list of deleted policies. </li> <li> If you retain the ID of the policy, you can get information about the policy, including the traffic policy document, by running <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_GetTrafficPolicy.html">GetTrafficPolicy</a>. </li> </ul>

        :param self:
        :param Version:  The version number of the traffic policy that you want to delete.<br/>Id:  The ID of the traffic policy that you want to delete.<br/>
        :return:         """
        pass

    def delete_traffic_policy_instance(self, Id: str) -> DeleteTrafficPolicyInstanceResponse:
        r"""Deletes a traffic policy instance and all of the resource record sets that Amazon Route 53 created when you created the instance. <note> In the Route 53 console, traffic policy instances are known as policy records. </note>

        :param self:
        :param Id:  The ID of the traffic policy instance that you want to delete.  <important> When you delete a traffic policy instance, Amazon Route 53 also deletes all of the resource record sets that were created when you created the traffic policy instance. </important><br/>
        :return:         """
        pass

    def delete_vpc_association_authorization(self, VPC: VPC, HostedZoneId: str) -> DeleteVPCAssociationAuthorizationResponse:
        r"""Removes authorization to submit an <code>AssociateVPCWithHostedZone</code> request to associate a specified VPC with a hosted zone that was created by a different account. You must use the account that created the hosted zone to submit a <code>DeleteVPCAssociationAuthorization</code> request. <important> Sending this request only prevents the AWS account that created the VPC from associating the VPC with the Amazon Route 53 hosted zone in the future. If the VPC is already associated with the hosted zone, <code>DeleteVPCAssociationAuthorization</code> won't disassociate the VPC from the hosted zone. If you want to delete an existing association, use <code>DisassociateVPCFromHostedZone</code>. </important>

        :param self:
        :param VPC:  When removing authorization to associate a VPC that was created by one AWS account with a hosted zone that was created with a different AWS account, a complex type that includes the ID and region of the VPC.:<br/>HostedZoneId:  When removing authorization to associate a VPC that was created by one AWS account with a hosted zone that was created with a different AWS account, the ID of the hosted zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VPCId</i> (Private hosted zones only) The ID of an Amazon VPC. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VPCRegion</i> (Private hosted zones only) The region that an Amazon VPC was created in.<br/>
        :return:         """
        pass

    def disable_hosted_zone_dnssec(self, HostedZoneId: str) -> DisableHostedZoneDNSSECResponse:
        r"""Disables DNSSEC signing in a specific hosted zone. This action does not deactivate any key-signing keys (KSKs) that are active in the hosted zone.

        :param self:
        :param HostedZoneId:  A unique string used to identify a hosted zone.<br/>
        :return: ChangeInfo:  A complex type that describes change information about changes made to your hosted zone.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Comment</i> A complex type that describes change information about changes made to your hosted zone. This element contains an ID that you use when performing a <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_GetChange.html">GetChange</a> action to get detailed information about the change.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubmittedAt</i> The date and time that the change request was submitted in <a href="https://en.wikipedia.org/wiki/ISO_8601">ISO 8601 format</a> and Coordinated Universal Time (UTC). For example, the value <code>2017-03-27T17:48:16.751Z</code> represents March 27, 2017 at 17:48:16.751 UTC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current state of the request. <code>PENDING</code> indicates that this request has not yet been applied to all Amazon Route 53 DNS servers.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID of the request.<br/>        """
        pass

    def disassociate_vpc_from_hosted_zone(self, VPC: VPC, HostedZoneId: str, Comment: str=None) -> DisassociateVPCFromHostedZoneResponse:
        r"""Disassociates an Amazon Virtual Private Cloud (Amazon VPC) from an Amazon Route 53 private hosted zone. Note the following: <ul> <li> You can't disassociate the last Amazon VPC from a private hosted zone. </li> <li> You can't convert a private hosted zone into a public hosted zone. </li> <li> You can submit a <code>DisassociateVPCFromHostedZone</code> request using either the account that created the hosted zone or the account that created the Amazon VPC. </li> <li> Some services, such as AWS Cloud Map and Amazon Elastic File System (Amazon EFS) automatically create hosted zones and associate VPCs with the hosted zones. A service can create a hosted zone using your account or using its own account. You can disassociate a VPC from a hosted zone only if the service created the hosted zone using your account. When you run <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_ListHostedZonesByVPC.html">DisassociateVPCFromHostedZone</a>, if the hosted zone has a value for <code>OwningAccount</code>, you can use <code>DisassociateVPCFromHostedZone</code>. If the hosted zone has a value for <code>OwningService</code>, you can't use <code>DisassociateVPCFromHostedZone</code>. </li> </ul>

        :param self:
        :param Comment:   <i>Optional:</i> A comment about the disassociation request.<br/>VPC:  A complex type that contains information about the VPC that you're disassociating from the specified hosted zone.:<br/>HostedZoneId:  The ID of the private hosted zone that you want to disassociate a VPC from.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VPCId</i> (Private hosted zones only) The ID of an Amazon VPC. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VPCRegion</i> (Private hosted zones only) The region that an Amazon VPC was created in.<br/>
        :return: ChangeInfo:  A complex type that describes the changes made to the specified private hosted zone.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Comment</i> A complex type that describes change information about changes made to your hosted zone. This element contains an ID that you use when performing a <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_GetChange.html">GetChange</a> action to get detailed information about the change.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubmittedAt</i> The date and time that the change request was submitted in <a href="https://en.wikipedia.org/wiki/ISO_8601">ISO 8601 format</a> and Coordinated Universal Time (UTC). For example, the value <code>2017-03-27T17:48:16.751Z</code> represents March 27, 2017 at 17:48:16.751 UTC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current state of the request. <code>PENDING</code> indicates that this request has not yet been applied to all Amazon Route 53 DNS servers.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID of the request.<br/>        """
        pass

    def enable_hosted_zone_dnssec(self, HostedZoneId: str) -> EnableHostedZoneDNSSECResponse:
        r"""Enables DNSSEC signing in a specific hosted zone.

        :param self:
        :param HostedZoneId:  A unique string used to identify a hosted zone.<br/>
        :return: ChangeInfo:  A complex type that describes change information about changes made to your hosted zone.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Comment</i> A complex type that describes change information about changes made to your hosted zone. This element contains an ID that you use when performing a <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_GetChange.html">GetChange</a> action to get detailed information about the change.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubmittedAt</i> The date and time that the change request was submitted in <a href="https://en.wikipedia.org/wiki/ISO_8601">ISO 8601 format</a> and Coordinated Universal Time (UTC). For example, the value <code>2017-03-27T17:48:16.751Z</code> represents March 27, 2017 at 17:48:16.751 UTC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current state of the request. <code>PENDING</code> indicates that this request has not yet been applied to all Amazon Route 53 DNS servers.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID of the request.<br/>        """
        pass

    def get_account_limit(self, Type: str) -> GetAccountLimitResponse:
        r"""Gets the specified limit for the current account, for example, the maximum number of health checks that you can create using the account. For the default limit, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DNSLimitations.html">Limits</a> in the <i>Amazon Route 53 Developer Guide</i>. To request a higher limit, <a href="https://console.aws.amazon.com/support/home#/case/create?issueType=service-limit-increase&amp;limitType=service-code-route53">open a case</a>. <note> You can also view account limits in AWS Trusted Advisor. Sign in to the AWS Management Console and open the Trusted Advisor console at <a href="https://console.aws.amazon.com/trustedadvisor">https://console.aws.amazon.com/trustedadvisor/</a>. Then choose <b>Service limits</b> in the navigation pane. </note>

        :param self:
        :param Type:  The limit that you want to get. Valid values include the following: <ul> <li>  <b>MAX_HEALTH_CHECKS_BY_OWNER</b>: The maximum number of health checks that you can create using the current account. </li> <li>  <b>MAX_HOSTED_ZONES_BY_OWNER</b>: The maximum number of hosted zones that you can create using the current account. </li> <li>  <b>MAX_REUSABLE_DELEGATION_SETS_BY_OWNER</b>: The maximum number of reusable delegation sets that you can create using the current account. </li> <li>  <b>MAX_TRAFFIC_POLICIES_BY_OWNER</b>: The maximum number of traffic policies that you can create using the current account. </li> <li>  <b>MAX_TRAFFIC_POLICY_INSTANCES_BY_OWNER</b>: The maximum number of traffic policy instances that you can create using the current account. (Traffic policy instances are referred to as traffic flow policy records in the Amazon Route 53 console.) </li> </ul><br/>
        :return: Count:  The current number of entities that you have created of the specified type. For example, if you specified <code>MAX_HEALTH_CHECKS_BY_OWNER</code> for the value of <code>Type</code> in the request, the value of <code>Count</code> is the current number of health checks that you have created using the current account.<br/>Limit:  The current setting for the specified limit. For example, if you specified <code>MAX_HEALTH_CHECKS_BY_OWNER</code> for the value of <code>Type</code> in the request, the value of <code>Limit</code> is the maximum number of health checks that you can create using the current account.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Value</i> The current value for the limit that is specified by <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_AccountLimit.html#Route53-Type-AccountLimit-Type">Type</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The limit that you requested. Valid values include the following: <ul> <li>  <b>MAX_HEALTH_CHECKS_BY_OWNER</b>: The maximum number of health checks that you can create using the current account. </li> <li>  <b>MAX_HOSTED_ZONES_BY_OWNER</b>: The maximum number of hosted zones that you can create using the current account. </li> <li>  <b>MAX_REUSABLE_DELEGATION_SETS_BY_OWNER</b>: The maximum number of reusable delegation sets that you can create using the current account. </li> <li>  <b>MAX_TRAFFIC_POLICIES_BY_OWNER</b>: The maximum number of traffic policies that you can create using the current account. </li> <li>  <b>MAX_TRAFFIC_POLICY_INSTANCES_BY_OWNER</b>: The maximum number of traffic policy instances that you can create using the current account. (Traffic policy instances are referred to as traffic flow policy records in the Amazon Route 53 console.) </li> </ul><br/>        """
        pass

    def get_change(self, Id: str) -> GetChangeResponse:
        r"""Returns the current status of a change batch request. The status is one of the following values: <ul> <li>  <code>PENDING</code> indicates that the changes in this request have not propagated to all Amazon Route 53 DNS servers. This is the initial status of all change batch requests. </li> <li>  <code>INSYNC</code> indicates that the changes have propagated to all Route 53 DNS servers.  </li> </ul>

        :param self:
        :param Id:  The ID of the change batch request. The value that you specify here is the value that <code>ChangeResourceRecordSets</code> returned in the <code>Id</code> element when you submitted the request.<br/>
        :return: ChangeInfo:  A complex type that contains information about the specified change batch.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Comment</i> A complex type that describes change information about changes made to your hosted zone. This element contains an ID that you use when performing a <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_GetChange.html">GetChange</a> action to get detailed information about the change.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubmittedAt</i> The date and time that the change request was submitted in <a href="https://en.wikipedia.org/wiki/ISO_8601">ISO 8601 format</a> and Coordinated Universal Time (UTC). For example, the value <code>2017-03-27T17:48:16.751Z</code> represents March 27, 2017 at 17:48:16.751 UTC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current state of the request. <code>PENDING</code> indicates that this request has not yet been applied to all Amazon Route 53 DNS servers.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID of the request.<br/>        """
        pass

    def get_checker_ip_ranges(self) -> GetCheckerIpRangesResponse:
        r"""Route 53 does not perform authorization for this API because it retrieves information that is already available to the public. <important>  <code>GetCheckerIpRanges</code> still works, but we recommend that you download ip-ranges.json, which includes IP address ranges for all AWS services. For more information, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/route-53-ip-addresses.html">IP Address Ranges of Amazon Route 53 Servers</a> in the <i>Amazon Route 53 Developer Guide</i>. </important>

        :param self:
        :param 
        :return: CheckerIpRanges:  A complex type that contains sorted list of IP ranges in CIDR format for Amazon Route 53 health checkers.<br/>        """
        pass

    def get_dnssec(self, HostedZoneId: str) -> GetDNSSECResponse:
        r"""Returns information about DNSSEC for a specific hosted zone, including the key-signing keys (KSKs) in the hosted zone.

        :param self:
        :param HostedZoneId:  A unique string used to identify a hosted zone.<br/>
        :return: KeySigningKeys:  The key-signing keys (KSKs) in your account.<br/>Status:  A string repesenting the status of DNSSEC.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusMessage</i> The status message provided for the following DNSSEC signing status: <code>INTERNAL_FAILURE</code>. The status message includes information about what the problem might be and steps that you can take to correct the issue.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServeSignature</i> A string that represents the current hosted zone signing status. Status can have one of the following values: <dl> <dt>SIGNING</dt> <dd> DNSSEC signing is enabled for the hosted zone. </dd> <dt>NOT_SIGNING</dt> <dd> DNSSEC signing is not enabled for the hosted zone. </dd> <dt>DELETING</dt> <dd> DNSSEC signing is in the process of being removed for the hosted zone. </dd> <dt>ACTION_NEEDED</dt> <dd> There is a problem with signing in the hosted zone that requires you to take action to resolve. For example, the customer managed customer master key (CMK) might have been deleted, or the permissions for the customer managed CMK might have been changed. </dd> <dt>INTERNAL_FAILURE</dt> <dd> There was an error during a request. Before you can continue to work with DNSSEC signing, including with key-signing keys (KSKs), you must correct the problem by enabling or disabling DNSSEC signing for the hosted zone. </dd> </dl><br/>        """
        pass

    def get_geo_location(self, ContinentCode: str=None, CountryCode: str=None, SubdivisionCode: str=None) -> GetGeoLocationResponse:
        r"""Gets information about whether a specified geographic location is supported for Amazon Route 53 geolocation resource record sets. Route 53 does not perform authorization for this API because it retrieves information that is already available to the public. Use the following syntax to determine whether a continent is supported for geolocation:  <code>GET /2013-04-01/geolocation?continentcode=<i>two-letter abbreviation for a continent</i> </code>  Use the following syntax to determine whether a country is supported for geolocation:  <code>GET /2013-04-01/geolocation?countrycode=<i>two-character country code</i> </code>  Use the following syntax to determine whether a subdivision of a country is supported for geolocation:  <code>GET /2013-04-01/geolocation?countrycode=<i>two-character country code</i>&amp;subdivisioncode=<i>subdivision code</i> </code> 

        :param self:
        :param SubdivisionCode:  The code for the subdivision, such as a particular state within the United States. For a list of US state abbreviations, see <a href="https://pe.usps.com/text/pub28/28apb.htm">Appendix B: Two–Letter State and Possession Abbreviations</a> on the United States Postal Service website. For a list of all supported subdivision codes, use the <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_ListGeoLocations.html">ListGeoLocations</a> API.<br/>CountryCode:  Amazon Route 53 uses the two-letter country codes that are specified in <a href="https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2">ISO standard 3166-1 alpha-2</a>.<br/>ContinentCode:  For geolocation resource record sets, a two-letter abbreviation that identifies a continent. Amazon Route 53 supports the following continent codes: <ul> <li>  <b>AF</b>: Africa </li> <li>  <b>AN</b>: Antarctica </li> <li>  <b>AS</b>: Asia </li> <li>  <b>EU</b>: Europe </li> <li>  <b>OC</b>: Oceania </li> <li>  <b>NA</b>: North America </li> <li>  <b>SA</b>: South America </li> </ul><br/>
        :return: GeoLocationDetails:  A complex type that contains the codes and full continent, country, and subdivision names for the specified geolocation code.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubdivisionName</i> The full name of the subdivision. Route 53 currently supports only states in the United States.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubdivisionCode</i> The code for the subdivision, such as a particular state within the United States. For a list of US state abbreviations, see <a href="https://pe.usps.com/text/pub28/28apb.htm">Appendix B: Two–Letter State and Possession Abbreviations</a> on the United States Postal Service website. For a list of all supported subdivision codes, use the <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_ListGeoLocations.html">ListGeoLocations</a> API.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CountryName</i> The name of the country.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CountryCode</i> The two-letter code for the country.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ContinentName</i> The full name of the continent.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ContinentCode</i> The two-letter code for the continent.<br/>        """
        pass

    def get_health_check(self, HealthCheckId: str) -> GetHealthCheckResponse:
        r"""Gets information about a specified health check.

        :param self:
        :param HealthCheckId:  The identifier that Amazon Route 53 assigned to the health check when you created it. When you add or update a resource record set, you use this value to specify which health check to use. The value can be up to 64 characters long.<br/>
        :return: HealthCheck:  A complex type that contains information about one health check that is associated with the current AWS account.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudWatchAlarmConfiguration</i> A complex type that contains information about the CloudWatch alarm that Amazon Route 53 is monitoring for this health check.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CloudWatchAlarmConfiguration</b>: A complex type that contains information about the CloudWatch alarm that Amazon Route 53 is monitoring for this health check.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HealthCheckVersion</i> The version of the health check. You can optionally pass this value in a call to <code>UpdateHealthCheck</code> to prevent overwriting another change to the health check.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HealthCheckConfig</i> A complex type that contains detailed information about one health check.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>HealthCheckConfig</b>: A complex type that contains detailed information about one health check.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LinkedService</i> If the health check was created by another service, the service that created the health check. When a health check is created by another service, you can't edit or delete it using Amazon Route 53. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>LinkedService</b>: If the health check was created by another service, the service that created the health check. When a health check is created by another service, you can't edit or delete it using Amazon Route 53. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CallerReference</i> A unique string that you specified when you created the health check.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The identifier that Amazon Route 53 assigned to the health check when you created it. When you add or update a resource record set, you use this value to specify which health check to use. The value can be up to 64 characters long. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> If the health check or hosted zone was created by another service, an optional description that can be provided by the other service. When a resource is created by another service, you can't edit or delete it using Amazon Route 53. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServicePrincipal</i> If the health check or hosted zone was created by another service, the service that created the resource. When a resource is created by another service, you can't edit or delete it using Amazon Route 53. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Regions</i> A complex type that contains one <code>Region</code> element for each region from which you want Amazon Route 53 health checkers to check the specified endpoint. If you don't specify any regions, Route 53 health checkers automatically performs checks from all of the regions that are listed under <b>Valid Values</b>. If you update a health check to remove a region that has been performing health checks, Route 53 will briefly continue to perform checks from that region to ensure that some health checkers are always checking the endpoint (for example, if you replace three regions with four different regions). <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableSNI</i> Specify whether you want Amazon Route 53 to send the value of <code>FullyQualifiedDomainName</code> to the endpoint in the <code>client_hello</code> message during TLS negotiation. This allows the endpoint to respond to <code>HTTPS</code> health check requests with the applicable SSL/TLS certificate. Some endpoints require that <code>HTTPS</code> requests include the host name in the <code>client_hello</code> message. If you don't enable SNI, the status of the health check will be <code>SSL alert handshake_failure</code>. A health check can also have that status for other reasons. If SNI is enabled and you're still getting the error, check the SSL/TLS configuration on your endpoint and confirm that your certificate is valid. The SSL/TLS certificate on your endpoint includes a domain name in the <code>Common Name</code> field and possibly several more in the <code>Subject Alternative Names</code> field. One of the domain names in the certificate should match the value that you specify for <code>FullyQualifiedDomainName</code>. If the endpoint responds to the <code>client_hello</code> message with a certificate that does not include the domain name that you specified in <code>FullyQualifiedDomainName</code>, a health checker will retry the handshake. In the second attempt, the health checker will omit <code>FullyQualifiedDomainName</code> from the <code>client_hello</code> message.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ChildHealthChecks</i> (CALCULATED Health Checks Only) A complex type that contains one <code>ChildHealthCheck</code> element for each health check that you want to associate with a <code>CALCULATED</code> health check.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HealthThreshold</i> The number of child health checks that are associated with a <code>CALCULATED</code> health check that Amazon Route 53 must consider healthy for the <code>CALCULATED</code> health check to be considered healthy. To specify the child health checks that you want to associate with a <code>CALCULATED</code> health check, use the <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_UpdateHealthCheck.html#Route53-UpdateHealthCheck-request-ChildHealthChecks">ChildHealthChecks</a> element. Note the following: <ul> <li> If you specify a number greater than the number of child health checks, Route 53 always considers this health check to be unhealthy. </li> <li> If you specify <code>0</code>, Route 53 always considers this health check to be healthy. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Disabled</i> Stops Route 53 from performing health checks. When you disable a health check, here's what happens: <ul> <li>  <b>Health checks that check the health of endpoints:</b> Route 53 stops submitting requests to your application, server, or other resource. </li> <li>  <b>Calculated health checks:</b> Route 53 stops aggregating the status of the referenced health checks. </li> <li>  <b>Health checks that monitor CloudWatch alarms:</b> Route 53 stops monitoring the corresponding CloudWatch metrics. </li> </ul> After you disable a health check, Route 53 considers the status of the health check to always be healthy. If you configured DNS failover, Route 53 continues to route traffic to the corresponding resources. If you want to stop routing traffic to a resource, change the value of <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_UpdateHealthCheck.html#Route53-UpdateHealthCheck-request-Inverted">Inverted</a>.  Charges for a health check still apply when the health check is disabled. For more information, see <a href="http://aws.amazon.com/route53/pricing/">Amazon Route 53 Pricing</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Inverted</i> Specify whether you want Amazon Route 53 to invert the status of a health check, for example, to consider a health check unhealthy when it otherwise would be considered healthy.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MeasureLatency</i> Specify whether you want Amazon Route 53 to measure the latency between health checkers in multiple AWS regions and your endpoint, and to display CloudWatch latency graphs on the <b>Health Checks</b> page in the Route 53 console. <important> You can't change the value of <code>MeasureLatency</code> after you create a health check. </important><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FailureThreshold</i> The number of consecutive health checks that an endpoint must pass or fail for Amazon Route 53 to change the current status of the endpoint from unhealthy to healthy or vice versa. For more information, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-determining-health-of-endpoints.html">How Amazon Route 53 Determines Whether an Endpoint Is Healthy</a> in the <i>Amazon Route 53 Developer Guide</i>. If you don't specify a value for <code>FailureThreshold</code>, the default value is three health checks.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RequestInterval</i> The number of seconds between the time that Amazon Route 53 gets a response from your endpoint and the time that it sends the next health check request. Each Route 53 health checker makes requests at this interval. <important> You can't change the value of <code>RequestInterval</code> after you create a health check. </important> If you don't specify a value for <code>RequestInterval</code>, the default value is <code>30</code> seconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SearchString</i> If the value of Type is <code>HTTP_STR_MATCH</code> or <code>HTTPS_STR_MATCH</code>, the string that you want Amazon Route 53 to search for in the response body from the specified resource. If the string appears in the response body, Route 53 considers the resource healthy. Route 53 considers case when searching for <code>SearchString</code> in the response body. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FullyQualifiedDomainName</i> Amazon Route 53 behavior depends on whether you specify a value for <code>IPAddress</code>.  <b>If you specify a value for</b> <code>IPAddress</code>: Amazon Route 53 sends health check requests to the specified IPv4 or IPv6 address and passes the value of <code>FullyQualifiedDomainName</code> in the <code>Host</code> header for all health checks except TCP health checks. This is typically the fully qualified DNS name of the endpoint on which you want Route 53 to perform health checks. When Route 53 checks the health of an endpoint, here is how it constructs the <code>Host</code> header: <ul> <li> If you specify a value of <code>80</code> for <code>Port</code> and <code>HTTP</code> or <code>HTTP_STR_MATCH</code> for <code>Type</code>, Route 53 passes the value of <code>FullyQualifiedDomainName</code> to the endpoint in the Host header.  </li> <li> If you specify a value of <code>443</code> for <code>Port</code> and <code>HTTPS</code> or <code>HTTPS_STR_MATCH</code> for <code>Type</code>, Route 53 passes the value of <code>FullyQualifiedDomainName</code> to the endpoint in the <code>Host</code> header. </li> <li> If you specify another value for <code>Port</code> and any value except <code>TCP</code> for <code>Type</code>, Route 53 passes <code>FullyQualifiedDomainName:Port</code> to the endpoint in the <code>Host</code> header. </li> </ul> If you don't specify a value for <code>FullyQualifiedDomainName</code>, Route 53 substitutes the value of <code>IPAddress</code> in the <code>Host</code> header in each of the preceding cases.  <b>If you don't specify a value for <code>IPAddress</code> </b>: Route 53 sends a DNS request to the domain that you specify for <code>FullyQualifiedDomainName</code> at the interval that you specify for <code>RequestInterval</code>. Using an IPv4 address that DNS returns, Route 53 then checks the health of the endpoint. <note> If you don't specify a value for <code>IPAddress</code>, Route 53 uses only IPv4 to send health checks to the endpoint. If there's no resource record set with a type of A for the name that you specify for <code>FullyQualifiedDomainName</code>, the health check fails with a "DNS resolution failed" error. </note> If you want to check the health of weighted, latency, or failover resource record sets and you choose to specify the endpoint only by <code>FullyQualifiedDomainName</code>, we recommend that you create a separate health check for each endpoint. For example, create a health check for each HTTP server that is serving content for www.example.com. For the value of <code>FullyQualifiedDomainName</code>, specify the domain name of the server (such as us-east-2-www.example.com), not the name of the resource record sets (www.example.com). <important> In this configuration, if you create a health check for which the value of <code>FullyQualifiedDomainName</code> matches the name of the resource record sets and you then associate the health check with those resource record sets, health check results will be unpredictable. </important> In addition, if the value that you specify for <code>Type</code> is <code>HTTP</code>, <code>HTTPS</code>, <code>HTTP_STR_MATCH</code>, or <code>HTTPS_STR_MATCH</code>, Route 53 passes the value of <code>FullyQualifiedDomainName</code> in the <code>Host</code> header, as it does when you specify a value for <code>IPAddress</code>. If the value of <code>Type</code> is <code>TCP</code>, Route 53 doesn't pass a <code>Host</code> header.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourcePath</i> The path, if any, that you want Amazon Route 53 to request when performing health checks. The path can be any value for which your endpoint will return an HTTP status code of 2xx or 3xx when the endpoint is healthy, for example, the file /docs/route53-health-check.html. You can also include query string parameters, for example, <code>/welcome.html?language=jp&amp;login=y</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of health check that you want to create, which indicates how Amazon Route 53 determines whether an endpoint is healthy. <important> You can't change the value of <code>Type</code> after you create a health check. </important> You can create the following types of health checks: <ul> <li>  <b>HTTP</b>: Route 53 tries to establish a TCP connection. If successful, Route 53 submits an HTTP request and waits for an HTTP status code of 200 or greater and less than 400. </li> <li>  <b>HTTPS</b>: Route 53 tries to establish a TCP connection. If successful, Route 53 submits an HTTPS request and waits for an HTTP status code of 200 or greater and less than 400. <important> If you specify <code>HTTPS</code> for the value of <code>Type</code>, the endpoint must support TLS v1.0 or later. </important> </li> <li>  <b>HTTP_STR_MATCH</b>: Route 53 tries to establish a TCP connection. If successful, Route 53 submits an HTTP request and searches the first 5,120 bytes of the response body for the string that you specify in <code>SearchString</code>. </li> <li>  <b>HTTPS_STR_MATCH</b>: Route 53 tries to establish a TCP connection. If successful, Route 53 submits an <code>HTTPS</code> request and searches the first 5,120 bytes of the response body for the string that you specify in <code>SearchString</code>. </li> <li>  <b>TCP</b>: Route 53 tries to establish a TCP connection. </li> <li>  <b>CLOUDWATCH_METRIC</b>: The health check is associated with a CloudWatch alarm. If the state of the alarm is <code>OK</code>, the health check is considered healthy. If the state is <code>ALARM</code>, the health check is considered unhealthy. If CloudWatch doesn't have sufficient data to determine whether the state is <code>OK</code> or <code>ALARM</code>, the health check status depends on the setting for <code>InsufficientDataHealthStatus</code>: <code>Healthy</code>, <code>Unhealthy</code>, or <code>LastKnownStatus</code>.  </li> <li>  <b>CALCULATED</b>: For health checks that monitor the status of other health checks, Route 53 adds up the number of health checks that Route 53 health checkers consider to be healthy and compares that number with the value of <code>HealthThreshold</code>.  </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-determining-health-of-endpoints.html">How Route 53 Determines Whether an Endpoint Is Healthy</a> in the <i>Amazon Route 53 Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> The port on the endpoint that you want Amazon Route 53 to perform health checks on. <note> Don't specify a value for <code>Port</code> when you specify a value for <code>Type</code> of <code>CLOUDWATCH_METRIC</code> or <code>CALCULATED</code>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IPAddress</i> The IPv4 or IPv6 IP address of the endpoint that you want Amazon Route 53 to perform health checks on. If you don't specify a value for <code>IPAddress</code>, Route 53 sends a DNS request to resolve the domain name that you specify in <code>FullyQualifiedDomainName</code> at the interval that you specify in <code>RequestInterval</code>. Using an IP address returned by DNS, Route 53 then checks the health of the endpoint. Use one of the following formats for the value of <code>IPAddress</code>:  <ul> <li>  <b>IPv4 address</b>: four values between 0 and 255, separated by periods (.), for example, <code>192.0.2.44</code>. </li> <li>  <b>IPv6 address</b>: eight groups of four hexadecimal values, separated by colons (:), for example, <code>2001:0db8:85a3:0000:0000:abcd:0001:2345</code>. You can also shorten IPv6 addresses as described in RFC 5952, for example, <code>2001:db8:85a3::abcd:1:2345</code>. </li> </ul> If the endpoint is an EC2 instance, we recommend that you create an Elastic IP address, associate it with your EC2 instance, and specify the Elastic IP address for <code>IPAddress</code>. This ensures that the IP address of your instance will never change. For more information, see <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_UpdateHealthCheck.html#Route53-UpdateHealthCheck-request-FullyQualifiedDomainName">FullyQualifiedDomainName</a>.  Constraints: Route 53 can't check the health of endpoints for which the IP address is in local, private, non-routable, or multicast ranges. For more information about IP addresses for which you can't create health checks, see the following documents: <ul> <li>  <a href="https://tools.ietf.org/html/rfc5735">RFC 5735, Special Use IPv4 Addresses</a>  </li> <li>  <a href="https://tools.ietf.org/html/rfc6598">RFC 6598, IANA-Reserved IPv4 Prefix for Shared Address Space</a>  </li> <li>  <a href="https://tools.ietf.org/html/rfc5156">RFC 5156, Special-Use IPv6 Addresses</a>  </li> </ul> When the value of <code>Type</code> is <code>CALCULATED</code> or <code>CLOUDWATCH_METRIC</code>, omit <code>IPAddress</code>.<br/>A complex type that identifies the CloudWatch alarm that you want Amazon Route 53 health checkers to use to determine whether the specified health check is healthy.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AlarmIdentifier</b>: A complex type that identifies the CloudWatch alarm that you want Amazon Route 53 health checkers to use to determine whether the specified health check is healthy.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Dimensions</i> For the metric that the CloudWatch alarm is associated with, a complex type that contains information about the dimensions for the metric. For information, see <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/CW_Support_For_AWS.html">Amazon CloudWatch Namespaces, Dimensions, and Metrics Reference</a> in the <i>Amazon CloudWatch User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Statistic</i> For the metric that the CloudWatch alarm is associated with, the statistic that is applied to the metric.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Namespace</i> The namespace of the metric that the alarm is associated with. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/CW_Support_For_AWS.html">Amazon CloudWatch Namespaces, Dimensions, and Metrics Reference</a> in the <i>Amazon CloudWatch User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MetricName</i> The name of the CloudWatch metric that the alarm is associated with.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Period</i> For the metric that the CloudWatch alarm is associated with, the duration of one evaluation period in seconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ComparisonOperator</i> For the metric that the CloudWatch alarm is associated with, the arithmetic operation that is used for the comparison.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Threshold</i> For the metric that the CloudWatch alarm is associated with, the value the metric is compared with.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EvaluationPeriods</i> For the metric that the CloudWatch alarm is associated with, the number of periods that the metric is compared to the threshold.<br/>        """
        pass

    def get_health_check_count(self) -> GetHealthCheckCountResponse:
        r"""Retrieves the number of health checks that are associated with the current AWS account.

        :param self:
        :param 
        :return: HealthCheckCount:  The number of health checks associated with the current AWS account.<br/>        """
        pass

    def get_health_check_last_failure_reason(self, HealthCheckId: str) -> GetHealthCheckLastFailureReasonResponse:
        r"""Gets the reason that a specified health check failed most recently.

        :param self:
        :param HealthCheckId:  The ID for the health check for which you want the last failure reason. When you created the health check, <code>CreateHealthCheck</code> returned the ID in the response, in the <code>HealthCheckId</code> element. <note> If you want to get the last failure reason for a calculated health check, you must use the Amazon Route 53 console or the CloudWatch console. You can't use <code>GetHealthCheckLastFailureReason</code> for a calculated health check. </note><br/>
        :return: HealthCheckObservations:  A list that contains one <code>Observation</code> element for each Amazon Route 53 health checker that is reporting a last failure reason. <br/>        """
        pass

    def get_health_check_status(self, HealthCheckId: str) -> GetHealthCheckStatusResponse:
        r"""Gets status of a specified health check. 

        :param self:
        :param HealthCheckId:  The ID for the health check that you want the current status for. When you created the health check, <code>CreateHealthCheck</code> returned the ID in the response, in the <code>HealthCheckId</code> element. <note> If you want to check the status of a calculated health check, you must use the Amazon Route 53 console or the CloudWatch console. You can't use <code>GetHealthCheckStatus</code> to get the status of a calculated health check. </note><br/>
        :return: HealthCheckObservations:  A list that contains one <code>HealthCheckObservation</code> element for each Amazon Route 53 health checker that is reporting a status about the health check endpoint.<br/>        """
        pass

    def get_hosted_zone(self, Id: str) -> GetHostedZoneResponse:
        r"""Gets information about a specified hosted zone including the four name servers assigned to the hosted zone.

        :param self:
        :param Id:  The ID of the hosted zone that you want to get information about.<br/>
        :return: VPCs:  A complex type that contains information about the VPCs that are associated with the specified hosted zone.<br/>DelegationSet:  A complex type that lists the Amazon Route 53 name servers for the specified hosted zone.:<br/>HostedZone:  A complex type that contains general information about the specified hosted zone.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LinkedService</i> If the hosted zone was created by another service, the service that created the hosted zone. When a hosted zone is created by another service, you can't edit or delete it using Route 53. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>LinkedService</b>: If the hosted zone was created by another service, the service that created the hosted zone. When a hosted zone is created by another service, you can't edit or delete it using Route 53. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceRecordSetCount</i> The number of resource record sets in the hosted zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Config</i> A complex type that includes the <code>Comment</code> and <code>PrivateZone</code> elements. If you omitted the <code>HostedZoneConfig</code> and <code>Comment</code> elements from the request, the <code>Config</code> and <code>Comment</code> elements don't appear in the response.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Config</b>: A complex type that includes the <code>Comment</code> and <code>PrivateZone</code> elements. If you omitted the <code>HostedZoneConfig</code> and <code>Comment</code> elements from the request, the <code>Config</code> and <code>Comment</code> elements don't appear in the response.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CallerReference</i> The value that you specified for <code>CallerReference</code> when you created the hosted zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the domain. For public hosted zones, this is the name that you have registered with your DNS registrar. For information about how to specify characters other than <code>a-z</code>, <code>0-9</code>, and <code>-</code> (hyphen) and how to specify internationalized domain names, see <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_CreateHostedZone.html">CreateHostedZone</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID that Amazon Route 53 assigned to the hosted zone when you created it.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PrivateZone</i> A value that indicates whether this is a private hosted zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Comment</i> Any comments that you want to include about the hosted zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> If the health check or hosted zone was created by another service, an optional description that can be provided by the other service. When a resource is created by another service, you can't edit or delete it using Amazon Route 53. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServicePrincipal</i> If the health check or hosted zone was created by another service, the service that created the resource. When a resource is created by another service, you can't edit or delete it using Amazon Route 53. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NameServers</i> A complex type that contains a list of the authoritative name servers for a hosted zone or for a reusable delegation set.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CallerReference</i> The value that you specified for <code>CallerReference</code> when you created the reusable delegation set.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID that Amazon Route 53 assigns to a reusable delegation set.<br/>        """
        pass

    def get_hosted_zone_count(self) -> GetHostedZoneCountResponse:
        r"""Retrieves the number of hosted zones that are associated with the current AWS account.

        :param self:
        :param 
        :return: HostedZoneCount:  The total number of public and private hosted zones that are associated with the current AWS account.<br/>        """
        pass

    def get_hosted_zone_limit(self, HostedZoneId: str, Type: str) -> GetHostedZoneLimitResponse:
        r"""Gets the specified limit for a specified hosted zone, for example, the maximum number of records that you can create in the hosted zone.  For the default limit, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DNSLimitations.html">Limits</a> in the <i>Amazon Route 53 Developer Guide</i>. To request a higher limit, <a href="https://console.aws.amazon.com/support/home#/case/create?issueType=service-limit-increase&amp;limitType=service-code-route53">open a case</a>.

        :param self:
        :param HostedZoneId:  The ID of the hosted zone that you want to get a limit for.<br/>Type:  The limit that you want to get. Valid values include the following: <ul> <li>  <b>MAX_RRSETS_BY_ZONE</b>: The maximum number of records that you can create in the specified hosted zone. </li> <li>  <b>MAX_VPCS_ASSOCIATED_BY_ZONE</b>: The maximum number of Amazon VPCs that you can associate with the specified private hosted zone. </li> </ul><br/>
        :return: Count:  The current number of entities that you have created of the specified type. For example, if you specified <code>MAX_RRSETS_BY_ZONE</code> for the value of <code>Type</code> in the request, the value of <code>Count</code> is the current number of records that you have created in the specified hosted zone.<br/>Limit:  The current setting for the specified limit. For example, if you specified <code>MAX_RRSETS_BY_ZONE</code> for the value of <code>Type</code> in the request, the value of <code>Limit</code> is the maximum number of records that you can create in the specified hosted zone.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Value</i> The current value for the limit that is specified by <code>Type</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The limit that you requested. Valid values include the following: <ul> <li>  <b>MAX_RRSETS_BY_ZONE</b>: The maximum number of records that you can create in the specified hosted zone. </li> <li>  <b>MAX_VPCS_ASSOCIATED_BY_ZONE</b>: The maximum number of Amazon VPCs that you can associate with the specified private hosted zone. </li> </ul><br/>        """
        pass

    def get_query_logging_config(self, Id: str) -> GetQueryLoggingConfigResponse:
        r"""Gets information about a specified configuration for DNS query logging. For more information about DNS query logs, see <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_CreateQueryLoggingConfig.html">CreateQueryLoggingConfig</a> and <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/query-logs.html">Logging DNS Queries</a>.

        :param self:
        :param Id:  The ID of the configuration for DNS query logging that you want to get information about.<br/>
        :return: QueryLoggingConfig:  A complex type that contains information about the query logging configuration that you specified in a <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_GetQueryLoggingConfig.html">GetQueryLoggingConfig</a> request.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudWatchLogsLogGroupArn</i> The Amazon Resource Name (ARN) of the CloudWatch Logs log group that Amazon Route 53 is publishing logs to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HostedZoneId</i> The ID of the hosted zone that CloudWatch Logs is logging queries for. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID for a configuration for DNS query logging.<br/>        """
        pass

    def get_reusable_delegation_set(self, Id: str) -> GetReusableDelegationSetResponse:
        r"""Retrieves information about a specified reusable delegation set, including the four name servers that are assigned to the delegation set.

        :param self:
        :param Id:  The ID of the reusable delegation set that you want to get a list of name servers for.<br/>
        :return: DelegationSet:  A complex type that contains information about the reusable delegation set.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NameServers</i> A complex type that contains a list of the authoritative name servers for a hosted zone or for a reusable delegation set.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CallerReference</i> The value that you specified for <code>CallerReference</code> when you created the reusable delegation set.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID that Amazon Route 53 assigns to a reusable delegation set.<br/>        """
        pass

    def get_reusable_delegation_set_limit(self, DelegationSetId: str, Type: str) -> GetReusableDelegationSetLimitResponse:
        r"""Gets the maximum number of hosted zones that you can associate with the specified reusable delegation set. For the default limit, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DNSLimitations.html">Limits</a> in the <i>Amazon Route 53 Developer Guide</i>. To request a higher limit, <a href="https://console.aws.amazon.com/support/home#/case/create?issueType=service-limit-increase&amp;limitType=service-code-route53">open a case</a>.

        :param self:
        :param DelegationSetId:  The ID of the delegation set that you want to get the limit for.<br/>Type:  Specify <code>MAX_ZONES_BY_REUSABLE_DELEGATION_SET</code> to get the maximum number of hosted zones that you can associate with the specified reusable delegation set.<br/>
        :return: Count:  The current number of hosted zones that you can associate with the specified reusable delegation set.<br/>Limit:  The current setting for the limit on hosted zones that you can associate with the specified reusable delegation set.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Value</i> The current value for the <code>MAX_ZONES_BY_REUSABLE_DELEGATION_SET</code> limit.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The limit that you requested: <code>MAX_ZONES_BY_REUSABLE_DELEGATION_SET</code>, the maximum number of hosted zones that you can associate with the specified reusable delegation set.<br/>        """
        pass

    def get_traffic_policy(self, Version: int, Id: str) -> GetTrafficPolicyResponse:
        r"""Gets information about a specific traffic policy version. For information about how of deleting a traffic policy affects the response from <code>GetTrafficPolicy</code>, see <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_DeleteTrafficPolicy.html">DeleteTrafficPolicy</a>. 

        :param self:
        :param Version:  The version number of the traffic policy that you want to get information about.<br/>Id:  The ID of the traffic policy that you want to get information about.<br/>
        :return: TrafficPolicy:  A complex type that contains settings for the specified traffic policy.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Comment</i> The comment that you specify in the <code>CreateTrafficPolicy</code> request, if any.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Document</i> The definition of a traffic policy in JSON format. You specify the JSON document to use for a new traffic policy in the <code>CreateTrafficPolicy</code> request. For more information about the JSON format, see <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/api-policies-traffic-policy-document-format.html">Traffic Policy Document Format</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The DNS type of the resource record sets that Amazon Route 53 creates when you use a traffic policy to create a traffic policy instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name that you specified when you created the traffic policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The version number that Amazon Route 53 assigns to a traffic policy. For a new traffic policy, the value of <code>Version</code> is always 1.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID that Amazon Route 53 assigned to a traffic policy when you created it.<br/>        """
        pass

    def get_traffic_policy_instance(self, Id: str) -> GetTrafficPolicyInstanceResponse:
        r"""Gets information about a specified traffic policy instance. <note> After you submit a <code>CreateTrafficPolicyInstance</code> or an <code>UpdateTrafficPolicyInstance</code> request, there's a brief delay while Amazon Route 53 creates the resource record sets that are specified in the traffic policy definition. For more information, see the <code>State</code> response element. </note> <note> In the Route 53 console, traffic policy instances are known as policy records. </note>

        :param self:
        :param Id:  The ID of the traffic policy instance that you want to get information about.<br/>
        :return: TrafficPolicyInstance:  A complex type that contains settings for the traffic policy instance.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TrafficPolicyType</i> The DNS type that Amazon Route 53 assigned to all of the resource record sets that it created for this traffic policy instance. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TrafficPolicyVersion</i> The version of the traffic policy that Amazon Route 53 used to create resource record sets in the specified hosted zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TrafficPolicyId</i> The ID of the traffic policy that Amazon Route 53 used to create resource record sets in the specified hosted zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> If <code>State</code> is <code>Failed</code>, an explanation of the reason for the failure. If <code>State</code> is another value, <code>Message</code> is empty.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The value of <code>State</code> is one of the following values: <dl> <dt>Applied</dt> <dd> Amazon Route 53 has finished creating resource record sets, and changes have propagated to all Route 53 edge locations. </dd> <dt>Creating</dt> <dd> Route 53 is creating the resource record sets. Use <code>GetTrafficPolicyInstance</code> to confirm that the <code>CreateTrafficPolicyInstance</code> request completed successfully. </dd> <dt>Failed</dt> <dd> Route 53 wasn't able to create or update the resource record sets. When the value of <code>State</code> is <code>Failed</code>, see <code>Message</code> for an explanation of what caused the request to fail. </dd> </dl><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TTL</i> The TTL that Amazon Route 53 assigned to all of the resource record sets that it created in the specified hosted zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The DNS name, such as www.example.com, for which Amazon Route 53 responds to queries by using the resource record sets that are associated with this traffic policy instance. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HostedZoneId</i> The ID of the hosted zone that Amazon Route 53 created resource record sets in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID that Amazon Route 53 assigned to the new traffic policy instance.<br/>        """
        pass

    def get_traffic_policy_instance_count(self) -> GetTrafficPolicyInstanceCountResponse:
        r"""Gets the number of traffic policy instances that are associated with the current AWS account.

        :param self:
        :param 
        :return: TrafficPolicyInstanceCount:  The number of traffic policy instances that are associated with the current AWS account.<br/>        """
        pass

    def list_geo_locations(self, StartContinentCode: str=None, StartCountryCode: str=None, StartSubdivisionCode: str=None, MaxItems: str=None) -> ListGeoLocationsResponse:
        r"""Retrieves a list of supported geographic locations. Countries are listed first, and continents are listed last. If Amazon Route 53 supports subdivisions for a country (for example, states or provinces), the subdivisions for that country are listed in alphabetical order immediately after the corresponding country. Route 53 does not perform authorization for this API because it retrieves information that is already available to the public. For a list of supported geolocation codes, see the <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_GeoLocation.html">GeoLocation</a> data type.

        :param self:
        :param MaxItems:  (Optional) The maximum number of geolocations to be included in the response body for this request. If more than <code>maxitems</code> geolocations remain to be listed, then the value of the <code>IsTruncated</code> element in the response is <code>true</code>.<br/>StartSubdivisionCode:  The code for the state of the United States with which you want to start listing locations that Amazon Route 53 supports for geolocation. If Route 53 has already returned a page or more of results, if <code>IsTruncated</code> is <code>true</code>, and if <code>NextSubdivisionCode</code> from the previous response has a value, enter that value in <code>startsubdivisioncode</code> to return the next page of results. To list subdivisions (U.S. states), you must include both <code>startcountrycode</code> and <code>startsubdivisioncode</code>.<br/>StartCountryCode:  The code for the country with which you want to start listing locations that Amazon Route 53 supports for geolocation. If Route 53 has already returned a page or more of results, if <code>IsTruncated</code> is <code>true</code>, and if <code>NextCountryCode</code> from the previous response has a value, enter that value in <code>startcountrycode</code> to return the next page of results.<br/>StartContinentCode:  The code for the continent with which you want to start listing locations that Amazon Route 53 supports for geolocation. If Route 53 has already returned a page or more of results, if <code>IsTruncated</code> is true, and if <code>NextContinentCode</code> from the previous response has a value, enter that value in <code>startcontinentcode</code> to return the next page of results. Include <code>startcontinentcode</code> only if you want to list continents. Don't include <code>startcontinentcode</code> when you're listing countries or countries with their subdivisions.<br/>
        :return: MaxItems:  The value that you specified for <code>MaxItems</code> in the request.<br/>NextSubdivisionCode:  If <code>IsTruncated</code> is <code>true</code>, you can make a follow-up request to display more locations. Enter the value of <code>NextSubdivisionCode</code> in the <code>startsubdivisioncode</code> parameter in another <code>ListGeoLocations</code> request.<br/>NextCountryCode:  If <code>IsTruncated</code> is <code>true</code>, you can make a follow-up request to display more locations. Enter the value of <code>NextCountryCode</code> in the <code>startcountrycode</code> parameter in another <code>ListGeoLocations</code> request.<br/>NextContinentCode:  If <code>IsTruncated</code> is <code>true</code>, you can make a follow-up request to display more locations. Enter the value of <code>NextContinentCode</code> in the <code>startcontinentcode</code> parameter in another <code>ListGeoLocations</code> request.<br/>IsTruncated:  A value that indicates whether more locations remain to be listed after the last location in this response. If so, the value of <code>IsTruncated</code> is <code>true</code>. To get more values, submit another request and include the values of <code>NextContinentCode</code>, <code>NextCountryCode</code>, and <code>NextSubdivisionCode</code> in the <code>startcontinentcode</code>, <code>startcountrycode</code>, and <code>startsubdivisioncode</code>, as applicable.<br/>GeoLocationDetailsList:  A complex type that contains one <code>GeoLocationDetails</code> element for each location that Amazon Route 53 supports for geolocation.<br/>        """
        pass

    def list_health_checks(self, Marker: str=None, MaxItems: str=None) -> ListHealthChecksResponse:
        r"""Retrieve a list of the health checks that are associated with the current AWS account. 

        :param self:
        :param MaxItems:  The maximum number of health checks that you want <code>ListHealthChecks</code> to return in response to the current request. Amazon Route 53 returns a maximum of 100 items. If you set <code>MaxItems</code> to a value greater than 100, Route 53 returns only the first 100 health checks. <br/>Marker:  If the value of <code>IsTruncated</code> in the previous response was <code>true</code>, you have more health checks. To get another group, submit another <code>ListHealthChecks</code> request.  For the value of <code>marker</code>, specify the value of <code>NextMarker</code> from the previous response, which is the ID of the first health check that Amazon Route 53 will return if you submit another request. If the value of <code>IsTruncated</code> in the previous response was <code>false</code>, there are no more health checks to get.<br/>
        :return: MaxItems:  The value that you specified for the <code>maxitems</code> parameter in the call to <code>ListHealthChecks</code> that produced the current response.<br/>NextMarker:  If <code>IsTruncated</code> is <code>true</code>, the value of <code>NextMarker</code> identifies the first health check that Amazon Route 53 returns if you submit another <code>ListHealthChecks</code> request and specify the value of <code>NextMarker</code> in the <code>marker</code> parameter.<br/>IsTruncated:  A flag that indicates whether there are more health checks to be listed. If the response was truncated, you can get the next group of health checks by submitting another <code>ListHealthChecks</code> request and specifying the value of <code>NextMarker</code> in the <code>marker</code> parameter.<br/>Marker:  For the second and subsequent calls to <code>ListHealthChecks</code>, <code>Marker</code> is the value that you specified for the <code>marker</code> parameter in the previous request.<br/>HealthChecks:  A complex type that contains one <code>HealthCheck</code> element for each health check that is associated with the current AWS account.<br/>        """
        pass

    def list_hosted_zones(self, Marker: str=None, MaxItems: str=None, DelegationSetId: str=None) -> ListHostedZonesResponse:
        r"""Retrieves a list of the public and private hosted zones that are associated with the current AWS account. The response includes a <code>HostedZones</code> child element for each hosted zone. Amazon Route 53 returns a maximum of 100 items in each response. If you have a lot of hosted zones, you can use the <code>maxitems</code> parameter to list them in groups of up to 100.

        :param self:
        :param DelegationSetId:  If you're using reusable delegation sets and you want to list all of the hosted zones that are associated with a reusable delegation set, specify the ID of that reusable delegation set. <br/>MaxItems:  (Optional) The maximum number of hosted zones that you want Amazon Route 53 to return. If you have more than <code>maxitems</code> hosted zones, the value of <code>IsTruncated</code> in the response is <code>true</code>, and the value of <code>NextMarker</code> is the hosted zone ID of the first hosted zone that Route 53 will return if you submit another request.<br/>Marker:  If the value of <code>IsTruncated</code> in the previous response was <code>true</code>, you have more hosted zones. To get more hosted zones, submit another <code>ListHostedZones</code> request.  For the value of <code>marker</code>, specify the value of <code>NextMarker</code> from the previous response, which is the ID of the first hosted zone that Amazon Route 53 will return if you submit another request. If the value of <code>IsTruncated</code> in the previous response was <code>false</code>, there are no more hosted zones to get.<br/>
        :return: MaxItems:  The value that you specified for the <code>maxitems</code> parameter in the call to <code>ListHostedZones</code> that produced the current response.<br/>NextMarker:  If <code>IsTruncated</code> is <code>true</code>, the value of <code>NextMarker</code> identifies the first hosted zone in the next group of hosted zones. Submit another <code>ListHostedZones</code> request, and specify the value of <code>NextMarker</code> from the response in the <code>marker</code> parameter. This element is present only if <code>IsTruncated</code> is <code>true</code>.<br/>IsTruncated:  A flag indicating whether there are more hosted zones to be listed. If the response was truncated, you can get more hosted zones by submitting another <code>ListHostedZones</code> request and specifying the value of <code>NextMarker</code> in the <code>marker</code> parameter.<br/>Marker:  For the second and subsequent calls to <code>ListHostedZones</code>, <code>Marker</code> is the value that you specified for the <code>marker</code> parameter in the request that produced the current response.<br/>HostedZones:  A complex type that contains general information about the hosted zone.<br/>        """
        pass

    def list_hosted_zones_by_name(self, DNSName: str=None, HostedZoneId: str=None, MaxItems: str=None) -> ListHostedZonesByNameResponse:
        r"""Retrieves a list of your hosted zones in lexicographic order. The response includes a <code>HostedZones</code> child element for each hosted zone created by the current AWS account.   <code>ListHostedZonesByName</code> sorts hosted zones by name with the labels reversed. For example:  <code>com.example.www.</code>  Note the trailing dot, which can change the sort order in some circumstances. If the domain name includes escape characters or Punycode, <code>ListHostedZonesByName</code> alphabetizes the domain name using the escaped or Punycoded value, which is the format that Amazon Route 53 saves in its database. For example, to create a hosted zone for exämple.com, you specify ex\344mple.com for the domain name. <code>ListHostedZonesByName</code> alphabetizes it as:  <code>com.ex\344mple.</code>  The labels are reversed and alphabetized using the escaped value. For more information about valid domain name formats, including internationalized domain names, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DomainNameFormat.html">DNS Domain Name Format</a> in the <i>Amazon Route 53 Developer Guide</i>. Route 53 returns up to 100 items in each response. If you have a lot of hosted zones, use the <code>MaxItems</code> parameter to list them in groups of up to 100. The response includes values that help navigate from one group of <code>MaxItems</code> hosted zones to the next: <ul> <li> The <code>DNSName</code> and <code>HostedZoneId</code> elements in the response contain the values, if any, specified for the <code>dnsname</code> and <code>hostedzoneid</code> parameters in the request that produced the current response. </li> <li> The <code>MaxItems</code> element in the response contains the value, if any, that you specified for the <code>maxitems</code> parameter in the request that produced the current response. </li> <li> If the value of <code>IsTruncated</code> in the response is true, there are more hosted zones associated with the current AWS account.  If <code>IsTruncated</code> is false, this response includes the last hosted zone that is associated with the current account. The <code>NextDNSName</code> element and <code>NextHostedZoneId</code> elements are omitted from the response. </li> <li> The <code>NextDNSName</code> and <code>NextHostedZoneId</code> elements in the response contain the domain name and the hosted zone ID of the next hosted zone that is associated with the current AWS account. If you want to list more hosted zones, make another call to <code>ListHostedZonesByName</code>, and specify the value of <code>NextDNSName</code> and <code>NextHostedZoneId</code> in the <code>dnsname</code> and <code>hostedzoneid</code> parameters, respectively. </li> </ul>

        :param self:
        :param MaxItems:  The maximum number of hosted zones to be included in the response body for this request. If you have more than <code>maxitems</code> hosted zones, then the value of the <code>IsTruncated</code> element in the response is true, and the values of <code>NextDNSName</code> and <code>NextHostedZoneId</code> specify the first hosted zone in the next group of <code>maxitems</code> hosted zones. <br/>HostedZoneId:  (Optional) For your first request to <code>ListHostedZonesByName</code>, do not include the <code>hostedzoneid</code> parameter. If you have more hosted zones than the value of <code>maxitems</code>, <code>ListHostedZonesByName</code> returns only the first <code>maxitems</code> hosted zones. To get the next group of <code>maxitems</code> hosted zones, submit another request to <code>ListHostedZonesByName</code> and include both <code>dnsname</code> and <code>hostedzoneid</code> parameters. For the value of <code>hostedzoneid</code>, specify the value of the <code>NextHostedZoneId</code> element from the previous response.<br/>DNSName:  (Optional) For your first request to <code>ListHostedZonesByName</code>, include the <code>dnsname</code> parameter only if you want to specify the name of the first hosted zone in the response. If you don't include the <code>dnsname</code> parameter, Amazon Route 53 returns all of the hosted zones that were created by the current AWS account, in ASCII order. For subsequent requests, include both <code>dnsname</code> and <code>hostedzoneid</code> parameters. For <code>dnsname</code>, specify the value of <code>NextDNSName</code> from the previous response.<br/>
        :return: MaxItems:  The value that you specified for the <code>maxitems</code> parameter in the call to <code>ListHostedZonesByName</code> that produced the current response.<br/>NextHostedZoneId:  If <code>IsTruncated</code> is <code>true</code>, the value of <code>NextHostedZoneId</code> identifies the first hosted zone in the next group of <code>maxitems</code> hosted zones. Call <code>ListHostedZonesByName</code> again and specify the value of <code>NextDNSName</code> and <code>NextHostedZoneId</code> in the <code>dnsname</code> and <code>hostedzoneid</code> parameters, respectively. This element is present only if <code>IsTruncated</code> is <code>true</code>.<br/>NextDNSName:  If <code>IsTruncated</code> is true, the value of <code>NextDNSName</code> is the name of the first hosted zone in the next group of <code>maxitems</code> hosted zones. Call <code>ListHostedZonesByName</code> again and specify the value of <code>NextDNSName</code> and <code>NextHostedZoneId</code> in the <code>dnsname</code> and <code>hostedzoneid</code> parameters, respectively. This element is present only if <code>IsTruncated</code> is <code>true</code>.<br/>IsTruncated:  A flag that indicates whether there are more hosted zones to be listed. If the response was truncated, you can get the next group of <code>maxitems</code> hosted zones by calling <code>ListHostedZonesByName</code> again and specifying the values of <code>NextDNSName</code> and <code>NextHostedZoneId</code> elements in the <code>dnsname</code> and <code>hostedzoneid</code> parameters.<br/>HostedZoneId:  The ID that Amazon Route 53 assigned to the hosted zone when you created it.<br/>DNSName:  For the second and subsequent calls to <code>ListHostedZonesByName</code>, <code>DNSName</code> is the value that you specified for the <code>dnsname</code> parameter in the request that produced the current response.<br/>HostedZones:  A complex type that contains general information about the hosted zone.<br/>        """
        pass

    def list_hosted_zones_by_vpc(self, VPCRegion: str, VPCId: str, MaxItems: str=None, NextToken: str=None) -> ListHostedZonesByVPCResponse:
        r"""Lists all the private hosted zones that a specified VPC is associated with, regardless of which AWS account or AWS service owns the hosted zones. The <code>HostedZoneOwner</code> structure in the response contains one of the following values: <ul> <li> An <code>OwningAccount</code> element, which contains the account number of either the current AWS account or another AWS account. Some services, such as AWS Cloud Map, create hosted zones using the current account.  </li> <li> An <code>OwningService</code> element, which identifies the AWS service that created and owns the hosted zone. For example, if a hosted zone was created by Amazon Elastic File System (Amazon EFS), the value of <code>Owner</code> is <code>efs.amazonaws.com</code>.  </li> </ul>

        :param self:
        :param NextToken:  If the previous response included a <code>NextToken</code> element, the specified VPC is associated with more hosted zones. To get more hosted zones, submit another <code>ListHostedZonesByVPC</code> request.  For the value of <code>NextToken</code>, specify the value of <code>NextToken</code> from the previous response. If the previous response didn't include a <code>NextToken</code> element, there are no more hosted zones to get.<br/>MaxItems:  (Optional) The maximum number of hosted zones that you want Amazon Route 53 to return. If the specified VPC is associated with more than <code>MaxItems</code> hosted zones, the response includes a <code>NextToken</code> element. <code>NextToken</code> contains an encrypted token that identifies the first hosted zone that Route 53 will return if you submit another request.<br/>VPCRegion:  For the Amazon VPC that you specified for <code>VPCId</code>, the AWS Region that you created the VPC in. <br/>VPCId:  The ID of the Amazon VPC that you want to list hosted zones for.<br/>
        :return: NextToken:  The value that you specified for <code>NextToken</code> in the most recent <code>ListHostedZonesByVPC</code> request.<br/>MaxItems:  The value that you specified for <code>MaxItems</code> in the most recent <code>ListHostedZonesByVPC</code> request.<br/>HostedZoneSummaries:  A list that contains one <code>HostedZoneSummary</code> element for each hosted zone that the specified Amazon VPC is associated with. Each <code>HostedZoneSummary</code> element contains the hosted zone name and ID, and information about who owns the hosted zone.<br/>        """
        pass

    def list_query_logging_configs(self, HostedZoneId: str=None, NextToken: str=None, MaxResults: str=None) -> ListQueryLoggingConfigsResponse:
        r"""Lists the configurations for DNS query logging that are associated with the current AWS account or the configuration that is associated with a specified hosted zone. For more information about DNS query logs, see <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_CreateQueryLoggingConfig.html">CreateQueryLoggingConfig</a>. Additional information, including the format of DNS query logs, appears in <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/query-logs.html">Logging DNS Queries</a> in the <i>Amazon Route 53 Developer Guide</i>.

        :param self:
        :param MaxResults:  (Optional) The maximum number of query logging configurations that you want Amazon Route 53 to return in response to the current request. If the current AWS account has more than <code>MaxResults</code> configurations, use the value of <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_ListQueryLoggingConfigs.html#API_ListQueryLoggingConfigs_RequestSyntax">NextToken</a> in the response to get the next page of results. If you don't specify a value for <code>MaxResults</code>, Route 53 returns up to 100 configurations.<br/>NextToken:  (Optional) If the current AWS account has more than <code>MaxResults</code> query logging configurations, use <code>NextToken</code> to get the second and subsequent pages of results. For the first <code>ListQueryLoggingConfigs</code> request, omit this value. For the second and subsequent requests, get the value of <code>NextToken</code> from the previous response and specify that value for <code>NextToken</code> in the request.<br/>HostedZoneId:  (Optional) If you want to list the query logging configuration that is associated with a hosted zone, specify the ID in <code>HostedZoneId</code>.  If you don't specify a hosted zone ID, <code>ListQueryLoggingConfigs</code> returns all of the configurations that are associated with the current AWS account.<br/>
        :return: NextToken:  If a response includes the last of the query logging configurations that are associated with the current AWS account, <code>NextToken</code> doesn't appear in the response. If a response doesn't include the last of the configurations, you can get more configurations by submitting another <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_ListQueryLoggingConfigs.html">ListQueryLoggingConfigs</a> request. Get the value of <code>NextToken</code> that Amazon Route 53 returned in the previous response and include it in <code>NextToken</code> in the next request.<br/>QueryLoggingConfigs:  An array that contains one <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_QueryLoggingConfig.html">QueryLoggingConfig</a> element for each configuration for DNS query logging that is associated with the current AWS account.<br/>        """
        pass

    def list_resource_record_sets(self, HostedZoneId: str, StartRecordName: str=None, StartRecordType: str=None, StartRecordIdentifier: str=None, MaxItems: str=None) -> ListResourceRecordSetsResponse:
        r"""Lists the resource record sets in a specified hosted zone.  <code>ListResourceRecordSets</code> returns up to 300 resource record sets at a time in ASCII order, beginning at a position specified by the <code>name</code> and <code>type</code> elements.  <b>Sort order</b>   <code>ListResourceRecordSets</code> sorts results first by DNS name with the labels reversed, for example:  <code>com.example.www.</code>  Note the trailing dot, which can change the sort order when the record name contains characters that appear before <code>.</code> (decimal 46) in the ASCII table. These characters include the following: <code>! " # $ % &amp; ' ( ) * + , -</code>  When multiple records have the same DNS name, <code>ListResourceRecordSets</code> sorts results by the record type.  <b>Specifying where to start listing records</b>  You can use the name and type elements to specify the resource record set that the list begins with: <dl> <dt>If you do not specify Name or Type</dt> <dd> The results begin with the first resource record set that the hosted zone contains. </dd> <dt>If you specify Name but not Type</dt> <dd> The results begin with the first resource record set in the list whose name is greater than or equal to <code>Name</code>. </dd> <dt>If you specify Type but not Name</dt> <dd> Amazon Route 53 returns the <code>InvalidInput</code> error. </dd> <dt>If you specify both Name and Type</dt> <dd> The results begin with the first resource record set in the list whose name is greater than or equal to <code>Name</code>, and whose type is greater than or equal to <code>Type</code>. </dd> </dl>  <b>Resource record sets that are PENDING</b>  This action returns the most current version of the records. This includes records that are <code>PENDING</code>, and that are not yet available on all Route 53 DNS servers.  <b>Changing resource record sets</b>  To ensure that you get an accurate listing of the resource record sets for a hosted zone at a point in time, do not submit a <code>ChangeResourceRecordSets</code> request while you're paging through the results of a <code>ListResourceRecordSets</code> request. If you do, some pages may display results without the latest changes while other pages display results with the latest changes.  <b>Displaying the next page of results</b>  If a <code>ListResourceRecordSets</code> command returns more than one page of results, the value of <code>IsTruncated</code> is <code>true</code>. To display the next page of results, get the values of <code>NextRecordName</code>, <code>NextRecordType</code>, and <code>NextRecordIdentifier</code> (if any) from the response. Then submit another <code>ListResourceRecordSets</code> request, and specify those values for <code>StartRecordName</code>, <code>StartRecordType</code>, and <code>StartRecordIdentifier</code>.

        :param self:
        :param MaxItems:  (Optional) The maximum number of resource records sets to include in the response body for this request. If the response includes more than <code>maxitems</code> resource record sets, the value of the <code>IsTruncated</code> element in the response is <code>true</code>, and the values of the <code>NextRecordName</code> and <code>NextRecordType</code> elements in the response identify the first resource record set in the next group of <code>maxitems</code> resource record sets.<br/>StartRecordIdentifier:   <i>Resource record sets that have a routing policy other than simple:</i> If results were truncated for a given DNS name and type, specify the value of <code>NextRecordIdentifier</code> from the previous response to get the next resource record set that has the current DNS name and type.<br/>StartRecordType:  The type of resource record set to begin the record listing from. Valid values for basic resource record sets: <code>A</code> | <code>AAAA</code> | <code>CAA</code> | <code>CNAME</code> | <code>MX</code> | <code>NAPTR</code> | <code>NS</code> | <code>PTR</code> | <code>SOA</code> | <code>SPF</code> | <code>SRV</code> | <code>TXT</code>  Values for weighted, latency, geolocation, and failover resource record sets: <code>A</code> | <code>AAAA</code> | <code>CAA</code> | <code>CNAME</code> | <code>MX</code> | <code>NAPTR</code> | <code>PTR</code> | <code>SPF</code> | <code>SRV</code> | <code>TXT</code>  Values for alias resource record sets:  <ul> <li>  <b>API Gateway custom regional API or edge-optimized API</b>: A </li> <li>  <b>CloudFront distribution</b>: A or AAAA </li> <li>  <b>Elastic Beanstalk environment that has a regionalized subdomain</b>: A </li> <li>  <b>Elastic Load Balancing load balancer</b>: A | AAAA </li> <li>  <b>S3 bucket</b>: A </li> <li>  <b>VPC interface VPC endpoint</b>: A </li> <li>  <b>Another resource record set in this hosted zone:</b> The type of the resource record set that the alias references. </li> </ul> Constraint: Specifying <code>type</code> without specifying <code>name</code> returns an <code>InvalidInput</code> error.<br/>StartRecordName:  The first name in the lexicographic ordering of resource record sets that you want to list. If the specified record name doesn't exist, the results begin with the first resource record set that has a name greater than the value of <code>name</code>.<br/>HostedZoneId:  The ID of the hosted zone that contains the resource record sets that you want to list.<br/>
        :return: MaxItems:  The maximum number of records you requested.<br/>NextRecordIdentifier:   <i>Resource record sets that have a routing policy other than simple:</i> If results were truncated for a given DNS name and type, the value of <code>SetIdentifier</code> for the next resource record set that has the current DNS name and type. For information about routing policies, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy.html">Choosing a Routing Policy</a> in the <i>Amazon Route 53 Developer Guide</i>.<br/>NextRecordType:  If the results were truncated, the type of the next record in the list. This element is present only if <code>IsTruncated</code> is true. <br/>NextRecordName:  If the results were truncated, the name of the next record in the list. This element is present only if <code>IsTruncated</code> is true. <br/>IsTruncated:  A flag that indicates whether more resource record sets remain to be listed. If your results were truncated, you can make a follow-up pagination request by using the <code>NextRecordName</code> element.<br/>ResourceRecordSets:  Information about multiple resource record sets.<br/>        """
        pass

    def list_reusable_delegation_sets(self, Marker: str=None, MaxItems: str=None) -> ListReusableDelegationSetsResponse:
        r"""Retrieves a list of the reusable delegation sets that are associated with the current AWS account.

        :param self:
        :param MaxItems:  The number of reusable delegation sets that you want Amazon Route 53 to return in the response to this request. If you specify a value greater than 100, Route 53 returns only the first 100 reusable delegation sets.<br/>Marker:  If the value of <code>IsTruncated</code> in the previous response was <code>true</code>, you have more reusable delegation sets. To get another group, submit another <code>ListReusableDelegationSets</code> request.  For the value of <code>marker</code>, specify the value of <code>NextMarker</code> from the previous response, which is the ID of the first reusable delegation set that Amazon Route 53 will return if you submit another request. If the value of <code>IsTruncated</code> in the previous response was <code>false</code>, there are no more reusable delegation sets to get.<br/>
        :return: MaxItems:  The value that you specified for the <code>maxitems</code> parameter in the call to <code>ListReusableDelegationSets</code> that produced the current response.<br/>NextMarker:  If <code>IsTruncated</code> is <code>true</code>, the value of <code>NextMarker</code> identifies the next reusable delegation set that Amazon Route 53 will return if you submit another <code>ListReusableDelegationSets</code> request and specify the value of <code>NextMarker</code> in the <code>marker</code> parameter.<br/>IsTruncated:  A flag that indicates whether there are more reusable delegation sets to be listed.<br/>Marker:  For the second and subsequent calls to <code>ListReusableDelegationSets</code>, <code>Marker</code> is the value that you specified for the <code>marker</code> parameter in the request that produced the current response.<br/>DelegationSets:  A complex type that contains one <code>DelegationSet</code> element for each reusable delegation set that was created by the current AWS account.<br/>        """
        pass

    def list_tags_for_resource(self, ResourceId: str, ResourceType: str) -> ListTagsForResourceResponse:
        r"""Lists tags for one health check or hosted zone.  For information about using tags for cost allocation, see <a href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html">Using Cost Allocation Tags</a> in the <i>AWS Billing and Cost Management User Guide</i>.

        :param self:
        :param ResourceId:  The ID of the resource for which you want to retrieve tags.<br/>ResourceType:  The type of the resource. <ul> <li> The resource type for health checks is <code>healthcheck</code>. </li> <li> The resource type for hosted zones is <code>hostedzone</code>. </li> </ul><br/>
        :return: ResourceTagSet:  A <code>ResourceTagSet</code> containing tags associated with the specified resource.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The tags associated with the specified resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceId</i> The ID for the specified resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceType</i> The type of the resource. <ul> <li> The resource type for health checks is <code>healthcheck</code>. </li> <li> The resource type for hosted zones is <code>hostedzone</code>. </li> </ul><br/>        """
        pass

    def list_tags_for_resources(self, ResourceIds: List[TagResourceId], ResourceType: str) -> ListTagsForResourcesResponse:
        r"""Lists tags for up to 10 health checks or hosted zones. For information about using tags for cost allocation, see <a href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html">Using Cost Allocation Tags</a> in the <i>AWS Billing and Cost Management User Guide</i>.

        :param self:
        :param ResourceIds:  A complex type that contains the ResourceId element for each resource for which you want to get a list of tags.<br/>ResourceType:  The type of the resources. <ul> <li> The resource type for health checks is <code>healthcheck</code>. </li> <li> The resource type for hosted zones is <code>hostedzone</code>. </li> </ul><br/>
        :return: ResourceTagSets:  A list of <code>ResourceTagSet</code>s containing tags associated with the specified resources.<br/>        """
        pass

    def list_traffic_policies(self, TrafficPolicyIdMarker: str=None, MaxItems: str=None) -> ListTrafficPoliciesResponse:
        r"""Gets information about the latest version for every traffic policy that is associated with the current AWS account. Policies are listed in the order that they were created in.  For information about how of deleting a traffic policy affects the response from <code>ListTrafficPolicies</code>, see <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_DeleteTrafficPolicy.html">DeleteTrafficPolicy</a>. 

        :param self:
        :param MaxItems:  (Optional) The maximum number of traffic policies that you want Amazon Route 53 to return in response to this request. If you have more than <code>MaxItems</code> traffic policies, the value of <code>IsTruncated</code> in the response is <code>true</code>, and the value of <code>TrafficPolicyIdMarker</code> is the ID of the first traffic policy that Route 53 will return if you submit another request.<br/>TrafficPolicyIdMarker:  (Conditional) For your first request to <code>ListTrafficPolicies</code>, don't include the <code>TrafficPolicyIdMarker</code> parameter. If you have more traffic policies than the value of <code>MaxItems</code>, <code>ListTrafficPolicies</code> returns only the first <code>MaxItems</code> traffic policies. To get the next group of policies, submit another request to <code>ListTrafficPolicies</code>. For the value of <code>TrafficPolicyIdMarker</code>, specify the value of <code>TrafficPolicyIdMarker</code> that was returned in the previous response.<br/>
        :return: MaxItems:  The value that you specified for the <code>MaxItems</code> parameter in the <code>ListTrafficPolicies</code> request that produced the current response.<br/>TrafficPolicyIdMarker:  If the value of <code>IsTruncated</code> is <code>true</code>, <code>TrafficPolicyIdMarker</code> is the ID of the first traffic policy in the next group of <code>MaxItems</code> traffic policies.<br/>IsTruncated:  A flag that indicates whether there are more traffic policies to be listed. If the response was truncated, you can get the next group of traffic policies by submitting another <code>ListTrafficPolicies</code> request and specifying the value of <code>TrafficPolicyIdMarker</code> in the <code>TrafficPolicyIdMarker</code> request parameter.<br/>TrafficPolicySummaries:  A list that contains one <code>TrafficPolicySummary</code> element for each traffic policy that was created by the current AWS account.<br/>        """
        pass

    def list_traffic_policy_instances(self, HostedZoneIdMarker: str=None, TrafficPolicyInstanceNameMarker: str=None, TrafficPolicyInstanceTypeMarker: str=None, MaxItems: str=None) -> ListTrafficPolicyInstancesResponse:
        r"""Gets information about the traffic policy instances that you created by using the current AWS account. <note> After you submit an <code>UpdateTrafficPolicyInstance</code> request, there's a brief delay while Amazon Route 53 creates the resource record sets that are specified in the traffic policy definition. For more information, see the <code>State</code> response element. </note> Route 53 returns a maximum of 100 items in each response. If you have a lot of traffic policy instances, you can use the <code>MaxItems</code> parameter to list them in groups of up to 100.

        :param self:
        :param MaxItems:  The maximum number of traffic policy instances that you want Amazon Route 53 to return in response to a <code>ListTrafficPolicyInstances</code> request. If you have more than <code>MaxItems</code> traffic policy instances, the value of the <code>IsTruncated</code> element in the response is <code>true</code>, and the values of <code>HostedZoneIdMarker</code>, <code>TrafficPolicyInstanceNameMarker</code>, and <code>TrafficPolicyInstanceTypeMarker</code> represent the first traffic policy instance in the next group of <code>MaxItems</code> traffic policy instances.<br/>TrafficPolicyInstanceTypeMarker:  If the value of <code>IsTruncated</code> in the previous response was <code>true</code>, you have more traffic policy instances. To get more traffic policy instances, submit another <code>ListTrafficPolicyInstances</code> request. For the value of <code>trafficpolicyinstancetype</code>, specify the value of <code>TrafficPolicyInstanceTypeMarker</code> from the previous response, which is the type of the first traffic policy instance in the next group of traffic policy instances. If the value of <code>IsTruncated</code> in the previous response was <code>false</code>, there are no more traffic policy instances to get.<br/>TrafficPolicyInstanceNameMarker:  If the value of <code>IsTruncated</code> in the previous response was <code>true</code>, you have more traffic policy instances. To get more traffic policy instances, submit another <code>ListTrafficPolicyInstances</code> request. For the value of <code>trafficpolicyinstancename</code>, specify the value of <code>TrafficPolicyInstanceNameMarker</code> from the previous response, which is the name of the first traffic policy instance in the next group of traffic policy instances. If the value of <code>IsTruncated</code> in the previous response was <code>false</code>, there are no more traffic policy instances to get.<br/>HostedZoneIdMarker:  If the value of <code>IsTruncated</code> in the previous response was <code>true</code>, you have more traffic policy instances. To get more traffic policy instances, submit another <code>ListTrafficPolicyInstances</code> request. For the value of <code>HostedZoneId</code>, specify the value of <code>HostedZoneIdMarker</code> from the previous response, which is the hosted zone ID of the first traffic policy instance in the next group of traffic policy instances. If the value of <code>IsTruncated</code> in the previous response was <code>false</code>, there are no more traffic policy instances to get.<br/>
        :return: MaxItems:  The value that you specified for the <code>MaxItems</code> parameter in the call to <code>ListTrafficPolicyInstances</code> that produced the current response.<br/>IsTruncated:  A flag that indicates whether there are more traffic policy instances to be listed. If the response was truncated, you can get more traffic policy instances by calling <code>ListTrafficPolicyInstances</code> again and specifying the values of the <code>HostedZoneIdMarker</code>, <code>TrafficPolicyInstanceNameMarker</code>, and <code>TrafficPolicyInstanceTypeMarker</code> in the corresponding request parameters.<br/>TrafficPolicyInstanceTypeMarker:  If <code>IsTruncated</code> is <code>true</code>, <code>TrafficPolicyInstanceTypeMarker</code> is the DNS type of the resource record sets that are associated with the first traffic policy instance that Amazon Route 53 will return if you submit another <code>ListTrafficPolicyInstances</code> request. <br/>TrafficPolicyInstanceNameMarker:  If <code>IsTruncated</code> is <code>true</code>, <code>TrafficPolicyInstanceNameMarker</code> is the name of the first traffic policy instance that Route 53 will return if you submit another <code>ListTrafficPolicyInstances</code> request. <br/>HostedZoneIdMarker:  If <code>IsTruncated</code> is <code>true</code>, <code>HostedZoneIdMarker</code> is the ID of the hosted zone of the first traffic policy instance that Route 53 will return if you submit another <code>ListTrafficPolicyInstances</code> request. <br/>TrafficPolicyInstances:  A list that contains one <code>TrafficPolicyInstance</code> element for each traffic policy instance that matches the elements in the request.<br/>        """
        pass

    def list_traffic_policy_instances_by_hosted_zone(self, HostedZoneId: str, TrafficPolicyInstanceNameMarker: str=None, TrafficPolicyInstanceTypeMarker: str=None, MaxItems: str=None) -> ListTrafficPolicyInstancesByHostedZoneResponse:
        r"""Gets information about the traffic policy instances that you created in a specified hosted zone. <note> After you submit a <code>CreateTrafficPolicyInstance</code> or an <code>UpdateTrafficPolicyInstance</code> request, there's a brief delay while Amazon Route 53 creates the resource record sets that are specified in the traffic policy definition. For more information, see the <code>State</code> response element. </note> Route 53 returns a maximum of 100 items in each response. If you have a lot of traffic policy instances, you can use the <code>MaxItems</code> parameter to list them in groups of up to 100.

        :param self:
        :param MaxItems:  The maximum number of traffic policy instances to be included in the response body for this request. If you have more than <code>MaxItems</code> traffic policy instances, the value of the <code>IsTruncated</code> element in the response is <code>true</code>, and the values of <code>HostedZoneIdMarker</code>, <code>TrafficPolicyInstanceNameMarker</code>, and <code>TrafficPolicyInstanceTypeMarker</code> represent the first traffic policy instance that Amazon Route 53 will return if you submit another request.<br/>TrafficPolicyInstanceTypeMarker:  If the value of <code>IsTruncated</code> in the previous response is true, you have more traffic policy instances. To get more traffic policy instances, submit another <code>ListTrafficPolicyInstances</code> request. For the value of <code>trafficpolicyinstancetype</code>, specify the value of <code>TrafficPolicyInstanceTypeMarker</code> from the previous response, which is the type of the first traffic policy instance in the next group of traffic policy instances. If the value of <code>IsTruncated</code> in the previous response was <code>false</code>, there are no more traffic policy instances to get.<br/>TrafficPolicyInstanceNameMarker:  If the value of <code>IsTruncated</code> in the previous response is true, you have more traffic policy instances. To get more traffic policy instances, submit another <code>ListTrafficPolicyInstances</code> request. For the value of <code>trafficpolicyinstancename</code>, specify the value of <code>TrafficPolicyInstanceNameMarker</code> from the previous response, which is the name of the first traffic policy instance in the next group of traffic policy instances. If the value of <code>IsTruncated</code> in the previous response was <code>false</code>, there are no more traffic policy instances to get.<br/>HostedZoneId:  The ID of the hosted zone that you want to list traffic policy instances for.<br/>
        :return: MaxItems:  The value that you specified for the <code>MaxItems</code> parameter in the <code>ListTrafficPolicyInstancesByHostedZone</code> request that produced the current response.<br/>IsTruncated:  A flag that indicates whether there are more traffic policy instances to be listed. If the response was truncated, you can get the next group of traffic policy instances by submitting another <code>ListTrafficPolicyInstancesByHostedZone</code> request and specifying the values of <code>HostedZoneIdMarker</code>, <code>TrafficPolicyInstanceNameMarker</code>, and <code>TrafficPolicyInstanceTypeMarker</code> in the corresponding request parameters.<br/>TrafficPolicyInstanceTypeMarker:  If <code>IsTruncated</code> is true, <code>TrafficPolicyInstanceTypeMarker</code> is the DNS type of the resource record sets that are associated with the first traffic policy instance in the next group of traffic policy instances.<br/>TrafficPolicyInstanceNameMarker:  If <code>IsTruncated</code> is <code>true</code>, <code>TrafficPolicyInstanceNameMarker</code> is the name of the first traffic policy instance in the next group of traffic policy instances.<br/>TrafficPolicyInstances:  A list that contains one <code>TrafficPolicyInstance</code> element for each traffic policy instance that matches the elements in the request. <br/>        """
        pass

    def list_traffic_policy_instances_by_policy(self, TrafficPolicyVersion: int, TrafficPolicyId: str, HostedZoneIdMarker: str=None, TrafficPolicyInstanceNameMarker: str=None, TrafficPolicyInstanceTypeMarker: str=None, MaxItems: str=None) -> ListTrafficPolicyInstancesByPolicyResponse:
        r"""Gets information about the traffic policy instances that you created by using a specify traffic policy version. <note> After you submit a <code>CreateTrafficPolicyInstance</code> or an <code>UpdateTrafficPolicyInstance</code> request, there's a brief delay while Amazon Route 53 creates the resource record sets that are specified in the traffic policy definition. For more information, see the <code>State</code> response element. </note> Route 53 returns a maximum of 100 items in each response. If you have a lot of traffic policy instances, you can use the <code>MaxItems</code> parameter to list them in groups of up to 100.

        :param self:
        :param MaxItems:  The maximum number of traffic policy instances to be included in the response body for this request. If you have more than <code>MaxItems</code> traffic policy instances, the value of the <code>IsTruncated</code> element in the response is <code>true</code>, and the values of <code>HostedZoneIdMarker</code>, <code>TrafficPolicyInstanceNameMarker</code>, and <code>TrafficPolicyInstanceTypeMarker</code> represent the first traffic policy instance that Amazon Route 53 will return if you submit another request.<br/>TrafficPolicyInstanceTypeMarker:  If the value of <code>IsTruncated</code> in the previous response was <code>true</code>, you have more traffic policy instances. To get more traffic policy instances, submit another <code>ListTrafficPolicyInstancesByPolicy</code> request. For the value of <code>trafficpolicyinstancetype</code>, specify the value of <code>TrafficPolicyInstanceTypeMarker</code> from the previous response, which is the name of the first traffic policy instance that Amazon Route 53 will return if you submit another request. If the value of <code>IsTruncated</code> in the previous response was <code>false</code>, there are no more traffic policy instances to get.<br/>TrafficPolicyInstanceNameMarker:  If the value of <code>IsTruncated</code> in the previous response was <code>true</code>, you have more traffic policy instances. To get more traffic policy instances, submit another <code>ListTrafficPolicyInstancesByPolicy</code> request. For the value of <code>trafficpolicyinstancename</code>, specify the value of <code>TrafficPolicyInstanceNameMarker</code> from the previous response, which is the name of the first traffic policy instance that Amazon Route 53 will return if you submit another request. If the value of <code>IsTruncated</code> in the previous response was <code>false</code>, there are no more traffic policy instances to get.<br/>HostedZoneIdMarker:  If the value of <code>IsTruncated</code> in the previous response was <code>true</code>, you have more traffic policy instances. To get more traffic policy instances, submit another <code>ListTrafficPolicyInstancesByPolicy</code> request.  For the value of <code>hostedzoneid</code>, specify the value of <code>HostedZoneIdMarker</code> from the previous response, which is the hosted zone ID of the first traffic policy instance that Amazon Route 53 will return if you submit another request. If the value of <code>IsTruncated</code> in the previous response was <code>false</code>, there are no more traffic policy instances to get.<br/>TrafficPolicyVersion:  The version of the traffic policy for which you want to list traffic policy instances. The version must be associated with the traffic policy that is specified by <code>TrafficPolicyId</code>.<br/>TrafficPolicyId:  The ID of the traffic policy for which you want to list traffic policy instances.<br/>
        :return: MaxItems:  The value that you specified for the <code>MaxItems</code> parameter in the call to <code>ListTrafficPolicyInstancesByPolicy</code> that produced the current response.<br/>IsTruncated:  A flag that indicates whether there are more traffic policy instances to be listed. If the response was truncated, you can get the next group of traffic policy instances by calling <code>ListTrafficPolicyInstancesByPolicy</code> again and specifying the values of the <code>HostedZoneIdMarker</code>, <code>TrafficPolicyInstanceNameMarker</code>, and <code>TrafficPolicyInstanceTypeMarker</code> elements in the corresponding request parameters.<br/>TrafficPolicyInstanceTypeMarker:  If <code>IsTruncated</code> is <code>true</code>, <code>TrafficPolicyInstanceTypeMarker</code> is the DNS type of the resource record sets that are associated with the first traffic policy instance in the next group of <code>MaxItems</code> traffic policy instances.<br/>TrafficPolicyInstanceNameMarker:  If <code>IsTruncated</code> is <code>true</code>, <code>TrafficPolicyInstanceNameMarker</code> is the name of the first traffic policy instance in the next group of <code>MaxItems</code> traffic policy instances.<br/>HostedZoneIdMarker:  If <code>IsTruncated</code> is <code>true</code>, <code>HostedZoneIdMarker</code> is the ID of the hosted zone of the first traffic policy instance in the next group of traffic policy instances.<br/>TrafficPolicyInstances:  A list that contains one <code>TrafficPolicyInstance</code> element for each traffic policy instance that matches the elements in the request.<br/>        """
        pass

    def list_traffic_policy_versions(self, Id: str, TrafficPolicyVersionMarker: str=None, MaxItems: str=None) -> ListTrafficPolicyVersionsResponse:
        r"""Gets information about all of the versions for a specified traffic policy. Traffic policy versions are listed in numerical order by <code>VersionNumber</code>.

        :param self:
        :param MaxItems:  The maximum number of traffic policy versions that you want Amazon Route 53 to include in the response body for this request. If the specified traffic policy has more than <code>MaxItems</code> versions, the value of <code>IsTruncated</code> in the response is <code>true</code>, and the value of the <code>TrafficPolicyVersionMarker</code> element is the ID of the first version that Route 53 will return if you submit another request.<br/>TrafficPolicyVersionMarker:  For your first request to <code>ListTrafficPolicyVersions</code>, don't include the <code>TrafficPolicyVersionMarker</code> parameter. If you have more traffic policy versions than the value of <code>MaxItems</code>, <code>ListTrafficPolicyVersions</code> returns only the first group of <code>MaxItems</code> versions. To get more traffic policy versions, submit another <code>ListTrafficPolicyVersions</code> request. For the value of <code>TrafficPolicyVersionMarker</code>, specify the value of <code>TrafficPolicyVersionMarker</code> in the previous response.<br/>Id:  Specify the value of <code>Id</code> of the traffic policy for which you want to list all versions.<br/>
        :return: MaxItems:  The value that you specified for the <code>maxitems</code> parameter in the <code>ListTrafficPolicyVersions</code> request that produced the current response.<br/>TrafficPolicyVersionMarker:  If <code>IsTruncated</code> is <code>true</code>, the value of <code>TrafficPolicyVersionMarker</code> identifies the first traffic policy that Amazon Route 53 will return if you submit another request. Call <code>ListTrafficPolicyVersions</code> again and specify the value of <code>TrafficPolicyVersionMarker</code> in the <code>TrafficPolicyVersionMarker</code> request parameter. This element is present only if <code>IsTruncated</code> is <code>true</code>.<br/>IsTruncated:  A flag that indicates whether there are more traffic policies to be listed. If the response was truncated, you can get the next group of traffic policies by submitting another <code>ListTrafficPolicyVersions</code> request and specifying the value of <code>NextMarker</code> in the <code>marker</code> parameter.<br/>TrafficPolicies:  A list that contains one <code>TrafficPolicy</code> element for each traffic policy version that is associated with the specified traffic policy.<br/>        """
        pass

    def list_vpc_association_authorizations(self, HostedZoneId: str, NextToken: str=None, MaxResults: str=None) -> ListVPCAssociationAuthorizationsResponse:
        r"""Gets a list of the VPCs that were created by other accounts and that can be associated with a specified hosted zone because you've submitted one or more <code>CreateVPCAssociationAuthorization</code> requests.  The response includes a <code>VPCs</code> element with a <code>VPC</code> child element for each VPC that can be associated with the hosted zone.

        :param self:
        :param MaxResults:   <i>Optional</i>: An integer that specifies the maximum number of VPCs that you want Amazon Route 53 to return. If you don't specify a value for <code>MaxResults</code>, Route 53 returns up to 50 VPCs per page.<br/>NextToken:   <i>Optional</i>: If a response includes a <code>NextToken</code> element, there are more VPCs that can be associated with the specified hosted zone. To get the next page of results, submit another request, and include the value of <code>NextToken</code> from the response in the <code>nexttoken</code> parameter in another <code>ListVPCAssociationAuthorizations</code> request.<br/>HostedZoneId:  The ID of the hosted zone for which you want a list of VPCs that can be associated with the hosted zone.<br/>
        :return: VPCs:  The list of VPCs that are authorized to be associated with the specified hosted zone.<br/>NextToken:  When the response includes a <code>NextToken</code> element, there are more VPCs that can be associated with the specified hosted zone. To get the next page of VPCs, submit another <code>ListVPCAssociationAuthorizations</code> request, and include the value of the <code>NextToken</code> element from the response in the <code>nexttoken</code> request parameter.<br/>HostedZoneId:  The ID of the hosted zone that you can associate the listed VPCs with.<br/>        """
        pass

    def test_dns_answer(self, RecordType: str, RecordName: str, HostedZoneId: str, ResolverIP: str=None, EDNS0ClientSubnetIP: str=None, EDNS0ClientSubnetMask: str=None) -> TestDNSAnswerResponse:
        r"""Gets the value that Amazon Route 53 returns in response to a DNS request for a specified record name and type. You can optionally specify the IP address of a DNS resolver, an EDNS0 client subnet IP address, and a subnet mask.  This call only supports querying public hosted zones.

        :param self:
        :param EDNS0ClientSubnetMask:  If you specify an IP address for <code>edns0clientsubnetip</code>, you can optionally specify the number of bits of the IP address that you want the checking tool to include in the DNS query. For example, if you specify <code>192.0.2.44</code> for <code>edns0clientsubnetip</code> and <code>24</code> for <code>edns0clientsubnetmask</code>, the checking tool will simulate a request from 192.0.2.0/24. The default value is 24 bits for IPv4 addresses and 64 bits for IPv6 addresses. The range of valid values depends on whether <code>edns0clientsubnetip</code> is an IPv4 or an IPv6 address: <ul> <li>  <b>IPv4</b>: Specify a value between 0 and 32 </li> <li>  <b>IPv6</b>: Specify a value between 0 and 128 </li> </ul><br/>EDNS0ClientSubnetIP:  If the resolver that you specified for resolverip supports EDNS0, specify the IPv4 or IPv6 address of a client in the applicable location, for example, <code>192.0.2.44</code> or <code>2001:db8:85a3::8a2e:370:7334</code>.<br/>ResolverIP:  If you want to simulate a request from a specific DNS resolver, specify the IP address for that resolver. If you omit this value, <code>TestDnsAnswer</code> uses the IP address of a DNS resolver in the AWS US East (N. Virginia) Region (<code>us-east-1</code>).<br/>RecordType:  The type of the resource record set.<br/>RecordName:  The name of the resource record set that you want Amazon Route 53 to simulate a query for.<br/>HostedZoneId:  The ID of the hosted zone that you want Amazon Route 53 to simulate a query for.<br/>
        :return: Protocol:  The protocol that Amazon Route 53 used to respond to the request, either <code>UDP</code> or <code>TCP</code>. <br/>ResponseCode:  A code that indicates whether the request is valid or not. The most common response code is <code>NOERROR</code>, meaning that the request is valid. If the response is not valid, Amazon Route 53 returns a response code that describes the error. For a list of possible response codes, see <a href="http://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml#dns-parameters-6">DNS RCODES</a> on the IANA website. <br/>RecordData:  A list that contains values that Amazon Route 53 returned for this resource record set.<br/>RecordType:  The type of the resource record set that you submitted a request for.<br/>RecordName:  The name of the resource record set that you submitted a request for.<br/>Nameserver:  The Amazon Route 53 name server used to respond to the request.<br/>        """
        pass

    def update_health_check(self, HealthCheckId: str, HealthCheckVersion: HealthCheckVersion=None, IPAddress: str=None, Port: int=None, ResourcePath: str=None, FullyQualifiedDomainName: str=None, SearchString: str=None, FailureThreshold: int=None, Inverted: Inverted=None, Disabled: Disabled=None, HealthThreshold: int=None, ChildHealthChecks: List[HealthCheckId]=None, EnableSNI: EnableSNI=None, Regions: List[HealthCheckRegion]=None, AlarmIdentifier: AlarmIdentifier=None, InsufficientDataHealthStatus: str=None, ResetElements: List[ResettableElementName]=None) -> UpdateHealthCheckResponse:
        r"""Updates an existing health check. Note that some values can't be updated.  For more information about updating health checks, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/health-checks-creating-deleting.html">Creating, Updating, and Deleting Health Checks</a> in the <i>Amazon Route 53 Developer Guide</i>.

        :param self:
        :param ResetElements:  A complex type that contains one <code>ResettableElementName</code> element for each element that you want to reset to the default value. Valid values for <code>ResettableElementName</code> include the following: <ul> <li>  <code>ChildHealthChecks</code>: Amazon Route 53 resets <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_HealthCheckConfig.html#Route53-Type-HealthCheckConfig-ChildHealthChecks">ChildHealthChecks</a> to null. </li> <li>  <code>FullyQualifiedDomainName</code>: Route 53 resets <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_UpdateHealthCheck.html#Route53-UpdateHealthCheck-request-FullyQualifiedDomainName">FullyQualifiedDomainName</a>. to null. </li> <li>  <code>Regions</code>: Route 53 resets the <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_HealthCheckConfig.html#Route53-Type-HealthCheckConfig-Regions">Regions</a> list to the default set of regions.  </li> <li>  <code>ResourcePath</code>: Route 53 resets <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_HealthCheckConfig.html#Route53-Type-HealthCheckConfig-ResourcePath">ResourcePath</a> to null. </li> </ul><br/>InsufficientDataHealthStatus:  When CloudWatch has insufficient data about the metric to determine the alarm state, the status that you want Amazon Route 53 to assign to the health check: <ul> <li>  <code>Healthy</code>: Route 53 considers the health check to be healthy. </li> <li>  <code>Unhealthy</code>: Route 53 considers the health check to be unhealthy. </li> <li>  <code>LastKnownStatus</code>: Route 53 uses the status of the health check from the last time CloudWatch had sufficient data to determine the alarm state. For new health checks that have no last known status, the default status for the health check is healthy. </li> </ul><br/>AlarmIdentifier:  A complex type that identifies the CloudWatch alarm that you want Amazon Route 53 health checkers to use to determine whether the specified health check is healthy.:<br/>Regions:  A complex type that contains one <code>Region</code> element for each region that you want Amazon Route 53 health checkers to check the specified endpoint from.<br/>EnableSNI:  Specify whether you want Amazon Route 53 to send the value of <code>FullyQualifiedDomainName</code> to the endpoint in the <code>client_hello</code> message during <code>TLS</code> negotiation. This allows the endpoint to respond to <code>HTTPS</code> health check requests with the applicable SSL/TLS certificate. Some endpoints require that HTTPS requests include the host name in the <code>client_hello</code> message. If you don't enable SNI, the status of the health check will be SSL alert <code>handshake_failure</code>. A health check can also have that status for other reasons. If SNI is enabled and you're still getting the error, check the SSL/TLS configuration on your endpoint and confirm that your certificate is valid. The SSL/TLS certificate on your endpoint includes a domain name in the <code>Common Name</code> field and possibly several more in the <code>Subject Alternative Names</code> field. One of the domain names in the certificate should match the value that you specify for <code>FullyQualifiedDomainName</code>. If the endpoint responds to the <code>client_hello</code> message with a certificate that does not include the domain name that you specified in <code>FullyQualifiedDomainName</code>, a health checker will retry the handshake. In the second attempt, the health checker will omit <code>FullyQualifiedDomainName</code> from the <code>client_hello</code> message.<br/>ChildHealthChecks:  A complex type that contains one <code>ChildHealthCheck</code> element for each health check that you want to associate with a <code>CALCULATED</code> health check.<br/>HealthThreshold:  The number of child health checks that are associated with a <code>CALCULATED</code> health that Amazon Route 53 must consider healthy for the <code>CALCULATED</code> health check to be considered healthy. To specify the child health checks that you want to associate with a <code>CALCULATED</code> health check, use the <code>ChildHealthChecks</code> and <code>ChildHealthCheck</code> elements. Note the following: <ul> <li> If you specify a number greater than the number of child health checks, Route 53 always considers this health check to be unhealthy. </li> <li> If you specify <code>0</code>, Route 53 always considers this health check to be healthy. </li> </ul><br/>Disabled:  Stops Route 53 from performing health checks. When you disable a health check, here's what happens: <ul> <li>  <b>Health checks that check the health of endpoints:</b> Route 53 stops submitting requests to your application, server, or other resource. </li> <li>  <b>Calculated health checks:</b> Route 53 stops aggregating the status of the referenced health checks. </li> <li>  <b>Health checks that monitor CloudWatch alarms:</b> Route 53 stops monitoring the corresponding CloudWatch metrics. </li> </ul> After you disable a health check, Route 53 considers the status of the health check to always be healthy. If you configured DNS failover, Route 53 continues to route traffic to the corresponding resources. If you want to stop routing traffic to a resource, change the value of <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_UpdateHealthCheck.html#Route53-UpdateHealthCheck-request-Inverted">Inverted</a>.  Charges for a health check still apply when the health check is disabled. For more information, see <a href="http://aws.amazon.com/route53/pricing/">Amazon Route 53 Pricing</a>.<br/>Inverted:  Specify whether you want Amazon Route 53 to invert the status of a health check, for example, to consider a health check unhealthy when it otherwise would be considered healthy.<br/>FailureThreshold:  The number of consecutive health checks that an endpoint must pass or fail for Amazon Route 53 to change the current status of the endpoint from unhealthy to healthy or vice versa. For more information, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-determining-health-of-endpoints.html">How Amazon Route 53 Determines Whether an Endpoint Is Healthy</a> in the <i>Amazon Route 53 Developer Guide</i>. If you don't specify a value for <code>FailureThreshold</code>, the default value is three health checks.<br/>SearchString:  If the value of <code>Type</code> is <code>HTTP_STR_MATCH</code> or <code>HTTPS_STR_MATCH</code>, the string that you want Amazon Route 53 to search for in the response body from the specified resource. If the string appears in the response body, Route 53 considers the resource healthy. (You can't change the value of <code>Type</code> when you update a health check.)<br/>FullyQualifiedDomainName:  Amazon Route 53 behavior depends on whether you specify a value for <code>IPAddress</code>. <note> If a health check already has a value for <code>IPAddress</code>, you can change the value. However, you can't update an existing health check to add or remove the value of <code>IPAddress</code>.  </note>  <b>If you specify a value for</b> <code>IPAddress</code>: Route 53 sends health check requests to the specified IPv4 or IPv6 address and passes the value of <code>FullyQualifiedDomainName</code> in the <code>Host</code> header for all health checks except TCP health checks. This is typically the fully qualified DNS name of the endpoint on which you want Route 53 to perform health checks. When Route 53 checks the health of an endpoint, here is how it constructs the <code>Host</code> header: <ul> <li> If you specify a value of <code>80</code> for <code>Port</code> and <code>HTTP</code> or <code>HTTP_STR_MATCH</code> for <code>Type</code>, Route 53 passes the value of <code>FullyQualifiedDomainName</code> to the endpoint in the <code>Host</code> header. </li> <li> If you specify a value of <code>443</code> for <code>Port</code> and <code>HTTPS</code> or <code>HTTPS_STR_MATCH</code> for <code>Type</code>, Route 53 passes the value of <code>FullyQualifiedDomainName</code> to the endpoint in the <code>Host</code> header. </li> <li> If you specify another value for <code>Port</code> and any value except <code>TCP</code> for <code>Type</code>, Route 53 passes <i> <code>FullyQualifiedDomainName</code>:<code>Port</code> </i> to the endpoint in the <code>Host</code> header. </li> </ul> If you don't specify a value for <code>FullyQualifiedDomainName</code>, Route 53 substitutes the value of <code>IPAddress</code> in the <code>Host</code> header in each of the above cases.  <b>If you don't specify a value for</b> <code>IPAddress</code>: If you don't specify a value for <code>IPAddress</code>, Route 53 sends a DNS request to the domain that you specify in <code>FullyQualifiedDomainName</code> at the interval you specify in <code>RequestInterval</code>. Using an IPv4 address that is returned by DNS, Route 53 then checks the health of the endpoint. <note> If you don't specify a value for <code>IPAddress</code>, Route 53 uses only IPv4 to send health checks to the endpoint. If there's no resource record set with a type of A for the name that you specify for <code>FullyQualifiedDomainName</code>, the health check fails with a "DNS resolution failed" error. </note> If you want to check the health of weighted, latency, or failover resource record sets and you choose to specify the endpoint only by <code>FullyQualifiedDomainName</code>, we recommend that you create a separate health check for each endpoint. For example, create a health check for each HTTP server that is serving content for www.example.com. For the value of <code>FullyQualifiedDomainName</code>, specify the domain name of the server (such as <code>us-east-2-www.example.com</code>), not the name of the resource record sets (www.example.com). <important> In this configuration, if the value of <code>FullyQualifiedDomainName</code> matches the name of the resource record sets and you then associate the health check with those resource record sets, health check results will be unpredictable. </important> In addition, if the value of <code>Type</code> is <code>HTTP</code>, <code>HTTPS</code>, <code>HTTP_STR_MATCH</code>, or <code>HTTPS_STR_MATCH</code>, Route 53 passes the value of <code>FullyQualifiedDomainName</code> in the <code>Host</code> header, as it does when you specify a value for <code>IPAddress</code>. If the value of <code>Type</code> is <code>TCP</code>, Route 53 doesn't pass a <code>Host</code> header.<br/>ResourcePath:  The path that you want Amazon Route 53 to request when performing health checks. The path can be any value for which your endpoint will return an HTTP status code of 2xx or 3xx when the endpoint is healthy, for example the file /docs/route53-health-check.html. You can also include query string parameters, for example, <code>/welcome.html?language=jp&amp;login=y</code>.  Specify this value only if you want to change it.<br/>Port:  The port on the endpoint that you want Amazon Route 53 to perform health checks on. <note> Don't specify a value for <code>Port</code> when you specify a value for <code>Type</code> of <code>CLOUDWATCH_METRIC</code> or <code>CALCULATED</code>. </note><br/>IPAddress:  The IPv4 or IPv6 IP address for the endpoint that you want Amazon Route 53 to perform health checks on. If you don't specify a value for <code>IPAddress</code>, Route 53 sends a DNS request to resolve the domain name that you specify in <code>FullyQualifiedDomainName</code> at the interval that you specify in <code>RequestInterval</code>. Using an IP address that is returned by DNS, Route 53 then checks the health of the endpoint. Use one of the following formats for the value of <code>IPAddress</code>:  <ul> <li>  <b>IPv4 address</b>: four values between 0 and 255, separated by periods (.), for example, <code>192.0.2.44</code>. </li> <li>  <b>IPv6 address</b>: eight groups of four hexadecimal values, separated by colons (:), for example, <code>2001:0db8:85a3:0000:0000:abcd:0001:2345</code>. You can also shorten IPv6 addresses as described in RFC 5952, for example, <code>2001:db8:85a3::abcd:1:2345</code>. </li> </ul> If the endpoint is an EC2 instance, we recommend that you create an Elastic IP address, associate it with your EC2 instance, and specify the Elastic IP address for <code>IPAddress</code>. This ensures that the IP address of your instance never changes. For more information, see the applicable documentation: <ul> <li> Linux: <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html">Elastic IP Addresses (EIP)</a> in the <i>Amazon EC2 User Guide for Linux Instances</i>  </li> <li> Windows: <a href="https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/elastic-ip-addresses-eip.html">Elastic IP Addresses (EIP)</a> in the <i>Amazon EC2 User Guide for Windows Instances</i>  </li> </ul> <note> If a health check already has a value for <code>IPAddress</code>, you can change the value. However, you can't update an existing health check to add or remove the value of <code>IPAddress</code>.  </note> For more information, see <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_UpdateHealthCheck.html#Route53-UpdateHealthCheck-request-FullyQualifiedDomainName">FullyQualifiedDomainName</a>.  Constraints: Route 53 can't check the health of endpoints for which the IP address is in local, private, non-routable, or multicast ranges. For more information about IP addresses for which you can't create health checks, see the following documents: <ul> <li>  <a href="https://tools.ietf.org/html/rfc5735">RFC 5735, Special Use IPv4 Addresses</a>  </li> <li>  <a href="https://tools.ietf.org/html/rfc6598">RFC 6598, IANA-Reserved IPv4 Prefix for Shared Address Space</a>  </li> <li>  <a href="https://tools.ietf.org/html/rfc5156">RFC 5156, Special-Use IPv6 Addresses</a>  </li> </ul><br/>HealthCheckVersion:  A sequential counter that Amazon Route 53 sets to <code>1</code> when you create a health check and increments by 1 each time you update settings for the health check. We recommend that you use <code>GetHealthCheck</code> or <code>ListHealthChecks</code> to get the current value of <code>HealthCheckVersion</code> for the health check that you want to update, and that you include that value in your <code>UpdateHealthCheck</code> request. This prevents Route 53 from overwriting an intervening update: <ul> <li> If the value in the <code>UpdateHealthCheck</code> request matches the value of <code>HealthCheckVersion</code> in the health check, Route 53 updates the health check with the new settings. </li> <li> If the value of <code>HealthCheckVersion</code> in the health check is greater, the health check was changed after you got the version number. Route 53 does not update the health check, and it returns a <code>HealthCheckVersionMismatch</code> error. </li> </ul><br/>HealthCheckId:  The ID for the health check for which you want detailed information. When you created the health check, <code>CreateHealthCheck</code> returned the ID in the response, in the <code>HealthCheckId</code> element.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the CloudWatch alarm that you want Amazon Route 53 health checkers to use to determine whether this health check is healthy. <note> Route 53 supports CloudWatch alarms with the following features: <ul> <li> Standard-resolution metrics. High-resolution metrics aren't supported. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/publishingMetrics.html#high-resolution-metrics">High-Resolution Metrics</a> in the <i>Amazon CloudWatch User Guide</i>. </li> <li> Statistics: Average, Minimum, Maximum, Sum, and SampleCount. Extended statistics aren't supported. </li> </ul> </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Region</i> For the CloudWatch alarm that you want Route 53 health checkers to use to determine whether this health check is healthy, the region that the alarm was created in. For the current list of CloudWatch regions, see <a href="https://docs.aws.amazon.com/general/latest/gr/cw_region.html">Amazon CloudWatch endpoints and quotas</a> in the <i>Amazon Web Services General Reference</i>.<br/>
        :return: HealthCheck:  A complex type that contains the response to an <code>UpdateHealthCheck</code> request.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudWatchAlarmConfiguration</i> A complex type that contains information about the CloudWatch alarm that Amazon Route 53 is monitoring for this health check.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CloudWatchAlarmConfiguration</b>: A complex type that contains information about the CloudWatch alarm that Amazon Route 53 is monitoring for this health check.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HealthCheckVersion</i> The version of the health check. You can optionally pass this value in a call to <code>UpdateHealthCheck</code> to prevent overwriting another change to the health check.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HealthCheckConfig</i> A complex type that contains detailed information about one health check.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>HealthCheckConfig</b>: A complex type that contains detailed information about one health check.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LinkedService</i> If the health check was created by another service, the service that created the health check. When a health check is created by another service, you can't edit or delete it using Amazon Route 53. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>LinkedService</b>: If the health check was created by another service, the service that created the health check. When a health check is created by another service, you can't edit or delete it using Amazon Route 53. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CallerReference</i> A unique string that you specified when you created the health check.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The identifier that Amazon Route 53 assigned to the health check when you created it. When you add or update a resource record set, you use this value to specify which health check to use. The value can be up to 64 characters long. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> If the health check or hosted zone was created by another service, an optional description that can be provided by the other service. When a resource is created by another service, you can't edit or delete it using Amazon Route 53. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServicePrincipal</i> If the health check or hosted zone was created by another service, the service that created the resource. When a resource is created by another service, you can't edit or delete it using Amazon Route 53. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Regions</i> A complex type that contains one <code>Region</code> element for each region from which you want Amazon Route 53 health checkers to check the specified endpoint. If you don't specify any regions, Route 53 health checkers automatically performs checks from all of the regions that are listed under <b>Valid Values</b>. If you update a health check to remove a region that has been performing health checks, Route 53 will briefly continue to perform checks from that region to ensure that some health checkers are always checking the endpoint (for example, if you replace three regions with four different regions). <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableSNI</i> Specify whether you want Amazon Route 53 to send the value of <code>FullyQualifiedDomainName</code> to the endpoint in the <code>client_hello</code> message during TLS negotiation. This allows the endpoint to respond to <code>HTTPS</code> health check requests with the applicable SSL/TLS certificate. Some endpoints require that <code>HTTPS</code> requests include the host name in the <code>client_hello</code> message. If you don't enable SNI, the status of the health check will be <code>SSL alert handshake_failure</code>. A health check can also have that status for other reasons. If SNI is enabled and you're still getting the error, check the SSL/TLS configuration on your endpoint and confirm that your certificate is valid. The SSL/TLS certificate on your endpoint includes a domain name in the <code>Common Name</code> field and possibly several more in the <code>Subject Alternative Names</code> field. One of the domain names in the certificate should match the value that you specify for <code>FullyQualifiedDomainName</code>. If the endpoint responds to the <code>client_hello</code> message with a certificate that does not include the domain name that you specified in <code>FullyQualifiedDomainName</code>, a health checker will retry the handshake. In the second attempt, the health checker will omit <code>FullyQualifiedDomainName</code> from the <code>client_hello</code> message.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ChildHealthChecks</i> (CALCULATED Health Checks Only) A complex type that contains one <code>ChildHealthCheck</code> element for each health check that you want to associate with a <code>CALCULATED</code> health check.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HealthThreshold</i> The number of child health checks that are associated with a <code>CALCULATED</code> health check that Amazon Route 53 must consider healthy for the <code>CALCULATED</code> health check to be considered healthy. To specify the child health checks that you want to associate with a <code>CALCULATED</code> health check, use the <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_UpdateHealthCheck.html#Route53-UpdateHealthCheck-request-ChildHealthChecks">ChildHealthChecks</a> element. Note the following: <ul> <li> If you specify a number greater than the number of child health checks, Route 53 always considers this health check to be unhealthy. </li> <li> If you specify <code>0</code>, Route 53 always considers this health check to be healthy. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Disabled</i> Stops Route 53 from performing health checks. When you disable a health check, here's what happens: <ul> <li>  <b>Health checks that check the health of endpoints:</b> Route 53 stops submitting requests to your application, server, or other resource. </li> <li>  <b>Calculated health checks:</b> Route 53 stops aggregating the status of the referenced health checks. </li> <li>  <b>Health checks that monitor CloudWatch alarms:</b> Route 53 stops monitoring the corresponding CloudWatch metrics. </li> </ul> After you disable a health check, Route 53 considers the status of the health check to always be healthy. If you configured DNS failover, Route 53 continues to route traffic to the corresponding resources. If you want to stop routing traffic to a resource, change the value of <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_UpdateHealthCheck.html#Route53-UpdateHealthCheck-request-Inverted">Inverted</a>.  Charges for a health check still apply when the health check is disabled. For more information, see <a href="http://aws.amazon.com/route53/pricing/">Amazon Route 53 Pricing</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Inverted</i> Specify whether you want Amazon Route 53 to invert the status of a health check, for example, to consider a health check unhealthy when it otherwise would be considered healthy.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MeasureLatency</i> Specify whether you want Amazon Route 53 to measure the latency between health checkers in multiple AWS regions and your endpoint, and to display CloudWatch latency graphs on the <b>Health Checks</b> page in the Route 53 console. <important> You can't change the value of <code>MeasureLatency</code> after you create a health check. </important><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FailureThreshold</i> The number of consecutive health checks that an endpoint must pass or fail for Amazon Route 53 to change the current status of the endpoint from unhealthy to healthy or vice versa. For more information, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-determining-health-of-endpoints.html">How Amazon Route 53 Determines Whether an Endpoint Is Healthy</a> in the <i>Amazon Route 53 Developer Guide</i>. If you don't specify a value for <code>FailureThreshold</code>, the default value is three health checks.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RequestInterval</i> The number of seconds between the time that Amazon Route 53 gets a response from your endpoint and the time that it sends the next health check request. Each Route 53 health checker makes requests at this interval. <important> You can't change the value of <code>RequestInterval</code> after you create a health check. </important> If you don't specify a value for <code>RequestInterval</code>, the default value is <code>30</code> seconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SearchString</i> If the value of Type is <code>HTTP_STR_MATCH</code> or <code>HTTPS_STR_MATCH</code>, the string that you want Amazon Route 53 to search for in the response body from the specified resource. If the string appears in the response body, Route 53 considers the resource healthy. Route 53 considers case when searching for <code>SearchString</code> in the response body. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FullyQualifiedDomainName</i> Amazon Route 53 behavior depends on whether you specify a value for <code>IPAddress</code>.  <b>If you specify a value for</b> <code>IPAddress</code>: Amazon Route 53 sends health check requests to the specified IPv4 or IPv6 address and passes the value of <code>FullyQualifiedDomainName</code> in the <code>Host</code> header for all health checks except TCP health checks. This is typically the fully qualified DNS name of the endpoint on which you want Route 53 to perform health checks. When Route 53 checks the health of an endpoint, here is how it constructs the <code>Host</code> header: <ul> <li> If you specify a value of <code>80</code> for <code>Port</code> and <code>HTTP</code> or <code>HTTP_STR_MATCH</code> for <code>Type</code>, Route 53 passes the value of <code>FullyQualifiedDomainName</code> to the endpoint in the Host header.  </li> <li> If you specify a value of <code>443</code> for <code>Port</code> and <code>HTTPS</code> or <code>HTTPS_STR_MATCH</code> for <code>Type</code>, Route 53 passes the value of <code>FullyQualifiedDomainName</code> to the endpoint in the <code>Host</code> header. </li> <li> If you specify another value for <code>Port</code> and any value except <code>TCP</code> for <code>Type</code>, Route 53 passes <code>FullyQualifiedDomainName:Port</code> to the endpoint in the <code>Host</code> header. </li> </ul> If you don't specify a value for <code>FullyQualifiedDomainName</code>, Route 53 substitutes the value of <code>IPAddress</code> in the <code>Host</code> header in each of the preceding cases.  <b>If you don't specify a value for <code>IPAddress</code> </b>: Route 53 sends a DNS request to the domain that you specify for <code>FullyQualifiedDomainName</code> at the interval that you specify for <code>RequestInterval</code>. Using an IPv4 address that DNS returns, Route 53 then checks the health of the endpoint. <note> If you don't specify a value for <code>IPAddress</code>, Route 53 uses only IPv4 to send health checks to the endpoint. If there's no resource record set with a type of A for the name that you specify for <code>FullyQualifiedDomainName</code>, the health check fails with a "DNS resolution failed" error. </note> If you want to check the health of weighted, latency, or failover resource record sets and you choose to specify the endpoint only by <code>FullyQualifiedDomainName</code>, we recommend that you create a separate health check for each endpoint. For example, create a health check for each HTTP server that is serving content for www.example.com. For the value of <code>FullyQualifiedDomainName</code>, specify the domain name of the server (such as us-east-2-www.example.com), not the name of the resource record sets (www.example.com). <important> In this configuration, if you create a health check for which the value of <code>FullyQualifiedDomainName</code> matches the name of the resource record sets and you then associate the health check with those resource record sets, health check results will be unpredictable. </important> In addition, if the value that you specify for <code>Type</code> is <code>HTTP</code>, <code>HTTPS</code>, <code>HTTP_STR_MATCH</code>, or <code>HTTPS_STR_MATCH</code>, Route 53 passes the value of <code>FullyQualifiedDomainName</code> in the <code>Host</code> header, as it does when you specify a value for <code>IPAddress</code>. If the value of <code>Type</code> is <code>TCP</code>, Route 53 doesn't pass a <code>Host</code> header.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourcePath</i> The path, if any, that you want Amazon Route 53 to request when performing health checks. The path can be any value for which your endpoint will return an HTTP status code of 2xx or 3xx when the endpoint is healthy, for example, the file /docs/route53-health-check.html. You can also include query string parameters, for example, <code>/welcome.html?language=jp&amp;login=y</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of health check that you want to create, which indicates how Amazon Route 53 determines whether an endpoint is healthy. <important> You can't change the value of <code>Type</code> after you create a health check. </important> You can create the following types of health checks: <ul> <li>  <b>HTTP</b>: Route 53 tries to establish a TCP connection. If successful, Route 53 submits an HTTP request and waits for an HTTP status code of 200 or greater and less than 400. </li> <li>  <b>HTTPS</b>: Route 53 tries to establish a TCP connection. If successful, Route 53 submits an HTTPS request and waits for an HTTP status code of 200 or greater and less than 400. <important> If you specify <code>HTTPS</code> for the value of <code>Type</code>, the endpoint must support TLS v1.0 or later. </important> </li> <li>  <b>HTTP_STR_MATCH</b>: Route 53 tries to establish a TCP connection. If successful, Route 53 submits an HTTP request and searches the first 5,120 bytes of the response body for the string that you specify in <code>SearchString</code>. </li> <li>  <b>HTTPS_STR_MATCH</b>: Route 53 tries to establish a TCP connection. If successful, Route 53 submits an <code>HTTPS</code> request and searches the first 5,120 bytes of the response body for the string that you specify in <code>SearchString</code>. </li> <li>  <b>TCP</b>: Route 53 tries to establish a TCP connection. </li> <li>  <b>CLOUDWATCH_METRIC</b>: The health check is associated with a CloudWatch alarm. If the state of the alarm is <code>OK</code>, the health check is considered healthy. If the state is <code>ALARM</code>, the health check is considered unhealthy. If CloudWatch doesn't have sufficient data to determine whether the state is <code>OK</code> or <code>ALARM</code>, the health check status depends on the setting for <code>InsufficientDataHealthStatus</code>: <code>Healthy</code>, <code>Unhealthy</code>, or <code>LastKnownStatus</code>.  </li> <li>  <b>CALCULATED</b>: For health checks that monitor the status of other health checks, Route 53 adds up the number of health checks that Route 53 health checkers consider to be healthy and compares that number with the value of <code>HealthThreshold</code>.  </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-determining-health-of-endpoints.html">How Route 53 Determines Whether an Endpoint Is Healthy</a> in the <i>Amazon Route 53 Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Port</i> The port on the endpoint that you want Amazon Route 53 to perform health checks on. <note> Don't specify a value for <code>Port</code> when you specify a value for <code>Type</code> of <code>CLOUDWATCH_METRIC</code> or <code>CALCULATED</code>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IPAddress</i> The IPv4 or IPv6 IP address of the endpoint that you want Amazon Route 53 to perform health checks on. If you don't specify a value for <code>IPAddress</code>, Route 53 sends a DNS request to resolve the domain name that you specify in <code>FullyQualifiedDomainName</code> at the interval that you specify in <code>RequestInterval</code>. Using an IP address returned by DNS, Route 53 then checks the health of the endpoint. Use one of the following formats for the value of <code>IPAddress</code>:  <ul> <li>  <b>IPv4 address</b>: four values between 0 and 255, separated by periods (.), for example, <code>192.0.2.44</code>. </li> <li>  <b>IPv6 address</b>: eight groups of four hexadecimal values, separated by colons (:), for example, <code>2001:0db8:85a3:0000:0000:abcd:0001:2345</code>. You can also shorten IPv6 addresses as described in RFC 5952, for example, <code>2001:db8:85a3::abcd:1:2345</code>. </li> </ul> If the endpoint is an EC2 instance, we recommend that you create an Elastic IP address, associate it with your EC2 instance, and specify the Elastic IP address for <code>IPAddress</code>. This ensures that the IP address of your instance will never change. For more information, see <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_UpdateHealthCheck.html#Route53-UpdateHealthCheck-request-FullyQualifiedDomainName">FullyQualifiedDomainName</a>.  Constraints: Route 53 can't check the health of endpoints for which the IP address is in local, private, non-routable, or multicast ranges. For more information about IP addresses for which you can't create health checks, see the following documents: <ul> <li>  <a href="https://tools.ietf.org/html/rfc5735">RFC 5735, Special Use IPv4 Addresses</a>  </li> <li>  <a href="https://tools.ietf.org/html/rfc6598">RFC 6598, IANA-Reserved IPv4 Prefix for Shared Address Space</a>  </li> <li>  <a href="https://tools.ietf.org/html/rfc5156">RFC 5156, Special-Use IPv6 Addresses</a>  </li> </ul> When the value of <code>Type</code> is <code>CALCULATED</code> or <code>CLOUDWATCH_METRIC</code>, omit <code>IPAddress</code>.<br/>A complex type that identifies the CloudWatch alarm that you want Amazon Route 53 health checkers to use to determine whether the specified health check is healthy.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AlarmIdentifier</b>: A complex type that identifies the CloudWatch alarm that you want Amazon Route 53 health checkers to use to determine whether the specified health check is healthy.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Dimensions</i> For the metric that the CloudWatch alarm is associated with, a complex type that contains information about the dimensions for the metric. For information, see <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/CW_Support_For_AWS.html">Amazon CloudWatch Namespaces, Dimensions, and Metrics Reference</a> in the <i>Amazon CloudWatch User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Statistic</i> For the metric that the CloudWatch alarm is associated with, the statistic that is applied to the metric.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Namespace</i> The namespace of the metric that the alarm is associated with. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/CW_Support_For_AWS.html">Amazon CloudWatch Namespaces, Dimensions, and Metrics Reference</a> in the <i>Amazon CloudWatch User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MetricName</i> The name of the CloudWatch metric that the alarm is associated with.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Period</i> For the metric that the CloudWatch alarm is associated with, the duration of one evaluation period in seconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ComparisonOperator</i> For the metric that the CloudWatch alarm is associated with, the arithmetic operation that is used for the comparison.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Threshold</i> For the metric that the CloudWatch alarm is associated with, the value the metric is compared with.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EvaluationPeriods</i> For the metric that the CloudWatch alarm is associated with, the number of periods that the metric is compared to the threshold.<br/>        """
        pass

    def update_hosted_zone_comment(self, Id: str, Comment: str=None) -> UpdateHostedZoneCommentResponse:
        r"""Updates the comment for a specified hosted zone.

        :param self:
        :param Comment:  The new comment for the hosted zone. If you don't specify a value for <code>Comment</code>, Amazon Route 53 deletes the existing value of the <code>Comment</code> element, if any.<br/>Id:  The ID for the hosted zone that you want to update the comment for.<br/>
        :return: HostedZone:  A complex type that contains the response to the <code>UpdateHostedZoneComment</code> request.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LinkedService</i> If the hosted zone was created by another service, the service that created the hosted zone. When a hosted zone is created by another service, you can't edit or delete it using Route 53. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>LinkedService</b>: If the hosted zone was created by another service, the service that created the hosted zone. When a hosted zone is created by another service, you can't edit or delete it using Route 53. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceRecordSetCount</i> The number of resource record sets in the hosted zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Config</i> A complex type that includes the <code>Comment</code> and <code>PrivateZone</code> elements. If you omitted the <code>HostedZoneConfig</code> and <code>Comment</code> elements from the request, the <code>Config</code> and <code>Comment</code> elements don't appear in the response.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Config</b>: A complex type that includes the <code>Comment</code> and <code>PrivateZone</code> elements. If you omitted the <code>HostedZoneConfig</code> and <code>Comment</code> elements from the request, the <code>Config</code> and <code>Comment</code> elements don't appear in the response.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CallerReference</i> The value that you specified for <code>CallerReference</code> when you created the hosted zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the domain. For public hosted zones, this is the name that you have registered with your DNS registrar. For information about how to specify characters other than <code>a-z</code>, <code>0-9</code>, and <code>-</code> (hyphen) and how to specify internationalized domain names, see <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_CreateHostedZone.html">CreateHostedZone</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID that Amazon Route 53 assigned to the hosted zone when you created it.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PrivateZone</i> A value that indicates whether this is a private hosted zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Comment</i> Any comments that you want to include about the hosted zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> If the health check or hosted zone was created by another service, an optional description that can be provided by the other service. When a resource is created by another service, you can't edit or delete it using Amazon Route 53. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServicePrincipal</i> If the health check or hosted zone was created by another service, the service that created the resource. When a resource is created by another service, you can't edit or delete it using Amazon Route 53. <br/>        """
        pass

    def update_traffic_policy_comment(self, Comment: str, Version: int, Id: str) -> UpdateTrafficPolicyCommentResponse:
        r"""Updates the comment for a specified traffic policy version.

        :param self:
        :param Comment:  The new comment for the specified traffic policy and version.<br/>Version:  The value of <code>Version</code> for the traffic policy that you want to update the comment for.<br/>Id:  The value of <code>Id</code> for the traffic policy that you want to update the comment for.<br/>
        :return: TrafficPolicy:  A complex type that contains settings for the specified traffic policy.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Comment</i> The comment that you specify in the <code>CreateTrafficPolicy</code> request, if any.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Document</i> The definition of a traffic policy in JSON format. You specify the JSON document to use for a new traffic policy in the <code>CreateTrafficPolicy</code> request. For more information about the JSON format, see <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/api-policies-traffic-policy-document-format.html">Traffic Policy Document Format</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The DNS type of the resource record sets that Amazon Route 53 creates when you use a traffic policy to create a traffic policy instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name that you specified when you created the traffic policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The version number that Amazon Route 53 assigns to a traffic policy. For a new traffic policy, the value of <code>Version</code> is always 1.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID that Amazon Route 53 assigned to a traffic policy when you created it.<br/>        """
        pass

    def update_traffic_policy_instance(self, TrafficPolicyVersion: int, TrafficPolicyId: str, TTL: TTL, Id: str) -> UpdateTrafficPolicyInstanceResponse:
        r"""Updates the resource record sets in a specified hosted zone that were created based on the settings in a specified traffic policy version. When you update a traffic policy instance, Amazon Route 53 continues to respond to DNS queries for the root resource record set name (such as example.com) while it replaces one group of resource record sets with another. Route 53 performs the following operations: <ol> <li> Route 53 creates a new group of resource record sets based on the specified traffic policy. This is true regardless of how significant the differences are between the existing resource record sets and the new resource record sets.  </li> <li> When all of the new resource record sets have been created, Route 53 starts to respond to DNS queries for the root resource record set name (such as example.com) by using the new resource record sets. </li> <li> Route 53 deletes the old group of resource record sets that are associated with the root resource record set name. </li> </ol>

        :param self:
        :param TrafficPolicyVersion:  The version of the traffic policy that you want Amazon Route 53 to use to update resource record sets for the specified traffic policy instance.<br/>TrafficPolicyId:  The ID of the traffic policy that you want Amazon Route 53 to use to update resource record sets for the specified traffic policy instance.<br/>TTL:  The TTL that you want Amazon Route 53 to assign to all of the updated resource record sets.<br/>Id:  The ID of the traffic policy instance that you want to update.<br/>
        :return: TrafficPolicyInstance:  A complex type that contains settings for the updated traffic policy instance.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TrafficPolicyType</i> The DNS type that Amazon Route 53 assigned to all of the resource record sets that it created for this traffic policy instance. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TrafficPolicyVersion</i> The version of the traffic policy that Amazon Route 53 used to create resource record sets in the specified hosted zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TrafficPolicyId</i> The ID of the traffic policy that Amazon Route 53 used to create resource record sets in the specified hosted zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> If <code>State</code> is <code>Failed</code>, an explanation of the reason for the failure. If <code>State</code> is another value, <code>Message</code> is empty.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The value of <code>State</code> is one of the following values: <dl> <dt>Applied</dt> <dd> Amazon Route 53 has finished creating resource record sets, and changes have propagated to all Route 53 edge locations. </dd> <dt>Creating</dt> <dd> Route 53 is creating the resource record sets. Use <code>GetTrafficPolicyInstance</code> to confirm that the <code>CreateTrafficPolicyInstance</code> request completed successfully. </dd> <dt>Failed</dt> <dd> Route 53 wasn't able to create or update the resource record sets. When the value of <code>State</code> is <code>Failed</code>, see <code>Message</code> for an explanation of what caused the request to fail. </dd> </dl><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TTL</i> The TTL that Amazon Route 53 assigned to all of the resource record sets that it created in the specified hosted zone.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The DNS name, such as www.example.com, for which Amazon Route 53 responds to queries by using the resource record sets that are associated with this traffic policy instance. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HostedZoneId</i> The ID of the hosted zone that Amazon Route 53 created resource record sets in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID that Amazon Route 53 assigned to the new traffic policy instance.<br/>        """
        pass





class Route53Domains(BaseClient):
    r"""Amazon Route 53 API actions let you register domain names and perform related operations."""


    class ListDomainsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_domains` for valid parameters"""
            pass
    class ListOperationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_operations` for valid parameters"""
            pass
    class ViewBillingPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `view_billing` for valid parameters"""
            pass


    class AcceptDomainTransferFromAnotherAwsAccountRequest(Mapping):
        pass
    
    class AcceptDomainTransferFromAnotherAwsAccountResponse(Mapping):
        pass
    
    class CancelDomainTransferToAnotherAwsAccountRequest(Mapping):
        pass
    
    class CancelDomainTransferToAnotherAwsAccountResponse(Mapping):
        pass
    
    class CheckDomainAvailabilityRequest(Mapping):
        pass
    
    class CheckDomainAvailabilityResponse(Mapping):
        pass
    
    class CheckDomainTransferabilityRequest(Mapping):
        pass
    
    class CheckDomainTransferabilityResponse(Mapping):
        pass
    
    class DeleteTagsForDomainRequest(Mapping):
        pass
    
    class DeleteTagsForDomainResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class DisableDomainAutoRenewRequest(Mapping):
        pass
    
    class DisableDomainAutoRenewResponse(Mapping):
        pass
    
    class DisableDomainTransferLockRequest(Mapping):
        pass
    
    class DisableDomainTransferLockResponse(Mapping):
        pass
    
    class EnableDomainAutoRenewRequest(Mapping):
        pass
    
    class EnableDomainAutoRenewResponse(Mapping):
        pass
    
    class EnableDomainTransferLockRequest(Mapping):
        pass
    
    class EnableDomainTransferLockResponse(Mapping):
        pass
    
    class GetContactReachabilityStatusRequest(Mapping):
        pass
    
    class GetContactReachabilityStatusResponse(Mapping):
        pass
    
    class GetDomainDetailRequest(Mapping):
        pass
    
    class GetDomainDetailResponse(Mapping):
        pass
    
    class GetDomainSuggestionsRequest(Mapping):
        pass
    
    class GetDomainSuggestionsResponse(Mapping):
        pass
    
    class Boolean(object):
        pass
    
    class GetOperationDetailRequest(Mapping):
        pass
    
    class GetOperationDetailResponse(Mapping):
        pass
    
    class ListDomainsRequest(Mapping):
        pass
    
    class ListDomainsResponse(Mapping):
        pass
    
    class ListOperationsRequest(Mapping):
        pass
    
    class ListOperationsResponse(Mapping):
        pass
    
    class Timestamp(object):
        pass
    
    class ListTagsForDomainRequest(Mapping):
        pass
    
    class ListTagsForDomainResponse(Mapping):
        pass
    
    class RegisterDomainRequest(Mapping):
        pass
    
    class RegisterDomainResponse(Mapping):
        pass
    
    class ContactDetail(Mapping):
        pass
    
    class RejectDomainTransferFromAnotherAwsAccountRequest(Mapping):
        pass
    
    class RejectDomainTransferFromAnotherAwsAccountResponse(Mapping):
        pass
    
    class RenewDomainRequest(Mapping):
        pass
    
    class RenewDomainResponse(Mapping):
        pass
    
    class ResendContactReachabilityEmailRequest(Mapping):
        pass
    
    class ResendContactReachabilityEmailResponse(Mapping):
        pass
    
    class RetrieveDomainAuthCodeRequest(Mapping):
        pass
    
    class RetrieveDomainAuthCodeResponse(Mapping):
        pass
    
    class TransferDomainRequest(Mapping):
        pass
    
    class TransferDomainResponse(Mapping):
        pass
    
    class Nameserver(Mapping):
        pass
    
    class TransferDomainToAnotherAwsAccountRequest(Mapping):
        pass
    
    class TransferDomainToAnotherAwsAccountResponse(Mapping):
        pass
    
    class UpdateDomainContactRequest(Mapping):
        pass
    
    class UpdateDomainContactResponse(Mapping):
        pass
    
    class UpdateDomainContactPrivacyRequest(Mapping):
        pass
    
    class UpdateDomainContactPrivacyResponse(Mapping):
        pass
    
    class UpdateDomainNameserversRequest(Mapping):
        pass
    
    class UpdateDomainNameserversResponse(Mapping):
        pass
    
    class UpdateTagsForDomainRequest(Mapping):
        pass
    
    class UpdateTagsForDomainResponse(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class ViewBillingRequest(Mapping):
        pass
    
    class ViewBillingResponse(Mapping):
        pass
    
    def accept_domain_transfer_from_another_aws_account(self, Password: str, DomainName: str) -> AcceptDomainTransferFromAnotherAwsAccountResponse:
        r"""Accepts the transfer of a domain from another AWS account to the current AWS account. You initiate a transfer between AWS accounts using <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_TransferDomainToAnotherAwsAccount.html">TransferDomainToAnotherAwsAccount</a>.  Use either <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_ListOperations.html">ListOperations</a> or <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_GetOperationDetail.html">GetOperationDetail</a> to determine whether the operation succeeded. <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_GetOperationDetail.html">GetOperationDetail</a> provides additional information, for example, <code>Domain Transfer from Aws Account 111122223333 has been cancelled</code>. 

        :param self:
        :param Password:  The password that was returned by the <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_TransferDomainToAnotherAwsAccount.html">TransferDomainToAnotherAwsAccount</a> request. <br/>DomainName:  The name of the domain that was specified when another AWS account submitted a <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_TransferDomainToAnotherAwsAccount.html">TransferDomainToAnotherAwsAccount</a> request. <br/>
        :return: OperationId:  Identifier for tracking the progress of the request. To query the operation status, use <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_GetOperationDetail.html">GetOperationDetail</a>.<br/>        """
        pass

    def cancel_domain_transfer_to_another_aws_account(self, DomainName: str) -> CancelDomainTransferToAnotherAwsAccountResponse:
        r"""Cancels the transfer of a domain from the current AWS account to another AWS account. You initiate a transfer between AWS accounts using <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_TransferDomainToAnotherAwsAccount.html">TransferDomainToAnotherAwsAccount</a>.  <important> You must cancel the transfer before the other AWS account accepts the transfer using <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_AcceptDomainTransferFromAnotherAwsAccount.html">AcceptDomainTransferFromAnotherAwsAccount</a>. </important> Use either <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_ListOperations.html">ListOperations</a> or <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_GetOperationDetail.html">GetOperationDetail</a> to determine whether the operation succeeded. <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_GetOperationDetail.html">GetOperationDetail</a> provides additional information, for example, <code>Domain Transfer from Aws Account 111122223333 has been cancelled</code>. 

        :param self:
        :param DomainName:  The name of the domain for which you want to cancel the transfer to another AWS account.<br/>
        :return: OperationId:  The identifier that <code>TransferDomainToAnotherAwsAccount</code> returned to track the progress of the request. Because the transfer request was canceled, the value is no longer valid, and you can't use <code>GetOperationDetail</code> to query the operation status.<br/>        """
        pass

    def check_domain_availability(self, DomainName: str, IdnLangCode: str=None) -> CheckDomainAvailabilityResponse:
        r"""This operation checks the availability of one domain name. Note that if the availability status of a domain is pending, you must submit another request to determine the availability of the domain name.

        :param self:
        :param IdnLangCode:  Reserved for future use.<br/>DomainName:  The name of the domain that you want to get availability for. The top-level domain (TLD), such as .com, must be a TLD that Route 53 supports. For a list of supported TLDs, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/registrar-tld-list.html">Domains that You Can Register with Amazon Route 53</a> in the <i>Amazon Route 53 Developer Guide</i>. The domain name can contain only the following characters: <ul> <li> Letters a through z. Domain names are not case sensitive. </li> <li> Numbers 0 through 9. </li> <li> Hyphen (-). You can't specify a hyphen at the beginning or end of a label.  </li> <li> Period (.) to separate the labels in the name, such as the <code>.</code> in <code>example.com</code>. </li> </ul> Internationalized domain names are not supported for some top-level domains. To determine whether the TLD that you want to use supports internationalized domain names, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/registrar-tld-list.html">Domains that You Can Register with Amazon Route 53</a>. For more information, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DomainNameFormat.html#domain-name-format-idns">Formatting Internationalized Domain Names</a>. <br/>
        :return: Availability:  Whether the domain name is available for registering. <note> You can register only domains designated as <code>AVAILABLE</code>. </note> Valid values: <dl> <dt>AVAILABLE</dt> <dd> The domain name is available. </dd> <dt>AVAILABLE_RESERVED</dt> <dd> The domain name is reserved under specific conditions. </dd> <dt>AVAILABLE_PREORDER</dt> <dd> The domain name is available and can be preordered. </dd> <dt>DONT_KNOW</dt> <dd> The TLD registry didn't reply with a definitive answer about whether the domain name is available. Route 53 can return this response for a variety of reasons, for example, the registry is performing maintenance. Try again later. </dd> <dt>PENDING</dt> <dd> The TLD registry didn't return a response in the expected amount of time. When the response is delayed, it usually takes just a few extra seconds. You can resubmit the request immediately. </dd> <dt>RESERVED</dt> <dd> The domain name has been reserved for another person or organization. </dd> <dt>UNAVAILABLE</dt> <dd> The domain name is not available. </dd> <dt>UNAVAILABLE_PREMIUM</dt> <dd> The domain name is not available. </dd> <dt>UNAVAILABLE_RESTRICTED</dt> <dd> The domain name is forbidden. </dd> </dl><br/>        """
        pass

    def check_domain_transferability(self, DomainName: str, AuthCode: str=None) -> CheckDomainTransferabilityResponse:
        r"""Checks whether a domain name can be transferred to Amazon Route 53. 

        :param self:
        :param AuthCode:  If the registrar for the top-level domain (TLD) requires an authorization code to transfer the domain, the code that you got from the current registrar for the domain.<br/>DomainName:  The name of the domain that you want to transfer to Route 53. The top-level domain (TLD), such as .com, must be a TLD that Route 53 supports. For a list of supported TLDs, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/registrar-tld-list.html">Domains that You Can Register with Amazon Route 53</a> in the <i>Amazon Route 53 Developer Guide</i>. The domain name can contain only the following characters: <ul> <li> Letters a through z. Domain names are not case sensitive. </li> <li> Numbers 0 through 9. </li> <li> Hyphen (-). You can't specify a hyphen at the beginning or end of a label.  </li> <li> Period (.) to separate the labels in the name, such as the <code>.</code> in <code>example.com</code>. </li> </ul><br/>
        :return: Transferability:  A complex type that contains information about whether the specified domain can be transferred to Route 53.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Transferable</i> Whether the domain name can be transferred to Route 53. <note> You can transfer only domains that have a value of <code>TRANSFERABLE</code> for <code>Transferable</code>. </note> Valid values: <dl> <dt>TRANSFERABLE</dt> <dd> The domain name can be transferred to Route 53. </dd> <dt>UNTRANSFERRABLE</dt> <dd> The domain name can't be transferred to Route 53. </dd> <dt>DONT_KNOW</dt> <dd> Reserved for future use. </dd> </dl><br/>        """
        pass

    def delete_tags_for_domain(self, TagsToDelete: List[TagKey], DomainName: str) -> DeleteTagsForDomainResponse:
        r"""This operation deletes the specified tags for a domain. All tag operations are eventually consistent; subsequent operations might not immediately represent all issued operations.

        :param self:
        :param TagsToDelete:  A list of tag keys to delete.<br/>DomainName:  The domain for which you want to delete one or more tags.<br/>
        :return:         """
        pass

    def disable_domain_auto_renew(self, DomainName: str) -> DisableDomainAutoRenewResponse:
        r"""This operation disables automatic renewal of domain registration for the specified domain.

        :param self:
        :param DomainName:  The name of the domain that you want to disable automatic renewal for.<br/>
        :return:         """
        pass

    def disable_domain_transfer_lock(self, DomainName: str) -> DisableDomainTransferLockResponse:
        r"""This operation removes the transfer lock on the domain (specifically the <code>clientTransferProhibited</code> status) to allow domain transfers. We recommend you refrain from performing this action unless you intend to transfer the domain to a different registrar. Successful submission returns an operation ID that you can use to track the progress and completion of the action. If the request is not completed successfully, the domain registrant will be notified by email.

        :param self:
        :param DomainName:  The name of the domain that you want to remove the transfer lock for.<br/>
        :return: OperationId:  Identifier for tracking the progress of the request. To query the operation status, use <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_GetOperationDetail.html">GetOperationDetail</a>.<br/>        """
        pass

    def enable_domain_auto_renew(self, DomainName: str) -> EnableDomainAutoRenewResponse:
        r"""This operation configures Amazon Route 53 to automatically renew the specified domain before the domain registration expires. The cost of renewing your domain registration is billed to your AWS account. The period during which you can renew a domain name varies by TLD. For a list of TLDs and their renewal policies, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/registrar-tld-list.html">Domains That You Can Register with Amazon Route 53</a> in the <i>Amazon Route 53 Developer Guide</i>. Route 53 requires that you renew before the end of the renewal period so we can complete processing before the deadline.

        :param self:
        :param DomainName:  The name of the domain that you want to enable automatic renewal for.<br/>
        :return:         """
        pass

    def enable_domain_transfer_lock(self, DomainName: str) -> EnableDomainTransferLockResponse:
        r"""This operation sets the transfer lock on the domain (specifically the <code>clientTransferProhibited</code> status) to prevent domain transfers. Successful submission returns an operation ID that you can use to track the progress and completion of the action. If the request is not completed successfully, the domain registrant will be notified by email.

        :param self:
        :param DomainName:  The name of the domain that you want to set the transfer lock for.<br/>
        :return: OperationId:  Identifier for tracking the progress of the request. To use this ID to query the operation status, use GetOperationDetail.<br/>        """
        pass

    def get_contact_reachability_status(self, domainName: str=None) -> GetContactReachabilityStatusResponse:
        r"""For operations that require confirmation that the email address for the registrant contact is valid, such as registering a new domain, this operation returns information about whether the registrant contact has responded. If you want us to resend the email, use the <code>ResendContactReachabilityEmail</code> operation.

        :param self:
        :param domainName:  The name of the domain for which you want to know whether the registrant contact has confirmed that the email address is valid.<br/>
        :return: status:  Whether the registrant contact has responded. Values include the following: <dl> <dt>PENDING</dt> <dd> We sent the confirmation email and haven't received a response yet. </dd> <dt>DONE</dt> <dd> We sent the email and got confirmation from the registrant contact. </dd> <dt>EXPIRED</dt> <dd> The time limit expired before the registrant contact responded. </dd> </dl><br/>domainName:  The domain name for which you requested the reachability status.<br/>        """
        pass

    def get_domain_detail(self, DomainName: str) -> GetDomainDetailResponse:
        r"""This operation returns detailed information about a specified domain that is associated with the current AWS account. Contact information for the domain is also returned as part of the output.

        :param self:
        :param DomainName:  The name of the domain that you want to get detailed information about.<br/>
        :return: StatusList:  An array of domain name status codes, also known as Extensible Provisioning Protocol (EPP) status codes. ICANN, the organization that maintains a central database of domain names, has developed a set of domain name status codes that tell you the status of a variety of operations on a domain name, for example, registering a domain name, transferring a domain name to another registrar, renewing the registration for a domain name, and so on. All registrars use this same set of status codes. For a current list of domain name status codes and an explanation of what each code means, go to the <a href="https://www.icann.org/">ICANN website</a> and search for <code>epp status codes</code>. (Search on the ICANN website; web searches sometimes return an old version of the document.)<br/>DnsSec:  Reserved for future use.<br/>Reseller:  Reseller of the domain. Domains registered or transferred using Route 53 domains will have <code>"Amazon"</code> as the reseller. <br/>ExpirationDate:  The date when the registration for the domain is set to expire. The date and time is in Unix time format and Coordinated Universal time (UTC).<br/>UpdatedDate:  The last updated date of the domain as found in the response to a WHOIS query. The date and time is in Unix time format and Coordinated Universal time (UTC).<br/>CreationDate:  The date when the domain was created as found in the response to a WHOIS query. The date and time is in Unix time format and Coordinated Universal time (UTC).<br/>RegistryDomainId:  Reserved for future use.<br/>AbuseContactPhone:  Phone number for reporting abuse.<br/>AbuseContactEmail:  Email address to contact to report incorrect contact information for a domain, to report that the domain is being used to send spam, to report that someone is cybersquatting on a domain name, or report some other type of abuse.<br/>RegistrarUrl:  Web address of the registrar.<br/>WhoIsServer:  The fully qualified name of the WHOIS server that can answer the WHOIS query for the domain.<br/>RegistrarName:  Name of the registrar of the domain as identified in the registry. Domains with a .com, .net, or .org TLD are registered by Amazon Registrar. All other domains are registered by our registrar associate, Gandi. The value for domains that are registered by Gandi is <code>"GANDI SAS"</code>. <br/>TechPrivacy:  Specifies whether contact information is concealed from WHOIS queries. If the value is <code>true</code>, WHOIS ("who is") queries return contact information either for Amazon Registrar (for .com, .net, and .org domains) or for our registrar associate, Gandi (for all other TLDs). If the value is <code>false</code>, WHOIS queries return the information that you entered for the technical contact.<br/>RegistrantPrivacy:  Specifies whether contact information is concealed from WHOIS queries. If the value is <code>true</code>, WHOIS ("who is") queries return contact information either for Amazon Registrar (for .com, .net, and .org domains) or for our registrar associate, Gandi (for all other TLDs). If the value is <code>false</code>, WHOIS queries return the information that you entered for the registrant contact (domain owner).<br/>AdminPrivacy:  Specifies whether contact information is concealed from WHOIS queries. If the value is <code>true</code>, WHOIS ("who is") queries return contact information either for Amazon Registrar (for .com, .net, and .org domains) or for our registrar associate, Gandi (for all other TLDs). If the value is <code>false</code>, WHOIS queries return the information that you entered for the admin contact.<br/>TechContact:  Provides details about the domain technical contact.:<br/>RegistrantContact:  Provides details about the domain registrant.:<br/>AdminContact:  Provides details about the domain administrative contact.:<br/>AutoRenew:  Specifies whether the domain registration is set to renew automatically.<br/>Nameservers:  The name of the domain.<br/>DomainName:  The name of a domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExtraParams</i> A list of name-value pairs for parameters required by certain top-level domains.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Fax</i> Fax number of the contact. Constraints: Phone number must be specified in the format "+[country dialing code].[number including any area code]". For example, a US phone number might appear as <code>"+1.1234567890"</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Email</i> Email address of the contact.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PhoneNumber</i> The phone number of the contact. Constraints: Phone number must be specified in the format "+[country dialing code].[number including any area code&gt;]". For example, a US phone number might appear as <code>"+1.1234567890"</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ZipCode</i> The zip or postal code of the contact's address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CountryCode</i> Code for the country of the contact's address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state or province of the contact's city.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>City</i> The city of the contact's address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AddressLine2</i> Second line of contact's address, if any.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AddressLine1</i> First line of the contact's address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OrganizationName</i> Name of the organization for contact types other than <code>PERSON</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ContactType</i> Indicates whether the contact is a person, company, association, or public organization. Note the following: <ul> <li> If you specify a value other than <code>PERSON</code>, you must also specify a value for <code>OrganizationName</code>. </li> <li> For some TLDs, the privacy protection available depends on the value that you specify for <code>Contact Type</code>. For the privacy protection settings for your TLD, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/registrar-tld-list.html">Domains that You Can Register with Amazon Route 53</a> in the <i>Amazon Route 53 Developer Guide</i>  </li> <li> For .es domains, if you specify <code>PERSON</code>, you must specify <code>INDIVIDUAL</code> for the value of <code>ES_LEGAL_FORM</code>. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastName</i> Last name of contact.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FirstName</i> First name of contact.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExtraParams</i> A list of name-value pairs for parameters required by certain top-level domains.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Fax</i> Fax number of the contact. Constraints: Phone number must be specified in the format "+[country dialing code].[number including any area code]". For example, a US phone number might appear as <code>"+1.1234567890"</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Email</i> Email address of the contact.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PhoneNumber</i> The phone number of the contact. Constraints: Phone number must be specified in the format "+[country dialing code].[number including any area code&gt;]". For example, a US phone number might appear as <code>"+1.1234567890"</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ZipCode</i> The zip or postal code of the contact's address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CountryCode</i> Code for the country of the contact's address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state or province of the contact's city.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>City</i> The city of the contact's address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AddressLine2</i> Second line of contact's address, if any.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AddressLine1</i> First line of the contact's address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OrganizationName</i> Name of the organization for contact types other than <code>PERSON</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ContactType</i> Indicates whether the contact is a person, company, association, or public organization. Note the following: <ul> <li> If you specify a value other than <code>PERSON</code>, you must also specify a value for <code>OrganizationName</code>. </li> <li> For some TLDs, the privacy protection available depends on the value that you specify for <code>Contact Type</code>. For the privacy protection settings for your TLD, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/registrar-tld-list.html">Domains that You Can Register with Amazon Route 53</a> in the <i>Amazon Route 53 Developer Guide</i>  </li> <li> For .es domains, if you specify <code>PERSON</code>, you must specify <code>INDIVIDUAL</code> for the value of <code>ES_LEGAL_FORM</code>. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastName</i> Last name of contact.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FirstName</i> First name of contact.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExtraParams</i> A list of name-value pairs for parameters required by certain top-level domains.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Fax</i> Fax number of the contact. Constraints: Phone number must be specified in the format "+[country dialing code].[number including any area code]". For example, a US phone number might appear as <code>"+1.1234567890"</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Email</i> Email address of the contact.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PhoneNumber</i> The phone number of the contact. Constraints: Phone number must be specified in the format "+[country dialing code].[number including any area code&gt;]". For example, a US phone number might appear as <code>"+1.1234567890"</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ZipCode</i> The zip or postal code of the contact's address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CountryCode</i> Code for the country of the contact's address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state or province of the contact's city.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>City</i> The city of the contact's address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AddressLine2</i> Second line of contact's address, if any.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AddressLine1</i> First line of the contact's address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OrganizationName</i> Name of the organization for contact types other than <code>PERSON</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ContactType</i> Indicates whether the contact is a person, company, association, or public organization. Note the following: <ul> <li> If you specify a value other than <code>PERSON</code>, you must also specify a value for <code>OrganizationName</code>. </li> <li> For some TLDs, the privacy protection available depends on the value that you specify for <code>Contact Type</code>. For the privacy protection settings for your TLD, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/registrar-tld-list.html">Domains that You Can Register with Amazon Route 53</a> in the <i>Amazon Route 53 Developer Guide</i>  </li> <li> For .es domains, if you specify <code>PERSON</code>, you must specify <code>INDIVIDUAL</code> for the value of <code>ES_LEGAL_FORM</code>. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastName</i> Last name of contact.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FirstName</i> First name of contact.<br/>        """
        pass

    def get_domain_suggestions(self, OnlyAvailable: Boolean, SuggestionCount: int, DomainName: str) -> GetDomainSuggestionsResponse:
        r"""The GetDomainSuggestions operation returns a list of suggested domain names.

        :param self:
        :param OnlyAvailable:  If <code>OnlyAvailable</code> is <code>true</code>, Route 53 returns only domain names that are available. If <code>OnlyAvailable</code> is <code>false</code>, Route 53 returns domain names without checking whether they're available to be registered. To determine whether the domain is available, you can call <code>checkDomainAvailability</code> for each suggestion.<br/>SuggestionCount:  The number of suggested domain names that you want Route 53 to return. Specify a value between 1 and 50.<br/>DomainName:  A domain name that you want to use as the basis for a list of possible domain names. The top-level domain (TLD), such as .com, must be a TLD that Route 53 supports. For a list of supported TLDs, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/registrar-tld-list.html">Domains that You Can Register with Amazon Route 53</a> in the <i>Amazon Route 53 Developer Guide</i>. The domain name can contain only the following characters: <ul> <li> Letters a through z. Domain names are not case sensitive. </li> <li> Numbers 0 through 9. </li> <li> Hyphen (-). You can't specify a hyphen at the beginning or end of a label.  </li> <li> Period (.) to separate the labels in the name, such as the <code>.</code> in <code>example.com</code>. </li> </ul> Internationalized domain names are not supported for some top-level domains. To determine whether the TLD that you want to use supports internationalized domain names, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/registrar-tld-list.html">Domains that You Can Register with Amazon Route 53</a>. <br/>
        :return: SuggestionsList:  A list of possible domain names. If you specified <code>true</code> for <code>OnlyAvailable</code> in the request, the list contains only domains that are available for registration.<br/>        """
        pass

    def get_operation_detail(self, OperationId: str) -> GetOperationDetailResponse:
        r"""This operation returns the current status of an operation that is not completed.

        :param self:
        :param OperationId:  The identifier for the operation for which you want to get the status. Route 53 returned the identifier in the response to the original request.<br/>
        :return: SubmittedDate:  The date when the request was submitted.<br/>Type:  The type of operation that was requested.<br/>DomainName:  The name of a domain.<br/>Message:  Detailed information on the status including possible errors.<br/>Status:  The current status of the requested operation in the system.<br/>OperationId:  The identifier for the operation.<br/>        """
        pass

    def list_domains(self, Marker: str=None, MaxItems: int=None) -> ListDomainsResponse:
        r"""This operation returns all the domain names registered with Amazon Route 53 for the current AWS account.

        :param self:
        :param MaxItems:  Number of domains to be returned. Default: 20<br/>Marker:  For an initial request for a list of domains, omit this element. If the number of domains that are associated with the current AWS account is greater than the value that you specified for <code>MaxItems</code>, you can use <code>Marker</code> to return additional domains. Get the value of <code>NextPageMarker</code> from the previous response, and submit another request that includes the value of <code>NextPageMarker</code> in the <code>Marker</code> element. Constraints: The marker must match the value specified in the previous request.<br/>
        :return: NextPageMarker:  If there are more domains than you specified for <code>MaxItems</code> in the request, submit another request and include the value of <code>NextPageMarker</code> in the value of <code>Marker</code>.<br/>Domains:  A summary of domains.<br/>        """
        pass

    def list_operations(self, SubmittedSince: Timestamp=None, Marker: str=None, MaxItems: int=None) -> ListOperationsResponse:
        r"""Returns information about all of the operations that return an operation ID and that have ever been performed on domains that were registered by the current account. 

        :param self:
        :param MaxItems:  Number of domains to be returned. Default: 20<br/>Marker:  For an initial request for a list of operations, omit this element. If the number of operations that are not yet complete is greater than the value that you specified for <code>MaxItems</code>, you can use <code>Marker</code> to return additional operations. Get the value of <code>NextPageMarker</code> from the previous response, and submit another request that includes the value of <code>NextPageMarker</code> in the <code>Marker</code> element.<br/>SubmittedSince:  An optional parameter that lets you get information about all the operations that you submitted after a specified date and time. Specify the date and time in Unix time format and Coordinated Universal time (UTC).<br/>
        :return: NextPageMarker:  If there are more operations than you specified for <code>MaxItems</code> in the request, submit another request and include the value of <code>NextPageMarker</code> in the value of <code>Marker</code>.<br/>Operations:  Lists summaries of the operations.<br/>        """
        pass

    def list_tags_for_domain(self, DomainName: str) -> ListTagsForDomainResponse:
        r"""This operation returns all of the tags that are associated with the specified domain. All tag operations are eventually consistent; subsequent operations might not immediately represent all issued operations.

        :param self:
        :param DomainName:  The domain for which you want to get a list of tags.<br/>
        :return: TagList:  A list of the tags that are associated with the specified domain.<br/>        """
        pass

    def register_domain(self, TechContact: ContactDetail, RegistrantContact: ContactDetail, AdminContact: ContactDetail, DurationInYears: int, DomainName: str, IdnLangCode: str=None, AutoRenew: Boolean=None, PrivacyProtectAdminContact: Boolean=None, PrivacyProtectRegistrantContact: Boolean=None, PrivacyProtectTechContact: Boolean=None) -> RegisterDomainResponse:
        r"""This operation registers a domain. Domains are registered either by Amazon Registrar (for .com, .net, and .org domains) or by our registrar associate, Gandi (for all other domains). For some top-level domains (TLDs), this operation requires extra parameters. When you register a domain, Amazon Route 53 does the following: <ul> <li> Creates a Route 53 hosted zone that has the same name as the domain. Route 53 assigns four name servers to your hosted zone and automatically updates your domain registration with the names of these name servers. </li> <li> Enables autorenew, so your domain registration will renew automatically each year. We'll notify you in advance of the renewal date so you can choose whether to renew the registration. </li> <li> Optionally enables privacy protection, so WHOIS queries return contact information either for Amazon Registrar (for .com, .net, and .org domains) or for our registrar associate, Gandi (for all other TLDs). If you don't enable privacy protection, WHOIS queries return the information that you entered for the registrant, admin, and tech contacts. </li> <li> If registration is successful, returns an operation ID that you can use to track the progress and completion of the action. If the request is not completed successfully, the domain registrant is notified by email. </li> <li> Charges your AWS account an amount based on the top-level domain. For more information, see <a href="http://aws.amazon.com/route53/pricing/">Amazon Route 53 Pricing</a>. </li> </ul>

        :param self:
        :param PrivacyProtectTechContact:  Whether you want to conceal contact information from WHOIS queries. If you specify <code>true</code>, WHOIS ("who is") queries return contact information either for Amazon Registrar (for .com, .net, and .org domains) or for our registrar associate, Gandi (for all other TLDs). If you specify <code>false</code>, WHOIS queries return the information that you entered for the technical contact. Default: <code>true</code> <br/>PrivacyProtectRegistrantContact:  Whether you want to conceal contact information from WHOIS queries. If you specify <code>true</code>, WHOIS ("who is") queries return contact information either for Amazon Registrar (for .com, .net, and .org domains) or for our registrar associate, Gandi (for all other TLDs). If you specify <code>false</code>, WHOIS queries return the information that you entered for the registrant contact (the domain owner). Default: <code>true</code> <br/>PrivacyProtectAdminContact:  Whether you want to conceal contact information from WHOIS queries. If you specify <code>true</code>, WHOIS ("who is") queries return contact information either for Amazon Registrar (for .com, .net, and .org domains) or for our registrar associate, Gandi (for all other TLDs). If you specify <code>false</code>, WHOIS queries return the information that you entered for the admin contact. Default: <code>true</code> <br/>TechContact:  Provides detailed contact information. For information about the values that you specify for each element, see <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_ContactDetail.html">ContactDetail</a>.:<br/>RegistrantContact:  Provides detailed contact information. For information about the values that you specify for each element, see <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_ContactDetail.html">ContactDetail</a>.:<br/>AdminContact:  Provides detailed contact information. For information about the values that you specify for each element, see <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_ContactDetail.html">ContactDetail</a>.:<br/>AutoRenew:  Indicates whether the domain will be automatically renewed (<code>true</code>) or not (<code>false</code>). Autorenewal only takes effect after the account is charged. Default: <code>true</code> <br/>DurationInYears:  The number of years that you want to register the domain for. Domains are registered for a minimum of one year. The maximum period depends on the top-level domain. For the range of valid values for your domain, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/registrar-tld-list.html">Domains that You Can Register with Amazon Route 53</a> in the <i>Amazon Route 53 Developer Guide</i>. Default: 1<br/>IdnLangCode:  Reserved for future use.<br/>DomainName:  The domain name that you want to register. The top-level domain (TLD), such as .com, must be a TLD that Route 53 supports. For a list of supported TLDs, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/registrar-tld-list.html">Domains that You Can Register with Amazon Route 53</a> in the <i>Amazon Route 53 Developer Guide</i>. The domain name can contain only the following characters: <ul> <li> Letters a through z. Domain names are not case sensitive. </li> <li> Numbers 0 through 9. </li> <li> Hyphen (-). You can't specify a hyphen at the beginning or end of a label.  </li> <li> Period (.) to separate the labels in the name, such as the <code>.</code> in <code>example.com</code>. </li> </ul> Internationalized domain names are not supported for some top-level domains. To determine whether the TLD that you want to use supports internationalized domain names, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/registrar-tld-list.html">Domains that You Can Register with Amazon Route 53</a>. For more information, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DomainNameFormat.html#domain-name-format-idns">Formatting Internationalized Domain Names</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExtraParams</i> A list of name-value pairs for parameters required by certain top-level domains.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Fax</i> Fax number of the contact. Constraints: Phone number must be specified in the format "+[country dialing code].[number including any area code]". For example, a US phone number might appear as <code>"+1.1234567890"</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Email</i> Email address of the contact.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PhoneNumber</i> The phone number of the contact. Constraints: Phone number must be specified in the format "+[country dialing code].[number including any area code&gt;]". For example, a US phone number might appear as <code>"+1.1234567890"</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ZipCode</i> The zip or postal code of the contact's address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CountryCode</i> Code for the country of the contact's address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state or province of the contact's city.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>City</i> The city of the contact's address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AddressLine2</i> Second line of contact's address, if any.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AddressLine1</i> First line of the contact's address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OrganizationName</i> Name of the organization for contact types other than <code>PERSON</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ContactType</i> Indicates whether the contact is a person, company, association, or public organization. Note the following: <ul> <li> If you specify a value other than <code>PERSON</code>, you must also specify a value for <code>OrganizationName</code>. </li> <li> For some TLDs, the privacy protection available depends on the value that you specify for <code>Contact Type</code>. For the privacy protection settings for your TLD, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/registrar-tld-list.html">Domains that You Can Register with Amazon Route 53</a> in the <i>Amazon Route 53 Developer Guide</i>  </li> <li> For .es domains, if you specify <code>PERSON</code>, you must specify <code>INDIVIDUAL</code> for the value of <code>ES_LEGAL_FORM</code>. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastName</i> Last name of contact.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FirstName</i> First name of contact.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExtraParams</i> A list of name-value pairs for parameters required by certain top-level domains.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Fax</i> Fax number of the contact. Constraints: Phone number must be specified in the format "+[country dialing code].[number including any area code]". For example, a US phone number might appear as <code>"+1.1234567890"</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Email</i> Email address of the contact.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PhoneNumber</i> The phone number of the contact. Constraints: Phone number must be specified in the format "+[country dialing code].[number including any area code&gt;]". For example, a US phone number might appear as <code>"+1.1234567890"</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ZipCode</i> The zip or postal code of the contact's address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CountryCode</i> Code for the country of the contact's address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state or province of the contact's city.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>City</i> The city of the contact's address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AddressLine2</i> Second line of contact's address, if any.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AddressLine1</i> First line of the contact's address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OrganizationName</i> Name of the organization for contact types other than <code>PERSON</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ContactType</i> Indicates whether the contact is a person, company, association, or public organization. Note the following: <ul> <li> If you specify a value other than <code>PERSON</code>, you must also specify a value for <code>OrganizationName</code>. </li> <li> For some TLDs, the privacy protection available depends on the value that you specify for <code>Contact Type</code>. For the privacy protection settings for your TLD, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/registrar-tld-list.html">Domains that You Can Register with Amazon Route 53</a> in the <i>Amazon Route 53 Developer Guide</i>  </li> <li> For .es domains, if you specify <code>PERSON</code>, you must specify <code>INDIVIDUAL</code> for the value of <code>ES_LEGAL_FORM</code>. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastName</i> Last name of contact.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FirstName</i> First name of contact.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExtraParams</i> A list of name-value pairs for parameters required by certain top-level domains.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Fax</i> Fax number of the contact. Constraints: Phone number must be specified in the format "+[country dialing code].[number including any area code]". For example, a US phone number might appear as <code>"+1.1234567890"</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Email</i> Email address of the contact.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PhoneNumber</i> The phone number of the contact. Constraints: Phone number must be specified in the format "+[country dialing code].[number including any area code&gt;]". For example, a US phone number might appear as <code>"+1.1234567890"</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ZipCode</i> The zip or postal code of the contact's address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CountryCode</i> Code for the country of the contact's address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state or province of the contact's city.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>City</i> The city of the contact's address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AddressLine2</i> Second line of contact's address, if any.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AddressLine1</i> First line of the contact's address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OrganizationName</i> Name of the organization for contact types other than <code>PERSON</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ContactType</i> Indicates whether the contact is a person, company, association, or public organization. Note the following: <ul> <li> If you specify a value other than <code>PERSON</code>, you must also specify a value for <code>OrganizationName</code>. </li> <li> For some TLDs, the privacy protection available depends on the value that you specify for <code>Contact Type</code>. For the privacy protection settings for your TLD, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/registrar-tld-list.html">Domains that You Can Register with Amazon Route 53</a> in the <i>Amazon Route 53 Developer Guide</i>  </li> <li> For .es domains, if you specify <code>PERSON</code>, you must specify <code>INDIVIDUAL</code> for the value of <code>ES_LEGAL_FORM</code>. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastName</i> Last name of contact.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FirstName</i> First name of contact.<br/>
        :return: OperationId:  Identifier for tracking the progress of the request. To query the operation status, use <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_GetOperationDetail.html">GetOperationDetail</a>.<br/>        """
        pass

    def reject_domain_transfer_from_another_aws_account(self, DomainName: str) -> RejectDomainTransferFromAnotherAwsAccountResponse:
        r"""Rejects the transfer of a domain from another AWS account to the current AWS account. You initiate a transfer between AWS accounts using <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_TransferDomainToAnotherAwsAccount.html">TransferDomainToAnotherAwsAccount</a>.  Use either <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_ListOperations.html">ListOperations</a> or <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_GetOperationDetail.html">GetOperationDetail</a> to determine whether the operation succeeded. <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_GetOperationDetail.html">GetOperationDetail</a> provides additional information, for example, <code>Domain Transfer from Aws Account 111122223333 has been cancelled</code>. 

        :param self:
        :param DomainName:  The name of the domain that was specified when another AWS account submitted a <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_TransferDomainToAnotherAwsAccount.html">TransferDomainToAnotherAwsAccount</a> request. <br/>
        :return: OperationId:  The identifier that <code>TransferDomainToAnotherAwsAccount</code> returned to track the progress of the request. Because the transfer request was rejected, the value is no longer valid, and you can't use <code>GetOperationDetail</code> to query the operation status.<br/>        """
        pass

    def renew_domain(self, CurrentExpiryYear: int, DomainName: str, DurationInYears: int=None) -> RenewDomainResponse:
        r"""This operation renews a domain for the specified number of years. The cost of renewing your domain is billed to your AWS account. We recommend that you renew your domain several weeks before the expiration date. Some TLD registries delete domains before the expiration date if you haven't renewed far enough in advance. For more information about renewing domain registration, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/domain-renew.html">Renewing Registration for a Domain</a> in the <i>Amazon Route 53 Developer Guide</i>.

        :param self:
        :param CurrentExpiryYear:  The year when the registration for the domain is set to expire. This value must match the current expiration date for the domain.<br/>DurationInYears:  The number of years that you want to renew the domain for. The maximum number of years depends on the top-level domain. For the range of valid values for your domain, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/registrar-tld-list.html">Domains that You Can Register with Amazon Route 53</a> in the <i>Amazon Route 53 Developer Guide</i>. Default: 1<br/>DomainName:  The name of the domain that you want to renew.<br/>
        :return: OperationId:  Identifier for tracking the progress of the request. To query the operation status, use <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_GetOperationDetail.html">GetOperationDetail</a>.<br/>        """
        pass

    def resend_contact_reachability_email(self, domainName: str=None) -> ResendContactReachabilityEmailResponse:
        r"""For operations that require confirmation that the email address for the registrant contact is valid, such as registering a new domain, this operation resends the confirmation email to the current email address for the registrant contact.

        :param self:
        :param domainName:  The name of the domain for which you want Route 53 to resend a confirmation email to the registrant contact.<br/>
        :return: isAlreadyVerified:   <code>True</code> if the email address for the registrant contact has already been verified, and <code>false</code> otherwise. If the email address has already been verified, we don't send another confirmation email.<br/>emailAddress:  The email address for the registrant contact at the time that we sent the verification email.<br/>domainName:  The domain name for which you requested a confirmation email.<br/>        """
        pass

    def retrieve_domain_auth_code(self, DomainName: str) -> RetrieveDomainAuthCodeResponse:
        r"""This operation returns the AuthCode for the domain. To transfer a domain to another registrar, you provide this value to the new registrar.

        :param self:
        :param DomainName:  The name of the domain that you want to get an authorization code for.<br/>
        :return: AuthCode:  The authorization code for the domain.<br/>        """
        pass

    def transfer_domain(self, TechContact: ContactDetail, RegistrantContact: ContactDetail, AdminContact: ContactDetail, DurationInYears: int, DomainName: str, IdnLangCode: str=None, Nameservers: List[Nameserver]=None, AuthCode: str=None, AutoRenew: Boolean=None, PrivacyProtectAdminContact: Boolean=None, PrivacyProtectRegistrantContact: Boolean=None, PrivacyProtectTechContact: Boolean=None) -> TransferDomainResponse:
        r"""Transfers a domain from another registrar to Amazon Route 53. When the transfer is complete, the domain is registered either with Amazon Registrar (for .com, .net, and .org domains) or with our registrar associate, Gandi (for all other TLDs). For more information about transferring domains, see the following topics: <ul> <li> For transfer requirements, a detailed procedure, and information about viewing the status of a domain that you're transferring to Route 53, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/domain-transfer-to-route-53.html">Transferring Registration for a Domain to Amazon Route 53</a> in the <i>Amazon Route 53 Developer Guide</i>. </li> <li> For information about how to transfer a domain from one AWS account to another, see <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_TransferDomainToAnotherAwsAccount.html">TransferDomainToAnotherAwsAccount</a>.  </li> <li> For information about how to transfer a domain to another domain registrar, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/domain-transfer-from-route-53.html">Transferring a Domain from Amazon Route 53 to Another Registrar</a> in the <i>Amazon Route 53 Developer Guide</i>. </li> </ul> If the registrar for your domain is also the DNS service provider for the domain, we highly recommend that you transfer your DNS service to Route 53 or to another DNS service provider before you transfer your registration. Some registrars provide free DNS service when you purchase a domain registration. When you transfer the registration, the previous registrar will not renew your domain registration and could end your DNS service at any time. <important> If the registrar for your domain is also the DNS service provider for the domain and you don't transfer DNS service to another provider, your website, email, and the web applications associated with the domain might become unavailable. </important> If the transfer is successful, this method returns an operation ID that you can use to track the progress and completion of the action. If the transfer doesn't complete successfully, the domain registrant will be notified by email.

        :param self:
        :param PrivacyProtectTechContact:  Whether you want to conceal contact information from WHOIS queries. If you specify <code>true</code>, WHOIS ("who is") queries return contact information either for Amazon Registrar (for .com, .net, and .org domains) or for our registrar associate, Gandi (for all other TLDs). If you specify <code>false</code>, WHOIS queries return the information that you entered for the technical contact. Default: <code>true</code> <br/>PrivacyProtectRegistrantContact:  Whether you want to conceal contact information from WHOIS queries. If you specify <code>true</code>, WHOIS ("who is") queries return contact information either for Amazon Registrar (for .com, .net, and .org domains) or for our registrar associate, Gandi (for all other TLDs). If you specify <code>false</code>, WHOIS queries return the information that you entered for the registrant contact (domain owner). Default: <code>true</code> <br/>PrivacyProtectAdminContact:  Whether you want to conceal contact information from WHOIS queries. If you specify <code>true</code>, WHOIS ("who is") queries return contact information either for Amazon Registrar (for .com, .net, and .org domains) or for our registrar associate, Gandi (for all other TLDs). If you specify <code>false</code>, WHOIS queries return the information that you entered for the admin contact. Default: <code>true</code> <br/>TechContact:  Provides detailed contact information.:<br/>RegistrantContact:  Provides detailed contact information.:<br/>AdminContact:  Provides detailed contact information.:<br/>AutoRenew:  Indicates whether the domain will be automatically renewed (true) or not (false). Autorenewal only takes effect after the account is charged. Default: true<br/>AuthCode:  The authorization code for the domain. You get this value from the current registrar.<br/>Nameservers:  Contains details for the host and glue IP addresses.<br/>DurationInYears:  The number of years that you want to register the domain for. Domains are registered for a minimum of one year. The maximum period depends on the top-level domain. Default: 1<br/>IdnLangCode:  Reserved for future use.<br/>DomainName:  The name of the domain that you want to transfer to Route 53. The top-level domain (TLD), such as .com, must be a TLD that Route 53 supports. For a list of supported TLDs, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/registrar-tld-list.html">Domains that You Can Register with Amazon Route 53</a> in the <i>Amazon Route 53 Developer Guide</i>. The domain name can contain only the following characters: <ul> <li> Letters a through z. Domain names are not case sensitive. </li> <li> Numbers 0 through 9. </li> <li> Hyphen (-). You can't specify a hyphen at the beginning or end of a label.  </li> <li> Period (.) to separate the labels in the name, such as the <code>.</code> in <code>example.com</code>. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExtraParams</i> A list of name-value pairs for parameters required by certain top-level domains.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Fax</i> Fax number of the contact. Constraints: Phone number must be specified in the format "+[country dialing code].[number including any area code]". For example, a US phone number might appear as <code>"+1.1234567890"</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Email</i> Email address of the contact.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PhoneNumber</i> The phone number of the contact. Constraints: Phone number must be specified in the format "+[country dialing code].[number including any area code&gt;]". For example, a US phone number might appear as <code>"+1.1234567890"</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ZipCode</i> The zip or postal code of the contact's address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CountryCode</i> Code for the country of the contact's address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state or province of the contact's city.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>City</i> The city of the contact's address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AddressLine2</i> Second line of contact's address, if any.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AddressLine1</i> First line of the contact's address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OrganizationName</i> Name of the organization for contact types other than <code>PERSON</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ContactType</i> Indicates whether the contact is a person, company, association, or public organization. Note the following: <ul> <li> If you specify a value other than <code>PERSON</code>, you must also specify a value for <code>OrganizationName</code>. </li> <li> For some TLDs, the privacy protection available depends on the value that you specify for <code>Contact Type</code>. For the privacy protection settings for your TLD, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/registrar-tld-list.html">Domains that You Can Register with Amazon Route 53</a> in the <i>Amazon Route 53 Developer Guide</i>  </li> <li> For .es domains, if you specify <code>PERSON</code>, you must specify <code>INDIVIDUAL</code> for the value of <code>ES_LEGAL_FORM</code>. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastName</i> Last name of contact.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FirstName</i> First name of contact.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExtraParams</i> A list of name-value pairs for parameters required by certain top-level domains.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Fax</i> Fax number of the contact. Constraints: Phone number must be specified in the format "+[country dialing code].[number including any area code]". For example, a US phone number might appear as <code>"+1.1234567890"</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Email</i> Email address of the contact.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PhoneNumber</i> The phone number of the contact. Constraints: Phone number must be specified in the format "+[country dialing code].[number including any area code&gt;]". For example, a US phone number might appear as <code>"+1.1234567890"</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ZipCode</i> The zip or postal code of the contact's address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CountryCode</i> Code for the country of the contact's address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state or province of the contact's city.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>City</i> The city of the contact's address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AddressLine2</i> Second line of contact's address, if any.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AddressLine1</i> First line of the contact's address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OrganizationName</i> Name of the organization for contact types other than <code>PERSON</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ContactType</i> Indicates whether the contact is a person, company, association, or public organization. Note the following: <ul> <li> If you specify a value other than <code>PERSON</code>, you must also specify a value for <code>OrganizationName</code>. </li> <li> For some TLDs, the privacy protection available depends on the value that you specify for <code>Contact Type</code>. For the privacy protection settings for your TLD, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/registrar-tld-list.html">Domains that You Can Register with Amazon Route 53</a> in the <i>Amazon Route 53 Developer Guide</i>  </li> <li> For .es domains, if you specify <code>PERSON</code>, you must specify <code>INDIVIDUAL</code> for the value of <code>ES_LEGAL_FORM</code>. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastName</i> Last name of contact.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FirstName</i> First name of contact.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExtraParams</i> A list of name-value pairs for parameters required by certain top-level domains.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Fax</i> Fax number of the contact. Constraints: Phone number must be specified in the format "+[country dialing code].[number including any area code]". For example, a US phone number might appear as <code>"+1.1234567890"</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Email</i> Email address of the contact.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PhoneNumber</i> The phone number of the contact. Constraints: Phone number must be specified in the format "+[country dialing code].[number including any area code&gt;]". For example, a US phone number might appear as <code>"+1.1234567890"</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ZipCode</i> The zip or postal code of the contact's address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CountryCode</i> Code for the country of the contact's address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state or province of the contact's city.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>City</i> The city of the contact's address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AddressLine2</i> Second line of contact's address, if any.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AddressLine1</i> First line of the contact's address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OrganizationName</i> Name of the organization for contact types other than <code>PERSON</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ContactType</i> Indicates whether the contact is a person, company, association, or public organization. Note the following: <ul> <li> If you specify a value other than <code>PERSON</code>, you must also specify a value for <code>OrganizationName</code>. </li> <li> For some TLDs, the privacy protection available depends on the value that you specify for <code>Contact Type</code>. For the privacy protection settings for your TLD, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/registrar-tld-list.html">Domains that You Can Register with Amazon Route 53</a> in the <i>Amazon Route 53 Developer Guide</i>  </li> <li> For .es domains, if you specify <code>PERSON</code>, you must specify <code>INDIVIDUAL</code> for the value of <code>ES_LEGAL_FORM</code>. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastName</i> Last name of contact.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FirstName</i> First name of contact.<br/>
        :return: OperationId:  Identifier for tracking the progress of the request. To query the operation status, use <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_GetOperationDetail.html">GetOperationDetail</a>.<br/>        """
        pass

    def transfer_domain_to_another_aws_account(self, AccountId: str, DomainName: str) -> TransferDomainToAnotherAwsAccountResponse:
        r"""Transfers a domain from the current AWS account to another AWS account. Note the following: <ul> <li> The AWS account that you're transferring the domain to must accept the transfer. If the other account doesn't accept the transfer within 3 days, we cancel the transfer. See <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_AcceptDomainTransferFromAnotherAwsAccount.html">AcceptDomainTransferFromAnotherAwsAccount</a>.  </li> <li> You can cancel the transfer before the other account accepts it. See <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_CancelDomainTransferToAnotherAwsAccount.html">CancelDomainTransferToAnotherAwsAccount</a>.  </li> <li> The other account can reject the transfer. See <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_RejectDomainTransferFromAnotherAwsAccount.html">RejectDomainTransferFromAnotherAwsAccount</a>.  </li> </ul> <important> When you transfer a domain from one AWS account to another, Route 53 doesn't transfer the hosted zone that is associated with the domain. DNS resolution isn't affected if the domain and the hosted zone are owned by separate accounts, so transferring the hosted zone is optional. For information about transferring the hosted zone to another AWS account, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/hosted-zones-migrating.html">Migrating a Hosted Zone to a Different AWS Account</a> in the <i>Amazon Route 53 Developer Guide</i>. </important> Use either <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_ListOperations.html">ListOperations</a> or <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_GetOperationDetail.html">GetOperationDetail</a> to determine whether the operation succeeded. <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_GetOperationDetail.html">GetOperationDetail</a> provides additional information, for example, <code>Domain Transfer from Aws Account 111122223333 has been cancelled</code>. 

        :param self:
        :param AccountId:  The account ID of the AWS account that you want to transfer the domain to, for example, <code>111122223333</code>.<br/>DomainName:  The name of the domain that you want to transfer from the current AWS account to another account.<br/>
        :return: Password:  To finish transferring a domain to another AWS account, the account that the domain is being transferred to must submit an <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_AcceptDomainTransferFromAnotherAwsAccount.html">AcceptDomainTransferFromAnotherAwsAccount</a> request. The request must include the value of the <code>Password</code> element that was returned in the <code>TransferDomainToAnotherAwsAccount</code> response.<br/>OperationId:  Identifier for tracking the progress of the request. To query the operation status, use <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_GetOperationDetail.html">GetOperationDetail</a>.<br/>        """
        pass

    def update_domain_contact(self, DomainName: str, AdminContact: ContactDetail=None, RegistrantContact: ContactDetail=None, TechContact: ContactDetail=None) -> UpdateDomainContactResponse:
        r"""This operation updates the contact information for a particular domain. You must specify information for at least one contact: registrant, administrator, or technical. If the update is successful, this method returns an operation ID that you can use to track the progress and completion of the action. If the request is not completed successfully, the domain registrant will be notified by email.

        :param self:
        :param TechContact:  Provides detailed contact information.:<br/>RegistrantContact:  Provides detailed contact information.:<br/>AdminContact:  Provides detailed contact information.:<br/>DomainName:  The name of the domain that you want to update contact information for.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExtraParams</i> A list of name-value pairs for parameters required by certain top-level domains.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Fax</i> Fax number of the contact. Constraints: Phone number must be specified in the format "+[country dialing code].[number including any area code]". For example, a US phone number might appear as <code>"+1.1234567890"</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Email</i> Email address of the contact.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PhoneNumber</i> The phone number of the contact. Constraints: Phone number must be specified in the format "+[country dialing code].[number including any area code&gt;]". For example, a US phone number might appear as <code>"+1.1234567890"</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ZipCode</i> The zip or postal code of the contact's address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CountryCode</i> Code for the country of the contact's address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state or province of the contact's city.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>City</i> The city of the contact's address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AddressLine2</i> Second line of contact's address, if any.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AddressLine1</i> First line of the contact's address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OrganizationName</i> Name of the organization for contact types other than <code>PERSON</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ContactType</i> Indicates whether the contact is a person, company, association, or public organization. Note the following: <ul> <li> If you specify a value other than <code>PERSON</code>, you must also specify a value for <code>OrganizationName</code>. </li> <li> For some TLDs, the privacy protection available depends on the value that you specify for <code>Contact Type</code>. For the privacy protection settings for your TLD, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/registrar-tld-list.html">Domains that You Can Register with Amazon Route 53</a> in the <i>Amazon Route 53 Developer Guide</i>  </li> <li> For .es domains, if you specify <code>PERSON</code>, you must specify <code>INDIVIDUAL</code> for the value of <code>ES_LEGAL_FORM</code>. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastName</i> Last name of contact.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FirstName</i> First name of contact.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExtraParams</i> A list of name-value pairs for parameters required by certain top-level domains.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Fax</i> Fax number of the contact. Constraints: Phone number must be specified in the format "+[country dialing code].[number including any area code]". For example, a US phone number might appear as <code>"+1.1234567890"</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Email</i> Email address of the contact.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PhoneNumber</i> The phone number of the contact. Constraints: Phone number must be specified in the format "+[country dialing code].[number including any area code&gt;]". For example, a US phone number might appear as <code>"+1.1234567890"</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ZipCode</i> The zip or postal code of the contact's address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CountryCode</i> Code for the country of the contact's address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state or province of the contact's city.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>City</i> The city of the contact's address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AddressLine2</i> Second line of contact's address, if any.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AddressLine1</i> First line of the contact's address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OrganizationName</i> Name of the organization for contact types other than <code>PERSON</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ContactType</i> Indicates whether the contact is a person, company, association, or public organization. Note the following: <ul> <li> If you specify a value other than <code>PERSON</code>, you must also specify a value for <code>OrganizationName</code>. </li> <li> For some TLDs, the privacy protection available depends on the value that you specify for <code>Contact Type</code>. For the privacy protection settings for your TLD, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/registrar-tld-list.html">Domains that You Can Register with Amazon Route 53</a> in the <i>Amazon Route 53 Developer Guide</i>  </li> <li> For .es domains, if you specify <code>PERSON</code>, you must specify <code>INDIVIDUAL</code> for the value of <code>ES_LEGAL_FORM</code>. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastName</i> Last name of contact.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FirstName</i> First name of contact.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExtraParams</i> A list of name-value pairs for parameters required by certain top-level domains.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Fax</i> Fax number of the contact. Constraints: Phone number must be specified in the format "+[country dialing code].[number including any area code]". For example, a US phone number might appear as <code>"+1.1234567890"</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Email</i> Email address of the contact.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PhoneNumber</i> The phone number of the contact. Constraints: Phone number must be specified in the format "+[country dialing code].[number including any area code&gt;]". For example, a US phone number might appear as <code>"+1.1234567890"</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ZipCode</i> The zip or postal code of the contact's address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CountryCode</i> Code for the country of the contact's address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The state or province of the contact's city.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>City</i> The city of the contact's address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AddressLine2</i> Second line of contact's address, if any.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AddressLine1</i> First line of the contact's address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OrganizationName</i> Name of the organization for contact types other than <code>PERSON</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ContactType</i> Indicates whether the contact is a person, company, association, or public organization. Note the following: <ul> <li> If you specify a value other than <code>PERSON</code>, you must also specify a value for <code>OrganizationName</code>. </li> <li> For some TLDs, the privacy protection available depends on the value that you specify for <code>Contact Type</code>. For the privacy protection settings for your TLD, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/registrar-tld-list.html">Domains that You Can Register with Amazon Route 53</a> in the <i>Amazon Route 53 Developer Guide</i>  </li> <li> For .es domains, if you specify <code>PERSON</code>, you must specify <code>INDIVIDUAL</code> for the value of <code>ES_LEGAL_FORM</code>. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastName</i> Last name of contact.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FirstName</i> First name of contact.<br/>
        :return: OperationId:  Identifier for tracking the progress of the request. To query the operation status, use <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_GetOperationDetail.html">GetOperationDetail</a>.<br/>        """
        pass

    def update_domain_contact_privacy(self, DomainName: str, AdminPrivacy: Boolean=None, RegistrantPrivacy: Boolean=None, TechPrivacy: Boolean=None) -> UpdateDomainContactPrivacyResponse:
        r"""This operation updates the specified domain contact's privacy setting. When privacy protection is enabled, contact information such as email address is replaced either with contact information for Amazon Registrar (for .com, .net, and .org domains) or with contact information for our registrar associate, Gandi. This operation affects only the contact information for the specified contact type (registrant, administrator, or tech). If the request succeeds, Amazon Route 53 returns an operation ID that you can use with <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_GetOperationDetail.html">GetOperationDetail</a> to track the progress and completion of the action. If the request doesn't complete successfully, the domain registrant will be notified by email. <important> By disabling the privacy service via API, you consent to the publication of the contact information provided for this domain via the public WHOIS database. You certify that you are the registrant of this domain name and have the authority to make this decision. You may withdraw your consent at any time by enabling privacy protection using either <code>UpdateDomainContactPrivacy</code> or the Route 53 console. Enabling privacy protection removes the contact information provided for this domain from the WHOIS database. For more information on our privacy practices, see <a href="https://aws.amazon.com/privacy/">https://aws.amazon.com/privacy/</a>. </important>

        :param self:
        :param TechPrivacy:  Whether you want to conceal contact information from WHOIS queries. If you specify <code>true</code>, WHOIS ("who is") queries return contact information either for Amazon Registrar (for .com, .net, and .org domains) or for our registrar associate, Gandi (for all other TLDs). If you specify <code>false</code>, WHOIS queries return the information that you entered for the technical contact.<br/>RegistrantPrivacy:  Whether you want to conceal contact information from WHOIS queries. If you specify <code>true</code>, WHOIS ("who is") queries return contact information either for Amazon Registrar (for .com, .net, and .org domains) or for our registrar associate, Gandi (for all other TLDs). If you specify <code>false</code>, WHOIS queries return the information that you entered for the registrant contact (domain owner).<br/>AdminPrivacy:  Whether you want to conceal contact information from WHOIS queries. If you specify <code>true</code>, WHOIS ("who is") queries return contact information either for Amazon Registrar (for .com, .net, and .org domains) or for our registrar associate, Gandi (for all other TLDs). If you specify <code>false</code>, WHOIS queries return the information that you entered for the admin contact.<br/>DomainName:  The name of the domain that you want to update the privacy setting for.<br/>
        :return: OperationId:  Identifier for tracking the progress of the request. To use this ID to query the operation status, use GetOperationDetail.<br/>        """
        pass

    def update_domain_nameservers(self, Nameservers: List[Nameserver], DomainName: str, FIAuthKey: str=None) -> UpdateDomainNameserversResponse:
        r"""This operation replaces the current set of name servers for the domain with the specified set of name servers. If you use Amazon Route 53 as your DNS service, specify the four name servers in the delegation set for the hosted zone for the domain. If successful, this operation returns an operation ID that you can use to track the progress and completion of the action. If the request is not completed successfully, the domain registrant will be notified by email.

        :param self:
        :param Nameservers:  A list of new name servers for the domain.<br/>FIAuthKey:  The authorization key for .fi domains<br/>DomainName:  The name of the domain that you want to change name servers for.<br/>
        :return: OperationId:  Identifier for tracking the progress of the request. To query the operation status, use <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_GetOperationDetail.html">GetOperationDetail</a>.<br/>        """
        pass

    def update_tags_for_domain(self, DomainName: str, TagsToUpdate: List[Tag]=None) -> UpdateTagsForDomainResponse:
        r"""This operation adds or updates tags for a specified domain. All tag operations are eventually consistent; subsequent operations might not immediately represent all issued operations.

        :param self:
        :param TagsToUpdate:  A list of the tag keys and values that you want to add or update. If you specify a key that already exists, the corresponding value will be replaced.<br/>DomainName:  The domain for which you want to add or update tags.<br/>
        :return:         """
        pass

    def view_billing(self, Start: Timestamp=None, End: Timestamp=None, Marker: str=None, MaxItems: int=None) -> ViewBillingResponse:
        r"""Returns all the domain-related billing records for the current AWS account for a specified period

        :param self:
        :param MaxItems:  The number of billing records to be returned. Default: 20<br/>Marker:  For an initial request for a list of billing records, omit this element. If the number of billing records that are associated with the current AWS account during the specified period is greater than the value that you specified for <code>MaxItems</code>, you can use <code>Marker</code> to return additional billing records. Get the value of <code>NextPageMarker</code> from the previous response, and submit another request that includes the value of <code>NextPageMarker</code> in the <code>Marker</code> element.  Constraints: The marker must match the value of <code>NextPageMarker</code> that was returned in the previous response.<br/>End:  The end date and time for the time period for which you want a list of billing records. Specify the date and time in Unix time format and Coordinated Universal time (UTC).<br/>Start:  The beginning date and time for the time period for which you want a list of billing records. Specify the date and time in Unix time format and Coordinated Universal time (UTC).<br/>
        :return: BillingRecords:  A summary of billing records.<br/>NextPageMarker:  If there are more billing records than you specified for <code>MaxItems</code> in the request, submit another request and include the value of <code>NextPageMarker</code> in the value of <code>Marker</code>.<br/>        """
        pass





class Route53Resolver(BaseClient):
    r"""When you create a VPC using Amazon VPC, you automatically get DNS resolution within the VPC from Route 53 Resolver. By default, Resolver answers DNS queries for VPC domain names such as domain names for EC2 instances or Elastic Load Balancing load balancers. Resolver performs recursive lookups against public name servers for all other domain names. You can also configure DNS resolution between your VPC and your network over a Direct Connect or VPN connection:  <b>Forward DNS queries from resolvers on your network to Route 53 Resolver</b>  DNS resolvers on your network can forward DNS queries to Resolver in a specified VPC. This allows your DNS resolvers to easily resolve domain names for AWS resources such as EC2 instances or records in a Route 53 private hosted zone. For more information, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resolver.html#resolver-overview-forward-network-to-vpc">How DNS Resolvers on Your Network Forward DNS Queries to Route 53 Resolver</a> in the <i>Amazon Route 53 Developer Guide</i>.  <b>Conditionally forward queries from a VPC to resolvers on your network</b>  You can configure Resolver to forward queries that it receives from EC2 instances in your VPCs to DNS resolvers on your network. To forward selected queries, you create Resolver rules that specify the domain names for the DNS queries that you want to forward (such as example.com), and the IP addresses of the DNS resolvers on your network that you want to forward the queries to. If a query matches multiple rules (example.com, acme.example.com), Resolver chooses the rule with the most specific match (acme.example.com) and forwards the query to the IP addresses that you specified in that rule. For more information, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resolver.html#resolver-overview-forward-vpc-to-network">How Route 53 Resolver Forwards DNS Queries from Your VPCs to Your Network</a> in the <i>Amazon Route 53 Developer Guide</i>. Like Amazon VPC, Resolver is Regional. In each Region where you have VPCs, you can choose whether to forward queries from your VPCs to your network (outbound queries), from your network to your VPCs (inbound queries), or both."""


    class ListTagsForResourcePaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_tags_for_resource` for valid parameters"""
            pass
    class ListResolverEndpointIpAddressesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_resolver_endpoint_ip_addresses` for valid parameters"""
            pass
    class ListResolverEndpointsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_resolver_endpoints` for valid parameters"""
            pass
    class ListResolverQueryLogConfigAssociationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_resolver_query_log_config_associations` for valid parameters"""
            pass
    class ListResolverQueryLogConfigsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_resolver_query_log_configs` for valid parameters"""
            pass
    class ListResolverRuleAssociationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_resolver_rule_associations` for valid parameters"""
            pass
    class ListResolverRulesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_resolver_rules` for valid parameters"""
            pass
    class ListResolverDnssecConfigsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_resolver_dnssec_configs` for valid parameters"""
            pass
    class ListFirewallConfigsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_firewall_configs` for valid parameters"""
            pass
    class ListFirewallDomainListsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_firewall_domain_lists` for valid parameters"""
            pass
    class ListFirewallDomainsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_firewall_domains` for valid parameters"""
            pass
    class ListFirewallRuleGroupAssociationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_firewall_rule_group_associations` for valid parameters"""
            pass
    class ListFirewallRuleGroupsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_firewall_rule_groups` for valid parameters"""
            pass
    class ListFirewallRulesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_firewall_rules` for valid parameters"""
            pass


    class AssociateFirewallRuleGroupRequest(Mapping):
        pass
    
    class AssociateFirewallRuleGroupResponse(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class AssociateResolverEndpointIpAddressRequest(Mapping):
        pass
    
    class AssociateResolverEndpointIpAddressResponse(Mapping):
        pass
    
    class IpAddressUpdate(Mapping):
        pass
    
    class AssociateResolverQueryLogConfigRequest(Mapping):
        pass
    
    class AssociateResolverQueryLogConfigResponse(Mapping):
        pass
    
    class AssociateResolverRuleRequest(Mapping):
        pass
    
    class AssociateResolverRuleResponse(Mapping):
        pass
    
    class CreateFirewallDomainListRequest(Mapping):
        pass
    
    class CreateFirewallDomainListResponse(Mapping):
        pass
    
    class CreateFirewallRuleRequest(Mapping):
        pass
    
    class CreateFirewallRuleResponse(Mapping):
        pass
    
    class CreateFirewallRuleGroupRequest(Mapping):
        pass
    
    class CreateFirewallRuleGroupResponse(Mapping):
        pass
    
    class CreateResolverEndpointRequest(Mapping):
        pass
    
    class CreateResolverEndpointResponse(Mapping):
        pass
    
    class ResourceId(object):
        pass
    
    class IpAddressRequest(Mapping):
        pass
    
    class CreateResolverQueryLogConfigRequest(Mapping):
        pass
    
    class CreateResolverQueryLogConfigResponse(Mapping):
        pass
    
    class CreateResolverRuleRequest(Mapping):
        pass
    
    class CreateResolverRuleResponse(Mapping):
        pass
    
    class TargetAddress(Mapping):
        pass
    
    class DeleteFirewallDomainListRequest(Mapping):
        pass
    
    class DeleteFirewallDomainListResponse(Mapping):
        pass
    
    class DeleteFirewallRuleRequest(Mapping):
        pass
    
    class DeleteFirewallRuleResponse(Mapping):
        pass
    
    class DeleteFirewallRuleGroupRequest(Mapping):
        pass
    
    class DeleteFirewallRuleGroupResponse(Mapping):
        pass
    
    class DeleteResolverEndpointRequest(Mapping):
        pass
    
    class DeleteResolverEndpointResponse(Mapping):
        pass
    
    class DeleteResolverQueryLogConfigRequest(Mapping):
        pass
    
    class DeleteResolverQueryLogConfigResponse(Mapping):
        pass
    
    class DeleteResolverRuleRequest(Mapping):
        pass
    
    class DeleteResolverRuleResponse(Mapping):
        pass
    
    class DisassociateFirewallRuleGroupRequest(Mapping):
        pass
    
    class DisassociateFirewallRuleGroupResponse(Mapping):
        pass
    
    class DisassociateResolverEndpointIpAddressRequest(Mapping):
        pass
    
    class DisassociateResolverEndpointIpAddressResponse(Mapping):
        pass
    
    class DisassociateResolverQueryLogConfigRequest(Mapping):
        pass
    
    class DisassociateResolverQueryLogConfigResponse(Mapping):
        pass
    
    class DisassociateResolverRuleRequest(Mapping):
        pass
    
    class DisassociateResolverRuleResponse(Mapping):
        pass
    
    class GetFirewallConfigRequest(Mapping):
        pass
    
    class GetFirewallConfigResponse(Mapping):
        pass
    
    class GetFirewallDomainListRequest(Mapping):
        pass
    
    class GetFirewallDomainListResponse(Mapping):
        pass
    
    class GetFirewallRuleGroupRequest(Mapping):
        pass
    
    class GetFirewallRuleGroupResponse(Mapping):
        pass
    
    class GetFirewallRuleGroupAssociationRequest(Mapping):
        pass
    
    class GetFirewallRuleGroupAssociationResponse(Mapping):
        pass
    
    class GetFirewallRuleGroupPolicyRequest(Mapping):
        pass
    
    class GetFirewallRuleGroupPolicyResponse(Mapping):
        pass
    
    class GetResolverDnssecConfigRequest(Mapping):
        pass
    
    class GetResolverDnssecConfigResponse(Mapping):
        pass
    
    class GetResolverEndpointRequest(Mapping):
        pass
    
    class GetResolverEndpointResponse(Mapping):
        pass
    
    class GetResolverQueryLogConfigRequest(Mapping):
        pass
    
    class GetResolverQueryLogConfigResponse(Mapping):
        pass
    
    class GetResolverQueryLogConfigAssociationRequest(Mapping):
        pass
    
    class GetResolverQueryLogConfigAssociationResponse(Mapping):
        pass
    
    class GetResolverQueryLogConfigPolicyRequest(Mapping):
        pass
    
    class GetResolverQueryLogConfigPolicyResponse(Mapping):
        pass
    
    class GetResolverRuleRequest(Mapping):
        pass
    
    class GetResolverRuleResponse(Mapping):
        pass
    
    class GetResolverRuleAssociationRequest(Mapping):
        pass
    
    class GetResolverRuleAssociationResponse(Mapping):
        pass
    
    class GetResolverRulePolicyRequest(Mapping):
        pass
    
    class GetResolverRulePolicyResponse(Mapping):
        pass
    
    class ImportFirewallDomainsRequest(Mapping):
        pass
    
    class ImportFirewallDomainsResponse(Mapping):
        pass
    
    class ListFirewallConfigsRequest(Mapping):
        pass
    
    class ListFirewallConfigsResponse(Mapping):
        pass
    
    class ListFirewallDomainListsRequest(Mapping):
        pass
    
    class ListFirewallDomainListsResponse(Mapping):
        pass
    
    class ListFirewallDomainsRequest(Mapping):
        pass
    
    class ListFirewallDomainsResponse(Mapping):
        pass
    
    class ListFirewallRuleGroupAssociationsRequest(Mapping):
        pass
    
    class ListFirewallRuleGroupAssociationsResponse(Mapping):
        pass
    
    class ListFirewallRuleGroupsRequest(Mapping):
        pass
    
    class ListFirewallRuleGroupsResponse(Mapping):
        pass
    
    class ListFirewallRulesRequest(Mapping):
        pass
    
    class ListFirewallRulesResponse(Mapping):
        pass
    
    class ListResolverDnssecConfigsRequest(Mapping):
        pass
    
    class ListResolverDnssecConfigsResponse(Mapping):
        pass
    
    class Filter(Mapping):
        pass
    
    class ListResolverEndpointIpAddressesRequest(Mapping):
        pass
    
    class ListResolverEndpointIpAddressesResponse(Mapping):
        pass
    
    class ListResolverEndpointsRequest(Mapping):
        pass
    
    class ListResolverEndpointsResponse(Mapping):
        pass
    
    class ListResolverQueryLogConfigAssociationsRequest(Mapping):
        pass
    
    class ListResolverQueryLogConfigAssociationsResponse(Mapping):
        pass
    
    class ListResolverQueryLogConfigsRequest(Mapping):
        pass
    
    class ListResolverQueryLogConfigsResponse(Mapping):
        pass
    
    class ListResolverRuleAssociationsRequest(Mapping):
        pass
    
    class ListResolverRuleAssociationsResponse(Mapping):
        pass
    
    class ListResolverRulesRequest(Mapping):
        pass
    
    class ListResolverRulesResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class PutFirewallRuleGroupPolicyRequest(Mapping):
        pass
    
    class PutFirewallRuleGroupPolicyResponse(Mapping):
        pass
    
    class PutResolverQueryLogConfigPolicyRequest(Mapping):
        pass
    
    class PutResolverQueryLogConfigPolicyResponse(Mapping):
        pass
    
    class PutResolverRulePolicyRequest(Mapping):
        pass
    
    class PutResolverRulePolicyResponse(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateFirewallConfigRequest(Mapping):
        pass
    
    class UpdateFirewallConfigResponse(Mapping):
        pass
    
    class UpdateFirewallDomainsRequest(Mapping):
        pass
    
    class UpdateFirewallDomainsResponse(Mapping):
        pass
    
    class FirewallDomainName(object):
        pass
    
    class UpdateFirewallRuleRequest(Mapping):
        pass
    
    class UpdateFirewallRuleResponse(Mapping):
        pass
    
    class UpdateFirewallRuleGroupAssociationRequest(Mapping):
        pass
    
    class UpdateFirewallRuleGroupAssociationResponse(Mapping):
        pass
    
    class UpdateResolverDnssecConfigRequest(Mapping):
        pass
    
    class UpdateResolverDnssecConfigResponse(Mapping):
        pass
    
    class UpdateResolverEndpointRequest(Mapping):
        pass
    
    class UpdateResolverEndpointResponse(Mapping):
        pass
    
    class UpdateResolverRuleRequest(Mapping):
        pass
    
    class UpdateResolverRuleResponse(Mapping):
        pass
    
    class ResolverRuleConfig(Mapping):
        pass
    
    def associate_firewall_rule_group(self, Name: str, Priority: int, VpcId: str, FirewallRuleGroupId: str, CreatorRequestId: str, MutationProtection: str=None, Tags: List[Tag]=None) -> AssociateFirewallRuleGroupResponse:
        r"""Associates a <a>FirewallRuleGroup</a> with a VPC, to provide DNS filtering for the VPC. 

        :param self:
        :param Tags:  A list of the tag keys and values that you want to associate with the rule group association. <br/>MutationProtection:  If enabled, this setting disallows modification or removal of the association, to help prevent against accidentally altering DNS firewall protections. When you create the association, the default setting is <code>DISABLED</code>. <br/>Name:  A name that lets you identify the association, to manage and use it.<br/>Priority:  The setting that determines the processing order of the rule group among the rule groups that you associate with the specified VPC. DNS Firewall filters VPC traffic starting from the rule group with the lowest numeric priority setting.  You must specify a unique priority for each rule group that you associate with a single VPC. To make it easier to insert rule groups later, leave space between the numbers, for example, use 101, 200, and so on. You can change the priority setting for a rule group association after you create it. The allowed values for <code>Priority</code> are between 100 and 9900.<br/>VpcId:  The unique identifier of the VPC that you want to associate with the rule group. <br/>FirewallRuleGroupId:  The unique identifier of the firewall rule group. <br/>CreatorRequestId:  A unique string that identifies the request and that allows failed requests to be retried without the risk of running the operation twice. <code>CreatorRequestId</code> can be any unique string, for example, a date/time stamp. <br/>
        :return: FirewallRuleGroupAssociation:  The association that you just created. The association has an ID that you can use to identify it in other requests, like update and delete.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ModificationTime</i> The date and time that the association was last modified, in Unix time format and Coordinated Universal Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The date and time that the association was created, in Unix time format and Coordinated Universal Time (UTC). <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatorRequestId</i> A unique string defined by you to identify the request. This allows you to retry failed requests without the risk of running the operation twice. This can be any unique string, for example, a timestamp. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusMessage</i> Additional information about the status of the response, if available.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current status of the association.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ManagedOwnerName</i> The owner of the association, used only for associations that are not managed by you. If you use AWS Firewall Manager to manage your DNS Firewalls, then this reports Firewall Manager as the managed owner.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MutationProtection</i> If enabled, this setting disallows modification or removal of the association, to help prevent against accidentally altering DNS firewall protections. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Priority</i> The setting that determines the processing order of the rule group among the rule groups that are associated with a single VPC. DNS Firewall filters VPC traffic starting from rule group with the lowest numeric priority setting. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the association.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The unique identifier of the VPC that is associated with the rule group. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FirewallRuleGroupId</i> The unique identifier of the firewall rule group. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the firewall rule group association.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The identifier for the association.<br/>        """
        pass

    def associate_resolver_endpoint_ip_address(self, IpAddress: IpAddressUpdate, ResolverEndpointId: str) -> AssociateResolverEndpointIpAddressResponse:
        r"""Adds IP addresses to an inbound or an outbound Resolver endpoint. If you want to add more than one IP address, submit one <code>AssociateResolverEndpointIpAddress</code> request for each IP address. To remove an IP address from an endpoint, see <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_DisassociateResolverEndpointIpAddress.html">DisassociateResolverEndpointIpAddress</a>. 

        :param self:
        :param IpAddress:  Either the IPv4 address that you want to add to a Resolver endpoint or a subnet ID. If you specify a subnet ID, Resolver chooses an IP address for you from the available IPs in the specified subnet.:<br/>ResolverEndpointId:  The ID of the Resolver endpoint that you want to associate IP addresses with.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Ip</i> The new IP address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetId</i> The ID of the subnet that includes the IP address that you want to update. To get this ID, use <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_GetResolverEndpoint.html">GetResolverEndpoint</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IpId</i>  <i>Only when removing an IP address from a Resolver endpoint</i>: The ID of the IP address that you want to remove. To get this ID, use <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_GetResolverEndpoint.html">GetResolverEndpoint</a>.<br/>
        :return: ResolverEndpoint:  The response to an <code>AssociateResolverEndpointIpAddress</code> request.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ModificationTime</i> The date and time that the endpoint was last modified, in Unix time format and Coordinated Universal Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The date and time that the endpoint was created, in Unix time format and Coordinated Universal Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusMessage</i> A detailed description of the status of the Resolver endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> A code that specifies the current status of the Resolver endpoint. Valid values include the following: <ul> <li>  <code>CREATING</code>: Resolver is creating and configuring one or more Amazon VPC network interfaces for this endpoint. </li> <li>  <code>OPERATIONAL</code>: The Amazon VPC network interfaces for this endpoint are correctly configured and able to pass inbound or outbound DNS queries between your network and Resolver. </li> <li>  <code>UPDATING</code>: Resolver is associating or disassociating one or more network interfaces with this endpoint. </li> <li>  <code>AUTO_RECOVERING</code>: Resolver is trying to recover one or more of the network interfaces that are associated with this endpoint. During the recovery process, the endpoint functions with limited capacity because of the limit on the number of DNS queries per IP address (per network interface). For the current limit, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DNSLimitations.html#limits-api-entities-resolver">Limits on Route 53 Resolver</a>. </li> <li>  <code>ACTION_NEEDED</code>: This endpoint is unhealthy, and Resolver can't automatically recover it. To resolve the problem, we recommend that you check each IP address that you associated with the endpoint. For each IP address that isn't available, add another IP address and then delete the IP address that isn't available. (An endpoint must always include at least two IP addresses.) A status of <code>ACTION_NEEDED</code> can have a variety of causes. Here are two common causes: <ul> <li> One or more of the network interfaces that are associated with the endpoint were deleted using Amazon VPC. </li> <li> The network interface couldn't be created for some reason that's outside the control of Resolver. </li> </ul> </li> <li>  <code>DELETING</code>: Resolver is deleting this endpoint and the associated network interfaces. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HostVPCId</i> The ID of the VPC that you want to create the Resolver endpoint in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IpAddressCount</i> The number of IP addresses that the Resolver endpoint can use for DNS queries.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Direction</i> Indicates whether the Resolver endpoint allows inbound or outbound DNS queries: <ul> <li>  <code>INBOUND</code>: allows DNS queries to your VPC from your network </li> <li>  <code>OUTBOUND</code>: allows DNS queries from your VPC to your network </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> The ID of one or more security groups that control access to this VPC. The security group must include one or more inbound rules (for inbound endpoints) or outbound rules (for outbound endpoints). Inbound and outbound rules must allow TCP and UDP access. For inbound access, open port 53. For outbound access, open the port that you're using for DNS queries on your network.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name that you assigned to the Resolver endpoint when you submitted a <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_CreateResolverEndpoint.html">CreateResolverEndpoint</a> request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The ARN (Amazon Resource Name) for the Resolver endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatorRequestId</i> A unique string that identifies the request that created the Resolver endpoint. The <code>CreatorRequestId</code> allows failed requests to be retried without the risk of running the operation twice.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID of the Resolver endpoint.<br/>        """
        pass

    def associate_resolver_query_log_config(self, ResourceId: str, ResolverQueryLogConfigId: str) -> AssociateResolverQueryLogConfigResponse:
        r"""Associates an Amazon VPC with a specified query logging configuration. Route 53 Resolver logs DNS queries that originate in all of the Amazon VPCs that are associated with a specified query logging configuration. To associate more than one VPC with a configuration, submit one <code>AssociateResolverQueryLogConfig</code> request for each VPC. <note> The VPCs that you associate with a query logging configuration must be in the same Region as the configuration. </note> To remove a VPC from a query logging configuration, see <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_DisassociateResolverQueryLogConfig.html">DisassociateResolverQueryLogConfig</a>. 

        :param self:
        :param ResourceId:  The ID of an Amazon VPC that you want this query logging configuration to log queries for. <note> The VPCs and the query logging configuration must be in the same Region. </note><br/>ResolverQueryLogConfigId:  The ID of the query logging configuration that you want to associate a VPC with.<br/>
        :return: ResolverQueryLogConfigAssociation:  A complex type that contains settings for a specified association between an Amazon VPC and a query logging configuration.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The date and time that the VPC was associated with the query logging configuration, in Unix time format and Coordinated Universal Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorMessage</i> Contains additional information about the error. If the value or <code>Error</code> is null, the value of <code>ErrorMessage</code> also is null.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Error</i> If the value of <code>Status</code> is <code>FAILED</code>, the value of <code>Error</code> indicates the cause: <ul> <li>  <code>DESTINATION_NOT_FOUND</code>: The specified destination (for example, an Amazon S3 bucket) was deleted. </li> <li>  <code>ACCESS_DENIED</code>: Permissions don't allow sending logs to the destination. </li> </ul> If the value of <code>Status</code> is a value other than <code>FAILED</code>, <code>Error</code> is null. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the specified query logging association. Valid values include the following: <ul> <li>  <code>CREATING</code>: Resolver is creating an association between an Amazon VPC and a query logging configuration. </li> <li>  <code>CREATED</code>: The association between an Amazon VPC and a query logging configuration was successfully created. Resolver is logging queries that originate in the specified VPC. </li> <li>  <code>DELETING</code>: Resolver is deleting this query logging association. </li> <li>  <code>FAILED</code>: Resolver either couldn't create or couldn't delete the query logging association. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceId</i> The ID of the Amazon VPC that is associated with the query logging configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResolverQueryLogConfigId</i> The ID of the query logging configuration that a VPC is associated with.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID of the query logging association.<br/>        """
        pass

    def associate_resolver_rule(self, VPCId: str, ResolverRuleId: str, Name: str=None) -> AssociateResolverRuleResponse:
        r"""Associates a Resolver rule with a VPC. When you associate a rule with a VPC, Resolver forwards all DNS queries for the domain name that is specified in the rule and that originate in the VPC. The queries are forwarded to the IP addresses for the DNS resolvers that are specified in the rule. For more information about rules, see <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_CreateResolverRule.html">CreateResolverRule</a>. 

        :param self:
        :param VPCId:  The ID of the VPC that you want to associate the Resolver rule with.<br/>Name:  A name for the association that you're creating between a Resolver rule and a VPC.<br/>ResolverRuleId:  The ID of the Resolver rule that you want to associate with the VPC. To list the existing Resolver rules, use <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverRules.html">ListResolverRules</a>.<br/>
        :return: ResolverRuleAssociation:  Information about the <code>AssociateResolverRule</code> request, including the status of the request.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusMessage</i> A detailed description of the status of the association between a Resolver rule and a VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> A code that specifies the current status of the association between a Resolver rule and a VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VPCId</i> The ID of the VPC that you associated the Resolver rule with.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of an association between a Resolver rule and a VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResolverRuleId</i> The ID of the Resolver rule that you associated with the VPC that is specified by <code>VPCId</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID of the association between a Resolver rule and a VPC. Resolver assigns this value when you submit an <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_AssociateResolverRule.html">AssociateResolverRule</a> request.<br/>        """
        pass

    def create_firewall_domain_list(self, Name: str, CreatorRequestId: str, Tags: List[Tag]=None) -> CreateFirewallDomainListResponse:
        r"""Creates an empty firewall domain list for use in DNS Firewall rules. You can populate the domains for the new list with a file, using <a>ImportFirewallDomains</a>, or with domain strings, using <a>UpdateFirewallDomains</a>. 

        :param self:
        :param Tags:  A list of the tag keys and values that you want to associate with the domain list. <br/>Name:  A name that lets you identify the domain list to manage and use it.<br/>CreatorRequestId:  A unique string that identifies the request and that allows you to retry failed requests without the risk of running the operation twice. <code>CreatorRequestId</code> can be any unique string, for example, a date/time stamp. <br/>
        :return: FirewallDomainList:  The domain list that you just created.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ModificationTime</i> The date and time that the domain list was last modified, in Unix time format and Coordinated Universal Time (UTC). <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The date and time that the domain list was created, in Unix time format and Coordinated Universal Time (UTC). <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatorRequestId</i> A unique string defined by you to identify the request. This allows you to retry failed requests without the risk of running the operation twice. This can be any unique string, for example, a timestamp. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ManagedOwnerName</i> The owner of the list, used only for lists that are not managed by you. For example, the managed domain list <code>AWSManagedDomainsMalwareDomainList</code> has the managed owner name <code>Route 53 Resolver DNS Firewall</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusMessage</i> Additional information about the status of the list, if available.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the domain list. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainCount</i> The number of domain names that are specified in the domain list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the domain list. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the firewall domain list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID of the domain list. <br/>        """
        pass

    def create_firewall_rule(self, Name: str, Action: str, Priority: int, FirewallDomainListId: str, FirewallRuleGroupId: str, CreatorRequestId: str, BlockResponse: str=None, BlockOverrideDomain: str=None, BlockOverrideDnsType: str=None, BlockOverrideTtl: int=None) -> CreateFirewallRuleResponse:
        r"""Creates a single DNS Firewall rule in the specified rule group, using the specified domain list.

        :param self:
        :param Name:  A name that lets you identify the rule in the rule group.<br/>BlockOverrideTtl:  The recommended amount of time, in seconds, for the DNS resolver or web browser to cache the provided override record. Used for the rule action <code>BLOCK</code> with a <code>BlockResponse</code> setting of <code>OVERRIDE</code>. This setting is required if the <code>BlockResponse</code> setting is <code>OVERRIDE</code>.<br/>BlockOverrideDnsType:  The DNS record's type. This determines the format of the record value that you provided in <code>BlockOverrideDomain</code>. Used for the rule action <code>BLOCK</code> with a <code>BlockResponse</code> setting of <code>OVERRIDE</code>. This setting is required if the <code>BlockResponse</code> setting is <code>OVERRIDE</code>.<br/>BlockOverrideDomain:  The custom DNS record to send back in response to the query. Used for the rule action <code>BLOCK</code> with a <code>BlockResponse</code> setting of <code>OVERRIDE</code>. This setting is required if the <code>BlockResponse</code> setting is <code>OVERRIDE</code>.<br/>BlockResponse:  The way that you want DNS Firewall to block the request, used with the rule action setting <code>BLOCK</code>.  <ul> <li>  <code>NODATA</code> - Respond indicating that the query was successful, but no response is available for it. </li> <li>  <code>NXDOMAIN</code> - Respond indicating that the domain name that's in the query doesn't exist. </li> <li>  <code>OVERRIDE</code> - Provide a custom override in the response. This option requires custom handling details in the rule's <code>BlockOverride*</code> settings.  </li> </ul> This setting is required if the rule action setting is <code>BLOCK</code>.<br/>Action:  The action that DNS Firewall should take on a DNS query when it matches one of the domains in the rule's domain list: <ul> <li>  <code>ALLOW</code> - Permit the request to go through. </li> <li>  <code>ALERT</code> - Permit the request and send metrics and logs to Cloud Watch. </li> <li>  <code>BLOCK</code> - Disallow the request. This option requires additional details in the rule's <code>BlockResponse</code>.  </li> </ul><br/>Priority:  The setting that determines the processing order of the rule in the rule group. DNS Firewall processes the rules in a rule group by order of priority, starting from the lowest setting. You must specify a unique priority for each rule in a rule group. To make it easier to insert rules later, leave space between the numbers, for example, use 100, 200, and so on. You can change the priority setting for the rules in a rule group at any time.<br/>FirewallDomainListId:  The ID of the domain list that you want to use in the rule. <br/>FirewallRuleGroupId:  The unique identifier of the firewall rule group where you want to create the rule. <br/>CreatorRequestId:  A unique string that identifies the request and that allows you to retry failed requests without the risk of running the operation twice. <code>CreatorRequestId</code> can be any unique string, for example, a date/time stamp. <br/>
        :return: FirewallRule:  The firewall rule that you just created. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ModificationTime</i> The date and time that the rule was last modified, in Unix time format and Coordinated Universal Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The date and time that the rule was created, in Unix time format and Coordinated Universal Time (UTC). <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatorRequestId</i> A unique string defined by you to identify the request. This allows you to retry failed requests without the risk of executing the operation twice. This can be any unique string, for example, a timestamp. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BlockOverrideTtl</i> The recommended amount of time, in seconds, for the DNS resolver or web browser to cache the provided override record. Used for the rule action <code>BLOCK</code> with a <code>BlockResponse</code> setting of <code>OVERRIDE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BlockOverrideDnsType</i> The DNS record's type. This determines the format of the record value that you provided in <code>BlockOverrideDomain</code>. Used for the rule action <code>BLOCK</code> with a <code>BlockResponse</code> setting of <code>OVERRIDE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BlockOverrideDomain</i> The custom DNS record to send back in response to the query. Used for the rule action <code>BLOCK</code> with a <code>BlockResponse</code> setting of <code>OVERRIDE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BlockResponse</i> The way that you want DNS Firewall to block the request. Used for the rule action setting <code>BLOCK</code>. <ul> <li>  <code>NODATA</code> - Respond indicating that the query was successful, but no response is available for it. </li> <li>  <code>NXDOMAIN</code> - Respond indicating that the domain name that's in the query doesn't exist. </li> <li>  <code>OVERRIDE</code> - Provide a custom override in the response. This option requires custom handling details in the rule's <code>BlockOverride*</code> settings.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Action</i> The action that DNS Firewall should take on a DNS query when it matches one of the domains in the rule's domain list: <ul> <li>  <code>ALLOW</code> - Permit the request to go through. </li> <li>  <code>ALERT</code> - Permit the request to go through but send an alert to the logs. </li> <li>  <code>BLOCK</code> - Disallow the request. If this is specified, additional handling details are provided in the rule's <code>BlockResponse</code> setting.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Priority</i> The priority of the rule in the rule group. This value must be unique within the rule group. DNS Firewall processes the rules in a rule group by order of priority, starting from the lowest setting.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the rule. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FirewallDomainListId</i> The ID of the domain list that's used in the rule. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FirewallRuleGroupId</i> The unique identifier of the firewall rule group of the rule. <br/>        """
        pass

    def create_firewall_rule_group(self, Name: str, CreatorRequestId: str, Tags: List[Tag]=None) -> CreateFirewallRuleGroupResponse:
        r"""Creates an empty DNS Firewall rule group for filtering DNS network traffic in a VPC. You can add rules to the new rule group by calling <a>CreateFirewallRule</a>. 

        :param self:
        :param Tags:  A list of the tag keys and values that you want to associate with the rule group. <br/>Name:  A name that lets you identify the rule group, to manage and use it.<br/>CreatorRequestId:  A unique string defined by you to identify the request. This allows you to retry failed requests without the risk of running the operation twice. This can be any unique string, for example, a timestamp. <br/>
        :return: FirewallRuleGroup:  A collection of rules used to filter DNS network traffic. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ModificationTime</i> The date and time that the rule group was last modified, in Unix time format and Coordinated Universal Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The date and time that the rule group was created, in Unix time format and Coordinated Universal Time (UTC). <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ShareStatus</i> Whether the rule group is shared with other AWS accounts, or was shared with the current account by another AWS account. Sharing is configured through AWS Resource Access Manager (AWS RAM).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatorRequestId</i> A unique string defined by you to identify the request. This allows you to retry failed requests without the risk of running the operation twice. This can be any unique string, for example, a timestamp. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> The AWS account ID for the account that created the rule group. When a rule group is shared with your account, this is the account that has shared the rule group with you. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusMessage</i> Additional information about the status of the rule group, if available.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the domain list. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RuleCount</i> The number of rules in the rule group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the rule group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The ARN (Amazon Resource Name) of the rule group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID of the rule group. <br/>        """
        pass

    def create_resolver_endpoint(self, IpAddresses: List[IpAddressRequest], Direction: str, SecurityGroupIds: List[ResourceId], CreatorRequestId: str, Name: str=None, Tags: List[Tag]=None) -> CreateResolverEndpointResponse:
        r"""Creates a Resolver endpoint. There are two types of Resolver endpoints, inbound and outbound: <ul> <li> An <i>inbound Resolver endpoint</i> forwards DNS queries to the DNS service for a VPC from your network. </li> <li> An <i>outbound Resolver endpoint</i> forwards DNS queries from the DNS service for a VPC to your network. </li> </ul>

        :param self:
        :param Tags:  A list of the tag keys and values that you want to associate with the endpoint.<br/>IpAddresses:  The subnets and IP addresses in your VPC that DNS queries originate from (for outbound endpoints) or that you forward DNS queries to (for inbound endpoints). The subnet ID uniquely identifies a VPC. <br/>Direction:  Specify the applicable value: <ul> <li>  <code>INBOUND</code>: Resolver forwards DNS queries to the DNS service for a VPC from your network </li> <li>  <code>OUTBOUND</code>: Resolver forwards DNS queries from the DNS service for a VPC to your network </li> </ul><br/>SecurityGroupIds:  The ID of one or more security groups that you want to use to control access to this VPC. The security group that you specify must include one or more inbound rules (for inbound Resolver endpoints) or outbound rules (for outbound Resolver endpoints). Inbound and outbound rules must allow TCP and UDP access. For inbound access, open port 53. For outbound access, open the port that you're using for DNS queries on your network.<br/>Name:  A friendly name that lets you easily find a configuration in the Resolver dashboard in the Route 53 console.<br/>CreatorRequestId:  A unique string that identifies the request and that allows failed requests to be retried without the risk of running the operation twice. <code>CreatorRequestId</code> can be any unique string, for example, a date/time stamp. <br/>
        :return: ResolverEndpoint:  Information about the <code>CreateResolverEndpoint</code> request, including the status of the request.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ModificationTime</i> The date and time that the endpoint was last modified, in Unix time format and Coordinated Universal Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The date and time that the endpoint was created, in Unix time format and Coordinated Universal Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusMessage</i> A detailed description of the status of the Resolver endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> A code that specifies the current status of the Resolver endpoint. Valid values include the following: <ul> <li>  <code>CREATING</code>: Resolver is creating and configuring one or more Amazon VPC network interfaces for this endpoint. </li> <li>  <code>OPERATIONAL</code>: The Amazon VPC network interfaces for this endpoint are correctly configured and able to pass inbound or outbound DNS queries between your network and Resolver. </li> <li>  <code>UPDATING</code>: Resolver is associating or disassociating one or more network interfaces with this endpoint. </li> <li>  <code>AUTO_RECOVERING</code>: Resolver is trying to recover one or more of the network interfaces that are associated with this endpoint. During the recovery process, the endpoint functions with limited capacity because of the limit on the number of DNS queries per IP address (per network interface). For the current limit, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DNSLimitations.html#limits-api-entities-resolver">Limits on Route 53 Resolver</a>. </li> <li>  <code>ACTION_NEEDED</code>: This endpoint is unhealthy, and Resolver can't automatically recover it. To resolve the problem, we recommend that you check each IP address that you associated with the endpoint. For each IP address that isn't available, add another IP address and then delete the IP address that isn't available. (An endpoint must always include at least two IP addresses.) A status of <code>ACTION_NEEDED</code> can have a variety of causes. Here are two common causes: <ul> <li> One or more of the network interfaces that are associated with the endpoint were deleted using Amazon VPC. </li> <li> The network interface couldn't be created for some reason that's outside the control of Resolver. </li> </ul> </li> <li>  <code>DELETING</code>: Resolver is deleting this endpoint and the associated network interfaces. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HostVPCId</i> The ID of the VPC that you want to create the Resolver endpoint in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IpAddressCount</i> The number of IP addresses that the Resolver endpoint can use for DNS queries.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Direction</i> Indicates whether the Resolver endpoint allows inbound or outbound DNS queries: <ul> <li>  <code>INBOUND</code>: allows DNS queries to your VPC from your network </li> <li>  <code>OUTBOUND</code>: allows DNS queries from your VPC to your network </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> The ID of one or more security groups that control access to this VPC. The security group must include one or more inbound rules (for inbound endpoints) or outbound rules (for outbound endpoints). Inbound and outbound rules must allow TCP and UDP access. For inbound access, open port 53. For outbound access, open the port that you're using for DNS queries on your network.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name that you assigned to the Resolver endpoint when you submitted a <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_CreateResolverEndpoint.html">CreateResolverEndpoint</a> request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The ARN (Amazon Resource Name) for the Resolver endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatorRequestId</i> A unique string that identifies the request that created the Resolver endpoint. The <code>CreatorRequestId</code> allows failed requests to be retried without the risk of running the operation twice.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID of the Resolver endpoint.<br/>        """
        pass

    def create_resolver_query_log_config(self, CreatorRequestId: str, DestinationArn: str, Name: str, Tags: List[Tag]=None) -> CreateResolverQueryLogConfigResponse:
        r"""Creates a Resolver query logging configuration, which defines where you want Resolver to save DNS query logs that originate in your VPCs. Resolver can log queries only for VPCs that are in the same Region as the query logging configuration. To specify which VPCs you want to log queries for, you use <code>AssociateResolverQueryLogConfig</code>. For more information, see <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_AssociateResolverQueryLogConfig.html">AssociateResolverQueryLogConfig</a>.  You can optionally use AWS Resource Access Manager (AWS RAM) to share a query logging configuration with other AWS accounts. The other accounts can then associate VPCs with the configuration. The query logs that Resolver creates for a configuration include all DNS queries that originate in all VPCs that are associated with the configuration.

        :param self:
        :param Tags:  A list of the tag keys and values that you want to associate with the query logging configuration.<br/>CreatorRequestId:  A unique string that identifies the request and that allows failed requests to be retried without the risk of running the operation twice. <code>CreatorRequestId</code> can be any unique string, for example, a date/time stamp. <br/>DestinationArn:  The ARN of the resource that you want Resolver to send query logs. You can send query logs to an S3 bucket, a CloudWatch Logs log group, or a Kinesis Data Firehose delivery stream. Examples of valid values include the following: <ul> <li>  <b>S3 bucket</b>:   <code>arn:aws:s3:::examplebucket</code>  You can optionally append a file prefix to the end of the ARN.  <code>arn:aws:s3:::examplebucket/development/</code>  </li> <li>  <b>CloudWatch Logs log group</b>:   <code>arn:aws:logs:us-west-1:123456789012:log-group:/mystack-testgroup-12ABC1AB12A1:*</code>  </li> <li>  <b>Kinesis Data Firehose delivery stream</b>:  <code>arn:aws:kinesis:us-east-2:0123456789:stream/my_stream_name</code>  </li> </ul><br/>Name:  The name that you want to give the query logging configuration.<br/>
        :return: ResolverQueryLogConfig:  Information about the <code>CreateResolverQueryLogConfig</code> request, including the status of the request.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The date and time that the query logging configuration was created, in Unix time format and Coordinated Universal Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatorRequestId</i> A unique string that identifies the request that created the query logging configuration. The <code>CreatorRequestId</code> allows failed requests to be retried without the risk of running the operation twice.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DestinationArn</i> The ARN of the resource that you want Resolver to send query logs: an Amazon S3 bucket, a CloudWatch Logs log group, or a Kinesis Data Firehose delivery stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the query logging configuration. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The ARN for the query logging configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociationCount</i> The number of VPCs that are associated with the query logging configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ShareStatus</i> An indication of whether the query logging configuration is shared with other AWS accounts, or was shared with the current account by another AWS account. Sharing is configured through AWS Resource Access Manager (AWS RAM).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the specified query logging configuration. Valid values include the following: <ul> <li>  <code>CREATING</code>: Resolver is creating the query logging configuration. </li> <li>  <code>CREATED</code>: The query logging configuration was successfully created. Resolver is logging queries that originate in the specified VPC. </li> <li>  <code>DELETING</code>: Resolver is deleting this query logging configuration. </li> <li>  <code>FAILED</code>: Resolver can't deliver logs to the location that is specified in the query logging configuration. Here are two common causes: <ul> <li> The specified destination (for example, an Amazon S3 bucket) was deleted. </li> <li> Permissions don't allow sending logs to the destination. </li> </ul> </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> The AWS account ID for the account that created the query logging configuration. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID for the query logging configuration.<br/>        """
        pass

    def create_resolver_rule(self, DomainName: str, RuleType: str, CreatorRequestId: str, Name: str=None, TargetIps: List[TargetAddress]=None, ResolverEndpointId: str=None, Tags: List[Tag]=None) -> CreateResolverRuleResponse:
        r"""For DNS queries that originate in your VPCs, specifies which Resolver endpoint the queries pass through, one domain name that you want to forward to your network, and the IP addresses of the DNS resolvers in your network.

        :param self:
        :param Tags:  A list of the tag keys and values that you want to associate with the endpoint.<br/>ResolverEndpointId:  The ID of the outbound Resolver endpoint that you want to use to route DNS queries to the IP addresses that you specify in <code>TargetIps</code>.<br/>TargetIps:  The IPs that you want Resolver to forward DNS queries to. You can specify only IPv4 addresses. Separate IP addresses with a space.  <code>TargetIps</code> is available only when the value of <code>Rule type</code> is <code>FORWARD</code>.<br/>DomainName:  DNS queries for this domain name are forwarded to the IP addresses that you specify in <code>TargetIps</code>. If a query matches multiple Resolver rules (example.com and www.example.com), outbound DNS queries are routed using the Resolver rule that contains the most specific domain name (www.example.com).<br/>RuleType:  When you want to forward DNS queries for specified domain name to resolvers on your network, specify <code>FORWARD</code>. When you have a forwarding rule to forward DNS queries for a domain to your network and you want Resolver to process queries for a subdomain of that domain, specify <code>SYSTEM</code>. For example, to forward DNS queries for example.com to resolvers on your network, you create a rule and specify <code>FORWARD</code> for <code>RuleType</code>. To then have Resolver process queries for apex.example.com, you create a rule and specify <code>SYSTEM</code> for <code>RuleType</code>. Currently, only Resolver can create rules that have a value of <code>RECURSIVE</code> for <code>RuleType</code>.<br/>Name:  A friendly name that lets you easily find a rule in the Resolver dashboard in the Route 53 console.<br/>CreatorRequestId:  A unique string that identifies the request and that allows failed requests to be retried without the risk of running the operation twice. <code>CreatorRequestId</code> can be any unique string, for example, a date/time stamp. <br/>
        :return: ResolverRule:  Information about the <code>CreateResolverRule</code> request, including the status of the request.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ModificationTime</i> The date and time that the Resolver rule was last updated, in Unix time format and Coordinated Universal Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The date and time that the Resolver rule was created, in Unix time format and Coordinated Universal Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ShareStatus</i> Whether the rule is shared and, if so, whether the current account is sharing the rule with another account, or another account is sharing the rule with the current account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> When a rule is shared with another AWS account, the account ID of the account that the rule is shared with.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResolverEndpointId</i> The ID of the endpoint that the rule is associated with.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetIps</i> An array that contains the IP addresses and ports that an outbound endpoint forwards DNS queries to. Typically, these are the IP addresses of DNS resolvers on your network. Specify IPv4 addresses. IPv6 is not supported.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name for the Resolver rule, which you specified when you created the Resolver rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RuleType</i> When you want to forward DNS queries for specified domain name to resolvers on your network, specify <code>FORWARD</code>. When you have a forwarding rule to forward DNS queries for a domain to your network and you want Resolver to process queries for a subdomain of that domain, specify <code>SYSTEM</code>. For example, to forward DNS queries for example.com to resolvers on your network, you create a rule and specify <code>FORWARD</code> for <code>RuleType</code>. To then have Resolver process queries for apex.example.com, you create a rule and specify <code>SYSTEM</code> for <code>RuleType</code>. Currently, only Resolver can create rules that have a value of <code>RECURSIVE</code> for <code>RuleType</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusMessage</i> A detailed description of the status of a Resolver rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> A code that specifies the current status of the Resolver rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainName</i> DNS queries for this domain name are forwarded to the IP addresses that are specified in <code>TargetIps</code>. If a query matches multiple Resolver rules (example.com and www.example.com), the query is routed using the Resolver rule that contains the most specific domain name (www.example.com).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The ARN (Amazon Resource Name) for the Resolver rule specified by <code>Id</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatorRequestId</i> A unique string that you specified when you created the Resolver rule. <code>CreatorRequestId</code> identifies the request and allows failed requests to be retried without the risk of running the operation twice. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID that Resolver assigned to the Resolver rule when you created it.<br/>        """
        pass

    def delete_firewall_domain_list(self, FirewallDomainListId: str) -> DeleteFirewallDomainListResponse:
        r"""Deletes the specified domain list. 

        :param self:
        :param FirewallDomainListId:  The ID of the domain list that you want to delete. <br/>
        :return: FirewallDomainList:  The domain list that you just deleted. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ModificationTime</i> The date and time that the domain list was last modified, in Unix time format and Coordinated Universal Time (UTC). <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The date and time that the domain list was created, in Unix time format and Coordinated Universal Time (UTC). <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatorRequestId</i> A unique string defined by you to identify the request. This allows you to retry failed requests without the risk of running the operation twice. This can be any unique string, for example, a timestamp. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ManagedOwnerName</i> The owner of the list, used only for lists that are not managed by you. For example, the managed domain list <code>AWSManagedDomainsMalwareDomainList</code> has the managed owner name <code>Route 53 Resolver DNS Firewall</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusMessage</i> Additional information about the status of the list, if available.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the domain list. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainCount</i> The number of domain names that are specified in the domain list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the domain list. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the firewall domain list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID of the domain list. <br/>        """
        pass

    def delete_firewall_rule(self, FirewallDomainListId: str, FirewallRuleGroupId: str) -> DeleteFirewallRuleResponse:
        r"""Deletes the specified firewall rule.

        :param self:
        :param FirewallDomainListId:  The ID of the domain list that's used in the rule. <br/>FirewallRuleGroupId:  The unique identifier of the firewall rule group that you want to delete the rule from. <br/>
        :return: FirewallRule:  The specification for the firewall rule that you just deleted.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ModificationTime</i> The date and time that the rule was last modified, in Unix time format and Coordinated Universal Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The date and time that the rule was created, in Unix time format and Coordinated Universal Time (UTC). <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatorRequestId</i> A unique string defined by you to identify the request. This allows you to retry failed requests without the risk of executing the operation twice. This can be any unique string, for example, a timestamp. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BlockOverrideTtl</i> The recommended amount of time, in seconds, for the DNS resolver or web browser to cache the provided override record. Used for the rule action <code>BLOCK</code> with a <code>BlockResponse</code> setting of <code>OVERRIDE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BlockOverrideDnsType</i> The DNS record's type. This determines the format of the record value that you provided in <code>BlockOverrideDomain</code>. Used for the rule action <code>BLOCK</code> with a <code>BlockResponse</code> setting of <code>OVERRIDE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BlockOverrideDomain</i> The custom DNS record to send back in response to the query. Used for the rule action <code>BLOCK</code> with a <code>BlockResponse</code> setting of <code>OVERRIDE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BlockResponse</i> The way that you want DNS Firewall to block the request. Used for the rule action setting <code>BLOCK</code>. <ul> <li>  <code>NODATA</code> - Respond indicating that the query was successful, but no response is available for it. </li> <li>  <code>NXDOMAIN</code> - Respond indicating that the domain name that's in the query doesn't exist. </li> <li>  <code>OVERRIDE</code> - Provide a custom override in the response. This option requires custom handling details in the rule's <code>BlockOverride*</code> settings.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Action</i> The action that DNS Firewall should take on a DNS query when it matches one of the domains in the rule's domain list: <ul> <li>  <code>ALLOW</code> - Permit the request to go through. </li> <li>  <code>ALERT</code> - Permit the request to go through but send an alert to the logs. </li> <li>  <code>BLOCK</code> - Disallow the request. If this is specified, additional handling details are provided in the rule's <code>BlockResponse</code> setting.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Priority</i> The priority of the rule in the rule group. This value must be unique within the rule group. DNS Firewall processes the rules in a rule group by order of priority, starting from the lowest setting.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the rule. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FirewallDomainListId</i> The ID of the domain list that's used in the rule. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FirewallRuleGroupId</i> The unique identifier of the firewall rule group of the rule. <br/>        """
        pass

    def delete_firewall_rule_group(self, FirewallRuleGroupId: str) -> DeleteFirewallRuleGroupResponse:
        r"""Deletes the specified firewall rule group. 

        :param self:
        :param FirewallRuleGroupId:  The unique identifier of the firewall rule group that you want to delete. <br/>
        :return: FirewallRuleGroup:  A collection of rules used to filter DNS network traffic. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ModificationTime</i> The date and time that the rule group was last modified, in Unix time format and Coordinated Universal Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The date and time that the rule group was created, in Unix time format and Coordinated Universal Time (UTC). <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ShareStatus</i> Whether the rule group is shared with other AWS accounts, or was shared with the current account by another AWS account. Sharing is configured through AWS Resource Access Manager (AWS RAM).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatorRequestId</i> A unique string defined by you to identify the request. This allows you to retry failed requests without the risk of running the operation twice. This can be any unique string, for example, a timestamp. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> The AWS account ID for the account that created the rule group. When a rule group is shared with your account, this is the account that has shared the rule group with you. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusMessage</i> Additional information about the status of the rule group, if available.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the domain list. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RuleCount</i> The number of rules in the rule group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the rule group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The ARN (Amazon Resource Name) of the rule group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID of the rule group. <br/>        """
        pass

    def delete_resolver_endpoint(self, ResolverEndpointId: str) -> DeleteResolverEndpointResponse:
        r"""Deletes a Resolver endpoint. The effect of deleting a Resolver endpoint depends on whether it's an inbound or an outbound Resolver endpoint: <ul> <li>  <b>Inbound</b>: DNS queries from your network are no longer routed to the DNS service for the specified VPC. </li> <li>  <b>Outbound</b>: DNS queries from a VPC are no longer routed to your network. </li> </ul>

        :param self:
        :param ResolverEndpointId:  The ID of the Resolver endpoint that you want to delete.<br/>
        :return: ResolverEndpoint:  Information about the <code>DeleteResolverEndpoint</code> request, including the status of the request.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ModificationTime</i> The date and time that the endpoint was last modified, in Unix time format and Coordinated Universal Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The date and time that the endpoint was created, in Unix time format and Coordinated Universal Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusMessage</i> A detailed description of the status of the Resolver endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> A code that specifies the current status of the Resolver endpoint. Valid values include the following: <ul> <li>  <code>CREATING</code>: Resolver is creating and configuring one or more Amazon VPC network interfaces for this endpoint. </li> <li>  <code>OPERATIONAL</code>: The Amazon VPC network interfaces for this endpoint are correctly configured and able to pass inbound or outbound DNS queries between your network and Resolver. </li> <li>  <code>UPDATING</code>: Resolver is associating or disassociating one or more network interfaces with this endpoint. </li> <li>  <code>AUTO_RECOVERING</code>: Resolver is trying to recover one or more of the network interfaces that are associated with this endpoint. During the recovery process, the endpoint functions with limited capacity because of the limit on the number of DNS queries per IP address (per network interface). For the current limit, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DNSLimitations.html#limits-api-entities-resolver">Limits on Route 53 Resolver</a>. </li> <li>  <code>ACTION_NEEDED</code>: This endpoint is unhealthy, and Resolver can't automatically recover it. To resolve the problem, we recommend that you check each IP address that you associated with the endpoint. For each IP address that isn't available, add another IP address and then delete the IP address that isn't available. (An endpoint must always include at least two IP addresses.) A status of <code>ACTION_NEEDED</code> can have a variety of causes. Here are two common causes: <ul> <li> One or more of the network interfaces that are associated with the endpoint were deleted using Amazon VPC. </li> <li> The network interface couldn't be created for some reason that's outside the control of Resolver. </li> </ul> </li> <li>  <code>DELETING</code>: Resolver is deleting this endpoint and the associated network interfaces. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HostVPCId</i> The ID of the VPC that you want to create the Resolver endpoint in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IpAddressCount</i> The number of IP addresses that the Resolver endpoint can use for DNS queries.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Direction</i> Indicates whether the Resolver endpoint allows inbound or outbound DNS queries: <ul> <li>  <code>INBOUND</code>: allows DNS queries to your VPC from your network </li> <li>  <code>OUTBOUND</code>: allows DNS queries from your VPC to your network </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> The ID of one or more security groups that control access to this VPC. The security group must include one or more inbound rules (for inbound endpoints) or outbound rules (for outbound endpoints). Inbound and outbound rules must allow TCP and UDP access. For inbound access, open port 53. For outbound access, open the port that you're using for DNS queries on your network.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name that you assigned to the Resolver endpoint when you submitted a <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_CreateResolverEndpoint.html">CreateResolverEndpoint</a> request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The ARN (Amazon Resource Name) for the Resolver endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatorRequestId</i> A unique string that identifies the request that created the Resolver endpoint. The <code>CreatorRequestId</code> allows failed requests to be retried without the risk of running the operation twice.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID of the Resolver endpoint.<br/>        """
        pass

    def delete_resolver_query_log_config(self, ResolverQueryLogConfigId: str) -> DeleteResolverQueryLogConfigResponse:
        r"""Deletes a query logging configuration. When you delete a configuration, Resolver stops logging DNS queries for all of the Amazon VPCs that are associated with the configuration. This also applies if the query logging configuration is shared with other AWS accounts, and the other accounts have associated VPCs with the shared configuration. Before you can delete a query logging configuration, you must first disassociate all VPCs from the configuration. See <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_DisassociateResolverQueryLogConfig.html">DisassociateResolverQueryLogConfig</a>. If you used Resource Access Manager (RAM) to share a query logging configuration with other accounts, you must stop sharing the configuration before you can delete a configuration. The accounts that you shared the configuration with can first disassociate VPCs that they associated with the configuration, but that's not necessary. If you stop sharing the configuration, those VPCs are automatically disassociated from the configuration.

        :param self:
        :param ResolverQueryLogConfigId:  The ID of the query logging configuration that you want to delete.<br/>
        :return: ResolverQueryLogConfig:  Information about the query logging configuration that you deleted, including the status of the request.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The date and time that the query logging configuration was created, in Unix time format and Coordinated Universal Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatorRequestId</i> A unique string that identifies the request that created the query logging configuration. The <code>CreatorRequestId</code> allows failed requests to be retried without the risk of running the operation twice.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DestinationArn</i> The ARN of the resource that you want Resolver to send query logs: an Amazon S3 bucket, a CloudWatch Logs log group, or a Kinesis Data Firehose delivery stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the query logging configuration. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The ARN for the query logging configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociationCount</i> The number of VPCs that are associated with the query logging configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ShareStatus</i> An indication of whether the query logging configuration is shared with other AWS accounts, or was shared with the current account by another AWS account. Sharing is configured through AWS Resource Access Manager (AWS RAM).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the specified query logging configuration. Valid values include the following: <ul> <li>  <code>CREATING</code>: Resolver is creating the query logging configuration. </li> <li>  <code>CREATED</code>: The query logging configuration was successfully created. Resolver is logging queries that originate in the specified VPC. </li> <li>  <code>DELETING</code>: Resolver is deleting this query logging configuration. </li> <li>  <code>FAILED</code>: Resolver can't deliver logs to the location that is specified in the query logging configuration. Here are two common causes: <ul> <li> The specified destination (for example, an Amazon S3 bucket) was deleted. </li> <li> Permissions don't allow sending logs to the destination. </li> </ul> </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> The AWS account ID for the account that created the query logging configuration. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID for the query logging configuration.<br/>        """
        pass

    def delete_resolver_rule(self, ResolverRuleId: str) -> DeleteResolverRuleResponse:
        r"""Deletes a Resolver rule. Before you can delete a Resolver rule, you must disassociate it from all the VPCs that you associated the Resolver rule with. For more information, see <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_DisassociateResolverRule.html">DisassociateResolverRule</a>.

        :param self:
        :param ResolverRuleId:  The ID of the Resolver rule that you want to delete.<br/>
        :return: ResolverRule:  Information about the <code>DeleteResolverRule</code> request, including the status of the request.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ModificationTime</i> The date and time that the Resolver rule was last updated, in Unix time format and Coordinated Universal Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The date and time that the Resolver rule was created, in Unix time format and Coordinated Universal Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ShareStatus</i> Whether the rule is shared and, if so, whether the current account is sharing the rule with another account, or another account is sharing the rule with the current account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> When a rule is shared with another AWS account, the account ID of the account that the rule is shared with.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResolverEndpointId</i> The ID of the endpoint that the rule is associated with.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetIps</i> An array that contains the IP addresses and ports that an outbound endpoint forwards DNS queries to. Typically, these are the IP addresses of DNS resolvers on your network. Specify IPv4 addresses. IPv6 is not supported.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name for the Resolver rule, which you specified when you created the Resolver rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RuleType</i> When you want to forward DNS queries for specified domain name to resolvers on your network, specify <code>FORWARD</code>. When you have a forwarding rule to forward DNS queries for a domain to your network and you want Resolver to process queries for a subdomain of that domain, specify <code>SYSTEM</code>. For example, to forward DNS queries for example.com to resolvers on your network, you create a rule and specify <code>FORWARD</code> for <code>RuleType</code>. To then have Resolver process queries for apex.example.com, you create a rule and specify <code>SYSTEM</code> for <code>RuleType</code>. Currently, only Resolver can create rules that have a value of <code>RECURSIVE</code> for <code>RuleType</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusMessage</i> A detailed description of the status of a Resolver rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> A code that specifies the current status of the Resolver rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainName</i> DNS queries for this domain name are forwarded to the IP addresses that are specified in <code>TargetIps</code>. If a query matches multiple Resolver rules (example.com and www.example.com), the query is routed using the Resolver rule that contains the most specific domain name (www.example.com).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The ARN (Amazon Resource Name) for the Resolver rule specified by <code>Id</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatorRequestId</i> A unique string that you specified when you created the Resolver rule. <code>CreatorRequestId</code> identifies the request and allows failed requests to be retried without the risk of running the operation twice. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID that Resolver assigned to the Resolver rule when you created it.<br/>        """
        pass

    def disassociate_firewall_rule_group(self, FirewallRuleGroupAssociationId: str) -> DisassociateFirewallRuleGroupResponse:
        r"""Disassociates a <a>FirewallRuleGroup</a> from a VPC, to remove DNS filtering from the VPC. 

        :param self:
        :param FirewallRuleGroupAssociationId:  The identifier of the <a>FirewallRuleGroupAssociation</a>. <br/>
        :return: FirewallRuleGroupAssociation:  The firewall rule group association that you just removed. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ModificationTime</i> The date and time that the association was last modified, in Unix time format and Coordinated Universal Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The date and time that the association was created, in Unix time format and Coordinated Universal Time (UTC). <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatorRequestId</i> A unique string defined by you to identify the request. This allows you to retry failed requests without the risk of running the operation twice. This can be any unique string, for example, a timestamp. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusMessage</i> Additional information about the status of the response, if available.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current status of the association.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ManagedOwnerName</i> The owner of the association, used only for associations that are not managed by you. If you use AWS Firewall Manager to manage your DNS Firewalls, then this reports Firewall Manager as the managed owner.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MutationProtection</i> If enabled, this setting disallows modification or removal of the association, to help prevent against accidentally altering DNS firewall protections. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Priority</i> The setting that determines the processing order of the rule group among the rule groups that are associated with a single VPC. DNS Firewall filters VPC traffic starting from rule group with the lowest numeric priority setting. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the association.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The unique identifier of the VPC that is associated with the rule group. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FirewallRuleGroupId</i> The unique identifier of the firewall rule group. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the firewall rule group association.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The identifier for the association.<br/>        """
        pass

    def disassociate_resolver_endpoint_ip_address(self, IpAddress: IpAddressUpdate, ResolverEndpointId: str) -> DisassociateResolverEndpointIpAddressResponse:
        r"""Removes IP addresses from an inbound or an outbound Resolver endpoint. If you want to remove more than one IP address, submit one <code>DisassociateResolverEndpointIpAddress</code> request for each IP address. To add an IP address to an endpoint, see <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_AssociateResolverEndpointIpAddress.html">AssociateResolverEndpointIpAddress</a>. 

        :param self:
        :param IpAddress:  The IPv4 address that you want to remove from a Resolver endpoint.:<br/>ResolverEndpointId:  The ID of the Resolver endpoint that you want to disassociate an IP address from.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Ip</i> The new IP address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetId</i> The ID of the subnet that includes the IP address that you want to update. To get this ID, use <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_GetResolverEndpoint.html">GetResolverEndpoint</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IpId</i>  <i>Only when removing an IP address from a Resolver endpoint</i>: The ID of the IP address that you want to remove. To get this ID, use <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_GetResolverEndpoint.html">GetResolverEndpoint</a>.<br/>
        :return: ResolverEndpoint:  The response to an <code>DisassociateResolverEndpointIpAddress</code> request.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ModificationTime</i> The date and time that the endpoint was last modified, in Unix time format and Coordinated Universal Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The date and time that the endpoint was created, in Unix time format and Coordinated Universal Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusMessage</i> A detailed description of the status of the Resolver endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> A code that specifies the current status of the Resolver endpoint. Valid values include the following: <ul> <li>  <code>CREATING</code>: Resolver is creating and configuring one or more Amazon VPC network interfaces for this endpoint. </li> <li>  <code>OPERATIONAL</code>: The Amazon VPC network interfaces for this endpoint are correctly configured and able to pass inbound or outbound DNS queries between your network and Resolver. </li> <li>  <code>UPDATING</code>: Resolver is associating or disassociating one or more network interfaces with this endpoint. </li> <li>  <code>AUTO_RECOVERING</code>: Resolver is trying to recover one or more of the network interfaces that are associated with this endpoint. During the recovery process, the endpoint functions with limited capacity because of the limit on the number of DNS queries per IP address (per network interface). For the current limit, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DNSLimitations.html#limits-api-entities-resolver">Limits on Route 53 Resolver</a>. </li> <li>  <code>ACTION_NEEDED</code>: This endpoint is unhealthy, and Resolver can't automatically recover it. To resolve the problem, we recommend that you check each IP address that you associated with the endpoint. For each IP address that isn't available, add another IP address and then delete the IP address that isn't available. (An endpoint must always include at least two IP addresses.) A status of <code>ACTION_NEEDED</code> can have a variety of causes. Here are two common causes: <ul> <li> One or more of the network interfaces that are associated with the endpoint were deleted using Amazon VPC. </li> <li> The network interface couldn't be created for some reason that's outside the control of Resolver. </li> </ul> </li> <li>  <code>DELETING</code>: Resolver is deleting this endpoint and the associated network interfaces. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HostVPCId</i> The ID of the VPC that you want to create the Resolver endpoint in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IpAddressCount</i> The number of IP addresses that the Resolver endpoint can use for DNS queries.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Direction</i> Indicates whether the Resolver endpoint allows inbound or outbound DNS queries: <ul> <li>  <code>INBOUND</code>: allows DNS queries to your VPC from your network </li> <li>  <code>OUTBOUND</code>: allows DNS queries from your VPC to your network </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> The ID of one or more security groups that control access to this VPC. The security group must include one or more inbound rules (for inbound endpoints) or outbound rules (for outbound endpoints). Inbound and outbound rules must allow TCP and UDP access. For inbound access, open port 53. For outbound access, open the port that you're using for DNS queries on your network.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name that you assigned to the Resolver endpoint when you submitted a <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_CreateResolverEndpoint.html">CreateResolverEndpoint</a> request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The ARN (Amazon Resource Name) for the Resolver endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatorRequestId</i> A unique string that identifies the request that created the Resolver endpoint. The <code>CreatorRequestId</code> allows failed requests to be retried without the risk of running the operation twice.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID of the Resolver endpoint.<br/>        """
        pass

    def disassociate_resolver_query_log_config(self, ResourceId: str, ResolverQueryLogConfigId: str) -> DisassociateResolverQueryLogConfigResponse:
        r"""Disassociates a VPC from a query logging configuration. <note> Before you can delete a query logging configuration, you must first disassociate all VPCs from the configuration. If you used AWS Resource Access Manager (AWS RAM) to share a query logging configuration with other accounts, VPCs can be disassociated from the configuration in the following ways: <ul> <li> The accounts that you shared the configuration with can disassociate VPCs from the configuration. </li> <li> You can stop sharing the configuration. </li> </ul> </note>

        :param self:
        :param ResourceId:  The ID of the Amazon VPC that you want to disassociate from a specified query logging configuration.<br/>ResolverQueryLogConfigId:  The ID of the query logging configuration that you want to disassociate a specified VPC from.<br/>
        :return: ResolverQueryLogConfigAssociation:  A complex type that contains settings for the association that you deleted between an Amazon VPC and a query logging configuration.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The date and time that the VPC was associated with the query logging configuration, in Unix time format and Coordinated Universal Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorMessage</i> Contains additional information about the error. If the value or <code>Error</code> is null, the value of <code>ErrorMessage</code> also is null.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Error</i> If the value of <code>Status</code> is <code>FAILED</code>, the value of <code>Error</code> indicates the cause: <ul> <li>  <code>DESTINATION_NOT_FOUND</code>: The specified destination (for example, an Amazon S3 bucket) was deleted. </li> <li>  <code>ACCESS_DENIED</code>: Permissions don't allow sending logs to the destination. </li> </ul> If the value of <code>Status</code> is a value other than <code>FAILED</code>, <code>Error</code> is null. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the specified query logging association. Valid values include the following: <ul> <li>  <code>CREATING</code>: Resolver is creating an association between an Amazon VPC and a query logging configuration. </li> <li>  <code>CREATED</code>: The association between an Amazon VPC and a query logging configuration was successfully created. Resolver is logging queries that originate in the specified VPC. </li> <li>  <code>DELETING</code>: Resolver is deleting this query logging association. </li> <li>  <code>FAILED</code>: Resolver either couldn't create or couldn't delete the query logging association. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceId</i> The ID of the Amazon VPC that is associated with the query logging configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResolverQueryLogConfigId</i> The ID of the query logging configuration that a VPC is associated with.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID of the query logging association.<br/>        """
        pass

    def disassociate_resolver_rule(self, ResolverRuleId: str, VPCId: str) -> DisassociateResolverRuleResponse:
        r"""Removes the association between a specified Resolver rule and a specified VPC. <important> If you disassociate a Resolver rule from a VPC, Resolver stops forwarding DNS queries for the domain name that you specified in the Resolver rule.  </important>

        :param self:
        :param ResolverRuleId:  The ID of the Resolver rule that you want to disassociate from the specified VPC.<br/>VPCId:  The ID of the VPC that you want to disassociate the Resolver rule from.<br/>
        :return: ResolverRuleAssociation:  Information about the <code>DisassociateResolverRule</code> request, including the status of the request.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusMessage</i> A detailed description of the status of the association between a Resolver rule and a VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> A code that specifies the current status of the association between a Resolver rule and a VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VPCId</i> The ID of the VPC that you associated the Resolver rule with.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of an association between a Resolver rule and a VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResolverRuleId</i> The ID of the Resolver rule that you associated with the VPC that is specified by <code>VPCId</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID of the association between a Resolver rule and a VPC. Resolver assigns this value when you submit an <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_AssociateResolverRule.html">AssociateResolverRule</a> request.<br/>        """
        pass

    def get_firewall_config(self, ResourceId: str) -> GetFirewallConfigResponse:
        r"""Retrieves the configuration of the firewall behavior provided by DNS Firewall for a single VPC from Amazon Virtual Private Cloud (Amazon VPC). 

        :param self:
        :param ResourceId:  The ID of the VPC from Amazon VPC that the configuration is for.<br/>
        :return: FirewallConfig:  Configuration of the firewall behavior provided by DNS Firewall for a single VPC from AmazonVPC. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FirewallFailOpen</i> Determines how DNS Firewall operates during failures, for example when all traffic that is sent to DNS Firewall fails to receive a reply.  <ul> <li> By default, fail open is disabled, which means the failure mode is closed. This approach favors security over availability. DNS Firewall returns a failure error when it is unable to properly evaluate a query.  </li> <li> If you enable this option, the failure mode is open. This approach favors availability over security. DNS Firewall allows queries to proceed if it is unable to properly evaluate them.  </li> </ul> This behavior is only enforced for VPCs that have at least one DNS Firewall rule group association. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> The AWS account ID of the owner of the VPC that this firewall configuration applies to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceId</i> The ID of the VPC that this firewall configuration applies to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID of the firewall configuration.<br/>        """
        pass

    def get_firewall_domain_list(self, FirewallDomainListId: str) -> GetFirewallDomainListResponse:
        r"""Retrieves the specified firewall domain list.

        :param self:
        :param FirewallDomainListId:  The ID of the domain list. <br/>
        :return: FirewallDomainList:  The domain list that you requested. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ModificationTime</i> The date and time that the domain list was last modified, in Unix time format and Coordinated Universal Time (UTC). <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The date and time that the domain list was created, in Unix time format and Coordinated Universal Time (UTC). <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatorRequestId</i> A unique string defined by you to identify the request. This allows you to retry failed requests without the risk of running the operation twice. This can be any unique string, for example, a timestamp. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ManagedOwnerName</i> The owner of the list, used only for lists that are not managed by you. For example, the managed domain list <code>AWSManagedDomainsMalwareDomainList</code> has the managed owner name <code>Route 53 Resolver DNS Firewall</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusMessage</i> Additional information about the status of the list, if available.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the domain list. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainCount</i> The number of domain names that are specified in the domain list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the domain list. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the firewall domain list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID of the domain list. <br/>        """
        pass

    def get_firewall_rule_group(self, FirewallRuleGroupId: str) -> GetFirewallRuleGroupResponse:
        r"""Retrieves the specified firewall rule group. 

        :param self:
        :param FirewallRuleGroupId:  The unique identifier of the firewall rule group. <br/>
        :return: FirewallRuleGroup:  A collection of rules used to filter DNS network traffic. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ModificationTime</i> The date and time that the rule group was last modified, in Unix time format and Coordinated Universal Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The date and time that the rule group was created, in Unix time format and Coordinated Universal Time (UTC). <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ShareStatus</i> Whether the rule group is shared with other AWS accounts, or was shared with the current account by another AWS account. Sharing is configured through AWS Resource Access Manager (AWS RAM).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatorRequestId</i> A unique string defined by you to identify the request. This allows you to retry failed requests without the risk of running the operation twice. This can be any unique string, for example, a timestamp. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> The AWS account ID for the account that created the rule group. When a rule group is shared with your account, this is the account that has shared the rule group with you. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusMessage</i> Additional information about the status of the rule group, if available.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the domain list. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RuleCount</i> The number of rules in the rule group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the rule group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The ARN (Amazon Resource Name) of the rule group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID of the rule group. <br/>        """
        pass

    def get_firewall_rule_group_association(self, FirewallRuleGroupAssociationId: str) -> GetFirewallRuleGroupAssociationResponse:
        r"""Retrieves a firewall rule group association, which enables DNS filtering for a VPC with one rule group. A VPC can have more than one firewall rule group association, and a rule group can be associated with more than one VPC.

        :param self:
        :param FirewallRuleGroupAssociationId:  The identifier of the <a>FirewallRuleGroupAssociation</a>. <br/>
        :return: FirewallRuleGroupAssociation:  The association that you requested. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ModificationTime</i> The date and time that the association was last modified, in Unix time format and Coordinated Universal Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The date and time that the association was created, in Unix time format and Coordinated Universal Time (UTC). <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatorRequestId</i> A unique string defined by you to identify the request. This allows you to retry failed requests without the risk of running the operation twice. This can be any unique string, for example, a timestamp. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusMessage</i> Additional information about the status of the response, if available.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current status of the association.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ManagedOwnerName</i> The owner of the association, used only for associations that are not managed by you. If you use AWS Firewall Manager to manage your DNS Firewalls, then this reports Firewall Manager as the managed owner.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MutationProtection</i> If enabled, this setting disallows modification or removal of the association, to help prevent against accidentally altering DNS firewall protections. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Priority</i> The setting that determines the processing order of the rule group among the rule groups that are associated with a single VPC. DNS Firewall filters VPC traffic starting from rule group with the lowest numeric priority setting. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the association.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The unique identifier of the VPC that is associated with the rule group. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FirewallRuleGroupId</i> The unique identifier of the firewall rule group. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the firewall rule group association.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The identifier for the association.<br/>        """
        pass

    def get_firewall_rule_group_policy(self, Arn: str) -> GetFirewallRuleGroupPolicyResponse:
        r"""Returns the AWS Identity and Access Management (AWS IAM) policy for sharing the specified rule group. You can use the policy to share the rule group using AWS Resource Access Manager (AWS RAM). 

        :param self:
        :param Arn:  The ARN (Amazon Resource Name) for the rule group.<br/>
        :return: FirewallRuleGroupPolicy:  The AWS Identity and Access Management (AWS IAM) policy for sharing the specified rule group. You can use the policy to share the rule group using AWS Resource Access Manager (AWS RAM). <br/>        """
        pass

    def get_resolver_dnssec_config(self, ResourceId: str) -> GetResolverDnssecConfigResponse:
        r"""Gets DNSSEC validation information for a specified resource.

        :param self:
        :param ResourceId:  The ID of the virtual private cloud (VPC) for the DNSSEC validation status.<br/>
        :return: ResolverDNSSECConfig:  The information about a configuration for DNSSEC validation.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ValidationStatus</i> The validation status for a DNSSEC configuration. The status can be one of the following: <ul> <li>  <b>ENABLING:</b> DNSSEC validation is being enabled but is not complete. </li> <li>  <b>ENABLED:</b> DNSSEC validation is enabled. </li> <li>  <b>DISABLING:</b> DNSSEC validation is being disabled but is not complete. </li> <li>  <b>DISABLED</b> DNSSEC validation is disabled. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceId</i> The ID of the virtual private cloud (VPC) that you're configuring the DNSSEC validation status for.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> The owner account ID of the virtual private cloud (VPC) for a configuration for DNSSEC validation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID for a configuration for DNSSEC validation.<br/>        """
        pass

    def get_resolver_endpoint(self, ResolverEndpointId: str) -> GetResolverEndpointResponse:
        r"""Gets information about a specified Resolver endpoint, such as whether it's an inbound or an outbound Resolver endpoint, and the current status of the endpoint.

        :param self:
        :param ResolverEndpointId:  The ID of the Resolver endpoint that you want to get information about.<br/>
        :return: ResolverEndpoint:  Information about the Resolver endpoint that you specified in a <code>GetResolverEndpoint</code> request.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ModificationTime</i> The date and time that the endpoint was last modified, in Unix time format and Coordinated Universal Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The date and time that the endpoint was created, in Unix time format and Coordinated Universal Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusMessage</i> A detailed description of the status of the Resolver endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> A code that specifies the current status of the Resolver endpoint. Valid values include the following: <ul> <li>  <code>CREATING</code>: Resolver is creating and configuring one or more Amazon VPC network interfaces for this endpoint. </li> <li>  <code>OPERATIONAL</code>: The Amazon VPC network interfaces for this endpoint are correctly configured and able to pass inbound or outbound DNS queries between your network and Resolver. </li> <li>  <code>UPDATING</code>: Resolver is associating or disassociating one or more network interfaces with this endpoint. </li> <li>  <code>AUTO_RECOVERING</code>: Resolver is trying to recover one or more of the network interfaces that are associated with this endpoint. During the recovery process, the endpoint functions with limited capacity because of the limit on the number of DNS queries per IP address (per network interface). For the current limit, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DNSLimitations.html#limits-api-entities-resolver">Limits on Route 53 Resolver</a>. </li> <li>  <code>ACTION_NEEDED</code>: This endpoint is unhealthy, and Resolver can't automatically recover it. To resolve the problem, we recommend that you check each IP address that you associated with the endpoint. For each IP address that isn't available, add another IP address and then delete the IP address that isn't available. (An endpoint must always include at least two IP addresses.) A status of <code>ACTION_NEEDED</code> can have a variety of causes. Here are two common causes: <ul> <li> One or more of the network interfaces that are associated with the endpoint were deleted using Amazon VPC. </li> <li> The network interface couldn't be created for some reason that's outside the control of Resolver. </li> </ul> </li> <li>  <code>DELETING</code>: Resolver is deleting this endpoint and the associated network interfaces. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HostVPCId</i> The ID of the VPC that you want to create the Resolver endpoint in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IpAddressCount</i> The number of IP addresses that the Resolver endpoint can use for DNS queries.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Direction</i> Indicates whether the Resolver endpoint allows inbound or outbound DNS queries: <ul> <li>  <code>INBOUND</code>: allows DNS queries to your VPC from your network </li> <li>  <code>OUTBOUND</code>: allows DNS queries from your VPC to your network </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> The ID of one or more security groups that control access to this VPC. The security group must include one or more inbound rules (for inbound endpoints) or outbound rules (for outbound endpoints). Inbound and outbound rules must allow TCP and UDP access. For inbound access, open port 53. For outbound access, open the port that you're using for DNS queries on your network.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name that you assigned to the Resolver endpoint when you submitted a <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_CreateResolverEndpoint.html">CreateResolverEndpoint</a> request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The ARN (Amazon Resource Name) for the Resolver endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatorRequestId</i> A unique string that identifies the request that created the Resolver endpoint. The <code>CreatorRequestId</code> allows failed requests to be retried without the risk of running the operation twice.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID of the Resolver endpoint.<br/>        """
        pass

    def get_resolver_query_log_config(self, ResolverQueryLogConfigId: str) -> GetResolverQueryLogConfigResponse:
        r"""Gets information about a specified Resolver query logging configuration, such as the number of VPCs that the configuration is logging queries for and the location that logs are sent to. 

        :param self:
        :param ResolverQueryLogConfigId:  The ID of the Resolver query logging configuration that you want to get information about.<br/>
        :return: ResolverQueryLogConfig:  Information about the Resolver query logging configuration that you specified in a <code>GetQueryLogConfig</code> request.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The date and time that the query logging configuration was created, in Unix time format and Coordinated Universal Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatorRequestId</i> A unique string that identifies the request that created the query logging configuration. The <code>CreatorRequestId</code> allows failed requests to be retried without the risk of running the operation twice.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DestinationArn</i> The ARN of the resource that you want Resolver to send query logs: an Amazon S3 bucket, a CloudWatch Logs log group, or a Kinesis Data Firehose delivery stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the query logging configuration. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The ARN for the query logging configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociationCount</i> The number of VPCs that are associated with the query logging configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ShareStatus</i> An indication of whether the query logging configuration is shared with other AWS accounts, or was shared with the current account by another AWS account. Sharing is configured through AWS Resource Access Manager (AWS RAM).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the specified query logging configuration. Valid values include the following: <ul> <li>  <code>CREATING</code>: Resolver is creating the query logging configuration. </li> <li>  <code>CREATED</code>: The query logging configuration was successfully created. Resolver is logging queries that originate in the specified VPC. </li> <li>  <code>DELETING</code>: Resolver is deleting this query logging configuration. </li> <li>  <code>FAILED</code>: Resolver can't deliver logs to the location that is specified in the query logging configuration. Here are two common causes: <ul> <li> The specified destination (for example, an Amazon S3 bucket) was deleted. </li> <li> Permissions don't allow sending logs to the destination. </li> </ul> </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> The AWS account ID for the account that created the query logging configuration. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID for the query logging configuration.<br/>        """
        pass

    def get_resolver_query_log_config_association(self, ResolverQueryLogConfigAssociationId: str) -> GetResolverQueryLogConfigAssociationResponse:
        r"""Gets information about a specified association between a Resolver query logging configuration and an Amazon VPC. When you associate a VPC with a query logging configuration, Resolver logs DNS queries that originate in that VPC.

        :param self:
        :param ResolverQueryLogConfigAssociationId:  The ID of the Resolver query logging configuration association that you want to get information about.<br/>
        :return: ResolverQueryLogConfigAssociation:  Information about the Resolver query logging configuration association that you specified in a <code>GetQueryLogConfigAssociation</code> request.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The date and time that the VPC was associated with the query logging configuration, in Unix time format and Coordinated Universal Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorMessage</i> Contains additional information about the error. If the value or <code>Error</code> is null, the value of <code>ErrorMessage</code> also is null.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Error</i> If the value of <code>Status</code> is <code>FAILED</code>, the value of <code>Error</code> indicates the cause: <ul> <li>  <code>DESTINATION_NOT_FOUND</code>: The specified destination (for example, an Amazon S3 bucket) was deleted. </li> <li>  <code>ACCESS_DENIED</code>: Permissions don't allow sending logs to the destination. </li> </ul> If the value of <code>Status</code> is a value other than <code>FAILED</code>, <code>Error</code> is null. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the specified query logging association. Valid values include the following: <ul> <li>  <code>CREATING</code>: Resolver is creating an association between an Amazon VPC and a query logging configuration. </li> <li>  <code>CREATED</code>: The association between an Amazon VPC and a query logging configuration was successfully created. Resolver is logging queries that originate in the specified VPC. </li> <li>  <code>DELETING</code>: Resolver is deleting this query logging association. </li> <li>  <code>FAILED</code>: Resolver either couldn't create or couldn't delete the query logging association. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceId</i> The ID of the Amazon VPC that is associated with the query logging configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResolverQueryLogConfigId</i> The ID of the query logging configuration that a VPC is associated with.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID of the query logging association.<br/>        """
        pass

    def get_resolver_query_log_config_policy(self, Arn: str) -> GetResolverQueryLogConfigPolicyResponse:
        r"""Gets information about a query logging policy. A query logging policy specifies the Resolver query logging operations and resources that you want to allow another AWS account to be able to use.

        :param self:
        :param Arn:  The ARN of the query logging configuration that you want to get the query logging policy for.<br/>
        :return: ResolverQueryLogConfigPolicy:  Information about the query logging policy for the query logging configuration that you specified in a <code>GetResolverQueryLogConfigPolicy</code> request.<br/>        """
        pass

    def get_resolver_rule(self, ResolverRuleId: str) -> GetResolverRuleResponse:
        r"""Gets information about a specified Resolver rule, such as the domain name that the rule forwards DNS queries for and the ID of the outbound Resolver endpoint that the rule is associated with.

        :param self:
        :param ResolverRuleId:  The ID of the Resolver rule that you want to get information about.<br/>
        :return: ResolverRule:  Information about the Resolver rule that you specified in a <code>GetResolverRule</code> request.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ModificationTime</i> The date and time that the Resolver rule was last updated, in Unix time format and Coordinated Universal Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The date and time that the Resolver rule was created, in Unix time format and Coordinated Universal Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ShareStatus</i> Whether the rule is shared and, if so, whether the current account is sharing the rule with another account, or another account is sharing the rule with the current account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> When a rule is shared with another AWS account, the account ID of the account that the rule is shared with.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResolverEndpointId</i> The ID of the endpoint that the rule is associated with.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetIps</i> An array that contains the IP addresses and ports that an outbound endpoint forwards DNS queries to. Typically, these are the IP addresses of DNS resolvers on your network. Specify IPv4 addresses. IPv6 is not supported.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name for the Resolver rule, which you specified when you created the Resolver rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RuleType</i> When you want to forward DNS queries for specified domain name to resolvers on your network, specify <code>FORWARD</code>. When you have a forwarding rule to forward DNS queries for a domain to your network and you want Resolver to process queries for a subdomain of that domain, specify <code>SYSTEM</code>. For example, to forward DNS queries for example.com to resolvers on your network, you create a rule and specify <code>FORWARD</code> for <code>RuleType</code>. To then have Resolver process queries for apex.example.com, you create a rule and specify <code>SYSTEM</code> for <code>RuleType</code>. Currently, only Resolver can create rules that have a value of <code>RECURSIVE</code> for <code>RuleType</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusMessage</i> A detailed description of the status of a Resolver rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> A code that specifies the current status of the Resolver rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainName</i> DNS queries for this domain name are forwarded to the IP addresses that are specified in <code>TargetIps</code>. If a query matches multiple Resolver rules (example.com and www.example.com), the query is routed using the Resolver rule that contains the most specific domain name (www.example.com).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The ARN (Amazon Resource Name) for the Resolver rule specified by <code>Id</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatorRequestId</i> A unique string that you specified when you created the Resolver rule. <code>CreatorRequestId</code> identifies the request and allows failed requests to be retried without the risk of running the operation twice. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID that Resolver assigned to the Resolver rule when you created it.<br/>        """
        pass

    def get_resolver_rule_association(self, ResolverRuleAssociationId: str) -> GetResolverRuleAssociationResponse:
        r"""Gets information about an association between a specified Resolver rule and a VPC. You associate a Resolver rule and a VPC using <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_AssociateResolverRule.html">AssociateResolverRule</a>. 

        :param self:
        :param ResolverRuleAssociationId:  The ID of the Resolver rule association that you want to get information about.<br/>
        :return: ResolverRuleAssociation:  Information about the Resolver rule association that you specified in a <code>GetResolverRuleAssociation</code> request.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusMessage</i> A detailed description of the status of the association between a Resolver rule and a VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> A code that specifies the current status of the association between a Resolver rule and a VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VPCId</i> The ID of the VPC that you associated the Resolver rule with.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of an association between a Resolver rule and a VPC.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResolverRuleId</i> The ID of the Resolver rule that you associated with the VPC that is specified by <code>VPCId</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID of the association between a Resolver rule and a VPC. Resolver assigns this value when you submit an <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_AssociateResolverRule.html">AssociateResolverRule</a> request.<br/>        """
        pass

    def get_resolver_rule_policy(self, Arn: str) -> GetResolverRulePolicyResponse:
        r"""Gets information about the Resolver rule policy for a specified rule. A Resolver rule policy includes the rule that you want to share with another account, the account that you want to share the rule with, and the Resolver operations that you want to allow the account to use. 

        :param self:
        :param Arn:  The ID of the Resolver rule that you want to get the Resolver rule policy for.<br/>
        :return: ResolverRulePolicy:  The Resolver rule policy for the rule that you specified in a <code>GetResolverRulePolicy</code> request.<br/>        """
        pass

    def import_firewall_domains(self, DomainFileUrl: str, Operation: str, FirewallDomainListId: str) -> ImportFirewallDomainsResponse:
        r"""Imports domain names from a file into a domain list, for use in a DNS firewall rule group.  Each domain specification in your domain list must satisfy the following requirements:  <ul> <li> It can optionally start with <code>*</code> (asterisk). </li> <li> With the exception of the optional starting asterisk, it must only contain the following characters: <code>A-Z</code>, <code>a-z</code>, <code>0-9</code>, <code>-</code> (hyphen). </li> <li> It must be from 1-255 characters in length.  </li> </ul>

        :param self:
        :param DomainFileUrl:  The fully qualified URL or URI of the file stored in Amazon Simple Storage Service (Amazon S3) that contains the list of domains to import. The file must be in an S3 bucket that's in the same Region as your DNS Firewall. The file must be a text file and must contain a single domain per line.<br/>Operation:  What you want DNS Firewall to do with the domains that are listed in the file. This must be set to <code>REPLACE</code>, which updates the domain list to exactly match the list in the file. <br/>FirewallDomainListId:  The ID of the domain list that you want to modify with the import operation.<br/>
        :return: StatusMessage:  Additional information about the status of the list, if available.<br/>Status:   <br/>Name:  The name of the domain list. <br/>Id:  The Id of the firewall domain list that DNS Firewall just updated.<br/>        """
        pass

    def list_firewall_configs(self, MaxResults: int=None, NextToken: str=None) -> ListFirewallConfigsResponse:
        r"""Retrieves the firewall configurations that you have defined. DNS Firewall uses the configurations to manage firewall behavior for your VPCs.  A single call might return only a partial list of the configurations. For information, see <code>MaxResults</code>. 

        :param self:
        :param NextToken:  For the first call to this list request, omit this value. When you request a list of objects, Resolver returns at most the number of objects specified in <code>MaxResults</code>. If more objects are available for retrieval, Resolver returns a <code>NextToken</code> value in the response. To retrieve the next batch of objects, use the token that was returned for the prior request in your next request.<br/>MaxResults:  The maximum number of objects that you want Resolver to return for this request. If more objects are available, in the response, Resolver provides a <code>NextToken</code> value that you can use in a subsequent call to get the next batch of objects. If you don't specify a value for <code>MaxResults</code>, Resolver returns up to 100 objects. <br/>
        :return: FirewallConfigs:  The configurations for the firewall behavior provided by DNS Firewall for VPCs from Amazon Virtual Private Cloud (Amazon VPC). <br/>NextToken:  If objects are still available for retrieval, Resolver returns this token in the response. To retrieve the next batch of objects, provide this token in your next request.<br/>        """
        pass

    def list_firewall_domain_lists(self, MaxResults: int=None, NextToken: str=None) -> ListFirewallDomainListsResponse:
        r"""Retrieves the firewall domain lists that you have defined. For each firewall domain list, you can retrieve the domains that are defined for a list by calling <a>ListFirewallDomains</a>.  A single call to this list operation might return only a partial list of the domain lists. For information, see <code>MaxResults</code>. 

        :param self:
        :param NextToken:  For the first call to this list request, omit this value. When you request a list of objects, Resolver returns at most the number of objects specified in <code>MaxResults</code>. If more objects are available for retrieval, Resolver returns a <code>NextToken</code> value in the response. To retrieve the next batch of objects, use the token that was returned for the prior request in your next request.<br/>MaxResults:  The maximum number of objects that you want Resolver to return for this request. If more objects are available, in the response, Resolver provides a <code>NextToken</code> value that you can use in a subsequent call to get the next batch of objects. If you don't specify a value for <code>MaxResults</code>, Resolver returns up to 100 objects. <br/>
        :return: FirewallDomainLists:  A list of the domain lists that you have defined.  This might be a partial list of the domain lists that you've defined. For information, see <code>MaxResults</code>. <br/>NextToken:  If objects are still available for retrieval, Resolver returns this token in the response. To retrieve the next batch of objects, provide this token in your next request.<br/>        """
        pass

    def list_firewall_domains(self, FirewallDomainListId: str, MaxResults: int=None, NextToken: str=None) -> ListFirewallDomainsResponse:
        r"""Retrieves the domains that you have defined for the specified firewall domain list.  A single call might return only a partial list of the domains. For information, see <code>MaxResults</code>. 

        :param self:
        :param NextToken:  For the first call to this list request, omit this value. When you request a list of objects, Resolver returns at most the number of objects specified in <code>MaxResults</code>. If more objects are available for retrieval, Resolver returns a <code>NextToken</code> value in the response. To retrieve the next batch of objects, use the token that was returned for the prior request in your next request.<br/>MaxResults:  The maximum number of objects that you want Resolver to return for this request. If more objects are available, in the response, Resolver provides a <code>NextToken</code> value that you can use in a subsequent call to get the next batch of objects. If you don't specify a value for <code>MaxResults</code>, Resolver returns up to 100 objects. <br/>FirewallDomainListId:  The ID of the domain list whose domains you want to retrieve. <br/>
        :return: Domains:  A list of the domains in the firewall domain list.  This might be a partial list of the domains that you've defined in the domain list. For information, see <code>MaxResults</code>. <br/>NextToken:  If objects are still available for retrieval, Resolver returns this token in the response. To retrieve the next batch of objects, provide this token in your next request.<br/>        """
        pass

    def list_firewall_rule_group_associations(self, FirewallRuleGroupId: str=None, VpcId: str=None, Priority: int=None, Status: str=None, MaxResults: int=None, NextToken: str=None) -> ListFirewallRuleGroupAssociationsResponse:
        r"""Retrieves the firewall rule group associations that you have defined. Each association enables DNS filtering for a VPC with one rule group.  A single call might return only a partial list of the associations. For information, see <code>MaxResults</code>. 

        :param self:
        :param NextToken:  For the first call to this list request, omit this value. When you request a list of objects, Resolver returns at most the number of objects specified in <code>MaxResults</code>. If more objects are available for retrieval, Resolver returns a <code>NextToken</code> value in the response. To retrieve the next batch of objects, use the token that was returned for the prior request in your next request.<br/>MaxResults:  The maximum number of objects that you want Resolver to return for this request. If more objects are available, in the response, Resolver provides a <code>NextToken</code> value that you can use in a subsequent call to get the next batch of objects. If you don't specify a value for <code>MaxResults</code>, Resolver returns up to 100 objects. <br/>Status:  The association <code>Status</code> setting that you want DNS Firewall to filter on for the list. If you don't specify this, then DNS Firewall returns all associations, regardless of status.<br/>Priority:  The setting that determines the processing order of the rule group among the rule groups that are associated with a single VPC. DNS Firewall filters VPC traffic starting from the rule group with the lowest numeric priority setting. <br/>VpcId:  The unique identifier of the VPC that you want to retrieve the associations for. Leave this blank to retrieve associations for any VPC. <br/>FirewallRuleGroupId:  The unique identifier of the firewall rule group that you want to retrieve the associations for. Leave this blank to retrieve associations for any rule group. <br/>
        :return: FirewallRuleGroupAssociations:  A list of your firewall rule group associations. This might be a partial list of the associations that you have defined. For information, see <code>MaxResults</code>. <br/>NextToken:  If objects are still available for retrieval, Resolver returns this token in the response. To retrieve the next batch of objects, provide this token in your next request.<br/>        """
        pass

    def list_firewall_rule_groups(self, MaxResults: int=None, NextToken: str=None) -> ListFirewallRuleGroupsResponse:
        r"""Retrieves the minimal high-level information for the rule groups that you have defined.  A single call might return only a partial list of the rule groups. For information, see <code>MaxResults</code>. 

        :param self:
        :param NextToken:  For the first call to this list request, omit this value. When you request a list of objects, Resolver returns at most the number of objects specified in <code>MaxResults</code>. If more objects are available for retrieval, Resolver returns a <code>NextToken</code> value in the response. To retrieve the next batch of objects, use the token that was returned for the prior request in your next request.<br/>MaxResults:  The maximum number of objects that you want Resolver to return for this request. If more objects are available, in the response, Resolver provides a <code>NextToken</code> value that you can use in a subsequent call to get the next batch of objects. If you don't specify a value for <code>MaxResults</code>, Resolver returns up to 100 objects. <br/>
        :return: FirewallRuleGroups:  A list of your firewall rule groups. This might be a partial list of the rule groups that you have defined. For information, see <code>MaxResults</code>. <br/>NextToken:  If objects are still available for retrieval, Resolver returns this token in the response. To retrieve the next batch of objects, provide this token in your next request.<br/>        """
        pass

    def list_firewall_rules(self, FirewallRuleGroupId: str, Priority: int=None, Action: str=None, MaxResults: int=None, NextToken: str=None) -> ListFirewallRulesResponse:
        r"""Retrieves the firewall rules that you have defined for the specified firewall rule group. DNS Firewall uses the rules in a rule group to filter DNS network traffic for a VPC.  A single call might return only a partial list of the rules. For information, see <code>MaxResults</code>. 

        :param self:
        :param NextToken:  For the first call to this list request, omit this value. When you request a list of objects, Resolver returns at most the number of objects specified in <code>MaxResults</code>. If more objects are available for retrieval, Resolver returns a <code>NextToken</code> value in the response. To retrieve the next batch of objects, use the token that was returned for the prior request in your next request.<br/>MaxResults:  The maximum number of objects that you want Resolver to return for this request. If more objects are available, in the response, Resolver provides a <code>NextToken</code> value that you can use in a subsequent call to get the next batch of objects. If you don't specify a value for <code>MaxResults</code>, Resolver returns up to 100 objects. <br/>Action:  Optional additional filter for the rules to retrieve. The action that DNS Firewall should take on a DNS query when it matches one of the domains in the rule's domain list: <ul> <li>  <code>ALLOW</code> - Permit the request to go through. </li> <li>  <code>ALERT</code> - Permit the request to go through but send an alert to the logs. </li> <li>  <code>BLOCK</code> - Disallow the request. If this is specified, additional handling details are provided in the rule's <code>BlockResponse</code> setting.  </li> </ul><br/>Priority:  Optional additional filter for the rules to retrieve. The setting that determines the processing order of the rules in a rule group. DNS Firewall processes the rules in a rule group by order of priority, starting from the lowest setting.<br/>FirewallRuleGroupId:  The unique identifier of the firewall rule group that you want to retrieve the rules for. <br/>
        :return: FirewallRules:  A list of the rules that you have defined.  This might be a partial list of the firewall rules that you've defined. For information, see <code>MaxResults</code>. <br/>NextToken:  If objects are still available for retrieval, Resolver returns this token in the response. To retrieve the next batch of objects, provide this token in your next request.<br/>        """
        pass

    def list_resolver_dnssec_configs(self, MaxResults: int=None, NextToken: str=None, Filters: List[Filter]=None) -> ListResolverDnssecConfigsResponse:
        r"""Lists the configurations for DNSSEC validation that are associated with the current AWS account.

        :param self:
        :param Filters:  An optional specification to return a subset of objects.<br/>NextToken:  (Optional) If the current AWS account has more than <code>MaxResults</code> DNSSEC configurations, use <code>NextToken</code> to get the second and subsequent pages of results. For the first <code>ListResolverDnssecConfigs</code> request, omit this value. For the second and subsequent requests, get the value of <code>NextToken</code> from the previous response and specify that value for <code>NextToken</code> in the request.<br/>MaxResults:   <i>Optional</i>: An integer that specifies the maximum number of DNSSEC configuration results that you want Amazon Route 53 to return. If you don't specify a value for <code>MaxResults</code>, Route 53 returns up to 100 configuration per page.<br/>
        :return: ResolverDnssecConfigs:  An array that contains one <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_ResolverDnssecConfig.html">ResolverDnssecConfig</a> element for each configuration for DNSSEC validation that is associated with the current AWS account.<br/>NextToken:  If a response includes the last of the DNSSEC configurations that are associated with the current AWS account, <code>NextToken</code> doesn't appear in the response. If a response doesn't include the last of the configurations, you can get more configurations by submitting another <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_ListResolverDnssecConfigs.html">ListResolverDnssecConfigs</a> request. Get the value of <code>NextToken</code> that Amazon Route 53 returned in the previous response and include it in <code>NextToken</code> in the next request.<br/>        """
        pass

    def list_resolver_endpoint_ip_addresses(self, ResolverEndpointId: str, MaxResults: int=None, NextToken: str=None) -> ListResolverEndpointIpAddressesResponse:
        r"""Gets the IP addresses for a specified Resolver endpoint.

        :param self:
        :param NextToken:  For the first <code>ListResolverEndpointIpAddresses</code> request, omit this value. If the specified Resolver endpoint has more than <code>MaxResults</code> IP addresses, you can submit another <code>ListResolverEndpointIpAddresses</code> request to get the next group of IP addresses. In the next request, specify the value of <code>NextToken</code> from the previous response. <br/>MaxResults:  The maximum number of IP addresses that you want to return in the response to a <code>ListResolverEndpointIpAddresses</code> request. If you don't specify a value for <code>MaxResults</code>, Resolver returns up to 100 IP addresses. <br/>ResolverEndpointId:  The ID of the Resolver endpoint that you want to get IP addresses for.<br/>
        :return: IpAddresses:  Information about the IP addresses in your VPC that DNS queries originate from (for outbound endpoints) or that you forward DNS queries to (for inbound endpoints).<br/>MaxResults:  The value that you specified for <code>MaxResults</code> in the request.<br/>NextToken:  If the specified endpoint has more than <code>MaxResults</code> IP addresses, you can submit another <code>ListResolverEndpointIpAddresses</code> request to get the next group of IP addresses. In the next request, specify the value of <code>NextToken</code> from the previous response. <br/>        """
        pass

    def list_resolver_endpoints(self, MaxResults: int=None, NextToken: str=None, Filters: List[Filter]=None) -> ListResolverEndpointsResponse:
        r"""Lists all the Resolver endpoints that were created using the current AWS account.

        :param self:
        :param Filters:  An optional specification to return a subset of Resolver endpoints, such as all inbound Resolver endpoints. <note> If you submit a second or subsequent <code>ListResolverEndpoints</code> request and specify the <code>NextToken</code> parameter, you must use the same values for <code>Filters</code>, if any, as in the previous request. </note><br/>NextToken:  For the first <code>ListResolverEndpoints</code> request, omit this value. If you have more than <code>MaxResults</code> Resolver endpoints, you can submit another <code>ListResolverEndpoints</code> request to get the next group of Resolver endpoints. In the next request, specify the value of <code>NextToken</code> from the previous response. <br/>MaxResults:  The maximum number of Resolver endpoints that you want to return in the response to a <code>ListResolverEndpoints</code> request. If you don't specify a value for <code>MaxResults</code>, Resolver returns up to 100 Resolver endpoints. <br/>
        :return: ResolverEndpoints:  The Resolver endpoints that were created by using the current AWS account, and that match the specified filters, if any.<br/>MaxResults:  The value that you specified for <code>MaxResults</code> in the request.<br/>NextToken:  If more than <code>MaxResults</code> IP addresses match the specified criteria, you can submit another <code>ListResolverEndpoint</code> request to get the next group of results. In the next request, specify the value of <code>NextToken</code> from the previous response. <br/>        """
        pass

    def list_resolver_query_log_config_associations(self, MaxResults: int=None, NextToken: str=None, Filters: List[Filter]=None, SortBy: str=None, SortOrder: str=None) -> ListResolverQueryLogConfigAssociationsResponse:
        r"""Lists information about associations between Amazon VPCs and query logging configurations.

        :param self:
        :param SortOrder:  If you specified a value for <code>SortBy</code>, the order that you want query logging associations to be listed in, <code>ASCENDING</code> or <code>DESCENDING</code>. <note> If you submit a second or subsequent <code>ListResolverQueryLogConfigAssociations</code> request and specify the <code>NextToken</code> parameter, you must use the same value for <code>SortOrder</code>, if any, as in the previous request. </note><br/>SortBy:  The element that you want Resolver to sort query logging associations by.  <note> If you submit a second or subsequent <code>ListResolverQueryLogConfigAssociations</code> request and specify the <code>NextToken</code> parameter, you must use the same value for <code>SortBy</code>, if any, as in the previous request. </note> Valid values include the following elements: <ul> <li>  <code>CreationTime</code>: The ID of the query logging association. </li> <li>  <code>Error</code>: If the value of <code>Status</code> is <code>FAILED</code>, the value of <code>Error</code> indicates the cause:  <ul> <li>  <code>DESTINATION_NOT_FOUND</code>: The specified destination (for example, an Amazon S3 bucket) was deleted. </li> <li>  <code>ACCESS_DENIED</code>: Permissions don't allow sending logs to the destination. </li> </ul> If <code>Status</code> is a value other than <code>FAILED</code>, <code>ERROR</code> is null. </li> <li>  <code>Id</code>: The ID of the query logging association </li> <li>  <code>ResolverQueryLogConfigId</code>: The ID of the query logging configuration </li> <li>  <code>ResourceId</code>: The ID of the VPC that is associated with the query logging configuration </li> <li>  <code>Status</code>: The current status of the configuration. Valid values include the following: <ul> <li>  <code>CREATING</code>: Resolver is creating an association between an Amazon VPC and a query logging configuration. </li> <li>  <code>CREATED</code>: The association between an Amazon VPC and a query logging configuration was successfully created. Resolver is logging queries that originate in the specified VPC. </li> <li>  <code>DELETING</code>: Resolver is deleting this query logging association. </li> <li>  <code>FAILED</code>: Resolver either couldn't create or couldn't delete the query logging association. Here are two common causes: <ul> <li> The specified destination (for example, an Amazon S3 bucket) was deleted. </li> <li> Permissions don't allow sending logs to the destination. </li> </ul> </li> </ul> </li> </ul><br/>Filters:  An optional specification to return a subset of query logging associations. <note> If you submit a second or subsequent <code>ListResolverQueryLogConfigAssociations</code> request and specify the <code>NextToken</code> parameter, you must use the same values for <code>Filters</code>, if any, as in the previous request. </note><br/>NextToken:  For the first <code>ListResolverQueryLogConfigAssociations</code> request, omit this value. If there are more than <code>MaxResults</code> query logging associations that match the values that you specify for <code>Filters</code>, you can submit another <code>ListResolverQueryLogConfigAssociations</code> request to get the next group of associations. In the next request, specify the value of <code>NextToken</code> from the previous response. <br/>MaxResults:  The maximum number of query logging associations that you want to return in the response to a <code>ListResolverQueryLogConfigAssociations</code> request. If you don't specify a value for <code>MaxResults</code>, Resolver returns up to 100 query logging associations. <br/>
        :return: ResolverQueryLogConfigAssociations:  A list that contains one <code>ResolverQueryLogConfigAssociations</code> element for each query logging association that matches the values that you specified for <code>Filter</code>.<br/>TotalFilteredCount:  The total number of query logging associations that were created by the current account in the specified Region and that match the filters that were specified in the <code>ListResolverQueryLogConfigAssociations</code> request. For the total number of associations that were created by the current account in the specified Region, see <code>TotalCount</code>.<br/>TotalCount:  The total number of query logging associations that were created by the current account in the specified Region. This count can differ from the number of associations that are returned in a <code>ListResolverQueryLogConfigAssociations</code> response, depending on the values that you specify in the request.<br/>NextToken:  If there are more than <code>MaxResults</code> query logging associations, you can submit another <code>ListResolverQueryLogConfigAssociations</code> request to get the next group of associations. In the next request, specify the value of <code>NextToken</code> from the previous response. <br/>        """
        pass

    def list_resolver_query_log_configs(self, MaxResults: int=None, NextToken: str=None, Filters: List[Filter]=None, SortBy: str=None, SortOrder: str=None) -> ListResolverQueryLogConfigsResponse:
        r"""Lists information about the specified query logging configurations. Each configuration defines where you want Resolver to save DNS query logs and specifies the VPCs that you want to log queries for.

        :param self:
        :param SortOrder:  If you specified a value for <code>SortBy</code>, the order that you want query logging configurations to be listed in, <code>ASCENDING</code> or <code>DESCENDING</code>. <note> If you submit a second or subsequent <code>ListResolverQueryLogConfigs</code> request and specify the <code>NextToken</code> parameter, you must use the same value for <code>SortOrder</code>, if any, as in the previous request. </note><br/>SortBy:  The element that you want Resolver to sort query logging configurations by.  <note> If you submit a second or subsequent <code>ListResolverQueryLogConfigs</code> request and specify the <code>NextToken</code> parameter, you must use the same value for <code>SortBy</code>, if any, as in the previous request. </note> Valid values include the following elements: <ul> <li>  <code>Arn</code>: The ARN of the query logging configuration </li> <li>  <code>AssociationCount</code>: The number of VPCs that are associated with the specified configuration  </li> <li>  <code>CreationTime</code>: The date and time that Resolver returned when the configuration was created </li> <li>  <code>CreatorRequestId</code>: The value that was specified for <code>CreatorRequestId</code> when the configuration was created </li> <li>  <code>DestinationArn</code>: The location that logs are sent to </li> <li>  <code>Id</code>: The ID of the configuration </li> <li>  <code>Name</code>: The name of the configuration </li> <li>  <code>OwnerId</code>: The AWS account number of the account that created the configuration </li> <li>  <code>ShareStatus</code>: Whether the configuration is shared with other AWS accounts or shared with the current account by another AWS account. Sharing is configured through AWS Resource Access Manager (AWS RAM). </li> <li>  <code>Status</code>: The current status of the configuration. Valid values include the following: <ul> <li>  <code>CREATING</code>: Resolver is creating the query logging configuration. </li> <li>  <code>CREATED</code>: The query logging configuration was successfully created. Resolver is logging queries that originate in the specified VPC. </li> <li>  <code>DELETING</code>: Resolver is deleting this query logging configuration. </li> <li>  <code>FAILED</code>: Resolver either couldn't create or couldn't delete the query logging configuration. Here are two common causes: <ul> <li> The specified destination (for example, an Amazon S3 bucket) was deleted. </li> <li> Permissions don't allow sending logs to the destination. </li> </ul> </li> </ul> </li> </ul><br/>Filters:  An optional specification to return a subset of query logging configurations. <note> If you submit a second or subsequent <code>ListResolverQueryLogConfigs</code> request and specify the <code>NextToken</code> parameter, you must use the same values for <code>Filters</code>, if any, as in the previous request. </note><br/>NextToken:  For the first <code>ListResolverQueryLogConfigs</code> request, omit this value. If there are more than <code>MaxResults</code> query logging configurations that match the values that you specify for <code>Filters</code>, you can submit another <code>ListResolverQueryLogConfigs</code> request to get the next group of configurations. In the next request, specify the value of <code>NextToken</code> from the previous response. <br/>MaxResults:  The maximum number of query logging configurations that you want to return in the response to a <code>ListResolverQueryLogConfigs</code> request. If you don't specify a value for <code>MaxResults</code>, Resolver returns up to 100 query logging configurations. <br/>
        :return: ResolverQueryLogConfigs:  A list that contains one <code>ResolverQueryLogConfig</code> element for each query logging configuration that matches the values that you specified for <code>Filter</code>.<br/>TotalFilteredCount:  The total number of query logging configurations that were created by the current account in the specified Region and that match the filters that were specified in the <code>ListResolverQueryLogConfigs</code> request. For the total number of query logging configurations that were created by the current account in the specified Region, see <code>TotalCount</code>.<br/>TotalCount:  The total number of query logging configurations that were created by the current account in the specified Region. This count can differ from the number of query logging configurations that are returned in a <code>ListResolverQueryLogConfigs</code> response, depending on the values that you specify in the request.<br/>NextToken:  If there are more than <code>MaxResults</code> query logging configurations, you can submit another <code>ListResolverQueryLogConfigs</code> request to get the next group of configurations. In the next request, specify the value of <code>NextToken</code> from the previous response. <br/>        """
        pass

    def list_resolver_rule_associations(self, MaxResults: int=None, NextToken: str=None, Filters: List[Filter]=None) -> ListResolverRuleAssociationsResponse:
        r"""Lists the associations that were created between Resolver rules and VPCs using the current AWS account.

        :param self:
        :param Filters:  An optional specification to return a subset of Resolver rules, such as Resolver rules that are associated with the same VPC ID. <note> If you submit a second or subsequent <code>ListResolverRuleAssociations</code> request and specify the <code>NextToken</code> parameter, you must use the same values for <code>Filters</code>, if any, as in the previous request. </note><br/>NextToken:  For the first <code>ListResolverRuleAssociation</code> request, omit this value. If you have more than <code>MaxResults</code> rule associations, you can submit another <code>ListResolverRuleAssociation</code> request to get the next group of rule associations. In the next request, specify the value of <code>NextToken</code> from the previous response. <br/>MaxResults:  The maximum number of rule associations that you want to return in the response to a <code>ListResolverRuleAssociations</code> request. If you don't specify a value for <code>MaxResults</code>, Resolver returns up to 100 rule associations. <br/>
        :return: ResolverRuleAssociations:  The associations that were created between Resolver rules and VPCs using the current AWS account, and that match the specified filters, if any.<br/>MaxResults:  The value that you specified for <code>MaxResults</code> in the request.<br/>NextToken:  If more than <code>MaxResults</code> rule associations match the specified criteria, you can submit another <code>ListResolverRuleAssociation</code> request to get the next group of results. In the next request, specify the value of <code>NextToken</code> from the previous response. <br/>        """
        pass

    def list_resolver_rules(self, MaxResults: int=None, NextToken: str=None, Filters: List[Filter]=None) -> ListResolverRulesResponse:
        r"""Lists the Resolver rules that were created using the current AWS account.

        :param self:
        :param Filters:  An optional specification to return a subset of Resolver rules, such as all Resolver rules that are associated with the same Resolver endpoint. <note> If you submit a second or subsequent <code>ListResolverRules</code> request and specify the <code>NextToken</code> parameter, you must use the same values for <code>Filters</code>, if any, as in the previous request. </note><br/>NextToken:  For the first <code>ListResolverRules</code> request, omit this value. If you have more than <code>MaxResults</code> Resolver rules, you can submit another <code>ListResolverRules</code> request to get the next group of Resolver rules. In the next request, specify the value of <code>NextToken</code> from the previous response. <br/>MaxResults:  The maximum number of Resolver rules that you want to return in the response to a <code>ListResolverRules</code> request. If you don't specify a value for <code>MaxResults</code>, Resolver returns up to 100 Resolver rules.<br/>
        :return: ResolverRules:  The Resolver rules that were created using the current AWS account and that match the specified filters, if any.<br/>MaxResults:  The value that you specified for <code>MaxResults</code> in the request.<br/>NextToken:  If more than <code>MaxResults</code> Resolver rules match the specified criteria, you can submit another <code>ListResolverRules</code> request to get the next group of results. In the next request, specify the value of <code>NextToken</code> from the previous response. <br/>        """
        pass

    def list_tags_for_resource(self, ResourceArn: str, MaxResults: int=None, NextToken: str=None) -> ListTagsForResourceResponse:
        r"""Lists the tags that you associated with the specified resource.

        :param self:
        :param NextToken:  For the first <code>ListTagsForResource</code> request, omit this value. If you have more than <code>MaxResults</code> tags, you can submit another <code>ListTagsForResource</code> request to get the next group of tags for the resource. In the next request, specify the value of <code>NextToken</code> from the previous response. <br/>MaxResults:  The maximum number of tags that you want to return in the response to a <code>ListTagsForResource</code> request. If you don't specify a value for <code>MaxResults</code>, Resolver returns up to 100 tags.<br/>ResourceArn:  The Amazon Resource Name (ARN) for the resource that you want to list tags for.<br/>
        :return: NextToken:  If more than <code>MaxResults</code> tags match the specified criteria, you can submit another <code>ListTagsForResource</code> request to get the next group of results. In the next request, specify the value of <code>NextToken</code> from the previous response. <br/>Tags:  The tags that are associated with the resource that you specified in the <code>ListTagsForResource</code> request.<br/>        """
        pass

    def put_firewall_rule_group_policy(self, FirewallRuleGroupPolicy: str, Arn: str) -> PutFirewallRuleGroupPolicyResponse:
        r"""Attaches an AWS Identity and Access Management (AWS IAM) policy for sharing the rule group. You can use the policy to share the rule group using AWS Resource Access Manager (AWS RAM). 

        :param self:
        :param FirewallRuleGroupPolicy:  The AWS Identity and Access Management (AWS IAM) policy to attach to the rule group.<br/>Arn:  The ARN (Amazon Resource Name) for the rule group that you want to share.<br/>
        :return: ReturnValue:  <p/><br/>        """
        pass

    def put_resolver_query_log_config_policy(self, ResolverQueryLogConfigPolicy: str, Arn: str) -> PutResolverQueryLogConfigPolicyResponse:
        r"""Specifies an AWS account that you want to share a query logging configuration with, the query logging configuration that you want to share, and the operations that you want the account to be able to perform on the configuration.

        :param self:
        :param ResolverQueryLogConfigPolicy:  An AWS Identity and Access Management policy statement that lists the query logging configurations that you want to share with another AWS account and the operations that you want the account to be able to perform. You can specify the following operations in the <code>Actions</code> section of the statement: <ul> <li>  <code>route53resolver:AssociateResolverQueryLogConfig</code>  </li> <li>  <code>route53resolver:DisassociateResolverQueryLogConfig</code>  </li> <li>  <code>route53resolver:ListResolverQueryLogConfigAssociations</code>  </li> <li>  <code>route53resolver:ListResolverQueryLogConfigs</code>  </li> </ul> In the <code>Resource</code> section of the statement, you specify the ARNs for the query logging configurations that you want to share with the account that you specified in <code>Arn</code>. <br/>Arn:  The Amazon Resource Name (ARN) of the account that you want to share rules with.<br/>
        :return: ReturnValue:  Whether the <code>PutResolverQueryLogConfigPolicy</code> request was successful.<br/>        """
        pass

    def put_resolver_rule_policy(self, ResolverRulePolicy: str, Arn: str) -> PutResolverRulePolicyResponse:
        r"""Specifies an AWS rule that you want to share with another account, the account that you want to share the rule with, and the operations that you want the account to be able to perform on the rule.

        :param self:
        :param ResolverRulePolicy:  An AWS Identity and Access Management policy statement that lists the rules that you want to share with another AWS account and the operations that you want the account to be able to perform. You can specify the following operations in the <code>Action</code> section of the statement: <ul> <li>  <code>route53resolver:GetResolverRule</code>  </li> <li>  <code>route53resolver:AssociateResolverRule</code>  </li> <li>  <code>route53resolver:DisassociateResolverRule</code>  </li> <li>  <code>route53resolver:ListResolverRules</code>  </li> <li>  <code>route53resolver:ListResolverRuleAssociations</code>  </li> </ul> In the <code>Resource</code> section of the statement, specify the ARN for the rule that you want to share with another account. Specify the same ARN that you specified in <code>Arn</code>.<br/>Arn:  The Amazon Resource Name (ARN) of the rule that you want to share with another account.<br/>
        :return: ReturnValue:  Whether the <code>PutResolverRulePolicy</code> request was successful.<br/>        """
        pass

    def tag_resource(self, Tags: List[Tag], ResourceArn: str) -> TagResourceResponse:
        r"""Adds one or more tags to a specified resource.

        :param self:
        :param Tags:  The tags that you want to add to the specified resource.<br/>ResourceArn:  The Amazon Resource Name (ARN) for the resource that you want to add tags to. To get the ARN for a resource, use the applicable <code>Get</code> or <code>List</code> command:  <ul> <li>  <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_GetResolverEndpoint.html">GetResolverEndpoint</a>  </li> <li>  <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_GetResolverRule.html">GetResolverRule</a>  </li> <li>  <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_GetResolverRuleAssociation.html">GetResolverRuleAssociation</a>  </li> <li>  <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverEndpoints.html">ListResolverEndpoints</a>  </li> <li>  <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverRuleAssociations.html">ListResolverRuleAssociations</a>  </li> <li>  <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverRules.html">ListResolverRules</a>  </li> </ul><br/>
        :return:         """
        pass

    def untag_resource(self, TagKeys: List[TagKey], ResourceArn: str) -> UntagResourceResponse:
        r"""Removes one or more tags from a specified resource.

        :param self:
        :param TagKeys:  The tags that you want to remove to the specified resource.<br/>ResourceArn:  The Amazon Resource Name (ARN) for the resource that you want to remove tags from. To get the ARN for a resource, use the applicable <code>Get</code> or <code>List</code> command:  <ul> <li>  <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_GetResolverEndpoint.html">GetResolverEndpoint</a>  </li> <li>  <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_GetResolverRule.html">GetResolverRule</a>  </li> <li>  <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_GetResolverRuleAssociation.html">GetResolverRuleAssociation</a>  </li> <li>  <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverEndpoints.html">ListResolverEndpoints</a>  </li> <li>  <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverRuleAssociations.html">ListResolverRuleAssociations</a>  </li> <li>  <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverRules.html">ListResolverRules</a>  </li> </ul><br/>
        :return:         """
        pass

    def update_firewall_config(self, FirewallFailOpen: str, ResourceId: str) -> UpdateFirewallConfigResponse:
        r"""Updates the configuration of the firewall behavior provided by DNS Firewall for a single VPC from Amazon Virtual Private Cloud (Amazon VPC). 

        :param self:
        :param FirewallFailOpen:  Determines how Route 53 Resolver handles queries during failures, for example when all traffic that is sent to DNS Firewall fails to receive a reply.  <ul> <li> By default, fail open is disabled, which means the failure mode is closed. This approach favors security over availability. DNS Firewall blocks queries that it is unable to evaluate properly.  </li> <li> If you enable this option, the failure mode is open. This approach favors availability over security. DNS Firewall allows queries to proceed if it is unable to properly evaluate them.  </li> </ul> This behavior is only enforced for VPCs that have at least one DNS Firewall rule group association. <br/>ResourceId:  The ID of the VPC that the configuration is for.<br/>
        :return: FirewallConfig:  Configuration of the firewall behavior provided by DNS Firewall for a single VPC. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FirewallFailOpen</i> Determines how DNS Firewall operates during failures, for example when all traffic that is sent to DNS Firewall fails to receive a reply.  <ul> <li> By default, fail open is disabled, which means the failure mode is closed. This approach favors security over availability. DNS Firewall returns a failure error when it is unable to properly evaluate a query.  </li> <li> If you enable this option, the failure mode is open. This approach favors availability over security. DNS Firewall allows queries to proceed if it is unable to properly evaluate them.  </li> </ul> This behavior is only enforced for VPCs that have at least one DNS Firewall rule group association. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> The AWS account ID of the owner of the VPC that this firewall configuration applies to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceId</i> The ID of the VPC that this firewall configuration applies to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID of the firewall configuration.<br/>        """
        pass

    def update_firewall_domains(self, Domains: List[FirewallDomainName], Operation: str, FirewallDomainListId: str) -> UpdateFirewallDomainsResponse:
        r"""Updates the firewall domain list from an array of domain specifications. 

        :param self:
        :param Domains:  A list of domains to use in the update operation. Each domain specification in your domain list must satisfy the following requirements:  <ul> <li> It can optionally start with <code>*</code> (asterisk). </li> <li> With the exception of the optional starting asterisk, it must only contain the following characters: <code>A-Z</code>, <code>a-z</code>, <code>0-9</code>, <code>-</code> (hyphen). </li> <li> It must be from 1-255 characters in length.  </li> </ul><br/>Operation:  What you want DNS Firewall to do with the domains that you are providing:  <ul> <li>  <code>ADD</code> - Add the domains to the ones that are already in the domain list.  </li> <li>  <code>REMOVE</code> - Search the domain list for the domains and remove them from the list. </li> <li>  <code>REPLACE</code> - Update the domain list to exactly match the list that you are providing.  </li> </ul><br/>FirewallDomainListId:  The ID of the domain list whose domains you want to update. <br/>
        :return: StatusMessage:  Additional information about the status of the list, if available.<br/>Status:   <br/>Name:  The name of the domain list. <br/>Id:  The ID of the firewall domain list that DNS Firewall just updated.<br/>        """
        pass

    def update_firewall_rule(self, FirewallDomainListId: str, FirewallRuleGroupId: str, Priority: int=None, Action: str=None, BlockResponse: str=None, BlockOverrideDomain: str=None, BlockOverrideDnsType: str=None, BlockOverrideTtl: int=None, Name: str=None) -> UpdateFirewallRuleResponse:
        r"""Updates the specified firewall rule. 

        :param self:
        :param Name:  The name of the rule.<br/>BlockOverrideTtl:  The recommended amount of time, in seconds, for the DNS resolver or web browser to cache the provided override record. Used for the rule action <code>BLOCK</code> with a <code>BlockResponse</code> setting of <code>OVERRIDE</code>.<br/>BlockOverrideDnsType:  The DNS record's type. This determines the format of the record value that you provided in <code>BlockOverrideDomain</code>. Used for the rule action <code>BLOCK</code> with a <code>BlockResponse</code> setting of <code>OVERRIDE</code>.<br/>BlockOverrideDomain:  The custom DNS record to send back in response to the query. Used for the rule action <code>BLOCK</code> with a <code>BlockResponse</code> setting of <code>OVERRIDE</code>.<br/>BlockResponse:  The way that you want DNS Firewall to block the request. Used for the rule action setting <code>BLOCK</code>. <ul> <li>  <code>NODATA</code> - Respond indicating that the query was successful, but no response is available for it. </li> <li>  <code>NXDOMAIN</code> - Respond indicating that the domain name that's in the query doesn't exist. </li> <li>  <code>OVERRIDE</code> - Provide a custom override in the response. This option requires custom handling details in the rule's <code>BlockOverride*</code> settings.  </li> </ul><br/>Action:  The action that DNS Firewall should take on a DNS query when it matches one of the domains in the rule's domain list: <ul> <li>  <code>ALLOW</code> - Permit the request to go through. </li> <li>  <code>ALERT</code> - Permit the request to go through but send an alert to the logs. </li> <li>  <code>BLOCK</code> - Disallow the request. This option requires additional details in the rule's <code>BlockResponse</code>.  </li> </ul><br/>Priority:  The setting that determines the processing order of the rule in the rule group. DNS Firewall processes the rules in a rule group by order of priority, starting from the lowest setting. You must specify a unique priority for each rule in a rule group. To make it easier to insert rules later, leave space between the numbers, for example, use 100, 200, and so on. You can change the priority setting for the rules in a rule group at any time.<br/>FirewallDomainListId:  The ID of the domain list to use in the rule. <br/>FirewallRuleGroupId:  The unique identifier of the firewall rule group for the rule. <br/>
        :return: FirewallRule:  The firewall rule that you just updated. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ModificationTime</i> The date and time that the rule was last modified, in Unix time format and Coordinated Universal Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The date and time that the rule was created, in Unix time format and Coordinated Universal Time (UTC). <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatorRequestId</i> A unique string defined by you to identify the request. This allows you to retry failed requests without the risk of executing the operation twice. This can be any unique string, for example, a timestamp. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BlockOverrideTtl</i> The recommended amount of time, in seconds, for the DNS resolver or web browser to cache the provided override record. Used for the rule action <code>BLOCK</code> with a <code>BlockResponse</code> setting of <code>OVERRIDE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BlockOverrideDnsType</i> The DNS record's type. This determines the format of the record value that you provided in <code>BlockOverrideDomain</code>. Used for the rule action <code>BLOCK</code> with a <code>BlockResponse</code> setting of <code>OVERRIDE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BlockOverrideDomain</i> The custom DNS record to send back in response to the query. Used for the rule action <code>BLOCK</code> with a <code>BlockResponse</code> setting of <code>OVERRIDE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BlockResponse</i> The way that you want DNS Firewall to block the request. Used for the rule action setting <code>BLOCK</code>. <ul> <li>  <code>NODATA</code> - Respond indicating that the query was successful, but no response is available for it. </li> <li>  <code>NXDOMAIN</code> - Respond indicating that the domain name that's in the query doesn't exist. </li> <li>  <code>OVERRIDE</code> - Provide a custom override in the response. This option requires custom handling details in the rule's <code>BlockOverride*</code> settings.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Action</i> The action that DNS Firewall should take on a DNS query when it matches one of the domains in the rule's domain list: <ul> <li>  <code>ALLOW</code> - Permit the request to go through. </li> <li>  <code>ALERT</code> - Permit the request to go through but send an alert to the logs. </li> <li>  <code>BLOCK</code> - Disallow the request. If this is specified, additional handling details are provided in the rule's <code>BlockResponse</code> setting.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Priority</i> The priority of the rule in the rule group. This value must be unique within the rule group. DNS Firewall processes the rules in a rule group by order of priority, starting from the lowest setting.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the rule. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FirewallDomainListId</i> The ID of the domain list that's used in the rule. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FirewallRuleGroupId</i> The unique identifier of the firewall rule group of the rule. <br/>        """
        pass

    def update_firewall_rule_group_association(self, FirewallRuleGroupAssociationId: str, Priority: int=None, MutationProtection: str=None, Name: str=None) -> UpdateFirewallRuleGroupAssociationResponse:
        r"""Changes the association of a <a>FirewallRuleGroup</a> with a VPC. The association enables DNS filtering for the VPC. 

        :param self:
        :param Name:  The name of the rule group association.<br/>MutationProtection:  If enabled, this setting disallows modification or removal of the association, to help prevent against accidentally altering DNS firewall protections. <br/>Priority:  The setting that determines the processing order of the rule group among the rule groups that you associate with the specified VPC. DNS Firewall filters VPC traffic starting from the rule group with the lowest numeric priority setting.  You must specify a unique priority for each rule group that you associate with a single VPC. To make it easier to insert rule groups later, leave space between the numbers, for example, use 100, 200, and so on. You can change the priority setting for a rule group association after you create it.<br/>FirewallRuleGroupAssociationId:  The identifier of the <a>FirewallRuleGroupAssociation</a>. <br/>
        :return: FirewallRuleGroupAssociation:  The association that you just updated. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ModificationTime</i> The date and time that the association was last modified, in Unix time format and Coordinated Universal Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The date and time that the association was created, in Unix time format and Coordinated Universal Time (UTC). <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatorRequestId</i> A unique string defined by you to identify the request. This allows you to retry failed requests without the risk of running the operation twice. This can be any unique string, for example, a timestamp. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusMessage</i> Additional information about the status of the response, if available.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current status of the association.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ManagedOwnerName</i> The owner of the association, used only for associations that are not managed by you. If you use AWS Firewall Manager to manage your DNS Firewalls, then this reports Firewall Manager as the managed owner.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MutationProtection</i> If enabled, this setting disallows modification or removal of the association, to help prevent against accidentally altering DNS firewall protections. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Priority</i> The setting that determines the processing order of the rule group among the rule groups that are associated with a single VPC. DNS Firewall filters VPC traffic starting from rule group with the lowest numeric priority setting. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the association.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The unique identifier of the VPC that is associated with the rule group. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FirewallRuleGroupId</i> The unique identifier of the firewall rule group. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the firewall rule group association.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The identifier for the association.<br/>        """
        pass

    def update_resolver_dnssec_config(self, Validation: str, ResourceId: str) -> UpdateResolverDnssecConfigResponse:
        r"""Updates an existing DNSSEC validation configuration. If there is no existing DNSSEC validation configuration, one is created.

        :param self:
        :param Validation:  The new value that you are specifying for DNSSEC validation for the VPC. The value can be <code>ENABLE</code> or <code>DISABLE</code>. Be aware that it can take time for a validation status change to be completed.<br/>ResourceId:  The ID of the virtual private cloud (VPC) that you're updating the DNSSEC validation status for.<br/>
        :return: ResolverDNSSECConfig:  A complex type that contains settings for the specified DNSSEC configuration.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ValidationStatus</i> The validation status for a DNSSEC configuration. The status can be one of the following: <ul> <li>  <b>ENABLING:</b> DNSSEC validation is being enabled but is not complete. </li> <li>  <b>ENABLED:</b> DNSSEC validation is enabled. </li> <li>  <b>DISABLING:</b> DNSSEC validation is being disabled but is not complete. </li> <li>  <b>DISABLED</b> DNSSEC validation is disabled. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceId</i> The ID of the virtual private cloud (VPC) that you're configuring the DNSSEC validation status for.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> The owner account ID of the virtual private cloud (VPC) for a configuration for DNSSEC validation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID for a configuration for DNSSEC validation.<br/>        """
        pass

    def update_resolver_endpoint(self, ResolverEndpointId: str, Name: str=None) -> UpdateResolverEndpointResponse:
        r"""Updates the name of an inbound or an outbound Resolver endpoint. 

        :param self:
        :param Name:  The name of the Resolver endpoint that you want to update.<br/>ResolverEndpointId:  The ID of the Resolver endpoint that you want to update.<br/>
        :return: ResolverEndpoint:  The response to an <code>UpdateResolverEndpoint</code> request.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ModificationTime</i> The date and time that the endpoint was last modified, in Unix time format and Coordinated Universal Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The date and time that the endpoint was created, in Unix time format and Coordinated Universal Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusMessage</i> A detailed description of the status of the Resolver endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> A code that specifies the current status of the Resolver endpoint. Valid values include the following: <ul> <li>  <code>CREATING</code>: Resolver is creating and configuring one or more Amazon VPC network interfaces for this endpoint. </li> <li>  <code>OPERATIONAL</code>: The Amazon VPC network interfaces for this endpoint are correctly configured and able to pass inbound or outbound DNS queries between your network and Resolver. </li> <li>  <code>UPDATING</code>: Resolver is associating or disassociating one or more network interfaces with this endpoint. </li> <li>  <code>AUTO_RECOVERING</code>: Resolver is trying to recover one or more of the network interfaces that are associated with this endpoint. During the recovery process, the endpoint functions with limited capacity because of the limit on the number of DNS queries per IP address (per network interface). For the current limit, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DNSLimitations.html#limits-api-entities-resolver">Limits on Route 53 Resolver</a>. </li> <li>  <code>ACTION_NEEDED</code>: This endpoint is unhealthy, and Resolver can't automatically recover it. To resolve the problem, we recommend that you check each IP address that you associated with the endpoint. For each IP address that isn't available, add another IP address and then delete the IP address that isn't available. (An endpoint must always include at least two IP addresses.) A status of <code>ACTION_NEEDED</code> can have a variety of causes. Here are two common causes: <ul> <li> One or more of the network interfaces that are associated with the endpoint were deleted using Amazon VPC. </li> <li> The network interface couldn't be created for some reason that's outside the control of Resolver. </li> </ul> </li> <li>  <code>DELETING</code>: Resolver is deleting this endpoint and the associated network interfaces. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HostVPCId</i> The ID of the VPC that you want to create the Resolver endpoint in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IpAddressCount</i> The number of IP addresses that the Resolver endpoint can use for DNS queries.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Direction</i> Indicates whether the Resolver endpoint allows inbound or outbound DNS queries: <ul> <li>  <code>INBOUND</code>: allows DNS queries to your VPC from your network </li> <li>  <code>OUTBOUND</code>: allows DNS queries from your VPC to your network </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> The ID of one or more security groups that control access to this VPC. The security group must include one or more inbound rules (for inbound endpoints) or outbound rules (for outbound endpoints). Inbound and outbound rules must allow TCP and UDP access. For inbound access, open port 53. For outbound access, open the port that you're using for DNS queries on your network.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name that you assigned to the Resolver endpoint when you submitted a <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_CreateResolverEndpoint.html">CreateResolverEndpoint</a> request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The ARN (Amazon Resource Name) for the Resolver endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatorRequestId</i> A unique string that identifies the request that created the Resolver endpoint. The <code>CreatorRequestId</code> allows failed requests to be retried without the risk of running the operation twice.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID of the Resolver endpoint.<br/>        """
        pass

    def update_resolver_rule(self, Config: ResolverRuleConfig, ResolverRuleId: str) -> UpdateResolverRuleResponse:
        r"""Updates settings for a specified Resolver rule. <code>ResolverRuleId</code> is required, and all other parameters are optional. If you don't specify a parameter, it retains its current value.

        :param self:
        :param Config:  The new settings for the Resolver rule.:<br/>ResolverRuleId:  The ID of the Resolver rule that you want to update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResolverEndpointId</i> The ID of the new outbound Resolver endpoint that you want to use to route DNS queries to the IP addresses that you specify in <code>TargetIps</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetIps</i> For DNS queries that originate in your VPC, the new IP addresses that you want to route outbound DNS queries to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The new name for the Resolver rule. The name that you specify appears in the Resolver dashboard in the Route 53 console. <br/>
        :return: ResolverRule:  The response to an <code>UpdateResolverRule</code> request.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ModificationTime</i> The date and time that the Resolver rule was last updated, in Unix time format and Coordinated Universal Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The date and time that the Resolver rule was created, in Unix time format and Coordinated Universal Time (UTC).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ShareStatus</i> Whether the rule is shared and, if so, whether the current account is sharing the rule with another account, or another account is sharing the rule with the current account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> When a rule is shared with another AWS account, the account ID of the account that the rule is shared with.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResolverEndpointId</i> The ID of the endpoint that the rule is associated with.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetIps</i> An array that contains the IP addresses and ports that an outbound endpoint forwards DNS queries to. Typically, these are the IP addresses of DNS resolvers on your network. Specify IPv4 addresses. IPv6 is not supported.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name for the Resolver rule, which you specified when you created the Resolver rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RuleType</i> When you want to forward DNS queries for specified domain name to resolvers on your network, specify <code>FORWARD</code>. When you have a forwarding rule to forward DNS queries for a domain to your network and you want Resolver to process queries for a subdomain of that domain, specify <code>SYSTEM</code>. For example, to forward DNS queries for example.com to resolvers on your network, you create a rule and specify <code>FORWARD</code> for <code>RuleType</code>. To then have Resolver process queries for apex.example.com, you create a rule and specify <code>SYSTEM</code> for <code>RuleType</code>. Currently, only Resolver can create rules that have a value of <code>RECURSIVE</code> for <code>RuleType</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusMessage</i> A detailed description of the status of a Resolver rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> A code that specifies the current status of the Resolver rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainName</i> DNS queries for this domain name are forwarded to the IP addresses that are specified in <code>TargetIps</code>. If a query matches multiple Resolver rules (example.com and www.example.com), the query is routed using the Resolver rule that contains the most specific domain name (www.example.com).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The ARN (Amazon Resource Name) for the Resolver rule specified by <code>Id</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatorRequestId</i> A unique string that you specified when you created the Resolver rule. <code>CreatorRequestId</code> identifies the request and allows failed requests to be retried without the risk of running the operation twice. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID that Resolver assigned to the Resolver rule when you created it.<br/>        """
        pass





class S3(BaseClient):
    r"""<p/>"""

    class BucketExistsWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `head_bucket` for valid parameters"""
            pass
    class BucketNotExistsWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `head_bucket` for valid parameters"""
            pass
    class ObjectExistsWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `head_object` for valid parameters"""
            pass
    class ObjectNotExistsWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `head_object` for valid parameters"""
            pass


    class ListMultipartUploadsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_multipart_uploads` for valid parameters"""
            pass
    class ListObjectVersionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_object_versions` for valid parameters"""
            pass
    class ListObjectsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_objects` for valid parameters"""
            pass
    class ListObjectsV2Paginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_objects_v2` for valid parameters"""
            pass
    class ListPartsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_parts` for valid parameters"""
            pass


    class AbortMultipartUploadRequest(Mapping):
        pass
    
    class AbortMultipartUploadOutput(Mapping):
        pass
    
    class CompleteMultipartUploadRequest(Mapping):
        pass
    
    class CompleteMultipartUploadOutput(Mapping):
        pass
    
    class CompletedMultipartUpload(Mapping):
        pass
    
    class CopyObjectRequest(Mapping):
        pass
    
    class CopyObjectOutput(Mapping):
        pass
    
    class CopySourceIfModifiedSince(object):
        pass
    
    class CopySourceIfUnmodifiedSince(object):
        pass
    
    class Expires(object):
        pass
    
    class Metadata(object):
        pass
    
    class BucketKeyEnabled(object):
        pass
    
    class ObjectLockRetainUntilDate(object):
        pass
    
    class CreateBucketRequest(Mapping):
        pass
    
    class CreateBucketOutput(Mapping):
        pass
    
    class CreateBucketConfiguration(Mapping):
        pass
    
    class ObjectLockEnabledForBucket(object):
        pass
    
    class CreateMultipartUploadRequest(Mapping):
        pass
    
    class CreateMultipartUploadOutput(Mapping):
        pass
    
    class DeleteBucketRequest(Mapping):
        pass
    
    class DeleteBucketAnalyticsConfigurationRequest(Mapping):
        pass
    
    class DeleteBucketCorsRequest(Mapping):
        pass
    
    class DeleteBucketEncryptionRequest(Mapping):
        pass
    
    class DeleteBucketIntelligentTieringConfigurationRequest(Mapping):
        pass
    
    class DeleteBucketInventoryConfigurationRequest(Mapping):
        pass
    
    class DeleteBucketLifecycleRequest(Mapping):
        pass
    
    class DeleteBucketMetricsConfigurationRequest(Mapping):
        pass
    
    class DeleteBucketOwnershipControlsRequest(Mapping):
        pass
    
    class DeleteBucketPolicyRequest(Mapping):
        pass
    
    class DeleteBucketReplicationRequest(Mapping):
        pass
    
    class DeleteBucketTaggingRequest(Mapping):
        pass
    
    class DeleteBucketWebsiteRequest(Mapping):
        pass
    
    class DeleteObjectRequest(Mapping):
        pass
    
    class DeleteObjectOutput(Mapping):
        pass
    
    class BypassGovernanceRetention(object):
        pass
    
    class DeleteObjectTaggingRequest(Mapping):
        pass
    
    class DeleteObjectTaggingOutput(Mapping):
        pass
    
    class DeleteObjectsRequest(Mapping):
        pass
    
    class DeleteObjectsOutput(Mapping):
        pass
    
    class Delete(Mapping):
        pass
    
    class DeletePublicAccessBlockRequest(Mapping):
        pass
    
    class GetBucketAccelerateConfigurationRequest(Mapping):
        pass
    
    class GetBucketAccelerateConfigurationOutput(Mapping):
        pass
    
    class GetBucketAclRequest(Mapping):
        pass
    
    class GetBucketAclOutput(Mapping):
        pass
    
    class GetBucketAnalyticsConfigurationRequest(Mapping):
        pass
    
    class GetBucketAnalyticsConfigurationOutput(Mapping):
        pass
    
    class GetBucketCorsRequest(Mapping):
        pass
    
    class GetBucketCorsOutput(Mapping):
        pass
    
    class GetBucketEncryptionRequest(Mapping):
        pass
    
    class GetBucketEncryptionOutput(Mapping):
        pass
    
    class GetBucketIntelligentTieringConfigurationRequest(Mapping):
        pass
    
    class GetBucketIntelligentTieringConfigurationOutput(Mapping):
        pass
    
    class GetBucketInventoryConfigurationRequest(Mapping):
        pass
    
    class GetBucketInventoryConfigurationOutput(Mapping):
        pass
    
    class GetBucketLifecycleRequest(Mapping):
        pass
    
    class GetBucketLifecycleOutput(Mapping):
        pass
    
    class GetBucketLifecycleConfigurationRequest(Mapping):
        pass
    
    class GetBucketLifecycleConfigurationOutput(Mapping):
        pass
    
    class GetBucketLocationRequest(Mapping):
        pass
    
    class GetBucketLocationOutput(Mapping):
        pass
    
    class GetBucketLoggingRequest(Mapping):
        pass
    
    class GetBucketLoggingOutput(Mapping):
        pass
    
    class GetBucketMetricsConfigurationRequest(Mapping):
        pass
    
    class GetBucketMetricsConfigurationOutput(Mapping):
        pass
    
    class GetBucketNotificationConfigurationRequest(Mapping):
        pass
    
    class NotificationConfigurationDeprecated(Mapping):
        pass
    
    class NotificationConfiguration(Mapping):
        pass
    
    class GetBucketOwnershipControlsRequest(Mapping):
        pass
    
    class GetBucketOwnershipControlsOutput(Mapping):
        pass
    
    class GetBucketPolicyRequest(Mapping):
        pass
    
    class GetBucketPolicyOutput(Mapping):
        pass
    
    class GetBucketPolicyStatusRequest(Mapping):
        pass
    
    class GetBucketPolicyStatusOutput(Mapping):
        pass
    
    class GetBucketReplicationRequest(Mapping):
        pass
    
    class GetBucketReplicationOutput(Mapping):
        pass
    
    class GetBucketRequestPaymentRequest(Mapping):
        pass
    
    class GetBucketRequestPaymentOutput(Mapping):
        pass
    
    class GetBucketTaggingRequest(Mapping):
        pass
    
    class GetBucketTaggingOutput(Mapping):
        pass
    
    class GetBucketVersioningRequest(Mapping):
        pass
    
    class GetBucketVersioningOutput(Mapping):
        pass
    
    class GetBucketWebsiteRequest(Mapping):
        pass
    
    class GetBucketWebsiteOutput(Mapping):
        pass
    
    class GetObjectRequest(Mapping):
        pass
    
    class GetObjectOutput(Mapping):
        pass
    
    class IfModifiedSince(object):
        pass
    
    class IfUnmodifiedSince(object):
        pass
    
    class ResponseExpires(object):
        pass
    
    class GetObjectAclRequest(Mapping):
        pass
    
    class GetObjectAclOutput(Mapping):
        pass
    
    class GetObjectLegalHoldRequest(Mapping):
        pass
    
    class GetObjectLegalHoldOutput(Mapping):
        pass
    
    class GetObjectLockConfigurationRequest(Mapping):
        pass
    
    class GetObjectLockConfigurationOutput(Mapping):
        pass
    
    class GetObjectRetentionRequest(Mapping):
        pass
    
    class GetObjectRetentionOutput(Mapping):
        pass
    
    class GetObjectTaggingRequest(Mapping):
        pass
    
    class GetObjectTaggingOutput(Mapping):
        pass
    
    class GetObjectTorrentRequest(Mapping):
        pass
    
    class GetObjectTorrentOutput(Mapping):
        pass
    
    class GetPublicAccessBlockRequest(Mapping):
        pass
    
    class GetPublicAccessBlockOutput(Mapping):
        pass
    
    class HeadBucketRequest(Mapping):
        pass
    
    class HeadObjectRequest(Mapping):
        pass
    
    class HeadObjectOutput(Mapping):
        pass
    
    class ListBucketAnalyticsConfigurationsRequest(Mapping):
        pass
    
    class ListBucketAnalyticsConfigurationsOutput(Mapping):
        pass
    
    class ListBucketIntelligentTieringConfigurationsRequest(Mapping):
        pass
    
    class ListBucketIntelligentTieringConfigurationsOutput(Mapping):
        pass
    
    class ListBucketInventoryConfigurationsRequest(Mapping):
        pass
    
    class ListBucketInventoryConfigurationsOutput(Mapping):
        pass
    
    class ListBucketMetricsConfigurationsRequest(Mapping):
        pass
    
    class ListBucketMetricsConfigurationsOutput(Mapping):
        pass
    
    class ListBucketsOutput(Mapping):
        pass
    
    class ListMultipartUploadsRequest(Mapping):
        pass
    
    class ListMultipartUploadsOutput(Mapping):
        pass
    
    class ListObjectVersionsRequest(Mapping):
        pass
    
    class ListObjectVersionsOutput(Mapping):
        pass
    
    class ListObjectsRequest(Mapping):
        pass
    
    class ListObjectsOutput(Mapping):
        pass
    
    class ListObjectsV2Request(Mapping):
        pass
    
    class ListObjectsV2Output(Mapping):
        pass
    
    class FetchOwner(object):
        pass
    
    class ListPartsRequest(Mapping):
        pass
    
    class ListPartsOutput(Mapping):
        pass
    
    class PutBucketAccelerateConfigurationRequest(Mapping):
        pass
    
    class AccelerateConfiguration(Mapping):
        pass
    
    class PutBucketAclRequest(Mapping):
        pass
    
    class AccessControlPolicy(Mapping):
        pass
    
    class PutBucketAnalyticsConfigurationRequest(Mapping):
        pass
    
    class AnalyticsConfiguration(Mapping):
        pass
    
    class PutBucketCorsRequest(Mapping):
        pass
    
    class CORSConfiguration(Mapping):
        pass
    
    class PutBucketEncryptionRequest(Mapping):
        pass
    
    class ServerSideEncryptionConfiguration(Mapping):
        pass
    
    class PutBucketIntelligentTieringConfigurationRequest(Mapping):
        pass
    
    class IntelligentTieringConfiguration(Mapping):
        pass
    
    class PutBucketInventoryConfigurationRequest(Mapping):
        pass
    
    class InventoryConfiguration(Mapping):
        pass
    
    class PutBucketLifecycleRequest(Mapping):
        pass
    
    class LifecycleConfiguration(Mapping):
        pass
    
    class PutBucketLifecycleConfigurationRequest(Mapping):
        pass
    
    class BucketLifecycleConfiguration(Mapping):
        pass
    
    class PutBucketLoggingRequest(Mapping):
        pass
    
    class BucketLoggingStatus(Mapping):
        pass
    
    class PutBucketMetricsConfigurationRequest(Mapping):
        pass
    
    class MetricsConfiguration(Mapping):
        pass
    
    class PutBucketNotificationRequest(Mapping):
        pass
    
    class PutBucketNotificationConfigurationRequest(Mapping):
        pass
    
    class PutBucketOwnershipControlsRequest(Mapping):
        pass
    
    class OwnershipControls(Mapping):
        pass
    
    class PutBucketPolicyRequest(Mapping):
        pass
    
    class ConfirmRemoveSelfBucketAccess(object):
        pass
    
    class PutBucketReplicationRequest(Mapping):
        pass
    
    class ReplicationConfiguration(Mapping):
        pass
    
    class PutBucketRequestPaymentRequest(Mapping):
        pass
    
    class RequestPaymentConfiguration(Mapping):
        pass
    
    class PutBucketTaggingRequest(Mapping):
        pass
    
    class Tagging(Mapping):
        pass
    
    class PutBucketVersioningRequest(Mapping):
        pass
    
    class VersioningConfiguration(Mapping):
        pass
    
    class PutBucketWebsiteRequest(Mapping):
        pass
    
    class WebsiteConfiguration(Mapping):
        pass
    
    class PutObjectRequest(Mapping):
        pass
    
    class PutObjectOutput(Mapping):
        pass
    
    class Body(object):
        pass
    
    class ContentLength(object):
        pass
    
    class PutObjectAclRequest(Mapping):
        pass
    
    class PutObjectAclOutput(Mapping):
        pass
    
    class PutObjectLegalHoldRequest(Mapping):
        pass
    
    class PutObjectLegalHoldOutput(Mapping):
        pass
    
    class ObjectLockLegalHold(Mapping):
        pass
    
    class PutObjectLockConfigurationRequest(Mapping):
        pass
    
    class PutObjectLockConfigurationOutput(Mapping):
        pass
    
    class ObjectLockConfiguration(Mapping):
        pass
    
    class PutObjectRetentionRequest(Mapping):
        pass
    
    class PutObjectRetentionOutput(Mapping):
        pass
    
    class ObjectLockRetention(Mapping):
        pass
    
    class PutObjectTaggingRequest(Mapping):
        pass
    
    class PutObjectTaggingOutput(Mapping):
        pass
    
    class PutPublicAccessBlockRequest(Mapping):
        pass
    
    class PublicAccessBlockConfiguration(Mapping):
        pass
    
    class RestoreObjectRequest(Mapping):
        pass
    
    class RestoreObjectOutput(Mapping):
        pass
    
    class RestoreRequest(Mapping):
        pass
    
    class SelectObjectContentRequest(Mapping):
        pass
    
    class SelectObjectContentOutput(Mapping):
        pass
    
    class RequestProgress(Mapping):
        pass
    
    class InputSerialization(Mapping):
        pass
    
    class OutputSerialization(Mapping):
        pass
    
    class ScanRange(Mapping):
        pass
    
    class UploadPartRequest(Mapping):
        pass
    
    class UploadPartOutput(Mapping):
        pass
    
    class UploadPartCopyRequest(Mapping):
        pass
    
    class UploadPartCopyOutput(Mapping):
        pass
    
    class WriteGetObjectResponseRequest(Mapping):
        pass
    
    class DeleteMarker(object):
        pass
    
    class LastModified(object):
        pass
    
    def abort_multipart_upload(self, UploadId: str, Key: str, Bucket: str, RequestPayer: str=None, ExpectedBucketOwner: str=None) -> AbortMultipartUploadOutput:
        r"""This action aborts a multipart upload. After a multipart upload is aborted, no additional parts can be uploaded using that upload ID. The storage consumed by any previously uploaded parts will be freed. However, if any part uploads are currently in progress, those part uploads might or might not succeed. As a result, it might be necessary to abort a given multipart upload multiple times in order to completely free all storage consumed by all parts.  To verify that all parts have been removed, so you don't get charged for the part storage, you should call the <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html">ListParts</a> action and ensure that the parts list is empty. For information about permissions required to use the multipart upload, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html">Multipart Upload and Permissions</a>. The following operations are related to <code>AbortMultipartUpload</code>: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html">CompleteMultipartUpload</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html">ListParts</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html">ListMultipartUploads</a>  </li> </ul>

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>RequestPayer:  Confirms that the requester knows that they will be charged for the request. Bucket owners need not specify this parameter in their requests. For information about downloading objects from requester pays buckets, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html">Downloading Objects in Requestor Pays Buckets</a> in the <i>Amazon S3 User Guide</i>.<br/>UploadId:  Upload ID that identifies the multipart upload.<br/>Key:  Key of the object for which the multipart upload was initiated.<br/>Bucket:  The bucket name to which the upload was taking place.  When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using access points</a> in the <i>Amazon S3 User Guide</i>. When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com. When using this action using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html">Using S3 on Outposts</a> in the <i>Amazon S3 User Guide</i>.<br/>
        :return: RequestCharged:  If present, indicates that the requester was successfully charged for the request.<br/>        """
        pass

    def complete_multipart_upload(self, UploadId: str, Key: str, Bucket: str, MultipartUpload: CompletedMultipartUpload=None, RequestPayer: str=None, ExpectedBucketOwner: str=None) -> CompleteMultipartUploadOutput:
        r"""Completes a multipart upload by assembling previously uploaded parts. You first initiate the multipart upload and then upload all parts using the <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a> operation. After successfully uploading all relevant parts of an upload, you call this action to complete the upload. Upon receiving this request, Amazon S3 concatenates all the parts in ascending order by part number to create a new object. In the Complete Multipart Upload request, you must provide the parts list. You must ensure that the parts list is complete. This action concatenates the parts that you provide in the list. For each part in the list, you must provide the part number and the <code>ETag</code> value, returned after that part was uploaded. Processing of a Complete Multipart Upload request could take several minutes to complete. After Amazon S3 begins processing the request, it sends an HTTP response header that specifies a 200 OK response. While processing is in progress, Amazon S3 periodically sends white space characters to keep the connection from timing out. Because a request could fail after the initial 200 OK response has been sent, it is important that you check the response body to determine whether the request succeeded. Note that if <code>CompleteMultipartUpload</code> fails, applications should be prepared to retry the failed requests. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ErrorBestPractices.html">Amazon S3 Error Best Practices</a>. For more information about multipart uploads, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html">Uploading Objects Using Multipart Upload</a>. For information about permissions required to use the multipart upload API, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html">Multipart Upload and Permissions</a>.  <code>CompleteMultipartUpload</code> has the following special errors: <ul> <li> Error code: <code>EntityTooSmall</code>  <ul> <li> Description: Your proposed upload is smaller than the minimum allowed object size. Each part must be at least 5 MB in size, except the last part. </li> <li> 400 Bad Request </li> </ul> </li> <li> Error code: <code>InvalidPart</code>  <ul> <li> Description: One or more of the specified parts could not be found. The part might not have been uploaded, or the specified entity tag might not have matched the part's entity tag. </li> <li> 400 Bad Request </li> </ul> </li> <li> Error code: <code>InvalidPartOrder</code>  <ul> <li> Description: The list of parts was not in ascending order. The parts list must be specified in order by part number. </li> <li> 400 Bad Request </li> </ul> </li> <li> Error code: <code>NoSuchUpload</code>  <ul> <li> Description: The specified multipart upload does not exist. The upload ID might be invalid, or the multipart upload might have been aborted or completed. </li> <li> 404 Not Found </li> </ul> </li> </ul> The following operations are related to <code>CompleteMultipartUpload</code>: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html">AbortMultipartUpload</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html">ListParts</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html">ListMultipartUploads</a>  </li> </ul>

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>RequestPayer:  Confirms that the requester knows that they will be charged for the request. Bucket owners need not specify this parameter in their requests. For information about downloading objects from requester pays buckets, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html">Downloading Objects in Requestor Pays Buckets</a> in the <i>Amazon S3 User Guide</i>.<br/>UploadId:  ID for the initiated multipart upload.<br/>MultipartUpload:  The container for the multipart upload request information.:<br/>Key:  Object key for which the multipart upload was initiated.<br/>Bucket:  Name of the bucket to which the multipart upload was initiated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Parts</i> Array of CompletedPart data types.<br/>
        :return: RequestCharged:  If present, indicates that the requester was successfully charged for the request.<br/>BucketKeyEnabled:  Indicates whether the multipart upload uses an S3 Bucket Key for server-side encryption with AWS KMS (SSE-KMS).<br/>SSEKMSKeyId:  If present, specifies the ID of the AWS Key Management Service (AWS KMS) symmetric customer managed customer master key (CMK) that was used for the object.<br/>VersionId:  Version ID of the newly created object, in case the bucket has versioning turned on.<br/>ServerSideEncryption:  If you specified server-side encryption either with an Amazon S3-managed encryption key or an AWS KMS customer master key (CMK) in your initiate multipart upload request, the response includes this header. It confirms the encryption algorithm that Amazon S3 used to encrypt the object.<br/>ETag:  Entity tag that identifies the newly created object's data. Objects with different object data will have different entity tags. The entity tag is an opaque string. The entity tag may or may not be an MD5 digest of the object data. If the entity tag is not an MD5 digest of the object data, it will contain one or more nonhexadecimal characters and/or will consist of less than 32 or more than 32 hexadecimal digits.<br/>Expiration:  If the object expiration is configured, this will contain the expiration date (expiry-date) and rule ID (rule-id). The value of rule-id is URL encoded.<br/>Key:  The object key of the newly created object.<br/>Bucket:  The name of the bucket that contains the newly created object. When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using access points</a> in the <i>Amazon S3 User Guide</i>. When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com. When using this action using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html">Using S3 on Outposts</a> in the <i>Amazon S3 User Guide</i>.<br/>Location:  The URI that identifies the newly created object.<br/>        """
        pass

    def copy_object(self, Key: str, CopySource: str, Bucket: str, ACL: str=None, CacheControl: str=None, ContentDisposition: str=None, ContentEncoding: str=None, ContentLanguage: str=None, ContentType: str=None, CopySourceIfMatch: str=None, CopySourceIfModifiedSince: CopySourceIfModifiedSince=None, CopySourceIfNoneMatch: str=None, CopySourceIfUnmodifiedSince: CopySourceIfUnmodifiedSince=None, Expires: Expires=None, GrantFullControl: str=None, GrantRead: str=None, GrantReadACP: str=None, GrantWriteACP: str=None, Metadata: Metadata=None, MetadataDirective: str=None, TaggingDirective: str=None, ServerSideEncryption: str=None, StorageClass: str=None, WebsiteRedirectLocation: str=None, SSECustomerAlgorithm: str=None, SSECustomerKey: str=None, SSECustomerKeyMD5: str=None, SSEKMSKeyId: str=None, SSEKMSEncryptionContext: str=None, BucketKeyEnabled: BucketKeyEnabled=None, CopySourceSSECustomerAlgorithm: str=None, CopySourceSSECustomerKey: str=None, CopySourceSSECustomerKeyMD5: str=None, RequestPayer: str=None, Tagging: str=None, ObjectLockMode: str=None, ObjectLockRetainUntilDate: ObjectLockRetainUntilDate=None, ObjectLockLegalHoldStatus: str=None, ExpectedBucketOwner: str=None, ExpectedSourceBucketOwner: str=None) -> CopyObjectOutput:
        r"""Creates a copy of an object that is already stored in Amazon S3. <note> You can store individual objects of up to 5 TB in Amazon S3. You create a copy of your object up to 5 GB in size in a single atomic action using this API. However, to copy an object greater than 5 GB, you must use the multipart upload Upload Part - Copy API. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/CopyingObjctsUsingRESTMPUapi.html">Copy Object Using the REST Multipart Upload API</a>. </note> All copy requests must be authenticated. Additionally, you must have <i>read</i> access to the source object and <i>write</i> access to the destination bucket. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html">REST Authentication</a>. Both the Region that you want to copy the object from and the Region that you want to copy the object to must be enabled for your account. A copy request might return an error when Amazon S3 receives the copy request or while Amazon S3 is copying the files. If the error occurs before the copy action starts, you receive a standard Amazon S3 error. If the error occurs during the copy operation, the error response is embedded in the <code>200 OK</code> response. This means that a <code>200 OK</code> response can contain either a success or an error. Design your application to parse the contents of the response and handle it appropriately. If the copy is successful, you receive a response with information about the copied object. <note> If the request is an HTTP 1.1 request, the response is chunk encoded. If it were not, it would not contain the content-length, and you would need to read the entire body. </note> The copy request charge is based on the storage class and Region that you specify for the destination object. For pricing information, see <a href="http://aws.amazon.com/s3/pricing/">Amazon S3 pricing</a>. <important> Amazon S3 transfer acceleration does not support cross-Region copies. If you request a cross-Region copy using a transfer acceleration endpoint, you get a 400 <code>Bad Request</code> error. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html">Transfer Acceleration</a>. </important>  <b>Metadata</b>  When copying an object, you can preserve all metadata (default) or specify new metadata. However, the ACL is not preserved and is set to private for the user making the request. To override the default ACL setting, specify a new ACL when generating a copy request. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html">Using ACLs</a>.  To specify whether you want the object metadata copied from the source object or replaced with metadata provided in the request, you can optionally add the <code>x-amz-metadata-directive</code> header. When you grant permissions, you can use the <code>s3:x-amz-metadata-directive</code> condition key to enforce certain metadata behavior when objects are uploaded. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/amazon-s3-policy-keys.html">Specifying Conditions in a Policy</a> in the <i>Amazon S3 User Guide</i>. For a complete list of Amazon S3-specific condition keys, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/list_amazons3.html">Actions, Resources, and Condition Keys for Amazon S3</a>.  <b> <code>x-amz-copy-source-if</code> Headers</b>  To only copy an object under certain conditions, such as whether the <code>Etag</code> matches or whether the object was modified before or after a specified date, use the following request parameters: <ul> <li>  <code>x-amz-copy-source-if-match</code>  </li> <li>  <code>x-amz-copy-source-if-none-match</code>  </li> <li>  <code>x-amz-copy-source-if-unmodified-since</code>  </li> <li>  <code>x-amz-copy-source-if-modified-since</code>  </li> </ul>  If both the <code>x-amz-copy-source-if-match</code> and <code>x-amz-copy-source-if-unmodified-since</code> headers are present in the request and evaluate as follows, Amazon S3 returns <code>200 OK</code> and copies the data: <ul> <li>  <code>x-amz-copy-source-if-match</code> condition evaluates to true </li> <li>  <code>x-amz-copy-source-if-unmodified-since</code> condition evaluates to false </li> </ul> If both the <code>x-amz-copy-source-if-none-match</code> and <code>x-amz-copy-source-if-modified-since</code> headers are present in the request and evaluate as follows, Amazon S3 returns the <code>412 Precondition Failed</code> response code: <ul> <li>  <code>x-amz-copy-source-if-none-match</code> condition evaluates to false </li> <li>  <code>x-amz-copy-source-if-modified-since</code> condition evaluates to true </li> </ul> <note> All headers with the <code>x-amz-</code> prefix, including <code>x-amz-copy-source</code>, must be signed. </note>  <b>Server-side encryption</b>  When you perform a CopyObject operation, you can optionally use the appropriate encryption-related headers to encrypt the object using server-side encryption with AWS managed encryption keys (SSE-S3 or SSE-KMS) or a customer-provided encryption key. With server-side encryption, Amazon S3 encrypts your data as it writes it to disks in its data centers and decrypts the data when you access it. For more information about server-side encryption, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html">Using Server-Side Encryption</a>. If a target object uses SSE-KMS, you can enable an S3 Bucket Key for the object. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html">Amazon S3 Bucket Keys</a> in the <i>Amazon S3 User Guide</i>.  <b>Access Control List (ACL)-Specific Request Headers</b>  When copying an object, you can optionally use headers to grant ACL-based permissions. By default, all objects are private. Only the owner has full access control. When adding a new object, you can grant permissions to individual AWS accounts or to predefined groups defined by Amazon S3. These permissions are then added to the ACL on the object. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html">Access Control List (ACL) Overview</a> and <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-using-rest-api.html">Managing ACLs Using the REST API</a>.   <b>Storage Class Options</b>  You can use the <code>CopyObject</code> action to change the storage class of an object that is already stored in Amazon S3 using the <code>StorageClass</code> parameter. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html">Storage Classes</a> in the <i>Amazon S3 User Guide</i>.  <b>Versioning</b>  By default, <code>x-amz-copy-source</code> identifies the current version of an object to copy. If the current version is a delete marker, Amazon S3 behaves as if the object was deleted. To copy a different version, use the <code>versionId</code> subresource. If you enable versioning on the target bucket, Amazon S3 generates a unique version ID for the object being copied. This version ID is different from the version ID of the source object. Amazon S3 returns the version ID of the copied object in the <code>x-amz-version-id</code> response header in the response. If you do not enable versioning or suspend it on the target bucket, the version ID that Amazon S3 generates is always null. If the source object's storage class is GLACIER, you must restore a copy of this object before you can use it as a source object for the copy operation. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_RestoreObject.html">RestoreObject</a>. The following operations are related to <code>CopyObject</code>: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html">PutObject</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>  </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/CopyingObjectsExamples.html">Copying Objects</a>.

        :param self:
        :param ExpectedSourceBucketOwner:  The account ID of the expected source bucket owner. If the source bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>ExpectedBucketOwner:  The account ID of the expected destination bucket owner. If the destination bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>ObjectLockLegalHoldStatus:  Specifies whether you want to apply a Legal Hold to the copied object.<br/>ObjectLockRetainUntilDate:  The date and time when you want the copied object's Object Lock to expire.<br/>ObjectLockMode:  The Object Lock mode that you want to apply to the copied object.<br/>Tagging:  The tag-set for the object destination object this value must be used in conjunction with the <code>TaggingDirective</code>. The tag-set must be encoded as URL Query parameters.<br/>RequestPayer:  Confirms that the requester knows that they will be charged for the request. Bucket owners need not specify this parameter in their requests. For information about downloading objects from requester pays buckets, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html">Downloading Objects in Requestor Pays Buckets</a> in the <i>Amazon S3 User Guide</i>.<br/>CopySourceSSECustomerKeyMD5:  Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure that the encryption key was transmitted without error.<br/>CopySourceSSECustomerKey:  Specifies the customer-provided encryption key for Amazon S3 to use to decrypt the source object. The encryption key provided in this header must be one that was used when the source object was created.<br/>CopySourceSSECustomerAlgorithm:  Specifies the algorithm to use when decrypting the source object (for example, AES256).<br/>BucketKeyEnabled:  Specifies whether Amazon S3 should use an S3 Bucket Key for object encryption with server-side encryption using AWS KMS (SSE-KMS). Setting this header to <code>true</code> causes Amazon S3 to use an S3 Bucket Key for object encryption with SSE-KMS.  Specifying this header with a COPY action doesn’t affect bucket-level settings for S3 Bucket Key.<br/>SSEKMSEncryptionContext:  Specifies the AWS KMS Encryption Context to use for object encryption. The value of this header is a base64-encoded UTF-8 string holding JSON with the encryption context key-value pairs.<br/>SSEKMSKeyId:  Specifies the AWS KMS key ID to use for object encryption. All GET and PUT requests for an object protected by AWS KMS will fail if not made via SSL or using SigV4. For information about configuring using any of the officially supported AWS SDKs and AWS CLI, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version">Specifying the Signature Version in Request Authentication</a> in the <i>Amazon S3 User Guide</i>.<br/>SSECustomerKeyMD5:  Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure that the encryption key was transmitted without error.<br/>SSECustomerKey:  Specifies the customer-provided encryption key for Amazon S3 to use in encrypting data. This value is used to store the object and then it is discarded; Amazon S3 does not store the encryption key. The key must be appropriate for use with the algorithm specified in the <code>x-amz-server-side-encryption-customer-algorithm</code> header.<br/>SSECustomerAlgorithm:  Specifies the algorithm to use to when encrypting the object (for example, AES256).<br/>WebsiteRedirectLocation:  If the bucket is configured as a website, redirects requests for this object to another object in the same bucket or to an external URL. Amazon S3 stores the value of this header in the object metadata.<br/>StorageClass:  By default, Amazon S3 uses the STANDARD Storage Class to store newly created objects. The STANDARD storage class provides high durability and high availability. Depending on performance needs, you can specify a different Storage Class. Amazon S3 on Outposts only uses the OUTPOSTS Storage Class. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html">Storage Classes</a> in the <i>Amazon S3 User Guide</i>.<br/>ServerSideEncryption:  The server-side encryption algorithm used when storing this object in Amazon S3 (for example, AES256, aws:kms).<br/>TaggingDirective:  Specifies whether the object tag-set are copied from the source object or replaced with tag-set provided in the request.<br/>MetadataDirective:  Specifies whether the metadata is copied from the source object or replaced with metadata provided in the request.<br/>Metadata:  A map of metadata to store with the object in S3.<br/>Key:  The key of the destination object.<br/>GrantWriteACP:  Allows grantee to write the ACL for the applicable object. This action is not supported by Amazon S3 on Outposts.<br/>GrantReadACP:  Allows grantee to read the object ACL. This action is not supported by Amazon S3 on Outposts.<br/>GrantRead:  Allows grantee to read the object data and its metadata. This action is not supported by Amazon S3 on Outposts.<br/>GrantFullControl:  Gives the grantee READ, READ_ACP, and WRITE_ACP permissions on the object. This action is not supported by Amazon S3 on Outposts.<br/>Expires:  The date and time at which the object is no longer cacheable.<br/>CopySourceIfUnmodifiedSince:  Copies the object if it hasn't been modified since the specified time.<br/>CopySourceIfNoneMatch:  Copies the object if its entity tag (ETag) is different than the specified ETag.<br/>CopySourceIfModifiedSince:  Copies the object if it has been modified since the specified time.<br/>CopySourceIfMatch:  Copies the object if its entity tag (ETag) matches the specified tag.<br/>CopySource:  Specifies the source object for the copy operation. You specify the value in one of two formats, depending on whether you want to access the source object through an <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points.html">access point</a>: <ul> <li> For objects not accessed through an access point, specify the name of the source bucket and the key of the source object, separated by a slash (/). For example, to copy the object <code>reports/january.pdf</code> from the bucket <code>awsexamplebucket</code>, use <code>awsexamplebucket/reports/january.pdf</code>. The value must be URL encoded. </li> <li> For objects accessed through access points, specify the Amazon Resource Name (ARN) of the object as accessed through the access point, in the format <code>arn:aws:s3:&lt;Region&gt;:&lt;account-id&gt;:accesspoint/&lt;access-point-name&gt;/object/&lt;key&gt;</code>. For example, to copy the object <code>reports/january.pdf</code> through access point <code>my-access-point</code> owned by account <code>123456789012</code> in Region <code>us-west-2</code>, use the URL encoding of <code>arn:aws:s3:us-west-2:123456789012:accesspoint/my-access-point/object/reports/january.pdf</code>. The value must be URL encoded. <note> Amazon S3 supports copy operations using access points only when the source and destination buckets are in the same AWS Region. </note> Alternatively, for objects accessed through Amazon S3 on Outposts, specify the ARN of the object as accessed in the format <code>arn:aws:s3-outposts:&lt;Region&gt;:&lt;account-id&gt;:outpost/&lt;outpost-id&gt;/object/&lt;key&gt;</code>. For example, to copy the object <code>reports/january.pdf</code> through outpost <code>my-outpost</code> owned by account <code>123456789012</code> in Region <code>us-west-2</code>, use the URL encoding of <code>arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/object/reports/january.pdf</code>. The value must be URL encoded.  </li> </ul> To copy a specific version of an object, append <code>?versionId=&lt;version-id&gt;</code> to the value (for example, <code>awsexamplebucket/reports/january.pdf?versionId=QUpfdndhfd8438MNFDN93jdnJFkdmqnh893</code>). If you don't specify a version ID, Amazon S3 copies the latest version of the source object.<br/>ContentType:  A standard MIME type describing the format of the object data.<br/>ContentLanguage:  The language the content is in.<br/>ContentEncoding:  Specifies what content encodings have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field.<br/>ContentDisposition:  Specifies presentational information for the object.<br/>CacheControl:  Specifies caching behavior along the request/reply chain.<br/>Bucket:  The name of the destination bucket. When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using access points</a> in the <i>Amazon S3 User Guide</i>. When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com. When using this action using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html">Using S3 on Outposts</a> in the <i>Amazon S3 User Guide</i>.<br/>ACL:  The canned ACL to apply to the object. This action is not supported by Amazon S3 on Outposts.<br/>
        :return: RequestCharged:  If present, indicates that the requester was successfully charged for the request.<br/>BucketKeyEnabled:  Indicates whether the copied object uses an S3 Bucket Key for server-side encryption with AWS KMS (SSE-KMS).<br/>SSEKMSEncryptionContext:  If present, specifies the AWS KMS Encryption Context to use for object encryption. The value of this header is a base64-encoded UTF-8 string holding JSON with the encryption context key-value pairs.<br/>SSEKMSKeyId:  If present, specifies the ID of the AWS Key Management Service (AWS KMS) symmetric customer managed customer master key (CMK) that was used for the object.<br/>SSECustomerKeyMD5:  If server-side encryption with a customer-provided encryption key was requested, the response will include this header to provide round-trip message integrity verification of the customer-provided encryption key.<br/>SSECustomerAlgorithm:  If server-side encryption with a customer-provided encryption key was requested, the response will include this header confirming the encryption algorithm used.<br/>ServerSideEncryption:  The server-side encryption algorithm used when storing this object in Amazon S3 (for example, AES256, aws:kms).<br/>VersionId:  Version ID of the newly created copy.<br/>CopySourceVersionId:  Version of the copied object in the destination bucket.<br/>Expiration:  If the object expiration is configured, the response includes this header.<br/>CopyObjectResult:  Container for all response elements.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModified</i> Creation date of the object.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ETag</i> Returns the ETag of the new object. The ETag reflects only changes to the contents of an object, not its metadata. The source and destination ETag is identical for a successfully copied non-multipart object.<br/>        """
        pass

    def create_bucket(self, Bucket: str, ACL: str=None, CreateBucketConfiguration: CreateBucketConfiguration=None, GrantFullControl: str=None, GrantRead: str=None, GrantReadACP: str=None, GrantWrite: str=None, GrantWriteACP: str=None, ObjectLockEnabledForBucket: ObjectLockEnabledForBucket=None) -> CreateBucketOutput:
        r"""Creates a new S3 bucket. To create a bucket, you must register with Amazon S3 and have a valid AWS Access Key ID to authenticate requests. Anonymous requests are never allowed to create buckets. By creating the bucket, you become the bucket owner. Not every string is an acceptable bucket name. For information about bucket naming restrictions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html">Bucket naming rules</a>. If you want to create an Amazon S3 on Outposts bucket, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateBucket.html">Create Bucket</a>.  By default, the bucket is created in the US East (N. Virginia) Region. You can optionally specify a Region in the request body. You might choose a Region to optimize latency, minimize costs, or address regulatory requirements. For example, if you reside in Europe, you will probably find it advantageous to create buckets in the Europe (Ireland) Region. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html#access-bucket-intro">Accessing a bucket</a>. <note> If you send your create bucket request to the <code>s3.amazonaws.com</code> endpoint, the request goes to the us-east-1 Region. Accordingly, the signature calculations in Signature Version 4 must use us-east-1 as the Region, even if the location constraint in the request specifies another Region where the bucket is to be created. If you create a bucket in a Region other than US East (N. Virginia), your application must be able to handle 307 redirect. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/VirtualHosting.html">Virtual hosting of buckets</a>. </note> When creating a bucket using this operation, you can optionally specify the accounts or groups that should be granted specific permissions on the bucket. There are two ways to grant the appropriate permissions using the request headers. <ul> <li> Specify a canned ACL using the <code>x-amz-acl</code> request header. Amazon S3 supports a set of predefined ACLs, known as <i>canned ACLs</i>. Each canned ACL has a predefined set of grantees and permissions. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL">Canned ACL</a>. </li> <li> Specify access permissions explicitly using the <code>x-amz-grant-read</code>, <code>x-amz-grant-write</code>, <code>x-amz-grant-read-acp</code>, <code>x-amz-grant-write-acp</code>, and <code>x-amz-grant-full-control</code> headers. These headers map to the set of permissions Amazon S3 supports in an ACL. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html">Access control list (ACL) overview</a>. You specify each grantee as a type=value pair, where the type is one of the following: <ul> <li>  <code>id</code> – if the value specified is the canonical user ID of an AWS account </li> <li>  <code>uri</code> – if you are granting permissions to a predefined group </li> <li>  <code>emailAddress</code> – if the value specified is the email address of an AWS account <note> Using email addresses to specify a grantee is only supported in the following AWS Regions:  <ul> <li> US East (N. Virginia) </li> <li> US West (N. California) </li> <li>  US West (Oregon) </li> <li>  Asia Pacific (Singapore) </li> <li> Asia Pacific (Sydney) </li> <li> Asia Pacific (Tokyo) </li> <li> Europe (Ireland) </li> <li> South America (São Paulo) </li> </ul> For a list of all the Amazon S3 supported Regions and endpoints, see <a href="https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Regions and Endpoints</a> in the AWS General Reference. </note> </li> </ul> For example, the following <code>x-amz-grant-read</code> header grants the AWS accounts identified by account IDs permissions to read object data and its metadata:  <code>x-amz-grant-read: id="11112222333", id="444455556666" </code>  </li> </ul> <note> You can use either a canned ACL or specify access permissions explicitly. You cannot do both. </note> The following operations are related to <code>CreateBucket</code>: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html">PutObject</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html">DeleteBucket</a>  </li> </ul>

        :param self:
        :param ObjectLockEnabledForBucket:  Specifies whether you want S3 Object Lock to be enabled for the new bucket.<br/>GrantWriteACP:  Allows grantee to write the ACL for the applicable bucket.<br/>GrantWrite:  Allows grantee to create new objects in the bucket. For the bucket and object owners of existing objects, also allows deletions and overwrites of those objects.<br/>GrantReadACP:  Allows grantee to read the bucket ACL.<br/>GrantRead:  Allows grantee to list the objects in the bucket.<br/>GrantFullControl:  Allows grantee the read, write, read ACP, and write ACP permissions on the bucket.<br/>CreateBucketConfiguration:  The configuration information for the bucket.:<br/>Bucket:  The name of the bucket to create.<br/>ACL:  The canned ACL to apply to the bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LocationConstraint</i> Specifies the Region where the bucket will be created. If you don't specify a Region, the bucket is created in the US East (N. Virginia) Region (us-east-1).<br/>
        :return: Location:  Specifies the Region where the bucket will be created. If you are creating a bucket on the US East (N. Virginia) Region (us-east-1), you do not need to specify the location.<br/>        """
        pass

    def create_multipart_upload(self, Key: str, Bucket: str, ACL: str=None, CacheControl: str=None, ContentDisposition: str=None, ContentEncoding: str=None, ContentLanguage: str=None, ContentType: str=None, Expires: Expires=None, GrantFullControl: str=None, GrantRead: str=None, GrantReadACP: str=None, GrantWriteACP: str=None, Metadata: Metadata=None, ServerSideEncryption: str=None, StorageClass: str=None, WebsiteRedirectLocation: str=None, SSECustomerAlgorithm: str=None, SSECustomerKey: str=None, SSECustomerKeyMD5: str=None, SSEKMSKeyId: str=None, SSEKMSEncryptionContext: str=None, BucketKeyEnabled: BucketKeyEnabled=None, RequestPayer: str=None, Tagging: str=None, ObjectLockMode: str=None, ObjectLockRetainUntilDate: ObjectLockRetainUntilDate=None, ObjectLockLegalHoldStatus: str=None, ExpectedBucketOwner: str=None) -> CreateMultipartUploadOutput:
        r"""This action initiates a multipart upload and returns an upload ID. This upload ID is used to associate all of the parts in the specific multipart upload. You specify this upload ID in each of your subsequent upload part requests (see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a>). You also include this upload ID in the final request to either complete or abort the multipart upload request. For more information about multipart uploads, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html">Multipart Upload Overview</a>. If you have configured a lifecycle rule to abort incomplete multipart uploads, the upload must complete within the number of days specified in the bucket lifecycle configuration. Otherwise, the incomplete multipart upload becomes eligible for an abort action and Amazon S3 aborts the multipart upload. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config">Aborting Incomplete Multipart Uploads Using a Bucket Lifecycle Policy</a>. For information about the permissions required to use the multipart upload API, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html">Multipart Upload and Permissions</a>. For request signing, multipart upload is just a series of regular requests. You initiate a multipart upload, send one or more requests to upload parts, and then complete the multipart upload process. You sign each request individually. There is nothing special about signing multipart upload requests. For more information about signing, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html">Authenticating Requests (AWS Signature Version 4)</a>. <note>  After you initiate a multipart upload and upload one or more parts, to stop being charged for storing the uploaded parts, you must either complete or abort the multipart upload. Amazon S3 frees up the space used to store the parts and stop charging you for storing them only after you either complete or abort a multipart upload.  </note> You can optionally request server-side encryption. For server-side encryption, Amazon S3 encrypts your data as it writes it to disks in its data centers and decrypts it when you access it. You can provide your own encryption key, or use AWS Key Management Service (AWS KMS) customer master keys (CMKs) or Amazon S3-managed encryption keys. If you choose to provide your own encryption key, the request headers you provide in <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a> and <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html">UploadPartCopy</a> requests must match the headers you used in the request to initiate the upload by using <code>CreateMultipartUpload</code>.  To perform a multipart upload with encryption using an AWS KMS CMK, the requester must have permission to the <code>kms:Decrypt</code> and <code>kms:GenerateDataKey*</code> actions on the key. These permissions are required because Amazon S3 must decrypt and read data from the encrypted file parts before it completes the multipart upload. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html#mpuAndPermissions">Multipart upload API and permissions</a> in the <i>Amazon S3 User Guide</i>. If your AWS Identity and Access Management (IAM) user or role is in the same AWS account as the AWS KMS CMK, then you must have these permissions on the key policy. If your IAM user or role belongs to a different account than the key, then you must have the permissions on both the key policy and your IAM user or role.  For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html">Protecting Data Using Server-Side Encryption</a>. <dl> <dt>Access Permissions</dt> <dd> When copying an object, you can optionally specify the accounts or groups that should be granted specific permissions on the new object. There are two ways to grant the permissions using the request headers: <ul> <li> Specify a canned ACL with the <code>x-amz-acl</code> request header. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL">Canned ACL</a>. </li> <li> Specify access permissions explicitly with the <code>x-amz-grant-read</code>, <code>x-amz-grant-read-acp</code>, <code>x-amz-grant-write-acp</code>, and <code>x-amz-grant-full-control</code> headers. These parameters map to the set of permissions that Amazon S3 supports in an ACL. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html">Access Control List (ACL) Overview</a>. </li> </ul> You can use either a canned ACL or specify access permissions explicitly. You cannot do both. </dd> <dt>Server-Side- Encryption-Specific Request Headers</dt> <dd> You can optionally tell Amazon S3 to encrypt data at rest using server-side encryption. Server-side encryption is for data encryption at rest. Amazon S3 encrypts your data as it writes it to disks in its data centers and decrypts it when you access it. The option you use depends on whether you want to use AWS managed encryption keys or provide your own encryption key.  <ul> <li> Use encryption keys managed by Amazon S3 or customer master keys (CMKs) stored in AWS Key Management Service (AWS KMS) – If you want AWS to manage the keys used to encrypt data, specify the following headers in the request. <ul> <li> x-amz-server-side-encryption </li> <li> x-amz-server-side-encryption-aws-kms-key-id </li> <li> x-amz-server-side-encryption-context </li> </ul> <note> If you specify <code>x-amz-server-side-encryption:aws:kms</code>, but don't provide <code>x-amz-server-side-encryption-aws-kms-key-id</code>, Amazon S3 uses the AWS managed CMK in AWS KMS to protect the data. </note> <important> All GET and PUT requests for an object protected by AWS KMS fail if you don't make them with SSL or by using SigV4. </important> For more information about server-side encryption with CMKs stored in AWS KMS (SSE-KMS), see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html">Protecting Data Using Server-Side Encryption with CMKs stored in AWS KMS</a>. </li> <li> Use customer-provided encryption keys – If you want to manage your own encryption keys, provide all the following headers in the request. <ul> <li> x-amz-server-side-encryption-customer-algorithm </li> <li> x-amz-server-side-encryption-customer-key </li> <li> x-amz-server-side-encryption-customer-key-MD5 </li> </ul> For more information about server-side encryption with CMKs stored in AWS KMS (SSE-KMS), see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html">Protecting Data Using Server-Side Encryption with CMKs stored in AWS KMS</a>. </li> </ul> </dd> <dt>Access-Control-List (ACL)-Specific Request Headers</dt> <dd> You also can use the following access control–related headers with this operation. By default, all objects are private. Only the owner has full access control. When adding a new object, you can grant permissions to individual AWS accounts or to predefined groups defined by Amazon S3. These permissions are then added to the access control list (ACL) on the object. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html">Using ACLs</a>. With this operation, you can grant access permissions using one of the following two methods: <ul> <li> Specify a canned ACL (<code>x-amz-acl</code>) — Amazon S3 supports a set of predefined ACLs, known as <i>canned ACLs</i>. Each canned ACL has a predefined set of grantees and permissions. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL">Canned ACL</a>. </li> <li> Specify access permissions explicitly — To explicitly grant access permissions to specific AWS accounts or groups, use the following headers. Each header maps to specific permissions that Amazon S3 supports in an ACL. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html">Access Control List (ACL) Overview</a>. In the header, you specify a list of grantees who get the specific permission. To grant permissions explicitly, use: <ul> <li> x-amz-grant-read </li> <li> x-amz-grant-write </li> <li> x-amz-grant-read-acp </li> <li> x-amz-grant-write-acp </li> <li> x-amz-grant-full-control </li> </ul> You specify each grantee as a type=value pair, where the type is one of the following: <ul> <li>  <code>id</code> – if the value specified is the canonical user ID of an AWS account </li> <li>  <code>uri</code> – if you are granting permissions to a predefined group </li> <li>  <code>emailAddress</code> – if the value specified is the email address of an AWS account <note> Using email addresses to specify a grantee is only supported in the following AWS Regions:  <ul> <li> US East (N. Virginia) </li> <li> US West (N. California) </li> <li>  US West (Oregon) </li> <li>  Asia Pacific (Singapore) </li> <li> Asia Pacific (Sydney) </li> <li> Asia Pacific (Tokyo) </li> <li> Europe (Ireland) </li> <li> South America (São Paulo) </li> </ul> For a list of all the Amazon S3 supported Regions and endpoints, see <a href="https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Regions and Endpoints</a> in the AWS General Reference. </note> </li> </ul> For example, the following <code>x-amz-grant-read</code> header grants the AWS accounts identified by account IDs permissions to read object data and its metadata:  <code>x-amz-grant-read: id="11112222333", id="444455556666" </code>  </li> </ul> </dd> </dl> The following operations are related to <code>CreateMultipartUpload</code>: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html">CompleteMultipartUpload</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html">AbortMultipartUpload</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html">ListParts</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html">ListMultipartUploads</a>  </li> </ul>

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>ObjectLockLegalHoldStatus:  Specifies whether you want to apply a Legal Hold to the uploaded object.<br/>ObjectLockRetainUntilDate:  Specifies the date and time when you want the Object Lock to expire.<br/>ObjectLockMode:  Specifies the Object Lock mode that you want to apply to the uploaded object.<br/>Tagging:  The tag-set for the object. The tag-set must be encoded as URL Query parameters.<br/>RequestPayer:  Confirms that the requester knows that they will be charged for the request. Bucket owners need not specify this parameter in their requests. For information about downloading objects from requester pays buckets, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html">Downloading Objects in Requestor Pays Buckets</a> in the <i>Amazon S3 User Guide</i>.<br/>BucketKeyEnabled:  Specifies whether Amazon S3 should use an S3 Bucket Key for object encryption with server-side encryption using AWS KMS (SSE-KMS). Setting this header to <code>true</code> causes Amazon S3 to use an S3 Bucket Key for object encryption with SSE-KMS. Specifying this header with an object action doesn’t affect bucket-level settings for S3 Bucket Key.<br/>SSEKMSEncryptionContext:  Specifies the AWS KMS Encryption Context to use for object encryption. The value of this header is a base64-encoded UTF-8 string holding JSON with the encryption context key-value pairs.<br/>SSEKMSKeyId:  Specifies the ID of the symmetric customer managed AWS KMS CMK to use for object encryption. All GET and PUT requests for an object protected by AWS KMS will fail if not made via SSL or using SigV4. For information about configuring using any of the officially supported AWS SDKs and AWS CLI, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version">Specifying the Signature Version in Request Authentication</a> in the <i>Amazon S3 User Guide</i>.<br/>SSECustomerKeyMD5:  Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure that the encryption key was transmitted without error.<br/>SSECustomerKey:  Specifies the customer-provided encryption key for Amazon S3 to use in encrypting data. This value is used to store the object and then it is discarded; Amazon S3 does not store the encryption key. The key must be appropriate for use with the algorithm specified in the <code>x-amz-server-side-encryption-customer-algorithm</code> header.<br/>SSECustomerAlgorithm:  Specifies the algorithm to use to when encrypting the object (for example, AES256).<br/>WebsiteRedirectLocation:  If the bucket is configured as a website, redirects requests for this object to another object in the same bucket or to an external URL. Amazon S3 stores the value of this header in the object metadata.<br/>StorageClass:  By default, Amazon S3 uses the STANDARD Storage Class to store newly created objects. The STANDARD storage class provides high durability and high availability. Depending on performance needs, you can specify a different Storage Class. Amazon S3 on Outposts only uses the OUTPOSTS Storage Class. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html">Storage Classes</a> in the <i>Amazon S3 User Guide</i>.<br/>ServerSideEncryption:  The server-side encryption algorithm used when storing this object in Amazon S3 (for example, AES256, aws:kms).<br/>Metadata:  A map of metadata to store with the object in S3.<br/>Key:  Object key for which the multipart upload is to be initiated.<br/>GrantWriteACP:  Allows grantee to write the ACL for the applicable object. This action is not supported by Amazon S3 on Outposts.<br/>GrantReadACP:  Allows grantee to read the object ACL. This action is not supported by Amazon S3 on Outposts.<br/>GrantRead:  Allows grantee to read the object data and its metadata. This action is not supported by Amazon S3 on Outposts.<br/>GrantFullControl:  Gives the grantee READ, READ_ACP, and WRITE_ACP permissions on the object. This action is not supported by Amazon S3 on Outposts.<br/>Expires:  The date and time at which the object is no longer cacheable.<br/>ContentType:  A standard MIME type describing the format of the object data.<br/>ContentLanguage:  The language the content is in.<br/>ContentEncoding:  Specifies what content encodings have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field.<br/>ContentDisposition:  Specifies presentational information for the object.<br/>CacheControl:  Specifies caching behavior along the request/reply chain.<br/>Bucket:  The name of the bucket to which to initiate the upload When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using access points</a> in the <i>Amazon S3 User Guide</i>. When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com. When using this action using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html">Using S3 on Outposts</a> in the <i>Amazon S3 User Guide</i>.<br/>ACL:  The canned ACL to apply to the object. This action is not supported by Amazon S3 on Outposts.<br/>
        :return: RequestCharged:  If present, indicates that the requester was successfully charged for the request.<br/>BucketKeyEnabled:  Indicates whether the multipart upload uses an S3 Bucket Key for server-side encryption with AWS KMS (SSE-KMS).<br/>SSEKMSEncryptionContext:  If present, specifies the AWS KMS Encryption Context to use for object encryption. The value of this header is a base64-encoded UTF-8 string holding JSON with the encryption context key-value pairs.<br/>SSEKMSKeyId:  If present, specifies the ID of the AWS Key Management Service (AWS KMS) symmetric customer managed customer master key (CMK) that was used for the object.<br/>SSECustomerKeyMD5:  If server-side encryption with a customer-provided encryption key was requested, the response will include this header to provide round-trip message integrity verification of the customer-provided encryption key.<br/>SSECustomerAlgorithm:  If server-side encryption with a customer-provided encryption key was requested, the response will include this header confirming the encryption algorithm used.<br/>ServerSideEncryption:  The server-side encryption algorithm used when storing this object in Amazon S3 (for example, AES256, aws:kms).<br/>UploadId:  ID for the initiated multipart upload.<br/>Key:  Object key for which the multipart upload was initiated.<br/>Bucket:  The name of the bucket to which the multipart upload was initiated.  When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using access points</a> in the <i>Amazon S3 User Guide</i>. When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com. When using this action using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html">Using S3 on Outposts</a> in the <i>Amazon S3 User Guide</i>.<br/>AbortRuleId:  This header is returned along with the <code>x-amz-abort-date</code> header. It identifies the applicable lifecycle configuration rule that defines the action to abort incomplete multipart uploads.<br/>AbortDate:  If the bucket has a lifecycle rule configured with an action to abort incomplete multipart uploads and the prefix in the lifecycle rule matches the object name in the request, the response includes this header. The header indicates when the initiated multipart upload becomes eligible for an abort operation. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config"> Aborting Incomplete Multipart Uploads Using a Bucket Lifecycle Policy</a>. The response also includes the <code>x-amz-abort-rule-id</code> header that provides the ID of the lifecycle configuration rule that defines this action.<br/>        """
        pass

    def delete_bucket(self, Bucket: str, ExpectedBucketOwner: str=None):
        r"""Deletes the S3 bucket. All objects (including all object versions and delete markers) in the bucket must be deleted before the bucket itself can be deleted. <p class="title"> <b>Related Resources</b>  <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html">DeleteObject</a>  </li> </ul>

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>Bucket:  Specifies the bucket being deleted.<br/>
        :return:         """
        pass

    def delete_bucket_analytics_configuration(self, Id: str, Bucket: str, ExpectedBucketOwner: str=None):
        r"""Deletes an analytics configuration for the bucket (specified by the analytics configuration ID). To use this operation, you must have permissions to perform the <code>s3:PutAnalyticsConfiguration</code> action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions Related to Bucket Subresource Operations</a> and <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing Access Permissions to Your Amazon S3 Resources</a>. For information about the Amazon S3 analytics feature, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/analytics-storage-class.html">Amazon S3 Analytics – Storage Class Analysis</a>.  The following operations are related to <code>DeleteBucketAnalyticsConfiguration</code>: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAnalyticsConfiguration.html">GetBucketAnalyticsConfiguration</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketAnalyticsConfigurations.html">ListBucketAnalyticsConfigurations</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAnalyticsConfiguration.html">PutBucketAnalyticsConfiguration</a>  </li> </ul>

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>Id:  The ID that identifies the analytics configuration.<br/>Bucket:  The name of the bucket from which an analytics configuration is deleted.<br/>
        :return:         """
        pass

    def delete_bucket_cors(self, Bucket: str, ExpectedBucketOwner: str=None):
        r"""Deletes the <code>cors</code> configuration information set for the bucket. To use this operation, you must have permission to perform the <code>s3:PutBucketCORS</code> action. The bucket owner has this permission by default and can grant this permission to others.  For information about <code>cors</code>, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html">Enabling Cross-Origin Resource Sharing</a> in the <i>Amazon S3 User Guide</i>. <p class="title"> <b>Related Resources:</b>  <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketCors.html">PutBucketCors</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/RESTOPTIONSobject.html">RESTOPTIONSobject</a>  </li> </ul>

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>Bucket:  Specifies the bucket whose <code>cors</code> configuration is being deleted.<br/>
        :return:         """
        pass

    def delete_bucket_encryption(self, Bucket: str, ExpectedBucketOwner: str=None):
        r"""This implementation of the DELETE action removes default encryption from the bucket. For information about the Amazon S3 default encryption feature, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html">Amazon S3 Default Bucket Encryption</a> in the <i>Amazon S3 User Guide</i>. To use this operation, you must have permissions to perform the <code>s3:PutEncryptionConfiguration</code> action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions Related to Bucket Subresource Operations</a> and <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing Access Permissions to your Amazon S3 Resources</a> in the <i>Amazon S3 User Guide</i>. <p class="title"> <b>Related Resources</b>  <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html">PutBucketEncryption</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketEncryption.html">GetBucketEncryption</a>  </li> </ul>

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>Bucket:  The name of the bucket containing the server-side encryption configuration to delete.<br/>
        :return:         """
        pass

    def delete_bucket_intelligent_tiering_configuration(self, Id: str, Bucket: str):
        r"""Deletes the S3 Intelligent-Tiering configuration from the specified bucket. The S3 Intelligent-Tiering storage class is designed to optimize storage costs by automatically moving data to the most cost-effective storage access tier, without additional operational overhead. S3 Intelligent-Tiering delivers automatic cost savings by moving data between access tiers, when access patterns change. The S3 Intelligent-Tiering storage class is suitable for objects larger than 128 KB that you plan to store for at least 30 days. If the size of an object is less than 128 KB, it is not eligible for auto-tiering. Smaller objects can be stored, but they are always charged at the frequent access tier rates in the S3 Intelligent-Tiering storage class.  If you delete an object before the end of the 30-day minimum storage duration period, you are charged for 30 days. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access">Storage class for automatically optimizing frequently and infrequently accessed objects</a>. Operations related to <code>DeleteBucketIntelligentTieringConfiguration</code> include:  <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketIntelligentTieringConfiguration.html">GetBucketIntelligentTieringConfiguration</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketIntelligentTieringConfiguration.html">PutBucketIntelligentTieringConfiguration</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketIntelligentTieringConfigurations.html">ListBucketIntelligentTieringConfigurations</a>  </li> </ul>

        :param self:
        :param Id:  The ID used to identify the S3 Intelligent-Tiering configuration.<br/>Bucket:  The name of the Amazon S3 bucket whose configuration you want to modify or retrieve.<br/>
        :return:         """
        pass

    def delete_bucket_inventory_configuration(self, Id: str, Bucket: str, ExpectedBucketOwner: str=None):
        r"""Deletes an inventory configuration (identified by the inventory ID) from the bucket. To use this operation, you must have permissions to perform the <code>s3:PutInventoryConfiguration</code> action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions Related to Bucket Subresource Operations</a> and <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing Access Permissions to Your Amazon S3 Resources</a>. For information about the Amazon S3 inventory feature, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-inventory.html">Amazon S3 Inventory</a>. Operations related to <code>DeleteBucketInventoryConfiguration</code> include:  <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketInventoryConfiguration.html">GetBucketInventoryConfiguration</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketInventoryConfiguration.html">PutBucketInventoryConfiguration</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketInventoryConfigurations.html">ListBucketInventoryConfigurations</a>  </li> </ul>

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>Id:  The ID used to identify the inventory configuration.<br/>Bucket:  The name of the bucket containing the inventory configuration to delete.<br/>
        :return:         """
        pass

    def delete_bucket_lifecycle(self, Bucket: str, ExpectedBucketOwner: str=None):
        r"""Deletes the lifecycle configuration from the specified bucket. Amazon S3 removes all the lifecycle configuration rules in the lifecycle subresource associated with the bucket. Your objects never expire, and Amazon S3 no longer automatically deletes any objects on the basis of rules contained in the deleted lifecycle configuration. To use this operation, you must have permission to perform the <code>s3:PutLifecycleConfiguration</code> action. By default, the bucket owner has this permission and the bucket owner can grant this permission to others. There is usually some time lag before lifecycle configuration deletion is fully propagated to all the Amazon S3 systems. For more information about the object expiration, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#intro-lifecycle-rules-actions">Elements to Describe Lifecycle Actions</a>. Related actions include: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html">PutBucketLifecycleConfiguration</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html">GetBucketLifecycleConfiguration</a>  </li> </ul>

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>Bucket:  The bucket name of the lifecycle to delete.<br/>
        :return:         """
        pass

    def delete_bucket_metrics_configuration(self, Id: str, Bucket: str, ExpectedBucketOwner: str=None):
        r"""Deletes a metrics configuration for the Amazon CloudWatch request metrics (specified by the metrics configuration ID) from the bucket. Note that this doesn't include the daily storage metrics.  To use this operation, you must have permissions to perform the <code>s3:PutMetricsConfiguration</code> action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions Related to Bucket Subresource Operations</a> and <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing Access Permissions to Your Amazon S3 Resources</a>. For information about CloudWatch request metrics for Amazon S3, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html">Monitoring Metrics with Amazon CloudWatch</a>.  The following operations are related to <code>DeleteBucketMetricsConfiguration</code>: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetricsConfiguration.html">GetBucketMetricsConfiguration</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketMetricsConfiguration.html">PutBucketMetricsConfiguration</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketMetricsConfigurations.html">ListBucketMetricsConfigurations</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html">Monitoring Metrics with Amazon CloudWatch</a>  </li> </ul>

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>Id:  The ID used to identify the metrics configuration.<br/>Bucket:  The name of the bucket containing the metrics configuration to delete.<br/>
        :return:         """
        pass

    def delete_bucket_ownership_controls(self, Bucket: str, ExpectedBucketOwner: str=None):
        r"""Removes <code>OwnershipControls</code> for an Amazon S3 bucket. To use this operation, you must have the <code>s3:PutBucketOwnershipControls</code> permission. For more information about Amazon S3 permissions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html">Specifying Permissions in a Policy</a>. For information about Amazon S3 Object Ownership, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/about-object-ownership.html">Using Object Ownership</a>.  The following operations are related to <code>DeleteBucketOwnershipControls</code>: <ul> <li>  <a>GetBucketOwnershipControls</a>  </li> <li>  <a>PutBucketOwnershipControls</a>  </li> </ul>

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>Bucket:  The Amazon S3 bucket whose <code>OwnershipControls</code> you want to delete. <br/>
        :return:         """
        pass

    def delete_bucket_policy(self, Bucket: str, ExpectedBucketOwner: str=None):
        r"""This implementation of the DELETE action uses the policy subresource to delete the policy of a specified bucket. If you are using an identity other than the root user of the AWS account that owns the bucket, the calling identity must have the <code>DeleteBucketPolicy</code> permissions on the specified bucket and belong to the bucket owner's account to use this operation.  If you don't have <code>DeleteBucketPolicy</code> permissions, Amazon S3 returns a <code>403 Access Denied</code> error. If you have the correct permissions, but you're not using an identity that belongs to the bucket owner's account, Amazon S3 returns a <code>405 Method Not Allowed</code> error.  <important> As a security precaution, the root user of the AWS account that owns a bucket can always use this operation, even if the policy explicitly denies the root user the ability to perform this action. </important> For more information about bucket policies, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html">Using Bucket Policies and UserPolicies</a>.  The following operations are related to <code>DeleteBucketPolicy</code>  <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html">DeleteObject</a>  </li> </ul>

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>Bucket:  The bucket name.<br/>
        :return:         """
        pass

    def delete_bucket_replication(self, Bucket: str, ExpectedBucketOwner: str=None):
        r""" Deletes the replication configuration from the bucket. To use this operation, you must have permissions to perform the <code>s3:PutReplicationConfiguration</code> action. The bucket owner has these permissions by default and can grant it to others. For more information about permissions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions Related to Bucket Subresource Operations</a> and <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing Access Permissions to Your Amazon S3 Resources</a>.  <note> It can take a while for the deletion of a replication configuration to fully propagate. </note>  For information about replication configuration, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html">Replication</a> in the <i>Amazon S3 User Guide</i>. The following operations are related to <code>DeleteBucketReplication</code>: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketReplication.html">PutBucketReplication</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketReplication.html">GetBucketReplication</a>  </li> </ul>

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>Bucket:   The bucket name. <br/>
        :return:         """
        pass

    def delete_bucket_tagging(self, Bucket: str, ExpectedBucketOwner: str=None):
        r"""Deletes the tags from the bucket. To use this operation, you must have permission to perform the <code>s3:PutBucketTagging</code> action. By default, the bucket owner has this permission and can grant this permission to others.  The following operations are related to <code>DeleteBucketTagging</code>: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketTagging.html">GetBucketTagging</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketTagging.html">PutBucketTagging</a>  </li> </ul>

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>Bucket:  The bucket that has the tag set to be removed.<br/>
        :return:         """
        pass

    def delete_bucket_website(self, Bucket: str, ExpectedBucketOwner: str=None):
        r"""This action removes the website configuration for a bucket. Amazon S3 returns a <code>200 OK</code> response upon successfully deleting a website configuration on the specified bucket. You will get a <code>200 OK</code> response if the website configuration you are trying to delete does not exist on the bucket. Amazon S3 returns a <code>404</code> response if the bucket specified in the request does not exist. This DELETE action requires the <code>S3:DeleteBucketWebsite</code> permission. By default, only the bucket owner can delete the website configuration attached to a bucket. However, bucket owners can grant other users permission to delete the website configuration by writing a bucket policy granting them the <code>S3:DeleteBucketWebsite</code> permission.  For more information about hosting websites, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html">Hosting Websites on Amazon S3</a>.  The following operations are related to <code>DeleteBucketWebsite</code>: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketWebsite.html">GetBucketWebsite</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketWebsite.html">PutBucketWebsite</a>  </li> </ul>

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>Bucket:  The bucket name for which you want to remove the website configuration. <br/>
        :return:         """
        pass

    def delete_object(self, Key: str, Bucket: str, MFA: str=None, VersionId: str=None, RequestPayer: str=None, BypassGovernanceRetention: BypassGovernanceRetention=None, ExpectedBucketOwner: str=None) -> DeleteObjectOutput:
        r"""Removes the null version (if there is one) of an object and inserts a delete marker, which becomes the latest version of the object. If there isn't a null version, Amazon S3 does not remove any objects but will still respond that the command was successful. To remove a specific version, you must be the bucket owner and you must use the version Id subresource. Using this subresource permanently deletes the version. If the object deleted is a delete marker, Amazon S3 sets the response header, <code>x-amz-delete-marker</code>, to true.  If the object you want to delete is in a bucket where the bucket versioning configuration is MFA Delete enabled, you must include the <code>x-amz-mfa</code> request header in the DELETE <code>versionId</code> request. Requests that include <code>x-amz-mfa</code> must use HTTPS.   For more information about MFA Delete, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMFADelete.html">Using MFA Delete</a>. To see sample requests that use versioning, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectDELETE.html#ExampleVersionObjectDelete">Sample Request</a>.  You can delete objects by explicitly calling DELETE Object or configure its lifecycle (<a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycle.html">PutBucketLifecycle</a>) to enable Amazon S3 to remove them for you. If you want to block users or accounts from removing or deleting objects from your bucket, you must deny them the <code>s3:DeleteObject</code>, <code>s3:DeleteObjectVersion</code>, and <code>s3:PutLifeCycleConfiguration</code> actions.  The following action is related to <code>DeleteObject</code>: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html">PutObject</a>  </li> </ul>

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>BypassGovernanceRetention:  Indicates whether S3 Object Lock should bypass Governance-mode restrictions to process this operation.<br/>RequestPayer:  Confirms that the requester knows that they will be charged for the request. Bucket owners need not specify this parameter in their requests. For information about downloading objects from requester pays buckets, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html">Downloading Objects in Requestor Pays Buckets</a> in the <i>Amazon S3 User Guide</i>.<br/>VersionId:  VersionId used to reference a specific version of the object.<br/>MFA:  The concatenation of the authentication device's serial number, a space, and the value that is displayed on your authentication device. Required to permanently delete a versioned object if versioning is configured with MFA delete enabled.<br/>Key:  Key name of the object to delete.<br/>Bucket:  The bucket name of the bucket containing the object.  When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using access points</a> in the <i>Amazon S3 User Guide</i>. When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com. When using this action using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html">Using S3 on Outposts</a> in the <i>Amazon S3 User Guide</i>.<br/>
        :return: RequestCharged:  If present, indicates that the requester was successfully charged for the request.<br/>VersionId:  Returns the version ID of the delete marker created as a result of the DELETE operation.<br/>DeleteMarker:  Specifies whether the versioned object that was permanently deleted was (true) or was not (false) a delete marker.<br/>        """
        pass

    def delete_object_tagging(self, Key: str, Bucket: str, VersionId: str=None, ExpectedBucketOwner: str=None) -> DeleteObjectTaggingOutput:
        r"""Removes the entire tag set from the specified object. For more information about managing object tags, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-tagging.html"> Object Tagging</a>. To use this operation, you must have permission to perform the <code>s3:DeleteObjectTagging</code> action. To delete tags of a specific object version, add the <code>versionId</code> query parameter in the request. You will need permission for the <code>s3:DeleteObjectVersionTagging</code> action. The following operations are related to <code>DeleteBucketMetricsConfiguration</code>: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectTagging.html">PutObjectTagging</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html">GetObjectTagging</a>  </li> </ul>

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>VersionId:  The versionId of the object that the tag-set will be removed from.<br/>Key:  The key that identifies the object in the bucket from which to remove all tags.<br/>Bucket:  The bucket name containing the objects from which to remove the tags.  When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using access points</a> in the <i>Amazon S3 User Guide</i>. When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com. When using this action using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html">Using S3 on Outposts</a> in the <i>Amazon S3 User Guide</i>.<br/>
        :return: VersionId:  The versionId of the object the tag-set was removed from.<br/>        """
        pass

    def delete_objects(self, Delete: Delete, Bucket: str, MFA: str=None, RequestPayer: str=None, BypassGovernanceRetention: BypassGovernanceRetention=None, ExpectedBucketOwner: str=None) -> DeleteObjectsOutput:
        r"""This action enables you to delete multiple objects from a bucket using a single HTTP request. If you know the object keys that you want to delete, then this action provides a suitable alternative to sending individual delete requests, reducing per-request overhead. The request contains a list of up to 1000 keys that you want to delete. In the XML, you provide the object key names, and optionally, version IDs if you want to delete a specific version of the object from a versioning-enabled bucket. For each key, Amazon S3 performs a delete action and returns the result of that delete, success, or failure, in the response. Note that if the object specified in the request is not found, Amazon S3 returns the result as deleted.  The action supports two modes for the response: verbose and quiet. By default, the action uses verbose mode in which the response includes the result of deletion of each key in your request. In quiet mode the response includes only keys where the delete action encountered an error. For a successful deletion, the action does not return any information about the delete in the response body. When performing this action on an MFA Delete enabled bucket, that attempts to delete any versioned objects, you must include an MFA token. If you do not provide one, the entire request will fail, even if there are non-versioned objects you are trying to delete. If you provide an invalid token, whether there are versioned keys in the request or not, the entire Multi-Object Delete request will fail. For information about MFA Delete, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html#MultiFactorAuthenticationDelete"> MFA Delete</a>. Finally, the Content-MD5 header is required for all Multi-Object Delete requests. Amazon S3 uses the header value to ensure that your request body has not been altered in transit. The following operations are related to <code>DeleteObjects</code>: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html">CompleteMultipartUpload</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html">ListParts</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html">AbortMultipartUpload</a>  </li> </ul>

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>BypassGovernanceRetention:  Specifies whether you want to delete this object even if it has a Governance-type Object Lock in place. You must have sufficient permissions to perform this operation.<br/>RequestPayer:  Confirms that the requester knows that they will be charged for the request. Bucket owners need not specify this parameter in their requests. For information about downloading objects from requester pays buckets, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html">Downloading Objects in Requestor Pays Buckets</a> in the <i>Amazon S3 User Guide</i>.<br/>MFA:  The concatenation of the authentication device's serial number, a space, and the value that is displayed on your authentication device. Required to permanently delete a versioned object if versioning is configured with MFA delete enabled.<br/>Delete:  Container for the request.:<br/>Bucket:  The bucket name containing the objects to delete.  When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using access points</a> in the <i>Amazon S3 User Guide</i>. When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com. When using this action using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html">Using S3 on Outposts</a> in the <i>Amazon S3 User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Quiet</i> Element to enable quiet mode for the request. When you add this element, you must set its value to true.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Objects</i> The objects to delete.<br/>
        :return: Errors:  Container for a failed delete action that describes the object that Amazon S3 attempted to delete and the error it encountered.<br/>RequestCharged:  If present, indicates that the requester was successfully charged for the request.<br/>Deleted:  Container element for a successful delete. It identifies the object that was successfully deleted.<br/>        """
        pass

    def delete_public_access_block(self, Bucket: str, ExpectedBucketOwner: str=None):
        r"""Removes the <code>PublicAccessBlock</code> configuration for an Amazon S3 bucket. To use this operation, you must have the <code>s3:PutBucketPublicAccessBlock</code> permission. For more information about permissions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions Related to Bucket Subresource Operations</a> and <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing Access Permissions to Your Amazon S3 Resources</a>. The following operations are related to <code>DeletePublicAccessBlock</code>: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html">Using Amazon S3 Block Public Access</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetPublicAccessBlock.html">GetPublicAccessBlock</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutPublicAccessBlock.html">PutPublicAccessBlock</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketPolicyStatus.html">GetBucketPolicyStatus</a>  </li> </ul>

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>Bucket:  The Amazon S3 bucket whose <code>PublicAccessBlock</code> configuration you want to delete. <br/>
        :return:         """
        pass

    def get_bucket_accelerate_configuration(self, Bucket: str, ExpectedBucketOwner: str=None) -> GetBucketAccelerateConfigurationOutput:
        r"""This implementation of the GET action uses the <code>accelerate</code> subresource to return the Transfer Acceleration state of a bucket, which is either <code>Enabled</code> or <code>Suspended</code>. Amazon S3 Transfer Acceleration is a bucket-level feature that enables you to perform faster data transfers to and from Amazon S3. To use this operation, you must have permission to perform the <code>s3:GetAccelerateConfiguration</code> action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions Related to Bucket Subresource Operations</a> and <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing Access Permissions to your Amazon S3 Resources</a> in the <i>Amazon S3 User Guide</i>. You set the Transfer Acceleration state of an existing bucket to <code>Enabled</code> or <code>Suspended</code> by using the <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAccelerateConfiguration.html">PutBucketAccelerateConfiguration</a> operation.  A GET <code>accelerate</code> request does not return a state value for a bucket that has no transfer acceleration state. A bucket has no Transfer Acceleration state if a state has never been set on the bucket.  For more information about transfer acceleration, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html">Transfer Acceleration</a> in the Amazon S3 User Guide. <p class="title"> <b>Related Resources</b>  <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAccelerateConfiguration.html">PutBucketAccelerateConfiguration</a>  </li> </ul>

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>Bucket:  The name of the bucket for which the accelerate configuration is retrieved.<br/>
        :return: Status:  The accelerate configuration of the bucket.<br/>        """
        pass

    def get_bucket_acl(self, Bucket: str, ExpectedBucketOwner: str=None) -> GetBucketAclOutput:
        r"""This implementation of the <code>GET</code> action uses the <code>acl</code> subresource to return the access control list (ACL) of a bucket. To use <code>GET</code> to return the ACL of the bucket, you must have <code>READ_ACP</code> access to the bucket. If <code>READ_ACP</code> permission is granted to the anonymous user, you can return the ACL of the bucket without using an authorization header. <p class="title"> <b>Related Resources</b>  <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjects.html">ListObjects</a>  </li> </ul>

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>Bucket:  Specifies the S3 bucket whose ACL is being requested.<br/>
        :return: Grants:  A list of grants.<br/>Owner:  Container for the bucket owner's display name and ID.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ID</i> Container for the ID of the owner.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DisplayName</i> Container for the display name of the owner.<br/>        """
        pass

    def get_bucket_analytics_configuration(self, Id: str, Bucket: str, ExpectedBucketOwner: str=None) -> GetBucketAnalyticsConfigurationOutput:
        r"""This implementation of the GET action returns an analytics configuration (identified by the analytics configuration ID) from the bucket. To use this operation, you must have permissions to perform the <code>s3:GetAnalyticsConfiguration</code> action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources"> Permissions Related to Bucket Subresource Operations</a> and <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing Access Permissions to Your Amazon S3 Resources</a> in the <i>Amazon S3 User Guide</i>.  For information about Amazon S3 analytics feature, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/analytics-storage-class.html">Amazon S3 Analytics – Storage Class Analysis</a> in the <i>Amazon S3 User Guide</i>. <p class="title"> <b>Related Resources</b>  <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketAnalyticsConfiguration.html">DeleteBucketAnalyticsConfiguration</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketAnalyticsConfigurations.html">ListBucketAnalyticsConfigurations</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAnalyticsConfiguration.html">PutBucketAnalyticsConfiguration</a>  </li> </ul>

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>Id:  The ID that identifies the analytics configuration.<br/>Bucket:  The name of the bucket from which an analytics configuration is retrieved.<br/>
        :return: AnalyticsConfiguration:  The configuration and any analyses for the analytics filter.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageClassAnalysis</i>  Contains data related to access patterns to be collected and made available to analyze the tradeoffs between different storage classes. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StorageClassAnalysis</b>:  Contains data related to access patterns to be collected and made available to analyze the tradeoffs between different storage classes. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Filter</i> The filter used to describe a set of objects for analyses. A filter must have exactly one prefix, one tag, or one conjunction (AnalyticsAndOperator). If no filter is provided, all objects will be considered in any analysis.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Filter</b>: The filter used to describe a set of objects for analyses. A filter must have exactly one prefix, one tag, or one conjunction (AnalyticsAndOperator). If no filter is provided, all objects will be considered in any analysis.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID that identifies the analytics configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Prefix</i> The prefix to use when evaluating an analytics filter.<br/>The tag to use when evaluating an analytics filter.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Tag</b>: The tag to use when evaluating an analytics filter.Specifies how data related to the storage class analysis for an Amazon S3 bucket should be exported.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DataExport</b>: Specifies how data related to the storage class analysis for an Amazon S3 bucket should be exported.        """
        pass

    def get_bucket_cors(self, Bucket: str, ExpectedBucketOwner: str=None) -> GetBucketCorsOutput:
        r"""Returns the cors configuration information set for the bucket.  To use this operation, you must have permission to perform the s3:GetBucketCORS action. By default, the bucket owner has this permission and can grant it to others.  For more information about cors, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html"> Enabling Cross-Origin Resource Sharing</a>. The following operations are related to <code>GetBucketCors</code>: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketCors.html">PutBucketCors</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketCors.html">DeleteBucketCors</a>  </li> </ul>

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>Bucket:  The bucket name for which to get the cors configuration.<br/>
        :return: CORSRules:  A set of origins and methods (cross-origin access that you want to allow). You can add up to 100 rules to the configuration.<br/>        """
        pass

    def get_bucket_encryption(self, Bucket: str, ExpectedBucketOwner: str=None) -> GetBucketEncryptionOutput:
        r"""Returns the default encryption configuration for an Amazon S3 bucket. If the bucket does not have a default encryption configuration, GetBucketEncryption returns <code>ServerSideEncryptionConfigurationNotFoundError</code>.  For information about the Amazon S3 default encryption feature, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html">Amazon S3 Default Bucket Encryption</a>.  To use this operation, you must have permission to perform the <code>s3:GetEncryptionConfiguration</code> action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions Related to Bucket Subresource Operations</a> and <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing Access Permissions to Your Amazon S3 Resources</a>. The following operations are related to <code>GetBucketEncryption</code>: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html">PutBucketEncryption</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketEncryption.html">DeleteBucketEncryption</a>  </li> </ul>

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>Bucket:  The name of the bucket from which the server-side encryption configuration is retrieved.<br/>
        :return: ServerSideEncryptionConfiguration:  Specifies the default server-side-encryption configuration.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Rules</i> Container for information about a particular server-side encryption configuration rule.<br/>        """
        pass

    def get_bucket_intelligent_tiering_configuration(self, Id: str, Bucket: str) -> GetBucketIntelligentTieringConfigurationOutput:
        r"""Gets the S3 Intelligent-Tiering configuration from the specified bucket. The S3 Intelligent-Tiering storage class is designed to optimize storage costs by automatically moving data to the most cost-effective storage access tier, without additional operational overhead. S3 Intelligent-Tiering delivers automatic cost savings by moving data between access tiers, when access patterns change. The S3 Intelligent-Tiering storage class is suitable for objects larger than 128 KB that you plan to store for at least 30 days. If the size of an object is less than 128 KB, it is not eligible for auto-tiering. Smaller objects can be stored, but they are always charged at the frequent access tier rates in the S3 Intelligent-Tiering storage class.  If you delete an object before the end of the 30-day minimum storage duration period, you are charged for 30 days. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access">Storage class for automatically optimizing frequently and infrequently accessed objects</a>. Operations related to <code>GetBucketIntelligentTieringConfiguration</code> include:  <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketIntelligentTieringConfiguration.html">DeleteBucketIntelligentTieringConfiguration</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketIntelligentTieringConfiguration.html">PutBucketIntelligentTieringConfiguration</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketIntelligentTieringConfigurations.html">ListBucketIntelligentTieringConfigurations</a>  </li> </ul>

        :param self:
        :param Id:  The ID used to identify the S3 Intelligent-Tiering configuration.<br/>Bucket:  The name of the Amazon S3 bucket whose configuration you want to modify or retrieve.<br/>
        :return: IntelligentTieringConfiguration:  Container for S3 Intelligent-Tiering configuration.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tierings</i> Specifies the S3 Intelligent-Tiering storage class tier of the configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Specifies the status of the configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Filter</i> Specifies a bucket filter. The configuration only includes objects that meet the filter's criteria.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Filter</b>: Specifies a bucket filter. The configuration only includes objects that meet the filter's criteria.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID used to identify the S3 Intelligent-Tiering configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Prefix</i> An object key name prefix that identifies the subset of objects to which the rule applies. <important> Replacement must be made for object keys containing special characters (such as carriage returns) when using XML requests. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints"> XML related object key constraints</a>. </important><br/>A container of a key value name pair.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Tag</b>: A container of a key value name pair.        """
        pass

    def get_bucket_inventory_configuration(self, Id: str, Bucket: str, ExpectedBucketOwner: str=None) -> GetBucketInventoryConfigurationOutput:
        r"""Returns an inventory configuration (identified by the inventory configuration ID) from the bucket. To use this operation, you must have permissions to perform the <code>s3:GetInventoryConfiguration</code> action. The bucket owner has this permission by default and can grant this permission to others. For more information about permissions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions Related to Bucket Subresource Operations</a> and <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing Access Permissions to Your Amazon S3 Resources</a>. For information about the Amazon S3 inventory feature, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-inventory.html">Amazon S3 Inventory</a>. The following operations are related to <code>GetBucketInventoryConfiguration</code>: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketInventoryConfiguration.html">DeleteBucketInventoryConfiguration</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketInventoryConfigurations.html">ListBucketInventoryConfigurations</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketInventoryConfiguration.html">PutBucketInventoryConfiguration</a>  </li> </ul>

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>Id:  The ID used to identify the inventory configuration.<br/>Bucket:  The name of the bucket containing the inventory configuration to retrieve.<br/>
        :return: InventoryConfiguration:  Specifies the inventory configuration.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Schedule</i> Specifies the schedule for generating inventory results.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Schedule</b>: Specifies the schedule for generating inventory results.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OptionalFields</i> Contains the optional fields that are included in the inventory results.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludedObjectVersions</i> Object versions to include in the inventory list. If set to <code>All</code>, the list includes all the object versions, which adds the version-related fields <code>VersionId</code>, <code>IsLatest</code>, and <code>DeleteMarker</code> to the list. If set to <code>Current</code>, the list does not contain these version-related fields.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID used to identify the inventory configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Filter</i> Specifies an inventory filter. The inventory only includes objects that meet the filter's criteria.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Filter</b>: Specifies an inventory filter. The inventory only includes objects that meet the filter's criteria.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsEnabled</i> Specifies whether the inventory is enabled or disabled. If set to <code>True</code>, an inventory list is generated. If set to <code>False</code>, no inventory list is generated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Destination</i> Contains information about where to publish the inventory results.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Destination</b>: Contains information about where to publish the inventory results.<br/>Contains the bucket name, file format, bucket owner (optional), and prefix (optional) where inventory results are published.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3BucketDestination</b>: Contains the bucket name, file format, bucket owner (optional), and prefix (optional) where inventory results are published.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Prefix</i> The prefix that an object must have to be included in the inventory results.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Frequency</i> Specifies how frequently inventory results are produced.<br/>        """
        pass

    def get_bucket_lifecycle(self, Bucket: str, ExpectedBucketOwner: str=None) -> GetBucketLifecycleOutput:
        r"""<important> For an updated version of this API, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html">GetBucketLifecycleConfiguration</a>. If you configured a bucket lifecycle using the <code>filter</code> element, you should see the updated version of this topic. This topic is provided for backward compatibility. </important> Returns the lifecycle configuration information set on the bucket. For information about lifecycle configuration, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html">Object Lifecycle Management</a>.  To use this operation, you must have permission to perform the <code>s3:GetLifecycleConfiguration</code> action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions Related to Bucket Subresource Operations</a> and <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing Access Permissions to Your Amazon S3 Resources</a>.  <code>GetBucketLifecycle</code> has the following special error: <ul> <li> Error code: <code>NoSuchLifecycleConfiguration</code>  <ul> <li> Description: The lifecycle configuration does not exist. </li> <li> HTTP Status Code: 404 Not Found </li> <li> SOAP Fault Code Prefix: Client </li> </ul> </li> </ul> The following operations are related to <code>GetBucketLifecycle</code>: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html">GetBucketLifecycleConfiguration</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycle.html">PutBucketLifecycle</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketLifecycle.html">DeleteBucketLifecycle</a>  </li> </ul>

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>Bucket:  The name of the bucket for which to get the lifecycle information.<br/>
        :return: Rules:  Container for a lifecycle rule.<br/>        """
        pass

    def get_bucket_lifecycle_configuration(self, Bucket: str, ExpectedBucketOwner: str=None) -> GetBucketLifecycleConfigurationOutput:
        r"""<note> Bucket lifecycle configuration now supports specifying a lifecycle rule using an object key name prefix, one or more object tags, or a combination of both. Accordingly, this section describes the latest API. The response describes the new filter element that you can use to specify a filter to select a subset of objects to which the rule applies. If you are using a previous version of the lifecycle configuration, it still works. For the earlier action, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycle.html">GetBucketLifecycle</a>. </note> Returns the lifecycle configuration information set on the bucket. For information about lifecycle configuration, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html">Object Lifecycle Management</a>. To use this operation, you must have permission to perform the <code>s3:GetLifecycleConfiguration</code> action. The bucket owner has this permission, by default. The bucket owner can grant this permission to others. For more information about permissions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions Related to Bucket Subresource Operations</a> and <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing Access Permissions to Your Amazon S3 Resources</a>.  <code>GetBucketLifecycleConfiguration</code> has the following special error: <ul> <li> Error code: <code>NoSuchLifecycleConfiguration</code>  <ul> <li> Description: The lifecycle configuration does not exist. </li> <li> HTTP Status Code: 404 Not Found </li> <li> SOAP Fault Code Prefix: Client </li> </ul> </li> </ul> The following operations are related to <code>GetBucketLifecycleConfiguration</code>: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycle.html">GetBucketLifecycle</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycle.html">PutBucketLifecycle</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketLifecycle.html">DeleteBucketLifecycle</a>  </li> </ul>

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>Bucket:  The name of the bucket for which to get the lifecycle information.<br/>
        :return: Rules:  Container for a lifecycle rule.<br/>        """
        pass

    def get_bucket_location(self, Bucket: str, ExpectedBucketOwner: str=None) -> GetBucketLocationOutput:
        r"""Returns the Region the bucket resides in. You set the bucket's Region using the <code>LocationConstraint</code> request parameter in a <code>CreateBucket</code> request. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>.  To use this implementation of the operation, you must be the bucket owner. The following operations are related to <code>GetBucketLocation</code>: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>  </li> </ul>

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>Bucket:  The name of the bucket for which to get the location.<br/>
        :return: LocationConstraint:  Specifies the Region where the bucket resides. For a list of all the Amazon S3 supported location constraints by Region, see <a href="https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Regions and Endpoints</a>. Buckets in Region <code>us-east-1</code> have a LocationConstraint of <code>null</code>.<br/>        """
        pass

    def get_bucket_logging(self, Bucket: str, ExpectedBucketOwner: str=None) -> GetBucketLoggingOutput:
        r"""Returns the logging status of a bucket and the permissions users have to view and modify that status. To use GET, you must be the bucket owner. The following operations are related to <code>GetBucketLogging</code>: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLogging.html">PutBucketLogging</a>  </li> </ul>

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>Bucket:  The bucket name for which to get the logging information.<br/>
        :return: LoggingEnabled:  Describes where logs are stored and the prefix that Amazon S3 assigns to all log object keys for a bucket. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTlogging.html">PUT Bucket logging</a> in the <i>Amazon S3 API Reference</i>.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetPrefix</i> A prefix for all log object keys. If you store log files from multiple Amazon S3 buckets in a single bucket, you can use a prefix to distinguish which log files came from which bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetGrants</i> Container for granting information.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetBucket</i> Specifies the bucket where you want Amazon S3 to store server access logs. You can have your logs delivered to any bucket that you own, including the same bucket that is being logged. You can also configure multiple buckets to deliver their logs to the same target bucket. In this case, you should choose a different <code>TargetPrefix</code> for each source bucket so that the delivered log files can be distinguished by key.<br/>        """
        pass

    def get_bucket_metrics_configuration(self, Id: str, Bucket: str, ExpectedBucketOwner: str=None) -> GetBucketMetricsConfigurationOutput:
        r"""Gets a metrics configuration (specified by the metrics configuration ID) from the bucket. Note that this doesn't include the daily storage metrics.  To use this operation, you must have permissions to perform the <code>s3:GetMetricsConfiguration</code> action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions Related to Bucket Subresource Operations</a> and <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing Access Permissions to Your Amazon S3 Resources</a>.  For information about CloudWatch request metrics for Amazon S3, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html">Monitoring Metrics with Amazon CloudWatch</a>. The following operations are related to <code>GetBucketMetricsConfiguration</code>: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketMetricsConfiguration.html">PutBucketMetricsConfiguration</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetricsConfiguration.html">DeleteBucketMetricsConfiguration</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketMetricsConfigurations.html">ListBucketMetricsConfigurations</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html">Monitoring Metrics with Amazon CloudWatch</a>  </li> </ul>

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>Id:  The ID used to identify the metrics configuration.<br/>Bucket:  The name of the bucket containing the metrics configuration to retrieve.<br/>
        :return: MetricsConfiguration:  Specifies the metrics configuration.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Filter</i> Specifies a metrics configuration filter. The metrics configuration will only include objects that meet the filter's criteria. A filter must be a prefix, a tag, or a conjunction (MetricsAndOperator).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Filter</b>: Specifies a metrics configuration filter. The metrics configuration will only include objects that meet the filter's criteria. A filter must be a prefix, a tag, or a conjunction (MetricsAndOperator).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID used to identify the metrics configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Prefix</i> The prefix used when evaluating a metrics filter.<br/>The tag used when evaluating a metrics filter.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Tag</b>: The tag used when evaluating a metrics filter.        """
        pass

    def get_bucket_notification(self, Bucket: str, ExpectedBucketOwner: str=None) -> NotificationConfigurationDeprecated:
        r""" No longer used, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketNotificationConfiguration.html">GetBucketNotificationConfiguration</a>.

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>Bucket:  The name of the bucket for which to get the notification configuration.<br/>
        :return: CloudFunctionConfiguration:  Container for specifying the AWS Lambda notification configuration.:<br/>QueueConfiguration:  This data type is deprecated. This data type specifies the configuration for publishing messages to an Amazon Simple Queue Service (Amazon SQS) queue when Amazon S3 detects specified events. :<br/>TopicConfiguration:  This data type is deprecated. A container for specifying the configuration for publication of messages to an Amazon Simple Notification Service (Amazon SNS) topic when Amazon S3 detects specified events. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Topic</i> Amazon SNS topic to which Amazon S3 will publish a message to report the specified events for the bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Event</i> Bucket event for which to send notifications.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Events</i> A collection of events related to objects<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> An optional unique identifier for configurations in a notification configuration. If you don't provide one, Amazon S3 will assign an ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Queue</i> The Amazon Resource Name (ARN) of the Amazon SQS queue to which Amazon S3 publishes a message when it detects events of the specified type. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Events</i> A collection of bucket events for which to send notifications.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Event</i> The bucket event for which to send notifications.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> An optional unique identifier for configurations in a notification configuration. If you don't provide one, Amazon S3 will assign an ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InvocationRole</i> The role supporting the invocation of the Lambda function<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudFunction</i> Lambda cloud function ARN that Amazon S3 can invoke when it detects events of the specified type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Events</i> Bucket events for which to send notifications.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Event</i> The bucket event for which to send notifications.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> An optional unique identifier for configurations in a notification configuration. If you don't provide one, Amazon S3 will assign an ID.<br/>        """
        pass

    def get_bucket_notification_configuration(self, Bucket: str, ExpectedBucketOwner: str=None) -> NotificationConfiguration:
        r"""Returns the notification configuration of a bucket. If notifications are not enabled on the bucket, the action returns an empty <code>NotificationConfiguration</code> element. By default, you must be the bucket owner to read the notification configuration of a bucket. However, the bucket owner can use a bucket policy to grant permission to other users to read this configuration with the <code>s3:GetBucketNotification</code> permission. For more information about setting and reading the notification configuration on a bucket, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html">Setting Up Notification of Bucket Events</a>. For more information about bucket policies, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html">Using Bucket Policies</a>. The following action is related to <code>GetBucketNotification</code>: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketNotification.html">PutBucketNotification</a>  </li> </ul>

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>Bucket:  The name of the bucket for which to get the notification configuration.<br/>
        :return: LambdaFunctionConfigurations:  Describes the AWS Lambda functions to invoke and the events for which to invoke them.<br/>QueueConfigurations:  The Amazon Simple Queue Service queues to publish messages to and the events for which to publish messages.<br/>TopicConfigurations:  The topic to which notifications are sent and the events for which notifications are generated.<br/>        """
        pass

    def get_bucket_ownership_controls(self, Bucket: str, ExpectedBucketOwner: str=None) -> GetBucketOwnershipControlsOutput:
        r"""Retrieves <code>OwnershipControls</code> for an Amazon S3 bucket. To use this operation, you must have the <code>s3:GetBucketOwnershipControls</code> permission. For more information about Amazon S3 permissions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html">Specifying Permissions in a Policy</a>.  For information about Amazon S3 Object Ownership, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/about-object-ownership.html">Using Object Ownership</a>.  The following operations are related to <code>GetBucketOwnershipControls</code>: <ul> <li>  <a>PutBucketOwnershipControls</a>  </li> <li>  <a>DeleteBucketOwnershipControls</a>  </li> </ul>

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>Bucket:  The name of the Amazon S3 bucket whose <code>OwnershipControls</code> you want to retrieve. <br/>
        :return: OwnershipControls:  The <code>OwnershipControls</code> (BucketOwnerPreferred or ObjectWriter) currently in effect for this Amazon S3 bucket.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Rules</i> The container element for an ownership control rule.<br/>        """
        pass

    def get_bucket_policy(self, Bucket: str, ExpectedBucketOwner: str=None) -> GetBucketPolicyOutput:
        r"""Returns the policy of a specified bucket. If you are using an identity other than the root user of the AWS account that owns the bucket, the calling identity must have the <code>GetBucketPolicy</code> permissions on the specified bucket and belong to the bucket owner's account in order to use this operation. If you don't have <code>GetBucketPolicy</code> permissions, Amazon S3 returns a <code>403 Access Denied</code> error. If you have the correct permissions, but you're not using an identity that belongs to the bucket owner's account, Amazon S3 returns a <code>405 Method Not Allowed</code> error. <important> As a security precaution, the root user of the AWS account that owns a bucket can always use this operation, even if the policy explicitly denies the root user the ability to perform this action. </important> For more information about bucket policies, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html">Using Bucket Policies and User Policies</a>. The following action is related to <code>GetBucketPolicy</code>: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>  </li> </ul>

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>Bucket:  The bucket name for which to get the bucket policy.<br/>
        :return: Policy:  The bucket policy as a JSON document.<br/>        """
        pass

    def get_bucket_policy_status(self, Bucket: str, ExpectedBucketOwner: str=None) -> GetBucketPolicyStatusOutput:
        r"""Retrieves the policy status for an Amazon S3 bucket, indicating whether the bucket is public. In order to use this operation, you must have the <code>s3:GetBucketPolicyStatus</code> permission. For more information about Amazon S3 permissions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html">Specifying Permissions in a Policy</a>.  For more information about when Amazon S3 considers a bucket public, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status">The Meaning of "Public"</a>.  The following operations are related to <code>GetBucketPolicyStatus</code>: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html">Using Amazon S3 Block Public Access</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetPublicAccessBlock.html">GetPublicAccessBlock</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutPublicAccessBlock.html">PutPublicAccessBlock</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeletePublicAccessBlock.html">DeletePublicAccessBlock</a>  </li> </ul>

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>Bucket:  The name of the Amazon S3 bucket whose policy status you want to retrieve.<br/>
        :return: PolicyStatus:  The policy status for the specified bucket.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsPublic</i> The policy status for this bucket. <code>TRUE</code> indicates that this bucket is public. <code>FALSE</code> indicates that the bucket is not public.<br/>        """
        pass

    def get_bucket_replication(self, Bucket: str, ExpectedBucketOwner: str=None) -> GetBucketReplicationOutput:
        r"""Returns the replication configuration of a bucket. <note>  It can take a while to propagate the put or delete a replication configuration to all Amazon S3 systems. Therefore, a get request soon after put or delete can return a wrong result.  </note>  For information about replication configuration, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html">Replication</a> in the <i>Amazon S3 User Guide</i>. This action requires permissions for the <code>s3:GetReplicationConfiguration</code> action. For more information about permissions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html">Using Bucket Policies and User Policies</a>. If you include the <code>Filter</code> element in a replication configuration, you must also include the <code>DeleteMarkerReplication</code> and <code>Priority</code> elements. The response also returns those elements. For information about <code>GetBucketReplication</code> errors, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ReplicationErrorCodeList">List of replication-related error codes</a>  The following operations are related to <code>GetBucketReplication</code>: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketReplication.html">PutBucketReplication</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketReplication.html">DeleteBucketReplication</a>  </li> </ul>

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>Bucket:  The bucket name for which to get the replication information.<br/>
        :return: ReplicationConfiguration:  A container for replication rules. You can add up to 1,000 rules. The maximum size of a replication configuration is 2 MB.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Rules</i> A container for one or more replication rules. A replication configuration must have at least one rule and can contain a maximum of 1,000 rules. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Role</i> The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that Amazon S3 assumes when replicating objects. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-how-setup.html">How to Set Up Replication</a> in the <i>Amazon S3 User Guide</i>.<br/>        """
        pass

    def get_bucket_request_payment(self, Bucket: str, ExpectedBucketOwner: str=None) -> GetBucketRequestPaymentOutput:
        r"""Returns the request payment configuration of a bucket. To use this version of the operation, you must be the bucket owner. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html">Requester Pays Buckets</a>. The following operations are related to <code>GetBucketRequestPayment</code>: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjects.html">ListObjects</a>  </li> </ul>

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>Bucket:  The name of the bucket for which to get the payment request configuration<br/>
        :return: Payer:  Specifies who pays for the download and request fees.<br/>        """
        pass

    def get_bucket_tagging(self, Bucket: str, ExpectedBucketOwner: str=None) -> GetBucketTaggingOutput:
        r"""Returns the tag set associated with the bucket. To use this operation, you must have permission to perform the <code>s3:GetBucketTagging</code> action. By default, the bucket owner has this permission and can grant this permission to others.  <code>GetBucketTagging</code> has the following special error: <ul> <li> Error code: <code>NoSuchTagSetError</code>  <ul> <li> Description: There is no tag set associated with the bucket. </li> </ul> </li> </ul> The following operations are related to <code>GetBucketTagging</code>: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketTagging.html">PutBucketTagging</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketTagging.html">DeleteBucketTagging</a>  </li> </ul>

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>Bucket:  The name of the bucket for which to get the tagging information.<br/>
        :return: TagSet:  Contains the tag set.<br/>        """
        pass

    def get_bucket_versioning(self, Bucket: str, ExpectedBucketOwner: str=None) -> GetBucketVersioningOutput:
        r"""Returns the versioning state of a bucket. To retrieve the versioning state of a bucket, you must be the bucket owner. This implementation also returns the MFA Delete status of the versioning state. If the MFA Delete status is <code>enabled</code>, the bucket owner must use an authentication device to change the versioning state of the bucket. The following operations are related to <code>GetBucketVersioning</code>: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html">PutObject</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html">DeleteObject</a>  </li> </ul>

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>Bucket:  The name of the bucket for which to get the versioning information.<br/>
        :return: MFADelete:  Specifies whether MFA delete is enabled in the bucket versioning configuration. This element is only returned if the bucket has been configured with MFA delete. If the bucket has never been so configured, this element is not returned.<br/>Status:  The versioning state of the bucket.<br/>        """
        pass

    def get_bucket_website(self, Bucket: str, ExpectedBucketOwner: str=None) -> GetBucketWebsiteOutput:
        r"""Returns the website configuration for a bucket. To host website on Amazon S3, you can configure a bucket as website by adding a website configuration. For more information about hosting websites, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html">Hosting Websites on Amazon S3</a>.  This GET action requires the <code>S3:GetBucketWebsite</code> permission. By default, only the bucket owner can read the bucket website configuration. However, bucket owners can allow other users to read the website configuration by writing a bucket policy granting them the <code>S3:GetBucketWebsite</code> permission. The following operations are related to <code>DeleteBucketWebsite</code>: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketWebsite.html">DeleteBucketWebsite</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketWebsite.html">PutBucketWebsite</a>  </li> </ul>

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>Bucket:  The bucket name for which to get the website configuration.<br/>
        :return: RoutingRules:  Rules that define when a redirect is applied and the redirect behavior.<br/>ErrorDocument:  The object key name of the website error document to use for 4XX class errors.:<br/>IndexDocument:  The name of the index document for the website (for example <code>index.html</code>).:<br/>RedirectAllRequestsTo:  Specifies the redirect behavior of all requests to a website endpoint of an Amazon S3 bucket.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Protocol</i> Protocol to use when redirecting requests. The default is the protocol that is used in the original request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HostName</i> Name of the host where requests are redirected.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Suffix</i> A suffix that is appended to a request that is for a directory on the website endpoint (for example,if the suffix is index.html and you make a request to samplebucket/images/ the data that is returned will be for the object with the key name images/index.html) The suffix must not be empty and must not include a slash character. <important> Replacement must be made for object keys containing special characters (such as carriage returns) when using XML requests. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints"> XML related object key constraints</a>. </important><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The object key name to use when a 4XX class error occurs. <important> Replacement must be made for object keys containing special characters (such as carriage returns) when using XML requests. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints"> XML related object key constraints</a>. </important><br/>        """
        pass

    def get_object(self, Key: str, Bucket: str, IfMatch: str=None, IfModifiedSince: IfModifiedSince=None, IfNoneMatch: str=None, IfUnmodifiedSince: IfUnmodifiedSince=None, Range: str=None, ResponseCacheControl: str=None, ResponseContentDisposition: str=None, ResponseContentEncoding: str=None, ResponseContentLanguage: str=None, ResponseContentType: str=None, ResponseExpires: ResponseExpires=None, VersionId: str=None, SSECustomerAlgorithm: str=None, SSECustomerKey: str=None, SSECustomerKeyMD5: str=None, RequestPayer: str=None, PartNumber: int=None, ExpectedBucketOwner: str=None) -> GetObjectOutput:
        r"""Retrieves objects from Amazon S3. To use <code>GET</code>, you must have <code>READ</code> access to the object. If you grant <code>READ</code> access to the anonymous user, you can return the object without using an authorization header. An Amazon S3 bucket has no directory hierarchy such as you would find in a typical computer file system. You can, however, create a logical hierarchy by using object key names that imply a folder structure. For example, instead of naming an object <code>sample.jpg</code>, you can name it <code>photos/2006/February/sample.jpg</code>. To get an object from such a logical hierarchy, specify the full key name for the object in the <code>GET</code> operation. For a virtual hosted-style request example, if you have the object <code>photos/2006/February/sample.jpg</code>, specify the resource as <code>/photos/2006/February/sample.jpg</code>. For a path-style request example, if you have the object <code>photos/2006/February/sample.jpg</code> in the bucket named <code>examplebucket</code>, specify the resource as <code>/examplebucket/photos/2006/February/sample.jpg</code>. For more information about request types, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/VirtualHosting.html#VirtualHostingSpecifyBucket">HTTP Host Header Bucket Specification</a>. To distribute large files to many people, you can save bandwidth costs by using BitTorrent. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/S3Torrent.html">Amazon S3 Torrent</a>. For more information about returning the ACL of an object, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAcl.html">GetObjectAcl</a>. If the object you are retrieving is stored in the S3 Glacier or S3 Glacier Deep Archive storage class, or S3 Intelligent-Tiering Archive or S3 Intelligent-Tiering Deep Archive tiers, before you can retrieve the object you must first restore a copy using <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_RestoreObject.html">RestoreObject</a>. Otherwise, this action returns an <code>InvalidObjectStateError</code> error. For information about restoring archived objects, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/restoring-objects.html">Restoring Archived Objects</a>. Encryption request headers, like <code>x-amz-server-side-encryption</code>, should not be sent for GET requests if your object uses server-side encryption with CMKs stored in AWS KMS (SSE-KMS) or server-side encryption with Amazon S3–managed encryption keys (SSE-S3). If your object does use these types of keys, you’ll get an HTTP 400 BadRequest error. If you encrypt an object by using server-side encryption with customer-provided encryption keys (SSE-C) when you store the object in Amazon S3, then when you GET the object, you must use the following headers: <ul> <li> x-amz-server-side-encryption-customer-algorithm </li> <li> x-amz-server-side-encryption-customer-key </li> <li> x-amz-server-side-encryption-customer-key-MD5 </li> </ul> For more information about SSE-C, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html">Server-Side Encryption (Using Customer-Provided Encryption Keys)</a>. Assuming you have permission to read object tags (permission for the <code>s3:GetObjectVersionTagging</code> action), the response also returns the <code>x-amz-tagging-count</code> header that provides the count of number of tags associated with the object. You can use <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html">GetObjectTagging</a> to retrieve the tag set associated with an object.  <b>Permissions</b>  You need the <code>s3:GetObject</code> permission for this operation. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html">Specifying Permissions in a Policy</a>. If the object you request does not exist, the error Amazon S3 returns depends on whether you also have the <code>s3:ListBucket</code> permission. <ul> <li> If you have the <code>s3:ListBucket</code> permission on the bucket, Amazon S3 will return an HTTP status code 404 ("no such key") error. </li> <li> If you don’t have the <code>s3:ListBucket</code> permission, Amazon S3 will return an HTTP status code 403 ("access denied") error. </li> </ul>  <b>Versioning</b>  By default, the GET action returns the current version of an object. To return a different version, use the <code>versionId</code> subresource. <note> If the current version of the object is a delete marker, Amazon S3 behaves as if the object was deleted and includes <code>x-amz-delete-marker: true</code> in the response. </note> For more information about versioning, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketVersioning.html">PutBucketVersioning</a>.   <b>Overriding Response Header Values</b>  There are times when you want to override certain response header values in a GET response. For example, you might override the Content-Disposition response header value in your GET request. You can override values for a set of response headers using the following query parameters. These response header values are sent only on a successful request, that is, when status code 200 OK is returned. The set of headers you can override using these parameters is a subset of the headers that Amazon S3 accepts when you create an object. The response headers that you can override for the GET response are <code>Content-Type</code>, <code>Content-Language</code>, <code>Expires</code>, <code>Cache-Control</code>, <code>Content-Disposition</code>, and <code>Content-Encoding</code>. To override these header values in the GET response, you use the following request parameters. <note> You must sign the request, either using an Authorization header or a presigned URL, when using these parameters. They cannot be used with an unsigned (anonymous) request. </note> <ul> <li>  <code>response-content-type</code>  </li> <li>  <code>response-content-language</code>  </li> <li>  <code>response-expires</code>  </li> <li>  <code>response-cache-control</code>  </li> <li>  <code>response-content-disposition</code>  </li> <li>  <code>response-content-encoding</code>  </li> </ul>  <b>Additional Considerations about Request Headers</b>  If both of the <code>If-Match</code> and <code>If-Unmodified-Since</code> headers are present in the request as follows: <code>If-Match</code> condition evaluates to <code>true</code>, and; <code>If-Unmodified-Since</code> condition evaluates to <code>false</code>; then, S3 returns 200 OK and the data requested.  If both of the <code>If-None-Match</code> and <code>If-Modified-Since</code> headers are present in the request as follows:<code> If-None-Match</code> condition evaluates to <code>false</code>, and; <code>If-Modified-Since</code> condition evaluates to <code>true</code>; then, S3 returns 304 Not Modified response code. For more information about conditional requests, see <a href="https://tools.ietf.org/html/rfc7232">RFC 7232</a>. The following operations are related to <code>GetObject</code>: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html">ListBuckets</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAcl.html">GetObjectAcl</a>  </li> </ul>

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>PartNumber:  Part number of the object being read. This is a positive integer between 1 and 10,000. Effectively performs a 'ranged' GET request for the part specified. Useful for downloading just a part of an object.<br/>RequestPayer:  Confirms that the requester knows that they will be charged for the request. Bucket owners need not specify this parameter in their requests. For information about downloading objects from requester pays buckets, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html">Downloading Objects in Requestor Pays Buckets</a> in the <i>Amazon S3 User Guide</i>.<br/>SSECustomerKeyMD5:  Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure that the encryption key was transmitted without error.<br/>SSECustomerKey:  Specifies the customer-provided encryption key for Amazon S3 used to encrypt the data. This value is used to decrypt the object when recovering it and must match the one used when storing the data. The key must be appropriate for use with the algorithm specified in the <code>x-amz-server-side-encryption-customer-algorithm</code> header.<br/>SSECustomerAlgorithm:  Specifies the algorithm to use to when decrypting the object (for example, AES256).<br/>VersionId:  VersionId used to reference a specific version of the object.<br/>ResponseExpires:  Sets the <code>Expires</code> header of the response.<br/>ResponseContentType:  Sets the <code>Content-Type</code> header of the response.<br/>ResponseContentLanguage:  Sets the <code>Content-Language</code> header of the response.<br/>ResponseContentEncoding:  Sets the <code>Content-Encoding</code> header of the response.<br/>ResponseContentDisposition:  Sets the <code>Content-Disposition</code> header of the response<br/>ResponseCacheControl:  Sets the <code>Cache-Control</code> header of the response.<br/>Range:  Downloads the specified range bytes of an object. For more information about the HTTP Range header, see <a href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35">https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35</a>. <note> Amazon S3 doesn't support retrieving multiple ranges of data per <code>GET</code> request. </note><br/>Key:  Key of the object to get.<br/>IfUnmodifiedSince:  Return the object only if it has not been modified since the specified time, otherwise return a 412 (precondition failed).<br/>IfNoneMatch:  Return the object only if its entity tag (ETag) is different from the one specified, otherwise return a 304 (not modified).<br/>IfModifiedSince:  Return the object only if it has been modified since the specified time, otherwise return a 304 (not modified).<br/>IfMatch:  Return the object only if its entity tag (ETag) is the same as the one specified, otherwise return a 412 (precondition failed).<br/>Bucket:  The bucket name containing the object.  When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using access points</a> in the <i>Amazon S3 User Guide</i>. When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com. When using this action using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html">Using S3 on Outposts</a> in the <i>Amazon S3 User Guide</i>.<br/>
        :return: ObjectLockLegalHoldStatus:  Indicates whether this object has an active legal hold. This field is only returned if you have permission to view an object's legal hold status. <br/>ObjectLockRetainUntilDate:  The date and time when this object's Object Lock will expire.<br/>ObjectLockMode:  The Object Lock mode currently in place for this object.<br/>TagCount:  The number of tags, if any, on the object.<br/>PartsCount:  The count of parts this object has.<br/>ReplicationStatus:  Amazon S3 can return this if your request involves a bucket that is either a source or destination in a replication rule.<br/>RequestCharged:  If present, indicates that the requester was successfully charged for the request.<br/>StorageClass:  Provides storage class information of the object. Amazon S3 returns this header for all objects except for S3 Standard storage class objects.<br/>BucketKeyEnabled:  Indicates whether the object uses an S3 Bucket Key for server-side encryption with AWS KMS (SSE-KMS).<br/>SSEKMSKeyId:  If present, specifies the ID of the AWS Key Management Service (AWS KMS) symmetric customer managed customer master key (CMK) that was used for the object.<br/>SSECustomerKeyMD5:  If server-side encryption with a customer-provided encryption key was requested, the response will include this header to provide round-trip message integrity verification of the customer-provided encryption key.<br/>SSECustomerAlgorithm:  If server-side encryption with a customer-provided encryption key was requested, the response will include this header confirming the encryption algorithm used.<br/>Metadata:  A map of metadata to store with the object in S3.<br/>ServerSideEncryption:  The server-side encryption algorithm used when storing this object in Amazon S3 (for example, AES256, aws:kms).<br/>WebsiteRedirectLocation:  If the bucket is configured as a website, redirects requests for this object to another object in the same bucket or to an external URL. Amazon S3 stores the value of this header in the object metadata.<br/>Expires:  The date and time at which the object is no longer cacheable.<br/>ContentType:  A standard MIME type describing the format of the object data.<br/>ContentRange:  The portion of the object returned in the response.<br/>ContentLanguage:  The language the content is in.<br/>ContentEncoding:  Specifies what content encodings have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field.<br/>ContentDisposition:  Specifies presentational information for the object.<br/>CacheControl:  Specifies caching behavior along the request/reply chain.<br/>VersionId:  Version of the object.<br/>MissingMeta:  This is set to the number of metadata entries not returned in <code>x-amz-meta</code> headers. This can happen if you create metadata using an API like SOAP that supports more flexible metadata than the REST API. For example, using SOAP, you can create metadata whose values are not legal HTTP headers.<br/>ETag:  An ETag is an opaque identifier assigned by a web server to a specific version of a resource found at a URL.<br/>ContentLength:  Size of the body in bytes.<br/>LastModified:  Creation date of the object.<br/>Restore:  Provides information about object restoration action and expiration time of the restored object copy.<br/>Expiration:  If the object expiration is configured (see PUT Bucket lifecycle), the response includes this header. It includes the expiry-date and rule-id key-value pairs providing object expiration information. The value of the rule-id is URL encoded.<br/>AcceptRanges:  Indicates that a range of bytes was specified.<br/>DeleteMarker:  Specifies whether the object retrieved was (true) or was not (false) a Delete Marker. If false, this response header does not appear in the response.<br/>Body:  Object data.<br/>        """
        pass

    def get_object_acl(self, Key: str, Bucket: str, VersionId: str=None, RequestPayer: str=None, ExpectedBucketOwner: str=None) -> GetObjectAclOutput:
        r"""Returns the access control list (ACL) of an object. To use this operation, you must have <code>READ_ACP</code> access to the object. This action is not supported by Amazon S3 on Outposts.  <b>Versioning</b>  By default, GET returns ACL information about the current version of an object. To return ACL information about a different version, use the versionId subresource. The following operations are related to <code>GetObjectAcl</code>: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html">DeleteObject</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html">PutObject</a>  </li> </ul>

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>RequestPayer:  Confirms that the requester knows that they will be charged for the request. Bucket owners need not specify this parameter in their requests. For information about downloading objects from requester pays buckets, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html">Downloading Objects in Requestor Pays Buckets</a> in the <i>Amazon S3 User Guide</i>.<br/>VersionId:  VersionId used to reference a specific version of the object.<br/>Key:  The key of the object for which to get the ACL information.<br/>Bucket:  The bucket name that contains the object for which to get the ACL information.  When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using access points</a> in the <i>Amazon S3 User Guide</i>.<br/>
        :return: RequestCharged:  If present, indicates that the requester was successfully charged for the request.<br/>Grants:  A list of grants.<br/>Owner:   Container for the bucket owner's display name and ID.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ID</i> Container for the ID of the owner.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DisplayName</i> Container for the display name of the owner.<br/>        """
        pass

    def get_object_legal_hold(self, Key: str, Bucket: str, VersionId: str=None, RequestPayer: str=None, ExpectedBucketOwner: str=None) -> GetObjectLegalHoldOutput:
        r"""Gets an object's current Legal Hold status. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html">Locking Objects</a>. This action is not supported by Amazon S3 on Outposts.

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>RequestPayer:  Confirms that the requester knows that they will be charged for the request. Bucket owners need not specify this parameter in their requests. For information about downloading objects from requester pays buckets, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html">Downloading Objects in Requestor Pays Buckets</a> in the <i>Amazon S3 User Guide</i>.<br/>VersionId:  The version ID of the object whose Legal Hold status you want to retrieve.<br/>Key:  The key name for the object whose Legal Hold status you want to retrieve.<br/>Bucket:  The bucket name containing the object whose Legal Hold status you want to retrieve.  When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using access points</a> in the <i>Amazon S3 User Guide</i>.<br/>
        :return: LegalHold:  The current Legal Hold status for the specified object.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Indicates whether the specified object has a Legal Hold in place.<br/>        """
        pass

    def get_object_lock_configuration(self, Bucket: str, ExpectedBucketOwner: str=None) -> GetObjectLockConfigurationOutput:
        r"""Gets the Object Lock configuration for a bucket. The rule specified in the Object Lock configuration will be applied by default to every new object placed in the specified bucket. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html">Locking Objects</a>.

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>Bucket:  The bucket whose Object Lock configuration you want to retrieve. When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using access points</a> in the <i>Amazon S3 User Guide</i>.<br/>
        :return: ObjectLockConfiguration:  The specified bucket's Object Lock configuration.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Rule</i> Specifies the Object Lock rule for the specified object. Enable the this rule when you apply <code>ObjectLockConfiguration</code> to a bucket. Bucket settings require both a mode and a period. The period can be either <code>Days</code> or <code>Years</code> but you must select one. You cannot specify <code>Days</code> and <code>Years</code> at the same time.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Rule</b>: Specifies the Object Lock rule for the specified object. Enable the this rule when you apply <code>ObjectLockConfiguration</code> to a bucket. Bucket settings require both a mode and a period. The period can be either <code>Days</code> or <code>Years</code> but you must select one. You cannot specify <code>Days</code> and <code>Years</code> at the same time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ObjectLockEnabled</i> Indicates whether this bucket has an Object Lock configuration enabled. Enable <code>ObjectLockEnabled</code> when you apply <code>ObjectLockConfiguration</code> to a bucket. <br/>The default Object Lock retention mode and period that you want to apply to new objects placed in the specified bucket. Bucket settings require both a mode and a period. The period can be either <code>Days</code> or <code>Years</code> but you must select one. You cannot specify <code>Days</code> and <code>Years</code> at the same time.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DefaultRetention</b>: The default Object Lock retention mode and period that you want to apply to new objects placed in the specified bucket. Bucket settings require both a mode and a period. The period can be either <code>Days</code> or <code>Years</code> but you must select one. You cannot specify <code>Days</code> and <code>Years</code> at the same time.        """
        pass

    def get_object_retention(self, Key: str, Bucket: str, VersionId: str=None, RequestPayer: str=None, ExpectedBucketOwner: str=None) -> GetObjectRetentionOutput:
        r"""Retrieves an object's retention settings. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html">Locking Objects</a>. This action is not supported by Amazon S3 on Outposts.

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>RequestPayer:  Confirms that the requester knows that they will be charged for the request. Bucket owners need not specify this parameter in their requests. For information about downloading objects from requester pays buckets, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html">Downloading Objects in Requestor Pays Buckets</a> in the <i>Amazon S3 User Guide</i>.<br/>VersionId:  The version ID for the object whose retention settings you want to retrieve.<br/>Key:  The key name for the object whose retention settings you want to retrieve.<br/>Bucket:  The bucket name containing the object whose retention settings you want to retrieve.  When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using access points</a> in the <i>Amazon S3 User Guide</i>.<br/>
        :return: Retention:  The container element for an object's retention settings.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RetainUntilDate</i> The date on which this Object Lock Retention will expire.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Mode</i> Indicates the Retention mode for the specified object.<br/>        """
        pass

    def get_object_tagging(self, Key: str, Bucket: str, VersionId: str=None, ExpectedBucketOwner: str=None, RequestPayer: str=None) -> GetObjectTaggingOutput:
        r"""Returns the tag-set of an object. You send the GET request against the tagging subresource associated with the object. To use this operation, you must have permission to perform the <code>s3:GetObjectTagging</code> action. By default, the GET action returns information about current version of an object. For a versioned bucket, you can have multiple versions of an object in your bucket. To retrieve tags of any other version, use the versionId query parameter. You also need permission for the <code>s3:GetObjectVersionTagging</code> action.  By default, the bucket owner has this permission and can grant this permission to others.  For information about the Amazon S3 object tagging feature, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-tagging.html">Object Tagging</a>. The following action is related to <code>GetObjectTagging</code>: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectTagging.html">PutObjectTagging</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjectTagging.html">DeleteObjectTagging</a>  </li> </ul>

        :param self:
        :param RequestPayer:  Confirms that the requester knows that they will be charged for the request. Bucket owners need not specify this parameter in their requests. For information about downloading objects from requester pays buckets, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html">Downloading Objects in Requestor Pays Buckets</a> in the <i>Amazon S3 User Guide</i>.<br/>ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>VersionId:  The versionId of the object for which to get the tagging information.<br/>Key:  Object key for which to get the tagging information.<br/>Bucket:  The bucket name containing the object for which to get the tagging information.  When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using access points</a> in the <i>Amazon S3 User Guide</i>. When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com. When using this action using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html">Using S3 on Outposts</a> in the <i>Amazon S3 User Guide</i>.<br/>
        :return: TagSet:  Contains the tag set.<br/>VersionId:  The versionId of the object for which you got the tagging information.<br/>        """
        pass

    def get_object_torrent(self, Key: str, Bucket: str, RequestPayer: str=None, ExpectedBucketOwner: str=None) -> GetObjectTorrentOutput:
        r"""Returns torrent files from a bucket. BitTorrent can save you bandwidth when you're distributing large files. For more information about BitTorrent, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/S3Torrent.html">Using BitTorrent with Amazon S3</a>. <note> You can get torrent only for objects that are less than 5 GB in size, and that are not encrypted using server-side encryption with a customer-provided encryption key. </note> To use GET, you must have READ access to the object. This action is not supported by Amazon S3 on Outposts. The following action is related to <code>GetObjectTorrent</code>: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>  </li> </ul>

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>RequestPayer:  Confirms that the requester knows that they will be charged for the request. Bucket owners need not specify this parameter in their requests. For information about downloading objects from requester pays buckets, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html">Downloading Objects in Requestor Pays Buckets</a> in the <i>Amazon S3 User Guide</i>.<br/>Key:  The object key for which to get the information.<br/>Bucket:  The name of the bucket containing the object for which to get the torrent files.<br/>
        :return: RequestCharged:  If present, indicates that the requester was successfully charged for the request.<br/>Body:  A Bencoded dictionary as defined by the BitTorrent specification<br/>        """
        pass

    def get_public_access_block(self, Bucket: str, ExpectedBucketOwner: str=None) -> GetPublicAccessBlockOutput:
        r"""Retrieves the <code>PublicAccessBlock</code> configuration for an Amazon S3 bucket. To use this operation, you must have the <code>s3:GetBucketPublicAccessBlock</code> permission. For more information about Amazon S3 permissions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html">Specifying Permissions in a Policy</a>. <important> When Amazon S3 evaluates the <code>PublicAccessBlock</code> configuration for a bucket or an object, it checks the <code>PublicAccessBlock</code> configuration for both the bucket (or the bucket that contains the object) and the bucket owner's account. If the <code>PublicAccessBlock</code> settings are different between the bucket and the account, Amazon S3 uses the most restrictive combination of the bucket-level and account-level settings. </important> For more information about when Amazon S3 considers a bucket or an object public, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status">The Meaning of "Public"</a>. The following operations are related to <code>GetPublicAccessBlock</code>: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html">Using Amazon S3 Block Public Access</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutPublicAccessBlock.html">PutPublicAccessBlock</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetPublicAccessBlock.html">GetPublicAccessBlock</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeletePublicAccessBlock.html">DeletePublicAccessBlock</a>  </li> </ul>

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>Bucket:  The name of the Amazon S3 bucket whose <code>PublicAccessBlock</code> configuration you want to retrieve. <br/>
        :return: PublicAccessBlockConfiguration:  The <code>PublicAccessBlock</code> configuration currently in effect for this Amazon S3 bucket.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RestrictPublicBuckets</i> Specifies whether Amazon S3 should restrict public bucket policies for this bucket. Setting this element to <code>TRUE</code> restricts access to this bucket to only AWS service principals and authorized users within this account if the bucket has a public policy. Enabling this setting doesn't affect previously stored bucket policies, except that public and cross-account access within any public bucket policy, including non-public delegation to specific accounts, is blocked.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BlockPublicPolicy</i> Specifies whether Amazon S3 should block public bucket policies for this bucket. Setting this element to <code>TRUE</code> causes Amazon S3 to reject calls to PUT Bucket policy if the specified bucket policy allows public access.  Enabling this setting doesn't affect existing bucket policies.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IgnorePublicAcls</i> Specifies whether Amazon S3 should ignore public ACLs for this bucket and objects in this bucket. Setting this element to <code>TRUE</code> causes Amazon S3 to ignore all public ACLs on this bucket and objects in this bucket. Enabling this setting doesn't affect the persistence of any existing ACLs and doesn't prevent new public ACLs from being set.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BlockPublicAcls</i> Specifies whether Amazon S3 should block public access control lists (ACLs) for this bucket and objects in this bucket. Setting this element to <code>TRUE</code> causes the following behavior: <ul> <li> PUT Bucket acl and PUT Object acl calls fail if the specified ACL is public. </li> <li> PUT Object calls fail if the request includes a public ACL. </li> <li> PUT Bucket calls fail if the request includes a public ACL. </li> </ul> Enabling this setting doesn't affect existing policies or ACLs.<br/>        """
        pass

    def head_bucket(self, Bucket: str, ExpectedBucketOwner: str=None):
        r"""This action is useful to determine if a bucket exists and you have permission to access it. The action returns a <code>200 OK</code> if the bucket exists and you have permission to access it. If the bucket does not exist or you do not have permission to access it, the <code>HEAD</code> request returns a generic <code>404 Not Found</code> or <code>403 Forbidden</code> code. A message body is not included, so you cannot determine the exception beyond these error codes. To use this operation, you must have permissions to perform the <code>s3:ListBucket</code> action. The bucket owner has this permission by default and can grant this permission to others. For more information about permissions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions Related to Bucket Subresource Operations</a> and <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing Access Permissions to Your Amazon S3 Resources</a>.

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>Bucket:  The bucket name. When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using access points</a> in the <i>Amazon S3 User Guide</i>. When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com. When using this action using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html">Using S3 on Outposts</a> in the <i>Amazon S3 User Guide</i>.<br/>
        :return:         """
        pass

    def head_object(self, Key: str, Bucket: str, IfMatch: str=None, IfModifiedSince: IfModifiedSince=None, IfNoneMatch: str=None, IfUnmodifiedSince: IfUnmodifiedSince=None, Range: str=None, VersionId: str=None, SSECustomerAlgorithm: str=None, SSECustomerKey: str=None, SSECustomerKeyMD5: str=None, RequestPayer: str=None, PartNumber: int=None, ExpectedBucketOwner: str=None) -> HeadObjectOutput:
        r"""The HEAD action retrieves metadata from an object without returning the object itself. This action is useful if you're only interested in an object's metadata. To use HEAD, you must have READ access to the object. A <code>HEAD</code> request has the same options as a <code>GET</code> action on an object. The response is identical to the <code>GET</code> response except that there is no response body. Because of this, if the <code>HEAD</code> request generates an error, it returns a generic <code>404 Not Found</code> or <code>403 Forbidden</code> code. It is not possible to retrieve the exact exception beyond these error codes. If you encrypt an object by using server-side encryption with customer-provided encryption keys (SSE-C) when you store the object in Amazon S3, then when you retrieve the metadata from the object, you must use the following headers: <ul> <li> x-amz-server-side-encryption-customer-algorithm </li> <li> x-amz-server-side-encryption-customer-key </li> <li> x-amz-server-side-encryption-customer-key-MD5 </li> </ul> For more information about SSE-C, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html">Server-Side Encryption (Using Customer-Provided Encryption Keys)</a>. <note> <ul> <li> Encryption request headers, like <code>x-amz-server-side-encryption</code>, should not be sent for GET requests if your object uses server-side encryption with CMKs stored in AWS KMS (SSE-KMS) or server-side encryption with Amazon S3–managed encryption keys (SSE-S3). If your object does use these types of keys, you’ll get an HTTP 400 BadRequest error. </li> <li>  The last modified property in this case is the creation date of the object. </li> </ul> </note> Request headers are limited to 8 KB in size. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/RESTCommonRequestHeaders.html">Common Request Headers</a>. Consider the following when using request headers: <ul> <li>  Consideration 1 – If both of the <code>If-Match</code> and <code>If-Unmodified-Since</code> headers are present in the request as follows: <ul> <li>  <code>If-Match</code> condition evaluates to <code>true</code>, and; </li> <li>  <code>If-Unmodified-Since</code> condition evaluates to <code>false</code>; </li> </ul> Then Amazon S3 returns <code>200 OK</code> and the data requested. </li> <li>  Consideration 2 – If both of the <code>If-None-Match</code> and <code>If-Modified-Since</code> headers are present in the request as follows: <ul> <li>  <code>If-None-Match</code> condition evaluates to <code>false</code>, and; </li> <li>  <code>If-Modified-Since</code> condition evaluates to <code>true</code>; </li> </ul> Then Amazon S3 returns the <code>304 Not Modified</code> response code. </li> </ul> For more information about conditional requests, see <a href="https://tools.ietf.org/html/rfc7232">RFC 7232</a>.  <b>Permissions</b>  You need the <code>s3:GetObject</code> permission for this operation. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html">Specifying Permissions in a Policy</a>. If the object you request does not exist, the error Amazon S3 returns depends on whether you also have the s3:ListBucket permission. <ul> <li> If you have the <code>s3:ListBucket</code> permission on the bucket, Amazon S3 returns an HTTP status code 404 ("no such key") error. </li> <li> If you don’t have the <code>s3:ListBucket</code> permission, Amazon S3 returns an HTTP status code 403 ("access denied") error. </li> </ul> The following action is related to <code>HeadObject</code>: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>  </li> </ul>

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>PartNumber:  Part number of the object being read. This is a positive integer between 1 and 10,000. Effectively performs a 'ranged' HEAD request for the part specified. Useful querying about the size of the part and the number of parts in this object.<br/>RequestPayer:  Confirms that the requester knows that they will be charged for the request. Bucket owners need not specify this parameter in their requests. For information about downloading objects from requester pays buckets, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html">Downloading Objects in Requestor Pays Buckets</a> in the <i>Amazon S3 User Guide</i>.<br/>SSECustomerKeyMD5:  Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure that the encryption key was transmitted without error.<br/>SSECustomerKey:  Specifies the customer-provided encryption key for Amazon S3 to use in encrypting data. This value is used to store the object and then it is discarded; Amazon S3 does not store the encryption key. The key must be appropriate for use with the algorithm specified in the <code>x-amz-server-side-encryption-customer-algorithm</code> header.<br/>SSECustomerAlgorithm:  Specifies the algorithm to use to when encrypting the object (for example, AES256).<br/>VersionId:  VersionId used to reference a specific version of the object.<br/>Range:  Downloads the specified range bytes of an object. For more information about the HTTP Range header, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35">http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35</a>. <note> Amazon S3 doesn't support retrieving multiple ranges of data per <code>GET</code> request. </note><br/>Key:  The object key.<br/>IfUnmodifiedSince:  Return the object only if it has not been modified since the specified time, otherwise return a 412 (precondition failed).<br/>IfNoneMatch:  Return the object only if its entity tag (ETag) is different from the one specified, otherwise return a 304 (not modified).<br/>IfModifiedSince:  Return the object only if it has been modified since the specified time, otherwise return a 304 (not modified).<br/>IfMatch:  Return the object only if its entity tag (ETag) is the same as the one specified, otherwise return a 412 (precondition failed).<br/>Bucket:  The name of the bucket containing the object. When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using access points</a> in the <i>Amazon S3 User Guide</i>. When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com. When using this action using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html">Using S3 on Outposts</a> in the <i>Amazon S3 User Guide</i>.<br/>
        :return: ObjectLockLegalHoldStatus:  Specifies whether a legal hold is in effect for this object. This header is only returned if the requester has the <code>s3:GetObjectLegalHold</code> permission. This header is not returned if the specified version of this object has never had a legal hold applied. For more information about S3 Object Lock, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html">Object Lock</a>.<br/>ObjectLockRetainUntilDate:  The date and time when the Object Lock retention period expires. This header is only returned if the requester has the <code>s3:GetObjectRetention</code> permission.<br/>ObjectLockMode:  The Object Lock mode, if any, that's in effect for this object. This header is only returned if the requester has the <code>s3:GetObjectRetention</code> permission. For more information about S3 Object Lock, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html">Object Lock</a>. <br/>PartsCount:  The count of parts this object has.<br/>ReplicationStatus:  Amazon S3 can return this header if your request involves a bucket that is either a source or a destination in a replication rule. In replication, you have a source bucket on which you configure replication and destination bucket or buckets where Amazon S3 stores object replicas. When you request an object (<code>GetObject</code>) or object metadata (<code>HeadObject</code>) from these buckets, Amazon S3 will return the <code>x-amz-replication-status</code> header in the response as follows: <ul> <li> If requesting an object from the source bucket — Amazon S3 will return the <code>x-amz-replication-status</code> header if the object in your request is eligible for replication.  For example, suppose that in your replication configuration, you specify object prefix <code>TaxDocs</code> requesting Amazon S3 to replicate objects with key prefix <code>TaxDocs</code>. Any objects you upload with this key name prefix, for example <code>TaxDocs/document1.pdf</code>, are eligible for replication. For any object request with this key name prefix, Amazon S3 will return the <code>x-amz-replication-status</code> header with value PENDING, COMPLETED or FAILED indicating object replication status. </li> <li> If requesting an object from a destination bucket — Amazon S3 will return the <code>x-amz-replication-status</code> header with value REPLICA if the object in your request is a replica that Amazon S3 created and there is no replica modification replication in progress. </li> <li> When replicating objects to multiple destination buckets the <code>x-amz-replication-status</code> header acts differently. The header of the source object will only return a value of COMPLETED when replication is successful to all destinations. The header will remain at value PENDING until replication has completed for all destinations. If one or more destinations fails replication the header will return FAILED.  </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html">Replication</a>.<br/>RequestCharged:  If present, indicates that the requester was successfully charged for the request.<br/>StorageClass:  Provides storage class information of the object. Amazon S3 returns this header for all objects except for S3 Standard storage class objects. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html">Storage Classes</a>.<br/>BucketKeyEnabled:  Indicates whether the object uses an S3 Bucket Key for server-side encryption with AWS KMS (SSE-KMS).<br/>SSEKMSKeyId:  If present, specifies the ID of the AWS Key Management Service (AWS KMS) symmetric customer managed customer master key (CMK) that was used for the object.<br/>SSECustomerKeyMD5:  If server-side encryption with a customer-provided encryption key was requested, the response will include this header to provide round-trip message integrity verification of the customer-provided encryption key.<br/>SSECustomerAlgorithm:  If server-side encryption with a customer-provided encryption key was requested, the response will include this header confirming the encryption algorithm used.<br/>Metadata:  A map of metadata to store with the object in S3.<br/>ServerSideEncryption:  If the object is stored using server-side encryption either with an AWS KMS customer master key (CMK) or an Amazon S3-managed encryption key, the response includes this header with the value of the server-side encryption algorithm used when storing this object in Amazon S3 (for example, AES256, aws:kms).<br/>WebsiteRedirectLocation:  If the bucket is configured as a website, redirects requests for this object to another object in the same bucket or to an external URL. Amazon S3 stores the value of this header in the object metadata.<br/>Expires:  The date and time at which the object is no longer cacheable.<br/>ContentType:  A standard MIME type describing the format of the object data.<br/>ContentLanguage:  The language the content is in.<br/>ContentEncoding:  Specifies what content encodings have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field.<br/>ContentDisposition:  Specifies presentational information for the object.<br/>CacheControl:  Specifies caching behavior along the request/reply chain.<br/>VersionId:  Version of the object.<br/>MissingMeta:  This is set to the number of metadata entries not returned in <code>x-amz-meta</code> headers. This can happen if you create metadata using an API like SOAP that supports more flexible metadata than the REST API. For example, using SOAP, you can create metadata whose values are not legal HTTP headers.<br/>ETag:  An ETag is an opaque identifier assigned by a web server to a specific version of a resource found at a URL.<br/>ContentLength:  Size of the body in bytes.<br/>LastModified:  Creation date of the object.<br/>ArchiveStatus:  The archive state of the head object.<br/>Restore:  If the object is an archived object (an object whose storage class is GLACIER), the response includes this header if either the archive restoration is in progress (see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_RestoreObject.html">RestoreObject</a> or an archive copy is already restored.  If an archive copy is already restored, the header value indicates when Amazon S3 is scheduled to delete the object copy. For example:  <code>x-amz-restore: ongoing-request="false", expiry-date="Fri, 21 Dec 2012 00:00:00 GMT"</code>  If the object restoration is in progress, the header returns the value <code>ongoing-request="true"</code>. For more information about archiving objects, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html#lifecycle-transition-general-considerations">Transitioning Objects: General Considerations</a>.<br/>Expiration:  If the object expiration is configured (see PUT Bucket lifecycle), the response includes this header. It includes the expiry-date and rule-id key-value pairs providing object expiration information. The value of the rule-id is URL encoded.<br/>AcceptRanges:  Indicates that a range of bytes was specified.<br/>DeleteMarker:  Specifies whether the object retrieved was (true) or was not (false) a Delete Marker. If false, this response header does not appear in the response.<br/>        """
        pass

    def list_bucket_analytics_configurations(self, Bucket: str, ContinuationToken: str=None, ExpectedBucketOwner: str=None) -> ListBucketAnalyticsConfigurationsOutput:
        r"""Lists the analytics configurations for the bucket. You can have up to 1,000 analytics configurations per bucket. This action supports list pagination and does not return more than 100 configurations at a time. You should always check the <code>IsTruncated</code> element in the response. If there are no more configurations to list, <code>IsTruncated</code> is set to false. If there are more configurations to list, <code>IsTruncated</code> is set to true, and there will be a value in <code>NextContinuationToken</code>. You use the <code>NextContinuationToken</code> value to continue the pagination of the list by passing the value in continuation-token in the request to <code>GET</code> the next page. To use this operation, you must have permissions to perform the <code>s3:GetAnalyticsConfiguration</code> action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions Related to Bucket Subresource Operations</a> and <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing Access Permissions to Your Amazon S3 Resources</a>. For information about Amazon S3 analytics feature, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/analytics-storage-class.html">Amazon S3 Analytics – Storage Class Analysis</a>.  The following operations are related to <code>ListBucketAnalyticsConfigurations</code>: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAnalyticsConfiguration.html">GetBucketAnalyticsConfiguration</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketAnalyticsConfiguration.html">DeleteBucketAnalyticsConfiguration</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAnalyticsConfiguration.html">PutBucketAnalyticsConfiguration</a>  </li> </ul>

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>ContinuationToken:  The ContinuationToken that represents a placeholder from where this request should begin.<br/>Bucket:  The name of the bucket from which analytics configurations are retrieved.<br/>
        :return: AnalyticsConfigurationList:  The list of analytics configurations for a bucket.<br/>NextContinuationToken:   <code>NextContinuationToken</code> is sent when <code>isTruncated</code> is true, which indicates that there are more analytics configurations to list. The next request must include this <code>NextContinuationToken</code>. The token is obfuscated and is not a usable value.<br/>ContinuationToken:  The marker that is used as a starting point for this analytics configuration list response. This value is present if it was sent in the request.<br/>IsTruncated:  Indicates whether the returned list of analytics configurations is complete. A value of true indicates that the list is not complete and the NextContinuationToken will be provided for a subsequent request.<br/>        """
        pass

    def list_bucket_intelligent_tiering_configurations(self, Bucket: str, ContinuationToken: str=None) -> ListBucketIntelligentTieringConfigurationsOutput:
        r"""Lists the S3 Intelligent-Tiering configuration from the specified bucket. The S3 Intelligent-Tiering storage class is designed to optimize storage costs by automatically moving data to the most cost-effective storage access tier, without additional operational overhead. S3 Intelligent-Tiering delivers automatic cost savings by moving data between access tiers, when access patterns change. The S3 Intelligent-Tiering storage class is suitable for objects larger than 128 KB that you plan to store for at least 30 days. If the size of an object is less than 128 KB, it is not eligible for auto-tiering. Smaller objects can be stored, but they are always charged at the frequent access tier rates in the S3 Intelligent-Tiering storage class.  If you delete an object before the end of the 30-day minimum storage duration period, you are charged for 30 days. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access">Storage class for automatically optimizing frequently and infrequently accessed objects</a>. Operations related to <code>ListBucketIntelligentTieringConfigurations</code> include:  <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketIntelligentTieringConfiguration.html">DeleteBucketIntelligentTieringConfiguration</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketIntelligentTieringConfiguration.html">PutBucketIntelligentTieringConfiguration</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketIntelligentTieringConfiguration.html">GetBucketIntelligentTieringConfiguration</a>  </li> </ul>

        :param self:
        :param ContinuationToken:  The ContinuationToken that represents a placeholder from where this request should begin.<br/>Bucket:  The name of the Amazon S3 bucket whose configuration you want to modify or retrieve.<br/>
        :return: IntelligentTieringConfigurationList:  The list of S3 Intelligent-Tiering configurations for a bucket.<br/>NextContinuationToken:  The marker used to continue this inventory configuration listing. Use the <code>NextContinuationToken</code> from this response to continue the listing in a subsequent request. The continuation token is an opaque value that Amazon S3 understands.<br/>ContinuationToken:  The ContinuationToken that represents a placeholder from where this request should begin.<br/>IsTruncated:  Indicates whether the returned list of analytics configurations is complete. A value of true indicates that the list is not complete and the NextContinuationToken will be provided for a subsequent request.<br/>        """
        pass

    def list_bucket_inventory_configurations(self, Bucket: str, ContinuationToken: str=None, ExpectedBucketOwner: str=None) -> ListBucketInventoryConfigurationsOutput:
        r"""Returns a list of inventory configurations for the bucket. You can have up to 1,000 analytics configurations per bucket. This action supports list pagination and does not return more than 100 configurations at a time. Always check the <code>IsTruncated</code> element in the response. If there are no more configurations to list, <code>IsTruncated</code> is set to false. If there are more configurations to list, <code>IsTruncated</code> is set to true, and there is a value in <code>NextContinuationToken</code>. You use the <code>NextContinuationToken</code> value to continue the pagination of the list by passing the value in continuation-token in the request to <code>GET</code> the next page.  To use this operation, you must have permissions to perform the <code>s3:GetInventoryConfiguration</code> action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions Related to Bucket Subresource Operations</a> and <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing Access Permissions to Your Amazon S3 Resources</a>. For information about the Amazon S3 inventory feature, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-inventory.html">Amazon S3 Inventory</a>  The following operations are related to <code>ListBucketInventoryConfigurations</code>: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketInventoryConfiguration.html">GetBucketInventoryConfiguration</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketInventoryConfiguration.html">DeleteBucketInventoryConfiguration</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketInventoryConfiguration.html">PutBucketInventoryConfiguration</a>  </li> </ul>

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>ContinuationToken:  The marker used to continue an inventory configuration listing that has been truncated. Use the NextContinuationToken from a previously truncated list response to continue the listing. The continuation token is an opaque value that Amazon S3 understands.<br/>Bucket:  The name of the bucket containing the inventory configurations to retrieve.<br/>
        :return: NextContinuationToken:  The marker used to continue this inventory configuration listing. Use the <code>NextContinuationToken</code> from this response to continue the listing in a subsequent request. The continuation token is an opaque value that Amazon S3 understands.<br/>IsTruncated:  Tells whether the returned list of inventory configurations is complete. A value of true indicates that the list is not complete and the NextContinuationToken is provided for a subsequent request.<br/>InventoryConfigurationList:  The list of inventory configurations for a bucket.<br/>ContinuationToken:  If sent in the request, the marker that is used as a starting point for this inventory configuration list response.<br/>        """
        pass

    def list_bucket_metrics_configurations(self, Bucket: str, ContinuationToken: str=None, ExpectedBucketOwner: str=None) -> ListBucketMetricsConfigurationsOutput:
        r"""Lists the metrics configurations for the bucket. The metrics configurations are only for the request metrics of the bucket and do not provide information on daily storage metrics. You can have up to 1,000 configurations per bucket. This action supports list pagination and does not return more than 100 configurations at a time. Always check the <code>IsTruncated</code> element in the response. If there are no more configurations to list, <code>IsTruncated</code> is set to false. If there are more configurations to list, <code>IsTruncated</code> is set to true, and there is a value in <code>NextContinuationToken</code>. You use the <code>NextContinuationToken</code> value to continue the pagination of the list by passing the value in <code>continuation-token</code> in the request to <code>GET</code> the next page. To use this operation, you must have permissions to perform the <code>s3:GetMetricsConfiguration</code> action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions Related to Bucket Subresource Operations</a> and <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing Access Permissions to Your Amazon S3 Resources</a>. For more information about metrics configurations and CloudWatch request metrics, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html">Monitoring Metrics with Amazon CloudWatch</a>. The following operations are related to <code>ListBucketMetricsConfigurations</code>: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketMetricsConfiguration.html">PutBucketMetricsConfiguration</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetricsConfiguration.html">GetBucketMetricsConfiguration</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetricsConfiguration.html">DeleteBucketMetricsConfiguration</a>  </li> </ul>

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>ContinuationToken:  The marker that is used to continue a metrics configuration listing that has been truncated. Use the NextContinuationToken from a previously truncated list response to continue the listing. The continuation token is an opaque value that Amazon S3 understands.<br/>Bucket:  The name of the bucket containing the metrics configurations to retrieve.<br/>
        :return: MetricsConfigurationList:  The list of metrics configurations for a bucket.<br/>NextContinuationToken:  The marker used to continue a metrics configuration listing that has been truncated. Use the <code>NextContinuationToken</code> from a previously truncated list response to continue the listing. The continuation token is an opaque value that Amazon S3 understands.<br/>ContinuationToken:  The marker that is used as a starting point for this metrics configuration list response. This value is present if it was sent in the request.<br/>IsTruncated:  Indicates whether the returned list of metrics configurations is complete. A value of true indicates that the list is not complete and the NextContinuationToken will be provided for a subsequent request.<br/>        """
        pass

    def list_buckets(self) -> ListBucketsOutput:
        r"""Returns a list of all buckets owned by the authenticated sender of the request.

        :param self:
        :param 
        :return: Owner:  The owner of the buckets listed.:<br/>Buckets:  The list of buckets owned by the requestor.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ID</i> Container for the ID of the owner.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DisplayName</i> Container for the display name of the owner.<br/>        """
        pass

    def list_multipart_uploads(self, Bucket: str, Delimiter: str=None, EncodingType: str=None, KeyMarker: str=None, MaxUploads: int=None, Prefix: str=None, UploadIdMarker: str=None, ExpectedBucketOwner: str=None) -> ListMultipartUploadsOutput:
        r"""This action lists in-progress multipart uploads. An in-progress multipart upload is a multipart upload that has been initiated using the Initiate Multipart Upload request, but has not yet been completed or aborted. This action returns at most 1,000 multipart uploads in the response. 1,000 multipart uploads is the maximum number of uploads a response can include, which is also the default value. You can further limit the number of uploads in a response by specifying the <code>max-uploads</code> parameter in the response. If additional multipart uploads satisfy the list criteria, the response will contain an <code>IsTruncated</code> element with the value true. To list the additional multipart uploads, use the <code>key-marker</code> and <code>upload-id-marker</code> request parameters. In the response, the uploads are sorted by key. If your application has initiated more than one multipart upload using the same object key, then uploads in the response are first sorted by key. Additionally, uploads are sorted in ascending order within each key by the upload initiation time. For more information on multipart uploads, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html">Uploading Objects Using Multipart Upload</a>. For information on permissions required to use the multipart upload API, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html">Multipart Upload and Permissions</a>. The following operations are related to <code>ListMultipartUploads</code>: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html">CompleteMultipartUpload</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html">ListParts</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html">AbortMultipartUpload</a>  </li> </ul>

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>UploadIdMarker:  Together with key-marker, specifies the multipart upload after which listing should begin. If key-marker is not specified, the upload-id-marker parameter is ignored. Otherwise, any multipart uploads for a key equal to the key-marker might be included in the list only if they have an upload ID lexicographically greater than the specified <code>upload-id-marker</code>.<br/>Prefix:  Lists in-progress uploads only for those keys that begin with the specified prefix. You can use prefixes to separate a bucket into different grouping of keys. (You can think of using prefix to make groups in the same way you'd use a folder in a file system.)<br/>MaxUploads:  Sets the maximum number of multipart uploads, from 1 to 1,000, to return in the response body. 1,000 is the maximum number of uploads that can be returned in a response.<br/>KeyMarker:  Together with upload-id-marker, this parameter specifies the multipart upload after which listing should begin. If <code>upload-id-marker</code> is not specified, only the keys lexicographically greater than the specified <code>key-marker</code> will be included in the list. If <code>upload-id-marker</code> is specified, any multipart uploads for a key equal to the <code>key-marker</code> might also be included, provided those multipart uploads have upload IDs lexicographically greater than the specified <code>upload-id-marker</code>.<br/>EncodingType:  Requests Amazon S3 to encode the object keys in the response and specifies the encoding method to use. An object key may contain any Unicode character; however, XML 1.0 parser cannot parse some characters, such as characters with an ASCII value from 0 to 10. For characters that are not supported in XML 1.0, you can add this parameter to request that Amazon S3 encode the keys in the response.<br/>Delimiter:  Character you use to group keys. All keys that contain the same string between the prefix, if specified, and the first occurrence of the delimiter after the prefix are grouped under a single result element, <code>CommonPrefixes</code>. If you don't specify the prefix parameter, then the substring starts at the beginning of the key. The keys that are grouped under <code>CommonPrefixes</code> result element are not returned elsewhere in the response.<br/>Bucket:  The name of the bucket to which the multipart upload was initiated.  When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using access points</a> in the <i>Amazon S3 User Guide</i>. When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com. When using this action using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html">Using S3 on Outposts</a> in the <i>Amazon S3 User Guide</i>.<br/>
        :return: EncodingType:  Encoding type used by Amazon S3 to encode object keys in the response. If you specify <code>encoding-type</code> request parameter, Amazon S3 includes this element in the response, and returns encoded key name values in the following response elements:  <code>Delimiter</code>, <code>KeyMarker</code>, <code>Prefix</code>, <code>NextKeyMarker</code>, <code>Key</code>.<br/>CommonPrefixes:  If you specify a delimiter in the request, then the result returns each distinct key prefix containing the delimiter in a <code>CommonPrefixes</code> element. The distinct key prefixes are returned in the <code>Prefix</code> child element.<br/>Uploads:  Container for elements related to a particular multipart upload. A response can contain zero or more <code>Upload</code> elements.<br/>IsTruncated:  Indicates whether the returned list of multipart uploads is truncated. A value of true indicates that the list was truncated. The list can be truncated if the number of multipart uploads exceeds the limit allowed or specified by max uploads.<br/>MaxUploads:  Maximum number of multipart uploads that could have been included in the response.<br/>NextUploadIdMarker:  When a list is truncated, this element specifies the value that should be used for the <code>upload-id-marker</code> request parameter in a subsequent request.<br/>Delimiter:  Contains the delimiter you specified in the request. If you don't specify a delimiter in your request, this element is absent from the response.<br/>Prefix:  When a prefix is provided in the request, this field contains the specified prefix. The result contains only keys starting with the specified prefix.<br/>NextKeyMarker:  When a list is truncated, this element specifies the value that should be used for the key-marker request parameter in a subsequent request.<br/>UploadIdMarker:  Upload ID after which listing began.<br/>KeyMarker:  The key at or after which the listing began.<br/>Bucket:  The name of the bucket to which the multipart upload was initiated.<br/>        """
        pass

    def list_object_versions(self, Bucket: str, Delimiter: str=None, EncodingType: str=None, KeyMarker: str=None, MaxKeys: int=None, Prefix: str=None, VersionIdMarker: str=None, ExpectedBucketOwner: str=None) -> ListObjectVersionsOutput:
        r"""Returns metadata about all versions of the objects in a bucket. You can also use request parameters as selection criteria to return metadata about a subset of all the object versions. <important>  To use this operation, you must have permissions to perform the <code>s3:ListBucketVersions</code> action. Be aware of the name difference.  </important> <note>  A 200 OK response can contain valid or invalid XML. Make sure to design your application to parse the contents of the response and handle it appropriately. </note> To use this operation, you must have READ access to the bucket. This action is not supported by Amazon S3 on Outposts. The following operations are related to <code>ListObjectVersions</code>: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html">ListObjectsV2</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html">PutObject</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html">DeleteObject</a>  </li> </ul>

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>VersionIdMarker:  Specifies the object version you want to start listing from.<br/>Prefix:  Use this parameter to select only those keys that begin with the specified prefix. You can use prefixes to separate a bucket into different groupings of keys. (You can think of using prefix to make groups in the same way you'd use a folder in a file system.) You can use prefix with delimiter to roll up numerous objects into a single result under CommonPrefixes. <br/>MaxKeys:  Sets the maximum number of keys returned in the response. By default the action returns up to 1,000 key names. The response might contain fewer keys but will never contain more. If additional keys satisfy the search criteria, but were not returned because max-keys was exceeded, the response contains &lt;isTruncated&gt;true&lt;/isTruncated&gt;. To return the additional keys, see key-marker and version-id-marker.<br/>KeyMarker:  Specifies the key to start with when listing objects in a bucket.<br/>EncodingType:  Requests Amazon S3 to encode the object keys in the response and specifies the encoding method to use. An object key may contain any Unicode character; however, XML 1.0 parser cannot parse some characters, such as characters with an ASCII value from 0 to 10. For characters that are not supported in XML 1.0, you can add this parameter to request that Amazon S3 encode the keys in the response.<br/>Delimiter:  A delimiter is a character that you specify to group keys. All keys that contain the same string between the <code>prefix</code> and the first occurrence of the delimiter are grouped under a single result element in CommonPrefixes. These groups are counted as one result against the max-keys limitation. These keys are not returned elsewhere in the response.<br/>Bucket:  The bucket name that contains the objects. <br/>
        :return: EncodingType:   Encoding type used by Amazon S3 to encode object key names in the XML response. If you specify encoding-type request parameter, Amazon S3 includes this element in the response, and returns encoded key name values in the following response elements:  <code>KeyMarker, NextKeyMarker, Prefix, Key</code>, and <code>Delimiter</code>.<br/>CommonPrefixes:  All of the keys rolled up into a common prefix count as a single return when calculating the number of returns.<br/>MaxKeys:  Specifies the maximum number of objects to return.<br/>Delimiter:  The delimiter grouping the included keys. A delimiter is a character that you specify to group keys. All keys that contain the same string between the prefix and the first occurrence of the delimiter are grouped under a single result element in <code>CommonPrefixes</code>. These groups are counted as one result against the max-keys limitation. These keys are not returned elsewhere in the response.<br/>Prefix:  Selects objects that start with the value supplied by this parameter.<br/>Name:  The bucket name.<br/>DeleteMarkers:  Container for an object that is a delete marker.<br/>Versions:  Container for version information.<br/>NextVersionIdMarker:  When the number of responses exceeds the value of <code>MaxKeys</code>, <code>NextVersionIdMarker</code> specifies the first object version not returned that satisfies the search criteria. Use this value for the version-id-marker request parameter in a subsequent request.<br/>NextKeyMarker:  When the number of responses exceeds the value of <code>MaxKeys</code>, <code>NextKeyMarker</code> specifies the first key not returned that satisfies the search criteria. Use this value for the key-marker request parameter in a subsequent request.<br/>VersionIdMarker:  Marks the last version of the key returned in a truncated response.<br/>KeyMarker:  Marks the last key returned in a truncated response.<br/>IsTruncated:  A flag that indicates whether Amazon S3 returned all of the results that satisfied the search criteria. If your results were truncated, you can make a follow-up paginated request using the NextKeyMarker and NextVersionIdMarker response parameters as a starting place in another request to return the rest of the results.<br/>        """
        pass

    def list_objects(self, Bucket: str, Delimiter: str=None, EncodingType: str=None, Marker: str=None, MaxKeys: int=None, Prefix: str=None, RequestPayer: str=None, ExpectedBucketOwner: str=None) -> ListObjectsOutput:
        r"""Returns some or all (up to 1,000) of the objects in a bucket. You can use the request parameters as selection criteria to return a subset of the objects in a bucket. A 200 OK response can contain valid or invalid XML. Be sure to design your application to parse the contents of the response and handle it appropriately. <important> This action has been revised. We recommend that you use the newer version, <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html">ListObjectsV2</a>, when developing applications. For backward compatibility, Amazon S3 continues to support <code>ListObjects</code>. </important> The following operations are related to <code>ListObjects</code>: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html">ListObjectsV2</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html">PutObject</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html">ListBuckets</a>  </li> </ul>

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>RequestPayer:  Confirms that the requester knows that she or he will be charged for the list objects request. Bucket owners need not specify this parameter in their requests.<br/>Prefix:  Limits the response to keys that begin with the specified prefix.<br/>MaxKeys:  Sets the maximum number of keys returned in the response. By default the action returns up to 1,000 key names. The response might contain fewer keys but will never contain more. <br/>Marker:  Specifies the key to start with when listing objects in a bucket.<br/>EncodingType:  Requests Amazon S3 to encode the object keys in the response and specifies the encoding method to use. An object key may contain any Unicode character; however, XML 1.0 parser cannot parse some characters, such as characters with an ASCII value from 0 to 10. For characters that are not supported in XML 1.0, you can add this parameter to request that Amazon S3 encode the keys in the response.<br/>Delimiter:  A delimiter is a character you use to group keys.<br/>Bucket:  The name of the bucket containing the objects. When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using access points</a> in the <i>Amazon S3 User Guide</i>. When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com. When using this action using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html">Using S3 on Outposts</a> in the <i>Amazon S3 User Guide</i>.<br/>
        :return: EncodingType:  Encoding type used by Amazon S3 to encode object keys in the response.<br/>CommonPrefixes:  All of the keys (up to 1,000) rolled up in a common prefix count as a single return when calculating the number of returns.  A response can contain CommonPrefixes only if you specify a delimiter. CommonPrefixes contains all (if there are any) keys between Prefix and the next occurrence of the string specified by the delimiter.  CommonPrefixes lists keys that act like subdirectories in the directory specified by Prefix. For example, if the prefix is notes/ and the delimiter is a slash (/) as in notes/summer/july, the common prefix is notes/summer/. All of the keys that roll up into a common prefix count as a single return when calculating the number of returns.<br/>MaxKeys:  The maximum number of keys returned in the response body.<br/>Delimiter:  Causes keys that contain the same string between the prefix and the first occurrence of the delimiter to be rolled up into a single result element in the <code>CommonPrefixes</code> collection. These rolled-up keys are not returned elsewhere in the response. Each rolled-up result counts as only one return against the <code>MaxKeys</code> value.<br/>Prefix:  Keys that begin with the indicated prefix.<br/>Name:  The bucket name.<br/>Contents:  Metadata about each object returned.<br/>NextMarker:  When response is truncated (the IsTruncated element value in the response is true), you can use the key name in this field as marker in the subsequent request to get next set of objects. Amazon S3 lists objects in alphabetical order Note: This element is returned only if you have delimiter request parameter specified. If response does not include the NextMarker and it is truncated, you can use the value of the last Key in the response as the marker in the subsequent request to get the next set of object keys.<br/>Marker:  Indicates where in the bucket listing begins. Marker is included in the response if it was sent with the request.<br/>IsTruncated:  A flag that indicates whether Amazon S3 returned all of the results that satisfied the search criteria.<br/>        """
        pass

    def list_objects_v2(self, Bucket: str, Delimiter: str=None, EncodingType: str=None, MaxKeys: int=None, Prefix: str=None, ContinuationToken: str=None, FetchOwner: FetchOwner=None, StartAfter: str=None, RequestPayer: str=None, ExpectedBucketOwner: str=None) -> ListObjectsV2Output:
        r"""Returns some or all (up to 1,000) of the objects in a bucket with each request. You can use the request parameters as selection criteria to return a subset of the objects in a bucket. A <code>200 OK</code> response can contain valid or invalid XML. Make sure to design your application to parse the contents of the response and handle it appropriately. Objects are returned sorted in an ascending order of the respective key names in the list. For more information about listing objects, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/ListingKeysUsingAPIs.html">Listing object keys programmatically</a>  To use this operation, you must have READ access to the bucket. To use this action in an AWS Identity and Access Management (IAM) policy, you must have permissions to perform the <code>s3:ListBucket</code> action. The bucket owner has this permission by default and can grant this permission to others. For more information about permissions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions Related to Bucket Subresource Operations</a> and <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing Access Permissions to Your Amazon S3 Resources</a>. <important> This section describes the latest revision of this action. We recommend that you use this revised API for application development. For backward compatibility, Amazon S3 continues to support the prior version of this API, <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjects.html">ListObjects</a>. </important> To get a list of your buckets, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html">ListBuckets</a>. The following operations are related to <code>ListObjectsV2</code>: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html">PutObject</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>  </li> </ul>

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>RequestPayer:  Confirms that the requester knows that she or he will be charged for the list objects request in V2 style. Bucket owners need not specify this parameter in their requests.<br/>StartAfter:  StartAfter is where you want Amazon S3 to start listing from. Amazon S3 starts listing after this specified key. StartAfter can be any key in the bucket.<br/>FetchOwner:  The owner field is not present in listV2 by default, if you want to return owner field with each key in the result then set the fetch owner field to true.<br/>ContinuationToken:  ContinuationToken indicates Amazon S3 that the list is being continued on this bucket with a token. ContinuationToken is obfuscated and is not a real key.<br/>Prefix:  Limits the response to keys that begin with the specified prefix.<br/>MaxKeys:  Sets the maximum number of keys returned in the response. By default the action returns up to 1,000 key names. The response might contain fewer keys but will never contain more.<br/>EncodingType:  Encoding type used by Amazon S3 to encode object keys in the response.<br/>Delimiter:  A delimiter is a character you use to group keys.<br/>Bucket:  Bucket name to list.  When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using access points</a> in the <i>Amazon S3 User Guide</i>. When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com. When using this action using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html">Using S3 on Outposts</a> in the <i>Amazon S3 User Guide</i>.<br/>
        :return: StartAfter:  If StartAfter was sent with the request, it is included in the response.<br/>NextContinuationToken:   <code>NextContinuationToken</code> is sent when <code>isTruncated</code> is true, which means there are more keys in the bucket that can be listed. The next list requests to Amazon S3 can be continued with this <code>NextContinuationToken</code>. <code>NextContinuationToken</code> is obfuscated and is not a real key<br/>ContinuationToken:   If ContinuationToken was sent with the request, it is included in the response.<br/>KeyCount:  KeyCount is the number of keys returned with this request. KeyCount will always be less than or equals to MaxKeys field. Say you ask for 50 keys, your result will include less than equals 50 keys <br/>EncodingType:  Encoding type used by Amazon S3 to encode object key names in the XML response. If you specify the encoding-type request parameter, Amazon S3 includes this element in the response, and returns encoded key name values in the following response elements:  <code>Delimiter, Prefix, Key,</code> and <code>StartAfter</code>.<br/>CommonPrefixes:  All of the keys (up to 1,000) rolled up into a common prefix count as a single return when calculating the number of returns. A response can contain <code>CommonPrefixes</code> only if you specify a delimiter.  <code>CommonPrefixes</code> contains all (if there are any) keys between <code>Prefix</code> and the next occurrence of the string specified by a delimiter.  <code>CommonPrefixes</code> lists keys that act like subdirectories in the directory specified by <code>Prefix</code>. For example, if the prefix is <code>notes/</code> and the delimiter is a slash (<code>/</code>) as in <code>notes/summer/july</code>, the common prefix is <code>notes/summer/</code>. All of the keys that roll up into a common prefix count as a single return when calculating the number of returns. <br/>MaxKeys:  Sets the maximum number of keys returned in the response. By default the action returns up to 1,000 key names. The response might contain fewer keys but will never contain more.<br/>Delimiter:  Causes keys that contain the same string between the prefix and the first occurrence of the delimiter to be rolled up into a single result element in the CommonPrefixes collection. These rolled-up keys are not returned elsewhere in the response. Each rolled-up result counts as only one return against the <code>MaxKeys</code> value.<br/>Prefix:   Keys that begin with the indicated prefix.<br/>Name:  The bucket name. When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using access points</a> in the <i>Amazon S3 User Guide</i>. When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com. When using this action using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html">Using S3 on Outposts</a> in the <i>Amazon S3 User Guide</i>.<br/>Contents:  Metadata about each object returned.<br/>IsTruncated:  Set to false if all of the results were returned. Set to true if more keys are available to return. If the number of results exceeds that specified by MaxKeys, all of the results might not be returned.<br/>        """
        pass

    def list_parts(self, UploadId: str, Key: str, Bucket: str, MaxParts: int=None, PartNumberMarker: int=None, RequestPayer: str=None, ExpectedBucketOwner: str=None) -> ListPartsOutput:
        r"""Lists the parts that have been uploaded for a specific multipart upload. This operation must include the upload ID, which you obtain by sending the initiate multipart upload request (see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a>). This request returns a maximum of 1,000 uploaded parts. The default number of parts returned is 1,000 parts. You can restrict the number of parts returned by specifying the <code>max-parts</code> request parameter. If your multipart upload consists of more than 1,000 parts, the response returns an <code>IsTruncated</code> field with the value of true, and a <code>NextPartNumberMarker</code> element. In subsequent <code>ListParts</code> requests you can include the part-number-marker query string parameter and set its value to the <code>NextPartNumberMarker</code> field value from the previous response. For more information on multipart uploads, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html">Uploading Objects Using Multipart Upload</a>. For information on permissions required to use the multipart upload API, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html">Multipart Upload and Permissions</a>. The following operations are related to <code>ListParts</code>: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html">CompleteMultipartUpload</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html">AbortMultipartUpload</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html">ListMultipartUploads</a>  </li> </ul>

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>RequestPayer:  Confirms that the requester knows that they will be charged for the request. Bucket owners need not specify this parameter in their requests. For information about downloading objects from requester pays buckets, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html">Downloading Objects in Requestor Pays Buckets</a> in the <i>Amazon S3 User Guide</i>.<br/>UploadId:  Upload ID identifying the multipart upload whose parts are being listed.<br/>PartNumberMarker:  Specifies the part after which listing should begin. Only parts with higher part numbers will be listed.<br/>MaxParts:  Sets the maximum number of parts to return.<br/>Key:  Object key for which the multipart upload was initiated.<br/>Bucket:  The name of the bucket to which the parts are being uploaded.  When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using access points</a> in the <i>Amazon S3 User Guide</i>. When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com. When using this action using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html">Using S3 on Outposts</a> in the <i>Amazon S3 User Guide</i>.<br/>
        :return: RequestCharged:  If present, indicates that the requester was successfully charged for the request.<br/>StorageClass:  Class of storage (STANDARD or REDUCED_REDUNDANCY) used to store the uploaded object.<br/>Owner:   Container element that identifies the object owner, after the object is created. If multipart upload is initiated by an IAM user, this element provides the parent account ID and display name.:<br/>Initiator:  Container element that identifies who initiated the multipart upload. If the initiator is an AWS account, this element provides the same information as the <code>Owner</code> element. If the initiator is an IAM User, this element provides the user ARN and display name.:<br/>Parts:   Container for elements related to a particular part. A response can contain zero or more <code>Part</code> elements.<br/>IsTruncated:   Indicates whether the returned list of parts is truncated. A true value indicates that the list was truncated. A list can be truncated if the number of parts exceeds the limit returned in the MaxParts element.<br/>MaxParts:  Maximum number of parts that were allowed in the response.<br/>NextPartNumberMarker:  When a list is truncated, this element specifies the last part in the list, as well as the value to use for the part-number-marker request parameter in a subsequent request.<br/>PartNumberMarker:  When a list is truncated, this element specifies the last part in the list, as well as the value to use for the part-number-marker request parameter in a subsequent request.<br/>UploadId:  Upload ID identifying the multipart upload whose parts are being listed.<br/>Key:  Object key for which the multipart upload was initiated.<br/>Bucket:  The name of the bucket to which the multipart upload was initiated.<br/>AbortRuleId:  This header is returned along with the <code>x-amz-abort-date</code> header. It identifies applicable lifecycle configuration rule that defines the action to abort incomplete multipart uploads.<br/>AbortDate:  If the bucket has a lifecycle rule configured with an action to abort incomplete multipart uploads and the prefix in the lifecycle rule matches the object name in the request, then the response includes this header indicating when the initiated multipart upload will become eligible for abort operation. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config">Aborting Incomplete Multipart Uploads Using a Bucket Lifecycle Policy</a>. The response will also include the <code>x-amz-abort-rule-id</code> header that will provide the ID of the lifecycle configuration rule that defines this action.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DisplayName</i> Name of the Principal.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ID</i> If the principal is an AWS account, it provides the Canonical User ID. If the principal is an IAM User, it provides a user ARN value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ID</i> Container for the ID of the owner.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DisplayName</i> Container for the display name of the owner.<br/>        """
        pass

    def put_bucket_accelerate_configuration(self, AccelerateConfiguration: AccelerateConfiguration, Bucket: str, ExpectedBucketOwner: str=None):
        r"""Sets the accelerate configuration of an existing bucket. Amazon S3 Transfer Acceleration is a bucket-level feature that enables you to perform faster data transfers to Amazon S3.  To use this operation, you must have permission to perform the s3:PutAccelerateConfiguration action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions Related to Bucket Subresource Operations</a> and <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing Access Permissions to Your Amazon S3 Resources</a>.  The Transfer Acceleration state of a bucket can be set to one of the following two values: <ul> <li>  Enabled – Enables accelerated data transfers to the bucket. </li> <li>  Suspended – Disables accelerated data transfers to the bucket. </li> </ul> The <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAccelerateConfiguration.html">GetBucketAccelerateConfiguration</a> action returns the transfer acceleration state of a bucket. After setting the Transfer Acceleration state of a bucket to Enabled, it might take up to thirty minutes before the data transfer rates to the bucket increase.  The name of the bucket used for Transfer Acceleration must be DNS-compliant and must not contain periods (".").  For more information about transfer acceleration, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html">Transfer Acceleration</a>. The following operations are related to <code>PutBucketAccelerateConfiguration</code>: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAccelerateConfiguration.html">GetBucketAccelerateConfiguration</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>  </li> </ul>

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>AccelerateConfiguration:  Container for setting the transfer acceleration state.:<br/>Bucket:  The name of the bucket for which the accelerate configuration is set.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Specifies the transfer acceleration status of the bucket.<br/>
        :return:         """
        pass

    def put_bucket_acl(self, Bucket: str, ACL: str=None, AccessControlPolicy: AccessControlPolicy=None, ContentMD5: str=None, GrantFullControl: str=None, GrantRead: str=None, GrantReadACP: str=None, GrantWrite: str=None, GrantWriteACP: str=None, ExpectedBucketOwner: str=None):
        r"""Sets the permissions on an existing bucket using access control lists (ACL). For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html">Using ACLs</a>. To set the ACL of a bucket, you must have <code>WRITE_ACP</code> permission. You can use one of the following two ways to set a bucket's permissions: <ul> <li> Specify the ACL in the request body </li> <li> Specify permissions using request headers </li> </ul> <note> You cannot specify access permission using both the body and the request headers. </note> Depending on your application needs, you may choose to set the ACL on a bucket using either the request body or the headers. For example, if you have an existing application that updates a bucket ACL using the request body, then you can continue to use that approach.  <b>Access Permissions</b>  You can set access permissions using one of the following methods: <ul> <li> Specify a canned ACL with the <code>x-amz-acl</code> request header. Amazon S3 supports a set of predefined ACLs, known as <i>canned ACLs</i>. Each canned ACL has a predefined set of grantees and permissions. Specify the canned ACL name as the value of <code>x-amz-acl</code>. If you use this header, you cannot use other access control-specific headers in your request. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL">Canned ACL</a>. </li> <li> Specify access permissions explicitly with the <code>x-amz-grant-read</code>, <code>x-amz-grant-read-acp</code>, <code>x-amz-grant-write-acp</code>, and <code>x-amz-grant-full-control</code> headers. When using these headers, you specify explicit access permissions and grantees (AWS accounts or Amazon S3 groups) who will receive the permission. If you use these ACL-specific headers, you cannot use the <code>x-amz-acl</code> header to set a canned ACL. These parameters map to the set of permissions that Amazon S3 supports in an ACL. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html">Access Control List (ACL) Overview</a>. You specify each grantee as a type=value pair, where the type is one of the following: <ul> <li>  <code>id</code> – if the value specified is the canonical user ID of an AWS account </li> <li>  <code>uri</code> – if you are granting permissions to a predefined group </li> <li>  <code>emailAddress</code> – if the value specified is the email address of an AWS account <note> Using email addresses to specify a grantee is only supported in the following AWS Regions:  <ul> <li> US East (N. Virginia) </li> <li> US West (N. California) </li> <li>  US West (Oregon) </li> <li>  Asia Pacific (Singapore) </li> <li> Asia Pacific (Sydney) </li> <li> Asia Pacific (Tokyo) </li> <li> Europe (Ireland) </li> <li> South America (São Paulo) </li> </ul> For a list of all the Amazon S3 supported Regions and endpoints, see <a href="https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Regions and Endpoints</a> in the AWS General Reference. </note> </li> </ul> For example, the following <code>x-amz-grant-write</code> header grants create, overwrite, and delete objects permission to LogDelivery group predefined by Amazon S3 and two AWS accounts identified by their email addresses.  <code>x-amz-grant-write: uri="http://acs.amazonaws.com/groups/s3/LogDelivery", id="111122223333", id="555566667777" </code>  </li> </ul> You can use either a canned ACL or specify access permissions explicitly. You cannot do both.  <b>Grantee Values</b>  You can specify the person (grantee) to whom you're assigning access rights (using request elements) in the following ways: <ul> <li> By the person's ID:  <code>&lt;Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="CanonicalUser"&gt;&lt;ID&gt;&lt;&gt;ID&lt;&gt;&lt;/ID&gt;&lt;DisplayName&gt;&lt;&gt;GranteesEmail&lt;&gt;&lt;/DisplayName&gt; &lt;/Grantee&gt;</code>  DisplayName is optional and ignored in the request </li> <li> By URI:  <code>&lt;Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="Group"&gt;&lt;URI&gt;&lt;&gt;http://acs.amazonaws.com/groups/global/AuthenticatedUsers&lt;&gt;&lt;/URI&gt;&lt;/Grantee&gt;</code>  </li> <li> By Email address:  <code>&lt;Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="AmazonCustomerByEmail"&gt;&lt;EmailAddress&gt;&lt;&gt;Grantees@email.com&lt;&gt;&lt;/EmailAddress&gt;lt;/Grantee&gt;</code>  The grantee is resolved to the CanonicalUser and, in a response to a GET Object acl request, appears as the CanonicalUser.  <note> Using email addresses to specify a grantee is only supported in the following AWS Regions:  <ul> <li> US East (N. Virginia) </li> <li> US West (N. California) </li> <li>  US West (Oregon) </li> <li>  Asia Pacific (Singapore) </li> <li> Asia Pacific (Sydney) </li> <li> Asia Pacific (Tokyo) </li> <li> Europe (Ireland) </li> <li> South America (São Paulo) </li> </ul> For a list of all the Amazon S3 supported Regions and endpoints, see <a href="https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Regions and Endpoints</a> in the AWS General Reference. </note> </li> </ul> <p class="title"> <b>Related Resources</b>  <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html">DeleteBucket</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAcl.html">GetObjectAcl</a>  </li> </ul>

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>GrantWriteACP:  Allows grantee to write the ACL for the applicable bucket.<br/>GrantWrite:  Allows grantee to create new objects in the bucket. For the bucket and object owners of existing objects, also allows deletions and overwrites of those objects.<br/>GrantReadACP:  Allows grantee to read the bucket ACL.<br/>GrantRead:  Allows grantee to list the objects in the bucket.<br/>GrantFullControl:  Allows grantee the read, write, read ACP, and write ACP permissions on the bucket.<br/>ContentMD5:  The base64-encoded 128-bit MD5 digest of the data. This header must be used as a message integrity check to verify that the request body was not corrupted in transit. For more information, go to <a href="http://www.ietf.org/rfc/rfc1864.txt">RFC 1864.</a>  For requests made using the AWS Command Line Interface (CLI) or AWS SDKs, this field is calculated automatically.<br/>Bucket:  The bucket to which to apply the ACL.<br/>AccessControlPolicy:  Contains the elements that set the ACL permissions for an object per grantee.:<br/>ACL:  The canned ACL to apply to the bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Owner</i> Container for the bucket owner's display name and ID.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Owner</b>: Container for the bucket owner's display name and ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Grants</i> A list of grants.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ID</i> Container for the ID of the owner.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DisplayName</i> Container for the display name of the owner.<br/>
        :return:         """
        pass

    def put_bucket_analytics_configuration(self, AnalyticsConfiguration: AnalyticsConfiguration, Id: str, Bucket: str, ExpectedBucketOwner: str=None):
        r"""Sets an analytics configuration for the bucket (specified by the analytics configuration ID). You can have up to 1,000 analytics configurations per bucket. You can choose to have storage class analysis export analysis reports sent to a comma-separated values (CSV) flat file. See the <code>DataExport</code> request element. Reports are updated daily and are based on the object filters that you configure. When selecting data export, you specify a destination bucket and an optional destination prefix where the file is written. You can export the data to a destination bucket in a different account. However, the destination bucket must be in the same Region as the bucket that you are making the PUT analytics configuration to. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/analytics-storage-class.html">Amazon S3 Analytics – Storage Class Analysis</a>.  <important> You must create a bucket policy on the destination bucket where the exported file is written to grant permissions to Amazon S3 to write objects to the bucket. For an example policy, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html#example-bucket-policies-use-case-9">Granting Permissions for Amazon S3 Inventory and Storage Class Analysis</a>. </important> To use this operation, you must have permissions to perform the <code>s3:PutAnalyticsConfiguration</code> action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions Related to Bucket Subresource Operations</a> and <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing Access Permissions to Your Amazon S3 Resources</a>. <p class="title"> <b>Special Errors</b>  <ul> <li> <ul> <li>  <i>HTTP Error: HTTP 400 Bad Request</i>  </li> <li>  <i>Code: InvalidArgument</i>  </li> <li>  <i>Cause: Invalid argument.</i>  </li> </ul> </li> <li> <ul> <li>  <i>HTTP Error: HTTP 400 Bad Request</i>  </li> <li>  <i>Code: TooManyConfigurations</i>  </li> <li>  <i>Cause: You are attempting to create a new configuration but have already reached the 1,000-configuration limit.</i>  </li> </ul> </li> <li> <ul> <li>  <i>HTTP Error: HTTP 403 Forbidden</i>  </li> <li>  <i>Code: AccessDenied</i>  </li> <li>  <i>Cause: You are not the owner of the specified bucket, or you do not have the s3:PutAnalyticsConfiguration bucket permission to set the configuration on the bucket.</i>  </li> </ul> </li> </ul> <p class="title"> <b>Related Resources</b>  <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAnalyticsConfiguration.html">GetBucketAnalyticsConfiguration</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketAnalyticsConfiguration.html">DeleteBucketAnalyticsConfiguration</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketAnalyticsConfigurations.html">ListBucketAnalyticsConfigurations</a>  </li> </ul>

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>AnalyticsConfiguration:  The configuration and any analyses for the analytics filter.:<br/>Id:  The ID that identifies the analytics configuration.<br/>Bucket:  The name of the bucket to which an analytics configuration is stored.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageClassAnalysis</i>  Contains data related to access patterns to be collected and made available to analyze the tradeoffs between different storage classes. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StorageClassAnalysis</b>:  Contains data related to access patterns to be collected and made available to analyze the tradeoffs between different storage classes. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Filter</i> The filter used to describe a set of objects for analyses. A filter must have exactly one prefix, one tag, or one conjunction (AnalyticsAndOperator). If no filter is provided, all objects will be considered in any analysis.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Filter</b>: The filter used to describe a set of objects for analyses. A filter must have exactly one prefix, one tag, or one conjunction (AnalyticsAndOperator). If no filter is provided, all objects will be considered in any analysis.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID that identifies the analytics configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Prefix</i> The prefix to use when evaluating an analytics filter.<br/>The tag to use when evaluating an analytics filter.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Tag</b>: The tag to use when evaluating an analytics filter.Specifies how data related to the storage class analysis for an Amazon S3 bucket should be exported.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DataExport</b>: Specifies how data related to the storage class analysis for an Amazon S3 bucket should be exported.
        :return:         """
        pass

    def put_bucket_cors(self, CORSConfiguration: CORSConfiguration, Bucket: str, ContentMD5: str=None, ExpectedBucketOwner: str=None):
        r"""Sets the <code>cors</code> configuration for your bucket. If the configuration exists, Amazon S3 replaces it. To use this operation, you must be allowed to perform the <code>s3:PutBucketCORS</code> action. By default, the bucket owner has this permission and can grant it to others. You set this configuration on a bucket so that the bucket can service cross-origin requests. For example, you might want to enable a request whose origin is <code>http://www.example.com</code> to access your Amazon S3 bucket at <code>my.example.bucket.com</code> by using the browser's <code>XMLHttpRequest</code> capability. To enable cross-origin resource sharing (CORS) on a bucket, you add the <code>cors</code> subresource to the bucket. The <code>cors</code> subresource is an XML document in which you configure rules that identify origins and the HTTP methods that can be executed on your bucket. The document is limited to 64 KB in size.  When Amazon S3 receives a cross-origin request (or a pre-flight OPTIONS request) against a bucket, it evaluates the <code>cors</code> configuration on the bucket and uses the first <code>CORSRule</code> rule that matches the incoming browser request to enable a cross-origin request. For a rule to match, the following conditions must be met: <ul> <li> The request's <code>Origin</code> header must match <code>AllowedOrigin</code> elements. </li> <li> The request method (for example, GET, PUT, HEAD, and so on) or the <code>Access-Control-Request-Method</code> header in case of a pre-flight <code>OPTIONS</code> request must be one of the <code>AllowedMethod</code> elements.  </li> <li> Every header specified in the <code>Access-Control-Request-Headers</code> request header of a pre-flight request must match an <code>AllowedHeader</code> element.  </li> </ul>  For more information about CORS, go to <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html">Enabling Cross-Origin Resource Sharing</a> in the <i>Amazon S3 User Guide</i>. <p class="title"> <b>Related Resources</b>  <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketCors.html">GetBucketCors</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketCors.html">DeleteBucketCors</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/RESTOPTIONSobject.html">RESTOPTIONSobject</a>  </li> </ul>

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>ContentMD5:  The base64-encoded 128-bit MD5 digest of the data. This header must be used as a message integrity check to verify that the request body was not corrupted in transit. For more information, go to <a href="http://www.ietf.org/rfc/rfc1864.txt">RFC 1864.</a>  For requests made using the AWS Command Line Interface (CLI) or AWS SDKs, this field is calculated automatically.<br/>CORSConfiguration:  Describes the cross-origin access configuration for objects in an Amazon S3 bucket. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html">Enabling Cross-Origin Resource Sharing</a> in the <i>Amazon S3 User Guide</i>.:<br/>Bucket:  Specifies the bucket impacted by the <code>cors</code>configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CORSRules</i> A set of origins and methods (cross-origin access that you want to allow). You can add up to 100 rules to the configuration.<br/>
        :return:         """
        pass

    def put_bucket_encryption(self, ServerSideEncryptionConfiguration: ServerSideEncryptionConfiguration, Bucket: str, ContentMD5: str=None, ExpectedBucketOwner: str=None):
        r"""This action uses the <code>encryption</code> subresource to configure default encryption and Amazon S3 Bucket Key for an existing bucket. Default encryption for a bucket can use server-side encryption with Amazon S3-managed keys (SSE-S3) or AWS KMS customer master keys (SSE-KMS). If you specify default encryption using SSE-KMS, you can also configure Amazon S3 Bucket Key. For information about default encryption, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html">Amazon S3 default bucket encryption</a> in the <i>Amazon S3 User Guide</i>. For more information about S3 Bucket Keys, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html">Amazon S3 Bucket Keys</a> in the <i>Amazon S3 User Guide</i>. <important> This action requires AWS Signature Version 4. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html"> Authenticating Requests (AWS Signature Version 4)</a>.  </important> To use this operation, you must have permissions to perform the <code>s3:PutEncryptionConfiguration</code> action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions Related to Bucket Subresource Operations</a> and <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing Access Permissions to Your Amazon S3 Resources</a> in the Amazon S3 User Guide.  <p class="title"> <b>Related Resources</b>  <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketEncryption.html">GetBucketEncryption</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketEncryption.html">DeleteBucketEncryption</a>  </li> </ul>

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>ServerSideEncryptionConfiguration:  Specifies the default server-side-encryption configuration.:<br/>ContentMD5:  The base64-encoded 128-bit MD5 digest of the server-side encryption configuration. For requests made using the AWS Command Line Interface (CLI) or AWS SDKs, this field is calculated automatically.<br/>Bucket:  Specifies default encryption for a bucket using server-side encryption with Amazon S3-managed keys (SSE-S3) or customer master keys stored in AWS KMS (SSE-KMS). For information about the Amazon S3 default encryption feature, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html">Amazon S3 Default Bucket Encryption</a> in the <i>Amazon S3 User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Rules</i> Container for information about a particular server-side encryption configuration rule.<br/>
        :return:         """
        pass

    def put_bucket_intelligent_tiering_configuration(self, IntelligentTieringConfiguration: IntelligentTieringConfiguration, Id: str, Bucket: str):
        r"""Puts a S3 Intelligent-Tiering configuration to the specified bucket. You can have up to 1,000 S3 Intelligent-Tiering configurations per bucket. The S3 Intelligent-Tiering storage class is designed to optimize storage costs by automatically moving data to the most cost-effective storage access tier, without additional operational overhead. S3 Intelligent-Tiering delivers automatic cost savings by moving data between access tiers, when access patterns change. The S3 Intelligent-Tiering storage class is suitable for objects larger than 128 KB that you plan to store for at least 30 days. If the size of an object is less than 128 KB, it is not eligible for auto-tiering. Smaller objects can be stored, but they are always charged at the frequent access tier rates in the S3 Intelligent-Tiering storage class.  If you delete an object before the end of the 30-day minimum storage duration period, you are charged for 30 days. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access">Storage class for automatically optimizing frequently and infrequently accessed objects</a>. Operations related to <code>PutBucketIntelligentTieringConfiguration</code> include:  <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketIntelligentTieringConfiguration.html">DeleteBucketIntelligentTieringConfiguration</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketIntelligentTieringConfiguration.html">GetBucketIntelligentTieringConfiguration</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketIntelligentTieringConfigurations.html">ListBucketIntelligentTieringConfigurations</a>  </li> </ul> <note> You only need S3 Intelligent-Tiering enabled on a bucket if you want to automatically move objects stored in the S3 Intelligent-Tiering storage class to the Archive Access or Deep Archive Access tier. </note> <p class="title"> <b>Special Errors</b>  <ul> <li> <p class="title"> <b>HTTP 400 Bad Request Error</b>  <ul> <li>  <i>Code:</i> InvalidArgument </li> <li>  <i>Cause:</i> Invalid Argument </li> </ul> </li> <li> <p class="title"> <b>HTTP 400 Bad Request Error</b>  <ul> <li>  <i>Code:</i> TooManyConfigurations </li> <li>  <i>Cause:</i> You are attempting to create a new configuration but have already reached the 1,000-configuration limit.  </li> </ul> </li> <li> <p class="title"> <b>HTTP 403 Forbidden Error</b>  <ul> <li>  <i>Code:</i> AccessDenied </li> <li>  <i>Cause:</i> You are not the owner of the specified bucket, or you do not have the <code>s3:PutIntelligentTieringConfiguration</code> bucket permission to set the configuration on the bucket.  </li> </ul> </li> </ul>

        :param self:
        :param IntelligentTieringConfiguration:  Container for S3 Intelligent-Tiering configuration.:<br/>Id:  The ID used to identify the S3 Intelligent-Tiering configuration.<br/>Bucket:  The name of the Amazon S3 bucket whose configuration you want to modify or retrieve.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tierings</i> Specifies the S3 Intelligent-Tiering storage class tier of the configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Specifies the status of the configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Filter</i> Specifies a bucket filter. The configuration only includes objects that meet the filter's criteria.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Filter</b>: Specifies a bucket filter. The configuration only includes objects that meet the filter's criteria.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID used to identify the S3 Intelligent-Tiering configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Prefix</i> An object key name prefix that identifies the subset of objects to which the rule applies. <important> Replacement must be made for object keys containing special characters (such as carriage returns) when using XML requests. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints"> XML related object key constraints</a>. </important><br/>A container of a key value name pair.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Tag</b>: A container of a key value name pair.
        :return:         """
        pass

    def put_bucket_inventory_configuration(self, InventoryConfiguration: InventoryConfiguration, Id: str, Bucket: str, ExpectedBucketOwner: str=None):
        r"""This implementation of the <code>PUT</code> action adds an inventory configuration (identified by the inventory ID) to the bucket. You can have up to 1,000 inventory configurations per bucket.  Amazon S3 inventory generates inventories of the objects in the bucket on a daily or weekly basis, and the results are published to a flat file. The bucket that is inventoried is called the <i>source</i> bucket, and the bucket where the inventory flat file is stored is called the <i>destination</i> bucket. The <i>destination</i> bucket must be in the same AWS Region as the <i>source</i> bucket.  When you configure an inventory for a <i>source</i> bucket, you specify the <i>destination</i> bucket where you want the inventory to be stored, and whether to generate the inventory daily or weekly. You can also configure what object metadata to include and whether to inventory all object versions or only current versions. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-inventory.html">Amazon S3 Inventory</a> in the Amazon S3 User Guide. <important> You must create a bucket policy on the <i>destination</i> bucket to grant permissions to Amazon S3 to write objects to the bucket in the defined location. For an example policy, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html#example-bucket-policies-use-case-9"> Granting Permissions for Amazon S3 Inventory and Storage Class Analysis</a>. </important> To use this operation, you must have permissions to perform the <code>s3:PutInventoryConfiguration</code> action. The bucket owner has this permission by default and can grant this permission to others. For more information about permissions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions Related to Bucket Subresource Operations</a> and <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing Access Permissions to Your Amazon S3 Resources</a> in the Amazon S3 User Guide. <p class="title"> <b>Special Errors</b>  <ul> <li> <p class="title"> <b>HTTP 400 Bad Request Error</b>  <ul> <li>  <i>Code:</i> InvalidArgument </li> <li>  <i>Cause:</i> Invalid Argument </li> </ul> </li> <li> <p class="title"> <b>HTTP 400 Bad Request Error</b>  <ul> <li>  <i>Code:</i> TooManyConfigurations </li> <li>  <i>Cause:</i> You are attempting to create a new configuration but have already reached the 1,000-configuration limit.  </li> </ul> </li> <li> <p class="title"> <b>HTTP 403 Forbidden Error</b>  <ul> <li>  <i>Code:</i> AccessDenied </li> <li>  <i>Cause:</i> You are not the owner of the specified bucket, or you do not have the <code>s3:PutInventoryConfiguration</code> bucket permission to set the configuration on the bucket.  </li> </ul> </li> </ul> <p class="title"> <b>Related Resources</b>  <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketInventoryConfiguration.html">GetBucketInventoryConfiguration</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketInventoryConfiguration.html">DeleteBucketInventoryConfiguration</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketInventoryConfigurations.html">ListBucketInventoryConfigurations</a>  </li> </ul>

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>InventoryConfiguration:  Specifies the inventory configuration.:<br/>Id:  The ID used to identify the inventory configuration.<br/>Bucket:  The name of the bucket where the inventory configuration will be stored.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Schedule</i> Specifies the schedule for generating inventory results.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Schedule</b>: Specifies the schedule for generating inventory results.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OptionalFields</i> Contains the optional fields that are included in the inventory results.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludedObjectVersions</i> Object versions to include in the inventory list. If set to <code>All</code>, the list includes all the object versions, which adds the version-related fields <code>VersionId</code>, <code>IsLatest</code>, and <code>DeleteMarker</code> to the list. If set to <code>Current</code>, the list does not contain these version-related fields.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID used to identify the inventory configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Filter</i> Specifies an inventory filter. The inventory only includes objects that meet the filter's criteria.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Filter</b>: Specifies an inventory filter. The inventory only includes objects that meet the filter's criteria.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsEnabled</i> Specifies whether the inventory is enabled or disabled. If set to <code>True</code>, an inventory list is generated. If set to <code>False</code>, no inventory list is generated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Destination</i> Contains information about where to publish the inventory results.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Destination</b>: Contains information about where to publish the inventory results.<br/>Contains the bucket name, file format, bucket owner (optional), and prefix (optional) where inventory results are published.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3BucketDestination</b>: Contains the bucket name, file format, bucket owner (optional), and prefix (optional) where inventory results are published.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Prefix</i> The prefix that an object must have to be included in the inventory results.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Frequency</i> Specifies how frequently inventory results are produced.<br/>
        :return:         """
        pass

    def put_bucket_lifecycle(self, Bucket: str, ContentMD5: str=None, LifecycleConfiguration: LifecycleConfiguration=None, ExpectedBucketOwner: str=None):
        r"""<important> For an updated version of this API, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html">PutBucketLifecycleConfiguration</a>. This version has been deprecated. Existing lifecycle configurations will work. For new lifecycle configurations, use the updated API.  </important> Creates a new lifecycle configuration for the bucket or replaces an existing lifecycle configuration. For information about lifecycle configuration, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html">Object Lifecycle Management</a> in the <i>Amazon S3 User Guide</i>.  By default, all Amazon S3 resources, including buckets, objects, and related subresources (for example, lifecycle configuration and website configuration) are private. Only the resource owner, the AWS account that created the resource, can access it. The resource owner can optionally grant access permissions to others by writing an access policy. For this operation, users must get the <code>s3:PutLifecycleConfiguration</code> permission. You can also explicitly deny permissions. Explicit denial also supersedes any other permissions. If you want to prevent users or accounts from removing or deleting objects from your bucket, you must deny them permissions for the following actions:  <ul> <li>  <code>s3:DeleteObject</code>  </li> <li>  <code>s3:DeleteObjectVersion</code>  </li> <li>  <code>s3:PutLifecycleConfiguration</code>  </li> </ul> For more information about permissions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing Access Permissions to your Amazon S3 Resources</a> in the <i>Amazon S3 User Guide</i>. For more examples of transitioning objects to storage classes such as STANDARD_IA or ONEZONE_IA, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#lifecycle-configuration-examples">Examples of Lifecycle Configuration</a>. <p class="title"> <b>Related Resources</b>  <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycle.html">GetBucketLifecycle</a>(Deprecated) </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html">GetBucketLifecycleConfiguration</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_RestoreObject.html">RestoreObject</a>  </li> <li> By default, a resource owner—in this case, a bucket owner, which is the AWS account that created the bucket—can perform any of the operations. A resource owner can also grant others permission to perform the operation. For more information, see the following topics in the Amazon S3 User Guide:  <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html">Specifying Permissions in a Policy</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing Access Permissions to your Amazon S3 Resources</a>  </li> </ul> </li> </ul>

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>LifecycleConfiguration:  <p/>:<br/>ContentMD5:  <p/> For requests made using the AWS Command Line Interface (CLI) or AWS SDKs, this field is calculated automatically.<br/>Bucket:  <p/><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Rules</i> Specifies lifecycle configuration rules for an Amazon S3 bucket. <br/>
        :return:         """
        pass

    def put_bucket_lifecycle_configuration(self, Bucket: str, LifecycleConfiguration: BucketLifecycleConfiguration=None, ExpectedBucketOwner: str=None):
        r"""Creates a new lifecycle configuration for the bucket or replaces an existing lifecycle configuration. For information about lifecycle configuration, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html">Managing your storage lifecycle</a>. <note> Bucket lifecycle configuration now supports specifying a lifecycle rule using an object key name prefix, one or more object tags, or a combination of both. Accordingly, this section describes the latest API. The previous version of the API supported filtering based only on an object key name prefix, which is supported for backward compatibility. For the related API description, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycle.html">PutBucketLifecycle</a>. </note>  <b>Rules</b>  You specify the lifecycle configuration in your request body. The lifecycle configuration is specified as XML consisting of one or more rules. Each rule consists of the following: <ul> <li> Filter identifying a subset of objects to which the rule applies. The filter can be based on a key name prefix, object tags, or a combination of both. </li> <li> Status whether the rule is in effect. </li> <li> One or more lifecycle transition and expiration actions that you want Amazon S3 to perform on the objects identified by the filter. If the state of your bucket is versioning-enabled or versioning-suspended, you can have many versions of the same object (one current version and zero or more noncurrent versions). Amazon S3 provides predefined actions that you can specify for current and noncurrent object versions. </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html">Object Lifecycle Management</a> and <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html">Lifecycle Configuration Elements</a>.  <b>Permissions</b>  By default, all Amazon S3 resources are private, including buckets, objects, and related subresources (for example, lifecycle configuration and website configuration). Only the resource owner (that is, the AWS account that created it) can access the resource. The resource owner can optionally grant access permissions to others by writing an access policy. For this operation, a user must get the s3:PutLifecycleConfiguration permission. You can also explicitly deny permissions. Explicit deny also supersedes any other permissions. If you want to block users or accounts from removing or deleting objects from your bucket, you must deny them permissions for the following actions: <ul> <li> s3:DeleteObject </li> <li> s3:DeleteObjectVersion </li> <li> s3:PutLifecycleConfiguration </li> </ul> For more information about permissions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing Access Permissions to Your Amazon S3 Resources</a>. The following are related to <code>PutBucketLifecycleConfiguration</code>: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/lifecycle-configuration-examples.html">Examples of Lifecycle Configuration</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html">GetBucketLifecycleConfiguration</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketLifecycle.html">DeleteBucketLifecycle</a>  </li> </ul>

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>LifecycleConfiguration:  Container for lifecycle rules. You can add as many as 1,000 rules.:<br/>Bucket:  The name of the bucket for which to set the configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Rules</i> A lifecycle rule for individual objects in an Amazon S3 bucket.<br/>
        :return:         """
        pass

    def put_bucket_logging(self, BucketLoggingStatus: BucketLoggingStatus, Bucket: str, ContentMD5: str=None, ExpectedBucketOwner: str=None):
        r"""Set the logging parameters for a bucket and to specify permissions for who can view and modify the logging parameters. All logs are saved to buckets in the same AWS Region as the source bucket. To set the logging status of a bucket, you must be the bucket owner. The bucket owner is automatically granted FULL_CONTROL to all logs. You use the <code>Grantee</code> request element to grant access to other people. The <code>Permissions</code> request element specifies the kind of access the grantee has to the logs.  <b>Grantee Values</b>  You can specify the person (grantee) to whom you're assigning access rights (using request elements) in the following ways: <ul> <li> By the person's ID:  <code>&lt;Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="CanonicalUser"&gt;&lt;ID&gt;&lt;&gt;ID&lt;&gt;&lt;/ID&gt;&lt;DisplayName&gt;&lt;&gt;GranteesEmail&lt;&gt;&lt;/DisplayName&gt; &lt;/Grantee&gt;</code>  DisplayName is optional and ignored in the request. </li> <li> By Email address:  <code> &lt;Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="AmazonCustomerByEmail"&gt;&lt;EmailAddress&gt;&lt;&gt;Grantees@email.com&lt;&gt;&lt;/EmailAddress&gt;&lt;/Grantee&gt;</code>  The grantee is resolved to the CanonicalUser and, in a response to a GET Object acl request, appears as the CanonicalUser. </li> <li> By URI:  <code>&lt;Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="Group"&gt;&lt;URI&gt;&lt;&gt;http://acs.amazonaws.com/groups/global/AuthenticatedUsers&lt;&gt;&lt;/URI&gt;&lt;/Grantee&gt;</code>  </li> </ul> To enable logging, you use LoggingEnabled and its children request elements. To disable logging, you use an empty BucketLoggingStatus request element:  <code>&lt;BucketLoggingStatus xmlns="http://doc.s3.amazonaws.com/2006-03-01" /&gt;</code>  For more information about server access logging, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerLogs.html">Server Access Logging</a>.  For more information about creating a bucket, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>. For more information about returning the logging status of a bucket, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLogging.html">GetBucketLogging</a>. The following operations are related to <code>PutBucketLogging</code>: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html">PutObject</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html">DeleteBucket</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLogging.html">GetBucketLogging</a>  </li> </ul>

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>ContentMD5:  The MD5 hash of the <code>PutBucketLogging</code> request body. For requests made using the AWS Command Line Interface (CLI) or AWS SDKs, this field is calculated automatically.<br/>BucketLoggingStatus:  Container for logging status information.:<br/>Bucket:  The name of the bucket for which to set the logging parameters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LoggingEnabled</i> Describes where logs are stored and the prefix that Amazon S3 assigns to all log object keys for a bucket. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTlogging.html">PUT Bucket logging</a> in the <i>Amazon S3 API Reference</i>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>LoggingEnabled</b>: Describes where logs are stored and the prefix that Amazon S3 assigns to all log object keys for a bucket. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTlogging.html">PUT Bucket logging</a> in the <i>Amazon S3 API Reference</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetPrefix</i> A prefix for all log object keys. If you store log files from multiple Amazon S3 buckets in a single bucket, you can use a prefix to distinguish which log files came from which bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetGrants</i> Container for granting information.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetBucket</i> Specifies the bucket where you want Amazon S3 to store server access logs. You can have your logs delivered to any bucket that you own, including the same bucket that is being logged. You can also configure multiple buckets to deliver their logs to the same target bucket. In this case, you should choose a different <code>TargetPrefix</code> for each source bucket so that the delivered log files can be distinguished by key.<br/>
        :return:         """
        pass

    def put_bucket_metrics_configuration(self, MetricsConfiguration: MetricsConfiguration, Id: str, Bucket: str, ExpectedBucketOwner: str=None):
        r"""Sets a metrics configuration (specified by the metrics configuration ID) for the bucket. You can have up to 1,000 metrics configurations per bucket. If you're updating an existing metrics configuration, note that this is a full replacement of the existing metrics configuration. If you don't include the elements you want to keep, they are erased. To use this operation, you must have permissions to perform the <code>s3:PutMetricsConfiguration</code> action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions Related to Bucket Subresource Operations</a> and <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing Access Permissions to Your Amazon S3 Resources</a>. For information about CloudWatch request metrics for Amazon S3, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html">Monitoring Metrics with Amazon CloudWatch</a>. The following operations are related to <code>PutBucketMetricsConfiguration</code>: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetricsConfiguration.html">DeleteBucketMetricsConfiguration</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketMetricsConfiguration.html">PutBucketMetricsConfiguration</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketMetricsConfigurations.html">ListBucketMetricsConfigurations</a>  </li> </ul>  <code>GetBucketLifecycle</code> has the following special error: <ul> <li> Error code: <code>TooManyConfigurations</code>  <ul> <li> Description: You are attempting to create a new configuration but have already reached the 1,000-configuration limit. </li> <li> HTTP Status Code: HTTP 400 Bad Request </li> </ul> </li> </ul>

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>MetricsConfiguration:  Specifies the metrics configuration.:<br/>Id:  The ID used to identify the metrics configuration.<br/>Bucket:  The name of the bucket for which the metrics configuration is set.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Filter</i> Specifies a metrics configuration filter. The metrics configuration will only include objects that meet the filter's criteria. A filter must be a prefix, a tag, or a conjunction (MetricsAndOperator).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Filter</b>: Specifies a metrics configuration filter. The metrics configuration will only include objects that meet the filter's criteria. A filter must be a prefix, a tag, or a conjunction (MetricsAndOperator).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID used to identify the metrics configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Prefix</i> The prefix used when evaluating a metrics filter.<br/>The tag used when evaluating a metrics filter.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Tag</b>: The tag used when evaluating a metrics filter.
        :return:         """
        pass

    def put_bucket_notification(self, NotificationConfiguration: NotificationConfigurationDeprecated, Bucket: str, ContentMD5: str=None, ExpectedBucketOwner: str=None):
        r""" No longer used, see the <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketNotificationConfiguration.html">PutBucketNotificationConfiguration</a> operation.

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>NotificationConfiguration:  The container for the configuration.:<br/>ContentMD5:  The MD5 hash of the <code>PutPublicAccessBlock</code> request body. For requests made using the AWS Command Line Interface (CLI) or AWS SDKs, this field is calculated automatically.<br/>Bucket:  The name of the bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudFunctionConfiguration</i> Container for specifying the AWS Lambda notification configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CloudFunctionConfiguration</b>: Container for specifying the AWS Lambda notification configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>QueueConfiguration</i> This data type is deprecated. This data type specifies the configuration for publishing messages to an Amazon Simple Queue Service (Amazon SQS) queue when Amazon S3 detects specified events. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>QueueConfiguration</b>: This data type is deprecated. This data type specifies the configuration for publishing messages to an Amazon Simple Queue Service (Amazon SQS) queue when Amazon S3 detects specified events. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TopicConfiguration</i> This data type is deprecated. A container for specifying the configuration for publication of messages to an Amazon Simple Notification Service (Amazon SNS) topic when Amazon S3 detects specified events. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TopicConfiguration</b>: This data type is deprecated. A container for specifying the configuration for publication of messages to an Amazon Simple Notification Service (Amazon SNS) topic when Amazon S3 detects specified events. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Topic</i> Amazon SNS topic to which Amazon S3 will publish a message to report the specified events for the bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Event</i> Bucket event for which to send notifications.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Events</i> A collection of events related to objects<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> An optional unique identifier for configurations in a notification configuration. If you don't provide one, Amazon S3 will assign an ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Queue</i> The Amazon Resource Name (ARN) of the Amazon SQS queue to which Amazon S3 publishes a message when it detects events of the specified type. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Events</i> A collection of bucket events for which to send notifications.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Event</i> The bucket event for which to send notifications.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> An optional unique identifier for configurations in a notification configuration. If you don't provide one, Amazon S3 will assign an ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InvocationRole</i> The role supporting the invocation of the Lambda function<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudFunction</i> Lambda cloud function ARN that Amazon S3 can invoke when it detects events of the specified type.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Events</i> Bucket events for which to send notifications.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Event</i> The bucket event for which to send notifications.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> An optional unique identifier for configurations in a notification configuration. If you don't provide one, Amazon S3 will assign an ID.<br/>
        :return:         """
        pass

    def put_bucket_notification_configuration(self, NotificationConfiguration: NotificationConfiguration, Bucket: str, ExpectedBucketOwner: str=None):
        r"""Enables notifications of specified events for a bucket. For more information about event notifications, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html">Configuring Event Notifications</a>. Using this API, you can replace an existing notification configuration. The configuration is an XML file that defines the event types that you want Amazon S3 to publish and the destination where you want Amazon S3 to publish an event notification when it detects an event of the specified type. By default, your bucket has no event notifications configured. That is, the notification configuration will be an empty <code>NotificationConfiguration</code>.  <code>&lt;NotificationConfiguration&gt;</code>   <code>&lt;/NotificationConfiguration&gt;</code>  This action replaces the existing notification configuration with the configuration you include in the request body. After Amazon S3 receives this request, it first verifies that any Amazon Simple Notification Service (Amazon SNS) or Amazon Simple Queue Service (Amazon SQS) destination exists, and that the bucket owner has permission to publish to it by sending a test notification. In the case of AWS Lambda destinations, Amazon S3 verifies that the Lambda function permissions grant Amazon S3 permission to invoke the function from the Amazon S3 bucket. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html">Configuring Notifications for Amazon S3 Events</a>. You can disable notifications by adding the empty NotificationConfiguration element. By default, only the bucket owner can configure notifications on a bucket. However, bucket owners can use a bucket policy to grant permission to other users to set this configuration with <code>s3:PutBucketNotification</code> permission. <note> The PUT notification is an atomic operation. For example, suppose your notification configuration includes SNS topic, SQS queue, and Lambda function configurations. When you send a PUT request with this configuration, Amazon S3 sends test messages to your SNS topic. If the message fails, the entire PUT action will fail, and Amazon S3 will not add the configuration to your bucket. </note>  <b>Responses</b>  If the configuration in the request body includes only one <code>TopicConfiguration</code> specifying only the <code>s3:ReducedRedundancyLostObject</code> event type, the response will also include the <code>x-amz-sns-test-message-id</code> header containing the message ID of the test notification sent to the topic. The following action is related to <code>PutBucketNotificationConfiguration</code>: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketNotificationConfiguration.html">GetBucketNotificationConfiguration</a>  </li> </ul>

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>NotificationConfiguration:  A container for specifying the notification configuration of the bucket. If this element is empty, notifications are turned off for the bucket.:<br/>Bucket:  The name of the bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LambdaFunctionConfigurations</i> Describes the AWS Lambda functions to invoke and the events for which to invoke them.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>QueueConfigurations</i> The Amazon Simple Queue Service queues to publish messages to and the events for which to publish messages.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TopicConfigurations</i> The topic to which notifications are sent and the events for which notifications are generated.<br/>
        :return:         """
        pass

    def put_bucket_ownership_controls(self, OwnershipControls: OwnershipControls, Bucket: str, ContentMD5: str=None, ExpectedBucketOwner: str=None):
        r"""Creates or modifies <code>OwnershipControls</code> for an Amazon S3 bucket. To use this operation, you must have the <code>s3:PutBucketOwnershipControls</code> permission. For more information about Amazon S3 permissions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html">Specifying Permissions in a Policy</a>.  For information about Amazon S3 Object Ownership, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/about-object-ownership.html">Using Object Ownership</a>.  The following operations are related to <code>PutBucketOwnershipControls</code>: <ul> <li>  <a>GetBucketOwnershipControls</a>  </li> <li>  <a>DeleteBucketOwnershipControls</a>  </li> </ul>

        :param self:
        :param OwnershipControls:  The <code>OwnershipControls</code> (BucketOwnerPreferred or ObjectWriter) that you want to apply to this Amazon S3 bucket.:<br/>ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>ContentMD5:  The MD5 hash of the <code>OwnershipControls</code> request body.  For requests made using the AWS Command Line Interface (CLI) or AWS SDKs, this field is calculated automatically.<br/>Bucket:  The name of the Amazon S3 bucket whose <code>OwnershipControls</code> you want to set.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Rules</i> The container element for an ownership control rule.<br/>
        :return:         """
        pass

    def put_bucket_policy(self, Policy: str, Bucket: str, ContentMD5: str=None, ConfirmRemoveSelfBucketAccess: ConfirmRemoveSelfBucketAccess=None, ExpectedBucketOwner: str=None):
        r"""Applies an Amazon S3 bucket policy to an Amazon S3 bucket. If you are using an identity other than the root user of the AWS account that owns the bucket, the calling identity must have the <code>PutBucketPolicy</code> permissions on the specified bucket and belong to the bucket owner's account in order to use this operation. If you don't have <code>PutBucketPolicy</code> permissions, Amazon S3 returns a <code>403 Access Denied</code> error. If you have the correct permissions, but you're not using an identity that belongs to the bucket owner's account, Amazon S3 returns a <code>405 Method Not Allowed</code> error. <important>  As a security precaution, the root user of the AWS account that owns a bucket can always use this operation, even if the policy explicitly denies the root user the ability to perform this action.  </important> For more information about bucket policies, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html">Using Bucket Policies and User Policies</a>. The following operations are related to <code>PutBucketPolicy</code>: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html">DeleteBucket</a>  </li> </ul>

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>Policy:  The bucket policy as a JSON document.<br/>ConfirmRemoveSelfBucketAccess:  Set this parameter to true to confirm that you want to remove your permissions to change this bucket policy in the future.<br/>ContentMD5:  The MD5 hash of the request body. For requests made using the AWS Command Line Interface (CLI) or AWS SDKs, this field is calculated automatically.<br/>Bucket:  The name of the bucket.<br/>
        :return:         """
        pass

    def put_bucket_replication(self, ReplicationConfiguration: ReplicationConfiguration, Bucket: str, ContentMD5: str=None, Token: str=None, ExpectedBucketOwner: str=None):
        r""" Creates a replication configuration or replaces an existing one. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html">Replication</a> in the <i>Amazon S3 User Guide</i>.  <note> To perform this operation, the user or role performing the action must have the <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html">iam:PassRole</a> permission. </note> Specify the replication configuration in the request body. In the replication configuration, you provide the name of the destination bucket or buckets where you want Amazon S3 to replicate objects, the IAM role that Amazon S3 can assume to replicate objects on your behalf, and other relevant information. A replication configuration must include at least one rule, and can contain a maximum of 1,000. Each rule identifies a subset of objects to replicate by filtering the objects in the source bucket. To choose additional subsets of objects to replicate, add a rule for each subset. To specify a subset of the objects in the source bucket to apply a replication rule to, add the Filter element as a child of the Rule element. You can filter objects based on an object key prefix, one or more object tags, or both. When you add the Filter element in the configuration, you must also add the following elements: <code>DeleteMarkerReplication</code>, <code>Status</code>, and <code>Priority</code>. <note> If you are using an earlier version of the replication configuration, Amazon S3 handles replication of delete markers differently. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-backward-compat-considerations">Backward Compatibility</a>. </note> For information about enabling versioning on a bucket, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html">Using Versioning</a>. By default, a resource owner, in this case the AWS account that created the bucket, can perform this operation. The resource owner can also grant others permissions to perform the operation. For more information about permissions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html">Specifying Permissions in a Policy</a> and <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing Access Permissions to Your Amazon S3 Resources</a>.  <b>Handling Replication of Encrypted Objects</b>  By default, Amazon S3 doesn't replicate objects that are stored at rest using server-side encryption with CMKs stored in AWS KMS. To replicate AWS KMS-encrypted objects, add the following: <code>SourceSelectionCriteria</code>, <code>SseKmsEncryptedObjects</code>, <code>Status</code>, <code>EncryptionConfiguration</code>, and <code>ReplicaKmsKeyID</code>. For information about replication configuration, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-config-for-kms-objects.html">Replicating Objects Created with SSE Using CMKs stored in AWS KMS</a>. For information on <code>PutBucketReplication</code> errors, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ReplicationErrorCodeList">List of replication-related error codes</a>  The following operations are related to <code>PutBucketReplication</code>: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketReplication.html">GetBucketReplication</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketReplication.html">DeleteBucketReplication</a>  </li> </ul>

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>Token:  A token to allow Object Lock to be enabled for an existing bucket.<br/>ReplicationConfiguration:  A container for replication rules. You can add up to 1,000 rules. The maximum size of a replication configuration is 2 MB.:<br/>ContentMD5:  The base64-encoded 128-bit MD5 digest of the data. You must use this header as a message integrity check to verify that the request body was not corrupted in transit. For more information, see <a href="http://www.ietf.org/rfc/rfc1864.txt">RFC 1864</a>. For requests made using the AWS Command Line Interface (CLI) or AWS SDKs, this field is calculated automatically.<br/>Bucket:  The name of the bucket<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Rules</i> A container for one or more replication rules. A replication configuration must have at least one rule and can contain a maximum of 1,000 rules. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Role</i> The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that Amazon S3 assumes when replicating objects. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-how-setup.html">How to Set Up Replication</a> in the <i>Amazon S3 User Guide</i>.<br/>
        :return:         """
        pass

    def put_bucket_request_payment(self, RequestPaymentConfiguration: RequestPaymentConfiguration, Bucket: str, ContentMD5: str=None, ExpectedBucketOwner: str=None):
        r"""Sets the request payment configuration for a bucket. By default, the bucket owner pays for downloads from the bucket. This configuration parameter enables the bucket owner (only) to specify that the person requesting the download will be charged for the download. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html">Requester Pays Buckets</a>. The following operations are related to <code>PutBucketRequestPayment</code>: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketRequestPayment.html">GetBucketRequestPayment</a>  </li> </ul>

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>RequestPaymentConfiguration:  Container for Payer.:<br/>ContentMD5:  The base64-encoded 128-bit MD5 digest of the data. You must use this header as a message integrity check to verify that the request body was not corrupted in transit. For more information, see <a href="http://www.ietf.org/rfc/rfc1864.txt">RFC 1864</a>. For requests made using the AWS Command Line Interface (CLI) or AWS SDKs, this field is calculated automatically.<br/>Bucket:  The bucket name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Payer</i> Specifies who pays for the download and request fees.<br/>
        :return:         """
        pass

    def put_bucket_tagging(self, Tagging: Tagging, Bucket: str, ContentMD5: str=None, ExpectedBucketOwner: str=None):
        r"""Sets the tags for a bucket. Use tags to organize your AWS bill to reflect your own cost structure. To do this, sign up to get your AWS account bill with tag key values included. Then, to see the cost of combined resources, organize your billing information according to resources with the same tag key values. For example, you can tag several resources with a specific application name, and then organize your billing information to see the total cost of that application across several services. For more information, see <a href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html">Cost Allocation and Tagging</a> and <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/CostAllocTagging.html">Using Cost Allocation in Amazon S3 Bucket Tags</a>. <note>  When this operation sets the tags for a bucket, it will overwrite any current tags the bucket already has. You cannot use this operation to add tags to an existing list of tags. </note> To use this operation, you must have permissions to perform the <code>s3:PutBucketTagging</code> action. The bucket owner has this permission by default and can grant this permission to others. For more information about permissions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions Related to Bucket Subresource Operations</a> and <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing Access Permissions to Your Amazon S3 Resources</a>.  <code>PutBucketTagging</code> has the following special errors: <ul> <li> Error code: <code>InvalidTagError</code>  <ul> <li> Description: The tag provided was not a valid tag. This error can occur if the tag did not pass input validation. For information about tag restrictions, see <a href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/allocation-tag-restrictions.html">User-Defined Tag Restrictions</a> and <a href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/aws-tag-restrictions.html">AWS-Generated Cost Allocation Tag Restrictions</a>. </li> </ul> </li> <li> Error code: <code>MalformedXMLError</code>  <ul> <li> Description: The XML provided does not match the schema. </li> </ul> </li> <li> Error code: <code>OperationAbortedError </code>  <ul> <li> Description: A conflicting conditional action is currently in progress against this resource. Please try again. </li> </ul> </li> <li> Error code: <code>InternalError</code>  <ul> <li> Description: The service was unable to apply the provided tag to the bucket. </li> </ul> </li> </ul> The following operations are related to <code>PutBucketTagging</code>: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketTagging.html">GetBucketTagging</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketTagging.html">DeleteBucketTagging</a>  </li> </ul>

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>Tagging:  Container for the <code>TagSet</code> and <code>Tag</code> elements.:<br/>ContentMD5:  The base64-encoded 128-bit MD5 digest of the data. You must use this header as a message integrity check to verify that the request body was not corrupted in transit. For more information, see <a href="http://www.ietf.org/rfc/rfc1864.txt">RFC 1864</a>. For requests made using the AWS Command Line Interface (CLI) or AWS SDKs, this field is calculated automatically.<br/>Bucket:  The bucket name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TagSet</i> A collection for a set of tags<br/>
        :return:         """
        pass

    def put_bucket_versioning(self, VersioningConfiguration: VersioningConfiguration, Bucket: str, ContentMD5: str=None, MFA: str=None, ExpectedBucketOwner: str=None):
        r"""Sets the versioning state of an existing bucket. To set the versioning state, you must be the bucket owner. You can set the versioning state with one of the following values:  <b>Enabled</b>—Enables versioning for the objects in the bucket. All objects added to the bucket receive a unique version ID.  <b>Suspended</b>—Disables versioning for the objects in the bucket. All objects added to the bucket receive the version ID null. If the versioning state has never been set on a bucket, it has no versioning state; a <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketVersioning.html">GetBucketVersioning</a> request does not return a versioning state value. If the bucket owner enables MFA Delete in the bucket versioning configuration, the bucket owner must include the <code>x-amz-mfa request</code> header and the <code>Status</code> and the <code>MfaDelete</code> request elements in a request to set the versioning state of the bucket. <important> If you have an object expiration lifecycle policy in your non-versioned bucket and you want to maintain the same permanent delete behavior when you enable versioning, you must add a noncurrent expiration policy. The noncurrent expiration lifecycle policy will manage the deletes of the noncurrent object versions in the version-enabled bucket. (A version-enabled bucket maintains one current and zero or more noncurrent object versions.) For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html#lifecycle-and-other-bucket-config">Lifecycle and Versioning</a>. </important> <p class="title"> <b>Related Resources</b>  <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html">DeleteBucket</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketVersioning.html">GetBucketVersioning</a>  </li> </ul>

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>VersioningConfiguration:  Container for setting the versioning state.:<br/>MFA:  The concatenation of the authentication device's serial number, a space, and the value that is displayed on your authentication device.<br/>ContentMD5:  &gt;The base64-encoded 128-bit MD5 digest of the data. You must use this header as a message integrity check to verify that the request body was not corrupted in transit. For more information, see <a href="http://www.ietf.org/rfc/rfc1864.txt">RFC 1864</a>. For requests made using the AWS Command Line Interface (CLI) or AWS SDKs, this field is calculated automatically.<br/>Bucket:  The bucket name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The versioning state of the bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MFADelete</i> Specifies whether MFA delete is enabled in the bucket versioning configuration. This element is only returned if the bucket has been configured with MFA delete. If the bucket has never been so configured, this element is not returned.<br/>
        :return:         """
        pass

    def put_bucket_website(self, WebsiteConfiguration: WebsiteConfiguration, Bucket: str, ContentMD5: str=None, ExpectedBucketOwner: str=None):
        r"""Sets the configuration of the website that is specified in the <code>website</code> subresource. To configure a bucket as a website, you can add this subresource on the bucket with website configuration information such as the file name of the index document and any redirect rules. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html">Hosting Websites on Amazon S3</a>. This PUT action requires the <code>S3:PutBucketWebsite</code> permission. By default, only the bucket owner can configure the website attached to a bucket; however, bucket owners can allow other users to set the website configuration by writing a bucket policy that grants them the <code>S3:PutBucketWebsite</code> permission. To redirect all website requests sent to the bucket's website endpoint, you add a website configuration with the following elements. Because all requests are sent to another website, you don't need to provide index document name for the bucket. <ul> <li>  <code>WebsiteConfiguration</code>  </li> <li>  <code>RedirectAllRequestsTo</code>  </li> <li>  <code>HostName</code>  </li> <li>  <code>Protocol</code>  </li> </ul> If you want granular control over redirects, you can use the following elements to add routing rules that describe conditions for redirecting requests and information about the redirect destination. In this case, the website configuration must provide an index document for the bucket, because some requests might not be redirected.  <ul> <li>  <code>WebsiteConfiguration</code>  </li> <li>  <code>IndexDocument</code>  </li> <li>  <code>Suffix</code>  </li> <li>  <code>ErrorDocument</code>  </li> <li>  <code>Key</code>  </li> <li>  <code>RoutingRules</code>  </li> <li>  <code>RoutingRule</code>  </li> <li>  <code>Condition</code>  </li> <li>  <code>HttpErrorCodeReturnedEquals</code>  </li> <li>  <code>KeyPrefixEquals</code>  </li> <li>  <code>Redirect</code>  </li> <li>  <code>Protocol</code>  </li> <li>  <code>HostName</code>  </li> <li>  <code>ReplaceKeyPrefixWith</code>  </li> <li>  <code>ReplaceKeyWith</code>  </li> <li>  <code>HttpRedirectCode</code>  </li> </ul> Amazon S3 has a limitation of 50 routing rules per website configuration. If you require more than 50 routing rules, you can use object redirect. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html">Configuring an Object Redirect</a> in the <i>Amazon S3 User Guide</i>.

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>WebsiteConfiguration:  Container for the request.:<br/>ContentMD5:  The base64-encoded 128-bit MD5 digest of the data. You must use this header as a message integrity check to verify that the request body was not corrupted in transit. For more information, see <a href="http://www.ietf.org/rfc/rfc1864.txt">RFC 1864</a>. For requests made using the AWS Command Line Interface (CLI) or AWS SDKs, this field is calculated automatically.<br/>Bucket:  The bucket name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoutingRules</i> Rules that define when a redirect is applied and the redirect behavior.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RedirectAllRequestsTo</i> The redirect behavior for every request to this bucket's website endpoint. <important> If you specify this property, you can't specify any other property. </important>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RedirectAllRequestsTo</b>: The redirect behavior for every request to this bucket's website endpoint. <important> If you specify this property, you can't specify any other property. </important><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IndexDocument</i> The name of the index document for the website.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>IndexDocument</b>: The name of the index document for the website.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorDocument</i> The name of the error document for the website.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ErrorDocument</b>: The name of the error document for the website.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The object key name to use when a 4XX class error occurs. <important> Replacement must be made for object keys containing special characters (such as carriage returns) when using XML requests. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints"> XML related object key constraints</a>. </important><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Suffix</i> A suffix that is appended to a request that is for a directory on the website endpoint (for example,if the suffix is index.html and you make a request to samplebucket/images/ the data that is returned will be for the object with the key name images/index.html) The suffix must not be empty and must not include a slash character. <important> Replacement must be made for object keys containing special characters (such as carriage returns) when using XML requests. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints"> XML related object key constraints</a>. </important><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Protocol</i> Protocol to use when redirecting requests. The default is the protocol that is used in the original request.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HostName</i> Name of the host where requests are redirected.<br/>
        :return:         """
        pass

    def put_object(self, Key: str, Bucket: str, ACL: str=None, Body: Body=None, CacheControl: str=None, ContentDisposition: str=None, ContentEncoding: str=None, ContentLanguage: str=None, ContentLength: ContentLength=None, ContentMD5: str=None, ContentType: str=None, Expires: Expires=None, GrantFullControl: str=None, GrantRead: str=None, GrantReadACP: str=None, GrantWriteACP: str=None, Metadata: Metadata=None, ServerSideEncryption: str=None, StorageClass: str=None, WebsiteRedirectLocation: str=None, SSECustomerAlgorithm: str=None, SSECustomerKey: str=None, SSECustomerKeyMD5: str=None, SSEKMSKeyId: str=None, SSEKMSEncryptionContext: str=None, BucketKeyEnabled: BucketKeyEnabled=None, RequestPayer: str=None, Tagging: str=None, ObjectLockMode: str=None, ObjectLockRetainUntilDate: ObjectLockRetainUntilDate=None, ObjectLockLegalHoldStatus: str=None, ExpectedBucketOwner: str=None) -> PutObjectOutput:
        r"""Adds an object to a bucket. You must have WRITE permissions on a bucket to add an object to it. Amazon S3 never adds partial objects; if you receive a success response, Amazon S3 added the entire object to the bucket. Amazon S3 is a distributed system. If it receives multiple write requests for the same object simultaneously, it overwrites all but the last object written. Amazon S3 does not provide object locking; if you need this, make sure to build it into your application layer or use versioning instead. To ensure that data is not corrupted traversing the network, use the <code>Content-MD5</code> header. When you use this header, Amazon S3 checks the object against the provided MD5 value and, if they do not match, returns an error. Additionally, you can calculate the MD5 while putting an object to Amazon S3 and compare the returned ETag to the calculated MD5 value. <note>  The <code>Content-MD5</code> header is required for any request to upload an object with a retention period configured using Amazon S3 Object Lock. For more information about Amazon S3 Object Lock, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html">Amazon S3 Object Lock Overview</a> in the <i>Amazon S3 User Guide</i>.  </note>  <b>Server-side Encryption</b>  You can optionally request server-side encryption. With server-side encryption, Amazon S3 encrypts your data as it writes it to disks in its data centers and decrypts the data when you access it. You have the option to provide your own encryption key or use AWS managed encryption keys (SSE-S3 or SSE-KMS). For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html">Using Server-Side Encryption</a>. If you request server-side encryption using AWS Key Management Service (SSE-KMS), you can enable an S3 Bucket Key at the object-level. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html">Amazon S3 Bucket Keys</a> in the <i>Amazon S3 User Guide</i>.  <b>Access Control List (ACL)-Specific Request Headers</b>  You can use headers to grant ACL- based permissions. By default, all objects are private. Only the owner has full access control. When adding a new object, you can grant permissions to individual AWS accounts or to predefined groups defined by Amazon S3. These permissions are then added to the ACL on the object. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html">Access Control List (ACL) Overview</a> and <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-using-rest-api.html">Managing ACLs Using the REST API</a>.   <b>Storage Class Options</b>  By default, Amazon S3 uses the STANDARD Storage Class to store newly created objects. The STANDARD storage class provides high durability and high availability. Depending on performance needs, you can specify a different Storage Class. Amazon S3 on Outposts only uses the OUTPOSTS Storage Class. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html">Storage Classes</a> in the <i>Amazon S3 User Guide</i>.  <b>Versioning</b>  If you enable versioning for a bucket, Amazon S3 automatically generates a unique version ID for the object being stored. Amazon S3 returns this ID in the response. When you enable versioning for a bucket, if Amazon S3 receives multiple write requests for the same object simultaneously, it stores all of the objects. For more information about versioning, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/AddingObjectstoVersioningEnabledBuckets.html">Adding Objects to Versioning Enabled Buckets</a>. For information about returning the versioning state of a bucket, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketVersioning.html">GetBucketVersioning</a>.  <p class="title"> <b>Related Resources</b>  <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html">CopyObject</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html">DeleteObject</a>  </li> </ul>

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>ObjectLockLegalHoldStatus:  Specifies whether a legal hold will be applied to this object. For more information about S3 Object Lock, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html">Object Lock</a>.<br/>ObjectLockRetainUntilDate:  The date and time when you want this object's Object Lock to expire. Must be formatted as a timestamp parameter.<br/>ObjectLockMode:  The Object Lock mode that you want to apply to this object.<br/>Tagging:  The tag-set for the object. The tag-set must be encoded as URL Query parameters. (For example, "Key1=Value1")<br/>RequestPayer:  Confirms that the requester knows that they will be charged for the request. Bucket owners need not specify this parameter in their requests. For information about downloading objects from requester pays buckets, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html">Downloading Objects in Requestor Pays Buckets</a> in the <i>Amazon S3 User Guide</i>.<br/>BucketKeyEnabled:  Specifies whether Amazon S3 should use an S3 Bucket Key for object encryption with server-side encryption using AWS KMS (SSE-KMS). Setting this header to <code>true</code> causes Amazon S3 to use an S3 Bucket Key for object encryption with SSE-KMS. Specifying this header with a PUT action doesn’t affect bucket-level settings for S3 Bucket Key.<br/>SSEKMSEncryptionContext:  Specifies the AWS KMS Encryption Context to use for object encryption. The value of this header is a base64-encoded UTF-8 string holding JSON with the encryption context key-value pairs.<br/>SSEKMSKeyId:  If <code>x-amz-server-side-encryption</code> is present and has the value of <code>aws:kms</code>, this header specifies the ID of the AWS Key Management Service (AWS KMS) symmetrical customer managed customer master key (CMK) that was used for the object. If you specify <code>x-amz-server-side-encryption:aws:kms</code>, but do not provide<code> x-amz-server-side-encryption-aws-kms-key-id</code>, Amazon S3 uses the AWS managed CMK in AWS to protect the data. If the KMS key does not exist in the same account issuing the command, you must use the full ARN and not just the ID. <br/>SSECustomerKeyMD5:  Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure that the encryption key was transmitted without error.<br/>SSECustomerKey:  Specifies the customer-provided encryption key for Amazon S3 to use in encrypting data. This value is used to store the object and then it is discarded; Amazon S3 does not store the encryption key. The key must be appropriate for use with the algorithm specified in the <code>x-amz-server-side-encryption-customer-algorithm</code> header.<br/>SSECustomerAlgorithm:  Specifies the algorithm to use to when encrypting the object (for example, AES256).<br/>WebsiteRedirectLocation:  If the bucket is configured as a website, redirects requests for this object to another object in the same bucket or to an external URL. Amazon S3 stores the value of this header in the object metadata. For information about object metadata, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMetadata.html">Object Key and Metadata</a>. In the following example, the request header sets the redirect to an object (anotherPage.html) in the same bucket:  <code>x-amz-website-redirect-location: /anotherPage.html</code>  In the following example, the request header sets the object redirect to another website:  <code>x-amz-website-redirect-location: http://www.example.com/</code>  For more information about website hosting in Amazon S3, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html">Hosting Websites on Amazon S3</a> and <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html">How to Configure Website Page Redirects</a>. <br/>StorageClass:  By default, Amazon S3 uses the STANDARD Storage Class to store newly created objects. The STANDARD storage class provides high durability and high availability. Depending on performance needs, you can specify a different Storage Class. Amazon S3 on Outposts only uses the OUTPOSTS Storage Class. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html">Storage Classes</a> in the <i>Amazon S3 User Guide</i>.<br/>ServerSideEncryption:  The server-side encryption algorithm used when storing this object in Amazon S3 (for example, AES256, aws:kms).<br/>Metadata:  A map of metadata to store with the object in S3.<br/>Key:  Object key for which the PUT action was initiated.<br/>GrantWriteACP:  Allows grantee to write the ACL for the applicable object. This action is not supported by Amazon S3 on Outposts.<br/>GrantReadACP:  Allows grantee to read the object ACL. This action is not supported by Amazon S3 on Outposts.<br/>GrantRead:  Allows grantee to read the object data and its metadata. This action is not supported by Amazon S3 on Outposts.<br/>GrantFullControl:  Gives the grantee READ, READ_ACP, and WRITE_ACP permissions on the object. This action is not supported by Amazon S3 on Outposts.<br/>Expires:  The date and time at which the object is no longer cacheable. For more information, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.21">http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.21</a>.<br/>ContentType:  A standard MIME type describing the format of the contents. For more information, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.17">http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.17</a>.<br/>ContentMD5:  The base64-encoded 128-bit MD5 digest of the message (without the headers) according to RFC 1864. This header can be used as a message integrity check to verify that the data is the same data that was originally sent. Although it is optional, we recommend using the Content-MD5 mechanism as an end-to-end integrity check. For more information about REST request authentication, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html">REST Authentication</a>.<br/>ContentLength:  Size of the body in bytes. This parameter is useful when the size of the body cannot be determined automatically. For more information, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.13">http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.13</a>.<br/>ContentLanguage:  The language the content is in.<br/>ContentEncoding:  Specifies what content encodings have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field. For more information, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.11">http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.11</a>.<br/>ContentDisposition:  Specifies presentational information for the object. For more information, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html#sec19.5.1">http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html#sec19.5.1</a>.<br/>CacheControl:   Can be used to specify caching behavior along the request/reply chain. For more information, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9">http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9</a>.<br/>Bucket:  The bucket name to which the PUT action was initiated.  When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using access points</a> in the <i>Amazon S3 User Guide</i>. When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com. When using this action using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html">Using S3 on Outposts</a> in the <i>Amazon S3 User Guide</i>.<br/>Body:  Object data.<br/>ACL:  The canned ACL to apply to the object. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL">Canned ACL</a>. This action is not supported by Amazon S3 on Outposts.<br/>
        :return: RequestCharged:  If present, indicates that the requester was successfully charged for the request.<br/>BucketKeyEnabled:  Indicates whether the uploaded object uses an S3 Bucket Key for server-side encryption with AWS KMS (SSE-KMS).<br/>SSEKMSEncryptionContext:  If present, specifies the AWS KMS Encryption Context to use for object encryption. The value of this header is a base64-encoded UTF-8 string holding JSON with the encryption context key-value pairs.<br/>SSEKMSKeyId:  If <code>x-amz-server-side-encryption</code> is present and has the value of <code>aws:kms</code>, this header specifies the ID of the AWS Key Management Service (AWS KMS) symmetric customer managed customer master key (CMK) that was used for the object. <br/>SSECustomerKeyMD5:  If server-side encryption with a customer-provided encryption key was requested, the response will include this header to provide round-trip message integrity verification of the customer-provided encryption key.<br/>SSECustomerAlgorithm:  If server-side encryption with a customer-provided encryption key was requested, the response will include this header confirming the encryption algorithm used.<br/>VersionId:  Version of the object.<br/>ServerSideEncryption:  If you specified server-side encryption either with an AWS KMS customer master key (CMK) or Amazon S3-managed encryption key in your PUT request, the response includes this header. It confirms the encryption algorithm that Amazon S3 used to encrypt the object.<br/>ETag:  Entity tag for the uploaded object.<br/>Expiration:   If the expiration is configured for the object (see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html">PutBucketLifecycleConfiguration</a>), the response includes this header. It includes the expiry-date and rule-id key-value pairs that provide information about object expiration. The value of the rule-id is URL encoded.<br/>        """
        pass

    def put_object_acl(self, Key: str, Bucket: str, ACL: str=None, AccessControlPolicy: AccessControlPolicy=None, ContentMD5: str=None, GrantFullControl: str=None, GrantRead: str=None, GrantReadACP: str=None, GrantWrite: str=None, GrantWriteACP: str=None, RequestPayer: str=None, VersionId: str=None, ExpectedBucketOwner: str=None) -> PutObjectAclOutput:
        r"""Uses the <code>acl</code> subresource to set the access control list (ACL) permissions for a new or existing object in an S3 bucket. You must have <code>WRITE_ACP</code> permission to set the ACL of an object. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#permissions">What permissions can I grant?</a> in the <i>Amazon S3 User Guide</i>. This action is not supported by Amazon S3 on Outposts. Depending on your application needs, you can choose to set the ACL on an object using either the request body or the headers. For example, if you have an existing application that updates a bucket ACL using the request body, you can continue to use that approach. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html">Access Control List (ACL) Overview</a> in the <i>Amazon S3 User Guide</i>.  <b>Access Permissions</b>  You can set access permissions using one of the following methods: <ul> <li> Specify a canned ACL with the <code>x-amz-acl</code> request header. Amazon S3 supports a set of predefined ACLs, known as canned ACLs. Each canned ACL has a predefined set of grantees and permissions. Specify the canned ACL name as the value of <code>x-amz-ac</code>l. If you use this header, you cannot use other access control-specific headers in your request. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL">Canned ACL</a>. </li> <li> Specify access permissions explicitly with the <code>x-amz-grant-read</code>, <code>x-amz-grant-read-acp</code>, <code>x-amz-grant-write-acp</code>, and <code>x-amz-grant-full-control</code> headers. When using these headers, you specify explicit access permissions and grantees (AWS accounts or Amazon S3 groups) who will receive the permission. If you use these ACL-specific headers, you cannot use <code>x-amz-acl</code> header to set a canned ACL. These parameters map to the set of permissions that Amazon S3 supports in an ACL. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html">Access Control List (ACL) Overview</a>. You specify each grantee as a type=value pair, where the type is one of the following: <ul> <li>  <code>id</code> – if the value specified is the canonical user ID of an AWS account </li> <li>  <code>uri</code> – if you are granting permissions to a predefined group </li> <li>  <code>emailAddress</code> – if the value specified is the email address of an AWS account <note> Using email addresses to specify a grantee is only supported in the following AWS Regions:  <ul> <li> US East (N. Virginia) </li> <li> US West (N. California) </li> <li>  US West (Oregon) </li> <li>  Asia Pacific (Singapore) </li> <li> Asia Pacific (Sydney) </li> <li> Asia Pacific (Tokyo) </li> <li> Europe (Ireland) </li> <li> South America (São Paulo) </li> </ul> For a list of all the Amazon S3 supported Regions and endpoints, see <a href="https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Regions and Endpoints</a> in the AWS General Reference. </note> </li> </ul> For example, the following <code>x-amz-grant-read</code> header grants list objects permission to the two AWS accounts identified by their email addresses.  <code>x-amz-grant-read: emailAddress="xyz@amazon.com", emailAddress="abc@amazon.com" </code>  </li> </ul> You can use either a canned ACL or specify access permissions explicitly. You cannot do both.  <b>Grantee Values</b>  You can specify the person (grantee) to whom you're assigning access rights (using request elements) in the following ways: <ul> <li> By the person's ID:  <code>&lt;Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="CanonicalUser"&gt;&lt;ID&gt;&lt;&gt;ID&lt;&gt;&lt;/ID&gt;&lt;DisplayName&gt;&lt;&gt;GranteesEmail&lt;&gt;&lt;/DisplayName&gt; &lt;/Grantee&gt;</code>  DisplayName is optional and ignored in the request. </li> <li> By URI:  <code>&lt;Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="Group"&gt;&lt;URI&gt;&lt;&gt;http://acs.amazonaws.com/groups/global/AuthenticatedUsers&lt;&gt;&lt;/URI&gt;&lt;/Grantee&gt;</code>  </li> <li> By Email address:  <code>&lt;Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="AmazonCustomerByEmail"&gt;&lt;EmailAddress&gt;&lt;&gt;Grantees@email.com&lt;&gt;&lt;/EmailAddress&gt;lt;/Grantee&gt;</code>  The grantee is resolved to the CanonicalUser and, in a response to a GET Object acl request, appears as the CanonicalUser. <note> Using email addresses to specify a grantee is only supported in the following AWS Regions:  <ul> <li> US East (N. Virginia) </li> <li> US West (N. California) </li> <li>  US West (Oregon) </li> <li>  Asia Pacific (Singapore) </li> <li> Asia Pacific (Sydney) </li> <li> Asia Pacific (Tokyo) </li> <li> Europe (Ireland) </li> <li> South America (São Paulo) </li> </ul> For a list of all the Amazon S3 supported Regions and endpoints, see <a href="https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Regions and Endpoints</a> in the AWS General Reference. </note> </li> </ul>  <b>Versioning</b>  The ACL of an object is set at the object version level. By default, PUT sets the ACL of the current version of an object. To set the ACL of a different version, use the <code>versionId</code> subresource. <p class="title"> <b>Related Resources</b>  <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html">CopyObject</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>  </li> </ul>

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>VersionId:  VersionId used to reference a specific version of the object.<br/>RequestPayer:  Confirms that the requester knows that they will be charged for the request. Bucket owners need not specify this parameter in their requests. For information about downloading objects from requester pays buckets, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html">Downloading Objects in Requestor Pays Buckets</a> in the <i>Amazon S3 User Guide</i>.<br/>Key:  Key for which the PUT action was initiated. When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using access points</a> in the <i>Amazon S3 User Guide</i>. When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com. When using this action using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html">Using S3 on Outposts</a> in the <i>Amazon S3 User Guide</i>.<br/>GrantWriteACP:  Allows grantee to write the ACL for the applicable bucket. This action is not supported by Amazon S3 on Outposts.<br/>GrantWrite:  Allows grantee to create new objects in the bucket. For the bucket and object owners of existing objects, also allows deletions and overwrites of those objects.<br/>GrantReadACP:  Allows grantee to read the bucket ACL. This action is not supported by Amazon S3 on Outposts.<br/>GrantRead:  Allows grantee to list the objects in the bucket. This action is not supported by Amazon S3 on Outposts.<br/>GrantFullControl:  Allows grantee the read, write, read ACP, and write ACP permissions on the bucket. This action is not supported by Amazon S3 on Outposts.<br/>ContentMD5:  The base64-encoded 128-bit MD5 digest of the data. This header must be used as a message integrity check to verify that the request body was not corrupted in transit. For more information, go to <a href="http://www.ietf.org/rfc/rfc1864.txt">RFC 1864.&gt;</a>  For requests made using the AWS Command Line Interface (CLI) or AWS SDKs, this field is calculated automatically.<br/>Bucket:  The bucket name that contains the object to which you want to attach the ACL.  When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using access points</a> in the <i>Amazon S3 User Guide</i>.<br/>AccessControlPolicy:  Contains the elements that set the ACL permissions for an object per grantee.:<br/>ACL:  The canned ACL to apply to the object. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL">Canned ACL</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Owner</i> Container for the bucket owner's display name and ID.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Owner</b>: Container for the bucket owner's display name and ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Grants</i> A list of grants.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ID</i> Container for the ID of the owner.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DisplayName</i> Container for the display name of the owner.<br/>
        :return: RequestCharged:  If present, indicates that the requester was successfully charged for the request.<br/>        """
        pass

    def put_object_legal_hold(self, Key: str, Bucket: str, LegalHold: ObjectLockLegalHold=None, RequestPayer: str=None, VersionId: str=None, ContentMD5: str=None, ExpectedBucketOwner: str=None) -> PutObjectLegalHoldOutput:
        r"""Applies a Legal Hold configuration to the specified object. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html">Locking Objects</a>. This action is not supported by Amazon S3 on Outposts.

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>ContentMD5:  The MD5 hash for the request body. For requests made using the AWS Command Line Interface (CLI) or AWS SDKs, this field is calculated automatically.<br/>VersionId:  The version ID of the object that you want to place a Legal Hold on.<br/>RequestPayer:  Confirms that the requester knows that they will be charged for the request. Bucket owners need not specify this parameter in their requests. For information about downloading objects from requester pays buckets, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html">Downloading Objects in Requestor Pays Buckets</a> in the <i>Amazon S3 User Guide</i>.<br/>LegalHold:  Container element for the Legal Hold configuration you want to apply to the specified object.:<br/>Key:  The key name for the object that you want to place a Legal Hold on.<br/>Bucket:  The bucket name containing the object that you want to place a Legal Hold on.  When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using access points</a> in the <i>Amazon S3 User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Indicates whether the specified object has a Legal Hold in place.<br/>
        :return: RequestCharged:  If present, indicates that the requester was successfully charged for the request.<br/>        """
        pass

    def put_object_lock_configuration(self, Bucket: str, ObjectLockConfiguration: ObjectLockConfiguration=None, RequestPayer: str=None, Token: str=None, ContentMD5: str=None, ExpectedBucketOwner: str=None) -> PutObjectLockConfigurationOutput:
        r"""Places an Object Lock configuration on the specified bucket. The rule specified in the Object Lock configuration will be applied by default to every new object placed in the specified bucket. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html">Locking Objects</a>.  <note> <ul> <li> The <code>DefaultRetention</code> settings require both a mode and a period. </li> <li> The <code>DefaultRetention</code> period can be either <code>Days</code> or <code>Years</code> but you must select one. You cannot specify <code>Days</code> and <code>Years</code> at the same time. </li> <li> You can only enable Object Lock for new buckets. If you want to turn on Object Lock for an existing bucket, contact AWS Support. </li> </ul> </note>

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>ContentMD5:  The MD5 hash for the request body. For requests made using the AWS Command Line Interface (CLI) or AWS SDKs, this field is calculated automatically.<br/>Token:  A token to allow Object Lock to be enabled for an existing bucket.<br/>RequestPayer:  Confirms that the requester knows that they will be charged for the request. Bucket owners need not specify this parameter in their requests. For information about downloading objects from requester pays buckets, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html">Downloading Objects in Requestor Pays Buckets</a> in the <i>Amazon S3 User Guide</i>.<br/>ObjectLockConfiguration:  The Object Lock configuration that you want to apply to the specified bucket.:<br/>Bucket:  The bucket whose Object Lock configuration you want to create or replace.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Rule</i> Specifies the Object Lock rule for the specified object. Enable the this rule when you apply <code>ObjectLockConfiguration</code> to a bucket. Bucket settings require both a mode and a period. The period can be either <code>Days</code> or <code>Years</code> but you must select one. You cannot specify <code>Days</code> and <code>Years</code> at the same time.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Rule</b>: Specifies the Object Lock rule for the specified object. Enable the this rule when you apply <code>ObjectLockConfiguration</code> to a bucket. Bucket settings require both a mode and a period. The period can be either <code>Days</code> or <code>Years</code> but you must select one. You cannot specify <code>Days</code> and <code>Years</code> at the same time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ObjectLockEnabled</i> Indicates whether this bucket has an Object Lock configuration enabled. Enable <code>ObjectLockEnabled</code> when you apply <code>ObjectLockConfiguration</code> to a bucket. <br/>The default Object Lock retention mode and period that you want to apply to new objects placed in the specified bucket. Bucket settings require both a mode and a period. The period can be either <code>Days</code> or <code>Years</code> but you must select one. You cannot specify <code>Days</code> and <code>Years</code> at the same time.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DefaultRetention</b>: The default Object Lock retention mode and period that you want to apply to new objects placed in the specified bucket. Bucket settings require both a mode and a period. The period can be either <code>Days</code> or <code>Years</code> but you must select one. You cannot specify <code>Days</code> and <code>Years</code> at the same time.
        :return: RequestCharged:  If present, indicates that the requester was successfully charged for the request.<br/>        """
        pass

    def put_object_retention(self, Key: str, Bucket: str, Retention: ObjectLockRetention=None, RequestPayer: str=None, VersionId: str=None, BypassGovernanceRetention: BypassGovernanceRetention=None, ContentMD5: str=None, ExpectedBucketOwner: str=None) -> PutObjectRetentionOutput:
        r"""Places an Object Retention configuration on an object. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html">Locking Objects</a>.  This action is not supported by Amazon S3 on Outposts.

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>ContentMD5:  The MD5 hash for the request body. For requests made using the AWS Command Line Interface (CLI) or AWS SDKs, this field is calculated automatically.<br/>BypassGovernanceRetention:  Indicates whether this action should bypass Governance-mode restrictions.<br/>VersionId:  The version ID for the object that you want to apply this Object Retention configuration to.<br/>RequestPayer:  Confirms that the requester knows that they will be charged for the request. Bucket owners need not specify this parameter in their requests. For information about downloading objects from requester pays buckets, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html">Downloading Objects in Requestor Pays Buckets</a> in the <i>Amazon S3 User Guide</i>.<br/>Retention:  The container element for the Object Retention configuration.:<br/>Key:  The key name for the object that you want to apply this Object Retention configuration to.<br/>Bucket:  The bucket name that contains the object you want to apply this Object Retention configuration to.  When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using access points</a> in the <i>Amazon S3 User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RetainUntilDate</i> The date on which this Object Lock Retention will expire.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Mode</i> Indicates the Retention mode for the specified object.<br/>
        :return: RequestCharged:  If present, indicates that the requester was successfully charged for the request.<br/>        """
        pass

    def put_object_tagging(self, Tagging: Tagging, Key: str, Bucket: str, VersionId: str=None, ContentMD5: str=None, ExpectedBucketOwner: str=None, RequestPayer: str=None) -> PutObjectTaggingOutput:
        r"""Sets the supplied tag-set to an object that already exists in a bucket. A tag is a key-value pair. You can associate tags with an object by sending a PUT request against the tagging subresource that is associated with the object. You can retrieve tags by sending a GET request. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html">GetObjectTagging</a>. For tagging-related restrictions related to characters and encodings, see <a href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/allocation-tag-restrictions.html">Tag Restrictions</a>. Note that Amazon S3 limits the maximum number of tags to 10 tags per object. To use this operation, you must have permission to perform the <code>s3:PutObjectTagging</code> action. By default, the bucket owner has this permission and can grant this permission to others. To put tags of any other version, use the <code>versionId</code> query parameter. You also need permission for the <code>s3:PutObjectVersionTagging</code> action. For information about the Amazon S3 object tagging feature, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-tagging.html">Object Tagging</a>. <p class="title"> <b>Special Errors</b>  <ul> <li> <ul> <li>  <i>Code: InvalidTagError </i>  </li> <li>  <i>Cause: The tag provided was not a valid tag. This error can occur if the tag did not pass input validation. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-tagging.html">Object Tagging</a>.</i>  </li> </ul> </li> <li> <ul> <li>  <i>Code: MalformedXMLError </i>  </li> <li>  <i>Cause: The XML provided does not match the schema.</i>  </li> </ul> </li> <li> <ul> <li>  <i>Code: OperationAbortedError </i>  </li> <li>  <i>Cause: A conflicting conditional action is currently in progress against this resource. Please try again.</i>  </li> </ul> </li> <li> <ul> <li>  <i>Code: InternalError</i>  </li> <li>  <i>Cause: The service was unable to apply the provided tag to the object.</i>  </li> </ul> </li> </ul> <p class="title"> <b>Related Resources</b>  <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html">GetObjectTagging</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjectTagging.html">DeleteObjectTagging</a>  </li> </ul>

        :param self:
        :param RequestPayer:  Confirms that the requester knows that they will be charged for the request. Bucket owners need not specify this parameter in their requests. For information about downloading objects from requester pays buckets, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html">Downloading Objects in Requestor Pays Buckets</a> in the <i>Amazon S3 User Guide</i>.<br/>ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>Tagging:  Container for the <code>TagSet</code> and <code>Tag</code> elements:<br/>ContentMD5:  The MD5 hash for the request body. For requests made using the AWS Command Line Interface (CLI) or AWS SDKs, this field is calculated automatically.<br/>VersionId:  The versionId of the object that the tag-set will be added to.<br/>Key:  Name of the object key.<br/>Bucket:  The bucket name containing the object.  When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using access points</a> in the <i>Amazon S3 User Guide</i>. When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com. When using this action using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html">Using S3 on Outposts</a> in the <i>Amazon S3 User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TagSet</i> A collection for a set of tags<br/>
        :return: VersionId:  The versionId of the object the tag-set was added to.<br/>        """
        pass

    def put_public_access_block(self, PublicAccessBlockConfiguration: PublicAccessBlockConfiguration, Bucket: str, ContentMD5: str=None, ExpectedBucketOwner: str=None):
        r"""Creates or modifies the <code>PublicAccessBlock</code> configuration for an Amazon S3 bucket. To use this operation, you must have the <code>s3:PutBucketPublicAccessBlock</code> permission. For more information about Amazon S3 permissions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html">Specifying Permissions in a Policy</a>. <important> When Amazon S3 evaluates the <code>PublicAccessBlock</code> configuration for a bucket or an object, it checks the <code>PublicAccessBlock</code> configuration for both the bucket (or the bucket that contains the object) and the bucket owner's account. If the <code>PublicAccessBlock</code> configurations are different between the bucket and the account, Amazon S3 uses the most restrictive combination of the bucket-level and account-level settings. </important> For more information about when Amazon S3 considers a bucket or an object public, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status">The Meaning of "Public"</a>. <p class="title"> <b>Related Resources</b>  <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetPublicAccessBlock.html">GetPublicAccessBlock</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeletePublicAccessBlock.html">DeletePublicAccessBlock</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketPolicyStatus.html">GetBucketPolicyStatus</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html">Using Amazon S3 Block Public Access</a>  </li> </ul>

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>PublicAccessBlockConfiguration:  The <code>PublicAccessBlock</code> configuration that you want to apply to this Amazon S3 bucket. You can enable the configuration options in any combination. For more information about when Amazon S3 considers a bucket or object public, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status">The Meaning of "Public"</a> in the <i>Amazon S3 User Guide</i>.:<br/>ContentMD5:  The MD5 hash of the <code>PutPublicAccessBlock</code> request body.  For requests made using the AWS Command Line Interface (CLI) or AWS SDKs, this field is calculated automatically.<br/>Bucket:  The name of the Amazon S3 bucket whose <code>PublicAccessBlock</code> configuration you want to set.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RestrictPublicBuckets</i> Specifies whether Amazon S3 should restrict public bucket policies for this bucket. Setting this element to <code>TRUE</code> restricts access to this bucket to only AWS service principals and authorized users within this account if the bucket has a public policy. Enabling this setting doesn't affect previously stored bucket policies, except that public and cross-account access within any public bucket policy, including non-public delegation to specific accounts, is blocked.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BlockPublicPolicy</i> Specifies whether Amazon S3 should block public bucket policies for this bucket. Setting this element to <code>TRUE</code> causes Amazon S3 to reject calls to PUT Bucket policy if the specified bucket policy allows public access.  Enabling this setting doesn't affect existing bucket policies.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IgnorePublicAcls</i> Specifies whether Amazon S3 should ignore public ACLs for this bucket and objects in this bucket. Setting this element to <code>TRUE</code> causes Amazon S3 to ignore all public ACLs on this bucket and objects in this bucket. Enabling this setting doesn't affect the persistence of any existing ACLs and doesn't prevent new public ACLs from being set.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BlockPublicAcls</i> Specifies whether Amazon S3 should block public access control lists (ACLs) for this bucket and objects in this bucket. Setting this element to <code>TRUE</code> causes the following behavior: <ul> <li> PUT Bucket acl and PUT Object acl calls fail if the specified ACL is public. </li> <li> PUT Object calls fail if the request includes a public ACL. </li> <li> PUT Bucket calls fail if the request includes a public ACL. </li> </ul> Enabling this setting doesn't affect existing policies or ACLs.<br/>
        :return:         """
        pass

    def restore_object(self, Key: str, Bucket: str, VersionId: str=None, RestoreRequest: RestoreRequest=None, RequestPayer: str=None, ExpectedBucketOwner: str=None) -> RestoreObjectOutput:
        r"""Restores an archived copy of an object back into Amazon S3 This action is not supported by Amazon S3 on Outposts. This action performs the following types of requests:  <ul> <li>  <code>select</code> - Perform a select query on an archived object </li> <li>  <code>restore an archive</code> - Restore an archived object </li> </ul> To use this operation, you must have permissions to perform the <code>s3:RestoreObject</code> action. The bucket owner has this permission by default and can grant this permission to others. For more information about permissions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions Related to Bucket Subresource Operations</a> and <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing Access Permissions to Your Amazon S3 Resources</a> in the <i>Amazon S3 User Guide</i>.  <b>Querying Archives with Select Requests</b>  You use a select type of request to perform SQL queries on archived objects. The archived objects that are being queried by the select request must be formatted as uncompressed comma-separated values (CSV) files. You can run queries and custom analytics on your archived data without having to restore your data to a hotter Amazon S3 tier. For an overview about select requests, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/querying-glacier-archives.html">Querying Archived Objects</a> in the <i>Amazon S3 User Guide</i>. When making a select request, do the following: <ul> <li> Define an output location for the select query's output. This must be an Amazon S3 bucket in the same AWS Region as the bucket that contains the archive object that is being queried. The AWS account that initiates the job must have permissions to write to the S3 bucket. You can specify the storage class and encryption for the output objects stored in the bucket. For more information about output, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/querying-glacier-archives.html">Querying Archived Objects</a> in the <i>Amazon S3 User Guide</i>. For more information about the <code>S3</code> structure in the request body, see the following: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html">PutObject</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html">Managing Access with ACLs</a> in the <i>Amazon S3 User Guide</i>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html">Protecting Data Using Server-Side Encryption</a> in the <i>Amazon S3 User Guide</i>  </li> </ul> </li> <li> Define the SQL expression for the <code>SELECT</code> type of restoration for your query in the request body's <code>SelectParameters</code> structure. You can use expressions like the following examples. <ul> <li> The following expression returns all records from the specified object.  <code>SELECT * FROM Object</code>  </li> <li> Assuming that you are not using any headers for data stored in the object, you can specify columns with positional headers.  <code>SELECT s._1, s._2 FROM Object s WHERE s._3 &gt; 100</code>  </li> <li> If you have headers and you set the <code>fileHeaderInfo</code> in the <code>CSV</code> structure in the request body to <code>USE</code>, you can specify headers in the query. (If you set the <code>fileHeaderInfo</code> field to <code>IGNORE</code>, the first row is skipped for the query.) You cannot mix ordinal positions with header column names.   <code>SELECT s.Id, s.FirstName, s.SSN FROM S3Object s</code>  </li> </ul> </li> </ul> For more information about using SQL with S3 Glacier Select restore, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-glacier-select-sql-reference.html">SQL Reference for Amazon S3 Select and S3 Glacier Select</a> in the <i>Amazon S3 User Guide</i>.  When making a select request, you can also do the following: <ul> <li> To expedite your queries, specify the <code>Expedited</code> tier. For more information about tiers, see "Restoring Archives," later in this topic. </li> <li> Specify details about the data serialization format of both the input object that is being queried and the serialization of the CSV-encoded query results. </li> </ul> The following are additional important facts about the select feature: <ul> <li> The output results are new Amazon S3 objects. Unlike archive retrievals, they are stored until explicitly deleted-manually or through a lifecycle policy. </li> <li> You can issue more than one select request on the same Amazon S3 object. Amazon S3 doesn't deduplicate requests, so avoid issuing duplicate requests. </li> <li>  Amazon S3 accepts a select request even if the object has already been restored. A select request doesn’t return error response <code>409</code>. </li> </ul>  <b>Restoring objects</b>  Objects that you archive to the S3 Glacier or S3 Glacier Deep Archive storage class, and S3 Intelligent-Tiering Archive or S3 Intelligent-Tiering Deep Archive tiers are not accessible in real time. For objects in Archive Access or Deep Archive Access tiers you must first initiate a restore request, and then wait until the object is moved into the Frequent Access tier. For objects in S3 Glacier or S3 Glacier Deep Archive storage classes you must first initiate a restore request, and then wait until a temporary copy of the object is available. To access an archived object, you must restore the object for the duration (number of days) that you specify. To restore a specific object version, you can provide a version ID. If you don't provide a version ID, Amazon S3 restores the current version. When restoring an archived object (or using a select request), you can specify one of the following data access tier options in the <code>Tier</code> element of the request body:  <ul> <li>  <b> <code>Expedited</code> </b> - Expedited retrievals allow you to quickly access your data stored in the S3 Glacier storage class or S3 Intelligent-Tiering Archive tier when occasional urgent requests for a subset of archives are required. For all but the largest archived objects (250 MB+), data accessed using Expedited retrievals is typically made available within 1–5 minutes. Provisioned capacity ensures that retrieval capacity for Expedited retrievals is available when you need it. Expedited retrievals and provisioned capacity are not available for objects stored in the S3 Glacier Deep Archive storage class or S3 Intelligent-Tiering Deep Archive tier. </li> <li>  <b> <code>Standard</code> </b> - Standard retrievals allow you to access any of your archived objects within several hours. This is the default option for retrieval requests that do not specify the retrieval option. Standard retrievals typically finish within 3–5 hours for objects stored in the S3 Glacier storage class or S3 Intelligent-Tiering Archive tier. They typically finish within 12 hours for objects stored in the S3 Glacier Deep Archive storage class or S3 Intelligent-Tiering Deep Archive tier. Standard retrievals are free for objects stored in S3 Intelligent-Tiering. </li> <li>  <b> <code>Bulk</code> </b> - Bulk retrievals are the lowest-cost retrieval option in S3 Glacier, enabling you to retrieve large amounts, even petabytes, of data inexpensively. Bulk retrievals typically finish within 5–12 hours for objects stored in the S3 Glacier storage class or S3 Intelligent-Tiering Archive tier. They typically finish within 48 hours for objects stored in the S3 Glacier Deep Archive storage class or S3 Intelligent-Tiering Deep Archive tier. Bulk retrievals are free for objects stored in S3 Intelligent-Tiering. </li> </ul> For more information about archive retrieval options and provisioned capacity for <code>Expedited</code> data access, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/restoring-objects.html">Restoring Archived Objects</a> in the <i>Amazon S3 User Guide</i>.  You can use Amazon S3 restore speed upgrade to change the restore speed to a faster speed while it is in progress. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/restoring-objects.html#restoring-objects-upgrade-tier.title.html"> Upgrading the speed of an in-progress restore</a> in the <i>Amazon S3 User Guide</i>.  To get the status of object restoration, you can send a <code>HEAD</code> request. Operations return the <code>x-amz-restore</code> header, which provides information about the restoration status, in the response. You can use Amazon S3 event notifications to notify you when a restore is initiated or completed. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html">Configuring Amazon S3 Event Notifications</a> in the <i>Amazon S3 User Guide</i>. After restoring an archived object, you can update the restoration period by reissuing the request with a new period. Amazon S3 updates the restoration period relative to the current time and charges only for the request-there are no data transfer charges. You cannot update the restoration period when Amazon S3 is actively processing your current restore request for the object. If your bucket has a lifecycle configuration with a rule that includes an expiration action, the object expiration overrides the life span that you specify in a restore request. For example, if you restore an object copy for 10 days, but the object is scheduled to expire in 3 days, Amazon S3 deletes the object in 3 days. For more information about lifecycle configuration, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html">PutBucketLifecycleConfiguration</a> and <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html">Object Lifecycle Management</a> in <i>Amazon S3 User Guide</i>.  <b>Responses</b>  A successful action returns either the <code>200 OK</code> or <code>202 Accepted</code> status code.  <ul> <li> If the object is not previously restored, then Amazon S3 returns <code>202 Accepted</code> in the response.  </li> <li> If the object is previously restored, Amazon S3 returns <code>200 OK</code> in the response.  </li> </ul> <p class="title"> <b>Special Errors</b>  <ul> <li> <ul> <li>  <i>Code: RestoreAlreadyInProgress</i>  </li> <li>  <i>Cause: Object restore is already in progress. (This error does not apply to SELECT type requests.)</i>  </li> <li>  <i>HTTP Status Code: 409 Conflict</i>  </li> <li>  <i>SOAP Fault Code Prefix: Client</i>  </li> </ul> </li> <li> <ul> <li>  <i>Code: GlacierExpeditedRetrievalNotAvailable</i>  </li> <li>  <i>Cause: expedited retrievals are currently not available. Try again later. (Returned if there is insufficient capacity to process the Expedited request. This error applies only to Expedited retrievals and not to S3 Standard or Bulk retrievals.)</i>  </li> <li>  <i>HTTP Status Code: 503</i>  </li> <li>  <i>SOAP Fault Code Prefix: N/A</i>  </li> </ul> </li> </ul> <p class="title"> <b>Related Resources</b>  <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html">PutBucketLifecycleConfiguration</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketNotificationConfiguration.html">GetBucketNotificationConfiguration</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-glacier-select-sql-reference.html">SQL Reference for Amazon S3 Select and S3 Glacier Select </a> in the <i>Amazon S3 User Guide</i>  </li> </ul>

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>RequestPayer:  Confirms that the requester knows that they will be charged for the request. Bucket owners need not specify this parameter in their requests. For information about downloading objects from requester pays buckets, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html">Downloading Objects in Requestor Pays Buckets</a> in the <i>Amazon S3 User Guide</i>.<br/>RestoreRequest:  Container for restore job parameters.:<br/>VersionId:  VersionId used to reference a specific version of the object.<br/>Key:  Object key for which the action was initiated.<br/>Bucket:  The bucket name containing the object to restore.  When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using access points</a> in the <i>Amazon S3 User Guide</i>. When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com. When using this action using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html">Using S3 on Outposts</a> in the <i>Amazon S3 User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OutputLocation</i> Describes the location where the restore job's output is stored.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>OutputLocation</b>: Describes the location where the restore job's output is stored.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SelectParameters</i> Describes the parameters for Select job types.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SelectParameters</b>: Describes the parameters for Select job types.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The optional description for the job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tier</i> Retrieval tier at which the restore will be processed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> Type of restore request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlacierJobParameters</i> S3 Glacier related parameters pertaining to this job. Do not use with restores that specify <code>OutputLocation</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>GlacierJobParameters</b>: S3 Glacier related parameters pertaining to this job. Do not use with restores that specify <code>OutputLocation</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Days</i> Lifetime of the active copy in days. Do not use with restores that specify <code>OutputLocation</code>. The Days element is required for regular restores, and must not be provided for select requests.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Tier</i> Retrieval tier at which the restore will be processed.<br/>Describes the serialization format of the object.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>InputSerialization</b>: Describes the serialization format of the object.Describes an S3 location that will receive the results of the restore request.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3</b>: Describes an S3 location that will receive the results of the restore request.
        :return: RestoreOutputPath:  Indicates the path in the provided S3 output location where Select results will be restored to.<br/>RequestCharged:  If present, indicates that the requester was successfully charged for the request.<br/>        """
        pass

    def select_object_content(self, OutputSerialization: OutputSerialization, InputSerialization: InputSerialization, ExpressionType: str, Expression: str, Key: str, Bucket: str, SSECustomerAlgorithm: str=None, SSECustomerKey: str=None, SSECustomerKeyMD5: str=None, RequestProgress: RequestProgress=None, ScanRange: ScanRange=None, ExpectedBucketOwner: str=None) -> SelectObjectContentOutput:
        r"""This action filters the contents of an Amazon S3 object based on a simple structured query language (SQL) statement. In the request, along with the SQL expression, you must also specify a data serialization format (JSON, CSV, or Apache Parquet) of the object. Amazon S3 uses this format to parse object data into records, and returns only records that match the specified SQL expression. You must also specify the data serialization format for the response. This action is not supported by Amazon S3 on Outposts. For more information about Amazon S3 Select, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/selecting-content-from-objects.html">Selecting Content from Objects</a> in the <i>Amazon S3 User Guide</i>. For more information about using SQL with Amazon S3 Select, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-glacier-select-sql-reference.html"> SQL Reference for Amazon S3 Select and S3 Glacier Select</a> in the <i>Amazon S3 User Guide</i>. <p/>  <b>Permissions</b>  You must have <code>s3:GetObject</code> permission for this operation. Amazon S3 Select does not support anonymous access. For more information about permissions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html">Specifying Permissions in a Policy</a> in the <i>Amazon S3 User Guide</i>. <p/>  <i>Object Data Formats</i>  You can use Amazon S3 Select to query objects that have the following format properties: <ul> <li>  <i>CSV, JSON, and Parquet</i> - Objects must be in CSV, JSON, or Parquet format. </li> <li>  <i>UTF-8</i> - UTF-8 is the only encoding type Amazon S3 Select supports. </li> <li>  <i>GZIP or BZIP2</i> - CSV and JSON files can be compressed using GZIP or BZIP2. GZIP and BZIP2 are the only compression formats that Amazon S3 Select supports for CSV and JSON files. Amazon S3 Select supports columnar compression for Parquet using GZIP or Snappy. Amazon S3 Select does not support whole-object compression for Parquet objects. </li> <li>  <i>Server-side encryption</i> - Amazon S3 Select supports querying objects that are protected with server-side encryption. For objects that are encrypted with customer-provided encryption keys (SSE-C), you must use HTTPS, and you must use the headers that are documented in the <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>. For more information about SSE-C, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html">Server-Side Encryption (Using Customer-Provided Encryption Keys)</a> in the <i>Amazon S3 User Guide</i>. For objects that are encrypted with Amazon S3 managed encryption keys (SSE-S3) and customer master keys (CMKs) stored in AWS Key Management Service (SSE-KMS), server-side encryption is handled transparently, so you don't need to specify anything. For more information about server-side encryption, including SSE-S3 and SSE-KMS, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html">Protecting Data Using Server-Side Encryption</a> in the <i>Amazon S3 User Guide</i>. </li> </ul>  <b>Working with the Response Body</b>  Given the response size is unknown, Amazon S3 Select streams the response as a series of messages and includes a <code>Transfer-Encoding</code> header with <code>chunked</code> as its value in the response. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/RESTSelectObjectAppendix.html">Appendix: SelectObjectContent Response</a> . <p/>  <b>GetObject Support</b>  The <code>SelectObjectContent</code> action does not support the following <code>GetObject</code> functionality. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>. <ul> <li>  <code>Range</code>: Although you can specify a scan range for an Amazon S3 Select request (see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_SelectObjectContent.html#AmazonS3-SelectObjectContent-request-ScanRange">SelectObjectContentRequest - ScanRange</a> in the request parameters), you cannot specify the range of bytes of an object to return.  </li> <li> GLACIER, DEEP_ARCHIVE and REDUCED_REDUNDANCY storage classes: You cannot specify the GLACIER, DEEP_ARCHIVE, or <code>REDUCED_REDUNDANCY</code> storage classes. For more information, about storage classes see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMetadata.html#storage-class-intro">Storage Classes</a> in the <i>Amazon S3 User Guide</i>. </li> </ul> <p/>  <b>Special Errors</b>  For a list of special errors for this operation, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#SelectObjectContentErrorCodeList">List of SELECT Object Content Error Codes</a>  <p class="title"> <b>Related Resources</b>  <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html">GetBucketLifecycleConfiguration</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html">PutBucketLifecycleConfiguration</a>  </li> </ul>

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>ScanRange:  Specifies the byte range of the object to get the records from. A record is processed when its first byte is contained by the range. This parameter is optional, but when specified, it must not be empty. See RFC 2616, Section 14.35.1 about how to specify the start and end of the range.  <code>ScanRange</code>may be used in the following ways: <ul> <li>  <code>&lt;scanrange&gt;&lt;start&gt;50&lt;/start&gt;&lt;end&gt;100&lt;/end&gt;&lt;/scanrange&gt;</code> - process only the records starting between the bytes 50 and 100 (inclusive, counting from zero) </li> <li>  <code>&lt;scanrange&gt;&lt;start&gt;50&lt;/start&gt;&lt;/scanrange&gt;</code> - process only the records starting after the byte 50 </li> <li>  <code>&lt;scanrange&gt;&lt;end&gt;50&lt;/end&gt;&lt;/scanrange&gt;</code> - process only the records within the last 50 bytes of the file. </li> </ul>:<br/>OutputSerialization:  Describes the format of the data that you want Amazon S3 to return in response.:<br/>InputSerialization:  Describes the format of the data in the object that is being queried.:<br/>RequestProgress:  Specifies if periodic request progress information should be enabled.:<br/>ExpressionType:  The type of the provided expression (for example, SQL).<br/>Expression:  The expression that is used to query the object.<br/>SSECustomerKeyMD5:  The SSE Customer Key MD5. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html">Server-Side Encryption (Using Customer-Provided Encryption Keys</a>. <br/>SSECustomerKey:  The SSE Customer Key. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html">Server-Side Encryption (Using Customer-Provided Encryption Keys</a>. <br/>SSECustomerAlgorithm:  The SSE Algorithm used to encrypt the object. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html">Server-Side Encryption (Using Customer-Provided Encryption Keys</a>. <br/>Key:  The object key.<br/>Bucket:  The S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Specifies whether periodic QueryProgress frames should be sent. Valid values: TRUE, FALSE. Default value: FALSE.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JSON</i> Specifies JSON as object's input serialization format.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>JSON</b>: Specifies JSON as object's input serialization format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CompressionType</i> Specifies object's compression format. Valid values: NONE, GZIP, BZIP2. Default Value: NONE.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CSV</i> Describes the serialization of a CSV-encoded object.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CSV</b>: Describes the serialization of a CSV-encoded object.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowQuotedRecordDelimiter</i> Specifies that CSV field values may contain quoted record delimiters and such records should be allowed. Default value is FALSE. Setting this value to TRUE may lower performance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>QuoteCharacter</i> A single character used for escaping when the field delimiter is part of the value. For example, if the value is <code>a, b</code>, Amazon S3 wraps this field value in quotation marks, as follows: <code>" a , b "</code>. Type: String Default: <code>"</code>  Ancestors: <code>CSV</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FieldDelimiter</i> A single character used to separate individual fields in a record. You can specify an arbitrary delimiter.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RecordDelimiter</i> A single character used to separate individual records in the input. Instead of the default value, you can specify an arbitrary delimiter.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>QuoteEscapeCharacter</i> A single character used for escaping the quotation mark character inside an already escaped value. For example, the value triple-quotes a , b triple-quotes is parsed as " a , b ".<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Comments</i> A single character used to indicate that a row should be ignored when the character is present at the start of that row. You can specify any character to indicate a comment line.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FileHeaderInfo</i> Describes the first line of input. Valid values are: <ul> <li>  <code>NONE</code>: First line is not a header. </li> <li>  <code>IGNORE</code>: First line is a header, but you can't use the header values to indicate the column in an expression. You can use column position (such as _1, _2, …) to indicate the column (<code>SELECT s._1 FROM OBJECT s</code>). </li> <li>  <code>Use</code>: First line is a header, and you can use the header value to identify a column in an expression (<code>SELECT "name" FROM OBJECT</code>).  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of JSON. Valid values: Document, Lines.<br/>Specifies Parquet as object's input serialization format.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Parquet</b>: Specifies Parquet as object's input serialization format.&nbsp;&nbsp;&nbsp;&nbsp; <i>JSON</i> Specifies JSON as request's output serialization format.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>JSON</b>: Specifies JSON as request's output serialization format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CSV</i> Describes the serialization of CSV-encoded Select results.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CSV</b>: Describes the serialization of CSV-encoded Select results.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>QuoteCharacter</i> A single character used for escaping when the field delimiter is part of the value. For example, if the value is <code>a, b</code>, Amazon S3 wraps this field value in quotation marks, as follows: <code>" a , b "</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FieldDelimiter</i> The value used to separate individual fields in a record. You can specify an arbitrary delimiter.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RecordDelimiter</i> A single character used to separate individual records in the output. Instead of the default value, you can specify an arbitrary delimiter.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>QuoteEscapeCharacter</i> The single character used for escaping the quote character inside an already escaped value.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>QuoteFields</i> Indicates whether to use quotation marks around output fields.  <ul> <li>  <code>ALWAYS</code>: Always use quotation marks for output fields. </li> <li>  <code>ASNEEDED</code>: Use quotation marks for output fields when needed. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RecordDelimiter</i> The value used to separate individual records in the output. If no value is specified, Amazon S3 uses a newline character ('\n').<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>End</i> Specifies the end of the byte range. This parameter is optional. Valid values: non-negative integers. The default value is one less than the size of the object being queried. If only the End parameter is supplied, it is interpreted to mean scan the last N bytes of the file. For example, <code>&lt;scanrange&gt;&lt;end&gt;50&lt;/end&gt;&lt;/scanrange&gt;</code> means scan the last 50 bytes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Start</i> Specifies the start of the byte range. This parameter is optional. Valid values: non-negative integers. The default value is 0. If only start is supplied, it means scan from that point to the end of the file.For example; <code>&lt;scanrange&gt;&lt;start&gt;50&lt;/start&gt;&lt;/scanrange&gt;</code> means scan from byte 50 until the end of the file.<br/>
        :return: Payload:  The array of results.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Progress</i> The Progress Event.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Progress</b>: The Progress Event.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Stats</i> The Stats Event.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Stats</b>: The Stats Event.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Records</i> The Records Event.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Records</b>: The Records Event.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Payload</i> The byte array of partial, one or more result records.<br/>The Stats event details.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Details</b>: The Stats event details.The Progress event details.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Details</b>: The Progress event details.The Continuation Event.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Cont</b>: The Continuation Event.        """
        pass

    def upload_part(self, UploadId: str, PartNumber: int, Key: str, Bucket: str, Body: Body=None, ContentLength: ContentLength=None, ContentMD5: str=None, SSECustomerAlgorithm: str=None, SSECustomerKey: str=None, SSECustomerKeyMD5: str=None, RequestPayer: str=None, ExpectedBucketOwner: str=None) -> UploadPartOutput:
        r"""Uploads a part in a multipart upload. <note> In this operation, you provide part data in your request. However, you have an option to specify your existing Amazon S3 object as a data source for the part you are uploading. To upload a part from an existing object, you use the <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html">UploadPartCopy</a> operation.  </note> You must initiate a multipart upload (see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a>) before you can upload any part. In response to your initiate request, Amazon S3 returns an upload ID, a unique identifier, that you must include in your upload part request. Part numbers can be any number from 1 to 10,000, inclusive. A part number uniquely identifies a part and also defines its position within the object being created. If you upload a new part using the same part number that was used with a previous part, the previously uploaded part is overwritten. Each part must be at least 5 MB in size, except the last part. There is no size limit on the last part of your multipart upload. To ensure that data is not corrupted when traversing the network, specify the <code>Content-MD5</code> header in the upload part request. Amazon S3 checks the part data against the provided MD5 value. If they do not match, Amazon S3 returns an error.  If the upload request is signed with Signature Version 4, then AWS S3 uses the <code>x-amz-content-sha256</code> header as a checksum instead of <code>Content-MD5</code>. For more information see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-auth-using-authorization-header.html">Authenticating Requests: Using the Authorization Header (AWS Signature Version 4)</a>.   <b>Note:</b> After you initiate multipart upload and upload one or more parts, you must either complete or abort multipart upload in order to stop getting charged for storage of the uploaded parts. Only after you either complete or abort multipart upload, Amazon S3 frees up the parts storage and stops charging you for the parts storage. For more information on multipart uploads, go to <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html">Multipart Upload Overview</a> in the <i>Amazon S3 User Guide </i>. For information on the permissions required to use the multipart upload API, go to <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html">Multipart Upload and Permissions</a> in the <i>Amazon S3 User Guide</i>. You can optionally request server-side encryption where Amazon S3 encrypts your data as it writes it to disks in its data centers and decrypts it for you when you access it. You have the option of providing your own encryption key, or you can use the AWS managed encryption keys. If you choose to provide your own encryption key, the request headers you provide in the request must match the headers you used in the request to initiate the upload by using <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a>. For more information, go to <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html">Using Server-Side Encryption</a> in the <i>Amazon S3 User Guide</i>. Server-side encryption is supported by the S3 Multipart Upload actions. Unless you are using a customer-provided encryption key, you don't need to specify the encryption parameters in each UploadPart request. Instead, you only need to specify the server-side encryption parameters in the initial Initiate Multipart request. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a>. If you requested server-side encryption using a customer-provided encryption key in your initiate multipart upload request, you must provide identical encryption information in each part upload using the following headers. <ul> <li> x-amz-server-side-encryption-customer-algorithm </li> <li> x-amz-server-side-encryption-customer-key </li> <li> x-amz-server-side-encryption-customer-key-MD5 </li> </ul> <p class="title"> <b>Special Errors</b>  <ul> <li> <ul> <li>  <i>Code: NoSuchUpload</i>  </li> <li>  <i>Cause: The specified multipart upload does not exist. The upload ID might be invalid, or the multipart upload might have been aborted or completed.</i>  </li> <li>  <i> HTTP Status Code: 404 Not Found </i>  </li> <li>  <i>SOAP Fault Code Prefix: Client</i>  </li> </ul> </li> </ul> <p class="title"> <b>Related Resources</b>  <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html">CompleteMultipartUpload</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html">AbortMultipartUpload</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html">ListParts</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html">ListMultipartUploads</a>  </li> </ul>

        :param self:
        :param ExpectedBucketOwner:  The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>RequestPayer:  Confirms that the requester knows that they will be charged for the request. Bucket owners need not specify this parameter in their requests. For information about downloading objects from requester pays buckets, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html">Downloading Objects in Requestor Pays Buckets</a> in the <i>Amazon S3 User Guide</i>.<br/>SSECustomerKeyMD5:  Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure that the encryption key was transmitted without error.<br/>SSECustomerKey:  Specifies the customer-provided encryption key for Amazon S3 to use in encrypting data. This value is used to store the object and then it is discarded; Amazon S3 does not store the encryption key. The key must be appropriate for use with the algorithm specified in the <code>x-amz-server-side-encryption-customer-algorithm header</code>. This must be the same encryption key specified in the initiate multipart upload request.<br/>SSECustomerAlgorithm:  Specifies the algorithm to use to when encrypting the object (for example, AES256).<br/>UploadId:  Upload ID identifying the multipart upload whose part is being uploaded.<br/>PartNumber:  Part number of part being uploaded. This is a positive integer between 1 and 10,000.<br/>Key:  Object key for which the multipart upload was initiated.<br/>ContentMD5:  The base64-encoded 128-bit MD5 digest of the part data. This parameter is auto-populated when using the command from the CLI. This parameter is required if object lock parameters are specified.<br/>ContentLength:  Size of the body in bytes. This parameter is useful when the size of the body cannot be determined automatically.<br/>Bucket:  The name of the bucket to which the multipart upload was initiated. When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using access points</a> in the <i>Amazon S3 User Guide</i>. When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com. When using this action using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html">Using S3 on Outposts</a> in the <i>Amazon S3 User Guide</i>.<br/>Body:  Object data.<br/>
        :return: RequestCharged:  If present, indicates that the requester was successfully charged for the request.<br/>BucketKeyEnabled:  Indicates whether the multipart upload uses an S3 Bucket Key for server-side encryption with AWS KMS (SSE-KMS).<br/>SSEKMSKeyId:  If present, specifies the ID of the AWS Key Management Service (AWS KMS) symmetric customer managed customer master key (CMK) was used for the object.<br/>SSECustomerKeyMD5:  If server-side encryption with a customer-provided encryption key was requested, the response will include this header to provide round-trip message integrity verification of the customer-provided encryption key.<br/>SSECustomerAlgorithm:  If server-side encryption with a customer-provided encryption key was requested, the response will include this header confirming the encryption algorithm used.<br/>ETag:  Entity tag for the uploaded object.<br/>ServerSideEncryption:  The server-side encryption algorithm used when storing this object in Amazon S3 (for example, AES256, aws:kms).<br/>        """
        pass

    def upload_part_copy(self, UploadId: str, PartNumber: int, Key: str, CopySource: str, Bucket: str, CopySourceIfMatch: str=None, CopySourceIfModifiedSince: CopySourceIfModifiedSince=None, CopySourceIfNoneMatch: str=None, CopySourceIfUnmodifiedSince: CopySourceIfUnmodifiedSince=None, CopySourceRange: str=None, SSECustomerAlgorithm: str=None, SSECustomerKey: str=None, SSECustomerKeyMD5: str=None, CopySourceSSECustomerAlgorithm: str=None, CopySourceSSECustomerKey: str=None, CopySourceSSECustomerKeyMD5: str=None, RequestPayer: str=None, ExpectedBucketOwner: str=None, ExpectedSourceBucketOwner: str=None) -> UploadPartCopyOutput:
        r"""Uploads a part by copying data from an existing object as data source. You specify the data source by adding the request header <code>x-amz-copy-source</code> in your request and a byte range by adding the request header <code>x-amz-copy-source-range</code> in your request.  The minimum allowable part size for a multipart upload is 5 MB. For more information about multipart upload limits, go to <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/qfacts.html">Quick Facts</a> in the <i>Amazon S3 User Guide</i>.  <note> Instead of using an existing object as part data, you might use the <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a> action and provide data in your request. </note> You must initiate a multipart upload before you can upload any part. In response to your initiate request. Amazon S3 returns a unique identifier, the upload ID, that you must include in your upload part request. For more information about using the <code>UploadPartCopy</code> operation, see the following: <ul> <li> For conceptual information about multipart uploads, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html">Uploading Objects Using Multipart Upload</a> in the <i>Amazon S3 User Guide</i>. </li> <li> For information about permissions required to use the multipart upload API, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html">Multipart Upload and Permissions</a> in the <i>Amazon S3 User Guide</i>. </li> <li> For information about copying objects using a single atomic action vs. the multipart upload, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectOperations.html">Operations on Objects</a> in the <i>Amazon S3 User Guide</i>. </li> <li> For information about using server-side encryption with customer-provided encryption keys with the UploadPartCopy operation, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html">CopyObject</a> and <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a>. </li> </ul> Note the following additional considerations about the request headers <code>x-amz-copy-source-if-match</code>, <code>x-amz-copy-source-if-none-match</code>, <code>x-amz-copy-source-if-unmodified-since</code>, and <code>x-amz-copy-source-if-modified-since</code>:   <ul> <li>  <b>Consideration 1</b> - If both of the <code>x-amz-copy-source-if-match</code> and <code>x-amz-copy-source-if-unmodified-since</code> headers are present in the request as follows:  <code>x-amz-copy-source-if-match</code> condition evaluates to <code>true</code>, and;  <code>x-amz-copy-source-if-unmodified-since</code> condition evaluates to <code>false</code>; Amazon S3 returns <code>200 OK</code> and copies the data.  </li> <li>  <b>Consideration 2</b> - If both of the <code>x-amz-copy-source-if-none-match</code> and <code>x-amz-copy-source-if-modified-since</code> headers are present in the request as follows:  <code>x-amz-copy-source-if-none-match</code> condition evaluates to <code>false</code>, and;  <code>x-amz-copy-source-if-modified-since</code> condition evaluates to <code>true</code>; Amazon S3 returns <code>412 Precondition Failed</code> response code.  </li> </ul>  <b>Versioning</b>  If your bucket has versioning enabled, you could have multiple versions of the same object. By default, <code>x-amz-copy-source</code> identifies the current version of the object to copy. If the current version is a delete marker and you don't specify a versionId in the <code>x-amz-copy-source</code>, Amazon S3 returns a 404 error, because the object does not exist. If you specify versionId in the <code>x-amz-copy-source</code> and the versionId is a delete marker, Amazon S3 returns an HTTP 400 error, because you are not allowed to specify a delete marker as a version for the <code>x-amz-copy-source</code>.  You can optionally specify a specific version of the source object to copy by adding the <code>versionId</code> subresource as shown in the following example:  <code>x-amz-copy-source: /bucket/object?versionId=version id</code>  <p class="title"> <b>Special Errors</b>  <ul> <li> <ul> <li>  <i>Code: NoSuchUpload</i>  </li> <li>  <i>Cause: The specified multipart upload does not exist. The upload ID might be invalid, or the multipart upload might have been aborted or completed.</i>  </li> <li>  <i>HTTP Status Code: 404 Not Found</i>  </li> </ul> </li> <li> <ul> <li>  <i>Code: InvalidRequest</i>  </li> <li>  <i>Cause: The specified copy source is not supported as a byte-range copy source.</i>  </li> <li>  <i>HTTP Status Code: 400 Bad Request</i>  </li> </ul> </li> </ul> <p class="title"> <b>Related Resources</b>  <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html">CompleteMultipartUpload</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html">AbortMultipartUpload</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html">ListParts</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html">ListMultipartUploads</a>  </li> </ul>

        :param self:
        :param ExpectedSourceBucketOwner:  The account ID of the expected source bucket owner. If the source bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>ExpectedBucketOwner:  The account ID of the expected destination bucket owner. If the destination bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.<br/>RequestPayer:  Confirms that the requester knows that they will be charged for the request. Bucket owners need not specify this parameter in their requests. For information about downloading objects from requester pays buckets, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html">Downloading Objects in Requestor Pays Buckets</a> in the <i>Amazon S3 User Guide</i>.<br/>CopySourceSSECustomerKeyMD5:  Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure that the encryption key was transmitted without error.<br/>CopySourceSSECustomerKey:  Specifies the customer-provided encryption key for Amazon S3 to use to decrypt the source object. The encryption key provided in this header must be one that was used when the source object was created.<br/>CopySourceSSECustomerAlgorithm:  Specifies the algorithm to use when decrypting the source object (for example, AES256).<br/>SSECustomerKeyMD5:  Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure that the encryption key was transmitted without error.<br/>SSECustomerKey:  Specifies the customer-provided encryption key for Amazon S3 to use in encrypting data. This value is used to store the object and then it is discarded; Amazon S3 does not store the encryption key. The key must be appropriate for use with the algorithm specified in the <code>x-amz-server-side-encryption-customer-algorithm</code> header. This must be the same encryption key specified in the initiate multipart upload request.<br/>SSECustomerAlgorithm:  Specifies the algorithm to use to when encrypting the object (for example, AES256).<br/>UploadId:  Upload ID identifying the multipart upload whose part is being copied.<br/>PartNumber:  Part number of part being copied. This is a positive integer between 1 and 10,000.<br/>Key:  Object key for which the multipart upload was initiated.<br/>CopySourceRange:  The range of bytes to copy from the source object. The range value must use the form bytes=first-last, where the first and last are the zero-based byte offsets to copy. For example, bytes=0-9 indicates that you want to copy the first 10 bytes of the source. You can copy a range only if the source object is greater than 5 MB.<br/>CopySourceIfUnmodifiedSince:  Copies the object if it hasn't been modified since the specified time.<br/>CopySourceIfNoneMatch:  Copies the object if its entity tag (ETag) is different than the specified ETag.<br/>CopySourceIfModifiedSince:  Copies the object if it has been modified since the specified time.<br/>CopySourceIfMatch:  Copies the object if its entity tag (ETag) matches the specified tag.<br/>CopySource:  Specifies the source object for the copy operation. You specify the value in one of two formats, depending on whether you want to access the source object through an <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points.html">access point</a>: <ul> <li> For objects not accessed through an access point, specify the name of the source bucket and key of the source object, separated by a slash (/). For example, to copy the object <code>reports/january.pdf</code> from the bucket <code>awsexamplebucket</code>, use <code>awsexamplebucket/reports/january.pdf</code>. The value must be URL encoded. </li> <li> For objects accessed through access points, specify the Amazon Resource Name (ARN) of the object as accessed through the access point, in the format <code>arn:aws:s3:&lt;Region&gt;:&lt;account-id&gt;:accesspoint/&lt;access-point-name&gt;/object/&lt;key&gt;</code>. For example, to copy the object <code>reports/january.pdf</code> through access point <code>my-access-point</code> owned by account <code>123456789012</code> in Region <code>us-west-2</code>, use the URL encoding of <code>arn:aws:s3:us-west-2:123456789012:accesspoint/my-access-point/object/reports/january.pdf</code>. The value must be URL encoded. <note> Amazon S3 supports copy operations using access points only when the source and destination buckets are in the same AWS Region. </note> Alternatively, for objects accessed through Amazon S3 on Outposts, specify the ARN of the object as accessed in the format <code>arn:aws:s3-outposts:&lt;Region&gt;:&lt;account-id&gt;:outpost/&lt;outpost-id&gt;/object/&lt;key&gt;</code>. For example, to copy the object <code>reports/january.pdf</code> through outpost <code>my-outpost</code> owned by account <code>123456789012</code> in Region <code>us-west-2</code>, use the URL encoding of <code>arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/object/reports/january.pdf</code>. The value must be URL encoded.  </li> </ul> To copy a specific version of an object, append <code>?versionId=&lt;version-id&gt;</code> to the value (for example, <code>awsexamplebucket/reports/january.pdf?versionId=QUpfdndhfd8438MNFDN93jdnJFkdmqnh893</code>). If you don't specify a version ID, Amazon S3 copies the latest version of the source object.<br/>Bucket:  The bucket name. When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using access points</a> in the <i>Amazon S3 User Guide</i>. When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com. When using this action using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html">Using S3 on Outposts</a> in the <i>Amazon S3 User Guide</i>.<br/>
        :return: RequestCharged:  If present, indicates that the requester was successfully charged for the request.<br/>BucketKeyEnabled:  Indicates whether the multipart upload uses an S3 Bucket Key for server-side encryption with AWS KMS (SSE-KMS).<br/>SSEKMSKeyId:  If present, specifies the ID of the AWS Key Management Service (AWS KMS) symmetric customer managed customer master key (CMK) that was used for the object.<br/>SSECustomerKeyMD5:  If server-side encryption with a customer-provided encryption key was requested, the response will include this header to provide round-trip message integrity verification of the customer-provided encryption key.<br/>SSECustomerAlgorithm:  If server-side encryption with a customer-provided encryption key was requested, the response will include this header confirming the encryption algorithm used.<br/>ServerSideEncryption:  The server-side encryption algorithm used when storing this object in Amazon S3 (for example, AES256, aws:kms).<br/>CopyPartResult:  Container for all response elements.:<br/>CopySourceVersionId:  The version of the source object that was copied, if you have enabled versioning on the source bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModified</i> Date and time at which the object was uploaded.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ETag</i> Entity tag of the object.<br/>        """
        pass

    def write_get_object_response(self, RequestToken: str, RequestRoute: str, Body: Body=None, StatusCode: int=None, ErrorCode: str=None, ErrorMessage: str=None, AcceptRanges: str=None, CacheControl: str=None, ContentDisposition: str=None, ContentEncoding: str=None, ContentLanguage: str=None, ContentLength: ContentLength=None, ContentRange: str=None, ContentType: str=None, DeleteMarker: DeleteMarker=None, ETag: str=None, Expires: Expires=None, Expiration: str=None, LastModified: LastModified=None, MissingMeta: int=None, Metadata: Metadata=None, ObjectLockMode: str=None, ObjectLockLegalHoldStatus: str=None, ObjectLockRetainUntilDate: ObjectLockRetainUntilDate=None, PartsCount: int=None, ReplicationStatus: str=None, RequestCharged: str=None, Restore: str=None, ServerSideEncryption: str=None, SSECustomerAlgorithm: str=None, SSEKMSKeyId: str=None, SSECustomerKeyMD5: str=None, StorageClass: str=None, TagCount: int=None, VersionId: str=None, BucketKeyEnabled: BucketKeyEnabled=None):
        r"""Passes transformed objects to a <code>GetObject</code> operation when using Object Lambda Access Points. For information about Object Lambda Access Points, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/transforming-objects.html">Transforming objects with Object Lambda Access Points</a> in the <i>Amazon S3 User Guide</i>. This operation supports metadata that can be returned by <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>, in addition to <code>RequestRoute</code>, <code>RequestToken</code>, <code>StatusCode</code>, <code>ErrorCode</code>, and <code>ErrorMessage</code>. The <code>GetObject</code> response metadata is supported so that the <code>WriteGetObjectResponse</code> caller, typically an AWS Lambda function, can provide the same metadata when it internally invokes <code>GetObject</code>. When <code>WriteGetObjectResponse</code> is called by a customer-owned Lambda function, the metadata returned to the end user <code>GetObject</code> call might differ from what Amazon S3 would normally return. AWS provides some prebuilt Lambda functions that you can use with S3 Object Lambda to detect and redact personally identifiable information (PII) and decompress S3 objects. These Lambda functions are available in the AWS Serverless Application Repository, and can be selected through the AWS Management Console when you create your Object Lambda Access Point. Example 1: PII Access Control - This Lambda function uses Amazon Comprehend, a natural language processing (NLP) service using machine learning to find insights and relationships in text. It automatically detects personally identifiable information (PII) such as names, addresses, dates, credit card numbers, and social security numbers from documents in your Amazon S3 bucket.  Example 2: PII Redaction - This Lambda function uses Amazon Comprehend, a natural language processing (NLP) service using machine learning to find insights and relationships in text. It automatically redacts personally identifiable information (PII) such as names, addresses, dates, credit card numbers, and social security numbers from documents in your Amazon S3 bucket.  Example 3: Decompression - The Lambda function S3ObjectLambdaDecompression, is equipped to decompress objects stored in S3 in one of six compressed file formats including bzip2, gzip, snappy, zlib, zstandard and ZIP.  For information on how to view and use these functions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/olap-examples.html">Using AWS built Lambda functions</a> in the <i>Amazon S3 User Guide</i>.

        :param self:
        :param BucketKeyEnabled:   Indicates whether the object stored in Amazon S3 uses an S3 bucket key for server-side encryption with AWS KMS (SSE-KMS).<br/>VersionId:  An ID used to reference a specific version of the object.<br/>TagCount:  The number of tags, if any, on the object.<br/>StorageClass:   The class of storage used to store object in Amazon S3.<br/>SSECustomerKeyMD5:   128-bit MD5 digest of customer-provided encryption key used in Amazon S3 to encrypt data stored in S3. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerSideEncryptionCustomerKeys.html">Protecting data using server-side encryption with customer-provided encryption keys (SSE-C)</a>.<br/>SSEKMSKeyId:   If present, specifies the ID of the AWS Key Management Service (AWS KMS) symmetric customer managed customer master key (CMK) that was used for stored in Amazon S3 object. <br/>SSECustomerAlgorithm:  Encryption algorithm used if server-side encryption with a customer-provided encryption key was specified for object stored in Amazon S3.<br/>ServerSideEncryption:   The server-side encryption algorithm used when storing requested object in Amazon S3 (for example, AES256, aws:kms).<br/>Restore:  Provides information about object restoration operation and expiration time of the restored object copy.<br/>RequestCharged:  If present, indicates that the requester was successfully charged for the request.<br/>ReplicationStatus:  Indicates if request involves bucket that is either a source or destination in a Replication rule. For more information about S3 Replication, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/replication.html">Replication</a>.<br/>PartsCount:  The count of parts this object has.<br/>ObjectLockRetainUntilDate:  The date and time when Object Lock is configured to expire.<br/>ObjectLockLegalHoldStatus:  Indicates whether an object stored in Amazon S3 has an active legal hold.<br/>ObjectLockMode:  Indicates whether an object stored in Amazon S3 has Object Lock enabled. For more information about S3 Object Lock, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock.html">Object Lock</a>.<br/>Metadata:  A map of metadata to store with the object in S3.<br/>MissingMeta:  Set to the number of metadata entries not returned in <code>x-amz-meta</code> headers. This can happen if you create metadata using an API like SOAP that supports more flexible metadata than the REST API. For example, using SOAP, you can create metadata whose values are not legal HTTP headers.<br/>LastModified:  The date and time that the object was last modified.<br/>Expiration:  If object stored in Amazon S3 expiration is configured (see PUT Bucket lifecycle) it includes expiry-date and rule-id key-value pairs providing object expiration information. The value of the rule-id is URL encoded. <br/>Expires:  The date and time at which the object is no longer cacheable.<br/>ETag:  An opaque identifier assigned by a web server to a specific version of a resource found at a URL. <br/>DeleteMarker:  Specifies whether an object stored in Amazon S3 is (<code>true</code>) or is not (<code>false</code>) a delete marker. <br/>ContentType:  A standard MIME type describing the format of the object data.<br/>ContentRange:  The portion of the object returned in the response.<br/>ContentLength:  The size of the content body in bytes.<br/>ContentLanguage:  The language the content is in.<br/>ContentEncoding:  Specifies what content encodings have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field.<br/>ContentDisposition:  Specifies presentational information for the object.<br/>CacheControl:  Specifies caching behavior along the request/reply chain.<br/>AcceptRanges:  Indicates that a range of bytes was specified.<br/>ErrorMessage:  Contains a generic description of the error condition. Returned in the &lt;Message&gt; tag of the error XML response for a corresponding <code>GetObject</code> call. Cannot be used with a successful <code>StatusCode</code> header or when the transformed object is provided in body.<br/>ErrorCode:  A string that uniquely identifies an error condition. Returned in the &lt;Code&gt; tag of the error XML response for a corresponding <code>GetObject</code> call. Cannot be used with a successful <code>StatusCode</code> header or when the transformed object is provided in the body. All error codes from S3 are sentence-cased. Regex value is "^[A-Z][a-zA-Z]+$".<br/>StatusCode:  The integer status code for an HTTP response of a corresponding <code>GetObject</code> request. <p class="title"> <b>Status Codes</b>  <ul> <li>  <i>200 - OK</i>  </li> <li>  <i>206 - Partial Content</i>  </li> <li>  <i>304 - Not Modified</i>  </li> <li>  <i>400 - Bad Request</i>  </li> <li>  <i>401 - Unauthorized</i>  </li> <li>  <i>403 - Forbidden</i>  </li> <li>  <i>404 - Not Found</i>  </li> <li>  <i>405 - Method Not Allowed</i>  </li> <li>  <i>409 - Conflict</i>  </li> <li>  <i>411 - Length Required</i>  </li> <li>  <i>412 - Precondition Failed</i>  </li> <li>  <i>416 - Range Not Satisfiable</i>  </li> <li>  <i>500 - Internal Server Error</i>  </li> <li>  <i>503 - Service Unavailable</i>  </li> </ul><br/>Body:  The object data.<br/>RequestToken:  A single use encrypted token that maps <code>WriteGetObjectResponse</code> to the end user <code>GetObject</code> request.<br/>RequestRoute:  Route prefix to the HTTP URL generated.<br/>
        :return:         """
        pass

    def upload_file(self, Filename, Bucket, Key, ExtraArgs=None, Callback=None, Config=None):
        """Upload a file to an S3 object.

Usage::

    import boto3
    s3 = boto3.resource('s3')
    s3.meta.client.upload_file('/tmp/hello.txt', 'mybucket', 'hello.txt')

Similar behavior as S3Transfer's upload_file() method,
except that parameters are capitalized. Detailed examples can be found at
:ref:`S3Transfer's Usage <ref_s3transfer_usage>`.

:type Filename: str
:param Filename: The path to the file to upload.

:type Bucket: str
:param Bucket: The name of the bucket to upload to.

:type Key: str
:param Key: The name of the key to upload to.

:type ExtraArgs: dict
:param ExtraArgs: Extra arguments that may be passed to the
    client operation.

:type Callback: function
:param Callback: A method which takes a number of bytes transferred to
    be periodically called during the upload.

:type Config: boto3.s3.transfer.TransferConfig
:param Config: The transfer configuration to be used when performing the
    transfer."""
        pass

    def download_file(self, Bucket, Key, Filename, ExtraArgs=None, Callback=None, Config=None):
        """Download an S3 object to a file.

Usage::

    import boto3
    s3 = boto3.resource('s3')
    s3.meta.client.download_file('mybucket', 'hello.txt', '/tmp/hello.txt')

Similar behavior as S3Transfer's download_file() method,
except that parameters are capitalized. Detailed examples can be found at
:ref:`S3Transfer's Usage <ref_s3transfer_usage>`.

:type Bucket: str
:param Bucket: The name of the bucket to download from.

:type Key: str
:param Key: The name of the key to download from.

:type Filename: str
:param Filename: The path to the file to download to.

:type ExtraArgs: dict
:param ExtraArgs: Extra arguments that may be passed to the
    client operation.

:type Callback: function
:param Callback: A method which takes a number of bytes transferred to
    be periodically called during the download.

:type Config: boto3.s3.transfer.TransferConfig
:param Config: The transfer configuration to be used when performing the
    transfer."""
        pass

    def copy(self, CopySource, Bucket, Key, ExtraArgs=None, Callback=None, SourceClient=None, Config=None):
        """Copy an object from one S3 location to another.

This is a managed transfer which will perform a multipart copy in
multiple threads if necessary.

Usage::

    import boto3
    s3 = boto3.resource('s3')
    copy_source = {
        'Bucket': 'mybucket',
        'Key': 'mykey'
    }
    s3.meta.client.copy(copy_source, 'otherbucket', 'otherkey')

:type CopySource: dict
:param CopySource: The name of the source bucket, key name of the
    source object, and optional version ID of the source object. The
    dictionary format is:
    ``{'Bucket': 'bucket', 'Key': 'key', 'VersionId': 'id'}``. Note
    that the ``VersionId`` key is optional and may be omitted.

:type Bucket: str
:param Bucket: The name of the bucket to copy to

:type Key: str
:param Key: The name of the key to copy to

:type ExtraArgs: dict
:param ExtraArgs: Extra arguments that may be passed to the
    client operation

:type Callback: function
:param Callback: A method which takes a number of bytes transferred to
    be periodically called during the copy.

:type SourceClient: botocore or boto3 Client
:param SourceClient: The client to be used for operation that
    may happen at the source object. For example, this client is
    used for the head_object that determines the size of the copy.
    If no client is provided, the current client is used as the client
    for the source object.

:type Config: boto3.s3.transfer.TransferConfig
:param Config: The transfer configuration to be used when performing the
    copy."""
        pass

    def upload_fileobj(self, Fileobj, Bucket, Key, ExtraArgs=None, Callback=None, Config=None):
        """Upload a file-like object to S3.

The file-like object must be in binary mode.

This is a managed transfer which will perform a multipart upload in
multiple threads if necessary.

Usage::

    import boto3
    s3 = boto3.client('s3')

    with open('filename', 'rb') as data:
        s3.upload_fileobj(data, 'mybucket', 'mykey')

:type Fileobj: a file-like object
:param Fileobj: A file-like object to upload. At a minimum, it must
    implement the `read` method, and must return bytes.

:type Bucket: str
:param Bucket: The name of the bucket to upload to.

:type Key: str
:param Key: The name of the key to upload to.

:type ExtraArgs: dict
:param ExtraArgs: Extra arguments that may be passed to the
    client operation.

:type Callback: function
:param Callback: A method which takes a number of bytes transferred to
    be periodically called during the upload.

:type Config: boto3.s3.transfer.TransferConfig
:param Config: The transfer configuration to be used when performing the
    upload."""
        pass

    def download_fileobj(self, Bucket, Key, Fileobj, ExtraArgs=None, Callback=None, Config=None):
        """Download an object from S3 to a file-like object.

The file-like object must be in binary mode.

This is a managed transfer which will perform a multipart download in
multiple threads if necessary.

Usage::

    import boto3
    s3 = boto3.client('s3')

    with open('filename', 'wb') as data:
        s3.download_fileobj('mybucket', 'mykey', data)

:type Bucket: str
:param Bucket: The name of the bucket to download from.

:type Key: str
:param Key: The name of the key to download from.

:type Fileobj: a file-like object
:param Fileobj: A file-like object to download into. At a minimum, it must
    implement the `write` method and must accept bytes.

:type ExtraArgs: dict
:param ExtraArgs: Extra arguments that may be passed to the
    client operation.

:type Callback: function
:param Callback: A method which takes a number of bytes transferred to
    be periodically called during the download.

:type Config: boto3.s3.transfer.TransferConfig
:param Config: The transfer configuration to be used when performing the
    download."""
        pass



    class S3Resource:
        
        class Bucket:
            r"""Creates a Bucket resource.::

  bucket = s3.Bucket('name')

:type name: string
:param name: The Bucket's name identifier. This **must** be set.

:rtype: :py:class:`S3.Bucket`
:returns: A Bucket resource"""

            def __init__(self, name):
                pass
            
            class CreationDate(object):
                pass
        
            name: str=None
            creation_date: CreationDate=None
            
            def wait_until_exists(self):
                pass

            def wait_until_not_exists(self):
                pass

            def create(self, **kwargs):
                # type: (object) -> dict
                return {}

            def delete(self, **kwargs):
                # type: (object) -> dict
                return {}

            def delete_objects(self, **kwargs):
                # type: (object) -> dict
                return {}

            def put_object(self, **kwargs):
                # type: (object) -> Object
                return Object()

            def load(self, *args, **kwargs):
                """Calls s3.Client.list_buckets() to update the attributes of the Bucket
resource."""
                pass

            def upload_file(self, Filename, Key, ExtraArgs=None, Callback=None, Config=None):
                """Upload a file to an S3 object.

Usage::

    import boto3
    s3 = boto3.resource('s3')
    s3.Bucket('mybucket').upload_file('/tmp/hello.txt', 'hello.txt')

Similar behavior as S3Transfer's upload_file() method,
except that parameters are capitalized. Detailed examples can be found at
:ref:`S3Transfer's Usage <ref_s3transfer_usage>`.

:type Filename: str
:param Filename: The path to the file to upload.

:type Key: str
:param Key: The name of the key to upload to.

:type ExtraArgs: dict
:param ExtraArgs: Extra arguments that may be passed to the
    client operation.

:type Callback: function
:param Callback: A method which takes a number of bytes transferred to
    be periodically called during the upload.

:type Config: boto3.s3.transfer.TransferConfig
:param Config: The transfer configuration to be used when performing the
    transfer."""
                pass

            def download_file(self, Key, Filename, ExtraArgs=None, Callback=None, Config=None):
                """Download an S3 object to a file.

Usage::

    import boto3
    s3 = boto3.resource('s3')
    s3.Bucket('mybucket').download_file('hello.txt', '/tmp/hello.txt')

Similar behavior as S3Transfer's download_file() method,
except that parameters are capitalized. Detailed examples can be found at
:ref:`S3Transfer's Usage <ref_s3transfer_usage>`.

:type Key: str
:param Key: The name of the key to download from.

:type Filename: str
:param Filename: The path to the file to download to.

:type ExtraArgs: dict
:param ExtraArgs: Extra arguments that may be passed to the
    client operation.

:type Callback: function
:param Callback: A method which takes a number of bytes transferred to
    be periodically called during the download.

:type Config: boto3.s3.transfer.TransferConfig
:param Config: The transfer configuration to be used when performing the
    transfer."""
                pass

            def copy(self, CopySource, Key, ExtraArgs=None, Callback=None, SourceClient=None, Config=None):
                """Copy an object from one S3 location to an object in this bucket.

This is a managed transfer which will perform a multipart copy in
multiple threads if necessary.

Usage::

    import boto3
    s3 = boto3.resource('s3')
    copy_source = {
        'Bucket': 'mybucket',
        'Key': 'mykey'
    }
    bucket = s3.Bucket('otherbucket')
    bucket.copy(copy_source, 'otherkey')

:type CopySource: dict
:param CopySource: The name of the source bucket, key name of the
    source object, and optional version ID of the source object. The
    dictionary format is:
    ``{'Bucket': 'bucket', 'Key': 'key', 'VersionId': 'id'}``. Note
    that the ``VersionId`` key is optional and may be omitted.

:type Key: str
:param Key: The name of the key to copy to

:type ExtraArgs: dict
:param ExtraArgs: Extra arguments that may be passed to the
    client operation

:type Callback: function
:param Callback: A method which takes a number of bytes transferred to
    be periodically called during the copy.

:type SourceClient: botocore or boto3 Client
:param SourceClient: The client to be used for operation that
    may happen at the source object. For example, this client is
    used for the head_object that determines the size of the copy.
    If no client is provided, the current client is used as the client
    for the source object.

:type Config: boto3.s3.transfer.TransferConfig
:param Config: The transfer configuration to be used when performing the
    copy."""
                pass

            def upload_fileobj(self, Fileobj, Key, ExtraArgs=None, Callback=None, Config=None):
                """Upload a file-like object to this bucket.

The file-like object must be in binary mode.

This is a managed transfer which will perform a multipart upload in
multiple threads if necessary.

Usage::

    import boto3
    s3 = boto3.resource('s3')
    bucket = s3.Bucket('mybucket')

    with open('filename', 'rb') as data:
        bucket.upload_fileobj(data, 'mykey')

:type Fileobj: a file-like object
:param Fileobj: A file-like object to upload. At a minimum, it must
    implement the `read` method, and must return bytes.

:type Key: str
:param Key: The name of the key to upload to.

:type ExtraArgs: dict
:param ExtraArgs: Extra arguments that may be passed to the
    client operation.

:type Callback: function
:param Callback: A method which takes a number of bytes transferred to
    be periodically called during the upload.

:type Config: boto3.s3.transfer.TransferConfig
:param Config: The transfer configuration to be used when performing the
    upload."""
                pass

            def download_fileobj(self, Key, Fileobj, ExtraArgs=None, Callback=None, Config=None):
                """Download an object from this bucket to a file-like-object.

The file-like object must be in binary mode.

This is a managed transfer which will perform a multipart download in
multiple threads if necessary.

Usage::

    import boto3
    s3 = boto3.resource('s3')
    bucket = s3.Bucket('mybucket')

    with open('filename', 'wb') as data:
        bucket.download_fileobj('mykey', data)

:type Fileobj: a file-like object
:param Fileobj: A file-like object to download into. At a minimum, it must
    implement the `write` method and must accept bytes.

:type Key: str
:param Key: The name of the key to download from.

:type ExtraArgs: dict
:param ExtraArgs: Extra arguments that may be passed to the
    client operation.

:type Callback: function
:param Callback: A method which takes a number of bytes transferred to
    be periodically called during the download.

:type Config: boto3.s3.transfer.TransferConfig
:param Config: The transfer configuration to be used when performing the
    download."""
                pass


        
        class BucketAcl:
            r"""Creates a BucketAcl resource.::

  bucket_acl = s3.BucketAcl('bucket_name')

:type bucket_name: string
:param bucket_name: The BucketAcl's bucket_name identifier. This **must** be set.

:rtype: :py:class:`S3.BucketAcl`
:returns: A BucketAcl resource"""

            def __init__(self, bucket_name):
                pass
            
            class Owner(Mapping):
                pass

            class Grant(Mapping):
                pass
        
            owner: Owner=None
            grants: List[Grant]=None
            
            def put(self, **kwargs):
                # type: (object) -> dict
                return {}


        
        class BucketCors:
            r"""Creates a BucketCors resource.::

  bucket_cors = s3.BucketCors('bucket_name')

:type bucket_name: string
:param bucket_name: The BucketCors's bucket_name identifier. This **must** be set.

:rtype: :py:class:`S3.BucketCors`
:returns: A BucketCors resource"""

            def __init__(self, bucket_name):
                pass
            
            class CORSRule(Mapping):
                pass
        
            cors_rules: List[CORSRule]=None
            
            def delete(self, **kwargs):
                # type: (object) -> dict
                return {}

            def put(self, **kwargs):
                # type: (object) -> dict
                return {}


        
        class BucketLifecycle:
            r"""Creates a BucketLifecycle resource.::

  bucket_lifecycle = s3.BucketLifecycle('bucket_name')

:type bucket_name: string
:param bucket_name: The BucketLifecycle's bucket_name identifier. This **must** be set.

:rtype: :py:class:`S3.BucketLifecycle`
:returns: A BucketLifecycle resource"""

            def __init__(self, bucket_name):
                pass
            
            class Rule(Mapping):
                pass
        
            rules: List[Rule]=None
            
            def delete(self, **kwargs):
                # type: (object) -> dict
                return {}

            def put(self, **kwargs):
                # type: (object) -> dict
                return {}


        
        class BucketLifecycleConfiguration:
            r"""Creates a BucketLifecycleConfiguration resource.::

  bucket_lifecycle_configuration = s3.BucketLifecycleConfiguration('bucket_name')

:type bucket_name: string
:param bucket_name: The BucketLifecycleConfiguration's bucket_name identifier. This **must** be set.

:rtype: :py:class:`S3.BucketLifecycleConfiguration`
:returns: A BucketLifecycleConfiguration resource"""

            def __init__(self, bucket_name):
                pass
            
            class LifecycleRule(Mapping):
                pass
        
            rules: List[LifecycleRule]=None
            
            def delete(self, **kwargs):
                # type: (object) -> dict
                return {}

            def put(self, **kwargs):
                # type: (object) -> dict
                return {}


        
        class BucketLogging:
            r"""Creates a BucketLogging resource.::

  bucket_logging = s3.BucketLogging('bucket_name')

:type bucket_name: string
:param bucket_name: The BucketLogging's bucket_name identifier. This **must** be set.

:rtype: :py:class:`S3.BucketLogging`
:returns: A BucketLogging resource"""

            def __init__(self, bucket_name):
                pass
            
            class LoggingEnabled(Mapping):
                pass
        
            logging_enabled: LoggingEnabled=None
            
            def put(self, **kwargs):
                # type: (object) -> dict
                return {}


        
        class BucketNotification:
            r"""Creates a BucketNotification resource.::

  bucket_notification = s3.BucketNotification('bucket_name')

:type bucket_name: string
:param bucket_name: The BucketNotification's bucket_name identifier. This **must** be set.

:rtype: :py:class:`S3.BucketNotification`
:returns: A BucketNotification resource"""

            def __init__(self, bucket_name):
                pass
            
            class TopicConfiguration(Mapping):
                pass

            class QueueConfiguration(Mapping):
                pass

            class LambdaFunctionConfiguration(Mapping):
                pass
        
            topic_configurations: List[TopicConfiguration]=None
            queue_configurations: List[QueueConfiguration]=None
            lambda_function_configurations: List[LambdaFunctionConfiguration]=None
            
            def put(self, **kwargs):
                # type: (object) -> dict
                return {}


        
        class BucketPolicy:
            r"""Creates a BucketPolicy resource.::

  bucket_policy = s3.BucketPolicy('bucket_name')

:type bucket_name: string
:param bucket_name: The BucketPolicy's bucket_name identifier. This **must** be set.

:rtype: :py:class:`S3.BucketPolicy`
:returns: A BucketPolicy resource"""

            def __init__(self, bucket_name):
                pass
            
        
            policy: str=None
            
            def delete(self, **kwargs):
                # type: (object) -> dict
                return {}

            def put(self, **kwargs):
                # type: (object) -> dict
                return {}


        
        class BucketRequestPayment:
            r"""Creates a BucketRequestPayment resource.::

  bucket_request_payment = s3.BucketRequestPayment('bucket_name')

:type bucket_name: string
:param bucket_name: The BucketRequestPayment's bucket_name identifier. This **must** be set.

:rtype: :py:class:`S3.BucketRequestPayment`
:returns: A BucketRequestPayment resource"""

            def __init__(self, bucket_name):
                pass
            
        
            payer: str=None
            
            def put(self, **kwargs):
                # type: (object) -> dict
                return {}


        
        class BucketTagging:
            r"""Creates a BucketTagging resource.::

  bucket_tagging = s3.BucketTagging('bucket_name')

:type bucket_name: string
:param bucket_name: The BucketTagging's bucket_name identifier. This **must** be set.

:rtype: :py:class:`S3.BucketTagging`
:returns: A BucketTagging resource"""

            def __init__(self, bucket_name):
                pass
            
            class Tag(Mapping):
                pass
        
            tag_set: List[Tag]=None
            
            def delete(self, **kwargs):
                # type: (object) -> dict
                return {}

            def put(self, **kwargs):
                # type: (object) -> dict
                return {}


        
        class BucketVersioning:
            r"""Creates a BucketVersioning resource.::

  bucket_versioning = s3.BucketVersioning('bucket_name')

:type bucket_name: string
:param bucket_name: The BucketVersioning's bucket_name identifier. This **must** be set.

:rtype: :py:class:`S3.BucketVersioning`
:returns: A BucketVersioning resource"""

            def __init__(self, bucket_name):
                pass
            
        
            status: str=None
            mfa_delete: str=None
            
            def enable(self, **kwargs):
                # type: (object) -> dict
                return {}

            def put(self, **kwargs):
                # type: (object) -> dict
                return {}

            def suspend(self, **kwargs):
                # type: (object) -> dict
                return {}


        
        class BucketWebsite:
            r"""Creates a BucketWebsite resource.::

  bucket_website = s3.BucketWebsite('bucket_name')

:type bucket_name: string
:param bucket_name: The BucketWebsite's bucket_name identifier. This **must** be set.

:rtype: :py:class:`S3.BucketWebsite`
:returns: A BucketWebsite resource"""

            def __init__(self, bucket_name):
                pass
            
            class ErrorDocument(Mapping):
                pass

            class RedirectAllRequestsTo(Mapping):
                pass

            class RoutingRule(Mapping):
                pass

            class IndexDocument(Mapping):
                pass
        
            redirect_all_requests_to: RedirectAllRequestsTo=None
            index_document: IndexDocument=None
            error_document: ErrorDocument=None
            routing_rules: List[RoutingRule]=None
            
            def delete(self, **kwargs):
                # type: (object) -> dict
                return {}

            def put(self, **kwargs):
                # type: (object) -> dict
                return {}


        
        class MultipartUpload:
            r"""Creates a MultipartUpload resource.::

  multipart_upload = s3.MultipartUpload('bucket_name','object_key','id')

:type bucket_name: string
:param bucket_name: The MultipartUpload's bucket_name identifier. This **must** be set.
:type object_key: string
:param object_key: The MultipartUpload's object_key identifier. This **must** be set.
:type id: string
:param id: The MultipartUpload's id identifier. This **must** be set.

:rtype: :py:class:`S3.MultipartUpload`
:returns: A MultipartUpload resource"""

            def __init__(self, bucket_name, object_key, id):
                pass
            
            class Owner(Mapping):
                pass

            class Initiator(Mapping):
                pass

            class Initiated(object):
                pass
        
            upload_id: str=None
            key: str=None
            initiated: Initiated=None
            storage_class: str=None
            owner: Owner=None
            initiator: Initiator=None
            
            def abort(self, **kwargs):
                # type: (object) -> dict
                return {}

            def complete(self, **kwargs):
                # type: (object) -> Object
                return Object()


        
        class MultipartUploadPart:
            r"""Creates a MultipartUploadPart resource.::

  multipart_upload_part = s3.MultipartUploadPart('bucket_name','object_key','multipart_upload_id','part_number')

:type bucket_name: string
:param bucket_name: The MultipartUploadPart's bucket_name identifier. This **must** be set.
:type object_key: string
:param object_key: The MultipartUploadPart's object_key identifier. This **must** be set.
:type multipart_upload_id: string
:param multipart_upload_id: The MultipartUploadPart's multipart_upload_id identifier. This **must** be set.
:type part_number: string
:param part_number: The MultipartUploadPart's part_number identifier. This **must** be set.

:rtype: :py:class:`S3.MultipartUploadPart`
:returns: A MultipartUploadPart resource"""

            def __init__(self, bucket_name, object_key, multipart_upload_id, part_number):
                pass
            
            class LastModified(object):
                pass
        
            part_number: int=None
            last_modified: LastModified=None
            e_tag: str=None
            size: int=None
            
            def copy_from(self, **kwargs):
                # type: (object) -> dict
                return {}

            def upload(self, **kwargs):
                # type: (object) -> dict
                return {}


        
        class Object:
            r"""Creates a Object resource.::

  object = s3.Object('bucket_name','key')

:type bucket_name: string
:param bucket_name: The Object's bucket_name identifier. This **must** be set.
:type key: string
:param key: The Object's key identifier. This **must** be set.

:rtype: :py:class:`S3.Object`
:returns: A Object resource"""

            def __init__(self, bucket_name, key):
                pass
            
            class Metadata(object):
                pass

            class Expires(object):
                pass

            class DeleteMarker(object):
                pass

            class ContentLength(object):
                pass

            class BucketKeyEnabled(object):
                pass

            class LastModified(object):
                pass

            class ObjectLockRetainUntilDate(object):
                pass
        
            delete_marker: DeleteMarker=None
            accept_ranges: str=None
            expiration: str=None
            restore: str=None
            archive_status: str=None
            last_modified: LastModified=None
            content_length: ContentLength=None
            e_tag: str=None
            missing_meta: int=None
            version_id: str=None
            cache_control: str=None
            content_disposition: str=None
            content_encoding: str=None
            content_language: str=None
            content_type: str=None
            expires: Expires=None
            website_redirect_location: str=None
            server_side_encryption: str=None
            metadata: Metadata=None
            sse_customer_algorithm: str=None
            sse_customer_key_md5: str=None
            ssekms_key_id: str=None
            bucket_key_enabled: BucketKeyEnabled=None
            storage_class: str=None
            request_charged: str=None
            replication_status: str=None
            parts_count: int=None
            object_lock_mode: str=None
            object_lock_retain_until_date: ObjectLockRetainUntilDate=None
            object_lock_legal_hold_status: str=None
            
            def wait_until_exists(self):
                pass

            def wait_until_not_exists(self):
                pass

            def copy_from(self, **kwargs):
                # type: (object) -> dict
                return {}

            def delete(self, **kwargs):
                # type: (object) -> dict
                return {}

            def get(self, **kwargs):
                # type: (object) -> dict
                return {}

            def initiate_multipart_upload(self, **kwargs):
                # type: (object) -> MultipartUpload
                return MultipartUpload()

            def put(self, **kwargs):
                # type: (object) -> dict
                return {}

            def restore_object(self, **kwargs):
                # type: (object) -> dict
                return {}

            def upload_file(self, Filename, ExtraArgs=None, Callback=None, Config=None):
                """Upload a file to an S3 object.

Usage::

    import boto3
    s3 = boto3.resource('s3')
    s3.Object('mybucket', 'hello.txt').upload_file('/tmp/hello.txt')

Similar behavior as S3Transfer's upload_file() method,
except that parameters are capitalized. Detailed examples can be found at
:ref:`S3Transfer's Usage <ref_s3transfer_usage>`.

:type Filename: str
:param Filename: The path to the file to upload.

:type ExtraArgs: dict
:param ExtraArgs: Extra arguments that may be passed to the
    client operation.

:type Callback: function
:param Callback: A method which takes a number of bytes transferred to
    be periodically called during the upload.

:type Config: boto3.s3.transfer.TransferConfig
:param Config: The transfer configuration to be used when performing the
    transfer."""
                pass

            def download_file(self, Filename, ExtraArgs=None, Callback=None, Config=None):
                """Download an S3 object to a file.

Usage::

    import boto3
    s3 = boto3.resource('s3')
    s3.Object('mybucket', 'hello.txt').download_file('/tmp/hello.txt')

Similar behavior as S3Transfer's download_file() method,
except that parameters are capitalized. Detailed examples can be found at
:ref:`S3Transfer's Usage <ref_s3transfer_usage>`.

:type Filename: str
:param Filename: The path to the file to download to.

:type ExtraArgs: dict
:param ExtraArgs: Extra arguments that may be passed to the
    client operation.

:type Callback: function
:param Callback: A method which takes a number of bytes transferred to
    be periodically called during the download.

:type Config: boto3.s3.transfer.TransferConfig
:param Config: The transfer configuration to be used when performing the
    transfer."""
                pass

            def copy(self, CopySource, ExtraArgs=None, Callback=None, SourceClient=None, Config=None):
                """Copy an object from one S3 location to this object.

This is a managed transfer which will perform a multipart copy in
multiple threads if necessary.

Usage::

    import boto3
    s3 = boto3.resource('s3')
    copy_source = {
        'Bucket': 'mybucket',
        'Key': 'mykey'
    }
    bucket = s3.Bucket('otherbucket')
    obj = bucket.Object('otherkey')
    obj.copy(copy_source)

:type CopySource: dict
:param CopySource: The name of the source bucket, key name of the
    source object, and optional version ID of the source object. The
    dictionary format is:
    ``{'Bucket': 'bucket', 'Key': 'key', 'VersionId': 'id'}``. Note
    that the ``VersionId`` key is optional and may be omitted.

:type ExtraArgs: dict
:param ExtraArgs: Extra arguments that may be passed to the
    client operation

:type Callback: function
:param Callback: A method which takes a number of bytes transferred to
    be periodically called during the copy.

:type SourceClient: botocore or boto3 Client
:param SourceClient: The client to be used for operation that
    may happen at the source object. For example, this client is
    used for the head_object that determines the size of the copy.
    If no client is provided, the current client is used as the client
    for the source object.

:type Config: boto3.s3.transfer.TransferConfig
:param Config: The transfer configuration to be used when performing the
    copy."""
                pass

            def upload_fileobj(self, Fileobj, ExtraArgs=None, Callback=None, Config=None):
                """Upload a file-like object to this object.

The file-like object must be in binary mode.

This is a managed transfer which will perform a multipart upload in
multiple threads if necessary.

Usage::

    import boto3
    s3 = boto3.resource('s3')
    bucket = s3.Bucket('mybucket')
    obj = bucket.Object('mykey')

    with open('filename', 'rb') as data:
        obj.upload_fileobj(data)

:type Fileobj: a file-like object
:param Fileobj: A file-like object to upload. At a minimum, it must
    implement the `read` method, and must return bytes.

:type ExtraArgs: dict
:param ExtraArgs: Extra arguments that may be passed to the
    client operation.

:type Callback: function
:param Callback: A method which takes a number of bytes transferred to
    be periodically called during the upload.

:type Config: boto3.s3.transfer.TransferConfig
:param Config: The transfer configuration to be used when performing the
    upload."""
                pass

            def download_fileobj(self, Fileobj, ExtraArgs=None, Callback=None, Config=None):
                """Download this object from S3 to a file-like object.

The file-like object must be in binary mode.

This is a managed transfer which will perform a multipart download in
multiple threads if necessary.

Usage::

    import boto3
    s3 = boto3.resource('s3')
    bucket = s3.Bucket('mybucket')
    obj = bucket.Object('mykey')

    with open('filename', 'wb') as data:
        obj.download_fileobj(data)

:type Fileobj: a file-like object
:param Fileobj: A file-like object to download into. At a minimum, it must
    implement the `write` method and must accept bytes.

:type ExtraArgs: dict
:param ExtraArgs: Extra arguments that may be passed to the
    client operation.

:type Callback: function
:param Callback: A method which takes a number of bytes transferred to
    be periodically called during the download.

:type Config: boto3.s3.transfer.TransferConfig
:param Config: The transfer configuration to be used when performing the
    download."""
                pass


        
        class ObjectAcl:
            r"""Creates a ObjectAcl resource.::

  object_acl = s3.ObjectAcl('bucket_name','object_key')

:type bucket_name: string
:param bucket_name: The ObjectAcl's bucket_name identifier. This **must** be set.
:type object_key: string
:param object_key: The ObjectAcl's object_key identifier. This **must** be set.

:rtype: :py:class:`S3.ObjectAcl`
:returns: A ObjectAcl resource"""

            def __init__(self, bucket_name, object_key):
                pass
            
            class Owner(Mapping):
                pass

            class Grant(Mapping):
                pass
        
            owner: Owner=None
            grants: List[Grant]=None
            request_charged: str=None
            
            def put(self, **kwargs):
                # type: (object) -> dict
                return {}


        
        class ObjectSummary:
            r"""Creates a ObjectSummary resource.::

  object_summary = s3.ObjectSummary('bucket_name','key')

:type bucket_name: string
:param bucket_name: The ObjectSummary's bucket_name identifier. This **must** be set.
:type key: string
:param key: The ObjectSummary's key identifier. This **must** be set.

:rtype: :py:class:`S3.ObjectSummary`
:returns: A ObjectSummary resource"""

            def __init__(self, bucket_name, key):
                pass
            
            class Owner(Mapping):
                pass

            class LastModified(object):
                pass
        
            key: str=None
            last_modified: LastModified=None
            e_tag: str=None
            size: int=None
            storage_class: str=None
            owner: Owner=None
            
            def wait_until_exists(self):
                pass

            def wait_until_not_exists(self):
                pass

            def copy_from(self, **kwargs):
                # type: (object) -> dict
                return {}

            def delete(self, **kwargs):
                # type: (object) -> dict
                return {}

            def get(self, **kwargs):
                # type: (object) -> dict
                return {}

            def initiate_multipart_upload(self, **kwargs):
                # type: (object) -> MultipartUpload
                return MultipartUpload()

            def put(self, **kwargs):
                # type: (object) -> dict
                return {}

            def restore_object(self, **kwargs):
                # type: (object) -> dict
                return {}

            def load(self, *args, **kwargs):
                """Calls s3.Client.head_object to update the attributes of the ObjectSummary
resource."""
                pass


        
        class ObjectVersion:
            r"""Creates a ObjectVersion resource.::

  object_version = s3.ObjectVersion('bucket_name','object_key','id')

:type bucket_name: string
:param bucket_name: The ObjectVersion's bucket_name identifier. This **must** be set.
:type object_key: string
:param object_key: The ObjectVersion's object_key identifier. This **must** be set.
:type id: string
:param id: The ObjectVersion's id identifier. This **must** be set.

:rtype: :py:class:`S3.ObjectVersion`
:returns: A ObjectVersion resource"""

            def __init__(self, bucket_name, object_key, id):
                pass
            
            class Owner(Mapping):
                pass

            class LastModified(object):
                pass

            class IsLatest(object):
                pass
        
            e_tag: str=None
            size: int=None
            storage_class: str=None
            key: str=None
            version_id: str=None
            is_latest: IsLatest=None
            last_modified: LastModified=None
            owner: Owner=None
            
            def delete(self, **kwargs):
                # type: (object) -> dict
                return {}

            def get(self, **kwargs):
                # type: (object) -> dict
                return {}

            def head(self, **kwargs):
                # type: (object) -> dict
                return {}


        def create_bucket(self, **kwargs):
            # type: (object) -> Bucket
            pass

        def get_available_subresources(self) -> List[str]:
            pass

        class BucketResourceCollection(List[Bucket], ResourceCollection):
            pass

        buckets: BucketResourceCollection = None




class S3Control(BaseClient):
    r""" AWS S3 Control provides access to Amazon S3 control plane actions. """


    class ListAccessPointsForObjectLambdaPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_access_points_for_object_lambda` for valid parameters"""
            pass


    class CreateAccessPointRequest(Mapping):
        pass
    
    class CreateAccessPointResult(Mapping):
        pass
    
    class VpcConfiguration(Mapping):
        pass
    
    class PublicAccessBlockConfiguration(Mapping):
        pass
    
    class CreateAccessPointForObjectLambdaRequest(Mapping):
        pass
    
    class CreateAccessPointForObjectLambdaResult(Mapping):
        pass
    
    class ObjectLambdaConfiguration(Mapping):
        pass
    
    class CreateBucketRequest(Mapping):
        pass
    
    class CreateBucketResult(Mapping):
        pass
    
    class CreateBucketConfiguration(Mapping):
        pass
    
    class ObjectLockEnabledForBucket(object):
        pass
    
    class CreateJobRequest(Mapping):
        pass
    
    class CreateJobResult(Mapping):
        pass
    
    class ConfirmationRequired(object):
        pass
    
    class JobOperation(Mapping):
        pass
    
    class JobReport(Mapping):
        pass
    
    class JobManifest(Mapping):
        pass
    
    class S3Tag(Mapping):
        pass
    
    class DeleteAccessPointRequest(Mapping):
        pass
    
    class DeleteAccessPointForObjectLambdaRequest(Mapping):
        pass
    
    class DeleteAccessPointPolicyRequest(Mapping):
        pass
    
    class DeleteAccessPointPolicyForObjectLambdaRequest(Mapping):
        pass
    
    class DeleteBucketRequest(Mapping):
        pass
    
    class DeleteBucketLifecycleConfigurationRequest(Mapping):
        pass
    
    class DeleteBucketPolicyRequest(Mapping):
        pass
    
    class DeleteBucketTaggingRequest(Mapping):
        pass
    
    class DeleteJobTaggingRequest(Mapping):
        pass
    
    class DeleteJobTaggingResult(Mapping):
        pass
    
    class DeletePublicAccessBlockRequest(Mapping):
        pass
    
    class DeleteStorageLensConfigurationRequest(Mapping):
        pass
    
    class DeleteStorageLensConfigurationTaggingRequest(Mapping):
        pass
    
    class DeleteStorageLensConfigurationTaggingResult(Mapping):
        pass
    
    class DescribeJobRequest(Mapping):
        pass
    
    class DescribeJobResult(Mapping):
        pass
    
    class GetAccessPointRequest(Mapping):
        pass
    
    class GetAccessPointResult(Mapping):
        pass
    
    class GetAccessPointConfigurationForObjectLambdaRequest(Mapping):
        pass
    
    class GetAccessPointConfigurationForObjectLambdaResult(Mapping):
        pass
    
    class GetAccessPointForObjectLambdaRequest(Mapping):
        pass
    
    class GetAccessPointForObjectLambdaResult(Mapping):
        pass
    
    class GetAccessPointPolicyRequest(Mapping):
        pass
    
    class GetAccessPointPolicyResult(Mapping):
        pass
    
    class GetAccessPointPolicyForObjectLambdaRequest(Mapping):
        pass
    
    class GetAccessPointPolicyForObjectLambdaResult(Mapping):
        pass
    
    class GetAccessPointPolicyStatusRequest(Mapping):
        pass
    
    class GetAccessPointPolicyStatusResult(Mapping):
        pass
    
    class GetAccessPointPolicyStatusForObjectLambdaRequest(Mapping):
        pass
    
    class GetAccessPointPolicyStatusForObjectLambdaResult(Mapping):
        pass
    
    class GetBucketRequest(Mapping):
        pass
    
    class GetBucketResult(Mapping):
        pass
    
    class GetBucketLifecycleConfigurationRequest(Mapping):
        pass
    
    class GetBucketLifecycleConfigurationResult(Mapping):
        pass
    
    class GetBucketPolicyRequest(Mapping):
        pass
    
    class GetBucketPolicyResult(Mapping):
        pass
    
    class GetBucketTaggingRequest(Mapping):
        pass
    
    class GetBucketTaggingResult(Mapping):
        pass
    
    class GetJobTaggingRequest(Mapping):
        pass
    
    class GetJobTaggingResult(Mapping):
        pass
    
    class GetPublicAccessBlockRequest(Mapping):
        pass
    
    class GetPublicAccessBlockOutput(Mapping):
        pass
    
    class GetStorageLensConfigurationRequest(Mapping):
        pass
    
    class GetStorageLensConfigurationResult(Mapping):
        pass
    
    class GetStorageLensConfigurationTaggingRequest(Mapping):
        pass
    
    class GetStorageLensConfigurationTaggingResult(Mapping):
        pass
    
    class ListAccessPointsRequest(Mapping):
        pass
    
    class ListAccessPointsResult(Mapping):
        pass
    
    class ListAccessPointsForObjectLambdaRequest(Mapping):
        pass
    
    class ListAccessPointsForObjectLambdaResult(Mapping):
        pass
    
    class ListJobsRequest(Mapping):
        pass
    
    class ListJobsResult(Mapping):
        pass
    
    class JobStatus(object):
        pass
    
    class ListRegionalBucketsRequest(Mapping):
        pass
    
    class ListRegionalBucketsResult(Mapping):
        pass
    
    class ListStorageLensConfigurationsRequest(Mapping):
        pass
    
    class ListStorageLensConfigurationsResult(Mapping):
        pass
    
    class PutAccessPointConfigurationForObjectLambdaRequest(Mapping):
        pass
    
    class PutAccessPointPolicyRequest(Mapping):
        pass
    
    class PutAccessPointPolicyForObjectLambdaRequest(Mapping):
        pass
    
    class PutBucketLifecycleConfigurationRequest(Mapping):
        pass
    
    class LifecycleConfiguration(Mapping):
        pass
    
    class PutBucketPolicyRequest(Mapping):
        pass
    
    class ConfirmRemoveSelfBucketAccess(object):
        pass
    
    class PutBucketTaggingRequest(Mapping):
        pass
    
    class Tagging(Mapping):
        pass
    
    class PutJobTaggingRequest(Mapping):
        pass
    
    class PutJobTaggingResult(Mapping):
        pass
    
    class PutPublicAccessBlockRequest(Mapping):
        pass
    
    class PutStorageLensConfigurationRequest(Mapping):
        pass
    
    class StorageLensConfiguration(Mapping):
        pass
    
    class StorageLensTag(Mapping):
        pass
    
    class PutStorageLensConfigurationTaggingRequest(Mapping):
        pass
    
    class PutStorageLensConfigurationTaggingResult(Mapping):
        pass
    
    class UpdateJobPriorityRequest(Mapping):
        pass
    
    class UpdateJobPriorityResult(Mapping):
        pass
    
    class UpdateJobStatusRequest(Mapping):
        pass
    
    class UpdateJobStatusResult(Mapping):
        pass
    
    def create_access_point(self, Bucket: str, Name: str, AccountId: str, VpcConfiguration: VpcConfiguration=None, PublicAccessBlockConfiguration: PublicAccessBlockConfiguration=None) -> CreateAccessPointResult:
        r"""Creates an access point and associates it with the specified bucket. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points.html">Managing Data Access with Amazon S3 Access Points</a> in the <i>Amazon S3 User Guide</i>. <p/> <note> S3 on Outposts only supports VPC-style access points.  For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html"> Accessing Amazon S3 on Outposts using virtual private cloud (VPC) only access points</a> in the <i>Amazon S3 User Guide</i>. </note> All Amazon S3 on Outposts REST API requests for this action require an additional parameter of <code>x-amz-outpost-id</code> to be passed with the request and an S3 on Outposts endpoint hostname prefix instead of <code>s3-control</code>. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the <code>x-amz-outpost-id</code> derived using the access point ARN, see the <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessPoint.html#API_control_CreateAccessPoint_Examples">Examples</a> section. <p/> The following actions are related to <code>CreateAccessPoint</code>: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPoint.html">GetAccessPoint</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPoint.html">DeleteAccessPoint</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListAccessPoints.html">ListAccessPoints</a>  </li> </ul>

        :param self:
        :param PublicAccessBlockConfiguration:   The <code>PublicAccessBlock</code> configuration that you want to apply to the access point. :<br/>VpcConfiguration:  If you include this field, Amazon S3 restricts access to this access point to requests from the specified virtual private cloud (VPC). <note> This is required for creating an access point for Amazon S3 on Outposts buckets. </note>:<br/>Bucket:  The name of the bucket that you want to associate this access point with. For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well. For using this parameter with S3 on Outposts with the AWS SDK and CLI, you must specify the ARN of the bucket accessed in the format <code>arn:aws:s3-outposts:&lt;Region&gt;:&lt;account-id&gt;:outpost/&lt;outpost-id&gt;/bucket/&lt;my-bucket-name&gt;</code>. For example, to access the bucket <code>reports</code> through outpost <code>my-outpost</code> owned by account <code>123456789012</code> in Region <code>us-west-2</code>, use the URL encoding of <code>arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports</code>. The value must be URL encoded. <br/>Name:  The name you want to assign to this access point.<br/>AccountId:  The AWS account ID for the owner of the bucket for which you want to create an access point.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> If this field is specified, this access point will only allow connections from the specified VPC ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RestrictPublicBuckets</i> Specifies whether Amazon S3 should restrict public bucket policies for buckets in this account. Setting this element to <code>TRUE</code> restricts access to buckets with public policies to only AWS service principals and authorized users within this account. Enabling this setting doesn't affect previously stored bucket policies, except that public and cross-account access within any public bucket policy, including non-public delegation to specific accounts, is blocked. This is not supported for Amazon S3 on Outposts.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BlockPublicPolicy</i> Specifies whether Amazon S3 should block public bucket policies for buckets in this account. Setting this element to <code>TRUE</code> causes Amazon S3 to reject calls to PUT Bucket policy if the specified bucket policy allows public access.  Enabling this setting doesn't affect existing bucket policies. This is not supported for Amazon S3 on Outposts.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IgnorePublicAcls</i> Specifies whether Amazon S3 should ignore public ACLs for buckets in this account. Setting this element to <code>TRUE</code> causes Amazon S3 to ignore all public ACLs on buckets in this account and any objects that they contain.  Enabling this setting doesn't affect the persistence of any existing ACLs and doesn't prevent new public ACLs from being set. This is not supported for Amazon S3 on Outposts.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BlockPublicAcls</i> Specifies whether Amazon S3 should block public access control lists (ACLs) for buckets in this account. Setting this element to <code>TRUE</code> causes the following behavior: <ul> <li> PUT Bucket acl and PUT Object acl calls fail if the specified ACL is public. </li> <li> PUT Object calls fail if the request includes a public ACL. </li> <li> PUT Bucket calls fail if the request includes a public ACL. </li> </ul> Enabling this setting doesn't affect existing policies or ACLs. This is not supported for Amazon S3 on Outposts.<br/>
        :return: AccessPointArn:  The ARN of the access point. <note> This is only supported by Amazon S3 on Outposts. </note><br/>        """
        pass

    def create_access_point_for_object_lambda(self, Configuration: ObjectLambdaConfiguration, Name: str, AccountId: str) -> CreateAccessPointForObjectLambdaResult:
        r"""Creates an Object Lambda Access Point. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/transforming-objects.html">Transforming objects with Object Lambda Access Points</a> in the <i>Amazon S3 User Guide</i>. The following actions are related to <code>CreateAccessPointForObjectLambda</code>: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPointForObjectLambda.html">DeleteAccessPointForObjectLambda</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPointForObjectLambda.html">GetAccessPointForObjectLambda</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListAccessPointsForObjectLambda.html">ListAccessPointsForObjectLambda</a>  </li> </ul>

        :param self:
        :param Configuration:  Object Lambda Access Point configuration as a JSON document.:<br/>Name:  The name you want to assign to this Object Lambda Access Point.<br/>AccountId:  The AWS account ID for owner of the specified Object Lambda Access Point.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransformationConfigurations</i> A container for transformation configurations for an Object Lambda Access Point.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowedFeatures</i> A container for allowed features. Valid inputs are <code>GetObject-Range</code> and <code>GetObject-PartNumber</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudWatchMetricsEnabled</i> A container for whether the CloudWatch metrics configuration is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SupportingAccessPoint</i> Standard access point associated with the Object Lambda Access Point.<br/>
        :return: ObjectLambdaAccessPointArn:  Specifies the ARN for the Object Lambda Access Point.<br/>        """
        pass

    def create_bucket(self, Bucket: str, ACL: str=None, CreateBucketConfiguration: CreateBucketConfiguration=None, GrantFullControl: str=None, GrantRead: str=None, GrantReadACP: str=None, GrantWrite: str=None, GrantWriteACP: str=None, ObjectLockEnabledForBucket: ObjectLockEnabledForBucket=None, OutpostId: str=None) -> CreateBucketResult:
        r"""<note> This action creates an Amazon S3 on Outposts bucket. To create an S3 bucket, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">Create Bucket</a> in the <i>Amazon S3 API Reference</i>.  </note> Creates a new Outposts bucket. By creating the bucket, you become the bucket owner. To create an Outposts bucket, you must have S3 on Outposts. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html">Using Amazon S3 on Outposts</a> in <i>Amazon S3 User Guide</i>. Not every string is an acceptable bucket name. For information on bucket naming restrictions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/BucketRestrictions.html#bucketnamingrules">Working with Amazon S3 Buckets</a>. S3 on Outposts buckets support: <ul> <li> Tags </li> <li> LifecycleConfigurations for deleting expired objects </li> </ul> For a complete list of restrictions and Amazon S3 feature limitations on S3 on Outposts, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3OnOutpostsRestrictionsLimitations.html"> Amazon S3 on Outposts Restrictions and Limitations</a>. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and <code>x-amz-outpost-id</code> in your API request, see the <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateBucket.html#API_control_CreateBucket_Examples">Examples</a> section. The following actions are related to <code>CreateBucket</code> for Amazon S3 on Outposts: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html">PutObject</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucket.html">GetBucket</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucket.html">DeleteBucket</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessPoint.html">CreateAccessPoint</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutAccessPointPolicy.html">PutAccessPointPolicy</a>  </li> </ul>

        :param self:
        :param OutpostId:  The ID of the Outposts where the bucket is being created. <note> This is required by Amazon S3 on Outposts buckets. </note><br/>ObjectLockEnabledForBucket:  Specifies whether you want S3 Object Lock to be enabled for the new bucket. <note> This is not supported by Amazon S3 on Outposts buckets. </note><br/>GrantWriteACP:  Allows grantee to write the ACL for the applicable bucket. <note> This is not supported by Amazon S3 on Outposts buckets. </note><br/>GrantWrite:  Allows grantee to create, overwrite, and delete any object in the bucket. <note> This is not supported by Amazon S3 on Outposts buckets. </note><br/>GrantReadACP:  Allows grantee to read the bucket ACL. <note> This is not supported by Amazon S3 on Outposts buckets. </note><br/>GrantRead:  Allows grantee to list the objects in the bucket. <note> This is not supported by Amazon S3 on Outposts buckets. </note><br/>GrantFullControl:  Allows grantee the read, write, read ACP, and write ACP permissions on the bucket. <note> This is not supported by Amazon S3 on Outposts buckets. </note><br/>CreateBucketConfiguration:  The configuration information for the bucket. <note> This is not supported by Amazon S3 on Outposts buckets. </note>:<br/>Bucket:  The name of the bucket.<br/>ACL:  The canned ACL to apply to the bucket. <note> This is not supported by Amazon S3 on Outposts buckets. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LocationConstraint</i> Specifies the Region where the bucket will be created. If you are creating a bucket on the US East (N. Virginia) Region (us-east-1), you do not need to specify the location.  <note> This is not supported by Amazon S3 on Outposts buckets. </note><br/>
        :return: BucketArn:  The Amazon Resource Name (ARN) of the bucket. For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well. For using this parameter with S3 on Outposts with the AWS SDK and CLI, you must specify the ARN of the bucket accessed in the format <code>arn:aws:s3-outposts:&lt;Region&gt;:&lt;account-id&gt;:outpost/&lt;outpost-id&gt;/bucket/&lt;my-bucket-name&gt;</code>. For example, to access the bucket <code>reports</code> through outpost <code>my-outpost</code> owned by account <code>123456789012</code> in Region <code>us-west-2</code>, use the URL encoding of <code>arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports</code>. The value must be URL encoded. <br/>Location:  The location of the bucket.<br/>        """
        pass

    def create_job(self, RoleArn: str, Priority: int, Manifest: JobManifest, ClientRequestToken: str, Report: JobReport, Operation: JobOperation, AccountId: str, ConfirmationRequired: ConfirmationRequired=None, Description: str=None, Tags: List[S3Tag]=None) -> CreateJobResult:
        r"""You can use S3 Batch Operations to perform large-scale batch actions on Amazon S3 objects. Batch Operations can run a single action on lists of Amazon S3 objects that you specify. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-basics.html">S3 Batch Operations</a> in the <i>Amazon S3 User Guide</i>. This action creates a S3 Batch Operations job. <p/> Related actions include: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DescribeJob.html">DescribeJob</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListJobs.html">ListJobs</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UpdateJobPriority.html">UpdateJobPriority</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UpdateJobStatus.html">UpdateJobStatus</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_JobOperation.html">JobOperation</a>  </li> </ul>

        :param self:
        :param Tags:  A set of tags to associate with the S3 Batch Operations job. This is an optional parameter. <br/>RoleArn:  The Amazon Resource Name (ARN) for the AWS Identity and Access Management (IAM) role that Batch Operations will use to run this job's action on every object in the manifest.<br/>Priority:  The numerical priority for this job. Higher numbers indicate higher priority.<br/>Description:  A description for this job. You can use any string within the permitted length. Descriptions don't need to be unique and can be used for multiple jobs.<br/>Manifest:  Configuration parameters for the manifest.:<br/>ClientRequestToken:  An idempotency token to ensure that you don't accidentally submit the same request twice. You can use any string up to the maximum length.<br/>Report:  Configuration parameters for the optional job-completion report.:<br/>Operation:  The action that you want this job to perform on every object listed in the manifest. For more information about the available actions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-actions.html">Operations</a> in the <i>Amazon S3 User Guide</i>.:<br/>ConfirmationRequired:  Indicates whether confirmation is required before Amazon S3 runs the job. Confirmation is only required for jobs created through the Amazon S3 console.<br/>AccountId:  The AWS account ID that creates the job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3PutObjectTagging</i> Directs the specified job to run a PUT Object tagging call on every object in the manifest.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3PutObjectTagging</b>: Directs the specified job to run a PUT Object tagging call on every object in the manifest.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3PutObjectAcl</i> Directs the specified job to run a PUT Object acl call on every object in the manifest.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3PutObjectAcl</b>: Directs the specified job to run a PUT Object acl call on every object in the manifest.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3PutObjectCopy</i> Directs the specified job to run a PUT Copy object call on every object in the manifest.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3PutObjectCopy</b>: Directs the specified job to run a PUT Copy object call on every object in the manifest.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LambdaInvoke</i> Directs the specified job to invoke an AWS Lambda function on every object in the manifest.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>LambdaInvoke</b>: Directs the specified job to invoke an AWS Lambda function on every object in the manifest.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FunctionArn</i> The Amazon Resource Name (ARN) for the AWS Lambda function that the specified job will invoke on every object in the manifest.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ModifiedSinceConstraint</i> <p/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MetadataDirective</i> <p/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AccessControlGrants</i> <p/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CannedAccessControlList</i> <p/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetResource</i> Specifies the destination bucket ARN for the batch copy operation. For example, to copy objects to a bucket named "destinationBucket", set the TargetResource to "arn:aws:s3:::destinationBucket".<br/><p/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>NewObjectMetadata</b>: <p/><p/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AccessControlPolicy</b>: <p/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TagSet</i> <p/><br/>Directs the specified job to execute a DELETE Object tagging call on every object in the manifest.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3DeleteObjectTagging</b>: Directs the specified job to execute a DELETE Object tagging call on every object in the manifest.&nbsp;&nbsp;&nbsp;&nbsp; <i>ReportScope</i> Indicates whether the job-completion report will include details of all tasks or only failed tasks.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Prefix</i> An optional prefix to describe where in the specified bucket the job-completion report will be stored. Amazon S3 stores the job-completion report at <code>&lt;prefix&gt;/job-&lt;job-id&gt;/report.json</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Indicates whether the specified job will generate a job-completion report.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Format</i> The format of the specified job-completion report.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i> The Amazon Resource Name (ARN) for the bucket where specified job-completion report will be stored.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Location</i> Contains the information required to locate the specified job's manifest.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Location</b>: Contains the information required to locate the specified job's manifest.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Spec</i> Describes the format of the specified job's manifest. If the manifest is in CSV format, also describes the columns contained within the manifest.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Spec</b>: Describes the format of the specified job's manifest. If the manifest is in CSV format, also describes the columns contained within the manifest.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Fields</i> If the specified manifest object is in the <code>S3BatchOperations_CSV_20180820</code> format, this element describes which columns contain the required data.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Format</i> Indicates which of the available formats the specified manifest uses.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ETag</i> The ETag for the specified manifest object.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ObjectVersionId</i> The optional version ID to identify a specific version of the manifest object.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ObjectArn</i> The Amazon Resource Name (ARN) for a manifest object. <important> Replacement must be made for object keys containing special characters (such as carriage returns) when using XML requests. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints"> XML related object key constraints</a>. </important><br/>
        :return: JobId:  The ID for this job. Amazon S3 generates this ID automatically and returns it after a successful <code>Create Job</code> request.<br/>        """
        pass

    def delete_access_point(self, Name: str, AccountId: str):
        r"""Deletes the specified access point. All Amazon S3 on Outposts REST API requests for this action require an additional parameter of <code>x-amz-outpost-id</code> to be passed with the request and an S3 on Outposts endpoint hostname prefix instead of <code>s3-control</code>. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the <code>x-amz-outpost-id</code> derived using the access point ARN, see the <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPoint.html#API_control_DeleteAccessPoint_Examples">Examples</a> section. The following actions are related to <code>DeleteAccessPoint</code>: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessPoint.html">CreateAccessPoint</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPoint.html">GetAccessPoint</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListAccessPoints.html">ListAccessPoints</a>  </li> </ul>

        :param self:
        :param Name:  The name of the access point you want to delete. For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well. For using this parameter with S3 on Outposts with the AWS SDK and CLI, you must specify the ARN of the access point accessed in the format <code>arn:aws:s3-outposts:&lt;Region&gt;:&lt;account-id&gt;:outpost/&lt;outpost-id&gt;/accesspoint/&lt;my-accesspoint-name&gt;</code>. For example, to access the access point <code>reports-ap</code> through outpost <code>my-outpost</code> owned by account <code>123456789012</code> in Region <code>us-west-2</code>, use the URL encoding of <code>arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/accesspoint/reports-ap</code>. The value must be URL encoded. <br/>AccountId:  The account ID for the account that owns the specified access point.<br/>
        :return:         """
        pass

    def delete_access_point_for_object_lambda(self, Name: str, AccountId: str):
        r"""Deletes the specified Object Lambda Access Point. The following actions are related to <code>DeleteAccessPointForObjectLambda</code>: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessPointForObjectLambda.html">CreateAccessPointForObjectLambda</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPointForObjectLambda.html">GetAccessPointForObjectLambda</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListAccessPointsForObjectLambda.html">ListAccessPointsForObjectLambda</a>  </li> </ul>

        :param self:
        :param Name:  The name of the access point you want to delete.<br/>AccountId:  The account ID for the account that owns the specified Object Lambda Access Point.<br/>
        :return:         """
        pass

    def delete_access_point_policy(self, Name: str, AccountId: str):
        r"""Deletes the access point policy for the specified access point. <p/> All Amazon S3 on Outposts REST API requests for this action require an additional parameter of <code>x-amz-outpost-id</code> to be passed with the request and an S3 on Outposts endpoint hostname prefix instead of <code>s3-control</code>. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the <code>x-amz-outpost-id</code> derived using the access point ARN, see the <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPointPolicy.html#API_control_DeleteAccessPointPolicy_Examples">Examples</a> section. The following actions are related to <code>DeleteAccessPointPolicy</code>: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutAccessPointPolicy.html">PutAccessPointPolicy</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPointPolicy.html">GetAccessPointPolicy</a>  </li> </ul>

        :param self:
        :param Name:  The name of the access point whose policy you want to delete. For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well. For using this parameter with S3 on Outposts with the AWS SDK and CLI, you must specify the ARN of the access point accessed in the format <code>arn:aws:s3-outposts:&lt;Region&gt;:&lt;account-id&gt;:outpost/&lt;outpost-id&gt;/accesspoint/&lt;my-accesspoint-name&gt;</code>. For example, to access the access point <code>reports-ap</code> through outpost <code>my-outpost</code> owned by account <code>123456789012</code> in Region <code>us-west-2</code>, use the URL encoding of <code>arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/accesspoint/reports-ap</code>. The value must be URL encoded. <br/>AccountId:  The account ID for the account that owns the specified access point.<br/>
        :return:         """
        pass

    def delete_access_point_policy_for_object_lambda(self, Name: str, AccountId: str):
        r"""Removes the resource policy for an Object Lambda Access Point. The following actions are related to <code>DeleteAccessPointPolicyForObjectLambda</code>: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPointPolicyForObjectLambda.html">GetAccessPointPolicyForObjectLambda</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutAccessPointPolicyForObjectLambda.html">PutAccessPointPolicyForObjectLambda</a>  </li> </ul>

        :param self:
        :param Name:  The name of the Object Lambda Access Point you want to delete the policy for.<br/>AccountId:  The account ID for the account that owns the specified Object Lambda Access Point.<br/>
        :return:         """
        pass

    def delete_bucket(self, Bucket: str, AccountId: str):
        r"""<note> This action deletes an Amazon S3 on Outposts bucket. To delete an S3 bucket, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html">DeleteBucket</a> in the <i>Amazon S3 API Reference</i>.  </note> Deletes the Amazon S3 on Outposts bucket. All objects (including all object versions and delete markers) in the bucket must be deleted before the bucket itself can be deleted. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html">Using Amazon S3 on Outposts</a> in <i>Amazon S3 User Guide</i>. All Amazon S3 on Outposts REST API requests for this action require an additional parameter of <code>x-amz-outpost-id</code> to be passed with the request and an S3 on Outposts endpoint hostname prefix instead of <code>s3-control</code>. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the <code>x-amz-outpost-id</code> derived using the access point ARN, see the <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucket.html#API_control_DeleteBucket_Examples">Examples</a> section. <p class="title"> <b>Related Resources</b>  <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateBucket.html">CreateBucket</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucket.html">GetBucket</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html">DeleteObject</a>  </li> </ul>

        :param self:
        :param Bucket:  Specifies the bucket being deleted. For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well. For using this parameter with S3 on Outposts with the AWS SDK and CLI, you must specify the ARN of the bucket accessed in the format <code>arn:aws:s3-outposts:&lt;Region&gt;:&lt;account-id&gt;:outpost/&lt;outpost-id&gt;/bucket/&lt;my-bucket-name&gt;</code>. For example, to access the bucket <code>reports</code> through outpost <code>my-outpost</code> owned by account <code>123456789012</code> in Region <code>us-west-2</code>, use the URL encoding of <code>arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports</code>. The value must be URL encoded. <br/>AccountId:  The account ID that owns the Outposts bucket.<br/>
        :return:         """
        pass

    def delete_bucket_lifecycle_configuration(self, Bucket: str, AccountId: str):
        r"""<note> This action deletes an Amazon S3 on Outposts bucket's lifecycle configuration. To delete an S3 bucket's lifecycle configuration, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketLifecycle.html">DeleteBucketLifecycle</a> in the <i>Amazon S3 API Reference</i>.  </note> Deletes the lifecycle configuration from the specified Outposts bucket. Amazon S3 on Outposts removes all the lifecycle configuration rules in the lifecycle subresource associated with the bucket. Your objects never expire, and Amazon S3 on Outposts no longer automatically deletes any objects on the basis of rules contained in the deleted lifecycle configuration. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html">Using Amazon S3 on Outposts</a> in <i>Amazon S3 User Guide</i>. To use this action, you must have permission to perform the <code>s3-outposts:DeleteLifecycleConfiguration</code> action. By default, the bucket owner has this permission and the Outposts bucket owner can grant this permission to others. All Amazon S3 on Outposts REST API requests for this action require an additional parameter of <code>x-amz-outpost-id</code> to be passed with the request and an S3 on Outposts endpoint hostname prefix instead of <code>s3-control</code>. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the <code>x-amz-outpost-id</code> derived using the access point ARN, see the <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketLifecycleConfiguration.html#API_control_DeleteBucketLifecycleConfiguration_Examples">Examples</a> section. For more information about object expiration, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#intro-lifecycle-rules-actions">Elements to Describe Lifecycle Actions</a>. Related actions include: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketLifecycleConfiguration.html">PutBucketLifecycleConfiguration</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketLifecycleConfiguration.html">GetBucketLifecycleConfiguration</a>  </li> </ul>

        :param self:
        :param Bucket:  Specifies the bucket. For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well. For using this parameter with S3 on Outposts with the AWS SDK and CLI, you must specify the ARN of the bucket accessed in the format <code>arn:aws:s3-outposts:&lt;Region&gt;:&lt;account-id&gt;:outpost/&lt;outpost-id&gt;/bucket/&lt;my-bucket-name&gt;</code>. For example, to access the bucket <code>reports</code> through outpost <code>my-outpost</code> owned by account <code>123456789012</code> in Region <code>us-west-2</code>, use the URL encoding of <code>arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports</code>. The value must be URL encoded. <br/>AccountId:  The account ID of the lifecycle configuration to delete.<br/>
        :return:         """
        pass

    def delete_bucket_policy(self, Bucket: str, AccountId: str):
        r"""<note> This action deletes an Amazon S3 on Outposts bucket policy. To delete an S3 bucket policy, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketPolicy.html">DeleteBucketPolicy</a> in the <i>Amazon S3 API Reference</i>.  </note> This implementation of the DELETE action uses the policy subresource to delete the policy of a specified Amazon S3 on Outposts bucket. If you are using an identity other than the root user of the AWS account that owns the bucket, the calling identity must have the <code>s3-outposts:DeleteBucketPolicy</code> permissions on the specified Outposts bucket and belong to the bucket owner's account to use this action. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html">Using Amazon S3 on Outposts</a> in <i>Amazon S3 User Guide</i>. If you don't have <code>DeleteBucketPolicy</code> permissions, Amazon S3 returns a <code>403 Access Denied</code> error. If you have the correct permissions, but you're not using an identity that belongs to the bucket owner's account, Amazon S3 returns a <code>405 Method Not Allowed</code> error.  <important> As a security precaution, the root user of the AWS account that owns a bucket can always use this action, even if the policy explicitly denies the root user the ability to perform this action. </important> For more information about bucket policies, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html">Using Bucket Policies and User Policies</a>.  All Amazon S3 on Outposts REST API requests for this action require an additional parameter of <code>x-amz-outpost-id</code> to be passed with the request and an S3 on Outposts endpoint hostname prefix instead of <code>s3-control</code>. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the <code>x-amz-outpost-id</code> derived using the access point ARN, see the <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketPolicy.html#API_control_DeleteBucketPolicy_Examples">Examples</a> section. The following actions are related to <code>DeleteBucketPolicy</code>: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketPolicy.html">GetBucketPolicy</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketPolicy.html">PutBucketPolicy</a>  </li> </ul>

        :param self:
        :param Bucket:  Specifies the bucket. For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well. For using this parameter with S3 on Outposts with the AWS SDK and CLI, you must specify the ARN of the bucket accessed in the format <code>arn:aws:s3-outposts:&lt;Region&gt;:&lt;account-id&gt;:outpost/&lt;outpost-id&gt;/bucket/&lt;my-bucket-name&gt;</code>. For example, to access the bucket <code>reports</code> through outpost <code>my-outpost</code> owned by account <code>123456789012</code> in Region <code>us-west-2</code>, use the URL encoding of <code>arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports</code>. The value must be URL encoded. <br/>AccountId:  The account ID of the Outposts bucket.<br/>
        :return:         """
        pass

    def delete_bucket_tagging(self, Bucket: str, AccountId: str):
        r"""<note> This action deletes an Amazon S3 on Outposts bucket's tags. To delete an S3 bucket tags, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketTagging.html">DeleteBucketTagging</a> in the <i>Amazon S3 API Reference</i>.  </note> Deletes the tags from the Outposts bucket. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html">Using Amazon S3 on Outposts</a> in <i>Amazon S3 User Guide</i>. To use this action, you must have permission to perform the <code>PutBucketTagging</code> action. By default, the bucket owner has this permission and can grant this permission to others.  All Amazon S3 on Outposts REST API requests for this action require an additional parameter of <code>x-amz-outpost-id</code> to be passed with the request and an S3 on Outposts endpoint hostname prefix instead of <code>s3-control</code>. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the <code>x-amz-outpost-id</code> derived using the access point ARN, see the <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketTagging.html#API_control_DeleteBucketTagging_Examples">Examples</a> section. The following actions are related to <code>DeleteBucketTagging</code>: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketTagging.html">GetBucketTagging</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketTagging.html">PutBucketTagging</a>  </li> </ul>

        :param self:
        :param Bucket:  The bucket ARN that has the tag set to be removed. For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well. For using this parameter with S3 on Outposts with the AWS SDK and CLI, you must specify the ARN of the bucket accessed in the format <code>arn:aws:s3-outposts:&lt;Region&gt;:&lt;account-id&gt;:outpost/&lt;outpost-id&gt;/bucket/&lt;my-bucket-name&gt;</code>. For example, to access the bucket <code>reports</code> through outpost <code>my-outpost</code> owned by account <code>123456789012</code> in Region <code>us-west-2</code>, use the URL encoding of <code>arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports</code>. The value must be URL encoded. <br/>AccountId:  The AWS account ID of the Outposts bucket tag set to be removed.<br/>
        :return:         """
        pass

    def delete_job_tagging(self, JobId: str, AccountId: str) -> DeleteJobTaggingResult:
        r"""Removes the entire tag set from the specified S3 Batch Operations job. To use this operation, you must have permission to perform the <code>s3:DeleteJobTagging</code> action. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-managing-jobs.html#batch-ops-job-tags">Controlling access and labeling jobs using tags</a> in the <i>Amazon S3 User Guide</i>. <p/> Related actions include: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateJob.html">CreateJob</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetJobTagging.html">GetJobTagging</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutJobTagging.html">PutJobTagging</a>  </li> </ul>

        :param self:
        :param JobId:  The ID for the S3 Batch Operations job whose tags you want to delete.<br/>AccountId:  The AWS account ID associated with the S3 Batch Operations job.<br/>
        :return:         """
        pass

    def delete_public_access_block(self, AccountId: str):
        r"""Removes the <code>PublicAccessBlock</code> configuration for an AWS account. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html"> Using Amazon S3 block public access</a>. Related actions include: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetPublicAccessBlock.html">GetPublicAccessBlock</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutPublicAccessBlock.html">PutPublicAccessBlock</a>  </li> </ul>

        :param self:
        :param AccountId:  The account ID for the AWS account whose <code>PublicAccessBlock</code> configuration you want to remove.<br/>
        :return:         """
        pass

    def delete_storage_lens_configuration(self, AccountId: str, ConfigId: str):
        r"""Deletes the Amazon S3 Storage Lens configuration. For more information about S3 Storage Lens, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens.html">Assessing your storage activity and usage with Amazon S3 Storage Lens </a> in the <i>Amazon S3 User Guide</i>. <note> To use this action, you must have permission to perform the <code>s3:DeleteStorageLensConfiguration</code> action. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens_iam_permissions.html">Setting permissions to use Amazon S3 Storage Lens</a> in the <i>Amazon S3 User Guide</i>. </note>

        :param self:
        :param AccountId:  The account ID of the requester.<br/>ConfigId:  The ID of the S3 Storage Lens configuration.<br/>
        :return:         """
        pass

    def delete_storage_lens_configuration_tagging(self, AccountId: str, ConfigId: str) -> DeleteStorageLensConfigurationTaggingResult:
        r"""Deletes the Amazon S3 Storage Lens configuration tags. For more information about S3 Storage Lens, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens.html">Assessing your storage activity and usage with Amazon S3 Storage Lens </a> in the <i>Amazon S3 User Guide</i>. <note> To use this action, you must have permission to perform the <code>s3:DeleteStorageLensConfigurationTagging</code> action. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens_iam_permissions.html">Setting permissions to use Amazon S3 Storage Lens</a> in the <i>Amazon S3 User Guide</i>. </note>

        :param self:
        :param AccountId:  The account ID of the requester.<br/>ConfigId:  The ID of the S3 Storage Lens configuration.<br/>
        :return:         """
        pass

    def describe_job(self, JobId: str, AccountId: str) -> DescribeJobResult:
        r"""Retrieves the configuration parameters and status for a Batch Operations job. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-basics.html">S3 Batch Operations</a> in the <i>Amazon S3 User Guide</i>. <p/> Related actions include: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateJob.html">CreateJob</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListJobs.html">ListJobs</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UpdateJobPriority.html">UpdateJobPriority</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UpdateJobStatus.html">UpdateJobStatus</a>  </li> </ul>

        :param self:
        :param JobId:  The ID for the job whose information you want to retrieve.<br/>AccountId:  The AWS account ID associated with the S3 Batch Operations job.<br/>
        :return: Job:  Contains the configuration parameters and status for the job specified in the <code>Describe Job</code> request.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SuspendedCause</i> The reason why the specified job was suspended. A job is only suspended if you create it through the Amazon S3 console. When you create the job, it enters the <code>Suspended</code> state to await confirmation before running. After you confirm the job, it automatically exits the <code>Suspended</code> state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SuspendedDate</i> The timestamp when this job was suspended, if it has been suspended.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The Amazon Resource Name (ARN) for the AWS Identity and Access Management (IAM) role assigned to run the tasks for this job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TerminationDate</i> A timestamp indicating when this job terminated. A job's termination date is the date and time when it succeeded, failed, or was canceled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> A timestamp indicating when this job was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Report</i> Contains the configuration information for the job-completion report if you requested one in the <code>Create Job</code> request.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Report</b>: Contains the configuration information for the job-completion report if you requested one in the <code>Create Job</code> request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FailureReasons</i> If the specified job failed, this field contains information describing the failure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusUpdateReason</i> The reason for updating the job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProgressSummary</i> Describes the total number of tasks that the specified job has run, the number of tasks that succeeded, and the number of tasks that failed.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ProgressSummary</b>: Describes the total number of tasks that the specified job has run, the number of tasks that succeeded, and the number of tasks that failed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Priority</i> The priority of the specified job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Operation</i> The operation that the specified job is configured to run on the objects listed in the manifest.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Operation</b>: The operation that the specified job is configured to run on the objects listed in the manifest.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Manifest</i> The configuration information for the specified job's manifest object.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Manifest</b>: The configuration information for the specified job's manifest object.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current status of the specified job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobArn</i> The Amazon Resource Name (ARN) for this job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description for this job, if one was provided in this job's <code>Create Job</code> request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConfirmationRequired</i> Indicates whether confirmation is required before Amazon S3 begins running the specified job. Confirmation is required only for jobs created through the Amazon S3 console.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobId</i> The ID for the specified job.<br/>Describes the format of the specified job's manifest. If the manifest is in CSV format, also describes the columns contained within the manifest.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Spec</b>: Describes the format of the specified job's manifest. If the manifest is in CSV format, also describes the columns contained within the manifest.Directs the specified job to invoke an AWS Lambda function on every object in the manifest.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>LambdaInvoke</b>: Directs the specified job to invoke an AWS Lambda function on every object in the manifest.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberOfTasksFailed</i> <p/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberOfTasksSucceeded</i> <p/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalNumberOfTasks</i> <p/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReportScope</i> Indicates whether the job-completion report will include details of all tasks or only failed tasks.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Prefix</i> An optional prefix to describe where in the specified bucket the job-completion report will be stored. Amazon S3 stores the job-completion report at <code>&lt;prefix&gt;/job-&lt;job-id&gt;/report.json</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Indicates whether the specified job will generate a job-completion report.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Format</i> The format of the specified job-completion report.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i> The Amazon Resource Name (ARN) for the bucket where specified job-completion report will be stored.<br/>        """
        pass

    def get_access_point(self, Name: str, AccountId: str) -> GetAccessPointResult:
        r"""Returns configuration information about the specified access point. <p/> All Amazon S3 on Outposts REST API requests for this action require an additional parameter of <code>x-amz-outpost-id</code> to be passed with the request and an S3 on Outposts endpoint hostname prefix instead of <code>s3-control</code>. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the <code>x-amz-outpost-id</code> derived using the access point ARN, see the <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPoint.html#API_control_GetAccessPoint_Examples">Examples</a> section. The following actions are related to <code>GetAccessPoint</code>: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessPoint.html">CreateAccessPoint</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPoint.html">DeleteAccessPoint</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListAccessPoints.html">ListAccessPoints</a>  </li> </ul>

        :param self:
        :param Name:  The name of the access point whose configuration information you want to retrieve. For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well. For using this parameter with S3 on Outposts with the AWS SDK and CLI, you must specify the ARN of the access point accessed in the format <code>arn:aws:s3-outposts:&lt;Region&gt;:&lt;account-id&gt;:outpost/&lt;outpost-id&gt;/accesspoint/&lt;my-accesspoint-name&gt;</code>. For example, to access the access point <code>reports-ap</code> through outpost <code>my-outpost</code> owned by account <code>123456789012</code> in Region <code>us-west-2</code>, use the URL encoding of <code>arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/accesspoint/reports-ap</code>. The value must be URL encoded. <br/>AccountId:  The account ID for the account that owns the specified access point.<br/>
        :return: CreationDate:  The date and time when the specified access point was created.<br/>PublicAccessBlockConfiguration:  The <code>PublicAccessBlock</code> configuration that you want to apply to this Amazon S3 account. You can enable the configuration options in any combination. For more information about when Amazon S3 considers a bucket or object public, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status">The Meaning of "Public"</a> in the <i>Amazon S3 User Guide</i>. This is not supported for Amazon S3 on Outposts.:<br/>VpcConfiguration:  Contains the virtual private cloud (VPC) configuration for the specified access point. <note> This element is empty if this access point is an Amazon S3 on Outposts access point that is used by other AWS services. </note>:<br/>NetworkOrigin:  Indicates whether this access point allows access from the public internet. If <code>VpcConfiguration</code> is specified for this access point, then <code>NetworkOrigin</code> is <code>VPC</code>, and the access point doesn't allow access from the public internet. Otherwise, <code>NetworkOrigin</code> is <code>Internet</code>, and the access point allows access from the public internet, subject to the access point and bucket access policies. This will always be true for an Amazon S3 on Outposts access point<br/>Bucket:  The name of the bucket associated with the specified access point.<br/>Name:  The name of the specified access point.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> If this field is specified, this access point will only allow connections from the specified VPC ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RestrictPublicBuckets</i> Specifies whether Amazon S3 should restrict public bucket policies for buckets in this account. Setting this element to <code>TRUE</code> restricts access to buckets with public policies to only AWS service principals and authorized users within this account. Enabling this setting doesn't affect previously stored bucket policies, except that public and cross-account access within any public bucket policy, including non-public delegation to specific accounts, is blocked. This is not supported for Amazon S3 on Outposts.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BlockPublicPolicy</i> Specifies whether Amazon S3 should block public bucket policies for buckets in this account. Setting this element to <code>TRUE</code> causes Amazon S3 to reject calls to PUT Bucket policy if the specified bucket policy allows public access.  Enabling this setting doesn't affect existing bucket policies. This is not supported for Amazon S3 on Outposts.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IgnorePublicAcls</i> Specifies whether Amazon S3 should ignore public ACLs for buckets in this account. Setting this element to <code>TRUE</code> causes Amazon S3 to ignore all public ACLs on buckets in this account and any objects that they contain.  Enabling this setting doesn't affect the persistence of any existing ACLs and doesn't prevent new public ACLs from being set. This is not supported for Amazon S3 on Outposts.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BlockPublicAcls</i> Specifies whether Amazon S3 should block public access control lists (ACLs) for buckets in this account. Setting this element to <code>TRUE</code> causes the following behavior: <ul> <li> PUT Bucket acl and PUT Object acl calls fail if the specified ACL is public. </li> <li> PUT Object calls fail if the request includes a public ACL. </li> <li> PUT Bucket calls fail if the request includes a public ACL. </li> </ul> Enabling this setting doesn't affect existing policies or ACLs. This is not supported for Amazon S3 on Outposts.<br/>        """
        pass

    def get_access_point_configuration_for_object_lambda(self, Name: str, AccountId: str) -> GetAccessPointConfigurationForObjectLambdaResult:
        r"""Returns configuration for an Object Lambda Access Point. The following actions are related to <code>GetAccessPointConfigurationForObjectLambda</code>: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutAccessPointConfigurationForObjectLambda.html">PutAccessPointConfigurationForObjectLambda</a>  </li> </ul>

        :param self:
        :param Name:  The name of the Object Lambda Access Point you want to return the configuration for.<br/>AccountId:  The account ID for the account that owns the specified Object Lambda Access Point.<br/>
        :return: Configuration:  Object Lambda Access Point configuration document.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransformationConfigurations</i> A container for transformation configurations for an Object Lambda Access Point.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowedFeatures</i> A container for allowed features. Valid inputs are <code>GetObject-Range</code> and <code>GetObject-PartNumber</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudWatchMetricsEnabled</i> A container for whether the CloudWatch metrics configuration is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SupportingAccessPoint</i> Standard access point associated with the Object Lambda Access Point.<br/>        """
        pass

    def get_access_point_for_object_lambda(self, Name: str, AccountId: str) -> GetAccessPointForObjectLambdaResult:
        r"""Returns configuration information about the specified Object Lambda Access Point The following actions are related to <code>GetAccessPointForObjectLambda</code>: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessPointForObjectLambda.html">CreateAccessPointForObjectLambda</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPointForObjectLambda.html">DeleteAccessPointForObjectLambda</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListAccessPointsForObjectLambda.html">ListAccessPointsForObjectLambda</a>  </li> </ul>

        :param self:
        :param Name:  The name of the Object Lambda Access Point.<br/>AccountId:  The account ID for the account that owns the specified Object Lambda Access Point.<br/>
        :return: CreationDate:  The date and time when the specified Object Lambda Access Point was created.<br/>PublicAccessBlockConfiguration:  Configuration to block all public access. This setting is turned on and can not be edited. :<br/>Name:  The name of the Object Lambda Access Point.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RestrictPublicBuckets</i> Specifies whether Amazon S3 should restrict public bucket policies for buckets in this account. Setting this element to <code>TRUE</code> restricts access to buckets with public policies to only AWS service principals and authorized users within this account. Enabling this setting doesn't affect previously stored bucket policies, except that public and cross-account access within any public bucket policy, including non-public delegation to specific accounts, is blocked. This is not supported for Amazon S3 on Outposts.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BlockPublicPolicy</i> Specifies whether Amazon S3 should block public bucket policies for buckets in this account. Setting this element to <code>TRUE</code> causes Amazon S3 to reject calls to PUT Bucket policy if the specified bucket policy allows public access.  Enabling this setting doesn't affect existing bucket policies. This is not supported for Amazon S3 on Outposts.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IgnorePublicAcls</i> Specifies whether Amazon S3 should ignore public ACLs for buckets in this account. Setting this element to <code>TRUE</code> causes Amazon S3 to ignore all public ACLs on buckets in this account and any objects that they contain.  Enabling this setting doesn't affect the persistence of any existing ACLs and doesn't prevent new public ACLs from being set. This is not supported for Amazon S3 on Outposts.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BlockPublicAcls</i> Specifies whether Amazon S3 should block public access control lists (ACLs) for buckets in this account. Setting this element to <code>TRUE</code> causes the following behavior: <ul> <li> PUT Bucket acl and PUT Object acl calls fail if the specified ACL is public. </li> <li> PUT Object calls fail if the request includes a public ACL. </li> <li> PUT Bucket calls fail if the request includes a public ACL. </li> </ul> Enabling this setting doesn't affect existing policies or ACLs. This is not supported for Amazon S3 on Outposts.<br/>        """
        pass

    def get_access_point_policy(self, Name: str, AccountId: str) -> GetAccessPointPolicyResult:
        r"""Returns the access point policy associated with the specified access point. The following actions are related to <code>GetAccessPointPolicy</code>: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutAccessPointPolicy.html">PutAccessPointPolicy</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPointPolicy.html">DeleteAccessPointPolicy</a>  </li> </ul>

        :param self:
        :param Name:  The name of the access point whose policy you want to retrieve. For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well. For using this parameter with S3 on Outposts with the AWS SDK and CLI, you must specify the ARN of the access point accessed in the format <code>arn:aws:s3-outposts:&lt;Region&gt;:&lt;account-id&gt;:outpost/&lt;outpost-id&gt;/accesspoint/&lt;my-accesspoint-name&gt;</code>. For example, to access the access point <code>reports-ap</code> through outpost <code>my-outpost</code> owned by account <code>123456789012</code> in Region <code>us-west-2</code>, use the URL encoding of <code>arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/accesspoint/reports-ap</code>. The value must be URL encoded. <br/>AccountId:  The account ID for the account that owns the specified access point.<br/>
        :return: Policy:  The access point policy associated with the specified access point.<br/>        """
        pass

    def get_access_point_policy_for_object_lambda(self, Name: str, AccountId: str) -> GetAccessPointPolicyForObjectLambdaResult:
        r"""Returns the resource policy for an Object Lambda Access Point. The following actions are related to <code>GetAccessPointPolicyForObjectLambda</code>: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPointPolicyForObjectLambda.html">DeleteAccessPointPolicyForObjectLambda</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutAccessPointPolicyForObjectLambda.html">PutAccessPointPolicyForObjectLambda</a>  </li> </ul>

        :param self:
        :param Name:  The name of the Object Lambda Access Point.<br/>AccountId:  The account ID for the account that owns the specified Object Lambda Access Point.<br/>
        :return: Policy:  Object Lambda Access Point resource policy document.<br/>        """
        pass

    def get_access_point_policy_status(self, Name: str, AccountId: str) -> GetAccessPointPolicyStatusResult:
        r"""Indicates whether the specified access point currently has a policy that allows public access. For more information about public access through access points, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points.html">Managing Data Access with Amazon S3 access points</a> in the <i>Amazon S3 User Guide</i>.

        :param self:
        :param Name:  The name of the access point whose policy status you want to retrieve.<br/>AccountId:  The account ID for the account that owns the specified access point.<br/>
        :return: PolicyStatus:  Indicates the current policy status of the specified access point.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsPublic</i> <p/><br/>        """
        pass

    def get_access_point_policy_status_for_object_lambda(self, Name: str, AccountId: str) -> GetAccessPointPolicyStatusForObjectLambdaResult:
        r"""Returns the status of the resource policy associated with an Object Lambda Access Point.

        :param self:
        :param Name:  The name of the Object Lambda Access Point.<br/>AccountId:  The account ID for the account that owns the specified Object Lambda Access Point.<br/>
        :return: PolicyStatus:  Indicates whether this access point policy is public. For more information about how Amazon S3 evaluates policies to determine whether they are public, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status">The Meaning of "Public"</a> in the <i>Amazon S3 User Guide</i>. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsPublic</i> <p/><br/>        """
        pass

    def get_bucket(self, Bucket: str, AccountId: str) -> GetBucketResult:
        r"""Gets an Amazon S3 on Outposts bucket. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html"> Using Amazon S3 on Outposts</a> in the <i>Amazon S3 User Guide</i>. If you are using an identity other than the root user of the AWS account that owns the Outposts bucket, the calling identity must have the <code>s3-outposts:GetBucket</code> permissions on the specified Outposts bucket and belong to the Outposts bucket owner's account in order to use this action. Only users from Outposts bucket owner account with the right permissions can perform actions on an Outposts bucket.   If you don't have <code>s3-outposts:GetBucket</code> permissions or you're not using an identity that belongs to the bucket owner's account, Amazon S3 returns a <code>403 Access Denied</code> error. The following actions are related to <code>GetBucket</code> for Amazon S3 on Outposts: All Amazon S3 on Outposts REST API requests for this action require an additional parameter of <code>x-amz-outpost-id</code> to be passed with the request and an S3 on Outposts endpoint hostname prefix instead of <code>s3-control</code>. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the <code>x-amz-outpost-id</code> derived using the access point ARN, see the <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucket.html#API_control_GetBucket_Examples">Examples</a> section. <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html">PutObject</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateBucket.html">CreateBucket</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucket.html">DeleteBucket</a>  </li> </ul>

        :param self:
        :param Bucket:  Specifies the bucket. For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well. For using this parameter with S3 on Outposts with the AWS SDK and CLI, you must specify the ARN of the bucket accessed in the format <code>arn:aws:s3-outposts:&lt;Region&gt;:&lt;account-id&gt;:outpost/&lt;outpost-id&gt;/bucket/&lt;my-bucket-name&gt;</code>. For example, to access the bucket <code>reports</code> through outpost <code>my-outpost</code> owned by account <code>123456789012</code> in Region <code>us-west-2</code>, use the URL encoding of <code>arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports</code>. The value must be URL encoded. <br/>AccountId:  The AWS account ID of the Outposts bucket.<br/>
        :return: CreationDate:  The creation date of the Outposts bucket.<br/>PublicAccessBlockEnabled:  <p/><br/>Bucket:  The Outposts bucket requested.<br/>        """
        pass

    def get_bucket_lifecycle_configuration(self, Bucket: str, AccountId: str) -> GetBucketLifecycleConfigurationResult:
        r"""<note> This action gets an Amazon S3 on Outposts bucket's lifecycle configuration. To get an S3 bucket's lifecycle configuration, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html">GetBucketLifecycleConfiguration</a> in the <i>Amazon S3 API Reference</i>.  </note> Returns the lifecycle configuration information set on the Outposts bucket. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html">Using Amazon S3 on Outposts</a> and for information about lifecycle configuration, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html"> Object Lifecycle Management</a> in <i>Amazon S3 User Guide</i>. To use this action, you must have permission to perform the <code>s3-outposts:GetLifecycleConfiguration</code> action. The Outposts bucket owner has this permission, by default. The bucket owner can grant this permission to others. For more information about permissions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions Related to Bucket Subresource Operations</a> and <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing Access Permissions to Your Amazon S3 Resources</a>. All Amazon S3 on Outposts REST API requests for this action require an additional parameter of <code>x-amz-outpost-id</code> to be passed with the request and an S3 on Outposts endpoint hostname prefix instead of <code>s3-control</code>. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the <code>x-amz-outpost-id</code> derived using the access point ARN, see the <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketLifecycleConfiguration.html#API_control_GetBucketLifecycleConfiguration_Examples">Examples</a> section.  <code>GetBucketLifecycleConfiguration</code> has the following special error: <ul> <li> Error code: <code>NoSuchLifecycleConfiguration</code>  <ul> <li> Description: The lifecycle configuration does not exist. </li> <li> HTTP Status Code: 404 Not Found </li> <li> SOAP Fault Code Prefix: Client </li> </ul> </li> </ul> The following actions are related to <code>GetBucketLifecycleConfiguration</code>: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketLifecycleConfiguration.html">PutBucketLifecycleConfiguration</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketLifecycleConfiguration.html">DeleteBucketLifecycleConfiguration</a>  </li> </ul>

        :param self:
        :param Bucket:  The Amazon Resource Name (ARN) of the bucket. For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well. For using this parameter with S3 on Outposts with the AWS SDK and CLI, you must specify the ARN of the bucket accessed in the format <code>arn:aws:s3-outposts:&lt;Region&gt;:&lt;account-id&gt;:outpost/&lt;outpost-id&gt;/bucket/&lt;my-bucket-name&gt;</code>. For example, to access the bucket <code>reports</code> through outpost <code>my-outpost</code> owned by account <code>123456789012</code> in Region <code>us-west-2</code>, use the URL encoding of <code>arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports</code>. The value must be URL encoded. <br/>AccountId:  The AWS account ID of the Outposts bucket.<br/>
        :return: Rules:  Container for the lifecycle rule of the Outposts bucket.<br/>        """
        pass

    def get_bucket_policy(self, Bucket: str, AccountId: str) -> GetBucketPolicyResult:
        r"""<note> This action gets a bucket policy for an Amazon S3 on Outposts bucket. To get a policy for an S3 bucket, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketPolicy.html">GetBucketPolicy</a> in the <i>Amazon S3 API Reference</i>.  </note> Returns the policy of a specified Outposts bucket. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html">Using Amazon S3 on Outposts</a> in the <i>Amazon S3 User Guide</i>. If you are using an identity other than the root user of the AWS account that owns the bucket, the calling identity must have the <code>GetBucketPolicy</code> permissions on the specified bucket and belong to the bucket owner's account in order to use this action. Only users from Outposts bucket owner account with the right permissions can perform actions on an Outposts bucket. If you don't have <code>s3-outposts:GetBucketPolicy</code> permissions or you're not using an identity that belongs to the bucket owner's account, Amazon S3 returns a <code>403 Access Denied</code> error. <important> As a security precaution, the root user of the AWS account that owns a bucket can always use this action, even if the policy explicitly denies the root user the ability to perform this action. </important> For more information about bucket policies, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html">Using Bucket Policies and User Policies</a>. All Amazon S3 on Outposts REST API requests for this action require an additional parameter of <code>x-amz-outpost-id</code> to be passed with the request and an S3 on Outposts endpoint hostname prefix instead of <code>s3-control</code>. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the <code>x-amz-outpost-id</code> derived using the access point ARN, see the <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketPolicy.html#API_control_GetBucketPolicy_Examples">Examples</a> section. The following actions are related to <code>GetBucketPolicy</code>: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketPolicy.html">PutBucketPolicy</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketPolicy.html">DeleteBucketPolicy</a>  </li> </ul>

        :param self:
        :param Bucket:  Specifies the bucket. For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well. For using this parameter with S3 on Outposts with the AWS SDK and CLI, you must specify the ARN of the bucket accessed in the format <code>arn:aws:s3-outposts:&lt;Region&gt;:&lt;account-id&gt;:outpost/&lt;outpost-id&gt;/bucket/&lt;my-bucket-name&gt;</code>. For example, to access the bucket <code>reports</code> through outpost <code>my-outpost</code> owned by account <code>123456789012</code> in Region <code>us-west-2</code>, use the URL encoding of <code>arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports</code>. The value must be URL encoded. <br/>AccountId:  The AWS account ID of the Outposts bucket.<br/>
        :return: Policy:  The policy of the Outposts bucket.<br/>        """
        pass

    def get_bucket_tagging(self, Bucket: str, AccountId: str) -> GetBucketTaggingResult:
        r"""<note> This action gets an Amazon S3 on Outposts bucket's tags. To get an S3 bucket tags, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketTagging.html">GetBucketTagging</a> in the <i>Amazon S3 API Reference</i>.  </note> Returns the tag set associated with the Outposts bucket. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html">Using Amazon S3 on Outposts</a> in the <i>Amazon S3 User Guide</i>. To use this action, you must have permission to perform the <code>GetBucketTagging</code> action. By default, the bucket owner has this permission and can grant this permission to others.  <code>GetBucketTagging</code> has the following special error: <ul> <li> Error code: <code>NoSuchTagSetError</code>  <ul> <li> Description: There is no tag set associated with the bucket. </li> </ul> </li> </ul> All Amazon S3 on Outposts REST API requests for this action require an additional parameter of <code>x-amz-outpost-id</code> to be passed with the request and an S3 on Outposts endpoint hostname prefix instead of <code>s3-control</code>. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the <code>x-amz-outpost-id</code> derived using the access point ARN, see the <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketTagging.html#API_control_GetBucketTagging_Examples">Examples</a> section. The following actions are related to <code>GetBucketTagging</code>: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketTagging.html">PutBucketTagging</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketTagging.html">DeleteBucketTagging</a>  </li> </ul>

        :param self:
        :param Bucket:  Specifies the bucket. For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well. For using this parameter with S3 on Outposts with the AWS SDK and CLI, you must specify the ARN of the bucket accessed in the format <code>arn:aws:s3-outposts:&lt;Region&gt;:&lt;account-id&gt;:outpost/&lt;outpost-id&gt;/bucket/&lt;my-bucket-name&gt;</code>. For example, to access the bucket <code>reports</code> through outpost <code>my-outpost</code> owned by account <code>123456789012</code> in Region <code>us-west-2</code>, use the URL encoding of <code>arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports</code>. The value must be URL encoded. <br/>AccountId:  The AWS account ID of the Outposts bucket.<br/>
        :return: TagSet:  The tags set of the Outposts bucket.<br/>        """
        pass

    def get_job_tagging(self, JobId: str, AccountId: str) -> GetJobTaggingResult:
        r"""Returns the tags on an S3 Batch Operations job. To use this operation, you must have permission to perform the <code>s3:GetJobTagging</code> action. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-managing-jobs.html#batch-ops-job-tags">Controlling access and labeling jobs using tags</a> in the <i>Amazon S3 User Guide</i>. <p/> Related actions include: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateJob.html">CreateJob</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutJobTagging.html">PutJobTagging</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteJobTagging.html">DeleteJobTagging</a>  </li> </ul>

        :param self:
        :param JobId:  The ID for the S3 Batch Operations job whose tags you want to retrieve.<br/>AccountId:  The AWS account ID associated with the S3 Batch Operations job.<br/>
        :return: Tags:  The set of tags associated with the S3 Batch Operations job.<br/>        """
        pass

    def get_public_access_block(self, AccountId: str) -> GetPublicAccessBlockOutput:
        r"""Retrieves the <code>PublicAccessBlock</code> configuration for an AWS account. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html"> Using Amazon S3 block public access</a>. Related actions include: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeletePublicAccessBlock.html">DeletePublicAccessBlock</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutPublicAccessBlock.html">PutPublicAccessBlock</a>  </li> </ul>

        :param self:
        :param AccountId:  The account ID for the AWS account whose <code>PublicAccessBlock</code> configuration you want to retrieve.<br/>
        :return: PublicAccessBlockConfiguration:  The <code>PublicAccessBlock</code> configuration currently in effect for this AWS account.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RestrictPublicBuckets</i> Specifies whether Amazon S3 should restrict public bucket policies for buckets in this account. Setting this element to <code>TRUE</code> restricts access to buckets with public policies to only AWS service principals and authorized users within this account. Enabling this setting doesn't affect previously stored bucket policies, except that public and cross-account access within any public bucket policy, including non-public delegation to specific accounts, is blocked. This is not supported for Amazon S3 on Outposts.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BlockPublicPolicy</i> Specifies whether Amazon S3 should block public bucket policies for buckets in this account. Setting this element to <code>TRUE</code> causes Amazon S3 to reject calls to PUT Bucket policy if the specified bucket policy allows public access.  Enabling this setting doesn't affect existing bucket policies. This is not supported for Amazon S3 on Outposts.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IgnorePublicAcls</i> Specifies whether Amazon S3 should ignore public ACLs for buckets in this account. Setting this element to <code>TRUE</code> causes Amazon S3 to ignore all public ACLs on buckets in this account and any objects that they contain.  Enabling this setting doesn't affect the persistence of any existing ACLs and doesn't prevent new public ACLs from being set. This is not supported for Amazon S3 on Outposts.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BlockPublicAcls</i> Specifies whether Amazon S3 should block public access control lists (ACLs) for buckets in this account. Setting this element to <code>TRUE</code> causes the following behavior: <ul> <li> PUT Bucket acl and PUT Object acl calls fail if the specified ACL is public. </li> <li> PUT Object calls fail if the request includes a public ACL. </li> <li> PUT Bucket calls fail if the request includes a public ACL. </li> </ul> Enabling this setting doesn't affect existing policies or ACLs. This is not supported for Amazon S3 on Outposts.<br/>        """
        pass

    def get_storage_lens_configuration(self, AccountId: str, ConfigId: str) -> GetStorageLensConfigurationResult:
        r"""Gets the Amazon S3 Storage Lens configuration. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens.html">Assessing your storage activity and usage with Amazon S3 Storage Lens </a> in the <i>Amazon S3 User Guide</i>. <note> To use this action, you must have permission to perform the <code>s3:GetStorageLensConfiguration</code> action. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens_iam_permissions.html">Setting permissions to use Amazon S3 Storage Lens</a> in the <i>Amazon S3 User Guide</i>. </note>

        :param self:
        :param AccountId:  The account ID of the requester.<br/>ConfigId:  The ID of the Amazon S3 Storage Lens configuration.<br/>
        :return: StorageLensConfiguration:  The S3 Storage Lens configuration requested.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageLensArn</i> The Amazon Resource Name (ARN) of the S3 Storage Lens configuration. This property is read-only and follows the following format: <code> arn:aws:s3:<i>us-east-1</i>:<i>example-account-id</i>:storage-lens/<i>your-dashboard-name</i> </code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AwsOrg</i> A container for the AWS organization for this S3 Storage Lens configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AwsOrg</b>: A container for the AWS organization for this S3 Storage Lens configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsEnabled</i> A container for whether the S3 Storage Lens configuration is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataExport</i> A container to specify the properties of your S3 Storage Lens metrics export including, the destination, schema and format.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DataExport</b>: A container to specify the properties of your S3 Storage Lens metrics export including, the destination, schema and format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Exclude</i> A container for what is excluded in this configuration. This container can only be valid if there is no <code>Include</code> container submitted, and it's not empty. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Exclude</b>: A container for what is excluded in this configuration. This container can only be valid if there is no <code>Include</code> container submitted, and it's not empty. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Include</i> A container for what is included in this configuration. This container can only be valid if there is no <code>Exclude</code> container submitted, and it's not empty. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Include</b>: A container for what is included in this configuration. This container can only be valid if there is no <code>Exclude</code> container submitted, and it's not empty. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccountLevel</i> A container for all the account-level configurations of your S3 Storage Lens configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AccountLevel</b>: A container for all the account-level configurations of your S3 Storage Lens configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> A container for the Amazon S3 Storage Lens configuration ID.<br/>A container for the S3 Storage Lens activity metrics.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ActivityMetrics</b>: A container for the S3 Storage Lens activity metrics.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Regions</i> A container for the S3 Storage Lens Region includes.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Buckets</i> A container for the S3 Storage Lens bucket includes.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Regions</i> A container for the S3 Storage Lens Region excludes.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Buckets</i> A container for the S3 Storage Lens bucket excludes.<br/>A container for the bucket where the S3 Storage Lens metrics export will be located. <note> This bucket must be located in the same Region as the storage lens configuration.  </note>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3BucketDestination</b>: A container for the bucket where the S3 Storage Lens metrics export will be located. <note> This bucket must be located in the same Region as the storage lens configuration.  </note>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> A container for the Amazon Resource Name (ARN) of the AWS organization. This property is read-only and follows the following format: <code> arn:aws:organizations:<i>us-east-1</i>:<i>example-account-id</i>:organization/<i>o-ex2l495dck</i> </code> <br/>        """
        pass

    def get_storage_lens_configuration_tagging(self, AccountId: str, ConfigId: str) -> GetStorageLensConfigurationTaggingResult:
        r"""Gets the tags of Amazon S3 Storage Lens configuration. For more information about S3 Storage Lens, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens.html">Assessing your storage activity and usage with Amazon S3 Storage Lens </a> in the <i>Amazon S3 User Guide</i>. <note> To use this action, you must have permission to perform the <code>s3:GetStorageLensConfigurationTagging</code> action. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens_iam_permissions.html">Setting permissions to use Amazon S3 Storage Lens</a> in the <i>Amazon S3 User Guide</i>. </note>

        :param self:
        :param AccountId:  The account ID of the requester.<br/>ConfigId:  The ID of the Amazon S3 Storage Lens configuration.<br/>
        :return: Tags:  The tags of S3 Storage Lens configuration requested.<br/>        """
        pass

    def list_access_points(self, AccountId: str, Bucket: str=None, NextToken: str=None, MaxResults: int=None) -> ListAccessPointsResult:
        r"""Returns a list of the access points currently associated with the specified bucket. You can retrieve up to 1000 access points per call. If the specified bucket has more than 1,000 access points (or the number specified in <code>maxResults</code>, whichever is less), the response will include a continuation token that you can use to list the additional access points. <p/> All Amazon S3 on Outposts REST API requests for this action require an additional parameter of <code>x-amz-outpost-id</code> to be passed with the request and an S3 on Outposts endpoint hostname prefix instead of <code>s3-control</code>. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the <code>x-amz-outpost-id</code> derived using the access point ARN, see the <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPoint.html#API_control_GetAccessPoint_Examples">Examples</a> section. The following actions are related to <code>ListAccessPoints</code>: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessPoint.html">CreateAccessPoint</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPoint.html">DeleteAccessPoint</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPoint.html">GetAccessPoint</a>  </li> </ul>

        :param self:
        :param MaxResults:  The maximum number of access points that you want to include in the list. If the specified bucket has more than this number of access points, then the response will include a continuation token in the <code>NextToken</code> field that you can use to retrieve the next page of access points.<br/>NextToken:  A continuation token. If a previous call to <code>ListAccessPoints</code> returned a continuation token in the <code>NextToken</code> field, then providing that value here causes Amazon S3 to retrieve the next page of results.<br/>Bucket:  The name of the bucket whose associated access points you want to list. For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well. For using this parameter with S3 on Outposts with the AWS SDK and CLI, you must specify the ARN of the bucket accessed in the format <code>arn:aws:s3-outposts:&lt;Region&gt;:&lt;account-id&gt;:outpost/&lt;outpost-id&gt;/bucket/&lt;my-bucket-name&gt;</code>. For example, to access the bucket <code>reports</code> through outpost <code>my-outpost</code> owned by account <code>123456789012</code> in Region <code>us-west-2</code>, use the URL encoding of <code>arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports</code>. The value must be URL encoded. <br/>AccountId:  The AWS account ID for owner of the bucket whose access points you want to list.<br/>
        :return: NextToken:  If the specified bucket has more access points than can be returned in one call to this API, this field contains a continuation token that you can provide in subsequent calls to this API to retrieve additional access points.<br/>AccessPointList:  Contains identification and configuration information for one or more access points associated with the specified bucket.<br/>        """
        pass

    def list_access_points_for_object_lambda(self, AccountId: str, NextToken: str=None, MaxResults: int=None) -> ListAccessPointsForObjectLambdaResult:
        r"""Returns a list of the access points associated with the Object Lambda Access Point. You can retrieve up to 1000 access points per call. If there are more than 1,000 access points (or the number specified in <code>maxResults</code>, whichever is less), the response will include a continuation token that you can use to list the additional access points. The following actions are related to <code>ListAccessPointsForObjectLambda</code>: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessPointForObjectLambda.html">CreateAccessPointForObjectLambda</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPointForObjectLambda.html">DeleteAccessPointForObjectLambda</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPointForObjectLambda.html">GetAccessPointForObjectLambda</a>  </li> </ul>

        :param self:
        :param MaxResults:  The maximum number of access points that you want to include in the list. If there are more than this number of access points, then the response will include a continuation token in the <code>NextToken</code> field that you can use to retrieve the next page of access points.<br/>NextToken:  If the list has more access points than can be returned in one call to this API, this field contains a continuation token that you can provide in subsequent calls to this API to retrieve additional access points.<br/>AccountId:  The account ID for the account that owns the specified Object Lambda Access Point.<br/>
        :return: NextToken:  If the list has more access points than can be returned in one call to this API, this field contains a continuation token that you can provide in subsequent calls to this API to retrieve additional access points.<br/>ObjectLambdaAccessPointList:  Returns list of Object Lambda Access Points.<br/>        """
        pass

    def list_jobs(self, AccountId: str, JobStatuses: List[JobStatus]=None, NextToken: str=None, MaxResults: int=None) -> ListJobsResult:
        r"""Lists current S3 Batch Operations jobs and jobs that have ended within the last 30 days for the AWS account making the request. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-basics.html">S3 Batch Operations</a> in the <i>Amazon S3 User Guide</i>. Related actions include: <p/> <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateJob.html">CreateJob</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DescribeJob.html">DescribeJob</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UpdateJobPriority.html">UpdateJobPriority</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UpdateJobStatus.html">UpdateJobStatus</a>  </li> </ul>

        :param self:
        :param MaxResults:  The maximum number of jobs that Amazon S3 will include in the <code>List Jobs</code> response. If there are more jobs than this number, the response will include a pagination token in the <code>NextToken</code> field to enable you to retrieve the next page of results.<br/>NextToken:  A pagination token to request the next page of results. Use the token that Amazon S3 returned in the <code>NextToken</code> element of the <code>ListJobsResult</code> from the previous <code>List Jobs</code> request.<br/>JobStatuses:  The <code>List Jobs</code> request returns jobs that match the statuses listed in this element.<br/>AccountId:  The AWS account ID associated with the S3 Batch Operations job.<br/>
        :return: Jobs:  The list of current jobs and jobs that have ended within the last 30 days.<br/>NextToken:  If the <code>List Jobs</code> request produced more than the maximum number of results, you can pass this value into a subsequent <code>List Jobs</code> request in order to retrieve the next page of results.<br/>        """
        pass

    def list_regional_buckets(self, AccountId: str, NextToken: str=None, MaxResults: int=None, OutpostId: str=None) -> ListRegionalBucketsResult:
        r"""Returns a list of all Outposts buckets in an Outpost that are owned by the authenticated sender of the request. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html">Using Amazon S3 on Outposts</a> in the <i>Amazon S3 User Guide</i>. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and <code>x-amz-outpost-id</code> in your request, see the <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListRegionalBuckets.html#API_control_ListRegionalBuckets_Examples">Examples</a> section.

        :param self:
        :param OutpostId:  The ID of the AWS Outposts. <note> This is required by Amazon S3 on Outposts buckets. </note><br/>MaxResults:  <p/><br/>NextToken:  <p/><br/>AccountId:  The AWS account ID of the Outposts bucket.<br/>
        :return: NextToken:   <code>NextToken</code> is sent when <code>isTruncated</code> is true, which means there are more buckets that can be listed. The next list requests to Amazon S3 can be continued with this <code>NextToken</code>. <code>NextToken</code> is obfuscated and is not a real key.<br/>RegionalBucketList:  <p/><br/>        """
        pass

    def list_storage_lens_configurations(self, AccountId: str, NextToken: str=None) -> ListStorageLensConfigurationsResult:
        r"""Gets a list of Amazon S3 Storage Lens configurations. For more information about S3 Storage Lens, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens.html">Assessing your storage activity and usage with Amazon S3 Storage Lens </a> in the <i>Amazon S3 User Guide</i>. <note> To use this action, you must have permission to perform the <code>s3:ListStorageLensConfigurations</code> action. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens_iam_permissions.html">Setting permissions to use Amazon S3 Storage Lens</a> in the <i>Amazon S3 User Guide</i>. </note>

        :param self:
        :param NextToken:  A pagination token to request the next page of results.<br/>AccountId:  The account ID of the requester.<br/>
        :return: StorageLensConfigurationList:  A list of S3 Storage Lens configurations.<br/>NextToken:  If the request produced more than the maximum number of S3 Storage Lens configuration results, you can pass this value into a subsequent request to retrieve the next page of results.<br/>        """
        pass

    def put_access_point_configuration_for_object_lambda(self, Configuration: ObjectLambdaConfiguration, Name: str, AccountId: str):
        r"""Replaces configuration for an Object Lambda Access Point. The following actions are related to <code>PutAccessPointConfigurationForObjectLambda</code>: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPointConfigurationForObjectLambda.html">GetAccessPointConfigurationForObjectLambda</a>  </li> </ul>

        :param self:
        :param Configuration:  Object Lambda Access Point configuration document.:<br/>Name:  The name of the Object Lambda Access Point.<br/>AccountId:  The account ID for the account that owns the specified Object Lambda Access Point.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TransformationConfigurations</i> A container for transformation configurations for an Object Lambda Access Point.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowedFeatures</i> A container for allowed features. Valid inputs are <code>GetObject-Range</code> and <code>GetObject-PartNumber</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudWatchMetricsEnabled</i> A container for whether the CloudWatch metrics configuration is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SupportingAccessPoint</i> Standard access point associated with the Object Lambda Access Point.<br/>
        :return:         """
        pass

    def put_access_point_policy(self, Policy: str, Name: str, AccountId: str):
        r"""Associates an access policy with the specified access point. Each access point can have only one policy, so a request made to this API replaces any existing policy associated with the specified access point. <p/> All Amazon S3 on Outposts REST API requests for this action require an additional parameter of <code>x-amz-outpost-id</code> to be passed with the request and an S3 on Outposts endpoint hostname prefix instead of <code>s3-control</code>. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the <code>x-amz-outpost-id</code> derived using the access point ARN, see the <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutAccessPointPolicy.html#API_control_PutAccessPointPolicy_Examples">Examples</a> section. The following actions are related to <code>PutAccessPointPolicy</code>: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPointPolicy.html">GetAccessPointPolicy</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPointPolicy.html">DeleteAccessPointPolicy</a>  </li> </ul>

        :param self:
        :param Policy:  The policy that you want to apply to the specified access point. For more information about access point policies, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points.html">Managing data access with Amazon S3 access points</a> in the <i>Amazon S3 User Guide</i>.<br/>Name:  The name of the access point that you want to associate with the specified policy. For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well. For using this parameter with S3 on Outposts with the AWS SDK and CLI, you must specify the ARN of the access point accessed in the format <code>arn:aws:s3-outposts:&lt;Region&gt;:&lt;account-id&gt;:outpost/&lt;outpost-id&gt;/accesspoint/&lt;my-accesspoint-name&gt;</code>. For example, to access the access point <code>reports-ap</code> through outpost <code>my-outpost</code> owned by account <code>123456789012</code> in Region <code>us-west-2</code>, use the URL encoding of <code>arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/accesspoint/reports-ap</code>. The value must be URL encoded. <br/>AccountId:  The AWS account ID for owner of the bucket associated with the specified access point.<br/>
        :return:         """
        pass

    def put_access_point_policy_for_object_lambda(self, Policy: str, Name: str, AccountId: str):
        r"""Creates or replaces resource policy for an Object Lambda Access Point. For an example policy, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/olap-create.html#olap-create-cli">Creating Object Lambda Access Points</a> in the <i>Amazon S3 User Guide</i>. The following actions are related to <code>PutAccessPointPolicyForObjectLambda</code>: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPointPolicyForObjectLambda.html">DeleteAccessPointPolicyForObjectLambda</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPointPolicyForObjectLambda.html">GetAccessPointPolicyForObjectLambda</a>  </li> </ul>

        :param self:
        :param Policy:  Object Lambda Access Point resource policy document.<br/>Name:  The name of the Object Lambda Access Point.<br/>AccountId:  The account ID for the account that owns the specified Object Lambda Access Point.<br/>
        :return:         """
        pass

    def put_bucket_lifecycle_configuration(self, Bucket: str, AccountId: str, LifecycleConfiguration: LifecycleConfiguration=None):
        r"""<note> This action puts a lifecycle configuration to an Amazon S3 on Outposts bucket. To put a lifecycle configuration to an S3 bucket, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html">PutBucketLifecycleConfiguration</a> in the <i>Amazon S3 API Reference</i>.  </note> Creates a new lifecycle configuration for the S3 on Outposts bucket or replaces an existing lifecycle configuration. Outposts buckets only support lifecycle configurations that delete/expire objects after a certain period of time and abort incomplete multipart uploads. <p/> All Amazon S3 on Outposts REST API requests for this action require an additional parameter of <code>x-amz-outpost-id</code> to be passed with the request and an S3 on Outposts endpoint hostname prefix instead of <code>s3-control</code>. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the <code>x-amz-outpost-id</code> derived using the access point ARN, see the <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketLifecycleConfiguration.html#API_control_PutBucketLifecycleConfiguration_Examples">Examples</a> section. The following actions are related to <code>PutBucketLifecycleConfiguration</code>: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketLifecycleConfiguration.html">GetBucketLifecycleConfiguration</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketLifecycleConfiguration.html">DeleteBucketLifecycleConfiguration</a>  </li> </ul>

        :param self:
        :param LifecycleConfiguration:  Container for lifecycle rules. You can add as many as 1,000 rules.:<br/>Bucket:  The name of the bucket for which to set the configuration.<br/>AccountId:  The AWS account ID of the Outposts bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Rules</i> A lifecycle rule for individual objects in an Outposts bucket. <br/>
        :return:         """
        pass

    def put_bucket_policy(self, Policy: str, Bucket: str, AccountId: str, ConfirmRemoveSelfBucketAccess: ConfirmRemoveSelfBucketAccess=None):
        r"""<note> This action puts a bucket policy to an Amazon S3 on Outposts bucket. To put a policy on an S3 bucket, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketPolicy.html">PutBucketPolicy</a> in the <i>Amazon S3 API Reference</i>.  </note> Applies an Amazon S3 bucket policy to an Outposts bucket. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html">Using Amazon S3 on Outposts</a> in the <i>Amazon S3 User Guide</i>. If you are using an identity other than the root user of the AWS account that owns the Outposts bucket, the calling identity must have the <code>PutBucketPolicy</code> permissions on the specified Outposts bucket and belong to the bucket owner's account in order to use this action. If you don't have <code>PutBucketPolicy</code> permissions, Amazon S3 returns a <code>403 Access Denied</code> error. If you have the correct permissions, but you're not using an identity that belongs to the bucket owner's account, Amazon S3 returns a <code>405 Method Not Allowed</code> error. <important>  As a security precaution, the root user of the AWS account that owns a bucket can always use this action, even if the policy explicitly denies the root user the ability to perform this action.  </important> For more information about bucket policies, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html">Using Bucket Policies and User Policies</a>. All Amazon S3 on Outposts REST API requests for this action require an additional parameter of <code>x-amz-outpost-id</code> to be passed with the request and an S3 on Outposts endpoint hostname prefix instead of <code>s3-control</code>. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the <code>x-amz-outpost-id</code> derived using the access point ARN, see the <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketPolicy.html#API_control_PutBucketPolicy_Examples">Examples</a> section. The following actions are related to <code>PutBucketPolicy</code>: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketPolicy.html">GetBucketPolicy</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketPolicy.html">DeleteBucketPolicy</a>  </li> </ul>

        :param self:
        :param Policy:  The bucket policy as a JSON document.<br/>ConfirmRemoveSelfBucketAccess:  Set this parameter to true to confirm that you want to remove your permissions to change this bucket policy in the future. <note> This is not supported by Amazon S3 on Outposts buckets. </note><br/>Bucket:  Specifies the bucket. For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well. For using this parameter with S3 on Outposts with the AWS SDK and CLI, you must specify the ARN of the bucket accessed in the format <code>arn:aws:s3-outposts:&lt;Region&gt;:&lt;account-id&gt;:outpost/&lt;outpost-id&gt;/bucket/&lt;my-bucket-name&gt;</code>. For example, to access the bucket <code>reports</code> through outpost <code>my-outpost</code> owned by account <code>123456789012</code> in Region <code>us-west-2</code>, use the URL encoding of <code>arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports</code>. The value must be URL encoded. <br/>AccountId:  The AWS account ID of the Outposts bucket.<br/>
        :return:         """
        pass

    def put_bucket_tagging(self, Tagging: Tagging, Bucket: str, AccountId: str):
        r"""<note> This action puts tags on an Amazon S3 on Outposts bucket. To put tags on an S3 bucket, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketTagging.html">PutBucketTagging</a> in the <i>Amazon S3 API Reference</i>.  </note> Sets the tags for an S3 on Outposts bucket. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html">Using Amazon S3 on Outposts</a> in the <i>Amazon S3 User Guide</i>. Use tags to organize your AWS bill to reflect your own cost structure. To do this, sign up to get your AWS account bill with tag key values included. Then, to see the cost of combined resources, organize your billing information according to resources with the same tag key values. For example, you can tag several resources with a specific application name, and then organize your billing information to see the total cost of that application across several services. For more information, see <a href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html">Cost allocation and tagging</a>. <note> Within a bucket, if you add a tag that has the same key as an existing tag, the new value overwrites the old value. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/CostAllocTagging.html"> Using cost allocation in Amazon S3 bucket tags</a>. </note> To use this action, you must have permissions to perform the <code>s3-outposts:PutBucketTagging</code> action. The Outposts bucket owner has this permission by default and can grant this permission to others. For more information about permissions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources"> Permissions Related to Bucket Subresource Operations</a> and <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing access permissions to your Amazon S3 resources</a>.  <code>PutBucketTagging</code> has the following special errors: <ul> <li> Error code: <code>InvalidTagError</code>  <ul> <li> Description: The tag provided was not a valid tag. This error can occur if the tag did not pass input validation. For information about tag restrictions, see <a href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/allocation-tag-restrictions.html"> User-Defined Tag Restrictions</a> and <a href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/aws-tag-restrictions.html"> AWS-Generated Cost Allocation Tag Restrictions</a>. </li> </ul> </li> <li> Error code: <code>MalformedXMLError</code>  <ul> <li> Description: The XML provided does not match the schema. </li> </ul> </li> <li> Error code: <code>OperationAbortedError </code>  <ul> <li> Description: A conflicting conditional action is currently in progress against this resource. Try again. </li> </ul> </li> <li> Error code: <code>InternalError</code>  <ul> <li> Description: The service was unable to apply the provided tag to the bucket. </li> </ul> </li> </ul> All Amazon S3 on Outposts REST API requests for this action require an additional parameter of <code>x-amz-outpost-id</code> to be passed with the request and an S3 on Outposts endpoint hostname prefix instead of <code>s3-control</code>. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the <code>x-amz-outpost-id</code> derived using the access point ARN, see the <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketTagging.html#API_control_PutBucketTagging_Examples">Examples</a> section. The following actions are related to <code>PutBucketTagging</code>: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketTagging.html">GetBucketTagging</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketTagging.html">DeleteBucketTagging</a>  </li> </ul>

        :param self:
        :param Tagging:  <p/>:<br/>Bucket:  The Amazon Resource Name (ARN) of the bucket. For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well. For using this parameter with S3 on Outposts with the AWS SDK and CLI, you must specify the ARN of the bucket accessed in the format <code>arn:aws:s3-outposts:&lt;Region&gt;:&lt;account-id&gt;:outpost/&lt;outpost-id&gt;/bucket/&lt;my-bucket-name&gt;</code>. For example, to access the bucket <code>reports</code> through outpost <code>my-outpost</code> owned by account <code>123456789012</code> in Region <code>us-west-2</code>, use the URL encoding of <code>arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports</code>. The value must be URL encoded. <br/>AccountId:  The AWS account ID of the Outposts bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TagSet</i> A collection for a set of tags.<br/>
        :return:         """
        pass

    def put_job_tagging(self, Tags: List[S3Tag], JobId: str, AccountId: str) -> PutJobTaggingResult:
        r"""Sets the supplied tag-set on an S3 Batch Operations job. A tag is a key-value pair. You can associate S3 Batch Operations tags with any job by sending a PUT request against the tagging subresource that is associated with the job. To modify the existing tag set, you can either replace the existing tag set entirely, or make changes within the existing tag set by retrieving the existing tag set using <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetJobTagging.html">GetJobTagging</a>, modify that tag set, and use this action to replace the tag set with the one you modified. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-managing-jobs.html#batch-ops-job-tags">Controlling access and labeling jobs using tags</a> in the <i>Amazon S3 User Guide</i>.  <p/> <note> <ul> <li> If you send this request with an empty tag set, Amazon S3 deletes the existing tag set on the Batch Operations job. If you use this method, you are charged for a Tier 1 Request (PUT). For more information, see <a href="http://aws.amazon.com/s3/pricing/">Amazon S3 pricing</a>. </li> <li> For deleting existing tags for your Batch Operations job, a <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteJobTagging.html">DeleteJobTagging</a> request is preferred because it achieves the same result without incurring charges. </li> <li> A few things to consider about using tags: <ul> <li> Amazon S3 limits the maximum number of tags to 50 tags per job. </li> <li> You can associate up to 50 tags with a job as long as they have unique tag keys. </li> <li> A tag key can be up to 128 Unicode characters in length, and tag values can be up to 256 Unicode characters in length. </li> <li> The key and values are case sensitive. </li> <li> For tagging-related restrictions related to characters and encodings, see <a href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/allocation-tag-restrictions.html">User-Defined Tag Restrictions</a> in the <i>AWS Billing and Cost Management User Guide</i>. </li> </ul> </li> </ul> </note> <p/> To use this action, you must have permission to perform the <code>s3:PutJobTagging</code> action. Related actions include: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateJob.html">CreatJob</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetJobTagging.html">GetJobTagging</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteJobTagging.html">DeleteJobTagging</a>  </li> </ul>

        :param self:
        :param Tags:  The set of tags to associate with the S3 Batch Operations job.<br/>JobId:  The ID for the S3 Batch Operations job whose tags you want to replace.<br/>AccountId:  The AWS account ID associated with the S3 Batch Operations job.<br/>
        :return:         """
        pass

    def put_public_access_block(self, AccountId: str, PublicAccessBlockConfiguration: PublicAccessBlockConfiguration):
        r"""Creates or modifies the <code>PublicAccessBlock</code> configuration for an AWS account. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html"> Using Amazon S3 block public access</a>. Related actions include: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetPublicAccessBlock.html">GetPublicAccessBlock</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeletePublicAccessBlock.html">DeletePublicAccessBlock</a>  </li> </ul>

        :param self:
        :param AccountId:  The account ID for the AWS account whose <code>PublicAccessBlock</code> configuration you want to set.<br/>PublicAccessBlockConfiguration:  The <code>PublicAccessBlock</code> configuration that you want to apply to the specified AWS account.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RestrictPublicBuckets</i> Specifies whether Amazon S3 should restrict public bucket policies for buckets in this account. Setting this element to <code>TRUE</code> restricts access to buckets with public policies to only AWS service principals and authorized users within this account. Enabling this setting doesn't affect previously stored bucket policies, except that public and cross-account access within any public bucket policy, including non-public delegation to specific accounts, is blocked. This is not supported for Amazon S3 on Outposts.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BlockPublicPolicy</i> Specifies whether Amazon S3 should block public bucket policies for buckets in this account. Setting this element to <code>TRUE</code> causes Amazon S3 to reject calls to PUT Bucket policy if the specified bucket policy allows public access.  Enabling this setting doesn't affect existing bucket policies. This is not supported for Amazon S3 on Outposts.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IgnorePublicAcls</i> Specifies whether Amazon S3 should ignore public ACLs for buckets in this account. Setting this element to <code>TRUE</code> causes Amazon S3 to ignore all public ACLs on buckets in this account and any objects that they contain.  Enabling this setting doesn't affect the persistence of any existing ACLs and doesn't prevent new public ACLs from being set. This is not supported for Amazon S3 on Outposts.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BlockPublicAcls</i> Specifies whether Amazon S3 should block public access control lists (ACLs) for buckets in this account. Setting this element to <code>TRUE</code> causes the following behavior: <ul> <li> PUT Bucket acl and PUT Object acl calls fail if the specified ACL is public. </li> <li> PUT Object calls fail if the request includes a public ACL. </li> <li> PUT Bucket calls fail if the request includes a public ACL. </li> </ul> Enabling this setting doesn't affect existing policies or ACLs. This is not supported for Amazon S3 on Outposts.<br/>
        :return:         """
        pass

    def put_storage_lens_configuration(self, StorageLensConfiguration: StorageLensConfiguration, AccountId: str, ConfigId: str, Tags: List[StorageLensTag]=None):
        r"""Puts an Amazon S3 Storage Lens configuration. For more information about S3 Storage Lens, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens.html">Working with Amazon S3 Storage Lens</a> in the <i>Amazon S3 User Guide</i>. <note> To use this action, you must have permission to perform the <code>s3:PutStorageLensConfiguration</code> action. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens_iam_permissions.html">Setting permissions to use Amazon S3 Storage Lens</a> in the <i>Amazon S3 User Guide</i>. </note>

        :param self:
        :param Tags:  The tag set of the S3 Storage Lens configuration. <note> You can set up to a maximum of 50 tags. </note><br/>StorageLensConfiguration:  The S3 Storage Lens configuration.:<br/>AccountId:  The account ID of the requester.<br/>ConfigId:  The ID of the S3 Storage Lens configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageLensArn</i> The Amazon Resource Name (ARN) of the S3 Storage Lens configuration. This property is read-only and follows the following format: <code> arn:aws:s3:<i>us-east-1</i>:<i>example-account-id</i>:storage-lens/<i>your-dashboard-name</i> </code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AwsOrg</i> A container for the AWS organization for this S3 Storage Lens configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AwsOrg</b>: A container for the AWS organization for this S3 Storage Lens configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsEnabled</i> A container for whether the S3 Storage Lens configuration is enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataExport</i> A container to specify the properties of your S3 Storage Lens metrics export including, the destination, schema and format.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DataExport</b>: A container to specify the properties of your S3 Storage Lens metrics export including, the destination, schema and format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Exclude</i> A container for what is excluded in this configuration. This container can only be valid if there is no <code>Include</code> container submitted, and it's not empty. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Exclude</b>: A container for what is excluded in this configuration. This container can only be valid if there is no <code>Include</code> container submitted, and it's not empty. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Include</i> A container for what is included in this configuration. This container can only be valid if there is no <code>Exclude</code> container submitted, and it's not empty. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Include</b>: A container for what is included in this configuration. This container can only be valid if there is no <code>Exclude</code> container submitted, and it's not empty. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccountLevel</i> A container for all the account-level configurations of your S3 Storage Lens configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AccountLevel</b>: A container for all the account-level configurations of your S3 Storage Lens configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> A container for the Amazon S3 Storage Lens configuration ID.<br/>A container for the S3 Storage Lens activity metrics.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ActivityMetrics</b>: A container for the S3 Storage Lens activity metrics.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Regions</i> A container for the S3 Storage Lens Region includes.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Buckets</i> A container for the S3 Storage Lens bucket includes.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Regions</i> A container for the S3 Storage Lens Region excludes.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Buckets</i> A container for the S3 Storage Lens bucket excludes.<br/>A container for the bucket where the S3 Storage Lens metrics export will be located. <note> This bucket must be located in the same Region as the storage lens configuration.  </note>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3BucketDestination</b>: A container for the bucket where the S3 Storage Lens metrics export will be located. <note> This bucket must be located in the same Region as the storage lens configuration.  </note>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> A container for the Amazon Resource Name (ARN) of the AWS organization. This property is read-only and follows the following format: <code> arn:aws:organizations:<i>us-east-1</i>:<i>example-account-id</i>:organization/<i>o-ex2l495dck</i> </code> <br/>
        :return:         """
        pass

    def put_storage_lens_configuration_tagging(self, Tags: List[StorageLensTag], AccountId: str, ConfigId: str) -> PutStorageLensConfigurationTaggingResult:
        r"""Put or replace tags on an existing Amazon S3 Storage Lens configuration. For more information about S3 Storage Lens, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens.html">Assessing your storage activity and usage with Amazon S3 Storage Lens </a> in the <i>Amazon S3 User Guide</i>. <note> To use this action, you must have permission to perform the <code>s3:PutStorageLensConfigurationTagging</code> action. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens_iam_permissions.html">Setting permissions to use Amazon S3 Storage Lens</a> in the <i>Amazon S3 User Guide</i>. </note>

        :param self:
        :param Tags:  The tag set of the S3 Storage Lens configuration. <note> You can set up to a maximum of 50 tags. </note><br/>AccountId:  The account ID of the requester.<br/>ConfigId:  The ID of the S3 Storage Lens configuration.<br/>
        :return:         """
        pass

    def update_job_priority(self, Priority: int, JobId: str, AccountId: str) -> UpdateJobPriorityResult:
        r"""Updates an existing S3 Batch Operations job's priority. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-basics.html">S3 Batch Operations</a> in the <i>Amazon S3 User Guide</i>. <p/> Related actions include: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateJob.html">CreateJob</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListJobs.html">ListJobs</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DescribeJob.html">DescribeJob</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UpdateJobStatus.html">UpdateJobStatus</a>  </li> </ul>

        :param self:
        :param Priority:  The priority you want to assign to this job.<br/>JobId:  The ID for the job whose priority you want to update.<br/>AccountId:  The AWS account ID associated with the S3 Batch Operations job.<br/>
        :return: Priority:  The new priority assigned to the specified job.<br/>JobId:  The ID for the job whose priority Amazon S3 updated.<br/>        """
        pass

    def update_job_status(self, RequestedJobStatus: str, JobId: str, AccountId: str, StatusUpdateReason: str=None) -> UpdateJobStatusResult:
        r"""Updates the status for the specified job. Use this action to confirm that you want to run a job or to cancel an existing job. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-basics.html">S3 Batch Operations</a> in the <i>Amazon S3 User Guide</i>. <p/> Related actions include: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateJob.html">CreateJob</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListJobs.html">ListJobs</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DescribeJob.html">DescribeJob</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UpdateJobStatus.html">UpdateJobStatus</a>  </li> </ul>

        :param self:
        :param StatusUpdateReason:  A description of the reason why you want to change the specified job's status. This field can be any string up to the maximum length.<br/>RequestedJobStatus:  The status that you want to move the specified job to.<br/>JobId:  The ID of the job whose status you want to update.<br/>AccountId:  The AWS account ID associated with the S3 Batch Operations job.<br/>
        :return: StatusUpdateReason:  The reason that the specified job's status was updated.<br/>Status:  The current status for the specified job.<br/>JobId:  The ID for the job whose status was updated.<br/>        """
        pass





class S3Outposts(BaseClient):
    r"""Amazon S3 on Outposts provides access to S3 on Outposts operations."""


    class ListEndpointsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_endpoints` for valid parameters"""
            pass


    class CreateEndpointRequest(Mapping):
        pass
    
    class CreateEndpointResult(Mapping):
        pass
    
    class DeleteEndpointRequest(Mapping):
        pass
    
    class ListEndpointsRequest(Mapping):
        pass
    
    class ListEndpointsResult(Mapping):
        pass
    
    def create_endpoint(self, SecurityGroupId: str, SubnetId: str, OutpostId: str) -> CreateEndpointResult:
        r"""S3 on Outposts access points simplify managing data access at scale for shared datasets in Amazon S3 on Outposts. S3 on Outposts uses endpoints to connect to Outposts buckets so that you can perform actions within your virtual private cloud (VPC).  This action creates an endpoint and associates it with the specified Outpost.  <p/> Related actions include: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3outposts_DeleteEndpoint.html">DeleteEndpoint</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3outposts_ListEndpoints.html">ListEndpoints</a>  </li> </ul>

        :param self:
        :param SecurityGroupId:  The ID of the security group to use with the endpoint.<br/>SubnetId:  The ID of the subnet in the selected VPC.<br/>OutpostId:  The ID of the AWS Outpost. <br/>
        :return: EndpointArn:  The Amazon Resource Name (ARN) of the endpoint.<br/>        """
        pass

    def delete_endpoint(self, OutpostId: str, EndpointId: str):
        r"""S3 on Outposts access points simplify managing data access at scale for shared datasets in Amazon S3 on Outposts. S3 on Outposts uses endpoints to connect to Outposts buckets so that you can perform actions within your virtual private cloud (VPC).  This action deletes an endpoint.  <p/> Related actions include: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3outposts_CreateEndpoint.html">CreateEndpoint</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3outposts_ListEndpoints.html">ListEndpoints</a>  </li> </ul>

        :param self:
        :param OutpostId:  The ID of the AWS Outpost. <br/>EndpointId:  The ID of the end point.<br/>
        :return:         """
        pass

    def list_endpoints(self, NextToken: str=None, MaxResults: int=None) -> ListEndpointsResult:
        r"""S3 on Outposts access points simplify managing data access at scale for shared datasets in Amazon S3 on Outposts. S3 on Outposts uses endpoints to connect to Outposts buckets so that you can perform actions within your virtual private cloud (VPC).  This action lists endpoints associated with the Outpost.  <p/> Related actions include: <ul> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3outposts_CreateEndpoint.html">CreateEndpoint</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3outposts_DeleteEndpoint.html">DeleteEndpoint</a>  </li> </ul>

        :param self:
        :param MaxResults:  The max number of endpoints that can be returned on the request.<br/>NextToken:  The next endpoint requested in the list.<br/>
        :return: NextToken:  The next endpoint returned in the list.<br/>Endpoints:  Returns an array of endpoints associated with AWS Outpost.<br/>        """
        pass





class SageMaker(BaseClient):
    r"""Provides APIs for creating and managing Amazon SageMaker resources.  Other Resources: <ul> <li>  <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/whatis.html#first-time-user">Amazon SageMaker Developer Guide</a>  </li> <li>  <a href="https://docs.aws.amazon.com/augmented-ai/2019-11-07/APIReference/Welcome.html">Amazon Augmented AI Runtime API Reference</a>  </li> </ul>"""

    class EndpointDeletedWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_endpoint` for valid parameters"""
            pass
    class EndpointInServiceWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_endpoint` for valid parameters"""
            pass
    class NotebookInstanceDeletedWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_notebook_instance` for valid parameters"""
            pass
    class NotebookInstanceInServiceWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_notebook_instance` for valid parameters"""
            pass
    class NotebookInstanceStoppedWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_notebook_instance` for valid parameters"""
            pass
    class ProcessingJobCompletedOrStoppedWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_processing_job` for valid parameters"""
            pass
    class TrainingJobCompletedOrStoppedWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_training_job` for valid parameters"""
            pass
    class TransformJobCompletedOrStoppedWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_transform_job` for valid parameters"""
            pass


    class ListTrainingJobsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_training_jobs` for valid parameters"""
            pass
    class ListEndpointsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_endpoints` for valid parameters"""
            pass
    class ListEndpointConfigsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_endpoint_configs` for valid parameters"""
            pass
    class ListNotebookInstancesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_notebook_instances` for valid parameters"""
            pass
    class ListTagsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_tags` for valid parameters"""
            pass
    class ListModelsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_models` for valid parameters"""
            pass
    class ListAlgorithmsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_algorithms` for valid parameters"""
            pass
    class ListCodeRepositoriesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_code_repositories` for valid parameters"""
            pass
    class ListCompilationJobsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_compilation_jobs` for valid parameters"""
            pass
    class ListHyperParameterTuningJobsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_hyper_parameter_tuning_jobs` for valid parameters"""
            pass
    class ListLabelingJobsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_labeling_jobs` for valid parameters"""
            pass
    class ListLabelingJobsForWorkteamPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_labeling_jobs_for_workteam` for valid parameters"""
            pass
    class ListModelPackagesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_model_packages` for valid parameters"""
            pass
    class ListNotebookInstanceLifecycleConfigsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_notebook_instance_lifecycle_configs` for valid parameters"""
            pass
    class ListSubscribedWorkteamsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_subscribed_workteams` for valid parameters"""
            pass
    class ListTrainingJobsForHyperParameterTuningJobPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_training_jobs_for_hyper_parameter_tuning_job` for valid parameters"""
            pass
    class ListTransformJobsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_transform_jobs` for valid parameters"""
            pass
    class ListWorkteamsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_workteams` for valid parameters"""
            pass
    class SearchPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `search` for valid parameters"""
            pass
    class ListAppsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_apps` for valid parameters"""
            pass
    class ListAutoMLJobsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_auto_ml_jobs` for valid parameters"""
            pass
    class ListCandidatesForAutoMLJobPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_candidates_for_auto_ml_job` for valid parameters"""
            pass
    class ListDomainsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_domains` for valid parameters"""
            pass
    class ListExperimentsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_experiments` for valid parameters"""
            pass
    class ListFlowDefinitionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_flow_definitions` for valid parameters"""
            pass
    class ListHumanTaskUisPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_human_task_uis` for valid parameters"""
            pass
    class ListMonitoringExecutionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_monitoring_executions` for valid parameters"""
            pass
    class ListMonitoringSchedulesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_monitoring_schedules` for valid parameters"""
            pass
    class ListProcessingJobsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_processing_jobs` for valid parameters"""
            pass
    class ListTrialComponentsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_trial_components` for valid parameters"""
            pass
    class ListTrialsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_trials` for valid parameters"""
            pass
    class ListUserProfilesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_user_profiles` for valid parameters"""
            pass
    class ListWorkforcesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_workforces` for valid parameters"""
            pass
    class ListImageVersionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_image_versions` for valid parameters"""
            pass
    class ListImagesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_images` for valid parameters"""
            pass
    class ListActionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_actions` for valid parameters"""
            pass
    class ListAppImageConfigsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_app_image_configs` for valid parameters"""
            pass
    class ListArtifactsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_artifacts` for valid parameters"""
            pass
    class ListAssociationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_associations` for valid parameters"""
            pass
    class ListContextsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_contexts` for valid parameters"""
            pass
    class ListFeatureGroupsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_feature_groups` for valid parameters"""
            pass
    class ListModelPackageGroupsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_model_package_groups` for valid parameters"""
            pass
    class ListPipelineExecutionStepsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_pipeline_execution_steps` for valid parameters"""
            pass
    class ListPipelineExecutionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_pipeline_executions` for valid parameters"""
            pass
    class ListPipelineParametersForExecutionPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_pipeline_parameters_for_execution` for valid parameters"""
            pass
    class ListPipelinesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_pipelines` for valid parameters"""
            pass
    class ListDataQualityJobDefinitionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_data_quality_job_definitions` for valid parameters"""
            pass
    class ListDeviceFleetsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_device_fleets` for valid parameters"""
            pass
    class ListDevicesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_devices` for valid parameters"""
            pass
    class ListEdgePackagingJobsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_edge_packaging_jobs` for valid parameters"""
            pass
    class ListModelBiasJobDefinitionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_model_bias_job_definitions` for valid parameters"""
            pass
    class ListModelExplainabilityJobDefinitionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_model_explainability_job_definitions` for valid parameters"""
            pass
    class ListModelQualityJobDefinitionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_model_quality_job_definitions` for valid parameters"""
            pass


    class AddAssociationRequest(Mapping):
        pass
    
    class AddAssociationResponse(Mapping):
        pass
    
    class AddTagsInput(Mapping):
        pass
    
    class AddTagsOutput(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class AssociateTrialComponentRequest(Mapping):
        pass
    
    class AssociateTrialComponentResponse(Mapping):
        pass
    
    class CreateActionRequest(Mapping):
        pass
    
    class CreateActionResponse(Mapping):
        pass
    
    class ActionSource(Mapping):
        pass
    
    class LineageEntityParameters(object):
        pass
    
    class MetadataProperties(Mapping):
        pass
    
    class CreateAlgorithmInput(Mapping):
        pass
    
    class CreateAlgorithmOutput(Mapping):
        pass
    
    class TrainingSpecification(Mapping):
        pass
    
    class InferenceSpecification(Mapping):
        pass
    
    class AlgorithmValidationSpecification(Mapping):
        pass
    
    class CertifyForMarketplace(object):
        pass
    
    class CreateAppRequest(Mapping):
        pass
    
    class CreateAppResponse(Mapping):
        pass
    
    class ResourceSpec(Mapping):
        pass
    
    class CreateAppImageConfigRequest(Mapping):
        pass
    
    class CreateAppImageConfigResponse(Mapping):
        pass
    
    class KernelGatewayImageConfig(Mapping):
        pass
    
    class CreateArtifactRequest(Mapping):
        pass
    
    class CreateArtifactResponse(Mapping):
        pass
    
    class ArtifactSource(Mapping):
        pass
    
    class CreateAutoMLJobRequest(Mapping):
        pass
    
    class CreateAutoMLJobResponse(Mapping):
        pass
    
    class AutoMLChannel(Mapping):
        pass
    
    class AutoMLOutputDataConfig(Mapping):
        pass
    
    class AutoMLJobObjective(Mapping):
        pass
    
    class AutoMLJobConfig(Mapping):
        pass
    
    class GenerateCandidateDefinitionsOnly(object):
        pass
    
    class ModelDeployConfig(Mapping):
        pass
    
    class CreateCodeRepositoryInput(Mapping):
        pass
    
    class CreateCodeRepositoryOutput(Mapping):
        pass
    
    class GitConfig(Mapping):
        pass
    
    class CreateCompilationJobRequest(Mapping):
        pass
    
    class CreateCompilationJobResponse(Mapping):
        pass
    
    class InputConfig(Mapping):
        pass
    
    class OutputConfig(Mapping):
        pass
    
    class NeoVpcConfig(Mapping):
        pass
    
    class StoppingCondition(Mapping):
        pass
    
    class CreateContextRequest(Mapping):
        pass
    
    class CreateContextResponse(Mapping):
        pass
    
    class ContextSource(Mapping):
        pass
    
    class CreateDataQualityJobDefinitionRequest(Mapping):
        pass
    
    class CreateDataQualityJobDefinitionResponse(Mapping):
        pass
    
    class DataQualityBaselineConfig(Mapping):
        pass
    
    class DataQualityAppSpecification(Mapping):
        pass
    
    class DataQualityJobInput(Mapping):
        pass
    
    class MonitoringOutputConfig(Mapping):
        pass
    
    class MonitoringResources(Mapping):
        pass
    
    class MonitoringNetworkConfig(Mapping):
        pass
    
    class MonitoringStoppingCondition(Mapping):
        pass
    
    class CreateDeviceFleetRequest(Mapping):
        pass
    
    class EdgeOutputConfig(Mapping):
        pass
    
    class EnableIotRoleAlias(object):
        pass
    
    class CreateDomainRequest(Mapping):
        pass
    
    class CreateDomainResponse(Mapping):
        pass
    
    class UserSettings(Mapping):
        pass
    
    class SubnetId(object):
        pass
    
    class CreateEdgePackagingJobRequest(Mapping):
        pass
    
    class CreateEndpointInput(Mapping):
        pass
    
    class CreateEndpointOutput(Mapping):
        pass
    
    class CreateEndpointConfigInput(Mapping):
        pass
    
    class CreateEndpointConfigOutput(Mapping):
        pass
    
    class ProductionVariant(Mapping):
        pass
    
    class DataCaptureConfig(Mapping):
        pass
    
    class CreateExperimentRequest(Mapping):
        pass
    
    class CreateExperimentResponse(Mapping):
        pass
    
    class CreateFeatureGroupRequest(Mapping):
        pass
    
    class CreateFeatureGroupResponse(Mapping):
        pass
    
    class FeatureDefinition(Mapping):
        pass
    
    class OnlineStoreConfig(Mapping):
        pass
    
    class OfflineStoreConfig(Mapping):
        pass
    
    class CreateFlowDefinitionRequest(Mapping):
        pass
    
    class CreateFlowDefinitionResponse(Mapping):
        pass
    
    class HumanLoopRequestSource(Mapping):
        pass
    
    class HumanLoopActivationConfig(Mapping):
        pass
    
    class HumanLoopConfig(Mapping):
        pass
    
    class FlowDefinitionOutputConfig(Mapping):
        pass
    
    class CreateHumanTaskUiRequest(Mapping):
        pass
    
    class CreateHumanTaskUiResponse(Mapping):
        pass
    
    class UiTemplate(Mapping):
        pass
    
    class CreateHyperParameterTuningJobRequest(Mapping):
        pass
    
    class CreateHyperParameterTuningJobResponse(Mapping):
        pass
    
    class HyperParameterTuningJobConfig(Mapping):
        pass
    
    class HyperParameterTrainingJobDefinition(Mapping):
        pass
    
    class HyperParameterTuningJobWarmStartConfig(Mapping):
        pass
    
    class CreateImageRequest(Mapping):
        pass
    
    class CreateImageResponse(Mapping):
        pass
    
    class CreateImageVersionRequest(Mapping):
        pass
    
    class CreateImageVersionResponse(Mapping):
        pass
    
    class CreateLabelingJobRequest(Mapping):
        pass
    
    class CreateLabelingJobResponse(Mapping):
        pass
    
    class LabelingJobInputConfig(Mapping):
        pass
    
    class LabelingJobOutputConfig(Mapping):
        pass
    
    class LabelingJobStoppingConditions(Mapping):
        pass
    
    class LabelingJobAlgorithmsConfig(Mapping):
        pass
    
    class HumanTaskConfig(Mapping):
        pass
    
    class CreateModelInput(Mapping):
        pass
    
    class CreateModelOutput(Mapping):
        pass
    
    class ContainerDefinition(Mapping):
        pass
    
    class InferenceExecutionConfig(Mapping):
        pass
    
    class VpcConfig(Mapping):
        pass
    
    class Boolean(object):
        pass
    
    class CreateModelBiasJobDefinitionRequest(Mapping):
        pass
    
    class CreateModelBiasJobDefinitionResponse(Mapping):
        pass
    
    class ModelBiasBaselineConfig(Mapping):
        pass
    
    class ModelBiasAppSpecification(Mapping):
        pass
    
    class ModelBiasJobInput(Mapping):
        pass
    
    class CreateModelExplainabilityJobDefinitionRequest(Mapping):
        pass
    
    class CreateModelExplainabilityJobDefinitionResponse(Mapping):
        pass
    
    class ModelExplainabilityBaselineConfig(Mapping):
        pass
    
    class ModelExplainabilityAppSpecification(Mapping):
        pass
    
    class ModelExplainabilityJobInput(Mapping):
        pass
    
    class CreateModelPackageInput(Mapping):
        pass
    
    class CreateModelPackageOutput(Mapping):
        pass
    
    class ModelPackageValidationSpecification(Mapping):
        pass
    
    class SourceAlgorithmSpecification(Mapping):
        pass
    
    class ModelMetrics(Mapping):
        pass
    
    class CreateModelPackageGroupInput(Mapping):
        pass
    
    class CreateModelPackageGroupOutput(Mapping):
        pass
    
    class CreateModelQualityJobDefinitionRequest(Mapping):
        pass
    
    class CreateModelQualityJobDefinitionResponse(Mapping):
        pass
    
    class ModelQualityBaselineConfig(Mapping):
        pass
    
    class ModelQualityAppSpecification(Mapping):
        pass
    
    class ModelQualityJobInput(Mapping):
        pass
    
    class CreateMonitoringScheduleRequest(Mapping):
        pass
    
    class CreateMonitoringScheduleResponse(Mapping):
        pass
    
    class MonitoringScheduleConfig(Mapping):
        pass
    
    class CreateNotebookInstanceInput(Mapping):
        pass
    
    class CreateNotebookInstanceOutput(Mapping):
        pass
    
    class SecurityGroupId(object):
        pass
    
    class NotebookInstanceAcceleratorType(object):
        pass
    
    class CodeRepositoryNameOrUrl(object):
        pass
    
    class CreateNotebookInstanceLifecycleConfigInput(Mapping):
        pass
    
    class CreateNotebookInstanceLifecycleConfigOutput(Mapping):
        pass
    
    class NotebookInstanceLifecycleHook(Mapping):
        pass
    
    class CreatePipelineRequest(Mapping):
        pass
    
    class CreatePipelineResponse(Mapping):
        pass
    
    class CreatePresignedDomainUrlRequest(Mapping):
        pass
    
    class CreatePresignedDomainUrlResponse(Mapping):
        pass
    
    class CreatePresignedNotebookInstanceUrlInput(Mapping):
        pass
    
    class CreatePresignedNotebookInstanceUrlOutput(Mapping):
        pass
    
    class CreateProcessingJobRequest(Mapping):
        pass
    
    class CreateProcessingJobResponse(Mapping):
        pass
    
    class ProcessingInput(Mapping):
        pass
    
    class ProcessingOutputConfig(Mapping):
        pass
    
    class ProcessingResources(Mapping):
        pass
    
    class ProcessingStoppingCondition(Mapping):
        pass
    
    class AppSpecification(Mapping):
        pass
    
    class ProcessingEnvironmentMap(object):
        pass
    
    class NetworkConfig(Mapping):
        pass
    
    class ExperimentConfig(Mapping):
        pass
    
    class CreateProjectInput(Mapping):
        pass
    
    class CreateProjectOutput(Mapping):
        pass
    
    class ServiceCatalogProvisioningDetails(Mapping):
        pass
    
    class CreateTrainingJobRequest(Mapping):
        pass
    
    class CreateTrainingJobResponse(Mapping):
        pass
    
    class HyperParameters(object):
        pass
    
    class AlgorithmSpecification(Mapping):
        pass
    
    class Channel(Mapping):
        pass
    
    class OutputDataConfig(Mapping):
        pass
    
    class ResourceConfig(Mapping):
        pass
    
    class CheckpointConfig(Mapping):
        pass
    
    class DebugHookConfig(Mapping):
        pass
    
    class DebugRuleConfiguration(Mapping):
        pass
    
    class TensorBoardOutputConfig(Mapping):
        pass
    
    class ProfilerConfig(Mapping):
        pass
    
    class ProfilerRuleConfiguration(Mapping):
        pass
    
    class TrainingEnvironmentMap(object):
        pass
    
    class RetryStrategy(Mapping):
        pass
    
    class CreateTransformJobRequest(Mapping):
        pass
    
    class CreateTransformJobResponse(Mapping):
        pass
    
    class ModelClientConfig(Mapping):
        pass
    
    class TransformEnvironmentMap(object):
        pass
    
    class TransformInput(Mapping):
        pass
    
    class TransformOutput(Mapping):
        pass
    
    class TransformResources(Mapping):
        pass
    
    class DataProcessing(Mapping):
        pass
    
    class CreateTrialRequest(Mapping):
        pass
    
    class CreateTrialResponse(Mapping):
        pass
    
    class CreateTrialComponentRequest(Mapping):
        pass
    
    class CreateTrialComponentResponse(Mapping):
        pass
    
    class TrialComponentStatus(Mapping):
        pass
    
    class Timestamp(object):
        pass
    
    class TrialComponentParameters(object):
        pass
    
    class TrialComponentArtifacts(object):
        pass
    
    class CreateUserProfileRequest(Mapping):
        pass
    
    class CreateUserProfileResponse(Mapping):
        pass
    
    class CreateWorkforceRequest(Mapping):
        pass
    
    class CreateWorkforceResponse(Mapping):
        pass
    
    class CognitoConfig(Mapping):
        pass
    
    class OidcConfig(Mapping):
        pass
    
    class SourceIpConfig(Mapping):
        pass
    
    class CreateWorkteamRequest(Mapping):
        pass
    
    class CreateWorkteamResponse(Mapping):
        pass
    
    class MemberDefinition(Mapping):
        pass
    
    class NotificationConfiguration(Mapping):
        pass
    
    class DeleteActionRequest(Mapping):
        pass
    
    class DeleteActionResponse(Mapping):
        pass
    
    class DeleteAlgorithmInput(Mapping):
        pass
    
    class DeleteAppRequest(Mapping):
        pass
    
    class DeleteAppImageConfigRequest(Mapping):
        pass
    
    class DeleteArtifactRequest(Mapping):
        pass
    
    class DeleteArtifactResponse(Mapping):
        pass
    
    class DeleteAssociationRequest(Mapping):
        pass
    
    class DeleteAssociationResponse(Mapping):
        pass
    
    class DeleteCodeRepositoryInput(Mapping):
        pass
    
    class DeleteContextRequest(Mapping):
        pass
    
    class DeleteContextResponse(Mapping):
        pass
    
    class DeleteDataQualityJobDefinitionRequest(Mapping):
        pass
    
    class DeleteDeviceFleetRequest(Mapping):
        pass
    
    class DeleteDomainRequest(Mapping):
        pass
    
    class RetentionPolicy(Mapping):
        pass
    
    class DeleteEndpointInput(Mapping):
        pass
    
    class DeleteEndpointConfigInput(Mapping):
        pass
    
    class DeleteExperimentRequest(Mapping):
        pass
    
    class DeleteExperimentResponse(Mapping):
        pass
    
    class DeleteFeatureGroupRequest(Mapping):
        pass
    
    class DeleteFlowDefinitionRequest(Mapping):
        pass
    
    class DeleteFlowDefinitionResponse(Mapping):
        pass
    
    class DeleteHumanTaskUiRequest(Mapping):
        pass
    
    class DeleteHumanTaskUiResponse(Mapping):
        pass
    
    class DeleteImageRequest(Mapping):
        pass
    
    class DeleteImageResponse(Mapping):
        pass
    
    class DeleteImageVersionRequest(Mapping):
        pass
    
    class DeleteImageVersionResponse(Mapping):
        pass
    
    class DeleteModelInput(Mapping):
        pass
    
    class DeleteModelBiasJobDefinitionRequest(Mapping):
        pass
    
    class DeleteModelExplainabilityJobDefinitionRequest(Mapping):
        pass
    
    class DeleteModelPackageInput(Mapping):
        pass
    
    class DeleteModelPackageGroupInput(Mapping):
        pass
    
    class DeleteModelPackageGroupPolicyInput(Mapping):
        pass
    
    class DeleteModelQualityJobDefinitionRequest(Mapping):
        pass
    
    class DeleteMonitoringScheduleRequest(Mapping):
        pass
    
    class DeleteNotebookInstanceInput(Mapping):
        pass
    
    class DeleteNotebookInstanceLifecycleConfigInput(Mapping):
        pass
    
    class DeletePipelineRequest(Mapping):
        pass
    
    class DeletePipelineResponse(Mapping):
        pass
    
    class DeleteProjectInput(Mapping):
        pass
    
    class DeleteTagsInput(Mapping):
        pass
    
    class DeleteTagsOutput(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class DeleteTrialRequest(Mapping):
        pass
    
    class DeleteTrialResponse(Mapping):
        pass
    
    class DeleteTrialComponentRequest(Mapping):
        pass
    
    class DeleteTrialComponentResponse(Mapping):
        pass
    
    class DeleteUserProfileRequest(Mapping):
        pass
    
    class DeleteWorkforceRequest(Mapping):
        pass
    
    class DeleteWorkforceResponse(Mapping):
        pass
    
    class DeleteWorkteamRequest(Mapping):
        pass
    
    class DeleteWorkteamResponse(Mapping):
        pass
    
    class DeregisterDevicesRequest(Mapping):
        pass
    
    class DeviceName(object):
        pass
    
    class DescribeActionRequest(Mapping):
        pass
    
    class DescribeActionResponse(Mapping):
        pass
    
    class DescribeAlgorithmInput(Mapping):
        pass
    
    class DescribeAlgorithmOutput(Mapping):
        pass
    
    class DescribeAppRequest(Mapping):
        pass
    
    class DescribeAppResponse(Mapping):
        pass
    
    class DescribeAppImageConfigRequest(Mapping):
        pass
    
    class DescribeAppImageConfigResponse(Mapping):
        pass
    
    class DescribeArtifactRequest(Mapping):
        pass
    
    class DescribeArtifactResponse(Mapping):
        pass
    
    class DescribeAutoMLJobRequest(Mapping):
        pass
    
    class DescribeAutoMLJobResponse(Mapping):
        pass
    
    class DescribeCodeRepositoryInput(Mapping):
        pass
    
    class DescribeCodeRepositoryOutput(Mapping):
        pass
    
    class DescribeCompilationJobRequest(Mapping):
        pass
    
    class DescribeCompilationJobResponse(Mapping):
        pass
    
    class DescribeContextRequest(Mapping):
        pass
    
    class DescribeContextResponse(Mapping):
        pass
    
    class DescribeDataQualityJobDefinitionRequest(Mapping):
        pass
    
    class DescribeDataQualityJobDefinitionResponse(Mapping):
        pass
    
    class DescribeDeviceRequest(Mapping):
        pass
    
    class DescribeDeviceResponse(Mapping):
        pass
    
    class DescribeDeviceFleetRequest(Mapping):
        pass
    
    class DescribeDeviceFleetResponse(Mapping):
        pass
    
    class DescribeDomainRequest(Mapping):
        pass
    
    class DescribeDomainResponse(Mapping):
        pass
    
    class DescribeEdgePackagingJobRequest(Mapping):
        pass
    
    class DescribeEdgePackagingJobResponse(Mapping):
        pass
    
    class DescribeEndpointInput(Mapping):
        pass
    
    class DescribeEndpointOutput(Mapping):
        pass
    
    class DescribeEndpointConfigInput(Mapping):
        pass
    
    class DescribeEndpointConfigOutput(Mapping):
        pass
    
    class DescribeExperimentRequest(Mapping):
        pass
    
    class DescribeExperimentResponse(Mapping):
        pass
    
    class DescribeFeatureGroupRequest(Mapping):
        pass
    
    class DescribeFeatureGroupResponse(Mapping):
        pass
    
    class DescribeFlowDefinitionRequest(Mapping):
        pass
    
    class DescribeFlowDefinitionResponse(Mapping):
        pass
    
    class DescribeHumanTaskUiRequest(Mapping):
        pass
    
    class DescribeHumanTaskUiResponse(Mapping):
        pass
    
    class DescribeHyperParameterTuningJobRequest(Mapping):
        pass
    
    class DescribeHyperParameterTuningJobResponse(Mapping):
        pass
    
    class DescribeImageRequest(Mapping):
        pass
    
    class DescribeImageResponse(Mapping):
        pass
    
    class DescribeImageVersionRequest(Mapping):
        pass
    
    class DescribeImageVersionResponse(Mapping):
        pass
    
    class DescribeLabelingJobRequest(Mapping):
        pass
    
    class DescribeLabelingJobResponse(Mapping):
        pass
    
    class DescribeModelInput(Mapping):
        pass
    
    class DescribeModelOutput(Mapping):
        pass
    
    class DescribeModelBiasJobDefinitionRequest(Mapping):
        pass
    
    class DescribeModelBiasJobDefinitionResponse(Mapping):
        pass
    
    class DescribeModelExplainabilityJobDefinitionRequest(Mapping):
        pass
    
    class DescribeModelExplainabilityJobDefinitionResponse(Mapping):
        pass
    
    class DescribeModelPackageInput(Mapping):
        pass
    
    class DescribeModelPackageOutput(Mapping):
        pass
    
    class DescribeModelPackageGroupInput(Mapping):
        pass
    
    class DescribeModelPackageGroupOutput(Mapping):
        pass
    
    class DescribeModelQualityJobDefinitionRequest(Mapping):
        pass
    
    class DescribeModelQualityJobDefinitionResponse(Mapping):
        pass
    
    class DescribeMonitoringScheduleRequest(Mapping):
        pass
    
    class DescribeMonitoringScheduleResponse(Mapping):
        pass
    
    class DescribeNotebookInstanceInput(Mapping):
        pass
    
    class DescribeNotebookInstanceOutput(Mapping):
        pass
    
    class DescribeNotebookInstanceLifecycleConfigInput(Mapping):
        pass
    
    class DescribeNotebookInstanceLifecycleConfigOutput(Mapping):
        pass
    
    class DescribePipelineRequest(Mapping):
        pass
    
    class DescribePipelineResponse(Mapping):
        pass
    
    class DescribePipelineDefinitionForExecutionRequest(Mapping):
        pass
    
    class DescribePipelineDefinitionForExecutionResponse(Mapping):
        pass
    
    class DescribePipelineExecutionRequest(Mapping):
        pass
    
    class DescribePipelineExecutionResponse(Mapping):
        pass
    
    class DescribeProcessingJobRequest(Mapping):
        pass
    
    class DescribeProcessingJobResponse(Mapping):
        pass
    
    class DescribeProjectInput(Mapping):
        pass
    
    class DescribeProjectOutput(Mapping):
        pass
    
    class DescribeSubscribedWorkteamRequest(Mapping):
        pass
    
    class DescribeSubscribedWorkteamResponse(Mapping):
        pass
    
    class DescribeTrainingJobRequest(Mapping):
        pass
    
    class DescribeTrainingJobResponse(Mapping):
        pass
    
    class DescribeTransformJobRequest(Mapping):
        pass
    
    class DescribeTransformJobResponse(Mapping):
        pass
    
    class DescribeTrialRequest(Mapping):
        pass
    
    class DescribeTrialResponse(Mapping):
        pass
    
    class DescribeTrialComponentRequest(Mapping):
        pass
    
    class DescribeTrialComponentResponse(Mapping):
        pass
    
    class DescribeUserProfileRequest(Mapping):
        pass
    
    class DescribeUserProfileResponse(Mapping):
        pass
    
    class DescribeWorkforceRequest(Mapping):
        pass
    
    class DescribeWorkforceResponse(Mapping):
        pass
    
    class DescribeWorkteamRequest(Mapping):
        pass
    
    class DescribeWorkteamResponse(Mapping):
        pass
    
    class DisableSagemakerServicecatalogPortfolioInput(Mapping):
        pass
    
    class DisableSagemakerServicecatalogPortfolioOutput(Mapping):
        pass
    
    class DisassociateTrialComponentRequest(Mapping):
        pass
    
    class DisassociateTrialComponentResponse(Mapping):
        pass
    
    class EnableSagemakerServicecatalogPortfolioInput(Mapping):
        pass
    
    class EnableSagemakerServicecatalogPortfolioOutput(Mapping):
        pass
    
    class GetDeviceFleetReportRequest(Mapping):
        pass
    
    class GetDeviceFleetReportResponse(Mapping):
        pass
    
    class GetModelPackageGroupPolicyInput(Mapping):
        pass
    
    class GetModelPackageGroupPolicyOutput(Mapping):
        pass
    
    class GetSagemakerServicecatalogPortfolioStatusInput(Mapping):
        pass
    
    class GetSagemakerServicecatalogPortfolioStatusOutput(Mapping):
        pass
    
    class GetSearchSuggestionsRequest(Mapping):
        pass
    
    class GetSearchSuggestionsResponse(Mapping):
        pass
    
    class SuggestionQuery(Mapping):
        pass
    
    class ListActionsRequest(Mapping):
        pass
    
    class ListActionsResponse(Mapping):
        pass
    
    class ListAlgorithmsInput(Mapping):
        pass
    
    class ListAlgorithmsOutput(Mapping):
        pass
    
    class CreationTime(object):
        pass
    
    class ListAppImageConfigsRequest(Mapping):
        pass
    
    class ListAppImageConfigsResponse(Mapping):
        pass
    
    class ListAppsRequest(Mapping):
        pass
    
    class ListAppsResponse(Mapping):
        pass
    
    class ListArtifactsRequest(Mapping):
        pass
    
    class ListArtifactsResponse(Mapping):
        pass
    
    class ListAssociationsRequest(Mapping):
        pass
    
    class ListAssociationsResponse(Mapping):
        pass
    
    class ListAutoMLJobsRequest(Mapping):
        pass
    
    class ListAutoMLJobsResponse(Mapping):
        pass
    
    class ListCandidatesForAutoMLJobRequest(Mapping):
        pass
    
    class ListCandidatesForAutoMLJobResponse(Mapping):
        pass
    
    class ListCodeRepositoriesInput(Mapping):
        pass
    
    class ListCodeRepositoriesOutput(Mapping):
        pass
    
    class ListCompilationJobsRequest(Mapping):
        pass
    
    class ListCompilationJobsResponse(Mapping):
        pass
    
    class LastModifiedTime(object):
        pass
    
    class ListContextsRequest(Mapping):
        pass
    
    class ListContextsResponse(Mapping):
        pass
    
    class ListDataQualityJobDefinitionsRequest(Mapping):
        pass
    
    class ListDataQualityJobDefinitionsResponse(Mapping):
        pass
    
    class ListDeviceFleetsRequest(Mapping):
        pass
    
    class ListDeviceFleetsResponse(Mapping):
        pass
    
    class ListDevicesRequest(Mapping):
        pass
    
    class ListDevicesResponse(Mapping):
        pass
    
    class ListDomainsRequest(Mapping):
        pass
    
    class ListDomainsResponse(Mapping):
        pass
    
    class ListEdgePackagingJobsRequest(Mapping):
        pass
    
    class ListEdgePackagingJobsResponse(Mapping):
        pass
    
    class ListEndpointConfigsInput(Mapping):
        pass
    
    class ListEndpointConfigsOutput(Mapping):
        pass
    
    class ListEndpointsInput(Mapping):
        pass
    
    class ListEndpointsOutput(Mapping):
        pass
    
    class ListExperimentsRequest(Mapping):
        pass
    
    class ListExperimentsResponse(Mapping):
        pass
    
    class ListFeatureGroupsRequest(Mapping):
        pass
    
    class ListFeatureGroupsResponse(Mapping):
        pass
    
    class ListFlowDefinitionsRequest(Mapping):
        pass
    
    class ListFlowDefinitionsResponse(Mapping):
        pass
    
    class ListHumanTaskUisRequest(Mapping):
        pass
    
    class ListHumanTaskUisResponse(Mapping):
        pass
    
    class ListHyperParameterTuningJobsRequest(Mapping):
        pass
    
    class ListHyperParameterTuningJobsResponse(Mapping):
        pass
    
    class ListImageVersionsRequest(Mapping):
        pass
    
    class ListImageVersionsResponse(Mapping):
        pass
    
    class ListImagesRequest(Mapping):
        pass
    
    class ListImagesResponse(Mapping):
        pass
    
    class ListLabelingJobsRequest(Mapping):
        pass
    
    class ListLabelingJobsResponse(Mapping):
        pass
    
    class ListLabelingJobsForWorkteamRequest(Mapping):
        pass
    
    class ListLabelingJobsForWorkteamResponse(Mapping):
        pass
    
    class ListModelBiasJobDefinitionsRequest(Mapping):
        pass
    
    class ListModelBiasJobDefinitionsResponse(Mapping):
        pass
    
    class ListModelExplainabilityJobDefinitionsRequest(Mapping):
        pass
    
    class ListModelExplainabilityJobDefinitionsResponse(Mapping):
        pass
    
    class ListModelPackageGroupsInput(Mapping):
        pass
    
    class ListModelPackageGroupsOutput(Mapping):
        pass
    
    class ListModelPackagesInput(Mapping):
        pass
    
    class ListModelPackagesOutput(Mapping):
        pass
    
    class ListModelQualityJobDefinitionsRequest(Mapping):
        pass
    
    class ListModelQualityJobDefinitionsResponse(Mapping):
        pass
    
    class ListModelsInput(Mapping):
        pass
    
    class ListModelsOutput(Mapping):
        pass
    
    class ListMonitoringExecutionsRequest(Mapping):
        pass
    
    class ListMonitoringExecutionsResponse(Mapping):
        pass
    
    class ListMonitoringSchedulesRequest(Mapping):
        pass
    
    class ListMonitoringSchedulesResponse(Mapping):
        pass
    
    class ListNotebookInstanceLifecycleConfigsInput(Mapping):
        pass
    
    class ListNotebookInstanceLifecycleConfigsOutput(Mapping):
        pass
    
    class ListNotebookInstancesInput(Mapping):
        pass
    
    class ListNotebookInstancesOutput(Mapping):
        pass
    
    class ListPipelineExecutionStepsRequest(Mapping):
        pass
    
    class ListPipelineExecutionStepsResponse(Mapping):
        pass
    
    class ListPipelineExecutionsRequest(Mapping):
        pass
    
    class ListPipelineExecutionsResponse(Mapping):
        pass
    
    class ListPipelineParametersForExecutionRequest(Mapping):
        pass
    
    class ListPipelineParametersForExecutionResponse(Mapping):
        pass
    
    class ListPipelinesRequest(Mapping):
        pass
    
    class ListPipelinesResponse(Mapping):
        pass
    
    class ListProcessingJobsRequest(Mapping):
        pass
    
    class ListProcessingJobsResponse(Mapping):
        pass
    
    class ListProjectsInput(Mapping):
        pass
    
    class ListProjectsOutput(Mapping):
        pass
    
    class ListSubscribedWorkteamsRequest(Mapping):
        pass
    
    class ListSubscribedWorkteamsResponse(Mapping):
        pass
    
    class ListTagsInput(Mapping):
        pass
    
    class ListTagsOutput(Mapping):
        pass
    
    class ListTrainingJobsRequest(Mapping):
        pass
    
    class ListTrainingJobsResponse(Mapping):
        pass
    
    class ListTrainingJobsForHyperParameterTuningJobRequest(Mapping):
        pass
    
    class ListTrainingJobsForHyperParameterTuningJobResponse(Mapping):
        pass
    
    class ListTransformJobsRequest(Mapping):
        pass
    
    class ListTransformJobsResponse(Mapping):
        pass
    
    class ListTrialComponentsRequest(Mapping):
        pass
    
    class ListTrialComponentsResponse(Mapping):
        pass
    
    class ListTrialsRequest(Mapping):
        pass
    
    class ListTrialsResponse(Mapping):
        pass
    
    class ListUserProfilesRequest(Mapping):
        pass
    
    class ListUserProfilesResponse(Mapping):
        pass
    
    class ListWorkforcesRequest(Mapping):
        pass
    
    class ListWorkforcesResponse(Mapping):
        pass
    
    class ListWorkteamsRequest(Mapping):
        pass
    
    class ListWorkteamsResponse(Mapping):
        pass
    
    class PutModelPackageGroupPolicyInput(Mapping):
        pass
    
    class PutModelPackageGroupPolicyOutput(Mapping):
        pass
    
    class RegisterDevicesRequest(Mapping):
        pass
    
    class Device(Mapping):
        pass
    
    class RenderUiTemplateRequest(Mapping):
        pass
    
    class RenderUiTemplateResponse(Mapping):
        pass
    
    class RenderableTask(Mapping):
        pass
    
    class SearchRequest(Mapping):
        pass
    
    class SearchResponse(Mapping):
        pass
    
    class SearchExpression(Mapping):
        pass
    
    class SendPipelineExecutionStepFailureRequest(Mapping):
        pass
    
    class SendPipelineExecutionStepFailureResponse(Mapping):
        pass
    
    class SendPipelineExecutionStepSuccessRequest(Mapping):
        pass
    
    class SendPipelineExecutionStepSuccessResponse(Mapping):
        pass
    
    class OutputParameter(Mapping):
        pass
    
    class StartMonitoringScheduleRequest(Mapping):
        pass
    
    class StartNotebookInstanceInput(Mapping):
        pass
    
    class StartPipelineExecutionRequest(Mapping):
        pass
    
    class StartPipelineExecutionResponse(Mapping):
        pass
    
    class Parameter(Mapping):
        pass
    
    class StopAutoMLJobRequest(Mapping):
        pass
    
    class StopCompilationJobRequest(Mapping):
        pass
    
    class StopEdgePackagingJobRequest(Mapping):
        pass
    
    class StopHyperParameterTuningJobRequest(Mapping):
        pass
    
    class StopLabelingJobRequest(Mapping):
        pass
    
    class StopMonitoringScheduleRequest(Mapping):
        pass
    
    class StopNotebookInstanceInput(Mapping):
        pass
    
    class StopPipelineExecutionRequest(Mapping):
        pass
    
    class StopPipelineExecutionResponse(Mapping):
        pass
    
    class StopProcessingJobRequest(Mapping):
        pass
    
    class StopTrainingJobRequest(Mapping):
        pass
    
    class StopTransformJobRequest(Mapping):
        pass
    
    class UpdateActionRequest(Mapping):
        pass
    
    class UpdateActionResponse(Mapping):
        pass
    
    class StringParameterValue(object):
        pass
    
    class UpdateAppImageConfigRequest(Mapping):
        pass
    
    class UpdateAppImageConfigResponse(Mapping):
        pass
    
    class UpdateArtifactRequest(Mapping):
        pass
    
    class UpdateArtifactResponse(Mapping):
        pass
    
    class UpdateCodeRepositoryInput(Mapping):
        pass
    
    class UpdateCodeRepositoryOutput(Mapping):
        pass
    
    class GitConfigForUpdate(Mapping):
        pass
    
    class UpdateContextRequest(Mapping):
        pass
    
    class UpdateContextResponse(Mapping):
        pass
    
    class UpdateDeviceFleetRequest(Mapping):
        pass
    
    class UpdateDevicesRequest(Mapping):
        pass
    
    class UpdateDomainRequest(Mapping):
        pass
    
    class UpdateDomainResponse(Mapping):
        pass
    
    class UpdateEndpointInput(Mapping):
        pass
    
    class UpdateEndpointOutput(Mapping):
        pass
    
    class VariantProperty(Mapping):
        pass
    
    class DeploymentConfig(Mapping):
        pass
    
    class UpdateEndpointWeightsAndCapacitiesInput(Mapping):
        pass
    
    class UpdateEndpointWeightsAndCapacitiesOutput(Mapping):
        pass
    
    class DesiredWeightAndCapacity(Mapping):
        pass
    
    class UpdateExperimentRequest(Mapping):
        pass
    
    class UpdateExperimentResponse(Mapping):
        pass
    
    class UpdateImageRequest(Mapping):
        pass
    
    class UpdateImageResponse(Mapping):
        pass
    
    class ImageDeleteProperty(object):
        pass
    
    class UpdateModelPackageInput(Mapping):
        pass
    
    class UpdateModelPackageOutput(Mapping):
        pass
    
    class UpdateMonitoringScheduleRequest(Mapping):
        pass
    
    class UpdateMonitoringScheduleResponse(Mapping):
        pass
    
    class UpdateNotebookInstanceInput(Mapping):
        pass
    
    class UpdateNotebookInstanceOutput(Mapping):
        pass
    
    class DisassociateNotebookInstanceLifecycleConfig(object):
        pass
    
    class DisassociateNotebookInstanceAcceleratorTypes(object):
        pass
    
    class DisassociateDefaultCodeRepository(object):
        pass
    
    class DisassociateAdditionalCodeRepositories(object):
        pass
    
    class UpdateNotebookInstanceLifecycleConfigInput(Mapping):
        pass
    
    class UpdateNotebookInstanceLifecycleConfigOutput(Mapping):
        pass
    
    class UpdatePipelineRequest(Mapping):
        pass
    
    class UpdatePipelineResponse(Mapping):
        pass
    
    class UpdatePipelineExecutionRequest(Mapping):
        pass
    
    class UpdatePipelineExecutionResponse(Mapping):
        pass
    
    class UpdateTrainingJobRequest(Mapping):
        pass
    
    class UpdateTrainingJobResponse(Mapping):
        pass
    
    class ProfilerConfigForUpdate(Mapping):
        pass
    
    class UpdateTrialRequest(Mapping):
        pass
    
    class UpdateTrialResponse(Mapping):
        pass
    
    class UpdateTrialComponentRequest(Mapping):
        pass
    
    class UpdateTrialComponentResponse(Mapping):
        pass
    
    class TrialComponentKey256(object):
        pass
    
    class UpdateUserProfileRequest(Mapping):
        pass
    
    class UpdateUserProfileResponse(Mapping):
        pass
    
    class UpdateWorkforceRequest(Mapping):
        pass
    
    class UpdateWorkforceResponse(Mapping):
        pass
    
    class UpdateWorkteamRequest(Mapping):
        pass
    
    class UpdateWorkteamResponse(Mapping):
        pass
    
    def add_association(self, DestinationArn: str, SourceArn: str, AssociationType: str=None) -> AddAssociationResponse:
        r"""Creates an <i>association</i> between the source and the destination. A source can be associated with multiple destinations, and a destination can be associated with multiple sources. An association is a lineage tracking entity. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/lineage-tracking.html">Amazon SageMaker ML Lineage Tracking</a>.

        :param self:
        :param AssociationType:  The type of association. The following are suggested uses for each type. Amazon SageMaker places no restrictions on their use. <ul> <li> ContributedTo - The source contributed to the destination or had a part in enabling the destination. For example, the training data contributed to the training job. </li> <li> AssociatedWith - The source is connected to the destination. For example, an approval workflow is associated with a model deployment. </li> <li> DerivedFrom - The destination is a modification of the source. For example, a digest output of a channel input for a processing job is derived from the original inputs. </li> <li> Produced - The source generated the destination. For example, a training job produced a model artifact. </li> </ul><br/>DestinationArn:  The Amazon Resource Name (ARN) of the destination.<br/>SourceArn:  The ARN of the source.<br/>
        :return: DestinationArn:  The Amazon Resource Name (ARN) of the destination.<br/>SourceArn:  The ARN of the source.<br/>        """
        pass

    def add_tags(self, Tags: List[Tag], ResourceArn: str) -> AddTagsOutput:
        r"""Adds or overwrites one or more tags for the specified Amazon SageMaker resource. You can add tags to notebook instances, training jobs, hyperparameter tuning jobs, batch transform jobs, models, labeling jobs, work teams, endpoint configurations, and endpoints. Each tag consists of a key and an optional value. Tag keys must be unique per resource. For more information about tags, see For more information, see <a href="https://aws.amazon.com/answers/account-management/aws-tagging-strategies/">Amazon Web Services Tagging Strategies</a>. <note> Tags that you add to a hyperparameter tuning job by calling this API are also added to any training jobs that the hyperparameter tuning job launches after you call this API, but not to training jobs that the hyperparameter tuning job launched before you called this API. To make sure that the tags associated with a hyperparameter tuning job are also added to all training jobs that the hyperparameter tuning job launches, add the tags when you first create the tuning job by specifying them in the <code>Tags</code> parameter of <a>CreateHyperParameterTuningJob</a>  </note> <note> Tags that you add to a SageMaker Studio Domain or User Profile by calling this API are also added to any Apps that the Domain or User Profile launches after you call this API, but not to Apps that the Domain or User Profile launched before you called this API. To make sure that the tags associated with a Domain or User Profile are also added to all Apps that the Domain or User Profile launches, add the tags when you first create the Domain or User Profile by specifying them in the <code>Tags</code> parameter of <a>CreateDomain</a> or <a>CreateUserProfile</a>. </note>

        :param self:
        :param Tags:  An array of key-value pairs. You can use tags to categorize your Amazon Web Services resources in different ways, for example, by purpose, owner, or environment. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html">Tagging Amazon Web Services Resources</a>.<br/>ResourceArn:  The Amazon Resource Name (ARN) of the resource that you want to tag.<br/>
        :return: Tags:  A list of tags associated with the Amazon SageMaker resource.<br/>        """
        pass

    def associate_trial_component(self, TrialName: str, TrialComponentName: str) -> AssociateTrialComponentResponse:
        r"""Associates a trial component with a trial. A trial component can be associated with multiple trials. To disassociate a trial component from a trial, call the <a>DisassociateTrialComponent</a> API.

        :param self:
        :param TrialName:  The name of the trial to associate with.<br/>TrialComponentName:  The name of the component to associated with the trial.<br/>
        :return: TrialArn:  The Amazon Resource Name (ARN) of the trial.<br/>TrialComponentArn:  The ARN of the trial component.<br/>        """
        pass

    def create_action(self, ActionType: str, Source: ActionSource, ActionName: str, Description: str=None, Status: str=None, Properties: LineageEntityParameters=None, MetadataProperties: MetadataProperties=None, Tags: List[Tag]=None) -> CreateActionResponse:
        r"""Creates an <i>action</i>. An action is a lineage tracking entity that represents an action or activity. For example, a model deployment or an HPO job. Generally, an action involves at least one input or output artifact. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/lineage-tracking.html">Amazon SageMaker ML Lineage Tracking</a>. <note>  <code>CreateAction</code> can only be invoked from within an SageMaker managed environment. This includes SageMaker training jobs, processing jobs, transform jobs, and SageMaker notebooks. A call to <code>CreateAction</code> from outside one of these environments results in an error. </note>

        :param self:
        :param Tags:  A list of tags to apply to the action.<br/>MetadataProperties:  Metadata properties of the tracking entity, trial, or trial component.:<br/>Properties:  A list of properties to add to the action.<br/>Status:  The status of the action.<br/>Description:  The description of the action.<br/>ActionType:  The action type.<br/>Source:  The source type, ID, and URI.:<br/>ActionName:  The name of the action. Must be unique to your account in an Amazon Web Services Region.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceId</i> The ID of the source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceType</i> The type of the source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceUri</i> The URI of the source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProjectId</i> The project ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GeneratedBy</i> The entity this entity was generated by.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Repository</i> The repository.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CommitId</i> The commit ID.<br/>
        :return: ActionArn:  The Amazon Resource Name (ARN) of the action.<br/>        """
        pass

    def create_algorithm(self, TrainingSpecification: TrainingSpecification, AlgorithmName: str, AlgorithmDescription: str=None, InferenceSpecification: InferenceSpecification=None, ValidationSpecification: AlgorithmValidationSpecification=None, CertifyForMarketplace: CertifyForMarketplace=None, Tags: List[Tag]=None) -> CreateAlgorithmOutput:
        r"""Create a machine learning algorithm that you can use in Amazon SageMaker and list in the Amazon Web Services Marketplace.

        :param self:
        :param Tags:  An array of key-value pairs. You can use tags to categorize your Amazon Web Services resources in different ways, for example, by purpose, owner, or environment. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html">Tagging Amazon Web Services Resources</a>.<br/>CertifyForMarketplace:  Whether to certify the algorithm so that it can be listed in Amazon Web Services Marketplace.<br/>ValidationSpecification:  Specifies configurations for one or more training jobs and that Amazon SageMaker runs to test the algorithm's training code and, optionally, one or more batch transform jobs that Amazon SageMaker runs to test the algorithm's inference code.:<br/>InferenceSpecification:  Specifies details about inference jobs that the algorithm runs, including the following: <ul> <li> The Amazon ECR paths of containers that contain the inference code and model artifacts. </li> <li> The instance types that the algorithm supports for transform jobs and real-time endpoints used for inference. </li> <li> The input and output content formats that the algorithm supports for inference. </li> </ul>:<br/>TrainingSpecification:  Specifies details about training jobs run by this algorithm, including the following: <ul> <li> The Amazon ECR path of the container and the version digest of the algorithm. </li> <li> The hyperparameters that the algorithm supports. </li> <li> The instance types that the algorithm supports for training. </li> <li> Whether the algorithm supports distributed training. </li> <li> The metrics that the algorithm emits to Amazon CloudWatch. </li> <li> Which metrics that the algorithm emits can be used as the objective metric for hyperparameter tuning jobs. </li> <li> The input channels that the algorithm supports for training data. For example, an algorithm might support <code>train</code>, <code>validation</code>, and <code>test</code> channels. </li> </ul>:<br/>AlgorithmDescription:  A description of the algorithm.<br/>AlgorithmName:  The name of the algorithm.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SupportedTuningJobObjectiveMetrics</i> A list of the metrics that the algorithm emits that can be used as the objective metric in a hyperparameter tuning job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TrainingChannels</i> A list of <code>ChannelSpecification</code> objects, which specify the input sources to be used by the algorithm.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MetricDefinitions</i> A list of <code>MetricDefinition</code> objects, which are used for parsing metrics generated by the algorithm.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SupportsDistributedTraining</i> Indicates whether the algorithm supports distributed training. If set to false, buyers can't request more than one instance during training.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SupportedTrainingInstanceTypes</i> A list of the instance types that this algorithm can use for training.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SupportedHyperParameters</i> A list of the <code>HyperParameterSpecification</code> objects, that define the supported hyperparameters. This is required if the algorithm supports automatic model tuning.&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TrainingImageDigest</i> An MD5 hash of the training algorithm that identifies the Docker image used for training.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TrainingImage</i> The Amazon ECR registry path of the Docker image that contains the training algorithm.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SupportedResponseMIMETypes</i> The supported MIME types for the output data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SupportedContentTypes</i> The supported MIME types for the input data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SupportedRealtimeInferenceInstanceTypes</i> A list of the instance types that are used to generate inferences in real-time. This parameter is required for unversioned models, and optional for versioned models.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SupportedTransformInstanceTypes</i> A list of the instance types on which a transformation job can be run or on which an endpoint can be deployed. This parameter is required for unversioned models, and optional for versioned models.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Containers</i> The Amazon ECR registry path of the Docker image that contains the inference code.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ValidationProfiles</i> An array of <code>AlgorithmValidationProfile</code> objects, each of which specifies a training job and batch transform job that Amazon SageMaker runs to validate your algorithm.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ValidationRole</i> The IAM roles that Amazon SageMaker uses to run the training jobs.<br/>
        :return: AlgorithmArn:  The Amazon Resource Name (ARN) of the new algorithm.<br/>        """
        pass

    def create_app(self, AppName: str, AppType: str, UserProfileName: str, DomainId: str, Tags: List[Tag]=None, ResourceSpec: ResourceSpec=None) -> CreateAppResponse:
        r"""Creates a running app for the specified UserProfile. Supported apps are <code>JupyterServer</code> and <code>KernelGateway</code>. This operation is automatically invoked by Amazon SageMaker Studio upon access to the associated Domain, and when new kernel configurations are selected by the user. A user may have multiple Apps active simultaneously.

        :param self:
        :param ResourceSpec:  The instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance.:<br/>Tags:  Each tag consists of a key and an optional value. Tag keys must be unique per resource.<br/>AppName:  The name of the app.<br/>AppType:  The type of app. Supported apps are <code>JupyterServer</code> and <code>KernelGateway</code>. <code>TensorBoard</code> is not supported.<br/>UserProfileName:  The user profile name.<br/>DomainId:  The domain ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceType</i> The instance type that the image version runs on.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SageMakerImageVersionArn</i> The ARN of the image version created on the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SageMakerImageArn</i> The ARN of the SageMaker image that the image version belongs to.<br/>
        :return: AppArn:  The Amazon Resource Name (ARN) of the app.<br/>        """
        pass

    def create_app_image_config(self, AppImageConfigName: str, Tags: List[Tag]=None, KernelGatewayImageConfig: KernelGatewayImageConfig=None) -> CreateAppImageConfigResponse:
        r"""Creates a configuration for running a SageMaker image as a KernelGateway app. The configuration specifies the Amazon Elastic File System (EFS) storage volume on the image, and a list of the kernels in the image.

        :param self:
        :param KernelGatewayImageConfig:  The KernelGatewayImageConfig.:<br/>Tags:  A list of tags to apply to the AppImageConfig.<br/>AppImageConfigName:  The name of the AppImageConfig. Must be unique to your account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FileSystemConfig</i> The Amazon Elastic File System (EFS) storage configuration for a SageMaker image.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>FileSystemConfig</b>: The Amazon Elastic File System (EFS) storage configuration for a SageMaker image.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KernelSpecs</i> The specification of the Jupyter kernels in the image.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultGid</i> The default POSIX group ID (GID). If not specified, defaults to <code>100</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultUid</i> The default POSIX user ID (UID). If not specified, defaults to <code>1000</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MountPath</i> The path within the image to mount the user's EFS home directory. The directory should be empty. If not specified, defaults to <i>/home/sagemaker-user</i>.<br/>
        :return: AppImageConfigArn:  The Amazon Resource Name (ARN) of the AppImageConfig.<br/>        """
        pass

    def create_artifact(self, ArtifactType: str, Source: ArtifactSource, ArtifactName: str=None, Properties: LineageEntityParameters=None, MetadataProperties: MetadataProperties=None, Tags: List[Tag]=None) -> CreateArtifactResponse:
        r"""Creates an <i>artifact</i>. An artifact is a lineage tracking entity that represents a URI addressable object or data. Some examples are the S3 URI of a dataset and the ECR registry path of an image. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/lineage-tracking.html">Amazon SageMaker ML Lineage Tracking</a>. <note>  <code>CreateArtifact</code> can only be invoked from within an SageMaker managed environment. This includes SageMaker training jobs, processing jobs, transform jobs, and SageMaker notebooks. A call to <code>CreateArtifact</code> from outside one of these environments results in an error. </note>

        :param self:
        :param Tags:  A list of tags to apply to the artifact.<br/>MetadataProperties:  Metadata properties of the tracking entity, trial, or trial component.:<br/>Properties:  A list of properties to add to the artifact.<br/>ArtifactType:  The artifact type.<br/>Source:  The ID, ID type, and URI of the source.:<br/>ArtifactName:  The name of the artifact. Must be unique to your account in an Amazon Web Services Region.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceTypes</i> A list of source types.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceUri</i> The URI of the source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProjectId</i> The project ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GeneratedBy</i> The entity this entity was generated by.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Repository</i> The repository.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CommitId</i> The commit ID.<br/>
        :return: ArtifactArn:  The Amazon Resource Name (ARN) of the artifact.<br/>        """
        pass

    def create_auto_ml_job(self, RoleArn: str, OutputDataConfig: AutoMLOutputDataConfig, InputDataConfig: List[AutoMLChannel], AutoMLJobName: str, ProblemType: str=None, AutoMLJobObjective: AutoMLJobObjective=None, AutoMLJobConfig: AutoMLJobConfig=None, GenerateCandidateDefinitionsOnly: GenerateCandidateDefinitionsOnly=None, Tags: List[Tag]=None, ModelDeployConfig: ModelDeployConfig=None) -> CreateAutoMLJobResponse:
        r"""Creates an Autopilot job. Find the best performing model after you run an Autopilot job by calling . For information about how to use Autopilot, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-automate-model-development.html">Automate Model Development with Amazon SageMaker Autopilot</a>.

        :param self:
        :param ModelDeployConfig:  Specifies how to generate the endpoint name for an automatic one-click Autopilot model deployment.:<br/>Tags:  Each tag consists of a key and an optional value. Tag keys must be unique per resource.<br/>GenerateCandidateDefinitionsOnly:  Generates possible candidates without training the models. A candidate is a combination of data preprocessors, algorithms, and algorithm parameter settings.<br/>RoleArn:  The ARN of the role that is used to access the data.<br/>AutoMLJobConfig:  Contains <code>CompletionCriteria</code> and <code>SecurityConfig</code> settings for the AutoML job.:<br/>AutoMLJobObjective:  Defines the objective metric used to measure the predictive quality of an AutoML job. You provide an <a>AutoMLJobObjective$MetricName</a> and Autopilot infers whether to minimize or maximize it.:<br/>ProblemType:  Defines the type of supervised learning available for the candidates. Options include: <code>BinaryClassification</code>, <code>MulticlassClassification</code>, and <code>Regression</code>. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-automate-model-development-problem-types.html"> Amazon SageMaker Autopilot problem types and algorithm support</a>.<br/>OutputDataConfig:  Provides information about encryption and the Amazon S3 output path needed to store artifacts from an AutoML job. Format(s) supported: CSV.:<br/>InputDataConfig:  An array of channel objects that describes the input data and its location. Each channel is a named input source. Similar to <code>InputDataConfig</code> supported by . Format(s) supported: CSV. Minimum of 500 rows.<br/>AutoMLJobName:  Identifies an Autopilot job. The name must be unique to your account and is case-insensitive.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3OutputPath</i> The Amazon S3 output path. Must be 128 characters or less.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The Amazon Web Services KMS encryption key ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MetricName</i> The name of the objective metric used to measure the predictive quality of a machine learning system. This metric is optimized during training to provide the best estimate for model parameter values from data. Here are the options: <ul> <li>  <code>MSE</code>: The mean squared error (MSE) is the average of the squared differences between the predicted and actual values. It is used for regression. MSE values are always positive: the better a model is at predicting the actual values, the smaller the MSE value. When the data contains outliers, they tend to dominate the MSE, which might cause subpar prediction performance. </li> <li>  <code>Accuracy</code>: The ratio of the number of correctly classified items to the total number of (correctly and incorrectly) classified items. It is used for binary and multiclass classification. It measures how close the predicted class values are to the actual values. Accuracy values vary between zero and one: one indicates perfect accuracy and zero indicates perfect inaccuracy. </li> <li>  <code>F1</code>: The F1 score is the harmonic mean of the precision and recall. It is used for binary classification into classes traditionally referred to as positive and negative. Predictions are said to be true when they match their actual (correct) class and false when they do not. Precision is the ratio of the true positive predictions to all positive predictions (including the false positives) in a data set and measures the quality of the prediction when it predicts the positive class. Recall (or sensitivity) is the ratio of the true positive predictions to all actual positive instances and measures how completely a model predicts the actual class members in a data set. The standard F1 score weighs precision and recall equally. But which metric is paramount typically depends on specific aspects of a problem. F1 scores vary between zero and one: one indicates the best possible performance and zero the worst. </li> <li>  <code>AUC</code>: The area under the curve (AUC) metric is used to compare and evaluate binary classification by algorithms such as logistic regression that return probabilities. A threshold is needed to map the probabilities into classifications. The relevant curve is the receiver operating characteristic curve that plots the true positive rate (TPR) of predictions (or recall) against the false positive rate (FPR) as a function of the threshold value, above which a prediction is considered positive. Increasing the threshold results in fewer false positives but more false negatives. AUC is the area under this receiver operating characteristic curve and so provides an aggregated measure of the model performance across all possible classification thresholds. The AUC score can also be interpreted as the probability that a randomly selected positive data point is more likely to be predicted positive than a randomly selected negative example. AUC scores vary between zero and one: a score of one indicates perfect accuracy and a score of one half indicates that the prediction is not better than a random classifier. Values under one half predict less accurately than a random predictor. But such consistently bad predictors can simply be inverted to obtain better than random predictors. </li> <li>  <code>F1macro</code>: The F1macro score applies F1 scoring to multiclass classification. In this context, you have multiple classes to predict. You just calculate the precision and recall for each class as you did for the positive class in binary classification. Then, use these values to calculate the F1 score for each class and average them to obtain the F1macro score. F1macro scores vary between zero and one: one indicates the best possible performance and zero the worst. </li> </ul> If you do not specify a metric explicitly, the default behavior is to automatically use: <ul> <li>  <code>MSE</code>: for regression. </li> <li>  <code>F1</code>: for binary classification </li> <li>  <code>Accuracy</code>: for multiclass classification. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityConfig</i> The security configuration for traffic encryption or Amazon VPC settings.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SecurityConfig</b>: The security configuration for traffic encryption or Amazon VPC settings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CompletionCriteria</i> How long an AutoML job is allowed to run, or how many candidates a job is allowed to generate.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CompletionCriteria</b>: How long an AutoML job is allowed to run, or how many candidates a job is allowed to generate.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxAutoMLJobRuntimeInSeconds</i> The maximum runtime, in seconds, an AutoML job has to complete.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxRuntimePerTrainingJobInSeconds</i> The maximum time, in seconds, a training job is allowed to run as part of an AutoML job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxCandidates</i> The maximum number of times a training job is allowed to run.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableInterContainerTrafficEncryption</i> Whether to use traffic encryption between the container layers.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VolumeKmsKeyId</i> The key used to encrypt stored data.<br/>The VPC configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>VpcConfig</b>: The VPC configuration.&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointName</i> Specifies the endpoint name to use for a one-click Autopilot model deployment if the endpoint name is not generated automatically. <note> Specify the <code>EndpointName</code> if and only if you set <code>AutoGenerateEndpointName</code> to <code>False</code>; otherwise a 400 error is thrown. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoGenerateEndpointName</i> Set to <code>True</code> to automatically generate an endpoint name for a one-click Autopilot model deployment; set to <code>False</code> otherwise. The default value is <code>False</code>. <note> If you set <code>AutoGenerateEndpointName</code> to <code>True</code>, do not specify the <code>EndpointName</code>; otherwise a 400 error is thrown. </note><br/>
        :return: AutoMLJobArn:  The unique ARN that is assigned to the AutoML job when it is created.<br/>        """
        pass

    def create_code_repository(self, GitConfig: GitConfig, CodeRepositoryName: str, Tags: List[Tag]=None) -> CreateCodeRepositoryOutput:
        r"""Creates a Git repository as a resource in your Amazon SageMaker account. You can associate the repository with notebook instances so that you can use Git source control for the notebooks you create. The Git repository is a resource in your Amazon SageMaker account, so it can be associated with more than one notebook instance, and it persists independently from the lifecycle of any notebook instances it is associated with. The repository can be hosted either in <a href="https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html">Amazon Web Services CodeCommit</a> or in any other Git repository.

        :param self:
        :param Tags:  An array of key-value pairs. You can use tags to categorize your Amazon Web Services resources in different ways, for example, by purpose, owner, or environment. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html">Tagging Amazon Web Services Resources</a>.<br/>GitConfig:  Specifies details about the repository, including the URL where the repository is located, the default branch, and credentials to use to access the repository.:<br/>CodeRepositoryName:  The name of the Git repository. The name must have 1 to 63 characters. Valid characters are a-z, A-Z, 0-9, and - (hyphen).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretArn</i> The Amazon Resource Name (ARN) of the Amazon Web Services Secrets Manager secret that contains the credentials used to access the git repository. The secret must have a staging label of <code>AWSCURRENT</code> and must be in the following format:  <code>{"username": <i>UserName</i>, "password": <i>Password</i>}</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Branch</i> The default branch for the Git repository.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RepositoryUrl</i> The URL where the Git repository is located.<br/>
        :return: CodeRepositoryArn:  The Amazon Resource Name (ARN) of the new repository.<br/>        """
        pass

    def create_compilation_job(self, StoppingCondition: StoppingCondition, OutputConfig: OutputConfig, InputConfig: InputConfig, RoleArn: str, CompilationJobName: str, VpcConfig: NeoVpcConfig=None, Tags: List[Tag]=None) -> CreateCompilationJobResponse:
        r"""Starts a model compilation job. After the model has been compiled, Amazon SageMaker saves the resulting model artifacts to an Amazon Simple Storage Service (Amazon S3) bucket that you specify.  If you choose to host your model using Amazon SageMaker hosting services, you can use the resulting model artifacts as part of the model. You can also use the artifacts with Amazon Web Services IoT Greengrass. In that case, deploy them as an ML resource. In the request body, you provide the following: <ul> <li> A name for the compilation job </li> <li>  Information about the input model artifacts  </li> <li> The output location for the compiled model and the device (target) that the model runs on  </li> <li> The Amazon Resource Name (ARN) of the IAM role that Amazon SageMaker assumes to perform the model compilation job.  </li> </ul> You can also provide a <code>Tag</code> to track the model compilation job's resource use and costs. The response body contains the <code>CompilationJobArn</code> for the compiled job. To stop a model compilation job, use <a>StopCompilationJob</a>. To get information about a particular model compilation job, use <a>DescribeCompilationJob</a>. To get information about multiple model compilation jobs, use <a>ListCompilationJobs</a>.

        :param self:
        :param Tags:  An array of key-value pairs. You can use tags to categorize your Amazon Web Services resources in different ways, for example, by purpose, owner, or environment. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html">Tagging Amazon Web Services Resources</a>.<br/>StoppingCondition:  Specifies a limit to how long a model compilation job can run. When the job reaches the time limit, Amazon SageMaker ends the compilation job. Use this API to cap model training costs.:<br/>VpcConfig:  A <a>VpcConfig</a> object that specifies the VPC that you want your compilation job to connect to. Control access to your models by configuring the VPC. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/neo-vpc.html">Protect Compilation Jobs by Using an Amazon Virtual Private Cloud</a>.:<br/>OutputConfig:  Provides information about the output location for the compiled model and the target device the model runs on.:<br/>InputConfig:  Provides information about the location of input model artifacts, the name and shape of the expected data inputs, and the framework in which the model was trained.:<br/>RoleArn:  The Amazon Resource Name (ARN) of an IAM role that enables Amazon SageMaker to perform tasks on your behalf.  During model compilation, Amazon SageMaker needs your permission to: <ul> <li> Read input data from an S3 bucket </li> <li> Write model artifacts to an S3 bucket </li> <li> Write logs to Amazon CloudWatch Logs </li> <li> Publish metrics to Amazon CloudWatch </li> </ul> You grant permissions for all of these tasks to an IAM role. To pass this role to Amazon SageMaker, the caller of this API must have the <code>iam:PassRole</code> permission. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html">Amazon SageMaker Roles.</a> <br/>CompilationJobName:  A name for the model compilation job. The name must be unique within the Amazon Web Services Region and within your Amazon Web Services account. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FrameworkVersion</i> Specifies the framework version to use. This API field is only supported for PyTorch framework versions <code>1.4</code>, <code>1.5</code>, and <code>1.6</code> for cloud instance target devices: <code>ml_c4</code>, <code>ml_c5</code>, <code>ml_m4</code>, <code>ml_m5</code>, <code>ml_p2</code>, <code>ml_p3</code>, and <code>ml_g4dn</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Framework</i> Identifies the framework in which the model was trained. For example: TENSORFLOW.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataInputConfig</i> Specifies the name and shape of the expected data inputs for your trained model with a JSON dictionary form. The data inputs are <a>InputConfig$Framework</a> specific.  <ul> <li>  <code>TensorFlow</code>: You must specify the name and shape (NHWC format) of the expected data inputs using a dictionary format for your trained model. The dictionary formats required for the console and CLI are different. <ul> <li> Examples for one input: <ul> <li> If using the console, <code>{"input":[1,1024,1024,3]}</code>  </li> <li> If using the CLI, <code>{\"input\":[1,1024,1024,3]}</code>  </li> </ul> </li> <li> Examples for two inputs: <ul> <li> If using the console, <code>{"data1": [1,28,28,1], "data2":[1,28,28,1]}</code>  </li> <li> If using the CLI, <code>{\"data1\": [1,28,28,1], \"data2\":[1,28,28,1]}</code>  </li> </ul> </li> </ul> </li> <li>  <code>KERAS</code>: You must specify the name and shape (NCHW format) of expected data inputs using a dictionary format for your trained model. Note that while Keras model artifacts should be uploaded in NHWC (channel-last) format, <code>DataInputConfig</code> should be specified in NCHW (channel-first) format. The dictionary formats required for the console and CLI are different. <ul> <li> Examples for one input: <ul> <li> If using the console, <code>{"input_1":[1,3,224,224]}</code>  </li> <li> If using the CLI, <code>{\"input_1\":[1,3,224,224]}</code>  </li> </ul> </li> <li> Examples for two inputs: <ul> <li> If using the console, <code>{"input_1": [1,3,224,224], "input_2":[1,3,224,224]} </code>  </li> <li> If using the CLI, <code>{\"input_1\": [1,3,224,224], \"input_2\":[1,3,224,224]}</code>  </li> </ul> </li> </ul> </li> <li>  <code>MXNET/ONNX/DARKNET</code>: You must specify the name and shape (NCHW format) of the expected data inputs in order using a dictionary format for your trained model. The dictionary formats required for the console and CLI are different. <ul> <li> Examples for one input: <ul> <li> If using the console, <code>{"data":[1,3,1024,1024]}</code>  </li> <li> If using the CLI, <code>{\"data\":[1,3,1024,1024]}</code>  </li> </ul> </li> <li> Examples for two inputs: <ul> <li> If using the console, <code>{"var1": [1,1,28,28], "var2":[1,1,28,28]} </code>  </li> <li> If using the CLI, <code>{\"var1\": [1,1,28,28], \"var2\":[1,1,28,28]}</code>  </li> </ul> </li> </ul> </li> <li>  <code>PyTorch</code>: You can either specify the name and shape (NCHW format) of expected data inputs in order using a dictionary format for your trained model or you can specify the shape only using a list format. The dictionary formats required for the console and CLI are different. The list formats for the console and CLI are the same. <ul> <li> Examples for one input in dictionary format: <ul> <li> If using the console, <code>{"input0":[1,3,224,224]}</code>  </li> <li> If using the CLI, <code>{\"input0\":[1,3,224,224]}</code>  </li> </ul> </li> <li> Example for one input in list format: <code>[[1,3,224,224]]</code>  </li> <li> Examples for two inputs in dictionary format: <ul> <li> If using the console, <code>{"input0":[1,3,224,224], "input1":[1,3,224,224]}</code>  </li> <li> If using the CLI, <code>{\"input0\":[1,3,224,224], \"input1\":[1,3,224,224]} </code>  </li> </ul> </li> <li> Example for two inputs in list format: <code>[[1,3,224,224], [1,3,224,224]]</code>  </li> </ul> </li> <li>  <code>XGBOOST</code>: input data name and shape are not needed. </li> </ul>  <code>DataInputConfig</code> supports the following parameters for <code>CoreML</code> <a>OutputConfig$TargetDevice</a> (ML Model format): <ul> <li>  <code>shape</code>: Input shape, for example <code>{"input_1": {"shape": [1,224,224,3]}}</code>. In addition to static input shapes, CoreML converter supports Flexible input shapes: <ul> <li> Range Dimension. You can use the Range Dimension feature if you know the input shape will be within some specific interval in that dimension, for example: <code>{"input_1": {"shape": ["1..10", 224, 224, 3]}}</code>  </li> <li> Enumerated shapes. Sometimes, the models are trained to work only on a select set of inputs. You can enumerate all supported input shapes, for example: <code>{"input_1": {"shape": [[1, 224, 224, 3], [1, 160, 160, 3]]}}</code>  </li> </ul> </li> <li>  <code>default_shape</code>: Default input shape. You can set a default shape during conversion for both Range Dimension and Enumerated Shapes. For example <code>{"input_1": {"shape": ["1..10", 224, 224, 3], "default_shape": [1, 224, 224, 3]}}</code>  </li> <li>  <code>type</code>: Input type. Allowed values: <code>Image</code> and <code>Tensor</code>. By default, the converter generates an ML Model with inputs of type Tensor (MultiArray). User can set input type to be Image. Image input type requires additional input parameters such as <code>bias</code> and <code>scale</code>. </li> <li>  <code>bias</code>: If the input type is an Image, you need to provide the bias vector. </li> <li>  <code>scale</code>: If the input type is an Image, you need to provide a scale factor. </li> </ul> CoreML <code>ClassifierConfig</code> parameters can be specified using <a>OutputConfig$CompilerOptions</a>. CoreML converter supports Tensorflow and PyTorch models. CoreML conversion examples: <ul> <li> Tensor type input: <ul> <li>  <code>"DataInputConfig": {"input_1": {"shape": [[1,224,224,3], [1,160,160,3]], "default_shape": [1,224,224,3]}}</code>  </li> </ul> </li> <li> Tensor type input without input name (PyTorch): <ul> <li>  <code>"DataInputConfig": [{"shape": [[1,3,224,224], [1,3,160,160]], "default_shape": [1,3,224,224]}]</code>  </li> </ul> </li> <li> Image type input: <ul> <li>  <code>"DataInputConfig": {"input_1": {"shape": [[1,224,224,3], [1,160,160,3]], "default_shape": [1,224,224,3], "type": "Image", "bias": [-1,-1,-1], "scale": 0.007843137255}}</code>  </li> <li>  <code>"CompilerOptions": {"class_labels": "imagenet_labels_1000.txt"}</code>  </li> </ul> </li> <li> Image type input without input name (PyTorch): <ul> <li>  <code>"DataInputConfig": [{"shape": [[1,3,224,224], [1,3,160,160]], "default_shape": [1,3,224,224], "type": "Image", "bias": [-1,-1,-1], "scale": 0.007843137255}]</code>  </li> <li>  <code>"CompilerOptions": {"class_labels": "imagenet_labels_1000.txt"}</code>  </li> </ul> </li> </ul> Depending on the model format, <code>DataInputConfig</code> requires the following parameters for <code>ml_eia2</code> <a href="https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_OutputConfig.html#sagemaker-Type-OutputConfig-TargetDevice">OutputConfig:TargetDevice</a>. <ul> <li> For TensorFlow models saved in the SavedModel format, specify the input names from <code>signature_def_key</code> and the input model shapes for <code>DataInputConfig</code>. Specify the <code>signature_def_key</code> in <a href="https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_OutputConfig.html#sagemaker-Type-OutputConfig-CompilerOptions"> <code>OutputConfig:CompilerOptions</code> </a> if the model does not use TensorFlow's default signature def key. For example: <ul> <li>  <code>"DataInputConfig": {"inputs": [1, 224, 224, 3]}</code>  </li> <li>  <code>"CompilerOptions": {"signature_def_key": "serving_custom"}</code>  </li> </ul> </li> <li> For TensorFlow models saved as a frozen graph, specify the input tensor names and shapes in <code>DataInputConfig</code> and the output tensor names for <code>output_names</code> in <a href="https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_OutputConfig.html#sagemaker-Type-OutputConfig-CompilerOptions"> <code>OutputConfig:CompilerOptions</code> </a>. For example: <ul> <li>  <code>"DataInputConfig": {"input_tensor:0": [1, 224, 224, 3]}</code>  </li> <li>  <code>"CompilerOptions": {"output_names": ["output_tensor:0"]}</code>  </li> </ul> </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Uri</i> The S3 path where the model artifacts, which result from model training, are stored. This path must point to a single gzip compressed tar archive (.tar.gz suffix).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The Amazon Web Services Key Management Service key (Amazon Web Services KMS) that Amazon SageMaker uses to encrypt your output models with Amazon S3 server-side encryption after compilation job. If you don't provide a KMS key ID, Amazon SageMaker uses the default KMS key for Amazon S3 for your role's account. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html">KMS-Managed Encryption Keys</a> in the <i>Amazon Simple Storage Service Developer Guide.</i>  The KmsKeyId can be any of the following formats:  <ul> <li> Key ID: <code>1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> <li> Key ARN: <code>arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> <li> Alias name: <code>alias/ExampleAlias</code>  </li> <li> Alias name ARN: <code>arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CompilerOptions</i> Specifies additional parameters for compiler options in JSON format. The compiler options are <code>TargetPlatform</code> specific. It is required for NVIDIA accelerators and highly recommended for CPU compilations. For any other cases, it is optional to specify <code>CompilerOptions.</code>  <ul> <li>  <code>DTYPE</code>: Specifies the data type for the input. When compiling for <code>ml_*</code> (except for <code>ml_inf</code>) instances using PyTorch framework, provide the data type (dtype) of the model's input. <code>"float32"</code> is used if <code>"DTYPE"</code> is not specified. Options for data type are: <ul> <li> float32: Use either <code>"float"</code> or <code>"float32"</code>. </li> <li> int64: Use either <code>"int64"</code> or <code>"long"</code>. </li> </ul>  For example, <code>{"dtype" : "float32"}</code>. </li> <li>  <code>CPU</code>: Compilation for CPU supports the following compiler options. <ul> <li>  <code>mcpu</code>: CPU micro-architecture. For example, <code>{'mcpu': 'skylake-avx512'}</code>  </li> <li>  <code>mattr</code>: CPU flags. For example, <code>{'mattr': ['+neon', '+vfpv4']}</code>  </li> </ul> </li> <li>  <code>ARM</code>: Details of ARM CPU compilations. <ul> <li>  <code>NEON</code>: NEON is an implementation of the Advanced SIMD extension used in ARMv7 processors. For example, add <code>{'mattr': ['+neon']}</code> to the compiler options if compiling for ARM 32-bit platform with the NEON support. </li> </ul> </li> <li>  <code>NVIDIA</code>: Compilation for NVIDIA GPU supports the following compiler options. <ul> <li>  <code>gpu_code</code>: Specifies the targeted architecture. </li> <li>  <code>trt-ver</code>: Specifies the TensorRT versions in x.y.z. format. </li> <li>  <code>cuda-ver</code>: Specifies the CUDA version in x.y format. </li> </ul> For example, <code>{'gpu-code': 'sm_72', 'trt-ver': '6.0.1', 'cuda-ver': '10.1'}</code>  </li> <li>  <code>ANDROID</code>: Compilation for the Android OS supports the following compiler options: <ul> <li>  <code>ANDROID_PLATFORM</code>: Specifies the Android API levels. Available levels range from 21 to 29. For example, <code>{'ANDROID_PLATFORM': 28}</code>. </li> <li>  <code>mattr</code>: Add <code>{'mattr': ['+neon']}</code> to compiler options if compiling for ARM 32-bit platform with NEON support. </li> </ul> </li> <li>  <code>INFERENTIA</code>: Compilation for target ml_inf1 uses compiler options passed in as a JSON string. For example, <code>"CompilerOptions": "\"--verbose 1 --num-neuroncores 2 -O2\""</code>.  For information about supported compiler options, see <a href="https://github.com/aws/aws-neuron-sdk/blob/master/docs/neuron-cc/command-line-reference.md"> Neuron Compiler CLI</a>.  </li> <li>  <code>CoreML</code>: Compilation for the CoreML <a>OutputConfig$TargetDevice</a> supports the following compiler options: <ul> <li>  <code>class_labels</code>: Specifies the classification labels file name inside input tar.gz file. For example, <code>{"class_labels": "imagenet_labels_1000.txt"}</code>. Labels inside the txt file should be separated by newlines. </li> </ul> </li> <li>  <code>EIA</code>: Compilation for the Elastic Inference Accelerator supports the following compiler options: <ul> <li>  <code>precision_mode</code>: Specifies the precision of compiled artifacts. Supported values are <code>"FP16"</code> and <code>"FP32"</code>. Default is <code>"FP32"</code>. </li> <li>  <code>signature_def_key</code>: Specifies the signature to use for models in SavedModel format. Defaults is TensorFlow's default signature def key. </li> <li>  <code>output_names</code>: Specifies a list of output tensor names for models in FrozenGraph format. Set at most one API field, either: <code>signature_def_key</code> or <code>output_names</code>. </li> </ul> For example: <code>{"precision_mode": "FP32", "output_names": ["output:0"]}</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetPlatform</i> Contains information about a target platform that you want your model to run on, such as OS, architecture, and accelerators. It is an alternative of <code>TargetDevice</code>. The following examples show how to configure the <code>TargetPlatform</code> and <code>CompilerOptions</code> JSON strings for popular target platforms:  <ul> <li> Raspberry Pi 3 Model B+  <code>"TargetPlatform": {"Os": "LINUX", "Arch": "ARM_EABIHF"},</code>   <code> "CompilerOptions": {'mattr': ['+neon']}</code>  </li> <li> Jetson TX2  <code>"TargetPlatform": {"Os": "LINUX", "Arch": "ARM64", "Accelerator": "NVIDIA"},</code>   <code> "CompilerOptions": {'gpu-code': 'sm_62', 'trt-ver': '6.0.1', 'cuda-ver': '10.0'}</code>  </li> <li> EC2 m5.2xlarge instance OS  <code>"TargetPlatform": {"Os": "LINUX", "Arch": "X86_64", "Accelerator": "NVIDIA"},</code>   <code> "CompilerOptions": {'mcpu': 'skylake-avx512'}</code>  </li> <li> RK3399  <code>"TargetPlatform": {"Os": "LINUX", "Arch": "ARM64", "Accelerator": "MALI"}</code>  </li> <li> ARMv7 phone (CPU)  <code>"TargetPlatform": {"Os": "ANDROID", "Arch": "ARM_EABI"},</code>   <code> "CompilerOptions": {'ANDROID_PLATFORM': 25, 'mattr': ['+neon']}</code>  </li> <li> ARMv8 phone (CPU)  <code>"TargetPlatform": {"Os": "ANDROID", "Arch": "ARM64"},</code>   <code> "CompilerOptions": {'ANDROID_PLATFORM': 29}</code>  </li> </ul>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TargetPlatform</b>: Contains information about a target platform that you want your model to run on, such as OS, architecture, and accelerators. It is an alternative of <code>TargetDevice</code>. The following examples show how to configure the <code>TargetPlatform</code> and <code>CompilerOptions</code> JSON strings for popular target platforms:  <ul> <li> Raspberry Pi 3 Model B+  <code>"TargetPlatform": {"Os": "LINUX", "Arch": "ARM_EABIHF"},</code>   <code> "CompilerOptions": {'mattr': ['+neon']}</code>  </li> <li> Jetson TX2  <code>"TargetPlatform": {"Os": "LINUX", "Arch": "ARM64", "Accelerator": "NVIDIA"},</code>   <code> "CompilerOptions": {'gpu-code': 'sm_62', 'trt-ver': '6.0.1', 'cuda-ver': '10.0'}</code>  </li> <li> EC2 m5.2xlarge instance OS  <code>"TargetPlatform": {"Os": "LINUX", "Arch": "X86_64", "Accelerator": "NVIDIA"},</code>   <code> "CompilerOptions": {'mcpu': 'skylake-avx512'}</code>  </li> <li> RK3399  <code>"TargetPlatform": {"Os": "LINUX", "Arch": "ARM64", "Accelerator": "MALI"}</code>  </li> <li> ARMv7 phone (CPU)  <code>"TargetPlatform": {"Os": "ANDROID", "Arch": "ARM_EABI"},</code>   <code> "CompilerOptions": {'ANDROID_PLATFORM': 25, 'mattr': ['+neon']}</code>  </li> <li> ARMv8 phone (CPU)  <code>"TargetPlatform": {"Os": "ANDROID", "Arch": "ARM64"},</code>   <code> "CompilerOptions": {'ANDROID_PLATFORM': 29}</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetDevice</i> Identifies the target device or the machine learning instance that you want to run your model on after the compilation has completed. Alternatively, you can specify OS, architecture, and accelerator using <a>TargetPlatform</a> fields. It can be used instead of <code>TargetPlatform</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3OutputLocation</i> Identifies the S3 bucket where you want Amazon SageMaker to store the model artifacts. For example, <code>s3://bucket-name/key-name-prefix</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Accelerator</i> Specifies a target platform accelerator (optional). <ul> <li>  <code>NVIDIA</code>: Nvidia graphics processing unit. It also requires <code>gpu-code</code>, <code>trt-ver</code>, <code>cuda-ver</code> compiler options </li> <li>  <code>MALI</code>: ARM Mali graphics processor </li> <li>  <code>INTEL_GRAPHICS</code>: Integrated Intel graphics </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Arch</i> Specifies a target platform architecture. <ul> <li>  <code>X86_64</code>: 64-bit version of the x86 instruction set. </li> <li>  <code>X86</code>: 32-bit version of the x86 instruction set. </li> <li>  <code>ARM64</code>: ARMv8 64-bit CPU. </li> <li>  <code>ARM_EABIHF</code>: ARMv7 32-bit, Hard Float. </li> <li>  <code>ARM_EABI</code>: ARMv7 32-bit, Soft Float. Used by Android 32-bit ARM platform. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Os</i> Specifies a target platform OS. <ul> <li>  <code>LINUX</code>: Linux-based operating systems. </li> <li>  <code>ANDROID</code>: Android operating systems. Android API level can be specified using the <code>ANDROID_PLATFORM</code> compiler option. For example, <code>"CompilerOptions": {'ANDROID_PLATFORM': 28}</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Subnets</i> The ID of the subnets in the VPC that you want to connect the compilation job to for accessing the model in Amazon S3.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> The VPC security group IDs. IDs have the form of <code>sg-xxxxxxxx</code>. Specify the security groups for the VPC that is specified in the <code>Subnets</code> field.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxWaitTimeInSeconds</i> The maximum length of time, in seconds, that a managed Spot training job has to complete. It is the amount of time spent waiting for Spot capacity plus the amount of time the job can run. It must be equal to or greater than <code>MaxRuntimeInSeconds</code>. If the job does not complete during this time, Amazon SageMaker ends the job. When <code>RetryStrategy</code> is specified in the job request, <code>MaxWaitTimeInSeconds</code> specifies the maximum time for all of the attempts in total, not each individual attempt.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxRuntimeInSeconds</i> The maximum length of time, in seconds, that a training or compilation job can run. If the job does not complete during this time, Amazon SageMaker ends the job. When <code>RetryStrategy</code> is specified in the job request, <code>MaxRuntimeInSeconds</code> specifies the maximum time for all of the attempts in total, not each individual attempt. The default value is 1 day. The maximum value is 28 days.<br/>
        :return: CompilationJobArn:  If the action is successful, the service sends back an HTTP 200 response. Amazon SageMaker returns the following data in JSON format: <ul> <li>  <code>CompilationJobArn</code>: The Amazon Resource Name (ARN) of the compiled job. </li> </ul><br/>        """
        pass

    def create_context(self, ContextType: str, Source: ContextSource, ContextName: str, Description: str=None, Properties: LineageEntityParameters=None, Tags: List[Tag]=None) -> CreateContextResponse:
        r"""Creates a <i>context</i>. A context is a lineage tracking entity that represents a logical grouping of other tracking or experiment entities. Some examples are an endpoint and a model package. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/lineage-tracking.html">Amazon SageMaker ML Lineage Tracking</a>. <note>  <code>CreateContext</code> can only be invoked from within an SageMaker managed environment. This includes SageMaker training jobs, processing jobs, transform jobs, and SageMaker notebooks. A call to <code>CreateContext</code> from outside one of these environments results in an error. </note>

        :param self:
        :param Tags:  A list of tags to apply to the context.<br/>Properties:  A list of properties to add to the context.<br/>Description:  The description of the context.<br/>ContextType:  The context type.<br/>Source:  The source type, ID, and URI.:<br/>ContextName:  The name of the context. Must be unique to your account in an Amazon Web Services Region.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceId</i> The ID of the source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceType</i> The type of the source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceUri</i> The URI of the source.<br/>
        :return: ContextArn:  The Amazon Resource Name (ARN) of the context.<br/>        """
        pass

    def create_data_quality_job_definition(self, RoleArn: str, JobResources: MonitoringResources, DataQualityJobOutputConfig: MonitoringOutputConfig, DataQualityJobInput: DataQualityJobInput, DataQualityAppSpecification: DataQualityAppSpecification, JobDefinitionName: str, DataQualityBaselineConfig: DataQualityBaselineConfig=None, NetworkConfig: MonitoringNetworkConfig=None, StoppingCondition: MonitoringStoppingCondition=None, Tags: List[Tag]=None) -> CreateDataQualityJobDefinitionResponse:
        r"""Creates a definition for a job that monitors data quality and drift. For information about model monitor, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/model-monitor.html">Amazon SageMaker Model Monitor</a>.

        :param self:
        :param Tags:  (Optional) An array of key-value pairs. For more information, see <a href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html#allocation-whatURL">Using Cost Allocation Tags</a> in the <i>Amazon Web Services Billing and Cost Management User Guide</i>.<br/>StoppingCondition:  A time limit for how long the monitoring job is allowed to run before stopping.:<br/>RoleArn:  The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can assume to perform tasks on your behalf.<br/>NetworkConfig:  Specifies networking configuration for the monitoring job.:<br/>JobResources:  Identifies the resources to deploy for a monitoring job.:<br/>DataQualityJobOutputConfig:  The output configuration for monitoring jobs.:<br/>DataQualityJobInput:  A list of inputs for the monitoring job. Currently endpoints are supported as monitoring inputs.:<br/>DataQualityAppSpecification:  Specifies the container that runs the monitoring job.:<br/>DataQualityBaselineConfig:  Configures the constraints and baselines for the monitoring job.:<br/>JobDefinitionName:  The name for the monitoring job definition.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatisticsResource</i> The statistics resource for a monitoring job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StatisticsResource</b>: The statistics resource for a monitoring job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConstraintsResource</i> The constraints resource for a monitoring job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ConstraintsResource</b>: The constraints resource for a monitoring job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BaseliningJobName</i> The name of the job that performs baselining for the data quality monitoring job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Uri</i> The Amazon S3 URI for the constraints resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Uri</i> The Amazon S3 URI for the statistics resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Environment</i> Sets the environment variables in the container that the monitoring job runs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PostAnalyticsProcessorSourceUri</i> An Amazon S3 URI to a script that is called after analysis has been performed. Applicable only for the built-in (first party) containers.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecordPreprocessorSourceUri</i> An Amazon S3 URI to a script that is called per row prior to running analysis. It can base64 decode the payload and convert it into a flatted json so that the built-in container can use the converted data. Applicable only for the built-in (first party) containers.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ContainerArguments</i> The arguments to send to the container that the monitoring job runs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ContainerEntrypoint</i> The entrypoint for a container used to run a monitoring job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImageUri</i> The container image that the data quality monitoring job runs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointInput</i> Input object for the endpoint&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EndpointInput</b>: Input object for the endpoint<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EndTimeOffset</i> If specified, monitoring jobs substract this time from the end time. For information about using offsets for scheduling monitoring jobs, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/model-monitor-model-quality-schedule.html">Schedule Model Quality Monitoring Jobs</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StartTimeOffset</i> If specified, monitoring jobs substract this time from the start time. For information about using offsets for scheduling monitoring jobs, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/model-monitor-model-quality-schedule.html">Schedule Model Quality Monitoring Jobs</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ProbabilityThresholdAttribute</i> The threshold for the class probability to be evaluated as a positive result.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ProbabilityAttribute</i> In a classification problem, the attribute that represents the class probability.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InferenceAttribute</i> The attribute of the input data that represents the ground truth label.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FeaturesAttribute</i> The attributes of the input data that are the input features.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3DataDistributionType</i> Whether input data distributed in Amazon S3 is fully replicated or sharded by an S3 key. Defaults to <code>FullyReplicated</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3InputMode</i> Whether the <code>Pipe</code> or <code>File</code> is used as the input mode for transfering data for the monitoring job. <code>Pipe</code> mode is recommended for large datasets. <code>File</code> mode is useful for small files that fit in memory. Defaults to <code>File</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LocalPath</i> Path to the filesystem where the endpoint data is available to the container.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointName</i> An endpoint in customer's account which has enabled <code>DataCaptureConfig</code> enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The Amazon Web Services Key Management Service (Amazon Web Services KMS) key that Amazon SageMaker uses to encrypt the model artifacts at rest using Amazon S3 server-side encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MonitoringOutputs</i> Monitoring outputs for monitoring jobs. This is where the output of the periodic monitoring jobs is uploaded.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterConfig</i> The configuration for the cluster resources used to run the processing job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ClusterConfig</b>: The configuration for the cluster resources used to run the processing job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VolumeKmsKeyId</i> The Amazon Web Services Key Management Service (Amazon Web Services KMS) key that Amazon SageMaker uses to encrypt data on the storage volume attached to the ML compute instance(s) that run the model monitoring job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VolumeSizeInGB</i> The size of the ML storage volume, in gigabytes, that you want to provision. You must specify sufficient ML storage for your scenario.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceType</i> The ML compute instance type for the processing job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceCount</i> The number of ML compute instances to use in the model monitoring job. For distributed processing jobs, specify a value greater than 1. The default value is 1.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcConfig</i> Specifies a VPC that your training jobs and hosted models have access to. Control access to and from your training and model containers by configuring the VPC. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/host-vpc.html">Protect Endpoints by Using an Amazon Virtual Private Cloud</a> and <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/train-vpc.html">Protect Training Jobs by Using an Amazon Virtual Private Cloud</a>. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>VpcConfig</b>: Specifies a VPC that your training jobs and hosted models have access to. Control access to and from your training and model containers by configuring the VPC. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/host-vpc.html">Protect Endpoints by Using an Amazon Virtual Private Cloud</a> and <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/train-vpc.html">Protect Training Jobs by Using an Amazon Virtual Private Cloud</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableNetworkIsolation</i> Whether to allow inbound and outbound network calls to and from the containers used for the monitoring job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableInterContainerTrafficEncryption</i> Whether to encrypt all communications between the instances used for the monitoring jobs. Choose <code>True</code> to encrypt communications. Encryption provides greater security for distributed jobs, but the processing might take longer.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Subnets</i> The ID of the subnets in the VPC to which you want to connect your training job or model. For information about the availability of specific instance types, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/instance-types-az.html">Supported Instance Types and Availability Zones</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> The VPC security group IDs, in the form sg-xxxxxxxx. Specify the security groups for the VPC that is specified in the <code>Subnets</code> field.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxRuntimeInSeconds</i> The maximum runtime allowed in seconds. <note> The <code>MaxRuntimeInSeconds</code> cannot exceed the frequency of the job. For data quality and model explainability, this can be up to 3600 seconds for an hourly schedule. For model bias and model quality hourly schedules, this can be up to 1800 seconds. </note><br/>
        :return: JobDefinitionArn:  The Amazon Resource Name (ARN) of the job definition.<br/>        """
        pass

    def create_device_fleet(self, OutputConfig: EdgeOutputConfig, DeviceFleetName: str, RoleArn: str=None, Description: str=None, Tags: List[Tag]=None, EnableIotRoleAlias: EnableIotRoleAlias=None):
        r"""Creates a device fleet.

        :param self:
        :param EnableIotRoleAlias:  Whether to create an Amazon Web Services IoT Role Alias during device fleet creation. The name of the role alias generated will match this pattern: "SageMakerEdge-{DeviceFleetName}". For example, if your device fleet is called "demo-fleet", the name of the role alias will be "SageMakerEdge-demo-fleet".<br/>Tags:  Creates tags for the specified fleet.<br/>OutputConfig:  The output configuration for storing sample data collected by the fleet.:<br/>Description:  A description of the fleet.<br/>RoleArn:  The Amazon Resource Name (ARN) that has access to Amazon Web Services Internet of Things (IoT).<br/>DeviceFleetName:  The name of the fleet that the device belongs to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PresetDeploymentConfig</i> The configuration used to create deployment artifacts. Specify configuration options with a JSON string. The available configuration options for each type are: <ul> <li>  <code>ComponentName</code> (optional) - Name of the GreenGrass V2 component. If not specified, the default name generated consists of "SagemakerEdgeManager" and the name of your SageMaker Edge Manager packaging job. </li> <li>  <code>ComponentDescription</code> (optional) - Description of the component. </li> <li>  <code>ComponentVersion</code> (optional) - The version of the component. <note> Amazon Web Services IoT Greengrass uses semantic versions for components. Semantic versions follow a<i> major.minor.patch</i> number system. For example, version 1.0.0 represents the first major release for a component. For more information, see the <a href="https://semver.org/">semantic version specification</a>. </note> </li> <li>  <code>PlatformOS</code> (optional) - The name of the operating system for the platform. Supported platforms include Windows and Linux. </li> <li>  <code>PlatformArchitecture</code> (optional) - The processor architecture for the platform.  Supported architectures Windows include: Windows32_x86, Windows64_x64. Supported architectures for Linux include: Linux x86_64, Linux ARMV8. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PresetDeploymentType</i> The deployment type SageMaker Edge Manager will create. Currently only supports Amazon Web Services IoT Greengrass Version 2 components.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The Amazon Web Services Key Management Service (Amazon Web Services KMS) key that Amazon SageMaker uses to encrypt data on the storage volume after compilation job. If you don't provide a KMS key ID, Amazon SageMaker uses the default KMS key for Amazon S3 for your role's account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3OutputLocation</i> The Amazon Simple Storage (S3) bucker URI.<br/>
        :return:         """
        pass

    def create_domain(self, VpcId: str, SubnetIds: List[SubnetId], DefaultUserSettings: UserSettings, AuthMode: str, DomainName: str, Tags: List[Tag]=None, AppNetworkAccessType: str=None, HomeEfsFileSystemKmsKeyId: str=None, KmsKeyId: str=None) -> CreateDomainResponse:
        r"""Creates a <code>Domain</code> used by Amazon SageMaker Studio. A domain consists of an associated Amazon Elastic File System (EFS) volume, a list of authorized users, and a variety of security, application, policy, and Amazon Virtual Private Cloud (VPC) configurations. An Amazon Web Services account is limited to one domain per region. Users within a domain can share notebook files and other artifacts with each other.  <b>EFS storage</b>  When a domain is created, an EFS volume is created for use by all of the users within the domain. Each user receives a private home directory within the EFS volume for notebooks, Git repositories, and data files. SageMaker uses the Amazon Web Services Key Management Service (Amazon Web Services KMS) to encrypt the EFS volume attached to the domain with an Amazon Web Services managed customer master key (CMK) by default. For more control, you can specify a customer managed CMK. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/encryption-at-rest.html">Protect Data at Rest Using Encryption</a>.  <b>VPC configuration</b>  All SageMaker Studio traffic between the domain and the EFS volume is through the specified VPC and subnets. For other Studio traffic, you can specify the <code>AppNetworkAccessType</code> parameter. <code>AppNetworkAccessType</code> corresponds to the network access type that you choose when you onboard to Studio. The following options are available: <ul> <li>  <code>PublicInternetOnly</code> - Non-EFS traffic goes through a VPC managed by Amazon SageMaker, which allows internet access. This is the default value. </li> <li>  <code>VpcOnly</code> - All Studio traffic is through the specified VPC and subnets. Internet access is disabled by default. To allow internet access, you must specify a NAT gateway. When internet access is disabled, you won't be able to run a Studio notebook or to train or host models unless your VPC has an interface endpoint to the SageMaker API and runtime or a NAT gateway and your security groups allow outbound connections. </li> </ul> <important> NFS traffic over TCP on port 2049 needs to be allowed in both inbound and outbound rules in order to launch a SageMaker Studio app successfully. </important> For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/studio-notebooks-and-internet-access.html">Connect SageMaker Studio Notebooks to Resources in a VPC</a>.

        :param self:
        :param KmsKeyId:  SageMaker uses Amazon Web Services KMS to encrypt the EFS volume attached to the domain with an Amazon Web Services managed customer master key (CMK) by default. For more control, specify a customer managed CMK.<br/>HomeEfsFileSystemKmsKeyId:  This member is deprecated and replaced with <code>KmsKeyId</code>.<br/>AppNetworkAccessType:  Specifies the VPC used for non-EFS traffic. The default value is <code>PublicInternetOnly</code>. <ul> <li>  <code>PublicInternetOnly</code> - Non-EFS traffic is through a VPC managed by Amazon SageMaker, which allows direct internet access </li> <li>  <code>VpcOnly</code> - All Studio traffic is through the specified VPC and subnets </li> </ul><br/>Tags:  Tags to associated with the Domain. Each tag consists of a key and an optional value. Tag keys must be unique per resource. Tags are searchable using the <code>Search</code> API. Tags that you specify for the Domain are also added to all Apps that the Domain launches.<br/>VpcId:  The ID of the Amazon Virtual Private Cloud (VPC) that Studio uses for communication.<br/>SubnetIds:  The VPC subnets that Studio uses for communication.<br/>DefaultUserSettings:  The default settings to use to create a user profile when <code>UserSettings</code> isn't specified in the call to the <code>CreateUserProfile</code> API.  <code>SecurityGroups</code> is aggregated when specified in both calls. For all other settings in <code>UserSettings</code>, the values specified in <code>CreateUserProfile</code> take precedence over those specified in <code>CreateDomain</code>.:<br/>AuthMode:  The mode of authentication that members use to access the domain.<br/>DomainName:  A name for the domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TensorBoardAppSettings</i> The TensorBoard app settings.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TensorBoardAppSettings</b>: The TensorBoard app settings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KernelGatewayAppSettings</i> The kernel gateway app settings.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>KernelGatewayAppSettings</b>: The kernel gateway app settings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JupyterServerAppSettings</i> The Jupyter server's app settings.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>JupyterServerAppSettings</b>: The Jupyter server's app settings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SharingSettings</i> Specifies options for sharing SageMaker Studio notebooks.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SharingSettings</b>: Specifies options for sharing SageMaker Studio notebooks.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroups</i> The security groups for the Amazon Virtual Private Cloud (VPC) that Studio uses for communication. Optional when the <code>CreateDomain.AppNetworkAccessType</code> parameter is set to <code>PublicInternetOnly</code>. Required when the <code>CreateDomain.AppNetworkAccessType</code> parameter is set to <code>VpcOnly</code>. Amazon SageMaker adds a security group to allow NFS traffic from SageMaker Studio. Therefore, the number of security groups that you can specify is one less than the maximum number shown.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExecutionRole</i> The execution role for the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3KmsKeyId</i> When <code>NotebookOutputOption</code> is <code>Allowed</code>, the Amazon Web Services Key Management Service (KMS) encryption key ID used to encrypt the notebook cell output in the Amazon S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3OutputPath</i> When <code>NotebookOutputOption</code> is <code>Allowed</code>, the Amazon S3 bucket used to store the shared notebook snapshots.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NotebookOutputOption</i> Whether to include the notebook cell output when sharing the notebook. The default is <code>Disabled</code>.<br/>The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the JupyterServer app.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DefaultResourceSpec</b>: The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the JupyterServer app.The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the KernelGateway app.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DefaultResourceSpec</b>: The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the KernelGateway app.The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DefaultResourceSpec</b>: The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance.
        :return: Url:  The URL to the created domain.<br/>DomainArn:  The Amazon Resource Name (ARN) of the created domain.<br/>        """
        pass

    def create_edge_packaging_job(self, OutputConfig: EdgeOutputConfig, RoleArn: str, ModelVersion: str, ModelName: str, CompilationJobName: str, EdgePackagingJobName: str, ResourceKey: str=None, Tags: List[Tag]=None):
        r"""Starts a SageMaker Edge Manager model packaging job. Edge Manager will use the model artifacts from the Amazon Simple Storage Service bucket that you specify. After the model has been packaged, Amazon SageMaker saves the resulting artifacts to an S3 bucket that you specify.

        :param self:
        :param Tags:  Creates tags for the packaging job.<br/>ResourceKey:  The CMK to use when encrypting the EBS volume the edge packaging job runs on.<br/>OutputConfig:  Provides information about the output location for the packaged model.:<br/>RoleArn:  The Amazon Resource Name (ARN) of an IAM role that enables Amazon SageMaker to download and upload the model, and to contact SageMaker Neo.<br/>ModelVersion:  The version of the model.<br/>ModelName:  The name of the model.<br/>CompilationJobName:  The name of the SageMaker Neo compilation job that will be used to locate model artifacts for packaging.<br/>EdgePackagingJobName:  The name of the edge packaging job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PresetDeploymentConfig</i> The configuration used to create deployment artifacts. Specify configuration options with a JSON string. The available configuration options for each type are: <ul> <li>  <code>ComponentName</code> (optional) - Name of the GreenGrass V2 component. If not specified, the default name generated consists of "SagemakerEdgeManager" and the name of your SageMaker Edge Manager packaging job. </li> <li>  <code>ComponentDescription</code> (optional) - Description of the component. </li> <li>  <code>ComponentVersion</code> (optional) - The version of the component. <note> Amazon Web Services IoT Greengrass uses semantic versions for components. Semantic versions follow a<i> major.minor.patch</i> number system. For example, version 1.0.0 represents the first major release for a component. For more information, see the <a href="https://semver.org/">semantic version specification</a>. </note> </li> <li>  <code>PlatformOS</code> (optional) - The name of the operating system for the platform. Supported platforms include Windows and Linux. </li> <li>  <code>PlatformArchitecture</code> (optional) - The processor architecture for the platform.  Supported architectures Windows include: Windows32_x86, Windows64_x64. Supported architectures for Linux include: Linux x86_64, Linux ARMV8. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PresetDeploymentType</i> The deployment type SageMaker Edge Manager will create. Currently only supports Amazon Web Services IoT Greengrass Version 2 components.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The Amazon Web Services Key Management Service (Amazon Web Services KMS) key that Amazon SageMaker uses to encrypt data on the storage volume after compilation job. If you don't provide a KMS key ID, Amazon SageMaker uses the default KMS key for Amazon S3 for your role's account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3OutputLocation</i> The Amazon Simple Storage (S3) bucker URI.<br/>
        :return:         """
        pass

    def create_endpoint(self, EndpointConfigName: str, EndpointName: str, Tags: List[Tag]=None) -> CreateEndpointOutput:
        r"""Creates an endpoint using the endpoint configuration specified in the request. Amazon SageMaker uses the endpoint to provision resources and deploy models. You create the endpoint configuration with the <a>CreateEndpointConfig</a> API.   Use this API to deploy models using Amazon SageMaker hosting services.  For an example that calls this method when deploying a model to Amazon SageMaker hosting services, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/ex1-deploy-model.html#ex1-deploy-model-boto">Deploy the Model to Amazon SageMaker Hosting Services (Amazon Web Services SDK for Python (Boto 3)).</a>  <note>  You must not delete an <code>EndpointConfig</code> that is in use by an endpoint that is live or while the <code>UpdateEndpoint</code> or <code>CreateEndpoint</code> operations are being performed on the endpoint. To update an endpoint, you must create a new <code>EndpointConfig</code>. </note> The endpoint name must be unique within an Amazon Web Services Region in your Amazon Web Services account.  When it receives the request, Amazon SageMaker creates the endpoint, launches the resources (ML compute instances), and deploys the model(s) on them.  <note> When you call <a>CreateEndpoint</a>, a load call is made to DynamoDB to verify that your endpoint configuration exists. When you read data from a DynamoDB table supporting <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadConsistency.html"> <code>Eventually Consistent Reads</code> </a>, the response might not reflect the results of a recently completed write operation. The response might include some stale data. If the dependent entities are not yet in DynamoDB, this causes a validation error. If you repeat your read request after a short time, the response should return the latest data. So retry logic is recommended to handle these possible issues. We also recommend that customers call <a>DescribeEndpointConfig</a> before calling <a>CreateEndpoint</a> to minimize the potential impact of a DynamoDB eventually consistent read. </note> When Amazon SageMaker receives the request, it sets the endpoint status to <code>Creating</code>. After it creates the endpoint, it sets the status to <code>InService</code>. Amazon SageMaker can then process incoming requests for inferences. To check the status of an endpoint, use the <a>DescribeEndpoint</a> API. If any of the models hosted at this endpoint get model data from an Amazon S3 location, Amazon SageMaker uses Amazon Web Services Security Token Service to download model artifacts from the S3 path you provided. Amazon Web Services STS is activated in your IAM user account by default. If you previously deactivated Amazon Web Services STS for a region, you need to reactivate Amazon Web Services STS for that region. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html">Activating and Deactivating Amazon Web Services STS in an Amazon Web Services Region</a> in the <i>Amazon Web Services Identity and Access Management User Guide</i>. <note>  To add the IAM role policies for using this API operation, go to the <a href="https://console.aws.amazon.com/iam/">IAM console</a>, and choose Roles in the left navigation pane. Search the IAM role that you want to grant access to use the <a>CreateEndpoint</a> and <a>CreateEndpointConfig</a> API operations, add the following policies to the role.  <ul> <li> Option 1: For a full Amazon SageMaker access, search and attach the <code>AmazonSageMakerFullAccess</code> policy. </li> <li> Option 2: For granting a limited access to an IAM role, paste the following Action elements manually into the JSON file of the IAM role:   <code>"Action": ["sagemaker:CreateEndpoint", "sagemaker:CreateEndpointConfig"]</code>   <code>"Resource": [</code>   <code>"arn:aws:sagemaker:region:account-id:endpoint/endpointName"</code>   <code>"arn:aws:sagemaker:region:account-id:endpoint-config/endpointConfigName"</code>   <code>]</code>  For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/api-permissions-reference.html">Amazon SageMaker API Permissions: Actions, Permissions, and Resources Reference</a>. </li> </ul> </note>

        :param self:
        :param Tags:  An array of key-value pairs. You can use tags to categorize your Amazon Web Services resources in different ways, for example, by purpose, owner, or environment. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html">Tagging Amazon Web Services Resources</a>.<br/>EndpointConfigName:  The name of an endpoint configuration. For more information, see <a>CreateEndpointConfig</a>. <br/>EndpointName:  The name of the endpoint.The name must be unique within an Amazon Web Services Region in your Amazon Web Services account. The name is case-insensitive in <code>CreateEndpoint</code>, but the case is preserved and must be matched in .<br/>
        :return: EndpointArn:  The Amazon Resource Name (ARN) of the endpoint.<br/>        """
        pass

    def create_endpoint_config(self, ProductionVariants: List[ProductionVariant], EndpointConfigName: str, DataCaptureConfig: DataCaptureConfig=None, Tags: List[Tag]=None, KmsKeyId: str=None) -> CreateEndpointConfigOutput:
        r"""Creates an endpoint configuration that Amazon SageMaker hosting services uses to deploy models. In the configuration, you identify one or more models, created using the <code>CreateModel</code> API, to deploy and the resources that you want Amazon SageMaker to provision. Then you call the <a>CreateEndpoint</a> API. <note>  Use this API if you want to use Amazon SageMaker hosting services to deploy models into production.  </note> In the request, you define a <code>ProductionVariant</code>, for each model that you want to deploy. Each <code>ProductionVariant</code> parameter also describes the resources that you want Amazon SageMaker to provision. This includes the number and type of ML compute instances to deploy.  If you are hosting multiple models, you also assign a <code>VariantWeight</code> to specify how much traffic you want to allocate to each model. For example, suppose that you want to host two models, A and B, and you assign traffic weight 2 for model A and 1 for model B. Amazon SageMaker distributes two-thirds of the traffic to Model A, and one-third to model B.  For an example that calls this method when deploying a model to Amazon SageMaker hosting services, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/ex1-deploy-model.html#ex1-deploy-model-boto">Deploy the Model to Amazon SageMaker Hosting Services (Amazon Web Services SDK for Python (Boto 3)).</a>  <note> When you call <a>CreateEndpoint</a>, a load call is made to DynamoDB to verify that your endpoint configuration exists. When you read data from a DynamoDB table supporting <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadConsistency.html"> <code>Eventually Consistent Reads</code> </a>, the response might not reflect the results of a recently completed write operation. The response might include some stale data. If the dependent entities are not yet in DynamoDB, this causes a validation error. If you repeat your read request after a short time, the response should return the latest data. So retry logic is recommended to handle these possible issues. We also recommend that customers call <a>DescribeEndpointConfig</a> before calling <a>CreateEndpoint</a> to minimize the potential impact of a DynamoDB eventually consistent read. </note>

        :param self:
        :param KmsKeyId:  The Amazon Resource Name (ARN) of a Amazon Web Services Key Management Service key that Amazon SageMaker uses to encrypt data on the storage volume attached to the ML compute instance that hosts the endpoint. The KmsKeyId can be any of the following formats:  <ul> <li> Key ID: <code>1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> <li> Key ARN: <code>arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> <li> Alias name: <code>alias/ExampleAlias</code>  </li> <li> Alias name ARN: <code>arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias</code>  </li> </ul> The KMS key policy must grant permission to the IAM role that you specify in your <code>CreateEndpoint</code>, <code>UpdateEndpoint</code> requests. For more information, refer to the Amazon Web Services Key Management Service section<a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html"> Using Key Policies in Amazon Web Services KMS </a>  <note> Certain Nitro-based instances include local storage, dependent on the instance type. Local storage volumes are encrypted using a hardware module on the instance. You can't request a <code>KmsKeyId</code> when using an instance type with local storage. If any of the models that you specify in the <code>ProductionVariants</code> parameter use nitro-based instances with local storage, do not specify a value for the <code>KmsKeyId</code> parameter. If you specify a value for <code>KmsKeyId</code> when using any nitro-based instances with local storage, the call to <code>CreateEndpointConfig</code> fails. For a list of instance types that support local instance storage, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#instance-store-volumes">Instance Store Volumes</a>. For more information about local instance storage encryption, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ssd-instance-store.html">SSD Instance Store Volumes</a>. </note><br/>Tags:  An array of key-value pairs. You can use tags to categorize your Amazon Web Services resources in different ways, for example, by purpose, owner, or environment. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html">Tagging Amazon Web Services Resources</a>.<br/>DataCaptureConfig:  <p/>:<br/>ProductionVariants:  An list of <code>ProductionVariant</code> objects, one for each model that you want to host at this endpoint.<br/>EndpointConfigName:  The name of the endpoint configuration. You specify this name in a <a>CreateEndpoint</a> request. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CaptureContentTypeHeader</i> <p/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CaptureContentTypeHeader</b>: <p/><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CaptureOptions</i> <p/><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> <p/><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DestinationS3Uri</i> <p/><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InitialSamplingPercentage</i> <p/><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableCapture</i> <p/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>JsonContentTypes</i> <p/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CsvContentTypes</i> <p/><br/>
        :return: EndpointConfigArn:  The Amazon Resource Name (ARN) of the endpoint configuration. <br/>        """
        pass

    def create_experiment(self, ExperimentName: str, DisplayName: str=None, Description: str=None, Tags: List[Tag]=None) -> CreateExperimentResponse:
        r"""Creates an SageMaker <i>experiment</i>. An experiment is a collection of <i>trials</i> that are observed, compared and evaluated as a group. A trial is a set of steps, called <i>trial components</i>, that produce a machine learning model. The goal of an experiment is to determine the components that produce the best model. Multiple trials are performed, each one isolating and measuring the impact of a change to one or more inputs, while keeping the remaining inputs constant. When you use SageMaker Studio or the SageMaker Python SDK, all experiments, trials, and trial components are automatically tracked, logged, and indexed. When you use the Amazon Web Services SDK for Python (Boto), you must use the logging APIs provided by the SDK. You can add tags to experiments, trials, trial components and then use the <a>Search</a> API to search for the tags. To add a description to an experiment, specify the optional <code>Description</code> parameter. To add a description later, or to change the description, call the <a>UpdateExperiment</a> API. To get a list of all your experiments, call the <a>ListExperiments</a> API. To view an experiment's properties, call the <a>DescribeExperiment</a> API. To get a list of all the trials associated with an experiment, call the <a>ListTrials</a> API. To create a trial call the <a>CreateTrial</a> API.

        :param self:
        :param Tags:  A list of tags to associate with the experiment. You can use <a>Search</a> API to search on the tags.<br/>Description:  The description of the experiment.<br/>DisplayName:  The name of the experiment as displayed. The name doesn't need to be unique. If you don't specify <code>DisplayName</code>, the value in <code>ExperimentName</code> is displayed.<br/>ExperimentName:  The name of the experiment. The name must be unique in your Amazon Web Services account and is not case-sensitive.<br/>
        :return: ExperimentArn:  The Amazon Resource Name (ARN) of the experiment.<br/>        """
        pass

    def create_feature_group(self, FeatureDefinitions: List[FeatureDefinition], EventTimeFeatureName: str, RecordIdentifierFeatureName: str, FeatureGroupName: str, OnlineStoreConfig: OnlineStoreConfig=None, OfflineStoreConfig: OfflineStoreConfig=None, RoleArn: str=None, Description: str=None, Tags: List[Tag]=None) -> CreateFeatureGroupResponse:
        r"""Create a new <code>FeatureGroup</code>. A <code>FeatureGroup</code> is a group of <code>Features</code> defined in the <code>FeatureStore</code> to describe a <code>Record</code>.  The <code>FeatureGroup</code> defines the schema and features contained in the FeatureGroup. A <code>FeatureGroup</code> definition is composed of a list of <code>Features</code>, a <code>RecordIdentifierFeatureName</code>, an <code>EventTimeFeatureName</code> and configurations for its <code>OnlineStore</code> and <code>OfflineStore</code>. Check <a href="https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html">Amazon Web Services service quotas</a> to see the <code>FeatureGroup</code>s quota for your Amazon Web Services account. <important> You must include at least one of <code>OnlineStoreConfig</code> and <code>OfflineStoreConfig</code> to create a <code>FeatureGroup</code>. </important>

        :param self:
        :param Tags:  Tags used to identify <code>Features</code> in each <code>FeatureGroup</code>.<br/>Description:  A free-form description of a <code>FeatureGroup</code>.<br/>RoleArn:  The Amazon Resource Name (ARN) of the IAM execution role used to persist data into the <code>OfflineStore</code> if an <code>OfflineStoreConfig</code> is provided.<br/>OfflineStoreConfig:  Use this to configure an <code>OfflineFeatureStore</code>. This parameter allows you to specify: <ul> <li> The Amazon Simple Storage Service (Amazon S3) location of an <code>OfflineStore</code>. </li> <li> A configuration for an Amazon Web Services Glue or Amazon Web Services Hive data cataolgue.  </li> <li> An KMS encryption key to encrypt the Amazon S3 location used for <code>OfflineStore</code>. </li> </ul> To learn more about this parameter, see <a>OfflineStoreConfig</a>.:<br/>OnlineStoreConfig:  You can turn the <code>OnlineStore</code> on or off by specifying <code>True</code> for the <code>EnableOnlineStore</code> flag in <code>OnlineStoreConfig</code>; the default value is <code>False</code>. You can also include an Amazon Web Services KMS key ID (<code>KMSKeyId</code>) for at-rest encryption of the <code>OnlineStore</code>.:<br/>FeatureDefinitions:  A list of <code>Feature</code> names and types. <code>Name</code> and <code>Type</code> is compulsory per <code>Feature</code>.  Valid feature <code>FeatureType</code>s are <code>Integral</code>, <code>Fractional</code> and <code>String</code>.  <code>FeatureName</code>s cannot be any of the following: <code>is_deleted</code>, <code>write_time</code>, <code>api_invocation_time</code>  You can create up to 2,500 <code>FeatureDefinition</code>s per <code>FeatureGroup</code>.<br/>EventTimeFeatureName:  The name of the feature that stores the <code>EventTime</code> of a <code>Record</code> in a <code>FeatureGroup</code>. An <code>EventTime</code> is a point in time when a new event occurs that corresponds to the creation or update of a <code>Record</code> in a <code>FeatureGroup</code>. All <code>Records</code> in the <code>FeatureGroup</code> must have a corresponding <code>EventTime</code>. An <code>EventTime</code> can be a <code>String</code> or <code>Fractional</code>.  <ul> <li>  <code>Fractional</code>: <code>EventTime</code> feature values must be a Unix timestamp in seconds. </li> <li>  <code>String</code>: <code>EventTime</code> feature values must be an ISO-8601 string in the format. The following formats are supported <code>yyyy-MM-dd'T'HH:mm:ssZ</code> and <code>yyyy-MM-dd'T'HH:mm:ss.SSSZ</code> where <code>yyyy</code>, <code>MM</code>, and <code>dd</code> represent the year, month, and day respectively and <code>HH</code>, <code>mm</code>, <code>ss</code>, and if applicable, <code>SSS</code> represent the hour, month, second and milliseconds respsectively. <code>'T'</code> and <code>Z</code> are constants. </li> </ul><br/>RecordIdentifierFeatureName:  The name of the <code>Feature</code> whose value uniquely identifies a <code>Record</code> defined in the <code>FeatureStore</code>. Only the latest record per identifier value will be stored in the <code>OnlineStore</code>. <code>RecordIdentifierFeatureName</code> must be one of feature definitions' names. You use the <code>RecordIdentifierFeatureName</code> to access data in a <code>FeatureStore</code>. This name: <ul> <li> Must start and end with an alphanumeric character. </li> <li> Can only contains alphanumeric characters, hyphens, underscores. Spaces are not allowed.  </li> </ul><br/>FeatureGroupName:  The name of the <code>FeatureGroup</code>. The name must be unique within an Amazon Web Services Region in an Amazon Web Services account. The name: <ul> <li> Must start and end with an alphanumeric character. </li> <li> Can only contain alphanumeric character and hyphens. Spaces are not allowed.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableOnlineStore</i> Turn <code>OnlineStore</code> off by specifying <code>False</code> for the <code>EnableOnlineStore</code> flag. Turn <code>OnlineStore</code> on by specifying <code>True</code> for the <code>EnableOnlineStore</code> flag.  The default value is <code>False</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityConfig</i> Use to specify KMS Key ID (<code>KMSKeyId</code>) for at-rest encryption of your <code>OnlineStore</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SecurityConfig</b>: Use to specify KMS Key ID (<code>KMSKeyId</code>) for at-rest encryption of your <code>OnlineStore</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The ID of the Amazon Web Services Key Management Service (Amazon Web Services KMS) key that SageMaker Feature Store uses to encrypt the Amazon S3 objects at rest using Amazon S3 server-side encryption. The caller (either IAM user or IAM role) of <code>CreateFeatureGroup</code> must have below permissions to the <code>OnlineStore</code> <code>KmsKeyId</code>: <ul> <li>  <code>"kms:Encrypt"</code>  </li> <li>  <code>"kms:Decrypt"</code>  </li> <li>  <code>"kms:DescribeKey"</code>  </li> <li>  <code>"kms:CreateGrant"</code>  </li> <li>  <code>"kms:RetireGrant"</code>  </li> <li>  <code>"kms:ReEncryptFrom"</code>  </li> <li>  <code>"kms:ReEncryptTo"</code>  </li> <li>  <code>"kms:GenerateDataKey"</code>  </li> <li>  <code>"kms:ListAliases"</code>  </li> <li>  <code>"kms:ListGrants"</code>  </li> <li>  <code>"kms:RevokeGrant"</code>  </li> </ul> The caller (either IAM user or IAM role) to all DataPlane operations (<code>PutRecord</code>, <code>GetRecord</code>, <code>DeleteRecord</code>) must have the following permissions to the <code>KmsKeyId</code>: <ul> <li>  <code>"kms:Decrypt"</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataCatalogConfig</i> The meta data of the Glue table that is autogenerated when an <code>OfflineStore</code> is created. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DataCatalogConfig</b>: The meta data of the Glue table that is autogenerated when an <code>OfflineStore</code> is created. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DisableGlueTableCreation</i> Set to <code>True</code> to disable the automatic creation of an Amazon Web Services Glue table when configuring an <code>OfflineStore</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3StorageConfig</i> The Amazon Simple Storage (Amazon S3) location of <code>OfflineStore</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3StorageConfig</b>: The Amazon Simple Storage (Amazon S3) location of <code>OfflineStore</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ResolvedOutputS3Uri</i> The S3 path where offline records are written.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The Amazon Web Services Key Management Service (KMS) key ID of the key used to encrypt any objects written into the <code>OfflineStore</code> S3 location. The IAM <code>roleARN</code> that is passed as a parameter to <code>CreateFeatureGroup</code> must have below permissions to the <code>KmsKeyId</code>: <ul> <li>  <code>"kms:GenerateDataKey"</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Uri</i> The S3 URI, or location in Amazon S3, of <code>OfflineStore</code>. S3 URIs have a format similar to the following: <code>s3://example-bucket/prefix/</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Database</i> The name of the Glue table database.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Catalog</i> The name of the Glue table catalog.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TableName</i> The name of the Glue table.<br/>
        :return: FeatureGroupArn:  The Amazon Resource Name (ARN) of the <code>FeatureGroup</code>. This is a unique identifier for the feature group. <br/>        """
        pass

    def create_flow_definition(self, RoleArn: str, OutputConfig: FlowDefinitionOutputConfig, HumanLoopConfig: HumanLoopConfig, FlowDefinitionName: str, HumanLoopRequestSource: HumanLoopRequestSource=None, HumanLoopActivationConfig: HumanLoopActivationConfig=None, Tags: List[Tag]=None) -> CreateFlowDefinitionResponse:
        r"""Creates a flow definition.

        :param self:
        :param Tags:  An array of key-value pairs that contain metadata to help you categorize and organize a flow definition. Each tag consists of a key and a value, both of which you define.<br/>RoleArn:  The Amazon Resource Name (ARN) of the role needed to call other services on your behalf. For example, <code>arn:aws:iam::1234567890:role/service-role/AmazonSageMaker-ExecutionRole-20180111T151298</code>.<br/>OutputConfig:  An object containing information about where the human review results will be uploaded.:<br/>HumanLoopConfig:  An object containing information about the tasks the human reviewers will perform.:<br/>HumanLoopActivationConfig:  An object containing information about the events that trigger a human workflow.:<br/>HumanLoopRequestSource:  Container for configuring the source of human task requests. Use to specify if Amazon Rekognition or Amazon Textract is used as an integration source.:<br/>FlowDefinitionName:  The name of your flow definition.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AwsManagedHumanLoopRequestSource</i> Specifies whether Amazon Rekognition or Amazon Textract are used as the integration source. The default field settings and JSON parsing rules are different based on the integration source. Valid values:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HumanLoopActivationConditionsConfig</i> Container structure for defining under what conditions SageMaker creates a human loop.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>HumanLoopActivationConditionsConfig</b>: Container structure for defining under what conditions SageMaker creates a human loop.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HumanLoopActivationConditions</i> JSON expressing use-case specific conditions declaratively. If any condition is matched, atomic tasks are created against the configured work team. The set of conditions is different for Rekognition and Textract. For more information about how to structure the JSON, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/a2i-human-fallback-conditions-json-schema.html">JSON Schema for Human Loop Activation Conditions in Amazon Augmented AI</a> in the <i>Amazon SageMaker Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PublicWorkforceTaskPrice</i> Defines the amount of money paid to an Amazon Mechanical Turk worker for each task performed.  Use one of the following prices for bounding box tasks. Prices are in US dollars and should be based on the complexity of the task; the longer it takes in your initial testing, the more you should offer. <ul> <li> 0.036 </li> <li> 0.048 </li> <li> 0.060 </li> <li> 0.072 </li> <li> 0.120 </li> <li> 0.240 </li> <li> 0.360 </li> <li> 0.480 </li> <li> 0.600 </li> <li> 0.720 </li> <li> 0.840 </li> <li> 0.960 </li> <li> 1.080 </li> <li> 1.200 </li> </ul> Use one of the following prices for image classification, text classification, and custom tasks. Prices are in US dollars. <ul> <li> 0.012 </li> <li> 0.024 </li> <li> 0.036 </li> <li> 0.048 </li> <li> 0.060 </li> <li> 0.072 </li> <li> 0.120 </li> <li> 0.240 </li> <li> 0.360 </li> <li> 0.480 </li> <li> 0.600 </li> <li> 0.720 </li> <li> 0.840 </li> <li> 0.960 </li> <li> 1.080 </li> <li> 1.200 </li> </ul> Use one of the following prices for semantic segmentation tasks. Prices are in US dollars. <ul> <li> 0.840 </li> <li> 0.960 </li> <li> 1.080 </li> <li> 1.200 </li> </ul> Use one of the following prices for Textract AnalyzeDocument Important Form Key Amazon Augmented AI review tasks. Prices are in US dollars. <ul> <li> 2.400  </li> <li> 2.280  </li> <li> 2.160  </li> <li> 2.040  </li> <li> 1.920  </li> <li> 1.800  </li> <li> 1.680  </li> <li> 1.560  </li> <li> 1.440  </li> <li> 1.320  </li> <li> 1.200  </li> <li> 1.080  </li> <li> 0.960  </li> <li> 0.840  </li> <li> 0.720  </li> <li> 0.600  </li> <li> 0.480  </li> <li> 0.360  </li> <li> 0.240  </li> <li> 0.120  </li> <li> 0.072  </li> <li> 0.060  </li> <li> 0.048  </li> <li> 0.036  </li> <li> 0.024  </li> <li> 0.012  </li> </ul> Use one of the following prices for Rekognition DetectModerationLabels Amazon Augmented AI review tasks. Prices are in US dollars. <ul> <li> 1.200  </li> <li> 1.080  </li> <li> 0.960  </li> <li> 0.840  </li> <li> 0.720  </li> <li> 0.600  </li> <li> 0.480  </li> <li> 0.360  </li> <li> 0.240  </li> <li> 0.120  </li> <li> 0.072  </li> <li> 0.060  </li> <li> 0.048  </li> <li> 0.036  </li> <li> 0.024  </li> <li> 0.012  </li> </ul> Use one of the following prices for Amazon Augmented AI custom human review tasks. Prices are in US dollars. <ul> <li> 1.200  </li> <li> 1.080  </li> <li> 0.960  </li> <li> 0.840  </li> <li> 0.720  </li> <li> 0.600  </li> <li> 0.480  </li> <li> 0.360  </li> <li> 0.240  </li> <li> 0.120  </li> <li> 0.072  </li> <li> 0.060  </li> <li> 0.048  </li> <li> 0.036  </li> <li> 0.024  </li> <li> 0.012  </li> </ul>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PublicWorkforceTaskPrice</b>: Defines the amount of money paid to an Amazon Mechanical Turk worker for each task performed.  Use one of the following prices for bounding box tasks. Prices are in US dollars and should be based on the complexity of the task; the longer it takes in your initial testing, the more you should offer. <ul> <li> 0.036 </li> <li> 0.048 </li> <li> 0.060 </li> <li> 0.072 </li> <li> 0.120 </li> <li> 0.240 </li> <li> 0.360 </li> <li> 0.480 </li> <li> 0.600 </li> <li> 0.720 </li> <li> 0.840 </li> <li> 0.960 </li> <li> 1.080 </li> <li> 1.200 </li> </ul> Use one of the following prices for image classification, text classification, and custom tasks. Prices are in US dollars. <ul> <li> 0.012 </li> <li> 0.024 </li> <li> 0.036 </li> <li> 0.048 </li> <li> 0.060 </li> <li> 0.072 </li> <li> 0.120 </li> <li> 0.240 </li> <li> 0.360 </li> <li> 0.480 </li> <li> 0.600 </li> <li> 0.720 </li> <li> 0.840 </li> <li> 0.960 </li> <li> 1.080 </li> <li> 1.200 </li> </ul> Use one of the following prices for semantic segmentation tasks. Prices are in US dollars. <ul> <li> 0.840 </li> <li> 0.960 </li> <li> 1.080 </li> <li> 1.200 </li> </ul> Use one of the following prices for Textract AnalyzeDocument Important Form Key Amazon Augmented AI review tasks. Prices are in US dollars. <ul> <li> 2.400  </li> <li> 2.280  </li> <li> 2.160  </li> <li> 2.040  </li> <li> 1.920  </li> <li> 1.800  </li> <li> 1.680  </li> <li> 1.560  </li> <li> 1.440  </li> <li> 1.320  </li> <li> 1.200  </li> <li> 1.080  </li> <li> 0.960  </li> <li> 0.840  </li> <li> 0.720  </li> <li> 0.600  </li> <li> 0.480  </li> <li> 0.360  </li> <li> 0.240  </li> <li> 0.120  </li> <li> 0.072  </li> <li> 0.060  </li> <li> 0.048  </li> <li> 0.036  </li> <li> 0.024  </li> <li> 0.012  </li> </ul> Use one of the following prices for Rekognition DetectModerationLabels Amazon Augmented AI review tasks. Prices are in US dollars. <ul> <li> 1.200  </li> <li> 1.080  </li> <li> 0.960  </li> <li> 0.840  </li> <li> 0.720  </li> <li> 0.600  </li> <li> 0.480  </li> <li> 0.360  </li> <li> 0.240  </li> <li> 0.120  </li> <li> 0.072  </li> <li> 0.060  </li> <li> 0.048  </li> <li> 0.036  </li> <li> 0.024  </li> <li> 0.012  </li> </ul> Use one of the following prices for Amazon Augmented AI custom human review tasks. Prices are in US dollars. <ul> <li> 1.200  </li> <li> 1.080  </li> <li> 0.960  </li> <li> 0.840  </li> <li> 0.720  </li> <li> 0.600  </li> <li> 0.480  </li> <li> 0.360  </li> <li> 0.240  </li> <li> 0.120  </li> <li> 0.072  </li> <li> 0.060  </li> <li> 0.048  </li> <li> 0.036  </li> <li> 0.024  </li> <li> 0.012  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TaskKeywords</i> Keywords used to describe the task so that workers can discover the task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TaskTimeLimitInSeconds</i> The amount of time that a worker has to complete a task. The default value is 3,600 seconds (1 hour).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TaskAvailabilityLifetimeInSeconds</i> The length of time that a task remains available for review by human workers.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TaskCount</i> The number of distinct workers who will perform the same task on each object. For example, if <code>TaskCount</code> is set to <code>3</code> for an image classification labeling job, three workers will classify each input image. Increasing <code>TaskCount</code> can improve label accuracy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TaskDescription</i> A description for the human worker task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TaskTitle</i> A title for the human worker task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HumanTaskUiArn</i> The Amazon Resource Name (ARN) of the human task user interface. You can use standard HTML and Crowd HTML Elements to create a custom worker task template. You use this template to create a human task UI. To learn how to create a custom HTML template, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/a2i-custom-templates.html">Create Custom Worker Task Template</a>. To learn how to create a human task UI, which is a worker task template that can be used in a flow definition, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/a2i-worker-template-console.html">Create and Delete a Worker Task Templates</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WorkteamArn</i> Amazon Resource Name (ARN) of a team of workers. To learn more about the types of workforces and work teams you can create and use with Amazon A2I, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sms-workforce-management.html">Create and Manage Workforces</a>.<br/>Defines the amount of money paid to an Amazon Mechanical Turk worker in United States dollars.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AmountInUsd</b>: Defines the amount of money paid to an Amazon Mechanical Turk worker in United States dollars.&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The Amazon Key Management Service (KMS) key ID for server-side encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3OutputPath</i> The Amazon S3 path where the object containing human output will be made available. To learn more about the format of Amazon A2I output data, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/a2i-output-data.html">Amazon A2I Output Data</a>.<br/>
        :return: FlowDefinitionArn:  The Amazon Resource Name (ARN) of the flow definition you create.<br/>        """
        pass

    def create_human_task_ui(self, UiTemplate: UiTemplate, HumanTaskUiName: str, Tags: List[Tag]=None) -> CreateHumanTaskUiResponse:
        r"""Defines the settings you will use for the human review workflow user interface. Reviewers will see a three-panel interface with an instruction area, the item to review, and an input area.

        :param self:
        :param Tags:  An array of key-value pairs that contain metadata to help you categorize and organize a human review workflow user interface. Each tag consists of a key and a value, both of which you define.<br/>UiTemplate:  The Liquid template for the worker user interface.:<br/>HumanTaskUiName:  The name of the user interface you are creating.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Content</i> The content of the Liquid template for the worker user interface.<br/>
        :return: HumanTaskUiArn:  The Amazon Resource Name (ARN) of the human review workflow user interface you create.<br/>        """
        pass

    def create_hyper_parameter_tuning_job(self, HyperParameterTuningJobConfig: HyperParameterTuningJobConfig, HyperParameterTuningJobName: str, TrainingJobDefinition: HyperParameterTrainingJobDefinition=None, TrainingJobDefinitions: List[HyperParameterTrainingJobDefinition]=None, WarmStartConfig: HyperParameterTuningJobWarmStartConfig=None, Tags: List[Tag]=None) -> CreateHyperParameterTuningJobResponse:
        r"""Starts a hyperparameter tuning job. A hyperparameter tuning job finds the best version of a model by running many training jobs on your dataset using the algorithm you choose and values for hyperparameters within ranges that you specify. It then chooses the hyperparameter values that result in a model that performs the best, as measured by an objective metric that you choose.

        :param self:
        :param Tags:  An array of key-value pairs. You can use tags to categorize your Amazon Web Services resources in different ways, for example, by purpose, owner, or environment. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html">Tagging Amazon Web Services Resources</a>. Tags that you specify for the tuning job are also added to all training jobs that the tuning job launches.<br/>WarmStartConfig:  Specifies the configuration for starting the hyperparameter tuning job using one or more previous tuning jobs as a starting point. The results of previous tuning jobs are used to inform which combinations of hyperparameters to search over in the new tuning job. All training jobs launched by the new hyperparameter tuning job are evaluated by using the objective metric. If you specify <code>IDENTICAL_DATA_AND_ALGORITHM</code> as the <code>WarmStartType</code> value for the warm start configuration, the training job that performs the best in the new tuning job is compared to the best training jobs from the parent tuning jobs. From these, the training job that performs the best as measured by the objective metric is returned as the overall best training job. <note> All training jobs launched by parent hyperparameter tuning jobs and the new hyperparameter tuning jobs count against the limit of training jobs for the tuning job. </note>:<br/>TrainingJobDefinitions:  A list of the <a>HyperParameterTrainingJobDefinition</a> objects launched for this tuning job.<br/>TrainingJobDefinition:  The <a>HyperParameterTrainingJobDefinition</a> object that describes the training jobs that this tuning job launches, including static hyperparameters, input data configuration, output data configuration, resource configuration, and stopping condition.:<br/>HyperParameterTuningJobConfig:  The <a>HyperParameterTuningJobConfig</a> object that describes the tuning job, including the search strategy, the objective metric used to evaluate training jobs, ranges of parameters to search, and resource limits for the tuning job. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-how-it-works.html">How Hyperparameter Tuning Works</a>.:<br/>HyperParameterTuningJobName:  The name of the tuning job. This name is the prefix for the names of all training jobs that this tuning job launches. The name must be unique within the same Amazon Web Services account and Amazon Web Services Region. The name must have 1 to 32 characters. Valid characters are a-z, A-Z, 0-9, and : + = @ _ % - (hyphen). The name is not case sensitive.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TuningJobCompletionCriteria</i> The tuning job's completion criteria.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TuningJobCompletionCriteria</b>: The tuning job's completion criteria.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TrainingJobEarlyStoppingType</i> Specifies whether to use early stopping for training jobs launched by the hyperparameter tuning job. This can be one of the following values (the default value is <code>OFF</code>): <dl> <dt>OFF</dt> <dd> Training jobs launched by the hyperparameter tuning job do not use early stopping. </dd> <dt>AUTO</dt> <dd> Amazon SageMaker stops training jobs launched by the hyperparameter tuning job when they are unlikely to perform better than previously completed training jobs. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-early-stopping.html">Stop Training Jobs Early</a>. </dd> </dl><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ParameterRanges</i> The <a>ParameterRanges</a> object that specifies the ranges of hyperparameters that this tuning job searches.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ParameterRanges</b>: The <a>ParameterRanges</a> object that specifies the ranges of hyperparameters that this tuning job searches.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceLimits</i> The <a>ResourceLimits</a> object that specifies the maximum number of training jobs and parallel training jobs for this tuning job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ResourceLimits</b>: The <a>ResourceLimits</a> object that specifies the maximum number of training jobs and parallel training jobs for this tuning job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HyperParameterTuningJobObjective</i> The <a>HyperParameterTuningJobObjective</a> object that specifies the objective metric for this tuning job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>HyperParameterTuningJobObjective</b>: The <a>HyperParameterTuningJobObjective</a> object that specifies the objective metric for this tuning job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Strategy</i> Specifies how hyperparameter tuning chooses the combinations of hyperparameter values to use for the training job it launches. To use the Bayesian search strategy, set this to <code>Bayesian</code>. To randomly search, set it to <code>Random</code>. For information about search strategies, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-how-it-works.html">How Hyperparameter Tuning Works</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MetricName</i> The name of the metric to use for the objective metric.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> Whether to minimize or maximize the objective metric.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxParallelTrainingJobs</i> The maximum number of concurrent training jobs that a hyperparameter tuning job can launch.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxNumberOfTrainingJobs</i> The maximum number of training jobs that a hyperparameter tuning job can launch.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CategoricalParameterRanges</i> The array of <a>CategoricalParameterRange</a> objects that specify ranges of categorical hyperparameters that a hyperparameter tuning job searches.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ContinuousParameterRanges</i> The array of <a>ContinuousParameterRange</a> objects that specify ranges of continuous hyperparameters that a hyperparameter tuning job searches.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IntegerParameterRanges</i> The array of <a>IntegerParameterRange</a> objects that specify ranges of integer hyperparameters that a hyperparameter tuning job searches.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetObjectiveMetricValue</i> The value of the objective metric.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RetryStrategy</i> The number of times to retry the job when the job fails due to an <code>InternalServerError</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RetryStrategy</b>: The number of times to retry the job when the job fails due to an <code>InternalServerError</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CheckpointConfig</i> Contains information about the output location for managed spot training checkpoint data. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CheckpointConfig</b>: Contains information about the output location for managed spot training checkpoint data. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableManagedSpotTraining</i> A Boolean indicating whether managed spot training is enabled (<code>True</code>) or not (<code>False</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableInterContainerTrafficEncryption</i> To encrypt all communications between ML compute instances in distributed training, choose <code>True</code>. Encryption provides greater security for distributed training, but training might take longer. How long it takes depends on the amount of communication between compute instances, especially if you use a deep learning algorithm in distributed training.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableNetworkIsolation</i> Isolates the training container. No inbound or outbound network calls can be made, except for calls between peers within a training cluster for distributed training. If network isolation is used for training jobs that are configured to use a VPC, Amazon SageMaker downloads and uploads customer data and model artifacts through the specified VPC, but the training container does not have network access.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StoppingCondition</i> Specifies a limit to how long a model hyperparameter training job can run. It also specifies how long a managed spot training job has to complete. When the job reaches the time limit, Amazon SageMaker ends the training job. Use this API to cap model training costs.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StoppingCondition</b>: Specifies a limit to how long a model hyperparameter training job can run. It also specifies how long a managed spot training job has to complete. When the job reaches the time limit, Amazon SageMaker ends the training job. Use this API to cap model training costs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceConfig</i> The resources, including the compute instances and storage volumes, to use for the training jobs that the tuning job launches. Storage volumes store model artifacts and incremental states. Training algorithms might also use storage volumes for scratch space. If you want Amazon SageMaker to use the storage volume to store the training data, choose <code>File</code> as the <code>TrainingInputMode</code> in the algorithm specification. For distributed training algorithms, specify an instance count greater than 1.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ResourceConfig</b>: The resources, including the compute instances and storage volumes, to use for the training jobs that the tuning job launches. Storage volumes store model artifacts and incremental states. Training algorithms might also use storage volumes for scratch space. If you want Amazon SageMaker to use the storage volume to store the training data, choose <code>File</code> as the <code>TrainingInputMode</code> in the algorithm specification. For distributed training algorithms, specify an instance count greater than 1.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OutputDataConfig</i> Specifies the path to the Amazon S3 bucket where you store model artifacts from the training jobs that the tuning job launches.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>OutputDataConfig</b>: Specifies the path to the Amazon S3 bucket where you store model artifacts from the training jobs that the tuning job launches.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcConfig</i> The <a>VpcConfig</a> object that specifies the VPC that you want the training jobs that this hyperparameter tuning job launches to connect to. Control access to and from your training container by configuring the VPC. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/train-vpc.html">Protect Training Jobs by Using an Amazon Virtual Private Cloud</a>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>VpcConfig</b>: The <a>VpcConfig</a> object that specifies the VPC that you want the training jobs that this hyperparameter tuning job launches to connect to. Control access to and from your training container by configuring the VPC. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/train-vpc.html">Protect Training Jobs by Using an Amazon Virtual Private Cloud</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InputDataConfig</i> An array of <a>Channel</a> objects that specify the input for the training jobs that the tuning job launches.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The Amazon Resource Name (ARN) of the IAM role associated with the training jobs that the tuning job launches.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AlgorithmSpecification</i> The <a>HyperParameterAlgorithmSpecification</a> object that specifies the resource algorithm to use for the training jobs that the tuning job launches.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AlgorithmSpecification</b>: The <a>HyperParameterAlgorithmSpecification</a> object that specifies the resource algorithm to use for the training jobs that the tuning job launches.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StaticHyperParameters</i> Specifies the values of hyperparameters that do not change for the tuning job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HyperParameterRanges</i> Specifies ranges of integer, continuous, and categorical hyperparameters that a hyperparameter tuning job searches. The hyperparameter tuning job launches training jobs with hyperparameter values within these ranges to find the combination of values that result in the training job with the best performance as measured by the objective metric of the hyperparameter tuning job. <note> You can specify a maximum of 20 hyperparameters that a hyperparameter tuning job can search over. Every possible value of a categorical parameter range counts against this limit. </note>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>HyperParameterRanges</b>: Specifies ranges of integer, continuous, and categorical hyperparameters that a hyperparameter tuning job searches. The hyperparameter tuning job launches training jobs with hyperparameter values within these ranges to find the combination of values that result in the training job with the best performance as measured by the objective metric of the hyperparameter tuning job. <note> You can specify a maximum of 20 hyperparameters that a hyperparameter tuning job can search over. Every possible value of a categorical parameter range counts against this limit. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TuningObjective</i> Defines the objective metric for a hyperparameter tuning job. Hyperparameter tuning uses the value of this metric to evaluate the training jobs it launches, and returns the training job that results in either the highest or lowest value for this metric, depending on the value you specify for the <code>Type</code> parameter.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TuningObjective</b>: Defines the objective metric for a hyperparameter tuning job. Hyperparameter tuning uses the value of this metric to evaluate the training jobs it launches, and returns the training job that results in either the highest or lowest value for this metric, depending on the value you specify for the <code>Type</code> parameter.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefinitionName</i> The job definition name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MetricName</i> The name of the metric to use for the objective metric.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> Whether to minimize or maximize the objective metric.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CategoricalParameterRanges</i> The array of <a>CategoricalParameterRange</a> objects that specify ranges of categorical hyperparameters that a hyperparameter tuning job searches.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ContinuousParameterRanges</i> The array of <a>ContinuousParameterRange</a> objects that specify ranges of continuous hyperparameters that a hyperparameter tuning job searches.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IntegerParameterRanges</i> The array of <a>IntegerParameterRange</a> objects that specify ranges of integer hyperparameters that a hyperparameter tuning job searches.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MetricDefinitions</i> An array of <a>MetricDefinition</a> objects that specify the metrics that the algorithm emits.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AlgorithmName</i> The name of the resource algorithm to use for the hyperparameter tuning job. If you specify a value for this parameter, do not specify a value for <code>TrainingImage</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TrainingInputMode</i> The input mode that the algorithm supports: File or Pipe. In File input mode, Amazon SageMaker downloads the training data from Amazon S3 to the storage volume that is attached to the training instance and mounts the directory to the Docker volume for the training container. In Pipe input mode, Amazon SageMaker streams data directly from Amazon S3 to the container.  If you specify File mode, make sure that you provision the storage volume that is attached to the training instance with enough capacity to accommodate the training data downloaded from Amazon S3, the model artifacts, and intermediate information. <p/> For more information about input modes, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/algos.html">Algorithms</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TrainingImage</i>  The registry path of the Docker image that contains the training algorithm. For information about Docker registry paths for built-in algorithms, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-algo-docker-registry-paths.html">Algorithms Provided by Amazon SageMaker: Common Parameters</a>. Amazon SageMaker supports both <code>registry/repository[:tag]</code> and <code>registry/repository[@digest]</code> image path formats. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms.html">Using Your Own Algorithms with Amazon SageMaker</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Subnets</i> The ID of the subnets in the VPC to which you want to connect your training job or model. For information about the availability of specific instance types, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/instance-types-az.html">Supported Instance Types and Availability Zones</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> The VPC security group IDs, in the form sg-xxxxxxxx. Specify the security groups for the VPC that is specified in the <code>Subnets</code> field.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3OutputPath</i> Identifies the S3 path where you want Amazon SageMaker to store the model artifacts. For example, <code>s3://bucket-name/key-name-prefix</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The Amazon Web Services Key Management Service (Amazon Web Services KMS) key that Amazon SageMaker uses to encrypt the model artifacts at rest using Amazon S3 server-side encryption. The <code>KmsKeyId</code> can be any of the following formats:  <ul> <li> // KMS Key ID  <code>"1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> <li> // Amazon Resource Name (ARN) of a KMS Key  <code>"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> <li> // KMS Key Alias  <code>"alias/ExampleAlias"</code>  </li> <li> // Amazon Resource Name (ARN) of a KMS Key Alias  <code>"arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias"</code>  </li> </ul> If you use a KMS key ID or an alias of your master key, the Amazon SageMaker execution role must include permissions to call <code>kms:Encrypt</code>. If you don't provide a KMS key ID, Amazon SageMaker uses the default KMS key for Amazon S3 for your role's account. Amazon SageMaker uses server-side encryption with KMS-managed keys for <code>OutputDataConfig</code>. If you use a bucket policy with an <code>s3:PutObject</code> permission that only allows objects with server-side encryption, set the condition key of <code>s3:x-amz-server-side-encryption</code> to <code>"aws:kms"</code>. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html">KMS-Managed Encryption Keys</a> in the <i>Amazon Simple Storage Service Developer Guide.</i>  The KMS key policy must grant permission to the IAM role that you specify in your <code>CreateTrainingJob</code>, <code>CreateTransformJob</code>, or <code>CreateHyperParameterTuningJob</code> requests. For more information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html">Using Key Policies in Amazon Web Services KMS</a> in the <i>Amazon Web Services Key Management Service Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VolumeKmsKeyId</i> The Amazon Web Services KMS key that Amazon SageMaker uses to encrypt data on the storage volume attached to the ML compute instance(s) that run the training job. <note> Certain Nitro-based instances include local storage, dependent on the instance type. Local storage volumes are encrypted using a hardware module on the instance. You can't request a <code>VolumeKmsKeyId</code> when using an instance type with local storage. For a list of instance types that support local instance storage, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#instance-store-volumes">Instance Store Volumes</a>. For more information about local instance storage encryption, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ssd-instance-store.html">SSD Instance Store Volumes</a>. </note> The <code>VolumeKmsKeyId</code> can be in any of the following formats: <ul> <li> // KMS Key ID  <code>"1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> <li> // Amazon Resource Name (ARN) of a KMS Key  <code>"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VolumeSizeInGB</i> The size of the ML storage volume that you want to provision.  ML storage volumes store model artifacts and incremental states. Training algorithms might also use the ML storage volume for scratch space. If you want to store the training data in the ML storage volume, choose <code>File</code> as the <code>TrainingInputMode</code> in the algorithm specification.  You must specify sufficient ML storage for your scenario.  <note>  Amazon SageMaker supports only the General Purpose SSD (gp2) ML storage volume type.  </note> <note> Certain Nitro-based instances include local storage with a fixed total size, dependent on the instance type. When using these instances for training, Amazon SageMaker mounts the local instance storage instead of Amazon EBS gp2 storage. You can't request a <code>VolumeSizeInGB</code> greater than the total size of the local instance storage. For a list of instance types that support local instance storage, including the total size per instance type, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#instance-store-volumes">Instance Store Volumes</a>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceCount</i> The number of ML compute instances to use. For distributed training, provide a value greater than 1. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceType</i> The ML compute instance type. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxWaitTimeInSeconds</i> The maximum length of time, in seconds, that a managed Spot training job has to complete. It is the amount of time spent waiting for Spot capacity plus the amount of time the job can run. It must be equal to or greater than <code>MaxRuntimeInSeconds</code>. If the job does not complete during this time, Amazon SageMaker ends the job. When <code>RetryStrategy</code> is specified in the job request, <code>MaxWaitTimeInSeconds</code> specifies the maximum time for all of the attempts in total, not each individual attempt.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxRuntimeInSeconds</i> The maximum length of time, in seconds, that a training or compilation job can run. If the job does not complete during this time, Amazon SageMaker ends the job. When <code>RetryStrategy</code> is specified in the job request, <code>MaxRuntimeInSeconds</code> specifies the maximum time for all of the attempts in total, not each individual attempt. The default value is 1 day. The maximum value is 28 days.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LocalPath</i> (Optional) The local directory where checkpoints are written. The default directory is <code>/opt/ml/checkpoints/</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Uri</i> Identifies the S3 path where you want Amazon SageMaker to store checkpoints. For example, <code>s3://bucket-name/key-name-prefix</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaximumRetryAttempts</i> The number of times to retry the job. When the job is retried, it's <code>SecondaryStatus</code> is changed to <code>STARTING</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WarmStartType</i> Specifies one of the following: <dl> <dt>IDENTICAL_DATA_AND_ALGORITHM</dt> <dd> The new hyperparameter tuning job uses the same input data and training image as the parent tuning jobs. You can change the hyperparameter ranges to search and the maximum number of training jobs that the hyperparameter tuning job launches. You cannot use a new version of the training algorithm, unless the changes in the new version do not affect the algorithm itself. For example, changes that improve logging or adding support for a different data format are allowed. You can also change hyperparameters from tunable to static, and from static to tunable, but the total number of static plus tunable hyperparameters must remain the same as it is in all parent jobs. The objective metric for the new tuning job must be the same as for all parent jobs. </dd> <dt>TRANSFER_LEARNING</dt> <dd> The new hyperparameter tuning job can include input data, hyperparameter ranges, maximum number of concurrent training jobs, and maximum number of training jobs that are different than those of its parent hyperparameter tuning jobs. The training image can also be a different version from the version used in the parent hyperparameter tuning job. You can also change hyperparameters from tunable to static, and from static to tunable, but the total number of static plus tunable hyperparameters must remain the same as it is in all parent jobs. The objective metric for the new tuning job must be the same as for all parent jobs. </dd> </dl><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ParentHyperParameterTuningJobs</i> An array of hyperparameter tuning jobs that are used as the starting point for the new hyperparameter tuning job. For more information about warm starting a hyperparameter tuning job, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-warm-start.html">Using a Previous Hyperparameter Tuning Job as a Starting Point</a>. Hyperparameter tuning jobs created before October 1, 2018 cannot be used as parent jobs for warm start tuning jobs.<br/>
        :return: HyperParameterTuningJobArn:  The Amazon Resource Name (ARN) of the tuning job. Amazon SageMaker assigns an ARN to a hyperparameter tuning job when you create it.<br/>        """
        pass

    def create_image(self, RoleArn: str, ImageName: str, Description: str=None, DisplayName: str=None, Tags: List[Tag]=None) -> CreateImageResponse:
        r"""Creates a custom SageMaker image. A SageMaker image is a set of image versions. Each image version represents a container image stored in Amazon Container Registry (ECR). For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/studio-byoi.html">Bring your own SageMaker image</a>.

        :param self:
        :param Tags:  A list of tags to apply to the image.<br/>RoleArn:  The Amazon Resource Name (ARN) of an IAM role that enables Amazon SageMaker to perform tasks on your behalf.<br/>ImageName:  The name of the image. Must be unique to your account.<br/>DisplayName:  The display name of the image. If not provided, <code>ImageName</code> is displayed.<br/>Description:  The description of the image.<br/>
        :return: ImageArn:  The Amazon Resource Name (ARN) of the image.<br/>        """
        pass

    def create_image_version(self, ImageName: str, ClientToken: str, BaseImage: str) -> CreateImageVersionResponse:
        r"""Creates a version of the SageMaker image specified by <code>ImageName</code>. The version represents the Amazon Container Registry (ECR) container image specified by <code>BaseImage</code>.

        :param self:
        :param ImageName:  The <code>ImageName</code> of the <code>Image</code> to create a version of.<br/>ClientToken:  A unique ID. If not specified, the Amazon Web Services CLI and Amazon Web Services SDKs, such as the SDK for Python (Boto3), add a unique value to the call.<br/>BaseImage:  The registry path of the container image to use as the starting point for this version. The path is an Amazon Container Registry (ECR) URI in the following format:  <code>&lt;acct-id&gt;.dkr.ecr.&lt;region&gt;.amazonaws.com/&lt;repo-name[:tag] or [@digest]&gt;</code> <br/>
        :return: ImageVersionArn:  The Amazon Resource Name (ARN) of the image version.<br/>        """
        pass

    def create_labeling_job(self, HumanTaskConfig: HumanTaskConfig, RoleArn: str, OutputConfig: LabelingJobOutputConfig, InputConfig: LabelingJobInputConfig, LabelAttributeName: str, LabelingJobName: str, LabelCategoryConfigS3Uri: str=None, StoppingConditions: LabelingJobStoppingConditions=None, LabelingJobAlgorithmsConfig: LabelingJobAlgorithmsConfig=None, Tags: List[Tag]=None) -> CreateLabelingJobResponse:
        r"""Creates a job that uses workers to label the data objects in your input dataset. You can use the labeled data to train machine learning models.  You can select your workforce from one of three providers: <ul> <li> A private workforce that you create. It can include employees, contractors, and outside experts. Use a private workforce when want the data to stay within your organization or when a specific set of skills is required. </li> <li> One or more vendors that you select from the Amazon Web Services Marketplace. Vendors provide expertise in specific areas.  </li> <li> The Amazon Mechanical Turk workforce. This is the largest workforce, but it should only be used for public data or data that has been stripped of any personally identifiable information. </li> </ul> You can also use <i>automated data labeling</i> to reduce the number of data objects that need to be labeled by a human. Automated data labeling uses <i>active learning</i> to determine if a data object can be labeled by machine or if it needs to be sent to a human worker. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sms-automated-labeling.html">Using Automated Data Labeling</a>. The data objects to be labeled are contained in an Amazon S3 bucket. You create a <i>manifest file</i> that describes the location of each object. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sms-data.html">Using Input and Output Data</a>. The output can be used as the manifest file for another labeling job or as training data for your machine learning models. You can use this operation to create a static labeling job or a streaming labeling job. A static labeling job stops if all data objects in the input manifest file identified in <code>ManifestS3Uri</code> have been labeled. A streaming labeling job runs perpetually until it is manually stopped, or remains idle for 10 days. You can send new data objects to an active (<code>InProgress</code>) streaming labeling job in real time. To learn how to create a static labeling job, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sms-create-labeling-job-api.html">Create a Labeling Job (API) </a> in the Amazon SageMaker Developer Guide. To learn how to create a streaming labeling job, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sms-streaming-create-job.html">Create a Streaming Labeling Job</a>.

        :param self:
        :param Tags:  An array of key/value pairs. For more information, see <a href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html#allocation-what">Using Cost Allocation Tags</a> in the <i>Amazon Web Services Billing and Cost Management User Guide</i>.<br/>HumanTaskConfig:  Configures the labeling task and how it is presented to workers; including, but not limited to price, keywords, and batch size (task count).:<br/>LabelingJobAlgorithmsConfig:  Configures the information required to perform automated data labeling.:<br/>StoppingConditions:  A set of conditions for stopping the labeling job. If any of the conditions are met, the job is automatically stopped. You can use these conditions to control the cost of data labeling.:<br/>LabelCategoryConfigS3Uri:  The S3 URI of the file, referred to as a <i>label category configuration file</i>, that defines the categories used to label the data objects. For 3D point cloud and video frame task types, you can add label category attributes and frame attributes to your label category configuration file. To learn how, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sms-point-cloud-label-category-config.html">Create a Labeling Category Configuration File for 3D Point Cloud Labeling Jobs</a>.  For all other <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sms-task-types.html">built-in task types</a> and <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sms-custom-templates.html">custom tasks</a>, your label category configuration file must be a JSON file in the following format. Identify the labels you want to use by replacing <code>label_1</code>, <code>label_2</code>,<code>...</code>,<code>label_n</code> with your label categories.  <code>{ </code>   <code>"document-version": "2018-11-28",</code>   <code>"labels": [{"label": "label_1"},{"label": "label_2"},...{"label": "label_n"}]</code>   <code>}</code>  Note the following about the label category configuration file: <ul> <li> For image classification and text classification (single and multi-label) you must specify at least two label categories. For all other task types, the minimum number of label categories required is one.  </li> <li> Each label category must be unique, you cannot specify duplicate label categories. </li> <li> If you create a 3D point cloud or video frame adjustment or verification labeling job, you must include <code>auditLabelAttributeName</code> in the label category configuration. Use this parameter to enter the <a href="https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateLabelingJob.html#sagemaker-CreateLabelingJob-request-LabelAttributeName"> <code>LabelAttributeName</code> </a> of the labeling job you want to adjust or verify annotations of. </li> </ul><br/>RoleArn:  The Amazon Resource Number (ARN) that Amazon SageMaker assumes to perform tasks on your behalf during data labeling. You must grant this role the necessary permissions so that Amazon SageMaker can successfully complete data labeling.<br/>OutputConfig:  The location of the output data and the Amazon Web Services Key Management Service key ID for the key used to encrypt the output data, if any.:<br/>InputConfig:  Input data for the labeling job, such as the Amazon S3 location of the data objects and the location of the manifest file that describes the data objects. You must specify at least one of the following: <code>S3DataSource</code> or <code>SnsDataSource</code>.  <ul> <li> Use <code>SnsDataSource</code> to specify an SNS input topic for a streaming labeling job. If you do not specify and SNS input topic ARN, Ground Truth will create a one-time labeling job that stops after all data objects in the input manifest file have been labeled. </li> <li> Use <code>S3DataSource</code> to specify an input manifest file for both streaming and one-time labeling jobs. Adding an <code>S3DataSource</code> is optional if you use <code>SnsDataSource</code> to create a streaming labeling job. </li> </ul> If you use the Amazon Mechanical Turk workforce, your input data should not include confidential information, personal information or protected health information. Use <code>ContentClassifiers</code> to specify that your data is free of personally identifiable information and adult content.:<br/>LabelAttributeName:  The attribute name to use for the label in the output manifest file. This is the key for the key/value pair formed with the label that a worker assigns to the object. The <code>LabelAttributeName</code> must meet the following requirements. <ul> <li> The name can't end with "-metadata".  </li> <li> If you are using one of the following <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sms-task-types.html">built-in task types</a>, the attribute name <i>must</i> end with "-ref". If the task type you are using is not listed below, the attribute name <i>must not</i> end with "-ref". <ul> <li> Image semantic segmentation (<code>SemanticSegmentation)</code>, and adjustment (<code>AdjustmentSemanticSegmentation</code>) and verification (<code>VerificationSemanticSegmentation</code>) labeling jobs for this task type. </li> <li> Video frame object detection (<code>VideoObjectDetection</code>), and adjustment and verification (<code>AdjustmentVideoObjectDetection</code>) labeling jobs for this task type. </li> <li> Video frame object tracking (<code>VideoObjectTracking</code>), and adjustment and verification (<code>AdjustmentVideoObjectTracking</code>) labeling jobs for this task type. </li> <li> 3D point cloud semantic segmentation (<code>3DPointCloudSemanticSegmentation</code>), and adjustment and verification (<code>Adjustment3DPointCloudSemanticSegmentation</code>) labeling jobs for this task type.  </li> <li> 3D point cloud object tracking (<code>3DPointCloudObjectTracking</code>), and adjustment and verification (<code>Adjustment3DPointCloudObjectTracking</code>) labeling jobs for this task type.  </li> </ul> </li> </ul> <p/> <important> If you are creating an adjustment or verification labeling job, you must use a <i>different</i> <code>LabelAttributeName</code> than the one used in the original labeling job. The original labeling job is the Ground Truth labeling job that produced the labels that you want verified or adjusted. To learn more about adjustment and verification labeling jobs, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sms-verification-data.html">Verify and Adjust Labels</a>. </important><br/>LabelingJobName:  The name of the labeling job. This name is used to identify the job in a list of labeling jobs. Labeling job names must be unique within an Amazon Web Services account and region. <code>LabelingJobName</code> is not case sensitive. For example, Example-job and example-job are considered the same labeling job name by Ground Truth.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataAttributes</i> Attributes of the data specified by the customer.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DataAttributes</b>: Attributes of the data specified by the customer.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataSource</i> The location of the input data.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DataSource</b>: The location of the input data.<br/>The Amazon S3 location of the input data objects.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3DataSource</b>: The Amazon S3 location of the input data objects.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ContentClassifiers</i> Declares that your content is free of personally identifiable information or adult content. Amazon SageMaker may restrict the Amazon Mechanical Turk workers that can view your task based on this information.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnsTopicArn</i> An Amazon Simple Notification Service (Amazon SNS) output topic ARN. Provide a <code>SnsTopicArn</code> if you want to do real time chaining to another streaming job and receive an Amazon SNS notifications each time a data object is submitted by a worker. If you provide an <code>SnsTopicArn</code> in <code>OutputConfig</code>, when workers complete labeling tasks, Ground Truth will send labeling task output data to the SNS output topic you specify here.  To learn more, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sms-streaming-labeling-job.html#sms-streaming-how-it-works-output-data">Receive Output Data from a Streaming Labeling Job</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The Amazon Web Services Key Management Service ID of the key used to encrypt the output data, if any. If you provide your own KMS key ID, you must add the required permissions to your KMS key described in <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sms-security-permission.html#sms-security-kms-permissions">Encrypt Output Data and Storage Volume with Amazon Web Services KMS</a>. If you don't provide a KMS key ID, Amazon SageMaker uses the default Amazon Web Services KMS key for Amazon S3 for your role's account to encrypt your output data. If you use a bucket policy with an <code>s3:PutObject</code> permission that only allows objects with server-side encryption, set the condition key of <code>s3:x-amz-server-side-encryption</code> to <code>"aws:kms"</code>. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html">KMS-Managed Encryption Keys</a> in the <i>Amazon Simple Storage Service Developer Guide.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3OutputPath</i> The Amazon S3 location to write output data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxPercentageOfInputDatasetLabeled</i> The maximum number of input data objects that should be labeled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxHumanLabeledObjectCount</i> The maximum number of objects that can be labeled by human workers.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LabelingJobResourceConfig</i> Provides configuration information for a labeling job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>LabelingJobResourceConfig</b>: Provides configuration information for a labeling job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InitialActiveLearningModelArn</i> At the end of an auto-label job Ground Truth sends the Amazon Resource Name (ARN) of the final model used for auto-labeling. You can use this model as the starting point for subsequent similar jobs by providing the ARN of the model here. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LabelingJobAlgorithmSpecificationArn</i> Specifies the Amazon Resource Name (ARN) of the algorithm used for auto-labeling. You must select one of the following ARNs: <ul> <li>  <i>Image classification</i>   <code>arn:aws:sagemaker:<i>region</i>:027400017018:labeling-job-algorithm-specification/image-classification</code>  </li> <li>  <i>Text classification</i>   <code>arn:aws:sagemaker:<i>region</i>:027400017018:labeling-job-algorithm-specification/text-classification</code>  </li> <li>  <i>Object detection</i>   <code>arn:aws:sagemaker:<i>region</i>:027400017018:labeling-job-algorithm-specification/object-detection</code>  </li> <li>  <i>Semantic Segmentation</i>   <code>arn:aws:sagemaker:<i>region</i>:027400017018:labeling-job-algorithm-specification/semantic-segmentation</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VolumeKmsKeyId</i> The Amazon Web Services Key Management Service (Amazon Web Services KMS) key that Amazon SageMaker uses to encrypt data on the storage volume attached to the ML compute instance(s) that run the training and inference jobs used for automated data labeling.  You can only specify a <code>VolumeKmsKeyId</code> when you create a labeling job with automated data labeling enabled using the API operation <code>CreateLabelingJob</code>. You cannot specify an Amazon Web Services KMS customer managed CMK to encrypt the storage volume used for automated data labeling model training and inference when you create a labeling job using the console. To learn more, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sms-security.html">Output Data and Storage Volume Encryption</a>. The <code>VolumeKmsKeyId</code> can be any of the following formats: <ul> <li> KMS Key ID  <code>"1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> <li> Amazon Resource Name (ARN) of a KMS Key  <code>"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PublicWorkforceTaskPrice</i> The price that you pay for each task performed by an Amazon Mechanical Turk worker.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PublicWorkforceTaskPrice</b>: The price that you pay for each task performed by an Amazon Mechanical Turk worker.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AnnotationConsolidationConfig</i> Configures how labels are consolidated across human workers.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AnnotationConsolidationConfig</b>: Configures how labels are consolidated across human workers.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxConcurrentTaskCount</i> Defines the maximum number of data objects that can be labeled by human workers at the same time. Also referred to as batch size. Each object may have more than one worker at one time. The default value is 1000 objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TaskAvailabilityLifetimeInSeconds</i> The length of time that a task remains available for labeling by human workers. The default and maximum values for this parameter depend on the type of workforce you use. <ul> <li> If you choose the Amazon Mechanical Turk workforce, the maximum is 12 hours (43,200 seconds). The default is 6 hours (21,600 seconds). </li> <li> If you choose a private or vendor workforce, the default value is 10 days (864,000 seconds). For most users, the maximum is also 10 days. If you want to change this limit, contact Amazon Web Services Support. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TaskTimeLimitInSeconds</i> The amount of time that a worker has to complete a task.  If you create a custom labeling job, the maximum value for this parameter is 8 hours (28,800 seconds). If you create a labeling job using a <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sms-task-types.html">built-in task type</a> the maximum for this parameter depends on the task type you use: <ul> <li> For <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sms-label-images.html">image</a> and <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sms-label-text.html">text</a> labeling jobs, the maximum is 8 hours (28,800 seconds). </li> <li> For <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sms-point-cloud.html">3D point cloud</a> and <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sms-video.html">video frame</a> labeling jobs, the maximum is 7 days (604,800 seconds). If you want to change these limits, contact Amazon Web Services Support. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberOfHumanWorkersPerDataObject</i> The number of human workers that will label an object. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TaskDescription</i> A description of the task for your human workers.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TaskTitle</i> A title for the task for your human workers.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TaskKeywords</i> Keywords used to describe the task so that workers on Amazon Mechanical Turk can discover the task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreHumanTaskLambdaArn</i> The Amazon Resource Name (ARN) of a Lambda function that is run before a data object is sent to a human worker. Use this function to provide input to a custom labeling job. For <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sms-task-types.html">built-in task types</a>, use one of the following Amazon SageMaker Ground Truth Lambda function ARNs for <code>PreHumanTaskLambdaArn</code>. For custom labeling workflows, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sms-custom-templates-step3.html#sms-custom-templates-step3-prelambda">Pre-annotation Lambda</a>.   <b>Bounding box</b> - Finds the most similar boxes from different workers based on the Jaccard index of the boxes. <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:PRE-BoundingBox</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:PRE-BoundingBox</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:PRE-BoundingBox</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:PRE-BoundingBox</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:PRE-BoundingBox</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:PRE-BoundingBox</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:PRE-BoundingBox</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-BoundingBox</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-BoundingBox</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:PRE-BoundingBox</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-BoundingBox</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-BoundingBox</code>  </li> </ul>  <b>Image classification</b> - Uses a variant of the Expectation Maximization approach to estimate the true class of an image based on annotations from individual workers. <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:PRE-ImageMultiClass</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:PRE-ImageMultiClass</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:PRE-ImageMultiClass</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:PRE-ImageMultiClass</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:PRE-ImageMultiClass</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:PRE-ImageMultiClass</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:PRE-ImageMultiClass</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-ImageMultiClass</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-ImageMultiClass</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:PRE-ImageMultiClass</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-ImageMultiClass</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-ImageMultiClass</code>  </li> </ul>  <b>Multi-label image classification</b> - Uses a variant of the Expectation Maximization approach to estimate the true classes of an image based on annotations from individual workers. <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:PRE-ImageMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:PRE-ImageMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:PRE-ImageMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:PRE-ImageMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:PRE-ImageMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:PRE-ImageMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:PRE-ImageMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-ImageMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-ImageMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:PRE-ImageMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-ImageMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-ImageMultiClassMultiLabel</code>  </li> </ul>  <b>Semantic segmentation</b> - Treats each pixel in an image as a multi-class classification and treats pixel annotations from workers as "votes" for the correct label. <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:PRE-SemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:PRE-SemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:PRE-SemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:PRE-SemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:PRE-SemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:PRE-SemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:PRE-SemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-SemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-SemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:PRE-SemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-SemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-SemanticSegmentation</code>  </li> </ul>  <b>Text classification</b> - Uses a variant of the Expectation Maximization approach to estimate the true class of text based on annotations from individual workers. <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:PRE-TextMultiClass</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:PRE-TextMultiClass</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:PRE-TextMultiClass</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:PRE-TextMultiClass</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:PRE-TextMultiClass</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:PRE-TextMultiClass</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:PRE-TextMultiClass</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-TextMultiClass</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-TextMultiClass</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:PRE-TextMultiClass</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-TextMultiClass</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-TextMultiClass</code>  </li> </ul>  <b>Multi-label text classification</b> - Uses a variant of the Expectation Maximization approach to estimate the true classes of text based on annotations from individual workers. <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:PRE-TextMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:PRE-TextMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:PRE-TextMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:PRE-TextMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:PRE-TextMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:PRE-TextMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:PRE-TextMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-TextMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-TextMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:PRE-TextMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-TextMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-TextMultiClassMultiLabel</code>  </li> </ul>  <b>Named entity recognition</b> - Groups similar selections and calculates aggregate boundaries, resolving to most-assigned label. <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:PRE-NamedEntityRecognition</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:PRE-NamedEntityRecognition</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:PRE-NamedEntityRecognition</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:PRE-NamedEntityRecognition</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:PRE-NamedEntityRecognition</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:PRE-NamedEntityRecognition</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:PRE-NamedEntityRecognition</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-NamedEntityRecognition</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-NamedEntityRecognition</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:PRE-NamedEntityRecognition</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-NamedEntityRecognition</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-NamedEntityRecognition</code>  </li> </ul>  <b>Video Classification</b> - Use this task type when you need workers to classify videos using predefined labels that you specify. Workers are shown videos and are asked to choose one label for each video. <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:PRE-VideoMultiClass</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:PRE-VideoMultiClass</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:PRE-VideoMultiClass</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:PRE-VideoMultiClass</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-VideoMultiClass</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-VideoMultiClass</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:PRE-VideoMultiClass</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:PRE-VideoMultiClass</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-VideoMultiClass</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:PRE-VideoMultiClass</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-VideoMultiClass</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:PRE-VideoMultiClass</code>  </li> </ul>  <b>Video Frame Object Detection</b> - Use this task type to have workers identify and locate objects in a sequence of video frames (images extracted from a video) using bounding boxes. For example, you can use this task to ask workers to identify and localize various objects in a series of video frames, such as cars, bikes, and pedestrians. <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:PRE-VideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:PRE-VideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:PRE-VideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:PRE-VideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-VideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-VideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:PRE-VideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:PRE-VideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-VideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:PRE-VideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-VideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:PRE-VideoObjectDetection</code>  </li> </ul>  <b>Video Frame Object Tracking</b> - Use this task type to have workers track the movement of objects in a sequence of video frames (images extracted from a video) using bounding boxes. For example, you can use this task to ask workers to track the movement of objects, such as cars, bikes, and pedestrians.  <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:PRE-VideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:PRE-VideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:PRE-VideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:PRE-VideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-VideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-VideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:PRE-VideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:PRE-VideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-VideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:PRE-VideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-VideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:PRE-VideoObjectTracking</code>  </li> </ul>  <b>3D Point Cloud Modalities</b>  Use the following pre-annotation lambdas for 3D point cloud labeling modality tasks. See <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sms-point-cloud-task-types.html">3D Point Cloud Task types </a> to learn more.   <b>3D Point Cloud Object Detection</b> - Use this task type when you want workers to classify objects in a 3D point cloud by drawing 3D cuboids around objects. For example, you can use this task type to ask workers to identify different types of objects in a point cloud, such as cars, bikes, and pedestrians. <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:PRE-3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:PRE-3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:PRE-3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:PRE-3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:PRE-3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:PRE-3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:PRE-3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:PRE-3DPointCloudObjectDetection</code>  </li> </ul>  <b>3D Point Cloud Object Tracking</b> - Use this task type when you want workers to draw 3D cuboids around objects that appear in a sequence of 3D point cloud frames. For example, you can use this task type to ask workers to track the movement of vehicles across multiple point cloud frames.  <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:PRE-3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:PRE-3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:PRE-3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:PRE-3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:PRE-3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:PRE-3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:PRE-3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:PRE-3DPointCloudObjectTracking</code>  </li> </ul>  <b>3D Point Cloud Semantic Segmentation</b> - Use this task type when you want workers to create a point-level semantic segmentation masks by painting objects in a 3D point cloud using different colors where each color is assigned to one of the classes you specify. <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:PRE-3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:PRE-3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:PRE-3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:PRE-3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:PRE-3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:PRE-3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:PRE-3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:PRE-3DPointCloudSemanticSegmentation</code>  </li> </ul>  <b>Use the following ARNs for Label Verification and Adjustment Jobs</b>  Use label verification and adjustment jobs to review and adjust labels. To learn more, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sms-verification-data.html">Verify and Adjust Labels </a>.  <b>Bounding box verification</b> - Uses a variant of the Expectation Maximization approach to estimate the true class of verification judgement for bounding box labels based on annotations from individual workers. <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:PRE-VerificationBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:PRE-VerificationBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:PRE-VerificationBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:PRE-VerificationBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-VerificationBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-VerificationBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:PRE-VerificationBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:PRE-VerificationBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-VerificationBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:PRE-VerificationBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-VerificationBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:PRE-VerificationBoundingBox</code>  </li> </ul>  <b>Bounding box adjustment</b> - Finds the most similar boxes from different workers based on the Jaccard index of the adjusted annotations. <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:PRE-AdjustmentBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:PRE-AdjustmentBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:PRE-AdjustmentBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:PRE-AdjustmentBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:PRE-AdjustmentBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:PRE-AdjustmentBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:PRE-AdjustmentBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-AdjustmentBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-AdjustmentBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:PRE-AdjustmentBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-AdjustmentBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-AdjustmentBoundingBox</code>  </li> </ul>  <b>Semantic segmentation verification</b> - Uses a variant of the Expectation Maximization approach to estimate the true class of verification judgment for semantic segmentation labels based on annotations from individual workers. <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:PRE-VerificationSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:PRE-VerificationSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:PRE-VerificationSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:PRE-VerificationSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:PRE-VerificationSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:PRE-VerificationSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:PRE-VerificationSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-VerificationSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-VerificationSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:PRE-VerificationSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-VerificationSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-VerificationSemanticSegmentation</code>  </li> </ul>  <b>Semantic segmentation adjustment</b> - Treats each pixel in an image as a multi-class classification and treats pixel adjusted annotations from workers as "votes" for the correct label. <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:PRE-AdjustmentSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:PRE-AdjustmentSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:PRE-AdjustmentSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:PRE-AdjustmentSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:PRE-AdjustmentSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:PRE-AdjustmentSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:PRE-AdjustmentSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-AdjustmentSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-AdjustmentSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:PRE-AdjustmentSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-AdjustmentSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-AdjustmentSemanticSegmentation</code>  </li> </ul>  <b>Video Frame Object Detection Adjustment</b> - Use this task type when you want workers to adjust bounding boxes that workers have added to video frames to classify and localize objects in a sequence of video frames. <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:PRE-AdjustmentVideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:PRE-AdjustmentVideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:PRE-AdjustmentVideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:PRE-AdjustmentVideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-AdjustmentVideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-AdjustmentVideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:PRE-AdjustmentVideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:PRE-AdjustmentVideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-AdjustmentVideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:PRE-AdjustmentVideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-AdjustmentVideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:PRE-AdjustmentVideoObjectDetection</code>  </li> </ul>  <b>Video Frame Object Tracking Adjustment</b> - Use this task type when you want workers to adjust bounding boxes that workers have added to video frames to track object movement across a sequence of video frames. <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:PRE-AdjustmentVideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:PRE-AdjustmentVideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:PRE-AdjustmentVideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:PRE-AdjustmentVideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-AdjustmentVideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-AdjustmentVideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:PRE-AdjustmentVideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:PRE-AdjustmentVideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-AdjustmentVideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:PRE-AdjustmentVideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-AdjustmentVideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:PRE-AdjustmentVideoObjectTracking</code>  </li> </ul>  <b>3D point cloud object detection adjustment</b> - Adjust 3D cuboids in a point cloud frame.  <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:PRE-Adjustment3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:PRE-Adjustment3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:PRE-Adjustment3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:PRE-Adjustment3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-Adjustment3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-Adjustment3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:PRE-Adjustment3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:PRE-Adjustment3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-Adjustment3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:PRE-Adjustment3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-Adjustment3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:PRE-Adjustment3DPointCloudObjectDetection</code>  </li> </ul>  <b>3D point cloud object tracking adjustment</b> - Adjust 3D cuboids across a sequence of point cloud frames.  <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:PRE-Adjustment3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:PRE-Adjustment3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:PRE-Adjustment3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:PRE-Adjustment3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-Adjustment3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-Adjustment3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:PRE-Adjustment3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:PRE-Adjustment3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-Adjustment3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:PRE-Adjustment3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-Adjustment3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:PRE-Adjustment3DPointCloudObjectTracking</code>  </li> </ul>  <b>3D point cloud semantic segmentation adjustment</b> - Adjust semantic segmentation masks in a 3D point cloud.  <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:PRE-Adjustment3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:PRE-Adjustment3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:PRE-Adjustment3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:PRE-Adjustment3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-Adjustment3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-Adjustment3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:PRE-Adjustment3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:PRE-Adjustment3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-Adjustment3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:PRE-Adjustment3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-Adjustment3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:PRE-Adjustment3DPointCloudSemanticSegmentation</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UiConfig</i> Information about the user interface that workers use to complete the labeling task.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>UiConfig</b>: Information about the user interface that workers use to complete the labeling task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WorkteamArn</i> The Amazon Resource Name (ARN) of the work team assigned to complete the tasks.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HumanTaskUiArn</i> The ARN of the worker task template used to render the worker UI and tools for labeling job tasks. Use this parameter when you are creating a labeling job for 3D point cloud and video fram labeling jobs. Use your labeling job task type to select one of the following ARNs and use it with this parameter when you create a labeling job. Replace <code>aws-region</code> with the Amazon Web Services region you are creating your labeling job in.  <b>3D Point Cloud HumanTaskUiArns</b>  Use this <code>HumanTaskUiArn</code> for 3D point cloud object detection and 3D point cloud object detection adjustment labeling jobs.  <ul> <li>  <code>arn:aws:sagemaker:aws-region:394669845002:human-task-ui/PointCloudObjectDetection</code>  </li> </ul>  Use this <code>HumanTaskUiArn</code> for 3D point cloud object tracking and 3D point cloud object tracking adjustment labeling jobs.  <ul> <li>  <code>arn:aws:sagemaker:aws-region:394669845002:human-task-ui/PointCloudObjectTracking</code>  </li> </ul>  Use this <code>HumanTaskUiArn</code> for 3D point cloud semantic segmentation and 3D point cloud semantic segmentation adjustment labeling jobs. <ul> <li>  <code>arn:aws:sagemaker:aws-region:394669845002:human-task-ui/PointCloudSemanticSegmentation</code>  </li> </ul>  <b>Video Frame HumanTaskUiArns</b>  Use this <code>HumanTaskUiArn</code> for video frame object detection and video frame object detection adjustment labeling jobs.  <ul> <li>  <code>arn:aws:sagemaker:region:394669845002:human-task-ui/VideoObjectDetection</code>  </li> </ul>  Use this <code>HumanTaskUiArn</code> for video frame object tracking and video frame object tracking adjustment labeling jobs.  <ul> <li>  <code>arn:aws:sagemaker:aws-region:394669845002:human-task-ui/VideoObjectTracking</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UiTemplateS3Uri</i> The Amazon S3 bucket location of the UI template, or worker task template. This is the template used to render the worker UI and tools for labeling job tasks. For more information about the contents of a UI template, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sms-custom-templates-step2.html"> Creating Your Custom Labeling Task Template</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AnnotationConsolidationLambdaArn</i> The Amazon Resource Name (ARN) of a Lambda function implements the logic for <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sms-annotation-consolidation.html">annotation consolidation</a> and to process output data. This parameter is required for all labeling jobs. For <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sms-task-types.html">built-in task types</a>, use one of the following Amazon SageMaker Ground Truth Lambda function ARNs for <code>AnnotationConsolidationLambdaArn</code>. For custom labeling workflows, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sms-custom-templates-step3.html#sms-custom-templates-step3-postlambda">Post-annotation Lambda</a>.   <b>Bounding box</b> - Finds the most similar boxes from different workers based on the Jaccard index of the boxes. <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:ACS-BoundingBox</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:ACS-BoundingBox</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:ACS-BoundingBox</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:ACS-BoundingBox</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-BoundingBox</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-BoundingBox</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:ACS-BoundingBox</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:ACS-BoundingBox</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-BoundingBox</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:ACS-BoundingBox</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-BoundingBox</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:ACS-BoundingBox</code>  </li> </ul>  <b>Image classification</b> - Uses a variant of the Expectation Maximization approach to estimate the true class of an image based on annotations from individual workers. <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:ACS-ImageMultiClass</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:ACS-ImageMultiClass</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:ACS-ImageMultiClass</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:ACS-ImageMultiClass</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-ImageMultiClass</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-ImageMultiClass</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:ACS-ImageMultiClass</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:ACS-ImageMultiClass</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-ImageMultiClass</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:ACS-ImageMultiClass</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-ImageMultiClass</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:ACS-ImageMultiClass</code>  </li> </ul>  <b>Multi-label image classification</b> - Uses a variant of the Expectation Maximization approach to estimate the true classes of an image based on annotations from individual workers. <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:ACS-ImageMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:ACS-ImageMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:ACS-ImageMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:ACS-ImageMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-ImageMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-ImageMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:ACS-ImageMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:ACS-ImageMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-ImageMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:ACS-ImageMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-ImageMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:ACS-ImageMultiClassMultiLabel</code>  </li> </ul>  <b>Semantic segmentation</b> - Treats each pixel in an image as a multi-class classification and treats pixel annotations from workers as "votes" for the correct label. <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:ACS-SemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:ACS-SemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:ACS-SemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:ACS-SemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-SemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-SemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:ACS-SemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:ACS-SemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-SemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:ACS-SemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-SemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:ACS-SemanticSegmentation</code>  </li> </ul>  <b>Text classification</b> - Uses a variant of the Expectation Maximization approach to estimate the true class of text based on annotations from individual workers. <ul> <li>  <code>rn:aws:lambda:us-east-1:432418664414:function:ACS-TextMultiClass</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:ACS-TextMultiClass</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:ACS-TextMultiClass</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:ACS-TextMultiClass</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-TextMultiClass</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-TextMultiClass</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:ACS-TextMultiClass</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:ACS-TextMultiClass</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-TextMultiClass</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:ACS-TextMultiClass</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-TextMultiClass</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:ACS-TextMultiClass</code>  </li> </ul>  <b>Multi-label text classification</b> - Uses a variant of the Expectation Maximization approach to estimate the true classes of text based on annotations from individual workers. <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:ACS-TextMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:ACS-TextMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:ACS-TextMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:ACS-TextMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-TextMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-TextMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:ACS-TextMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:ACS-TextMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-TextMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:ACS-TextMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-TextMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:ACS-TextMultiClassMultiLabel</code>  </li> </ul>  <b>Named entity recognition</b> - Groups similar selections and calculates aggregate boundaries, resolving to most-assigned label. <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:ACS-NamedEntityRecognition</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:ACS-NamedEntityRecognition</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:ACS-NamedEntityRecognition</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:ACS-NamedEntityRecognition</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-NamedEntityRecognition</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-NamedEntityRecognition</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:ACS-NamedEntityRecognition</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:ACS-NamedEntityRecognition</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-NamedEntityRecognition</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:ACS-NamedEntityRecognition</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-NamedEntityRecognition</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:ACS-NamedEntityRecognition</code>  </li> </ul>  <b>Video Classification</b> - Use this task type when you need workers to classify videos using predefined labels that you specify. Workers are shown videos and are asked to choose one label for each video. <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:ACS-VideoMultiClass</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:ACS-VideoMultiClass</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:ACS-VideoMultiClass</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:ACS-VideoMultiClass</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-VideoMultiClass</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-VideoMultiClass</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:ACS-VideoMultiClass</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:ACS-VideoMultiClass</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-VideoMultiClass</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:ACS-VideoMultiClass</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-VideoMultiClass</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:ACS-VideoMultiClass</code>  </li> </ul>  <b>Video Frame Object Detection</b> - Use this task type to have workers identify and locate objects in a sequence of video frames (images extracted from a video) using bounding boxes. For example, you can use this task to ask workers to identify and localize various objects in a series of video frames, such as cars, bikes, and pedestrians. <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:ACS-VideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:ACS-VideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:ACS-VideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:ACS-VideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-VideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-VideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:ACS-VideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:ACS-VideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-VideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:ACS-VideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-VideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:ACS-VideoObjectDetection</code>  </li> </ul>  <b>Video Frame Object Tracking</b> - Use this task type to have workers track the movement of objects in a sequence of video frames (images extracted from a video) using bounding boxes. For example, you can use this task to ask workers to track the movement of objects, such as cars, bikes, and pedestrians.  <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:ACS-VideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:ACS-VideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:ACS-VideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:ACS-VideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-VideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-VideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:ACS-VideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:ACS-VideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-VideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:ACS-VideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-VideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:ACS-VideoObjectTracking</code>  </li> </ul>  <b>3D Point Cloud Object Detection</b> - Use this task type when you want workers to classify objects in a 3D point cloud by drawing 3D cuboids around objects. For example, you can use this task type to ask workers to identify different types of objects in a point cloud, such as cars, bikes, and pedestrians. <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:ACS-3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:ACS-3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:ACS-3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:ACS-3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:ACS-3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:ACS-3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:ACS-3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:ACS-3DPointCloudObjectDetection</code>  </li> </ul>  <b>3D Point Cloud Object Tracking</b> - Use this task type when you want workers to draw 3D cuboids around objects that appear in a sequence of 3D point cloud frames. For example, you can use this task type to ask workers to track the movement of vehicles across multiple point cloud frames.  <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:ACS-3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:ACS-3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:ACS-3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:ACS-3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:ACS-3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:ACS-3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:ACS-3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:ACS-3DPointCloudObjectTracking</code>  </li> </ul>  <b>3D Point Cloud Semantic Segmentation</b> - Use this task type when you want workers to create a point-level semantic segmentation masks by painting objects in a 3D point cloud using different colors where each color is assigned to one of the classes you specify. <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:ACS-3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:ACS-3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:ACS-3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:ACS-3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:ACS-3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:ACS-3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:ACS-3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:ACS-3DPointCloudSemanticSegmentation</code>  </li> </ul>  <b>Use the following ARNs for Label Verification and Adjustment Jobs</b>  Use label verification and adjustment jobs to review and adjust labels. To learn more, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sms-verification-data.html">Verify and Adjust Labels </a>.  <b>Semantic Segmentation Adjustment</b> - Treats each pixel in an image as a multi-class classification and treats pixel adjusted annotations from workers as "votes" for the correct label. <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:ACS-AdjustmentSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:ACS-AdjustmentSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:ACS-AdjustmentSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:ACS-AdjustmentSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-AdjustmentSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-AdjustmentSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:ACS-AdjustmentSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:ACS-AdjustmentSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-AdjustmentSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:ACS-AdjustmentSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-AdjustmentSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:ACS-AdjustmentSemanticSegmentation</code>  </li> </ul>  <b>Semantic Segmentation Verification</b> - Uses a variant of the Expectation Maximization approach to estimate the true class of verification judgment for semantic segmentation labels based on annotations from individual workers. <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:ACS-VerificationSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:ACS-VerificationSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:ACS-VerificationSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:ACS-VerificationSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-VerificationSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-VerificationSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:ACS-VerificationSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:ACS-VerificationSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-VerificationSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:ACS-VerificationSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-VerificationSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:ACS-VerificationSemanticSegmentation</code>  </li> </ul>  <b>Bounding Box Adjustment</b> - Finds the most similar boxes from different workers based on the Jaccard index of the adjusted annotations. <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:ACS-AdjustmentBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:ACS-AdjustmentBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:ACS-AdjustmentBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:ACS-AdjustmentBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-AdjustmentBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-AdjustmentBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:ACS-AdjustmentBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:ACS-AdjustmentBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-AdjustmentBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:ACS-AdjustmentBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-AdjustmentBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:ACS-AdjustmentBoundingBox</code>  </li> </ul>  <b>Bounding Box Verification</b> - Uses a variant of the Expectation Maximization approach to estimate the true class of verification judgement for bounding box labels based on annotations from individual workers. <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:ACS-VerificationBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:ACS-VerificationBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:ACS-VerificationBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:ACS-VerificationBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-VerificationBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-VerificationBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:ACS-VerificationBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:ACS-VerificationBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-VerificationBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:ACS-VerificationBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-VerificationBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:ACS-VerificationBoundingBox</code>  </li> </ul>  <b>Video Frame Object Detection Adjustment</b> - Use this task type when you want workers to adjust bounding boxes that workers have added to video frames to classify and localize objects in a sequence of video frames. <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:ACS-AdjustmentVideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:ACS-AdjustmentVideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:ACS-AdjustmentVideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:ACS-AdjustmentVideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-AdjustmentVideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-AdjustmentVideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:ACS-AdjustmentVideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:ACS-AdjustmentVideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-AdjustmentVideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:ACS-AdjustmentVideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-AdjustmentVideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:ACS-AdjustmentVideoObjectDetection</code>  </li> </ul>  <b>Video Frame Object Tracking Adjustment</b> - Use this task type when you want workers to adjust bounding boxes that workers have added to video frames to track object movement across a sequence of video frames. <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:ACS-AdjustmentVideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:ACS-AdjustmentVideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:ACS-AdjustmentVideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:ACS-AdjustmentVideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-AdjustmentVideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-AdjustmentVideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:ACS-AdjustmentVideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:ACS-AdjustmentVideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-AdjustmentVideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:ACS-AdjustmentVideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-AdjustmentVideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:ACS-AdjustmentVideoObjectTracking</code>  </li> </ul>  <b>3D Point Cloud Object Detection Adjustment</b> - Use this task type when you want workers to adjust 3D cuboids around objects in a 3D point cloud.  <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:ACS-Adjustment3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:ACS-Adjustment3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:ACS-Adjustment3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:ACS-Adjustment3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-Adjustment3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-Adjustment3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:ACS-Adjustment3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:ACS-Adjustment3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-Adjustment3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:ACS-Adjustment3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-Adjustment3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:ACS-Adjustment3DPointCloudObjectDetection</code>  </li> </ul>  <b>3D Point Cloud Object Tracking Adjustment</b> - Use this task type when you want workers to adjust 3D cuboids around objects that appear in a sequence of 3D point cloud frames. <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:ACS-Adjustment3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:ACS-Adjustment3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:ACS-Adjustment3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:ACS-Adjustment3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-Adjustment3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-Adjustment3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:ACS-Adjustment3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:ACS-Adjustment3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-Adjustment3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:ACS-Adjustment3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-Adjustment3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:ACS-Adjustment3DPointCloudObjectTracking</code>  </li> </ul>  <b>3D Point Cloud Semantic Segmentation Adjustment</b> - Use this task type when you want workers to adjust a point-level semantic segmentation masks using a paint tool. <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:ACS-3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:ACS-Adjustment3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:ACS-Adjustment3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:ACS-Adjustment3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:ACS-Adjustment3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-Adjustment3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-Adjustment3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:ACS-Adjustment3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:ACS-Adjustment3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-Adjustment3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:ACS-Adjustment3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-Adjustment3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:ACS-Adjustment3DPointCloudSemanticSegmentation</code>  </li> </ul><br/>Defines the amount of money paid to an Amazon Mechanical Turk worker in United States dollars.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AmountInUsd</b>: Defines the amount of money paid to an Amazon Mechanical Turk worker in United States dollars.
        :return: LabelingJobArn:  The Amazon Resource Name (ARN) of the labeling job. You use this ARN to identify the labeling job.<br/>        """
        pass

    def create_model(self, ExecutionRoleArn: str, ModelName: str, PrimaryContainer: ContainerDefinition=None, Containers: List[ContainerDefinition]=None, InferenceExecutionConfig: InferenceExecutionConfig=None, Tags: List[Tag]=None, VpcConfig: VpcConfig=None, EnableNetworkIsolation: Boolean=None) -> CreateModelOutput:
        r"""Creates a model in Amazon SageMaker. In the request, you name the model and describe a primary container. For the primary container, you specify the Docker image that contains inference code, artifacts (from prior training), and a custom environment map that the inference code uses when you deploy the model for predictions. Use this API to create a model if you want to use Amazon SageMaker hosting services or run a batch transform job. To host your model, you create an endpoint configuration with the <code>CreateEndpointConfig</code> API, and then create an endpoint with the <code>CreateEndpoint</code> API. Amazon SageMaker then deploys all of the containers that you defined for the model in the hosting environment.  For an example that calls this method when deploying a model to Amazon SageMaker hosting services, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/ex1-deploy-model.html#ex1-deploy-model-boto">Deploy the Model to Amazon SageMaker Hosting Services (Amazon Web Services SDK for Python (Boto 3)).</a>  To run a batch transform using your model, you start a job with the <code>CreateTransformJob</code> API. Amazon SageMaker uses your model and your dataset to get inferences which are then saved to a specified S3 location. In the <code>CreateModel</code> request, you must define a container with the <code>PrimaryContainer</code> parameter. In the request, you also provide an IAM role that Amazon SageMaker can assume to access model artifacts and docker image for deployment on ML compute hosting instances or for batch transform jobs. In addition, you also use the IAM role to manage permissions the inference code needs. For example, if the inference code access any other Amazon Web Services resources, you grant necessary permissions via this role.

        :param self:
        :param EnableNetworkIsolation:  Isolates the model container. No inbound or outbound network calls can be made to or from the model container.<br/>VpcConfig:  A <a>VpcConfig</a> object that specifies the VPC that you want your model to connect to. Control access to and from your model container by configuring the VPC. <code>VpcConfig</code> is used in hosting services and in batch transform. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/host-vpc.html">Protect Endpoints by Using an Amazon Virtual Private Cloud</a> and <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/batch-vpc.html">Protect Data in Batch Transform Jobs by Using an Amazon Virtual Private Cloud</a>.:<br/>Tags:  An array of key-value pairs. You can use tags to categorize your Amazon Web Services resources in different ways, for example, by purpose, owner, or environment. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html">Tagging Amazon Web Services Resources</a>.<br/>ExecutionRoleArn:  The Amazon Resource Name (ARN) of the IAM role that Amazon SageMaker can assume to access model artifacts and docker image for deployment on ML compute instances or for batch transform jobs. Deploying on ML compute instances is part of model hosting. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html">Amazon SageMaker Roles</a>.  <note> To be able to pass this role to Amazon SageMaker, the caller of this API must have the <code>iam:PassRole</code> permission. </note><br/>InferenceExecutionConfig:  Specifies details of how containers in a multi-container endpoint are called.:<br/>Containers:  Specifies the containers in the inference pipeline.<br/>PrimaryContainer:  The location of the primary docker image containing inference code, associated artifacts, and custom environment map that the inference code uses when the model is deployed for predictions. :<br/>ModelName:  The name of the new model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiModelConfig</i> Specifies additional configuration for multi-model endpoints.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>MultiModelConfig</b>: Specifies additional configuration for multi-model endpoints.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ModelPackageName</i> The name or Amazon Resource Name (ARN) of the model package to use to create the model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Environment</i> The environment variables to set in the Docker container. Each key and value in the <code>Environment</code> string to string map can have length of up to 1024. We support up to 16 entries in the map. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ModelDataUrl</i> The S3 path where the model artifacts, which result from model training, are stored. This path must point to a single gzip compressed tar archive (.tar.gz suffix). The S3 path is required for Amazon SageMaker built-in algorithms, but not if you use your own algorithms. For more information on built-in algorithms, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-algo-docker-registry-paths.html">Common Parameters</a>.  <note> The model artifacts must be in an S3 bucket that is in the same region as the model or endpoint you are creating. </note> If you provide a value for this parameter, Amazon SageMaker uses Amazon Web Services Security Token Service to download model artifacts from the S3 path you provide. Amazon Web Services STS is activated in your IAM user account by default. If you previously deactivated Amazon Web Services STS for a region, you need to reactivate Amazon Web Services STS for that region. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html">Activating and Deactivating Amazon Web Services STS in an Amazon Web Services Region</a> in the <i>Amazon Web Services Identity and Access Management User Guide</i>. <important> If you use a built-in algorithm to create a model, Amazon SageMaker requires that you provide a S3 path to the model artifacts in <code>ModelDataUrl</code>. </important><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Mode</i> Whether the container hosts a single model or multiple models.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImageConfig</i> Specifies whether the model container is in Amazon ECR or a private Docker registry accessible from your Amazon Virtual Private Cloud (VPC). For information about storing containers in a private Docker registry, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms-containers-inference-private.html">Use a Private Docker Registry for Real-Time Inference Containers</a> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ImageConfig</b>: Specifies whether the model container is in Amazon ECR or a private Docker registry accessible from your Amazon Virtual Private Cloud (VPC). For information about storing containers in a private Docker registry, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms-containers-inference-private.html">Use a Private Docker Registry for Real-Time Inference Containers</a> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Image</i> The path where inference code is stored. This can be either in Amazon EC2 Container Registry or in a Docker registry that is accessible from the same VPC that you configure for your endpoint. If you are using your own custom algorithm instead of an algorithm provided by Amazon SageMaker, the inference code must meet Amazon SageMaker requirements. Amazon SageMaker supports both <code>registry/repository[:tag]</code> and <code>registry/repository[@digest]</code> image path formats. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms.html">Using Your Own Algorithms with Amazon SageMaker</a> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ContainerHostname</i> This parameter is ignored for models that contain only a <code>PrimaryContainer</code>. When a <code>ContainerDefinition</code> is part of an inference pipeline, the value of the parameter uniquely identifies the container for the purposes of logging and metrics. For information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/inference-pipeline-logs-metrics.html">Use Logs and Metrics to Monitor an Inference Pipeline</a>. If you don't specify a value for this parameter for a <code>ContainerDefinition</code> that is part of an inference pipeline, a unique name is automatically assigned based on the position of the <code>ContainerDefinition</code> in the pipeline. If you specify a value for the <code>ContainerHostName</code> for any <code>ContainerDefinition</code> that is part of an inference pipeline, you must specify a value for the <code>ContainerHostName</code> parameter of every <code>ContainerDefinition</code> in that pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RepositoryAccessMode</i> Set this to one of the following values: <ul> <li>  <code>Platform</code> - The model image is hosted in Amazon ECR. </li> <li>  <code>Vpc</code> - The model image is hosted in a private Docker registry in your VPC. </li> </ul><br/>(Optional) Specifies an authentication configuration for the private docker registry where your model image is hosted. Specify a value for this property only if you specified <code>Vpc</code> as the value for the <code>RepositoryAccessMode</code> field, and the private Docker registry where the model image is hosted requires authentication.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RepositoryAuthConfig</b>: (Optional) Specifies an authentication configuration for the private docker registry where your model image is hosted. Specify a value for this property only if you specified <code>Vpc</code> as the value for the <code>RepositoryAccessMode</code> field, and the private Docker registry where the model image is hosted requires authentication.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ModelCacheSetting</i> Whether to cache models for a multi-model endpoint. By default, multi-model endpoints cache models so that a model does not have to be loaded into memory each time it is invoked. Some use cases do not benefit from model caching. For example, if an endpoint hosts a large number of models that are each invoked infrequently, the endpoint might perform better if you disable model caching. To disable model caching, set the value of this parameter to <code>Disabled</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Mode</i> How containers in a multi-container are run. The following values are valid. <ul> <li>  <code>SERIAL</code> - Containers run as a serial pipeline. </li> <li>  <code>DIRECT</code> - Only the individual container that you specify is run. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Subnets</i> The ID of the subnets in the VPC to which you want to connect your training job or model. For information about the availability of specific instance types, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/instance-types-az.html">Supported Instance Types and Availability Zones</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> The VPC security group IDs, in the form sg-xxxxxxxx. Specify the security groups for the VPC that is specified in the <code>Subnets</code> field.<br/>
        :return: ModelArn:  The ARN of the model created in Amazon SageMaker.<br/>        """
        pass

    def create_model_bias_job_definition(self, RoleArn: str, JobResources: MonitoringResources, ModelBiasJobOutputConfig: MonitoringOutputConfig, ModelBiasJobInput: ModelBiasJobInput, ModelBiasAppSpecification: ModelBiasAppSpecification, JobDefinitionName: str, ModelBiasBaselineConfig: ModelBiasBaselineConfig=None, NetworkConfig: MonitoringNetworkConfig=None, StoppingCondition: MonitoringStoppingCondition=None, Tags: List[Tag]=None) -> CreateModelBiasJobDefinitionResponse:
        r"""Creates the definition for a model bias job.

        :param self:
        :param Tags:  (Optional) An array of key-value pairs. For more information, see <a href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html#allocation-whatURL">Using Cost Allocation Tags</a> in the <i>Amazon Web Services Billing and Cost Management User Guide</i>.<br/>StoppingCondition:  A time limit for how long the monitoring job is allowed to run before stopping.:<br/>RoleArn:  The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can assume to perform tasks on your behalf.<br/>NetworkConfig:  Networking options for a model bias job.:<br/>JobResources:  Identifies the resources to deploy for a monitoring job.:<br/>ModelBiasJobOutputConfig:  The output configuration for monitoring jobs.:<br/>ModelBiasJobInput:  Inputs for the model bias job.:<br/>ModelBiasAppSpecification:  Configures the model bias job to run a specified Docker container image.:<br/>ModelBiasBaselineConfig:  The baseline configuration for a model bias job.:<br/>JobDefinitionName:  The name of the bias job definition. The name must be unique within an Amazon Web Services Region in the Amazon Web Services account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConstraintsResource</i> The constraints resource for a monitoring job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ConstraintsResource</b>: The constraints resource for a monitoring job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BaseliningJobName</i> The name of the baseline model bias job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Uri</i> The Amazon S3 URI for the constraints resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Environment</i> Sets the environment variables in the Docker container.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConfigUri</i> JSON formatted S3 file that defines bias parameters. For more information on this JSON configuration file, see <a href="https://docs.aws.amazon.com/sagemaker/latest/json-bias-parameter-config.html">Configure bias parameters</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImageUri</i> The container image to be run by the model bias job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GroundTruthS3Input</i> Location of ground truth labels to use in model bias job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>GroundTruthS3Input</b>: Location of ground truth labels to use in model bias job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointInput</i> Input object for the endpoint&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EndpointInput</b>: Input object for the endpoint<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EndTimeOffset</i> If specified, monitoring jobs substract this time from the end time. For information about using offsets for scheduling monitoring jobs, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/model-monitor-model-quality-schedule.html">Schedule Model Quality Monitoring Jobs</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StartTimeOffset</i> If specified, monitoring jobs substract this time from the start time. For information about using offsets for scheduling monitoring jobs, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/model-monitor-model-quality-schedule.html">Schedule Model Quality Monitoring Jobs</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ProbabilityThresholdAttribute</i> The threshold for the class probability to be evaluated as a positive result.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ProbabilityAttribute</i> In a classification problem, the attribute that represents the class probability.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InferenceAttribute</i> The attribute of the input data that represents the ground truth label.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FeaturesAttribute</i> The attributes of the input data that are the input features.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3DataDistributionType</i> Whether input data distributed in Amazon S3 is fully replicated or sharded by an S3 key. Defaults to <code>FullyReplicated</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3InputMode</i> Whether the <code>Pipe</code> or <code>File</code> is used as the input mode for transfering data for the monitoring job. <code>Pipe</code> mode is recommended for large datasets. <code>File</code> mode is useful for small files that fit in memory. Defaults to <code>File</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LocalPath</i> Path to the filesystem where the endpoint data is available to the container.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointName</i> An endpoint in customer's account which has enabled <code>DataCaptureConfig</code> enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Uri</i> The address of the Amazon S3 location of the ground truth labels.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The Amazon Web Services Key Management Service (Amazon Web Services KMS) key that Amazon SageMaker uses to encrypt the model artifacts at rest using Amazon S3 server-side encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MonitoringOutputs</i> Monitoring outputs for monitoring jobs. This is where the output of the periodic monitoring jobs is uploaded.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterConfig</i> The configuration for the cluster resources used to run the processing job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ClusterConfig</b>: The configuration for the cluster resources used to run the processing job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VolumeKmsKeyId</i> The Amazon Web Services Key Management Service (Amazon Web Services KMS) key that Amazon SageMaker uses to encrypt data on the storage volume attached to the ML compute instance(s) that run the model monitoring job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VolumeSizeInGB</i> The size of the ML storage volume, in gigabytes, that you want to provision. You must specify sufficient ML storage for your scenario.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceType</i> The ML compute instance type for the processing job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceCount</i> The number of ML compute instances to use in the model monitoring job. For distributed processing jobs, specify a value greater than 1. The default value is 1.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcConfig</i> Specifies a VPC that your training jobs and hosted models have access to. Control access to and from your training and model containers by configuring the VPC. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/host-vpc.html">Protect Endpoints by Using an Amazon Virtual Private Cloud</a> and <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/train-vpc.html">Protect Training Jobs by Using an Amazon Virtual Private Cloud</a>. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>VpcConfig</b>: Specifies a VPC that your training jobs and hosted models have access to. Control access to and from your training and model containers by configuring the VPC. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/host-vpc.html">Protect Endpoints by Using an Amazon Virtual Private Cloud</a> and <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/train-vpc.html">Protect Training Jobs by Using an Amazon Virtual Private Cloud</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableNetworkIsolation</i> Whether to allow inbound and outbound network calls to and from the containers used for the monitoring job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableInterContainerTrafficEncryption</i> Whether to encrypt all communications between the instances used for the monitoring jobs. Choose <code>True</code> to encrypt communications. Encryption provides greater security for distributed jobs, but the processing might take longer.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Subnets</i> The ID of the subnets in the VPC to which you want to connect your training job or model. For information about the availability of specific instance types, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/instance-types-az.html">Supported Instance Types and Availability Zones</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> The VPC security group IDs, in the form sg-xxxxxxxx. Specify the security groups for the VPC that is specified in the <code>Subnets</code> field.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxRuntimeInSeconds</i> The maximum runtime allowed in seconds. <note> The <code>MaxRuntimeInSeconds</code> cannot exceed the frequency of the job. For data quality and model explainability, this can be up to 3600 seconds for an hourly schedule. For model bias and model quality hourly schedules, this can be up to 1800 seconds. </note><br/>
        :return: JobDefinitionArn:  The Amazon Resource Name (ARN) of the model bias job.<br/>        """
        pass

    def create_model_explainability_job_definition(self, RoleArn: str, JobResources: MonitoringResources, ModelExplainabilityJobOutputConfig: MonitoringOutputConfig, ModelExplainabilityJobInput: ModelExplainabilityJobInput, ModelExplainabilityAppSpecification: ModelExplainabilityAppSpecification, JobDefinitionName: str, ModelExplainabilityBaselineConfig: ModelExplainabilityBaselineConfig=None, NetworkConfig: MonitoringNetworkConfig=None, StoppingCondition: MonitoringStoppingCondition=None, Tags: List[Tag]=None) -> CreateModelExplainabilityJobDefinitionResponse:
        r"""Creates the definition for a model explainability job.

        :param self:
        :param Tags:  (Optional) An array of key-value pairs. For more information, see <a href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html#allocation-whatURL">Using Cost Allocation Tags</a> in the <i>Amazon Web Services Billing and Cost Management User Guide</i>.<br/>StoppingCondition:  A time limit for how long the monitoring job is allowed to run before stopping.:<br/>RoleArn:  The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can assume to perform tasks on your behalf.<br/>NetworkConfig:  Networking options for a model explainability job.:<br/>JobResources:  Identifies the resources to deploy for a monitoring job.:<br/>ModelExplainabilityJobOutputConfig:  The output configuration for monitoring jobs.:<br/>ModelExplainabilityJobInput:  Inputs for the model explainability job.:<br/>ModelExplainabilityAppSpecification:  Configures the model explainability job to run a specified Docker container image.:<br/>ModelExplainabilityBaselineConfig:  The baseline configuration for a model explainability job.:<br/>JobDefinitionName:   The name of the model explainability job definition. The name must be unique within an Amazon Web Services Region in the Amazon Web Services account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConstraintsResource</i> The constraints resource for a monitoring job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ConstraintsResource</b>: The constraints resource for a monitoring job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BaseliningJobName</i> The name of the baseline model explainability job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Uri</i> The Amazon S3 URI for the constraints resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Environment</i> Sets the environment variables in the Docker container.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConfigUri</i> JSON formatted S3 file that defines explainability parameters. For more information on this JSON configuration file, see <a href="https://docs.aws.amazon.com/sagemaker/latest/json-model-explainability-parameter-config.html">Configure model explainability parameters</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImageUri</i> The container image to be run by the model explainability job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointInput</i> Input object for the endpoint&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EndpointInput</b>: Input object for the endpoint<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EndTimeOffset</i> If specified, monitoring jobs substract this time from the end time. For information about using offsets for scheduling monitoring jobs, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/model-monitor-model-quality-schedule.html">Schedule Model Quality Monitoring Jobs</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StartTimeOffset</i> If specified, monitoring jobs substract this time from the start time. For information about using offsets for scheduling monitoring jobs, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/model-monitor-model-quality-schedule.html">Schedule Model Quality Monitoring Jobs</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ProbabilityThresholdAttribute</i> The threshold for the class probability to be evaluated as a positive result.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ProbabilityAttribute</i> In a classification problem, the attribute that represents the class probability.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InferenceAttribute</i> The attribute of the input data that represents the ground truth label.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FeaturesAttribute</i> The attributes of the input data that are the input features.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3DataDistributionType</i> Whether input data distributed in Amazon S3 is fully replicated or sharded by an S3 key. Defaults to <code>FullyReplicated</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3InputMode</i> Whether the <code>Pipe</code> or <code>File</code> is used as the input mode for transfering data for the monitoring job. <code>Pipe</code> mode is recommended for large datasets. <code>File</code> mode is useful for small files that fit in memory. Defaults to <code>File</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LocalPath</i> Path to the filesystem where the endpoint data is available to the container.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointName</i> An endpoint in customer's account which has enabled <code>DataCaptureConfig</code> enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The Amazon Web Services Key Management Service (Amazon Web Services KMS) key that Amazon SageMaker uses to encrypt the model artifacts at rest using Amazon S3 server-side encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MonitoringOutputs</i> Monitoring outputs for monitoring jobs. This is where the output of the periodic monitoring jobs is uploaded.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterConfig</i> The configuration for the cluster resources used to run the processing job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ClusterConfig</b>: The configuration for the cluster resources used to run the processing job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VolumeKmsKeyId</i> The Amazon Web Services Key Management Service (Amazon Web Services KMS) key that Amazon SageMaker uses to encrypt data on the storage volume attached to the ML compute instance(s) that run the model monitoring job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VolumeSizeInGB</i> The size of the ML storage volume, in gigabytes, that you want to provision. You must specify sufficient ML storage for your scenario.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceType</i> The ML compute instance type for the processing job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceCount</i> The number of ML compute instances to use in the model monitoring job. For distributed processing jobs, specify a value greater than 1. The default value is 1.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcConfig</i> Specifies a VPC that your training jobs and hosted models have access to. Control access to and from your training and model containers by configuring the VPC. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/host-vpc.html">Protect Endpoints by Using an Amazon Virtual Private Cloud</a> and <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/train-vpc.html">Protect Training Jobs by Using an Amazon Virtual Private Cloud</a>. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>VpcConfig</b>: Specifies a VPC that your training jobs and hosted models have access to. Control access to and from your training and model containers by configuring the VPC. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/host-vpc.html">Protect Endpoints by Using an Amazon Virtual Private Cloud</a> and <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/train-vpc.html">Protect Training Jobs by Using an Amazon Virtual Private Cloud</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableNetworkIsolation</i> Whether to allow inbound and outbound network calls to and from the containers used for the monitoring job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableInterContainerTrafficEncryption</i> Whether to encrypt all communications between the instances used for the monitoring jobs. Choose <code>True</code> to encrypt communications. Encryption provides greater security for distributed jobs, but the processing might take longer.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Subnets</i> The ID of the subnets in the VPC to which you want to connect your training job or model. For information about the availability of specific instance types, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/instance-types-az.html">Supported Instance Types and Availability Zones</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> The VPC security group IDs, in the form sg-xxxxxxxx. Specify the security groups for the VPC that is specified in the <code>Subnets</code> field.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxRuntimeInSeconds</i> The maximum runtime allowed in seconds. <note> The <code>MaxRuntimeInSeconds</code> cannot exceed the frequency of the job. For data quality and model explainability, this can be up to 3600 seconds for an hourly schedule. For model bias and model quality hourly schedules, this can be up to 1800 seconds. </note><br/>
        :return: JobDefinitionArn:  The Amazon Resource Name (ARN) of the model explainability job.<br/>        """
        pass

    def create_model_package(self, ModelPackageName: str=None, ModelPackageGroupName: str=None, ModelPackageDescription: str=None, InferenceSpecification: InferenceSpecification=None, ValidationSpecification: ModelPackageValidationSpecification=None, SourceAlgorithmSpecification: SourceAlgorithmSpecification=None, CertifyForMarketplace: CertifyForMarketplace=None, Tags: List[Tag]=None, ModelApprovalStatus: str=None, MetadataProperties: MetadataProperties=None, ModelMetrics: ModelMetrics=None, ClientToken: str=None) -> CreateModelPackageOutput:
        r"""Creates a model package that you can use to create Amazon SageMaker models or list on Amazon Web Services Marketplace, or a versioned model that is part of a model group. Buyers can subscribe to model packages listed on Amazon Web Services Marketplace to create models in Amazon SageMaker. To create a model package by specifying a Docker container that contains your inference code and the Amazon S3 location of your model artifacts, provide values for <code>InferenceSpecification</code>. To create a model from an algorithm resource that you created or subscribed to in Amazon Web Services Marketplace, provide a value for <code>SourceAlgorithmSpecification</code>. <note> There are two types of model packages: <ul> <li> Versioned - a model that is part of a model group in the model registry. </li> <li> Unversioned - a model package that is not part of a model group. </li> </ul> </note>

        :param self:
        :param ClientToken:  A unique token that guarantees that the call to this API is idempotent.<br/>ModelMetrics:  A structure that contains model metrics reports.:<br/>MetadataProperties:  Metadata properties of the tracking entity, trial, or trial component.:<br/>ModelApprovalStatus:  Whether the model is approved for deployment. This parameter is optional for versioned models, and does not apply to unversioned models. For versioned models, the value of this parameter must be set to <code>Approved</code> to deploy the model.<br/>Tags:  A list of key value pairs associated with the model. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html">Tagging Amazon Web Services resources</a> in the <i>Amazon Web Services General Reference Guide</i>.<br/>CertifyForMarketplace:  Whether to certify the model package for listing on Amazon Web Services Marketplace. This parameter is optional for unversioned models, and does not apply to versioned models.<br/>SourceAlgorithmSpecification:  Details about the algorithm that was used to create the model package.:<br/>ValidationSpecification:  Specifies configurations for one or more transform jobs that Amazon SageMaker runs to test the model package.:<br/>InferenceSpecification:  Specifies details about inference jobs that can be run with models based on this model package, including the following: <ul> <li> The Amazon ECR paths of containers that contain the inference code and model artifacts. </li> <li> The instance types that the model package supports for transform jobs and real-time endpoints used for inference. </li> <li> The input and output content formats that the model package supports for inference. </li> </ul>:<br/>ModelPackageDescription:  A description of the model package.<br/>ModelPackageGroupName:  The name of the model group that this model version belongs to. This parameter is required for versioned models, and does not apply to unversioned models.<br/>ModelPackageName:  The name of the model package. The name must have 1 to 63 characters. Valid characters are a-z, A-Z, 0-9, and - (hyphen). This parameter is required for unversioned models. It is not applicable to versioned models.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SupportedResponseMIMETypes</i> The supported MIME types for the output data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SupportedContentTypes</i> The supported MIME types for the input data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SupportedRealtimeInferenceInstanceTypes</i> A list of the instance types that are used to generate inferences in real-time. This parameter is required for unversioned models, and optional for versioned models.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SupportedTransformInstanceTypes</i> A list of the instance types on which a transformation job can be run or on which an endpoint can be deployed. This parameter is required for unversioned models, and optional for versioned models.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Containers</i> The Amazon ECR registry path of the Docker image that contains the inference code.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ValidationProfiles</i> An array of <code>ModelPackageValidationProfile</code> objects, each of which specifies a batch transform job that Amazon SageMaker runs to validate your model package.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ValidationRole</i> The IAM roles to be used for the validation of the model package.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceAlgorithms</i> A list of the algorithms that were used to create a model package.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProjectId</i> The project ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GeneratedBy</i> The entity this entity was generated by.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Repository</i> The repository.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CommitId</i> The commit ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Explainability</i> Metrics that help explain a model.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Explainability</b>: Metrics that help explain a model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Bias</i> Metrics that measure bais in a model.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Bias</b>: Metrics that measure bais in a model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ModelDataQuality</i> Metrics that measure the quality of the input data for a model.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ModelDataQuality</b>: Metrics that measure the quality of the input data for a model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ModelQuality</i> Metrics that measure the quality of a model.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ModelQuality</b>: Metrics that measure the quality of a model.<br/>Model quality statistics.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Statistics</b>: Model quality statistics.Data quality statistics for a model.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Statistics</b>: Data quality statistics for a model.The bias report for a model&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Report</b>: The bias report for a modelThe explainability report for a model.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Report</b>: The explainability report for a model.
        :return: ModelPackageArn:  The Amazon Resource Name (ARN) of the new model package.<br/>        """
        pass

    def create_model_package_group(self, ModelPackageGroupName: str, ModelPackageGroupDescription: str=None, Tags: List[Tag]=None) -> CreateModelPackageGroupOutput:
        r"""Creates a model group. A model group contains a group of model versions.

        :param self:
        :param Tags:  A list of key value pairs associated with the model group. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html">Tagging Amazon Web Services resources</a> in the <i>Amazon Web Services General Reference Guide</i>.<br/>ModelPackageGroupDescription:  A description for the model group.<br/>ModelPackageGroupName:  The name of the model group.<br/>
        :return: ModelPackageGroupArn:  The Amazon Resource Name (ARN) of the model group.<br/>        """
        pass

    def create_model_quality_job_definition(self, RoleArn: str, JobResources: MonitoringResources, ModelQualityJobOutputConfig: MonitoringOutputConfig, ModelQualityJobInput: ModelQualityJobInput, ModelQualityAppSpecification: ModelQualityAppSpecification, JobDefinitionName: str, ModelQualityBaselineConfig: ModelQualityBaselineConfig=None, NetworkConfig: MonitoringNetworkConfig=None, StoppingCondition: MonitoringStoppingCondition=None, Tags: List[Tag]=None) -> CreateModelQualityJobDefinitionResponse:
        r"""Creates a definition for a job that monitors model quality and drift. For information about model monitor, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/model-monitor.html">Amazon SageMaker Model Monitor</a>.

        :param self:
        :param Tags:  (Optional) An array of key-value pairs. For more information, see <a href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html#allocation-whatURL">Using Cost Allocation Tags</a> in the <i>Amazon Web Services Billing and Cost Management User Guide</i>.<br/>StoppingCondition:  A time limit for how long the monitoring job is allowed to run before stopping.:<br/>RoleArn:  The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can assume to perform tasks on your behalf.<br/>NetworkConfig:  Specifies the network configuration for the monitoring job.:<br/>JobResources:  Identifies the resources to deploy for a monitoring job.:<br/>ModelQualityJobOutputConfig:  The output configuration for monitoring jobs.:<br/>ModelQualityJobInput:  A list of the inputs that are monitored. Currently endpoints are supported.:<br/>ModelQualityAppSpecification:  The container that runs the monitoring job.:<br/>ModelQualityBaselineConfig:  Specifies the constraints and baselines for the monitoring job.:<br/>JobDefinitionName:  The name of the monitoring job definition.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConstraintsResource</i> The constraints resource for a monitoring job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ConstraintsResource</b>: The constraints resource for a monitoring job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BaseliningJobName</i> The name of the job that performs baselining for the monitoring job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Uri</i> The Amazon S3 URI for the constraints resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Environment</i> Sets the environment variables in the container that the monitoring job runs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProblemType</i> The machine learning problem type of the model that the monitoring job monitors.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PostAnalyticsProcessorSourceUri</i> An Amazon S3 URI to a script that is called after analysis has been performed. Applicable only for the built-in (first party) containers.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecordPreprocessorSourceUri</i> An Amazon S3 URI to a script that is called per row prior to running analysis. It can base64 decode the payload and convert it into a flatted json so that the built-in container can use the converted data. Applicable only for the built-in (first party) containers.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ContainerArguments</i> An array of arguments for the container used to run the monitoring job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ContainerEntrypoint</i> Specifies the entrypoint for a container that the monitoring job runs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImageUri</i> The address of the container image that the monitoring job runs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GroundTruthS3Input</i> The ground truth label provided for the model.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>GroundTruthS3Input</b>: The ground truth label provided for the model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointInput</i> Input object for the endpoint&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EndpointInput</b>: Input object for the endpoint<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EndTimeOffset</i> If specified, monitoring jobs substract this time from the end time. For information about using offsets for scheduling monitoring jobs, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/model-monitor-model-quality-schedule.html">Schedule Model Quality Monitoring Jobs</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StartTimeOffset</i> If specified, monitoring jobs substract this time from the start time. For information about using offsets for scheduling monitoring jobs, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/model-monitor-model-quality-schedule.html">Schedule Model Quality Monitoring Jobs</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ProbabilityThresholdAttribute</i> The threshold for the class probability to be evaluated as a positive result.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ProbabilityAttribute</i> In a classification problem, the attribute that represents the class probability.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InferenceAttribute</i> The attribute of the input data that represents the ground truth label.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FeaturesAttribute</i> The attributes of the input data that are the input features.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3DataDistributionType</i> Whether input data distributed in Amazon S3 is fully replicated or sharded by an S3 key. Defaults to <code>FullyReplicated</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3InputMode</i> Whether the <code>Pipe</code> or <code>File</code> is used as the input mode for transfering data for the monitoring job. <code>Pipe</code> mode is recommended for large datasets. <code>File</code> mode is useful for small files that fit in memory. Defaults to <code>File</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LocalPath</i> Path to the filesystem where the endpoint data is available to the container.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointName</i> An endpoint in customer's account which has enabled <code>DataCaptureConfig</code> enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Uri</i> The address of the Amazon S3 location of the ground truth labels.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The Amazon Web Services Key Management Service (Amazon Web Services KMS) key that Amazon SageMaker uses to encrypt the model artifacts at rest using Amazon S3 server-side encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MonitoringOutputs</i> Monitoring outputs for monitoring jobs. This is where the output of the periodic monitoring jobs is uploaded.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterConfig</i> The configuration for the cluster resources used to run the processing job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ClusterConfig</b>: The configuration for the cluster resources used to run the processing job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VolumeKmsKeyId</i> The Amazon Web Services Key Management Service (Amazon Web Services KMS) key that Amazon SageMaker uses to encrypt data on the storage volume attached to the ML compute instance(s) that run the model monitoring job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VolumeSizeInGB</i> The size of the ML storage volume, in gigabytes, that you want to provision. You must specify sufficient ML storage for your scenario.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceType</i> The ML compute instance type for the processing job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceCount</i> The number of ML compute instances to use in the model monitoring job. For distributed processing jobs, specify a value greater than 1. The default value is 1.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcConfig</i> Specifies a VPC that your training jobs and hosted models have access to. Control access to and from your training and model containers by configuring the VPC. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/host-vpc.html">Protect Endpoints by Using an Amazon Virtual Private Cloud</a> and <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/train-vpc.html">Protect Training Jobs by Using an Amazon Virtual Private Cloud</a>. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>VpcConfig</b>: Specifies a VPC that your training jobs and hosted models have access to. Control access to and from your training and model containers by configuring the VPC. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/host-vpc.html">Protect Endpoints by Using an Amazon Virtual Private Cloud</a> and <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/train-vpc.html">Protect Training Jobs by Using an Amazon Virtual Private Cloud</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableNetworkIsolation</i> Whether to allow inbound and outbound network calls to and from the containers used for the monitoring job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableInterContainerTrafficEncryption</i> Whether to encrypt all communications between the instances used for the monitoring jobs. Choose <code>True</code> to encrypt communications. Encryption provides greater security for distributed jobs, but the processing might take longer.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Subnets</i> The ID of the subnets in the VPC to which you want to connect your training job or model. For information about the availability of specific instance types, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/instance-types-az.html">Supported Instance Types and Availability Zones</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> The VPC security group IDs, in the form sg-xxxxxxxx. Specify the security groups for the VPC that is specified in the <code>Subnets</code> field.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxRuntimeInSeconds</i> The maximum runtime allowed in seconds. <note> The <code>MaxRuntimeInSeconds</code> cannot exceed the frequency of the job. For data quality and model explainability, this can be up to 3600 seconds for an hourly schedule. For model bias and model quality hourly schedules, this can be up to 1800 seconds. </note><br/>
        :return: JobDefinitionArn:  The Amazon Resource Name (ARN) of the model quality monitoring job.<br/>        """
        pass

    def create_monitoring_schedule(self, MonitoringScheduleConfig: MonitoringScheduleConfig, MonitoringScheduleName: str, Tags: List[Tag]=None) -> CreateMonitoringScheduleResponse:
        r"""Creates a schedule that regularly starts Amazon SageMaker Processing Jobs to monitor the data captured for an Amazon SageMaker Endoint.

        :param self:
        :param Tags:  (Optional) An array of key-value pairs. For more information, see <a href=" https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html#allocation-whatURL">Using Cost Allocation Tags</a> in the <i>Amazon Web Services Billing and Cost Management User Guide</i>.<br/>MonitoringScheduleConfig:  The configuration object that specifies the monitoring schedule and defines the monitoring job.:<br/>MonitoringScheduleName:  The name of the monitoring schedule. The name must be unique within an Amazon Web Services Region within an Amazon Web Services account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MonitoringType</i> The type of the monitoring job definition to schedule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MonitoringJobDefinitionName</i> The name of the monitoring job definition to schedule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MonitoringJobDefinition</i> Defines the monitoring job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>MonitoringJobDefinition</b>: Defines the monitoring job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ScheduleConfig</i> Configures the monitoring schedule.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ScheduleConfig</b>: Configures the monitoring schedule.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ScheduleExpression</i> A cron expression that describes details about the monitoring schedule. Currently the only supported cron expressions are: <ul> <li> If you want to set the job to start every hour, please use the following:  <code>Hourly: cron(0 * ? * * *)</code>  </li> <li> If you want to start the job daily:  <code>cron(0 [00-23] ? * * *)</code>  </li> </ul> For example, the following are valid cron expressions: <ul> <li> Daily at noon UTC: <code>cron(0 12 ? * * *)</code>  </li> <li> Daily at midnight UTC: <code>cron(0 0 ? * * *)</code>  </li> </ul> To support running every 6, 12 hours, the following are also supported:  <code>cron(0 [00-23]/[01-24] ? * * *)</code>  For example, the following are valid cron expressions: <ul> <li> Every 12 hours, starting at 5pm UTC: <code>cron(0 17/12 ? * * *)</code>  </li> <li> Every two hours starting at midnight: <code>cron(0 0/2 ? * * *)</code>  </li> </ul> <note> <ul> <li> Even though the cron expression is set to start at 5PM UTC, note that there could be a delay of 0-20 minutes from the actual requested time to run the execution.  </li> <li> We recommend that if you would like a daily schedule, you do not provide this parameter. Amazon SageMaker will pick a time for running every day. </li> </ul> </note><br/>Baseline configuration used to validate that the data conforms to the specified constraints and statistics&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>BaselineConfig</b>: Baseline configuration used to validate that the data conforms to the specified constraints and statistics
        :return: MonitoringScheduleArn:  The Amazon Resource Name (ARN) of the monitoring schedule.<br/>        """
        pass

    def create_notebook_instance(self, RoleArn: str, InstanceType: str, NotebookInstanceName: str, SubnetId: str=None, SecurityGroupIds: List[SecurityGroupId]=None, KmsKeyId: str=None, Tags: List[Tag]=None, LifecycleConfigName: str=None, DirectInternetAccess: str=None, VolumeSizeInGB: int=None, AcceleratorTypes: List[NotebookInstanceAcceleratorType]=None, DefaultCodeRepository: str=None, AdditionalCodeRepositories: List[CodeRepositoryNameOrUrl]=None, RootAccess: str=None) -> CreateNotebookInstanceOutput:
        r"""Creates an Amazon SageMaker notebook instance. A notebook instance is a machine learning (ML) compute instance running on a Jupyter notebook.  In a <code>CreateNotebookInstance</code> request, specify the type of ML compute instance that you want to run. Amazon SageMaker launches the instance, installs common libraries that you can use to explore datasets for model training, and attaches an ML storage volume to the notebook instance.  Amazon SageMaker also provides a set of example notebooks. Each notebook demonstrates how to use Amazon SageMaker with a specific algorithm or with a machine learning framework.  After receiving the request, Amazon SageMaker does the following: <ol> <li> Creates a network interface in the Amazon SageMaker VPC. </li> <li> (Option) If you specified <code>SubnetId</code>, Amazon SageMaker creates a network interface in your own VPC, which is inferred from the subnet ID that you provide in the input. When creating this network interface, Amazon SageMaker attaches the security group that you specified in the request to the network interface that it creates in your VPC. </li> <li> Launches an EC2 instance of the type specified in the request in the Amazon SageMaker VPC. If you specified <code>SubnetId</code> of your VPC, Amazon SageMaker specifies both network interfaces when launching this instance. This enables inbound traffic from your own VPC to the notebook instance, assuming that the security groups allow it. </li> </ol> After creating the notebook instance, Amazon SageMaker returns its Amazon Resource Name (ARN). You can't change the name of a notebook instance after you create it. After Amazon SageMaker creates the notebook instance, you can connect to the Jupyter server and work in Jupyter notebooks. For example, you can write code to explore a dataset that you can use for model training, train a model, host models by creating Amazon SageMaker endpoints, and validate hosted models.  For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/how-it-works.html">How It Works</a>. 

        :param self:
        :param RootAccess:  Whether root access is enabled or disabled for users of the notebook instance. The default value is <code>Enabled</code>. <note> Lifecycle configurations need root access to be able to set up a notebook instance. Because of this, lifecycle configurations associated with a notebook instance always run with root access even if you disable root access for users. </note><br/>AdditionalCodeRepositories:  An array of up to three Git repositories to associate with the notebook instance. These can be either the names of Git repositories stored as resources in your account, or the URL of Git repositories in <a href="https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html">Amazon Web Services CodeCommit</a> or in any other Git repository. These repositories are cloned at the same level as the default repository of your notebook instance. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/nbi-git-repo.html">Associating Git Repositories with Amazon SageMaker Notebook Instances</a>.<br/>DefaultCodeRepository:  A Git repository to associate with the notebook instance as its default code repository. This can be either the name of a Git repository stored as a resource in your account, or the URL of a Git repository in <a href="https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html">Amazon Web Services CodeCommit</a> or in any other Git repository. When you open a notebook instance, it opens in the directory that contains this repository. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/nbi-git-repo.html">Associating Git Repositories with Amazon SageMaker Notebook Instances</a>.<br/>AcceleratorTypes:  A list of Elastic Inference (EI) instance types to associate with this notebook instance. Currently, only one instance type can be associated with a notebook instance. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/ei.html">Using Elastic Inference in Amazon SageMaker</a>.<br/>VolumeSizeInGB:  The size, in GB, of the ML storage volume to attach to the notebook instance. The default value is 5 GB.<br/>DirectInternetAccess:  Sets whether Amazon SageMaker provides internet access to the notebook instance. If you set this to <code>Disabled</code> this notebook instance is able to access resources only in your VPC, and is not be able to connect to Amazon SageMaker training and endpoint services unless you configure a NAT Gateway in your VPC. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/appendix-additional-considerations.html#appendix-notebook-and-internet-access">Notebook Instances Are Internet-Enabled by Default</a>. You can set the value of this parameter to <code>Disabled</code> only if you set a value for the <code>SubnetId</code> parameter.<br/>LifecycleConfigName:  The name of a lifecycle configuration to associate with the notebook instance. For information about lifestyle configurations, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/notebook-lifecycle-config.html">Step 2.1: (Optional) Customize a Notebook Instance</a>.<br/>Tags:  An array of key-value pairs. You can use tags to categorize your Amazon Web Services resources in different ways, for example, by purpose, owner, or environment. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html">Tagging Amazon Web Services Resources</a>.<br/>KmsKeyId:  The Amazon Resource Name (ARN) of a Amazon Web Services Key Management Service key that Amazon SageMaker uses to encrypt data on the storage volume attached to your notebook instance. The KMS key you provide must be enabled. For information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/enabling-keys.html">Enabling and Disabling Keys</a> in the <i>Amazon Web Services Key Management Service Developer Guide</i>.<br/>RoleArn:   When you send any requests to Amazon Web Services resources from the notebook instance, Amazon SageMaker assumes this role to perform tasks on your behalf. You must grant this role necessary permissions so Amazon SageMaker can perform these tasks. The policy must allow the Amazon SageMaker service principal (sagemaker.amazonaws.com) permissions to assume this role. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html">Amazon SageMaker Roles</a>.  <note> To be able to pass this role to Amazon SageMaker, the caller of this API must have the <code>iam:PassRole</code> permission. </note><br/>SecurityGroupIds:  The VPC security group IDs, in the form sg-xxxxxxxx. The security groups must be for the same VPC as specified in the subnet. <br/>SubnetId:  The ID of the subnet in a VPC to which you would like to have a connectivity from your ML compute instance. <br/>InstanceType:  The type of ML compute instance to launch for the notebook instance.<br/>NotebookInstanceName:  The name of the new notebook instance.<br/>
        :return: NotebookInstanceArn:  The Amazon Resource Name (ARN) of the notebook instance. <br/>        """
        pass

    def create_notebook_instance_lifecycle_config(self, NotebookInstanceLifecycleConfigName: str, OnCreate: List[NotebookInstanceLifecycleHook]=None, OnStart: List[NotebookInstanceLifecycleHook]=None) -> CreateNotebookInstanceLifecycleConfigOutput:
        r"""Creates a lifecycle configuration that you can associate with a notebook instance. A <i>lifecycle configuration</i> is a collection of shell scripts that run when you create or start a notebook instance. Each lifecycle configuration script has a limit of 16384 characters. The value of the <code>$PATH</code> environment variable that is available to both scripts is <code>/sbin:bin:/usr/sbin:/usr/bin</code>. View CloudWatch Logs for notebook instance lifecycle configurations in log group <code>/aws/sagemaker/NotebookInstances</code> in log stream <code>[notebook-instance-name]/[LifecycleConfigHook]</code>. Lifecycle configuration scripts cannot run for longer than 5 minutes. If a script runs for longer than 5 minutes, it fails and the notebook instance is not created or started. For information about notebook instance lifestyle configurations, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/notebook-lifecycle-config.html">Step 2.1: (Optional) Customize a Notebook Instance</a>.

        :param self:
        :param OnStart:  A shell script that runs every time you start a notebook instance, including when you create the notebook instance. The shell script must be a base64-encoded string.<br/>OnCreate:  A shell script that runs only once, when you create a notebook instance. The shell script must be a base64-encoded string.<br/>NotebookInstanceLifecycleConfigName:  The name of the lifecycle configuration.<br/>
        :return: NotebookInstanceLifecycleConfigArn:  The Amazon Resource Name (ARN) of the lifecycle configuration.<br/>        """
        pass

    def create_pipeline(self, RoleArn: str, ClientRequestToken: str, PipelineDefinition: str, PipelineName: str, PipelineDisplayName: str=None, PipelineDescription: str=None, Tags: List[Tag]=None) -> CreatePipelineResponse:
        r"""Creates a pipeline using a JSON pipeline definition.

        :param self:
        :param Tags:  A list of tags to apply to the created pipeline.<br/>RoleArn:  The Amazon Resource Name (ARN) of the role used by the pipeline to access and create resources.<br/>ClientRequestToken:  A unique, case-sensitive identifier that you provide to ensure the idempotency of the operation. An idempotent operation completes no more than one time.<br/>PipelineDescription:  A description of the pipeline.<br/>PipelineDefinition:  The JSON pipeline definition of the pipeline.<br/>PipelineDisplayName:  The display name of the pipeline.<br/>PipelineName:  The name of the pipeline.<br/>
        :return: PipelineArn:  The Amazon Resource Name (ARN) of the created pipeline.<br/>        """
        pass

    def create_presigned_domain_url(self, UserProfileName: str, DomainId: str, SessionExpirationDurationInSeconds: int=None, ExpiresInSeconds: int=None) -> CreatePresignedDomainUrlResponse:
        r"""Creates a URL for a specified UserProfile in a Domain. When accessed in a web browser, the user will be automatically signed in to Amazon SageMaker Studio, and granted access to all of the Apps and files associated with the Domain's Amazon Elastic File System (EFS) volume. This operation can only be called when the authentication mode equals IAM.  The IAM role or user used to call this API defines the permissions to access the app. Once the presigned URL is created, no additional permission is required to access this URL. IAM authorization policies for this API are also enforced for every HTTP request and WebSocket frame that attempts to connect to the app. You can restrict access to this API and to the URL that it returns to a list of IP addresses, Amazon VPCs or Amazon VPC Endpoints that you specify. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/studio-interface-endpoint.html">Connect to SageMaker Studio Through an Interface VPC Endpoint</a> . <note> The URL that you get from a call to <code>CreatePresignedDomainUrl</code> has a default timeout of 5 minutes. You can configure this value using <code>ExpiresInSeconds</code>. If you try to use the URL after the timeout limit expires, you are directed to the Amazon Web Services console sign-in page. </note>

        :param self:
        :param ExpiresInSeconds:  The number of seconds until the pre-signed URL expires. This value defaults to 300.<br/>SessionExpirationDurationInSeconds:  The session expiration duration in seconds. This value defaults to 43200.<br/>UserProfileName:  The name of the UserProfile to sign-in as.<br/>DomainId:  The domain ID.<br/>
        :return: AuthorizedUrl:  The presigned URL.<br/>        """
        pass

    def create_presigned_notebook_instance_url(self, NotebookInstanceName: str, SessionExpirationDurationInSeconds: int=None) -> CreatePresignedNotebookInstanceUrlOutput:
        r"""Returns a URL that you can use to connect to the Jupyter server from a notebook instance. In the Amazon SageMaker console, when you choose <code>Open</code> next to a notebook instance, Amazon SageMaker opens a new tab showing the Jupyter server home page from the notebook instance. The console uses this API to get the URL and show the page.  The IAM role or user used to call this API defines the permissions to access the notebook instance. Once the presigned URL is created, no additional permission is required to access this URL. IAM authorization policies for this API are also enforced for every HTTP request and WebSocket frame that attempts to connect to the notebook instance. You can restrict access to this API and to the URL that it returns to a list of IP addresses that you specify. Use the <code>NotIpAddress</code> condition operator and the <code>aws:SourceIP</code> condition context key to specify the list of IP addresses that you want to have access to the notebook instance. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/security_iam_id-based-policy-examples.html#nbi-ip-filter">Limit Access to a Notebook Instance by IP Address</a>. <note> The URL that you get from a call to <a>CreatePresignedNotebookInstanceUrl</a> is valid only for 5 minutes. If you try to use the URL after the 5-minute limit expires, you are directed to the Amazon Web Services console sign-in page. </note>

        :param self:
        :param SessionExpirationDurationInSeconds:  The duration of the session, in seconds. The default is 12 hours.<br/>NotebookInstanceName:  The name of the notebook instance.<br/>
        :return: AuthorizedUrl:  A JSON object that contains the URL string. <br/>        """
        pass

    def create_processing_job(self, RoleArn: str, AppSpecification: AppSpecification, ProcessingResources: ProcessingResources, ProcessingJobName: str, ProcessingInputs: List[ProcessingInput]=None, ProcessingOutputConfig: ProcessingOutputConfig=None, StoppingCondition: ProcessingStoppingCondition=None, Environment: ProcessingEnvironmentMap=None, NetworkConfig: NetworkConfig=None, Tags: List[Tag]=None, ExperimentConfig: ExperimentConfig=None) -> CreateProcessingJobResponse:
        r"""Creates a processing job.

        :param self:
        :param ExperimentConfig:  Associates a SageMaker job as a trial component with an experiment and trial. Specified when you call the following APIs: <ul> <li>  <a>CreateProcessingJob</a>  </li> <li>  <a>CreateTrainingJob</a>  </li> <li>  <a>CreateTransformJob</a>  </li> </ul>:<br/>Tags:  (Optional) An array of key-value pairs. For more information, see <a href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html#allocation-whatURL">Using Cost Allocation Tags</a> in the <i>Amazon Web Services Billing and Cost Management User Guide</i>.<br/>RoleArn:  The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can assume to perform tasks on your behalf.<br/>NetworkConfig:  Networking options for a processing job, such as whether to allow inbound and outbound network calls to and from processing containers, and the VPC subnets and security groups to use for VPC-enabled processing jobs.:<br/>Environment:  The environment variables to set in the Docker container. Up to 100 key and values entries in the map are supported.<br/>AppSpecification:  Configures the processing job to run a specified Docker container image.:<br/>StoppingCondition:  The time limit for how long the processing job is allowed to run.:<br/>ProcessingResources:  Identifies the resources, ML compute instances, and ML storage volumes to deploy for a processing job. In distributed training, you specify more than one instance.:<br/>ProcessingJobName:   The name of the processing job. The name must be unique within an Amazon Web Services Region in the Amazon Web Services account.<br/>ProcessingOutputConfig:  Output configuration for the processing job.:<br/>ProcessingInputs:  An array of inputs configuring the data to download into the processing container.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The Amazon Web Services Key Management Service (Amazon Web Services KMS) key that Amazon SageMaker uses to encrypt the processing job output. <code>KmsKeyId</code> can be an ID of a KMS key, ARN of a KMS key, alias of a KMS key, or alias of a KMS key. The <code>KmsKeyId</code> is applied to all outputs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Outputs</i> An array of outputs configuring the data to upload from the processing container.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterConfig</i> The configuration for the resources in a cluster used to run the processing job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ClusterConfig</b>: The configuration for the resources in a cluster used to run the processing job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VolumeKmsKeyId</i> The Amazon Web Services Key Management Service (Amazon Web Services KMS) key that Amazon SageMaker uses to encrypt data on the storage volume attached to the ML compute instance(s) that run the processing job.  <note> Certain Nitro-based instances include local storage, dependent on the instance type. Local storage volumes are encrypted using a hardware module on the instance. You can't request a <code>VolumeKmsKeyId</code> when using an instance type with local storage. For a list of instance types that support local instance storage, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#instance-store-volumes">Instance Store Volumes</a>. For more information about local instance storage encryption, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ssd-instance-store.html">SSD Instance Store Volumes</a>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VolumeSizeInGB</i> The size of the ML storage volume in gigabytes that you want to provision. You must specify sufficient ML storage for your scenario. <note> Certain Nitro-based instances include local storage with a fixed total size, dependent on the instance type. When using these instances for processing, Amazon SageMaker mounts the local instance storage instead of Amazon EBS gp2 storage. You can't request a <code>VolumeSizeInGB</code> greater than the total size of the local instance storage. For a list of instance types that support local instance storage, including the total size per instance type, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#instance-store-volumes">Instance Store Volumes</a>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceType</i> The ML compute instance type for the processing job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceCount</i> The number of ML compute instances to use in the processing job. For distributed processing jobs, specify a value greater than 1. The default value is 1.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxRuntimeInSeconds</i> Specifies the maximum runtime in seconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ContainerArguments</i> The arguments for a container used to run a processing job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ContainerEntrypoint</i> The entrypoint for a container used to run a processing job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImageUri</i> The container image to be run by the processing job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcConfig</i> Specifies a VPC that your training jobs and hosted models have access to. Control access to and from your training and model containers by configuring the VPC. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/host-vpc.html">Protect Endpoints by Using an Amazon Virtual Private Cloud</a> and <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/train-vpc.html">Protect Training Jobs by Using an Amazon Virtual Private Cloud</a>. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>VpcConfig</b>: Specifies a VPC that your training jobs and hosted models have access to. Control access to and from your training and model containers by configuring the VPC. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/host-vpc.html">Protect Endpoints by Using an Amazon Virtual Private Cloud</a> and <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/train-vpc.html">Protect Training Jobs by Using an Amazon Virtual Private Cloud</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableNetworkIsolation</i> Whether to allow inbound and outbound network calls to and from the containers used for the processing job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableInterContainerTrafficEncryption</i> Whether to encrypt all communications between distributed processing jobs. Choose <code>True</code> to encrypt communications. Encryption provides greater security for distributed processing jobs, but the processing might take longer.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Subnets</i> The ID of the subnets in the VPC to which you want to connect your training job or model. For information about the availability of specific instance types, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/instance-types-az.html">Supported Instance Types and Availability Zones</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> The VPC security group IDs, in the form sg-xxxxxxxx. Specify the security groups for the VPC that is specified in the <code>Subnets</code> field.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TrialComponentDisplayName</i> The display name for the trial component. If this key isn't specified, the display name is the trial component name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TrialName</i> The name of an existing trial to associate the trial component with. If not specified, a new trial is created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExperimentName</i> The name of an existing experiment to associate the trial component with.<br/>
        :return: ProcessingJobArn:  The Amazon Resource Name (ARN) of the processing job.<br/>        """
        pass

    def create_project(self, ServiceCatalogProvisioningDetails: ServiceCatalogProvisioningDetails, ProjectName: str, ProjectDescription: str=None, Tags: List[Tag]=None) -> CreateProjectOutput:
        r"""Creates a machine learning (ML) project that can contain one or more templates that set up an ML pipeline from training to deploying an approved model.

        :param self:
        :param Tags:  An array of key-value pairs that you want to use to organize and track your Amazon Web Services resource costs. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html">Tagging Amazon Web Services resources</a> in the <i>Amazon Web Services General Reference Guide</i>.<br/>ServiceCatalogProvisioningDetails:  The product ID and provisioning artifact ID to provision a service catalog. For information, see <a href="https://docs.aws.amazon.com/servicecatalog/latest/adminguide/introduction.html">What is Amazon Web Services Service Catalog</a>.:<br/>ProjectDescription:  A description for the project.<br/>ProjectName:  The name of the project.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProvisioningParameters</i> A list of key value pairs that you specify when you provision a product.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PathId</i> The path identifier of the product. This value is optional if the product has a default path, and required if the product has more than one path. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProvisioningArtifactId</i> The ID of the provisioning artifact.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProductId</i> The ID of the product to provision.<br/>
        :return: ProjectId:  The ID of the new project.<br/>ProjectArn:  The Amazon Resource Name (ARN) of the project.<br/>        """
        pass

    def create_training_job(self, StoppingCondition: StoppingCondition, ResourceConfig: ResourceConfig, OutputDataConfig: OutputDataConfig, RoleArn: str, AlgorithmSpecification: AlgorithmSpecification, TrainingJobName: str, HyperParameters: HyperParameters=None, InputDataConfig: List[Channel]=None, VpcConfig: VpcConfig=None, Tags: List[Tag]=None, EnableNetworkIsolation: Boolean=None, EnableInterContainerTrafficEncryption: Boolean=None, EnableManagedSpotTraining: Boolean=None, CheckpointConfig: CheckpointConfig=None, DebugHookConfig: DebugHookConfig=None, DebugRuleConfigurations: List[DebugRuleConfiguration]=None, TensorBoardOutputConfig: TensorBoardOutputConfig=None, ExperimentConfig: ExperimentConfig=None, ProfilerConfig: ProfilerConfig=None, ProfilerRuleConfigurations: List[ProfilerRuleConfiguration]=None, Environment: TrainingEnvironmentMap=None, RetryStrategy: RetryStrategy=None) -> CreateTrainingJobResponse:
        r"""Starts a model training job. After training completes, Amazon SageMaker saves the resulting model artifacts to an Amazon S3 location that you specify.  If you choose to host your model using Amazon SageMaker hosting services, you can use the resulting model artifacts as part of the model. You can also use the artifacts in a machine learning service other than Amazon SageMaker, provided that you know how to use them for inference.  In the request body, you provide the following:  <ul> <li>  <code>AlgorithmSpecification</code> - Identifies the training algorithm to use.  </li> <li>  <code>HyperParameters</code> - Specify these algorithm-specific parameters to enable the estimation of model parameters during training. Hyperparameters can be tuned to optimize this learning process. For a list of hyperparameters for each training algorithm provided by Amazon SageMaker, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/algos.html">Algorithms</a>.  </li> <li>  <code>InputDataConfig</code> - Describes the training dataset and the Amazon S3, EFS, or FSx location where it is stored. </li> <li>  <code>OutputDataConfig</code> - Identifies the Amazon S3 bucket where you want Amazon SageMaker to save the results of model training.  </li> <li>  <code>ResourceConfig</code> - Identifies the resources, ML compute instances, and ML storage volumes to deploy for model training. In distributed training, you specify more than one instance.  </li> <li>  <code>EnableManagedSpotTraining</code> - Optimize the cost of training machine learning models by up to 80% by using Amazon EC2 Spot instances. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/model-managed-spot-training.html">Managed Spot Training</a>.  </li> <li>  <code>RoleArn</code> - The Amazon Resource Name (ARN) that Amazon SageMaker assumes to perform tasks on your behalf during model training. You must grant this role the necessary permissions so that Amazon SageMaker can successfully complete model training.  </li> <li>  <code>StoppingCondition</code> - To help cap training costs, use <code>MaxRuntimeInSeconds</code> to set a time limit for training. Use <code>MaxWaitTimeInSeconds</code> to specify how long a managed spot training job has to complete.  </li> <li>  <code>Environment</code> - The environment variables to set in the Docker container. </li> <li>  <code>RetryStrategy</code> - The number of times to retry the job when the job fails due to an <code>InternalServerError</code>. </li> </ul>  For more information about Amazon SageMaker, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/how-it-works.html">How It Works</a>. 

        :param self:
        :param RetryStrategy:  The number of times to retry the job when the job fails due to an <code>InternalServerError</code>.:<br/>Environment:  The environment variables to set in the Docker container.<br/>ProfilerRuleConfigurations:  Configuration information for Debugger rules for profiling system and framework metrics.<br/>ProfilerConfig:  Configuration information for Debugger system monitoring, framework profiling, and storage paths.:<br/>ExperimentConfig:  Associates a SageMaker job as a trial component with an experiment and trial. Specified when you call the following APIs: <ul> <li>  <a>CreateProcessingJob</a>  </li> <li>  <a>CreateTrainingJob</a>  </li> <li>  <a>CreateTransformJob</a>  </li> </ul>:<br/>TensorBoardOutputConfig:  Configuration of storage locations for the Debugger TensorBoard output data.:<br/>DebugRuleConfigurations:  Configuration information for Debugger rules for debugging output tensors.<br/>DebugHookConfig:  Configuration information for the Debugger hook parameters, metric and tensor collections, and storage paths. To learn more about how to configure the <code>DebugHookConfig</code> parameter, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/debugger-createtrainingjob-api.html">Use the SageMaker and Debugger Configuration API Operations to Create, Update, and Debug Your Training Job</a>.:<br/>CheckpointConfig:  Contains information about the output location for managed spot training checkpoint data.:<br/>EnableManagedSpotTraining:  To train models using managed spot training, choose <code>True</code>. Managed spot training provides a fully managed and scalable infrastructure for training machine learning models. this option is useful when training jobs can be interrupted and when there is flexibility when the training job is run.  The complete and intermediate results of jobs are stored in an Amazon S3 bucket, and can be used as a starting point to train models incrementally. Amazon SageMaker provides metrics and logs in CloudWatch. They can be used to see when managed spot training jobs are running, interrupted, resumed, or completed. <br/>EnableInterContainerTrafficEncryption:  To encrypt all communications between ML compute instances in distributed training, choose <code>True</code>. Encryption provides greater security for distributed training, but training might take longer. How long it takes depends on the amount of communication between compute instances, especially if you use a deep learning algorithm in distributed training. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/train-encrypt.html">Protect Communications Between ML Compute Instances in a Distributed Training Job</a>.<br/>EnableNetworkIsolation:  Isolates the training container. No inbound or outbound network calls can be made, except for calls between peers within a training cluster for distributed training. If you enable network isolation for training jobs that are configured to use a VPC, Amazon SageMaker downloads and uploads customer data and model artifacts through the specified VPC, but the training container does not have network access.<br/>Tags:  An array of key-value pairs. You can use tags to categorize your Amazon Web Services resources in different ways, for example, by purpose, owner, or environment. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html">Tagging Amazon Web Services Resources</a>.<br/>StoppingCondition:  Specifies a limit to how long a model training job can run. It also specifies how long a managed Spot training job has to complete. When the job reaches the time limit, Amazon SageMaker ends the training job. Use this API to cap model training costs. To stop a job, Amazon SageMaker sends the algorithm the <code>SIGTERM</code> signal, which delays job termination for 120 seconds. Algorithms can use this 120-second window to save the model artifacts, so the results of training are not lost. :<br/>VpcConfig:  A <a>VpcConfig</a> object that specifies the VPC that you want your training job to connect to. Control access to and from your training container by configuring the VPC. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/train-vpc.html">Protect Training Jobs by Using an Amazon Virtual Private Cloud</a>.:<br/>ResourceConfig:  The resources, including the ML compute instances and ML storage volumes, to use for model training.  ML storage volumes store model artifacts and incremental states. Training algorithms might also use ML storage volumes for scratch space. If you want Amazon SageMaker to use the ML storage volume to store the training data, choose <code>File</code> as the <code>TrainingInputMode</code> in the algorithm specification. For distributed training algorithms, specify an instance count greater than 1.:<br/>OutputDataConfig:  Specifies the path to the S3 location where you want to store model artifacts. Amazon SageMaker creates subfolders for the artifacts. :<br/>InputDataConfig:  An array of <code>Channel</code> objects. Each channel is a named input source. <code>InputDataConfig</code> describes the input data and its location.  Algorithms can accept input data from one or more channels. For example, an algorithm might have two channels of input data, <code>training_data</code> and <code>validation_data</code>. The configuration for each channel provides the S3, EFS, or FSx location where the input data is stored. It also provides information about the stored data: the MIME type, compression method, and whether the data is wrapped in RecordIO format.  Depending on the input mode that the algorithm supports, Amazon SageMaker either copies input data files from an S3 bucket to a local directory in the Docker container, or makes it available as input streams. For example, if you specify an EFS location, input data files will be made available as input streams. They do not need to be downloaded.<br/>RoleArn:  The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can assume to perform tasks on your behalf.  During model training, Amazon SageMaker needs your permission to read input data from an S3 bucket, download a Docker image that contains training code, write model artifacts to an S3 bucket, write logs to Amazon CloudWatch Logs, and publish metrics to Amazon CloudWatch. You grant permissions for all of these tasks to an IAM role. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html">Amazon SageMaker Roles</a>.  <note> To be able to pass this role to Amazon SageMaker, the caller of this API must have the <code>iam:PassRole</code> permission. </note><br/>AlgorithmSpecification:  The registry path of the Docker image that contains the training algorithm and algorithm-specific metadata, including the input mode. For more information about algorithms provided by Amazon SageMaker, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/algos.html">Algorithms</a>. For information about providing your own algorithms, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms.html">Using Your Own Algorithms with Amazon SageMaker</a>. :<br/>HyperParameters:  Algorithm-specific parameters that influence the quality of the model. You set hyperparameters before you start the learning process. For a list of hyperparameters for each training algorithm provided by Amazon SageMaker, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/algos.html">Algorithms</a>.  You can specify a maximum of 100 hyperparameters. Each hyperparameter is a key-value pair. Each key and value is limited to 256 characters, as specified by the <code>Length Constraint</code>. <br/>TrainingJobName:  The name of the training job. The name must be unique within an Amazon Web Services Region in an Amazon Web Services account. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableSageMakerMetricsTimeSeries</i> To generate and save time-series metrics during training, set to <code>true</code>. The default is <code>false</code> and time-series metrics aren't generated except in the following cases: <ul> <li> You use one of the Amazon SageMaker built-in algorithms </li> <li> You use one of the following <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/pre-built-containers-frameworks-deep-learning.html">Prebuilt Amazon SageMaker Docker Images</a>: <ul> <li> Tensorflow (version &gt;= 1.15) </li> <li> MXNet (version &gt;= 1.6) </li> <li> PyTorch (version &gt;= 1.3) </li> </ul> </li> <li> You specify at least one <a>MetricDefinition</a>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MetricDefinitions</i> A list of metric definition objects. Each object specifies the metric name and regular expressions used to parse algorithm logs. Amazon SageMaker publishes each metric to Amazon CloudWatch.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TrainingInputMode</i> The input mode that the algorithm supports. For the input modes that Amazon SageMaker algorithms support, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/algos.html">Algorithms</a>. If an algorithm supports the <code>File</code> input mode, Amazon SageMaker downloads the training data from S3 to the provisioned ML storage Volume, and mounts the directory to docker volume for training container. If an algorithm supports the <code>Pipe</code> input mode, Amazon SageMaker streams data directly from S3 to the container.   In File mode, make sure you provision ML storage volume with sufficient capacity to accommodate the data download from S3. In addition to the training data, the ML storage volume also stores the output model. The algorithm container use ML storage volume to also store intermediate information, if any.   For distributed algorithms using File mode, training data is distributed uniformly, and your training duration is predictable if the input data objects size is approximately same. Amazon SageMaker does not split the files any further for model training. If the object sizes are skewed, training won't be optimal as the data distribution is also skewed where one host in a training cluster is overloaded, thus becoming bottleneck in training. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AlgorithmName</i> The name of the algorithm resource to use for the training job. This must be an algorithm resource that you created or subscribe to on Amazon Web Services Marketplace. If you specify a value for this parameter, you can't specify a value for <code>TrainingImage</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TrainingImage</i> The registry path of the Docker image that contains the training algorithm. For information about docker registry paths for built-in algorithms, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-algo-docker-registry-paths.html">Algorithms Provided by Amazon SageMaker: Common Parameters</a>. Amazon SageMaker supports both <code>registry/repository[:tag]</code> and <code>registry/repository[@digest]</code> image path formats. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms.html">Using Your Own Algorithms with Amazon SageMaker</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3OutputPath</i> Identifies the S3 path where you want Amazon SageMaker to store the model artifacts. For example, <code>s3://bucket-name/key-name-prefix</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The Amazon Web Services Key Management Service (Amazon Web Services KMS) key that Amazon SageMaker uses to encrypt the model artifacts at rest using Amazon S3 server-side encryption. The <code>KmsKeyId</code> can be any of the following formats:  <ul> <li> // KMS Key ID  <code>"1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> <li> // Amazon Resource Name (ARN) of a KMS Key  <code>"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> <li> // KMS Key Alias  <code>"alias/ExampleAlias"</code>  </li> <li> // Amazon Resource Name (ARN) of a KMS Key Alias  <code>"arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias"</code>  </li> </ul> If you use a KMS key ID or an alias of your master key, the Amazon SageMaker execution role must include permissions to call <code>kms:Encrypt</code>. If you don't provide a KMS key ID, Amazon SageMaker uses the default KMS key for Amazon S3 for your role's account. Amazon SageMaker uses server-side encryption with KMS-managed keys for <code>OutputDataConfig</code>. If you use a bucket policy with an <code>s3:PutObject</code> permission that only allows objects with server-side encryption, set the condition key of <code>s3:x-amz-server-side-encryption</code> to <code>"aws:kms"</code>. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html">KMS-Managed Encryption Keys</a> in the <i>Amazon Simple Storage Service Developer Guide.</i>  The KMS key policy must grant permission to the IAM role that you specify in your <code>CreateTrainingJob</code>, <code>CreateTransformJob</code>, or <code>CreateHyperParameterTuningJob</code> requests. For more information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html">Using Key Policies in Amazon Web Services KMS</a> in the <i>Amazon Web Services Key Management Service Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VolumeKmsKeyId</i> The Amazon Web Services KMS key that Amazon SageMaker uses to encrypt data on the storage volume attached to the ML compute instance(s) that run the training job. <note> Certain Nitro-based instances include local storage, dependent on the instance type. Local storage volumes are encrypted using a hardware module on the instance. You can't request a <code>VolumeKmsKeyId</code> when using an instance type with local storage. For a list of instance types that support local instance storage, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#instance-store-volumes">Instance Store Volumes</a>. For more information about local instance storage encryption, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ssd-instance-store.html">SSD Instance Store Volumes</a>. </note> The <code>VolumeKmsKeyId</code> can be in any of the following formats: <ul> <li> // KMS Key ID  <code>"1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> <li> // Amazon Resource Name (ARN) of a KMS Key  <code>"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VolumeSizeInGB</i> The size of the ML storage volume that you want to provision.  ML storage volumes store model artifacts and incremental states. Training algorithms might also use the ML storage volume for scratch space. If you want to store the training data in the ML storage volume, choose <code>File</code> as the <code>TrainingInputMode</code> in the algorithm specification.  You must specify sufficient ML storage for your scenario.  <note>  Amazon SageMaker supports only the General Purpose SSD (gp2) ML storage volume type.  </note> <note> Certain Nitro-based instances include local storage with a fixed total size, dependent on the instance type. When using these instances for training, Amazon SageMaker mounts the local instance storage instead of Amazon EBS gp2 storage. You can't request a <code>VolumeSizeInGB</code> greater than the total size of the local instance storage. For a list of instance types that support local instance storage, including the total size per instance type, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#instance-store-volumes">Instance Store Volumes</a>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceCount</i> The number of ML compute instances to use. For distributed training, provide a value greater than 1. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceType</i> The ML compute instance type. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Subnets</i> The ID of the subnets in the VPC to which you want to connect your training job or model. For information about the availability of specific instance types, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/instance-types-az.html">Supported Instance Types and Availability Zones</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> The VPC security group IDs, in the form sg-xxxxxxxx. Specify the security groups for the VPC that is specified in the <code>Subnets</code> field.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxWaitTimeInSeconds</i> The maximum length of time, in seconds, that a managed Spot training job has to complete. It is the amount of time spent waiting for Spot capacity plus the amount of time the job can run. It must be equal to or greater than <code>MaxRuntimeInSeconds</code>. If the job does not complete during this time, Amazon SageMaker ends the job. When <code>RetryStrategy</code> is specified in the job request, <code>MaxWaitTimeInSeconds</code> specifies the maximum time for all of the attempts in total, not each individual attempt.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxRuntimeInSeconds</i> The maximum length of time, in seconds, that a training or compilation job can run. If the job does not complete during this time, Amazon SageMaker ends the job. When <code>RetryStrategy</code> is specified in the job request, <code>MaxRuntimeInSeconds</code> specifies the maximum time for all of the attempts in total, not each individual attempt. The default value is 1 day. The maximum value is 28 days.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LocalPath</i> (Optional) The local directory where checkpoints are written. The default directory is <code>/opt/ml/checkpoints/</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Uri</i> Identifies the S3 path where you want Amazon SageMaker to store checkpoints. For example, <code>s3://bucket-name/key-name-prefix</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CollectionConfigurations</i> Configuration information for Debugger tensor collections. To learn more about how to configure the <code>CollectionConfiguration</code> parameter, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/debugger-createtrainingjob-api.html">Use the SageMaker and Debugger Configuration API Operations to Create, Update, and Debug Your Training Job</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HookParameters</i> Configuration information for the Debugger hook parameters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3OutputPath</i> Path to Amazon S3 storage location for metrics and tensors.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LocalPath</i> Path to local storage location for metrics and tensors. Defaults to <code>/opt/ml/output/tensors/</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3OutputPath</i> Path to Amazon S3 storage location for TensorBoard output.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LocalPath</i> Path to local storage location for tensorBoard output. Defaults to <code>/opt/ml/output/tensorboard</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TrialComponentDisplayName</i> The display name for the trial component. If this key isn't specified, the display name is the trial component name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TrialName</i> The name of an existing trial to associate the trial component with. If not specified, a new trial is created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExperimentName</i> The name of an existing experiment to associate the trial component with.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProfilingParameters</i> Configuration information for capturing framework metrics. Available key strings for different profiling options are <code>DetailedProfilingConfig</code>, <code>PythonProfilingConfig</code>, and <code>DataLoaderProfilingConfig</code>. The following codes are configuration structures for the <code>ProfilingParameters</code> parameter. To learn more about how to configure the <code>ProfilingParameters</code> parameter, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/debugger-createtrainingjob-api.html">Use the SageMaker and Debugger Configuration API Operations to Create, Update, and Debug Your Training Job</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProfilingIntervalInMilliseconds</i> A time interval for capturing system metrics in milliseconds. Available values are 100, 200, 500, 1000 (1 second), 5000 (5 seconds), and 60000 (1 minute) milliseconds. The default value is 500 milliseconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3OutputPath</i> Path to Amazon S3 storage location for system and framework metrics.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaximumRetryAttempts</i> The number of times to retry the job. When the job is retried, it's <code>SecondaryStatus</code> is changed to <code>STARTING</code>.<br/>
        :return: TrainingJobArn:  The Amazon Resource Name (ARN) of the training job.<br/>        """
        pass

    def create_transform_job(self, TransformResources: TransformResources, TransformOutput: TransformOutput, TransformInput: TransformInput, ModelName: str, TransformJobName: str, MaxConcurrentTransforms: int=None, ModelClientConfig: ModelClientConfig=None, MaxPayloadInMB: int=None, BatchStrategy: str=None, Environment: TransformEnvironmentMap=None, DataProcessing: DataProcessing=None, Tags: List[Tag]=None, ExperimentConfig: ExperimentConfig=None) -> CreateTransformJobResponse:
        r"""Starts a transform job. A transform job uses a trained model to get inferences on a dataset and saves these results to an Amazon S3 location that you specify. To perform batch transformations, you create a transform job and use the data that you have readily available. In the request body, you provide the following: <ul> <li>  <code>TransformJobName</code> - Identifies the transform job. The name must be unique within an Amazon Web Services Region in an Amazon Web Services account. </li> <li>  <code>ModelName</code> - Identifies the model to use. <code>ModelName</code> must be the name of an existing Amazon SageMaker model in the same Amazon Web Services Region and Amazon Web Services account. For information on creating a model, see <a>CreateModel</a>. </li> <li>  <code>TransformInput</code> - Describes the dataset to be transformed and the Amazon S3 location where it is stored. </li> <li>  <code>TransformOutput</code> - Identifies the Amazon S3 location where you want Amazon SageMaker to save the results from the transform job. </li> <li>  <code>TransformResources</code> - Identifies the ML compute instances for the transform job. </li> </ul> For more information about how batch transformation works, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/batch-transform.html">Batch Transform</a>.

        :param self:
        :param ExperimentConfig:  Associates a SageMaker job as a trial component with an experiment and trial. Specified when you call the following APIs: <ul> <li>  <a>CreateProcessingJob</a>  </li> <li>  <a>CreateTrainingJob</a>  </li> <li>  <a>CreateTransformJob</a>  </li> </ul>:<br/>Tags:  (Optional) An array of key-value pairs. For more information, see <a href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html#allocation-what">Using Cost Allocation Tags</a> in the <i>Amazon Web Services Billing and Cost Management User Guide</i>.<br/>DataProcessing:  The data structure used to specify the data to be used for inference in a batch transform job and to associate the data that is relevant to the prediction results in the output. The input filter provided allows you to exclude input data that is not needed for inference in a batch transform job. The output filter provided allows you to include input data relevant to interpreting the predictions in the output from the job. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/batch-transform-data-processing.html">Associate Prediction Results with their Corresponding Input Records</a>.:<br/>TransformResources:  Describes the resources, including ML instance types and ML instance count, to use for the transform job.:<br/>TransformOutput:  Describes the results of the transform job.:<br/>TransformInput:  Describes the input source and the way the transform job consumes it.:<br/>Environment:  The environment variables to set in the Docker container. We support up to 16 key and values entries in the map.<br/>BatchStrategy:  Specifies the number of records to include in a mini-batch for an HTTP inference request. A <i>record</i> <i/> is a single unit of input data that inference can be made on. For example, a single line in a CSV file is a record.  To enable the batch strategy, you must set the <code>SplitType</code> property to <code>Line</code>, <code>RecordIO</code>, or <code>TFRecord</code>. To use only one record when making an HTTP invocation request to a container, set <code>BatchStrategy</code> to <code>SingleRecord</code> and <code>SplitType</code> to <code>Line</code>. To fit as many records in a mini-batch as can fit within the <code>MaxPayloadInMB</code> limit, set <code>BatchStrategy</code> to <code>MultiRecord</code> and <code>SplitType</code> to <code>Line</code>.<br/>MaxPayloadInMB:  The maximum allowed size of the payload, in MB. A <i>payload</i> is the data portion of a record (without metadata). The value in <code>MaxPayloadInMB</code> must be greater than, or equal to, the size of a single record. To estimate the size of a record in MB, divide the size of your dataset by the number of records. To ensure that the records fit within the maximum payload size, we recommend using a slightly larger value. The default value is <code>6</code> MB.  For cases where the payload might be arbitrarily large and is transmitted using HTTP chunked encoding, set the value to <code>0</code>. This feature works only in supported algorithms. Currently, Amazon SageMaker built-in algorithms do not support HTTP chunked encoding.<br/>ModelClientConfig:  Configures the timeout and maximum number of retries for processing a transform job invocation.:<br/>MaxConcurrentTransforms:  The maximum number of parallel requests that can be sent to each instance in a transform job. If <code>MaxConcurrentTransforms</code> is set to <code>0</code> or left unset, Amazon SageMaker checks the optional execution-parameters to determine the settings for your chosen algorithm. If the execution-parameters endpoint is not enabled, the default value is <code>1</code>. For more information on execution-parameters, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms-batch-code.html#your-algorithms-batch-code-how-containe-serves-requests">How Containers Serve Requests</a>. For built-in algorithms, you don't need to set a value for <code>MaxConcurrentTransforms</code>.<br/>ModelName:  The name of the model that you want to use for the transform job. <code>ModelName</code> must be the name of an existing Amazon SageMaker model within an Amazon Web Services Region in an Amazon Web Services account.<br/>TransformJobName:  The name of the transform job. The name must be unique within an Amazon Web Services Region in an Amazon Web Services account. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InvocationsMaxRetries</i> The maximum number of retries when invocation requests are failing.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InvocationsTimeoutInSeconds</i> The timeout value in seconds for an invocation request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SplitType</i> The method to use to split the transform job's data files into smaller batches. Splitting is necessary when the total size of each object is too large to fit in a single request. You can also use data splitting to improve performance by processing multiple concurrent mini-batches. The default value for <code>SplitType</code> is <code>None</code>, which indicates that input data files are not split, and request payloads contain the entire contents of an input object. Set the value of this parameter to <code>Line</code> to split records on a newline character boundary. <code>SplitType</code> also supports a number of record-oriented binary data formats. Currently, the supported record formats are: <ul> <li> RecordIO </li> <li> TFRecord </li> </ul> When splitting is enabled, the size of a mini-batch depends on the values of the <code>BatchStrategy</code> and <code>MaxPayloadInMB</code> parameters. When the value of <code>BatchStrategy</code> is <code>MultiRecord</code>, Amazon SageMaker sends the maximum number of records in each request, up to the <code>MaxPayloadInMB</code> limit. If the value of <code>BatchStrategy</code> is <code>SingleRecord</code>, Amazon SageMaker sends individual records in each request. <note> Some data formats represent a record as a binary payload wrapped with extra padding bytes. When splitting is applied to a binary data format, padding is removed if the value of <code>BatchStrategy</code> is set to <code>SingleRecord</code>. Padding is not removed if the value of <code>BatchStrategy</code> is set to <code>MultiRecord</code>. For more information about <code>RecordIO</code>, see <a href="https://mxnet.apache.org/api/faq/recordio">Create a Dataset Using RecordIO</a> in the MXNet documentation. For more information about <code>TFRecord</code>, see <a href="https://www.tensorflow.org/guide/data#consuming_tfrecord_data">Consuming TFRecord data</a> in the TensorFlow documentation. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CompressionType</i> If your transform data is compressed, specify the compression type. Amazon SageMaker automatically decompresses the data for the transform job accordingly. The default value is <code>None</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ContentType</i> The multipurpose internet mail extension (MIME) type of the data. Amazon SageMaker uses the MIME type with each http call to transfer data to the transform job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataSource</i> Describes the location of the channel data, which is, the S3 location of the input data that the model can consume.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DataSource</b>: Describes the location of the channel data, which is, the S3 location of the input data that the model can consume.<br/>The S3 location of the data source that is associated with a channel.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3DataSource</b>: The S3 location of the data source that is associated with a channel.&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The Amazon Web Services Key Management Service (Amazon Web Services KMS) key that Amazon SageMaker uses to encrypt the model artifacts at rest using Amazon S3 server-side encryption. The <code>KmsKeyId</code> can be any of the following formats:  <ul> <li> Key ID: <code>1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> <li> Key ARN: <code>arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> <li> Alias name: <code>alias/ExampleAlias</code>  </li> <li> Alias name ARN: <code>arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias</code>  </li> </ul> If you don't provide a KMS key ID, Amazon SageMaker uses the default KMS key for Amazon S3 for your role's account. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html">KMS-Managed Encryption Keys</a> in the <i>Amazon Simple Storage Service Developer Guide.</i>  The KMS key policy must grant permission to the IAM role that you specify in your <a>CreateModel</a> request. For more information, see <a href="http://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html">Using Key Policies in Amazon Web Services KMS</a> in the <i>Amazon Web Services Key Management Service Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssembleWith</i> Defines how to assemble the results of the transform job as a single S3 object. Choose a format that is most convenient to you. To concatenate the results in binary format, specify <code>None</code>. To add a newline character at the end of every transformed record, specify <code>Line</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Accept</i> The MIME type used to specify the output data. Amazon SageMaker uses the MIME type with each http call to transfer data from the transform job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3OutputPath</i> The Amazon S3 path where you want Amazon SageMaker to store the results of the transform job. For example, <code>s3://bucket-name/key-name-prefix</code>. For every S3 object used as input for the transform job, batch transform stores the transformed data with an .<code>out</code> suffix in a corresponding subfolder in the location in the output prefix. For example, for the input data stored at <code>s3://bucket-name/input-name-prefix/dataset01/data.csv</code>, batch transform stores the transformed data at <code>s3://bucket-name/output-name-prefix/input-name-prefix/data.csv.out</code>. Batch transform doesn't upload partially processed objects. For an input S3 object that contains multiple records, it creates an .<code>out</code> file only if the transform job succeeds on the entire file. When the input contains multiple S3 objects, the batch transform job processes the listed S3 objects and uploads only the output for successfully processed objects. If any object fails in the transform job batch transform marks the job as failed to prompt investigation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VolumeKmsKeyId</i> The Amazon Web Services Key Management Service (Amazon Web Services KMS) key that Amazon SageMaker uses to encrypt model data on the storage volume attached to the ML compute instance(s) that run the batch transform job. <note> Certain Nitro-based instances include local storage, dependent on the instance type. Local storage volumes are encrypted using a hardware module on the instance. You can't request a <code>VolumeKmsKeyId</code> when using an instance type with local storage. For a list of instance types that support local instance storage, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#instance-store-volumes">Instance Store Volumes</a>. For more information about local instance storage encryption, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ssd-instance-store.html">SSD Instance Store Volumes</a>. </note>  The <code>VolumeKmsKeyId</code> can be any of the following formats: <ul> <li> Key ID: <code>1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> <li> Key ARN: <code>arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> <li> Alias name: <code>alias/ExampleAlias</code>  </li> <li> Alias name ARN: <code>arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceCount</i> The number of ML compute instances to use in the transform job. For distributed transform jobs, specify a value greater than 1. The default value is <code>1</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceType</i> The ML compute instance type for the transform job. If you are using built-in algorithms to transform moderately sized datasets, we recommend using ml.m4.xlarge or <code>ml.m5.large</code>instance types.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JoinSource</i> Specifies the source of the data to join with the transformed data. The valid values are <code>None</code> and <code>Input</code>. The default value is <code>None</code>, which specifies not to join the input with the transformed data. If you want the batch transform job to join the original input data with the transformed data, set <code>JoinSource</code> to <code>Input</code>. You can specify <code>OutputFilter</code> as an additional filter to select a portion of the joined dataset and store it in the output file. For JSON or JSONLines objects, such as a JSON array, Amazon SageMaker adds the transformed data to the input JSON object in an attribute called <code>SageMakerOutput</code>. The joined result for JSON must be a key-value pair object. If the input is not a key-value pair object, Amazon SageMaker creates a new JSON file. In the new JSON file, and the input data is stored under the <code>SageMakerInput</code> key and the results are stored in <code>SageMakerOutput</code>. For CSV data, Amazon SageMaker takes each row as a JSON array and joins the transformed data with the input by appending each transformed row to the end of the input. The joined data has the original input data followed by the transformed data and the output is a CSV file. For information on how joining in applied, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/batch-transform-data-processing.html#batch-transform-data-processing-workflow">Workflow for Associating Inferences with Input Records</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OutputFilter</i> A <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/batch-transform-data-processing.html#data-processing-operators">JSONPath</a> expression used to select a portion of the joined dataset to save in the output file for a batch transform job. If you want Amazon SageMaker to store the entire input dataset in the output file, leave the default value, <code>$</code>. If you specify indexes that aren't within the dimension size of the joined dataset, you get an error. Examples: <code>"$"</code>, <code>"$[0,5:]"</code>, <code>"$['id','SageMakerOutput']"</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InputFilter</i> A <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/batch-transform-data-processing.html#data-processing-operators">JSONPath</a> expression used to select a portion of the input data to pass to the algorithm. Use the <code>InputFilter</code> parameter to exclude fields, such as an ID column, from the input. If you want Amazon SageMaker to pass the entire input dataset to the algorithm, accept the default value <code>$</code>. Examples: <code>"$"</code>, <code>"$[1:]"</code>, <code>"$.features"</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TrialComponentDisplayName</i> The display name for the trial component. If this key isn't specified, the display name is the trial component name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TrialName</i> The name of an existing trial to associate the trial component with. If not specified, a new trial is created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExperimentName</i> The name of an existing experiment to associate the trial component with.<br/>
        :return: TransformJobArn:  The Amazon Resource Name (ARN) of the transform job.<br/>        """
        pass

    def create_trial(self, ExperimentName: str, TrialName: str, DisplayName: str=None, MetadataProperties: MetadataProperties=None, Tags: List[Tag]=None) -> CreateTrialResponse:
        r"""Creates an SageMaker <i>trial</i>. A trial is a set of steps called <i>trial components</i> that produce a machine learning model. A trial is part of a single SageMaker <i>experiment</i>. When you use SageMaker Studio or the SageMaker Python SDK, all experiments, trials, and trial components are automatically tracked, logged, and indexed. When you use the Amazon Web Services SDK for Python (Boto), you must use the logging APIs provided by the SDK. You can add tags to a trial and then use the <a>Search</a> API to search for the tags. To get a list of all your trials, call the <a>ListTrials</a> API. To view a trial's properties, call the <a>DescribeTrial</a> API. To create a trial component, call the <a>CreateTrialComponent</a> API.

        :param self:
        :param Tags:  A list of tags to associate with the trial. You can use <a>Search</a> API to search on the tags.<br/>MetadataProperties:  Metadata properties of the tracking entity, trial, or trial component.:<br/>ExperimentName:  The name of the experiment to associate the trial with.<br/>DisplayName:  The name of the trial as displayed. The name doesn't need to be unique. If <code>DisplayName</code> isn't specified, <code>TrialName</code> is displayed.<br/>TrialName:  The name of the trial. The name must be unique in your Amazon Web Services account and is not case-sensitive.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProjectId</i> The project ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GeneratedBy</i> The entity this entity was generated by.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Repository</i> The repository.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CommitId</i> The commit ID.<br/>
        :return: TrialArn:  The Amazon Resource Name (ARN) of the trial.<br/>        """
        pass

    def create_trial_component(self, TrialComponentName: str, DisplayName: str=None, Status: TrialComponentStatus=None, StartTime: Timestamp=None, EndTime: Timestamp=None, Parameters: TrialComponentParameters=None, InputArtifacts: TrialComponentArtifacts=None, OutputArtifacts: TrialComponentArtifacts=None, MetadataProperties: MetadataProperties=None, Tags: List[Tag]=None) -> CreateTrialComponentResponse:
        r"""Creates a <i>trial component</i>, which is a stage of a machine learning <i>trial</i>. A trial is composed of one or more trial components. A trial component can be used in multiple trials. Trial components include pre-processing jobs, training jobs, and batch transform jobs. When you use SageMaker Studio or the SageMaker Python SDK, all experiments, trials, and trial components are automatically tracked, logged, and indexed. When you use the Amazon Web Services SDK for Python (Boto), you must use the logging APIs provided by the SDK. You can add tags to a trial component and then use the <a>Search</a> API to search for the tags.

        :param self:
        :param Tags:  A list of tags to associate with the component. You can use <a>Search</a> API to search on the tags.<br/>MetadataProperties:  Metadata properties of the tracking entity, trial, or trial component.:<br/>OutputArtifacts:  The output artifacts for the component. Examples of output artifacts are metrics, snapshots, logs, and images.<br/>InputArtifacts:  The input artifacts for the component. Examples of input artifacts are datasets, algorithms, hyperparameters, source code, and instance types.<br/>Parameters:  The hyperparameters for the component.<br/>EndTime:  When the component ended.<br/>StartTime:  When the component started.<br/>Status:  The status of the component. States include: <ul> <li> InProgress </li> <li> Completed </li> <li> Failed </li> </ul>:<br/>DisplayName:  The name of the component as displayed. The name doesn't need to be unique. If <code>DisplayName</code> isn't specified, <code>TrialComponentName</code> is displayed.<br/>TrialComponentName:  The name of the component. The name must be unique in your Amazon Web Services account and is not case-sensitive.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> If the component failed, a message describing why.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PrimaryStatus</i> The status of the trial component.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProjectId</i> The project ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GeneratedBy</i> The entity this entity was generated by.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Repository</i> The repository.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CommitId</i> The commit ID.<br/>
        :return: TrialComponentArn:  The Amazon Resource Name (ARN) of the trial component.<br/>        """
        pass

    def create_user_profile(self, UserProfileName: str, DomainId: str, SingleSignOnUserIdentifier: str=None, SingleSignOnUserValue: str=None, Tags: List[Tag]=None, UserSettings: UserSettings=None) -> CreateUserProfileResponse:
        r"""Creates a user profile. A user profile represents a single user within a domain, and is the main way to reference a "person" for the purposes of sharing, reporting, and other user-oriented features. This entity is created when a user onboards to Amazon SageMaker Studio. If an administrator invites a person by email or imports them from SSO, a user profile is automatically created. A user profile is the primary holder of settings for an individual user and has a reference to the user's private Amazon Elastic File System (EFS) home directory. 

        :param self:
        :param UserSettings:  A collection of settings.:<br/>Tags:  Each tag consists of a key and an optional value. Tag keys must be unique per resource. Tags that you specify for the User Profile are also added to all Apps that the User Profile launches.<br/>SingleSignOnUserValue:  The username of the associated Amazon Web Services Single Sign-On User for this UserProfile. If the Domain's AuthMode is SSO, this field is required, and must match a valid username of a user in your directory. If the Domain's AuthMode is not SSO, this field cannot be specified. <br/>SingleSignOnUserIdentifier:  A specifier for the type of value specified in SingleSignOnUserValue. Currently, the only supported value is "UserName". If the Domain's AuthMode is SSO, this field is required. If the Domain's AuthMode is not SSO, this field cannot be specified. <br/>UserProfileName:  A name for the UserProfile. This value is not case sensitive.<br/>DomainId:  The ID of the associated Domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TensorBoardAppSettings</i> The TensorBoard app settings.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TensorBoardAppSettings</b>: The TensorBoard app settings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KernelGatewayAppSettings</i> The kernel gateway app settings.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>KernelGatewayAppSettings</b>: The kernel gateway app settings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JupyterServerAppSettings</i> The Jupyter server's app settings.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>JupyterServerAppSettings</b>: The Jupyter server's app settings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SharingSettings</i> Specifies options for sharing SageMaker Studio notebooks.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SharingSettings</b>: Specifies options for sharing SageMaker Studio notebooks.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroups</i> The security groups for the Amazon Virtual Private Cloud (VPC) that Studio uses for communication. Optional when the <code>CreateDomain.AppNetworkAccessType</code> parameter is set to <code>PublicInternetOnly</code>. Required when the <code>CreateDomain.AppNetworkAccessType</code> parameter is set to <code>VpcOnly</code>. Amazon SageMaker adds a security group to allow NFS traffic from SageMaker Studio. Therefore, the number of security groups that you can specify is one less than the maximum number shown.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExecutionRole</i> The execution role for the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3KmsKeyId</i> When <code>NotebookOutputOption</code> is <code>Allowed</code>, the Amazon Web Services Key Management Service (KMS) encryption key ID used to encrypt the notebook cell output in the Amazon S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3OutputPath</i> When <code>NotebookOutputOption</code> is <code>Allowed</code>, the Amazon S3 bucket used to store the shared notebook snapshots.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NotebookOutputOption</i> Whether to include the notebook cell output when sharing the notebook. The default is <code>Disabled</code>.<br/>The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the JupyterServer app.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DefaultResourceSpec</b>: The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the JupyterServer app.The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the KernelGateway app.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DefaultResourceSpec</b>: The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the KernelGateway app.The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DefaultResourceSpec</b>: The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance.
        :return: UserProfileArn:  The user profile Amazon Resource Name (ARN).<br/>        """
        pass

    def create_workforce(self, WorkforceName: str, CognitoConfig: CognitoConfig=None, OidcConfig: OidcConfig=None, SourceIpConfig: SourceIpConfig=None, Tags: List[Tag]=None) -> CreateWorkforceResponse:
        r"""Use this operation to create a workforce. This operation will return an error if a workforce already exists in the Amazon Web Services Region that you specify. You can only create one workforce in each Amazon Web Services Region per Amazon Web Services account. If you want to create a new workforce in an Amazon Web Services Region where a workforce already exists, use the API operation to delete the existing workforce and then use <code>CreateWorkforce</code> to create a new workforce. To create a private workforce using Amazon Cognito, you must specify a Cognito user pool in <code>CognitoConfig</code>. You can also create an Amazon Cognito workforce using the Amazon SageMaker console. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sms-workforce-create-private.html"> Create a Private Workforce (Amazon Cognito)</a>. To create a private workforce using your own OIDC Identity Provider (IdP), specify your IdP configuration in <code>OidcConfig</code>. Your OIDC IdP must support <i>groups</i> because groups are used by Ground Truth and Amazon A2I to create work teams. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sms-workforce-create-private-oidc.html"> Create a Private Workforce (OIDC IdP)</a>.

        :param self:
        :param Tags:  An array of key-value pairs that contain metadata to help you categorize and organize our workforce. Each tag consists of a key and a value, both of which you define.<br/>WorkforceName:  The name of the private workforce.<br/>SourceIpConfig:  A list of IP address ranges (<a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html">CIDRs</a>). Used to create an allow list of IP addresses for a private workforce. Workers will only be able to login to their worker portal from an IP address within this range. By default, a workforce isn't restricted to specific IP addresses.:<br/>OidcConfig:  Use this parameter to configure a private workforce using your own OIDC Identity Provider. Do not use <code>CognitoConfig</code> if you specify values for <code>OidcConfig</code>.:<br/>CognitoConfig:  Use this parameter to configure an Amazon Cognito private workforce. A single Cognito workforce is created using and corresponds to a single <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools.html"> Amazon Cognito user pool</a>. Do not use <code>OidcConfig</code> if you specify values for <code>CognitoConfig</code>.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClientId</i> The client ID for your Amazon Cognito user pool.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserPool</i> A <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools.html"> user pool</a> is a user directory in Amazon Cognito. With a user pool, your users can sign in to your web or mobile app through Amazon Cognito. Your users can also sign in through social identity providers like Google, Facebook, Amazon, or Apple, and through SAML identity providers.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JwksUri</i> The OIDC IdP JSON Web Key Set (Jwks) URI used to configure your private workforce.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogoutEndpoint</i> The OIDC IdP logout endpoint used to configure your private workforce.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserInfoEndpoint</i> The OIDC IdP user information endpoint used to configure your private workforce.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TokenEndpoint</i> The OIDC IdP token endpoint used to configure your private workforce.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AuthorizationEndpoint</i> The OIDC IdP authorization endpoint used to configure your private workforce.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Issuer</i> The OIDC IdP issuer used to configure your private workforce.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClientSecret</i> The OIDC IdP client secret used to configure your private workforce.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClientId</i> The OIDC IdP client ID used to configure your private workforce.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Cidrs</i> A list of one to ten <a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html">Classless Inter-Domain Routing</a> (CIDR) values. Maximum: Ten CIDR values <note> The following Length Constraints apply to individual CIDR values in the CIDR value list. </note><br/>
        :return: WorkforceArn:  The Amazon Resource Name (ARN) of the workforce.<br/>        """
        pass

    def create_workteam(self, Description: str, MemberDefinitions: List[MemberDefinition], WorkteamName: str, WorkforceName: str=None, NotificationConfiguration: NotificationConfiguration=None, Tags: List[Tag]=None) -> CreateWorkteamResponse:
        r"""Creates a new work team for labeling your data. A work team is defined by one or more Amazon Cognito user pools. You must first create the user pools before you can create a work team. You cannot create more than 25 work teams in an account and region.

        :param self:
        :param Tags:  An array of key-value pairs. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html">Resource Tag</a> and <a href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html#allocation-what">Using Cost Allocation Tags</a> in the <i> Amazon Web Services Billing and Cost Management User Guide</i>.<br/>NotificationConfiguration:  Configures notification of workers regarding available or expiring work items.:<br/>Description:  A description of the work team.<br/>MemberDefinitions:  A list of <code>MemberDefinition</code> objects that contains objects that identify the workers that make up the work team.  Workforces can be created using Amazon Cognito or your own OIDC Identity Provider (IdP). For private workforces created using Amazon Cognito use <code>CognitoMemberDefinition</code>. For workforces created using your own OIDC identity provider (IdP) use <code>OidcMemberDefinition</code>. Do not provide input for both of these parameters in a single request. For workforces created using Amazon Cognito, private work teams correspond to Amazon Cognito <i>user groups</i> within the user pool used to create a workforce. All of the <code>CognitoMemberDefinition</code> objects that make up the member definition must have the same <code>ClientId</code> and <code>UserPool</code> values. To add a Amazon Cognito user group to an existing worker pool, see <a href="">Adding groups to a User Pool</a>. For more information about user pools, see <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools.html">Amazon Cognito User Pools</a>. For workforces created using your own OIDC IdP, specify the user groups that you want to include in your private work team in <code>OidcMemberDefinition</code> by listing those groups in <code>Groups</code>.<br/>WorkforceName:  The name of the workforce.<br/>WorkteamName:  The name of the work team. Use this name to identify the work team.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NotificationTopicArn</i> The ARN for the SNS topic to which notifications should be published.<br/>
        :return: WorkteamArn:  The Amazon Resource Name (ARN) of the work team. You can use this ARN to identify the work team.<br/>        """
        pass

    def delete_action(self, ActionName: str) -> DeleteActionResponse:
        r"""Deletes an action.

        :param self:
        :param ActionName:  The name of the action to delete.<br/>
        :return: ActionArn:  The Amazon Resource Name (ARN) of the action.<br/>        """
        pass

    def delete_algorithm(self, AlgorithmName: str):
        r"""Removes the specified algorithm from your account.

        :param self:
        :param AlgorithmName:  The name of the algorithm to delete.<br/>
        :return:         """
        pass

    def delete_app(self, AppName: str, AppType: str, UserProfileName: str, DomainId: str):
        r"""Used to stop and delete an app.

        :param self:
        :param AppName:  The name of the app.<br/>AppType:  The type of app.<br/>UserProfileName:  The user profile name.<br/>DomainId:  The domain ID.<br/>
        :return:         """
        pass

    def delete_app_image_config(self, AppImageConfigName: str):
        r"""Deletes an AppImageConfig.

        :param self:
        :param AppImageConfigName:  The name of the AppImageConfig to delete.<br/>
        :return:         """
        pass

    def delete_artifact(self, ArtifactArn: str=None, Source: ArtifactSource=None) -> DeleteArtifactResponse:
        r"""Deletes an artifact. Either <code>ArtifactArn</code> or <code>Source</code> must be specified.

        :param self:
        :param Source:  The URI of the source.:<br/>ArtifactArn:  The Amazon Resource Name (ARN) of the artifact to delete.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceTypes</i> A list of source types.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceUri</i> The URI of the source.<br/>
        :return: ArtifactArn:  The Amazon Resource Name (ARN) of the artifact.<br/>        """
        pass

    def delete_association(self, DestinationArn: str, SourceArn: str) -> DeleteAssociationResponse:
        r"""Deletes an association.

        :param self:
        :param DestinationArn:  The Amazon Resource Name (ARN) of the destination.<br/>SourceArn:  The ARN of the source.<br/>
        :return: DestinationArn:  The Amazon Resource Name (ARN) of the destination.<br/>SourceArn:  The ARN of the source.<br/>        """
        pass

    def delete_code_repository(self, CodeRepositoryName: str):
        r"""Deletes the specified Git repository from your account.

        :param self:
        :param CodeRepositoryName:  The name of the Git repository to delete.<br/>
        :return:         """
        pass

    def delete_context(self, ContextName: str) -> DeleteContextResponse:
        r"""Deletes an context.

        :param self:
        :param ContextName:  The name of the context to delete.<br/>
        :return: ContextArn:  The Amazon Resource Name (ARN) of the context.<br/>        """
        pass

    def delete_data_quality_job_definition(self, JobDefinitionName: str):
        r"""Deletes a data quality monitoring job definition.

        :param self:
        :param JobDefinitionName:  The name of the data quality monitoring job definition to delete.<br/>
        :return:         """
        pass

    def delete_device_fleet(self, DeviceFleetName: str):
        r"""Deletes a fleet.

        :param self:
        :param DeviceFleetName:  The name of the fleet to delete.<br/>
        :return:         """
        pass

    def delete_domain(self, DomainId: str, RetentionPolicy: RetentionPolicy=None):
        r"""Used to delete a domain. If you onboarded with IAM mode, you will need to delete your domain to onboard again using SSO. Use with caution. All of the members of the domain will lose access to their EFS volume, including data, notebooks, and other artifacts. 

        :param self:
        :param RetentionPolicy:  The retention policy for this domain, which specifies whether resources will be retained after the Domain is deleted. By default, all resources are retained (not automatically deleted). :<br/>DomainId:  The domain ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HomeEfsFileSystem</i> The default is <code>Retain</code>, which specifies to keep the data stored on the EFS volume. Specify <code>Delete</code> to delete the data stored on the EFS volume.<br/>
        :return:         """
        pass

    def delete_endpoint(self, EndpointName: str):
        r"""Deletes an endpoint. Amazon SageMaker frees up all of the resources that were deployed when the endpoint was created.  Amazon SageMaker retires any custom KMS key grants associated with the endpoint, meaning you don't need to use the <a href="http://docs.aws.amazon.com/kms/latest/APIReference/API_RevokeGrant.html">RevokeGrant</a> API call.

        :param self:
        :param EndpointName:  The name of the endpoint that you want to delete.<br/>
        :return:         """
        pass

    def delete_endpoint_config(self, EndpointConfigName: str):
        r"""Deletes an endpoint configuration. The <code>DeleteEndpointConfig</code> API deletes only the specified configuration. It does not delete endpoints created using the configuration.  You must not delete an <code>EndpointConfig</code> in use by an endpoint that is live or while the <code>UpdateEndpoint</code> or <code>CreateEndpoint</code> operations are being performed on the endpoint. If you delete the <code>EndpointConfig</code> of an endpoint that is active or being created or updated you may lose visibility into the instance type the endpoint is using. The endpoint must be deleted in order to stop incurring charges.

        :param self:
        :param EndpointConfigName:  The name of the endpoint configuration that you want to delete.<br/>
        :return:         """
        pass

    def delete_experiment(self, ExperimentName: str) -> DeleteExperimentResponse:
        r"""Deletes an SageMaker experiment. All trials associated with the experiment must be deleted first. Use the <a>ListTrials</a> API to get a list of the trials associated with the experiment.

        :param self:
        :param ExperimentName:  The name of the experiment to delete.<br/>
        :return: ExperimentArn:  The Amazon Resource Name (ARN) of the experiment that is being deleted.<br/>        """
        pass

    def delete_feature_group(self, FeatureGroupName: str):
        r"""Delete the <code>FeatureGroup</code> and any data that was written to the <code>OnlineStore</code> of the <code>FeatureGroup</code>. Data cannot be accessed from the <code>OnlineStore</code> immediately after <code>DeleteFeatureGroup</code> is called.  Data written into the <code>OfflineStore</code> will not be deleted. The Amazon Web Services Glue database and tables that are automatically created for your <code>OfflineStore</code> are not deleted. 

        :param self:
        :param FeatureGroupName:  The name of the <code>FeatureGroup</code> you want to delete. The name must be unique within an Amazon Web Services Region in an Amazon Web Services account. <br/>
        :return:         """
        pass

    def delete_flow_definition(self, FlowDefinitionName: str) -> DeleteFlowDefinitionResponse:
        r"""Deletes the specified flow definition.

        :param self:
        :param FlowDefinitionName:  The name of the flow definition you are deleting.<br/>
        :return:         """
        pass

    def delete_human_task_ui(self, HumanTaskUiName: str) -> DeleteHumanTaskUiResponse:
        r"""Use this operation to delete a human task user interface (worker task template).  To see a list of human task user interfaces (work task templates) in your account, use . When you delete a worker task template, it no longer appears when you call <code>ListHumanTaskUis</code>.

        :param self:
        :param HumanTaskUiName:  The name of the human task user interface (work task template) you want to delete.<br/>
        :return:         """
        pass

    def delete_image(self, ImageName: str) -> DeleteImageResponse:
        r"""Deletes a SageMaker image and all versions of the image. The container images aren't deleted.

        :param self:
        :param ImageName:  The name of the image to delete.<br/>
        :return:         """
        pass

    def delete_image_version(self, Version: int, ImageName: str) -> DeleteImageVersionResponse:
        r"""Deletes a version of a SageMaker image. The container image the version represents isn't deleted.

        :param self:
        :param Version:  The version to delete.<br/>ImageName:  The name of the image.<br/>
        :return:         """
        pass

    def delete_model(self, ModelName: str):
        r"""Deletes a model. The <code>DeleteModel</code> API deletes only the model entry that was created in Amazon SageMaker when you called the <code>CreateModel</code> API. It does not delete model artifacts, inference code, or the IAM role that you specified when creating the model. 

        :param self:
        :param ModelName:  The name of the model to delete.<br/>
        :return:         """
        pass

    def delete_model_bias_job_definition(self, JobDefinitionName: str):
        r"""Deletes an Amazon SageMaker model bias job definition.

        :param self:
        :param JobDefinitionName:  The name of the model bias job definition to delete.<br/>
        :return:         """
        pass

    def delete_model_explainability_job_definition(self, JobDefinitionName: str):
        r"""Deletes an Amazon SageMaker model explainability job definition.

        :param self:
        :param JobDefinitionName:  The name of the model explainability job definition to delete.<br/>
        :return:         """
        pass

    def delete_model_package(self, ModelPackageName: str):
        r"""Deletes a model package. A model package is used to create Amazon SageMaker models or list on Amazon Web Services Marketplace. Buyers can subscribe to model packages listed on Amazon Web Services Marketplace to create models in Amazon SageMaker.

        :param self:
        :param ModelPackageName:  The name or Amazon Resource Name (ARN) of the model package to delete. When you specify a name, the name must have 1 to 63 characters. Valid characters are a-z, A-Z, 0-9, and - (hyphen).<br/>
        :return:         """
        pass

    def delete_model_package_group(self, ModelPackageGroupName: str):
        r"""Deletes the specified model group.

        :param self:
        :param ModelPackageGroupName:  The name of the model group to delete.<br/>
        :return:         """
        pass

    def delete_model_package_group_policy(self, ModelPackageGroupName: str):
        r"""Deletes a model group resource policy.

        :param self:
        :param ModelPackageGroupName:  The name of the model group for which to delete the policy.<br/>
        :return:         """
        pass

    def delete_model_quality_job_definition(self, JobDefinitionName: str):
        r"""Deletes the secified model quality monitoring job definition.

        :param self:
        :param JobDefinitionName:  The name of the model quality monitoring job definition to delete.<br/>
        :return:         """
        pass

    def delete_monitoring_schedule(self, MonitoringScheduleName: str):
        r"""Deletes a monitoring schedule. Also stops the schedule had not already been stopped. This does not delete the job execution history of the monitoring schedule. 

        :param self:
        :param MonitoringScheduleName:  The name of the monitoring schedule to delete.<br/>
        :return:         """
        pass

    def delete_notebook_instance(self, NotebookInstanceName: str):
        r""" Deletes an Amazon SageMaker notebook instance. Before you can delete a notebook instance, you must call the <code>StopNotebookInstance</code> API.  <important> When you delete a notebook instance, you lose all of your data. Amazon SageMaker removes the ML compute instance, and deletes the ML storage volume and the network interface associated with the notebook instance.  </important>

        :param self:
        :param NotebookInstanceName:  The name of the Amazon SageMaker notebook instance to delete.<br/>
        :return:         """
        pass

    def delete_notebook_instance_lifecycle_config(self, NotebookInstanceLifecycleConfigName: str):
        r"""Deletes a notebook instance lifecycle configuration.

        :param self:
        :param NotebookInstanceLifecycleConfigName:  The name of the lifecycle configuration to delete.<br/>
        :return:         """
        pass

    def delete_pipeline(self, ClientRequestToken: str, PipelineName: str) -> DeletePipelineResponse:
        r"""Deletes a pipeline if there are no running instances of the pipeline. To delete a pipeline, you must stop all running instances of the pipeline using the <code>StopPipelineExecution</code> API. When you delete a pipeline, all instances of the pipeline are deleted.

        :param self:
        :param ClientRequestToken:  A unique, case-sensitive identifier that you provide to ensure the idempotency of the operation. An idempotent operation completes no more than one time.<br/>PipelineName:  The name of the pipeline to delete.<br/>
        :return: PipelineArn:  The Amazon Resource Name (ARN) of the pipeline to delete.<br/>        """
        pass

    def delete_project(self, ProjectName: str):
        r"""Delete the specified project.

        :param self:
        :param ProjectName:  The name of the project to delete.<br/>
        :return:         """
        pass

    def delete_tags(self, TagKeys: List[TagKey], ResourceArn: str) -> DeleteTagsOutput:
        r"""Deletes the specified tags from an Amazon SageMaker resource. To list a resource's tags, use the <code>ListTags</code> API.  <note> When you call this API to delete tags from a hyperparameter tuning job, the deleted tags are not removed from training jobs that the hyperparameter tuning job launched before you called this API. </note> <note> When you call this API to delete tags from a SageMaker Studio Domain or User Profile, the deleted tags are not removed from Apps that the SageMaker Studio Domain or User Profile launched before you called this API. </note>

        :param self:
        :param TagKeys:  An array or one or more tag keys to delete.<br/>ResourceArn:  The Amazon Resource Name (ARN) of the resource whose tags you want to delete.<br/>
        :return:         """
        pass

    def delete_trial(self, TrialName: str) -> DeleteTrialResponse:
        r"""Deletes the specified trial. All trial components that make up the trial must be deleted first. Use the <a>DescribeTrialComponent</a> API to get the list of trial components.

        :param self:
        :param TrialName:  The name of the trial to delete.<br/>
        :return: TrialArn:  The Amazon Resource Name (ARN) of the trial that is being deleted.<br/>        """
        pass

    def delete_trial_component(self, TrialComponentName: str) -> DeleteTrialComponentResponse:
        r"""Deletes the specified trial component. A trial component must be disassociated from all trials before the trial component can be deleted. To disassociate a trial component from a trial, call the <a>DisassociateTrialComponent</a> API.

        :param self:
        :param TrialComponentName:  The name of the component to delete.<br/>
        :return: TrialComponentArn:  The Amazon Resource Name (ARN) of the component is being deleted.<br/>        """
        pass

    def delete_user_profile(self, UserProfileName: str, DomainId: str):
        r"""Deletes a user profile. When a user profile is deleted, the user loses access to their EFS volume, including data, notebooks, and other artifacts.

        :param self:
        :param UserProfileName:  The user profile name.<br/>DomainId:  The domain ID.<br/>
        :return:         """
        pass

    def delete_workforce(self, WorkforceName: str) -> DeleteWorkforceResponse:
        r"""Use this operation to delete a workforce. If you want to create a new workforce in an Amazon Web Services Region where a workforce already exists, use this operation to delete the existing workforce and then use to create a new workforce. <important> If a private workforce contains one or more work teams, you must use the operation to delete all work teams before you delete the workforce. If you try to delete a workforce that contains one or more work teams, you will recieve a <code>ResourceInUse</code> error. </important>

        :param self:
        :param WorkforceName:  The name of the workforce.<br/>
        :return:         """
        pass

    def delete_workteam(self, WorkteamName: str) -> DeleteWorkteamResponse:
        r"""Deletes an existing work team. This operation can't be undone.

        :param self:
        :param WorkteamName:  The name of the work team to delete.<br/>
        :return: Success:  Returns <code>true</code> if the work team was successfully deleted; otherwise, returns <code>false</code>.<br/>        """
        pass

    def deregister_devices(self, DeviceNames: List[DeviceName], DeviceFleetName: str):
        r"""Deregisters the specified devices. After you deregister a device, you will need to re-register the devices.

        :param self:
        :param DeviceNames:  The unique IDs of the devices.<br/>DeviceFleetName:  The name of the fleet the devices belong to.<br/>
        :return:         """
        pass

    def describe_action(self, ActionName: str) -> DescribeActionResponse:
        r"""Describes an action.

        :param self:
        :param ActionName:  The name of the action to describe.<br/>
        :return: MetadataProperties:  Metadata properties of the tracking entity, trial, or trial component.:<br/>LastModifiedBy:  Information about the user who created or modified an experiment, trial, or trial component.:<br/>LastModifiedTime:  When the action was last modified.<br/>CreatedBy:  Information about the user who created or modified an experiment, trial, or trial component.:<br/>CreationTime:  When the action was created.<br/>Properties:  A list of the action's properties.<br/>Status:  The status of the action.<br/>Description:  The description of the action.<br/>ActionType:  The type of the action.<br/>Source:  The source of the action.:<br/>ActionArn:  The Amazon Resource Name (ARN) of the action.<br/>ActionName:  The name of the action.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceId</i> The ID of the source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceType</i> The type of the source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceUri</i> The URI of the source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainId</i> The domain associated with the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserProfileName</i> The name of the user's profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserProfileArn</i> The Amazon Resource Name (ARN) of the user's profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainId</i> The domain associated with the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserProfileName</i> The name of the user's profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserProfileArn</i> The Amazon Resource Name (ARN) of the user's profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProjectId</i> The project ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GeneratedBy</i> The entity this entity was generated by.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Repository</i> The repository.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CommitId</i> The commit ID.<br/>        """
        pass

    def describe_algorithm(self, AlgorithmName: str) -> DescribeAlgorithmOutput:
        r"""Returns a description of the specified algorithm that is in your account.

        :param self:
        :param AlgorithmName:  The name of the algorithm to describe.<br/>
        :return: CertifyForMarketplace:  Whether the algorithm is certified to be listed in Amazon Web Services Marketplace.<br/>ProductId:  The product identifier of the algorithm.<br/>AlgorithmStatusDetails:  Details about the current status of the algorithm.:<br/>AlgorithmStatus:  The current status of the algorithm.<br/>ValidationSpecification:  Details about configurations for one or more training jobs that Amazon SageMaker runs to test the algorithm.:<br/>InferenceSpecification:  Details about inference jobs that the algorithm runs.:<br/>TrainingSpecification:  Details about training jobs run by this algorithm.:<br/>CreationTime:  A timestamp specifying when the algorithm was created.<br/>AlgorithmDescription:  A brief summary about the algorithm.<br/>AlgorithmArn:  The Amazon Resource Name (ARN) of the algorithm.<br/>AlgorithmName:  The name of the algorithm being described.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SupportedTuningJobObjectiveMetrics</i> A list of the metrics that the algorithm emits that can be used as the objective metric in a hyperparameter tuning job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TrainingChannels</i> A list of <code>ChannelSpecification</code> objects, which specify the input sources to be used by the algorithm.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MetricDefinitions</i> A list of <code>MetricDefinition</code> objects, which are used for parsing metrics generated by the algorithm.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SupportsDistributedTraining</i> Indicates whether the algorithm supports distributed training. If set to false, buyers can't request more than one instance during training.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SupportedTrainingInstanceTypes</i> A list of the instance types that this algorithm can use for training.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SupportedHyperParameters</i> A list of the <code>HyperParameterSpecification</code> objects, that define the supported hyperparameters. This is required if the algorithm supports automatic model tuning.&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TrainingImageDigest</i> An MD5 hash of the training algorithm that identifies the Docker image used for training.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TrainingImage</i> The Amazon ECR registry path of the Docker image that contains the training algorithm.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SupportedResponseMIMETypes</i> The supported MIME types for the output data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SupportedContentTypes</i> The supported MIME types for the input data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SupportedRealtimeInferenceInstanceTypes</i> A list of the instance types that are used to generate inferences in real-time. This parameter is required for unversioned models, and optional for versioned models.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SupportedTransformInstanceTypes</i> A list of the instance types on which a transformation job can be run or on which an endpoint can be deployed. This parameter is required for unversioned models, and optional for versioned models.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Containers</i> The Amazon ECR registry path of the Docker image that contains the inference code.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ValidationProfiles</i> An array of <code>AlgorithmValidationProfile</code> objects, each of which specifies a training job and batch transform job that Amazon SageMaker runs to validate your algorithm.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ValidationRole</i> The IAM roles that Amazon SageMaker uses to run the training jobs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImageScanStatuses</i> The status of the scan of the algorithm's Docker image container.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ValidationStatuses</i> The status of algorithm validation.<br/>        """
        pass

    def describe_app(self, AppName: str, AppType: str, UserProfileName: str, DomainId: str) -> DescribeAppResponse:
        r"""Describes the app.

        :param self:
        :param AppName:  The name of the app.<br/>AppType:  The type of app.<br/>UserProfileName:  The user profile name.<br/>DomainId:  The domain ID.<br/>
        :return: ResourceSpec:  The instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance.:<br/>FailureReason:  The failure reason.<br/>CreationTime:  The creation time.<br/>LastUserActivityTimestamp:  The timestamp of the last user's activity.<br/>LastHealthCheckTimestamp:  The timestamp of the last health check.<br/>Status:  The status.<br/>UserProfileName:  The user profile name.<br/>DomainId:  The domain ID.<br/>AppName:  The name of the app.<br/>AppType:  The type of app.<br/>AppArn:  The Amazon Resource Name (ARN) of the app.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceType</i> The instance type that the image version runs on.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SageMakerImageVersionArn</i> The ARN of the image version created on the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SageMakerImageArn</i> The ARN of the SageMaker image that the image version belongs to.<br/>        """
        pass

    def describe_app_image_config(self, AppImageConfigName: str) -> DescribeAppImageConfigResponse:
        r"""Describes an AppImageConfig.

        :param self:
        :param AppImageConfigName:  The name of the AppImageConfig to describe.<br/>
        :return: KernelGatewayImageConfig:  The configuration of a KernelGateway app.:<br/>LastModifiedTime:  When the AppImageConfig was last modified.<br/>CreationTime:  When the AppImageConfig was created.<br/>AppImageConfigName:  The name of the AppImageConfig.<br/>AppImageConfigArn:  The Amazon Resource Name (ARN) of the AppImageConfig.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FileSystemConfig</i> The Amazon Elastic File System (EFS) storage configuration for a SageMaker image.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>FileSystemConfig</b>: The Amazon Elastic File System (EFS) storage configuration for a SageMaker image.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KernelSpecs</i> The specification of the Jupyter kernels in the image.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultGid</i> The default POSIX group ID (GID). If not specified, defaults to <code>100</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultUid</i> The default POSIX user ID (UID). If not specified, defaults to <code>1000</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MountPath</i> The path within the image to mount the user's EFS home directory. The directory should be empty. If not specified, defaults to <i>/home/sagemaker-user</i>.<br/>        """
        pass

    def describe_artifact(self, ArtifactArn: str) -> DescribeArtifactResponse:
        r"""Describes an artifact.

        :param self:
        :param ArtifactArn:  The Amazon Resource Name (ARN) of the artifact to describe.<br/>
        :return: MetadataProperties:  Metadata properties of the tracking entity, trial, or trial component.:<br/>LastModifiedBy:  Information about the user who created or modified an experiment, trial, or trial component.:<br/>LastModifiedTime:  When the artifact was last modified.<br/>CreatedBy:  Information about the user who created or modified an experiment, trial, or trial component.:<br/>CreationTime:  When the artifact was created.<br/>Properties:  A list of the artifact's properties.<br/>ArtifactType:  The type of the artifact.<br/>Source:  The source of the artifact.:<br/>ArtifactArn:  The Amazon Resource Name (ARN) of the artifact.<br/>ArtifactName:  The name of the artifact.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceTypes</i> A list of source types.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceUri</i> The URI of the source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainId</i> The domain associated with the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserProfileName</i> The name of the user's profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserProfileArn</i> The Amazon Resource Name (ARN) of the user's profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainId</i> The domain associated with the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserProfileName</i> The name of the user's profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserProfileArn</i> The Amazon Resource Name (ARN) of the user's profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProjectId</i> The project ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GeneratedBy</i> The entity this entity was generated by.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Repository</i> The repository.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CommitId</i> The commit ID.<br/>        """
        pass

    def describe_auto_ml_job(self, AutoMLJobName: str) -> DescribeAutoMLJobResponse:
        r"""Returns information about an Amazon SageMaker AutoML job.

        :param self:
        :param AutoMLJobName:  Requests information about an AutoML job using its unique name.<br/>
        :return: ModelDeployResult:  Provides information about endpoint for the model deployment.:<br/>ModelDeployConfig:  Indicates whether the model was deployed automatically to an endpoint and the name of that endpoint if deployed automatically.:<br/>ResolvedAttributes:  This contains <code>ProblemType</code>, <code>AutoMLJobObjective</code> and <code>CompletionCriteria</code>. If you do not provide these values, they are auto-inferred. If you do provide them, the values used are the ones you provide.:<br/>AutoMLJobArtifacts:  Returns information on the job's artifacts found in <code>AutoMLJobArtifacts</code>.:<br/>GenerateCandidateDefinitionsOnly:  Indicates whether the output for an AutoML job generates candidate definitions only.<br/>AutoMLJobSecondaryStatus:  Returns the secondary status of the AutoML job.<br/>AutoMLJobStatus:  Returns the status of the AutoML job.<br/>BestCandidate:  Returns the job's best <code>AutoMLCandidate</code>.:<br/>PartialFailureReasons:  Returns a list of reasons for partial failures within an AutoML job.<br/>FailureReason:  Returns the failure reason for an AutoML job, when applicable.<br/>LastModifiedTime:  Returns the job's last modified time.<br/>EndTime:  Returns the end time of the AutoML job.<br/>CreationTime:  Returns the creation time of the AutoML job.<br/>AutoMLJobConfig:  Returns the configuration for the AutoML job.:<br/>ProblemType:  Returns the job's problem type.<br/>AutoMLJobObjective:  Returns the job's objective.:<br/>RoleArn:  The Amazon Resource Name (ARN) of the Amazon Web Services Identity and Access Management (IAM) role that has read permission to the input data location and write permission to the output data location in Amazon S3.<br/>OutputDataConfig:  Returns the job's output data config.:<br/>InputDataConfig:  Returns the input data configuration for the AutoML job..<br/>AutoMLJobArn:  Returns the ARN of the AutoML job.<br/>AutoMLJobName:  Returns the name of the AutoML job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3OutputPath</i> The Amazon S3 output path. Must be 128 characters or less.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The Amazon Web Services KMS encryption key ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MetricName</i> The name of the objective metric used to measure the predictive quality of a machine learning system. This metric is optimized during training to provide the best estimate for model parameter values from data. Here are the options: <ul> <li>  <code>MSE</code>: The mean squared error (MSE) is the average of the squared differences between the predicted and actual values. It is used for regression. MSE values are always positive: the better a model is at predicting the actual values, the smaller the MSE value. When the data contains outliers, they tend to dominate the MSE, which might cause subpar prediction performance. </li> <li>  <code>Accuracy</code>: The ratio of the number of correctly classified items to the total number of (correctly and incorrectly) classified items. It is used for binary and multiclass classification. It measures how close the predicted class values are to the actual values. Accuracy values vary between zero and one: one indicates perfect accuracy and zero indicates perfect inaccuracy. </li> <li>  <code>F1</code>: The F1 score is the harmonic mean of the precision and recall. It is used for binary classification into classes traditionally referred to as positive and negative. Predictions are said to be true when they match their actual (correct) class and false when they do not. Precision is the ratio of the true positive predictions to all positive predictions (including the false positives) in a data set and measures the quality of the prediction when it predicts the positive class. Recall (or sensitivity) is the ratio of the true positive predictions to all actual positive instances and measures how completely a model predicts the actual class members in a data set. The standard F1 score weighs precision and recall equally. But which metric is paramount typically depends on specific aspects of a problem. F1 scores vary between zero and one: one indicates the best possible performance and zero the worst. </li> <li>  <code>AUC</code>: The area under the curve (AUC) metric is used to compare and evaluate binary classification by algorithms such as logistic regression that return probabilities. A threshold is needed to map the probabilities into classifications. The relevant curve is the receiver operating characteristic curve that plots the true positive rate (TPR) of predictions (or recall) against the false positive rate (FPR) as a function of the threshold value, above which a prediction is considered positive. Increasing the threshold results in fewer false positives but more false negatives. AUC is the area under this receiver operating characteristic curve and so provides an aggregated measure of the model performance across all possible classification thresholds. The AUC score can also be interpreted as the probability that a randomly selected positive data point is more likely to be predicted positive than a randomly selected negative example. AUC scores vary between zero and one: a score of one indicates perfect accuracy and a score of one half indicates that the prediction is not better than a random classifier. Values under one half predict less accurately than a random predictor. But such consistently bad predictors can simply be inverted to obtain better than random predictors. </li> <li>  <code>F1macro</code>: The F1macro score applies F1 scoring to multiclass classification. In this context, you have multiple classes to predict. You just calculate the precision and recall for each class as you did for the positive class in binary classification. Then, use these values to calculate the F1 score for each class and average them to obtain the F1macro score. F1macro scores vary between zero and one: one indicates the best possible performance and zero the worst. </li> </ul> If you do not specify a metric explicitly, the default behavior is to automatically use: <ul> <li>  <code>MSE</code>: for regression. </li> <li>  <code>F1</code>: for binary classification </li> <li>  <code>Accuracy</code>: for multiclass classification. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityConfig</i> The security configuration for traffic encryption or Amazon VPC settings.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SecurityConfig</b>: The security configuration for traffic encryption or Amazon VPC settings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CompletionCriteria</i> How long an AutoML job is allowed to run, or how many candidates a job is allowed to generate.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CompletionCriteria</b>: How long an AutoML job is allowed to run, or how many candidates a job is allowed to generate.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxAutoMLJobRuntimeInSeconds</i> The maximum runtime, in seconds, an AutoML job has to complete.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxRuntimePerTrainingJobInSeconds</i> The maximum time, in seconds, a training job is allowed to run as part of an AutoML job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxCandidates</i> The maximum number of times a training job is allowed to run.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableInterContainerTrafficEncryption</i> Whether to use traffic encryption between the container layers.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VolumeKmsKeyId</i> The key used to encrypt stored data.<br/>The VPC configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>VpcConfig</b>: The VPC configuration.&nbsp;&nbsp;&nbsp;&nbsp; <i>CandidateProperties</i> The AutoML candidate's properties.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CandidateProperties</b>: The AutoML candidate's properties.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FailureReason</i> The failure reason.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedTime</i> The last modified time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndTime</i> The end time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The creation time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InferenceContainers</i> Information about the inference container definitions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CandidateStatus</i> The candidate's status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CandidateSteps</i> Information about the candidate's steps.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ObjectiveStatus</i> The objective's status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FinalAutoMLJobObjectiveMetric</i> The best candidate result from an AutoML training job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>FinalAutoMLJobObjectiveMetric</b>: The best candidate result from an AutoML training job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CandidateName</i> The name of the candidate.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Value</i> The value of the metric with the best result.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MetricName</i> The name of the metric with the best result. For a description of the possible objective metrics, see <a>AutoMLJobObjective$MetricName</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of metric with the best result.<br/>The Amazon S3 prefix to the artifacts generated for an AutoML candidate.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CandidateArtifactLocations</b>: The Amazon S3 prefix to the artifacts generated for an AutoML candidate.&nbsp;&nbsp;&nbsp;&nbsp; <i>DataExplorationNotebookLocation</i> The URL of the notebook location.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CandidateDefinitionNotebookLocation</i> The URL of the notebook location.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CompletionCriteria</i> How long a job is allowed to run, or how many candidates a job is allowed to generate.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CompletionCriteria</b>: How long a job is allowed to run, or how many candidates a job is allowed to generate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProblemType</i> The problem type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoMLJobObjective</i> Specifies a metric to minimize or maximize as the objective of a job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AutoMLJobObjective</b>: Specifies a metric to minimize or maximize as the objective of a job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MetricName</i> The name of the objective metric used to measure the predictive quality of a machine learning system. This metric is optimized during training to provide the best estimate for model parameter values from data. Here are the options: <ul> <li>  <code>MSE</code>: The mean squared error (MSE) is the average of the squared differences between the predicted and actual values. It is used for regression. MSE values are always positive: the better a model is at predicting the actual values, the smaller the MSE value. When the data contains outliers, they tend to dominate the MSE, which might cause subpar prediction performance. </li> <li>  <code>Accuracy</code>: The ratio of the number of correctly classified items to the total number of (correctly and incorrectly) classified items. It is used for binary and multiclass classification. It measures how close the predicted class values are to the actual values. Accuracy values vary between zero and one: one indicates perfect accuracy and zero indicates perfect inaccuracy. </li> <li>  <code>F1</code>: The F1 score is the harmonic mean of the precision and recall. It is used for binary classification into classes traditionally referred to as positive and negative. Predictions are said to be true when they match their actual (correct) class and false when they do not. Precision is the ratio of the true positive predictions to all positive predictions (including the false positives) in a data set and measures the quality of the prediction when it predicts the positive class. Recall (or sensitivity) is the ratio of the true positive predictions to all actual positive instances and measures how completely a model predicts the actual class members in a data set. The standard F1 score weighs precision and recall equally. But which metric is paramount typically depends on specific aspects of a problem. F1 scores vary between zero and one: one indicates the best possible performance and zero the worst. </li> <li>  <code>AUC</code>: The area under the curve (AUC) metric is used to compare and evaluate binary classification by algorithms such as logistic regression that return probabilities. A threshold is needed to map the probabilities into classifications. The relevant curve is the receiver operating characteristic curve that plots the true positive rate (TPR) of predictions (or recall) against the false positive rate (FPR) as a function of the threshold value, above which a prediction is considered positive. Increasing the threshold results in fewer false positives but more false negatives. AUC is the area under this receiver operating characteristic curve and so provides an aggregated measure of the model performance across all possible classification thresholds. The AUC score can also be interpreted as the probability that a randomly selected positive data point is more likely to be predicted positive than a randomly selected negative example. AUC scores vary between zero and one: a score of one indicates perfect accuracy and a score of one half indicates that the prediction is not better than a random classifier. Values under one half predict less accurately than a random predictor. But such consistently bad predictors can simply be inverted to obtain better than random predictors. </li> <li>  <code>F1macro</code>: The F1macro score applies F1 scoring to multiclass classification. In this context, you have multiple classes to predict. You just calculate the precision and recall for each class as you did for the positive class in binary classification. Then, use these values to calculate the F1 score for each class and average them to obtain the F1macro score. F1macro scores vary between zero and one: one indicates the best possible performance and zero the worst. </li> </ul> If you do not specify a metric explicitly, the default behavior is to automatically use: <ul> <li>  <code>MSE</code>: for regression. </li> <li>  <code>F1</code>: for binary classification </li> <li>  <code>Accuracy</code>: for multiclass classification. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxAutoMLJobRuntimeInSeconds</i> The maximum runtime, in seconds, an AutoML job has to complete.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxRuntimePerTrainingJobInSeconds</i> The maximum time, in seconds, a training job is allowed to run as part of an AutoML job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxCandidates</i> The maximum number of times a training job is allowed to run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointName</i> Specifies the endpoint name to use for a one-click Autopilot model deployment if the endpoint name is not generated automatically. <note> Specify the <code>EndpointName</code> if and only if you set <code>AutoGenerateEndpointName</code> to <code>False</code>; otherwise a 400 error is thrown. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoGenerateEndpointName</i> Set to <code>True</code> to automatically generate an endpoint name for a one-click Autopilot model deployment; set to <code>False</code> otherwise. The default value is <code>False</code>. <note> If you set <code>AutoGenerateEndpointName</code> to <code>True</code>, do not specify the <code>EndpointName</code>; otherwise a 400 error is thrown. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointName</i> The name of the endpoint to which the model has been deployed. <note> If model deployment fails, this field is omitted from the response. </note><br/>        """
        pass

    def describe_code_repository(self, CodeRepositoryName: str) -> DescribeCodeRepositoryOutput:
        r"""Gets details about the specified Git repository.

        :param self:
        :param CodeRepositoryName:  The name of the Git repository to describe.<br/>
        :return: GitConfig:  Configuration details about the repository, including the URL where the repository is located, the default branch, and the Amazon Resource Name (ARN) of the Amazon Web Services Secrets Manager secret that contains the credentials used to access the repository.:<br/>LastModifiedTime:  The date and time that the repository was last changed.<br/>CreationTime:  The date and time that the repository was created.<br/>CodeRepositoryArn:  The Amazon Resource Name (ARN) of the Git repository.<br/>CodeRepositoryName:  The name of the Git repository.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretArn</i> The Amazon Resource Name (ARN) of the Amazon Web Services Secrets Manager secret that contains the credentials used to access the git repository. The secret must have a staging label of <code>AWSCURRENT</code> and must be in the following format:  <code>{"username": <i>UserName</i>, "password": <i>Password</i>}</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Branch</i> The default branch for the Git repository.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RepositoryUrl</i> The URL where the Git repository is located.<br/>        """
        pass

    def describe_compilation_job(self, CompilationJobName: str) -> DescribeCompilationJobResponse:
        r"""Returns information about a model compilation job. To create a model compilation job, use <a>CreateCompilationJob</a>. To get information about multiple model compilation jobs, use <a>ListCompilationJobs</a>.

        :param self:
        :param CompilationJobName:  The name of the model compilation job that you want information about.<br/>
        :return: VpcConfig:  A <a>VpcConfig</a> object that specifies the VPC that you want your compilation job to connect to. Control access to your models by configuring the VPC. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/neo-vpc.html">Protect Compilation Jobs by Using an Amazon Virtual Private Cloud</a>.:<br/>OutputConfig:  Information about the output location for the compiled model and the target device that the model runs on.:<br/>InputConfig:  Information about the location in Amazon S3 of the input model artifacts, the name and shape of the expected data inputs, and the framework in which the model was trained.:<br/>RoleArn:  The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker assumes to perform the model compilation job.<br/>ModelDigests:  Provides a BLAKE2 hash value that identifies the compiled model artifacts in Amazon S3.:<br/>ModelArtifacts:  Information about the location in Amazon S3 that has been configured for storing the model artifacts used in the compilation job.:<br/>FailureReason:  If a model compilation job failed, the reason it failed. <br/>LastModifiedTime:  The time that the status of the model compilation job was last modified.<br/>CreationTime:  The time that the model compilation job was created.<br/>InferenceImage:  The inference image to use when compiling a model. Specify an image only if the target device is a cloud instance.<br/>StoppingCondition:  Specifies a limit to how long a model compilation job can run. When the job reaches the time limit, Amazon SageMaker ends the compilation job. Use this API to cap model training costs.:<br/>CompilationEndTime:  The time when the model compilation job on a compilation job instance ended. For a successful or stopped job, this is when the job's model artifacts have finished uploading. For a failed job, this is when Amazon SageMaker detected that the job failed. <br/>CompilationStartTime:  The time when the model compilation job started the <code>CompilationJob</code> instances.  You are billed for the time between this timestamp and the timestamp in the <a>DescribeCompilationJobResponse$CompilationEndTime</a> field. In Amazon CloudWatch Logs, the start time might be later than this time. That's because it takes time to download the compilation job, which depends on the size of the compilation job container. <br/>CompilationJobStatus:  The status of the model compilation job.<br/>CompilationJobArn:  The Amazon Resource Name (ARN) of the model compilation job.<br/>CompilationJobName:  The name of the model compilation job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxWaitTimeInSeconds</i> The maximum length of time, in seconds, that a managed Spot training job has to complete. It is the amount of time spent waiting for Spot capacity plus the amount of time the job can run. It must be equal to or greater than <code>MaxRuntimeInSeconds</code>. If the job does not complete during this time, Amazon SageMaker ends the job. When <code>RetryStrategy</code> is specified in the job request, <code>MaxWaitTimeInSeconds</code> specifies the maximum time for all of the attempts in total, not each individual attempt.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxRuntimeInSeconds</i> The maximum length of time, in seconds, that a training or compilation job can run. If the job does not complete during this time, Amazon SageMaker ends the job. When <code>RetryStrategy</code> is specified in the job request, <code>MaxRuntimeInSeconds</code> specifies the maximum time for all of the attempts in total, not each individual attempt. The default value is 1 day. The maximum value is 28 days.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3ModelArtifacts</i> The path of the S3 object that contains the model artifacts. For example, <code>s3://bucket-name/keynameprefix/model.tar.gz</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ArtifactDigest</i> Provides a hash value that uniquely identifies the stored model artifacts.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FrameworkVersion</i> Specifies the framework version to use. This API field is only supported for PyTorch framework versions <code>1.4</code>, <code>1.5</code>, and <code>1.6</code> for cloud instance target devices: <code>ml_c4</code>, <code>ml_c5</code>, <code>ml_m4</code>, <code>ml_m5</code>, <code>ml_p2</code>, <code>ml_p3</code>, and <code>ml_g4dn</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Framework</i> Identifies the framework in which the model was trained. For example: TENSORFLOW.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataInputConfig</i> Specifies the name and shape of the expected data inputs for your trained model with a JSON dictionary form. The data inputs are <a>InputConfig$Framework</a> specific.  <ul> <li>  <code>TensorFlow</code>: You must specify the name and shape (NHWC format) of the expected data inputs using a dictionary format for your trained model. The dictionary formats required for the console and CLI are different. <ul> <li> Examples for one input: <ul> <li> If using the console, <code>{"input":[1,1024,1024,3]}</code>  </li> <li> If using the CLI, <code>{\"input\":[1,1024,1024,3]}</code>  </li> </ul> </li> <li> Examples for two inputs: <ul> <li> If using the console, <code>{"data1": [1,28,28,1], "data2":[1,28,28,1]}</code>  </li> <li> If using the CLI, <code>{\"data1\": [1,28,28,1], \"data2\":[1,28,28,1]}</code>  </li> </ul> </li> </ul> </li> <li>  <code>KERAS</code>: You must specify the name and shape (NCHW format) of expected data inputs using a dictionary format for your trained model. Note that while Keras model artifacts should be uploaded in NHWC (channel-last) format, <code>DataInputConfig</code> should be specified in NCHW (channel-first) format. The dictionary formats required for the console and CLI are different. <ul> <li> Examples for one input: <ul> <li> If using the console, <code>{"input_1":[1,3,224,224]}</code>  </li> <li> If using the CLI, <code>{\"input_1\":[1,3,224,224]}</code>  </li> </ul> </li> <li> Examples for two inputs: <ul> <li> If using the console, <code>{"input_1": [1,3,224,224], "input_2":[1,3,224,224]} </code>  </li> <li> If using the CLI, <code>{\"input_1\": [1,3,224,224], \"input_2\":[1,3,224,224]}</code>  </li> </ul> </li> </ul> </li> <li>  <code>MXNET/ONNX/DARKNET</code>: You must specify the name and shape (NCHW format) of the expected data inputs in order using a dictionary format for your trained model. The dictionary formats required for the console and CLI are different. <ul> <li> Examples for one input: <ul> <li> If using the console, <code>{"data":[1,3,1024,1024]}</code>  </li> <li> If using the CLI, <code>{\"data\":[1,3,1024,1024]}</code>  </li> </ul> </li> <li> Examples for two inputs: <ul> <li> If using the console, <code>{"var1": [1,1,28,28], "var2":[1,1,28,28]} </code>  </li> <li> If using the CLI, <code>{\"var1\": [1,1,28,28], \"var2\":[1,1,28,28]}</code>  </li> </ul> </li> </ul> </li> <li>  <code>PyTorch</code>: You can either specify the name and shape (NCHW format) of expected data inputs in order using a dictionary format for your trained model or you can specify the shape only using a list format. The dictionary formats required for the console and CLI are different. The list formats for the console and CLI are the same. <ul> <li> Examples for one input in dictionary format: <ul> <li> If using the console, <code>{"input0":[1,3,224,224]}</code>  </li> <li> If using the CLI, <code>{\"input0\":[1,3,224,224]}</code>  </li> </ul> </li> <li> Example for one input in list format: <code>[[1,3,224,224]]</code>  </li> <li> Examples for two inputs in dictionary format: <ul> <li> If using the console, <code>{"input0":[1,3,224,224], "input1":[1,3,224,224]}</code>  </li> <li> If using the CLI, <code>{\"input0\":[1,3,224,224], \"input1\":[1,3,224,224]} </code>  </li> </ul> </li> <li> Example for two inputs in list format: <code>[[1,3,224,224], [1,3,224,224]]</code>  </li> </ul> </li> <li>  <code>XGBOOST</code>: input data name and shape are not needed. </li> </ul>  <code>DataInputConfig</code> supports the following parameters for <code>CoreML</code> <a>OutputConfig$TargetDevice</a> (ML Model format): <ul> <li>  <code>shape</code>: Input shape, for example <code>{"input_1": {"shape": [1,224,224,3]}}</code>. In addition to static input shapes, CoreML converter supports Flexible input shapes: <ul> <li> Range Dimension. You can use the Range Dimension feature if you know the input shape will be within some specific interval in that dimension, for example: <code>{"input_1": {"shape": ["1..10", 224, 224, 3]}}</code>  </li> <li> Enumerated shapes. Sometimes, the models are trained to work only on a select set of inputs. You can enumerate all supported input shapes, for example: <code>{"input_1": {"shape": [[1, 224, 224, 3], [1, 160, 160, 3]]}}</code>  </li> </ul> </li> <li>  <code>default_shape</code>: Default input shape. You can set a default shape during conversion for both Range Dimension and Enumerated Shapes. For example <code>{"input_1": {"shape": ["1..10", 224, 224, 3], "default_shape": [1, 224, 224, 3]}}</code>  </li> <li>  <code>type</code>: Input type. Allowed values: <code>Image</code> and <code>Tensor</code>. By default, the converter generates an ML Model with inputs of type Tensor (MultiArray). User can set input type to be Image. Image input type requires additional input parameters such as <code>bias</code> and <code>scale</code>. </li> <li>  <code>bias</code>: If the input type is an Image, you need to provide the bias vector. </li> <li>  <code>scale</code>: If the input type is an Image, you need to provide a scale factor. </li> </ul> CoreML <code>ClassifierConfig</code> parameters can be specified using <a>OutputConfig$CompilerOptions</a>. CoreML converter supports Tensorflow and PyTorch models. CoreML conversion examples: <ul> <li> Tensor type input: <ul> <li>  <code>"DataInputConfig": {"input_1": {"shape": [[1,224,224,3], [1,160,160,3]], "default_shape": [1,224,224,3]}}</code>  </li> </ul> </li> <li> Tensor type input without input name (PyTorch): <ul> <li>  <code>"DataInputConfig": [{"shape": [[1,3,224,224], [1,3,160,160]], "default_shape": [1,3,224,224]}]</code>  </li> </ul> </li> <li> Image type input: <ul> <li>  <code>"DataInputConfig": {"input_1": {"shape": [[1,224,224,3], [1,160,160,3]], "default_shape": [1,224,224,3], "type": "Image", "bias": [-1,-1,-1], "scale": 0.007843137255}}</code>  </li> <li>  <code>"CompilerOptions": {"class_labels": "imagenet_labels_1000.txt"}</code>  </li> </ul> </li> <li> Image type input without input name (PyTorch): <ul> <li>  <code>"DataInputConfig": [{"shape": [[1,3,224,224], [1,3,160,160]], "default_shape": [1,3,224,224], "type": "Image", "bias": [-1,-1,-1], "scale": 0.007843137255}]</code>  </li> <li>  <code>"CompilerOptions": {"class_labels": "imagenet_labels_1000.txt"}</code>  </li> </ul> </li> </ul> Depending on the model format, <code>DataInputConfig</code> requires the following parameters for <code>ml_eia2</code> <a href="https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_OutputConfig.html#sagemaker-Type-OutputConfig-TargetDevice">OutputConfig:TargetDevice</a>. <ul> <li> For TensorFlow models saved in the SavedModel format, specify the input names from <code>signature_def_key</code> and the input model shapes for <code>DataInputConfig</code>. Specify the <code>signature_def_key</code> in <a href="https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_OutputConfig.html#sagemaker-Type-OutputConfig-CompilerOptions"> <code>OutputConfig:CompilerOptions</code> </a> if the model does not use TensorFlow's default signature def key. For example: <ul> <li>  <code>"DataInputConfig": {"inputs": [1, 224, 224, 3]}</code>  </li> <li>  <code>"CompilerOptions": {"signature_def_key": "serving_custom"}</code>  </li> </ul> </li> <li> For TensorFlow models saved as a frozen graph, specify the input tensor names and shapes in <code>DataInputConfig</code> and the output tensor names for <code>output_names</code> in <a href="https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_OutputConfig.html#sagemaker-Type-OutputConfig-CompilerOptions"> <code>OutputConfig:CompilerOptions</code> </a>. For example: <ul> <li>  <code>"DataInputConfig": {"input_tensor:0": [1, 224, 224, 3]}</code>  </li> <li>  <code>"CompilerOptions": {"output_names": ["output_tensor:0"]}</code>  </li> </ul> </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Uri</i> The S3 path where the model artifacts, which result from model training, are stored. This path must point to a single gzip compressed tar archive (.tar.gz suffix).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The Amazon Web Services Key Management Service key (Amazon Web Services KMS) that Amazon SageMaker uses to encrypt your output models with Amazon S3 server-side encryption after compilation job. If you don't provide a KMS key ID, Amazon SageMaker uses the default KMS key for Amazon S3 for your role's account. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html">KMS-Managed Encryption Keys</a> in the <i>Amazon Simple Storage Service Developer Guide.</i>  The KmsKeyId can be any of the following formats:  <ul> <li> Key ID: <code>1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> <li> Key ARN: <code>arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> <li> Alias name: <code>alias/ExampleAlias</code>  </li> <li> Alias name ARN: <code>arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CompilerOptions</i> Specifies additional parameters for compiler options in JSON format. The compiler options are <code>TargetPlatform</code> specific. It is required for NVIDIA accelerators and highly recommended for CPU compilations. For any other cases, it is optional to specify <code>CompilerOptions.</code>  <ul> <li>  <code>DTYPE</code>: Specifies the data type for the input. When compiling for <code>ml_*</code> (except for <code>ml_inf</code>) instances using PyTorch framework, provide the data type (dtype) of the model's input. <code>"float32"</code> is used if <code>"DTYPE"</code> is not specified. Options for data type are: <ul> <li> float32: Use either <code>"float"</code> or <code>"float32"</code>. </li> <li> int64: Use either <code>"int64"</code> or <code>"long"</code>. </li> </ul>  For example, <code>{"dtype" : "float32"}</code>. </li> <li>  <code>CPU</code>: Compilation for CPU supports the following compiler options. <ul> <li>  <code>mcpu</code>: CPU micro-architecture. For example, <code>{'mcpu': 'skylake-avx512'}</code>  </li> <li>  <code>mattr</code>: CPU flags. For example, <code>{'mattr': ['+neon', '+vfpv4']}</code>  </li> </ul> </li> <li>  <code>ARM</code>: Details of ARM CPU compilations. <ul> <li>  <code>NEON</code>: NEON is an implementation of the Advanced SIMD extension used in ARMv7 processors. For example, add <code>{'mattr': ['+neon']}</code> to the compiler options if compiling for ARM 32-bit platform with the NEON support. </li> </ul> </li> <li>  <code>NVIDIA</code>: Compilation for NVIDIA GPU supports the following compiler options. <ul> <li>  <code>gpu_code</code>: Specifies the targeted architecture. </li> <li>  <code>trt-ver</code>: Specifies the TensorRT versions in x.y.z. format. </li> <li>  <code>cuda-ver</code>: Specifies the CUDA version in x.y format. </li> </ul> For example, <code>{'gpu-code': 'sm_72', 'trt-ver': '6.0.1', 'cuda-ver': '10.1'}</code>  </li> <li>  <code>ANDROID</code>: Compilation for the Android OS supports the following compiler options: <ul> <li>  <code>ANDROID_PLATFORM</code>: Specifies the Android API levels. Available levels range from 21 to 29. For example, <code>{'ANDROID_PLATFORM': 28}</code>. </li> <li>  <code>mattr</code>: Add <code>{'mattr': ['+neon']}</code> to compiler options if compiling for ARM 32-bit platform with NEON support. </li> </ul> </li> <li>  <code>INFERENTIA</code>: Compilation for target ml_inf1 uses compiler options passed in as a JSON string. For example, <code>"CompilerOptions": "\"--verbose 1 --num-neuroncores 2 -O2\""</code>.  For information about supported compiler options, see <a href="https://github.com/aws/aws-neuron-sdk/blob/master/docs/neuron-cc/command-line-reference.md"> Neuron Compiler CLI</a>.  </li> <li>  <code>CoreML</code>: Compilation for the CoreML <a>OutputConfig$TargetDevice</a> supports the following compiler options: <ul> <li>  <code>class_labels</code>: Specifies the classification labels file name inside input tar.gz file. For example, <code>{"class_labels": "imagenet_labels_1000.txt"}</code>. Labels inside the txt file should be separated by newlines. </li> </ul> </li> <li>  <code>EIA</code>: Compilation for the Elastic Inference Accelerator supports the following compiler options: <ul> <li>  <code>precision_mode</code>: Specifies the precision of compiled artifacts. Supported values are <code>"FP16"</code> and <code>"FP32"</code>. Default is <code>"FP32"</code>. </li> <li>  <code>signature_def_key</code>: Specifies the signature to use for models in SavedModel format. Defaults is TensorFlow's default signature def key. </li> <li>  <code>output_names</code>: Specifies a list of output tensor names for models in FrozenGraph format. Set at most one API field, either: <code>signature_def_key</code> or <code>output_names</code>. </li> </ul> For example: <code>{"precision_mode": "FP32", "output_names": ["output:0"]}</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetPlatform</i> Contains information about a target platform that you want your model to run on, such as OS, architecture, and accelerators. It is an alternative of <code>TargetDevice</code>. The following examples show how to configure the <code>TargetPlatform</code> and <code>CompilerOptions</code> JSON strings for popular target platforms:  <ul> <li> Raspberry Pi 3 Model B+  <code>"TargetPlatform": {"Os": "LINUX", "Arch": "ARM_EABIHF"},</code>   <code> "CompilerOptions": {'mattr': ['+neon']}</code>  </li> <li> Jetson TX2  <code>"TargetPlatform": {"Os": "LINUX", "Arch": "ARM64", "Accelerator": "NVIDIA"},</code>   <code> "CompilerOptions": {'gpu-code': 'sm_62', 'trt-ver': '6.0.1', 'cuda-ver': '10.0'}</code>  </li> <li> EC2 m5.2xlarge instance OS  <code>"TargetPlatform": {"Os": "LINUX", "Arch": "X86_64", "Accelerator": "NVIDIA"},</code>   <code> "CompilerOptions": {'mcpu': 'skylake-avx512'}</code>  </li> <li> RK3399  <code>"TargetPlatform": {"Os": "LINUX", "Arch": "ARM64", "Accelerator": "MALI"}</code>  </li> <li> ARMv7 phone (CPU)  <code>"TargetPlatform": {"Os": "ANDROID", "Arch": "ARM_EABI"},</code>   <code> "CompilerOptions": {'ANDROID_PLATFORM': 25, 'mattr': ['+neon']}</code>  </li> <li> ARMv8 phone (CPU)  <code>"TargetPlatform": {"Os": "ANDROID", "Arch": "ARM64"},</code>   <code> "CompilerOptions": {'ANDROID_PLATFORM': 29}</code>  </li> </ul>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TargetPlatform</b>: Contains information about a target platform that you want your model to run on, such as OS, architecture, and accelerators. It is an alternative of <code>TargetDevice</code>. The following examples show how to configure the <code>TargetPlatform</code> and <code>CompilerOptions</code> JSON strings for popular target platforms:  <ul> <li> Raspberry Pi 3 Model B+  <code>"TargetPlatform": {"Os": "LINUX", "Arch": "ARM_EABIHF"},</code>   <code> "CompilerOptions": {'mattr': ['+neon']}</code>  </li> <li> Jetson TX2  <code>"TargetPlatform": {"Os": "LINUX", "Arch": "ARM64", "Accelerator": "NVIDIA"},</code>   <code> "CompilerOptions": {'gpu-code': 'sm_62', 'trt-ver': '6.0.1', 'cuda-ver': '10.0'}</code>  </li> <li> EC2 m5.2xlarge instance OS  <code>"TargetPlatform": {"Os": "LINUX", "Arch": "X86_64", "Accelerator": "NVIDIA"},</code>   <code> "CompilerOptions": {'mcpu': 'skylake-avx512'}</code>  </li> <li> RK3399  <code>"TargetPlatform": {"Os": "LINUX", "Arch": "ARM64", "Accelerator": "MALI"}</code>  </li> <li> ARMv7 phone (CPU)  <code>"TargetPlatform": {"Os": "ANDROID", "Arch": "ARM_EABI"},</code>   <code> "CompilerOptions": {'ANDROID_PLATFORM': 25, 'mattr': ['+neon']}</code>  </li> <li> ARMv8 phone (CPU)  <code>"TargetPlatform": {"Os": "ANDROID", "Arch": "ARM64"},</code>   <code> "CompilerOptions": {'ANDROID_PLATFORM': 29}</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetDevice</i> Identifies the target device or the machine learning instance that you want to run your model on after the compilation has completed. Alternatively, you can specify OS, architecture, and accelerator using <a>TargetPlatform</a> fields. It can be used instead of <code>TargetPlatform</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3OutputLocation</i> Identifies the S3 bucket where you want Amazon SageMaker to store the model artifacts. For example, <code>s3://bucket-name/key-name-prefix</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Accelerator</i> Specifies a target platform accelerator (optional). <ul> <li>  <code>NVIDIA</code>: Nvidia graphics processing unit. It also requires <code>gpu-code</code>, <code>trt-ver</code>, <code>cuda-ver</code> compiler options </li> <li>  <code>MALI</code>: ARM Mali graphics processor </li> <li>  <code>INTEL_GRAPHICS</code>: Integrated Intel graphics </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Arch</i> Specifies a target platform architecture. <ul> <li>  <code>X86_64</code>: 64-bit version of the x86 instruction set. </li> <li>  <code>X86</code>: 32-bit version of the x86 instruction set. </li> <li>  <code>ARM64</code>: ARMv8 64-bit CPU. </li> <li>  <code>ARM_EABIHF</code>: ARMv7 32-bit, Hard Float. </li> <li>  <code>ARM_EABI</code>: ARMv7 32-bit, Soft Float. Used by Android 32-bit ARM platform. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Os</i> Specifies a target platform OS. <ul> <li>  <code>LINUX</code>: Linux-based operating systems. </li> <li>  <code>ANDROID</code>: Android operating systems. Android API level can be specified using the <code>ANDROID_PLATFORM</code> compiler option. For example, <code>"CompilerOptions": {'ANDROID_PLATFORM': 28}</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Subnets</i> The ID of the subnets in the VPC that you want to connect the compilation job to for accessing the model in Amazon S3.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> The VPC security group IDs. IDs have the form of <code>sg-xxxxxxxx</code>. Specify the security groups for the VPC that is specified in the <code>Subnets</code> field.<br/>        """
        pass

    def describe_context(self, ContextName: str) -> DescribeContextResponse:
        r"""Describes a context.

        :param self:
        :param ContextName:  The name of the context to describe.<br/>
        :return: LastModifiedBy:  Information about the user who created or modified an experiment, trial, or trial component.:<br/>LastModifiedTime:  When the context was last modified.<br/>CreatedBy:  Information about the user who created or modified an experiment, trial, or trial component.:<br/>CreationTime:  When the context was created.<br/>Properties:  A list of the context's properties.<br/>Description:  The description of the context.<br/>ContextType:  The type of the context.<br/>Source:  The source of the context.:<br/>ContextArn:  The Amazon Resource Name (ARN) of the context.<br/>ContextName:  The name of the context.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceId</i> The ID of the source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceType</i> The type of the source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceUri</i> The URI of the source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainId</i> The domain associated with the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserProfileName</i> The name of the user's profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserProfileArn</i> The Amazon Resource Name (ARN) of the user's profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainId</i> The domain associated with the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserProfileName</i> The name of the user's profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserProfileArn</i> The Amazon Resource Name (ARN) of the user's profile.<br/>        """
        pass

    def describe_data_quality_job_definition(self, JobDefinitionName: str) -> DescribeDataQualityJobDefinitionResponse:
        r"""Gets the details of a data quality monitoring job definition.

        :param self:
        :param JobDefinitionName:  The name of the data quality monitoring job definition to describe.<br/>
        :return: StoppingCondition:  A time limit for how long the monitoring job is allowed to run before stopping.:<br/>RoleArn:  The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can assume to perform tasks on your behalf.<br/>NetworkConfig:  The networking configuration for the data quality monitoring job.:<br/>JobResources:  Identifies the resources to deploy for a monitoring job.:<br/>DataQualityJobOutputConfig:  The output configuration for monitoring jobs.:<br/>DataQualityJobInput:  The list of inputs for the data quality monitoring job. Currently endpoints are supported.:<br/>DataQualityAppSpecification:  Information about the container that runs the data quality monitoring job.:<br/>DataQualityBaselineConfig:  The constraints and baselines for the data quality monitoring job definition.:<br/>CreationTime:  The time that the data quality monitoring job definition was created.<br/>JobDefinitionName:  The name of the data quality monitoring job definition.<br/>JobDefinitionArn:  The Amazon Resource Name (ARN) of the data quality monitoring job definition.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatisticsResource</i> The statistics resource for a monitoring job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StatisticsResource</b>: The statistics resource for a monitoring job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConstraintsResource</i> The constraints resource for a monitoring job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ConstraintsResource</b>: The constraints resource for a monitoring job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BaseliningJobName</i> The name of the job that performs baselining for the data quality monitoring job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Uri</i> The Amazon S3 URI for the constraints resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Uri</i> The Amazon S3 URI for the statistics resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Environment</i> Sets the environment variables in the container that the monitoring job runs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PostAnalyticsProcessorSourceUri</i> An Amazon S3 URI to a script that is called after analysis has been performed. Applicable only for the built-in (first party) containers.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecordPreprocessorSourceUri</i> An Amazon S3 URI to a script that is called per row prior to running analysis. It can base64 decode the payload and convert it into a flatted json so that the built-in container can use the converted data. Applicable only for the built-in (first party) containers.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ContainerArguments</i> The arguments to send to the container that the monitoring job runs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ContainerEntrypoint</i> The entrypoint for a container used to run a monitoring job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImageUri</i> The container image that the data quality monitoring job runs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointInput</i> Input object for the endpoint&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EndpointInput</b>: Input object for the endpoint<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EndTimeOffset</i> If specified, monitoring jobs substract this time from the end time. For information about using offsets for scheduling monitoring jobs, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/model-monitor-model-quality-schedule.html">Schedule Model Quality Monitoring Jobs</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StartTimeOffset</i> If specified, monitoring jobs substract this time from the start time. For information about using offsets for scheduling monitoring jobs, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/model-monitor-model-quality-schedule.html">Schedule Model Quality Monitoring Jobs</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ProbabilityThresholdAttribute</i> The threshold for the class probability to be evaluated as a positive result.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ProbabilityAttribute</i> In a classification problem, the attribute that represents the class probability.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InferenceAttribute</i> The attribute of the input data that represents the ground truth label.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FeaturesAttribute</i> The attributes of the input data that are the input features.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3DataDistributionType</i> Whether input data distributed in Amazon S3 is fully replicated or sharded by an S3 key. Defaults to <code>FullyReplicated</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3InputMode</i> Whether the <code>Pipe</code> or <code>File</code> is used as the input mode for transfering data for the monitoring job. <code>Pipe</code> mode is recommended for large datasets. <code>File</code> mode is useful for small files that fit in memory. Defaults to <code>File</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LocalPath</i> Path to the filesystem where the endpoint data is available to the container.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointName</i> An endpoint in customer's account which has enabled <code>DataCaptureConfig</code> enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The Amazon Web Services Key Management Service (Amazon Web Services KMS) key that Amazon SageMaker uses to encrypt the model artifacts at rest using Amazon S3 server-side encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MonitoringOutputs</i> Monitoring outputs for monitoring jobs. This is where the output of the periodic monitoring jobs is uploaded.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterConfig</i> The configuration for the cluster resources used to run the processing job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ClusterConfig</b>: The configuration for the cluster resources used to run the processing job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VolumeKmsKeyId</i> The Amazon Web Services Key Management Service (Amazon Web Services KMS) key that Amazon SageMaker uses to encrypt data on the storage volume attached to the ML compute instance(s) that run the model monitoring job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VolumeSizeInGB</i> The size of the ML storage volume, in gigabytes, that you want to provision. You must specify sufficient ML storage for your scenario.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceType</i> The ML compute instance type for the processing job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceCount</i> The number of ML compute instances to use in the model monitoring job. For distributed processing jobs, specify a value greater than 1. The default value is 1.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcConfig</i> Specifies a VPC that your training jobs and hosted models have access to. Control access to and from your training and model containers by configuring the VPC. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/host-vpc.html">Protect Endpoints by Using an Amazon Virtual Private Cloud</a> and <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/train-vpc.html">Protect Training Jobs by Using an Amazon Virtual Private Cloud</a>. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>VpcConfig</b>: Specifies a VPC that your training jobs and hosted models have access to. Control access to and from your training and model containers by configuring the VPC. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/host-vpc.html">Protect Endpoints by Using an Amazon Virtual Private Cloud</a> and <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/train-vpc.html">Protect Training Jobs by Using an Amazon Virtual Private Cloud</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableNetworkIsolation</i> Whether to allow inbound and outbound network calls to and from the containers used for the monitoring job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableInterContainerTrafficEncryption</i> Whether to encrypt all communications between the instances used for the monitoring jobs. Choose <code>True</code> to encrypt communications. Encryption provides greater security for distributed jobs, but the processing might take longer.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Subnets</i> The ID of the subnets in the VPC to which you want to connect your training job or model. For information about the availability of specific instance types, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/instance-types-az.html">Supported Instance Types and Availability Zones</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> The VPC security group IDs, in the form sg-xxxxxxxx. Specify the security groups for the VPC that is specified in the <code>Subnets</code> field.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxRuntimeInSeconds</i> The maximum runtime allowed in seconds. <note> The <code>MaxRuntimeInSeconds</code> cannot exceed the frequency of the job. For data quality and model explainability, this can be up to 3600 seconds for an hourly schedule. For model bias and model quality hourly schedules, this can be up to 1800 seconds. </note><br/>        """
        pass

    def describe_device(self, DeviceFleetName: str, DeviceName: str, NextToken: str=None) -> DescribeDeviceResponse:
        r"""Describes the device.

        :param self:
        :param DeviceFleetName:  The name of the fleet the devices belong to.<br/>DeviceName:  The unique ID of the device.<br/>NextToken:  Next token of device description.<br/>
        :return: NextToken:  The response from the last list when returning a list large enough to need tokening.<br/>MaxModels:  The maximum number of models.<br/>Models:  Models on the device.<br/>LatestHeartbeat:  The last heartbeat received from the device.<br/>RegistrationTime:  The timestamp of the last registration or de-reregistration.<br/>IotThingName:  The Amazon Web Services Internet of Things (IoT) object thing name associated with the device.<br/>DeviceFleetName:  The name of the fleet the device belongs to.<br/>Description:  A description of the device.<br/>DeviceName:  The unique identifier of the device.<br/>DeviceArn:  The Amazon Resource Name (ARN) of the device.<br/>        """
        pass

    def describe_device_fleet(self, DeviceFleetName: str) -> DescribeDeviceFleetResponse:
        r"""A description of the fleet the device belongs to.

        :param self:
        :param DeviceFleetName:  The name of the fleet.<br/>
        :return: IotRoleAlias:  The Amazon Resource Name (ARN) alias created in Amazon Web Services Internet of Things (IoT).<br/>RoleArn:  The Amazon Resource Name (ARN) that has access to Amazon Web Services Internet of Things (IoT).<br/>LastModifiedTime:  Timestamp of when the device fleet was last updated.<br/>CreationTime:  Timestamp of when the device fleet was created.<br/>Description:  A description of the fleet.<br/>OutputConfig:  The output configuration for storing sampled data.:<br/>DeviceFleetArn:  The The Amazon Resource Name (ARN) of the fleet.<br/>DeviceFleetName:  The name of the fleet.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PresetDeploymentConfig</i> The configuration used to create deployment artifacts. Specify configuration options with a JSON string. The available configuration options for each type are: <ul> <li>  <code>ComponentName</code> (optional) - Name of the GreenGrass V2 component. If not specified, the default name generated consists of "SagemakerEdgeManager" and the name of your SageMaker Edge Manager packaging job. </li> <li>  <code>ComponentDescription</code> (optional) - Description of the component. </li> <li>  <code>ComponentVersion</code> (optional) - The version of the component. <note> Amazon Web Services IoT Greengrass uses semantic versions for components. Semantic versions follow a<i> major.minor.patch</i> number system. For example, version 1.0.0 represents the first major release for a component. For more information, see the <a href="https://semver.org/">semantic version specification</a>. </note> </li> <li>  <code>PlatformOS</code> (optional) - The name of the operating system for the platform. Supported platforms include Windows and Linux. </li> <li>  <code>PlatformArchitecture</code> (optional) - The processor architecture for the platform.  Supported architectures Windows include: Windows32_x86, Windows64_x64. Supported architectures for Linux include: Linux x86_64, Linux ARMV8. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PresetDeploymentType</i> The deployment type SageMaker Edge Manager will create. Currently only supports Amazon Web Services IoT Greengrass Version 2 components.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The Amazon Web Services Key Management Service (Amazon Web Services KMS) key that Amazon SageMaker uses to encrypt data on the storage volume after compilation job. If you don't provide a KMS key ID, Amazon SageMaker uses the default KMS key for Amazon S3 for your role's account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3OutputLocation</i> The Amazon Simple Storage (S3) bucker URI.<br/>        """
        pass

    def describe_domain(self, DomainId: str) -> DescribeDomainResponse:
        r"""The description of the domain.

        :param self:
        :param DomainId:  The domain ID.<br/>
        :return: KmsKeyId:  The Amazon Web Services KMS customer managed CMK used to encrypt the EFS volume attached to the domain.<br/>VpcId:  The ID of the Amazon Virtual Private Cloud (VPC) that Studio uses for communication.<br/>Url:  The domain's URL.<br/>SubnetIds:  The VPC subnets that Studio uses for communication.<br/>HomeEfsFileSystemKmsKeyId:  This member is deprecated and replaced with <code>KmsKeyId</code>.<br/>AppNetworkAccessType:  Specifies the VPC used for non-EFS traffic. The default value is <code>PublicInternetOnly</code>. <ul> <li>  <code>PublicInternetOnly</code> - Non-EFS traffic is through a VPC managed by Amazon SageMaker, which allows direct internet access </li> <li>  <code>VpcOnly</code> - All Studio traffic is through the specified VPC and subnets </li> </ul><br/>DefaultUserSettings:  Settings which are applied to UserProfiles in this domain if settings are not explicitly specified in a given UserProfile. :<br/>AuthMode:  The domain's authentication mode.<br/>FailureReason:  The failure reason.<br/>LastModifiedTime:  The last modified time.<br/>CreationTime:  The creation time.<br/>Status:  The status.<br/>SingleSignOnManagedApplicationInstanceId:  The SSO managed application instance ID.<br/>HomeEfsFileSystemId:  The ID of the Amazon Elastic File System (EFS) managed by this Domain.<br/>DomainName:  The domain name.<br/>DomainId:  The domain ID.<br/>DomainArn:  The domain's Amazon Resource Name (ARN).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TensorBoardAppSettings</i> The TensorBoard app settings.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TensorBoardAppSettings</b>: The TensorBoard app settings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KernelGatewayAppSettings</i> The kernel gateway app settings.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>KernelGatewayAppSettings</b>: The kernel gateway app settings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JupyterServerAppSettings</i> The Jupyter server's app settings.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>JupyterServerAppSettings</b>: The Jupyter server's app settings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SharingSettings</i> Specifies options for sharing SageMaker Studio notebooks.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SharingSettings</b>: Specifies options for sharing SageMaker Studio notebooks.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroups</i> The security groups for the Amazon Virtual Private Cloud (VPC) that Studio uses for communication. Optional when the <code>CreateDomain.AppNetworkAccessType</code> parameter is set to <code>PublicInternetOnly</code>. Required when the <code>CreateDomain.AppNetworkAccessType</code> parameter is set to <code>VpcOnly</code>. Amazon SageMaker adds a security group to allow NFS traffic from SageMaker Studio. Therefore, the number of security groups that you can specify is one less than the maximum number shown.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExecutionRole</i> The execution role for the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3KmsKeyId</i> When <code>NotebookOutputOption</code> is <code>Allowed</code>, the Amazon Web Services Key Management Service (KMS) encryption key ID used to encrypt the notebook cell output in the Amazon S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3OutputPath</i> When <code>NotebookOutputOption</code> is <code>Allowed</code>, the Amazon S3 bucket used to store the shared notebook snapshots.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NotebookOutputOption</i> Whether to include the notebook cell output when sharing the notebook. The default is <code>Disabled</code>.<br/>The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the JupyterServer app.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DefaultResourceSpec</b>: The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the JupyterServer app.The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the KernelGateway app.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DefaultResourceSpec</b>: The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the KernelGateway app.The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DefaultResourceSpec</b>: The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance.        """
        pass

    def describe_edge_packaging_job(self, EdgePackagingJobName: str) -> DescribeEdgePackagingJobResponse:
        r"""A description of edge packaging jobs.

        :param self:
        :param EdgePackagingJobName:  The name of the edge packaging job.<br/>
        :return: PresetDeploymentOutput:  The output of a SageMaker Edge Manager deployable resource.:<br/>ModelSignature:  The signature document of files in the model artifact.<br/>ModelArtifact:  The Amazon Simple Storage (S3) URI where model artifacts ares stored.<br/>LastModifiedTime:  The timestamp of when the job was last updated.<br/>CreationTime:  The timestamp of when the packaging job was created.<br/>EdgePackagingJobStatusMessage:  Returns a message describing the job status and error messages.<br/>EdgePackagingJobStatus:  The current status of the packaging job.<br/>ResourceKey:  The CMK to use when encrypting the EBS volume the job run on.<br/>OutputConfig:  The output configuration for the edge packaging job.:<br/>RoleArn:  The Amazon Resource Name (ARN) of an IAM role that enables Amazon SageMaker to download and upload the model, and to contact Neo.<br/>ModelVersion:  The version of the model.<br/>ModelName:  The name of the model.<br/>CompilationJobName:  The name of the SageMaker Neo compilation job that is used to locate model artifacts that are being packaged.<br/>EdgePackagingJobName:  The name of the edge packaging job.<br/>EdgePackagingJobArn:  The Amazon Resource Name (ARN) of the edge packaging job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PresetDeploymentConfig</i> The configuration used to create deployment artifacts. Specify configuration options with a JSON string. The available configuration options for each type are: <ul> <li>  <code>ComponentName</code> (optional) - Name of the GreenGrass V2 component. If not specified, the default name generated consists of "SagemakerEdgeManager" and the name of your SageMaker Edge Manager packaging job. </li> <li>  <code>ComponentDescription</code> (optional) - Description of the component. </li> <li>  <code>ComponentVersion</code> (optional) - The version of the component. <note> Amazon Web Services IoT Greengrass uses semantic versions for components. Semantic versions follow a<i> major.minor.patch</i> number system. For example, version 1.0.0 represents the first major release for a component. For more information, see the <a href="https://semver.org/">semantic version specification</a>. </note> </li> <li>  <code>PlatformOS</code> (optional) - The name of the operating system for the platform. Supported platforms include Windows and Linux. </li> <li>  <code>PlatformArchitecture</code> (optional) - The processor architecture for the platform.  Supported architectures Windows include: Windows32_x86, Windows64_x64. Supported architectures for Linux include: Linux x86_64, Linux ARMV8. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PresetDeploymentType</i> The deployment type SageMaker Edge Manager will create. Currently only supports Amazon Web Services IoT Greengrass Version 2 components.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The Amazon Web Services Key Management Service (Amazon Web Services KMS) key that Amazon SageMaker uses to encrypt data on the storage volume after compilation job. If you don't provide a KMS key ID, Amazon SageMaker uses the default KMS key for Amazon S3 for your role's account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3OutputLocation</i> The Amazon Simple Storage (S3) bucker URI.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusMessage</i> Returns a message describing the status of the deployed resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the deployable resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Artifact</i> The Amazon Resource Name (ARN) of the generated deployable resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The deployment type created by SageMaker Edge Manager. Currently only supports Amazon Web Services IoT Greengrass Version 2 components.<br/>        """
        pass

    def describe_endpoint(self, EndpointName: str) -> DescribeEndpointOutput:
        r"""Returns the description of an endpoint.

        :param self:
        :param EndpointName:  The name of the endpoint.<br/>
        :return: LastDeploymentConfig:  The most recent deployment configuration for the endpoint.:<br/>LastModifiedTime:  A timestamp that shows when the endpoint was last modified.<br/>CreationTime:  A timestamp that shows when the endpoint was created.<br/>FailureReason:  If the status of the endpoint is <code>Failed</code>, the reason why it failed. <br/>EndpointStatus:  The status of the endpoint. <ul> <li>  <code>OutOfService</code>: Endpoint is not available to take incoming requests. </li> <li>  <code>Creating</code>: <a>CreateEndpoint</a> is executing. </li> <li>  <code>Updating</code>: <a>UpdateEndpoint</a> or <a>UpdateEndpointWeightsAndCapacities</a> is executing. </li> <li>  <code>SystemUpdating</code>: Endpoint is undergoing maintenance and cannot be updated or deleted or re-scaled until it has completed. This maintenance operation does not change any customer-specified values such as VPC config, KMS encryption, model, instance type, or instance count. </li> <li>  <code>RollingBack</code>: Endpoint fails to scale up or down or change its variant weight and is in the process of rolling back to its previous configuration. Once the rollback completes, endpoint returns to an <code>InService</code> status. This transitional status only applies to an endpoint that has autoscaling enabled and is undergoing variant weight or capacity changes as part of an <a>UpdateEndpointWeightsAndCapacities</a> call or when the <a>UpdateEndpointWeightsAndCapacities</a> operation is called explicitly. </li> <li>  <code>InService</code>: Endpoint is available to process incoming requests. </li> <li>  <code>Deleting</code>: <a>DeleteEndpoint</a> is executing. </li> <li>  <code>Failed</code>: Endpoint could not be created, updated, or re-scaled. Use <a>DescribeEndpointOutput$FailureReason</a> for information about the failure. <a>DeleteEndpoint</a> is the only operation that can be performed on a failed endpoint. </li> </ul><br/>DataCaptureConfig:  <p/>:<br/>ProductionVariants:   An array of <a>ProductionVariantSummary</a> objects, one for each model hosted behind this endpoint. <br/>EndpointConfigName:  The name of the endpoint configuration associated with this endpoint.<br/>EndpointArn:  The Amazon Resource Name (ARN) of the endpoint.<br/>EndpointName:  Name of the endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> <p/><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DestinationS3Uri</i> <p/><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CurrentSamplingPercentage</i> <p/><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CaptureStatus</i> <p/><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableCapture</i> <p/><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoRollbackConfiguration</i> <p/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AutoRollbackConfiguration</b>: <p/><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BlueGreenUpdatePolicy</i> <p/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>BlueGreenUpdatePolicy</b>: <p/><br/><p/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TrafficRoutingConfiguration</b>: <p/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Alarms</i> <p/><br/>        """
        pass

    def describe_endpoint_config(self, EndpointConfigName: str) -> DescribeEndpointConfigOutput:
        r"""Returns the description of an endpoint configuration created using the <code>CreateEndpointConfig</code> API.

        :param self:
        :param EndpointConfigName:  The name of the endpoint configuration.<br/>
        :return: CreationTime:  A timestamp that shows when the endpoint configuration was created.<br/>KmsKeyId:  Amazon Web Services KMS key ID Amazon SageMaker uses to encrypt data when storing it on the ML storage volume attached to the instance.<br/>DataCaptureConfig:  <p/>:<br/>ProductionVariants:  An array of <code>ProductionVariant</code> objects, one for each model that you want to host at this endpoint.<br/>EndpointConfigArn:  The Amazon Resource Name (ARN) of the endpoint configuration.<br/>EndpointConfigName:  Name of the Amazon SageMaker endpoint configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CaptureContentTypeHeader</i> <p/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CaptureContentTypeHeader</b>: <p/><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CaptureOptions</i> <p/><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> <p/><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DestinationS3Uri</i> <p/><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InitialSamplingPercentage</i> <p/><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableCapture</i> <p/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>JsonContentTypes</i> <p/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CsvContentTypes</i> <p/><br/>        """
        pass

    def describe_experiment(self, ExperimentName: str) -> DescribeExperimentResponse:
        r"""Provides a list of an experiment's properties.

        :param self:
        :param ExperimentName:  The name of the experiment to describe.<br/>
        :return: LastModifiedBy:  Who last modified the experiment.:<br/>LastModifiedTime:  When the experiment was last modified.<br/>CreatedBy:  Who created the experiment.:<br/>CreationTime:  When the experiment was created.<br/>Description:  The description of the experiment.<br/>Source:  The ARN of the source and, optionally, the type.:<br/>DisplayName:  The name of the experiment as displayed. If <code>DisplayName</code> isn't specified, <code>ExperimentName</code> is displayed.<br/>ExperimentArn:  The Amazon Resource Name (ARN) of the experiment.<br/>ExperimentName:  The name of the experiment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceType</i> The source type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceArn</i> The Amazon Resource Name (ARN) of the source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainId</i> The domain associated with the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserProfileName</i> The name of the user's profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserProfileArn</i> The Amazon Resource Name (ARN) of the user's profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainId</i> The domain associated with the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserProfileName</i> The name of the user's profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserProfileArn</i> The Amazon Resource Name (ARN) of the user's profile.<br/>        """
        pass

    def describe_feature_group(self, FeatureGroupName: str, NextToken: str=None) -> DescribeFeatureGroupResponse:
        r"""Use this operation to describe a <code>FeatureGroup</code>. The response includes information on the creation time, <code>FeatureGroup</code> name, the unique identifier for each <code>FeatureGroup</code>, and more.

        :param self:
        :param NextToken:  A token to resume pagination of the list of <code>Features</code> (<code>FeatureDefinitions</code>). 2,500 <code>Features</code> are returned by default.<br/>FeatureGroupName:  The name of the <code>FeatureGroup</code> you want described. <br/>
        :return: NextToken:  A token to resume pagination of the list of <code>Features</code> (<code>FeatureDefinitions</code>).<br/>Description:  A free form description of the feature group.<br/>FailureReason:  The reason that the <code>FeatureGroup</code> failed to be replicated in the <code>OfflineStore</code>. This is failure can occur because: <ul> <li> The <code>FeatureGroup</code> could not be created in the <code>OfflineStore</code>. </li> <li> The <code>FeatureGroup</code> could not be deleted from the <code>OfflineStore</code>. </li> </ul><br/>OfflineStoreStatus:  The status of the <code>OfflineStore</code>. Notifies you if replicating data into the <code>OfflineStore</code> has failed. Returns either: <code>Active</code> or <code>Blocked</code> :<br/>FeatureGroupStatus:  The status of the feature group.<br/>RoleArn:  The Amazon Resource Name (ARN) of the IAM execution role used to persist data into the <code>OfflineStore</code> if an <code>OfflineStoreConfig</code> is provided.<br/>OfflineStoreConfig:  The configuration of the <code>OfflineStore</code>, inducing the S3 location of the <code>OfflineStore</code>, Amazon Web Services Glue or Amazon Web Services Hive data catalogue configurations, and the security configuration.:<br/>OnlineStoreConfig:  The configuration for the <code>OnlineStore</code>.:<br/>CreationTime:  A timestamp indicating when SageMaker created the <code>FeatureGroup</code>.<br/>FeatureDefinitions:  A list of the <code>Features</code> in the <code>FeatureGroup</code>. Each feature is defined by a <code>FeatureName</code> and <code>FeatureType</code>.<br/>EventTimeFeatureName:  The name of the feature that stores the <code>EventTime</code> of a Record in a <code>FeatureGroup</code>.  An <code>EventTime</code> is a point in time when a new event occurs that corresponds to the creation or update of a <code>Record</code> in a <code>FeatureGroup</code>. All <code>Records</code> in the <code>FeatureGroup</code> have a corresponding <code>EventTime</code>.<br/>RecordIdentifierFeatureName:  The name of the <code>Feature</code> used for <code>RecordIdentifier</code>, whose value uniquely identifies a record stored in the feature store.<br/>FeatureGroupName:  he name of the <code>FeatureGroup</code>.<br/>FeatureGroupArn:  The Amazon Resource Name (ARN) of the <code>FeatureGroup</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableOnlineStore</i> Turn <code>OnlineStore</code> off by specifying <code>False</code> for the <code>EnableOnlineStore</code> flag. Turn <code>OnlineStore</code> on by specifying <code>True</code> for the <code>EnableOnlineStore</code> flag.  The default value is <code>False</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityConfig</i> Use to specify KMS Key ID (<code>KMSKeyId</code>) for at-rest encryption of your <code>OnlineStore</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SecurityConfig</b>: Use to specify KMS Key ID (<code>KMSKeyId</code>) for at-rest encryption of your <code>OnlineStore</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The ID of the Amazon Web Services Key Management Service (Amazon Web Services KMS) key that SageMaker Feature Store uses to encrypt the Amazon S3 objects at rest using Amazon S3 server-side encryption. The caller (either IAM user or IAM role) of <code>CreateFeatureGroup</code> must have below permissions to the <code>OnlineStore</code> <code>KmsKeyId</code>: <ul> <li>  <code>"kms:Encrypt"</code>  </li> <li>  <code>"kms:Decrypt"</code>  </li> <li>  <code>"kms:DescribeKey"</code>  </li> <li>  <code>"kms:CreateGrant"</code>  </li> <li>  <code>"kms:RetireGrant"</code>  </li> <li>  <code>"kms:ReEncryptFrom"</code>  </li> <li>  <code>"kms:ReEncryptTo"</code>  </li> <li>  <code>"kms:GenerateDataKey"</code>  </li> <li>  <code>"kms:ListAliases"</code>  </li> <li>  <code>"kms:ListGrants"</code>  </li> <li>  <code>"kms:RevokeGrant"</code>  </li> </ul> The caller (either IAM user or IAM role) to all DataPlane operations (<code>PutRecord</code>, <code>GetRecord</code>, <code>DeleteRecord</code>) must have the following permissions to the <code>KmsKeyId</code>: <ul> <li>  <code>"kms:Decrypt"</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataCatalogConfig</i> The meta data of the Glue table that is autogenerated when an <code>OfflineStore</code> is created. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DataCatalogConfig</b>: The meta data of the Glue table that is autogenerated when an <code>OfflineStore</code> is created. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DisableGlueTableCreation</i> Set to <code>True</code> to disable the automatic creation of an Amazon Web Services Glue table when configuring an <code>OfflineStore</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3StorageConfig</i> The Amazon Simple Storage (Amazon S3) location of <code>OfflineStore</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3StorageConfig</b>: The Amazon Simple Storage (Amazon S3) location of <code>OfflineStore</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ResolvedOutputS3Uri</i> The S3 path where offline records are written.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The Amazon Web Services Key Management Service (KMS) key ID of the key used to encrypt any objects written into the <code>OfflineStore</code> S3 location. The IAM <code>roleARN</code> that is passed as a parameter to <code>CreateFeatureGroup</code> must have below permissions to the <code>KmsKeyId</code>: <ul> <li>  <code>"kms:GenerateDataKey"</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Uri</i> The S3 URI, or location in Amazon S3, of <code>OfflineStore</code>. S3 URIs have a format similar to the following: <code>s3://example-bucket/prefix/</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Database</i> The name of the Glue table database.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Catalog</i> The name of the Glue table catalog.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TableName</i> The name of the Glue table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BlockedReason</i> The justification for why the OfflineStoreStatus is Blocked (if applicable).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> An <code>OfflineStore</code> status.<br/>        """
        pass

    def describe_flow_definition(self, FlowDefinitionName: str) -> DescribeFlowDefinitionResponse:
        r"""Returns information about the specified flow definition.

        :param self:
        :param FlowDefinitionName:  The name of the flow definition.<br/>
        :return: FailureReason:  The reason your flow definition failed.<br/>RoleArn:  The Amazon Resource Name (ARN) of the Amazon Web Services Identity and Access Management (IAM) execution role for the flow definition.<br/>OutputConfig:  An object containing information about the output file.:<br/>HumanLoopConfig:  An object containing information about who works on the task, the workforce task price, and other task details.:<br/>HumanLoopActivationConfig:  An object containing information about what triggers a human review workflow.:<br/>HumanLoopRequestSource:  Container for configuring the source of human task requests. Used to specify if Amazon Rekognition or Amazon Textract is used as an integration source.:<br/>CreationTime:  The timestamp when the flow definition was created.<br/>FlowDefinitionStatus:  The status of the flow definition. Valid values are listed below.<br/>FlowDefinitionName:  The Amazon Resource Name (ARN) of the flow definition.<br/>FlowDefinitionArn:  The Amazon Resource Name (ARN) of the flow defintion.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AwsManagedHumanLoopRequestSource</i> Specifies whether Amazon Rekognition or Amazon Textract are used as the integration source. The default field settings and JSON parsing rules are different based on the integration source. Valid values:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HumanLoopActivationConditionsConfig</i> Container structure for defining under what conditions SageMaker creates a human loop.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>HumanLoopActivationConditionsConfig</b>: Container structure for defining under what conditions SageMaker creates a human loop.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HumanLoopActivationConditions</i> JSON expressing use-case specific conditions declaratively. If any condition is matched, atomic tasks are created against the configured work team. The set of conditions is different for Rekognition and Textract. For more information about how to structure the JSON, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/a2i-human-fallback-conditions-json-schema.html">JSON Schema for Human Loop Activation Conditions in Amazon Augmented AI</a> in the <i>Amazon SageMaker Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PublicWorkforceTaskPrice</i> Defines the amount of money paid to an Amazon Mechanical Turk worker for each task performed.  Use one of the following prices for bounding box tasks. Prices are in US dollars and should be based on the complexity of the task; the longer it takes in your initial testing, the more you should offer. <ul> <li> 0.036 </li> <li> 0.048 </li> <li> 0.060 </li> <li> 0.072 </li> <li> 0.120 </li> <li> 0.240 </li> <li> 0.360 </li> <li> 0.480 </li> <li> 0.600 </li> <li> 0.720 </li> <li> 0.840 </li> <li> 0.960 </li> <li> 1.080 </li> <li> 1.200 </li> </ul> Use one of the following prices for image classification, text classification, and custom tasks. Prices are in US dollars. <ul> <li> 0.012 </li> <li> 0.024 </li> <li> 0.036 </li> <li> 0.048 </li> <li> 0.060 </li> <li> 0.072 </li> <li> 0.120 </li> <li> 0.240 </li> <li> 0.360 </li> <li> 0.480 </li> <li> 0.600 </li> <li> 0.720 </li> <li> 0.840 </li> <li> 0.960 </li> <li> 1.080 </li> <li> 1.200 </li> </ul> Use one of the following prices for semantic segmentation tasks. Prices are in US dollars. <ul> <li> 0.840 </li> <li> 0.960 </li> <li> 1.080 </li> <li> 1.200 </li> </ul> Use one of the following prices for Textract AnalyzeDocument Important Form Key Amazon Augmented AI review tasks. Prices are in US dollars. <ul> <li> 2.400  </li> <li> 2.280  </li> <li> 2.160  </li> <li> 2.040  </li> <li> 1.920  </li> <li> 1.800  </li> <li> 1.680  </li> <li> 1.560  </li> <li> 1.440  </li> <li> 1.320  </li> <li> 1.200  </li> <li> 1.080  </li> <li> 0.960  </li> <li> 0.840  </li> <li> 0.720  </li> <li> 0.600  </li> <li> 0.480  </li> <li> 0.360  </li> <li> 0.240  </li> <li> 0.120  </li> <li> 0.072  </li> <li> 0.060  </li> <li> 0.048  </li> <li> 0.036  </li> <li> 0.024  </li> <li> 0.012  </li> </ul> Use one of the following prices for Rekognition DetectModerationLabels Amazon Augmented AI review tasks. Prices are in US dollars. <ul> <li> 1.200  </li> <li> 1.080  </li> <li> 0.960  </li> <li> 0.840  </li> <li> 0.720  </li> <li> 0.600  </li> <li> 0.480  </li> <li> 0.360  </li> <li> 0.240  </li> <li> 0.120  </li> <li> 0.072  </li> <li> 0.060  </li> <li> 0.048  </li> <li> 0.036  </li> <li> 0.024  </li> <li> 0.012  </li> </ul> Use one of the following prices for Amazon Augmented AI custom human review tasks. Prices are in US dollars. <ul> <li> 1.200  </li> <li> 1.080  </li> <li> 0.960  </li> <li> 0.840  </li> <li> 0.720  </li> <li> 0.600  </li> <li> 0.480  </li> <li> 0.360  </li> <li> 0.240  </li> <li> 0.120  </li> <li> 0.072  </li> <li> 0.060  </li> <li> 0.048  </li> <li> 0.036  </li> <li> 0.024  </li> <li> 0.012  </li> </ul>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PublicWorkforceTaskPrice</b>: Defines the amount of money paid to an Amazon Mechanical Turk worker for each task performed.  Use one of the following prices for bounding box tasks. Prices are in US dollars and should be based on the complexity of the task; the longer it takes in your initial testing, the more you should offer. <ul> <li> 0.036 </li> <li> 0.048 </li> <li> 0.060 </li> <li> 0.072 </li> <li> 0.120 </li> <li> 0.240 </li> <li> 0.360 </li> <li> 0.480 </li> <li> 0.600 </li> <li> 0.720 </li> <li> 0.840 </li> <li> 0.960 </li> <li> 1.080 </li> <li> 1.200 </li> </ul> Use one of the following prices for image classification, text classification, and custom tasks. Prices are in US dollars. <ul> <li> 0.012 </li> <li> 0.024 </li> <li> 0.036 </li> <li> 0.048 </li> <li> 0.060 </li> <li> 0.072 </li> <li> 0.120 </li> <li> 0.240 </li> <li> 0.360 </li> <li> 0.480 </li> <li> 0.600 </li> <li> 0.720 </li> <li> 0.840 </li> <li> 0.960 </li> <li> 1.080 </li> <li> 1.200 </li> </ul> Use one of the following prices for semantic segmentation tasks. Prices are in US dollars. <ul> <li> 0.840 </li> <li> 0.960 </li> <li> 1.080 </li> <li> 1.200 </li> </ul> Use one of the following prices for Textract AnalyzeDocument Important Form Key Amazon Augmented AI review tasks. Prices are in US dollars. <ul> <li> 2.400  </li> <li> 2.280  </li> <li> 2.160  </li> <li> 2.040  </li> <li> 1.920  </li> <li> 1.800  </li> <li> 1.680  </li> <li> 1.560  </li> <li> 1.440  </li> <li> 1.320  </li> <li> 1.200  </li> <li> 1.080  </li> <li> 0.960  </li> <li> 0.840  </li> <li> 0.720  </li> <li> 0.600  </li> <li> 0.480  </li> <li> 0.360  </li> <li> 0.240  </li> <li> 0.120  </li> <li> 0.072  </li> <li> 0.060  </li> <li> 0.048  </li> <li> 0.036  </li> <li> 0.024  </li> <li> 0.012  </li> </ul> Use one of the following prices for Rekognition DetectModerationLabels Amazon Augmented AI review tasks. Prices are in US dollars. <ul> <li> 1.200  </li> <li> 1.080  </li> <li> 0.960  </li> <li> 0.840  </li> <li> 0.720  </li> <li> 0.600  </li> <li> 0.480  </li> <li> 0.360  </li> <li> 0.240  </li> <li> 0.120  </li> <li> 0.072  </li> <li> 0.060  </li> <li> 0.048  </li> <li> 0.036  </li> <li> 0.024  </li> <li> 0.012  </li> </ul> Use one of the following prices for Amazon Augmented AI custom human review tasks. Prices are in US dollars. <ul> <li> 1.200  </li> <li> 1.080  </li> <li> 0.960  </li> <li> 0.840  </li> <li> 0.720  </li> <li> 0.600  </li> <li> 0.480  </li> <li> 0.360  </li> <li> 0.240  </li> <li> 0.120  </li> <li> 0.072  </li> <li> 0.060  </li> <li> 0.048  </li> <li> 0.036  </li> <li> 0.024  </li> <li> 0.012  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TaskKeywords</i> Keywords used to describe the task so that workers can discover the task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TaskTimeLimitInSeconds</i> The amount of time that a worker has to complete a task. The default value is 3,600 seconds (1 hour).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TaskAvailabilityLifetimeInSeconds</i> The length of time that a task remains available for review by human workers.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TaskCount</i> The number of distinct workers who will perform the same task on each object. For example, if <code>TaskCount</code> is set to <code>3</code> for an image classification labeling job, three workers will classify each input image. Increasing <code>TaskCount</code> can improve label accuracy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TaskDescription</i> A description for the human worker task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TaskTitle</i> A title for the human worker task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HumanTaskUiArn</i> The Amazon Resource Name (ARN) of the human task user interface. You can use standard HTML and Crowd HTML Elements to create a custom worker task template. You use this template to create a human task UI. To learn how to create a custom HTML template, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/a2i-custom-templates.html">Create Custom Worker Task Template</a>. To learn how to create a human task UI, which is a worker task template that can be used in a flow definition, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/a2i-worker-template-console.html">Create and Delete a Worker Task Templates</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WorkteamArn</i> Amazon Resource Name (ARN) of a team of workers. To learn more about the types of workforces and work teams you can create and use with Amazon A2I, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sms-workforce-management.html">Create and Manage Workforces</a>.<br/>Defines the amount of money paid to an Amazon Mechanical Turk worker in United States dollars.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AmountInUsd</b>: Defines the amount of money paid to an Amazon Mechanical Turk worker in United States dollars.&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The Amazon Key Management Service (KMS) key ID for server-side encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3OutputPath</i> The Amazon S3 path where the object containing human output will be made available. To learn more about the format of Amazon A2I output data, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/a2i-output-data.html">Amazon A2I Output Data</a>.<br/>        """
        pass

    def describe_human_task_ui(self, HumanTaskUiName: str) -> DescribeHumanTaskUiResponse:
        r"""Returns information about the requested human task user interface (worker task template).

        :param self:
        :param HumanTaskUiName:  The name of the human task user interface (worker task template) you want information about.<br/>
        :return: UiTemplate:  Container for user interface template information.:<br/>CreationTime:  The timestamp when the human task user interface was created.<br/>HumanTaskUiStatus:  The status of the human task user interface (worker task template). Valid values are listed below.<br/>HumanTaskUiName:  The name of the human task user interface (worker task template).<br/>HumanTaskUiArn:  The Amazon Resource Name (ARN) of the human task user interface (worker task template).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ContentSha256</i> The SHA-256 digest of the contents of the template.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Url</i> The URL for the user interface template.<br/>        """
        pass

    def describe_hyper_parameter_tuning_job(self, HyperParameterTuningJobName: str) -> DescribeHyperParameterTuningJobResponse:
        r"""Gets a description of a hyperparameter tuning job.

        :param self:
        :param HyperParameterTuningJobName:  The name of the tuning job.<br/>
        :return: FailureReason:  If the tuning job failed, the reason it failed.<br/>WarmStartConfig:  The configuration for starting the hyperparameter parameter tuning job using one or more previous tuning jobs as a starting point. The results of previous tuning jobs are used to inform which combinations of hyperparameters to search over in the new tuning job.:<br/>OverallBestTrainingJob:  If the hyperparameter tuning job is an warm start tuning job with a <code>WarmStartType</code> of <code>IDENTICAL_DATA_AND_ALGORITHM</code>, this is the <a>TrainingJobSummary</a> for the training job with the best objective metric value of all training jobs launched by this tuning job and all parent jobs specified for the warm start tuning job.:<br/>BestTrainingJob:  A <a>TrainingJobSummary</a> object that describes the training job that completed with the best current <a>HyperParameterTuningJobObjective</a>.:<br/>ObjectiveStatusCounters:  The <a>ObjectiveStatusCounters</a> object that specifies the number of training jobs, categorized by the status of their final objective metric, that this tuning job launched.:<br/>TrainingJobStatusCounters:  The <a>TrainingJobStatusCounters</a> object that specifies the number of training jobs, categorized by status, that this tuning job launched.:<br/>LastModifiedTime:  The date and time that the status of the tuning job was modified. <br/>HyperParameterTuningEndTime:  The date and time that the tuning job ended.<br/>CreationTime:  The date and time that the tuning job started.<br/>HyperParameterTuningJobStatus:  The status of the tuning job: InProgress, Completed, Failed, Stopping, or Stopped.<br/>TrainingJobDefinitions:  A list of the <a>HyperParameterTrainingJobDefinition</a> objects launched for this tuning job.<br/>TrainingJobDefinition:  The <a>HyperParameterTrainingJobDefinition</a> object that specifies the definition of the training jobs that this tuning job launches.:<br/>HyperParameterTuningJobConfig:  The <a>HyperParameterTuningJobConfig</a> object that specifies the configuration of the tuning job.:<br/>HyperParameterTuningJobArn:  The Amazon Resource Name (ARN) of the tuning job.<br/>HyperParameterTuningJobName:  The name of the tuning job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TuningJobCompletionCriteria</i> The tuning job's completion criteria.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TuningJobCompletionCriteria</b>: The tuning job's completion criteria.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TrainingJobEarlyStoppingType</i> Specifies whether to use early stopping for training jobs launched by the hyperparameter tuning job. This can be one of the following values (the default value is <code>OFF</code>): <dl> <dt>OFF</dt> <dd> Training jobs launched by the hyperparameter tuning job do not use early stopping. </dd> <dt>AUTO</dt> <dd> Amazon SageMaker stops training jobs launched by the hyperparameter tuning job when they are unlikely to perform better than previously completed training jobs. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-early-stopping.html">Stop Training Jobs Early</a>. </dd> </dl><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ParameterRanges</i> The <a>ParameterRanges</a> object that specifies the ranges of hyperparameters that this tuning job searches.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ParameterRanges</b>: The <a>ParameterRanges</a> object that specifies the ranges of hyperparameters that this tuning job searches.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceLimits</i> The <a>ResourceLimits</a> object that specifies the maximum number of training jobs and parallel training jobs for this tuning job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ResourceLimits</b>: The <a>ResourceLimits</a> object that specifies the maximum number of training jobs and parallel training jobs for this tuning job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HyperParameterTuningJobObjective</i> The <a>HyperParameterTuningJobObjective</a> object that specifies the objective metric for this tuning job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>HyperParameterTuningJobObjective</b>: The <a>HyperParameterTuningJobObjective</a> object that specifies the objective metric for this tuning job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Strategy</i> Specifies how hyperparameter tuning chooses the combinations of hyperparameter values to use for the training job it launches. To use the Bayesian search strategy, set this to <code>Bayesian</code>. To randomly search, set it to <code>Random</code>. For information about search strategies, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-how-it-works.html">How Hyperparameter Tuning Works</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MetricName</i> The name of the metric to use for the objective metric.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> Whether to minimize or maximize the objective metric.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxParallelTrainingJobs</i> The maximum number of concurrent training jobs that a hyperparameter tuning job can launch.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxNumberOfTrainingJobs</i> The maximum number of training jobs that a hyperparameter tuning job can launch.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CategoricalParameterRanges</i> The array of <a>CategoricalParameterRange</a> objects that specify ranges of categorical hyperparameters that a hyperparameter tuning job searches.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ContinuousParameterRanges</i> The array of <a>ContinuousParameterRange</a> objects that specify ranges of continuous hyperparameters that a hyperparameter tuning job searches.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IntegerParameterRanges</i> The array of <a>IntegerParameterRange</a> objects that specify ranges of integer hyperparameters that a hyperparameter tuning job searches.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetObjectiveMetricValue</i> The value of the objective metric.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RetryStrategy</i> The number of times to retry the job when the job fails due to an <code>InternalServerError</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RetryStrategy</b>: The number of times to retry the job when the job fails due to an <code>InternalServerError</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CheckpointConfig</i> Contains information about the output location for managed spot training checkpoint data. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CheckpointConfig</b>: Contains information about the output location for managed spot training checkpoint data. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableManagedSpotTraining</i> A Boolean indicating whether managed spot training is enabled (<code>True</code>) or not (<code>False</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableInterContainerTrafficEncryption</i> To encrypt all communications between ML compute instances in distributed training, choose <code>True</code>. Encryption provides greater security for distributed training, but training might take longer. How long it takes depends on the amount of communication between compute instances, especially if you use a deep learning algorithm in distributed training.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableNetworkIsolation</i> Isolates the training container. No inbound or outbound network calls can be made, except for calls between peers within a training cluster for distributed training. If network isolation is used for training jobs that are configured to use a VPC, Amazon SageMaker downloads and uploads customer data and model artifacts through the specified VPC, but the training container does not have network access.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StoppingCondition</i> Specifies a limit to how long a model hyperparameter training job can run. It also specifies how long a managed spot training job has to complete. When the job reaches the time limit, Amazon SageMaker ends the training job. Use this API to cap model training costs.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StoppingCondition</b>: Specifies a limit to how long a model hyperparameter training job can run. It also specifies how long a managed spot training job has to complete. When the job reaches the time limit, Amazon SageMaker ends the training job. Use this API to cap model training costs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceConfig</i> The resources, including the compute instances and storage volumes, to use for the training jobs that the tuning job launches. Storage volumes store model artifacts and incremental states. Training algorithms might also use storage volumes for scratch space. If you want Amazon SageMaker to use the storage volume to store the training data, choose <code>File</code> as the <code>TrainingInputMode</code> in the algorithm specification. For distributed training algorithms, specify an instance count greater than 1.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ResourceConfig</b>: The resources, including the compute instances and storage volumes, to use for the training jobs that the tuning job launches. Storage volumes store model artifacts and incremental states. Training algorithms might also use storage volumes for scratch space. If you want Amazon SageMaker to use the storage volume to store the training data, choose <code>File</code> as the <code>TrainingInputMode</code> in the algorithm specification. For distributed training algorithms, specify an instance count greater than 1.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OutputDataConfig</i> Specifies the path to the Amazon S3 bucket where you store model artifacts from the training jobs that the tuning job launches.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>OutputDataConfig</b>: Specifies the path to the Amazon S3 bucket where you store model artifacts from the training jobs that the tuning job launches.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcConfig</i> The <a>VpcConfig</a> object that specifies the VPC that you want the training jobs that this hyperparameter tuning job launches to connect to. Control access to and from your training container by configuring the VPC. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/train-vpc.html">Protect Training Jobs by Using an Amazon Virtual Private Cloud</a>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>VpcConfig</b>: The <a>VpcConfig</a> object that specifies the VPC that you want the training jobs that this hyperparameter tuning job launches to connect to. Control access to and from your training container by configuring the VPC. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/train-vpc.html">Protect Training Jobs by Using an Amazon Virtual Private Cloud</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InputDataConfig</i> An array of <a>Channel</a> objects that specify the input for the training jobs that the tuning job launches.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The Amazon Resource Name (ARN) of the IAM role associated with the training jobs that the tuning job launches.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AlgorithmSpecification</i> The <a>HyperParameterAlgorithmSpecification</a> object that specifies the resource algorithm to use for the training jobs that the tuning job launches.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AlgorithmSpecification</b>: The <a>HyperParameterAlgorithmSpecification</a> object that specifies the resource algorithm to use for the training jobs that the tuning job launches.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StaticHyperParameters</i> Specifies the values of hyperparameters that do not change for the tuning job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HyperParameterRanges</i> Specifies ranges of integer, continuous, and categorical hyperparameters that a hyperparameter tuning job searches. The hyperparameter tuning job launches training jobs with hyperparameter values within these ranges to find the combination of values that result in the training job with the best performance as measured by the objective metric of the hyperparameter tuning job. <note> You can specify a maximum of 20 hyperparameters that a hyperparameter tuning job can search over. Every possible value of a categorical parameter range counts against this limit. </note>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>HyperParameterRanges</b>: Specifies ranges of integer, continuous, and categorical hyperparameters that a hyperparameter tuning job searches. The hyperparameter tuning job launches training jobs with hyperparameter values within these ranges to find the combination of values that result in the training job with the best performance as measured by the objective metric of the hyperparameter tuning job. <note> You can specify a maximum of 20 hyperparameters that a hyperparameter tuning job can search over. Every possible value of a categorical parameter range counts against this limit. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TuningObjective</i> Defines the objective metric for a hyperparameter tuning job. Hyperparameter tuning uses the value of this metric to evaluate the training jobs it launches, and returns the training job that results in either the highest or lowest value for this metric, depending on the value you specify for the <code>Type</code> parameter.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TuningObjective</b>: Defines the objective metric for a hyperparameter tuning job. Hyperparameter tuning uses the value of this metric to evaluate the training jobs it launches, and returns the training job that results in either the highest or lowest value for this metric, depending on the value you specify for the <code>Type</code> parameter.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefinitionName</i> The job definition name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MetricName</i> The name of the metric to use for the objective metric.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> Whether to minimize or maximize the objective metric.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CategoricalParameterRanges</i> The array of <a>CategoricalParameterRange</a> objects that specify ranges of categorical hyperparameters that a hyperparameter tuning job searches.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ContinuousParameterRanges</i> The array of <a>ContinuousParameterRange</a> objects that specify ranges of continuous hyperparameters that a hyperparameter tuning job searches.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IntegerParameterRanges</i> The array of <a>IntegerParameterRange</a> objects that specify ranges of integer hyperparameters that a hyperparameter tuning job searches.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MetricDefinitions</i> An array of <a>MetricDefinition</a> objects that specify the metrics that the algorithm emits.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AlgorithmName</i> The name of the resource algorithm to use for the hyperparameter tuning job. If you specify a value for this parameter, do not specify a value for <code>TrainingImage</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TrainingInputMode</i> The input mode that the algorithm supports: File or Pipe. In File input mode, Amazon SageMaker downloads the training data from Amazon S3 to the storage volume that is attached to the training instance and mounts the directory to the Docker volume for the training container. In Pipe input mode, Amazon SageMaker streams data directly from Amazon S3 to the container.  If you specify File mode, make sure that you provision the storage volume that is attached to the training instance with enough capacity to accommodate the training data downloaded from Amazon S3, the model artifacts, and intermediate information. <p/> For more information about input modes, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/algos.html">Algorithms</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TrainingImage</i>  The registry path of the Docker image that contains the training algorithm. For information about Docker registry paths for built-in algorithms, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-algo-docker-registry-paths.html">Algorithms Provided by Amazon SageMaker: Common Parameters</a>. Amazon SageMaker supports both <code>registry/repository[:tag]</code> and <code>registry/repository[@digest]</code> image path formats. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms.html">Using Your Own Algorithms with Amazon SageMaker</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Subnets</i> The ID of the subnets in the VPC to which you want to connect your training job or model. For information about the availability of specific instance types, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/instance-types-az.html">Supported Instance Types and Availability Zones</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> The VPC security group IDs, in the form sg-xxxxxxxx. Specify the security groups for the VPC that is specified in the <code>Subnets</code> field.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3OutputPath</i> Identifies the S3 path where you want Amazon SageMaker to store the model artifacts. For example, <code>s3://bucket-name/key-name-prefix</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The Amazon Web Services Key Management Service (Amazon Web Services KMS) key that Amazon SageMaker uses to encrypt the model artifacts at rest using Amazon S3 server-side encryption. The <code>KmsKeyId</code> can be any of the following formats:  <ul> <li> // KMS Key ID  <code>"1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> <li> // Amazon Resource Name (ARN) of a KMS Key  <code>"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> <li> // KMS Key Alias  <code>"alias/ExampleAlias"</code>  </li> <li> // Amazon Resource Name (ARN) of a KMS Key Alias  <code>"arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias"</code>  </li> </ul> If you use a KMS key ID or an alias of your master key, the Amazon SageMaker execution role must include permissions to call <code>kms:Encrypt</code>. If you don't provide a KMS key ID, Amazon SageMaker uses the default KMS key for Amazon S3 for your role's account. Amazon SageMaker uses server-side encryption with KMS-managed keys for <code>OutputDataConfig</code>. If you use a bucket policy with an <code>s3:PutObject</code> permission that only allows objects with server-side encryption, set the condition key of <code>s3:x-amz-server-side-encryption</code> to <code>"aws:kms"</code>. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html">KMS-Managed Encryption Keys</a> in the <i>Amazon Simple Storage Service Developer Guide.</i>  The KMS key policy must grant permission to the IAM role that you specify in your <code>CreateTrainingJob</code>, <code>CreateTransformJob</code>, or <code>CreateHyperParameterTuningJob</code> requests. For more information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html">Using Key Policies in Amazon Web Services KMS</a> in the <i>Amazon Web Services Key Management Service Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VolumeKmsKeyId</i> The Amazon Web Services KMS key that Amazon SageMaker uses to encrypt data on the storage volume attached to the ML compute instance(s) that run the training job. <note> Certain Nitro-based instances include local storage, dependent on the instance type. Local storage volumes are encrypted using a hardware module on the instance. You can't request a <code>VolumeKmsKeyId</code> when using an instance type with local storage. For a list of instance types that support local instance storage, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#instance-store-volumes">Instance Store Volumes</a>. For more information about local instance storage encryption, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ssd-instance-store.html">SSD Instance Store Volumes</a>. </note> The <code>VolumeKmsKeyId</code> can be in any of the following formats: <ul> <li> // KMS Key ID  <code>"1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> <li> // Amazon Resource Name (ARN) of a KMS Key  <code>"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VolumeSizeInGB</i> The size of the ML storage volume that you want to provision.  ML storage volumes store model artifacts and incremental states. Training algorithms might also use the ML storage volume for scratch space. If you want to store the training data in the ML storage volume, choose <code>File</code> as the <code>TrainingInputMode</code> in the algorithm specification.  You must specify sufficient ML storage for your scenario.  <note>  Amazon SageMaker supports only the General Purpose SSD (gp2) ML storage volume type.  </note> <note> Certain Nitro-based instances include local storage with a fixed total size, dependent on the instance type. When using these instances for training, Amazon SageMaker mounts the local instance storage instead of Amazon EBS gp2 storage. You can't request a <code>VolumeSizeInGB</code> greater than the total size of the local instance storage. For a list of instance types that support local instance storage, including the total size per instance type, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#instance-store-volumes">Instance Store Volumes</a>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceCount</i> The number of ML compute instances to use. For distributed training, provide a value greater than 1. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceType</i> The ML compute instance type. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxWaitTimeInSeconds</i> The maximum length of time, in seconds, that a managed Spot training job has to complete. It is the amount of time spent waiting for Spot capacity plus the amount of time the job can run. It must be equal to or greater than <code>MaxRuntimeInSeconds</code>. If the job does not complete during this time, Amazon SageMaker ends the job. When <code>RetryStrategy</code> is specified in the job request, <code>MaxWaitTimeInSeconds</code> specifies the maximum time for all of the attempts in total, not each individual attempt.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxRuntimeInSeconds</i> The maximum length of time, in seconds, that a training or compilation job can run. If the job does not complete during this time, Amazon SageMaker ends the job. When <code>RetryStrategy</code> is specified in the job request, <code>MaxRuntimeInSeconds</code> specifies the maximum time for all of the attempts in total, not each individual attempt. The default value is 1 day. The maximum value is 28 days.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LocalPath</i> (Optional) The local directory where checkpoints are written. The default directory is <code>/opt/ml/checkpoints/</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Uri</i> Identifies the S3 path where you want Amazon SageMaker to store checkpoints. For example, <code>s3://bucket-name/key-name-prefix</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaximumRetryAttempts</i> The number of times to retry the job. When the job is retried, it's <code>SecondaryStatus</code> is changed to <code>STARTING</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Stopped</i> The number of training jobs launched by a hyperparameter tuning job that were manually stopped.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NonRetryableError</i> The number of training jobs that failed and can't be retried. A failed training job can't be retried if it failed because a client error occurred.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RetryableError</i> The number of training jobs that failed, but can be retried. A failed training job can be retried only if it failed because an internal service error occurred.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InProgress</i> The number of in-progress training jobs launched by a hyperparameter tuning job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Completed</i> The number of completed training jobs launched by the hyperparameter tuning job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Failed</i> The number of training jobs whose final objective metric was not evaluated and used in the hyperparameter tuning process. This typically occurs when the training job failed or did not emit an objective metric.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Pending</i> The number of training jobs that are in progress and pending evaluation of their final objective metric.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Succeeded</i> The number of training jobs whose final objective metric was evaluated by the hyperparameter tuning job and used in the hyperparameter tuning process.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ObjectiveStatus</i> The status of the objective metric for the training job: <ul> <li> Succeeded: The final objective metric for the training job was evaluated by the hyperparameter tuning job and used in the hyperparameter tuning process. </li> </ul> <ul> <li> Pending: The training job is in progress and evaluation of its final objective metric is pending. </li> </ul> <ul> <li> Failed: The final objective metric for the training job was not evaluated, and was not used in the hyperparameter tuning process. This typically occurs when the training job failed or did not emit an objective metric. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FinalHyperParameterTuningJobObjectiveMetric</i> The <a>FinalHyperParameterTuningJobObjectiveMetric</a> object that specifies the value of the objective metric of the tuning job that launched this training job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>FinalHyperParameterTuningJobObjectiveMetric</b>: The <a>FinalHyperParameterTuningJobObjectiveMetric</a> object that specifies the value of the objective metric of the tuning job that launched this training job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FailureReason</i> The reason that the training job failed. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TunedHyperParameters</i> A list of the hyperparameters for which you specified ranges to search.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TrainingJobStatus</i> The status of the training job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TrainingEndTime</i> Specifies the time when the training job ends on training instances. You are billed for the time interval between the value of <code>TrainingStartTime</code> and this time. For successful jobs and stopped jobs, this is the time after model artifacts are uploaded. For failed jobs, this is the time when Amazon SageMaker detects a job failure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TrainingStartTime</i> The date and time that the training job started.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The date and time that the training job was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TuningJobName</i> The HyperParameter tuning job that launched the training job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TrainingJobArn</i> The Amazon Resource Name (ARN) of the training job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TrainingJobName</i> The name of the training job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TrainingJobDefinitionName</i> The training job definition name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Value</i> The value of the objective metric.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MetricName</i> The name of the objective metric.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> Whether to minimize or maximize the objective metric. Valid values are Minimize and Maximize.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ObjectiveStatus</i> The status of the objective metric for the training job: <ul> <li> Succeeded: The final objective metric for the training job was evaluated by the hyperparameter tuning job and used in the hyperparameter tuning process. </li> </ul> <ul> <li> Pending: The training job is in progress and evaluation of its final objective metric is pending. </li> </ul> <ul> <li> Failed: The final objective metric for the training job was not evaluated, and was not used in the hyperparameter tuning process. This typically occurs when the training job failed or did not emit an objective metric. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FinalHyperParameterTuningJobObjectiveMetric</i> The <a>FinalHyperParameterTuningJobObjectiveMetric</a> object that specifies the value of the objective metric of the tuning job that launched this training job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>FinalHyperParameterTuningJobObjectiveMetric</b>: The <a>FinalHyperParameterTuningJobObjectiveMetric</a> object that specifies the value of the objective metric of the tuning job that launched this training job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FailureReason</i> The reason that the training job failed. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TunedHyperParameters</i> A list of the hyperparameters for which you specified ranges to search.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TrainingJobStatus</i> The status of the training job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TrainingEndTime</i> Specifies the time when the training job ends on training instances. You are billed for the time interval between the value of <code>TrainingStartTime</code> and this time. For successful jobs and stopped jobs, this is the time after model artifacts are uploaded. For failed jobs, this is the time when Amazon SageMaker detects a job failure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TrainingStartTime</i> The date and time that the training job started.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The date and time that the training job was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TuningJobName</i> The HyperParameter tuning job that launched the training job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TrainingJobArn</i> The Amazon Resource Name (ARN) of the training job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TrainingJobName</i> The name of the training job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TrainingJobDefinitionName</i> The training job definition name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Value</i> The value of the objective metric.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MetricName</i> The name of the objective metric.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> Whether to minimize or maximize the objective metric. Valid values are Minimize and Maximize.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WarmStartType</i> Specifies one of the following: <dl> <dt>IDENTICAL_DATA_AND_ALGORITHM</dt> <dd> The new hyperparameter tuning job uses the same input data and training image as the parent tuning jobs. You can change the hyperparameter ranges to search and the maximum number of training jobs that the hyperparameter tuning job launches. You cannot use a new version of the training algorithm, unless the changes in the new version do not affect the algorithm itself. For example, changes that improve logging or adding support for a different data format are allowed. You can also change hyperparameters from tunable to static, and from static to tunable, but the total number of static plus tunable hyperparameters must remain the same as it is in all parent jobs. The objective metric for the new tuning job must be the same as for all parent jobs. </dd> <dt>TRANSFER_LEARNING</dt> <dd> The new hyperparameter tuning job can include input data, hyperparameter ranges, maximum number of concurrent training jobs, and maximum number of training jobs that are different than those of its parent hyperparameter tuning jobs. The training image can also be a different version from the version used in the parent hyperparameter tuning job. You can also change hyperparameters from tunable to static, and from static to tunable, but the total number of static plus tunable hyperparameters must remain the same as it is in all parent jobs. The objective metric for the new tuning job must be the same as for all parent jobs. </dd> </dl><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ParentHyperParameterTuningJobs</i> An array of hyperparameter tuning jobs that are used as the starting point for the new hyperparameter tuning job. For more information about warm starting a hyperparameter tuning job, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-warm-start.html">Using a Previous Hyperparameter Tuning Job as a Starting Point</a>. Hyperparameter tuning jobs created before October 1, 2018 cannot be used as parent jobs for warm start tuning jobs.<br/>        """
        pass

    def describe_image(self, ImageName: str) -> DescribeImageResponse:
        r"""Describes a SageMaker image.

        :param self:
        :param ImageName:  The name of the image to describe.<br/>
        :return: RoleArn:  The Amazon Resource Name (ARN) of the IAM role that enables Amazon SageMaker to perform tasks on your behalf.<br/>LastModifiedTime:  When the image was last modified.<br/>ImageStatus:  The status of the image.<br/>ImageName:  The name of the image.<br/>ImageArn:  The Amazon Resource Name (ARN) of the image.<br/>FailureReason:  When a create, update, or delete operation fails, the reason for the failure.<br/>DisplayName:  The name of the image as displayed.<br/>Description:  The description of the image.<br/>CreationTime:  When the image was created.<br/>        """
        pass

    def describe_image_version(self, ImageName: str, Version: int=None) -> DescribeImageVersionResponse:
        r"""Describes a version of a SageMaker image.

        :param self:
        :param Version:  The version of the image. If not specified, the latest version is described.<br/>ImageName:  The name of the image.<br/>
        :return: Version:  The version number.<br/>LastModifiedTime:  When the version was last modified.<br/>ImageVersionStatus:  The status of the version.<br/>ImageVersionArn:  The ARN of the version.<br/>ImageArn:  The Amazon Resource Name (ARN) of the image the version is based on.<br/>FailureReason:  When a create or delete operation fails, the reason for the failure.<br/>CreationTime:  When the version was created.<br/>ContainerImage:  The registry path of the container image that contains this image version.<br/>BaseImage:  The registry path of the container image on which this image version is based.<br/>        """
        pass

    def describe_labeling_job(self, LabelingJobName: str) -> DescribeLabelingJobResponse:
        r"""Gets information about a labeling job.

        :param self:
        :param LabelingJobName:  The name of the labeling job to return information for.<br/>
        :return: LabelingJobOutput:  The location of the output produced by the labeling job.:<br/>Tags:  An array of key-value pairs. You can use tags to categorize your Amazon Web Services resources in different ways, for example, by purpose, owner, or environment. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html">Tagging Amazon Web Services Resources</a>.<br/>HumanTaskConfig:  Configuration information required for human workers to complete a labeling task.:<br/>LabelingJobAlgorithmsConfig:  Configuration information for automated data labeling.:<br/>StoppingConditions:  A set of conditions for stopping a labeling job. If any of the conditions are met, the job is automatically stopped.:<br/>LabelCategoryConfigS3Uri:  The S3 location of the JSON file that defines the categories used to label data objects. Please note the following label-category limits: <ul> <li> Semantic segmentation labeling jobs using automated labeling: 20 labels </li> <li> Box bounding labeling jobs (all): 10 labels </li> </ul> The file is a JSON structure in the following format:  <code>{</code>   <code> "document-version": "2018-11-28"</code>   <code> "labels": [</code>   <code> {</code>   <code> "label": "<i>label 1</i>"</code>   <code> },</code>   <code> {</code>   <code> "label": "<i>label 2</i>"</code>   <code> },</code>   <code> ...</code>   <code> {</code>   <code> "label": "<i>label n</i>"</code>   <code> }</code>   <code> ]</code>   <code>}</code> <br/>RoleArn:  The Amazon Resource Name (ARN) that Amazon SageMaker assumes to perform tasks on your behalf during data labeling.<br/>OutputConfig:  The location of the job's output data and the Amazon Web Services Key Management Service key ID for the key used to encrypt the output data, if any.:<br/>InputConfig:  Input configuration information for the labeling job, such as the Amazon S3 location of the data objects and the location of the manifest file that describes the data objects.:<br/>LabelAttributeName:  The attribute used as the label in the output manifest file.<br/>LabelingJobArn:  The Amazon Resource Name (ARN) of the labeling job.<br/>LabelingJobName:  The name assigned to the labeling job when it was created.<br/>JobReferenceCode:  A unique identifier for work done as part of a labeling job.<br/>LastModifiedTime:  The date and time that the labeling job was last updated.<br/>CreationTime:  The date and time that the labeling job was created.<br/>FailureReason:  If the job failed, the reason that it failed. <br/>LabelCounters:  Provides a breakdown of the number of data objects labeled by humans, the number of objects labeled by machine, the number of objects than couldn't be labeled, and the total number of objects labeled. :<br/>LabelingJobStatus:  The processing status of the labeling job. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Unlabeled</i> The total number of objects not yet labeled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FailedNonRetryableError</i> The total number of objects that could not be labeled due to an error.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MachineLabeled</i> The total number of objects labeled by automated data labeling.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HumanLabeled</i> The total number of objects labeled by a human worker.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalLabeled</i> The total number of objects labeled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataAttributes</i> Attributes of the data specified by the customer.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DataAttributes</b>: Attributes of the data specified by the customer.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataSource</i> The location of the input data.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DataSource</b>: The location of the input data.<br/>The Amazon S3 location of the input data objects.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3DataSource</b>: The Amazon S3 location of the input data objects.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ContentClassifiers</i> Declares that your content is free of personally identifiable information or adult content. Amazon SageMaker may restrict the Amazon Mechanical Turk workers that can view your task based on this information.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnsTopicArn</i> An Amazon Simple Notification Service (Amazon SNS) output topic ARN. Provide a <code>SnsTopicArn</code> if you want to do real time chaining to another streaming job and receive an Amazon SNS notifications each time a data object is submitted by a worker. If you provide an <code>SnsTopicArn</code> in <code>OutputConfig</code>, when workers complete labeling tasks, Ground Truth will send labeling task output data to the SNS output topic you specify here.  To learn more, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sms-streaming-labeling-job.html#sms-streaming-how-it-works-output-data">Receive Output Data from a Streaming Labeling Job</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The Amazon Web Services Key Management Service ID of the key used to encrypt the output data, if any. If you provide your own KMS key ID, you must add the required permissions to your KMS key described in <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sms-security-permission.html#sms-security-kms-permissions">Encrypt Output Data and Storage Volume with Amazon Web Services KMS</a>. If you don't provide a KMS key ID, Amazon SageMaker uses the default Amazon Web Services KMS key for Amazon S3 for your role's account to encrypt your output data. If you use a bucket policy with an <code>s3:PutObject</code> permission that only allows objects with server-side encryption, set the condition key of <code>s3:x-amz-server-side-encryption</code> to <code>"aws:kms"</code>. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html">KMS-Managed Encryption Keys</a> in the <i>Amazon Simple Storage Service Developer Guide.</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3OutputPath</i> The Amazon S3 location to write output data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxPercentageOfInputDatasetLabeled</i> The maximum number of input data objects that should be labeled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxHumanLabeledObjectCount</i> The maximum number of objects that can be labeled by human workers.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LabelingJobResourceConfig</i> Provides configuration information for a labeling job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>LabelingJobResourceConfig</b>: Provides configuration information for a labeling job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InitialActiveLearningModelArn</i> At the end of an auto-label job Ground Truth sends the Amazon Resource Name (ARN) of the final model used for auto-labeling. You can use this model as the starting point for subsequent similar jobs by providing the ARN of the model here. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LabelingJobAlgorithmSpecificationArn</i> Specifies the Amazon Resource Name (ARN) of the algorithm used for auto-labeling. You must select one of the following ARNs: <ul> <li>  <i>Image classification</i>   <code>arn:aws:sagemaker:<i>region</i>:027400017018:labeling-job-algorithm-specification/image-classification</code>  </li> <li>  <i>Text classification</i>   <code>arn:aws:sagemaker:<i>region</i>:027400017018:labeling-job-algorithm-specification/text-classification</code>  </li> <li>  <i>Object detection</i>   <code>arn:aws:sagemaker:<i>region</i>:027400017018:labeling-job-algorithm-specification/object-detection</code>  </li> <li>  <i>Semantic Segmentation</i>   <code>arn:aws:sagemaker:<i>region</i>:027400017018:labeling-job-algorithm-specification/semantic-segmentation</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VolumeKmsKeyId</i> The Amazon Web Services Key Management Service (Amazon Web Services KMS) key that Amazon SageMaker uses to encrypt data on the storage volume attached to the ML compute instance(s) that run the training and inference jobs used for automated data labeling.  You can only specify a <code>VolumeKmsKeyId</code> when you create a labeling job with automated data labeling enabled using the API operation <code>CreateLabelingJob</code>. You cannot specify an Amazon Web Services KMS customer managed CMK to encrypt the storage volume used for automated data labeling model training and inference when you create a labeling job using the console. To learn more, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sms-security.html">Output Data and Storage Volume Encryption</a>. The <code>VolumeKmsKeyId</code> can be any of the following formats: <ul> <li> KMS Key ID  <code>"1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> <li> Amazon Resource Name (ARN) of a KMS Key  <code>"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PublicWorkforceTaskPrice</i> The price that you pay for each task performed by an Amazon Mechanical Turk worker.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PublicWorkforceTaskPrice</b>: The price that you pay for each task performed by an Amazon Mechanical Turk worker.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AnnotationConsolidationConfig</i> Configures how labels are consolidated across human workers.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AnnotationConsolidationConfig</b>: Configures how labels are consolidated across human workers.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxConcurrentTaskCount</i> Defines the maximum number of data objects that can be labeled by human workers at the same time. Also referred to as batch size. Each object may have more than one worker at one time. The default value is 1000 objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TaskAvailabilityLifetimeInSeconds</i> The length of time that a task remains available for labeling by human workers. The default and maximum values for this parameter depend on the type of workforce you use. <ul> <li> If you choose the Amazon Mechanical Turk workforce, the maximum is 12 hours (43,200 seconds). The default is 6 hours (21,600 seconds). </li> <li> If you choose a private or vendor workforce, the default value is 10 days (864,000 seconds). For most users, the maximum is also 10 days. If you want to change this limit, contact Amazon Web Services Support. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TaskTimeLimitInSeconds</i> The amount of time that a worker has to complete a task.  If you create a custom labeling job, the maximum value for this parameter is 8 hours (28,800 seconds). If you create a labeling job using a <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sms-task-types.html">built-in task type</a> the maximum for this parameter depends on the task type you use: <ul> <li> For <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sms-label-images.html">image</a> and <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sms-label-text.html">text</a> labeling jobs, the maximum is 8 hours (28,800 seconds). </li> <li> For <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sms-point-cloud.html">3D point cloud</a> and <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sms-video.html">video frame</a> labeling jobs, the maximum is 7 days (604,800 seconds). If you want to change these limits, contact Amazon Web Services Support. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NumberOfHumanWorkersPerDataObject</i> The number of human workers that will label an object. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TaskDescription</i> A description of the task for your human workers.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TaskTitle</i> A title for the task for your human workers.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TaskKeywords</i> Keywords used to describe the task so that workers on Amazon Mechanical Turk can discover the task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreHumanTaskLambdaArn</i> The Amazon Resource Name (ARN) of a Lambda function that is run before a data object is sent to a human worker. Use this function to provide input to a custom labeling job. For <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sms-task-types.html">built-in task types</a>, use one of the following Amazon SageMaker Ground Truth Lambda function ARNs for <code>PreHumanTaskLambdaArn</code>. For custom labeling workflows, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sms-custom-templates-step3.html#sms-custom-templates-step3-prelambda">Pre-annotation Lambda</a>.   <b>Bounding box</b> - Finds the most similar boxes from different workers based on the Jaccard index of the boxes. <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:PRE-BoundingBox</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:PRE-BoundingBox</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:PRE-BoundingBox</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:PRE-BoundingBox</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:PRE-BoundingBox</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:PRE-BoundingBox</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:PRE-BoundingBox</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-BoundingBox</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-BoundingBox</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:PRE-BoundingBox</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-BoundingBox</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-BoundingBox</code>  </li> </ul>  <b>Image classification</b> - Uses a variant of the Expectation Maximization approach to estimate the true class of an image based on annotations from individual workers. <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:PRE-ImageMultiClass</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:PRE-ImageMultiClass</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:PRE-ImageMultiClass</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:PRE-ImageMultiClass</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:PRE-ImageMultiClass</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:PRE-ImageMultiClass</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:PRE-ImageMultiClass</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-ImageMultiClass</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-ImageMultiClass</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:PRE-ImageMultiClass</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-ImageMultiClass</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-ImageMultiClass</code>  </li> </ul>  <b>Multi-label image classification</b> - Uses a variant of the Expectation Maximization approach to estimate the true classes of an image based on annotations from individual workers. <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:PRE-ImageMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:PRE-ImageMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:PRE-ImageMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:PRE-ImageMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:PRE-ImageMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:PRE-ImageMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:PRE-ImageMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-ImageMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-ImageMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:PRE-ImageMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-ImageMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-ImageMultiClassMultiLabel</code>  </li> </ul>  <b>Semantic segmentation</b> - Treats each pixel in an image as a multi-class classification and treats pixel annotations from workers as "votes" for the correct label. <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:PRE-SemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:PRE-SemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:PRE-SemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:PRE-SemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:PRE-SemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:PRE-SemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:PRE-SemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-SemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-SemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:PRE-SemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-SemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-SemanticSegmentation</code>  </li> </ul>  <b>Text classification</b> - Uses a variant of the Expectation Maximization approach to estimate the true class of text based on annotations from individual workers. <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:PRE-TextMultiClass</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:PRE-TextMultiClass</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:PRE-TextMultiClass</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:PRE-TextMultiClass</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:PRE-TextMultiClass</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:PRE-TextMultiClass</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:PRE-TextMultiClass</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-TextMultiClass</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-TextMultiClass</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:PRE-TextMultiClass</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-TextMultiClass</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-TextMultiClass</code>  </li> </ul>  <b>Multi-label text classification</b> - Uses a variant of the Expectation Maximization approach to estimate the true classes of text based on annotations from individual workers. <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:PRE-TextMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:PRE-TextMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:PRE-TextMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:PRE-TextMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:PRE-TextMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:PRE-TextMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:PRE-TextMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-TextMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-TextMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:PRE-TextMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-TextMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-TextMultiClassMultiLabel</code>  </li> </ul>  <b>Named entity recognition</b> - Groups similar selections and calculates aggregate boundaries, resolving to most-assigned label. <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:PRE-NamedEntityRecognition</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:PRE-NamedEntityRecognition</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:PRE-NamedEntityRecognition</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:PRE-NamedEntityRecognition</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:PRE-NamedEntityRecognition</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:PRE-NamedEntityRecognition</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:PRE-NamedEntityRecognition</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-NamedEntityRecognition</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-NamedEntityRecognition</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:PRE-NamedEntityRecognition</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-NamedEntityRecognition</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-NamedEntityRecognition</code>  </li> </ul>  <b>Video Classification</b> - Use this task type when you need workers to classify videos using predefined labels that you specify. Workers are shown videos and are asked to choose one label for each video. <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:PRE-VideoMultiClass</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:PRE-VideoMultiClass</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:PRE-VideoMultiClass</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:PRE-VideoMultiClass</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-VideoMultiClass</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-VideoMultiClass</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:PRE-VideoMultiClass</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:PRE-VideoMultiClass</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-VideoMultiClass</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:PRE-VideoMultiClass</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-VideoMultiClass</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:PRE-VideoMultiClass</code>  </li> </ul>  <b>Video Frame Object Detection</b> - Use this task type to have workers identify and locate objects in a sequence of video frames (images extracted from a video) using bounding boxes. For example, you can use this task to ask workers to identify and localize various objects in a series of video frames, such as cars, bikes, and pedestrians. <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:PRE-VideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:PRE-VideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:PRE-VideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:PRE-VideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-VideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-VideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:PRE-VideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:PRE-VideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-VideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:PRE-VideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-VideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:PRE-VideoObjectDetection</code>  </li> </ul>  <b>Video Frame Object Tracking</b> - Use this task type to have workers track the movement of objects in a sequence of video frames (images extracted from a video) using bounding boxes. For example, you can use this task to ask workers to track the movement of objects, such as cars, bikes, and pedestrians.  <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:PRE-VideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:PRE-VideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:PRE-VideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:PRE-VideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-VideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-VideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:PRE-VideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:PRE-VideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-VideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:PRE-VideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-VideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:PRE-VideoObjectTracking</code>  </li> </ul>  <b>3D Point Cloud Modalities</b>  Use the following pre-annotation lambdas for 3D point cloud labeling modality tasks. See <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sms-point-cloud-task-types.html">3D Point Cloud Task types </a> to learn more.   <b>3D Point Cloud Object Detection</b> - Use this task type when you want workers to classify objects in a 3D point cloud by drawing 3D cuboids around objects. For example, you can use this task type to ask workers to identify different types of objects in a point cloud, such as cars, bikes, and pedestrians. <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:PRE-3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:PRE-3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:PRE-3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:PRE-3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:PRE-3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:PRE-3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:PRE-3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:PRE-3DPointCloudObjectDetection</code>  </li> </ul>  <b>3D Point Cloud Object Tracking</b> - Use this task type when you want workers to draw 3D cuboids around objects that appear in a sequence of 3D point cloud frames. For example, you can use this task type to ask workers to track the movement of vehicles across multiple point cloud frames.  <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:PRE-3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:PRE-3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:PRE-3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:PRE-3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:PRE-3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:PRE-3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:PRE-3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:PRE-3DPointCloudObjectTracking</code>  </li> </ul>  <b>3D Point Cloud Semantic Segmentation</b> - Use this task type when you want workers to create a point-level semantic segmentation masks by painting objects in a 3D point cloud using different colors where each color is assigned to one of the classes you specify. <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:PRE-3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:PRE-3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:PRE-3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:PRE-3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:PRE-3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:PRE-3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:PRE-3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:PRE-3DPointCloudSemanticSegmentation</code>  </li> </ul>  <b>Use the following ARNs for Label Verification and Adjustment Jobs</b>  Use label verification and adjustment jobs to review and adjust labels. To learn more, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sms-verification-data.html">Verify and Adjust Labels </a>.  <b>Bounding box verification</b> - Uses a variant of the Expectation Maximization approach to estimate the true class of verification judgement for bounding box labels based on annotations from individual workers. <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:PRE-VerificationBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:PRE-VerificationBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:PRE-VerificationBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:PRE-VerificationBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-VerificationBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-VerificationBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:PRE-VerificationBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:PRE-VerificationBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-VerificationBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:PRE-VerificationBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-VerificationBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:PRE-VerificationBoundingBox</code>  </li> </ul>  <b>Bounding box adjustment</b> - Finds the most similar boxes from different workers based on the Jaccard index of the adjusted annotations. <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:PRE-AdjustmentBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:PRE-AdjustmentBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:PRE-AdjustmentBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:PRE-AdjustmentBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:PRE-AdjustmentBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:PRE-AdjustmentBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:PRE-AdjustmentBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-AdjustmentBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-AdjustmentBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:PRE-AdjustmentBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-AdjustmentBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-AdjustmentBoundingBox</code>  </li> </ul>  <b>Semantic segmentation verification</b> - Uses a variant of the Expectation Maximization approach to estimate the true class of verification judgment for semantic segmentation labels based on annotations from individual workers. <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:PRE-VerificationSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:PRE-VerificationSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:PRE-VerificationSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:PRE-VerificationSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:PRE-VerificationSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:PRE-VerificationSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:PRE-VerificationSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-VerificationSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-VerificationSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:PRE-VerificationSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-VerificationSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-VerificationSemanticSegmentation</code>  </li> </ul>  <b>Semantic segmentation adjustment</b> - Treats each pixel in an image as a multi-class classification and treats pixel adjusted annotations from workers as "votes" for the correct label. <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:PRE-AdjustmentSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:PRE-AdjustmentSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:PRE-AdjustmentSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:PRE-AdjustmentSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:PRE-AdjustmentSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:PRE-AdjustmentSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:PRE-AdjustmentSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-AdjustmentSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-AdjustmentSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:PRE-AdjustmentSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-AdjustmentSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-AdjustmentSemanticSegmentation</code>  </li> </ul>  <b>Video Frame Object Detection Adjustment</b> - Use this task type when you want workers to adjust bounding boxes that workers have added to video frames to classify and localize objects in a sequence of video frames. <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:PRE-AdjustmentVideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:PRE-AdjustmentVideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:PRE-AdjustmentVideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:PRE-AdjustmentVideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-AdjustmentVideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-AdjustmentVideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:PRE-AdjustmentVideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:PRE-AdjustmentVideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-AdjustmentVideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:PRE-AdjustmentVideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-AdjustmentVideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:PRE-AdjustmentVideoObjectDetection</code>  </li> </ul>  <b>Video Frame Object Tracking Adjustment</b> - Use this task type when you want workers to adjust bounding boxes that workers have added to video frames to track object movement across a sequence of video frames. <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:PRE-AdjustmentVideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:PRE-AdjustmentVideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:PRE-AdjustmentVideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:PRE-AdjustmentVideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-AdjustmentVideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-AdjustmentVideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:PRE-AdjustmentVideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:PRE-AdjustmentVideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-AdjustmentVideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:PRE-AdjustmentVideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-AdjustmentVideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:PRE-AdjustmentVideoObjectTracking</code>  </li> </ul>  <b>3D point cloud object detection adjustment</b> - Adjust 3D cuboids in a point cloud frame.  <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:PRE-Adjustment3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:PRE-Adjustment3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:PRE-Adjustment3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:PRE-Adjustment3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-Adjustment3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-Adjustment3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:PRE-Adjustment3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:PRE-Adjustment3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-Adjustment3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:PRE-Adjustment3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-Adjustment3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:PRE-Adjustment3DPointCloudObjectDetection</code>  </li> </ul>  <b>3D point cloud object tracking adjustment</b> - Adjust 3D cuboids across a sequence of point cloud frames.  <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:PRE-Adjustment3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:PRE-Adjustment3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:PRE-Adjustment3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:PRE-Adjustment3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-Adjustment3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-Adjustment3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:PRE-Adjustment3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:PRE-Adjustment3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-Adjustment3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:PRE-Adjustment3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-Adjustment3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:PRE-Adjustment3DPointCloudObjectTracking</code>  </li> </ul>  <b>3D point cloud semantic segmentation adjustment</b> - Adjust semantic segmentation masks in a 3D point cloud.  <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:PRE-Adjustment3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:PRE-Adjustment3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:PRE-Adjustment3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:PRE-Adjustment3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-Adjustment3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-Adjustment3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:PRE-Adjustment3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:PRE-Adjustment3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-Adjustment3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:PRE-Adjustment3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-Adjustment3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:PRE-Adjustment3DPointCloudSemanticSegmentation</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UiConfig</i> Information about the user interface that workers use to complete the labeling task.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>UiConfig</b>: Information about the user interface that workers use to complete the labeling task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WorkteamArn</i> The Amazon Resource Name (ARN) of the work team assigned to complete the tasks.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HumanTaskUiArn</i> The ARN of the worker task template used to render the worker UI and tools for labeling job tasks. Use this parameter when you are creating a labeling job for 3D point cloud and video fram labeling jobs. Use your labeling job task type to select one of the following ARNs and use it with this parameter when you create a labeling job. Replace <code>aws-region</code> with the Amazon Web Services region you are creating your labeling job in.  <b>3D Point Cloud HumanTaskUiArns</b>  Use this <code>HumanTaskUiArn</code> for 3D point cloud object detection and 3D point cloud object detection adjustment labeling jobs.  <ul> <li>  <code>arn:aws:sagemaker:aws-region:394669845002:human-task-ui/PointCloudObjectDetection</code>  </li> </ul>  Use this <code>HumanTaskUiArn</code> for 3D point cloud object tracking and 3D point cloud object tracking adjustment labeling jobs.  <ul> <li>  <code>arn:aws:sagemaker:aws-region:394669845002:human-task-ui/PointCloudObjectTracking</code>  </li> </ul>  Use this <code>HumanTaskUiArn</code> for 3D point cloud semantic segmentation and 3D point cloud semantic segmentation adjustment labeling jobs. <ul> <li>  <code>arn:aws:sagemaker:aws-region:394669845002:human-task-ui/PointCloudSemanticSegmentation</code>  </li> </ul>  <b>Video Frame HumanTaskUiArns</b>  Use this <code>HumanTaskUiArn</code> for video frame object detection and video frame object detection adjustment labeling jobs.  <ul> <li>  <code>arn:aws:sagemaker:region:394669845002:human-task-ui/VideoObjectDetection</code>  </li> </ul>  Use this <code>HumanTaskUiArn</code> for video frame object tracking and video frame object tracking adjustment labeling jobs.  <ul> <li>  <code>arn:aws:sagemaker:aws-region:394669845002:human-task-ui/VideoObjectTracking</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UiTemplateS3Uri</i> The Amazon S3 bucket location of the UI template, or worker task template. This is the template used to render the worker UI and tools for labeling job tasks. For more information about the contents of a UI template, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sms-custom-templates-step2.html"> Creating Your Custom Labeling Task Template</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AnnotationConsolidationLambdaArn</i> The Amazon Resource Name (ARN) of a Lambda function implements the logic for <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sms-annotation-consolidation.html">annotation consolidation</a> and to process output data. This parameter is required for all labeling jobs. For <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sms-task-types.html">built-in task types</a>, use one of the following Amazon SageMaker Ground Truth Lambda function ARNs for <code>AnnotationConsolidationLambdaArn</code>. For custom labeling workflows, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sms-custom-templates-step3.html#sms-custom-templates-step3-postlambda">Post-annotation Lambda</a>.   <b>Bounding box</b> - Finds the most similar boxes from different workers based on the Jaccard index of the boxes. <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:ACS-BoundingBox</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:ACS-BoundingBox</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:ACS-BoundingBox</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:ACS-BoundingBox</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-BoundingBox</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-BoundingBox</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:ACS-BoundingBox</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:ACS-BoundingBox</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-BoundingBox</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:ACS-BoundingBox</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-BoundingBox</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:ACS-BoundingBox</code>  </li> </ul>  <b>Image classification</b> - Uses a variant of the Expectation Maximization approach to estimate the true class of an image based on annotations from individual workers. <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:ACS-ImageMultiClass</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:ACS-ImageMultiClass</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:ACS-ImageMultiClass</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:ACS-ImageMultiClass</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-ImageMultiClass</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-ImageMultiClass</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:ACS-ImageMultiClass</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:ACS-ImageMultiClass</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-ImageMultiClass</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:ACS-ImageMultiClass</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-ImageMultiClass</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:ACS-ImageMultiClass</code>  </li> </ul>  <b>Multi-label image classification</b> - Uses a variant of the Expectation Maximization approach to estimate the true classes of an image based on annotations from individual workers. <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:ACS-ImageMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:ACS-ImageMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:ACS-ImageMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:ACS-ImageMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-ImageMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-ImageMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:ACS-ImageMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:ACS-ImageMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-ImageMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:ACS-ImageMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-ImageMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:ACS-ImageMultiClassMultiLabel</code>  </li> </ul>  <b>Semantic segmentation</b> - Treats each pixel in an image as a multi-class classification and treats pixel annotations from workers as "votes" for the correct label. <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:ACS-SemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:ACS-SemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:ACS-SemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:ACS-SemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-SemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-SemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:ACS-SemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:ACS-SemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-SemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:ACS-SemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-SemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:ACS-SemanticSegmentation</code>  </li> </ul>  <b>Text classification</b> - Uses a variant of the Expectation Maximization approach to estimate the true class of text based on annotations from individual workers. <ul> <li>  <code>rn:aws:lambda:us-east-1:432418664414:function:ACS-TextMultiClass</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:ACS-TextMultiClass</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:ACS-TextMultiClass</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:ACS-TextMultiClass</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-TextMultiClass</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-TextMultiClass</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:ACS-TextMultiClass</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:ACS-TextMultiClass</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-TextMultiClass</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:ACS-TextMultiClass</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-TextMultiClass</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:ACS-TextMultiClass</code>  </li> </ul>  <b>Multi-label text classification</b> - Uses a variant of the Expectation Maximization approach to estimate the true classes of text based on annotations from individual workers. <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:ACS-TextMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:ACS-TextMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:ACS-TextMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:ACS-TextMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-TextMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-TextMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:ACS-TextMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:ACS-TextMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-TextMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:ACS-TextMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-TextMultiClassMultiLabel</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:ACS-TextMultiClassMultiLabel</code>  </li> </ul>  <b>Named entity recognition</b> - Groups similar selections and calculates aggregate boundaries, resolving to most-assigned label. <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:ACS-NamedEntityRecognition</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:ACS-NamedEntityRecognition</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:ACS-NamedEntityRecognition</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:ACS-NamedEntityRecognition</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-NamedEntityRecognition</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-NamedEntityRecognition</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:ACS-NamedEntityRecognition</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:ACS-NamedEntityRecognition</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-NamedEntityRecognition</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:ACS-NamedEntityRecognition</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-NamedEntityRecognition</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:ACS-NamedEntityRecognition</code>  </li> </ul>  <b>Video Classification</b> - Use this task type when you need workers to classify videos using predefined labels that you specify. Workers are shown videos and are asked to choose one label for each video. <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:ACS-VideoMultiClass</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:ACS-VideoMultiClass</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:ACS-VideoMultiClass</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:ACS-VideoMultiClass</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-VideoMultiClass</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-VideoMultiClass</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:ACS-VideoMultiClass</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:ACS-VideoMultiClass</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-VideoMultiClass</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:ACS-VideoMultiClass</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-VideoMultiClass</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:ACS-VideoMultiClass</code>  </li> </ul>  <b>Video Frame Object Detection</b> - Use this task type to have workers identify and locate objects in a sequence of video frames (images extracted from a video) using bounding boxes. For example, you can use this task to ask workers to identify and localize various objects in a series of video frames, such as cars, bikes, and pedestrians. <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:ACS-VideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:ACS-VideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:ACS-VideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:ACS-VideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-VideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-VideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:ACS-VideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:ACS-VideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-VideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:ACS-VideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-VideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:ACS-VideoObjectDetection</code>  </li> </ul>  <b>Video Frame Object Tracking</b> - Use this task type to have workers track the movement of objects in a sequence of video frames (images extracted from a video) using bounding boxes. For example, you can use this task to ask workers to track the movement of objects, such as cars, bikes, and pedestrians.  <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:ACS-VideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:ACS-VideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:ACS-VideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:ACS-VideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-VideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-VideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:ACS-VideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:ACS-VideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-VideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:ACS-VideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-VideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:ACS-VideoObjectTracking</code>  </li> </ul>  <b>3D Point Cloud Object Detection</b> - Use this task type when you want workers to classify objects in a 3D point cloud by drawing 3D cuboids around objects. For example, you can use this task type to ask workers to identify different types of objects in a point cloud, such as cars, bikes, and pedestrians. <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:ACS-3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:ACS-3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:ACS-3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:ACS-3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:ACS-3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:ACS-3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:ACS-3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:ACS-3DPointCloudObjectDetection</code>  </li> </ul>  <b>3D Point Cloud Object Tracking</b> - Use this task type when you want workers to draw 3D cuboids around objects that appear in a sequence of 3D point cloud frames. For example, you can use this task type to ask workers to track the movement of vehicles across multiple point cloud frames.  <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:ACS-3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:ACS-3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:ACS-3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:ACS-3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:ACS-3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:ACS-3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:ACS-3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:ACS-3DPointCloudObjectTracking</code>  </li> </ul>  <b>3D Point Cloud Semantic Segmentation</b> - Use this task type when you want workers to create a point-level semantic segmentation masks by painting objects in a 3D point cloud using different colors where each color is assigned to one of the classes you specify. <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:ACS-3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:ACS-3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:ACS-3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:ACS-3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:ACS-3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:ACS-3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:ACS-3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:ACS-3DPointCloudSemanticSegmentation</code>  </li> </ul>  <b>Use the following ARNs for Label Verification and Adjustment Jobs</b>  Use label verification and adjustment jobs to review and adjust labels. To learn more, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sms-verification-data.html">Verify and Adjust Labels </a>.  <b>Semantic Segmentation Adjustment</b> - Treats each pixel in an image as a multi-class classification and treats pixel adjusted annotations from workers as "votes" for the correct label. <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:ACS-AdjustmentSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:ACS-AdjustmentSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:ACS-AdjustmentSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:ACS-AdjustmentSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-AdjustmentSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-AdjustmentSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:ACS-AdjustmentSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:ACS-AdjustmentSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-AdjustmentSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:ACS-AdjustmentSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-AdjustmentSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:ACS-AdjustmentSemanticSegmentation</code>  </li> </ul>  <b>Semantic Segmentation Verification</b> - Uses a variant of the Expectation Maximization approach to estimate the true class of verification judgment for semantic segmentation labels based on annotations from individual workers. <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:ACS-VerificationSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:ACS-VerificationSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:ACS-VerificationSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:ACS-VerificationSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-VerificationSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-VerificationSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:ACS-VerificationSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:ACS-VerificationSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-VerificationSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:ACS-VerificationSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-VerificationSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:ACS-VerificationSemanticSegmentation</code>  </li> </ul>  <b>Bounding Box Adjustment</b> - Finds the most similar boxes from different workers based on the Jaccard index of the adjusted annotations. <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:ACS-AdjustmentBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:ACS-AdjustmentBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:ACS-AdjustmentBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:ACS-AdjustmentBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-AdjustmentBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-AdjustmentBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:ACS-AdjustmentBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:ACS-AdjustmentBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-AdjustmentBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:ACS-AdjustmentBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-AdjustmentBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:ACS-AdjustmentBoundingBox</code>  </li> </ul>  <b>Bounding Box Verification</b> - Uses a variant of the Expectation Maximization approach to estimate the true class of verification judgement for bounding box labels based on annotations from individual workers. <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:ACS-VerificationBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:ACS-VerificationBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:ACS-VerificationBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:ACS-VerificationBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-VerificationBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-VerificationBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:ACS-VerificationBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:ACS-VerificationBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-VerificationBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:ACS-VerificationBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-VerificationBoundingBox</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:ACS-VerificationBoundingBox</code>  </li> </ul>  <b>Video Frame Object Detection Adjustment</b> - Use this task type when you want workers to adjust bounding boxes that workers have added to video frames to classify and localize objects in a sequence of video frames. <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:ACS-AdjustmentVideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:ACS-AdjustmentVideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:ACS-AdjustmentVideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:ACS-AdjustmentVideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-AdjustmentVideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-AdjustmentVideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:ACS-AdjustmentVideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:ACS-AdjustmentVideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-AdjustmentVideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:ACS-AdjustmentVideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-AdjustmentVideoObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:ACS-AdjustmentVideoObjectDetection</code>  </li> </ul>  <b>Video Frame Object Tracking Adjustment</b> - Use this task type when you want workers to adjust bounding boxes that workers have added to video frames to track object movement across a sequence of video frames. <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:ACS-AdjustmentVideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:ACS-AdjustmentVideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:ACS-AdjustmentVideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:ACS-AdjustmentVideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-AdjustmentVideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-AdjustmentVideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:ACS-AdjustmentVideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:ACS-AdjustmentVideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-AdjustmentVideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:ACS-AdjustmentVideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-AdjustmentVideoObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:ACS-AdjustmentVideoObjectTracking</code>  </li> </ul>  <b>3D Point Cloud Object Detection Adjustment</b> - Use this task type when you want workers to adjust 3D cuboids around objects in a 3D point cloud.  <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:ACS-Adjustment3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:ACS-Adjustment3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:ACS-Adjustment3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:ACS-Adjustment3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-Adjustment3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-Adjustment3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:ACS-Adjustment3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:ACS-Adjustment3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-Adjustment3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:ACS-Adjustment3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-Adjustment3DPointCloudObjectDetection</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:ACS-Adjustment3DPointCloudObjectDetection</code>  </li> </ul>  <b>3D Point Cloud Object Tracking Adjustment</b> - Use this task type when you want workers to adjust 3D cuboids around objects that appear in a sequence of 3D point cloud frames. <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:ACS-Adjustment3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:ACS-Adjustment3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:ACS-Adjustment3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:ACS-Adjustment3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-Adjustment3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-Adjustment3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:ACS-Adjustment3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:ACS-Adjustment3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-Adjustment3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:ACS-Adjustment3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-Adjustment3DPointCloudObjectTracking</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:ACS-Adjustment3DPointCloudObjectTracking</code>  </li> </ul>  <b>3D Point Cloud Semantic Segmentation Adjustment</b> - Use this task type when you want workers to adjust a point-level semantic segmentation masks using a paint tool. <ul> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:ACS-3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:us-east-1:432418664414:function:ACS-Adjustment3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:us-east-2:266458841044:function:ACS-Adjustment3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:us-west-2:081040173940:function:ACS-Adjustment3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:eu-west-1:568282634449:function:ACS-Adjustment3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-Adjustment3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-Adjustment3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-south-1:565803892007:function:ACS-Adjustment3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:eu-central-1:203001061592:function:ACS-Adjustment3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-Adjustment3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:eu-west-2:487402164563:function:ACS-Adjustment3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-Adjustment3DPointCloudSemanticSegmentation</code>  </li> <li>  <code>arn:aws:lambda:ca-central-1:918755190332:function:ACS-Adjustment3DPointCloudSemanticSegmentation</code>  </li> </ul><br/>Defines the amount of money paid to an Amazon Mechanical Turk worker in United States dollars.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AmountInUsd</b>: Defines the amount of money paid to an Amazon Mechanical Turk worker in United States dollars.&nbsp;&nbsp;&nbsp;&nbsp; <i>FinalActiveLearningModelArn</i> The Amazon Resource Name (ARN) for the most recent Amazon SageMaker model trained as part of automated data labeling. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OutputDatasetS3Uri</i> The Amazon S3 bucket location of the manifest file for labeled data. <br/>        """
        pass

    def describe_model(self, ModelName: str) -> DescribeModelOutput:
        r"""Describes a model that you created using the <code>CreateModel</code> API.

        :param self:
        :param ModelName:  The name of the model.<br/>
        :return: EnableNetworkIsolation:  If <code>True</code>, no inbound or outbound network calls can be made to or from the model container.<br/>ModelArn:  The Amazon Resource Name (ARN) of the model.<br/>CreationTime:  A timestamp that shows when the model was created.<br/>VpcConfig:  A <a>VpcConfig</a> object that specifies the VPC that this model has access to. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/host-vpc.html">Protect Endpoints by Using an Amazon Virtual Private Cloud</a> :<br/>ExecutionRoleArn:  The Amazon Resource Name (ARN) of the IAM role that you specified for the model.<br/>InferenceExecutionConfig:  Specifies details of how containers in a multi-container endpoint are called.:<br/>Containers:  The containers in the inference pipeline.<br/>PrimaryContainer:  The location of the primary inference code, associated artifacts, and custom environment map that the inference code uses when it is deployed in production. :<br/>ModelName:  Name of the Amazon SageMaker model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MultiModelConfig</i> Specifies additional configuration for multi-model endpoints.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>MultiModelConfig</b>: Specifies additional configuration for multi-model endpoints.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ModelPackageName</i> The name or Amazon Resource Name (ARN) of the model package to use to create the model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Environment</i> The environment variables to set in the Docker container. Each key and value in the <code>Environment</code> string to string map can have length of up to 1024. We support up to 16 entries in the map. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ModelDataUrl</i> The S3 path where the model artifacts, which result from model training, are stored. This path must point to a single gzip compressed tar archive (.tar.gz suffix). The S3 path is required for Amazon SageMaker built-in algorithms, but not if you use your own algorithms. For more information on built-in algorithms, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-algo-docker-registry-paths.html">Common Parameters</a>.  <note> The model artifacts must be in an S3 bucket that is in the same region as the model or endpoint you are creating. </note> If you provide a value for this parameter, Amazon SageMaker uses Amazon Web Services Security Token Service to download model artifacts from the S3 path you provide. Amazon Web Services STS is activated in your IAM user account by default. If you previously deactivated Amazon Web Services STS for a region, you need to reactivate Amazon Web Services STS for that region. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html">Activating and Deactivating Amazon Web Services STS in an Amazon Web Services Region</a> in the <i>Amazon Web Services Identity and Access Management User Guide</i>. <important> If you use a built-in algorithm to create a model, Amazon SageMaker requires that you provide a S3 path to the model artifacts in <code>ModelDataUrl</code>. </important><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Mode</i> Whether the container hosts a single model or multiple models.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImageConfig</i> Specifies whether the model container is in Amazon ECR or a private Docker registry accessible from your Amazon Virtual Private Cloud (VPC). For information about storing containers in a private Docker registry, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms-containers-inference-private.html">Use a Private Docker Registry for Real-Time Inference Containers</a> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ImageConfig</b>: Specifies whether the model container is in Amazon ECR or a private Docker registry accessible from your Amazon Virtual Private Cloud (VPC). For information about storing containers in a private Docker registry, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms-containers-inference-private.html">Use a Private Docker Registry for Real-Time Inference Containers</a> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Image</i> The path where inference code is stored. This can be either in Amazon EC2 Container Registry or in a Docker registry that is accessible from the same VPC that you configure for your endpoint. If you are using your own custom algorithm instead of an algorithm provided by Amazon SageMaker, the inference code must meet Amazon SageMaker requirements. Amazon SageMaker supports both <code>registry/repository[:tag]</code> and <code>registry/repository[@digest]</code> image path formats. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms.html">Using Your Own Algorithms with Amazon SageMaker</a> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ContainerHostname</i> This parameter is ignored for models that contain only a <code>PrimaryContainer</code>. When a <code>ContainerDefinition</code> is part of an inference pipeline, the value of the parameter uniquely identifies the container for the purposes of logging and metrics. For information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/inference-pipeline-logs-metrics.html">Use Logs and Metrics to Monitor an Inference Pipeline</a>. If you don't specify a value for this parameter for a <code>ContainerDefinition</code> that is part of an inference pipeline, a unique name is automatically assigned based on the position of the <code>ContainerDefinition</code> in the pipeline. If you specify a value for the <code>ContainerHostName</code> for any <code>ContainerDefinition</code> that is part of an inference pipeline, you must specify a value for the <code>ContainerHostName</code> parameter of every <code>ContainerDefinition</code> in that pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RepositoryAccessMode</i> Set this to one of the following values: <ul> <li>  <code>Platform</code> - The model image is hosted in Amazon ECR. </li> <li>  <code>Vpc</code> - The model image is hosted in a private Docker registry in your VPC. </li> </ul><br/>(Optional) Specifies an authentication configuration for the private docker registry where your model image is hosted. Specify a value for this property only if you specified <code>Vpc</code> as the value for the <code>RepositoryAccessMode</code> field, and the private Docker registry where the model image is hosted requires authentication.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RepositoryAuthConfig</b>: (Optional) Specifies an authentication configuration for the private docker registry where your model image is hosted. Specify a value for this property only if you specified <code>Vpc</code> as the value for the <code>RepositoryAccessMode</code> field, and the private Docker registry where the model image is hosted requires authentication.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ModelCacheSetting</i> Whether to cache models for a multi-model endpoint. By default, multi-model endpoints cache models so that a model does not have to be loaded into memory each time it is invoked. Some use cases do not benefit from model caching. For example, if an endpoint hosts a large number of models that are each invoked infrequently, the endpoint might perform better if you disable model caching. To disable model caching, set the value of this parameter to <code>Disabled</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Mode</i> How containers in a multi-container are run. The following values are valid. <ul> <li>  <code>SERIAL</code> - Containers run as a serial pipeline. </li> <li>  <code>DIRECT</code> - Only the individual container that you specify is run. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Subnets</i> The ID of the subnets in the VPC to which you want to connect your training job or model. For information about the availability of specific instance types, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/instance-types-az.html">Supported Instance Types and Availability Zones</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> The VPC security group IDs, in the form sg-xxxxxxxx. Specify the security groups for the VPC that is specified in the <code>Subnets</code> field.<br/>        """
        pass

    def describe_model_bias_job_definition(self, JobDefinitionName: str) -> DescribeModelBiasJobDefinitionResponse:
        r"""Returns a description of a model bias job definition.

        :param self:
        :param JobDefinitionName:  The name of the model bias job definition. The name must be unique within an Amazon Web Services Region in the Amazon Web Services account.<br/>
        :return: StoppingCondition:  A time limit for how long the monitoring job is allowed to run before stopping.:<br/>RoleArn:  The Amazon Resource Name (ARN) of the Amazon Web Services Identity and Access Management (IAM) role that has read permission to the input data location and write permission to the output data location in Amazon S3.<br/>NetworkConfig:  Networking options for a model bias job.:<br/>JobResources:  Identifies the resources to deploy for a monitoring job.:<br/>ModelBiasJobOutputConfig:  The output configuration for monitoring jobs.:<br/>ModelBiasJobInput:  Inputs for the model bias job.:<br/>ModelBiasAppSpecification:  Configures the model bias job to run a specified Docker container image.:<br/>ModelBiasBaselineConfig:  The baseline configuration for a model bias job.:<br/>CreationTime:  The time at which the model bias job was created.<br/>JobDefinitionName:  The name of the bias job definition. The name must be unique within an Amazon Web Services Region in the Amazon Web Services account.<br/>JobDefinitionArn:  The Amazon Resource Name (ARN) of the model bias job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConstraintsResource</i> The constraints resource for a monitoring job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ConstraintsResource</b>: The constraints resource for a monitoring job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BaseliningJobName</i> The name of the baseline model bias job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Uri</i> The Amazon S3 URI for the constraints resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Environment</i> Sets the environment variables in the Docker container.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConfigUri</i> JSON formatted S3 file that defines bias parameters. For more information on this JSON configuration file, see <a href="https://docs.aws.amazon.com/sagemaker/latest/json-bias-parameter-config.html">Configure bias parameters</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImageUri</i> The container image to be run by the model bias job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GroundTruthS3Input</i> Location of ground truth labels to use in model bias job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>GroundTruthS3Input</b>: Location of ground truth labels to use in model bias job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointInput</i> Input object for the endpoint&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EndpointInput</b>: Input object for the endpoint<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EndTimeOffset</i> If specified, monitoring jobs substract this time from the end time. For information about using offsets for scheduling monitoring jobs, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/model-monitor-model-quality-schedule.html">Schedule Model Quality Monitoring Jobs</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StartTimeOffset</i> If specified, monitoring jobs substract this time from the start time. For information about using offsets for scheduling monitoring jobs, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/model-monitor-model-quality-schedule.html">Schedule Model Quality Monitoring Jobs</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ProbabilityThresholdAttribute</i> The threshold for the class probability to be evaluated as a positive result.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ProbabilityAttribute</i> In a classification problem, the attribute that represents the class probability.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InferenceAttribute</i> The attribute of the input data that represents the ground truth label.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FeaturesAttribute</i> The attributes of the input data that are the input features.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3DataDistributionType</i> Whether input data distributed in Amazon S3 is fully replicated or sharded by an S3 key. Defaults to <code>FullyReplicated</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3InputMode</i> Whether the <code>Pipe</code> or <code>File</code> is used as the input mode for transfering data for the monitoring job. <code>Pipe</code> mode is recommended for large datasets. <code>File</code> mode is useful for small files that fit in memory. Defaults to <code>File</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LocalPath</i> Path to the filesystem where the endpoint data is available to the container.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointName</i> An endpoint in customer's account which has enabled <code>DataCaptureConfig</code> enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Uri</i> The address of the Amazon S3 location of the ground truth labels.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The Amazon Web Services Key Management Service (Amazon Web Services KMS) key that Amazon SageMaker uses to encrypt the model artifacts at rest using Amazon S3 server-side encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MonitoringOutputs</i> Monitoring outputs for monitoring jobs. This is where the output of the periodic monitoring jobs is uploaded.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterConfig</i> The configuration for the cluster resources used to run the processing job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ClusterConfig</b>: The configuration for the cluster resources used to run the processing job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VolumeKmsKeyId</i> The Amazon Web Services Key Management Service (Amazon Web Services KMS) key that Amazon SageMaker uses to encrypt data on the storage volume attached to the ML compute instance(s) that run the model monitoring job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VolumeSizeInGB</i> The size of the ML storage volume, in gigabytes, that you want to provision. You must specify sufficient ML storage for your scenario.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceType</i> The ML compute instance type for the processing job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceCount</i> The number of ML compute instances to use in the model monitoring job. For distributed processing jobs, specify a value greater than 1. The default value is 1.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcConfig</i> Specifies a VPC that your training jobs and hosted models have access to. Control access to and from your training and model containers by configuring the VPC. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/host-vpc.html">Protect Endpoints by Using an Amazon Virtual Private Cloud</a> and <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/train-vpc.html">Protect Training Jobs by Using an Amazon Virtual Private Cloud</a>. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>VpcConfig</b>: Specifies a VPC that your training jobs and hosted models have access to. Control access to and from your training and model containers by configuring the VPC. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/host-vpc.html">Protect Endpoints by Using an Amazon Virtual Private Cloud</a> and <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/train-vpc.html">Protect Training Jobs by Using an Amazon Virtual Private Cloud</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableNetworkIsolation</i> Whether to allow inbound and outbound network calls to and from the containers used for the monitoring job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableInterContainerTrafficEncryption</i> Whether to encrypt all communications between the instances used for the monitoring jobs. Choose <code>True</code> to encrypt communications. Encryption provides greater security for distributed jobs, but the processing might take longer.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Subnets</i> The ID of the subnets in the VPC to which you want to connect your training job or model. For information about the availability of specific instance types, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/instance-types-az.html">Supported Instance Types and Availability Zones</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> The VPC security group IDs, in the form sg-xxxxxxxx. Specify the security groups for the VPC that is specified in the <code>Subnets</code> field.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxRuntimeInSeconds</i> The maximum runtime allowed in seconds. <note> The <code>MaxRuntimeInSeconds</code> cannot exceed the frequency of the job. For data quality and model explainability, this can be up to 3600 seconds for an hourly schedule. For model bias and model quality hourly schedules, this can be up to 1800 seconds. </note><br/>        """
        pass

    def describe_model_explainability_job_definition(self, JobDefinitionName: str) -> DescribeModelExplainabilityJobDefinitionResponse:
        r"""Returns a description of a model explainability job definition.

        :param self:
        :param JobDefinitionName:  The name of the model explainability job definition. The name must be unique within an Amazon Web Services Region in the Amazon Web Services account.<br/>
        :return: StoppingCondition:  A time limit for how long the monitoring job is allowed to run before stopping.:<br/>RoleArn:  The Amazon Resource Name (ARN) of the Amazon Web Services Identity and Access Management (IAM) role that has read permission to the input data location and write permission to the output data location in Amazon S3.<br/>NetworkConfig:  Networking options for a model explainability job.:<br/>JobResources:  Identifies the resources to deploy for a monitoring job.:<br/>ModelExplainabilityJobOutputConfig:  The output configuration for monitoring jobs.:<br/>ModelExplainabilityJobInput:  Inputs for the model explainability job.:<br/>ModelExplainabilityAppSpecification:  Configures the model explainability job to run a specified Docker container image.:<br/>ModelExplainabilityBaselineConfig:  The baseline configuration for a model explainability job.:<br/>CreationTime:  The time at which the model explainability job was created.<br/>JobDefinitionName:  The name of the explainability job definition. The name must be unique within an Amazon Web Services Region in the Amazon Web Services account.<br/>JobDefinitionArn:  The Amazon Resource Name (ARN) of the model explainability job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConstraintsResource</i> The constraints resource for a monitoring job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ConstraintsResource</b>: The constraints resource for a monitoring job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BaseliningJobName</i> The name of the baseline model explainability job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Uri</i> The Amazon S3 URI for the constraints resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Environment</i> Sets the environment variables in the Docker container.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConfigUri</i> JSON formatted S3 file that defines explainability parameters. For more information on this JSON configuration file, see <a href="https://docs.aws.amazon.com/sagemaker/latest/json-model-explainability-parameter-config.html">Configure model explainability parameters</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImageUri</i> The container image to be run by the model explainability job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointInput</i> Input object for the endpoint&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EndpointInput</b>: Input object for the endpoint<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EndTimeOffset</i> If specified, monitoring jobs substract this time from the end time. For information about using offsets for scheduling monitoring jobs, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/model-monitor-model-quality-schedule.html">Schedule Model Quality Monitoring Jobs</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StartTimeOffset</i> If specified, monitoring jobs substract this time from the start time. For information about using offsets for scheduling monitoring jobs, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/model-monitor-model-quality-schedule.html">Schedule Model Quality Monitoring Jobs</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ProbabilityThresholdAttribute</i> The threshold for the class probability to be evaluated as a positive result.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ProbabilityAttribute</i> In a classification problem, the attribute that represents the class probability.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InferenceAttribute</i> The attribute of the input data that represents the ground truth label.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FeaturesAttribute</i> The attributes of the input data that are the input features.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3DataDistributionType</i> Whether input data distributed in Amazon S3 is fully replicated or sharded by an S3 key. Defaults to <code>FullyReplicated</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3InputMode</i> Whether the <code>Pipe</code> or <code>File</code> is used as the input mode for transfering data for the monitoring job. <code>Pipe</code> mode is recommended for large datasets. <code>File</code> mode is useful for small files that fit in memory. Defaults to <code>File</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LocalPath</i> Path to the filesystem where the endpoint data is available to the container.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointName</i> An endpoint in customer's account which has enabled <code>DataCaptureConfig</code> enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The Amazon Web Services Key Management Service (Amazon Web Services KMS) key that Amazon SageMaker uses to encrypt the model artifacts at rest using Amazon S3 server-side encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MonitoringOutputs</i> Monitoring outputs for monitoring jobs. This is where the output of the periodic monitoring jobs is uploaded.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterConfig</i> The configuration for the cluster resources used to run the processing job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ClusterConfig</b>: The configuration for the cluster resources used to run the processing job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VolumeKmsKeyId</i> The Amazon Web Services Key Management Service (Amazon Web Services KMS) key that Amazon SageMaker uses to encrypt data on the storage volume attached to the ML compute instance(s) that run the model monitoring job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VolumeSizeInGB</i> The size of the ML storage volume, in gigabytes, that you want to provision. You must specify sufficient ML storage for your scenario.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceType</i> The ML compute instance type for the processing job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceCount</i> The number of ML compute instances to use in the model monitoring job. For distributed processing jobs, specify a value greater than 1. The default value is 1.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcConfig</i> Specifies a VPC that your training jobs and hosted models have access to. Control access to and from your training and model containers by configuring the VPC. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/host-vpc.html">Protect Endpoints by Using an Amazon Virtual Private Cloud</a> and <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/train-vpc.html">Protect Training Jobs by Using an Amazon Virtual Private Cloud</a>. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>VpcConfig</b>: Specifies a VPC that your training jobs and hosted models have access to. Control access to and from your training and model containers by configuring the VPC. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/host-vpc.html">Protect Endpoints by Using an Amazon Virtual Private Cloud</a> and <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/train-vpc.html">Protect Training Jobs by Using an Amazon Virtual Private Cloud</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableNetworkIsolation</i> Whether to allow inbound and outbound network calls to and from the containers used for the monitoring job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableInterContainerTrafficEncryption</i> Whether to encrypt all communications between the instances used for the monitoring jobs. Choose <code>True</code> to encrypt communications. Encryption provides greater security for distributed jobs, but the processing might take longer.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Subnets</i> The ID of the subnets in the VPC to which you want to connect your training job or model. For information about the availability of specific instance types, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/instance-types-az.html">Supported Instance Types and Availability Zones</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> The VPC security group IDs, in the form sg-xxxxxxxx. Specify the security groups for the VPC that is specified in the <code>Subnets</code> field.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxRuntimeInSeconds</i> The maximum runtime allowed in seconds. <note> The <code>MaxRuntimeInSeconds</code> cannot exceed the frequency of the job. For data quality and model explainability, this can be up to 3600 seconds for an hourly schedule. For model bias and model quality hourly schedules, this can be up to 1800 seconds. </note><br/>        """
        pass

    def describe_model_package(self, ModelPackageName: str) -> DescribeModelPackageOutput:
        r"""Returns a description of the specified model package, which is used to create Amazon SageMaker models or list them on Amazon Web Services Marketplace. To create models in Amazon SageMaker, buyers can subscribe to model packages listed on Amazon Web Services Marketplace.

        :param self:
        :param ModelPackageName:  The name or Amazon Resource Name (ARN) of the model package to describe. When you specify a name, the name must have 1 to 63 characters. Valid characters are a-z, A-Z, 0-9, and - (hyphen).<br/>
        :return: ApprovalDescription:  A description provided for the model approval.<br/>LastModifiedBy:  Information about the user who created or modified an experiment, trial, or trial component.:<br/>LastModifiedTime:  The last time the model package was modified.<br/>ModelMetrics:  Metrics for the model.:<br/>MetadataProperties:  Metadata properties of the tracking entity, trial, or trial component.:<br/>CreatedBy:  Information about the user who created or modified an experiment, trial, or trial component.:<br/>ModelApprovalStatus:  The approval status of the model package.<br/>CertifyForMarketplace:  Whether the model package is certified for listing on Amazon Web Services Marketplace.<br/>ModelPackageStatusDetails:  Details about the current status of the model package.:<br/>ModelPackageStatus:  The current status of the model package.<br/>ValidationSpecification:  Configurations for one or more transform jobs that Amazon SageMaker runs to test the model package.:<br/>SourceAlgorithmSpecification:  Details about the algorithm that was used to create the model package.:<br/>InferenceSpecification:  Details about inference jobs that can be run with models based on this model package.:<br/>CreationTime:  A timestamp specifying when the model package was created.<br/>ModelPackageDescription:  A brief summary of the model package.<br/>ModelPackageArn:  The Amazon Resource Name (ARN) of the model package.<br/>ModelPackageVersion:  The version of the model package.<br/>ModelPackageGroupName:  If the model is a versioned model, the name of the model group that the versioned model belongs to.<br/>ModelPackageName:  The name of the model package being described.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SupportedResponseMIMETypes</i> The supported MIME types for the output data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SupportedContentTypes</i> The supported MIME types for the input data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SupportedRealtimeInferenceInstanceTypes</i> A list of the instance types that are used to generate inferences in real-time. This parameter is required for unversioned models, and optional for versioned models.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SupportedTransformInstanceTypes</i> A list of the instance types on which a transformation job can be run or on which an endpoint can be deployed. This parameter is required for unversioned models, and optional for versioned models.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Containers</i> The Amazon ECR registry path of the Docker image that contains the inference code.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceAlgorithms</i> A list of the algorithms that were used to create a model package.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ValidationProfiles</i> An array of <code>ModelPackageValidationProfile</code> objects, each of which specifies a batch transform job that Amazon SageMaker runs to validate your model package.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ValidationRole</i> The IAM roles to be used for the validation of the model package.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImageScanStatuses</i> The status of the scan of the Docker image container for the model package.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ValidationStatuses</i> The validation status of the model package.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainId</i> The domain associated with the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserProfileName</i> The name of the user's profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserProfileArn</i> The Amazon Resource Name (ARN) of the user's profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProjectId</i> The project ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GeneratedBy</i> The entity this entity was generated by.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Repository</i> The repository.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CommitId</i> The commit ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Explainability</i> Metrics that help explain a model.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Explainability</b>: Metrics that help explain a model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Bias</i> Metrics that measure bais in a model.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Bias</b>: Metrics that measure bais in a model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ModelDataQuality</i> Metrics that measure the quality of the input data for a model.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ModelDataQuality</b>: Metrics that measure the quality of the input data for a model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ModelQuality</i> Metrics that measure the quality of a model.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ModelQuality</b>: Metrics that measure the quality of a model.<br/>Model quality statistics.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Statistics</b>: Model quality statistics.Data quality statistics for a model.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Statistics</b>: Data quality statistics for a model.The bias report for a model&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Report</b>: The bias report for a modelThe explainability report for a model.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Report</b>: The explainability report for a model.&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainId</i> The domain associated with the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserProfileName</i> The name of the user's profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserProfileArn</i> The Amazon Resource Name (ARN) of the user's profile.<br/>        """
        pass

    def describe_model_package_group(self, ModelPackageGroupName: str) -> DescribeModelPackageGroupOutput:
        r"""Gets a description for the specified model group.

        :param self:
        :param ModelPackageGroupName:  The name of the model group to describe.<br/>
        :return: ModelPackageGroupStatus:  The status of the model group.<br/>CreatedBy:  Information about the user who created or modified an experiment, trial, or trial component.:<br/>CreationTime:  The time that the model group was created.<br/>ModelPackageGroupDescription:  A description of the model group.<br/>ModelPackageGroupArn:  The Amazon Resource Name (ARN) of the model group.<br/>ModelPackageGroupName:  The name of the model group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainId</i> The domain associated with the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserProfileName</i> The name of the user's profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserProfileArn</i> The Amazon Resource Name (ARN) of the user's profile.<br/>        """
        pass

    def describe_model_quality_job_definition(self, JobDefinitionName: str) -> DescribeModelQualityJobDefinitionResponse:
        r"""Returns a description of a model quality job definition.

        :param self:
        :param JobDefinitionName:  The name of the model quality job. The name must be unique within an Amazon Web Services Region in the Amazon Web Services account.<br/>
        :return: StoppingCondition:  A time limit for how long the monitoring job is allowed to run before stopping.:<br/>RoleArn:  The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can assume to perform tasks on your behalf.<br/>NetworkConfig:  Networking options for a model quality job.:<br/>JobResources:  Identifies the resources to deploy for a monitoring job.:<br/>ModelQualityJobOutputConfig:  The output configuration for monitoring jobs.:<br/>ModelQualityJobInput:  Inputs for the model quality job.:<br/>ModelQualityAppSpecification:  Configures the model quality job to run a specified Docker container image.:<br/>ModelQualityBaselineConfig:  The baseline configuration for a model quality job.:<br/>CreationTime:  The time at which the model quality job was created.<br/>JobDefinitionName:  The name of the quality job definition. The name must be unique within an Amazon Web Services Region in the Amazon Web Services account.<br/>JobDefinitionArn:  The Amazon Resource Name (ARN) of the model quality job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConstraintsResource</i> The constraints resource for a monitoring job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ConstraintsResource</b>: The constraints resource for a monitoring job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BaseliningJobName</i> The name of the job that performs baselining for the monitoring job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Uri</i> The Amazon S3 URI for the constraints resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Environment</i> Sets the environment variables in the container that the monitoring job runs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProblemType</i> The machine learning problem type of the model that the monitoring job monitors.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PostAnalyticsProcessorSourceUri</i> An Amazon S3 URI to a script that is called after analysis has been performed. Applicable only for the built-in (first party) containers.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecordPreprocessorSourceUri</i> An Amazon S3 URI to a script that is called per row prior to running analysis. It can base64 decode the payload and convert it into a flatted json so that the built-in container can use the converted data. Applicable only for the built-in (first party) containers.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ContainerArguments</i> An array of arguments for the container used to run the monitoring job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ContainerEntrypoint</i> Specifies the entrypoint for a container that the monitoring job runs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImageUri</i> The address of the container image that the monitoring job runs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GroundTruthS3Input</i> The ground truth label provided for the model.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>GroundTruthS3Input</b>: The ground truth label provided for the model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointInput</i> Input object for the endpoint&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EndpointInput</b>: Input object for the endpoint<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EndTimeOffset</i> If specified, monitoring jobs substract this time from the end time. For information about using offsets for scheduling monitoring jobs, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/model-monitor-model-quality-schedule.html">Schedule Model Quality Monitoring Jobs</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StartTimeOffset</i> If specified, monitoring jobs substract this time from the start time. For information about using offsets for scheduling monitoring jobs, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/model-monitor-model-quality-schedule.html">Schedule Model Quality Monitoring Jobs</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ProbabilityThresholdAttribute</i> The threshold for the class probability to be evaluated as a positive result.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ProbabilityAttribute</i> In a classification problem, the attribute that represents the class probability.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InferenceAttribute</i> The attribute of the input data that represents the ground truth label.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FeaturesAttribute</i> The attributes of the input data that are the input features.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3DataDistributionType</i> Whether input data distributed in Amazon S3 is fully replicated or sharded by an S3 key. Defaults to <code>FullyReplicated</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3InputMode</i> Whether the <code>Pipe</code> or <code>File</code> is used as the input mode for transfering data for the monitoring job. <code>Pipe</code> mode is recommended for large datasets. <code>File</code> mode is useful for small files that fit in memory. Defaults to <code>File</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LocalPath</i> Path to the filesystem where the endpoint data is available to the container.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointName</i> An endpoint in customer's account which has enabled <code>DataCaptureConfig</code> enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Uri</i> The address of the Amazon S3 location of the ground truth labels.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The Amazon Web Services Key Management Service (Amazon Web Services KMS) key that Amazon SageMaker uses to encrypt the model artifacts at rest using Amazon S3 server-side encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MonitoringOutputs</i> Monitoring outputs for monitoring jobs. This is where the output of the periodic monitoring jobs is uploaded.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterConfig</i> The configuration for the cluster resources used to run the processing job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ClusterConfig</b>: The configuration for the cluster resources used to run the processing job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VolumeKmsKeyId</i> The Amazon Web Services Key Management Service (Amazon Web Services KMS) key that Amazon SageMaker uses to encrypt data on the storage volume attached to the ML compute instance(s) that run the model monitoring job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VolumeSizeInGB</i> The size of the ML storage volume, in gigabytes, that you want to provision. You must specify sufficient ML storage for your scenario.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceType</i> The ML compute instance type for the processing job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceCount</i> The number of ML compute instances to use in the model monitoring job. For distributed processing jobs, specify a value greater than 1. The default value is 1.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcConfig</i> Specifies a VPC that your training jobs and hosted models have access to. Control access to and from your training and model containers by configuring the VPC. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/host-vpc.html">Protect Endpoints by Using an Amazon Virtual Private Cloud</a> and <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/train-vpc.html">Protect Training Jobs by Using an Amazon Virtual Private Cloud</a>. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>VpcConfig</b>: Specifies a VPC that your training jobs and hosted models have access to. Control access to and from your training and model containers by configuring the VPC. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/host-vpc.html">Protect Endpoints by Using an Amazon Virtual Private Cloud</a> and <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/train-vpc.html">Protect Training Jobs by Using an Amazon Virtual Private Cloud</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableNetworkIsolation</i> Whether to allow inbound and outbound network calls to and from the containers used for the monitoring job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableInterContainerTrafficEncryption</i> Whether to encrypt all communications between the instances used for the monitoring jobs. Choose <code>True</code> to encrypt communications. Encryption provides greater security for distributed jobs, but the processing might take longer.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Subnets</i> The ID of the subnets in the VPC to which you want to connect your training job or model. For information about the availability of specific instance types, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/instance-types-az.html">Supported Instance Types and Availability Zones</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> The VPC security group IDs, in the form sg-xxxxxxxx. Specify the security groups for the VPC that is specified in the <code>Subnets</code> field.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxRuntimeInSeconds</i> The maximum runtime allowed in seconds. <note> The <code>MaxRuntimeInSeconds</code> cannot exceed the frequency of the job. For data quality and model explainability, this can be up to 3600 seconds for an hourly schedule. For model bias and model quality hourly schedules, this can be up to 1800 seconds. </note><br/>        """
        pass

    def describe_monitoring_schedule(self, MonitoringScheduleName: str) -> DescribeMonitoringScheduleResponse:
        r"""Describes the schedule for a monitoring job.

        :param self:
        :param MonitoringScheduleName:  Name of a previously created monitoring schedule.<br/>
        :return: LastMonitoringExecutionSummary:  Describes metadata on the last execution to run, if there was one.:<br/>EndpointName:   The name of the endpoint for the monitoring job.<br/>MonitoringScheduleConfig:  The configuration object that specifies the monitoring schedule and defines the monitoring job.:<br/>LastModifiedTime:  The time at which the monitoring job was last modified.<br/>CreationTime:  The time at which the monitoring job was created.<br/>FailureReason:  A string, up to one KB in size, that contains the reason a monitoring job failed, if it failed.<br/>MonitoringType:  The type of the monitoring job that this schedule runs. This is one of the following values. <ul> <li>  <code>DATA_QUALITY</code> - The schedule is for a data quality monitoring job. </li> <li>  <code>MODEL_QUALITY</code> - The schedule is for a model quality monitoring job. </li> <li>  <code>MODEL_BIAS</code> - The schedule is for a bias monitoring job. </li> <li>  <code>MODEL_EXPLAINABILITY</code> - The schedule is for an explainability monitoring job. </li> </ul><br/>MonitoringScheduleStatus:  The status of an monitoring job.<br/>MonitoringScheduleName:  Name of the monitoring schedule.<br/>MonitoringScheduleArn:  The Amazon Resource Name (ARN) of the monitoring schedule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MonitoringType</i> The type of the monitoring job definition to schedule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MonitoringJobDefinitionName</i> The name of the monitoring job definition to schedule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MonitoringJobDefinition</i> Defines the monitoring job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>MonitoringJobDefinition</b>: Defines the monitoring job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ScheduleConfig</i> Configures the monitoring schedule.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ScheduleConfig</b>: Configures the monitoring schedule.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ScheduleExpression</i> A cron expression that describes details about the monitoring schedule. Currently the only supported cron expressions are: <ul> <li> If you want to set the job to start every hour, please use the following:  <code>Hourly: cron(0 * ? * * *)</code>  </li> <li> If you want to start the job daily:  <code>cron(0 [00-23] ? * * *)</code>  </li> </ul> For example, the following are valid cron expressions: <ul> <li> Daily at noon UTC: <code>cron(0 12 ? * * *)</code>  </li> <li> Daily at midnight UTC: <code>cron(0 0 ? * * *)</code>  </li> </ul> To support running every 6, 12 hours, the following are also supported:  <code>cron(0 [00-23]/[01-24] ? * * *)</code>  For example, the following are valid cron expressions: <ul> <li> Every 12 hours, starting at 5pm UTC: <code>cron(0 17/12 ? * * *)</code>  </li> <li> Every two hours starting at midnight: <code>cron(0 0/2 ? * * *)</code>  </li> </ul> <note> <ul> <li> Even though the cron expression is set to start at 5PM UTC, note that there could be a delay of 0-20 minutes from the actual requested time to run the execution.  </li> <li> We recommend that if you would like a daily schedule, you do not provide this parameter. Amazon SageMaker will pick a time for running every day. </li> </ul> </note><br/>Baseline configuration used to validate that the data conforms to the specified constraints and statistics&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>BaselineConfig</b>: Baseline configuration used to validate that the data conforms to the specified constraints and statistics&nbsp;&nbsp;&nbsp;&nbsp; <i>MonitoringType</i> The type of the monitoring job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MonitoringJobDefinitionName</i> The name of the monitoring job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FailureReason</i> Contains the reason a monitoring job failed, if it failed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointName</i> The name of the endpoint used to run the monitoring job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProcessingJobArn</i> The Amazon Resource Name (ARN) of the monitoring job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MonitoringExecutionStatus</i> The status of the monitoring job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedTime</i> A timestamp that indicates the last time the monitoring job was modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The time at which the monitoring job was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ScheduledTime</i> The time the monitoring job was scheduled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MonitoringScheduleName</i> The name of the monitoring schedule.<br/>        """
        pass

    def describe_notebook_instance(self, NotebookInstanceName: str) -> DescribeNotebookInstanceOutput:
        r"""Returns information about a notebook instance.

        :param self:
        :param NotebookInstanceName:  The name of the notebook instance that you want information about.<br/>
        :return: RootAccess:  Whether root access is enabled or disabled for users of the notebook instance. <note> Lifecycle configurations need root access to be able to set up a notebook instance. Because of this, lifecycle configurations associated with a notebook instance always run with root access even if you disable root access for users. </note><br/>AdditionalCodeRepositories:  An array of up to three Git repositories associated with the notebook instance. These can be either the names of Git repositories stored as resources in your account, or the URL of Git repositories in <a href="https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html">Amazon Web Services CodeCommit</a> or in any other Git repository. These repositories are cloned at the same level as the default repository of your notebook instance. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/nbi-git-repo.html">Associating Git Repositories with Amazon SageMaker Notebook Instances</a>.<br/>DefaultCodeRepository:  The Git repository associated with the notebook instance as its default code repository. This can be either the name of a Git repository stored as a resource in your account, or the URL of a Git repository in <a href="https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html">Amazon Web Services CodeCommit</a> or in any other Git repository. When you open a notebook instance, it opens in the directory that contains this repository. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/nbi-git-repo.html">Associating Git Repositories with Amazon SageMaker Notebook Instances</a>.<br/>AcceleratorTypes:  A list of the Elastic Inference (EI) instance types associated with this notebook instance. Currently only one EI instance type can be associated with a notebook instance. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/ei.html">Using Elastic Inference in Amazon SageMaker</a>.<br/>VolumeSizeInGB:  The size, in GB, of the ML storage volume attached to the notebook instance.<br/>DirectInternetAccess:  Describes whether Amazon SageMaker provides internet access to the notebook instance. If this value is set to <i>Disabled</i>, the notebook instance does not have internet access, and cannot connect to Amazon SageMaker training and endpoint services. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/appendix-additional-considerations.html#appendix-notebook-and-internet-access">Notebook Instances Are Internet-Enabled by Default</a>.<br/>NotebookInstanceLifecycleConfigName:  Returns the name of a notebook instance lifecycle configuration. For information about notebook instance lifestyle configurations, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/notebook-lifecycle-config.html">Step 2.1: (Optional) Customize a Notebook Instance</a> <br/>CreationTime:  A timestamp. Use this parameter to return the time when the notebook instance was created<br/>LastModifiedTime:  A timestamp. Use this parameter to retrieve the time when the notebook instance was last modified. <br/>NetworkInterfaceId:  The network interface IDs that Amazon SageMaker created at the time of creating the instance. <br/>KmsKeyId:  The Amazon Web Services KMS key ID Amazon SageMaker uses to encrypt data when storing it on the ML storage volume attached to the instance. <br/>RoleArn:  The Amazon Resource Name (ARN) of the IAM role associated with the instance. <br/>SecurityGroups:  The IDs of the VPC security groups.<br/>SubnetId:  The ID of the VPC subnet.<br/>InstanceType:  The type of ML compute instance running on the notebook instance.<br/>Url:  The URL that you use to connect to the Jupyter notebook that is running in your notebook instance. <br/>FailureReason:  If status is <code>Failed</code>, the reason it failed.<br/>NotebookInstanceStatus:  The status of the notebook instance.<br/>NotebookInstanceName:  The name of the Amazon SageMaker notebook instance. <br/>NotebookInstanceArn:  The Amazon Resource Name (ARN) of the notebook instance.<br/>        """
        pass

    def describe_notebook_instance_lifecycle_config(self, NotebookInstanceLifecycleConfigName: str) -> DescribeNotebookInstanceLifecycleConfigOutput:
        r"""Returns a description of a notebook instance lifecycle configuration. For information about notebook instance lifestyle configurations, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/notebook-lifecycle-config.html">Step 2.1: (Optional) Customize a Notebook Instance</a>.

        :param self:
        :param NotebookInstanceLifecycleConfigName:  The name of the lifecycle configuration to describe.<br/>
        :return: CreationTime:  A timestamp that tells when the lifecycle configuration was created.<br/>LastModifiedTime:  A timestamp that tells when the lifecycle configuration was last modified.<br/>OnStart:  The shell script that runs every time you start a notebook instance, including when you create the notebook instance.<br/>OnCreate:  The shell script that runs only once, when you create a notebook instance.<br/>NotebookInstanceLifecycleConfigName:  The name of the lifecycle configuration.<br/>NotebookInstanceLifecycleConfigArn:  The Amazon Resource Name (ARN) of the lifecycle configuration.<br/>        """
        pass

    def describe_pipeline(self, PipelineName: str) -> DescribePipelineResponse:
        r"""Describes the details of a pipeline.

        :param self:
        :param PipelineName:  The name of the pipeline to describe.<br/>
        :return: LastModifiedBy:  Information about the user who created or modified an experiment, trial, or trial component.:<br/>CreatedBy:  Information about the user who created or modified an experiment, trial, or trial component.:<br/>LastRunTime:  The time when the pipeline was last run.<br/>LastModifiedTime:  The time when the pipeline was last modified.<br/>CreationTime:  The time when the pipeline was created.<br/>PipelineStatus:  The status of the pipeline execution.<br/>RoleArn:  The Amazon Resource Name (ARN) that the pipeline uses to execute.<br/>PipelineDescription:  The description of the pipeline.<br/>PipelineDefinition:  The JSON pipeline definition.<br/>PipelineDisplayName:  The display name of the pipeline.<br/>PipelineName:  The name of the pipeline.<br/>PipelineArn:  The Amazon Resource Name (ARN) of the pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainId</i> The domain associated with the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserProfileName</i> The name of the user's profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserProfileArn</i> The Amazon Resource Name (ARN) of the user's profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainId</i> The domain associated with the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserProfileName</i> The name of the user's profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserProfileArn</i> The Amazon Resource Name (ARN) of the user's profile.<br/>        """
        pass

    def describe_pipeline_definition_for_execution(self, PipelineExecutionArn: str) -> DescribePipelineDefinitionForExecutionResponse:
        r"""Describes the details of an execution's pipeline definition.

        :param self:
        :param PipelineExecutionArn:  The Amazon Resource Name (ARN) of the pipeline execution.<br/>
        :return: CreationTime:  The time when the pipeline was created.<br/>PipelineDefinition:  The JSON pipeline definition.<br/>        """
        pass

    def describe_pipeline_execution(self, PipelineExecutionArn: str) -> DescribePipelineExecutionResponse:
        r"""Describes the details of a pipeline execution.

        :param self:
        :param PipelineExecutionArn:  The Amazon Resource Name (ARN) of the pipeline execution.<br/>
        :return: LastModifiedBy:  Information about the user who created or modified an experiment, trial, or trial component.:<br/>CreatedBy:  Information about the user who created or modified an experiment, trial, or trial component.:<br/>LastModifiedTime:  The time when the pipeline execution was modified last.<br/>CreationTime:  The time when the pipeline execution was created.<br/>FailureReason:  If the execution failed, a message describing why.<br/>PipelineExperimentConfig:  Specifies the names of the experiment and trial created by a pipeline.:<br/>PipelineExecutionDescription:  The description of the pipeline execution.<br/>PipelineExecutionStatus:  The status of the pipeline execution.<br/>PipelineExecutionDisplayName:  The display name of the pipeline execution.<br/>PipelineExecutionArn:  The Amazon Resource Name (ARN) of the pipeline execution.<br/>PipelineArn:  The Amazon Resource Name (ARN) of the pipeline.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TrialName</i> The name of the trial.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExperimentName</i> The name of the experiment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainId</i> The domain associated with the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserProfileName</i> The name of the user's profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserProfileArn</i> The Amazon Resource Name (ARN) of the user's profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainId</i> The domain associated with the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserProfileName</i> The name of the user's profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserProfileArn</i> The Amazon Resource Name (ARN) of the user's profile.<br/>        """
        pass

    def describe_processing_job(self, ProcessingJobName: str) -> DescribeProcessingJobResponse:
        r"""Returns a description of a processing job.

        :param self:
        :param ProcessingJobName:  The name of the processing job. The name must be unique within an Amazon Web Services Region in the Amazon Web Services account.<br/>
        :return: TrainingJobArn:  The ARN of a training job associated with this processing job.<br/>AutoMLJobArn:  The ARN of an AutoML job associated with this processing job.<br/>MonitoringScheduleArn:  The ARN of a monitoring schedule for an endpoint associated with this processing job.<br/>CreationTime:  The time at which the processing job was created.<br/>LastModifiedTime:  The time at which the processing job was last modified.<br/>ProcessingStartTime:  The time at which the processing job started.<br/>ProcessingEndTime:  The time at which the processing job completed.<br/>FailureReason:  A string, up to one KB in size, that contains the reason a processing job failed, if it failed.<br/>ExitMessage:  An optional string, up to one KB in size, that contains metadata from the processing container when the processing job exits.<br/>ProcessingJobStatus:  Provides the status of a processing job.<br/>ProcessingJobArn:  The Amazon Resource Name (ARN) of the processing job.<br/>ExperimentConfig:  The configuration information used to create an experiment.:<br/>RoleArn:  The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can assume to perform tasks on your behalf.<br/>NetworkConfig:  Networking options for a processing job.:<br/>Environment:  The environment variables set in the Docker container.<br/>AppSpecification:  Configures the processing job to run a specified container image.:<br/>StoppingCondition:  The time limit for how long the processing job is allowed to run.:<br/>ProcessingResources:  Identifies the resources, ML compute instances, and ML storage volumes to deploy for a processing job. In distributed training, you specify more than one instance.:<br/>ProcessingJobName:  The name of the processing job. The name must be unique within an Amazon Web Services Region in the Amazon Web Services account.<br/>ProcessingOutputConfig:  Output configuration for the processing job.:<br/>ProcessingInputs:  The inputs for a processing job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The Amazon Web Services Key Management Service (Amazon Web Services KMS) key that Amazon SageMaker uses to encrypt the processing job output. <code>KmsKeyId</code> can be an ID of a KMS key, ARN of a KMS key, alias of a KMS key, or alias of a KMS key. The <code>KmsKeyId</code> is applied to all outputs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Outputs</i> An array of outputs configuring the data to upload from the processing container.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterConfig</i> The configuration for the resources in a cluster used to run the processing job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ClusterConfig</b>: The configuration for the resources in a cluster used to run the processing job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VolumeKmsKeyId</i> The Amazon Web Services Key Management Service (Amazon Web Services KMS) key that Amazon SageMaker uses to encrypt data on the storage volume attached to the ML compute instance(s) that run the processing job.  <note> Certain Nitro-based instances include local storage, dependent on the instance type. Local storage volumes are encrypted using a hardware module on the instance. You can't request a <code>VolumeKmsKeyId</code> when using an instance type with local storage. For a list of instance types that support local instance storage, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#instance-store-volumes">Instance Store Volumes</a>. For more information about local instance storage encryption, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ssd-instance-store.html">SSD Instance Store Volumes</a>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VolumeSizeInGB</i> The size of the ML storage volume in gigabytes that you want to provision. You must specify sufficient ML storage for your scenario. <note> Certain Nitro-based instances include local storage with a fixed total size, dependent on the instance type. When using these instances for processing, Amazon SageMaker mounts the local instance storage instead of Amazon EBS gp2 storage. You can't request a <code>VolumeSizeInGB</code> greater than the total size of the local instance storage. For a list of instance types that support local instance storage, including the total size per instance type, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#instance-store-volumes">Instance Store Volumes</a>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceType</i> The ML compute instance type for the processing job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceCount</i> The number of ML compute instances to use in the processing job. For distributed processing jobs, specify a value greater than 1. The default value is 1.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxRuntimeInSeconds</i> Specifies the maximum runtime in seconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ContainerArguments</i> The arguments for a container used to run a processing job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ContainerEntrypoint</i> The entrypoint for a container used to run a processing job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImageUri</i> The container image to be run by the processing job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcConfig</i> Specifies a VPC that your training jobs and hosted models have access to. Control access to and from your training and model containers by configuring the VPC. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/host-vpc.html">Protect Endpoints by Using an Amazon Virtual Private Cloud</a> and <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/train-vpc.html">Protect Training Jobs by Using an Amazon Virtual Private Cloud</a>. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>VpcConfig</b>: Specifies a VPC that your training jobs and hosted models have access to. Control access to and from your training and model containers by configuring the VPC. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/host-vpc.html">Protect Endpoints by Using an Amazon Virtual Private Cloud</a> and <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/train-vpc.html">Protect Training Jobs by Using an Amazon Virtual Private Cloud</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableNetworkIsolation</i> Whether to allow inbound and outbound network calls to and from the containers used for the processing job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableInterContainerTrafficEncryption</i> Whether to encrypt all communications between distributed processing jobs. Choose <code>True</code> to encrypt communications. Encryption provides greater security for distributed processing jobs, but the processing might take longer.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Subnets</i> The ID of the subnets in the VPC to which you want to connect your training job or model. For information about the availability of specific instance types, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/instance-types-az.html">Supported Instance Types and Availability Zones</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> The VPC security group IDs, in the form sg-xxxxxxxx. Specify the security groups for the VPC that is specified in the <code>Subnets</code> field.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TrialComponentDisplayName</i> The display name for the trial component. If this key isn't specified, the display name is the trial component name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TrialName</i> The name of an existing trial to associate the trial component with. If not specified, a new trial is created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExperimentName</i> The name of an existing experiment to associate the trial component with.<br/>        """
        pass

    def describe_project(self, ProjectName: str) -> DescribeProjectOutput:
        r"""Describes the details of a project.

        :param self:
        :param ProjectName:  The name of the project to describe.<br/>
        :return: CreationTime:  The time when the project was created.<br/>CreatedBy:  Information about the user who created or modified an experiment, trial, or trial component.:<br/>ProjectStatus:  The status of the project.<br/>ServiceCatalogProvisionedProductDetails:  Information about a provisioned service catalog product.:<br/>ServiceCatalogProvisioningDetails:  Information used to provision a service catalog product. For information, see <a href="https://docs.aws.amazon.com/servicecatalog/latest/adminguide/introduction.html">What is Amazon Web Services Service Catalog</a>.:<br/>ProjectDescription:  The description of the project.<br/>ProjectId:  The ID of the project.<br/>ProjectName:  The name of the project.<br/>ProjectArn:  The Amazon Resource Name (ARN) of the project.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProvisioningParameters</i> A list of key value pairs that you specify when you provision a product.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PathId</i> The path identifier of the product. This value is optional if the product has a default path, and required if the product has more than one path. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProvisioningArtifactId</i> The ID of the provisioning artifact.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProductId</i> The ID of the product to provision.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProvisionedProductStatusMessage</i> The current status of the product. <ul> <li>  <code>AVAILABLE</code> - Stable state, ready to perform any operation. The most recent operation succeeded and completed. </li> <li>  <code>UNDER_CHANGE</code> - Transitive state. Operations performed might not have valid results. Wait for an AVAILABLE status before performing operations. </li> <li>  <code>TAINTED</code> - Stable state, ready to perform any operation. The stack has completed the requested operation but is not exactly what was requested. For example, a request to update to a new version failed and the stack rolled back to the current version. </li> <li>  <code>ERROR</code> - An unexpected error occurred. The provisioned product exists but the stack is not running. For example, CloudFormation received a parameter value that was not valid and could not launch the stack. </li> <li>  <code>PLAN_IN_PROGRESS</code> - Transitive state. The plan operations were performed to provision a new product, but resources have not yet been created. After reviewing the list of resources to be created, execute the plan. Wait for an AVAILABLE status before performing operations. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProvisionedProductId</i> The ID of the provisioned product.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainId</i> The domain associated with the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserProfileName</i> The name of the user's profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserProfileArn</i> The Amazon Resource Name (ARN) of the user's profile.<br/>        """
        pass

    def describe_subscribed_workteam(self, WorkteamArn: str) -> DescribeSubscribedWorkteamResponse:
        r"""Gets information about a work team provided by a vendor. It returns details about the subscription with a vendor in the Amazon Web Services Marketplace.

        :param self:
        :param WorkteamArn:  The Amazon Resource Name (ARN) of the subscribed work team to describe.<br/>
        :return: SubscribedWorkteam:  A <code>Workteam</code> instance that contains information about the work team.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ListingId</i> Marketplace product listing ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MarketplaceDescription</i> The description of the vendor from the Amazon Marketplace.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SellerName</i> The name of the vendor in the Amazon Marketplace.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MarketplaceTitle</i> The title of the service provided by the vendor in the Amazon Marketplace.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WorkteamArn</i> The Amazon Resource Name (ARN) of the vendor that you have subscribed.<br/>        """
        pass

    def describe_training_job(self, TrainingJobName: str) -> DescribeTrainingJobResponse:
        r"""Returns information about a training job.  Some of the attributes below only appear if the training job successfully starts. If the training job fails, <code>TrainingJobStatus</code> is <code>Failed</code> and, depending on the <code>FailureReason</code>, attributes like <code>TrainingStartTime</code>, <code>TrainingTimeInSeconds</code>, <code>TrainingEndTime</code>, and <code>BillableTimeInSeconds</code> may not be present in the response.

        :param self:
        :param TrainingJobName:  The name of the training job.<br/>
        :return: Environment:  The environment variables to set in the Docker container.<br/>RetryStrategy:  The number of times to retry the job when the job fails due to an <code>InternalServerError</code>.:<br/>ProfilingStatus:  Profiling status of a training job.<br/>ProfilerRuleEvaluationStatuses:  Evaluation status of Debugger rules for profiling on a training job.<br/>ProfilerRuleConfigurations:  Configuration information for Debugger rules for profiling system and framework metrics.<br/>ProfilerConfig:  Configuration information for Debugger system monitoring, framework profiling, and storage paths.:<br/>DebugRuleEvaluationStatuses:  Evaluation status of Debugger rules for debugging on a training job.<br/>TensorBoardOutputConfig:  Configuration of storage locations for the Debugger TensorBoard output data.:<br/>DebugRuleConfigurations:  Configuration information for Debugger rules for debugging output tensors.<br/>ExperimentConfig:  Associates a SageMaker job as a trial component with an experiment and trial. Specified when you call the following APIs: <ul> <li>  <a>CreateProcessingJob</a>  </li> <li>  <a>CreateTrainingJob</a>  </li> <li>  <a>CreateTransformJob</a>  </li> </ul>:<br/>DebugHookConfig:  Configuration information for the Debugger hook parameters, metric and tensor collections, and storage paths. To learn more about how to configure the <code>DebugHookConfig</code> parameter, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/debugger-createtrainingjob-api.html">Use the SageMaker and Debugger Configuration API Operations to Create, Update, and Debug Your Training Job</a>.:<br/>BillableTimeInSeconds:  The billable time in seconds. Billable time refers to the absolute wall-clock time. Multiply <code>BillableTimeInSeconds</code> by the number of instances (<code>InstanceCount</code>) in your training cluster to get the total compute time Amazon SageMaker will bill you if you run distributed training. The formula is as follows: <code>BillableTimeInSeconds * InstanceCount</code> . You can calculate the savings from using managed spot training using the formula <code>(1 - BillableTimeInSeconds / TrainingTimeInSeconds) * 100</code>. For example, if <code>BillableTimeInSeconds</code> is 100 and <code>TrainingTimeInSeconds</code> is 500, the savings is 80%.<br/>TrainingTimeInSeconds:  The training time in seconds.<br/>CheckpointConfig:  Contains information about the output location for managed spot training checkpoint data. :<br/>EnableManagedSpotTraining:  A Boolean indicating whether managed spot training is enabled (<code>True</code>) or not (<code>False</code>).<br/>EnableInterContainerTrafficEncryption:  To encrypt all communications between ML compute instances in distributed training, choose <code>True</code>. Encryption provides greater security for distributed training, but training might take longer. How long it takes depends on the amount of communication between compute instances, especially if you use a deep learning algorithms in distributed training.<br/>EnableNetworkIsolation:  If you want to allow inbound or outbound network calls, except for calls between peers within a training cluster for distributed training, choose <code>True</code>. If you enable network isolation for training jobs that are configured to use a VPC, Amazon SageMaker downloads and uploads customer data and model artifacts through the specified VPC, but the training container does not have network access.<br/>FinalMetricDataList:  A collection of <code>MetricData</code> objects that specify the names, values, and dates and times that the training algorithm emitted to Amazon CloudWatch.<br/>SecondaryStatusTransitions:  A history of all of the secondary statuses that the training job has transitioned through.<br/>LastModifiedTime:  A timestamp that indicates when the status of the training job was last modified.<br/>TrainingEndTime:  Indicates the time when the training job ends on training instances. You are billed for the time interval between the value of <code>TrainingStartTime</code> and this time. For successful jobs and stopped jobs, this is the time after model artifacts are uploaded. For failed jobs, this is the time when Amazon SageMaker detects a job failure.<br/>TrainingStartTime:  Indicates the time when the training job starts on training instances. You are billed for the time interval between this time and the value of <code>TrainingEndTime</code>. The start time in CloudWatch Logs might be later than this time. The difference is due to the time it takes to download the training data and to the size of the training container.<br/>CreationTime:  A timestamp that indicates when the training job was created.<br/>StoppingCondition:  Specifies a limit to how long a model training job can run. It also specifies how long a managed Spot training job has to complete. When the job reaches the time limit, Amazon SageMaker ends the training job. Use this API to cap model training costs. To stop a job, Amazon SageMaker sends the algorithm the <code>SIGTERM</code> signal, which delays job termination for 120 seconds. Algorithms can use this 120-second window to save the model artifacts, so the results of training are not lost. :<br/>VpcConfig:  A <a>VpcConfig</a> object that specifies the VPC that this training job has access to. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/train-vpc.html">Protect Training Jobs by Using an Amazon Virtual Private Cloud</a>.:<br/>ResourceConfig:  Resources, including ML compute instances and ML storage volumes, that are configured for model training. :<br/>OutputDataConfig:  The S3 path where model artifacts that you configured when creating the job are stored. Amazon SageMaker creates subfolders for model artifacts. :<br/>InputDataConfig:  An array of <code>Channel</code> objects that describes each data input channel. <br/>RoleArn:  The Amazon Web Services Identity and Access Management (IAM) role configured for the training job. <br/>AlgorithmSpecification:  Information about the algorithm used for training, and algorithm metadata. :<br/>HyperParameters:  Algorithm-specific parameters. <br/>FailureReason:  If the training job failed, the reason it failed. <br/>SecondaryStatus:   Provides detailed information about the state of the training job. For detailed information on the secondary status of the training job, see <code>StatusMessage</code> under <a>SecondaryStatusTransition</a>. Amazon SageMaker provides primary statuses and secondary statuses that apply to each of them: <dl> <dt>InProgress</dt> <dd> <ul> <li>  <code>Starting</code> - Starting the training job. </li> <li>  <code>Downloading</code> - An optional stage for algorithms that support <code>File</code> training input mode. It indicates that data is being downloaded to the ML storage volumes. </li> <li>  <code>Training</code> - Training is in progress. </li> <li>  <code>Interrupted</code> - The job stopped because the managed spot training instances were interrupted.  </li> <li>  <code>Uploading</code> - Training is complete and the model artifacts are being uploaded to the S3 location. </li> </ul> </dd> <dt>Completed</dt> <dd> <ul> <li>  <code>Completed</code> - The training job has completed. </li> </ul> </dd> <dt>Failed</dt> <dd> <ul> <li>  <code>Failed</code> - The training job has failed. The reason for the failure is returned in the <code>FailureReason</code> field of <code>DescribeTrainingJobResponse</code>. </li> </ul> </dd> <dt>Stopped</dt> <dd> <ul> <li>  <code>MaxRuntimeExceeded</code> - The job stopped because it exceeded the maximum allowed runtime. </li> <li>  <code>MaxWaitTimeExceeded</code> - The job stopped because it exceeded the maximum allowed wait time. </li> <li>  <code>Stopped</code> - The training job has stopped. </li> </ul> </dd> <dt>Stopping</dt> <dd> <ul> <li>  <code>Stopping</code> - Stopping the training job. </li> </ul> </dd> </dl> <important> Valid values for <code>SecondaryStatus</code> are subject to change.  </important> We no longer support the following secondary statuses: <ul> <li>  <code>LaunchingMLInstances</code>  </li> <li>  <code>PreparingTraining</code>  </li> <li>  <code>DownloadingTrainingImage</code>  </li> </ul><br/>TrainingJobStatus:  The status of the training job. Amazon SageMaker provides the following training job statuses: <ul> <li>  <code>InProgress</code> - The training is in progress. </li> <li>  <code>Completed</code> - The training job has completed. </li> <li>  <code>Failed</code> - The training job has failed. To see the reason for the failure, see the <code>FailureReason</code> field in the response to a <code>DescribeTrainingJobResponse</code> call. </li> <li>  <code>Stopping</code> - The training job is stopping. </li> <li>  <code>Stopped</code> - The training job has stopped. </li> </ul> For more detailed information, see <code>SecondaryStatus</code>. <br/>ModelArtifacts:  Information about the Amazon S3 location that is configured for storing model artifacts. :<br/>AutoMLJobArn:  The Amazon Resource Name (ARN) of an AutoML job.<br/>LabelingJobArn:  The Amazon Resource Name (ARN) of the Amazon SageMaker Ground Truth labeling job that created the transform or training job.<br/>TuningJobArn:  The Amazon Resource Name (ARN) of the associated hyperparameter tuning job if the training job was launched by a hyperparameter tuning job.<br/>TrainingJobArn:  The Amazon Resource Name (ARN) of the training job.<br/>TrainingJobName:   Name of the model training job. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3ModelArtifacts</i> The path of the S3 object that contains the model artifacts. For example, <code>s3://bucket-name/keynameprefix/model.tar.gz</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableSageMakerMetricsTimeSeries</i> To generate and save time-series metrics during training, set to <code>true</code>. The default is <code>false</code> and time-series metrics aren't generated except in the following cases: <ul> <li> You use one of the Amazon SageMaker built-in algorithms </li> <li> You use one of the following <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/pre-built-containers-frameworks-deep-learning.html">Prebuilt Amazon SageMaker Docker Images</a>: <ul> <li> Tensorflow (version &gt;= 1.15) </li> <li> MXNet (version &gt;= 1.6) </li> <li> PyTorch (version &gt;= 1.3) </li> </ul> </li> <li> You specify at least one <a>MetricDefinition</a>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MetricDefinitions</i> A list of metric definition objects. Each object specifies the metric name and regular expressions used to parse algorithm logs. Amazon SageMaker publishes each metric to Amazon CloudWatch.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TrainingInputMode</i> The input mode that the algorithm supports. For the input modes that Amazon SageMaker algorithms support, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/algos.html">Algorithms</a>. If an algorithm supports the <code>File</code> input mode, Amazon SageMaker downloads the training data from S3 to the provisioned ML storage Volume, and mounts the directory to docker volume for training container. If an algorithm supports the <code>Pipe</code> input mode, Amazon SageMaker streams data directly from S3 to the container.   In File mode, make sure you provision ML storage volume with sufficient capacity to accommodate the data download from S3. In addition to the training data, the ML storage volume also stores the output model. The algorithm container use ML storage volume to also store intermediate information, if any.   For distributed algorithms using File mode, training data is distributed uniformly, and your training duration is predictable if the input data objects size is approximately same. Amazon SageMaker does not split the files any further for model training. If the object sizes are skewed, training won't be optimal as the data distribution is also skewed where one host in a training cluster is overloaded, thus becoming bottleneck in training. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AlgorithmName</i> The name of the algorithm resource to use for the training job. This must be an algorithm resource that you created or subscribe to on Amazon Web Services Marketplace. If you specify a value for this parameter, you can't specify a value for <code>TrainingImage</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TrainingImage</i> The registry path of the Docker image that contains the training algorithm. For information about docker registry paths for built-in algorithms, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-algo-docker-registry-paths.html">Algorithms Provided by Amazon SageMaker: Common Parameters</a>. Amazon SageMaker supports both <code>registry/repository[:tag]</code> and <code>registry/repository[@digest]</code> image path formats. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms.html">Using Your Own Algorithms with Amazon SageMaker</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3OutputPath</i> Identifies the S3 path where you want Amazon SageMaker to store the model artifacts. For example, <code>s3://bucket-name/key-name-prefix</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The Amazon Web Services Key Management Service (Amazon Web Services KMS) key that Amazon SageMaker uses to encrypt the model artifacts at rest using Amazon S3 server-side encryption. The <code>KmsKeyId</code> can be any of the following formats:  <ul> <li> // KMS Key ID  <code>"1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> <li> // Amazon Resource Name (ARN) of a KMS Key  <code>"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> <li> // KMS Key Alias  <code>"alias/ExampleAlias"</code>  </li> <li> // Amazon Resource Name (ARN) of a KMS Key Alias  <code>"arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias"</code>  </li> </ul> If you use a KMS key ID or an alias of your master key, the Amazon SageMaker execution role must include permissions to call <code>kms:Encrypt</code>. If you don't provide a KMS key ID, Amazon SageMaker uses the default KMS key for Amazon S3 for your role's account. Amazon SageMaker uses server-side encryption with KMS-managed keys for <code>OutputDataConfig</code>. If you use a bucket policy with an <code>s3:PutObject</code> permission that only allows objects with server-side encryption, set the condition key of <code>s3:x-amz-server-side-encryption</code> to <code>"aws:kms"</code>. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html">KMS-Managed Encryption Keys</a> in the <i>Amazon Simple Storage Service Developer Guide.</i>  The KMS key policy must grant permission to the IAM role that you specify in your <code>CreateTrainingJob</code>, <code>CreateTransformJob</code>, or <code>CreateHyperParameterTuningJob</code> requests. For more information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html">Using Key Policies in Amazon Web Services KMS</a> in the <i>Amazon Web Services Key Management Service Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VolumeKmsKeyId</i> The Amazon Web Services KMS key that Amazon SageMaker uses to encrypt data on the storage volume attached to the ML compute instance(s) that run the training job. <note> Certain Nitro-based instances include local storage, dependent on the instance type. Local storage volumes are encrypted using a hardware module on the instance. You can't request a <code>VolumeKmsKeyId</code> when using an instance type with local storage. For a list of instance types that support local instance storage, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#instance-store-volumes">Instance Store Volumes</a>. For more information about local instance storage encryption, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ssd-instance-store.html">SSD Instance Store Volumes</a>. </note> The <code>VolumeKmsKeyId</code> can be in any of the following formats: <ul> <li> // KMS Key ID  <code>"1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> <li> // Amazon Resource Name (ARN) of a KMS Key  <code>"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VolumeSizeInGB</i> The size of the ML storage volume that you want to provision.  ML storage volumes store model artifacts and incremental states. Training algorithms might also use the ML storage volume for scratch space. If you want to store the training data in the ML storage volume, choose <code>File</code> as the <code>TrainingInputMode</code> in the algorithm specification.  You must specify sufficient ML storage for your scenario.  <note>  Amazon SageMaker supports only the General Purpose SSD (gp2) ML storage volume type.  </note> <note> Certain Nitro-based instances include local storage with a fixed total size, dependent on the instance type. When using these instances for training, Amazon SageMaker mounts the local instance storage instead of Amazon EBS gp2 storage. You can't request a <code>VolumeSizeInGB</code> greater than the total size of the local instance storage. For a list of instance types that support local instance storage, including the total size per instance type, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#instance-store-volumes">Instance Store Volumes</a>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceCount</i> The number of ML compute instances to use. For distributed training, provide a value greater than 1. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceType</i> The ML compute instance type. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Subnets</i> The ID of the subnets in the VPC to which you want to connect your training job or model. For information about the availability of specific instance types, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/instance-types-az.html">Supported Instance Types and Availability Zones</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> The VPC security group IDs, in the form sg-xxxxxxxx. Specify the security groups for the VPC that is specified in the <code>Subnets</code> field.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxWaitTimeInSeconds</i> The maximum length of time, in seconds, that a managed Spot training job has to complete. It is the amount of time spent waiting for Spot capacity plus the amount of time the job can run. It must be equal to or greater than <code>MaxRuntimeInSeconds</code>. If the job does not complete during this time, Amazon SageMaker ends the job. When <code>RetryStrategy</code> is specified in the job request, <code>MaxWaitTimeInSeconds</code> specifies the maximum time for all of the attempts in total, not each individual attempt.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxRuntimeInSeconds</i> The maximum length of time, in seconds, that a training or compilation job can run. If the job does not complete during this time, Amazon SageMaker ends the job. When <code>RetryStrategy</code> is specified in the job request, <code>MaxRuntimeInSeconds</code> specifies the maximum time for all of the attempts in total, not each individual attempt. The default value is 1 day. The maximum value is 28 days.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LocalPath</i> (Optional) The local directory where checkpoints are written. The default directory is <code>/opt/ml/checkpoints/</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Uri</i> Identifies the S3 path where you want Amazon SageMaker to store checkpoints. For example, <code>s3://bucket-name/key-name-prefix</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CollectionConfigurations</i> Configuration information for Debugger tensor collections. To learn more about how to configure the <code>CollectionConfiguration</code> parameter, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/debugger-createtrainingjob-api.html">Use the SageMaker and Debugger Configuration API Operations to Create, Update, and Debug Your Training Job</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HookParameters</i> Configuration information for the Debugger hook parameters.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3OutputPath</i> Path to Amazon S3 storage location for metrics and tensors.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LocalPath</i> Path to local storage location for metrics and tensors. Defaults to <code>/opt/ml/output/tensors/</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TrialComponentDisplayName</i> The display name for the trial component. If this key isn't specified, the display name is the trial component name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TrialName</i> The name of an existing trial to associate the trial component with. If not specified, a new trial is created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExperimentName</i> The name of an existing experiment to associate the trial component with.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3OutputPath</i> Path to Amazon S3 storage location for TensorBoard output.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LocalPath</i> Path to local storage location for tensorBoard output. Defaults to <code>/opt/ml/output/tensorboard</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProfilingParameters</i> Configuration information for capturing framework metrics. Available key strings for different profiling options are <code>DetailedProfilingConfig</code>, <code>PythonProfilingConfig</code>, and <code>DataLoaderProfilingConfig</code>. The following codes are configuration structures for the <code>ProfilingParameters</code> parameter. To learn more about how to configure the <code>ProfilingParameters</code> parameter, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/debugger-createtrainingjob-api.html">Use the SageMaker and Debugger Configuration API Operations to Create, Update, and Debug Your Training Job</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProfilingIntervalInMilliseconds</i> A time interval for capturing system metrics in milliseconds. Available values are 100, 200, 500, 1000 (1 second), 5000 (5 seconds), and 60000 (1 minute) milliseconds. The default value is 500 milliseconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3OutputPath</i> Path to Amazon S3 storage location for system and framework metrics.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaximumRetryAttempts</i> The number of times to retry the job. When the job is retried, it's <code>SecondaryStatus</code> is changed to <code>STARTING</code>.<br/>        """
        pass

    def describe_transform_job(self, TransformJobName: str) -> DescribeTransformJobResponse:
        r"""Returns information about a transform job.

        :param self:
        :param TransformJobName:  The name of the transform job that you want to view details of.<br/>
        :return: ExperimentConfig:  Associates a SageMaker job as a trial component with an experiment and trial. Specified when you call the following APIs: <ul> <li>  <a>CreateProcessingJob</a>  </li> <li>  <a>CreateTrainingJob</a>  </li> <li>  <a>CreateTransformJob</a>  </li> </ul>:<br/>DataProcessing:  The data structure used to specify the data to be used for inference in a batch transform job and to associate the data that is relevant to the prediction results in the output. The input filter provided allows you to exclude input data that is not needed for inference in a batch transform job. The output filter provided allows you to include input data relevant to interpreting the predictions in the output from the job. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/batch-transform-data-processing.html">Associate Prediction Results with their Corresponding Input Records</a>.:<br/>AutoMLJobArn:  The Amazon Resource Name (ARN) of the AutoML transform job.<br/>LabelingJobArn:  The Amazon Resource Name (ARN) of the Amazon SageMaker Ground Truth labeling job that created the transform or training job.<br/>TransformEndTime:  Indicates when the transform job has been completed, or has stopped or failed. You are billed for the time interval between this time and the value of <code>TransformStartTime</code>.<br/>TransformStartTime:  Indicates when the transform job starts on ML instances. You are billed for the time interval between this time and the value of <code>TransformEndTime</code>.<br/>CreationTime:  A timestamp that shows when the transform Job was created.<br/>TransformResources:  Describes the resources, including ML instance types and ML instance count, to use for the transform job.:<br/>TransformOutput:  Identifies the Amazon S3 location where you want Amazon SageMaker to save the results from the transform job.:<br/>TransformInput:  Describes the dataset to be transformed and the Amazon S3 location where it is stored.:<br/>Environment:  The environment variables to set in the Docker container. We support up to 16 key and values entries in the map.<br/>BatchStrategy:  Specifies the number of records to include in a mini-batch for an HTTP inference request. A <i>record</i> <i/> is a single unit of input data that inference can be made on. For example, a single line in a CSV file is a record.  To enable the batch strategy, you must set <code>SplitType</code> to <code>Line</code>, <code>RecordIO</code>, or <code>TFRecord</code>.<br/>MaxPayloadInMB:  The maximum payload size, in MB, used in the transform job.<br/>ModelClientConfig:  The timeout and maximum number of retries for processing a transform job invocation.:<br/>MaxConcurrentTransforms:  The maximum number of parallel requests on each instance node that can be launched in a transform job. The default value is 1.<br/>ModelName:  The name of the model used in the transform job.<br/>FailureReason:  If the transform job failed, <code>FailureReason</code> describes why it failed. A transform job creates a log file, which includes error messages, and stores it as an Amazon S3 object. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/logging-cloudwatch.html">Log Amazon SageMaker Events with Amazon CloudWatch</a>.<br/>TransformJobStatus:  The status of the transform job. If the transform job failed, the reason is returned in the <code>FailureReason</code> field.<br/>TransformJobArn:  The Amazon Resource Name (ARN) of the transform job.<br/>TransformJobName:  The name of the transform job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InvocationsMaxRetries</i> The maximum number of retries when invocation requests are failing.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InvocationsTimeoutInSeconds</i> The timeout value in seconds for an invocation request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SplitType</i> The method to use to split the transform job's data files into smaller batches. Splitting is necessary when the total size of each object is too large to fit in a single request. You can also use data splitting to improve performance by processing multiple concurrent mini-batches. The default value for <code>SplitType</code> is <code>None</code>, which indicates that input data files are not split, and request payloads contain the entire contents of an input object. Set the value of this parameter to <code>Line</code> to split records on a newline character boundary. <code>SplitType</code> also supports a number of record-oriented binary data formats. Currently, the supported record formats are: <ul> <li> RecordIO </li> <li> TFRecord </li> </ul> When splitting is enabled, the size of a mini-batch depends on the values of the <code>BatchStrategy</code> and <code>MaxPayloadInMB</code> parameters. When the value of <code>BatchStrategy</code> is <code>MultiRecord</code>, Amazon SageMaker sends the maximum number of records in each request, up to the <code>MaxPayloadInMB</code> limit. If the value of <code>BatchStrategy</code> is <code>SingleRecord</code>, Amazon SageMaker sends individual records in each request. <note> Some data formats represent a record as a binary payload wrapped with extra padding bytes. When splitting is applied to a binary data format, padding is removed if the value of <code>BatchStrategy</code> is set to <code>SingleRecord</code>. Padding is not removed if the value of <code>BatchStrategy</code> is set to <code>MultiRecord</code>. For more information about <code>RecordIO</code>, see <a href="https://mxnet.apache.org/api/faq/recordio">Create a Dataset Using RecordIO</a> in the MXNet documentation. For more information about <code>TFRecord</code>, see <a href="https://www.tensorflow.org/guide/data#consuming_tfrecord_data">Consuming TFRecord data</a> in the TensorFlow documentation. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CompressionType</i> If your transform data is compressed, specify the compression type. Amazon SageMaker automatically decompresses the data for the transform job accordingly. The default value is <code>None</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ContentType</i> The multipurpose internet mail extension (MIME) type of the data. Amazon SageMaker uses the MIME type with each http call to transfer data to the transform job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataSource</i> Describes the location of the channel data, which is, the S3 location of the input data that the model can consume.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DataSource</b>: Describes the location of the channel data, which is, the S3 location of the input data that the model can consume.<br/>The S3 location of the data source that is associated with a channel.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3DataSource</b>: The S3 location of the data source that is associated with a channel.&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The Amazon Web Services Key Management Service (Amazon Web Services KMS) key that Amazon SageMaker uses to encrypt the model artifacts at rest using Amazon S3 server-side encryption. The <code>KmsKeyId</code> can be any of the following formats:  <ul> <li> Key ID: <code>1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> <li> Key ARN: <code>arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> <li> Alias name: <code>alias/ExampleAlias</code>  </li> <li> Alias name ARN: <code>arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias</code>  </li> </ul> If you don't provide a KMS key ID, Amazon SageMaker uses the default KMS key for Amazon S3 for your role's account. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html">KMS-Managed Encryption Keys</a> in the <i>Amazon Simple Storage Service Developer Guide.</i>  The KMS key policy must grant permission to the IAM role that you specify in your <a>CreateModel</a> request. For more information, see <a href="http://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html">Using Key Policies in Amazon Web Services KMS</a> in the <i>Amazon Web Services Key Management Service Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssembleWith</i> Defines how to assemble the results of the transform job as a single S3 object. Choose a format that is most convenient to you. To concatenate the results in binary format, specify <code>None</code>. To add a newline character at the end of every transformed record, specify <code>Line</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Accept</i> The MIME type used to specify the output data. Amazon SageMaker uses the MIME type with each http call to transfer data from the transform job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3OutputPath</i> The Amazon S3 path where you want Amazon SageMaker to store the results of the transform job. For example, <code>s3://bucket-name/key-name-prefix</code>. For every S3 object used as input for the transform job, batch transform stores the transformed data with an .<code>out</code> suffix in a corresponding subfolder in the location in the output prefix. For example, for the input data stored at <code>s3://bucket-name/input-name-prefix/dataset01/data.csv</code>, batch transform stores the transformed data at <code>s3://bucket-name/output-name-prefix/input-name-prefix/data.csv.out</code>. Batch transform doesn't upload partially processed objects. For an input S3 object that contains multiple records, it creates an .<code>out</code> file only if the transform job succeeds on the entire file. When the input contains multiple S3 objects, the batch transform job processes the listed S3 objects and uploads only the output for successfully processed objects. If any object fails in the transform job batch transform marks the job as failed to prompt investigation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VolumeKmsKeyId</i> The Amazon Web Services Key Management Service (Amazon Web Services KMS) key that Amazon SageMaker uses to encrypt model data on the storage volume attached to the ML compute instance(s) that run the batch transform job. <note> Certain Nitro-based instances include local storage, dependent on the instance type. Local storage volumes are encrypted using a hardware module on the instance. You can't request a <code>VolumeKmsKeyId</code> when using an instance type with local storage. For a list of instance types that support local instance storage, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#instance-store-volumes">Instance Store Volumes</a>. For more information about local instance storage encryption, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ssd-instance-store.html">SSD Instance Store Volumes</a>. </note>  The <code>VolumeKmsKeyId</code> can be any of the following formats: <ul> <li> Key ID: <code>1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> <li> Key ARN: <code>arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> <li> Alias name: <code>alias/ExampleAlias</code>  </li> <li> Alias name ARN: <code>arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceCount</i> The number of ML compute instances to use in the transform job. For distributed transform jobs, specify a value greater than 1. The default value is <code>1</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceType</i> The ML compute instance type for the transform job. If you are using built-in algorithms to transform moderately sized datasets, we recommend using ml.m4.xlarge or <code>ml.m5.large</code>instance types.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JoinSource</i> Specifies the source of the data to join with the transformed data. The valid values are <code>None</code> and <code>Input</code>. The default value is <code>None</code>, which specifies not to join the input with the transformed data. If you want the batch transform job to join the original input data with the transformed data, set <code>JoinSource</code> to <code>Input</code>. You can specify <code>OutputFilter</code> as an additional filter to select a portion of the joined dataset and store it in the output file. For JSON or JSONLines objects, such as a JSON array, Amazon SageMaker adds the transformed data to the input JSON object in an attribute called <code>SageMakerOutput</code>. The joined result for JSON must be a key-value pair object. If the input is not a key-value pair object, Amazon SageMaker creates a new JSON file. In the new JSON file, and the input data is stored under the <code>SageMakerInput</code> key and the results are stored in <code>SageMakerOutput</code>. For CSV data, Amazon SageMaker takes each row as a JSON array and joins the transformed data with the input by appending each transformed row to the end of the input. The joined data has the original input data followed by the transformed data and the output is a CSV file. For information on how joining in applied, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/batch-transform-data-processing.html#batch-transform-data-processing-workflow">Workflow for Associating Inferences with Input Records</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OutputFilter</i> A <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/batch-transform-data-processing.html#data-processing-operators">JSONPath</a> expression used to select a portion of the joined dataset to save in the output file for a batch transform job. If you want Amazon SageMaker to store the entire input dataset in the output file, leave the default value, <code>$</code>. If you specify indexes that aren't within the dimension size of the joined dataset, you get an error. Examples: <code>"$"</code>, <code>"$[0,5:]"</code>, <code>"$['id','SageMakerOutput']"</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InputFilter</i> A <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/batch-transform-data-processing.html#data-processing-operators">JSONPath</a> expression used to select a portion of the input data to pass to the algorithm. Use the <code>InputFilter</code> parameter to exclude fields, such as an ID column, from the input. If you want Amazon SageMaker to pass the entire input dataset to the algorithm, accept the default value <code>$</code>. Examples: <code>"$"</code>, <code>"$[1:]"</code>, <code>"$.features"</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TrialComponentDisplayName</i> The display name for the trial component. If this key isn't specified, the display name is the trial component name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TrialName</i> The name of an existing trial to associate the trial component with. If not specified, a new trial is created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExperimentName</i> The name of an existing experiment to associate the trial component with.<br/>        """
        pass

    def describe_trial(self, TrialName: str) -> DescribeTrialResponse:
        r"""Provides a list of a trial's properties.

        :param self:
        :param TrialName:  The name of the trial to describe.<br/>
        :return: MetadataProperties:  Metadata properties of the tracking entity, trial, or trial component.:<br/>LastModifiedBy:  Who last modified the trial.:<br/>LastModifiedTime:  When the trial was last modified.<br/>CreatedBy:  Who created the trial.:<br/>CreationTime:  When the trial was created.<br/>Source:  The Amazon Resource Name (ARN) of the source and, optionally, the job type.:<br/>ExperimentName:  The name of the experiment the trial is part of.<br/>DisplayName:  The name of the trial as displayed. If <code>DisplayName</code> isn't specified, <code>TrialName</code> is displayed.<br/>TrialArn:  The Amazon Resource Name (ARN) of the trial.<br/>TrialName:  The name of the trial.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceType</i> The source job type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceArn</i> The Amazon Resource Name (ARN) of the source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainId</i> The domain associated with the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserProfileName</i> The name of the user's profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserProfileArn</i> The Amazon Resource Name (ARN) of the user's profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainId</i> The domain associated with the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserProfileName</i> The name of the user's profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserProfileArn</i> The Amazon Resource Name (ARN) of the user's profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProjectId</i> The project ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GeneratedBy</i> The entity this entity was generated by.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Repository</i> The repository.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CommitId</i> The commit ID.<br/>        """
        pass

    def describe_trial_component(self, TrialComponentName: str) -> DescribeTrialComponentResponse:
        r"""Provides a list of a trials component's properties.

        :param self:
        :param TrialComponentName:  The name of the trial component to describe.<br/>
        :return: Metrics:  The metrics for the component.<br/>MetadataProperties:  Metadata properties of the tracking entity, trial, or trial component.:<br/>OutputArtifacts:  The output artifacts of the component.<br/>InputArtifacts:  The input artifacts of the component.<br/>Parameters:  The hyperparameters of the component.<br/>LastModifiedBy:  Who last modified the component.:<br/>LastModifiedTime:  When the component was last modified.<br/>CreatedBy:  Who created the component.:<br/>CreationTime:  When the component was created.<br/>EndTime:  When the component ended.<br/>StartTime:  When the component started.<br/>Status:  The status of the component. States include: <ul> <li> InProgress </li> <li> Completed </li> <li> Failed </li> </ul>:<br/>Source:  The Amazon Resource Name (ARN) of the source and, optionally, the job type.:<br/>DisplayName:  The name of the component as displayed. If <code>DisplayName</code> isn't specified, <code>TrialComponentName</code> is displayed.<br/>TrialComponentArn:  The Amazon Resource Name (ARN) of the trial component.<br/>TrialComponentName:  The name of the trial component.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceType</i> The source job type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceArn</i> The source ARN.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> If the component failed, a message describing why.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PrimaryStatus</i> The status of the trial component.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainId</i> The domain associated with the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserProfileName</i> The name of the user's profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserProfileArn</i> The Amazon Resource Name (ARN) of the user's profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainId</i> The domain associated with the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserProfileName</i> The name of the user's profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserProfileArn</i> The Amazon Resource Name (ARN) of the user's profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProjectId</i> The project ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GeneratedBy</i> The entity this entity was generated by.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Repository</i> The repository.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CommitId</i> The commit ID.<br/>        """
        pass

    def describe_user_profile(self, UserProfileName: str, DomainId: str) -> DescribeUserProfileResponse:
        r"""Describes a user profile. For more information, see <code>CreateUserProfile</code>.

        :param self:
        :param UserProfileName:  The user profile name. This value is not case sensitive.<br/>DomainId:  The domain ID.<br/>
        :return: UserSettings:  A collection of settings.:<br/>SingleSignOnUserValue:  The SSO user value.<br/>SingleSignOnUserIdentifier:  The SSO user identifier.<br/>FailureReason:  The failure reason.<br/>CreationTime:  The creation time.<br/>LastModifiedTime:  The last modified time.<br/>Status:  The status.<br/>HomeEfsFileSystemUid:  The ID of the user's profile in the Amazon Elastic File System (EFS) volume.<br/>UserProfileName:  The user profile name.<br/>UserProfileArn:  The user profile Amazon Resource Name (ARN).<br/>DomainId:  The ID of the domain that contains the profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TensorBoardAppSettings</i> The TensorBoard app settings.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TensorBoardAppSettings</b>: The TensorBoard app settings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KernelGatewayAppSettings</i> The kernel gateway app settings.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>KernelGatewayAppSettings</b>: The kernel gateway app settings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JupyterServerAppSettings</i> The Jupyter server's app settings.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>JupyterServerAppSettings</b>: The Jupyter server's app settings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SharingSettings</i> Specifies options for sharing SageMaker Studio notebooks.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SharingSettings</b>: Specifies options for sharing SageMaker Studio notebooks.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroups</i> The security groups for the Amazon Virtual Private Cloud (VPC) that Studio uses for communication. Optional when the <code>CreateDomain.AppNetworkAccessType</code> parameter is set to <code>PublicInternetOnly</code>. Required when the <code>CreateDomain.AppNetworkAccessType</code> parameter is set to <code>VpcOnly</code>. Amazon SageMaker adds a security group to allow NFS traffic from SageMaker Studio. Therefore, the number of security groups that you can specify is one less than the maximum number shown.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExecutionRole</i> The execution role for the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3KmsKeyId</i> When <code>NotebookOutputOption</code> is <code>Allowed</code>, the Amazon Web Services Key Management Service (KMS) encryption key ID used to encrypt the notebook cell output in the Amazon S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3OutputPath</i> When <code>NotebookOutputOption</code> is <code>Allowed</code>, the Amazon S3 bucket used to store the shared notebook snapshots.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NotebookOutputOption</i> Whether to include the notebook cell output when sharing the notebook. The default is <code>Disabled</code>.<br/>The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the JupyterServer app.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DefaultResourceSpec</b>: The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the JupyterServer app.The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the KernelGateway app.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DefaultResourceSpec</b>: The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the KernelGateway app.The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DefaultResourceSpec</b>: The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance.        """
        pass

    def describe_workforce(self, WorkforceName: str) -> DescribeWorkforceResponse:
        r"""Lists private workforce information, including workforce name, Amazon Resource Name (ARN), and, if applicable, allowed IP address ranges (<a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html">CIDRs</a>). Allowable IP address ranges are the IP addresses that workers can use to access tasks.  <important> This operation applies only to private workforces. </important>

        :param self:
        :param WorkforceName:  The name of the private workforce whose access you want to restrict. <code>WorkforceName</code> is automatically set to <code>default</code> when a workforce is created and cannot be modified. <br/>
        :return: Workforce:  A single private workforce, which is automatically created when you create your first private work team. You can create one private work force in each Amazon Web Services Region. By default, any workforce-related API operation used in a specific region will apply to the workforce created in that region. To learn how to create a private workforce, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sms-workforce-create-private.html">Create a Private Workforce</a>.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreateDate</i> The date that the workforce is created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OidcConfig</i> The configuration of an OIDC Identity Provider (IdP) private workforce.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>OidcConfig</b>: The configuration of an OIDC Identity Provider (IdP) private workforce.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CognitoConfig</i> The configuration of an Amazon Cognito workforce. A single Cognito workforce is created using and corresponds to a single <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools.html"> Amazon Cognito user pool</a>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CognitoConfig</b>: The configuration of an Amazon Cognito workforce. A single Cognito workforce is created using and corresponds to a single <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools.html"> Amazon Cognito user pool</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubDomain</i> The subdomain for your OIDC Identity Provider.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceIpConfig</i> A list of one to ten IP address ranges (<a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html">CIDRs</a>) to be added to the workforce allow list. By default, a workforce isn't restricted to specific IP addresses.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SourceIpConfig</b>: A list of one to ten IP address ranges (<a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html">CIDRs</a>) to be added to the workforce allow list. By default, a workforce isn't restricted to specific IP addresses.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdatedDate</i> The most recent date that was used to successfully add one or more IP address ranges (<a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html">CIDRs</a>) to a private workforce's allow list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WorkforceArn</i> The Amazon Resource Name (ARN) of the private workforce.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WorkforceName</i> The name of the private workforce.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Cidrs</i> A list of one to ten <a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html">Classless Inter-Domain Routing</a> (CIDR) values. Maximum: Ten CIDR values <note> The following Length Constraints apply to individual CIDR values in the CIDR value list. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClientId</i> The client ID for your Amazon Cognito user pool.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UserPool</i> A <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools.html"> user pool</a> is a user directory in Amazon Cognito. With a user pool, your users can sign in to your web or mobile app through Amazon Cognito. Your users can also sign in through social identity providers like Google, Facebook, Amazon, or Apple, and through SAML identity providers.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>JwksUri</i> The OIDC IdP JSON Web Key Set (Jwks) URI used to configure your private workforce.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LogoutEndpoint</i> The OIDC IdP logout endpoint used to configure your private workforce.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UserInfoEndpoint</i> The OIDC IdP user information endpoint used to configure your private workforce.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TokenEndpoint</i> The OIDC IdP token endpoint used to configure your private workforce.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AuthorizationEndpoint</i> The OIDC IdP authorization endpoint used to configure your private workforce.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Issuer</i> The OIDC IdP issuer used to configure your private workforce.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClientId</i> The OIDC IdP client ID used to configure your private workforce.<br/>        """
        pass

    def describe_workteam(self, WorkteamName: str) -> DescribeWorkteamResponse:
        r"""Gets information about a specific work team. You can see information such as the create date, the last updated date, membership information, and the work team's Amazon Resource Name (ARN).

        :param self:
        :param WorkteamName:  The name of the work team to return a description of.<br/>
        :return: Workteam:  A <code>Workteam</code> instance that contains information about the work team. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NotificationConfiguration</i> Configures SNS notifications of available or expiring work items for work teams.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>NotificationConfiguration</b>: Configures SNS notifications of available or expiring work items for work teams.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdatedDate</i> The date and time that the work team was last updated (timestamp).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreateDate</i> The date and time that the work team was created (timestamp).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubDomain</i> The URI of the labeling job's user interface. Workers open this URI to start labeling your data objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A description of the work team.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProductListingIds</i> The Amazon Marketplace identifier for a vendor's work team.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WorkforceArn</i> The Amazon Resource Name (ARN) of the workforce.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WorkteamArn</i> The Amazon Resource Name (ARN) that identifies the work team.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MemberDefinitions</i> A list of <code>MemberDefinition</code> objects that contains objects that identify the workers that make up the work team.  Workforces can be created using Amazon Cognito or your own OIDC Identity Provider (IdP). For private workforces created using Amazon Cognito use <code>CognitoMemberDefinition</code>. For workforces created using your own OIDC identity provider (IdP) use <code>OidcMemberDefinition</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WorkteamName</i> The name of the work team.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NotificationTopicArn</i> The ARN for the SNS topic to which notifications should be published.<br/>        """
        pass

    def disable_sagemaker_servicecatalog_portfolio(self) -> DisableSagemakerServicecatalogPortfolioOutput:
        r"""Disables using Service Catalog in SageMaker. Service Catalog is used to create SageMaker projects.

        :param self:
        :param 
        :return:         """
        pass

    def disassociate_trial_component(self, TrialName: str, TrialComponentName: str) -> DisassociateTrialComponentResponse:
        r"""Disassociates a trial component from a trial. This doesn't effect other trials the component is associated with. Before you can delete a component, you must disassociate the component from all trials it is associated with. To associate a trial component with a trial, call the <a>AssociateTrialComponent</a> API. To get a list of the trials a component is associated with, use the <a>Search</a> API. Specify <code>ExperimentTrialComponent</code> for the <code>Resource</code> parameter. The list appears in the response under <code>Results.TrialComponent.Parents</code>.

        :param self:
        :param TrialName:  The name of the trial to disassociate from.<br/>TrialComponentName:  The name of the component to disassociate from the trial.<br/>
        :return: TrialArn:  The Amazon Resource Name (ARN) of the trial.<br/>TrialComponentArn:  The ARN of the trial component.<br/>        """
        pass

    def enable_sagemaker_servicecatalog_portfolio(self) -> EnableSagemakerServicecatalogPortfolioOutput:
        r"""Enables using Service Catalog in SageMaker. Service Catalog is used to create SageMaker projects.

        :param self:
        :param 
        :return:         """
        pass

    def get_device_fleet_report(self, DeviceFleetName: str) -> GetDeviceFleetReportResponse:
        r"""Describes a fleet.

        :param self:
        :param DeviceFleetName:  The name of the fleet.<br/>
        :return: ModelStats:  Status of model on device.<br/>AgentVersions:  The versions of Edge Manager agent deployed on the fleet.<br/>DeviceStats:  Status of devices.:<br/>ReportGenerated:  Timestamp of when the report was generated.<br/>Description:  Description of the fleet.<br/>OutputConfig:  The output configuration for storing sample data collected by the fleet.:<br/>DeviceFleetName:  The name of the fleet.<br/>DeviceFleetArn:  The Amazon Resource Name (ARN) of the device.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PresetDeploymentConfig</i> The configuration used to create deployment artifacts. Specify configuration options with a JSON string. The available configuration options for each type are: <ul> <li>  <code>ComponentName</code> (optional) - Name of the GreenGrass V2 component. If not specified, the default name generated consists of "SagemakerEdgeManager" and the name of your SageMaker Edge Manager packaging job. </li> <li>  <code>ComponentDescription</code> (optional) - Description of the component. </li> <li>  <code>ComponentVersion</code> (optional) - The version of the component. <note> Amazon Web Services IoT Greengrass uses semantic versions for components. Semantic versions follow a<i> major.minor.patch</i> number system. For example, version 1.0.0 represents the first major release for a component. For more information, see the <a href="https://semver.org/">semantic version specification</a>. </note> </li> <li>  <code>PlatformOS</code> (optional) - The name of the operating system for the platform. Supported platforms include Windows and Linux. </li> <li>  <code>PlatformArchitecture</code> (optional) - The processor architecture for the platform.  Supported architectures Windows include: Windows32_x86, Windows64_x64. Supported architectures for Linux include: Linux x86_64, Linux ARMV8. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PresetDeploymentType</i> The deployment type SageMaker Edge Manager will create. Currently only supports Amazon Web Services IoT Greengrass Version 2 components.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The Amazon Web Services Key Management Service (Amazon Web Services KMS) key that Amazon SageMaker uses to encrypt data on the storage volume after compilation job. If you don't provide a KMS key ID, Amazon SageMaker uses the default KMS key for Amazon S3 for your role's account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3OutputLocation</i> The Amazon Simple Storage (S3) bucker URI.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RegisteredDeviceCount</i> The number of registered devices.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConnectedDeviceCount</i> The number of devices connected with a heartbeat.<br/>        """
        pass

    def get_model_package_group_policy(self, ModelPackageGroupName: str) -> GetModelPackageGroupPolicyOutput:
        r"""Gets a resource policy that manages access for a model group. For information about resource policies, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_identity-vs-resource.html">Identity-based policies and resource-based policies</a> in the <i>Amazon Web Services Identity and Access Management User Guide.</i>.

        :param self:
        :param ModelPackageGroupName:  The name of the model group for which to get the resource policy.<br/>
        :return: ResourcePolicy:  The resource policy for the model group.<br/>        """
        pass

    def get_sagemaker_servicecatalog_portfolio_status(self) -> GetSagemakerServicecatalogPortfolioStatusOutput:
        r"""Gets the status of Service Catalog in SageMaker. Service Catalog is used to create SageMaker projects.

        :param self:
        :param 
        :return: Status:  Whether Service Catalog is enabled or disabled in SageMaker.<br/>        """
        pass

    def get_search_suggestions(self, Resource: str, SuggestionQuery: SuggestionQuery=None) -> GetSearchSuggestionsResponse:
        r"""An auto-complete API for the search functionality in the Amazon SageMaker console. It returns suggestions of possible matches for the property name to use in <code>Search</code> queries. Provides suggestions for <code>HyperParameters</code>, <code>Tags</code>, and <code>Metrics</code>.

        :param self:
        :param SuggestionQuery:  Limits the property names that are included in the response.:<br/>Resource:  The name of the Amazon SageMaker resource to search for.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PropertyNameQuery</i> Defines a property name hint. Only property names that begin with the specified hint are included in the response.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PropertyNameQuery</b>: Defines a property name hint. Only property names that begin with the specified hint are included in the response.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PropertyNameHint</i> Text that begins a property's name.<br/>
        :return: PropertyNameSuggestions:  A list of property names for a <code>Resource</code> that match a <code>SuggestionQuery</code>.<br/>        """
        pass

    def list_actions(self, SourceUri: str=None, ActionType: str=None, CreatedAfter: Timestamp=None, CreatedBefore: Timestamp=None, SortBy: str=None, SortOrder: str=None, NextToken: str=None, MaxResults: int=None) -> ListActionsResponse:
        r"""Lists the actions in your account and their properties.

        :param self:
        :param MaxResults:  The maximum number of actions to return in the response. The default value is 10.<br/>NextToken:  If the previous call to <code>ListActions</code> didn't return the full set of actions, the call returns a token for getting the next set of actions.<br/>SortOrder:  The sort order. The default value is <code>Descending</code>.<br/>SortBy:  The property used to sort results. The default value is <code>CreationTime</code>.<br/>CreatedBefore:  A filter that returns only actions created on or before the specified time.<br/>CreatedAfter:  A filter that returns only actions created on or after the specified time.<br/>ActionType:  A filter that returns only actions of the specified type.<br/>SourceUri:  A filter that returns only actions with the specified source URI.<br/>
        :return: NextToken:  A token for getting the next set of actions, if there are any.<br/>ActionSummaries:  A list of actions and their properties.<br/>        """
        pass

    def list_algorithms(self, CreationTimeAfter: CreationTime=None, CreationTimeBefore: CreationTime=None, MaxResults: int=None, NameContains: str=None, NextToken: str=None, SortBy: str=None, SortOrder: str=None) -> ListAlgorithmsOutput:
        r"""Lists the machine learning algorithms that have been created.

        :param self:
        :param SortOrder:  The sort order for the results. The default is <code>Ascending</code>.<br/>SortBy:  The parameter by which to sort the results. The default is <code>CreationTime</code>.<br/>NextToken:  If the response to a previous <code>ListAlgorithms</code> request was truncated, the response includes a <code>NextToken</code>. To retrieve the next set of algorithms, use the token in the next request.<br/>NameContains:  A string in the algorithm name. This filter returns only algorithms whose name contains the specified string.<br/>MaxResults:  The maximum number of algorithms to return in the response.<br/>CreationTimeBefore:  A filter that returns only algorithms created before the specified time (timestamp).<br/>CreationTimeAfter:  A filter that returns only algorithms created after the specified time (timestamp).<br/>
        :return: NextToken:  If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of algorithms, use it in the subsequent request.<br/>AlgorithmSummaryList:  &gt;An array of <code>AlgorithmSummary</code> objects, each of which lists an algorithm.<br/>        """
        pass

    def list_app_image_configs(self, MaxResults: int=None, NextToken: str=None, NameContains: str=None, CreationTimeBefore: Timestamp=None, CreationTimeAfter: Timestamp=None, ModifiedTimeBefore: Timestamp=None, ModifiedTimeAfter: Timestamp=None, SortBy: str=None, SortOrder: str=None) -> ListAppImageConfigsResponse:
        r"""Lists the AppImageConfigs in your account and their properties. The list can be filtered by creation time or modified time, and whether the AppImageConfig name contains a specified string.

        :param self:
        :param SortOrder:  The sort order. The default value is <code>Descending</code>.<br/>SortBy:  The property used to sort results. The default value is <code>CreationTime</code>.<br/>ModifiedTimeAfter:  A filter that returns only AppImageConfigs modified on or after the specified time.<br/>ModifiedTimeBefore:  A filter that returns only AppImageConfigs modified on or before the specified time.<br/>CreationTimeAfter:  A filter that returns only AppImageConfigs created on or after the specified time.<br/>CreationTimeBefore:  A filter that returns only AppImageConfigs created on or before the specified time.<br/>NameContains:  A filter that returns only AppImageConfigs whose name contains the specified string.<br/>NextToken:  If the previous call to <code>ListImages</code> didn't return the full set of AppImageConfigs, the call returns a token for getting the next set of AppImageConfigs.<br/>MaxResults:  The maximum number of AppImageConfigs to return in the response. The default value is 10. <br/>
        :return: AppImageConfigs:  A list of AppImageConfigs and their properties.<br/>NextToken:  A token for getting the next set of AppImageConfigs, if there are any.<br/>        """
        pass

    def list_apps(self, NextToken: str=None, MaxResults: int=None, SortOrder: str=None, SortBy: str=None, DomainIdEquals: str=None, UserProfileNameEquals: str=None) -> ListAppsResponse:
        r"""Lists apps.

        :param self:
        :param UserProfileNameEquals:  A parameter to search by user profile name.<br/>DomainIdEquals:  A parameter to search for the domain ID.<br/>SortBy:  The parameter by which to sort the results. The default is CreationTime.<br/>SortOrder:  The sort order for the results. The default is Ascending.<br/>MaxResults:  Returns a list up to a specified limit.<br/>NextToken:  If the previous response was truncated, you will receive this token. Use it in your next request to receive the next set of results.<br/>
        :return: NextToken:  If the previous response was truncated, you will receive this token. Use it in your next request to receive the next set of results.<br/>Apps:  The list of apps.<br/>        """
        pass

    def list_artifacts(self, SourceUri: str=None, ArtifactType: str=None, CreatedAfter: Timestamp=None, CreatedBefore: Timestamp=None, SortBy: str=None, SortOrder: str=None, NextToken: str=None, MaxResults: int=None) -> ListArtifactsResponse:
        r"""Lists the artifacts in your account and their properties.

        :param self:
        :param MaxResults:  The maximum number of artifacts to return in the response. The default value is 10.<br/>NextToken:  If the previous call to <code>ListArtifacts</code> didn't return the full set of artifacts, the call returns a token for getting the next set of artifacts.<br/>SortOrder:  The sort order. The default value is <code>Descending</code>.<br/>SortBy:  The property used to sort results. The default value is <code>CreationTime</code>.<br/>CreatedBefore:  A filter that returns only artifacts created on or before the specified time.<br/>CreatedAfter:  A filter that returns only artifacts created on or after the specified time.<br/>ArtifactType:  A filter that returns only artifacts of the specified type.<br/>SourceUri:  A filter that returns only artifacts with the specified source URI.<br/>
        :return: NextToken:  A token for getting the next set of artifacts, if there are any.<br/>ArtifactSummaries:  A list of artifacts and their properties.<br/>        """
        pass

    def list_associations(self, SourceArn: str=None, DestinationArn: str=None, SourceType: str=None, DestinationType: str=None, AssociationType: str=None, CreatedAfter: Timestamp=None, CreatedBefore: Timestamp=None, SortBy: str=None, SortOrder: str=None, NextToken: str=None, MaxResults: int=None) -> ListAssociationsResponse:
        r"""Lists the associations in your account and their properties.

        :param self:
        :param MaxResults:  The maximum number of associations to return in the response. The default value is 10.<br/>NextToken:  If the previous call to <code>ListAssociations</code> didn't return the full set of associations, the call returns a token for getting the next set of associations.<br/>SortOrder:  The sort order. The default value is <code>Descending</code>.<br/>SortBy:  The property used to sort results. The default value is <code>CreationTime</code>.<br/>CreatedBefore:  A filter that returns only associations created on or before the specified time.<br/>CreatedAfter:  A filter that returns only associations created on or after the specified time.<br/>AssociationType:  A filter that returns only associations of the specified type.<br/>DestinationType:  A filter that returns only associations with the specified destination type.<br/>SourceType:  A filter that returns only associations with the specified source type.<br/>DestinationArn:  A filter that returns only associations with the specified destination Amazon Resource Name (ARN).<br/>SourceArn:  A filter that returns only associations with the specified source ARN.<br/>
        :return: NextToken:  A token for getting the next set of associations, if there are any.<br/>AssociationSummaries:  A list of associations and their properties.<br/>        """
        pass

    def list_auto_ml_jobs(self, CreationTimeAfter: Timestamp=None, CreationTimeBefore: Timestamp=None, LastModifiedTimeAfter: Timestamp=None, LastModifiedTimeBefore: Timestamp=None, NameContains: str=None, StatusEquals: str=None, SortOrder: str=None, SortBy: str=None, MaxResults: int=None, NextToken: str=None) -> ListAutoMLJobsResponse:
        r"""Request a list of jobs.

        :param self:
        :param NextToken:  If the previous response was truncated, you receive this token. Use it in your next request to receive the next set of results.<br/>MaxResults:  Request a list of jobs up to a specified limit.<br/>SortBy:  The parameter by which to sort the results. The default is <code>Name</code>.<br/>SortOrder:  The sort order for the results. The default is <code>Descending</code>.<br/>StatusEquals:  Request a list of jobs, using a filter for status.<br/>NameContains:  Request a list of jobs, using a search filter for name.<br/>LastModifiedTimeBefore:  Request a list of jobs, using a filter for time.<br/>LastModifiedTimeAfter:  Request a list of jobs, using a filter for time.<br/>CreationTimeBefore:  Request a list of jobs, using a filter for time.<br/>CreationTimeAfter:  Request a list of jobs, using a filter for time.<br/>
        :return: NextToken:  If the previous response was truncated, you receive this token. Use it in your next request to receive the next set of results.<br/>AutoMLJobSummaries:  Returns a summary list of jobs.<br/>        """
        pass

    def list_candidates_for_auto_ml_job(self, AutoMLJobName: str, StatusEquals: str=None, CandidateNameEquals: str=None, SortOrder: str=None, SortBy: str=None, MaxResults: int=None, NextToken: str=None) -> ListCandidatesForAutoMLJobResponse:
        r"""List the candidates created for the job.

        :param self:
        :param NextToken:  If the previous response was truncated, you receive this token. Use it in your next request to receive the next set of results.<br/>MaxResults:  List the job's candidates up to a specified limit.<br/>SortBy:  The parameter by which to sort the results. The default is <code>Descending</code>.<br/>SortOrder:  The sort order for the results. The default is <code>Ascending</code>.<br/>CandidateNameEquals:  List the candidates for the job and filter by candidate name.<br/>StatusEquals:  List the candidates for the job and filter by status.<br/>AutoMLJobName:  List the candidates created for the job by providing the job's name.<br/>
        :return: NextToken:  If the previous response was truncated, you receive this token. Use it in your next request to receive the next set of results.<br/>Candidates:  Summaries about the <code>AutoMLCandidates</code>.<br/>        """
        pass

    def list_code_repositories(self, CreationTimeAfter: CreationTime=None, CreationTimeBefore: CreationTime=None, LastModifiedTimeAfter: Timestamp=None, LastModifiedTimeBefore: Timestamp=None, MaxResults: int=None, NameContains: str=None, NextToken: str=None, SortBy: str=None, SortOrder: str=None) -> ListCodeRepositoriesOutput:
        r"""Gets a list of the Git repositories in your account.

        :param self:
        :param SortOrder:  The sort order for results. The default is <code>Ascending</code>.<br/>SortBy:  The field to sort results by. The default is <code>Name</code>.<br/>NextToken:  If the result of a <code>ListCodeRepositoriesOutput</code> request was truncated, the response includes a <code>NextToken</code>. To get the next set of Git repositories, use the token in the next request.<br/>NameContains:  A string in the Git repositories name. This filter returns only repositories whose name contains the specified string.<br/>MaxResults:  The maximum number of Git repositories to return in the response.<br/>LastModifiedTimeBefore:  A filter that returns only Git repositories that were last modified before the specified time.<br/>LastModifiedTimeAfter:  A filter that returns only Git repositories that were last modified after the specified time.<br/>CreationTimeBefore:  A filter that returns only Git repositories that were created before the specified time.<br/>CreationTimeAfter:  A filter that returns only Git repositories that were created after the specified time.<br/>
        :return: NextToken:  If the result of a <code>ListCodeRepositoriesOutput</code> request was truncated, the response includes a <code>NextToken</code>. To get the next set of Git repositories, use the token in the next request.<br/>CodeRepositorySummaryList:  Gets a list of summaries of the Git repositories. Each summary specifies the following values for the repository:  <ul> <li> Name </li> <li> Amazon Resource Name (ARN) </li> <li> Creation time </li> <li> Last modified time </li> <li> Configuration information, including the URL location of the repository and the ARN of the Amazon Web Services Secrets Manager secret that contains the credentials used to access the repository. </li> </ul><br/>        """
        pass

    def list_compilation_jobs(self, NextToken: str=None, MaxResults: int=None, CreationTimeAfter: CreationTime=None, CreationTimeBefore: CreationTime=None, LastModifiedTimeAfter: LastModifiedTime=None, LastModifiedTimeBefore: LastModifiedTime=None, NameContains: str=None, StatusEquals: str=None, SortBy: str=None, SortOrder: str=None) -> ListCompilationJobsResponse:
        r"""Lists model compilation jobs that satisfy various filters. To create a model compilation job, use <a>CreateCompilationJob</a>. To get information about a particular model compilation job you have created, use <a>DescribeCompilationJob</a>.

        :param self:
        :param SortOrder:  The sort order for results. The default is <code>Ascending</code>.<br/>SortBy:  The field by which to sort results. The default is <code>CreationTime</code>.<br/>StatusEquals:  A filter that retrieves model compilation jobs with a specific <a>DescribeCompilationJobResponse$CompilationJobStatus</a> status.<br/>NameContains:  A filter that returns the model compilation jobs whose name contains a specified string.<br/>LastModifiedTimeBefore:  A filter that returns the model compilation jobs that were modified before a specified time.<br/>LastModifiedTimeAfter:  A filter that returns the model compilation jobs that were modified after a specified time.<br/>CreationTimeBefore:  A filter that returns the model compilation jobs that were created before a specified time.<br/>CreationTimeAfter:  A filter that returns the model compilation jobs that were created after a specified time. <br/>MaxResults:  The maximum number of model compilation jobs to return in the response.<br/>NextToken:  If the result of the previous <code>ListCompilationJobs</code> request was truncated, the response includes a <code>NextToken</code>. To retrieve the next set of model compilation jobs, use the token in the next request.<br/>
        :return: NextToken:  If the response is truncated, Amazon SageMaker returns this <code>NextToken</code>. To retrieve the next set of model compilation jobs, use this token in the next request.<br/>CompilationJobSummaries:  An array of <a>CompilationJobSummary</a> objects, each describing a model compilation job. <br/>        """
        pass

    def list_contexts(self, SourceUri: str=None, ContextType: str=None, CreatedAfter: Timestamp=None, CreatedBefore: Timestamp=None, SortBy: str=None, SortOrder: str=None, NextToken: str=None, MaxResults: int=None) -> ListContextsResponse:
        r"""Lists the contexts in your account and their properties.

        :param self:
        :param MaxResults:  The maximum number of contexts to return in the response. The default value is 10.<br/>NextToken:  If the previous call to <code>ListContexts</code> didn't return the full set of contexts, the call returns a token for getting the next set of contexts.<br/>SortOrder:  The sort order. The default value is <code>Descending</code>.<br/>SortBy:  The property used to sort results. The default value is <code>CreationTime</code>.<br/>CreatedBefore:  A filter that returns only contexts created on or before the specified time.<br/>CreatedAfter:  A filter that returns only contexts created on or after the specified time.<br/>ContextType:  A filter that returns only contexts of the specified type.<br/>SourceUri:  A filter that returns only contexts with the specified source URI.<br/>
        :return: NextToken:  A token for getting the next set of contexts, if there are any.<br/>ContextSummaries:  A list of contexts and their properties.<br/>        """
        pass

    def list_data_quality_job_definitions(self, EndpointName: str=None, SortBy: str=None, SortOrder: str=None, NextToken: str=None, MaxResults: int=None, NameContains: str=None, CreationTimeBefore: Timestamp=None, CreationTimeAfter: Timestamp=None) -> ListDataQualityJobDefinitionsResponse:
        r"""Lists the data quality job definitions in your account.

        :param self:
        :param CreationTimeAfter:  A filter that returns only data quality monitoring job definitions created after the specified time.<br/>CreationTimeBefore:  A filter that returns only data quality monitoring job definitions created before the specified time.<br/>NameContains:  A string in the data quality monitoring job definition name. This filter returns only data quality monitoring job definitions whose name contains the specified string.<br/>MaxResults:  The maximum number of data quality monitoring job definitions to return in the response.<br/>NextToken:  If the result of the previous <code>ListDataQualityJobDefinitions</code> request was truncated, the response includes a <code>NextToken</code>. To retrieve the next set of transform jobs, use the token in the next request.&gt;<br/>SortOrder:  The sort order for results. The default is <code>Descending</code>.<br/>SortBy:  The field to sort results by. The default is <code>CreationTime</code>.<br/>EndpointName:  A filter that lists the data quality job definitions associated with the specified endpoint.<br/>
        :return: NextToken:  If the result of the previous <code>ListDataQualityJobDefinitions</code> request was truncated, the response includes a <code>NextToken</code>. To retrieve the next set of data quality monitoring job definitions, use the token in the next request.<br/>JobDefinitionSummaries:  A list of data quality monitoring job definitions.<br/>        """
        pass

    def list_device_fleets(self, NextToken: str=None, MaxResults: int=None, CreationTimeAfter: Timestamp=None, CreationTimeBefore: Timestamp=None, LastModifiedTimeAfter: Timestamp=None, LastModifiedTimeBefore: Timestamp=None, NameContains: str=None, SortBy: str=None, SortOrder: str=None) -> ListDeviceFleetsResponse:
        r"""Returns a list of devices in the fleet.

        :param self:
        :param SortOrder:  What direction to sort in.<br/>SortBy:  The column to sort by.<br/>NameContains:  Filter for fleets containing this name in their fleet device name.<br/>LastModifiedTimeBefore:  Select fleets where the job was updated before X<br/>LastModifiedTimeAfter:  Select fleets where the job was updated after X<br/>CreationTimeBefore:  Filter fleets where the edge packaging job was created before specified time.<br/>CreationTimeAfter:  Filter fleets where packaging job was created after specified time.<br/>MaxResults:  The maximum number of results to select.<br/>NextToken:  The response from the last list when returning a list large enough to need tokening.<br/>
        :return: NextToken:  The response from the last list when returning a list large enough to need tokening.<br/>DeviceFleetSummaries:  Summary of the device fleet.<br/>        """
        pass

    def list_devices(self, NextToken: str=None, MaxResults: int=None, LatestHeartbeatAfter: Timestamp=None, ModelName: str=None, DeviceFleetName: str=None) -> ListDevicesResponse:
        r"""A list of devices.

        :param self:
        :param DeviceFleetName:  Filter for fleets containing this name in their device fleet name.<br/>ModelName:  A filter that searches devices that contains this name in any of their models.<br/>LatestHeartbeatAfter:  Select fleets where the job was updated after X<br/>MaxResults:  Maximum number of results to select.<br/>NextToken:  The response from the last list when returning a list large enough to need tokening.<br/>
        :return: NextToken:  The response from the last list when returning a list large enough to need tokening.<br/>DeviceSummaries:  Summary of devices.<br/>        """
        pass

    def list_domains(self, NextToken: str=None, MaxResults: int=None) -> ListDomainsResponse:
        r"""Lists the domains.

        :param self:
        :param MaxResults:  Returns a list up to a specified limit.<br/>NextToken:  If the previous response was truncated, you will receive this token. Use it in your next request to receive the next set of results.<br/>
        :return: NextToken:  If the previous response was truncated, you will receive this token. Use it in your next request to receive the next set of results.<br/>Domains:  The list of domains.<br/>        """
        pass

    def list_edge_packaging_jobs(self, NextToken: str=None, MaxResults: int=None, CreationTimeAfter: Timestamp=None, CreationTimeBefore: Timestamp=None, LastModifiedTimeAfter: Timestamp=None, LastModifiedTimeBefore: Timestamp=None, NameContains: str=None, ModelNameContains: str=None, StatusEquals: str=None, SortBy: str=None, SortOrder: str=None) -> ListEdgePackagingJobsResponse:
        r"""Returns a list of edge packaging jobs.

        :param self:
        :param SortOrder:  What direction to sort by.<br/>SortBy:  Use to specify what column to sort by.<br/>StatusEquals:  The job status to filter for.<br/>ModelNameContains:  Filter for jobs where the model name contains this string.<br/>NameContains:  Filter for jobs containing this name in their packaging job name.<br/>LastModifiedTimeBefore:  Select jobs where the job was updated before specified time.<br/>LastModifiedTimeAfter:  Select jobs where the job was updated after specified time.<br/>CreationTimeBefore:  Select jobs where the job was created before specified time.<br/>CreationTimeAfter:  Select jobs where the job was created after specified time.<br/>MaxResults:  Maximum number of results to select.<br/>NextToken:  The response from the last list when returning a list large enough to need tokening.<br/>
        :return: NextToken:  Token to use when calling the next page of results.<br/>EdgePackagingJobSummaries:  Summaries of edge packaging jobs.<br/>        """
        pass

    def list_endpoint_configs(self, SortBy: str=None, SortOrder: str=None, NextToken: str=None, MaxResults: int=None, NameContains: str=None, CreationTimeBefore: Timestamp=None, CreationTimeAfter: Timestamp=None) -> ListEndpointConfigsOutput:
        r"""Lists endpoint configurations.

        :param self:
        :param CreationTimeAfter:  A filter that returns only endpoint configurations with a creation time greater than or equal to the specified time (timestamp).<br/>CreationTimeBefore:  A filter that returns only endpoint configurations created before the specified time (timestamp).<br/>NameContains:  A string in the endpoint configuration name. This filter returns only endpoint configurations whose name contains the specified string. <br/>MaxResults:  The maximum number of training jobs to return in the response.<br/>NextToken:  If the result of the previous <code>ListEndpointConfig</code> request was truncated, the response includes a <code>NextToken</code>. To retrieve the next set of endpoint configurations, use the token in the next request. <br/>SortOrder:  The sort order for results. The default is <code>Descending</code>.<br/>SortBy:  The field to sort results by. The default is <code>CreationTime</code>.<br/>
        :return: NextToken:   If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of endpoint configurations, use it in the subsequent request <br/>EndpointConfigs:  An array of endpoint configurations.<br/>        """
        pass

    def list_endpoints(self, SortBy: str=None, SortOrder: str=None, NextToken: str=None, MaxResults: int=None, NameContains: str=None, CreationTimeBefore: Timestamp=None, CreationTimeAfter: Timestamp=None, LastModifiedTimeBefore: Timestamp=None, LastModifiedTimeAfter: Timestamp=None, StatusEquals: str=None) -> ListEndpointsOutput:
        r"""Lists endpoints.

        :param self:
        :param StatusEquals:   A filter that returns only endpoints with the specified status.<br/>LastModifiedTimeAfter:   A filter that returns only endpoints that were modified after the specified timestamp. <br/>LastModifiedTimeBefore:   A filter that returns only endpoints that were modified before the specified timestamp. <br/>CreationTimeAfter:  A filter that returns only endpoints with a creation time greater than or equal to the specified time (timestamp).<br/>CreationTimeBefore:  A filter that returns only endpoints that were created before the specified time (timestamp).<br/>NameContains:  A string in endpoint names. This filter returns only endpoints whose name contains the specified string.<br/>MaxResults:  The maximum number of endpoints to return in the response. This value defaults to 10.<br/>NextToken:  If the result of a <code>ListEndpoints</code> request was truncated, the response includes a <code>NextToken</code>. To retrieve the next set of endpoints, use the token in the next request.<br/>SortOrder:  The sort order for results. The default is <code>Descending</code>.<br/>SortBy:  Sorts the list of results. The default is <code>CreationTime</code>.<br/>
        :return: NextToken:   If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of training jobs, use it in the subsequent request. <br/>Endpoints:   An array or endpoint objects. <br/>        """
        pass

    def list_experiments(self, CreatedAfter: Timestamp=None, CreatedBefore: Timestamp=None, SortBy: str=None, SortOrder: str=None, NextToken: str=None, MaxResults: int=None) -> ListExperimentsResponse:
        r"""Lists all the experiments in your account. The list can be filtered to show only experiments that were created in a specific time range. The list can be sorted by experiment name or creation time.

        :param self:
        :param MaxResults:  The maximum number of experiments to return in the response. The default value is 10.<br/>NextToken:  If the previous call to <code>ListExperiments</code> didn't return the full set of experiments, the call returns a token for getting the next set of experiments.<br/>SortOrder:  The sort order. The default value is <code>Descending</code>.<br/>SortBy:  The property used to sort results. The default value is <code>CreationTime</code>.<br/>CreatedBefore:  A filter that returns only experiments created before the specified time.<br/>CreatedAfter:  A filter that returns only experiments created after the specified time.<br/>
        :return: NextToken:  A token for getting the next set of experiments, if there are any.<br/>ExperimentSummaries:  A list of the summaries of your experiments.<br/>        """
        pass

    def list_feature_groups(self, NameContains: str=None, FeatureGroupStatusEquals: str=None, OfflineStoreStatusEquals: str=None, CreationTimeAfter: CreationTime=None, CreationTimeBefore: CreationTime=None, SortOrder: str=None, SortBy: str=None, MaxResults: int=None, NextToken: str=None) -> ListFeatureGroupsResponse:
        r"""List <code>FeatureGroup</code>s based on given filter and order.

        :param self:
        :param NextToken:  A token to resume pagination of <code>ListFeatureGroups</code> results.<br/>MaxResults:  The maximum number of results returned by <code>ListFeatureGroups</code>.<br/>SortBy:  The value on which the feature group list is sorted.<br/>SortOrder:  The order in which feature groups are listed.<br/>CreationTimeBefore:  Use this parameter to search for <code>FeatureGroups</code>s created before a specific date and time.<br/>CreationTimeAfter:  Use this parameter to search for <code>FeatureGroups</code>s created after a specific date and time.<br/>OfflineStoreStatusEquals:  An <code>OfflineStore</code> status. Filters by <code>OfflineStore</code> status. <br/>FeatureGroupStatusEquals:  A <code>FeatureGroup</code> status. Filters by <code>FeatureGroup</code> status. <br/>NameContains:  A string that partially matches one or more <code>FeatureGroup</code>s names. Filters <code>FeatureGroup</code>s by name. <br/>
        :return: NextToken:  A token to resume pagination of <code>ListFeatureGroups</code> results.<br/>FeatureGroupSummaries:  A summary of feature groups.<br/>        """
        pass

    def list_flow_definitions(self, CreationTimeAfter: Timestamp=None, CreationTimeBefore: Timestamp=None, SortOrder: str=None, NextToken: str=None, MaxResults: int=None) -> ListFlowDefinitionsResponse:
        r"""Returns information about the flow definitions in your account.

        :param self:
        :param MaxResults:  The total number of items to return. If the total number of available items is more than the value specified in <code>MaxResults</code>, then a <code>NextToken</code> will be provided in the output that you can use to resume pagination.<br/>NextToken:  A token to resume pagination.<br/>SortOrder:  An optional value that specifies whether you want the results sorted in <code>Ascending</code> or <code>Descending</code> order.<br/>CreationTimeBefore:  A filter that returns only flow definitions that were created before the specified timestamp.<br/>CreationTimeAfter:  A filter that returns only flow definitions with a creation time greater than or equal to the specified timestamp.<br/>
        :return: NextToken:  A token to resume pagination.<br/>FlowDefinitionSummaries:  An array of objects describing the flow definitions.<br/>        """
        pass

    def list_human_task_uis(self, CreationTimeAfter: Timestamp=None, CreationTimeBefore: Timestamp=None, SortOrder: str=None, NextToken: str=None, MaxResults: int=None) -> ListHumanTaskUisResponse:
        r"""Returns information about the human task user interfaces in your account.

        :param self:
        :param MaxResults:  The total number of items to return. If the total number of available items is more than the value specified in <code>MaxResults</code>, then a <code>NextToken</code> will be provided in the output that you can use to resume pagination.<br/>NextToken:  A token to resume pagination.<br/>SortOrder:  An optional value that specifies whether you want the results sorted in <code>Ascending</code> or <code>Descending</code> order.<br/>CreationTimeBefore:  A filter that returns only human task user interfaces that were created before the specified timestamp.<br/>CreationTimeAfter:  A filter that returns only human task user interfaces with a creation time greater than or equal to the specified timestamp.<br/>
        :return: NextToken:  A token to resume pagination.<br/>HumanTaskUiSummaries:  An array of objects describing the human task user interfaces.<br/>        """
        pass

    def list_hyper_parameter_tuning_jobs(self, NextToken: str=None, MaxResults: int=None, SortBy: str=None, SortOrder: str=None, NameContains: str=None, CreationTimeAfter: Timestamp=None, CreationTimeBefore: Timestamp=None, LastModifiedTimeAfter: Timestamp=None, LastModifiedTimeBefore: Timestamp=None, StatusEquals: str=None) -> ListHyperParameterTuningJobsResponse:
        r"""Gets a list of <a>HyperParameterTuningJobSummary</a> objects that describe the hyperparameter tuning jobs launched in your account.

        :param self:
        :param StatusEquals:  A filter that returns only tuning jobs with the specified status.<br/>LastModifiedTimeBefore:  A filter that returns only tuning jobs that were modified before the specified time.<br/>LastModifiedTimeAfter:  A filter that returns only tuning jobs that were modified after the specified time.<br/>CreationTimeBefore:  A filter that returns only tuning jobs that were created before the specified time.<br/>CreationTimeAfter:  A filter that returns only tuning jobs that were created after the specified time.<br/>NameContains:  A string in the tuning job name. This filter returns only tuning jobs whose name contains the specified string.<br/>SortOrder:  The sort order for results. The default is <code>Ascending</code>.<br/>SortBy:  The field to sort results by. The default is <code>Name</code>.<br/>MaxResults:  The maximum number of tuning jobs to return. The default value is 10.<br/>NextToken:  If the result of the previous <code>ListHyperParameterTuningJobs</code> request was truncated, the response includes a <code>NextToken</code>. To retrieve the next set of tuning jobs, use the token in the next request.<br/>
        :return: NextToken:  If the result of this <code>ListHyperParameterTuningJobs</code> request was truncated, the response includes a <code>NextToken</code>. To retrieve the next set of tuning jobs, use the token in the next request.<br/>HyperParameterTuningJobSummaries:  A list of <a>HyperParameterTuningJobSummary</a> objects that describe the tuning jobs that the <code>ListHyperParameterTuningJobs</code> request returned.<br/>        """
        pass

    def list_image_versions(self, ImageName: str, CreationTimeAfter: Timestamp=None, CreationTimeBefore: Timestamp=None, LastModifiedTimeAfter: Timestamp=None, LastModifiedTimeBefore: Timestamp=None, MaxResults: int=None, NextToken: str=None, SortBy: str=None, SortOrder: str=None) -> ListImageVersionsResponse:
        r"""Lists the versions of a specified image and their properties. The list can be filtered by creation time or modified time.

        :param self:
        :param SortOrder:  The sort order. The default value is <code>DESCENDING</code>.<br/>SortBy:  The property used to sort results. The default value is <code>CREATION_TIME</code>.<br/>NextToken:  If the previous call to <code>ListImageVersions</code> didn't return the full set of versions, the call returns a token for getting the next set of versions.<br/>MaxResults:  The maximum number of versions to return in the response. The default value is 10. <br/>LastModifiedTimeBefore:  A filter that returns only versions modified on or before the specified time.<br/>LastModifiedTimeAfter:  A filter that returns only versions modified on or after the specified time.<br/>ImageName:  The name of the image to list the versions of.<br/>CreationTimeBefore:  A filter that returns only versions created on or before the specified time.<br/>CreationTimeAfter:  A filter that returns only versions created on or after the specified time.<br/>
        :return: NextToken:  A token for getting the next set of versions, if there are any.<br/>ImageVersions:  A list of versions and their properties.<br/>        """
        pass

    def list_images(self, CreationTimeAfter: Timestamp=None, CreationTimeBefore: Timestamp=None, LastModifiedTimeAfter: Timestamp=None, LastModifiedTimeBefore: Timestamp=None, MaxResults: int=None, NameContains: str=None, NextToken: str=None, SortBy: str=None, SortOrder: str=None) -> ListImagesResponse:
        r"""Lists the images in your account and their properties. The list can be filtered by creation time or modified time, and whether the image name contains a specified string.

        :param self:
        :param SortOrder:  The sort order. The default value is <code>DESCENDING</code>.<br/>SortBy:  The property used to sort results. The default value is <code>CREATION_TIME</code>.<br/>NextToken:  If the previous call to <code>ListImages</code> didn't return the full set of images, the call returns a token for getting the next set of images.<br/>NameContains:  A filter that returns only images whose name contains the specified string.<br/>MaxResults:  The maximum number of images to return in the response. The default value is 10. <br/>LastModifiedTimeBefore:  A filter that returns only images modified on or before the specified time.<br/>LastModifiedTimeAfter:  A filter that returns only images modified on or after the specified time.<br/>CreationTimeBefore:  A filter that returns only images created on or before the specified time.<br/>CreationTimeAfter:  A filter that returns only images created on or after the specified time.<br/>
        :return: NextToken:  A token for getting the next set of images, if there are any.<br/>Images:  A list of images and their properties.<br/>        """
        pass

    def list_labeling_jobs(self, CreationTimeAfter: Timestamp=None, CreationTimeBefore: Timestamp=None, LastModifiedTimeAfter: Timestamp=None, LastModifiedTimeBefore: Timestamp=None, MaxResults: int=None, NextToken: str=None, NameContains: str=None, SortBy: str=None, SortOrder: str=None, StatusEquals: str=None) -> ListLabelingJobsResponse:
        r"""Gets a list of labeling jobs.

        :param self:
        :param StatusEquals:  A filter that retrieves only labeling jobs with a specific status.<br/>SortOrder:  The sort order for results. The default is <code>Ascending</code>.<br/>SortBy:  The field to sort results by. The default is <code>CreationTime</code>.<br/>NameContains:  A string in the labeling job name. This filter returns only labeling jobs whose name contains the specified string.<br/>NextToken:  If the result of the previous <code>ListLabelingJobs</code> request was truncated, the response includes a <code>NextToken</code>. To retrieve the next set of labeling jobs, use the token in the next request.<br/>MaxResults:  The maximum number of labeling jobs to return in each page of the response.<br/>LastModifiedTimeBefore:  A filter that returns only labeling jobs modified before the specified time (timestamp).<br/>LastModifiedTimeAfter:  A filter that returns only labeling jobs modified after the specified time (timestamp).<br/>CreationTimeBefore:  A filter that returns only labeling jobs created before the specified time (timestamp).<br/>CreationTimeAfter:  A filter that returns only labeling jobs created after the specified time (timestamp).<br/>
        :return: NextToken:  If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of labeling jobs, use it in the subsequent request.<br/>LabelingJobSummaryList:  An array of <code>LabelingJobSummary</code> objects, each describing a labeling job.<br/>        """
        pass

    def list_labeling_jobs_for_workteam(self, WorkteamArn: str, MaxResults: int=None, NextToken: str=None, CreationTimeAfter: Timestamp=None, CreationTimeBefore: Timestamp=None, JobReferenceCodeContains: str=None, SortBy: str=None, SortOrder: str=None) -> ListLabelingJobsForWorkteamResponse:
        r"""Gets a list of labeling jobs assigned to a specified work team.

        :param self:
        :param SortOrder:  The sort order for results. The default is <code>Ascending</code>.<br/>SortBy:  The field to sort results by. The default is <code>CreationTime</code>.<br/>JobReferenceCodeContains:  A filter the limits jobs to only the ones whose job reference code contains the specified string.<br/>CreationTimeBefore:  A filter that returns only labeling jobs created before the specified time (timestamp).<br/>CreationTimeAfter:  A filter that returns only labeling jobs created after the specified time (timestamp).<br/>NextToken:  If the result of the previous <code>ListLabelingJobsForWorkteam</code> request was truncated, the response includes a <code>NextToken</code>. To retrieve the next set of labeling jobs, use the token in the next request.<br/>MaxResults:  The maximum number of labeling jobs to return in each page of the response.<br/>WorkteamArn:  The Amazon Resource Name (ARN) of the work team for which you want to see labeling jobs for.<br/>
        :return: NextToken:  If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of labeling jobs, use it in the subsequent request.<br/>LabelingJobSummaryList:  An array of <code>LabelingJobSummary</code> objects, each describing a labeling job.<br/>        """
        pass

    def list_model_bias_job_definitions(self, EndpointName: str=None, SortBy: str=None, SortOrder: str=None, NextToken: str=None, MaxResults: int=None, NameContains: str=None, CreationTimeBefore: Timestamp=None, CreationTimeAfter: Timestamp=None) -> ListModelBiasJobDefinitionsResponse:
        r"""Lists model bias jobs definitions that satisfy various filters.

        :param self:
        :param CreationTimeAfter:  A filter that returns only model bias jobs created after a specified time.<br/>CreationTimeBefore:  A filter that returns only model bias jobs created before a specified time.<br/>NameContains:  Filter for model bias jobs whose name contains a specified string.<br/>MaxResults:  The maximum number of model bias jobs to return in the response. The default value is 10.<br/>NextToken:  The token returned if the response is truncated. To retrieve the next set of job executions, use it in the next request.<br/>SortOrder:  Whether to sort the results in <code>Ascending</code> or <code>Descending</code> order. The default is <code>Descending</code>.<br/>SortBy:  Whether to sort results by the <code>Name</code> or <code>CreationTime</code> field. The default is <code>CreationTime</code>.<br/>EndpointName:  Name of the endpoint to monitor for model bias.<br/>
        :return: NextToken:  If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of jobs, use it in the subsequent request.<br/>JobDefinitionSummaries:  A JSON array in which each element is a summary for a model bias jobs.<br/>        """
        pass

    def list_model_explainability_job_definitions(self, EndpointName: str=None, SortBy: str=None, SortOrder: str=None, NextToken: str=None, MaxResults: int=None, NameContains: str=None, CreationTimeBefore: Timestamp=None, CreationTimeAfter: Timestamp=None) -> ListModelExplainabilityJobDefinitionsResponse:
        r"""Lists model explainability job definitions that satisfy various filters.

        :param self:
        :param CreationTimeAfter:  A filter that returns only model explainability jobs created after a specified time.<br/>CreationTimeBefore:  A filter that returns only model explainability jobs created before a specified time.<br/>NameContains:  Filter for model explainability jobs whose name contains a specified string.<br/>MaxResults:  The maximum number of jobs to return in the response. The default value is 10.<br/>NextToken:  The token returned if the response is truncated. To retrieve the next set of job executions, use it in the next request.<br/>SortOrder:  Whether to sort the results in <code>Ascending</code> or <code>Descending</code> order. The default is <code>Descending</code>.<br/>SortBy:  Whether to sort results by the <code>Name</code> or <code>CreationTime</code> field. The default is <code>CreationTime</code>.<br/>EndpointName:  Name of the endpoint to monitor for model explainability.<br/>
        :return: NextToken:  If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of jobs, use it in the subsequent request.<br/>JobDefinitionSummaries:  A JSON array in which each element is a summary for a explainability bias jobs.<br/>        """
        pass

    def list_model_package_groups(self, CreationTimeAfter: CreationTime=None, CreationTimeBefore: CreationTime=None, MaxResults: int=None, NameContains: str=None, NextToken: str=None, SortBy: str=None, SortOrder: str=None) -> ListModelPackageGroupsOutput:
        r"""Gets a list of the model groups in your Amazon Web Services account.

        :param self:
        :param SortOrder:  The sort order for results. The default is <code>Ascending</code>.<br/>SortBy:  The field to sort results by. The default is <code>CreationTime</code>.<br/>NextToken:  If the result of the previous <code>ListModelPackageGroups</code> request was truncated, the response includes a <code>NextToken</code>. To retrieve the next set of model groups, use the token in the next request.<br/>NameContains:  A string in the model group name. This filter returns only model groups whose name contains the specified string.<br/>MaxResults:  The maximum number of results to return in the response.<br/>CreationTimeBefore:  A filter that returns only model groups created before the specified time.<br/>CreationTimeAfter:  A filter that returns only model groups created after the specified time.<br/>
        :return: NextToken:  If the response is truncated, SageMaker returns this token. To retrieve the next set of model groups, use it in the subsequent request.<br/>ModelPackageGroupSummaryList:  A list of summaries of the model groups in your Amazon Web Services account.<br/>        """
        pass

    def list_model_packages(self, CreationTimeAfter: CreationTime=None, CreationTimeBefore: CreationTime=None, MaxResults: int=None, NameContains: str=None, ModelApprovalStatus: str=None, ModelPackageGroupName: str=None, ModelPackageType: str=None, NextToken: str=None, SortBy: str=None, SortOrder: str=None) -> ListModelPackagesOutput:
        r"""Lists the model packages that have been created.

        :param self:
        :param SortOrder:  The sort order for the results. The default is <code>Ascending</code>.<br/>SortBy:  The parameter by which to sort the results. The default is <code>CreationTime</code>.<br/>NextToken:  If the response to a previous <code>ListModelPackages</code> request was truncated, the response includes a <code>NextToken</code>. To retrieve the next set of model packages, use the token in the next request.<br/>ModelPackageType:  A filter that returns onlyl the model packages of the specified type. This can be one of the following values. <ul> <li>  <code>VERSIONED</code> - List only versioned models. </li> <li>  <code>UNVERSIONED</code> - List only unversioined models. </li> <li>  <code>BOTH</code> - List both versioned and unversioned models. </li> </ul><br/>ModelPackageGroupName:  A filter that returns only model versions that belong to the specified model group.<br/>ModelApprovalStatus:  A filter that returns only the model packages with the specified approval status.<br/>NameContains:  A string in the model package name. This filter returns only model packages whose name contains the specified string.<br/>MaxResults:  The maximum number of model packages to return in the response.<br/>CreationTimeBefore:  A filter that returns only model packages created before the specified time (timestamp).<br/>CreationTimeAfter:  A filter that returns only model packages created after the specified time (timestamp).<br/>
        :return: NextToken:  If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of model packages, use it in the subsequent request.<br/>ModelPackageSummaryList:  An array of <code>ModelPackageSummary</code> objects, each of which lists a model package.<br/>        """
        pass

    def list_model_quality_job_definitions(self, EndpointName: str=None, SortBy: str=None, SortOrder: str=None, NextToken: str=None, MaxResults: int=None, NameContains: str=None, CreationTimeBefore: Timestamp=None, CreationTimeAfter: Timestamp=None) -> ListModelQualityJobDefinitionsResponse:
        r"""Gets a list of model quality monitoring job definitions in your account.

        :param self:
        :param CreationTimeAfter:  A filter that returns only model quality monitoring job definitions created after the specified time.<br/>CreationTimeBefore:  A filter that returns only model quality monitoring job definitions created before the specified time.<br/>NameContains:  A string in the transform job name. This filter returns only model quality monitoring job definitions whose name contains the specified string.<br/>MaxResults:  The maximum number of results to return in a call to <code>ListModelQualityJobDefinitions</code>.<br/>NextToken:  If the result of the previous <code>ListModelQualityJobDefinitions</code> request was truncated, the response includes a <code>NextToken</code>. To retrieve the next set of model quality monitoring job definitions, use the token in the next request.<br/>SortOrder:  The sort order for results. The default is <code>Descending</code>.<br/>SortBy:  The field to sort results by. The default is <code>CreationTime</code>.<br/>EndpointName:  A filter that returns only model quality monitoring job definitions that are associated with the specified endpoint.<br/>
        :return: NextToken:  If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of model quality monitoring job definitions, use it in the next request.<br/>JobDefinitionSummaries:  A list of summaries of model quality monitoring job definitions.<br/>        """
        pass

    def list_models(self, SortBy: str=None, SortOrder: str=None, NextToken: str=None, MaxResults: int=None, NameContains: str=None, CreationTimeBefore: Timestamp=None, CreationTimeAfter: Timestamp=None) -> ListModelsOutput:
        r"""Lists models created with the <code>CreateModel</code> API.

        :param self:
        :param CreationTimeAfter:  A filter that returns only models with a creation time greater than or equal to the specified time (timestamp).<br/>CreationTimeBefore:  A filter that returns only models created before the specified time (timestamp).<br/>NameContains:  A string in the training job name. This filter returns only models in the training job whose name contains the specified string.<br/>MaxResults:  The maximum number of models to return in the response.<br/>NextToken:  If the response to a previous <code>ListModels</code> request was truncated, the response includes a <code>NextToken</code>. To retrieve the next set of models, use the token in the next request.<br/>SortOrder:  The sort order for results. The default is <code>Descending</code>.<br/>SortBy:  Sorts the list of results. The default is <code>CreationTime</code>.<br/>
        :return: NextToken:   If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of models, use it in the subsequent request. <br/>Models:  An array of <code>ModelSummary</code> objects, each of which lists a model.<br/>        """
        pass

    def list_monitoring_executions(self, MonitoringScheduleName: str=None, EndpointName: str=None, SortBy: str=None, SortOrder: str=None, NextToken: str=None, MaxResults: int=None, ScheduledTimeBefore: Timestamp=None, ScheduledTimeAfter: Timestamp=None, CreationTimeBefore: Timestamp=None, CreationTimeAfter: Timestamp=None, LastModifiedTimeBefore: Timestamp=None, LastModifiedTimeAfter: Timestamp=None, StatusEquals: str=None, MonitoringJobDefinitionName: str=None, MonitoringTypeEquals: str=None) -> ListMonitoringExecutionsResponse:
        r"""Returns list of all monitoring job executions.

        :param self:
        :param MonitoringTypeEquals:  A filter that returns only the monitoring job runs of the specified monitoring type.<br/>MonitoringJobDefinitionName:  Gets a list of the monitoring job runs of the specified monitoring job definitions.<br/>StatusEquals:  A filter that retrieves only jobs with a specific status.<br/>LastModifiedTimeAfter:  A filter that returns only jobs modified before a specified time.<br/>LastModifiedTimeBefore:  A filter that returns only jobs modified after a specified time.<br/>CreationTimeAfter:  A filter that returns only jobs created after a specified time.<br/>CreationTimeBefore:  A filter that returns only jobs created before a specified time.<br/>ScheduledTimeAfter:  Filter for jobs scheduled after a specified time.<br/>ScheduledTimeBefore:  Filter for jobs scheduled before a specified time.<br/>MaxResults:  The maximum number of jobs to return in the response. The default value is 10.<br/>NextToken:  The token returned if the response is truncated. To retrieve the next set of job executions, use it in the next request.<br/>SortOrder:  Whether to sort the results in <code>Ascending</code> or <code>Descending</code> order. The default is <code>Descending</code>.<br/>SortBy:  Whether to sort results by <code>Status</code>, <code>CreationTime</code>, <code>ScheduledTime</code> field. The default is <code>CreationTime</code>.<br/>EndpointName:  Name of a specific endpoint to fetch jobs for.<br/>MonitoringScheduleName:  Name of a specific schedule to fetch jobs for.<br/>
        :return: NextToken:  If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of jobs, use it in the subsequent reques<br/>MonitoringExecutionSummaries:  A JSON array in which each element is a summary for a monitoring execution.<br/>        """
        pass

    def list_monitoring_schedules(self, EndpointName: str=None, SortBy: str=None, SortOrder: str=None, NextToken: str=None, MaxResults: int=None, NameContains: str=None, CreationTimeBefore: Timestamp=None, CreationTimeAfter: Timestamp=None, LastModifiedTimeBefore: Timestamp=None, LastModifiedTimeAfter: Timestamp=None, StatusEquals: str=None, MonitoringJobDefinitionName: str=None, MonitoringTypeEquals: str=None) -> ListMonitoringSchedulesResponse:
        r"""Returns list of all monitoring schedules.

        :param self:
        :param MonitoringTypeEquals:  A filter that returns only the monitoring schedules for the specified monitoring type.<br/>MonitoringJobDefinitionName:  Gets a list of the monitoring schedules for the specified monitoring job definition.<br/>StatusEquals:  A filter that returns only monitoring schedules modified before a specified time.<br/>LastModifiedTimeAfter:  A filter that returns only monitoring schedules modified after a specified time.<br/>LastModifiedTimeBefore:  A filter that returns only monitoring schedules modified before a specified time.<br/>CreationTimeAfter:  A filter that returns only monitoring schedules created after a specified time.<br/>CreationTimeBefore:  A filter that returns only monitoring schedules created before a specified time.<br/>NameContains:  Filter for monitoring schedules whose name contains a specified string.<br/>MaxResults:  The maximum number of jobs to return in the response. The default value is 10.<br/>NextToken:  The token returned if the response is truncated. To retrieve the next set of job executions, use it in the next request.<br/>SortOrder:  Whether to sort the results in <code>Ascending</code> or <code>Descending</code> order. The default is <code>Descending</code>.<br/>SortBy:  Whether to sort results by <code>Status</code>, <code>CreationTime</code>, <code>ScheduledTime</code> field. The default is <code>CreationTime</code>.<br/>EndpointName:  Name of a specific endpoint to fetch schedules for.<br/>
        :return: NextToken:  If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of jobs, use it in the subsequent request.<br/>MonitoringScheduleSummaries:  A JSON array in which each element is a summary for a monitoring schedule.<br/>        """
        pass

    def list_notebook_instance_lifecycle_configs(self, NextToken: str=None, MaxResults: int=None, SortBy: str=None, SortOrder: str=None, NameContains: str=None, CreationTimeBefore: CreationTime=None, CreationTimeAfter: CreationTime=None, LastModifiedTimeBefore: LastModifiedTime=None, LastModifiedTimeAfter: LastModifiedTime=None) -> ListNotebookInstanceLifecycleConfigsOutput:
        r"""Lists notebook instance lifestyle configurations created with the <a>CreateNotebookInstanceLifecycleConfig</a> API.

        :param self:
        :param LastModifiedTimeAfter:  A filter that returns only lifecycle configurations that were modified after the specified time (timestamp).<br/>LastModifiedTimeBefore:  A filter that returns only lifecycle configurations that were modified before the specified time (timestamp).<br/>CreationTimeAfter:  A filter that returns only lifecycle configurations that were created after the specified time (timestamp).<br/>CreationTimeBefore:  A filter that returns only lifecycle configurations that were created before the specified time (timestamp).<br/>NameContains:  A string in the lifecycle configuration name. This filter returns only lifecycle configurations whose name contains the specified string.<br/>SortOrder:  The sort order for results.<br/>SortBy:  Sorts the list of results. The default is <code>CreationTime</code>.<br/>MaxResults:  The maximum number of lifecycle configurations to return in the response.<br/>NextToken:  If the result of a <code>ListNotebookInstanceLifecycleConfigs</code> request was truncated, the response includes a <code>NextToken</code>. To get the next set of lifecycle configurations, use the token in the next request.<br/>
        :return: NotebookInstanceLifecycleConfigs:  An array of <code>NotebookInstanceLifecycleConfiguration</code> objects, each listing a lifecycle configuration.<br/>NextToken:  If the response is truncated, Amazon SageMaker returns this token. To get the next set of lifecycle configurations, use it in the next request. <br/>        """
        pass

    def list_notebook_instances(self, NextToken: str=None, MaxResults: int=None, SortBy: str=None, SortOrder: str=None, NameContains: str=None, CreationTimeBefore: CreationTime=None, CreationTimeAfter: CreationTime=None, LastModifiedTimeBefore: LastModifiedTime=None, LastModifiedTimeAfter: LastModifiedTime=None, StatusEquals: str=None, NotebookInstanceLifecycleConfigNameContains: str=None, DefaultCodeRepositoryContains: str=None, AdditionalCodeRepositoryEquals: str=None) -> ListNotebookInstancesOutput:
        r"""Returns a list of the Amazon SageMaker notebook instances in the requester's account in an Amazon Web Services Region. 

        :param self:
        :param AdditionalCodeRepositoryEquals:  A filter that returns only notebook instances with associated with the specified git repository.<br/>DefaultCodeRepositoryContains:  A string in the name or URL of a Git repository associated with this notebook instance. This filter returns only notebook instances associated with a git repository with a name that contains the specified string.<br/>NotebookInstanceLifecycleConfigNameContains:  A string in the name of a notebook instances lifecycle configuration associated with this notebook instance. This filter returns only notebook instances associated with a lifecycle configuration with a name that contains the specified string.<br/>StatusEquals:  A filter that returns only notebook instances with the specified status.<br/>LastModifiedTimeAfter:  A filter that returns only notebook instances that were modified after the specified time (timestamp).<br/>LastModifiedTimeBefore:  A filter that returns only notebook instances that were modified before the specified time (timestamp).<br/>CreationTimeAfter:  A filter that returns only notebook instances that were created after the specified time (timestamp).<br/>CreationTimeBefore:  A filter that returns only notebook instances that were created before the specified time (timestamp). <br/>NameContains:  A string in the notebook instances' name. This filter returns only notebook instances whose name contains the specified string.<br/>SortOrder:  The sort order for results. <br/>SortBy:  The field to sort results by. The default is <code>Name</code>.<br/>MaxResults:  The maximum number of notebook instances to return.<br/>NextToken:   If the previous call to the <code>ListNotebookInstances</code> is truncated, the response includes a <code>NextToken</code>. You can use this token in your subsequent <code>ListNotebookInstances</code> request to fetch the next set of notebook instances.  <note> You might specify a filter or a sort order in your request. When response is truncated, you must use the same values for the filer and sort order in the next request.  </note><br/>
        :return: NotebookInstances:  An array of <code>NotebookInstanceSummary</code> objects, one for each notebook instance.<br/>NextToken:  If the response to the previous <code>ListNotebookInstances</code> request was truncated, Amazon SageMaker returns this token. To retrieve the next set of notebook instances, use the token in the next request.<br/>        """
        pass

    def list_pipeline_execution_steps(self, PipelineExecutionArn: str=None, NextToken: str=None, MaxResults: int=None, SortOrder: str=None) -> ListPipelineExecutionStepsResponse:
        r"""Gets a list of <code>PipeLineExecutionStep</code> objects.

        :param self:
        :param SortOrder:  The field by which to sort results. The default is <code>CreatedTime</code>.<br/>MaxResults:  The maximum number of pipeline execution steps to return in the response.<br/>NextToken:  If the result of the previous <code>ListPipelineExecutionSteps</code> request was truncated, the response includes a <code>NextToken</code>. To retrieve the next set of pipeline execution steps, use the token in the next request.<br/>PipelineExecutionArn:  The Amazon Resource Name (ARN) of the pipeline execution.<br/>
        :return: NextToken:  If the result of the previous <code>ListPipelineExecutionSteps</code> request was truncated, the response includes a <code>NextToken</code>. To retrieve the next set of pipeline execution steps, use the token in the next request.<br/>PipelineExecutionSteps:  A list of <code>PipeLineExecutionStep</code> objects. Each <code>PipeLineExecutionStep</code> consists of StepName, StartTime, EndTime, StepStatus, and Metadata. Metadata is an object with properties for each job that contains relevant information about the job created by the step.<br/>        """
        pass

    def list_pipeline_executions(self, PipelineName: str, CreatedAfter: Timestamp=None, CreatedBefore: Timestamp=None, SortBy: str=None, SortOrder: str=None, NextToken: str=None, MaxResults: int=None) -> ListPipelineExecutionsResponse:
        r"""Gets a list of the pipeline executions.

        :param self:
        :param MaxResults:  The maximum number of pipeline executions to return in the response.<br/>NextToken:  If the result of the previous <code>ListPipelineExecutions</code> request was truncated, the response includes a <code>NextToken</code>. To retrieve the next set of pipeline executions, use the token in the next request.<br/>SortOrder:  The sort order for results.<br/>SortBy:  The field by which to sort results. The default is <code>CreatedTime</code>.<br/>CreatedBefore:  A filter that returns the pipeline executions that were created before a specified time.<br/>CreatedAfter:  A filter that returns the pipeline executions that were created after a specified time.<br/>PipelineName:  The name of the pipeline.<br/>
        :return: NextToken:  If the result of the previous <code>ListPipelineExecutions</code> request was truncated, the response includes a <code>NextToken</code>. To retrieve the next set of pipeline executions, use the token in the next request.<br/>PipelineExecutionSummaries:  Contains a sorted list of pipeline execution summary objects matching the specified filters. Each run summary includes the Amazon Resource Name (ARN) of the pipeline execution, the run date, and the status. This list can be empty. <br/>        """
        pass

    def list_pipeline_parameters_for_execution(self, PipelineExecutionArn: str, NextToken: str=None, MaxResults: int=None) -> ListPipelineParametersForExecutionResponse:
        r"""Gets a list of parameters for a pipeline execution.

        :param self:
        :param MaxResults:  The maximum number of parameters to return in the response.<br/>NextToken:  If the result of the previous <code>ListPipelineParametersForExecution</code> request was truncated, the response includes a <code>NextToken</code>. To retrieve the next set of parameters, use the token in the next request.<br/>PipelineExecutionArn:  The Amazon Resource Name (ARN) of the pipeline execution.<br/>
        :return: NextToken:  If the result of the previous <code>ListPipelineParametersForExecution</code> request was truncated, the response includes a <code>NextToken</code>. To retrieve the next set of parameters, use the token in the next request.<br/>PipelineParameters:  Contains a list of pipeline parameters. This list can be empty. <br/>        """
        pass

    def list_pipelines(self, PipelineNamePrefix: str=None, CreatedAfter: Timestamp=None, CreatedBefore: Timestamp=None, SortBy: str=None, SortOrder: str=None, NextToken: str=None, MaxResults: int=None) -> ListPipelinesResponse:
        r"""Gets a list of pipelines.

        :param self:
        :param MaxResults:  The maximum number of pipelines to return in the response.<br/>NextToken:  If the result of the previous <code>ListPipelines</code> request was truncated, the response includes a <code>NextToken</code>. To retrieve the next set of pipelines, use the token in the next request.<br/>SortOrder:  The sort order for results.<br/>SortBy:  The field by which to sort results. The default is <code>CreatedTime</code>.<br/>CreatedBefore:  A filter that returns the pipelines that were created before a specified time.<br/>CreatedAfter:  A filter that returns the pipelines that were created after a specified time.<br/>PipelineNamePrefix:  The prefix of the pipeline name.<br/>
        :return: NextToken:  If the result of the previous <code>ListPipelines</code> request was truncated, the response includes a <code>NextToken</code>. To retrieve the next set of pipelines, use the token in the next request.<br/>PipelineSummaries:  Contains a sorted list of <code>PipelineSummary</code> objects matching the specified filters. Each <code>PipelineSummary</code> consists of PipelineArn, PipelineName, ExperimentName, PipelineDescription, CreationTime, LastModifiedTime, LastRunTime, and RoleArn. This list can be empty. <br/>        """
        pass

    def list_processing_jobs(self, CreationTimeAfter: Timestamp=None, CreationTimeBefore: Timestamp=None, LastModifiedTimeAfter: Timestamp=None, LastModifiedTimeBefore: Timestamp=None, NameContains: str=None, StatusEquals: str=None, SortBy: str=None, SortOrder: str=None, NextToken: str=None, MaxResults: int=None) -> ListProcessingJobsResponse:
        r"""Lists processing jobs that satisfy various filters.

        :param self:
        :param MaxResults:  The maximum number of processing jobs to return in the response.<br/>NextToken:  If the result of the previous <code>ListProcessingJobs</code> request was truncated, the response includes a <code>NextToken</code>. To retrieve the next set of processing jobs, use the token in the next request.<br/>SortOrder:  The sort order for results. The default is <code>Ascending</code>.<br/>SortBy:  The field to sort results by. The default is <code>CreationTime</code>.<br/>StatusEquals:  A filter that retrieves only processing jobs with a specific status.<br/>NameContains:  A string in the processing job name. This filter returns only processing jobs whose name contains the specified string.<br/>LastModifiedTimeBefore:  A filter that returns only processing jobs modified before the specified time.<br/>LastModifiedTimeAfter:  A filter that returns only processing jobs modified after the specified time.<br/>CreationTimeBefore:  A filter that returns only processing jobs created after the specified time.<br/>CreationTimeAfter:  A filter that returns only processing jobs created after the specified time.<br/>
        :return: NextToken:  If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of processing jobs, use it in the subsequent request.<br/>ProcessingJobSummaries:  An array of <code>ProcessingJobSummary</code> objects, each listing a processing job.<br/>        """
        pass

    def list_projects(self, CreationTimeAfter: Timestamp=None, CreationTimeBefore: Timestamp=None, MaxResults: int=None, NameContains: str=None, NextToken: str=None, SortBy: str=None, SortOrder: str=None) -> ListProjectsOutput:
        r"""Gets a list of the projects in an Amazon Web Services account.

        :param self:
        :param SortOrder:  The sort order for results. The default is <code>Ascending</code>.<br/>SortBy:  The field by which to sort results. The default is <code>CreationTime</code>.<br/>NextToken:  If the result of the previous <code>ListProjects</code> request was truncated, the response includes a <code>NextToken</code>. To retrieve the next set of projects, use the token in the next request.<br/>NameContains:  A filter that returns the projects whose name contains a specified string.<br/>MaxResults:  The maximum number of projects to return in the response.<br/>CreationTimeBefore:  A filter that returns the projects that were created before a specified time.<br/>CreationTimeAfter:  A filter that returns the projects that were created after a specified time.<br/>
        :return: NextToken:  If the result of the previous <code>ListCompilationJobs</code> request was truncated, the response includes a <code>NextToken</code>. To retrieve the next set of model compilation jobs, use the token in the next request.<br/>ProjectSummaryList:  A list of summaries of projects.<br/>        """
        pass

    def list_subscribed_workteams(self, NameContains: str=None, NextToken: str=None, MaxResults: int=None) -> ListSubscribedWorkteamsResponse:
        r"""Gets a list of the work teams that you are subscribed to in the Amazon Web Services Marketplace. The list may be empty if no work team satisfies the filter specified in the <code>NameContains</code> parameter.

        :param self:
        :param MaxResults:  The maximum number of work teams to return in each page of the response.<br/>NextToken:  If the result of the previous <code>ListSubscribedWorkteams</code> request was truncated, the response includes a <code>NextToken</code>. To retrieve the next set of labeling jobs, use the token in the next request.<br/>NameContains:  A string in the work team name. This filter returns only work teams whose name contains the specified string.<br/>
        :return: NextToken:  If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of work teams, use it in the subsequent request.<br/>SubscribedWorkteams:  An array of <code>Workteam</code> objects, each describing a work team.<br/>        """
        pass

    def list_tags(self, ResourceArn: str, NextToken: str=None, MaxResults: int=None) -> ListTagsOutput:
        r"""Returns the tags for the specified Amazon SageMaker resource.

        :param self:
        :param MaxResults:  Maximum number of tags to return.<br/>NextToken:   If the response to the previous <code>ListTags</code> request is truncated, Amazon SageMaker returns this token. To retrieve the next set of tags, use it in the subsequent request. <br/>ResourceArn:  The Amazon Resource Name (ARN) of the resource whose tags you want to retrieve.<br/>
        :return: NextToken:   If response is truncated, Amazon SageMaker includes a token in the response. You can use this token in your subsequent request to fetch next set of tokens. <br/>Tags:  An array of <code>Tag</code> objects, each with a tag key and a value.<br/>        """
        pass

    def list_training_jobs(self, NextToken: str=None, MaxResults: int=None, CreationTimeAfter: Timestamp=None, CreationTimeBefore: Timestamp=None, LastModifiedTimeAfter: Timestamp=None, LastModifiedTimeBefore: Timestamp=None, NameContains: str=None, StatusEquals: str=None, SortBy: str=None, SortOrder: str=None) -> ListTrainingJobsResponse:
        r"""Lists training jobs. <note> When <code>StatusEquals</code> and <code>MaxResults</code> are set at the same time, the <code>MaxResults</code> number of training jobs are first retrieved ignoring the <code>StatusEquals</code> parameter and then they are filtered by the <code>StatusEquals</code> parameter, which is returned as a response. For example, if <code>ListTrainingJobs</code> is invoked with the following parameters:  <code>{ ... MaxResults: 100, StatusEquals: InProgress ... }</code>  First, 100 trainings jobs with any status, including those other than <code>InProgress</code>, are selected (sorted according to the creation time, from the most current to the oldest). Next, those with a status of <code>InProgress</code> are returned. You can quickly test the API using the following Amazon Web Services CLI code.  <code>aws sagemaker list-training-jobs --max-results 100 --status-equals InProgress</code>  </note>

        :param self:
        :param SortOrder:  The sort order for results. The default is <code>Ascending</code>.<br/>SortBy:  The field to sort results by. The default is <code>CreationTime</code>.<br/>StatusEquals:  A filter that retrieves only training jobs with a specific status.<br/>NameContains:  A string in the training job name. This filter returns only training jobs whose name contains the specified string.<br/>LastModifiedTimeBefore:  A filter that returns only training jobs modified before the specified time (timestamp).<br/>LastModifiedTimeAfter:  A filter that returns only training jobs modified after the specified time (timestamp).<br/>CreationTimeBefore:  A filter that returns only training jobs created before the specified time (timestamp).<br/>CreationTimeAfter:  A filter that returns only training jobs created after the specified time (timestamp).<br/>MaxResults:  The maximum number of training jobs to return in the response.<br/>NextToken:  If the result of the previous <code>ListTrainingJobs</code> request was truncated, the response includes a <code>NextToken</code>. To retrieve the next set of training jobs, use the token in the next request. <br/>
        :return: NextToken:  If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of training jobs, use it in the subsequent request.<br/>TrainingJobSummaries:  An array of <code>TrainingJobSummary</code> objects, each listing a training job.<br/>        """
        pass

    def list_training_jobs_for_hyper_parameter_tuning_job(self, HyperParameterTuningJobName: str, NextToken: str=None, MaxResults: int=None, StatusEquals: str=None, SortBy: str=None, SortOrder: str=None) -> ListTrainingJobsForHyperParameterTuningJobResponse:
        r"""Gets a list of <a>TrainingJobSummary</a> objects that describe the training jobs that a hyperparameter tuning job launched.

        :param self:
        :param SortOrder:  The sort order for results. The default is <code>Ascending</code>.<br/>SortBy:  The field to sort results by. The default is <code>Name</code>. If the value of this field is <code>FinalObjectiveMetricValue</code>, any training jobs that did not return an objective metric are not listed.<br/>StatusEquals:  A filter that returns only training jobs with the specified status.<br/>MaxResults:  The maximum number of training jobs to return. The default value is 10.<br/>NextToken:  If the result of the previous <code>ListTrainingJobsForHyperParameterTuningJob</code> request was truncated, the response includes a <code>NextToken</code>. To retrieve the next set of training jobs, use the token in the next request.<br/>HyperParameterTuningJobName:  The name of the tuning job whose training jobs you want to list.<br/>
        :return: NextToken:  If the result of this <code>ListTrainingJobsForHyperParameterTuningJob</code> request was truncated, the response includes a <code>NextToken</code>. To retrieve the next set of training jobs, use the token in the next request.<br/>TrainingJobSummaries:  A list of <a>TrainingJobSummary</a> objects that describe the training jobs that the <code>ListTrainingJobsForHyperParameterTuningJob</code> request returned.<br/>        """
        pass

    def list_transform_jobs(self, CreationTimeAfter: Timestamp=None, CreationTimeBefore: Timestamp=None, LastModifiedTimeAfter: Timestamp=None, LastModifiedTimeBefore: Timestamp=None, NameContains: str=None, StatusEquals: str=None, SortBy: str=None, SortOrder: str=None, NextToken: str=None, MaxResults: int=None) -> ListTransformJobsResponse:
        r"""Lists transform jobs.

        :param self:
        :param MaxResults:  The maximum number of transform jobs to return in the response. The default value is <code>10</code>.<br/>NextToken:  If the result of the previous <code>ListTransformJobs</code> request was truncated, the response includes a <code>NextToken</code>. To retrieve the next set of transform jobs, use the token in the next request.<br/>SortOrder:  The sort order for results. The default is <code>Descending</code>.<br/>SortBy:  The field to sort results by. The default is <code>CreationTime</code>.<br/>StatusEquals:  A filter that retrieves only transform jobs with a specific status.<br/>NameContains:  A string in the transform job name. This filter returns only transform jobs whose name contains the specified string.<br/>LastModifiedTimeBefore:  A filter that returns only transform jobs modified before the specified time.<br/>LastModifiedTimeAfter:  A filter that returns only transform jobs modified after the specified time.<br/>CreationTimeBefore:  A filter that returns only transform jobs created before the specified time.<br/>CreationTimeAfter:  A filter that returns only transform jobs created after the specified time.<br/>
        :return: NextToken:  If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of transform jobs, use it in the next request.<br/>TransformJobSummaries:  An array of <code>TransformJobSummary</code> objects.<br/>        """
        pass

    def list_trial_components(self, ExperimentName: str=None, TrialName: str=None, SourceArn: str=None, CreatedAfter: Timestamp=None, CreatedBefore: Timestamp=None, SortBy: str=None, SortOrder: str=None, MaxResults: int=None, NextToken: str=None) -> ListTrialComponentsResponse:
        r"""Lists the trial components in your account. You can sort the list by trial component name or creation time. You can filter the list to show only components that were created in a specific time range. You can also filter on one of the following: <ul> <li>  <code>ExperimentName</code>  </li> <li>  <code>SourceArn</code>  </li> <li>  <code>TrialName</code>  </li> </ul>

        :param self:
        :param NextToken:  If the previous call to <code>ListTrialComponents</code> didn't return the full set of components, the call returns a token for getting the next set of components.<br/>MaxResults:  The maximum number of components to return in the response. The default value is 10.<br/>SortOrder:  The sort order. The default value is <code>Descending</code>.<br/>SortBy:  The property used to sort results. The default value is <code>CreationTime</code>.<br/>CreatedBefore:  A filter that returns only components created before the specified time.<br/>CreatedAfter:  A filter that returns only components created after the specified time.<br/>SourceArn:  A filter that returns only components that have the specified source Amazon Resource Name (ARN). If you specify <code>SourceArn</code>, you can't filter by <code>ExperimentName</code> or <code>TrialName</code>.<br/>TrialName:  A filter that returns only components that are part of the specified trial. If you specify <code>TrialName</code>, you can't filter by <code>ExperimentName</code> or <code>SourceArn</code>.<br/>ExperimentName:  A filter that returns only components that are part of the specified experiment. If you specify <code>ExperimentName</code>, you can't filter by <code>SourceArn</code> or <code>TrialName</code>.<br/>
        :return: NextToken:  A token for getting the next set of components, if there are any.<br/>TrialComponentSummaries:  A list of the summaries of your trial components.<br/>        """
        pass

    def list_trials(self, ExperimentName: str=None, TrialComponentName: str=None, CreatedAfter: Timestamp=None, CreatedBefore: Timestamp=None, SortBy: str=None, SortOrder: str=None, MaxResults: int=None, NextToken: str=None) -> ListTrialsResponse:
        r"""Lists the trials in your account. Specify an experiment name to limit the list to the trials that are part of that experiment. Specify a trial component name to limit the list to the trials that associated with that trial component. The list can be filtered to show only trials that were created in a specific time range. The list can be sorted by trial name or creation time.

        :param self:
        :param NextToken:  If the previous call to <code>ListTrials</code> didn't return the full set of trials, the call returns a token for getting the next set of trials.<br/>MaxResults:  The maximum number of trials to return in the response. The default value is 10.<br/>SortOrder:  The sort order. The default value is <code>Descending</code>.<br/>SortBy:  The property used to sort results. The default value is <code>CreationTime</code>.<br/>CreatedBefore:  A filter that returns only trials created before the specified time.<br/>CreatedAfter:  A filter that returns only trials created after the specified time.<br/>TrialComponentName:  A filter that returns only trials that are associated with the specified trial component.<br/>ExperimentName:  A filter that returns only trials that are part of the specified experiment.<br/>
        :return: NextToken:  A token for getting the next set of trials, if there are any.<br/>TrialSummaries:  A list of the summaries of your trials.<br/>        """
        pass

    def list_user_profiles(self, NextToken: str=None, MaxResults: int=None, SortOrder: str=None, SortBy: str=None, DomainIdEquals: str=None, UserProfileNameContains: str=None) -> ListUserProfilesResponse:
        r"""Lists user profiles.

        :param self:
        :param UserProfileNameContains:  A parameter by which to filter the results.<br/>DomainIdEquals:  A parameter by which to filter the results.<br/>SortBy:  The parameter by which to sort the results. The default is CreationTime.<br/>SortOrder:  The sort order for the results. The default is Ascending.<br/>MaxResults:  Returns a list up to a specified limit.<br/>NextToken:  If the previous response was truncated, you will receive this token. Use it in your next request to receive the next set of results.<br/>
        :return: NextToken:  If the previous response was truncated, you will receive this token. Use it in your next request to receive the next set of results.<br/>UserProfiles:  The list of user profiles.<br/>        """
        pass

    def list_workforces(self, SortBy: str=None, SortOrder: str=None, NameContains: str=None, NextToken: str=None, MaxResults: int=None) -> ListWorkforcesResponse:
        r"""Use this operation to list all private and vendor workforces in an Amazon Web Services Region. Note that you can only have one private workforce per Amazon Web Services Region.

        :param self:
        :param MaxResults:  The maximum number of workforces returned in the response.<br/>NextToken:  A token to resume pagination.<br/>NameContains:  A filter you can use to search for workforces using part of the workforce name.<br/>SortOrder:  Sort workforces in ascending or descending order.<br/>SortBy:  Sort workforces using the workforce name or creation date.<br/>
        :return: NextToken:  A token to resume pagination.<br/>Workforces:  A list containing information about your workforce.<br/>        """
        pass

    def list_workteams(self, SortBy: str=None, SortOrder: str=None, NameContains: str=None, NextToken: str=None, MaxResults: int=None) -> ListWorkteamsResponse:
        r"""Gets a list of private work teams that you have defined in a region. The list may be empty if no work team satisfies the filter specified in the <code>NameContains</code> parameter.

        :param self:
        :param MaxResults:  The maximum number of work teams to return in each page of the response.<br/>NextToken:  If the result of the previous <code>ListWorkteams</code> request was truncated, the response includes a <code>NextToken</code>. To retrieve the next set of labeling jobs, use the token in the next request.<br/>NameContains:  A string in the work team's name. This filter returns only work teams whose name contains the specified string.<br/>SortOrder:  The sort order for results. The default is <code>Ascending</code>.<br/>SortBy:  The field to sort results by. The default is <code>CreationTime</code>.<br/>
        :return: NextToken:  If the response is truncated, Amazon SageMaker returns this token. To retrieve the next set of work teams, use it in the subsequent request.<br/>Workteams:  An array of <code>Workteam</code> objects, each describing a work team.<br/>        """
        pass

    def put_model_package_group_policy(self, ResourcePolicy: str, ModelPackageGroupName: str) -> PutModelPackageGroupPolicyOutput:
        r"""Adds a resouce policy to control access to a model group. For information about resoure policies, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_identity-vs-resource.html">Identity-based policies and resource-based policies</a> in the <i>Amazon Web Services Identity and Access Management User Guide.</i>.

        :param self:
        :param ResourcePolicy:  The resource policy for the model group.<br/>ModelPackageGroupName:  The name of the model group to add a resource policy to.<br/>
        :return: ModelPackageGroupArn:  The Amazon Resource Name (ARN) of the model package group.<br/>        """
        pass

    def register_devices(self, Devices: List[Device], DeviceFleetName: str, Tags: List[Tag]=None):
        r"""Register devices.

        :param self:
        :param Tags:  The tags associated with devices.<br/>Devices:  A list of devices to register with SageMaker Edge Manager.<br/>DeviceFleetName:  The name of the fleet.<br/>
        :return:         """
        pass

    def render_ui_template(self, RoleArn: str, Task: RenderableTask, UiTemplate: UiTemplate=None, HumanTaskUiArn: str=None) -> RenderUiTemplateResponse:
        r"""Renders the UI template so that you can preview the worker's experience. 

        :param self:
        :param HumanTaskUiArn:  The <code>HumanTaskUiArn</code> of the worker UI that you want to render. Do not provide a <code>HumanTaskUiArn</code> if you use the <code>UiTemplate</code> parameter. See a list of available Human Ui Amazon Resource Names (ARNs) in <a>UiConfig</a>.<br/>RoleArn:  The Amazon Resource Name (ARN) that has access to the S3 objects that are used by the template.<br/>Task:  A <code>RenderableTask</code> object containing a representative task to render.:<br/>UiTemplate:  A <code>Template</code> object containing the worker UI template to render.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Content</i> The content of the Liquid template for the worker user interface.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Input</i> A JSON object that contains values for the variables defined in the template. It is made available to the template under the substitution variable <code>task.input</code>. For example, if you define a variable <code>task.input.text</code> in your template, you can supply the variable in the JSON object as <code>"text": "sample text"</code>.<br/>
        :return: Errors:  A list of one or more <code>RenderingError</code> objects if any were encountered while rendering the template. If there were no errors, the list is empty.<br/>RenderedContent:  A Liquid template that renders the HTML for the worker UI.<br/>        """
        pass

    def search(self, Resource: str, SearchExpression: SearchExpression=None, SortBy: str=None, SortOrder: str=None, NextToken: str=None, MaxResults: int=None) -> SearchResponse:
        r"""Finds Amazon SageMaker resources that match a search query. Matching resources are returned as a list of <code>SearchRecord</code> objects in the response. You can sort the search results by any resource property in a ascending or descending order. You can query against the following value types: numeric, text, Boolean, and timestamp.

        :param self:
        :param MaxResults:  The maximum number of results to return.<br/>NextToken:  If more than <code>MaxResults</code> resources match the specified <code>SearchExpression</code>, the response includes a <code>NextToken</code>. The <code>NextToken</code> can be passed to the next <code>SearchRequest</code> to continue retrieving results.<br/>SortOrder:  How <code>SearchResults</code> are ordered. Valid values are <code>Ascending</code> or <code>Descending</code>. The default is <code>Descending</code>.<br/>SortBy:  The name of the resource property used to sort the <code>SearchResults</code>. The default is <code>LastModifiedTime</code>.<br/>SearchExpression:  A Boolean conditional statement. Resources must satisfy this condition to be included in search results. You must provide at least one subexpression, filter, or nested filter. The maximum number of recursive <code>SubExpressions</code>, <code>NestedFilters</code>, and <code>Filters</code> that can be included in a <code>SearchExpression</code> object is 50.:<br/>Resource:  The name of the Amazon SageMaker resource to search for.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Operator</i> A Boolean operator used to evaluate the search expression. If you want every conditional statement in all lists to be satisfied for the entire search expression to be true, specify <code>And</code>. If only a single conditional statement needs to be true for the entire search expression to be true, specify <code>Or</code>. The default value is <code>And</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubExpressions</i> A list of search expression objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NestedFilters</i> A list of nested filter objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Filters</i> A list of filter objects.<br/>
        :return: NextToken:  If the result of the previous <code>Search</code> request was truncated, the response includes a NextToken. To retrieve the next set of results, use the token in the next request.<br/>Results:  A list of <code>SearchRecord</code> objects.<br/>        """
        pass

    def send_pipeline_execution_step_failure(self, CallbackToken: str, FailureReason: str=None, ClientRequestToken: str=None) -> SendPipelineExecutionStepFailureResponse:
        r"""Notifies the pipeline that the execution of a callback step failed, along with a message describing why. When a callback step is run, the pipeline generates a callback token and includes the token in a message sent to Amazon Simple Queue Service (Amazon SQS).

        :param self:
        :param ClientRequestToken:  A unique, case-sensitive identifier that you provide to ensure the idempotency of the operation. An idempotent operation completes no more than one time.<br/>FailureReason:  A message describing why the step failed.<br/>CallbackToken:  The pipeline generated token from the Amazon SQS queue.<br/>
        :return: PipelineExecutionArn:  The Amazon Resource Name (ARN) of the pipeline execution.<br/>        """
        pass

    def send_pipeline_execution_step_success(self, CallbackToken: str, OutputParameters: List[OutputParameter]=None, ClientRequestToken: str=None) -> SendPipelineExecutionStepSuccessResponse:
        r"""Notifies the pipeline that the execution of a callback step succeeded and provides a list of the step's output parameters. When a callback step is run, the pipeline generates a callback token and includes the token in a message sent to Amazon Simple Queue Service (Amazon SQS).

        :param self:
        :param ClientRequestToken:  A unique, case-sensitive identifier that you provide to ensure the idempotency of the operation. An idempotent operation completes no more than one time.<br/>OutputParameters:  A list of the output parameters of the callback step.<br/>CallbackToken:  The pipeline generated token from the Amazon SQS queue.<br/>
        :return: PipelineExecutionArn:  The Amazon Resource Name (ARN) of the pipeline execution.<br/>        """
        pass

    def start_monitoring_schedule(self, MonitoringScheduleName: str):
        r"""Starts a previously stopped monitoring schedule. <note> By default, when you successfully create a new schedule, the status of a monitoring schedule is <code>scheduled</code>. </note>

        :param self:
        :param MonitoringScheduleName:  The name of the schedule to start.<br/>
        :return:         """
        pass

    def start_notebook_instance(self, NotebookInstanceName: str):
        r"""Launches an ML compute instance with the latest version of the libraries and attaches your ML storage volume. After configuring the notebook instance, Amazon SageMaker sets the notebook instance status to <code>InService</code>. A notebook instance's status must be <code>InService</code> before you can connect to your Jupyter notebook. 

        :param self:
        :param NotebookInstanceName:  The name of the notebook instance to start.<br/>
        :return:         """
        pass

    def start_pipeline_execution(self, ClientRequestToken: str, PipelineName: str, PipelineExecutionDisplayName: str=None, PipelineParameters: List[Parameter]=None, PipelineExecutionDescription: str=None) -> StartPipelineExecutionResponse:
        r"""Starts a pipeline execution.

        :param self:
        :param ClientRequestToken:  A unique, case-sensitive identifier that you provide to ensure the idempotency of the operation. An idempotent operation completes no more than one time.<br/>PipelineExecutionDescription:  The description of the pipeline execution.<br/>PipelineParameters:  Contains a list of pipeline parameters. This list can be empty. <br/>PipelineExecutionDisplayName:  The display name of the pipeline execution.<br/>PipelineName:  The name of the pipeline.<br/>
        :return: PipelineExecutionArn:  The Amazon Resource Name (ARN) of the pipeline execution.<br/>        """
        pass

    def stop_auto_ml_job(self, AutoMLJobName: str):
        r"""A method for forcing the termination of a running job.

        :param self:
        :param AutoMLJobName:  The name of the object you are requesting.<br/>
        :return:         """
        pass

    def stop_compilation_job(self, CompilationJobName: str):
        r"""Stops a model compilation job.  To stop a job, Amazon SageMaker sends the algorithm the SIGTERM signal. This gracefully shuts the job down. If the job hasn't stopped, it sends the SIGKILL signal. When it receives a <code>StopCompilationJob</code> request, Amazon SageMaker changes the <a>CompilationJobSummary$CompilationJobStatus</a> of the job to <code>Stopping</code>. After Amazon SageMaker stops the job, it sets the <a>CompilationJobSummary$CompilationJobStatus</a> to <code>Stopped</code>. 

        :param self:
        :param CompilationJobName:  The name of the model compilation job to stop.<br/>
        :return:         """
        pass

    def stop_edge_packaging_job(self, EdgePackagingJobName: str):
        r"""Request to stop an edge packaging job.

        :param self:
        :param EdgePackagingJobName:  The name of the edge packaging job.<br/>
        :return:         """
        pass

    def stop_hyper_parameter_tuning_job(self, HyperParameterTuningJobName: str):
        r"""Stops a running hyperparameter tuning job and all running training jobs that the tuning job launched. All model artifacts output from the training jobs are stored in Amazon Simple Storage Service (Amazon S3). All data that the training jobs write to Amazon CloudWatch Logs are still available in CloudWatch. After the tuning job moves to the <code>Stopped</code> state, it releases all reserved resources for the tuning job.

        :param self:
        :param HyperParameterTuningJobName:  The name of the tuning job to stop.<br/>
        :return:         """
        pass

    def stop_labeling_job(self, LabelingJobName: str):
        r"""Stops a running labeling job. A job that is stopped cannot be restarted. Any results obtained before the job is stopped are placed in the Amazon S3 output bucket.

        :param self:
        :param LabelingJobName:  The name of the labeling job to stop.<br/>
        :return:         """
        pass

    def stop_monitoring_schedule(self, MonitoringScheduleName: str):
        r"""Stops a previously started monitoring schedule.

        :param self:
        :param MonitoringScheduleName:  The name of the schedule to stop.<br/>
        :return:         """
        pass

    def stop_notebook_instance(self, NotebookInstanceName: str):
        r"""Terminates the ML compute instance. Before terminating the instance, Amazon SageMaker disconnects the ML storage volume from it. Amazon SageMaker preserves the ML storage volume. Amazon SageMaker stops charging you for the ML compute instance when you call <code>StopNotebookInstance</code>. To access data on the ML storage volume for a notebook instance that has been terminated, call the <code>StartNotebookInstance</code> API. <code>StartNotebookInstance</code> launches another ML compute instance, configures it, and attaches the preserved ML storage volume so you can continue your work. 

        :param self:
        :param NotebookInstanceName:  The name of the notebook instance to terminate.<br/>
        :return:         """
        pass

    def stop_pipeline_execution(self, ClientRequestToken: str, PipelineExecutionArn: str) -> StopPipelineExecutionResponse:
        r"""Stops a pipeline execution. A pipeline execution won't stop while a callback step is running. When you call <code>StopPipelineExecution</code> on a pipeline execution with a running callback step, SageMaker Pipelines sends an additional Amazon SQS message to the specified SQS queue. The body of the SQS message contains a "Status" field which is set to "Stopping". You should add logic to your Amazon SQS message consumer to take any needed action (for example, resource cleanup) upon receipt of the message followed by a call to <code>SendPipelineExecutionStepSuccess</code> or <code>SendPipelineExecutionStepFailure</code>. Only when SageMaker Pipelines receives one of these calls will it stop the pipeline execution.

        :param self:
        :param ClientRequestToken:  A unique, case-sensitive identifier that you provide to ensure the idempotency of the operation. An idempotent operation completes no more than one time.<br/>PipelineExecutionArn:  The Amazon Resource Name (ARN) of the pipeline execution.<br/>
        :return: PipelineExecutionArn:  The Amazon Resource Name (ARN) of the pipeline execution.<br/>        """
        pass

    def stop_processing_job(self, ProcessingJobName: str):
        r"""Stops a processing job.

        :param self:
        :param ProcessingJobName:  The name of the processing job to stop.<br/>
        :return:         """
        pass

    def stop_training_job(self, TrainingJobName: str):
        r"""Stops a training job. To stop a job, Amazon SageMaker sends the algorithm the <code>SIGTERM</code> signal, which delays job termination for 120 seconds. Algorithms might use this 120-second window to save the model artifacts, so the results of the training is not lost.  When it receives a <code>StopTrainingJob</code> request, Amazon SageMaker changes the status of the job to <code>Stopping</code>. After Amazon SageMaker stops the job, it sets the status to <code>Stopped</code>.

        :param self:
        :param TrainingJobName:  The name of the training job to stop.<br/>
        :return:         """
        pass

    def stop_transform_job(self, TransformJobName: str):
        r"""Stops a transform job. When Amazon SageMaker receives a <code>StopTransformJob</code> request, the status of the job changes to <code>Stopping</code>. After Amazon SageMaker stops the job, the status is set to <code>Stopped</code>. When you stop a transform job before it is completed, Amazon SageMaker doesn't store the job's output in Amazon S3.

        :param self:
        :param TransformJobName:  The name of the transform job to stop.<br/>
        :return:         """
        pass

    def update_action(self, ActionName: str, Description: str=None, Status: str=None, Properties: LineageEntityParameters=None, PropertiesToRemove: List[StringParameterValue]=None) -> UpdateActionResponse:
        r"""Updates an action.

        :param self:
        :param PropertiesToRemove:  A list of properties to remove.<br/>Properties:  The new list of properties. Overwrites the current property list.<br/>Status:  The new status for the action.<br/>Description:  The new description for the action.<br/>ActionName:  The name of the action to update.<br/>
        :return: ActionArn:  The Amazon Resource Name (ARN) of the action.<br/>        """
        pass

    def update_app_image_config(self, AppImageConfigName: str, KernelGatewayImageConfig: KernelGatewayImageConfig=None) -> UpdateAppImageConfigResponse:
        r"""Updates the properties of an AppImageConfig.

        :param self:
        :param KernelGatewayImageConfig:  The new KernelGateway app to run on the image.:<br/>AppImageConfigName:  The name of the AppImageConfig to update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FileSystemConfig</i> The Amazon Elastic File System (EFS) storage configuration for a SageMaker image.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>FileSystemConfig</b>: The Amazon Elastic File System (EFS) storage configuration for a SageMaker image.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KernelSpecs</i> The specification of the Jupyter kernels in the image.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultGid</i> The default POSIX group ID (GID). If not specified, defaults to <code>100</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultUid</i> The default POSIX user ID (UID). If not specified, defaults to <code>1000</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MountPath</i> The path within the image to mount the user's EFS home directory. The directory should be empty. If not specified, defaults to <i>/home/sagemaker-user</i>.<br/>
        :return: AppImageConfigArn:  The Amazon Resource Name (ARN) for the AppImageConfig.<br/>        """
        pass

    def update_artifact(self, ArtifactArn: str, ArtifactName: str=None, Properties: LineageEntityParameters=None, PropertiesToRemove: List[StringParameterValue]=None) -> UpdateArtifactResponse:
        r"""Updates an artifact.

        :param self:
        :param PropertiesToRemove:  A list of properties to remove.<br/>Properties:  The new list of properties. Overwrites the current property list.<br/>ArtifactName:  The new name for the artifact.<br/>ArtifactArn:  The Amazon Resource Name (ARN) of the artifact to update.<br/>
        :return: ArtifactArn:  The Amazon Resource Name (ARN) of the artifact.<br/>        """
        pass

    def update_code_repository(self, CodeRepositoryName: str, GitConfig: GitConfigForUpdate=None) -> UpdateCodeRepositoryOutput:
        r"""Updates the specified Git repository with the specified values.

        :param self:
        :param GitConfig:  The configuration of the git repository, including the URL and the Amazon Resource Name (ARN) of the Amazon Web Services Secrets Manager secret that contains the credentials used to access the repository. The secret must have a staging label of <code>AWSCURRENT</code> and must be in the following format:  <code>{"username": <i>UserName</i>, "password": <i>Password</i>}</code> :<br/>CodeRepositoryName:  The name of the Git repository to update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretArn</i> The Amazon Resource Name (ARN) of the Amazon Web Services Secrets Manager secret that contains the credentials used to access the git repository. The secret must have a staging label of <code>AWSCURRENT</code> and must be in the following format:  <code>{"username": <i>UserName</i>, "password": <i>Password</i>}</code> <br/>
        :return: CodeRepositoryArn:  The ARN of the Git repository.<br/>        """
        pass

    def update_context(self, ContextName: str, Description: str=None, Properties: LineageEntityParameters=None, PropertiesToRemove: List[StringParameterValue]=None) -> UpdateContextResponse:
        r"""Updates a context.

        :param self:
        :param PropertiesToRemove:  A list of properties to remove.<br/>Properties:  The new list of properties. Overwrites the current property list.<br/>Description:  The new description for the context.<br/>ContextName:  The name of the context to update.<br/>
        :return: ContextArn:  The Amazon Resource Name (ARN) of the context.<br/>        """
        pass

    def update_device_fleet(self, OutputConfig: EdgeOutputConfig, DeviceFleetName: str, RoleArn: str=None, Description: str=None, EnableIotRoleAlias: EnableIotRoleAlias=None):
        r"""Updates a fleet of devices.

        :param self:
        :param EnableIotRoleAlias:  Whether to create an Amazon Web Services IoT Role Alias during device fleet creation. The name of the role alias generated will match this pattern: "SageMakerEdge-{DeviceFleetName}". For example, if your device fleet is called "demo-fleet", the name of the role alias will be "SageMakerEdge-demo-fleet".<br/>OutputConfig:  Output configuration for storing sample data collected by the fleet.:<br/>Description:  Description of the fleet.<br/>RoleArn:  The Amazon Resource Name (ARN) of the device.<br/>DeviceFleetName:  The name of the fleet.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PresetDeploymentConfig</i> The configuration used to create deployment artifacts. Specify configuration options with a JSON string. The available configuration options for each type are: <ul> <li>  <code>ComponentName</code> (optional) - Name of the GreenGrass V2 component. If not specified, the default name generated consists of "SagemakerEdgeManager" and the name of your SageMaker Edge Manager packaging job. </li> <li>  <code>ComponentDescription</code> (optional) - Description of the component. </li> <li>  <code>ComponentVersion</code> (optional) - The version of the component. <note> Amazon Web Services IoT Greengrass uses semantic versions for components. Semantic versions follow a<i> major.minor.patch</i> number system. For example, version 1.0.0 represents the first major release for a component. For more information, see the <a href="https://semver.org/">semantic version specification</a>. </note> </li> <li>  <code>PlatformOS</code> (optional) - The name of the operating system for the platform. Supported platforms include Windows and Linux. </li> <li>  <code>PlatformArchitecture</code> (optional) - The processor architecture for the platform.  Supported architectures Windows include: Windows32_x86, Windows64_x64. Supported architectures for Linux include: Linux x86_64, Linux ARMV8. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PresetDeploymentType</i> The deployment type SageMaker Edge Manager will create. Currently only supports Amazon Web Services IoT Greengrass Version 2 components.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The Amazon Web Services Key Management Service (Amazon Web Services KMS) key that Amazon SageMaker uses to encrypt data on the storage volume after compilation job. If you don't provide a KMS key ID, Amazon SageMaker uses the default KMS key for Amazon S3 for your role's account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3OutputLocation</i> The Amazon Simple Storage (S3) bucker URI.<br/>
        :return:         """
        pass

    def update_devices(self, Devices: List[Device], DeviceFleetName: str):
        r"""Updates one or more devices in a fleet.

        :param self:
        :param Devices:  List of devices to register with Edge Manager agent.<br/>DeviceFleetName:  The name of the fleet the devices belong to.<br/>
        :return:         """
        pass

    def update_domain(self, DomainId: str, DefaultUserSettings: UserSettings=None) -> UpdateDomainResponse:
        r"""Updates the default settings for new user profiles in the domain.

        :param self:
        :param DefaultUserSettings:  A collection of settings.:<br/>DomainId:  The ID of the domain to be updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TensorBoardAppSettings</i> The TensorBoard app settings.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TensorBoardAppSettings</b>: The TensorBoard app settings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KernelGatewayAppSettings</i> The kernel gateway app settings.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>KernelGatewayAppSettings</b>: The kernel gateway app settings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JupyterServerAppSettings</i> The Jupyter server's app settings.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>JupyterServerAppSettings</b>: The Jupyter server's app settings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SharingSettings</i> Specifies options for sharing SageMaker Studio notebooks.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SharingSettings</b>: Specifies options for sharing SageMaker Studio notebooks.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroups</i> The security groups for the Amazon Virtual Private Cloud (VPC) that Studio uses for communication. Optional when the <code>CreateDomain.AppNetworkAccessType</code> parameter is set to <code>PublicInternetOnly</code>. Required when the <code>CreateDomain.AppNetworkAccessType</code> parameter is set to <code>VpcOnly</code>. Amazon SageMaker adds a security group to allow NFS traffic from SageMaker Studio. Therefore, the number of security groups that you can specify is one less than the maximum number shown.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExecutionRole</i> The execution role for the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3KmsKeyId</i> When <code>NotebookOutputOption</code> is <code>Allowed</code>, the Amazon Web Services Key Management Service (KMS) encryption key ID used to encrypt the notebook cell output in the Amazon S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3OutputPath</i> When <code>NotebookOutputOption</code> is <code>Allowed</code>, the Amazon S3 bucket used to store the shared notebook snapshots.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NotebookOutputOption</i> Whether to include the notebook cell output when sharing the notebook. The default is <code>Disabled</code>.<br/>The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the JupyterServer app.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DefaultResourceSpec</b>: The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the JupyterServer app.The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the KernelGateway app.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DefaultResourceSpec</b>: The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the KernelGateway app.The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DefaultResourceSpec</b>: The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance.
        :return: DomainArn:  The Amazon Resource Name (ARN) of the domain.<br/>        """
        pass

    def update_endpoint(self, EndpointConfigName: str, EndpointName: str, RetainAllVariantProperties: Boolean=None, ExcludeRetainedVariantProperties: List[VariantProperty]=None, DeploymentConfig: DeploymentConfig=None) -> UpdateEndpointOutput:
        r"""Deploys the new <code>EndpointConfig</code> specified in the request, switches to using newly created endpoint, and then deletes resources provisioned for the endpoint using the previous <code>EndpointConfig</code> (there is no availability loss).  When Amazon SageMaker receives the request, it sets the endpoint status to <code>Updating</code>. After updating the endpoint, it sets the status to <code>InService</code>. To check the status of an endpoint, use the <a>DescribeEndpoint</a> API.  <note> You must not delete an <code>EndpointConfig</code> in use by an endpoint that is live or while the <code>UpdateEndpoint</code> or <code>CreateEndpoint</code> operations are being performed on the endpoint. To update an endpoint, you must create a new <code>EndpointConfig</code>. If you delete the <code>EndpointConfig</code> of an endpoint that is active or being created or updated you may lose visibility into the instance type the endpoint is using. The endpoint must be deleted in order to stop incurring charges. </note>

        :param self:
        :param DeploymentConfig:  The deployment configuration for the endpoint to be updated.:<br/>ExcludeRetainedVariantProperties:  When you are updating endpoint resources with <a>UpdateEndpointInput$RetainAllVariantProperties</a>, whose value is set to <code>true</code>, <code>ExcludeRetainedVariantProperties</code> specifies the list of type <a>VariantProperty</a> to override with the values provided by <code>EndpointConfig</code>. If you don't specify a value for <code>ExcludeAllVariantProperties</code>, no variant properties are overridden. <br/>RetainAllVariantProperties:  When updating endpoint resources, enables or disables the retention of <a href="https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_VariantProperty.html">variant properties</a>, such as the instance count or the variant weight. To retain the variant properties of an endpoint when updating it, set <code>RetainAllVariantProperties</code> to <code>true</code>. To use the variant properties specified in a new <code>EndpointConfig</code> call when updating an endpoint, set <code>RetainAllVariantProperties</code> to <code>false</code>. The default is <code>false</code>.<br/>EndpointConfigName:  The name of the new endpoint configuration.<br/>EndpointName:  The name of the endpoint whose configuration you want to update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoRollbackConfiguration</i> <p/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AutoRollbackConfiguration</b>: <p/><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BlueGreenUpdatePolicy</i> <p/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>BlueGreenUpdatePolicy</b>: <p/><br/><p/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TrafficRoutingConfiguration</b>: <p/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Alarms</i> <p/><br/>
        :return: EndpointArn:  The Amazon Resource Name (ARN) of the endpoint.<br/>        """
        pass

    def update_endpoint_weights_and_capacities(self, DesiredWeightsAndCapacities: List[DesiredWeightAndCapacity], EndpointName: str) -> UpdateEndpointWeightsAndCapacitiesOutput:
        r"""Updates variant weight of one or more variants associated with an existing endpoint, or capacity of one variant associated with an existing endpoint. When it receives the request, Amazon SageMaker sets the endpoint status to <code>Updating</code>. After updating the endpoint, it sets the status to <code>InService</code>. To check the status of an endpoint, use the <a>DescribeEndpoint</a> API. 

        :param self:
        :param DesiredWeightsAndCapacities:  An object that provides new capacity and weight values for a variant.<br/>EndpointName:  The name of an existing Amazon SageMaker endpoint.<br/>
        :return: EndpointArn:  The Amazon Resource Name (ARN) of the updated endpoint.<br/>        """
        pass

    def update_experiment(self, ExperimentName: str, DisplayName: str=None, Description: str=None) -> UpdateExperimentResponse:
        r"""Adds, updates, or removes the description of an experiment. Updates the display name of an experiment.

        :param self:
        :param Description:  The description of the experiment.<br/>DisplayName:  The name of the experiment as displayed. The name doesn't need to be unique. If <code>DisplayName</code> isn't specified, <code>ExperimentName</code> is displayed.<br/>ExperimentName:  The name of the experiment to update.<br/>
        :return: ExperimentArn:  The Amazon Resource Name (ARN) of the experiment.<br/>        """
        pass

    def update_image(self, ImageName: str, DeleteProperties: List[ImageDeleteProperty]=None, Description: str=None, DisplayName: str=None, RoleArn: str=None) -> UpdateImageResponse:
        r"""Updates the properties of a SageMaker image. To change the image's tags, use the <a>AddTags</a> and <a>DeleteTags</a> APIs.

        :param self:
        :param RoleArn:  The new Amazon Resource Name (ARN) for the IAM role that enables Amazon SageMaker to perform tasks on your behalf.<br/>ImageName:  The name of the image to update.<br/>DisplayName:  The new display name for the image.<br/>Description:  The new description for the image.<br/>DeleteProperties:  A list of properties to delete. Only the <code>Description</code> and <code>DisplayName</code> properties can be deleted.<br/>
        :return: ImageArn:  The Amazon Resource Name (ARN) of the image.<br/>        """
        pass

    def update_model_package(self, ModelApprovalStatus: str, ModelPackageArn: str, ApprovalDescription: str=None) -> UpdateModelPackageOutput:
        r"""Updates a versioned model.

        :param self:
        :param ApprovalDescription:  A description for the approval status of the model.<br/>ModelApprovalStatus:  The approval status of the model.<br/>ModelPackageArn:  The Amazon Resource Name (ARN) of the model.<br/>
        :return: ModelPackageArn:  The Amazon Resource Name (ARN) of the model.<br/>        """
        pass

    def update_monitoring_schedule(self, MonitoringScheduleConfig: MonitoringScheduleConfig, MonitoringScheduleName: str) -> UpdateMonitoringScheduleResponse:
        r"""Updates a previously created schedule.

        :param self:
        :param MonitoringScheduleConfig:  The configuration object that specifies the monitoring schedule and defines the monitoring job.:<br/>MonitoringScheduleName:  The name of the monitoring schedule. The name must be unique within an Amazon Web Services Region within an Amazon Web Services account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MonitoringType</i> The type of the monitoring job definition to schedule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MonitoringJobDefinitionName</i> The name of the monitoring job definition to schedule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MonitoringJobDefinition</i> Defines the monitoring job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>MonitoringJobDefinition</b>: Defines the monitoring job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ScheduleConfig</i> Configures the monitoring schedule.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ScheduleConfig</b>: Configures the monitoring schedule.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ScheduleExpression</i> A cron expression that describes details about the monitoring schedule. Currently the only supported cron expressions are: <ul> <li> If you want to set the job to start every hour, please use the following:  <code>Hourly: cron(0 * ? * * *)</code>  </li> <li> If you want to start the job daily:  <code>cron(0 [00-23] ? * * *)</code>  </li> </ul> For example, the following are valid cron expressions: <ul> <li> Daily at noon UTC: <code>cron(0 12 ? * * *)</code>  </li> <li> Daily at midnight UTC: <code>cron(0 0 ? * * *)</code>  </li> </ul> To support running every 6, 12 hours, the following are also supported:  <code>cron(0 [00-23]/[01-24] ? * * *)</code>  For example, the following are valid cron expressions: <ul> <li> Every 12 hours, starting at 5pm UTC: <code>cron(0 17/12 ? * * *)</code>  </li> <li> Every two hours starting at midnight: <code>cron(0 0/2 ? * * *)</code>  </li> </ul> <note> <ul> <li> Even though the cron expression is set to start at 5PM UTC, note that there could be a delay of 0-20 minutes from the actual requested time to run the execution.  </li> <li> We recommend that if you would like a daily schedule, you do not provide this parameter. Amazon SageMaker will pick a time for running every day. </li> </ul> </note><br/>Baseline configuration used to validate that the data conforms to the specified constraints and statistics&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>BaselineConfig</b>: Baseline configuration used to validate that the data conforms to the specified constraints and statistics
        :return: MonitoringScheduleArn:  The Amazon Resource Name (ARN) of the monitoring schedule.<br/>        """
        pass

    def update_notebook_instance(self, NotebookInstanceName: str, InstanceType: str=None, RoleArn: str=None, LifecycleConfigName: str=None, DisassociateLifecycleConfig: DisassociateNotebookInstanceLifecycleConfig=None, VolumeSizeInGB: int=None, DefaultCodeRepository: str=None, AdditionalCodeRepositories: List[CodeRepositoryNameOrUrl]=None, AcceleratorTypes: List[NotebookInstanceAcceleratorType]=None, DisassociateAcceleratorTypes: DisassociateNotebookInstanceAcceleratorTypes=None, DisassociateDefaultCodeRepository: DisassociateDefaultCodeRepository=None, DisassociateAdditionalCodeRepositories: DisassociateAdditionalCodeRepositories=None, RootAccess: str=None) -> UpdateNotebookInstanceOutput:
        r"""Updates a notebook instance. NotebookInstance updates include upgrading or downgrading the ML compute instance used for your notebook instance to accommodate changes in your workload requirements.

        :param self:
        :param RootAccess:  Whether root access is enabled or disabled for users of the notebook instance. The default value is <code>Enabled</code>. <note> If you set this to <code>Disabled</code>, users don't have root access on the notebook instance, but lifecycle configuration scripts still run with root permissions. </note><br/>DisassociateAdditionalCodeRepositories:  A list of names or URLs of the default Git repositories to remove from this notebook instance. This operation is idempotent. If you specify a Git repository that is not associated with the notebook instance when you call this method, it does not throw an error.<br/>DisassociateDefaultCodeRepository:  The name or URL of the default Git repository to remove from this notebook instance. This operation is idempotent. If you specify a Git repository that is not associated with the notebook instance when you call this method, it does not throw an error.<br/>DisassociateAcceleratorTypes:  A list of the Elastic Inference (EI) instance types to remove from this notebook instance. This operation is idempotent. If you specify an accelerator type that is not associated with the notebook instance when you call this method, it does not throw an error.<br/>AcceleratorTypes:  A list of the Elastic Inference (EI) instance types to associate with this notebook instance. Currently only one EI instance type can be associated with a notebook instance. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/ei.html">Using Elastic Inference in Amazon SageMaker</a>.<br/>AdditionalCodeRepositories:  An array of up to three Git repositories to associate with the notebook instance. These can be either the names of Git repositories stored as resources in your account, or the URL of Git repositories in <a href="https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html">Amazon Web Services CodeCommit</a> or in any other Git repository. These repositories are cloned at the same level as the default repository of your notebook instance. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/nbi-git-repo.html">Associating Git Repositories with Amazon SageMaker Notebook Instances</a>.<br/>DefaultCodeRepository:  The Git repository to associate with the notebook instance as its default code repository. This can be either the name of a Git repository stored as a resource in your account, or the URL of a Git repository in <a href="https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html">Amazon Web Services CodeCommit</a> or in any other Git repository. When you open a notebook instance, it opens in the directory that contains this repository. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/nbi-git-repo.html">Associating Git Repositories with Amazon SageMaker Notebook Instances</a>.<br/>VolumeSizeInGB:  The size, in GB, of the ML storage volume to attach to the notebook instance. The default value is 5 GB. ML storage volumes are encrypted, so Amazon SageMaker can't determine the amount of available free space on the volume. Because of this, you can increase the volume size when you update a notebook instance, but you can't decrease the volume size. If you want to decrease the size of the ML storage volume in use, create a new notebook instance with the desired size.<br/>DisassociateLifecycleConfig:  Set to <code>true</code> to remove the notebook instance lifecycle configuration currently associated with the notebook instance. This operation is idempotent. If you specify a lifecycle configuration that is not associated with the notebook instance when you call this method, it does not throw an error.<br/>LifecycleConfigName:  The name of a lifecycle configuration to associate with the notebook instance. For information about lifestyle configurations, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/notebook-lifecycle-config.html">Step 2.1: (Optional) Customize a Notebook Instance</a>.<br/>RoleArn:  The Amazon Resource Name (ARN) of the IAM role that Amazon SageMaker can assume to access the notebook instance. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html">Amazon SageMaker Roles</a>.  <note> To be able to pass this role to Amazon SageMaker, the caller of this API must have the <code>iam:PassRole</code> permission. </note><br/>InstanceType:  The Amazon ML compute instance type.<br/>NotebookInstanceName:  The name of the notebook instance to update.<br/>
        :return:         """
        pass

    def update_notebook_instance_lifecycle_config(self, NotebookInstanceLifecycleConfigName: str, OnCreate: List[NotebookInstanceLifecycleHook]=None, OnStart: List[NotebookInstanceLifecycleHook]=None) -> UpdateNotebookInstanceLifecycleConfigOutput:
        r"""Updates a notebook instance lifecycle configuration created with the <a>CreateNotebookInstanceLifecycleConfig</a> API.

        :param self:
        :param OnStart:  The shell script that runs every time you start a notebook instance, including when you create the notebook instance. The shell script must be a base64-encoded string.<br/>OnCreate:  The shell script that runs only once, when you create a notebook instance. The shell script must be a base64-encoded string.<br/>NotebookInstanceLifecycleConfigName:  The name of the lifecycle configuration.<br/>
        :return:         """
        pass

    def update_pipeline(self, PipelineName: str, PipelineDisplayName: str=None, PipelineDefinition: str=None, PipelineDescription: str=None, RoleArn: str=None) -> UpdatePipelineResponse:
        r"""Updates a pipeline.

        :param self:
        :param RoleArn:  The Amazon Resource Name (ARN) that the pipeline uses to execute.<br/>PipelineDescription:  The description of the pipeline.<br/>PipelineDefinition:  The JSON pipeline definition.<br/>PipelineDisplayName:  The display name of the pipeline.<br/>PipelineName:  The name of the pipeline to update.<br/>
        :return: PipelineArn:  The Amazon Resource Name (ARN) of the updated pipeline.<br/>        """
        pass

    def update_pipeline_execution(self, PipelineExecutionArn: str, PipelineExecutionDescription: str=None, PipelineExecutionDisplayName: str=None) -> UpdatePipelineExecutionResponse:
        r"""Updates a pipeline execution.

        :param self:
        :param PipelineExecutionDisplayName:  The display name of the pipeline execution.<br/>PipelineExecutionDescription:  The description of the pipeline execution.<br/>PipelineExecutionArn:  The Amazon Resource Name (ARN) of the pipeline execution.<br/>
        :return: PipelineExecutionArn:  The Amazon Resource Name (ARN) of the updated pipeline execution.<br/>        """
        pass

    def update_training_job(self, TrainingJobName: str, ProfilerConfig: ProfilerConfigForUpdate=None, ProfilerRuleConfigurations: List[ProfilerRuleConfiguration]=None) -> UpdateTrainingJobResponse:
        r"""Update a model training job to request a new Debugger profiling configuration.

        :param self:
        :param ProfilerRuleConfigurations:  Configuration information for Debugger rules for profiling system and framework metrics.<br/>ProfilerConfig:  Configuration information for Debugger system monitoring, framework profiling, and storage paths.:<br/>TrainingJobName:  The name of a training job to update the Debugger profiling configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DisableProfiler</i> To disable Debugger monitoring and profiling, set to <code>True</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProfilingParameters</i> Configuration information for capturing framework metrics. Available key strings for different profiling options are <code>DetailedProfilingConfig</code>, <code>PythonProfilingConfig</code>, and <code>DataLoaderProfilingConfig</code>. The following codes are configuration structures for the <code>ProfilingParameters</code> parameter. To learn more about how to configure the <code>ProfilingParameters</code> parameter, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/debugger-createtrainingjob-api.html">Use the SageMaker and Debugger Configuration API Operations to Create, Update, and Debug Your Training Job</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProfilingIntervalInMilliseconds</i> A time interval for capturing system metrics in milliseconds. Available values are 100, 200, 500, 1000 (1 second), 5000 (5 seconds), and 60000 (1 minute) milliseconds. The default value is 500 milliseconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3OutputPath</i> Path to Amazon S3 storage location for system and framework metrics.<br/>
        :return: TrainingJobArn:  The Amazon Resource Name (ARN) of the training job.<br/>        """
        pass

    def update_trial(self, TrialName: str, DisplayName: str=None) -> UpdateTrialResponse:
        r"""Updates the display name of a trial.

        :param self:
        :param DisplayName:  The name of the trial as displayed. The name doesn't need to be unique. If <code>DisplayName</code> isn't specified, <code>TrialName</code> is displayed.<br/>TrialName:  The name of the trial to update.<br/>
        :return: TrialArn:  The Amazon Resource Name (ARN) of the trial.<br/>        """
        pass

    def update_trial_component(self, TrialComponentName: str, DisplayName: str=None, Status: TrialComponentStatus=None, StartTime: Timestamp=None, EndTime: Timestamp=None, Parameters: TrialComponentParameters=None, ParametersToRemove: List[TrialComponentKey256]=None, InputArtifacts: TrialComponentArtifacts=None, InputArtifactsToRemove: List[TrialComponentKey256]=None, OutputArtifacts: TrialComponentArtifacts=None, OutputArtifactsToRemove: List[TrialComponentKey256]=None) -> UpdateTrialComponentResponse:
        r"""Updates one or more properties of a trial component.

        :param self:
        :param OutputArtifactsToRemove:  The output artifacts to remove from the component.<br/>OutputArtifacts:  Replaces all of the component's output artifacts with the specified artifacts.<br/>InputArtifactsToRemove:  The input artifacts to remove from the component.<br/>InputArtifacts:  Replaces all of the component's input artifacts with the specified artifacts.<br/>ParametersToRemove:  The hyperparameters to remove from the component.<br/>Parameters:  Replaces all of the component's hyperparameters with the specified hyperparameters.<br/>EndTime:  When the component ended.<br/>StartTime:  When the component started.<br/>Status:  The new status of the component.:<br/>DisplayName:  The name of the component as displayed. The name doesn't need to be unique. If <code>DisplayName</code> isn't specified, <code>TrialComponentName</code> is displayed.<br/>TrialComponentName:  The name of the component to update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> If the component failed, a message describing why.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PrimaryStatus</i> The status of the trial component.<br/>
        :return: TrialComponentArn:  The Amazon Resource Name (ARN) of the trial component.<br/>        """
        pass

    def update_user_profile(self, UserProfileName: str, DomainId: str, UserSettings: UserSettings=None) -> UpdateUserProfileResponse:
        r"""Updates a user profile.

        :param self:
        :param UserSettings:  A collection of settings.:<br/>UserProfileName:  The user profile name.<br/>DomainId:  The domain ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TensorBoardAppSettings</i> The TensorBoard app settings.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TensorBoardAppSettings</b>: The TensorBoard app settings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KernelGatewayAppSettings</i> The kernel gateway app settings.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>KernelGatewayAppSettings</b>: The kernel gateway app settings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JupyterServerAppSettings</i> The Jupyter server's app settings.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>JupyterServerAppSettings</b>: The Jupyter server's app settings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SharingSettings</i> Specifies options for sharing SageMaker Studio notebooks.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SharingSettings</b>: Specifies options for sharing SageMaker Studio notebooks.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroups</i> The security groups for the Amazon Virtual Private Cloud (VPC) that Studio uses for communication. Optional when the <code>CreateDomain.AppNetworkAccessType</code> parameter is set to <code>PublicInternetOnly</code>. Required when the <code>CreateDomain.AppNetworkAccessType</code> parameter is set to <code>VpcOnly</code>. Amazon SageMaker adds a security group to allow NFS traffic from SageMaker Studio. Therefore, the number of security groups that you can specify is one less than the maximum number shown.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExecutionRole</i> The execution role for the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3KmsKeyId</i> When <code>NotebookOutputOption</code> is <code>Allowed</code>, the Amazon Web Services Key Management Service (KMS) encryption key ID used to encrypt the notebook cell output in the Amazon S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3OutputPath</i> When <code>NotebookOutputOption</code> is <code>Allowed</code>, the Amazon S3 bucket used to store the shared notebook snapshots.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NotebookOutputOption</i> Whether to include the notebook cell output when sharing the notebook. The default is <code>Disabled</code>.<br/>The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the JupyterServer app.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DefaultResourceSpec</b>: The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the JupyterServer app.The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the KernelGateway app.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DefaultResourceSpec</b>: The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the KernelGateway app.The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DefaultResourceSpec</b>: The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance.
        :return: UserProfileArn:  The user profile Amazon Resource Name (ARN).<br/>        """
        pass

    def update_workforce(self, WorkforceName: str, SourceIpConfig: SourceIpConfig=None, OidcConfig: OidcConfig=None) -> UpdateWorkforceResponse:
        r"""Use this operation to update your workforce. You can use this operation to require that workers use specific IP addresses to work on tasks and to update your OpenID Connect (OIDC) Identity Provider (IdP) workforce configuration.  Use <code>SourceIpConfig</code> to restrict worker access to tasks to a specific range of IP addresses. You specify allowed IP addresses by creating a list of up to ten <a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html">CIDRs</a>. By default, a workforce isn't restricted to specific IP addresses. If you specify a range of IP addresses, workers who attempt to access tasks using any IP address outside the specified range are denied and get a <code>Not Found</code> error message on the worker portal. Use <code>OidcConfig</code> to update the configuration of a workforce created using your own OIDC IdP.  <important> You can only update your OIDC IdP configuration when there are no work teams associated with your workforce. You can delete work teams using the operation. </important> After restricting access to a range of IP addresses or updating your OIDC IdP configuration with this operation, you can view details about your update workforce using the operation. <important> This operation only applies to private workforces. </important>

        :param self:
        :param OidcConfig:  Use this parameter to update your OIDC Identity Provider (IdP) configuration for a workforce made using your own IdP.:<br/>SourceIpConfig:  A list of one to ten worker IP address ranges (<a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html">CIDRs</a>) that can be used to access tasks assigned to this workforce. Maximum: Ten CIDR values:<br/>WorkforceName:  The name of the private workforce that you want to update. You can find your workforce name by using the operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Cidrs</i> A list of one to ten <a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html">Classless Inter-Domain Routing</a> (CIDR) values. Maximum: Ten CIDR values <note> The following Length Constraints apply to individual CIDR values in the CIDR value list. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JwksUri</i> The OIDC IdP JSON Web Key Set (Jwks) URI used to configure your private workforce.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogoutEndpoint</i> The OIDC IdP logout endpoint used to configure your private workforce.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserInfoEndpoint</i> The OIDC IdP user information endpoint used to configure your private workforce.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TokenEndpoint</i> The OIDC IdP token endpoint used to configure your private workforce.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AuthorizationEndpoint</i> The OIDC IdP authorization endpoint used to configure your private workforce.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Issuer</i> The OIDC IdP issuer used to configure your private workforce.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClientSecret</i> The OIDC IdP client secret used to configure your private workforce.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClientId</i> The OIDC IdP client ID used to configure your private workforce.<br/>
        :return: Workforce:  A single private workforce. You can create one private work force in each Amazon Web Services Region. By default, any workforce-related API operation used in a specific region will apply to the workforce created in that region. To learn how to create a private workforce, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sms-workforce-create-private.html">Create a Private Workforce</a>.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreateDate</i> The date that the workforce is created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OidcConfig</i> The configuration of an OIDC Identity Provider (IdP) private workforce.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>OidcConfig</b>: The configuration of an OIDC Identity Provider (IdP) private workforce.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CognitoConfig</i> The configuration of an Amazon Cognito workforce. A single Cognito workforce is created using and corresponds to a single <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools.html"> Amazon Cognito user pool</a>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CognitoConfig</b>: The configuration of an Amazon Cognito workforce. A single Cognito workforce is created using and corresponds to a single <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools.html"> Amazon Cognito user pool</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubDomain</i> The subdomain for your OIDC Identity Provider.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceIpConfig</i> A list of one to ten IP address ranges (<a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html">CIDRs</a>) to be added to the workforce allow list. By default, a workforce isn't restricted to specific IP addresses.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SourceIpConfig</b>: A list of one to ten IP address ranges (<a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html">CIDRs</a>) to be added to the workforce allow list. By default, a workforce isn't restricted to specific IP addresses.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdatedDate</i> The most recent date that was used to successfully add one or more IP address ranges (<a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html">CIDRs</a>) to a private workforce's allow list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WorkforceArn</i> The Amazon Resource Name (ARN) of the private workforce.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WorkforceName</i> The name of the private workforce.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Cidrs</i> A list of one to ten <a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html">Classless Inter-Domain Routing</a> (CIDR) values. Maximum: Ten CIDR values <note> The following Length Constraints apply to individual CIDR values in the CIDR value list. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClientId</i> The client ID for your Amazon Cognito user pool.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UserPool</i> A <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools.html"> user pool</a> is a user directory in Amazon Cognito. With a user pool, your users can sign in to your web or mobile app through Amazon Cognito. Your users can also sign in through social identity providers like Google, Facebook, Amazon, or Apple, and through SAML identity providers.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>JwksUri</i> The OIDC IdP JSON Web Key Set (Jwks) URI used to configure your private workforce.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LogoutEndpoint</i> The OIDC IdP logout endpoint used to configure your private workforce.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UserInfoEndpoint</i> The OIDC IdP user information endpoint used to configure your private workforce.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TokenEndpoint</i> The OIDC IdP token endpoint used to configure your private workforce.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AuthorizationEndpoint</i> The OIDC IdP authorization endpoint used to configure your private workforce.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Issuer</i> The OIDC IdP issuer used to configure your private workforce.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClientId</i> The OIDC IdP client ID used to configure your private workforce.<br/>        """
        pass

    def update_workteam(self, WorkteamName: str, MemberDefinitions: List[MemberDefinition]=None, Description: str=None, NotificationConfiguration: NotificationConfiguration=None) -> UpdateWorkteamResponse:
        r"""Updates an existing work team with new member definitions or description.

        :param self:
        :param NotificationConfiguration:  Configures SNS topic notifications for available or expiring work items:<br/>Description:  An updated description for the work team.<br/>MemberDefinitions:  A list of <code>MemberDefinition</code> objects that contains objects that identify the workers that make up the work team.  Workforces can be created using Amazon Cognito or your own OIDC Identity Provider (IdP). For private workforces created using Amazon Cognito use <code>CognitoMemberDefinition</code>. For workforces created using your own OIDC identity provider (IdP) use <code>OidcMemberDefinition</code>. You should not provide input for both of these parameters in a single request. For workforces created using Amazon Cognito, private work teams correspond to Amazon Cognito <i>user groups</i> within the user pool used to create a workforce. All of the <code>CognitoMemberDefinition</code> objects that make up the member definition must have the same <code>ClientId</code> and <code>UserPool</code> values. To add a Amazon Cognito user group to an existing worker pool, see <a href="">Adding groups to a User Pool</a>. For more information about user pools, see <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools.html">Amazon Cognito User Pools</a>. For workforces created using your own OIDC IdP, specify the user groups that you want to include in your private work team in <code>OidcMemberDefinition</code> by listing those groups in <code>Groups</code>. Be aware that user groups that are already in the work team must also be listed in <code>Groups</code> when you make this request to remain on the work team. If you do not include these user groups, they will no longer be associated with the work team you update. <br/>WorkteamName:  The name of the work team to update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NotificationTopicArn</i> The ARN for the SNS topic to which notifications should be published.<br/>
        :return: Workteam:  A <code>Workteam</code> object that describes the updated work team.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NotificationConfiguration</i> Configures SNS notifications of available or expiring work items for work teams.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>NotificationConfiguration</b>: Configures SNS notifications of available or expiring work items for work teams.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdatedDate</i> The date and time that the work team was last updated (timestamp).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreateDate</i> The date and time that the work team was created (timestamp).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubDomain</i> The URI of the labeling job's user interface. Workers open this URI to start labeling your data objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A description of the work team.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProductListingIds</i> The Amazon Marketplace identifier for a vendor's work team.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WorkforceArn</i> The Amazon Resource Name (ARN) of the workforce.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WorkteamArn</i> The Amazon Resource Name (ARN) that identifies the work team.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MemberDefinitions</i> A list of <code>MemberDefinition</code> objects that contains objects that identify the workers that make up the work team.  Workforces can be created using Amazon Cognito or your own OIDC Identity Provider (IdP). For private workforces created using Amazon Cognito use <code>CognitoMemberDefinition</code>. For workforces created using your own OIDC identity provider (IdP) use <code>OidcMemberDefinition</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WorkteamName</i> The name of the work team.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NotificationTopicArn</i> The ARN for the SNS topic to which notifications should be published.<br/>        """
        pass





class AugmentedAIRuntime(BaseClient):
    r"""Amazon Augmented AI (Amazon A2I) adds the benefit of human judgment to any machine learning application. When an AI application can't evaluate data with a high degree of confidence, human reviewers can take over. This human review is called a human review workflow. To create and start a human review workflow, you need three resources: a <i>worker task template</i>, a <i>flow definition</i>, and a <i>human loop</i>. For information about these resources and prerequisites for using Amazon A2I, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/a2i-getting-started.html">Get Started with Amazon Augmented AI</a> in the Amazon SageMaker Developer Guide. This API reference includes information about API actions and data types that you can use to interact with Amazon A2I programmatically. Use this guide to: <ul> <li> Start a human loop with the <code>StartHumanLoop</code> operation when using Amazon A2I with a <i>custom task type</i>. To learn more about the difference between custom and built-in task types, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/a2i-task-types-general.html">Use Task Types </a>. To learn how to start a human loop using this API, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/a2i-start-human-loop.html#a2i-instructions-starthumanloop">Create and Start a Human Loop for a Custom Task Type </a> in the Amazon SageMaker Developer Guide. </li> <li> Manage your human loops. You can list all human loops that you have created, describe individual human loops, and stop and delete human loops. To learn more, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/a2i-monitor-humanloop-results.html">Monitor and Manage Your Human Loop </a> in the Amazon SageMaker Developer Guide. </li> </ul> Amazon A2I integrates APIs from various AWS services to create and start human review workflows for those services. To learn how Amazon A2I uses these APIs, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/a2i-api-references.html">Use APIs in Amazon A2I</a> in the Amazon SageMaker Developer Guide."""


    class ListHumanLoopsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_human_loops` for valid parameters"""
            pass


    class DeleteHumanLoopRequest(Mapping):
        pass
    
    class DeleteHumanLoopResponse(Mapping):
        pass
    
    class DescribeHumanLoopRequest(Mapping):
        pass
    
    class DescribeHumanLoopResponse(Mapping):
        pass
    
    class ListHumanLoopsRequest(Mapping):
        pass
    
    class ListHumanLoopsResponse(Mapping):
        pass
    
    class Timestamp(object):
        pass
    
    class StartHumanLoopRequest(Mapping):
        pass
    
    class StartHumanLoopResponse(Mapping):
        pass
    
    class HumanLoopInput(Mapping):
        pass
    
    class HumanLoopDataAttributes(Mapping):
        pass
    
    class StopHumanLoopRequest(Mapping):
        pass
    
    class StopHumanLoopResponse(Mapping):
        pass
    
    def delete_human_loop(self, HumanLoopName: str) -> DeleteHumanLoopResponse:
        r"""Deletes the specified human loop for a flow definition. If the human loop was deleted, this operation will return a <code>ResourceNotFoundException</code>. 

        :param self:
        :param HumanLoopName:  The name of the human loop that you want to delete.<br/>
        :return:         """
        pass

    def describe_human_loop(self, HumanLoopName: str) -> DescribeHumanLoopResponse:
        r"""Returns information about the specified human loop. If the human loop was deleted, this operation will return a <code>ResourceNotFoundException</code> error. 

        :param self:
        :param HumanLoopName:  The name of the human loop that you want information about.<br/>
        :return: HumanLoopOutput:  An object that contains information about the output of the human loop.:<br/>FlowDefinitionArn:  The Amazon Resource Name (ARN) of the flow definition.<br/>HumanLoopArn:  The Amazon Resource Name (ARN) of the human loop.<br/>HumanLoopName:  The name of the human loop. The name must be lowercase, unique within the Region in your account, and can have up to 63 characters. Valid characters: a-z, 0-9, and - (hyphen).<br/>HumanLoopStatus:  The status of the human loop. <br/>FailureCode:  A failure code that identifies the type of failure. Possible values: <code>ValidationError</code>, <code>Expired</code>, <code>InternalError</code> <br/>FailureReason:  The reason why a human loop failed. The failure reason is returned when the status of the human loop is <code>Failed</code>.<br/>CreationTime:  The creation time when Amazon Augmented AI created the human loop.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OutputS3Uri</i> The location of the Amazon S3 object where Amazon Augmented AI stores your human loop output.<br/>        """
        pass

    def list_human_loops(self, FlowDefinitionArn: str, CreationTimeAfter: Timestamp=None, CreationTimeBefore: Timestamp=None, SortOrder: str=None, NextToken: str=None, MaxResults: int=None) -> ListHumanLoopsResponse:
        r"""Returns information about human loops, given the specified parameters. If a human loop was deleted, it will not be included.

        :param self:
        :param MaxResults:  The total number of items to return. If the total number of available items is more than the value specified in <code>MaxResults</code>, then a <code>NextToken</code> is returned in the output. You can use this token to display the next page of results. <br/>NextToken:  A token to display the next page of results.<br/>SortOrder:  Optional. The order for displaying results. Valid values: <code>Ascending</code> and <code>Descending</code>.<br/>FlowDefinitionArn:  The Amazon Resource Name (ARN) of a flow definition.<br/>CreationTimeBefore:  (Optional) The timestamp of the date before which you want the human loops to begin in ISO 8601 format. For example, <code>2020-02-24</code>.<br/>CreationTimeAfter:  (Optional) The timestamp of the date when you want the human loops to begin in ISO 8601 format. For example, <code>2020-02-24</code>.<br/>
        :return: NextToken:  A token to display the next page of results.<br/>HumanLoopSummaries:  An array of objects that contain information about the human loops.<br/>        """
        pass

    def start_human_loop(self, HumanLoopInput: HumanLoopInput, FlowDefinitionArn: str, HumanLoopName: str, DataAttributes: HumanLoopDataAttributes=None) -> StartHumanLoopResponse:
        r"""Starts a human loop, provided that at least one activation condition is met.

        :param self:
        :param DataAttributes:  Attributes of the specified data. Use <code>DataAttributes</code> to specify if your data is free of personally identifiable information and/or free of adult content.:<br/>HumanLoopInput:  An object that contains information about the human loop.:<br/>FlowDefinitionArn:  The Amazon Resource Name (ARN) of the flow definition associated with this human loop.<br/>HumanLoopName:  The name of the human loop.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InputContent</i> Serialized input from the human loop. The input must be a string representation of a file in JSON format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ContentClassifiers</i> Declares that your content is free of personally identifiable information or adult content. Amazon SageMaker can restrict the Amazon Mechanical Turk workers who can view your task based on this information.<br/>
        :return: HumanLoopArn:  The Amazon Resource Name (ARN) of the human loop.<br/>        """
        pass

    def stop_human_loop(self, HumanLoopName: str) -> StopHumanLoopResponse:
        r"""Stops the specified human loop.

        :param self:
        :param HumanLoopName:  The name of the human loop that you want to stop.<br/>
        :return:         """
        pass





class SagemakerEdgeManager(BaseClient):
    r"""SageMaker Edge Manager dataplane service for communicating with active agents."""




    class GetDeviceRegistrationRequest(Mapping):
        pass
    
    class GetDeviceRegistrationResult(Mapping):
        pass
    
    class SendHeartbeatRequest(Mapping):
        pass
    
    class EdgeMetric(Mapping):
        pass
    
    class Model(Mapping):
        pass
    
    def get_device_registration(self, DeviceFleetName: str, DeviceName: str) -> GetDeviceRegistrationResult:
        r"""Use to check if a device is registered with SageMaker Edge Manager.

        :param self:
        :param DeviceFleetName:  The name of the fleet that the device belongs to.<br/>DeviceName:  The unique name of the device you want to get the registration status from.<br/>
        :return: CacheTTL:  The amount of time, in seconds, that the registration status is stored on the device’s cache before it is refreshed.<br/>DeviceRegistration:  Describes if the device is currently registered with SageMaker Edge Manager.<br/>        """
        pass

    def send_heartbeat(self, DeviceFleetName: str, DeviceName: str, AgentVersion: str, AgentMetrics: List[EdgeMetric]=None, Models: List[Model]=None):
        r"""Use to get the current status of devices registered on SageMaker Edge Manager.

        :param self:
        :param DeviceFleetName:  The name of the fleet that the device belongs to.<br/>DeviceName:  The unique name of the device.<br/>AgentVersion:  Returns the version of the agent.<br/>Models:  Returns a list of models deployed on the the device.<br/>AgentMetrics:  For internal use. Returns a list of SageMaker Edge Manager agent operating metrics.<br/>
        :return:         """
        pass





class SageMakerFeatureStoreRuntime(BaseClient):
    r"""Contains all data plane API operations and data types for the Amazon SageMaker Feature Store. Use this API to put, delete, and retrieve (get) features from a feature store. Use the following operations to configure your <code>OnlineStore</code> and <code>OfflineStore</code> features, and to create and manage feature groups: <ul> <li>  <a href="https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateFeatureGroup.html">CreateFeatureGroup</a>  </li> <li>  <a href="https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DeleteFeatureGroup.html">DeleteFeatureGroup</a>  </li> <li>  <a href="https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeFeatureGroup.html">DescribeFeatureGroup</a>  </li> <li>  <a href="https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ListFeatureGroups.html">ListFeatureGroups</a>  </li> </ul>"""




    class BatchGetRecordRequest(Mapping):
        pass
    
    class BatchGetRecordResponse(Mapping):
        pass
    
    class BatchGetRecordIdentifier(Mapping):
        pass
    
    class DeleteRecordRequest(Mapping):
        pass
    
    class GetRecordRequest(Mapping):
        pass
    
    class GetRecordResponse(Mapping):
        pass
    
    class FeatureName(object):
        pass
    
    class PutRecordRequest(Mapping):
        pass
    
    class FeatureValue(Mapping):
        pass
    
    def batch_get_record(self, Identifiers: List[BatchGetRecordIdentifier]) -> BatchGetRecordResponse:
        r"""Retrieves a batch of <code>Records</code> from a <code>FeatureGroup</code>.

        :param self:
        :param Identifiers:  A list of <code>FeatureGroup</code> names, with their corresponding <code>RecordIdentifier</code> value, and Feature name that have been requested to be retrieved in batch.<br/>
        :return: UnprocessedIdentifiers:  A unprocessed list of <code>FeatureGroup</code> names, with their corresponding <code>RecordIdentifier</code> value, and Feature name.<br/>Errors:  A list of errors that have occured when retrieving a batch of Records.<br/>Records:  A list of Records you requested to be retrieved in batch.<br/>        """
        pass

    def delete_record(self, EventTime: str, RecordIdentifierValueAsString: str, FeatureGroupName: str):
        r"""Deletes a <code>Record</code> from a <code>FeatureGroup</code>. A new record will show up in the <code>OfflineStore</code> when the <code>DeleteRecord</code> API is called. This record will have a value of <code>True</code> in the <code>is_deleted</code> column.

        :param self:
        :param EventTime:  Timestamp indicating when the deletion event occurred. <code>EventTime</code> can be used to query data at a certain point in time.<br/>RecordIdentifierValueAsString:  The value for the <code>RecordIdentifier</code> that uniquely identifies the record, in string format. <br/>FeatureGroupName:  The name of the feature group to delete the record from. <br/>
        :return:         """
        pass

    def get_record(self, RecordIdentifierValueAsString: str, FeatureGroupName: str, FeatureNames: List[FeatureName]=None) -> GetRecordResponse:
        r"""Use for <code>OnlineStore</code> serving from a <code>FeatureStore</code>. Only the latest records stored in the <code>OnlineStore</code> can be retrieved. If no Record with <code>RecordIdentifierValue</code> is found, then an empty result is returned. 

        :param self:
        :param FeatureNames:  List of names of Features to be retrieved. If not specified, the latest value for all the Features are returned.<br/>RecordIdentifierValueAsString:  The value that corresponds to <code>RecordIdentifier</code> type and uniquely identifies the record in the <code>FeatureGroup</code>. <br/>FeatureGroupName:  The name of the feature group in which you want to put the records.<br/>
        :return: Record:  The record you requested. A list of <code>FeatureValues</code>.<br/>        """
        pass

    def put_record(self, Record: List[FeatureValue], FeatureGroupName: str):
        r"""Used for data ingestion into the <code>FeatureStore</code>. The <code>PutRecord</code> API writes to both the <code>OnlineStore</code> and <code>OfflineStore</code>. If the record is the latest record for the <code>recordIdentifier</code>, the record is written to both the <code>OnlineStore</code> and <code>OfflineStore</code>. If the record is a historic record, it is written only to the <code>OfflineStore</code>.

        :param self:
        :param Record:  List of FeatureValues to be inserted. This will be a full over-write. If you only want to update few of the feature values, do the following: <ul> <li> Use <code>GetRecord</code> to retrieve the latest record. </li> <li> Update the record returned from <code>GetRecord</code>.  </li> <li> Use <code>PutRecord</code> to update feature values. </li> </ul><br/>FeatureGroupName:  The name of the feature group that you want to insert the record into.<br/>
        :return:         """
        pass





class SageMakerRuntime(BaseClient):
    r""" The Amazon SageMaker runtime API. """




    class InvokeEndpointInput(Mapping):
        pass
    
    class InvokeEndpointOutput(Mapping):
        pass
    
    class BodyBlob(object):
        pass
    
    def invoke_endpoint(self, Body: BodyBlob, EndpointName: str, ContentType: str=None, Accept: str=None, CustomAttributes: str=None, TargetModel: str=None, TargetVariant: str=None, TargetContainerHostname: str=None, InferenceId: str=None) -> InvokeEndpointOutput:
        r"""After you deploy a model into production using Amazon SageMaker hosting services, your client applications use this API to get inferences from the model hosted at the specified endpoint.  For an overview of Amazon SageMaker, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/how-it-works.html">How It Works</a>.  Amazon SageMaker strips all POST headers except those supported by the API. Amazon SageMaker might add additional headers. You should not rely on the behavior of headers outside those enumerated in the request syntax.  Calls to <code>InvokeEndpoint</code> are authenticated by using AWS Signature Version 4. For information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html">Authenticating Requests (AWS Signature Version 4)</a> in the <i>Amazon S3 API Reference</i>. A customer's model containers must respond to requests within 60 seconds. The model itself can have a maximum processing time of 60 seconds before responding to invocations. If your model is going to take 50-60 seconds of processing time, the SDK socket timeout should be set to be 70 seconds. <note> Endpoints are scoped to an individual account, and are not public. The URL does not contain the account ID, but Amazon SageMaker determines the account ID from the authentication token that is supplied by the caller. </note>

        :param self:
        :param InferenceId:  If you provide a value, it is added to the captured data when you enable data capture on the endpoint. For information about data capture, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/model-monitor-data-capture.html">Capture Data</a>.<br/>TargetContainerHostname:  If the endpoint hosts multiple containers and is configured to use direct invocation, this parameter specifies the host name of the container to invoke.<br/>TargetVariant:  Specify the production variant to send the inference request to when invoking an endpoint that is running two or more variants. Note that this parameter overrides the default behavior for the endpoint, which is to distribute the invocation traffic based on the variant weights. For information about how to use variant targeting to perform a/b testing, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/model-ab-testing.html">Test models in production</a> <br/>TargetModel:  The model to request for inference when invoking a multi-model endpoint.<br/>CustomAttributes:  Provides additional information about a request for an inference submitted to a model hosted at an Amazon SageMaker endpoint. The information is an opaque value that is forwarded verbatim. You could use this value, for example, to provide an ID that you can use to track a request or to provide other metadata that a service endpoint was programmed to process. The value must consist of no more than 1024 visible US-ASCII characters as specified in <a href="https://tools.ietf.org/html/rfc7230#section-3.2.6">Section 3.3.6. Field Value Components</a> of the Hypertext Transfer Protocol (HTTP/1.1).  The code in your model is responsible for setting or updating any custom attributes in the response. If your code does not set this value in the response, an empty value is returned. For example, if a custom attribute represents the trace ID, your model can prepend the custom attribute with <code>Trace ID:</code> in your post-processing function. This feature is currently supported in the AWS SDKs but not in the Amazon SageMaker Python SDK.<br/>Accept:  The desired MIME type of the inference in the response.<br/>ContentType:  The MIME type of the input data in the request body.<br/>Body:  Provides input data, in the format specified in the <code>ContentType</code> request header. Amazon SageMaker passes all of the data in the body to the model.  For information about the format of the request body, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/cdf-inference.html">Common Data Formats-Inference</a>.<br/>EndpointName:  The name of the endpoint that you specified when you created the endpoint using the <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/API_CreateEndpoint.html">CreateEndpoint</a> API. <br/>
        :return: CustomAttributes:  Provides additional information in the response about the inference returned by a model hosted at an Amazon SageMaker endpoint. The information is an opaque value that is forwarded verbatim. You could use this value, for example, to return an ID received in the <code>CustomAttributes</code> header of a request or other metadata that a service endpoint was programmed to produce. The value must consist of no more than 1024 visible US-ASCII characters as specified in <a href="https://tools.ietf.org/html/rfc7230#section-3.2.6">Section 3.3.6. Field Value Components</a> of the Hypertext Transfer Protocol (HTTP/1.1). If the customer wants the custom attribute returned, the model must set the custom attribute to be included on the way back.  The code in your model is responsible for setting or updating any custom attributes in the response. If your code does not set this value in the response, an empty value is returned. For example, if a custom attribute represents the trace ID, your model can prepend the custom attribute with <code>Trace ID:</code> in your post-processing function. This feature is currently supported in the AWS SDKs but not in the Amazon SageMaker Python SDK.<br/>InvokedProductionVariant:  Identifies the production variant that was invoked.<br/>ContentType:  The MIME type of the inference returned in the response body.<br/>Body:  Includes the inference provided by the model. For information about the format of the response body, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/cdf-inference.html">Common Data Formats-Inference</a>.<br/>        """
        pass





class SavingsPlans(BaseClient):
    r"""Savings Plans are a pricing model that offer significant savings on AWS usage (for example, on Amazon EC2 instances). You commit to a consistent amount of usage, in USD per hour, for a term of 1 or 3 years, and receive a lower price for that usage. For more information, see the <a href="https://docs.aws.amazon.com/savingsplans/latest/userguide/">AWS Savings Plans User Guide</a>."""




    class CreateSavingsPlanRequest(Mapping):
        pass
    
    class CreateSavingsPlanResponse(Mapping):
        pass
    
    class DateTime(object):
        pass
    
    class TagMap(object):
        pass
    
    class DeleteQueuedSavingsPlanRequest(Mapping):
        pass
    
    class DeleteQueuedSavingsPlanResponse(Mapping):
        pass
    
    class DescribeSavingsPlanRatesRequest(Mapping):
        pass
    
    class DescribeSavingsPlanRatesResponse(Mapping):
        pass
    
    class SavingsPlanRateFilter(Mapping):
        pass
    
    class DescribeSavingsPlansRequest(Mapping):
        pass
    
    class DescribeSavingsPlansResponse(Mapping):
        pass
    
    class SavingsPlanArn(object):
        pass
    
    class SavingsPlanId(object):
        pass
    
    class SavingsPlanState(object):
        pass
    
    class SavingsPlanFilter(Mapping):
        pass
    
    class DescribeSavingsPlansOfferingRatesRequest(Mapping):
        pass
    
    class DescribeSavingsPlansOfferingRatesResponse(Mapping):
        pass
    
    class UUID(object):
        pass
    
    class SavingsPlanPaymentOption(object):
        pass
    
    class SavingsPlanType(object):
        pass
    
    class SavingsPlanProductType(object):
        pass
    
    class SavingsPlanRateServiceCode(object):
        pass
    
    class SavingsPlanRateUsageType(object):
        pass
    
    class SavingsPlanRateOperation(object):
        pass
    
    class SavingsPlanOfferingRateFilterElement(Mapping):
        pass
    
    class DescribeSavingsPlansOfferingsRequest(Mapping):
        pass
    
    class DescribeSavingsPlansOfferingsResponse(Mapping):
        pass
    
    class SavingsPlansDuration(object):
        pass
    
    class CurrencyCode(object):
        pass
    
    class SavingsPlanDescription(object):
        pass
    
    class SavingsPlanServiceCode(object):
        pass
    
    class SavingsPlanUsageType(object):
        pass
    
    class SavingsPlanOperation(object):
        pass
    
    class SavingsPlanOfferingFilterElement(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    def create_savings_plan(self, commitment: str, savingsPlanOfferingId: str, upfrontPaymentAmount: str=None, purchaseTime: DateTime=None, clientToken: str=None, tags: TagMap=None) -> CreateSavingsPlanResponse:
        r"""Creates a Savings Plan.

        :param self:
        :param tags:  One or more tags.<br/>clientToken:  Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.<br/>purchaseTime:  The time at which to purchase the Savings Plan, in UTC format (YYYY-MM-DDTHH:MM:SSZ).<br/>upfrontPaymentAmount:  The up-front payment amount. This is a whole number between 50 and 99 percent of the total value of the Savings Plan. This parameter is supported only if the payment option is <code>Partial Upfront</code>.<br/>commitment:  The hourly commitment, in USD. This is a value between 0.001 and 1 million. You cannot specify more than three digits after the decimal point.<br/>savingsPlanOfferingId:  The ID of the offering.<br/>
        :return: savingsPlanId:  The ID of the Savings Plan.<br/>        """
        pass

    def delete_queued_savings_plan(self, savingsPlanId: str) -> DeleteQueuedSavingsPlanResponse:
        r"""Deletes the queued purchase for the specified Savings Plan.

        :param self:
        :param savingsPlanId:  The ID of the Savings Plan.<br/>
        :return:         """
        pass

    def describe_savings_plan_rates(self, savingsPlanId: str, filters: List[SavingsPlanRateFilter]=None, nextToken: str=None, maxResults: int=None) -> DescribeSavingsPlanRatesResponse:
        r"""Describes the specified Savings Plans rates.

        :param self:
        :param maxResults:  The maximum number of results to return with a single call. To retrieve additional results, make another call with the returned token value.<br/>nextToken:  The token for the next page of results.<br/>filters:  The filters.<br/>savingsPlanId:  The ID of the Savings Plan.<br/>
        :return: nextToken:  The token to use to retrieve the next page of results. This value is null when there are no more results to return.<br/>searchResults:  Information about the Savings Plans rates.<br/>savingsPlanId:  The ID of the Savings Plan.<br/>        """
        pass

    def describe_savings_plans(self, savingsPlanArns: List[SavingsPlanArn]=None, savingsPlanIds: List[SavingsPlanId]=None, nextToken: str=None, maxResults: int=None, states: List[SavingsPlanState]=None, filters: List[SavingsPlanFilter]=None) -> DescribeSavingsPlansResponse:
        r"""Describes the specified Savings Plans.

        :param self:
        :param filters:  The filters.<br/>states:  The states.<br/>maxResults:  The maximum number of results to return with a single call. To retrieve additional results, make another call with the returned token value.<br/>nextToken:  The token for the next page of results.<br/>savingsPlanIds:  The IDs of the Savings Plans.<br/>savingsPlanArns:  The Amazon Resource Names (ARN) of the Savings Plans.<br/>
        :return: nextToken:  The token to use to retrieve the next page of results. This value is null when there are no more results to return.<br/>savingsPlans:  Information about the Savings Plans.<br/>        """
        pass

    def describe_savings_plans_offering_rates(self, savingsPlanOfferingIds: List[UUID]=None, savingsPlanPaymentOptions: List[SavingsPlanPaymentOption]=None, savingsPlanTypes: List[SavingsPlanType]=None, products: List[SavingsPlanProductType]=None, serviceCodes: List[SavingsPlanRateServiceCode]=None, usageTypes: List[SavingsPlanRateUsageType]=None, operations: List[SavingsPlanRateOperation]=None, filters: List[SavingsPlanOfferingRateFilterElement]=None, nextToken: str=None, maxResults: int=None) -> DescribeSavingsPlansOfferingRatesResponse:
        r"""Describes the specified Savings Plans offering rates.

        :param self:
        :param maxResults:  The maximum number of results to return with a single call. To retrieve additional results, make another call with the returned token value.<br/>nextToken:  The token for the next page of results.<br/>filters:  The filters.<br/>operations:  The specific AWS operation for the line item in the billing report.<br/>usageTypes:  The usage details of the line item in the billing report.<br/>serviceCodes:  The services.<br/>products:  The AWS products.<br/>savingsPlanTypes:  The plan types.<br/>savingsPlanPaymentOptions:  The payment options.<br/>savingsPlanOfferingIds:  The IDs of the offerings.<br/>
        :return: nextToken:  The token to use to retrieve the next page of results. This value is null when there are no more results to return.<br/>searchResults:  Information about the Savings Plans offering rates.<br/>        """
        pass

    def describe_savings_plans_offerings(self, offeringIds: List[UUID]=None, paymentOptions: List[SavingsPlanPaymentOption]=None, productType: str=None, planTypes: List[SavingsPlanType]=None, durations: List[SavingsPlansDuration]=None, currencies: List[CurrencyCode]=None, descriptions: List[SavingsPlanDescription]=None, serviceCodes: List[SavingsPlanServiceCode]=None, usageTypes: List[SavingsPlanUsageType]=None, operations: List[SavingsPlanOperation]=None, filters: List[SavingsPlanOfferingFilterElement]=None, nextToken: str=None, maxResults: int=None) -> DescribeSavingsPlansOfferingsResponse:
        r"""Describes the specified Savings Plans offerings.

        :param self:
        :param maxResults:  The maximum number of results to return with a single call. To retrieve additional results, make another call with the returned token value.<br/>nextToken:  The token for the next page of results.<br/>filters:  The filters.<br/>operations:  The specific AWS operation for the line item in the billing report.<br/>usageTypes:  The usage details of the line item in the billing report.<br/>serviceCodes:  The services.<br/>descriptions:  The descriptions.<br/>currencies:  The currencies.<br/>durations:  The durations, in seconds.<br/>planTypes:  The plan type.<br/>productType:  The product type.<br/>paymentOptions:  The payment options.<br/>offeringIds:  The IDs of the offerings.<br/>
        :return: nextToken:  The token to use to retrieve the next page of results. This value is null when there are no more results to return.<br/>searchResults:  Information about the Savings Plans offerings.<br/>        """
        pass

    def list_tags_for_resource(self, resourceArn: str) -> ListTagsForResourceResponse:
        r"""Lists the tags for the specified resource.

        :param self:
        :param resourceArn:  The Amazon Resource Name (ARN) of the resource.<br/>
        :return: tags:  Information about the tags.<br/>        """
        pass

    def tag_resource(self, tags: TagMap, resourceArn: str) -> TagResourceResponse:
        r"""Adds the specified tags to the specified resource.

        :param self:
        :param tags:  One or more tags. For example, { "tags": {"key1":"value1", "key2":"value2"} }.<br/>resourceArn:  The Amazon Resource Name (ARN) of the resource.<br/>
        :return:         """
        pass

    def untag_resource(self, tagKeys: List[TagKey], resourceArn: str) -> UntagResourceResponse:
        r"""Removes the specified tags from the specified resource.

        :param self:
        :param tagKeys:  The tag keys.<br/>resourceArn:  The Amazon Resource Name (ARN) of the resource.<br/>
        :return:         """
        pass





class Schemas(BaseClient):
    r"""Amazon EventBridge Schema Registry"""

    class CodeBindingExistsWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_code_binding` for valid parameters"""
            pass


    class ListDiscoverersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_discoverers` for valid parameters"""
            pass
    class ListRegistriesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_registries` for valid parameters"""
            pass
    class ListSchemaVersionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_schema_versions` for valid parameters"""
            pass
    class ListSchemasPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_schemas` for valid parameters"""
            pass
    class SearchSchemasPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `search_schemas` for valid parameters"""
            pass


    class CreateDiscovererRequest(Mapping):
        pass
    
    class CreateDiscovererResponse(Mapping):
        pass
    
    class Tags(object):
        pass
    
    class CreateRegistryRequest(Mapping):
        pass
    
    class CreateRegistryResponse(Mapping):
        pass
    
    class CreateSchemaRequest(Mapping):
        pass
    
    class CreateSchemaResponse(Mapping):
        pass
    
    class DeleteDiscovererRequest(Mapping):
        pass
    
    class DeleteRegistryRequest(Mapping):
        pass
    
    class DeleteResourcePolicyRequest(Mapping):
        pass
    
    class DeleteSchemaRequest(Mapping):
        pass
    
    class DeleteSchemaVersionRequest(Mapping):
        pass
    
    class DescribeCodeBindingRequest(Mapping):
        pass
    
    class DescribeCodeBindingResponse(Mapping):
        pass
    
    class DescribeDiscovererRequest(Mapping):
        pass
    
    class DescribeDiscovererResponse(Mapping):
        pass
    
    class DescribeRegistryRequest(Mapping):
        pass
    
    class DescribeRegistryResponse(Mapping):
        pass
    
    class DescribeSchemaRequest(Mapping):
        pass
    
    class DescribeSchemaResponse(Mapping):
        pass
    
    class ExportSchemaRequest(Mapping):
        pass
    
    class ExportSchemaResponse(Mapping):
        pass
    
    class GetCodeBindingSourceRequest(Mapping):
        pass
    
    class GetCodeBindingSourceResponse(Mapping):
        pass
    
    class GetDiscoveredSchemaRequest(Mapping):
        pass
    
    class GetDiscoveredSchemaResponse(Mapping):
        pass
    
    class GetDiscoveredSchemaVersionItemInput(object):
        pass
    
    class GetResourcePolicyRequest(Mapping):
        pass
    
    class GetResourcePolicyResponse(Mapping):
        pass
    
    class ListDiscoverersRequest(Mapping):
        pass
    
    class ListDiscoverersResponse(Mapping):
        pass
    
    class ListRegistriesRequest(Mapping):
        pass
    
    class ListRegistriesResponse(Mapping):
        pass
    
    class ListSchemaVersionsRequest(Mapping):
        pass
    
    class ListSchemaVersionsResponse(Mapping):
        pass
    
    class ListSchemasRequest(Mapping):
        pass
    
    class ListSchemasResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class PutCodeBindingRequest(Mapping):
        pass
    
    class PutCodeBindingResponse(Mapping):
        pass
    
    class PutResourcePolicyRequest(Mapping):
        pass
    
    class PutResourcePolicyResponse(Mapping):
        pass
    
    class SearchSchemasRequest(Mapping):
        pass
    
    class SearchSchemasResponse(Mapping):
        pass
    
    class StartDiscovererRequest(Mapping):
        pass
    
    class StartDiscovererResponse(Mapping):
        pass
    
    class StopDiscovererRequest(Mapping):
        pass
    
    class StopDiscovererResponse(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class __string(object):
        pass
    
    class UpdateDiscovererRequest(Mapping):
        pass
    
    class UpdateDiscovererResponse(Mapping):
        pass
    
    class UpdateRegistryRequest(Mapping):
        pass
    
    class UpdateRegistryResponse(Mapping):
        pass
    
    class UpdateSchemaRequest(Mapping):
        pass
    
    class UpdateSchemaResponse(Mapping):
        pass
    
    def create_discoverer(self, SourceArn: str, Description: str=None, Tags: Tags=None) -> CreateDiscovererResponse:
        r"""Creates a discoverer.

        :param self:
        :param Tags:  Tags associated with the resource.<br/>SourceArn:  The ARN of the event bus.<br/>Description:  A description for the discoverer.<br/>
        :return: Tags:  Tags associated with the resource.<br/>State:  The state of the discoverer.<br/>SourceArn:  The ARN of the event bus.<br/>DiscovererId:  The ID of the discoverer.<br/>DiscovererArn:  The ARN of the discoverer.<br/>Description:  The description of the discoverer.<br/>        """
        pass

    def create_registry(self, RegistryName: str, Description: str=None, Tags: Tags=None) -> CreateRegistryResponse:
        r"""Creates a registry.

        :param self:
        :param Tags:  Tags to associate with the registry.<br/>RegistryName:  The name of the registry.<br/>Description:  A description of the registry to be created.<br/>
        :return: Tags:  Tags associated with the registry.<br/>RegistryName:  The name of the registry.<br/>RegistryArn:  The ARN of the registry.<br/>Description:  The description of the registry.<br/>        """
        pass

    def create_schema(self, Type: str, SchemaName: str, RegistryName: str, Content: str, Description: str=None, Tags: Tags=None) -> CreateSchemaResponse:
        r"""Creates a schema definition. <note>Inactive schemas will be deleted after two years.</note>

        :param self:
        :param Type:  The type of schema.<br/>Tags:  Tags associated with the schema.<br/>SchemaName:  The name of the schema.<br/>RegistryName:  The name of the registry.<br/>Description:  A description of the schema.<br/>Content:  The source of the schema definition.<br/>
        :return: VersionCreatedDate:  The date the schema version was created.<br/>Type:  The type of the schema.<br/>Tags:  Key-value pairs associated with a resource.<br/>SchemaVersion:  The version number of the schema<br/>SchemaName:  The name of the schema.<br/>SchemaArn:  The ARN of the schema.<br/>LastModified:  The date and time that schema was modified.<br/>Description:  The description of the schema.<br/>        """
        pass

    def delete_discoverer(self, DiscovererId: str):
        r"""Deletes a discoverer.

        :param self:
        :param DiscovererId:  The ID of the discoverer.<br/>
        :return:         """
        pass

    def delete_registry(self, RegistryName: str):
        r"""Deletes a Registry.

        :param self:
        :param RegistryName:  The name of the registry.<br/>
        :return:         """
        pass

    def delete_resource_policy(self, RegistryName: str=None):
        r"""Delete the resource-based policy attached to the specified registry.

        :param self:
        :param RegistryName:  The name of the registry.<br/>
        :return:         """
        pass

    def delete_schema(self, SchemaName: str, RegistryName: str):
        r"""Delete a schema definition.

        :param self:
        :param SchemaName:  The name of the schema.<br/>RegistryName:  The name of the registry.<br/>
        :return:         """
        pass

    def delete_schema_version(self, SchemaVersion: str, SchemaName: str, RegistryName: str):
        r"""Delete the schema version definition

        :param self:
        :param SchemaVersion:  The version number of the schema<br/>SchemaName:  The name of the schema.<br/>RegistryName:  The name of the registry.<br/>
        :return:         """
        pass

    def describe_code_binding(self, SchemaName: str, RegistryName: str, Language: str, SchemaVersion: str=None) -> DescribeCodeBindingResponse:
        r"""Describe the code binding URI.

        :param self:
        :param SchemaVersion:  Specifying this limits the results to only this schema version.<br/>SchemaName:  The name of the schema.<br/>RegistryName:  The name of the registry.<br/>Language:  The language of the code binding.<br/>
        :return: Status:  The current status of code binding generation.<br/>SchemaVersion:  The version number of the schema.<br/>LastModified:  The date and time that code bindings were modified.<br/>CreationDate:  The time and date that the code binding was created.<br/>        """
        pass

    def describe_discoverer(self, DiscovererId: str) -> DescribeDiscovererResponse:
        r"""Describes the discoverer.

        :param self:
        :param DiscovererId:  The ID of the discoverer.<br/>
        :return: Tags:  Tags associated with the resource.<br/>State:  The state of the discoverer.<br/>SourceArn:  The ARN of the event bus.<br/>DiscovererId:  The ID of the discoverer.<br/>DiscovererArn:  The ARN of the discoverer.<br/>Description:  The description of the discoverer.<br/>        """
        pass

    def describe_registry(self, RegistryName: str) -> DescribeRegistryResponse:
        r"""Describes the registry.

        :param self:
        :param RegistryName:  The name of the registry.<br/>
        :return: Tags:  Tags associated with the registry.<br/>RegistryName:  The name of the registry.<br/>RegistryArn:  The ARN of the registry.<br/>Description:  The description of the registry.<br/>        """
        pass

    def describe_schema(self, SchemaName: str, RegistryName: str, SchemaVersion: str=None) -> DescribeSchemaResponse:
        r"""Retrieve the schema definition.

        :param self:
        :param SchemaVersion:  Specifying this limits the results to only this schema version.<br/>SchemaName:  The name of the schema.<br/>RegistryName:  The name of the registry.<br/>
        :return: VersionCreatedDate:  The date the schema version was created.<br/>Type:  The type of the schema.<br/>Tags:  Tags associated with the resource.<br/>SchemaVersion:  The version number of the schema<br/>SchemaName:  The name of the schema.<br/>SchemaArn:  The ARN of the schema.<br/>LastModified:  The date and time that schema was modified.<br/>Description:  The description of the schema.<br/>Content:  The source of the schema definition.<br/>        """
        pass

    def export_schema(self, Type: str, SchemaName: str, RegistryName: str, SchemaVersion: str=None) -> ExportSchemaResponse:
        r"""

        :param self:
        :param Type:  <br/>SchemaVersion:  Specifying this limits the results to only this schema version.<br/>SchemaName:  The name of the schema.<br/>RegistryName:  The name of the registry.<br/>
        :return: Type:  <br/>SchemaVersion:  <br/>SchemaName:  <br/>SchemaArn:  <br/>Content:  <br/>        """
        pass

    def get_code_binding_source(self, SchemaName: str, RegistryName: str, Language: str, SchemaVersion: str=None) -> GetCodeBindingSourceResponse:
        r"""Get the code binding source URI.

        :param self:
        :param SchemaVersion:  Specifying this limits the results to only this schema version.<br/>SchemaName:  The name of the schema.<br/>RegistryName:  The name of the registry.<br/>Language:  The language of the code binding.<br/>
        :return: Body:  <br/>        """
        pass

    def get_discovered_schema(self, Type: str, Events: List[GetDiscoveredSchemaVersionItemInput]) -> GetDiscoveredSchemaResponse:
        r"""Get the discovered schema that was generated based on sampled events.

        :param self:
        :param Type:  The type of event.<br/>Events:  An array of strings where each string is a JSON event. These are the events that were used to generate the schema. The array includes a single type of event and has a maximum size of 10 events.<br/>
        :return: Content:  The source of the schema definition.<br/>        """
        pass

    def get_resource_policy(self, RegistryName: str=None) -> GetResourcePolicyResponse:
        r"""Retrieves the resource-based policy attached to a given registry.

        :param self:
        :param RegistryName:  The name of the registry.<br/>
        :return: RevisionId:  The revision ID.<br/>Policy:  The resource-based policy.<br/>        """
        pass

    def list_discoverers(self, DiscovererIdPrefix: str=None, Limit: int=None, NextToken: str=None, SourceArnPrefix: str=None) -> ListDiscoverersResponse:
        r"""List the discoverers.

        :param self:
        :param SourceArnPrefix:  Specifying this limits the results to only those ARNs that start with the specified prefix.<br/>NextToken:  The token that specifies the next page of results to return. To request the first page, leave NextToken empty. The token will expire in 24 hours, and cannot be shared with other accounts.<br/>Limit:  <br/>DiscovererIdPrefix:  Specifying this limits the results to only those discoverer IDs that start with the specified prefix.<br/>
        :return: NextToken:  The token that specifies the next page of results to return. To request the first page, leave NextToken empty. The token will expire in 24 hours, and cannot be shared with other accounts.<br/>Discoverers:  An array of DiscovererSummary information.<br/>        """
        pass

    def list_registries(self, Limit: int=None, NextToken: str=None, RegistryNamePrefix: str=None, Scope: str=None) -> ListRegistriesResponse:
        r"""List the registries.

        :param self:
        :param Scope:  Can be set to Local or AWS to limit responses to your custom registries, or the ones provided by AWS.<br/>RegistryNamePrefix:  Specifying this limits the results to only those registry names that start with the specified prefix.<br/>NextToken:  The token that specifies the next page of results to return. To request the first page, leave NextToken empty. The token will expire in 24 hours, and cannot be shared with other accounts.<br/>Limit:  <br/>
        :return: Registries:  An array of registry summaries.<br/>NextToken:  The token that specifies the next page of results to return. To request the first page, leave NextToken empty. The token will expire in 24 hours, and cannot be shared with other accounts.<br/>        """
        pass

    def list_schema_versions(self, SchemaName: str, RegistryName: str, Limit: int=None, NextToken: str=None) -> ListSchemaVersionsResponse:
        r"""Provides a list of the schema versions and related information.

        :param self:
        :param SchemaName:  The name of the schema.<br/>RegistryName:  The name of the registry.<br/>NextToken:  The token that specifies the next page of results to return. To request the first page, leave NextToken empty. The token will expire in 24 hours, and cannot be shared with other accounts.<br/>Limit:  <br/>
        :return: SchemaVersions:  An array of schema version summaries.<br/>NextToken:  The token that specifies the next page of results to return. To request the first page, leave NextToken empty. The token will expire in 24 hours, and cannot be shared with other accounts.<br/>        """
        pass

    def list_schemas(self, RegistryName: str, Limit: int=None, NextToken: str=None, SchemaNamePrefix: str=None) -> ListSchemasResponse:
        r"""List the schemas.

        :param self:
        :param SchemaNamePrefix:  Specifying this limits the results to only those schema names that start with the specified prefix.<br/>RegistryName:  The name of the registry.<br/>NextToken:  The token that specifies the next page of results to return. To request the first page, leave NextToken empty. The token will expire in 24 hours, and cannot be shared with other accounts.<br/>Limit:  <br/>
        :return: Schemas:  An array of schema summaries.<br/>NextToken:  The token that specifies the next page of results to return. To request the first page, leave NextToken empty. The token will expire in 24 hours, and cannot be shared with other accounts.<br/>        """
        pass

    def list_tags_for_resource(self, ResourceArn: str) -> ListTagsForResourceResponse:
        r"""Get tags for resource.

        :param self:
        :param ResourceArn:  The ARN of the resource.<br/>
        :return: Tags:  Key-value pairs associated with a resource.<br/>        """
        pass

    def put_code_binding(self, SchemaName: str, RegistryName: str, Language: str, SchemaVersion: str=None) -> PutCodeBindingResponse:
        r"""Put code binding URI

        :param self:
        :param SchemaVersion:  Specifying this limits the results to only this schema version.<br/>SchemaName:  The name of the schema.<br/>RegistryName:  The name of the registry.<br/>Language:  The language of the code binding.<br/>
        :return: Status:  The current status of code binding generation.<br/>SchemaVersion:  The version number of the schema.<br/>LastModified:  The date and time that code bindings were modified.<br/>CreationDate:  The time and date that the code binding was created.<br/>        """
        pass

    def put_resource_policy(self, Policy: str, RegistryName: str=None, RevisionId: str=None) -> PutResourcePolicyResponse:
        r"""The name of the policy.

        :param self:
        :param RevisionId:  The revision ID of the policy.<br/>RegistryName:  The name of the registry.<br/>Policy:  The resource-based policy.<br/>
        :return: RevisionId:  The revision ID of the policy.<br/>Policy:  The resource-based policy.<br/>        """
        pass

    def search_schemas(self, RegistryName: str, Keywords: str, Limit: int=None, NextToken: str=None) -> SearchSchemasResponse:
        r"""Search the schemas

        :param self:
        :param RegistryName:  The name of the registry.<br/>NextToken:  The token that specifies the next page of results to return. To request the first page, leave NextToken empty. The token will expire in 24 hours, and cannot be shared with other accounts.<br/>Limit:  <br/>Keywords:  Specifying this limits the results to only schemas that include the provided keywords.<br/>
        :return: Schemas:  An array of SearchSchemaSummary information.<br/>NextToken:  The token that specifies the next page of results to return. To request the first page, leave NextToken empty. The token will expire in 24 hours, and cannot be shared with other accounts.<br/>        """
        pass

    def start_discoverer(self, DiscovererId: str) -> StartDiscovererResponse:
        r"""Starts the discoverer

        :param self:
        :param DiscovererId:  The ID of the discoverer.<br/>
        :return: State:  The state of the discoverer.<br/>DiscovererId:  The ID of the discoverer.<br/>        """
        pass

    def stop_discoverer(self, DiscovererId: str) -> StopDiscovererResponse:
        r"""Stops the discoverer

        :param self:
        :param DiscovererId:  The ID of the discoverer.<br/>
        :return: State:  The state of the discoverer.<br/>DiscovererId:  The ID of the discoverer.<br/>        """
        pass

    def tag_resource(self, Tags: Tags, ResourceArn: str):
        r"""Add tags to a resource.

        :param self:
        :param Tags:  Tags associated with the resource.<br/>ResourceArn:  The ARN of the resource.<br/>
        :return:         """
        pass

    def untag_resource(self, TagKeys: List[__string], ResourceArn: str):
        r"""Removes tags from a resource.

        :param self:
        :param TagKeys:  Keys of key-value pairs.<br/>ResourceArn:  The ARN of the resource.<br/>
        :return:         """
        pass

    def update_discoverer(self, DiscovererId: str, Description: str=None) -> UpdateDiscovererResponse:
        r"""Updates the discoverer

        :param self:
        :param DiscovererId:  The ID of the discoverer.<br/>Description:  The description of the discoverer to update.<br/>
        :return: Tags:  Tags associated with the resource.<br/>State:  The state of the discoverer.<br/>SourceArn:  The ARN of the event bus.<br/>DiscovererId:  The ID of the discoverer.<br/>DiscovererArn:  The ARN of the discoverer.<br/>Description:  The description of the discoverer.<br/>        """
        pass

    def update_registry(self, RegistryName: str, Description: str=None) -> UpdateRegistryResponse:
        r"""Updates a registry.

        :param self:
        :param RegistryName:  The name of the registry.<br/>Description:  The description of the registry to update.<br/>
        :return: Tags:  Tags associated with the registry.<br/>RegistryName:  The name of the registry.<br/>RegistryArn:  The ARN of the registry.<br/>Description:  The description of the registry.<br/>        """
        pass

    def update_schema(self, SchemaName: str, RegistryName: str, ClientTokenId: str=None, Content: str=None, Description: str=None, Type: str=None) -> UpdateSchemaResponse:
        r"""Updates the schema definition <note>Inactive schemas will be deleted after two years.</note>

        :param self:
        :param Type:  The schema type for the events schema.<br/>SchemaName:  The name of the schema.<br/>RegistryName:  The name of the registry.<br/>Description:  The description of the schema.<br/>Content:  The source of the schema definition.<br/>ClientTokenId:  The ID of the client token.<br/>
        :return: VersionCreatedDate:  The date the schema version was created.<br/>Type:  The type of the schema.<br/>Tags:  Key-value pairs associated with a resource.<br/>SchemaVersion:  The version number of the schema<br/>SchemaName:  The name of the schema.<br/>SchemaArn:  The ARN of the schema.<br/>LastModified:  The date and time that schema was modified.<br/>Description:  The description of the schema.<br/>        """
        pass





class SimpleDB(BaseClient):
    r"""Amazon SimpleDB is a web service providing the core database functions of data indexing and querying in the cloud. By offloading the time and effort associated with building and operating a web-scale database, SimpleDB provides developers the freedom to focus on application development.  A traditional, clustered relational database requires a sizable upfront capital outlay, is complex to design, and often requires extensive and repetitive database administration. Amazon SimpleDB is dramatically simpler, requiring no schema, automatically indexing your data and providing a simple API for storage and access. This approach eliminates the administrative burden of data modeling, index maintenance, and performance tuning. Developers gain access to this functionality within Amazon's proven computing environment, are able to scale instantly, and pay only for what they use.   Visit <a href="http://aws.amazon.com/simpledb/">http://aws.amazon.com/simpledb/</a> for more information. """


    class ListDomainsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_domains` for valid parameters"""
            pass
    class SelectPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `select` for valid parameters"""
            pass


    class BatchDeleteAttributesRequest(Mapping):
        pass
    
    class DeletableItem(Mapping):
        pass
    
    class BatchPutAttributesRequest(Mapping):
        pass
    
    class ReplaceableItem(Mapping):
        pass
    
    class CreateDomainRequest(Mapping):
        pass
    
    class DeleteAttributesRequest(Mapping):
        pass
    
    class Attribute(Mapping):
        pass
    
    class UpdateCondition(Mapping):
        pass
    
    class DeleteDomainRequest(Mapping):
        pass
    
    class DomainMetadataRequest(Mapping):
        pass
    
    class DomainMetadataResult(Mapping):
        pass
    
    class GetAttributesRequest(Mapping):
        pass
    
    class GetAttributesResult(Mapping):
        pass
    
    class String(object):
        pass
    
    class Boolean(object):
        pass
    
    class ListDomainsRequest(Mapping):
        pass
    
    class ListDomainsResult(Mapping):
        pass
    
    class PutAttributesRequest(Mapping):
        pass
    
    class ReplaceableAttribute(Mapping):
        pass
    
    class SelectRequest(Mapping):
        pass
    
    class SelectResult(Mapping):
        pass
    
    def batch_delete_attributes(self, Items: List[DeletableItem], DomainName: str):
        r""" Performs multiple DeleteAttributes operations in a single call, which reduces round trips and latencies. This enables Amazon SimpleDB to optimize requests, which generally yields better throughput.   The following limitations are enforced for this operation: <ul> <li>1 MB request size</li> <li>25 item limit per BatchDeleteAttributes operation</li> </ul> 

        :param self:
        :param Items:  A list of items on which to perform the operation.<br/>DomainName:  The name of the domain in which the attributes are being deleted.<br/>
        :return:         """
        pass

    def batch_put_attributes(self, Items: List[ReplaceableItem], DomainName: str):
        r""" The <code>BatchPutAttributes</code> operation creates or replaces attributes within one or more items. By using this operation, the client can perform multiple <a>PutAttribute</a> operation with a single call. This helps yield savings in round trips and latencies, enabling Amazon SimpleDB to optimize requests and generally produce better throughput.   The client may specify the item name with the <code>Item.X.ItemName</code> parameter. The client may specify new attributes using a combination of the <code>Item.X.Attribute.Y.Name</code> and <code>Item.X.Attribute.Y.Value</code> parameters. The client may specify the first attribute for the first item using the parameters <code>Item.0.Attribute.0.Name</code> and <code>Item.0.Attribute.0.Value</code>, and for the second attribute for the first item by the parameters <code>Item.0.Attribute.1.Name</code> and <code>Item.0.Attribute.1.Value</code>, and so on.   Attributes are uniquely identified within an item by their name/value combination. For example, a single item can have the attributes <code>{ "first_name", "first_value" }</code> and <code>{ "first_name", "second_value" }</code>. However, it cannot have two attribute instances where both the <code>Item.X.Attribute.Y.Name</code> and <code>Item.X.Attribute.Y.Value</code> are the same.   Optionally, the requester can supply the <code>Replace</code> parameter for each individual value. Setting this value to <code>true</code> will cause the new attribute values to replace the existing attribute values. For example, if an item <code>I</code> has the attributes <code>{ 'a', '1' }, { 'b', '2'}</code> and <code>{ 'b', '3' }</code> and the requester does a BatchPutAttributes of <code>{'I', 'b', '4' }</code> with the Replace parameter set to true, the final attributes of the item will be <code>{ 'a', '1' }</code> and <code>{ 'b', '4' }</code>, replacing the previous values of the 'b' attribute with the new value.  <important> This operation is vulnerable to exceeding the maximum URL size when making a REST request using the HTTP GET method. This operation does not support conditions using <code>Expected.X.Name</code>, <code>Expected.X.Value</code>, or <code>Expected.X.Exists</code>. </important>  You can execute multiple <code>BatchPutAttributes</code> operations and other operations in parallel. However, large numbers of concurrent <code>BatchPutAttributes</code> calls can result in Service Unavailable (503) responses.   The following limitations are enforced for this operation: <ul> <li>256 attribute name-value pairs per item</li> <li>1 MB request size</li> <li>1 billion attributes per domain</li> <li>10 GB of total user data storage per domain</li> <li>25 item limit per <code>BatchPutAttributes</code> operation</li> </ul> 

        :param self:
        :param Items:  A list of items on which to perform the operation.<br/>DomainName:  The name of the domain in which the attributes are being stored.<br/>
        :return:         """
        pass

    def create_domain(self, DomainName: str):
        r""" The <code>CreateDomain</code> operation creates a new domain. The domain name should be unique among the domains associated with the Access Key ID provided in the request. The <code>CreateDomain</code> operation may take 10 or more seconds to complete.   The client can create up to 100 domains per account.   If the client requires additional domains, go to <a href="http://aws.amazon.com/contact-us/simpledb-limit-request/"> http://aws.amazon.com/contact-us/simpledb-limit-request/</a>. 

        :param self:
        :param DomainName:  The name of the domain to create. The name can range between 3 and 255 characters and can contain the following characters: a-z, A-Z, 0-9, '_', '-', and '.'.<br/>
        :return:         """
        pass

    def delete_attributes(self, ItemName: str, DomainName: str, Attributes: List[Attribute]=None, Expected: UpdateCondition=None):
        r""" Deletes one or more attributes associated with an item. If all attributes of the item are deleted, the item is deleted.   <code>DeleteAttributes</code> is an idempotent operation; running it multiple times on the same item or attribute does not result in an error response.   Because Amazon SimpleDB makes multiple copies of item data and uses an eventual consistency update model, performing a <a>GetAttributes</a> or <a>Select</a> operation (read) immediately after a <code>DeleteAttributes</code> or <a>PutAttributes</a> operation (write) might not return updated item data. 

        :param self:
        :param Expected:  The update condition which, if specified, determines whether the specified attributes will be deleted or not. The update condition must be satisfied in order for this request to be processed and the attributes to be deleted.:<br/>Attributes:  A list of Attributes. Similar to columns on a spreadsheet, attributes represent categories of data that can be assigned to items.<br/>ItemName:  The name of the item. Similar to rows on a spreadsheet, items represent individual objects that contain one or more value-attribute pairs.<br/>DomainName:  The name of the domain in which to perform the operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Exists</i> A value specifying whether or not the specified attribute must exist with the specified value in order for the update condition to be satisfied. Specify <code>true</code> if the attribute must exist for the update condition to be satisfied. Specify <code>false</code> if the attribute should not exist in order for the update condition to be satisfied.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Value</i> The value of an attribute. This value can only be specified when the <code>Exists</code> parameter is equal to <code>true</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the attribute involved in the condition.<br/>
        :return:         """
        pass

    def delete_domain(self, DomainName: str):
        r""" The <code>DeleteDomain</code> operation deletes a domain. Any items (and their attributes) in the domain are deleted as well. The <code>DeleteDomain</code> operation might take 10 or more seconds to complete. 

        :param self:
        :param DomainName:  The name of the domain to delete.<br/>
        :return:         """
        pass

    def domain_metadata(self, DomainName: str) -> DomainMetadataResult:
        r""" Returns information about the domain, including when the domain was created, the number of items and attributes in the domain, and the size of the attribute names and values. 

        :param self:
        :param DomainName:  The name of the domain for which to display the metadata of.<br/>
        :return: Timestamp:  The data and time when metadata was calculated, in Epoch (UNIX) seconds.<br/>AttributeValuesSizeBytes:  The total size of all attribute values in the domain, in bytes.<br/>AttributeValueCount:  The number of all attribute name/value pairs in the domain.<br/>AttributeNamesSizeBytes:  The total size of all unique attribute names in the domain, in bytes.<br/>AttributeNameCount:  The number of unique attribute names in the domain.<br/>ItemNamesSizeBytes:  The total size of all item names in the domain, in bytes.<br/>ItemCount:  The number of all items in the domain.<br/>        """
        pass

    def get_attributes(self, ItemName: str, DomainName: str, AttributeNames: List[String]=None, ConsistentRead: Boolean=None) -> GetAttributesResult:
        r""" Returns all of the attributes associated with the specified item. Optionally, the attributes returned can be limited to one or more attributes by specifying an attribute name parameter.   If the item does not exist on the replica that was accessed for this operation, an empty set is returned. The system does not return an error as it cannot guarantee the item does not exist on other replicas. 

        :param self:
        :param ConsistentRead:  Determines whether or not strong consistency should be enforced when data is read from SimpleDB. If <code>true</code>, any data previously written to SimpleDB will be returned. Otherwise, results will be consistent eventually, and the client may not see data that was written immediately before your read.<br/>AttributeNames:  The names of the attributes.<br/>ItemName:  The name of the item.<br/>DomainName:  The name of the domain in which to perform the operation.<br/>
        :return: Attributes:  The list of attributes returned by the operation.<br/>        """
        pass

    def list_domains(self, MaxNumberOfDomains: int=None, NextToken: str=None) -> ListDomainsResult:
        r""" The <code>ListDomains</code> operation lists all domains associated with the Access Key ID. It returns domain names up to the limit set by <a href="#MaxNumberOfDomains">MaxNumberOfDomains</a>. A <a href="#NextToken">NextToken</a> is returned if there are more than <code>MaxNumberOfDomains</code> domains. Calling <code>ListDomains</code> successive times with the <code>NextToken</code> provided by the operation returns up to <code>MaxNumberOfDomains</code> more domain names with each successive operation call. 

        :param self:
        :param NextToken:  A string informing Amazon SimpleDB where to start the next list of domain names.<br/>MaxNumberOfDomains:  The maximum number of domain names you want returned. The range is 1 to 100. The default setting is 100.<br/>
        :return: NextToken:  An opaque token indicating that there are more domains than the specified <code>MaxNumberOfDomains</code> still available.<br/>DomainNames:  A list of domain names that match the expression.<br/>        """
        pass

    def put_attributes(self, Attributes: List[ReplaceableAttribute], ItemName: str, DomainName: str, Expected: UpdateCondition=None):
        r""" The PutAttributes operation creates or replaces attributes in an item. The client may specify new attributes using a combination of the <code>Attribute.X.Name</code> and <code>Attribute.X.Value</code> parameters. The client specifies the first attribute by the parameters <code>Attribute.0.Name</code> and <code>Attribute.0.Value</code>, the second attribute by the parameters <code>Attribute.1.Name</code> and <code>Attribute.1.Value</code>, and so on.   Attributes are uniquely identified in an item by their name/value combination. For example, a single item can have the attributes <code>{ "first_name", "first_value" }</code> and <code>{ "first_name", second_value" }</code>. However, it cannot have two attribute instances where both the <code>Attribute.X.Name</code> and <code>Attribute.X.Value</code> are the same.   Optionally, the requestor can supply the <code>Replace</code> parameter for each individual attribute. Setting this value to <code>true</code> causes the new attribute value to replace the existing attribute value(s). For example, if an item has the attributes <code>{ 'a', '1' }</code>, <code>{ 'b', '2'}</code> and <code>{ 'b', '3' }</code> and the requestor calls <code>PutAttributes</code> using the attributes <code>{ 'b', '4' }</code> with the <code>Replace</code> parameter set to true, the final attributes of the item are changed to <code>{ 'a', '1' }</code> and <code>{ 'b', '4' }</code>, which replaces the previous values of the 'b' attribute with the new value.   You cannot specify an empty string as an attribute name.   Because Amazon SimpleDB makes multiple copies of client data and uses an eventual consistency update model, an immediate <a>GetAttributes</a> or <a>Select</a> operation (read) immediately after a <a>PutAttributes</a> or <a>DeleteAttributes</a> operation (write) might not return the updated data.   The following limitations are enforced for this operation: <ul> <li>256 total attribute name-value pairs per item</li> <li>One billion attributes per domain</li> <li>10 GB of total user data storage per domain</li> </ul> 

        :param self:
        :param Expected:  The update condition which, if specified, determines whether the specified attributes will be updated or not. The update condition must be satisfied in order for this request to be processed and the attributes to be updated.:<br/>Attributes:  The list of attributes.<br/>ItemName:  The name of the item.<br/>DomainName:  The name of the domain in which to perform the operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Exists</i> A value specifying whether or not the specified attribute must exist with the specified value in order for the update condition to be satisfied. Specify <code>true</code> if the attribute must exist for the update condition to be satisfied. Specify <code>false</code> if the attribute should not exist in order for the update condition to be satisfied.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Value</i> The value of an attribute. This value can only be specified when the <code>Exists</code> parameter is equal to <code>true</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the attribute involved in the condition.<br/>
        :return:         """
        pass

    def select(self, SelectExpression: str, NextToken: str=None, ConsistentRead: Boolean=None) -> SelectResult:
        r""" The <code>Select</code> operation returns a set of attributes for <code>ItemNames</code> that match the select expression. <code>Select</code> is similar to the standard SQL SELECT statement.   The total size of the response cannot exceed 1 MB in total size. Amazon SimpleDB automatically adjusts the number of items returned per page to enforce this limit. For example, if the client asks to retrieve 2500 items, but each individual item is 10 kB in size, the system returns 100 items and an appropriate <code>NextToken</code> so the client can access the next page of results.   For information on how to construct select expressions, see Using Select to Create Amazon SimpleDB Queries in the Developer Guide. 

        :param self:
        :param ConsistentRead:  Determines whether or not strong consistency should be enforced when data is read from SimpleDB. If <code>true</code>, any data previously written to SimpleDB will be returned. Otherwise, results will be consistent eventually, and the client may not see data that was written immediately before your read.<br/>NextToken:  A string informing Amazon SimpleDB where to start the next list of <code>ItemNames</code>.<br/>SelectExpression:  The expression used to query the domain.<br/>
        :return: NextToken:  An opaque token indicating that more items than <code>MaxNumberOfItems</code> were matched, the response size exceeded 1 megabyte, or the execution time exceeded 5 seconds.<br/>Items:  A list of items that match the select expression.<br/>        """
        pass





class SecretsManager(BaseClient):
    r"""<fullname>AWS Secrets Manager API Reference</fullname> AWS Secrets Manager provides a service to enable you to store, manage, and retrieve, secrets. This guide provides descriptions of the Secrets Manager API. For more information about using this service, see the <a href="https://docs.aws.amazon.com/secretsmanager/latest/userguide/introduction.html">AWS Secrets Manager User Guide</a>.  <b>API Version</b>  This version of the Secrets Manager API Reference documents the Secrets Manager API version 2017-10-17. <note> As an alternative to using the API, you can use one of the AWS SDKs, which consist of libraries and sample code for various programming languages and platforms such as Java, Ruby, .NET, iOS, and Android. The SDKs provide a convenient way to create programmatic access to AWS Secrets Manager. For example, the SDKs provide cryptographically signing requests, managing errors, and retrying requests automatically. For more information about the AWS SDKs, including downloading and installing them, see <a href="http://aws.amazon.com/tools/">Tools for Amazon Web Services</a>. </note> We recommend you use the AWS SDKs to make programmatic API calls to Secrets Manager. However, you also can use the Secrets Manager HTTP Query API to make direct calls to the Secrets Manager web service. To learn more about the Secrets Manager HTTP Query API, see <a href="https://docs.aws.amazon.com/secretsmanager/latest/userguide/query-requests.html">Making Query Requests</a> in the <i>AWS Secrets Manager User Guide</i>.  Secrets Manager API supports GET and POST requests for all actions, and doesn't require you to use GET for some actions and POST for others. However, GET requests are subject to the limitation size of a URL. Therefore, for operations that require larger sizes, use a POST request.  <b>Support and Feedback for AWS Secrets Manager</b>  We welcome your feedback. Send your comments to <a href="mailto:awssecretsmanager-feedback@amazon.com">awssecretsmanager-feedback@amazon.com</a>, or post your feedback and questions in the <a href="http://forums.aws.amazon.com/forum.jspa?forumID=296">AWS Secrets Manager Discussion Forum</a>. For more information about the AWS Discussion Forums, see <a href="http://forums.aws.amazon.com/help.jspa">Forums Help</a>.  <b>How examples are presented</b>  The JSON that AWS Secrets Manager expects as your request parameters and the service returns as a response to HTTP query requests contain single, long strings without line breaks or white space formatting. The JSON shown in the examples displays the code formatted with both line breaks and white space to improve readability. When example input parameters can also cause long strings extending beyond the screen, you can insert line breaks to enhance readability. You should always submit the input as a single JSON text string.  <b>Logging API Requests</b>  AWS Secrets Manager supports AWS CloudTrail, a service that records AWS API calls for your AWS account and delivers log files to an Amazon S3 bucket. By using information that's collected by AWS CloudTrail, you can determine the requests successfully made to Secrets Manager, who made the request, when it was made, and so on. For more about AWS Secrets Manager and support for AWS CloudTrail, see <a href="http://docs.aws.amazon.com/secretsmanager/latest/userguide/monitoring.html#monitoring_cloudtrail">Logging AWS Secrets Manager Events with AWS CloudTrail</a> in the <i>AWS Secrets Manager User Guide</i>. To learn more about CloudTrail, including enabling it and find your log files, see the <a href="https://docs.aws.amazon.com/awscloudtrail/latest/userguide/what_is_cloud_trail_top_level.html">AWS CloudTrail User Guide</a>."""


    class ListSecretsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_secrets` for valid parameters"""
            pass


    class CancelRotateSecretRequest(Mapping):
        pass
    
    class CancelRotateSecretResponse(Mapping):
        pass
    
    class CreateSecretRequest(Mapping):
        pass
    
    class CreateSecretResponse(Mapping):
        pass
    
    class SecretBinaryType(object):
        pass
    
    class Tag(Mapping):
        pass
    
    class ReplicaRegionType(Mapping):
        pass
    
    class BooleanType(object):
        pass
    
    class DeleteResourcePolicyRequest(Mapping):
        pass
    
    class DeleteResourcePolicyResponse(Mapping):
        pass
    
    class DeleteSecretRequest(Mapping):
        pass
    
    class DeleteSecretResponse(Mapping):
        pass
    
    class RecoveryWindowInDaysType(object):
        pass
    
    class DescribeSecretRequest(Mapping):
        pass
    
    class DescribeSecretResponse(Mapping):
        pass
    
    class GetRandomPasswordRequest(Mapping):
        pass
    
    class GetRandomPasswordResponse(Mapping):
        pass
    
    class PasswordLengthType(object):
        pass
    
    class ExcludeNumbersType(object):
        pass
    
    class ExcludePunctuationType(object):
        pass
    
    class ExcludeUppercaseType(object):
        pass
    
    class ExcludeLowercaseType(object):
        pass
    
    class IncludeSpaceType(object):
        pass
    
    class RequireEachIncludedTypeType(object):
        pass
    
    class GetResourcePolicyRequest(Mapping):
        pass
    
    class GetResourcePolicyResponse(Mapping):
        pass
    
    class GetSecretValueRequest(Mapping):
        pass
    
    class GetSecretValueResponse(Mapping):
        pass
    
    class ListSecretVersionIdsRequest(Mapping):
        pass
    
    class ListSecretVersionIdsResponse(Mapping):
        pass
    
    class ListSecretsRequest(Mapping):
        pass
    
    class ListSecretsResponse(Mapping):
        pass
    
    class Filter(Mapping):
        pass
    
    class PutResourcePolicyRequest(Mapping):
        pass
    
    class PutResourcePolicyResponse(Mapping):
        pass
    
    class PutSecretValueRequest(Mapping):
        pass
    
    class PutSecretValueResponse(Mapping):
        pass
    
    class SecretVersionStageType(object):
        pass
    
    class RemoveRegionsFromReplicationRequest(Mapping):
        pass
    
    class RemoveRegionsFromReplicationResponse(Mapping):
        pass
    
    class RegionType(object):
        pass
    
    class ReplicateSecretToRegionsRequest(Mapping):
        pass
    
    class ReplicateSecretToRegionsResponse(Mapping):
        pass
    
    class RestoreSecretRequest(Mapping):
        pass
    
    class RestoreSecretResponse(Mapping):
        pass
    
    class RotateSecretRequest(Mapping):
        pass
    
    class RotateSecretResponse(Mapping):
        pass
    
    class RotationRulesType(Mapping):
        pass
    
    class StopReplicationToReplicaRequest(Mapping):
        pass
    
    class StopReplicationToReplicaResponse(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class TagKeyType(object):
        pass
    
    class UpdateSecretRequest(Mapping):
        pass
    
    class UpdateSecretResponse(Mapping):
        pass
    
    class UpdateSecretVersionStageRequest(Mapping):
        pass
    
    class UpdateSecretVersionStageResponse(Mapping):
        pass
    
    class ValidateResourcePolicyRequest(Mapping):
        pass
    
    class ValidateResourcePolicyResponse(Mapping):
        pass
    
    def cancel_rotate_secret(self, SecretId: str) -> CancelRotateSecretResponse:
        r"""Disables automatic scheduled rotation and cancels the rotation of a secret if currently in progress. To re-enable scheduled rotation, call <a>RotateSecret</a> with <code>AutomaticallyRotateAfterDays</code> set to a value greater than 0. This immediately rotates your secret and then enables the automatic schedule. <note> If you cancel a rotation while in progress, it can leave the <code>VersionStage</code> labels in an unexpected state. Depending on the step of the rotation in progress, you might need to remove the staging label <code>AWSPENDING</code> from the partially created version, specified by the <code>VersionId</code> response value. You should also evaluate the partially rotated new version to see if it should be deleted, which you can do by removing all staging labels from the new version <code>VersionStage</code> field. </note> To successfully start a rotation, the staging label <code>AWSPENDING</code> must be in one of the following states: <ul> <li> Not attached to any version at all </li> <li> Attached to the same version as the staging label <code>AWSCURRENT</code>  </li> </ul> If the staging label <code>AWSPENDING</code> attached to a different version than the version with <code>AWSCURRENT</code> then the attempt to rotate fails.  <b>Minimum permissions</b>  To run this command, you must have the following permissions: <ul> <li> secretsmanager:CancelRotateSecret </li> </ul>  <b>Related operations</b>  <ul> <li> To configure rotation for a secret or to manually trigger a rotation, use <a>RotateSecret</a>. </li> <li> To get the rotation configuration details for a secret, use <a>DescribeSecret</a>. </li> <li> To list all of the currently available secrets, use <a>ListSecrets</a>. </li> <li> To list all of the versions currently associated with a secret, use <a>ListSecretVersionIds</a>. </li> </ul>

        :param self:
        :param SecretId:  Specifies the secret to cancel a rotation request. You can specify either the Amazon Resource Name (ARN) or the friendly name of the secret. <note> If you specify an ARN, we generally recommend that you specify a complete ARN. You can specify a partial ARN too—for example, if you don’t include the final hyphen and six random characters that Secrets Manager adds at the end of the ARN when you created the secret. A partial ARN match can work as long as it uniquely matches only one secret. However, if your secret has a name that ends in a hyphen followed by six characters (before Secrets Manager adds the hyphen and six characters to the ARN) and you try to use that as a partial ARN, then those characters cause Secrets Manager to assume that you’re specifying a complete ARN. This confusion can cause unexpected results. To avoid this situation, we recommend that you don’t create secret names ending with a hyphen followed by six characters. If you specify an incomplete ARN without the random suffix, and instead provide the 'friendly name', you <i>must</i> not include the random suffix. If you do include the random suffix added by Secrets Manager, you receive either a <i>ResourceNotFoundException</i> or an <i>AccessDeniedException</i> error, depending on your permissions. </note><br/>
        :return: VersionId:  The unique identifier of the version of the secret created during the rotation. This version might not be complete, and should be evaluated for possible deletion. At the very least, you should remove the <code>VersionStage</code> value <code>AWSPENDING</code> to enable this version to be deleted. Failing to clean up a cancelled rotation can block you from successfully starting future rotations.<br/>Name:  The friendly name of the secret for which rotation was canceled.<br/>ARN:  The ARN of the secret for which rotation was canceled.<br/>        """
        pass

    def create_secret(self, Name: str, ClientRequestToken: str=None, Description: str=None, KmsKeyId: str=None, SecretBinary: SecretBinaryType=None, SecretString: str=None, Tags: List[Tag]=None, AddReplicaRegions: List[ReplicaRegionType]=None, ForceOverwriteReplicaSecret: BooleanType=None) -> CreateSecretResponse:
        r"""Creates a new secret. A secret in Secrets Manager consists of both the protected secret data and the important information needed to manage the secret. Secrets Manager stores the encrypted secret data in one of a collection of "versions" associated with the secret. Each version contains a copy of the encrypted secret data. Each version is associated with one or more "staging labels" that identify where the version is in the rotation cycle. The <code>SecretVersionsToStages</code> field of the secret contains the mapping of staging labels to the active versions of the secret. Versions without a staging label are considered deprecated and not included in the list. You provide the secret data to be encrypted by putting text in either the <code>SecretString</code> parameter or binary data in the <code>SecretBinary</code> parameter, but not both. If you include <code>SecretString</code> or <code>SecretBinary</code> then Secrets Manager also creates an initial secret version and automatically attaches the staging label <code>AWSCURRENT</code> to the new version. <note> <ul> <li> If you call an operation to encrypt or decrypt the <code>SecretString</code> or <code>SecretBinary</code> for a secret in the same account as the calling user and that secret doesn't specify a AWS KMS encryption key, Secrets Manager uses the account's default AWS managed customer master key (CMK) with the alias <code>aws/secretsmanager</code>. If this key doesn't already exist in your account then Secrets Manager creates it for you automatically. All users and roles in the same AWS account automatically have access to use the default CMK. Note that if an Secrets Manager API call results in AWS creating the account's AWS-managed CMK, it can result in a one-time significant delay in returning the result. </li> <li> If the secret resides in a different AWS account from the credentials calling an API that requires encryption or decryption of the secret value then you must create and use a custom AWS KMS CMK because you can't access the default CMK for the account using credentials from a different AWS account. Store the ARN of the CMK in the secret when you create the secret or when you update it by including it in the <code>KMSKeyId</code>. If you call an API that must encrypt or decrypt <code>SecretString</code> or <code>SecretBinary</code> using credentials from a different account then the AWS KMS key policy must grant cross-account access to that other account's user or role for both the kms:GenerateDataKey and kms:Decrypt operations. </li> </ul> </note>    <b>Minimum permissions</b>  To run this command, you must have the following permissions: <ul> <li> secretsmanager:CreateSecret </li> <li> kms:GenerateDataKey - needed only if you use a customer-managed AWS KMS key to encrypt the secret. You do not need this permission to use the account default AWS managed CMK for Secrets Manager. </li> <li> kms:Decrypt - needed only if you use a customer-managed AWS KMS key to encrypt the secret. You do not need this permission to use the account default AWS managed CMK for Secrets Manager. </li> <li> secretsmanager:TagResource - needed only if you include the <code>Tags</code> parameter.  </li> </ul>  <b>Related operations</b>  <ul> <li> To delete a secret, use <a>DeleteSecret</a>. </li> <li> To modify an existing secret, use <a>UpdateSecret</a>. </li> <li> To create a new version of a secret, use <a>PutSecretValue</a>. </li> <li> To retrieve the encrypted secure string and secure binary values, use <a>GetSecretValue</a>. </li> <li> To retrieve all other details for a secret, use <a>DescribeSecret</a>. This does not include the encrypted secure string and secure binary values. </li> <li> To retrieve the list of secret versions associated with the current secret, use <a>DescribeSecret</a> and examine the <code>SecretVersionsToStages</code> response value. </li> </ul>

        :param self:
        :param ForceOverwriteReplicaSecret:  (Optional) If set, the replication overwrites a secret with the same name in the destination region.<br/>AddReplicaRegions:  (Optional) Add a list of regions to replicate secrets. Secrets Manager replicates the KMSKeyID objects to the list of regions specified in the parameter.<br/>Tags:  (Optional) Specifies a list of user-defined tags that are attached to the secret. Each tag is a "Key" and "Value" pair of strings. This operation only appends tags to the existing list of tags. To remove tags, you must use <a>UntagResource</a>. <important> <ul> <li> Secrets Manager tag key names are case sensitive. A tag with the key "ABC" is a different tag from one with key "abc". </li> <li> If you check tags in IAM policy <code>Condition</code> elements as part of your security strategy, then adding or removing a tag can change permissions. If the successful completion of this operation would result in you losing your permissions for this secret, then this operation is blocked and returns an <code>Access Denied</code> error. </li> </ul> </important> This parameter requires a JSON text string argument. For information on how to format a JSON parameter for the various command line tool environments, see <a href="https://docs.aws.amazon.com/cli/latest/userguide/cli-using-param.html#cli-using-param-json">Using JSON for Parameters</a> in the <i>AWS CLI User Guide</i>. For example:  <code>[{"Key":"CostCenter","Value":"12345"},{"Key":"environment","Value":"production"}]</code>  If your command-line tool or SDK requires quotation marks around the parameter, you should use single quotes to avoid confusion with the double quotes required in the JSON text.  The following basic restrictions apply to tags: <ul> <li> Maximum number of tags per secret—50 </li> <li> Maximum key length—127 Unicode characters in UTF-8 </li> <li> Maximum value length—255 Unicode characters in UTF-8 </li> <li> Tag keys and values are case sensitive. </li> <li> Do not use the <code>aws:</code> prefix in your tag names or values because AWS reserves it for AWS use. You can't edit or delete tag names or values with this prefix. Tags with this prefix do not count against your tags per secret limit. </li> <li> If you use your tagging schema across multiple services and resources, remember other services might have restrictions on allowed characters. Generally allowed characters: letters, spaces, and numbers representable in UTF-8, plus the following special characters: + - = . _ : / @. </li> </ul><br/>SecretString:  (Optional) Specifies text data that you want to encrypt and store in this new version of the secret. Either <code>SecretString</code> or <code>SecretBinary</code> must have a value, but not both. They cannot both be empty. If you create a secret by using the Secrets Manager console then Secrets Manager puts the protected secret text in only the <code>SecretString</code> parameter. The Secrets Manager console stores the information as a JSON structure of key/value pairs that the Lambda rotation function knows how to parse. For storing multiple values, we recommend that you use a JSON text string argument and specify key/value pairs. For information on how to format a JSON parameter for the various command line tool environments, see <a href="https://docs.aws.amazon.com/cli/latest/userguide/cli-using-param.html#cli-using-param-json">Using JSON for Parameters</a> in the <i>AWS CLI User Guide</i>. For example:  <code>{"username":"bob","password":"abc123xyz456"}</code>  If your command-line tool or SDK requires quotation marks around the parameter, you should use single quotes to avoid confusion with the double quotes required in the JSON text. <br/>SecretBinary:  (Optional) Specifies binary data that you want to encrypt and store in the new version of the secret. To use this parameter in the command-line tools, we recommend that you store your binary data in a file and then use the appropriate technique for your tool to pass the contents of the file as a parameter. Either <code>SecretString</code> or <code>SecretBinary</code> must have a value, but not both. They cannot both be empty. This parameter is not available using the Secrets Manager console. It can be accessed only by using the AWS CLI or one of the AWS SDKs.<br/>KmsKeyId:  (Optional) Specifies the ARN, Key ID, or alias of the AWS KMS customer master key (CMK) to be used to encrypt the <code>SecretString</code> or <code>SecretBinary</code> values in the versions stored in this secret. You can specify any of the supported ways to identify a AWS KMS key ID. If you need to reference a CMK in a different account, you can use only the key ARN or the alias ARN. If you don't specify this value, then Secrets Manager defaults to using the AWS account's default CMK (the one named <code>aws/secretsmanager</code>). If a AWS KMS CMK with that name doesn't yet exist, then Secrets Manager creates it for you automatically the first time it needs to encrypt a version's <code>SecretString</code> or <code>SecretBinary</code> fields. <important> You can use the account default CMK to encrypt and decrypt only if you call this operation using credentials from the same account that owns the secret. If the secret resides in a different account, then you must create a custom CMK and specify the ARN in this field.  </important><br/>Description:  (Optional) Specifies a user-provided description of the secret.<br/>ClientRequestToken:  (Optional) If you include <code>SecretString</code> or <code>SecretBinary</code>, then an initial version is created as part of the secret, and this parameter specifies a unique identifier for the new version.  <note> If you use the AWS CLI or one of the AWS SDK to call this operation, then you can leave this parameter empty. The CLI or SDK generates a random UUID for you and includes it as the value for this parameter in the request. If you don't use the SDK and instead generate a raw HTTP request to the Secrets Manager service endpoint, then you must generate a <code>ClientRequestToken</code> yourself for the new version and include the value in the request. </note> This value helps ensure idempotency. Secrets Manager uses this value to prevent the accidental creation of duplicate versions if there are failures and retries during a rotation. We recommend that you generate a <a href="https://wikipedia.org/wiki/Universally_unique_identifier">UUID-type</a> value to ensure uniqueness of your versions within the specified secret.  <ul> <li> If the <code>ClientRequestToken</code> value isn't already associated with a version of the secret then a new version of the secret is created.  </li> <li> If a version with this value already exists and the version <code>SecretString</code> and <code>SecretBinary</code> values are the same as those in the request, then the request is ignored. </li> <li> If a version with this value already exists and that version's <code>SecretString</code> and <code>SecretBinary</code> values are different from those in the request, then the request fails because you cannot modify an existing version. Instead, use <a>PutSecretValue</a> to create a new version. </li> </ul> This value becomes the <code>VersionId</code> of the new version.<br/>Name:  Specifies the friendly name of the new secret. The secret name must be ASCII letters, digits, or the following characters : /_+=.@- <note> Do not end your secret name with a hyphen followed by six characters. If you do so, you risk confusion and unexpected results when searching for a secret by partial ARN. Secrets Manager automatically adds a hyphen and six random characters at the end of the ARN. </note><br/>
        :return: ReplicationStatus:  Describes a list of replication status objects as <code>InProgress</code>, <code>Failed</code> or <code>InSync</code>.<br/>VersionId:  The unique identifier associated with the version of the secret you just created.<br/>Name:  The friendly name of the secret that you just created.<br/>ARN:  The Amazon Resource Name (ARN) of the secret that you just created. <note> Secrets Manager automatically adds several random characters to the name at the end of the ARN when you initially create a secret. This affects only the ARN and not the actual friendly name. This ensures that if you create a new secret with the same name as an old secret that you previously deleted, then users with access to the old secret <i>don't</i> automatically get access to the new secret because the ARNs are different. </note><br/>        """
        pass

    def delete_resource_policy(self, SecretId: str) -> DeleteResourcePolicyResponse:
        r"""Deletes the resource-based permission policy attached to the secret.  <b>Minimum permissions</b>  To run this command, you must have the following permissions: <ul> <li> secretsmanager:DeleteResourcePolicy </li> </ul>  <b>Related operations</b>  <ul> <li> To attach a resource policy to a secret, use <a>PutResourcePolicy</a>. </li> <li> To retrieve the current resource-based policy attached to a secret, use <a>GetResourcePolicy</a>. </li> <li> To list all of the currently available secrets, use <a>ListSecrets</a>. </li> </ul>

        :param self:
        :param SecretId:  Specifies the secret that you want to delete the attached resource-based policy for. You can specify either the Amazon Resource Name (ARN) or the friendly name of the secret. <note> If you specify an ARN, we generally recommend that you specify a complete ARN. You can specify a partial ARN too—for example, if you don’t include the final hyphen and six random characters that Secrets Manager adds at the end of the ARN when you created the secret. A partial ARN match can work as long as it uniquely matches only one secret. However, if your secret has a name that ends in a hyphen followed by six characters (before Secrets Manager adds the hyphen and six characters to the ARN) and you try to use that as a partial ARN, then those characters cause Secrets Manager to assume that you’re specifying a complete ARN. This confusion can cause unexpected results. To avoid this situation, we recommend that you don’t create secret names ending with a hyphen followed by six characters. If you specify an incomplete ARN without the random suffix, and instead provide the 'friendly name', you <i>must</i> not include the random suffix. If you do include the random suffix added by Secrets Manager, you receive either a <i>ResourceNotFoundException</i> or an <i>AccessDeniedException</i> error, depending on your permissions. </note><br/>
        :return: Name:  The friendly name of the secret that the resource-based policy was deleted for.<br/>ARN:  The ARN of the secret that the resource-based policy was deleted for.<br/>        """
        pass

    def delete_secret(self, SecretId: str, RecoveryWindowInDays: RecoveryWindowInDaysType=None, ForceDeleteWithoutRecovery: BooleanType=None) -> DeleteSecretResponse:
        r"""Deletes an entire secret and all of the versions. You can optionally include a recovery window during which you can restore the secret. If you don't specify a recovery window value, the operation defaults to 30 days. Secrets Manager attaches a <code>DeletionDate</code> stamp to the secret that specifies the end of the recovery window. At the end of the recovery window, Secrets Manager deletes the secret permanently. At any time before recovery window ends, you can use <a>RestoreSecret</a> to remove the <code>DeletionDate</code> and cancel the deletion of the secret. You cannot access the encrypted secret information in any secret scheduled for deletion. If you need to access that information, you must cancel the deletion with <a>RestoreSecret</a> and then retrieve the information. <note> <ul> <li> There is no explicit operation to delete a version of a secret. Instead, remove all staging labels from the <code>VersionStage</code> field of a version. That marks the version as deprecated and allows Secrets Manager to delete it as needed. Versions without any staging labels do not show up in <a>ListSecretVersionIds</a> unless you specify <code>IncludeDeprecated</code>. </li> <li> The permanent secret deletion at the end of the waiting period is performed as a background task with low priority. There is no guarantee of a specific time after the recovery window for the actual delete operation to occur. </li> </ul> </note>  <b>Minimum permissions</b>  To run this command, you must have the following permissions: <ul> <li> secretsmanager:DeleteSecret </li> </ul>  <b>Related operations</b>  <ul> <li> To create a secret, use <a>CreateSecret</a>. </li> <li> To cancel deletion of a version of a secret before the recovery window has expired, use <a>RestoreSecret</a>. </li> </ul>

        :param self:
        :param ForceDeleteWithoutRecovery:  (Optional) Specifies that the secret is to be deleted without any recovery window. You can't use both this parameter and the <code>RecoveryWindowInDays</code> parameter in the same API call. An asynchronous background process performs the actual deletion, so there can be a short delay before the operation completes. If you write code to delete and then immediately recreate a secret with the same name, ensure that your code includes appropriate back off and retry logic. <important> Use this parameter with caution. This parameter causes the operation to skip the normal waiting period before the permanent deletion that AWS would normally impose with the <code>RecoveryWindowInDays</code> parameter. If you delete a secret with the <code>ForceDeleteWithouRecovery</code> parameter, then you have no opportunity to recover the secret. You lose the secret permanently. </important> <important> If you use this parameter and include a previously deleted or nonexistent secret, the operation does not return the error <code>ResourceNotFoundException</code> in order to correctly handle retries. </important><br/>RecoveryWindowInDays:  (Optional) Specifies the number of days that Secrets Manager waits before Secrets Manager can delete the secret. You can't use both this parameter and the <code>ForceDeleteWithoutRecovery</code> parameter in the same API call. This value can range from 7 to 30 days with a default value of 30.<br/>SecretId:  Specifies the secret to delete. You can specify either the Amazon Resource Name (ARN) or the friendly name of the secret. <note> If you specify an ARN, we generally recommend that you specify a complete ARN. You can specify a partial ARN too—for example, if you don’t include the final hyphen and six random characters that Secrets Manager adds at the end of the ARN when you created the secret. A partial ARN match can work as long as it uniquely matches only one secret. However, if your secret has a name that ends in a hyphen followed by six characters (before Secrets Manager adds the hyphen and six characters to the ARN) and you try to use that as a partial ARN, then those characters cause Secrets Manager to assume that you’re specifying a complete ARN. This confusion can cause unexpected results. To avoid this situation, we recommend that you don’t create secret names ending with a hyphen followed by six characters. If you specify an incomplete ARN without the random suffix, and instead provide the 'friendly name', you <i>must</i> not include the random suffix. If you do include the random suffix added by Secrets Manager, you receive either a <i>ResourceNotFoundException</i> or an <i>AccessDeniedException</i> error, depending on your permissions. </note><br/>
        :return: DeletionDate:  The date and time after which this secret can be deleted by Secrets Manager and can no longer be restored. This value is the date and time of the delete request plus the number of days specified in <code>RecoveryWindowInDays</code>.<br/>Name:  The friendly name of the secret currently scheduled for deletion.<br/>ARN:  The ARN of the secret that is now scheduled for deletion.<br/>        """
        pass

    def describe_secret(self, SecretId: str) -> DescribeSecretResponse:
        r"""Retrieves the details of a secret. It does not include the encrypted fields. Secrets Manager only returns fields populated with a value in the response.   <b>Minimum permissions</b>  To run this command, you must have the following permissions: <ul> <li> secretsmanager:DescribeSecret </li> </ul>  <b>Related operations</b>  <ul> <li> To create a secret, use <a>CreateSecret</a>. </li> <li> To modify a secret, use <a>UpdateSecret</a>. </li> <li> To retrieve the encrypted secret information in a version of the secret, use <a>GetSecretValue</a>. </li> <li> To list all of the secrets in the AWS account, use <a>ListSecrets</a>. </li> </ul>

        :param self:
        :param SecretId:  The identifier of the secret whose details you want to retrieve. You can specify either the Amazon Resource Name (ARN) or the friendly name of the secret. <note> If you specify an ARN, we generally recommend that you specify a complete ARN. You can specify a partial ARN too—for example, if you don’t include the final hyphen and six random characters that Secrets Manager adds at the end of the ARN when you created the secret. A partial ARN match can work as long as it uniquely matches only one secret. However, if your secret has a name that ends in a hyphen followed by six characters (before Secrets Manager adds the hyphen and six characters to the ARN) and you try to use that as a partial ARN, then those characters cause Secrets Manager to assume that you’re specifying a complete ARN. This confusion can cause unexpected results. To avoid this situation, we recommend that you don’t create secret names ending with a hyphen followed by six characters. If you specify an incomplete ARN without the random suffix, and instead provide the 'friendly name', you <i>must</i> not include the random suffix. If you do include the random suffix added by Secrets Manager, you receive either a <i>ResourceNotFoundException</i> or an <i>AccessDeniedException</i> error, depending on your permissions. </note><br/>
        :return: ReplicationStatus:  Describes a list of replication status objects as <code>InProgress</code>, <code>Failed</code> or <code>InSync</code>.<code>P</code> <br/>PrimaryRegion:  Specifies the primary region for secret replication. <br/>CreatedDate:  The date you created the secret.<br/>OwningService:  Returns the name of the service that created this secret.<br/>VersionIdsToStages:  A list of all of the currently assigned <code>VersionStage</code> staging labels and the <code>VersionId</code> that each is attached to. Staging labels are used to keep track of the different versions during the rotation process. <note> A version that does not have any staging labels attached is considered deprecated and subject to deletion. Such versions are not included in this list. </note><br/>Tags:  The list of user-defined tags that are associated with the secret. To add tags to a secret, use <a>TagResource</a>. To remove tags, use <a>UntagResource</a>.<br/>DeletedDate:  This value exists if the secret is scheduled for deletion. Some time after the specified date and time, Secrets Manager deletes the secret and all of its versions. If a secret is scheduled for deletion, then its details, including the encrypted secret information, is not accessible. To cancel a scheduled deletion and restore access, use <a>RestoreSecret</a>.<br/>LastAccessedDate:  The last date that this secret was accessed. This value is truncated to midnight of the date and therefore shows only the date, not the time.<br/>LastChangedDate:  The last date and time that this secret was modified in any way.<br/>LastRotatedDate:  The last date and time that the rotation process for this secret was invoked. The most recent date and time that the Secrets Manager rotation process successfully completed. If the secret doesn't rotate, Secrets Manager returns a null value.<br/>RotationRules:  A structure with the rotation configuration for this secret.:<br/>RotationLambdaARN:  The ARN of a Lambda function that's invoked by Secrets Manager to rotate the secret either automatically per the schedule or manually by a call to <code>RotateSecret</code>.<br/>RotationEnabled:  Specifies whether automatic rotation is enabled for this secret. To enable rotation, use <a>RotateSecret</a> with <code>AutomaticallyRotateAfterDays</code> set to a value greater than 0. To disable rotation, use <a>CancelRotateSecret</a>.<br/>KmsKeyId:  The ARN or alias of the AWS KMS customer master key (CMK) that's used to encrypt the <code>SecretString</code> or <code>SecretBinary</code> fields in each version of the secret. If you don't provide a key, then Secrets Manager defaults to encrypting the secret fields with the default AWS KMS CMK (the one named <code>awssecretsmanager</code>) for this account.<br/>Description:  The user-provided description of the secret.<br/>Name:  The user-provided friendly name of the secret.<br/>ARN:  The ARN of the secret.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomaticallyAfterDays</i> Specifies the number of days between automatic scheduled rotations of the secret. Secrets Manager schedules the next rotation when the previous one is complete. Secrets Manager schedules the date by adding the rotation interval (number of days) to the actual date of the last rotation. The service chooses the hour within that 24-hour date window randomly. The minute is also chosen somewhat randomly, but weighted towards the top of the hour and influenced by a variety of factors that help distribute load.<br/>        """
        pass

    def get_random_password(self, PasswordLength: PasswordLengthType=None, ExcludeCharacters: str=None, ExcludeNumbers: ExcludeNumbersType=None, ExcludePunctuation: ExcludePunctuationType=None, ExcludeUppercase: ExcludeUppercaseType=None, ExcludeLowercase: ExcludeLowercaseType=None, IncludeSpace: IncludeSpaceType=None, RequireEachIncludedType: RequireEachIncludedTypeType=None) -> GetRandomPasswordResponse:
        r"""Generates a random password of the specified complexity. This operation is intended for use in the Lambda rotation function. Per best practice, we recommend that you specify the maximum length and include every character type that the system you are generating a password for can support.  <b>Minimum permissions</b>  To run this command, you must have the following permissions: <ul> <li> secretsmanager:GetRandomPassword </li> </ul>

        :param self:
        :param RequireEachIncludedType:  A boolean value that specifies whether the generated password must include at least one of every allowed character type. The default value is <code>True</code> and the operation requires at least one of every character type.<br/>IncludeSpace:  Specifies that the generated password can include the space character. The default if you do not include this switch parameter is that the space character is not included.<br/>ExcludeLowercase:  Specifies that the generated password should not include lowercase letters. The default if you do not include this switch parameter is that lowercase letters can be included.<br/>ExcludeUppercase:  Specifies that the generated password should not include uppercase letters. The default if you do not include this switch parameter is that uppercase letters can be included.<br/>ExcludePunctuation:  Specifies that the generated password should not include punctuation characters. The default if you do not include this switch parameter is that punctuation characters can be included. The following are the punctuation characters that <i>can</i> be included in the generated password if you don't explicitly exclude them with <code>ExcludeCharacters</code> or <code>ExcludePunctuation</code>:  <code>! " # $ % &amp; ' ( ) * + , - . / : ; &lt; = &gt; ? @ [ \ ] ^ _ ` { | } ~</code> <br/>ExcludeNumbers:  Specifies that the generated password should not include digits. The default if you do not include this switch parameter is that digits can be included.<br/>ExcludeCharacters:  A string that includes characters that should not be included in the generated password. The default is that all characters from the included sets can be used.<br/>PasswordLength:  The desired length of the generated password. The default value if you do not include this parameter is 32 characters.<br/>
        :return: RandomPassword:  A string with the generated password.<br/>        """
        pass

    def get_resource_policy(self, SecretId: str) -> GetResourcePolicyResponse:
        r"""Retrieves the JSON text of the resource-based policy document attached to the specified secret. The JSON request string input and response output displays formatted code with white space and line breaks for better readability. Submit your input as a single line JSON string.  <b>Minimum permissions</b>  To run this command, you must have the following permissions: <ul> <li> secretsmanager:GetResourcePolicy </li> </ul>  <b>Related operations</b>  <ul> <li> To attach a resource policy to a secret, use <a>PutResourcePolicy</a>. </li> <li> To delete the resource-based policy attached to a secret, use <a>DeleteResourcePolicy</a>. </li> <li> To list all of the currently available secrets, use <a>ListSecrets</a>. </li> </ul>

        :param self:
        :param SecretId:  Specifies the secret that you want to retrieve the attached resource-based policy for. You can specify either the Amazon Resource Name (ARN) or the friendly name of the secret. <note> If you specify an ARN, we generally recommend that you specify a complete ARN. You can specify a partial ARN too—for example, if you don’t include the final hyphen and six random characters that Secrets Manager adds at the end of the ARN when you created the secret. A partial ARN match can work as long as it uniquely matches only one secret. However, if your secret has a name that ends in a hyphen followed by six characters (before Secrets Manager adds the hyphen and six characters to the ARN) and you try to use that as a partial ARN, then those characters cause Secrets Manager to assume that you’re specifying a complete ARN. This confusion can cause unexpected results. To avoid this situation, we recommend that you don’t create secret names ending with a hyphen followed by six characters. If you specify an incomplete ARN without the random suffix, and instead provide the 'friendly name', you <i>must</i> not include the random suffix. If you do include the random suffix added by Secrets Manager, you receive either a <i>ResourceNotFoundException</i> or an <i>AccessDeniedException</i> error, depending on your permissions. </note><br/>
        :return: ResourcePolicy:  A JSON-formatted string that describes the permissions that are associated with the attached secret. These permissions are combined with any permissions that are associated with the user or role that attempts to access this secret. The combined permissions specify who can access the secret and what actions they can perform. For more information, see <a href="http://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access.html">Authentication and Access Control for AWS Secrets Manager</a> in the <i>AWS Secrets Manager User Guide</i>.<br/>Name:  The friendly name of the secret that the resource-based policy was retrieved for.<br/>ARN:  The ARN of the secret that the resource-based policy was retrieved for.<br/>        """
        pass

    def get_secret_value(self, SecretId: str, VersionId: str=None, VersionStage: str=None) -> GetSecretValueResponse:
        r"""Retrieves the contents of the encrypted fields <code>SecretString</code> or <code>SecretBinary</code> from the specified version of a secret, whichever contains content.  <b>Minimum permissions</b>  To run this command, you must have the following permissions: <ul> <li> secretsmanager:GetSecretValue </li> <li> kms:Decrypt - required only if you use a customer-managed AWS KMS key to encrypt the secret. You do not need this permission to use the account's default AWS managed CMK for Secrets Manager. </li> </ul>  <b>Related operations</b>  <ul> <li> To create a new version of the secret with different encrypted information, use <a>PutSecretValue</a>. </li> <li> To retrieve the non-encrypted details for the secret, use <a>DescribeSecret</a>. </li> </ul>

        :param self:
        :param VersionStage:  Specifies the secret version that you want to retrieve by the staging label attached to the version. Staging labels are used to keep track of different versions during the rotation process. If you specify both this parameter and <code>VersionId</code>, the two parameters must refer to the same secret version . If you don't specify either a <code>VersionStage</code> or <code>VersionId</code>, then the default is to perform the operation on the version with the <code>VersionStage</code> value of <code>AWSCURRENT</code>.<br/>VersionId:  Specifies the unique identifier of the version of the secret that you want to retrieve. If you specify both this parameter and <code>VersionStage</code>, the two parameters must refer to the same secret version. If you don't specify either a <code>VersionStage</code> or <code>VersionId</code> then the default is to perform the operation on the version with the <code>VersionStage</code> value of <code>AWSCURRENT</code>. This value is typically a <a href="https://wikipedia.org/wiki/Universally_unique_identifier">UUID-type</a> value with 32 hexadecimal digits.<br/>SecretId:  Specifies the secret containing the version that you want to retrieve. You can specify either the Amazon Resource Name (ARN) or the friendly name of the secret. <note> If you specify an ARN, we generally recommend that you specify a complete ARN. You can specify a partial ARN too—for example, if you don’t include the final hyphen and six random characters that Secrets Manager adds at the end of the ARN when you created the secret. A partial ARN match can work as long as it uniquely matches only one secret. However, if your secret has a name that ends in a hyphen followed by six characters (before Secrets Manager adds the hyphen and six characters to the ARN) and you try to use that as a partial ARN, then those characters cause Secrets Manager to assume that you’re specifying a complete ARN. This confusion can cause unexpected results. To avoid this situation, we recommend that you don’t create secret names ending with a hyphen followed by six characters. If you specify an incomplete ARN without the random suffix, and instead provide the 'friendly name', you <i>must</i> not include the random suffix. If you do include the random suffix added by Secrets Manager, you receive either a <i>ResourceNotFoundException</i> or an <i>AccessDeniedException</i> error, depending on your permissions. </note><br/>
        :return: CreatedDate:  The date and time that this version of the secret was created.<br/>VersionStages:  A list of all of the staging labels currently attached to this version of the secret.<br/>SecretString:  The decrypted part of the protected secret information that was originally provided as a string. If you create this secret by using the Secrets Manager console then only the <code>SecretString</code> parameter contains data. Secrets Manager stores the information as a JSON structure of key/value pairs that the Lambda rotation function knows how to parse. If you store custom information in the secret by using the <a>CreateSecret</a>, <a>UpdateSecret</a>, or <a>PutSecretValue</a> API operations instead of the Secrets Manager console, or by using the <b>Other secret type</b> in the console, then you must code your Lambda rotation function to parse and interpret those values.<br/>SecretBinary:  The decrypted part of the protected secret information that was originally provided as binary data in the form of a byte array. The response parameter represents the binary data as a <a href="https://tools.ietf.org/html/rfc4648#section-4">base64-encoded</a> string. This parameter is not used if the secret is created by the Secrets Manager console. If you store custom information in this field of the secret, then you must code your Lambda rotation function to parse and interpret whatever you store in the <code>SecretString</code> or <code>SecretBinary</code> fields.<br/>VersionId:  The unique identifier of this version of the secret.<br/>Name:  The friendly name of the secret.<br/>ARN:  The ARN of the secret.<br/>        """
        pass

    def list_secret_version_ids(self, SecretId: str, MaxResults: int=None, NextToken: str=None, IncludeDeprecated: BooleanType=None) -> ListSecretVersionIdsResponse:
        r"""Lists all of the versions attached to the specified secret. The output does not include the <code>SecretString</code> or <code>SecretBinary</code> fields. By default, the list includes only versions that have at least one staging label in <code>VersionStage</code> attached. <note> Always check the <code>NextToken</code> response parameter when calling any of the <code>List*</code> operations. These operations can occasionally return an empty or shorter than expected list of results even when there more results become available. When this happens, the <code>NextToken</code> response parameter contains a value to pass to the next call to the same API to request the next part of the list. </note>  <b>Minimum permissions</b>  To run this command, you must have the following permissions: <ul> <li> secretsmanager:ListSecretVersionIds </li> </ul>  <b>Related operations</b>  <ul> <li> To list the secrets in an account, use <a>ListSecrets</a>. </li> </ul>

        :param self:
        :param IncludeDeprecated:  (Optional) Specifies that you want the results to include versions that do not have any staging labels attached to them. Such versions are considered deprecated and are subject to deletion by Secrets Manager as needed.<br/>NextToken:  (Optional) Use this parameter in a request if you receive a <code>NextToken</code> response in a previous request indicating there's more output available. In a subsequent call, set it to the value of the previous call <code>NextToken</code> response to indicate where the output should continue from.<br/>MaxResults:  (Optional) Limits the number of results you want to include in the response. If you don't include this parameter, it defaults to a value that's specific to the operation. If additional items exist beyond the maximum you specify, the <code>NextToken</code> response element is present and has a value (isn't null). Include that value as the <code>NextToken</code> request parameter in the next call to the operation to get the next part of the results. Note that Secrets Manager might return fewer results than the maximum even when there are more results available. You should check <code>NextToken</code> after every operation to ensure that you receive all of the results.<br/>SecretId:  The identifier for the secret containing the versions you want to list. You can specify either the Amazon Resource Name (ARN) or the friendly name of the secret. <note> If you specify an ARN, we generally recommend that you specify a complete ARN. You can specify a partial ARN too—for example, if you don’t include the final hyphen and six random characters that Secrets Manager adds at the end of the ARN when you created the secret. A partial ARN match can work as long as it uniquely matches only one secret. However, if your secret has a name that ends in a hyphen followed by six characters (before Secrets Manager adds the hyphen and six characters to the ARN) and you try to use that as a partial ARN, then those characters cause Secrets Manager to assume that you’re specifying a complete ARN. This confusion can cause unexpected results. To avoid this situation, we recommend that you don’t create secret names ending with a hyphen followed by six characters. If you specify an incomplete ARN without the random suffix, and instead provide the 'friendly name', you <i>must</i> not include the random suffix. If you do include the random suffix added by Secrets Manager, you receive either a <i>ResourceNotFoundException</i> or an <i>AccessDeniedException</i> error, depending on your permissions. </note><br/>
        :return: Name:  The friendly name of the secret.<br/>ARN:  The Amazon Resource Name (ARN) for the secret. <note> Secrets Manager automatically adds several random characters to the name at the end of the ARN when you initially create a secret. This affects only the ARN and not the actual friendly name. This ensures that if you create a new secret with the same name as an old secret that you previously deleted, then users with access to the old secret <i>don't</i> automatically get access to the new secret because the ARNs are different. </note><br/>NextToken:  If present in the response, this value indicates that there's more output available than included in the current response. This can occur even when the response includes no values at all, such as when you ask for a filtered view of a very long list. Use this value in the <code>NextToken</code> request parameter in a subsequent call to the operation to continue processing and get the next part of the output. You should repeat this until the <code>NextToken</code> response element comes back empty (as <code>null</code>).<br/>Versions:  The list of the currently available versions of the specified secret.<br/>        """
        pass

    def list_secrets(self, MaxResults: int=None, NextToken: str=None, Filters: List[Filter]=None, SortOrder: str=None) -> ListSecretsResponse:
        r"""Lists all of the secrets that are stored by Secrets Manager in the AWS account. To list the versions currently stored for a specific secret, use <a>ListSecretVersionIds</a>. The encrypted fields <code>SecretString</code> and <code>SecretBinary</code> are not included in the output. To get that information, call the <a>GetSecretValue</a> operation. <note> Always check the <code>NextToken</code> response parameter when calling any of the <code>List*</code> operations. These operations can occasionally return an empty or shorter than expected list of results even when there more results become available. When this happens, the <code>NextToken</code> response parameter contains a value to pass to the next call to the same API to request the next part of the list. </note>  <b>Minimum permissions</b>  To run this command, you must have the following permissions: <ul> <li> secretsmanager:ListSecrets </li> </ul>  <b>Related operations</b>  <ul> <li> To list the versions attached to a secret, use <a>ListSecretVersionIds</a>. </li> </ul>

        :param self:
        :param SortOrder:  Lists secrets in the requested order. <br/>Filters:  Lists the secret request filters.<br/>NextToken:  (Optional) Use this parameter in a request if you receive a <code>NextToken</code> response in a previous request indicating there's more output available. In a subsequent call, set it to the value of the previous call <code>NextToken</code> response to indicate where the output should continue from.<br/>MaxResults:  (Optional) Limits the number of results you want to include in the response. If you don't include this parameter, it defaults to a value that's specific to the operation. If additional items exist beyond the maximum you specify, the <code>NextToken</code> response element is present and has a value (isn't null). Include that value as the <code>NextToken</code> request parameter in the next call to the operation to get the next part of the results. Note that Secrets Manager might return fewer results than the maximum even when there are more results available. You should check <code>NextToken</code> after every operation to ensure that you receive all of the results.<br/>
        :return: NextToken:  If present in the response, this value indicates that there's more output available than included in the current response. This can occur even when the response includes no values at all, such as when you ask for a filtered view of a very long list. Use this value in the <code>NextToken</code> request parameter in a subsequent call to the operation to continue processing and get the next part of the output. You should repeat this until the <code>NextToken</code> response element comes back empty (as <code>null</code>).<br/>SecretList:  A list of the secrets in the account.<br/>        """
        pass

    def put_resource_policy(self, ResourcePolicy: str, SecretId: str, BlockPublicPolicy: BooleanType=None) -> PutResourcePolicyResponse:
        r"""Attaches the contents of the specified resource-based permission policy to a secret. A resource-based policy is optional. Alternatively, you can use IAM identity-based policies that specify the secret's Amazon Resource Name (ARN) in the policy statement's <code>Resources</code> element. You can also use a combination of both identity-based and resource-based policies. The affected users and roles receive the permissions that are permitted by all of the relevant policies. For more information, see <a href="http://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access_resource-based-policies.html">Using Resource-Based Policies for AWS Secrets Manager</a>. For the complete description of the AWS policy syntax and grammar, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html">IAM JSON Policy Reference</a> in the <i>IAM User Guide</i>.  <b>Minimum permissions</b>  To run this command, you must have the following permissions: <ul> <li> secretsmanager:PutResourcePolicy </li> </ul>  <b>Related operations</b>  <ul> <li> To retrieve the resource policy attached to a secret, use <a>GetResourcePolicy</a>. </li> <li> To delete the resource-based policy attached to a secret, use <a>DeleteResourcePolicy</a>. </li> <li> To list all of the currently available secrets, use <a>ListSecrets</a>. </li> </ul>

        :param self:
        :param BlockPublicPolicy:  (Optional) If you set the parameter, <code>BlockPublicPolicy</code> to true, then you block resource-based policies that allow broad access to the secret.<br/>ResourcePolicy:  A JSON-formatted string constructed according to the grammar and syntax for an AWS resource-based policy. The policy in the string identifies who can access or manage this secret and its versions. For information on how to format a JSON parameter for the various command line tool environments, see <a href="http://docs.aws.amazon.com/cli/latest/userguide/cli-using-param.html#cli-using-param-json">Using JSON for Parameters</a> in the <i>AWS CLI User Guide</i>.<br/>SecretId:  Specifies the secret that you want to attach the resource-based policy. You can specify either the ARN or the friendly name of the secret. <note> If you specify an ARN, we generally recommend that you specify a complete ARN. You can specify a partial ARN too—for example, if you don’t include the final hyphen and six random characters that Secrets Manager adds at the end of the ARN when you created the secret. A partial ARN match can work as long as it uniquely matches only one secret. However, if your secret has a name that ends in a hyphen followed by six characters (before Secrets Manager adds the hyphen and six characters to the ARN) and you try to use that as a partial ARN, then those characters cause Secrets Manager to assume that you’re specifying a complete ARN. This confusion can cause unexpected results. To avoid this situation, we recommend that you don’t create secret names ending with a hyphen followed by six characters. If you specify an incomplete ARN without the random suffix, and instead provide the 'friendly name', you <i>must</i> not include the random suffix. If you do include the random suffix added by Secrets Manager, you receive either a <i>ResourceNotFoundException</i> or an <i>AccessDeniedException</i> error, depending on your permissions. </note><br/>
        :return: Name:  The friendly name of the secret retrieved by the resource-based policy.<br/>ARN:  The ARN of the secret retrieved by the resource-based policy.<br/>        """
        pass

    def put_secret_value(self, SecretId: str, ClientRequestToken: str=None, SecretBinary: SecretBinaryType=None, SecretString: str=None, VersionStages: List[SecretVersionStageType]=None) -> PutSecretValueResponse:
        r"""Stores a new encrypted secret value in the specified secret. To do this, the operation creates a new version and attaches it to the secret. The version can contain a new <code>SecretString</code> value or a new <code>SecretBinary</code> value. You can also specify the staging labels that are initially attached to the new version. <note> The Secrets Manager console uses only the <code>SecretString</code> field. To add binary data to a secret with the <code>SecretBinary</code> field you must use the AWS CLI or one of the AWS SDKs. </note> <ul> <li> If this operation creates the first version for the secret then Secrets Manager automatically attaches the staging label <code>AWSCURRENT</code> to the new version. </li> <li> If you do not specify a value for VersionStages then Secrets Manager automatically moves the staging label <code>AWSCURRENT</code> to this new version. </li> <li> If this operation moves the staging label <code>AWSCURRENT</code> from another version to this version, then Secrets Manager also automatically moves the staging label <code>AWSPREVIOUS</code> to the version that <code>AWSCURRENT</code> was removed from. </li> <li> This operation is idempotent. If a version with a <code>VersionId</code> with the same value as the <code>ClientRequestToken</code> parameter already exists and you specify the same secret data, the operation succeeds but does nothing. However, if the secret data is different, then the operation fails because you cannot modify an existing version; you can only create new ones. </li> </ul> <note> <ul> <li> If you call an operation to encrypt or decrypt the <code>SecretString</code> or <code>SecretBinary</code> for a secret in the same account as the calling user and that secret doesn't specify a AWS KMS encryption key, Secrets Manager uses the account's default AWS managed customer master key (CMK) with the alias <code>aws/secretsmanager</code>. If this key doesn't already exist in your account then Secrets Manager creates it for you automatically. All users and roles in the same AWS account automatically have access to use the default CMK. Note that if an Secrets Manager API call results in AWS creating the account's AWS-managed CMK, it can result in a one-time significant delay in returning the result. </li> <li> If the secret resides in a different AWS account from the credentials calling an API that requires encryption or decryption of the secret value then you must create and use a custom AWS KMS CMK because you can't access the default CMK for the account using credentials from a different AWS account. Store the ARN of the CMK in the secret when you create the secret or when you update it by including it in the <code>KMSKeyId</code>. If you call an API that must encrypt or decrypt <code>SecretString</code> or <code>SecretBinary</code> using credentials from a different account then the AWS KMS key policy must grant cross-account access to that other account's user or role for both the kms:GenerateDataKey and kms:Decrypt operations. </li> </ul> </note>  <b>Minimum permissions</b>  To run this command, you must have the following permissions: <ul> <li> secretsmanager:PutSecretValue </li> <li> kms:GenerateDataKey - needed only if you use a customer-managed AWS KMS key to encrypt the secret. You do not need this permission to use the account's default AWS managed CMK for Secrets Manager. </li> </ul>  <b>Related operations</b>  <ul> <li> To retrieve the encrypted value you store in the version of a secret, use <a>GetSecretValue</a>. </li> <li> To create a secret, use <a>CreateSecret</a>. </li> <li> To get the details for a secret, use <a>DescribeSecret</a>. </li> <li> To list the versions attached to a secret, use <a>ListSecretVersionIds</a>. </li> </ul>

        :param self:
        :param VersionStages:  (Optional) Specifies a list of staging labels that are attached to this version of the secret. These staging labels are used to track the versions through the rotation process by the Lambda rotation function. A staging label must be unique to a single version of the secret. If you specify a staging label that's already associated with a different version of the same secret then that staging label is automatically removed from the other version and attached to this version. If you do not specify a value for <code>VersionStages</code> then Secrets Manager automatically moves the staging label <code>AWSCURRENT</code> to this new version.<br/>SecretString:  (Optional) Specifies text data that you want to encrypt and store in this new version of the secret. Either <code>SecretString</code> or <code>SecretBinary</code> must have a value, but not both. They cannot both be empty. If you create this secret by using the Secrets Manager console then Secrets Manager puts the protected secret text in only the <code>SecretString</code> parameter. The Secrets Manager console stores the information as a JSON structure of key/value pairs that the default Lambda rotation function knows how to parse. For storing multiple values, we recommend that you use a JSON text string argument and specify key/value pairs. For information on how to format a JSON parameter for the various command line tool environments, see <a href="https://docs.aws.amazon.com/cli/latest/userguide/cli-using-param.html#cli-using-param-json">Using JSON for Parameters</a> in the <i>AWS CLI User Guide</i>.  For example:  <code>[{"username":"bob"},{"password":"abc123xyz456"}]</code>  If your command-line tool or SDK requires quotation marks around the parameter, you should use single quotes to avoid confusion with the double quotes required in the JSON text.<br/>SecretBinary:  (Optional) Specifies binary data that you want to encrypt and store in the new version of the secret. To use this parameter in the command-line tools, we recommend that you store your binary data in a file and then use the appropriate technique for your tool to pass the contents of the file as a parameter. Either <code>SecretBinary</code> or <code>SecretString</code> must have a value, but not both. They cannot both be empty. This parameter is not accessible if the secret using the Secrets Manager console. <p/><br/>ClientRequestToken:  (Optional) Specifies a unique identifier for the new version of the secret.  <note> If you use the AWS CLI or one of the AWS SDK to call this operation, then you can leave this parameter empty. The CLI or SDK generates a random UUID for you and includes that in the request. If you don't use the SDK and instead generate a raw HTTP request to the Secrets Manager service endpoint, then you must generate a <code>ClientRequestToken</code> yourself for new versions and include that value in the request.  </note> This value helps ensure idempotency. Secrets Manager uses this value to prevent the accidental creation of duplicate versions if there are failures and retries during the Lambda rotation function's processing. We recommend that you generate a <a href="https://wikipedia.org/wiki/Universally_unique_identifier">UUID-type</a> value to ensure uniqueness within the specified secret.  <ul> <li> If the <code>ClientRequestToken</code> value isn't already associated with a version of the secret then a new version of the secret is created.  </li> <li> If a version with this value already exists and that version's <code>SecretString</code> or <code>SecretBinary</code> values are the same as those in the request then the request is ignored (the operation is idempotent).  </li> <li> If a version with this value already exists and the version of the <code>SecretString</code> and <code>SecretBinary</code> values are different from those in the request then the request fails because you cannot modify an existing secret version. You can only create new versions to store new secret values. </li> </ul> This value becomes the <code>VersionId</code> of the new version.<br/>SecretId:  Specifies the secret to which you want to add a new version. You can specify either the Amazon Resource Name (ARN) or the friendly name of the secret. The secret must already exist. <note> If you specify an ARN, we generally recommend that you specify a complete ARN. You can specify a partial ARN too—for example, if you don’t include the final hyphen and six random characters that Secrets Manager adds at the end of the ARN when you created the secret. A partial ARN match can work as long as it uniquely matches only one secret. However, if your secret has a name that ends in a hyphen followed by six characters (before Secrets Manager adds the hyphen and six characters to the ARN) and you try to use that as a partial ARN, then those characters cause Secrets Manager to assume that you’re specifying a complete ARN. This confusion can cause unexpected results. To avoid this situation, we recommend that you don’t create secret names ending with a hyphen followed by six characters. If you specify an incomplete ARN without the random suffix, and instead provide the 'friendly name', you <i>must</i> not include the random suffix. If you do include the random suffix added by Secrets Manager, you receive either a <i>ResourceNotFoundException</i> or an <i>AccessDeniedException</i> error, depending on your permissions. </note><br/>
        :return: VersionStages:  The list of staging labels that are currently attached to this version of the secret. Staging labels are used to track a version as it progresses through the secret rotation process.<br/>VersionId:  The unique identifier of the version of the secret you just created or updated.<br/>Name:  The friendly name of the secret for which you just created or updated a version.<br/>ARN:  The Amazon Resource Name (ARN) for the secret for which you just created a version.<br/>        """
        pass

    def remove_regions_from_replication(self, RemoveReplicaRegions: List[RegionType], SecretId: str) -> RemoveRegionsFromReplicationResponse:
        r"""Remove regions from replication.

        :param self:
        :param RemoveReplicaRegions:  Remove replication from specific Regions.<br/>SecretId:  Remove a secret by <code>SecretId</code> from replica Regions.<br/>
        :return: ReplicationStatus:  Describes the remaining replication status after you remove regions from the replication list.<br/>ARN:  The secret <code>ARN</code> removed from replication regions.<br/>        """
        pass

    def replicate_secret_to_regions(self, AddReplicaRegions: List[ReplicaRegionType], SecretId: str, ForceOverwriteReplicaSecret: BooleanType=None) -> ReplicateSecretToRegionsResponse:
        r"""Converts an existing secret to a multi-Region secret and begins replication the secret to a list of new regions. 

        :param self:
        :param ForceOverwriteReplicaSecret:  (Optional) If set, Secrets Manager replication overwrites a secret with the same name in the destination region.<br/>AddReplicaRegions:  Add Regions to replicate the secret.<br/>SecretId:  Use the <code>Secret Id</code> to replicate a secret to regions.<br/>
        :return: ReplicationStatus:  Describes the secret replication status as <code>PENDING</code>, <code>SUCCESS</code> or <code>FAIL</code>.<br/>ARN:  Replicate a secret based on the <code>ReplicaRegionType</code>&gt; consisting of a Region(required) and a KMSKeyId (optional) which can be the ARN, KeyID, or Alias. <br/>        """
        pass

    def restore_secret(self, SecretId: str) -> RestoreSecretResponse:
        r"""Cancels the scheduled deletion of a secret by removing the <code>DeletedDate</code> time stamp. This makes the secret accessible to query once again.  <b>Minimum permissions</b>  To run this command, you must have the following permissions: <ul> <li> secretsmanager:RestoreSecret </li> </ul>  <b>Related operations</b>  <ul> <li> To delete a secret, use <a>DeleteSecret</a>. </li> </ul>

        :param self:
        :param SecretId:  Specifies the secret that you want to restore from a previously scheduled deletion. You can specify either the Amazon Resource Name (ARN) or the friendly name of the secret. <note> If you specify an ARN, we generally recommend that you specify a complete ARN. You can specify a partial ARN too—for example, if you don’t include the final hyphen and six random characters that Secrets Manager adds at the end of the ARN when you created the secret. A partial ARN match can work as long as it uniquely matches only one secret. However, if your secret has a name that ends in a hyphen followed by six characters (before Secrets Manager adds the hyphen and six characters to the ARN) and you try to use that as a partial ARN, then those characters cause Secrets Manager to assume that you’re specifying a complete ARN. This confusion can cause unexpected results. To avoid this situation, we recommend that you don’t create secret names ending with a hyphen followed by six characters. If you specify an incomplete ARN without the random suffix, and instead provide the 'friendly name', you <i>must</i> not include the random suffix. If you do include the random suffix added by Secrets Manager, you receive either a <i>ResourceNotFoundException</i> or an <i>AccessDeniedException</i> error, depending on your permissions. </note><br/>
        :return: Name:  The friendly name of the secret that was restored.<br/>ARN:  The ARN of the secret that was restored.<br/>        """
        pass

    def rotate_secret(self, SecretId: str, ClientRequestToken: str=None, RotationLambdaARN: str=None, RotationRules: RotationRulesType=None) -> RotateSecretResponse:
        r"""Configures and starts the asynchronous process of rotating this secret. If you include the configuration parameters, the operation sets those values for the secret and then immediately starts a rotation. If you do not include the configuration parameters, the operation starts a rotation with the values already stored in the secret. After the rotation completes, the protected service and its clients all use the new version of the secret.  This required configuration information includes the ARN of an AWS Lambda function and the time between scheduled rotations. The Lambda rotation function creates a new version of the secret and creates or updates the credentials on the protected service to match. After testing the new credentials, the function marks the new secret with the staging label <code>AWSCURRENT</code> so that your clients all immediately begin to use the new version. For more information about rotating secrets and how to configure a Lambda function to rotate the secrets for your protected service, see <a href="https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets.html">Rotating Secrets in AWS Secrets Manager</a> in the <i>AWS Secrets Manager User Guide</i>. Secrets Manager schedules the next rotation when the previous one completes. Secrets Manager schedules the date by adding the rotation interval (number of days) to the actual date of the last rotation. The service chooses the hour within that 24-hour date window randomly. The minute is also chosen somewhat randomly, but weighted towards the top of the hour and influenced by a variety of factors that help distribute load. The rotation function must end with the versions of the secret in one of two states: <ul> <li> The <code>AWSPENDING</code> and <code>AWSCURRENT</code> staging labels are attached to the same version of the secret, or </li> <li> The <code>AWSPENDING</code> staging label is not attached to any version of the secret. </li> </ul> If the <code>AWSPENDING</code> staging label is present but not attached to the same version as <code>AWSCURRENT</code> then any later invocation of <code>RotateSecret</code> assumes that a previous rotation request is still in progress and returns an error.  <b>Minimum permissions</b>  To run this command, you must have the following permissions: <ul> <li> secretsmanager:RotateSecret </li> <li> lambda:InvokeFunction (on the function specified in the secret's metadata) </li> </ul>  <b>Related operations</b>  <ul> <li> To list the secrets in your account, use <a>ListSecrets</a>. </li> <li> To get the details for a version of a secret, use <a>DescribeSecret</a>. </li> <li> To create a new version of a secret, use <a>CreateSecret</a>. </li> <li> To attach staging labels to or remove staging labels from a version of a secret, use <a>UpdateSecretVersionStage</a>. </li> </ul>

        :param self:
        :param RotationRules:  A structure that defines the rotation configuration for this secret.:<br/>RotationLambdaARN:  (Optional) Specifies the ARN of the Lambda function that can rotate the secret.<br/>ClientRequestToken:  (Optional) Specifies a unique identifier for the new version of the secret that helps ensure idempotency.  If you use the AWS CLI or one of the AWS SDK to call this operation, then you can leave this parameter empty. The CLI or SDK generates a random UUID for you and includes that in the request for this parameter. If you don't use the SDK and instead generate a raw HTTP request to the Secrets Manager service endpoint, then you must generate a <code>ClientRequestToken</code> yourself for new versions and include that value in the request. You only need to specify your own value if you implement your own retry logic and want to ensure that a given secret is not created twice. We recommend that you generate a <a href="https://wikipedia.org/wiki/Universally_unique_identifier">UUID-type</a> value to ensure uniqueness within the specified secret.  Secrets Manager uses this value to prevent the accidental creation of duplicate versions if there are failures and retries during the function's processing. This value becomes the <code>VersionId</code> of the new version.<br/>SecretId:  Specifies the secret that you want to rotate. You can specify either the Amazon Resource Name (ARN) or the friendly name of the secret. <note> If you specify an ARN, we generally recommend that you specify a complete ARN. You can specify a partial ARN too—for example, if you don’t include the final hyphen and six random characters that Secrets Manager adds at the end of the ARN when you created the secret. A partial ARN match can work as long as it uniquely matches only one secret. However, if your secret has a name that ends in a hyphen followed by six characters (before Secrets Manager adds the hyphen and six characters to the ARN) and you try to use that as a partial ARN, then those characters cause Secrets Manager to assume that you’re specifying a complete ARN. This confusion can cause unexpected results. To avoid this situation, we recommend that you don’t create secret names ending with a hyphen followed by six characters. If you specify an incomplete ARN without the random suffix, and instead provide the 'friendly name', you <i>must</i> not include the random suffix. If you do include the random suffix added by Secrets Manager, you receive either a <i>ResourceNotFoundException</i> or an <i>AccessDeniedException</i> error, depending on your permissions. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomaticallyAfterDays</i> Specifies the number of days between automatic scheduled rotations of the secret. Secrets Manager schedules the next rotation when the previous one is complete. Secrets Manager schedules the date by adding the rotation interval (number of days) to the actual date of the last rotation. The service chooses the hour within that 24-hour date window randomly. The minute is also chosen somewhat randomly, but weighted towards the top of the hour and influenced by a variety of factors that help distribute load.<br/>
        :return: VersionId:  The ID of the new version of the secret created by the rotation started by this request.<br/>Name:  The friendly name of the secret.<br/>ARN:  The ARN of the secret.<br/>        """
        pass

    def stop_replication_to_replica(self, SecretId: str) -> StopReplicationToReplicaResponse:
        r"""Removes the secret from replication and promotes the secret to a regional secret in the replica Region.

        :param self:
        :param SecretId:  Response to <code>StopReplicationToReplica</code> of a secret, based on the <code>SecretId</code>.<br/>
        :return: ARN:  Response <code>StopReplicationToReplica</code> of a secret, based on the <code>ARN,</code>.<br/>        """
        pass

    def tag_resource(self, Tags: List[Tag], SecretId: str):
        r"""Attaches one or more tags, each consisting of a key name and a value, to the specified secret. Tags are part of the secret's overall metadata, and are not associated with any specific version of the secret. This operation only appends tags to the existing list of tags. To remove tags, you must use <a>UntagResource</a>. The following basic restrictions apply to tags: <ul> <li> Maximum number of tags per secret—50 </li> <li> Maximum key length—127 Unicode characters in UTF-8 </li> <li> Maximum value length—255 Unicode characters in UTF-8 </li> <li> Tag keys and values are case sensitive. </li> <li> Do not use the <code>aws:</code> prefix in your tag names or values because AWS reserves it for AWS use. You can't edit or delete tag names or values with this prefix. Tags with this prefix do not count against your tags per secret limit. </li> <li> If you use your tagging schema across multiple services and resources, remember other services might have restrictions on allowed characters. Generally allowed characters: letters, spaces, and numbers representable in UTF-8, plus the following special characters: + - = . _ : / @. </li> </ul> <important> If you use tags as part of your security strategy, then adding or removing a tag can change permissions. If successfully completing this operation would result in you losing your permissions for this secret, then the operation is blocked and returns an Access Denied error. </important>  <b>Minimum permissions</b>  To run this command, you must have the following permissions: <ul> <li> secretsmanager:TagResource </li> </ul>  <b>Related operations</b>  <ul> <li> To remove one or more tags from the collection attached to a secret, use <a>UntagResource</a>. </li> <li> To view the list of tags attached to a secret, use <a>DescribeSecret</a>. </li> </ul>

        :param self:
        :param Tags:  The tags to attach to the secret. Each element in the list consists of a <code>Key</code> and a <code>Value</code>. This parameter to the API requires a JSON text string argument. For information on how to format a JSON parameter for the various command line tool environments, see <a href="https://docs.aws.amazon.com/cli/latest/userguide/cli-using-param.html#cli-using-param-json">Using JSON for Parameters</a> in the <i>AWS CLI User Guide</i>. For the AWS CLI, you can also use the syntax: <code>--Tags Key="Key1",Value="Value1" Key="Key2",Value="Value2"[,…]</code> <br/>SecretId:  The identifier for the secret that you want to attach tags to. You can specify either the Amazon Resource Name (ARN) or the friendly name of the secret. <note> If you specify an ARN, we generally recommend that you specify a complete ARN. You can specify a partial ARN too—for example, if you don’t include the final hyphen and six random characters that Secrets Manager adds at the end of the ARN when you created the secret. A partial ARN match can work as long as it uniquely matches only one secret. However, if your secret has a name that ends in a hyphen followed by six characters (before Secrets Manager adds the hyphen and six characters to the ARN) and you try to use that as a partial ARN, then those characters cause Secrets Manager to assume that you’re specifying a complete ARN. This confusion can cause unexpected results. To avoid this situation, we recommend that you don’t create secret names ending with a hyphen followed by six characters. If you specify an incomplete ARN without the random suffix, and instead provide the 'friendly name', you <i>must</i> not include the random suffix. If you do include the random suffix added by Secrets Manager, you receive either a <i>ResourceNotFoundException</i> or an <i>AccessDeniedException</i> error, depending on your permissions. </note><br/>
        :return:         """
        pass

    def untag_resource(self, TagKeys: List[TagKeyType], SecretId: str):
        r"""Removes one or more tags from the specified secret. This operation is idempotent. If a requested tag is not attached to the secret, no error is returned and the secret metadata is unchanged. <important> If you use tags as part of your security strategy, then removing a tag can change permissions. If successfully completing this operation would result in you losing your permissions for this secret, then the operation is blocked and returns an Access Denied error. </important>  <b>Minimum permissions</b>  To run this command, you must have the following permissions: <ul> <li> secretsmanager:UntagResource </li> </ul>  <b>Related operations</b>  <ul> <li> To add one or more tags to the collection attached to a secret, use <a>TagResource</a>. </li> <li> To view the list of tags attached to a secret, use <a>DescribeSecret</a>. </li> </ul>

        :param self:
        :param TagKeys:  A list of tag key names to remove from the secret. You don't specify the value. Both the key and its associated value are removed. This parameter to the API requires a JSON text string argument. For information on how to format a JSON parameter for the various command line tool environments, see <a href="https://docs.aws.amazon.com/cli/latest/userguide/cli-using-param.html#cli-using-param-json">Using JSON for Parameters</a> in the <i>AWS CLI User Guide</i>.<br/>SecretId:  The identifier for the secret that you want to remove tags from. You can specify either the Amazon Resource Name (ARN) or the friendly name of the secret. <note> If you specify an ARN, we generally recommend that you specify a complete ARN. You can specify a partial ARN too—for example, if you don’t include the final hyphen and six random characters that Secrets Manager adds at the end of the ARN when you created the secret. A partial ARN match can work as long as it uniquely matches only one secret. However, if your secret has a name that ends in a hyphen followed by six characters (before Secrets Manager adds the hyphen and six characters to the ARN) and you try to use that as a partial ARN, then those characters cause Secrets Manager to assume that you’re specifying a complete ARN. This confusion can cause unexpected results. To avoid this situation, we recommend that you don’t create secret names ending with a hyphen followed by six characters. If you specify an incomplete ARN without the random suffix, and instead provide the 'friendly name', you <i>must</i> not include the random suffix. If you do include the random suffix added by Secrets Manager, you receive either a <i>ResourceNotFoundException</i> or an <i>AccessDeniedException</i> error, depending on your permissions. </note><br/>
        :return:         """
        pass

    def update_secret(self, SecretId: str, ClientRequestToken: str=None, Description: str=None, KmsKeyId: str=None, SecretBinary: SecretBinaryType=None, SecretString: str=None) -> UpdateSecretResponse:
        r"""Modifies many of the details of the specified secret. If you include a <code>ClientRequestToken</code> and <i>either</i> <code>SecretString</code> or <code>SecretBinary</code> then it also creates a new version attached to the secret. To modify the rotation configuration of a secret, use <a>RotateSecret</a> instead. <note> The Secrets Manager console uses only the <code>SecretString</code> parameter and therefore limits you to encrypting and storing only a text string. To encrypt and store binary data as part of the version of a secret, you must use either the AWS CLI or one of the AWS SDKs. </note> <ul> <li> If a version with a <code>VersionId</code> with the same value as the <code>ClientRequestToken</code> parameter already exists, the operation results in an error. You cannot modify an existing version, you can only create a new version. </li> <li> If you include <code>SecretString</code> or <code>SecretBinary</code> to create a new secret version, Secrets Manager automatically attaches the staging label <code>AWSCURRENT</code> to the new version.  </li> </ul> <note> <ul> <li> If you call an operation to encrypt or decrypt the <code>SecretString</code> or <code>SecretBinary</code> for a secret in the same account as the calling user and that secret doesn't specify a AWS KMS encryption key, Secrets Manager uses the account's default AWS managed customer master key (CMK) with the alias <code>aws/secretsmanager</code>. If this key doesn't already exist in your account then Secrets Manager creates it for you automatically. All users and roles in the same AWS account automatically have access to use the default CMK. Note that if an Secrets Manager API call results in AWS creating the account's AWS-managed CMK, it can result in a one-time significant delay in returning the result. </li> <li> If the secret resides in a different AWS account from the credentials calling an API that requires encryption or decryption of the secret value then you must create and use a custom AWS KMS CMK because you can't access the default CMK for the account using credentials from a different AWS account. Store the ARN of the CMK in the secret when you create the secret or when you update it by including it in the <code>KMSKeyId</code>. If you call an API that must encrypt or decrypt <code>SecretString</code> or <code>SecretBinary</code> using credentials from a different account then the AWS KMS key policy must grant cross-account access to that other account's user or role for both the kms:GenerateDataKey and kms:Decrypt operations. </li> </ul> </note>  <b>Minimum permissions</b>  To run this command, you must have the following permissions: <ul> <li> secretsmanager:UpdateSecret </li> <li> kms:GenerateDataKey - needed only if you use a custom AWS KMS key to encrypt the secret. You do not need this permission to use the account's AWS managed CMK for Secrets Manager. </li> <li> kms:Decrypt - needed only if you use a custom AWS KMS key to encrypt the secret. You do not need this permission to use the account's AWS managed CMK for Secrets Manager. </li> </ul>  <b>Related operations</b>  <ul> <li> To create a new secret, use <a>CreateSecret</a>. </li> <li> To add only a new version to an existing secret, use <a>PutSecretValue</a>. </li> <li> To get the details for a secret, use <a>DescribeSecret</a>. </li> <li> To list the versions contained in a secret, use <a>ListSecretVersionIds</a>. </li> </ul>

        :param self:
        :param SecretString:  (Optional) Specifies updated text data that you want to encrypt and store in this new version of the secret. Either <code>SecretBinary</code> or <code>SecretString</code> must have a value, but not both. They cannot both be empty. If you create this secret by using the Secrets Manager console then Secrets Manager puts the protected secret text in only the <code>SecretString</code> parameter. The Secrets Manager console stores the information as a JSON structure of key/value pairs that the default Lambda rotation function knows how to parse. For storing multiple values, we recommend that you use a JSON text string argument and specify key/value pairs. For information on how to format a JSON parameter for the various command line tool environments, see <a href="https://docs.aws.amazon.com/cli/latest/userguide/cli-using-param.html#cli-using-param-json">Using JSON for Parameters</a> in the <i>AWS CLI User Guide</i>. For example:  <code>[{"username":"bob"},{"password":"abc123xyz456"}]</code>  If your command-line tool or SDK requires quotation marks around the parameter, you should use single quotes to avoid confusion with the double quotes required in the JSON text. You can also 'escape' the double quote character in the embedded JSON text by prefacing each with a backslash. For example, the following string is surrounded by double-quotes. All of the embedded double quotes are escaped:  <code>"[{\"username\":\"bob\"},{\"password\":\"abc123xyz456\"}]"</code> <br/>SecretBinary:  (Optional) Specifies updated binary data that you want to encrypt and store in the new version of the secret. To use this parameter in the command-line tools, we recommend that you store your binary data in a file and then use the appropriate technique for your tool to pass the contents of the file as a parameter. Either <code>SecretBinary</code> or <code>SecretString</code> must have a value, but not both. They cannot both be empty. This parameter is not accessible using the Secrets Manager console.<br/>KmsKeyId:  (Optional) Specifies an updated ARN or alias of the AWS KMS customer master key (CMK) to be used to encrypt the protected text in new versions of this secret. <important> You can only use the account's default CMK to encrypt and decrypt if you call this operation using credentials from the same account that owns the secret. If the secret is in a different account, then you must create a custom CMK and provide the ARN of that CMK in this field. The user making the call must have permissions to both the secret and the CMK in their respective accounts. </important><br/>Description:  (Optional) Specifies an updated user-provided description of the secret.<br/>ClientRequestToken:  (Optional) If you want to add a new version to the secret, this parameter specifies a unique identifier for the new version that helps ensure idempotency.  If you use the AWS CLI or one of the AWS SDK to call this operation, then you can leave this parameter empty. The CLI or SDK generates a random UUID for you and includes that in the request. If you don't use the SDK and instead generate a raw HTTP request to the Secrets Manager service endpoint, then you must generate a <code>ClientRequestToken</code> yourself for new versions and include that value in the request. You typically only need to interact with this value if you implement your own retry logic and want to ensure that a given secret is not created twice. We recommend that you generate a <a href="https://wikipedia.org/wiki/Universally_unique_identifier">UUID-type</a> value to ensure uniqueness within the specified secret.  Secrets Manager uses this value to prevent the accidental creation of duplicate versions if there are failures and retries during the Lambda rotation function's processing. <ul> <li> If the <code>ClientRequestToken</code> value isn't already associated with a version of the secret then a new version of the secret is created.  </li> <li> If a version with this value already exists and that version's <code>SecretString</code> and <code>SecretBinary</code> values are the same as those in the request then the request is ignored (the operation is idempotent).  </li> <li> If a version with this value already exists and that version's <code>SecretString</code> and <code>SecretBinary</code> values are different from the request then an error occurs because you cannot modify an existing secret value. </li> </ul> This value becomes the <code>VersionId</code> of the new version.<br/>SecretId:  Specifies the secret that you want to modify or to which you want to add a new version. You can specify either the Amazon Resource Name (ARN) or the friendly name of the secret. <note> If you specify an ARN, we generally recommend that you specify a complete ARN. You can specify a partial ARN too—for example, if you don’t include the final hyphen and six random characters that Secrets Manager adds at the end of the ARN when you created the secret. A partial ARN match can work as long as it uniquely matches only one secret. However, if your secret has a name that ends in a hyphen followed by six characters (before Secrets Manager adds the hyphen and six characters to the ARN) and you try to use that as a partial ARN, then those characters cause Secrets Manager to assume that you’re specifying a complete ARN. This confusion can cause unexpected results. To avoid this situation, we recommend that you don’t create secret names ending with a hyphen followed by six characters. If you specify an incomplete ARN without the random suffix, and instead provide the 'friendly name', you <i>must</i> not include the random suffix. If you do include the random suffix added by Secrets Manager, you receive either a <i>ResourceNotFoundException</i> or an <i>AccessDeniedException</i> error, depending on your permissions. </note><br/>
        :return: VersionId:  If a new version of the secret was created by this operation, then <code>VersionId</code> contains the unique identifier of the new version.<br/>Name:  The friendly name of the secret that was updated.<br/>ARN:  The ARN of the secret that was updated. <note> Secrets Manager automatically adds several random characters to the name at the end of the ARN when you initially create a secret. This affects only the ARN and not the actual friendly name. This ensures that if you create a new secret with the same name as an old secret that you previously deleted, then users with access to the old secret <i>don't</i> automatically get access to the new secret because the ARNs are different. </note><br/>        """
        pass

    def update_secret_version_stage(self, VersionStage: str, SecretId: str, RemoveFromVersionId: str=None, MoveToVersionId: str=None) -> UpdateSecretVersionStageResponse:
        r"""Modifies the staging labels attached to a version of a secret. Staging labels are used to track a version as it progresses through the secret rotation process. You can attach a staging label to only one version of a secret at a time. If a staging label to be added is already attached to another version, then it is moved--removed from the other version first and then attached to this one. For more information about staging labels, see <a href="https://docs.aws.amazon.com/secretsmanager/latest/userguide/terms-concepts.html#term_staging-label">Staging Labels</a> in the <i>AWS Secrets Manager User Guide</i>.  The staging labels that you specify in the <code>VersionStage</code> parameter are added to the existing list of staging labels--they don't replace it. You can move the <code>AWSCURRENT</code> staging label to this version by including it in this call. <note> Whenever you move <code>AWSCURRENT</code>, Secrets Manager automatically moves the label <code>AWSPREVIOUS</code> to the version that <code>AWSCURRENT</code> was removed from. </note> If this action results in the last label being removed from a version, then the version is considered to be 'deprecated' and can be deleted by Secrets Manager.  <b>Minimum permissions</b>  To run this command, you must have the following permissions: <ul> <li> secretsmanager:UpdateSecretVersionStage </li> </ul>  <b>Related operations</b>  <ul> <li> To get the list of staging labels that are currently associated with a version of a secret, use <code> <a>DescribeSecret</a> </code> and examine the <code>SecretVersionsToStages</code> response value.  </li> </ul>

        :param self:
        :param MoveToVersionId:  (Optional) The secret version ID that you want to add the staging label. If you want to remove a label from a version, then do not specify this parameter. If the staging label is already attached to a different version of the secret, then you must also specify the <code>RemoveFromVersionId</code> parameter. <br/>RemoveFromVersionId:  Specifies the secret version ID of the version that the staging label is to be removed from. If the staging label you are trying to attach to one version is already attached to a different version, then you must include this parameter and specify the version that the label is to be removed from. If the label is attached and you either do not specify this parameter, or the version ID does not match, then the operation fails.<br/>VersionStage:  The staging label to add to this version.<br/>SecretId:  Specifies the secret with the version with the list of staging labels you want to modify. You can specify either the Amazon Resource Name (ARN) or the friendly name of the secret. <note> If you specify an ARN, we generally recommend that you specify a complete ARN. You can specify a partial ARN too—for example, if you don’t include the final hyphen and six random characters that Secrets Manager adds at the end of the ARN when you created the secret. A partial ARN match can work as long as it uniquely matches only one secret. However, if your secret has a name that ends in a hyphen followed by six characters (before Secrets Manager adds the hyphen and six characters to the ARN) and you try to use that as a partial ARN, then those characters cause Secrets Manager to assume that you’re specifying a complete ARN. This confusion can cause unexpected results. To avoid this situation, we recommend that you don’t create secret names ending with a hyphen followed by six characters. If you specify an incomplete ARN without the random suffix, and instead provide the 'friendly name', you <i>must</i> not include the random suffix. If you do include the random suffix added by Secrets Manager, you receive either a <i>ResourceNotFoundException</i> or an <i>AccessDeniedException</i> error, depending on your permissions. </note><br/>
        :return: Name:  The friendly name of the secret with the modified staging label.<br/>ARN:  The ARN of the secret with the modified staging label.<br/>        """
        pass

    def validate_resource_policy(self, ResourcePolicy: str, SecretId: str=None) -> ValidateResourcePolicyResponse:
        r"""Validates that the resource policy does not grant a wide range of IAM principals access to your secret. The JSON request string input and response output displays formatted code with white space and line breaks for better readability. Submit your input as a single line JSON string. A resource-based policy is optional for secrets. The API performs three checks when validating the secret: <ul> <li> Sends a call to <a href="https://aws.amazon.com/blogs/security/protect-sensitive-data-in-the-cloud-with-automated-reasoning-zelkova/">Zelkova</a>, an automated reasoning engine, to ensure your Resource Policy does not allow broad access to your secret. </li> <li> Checks for correct syntax in a policy. </li> <li> Verifies the policy does not lock out a caller. </li> </ul>  <b>Minimum Permissions</b>  You must have the permissions required to access the following APIs: <ul> <li>  <code>secretsmanager:PutResourcePolicy</code>  </li> <li>  <code>secretsmanager:ValidateResourcePolicy</code>  </li> </ul>

        :param self:
        :param ResourcePolicy:  A JSON-formatted string constructed according to the grammar and syntax for an AWS resource-based policy. The policy in the string identifies who can access or manage this secret and its versions. For information on how to format a JSON parameter for the various command line tool environments, see <a href="http://docs.aws.amazon.com/cli/latest/userguide/cli-using-param.html#cli-using-param-json">Using JSON for Parameters</a> in the <i>AWS CLI User Guide</i>.publi<br/>SecretId:   (Optional) The identifier of the secret with the resource-based policy you want to validate. You can specify either the Amazon Resource Name (ARN) or the friendly name of the secret. <note> If you specify an ARN, we generally recommend that you specify a complete ARN. You can specify a partial ARN too—for example, if you don’t include the final hyphen and six random characters that Secrets Manager adds at the end of the ARN when you created the secret. A partial ARN match can work as long as it uniquely matches only one secret. However, if your secret has a name that ends in a hyphen followed by six characters (before Secrets Manager adds the hyphen and six characters to the ARN) and you try to use that as a partial ARN, then those characters cause Secrets Manager to assume that you’re specifying a complete ARN. This confusion can cause unexpected results. To avoid this situation, we recommend that you don’t create secret names ending with a hyphen followed by six characters. If you specify an incomplete ARN without the random suffix, and instead provide the 'friendly name', you <i>must</i> not include the random suffix. If you do include the random suffix added by Secrets Manager, you receive either a <i>ResourceNotFoundException</i> or an <i>AccessDeniedException</i> error, depending on your permissions. </note><br/>
        :return: ValidationErrors:  Returns an error message if your policy doesn't pass validatation.<br/>PolicyValidationPassed:  Returns a message stating that your Reource Policy passed validation. <br/>        """
        pass





class SecurityHub(BaseClient):
    r"""Security Hub provides you with a comprehensive view of the security state of your AWS environment and resources. It also provides you with the readiness status of your environment based on controls from supported security standards. Security Hub collects security data from AWS accounts, services, and integrated third-party products and helps you analyze security trends in your environment to identify the highest priority security issues. For more information about Security Hub, see the <i> <a href="https://docs.aws.amazon.com/securityhub/latest/userguide/what-is-securityhub.html">AWS Security Hub User Guide</a> </i>. When you use operations in the Security Hub API, the requests are executed only in the AWS Region that is currently active or in the specific AWS Region that you specify in your request. Any configuration or settings change that results from the operation is applied only to that Region. To make the same change in other Regions, execute the same command for each Region to apply the change to. For example, if your Region is set to <code>us-west-2</code>, when you use <code> <a>CreateMembers</a> </code> to add a member account to Security Hub, the association of the member account with the administrator account is created only in the <code>us-west-2</code> Region. Security Hub must be enabled for the member account in the same Region that the invitation was sent from. The following throttling limits apply to using Security Hub API operations. <ul> <li>  <code> <a>BatchEnableStandards</a> </code> - <code>RateLimit</code> of 1 request per second, <code>BurstLimit</code> of 1 request per second. </li> <li>  <code> <a>GetFindings</a> </code> - <code>RateLimit</code> of 3 requests per second. <code>BurstLimit</code> of 6 requests per second. </li> <li>  <code> <a>UpdateFindings</a> </code> - <code>RateLimit</code> of 1 request per second. <code>BurstLimit</code> of 5 requests per second. </li> <li>  <code> <a>UpdateStandardsControl</a> </code> - <code>RateLimit</code> of 1 request per second, <code>BurstLimit</code> of 5 requests per second. </li> <li> All other operations - <code>RateLimit</code> of 10 requests per second. <code>BurstLimit</code> of 30 requests per second. </li> </ul>"""


    class GetEnabledStandardsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_enabled_standards` for valid parameters"""
            pass
    class GetFindingsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_findings` for valid parameters"""
            pass
    class GetInsightsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_insights` for valid parameters"""
            pass
    class ListEnabledProductsForImportPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_enabled_products_for_import` for valid parameters"""
            pass
    class ListInvitationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_invitations` for valid parameters"""
            pass
    class ListMembersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_members` for valid parameters"""
            pass


    class AcceptAdministratorInvitationRequest(Mapping):
        pass
    
    class AcceptAdministratorInvitationResponse(Mapping):
        pass
    
    class AcceptInvitationRequest(Mapping):
        pass
    
    class AcceptInvitationResponse(Mapping):
        pass
    
    class BatchDisableStandardsRequest(Mapping):
        pass
    
    class BatchDisableStandardsResponse(Mapping):
        pass
    
    class NonEmptyString(object):
        pass
    
    class BatchEnableStandardsRequest(Mapping):
        pass
    
    class BatchEnableStandardsResponse(Mapping):
        pass
    
    class StandardsSubscriptionRequest(Mapping):
        pass
    
    class BatchImportFindingsRequest(Mapping):
        pass
    
    class BatchImportFindingsResponse(Mapping):
        pass
    
    class AwsSecurityFinding(Mapping):
        pass
    
    class BatchUpdateFindingsRequest(Mapping):
        pass
    
    class BatchUpdateFindingsResponse(Mapping):
        pass
    
    class AwsSecurityFindingIdentifier(Mapping):
        pass
    
    class NoteUpdate(Mapping):
        pass
    
    class SeverityUpdate(Mapping):
        pass
    
    class FieldMap(object):
        pass
    
    class WorkflowUpdate(Mapping):
        pass
    
    class RelatedFinding(Mapping):
        pass
    
    class CreateActionTargetRequest(Mapping):
        pass
    
    class CreateActionTargetResponse(Mapping):
        pass
    
    class CreateInsightRequest(Mapping):
        pass
    
    class CreateInsightResponse(Mapping):
        pass
    
    class AwsSecurityFindingFilters(Mapping):
        pass
    
    class CreateMembersRequest(Mapping):
        pass
    
    class CreateMembersResponse(Mapping):
        pass
    
    class AccountDetails(Mapping):
        pass
    
    class DeclineInvitationsRequest(Mapping):
        pass
    
    class DeclineInvitationsResponse(Mapping):
        pass
    
    class DeleteActionTargetRequest(Mapping):
        pass
    
    class DeleteActionTargetResponse(Mapping):
        pass
    
    class DeleteInsightRequest(Mapping):
        pass
    
    class DeleteInsightResponse(Mapping):
        pass
    
    class DeleteInvitationsRequest(Mapping):
        pass
    
    class DeleteInvitationsResponse(Mapping):
        pass
    
    class DeleteMembersRequest(Mapping):
        pass
    
    class DeleteMembersResponse(Mapping):
        pass
    
    class DescribeActionTargetsRequest(Mapping):
        pass
    
    class DescribeActionTargetsResponse(Mapping):
        pass
    
    class DescribeHubRequest(Mapping):
        pass
    
    class DescribeHubResponse(Mapping):
        pass
    
    class DescribeOrganizationConfigurationRequest(Mapping):
        pass
    
    class DescribeOrganizationConfigurationResponse(Mapping):
        pass
    
    class DescribeProductsRequest(Mapping):
        pass
    
    class DescribeProductsResponse(Mapping):
        pass
    
    class DescribeStandardsRequest(Mapping):
        pass
    
    class DescribeStandardsResponse(Mapping):
        pass
    
    class DescribeStandardsControlsRequest(Mapping):
        pass
    
    class DescribeStandardsControlsResponse(Mapping):
        pass
    
    class DisableImportFindingsForProductRequest(Mapping):
        pass
    
    class DisableImportFindingsForProductResponse(Mapping):
        pass
    
    class DisableOrganizationAdminAccountRequest(Mapping):
        pass
    
    class DisableOrganizationAdminAccountResponse(Mapping):
        pass
    
    class DisableSecurityHubRequest(Mapping):
        pass
    
    class DisableSecurityHubResponse(Mapping):
        pass
    
    class DisassociateFromAdministratorAccountRequest(Mapping):
        pass
    
    class DisassociateFromAdministratorAccountResponse(Mapping):
        pass
    
    class DisassociateFromMasterAccountRequest(Mapping):
        pass
    
    class DisassociateFromMasterAccountResponse(Mapping):
        pass
    
    class DisassociateMembersRequest(Mapping):
        pass
    
    class DisassociateMembersResponse(Mapping):
        pass
    
    class EnableImportFindingsForProductRequest(Mapping):
        pass
    
    class EnableImportFindingsForProductResponse(Mapping):
        pass
    
    class EnableOrganizationAdminAccountRequest(Mapping):
        pass
    
    class EnableOrganizationAdminAccountResponse(Mapping):
        pass
    
    class EnableSecurityHubRequest(Mapping):
        pass
    
    class EnableSecurityHubResponse(Mapping):
        pass
    
    class TagMap(object):
        pass
    
    class Boolean(object):
        pass
    
    class GetAdministratorAccountRequest(Mapping):
        pass
    
    class GetAdministratorAccountResponse(Mapping):
        pass
    
    class GetEnabledStandardsRequest(Mapping):
        pass
    
    class GetEnabledStandardsResponse(Mapping):
        pass
    
    class GetFindingsRequest(Mapping):
        pass
    
    class GetFindingsResponse(Mapping):
        pass
    
    class SortCriterion(Mapping):
        pass
    
    class GetInsightResultsRequest(Mapping):
        pass
    
    class GetInsightResultsResponse(Mapping):
        pass
    
    class GetInsightsRequest(Mapping):
        pass
    
    class GetInsightsResponse(Mapping):
        pass
    
    class GetInvitationsCountRequest(Mapping):
        pass
    
    class GetInvitationsCountResponse(Mapping):
        pass
    
    class GetMasterAccountRequest(Mapping):
        pass
    
    class GetMasterAccountResponse(Mapping):
        pass
    
    class GetMembersRequest(Mapping):
        pass
    
    class GetMembersResponse(Mapping):
        pass
    
    class InviteMembersRequest(Mapping):
        pass
    
    class InviteMembersResponse(Mapping):
        pass
    
    class ListEnabledProductsForImportRequest(Mapping):
        pass
    
    class ListEnabledProductsForImportResponse(Mapping):
        pass
    
    class ListInvitationsRequest(Mapping):
        pass
    
    class ListInvitationsResponse(Mapping):
        pass
    
    class ListMembersRequest(Mapping):
        pass
    
    class ListMembersResponse(Mapping):
        pass
    
    class ListOrganizationAdminAccountsRequest(Mapping):
        pass
    
    class ListOrganizationAdminAccountsResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateActionTargetRequest(Mapping):
        pass
    
    class UpdateActionTargetResponse(Mapping):
        pass
    
    class UpdateFindingsRequest(Mapping):
        pass
    
    class UpdateFindingsResponse(Mapping):
        pass
    
    class UpdateInsightRequest(Mapping):
        pass
    
    class UpdateInsightResponse(Mapping):
        pass
    
    class UpdateOrganizationConfigurationRequest(Mapping):
        pass
    
    class UpdateOrganizationConfigurationResponse(Mapping):
        pass
    
    class UpdateSecurityHubConfigurationRequest(Mapping):
        pass
    
    class UpdateSecurityHubConfigurationResponse(Mapping):
        pass
    
    class UpdateStandardsControlRequest(Mapping):
        pass
    
    class UpdateStandardsControlResponse(Mapping):
        pass
    
    def accept_administrator_invitation(self, InvitationId: str, AdministratorId: str) -> AcceptAdministratorInvitationResponse:
        r"""Accepts the invitation to be a member account and be monitored by the Security Hub administrator account that the invitation was sent from. This operation is only used by member accounts that are not added through Organizations. When the member account accepts the invitation, permission is granted to the administrator account to view findings generated in the member account.

        :param self:
        :param InvitationId:  The identifier of the invitation sent from the Security Hub administrator account.<br/>AdministratorId:  The account ID of the Security Hub administrator account that sent the invitation.<br/>
        :return:         """
        pass

    def accept_invitation(self, InvitationId: str, MasterId: str) -> AcceptInvitationResponse:
        r"""This method is deprecated. Instead, use <code>AcceptAdministratorInvitation</code>. The Security Hub console continues to use <code>AcceptInvitation</code>. It will eventually change to use <code>AcceptAdministratorInvitation</code>. Any IAM policies that specifically control access to this function must continue to use <code>AcceptInvitation</code>. You should also add <code>AcceptAdministratorInvitation</code> to your policies to ensure that the correct permissions are in place after the console begins to use <code>AcceptAdministratorInvitation</code>. Accepts the invitation to be a member account and be monitored by the Security Hub administrator account that the invitation was sent from. This operation is only used by member accounts that are not added through Organizations. When the member account accepts the invitation, permission is granted to the administrator account to view findings generated in the member account.

        :param self:
        :param InvitationId:  The identifier of the invitation sent from the Security Hub administrator account.<br/>MasterId:  The account ID of the Security Hub administrator account that sent the invitation.<br/>
        :return:         """
        pass

    def batch_disable_standards(self, StandardsSubscriptionArns: List[NonEmptyString]) -> BatchDisableStandardsResponse:
        r"""Disables the standards specified by the provided <code>StandardsSubscriptionArns</code>. For more information, see <a href="https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-standards.html">Security Standards</a> section of the <i>AWS Security Hub User Guide</i>.

        :param self:
        :param StandardsSubscriptionArns:  The ARNs of the standards subscriptions to disable.<br/>
        :return: StandardsSubscriptions:  The details of the standards subscriptions that were disabled.<br/>        """
        pass

    def batch_enable_standards(self, StandardsSubscriptionRequests: List[StandardsSubscriptionRequest]) -> BatchEnableStandardsResponse:
        r"""Enables the standards specified by the provided <code>StandardsArn</code>. To obtain the ARN for a standard, use the <code> <a>DescribeStandards</a> </code> operation. For more information, see the <a href="https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-standards.html">Security Standards</a> section of the <i>AWS Security Hub User Guide</i>.

        :param self:
        :param StandardsSubscriptionRequests:  The list of standards checks to enable.<br/>
        :return: StandardsSubscriptions:  The details of the standards subscriptions that were enabled.<br/>        """
        pass

    def batch_import_findings(self, Findings: List[AwsSecurityFinding]) -> BatchImportFindingsResponse:
        r"""Imports security findings generated from an integrated product into Security Hub. This action is requested by the integrated product to import its findings into Security Hub. The maximum allowed size for a finding is 240 Kb. An error is returned for any finding larger than 240 Kb. After a finding is created, <code>BatchImportFindings</code> cannot be used to update the following finding fields and objects, which Security Hub customers use to manage their investigation workflow. <ul> <li>  <code>Note</code>  </li> <li>  <code>UserDefinedFields</code>  </li> <li>  <code>VerificationState</code>  </li> <li>  <code>Workflow</code>  </li> </ul> Finding providers also should not use <code>BatchImportFindings</code> to update the following attributes. <ul> <li>  <code>Confidence</code>  </li> <li>  <code>Criticality</code>  </li> <li>  <code>RelatedFindings</code>  </li> <li>  <code>Severity</code>  </li> <li>  <code>Types</code>  </li> </ul> Instead, finding providers use <code>FindingProviderFields</code> to provide values for these attributes.

        :param self:
        :param Findings:  A list of findings to import. To successfully import a finding, it must follow the <a href="https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-findings-format.html">AWS Security Finding Format</a>. Maximum of 100 findings per request.<br/>
        :return: FailedFindings:  The list of findings that failed to import.<br/>SuccessCount:  The number of findings that were successfully imported.<br/>FailedCount:  The number of findings that failed to import.<br/>        """
        pass

    def batch_update_findings(self, FindingIdentifiers: List[AwsSecurityFindingIdentifier], Note: NoteUpdate=None, Severity: SeverityUpdate=None, VerificationState: str=None, Confidence: int=None, Criticality: int=None, Types: List[NonEmptyString]=None, UserDefinedFields: FieldMap=None, Workflow: WorkflowUpdate=None, RelatedFindings: List[RelatedFinding]=None) -> BatchUpdateFindingsResponse:
        r"""Used by Security Hub customers to update information about their investigation into a finding. Requested by administrator accounts or member accounts. Administrator accounts can update findings for their account and their member accounts. Member accounts can update findings for their account. Updates from <code>BatchUpdateFindings</code> do not affect the value of <code>UpdatedAt</code> for a finding. Administrator and member accounts can use <code>BatchUpdateFindings</code> to update the following finding fields and objects. <ul> <li>  <code>Confidence</code>  </li> <li>  <code>Criticality</code>  </li> <li>  <code>Note</code>  </li> <li>  <code>RelatedFindings</code>  </li> <li>  <code>Severity</code>  </li> <li>  <code>Types</code>  </li> <li>  <code>UserDefinedFields</code>  </li> <li>  <code>VerificationState</code>  </li> <li>  <code>Workflow</code>  </li> </ul> You can configure IAM policies to restrict access to fields and field values. For example, you might not want member accounts to be able to suppress findings or change the finding severity. See <a href="https://docs.aws.amazon.com/securityhub/latest/userguide/finding-update-batchupdatefindings.html#batchupdatefindings-configure-access">Configuring access to BatchUpdateFindings</a> in the <i>AWS Security Hub User Guide</i>.

        :param self:
        :param RelatedFindings:  A list of findings that are related to the updated findings.<br/>Workflow:  Used to update the workflow status of a finding. The workflow status indicates the progress of the investigation into the finding. :<br/>UserDefinedFields:  A list of name/value string pairs associated with the finding. These are custom, user-defined fields added to a finding.<br/>Types:  One or more finding types in the format of namespace/category/classifier that classify a finding. Valid namespace values are as follows. <ul> <li> Software and Configuration Checks </li> <li> TTPs </li> <li> Effects </li> <li> Unusual Behaviors </li> <li> Sensitive Data Identifications  </li> </ul><br/>Criticality:  The updated value for the level of importance assigned to the resources associated with the findings. A score of 0 means that the underlying resources have no criticality, and a score of 100 is reserved for the most critical resources. <br/>Confidence:  The updated value for the finding confidence. Confidence is defined as the likelihood that a finding accurately identifies the behavior or issue that it was intended to identify. Confidence is scored on a 0-100 basis using a ratio scale, where 0 means zero percent confidence and 100 means 100 percent confidence.<br/>VerificationState:  Indicates the veracity of a finding. The available values for <code>VerificationState</code> are as follows. <ul> <li>  <code>UNKNOWN</code> – The default disposition of a security finding </li> <li>  <code>TRUE_POSITIVE</code> – The security finding is confirmed </li> <li>  <code>FALSE_POSITIVE</code> – The security finding was determined to be a false alarm </li> <li>  <code>BENIGN_POSITIVE</code> – A special case of <code>TRUE_POSITIVE</code> where the finding doesn't pose any threat, is expected, or both </li> </ul><br/>Severity:  Used to update the finding severity.:<br/>Note:  The updated note.:<br/>FindingIdentifiers:  The list of findings to update. <code>BatchUpdateFindings</code> can be used to update up to 100 findings at a time. For each finding, the list provides the finding identifier and the ARN of the finding provider.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdatedBy</i> The principal that updated the note.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Text</i> The updated note text.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Label</i> The severity value of the finding. The allowed values are the following. <ul> <li>  <code>INFORMATIONAL</code> - No issue was found. </li> <li>  <code>LOW</code> - The issue does not require action on its own. </li> <li>  <code>MEDIUM</code> - The issue must be addressed but not urgently. </li> <li>  <code>HIGH</code> - The issue must be addressed as a priority. </li> <li>  <code>CRITICAL</code> - The issue must be remediated immediately to avoid it escalating. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Product</i> The native severity as defined by the AWS service or integrated partner product that generated the finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Normalized</i> The normalized severity for the finding. This attribute is to be deprecated in favor of <code>Label</code>. If you provide <code>Normalized</code> and do not provide <code>Label</code>, <code>Label</code> is set automatically as follows. <ul> <li> 0 - <code>INFORMATIONAL</code>  </li> <li> 1–39 - <code>LOW</code>  </li> <li> 40–69 - <code>MEDIUM</code>  </li> <li> 70–89 - <code>HIGH</code>  </li> <li> 90–100 - <code>CRITICAL</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the investigation into the finding. The allowed values are the following. <ul> <li>  <code>NEW</code> - The initial state of a finding, before it is reviewed. Security Hub also resets <code>WorkFlowStatus</code> from <code>NOTIFIED</code> or <code>RESOLVED</code> to <code>NEW</code> in the following cases: <ul> <li> The record state changes from <code>ARCHIVED</code> to <code>ACTIVE</code>. </li> <li> The compliance status changes from <code>PASSED</code> to either <code>WARNING</code>, <code>FAILED</code>, or <code>NOT_AVAILABLE</code>. </li> </ul> </li> <li>  <code>NOTIFIED</code> - Indicates that you notified the resource owner about the security issue. Used when the initial reviewer is not the resource owner, and needs intervention from the resource owner. </li> <li>  <code>RESOLVED</code> - The finding was reviewed and remediated and is now considered resolved. </li> <li>  <code>SUPPRESSED</code> - The finding will not be reviewed again and will not be acted upon. </li> </ul><br/>
        :return: UnprocessedFindings:  The list of findings that were not updated.<br/>ProcessedFindings:  The list of findings that were updated successfully.<br/>        """
        pass

    def create_action_target(self, Id: str, Description: str, Name: str) -> CreateActionTargetResponse:
        r"""Creates a custom action target in Security Hub. You can use custom actions on findings and insights in Security Hub to trigger target actions in Amazon CloudWatch Events.

        :param self:
        :param Id:  The ID for the custom action target. Can contain up to 20 alphanumeric characters.<br/>Description:  The description for the custom action target.<br/>Name:  The name of the custom action target. Can contain up to 20 characters.<br/>
        :return: ActionTargetArn:  The ARN for the custom action target.<br/>        """
        pass

    def create_insight(self, GroupByAttribute: str, Filters: AwsSecurityFindingFilters, Name: str) -> CreateInsightResponse:
        r"""Creates a custom insight in Security Hub. An insight is a consolidation of findings that relate to a security issue that requires attention or remediation. To group the related findings in the insight, use the <code>GroupByAttribute</code>.

        :param self:
        :param GroupByAttribute:  The attribute used to group the findings for the insight. The grouping attribute identifies the type of item that the insight applies to. For example, if an insight is grouped by resource identifier, then the insight produces a list of resource identifiers.<br/>Filters:  One or more attributes used to filter the findings included in the insight. The insight only includes findings that match the criteria defined in the filters.:<br/>Name:  The name of the custom insight to create.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FindingProviderFieldsTypes</i> One or more finding types that the finding provider assigned to the finding. Uses the format of <code>namespace/category/classifier</code> that classify a finding. Valid namespace values are: Software and Configuration Checks | TTPs | Effects | Unusual Behaviors | Sensitive Data Identifications<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FindingProviderFieldsSeverityOriginal</i> The finding provider's original value for the severity.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FindingProviderFieldsSeverityLabel</i> The finding provider value for the severity label.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FindingProviderFieldsRelatedFindingsProductArn</i> The ARN of the solution that generated a related finding that is identified by the finding provider.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FindingProviderFieldsRelatedFindingsId</i> The finding identifier of a related finding that is identified by the finding provider.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FindingProviderFieldsCriticality</i> The finding provider value for the level of importance assigned to the resources associated with the findings. A score of 0 means that the underlying resources have no criticality, and a score of 100 is reserved for the most critical resources. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FindingProviderFieldsConfidence</i> The finding provider value for the finding confidence. Confidence is defined as the likelihood that a finding accurately identifies the behavior or issue that it was intended to identify. Confidence is scored on a 0-100 basis using a ratio scale, where 0 means zero percent confidence and 100 means 100 percent confidence.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Keyword</i> A keyword for a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NoteUpdatedBy</i> The principal that created a note.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NoteUpdatedAt</i> The timestamp of when the note was updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NoteText</i> The text of a note.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RelatedFindingsId</i> The solution-generated identifier for a related finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RelatedFindingsProductArn</i> The ARN of the solution that generated a related finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecordState</i> The updated record state for the finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WorkflowStatus</i> The status of the investigation into a finding. Allowed values are the following. <ul> <li>  <code>NEW</code> - The initial state of a finding, before it is reviewed. Security Hub also resets the workflow status from <code>NOTIFIED</code> or <code>RESOLVED</code> to <code>NEW</code> in the following cases: <ul> <li> The record state changes from <code>ARCHIVED</code> to <code>ACTIVE</code>. </li> <li> The compliance status changes from <code>PASSED</code> to either <code>WARNING</code>, <code>FAILED</code>, or <code>NOT_AVAILABLE</code>. </li> </ul> </li> <li>  <code>NOTIFIED</code> - Indicates that the resource owner has been notified about the security issue. Used when the initial reviewer is not the resource owner, and needs intervention from the resource owner. </li> <li>  <code>SUPPRESSED</code> - The finding will not be reviewed again and will not be acted upon. </li> <li>  <code>RESOLVED</code> - The finding was reviewed and remediated and is now considered resolved.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WorkflowState</i> The workflow state of a finding. Note that this field is deprecated. To search for a finding based on its workflow status, use <code>WorkflowStatus</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VerificationState</i> The veracity of a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ComplianceStatus</i> Exclusive to findings that are generated as the result of a check run against a specific rule in a supported standard, such as CIS AWS Foundations. Contains security standard-related finding details.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceDetailsOther</i> The details of a resource that doesn't have a specific subfield for the resource type defined.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceContainerLaunchedAt</i> The date/time that the container was started.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceContainerImageName</i> The name of the image related to a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceContainerImageId</i> The identifier of the image related to a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceContainerName</i> The name of the container related to a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceAwsIamAccessKeyCreatedAt</i> The creation date/time of the IAM access key related to a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceAwsIamAccessKeyStatus</i> The status of the IAM access key related to a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceAwsIamAccessKeyUserName</i> The user associated with the IAM access key related to a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceAwsS3BucketOwnerName</i> The display name of the owner of the S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceAwsS3BucketOwnerId</i> The canonical user ID of the owner of the S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceAwsEc2InstanceLaunchedAt</i> The date and time the instance was launched.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceAwsEc2InstanceSubnetId</i> The identifier of the subnet that the instance was launched in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceAwsEc2InstanceVpcId</i> The identifier of the VPC that the instance was launched in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceAwsEc2InstanceIamInstanceProfileArn</i> The IAM profile ARN of the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceAwsEc2InstanceKeyName</i> The key name associated with the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceAwsEc2InstanceIpV6Addresses</i> The IPv6 addresses associated with the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceAwsEc2InstanceIpV4Addresses</i> The IPv4 addresses associated with the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceAwsEc2InstanceImageId</i> The Amazon Machine Image (AMI) ID of the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceAwsEc2InstanceType</i> The instance type of the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceTags</i> A list of AWS tags associated with a resource at the time the finding was processed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceRegion</i> The canonical AWS external Region name where this resource is located.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourcePartition</i> The canonical AWS partition name that the Region is assigned to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceId</i> The canonical identifier for the given resource type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceType</i> Specifies the type of the resource that details are provided for.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ThreatIntelIndicatorSourceUrl</i> The URL for more details from the source of the threat intelligence.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ThreatIntelIndicatorSource</i> The source of the threat intelligence.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ThreatIntelIndicatorLastObservedAt</i> The date/time of the last observation of a threat intelligence indicator.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ThreatIntelIndicatorCategory</i> The category of a threat intelligence indicator.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ThreatIntelIndicatorValue</i> The value of a threat intelligence indicator.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ThreatIntelIndicatorType</i> The type of a threat intelligence indicator.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProcessTerminatedAt</i> The date/time that the process was terminated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProcessLaunchedAt</i> The date/time that the process was launched.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProcessParentPid</i> The parent process ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProcessPid</i> The process ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProcessPath</i> The path to the process executable.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProcessName</i> The name of the process.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkDestinationDomain</i> The destination domain of network-related information about a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkDestinationPort</i> The destination port of network-related information about a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkDestinationIpV6</i> The destination IPv6 address of network-related information about a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkDestinationIpV4</i> The destination IPv4 address of network-related information about a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkSourceMac</i> The source media access control (MAC) address of network-related information about a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkSourceDomain</i> The source domain of network-related information about a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkSourcePort</i> The source port of network-related information about a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkSourceIpV6</i> The source IPv6 address of network-related information about a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkSourceIpV4</i> The source IPv4 address of network-related information about a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkProtocol</i> The protocol of network-related information about a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkDirection</i> Indicates the direction of network traffic associated with a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MalwareState</i> The state of the malware that was observed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MalwarePath</i> The filesystem path of the malware that was observed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MalwareType</i> The type of the malware that was observed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MalwareName</i> The name of the malware that was observed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserDefinedFields</i> A list of name/value string pairs associated with the finding. These are custom, user-defined fields added to a finding. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CompanyName</i> The name of the findings provider (company) that owns the solution (product) that generates findings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProductName</i> The name of the solution (product) that generates findings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProductFields</i> A data type where security-findings providers can include additional solution-specific details that aren't part of the defined <code>AwsSecurityFinding</code> format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceUrl</i> A URL that links to a page about the current finding in the security-findings provider's solution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecommendationText</i> The recommendation of what to do about the issue described in a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A finding's description.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Title</i> A finding's title.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Criticality</i> The level of importance assigned to the resources associated with the finding. A score of 0 means that the underlying resources have no criticality, and a score of 100 is reserved for the most critical resources.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Confidence</i> A finding's confidence. Confidence is defined as the likelihood that a finding accurately identifies the behavior or issue that it was intended to identify. Confidence is scored on a 0-100 basis using a ratio scale, where 0 means zero percent confidence and 100 means 100 percent confidence.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SeverityLabel</i> The label of a finding's severity.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SeverityNormalized</i> The normalized severity of a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SeverityProduct</i> The native severity as defined by the security-findings provider's solution that generated the finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdatedAt</i> An ISO8601-formatted timestamp that indicates when the security-findings provider last updated the finding record. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedAt</i> An ISO8601-formatted timestamp that indicates when the security-findings provider captured the potential security issue that a finding captured.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastObservedAt</i> An ISO8601-formatted timestamp that indicates when the security-findings provider most recently observed the potential security issue that a finding captured.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FirstObservedAt</i> An ISO8601-formatted timestamp that indicates when the security-findings provider first observed the potential security issue that a finding captured.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> A finding type in the format of <code>namespace/category/classifier</code> that classifies a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GeneratorId</i> The identifier for the solution-specific component (a discrete unit of logic) that generated a finding. In various security-findings providers' solutions, this generator can be called a rule, a check, a detector, a plugin, etc.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The security findings provider-specific identifier for a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AwsAccountId</i> The AWS account ID that a finding is generated in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProductArn</i> The ARN generated by Security Hub that uniquely identifies a third-party company (security findings provider) after this provider's product (solution that generates findings) is registered with Security Hub.<br/>
        :return: InsightArn:  The ARN of the insight created.<br/>        """
        pass

    def create_members(self, AccountDetails: List[AccountDetails]) -> CreateMembersResponse:
        r"""Creates a member association in Security Hub between the specified accounts and the account used to make the request, which is the administrator account. If you are integrated with Organizations, then the administrator account is designated by the organization management account.  <code>CreateMembers</code> is always used to add accounts that are not organization members. For accounts that are part of an organization, <code>CreateMembers</code> is only used in the following cases: <ul> <li> Security Hub is not configured to automatically add new accounts in an organization. </li> <li> The account was disassociated or deleted in Security Hub. </li> </ul> This action can only be used by an account that has Security Hub enabled. To enable Security Hub, you can use the <code> <a>EnableSecurityHub</a> </code> operation. For accounts that are not organization members, you create the account association and then send an invitation to the member account. To send the invitation, you use the <code> <a>InviteMembers</a> </code> operation. If the account owner accepts the invitation, the account becomes a member account in Security Hub. Accounts that are part of an organization do not receive an invitation. They automatically become a member account in Security Hub. A permissions policy is added that permits the administrator account to view the findings generated in the member account. When Security Hub is enabled in a member account, the member account findings are also visible to the administrator account.  To remove the association between the administrator and member accounts, use the <code> <a>DisassociateFromMasterAccount</a> </code> or <code> <a>DisassociateMembers</a> </code> operation.

        :param self:
        :param AccountDetails:  The list of accounts to associate with the Security Hub administrator account. For each account, the list includes the account ID and optionally the email address.<br/>
        :return: UnprocessedAccounts:  The list of AWS accounts that were not processed. For each account, the list includes the account ID and the email address.<br/>        """
        pass

    def decline_invitations(self, AccountIds: List[NonEmptyString]) -> DeclineInvitationsResponse:
        r"""Declines invitations to become a member account. This operation is only used by accounts that are not part of an organization. Organization accounts do not receive invitations.

        :param self:
        :param AccountIds:  The list of account IDs for the accounts from which to decline the invitations to Security Hub.<br/>
        :return: UnprocessedAccounts:  The list of AWS accounts that were not processed. For each account, the list includes the account ID and the email address.<br/>        """
        pass

    def delete_action_target(self, ActionTargetArn: str) -> DeleteActionTargetResponse:
        r"""Deletes a custom action target from Security Hub. Deleting a custom action target does not affect any findings or insights that were already sent to Amazon CloudWatch Events using the custom action.

        :param self:
        :param ActionTargetArn:  The ARN of the custom action target to delete.<br/>
        :return: ActionTargetArn:  The ARN of the custom action target that was deleted.<br/>        """
        pass

    def delete_insight(self, InsightArn: str) -> DeleteInsightResponse:
        r"""Deletes the insight specified by the <code>InsightArn</code>.

        :param self:
        :param InsightArn:  The ARN of the insight to delete.<br/>
        :return: InsightArn:  The ARN of the insight that was deleted.<br/>        """
        pass

    def delete_invitations(self, AccountIds: List[NonEmptyString]) -> DeleteInvitationsResponse:
        r"""Deletes invitations received by the AWS account to become a member account. This operation is only used by accounts that are not part of an organization. Organization accounts do not receive invitations.

        :param self:
        :param AccountIds:  The list of the account IDs that sent the invitations to delete.<br/>
        :return: UnprocessedAccounts:  The list of AWS accounts for which the invitations were not deleted. For each account, the list includes the account ID and the email address.<br/>        """
        pass

    def delete_members(self, AccountIds: List[NonEmptyString]) -> DeleteMembersResponse:
        r"""Deletes the specified member accounts from Security Hub. Can be used to delete member accounts that belong to an organization as well as member accounts that were invited manually.

        :param self:
        :param AccountIds:  The list of account IDs for the member accounts to delete.<br/>
        :return: UnprocessedAccounts:  The list of AWS accounts that were not deleted. For each account, the list includes the account ID and the email address.<br/>        """
        pass

    def describe_action_targets(self, ActionTargetArns: List[NonEmptyString]=None, NextToken: str=None, MaxResults: int=None) -> DescribeActionTargetsResponse:
        r"""Returns a list of the custom action targets in Security Hub in your account.

        :param self:
        :param MaxResults:  The maximum number of results to return.<br/>NextToken:  The token that is required for pagination. On your first call to the <code>DescribeActionTargets</code> operation, set the value of this parameter to <code>NULL</code>. For subsequent calls to the operation, to continue listing data, set the value of this parameter to the value returned from the previous response.<br/>ActionTargetArns:  A list of custom action target ARNs for the custom action targets to retrieve.<br/>
        :return: NextToken:  The pagination token to use to request the next page of results.<br/>ActionTargets:  A list of <code>ActionTarget</code> objects. Each object includes the <code>ActionTargetArn</code>, <code>Description</code>, and <code>Name</code> of a custom action target available in Security Hub.<br/>        """
        pass

    def describe_hub(self, HubArn: str=None) -> DescribeHubResponse:
        r"""Returns details about the Hub resource in your account, including the <code>HubArn</code> and the time when you enabled Security Hub.

        :param self:
        :param HubArn:  The ARN of the Hub resource to retrieve.<br/>
        :return: AutoEnableControls:  Whether to automatically enable new controls when they are added to standards that are enabled. If set to <code>true</code>, then new controls for enabled standards are enabled automatically. If set to <code>false</code>, then new controls are not enabled.<br/>SubscribedAt:  The date and time when Security Hub was enabled in the account.<br/>HubArn:  The ARN of the Hub resource that was retrieved.<br/>        """
        pass

    def describe_organization_configuration(self) -> DescribeOrganizationConfigurationResponse:
        r"""Returns information about the Organizations configuration for Security Hub. Can only be called from a Security Hub administrator account.

        :param self:
        :param 
        :return: MemberAccountLimitReached:  Whether the maximum number of allowed member accounts are already associated with the Security Hub administrator account.<br/>AutoEnable:  Whether to automatically enable Security Hub for new accounts in the organization. If set to <code>true</code>, then Security Hub is enabled for new accounts. If set to false, then new accounts are not added automatically.<br/>        """
        pass

    def describe_products(self, NextToken: str=None, MaxResults: int=None, ProductArn: str=None) -> DescribeProductsResponse:
        r"""Returns information about product integrations in Security Hub. You can optionally provide an integration ARN. If you provide an integration ARN, then the results only include that integration. If you do not provide an integration ARN, then the results include all of the available product integrations. 

        :param self:
        :param ProductArn:  The ARN of the integration to return.<br/>MaxResults:  The maximum number of results to return.<br/>NextToken:  The token that is required for pagination. On your first call to the <code>DescribeProducts</code> operation, set the value of this parameter to <code>NULL</code>. For subsequent calls to the operation, to continue listing data, set the value of this parameter to the value returned from the previous response.<br/>
        :return: NextToken:  The pagination token to use to request the next page of results.<br/>Products:  A list of products, including details for each product.<br/>        """
        pass

    def describe_standards(self, NextToken: str=None, MaxResults: int=None) -> DescribeStandardsResponse:
        r"""Returns a list of the available standards in Security Hub. For each standard, the results include the standard ARN, the name, and a description. 

        :param self:
        :param MaxResults:  The maximum number of standards to return.<br/>NextToken:  The token that is required for pagination. On your first call to the <code>DescribeStandards</code> operation, set the value of this parameter to <code>NULL</code>. For subsequent calls to the operation, to continue listing data, set the value of this parameter to the value returned from the previous response.<br/>
        :return: NextToken:  The pagination token to use to request the next page of results.<br/>Standards:  A list of available standards.<br/>        """
        pass

    def describe_standards_controls(self, StandardsSubscriptionArn: str, NextToken: str=None, MaxResults: int=None) -> DescribeStandardsControlsResponse:
        r"""Returns a list of security standards controls. For each control, the results include information about whether it is currently enabled, the severity, and a link to remediation information.

        :param self:
        :param MaxResults:  The maximum number of security standard controls to return.<br/>NextToken:  The token that is required for pagination. On your first call to the <code>DescribeStandardsControls</code> operation, set the value of this parameter to <code>NULL</code>. For subsequent calls to the operation, to continue listing data, set the value of this parameter to the value returned from the previous response.<br/>StandardsSubscriptionArn:  The ARN of a resource that represents your subscription to a supported standard. To get the subscription ARNs of the standards you have enabled, use the <code> <a>GetEnabledStandards</a> </code> operation.<br/>
        :return: NextToken:  The pagination token to use to request the next page of results.<br/>Controls:  A list of security standards controls.<br/>        """
        pass

    def disable_import_findings_for_product(self, ProductSubscriptionArn: str) -> DisableImportFindingsForProductResponse:
        r"""Disables the integration of the specified product with Security Hub. After the integration is disabled, findings from that product are no longer sent to Security Hub.

        :param self:
        :param ProductSubscriptionArn:  The ARN of the integrated product to disable the integration for.<br/>
        :return:         """
        pass

    def disable_organization_admin_account(self, AdminAccountId: str) -> DisableOrganizationAdminAccountResponse:
        r"""Disables a Security Hub administrator account. Can only be called by the organization management account.

        :param self:
        :param AdminAccountId:  The AWS account identifier of the Security Hub administrator account.<br/>
        :return:         """
        pass

    def disable_security_hub(self) -> DisableSecurityHubResponse:
        r"""Disables Security Hub in your account only in the current Region. To disable Security Hub in all Regions, you must submit one request per Region where you have enabled Security Hub. When you disable Security Hub for an administrator account, it doesn't disable Security Hub for any associated member accounts. When you disable Security Hub, your existing findings and insights and any Security Hub configuration settings are deleted after 90 days and cannot be recovered. Any standards that were enabled are disabled, and your administrator and member account associations are removed. If you want to save your existing findings, you must export them before you disable Security Hub.

        :param self:
        :param 
        :return:         """
        pass

    def disassociate_from_administrator_account(self) -> DisassociateFromAdministratorAccountResponse:
        r"""Disassociates the current Security Hub member account from the associated administrator account. This operation is only used by accounts that are not part of an organization. For organization accounts, only the administrator account can disassociate a member account.

        :param self:
        :param 
        :return:         """
        pass

    def disassociate_from_master_account(self) -> DisassociateFromMasterAccountResponse:
        r"""This method is deprecated. Instead, use <code>DisassociateFromAdministratorAccount</code>. The Security Hub console continues to use <code>DisassociateFromMasterAccount</code>. It will eventually change to use <code>DisassociateFromAdministratorAccount</code>. Any IAM policies that specifically control access to this function must continue to use <code>DisassociateFromMasterAccount</code>. You should also add <code>DisassociateFromAdministratorAccount</code> to your policies to ensure that the correct permissions are in place after the console begins to use <code>DisassociateFromAdministratorAccount</code>. Disassociates the current Security Hub member account from the associated administrator account. This operation is only used by accounts that are not part of an organization. For organization accounts, only the administrator account can disassociate a member account.

        :param self:
        :param 
        :return:         """
        pass

    def disassociate_members(self, AccountIds: List[NonEmptyString]) -> DisassociateMembersResponse:
        r"""Disassociates the specified member accounts from the associated administrator account. Can be used to disassociate both accounts that are managed using Organizations and accounts that were invited manually.

        :param self:
        :param AccountIds:  The account IDs of the member accounts to disassociate from the administrator account.<br/>
        :return:         """
        pass

    def enable_import_findings_for_product(self, ProductArn: str) -> EnableImportFindingsForProductResponse:
        r"""Enables the integration of a partner product with Security Hub. Integrated products send findings to Security Hub. When you enable a product integration, a permissions policy that grants permission for the product to send findings to Security Hub is applied.

        :param self:
        :param ProductArn:  The ARN of the product to enable the integration for.<br/>
        :return: ProductSubscriptionArn:  The ARN of your subscription to the product to enable integrations for.<br/>        """
        pass

    def enable_organization_admin_account(self, AdminAccountId: str) -> EnableOrganizationAdminAccountResponse:
        r"""Designates the Security Hub administrator account for an organization. Can only be called by the organization management account.

        :param self:
        :param AdminAccountId:  The AWS account identifier of the account to designate as the Security Hub administrator account.<br/>
        :return:         """
        pass

    def enable_security_hub(self, Tags: TagMap=None, EnableDefaultStandards: Boolean=None) -> EnableSecurityHubResponse:
        r"""Enables Security Hub for your account in the current Region or the Region you specify in the request. When you enable Security Hub, you grant to Security Hub the permissions necessary to gather findings from other services that are integrated with Security Hub. When you use the <code>EnableSecurityHub</code> operation to enable Security Hub, you also automatically enable the following standards. <ul> <li> CIS AWS Foundations </li> <li> AWS Foundational Security Best Practices </li> </ul> You do not enable the Payment Card Industry Data Security Standard (PCI DSS) standard.  To not enable the automatically enabled standards, set <code>EnableDefaultStandards</code> to <code>false</code>. After you enable Security Hub, to enable a standard, use the <code> <a>BatchEnableStandards</a> </code> operation. To disable a standard, use the <code> <a>BatchDisableStandards</a> </code> operation. To learn more, see <a href="https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-settingup.html">Setting Up AWS Security Hub</a> in the <i>AWS Security Hub User Guide</i>.

        :param self:
        :param EnableDefaultStandards:  Whether to enable the security standards that Security Hub has designated as automatically enabled. If you do not provide a value for <code>EnableDefaultStandards</code>, it is set to <code>true</code>. To not enable the automatically enabled standards, set <code>EnableDefaultStandards</code> to <code>false</code>.<br/>Tags:  The tags to add to the hub resource when you enable Security Hub.<br/>
        :return:         """
        pass

    def get_administrator_account(self) -> GetAdministratorAccountResponse:
        r"""Provides the details for the Security Hub administrator account for the current member account. Can be used by both member accounts that are managed using Organizations and accounts that were invited manually.

        :param self:
        :param 
        :return: Administrator:  Details about an invitation.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MemberStatus</i> The current status of the association between the member and administrator accounts.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InvitedAt</i> The timestamp of when the invitation was sent.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InvitationId</i> The ID of the invitation sent to the member account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccountId</i> The account ID of the Security Hub administrator account that the invitation was sent from.<br/>        """
        pass

    def get_enabled_standards(self, StandardsSubscriptionArns: List[NonEmptyString]=None, NextToken: str=None, MaxResults: int=None) -> GetEnabledStandardsResponse:
        r"""Returns a list of the standards that are currently enabled.

        :param self:
        :param MaxResults:  The maximum number of results to return in the response.<br/>NextToken:  The token that is required for pagination. On your first call to the <code>GetEnabledStandards</code> operation, set the value of this parameter to <code>NULL</code>. For subsequent calls to the operation, to continue listing data, set the value of this parameter to the value returned from the previous response.<br/>StandardsSubscriptionArns:  The list of the standards subscription ARNs for the standards to retrieve.<br/>
        :return: NextToken:  The pagination token to use to request the next page of results.<br/>StandardsSubscriptions:  The list of <code>StandardsSubscriptions</code> objects that include information about the enabled standards.<br/>        """
        pass

    def get_findings(self, Filters: AwsSecurityFindingFilters=None, SortCriteria: List[SortCriterion]=None, NextToken: str=None, MaxResults: int=None) -> GetFindingsResponse:
        r"""Returns a list of findings that match the specified criteria.

        :param self:
        :param MaxResults:  The maximum number of findings to return.<br/>NextToken:  The token that is required for pagination. On your first call to the <code>GetFindings</code> operation, set the value of this parameter to <code>NULL</code>. For subsequent calls to the operation, to continue listing data, set the value of this parameter to the value returned from the previous response.<br/>SortCriteria:  The finding attributes used to sort the list of returned findings.<br/>Filters:  The finding attributes used to define a condition to filter the returned findings. You can filter by up to 10 finding attributes. For each attribute, you can provide up to 20 filter values. Note that in the available filter fields, <code>WorkflowState</code> is deprecated. To search for a finding based on its workflow status, use <code>WorkflowStatus</code>.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FindingProviderFieldsTypes</i> One or more finding types that the finding provider assigned to the finding. Uses the format of <code>namespace/category/classifier</code> that classify a finding. Valid namespace values are: Software and Configuration Checks | TTPs | Effects | Unusual Behaviors | Sensitive Data Identifications<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FindingProviderFieldsSeverityOriginal</i> The finding provider's original value for the severity.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FindingProviderFieldsSeverityLabel</i> The finding provider value for the severity label.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FindingProviderFieldsRelatedFindingsProductArn</i> The ARN of the solution that generated a related finding that is identified by the finding provider.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FindingProviderFieldsRelatedFindingsId</i> The finding identifier of a related finding that is identified by the finding provider.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FindingProviderFieldsCriticality</i> The finding provider value for the level of importance assigned to the resources associated with the findings. A score of 0 means that the underlying resources have no criticality, and a score of 100 is reserved for the most critical resources. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FindingProviderFieldsConfidence</i> The finding provider value for the finding confidence. Confidence is defined as the likelihood that a finding accurately identifies the behavior or issue that it was intended to identify. Confidence is scored on a 0-100 basis using a ratio scale, where 0 means zero percent confidence and 100 means 100 percent confidence.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Keyword</i> A keyword for a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NoteUpdatedBy</i> The principal that created a note.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NoteUpdatedAt</i> The timestamp of when the note was updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NoteText</i> The text of a note.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RelatedFindingsId</i> The solution-generated identifier for a related finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RelatedFindingsProductArn</i> The ARN of the solution that generated a related finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecordState</i> The updated record state for the finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WorkflowStatus</i> The status of the investigation into a finding. Allowed values are the following. <ul> <li>  <code>NEW</code> - The initial state of a finding, before it is reviewed. Security Hub also resets the workflow status from <code>NOTIFIED</code> or <code>RESOLVED</code> to <code>NEW</code> in the following cases: <ul> <li> The record state changes from <code>ARCHIVED</code> to <code>ACTIVE</code>. </li> <li> The compliance status changes from <code>PASSED</code> to either <code>WARNING</code>, <code>FAILED</code>, or <code>NOT_AVAILABLE</code>. </li> </ul> </li> <li>  <code>NOTIFIED</code> - Indicates that the resource owner has been notified about the security issue. Used when the initial reviewer is not the resource owner, and needs intervention from the resource owner. </li> <li>  <code>SUPPRESSED</code> - The finding will not be reviewed again and will not be acted upon. </li> <li>  <code>RESOLVED</code> - The finding was reviewed and remediated and is now considered resolved.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WorkflowState</i> The workflow state of a finding. Note that this field is deprecated. To search for a finding based on its workflow status, use <code>WorkflowStatus</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VerificationState</i> The veracity of a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ComplianceStatus</i> Exclusive to findings that are generated as the result of a check run against a specific rule in a supported standard, such as CIS AWS Foundations. Contains security standard-related finding details.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceDetailsOther</i> The details of a resource that doesn't have a specific subfield for the resource type defined.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceContainerLaunchedAt</i> The date/time that the container was started.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceContainerImageName</i> The name of the image related to a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceContainerImageId</i> The identifier of the image related to a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceContainerName</i> The name of the container related to a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceAwsIamAccessKeyCreatedAt</i> The creation date/time of the IAM access key related to a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceAwsIamAccessKeyStatus</i> The status of the IAM access key related to a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceAwsIamAccessKeyUserName</i> The user associated with the IAM access key related to a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceAwsS3BucketOwnerName</i> The display name of the owner of the S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceAwsS3BucketOwnerId</i> The canonical user ID of the owner of the S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceAwsEc2InstanceLaunchedAt</i> The date and time the instance was launched.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceAwsEc2InstanceSubnetId</i> The identifier of the subnet that the instance was launched in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceAwsEc2InstanceVpcId</i> The identifier of the VPC that the instance was launched in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceAwsEc2InstanceIamInstanceProfileArn</i> The IAM profile ARN of the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceAwsEc2InstanceKeyName</i> The key name associated with the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceAwsEc2InstanceIpV6Addresses</i> The IPv6 addresses associated with the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceAwsEc2InstanceIpV4Addresses</i> The IPv4 addresses associated with the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceAwsEc2InstanceImageId</i> The Amazon Machine Image (AMI) ID of the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceAwsEc2InstanceType</i> The instance type of the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceTags</i> A list of AWS tags associated with a resource at the time the finding was processed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceRegion</i> The canonical AWS external Region name where this resource is located.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourcePartition</i> The canonical AWS partition name that the Region is assigned to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceId</i> The canonical identifier for the given resource type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceType</i> Specifies the type of the resource that details are provided for.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ThreatIntelIndicatorSourceUrl</i> The URL for more details from the source of the threat intelligence.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ThreatIntelIndicatorSource</i> The source of the threat intelligence.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ThreatIntelIndicatorLastObservedAt</i> The date/time of the last observation of a threat intelligence indicator.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ThreatIntelIndicatorCategory</i> The category of a threat intelligence indicator.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ThreatIntelIndicatorValue</i> The value of a threat intelligence indicator.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ThreatIntelIndicatorType</i> The type of a threat intelligence indicator.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProcessTerminatedAt</i> The date/time that the process was terminated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProcessLaunchedAt</i> The date/time that the process was launched.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProcessParentPid</i> The parent process ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProcessPid</i> The process ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProcessPath</i> The path to the process executable.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProcessName</i> The name of the process.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkDestinationDomain</i> The destination domain of network-related information about a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkDestinationPort</i> The destination port of network-related information about a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkDestinationIpV6</i> The destination IPv6 address of network-related information about a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkDestinationIpV4</i> The destination IPv4 address of network-related information about a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkSourceMac</i> The source media access control (MAC) address of network-related information about a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkSourceDomain</i> The source domain of network-related information about a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkSourcePort</i> The source port of network-related information about a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkSourceIpV6</i> The source IPv6 address of network-related information about a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkSourceIpV4</i> The source IPv4 address of network-related information about a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkProtocol</i> The protocol of network-related information about a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkDirection</i> Indicates the direction of network traffic associated with a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MalwareState</i> The state of the malware that was observed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MalwarePath</i> The filesystem path of the malware that was observed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MalwareType</i> The type of the malware that was observed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MalwareName</i> The name of the malware that was observed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserDefinedFields</i> A list of name/value string pairs associated with the finding. These are custom, user-defined fields added to a finding. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CompanyName</i> The name of the findings provider (company) that owns the solution (product) that generates findings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProductName</i> The name of the solution (product) that generates findings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProductFields</i> A data type where security-findings providers can include additional solution-specific details that aren't part of the defined <code>AwsSecurityFinding</code> format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceUrl</i> A URL that links to a page about the current finding in the security-findings provider's solution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecommendationText</i> The recommendation of what to do about the issue described in a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A finding's description.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Title</i> A finding's title.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Criticality</i> The level of importance assigned to the resources associated with the finding. A score of 0 means that the underlying resources have no criticality, and a score of 100 is reserved for the most critical resources.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Confidence</i> A finding's confidence. Confidence is defined as the likelihood that a finding accurately identifies the behavior or issue that it was intended to identify. Confidence is scored on a 0-100 basis using a ratio scale, where 0 means zero percent confidence and 100 means 100 percent confidence.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SeverityLabel</i> The label of a finding's severity.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SeverityNormalized</i> The normalized severity of a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SeverityProduct</i> The native severity as defined by the security-findings provider's solution that generated the finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdatedAt</i> An ISO8601-formatted timestamp that indicates when the security-findings provider last updated the finding record. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedAt</i> An ISO8601-formatted timestamp that indicates when the security-findings provider captured the potential security issue that a finding captured.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastObservedAt</i> An ISO8601-formatted timestamp that indicates when the security-findings provider most recently observed the potential security issue that a finding captured.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FirstObservedAt</i> An ISO8601-formatted timestamp that indicates when the security-findings provider first observed the potential security issue that a finding captured.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> A finding type in the format of <code>namespace/category/classifier</code> that classifies a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GeneratorId</i> The identifier for the solution-specific component (a discrete unit of logic) that generated a finding. In various security-findings providers' solutions, this generator can be called a rule, a check, a detector, a plugin, etc.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The security findings provider-specific identifier for a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AwsAccountId</i> The AWS account ID that a finding is generated in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProductArn</i> The ARN generated by Security Hub that uniquely identifies a third-party company (security findings provider) after this provider's product (solution that generates findings) is registered with Security Hub.<br/>
        :return: NextToken:  The pagination token to use to request the next page of results.<br/>Findings:  The findings that matched the filters specified in the request.<br/>        """
        pass

    def get_insight_results(self, InsightArn: str) -> GetInsightResultsResponse:
        r"""Lists the results of the Security Hub insight specified by the insight ARN.

        :param self:
        :param InsightArn:  The ARN of the insight for which to return results.<br/>
        :return: InsightResults:  The insight results returned by the operation.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResultValues</i> The list of insight result values returned by the <code>GetInsightResults</code> operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GroupByAttribute</i> The attribute that the findings are grouped by for the insight whose results are returned by the <code>GetInsightResults</code> operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InsightArn</i> The ARN of the insight whose results are returned by the <code>GetInsightResults</code> operation.<br/>        """
        pass

    def get_insights(self, InsightArns: List[NonEmptyString]=None, NextToken: str=None, MaxResults: int=None) -> GetInsightsResponse:
        r"""Lists and describes insights for the specified insight ARNs.

        :param self:
        :param MaxResults:  The maximum number of items to return in the response.<br/>NextToken:  The token that is required for pagination. On your first call to the <code>GetInsights</code> operation, set the value of this parameter to <code>NULL</code>. For subsequent calls to the operation, to continue listing data, set the value of this parameter to the value returned from the previous response.<br/>InsightArns:  The ARNs of the insights to describe. If you do not provide any insight ARNs, then <code>GetInsights</code> returns all of your custom insights. It does not return any managed insights.<br/>
        :return: NextToken:  The pagination token to use to request the next page of results.<br/>Insights:  The insights returned by the operation.<br/>        """
        pass

    def get_invitations_count(self) -> GetInvitationsCountResponse:
        r"""Returns the count of all Security Hub membership invitations that were sent to the current member account, not including the currently accepted invitation. 

        :param self:
        :param 
        :return: InvitationsCount:  The number of all membership invitations sent to this Security Hub member account, not including the currently accepted invitation.<br/>        """
        pass

    def get_master_account(self) -> GetMasterAccountResponse:
        r"""This method is deprecated. Instead, use <code>GetAdministratorAccount</code>. The Security Hub console continues to use <code>GetMasterAccount</code>. It will eventually change to use <code>GetAdministratorAccount</code>. Any IAM policies that specifically control access to this function must continue to use <code>GetMasterAccount</code>. You should also add <code>GetAdministratorAccount</code> to your policies to ensure that the correct permissions are in place after the console begins to use <code>GetAdministratorAccount</code>. Provides the details for the Security Hub administrator account for the current member account. Can be used by both member accounts that are managed using Organizations and accounts that were invited manually.

        :param self:
        :param 
        :return: Master:  A list of details about the Security Hub administrator account for the current member account. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MemberStatus</i> The current status of the association between the member and administrator accounts.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InvitedAt</i> The timestamp of when the invitation was sent.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InvitationId</i> The ID of the invitation sent to the member account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccountId</i> The account ID of the Security Hub administrator account that the invitation was sent from.<br/>        """
        pass

    def get_members(self, AccountIds: List[NonEmptyString]) -> GetMembersResponse:
        r"""Returns the details for the Security Hub member accounts for the specified account IDs. An administrator account can be either the delegated Security Hub administrator account for an organization or an administrator account that enabled Security Hub manually. The results include both member accounts that are managed using Organizations and accounts that were invited manually.

        :param self:
        :param AccountIds:  The list of account IDs for the Security Hub member accounts to return the details for. <br/>
        :return: UnprocessedAccounts:  The list of AWS accounts that could not be processed. For each account, the list includes the account ID and the email address.<br/>Members:  The list of details about the Security Hub member accounts.<br/>        """
        pass

    def invite_members(self, AccountIds: List[NonEmptyString]) -> InviteMembersResponse:
        r"""Invites other AWS accounts to become member accounts for the Security Hub administrator account that the invitation is sent from. This operation is only used to invite accounts that do not belong to an organization. Organization accounts do not receive invitations. Before you can use this action to invite a member, you must first use the <code> <a>CreateMembers</a> </code> action to create the member account in Security Hub. When the account owner enables Security Hub and accepts the invitation to become a member account, the administrator account can view the findings generated from the member account.

        :param self:
        :param AccountIds:  The list of account IDs of the AWS accounts to invite to Security Hub as members. <br/>
        :return: UnprocessedAccounts:  The list of AWS accounts that could not be processed. For each account, the list includes the account ID and the email address.<br/>        """
        pass

    def list_enabled_products_for_import(self, NextToken: str=None, MaxResults: int=None) -> ListEnabledProductsForImportResponse:
        r"""Lists all findings-generating solutions (products) that you are subscribed to receive findings from in Security Hub.

        :param self:
        :param MaxResults:  The maximum number of items to return in the response.<br/>NextToken:  The token that is required for pagination. On your first call to the <code>ListEnabledProductsForImport</code> operation, set the value of this parameter to <code>NULL</code>. For subsequent calls to the operation, to continue listing data, set the value of this parameter to the value returned from the previous response.<br/>
        :return: NextToken:  The pagination token to use to request the next page of results.<br/>ProductSubscriptions:  The list of ARNs for the resources that represent your subscriptions to products. <br/>        """
        pass

    def list_invitations(self, MaxResults: int=None, NextToken: str=None) -> ListInvitationsResponse:
        r"""Lists all Security Hub membership invitations that were sent to the current AWS account. This operation is only used by accounts that are managed by invitation. Accounts that are managed using the integration with AWS Organizations do not receive invitations.

        :param self:
        :param NextToken:  The token that is required for pagination. On your first call to the <code>ListInvitations</code> operation, set the value of this parameter to <code>NULL</code>. For subsequent calls to the operation, to continue listing data, set the value of this parameter to the value returned from the previous response.<br/>MaxResults:  The maximum number of items to return in the response. <br/>
        :return: NextToken:  The pagination token to use to request the next page of results.<br/>Invitations:  The details of the invitations returned by the operation.<br/>        """
        pass

    def list_members(self, OnlyAssociated: Boolean=None, MaxResults: int=None, NextToken: str=None) -> ListMembersResponse:
        r"""Lists details about all member accounts for the current Security Hub administrator account. The results include both member accounts that belong to an organization and member accounts that were invited manually.

        :param self:
        :param NextToken:  The token that is required for pagination. On your first call to the <code>ListMembers</code> operation, set the value of this parameter to <code>NULL</code>. For subsequent calls to the operation, to continue listing data, set the value of this parameter to the value returned from the previous response.<br/>MaxResults:  The maximum number of items to return in the response. <br/>OnlyAssociated:  Specifies which member accounts to include in the response based on their relationship status with the administrator account. The default value is <code>TRUE</code>. If <code>OnlyAssociated</code> is set to <code>TRUE</code>, the response includes member accounts whose relationship status with the administrator account is set to <code>ENABLED</code>. If <code>OnlyAssociated</code> is set to <code>FALSE</code>, the response includes all existing member accounts. <br/>
        :return: NextToken:  The pagination token to use to request the next page of results.<br/>Members:  Member details returned by the operation.<br/>        """
        pass

    def list_organization_admin_accounts(self, MaxResults: int=None, NextToken: str=None) -> ListOrganizationAdminAccountsResponse:
        r"""Lists the Security Hub administrator accounts. Can only be called by the organization management account.

        :param self:
        :param NextToken:  The token that is required for pagination. On your first call to the <code>ListOrganizationAdminAccounts</code> operation, set the value of this parameter to <code>NULL</code>. For subsequent calls to the operation, to continue listing data, set the value of this parameter to the value returned from the previous response. <br/>MaxResults:  The maximum number of items to return in the response.<br/>
        :return: NextToken:  The pagination token to use to request the next page of results.<br/>AdminAccounts:  The list of Security Hub administrator accounts.<br/>        """
        pass

    def list_tags_for_resource(self, ResourceArn: str) -> ListTagsForResourceResponse:
        r"""Returns a list of tags associated with a resource.

        :param self:
        :param ResourceArn:  The ARN of the resource to retrieve tags for.<br/>
        :return: Tags:  The tags associated with a resource.<br/>        """
        pass

    def tag_resource(self, Tags: TagMap, ResourceArn: str) -> TagResourceResponse:
        r"""Adds one or more tags to a resource.

        :param self:
        :param Tags:  The tags to add to the resource. You can add up to 50 tags at a time. The tag keys can be no longer than 128 characters. The tag values can be no longer than 256 characters.<br/>ResourceArn:  The ARN of the resource to apply the tags to.<br/>
        :return:         """
        pass

    def untag_resource(self, TagKeys: List[TagKey], ResourceArn: str) -> UntagResourceResponse:
        r"""Removes one or more tags from a resource.

        :param self:
        :param TagKeys:  The tag keys associated with the tags to remove from the resource. You can remove up to 50 tags at a time.<br/>ResourceArn:  The ARN of the resource to remove the tags from.<br/>
        :return:         """
        pass

    def update_action_target(self, ActionTargetArn: str, Name: str=None, Description: str=None) -> UpdateActionTargetResponse:
        r"""Updates the name and description of a custom action target in Security Hub.

        :param self:
        :param Description:  The updated description for the custom action target.<br/>Name:  The updated name of the custom action target.<br/>ActionTargetArn:  The ARN of the custom action target to update.<br/>
        :return:         """
        pass

    def update_findings(self, Filters: AwsSecurityFindingFilters, Note: NoteUpdate=None, RecordState: str=None) -> UpdateFindingsResponse:
        r""" <code>UpdateFindings</code> is deprecated. Instead of <code>UpdateFindings</code>, use <code>BatchUpdateFindings</code>. Updates the <code>Note</code> and <code>RecordState</code> of the Security Hub-aggregated findings that the filter attributes specify. Any member account that can view the finding also sees the update to the finding.

        :param self:
        :param RecordState:  The updated record state for the finding.<br/>Note:  The updated note for the finding.:<br/>Filters:  A collection of attributes that specify which findings you want to update.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FindingProviderFieldsTypes</i> One or more finding types that the finding provider assigned to the finding. Uses the format of <code>namespace/category/classifier</code> that classify a finding. Valid namespace values are: Software and Configuration Checks | TTPs | Effects | Unusual Behaviors | Sensitive Data Identifications<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FindingProviderFieldsSeverityOriginal</i> The finding provider's original value for the severity.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FindingProviderFieldsSeverityLabel</i> The finding provider value for the severity label.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FindingProviderFieldsRelatedFindingsProductArn</i> The ARN of the solution that generated a related finding that is identified by the finding provider.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FindingProviderFieldsRelatedFindingsId</i> The finding identifier of a related finding that is identified by the finding provider.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FindingProviderFieldsCriticality</i> The finding provider value for the level of importance assigned to the resources associated with the findings. A score of 0 means that the underlying resources have no criticality, and a score of 100 is reserved for the most critical resources. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FindingProviderFieldsConfidence</i> The finding provider value for the finding confidence. Confidence is defined as the likelihood that a finding accurately identifies the behavior or issue that it was intended to identify. Confidence is scored on a 0-100 basis using a ratio scale, where 0 means zero percent confidence and 100 means 100 percent confidence.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Keyword</i> A keyword for a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NoteUpdatedBy</i> The principal that created a note.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NoteUpdatedAt</i> The timestamp of when the note was updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NoteText</i> The text of a note.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RelatedFindingsId</i> The solution-generated identifier for a related finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RelatedFindingsProductArn</i> The ARN of the solution that generated a related finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecordState</i> The updated record state for the finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WorkflowStatus</i> The status of the investigation into a finding. Allowed values are the following. <ul> <li>  <code>NEW</code> - The initial state of a finding, before it is reviewed. Security Hub also resets the workflow status from <code>NOTIFIED</code> or <code>RESOLVED</code> to <code>NEW</code> in the following cases: <ul> <li> The record state changes from <code>ARCHIVED</code> to <code>ACTIVE</code>. </li> <li> The compliance status changes from <code>PASSED</code> to either <code>WARNING</code>, <code>FAILED</code>, or <code>NOT_AVAILABLE</code>. </li> </ul> </li> <li>  <code>NOTIFIED</code> - Indicates that the resource owner has been notified about the security issue. Used when the initial reviewer is not the resource owner, and needs intervention from the resource owner. </li> <li>  <code>SUPPRESSED</code> - The finding will not be reviewed again and will not be acted upon. </li> <li>  <code>RESOLVED</code> - The finding was reviewed and remediated and is now considered resolved.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WorkflowState</i> The workflow state of a finding. Note that this field is deprecated. To search for a finding based on its workflow status, use <code>WorkflowStatus</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VerificationState</i> The veracity of a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ComplianceStatus</i> Exclusive to findings that are generated as the result of a check run against a specific rule in a supported standard, such as CIS AWS Foundations. Contains security standard-related finding details.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceDetailsOther</i> The details of a resource that doesn't have a specific subfield for the resource type defined.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceContainerLaunchedAt</i> The date/time that the container was started.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceContainerImageName</i> The name of the image related to a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceContainerImageId</i> The identifier of the image related to a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceContainerName</i> The name of the container related to a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceAwsIamAccessKeyCreatedAt</i> The creation date/time of the IAM access key related to a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceAwsIamAccessKeyStatus</i> The status of the IAM access key related to a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceAwsIamAccessKeyUserName</i> The user associated with the IAM access key related to a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceAwsS3BucketOwnerName</i> The display name of the owner of the S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceAwsS3BucketOwnerId</i> The canonical user ID of the owner of the S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceAwsEc2InstanceLaunchedAt</i> The date and time the instance was launched.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceAwsEc2InstanceSubnetId</i> The identifier of the subnet that the instance was launched in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceAwsEc2InstanceVpcId</i> The identifier of the VPC that the instance was launched in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceAwsEc2InstanceIamInstanceProfileArn</i> The IAM profile ARN of the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceAwsEc2InstanceKeyName</i> The key name associated with the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceAwsEc2InstanceIpV6Addresses</i> The IPv6 addresses associated with the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceAwsEc2InstanceIpV4Addresses</i> The IPv4 addresses associated with the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceAwsEc2InstanceImageId</i> The Amazon Machine Image (AMI) ID of the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceAwsEc2InstanceType</i> The instance type of the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceTags</i> A list of AWS tags associated with a resource at the time the finding was processed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceRegion</i> The canonical AWS external Region name where this resource is located.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourcePartition</i> The canonical AWS partition name that the Region is assigned to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceId</i> The canonical identifier for the given resource type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceType</i> Specifies the type of the resource that details are provided for.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ThreatIntelIndicatorSourceUrl</i> The URL for more details from the source of the threat intelligence.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ThreatIntelIndicatorSource</i> The source of the threat intelligence.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ThreatIntelIndicatorLastObservedAt</i> The date/time of the last observation of a threat intelligence indicator.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ThreatIntelIndicatorCategory</i> The category of a threat intelligence indicator.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ThreatIntelIndicatorValue</i> The value of a threat intelligence indicator.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ThreatIntelIndicatorType</i> The type of a threat intelligence indicator.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProcessTerminatedAt</i> The date/time that the process was terminated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProcessLaunchedAt</i> The date/time that the process was launched.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProcessParentPid</i> The parent process ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProcessPid</i> The process ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProcessPath</i> The path to the process executable.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProcessName</i> The name of the process.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkDestinationDomain</i> The destination domain of network-related information about a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkDestinationPort</i> The destination port of network-related information about a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkDestinationIpV6</i> The destination IPv6 address of network-related information about a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkDestinationIpV4</i> The destination IPv4 address of network-related information about a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkSourceMac</i> The source media access control (MAC) address of network-related information about a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkSourceDomain</i> The source domain of network-related information about a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkSourcePort</i> The source port of network-related information about a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkSourceIpV6</i> The source IPv6 address of network-related information about a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkSourceIpV4</i> The source IPv4 address of network-related information about a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkProtocol</i> The protocol of network-related information about a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkDirection</i> Indicates the direction of network traffic associated with a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MalwareState</i> The state of the malware that was observed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MalwarePath</i> The filesystem path of the malware that was observed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MalwareType</i> The type of the malware that was observed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MalwareName</i> The name of the malware that was observed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserDefinedFields</i> A list of name/value string pairs associated with the finding. These are custom, user-defined fields added to a finding. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CompanyName</i> The name of the findings provider (company) that owns the solution (product) that generates findings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProductName</i> The name of the solution (product) that generates findings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProductFields</i> A data type where security-findings providers can include additional solution-specific details that aren't part of the defined <code>AwsSecurityFinding</code> format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceUrl</i> A URL that links to a page about the current finding in the security-findings provider's solution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecommendationText</i> The recommendation of what to do about the issue described in a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A finding's description.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Title</i> A finding's title.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Criticality</i> The level of importance assigned to the resources associated with the finding. A score of 0 means that the underlying resources have no criticality, and a score of 100 is reserved for the most critical resources.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Confidence</i> A finding's confidence. Confidence is defined as the likelihood that a finding accurately identifies the behavior or issue that it was intended to identify. Confidence is scored on a 0-100 basis using a ratio scale, where 0 means zero percent confidence and 100 means 100 percent confidence.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SeverityLabel</i> The label of a finding's severity.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SeverityNormalized</i> The normalized severity of a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SeverityProduct</i> The native severity as defined by the security-findings provider's solution that generated the finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdatedAt</i> An ISO8601-formatted timestamp that indicates when the security-findings provider last updated the finding record. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedAt</i> An ISO8601-formatted timestamp that indicates when the security-findings provider captured the potential security issue that a finding captured.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastObservedAt</i> An ISO8601-formatted timestamp that indicates when the security-findings provider most recently observed the potential security issue that a finding captured.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FirstObservedAt</i> An ISO8601-formatted timestamp that indicates when the security-findings provider first observed the potential security issue that a finding captured.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> A finding type in the format of <code>namespace/category/classifier</code> that classifies a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GeneratorId</i> The identifier for the solution-specific component (a discrete unit of logic) that generated a finding. In various security-findings providers' solutions, this generator can be called a rule, a check, a detector, a plugin, etc.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The security findings provider-specific identifier for a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AwsAccountId</i> The AWS account ID that a finding is generated in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProductArn</i> The ARN generated by Security Hub that uniquely identifies a third-party company (security findings provider) after this provider's product (solution that generates findings) is registered with Security Hub.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdatedBy</i> The principal that updated the note.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Text</i> The updated note text.<br/>
        :return:         """
        pass

    def update_insight(self, InsightArn: str, Name: str=None, Filters: AwsSecurityFindingFilters=None, GroupByAttribute: str=None) -> UpdateInsightResponse:
        r"""Updates the Security Hub insight identified by the specified insight ARN.

        :param self:
        :param GroupByAttribute:  The updated <code>GroupBy</code> attribute that defines this insight.<br/>Filters:  The updated filters that define this insight.:<br/>Name:  The updated name for the insight.<br/>InsightArn:  The ARN of the insight that you want to update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FindingProviderFieldsTypes</i> One or more finding types that the finding provider assigned to the finding. Uses the format of <code>namespace/category/classifier</code> that classify a finding. Valid namespace values are: Software and Configuration Checks | TTPs | Effects | Unusual Behaviors | Sensitive Data Identifications<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FindingProviderFieldsSeverityOriginal</i> The finding provider's original value for the severity.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FindingProviderFieldsSeverityLabel</i> The finding provider value for the severity label.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FindingProviderFieldsRelatedFindingsProductArn</i> The ARN of the solution that generated a related finding that is identified by the finding provider.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FindingProviderFieldsRelatedFindingsId</i> The finding identifier of a related finding that is identified by the finding provider.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FindingProviderFieldsCriticality</i> The finding provider value for the level of importance assigned to the resources associated with the findings. A score of 0 means that the underlying resources have no criticality, and a score of 100 is reserved for the most critical resources. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FindingProviderFieldsConfidence</i> The finding provider value for the finding confidence. Confidence is defined as the likelihood that a finding accurately identifies the behavior or issue that it was intended to identify. Confidence is scored on a 0-100 basis using a ratio scale, where 0 means zero percent confidence and 100 means 100 percent confidence.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Keyword</i> A keyword for a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NoteUpdatedBy</i> The principal that created a note.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NoteUpdatedAt</i> The timestamp of when the note was updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NoteText</i> The text of a note.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RelatedFindingsId</i> The solution-generated identifier for a related finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RelatedFindingsProductArn</i> The ARN of the solution that generated a related finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecordState</i> The updated record state for the finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WorkflowStatus</i> The status of the investigation into a finding. Allowed values are the following. <ul> <li>  <code>NEW</code> - The initial state of a finding, before it is reviewed. Security Hub also resets the workflow status from <code>NOTIFIED</code> or <code>RESOLVED</code> to <code>NEW</code> in the following cases: <ul> <li> The record state changes from <code>ARCHIVED</code> to <code>ACTIVE</code>. </li> <li> The compliance status changes from <code>PASSED</code> to either <code>WARNING</code>, <code>FAILED</code>, or <code>NOT_AVAILABLE</code>. </li> </ul> </li> <li>  <code>NOTIFIED</code> - Indicates that the resource owner has been notified about the security issue. Used when the initial reviewer is not the resource owner, and needs intervention from the resource owner. </li> <li>  <code>SUPPRESSED</code> - The finding will not be reviewed again and will not be acted upon. </li> <li>  <code>RESOLVED</code> - The finding was reviewed and remediated and is now considered resolved.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WorkflowState</i> The workflow state of a finding. Note that this field is deprecated. To search for a finding based on its workflow status, use <code>WorkflowStatus</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VerificationState</i> The veracity of a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ComplianceStatus</i> Exclusive to findings that are generated as the result of a check run against a specific rule in a supported standard, such as CIS AWS Foundations. Contains security standard-related finding details.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceDetailsOther</i> The details of a resource that doesn't have a specific subfield for the resource type defined.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceContainerLaunchedAt</i> The date/time that the container was started.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceContainerImageName</i> The name of the image related to a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceContainerImageId</i> The identifier of the image related to a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceContainerName</i> The name of the container related to a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceAwsIamAccessKeyCreatedAt</i> The creation date/time of the IAM access key related to a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceAwsIamAccessKeyStatus</i> The status of the IAM access key related to a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceAwsIamAccessKeyUserName</i> The user associated with the IAM access key related to a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceAwsS3BucketOwnerName</i> The display name of the owner of the S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceAwsS3BucketOwnerId</i> The canonical user ID of the owner of the S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceAwsEc2InstanceLaunchedAt</i> The date and time the instance was launched.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceAwsEc2InstanceSubnetId</i> The identifier of the subnet that the instance was launched in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceAwsEc2InstanceVpcId</i> The identifier of the VPC that the instance was launched in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceAwsEc2InstanceIamInstanceProfileArn</i> The IAM profile ARN of the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceAwsEc2InstanceKeyName</i> The key name associated with the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceAwsEc2InstanceIpV6Addresses</i> The IPv6 addresses associated with the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceAwsEc2InstanceIpV4Addresses</i> The IPv4 addresses associated with the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceAwsEc2InstanceImageId</i> The Amazon Machine Image (AMI) ID of the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceAwsEc2InstanceType</i> The instance type of the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceTags</i> A list of AWS tags associated with a resource at the time the finding was processed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceRegion</i> The canonical AWS external Region name where this resource is located.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourcePartition</i> The canonical AWS partition name that the Region is assigned to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceId</i> The canonical identifier for the given resource type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceType</i> Specifies the type of the resource that details are provided for.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ThreatIntelIndicatorSourceUrl</i> The URL for more details from the source of the threat intelligence.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ThreatIntelIndicatorSource</i> The source of the threat intelligence.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ThreatIntelIndicatorLastObservedAt</i> The date/time of the last observation of a threat intelligence indicator.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ThreatIntelIndicatorCategory</i> The category of a threat intelligence indicator.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ThreatIntelIndicatorValue</i> The value of a threat intelligence indicator.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ThreatIntelIndicatorType</i> The type of a threat intelligence indicator.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProcessTerminatedAt</i> The date/time that the process was terminated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProcessLaunchedAt</i> The date/time that the process was launched.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProcessParentPid</i> The parent process ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProcessPid</i> The process ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProcessPath</i> The path to the process executable.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProcessName</i> The name of the process.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkDestinationDomain</i> The destination domain of network-related information about a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkDestinationPort</i> The destination port of network-related information about a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkDestinationIpV6</i> The destination IPv6 address of network-related information about a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkDestinationIpV4</i> The destination IPv4 address of network-related information about a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkSourceMac</i> The source media access control (MAC) address of network-related information about a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkSourceDomain</i> The source domain of network-related information about a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkSourcePort</i> The source port of network-related information about a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkSourceIpV6</i> The source IPv6 address of network-related information about a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkSourceIpV4</i> The source IPv4 address of network-related information about a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkProtocol</i> The protocol of network-related information about a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NetworkDirection</i> Indicates the direction of network traffic associated with a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MalwareState</i> The state of the malware that was observed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MalwarePath</i> The filesystem path of the malware that was observed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MalwareType</i> The type of the malware that was observed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MalwareName</i> The name of the malware that was observed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserDefinedFields</i> A list of name/value string pairs associated with the finding. These are custom, user-defined fields added to a finding. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CompanyName</i> The name of the findings provider (company) that owns the solution (product) that generates findings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProductName</i> The name of the solution (product) that generates findings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProductFields</i> A data type where security-findings providers can include additional solution-specific details that aren't part of the defined <code>AwsSecurityFinding</code> format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceUrl</i> A URL that links to a page about the current finding in the security-findings provider's solution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecommendationText</i> The recommendation of what to do about the issue described in a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A finding's description.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Title</i> A finding's title.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Criticality</i> The level of importance assigned to the resources associated with the finding. A score of 0 means that the underlying resources have no criticality, and a score of 100 is reserved for the most critical resources.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Confidence</i> A finding's confidence. Confidence is defined as the likelihood that a finding accurately identifies the behavior or issue that it was intended to identify. Confidence is scored on a 0-100 basis using a ratio scale, where 0 means zero percent confidence and 100 means 100 percent confidence.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SeverityLabel</i> The label of a finding's severity.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SeverityNormalized</i> The normalized severity of a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SeverityProduct</i> The native severity as defined by the security-findings provider's solution that generated the finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdatedAt</i> An ISO8601-formatted timestamp that indicates when the security-findings provider last updated the finding record. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedAt</i> An ISO8601-formatted timestamp that indicates when the security-findings provider captured the potential security issue that a finding captured.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastObservedAt</i> An ISO8601-formatted timestamp that indicates when the security-findings provider most recently observed the potential security issue that a finding captured.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FirstObservedAt</i> An ISO8601-formatted timestamp that indicates when the security-findings provider first observed the potential security issue that a finding captured.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> A finding type in the format of <code>namespace/category/classifier</code> that classifies a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GeneratorId</i> The identifier for the solution-specific component (a discrete unit of logic) that generated a finding. In various security-findings providers' solutions, this generator can be called a rule, a check, a detector, a plugin, etc.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The security findings provider-specific identifier for a finding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AwsAccountId</i> The AWS account ID that a finding is generated in.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProductArn</i> The ARN generated by Security Hub that uniquely identifies a third-party company (security findings provider) after this provider's product (solution that generates findings) is registered with Security Hub.<br/>
        :return:         """
        pass

    def update_organization_configuration(self, AutoEnable: Boolean) -> UpdateOrganizationConfigurationResponse:
        r"""Used to update the configuration related to Organizations. Can only be called from a Security Hub administrator account.

        :param self:
        :param AutoEnable:  Whether to automatically enable Security Hub for new accounts in the organization. By default, this is <code>false</code>, and new accounts are not added automatically. To automatically enable Security Hub for new accounts, set this to <code>true</code>.<br/>
        :return:         """
        pass

    def update_security_hub_configuration(self, AutoEnableControls: Boolean=None) -> UpdateSecurityHubConfigurationResponse:
        r"""Updates configuration options for Security Hub.

        :param self:
        :param AutoEnableControls:  Whether to automatically enable new controls when they are added to standards that are enabled. By default, this is set to <code>true</code>, and new controls are enabled automatically. To not automatically enable new controls, set this to <code>false</code>. <br/>
        :return:         """
        pass

    def update_standards_control(self, StandardsControlArn: str, ControlStatus: str=None, DisabledReason: str=None) -> UpdateStandardsControlResponse:
        r"""Used to control whether an individual security standard control is enabled or disabled.

        :param self:
        :param DisabledReason:  A description of the reason why you are disabling a security standard control. If you are disabling a control, then this is required.<br/>ControlStatus:  The updated status of the security standard control.<br/>StandardsControlArn:  The ARN of the security standard control to enable or disable.<br/>
        :return:         """
        pass





class ServerlessApplicationRepository(BaseClient):
    r"""The AWS Serverless Application Repository makes it easy for developers and enterprises to quickly find
 and deploy serverless applications in the AWS Cloud. For more information about serverless applications,
 see Serverless Computing and Applications on the AWS website.The AWS Serverless Application Repository is deeply integrated with the AWS Lambda console, so that developers of 
 all levels can get started with serverless computing without needing to learn anything new. You can use category 
 keywords to browse for applications such as web and mobile backends, data processing applications, or chatbots. 
 You can also search for applications by name, publisher, or event source. To use an application, you simply choose it, 
 configure any required fields, and deploy it with a few clicks. You can also easily publish applications, sharing them publicly with the community at large, or privately
 within your team or across your organization. To publish a serverless application (or app), you can use the
 AWS Management Console, AWS Command Line Interface (AWS CLI), or AWS SDKs to upload the code. Along with the
 code, you upload a simple manifest file, also known as the AWS Serverless Application Model (AWS SAM) template.
 For more information about AWS SAM, see AWS Serverless Application Model (AWS SAM) on the AWS Labs
 GitHub repository.The AWS Serverless Application Repository Developer Guide contains more information about the two developer
 experiences available:<ul>
 <li>
 Consuming Applications – Browse for applications and view information about them, including
 source code and readme files. Also install, configure, and deploy applications of your choosing. 
 Publishing Applications – Configure and upload applications to make them available to other
 developers, and publish new versions of applications. 
 </li>
 </ul>"""


    class ListApplicationDependenciesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_application_dependencies` for valid parameters"""
            pass
    class ListApplicationVersionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_application_versions` for valid parameters"""
            pass
    class ListApplicationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_applications` for valid parameters"""
            pass


    class CreateApplicationRequest(Mapping):
        pass
    
    class CreateApplicationResponse(Mapping):
        pass
    
    class __string(object):
        pass
    
    class CreateApplicationVersionRequest(Mapping):
        pass
    
    class CreateApplicationVersionResponse(Mapping):
        pass
    
    class CreateCloudFormationChangeSetRequest(Mapping):
        pass
    
    class CreateCloudFormationChangeSetResponse(Mapping):
        pass
    
    class ParameterValue(Mapping):
        pass
    
    class RollbackConfiguration(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class CreateCloudFormationTemplateRequest(Mapping):
        pass
    
    class CreateCloudFormationTemplateResponse(Mapping):
        pass
    
    class DeleteApplicationRequest(Mapping):
        pass
    
    class GetApplicationRequest(Mapping):
        pass
    
    class GetApplicationResponse(Mapping):
        pass
    
    class GetApplicationPolicyRequest(Mapping):
        pass
    
    class GetApplicationPolicyResponse(Mapping):
        pass
    
    class GetCloudFormationTemplateRequest(Mapping):
        pass
    
    class GetCloudFormationTemplateResponse(Mapping):
        pass
    
    class ListApplicationDependenciesRequest(Mapping):
        pass
    
    class ListApplicationDependenciesResponse(Mapping):
        pass
    
    class ListApplicationVersionsRequest(Mapping):
        pass
    
    class ListApplicationVersionsResponse(Mapping):
        pass
    
    class ListApplicationsRequest(Mapping):
        pass
    
    class ListApplicationsResponse(Mapping):
        pass
    
    class PutApplicationPolicyRequest(Mapping):
        pass
    
    class PutApplicationPolicyResponse(Mapping):
        pass
    
    class ApplicationPolicyStatement(Mapping):
        pass
    
    class UnshareApplicationRequest(Mapping):
        pass
    
    class UpdateApplicationRequest(Mapping):
        pass
    
    class UpdateApplicationResponse(Mapping):
        pass
    
    def create_application(self, Name: str, Description: str, Author: str, HomePageUrl: str=None, Labels: List[__string]=None, LicenseBody: str=None, LicenseUrl: str=None, ReadmeBody: str=None, ReadmeUrl: str=None, SemanticVersion: str=None, SourceCodeArchiveUrl: str=None, SourceCodeUrl: str=None, SpdxLicenseId: str=None, TemplateBody: str=None, TemplateUrl: str=None) -> CreateApplicationResponse:
        r"""Creates an application, optionally including an AWS SAM file to create the first application version in the same call.

        :param self:
        :param TemplateUrl:  A link to the S3 object containing the packaged AWS SAM template of your application.You can specify only one of templateBody and templateUrl; otherwise an error results.<br/>TemplateBody:  The local raw packaged AWS SAM template file of your application.
 The file has the format file://&lt;path>/&lt;filename>.You can specify only one of templateBody and templateUrl; otherwise an error results.<br/>SpdxLicenseId:  A valid identifier from <a href="https://spdx.org/licenses/">https://spdx.org/licenses/</a>.<br/>SourceCodeUrl:  A link to a public repository for the source code of your application, for example the URL of a specific GitHub commit.<br/>SourceCodeArchiveUrl:  A link to the S3 object that contains the ZIP archive of the source code for this version of your application.Maximum size 50 MB<br/>SemanticVersion:  The semantic version of the application:
 <a href="https://semver.org/">https://semver.org/</a>
 <br/>ReadmeUrl:  A link to the S3 object in Markdown language that contains a more detailed description of the application and how it works.Maximum size 5 MBYou can specify only one of readmeBody and readmeUrl; otherwise, an error results.<br/>ReadmeBody:  A local text readme file in Markdown language that contains a more detailed description of the application and how it works.
 The file has the format file://&lt;path>/&lt;filename>.Maximum size 5 MBYou can specify only one of readmeBody and readmeUrl; otherwise, an error results.<br/>Name:  The name of the application that you want to publish.Minimum length=1. Maximum length=140Pattern: "[a-zA-Z0-9\\-]+";<br/>LicenseUrl:  A link to the S3 object that contains the license of the app that matches the spdxLicenseID value of your application.Maximum size 5 MBYou can specify only one of licenseBody and licenseUrl; otherwise, an error results.<br/>LicenseBody:  A local text file that contains the license of the app that matches the spdxLicenseID value of your application.
 The file has the format file://&lt;path>/&lt;filename>.Maximum size 5 MBYou can specify only one of licenseBody and licenseUrl; otherwise, an error results.<br/>Labels:  Labels to improve discovery of apps in search results.Minimum length=1. Maximum length=127. Maximum number of labels: 10Pattern: "^[a-zA-Z0-9+\\-_:\\/@]+$";<br/>HomePageUrl:  A URL with more information about the application, for example the location of your GitHub repository for the application.<br/>Description:  The description of the application.Minimum length=1. Maximum length=256<br/>Author:  The name of the author publishing the app.Minimum length=1. Maximum length=127.Pattern "^[a-z0-9](([a-z0-9]|-(?!-))*[a-z0-9])?$";<br/>
        :return: Version:  Version information about the application.:<br/>VerifiedAuthorUrl:  The URL to the public profile of a verified author. This URL is submitted by the author.<br/>SpdxLicenseId:  A valid identifier from https://spdx.org/licenses/.<br/>ReadmeUrl:  A link to the readme file in Markdown language that contains a more detailed description of the application and how it works.Maximum size 5 MB<br/>Name:  The name of the application.Minimum length=1. Maximum length=140Pattern: "[a-zA-Z0-9\\-]+";<br/>LicenseUrl:  A link to a license file of the app that matches the spdxLicenseID value of your application.Maximum size 5 MB<br/>Labels:  Labels to improve discovery of apps in search results.Minimum length=1. Maximum length=127. Maximum number of labels: 10Pattern: "^[a-zA-Z0-9+\\-_:\\/@]+$";<br/>IsVerifiedAuthor:  Whether the author of this application has been verified. This means means that AWS has made a good faith review, as a reasonable and prudent service provider, of the information provided by the requester and has confirmed that the requester's identity is as claimed.<br/>HomePageUrl:  A URL with more information about the application, for example the location of your GitHub repository for the application.<br/>Description:  The description of the application.Minimum length=1. Maximum length=256<br/>CreationTime:  The date and time this resource was created.<br/>Author:  The name of the author publishing the app.Minimum length=1. Maximum length=127.Pattern "^[a-z0-9](([a-z0-9]|-(?!-))*[a-z0-9])?$";<br/>ApplicationId:  The application Amazon Resource Name (ARN).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TemplateUrl</i> A link to the packaged AWS SAM template of your application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceCodeUrl</i> A link to a public repository for the source code of your application, for example the URL of a specific GitHub commit.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceCodeArchiveUrl</i> A link to the S3 object that contains the ZIP archive of the source code for this version of your application.Maximum size 50 MB<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SemanticVersion</i> The semantic version of the application:
 <a href="https://semver.org/">https://semver.org/</a>
 <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourcesSupported</i> Whether all of the AWS resources contained in this application are supported in the region
 in which it is being retrieved.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequiredCapabilities</i> A list of values that you must specify before you can deploy certain applications.
 Some applications might include resources that can affect permissions in your AWS
 account, for example, by creating new AWS Identity and Access Management (IAM) users.
 For those applications, you must explicitly acknowledge their capabilities by
 specifying this parameter.The only valid values are CAPABILITY_IAM, CAPABILITY_NAMED_IAM,
 CAPABILITY_RESOURCE_POLICY, and CAPABILITY_AUTO_EXPAND.The following resources require you to specify CAPABILITY_IAM or
 CAPABILITY_NAMED_IAM:
 <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html">AWS::IAM::Group</a>,
 <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html">AWS::IAM::InstanceProfile</a>,
 <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html">AWS::IAM::Policy</a>, and
 <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html">AWS::IAM::Role</a>.
 If the application contains IAM resources, you can specify either CAPABILITY_IAM
 or CAPABILITY_NAMED_IAM. If the application contains IAM resources
 with custom names, you must specify CAPABILITY_NAMED_IAM.The following resources require you to specify CAPABILITY_RESOURCE_POLICY:
 <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-permission.html">AWS::Lambda::Permission</a>,
 <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html">AWS::IAM:Policy</a>,
 <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalingpolicy.html">AWS::ApplicationAutoScaling::ScalingPolicy</a>,
 <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-policy.html">AWS::S3::BucketPolicy</a>,
 <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-policy.html">AWS::SQS::QueuePolicy</a>, and
 <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-policy.html">AWS::SNS::TopicPolicy</a>.Applications that contain one or more nested applications require you to specify
 CAPABILITY_AUTO_EXPAND.If your application template contains any of the above resources, we recommend that you review
 all permissions associated with the application before deploying. If you don't specify
 this parameter for an application that requires capabilities, the call will fail.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ParameterDefinitions</i> An array of parameter types supported by the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The date and time this resource was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationId</i> The application Amazon Resource Name (ARN).<br/>        """
        pass

    def create_application_version(self, SemanticVersion: str, ApplicationId: str, SourceCodeArchiveUrl: str=None, SourceCodeUrl: str=None, TemplateBody: str=None, TemplateUrl: str=None) -> CreateApplicationVersionResponse:
        r"""Creates an application version.

        :param self:
        :param TemplateUrl:  A link to the packaged AWS SAM template of your application.<br/>TemplateBody:  The raw packaged AWS SAM template of your application.<br/>SourceCodeUrl:  A link to a public repository for the source code of your application, for example the URL of a specific GitHub commit.<br/>SourceCodeArchiveUrl:  A link to the S3 object that contains the ZIP archive of the source code for this version of your application.Maximum size 50 MB<br/>SemanticVersion:  The semantic version of the new version.<br/>ApplicationId:  The Amazon Resource Name (ARN) of the application.<br/>
        :return: TemplateUrl:  A link to the packaged AWS SAM template of your application.<br/>SourceCodeUrl:  A link to a public repository for the source code of your application, for example the URL of a specific GitHub commit.<br/>SourceCodeArchiveUrl:  A link to the S3 object that contains the ZIP archive of the source code for this version of your application.Maximum size 50 MB<br/>SemanticVersion:  The semantic version of the application:
 <a href="https://semver.org/">https://semver.org/</a>
 <br/>ResourcesSupported:  Whether all of the AWS resources contained in this application are supported in the region
 in which it is being retrieved.<br/>RequiredCapabilities:  A list of values that you must specify before you can deploy certain applications.
 Some applications might include resources that can affect permissions in your AWS
 account, for example, by creating new AWS Identity and Access Management (IAM) users.
 For those applications, you must explicitly acknowledge their capabilities by
 specifying this parameter.The only valid values are CAPABILITY_IAM, CAPABILITY_NAMED_IAM,
 CAPABILITY_RESOURCE_POLICY, and CAPABILITY_AUTO_EXPAND.The following resources require you to specify CAPABILITY_IAM or
 CAPABILITY_NAMED_IAM:
 <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html">AWS::IAM::Group</a>,
 <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html">AWS::IAM::InstanceProfile</a>,
 <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html">AWS::IAM::Policy</a>, and
 <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html">AWS::IAM::Role</a>.
 If the application contains IAM resources, you can specify either CAPABILITY_IAM
 or CAPABILITY_NAMED_IAM. If the application contains IAM resources
 with custom names, you must specify CAPABILITY_NAMED_IAM.The following resources require you to specify CAPABILITY_RESOURCE_POLICY:
 <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-permission.html">AWS::Lambda::Permission</a>,
 <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html">AWS::IAM:Policy</a>,
 <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalingpolicy.html">AWS::ApplicationAutoScaling::ScalingPolicy</a>,
 <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-policy.html">AWS::S3::BucketPolicy</a>,
 <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-policy.html">AWS::SQS::QueuePolicy</a>, and
 <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-policy.html">AWS::SNS::TopicPolicy</a>.Applications that contain one or more nested applications require you to specify
 CAPABILITY_AUTO_EXPAND.If your application template contains any of the above resources, we recommend that you review
 all permissions associated with the application before deploying. If you don't specify
 this parameter for an application that requires capabilities, the call will fail.<br/>ParameterDefinitions:  An array of parameter types supported by the application.<br/>CreationTime:  The date and time this resource was created.<br/>ApplicationId:  The application Amazon Resource Name (ARN).<br/>        """
        pass

    def create_cloud_formation_change_set(self, StackName: str, ApplicationId: str, Capabilities: List[__string]=None, ChangeSetName: str=None, ClientToken: str=None, Description: str=None, NotificationArns: List[__string]=None, ParameterOverrides: List[ParameterValue]=None, ResourceTypes: List[__string]=None, RollbackConfiguration: RollbackConfiguration=None, SemanticVersion: str=None, Tags: List[Tag]=None, TemplateId: str=None) -> CreateCloudFormationChangeSetResponse:
        r"""Creates an AWS CloudFormation change set for the given application.

        :param self:
        :param TemplateId:  The UUID returned by CreateCloudFormationTemplate.Pattern: [0-9a-fA-F]{8}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{12}<br/>Tags:  This property corresponds to the parameter of the same name for the <i>AWS CloudFormation <a href="https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateChangeSet">CreateChangeSet</a>
 </i> API.<br/>StackName:  This property corresponds to the parameter of the same name for the <i>AWS CloudFormation <a href="https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateChangeSet">CreateChangeSet</a>
 </i> API.<br/>SemanticVersion:  The semantic version of the application:
 <a href="https://semver.org/">https://semver.org/</a>
 <br/>RollbackConfiguration:  This property corresponds to the parameter of the same name for the <i>AWS CloudFormation <a href="https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateChangeSet">CreateChangeSet</a>
 </i> API.:<br/>ResourceTypes:  This property corresponds to the parameter of the same name for the <i>AWS CloudFormation <a href="https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateChangeSet">CreateChangeSet</a>
 </i> API.<br/>ParameterOverrides:  A list of parameter values for the parameters of the application.<br/>NotificationArns:  This property corresponds to the parameter of the same name for the <i>AWS CloudFormation <a href="https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateChangeSet">CreateChangeSet</a>
 </i> API.<br/>Description:  This property corresponds to the parameter of the same name for the <i>AWS CloudFormation <a href="https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateChangeSet">CreateChangeSet</a>
 </i> API.<br/>ClientToken:  This property corresponds to the parameter of the same name for the <i>AWS CloudFormation <a href="https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateChangeSet">CreateChangeSet</a>
 </i> API.<br/>ChangeSetName:  This property corresponds to the parameter of the same name for the <i>AWS CloudFormation <a href="https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateChangeSet">CreateChangeSet</a>
 </i> API.<br/>Capabilities:  A list of values that you must specify before you can deploy certain applications.
 Some applications might include resources that can affect permissions in your AWS
 account, for example, by creating new AWS Identity and Access Management (IAM) users.
 For those applications, you must explicitly acknowledge their capabilities by
 specifying this parameter.The only valid values are CAPABILITY_IAM, CAPABILITY_NAMED_IAM,
 CAPABILITY_RESOURCE_POLICY, and CAPABILITY_AUTO_EXPAND.The following resources require you to specify CAPABILITY_IAM or
 CAPABILITY_NAMED_IAM:
 <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html">AWS::IAM::Group</a>,
 <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html">AWS::IAM::InstanceProfile</a>,
 <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html">AWS::IAM::Policy</a>, and
 <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html">AWS::IAM::Role</a>.
 If the application contains IAM resources, you can specify either CAPABILITY_IAM
 or CAPABILITY_NAMED_IAM. If the application contains IAM resources
 with custom names, you must specify CAPABILITY_NAMED_IAM.The following resources require you to specify CAPABILITY_RESOURCE_POLICY:
 <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-permission.html">AWS::Lambda::Permission</a>,
 <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html">AWS::IAM:Policy</a>,
 <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalingpolicy.html">AWS::ApplicationAutoScaling::ScalingPolicy</a>,
 <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-policy.html">AWS::S3::BucketPolicy</a>,
 <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-policy.html">AWS::SQS::QueuePolicy</a>, and
 <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-policy.html">AWS::SNS:TopicPolicy</a>.Applications that contain one or more nested applications require you to specify
 CAPABILITY_AUTO_EXPAND.If your application template contains any of the above resources, we recommend that you review
 all permissions associated with the application before deploying. If you don't specify
 this parameter for an application that requires capabilities, the call will fail.<br/>ApplicationId:  The Amazon Resource Name (ARN) of the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RollbackTriggers</i> This property corresponds to the content of the same name for the <i>AWS CloudFormation <a href="https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/RollbackConfiguration">RollbackConfiguration</a>
 </i> Data Type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MonitoringTimeInMinutes</i> This property corresponds to the content of the same name for the <i>AWS CloudFormation <a href="https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/RollbackConfiguration">RollbackConfiguration</a>
 </i> Data Type.<br/>
        :return: StackId:  The unique ID of the stack.<br/>SemanticVersion:  The semantic version of the application:
 <a href="https://semver.org/">https://semver.org/</a>
 <br/>ChangeSetId:  The Amazon Resource Name (ARN) of the change set.Length constraints: Minimum length of 1.Pattern: ARN:[-a-zA-Z0-9:/]*<br/>ApplicationId:  The application Amazon Resource Name (ARN).<br/>        """
        pass

    def create_cloud_formation_template(self, ApplicationId: str, SemanticVersion: str=None) -> CreateCloudFormationTemplateResponse:
        r"""Creates an AWS CloudFormation template.

        :param self:
        :param SemanticVersion:  The semantic version of the application:
 <a href="https://semver.org/">https://semver.org/</a>
 <br/>ApplicationId:  The Amazon Resource Name (ARN) of the application.<br/>
        :return: TemplateUrl:  A link to the template that can be used to deploy the application using
 AWS CloudFormation.<br/>TemplateId:  The UUID returned by CreateCloudFormationTemplate.Pattern: [0-9a-fA-F]{8}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{12}<br/>Status:  Status of the template creation workflow.Possible values: PREPARING | ACTIVE | EXPIRED
 <br/>SemanticVersion:  The semantic version of the application:
 <a href="https://semver.org/">https://semver.org/</a>
 <br/>ExpirationTime:  The date and time this template expires. Templates
 expire 1 hour after creation.<br/>CreationTime:  The date and time this resource was created.<br/>ApplicationId:  The application Amazon Resource Name (ARN).<br/>        """
        pass

    def delete_application(self, ApplicationId: str):
        r"""Deletes the specified application.

        :param self:
        :param ApplicationId:  The Amazon Resource Name (ARN) of the application.<br/>
        :return:         """
        pass

    def get_application(self, ApplicationId: str, SemanticVersion: str=None) -> GetApplicationResponse:
        r"""Gets the specified application.

        :param self:
        :param SemanticVersion:  The semantic version of the application to get.<br/>ApplicationId:  The Amazon Resource Name (ARN) of the application.<br/>
        :return: Version:  Version information about the application.:<br/>VerifiedAuthorUrl:  The URL to the public profile of a verified author. This URL is submitted by the author.<br/>SpdxLicenseId:  A valid identifier from https://spdx.org/licenses/.<br/>ReadmeUrl:  A link to the readme file in Markdown language that contains a more detailed description of the application and how it works.Maximum size 5 MB<br/>Name:  The name of the application.Minimum length=1. Maximum length=140Pattern: "[a-zA-Z0-9\\-]+";<br/>LicenseUrl:  A link to a license file of the app that matches the spdxLicenseID value of your application.Maximum size 5 MB<br/>Labels:  Labels to improve discovery of apps in search results.Minimum length=1. Maximum length=127. Maximum number of labels: 10Pattern: "^[a-zA-Z0-9+\\-_:\\/@]+$";<br/>IsVerifiedAuthor:  Whether the author of this application has been verified. This means means that AWS has made a good faith review, as a reasonable and prudent service provider, of the information provided by the requester and has confirmed that the requester's identity is as claimed.<br/>HomePageUrl:  A URL with more information about the application, for example the location of your GitHub repository for the application.<br/>Description:  The description of the application.Minimum length=1. Maximum length=256<br/>CreationTime:  The date and time this resource was created.<br/>Author:  The name of the author publishing the app.Minimum length=1. Maximum length=127.Pattern "^[a-z0-9](([a-z0-9]|-(?!-))*[a-z0-9])?$";<br/>ApplicationId:  The application Amazon Resource Name (ARN).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TemplateUrl</i> A link to the packaged AWS SAM template of your application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceCodeUrl</i> A link to a public repository for the source code of your application, for example the URL of a specific GitHub commit.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceCodeArchiveUrl</i> A link to the S3 object that contains the ZIP archive of the source code for this version of your application.Maximum size 50 MB<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SemanticVersion</i> The semantic version of the application:
 <a href="https://semver.org/">https://semver.org/</a>
 <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourcesSupported</i> Whether all of the AWS resources contained in this application are supported in the region
 in which it is being retrieved.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequiredCapabilities</i> A list of values that you must specify before you can deploy certain applications.
 Some applications might include resources that can affect permissions in your AWS
 account, for example, by creating new AWS Identity and Access Management (IAM) users.
 For those applications, you must explicitly acknowledge their capabilities by
 specifying this parameter.The only valid values are CAPABILITY_IAM, CAPABILITY_NAMED_IAM,
 CAPABILITY_RESOURCE_POLICY, and CAPABILITY_AUTO_EXPAND.The following resources require you to specify CAPABILITY_IAM or
 CAPABILITY_NAMED_IAM:
 <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html">AWS::IAM::Group</a>,
 <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html">AWS::IAM::InstanceProfile</a>,
 <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html">AWS::IAM::Policy</a>, and
 <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html">AWS::IAM::Role</a>.
 If the application contains IAM resources, you can specify either CAPABILITY_IAM
 or CAPABILITY_NAMED_IAM. If the application contains IAM resources
 with custom names, you must specify CAPABILITY_NAMED_IAM.The following resources require you to specify CAPABILITY_RESOURCE_POLICY:
 <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-permission.html">AWS::Lambda::Permission</a>,
 <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html">AWS::IAM:Policy</a>,
 <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalingpolicy.html">AWS::ApplicationAutoScaling::ScalingPolicy</a>,
 <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-policy.html">AWS::S3::BucketPolicy</a>,
 <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-policy.html">AWS::SQS::QueuePolicy</a>, and
 <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-policy.html">AWS::SNS::TopicPolicy</a>.Applications that contain one or more nested applications require you to specify
 CAPABILITY_AUTO_EXPAND.If your application template contains any of the above resources, we recommend that you review
 all permissions associated with the application before deploying. If you don't specify
 this parameter for an application that requires capabilities, the call will fail.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ParameterDefinitions</i> An array of parameter types supported by the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The date and time this resource was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationId</i> The application Amazon Resource Name (ARN).<br/>        """
        pass

    def get_application_policy(self, ApplicationId: str) -> GetApplicationPolicyResponse:
        r"""Retrieves the policy for the application.

        :param self:
        :param ApplicationId:  The Amazon Resource Name (ARN) of the application.<br/>
        :return: Statements:  An array of policy statements applied to the application.<br/>        """
        pass

    def get_cloud_formation_template(self, TemplateId: str, ApplicationId: str) -> GetCloudFormationTemplateResponse:
        r"""Gets the specified AWS CloudFormation template.

        :param self:
        :param TemplateId:  The UUID returned by CreateCloudFormationTemplate.Pattern: [0-9a-fA-F]{8}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{12}<br/>ApplicationId:  The Amazon Resource Name (ARN) of the application.<br/>
        :return: TemplateUrl:  A link to the template that can be used to deploy the application using
 AWS CloudFormation.<br/>TemplateId:  The UUID returned by CreateCloudFormationTemplate.Pattern: [0-9a-fA-F]{8}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{12}<br/>Status:  Status of the template creation workflow.Possible values: PREPARING | ACTIVE | EXPIRED
 <br/>SemanticVersion:  The semantic version of the application:
 <a href="https://semver.org/">https://semver.org/</a>
 <br/>ExpirationTime:  The date and time this template expires. Templates
 expire 1 hour after creation.<br/>CreationTime:  The date and time this resource was created.<br/>ApplicationId:  The application Amazon Resource Name (ARN).<br/>        """
        pass

    def list_application_dependencies(self, ApplicationId: str, MaxItems: int=None, NextToken: str=None, SemanticVersion: str=None) -> ListApplicationDependenciesResponse:
        r"""Retrieves the list of applications nested in the containing application.

        :param self:
        :param SemanticVersion:  The semantic version of the application to get.<br/>NextToken:  A token to specify where to start paginating.<br/>MaxItems:  The total number of items to return.<br/>ApplicationId:  The Amazon Resource Name (ARN) of the application.<br/>
        :return: NextToken:  The token to request the next page of results.<br/>Dependencies:  An array of application summaries nested in the application.<br/>        """
        pass

    def list_application_versions(self, ApplicationId: str, MaxItems: int=None, NextToken: str=None) -> ListApplicationVersionsResponse:
        r"""Lists versions for the specified application.

        :param self:
        :param NextToken:  A token to specify where to start paginating.<br/>MaxItems:  The total number of items to return.<br/>ApplicationId:  The Amazon Resource Name (ARN) of the application.<br/>
        :return: Versions:  An array of version summaries for the application.<br/>NextToken:  The token to request the next page of results.<br/>        """
        pass

    def list_applications(self, MaxItems: int=None, NextToken: str=None) -> ListApplicationsResponse:
        r"""Lists applications owned by the requester.

        :param self:
        :param NextToken:  A token to specify where to start paginating.<br/>MaxItems:  The total number of items to return.<br/>
        :return: NextToken:  The token to request the next page of results.<br/>Applications:  An array of application summaries.<br/>        """
        pass

    def put_application_policy(self, Statements: List[ApplicationPolicyStatement], ApplicationId: str) -> PutApplicationPolicyResponse:
        r"""Sets the permission policy for an application. For the list of actions supported for this operation, see
 <a href="https://docs.aws.amazon.com/serverlessrepo/latest/devguide/access-control-resource-based.html#application-permissions">Application 
 Permissions</a>
 .

        :param self:
        :param Statements:  An array of policy statements applied to the application.<br/>ApplicationId:  The Amazon Resource Name (ARN) of the application.<br/>
        :return: Statements:  An array of policy statements applied to the application.<br/>        """
        pass

    def unshare_application(self, OrganizationId: str, ApplicationId: str):
        r"""Unshares an application from an AWS Organization.This operation can be called only from the organization's master account.

        :param self:
        :param OrganizationId:  The AWS Organization ID to unshare the application from.<br/>ApplicationId:  The Amazon Resource Name (ARN) of the application.<br/>
        :return:         """
        pass

    def update_application(self, ApplicationId: str, Author: str=None, Description: str=None, HomePageUrl: str=None, Labels: List[__string]=None, ReadmeBody: str=None, ReadmeUrl: str=None) -> UpdateApplicationResponse:
        r"""Updates the specified application.

        :param self:
        :param ReadmeUrl:  A link to the readme file in Markdown language that contains a more detailed description of the application and how it works.Maximum size 5 MB<br/>ReadmeBody:  A text readme file in Markdown language that contains a more detailed description of the application and how it works.Maximum size 5 MB<br/>Labels:  Labels to improve discovery of apps in search results.Minimum length=1. Maximum length=127. Maximum number of labels: 10Pattern: "^[a-zA-Z0-9+\\-_:\\/@]+$";<br/>HomePageUrl:  A URL with more information about the application, for example the location of your GitHub repository for the application.<br/>Description:  The description of the application.Minimum length=1. Maximum length=256<br/>Author:  The name of the author publishing the app.Minimum length=1. Maximum length=127.Pattern "^[a-z0-9](([a-z0-9]|-(?!-))*[a-z0-9])?$";<br/>ApplicationId:  The Amazon Resource Name (ARN) of the application.<br/>
        :return: Version:  Version information about the application.:<br/>VerifiedAuthorUrl:  The URL to the public profile of a verified author. This URL is submitted by the author.<br/>SpdxLicenseId:  A valid identifier from https://spdx.org/licenses/.<br/>ReadmeUrl:  A link to the readme file in Markdown language that contains a more detailed description of the application and how it works.Maximum size 5 MB<br/>Name:  The name of the application.Minimum length=1. Maximum length=140Pattern: "[a-zA-Z0-9\\-]+";<br/>LicenseUrl:  A link to a license file of the app that matches the spdxLicenseID value of your application.Maximum size 5 MB<br/>Labels:  Labels to improve discovery of apps in search results.Minimum length=1. Maximum length=127. Maximum number of labels: 10Pattern: "^[a-zA-Z0-9+\\-_:\\/@]+$";<br/>IsVerifiedAuthor:  Whether the author of this application has been verified. This means means that AWS has made a good faith review, as a reasonable and prudent service provider, of the information provided by the requester and has confirmed that the requester's identity is as claimed.<br/>HomePageUrl:  A URL with more information about the application, for example the location of your GitHub repository for the application.<br/>Description:  The description of the application.Minimum length=1. Maximum length=256<br/>CreationTime:  The date and time this resource was created.<br/>Author:  The name of the author publishing the app.Minimum length=1. Maximum length=127.Pattern "^[a-z0-9](([a-z0-9]|-(?!-))*[a-z0-9])?$";<br/>ApplicationId:  The application Amazon Resource Name (ARN).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TemplateUrl</i> A link to the packaged AWS SAM template of your application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceCodeUrl</i> A link to a public repository for the source code of your application, for example the URL of a specific GitHub commit.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceCodeArchiveUrl</i> A link to the S3 object that contains the ZIP archive of the source code for this version of your application.Maximum size 50 MB<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SemanticVersion</i> The semantic version of the application:
 <a href="https://semver.org/">https://semver.org/</a>
 <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourcesSupported</i> Whether all of the AWS resources contained in this application are supported in the region
 in which it is being retrieved.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequiredCapabilities</i> A list of values that you must specify before you can deploy certain applications.
 Some applications might include resources that can affect permissions in your AWS
 account, for example, by creating new AWS Identity and Access Management (IAM) users.
 For those applications, you must explicitly acknowledge their capabilities by
 specifying this parameter.The only valid values are CAPABILITY_IAM, CAPABILITY_NAMED_IAM,
 CAPABILITY_RESOURCE_POLICY, and CAPABILITY_AUTO_EXPAND.The following resources require you to specify CAPABILITY_IAM or
 CAPABILITY_NAMED_IAM:
 <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html">AWS::IAM::Group</a>,
 <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html">AWS::IAM::InstanceProfile</a>,
 <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html">AWS::IAM::Policy</a>, and
 <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html">AWS::IAM::Role</a>.
 If the application contains IAM resources, you can specify either CAPABILITY_IAM
 or CAPABILITY_NAMED_IAM. If the application contains IAM resources
 with custom names, you must specify CAPABILITY_NAMED_IAM.The following resources require you to specify CAPABILITY_RESOURCE_POLICY:
 <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-permission.html">AWS::Lambda::Permission</a>,
 <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html">AWS::IAM:Policy</a>,
 <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalingpolicy.html">AWS::ApplicationAutoScaling::ScalingPolicy</a>,
 <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-policy.html">AWS::S3::BucketPolicy</a>,
 <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-policy.html">AWS::SQS::QueuePolicy</a>, and
 <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-policy.html">AWS::SNS::TopicPolicy</a>.Applications that contain one or more nested applications require you to specify
 CAPABILITY_AUTO_EXPAND.If your application template contains any of the above resources, we recommend that you review
 all permissions associated with the application before deploying. If you don't specify
 this parameter for an application that requires capabilities, the call will fail.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ParameterDefinitions</i> An array of parameter types supported by the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The date and time this resource was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationId</i> The application Amazon Resource Name (ARN).<br/>        """
        pass





class ServiceQuotas(BaseClient):
    r"""With Service Quotas, you can view and manage your quotas easily as your AWS workloads grow. Quotas, also referred to as limits, are the maximum number of resources that you can create in your AWS account. For more information, see the <a href="https://docs.aws.amazon.com/servicequotas/latest/userguide/">Service Quotas User Guide</a>."""


    class ListAWSDefaultServiceQuotasPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_aws_default_service_quotas` for valid parameters"""
            pass
    class ListRequestedServiceQuotaChangeHistoryPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_requested_service_quota_change_history` for valid parameters"""
            pass
    class ListRequestedServiceQuotaChangeHistoryByQuotaPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_requested_service_quota_change_history_by_quota` for valid parameters"""
            pass
    class ListServiceQuotaIncreaseRequestsInTemplatePaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_service_quota_increase_requests_in_template` for valid parameters"""
            pass
    class ListServiceQuotasPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_service_quotas` for valid parameters"""
            pass
    class ListServicesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_services` for valid parameters"""
            pass


    class AssociateServiceQuotaTemplateRequest(Mapping):
        pass
    
    class AssociateServiceQuotaTemplateResponse(Mapping):
        pass
    
    class DeleteServiceQuotaIncreaseRequestFromTemplateRequest(Mapping):
        pass
    
    class DeleteServiceQuotaIncreaseRequestFromTemplateResponse(Mapping):
        pass
    
    class DisassociateServiceQuotaTemplateRequest(Mapping):
        pass
    
    class DisassociateServiceQuotaTemplateResponse(Mapping):
        pass
    
    class GetAWSDefaultServiceQuotaRequest(Mapping):
        pass
    
    class GetAWSDefaultServiceQuotaResponse(Mapping):
        pass
    
    class GetAssociationForServiceQuotaTemplateRequest(Mapping):
        pass
    
    class GetAssociationForServiceQuotaTemplateResponse(Mapping):
        pass
    
    class GetRequestedServiceQuotaChangeRequest(Mapping):
        pass
    
    class GetRequestedServiceQuotaChangeResponse(Mapping):
        pass
    
    class GetServiceQuotaRequest(Mapping):
        pass
    
    class GetServiceQuotaResponse(Mapping):
        pass
    
    class GetServiceQuotaIncreaseRequestFromTemplateRequest(Mapping):
        pass
    
    class GetServiceQuotaIncreaseRequestFromTemplateResponse(Mapping):
        pass
    
    class ListAWSDefaultServiceQuotasRequest(Mapping):
        pass
    
    class ListAWSDefaultServiceQuotasResponse(Mapping):
        pass
    
    class ListRequestedServiceQuotaChangeHistoryRequest(Mapping):
        pass
    
    class ListRequestedServiceQuotaChangeHistoryResponse(Mapping):
        pass
    
    class ListRequestedServiceQuotaChangeHistoryByQuotaRequest(Mapping):
        pass
    
    class ListRequestedServiceQuotaChangeHistoryByQuotaResponse(Mapping):
        pass
    
    class ListServiceQuotaIncreaseRequestsInTemplateRequest(Mapping):
        pass
    
    class ListServiceQuotaIncreaseRequestsInTemplateResponse(Mapping):
        pass
    
    class ListServiceQuotasRequest(Mapping):
        pass
    
    class ListServiceQuotasResponse(Mapping):
        pass
    
    class ListServicesRequest(Mapping):
        pass
    
    class ListServicesResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class PutServiceQuotaIncreaseRequestIntoTemplateRequest(Mapping):
        pass
    
    class PutServiceQuotaIncreaseRequestIntoTemplateResponse(Mapping):
        pass
    
    class QuotaValue(object):
        pass
    
    class RequestServiceQuotaIncreaseRequest(Mapping):
        pass
    
    class RequestServiceQuotaIncreaseResponse(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    def associate_service_quota_template(self) -> AssociateServiceQuotaTemplateResponse:
        r"""Associates your quota request template with your organization. When a new account is created in your organization, the quota increase requests in the template are automatically applied to the account. You can add a quota increase request for any adjustable quota to your template.

        :param self:
        :param 
        :return:         """
        pass

    def delete_service_quota_increase_request_from_template(self, AwsRegion: str, QuotaCode: str, ServiceCode: str) -> DeleteServiceQuotaIncreaseRequestFromTemplateResponse:
        r"""Deletes the quota increase request for the specified quota from your quota request template.

        :param self:
        :param AwsRegion:  The AWS Region.<br/>QuotaCode:  The quota identifier.<br/>ServiceCode:  The service identifier.<br/>
        :return:         """
        pass

    def disassociate_service_quota_template(self) -> DisassociateServiceQuotaTemplateResponse:
        r"""Disables your quota request template. After a template is disabled, the quota increase requests in the template are not applied to new accounts in your organization. Disabling a quota request template does not apply its quota increase requests.

        :param self:
        :param 
        :return:         """
        pass

    def get_aws_default_service_quota(self, QuotaCode: str, ServiceCode: str) -> GetAWSDefaultServiceQuotaResponse:
        r"""Retrieves the default value for the specified quota. The default value does not reflect any quota increases.

        :param self:
        :param QuotaCode:  The quota identifier.<br/>ServiceCode:  The service identifier.<br/>
        :return: Quota:  Information about the quota.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorReason</i> The error code and error reason.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ErrorReason</b>: The error code and error reason.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Period</i> The period of time.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Period</b>: The period of time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UsageMetric</i> Information about the measurement.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>UsageMetric</b>: Information about the measurement.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalQuota</i> Indicates whether the quota is global.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Adjustable</i> Indicates whether the quota value can be increased.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Unit</i> The unit of measurement.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Value</i> The quota value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>QuotaName</i> The quota name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>QuotaCode</i> The quota identifier.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>QuotaArn</i> The Amazon Resource Name (ARN) of the quota.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceName</i> The service name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceCode</i> The service identifier.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MetricStatisticRecommendation</i> The metric statistic that we recommend you use when determining quota usage.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MetricDimensions</i> The metric dimension. This is a name/value pair that is part of the identity of a metric.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MetricName</i> The name of the metric.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MetricNamespace</i> The namespace of the metric.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PeriodUnit</i> The time unit.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PeriodValue</i> The value.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorMessage</i> The error message.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorCode</i> Service Quotas returns the following error values: <ul> <li>  <code>DEPENDENCY_ACCESS_DENIED_ERROR</code> - The caller does not have the required permissions to complete the action. To resolve the error, you must have permission to access the service or quota. </li> <li>  <code>DEPENDENCY_THROTTLING_ERROR</code> - The service is throttling Service Quotas. </li> <li>  <code>DEPENDENCY_SERVICE_ERROR</code> - The service is not available. </li> <li>  <code>SERVICE_QUOTA_NOT_AVAILABLE_ERROR</code> - There was an error in Service Quotas. </li> </ul><br/>        """
        pass

    def get_association_for_service_quota_template(self) -> GetAssociationForServiceQuotaTemplateResponse:
        r"""Retrieves the status of the association for the quota request template.

        :param self:
        :param 
        :return: ServiceQuotaTemplateAssociationStatus:  The association status. If the status is <code>ASSOCIATED</code>, the quota increase requests in the template are automatically applied to new accounts in your organization.<br/>        """
        pass

    def get_requested_service_quota_change(self, RequestId: str) -> GetRequestedServiceQuotaChangeResponse:
        r"""Retrieves information about the specified quota increase request.

        :param self:
        :param RequestId:  The ID of the quota increase request.<br/>
        :return: RequestedQuota:  Information about the quota increase request.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Unit</i> The unit of measurement.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalQuota</i> Indicates whether the quota is global.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>QuotaArn</i> The Amazon Resource Name (ARN) of the quota.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Requester</i> The IAM identity of the requester.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdated</i> The date and time of the most recent change.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Created</i> The date and time when the quota increase request was received and the case ID was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The state of the quota increase request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DesiredValue</i> The new, increased value for the quota.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>QuotaName</i> The quota name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>QuotaCode</i> The quota identifier.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceName</i> The service name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceCode</i> The service identifier.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CaseId</i> The case ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The unique identifier.<br/>        """
        pass

    def get_service_quota(self, QuotaCode: str, ServiceCode: str) -> GetServiceQuotaResponse:
        r"""Retrieves the applied quota value for the specified quota. For some quotas, only the default values are available. If the applied quota value is not available for a quota, the quota is not retrieved.

        :param self:
        :param QuotaCode:  The quota identifier.<br/>ServiceCode:  The service identifier.<br/>
        :return: Quota:  Information about the quota.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorReason</i> The error code and error reason.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ErrorReason</b>: The error code and error reason.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Period</i> The period of time.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Period</b>: The period of time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UsageMetric</i> Information about the measurement.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>UsageMetric</b>: Information about the measurement.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalQuota</i> Indicates whether the quota is global.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Adjustable</i> Indicates whether the quota value can be increased.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Unit</i> The unit of measurement.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Value</i> The quota value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>QuotaName</i> The quota name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>QuotaCode</i> The quota identifier.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>QuotaArn</i> The Amazon Resource Name (ARN) of the quota.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceName</i> The service name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceCode</i> The service identifier.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MetricStatisticRecommendation</i> The metric statistic that we recommend you use when determining quota usage.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MetricDimensions</i> The metric dimension. This is a name/value pair that is part of the identity of a metric.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MetricName</i> The name of the metric.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MetricNamespace</i> The namespace of the metric.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PeriodUnit</i> The time unit.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PeriodValue</i> The value.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorMessage</i> The error message.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorCode</i> Service Quotas returns the following error values: <ul> <li>  <code>DEPENDENCY_ACCESS_DENIED_ERROR</code> - The caller does not have the required permissions to complete the action. To resolve the error, you must have permission to access the service or quota. </li> <li>  <code>DEPENDENCY_THROTTLING_ERROR</code> - The service is throttling Service Quotas. </li> <li>  <code>DEPENDENCY_SERVICE_ERROR</code> - The service is not available. </li> <li>  <code>SERVICE_QUOTA_NOT_AVAILABLE_ERROR</code> - There was an error in Service Quotas. </li> </ul><br/>        """
        pass

    def get_service_quota_increase_request_from_template(self, AwsRegion: str, QuotaCode: str, ServiceCode: str) -> GetServiceQuotaIncreaseRequestFromTemplateResponse:
        r"""Retrieves information about the specified quota increase request in your quota request template.

        :param self:
        :param AwsRegion:  The AWS Region.<br/>QuotaCode:  The quota identifier.<br/>ServiceCode:  The service identifier.<br/>
        :return: ServiceQuotaIncreaseRequestInTemplate:  Information about the quota increase request.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalQuota</i> Indicates whether the quota is global.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Unit</i> The unit of measurement.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AwsRegion</i> The AWS Region.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DesiredValue</i> The new, increased value of the quota.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>QuotaName</i> The quota name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>QuotaCode</i> The quota identifier.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceName</i> The service name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceCode</i> The service identifier.<br/>        """
        pass

    def list_aws_default_service_quotas(self, ServiceCode: str, NextToken: str=None, MaxResults: int=None) -> ListAWSDefaultServiceQuotasResponse:
        r"""Lists the default values for the quotas for the specified AWS service. A default value does not reflect any quota increases.

        :param self:
        :param MaxResults:  The maximum number of results to return with a single call. To retrieve the remaining results, if any, make another call with the token returned from this call.<br/>NextToken:  The token for the next page of results.<br/>ServiceCode:  The service identifier.<br/>
        :return: Quotas:  Information about the quotas.<br/>NextToken:  The token to use to retrieve the next page of results. This value is null when there are no more results to return.<br/>        """
        pass

    def list_requested_service_quota_change_history(self, ServiceCode: str=None, Status: str=None, NextToken: str=None, MaxResults: int=None) -> ListRequestedServiceQuotaChangeHistoryResponse:
        r"""Retrieves the quota increase requests for the specified service.

        :param self:
        :param MaxResults:  The maximum number of results to return with a single call. To retrieve the remaining results, if any, make another call with the token returned from this call.<br/>NextToken:  The token for the next page of results.<br/>Status:  The status of the quota increase request.<br/>ServiceCode:  The service identifier.<br/>
        :return: RequestedQuotas:  Information about the quota increase requests.<br/>NextToken:  The token to use to retrieve the next page of results. This value is null when there are no more results to return.<br/>        """
        pass

    def list_requested_service_quota_change_history_by_quota(self, QuotaCode: str, ServiceCode: str, Status: str=None, NextToken: str=None, MaxResults: int=None) -> ListRequestedServiceQuotaChangeHistoryByQuotaResponse:
        r"""Retrieves the quota increase requests for the specified quota.

        :param self:
        :param MaxResults:  The maximum number of results to return with a single call. To retrieve the remaining results, if any, make another call with the token returned from this call.<br/>NextToken:  The token for the next page of results.<br/>Status:  The status value of the quota increase request.<br/>QuotaCode:  The quota identifier.<br/>ServiceCode:  The service identifier.<br/>
        :return: RequestedQuotas:  Information about the quota increase requests.<br/>NextToken:  The token to use to retrieve the next page of results. This value is null when there are no more results to return.<br/>        """
        pass

    def list_service_quota_increase_requests_in_template(self, ServiceCode: str=None, AwsRegion: str=None, NextToken: str=None, MaxResults: int=None) -> ListServiceQuotaIncreaseRequestsInTemplateResponse:
        r"""Lists the quota increase requests in the specified quota request template.

        :param self:
        :param MaxResults:  The maximum number of results to return with a single call. To retrieve the remaining results, if any, make another call with the token returned from this call.<br/>NextToken:  The token for the next page of results.<br/>AwsRegion:  The AWS Region.<br/>ServiceCode:  The service identifier.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is null when there are no more results to return.<br/>ServiceQuotaIncreaseRequestInTemplateList:  Information about the quota increase requests.<br/>        """
        pass

    def list_service_quotas(self, ServiceCode: str, NextToken: str=None, MaxResults: int=None) -> ListServiceQuotasResponse:
        r"""Lists the applied quota values for the specified AWS service. For some quotas, only the default values are available. If the applied quota value is not available for a quota, the quota is not retrieved.

        :param self:
        :param MaxResults:  The maximum number of results to return with a single call. To retrieve the remaining results, if any, make another call with the token returned from this call.<br/>NextToken:  The token for the next page of results.<br/>ServiceCode:  The service identifier.<br/>
        :return: Quotas:  Information about the quotas.<br/>NextToken:  The token to use to retrieve the next page of results. This value is null when there are no more results to return.<br/>        """
        pass

    def list_services(self, NextToken: str=None, MaxResults: int=None) -> ListServicesResponse:
        r"""Lists the names and codes for the services integrated with Service Quotas.

        :param self:
        :param MaxResults:  The maximum number of results to return with a single call. To retrieve the remaining results, if any, make another call with the token returned from this call.<br/>NextToken:  The token for the next page of results.<br/>
        :return: Services:  Information about the services.<br/>NextToken:  The token to use to retrieve the next page of results. This value is null when there are no more results to return.<br/>        """
        pass

    def list_tags_for_resource(self, ResourceARN: str) -> ListTagsForResourceResponse:
        r"""Returns a list of the tags assigned to the specified applied quota.

        :param self:
        :param ResourceARN:  The Amazon Resource Name (ARN) for the applied quota for which you want to list tags. You can get this information by using the Service Quotas console, or by listing the quotas using the <a href="https://docs.aws.amazon.com/cli/latest/reference/service-quotas/list-service-quotas.html">list-service-quotas</a> AWS CLI command or the <a href="https://docs.aws.amazon.com/servicequotas/2019-06-24/apireference/API_ListServiceQuotas.html">ListServiceQuotas</a> AWS API operation.<br/>
        :return: Tags:  A complex data type that contains zero or more tag elements.<br/>        """
        pass

    def put_service_quota_increase_request_into_template(self, DesiredValue: QuotaValue, AwsRegion: str, ServiceCode: str, QuotaCode: str) -> PutServiceQuotaIncreaseRequestIntoTemplateResponse:
        r"""Adds a quota increase request to your quota request template.

        :param self:
        :param DesiredValue:  The new, increased value for the quota.<br/>AwsRegion:  The AWS Region.<br/>ServiceCode:  The service identifier.<br/>QuotaCode:  The quota identifier.<br/>
        :return: ServiceQuotaIncreaseRequestInTemplate:  Information about the quota increase request.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalQuota</i> Indicates whether the quota is global.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Unit</i> The unit of measurement.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AwsRegion</i> The AWS Region.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DesiredValue</i> The new, increased value of the quota.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>QuotaName</i> The quota name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>QuotaCode</i> The quota identifier.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceName</i> The service name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceCode</i> The service identifier.<br/>        """
        pass

    def request_service_quota_increase(self, DesiredValue: QuotaValue, QuotaCode: str, ServiceCode: str) -> RequestServiceQuotaIncreaseResponse:
        r"""Submits a quota increase request for the specified quota.

        :param self:
        :param DesiredValue:  The new, increased value for the quota.<br/>QuotaCode:  The quota identifier.<br/>ServiceCode:  The service identifier.<br/>
        :return: RequestedQuota:  Information about the quota increase request.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Unit</i> The unit of measurement.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalQuota</i> Indicates whether the quota is global.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>QuotaArn</i> The Amazon Resource Name (ARN) of the quota.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Requester</i> The IAM identity of the requester.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdated</i> The date and time of the most recent change.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Created</i> The date and time when the quota increase request was received and the case ID was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The state of the quota increase request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DesiredValue</i> The new, increased value for the quota.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>QuotaName</i> The quota name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>QuotaCode</i> The quota identifier.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceName</i> The service name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceCode</i> The service identifier.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CaseId</i> The case ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The unique identifier.<br/>        """
        pass

    def tag_resource(self, Tags: List[Tag], ResourceARN: str) -> TagResourceResponse:
        r"""Adds tags to the specified applied quota. You can include one or more tags to add to the quota.

        :param self:
        :param Tags:  The tags that you want to add to the resource.<br/>ResourceARN:  The Amazon Resource Name (ARN) for the applied quota. You can get this information by using the Service Quotas console, or by listing the quotas using the <a href="https://docs.aws.amazon.com/cli/latest/reference/service-quotas/list-service-quotas.html">list-service-quotas</a> AWS CLI command or the <a href="https://docs.aws.amazon.com/servicequotas/2019-06-24/apireference/API_ListServiceQuotas.html">ListServiceQuotas</a> AWS API operation.<br/>
        :return:         """
        pass

    def untag_resource(self, TagKeys: List[TagKey], ResourceARN: str) -> UntagResourceResponse:
        r"""Removes tags from the specified applied quota. You can specify one or more tags to remove.

        :param self:
        :param TagKeys:  The keys of the tags that you want to remove from the resource.<br/>ResourceARN:  The Amazon Resource Name (ARN) for the applied quota that you want to untag. You can get this information by using the Service Quotas console, or by listing the quotas using the <a href="https://docs.aws.amazon.com/cli/latest/reference/service-quotas/list-service-quotas.html">list-service-quotas</a> AWS CLI command or the <a href="https://docs.aws.amazon.com/servicequotas/2019-06-24/apireference/API_ListServiceQuotas.html">ListServiceQuotas</a> AWS API operation.<br/>
        :return:         """
        pass





class ServiceCatalog(BaseClient):
    r"""<fullname>AWS Service Catalog</fullname>  <a href="https://aws.amazon.com/servicecatalog/">AWS Service Catalog</a> enables organizations to create and manage catalogs of IT services that are approved for AWS. To get the most out of this documentation, you should be familiar with the terminology discussed in <a href="http://docs.aws.amazon.com/servicecatalog/latest/adminguide/what-is_concepts.html">AWS Service Catalog Concepts</a>."""


    class SearchProductsAsAdminPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `search_products_as_admin` for valid parameters"""
            pass
    class ListAcceptedPortfolioSharesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_accepted_portfolio_shares` for valid parameters"""
            pass
    class ListPortfoliosPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_portfolios` for valid parameters"""
            pass
    class ListConstraintsForPortfolioPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_constraints_for_portfolio` for valid parameters"""
            pass
    class ListLaunchPathsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_launch_paths` for valid parameters"""
            pass
    class ListTagOptionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_tag_options` for valid parameters"""
            pass
    class ListPortfoliosForProductPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_portfolios_for_product` for valid parameters"""
            pass
    class ListPrincipalsForPortfolioPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_principals_for_portfolio` for valid parameters"""
            pass
    class ListResourcesForTagOptionPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_resources_for_tag_option` for valid parameters"""
            pass
    class ListOrganizationPortfolioAccessPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_organization_portfolio_access` for valid parameters"""
            pass
    class ListProvisionedProductPlansPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_provisioned_product_plans` for valid parameters"""
            pass
    class ListProvisioningArtifactsForServiceActionPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_provisioning_artifacts_for_service_action` for valid parameters"""
            pass
    class ListRecordHistoryPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_record_history` for valid parameters"""
            pass
    class ListServiceActionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_service_actions` for valid parameters"""
            pass
    class ListServiceActionsForProvisioningArtifactPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_service_actions_for_provisioning_artifact` for valid parameters"""
            pass
    class ScanProvisionedProductsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `scan_provisioned_products` for valid parameters"""
            pass


    class AcceptPortfolioShareInput(Mapping):
        pass
    
    class AcceptPortfolioShareOutput(Mapping):
        pass
    
    class AssociateBudgetWithResourceInput(Mapping):
        pass
    
    class AssociateBudgetWithResourceOutput(Mapping):
        pass
    
    class AssociatePrincipalWithPortfolioInput(Mapping):
        pass
    
    class AssociatePrincipalWithPortfolioOutput(Mapping):
        pass
    
    class AssociateProductWithPortfolioInput(Mapping):
        pass
    
    class AssociateProductWithPortfolioOutput(Mapping):
        pass
    
    class AssociateServiceActionWithProvisioningArtifactInput(Mapping):
        pass
    
    class AssociateServiceActionWithProvisioningArtifactOutput(Mapping):
        pass
    
    class AssociateTagOptionWithResourceInput(Mapping):
        pass
    
    class AssociateTagOptionWithResourceOutput(Mapping):
        pass
    
    class BatchAssociateServiceActionWithProvisioningArtifactInput(Mapping):
        pass
    
    class BatchAssociateServiceActionWithProvisioningArtifactOutput(Mapping):
        pass
    
    class ServiceActionAssociation(Mapping):
        pass
    
    class BatchDisassociateServiceActionFromProvisioningArtifactInput(Mapping):
        pass
    
    class BatchDisassociateServiceActionFromProvisioningArtifactOutput(Mapping):
        pass
    
    class CopyProductInput(Mapping):
        pass
    
    class CopyProductOutput(Mapping):
        pass
    
    class SourceProvisioningArtifactPropertiesMap(object):
        pass
    
    class CopyOption(object):
        pass
    
    class CreateConstraintInput(Mapping):
        pass
    
    class CreateConstraintOutput(Mapping):
        pass
    
    class CreatePortfolioInput(Mapping):
        pass
    
    class CreatePortfolioOutput(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class CreatePortfolioShareInput(Mapping):
        pass
    
    class CreatePortfolioShareOutput(Mapping):
        pass
    
    class OrganizationNode(Mapping):
        pass
    
    class Boolean(object):
        pass
    
    class CreateProductInput(Mapping):
        pass
    
    class CreateProductOutput(Mapping):
        pass
    
    class ProvisioningArtifactProperties(Mapping):
        pass
    
    class CreateProvisionedProductPlanInput(Mapping):
        pass
    
    class CreateProvisionedProductPlanOutput(Mapping):
        pass
    
    class NotificationArn(object):
        pass
    
    class UpdateProvisioningParameter(Mapping):
        pass
    
    class CreateProvisioningArtifactInput(Mapping):
        pass
    
    class CreateProvisioningArtifactOutput(Mapping):
        pass
    
    class CreateServiceActionInput(Mapping):
        pass
    
    class CreateServiceActionOutput(Mapping):
        pass
    
    class ServiceActionDefinitionMap(object):
        pass
    
    class CreateTagOptionInput(Mapping):
        pass
    
    class CreateTagOptionOutput(Mapping):
        pass
    
    class DeleteConstraintInput(Mapping):
        pass
    
    class DeleteConstraintOutput(Mapping):
        pass
    
    class DeletePortfolioInput(Mapping):
        pass
    
    class DeletePortfolioOutput(Mapping):
        pass
    
    class DeletePortfolioShareInput(Mapping):
        pass
    
    class DeletePortfolioShareOutput(Mapping):
        pass
    
    class DeleteProductInput(Mapping):
        pass
    
    class DeleteProductOutput(Mapping):
        pass
    
    class DeleteProvisionedProductPlanInput(Mapping):
        pass
    
    class DeleteProvisionedProductPlanOutput(Mapping):
        pass
    
    class IgnoreErrors(object):
        pass
    
    class DeleteProvisioningArtifactInput(Mapping):
        pass
    
    class DeleteProvisioningArtifactOutput(Mapping):
        pass
    
    class DeleteServiceActionInput(Mapping):
        pass
    
    class DeleteServiceActionOutput(Mapping):
        pass
    
    class DeleteTagOptionInput(Mapping):
        pass
    
    class DeleteTagOptionOutput(Mapping):
        pass
    
    class DescribeConstraintInput(Mapping):
        pass
    
    class DescribeConstraintOutput(Mapping):
        pass
    
    class DescribeCopyProductStatusInput(Mapping):
        pass
    
    class DescribeCopyProductStatusOutput(Mapping):
        pass
    
    class DescribePortfolioInput(Mapping):
        pass
    
    class DescribePortfolioOutput(Mapping):
        pass
    
    class DescribePortfolioShareStatusInput(Mapping):
        pass
    
    class DescribePortfolioShareStatusOutput(Mapping):
        pass
    
    class DescribePortfolioSharesInput(Mapping):
        pass
    
    class DescribePortfolioSharesOutput(Mapping):
        pass
    
    class DescribeProductInput(Mapping):
        pass
    
    class DescribeProductOutput(Mapping):
        pass
    
    class DescribeProductAsAdminInput(Mapping):
        pass
    
    class DescribeProductAsAdminOutput(Mapping):
        pass
    
    class DescribeProductViewInput(Mapping):
        pass
    
    class DescribeProductViewOutput(Mapping):
        pass
    
    class DescribeProvisionedProductInput(Mapping):
        pass
    
    class DescribeProvisionedProductOutput(Mapping):
        pass
    
    class DescribeProvisionedProductPlanInput(Mapping):
        pass
    
    class DescribeProvisionedProductPlanOutput(Mapping):
        pass
    
    class DescribeProvisioningArtifactInput(Mapping):
        pass
    
    class DescribeProvisioningArtifactOutput(Mapping):
        pass
    
    class Verbose(object):
        pass
    
    class DescribeProvisioningParametersInput(Mapping):
        pass
    
    class DescribeProvisioningParametersOutput(Mapping):
        pass
    
    class DescribeRecordInput(Mapping):
        pass
    
    class DescribeRecordOutput(Mapping):
        pass
    
    class DescribeServiceActionInput(Mapping):
        pass
    
    class DescribeServiceActionOutput(Mapping):
        pass
    
    class DescribeServiceActionExecutionParametersInput(Mapping):
        pass
    
    class DescribeServiceActionExecutionParametersOutput(Mapping):
        pass
    
    class DescribeTagOptionInput(Mapping):
        pass
    
    class DescribeTagOptionOutput(Mapping):
        pass
    
    class DisableAWSOrganizationsAccessInput(Mapping):
        pass
    
    class DisableAWSOrganizationsAccessOutput(Mapping):
        pass
    
    class DisassociateBudgetFromResourceInput(Mapping):
        pass
    
    class DisassociateBudgetFromResourceOutput(Mapping):
        pass
    
    class DisassociatePrincipalFromPortfolioInput(Mapping):
        pass
    
    class DisassociatePrincipalFromPortfolioOutput(Mapping):
        pass
    
    class DisassociateProductFromPortfolioInput(Mapping):
        pass
    
    class DisassociateProductFromPortfolioOutput(Mapping):
        pass
    
    class DisassociateServiceActionFromProvisioningArtifactInput(Mapping):
        pass
    
    class DisassociateServiceActionFromProvisioningArtifactOutput(Mapping):
        pass
    
    class DisassociateTagOptionFromResourceInput(Mapping):
        pass
    
    class DisassociateTagOptionFromResourceOutput(Mapping):
        pass
    
    class EnableAWSOrganizationsAccessInput(Mapping):
        pass
    
    class EnableAWSOrganizationsAccessOutput(Mapping):
        pass
    
    class ExecuteProvisionedProductPlanInput(Mapping):
        pass
    
    class ExecuteProvisionedProductPlanOutput(Mapping):
        pass
    
    class ExecuteProvisionedProductServiceActionInput(Mapping):
        pass
    
    class ExecuteProvisionedProductServiceActionOutput(Mapping):
        pass
    
    class ExecutionParameterMap(object):
        pass
    
    class GetAWSOrganizationsAccessStatusInput(Mapping):
        pass
    
    class GetAWSOrganizationsAccessStatusOutput(Mapping):
        pass
    
    class GetProvisionedProductOutputsInput(Mapping):
        pass
    
    class GetProvisionedProductOutputsOutput(Mapping):
        pass
    
    class OutputKey(object):
        pass
    
    class ImportAsProvisionedProductInput(Mapping):
        pass
    
    class ImportAsProvisionedProductOutput(Mapping):
        pass
    
    class ListAcceptedPortfolioSharesInput(Mapping):
        pass
    
    class ListAcceptedPortfolioSharesOutput(Mapping):
        pass
    
    class ListBudgetsForResourceInput(Mapping):
        pass
    
    class ListBudgetsForResourceOutput(Mapping):
        pass
    
    class ListConstraintsForPortfolioInput(Mapping):
        pass
    
    class ListConstraintsForPortfolioOutput(Mapping):
        pass
    
    class ListLaunchPathsInput(Mapping):
        pass
    
    class ListLaunchPathsOutput(Mapping):
        pass
    
    class ListOrganizationPortfolioAccessInput(Mapping):
        pass
    
    class ListOrganizationPortfolioAccessOutput(Mapping):
        pass
    
    class ListPortfolioAccessInput(Mapping):
        pass
    
    class ListPortfolioAccessOutput(Mapping):
        pass
    
    class ListPortfoliosInput(Mapping):
        pass
    
    class ListPortfoliosOutput(Mapping):
        pass
    
    class ListPortfoliosForProductInput(Mapping):
        pass
    
    class ListPortfoliosForProductOutput(Mapping):
        pass
    
    class ListPrincipalsForPortfolioInput(Mapping):
        pass
    
    class ListPrincipalsForPortfolioOutput(Mapping):
        pass
    
    class ListProvisionedProductPlansInput(Mapping):
        pass
    
    class ListProvisionedProductPlansOutput(Mapping):
        pass
    
    class AccessLevelFilter(Mapping):
        pass
    
    class ListProvisioningArtifactsInput(Mapping):
        pass
    
    class ListProvisioningArtifactsOutput(Mapping):
        pass
    
    class ListProvisioningArtifactsForServiceActionInput(Mapping):
        pass
    
    class ListProvisioningArtifactsForServiceActionOutput(Mapping):
        pass
    
    class ListRecordHistoryInput(Mapping):
        pass
    
    class ListRecordHistoryOutput(Mapping):
        pass
    
    class ListRecordHistorySearchFilter(Mapping):
        pass
    
    class ListResourcesForTagOptionInput(Mapping):
        pass
    
    class ListResourcesForTagOptionOutput(Mapping):
        pass
    
    class ListServiceActionsInput(Mapping):
        pass
    
    class ListServiceActionsOutput(Mapping):
        pass
    
    class ListServiceActionsForProvisioningArtifactInput(Mapping):
        pass
    
    class ListServiceActionsForProvisioningArtifactOutput(Mapping):
        pass
    
    class ListStackInstancesForProvisionedProductInput(Mapping):
        pass
    
    class ListStackInstancesForProvisionedProductOutput(Mapping):
        pass
    
    class ListTagOptionsInput(Mapping):
        pass
    
    class ListTagOptionsOutput(Mapping):
        pass
    
    class ListTagOptionsFilters(Mapping):
        pass
    
    class ProvisionProductInput(Mapping):
        pass
    
    class ProvisionProductOutput(Mapping):
        pass
    
    class ProvisioningParameter(Mapping):
        pass
    
    class ProvisioningPreferences(Mapping):
        pass
    
    class RejectPortfolioShareInput(Mapping):
        pass
    
    class RejectPortfolioShareOutput(Mapping):
        pass
    
    class ScanProvisionedProductsInput(Mapping):
        pass
    
    class ScanProvisionedProductsOutput(Mapping):
        pass
    
    class SearchProductsInput(Mapping):
        pass
    
    class SearchProductsOutput(Mapping):
        pass
    
    class ProductViewFilters(object):
        pass
    
    class SearchProductsAsAdminInput(Mapping):
        pass
    
    class SearchProductsAsAdminOutput(Mapping):
        pass
    
    class SearchProvisionedProductsInput(Mapping):
        pass
    
    class SearchProvisionedProductsOutput(Mapping):
        pass
    
    class ProvisionedProductFilters(object):
        pass
    
    class TerminateProvisionedProductInput(Mapping):
        pass
    
    class TerminateProvisionedProductOutput(Mapping):
        pass
    
    class RetainPhysicalResources(object):
        pass
    
    class UpdateConstraintInput(Mapping):
        pass
    
    class UpdateConstraintOutput(Mapping):
        pass
    
    class UpdatePortfolioInput(Mapping):
        pass
    
    class UpdatePortfolioOutput(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdatePortfolioShareInput(Mapping):
        pass
    
    class UpdatePortfolioShareOutput(Mapping):
        pass
    
    class NullableBoolean(object):
        pass
    
    class UpdateProductInput(Mapping):
        pass
    
    class UpdateProductOutput(Mapping):
        pass
    
    class UpdateProvisionedProductInput(Mapping):
        pass
    
    class UpdateProvisionedProductOutput(Mapping):
        pass
    
    class UpdateProvisioningPreferences(Mapping):
        pass
    
    class UpdateProvisionedProductPropertiesInput(Mapping):
        pass
    
    class UpdateProvisionedProductPropertiesOutput(Mapping):
        pass
    
    class ProvisionedProductProperties(object):
        pass
    
    class UpdateProvisioningArtifactInput(Mapping):
        pass
    
    class UpdateProvisioningArtifactOutput(Mapping):
        pass
    
    class ProvisioningArtifactActive(object):
        pass
    
    class UpdateServiceActionInput(Mapping):
        pass
    
    class UpdateServiceActionOutput(Mapping):
        pass
    
    class UpdateTagOptionInput(Mapping):
        pass
    
    class UpdateTagOptionOutput(Mapping):
        pass
    
    class TagOptionActive(object):
        pass
    
    def accept_portfolio_share(self, PortfolioId: str, AcceptLanguage: str=None, PortfolioShareType: str=None) -> AcceptPortfolioShareOutput:
        r"""Accepts an offer to share the specified portfolio.

        :param self:
        :param PortfolioShareType:  The type of shared portfolios to accept. The default is to accept imported portfolios. <ul> <li>  <code>AWS_ORGANIZATIONS</code> - Accept portfolios shared by the management account of your organization. </li> <li>  <code>IMPORTED</code> - Accept imported portfolios. </li> <li>  <code>AWS_SERVICECATALOG</code> - Not supported. (Throws ResourceNotFoundException.) </li> </ul> For example, <code>aws servicecatalog accept-portfolio-share --portfolio-id "port-2qwzkwxt3y5fk" --portfolio-share-type AWS_ORGANIZATIONS</code> <br/>PortfolioId:  The portfolio identifier.<br/>AcceptLanguage:  The language code. <ul> <li>  <code>en</code> - English (default) </li> <li>  <code>jp</code> - Japanese </li> <li>  <code>zh</code> - Chinese </li> </ul><br/>
        :return:         """
        pass

    def associate_budget_with_resource(self, ResourceId: str, BudgetName: str) -> AssociateBudgetWithResourceOutput:
        r"""Associates the specified budget with the specified resource.

        :param self:
        :param ResourceId:   The resource identifier. Either a portfolio-id or a product-id.<br/>BudgetName:  The name of the budget you want to associate.<br/>
        :return:         """
        pass

    def associate_principal_with_portfolio(self, PrincipalType: str, PrincipalARN: str, PortfolioId: str, AcceptLanguage: str=None) -> AssociatePrincipalWithPortfolioOutput:
        r"""Associates the specified principal ARN with the specified portfolio.

        :param self:
        :param PrincipalType:  The principal type. The supported value is <code>IAM</code>.<br/>PrincipalARN:  The ARN of the principal (IAM user, role, or group).<br/>PortfolioId:  The portfolio identifier.<br/>AcceptLanguage:  The language code. <ul> <li>  <code>en</code> - English (default) </li> <li>  <code>jp</code> - Japanese </li> <li>  <code>zh</code> - Chinese </li> </ul><br/>
        :return:         """
        pass

    def associate_product_with_portfolio(self, PortfolioId: str, ProductId: str, AcceptLanguage: str=None, SourcePortfolioId: str=None) -> AssociateProductWithPortfolioOutput:
        r"""Associates the specified product with the specified portfolio. A delegated admin is authorized to invoke this command.

        :param self:
        :param SourcePortfolioId:  The identifier of the source portfolio.<br/>PortfolioId:  The portfolio identifier.<br/>ProductId:  The product identifier.<br/>AcceptLanguage:  The language code. <ul> <li>  <code>en</code> - English (default) </li> <li>  <code>jp</code> - Japanese </li> <li>  <code>zh</code> - Chinese </li> </ul><br/>
        :return:         """
        pass

    def associate_service_action_with_provisioning_artifact(self, ServiceActionId: str, ProvisioningArtifactId: str, ProductId: str, AcceptLanguage: str=None) -> AssociateServiceActionWithProvisioningArtifactOutput:
        r"""Associates a self-service action with a provisioning artifact.

        :param self:
        :param AcceptLanguage:  The language code. <ul> <li>  <code>en</code> - English (default) </li> <li>  <code>jp</code> - Japanese </li> <li>  <code>zh</code> - Chinese </li> </ul><br/>ServiceActionId:  The self-service action identifier. For example, <code>act-fs7abcd89wxyz</code>.<br/>ProvisioningArtifactId:  The identifier of the provisioning artifact. For example, <code>pa-4abcdjnxjj6ne</code>.<br/>ProductId:  The product identifier. For example, <code>prod-abcdzk7xy33qa</code>.<br/>
        :return:         """
        pass

    def associate_tag_option_with_resource(self, TagOptionId: str, ResourceId: str) -> AssociateTagOptionWithResourceOutput:
        r"""Associate the specified TagOption with the specified portfolio or product.

        :param self:
        :param TagOptionId:  The TagOption identifier.<br/>ResourceId:  The resource identifier.<br/>
        :return:         """
        pass

    def batch_associate_service_action_with_provisioning_artifact(self, ServiceActionAssociations: List[ServiceActionAssociation], AcceptLanguage: str=None) -> BatchAssociateServiceActionWithProvisioningArtifactOutput:
        r"""Associates multiple self-service actions with provisioning artifacts.

        :param self:
        :param AcceptLanguage:  The language code. <ul> <li>  <code>en</code> - English (default) </li> <li>  <code>jp</code> - Japanese </li> <li>  <code>zh</code> - Chinese </li> </ul><br/>ServiceActionAssociations:  One or more associations, each consisting of the Action ID, the Product ID, and the Provisioning Artifact ID.<br/>
        :return: FailedServiceActionAssociations:  An object that contains a list of errors, along with information to help you identify the self-service action.<br/>        """
        pass

    def batch_disassociate_service_action_from_provisioning_artifact(self, ServiceActionAssociations: List[ServiceActionAssociation], AcceptLanguage: str=None) -> BatchDisassociateServiceActionFromProvisioningArtifactOutput:
        r"""Disassociates a batch of self-service actions from the specified provisioning artifact.

        :param self:
        :param AcceptLanguage:  The language code. <ul> <li>  <code>en</code> - English (default) </li> <li>  <code>jp</code> - Japanese </li> <li>  <code>zh</code> - Chinese </li> </ul><br/>ServiceActionAssociations:  One or more associations, each consisting of the Action ID, the Product ID, and the Provisioning Artifact ID.<br/>
        :return: FailedServiceActionAssociations:  An object that contains a list of errors, along with information to help you identify the self-service action.<br/>        """
        pass

    def copy_product(self, IdempotencyToken: str, SourceProductArn: str, AcceptLanguage: str=None, TargetProductId: str=None, TargetProductName: str=None, SourceProvisioningArtifactIdentifiers: List[SourceProvisioningArtifactPropertiesMap]=None, CopyOptions: List[CopyOption]=None) -> CopyProductOutput:
        r"""Copies the specified source product to the specified target product or a new product. You can copy a product to the same account or another account. You can copy a product to the same region or another region. This operation is performed asynchronously. To track the progress of the operation, use <a>DescribeCopyProductStatus</a>.

        :param self:
        :param IdempotencyToken:   A unique identifier that you provide to ensure idempotency. If multiple requests differ only by the idempotency token, the same response is returned for each repeated request. <br/>CopyOptions:  The copy options. If the value is <code>CopyTags</code>, the tags from the source product are copied to the target product.<br/>SourceProvisioningArtifactIdentifiers:  The identifiers of the provisioning artifacts (also known as versions) of the product to copy. By default, all provisioning artifacts are copied.<br/>TargetProductName:  A name for the target product. The default is the name of the source product.<br/>TargetProductId:  The identifier of the target product. By default, a new product is created.<br/>SourceProductArn:  The Amazon Resource Name (ARN) of the source product.<br/>AcceptLanguage:  The language code. <ul> <li>  <code>en</code> - English (default) </li> <li>  <code>jp</code> - Japanese </li> <li>  <code>zh</code> - Chinese </li> </ul><br/>
        :return: CopyProductToken:  The token to use to track the progress of the operation.<br/>        """
        pass

    def create_constraint(self, IdempotencyToken: str, Type: str, Parameters: str, ProductId: str, PortfolioId: str, AcceptLanguage: str=None, Description: str=None) -> CreateConstraintOutput:
        r"""Creates a constraint. A delegated admin is authorized to invoke this command.

        :param self:
        :param IdempotencyToken:  A unique identifier that you provide to ensure idempotency. If multiple requests differ only by the idempotency token, the same response is returned for each repeated request.<br/>Description:  The description of the constraint.<br/>Type:  The type of constraint. <ul> <li>  <code>LAUNCH</code>  </li> <li>  <code>NOTIFICATION</code>  </li> <li>  <code>RESOURCE_UPDATE</code>  </li> <li>  <code>STACKSET</code>  </li> <li>  <code>TEMPLATE</code>  </li> </ul><br/>Parameters:  The constraint parameters, in JSON format. The syntax depends on the constraint type as follows: <dl> <dt>LAUNCH</dt> <dd> You are required to specify either the <code>RoleArn</code> or the <code>LocalRoleName</code> but can't use both. Specify the <code>RoleArn</code> property as follows:  <code>{"RoleArn" : "arn:aws:iam::123456789012:role/LaunchRole"}</code>  Specify the <code>LocalRoleName</code> property as follows:  <code>{"LocalRoleName": "SCBasicLaunchRole"}</code>  If you specify the <code>LocalRoleName</code> property, when an account uses the launch constraint, the IAM role with that name in the account will be used. This allows launch-role constraints to be account-agnostic so the administrator can create fewer resources per shared account. <note> The given role name must exist in the account used to create the launch constraint and the account of the user who launches a product with this launch constraint. </note> You cannot have both a <code>LAUNCH</code> and a <code>STACKSET</code> constraint. You also cannot have more than one <code>LAUNCH</code> constraint on a product and portfolio. </dd> <dt>NOTIFICATION</dt> <dd> Specify the <code>NotificationArns</code> property as follows:  <code>{"NotificationArns" : ["arn:aws:sns:us-east-1:123456789012:Topic"]}</code>  </dd> <dt>RESOURCE_UPDATE</dt> <dd> Specify the <code>TagUpdatesOnProvisionedProduct</code> property as follows:  <code>{"Version":"2.0","Properties":{"TagUpdateOnProvisionedProduct":"String"}}</code>  The <code>TagUpdatesOnProvisionedProduct</code> property accepts a string value of <code>ALLOWED</code> or <code>NOT_ALLOWED</code>. </dd> <dt>STACKSET</dt> <dd> Specify the <code>Parameters</code> property as follows:  <code>{"Version": "String", "Properties": {"AccountList": [ "String" ], "RegionList": [ "String" ], "AdminRole": "String", "ExecutionRole": "String"}}</code>  You cannot have both a <code>LAUNCH</code> and a <code>STACKSET</code> constraint. You also cannot have more than one <code>STACKSET</code> constraint on a product and portfolio. Products with a <code>STACKSET</code> constraint will launch an AWS CloudFormation stack set. </dd> <dt>TEMPLATE</dt> <dd> Specify the <code>Rules</code> property. For more information, see <a href="http://docs.aws.amazon.com/servicecatalog/latest/adminguide/reference-template_constraint_rules.html">Template Constraint Rules</a>. </dd> </dl><br/>ProductId:  The product identifier.<br/>PortfolioId:  The portfolio identifier.<br/>AcceptLanguage:  The language code. <ul> <li>  <code>en</code> - English (default) </li> <li>  <code>jp</code> - Japanese </li> <li>  <code>zh</code> - Chinese </li> </ul><br/>
        :return: Status:  The status of the current request.<br/>ConstraintParameters:  The constraint parameters.<br/>ConstraintDetail:  Information about the constraint.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PortfolioId</i> The identifier of the portfolio the product resides in. The constraint applies only to the instance of the product that lives within this portfolio.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProductId</i> The identifier of the product the constraint applies to. Note that a constraint applies to a specific instance of a product within a certain portfolio.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Owner</i> The owner of the constraint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the constraint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of constraint. <ul> <li>  <code>LAUNCH</code>  </li> <li>  <code>NOTIFICATION</code>  </li> <li> STACKSET </li> <li>  <code>TEMPLATE</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConstraintId</i> The identifier of the constraint.<br/>        """
        pass

    def create_portfolio(self, IdempotencyToken: str, ProviderName: str, DisplayName: str, AcceptLanguage: str=None, Description: str=None, Tags: List[Tag]=None) -> CreatePortfolioOutput:
        r"""Creates a portfolio. A delegated admin is authorized to invoke this command.

        :param self:
        :param IdempotencyToken:  A unique identifier that you provide to ensure idempotency. If multiple requests differ only by the idempotency token, the same response is returned for each repeated request.<br/>Tags:  One or more tags.<br/>ProviderName:  The name of the portfolio provider.<br/>Description:  The description of the portfolio.<br/>DisplayName:  The name to use for display purposes.<br/>AcceptLanguage:  The language code. <ul> <li>  <code>en</code> - English (default) </li> <li>  <code>jp</code> - Japanese </li> <li>  <code>zh</code> - Chinese </li> </ul><br/>
        :return: Tags:  Information about the tags associated with the portfolio.<br/>PortfolioDetail:  Information about the portfolio.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProviderName</i> The name of the portfolio provider.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTime</i> The UTC time stamp of the creation time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the portfolio.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DisplayName</i> The name to use for display purposes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ARN</i> The ARN assigned to the portfolio.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The portfolio identifier.<br/>        """
        pass

    def create_portfolio_share(self, PortfolioId: str, AcceptLanguage: str=None, AccountId: str=None, OrganizationNode: OrganizationNode=None, ShareTagOptions: Boolean=None) -> CreatePortfolioShareOutput:
        r"""Shares the specified portfolio with the specified account or organization node. Shares to an organization node can only be created by the management account of an organization or by a delegated administrator. You can share portfolios to an organization, an organizational unit, or a specific account. Note that if a delegated admin is de-registered, they can no longer create portfolio shares.  <code>AWSOrganizationsAccess</code> must be enabled in order to create a portfolio share to an organization node. You can't share a shared resource, including portfolios that contain a shared product. If the portfolio share with the specified account or organization node already exists, this action will have no effect and will not return an error. To update an existing share, you must use the <code> UpdatePortfolioShare</code> API instead.

        :param self:
        :param ShareTagOptions:  Enables or disables <code>TagOptions </code> sharing when creating the portfolio share. If this flag is not provided, TagOptions sharing is disabled.<br/>OrganizationNode:  The organization node to whom you are going to share. If <code>OrganizationNode</code> is passed in, <code>PortfolioShare</code> will be created for the node an ListOrganizationPortfolioAccessd its children (when applies), and a <code>PortfolioShareToken</code> will be returned in the output in order for the administrator to monitor the status of the <code>PortfolioShare</code> creation process.:<br/>AccountId:  The AWS account ID. For example, <code>123456789012</code>.<br/>PortfolioId:  The portfolio identifier.<br/>AcceptLanguage:  The language code. <ul> <li>  <code>en</code> - English (default) </li> <li>  <code>jp</code> - Japanese </li> <li>  <code>zh</code> - Chinese </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Value</i> The identifier of the organization node.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The organization node type.<br/>
        :return: PortfolioShareToken:  The portfolio shares a unique identifier that only returns if the portfolio is shared to an organization node.<br/>        """
        pass

    def create_product(self, IdempotencyToken: str, ProvisioningArtifactParameters: ProvisioningArtifactProperties, ProductType: str, Owner: str, Name: str, AcceptLanguage: str=None, Description: str=None, Distributor: str=None, SupportDescription: str=None, SupportEmail: str=None, SupportUrl: str=None, Tags: List[Tag]=None) -> CreateProductOutput:
        r"""Creates a product. A delegated admin is authorized to invoke this command. The user or role that performs this operation must have the <code>cloudformation:GetTemplate</code> IAM policy permission. This policy permission is required when using the <code>ImportFromPhysicalId</code> template source in the information data section.

        :param self:
        :param IdempotencyToken:  A unique identifier that you provide to ensure idempotency. If multiple requests differ only by the idempotency token, the same response is returned for each repeated request.<br/>ProvisioningArtifactParameters:  The configuration of the provisioning artifact. :<br/>Tags:  One or more tags.<br/>ProductType:  The type of product.<br/>SupportUrl:  The contact URL for product support.  <code>^https?:\/\// </code>/ is the pattern used to validate SupportUrl.<br/>SupportEmail:  The contact email for product support.<br/>SupportDescription:  The support information about the product.<br/>Distributor:  The distributor of the product.<br/>Description:  The description of the product.<br/>Owner:  The owner of the product.<br/>Name:  The name of the product.<br/>AcceptLanguage:  The language code. <ul> <li>  <code>en</code> - English (default) </li> <li>  <code>jp</code> - Japanese </li> <li>  <code>zh</code> - Chinese </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DisableTemplateValidation</i> If set to true, AWS Service Catalog stops validating the specified provisioning artifact even if it is invalid.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of provisioning artifact. <ul> <li>  <code>CLOUD_FORMATION_TEMPLATE</code> - AWS CloudFormation template </li> <li>  <code>MARKETPLACE_AMI</code> - AWS Marketplace AMI </li> <li>  <code>MARKETPLACE_CAR</code> - AWS Marketplace Clusters and AWS Resources </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Info</i> Specify the template source with one of the following options, but not both. Keys accepted: [ <code>LoadTemplateFromURL</code>, <code>ImportFromPhysicalId</code> ] The URL of the CloudFormation template in Amazon S3. Specify the URL in JSON format as follows:  <code>"LoadTemplateFromURL": "https://s3.amazonaws.com/cf-templates-ozkq9d3hgiq2-us-east-1/..."</code>   <code>ImportFromPhysicalId</code>: The physical id of the resource that contains the template. Currently only supports CloudFormation stack arn. Specify the physical id in JSON format as follows: <code>ImportFromPhysicalId: “arn:aws:cloudformation:[us-east-1]:[accountId]:stack/[StackName]/[resourceId]</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the provisioning artifact, including how it differs from the previous provisioning artifact.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the provisioning artifact (for example, v1 v2beta). No spaces are allowed.<br/>
        :return: Tags:  Information about the tags associated with the product.<br/>ProvisioningArtifactDetail:  Information about the provisioning artifact. :<br/>ProductViewDetail:  Information about the product view.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTime</i> The UTC time stamp of the creation time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProductARN</i> The ARN of the product.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the product. <ul> <li>  <code>AVAILABLE</code> - The product is ready for use. </li> <li>  <code>CREATING</code> - Product creation has started; the product is not ready for use. </li> <li>  <code>FAILED</code> - An action failed. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProductViewSummary</i> Summary information about the product view.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ProductViewSummary</b>: Summary information about the product view.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SupportUrl</i> The URL information to obtain support for this Product.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SupportDescription</i> The description of the support for this Product.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SupportEmail</i> The email contact information to obtain support for this Product.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HasDefaultPath</i> Indicates whether the product has a default path. If the product does not have a default path, call <a>ListLaunchPaths</a> to disambiguate between paths. Otherwise, <a>ListLaunchPaths</a> is not required, and the output of <a>ProductViewSummary</a> can be used directly with <a>DescribeProvisioningParameters</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Distributor</i> The distributor of the product. Contact the product administrator for the significance of this value.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The product type. Contact the product administrator for the significance of this value. If this value is <code>MARKETPLACE</code>, the product was created by AWS Marketplace.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ShortDescription</i> Short description of the product.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Owner</i> The owner of the product. Contact the product administrator for the significance of this value.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the product.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ProductId</i> The product identifier.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The product view identifier.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Guidance</i> Information set by the administrator to provide guidance to end users about which provisioning artifacts to use.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Active</i> Indicates whether the product version is active.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTime</i> The UTC time stamp of the creation time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of provisioning artifact. <ul> <li>  <code>CLOUD_FORMATION_TEMPLATE</code> - AWS CloudFormation template </li> <li>  <code>MARKETPLACE_AMI</code> - AWS Marketplace AMI </li> <li>  <code>MARKETPLACE_CAR</code> - AWS Marketplace Clusters and AWS Resources </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the provisioning artifact.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the provisioning artifact.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The identifier of the provisioning artifact.<br/>        """
        pass

    def create_provisioned_product_plan(self, IdempotencyToken: str, ProvisioningArtifactId: str, ProvisionedProductName: str, ProductId: str, PlanType: str, PlanName: str, AcceptLanguage: str=None, NotificationArns: List[NotificationArn]=None, PathId: str=None, ProvisioningParameters: List[UpdateProvisioningParameter]=None, Tags: List[Tag]=None) -> CreateProvisionedProductPlanOutput:
        r"""Creates a plan. A plan includes the list of resources to be created (when provisioning a new product) or modified (when updating a provisioned product) when the plan is executed. You can create one plan per provisioned product. To create a plan for an existing provisioned product, the product status must be AVAILBLE or TAINTED. To view the resource changes in the change set, use <a>DescribeProvisionedProductPlan</a>. To create or modify the provisioned product, use <a>ExecuteProvisionedProductPlan</a>.

        :param self:
        :param Tags:  One or more tags. If the plan is for an existing provisioned product, the product must have a <code>RESOURCE_UPDATE</code> constraint with <code>TagUpdatesOnProvisionedProduct</code> set to <code>ALLOWED</code> to allow tag updates.<br/>IdempotencyToken:  A unique identifier that you provide to ensure idempotency. If multiple requests differ only by the idempotency token, the same response is returned for each repeated request.<br/>ProvisioningParameters:  Parameters specified by the administrator that are required for provisioning the product.<br/>ProvisioningArtifactId:  The identifier of the provisioning artifact.<br/>ProvisionedProductName:  A user-friendly name for the provisioned product. This value must be unique for the AWS account and cannot be updated after the product is provisioned.<br/>ProductId:  The product identifier.<br/>PathId:  The path identifier of the product. This value is optional if the product has a default path, and required if the product has more than one path. To list the paths for a product, use <a>ListLaunchPaths</a>.<br/>NotificationArns:  Passed to CloudFormation. The SNS topic ARNs to which to publish stack-related events.<br/>PlanType:  The plan type.<br/>PlanName:  The name of the plan.<br/>AcceptLanguage:  The language code. <ul> <li>  <code>en</code> - English (default) </li> <li>  <code>jp</code> - Japanese </li> <li>  <code>zh</code> - Chinese </li> </ul><br/>
        :return: ProvisioningArtifactId:  The identifier of the provisioning artifact.<br/>ProvisionedProductName:  The user-friendly name of the provisioned product.<br/>ProvisionProductId:  The product identifier.<br/>PlanId:  The plan identifier.<br/>PlanName:  The name of the plan.<br/>        """
        pass

    def create_provisioning_artifact(self, IdempotencyToken: str, Parameters: ProvisioningArtifactProperties, ProductId: str, AcceptLanguage: str=None) -> CreateProvisioningArtifactOutput:
        r"""Creates a provisioning artifact (also known as a version) for the specified product. You cannot create a provisioning artifact for a product that was shared with you. The user or role that performs this operation must have the <code>cloudformation:GetTemplate</code> IAM policy permission. This policy permission is required when using the <code>ImportFromPhysicalId</code> template source in the information data section.

        :param self:
        :param IdempotencyToken:  A unique identifier that you provide to ensure idempotency. If multiple requests differ only by the idempotency token, the same response is returned for each repeated request.<br/>Parameters:  The configuration for the provisioning artifact.:<br/>ProductId:  The product identifier.<br/>AcceptLanguage:  The language code. <ul> <li>  <code>en</code> - English (default) </li> <li>  <code>jp</code> - Japanese </li> <li>  <code>zh</code> - Chinese </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DisableTemplateValidation</i> If set to true, AWS Service Catalog stops validating the specified provisioning artifact even if it is invalid.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of provisioning artifact. <ul> <li>  <code>CLOUD_FORMATION_TEMPLATE</code> - AWS CloudFormation template </li> <li>  <code>MARKETPLACE_AMI</code> - AWS Marketplace AMI </li> <li>  <code>MARKETPLACE_CAR</code> - AWS Marketplace Clusters and AWS Resources </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Info</i> Specify the template source with one of the following options, but not both. Keys accepted: [ <code>LoadTemplateFromURL</code>, <code>ImportFromPhysicalId</code> ] The URL of the CloudFormation template in Amazon S3. Specify the URL in JSON format as follows:  <code>"LoadTemplateFromURL": "https://s3.amazonaws.com/cf-templates-ozkq9d3hgiq2-us-east-1/..."</code>   <code>ImportFromPhysicalId</code>: The physical id of the resource that contains the template. Currently only supports CloudFormation stack arn. Specify the physical id in JSON format as follows: <code>ImportFromPhysicalId: “arn:aws:cloudformation:[us-east-1]:[accountId]:stack/[StackName]/[resourceId]</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the provisioning artifact, including how it differs from the previous provisioning artifact.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the provisioning artifact (for example, v1 v2beta). No spaces are allowed.<br/>
        :return: Status:  The status of the current request.<br/>Info:  Specify the template source with one of the following options, but not both. Keys accepted: [ <code>LoadTemplateFromURL</code>, <code>ImportFromPhysicalId</code> ]. The URL of the CloudFormation template in Amazon S3, in JSON format.   <code>LoadTemplateFromURL</code>  Use the URL of the CloudFormation template in Amazon S3 in JSON format.  <code>ImportFromPhysicalId</code>  Use the physical id of the resource that contains the template; currently supports CloudFormation stack ARN.<br/>ProvisioningArtifactDetail:  Information about the provisioning artifact.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Guidance</i> Information set by the administrator to provide guidance to end users about which provisioning artifacts to use.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Active</i> Indicates whether the product version is active.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTime</i> The UTC time stamp of the creation time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of provisioning artifact. <ul> <li>  <code>CLOUD_FORMATION_TEMPLATE</code> - AWS CloudFormation template </li> <li>  <code>MARKETPLACE_AMI</code> - AWS Marketplace AMI </li> <li>  <code>MARKETPLACE_CAR</code> - AWS Marketplace Clusters and AWS Resources </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the provisioning artifact.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the provisioning artifact.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The identifier of the provisioning artifact.<br/>        """
        pass

    def create_service_action(self, IdempotencyToken: str, Definition: ServiceActionDefinitionMap, DefinitionType: str, Name: str, Description: str=None, AcceptLanguage: str=None) -> CreateServiceActionOutput:
        r"""Creates a self-service action.

        :param self:
        :param IdempotencyToken:  A unique identifier that you provide to ensure idempotency. If multiple requests differ only by the idempotency token, the same response is returned for each repeated request.<br/>AcceptLanguage:  The language code. <ul> <li>  <code>en</code> - English (default) </li> <li>  <code>jp</code> - Japanese </li> <li>  <code>zh</code> - Chinese </li> </ul><br/>Description:  The self-service action description.<br/>Definition:  The self-service action definition. Can be one of the following: <dl> <dt>Name</dt> <dd> The name of the AWS Systems Manager document (SSM document). For example, <code>AWS-RestartEC2Instance</code>. If you are using a shared SSM document, you must provide the ARN instead of the name. </dd> <dt>Version</dt> <dd> The AWS Systems Manager automation document version. For example, <code>"Version": "1"</code>  </dd> <dt>AssumeRole</dt> <dd> The Amazon Resource Name (ARN) of the role that performs the self-service actions on your behalf. For example, <code>"AssumeRole": "arn:aws:iam::12345678910:role/ActionRole"</code>. To reuse the provisioned product launch role, set to <code>"AssumeRole": "LAUNCH_ROLE"</code>. </dd> <dt>Parameters</dt> <dd> The list of parameters in JSON format. For example: <code>[{\"Name\":\"InstanceId\",\"Type\":\"TARGET\"}]</code> or <code>[{\"Name\":\"InstanceId\",\"Type\":\"TEXT_VALUE\"}]</code>. </dd> </dl><br/>DefinitionType:  The service action definition type. For example, <code>SSM_AUTOMATION</code>.<br/>Name:  The self-service action name.<br/>
        :return: ServiceActionDetail:  An object containing information about the self-service action.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Definition</i> A map that defines the self-service action.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceActionSummary</i> Summary information about the self-service action.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ServiceActionSummary</b>: Summary information about the self-service action.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DefinitionType</i> The self-service action definition type. For example, <code>SSM_AUTOMATION</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The self-service action description.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The self-service action name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The self-service action identifier.<br/>        """
        pass

    def create_tag_option(self, Value: str, Key: str) -> CreateTagOptionOutput:
        r"""Creates a TagOption.

        :param self:
        :param Value:  The TagOption value.<br/>Key:  The TagOption key.<br/>
        :return: TagOptionDetail:  Information about the TagOption.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Owner</i> The AWS account Id of the owner account that created the TagOption.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The TagOption identifier.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Active</i> The TagOption active state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Value</i> The TagOption value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The TagOption key.<br/>        """
        pass

    def delete_constraint(self, Id: str, AcceptLanguage: str=None) -> DeleteConstraintOutput:
        r"""Deletes the specified constraint. A delegated admin is authorized to invoke this command.

        :param self:
        :param Id:  The identifier of the constraint.<br/>AcceptLanguage:  The language code. <ul> <li>  <code>en</code> - English (default) </li> <li>  <code>jp</code> - Japanese </li> <li>  <code>zh</code> - Chinese </li> </ul><br/>
        :return:         """
        pass

    def delete_portfolio(self, Id: str, AcceptLanguage: str=None) -> DeletePortfolioOutput:
        r"""Deletes the specified portfolio. You cannot delete a portfolio if it was shared with you or if it has associated products, users, constraints, or shared accounts. A delegated admin is authorized to invoke this command.

        :param self:
        :param Id:  The portfolio identifier.<br/>AcceptLanguage:  The language code. <ul> <li>  <code>en</code> - English (default) </li> <li>  <code>jp</code> - Japanese </li> <li>  <code>zh</code> - Chinese </li> </ul><br/>
        :return:         """
        pass

    def delete_portfolio_share(self, PortfolioId: str, AcceptLanguage: str=None, AccountId: str=None, OrganizationNode: OrganizationNode=None) -> DeletePortfolioShareOutput:
        r"""Stops sharing the specified portfolio with the specified account or organization node. Shares to an organization node can only be deleted by the management account of an organization or by a delegated administrator. Note that if a delegated admin is de-registered, portfolio shares created from that account are removed.

        :param self:
        :param OrganizationNode:  The organization node to whom you are going to stop sharing.:<br/>AccountId:  The AWS account ID.<br/>PortfolioId:  The portfolio identifier.<br/>AcceptLanguage:  The language code. <ul> <li>  <code>en</code> - English (default) </li> <li>  <code>jp</code> - Japanese </li> <li>  <code>zh</code> - Chinese </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Value</i> The identifier of the organization node.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The organization node type.<br/>
        :return: PortfolioShareToken:  The portfolio share unique identifier. This will only be returned if delete is made to an organization node.<br/>        """
        pass

    def delete_product(self, Id: str, AcceptLanguage: str=None) -> DeleteProductOutput:
        r"""Deletes the specified product. You cannot delete a product if it was shared with you or is associated with a portfolio. A delegated admin is authorized to invoke this command.

        :param self:
        :param Id:  The product identifier.<br/>AcceptLanguage:  The language code. <ul> <li>  <code>en</code> - English (default) </li> <li>  <code>jp</code> - Japanese </li> <li>  <code>zh</code> - Chinese </li> </ul><br/>
        :return:         """
        pass

    def delete_provisioned_product_plan(self, PlanId: str, AcceptLanguage: str=None, IgnoreErrors: IgnoreErrors=None) -> DeleteProvisionedProductPlanOutput:
        r"""Deletes the specified plan.

        :param self:
        :param IgnoreErrors:  If set to true, AWS Service Catalog stops managing the specified provisioned product even if it cannot delete the underlying resources.<br/>PlanId:  The plan identifier.<br/>AcceptLanguage:  The language code. <ul> <li>  <code>en</code> - English (default) </li> <li>  <code>jp</code> - Japanese </li> <li>  <code>zh</code> - Chinese </li> </ul><br/>
        :return:         """
        pass

    def delete_provisioning_artifact(self, ProvisioningArtifactId: str, ProductId: str, AcceptLanguage: str=None) -> DeleteProvisioningArtifactOutput:
        r"""Deletes the specified provisioning artifact (also known as a version) for the specified product. You cannot delete a provisioning artifact associated with a product that was shared with you. You cannot delete the last provisioning artifact for a product, because a product must have at least one provisioning artifact.

        :param self:
        :param ProvisioningArtifactId:  The identifier of the provisioning artifact.<br/>ProductId:  The product identifier.<br/>AcceptLanguage:  The language code. <ul> <li>  <code>en</code> - English (default) </li> <li>  <code>jp</code> - Japanese </li> <li>  <code>zh</code> - Chinese </li> </ul><br/>
        :return:         """
        pass

    def delete_service_action(self, Id: str, AcceptLanguage: str=None) -> DeleteServiceActionOutput:
        r"""Deletes a self-service action.

        :param self:
        :param AcceptLanguage:  The language code. <ul> <li>  <code>en</code> - English (default) </li> <li>  <code>jp</code> - Japanese </li> <li>  <code>zh</code> - Chinese </li> </ul><br/>Id:  The self-service action identifier. For example, <code>act-fs7abcd89wxyz</code>.<br/>
        :return:         """
        pass

    def delete_tag_option(self, Id: str) -> DeleteTagOptionOutput:
        r"""Deletes the specified TagOption. You cannot delete a TagOption if it is associated with a product or portfolio.

        :param self:
        :param Id:  The TagOption identifier.<br/>
        :return:         """
        pass

    def describe_constraint(self, Id: str, AcceptLanguage: str=None) -> DescribeConstraintOutput:
        r"""Gets information about the specified constraint.

        :param self:
        :param Id:  The identifier of the constraint.<br/>AcceptLanguage:  The language code. <ul> <li>  <code>en</code> - English (default) </li> <li>  <code>jp</code> - Japanese </li> <li>  <code>zh</code> - Chinese </li> </ul><br/>
        :return: Status:  The status of the current request.<br/>ConstraintParameters:  The constraint parameters.<br/>ConstraintDetail:  Information about the constraint.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PortfolioId</i> The identifier of the portfolio the product resides in. The constraint applies only to the instance of the product that lives within this portfolio.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProductId</i> The identifier of the product the constraint applies to. Note that a constraint applies to a specific instance of a product within a certain portfolio.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Owner</i> The owner of the constraint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the constraint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of constraint. <ul> <li>  <code>LAUNCH</code>  </li> <li>  <code>NOTIFICATION</code>  </li> <li> STACKSET </li> <li>  <code>TEMPLATE</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConstraintId</i> The identifier of the constraint.<br/>        """
        pass

    def describe_copy_product_status(self, CopyProductToken: str, AcceptLanguage: str=None) -> DescribeCopyProductStatusOutput:
        r"""Gets the status of the specified copy product operation.

        :param self:
        :param CopyProductToken:  The token for the copy product operation. This token is returned by <a>CopyProduct</a>.<br/>AcceptLanguage:  The language code. <ul> <li>  <code>en</code> - English (default) </li> <li>  <code>jp</code> - Japanese </li> <li>  <code>zh</code> - Chinese </li> </ul><br/>
        :return: StatusDetail:  The status message.<br/>TargetProductId:  The identifier of the copied product.<br/>CopyProductStatus:  The status of the copy product operation.<br/>        """
        pass

    def describe_portfolio(self, Id: str, AcceptLanguage: str=None) -> DescribePortfolioOutput:
        r"""Gets information about the specified portfolio. A delegated admin is authorized to invoke this command.

        :param self:
        :param Id:  The portfolio identifier.<br/>AcceptLanguage:  The language code. <ul> <li>  <code>en</code> - English (default) </li> <li>  <code>jp</code> - Japanese </li> <li>  <code>zh</code> - Chinese </li> </ul><br/>
        :return: Budgets:  Information about the associated budgets.<br/>TagOptions:  Information about the TagOptions associated with the portfolio.<br/>Tags:  Information about the tags associated with the portfolio.<br/>PortfolioDetail:  Information about the portfolio.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProviderName</i> The name of the portfolio provider.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTime</i> The UTC time stamp of the creation time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the portfolio.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DisplayName</i> The name to use for display purposes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ARN</i> The ARN assigned to the portfolio.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The portfolio identifier.<br/>        """
        pass

    def describe_portfolio_share_status(self, PortfolioShareToken: str) -> DescribePortfolioShareStatusOutput:
        r"""Gets the status of the specified portfolio share operation. This API can only be called by the management account in the organization or by a delegated admin.

        :param self:
        :param PortfolioShareToken:  The token for the portfolio share operation. This token is returned either by CreatePortfolioShare or by DeletePortfolioShare.<br/>
        :return: ShareDetails:  Information about the portfolio share operation.:<br/>Status:  Status of the portfolio share operation.<br/>OrganizationNodeValue:  Organization node identifier. It can be either account id, organizational unit id or organization id.<br/>PortfolioId:  The portfolio identifier.<br/>PortfolioShareToken:  The token for the portfolio share operation. For example, <code>share-6v24abcdefghi</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ShareErrors</i> List of errors.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SuccessfulShares</i> List of accounts for whom the operation succeeded.<br/>        """
        pass

    def describe_portfolio_shares(self, Type: str, PortfolioId: str, PageToken: str=None, PageSize: int=None) -> DescribePortfolioSharesOutput:
        r"""Returns a summary of each of the portfolio shares that were created for the specified portfolio. You can use this API to determine which accounts or organizational nodes this portfolio have been shared, whether the recipient entity has imported the share, and whether TagOptions are included with the share. The <code>PortfolioId</code> and <code>Type</code> parameters are both required.

        :param self:
        :param PageSize:  The maximum number of items to return with this call.<br/>PageToken:  The page token for the next set of results. To retrieve the first set of results, use null.<br/>Type:  The type of portfolio share to summarize. This field acts as a filter on the type of portfolio share, which can be one of the following: 1. <code>ACCOUNT</code> - Represents an external account to account share. 2. <code>ORGANIZATION</code> - Represents a share to an organization. This share is available to every account in the organization. 3. <code>ORGANIZATIONAL_UNIT</code> - Represents a share to an organizational unit. 4. <code>ORGANIZATION_MEMBER_ACCOUNT</code> - Represents a share to an account in the organization.<br/>PortfolioId:  The unique identifier of the portfolio for which shares will be retrieved.<br/>
        :return: PortfolioShareDetails:  Summaries about each of the portfolio shares.<br/>NextPageToken:  The page token to use to retrieve the next set of results. If there are no additional results, this value is null.<br/>        """
        pass

    def describe_product(self, AcceptLanguage: str=None, Id: str=None, Name: str=None) -> DescribeProductOutput:
        r"""Gets information about the specified product.

        :param self:
        :param Name:  The product name.<br/>Id:  The product identifier.<br/>AcceptLanguage:  The language code. <ul> <li>  <code>en</code> - English (default) </li> <li>  <code>jp</code> - Japanese </li> <li>  <code>zh</code> - Chinese </li> </ul><br/>
        :return: LaunchPaths:  Information about the associated launch paths.<br/>Budgets:  Information about the associated budgets.<br/>ProvisioningArtifacts:  Information about the provisioning artifacts for the specified product.<br/>ProductViewSummary:  Summary information about the product view.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SupportUrl</i> The URL information to obtain support for this Product.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SupportDescription</i> The description of the support for this Product.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SupportEmail</i> The email contact information to obtain support for this Product.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HasDefaultPath</i> Indicates whether the product has a default path. If the product does not have a default path, call <a>ListLaunchPaths</a> to disambiguate between paths. Otherwise, <a>ListLaunchPaths</a> is not required, and the output of <a>ProductViewSummary</a> can be used directly with <a>DescribeProvisioningParameters</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Distributor</i> The distributor of the product. Contact the product administrator for the significance of this value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The product type. Contact the product administrator for the significance of this value. If this value is <code>MARKETPLACE</code>, the product was created by AWS Marketplace.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ShortDescription</i> Short description of the product.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Owner</i> The owner of the product. Contact the product administrator for the significance of this value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the product.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProductId</i> The product identifier.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The product view identifier.<br/>        """
        pass

    def describe_product_as_admin(self, AcceptLanguage: str=None, Id: str=None, Name: str=None, SourcePortfolioId: str=None) -> DescribeProductAsAdminOutput:
        r"""Gets information about the specified product. This operation is run with administrator access.

        :param self:
        :param SourcePortfolioId:  The unique identifier of the shared portfolio that the specified product is associated with. You can provide this parameter to retrieve the shared TagOptions associated with the product. If this parameter is provided and if TagOptions sharing is enabled in the portfolio share, the API returns both local and shared TagOptions associated with the product. Otherwise only local TagOptions will be returned. <br/>Name:  The product name.<br/>Id:  The product identifier.<br/>AcceptLanguage:  The language code. <ul> <li>  <code>en</code> - English (default) </li> <li>  <code>jp</code> - Japanese </li> <li>  <code>zh</code> - Chinese </li> </ul><br/>
        :return: Budgets:  Information about the associated budgets.<br/>TagOptions:  Information about the TagOptions associated with the product.<br/>Tags:  Information about the tags associated with the product.<br/>ProvisioningArtifactSummaries:  Information about the provisioning artifacts (also known as versions) for the specified product.<br/>ProductViewDetail:  Information about the product view.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTime</i> The UTC time stamp of the creation time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProductARN</i> The ARN of the product.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the product. <ul> <li>  <code>AVAILABLE</code> - The product is ready for use. </li> <li>  <code>CREATING</code> - Product creation has started; the product is not ready for use. </li> <li>  <code>FAILED</code> - An action failed. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProductViewSummary</i> Summary information about the product view.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ProductViewSummary</b>: Summary information about the product view.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SupportUrl</i> The URL information to obtain support for this Product.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SupportDescription</i> The description of the support for this Product.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SupportEmail</i> The email contact information to obtain support for this Product.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HasDefaultPath</i> Indicates whether the product has a default path. If the product does not have a default path, call <a>ListLaunchPaths</a> to disambiguate between paths. Otherwise, <a>ListLaunchPaths</a> is not required, and the output of <a>ProductViewSummary</a> can be used directly with <a>DescribeProvisioningParameters</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Distributor</i> The distributor of the product. Contact the product administrator for the significance of this value.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The product type. Contact the product administrator for the significance of this value. If this value is <code>MARKETPLACE</code>, the product was created by AWS Marketplace.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ShortDescription</i> Short description of the product.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Owner</i> The owner of the product. Contact the product administrator for the significance of this value.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the product.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ProductId</i> The product identifier.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The product view identifier.<br/>        """
        pass

    def describe_product_view(self, Id: str, AcceptLanguage: str=None) -> DescribeProductViewOutput:
        r"""Gets information about the specified product.

        :param self:
        :param Id:  The product view identifier.<br/>AcceptLanguage:  The language code. <ul> <li>  <code>en</code> - English (default) </li> <li>  <code>jp</code> - Japanese </li> <li>  <code>zh</code> - Chinese </li> </ul><br/>
        :return: ProvisioningArtifacts:  Information about the provisioning artifacts for the product.<br/>ProductViewSummary:  Summary information about the product.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SupportUrl</i> The URL information to obtain support for this Product.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SupportDescription</i> The description of the support for this Product.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SupportEmail</i> The email contact information to obtain support for this Product.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HasDefaultPath</i> Indicates whether the product has a default path. If the product does not have a default path, call <a>ListLaunchPaths</a> to disambiguate between paths. Otherwise, <a>ListLaunchPaths</a> is not required, and the output of <a>ProductViewSummary</a> can be used directly with <a>DescribeProvisioningParameters</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Distributor</i> The distributor of the product. Contact the product administrator for the significance of this value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The product type. Contact the product administrator for the significance of this value. If this value is <code>MARKETPLACE</code>, the product was created by AWS Marketplace.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ShortDescription</i> Short description of the product.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Owner</i> The owner of the product. Contact the product administrator for the significance of this value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the product.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProductId</i> The product identifier.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The product view identifier.<br/>        """
        pass

    def describe_provisioned_product(self, AcceptLanguage: str=None, Id: str=None, Name: str=None) -> DescribeProvisionedProductOutput:
        r"""Gets information about the specified provisioned product.

        :param self:
        :param Name:  The name of the provisioned product. You must provide the name or ID, but not both. If you do not provide a name or ID, or you provide both name and ID, an <code>InvalidParametersException</code> will occur.<br/>Id:  The provisioned product identifier. You must provide the name or ID, but not both. If you do not provide a name or ID, or you provide both name and ID, an <code>InvalidParametersException</code> will occur.<br/>AcceptLanguage:  The language code. <ul> <li>  <code>en</code> - English (default) </li> <li>  <code>jp</code> - Japanese </li> <li>  <code>zh</code> - Chinese </li> </ul><br/>
        :return: CloudWatchDashboards:  Any CloudWatch dashboards that were created when provisioning the product.<br/>ProvisionedProductDetail:  Information about the provisioned product.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LaunchRoleArn</i> The ARN of the launch role associated with the provisioned product.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProvisioningArtifactId</i> The identifier of the provisioning artifact. For example, <code>pa-4abcdjnxjj6ne</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProductId</i> The product identifier. For example, <code>prod-abcdzk7xy33qa</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastSuccessfulProvisioningRecordId</i> The record identifier of the last successful request performed on this provisioned product of the following types: <ul> <li>  ProvisionedProduct  </li> <li>  UpdateProvisionedProduct  </li> <li>  ExecuteProvisionedProductPlan  </li> <li>  TerminateProvisionedProduct  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastProvisioningRecordId</i> The record identifier of the last request performed on this provisioned product of the following types: <ul> <li>  ProvisionedProduct  </li> <li>  UpdateProvisionedProduct  </li> <li>  ExecuteProvisionedProductPlan  </li> <li>  TerminateProvisionedProduct  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastRecordId</i> The record identifier of the last request performed on this provisioned product.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IdempotencyToken</i> A unique identifier that you provide to ensure idempotency. If multiple requests differ only by the idempotency token, the same response is returned for each repeated request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTime</i> The UTC time stamp of the creation time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusMessage</i> The current status message of the provisioned product.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The current status of the provisioned product. <ul> <li>  <code>AVAILABLE</code> - Stable state, ready to perform any operation. The most recent operation succeeded and completed. </li> <li>  <code>UNDER_CHANGE</code> - Transitive state. Operations performed might not have valid results. Wait for an <code>AVAILABLE</code> status before performing operations. </li> <li>  <code>TAINTED</code> - Stable state, ready to perform any operation. The stack has completed the requested operation but is not exactly what was requested. For example, a request to update to a new version failed and the stack rolled back to the current version. </li> <li>  <code>ERROR</code> - An unexpected error occurred. The provisioned product exists but the stack is not running. For example, CloudFormation received a parameter value that was not valid and could not launch the stack. </li> <li>  <code>PLAN_IN_PROGRESS</code> - Transitive state. The plan operations were performed to provision a new product, but resources have not yet been created. After reviewing the list of resources to be created, execute the plan. Wait for an <code>AVAILABLE</code> status before performing operations. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The identifier of the provisioned product.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of provisioned product. The supported values are <code>CFN_STACK</code> and <code>CFN_STACKSET</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The ARN of the provisioned product.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The user-friendly name of the provisioned product.<br/>        """
        pass

    def describe_provisioned_product_plan(self, PlanId: str, AcceptLanguage: str=None, PageSize: int=None, PageToken: str=None) -> DescribeProvisionedProductPlanOutput:
        r"""Gets information about the resource changes for the specified plan.

        :param self:
        :param PageToken:  The page token for the next set of results. To retrieve the first set of results, use null.<br/>PageSize:  The maximum number of items to return with this call.<br/>PlanId:  The plan identifier.<br/>AcceptLanguage:  The language code. <ul> <li>  <code>en</code> - English (default) </li> <li>  <code>jp</code> - Japanese </li> <li>  <code>zh</code> - Chinese </li> </ul><br/>
        :return: NextPageToken:  The page token to use to retrieve the next set of results. If there are no additional results, this value is null.<br/>ResourceChanges:  Information about the resource changes that will occur when the plan is executed.<br/>ProvisionedProductPlanDetails:  Information about the plan.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusMessage</i> The status message.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> One or more tags.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProvisioningParameters</i> Parameters specified by the administrator that are required for provisioning the product.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NotificationArns</i> Passed to CloudFormation. The SNS topic ARNs to which to publish stack-related events.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdatedTime</i> The time when the plan was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProvisioningArtifactId</i> The identifier of the provisioning artifact.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PlanType</i> The plan type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProvisionProductName</i> The user-friendly name of the provisioned product.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProvisionProductId</i> The product identifier.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PlanId</i> The plan identifier.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PlanName</i> The name of the plan.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProductId</i> The product identifier.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PathId</i> The path identifier of the product. This value is optional if the product has a default path, and required if the product has more than one path. To list the paths for a product, use <a>ListLaunchPaths</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTime</i> The UTC time stamp of the creation time.<br/>        """
        pass

    def describe_provisioning_artifact(self, AcceptLanguage: str=None, ProvisioningArtifactId: str=None, ProductId: str=None, ProvisioningArtifactName: str=None, ProductName: str=None, Verbose: Verbose=None) -> DescribeProvisioningArtifactOutput:
        r"""Gets information about the specified provisioning artifact (also known as a version) for the specified product.

        :param self:
        :param Verbose:  Indicates whether a verbose level of detail is enabled.<br/>ProductName:  The product name.<br/>ProvisioningArtifactName:  The provisioning artifact name.<br/>ProductId:  The product identifier.<br/>ProvisioningArtifactId:  The identifier of the provisioning artifact.<br/>AcceptLanguage:  The language code. <ul> <li>  <code>en</code> - English (default) </li> <li>  <code>jp</code> - Japanese </li> <li>  <code>zh</code> - Chinese </li> </ul><br/>
        :return: Status:  The status of the current request.<br/>Info:  The URL of the CloudFormation template in Amazon S3.<br/>ProvisioningArtifactDetail:  Information about the provisioning artifact.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Guidance</i> Information set by the administrator to provide guidance to end users about which provisioning artifacts to use.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Active</i> Indicates whether the product version is active.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTime</i> The UTC time stamp of the creation time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of provisioning artifact. <ul> <li>  <code>CLOUD_FORMATION_TEMPLATE</code> - AWS CloudFormation template </li> <li>  <code>MARKETPLACE_AMI</code> - AWS Marketplace AMI </li> <li>  <code>MARKETPLACE_CAR</code> - AWS Marketplace Clusters and AWS Resources </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the provisioning artifact.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the provisioning artifact.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The identifier of the provisioning artifact.<br/>        """
        pass

    def describe_provisioning_parameters(self, AcceptLanguage: str=None, ProductId: str=None, ProductName: str=None, ProvisioningArtifactId: str=None, ProvisioningArtifactName: str=None, PathId: str=None, PathName: str=None) -> DescribeProvisioningParametersOutput:
        r"""Gets information about the configuration required to provision the specified product using the specified provisioning artifact. If the output contains a TagOption key with an empty list of values, there is a TagOption conflict for that key. The end user cannot take action to fix the conflict, and launch is not blocked. In subsequent calls to <a>ProvisionProduct</a>, do not include conflicted TagOption keys as tags, or this causes the error "Parameter validation failed: Missing required parameter in Tags[<i>N</i>]:<i>Value</i>". Tag the provisioned product with the value <code>sc-tagoption-conflict-portfolioId-productId</code>.

        :param self:
        :param PathName:  The name of the path. You must provide the name or ID, but not both.<br/>PathId:  The path identifier of the product. This value is optional if the product has a default path, and required if the product has more than one path. To list the paths for a product, use <a>ListLaunchPaths</a>. You must provide the name or ID, but not both.<br/>ProvisioningArtifactName:  The name of the provisioning artifact. You must provide the name or ID, but not both.<br/>ProvisioningArtifactId:  The identifier of the provisioning artifact. You must provide the name or ID, but not both.<br/>ProductName:  The name of the product. You must provide the name or ID, but not both.<br/>ProductId:  The product identifier. You must provide the product name or ID, but not both.<br/>AcceptLanguage:  The language code. <ul> <li>  <code>en</code> - English (default) </li> <li>  <code>jp</code> - Japanese </li> <li>  <code>zh</code> - Chinese </li> </ul><br/>
        :return: ProvisioningArtifactOutputs:  The output of the provisioning artifact.<br/>ProvisioningArtifactPreferences:  An object that contains information about preferences, such as regions and accounts, for the provisioning artifact.:<br/>TagOptions:  Information about the TagOptions associated with the resource.<br/>UsageInstructions:  Any additional metadata specifically related to the provisioning of the product. For example, see the <code>Version</code> field of the CloudFormation template.<br/>ConstraintSummaries:  Information about the constraints used to provision the product.<br/>ProvisioningArtifactParameters:  Information about the parameters used to provision the product.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StackSetRegions</i> One or more AWS Regions where stack instances are deployed from the stack set. These regions can be scoped in <code>ProvisioningPreferences$StackSetRegions</code> and <code>UpdateProvisioningPreferences$StackSetRegions</code>. Applicable only to a <code>CFN_STACKSET</code> provisioned product type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StackSetAccounts</i> One or more AWS accounts where stack instances are deployed from the stack set. These accounts can be scoped in <code>ProvisioningPreferences$StackSetAccounts</code> and <code>UpdateProvisioningPreferences$StackSetAccounts</code>. Applicable only to a <code>CFN_STACKSET</code> provisioned product type.<br/>        """
        pass

    def describe_record(self, Id: str, AcceptLanguage: str=None, PageToken: str=None, PageSize: int=None) -> DescribeRecordOutput:
        r"""Gets information about the specified request operation. Use this operation after calling a request operation (for example, <a>ProvisionProduct</a>, <a>TerminateProvisionedProduct</a>, or <a>UpdateProvisionedProduct</a>).  <note> If a provisioned product was transferred to a new owner using <a>UpdateProvisionedProductProperties</a>, the new owner will be able to describe all past records for that product. The previous owner will no longer be able to describe the records, but will be able to use <a>ListRecordHistory</a> to see the product's history from when he was the owner. </note>

        :param self:
        :param PageSize:  The maximum number of items to return with this call.<br/>PageToken:  The page token for the next set of results. To retrieve the first set of results, use null.<br/>Id:  The record identifier of the provisioned product. This identifier is returned by the request operation.<br/>AcceptLanguage:  The language code. <ul> <li>  <code>en</code> - English (default) </li> <li>  <code>jp</code> - Japanese </li> <li>  <code>zh</code> - Chinese </li> </ul><br/>
        :return: NextPageToken:  The page token to use to retrieve the next set of results. If there are no additional results, this value is null.<br/>RecordOutputs:  Information about the product created as the result of a request. For example, the output for a CloudFormation-backed product that creates an S3 bucket would include the S3 bucket URL.<br/>RecordDetail:  Information about the product.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LaunchRoleArn</i> The ARN of the launch role associated with the provisioned product.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecordTags</i> One or more tags.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecordErrors</i> The errors that occurred.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PathId</i> The path identifier.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProvisioningArtifactId</i> The identifier of the provisioning artifact.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProductId</i> The product identifier.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProvisionedProductId</i> The identifier of the provisioned product.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecordType</i> The record type. <ul> <li>  <code>PROVISION_PRODUCT</code>  </li> <li>  <code>UPDATE_PROVISIONED_PRODUCT</code>  </li> <li>  <code>TERMINATE_PROVISIONED_PRODUCT</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProvisionedProductType</i> The type of provisioned product. The supported values are <code>CFN_STACK</code> and <code>CFN_STACKSET</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdatedTime</i> The time when the record was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTime</i> The UTC time stamp of the creation time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the provisioned product. <ul> <li>  <code>CREATED</code> - The request was created but the operation has not started. </li> <li>  <code>IN_PROGRESS</code> - The requested operation is in progress. </li> <li>  <code>IN_PROGRESS_IN_ERROR</code> - The provisioned product is under change but the requested operation failed and some remediation is occurring. For example, a rollback. </li> <li>  <code>SUCCEEDED</code> - The requested operation has successfully completed. </li> <li>  <code>FAILED</code> - The requested operation has unsuccessfully completed. Investigate using the error messages returned. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProvisionedProductName</i> The user-friendly name of the provisioned product.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecordId</i> The identifier of the record.<br/>        """
        pass

    def describe_service_action(self, Id: str, AcceptLanguage: str=None) -> DescribeServiceActionOutput:
        r"""Describes a self-service action.

        :param self:
        :param AcceptLanguage:  The language code. <ul> <li>  <code>en</code> - English (default) </li> <li>  <code>jp</code> - Japanese </li> <li>  <code>zh</code> - Chinese </li> </ul><br/>Id:  The self-service action identifier.<br/>
        :return: ServiceActionDetail:  Detailed information about the self-service action.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Definition</i> A map that defines the self-service action.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceActionSummary</i> Summary information about the self-service action.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ServiceActionSummary</b>: Summary information about the self-service action.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DefinitionType</i> The self-service action definition type. For example, <code>SSM_AUTOMATION</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The self-service action description.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The self-service action name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The self-service action identifier.<br/>        """
        pass

    def describe_service_action_execution_parameters(self, ServiceActionId: str, ProvisionedProductId: str, AcceptLanguage: str=None) -> DescribeServiceActionExecutionParametersOutput:
        r"""Finds the default parameters for a specific self-service action on a specific provisioned product and returns a map of the results to the user.

        :param self:
        :param AcceptLanguage:  The language code. <ul> <li>  <code>en</code> - English (default) </li> <li>  <code>jp</code> - Japanese </li> <li>  <code>zh</code> - Chinese </li> </ul><br/>ServiceActionId:  The self-service action identifier.<br/>ProvisionedProductId:  The identifier of the provisioned product.<br/>
        :return: ServiceActionParameters:  The parameters of the self-service action.<br/>        """
        pass

    def describe_tag_option(self, Id: str) -> DescribeTagOptionOutput:
        r"""Gets information about the specified TagOption.

        :param self:
        :param Id:  The TagOption identifier.<br/>
        :return: TagOptionDetail:  Information about the TagOption.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Owner</i> The AWS account Id of the owner account that created the TagOption.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The TagOption identifier.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Active</i> The TagOption active state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Value</i> The TagOption value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The TagOption key.<br/>        """
        pass

    def disable_aws_organizations_access(self) -> DisableAWSOrganizationsAccessOutput:
        r"""Disable portfolio sharing through AWS Organizations feature. This feature will not delete your current shares but it will prevent you from creating new shares throughout your organization. Current shares will not be in sync with your organization structure if it changes after calling this API. This API can only be called by the management account in the organization. This API can't be invoked if there are active delegated administrators in the organization. Note that a delegated administrator is not authorized to invoke <code>DisableAWSOrganizationsAccess</code>.

        :param self:
        :param 
        :return:         """
        pass

    def disassociate_budget_from_resource(self, ResourceId: str, BudgetName: str) -> DisassociateBudgetFromResourceOutput:
        r"""Disassociates the specified budget from the specified resource.

        :param self:
        :param ResourceId:  The resource identifier you want to disassociate from. Either a portfolio-id or a product-id.<br/>BudgetName:  The name of the budget you want to disassociate.<br/>
        :return:         """
        pass

    def disassociate_principal_from_portfolio(self, PrincipalARN: str, PortfolioId: str, AcceptLanguage: str=None) -> DisassociatePrincipalFromPortfolioOutput:
        r"""Disassociates a previously associated principal ARN from a specified portfolio.

        :param self:
        :param PrincipalARN:  The ARN of the principal (IAM user, role, or group).<br/>PortfolioId:  The portfolio identifier.<br/>AcceptLanguage:  The language code. <ul> <li>  <code>en</code> - English (default) </li> <li>  <code>jp</code> - Japanese </li> <li>  <code>zh</code> - Chinese </li> </ul><br/>
        :return:         """
        pass

    def disassociate_product_from_portfolio(self, PortfolioId: str, ProductId: str, AcceptLanguage: str=None) -> DisassociateProductFromPortfolioOutput:
        r"""Disassociates the specified product from the specified portfolio.  A delegated admin is authorized to invoke this command.

        :param self:
        :param PortfolioId:  The portfolio identifier.<br/>ProductId:  The product identifier.<br/>AcceptLanguage:  The language code. <ul> <li>  <code>en</code> - English (default) </li> <li>  <code>jp</code> - Japanese </li> <li>  <code>zh</code> - Chinese </li> </ul><br/>
        :return:         """
        pass

    def disassociate_service_action_from_provisioning_artifact(self, ServiceActionId: str, ProvisioningArtifactId: str, ProductId: str, AcceptLanguage: str=None) -> DisassociateServiceActionFromProvisioningArtifactOutput:
        r"""Disassociates the specified self-service action association from the specified provisioning artifact.

        :param self:
        :param AcceptLanguage:  The language code. <ul> <li>  <code>en</code> - English (default) </li> <li>  <code>jp</code> - Japanese </li> <li>  <code>zh</code> - Chinese </li> </ul><br/>ServiceActionId:  The self-service action identifier. For example, <code>act-fs7abcd89wxyz</code>.<br/>ProvisioningArtifactId:  The identifier of the provisioning artifact. For example, <code>pa-4abcdjnxjj6ne</code>.<br/>ProductId:  The product identifier. For example, <code>prod-abcdzk7xy33qa</code>.<br/>
        :return:         """
        pass

    def disassociate_tag_option_from_resource(self, TagOptionId: str, ResourceId: str) -> DisassociateTagOptionFromResourceOutput:
        r"""Disassociates the specified TagOption from the specified resource.

        :param self:
        :param TagOptionId:  The TagOption identifier.<br/>ResourceId:  The resource identifier.<br/>
        :return:         """
        pass

    def enable_aws_organizations_access(self) -> EnableAWSOrganizationsAccessOutput:
        r"""Enable portfolio sharing feature through AWS Organizations. This API will allow Service Catalog to receive updates on your organization in order to sync your shares with the current structure. This API can only be called by the management account in the organization. By calling this API Service Catalog will make a call to organizations:EnableAWSServiceAccess on your behalf so that your shares can be in sync with any changes in your AWS Organizations structure. Note that a delegated administrator is not authorized to invoke <code>EnableAWSOrganizationsAccess</code>.

        :param self:
        :param 
        :return:         """
        pass

    def execute_provisioned_product_plan(self, IdempotencyToken: str, PlanId: str, AcceptLanguage: str=None) -> ExecuteProvisionedProductPlanOutput:
        r"""Provisions or modifies a product based on the resource changes for the specified plan.

        :param self:
        :param IdempotencyToken:  A unique identifier that you provide to ensure idempotency. If multiple requests differ only by the idempotency token, the same response is returned for each repeated request.<br/>PlanId:  The plan identifier.<br/>AcceptLanguage:  The language code. <ul> <li>  <code>en</code> - English (default) </li> <li>  <code>jp</code> - Japanese </li> <li>  <code>zh</code> - Chinese </li> </ul><br/>
        :return: RecordDetail:  Information about the result of provisioning the product.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LaunchRoleArn</i> The ARN of the launch role associated with the provisioned product.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecordTags</i> One or more tags.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecordErrors</i> The errors that occurred.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PathId</i> The path identifier.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProvisioningArtifactId</i> The identifier of the provisioning artifact.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProductId</i> The product identifier.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProvisionedProductId</i> The identifier of the provisioned product.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecordType</i> The record type. <ul> <li>  <code>PROVISION_PRODUCT</code>  </li> <li>  <code>UPDATE_PROVISIONED_PRODUCT</code>  </li> <li>  <code>TERMINATE_PROVISIONED_PRODUCT</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProvisionedProductType</i> The type of provisioned product. The supported values are <code>CFN_STACK</code> and <code>CFN_STACKSET</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdatedTime</i> The time when the record was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTime</i> The UTC time stamp of the creation time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the provisioned product. <ul> <li>  <code>CREATED</code> - The request was created but the operation has not started. </li> <li>  <code>IN_PROGRESS</code> - The requested operation is in progress. </li> <li>  <code>IN_PROGRESS_IN_ERROR</code> - The provisioned product is under change but the requested operation failed and some remediation is occurring. For example, a rollback. </li> <li>  <code>SUCCEEDED</code> - The requested operation has successfully completed. </li> <li>  <code>FAILED</code> - The requested operation has unsuccessfully completed. Investigate using the error messages returned. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProvisionedProductName</i> The user-friendly name of the provisioned product.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecordId</i> The identifier of the record.<br/>        """
        pass

    def execute_provisioned_product_service_action(self, ExecuteToken: str, ServiceActionId: str, ProvisionedProductId: str, AcceptLanguage: str=None, Parameters: ExecutionParameterMap=None) -> ExecuteProvisionedProductServiceActionOutput:
        r"""Executes a self-service action against a provisioned product.

        :param self:
        :param Parameters:  A map of all self-service action parameters and their values. If a provided parameter is of a special type, such as <code>TARGET</code>, the provided value will override the default value generated by AWS Service Catalog. If the parameters field is not provided, no additional parameters are passed and default values will be used for any special parameters such as <code>TARGET</code>.<br/>AcceptLanguage:  The language code. <ul> <li>  <code>en</code> - English (default) </li> <li>  <code>jp</code> - Japanese </li> <li>  <code>zh</code> - Chinese </li> </ul><br/>ExecuteToken:  An idempotency token that uniquely identifies the execute request.<br/>ServiceActionId:  The self-service action identifier. For example, <code>act-fs7abcd89wxyz</code>.<br/>ProvisionedProductId:  The identifier of the provisioned product.<br/>
        :return: RecordDetail:  An object containing detailed information about the result of provisioning the product.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LaunchRoleArn</i> The ARN of the launch role associated with the provisioned product.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecordTags</i> One or more tags.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecordErrors</i> The errors that occurred.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PathId</i> The path identifier.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProvisioningArtifactId</i> The identifier of the provisioning artifact.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProductId</i> The product identifier.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProvisionedProductId</i> The identifier of the provisioned product.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecordType</i> The record type. <ul> <li>  <code>PROVISION_PRODUCT</code>  </li> <li>  <code>UPDATE_PROVISIONED_PRODUCT</code>  </li> <li>  <code>TERMINATE_PROVISIONED_PRODUCT</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProvisionedProductType</i> The type of provisioned product. The supported values are <code>CFN_STACK</code> and <code>CFN_STACKSET</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdatedTime</i> The time when the record was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTime</i> The UTC time stamp of the creation time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the provisioned product. <ul> <li>  <code>CREATED</code> - The request was created but the operation has not started. </li> <li>  <code>IN_PROGRESS</code> - The requested operation is in progress. </li> <li>  <code>IN_PROGRESS_IN_ERROR</code> - The provisioned product is under change but the requested operation failed and some remediation is occurring. For example, a rollback. </li> <li>  <code>SUCCEEDED</code> - The requested operation has successfully completed. </li> <li>  <code>FAILED</code> - The requested operation has unsuccessfully completed. Investigate using the error messages returned. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProvisionedProductName</i> The user-friendly name of the provisioned product.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecordId</i> The identifier of the record.<br/>        """
        pass

    def get_aws_organizations_access_status(self) -> GetAWSOrganizationsAccessStatusOutput:
        r"""Get the Access Status for AWS Organization portfolio share feature. This API can only be called by the management account in the organization or by a delegated admin.

        :param self:
        :param 
        :return: AccessStatus:  The status of the portfolio share feature.<br/>        """
        pass

    def get_provisioned_product_outputs(self, AcceptLanguage: str=None, ProvisionedProductId: str=None, ProvisionedProductName: str=None, OutputKeys: List[OutputKey]=None, PageSize: int=None, PageToken: str=None) -> GetProvisionedProductOutputsOutput:
        r"""This API takes either a <code>ProvisonedProductId</code> or a <code>ProvisionedProductName</code>, along with a list of one or more output keys, and responds with the key/value pairs of those outputs.

        :param self:
        :param PageToken:  The page token for the next set of results. To retrieve the first set of results, use null.<br/>PageSize:  The maximum number of items to return with this call.<br/>OutputKeys:  The list of keys that the API should return with their values. If none are provided, the API will return all outputs of the provisioned product.<br/>ProvisionedProductName:  The name of the provisioned product that you want the outputs from.<br/>ProvisionedProductId:  The identifier of the provisioned product that you want the outputs from.<br/>AcceptLanguage:  The language code. <ul> <li>  <code>en</code> - English (default) </li> <li>  <code>jp</code> - Japanese </li> <li>  <code>zh</code> - Chinese </li> </ul><br/>
        :return: NextPageToken:  The page token to use to retrieve the next set of results. If there are no additional results, this value is null.<br/>Outputs:  Information about the product created as the result of a request. For example, the output for a CloudFormation-backed product that creates an S3 bucket would include the S3 bucket URL. <br/>        """
        pass

    def import_as_provisioned_product(self, IdempotencyToken: str, PhysicalId: str, ProvisionedProductName: str, ProvisioningArtifactId: str, ProductId: str, AcceptLanguage: str=None) -> ImportAsProvisionedProductOutput:
        r"""Requests the import of a resource as a Service Catalog provisioned product that is associated to a Service Catalog product and provisioning artifact. Once imported, all supported Service Catalog governance actions are supported on the provisioned product. Resource import only supports CloudFormation stack ARNs. CloudFormation StackSets and non-root nested stacks are not supported. The CloudFormation stack must have one of the following statuses to be imported: <code>CREATE_COMPLETE</code>, <code>UPDATE_COMPLETE</code>, <code>UPDATE_ROLLBACK_COMPLETE</code>, <code>IMPORT_COMPLETE</code>, <code>IMPORT_ROLLBACK_COMPLETE</code>. Import of the resource requires that the CloudFormation stack template matches the associated Service Catalog product provisioning artifact.  The user or role that performs this operation must have the <code>cloudformation:GetTemplate</code> and <code>cloudformation:DescribeStacks</code> IAM policy permissions. 

        :param self:
        :param IdempotencyToken:  A unique identifier that you provide to ensure idempotency. If multiple requests differ only by the idempotency token, the same response is returned for each repeated request.<br/>PhysicalId:  The unique identifier of the resource to be imported. It only currently supports CloudFormation stack IDs.<br/>ProvisionedProductName:  The user-friendly name of the provisioned product. The value must be unique for the AWS account. The name cannot be updated after the product is provisioned. <br/>ProvisioningArtifactId:  The identifier of the provisioning artifact.<br/>ProductId:  The product identifier.<br/>AcceptLanguage:  The language code. <ul> <li>  <code>en</code> - English (default) </li> <li>  <code>jp</code> - Japanese </li> <li>  <code>zh</code> - Chinese </li> </ul><br/>
        :return: RecordDetail:  Information about a request operation.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LaunchRoleArn</i> The ARN of the launch role associated with the provisioned product.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecordTags</i> One or more tags.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecordErrors</i> The errors that occurred.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PathId</i> The path identifier.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProvisioningArtifactId</i> The identifier of the provisioning artifact.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProductId</i> The product identifier.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProvisionedProductId</i> The identifier of the provisioned product.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecordType</i> The record type. <ul> <li>  <code>PROVISION_PRODUCT</code>  </li> <li>  <code>UPDATE_PROVISIONED_PRODUCT</code>  </li> <li>  <code>TERMINATE_PROVISIONED_PRODUCT</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProvisionedProductType</i> The type of provisioned product. The supported values are <code>CFN_STACK</code> and <code>CFN_STACKSET</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdatedTime</i> The time when the record was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTime</i> The UTC time stamp of the creation time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the provisioned product. <ul> <li>  <code>CREATED</code> - The request was created but the operation has not started. </li> <li>  <code>IN_PROGRESS</code> - The requested operation is in progress. </li> <li>  <code>IN_PROGRESS_IN_ERROR</code> - The provisioned product is under change but the requested operation failed and some remediation is occurring. For example, a rollback. </li> <li>  <code>SUCCEEDED</code> - The requested operation has successfully completed. </li> <li>  <code>FAILED</code> - The requested operation has unsuccessfully completed. Investigate using the error messages returned. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProvisionedProductName</i> The user-friendly name of the provisioned product.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecordId</i> The identifier of the record.<br/>        """
        pass

    def list_accepted_portfolio_shares(self, AcceptLanguage: str=None, PageToken: str=None, PageSize: int=None, PortfolioShareType: str=None) -> ListAcceptedPortfolioSharesOutput:
        r"""Lists all portfolios for which sharing was accepted by this account.

        :param self:
        :param PortfolioShareType:  The type of shared portfolios to list. The default is to list imported portfolios. <ul> <li>  <code>AWS_ORGANIZATIONS</code> - List portfolios shared by the management account of your organization </li> <li>  <code>AWS_SERVICECATALOG</code> - List default portfolios </li> <li>  <code>IMPORTED</code> - List imported portfolios </li> </ul><br/>PageSize:  The maximum number of items to return with this call.<br/>PageToken:  The page token for the next set of results. To retrieve the first set of results, use null.<br/>AcceptLanguage:  The language code. <ul> <li>  <code>en</code> - English (default) </li> <li>  <code>jp</code> - Japanese </li> <li>  <code>zh</code> - Chinese </li> </ul><br/>
        :return: NextPageToken:  The page token to use to retrieve the next set of results. If there are no additional results, this value is null.<br/>PortfolioDetails:  Information about the portfolios.<br/>        """
        pass

    def list_budgets_for_resource(self, ResourceId: str, AcceptLanguage: str=None, PageSize: int=None, PageToken: str=None) -> ListBudgetsForResourceOutput:
        r"""Lists all the budgets associated to the specified resource.

        :param self:
        :param PageToken:  The page token for the next set of results. To retrieve the first set of results, use null.<br/>PageSize:  The maximum number of items to return with this call.<br/>ResourceId:  The resource identifier.<br/>AcceptLanguage:  The language code. <ul> <li>  <code>en</code> - English (default) </li> <li>  <code>jp</code> - Japanese </li> <li>  <code>zh</code> - Chinese </li> </ul><br/>
        :return: NextPageToken:  The page token to use to retrieve the next set of results. If there are no additional results, this value is null.<br/>Budgets:  Information about the associated budgets.<br/>        """
        pass

    def list_constraints_for_portfolio(self, PortfolioId: str, AcceptLanguage: str=None, ProductId: str=None, PageSize: int=None, PageToken: str=None) -> ListConstraintsForPortfolioOutput:
        r"""Lists the constraints for the specified portfolio and product.

        :param self:
        :param PageToken:  The page token for the next set of results. To retrieve the first set of results, use null.<br/>PageSize:  The maximum number of items to return with this call.<br/>ProductId:  The product identifier.<br/>PortfolioId:  The portfolio identifier.<br/>AcceptLanguage:  The language code. <ul> <li>  <code>en</code> - English (default) </li> <li>  <code>jp</code> - Japanese </li> <li>  <code>zh</code> - Chinese </li> </ul><br/>
        :return: NextPageToken:  The page token to use to retrieve the next set of results. If there are no additional results, this value is null.<br/>ConstraintDetails:  Information about the constraints.<br/>        """
        pass

    def list_launch_paths(self, ProductId: str, AcceptLanguage: str=None, PageSize: int=None, PageToken: str=None) -> ListLaunchPathsOutput:
        r"""Lists the paths to the specified product. A path is how the user has access to a specified product, and is necessary when provisioning a product. A path also determines the constraints put on the product.

        :param self:
        :param PageToken:  The page token for the next set of results. To retrieve the first set of results, use null.<br/>PageSize:  The maximum number of items to return with this call.<br/>ProductId:  The product identifier.<br/>AcceptLanguage:  The language code. <ul> <li>  <code>en</code> - English (default) </li> <li>  <code>jp</code> - Japanese </li> <li>  <code>zh</code> - Chinese </li> </ul><br/>
        :return: NextPageToken:  The page token to use to retrieve the next set of results. If there are no additional results, this value is null.<br/>LaunchPathSummaries:  Information about the launch path.<br/>        """
        pass

    def list_organization_portfolio_access(self, OrganizationNodeType: str, PortfolioId: str, AcceptLanguage: str=None, PageToken: str=None, PageSize: int=None) -> ListOrganizationPortfolioAccessOutput:
        r"""Lists the organization nodes that have access to the specified portfolio. This API can only be called by the management account in the organization or by a delegated admin. If a delegated admin is de-registered, they can no longer perform this operation.

        :param self:
        :param PageSize:  The maximum number of items to return with this call.<br/>PageToken:  The page token for the next set of results. To retrieve the first set of results, use null.<br/>OrganizationNodeType:  The organization node type that will be returned in the output. <ul> <li>  <code>ORGANIZATION</code> - Organization that has access to the portfolio.  </li> <li>  <code>ORGANIZATIONAL_UNIT</code> - Organizational unit that has access to the portfolio within your organization. </li> <li>  <code>ACCOUNT</code> - Account that has access to the portfolio within your organization. </li> </ul><br/>PortfolioId:  The portfolio identifier. For example, <code>port-2abcdext3y5fk</code>.<br/>AcceptLanguage:  The language code. <ul> <li>  <code>en</code> - English (default) </li> <li>  <code>jp</code> - Japanese </li> <li>  <code>zh</code> - Chinese </li> </ul><br/>
        :return: NextPageToken:  The page token to use to retrieve the next set of results. If there are no additional results, this value is null.<br/>OrganizationNodes:  Displays information about the organization nodes.<br/>        """
        pass

    def list_portfolio_access(self, PortfolioId: str, AcceptLanguage: str=None, OrganizationParentId: str=None, PageToken: str=None, PageSize: int=None) -> ListPortfolioAccessOutput:
        r"""Lists the account IDs that have access to the specified portfolio. A delegated admin can list the accounts that have access to the shared portfolio. Note that if a delegated admin is de-registered, they can no longer perform this operation.

        :param self:
        :param PageSize:  The maximum number of items to return with this call.<br/>PageToken:  The page token for the next set of results. To retrieve the first set of results, use null.<br/>OrganizationParentId:  The ID of an organization node the portfolio is shared with. All children of this node with an inherited portfolio share will be returned.<br/>PortfolioId:  The portfolio identifier.<br/>AcceptLanguage:  The language code. <ul> <li>  <code>en</code> - English (default) </li> <li>  <code>jp</code> - Japanese </li> <li>  <code>zh</code> - Chinese </li> </ul><br/>
        :return: NextPageToken:  The page token to use to retrieve the next set of results. If there are no additional results, this value is null.<br/>AccountIds:  Information about the AWS accounts with access to the portfolio.<br/>        """
        pass

    def list_portfolios(self, AcceptLanguage: str=None, PageToken: str=None, PageSize: int=None) -> ListPortfoliosOutput:
        r"""Lists all portfolios in the catalog.

        :param self:
        :param PageSize:  The maximum number of items to return with this call.<br/>PageToken:  The page token for the next set of results. To retrieve the first set of results, use null.<br/>AcceptLanguage:  The language code. <ul> <li>  <code>en</code> - English (default) </li> <li>  <code>jp</code> - Japanese </li> <li>  <code>zh</code> - Chinese </li> </ul><br/>
        :return: NextPageToken:  The page token to use to retrieve the next set of results. If there are no additional results, this value is null.<br/>PortfolioDetails:  Information about the portfolios.<br/>        """
        pass

    def list_portfolios_for_product(self, ProductId: str, AcceptLanguage: str=None, PageToken: str=None, PageSize: int=None) -> ListPortfoliosForProductOutput:
        r"""Lists all portfolios that the specified product is associated with.

        :param self:
        :param PageSize:  The maximum number of items to return with this call.<br/>PageToken:  The page token for the next set of results. To retrieve the first set of results, use null.<br/>ProductId:  The product identifier.<br/>AcceptLanguage:  The language code. <ul> <li>  <code>en</code> - English (default) </li> <li>  <code>jp</code> - Japanese </li> <li>  <code>zh</code> - Chinese </li> </ul><br/>
        :return: NextPageToken:  The page token to use to retrieve the next set of results. If there are no additional results, this value is null.<br/>PortfolioDetails:  Information about the portfolios.<br/>        """
        pass

    def list_principals_for_portfolio(self, PortfolioId: str, AcceptLanguage: str=None, PageSize: int=None, PageToken: str=None) -> ListPrincipalsForPortfolioOutput:
        r"""Lists all principal ARNs associated with the specified portfolio.

        :param self:
        :param PageToken:  The page token for the next set of results. To retrieve the first set of results, use null.<br/>PageSize:  The maximum number of items to return with this call.<br/>PortfolioId:  The portfolio identifier.<br/>AcceptLanguage:  The language code. <ul> <li>  <code>en</code> - English (default) </li> <li>  <code>jp</code> - Japanese </li> <li>  <code>zh</code> - Chinese </li> </ul><br/>
        :return: NextPageToken:  The page token to use to retrieve the next set of results. If there are no additional results, this value is null.<br/>Principals:  The IAM principals (users or roles) associated with the portfolio.<br/>        """
        pass

    def list_provisioned_product_plans(self, AcceptLanguage: str=None, ProvisionProductId: str=None, PageSize: int=None, PageToken: str=None, AccessLevelFilter: AccessLevelFilter=None) -> ListProvisionedProductPlansOutput:
        r"""Lists the plans for the specified provisioned product or all plans to which the user has access.

        :param self:
        :param AccessLevelFilter:  The access level to use to obtain results. The default is <code>User</code>.:<br/>PageToken:  The page token for the next set of results. To retrieve the first set of results, use null.<br/>PageSize:  The maximum number of items to return with this call.<br/>ProvisionProductId:  The product identifier.<br/>AcceptLanguage:  The language code. <ul> <li>  <code>en</code> - English (default) </li> <li>  <code>jp</code> - Japanese </li> <li>  <code>zh</code> - Chinese </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Value</i> The user to which the access level applies. The only supported value is <code>Self</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The access level. <ul> <li>  <code>Account</code> - Filter results based on the account. </li> <li>  <code>Role</code> - Filter results based on the federated role of the specified user. </li> <li>  <code>User</code> - Filter results based on the specified user. </li> </ul><br/>
        :return: NextPageToken:  The page token to use to retrieve the next set of results. If there are no additional results, this value is null.<br/>ProvisionedProductPlans:  Information about the plans.<br/>        """
        pass

    def list_provisioning_artifacts(self, ProductId: str, AcceptLanguage: str=None) -> ListProvisioningArtifactsOutput:
        r"""Lists all provisioning artifacts (also known as versions) for the specified product.

        :param self:
        :param ProductId:  The product identifier.<br/>AcceptLanguage:  The language code. <ul> <li>  <code>en</code> - English (default) </li> <li>  <code>jp</code> - Japanese </li> <li>  <code>zh</code> - Chinese </li> </ul><br/>
        :return: NextPageToken:  The page token to use to retrieve the next set of results. If there are no additional results, this value is null.<br/>ProvisioningArtifactDetails:  Information about the provisioning artifacts.<br/>        """
        pass

    def list_provisioning_artifacts_for_service_action(self, ServiceActionId: str, PageSize: int=None, PageToken: str=None, AcceptLanguage: str=None) -> ListProvisioningArtifactsForServiceActionOutput:
        r"""Lists all provisioning artifacts (also known as versions) for the specified self-service action.

        :param self:
        :param AcceptLanguage:  The language code. <ul> <li>  <code>en</code> - English (default) </li> <li>  <code>jp</code> - Japanese </li> <li>  <code>zh</code> - Chinese </li> </ul><br/>PageToken:  The page token for the next set of results. To retrieve the first set of results, use null.<br/>PageSize:  The maximum number of items to return with this call.<br/>ServiceActionId:  The self-service action identifier. For example, <code>act-fs7abcd89wxyz</code>.<br/>
        :return: NextPageToken:  The page token to use to retrieve the next set of results. If there are no additional results, this value is null.<br/>ProvisioningArtifactViews:  An array of objects with information about product views and provisioning artifacts.<br/>        """
        pass

    def list_record_history(self, AcceptLanguage: str=None, AccessLevelFilter: AccessLevelFilter=None, SearchFilter: ListRecordHistorySearchFilter=None, PageSize: int=None, PageToken: str=None) -> ListRecordHistoryOutput:
        r"""Lists the specified requests or all performed requests.

        :param self:
        :param PageToken:  The page token for the next set of results. To retrieve the first set of results, use null.<br/>PageSize:  The maximum number of items to return with this call.<br/>SearchFilter:  The search filter to scope the results.:<br/>AccessLevelFilter:  The access level to use to obtain results. The default is <code>User</code>.:<br/>AcceptLanguage:  The language code. <ul> <li>  <code>en</code> - English (default) </li> <li>  <code>jp</code> - Japanese </li> <li>  <code>zh</code> - Chinese </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Value</i> The user to which the access level applies. The only supported value is <code>Self</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The access level. <ul> <li>  <code>Account</code> - Filter results based on the account. </li> <li>  <code>Role</code> - Filter results based on the federated role of the specified user. </li> <li>  <code>User</code> - Filter results based on the specified user. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Value</i> The filter value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The filter key. <ul> <li>  <code>product</code> - Filter results based on the specified product identifier. </li> <li>  <code>provisionedproduct</code> - Filter results based on the provisioned product identifier. </li> </ul><br/>
        :return: NextPageToken:  The page token to use to retrieve the next set of results. If there are no additional results, this value is null.<br/>RecordDetails:  The records, in reverse chronological order.<br/>        """
        pass

    def list_resources_for_tag_option(self, TagOptionId: str, ResourceType: str=None, PageSize: int=None, PageToken: str=None) -> ListResourcesForTagOptionOutput:
        r"""Lists the resources associated with the specified TagOption.

        :param self:
        :param PageToken:  The page token for the next set of results. To retrieve the first set of results, use null.<br/>PageSize:  The maximum number of items to return with this call.<br/>ResourceType:  The resource type. <ul> <li>  <code>Portfolio</code>  </li> <li>  <code>Product</code>  </li> </ul><br/>TagOptionId:  The TagOption identifier.<br/>
        :return: PageToken:  The page token for the next set of results. To retrieve the first set of results, use null.<br/>ResourceDetails:  Information about the resources.<br/>        """
        pass

    def list_service_actions(self, AcceptLanguage: str=None, PageSize: int=None, PageToken: str=None) -> ListServiceActionsOutput:
        r"""Lists all self-service actions.

        :param self:
        :param PageToken:  The page token for the next set of results. To retrieve the first set of results, use null.<br/>PageSize:  The maximum number of items to return with this call.<br/>AcceptLanguage:  The language code. <ul> <li>  <code>en</code> - English (default) </li> <li>  <code>jp</code> - Japanese </li> <li>  <code>zh</code> - Chinese </li> </ul><br/>
        :return: NextPageToken:  The page token to use to retrieve the next set of results. If there are no additional results, this value is null.<br/>ServiceActionSummaries:  An object containing information about the service actions associated with the provisioning artifact.<br/>        """
        pass

    def list_service_actions_for_provisioning_artifact(self, ProvisioningArtifactId: str, ProductId: str, PageSize: int=None, PageToken: str=None, AcceptLanguage: str=None) -> ListServiceActionsForProvisioningArtifactOutput:
        r"""Returns a paginated list of self-service actions associated with the specified Product ID and Provisioning Artifact ID.

        :param self:
        :param AcceptLanguage:  The language code. <ul> <li>  <code>en</code> - English (default) </li> <li>  <code>jp</code> - Japanese </li> <li>  <code>zh</code> - Chinese </li> </ul><br/>PageToken:  The page token for the next set of results. To retrieve the first set of results, use null.<br/>PageSize:  The maximum number of items to return with this call.<br/>ProvisioningArtifactId:  The identifier of the provisioning artifact. For example, <code>pa-4abcdjnxjj6ne</code>.<br/>ProductId:  The product identifier. For example, <code>prod-abcdzk7xy33qa</code>.<br/>
        :return: NextPageToken:  The page token to use to retrieve the next set of results. If there are no additional results, this value is null.<br/>ServiceActionSummaries:  An object containing information about the self-service actions associated with the provisioning artifact.<br/>        """
        pass

    def list_stack_instances_for_provisioned_product(self, ProvisionedProductId: str, AcceptLanguage: str=None, PageToken: str=None, PageSize: int=None) -> ListStackInstancesForProvisionedProductOutput:
        r"""Returns summary information about stack instances that are associated with the specified <code>CFN_STACKSET</code> type provisioned product. You can filter for stack instances that are associated with a specific AWS account name or region. 

        :param self:
        :param PageSize:  The maximum number of items to return with this call.<br/>PageToken:  The page token for the next set of results. To retrieve the first set of results, use null.<br/>ProvisionedProductId:  The identifier of the provisioned product.<br/>AcceptLanguage:  The language code. <ul> <li>  <code>en</code> - English (default) </li> <li>  <code>jp</code> - Japanese </li> <li>  <code>zh</code> - Chinese </li> </ul><br/>
        :return: NextPageToken:  The page token to use to retrieve the next set of results. If there are no additional results, this value is null.<br/>StackInstances:  List of stack instances.<br/>        """
        pass

    def list_tag_options(self, Filters: ListTagOptionsFilters=None, PageSize: int=None, PageToken: str=None) -> ListTagOptionsOutput:
        r"""Lists the specified TagOptions or all TagOptions.

        :param self:
        :param PageToken:  The page token for the next set of results. To retrieve the first set of results, use null.<br/>PageSize:  The maximum number of items to return with this call.<br/>Filters:  The search filters. If no search filters are specified, the output includes all TagOptions.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Active</i> The active state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Value</i> The TagOption value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The TagOption key.<br/>
        :return: PageToken:  The page token for the next set of results. To retrieve the first set of results, use null.<br/>TagOptionDetails:  Information about the TagOptions.<br/>        """
        pass

    def provision_product(self, ProvisionToken: str, ProvisionedProductName: str, AcceptLanguage: str=None, ProductId: str=None, ProductName: str=None, ProvisioningArtifactId: str=None, ProvisioningArtifactName: str=None, PathId: str=None, PathName: str=None, ProvisioningParameters: List[ProvisioningParameter]=None, ProvisioningPreferences: ProvisioningPreferences=None, Tags: List[Tag]=None, NotificationArns: List[NotificationArn]=None) -> ProvisionProductOutput:
        r"""Provisions the specified product. A provisioned product is a resourced instance of a product. For example, provisioning a product based on a CloudFormation template launches a CloudFormation stack and its underlying resources. You can check the status of this request using <a>DescribeRecord</a>. If the request contains a tag key with an empty list of values, there is a tag conflict for that key. Do not include conflicted keys as tags, or this causes the error "Parameter validation failed: Missing required parameter in Tags[<i>N</i>]:<i>Value</i>".

        :param self:
        :param ProvisionToken:  An idempotency token that uniquely identifies the provisioning request.<br/>NotificationArns:  Passed to CloudFormation. The SNS topic ARNs to which to publish stack-related events.<br/>Tags:  One or more tags.<br/>ProvisioningPreferences:  An object that contains information about the provisioning preferences for a stack set.:<br/>ProvisioningParameters:  Parameters specified by the administrator that are required for provisioning the product.<br/>ProvisionedProductName:  A user-friendly name for the provisioned product. This value must be unique for the AWS account and cannot be updated after the product is provisioned.<br/>PathName:  The name of the path. You must provide the name or ID, but not both.<br/>PathId:  The path identifier of the product. This value is optional if the product has a default path, and required if the product has more than one path. To list the paths for a product, use <a>ListLaunchPaths</a>. You must provide the name or ID, but not both.<br/>ProvisioningArtifactName:  The name of the provisioning artifact. You must provide the name or ID, but not both.<br/>ProvisioningArtifactId:  The identifier of the provisioning artifact. You must provide the name or ID, but not both.<br/>ProductName:  The name of the product. You must provide the name or ID, but not both.<br/>ProductId:  The product identifier. You must provide the name or ID, but not both.<br/>AcceptLanguage:  The language code. <ul> <li>  <code>en</code> - English (default) </li> <li>  <code>jp</code> - Japanese </li> <li>  <code>zh</code> - Chinese </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StackSetMaxConcurrencyPercentage</i> The maximum percentage of accounts in which to perform this operation at one time. When calculating the number of accounts based on the specified percentage, AWS Service Catalog rounds down to the next whole number. This is true except in cases where rounding down would result is zero. In this case, AWS Service Catalog sets the number as <code>1</code> instead. Note that this setting lets you specify the maximum for operations. For large deployments, under certain circumstances the actual number of accounts acted upon concurrently may be lower due to service throttling. Applicable only to a <code>CFN_STACKSET</code> provisioned product type. Conditional: You must specify either <code>StackSetMaxConcurrentCount</code> or <code>StackSetMaxConcurrentPercentage</code>, but not both.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StackSetMaxConcurrencyCount</i> The maximum number of accounts in which to perform this operation at one time. This is dependent on the value of <code>StackSetFailureToleranceCount</code>. <code>StackSetMaxConcurrentCount</code> is at most one more than the <code>StackSetFailureToleranceCount</code>. Note that this setting lets you specify the maximum for operations. For large deployments, under certain circumstances the actual number of accounts acted upon concurrently may be lower due to service throttling. Applicable only to a <code>CFN_STACKSET</code> provisioned product type. Conditional: You must specify either <code>StackSetMaxConcurrentCount</code> or <code>StackSetMaxConcurrentPercentage</code>, but not both.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StackSetFailureTolerancePercentage</i> The percentage of accounts, per region, for which this stack operation can fail before AWS Service Catalog stops the operation in that region. If the operation is stopped in a region, AWS Service Catalog doesn't attempt the operation in any subsequent regions. When calculating the number of accounts based on the specified percentage, AWS Service Catalog rounds down to the next whole number. Applicable only to a <code>CFN_STACKSET</code> provisioned product type. Conditional: You must specify either <code>StackSetFailureToleranceCount</code> or <code>StackSetFailureTolerancePercentage</code>, but not both.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StackSetFailureToleranceCount</i> The number of accounts, per region, for which this operation can fail before AWS Service Catalog stops the operation in that region. If the operation is stopped in a region, AWS Service Catalog doesn't attempt the operation in any subsequent regions. Applicable only to a <code>CFN_STACKSET</code> provisioned product type. Conditional: You must specify either <code>StackSetFailureToleranceCount</code> or <code>StackSetFailureTolerancePercentage</code>, but not both. The default value is <code>0</code> if no value is specified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StackSetRegions</i> One or more AWS Regions where the provisioned product will be available. Applicable only to a <code>CFN_STACKSET</code> provisioned product type. The specified regions should be within the list of regions from the <code>STACKSET</code> constraint. To get the list of regions in the <code>STACKSET</code> constraint, use the <code>DescribeProvisioningParameters</code> operation. If no values are specified, the default value is all regions from the <code>STACKSET</code> constraint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StackSetAccounts</i> One or more AWS accounts where the provisioned product will be available. Applicable only to a <code>CFN_STACKSET</code> provisioned product type. The specified accounts should be within the list of accounts from the <code>STACKSET</code> constraint. To get the list of accounts in the <code>STACKSET</code> constraint, use the <code>DescribeProvisioningParameters</code> operation. If no values are specified, the default value is all acounts from the <code>STACKSET</code> constraint.<br/>
        :return: RecordDetail:  Information about the result of provisioning the product.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LaunchRoleArn</i> The ARN of the launch role associated with the provisioned product.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecordTags</i> One or more tags.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecordErrors</i> The errors that occurred.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PathId</i> The path identifier.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProvisioningArtifactId</i> The identifier of the provisioning artifact.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProductId</i> The product identifier.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProvisionedProductId</i> The identifier of the provisioned product.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecordType</i> The record type. <ul> <li>  <code>PROVISION_PRODUCT</code>  </li> <li>  <code>UPDATE_PROVISIONED_PRODUCT</code>  </li> <li>  <code>TERMINATE_PROVISIONED_PRODUCT</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProvisionedProductType</i> The type of provisioned product. The supported values are <code>CFN_STACK</code> and <code>CFN_STACKSET</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdatedTime</i> The time when the record was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTime</i> The UTC time stamp of the creation time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the provisioned product. <ul> <li>  <code>CREATED</code> - The request was created but the operation has not started. </li> <li>  <code>IN_PROGRESS</code> - The requested operation is in progress. </li> <li>  <code>IN_PROGRESS_IN_ERROR</code> - The provisioned product is under change but the requested operation failed and some remediation is occurring. For example, a rollback. </li> <li>  <code>SUCCEEDED</code> - The requested operation has successfully completed. </li> <li>  <code>FAILED</code> - The requested operation has unsuccessfully completed. Investigate using the error messages returned. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProvisionedProductName</i> The user-friendly name of the provisioned product.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecordId</i> The identifier of the record.<br/>        """
        pass

    def reject_portfolio_share(self, PortfolioId: str, AcceptLanguage: str=None, PortfolioShareType: str=None) -> RejectPortfolioShareOutput:
        r"""Rejects an offer to share the specified portfolio.

        :param self:
        :param PortfolioShareType:  The type of shared portfolios to reject. The default is to reject imported portfolios. <ul> <li>  <code>AWS_ORGANIZATIONS</code> - Reject portfolios shared by the management account of your organization. </li> <li>  <code>IMPORTED</code> - Reject imported portfolios. </li> <li>  <code>AWS_SERVICECATALOG</code> - Not supported. (Throws ResourceNotFoundException.) </li> </ul> For example, <code>aws servicecatalog reject-portfolio-share --portfolio-id "port-2qwzkwxt3y5fk" --portfolio-share-type AWS_ORGANIZATIONS</code> <br/>PortfolioId:  The portfolio identifier.<br/>AcceptLanguage:  The language code. <ul> <li>  <code>en</code> - English (default) </li> <li>  <code>jp</code> - Japanese </li> <li>  <code>zh</code> - Chinese </li> </ul><br/>
        :return:         """
        pass

    def scan_provisioned_products(self, AcceptLanguage: str=None, AccessLevelFilter: AccessLevelFilter=None, PageSize: int=None, PageToken: str=None) -> ScanProvisionedProductsOutput:
        r"""Lists the provisioned products that are available (not terminated). To use additional filtering, see <a>SearchProvisionedProducts</a>.

        :param self:
        :param PageToken:  The page token for the next set of results. To retrieve the first set of results, use null.<br/>PageSize:  The maximum number of items to return with this call.<br/>AccessLevelFilter:  The access level to use to obtain results. The default is <code>User</code>.:<br/>AcceptLanguage:  The language code. <ul> <li>  <code>en</code> - English (default) </li> <li>  <code>jp</code> - Japanese </li> <li>  <code>zh</code> - Chinese </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Value</i> The user to which the access level applies. The only supported value is <code>Self</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The access level. <ul> <li>  <code>Account</code> - Filter results based on the account. </li> <li>  <code>Role</code> - Filter results based on the federated role of the specified user. </li> <li>  <code>User</code> - Filter results based on the specified user. </li> </ul><br/>
        :return: NextPageToken:  The page token to use to retrieve the next set of results. If there are no additional results, this value is null.<br/>ProvisionedProducts:  Information about the provisioned products.<br/>        """
        pass

    def search_products(self, AcceptLanguage: str=None, Filters: ProductViewFilters=None, PageSize: int=None, SortBy: str=None, SortOrder: str=None, PageToken: str=None) -> SearchProductsOutput:
        r"""Gets information about the products to which the caller has access.

        :param self:
        :param PageToken:  The page token for the next set of results. To retrieve the first set of results, use null.<br/>SortOrder:  The sort order. If no value is specified, the results are not sorted.<br/>SortBy:  The sort field. If no value is specified, the results are not sorted.<br/>PageSize:  The maximum number of items to return with this call.<br/>Filters:  The search filters. If no search filters are specified, the output includes all products to which the caller has access.<br/>AcceptLanguage:  The language code. <ul> <li>  <code>en</code> - English (default) </li> <li>  <code>jp</code> - Japanese </li> <li>  <code>zh</code> - Chinese </li> </ul><br/>
        :return: NextPageToken:  The page token to use to retrieve the next set of results. If there are no additional results, this value is null.<br/>ProductViewAggregations:  The product view aggregations.<br/>ProductViewSummaries:  Information about the product views.<br/>        """
        pass

    def search_products_as_admin(self, AcceptLanguage: str=None, PortfolioId: str=None, Filters: ProductViewFilters=None, SortBy: str=None, SortOrder: str=None, PageToken: str=None, PageSize: int=None, ProductSource: str=None) -> SearchProductsAsAdminOutput:
        r"""Gets information about the products for the specified portfolio or all products.

        :param self:
        :param ProductSource:  Access level of the source of the product.<br/>PageSize:  The maximum number of items to return with this call.<br/>PageToken:  The page token for the next set of results. To retrieve the first set of results, use null.<br/>SortOrder:  The sort order. If no value is specified, the results are not sorted.<br/>SortBy:  The sort field. If no value is specified, the results are not sorted.<br/>Filters:  The search filters. If no search filters are specified, the output includes all products to which the administrator has access.<br/>PortfolioId:  The portfolio identifier.<br/>AcceptLanguage:  The language code. <ul> <li>  <code>en</code> - English (default) </li> <li>  <code>jp</code> - Japanese </li> <li>  <code>zh</code> - Chinese </li> </ul><br/>
        :return: NextPageToken:  The page token to use to retrieve the next set of results. If there are no additional results, this value is null.<br/>ProductViewDetails:  Information about the product views.<br/>        """
        pass

    def search_provisioned_products(self, AcceptLanguage: str=None, AccessLevelFilter: AccessLevelFilter=None, Filters: ProvisionedProductFilters=None, SortBy: str=None, SortOrder: str=None, PageSize: int=None, PageToken: str=None) -> SearchProvisionedProductsOutput:
        r"""Gets information about the provisioned products that meet the specified criteria.

        :param self:
        :param PageToken:  The page token for the next set of results. To retrieve the first set of results, use null.<br/>PageSize:  The maximum number of items to return with this call.<br/>SortOrder:  The sort order. If no value is specified, the results are not sorted.<br/>SortBy:  The sort field. If no value is specified, the results are not sorted. The valid values are <code>arn</code>, <code>id</code>, <code>name</code>, and <code>lastRecordId</code>.<br/>Filters:  The search filters. When the key is <code>SearchQuery</code>, the searchable fields are <code>arn</code>, <code>createdTime</code>, <code>id</code>, <code>lastRecordId</code>, <code>idempotencyToken</code>, <code>name</code>, <code>physicalId</code>, <code>productId</code>, <code>provisioningArtifact</code>, <code>type</code>, <code>status</code>, <code>tags</code>, <code>userArn</code>, <code>userArnSession</code>, <code>lastProvisioningRecordId</code>, <code>lastSuccessfulProvisioningRecordId</code>, <code>productName</code>, and <code>provisioningArtifactName</code>. Example: <code>"SearchQuery":["status:AVAILABLE"]</code> <br/>AccessLevelFilter:  The access level to use to obtain results. The default is <code>User</code>.:<br/>AcceptLanguage:  The language code. <ul> <li>  <code>en</code> - English (default) </li> <li>  <code>jp</code> - Japanese </li> <li>  <code>zh</code> - Chinese </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Value</i> The user to which the access level applies. The only supported value is <code>Self</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The access level. <ul> <li>  <code>Account</code> - Filter results based on the account. </li> <li>  <code>Role</code> - Filter results based on the federated role of the specified user. </li> <li>  <code>User</code> - Filter results based on the specified user. </li> </ul><br/>
        :return: NextPageToken:  The page token to use to retrieve the next set of results. If there are no additional results, this value is null.<br/>TotalResultsCount:  The number of provisioned products found.<br/>ProvisionedProducts:  Information about the provisioned products.<br/>        """
        pass

    def terminate_provisioned_product(self, TerminateToken: str, ProvisionedProductName: str=None, ProvisionedProductId: str=None, IgnoreErrors: IgnoreErrors=None, AcceptLanguage: str=None, RetainPhysicalResources: RetainPhysicalResources=None) -> TerminateProvisionedProductOutput:
        r"""Terminates the specified provisioned product. This operation does not delete any records associated with the provisioned product. You can check the status of this request using <a>DescribeRecord</a>.

        :param self:
        :param RetainPhysicalResources:  When this boolean parameter is set to true, the <code>TerminateProvisionedProduct</code> API deletes the Service Catalog provisioned product. However, it does not remove the CloudFormation stack, stack set, or the underlying resources of the deleted provisioned product. The default value is false.<br/>AcceptLanguage:  The language code. <ul> <li>  <code>en</code> - English (default) </li> <li>  <code>jp</code> - Japanese </li> <li>  <code>zh</code> - Chinese </li> </ul><br/>IgnoreErrors:  If set to true, AWS Service Catalog stops managing the specified provisioned product even if it cannot delete the underlying resources.<br/>TerminateToken:  An idempotency token that uniquely identifies the termination request. This token is only valid during the termination process. After the provisioned product is terminated, subsequent requests to terminate the same provisioned product always return <b>ResourceNotFound</b>.<br/>ProvisionedProductId:  The identifier of the provisioned product. You cannot specify both <code>ProvisionedProductName</code> and <code>ProvisionedProductId</code>.<br/>ProvisionedProductName:  The name of the provisioned product. You cannot specify both <code>ProvisionedProductName</code> and <code>ProvisionedProductId</code>.<br/>
        :return: RecordDetail:  Information about the result of this request.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LaunchRoleArn</i> The ARN of the launch role associated with the provisioned product.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecordTags</i> One or more tags.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecordErrors</i> The errors that occurred.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PathId</i> The path identifier.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProvisioningArtifactId</i> The identifier of the provisioning artifact.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProductId</i> The product identifier.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProvisionedProductId</i> The identifier of the provisioned product.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecordType</i> The record type. <ul> <li>  <code>PROVISION_PRODUCT</code>  </li> <li>  <code>UPDATE_PROVISIONED_PRODUCT</code>  </li> <li>  <code>TERMINATE_PROVISIONED_PRODUCT</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProvisionedProductType</i> The type of provisioned product. The supported values are <code>CFN_STACK</code> and <code>CFN_STACKSET</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdatedTime</i> The time when the record was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTime</i> The UTC time stamp of the creation time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the provisioned product. <ul> <li>  <code>CREATED</code> - The request was created but the operation has not started. </li> <li>  <code>IN_PROGRESS</code> - The requested operation is in progress. </li> <li>  <code>IN_PROGRESS_IN_ERROR</code> - The provisioned product is under change but the requested operation failed and some remediation is occurring. For example, a rollback. </li> <li>  <code>SUCCEEDED</code> - The requested operation has successfully completed. </li> <li>  <code>FAILED</code> - The requested operation has unsuccessfully completed. Investigate using the error messages returned. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProvisionedProductName</i> The user-friendly name of the provisioned product.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecordId</i> The identifier of the record.<br/>        """
        pass

    def update_constraint(self, Id: str, AcceptLanguage: str=None, Description: str=None, Parameters: str=None) -> UpdateConstraintOutput:
        r"""Updates the specified constraint.

        :param self:
        :param Parameters:  The constraint parameters, in JSON format. The syntax depends on the constraint type as follows: <dl> <dt>LAUNCH</dt> <dd> You are required to specify either the <code>RoleArn</code> or the <code>LocalRoleName</code> but can't use both. Specify the <code>RoleArn</code> property as follows:  <code>{"RoleArn" : "arn:aws:iam::123456789012:role/LaunchRole"}</code>  Specify the <code>LocalRoleName</code> property as follows:  <code>{"LocalRoleName": "SCBasicLaunchRole"}</code>  If you specify the <code>LocalRoleName</code> property, when an account uses the launch constraint, the IAM role with that name in the account will be used. This allows launch-role constraints to be account-agnostic so the administrator can create fewer resources per shared account. <note> The given role name must exist in the account used to create the launch constraint and the account of the user who launches a product with this launch constraint. </note> You cannot have both a <code>LAUNCH</code> and a <code>STACKSET</code> constraint. You also cannot have more than one <code>LAUNCH</code> constraint on a product and portfolio. </dd> <dt>NOTIFICATION</dt> <dd> Specify the <code>NotificationArns</code> property as follows:  <code>{"NotificationArns" : ["arn:aws:sns:us-east-1:123456789012:Topic"]}</code>  </dd> <dt>RESOURCE_UPDATE</dt> <dd> Specify the <code>TagUpdatesOnProvisionedProduct</code> property as follows:  <code>{"Version":"2.0","Properties":{"TagUpdateOnProvisionedProduct":"String"}}</code>  The <code>TagUpdatesOnProvisionedProduct</code> property accepts a string value of <code>ALLOWED</code> or <code>NOT_ALLOWED</code>. </dd> <dt>STACKSET</dt> <dd> Specify the <code>Parameters</code> property as follows:  <code>{"Version": "String", "Properties": {"AccountList": [ "String" ], "RegionList": [ "String" ], "AdminRole": "String", "ExecutionRole": "String"}}</code>  You cannot have both a <code>LAUNCH</code> and a <code>STACKSET</code> constraint. You also cannot have more than one <code>STACKSET</code> constraint on a product and portfolio. Products with a <code>STACKSET</code> constraint will launch an AWS CloudFormation stack set. </dd> <dt>TEMPLATE</dt> <dd> Specify the <code>Rules</code> property. For more information, see <a href="http://docs.aws.amazon.com/servicecatalog/latest/adminguide/reference-template_constraint_rules.html">Template Constraint Rules</a>. </dd> </dl><br/>Description:  The updated description of the constraint.<br/>Id:  The identifier of the constraint.<br/>AcceptLanguage:  The language code. <ul> <li>  <code>en</code> - English (default) </li> <li>  <code>jp</code> - Japanese </li> <li>  <code>zh</code> - Chinese </li> </ul><br/>
        :return: Status:  The status of the current request.<br/>ConstraintParameters:  The constraint parameters.<br/>ConstraintDetail:  Information about the constraint.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PortfolioId</i> The identifier of the portfolio the product resides in. The constraint applies only to the instance of the product that lives within this portfolio.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProductId</i> The identifier of the product the constraint applies to. Note that a constraint applies to a specific instance of a product within a certain portfolio.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Owner</i> The owner of the constraint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the constraint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of constraint. <ul> <li>  <code>LAUNCH</code>  </li> <li>  <code>NOTIFICATION</code>  </li> <li> STACKSET </li> <li>  <code>TEMPLATE</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConstraintId</i> The identifier of the constraint.<br/>        """
        pass

    def update_portfolio(self, Id: str, AcceptLanguage: str=None, DisplayName: str=None, Description: str=None, ProviderName: str=None, AddTags: List[Tag]=None, RemoveTags: List[TagKey]=None) -> UpdatePortfolioOutput:
        r"""Updates the specified portfolio. You cannot update a product that was shared with you.

        :param self:
        :param RemoveTags:  The tags to remove.<br/>AddTags:  The tags to add.<br/>ProviderName:  The updated name of the portfolio provider.<br/>Description:  The updated description of the portfolio.<br/>DisplayName:  The name to use for display purposes.<br/>Id:  The portfolio identifier.<br/>AcceptLanguage:  The language code. <ul> <li>  <code>en</code> - English (default) </li> <li>  <code>jp</code> - Japanese </li> <li>  <code>zh</code> - Chinese </li> </ul><br/>
        :return: Tags:  Information about the tags associated with the portfolio.<br/>PortfolioDetail:  Information about the portfolio.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProviderName</i> The name of the portfolio provider.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTime</i> The UTC time stamp of the creation time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the portfolio.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DisplayName</i> The name to use for display purposes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ARN</i> The ARN assigned to the portfolio.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The portfolio identifier.<br/>        """
        pass

    def update_portfolio_share(self, PortfolioId: str, AcceptLanguage: str=None, AccountId: str=None, OrganizationNode: OrganizationNode=None, ShareTagOptions: NullableBoolean=None) -> UpdatePortfolioShareOutput:
        r"""Updates the specified portfolio share. You can use this API to enable or disable TagOptions sharing for an existing portfolio share.  The portfolio share cannot be updated if the <code> CreatePortfolioShare</code> operation is <code>IN_PROGRESS</code>, as the share is not available to recipient entities. In this case, you must wait for the portfolio share to be COMPLETED. You must provide the <code>accountId</code> or organization node in the input, but not both. If the portfolio is shared to both an external account and an organization node, and both shares need to be updated, you must invoke <code>UpdatePortfolioShare</code> separately for each share type.  This API cannot be used for removing the portfolio share. You must use <code>DeletePortfolioShare</code> API for that action. 

        :param self:
        :param ShareTagOptions:  A flag to enable or disable TagOptions sharing for the portfolio share. If this field is not provided, the current state of TagOptions sharing on the portfolio share will not be modified.<br/>OrganizationNode:  Information about the organization node.:<br/>AccountId:  The AWS Account Id of the recipient account. This field is required when updating an external account to account type share.<br/>PortfolioId:  The unique identifier of the portfolio for which the share will be updated.<br/>AcceptLanguage:  The language code. <ul> <li>  <code>en</code> - English (default) </li> <li>  <code>jp</code> - Japanese </li> <li>  <code>zh</code> - Chinese </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Value</i> The identifier of the organization node.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The organization node type.<br/>
        :return: Status:  The status of <code>UpdatePortfolioShare</code> operation. You can also obtain the operation status using <code>DescribePortfolioShareStatus</code> API. <br/>PortfolioShareToken:  The token that tracks the status of the <code>UpdatePortfolioShare</code> operation for external account to account or organizational type sharing.<br/>        """
        pass

    def update_product(self, Id: str, AcceptLanguage: str=None, Name: str=None, Owner: str=None, Description: str=None, Distributor: str=None, SupportDescription: str=None, SupportEmail: str=None, SupportUrl: str=None, AddTags: List[Tag]=None, RemoveTags: List[TagKey]=None) -> UpdateProductOutput:
        r"""Updates the specified product.

        :param self:
        :param RemoveTags:  The tags to remove from the product.<br/>AddTags:  The tags to add to the product.<br/>SupportUrl:  The updated support URL for the product.<br/>SupportEmail:  The updated support email for the product.<br/>SupportDescription:  The updated support description for the product.<br/>Distributor:  The updated distributor of the product.<br/>Description:  The updated description of the product.<br/>Owner:  The updated owner of the product.<br/>Name:  The updated product name.<br/>Id:  The product identifier.<br/>AcceptLanguage:  The language code. <ul> <li>  <code>en</code> - English (default) </li> <li>  <code>jp</code> - Japanese </li> <li>  <code>zh</code> - Chinese </li> </ul><br/>
        :return: Tags:  Information about the tags associated with the product.<br/>ProductViewDetail:  Information about the product view.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTime</i> The UTC time stamp of the creation time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProductARN</i> The ARN of the product.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the product. <ul> <li>  <code>AVAILABLE</code> - The product is ready for use. </li> <li>  <code>CREATING</code> - Product creation has started; the product is not ready for use. </li> <li>  <code>FAILED</code> - An action failed. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProductViewSummary</i> Summary information about the product view.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ProductViewSummary</b>: Summary information about the product view.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SupportUrl</i> The URL information to obtain support for this Product.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SupportDescription</i> The description of the support for this Product.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SupportEmail</i> The email contact information to obtain support for this Product.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HasDefaultPath</i> Indicates whether the product has a default path. If the product does not have a default path, call <a>ListLaunchPaths</a> to disambiguate between paths. Otherwise, <a>ListLaunchPaths</a> is not required, and the output of <a>ProductViewSummary</a> can be used directly with <a>DescribeProvisioningParameters</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Distributor</i> The distributor of the product. Contact the product administrator for the significance of this value.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The product type. Contact the product administrator for the significance of this value. If this value is <code>MARKETPLACE</code>, the product was created by AWS Marketplace.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ShortDescription</i> Short description of the product.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Owner</i> The owner of the product. Contact the product administrator for the significance of this value.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the product.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ProductId</i> The product identifier.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The product view identifier.<br/>        """
        pass

    def update_provisioned_product(self, UpdateToken: str, AcceptLanguage: str=None, ProvisionedProductName: str=None, ProvisionedProductId: str=None, ProductId: str=None, ProductName: str=None, ProvisioningArtifactId: str=None, ProvisioningArtifactName: str=None, PathId: str=None, PathName: str=None, ProvisioningParameters: List[UpdateProvisioningParameter]=None, ProvisioningPreferences: UpdateProvisioningPreferences=None, Tags: List[Tag]=None) -> UpdateProvisionedProductOutput:
        r"""Requests updates to the configuration of the specified provisioned product. If there are tags associated with the object, they cannot be updated or added. Depending on the specific updates requested, this operation can update with no interruption, with some interruption, or replace the provisioned product entirely. You can check the status of this request using <a>DescribeRecord</a>.

        :param self:
        :param UpdateToken:  The idempotency token that uniquely identifies the provisioning update request.<br/>Tags:  One or more tags. Requires the product to have <code>RESOURCE_UPDATE</code> constraint with <code>TagUpdatesOnProvisionedProduct</code> set to <code>ALLOWED</code> to allow tag updates.<br/>ProvisioningPreferences:  An object that contains information about the provisioning preferences for a stack set.:<br/>ProvisioningParameters:  The new parameters.<br/>PathName:  The name of the path. You must provide the name or ID, but not both.<br/>PathId:  The path identifier. This value is optional if the product has a default path, and required if the product has more than one path. You must provide the name or ID, but not both.<br/>ProvisioningArtifactName:  The name of the provisioning artifact. You must provide the name or ID, but not both.<br/>ProvisioningArtifactId:  The identifier of the provisioning artifact.<br/>ProductName:  The name of the product. You must provide the name or ID, but not both.<br/>ProductId:  The identifier of the product. You must provide the name or ID, but not both.<br/>ProvisionedProductId:  The identifier of the provisioned product. You must provide the name or ID, but not both.<br/>ProvisionedProductName:  The name of the provisioned product. You cannot specify both <code>ProvisionedProductName</code> and <code>ProvisionedProductId</code>.<br/>AcceptLanguage:  The language code. <ul> <li>  <code>en</code> - English (default) </li> <li>  <code>jp</code> - Japanese </li> <li>  <code>zh</code> - Chinese </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StackSetOperationType</i> Determines what action AWS Service Catalog performs to a stack set or a stack instance represented by the provisioned product. The default value is <code>UPDATE</code> if nothing is specified. Applicable only to a <code>CFN_STACKSET</code> provisioned product type. <dl> <dt>CREATE</dt> <dd> Creates a new stack instance in the stack set represented by the provisioned product. In this case, only new stack instances are created based on accounts and regions; if new ProductId or ProvisioningArtifactID are passed, they will be ignored. </dd> <dt>UPDATE</dt> <dd> Updates the stack set represented by the provisioned product and also its stack instances. </dd> <dt>DELETE</dt> <dd> Deletes a stack instance in the stack set represented by the provisioned product. </dd> </dl><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StackSetMaxConcurrencyPercentage</i> The maximum percentage of accounts in which to perform this operation at one time. When calculating the number of accounts based on the specified percentage, AWS Service Catalog rounds down to the next whole number. This is true except in cases where rounding down would result is zero. In this case, AWS Service Catalog sets the number as <code>1</code> instead. Note that this setting lets you specify the maximum for operations. For large deployments, under certain circumstances the actual number of accounts acted upon concurrently may be lower due to service throttling. Applicable only to a <code>CFN_STACKSET</code> provisioned product type. Conditional: You must specify either <code>StackSetMaxConcurrentCount</code> or <code>StackSetMaxConcurrentPercentage</code>, but not both.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StackSetMaxConcurrencyCount</i> The maximum number of accounts in which to perform this operation at one time. This is dependent on the value of <code>StackSetFailureToleranceCount</code>. <code>StackSetMaxConcurrentCount</code> is at most one more than the <code>StackSetFailureToleranceCount</code>. Note that this setting lets you specify the maximum for operations. For large deployments, under certain circumstances the actual number of accounts acted upon concurrently may be lower due to service throttling. Applicable only to a <code>CFN_STACKSET</code> provisioned product type. Conditional: You must specify either <code>StackSetMaxConcurrentCount</code> or <code>StackSetMaxConcurrentPercentage</code>, but not both.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StackSetFailureTolerancePercentage</i> The percentage of accounts, per region, for which this stack operation can fail before AWS Service Catalog stops the operation in that region. If the operation is stopped in a region, AWS Service Catalog doesn't attempt the operation in any subsequent regions. When calculating the number of accounts based on the specified percentage, AWS Service Catalog rounds down to the next whole number. Applicable only to a <code>CFN_STACKSET</code> provisioned product type. Conditional: You must specify either <code>StackSetFailureToleranceCount</code> or <code>StackSetFailureTolerancePercentage</code>, but not both.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StackSetFailureToleranceCount</i> The number of accounts, per region, for which this operation can fail before AWS Service Catalog stops the operation in that region. If the operation is stopped in a region, AWS Service Catalog doesn't attempt the operation in any subsequent regions. Applicable only to a <code>CFN_STACKSET</code> provisioned product type. Conditional: You must specify either <code>StackSetFailureToleranceCount</code> or <code>StackSetFailureTolerancePercentage</code>, but not both. The default value is <code>0</code> if no value is specified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StackSetRegions</i> One or more AWS Regions where the provisioned product will be available. Applicable only to a <code>CFN_STACKSET</code> provisioned product type. The specified regions should be within the list of regions from the <code>STACKSET</code> constraint. To get the list of regions in the <code>STACKSET</code> constraint, use the <code>DescribeProvisioningParameters</code> operation. If no values are specified, the default value is all regions from the <code>STACKSET</code> constraint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StackSetAccounts</i> One or more AWS accounts that will have access to the provisioned product. Applicable only to a <code>CFN_STACKSET</code> provisioned product type. The AWS accounts specified should be within the list of accounts in the <code>STACKSET</code> constraint. To get the list of accounts in the <code>STACKSET</code> constraint, use the <code>DescribeProvisioningParameters</code> operation. If no values are specified, the default value is all accounts from the <code>STACKSET</code> constraint.<br/>
        :return: RecordDetail:  Information about the result of the request.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LaunchRoleArn</i> The ARN of the launch role associated with the provisioned product.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecordTags</i> One or more tags.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecordErrors</i> The errors that occurred.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PathId</i> The path identifier.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProvisioningArtifactId</i> The identifier of the provisioning artifact.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProductId</i> The product identifier.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProvisionedProductId</i> The identifier of the provisioned product.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecordType</i> The record type. <ul> <li>  <code>PROVISION_PRODUCT</code>  </li> <li>  <code>UPDATE_PROVISIONED_PRODUCT</code>  </li> <li>  <code>TERMINATE_PROVISIONED_PRODUCT</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProvisionedProductType</i> The type of provisioned product. The supported values are <code>CFN_STACK</code> and <code>CFN_STACKSET</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdatedTime</i> The time when the record was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTime</i> The UTC time stamp of the creation time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the provisioned product. <ul> <li>  <code>CREATED</code> - The request was created but the operation has not started. </li> <li>  <code>IN_PROGRESS</code> - The requested operation is in progress. </li> <li>  <code>IN_PROGRESS_IN_ERROR</code> - The provisioned product is under change but the requested operation failed and some remediation is occurring. For example, a rollback. </li> <li>  <code>SUCCEEDED</code> - The requested operation has successfully completed. </li> <li>  <code>FAILED</code> - The requested operation has unsuccessfully completed. Investigate using the error messages returned. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProvisionedProductName</i> The user-friendly name of the provisioned product.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecordId</i> The identifier of the record.<br/>        """
        pass

    def update_provisioned_product_properties(self, IdempotencyToken: str, ProvisionedProductProperties: ProvisionedProductProperties, ProvisionedProductId: str, AcceptLanguage: str=None) -> UpdateProvisionedProductPropertiesOutput:
        r"""Requests updates to the properties of the specified provisioned product.

        :param self:
        :param IdempotencyToken:  The idempotency token that uniquely identifies the provisioning product update request.<br/>ProvisionedProductProperties:  A map that contains the provisioned product properties to be updated. The <code>LAUNCH_ROLE</code> key accepts role ARNs. This key allows an administrator to call <code>UpdateProvisionedProductProperties</code> to update the launch role that is associated with a provisioned product. This role is used when an end user calls a provisioning operation such as <code>UpdateProvisionedProduct</code>, <code>TerminateProvisionedProduct</code>, or <code>ExecuteProvisionedProductServiceAction</code>. Only a role ARN is valid. A user ARN is invalid.  The <code>OWNER</code> key accepts user ARNs and role ARNs. The owner is the user that has permission to see, update, terminate, and execute service actions in the provisioned product. The administrator can change the owner of a provisioned product to another IAM user within the same account. Both end user owners and administrators can see ownership history of the provisioned product using the <code>ListRecordHistory</code> API. The new owner can describe all past records for the provisioned product using the <code>DescribeRecord</code> API. The previous owner can no longer use <code>DescribeRecord</code>, but can still see the product's history from when he was an owner using <code>ListRecordHistory</code>. If a provisioned product ownership is assigned to an end user, they can see and perform any action through the API or Service Catalog console such as update, terminate, and execute service actions. If an end user provisions a product and the owner is updated to someone else, they will no longer be able to see or perform any actions through API or the Service Catalog console on that provisioned product.<br/>ProvisionedProductId:  The identifier of the provisioned product.<br/>AcceptLanguage:  The language code. <ul> <li>  <code>en</code> - English (default) </li> <li>  <code>jp</code> - Japanese </li> <li>  <code>zh</code> - Chinese </li> </ul><br/>
        :return: Status:  The status of the request.<br/>RecordId:  The identifier of the record.<br/>ProvisionedProductProperties:  A map that contains the properties updated.<br/>ProvisionedProductId:  The provisioned product identifier.<br/>        """
        pass

    def update_provisioning_artifact(self, ProvisioningArtifactId: str, ProductId: str, AcceptLanguage: str=None, Name: str=None, Description: str=None, Active: ProvisioningArtifactActive=None, Guidance: str=None) -> UpdateProvisioningArtifactOutput:
        r"""Updates the specified provisioning artifact (also known as a version) for the specified product. You cannot update a provisioning artifact for a product that was shared with you.

        :param self:
        :param Guidance:  Information set by the administrator to provide guidance to end users about which provisioning artifacts to use. The <code>DEFAULT</code> value indicates that the product version is active. The administrator can set the guidance to <code>DEPRECATED</code> to inform users that the product version is deprecated. Users are able to make updates to a provisioned product of a deprecated version but cannot launch new provisioned products using a deprecated version.<br/>Active:  Indicates whether the product version is active. Inactive provisioning artifacts are invisible to end users. End users cannot launch or update a provisioned product from an inactive provisioning artifact.<br/>Description:  The updated description of the provisioning artifact.<br/>Name:  The updated name of the provisioning artifact.<br/>ProvisioningArtifactId:  The identifier of the provisioning artifact.<br/>ProductId:  The product identifier.<br/>AcceptLanguage:  The language code. <ul> <li>  <code>en</code> - English (default) </li> <li>  <code>jp</code> - Japanese </li> <li>  <code>zh</code> - Chinese </li> </ul><br/>
        :return: Status:  The status of the current request.<br/>Info:  The URL of the CloudFormation template in Amazon S3.<br/>ProvisioningArtifactDetail:  Information about the provisioning artifact.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Guidance</i> Information set by the administrator to provide guidance to end users about which provisioning artifacts to use.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Active</i> Indicates whether the product version is active.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTime</i> The UTC time stamp of the creation time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of provisioning artifact. <ul> <li>  <code>CLOUD_FORMATION_TEMPLATE</code> - AWS CloudFormation template </li> <li>  <code>MARKETPLACE_AMI</code> - AWS Marketplace AMI </li> <li>  <code>MARKETPLACE_CAR</code> - AWS Marketplace Clusters and AWS Resources </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the provisioning artifact.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the provisioning artifact.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The identifier of the provisioning artifact.<br/>        """
        pass

    def update_service_action(self, Id: str, Name: str=None, Definition: ServiceActionDefinitionMap=None, Description: str=None, AcceptLanguage: str=None) -> UpdateServiceActionOutput:
        r"""Updates a self-service action.

        :param self:
        :param AcceptLanguage:  The language code. <ul> <li>  <code>en</code> - English (default) </li> <li>  <code>jp</code> - Japanese </li> <li>  <code>zh</code> - Chinese </li> </ul><br/>Description:  The self-service action description.<br/>Definition:  A map that defines the self-service action.<br/>Name:  The self-service action name.<br/>Id:  The self-service action identifier.<br/>
        :return: ServiceActionDetail:  Detailed information about the self-service action.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Definition</i> A map that defines the self-service action.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceActionSummary</i> Summary information about the self-service action.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ServiceActionSummary</b>: Summary information about the self-service action.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DefinitionType</i> The self-service action definition type. For example, <code>SSM_AUTOMATION</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The self-service action description.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The self-service action name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The self-service action identifier.<br/>        """
        pass

    def update_tag_option(self, Id: str, Value: str=None, Active: TagOptionActive=None) -> UpdateTagOptionOutput:
        r"""Updates the specified TagOption.

        :param self:
        :param Active:  The updated active state.<br/>Value:  The updated value.<br/>Id:  The TagOption identifier.<br/>
        :return: TagOptionDetail:  Information about the TagOption.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Owner</i> The AWS account Id of the owner account that created the TagOption.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The TagOption identifier.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Active</i> The TagOption active state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Value</i> The TagOption value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Key</i> The TagOption key.<br/>        """
        pass





class AppRegistry(BaseClient):
    r""" AWS Service Catalog AppRegistry enables organizations to understand the application context of their AWS resources. AppRegistry provides a repository of your applications, their resources, and the application metadata that you use within your enterprise."""


    class ListApplicationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_applications` for valid parameters"""
            pass
    class ListAssociatedAttributeGroupsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_associated_attribute_groups` for valid parameters"""
            pass
    class ListAssociatedResourcesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_associated_resources` for valid parameters"""
            pass
    class ListAttributeGroupsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_attribute_groups` for valid parameters"""
            pass


    class AssociateAttributeGroupRequest(Mapping):
        pass
    
    class AssociateAttributeGroupResponse(Mapping):
        pass
    
    class AssociateResourceRequest(Mapping):
        pass
    
    class AssociateResourceResponse(Mapping):
        pass
    
    class CreateApplicationRequest(Mapping):
        pass
    
    class CreateApplicationResponse(Mapping):
        pass
    
    class Tags(object):
        pass
    
    class CreateAttributeGroupRequest(Mapping):
        pass
    
    class CreateAttributeGroupResponse(Mapping):
        pass
    
    class DeleteApplicationRequest(Mapping):
        pass
    
    class DeleteApplicationResponse(Mapping):
        pass
    
    class DeleteAttributeGroupRequest(Mapping):
        pass
    
    class DeleteAttributeGroupResponse(Mapping):
        pass
    
    class DisassociateAttributeGroupRequest(Mapping):
        pass
    
    class DisassociateAttributeGroupResponse(Mapping):
        pass
    
    class DisassociateResourceRequest(Mapping):
        pass
    
    class DisassociateResourceResponse(Mapping):
        pass
    
    class GetApplicationRequest(Mapping):
        pass
    
    class GetApplicationResponse(Mapping):
        pass
    
    class GetAttributeGroupRequest(Mapping):
        pass
    
    class GetAttributeGroupResponse(Mapping):
        pass
    
    class ListApplicationsRequest(Mapping):
        pass
    
    class ListApplicationsResponse(Mapping):
        pass
    
    class ListAssociatedAttributeGroupsRequest(Mapping):
        pass
    
    class ListAssociatedAttributeGroupsResponse(Mapping):
        pass
    
    class ListAssociatedResourcesRequest(Mapping):
        pass
    
    class ListAssociatedResourcesResponse(Mapping):
        pass
    
    class ListAttributeGroupsRequest(Mapping):
        pass
    
    class ListAttributeGroupsResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class SyncResourceRequest(Mapping):
        pass
    
    class SyncResourceResponse(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateApplicationRequest(Mapping):
        pass
    
    class UpdateApplicationResponse(Mapping):
        pass
    
    class UpdateAttributeGroupRequest(Mapping):
        pass
    
    class UpdateAttributeGroupResponse(Mapping):
        pass
    
    def associate_attribute_group(self, attributeGroup: str, application: str) -> AssociateAttributeGroupResponse:
        r"""Associates an attribute group with an application to augment the application's metadata with the group's attributes. This feature enables applications to be described with user-defined details that are machine-readable, such as third-party integrations.

        :param self:
        :param attributeGroup:  The name or ID of the attribute group that holds the attributes to describe the application.<br/>application:  The name or ID of the application.<br/>
        :return: attributeGroupArn:  The Amazon resource name (ARN) of the attribute group that contains the application's new attributes.<br/>applicationArn:  The Amazon resource name (ARN) of the application that was augmented with attributes.<br/>        """
        pass

    def associate_resource(self, resource: str, resourceType: str, application: str) -> AssociateResourceResponse:
        r"""Associates a resource with an application. Both the resource and the application can be specified either by ID or name.

        :param self:
        :param resource:  The name or ID of the resource of which the application will be associated.<br/>resourceType:  The type of resource of which the application will be associated.<br/>application:  The name or ID of the application.<br/>
        :return: resourceArn:  The Amazon resource name (ARN) that specifies the resource.<br/>applicationArn:  The Amazon resource name (ARN) of the application that was augmented with attributes.<br/>        """
        pass

    def create_application(self, clientToken: str, name: str, description: str=None, tags: Tags=None) -> CreateApplicationResponse:
        r"""Creates a new application that is the top-level node in a hierarchy of related cloud resource abstractions.

        :param self:
        :param clientToken:  A unique identifier that you provide to ensure idempotency. If you retry a request that completed successfully using the same client token and the same parameters, the retry succeeds without performing any further actions. If you retry a successful request using the same client token, but one or more of the parameters are different, the retry fails.<br/>tags:  Key-value pairs you can use to associate with the application.<br/>description:  The description of the application.<br/>name:  The name of the application. The name must be unique in the region in which you are creating the application.<br/>
        :return: application:  Information about the application.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> Key-value pairs you can use to associate with the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdateTime</i>  The ISO-8601 formatted timestamp of the moment when the application was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationTime</i> The ISO-8601 formatted timestamp of the moment when the application was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> The description of the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the application. The name must be unique in the region in which you are creating the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon resource name (ARN) that specifies the application across services.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The identifier of the application.<br/>        """
        pass

    def create_attribute_group(self, clientToken: str, attributes: str, name: str, description: str=None, tags: Tags=None) -> CreateAttributeGroupResponse:
        r"""Creates a new attribute group as a container for user-defined attributes. This feature enables users to have full control over their cloud application's metadata in a rich machine-readable format to facilitate integration with automated workflows and third-party tools.

        :param self:
        :param clientToken:  A unique identifier that you provide to ensure idempotency. If you retry a request that completed successfully using the same client token and the same parameters, the retry succeeds without performing any further actions. If you retry a successful request using the same client token, but one or more of the parameters are different, the retry fails.<br/>tags:  Key-value pairs you can use to associate with the attribute group.<br/>attributes:  A JSON string in the form of nested key-value pairs that represent the attributes in the group and describes an application and its components.<br/>description:  The description of the attribute group that the user provides.<br/>name:  The name of the attribute group.<br/>
        :return: attributeGroup:  Information about the attribute group.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> Key-value pairs you can use to associate with the attribute group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdateTime</i> The ISO-8601 formatted timestamp of the moment the attribute group was last updated. This time is the same as the creationTime for a newly created attribute group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationTime</i> The ISO-8601 formatted timestamp of the moment the attribute group was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> The description of the attribute group that the user provides.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the attribute group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon resource name (ARN) that specifies the attribute group across services.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The globally unique attribute group identifier of the attribute group.<br/>        """
        pass

    def delete_application(self, application: str) -> DeleteApplicationResponse:
        r"""Deletes an application that is specified either by its application ID or name. All associated attribute groups and resources must be disassociated from it before deleting an application.

        :param self:
        :param application:  The name or ID of the application.<br/>
        :return: application:  Information about the deleted application.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdateTime</i>  The ISO-8601 formatted timestamp of the moment when the application was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationTime</i> The ISO-8601 formatted timestamp of the moment when the application was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> The description of the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the application. The name must be unique in the region in which you are creating the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon resource name (ARN) that specifies the application across services.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The identifier of the application.<br/>        """
        pass

    def delete_attribute_group(self, attributeGroup: str) -> DeleteAttributeGroupResponse:
        r"""Deletes an attribute group, specified either by its attribute group ID or name.

        :param self:
        :param attributeGroup:  The name or ID of the attribute group that holds the attributes to describe the application.<br/>
        :return: attributeGroup:  Information about the deleted attribute group.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdateTime</i> The ISO-8601 formatted timestamp of the moment the attribute group was last updated. This time is the same as the creationTime for a newly created attribute group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationTime</i> The ISO-8601 formatted timestamp of the moment the attribute group was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> The description of the attribute group that the user provides.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the attribute group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon resource name (ARN) that specifies the attribute group across services.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The globally unique attribute group identifier of the attribute group.<br/>        """
        pass

    def disassociate_attribute_group(self, attributeGroup: str, application: str) -> DisassociateAttributeGroupResponse:
        r"""Disassociates an attribute group from an application to remove the extra attributes contained in the attribute group from the application's metadata. This operation reverts <code>AssociateAttributeGroup</code>.

        :param self:
        :param attributeGroup:  The name or ID of the attribute group that holds the attributes to describe the application.<br/>application:  The name or ID of the application.<br/>
        :return: attributeGroupArn:  The Amazon resource name (ARN) that specifies the attribute group.<br/>applicationArn:  The Amazon resource name (ARN) that specifies the application.<br/>        """
        pass

    def disassociate_resource(self, resource: str, resourceType: str, application: str) -> DisassociateResourceResponse:
        r"""Disassociates a resource from application. Both the resource and the application can be specified either by ID or name.

        :param self:
        :param resource:  The name or ID of the resource.<br/>resourceType:  The type of the resource that is being disassociated.<br/>application:  The name or ID of the application.<br/>
        :return: resourceArn:  The Amazon resource name (ARN) that specifies the resource.<br/>applicationArn:  The Amazon resource name (ARN) that specifies the application.<br/>        """
        pass

    def get_application(self, application: str) -> GetApplicationResponse:
        r"""Retrieves metadata information about one of your applications. The application can be specified either by its unique ID or by its name (which is unique within one account in one region at a given point in time). Specify by ID in automated workflows if you want to make sure that the exact same application is returned or a <code>ResourceNotFoundException</code> is thrown, avoiding the ABA addressing problem.

        :param self:
        :param application:  The name or ID of the application.<br/>
        :return: tags:  Key-value pairs associated with the application.<br/>associatedResourceCount:  The number of top-level resources that were registered as part of this application.<br/>lastUpdateTime:  The ISO-8601 formatted timestamp of the moment when the application was last updated.<br/>creationTime:  The ISO-8601 formatted timestamp of the moment when the application was created.<br/>description:  The description of the application.<br/>name:  The name of the application. The name must be unique in the region in which you are creating the application.<br/>arn:  The Amazon resource name (ARN) that specifies the application across services.<br/>id:  The identifier of the application.<br/>        """
        pass

    def get_attribute_group(self, attributeGroup: str) -> GetAttributeGroupResponse:
        r"""Retrieves an attribute group, either by its name or its ID. The attribute group can be specified either by its unique ID or by its name.

        :param self:
        :param attributeGroup:  The name or ID of the attribute group that holds the attributes to describe the application.<br/>
        :return: tags:  Key-value pairs associated with the attribute group.<br/>lastUpdateTime:  The ISO-8601 formatted timestamp of the moment the attribute group was last updated. This time is the same as the creationTime for a newly created attribute group.<br/>creationTime:  The ISO-8601 formatted timestamp of the moment the attribute group was created.<br/>attributes:  A JSON string in the form of nested key-value pairs that represent the attributes in the group and describes an application and its components.<br/>description:  The description of the attribute group that the user provides.<br/>name:  The name of the attribute group.<br/>arn:  The Amazon resource name (ARN) that specifies the attribute group across services.<br/>id:  The identifier of the attribute group.<br/>        """
        pass

    def list_applications(self, nextToken: str=None, maxResults: int=None) -> ListApplicationsResponse:
        r"""Retrieves a list of all of your applications. Results are paginated.

        :param self:
        :param maxResults:  The upper bound of the number of results to return (cannot exceed 25). If this parameter is omitted, it defaults to 25. This value is optional.<br/>nextToken:  The token to use to get the next page of results after a previous API call. <br/>
        :return: nextToken:  The token to use to get the next page of results after a previous API call. <br/>applications:  This list of applications.<br/>        """
        pass

    def list_associated_attribute_groups(self, application: str, nextToken: str=None, maxResults: int=None) -> ListAssociatedAttributeGroupsResponse:
        r"""Lists all attribute groups that are associated with specified application. Results are paginated.

        :param self:
        :param maxResults:  The upper bound of the number of results to return (cannot exceed 25). If this parameter is omitted, it defaults to 25. This value is optional.<br/>nextToken:  The token to use to get the next page of results after a previous API call. <br/>application:  The name or ID of the application.<br/>
        :return: nextToken:  The token to use to get the next page of results after a previous API call. <br/>attributeGroups:  A list of attribute group IDs.<br/>        """
        pass

    def list_associated_resources(self, application: str, nextToken: str=None, maxResults: int=None) -> ListAssociatedResourcesResponse:
        r"""Lists all resources that are associated with specified application. Results are paginated.

        :param self:
        :param maxResults:  The upper bound of the number of results to return (cannot exceed 25). If this parameter is omitted, it defaults to 25. This value is optional.<br/>nextToken:  The token to use to get the next page of results after a previous API call. <br/>application:  The name or ID of the application.<br/>
        :return: nextToken:  The token to use to get the next page of results after a previous API call. <br/>resources:  Information about the resources.<br/>        """
        pass

    def list_attribute_groups(self, nextToken: str=None, maxResults: int=None) -> ListAttributeGroupsResponse:
        r"""Lists all attribute groups which you have access to. Results are paginated.

        :param self:
        :param maxResults:  The upper bound of the number of results to return (cannot exceed 25). If this parameter is omitted, it defaults to 25. This value is optional.<br/>nextToken:  The token to use to get the next page of results after a previous API call. <br/>
        :return: nextToken:  The token to use to get the next page of results after a previous API call. <br/>attributeGroups:  This list of attribute groups.<br/>        """
        pass

    def list_tags_for_resource(self, resourceArn: str) -> ListTagsForResourceResponse:
        r"""Lists all of the tags on the resource.

        :param self:
        :param resourceArn:  The Amazon resource name (ARN) that specifies the resource.<br/>
        :return: tags:  The tags on the resource.<br/>        """
        pass

    def sync_resource(self, resource: str, resourceType: str) -> SyncResourceResponse:
        r"""Syncs the resource with what is currently recorded in App registry. Specifically, the resource’s App registry system tags are synced with its associated application. The resource is removed if it is not associated with the application. The caller must have permissions to read and update the resource.

        :param self:
        :param resource:  An entity you can work with and specify with a name or ID. Examples include an Amazon EC2 instance, an AWS CloudFormation stack, or an Amazon S3 bucket.<br/>resourceType:  The type of resource of which the application will be associated.<br/>
        :return: actionTaken:  The results of the output if an application is associated with an ARN value, which could be <code>syncStarted</code> or None.<br/>resourceArn:  The Amazon resource name (ARN) that specifies the resource.<br/>applicationArn:  The Amazon resource name (ARN) that specifies the application.<br/>        """
        pass

    def tag_resource(self, tags: Tags, resourceArn: str) -> TagResourceResponse:
        r"""Assigns one or more tags (key-value pairs) to the specified resource. Each tag consists of a key and an optional value. If a tag with the same key is already associated with the resource, this action updates its value. This operation returns an empty response if the call was successful.

        :param self:
        :param tags:  The new or modified tags for the resource.<br/>resourceArn:  The Amazon resource name (ARN) that specifies the resource.<br/>
        :return:         """
        pass

    def untag_resource(self, tagKeys: List[TagKey], resourceArn: str) -> UntagResourceResponse:
        r"""Removes tags from a resource. This operation returns an empty response if the call was successful.

        :param self:
        :param tagKeys:  A list of the tag keys to remove from the specified resource.<br/>resourceArn:  The Amazon resource name (ARN) that specifies the resource.<br/>
        :return:         """
        pass

    def update_application(self, application: str, name: str=None, description: str=None) -> UpdateApplicationResponse:
        r"""Updates an existing application with new attributes.

        :param self:
        :param description:  The new description of the application.<br/>name:  The new name of the application. The name must be unique in the region in which you are updating the application.<br/>application:  The name or ID of the application that will be updated.<br/>
        :return: application:  The updated information of the application.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> Key-value pairs you can use to associate with the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdateTime</i>  The ISO-8601 formatted timestamp of the moment when the application was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationTime</i> The ISO-8601 formatted timestamp of the moment when the application was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> The description of the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the application. The name must be unique in the region in which you are creating the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon resource name (ARN) that specifies the application across services.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The identifier of the application.<br/>        """
        pass

    def update_attribute_group(self, attributeGroup: str, name: str=None, description: str=None, attributes: str=None) -> UpdateAttributeGroupResponse:
        r"""Updates an existing attribute group with new details. 

        :param self:
        :param attributes:  A JSON string in the form of nested key-value pairs that represent the attributes in the group and describes an application and its components.<br/>description:  The description of the attribute group that the user provides.<br/>name:  The new name of the attribute group. The name must be unique in the region in which you are updating the attribute group.<br/>attributeGroup:  The name or ID of the attribute group that holds the attributes to describe the application.<br/>
        :return: attributeGroup:  The updated information of the attribute group.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tags</i> Key-value pairs you can use to associate with the attribute group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastUpdateTime</i> The ISO-8601 formatted timestamp of the moment the attribute group was last updated. This time is the same as the creationTime for a newly created attribute group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationTime</i> The ISO-8601 formatted timestamp of the moment the attribute group was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> The description of the attribute group that the user provides.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the attribute group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon resource name (ARN) that specifies the attribute group across services.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>id</i> The globally unique attribute group identifier of the attribute group.<br/>        """
        pass





class ServiceDiscovery(BaseClient):
    r"""<fullname>Cloud Map</fullname> With Cloud Map, you can configure public DNS, private DNS, or HTTP namespaces that your microservice applications run in. When an instance becomes available, you can call the Cloud Map API to register the instance with Cloud Map. For public or private DNS namespaces, Cloud Map automatically creates DNS records and an optional health check. Clients that submit public or private DNS queries, or HTTP requests, for the service receive an answer that contains up to eight healthy records. """


    class ListServicesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_services` for valid parameters"""
            pass
    class ListInstancesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_instances` for valid parameters"""
            pass
    class ListNamespacesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_namespaces` for valid parameters"""
            pass
    class ListOperationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_operations` for valid parameters"""
            pass


    class CreateHttpNamespaceRequest(Mapping):
        pass
    
    class CreateHttpNamespaceResponse(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class CreatePrivateDnsNamespaceRequest(Mapping):
        pass
    
    class CreatePrivateDnsNamespaceResponse(Mapping):
        pass
    
    class PrivateDnsNamespaceProperties(Mapping):
        pass
    
    class CreatePublicDnsNamespaceRequest(Mapping):
        pass
    
    class CreatePublicDnsNamespaceResponse(Mapping):
        pass
    
    class PublicDnsNamespaceProperties(Mapping):
        pass
    
    class CreateServiceRequest(Mapping):
        pass
    
    class CreateServiceResponse(Mapping):
        pass
    
    class DnsConfig(Mapping):
        pass
    
    class HealthCheckConfig(Mapping):
        pass
    
    class HealthCheckCustomConfig(Mapping):
        pass
    
    class DeleteNamespaceRequest(Mapping):
        pass
    
    class DeleteNamespaceResponse(Mapping):
        pass
    
    class DeleteServiceRequest(Mapping):
        pass
    
    class DeleteServiceResponse(Mapping):
        pass
    
    class DeregisterInstanceRequest(Mapping):
        pass
    
    class DeregisterInstanceResponse(Mapping):
        pass
    
    class DiscoverInstancesRequest(Mapping):
        pass
    
    class DiscoverInstancesResponse(Mapping):
        pass
    
    class Attributes(object):
        pass
    
    class GetInstanceRequest(Mapping):
        pass
    
    class GetInstanceResponse(Mapping):
        pass
    
    class GetInstancesHealthStatusRequest(Mapping):
        pass
    
    class GetInstancesHealthStatusResponse(Mapping):
        pass
    
    class ResourceId(object):
        pass
    
    class GetNamespaceRequest(Mapping):
        pass
    
    class GetNamespaceResponse(Mapping):
        pass
    
    class GetOperationRequest(Mapping):
        pass
    
    class GetOperationResponse(Mapping):
        pass
    
    class GetServiceRequest(Mapping):
        pass
    
    class GetServiceResponse(Mapping):
        pass
    
    class ListInstancesRequest(Mapping):
        pass
    
    class ListInstancesResponse(Mapping):
        pass
    
    class ListNamespacesRequest(Mapping):
        pass
    
    class ListNamespacesResponse(Mapping):
        pass
    
    class NamespaceFilter(Mapping):
        pass
    
    class ListOperationsRequest(Mapping):
        pass
    
    class ListOperationsResponse(Mapping):
        pass
    
    class OperationFilter(Mapping):
        pass
    
    class ListServicesRequest(Mapping):
        pass
    
    class ListServicesResponse(Mapping):
        pass
    
    class ServiceFilter(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class RegisterInstanceRequest(Mapping):
        pass
    
    class RegisterInstanceResponse(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateHttpNamespaceRequest(Mapping):
        pass
    
    class UpdateHttpNamespaceResponse(Mapping):
        pass
    
    class HttpNamespaceChange(Mapping):
        pass
    
    class UpdateInstanceCustomHealthStatusRequest(Mapping):
        pass
    
    class UpdatePrivateDnsNamespaceRequest(Mapping):
        pass
    
    class UpdatePrivateDnsNamespaceResponse(Mapping):
        pass
    
    class PrivateDnsNamespaceChange(Mapping):
        pass
    
    class UpdatePublicDnsNamespaceRequest(Mapping):
        pass
    
    class UpdatePublicDnsNamespaceResponse(Mapping):
        pass
    
    class PublicDnsNamespaceChange(Mapping):
        pass
    
    class UpdateServiceRequest(Mapping):
        pass
    
    class UpdateServiceResponse(Mapping):
        pass
    
    class ServiceChange(Mapping):
        pass
    
    def create_http_namespace(self, Name: str, CreatorRequestId: str=None, Description: str=None, Tags: List[Tag]=None) -> CreateHttpNamespaceResponse:
        r"""Creates an HTTP namespace. Service instances registered using an HTTP namespace can be discovered using a <code>DiscoverInstances</code> request but can't be discovered using DNS. For the current quota on the number of namespaces that you can create using the same account, see <a href="https://docs.aws.amazon.com/cloud-map/latest/dg/cloud-map-limits.html">Cloud Map quotas</a> in the <i>Cloud Map Developer Guide</i>.

        :param self:
        :param Tags:  The tags to add to the namespace. Each tag consists of a key and an optional value that you define. Tags keys can be up to 128 characters in length, and tag values can be up to 256 characters in length.<br/>Description:  A description for the namespace.<br/>CreatorRequestId:  A unique string that identifies the request and that allows failed <code>CreateHttpNamespace</code> requests to be retried without the risk of running the operation twice. <code>CreatorRequestId</code> can be any unique string (for example, a date/time stamp).<br/>Name:  The name that you want to assign to this namespace.<br/>
        :return: OperationId:  A value that you can use to determine whether the request completed successfully. To get the status of the operation, see <a href="https://docs.aws.amazon.com/cloud-map/latest/api/API_GetOperation.html">GetOperation</a>.<br/>        """
        pass

    def create_private_dns_namespace(self, Vpc: str, Name: str, CreatorRequestId: str=None, Description: str=None, Tags: List[Tag]=None, Properties: PrivateDnsNamespaceProperties=None) -> CreatePrivateDnsNamespaceResponse:
        r"""Creates a private namespace based on DNS, which is visible only inside a specified Amazon VPC. The namespace defines your service naming scheme. For example, if you name your namespace <code>example.com</code> and name your service <code>backend</code>, the resulting DNS name for the service is <code>backend.example.com</code>. Service instances that are registered using a private DNS namespace can be discovered using either a <code>DiscoverInstances</code> request or using DNS. For the current quota on the number of namespaces that you can create using the same account, see <a href="https://docs.aws.amazon.com/cloud-map/latest/dg/cloud-map-limits.html">Cloud Map quotas</a> in the <i>Cloud Map Developer Guide</i>.

        :param self:
        :param Properties:  Properties for the private DNS namespace.:<br/>Tags:  The tags to add to the namespace. Each tag consists of a key and an optional value that you define. Tags keys can be up to 128 characters in length, and tag values can be up to 256 characters in length.<br/>Vpc:  The ID of the Amazon VPC that you want to associate the namespace with.<br/>Description:  A description for the namespace.<br/>CreatorRequestId:  A unique string that identifies the request and that allows failed <code>CreatePrivateDnsNamespace</code> requests to be retried without the risk of running the operation twice. <code>CreatorRequestId</code> can be any unique string (for example, a date/timestamp).<br/>Name:  The name that you want to assign to this namespace. When you create a private DNS namespace, Cloud Map automatically creates an Amazon Route 53 private hosted zone that has the same name as the namespace.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DnsProperties</i> DNS properties for the private DNS namespace.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DnsProperties</b>: DNS properties for the private DNS namespace.<br/>Fields for the Start of Authority (SOA) record for the hosted zone for the private DNS namespace.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SOA</b>: Fields for the Start of Authority (SOA) record for the hosted zone for the private DNS namespace.
        :return: OperationId:  A value that you can use to determine whether the request completed successfully. To get the status of the operation, see <a href="https://docs.aws.amazon.com/cloud-map/latest/api/API_GetOperation.html">GetOperation</a>.<br/>        """
        pass

    def create_public_dns_namespace(self, Name: str, CreatorRequestId: str=None, Description: str=None, Tags: List[Tag]=None, Properties: PublicDnsNamespaceProperties=None) -> CreatePublicDnsNamespaceResponse:
        r"""Creates a public namespace based on DNS, which is visible on the internet. The namespace defines your service naming scheme. For example, if you name your namespace <code>example.com</code> and name your service <code>backend</code>, the resulting DNS name for the service is <code>backend.example.com</code>. You can discover instances that were registered with a public DNS namespace by using either a <code>DiscoverInstances</code> request or using DNS. For the current quota on the number of namespaces that you can create using the same account, see <a href="https://docs.aws.amazon.com/cloud-map/latest/dg/cloud-map-limits.html">Cloud Map quotas</a> in the <i>Cloud Map Developer Guide</i>.

        :param self:
        :param Properties:  Properties for the public DNS namespace.:<br/>Tags:  The tags to add to the namespace. Each tag consists of a key and an optional value that you define. Tags keys can be up to 128 characters in length, and tag values can be up to 256 characters in length.<br/>Description:  A description for the namespace.<br/>CreatorRequestId:  A unique string that identifies the request and that allows failed <code>CreatePublicDnsNamespace</code> requests to be retried without the risk of running the operation twice. <code>CreatorRequestId</code> can be any unique string (for example, a date/timestamp).<br/>Name:  The name that you want to assign to this namespace.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DnsProperties</i> DNS properties for the public DNS namespace.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DnsProperties</b>: DNS properties for the public DNS namespace.<br/>Start of Authority (SOA) record for the hosted zone for the public DNS namespace.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SOA</b>: Start of Authority (SOA) record for the hosted zone for the public DNS namespace.
        :return: OperationId:  A value that you can use to determine whether the request completed successfully. To get the status of the operation, see <a href="https://docs.aws.amazon.com/cloud-map/latest/api/API_GetOperation.html">GetOperation</a>.<br/>        """
        pass

    def create_service(self, Name: str, NamespaceId: str=None, CreatorRequestId: str=None, Description: str=None, DnsConfig: DnsConfig=None, HealthCheckConfig: HealthCheckConfig=None, HealthCheckCustomConfig: HealthCheckCustomConfig=None, Tags: List[Tag]=None, Type: str=None) -> CreateServiceResponse:
        r"""Creates a service. This action defines the configuration for the following entities: <ul> <li> For public and private DNS namespaces, one of the following combinations of DNS records in Amazon Route 53: <ul> <li>  <code>A</code>  </li> <li>  <code>AAAA</code>  </li> <li>  <code>A</code> and <code>AAAA</code>  </li> <li>  <code>SRV</code>  </li> <li>  <code>CNAME</code>  </li> </ul> </li> <li> Optionally, a health check </li> </ul> After you create the service, you can submit a <a href="https://docs.aws.amazon.com/cloud-map/latest/api/API_RegisterInstance.html">RegisterInstance</a> request, and Cloud Map uses the values in the configuration to create the specified entities. For the current quota on the number of instances that you can register using the same namespace and using the same service, see <a href="https://docs.aws.amazon.com/cloud-map/latest/dg/cloud-map-limits.html">Cloud Map quotas</a> in the <i>Cloud Map Developer Guide</i>.

        :param self:
        :param Type:  If present, specifies that the service instances are only discoverable using the <code>DiscoverInstances</code> API operation. No DNS records is registered for the service instances. The only valid value is <code>HTTP</code>.<br/>Tags:  The tags to add to the service. Each tag consists of a key and an optional value that you define. Tags keys can be up to 128 characters in length, and tag values can be up to 256 characters in length.<br/>HealthCheckCustomConfig:  A complex type that contains information about an optional custom health check. <important> If you specify a health check configuration, you can specify either <code>HealthCheckCustomConfig</code> or <code>HealthCheckConfig</code> but not both. </important> You can't add, update, or delete a <code>HealthCheckCustomConfig</code> configuration from an existing service.:<br/>HealthCheckConfig:   <i>Public DNS and HTTP namespaces only.</i> A complex type that contains settings for an optional Route 53 health check. If you specify settings for a health check, Cloud Map associates the health check with all the Route 53 DNS records that you specify in <code>DnsConfig</code>. <important> If you specify a health check configuration, you can specify either <code>HealthCheckCustomConfig</code> or <code>HealthCheckConfig</code> but not both. </important> For information about the charges for health checks, see <a href="http://aws.amazon.com/cloud-map/pricing/">Cloud Map Pricing</a>.:<br/>DnsConfig:  A complex type that contains information about the Amazon Route 53 records that you want Cloud Map to create when you register an instance. :<br/>Description:  A description for the service.<br/>CreatorRequestId:  A unique string that identifies the request and that allows failed <code>CreateService</code> requests to be retried without the risk of running the operation twice. <code>CreatorRequestId</code> can be any unique string (for example, a date/timestamp).<br/>NamespaceId:  The ID of the namespace that you want to use to create the service. The namespace ID must be specified, but it can be specified either here or in the <code>DnsConfig</code> object.<br/>Name:  The name that you want to assign to the service. If you want Cloud Map to create an <code>SRV</code> record when you register an instance and you're using a system that requires a specific <code>SRV</code> format, such as <a href="http://www.haproxy.org/">HAProxy</a>, specify the following for <code>Name</code>: <ul> <li> Start the name with an underscore (_), such as <code>_exampleservice</code>. </li> <li> End the name with <i>._protocol</i>, such as <code>._tcp</code>. </li> </ul> When you register an instance, Cloud Map creates an <code>SRV</code> record and assigns a name to the record by concatenating the service name and the namespace name (for example,  <code>_exampleservice._tcp.example.com</code>). <note> For services that are accessible by DNS queries, you can't create multiple services with names that differ only by case (such as EXAMPLE and example). Otherwise, these services have the same DNS name and can't be distinguished. However, if you use a namespace that's only accessible by API calls, then you can create services that with names that differ only by case. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DnsRecords</i> An array that contains one <code>DnsRecord</code> object for each Route 53 DNS record that you want Cloud Map to create when you register an instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoutingPolicy</i> The routing policy that you want to apply to all Route 53 DNS records that Cloud Map creates when you register an instance and specify this service. <note> If you want to use this service to register instances that create alias records, specify <code>WEIGHTED</code> for the routing policy. </note> You can specify the following values: <dl> <dt>MULTIVALUE</dt> <dd> If you define a health check for the service and the health check is healthy, Route 53 returns the applicable value for up to eight instances. For example, suppose that the service includes configurations for one <code>A</code> record and a health check. You use the service to register 10 instances. Route 53 responds to DNS queries with IP addresses for up to eight healthy instances. If fewer than eight instances are healthy, Route 53 responds to every DNS query with the IP addresses for all of the healthy instances. If you don't define a health check for the service, Route 53 assumes that all instances are healthy and returns the values for up to eight instances. For more information about the multivalue routing policy, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy.html#routing-policy-multivalue">Multivalue Answer Routing</a> in the <i>Route 53 Developer Guide</i>. </dd> <dt>WEIGHTED</dt> <dd> Route 53 returns the applicable value from one randomly selected instance from among the instances that you registered using the same service. Currently, all records have the same weight, so you can't route more or less traffic to any instances. For example, suppose that the service includes configurations for one <code>A</code> record and a health check. You use the service to register 10 instances. Route 53 responds to DNS queries with the IP address for one randomly selected instance from among the healthy instances. If no instances are healthy, Route 53 responds to DNS queries as if all of the instances were healthy. If you don't define a health check for the service, Route 53 assumes that all instances are healthy and returns the applicable value for one randomly selected instance. For more information about the weighted routing policy, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy.html#routing-policy-weighted">Weighted Routing</a> in the <i>Route 53 Developer Guide</i>. </dd> </dl><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NamespaceId</i> The ID of the namespace to use for DNS configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FailureThreshold</i> The number of consecutive health checks that an endpoint must pass or fail for Route 53 to change the current status of the endpoint from unhealthy to healthy or the other way around. For more information, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-determining-health-of-endpoints.html">How Route 53 Determines Whether an Endpoint Is Healthy</a> in the <i>Route 53 Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourcePath</i> The path that you want Route 53 to request when performing health checks. The path can be any value that your endpoint returns an HTTP status code of a 2xx or 3xx format for when the endpoint is healthy. An example file is <code>/docs/route53-health-check.html</code>. Route 53 automatically adds the DNS name for the service. If you don't specify a value for <code>ResourcePath</code>, the default value is <code>/</code>. If you specify <code>TCP</code> for <code>Type</code>, you must <i>not</i> specify a value for <code>ResourcePath</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of health check that you want to create, which indicates how Route 53 determines whether an endpoint is healthy. <important> You can't change the value of <code>Type</code> after you create a health check. </important> You can create the following types of health checks: <ul> <li>  <b>HTTP</b>: Route 53 tries to establish a TCP connection. If successful, Route 53 submits an HTTP request and waits for an HTTP status code of 200 or greater and less than 400. </li> <li>  <b>HTTPS</b>: Route 53 tries to establish a TCP connection. If successful, Route 53 submits an HTTPS request and waits for an HTTP status code of 200 or greater and less than 400. <important> If you specify HTTPS for the value of <code>Type</code>, the endpoint must support TLS v1.0 or later. </important> </li> <li>  <b>TCP</b>: Route 53 tries to establish a TCP connection. If you specify <code>TCP</code> for <code>Type</code>, don't specify a value for <code>ResourcePath</code>. </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-determining-health-of-endpoints.html">How Route 53 Determines Whether an Endpoint Is Healthy</a> in the <i>Route 53 Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FailureThreshold</i> <important> This parameter is no longer supported and is always set to 1. Cloud Map waits for approximately 30 seconds after receiving an <code>UpdateInstanceCustomHealthStatus</code> request before changing the status of the service instance. </important> The number of 30-second intervals that you want Cloud Map to wait after receiving an <code>UpdateInstanceCustomHealthStatus</code> request before it changes the health status of a service instance. Sending a second or subsequent <code>UpdateInstanceCustomHealthStatus</code> request with the same value before 30 seconds has passed doesn't accelerate the change. Cloud Map still waits <code>30</code> seconds after the first request to make the change.<br/>
        :return: Service:  A complex type that contains information about the new service.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatorRequestId</i> A unique string that identifies the request and that allows failed requests to be retried without the risk of running the operation twice. <code>CreatorRequestId</code> can be any unique string (for example, a date/timestamp).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreateDate</i> The date and time that the service was created, in Unix format and Coordinated Universal Time (UTC). The value of <code>CreateDate</code> is accurate to milliseconds. For example, the value <code>1516925490.087</code> represents Friday, January 26, 2018 12:11:30.087 AM.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HealthCheckCustomConfig</i> A complex type that contains information about an optional custom health check. <important> If you specify a health check configuration, you can specify either <code>HealthCheckCustomConfig</code> or <code>HealthCheckConfig</code> but not both. </important>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>HealthCheckCustomConfig</b>: A complex type that contains information about an optional custom health check. <important> If you specify a health check configuration, you can specify either <code>HealthCheckCustomConfig</code> or <code>HealthCheckConfig</code> but not both. </important><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HealthCheckConfig</i>  <i>Public DNS and HTTP namespaces only.</i> A complex type that contains settings for an optional health check. If you specify settings for a health check, Cloud Map associates the health check with the records that you specify in <code>DnsConfig</code>. For information about the charges for health checks, see <a href="http://aws.amazon.com/route53/pricing/">Amazon Route 53 Pricing</a>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>HealthCheckConfig</b>:  <i>Public DNS and HTTP namespaces only.</i> A complex type that contains settings for an optional health check. If you specify settings for a health check, Cloud Map associates the health check with the records that you specify in <code>DnsConfig</code>. For information about the charges for health checks, see <a href="http://aws.amazon.com/route53/pricing/">Amazon Route 53 Pricing</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> Describes the systems that can be used to discover the service instances. <dl> <dt>DNS_HTTP</dt> <dd> The service instances can be discovered using either DNS queries or the <code>DiscoverInstances</code> API operation. </dd> <dt>HTTP</dt> <dd> The service instances can only be discovered using the <code>DiscoverInstances</code> API operation. </dd> <dt>DNS</dt> <dd> Reserved. </dd> </dl><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DnsConfig</i> A complex type that contains information about the Route 53 DNS records that you want Cloud Map to create when you register an instance.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DnsConfig</b>: A complex type that contains information about the Route 53 DNS records that you want Cloud Map to create when you register an instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceCount</i> The number of instances that are currently associated with the service. Instances that were previously associated with the service but that are deleted aren't included in the count. The count might not reflect pending registrations and deregistrations.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NamespaceId</i> The ID of the namespace that was used to create the service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) that Cloud Map assigns to the service when you create it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID that Cloud Map assigned to the service when you created it.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DnsRecords</i> An array that contains one <code>DnsRecord</code> object for each Route 53 DNS record that you want Cloud Map to create when you register an instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RoutingPolicy</i> The routing policy that you want to apply to all Route 53 DNS records that Cloud Map creates when you register an instance and specify this service. <note> If you want to use this service to register instances that create alias records, specify <code>WEIGHTED</code> for the routing policy. </note> You can specify the following values: <dl> <dt>MULTIVALUE</dt> <dd> If you define a health check for the service and the health check is healthy, Route 53 returns the applicable value for up to eight instances. For example, suppose that the service includes configurations for one <code>A</code> record and a health check. You use the service to register 10 instances. Route 53 responds to DNS queries with IP addresses for up to eight healthy instances. If fewer than eight instances are healthy, Route 53 responds to every DNS query with the IP addresses for all of the healthy instances. If you don't define a health check for the service, Route 53 assumes that all instances are healthy and returns the values for up to eight instances. For more information about the multivalue routing policy, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy.html#routing-policy-multivalue">Multivalue Answer Routing</a> in the <i>Route 53 Developer Guide</i>. </dd> <dt>WEIGHTED</dt> <dd> Route 53 returns the applicable value from one randomly selected instance from among the instances that you registered using the same service. Currently, all records have the same weight, so you can't route more or less traffic to any instances. For example, suppose that the service includes configurations for one <code>A</code> record and a health check. You use the service to register 10 instances. Route 53 responds to DNS queries with the IP address for one randomly selected instance from among the healthy instances. If no instances are healthy, Route 53 responds to DNS queries as if all of the instances were healthy. If you don't define a health check for the service, Route 53 assumes that all instances are healthy and returns the applicable value for one randomly selected instance. For more information about the weighted routing policy, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy.html#routing-policy-weighted">Weighted Routing</a> in the <i>Route 53 Developer Guide</i>. </dd> </dl><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NamespaceId</i> The ID of the namespace to use for DNS configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FailureThreshold</i> The number of consecutive health checks that an endpoint must pass or fail for Route 53 to change the current status of the endpoint from unhealthy to healthy or the other way around. For more information, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-determining-health-of-endpoints.html">How Route 53 Determines Whether an Endpoint Is Healthy</a> in the <i>Route 53 Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourcePath</i> The path that you want Route 53 to request when performing health checks. The path can be any value that your endpoint returns an HTTP status code of a 2xx or 3xx format for when the endpoint is healthy. An example file is <code>/docs/route53-health-check.html</code>. Route 53 automatically adds the DNS name for the service. If you don't specify a value for <code>ResourcePath</code>, the default value is <code>/</code>. If you specify <code>TCP</code> for <code>Type</code>, you must <i>not</i> specify a value for <code>ResourcePath</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of health check that you want to create, which indicates how Route 53 determines whether an endpoint is healthy. <important> You can't change the value of <code>Type</code> after you create a health check. </important> You can create the following types of health checks: <ul> <li>  <b>HTTP</b>: Route 53 tries to establish a TCP connection. If successful, Route 53 submits an HTTP request and waits for an HTTP status code of 200 or greater and less than 400. </li> <li>  <b>HTTPS</b>: Route 53 tries to establish a TCP connection. If successful, Route 53 submits an HTTPS request and waits for an HTTP status code of 200 or greater and less than 400. <important> If you specify HTTPS for the value of <code>Type</code>, the endpoint must support TLS v1.0 or later. </important> </li> <li>  <b>TCP</b>: Route 53 tries to establish a TCP connection. If you specify <code>TCP</code> for <code>Type</code>, don't specify a value for <code>ResourcePath</code>. </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-determining-health-of-endpoints.html">How Route 53 Determines Whether an Endpoint Is Healthy</a> in the <i>Route 53 Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FailureThreshold</i> <important> This parameter is no longer supported and is always set to 1. Cloud Map waits for approximately 30 seconds after receiving an <code>UpdateInstanceCustomHealthStatus</code> request before changing the status of the service instance. </important> The number of 30-second intervals that you want Cloud Map to wait after receiving an <code>UpdateInstanceCustomHealthStatus</code> request before it changes the health status of a service instance. Sending a second or subsequent <code>UpdateInstanceCustomHealthStatus</code> request with the same value before 30 seconds has passed doesn't accelerate the change. Cloud Map still waits <code>30</code> seconds after the first request to make the change.<br/>        """
        pass

    def delete_namespace(self, Id: str) -> DeleteNamespaceResponse:
        r"""Deletes a namespace from the current account. If the namespace still contains one or more services, the request fails.

        :param self:
        :param Id:  The ID of the namespace that you want to delete.<br/>
        :return: OperationId:  A value that you can use to determine whether the request completed successfully. To get the status of the operation, see <a href="https://docs.aws.amazon.com/cloud-map/latest/api/API_GetOperation.html">GetOperation</a>.<br/>        """
        pass

    def delete_service(self, Id: str) -> DeleteServiceResponse:
        r"""Deletes a specified service. If the service still contains one or more registered instances, the request fails.

        :param self:
        :param Id:  The ID of the service that you want to delete.<br/>
        :return:         """
        pass

    def deregister_instance(self, InstanceId: str, ServiceId: str) -> DeregisterInstanceResponse:
        r"""Deletes the Amazon Route 53 DNS records and health check, if any, that Cloud Map created for the specified instance.

        :param self:
        :param InstanceId:  The value that you specified for <code>Id</code> in the <a href="https://docs.aws.amazon.com/cloud-map/latest/api/API_RegisterInstance.html">RegisterInstance</a> request.<br/>ServiceId:  The ID of the service that the instance is associated with.<br/>
        :return: OperationId:  A value that you can use to determine whether the request completed successfully. To get the status of the operation, see <a href="https://docs.aws.amazon.com/cloud-map/latest/api/API_GetOperation.html">GetOperation</a>.<br/>        """
        pass

    def discover_instances(self, ServiceName: str, NamespaceName: str, MaxResults: int=None, QueryParameters: Attributes=None, OptionalParameters: Attributes=None, HealthStatus: str=None) -> DiscoverInstancesResponse:
        r"""Discovers registered instances for a specified namespace and service. You can use <code>DiscoverInstances</code> to discover instances for any type of namespace. For public and private DNS namespaces, you can also use DNS queries to discover instances.

        :param self:
        :param HealthStatus:  The health status of the instances that you want to discover. This parameter is ignored for services that don't have a health check configured, and all instances are returned. <dl> <dt>HEALTHY</dt> <dd> Returns healthy instances. </dd> <dt>UNHEALTHY</dt> <dd> Returns unhealthy instances. </dd> <dt>ALL</dt> <dd> Returns all instances. </dd> <dt>HEALTHY_OR_ELSE_ALL</dt> <dd> Returns healthy instances, unless none are reporting a healthy state. In that case, return all instances. This is also called failing open. </dd> </dl><br/>OptionalParameters:  Opportunistic filters to scope the results based on custom attributes. If there are instances that match both the filters specified in both the <code>QueryParameters</code> parameter and this parameter, all of these instances are returned. Otherwise, the filters are ignored, and only instances that match the filters that are specified in the <code>QueryParameters</code> parameter are returned.<br/>QueryParameters:  Filters to scope the results based on custom attributes for the instance (for example, <code>{version=v1, az=1a}</code>). Only instances that match all the specified key-value pairs are returned.<br/>MaxResults:  The maximum number of instances that you want Cloud Map to return in the response to a <code>DiscoverInstances</code> request. If you don't specify a value for <code>MaxResults</code>, Cloud Map returns up to 100 instances.<br/>ServiceName:  The name of the service that you specified when you registered the instance.<br/>NamespaceName:  The <code>HttpName</code> name of the namespace. It's found in the <code>HttpProperties</code> member of the <code>Properties</code> member of the namespace.<br/>
        :return: Instances:  A complex type that contains one <code>HttpInstanceSummary</code> for each registered instance.<br/>        """
        pass

    def get_instance(self, InstanceId: str, ServiceId: str) -> GetInstanceResponse:
        r"""Gets information about a specified instance.

        :param self:
        :param InstanceId:  The ID of the instance that you want to get information about.<br/>ServiceId:  The ID of the service that the instance is associated with.<br/>
        :return: Instance:  A complex type that contains information about a specified instance.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Attributes</i> A string map that contains the following information for the service that you specify in <code>ServiceId</code>: <ul> <li> The attributes that apply to the records that are defined in the service.  </li> <li> For each attribute, the applicable value. </li> </ul> Supported attribute keys include the following: <dl> <dt>AWS_ALIAS_DNS_NAME</dt> <dd> If you want Cloud Map to create a Route 53 alias record that routes traffic to an Elastic Load Balancing load balancer, specify the DNS name that's associated with the load balancer. For information about how to get the DNS name, see <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_AliasTarget.html#Route53-Type-AliasTarget-DNSName">AliasTarget-&gt;DNSName</a> in the <i>Route 53 API Reference</i>. Note the following: <ul> <li> The configuration for the service that's specified by <code>ServiceId</code> must include settings for an <code>A</code> record, an <code>AAAA</code> record, or both. </li> <li> In the service that's specified by <code>ServiceId</code>, the value of <code>RoutingPolicy</code> must be <code>WEIGHTED</code>. </li> <li> If the service that's specified by <code>ServiceId</code> includes <code>HealthCheckConfig</code> settings, Cloud Map creates the health check, but it won't associate the health check with the alias record. </li> <li> Auto naming currently doesn't support creating alias records that route traffic to Amazon Web Services resources other than ELB load balancers. </li> <li> If you specify a value for <code>AWS_ALIAS_DNS_NAME</code>, don't specify values for any of the <code>AWS_INSTANCE</code> attributes. </li> </ul> </dd> <dt>AWS_EC2_INSTANCE_ID</dt> <dd>  <i>HTTP namespaces only.</i> The Amazon EC2 instance ID for the instance. The <code>AWS_INSTANCE_IPV4</code> attribute contains the primary private IPv4 address. </dd> <dt>AWS_INIT_HEALTH_STATUS</dt> <dd> If the service configuration includes <code>HealthCheckCustomConfig</code>, you can optionally use <code>AWS_INIT_HEALTH_STATUS</code> to specify the initial status of the custom health check, <code>HEALTHY</code> or <code>UNHEALTHY</code>. If you don't specify a value for <code>AWS_INIT_HEALTH_STATUS</code>, the initial status is <code>HEALTHY</code>. </dd> <dt>AWS_INSTANCE_CNAME</dt> <dd> If the service configuration includes a <code>CNAME</code> record, the domain name that you want Route 53 to return in response to DNS queries (for example, <code>example.com</code>). This value is required if the service specified by <code>ServiceId</code> includes settings for an <code>CNAME</code> record. </dd> <dt>AWS_INSTANCE_IPV4</dt> <dd> If the service configuration includes an <code>A</code> record, the IPv4 address that you want Route 53 to return in response to DNS queries (for example, <code>192.0.2.44</code>). This value is required if the service specified by <code>ServiceId</code> includes settings for an <code>A</code> record. If the service includes settings for an <code>SRV</code> record, you must specify a value for <code>AWS_INSTANCE_IPV4</code>, <code>AWS_INSTANCE_IPV6</code>, or both. </dd> <dt>AWS_INSTANCE_IPV6</dt> <dd> If the service configuration includes an <code>AAAA</code> record, the IPv6 address that you want Route 53 to return in response to DNS queries (for example, <code>2001:0db8:85a3:0000:0000:abcd:0001:2345</code>). This value is required if the service specified by <code>ServiceId</code> includes settings for an <code>AAAA</code> record. If the service includes settings for an <code>SRV</code> record, you must specify a value for <code>AWS_INSTANCE_IPV4</code>, <code>AWS_INSTANCE_IPV6</code>, or both. </dd> <dt>AWS_INSTANCE_PORT</dt> <dd> If the service includes an <code>SRV</code> record, the value that you want Route 53 to return for the port. If the service includes <code>HealthCheckConfig</code>, the port on the endpoint that you want Route 53 to send requests to.  This value is required if you specified settings for an <code>SRV</code> record or a Route 53 health check when you created the service. </dd> </dl><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatorRequestId</i> A unique string that identifies the request and that allows failed <code>RegisterInstance</code> requests to be retried without the risk of executing the operation twice. You must use a unique <code>CreatorRequestId</code> string every time you submit a <code>RegisterInstance</code> request if you're registering additional instances for the same namespace and service. <code>CreatorRequestId</code> can be any unique string (for example, a date/time stamp).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> An identifier that you want to associate with the instance. Note the following: <ul> <li> If the service that's specified by <code>ServiceId</code> includes settings for an <code>SRV</code> record, the value of <code>InstanceId</code> is automatically included as part of the value for the <code>SRV</code> record. For more information, see <a href="https://docs.aws.amazon.com/cloud-map/latest/api/API_DnsRecord.html#cloudmap-Type-DnsRecord-Type">DnsRecord &gt; Type</a>. </li> <li> You can use this value to update an existing instance. </li> <li> To register a new instance, you must specify a value that's unique among instances that you register by using the same service.  </li> <li> If you specify an existing <code>InstanceId</code> and <code>ServiceId</code>, Cloud Map updates the existing DNS records. If there's also an existing health check, Cloud Map deletes the old health check and creates a new one.  <note> The health check isn't deleted immediately, so it will still appear for a while if you submit a <code>ListHealthChecks</code> request, for example. </note> </li> </ul><br/>        """
        pass

    def get_instances_health_status(self, ServiceId: str, Instances: List[ResourceId]=None, MaxResults: int=None, NextToken: str=None) -> GetInstancesHealthStatusResponse:
        r"""Gets the current health status (<code>Healthy</code>, <code>Unhealthy</code>, or <code>Unknown</code>) of one or more instances that are associated with a specified service. <note> There's a brief delay between when you register an instance and when the health status for the instance is available.  </note>

        :param self:
        :param NextToken:  For the first <code>GetInstancesHealthStatus</code> request, omit this value. If more than <code>MaxResults</code> instances match the specified criteria, you can submit another <code>GetInstancesHealthStatus</code> request to get the next group of results. Specify the value of <code>NextToken</code> from the previous response in the next request.<br/>MaxResults:  The maximum number of instances that you want Cloud Map to return in the response to a <code>GetInstancesHealthStatus</code> request. If you don't specify a value for <code>MaxResults</code>, Cloud Map returns up to 100 instances.<br/>Instances:  An array that contains the IDs of all the instances that you want to get the health status for. If you omit <code>Instances</code>, Cloud Map returns the health status for all the instances that are associated with the specified service. <note> To get the IDs for the instances that you've registered by using a specified service, submit a <a href="https://docs.aws.amazon.com/cloud-map/latest/api/API_ListInstances.html">ListInstances</a> request. </note><br/>ServiceId:  The ID of the service that the instance is associated with.<br/>
        :return: NextToken:  If more than <code>MaxResults</code> instances match the specified criteria, you can submit another <code>GetInstancesHealthStatus</code> request to get the next group of results. Specify the value of <code>NextToken</code> from the previous response in the next request.<br/>Status:  A complex type that contains the IDs and the health status of the instances that you specified in the <code>GetInstancesHealthStatus</code> request.<br/>        """
        pass

    def get_namespace(self, Id: str) -> GetNamespaceResponse:
        r"""Gets information about a namespace.

        :param self:
        :param Id:  The ID of the namespace that you want to get information about.<br/>
        :return: Namespace:  A complex type that contains information about the specified namespace.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatorRequestId</i> A unique string that identifies the request and that allows failed requests to be retried without the risk of running an operation twice. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreateDate</i> The date that the namespace was created, in Unix date/time format and Coordinated Universal Time (UTC). The value of <code>CreateDate</code> is accurate to milliseconds. For example, the value <code>1516925490.087</code> represents Friday, January 26, 2018 12:11:30.087 AM.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Properties</i> A complex type that contains information that's specific to the type of the namespace.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Properties</b>: A complex type that contains information that's specific to the type of the namespace.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceCount</i> The number of services that are associated with the namespace.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description that you specify for the namespace when you create it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of the namespace. The methods for discovering instances depends on the value that you specify: <dl> <dt>HTTP</dt> <dd> Instances can be discovered only programmatically, using the Cloud Map <code>DiscoverInstances</code> API. </dd> <dt>DNS_PUBLIC</dt> <dd> Instances can be discovered using public DNS queries and using the <code>DiscoverInstances</code> API. </dd> <dt>DNS_PRIVATE</dt> <dd> Instances can be discovered using DNS queries in VPCs and using the <code>DiscoverInstances</code> API. </dd> </dl><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the namespace, such as <code>example.com</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) that Cloud Map assigns to the namespace when you create it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID of a namespace.<br/>A complex type that contains the ID for the Route 53 hosted zone that Cloud Map creates when you create a namespace.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DnsProperties</b>: A complex type that contains the ID for the Route 53 hosted zone that Cloud Map creates when you create a namespace.        """
        pass

    def get_operation(self, OperationId: str) -> GetOperationResponse:
        r"""Gets information about any operation that returns an operation ID in the response, such as a <code>CreateService</code> request. <note> To get a list of operations that match specified criteria, see <a href="https://docs.aws.amazon.com/cloud-map/latest/api/API_ListOperations.html">ListOperations</a>. </note>

        :param self:
        :param OperationId:  The ID of the operation that you want to get more information about.<br/>
        :return: Operation:  A complex type that contains information about the operation.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Targets</i> The name of the target entity that's associated with the operation: <dl> <dt>NAMESPACE</dt> <dd> The namespace ID is returned in the <code>ResourceId</code> property. </dd> <dt>SERVICE</dt> <dd> The service ID is returned in the <code>ResourceId</code> property. </dd> <dt>INSTANCE</dt> <dd> The instance ID is returned in the <code>ResourceId</code> property. </dd> </dl><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdateDate</i> The date and time that the value of <code>Status</code> changed to the current value, in Unix date/time format and Coordinated Universal Time (UTC). The value of <code>UpdateDate</code> is accurate to milliseconds. For example, the value <code>1516925490.087</code> represents Friday, January 26, 2018 12:11:30.087 AM.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreateDate</i> The date and time that the request was submitted, in Unix date/time format and Coordinated Universal Time (UTC). The value of <code>CreateDate</code> is accurate to milliseconds. For example, the value <code>1516925490.087</code> represents Friday, January 26, 2018 12:11:30.087 AM.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorCode</i> The code associated with <code>ErrorMessage</code>. Values for <code>ErrorCode</code> include the following: <ul> <li>  <code>ACCESS_DENIED</code>  </li> <li>  <code>CANNOT_CREATE_HOSTED_ZONE</code>  </li> <li>  <code>EXPIRED_TOKEN</code>  </li> <li>  <code>HOSTED_ZONE_NOT_FOUND</code>  </li> <li>  <code>INTERNAL_FAILURE</code>  </li> <li>  <code>INVALID_CHANGE_BATCH</code>  </li> <li>  <code>THROTTLED_REQUEST</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorMessage</i> If the value of <code>Status</code> is <code>FAIL</code>, the reason that the operation failed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the operation. Values include the following: <dl> <dt>SUBMITTED</dt> <dd> This is the initial state that occurs immediately after you submit a request. </dd> <dt>PENDING</dt> <dd> Cloud Map is performing the operation. </dd> <dt>SUCCESS</dt> <dd> The operation succeeded. </dd> <dt>FAIL</dt> <dd> The operation failed. For the failure reason, see <code>ErrorMessage</code>. </dd> </dl><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The name of the operation that's associated with the specified ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID of the operation that you want to get information about.<br/>        """
        pass

    def get_service(self, Id: str) -> GetServiceResponse:
        r"""Gets the settings for a specified service.

        :param self:
        :param Id:  The ID of the service that you want to get settings for.<br/>
        :return: Service:  A complex type that contains information about the service.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatorRequestId</i> A unique string that identifies the request and that allows failed requests to be retried without the risk of running the operation twice. <code>CreatorRequestId</code> can be any unique string (for example, a date/timestamp).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreateDate</i> The date and time that the service was created, in Unix format and Coordinated Universal Time (UTC). The value of <code>CreateDate</code> is accurate to milliseconds. For example, the value <code>1516925490.087</code> represents Friday, January 26, 2018 12:11:30.087 AM.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HealthCheckCustomConfig</i> A complex type that contains information about an optional custom health check. <important> If you specify a health check configuration, you can specify either <code>HealthCheckCustomConfig</code> or <code>HealthCheckConfig</code> but not both. </important>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>HealthCheckCustomConfig</b>: A complex type that contains information about an optional custom health check. <important> If you specify a health check configuration, you can specify either <code>HealthCheckCustomConfig</code> or <code>HealthCheckConfig</code> but not both. </important><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HealthCheckConfig</i>  <i>Public DNS and HTTP namespaces only.</i> A complex type that contains settings for an optional health check. If you specify settings for a health check, Cloud Map associates the health check with the records that you specify in <code>DnsConfig</code>. For information about the charges for health checks, see <a href="http://aws.amazon.com/route53/pricing/">Amazon Route 53 Pricing</a>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>HealthCheckConfig</b>:  <i>Public DNS and HTTP namespaces only.</i> A complex type that contains settings for an optional health check. If you specify settings for a health check, Cloud Map associates the health check with the records that you specify in <code>DnsConfig</code>. For information about the charges for health checks, see <a href="http://aws.amazon.com/route53/pricing/">Amazon Route 53 Pricing</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> Describes the systems that can be used to discover the service instances. <dl> <dt>DNS_HTTP</dt> <dd> The service instances can be discovered using either DNS queries or the <code>DiscoverInstances</code> API operation. </dd> <dt>HTTP</dt> <dd> The service instances can only be discovered using the <code>DiscoverInstances</code> API operation. </dd> <dt>DNS</dt> <dd> Reserved. </dd> </dl><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DnsConfig</i> A complex type that contains information about the Route 53 DNS records that you want Cloud Map to create when you register an instance.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DnsConfig</b>: A complex type that contains information about the Route 53 DNS records that you want Cloud Map to create when you register an instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceCount</i> The number of instances that are currently associated with the service. Instances that were previously associated with the service but that are deleted aren't included in the count. The count might not reflect pending registrations and deregistrations.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NamespaceId</i> The ID of the namespace that was used to create the service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the service.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) that Cloud Map assigns to the service when you create it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID that Cloud Map assigned to the service when you created it.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DnsRecords</i> An array that contains one <code>DnsRecord</code> object for each Route 53 DNS record that you want Cloud Map to create when you register an instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RoutingPolicy</i> The routing policy that you want to apply to all Route 53 DNS records that Cloud Map creates when you register an instance and specify this service. <note> If you want to use this service to register instances that create alias records, specify <code>WEIGHTED</code> for the routing policy. </note> You can specify the following values: <dl> <dt>MULTIVALUE</dt> <dd> If you define a health check for the service and the health check is healthy, Route 53 returns the applicable value for up to eight instances. For example, suppose that the service includes configurations for one <code>A</code> record and a health check. You use the service to register 10 instances. Route 53 responds to DNS queries with IP addresses for up to eight healthy instances. If fewer than eight instances are healthy, Route 53 responds to every DNS query with the IP addresses for all of the healthy instances. If you don't define a health check for the service, Route 53 assumes that all instances are healthy and returns the values for up to eight instances. For more information about the multivalue routing policy, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy.html#routing-policy-multivalue">Multivalue Answer Routing</a> in the <i>Route 53 Developer Guide</i>. </dd> <dt>WEIGHTED</dt> <dd> Route 53 returns the applicable value from one randomly selected instance from among the instances that you registered using the same service. Currently, all records have the same weight, so you can't route more or less traffic to any instances. For example, suppose that the service includes configurations for one <code>A</code> record and a health check. You use the service to register 10 instances. Route 53 responds to DNS queries with the IP address for one randomly selected instance from among the healthy instances. If no instances are healthy, Route 53 responds to DNS queries as if all of the instances were healthy. If you don't define a health check for the service, Route 53 assumes that all instances are healthy and returns the applicable value for one randomly selected instance. For more information about the weighted routing policy, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy.html#routing-policy-weighted">Weighted Routing</a> in the <i>Route 53 Developer Guide</i>. </dd> </dl><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NamespaceId</i> The ID of the namespace to use for DNS configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FailureThreshold</i> The number of consecutive health checks that an endpoint must pass or fail for Route 53 to change the current status of the endpoint from unhealthy to healthy or the other way around. For more information, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-determining-health-of-endpoints.html">How Route 53 Determines Whether an Endpoint Is Healthy</a> in the <i>Route 53 Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourcePath</i> The path that you want Route 53 to request when performing health checks. The path can be any value that your endpoint returns an HTTP status code of a 2xx or 3xx format for when the endpoint is healthy. An example file is <code>/docs/route53-health-check.html</code>. Route 53 automatically adds the DNS name for the service. If you don't specify a value for <code>ResourcePath</code>, the default value is <code>/</code>. If you specify <code>TCP</code> for <code>Type</code>, you must <i>not</i> specify a value for <code>ResourcePath</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of health check that you want to create, which indicates how Route 53 determines whether an endpoint is healthy. <important> You can't change the value of <code>Type</code> after you create a health check. </important> You can create the following types of health checks: <ul> <li>  <b>HTTP</b>: Route 53 tries to establish a TCP connection. If successful, Route 53 submits an HTTP request and waits for an HTTP status code of 200 or greater and less than 400. </li> <li>  <b>HTTPS</b>: Route 53 tries to establish a TCP connection. If successful, Route 53 submits an HTTPS request and waits for an HTTP status code of 200 or greater and less than 400. <important> If you specify HTTPS for the value of <code>Type</code>, the endpoint must support TLS v1.0 or later. </important> </li> <li>  <b>TCP</b>: Route 53 tries to establish a TCP connection. If you specify <code>TCP</code> for <code>Type</code>, don't specify a value for <code>ResourcePath</code>. </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-determining-health-of-endpoints.html">How Route 53 Determines Whether an Endpoint Is Healthy</a> in the <i>Route 53 Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FailureThreshold</i> <important> This parameter is no longer supported and is always set to 1. Cloud Map waits for approximately 30 seconds after receiving an <code>UpdateInstanceCustomHealthStatus</code> request before changing the status of the service instance. </important> The number of 30-second intervals that you want Cloud Map to wait after receiving an <code>UpdateInstanceCustomHealthStatus</code> request before it changes the health status of a service instance. Sending a second or subsequent <code>UpdateInstanceCustomHealthStatus</code> request with the same value before 30 seconds has passed doesn't accelerate the change. Cloud Map still waits <code>30</code> seconds after the first request to make the change.<br/>        """
        pass

    def list_instances(self, ServiceId: str, NextToken: str=None, MaxResults: int=None) -> ListInstancesResponse:
        r"""Lists summary information about the instances that you registered by using a specified service.

        :param self:
        :param MaxResults:  The maximum number of instances that you want Cloud Map to return in the response to a <code>ListInstances</code> request. If you don't specify a value for <code>MaxResults</code>, Cloud Map returns up to 100 instances.<br/>NextToken:  For the first <code>ListInstances</code> request, omit this value. If more than <code>MaxResults</code> instances match the specified criteria, you can submit another <code>ListInstances</code> request to get the next group of results. Specify the value of <code>NextToken</code> from the previous response in the next request.<br/>ServiceId:  The ID of the service that you want to list instances for.<br/>
        :return: NextToken:  If more than <code>MaxResults</code> instances match the specified criteria, you can submit another <code>ListInstances</code> request to get the next group of results. Specify the value of <code>NextToken</code> from the previous response in the next request.<br/>Instances:  Summary information about the instances that are associated with the specified service.<br/>        """
        pass

    def list_namespaces(self, NextToken: str=None, MaxResults: int=None, Filters: List[NamespaceFilter]=None) -> ListNamespacesResponse:
        r"""Lists summary information about the namespaces that were created by the current account.

        :param self:
        :param Filters:  A complex type that contains specifications for the namespaces that you want to list. If you specify more than one filter, a namespace must match all filters to be returned by <code>ListNamespaces</code>.<br/>MaxResults:  The maximum number of namespaces that you want Cloud Map to return in the response to a <code>ListNamespaces</code> request. If you don't specify a value for <code>MaxResults</code>, Cloud Map returns up to 100 namespaces.<br/>NextToken:  For the first <code>ListNamespaces</code> request, omit this value. If the response contains <code>NextToken</code>, submit another <code>ListNamespaces</code> request to get the next group of results. Specify the value of <code>NextToken</code> from the previous response in the next request. <note> Cloud Map gets <code>MaxResults</code> namespaces and then filters them based on the specified criteria. It's possible that no namespaces in the first <code>MaxResults</code> namespaces matched the specified criteria but that subsequent groups of <code>MaxResults</code> namespaces do contain namespaces that match the criteria. </note><br/>
        :return: NextToken:  If the response contains <code>NextToken</code>, submit another <code>ListNamespaces</code> request to get the next group of results. Specify the value of <code>NextToken</code> from the previous response in the next request. <note> Cloud Map gets <code>MaxResults</code> namespaces and then filters them based on the specified criteria. It's possible that no namespaces in the first <code>MaxResults</code> namespaces matched the specified criteria but that subsequent groups of <code>MaxResults</code> namespaces do contain namespaces that match the criteria. </note><br/>Namespaces:  An array that contains one <code>NamespaceSummary</code> object for each namespace that matches the specified filter criteria.<br/>        """
        pass

    def list_operations(self, NextToken: str=None, MaxResults: int=None, Filters: List[OperationFilter]=None) -> ListOperationsResponse:
        r"""Lists operations that match the criteria that you specify.

        :param self:
        :param Filters:  A complex type that contains specifications for the operations that you want to list, for example, operations that you started between a specified start date and end date. If you specify more than one filter, an operation must match all filters to be returned by <code>ListOperations</code>.<br/>MaxResults:  The maximum number of items that you want Cloud Map to return in the response to a <code>ListOperations</code> request. If you don't specify a value for <code>MaxResults</code>, Cloud Map returns up to 100 operations.<br/>NextToken:  For the first <code>ListOperations</code> request, omit this value. If the response contains <code>NextToken</code>, submit another <code>ListOperations</code> request to get the next group of results. Specify the value of <code>NextToken</code> from the previous response in the next request. <note> Cloud Map gets <code>MaxResults</code> operations and then filters them based on the specified criteria. It's possible that no operations in the first <code>MaxResults</code> operations matched the specified criteria but that subsequent groups of <code>MaxResults</code> operations do contain operations that match the criteria. </note><br/>
        :return: NextToken:  If the response contains <code>NextToken</code>, submit another <code>ListOperations</code> request to get the next group of results. Specify the value of <code>NextToken</code> from the previous response in the next request. <note> Cloud Map gets <code>MaxResults</code> operations and then filters them based on the specified criteria. It's possible that no operations in the first <code>MaxResults</code> operations matched the specified criteria but that subsequent groups of <code>MaxResults</code> operations do contain operations that match the criteria. </note><br/>Operations:  Summary information about the operations that match the specified criteria.<br/>        """
        pass

    def list_services(self, NextToken: str=None, MaxResults: int=None, Filters: List[ServiceFilter]=None) -> ListServicesResponse:
        r"""Lists summary information for all the services that are associated with one or more specified namespaces.

        :param self:
        :param Filters:  A complex type that contains specifications for the namespaces that you want to list services for.  If you specify more than one filter, an operation must match all filters to be returned by <code>ListServices</code>.<br/>MaxResults:  The maximum number of services that you want Cloud Map to return in the response to a <code>ListServices</code> request. If you don't specify a value for <code>MaxResults</code>, Cloud Map returns up to 100 services.<br/>NextToken:  For the first <code>ListServices</code> request, omit this value. If the response contains <code>NextToken</code>, submit another <code>ListServices</code> request to get the next group of results. Specify the value of <code>NextToken</code> from the previous response in the next request. <note> Cloud Map gets <code>MaxResults</code> services and then filters them based on the specified criteria. It's possible that no services in the first <code>MaxResults</code> services matched the specified criteria but that subsequent groups of <code>MaxResults</code> services do contain services that match the criteria. </note><br/>
        :return: NextToken:  If the response contains <code>NextToken</code>, submit another <code>ListServices</code> request to get the next group of results. Specify the value of <code>NextToken</code> from the previous response in the next request. <note> Cloud Map gets <code>MaxResults</code> services and then filters them based on the specified criteria. It's possible that no services in the first <code>MaxResults</code> services matched the specified criteria but that subsequent groups of <code>MaxResults</code> services do contain services that match the criteria. </note><br/>Services:  An array that contains one <code>ServiceSummary</code> object for each service that matches the specified filter criteria.<br/>        """
        pass

    def list_tags_for_resource(self, ResourceARN: str) -> ListTagsForResourceResponse:
        r"""Lists tags for the specified resource.

        :param self:
        :param ResourceARN:  The Amazon Resource Name (ARN) of the resource that you want to retrieve tags for.<br/>
        :return: Tags:  The tags that are assigned to the resource.<br/>        """
        pass

    def register_instance(self, Attributes: Attributes, InstanceId: str, ServiceId: str, CreatorRequestId: str=None) -> RegisterInstanceResponse:
        r"""Creates or updates one or more records and, optionally, creates a health check based on the settings in a specified service. When you submit a <code>RegisterInstance</code> request, the following occurs: <ul> <li> For each DNS record that you define in the service that's specified by <code>ServiceId</code>, a record is created or updated in the hosted zone that's associated with the corresponding namespace. </li> <li> If the service includes <code>HealthCheckConfig</code>, a health check is created based on the settings in the health check configuration. </li> <li> The health check, if any, is associated with each of the new or updated records. </li> </ul> <important> One <code>RegisterInstance</code> request must complete before you can submit another request and specify the same service ID and instance ID. </important> For more information, see <a href="https://docs.aws.amazon.com/cloud-map/latest/api/API_CreateService.html">CreateService</a>. When Cloud Map receives a DNS query for the specified DNS name, it returns the applicable value: <ul> <li>  <b>If the health check is healthy</b>: returns all the records </li> <li>  <b>If the health check is unhealthy</b>: returns the applicable value for the last healthy instance </li> <li>  <b>If you didn't specify a health check configuration</b>: returns all the records </li> </ul> For the current quota on the number of instances that you can register using the same namespace and using the same service, see <a href="https://docs.aws.amazon.com/cloud-map/latest/dg/cloud-map-limits.html">Cloud Map quotas</a> in the <i>Cloud Map Developer Guide</i>.

        :param self:
        :param Attributes:  A string map that contains the following information for the service that you specify in <code>ServiceId</code>: <ul> <li> The attributes that apply to the records that are defined in the service.  </li> <li> For each attribute, the applicable value. </li> </ul> Supported attribute keys include the following: <dl> <dt>AWS_ALIAS_DNS_NAME</dt> <dd> If you want Cloud Map to create an Amazon Route 53 alias record that routes traffic to an Elastic Load Balancing load balancer, specify the DNS name that's associated with the load balancer. For information about how to get the DNS name, see "DNSName" in the topic <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_AliasTarget.html">AliasTarget</a> in the <i>Route 53 API Reference</i>. Note the following: <ul> <li> The configuration for the service that's specified by <code>ServiceId</code> must include settings for an <code>A</code> record, an <code>AAAA</code> record, or both. </li> <li> In the service that's specified by <code>ServiceId</code>, the value of <code>RoutingPolicy</code> must be <code>WEIGHTED</code>. </li> <li> If the service that's specified by <code>ServiceId</code> includes <code>HealthCheckConfig</code> settings, Cloud Map will create the Route 53 health check, but it doesn't associate the health check with the alias record. </li> <li> Auto naming currently doesn't support creating alias records that route traffic to Amazon Web Services resources other than Elastic Load Balancing load balancers. </li> <li> If you specify a value for <code>AWS_ALIAS_DNS_NAME</code>, don't specify values for any of the <code>AWS_INSTANCE</code> attributes. </li> </ul> </dd> <dt>AWS_EC2_INSTANCE_ID</dt> <dd>  <i>HTTP namespaces only.</i> The Amazon EC2 instance ID for the instance. If the <code>AWS_EC2_INSTANCE_ID</code> attribute is specified, then the only other attribute that can be specified is <code>AWS_INIT_HEALTH_STATUS</code>. When the <code>AWS_EC2_INSTANCE_ID</code> attribute is specified, then the <code>AWS_INSTANCE_IPV4</code> attribute will be filled out with the primary private IPv4 address. </dd> <dt>AWS_INIT_HEALTH_STATUS</dt> <dd> If the service configuration includes <code>HealthCheckCustomConfig</code>, you can optionally use <code>AWS_INIT_HEALTH_STATUS</code> to specify the initial status of the custom health check, <code>HEALTHY</code> or <code>UNHEALTHY</code>. If you don't specify a value for <code>AWS_INIT_HEALTH_STATUS</code>, the initial status is <code>HEALTHY</code>. </dd> <dt>AWS_INSTANCE_CNAME</dt> <dd> If the service configuration includes a <code>CNAME</code> record, the domain name that you want Route 53 to return in response to DNS queries (for example, <code>example.com</code>). This value is required if the service specified by <code>ServiceId</code> includes settings for an <code>CNAME</code> record. </dd> <dt>AWS_INSTANCE_IPV4</dt> <dd> If the service configuration includes an <code>A</code> record, the IPv4 address that you want Route 53 to return in response to DNS queries (for example, <code>192.0.2.44</code>). This value is required if the service specified by <code>ServiceId</code> includes settings for an <code>A</code> record. If the service includes settings for an <code>SRV</code> record, you must specify a value for <code>AWS_INSTANCE_IPV4</code>, <code>AWS_INSTANCE_IPV6</code>, or both. </dd> <dt>AWS_INSTANCE_IPV6</dt> <dd> If the service configuration includes an <code>AAAA</code> record, the IPv6 address that you want Route 53 to return in response to DNS queries (for example, <code>2001:0db8:85a3:0000:0000:abcd:0001:2345</code>). This value is required if the service specified by <code>ServiceId</code> includes settings for an <code>AAAA</code> record. If the service includes settings for an <code>SRV</code> record, you must specify a value for <code>AWS_INSTANCE_IPV4</code>, <code>AWS_INSTANCE_IPV6</code>, or both. </dd> <dt>AWS_INSTANCE_PORT</dt> <dd> If the service includes an <code>SRV</code> record, the value that you want Route 53 to return for the port. If the service includes <code>HealthCheckConfig</code>, the port on the endpoint that you want Route 53 to send requests to.  This value is required if you specified settings for an <code>SRV</code> record or a Route 53 health check when you created the service. </dd> <dt>Custom attributes</dt> <dd> You can add up to 30 custom attributes. For each key-value pair, the maximum length of the attribute name is 255 characters, and the maximum length of the attribute value is 1,024 characters. The total size of all provided attributes (sum of all keys and values) must not exceed 5,000 characters. </dd> </dl><br/>CreatorRequestId:  A unique string that identifies the request and that allows failed <code>RegisterInstance</code> requests to be retried without the risk of executing the operation twice. You must use a unique <code>CreatorRequestId</code> string every time you submit a <code>RegisterInstance</code> request if you're registering additional instances for the same namespace and service. <code>CreatorRequestId</code> can be any unique string (for example, a date/time stamp).<br/>InstanceId:  An identifier that you want to associate with the instance. Note the following: <ul> <li> If the service that's specified by <code>ServiceId</code> includes settings for an <code>SRV</code> record, the value of <code>InstanceId</code> is automatically included as part of the value for the <code>SRV</code> record. For more information, see <a href="https://docs.aws.amazon.com/cloud-map/latest/api/API_DnsRecord.html#cloudmap-Type-DnsRecord-Type">DnsRecord &gt; Type</a>. </li> <li> You can use this value to update an existing instance. </li> <li> To register a new instance, you must specify a value that's unique among instances that you register by using the same service.  </li> <li> If you specify an existing <code>InstanceId</code> and <code>ServiceId</code>, Cloud Map updates the existing DNS records, if any. If there's also an existing health check, Cloud Map deletes the old health check and creates a new one.  <note> The health check isn't deleted immediately, so it will still appear for a while if you submit a <code>ListHealthChecks</code> request, for example. </note> </li> </ul><br/>ServiceId:  The ID of the service that you want to use for settings for the instance.<br/>
        :return: OperationId:  A value that you can use to determine whether the request completed successfully. To get the status of the operation, see <a href="https://docs.aws.amazon.com/cloud-map/latest/api/API_GetOperation.html">GetOperation</a>.<br/>        """
        pass

    def tag_resource(self, Tags: List[Tag], ResourceARN: str) -> TagResourceResponse:
        r"""Adds one or more tags to the specified resource.

        :param self:
        :param Tags:  The tags to add to the specified resource. Specifying the tag key is required. You can set the value of a tag to an empty string, but you can't set the value of a tag to null.<br/>ResourceARN:  The Amazon Resource Name (ARN) of the resource that you want to retrieve tags for.<br/>
        :return:         """
        pass

    def untag_resource(self, TagKeys: List[TagKey], ResourceARN: str) -> UntagResourceResponse:
        r"""Removes one or more tags from the specified resource.

        :param self:
        :param TagKeys:  The tag keys to remove from the specified resource.<br/>ResourceARN:  The Amazon Resource Name (ARN) of the resource that you want to retrieve tags for.<br/>
        :return:         """
        pass

    def update_http_namespace(self, Namespace: HttpNamespaceChange, Id: str, UpdaterRequestId: str=None) -> UpdateHttpNamespaceResponse:
        r"""Updates an HTTP namespace.

        :param self:
        :param Namespace:  Updated properties for the the HTTP namespace.:<br/>UpdaterRequestId:  A unique string that identifies the request and that allows failed <code>UpdateHttpNamespace</code> requests to be retried without the risk of running the operation twice. <code>UpdaterRequestId</code> can be any unique string (for example, a date/timestamp).<br/>Id:  The ID of the namespace that you want to update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> An updated description for the HTTP namespace.<br/>
        :return: OperationId:  A value that you can use to determine whether the request completed successfully. To get the status of the operation, see <a href="https://docs.aws.amazon.com/cloud-map/latest/api/API_GetOperation.html">GetOperation</a>.<br/>        """
        pass

    def update_instance_custom_health_status(self, Status: str, InstanceId: str, ServiceId: str):
        r"""Submits a request to change the health status of a custom health check to healthy or unhealthy. You can use <code>UpdateInstanceCustomHealthStatus</code> to change the status only for custom health checks, which you define using <code>HealthCheckCustomConfig</code> when you create a service. You can't use it to change the status for Route 53 health checks, which you define using <code>HealthCheckConfig</code>. For more information, see <a href="https://docs.aws.amazon.com/cloud-map/latest/api/API_HealthCheckCustomConfig.html">HealthCheckCustomConfig</a>.

        :param self:
        :param Status:  The new status of the instance, <code>HEALTHY</code> or <code>UNHEALTHY</code>.<br/>InstanceId:  The ID of the instance that you want to change the health status for.<br/>ServiceId:  The ID of the service that includes the configuration for the custom health check that you want to change the status for.<br/>
        :return:         """
        pass

    def update_private_dns_namespace(self, Namespace: PrivateDnsNamespaceChange, Id: str, UpdaterRequestId: str=None) -> UpdatePrivateDnsNamespaceResponse:
        r"""Updates a private DNS namespace.

        :param self:
        :param Namespace:  Updated properties for the private DNS namespace.:<br/>UpdaterRequestId:  A unique string that identifies the request and that allows failed <code>UpdatePrivateDnsNamespace</code> requests to be retried without the risk of running the operation twice. <code>UpdaterRequestId</code> can be any unique string (for example, a date/timestamp).<br/>Id:  The ID of the namespace that you want to update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Properties</i> Properties to be updated in the private DNS namespace.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Properties</b>: Properties to be updated in the private DNS namespace.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> An updated description for the private DNS namespace.<br/>Updated DNS properties for the private DNS namespace.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DnsProperties</b>: Updated DNS properties for the private DNS namespace.
        :return: OperationId:  A value that you can use to determine whether the request completed successfully. To get the status of the operation, see <a href="https://docs.aws.amazon.com/cloud-map/latest/api/API_GetOperation.html">GetOperation</a>.<br/>        """
        pass

    def update_public_dns_namespace(self, Namespace: PublicDnsNamespaceChange, Id: str, UpdaterRequestId: str=None) -> UpdatePublicDnsNamespaceResponse:
        r"""Updates a public DNS namespace.

        :param self:
        :param Namespace:  Updated properties for the public DNS namespace.:<br/>UpdaterRequestId:  A unique string that identifies the request and that allows failed <code>UpdatePublicDnsNamespace</code> requests to be retried without the risk of running the operation twice. <code>UpdaterRequestId</code> can be any unique string (for example, a date/timestamp).<br/>Id:  The ID of the namespace being updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Properties</i> Properties to be updated in the public DNS namespace.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Properties</b>: Properties to be updated in the public DNS namespace.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> An updated description for the public DNS namespace.<br/>Updated DNS properties for the hosted zone for the public DNS namespace.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DnsProperties</b>: Updated DNS properties for the hosted zone for the public DNS namespace.
        :return: OperationId:  A value that you can use to determine whether the request completed successfully. To get the status of the operation, see <a href="https://docs.aws.amazon.com/cloud-map/latest/api/API_GetOperation.html">GetOperation</a>.<br/>        """
        pass

    def update_service(self, Service: ServiceChange, Id: str) -> UpdateServiceResponse:
        r"""Submits a request to perform the following operations: <ul> <li> Update the TTL setting for existing <code>DnsRecords</code> configurations </li> <li> Add, update, or delete <code>HealthCheckConfig</code> for a specified service <note> You can't add, update, or delete a <code>HealthCheckCustomConfig</code> configuration. </note> </li> </ul> For public and private DNS namespaces, note the following: <ul> <li> If you omit any existing <code>DnsRecords</code> or <code>HealthCheckConfig</code> configurations from an <code>UpdateService</code> request, the configurations are deleted from the service. </li> <li> If you omit an existing <code>HealthCheckCustomConfig</code> configuration from an <code>UpdateService</code> request, the configuration isn't deleted from the service. </li> </ul> When you update settings for a service, Cloud Map also updates the corresponding settings in all the records and health checks that were created by using the specified service.

        :param self:
        :param Service:  A complex type that contains the new settings for the service.:<br/>Id:  The ID of the service that you want to update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HealthCheckConfig</i>  <i>Public DNS and HTTP namespaces only.</i> Settings for an optional health check. If you specify settings for a health check, Cloud Map associates the health check with the records that you specify in <code>DnsConfig</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>HealthCheckConfig</b>:  <i>Public DNS and HTTP namespaces only.</i> Settings for an optional health check. If you specify settings for a health check, Cloud Map associates the health check with the records that you specify in <code>DnsConfig</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DnsConfig</i> Information about the Route 53 DNS records that you want Cloud Map to create when you register an instance.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DnsConfig</b>: Information about the Route 53 DNS records that you want Cloud Map to create when you register an instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A description for the service.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DnsRecords</i> An array that contains one <code>DnsRecord</code> object for each Route 53 record that you want Cloud Map to create when you register an instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FailureThreshold</i> The number of consecutive health checks that an endpoint must pass or fail for Route 53 to change the current status of the endpoint from unhealthy to healthy or the other way around. For more information, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-determining-health-of-endpoints.html">How Route 53 Determines Whether an Endpoint Is Healthy</a> in the <i>Route 53 Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourcePath</i> The path that you want Route 53 to request when performing health checks. The path can be any value that your endpoint returns an HTTP status code of a 2xx or 3xx format for when the endpoint is healthy. An example file is <code>/docs/route53-health-check.html</code>. Route 53 automatically adds the DNS name for the service. If you don't specify a value for <code>ResourcePath</code>, the default value is <code>/</code>. If you specify <code>TCP</code> for <code>Type</code>, you must <i>not</i> specify a value for <code>ResourcePath</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of health check that you want to create, which indicates how Route 53 determines whether an endpoint is healthy. <important> You can't change the value of <code>Type</code> after you create a health check. </important> You can create the following types of health checks: <ul> <li>  <b>HTTP</b>: Route 53 tries to establish a TCP connection. If successful, Route 53 submits an HTTP request and waits for an HTTP status code of 200 or greater and less than 400. </li> <li>  <b>HTTPS</b>: Route 53 tries to establish a TCP connection. If successful, Route 53 submits an HTTPS request and waits for an HTTP status code of 200 or greater and less than 400. <important> If you specify HTTPS for the value of <code>Type</code>, the endpoint must support TLS v1.0 or later. </important> </li> <li>  <b>TCP</b>: Route 53 tries to establish a TCP connection. If you specify <code>TCP</code> for <code>Type</code>, don't specify a value for <code>ResourcePath</code>. </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-determining-health-of-endpoints.html">How Route 53 Determines Whether an Endpoint Is Healthy</a> in the <i>Route 53 Developer Guide</i>.<br/>
        :return: OperationId:  A value that you can use to determine whether the request completed successfully. To get the status of the operation, see <a href="https://docs.aws.amazon.com/cloud-map/latest/api/API_GetOperation.html">GetOperation</a>.<br/>        """
        pass





class SES(BaseClient):
    r"""<fullname>Amazon Simple Email Service</fullname>  This document contains reference information for the <a href="https://aws.amazon.com/ses/">Amazon Simple Email Service</a> (Amazon SES) API, version 2010-12-01. This document is best used in conjunction with the <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/Welcome.html">Amazon SES Developer Guide</a>.  <note>  For a list of Amazon SES endpoints to use in service requests, see <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/regions.html">Regions and Amazon SES</a> in the <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/Welcome.html">Amazon SES Developer Guide</a>. </note>"""

    class IdentityExistsWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `get_identity_verification_attributes` for valid parameters"""
            pass


    class ListIdentitiesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_identities` for valid parameters"""
            pass
    class ListCustomVerificationEmailTemplatesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_custom_verification_email_templates` for valid parameters"""
            pass
    class ListConfigurationSetsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_configuration_sets` for valid parameters"""
            pass
    class ListReceiptRuleSetsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_receipt_rule_sets` for valid parameters"""
            pass
    class ListTemplatesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_templates` for valid parameters"""
            pass


    class CloneReceiptRuleSetRequest(Mapping):
        pass
    
    class CloneReceiptRuleSetResponse(Mapping):
        pass
    
    class CreateConfigurationSetRequest(Mapping):
        pass
    
    class CreateConfigurationSetResponse(Mapping):
        pass
    
    class ConfigurationSet(Mapping):
        pass
    
    class CreateConfigurationSetEventDestinationRequest(Mapping):
        pass
    
    class CreateConfigurationSetEventDestinationResponse(Mapping):
        pass
    
    class EventDestination(Mapping):
        pass
    
    class CreateConfigurationSetTrackingOptionsRequest(Mapping):
        pass
    
    class CreateConfigurationSetTrackingOptionsResponse(Mapping):
        pass
    
    class TrackingOptions(Mapping):
        pass
    
    class CreateCustomVerificationEmailTemplateRequest(Mapping):
        pass
    
    class CreateReceiptFilterRequest(Mapping):
        pass
    
    class CreateReceiptFilterResponse(Mapping):
        pass
    
    class ReceiptFilter(Mapping):
        pass
    
    class CreateReceiptRuleRequest(Mapping):
        pass
    
    class CreateReceiptRuleResponse(Mapping):
        pass
    
    class ReceiptRule(Mapping):
        pass
    
    class CreateReceiptRuleSetRequest(Mapping):
        pass
    
    class CreateReceiptRuleSetResponse(Mapping):
        pass
    
    class CreateTemplateRequest(Mapping):
        pass
    
    class CreateTemplateResponse(Mapping):
        pass
    
    class Template(Mapping):
        pass
    
    class DeleteConfigurationSetRequest(Mapping):
        pass
    
    class DeleteConfigurationSetResponse(Mapping):
        pass
    
    class DeleteConfigurationSetEventDestinationRequest(Mapping):
        pass
    
    class DeleteConfigurationSetEventDestinationResponse(Mapping):
        pass
    
    class DeleteConfigurationSetTrackingOptionsRequest(Mapping):
        pass
    
    class DeleteConfigurationSetTrackingOptionsResponse(Mapping):
        pass
    
    class DeleteCustomVerificationEmailTemplateRequest(Mapping):
        pass
    
    class DeleteIdentityRequest(Mapping):
        pass
    
    class DeleteIdentityResponse(Mapping):
        pass
    
    class DeleteIdentityPolicyRequest(Mapping):
        pass
    
    class DeleteIdentityPolicyResponse(Mapping):
        pass
    
    class DeleteReceiptFilterRequest(Mapping):
        pass
    
    class DeleteReceiptFilterResponse(Mapping):
        pass
    
    class DeleteReceiptRuleRequest(Mapping):
        pass
    
    class DeleteReceiptRuleResponse(Mapping):
        pass
    
    class DeleteReceiptRuleSetRequest(Mapping):
        pass
    
    class DeleteReceiptRuleSetResponse(Mapping):
        pass
    
    class DeleteTemplateRequest(Mapping):
        pass
    
    class DeleteTemplateResponse(Mapping):
        pass
    
    class DeleteVerifiedEmailAddressRequest(Mapping):
        pass
    
    class DescribeActiveReceiptRuleSetRequest(Mapping):
        pass
    
    class DescribeActiveReceiptRuleSetResponse(Mapping):
        pass
    
    class DescribeConfigurationSetRequest(Mapping):
        pass
    
    class DescribeConfigurationSetResponse(Mapping):
        pass
    
    class ConfigurationSetAttribute(object):
        pass
    
    class DescribeReceiptRuleRequest(Mapping):
        pass
    
    class DescribeReceiptRuleResponse(Mapping):
        pass
    
    class DescribeReceiptRuleSetRequest(Mapping):
        pass
    
    class DescribeReceiptRuleSetResponse(Mapping):
        pass
    
    class GetAccountSendingEnabledResponse(Mapping):
        pass
    
    class GetCustomVerificationEmailTemplateRequest(Mapping):
        pass
    
    class GetCustomVerificationEmailTemplateResponse(Mapping):
        pass
    
    class GetIdentityDkimAttributesRequest(Mapping):
        pass
    
    class GetIdentityDkimAttributesResponse(Mapping):
        pass
    
    class Identity(object):
        pass
    
    class GetIdentityMailFromDomainAttributesRequest(Mapping):
        pass
    
    class GetIdentityMailFromDomainAttributesResponse(Mapping):
        pass
    
    class GetIdentityNotificationAttributesRequest(Mapping):
        pass
    
    class GetIdentityNotificationAttributesResponse(Mapping):
        pass
    
    class GetIdentityPoliciesRequest(Mapping):
        pass
    
    class GetIdentityPoliciesResponse(Mapping):
        pass
    
    class PolicyName(object):
        pass
    
    class GetIdentityVerificationAttributesRequest(Mapping):
        pass
    
    class GetIdentityVerificationAttributesResponse(Mapping):
        pass
    
    class GetSendQuotaResponse(Mapping):
        pass
    
    class GetSendStatisticsResponse(Mapping):
        pass
    
    class GetTemplateRequest(Mapping):
        pass
    
    class GetTemplateResponse(Mapping):
        pass
    
    class ListConfigurationSetsRequest(Mapping):
        pass
    
    class ListConfigurationSetsResponse(Mapping):
        pass
    
    class ListCustomVerificationEmailTemplatesRequest(Mapping):
        pass
    
    class ListCustomVerificationEmailTemplatesResponse(Mapping):
        pass
    
    class ListIdentitiesRequest(Mapping):
        pass
    
    class ListIdentitiesResponse(Mapping):
        pass
    
    class ListIdentityPoliciesRequest(Mapping):
        pass
    
    class ListIdentityPoliciesResponse(Mapping):
        pass
    
    class ListReceiptFiltersRequest(Mapping):
        pass
    
    class ListReceiptFiltersResponse(Mapping):
        pass
    
    class ListReceiptRuleSetsRequest(Mapping):
        pass
    
    class ListReceiptRuleSetsResponse(Mapping):
        pass
    
    class ListTemplatesRequest(Mapping):
        pass
    
    class ListTemplatesResponse(Mapping):
        pass
    
    class ListVerifiedEmailAddressesResponse(Mapping):
        pass
    
    class PutConfigurationSetDeliveryOptionsRequest(Mapping):
        pass
    
    class PutConfigurationSetDeliveryOptionsResponse(Mapping):
        pass
    
    class DeliveryOptions(Mapping):
        pass
    
    class PutIdentityPolicyRequest(Mapping):
        pass
    
    class PutIdentityPolicyResponse(Mapping):
        pass
    
    class ReorderReceiptRuleSetRequest(Mapping):
        pass
    
    class ReorderReceiptRuleSetResponse(Mapping):
        pass
    
    class ReceiptRuleName(object):
        pass
    
    class SendBounceRequest(Mapping):
        pass
    
    class SendBounceResponse(Mapping):
        pass
    
    class MessageDsn(Mapping):
        pass
    
    class BouncedRecipientInfo(Mapping):
        pass
    
    class SendBulkTemplatedEmailRequest(Mapping):
        pass
    
    class SendBulkTemplatedEmailResponse(Mapping):
        pass
    
    class Address(object):
        pass
    
    class MessageTag(Mapping):
        pass
    
    class BulkEmailDestination(Mapping):
        pass
    
    class SendCustomVerificationEmailRequest(Mapping):
        pass
    
    class SendCustomVerificationEmailResponse(Mapping):
        pass
    
    class SendEmailRequest(Mapping):
        pass
    
    class SendEmailResponse(Mapping):
        pass
    
    class Destination(Mapping):
        pass
    
    class Message(Mapping):
        pass
    
    class SendRawEmailRequest(Mapping):
        pass
    
    class SendRawEmailResponse(Mapping):
        pass
    
    class RawMessage(Mapping):
        pass
    
    class SendTemplatedEmailRequest(Mapping):
        pass
    
    class SendTemplatedEmailResponse(Mapping):
        pass
    
    class SetActiveReceiptRuleSetRequest(Mapping):
        pass
    
    class SetActiveReceiptRuleSetResponse(Mapping):
        pass
    
    class SetIdentityDkimEnabledRequest(Mapping):
        pass
    
    class SetIdentityDkimEnabledResponse(Mapping):
        pass
    
    class Enabled(object):
        pass
    
    class SetIdentityFeedbackForwardingEnabledRequest(Mapping):
        pass
    
    class SetIdentityFeedbackForwardingEnabledResponse(Mapping):
        pass
    
    class SetIdentityHeadersInNotificationsEnabledRequest(Mapping):
        pass
    
    class SetIdentityHeadersInNotificationsEnabledResponse(Mapping):
        pass
    
    class SetIdentityMailFromDomainRequest(Mapping):
        pass
    
    class SetIdentityMailFromDomainResponse(Mapping):
        pass
    
    class SetIdentityNotificationTopicRequest(Mapping):
        pass
    
    class SetIdentityNotificationTopicResponse(Mapping):
        pass
    
    class SetReceiptRulePositionRequest(Mapping):
        pass
    
    class SetReceiptRulePositionResponse(Mapping):
        pass
    
    class TestRenderTemplateRequest(Mapping):
        pass
    
    class TestRenderTemplateResponse(Mapping):
        pass
    
    class UpdateAccountSendingEnabledRequest(Mapping):
        pass
    
    class UpdateConfigurationSetEventDestinationRequest(Mapping):
        pass
    
    class UpdateConfigurationSetEventDestinationResponse(Mapping):
        pass
    
    class UpdateConfigurationSetReputationMetricsEnabledRequest(Mapping):
        pass
    
    class UpdateConfigurationSetSendingEnabledRequest(Mapping):
        pass
    
    class UpdateConfigurationSetTrackingOptionsRequest(Mapping):
        pass
    
    class UpdateConfigurationSetTrackingOptionsResponse(Mapping):
        pass
    
    class UpdateCustomVerificationEmailTemplateRequest(Mapping):
        pass
    
    class UpdateReceiptRuleRequest(Mapping):
        pass
    
    class UpdateReceiptRuleResponse(Mapping):
        pass
    
    class UpdateTemplateRequest(Mapping):
        pass
    
    class UpdateTemplateResponse(Mapping):
        pass
    
    class VerifyDomainDkimRequest(Mapping):
        pass
    
    class VerifyDomainDkimResponse(Mapping):
        pass
    
    class VerifyDomainIdentityRequest(Mapping):
        pass
    
    class VerifyDomainIdentityResponse(Mapping):
        pass
    
    class VerifyEmailAddressRequest(Mapping):
        pass
    
    class VerifyEmailIdentityRequest(Mapping):
        pass
    
    class VerifyEmailIdentityResponse(Mapping):
        pass
    
    def clone_receipt_rule_set(self, OriginalRuleSetName: str, RuleSetName: str) -> CloneReceiptRuleSetResponse:
        r"""Creates a receipt rule set by cloning an existing one. All receipt rules and configurations are copied to the new receipt rule set and are completely independent of the source rule set. For information about setting up rule sets, see the <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-receipt-rule-set.html">Amazon SES Developer Guide</a>. You can execute this operation no more than once per second.

        :param self:
        :param OriginalRuleSetName:  The name of the rule set to clone.<br/>RuleSetName:  The name of the rule set to create. The name must: <ul> <li> This value can only contain ASCII letters (a-z, A-Z), numbers (0-9), underscores (_), or dashes (-). </li> <li> Start and end with a letter or number. </li> <li> Contain less than 64 characters. </li> </ul><br/>
        :return:         """
        pass

    def create_configuration_set(self, ConfigurationSet: ConfigurationSet) -> CreateConfigurationSetResponse:
        r"""Creates a configuration set. Configuration sets enable you to publish email sending events. For information about using configuration sets, see the <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/monitor-sending-activity.html">Amazon SES Developer Guide</a>. You can execute this operation no more than once per second.

        :param self:
        :param ConfigurationSet:  A data structure that contains the name of the configuration set.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the configuration set. The name must meet the following requirements: <ul> <li> Contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or dashes (-). </li> <li> Contain 64 characters or fewer. </li> </ul><br/>
        :return:         """
        pass

    def create_configuration_set_event_destination(self, EventDestination: EventDestination, ConfigurationSetName: str) -> CreateConfigurationSetEventDestinationResponse:
        r"""Creates a configuration set event destination. <note> When you create or update an event destination, you must provide one, and only one, destination. The destination can be CloudWatch, Amazon Kinesis Firehose, or Amazon Simple Notification Service (Amazon SNS). </note> An event destination is the AWS service to which Amazon SES publishes the email sending events associated with a configuration set. For information about using configuration sets, see the <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/monitor-sending-activity.html">Amazon SES Developer Guide</a>. You can execute this operation no more than once per second.

        :param self:
        :param EventDestination:  An object that describes the AWS service that email sending event information will be published to.:<br/>ConfigurationSetName:  The name of the configuration set that the event destination should be associated with.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SNSDestination</i> An object that contains the topic ARN associated with an Amazon Simple Notification Service (Amazon SNS) event destination.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SNSDestination</b>: An object that contains the topic ARN associated with an Amazon Simple Notification Service (Amazon SNS) event destination.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudWatchDestination</i> An object that contains the names, default values, and sources of the dimensions associated with an Amazon CloudWatch event destination.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CloudWatchDestination</b>: An object that contains the names, default values, and sources of the dimensions associated with an Amazon CloudWatch event destination.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KinesisFirehoseDestination</i> An object that contains the delivery stream ARN and the IAM role ARN associated with an Amazon Kinesis Firehose event destination.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>KinesisFirehoseDestination</b>: An object that contains the delivery stream ARN and the IAM role ARN associated with an Amazon Kinesis Firehose event destination.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MatchingEventTypes</i> The type of email sending events to publish to the event destination.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Sets whether Amazon SES publishes events to this destination when you send an email with the associated configuration set. Set to <code>true</code> to enable publishing to this destination; set to <code>false</code> to prevent publishing to this destination. The default value is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the event destination. The name must: <ul> <li> This value can only contain ASCII letters (a-z, A-Z), numbers (0-9), underscores (_), or dashes (-). </li> <li> Contain less than 64 characters. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DeliveryStreamARN</i> The ARN of the Amazon Kinesis Firehose stream that email sending events should be published to.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IAMRoleARN</i> The ARN of the IAM role under which Amazon SES publishes email sending events to the Amazon Kinesis Firehose stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DimensionConfigurations</i> A list of dimensions upon which to categorize your emails when you publish email sending events to Amazon CloudWatch.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TopicARN</i> The ARN of the Amazon SNS topic that email sending events will be published to. An example of an Amazon SNS topic ARN is <code>arn:aws:sns:us-west-2:123456789012:MyTopic</code>. For more information about Amazon SNS topics, see the <a href="https://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html">Amazon SNS Developer Guide</a>.<br/>
        :return:         """
        pass

    def create_configuration_set_tracking_options(self, TrackingOptions: TrackingOptions, ConfigurationSetName: str) -> CreateConfigurationSetTrackingOptionsResponse:
        r"""Creates an association between a configuration set and a custom domain for open and click event tracking.  By default, images and links used for tracking open and click events are hosted on domains operated by Amazon SES. You can configure a subdomain of your own to handle these events. For information about using custom domains, see the <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/configure-custom-open-click-domains.html">Amazon SES Developer Guide</a>.

        :param self:
        :param TrackingOptions:  A domain that is used to redirect email recipients to an Amazon SES-operated domain. This domain captures open and click events generated by Amazon SES emails. For more information, see <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/configure-custom-open-click-domains.html">Configuring Custom Domains to Handle Open and Click Tracking</a> in the <i>Amazon SES Developer Guide</i>.:<br/>ConfigurationSetName:  The name of the configuration set that the tracking options should be associated with.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomRedirectDomain</i> The custom subdomain that will be used to redirect email recipients to the Amazon SES event tracking domain.<br/>
        :return:         """
        pass

    def create_custom_verification_email_template(self, FailureRedirectionURL: str, SuccessRedirectionURL: str, TemplateContent: str, TemplateSubject: str, FromEmailAddress: str, TemplateName: str):
        r"""Creates a new custom verification email template. For more information about custom verification email templates, see <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/custom-verification-emails.html">Using Custom Verification Email Templates</a> in the <i>Amazon SES Developer Guide</i>. You can execute this operation no more than once per second.

        :param self:
        :param FailureRedirectionURL:  The URL that the recipient of the verification email is sent to if his or her address is not successfully verified.<br/>SuccessRedirectionURL:  The URL that the recipient of the verification email is sent to if his or her address is successfully verified.<br/>TemplateContent:  The content of the custom verification email. The total size of the email must be less than 10 MB. The message body may contain HTML, with some limitations. For more information, see <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/custom-verification-emails.html#custom-verification-emails-faq">Custom Verification Email Frequently Asked Questions</a> in the <i>Amazon SES Developer Guide</i>.<br/>TemplateSubject:  The subject line of the custom verification email.<br/>FromEmailAddress:  The email address that the custom verification email is sent from.<br/>TemplateName:  The name of the custom verification email template.<br/>
        :return:         """
        pass

    def create_receipt_filter(self, Filter: ReceiptFilter) -> CreateReceiptFilterResponse:
        r"""Creates a new IP address filter. For information about setting up IP address filters, see the <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-ip-filters.html">Amazon SES Developer Guide</a>. You can execute this operation no more than once per second.

        :param self:
        :param Filter:  A data structure that describes the IP address filter to create, which consists of a name, an IP address range, and whether to allow or block mail from it.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IpFilter</i> A structure that provides the IP addresses to block or allow, and whether to block or allow incoming mail from them.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>IpFilter</b>: A structure that provides the IP addresses to block or allow, and whether to block or allow incoming mail from them.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the IP address filter. The name must: <ul> <li> This value can only contain ASCII letters (a-z, A-Z), numbers (0-9), underscores (_), or dashes (-). </li> <li> Start and end with a letter or number. </li> <li> Contain less than 64 characters. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Cidr</i> A single IP address or a range of IP addresses that you want to block or allow, specified in Classless Inter-Domain Routing (CIDR) notation. An example of a single email address is 10.0.0.1. An example of a range of IP addresses is 10.0.0.1/24. For more information about CIDR notation, see <a href="https://tools.ietf.org/html/rfc2317">RFC 2317</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Policy</i> Indicates whether to block or allow incoming mail from the specified IP addresses.<br/>
        :return:         """
        pass

    def create_receipt_rule(self, Rule: ReceiptRule, RuleSetName: str, After: str=None) -> CreateReceiptRuleResponse:
        r"""Creates a receipt rule. For information about setting up receipt rules, see the <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-receipt-rules.html">Amazon SES Developer Guide</a>. You can execute this operation no more than once per second.

        :param self:
        :param Rule:  A data structure that contains the specified rule's name, actions, recipients, domains, enabled status, scan status, and TLS policy.:<br/>After:  The name of an existing rule after which the new rule will be placed. If this parameter is null, the new rule will be inserted at the beginning of the rule list.<br/>RuleSetName:  The name of the rule set that the receipt rule will be added to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ScanEnabled</i> If <code>true</code>, then messages that this receipt rule applies to are scanned for spam and viruses. The default value is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Actions</i> An ordered list of actions to perform on messages that match at least one of the recipient email addresses or domains specified in the receipt rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Recipients</i> The recipient domains and email addresses that the receipt rule applies to. If this field is not specified, this rule will match all recipients under all verified domains.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TlsPolicy</i> Specifies whether Amazon SES should require that incoming email is delivered over a connection encrypted with Transport Layer Security (TLS). If this parameter is set to <code>Require</code>, Amazon SES will bounce emails that are not received over TLS. The default is <code>Optional</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> If <code>true</code>, the receipt rule is active. The default value is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the receipt rule. The name must: <ul> <li> This value can only contain ASCII letters (a-z, A-Z), numbers (0-9), underscores (_), or dashes (-). </li> <li> Start and end with a letter or number. </li> <li> Contain less than 64 characters. </li> </ul><br/>
        :return:         """
        pass

    def create_receipt_rule_set(self, RuleSetName: str) -> CreateReceiptRuleSetResponse:
        r"""Creates an empty receipt rule set. For information about setting up receipt rule sets, see the <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-receipt-rule-set.html">Amazon SES Developer Guide</a>. You can execute this operation no more than once per second.

        :param self:
        :param RuleSetName:  The name of the rule set to create. The name must: <ul> <li> This value can only contain ASCII letters (a-z, A-Z), numbers (0-9), underscores (_), or dashes (-). </li> <li> Start and end with a letter or number. </li> <li> Contain less than 64 characters. </li> </ul><br/>
        :return:         """
        pass

    def create_template(self, Template: Template) -> CreateTemplateResponse:
        r"""Creates an email template. Email templates enable you to send personalized email to one or more destinations in a single API operation. For more information, see the <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-personalized-email-api.html">Amazon SES Developer Guide</a>. You can execute this operation no more than once per second.

        :param self:
        :param Template:  The content of the email, composed of a subject line, an HTML part, and a text-only part.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HtmlPart</i> The HTML body of the email.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TextPart</i> The email body that will be visible to recipients whose email clients do not display HTML.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubjectPart</i> The subject line of the email.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TemplateName</i> The name of the template. You will refer to this name when you send email using the <code>SendTemplatedEmail</code> or <code>SendBulkTemplatedEmail</code> operations.<br/>
        :return:         """
        pass

    def delete_configuration_set(self, ConfigurationSetName: str) -> DeleteConfigurationSetResponse:
        r"""Deletes a configuration set. Configuration sets enable you to publish email sending events. For information about using configuration sets, see the <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/monitor-sending-activity.html">Amazon SES Developer Guide</a>. You can execute this operation no more than once per second.

        :param self:
        :param ConfigurationSetName:  The name of the configuration set to delete.<br/>
        :return:         """
        pass

    def delete_configuration_set_event_destination(self, EventDestinationName: str, ConfigurationSetName: str) -> DeleteConfigurationSetEventDestinationResponse:
        r"""Deletes a configuration set event destination. Configuration set event destinations are associated with configuration sets, which enable you to publish email sending events. For information about using configuration sets, see the <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/monitor-sending-activity.html">Amazon SES Developer Guide</a>. You can execute this operation no more than once per second.

        :param self:
        :param EventDestinationName:  The name of the event destination to delete.<br/>ConfigurationSetName:  The name of the configuration set from which to delete the event destination.<br/>
        :return:         """
        pass

    def delete_configuration_set_tracking_options(self, ConfigurationSetName: str) -> DeleteConfigurationSetTrackingOptionsResponse:
        r"""Deletes an association between a configuration set and a custom domain for open and click event tracking. By default, images and links used for tracking open and click events are hosted on domains operated by Amazon SES. You can configure a subdomain of your own to handle these events. For information about using custom domains, see the <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/configure-custom-open-click-domains.html">Amazon SES Developer Guide</a>. <note> Deleting this kind of association will result in emails sent using the specified configuration set to capture open and click events using the standard, Amazon SES-operated domains. </note>

        :param self:
        :param ConfigurationSetName:  The name of the configuration set from which you want to delete the tracking options.<br/>
        :return:         """
        pass

    def delete_custom_verification_email_template(self, TemplateName: str):
        r"""Deletes an existing custom verification email template.  For more information about custom verification email templates, see <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/custom-verification-emails.html">Using Custom Verification Email Templates</a> in the <i>Amazon SES Developer Guide</i>. You can execute this operation no more than once per second.

        :param self:
        :param TemplateName:  The name of the custom verification email template that you want to delete.<br/>
        :return:         """
        pass

    def delete_identity(self, Identity: str) -> DeleteIdentityResponse:
        r"""Deletes the specified identity (an email address or a domain) from the list of verified identities. You can execute this operation no more than once per second.

        :param self:
        :param Identity:  The identity to be removed from the list of identities for the AWS Account.<br/>
        :return:         """
        pass

    def delete_identity_policy(self, PolicyName: str, Identity: str) -> DeleteIdentityPolicyResponse:
        r"""Deletes the specified sending authorization policy for the given identity (an email address or a domain). This API returns successfully even if a policy with the specified name does not exist. <note> This API is for the identity owner only. If you have not verified the identity, this API will return an error. </note> Sending authorization is a feature that enables an identity owner to authorize other senders to use its identities. For information about using sending authorization, see the <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization.html">Amazon SES Developer Guide</a>. You can execute this operation no more than once per second.

        :param self:
        :param PolicyName:  The name of the policy to be deleted.<br/>Identity:  The identity that is associated with the policy that you want to delete. You can specify the identity by using its name or by using its Amazon Resource Name (ARN). Examples: <code>user@example.com</code>, <code>example.com</code>, <code>arn:aws:ses:us-east-1:123456789012:identity/example.com</code>. To successfully call this API, you must own the identity.<br/>
        :return:         """
        pass

    def delete_receipt_filter(self, FilterName: str) -> DeleteReceiptFilterResponse:
        r"""Deletes the specified IP address filter. For information about managing IP address filters, see the <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-managing-ip-filters.html">Amazon SES Developer Guide</a>. You can execute this operation no more than once per second.

        :param self:
        :param FilterName:  The name of the IP address filter to delete.<br/>
        :return:         """
        pass

    def delete_receipt_rule(self, RuleName: str, RuleSetName: str) -> DeleteReceiptRuleResponse:
        r"""Deletes the specified receipt rule. For information about managing receipt rules, see the <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-managing-receipt-rules.html">Amazon SES Developer Guide</a>. You can execute this operation no more than once per second.

        :param self:
        :param RuleName:  The name of the receipt rule to delete.<br/>RuleSetName:  The name of the receipt rule set that contains the receipt rule to delete.<br/>
        :return:         """
        pass

    def delete_receipt_rule_set(self, RuleSetName: str) -> DeleteReceiptRuleSetResponse:
        r"""Deletes the specified receipt rule set and all of the receipt rules it contains. <note> The currently active rule set cannot be deleted. </note> For information about managing receipt rule sets, see the <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-managing-receipt-rule-sets.html">Amazon SES Developer Guide</a>. You can execute this operation no more than once per second.

        :param self:
        :param RuleSetName:  The name of the receipt rule set to delete.<br/>
        :return:         """
        pass

    def delete_template(self, TemplateName: str) -> DeleteTemplateResponse:
        r"""Deletes an email template. You can execute this operation no more than once per second.

        :param self:
        :param TemplateName:  The name of the template to be deleted.<br/>
        :return:         """
        pass

    def delete_verified_email_address(self, EmailAddress: str):
        r"""Deprecated. Use the <code>DeleteIdentity</code> operation to delete email addresses and domains.

        :param self:
        :param EmailAddress:  An email address to be removed from the list of verified addresses.<br/>
        :return:         """
        pass

    def describe_active_receipt_rule_set(self) -> DescribeActiveReceiptRuleSetResponse:
        r"""Returns the metadata and receipt rules for the receipt rule set that is currently active. For information about setting up receipt rule sets, see the <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-receipt-rule-set.html">Amazon SES Developer Guide</a>. You can execute this operation no more than once per second.

        :param self:
        :param 
        :return: Rules:  The receipt rules that belong to the active rule set.<br/>Metadata:  The metadata for the currently active receipt rule set. The metadata consists of the rule set name and a timestamp of when the rule set was created.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTimestamp</i> The date and time the receipt rule set was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the receipt rule set. The name must: <ul> <li> This value can only contain ASCII letters (a-z, A-Z), numbers (0-9), underscores (_), or dashes (-). </li> <li> Start and end with a letter or number. </li> <li> Contain less than 64 characters. </li> </ul><br/>        """
        pass

    def describe_configuration_set(self, ConfigurationSetName: str, ConfigurationSetAttributeNames: List[ConfigurationSetAttribute]=None) -> DescribeConfigurationSetResponse:
        r"""Returns the details of the specified configuration set. For information about using configuration sets, see the <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/monitor-sending-activity.html">Amazon SES Developer Guide</a>. You can execute this operation no more than once per second.

        :param self:
        :param ConfigurationSetAttributeNames:  A list of configuration set attributes to return.<br/>ConfigurationSetName:  The name of the configuration set to describe.<br/>
        :return: ReputationOptions:  An object that represents the reputation settings for the configuration set. :<br/>DeliveryOptions:  Specifies whether messages that use the configuration set are required to use Transport Layer Security (TLS).:<br/>TrackingOptions:  The name of the custom open and click tracking domain associated with the configuration set.:<br/>EventDestinations:  A list of event destinations associated with the configuration set. <br/>ConfigurationSet:  The configuration set object associated with the specified configuration set.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the configuration set. The name must meet the following requirements: <ul> <li> Contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or dashes (-). </li> <li> Contain 64 characters or fewer. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomRedirectDomain</i> The custom subdomain that will be used to redirect email recipients to the Amazon SES event tracking domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TlsPolicy</i> Specifies whether messages that use the configuration set are required to use Transport Layer Security (TLS). If the value is <code>Require</code>, messages are only delivered if a TLS connection can be established. If the value is <code>Optional</code>, messages can be delivered in plain text if a TLS connection can't be established.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastFreshStart</i> The date and time at which the reputation metrics for the configuration set were last reset. Resetting these metrics is known as a <i>fresh start</i>. When you disable email sending for a configuration set using <a>UpdateConfigurationSetSendingEnabled</a> and later re-enable it, the reputation metrics for the configuration set (but not for the entire Amazon SES account) are reset. If email sending for the configuration set has never been disabled and later re-enabled, the value of this attribute is <code>null</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReputationMetricsEnabled</i> Describes whether or not Amazon SES publishes reputation metrics for the configuration set, such as bounce and complaint rates, to Amazon CloudWatch. If the value is <code>true</code>, reputation metrics are published. If the value is <code>false</code>, reputation metrics are not published. The default value is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SendingEnabled</i> Describes whether email sending is enabled or disabled for the configuration set. If the value is <code>true</code>, then Amazon SES will send emails that use the configuration set. If the value is <code>false</code>, Amazon SES will not send emails that use the configuration set. The default value is <code>true</code>. You can change this setting using <a>UpdateConfigurationSetSendingEnabled</a>.<br/>        """
        pass

    def describe_receipt_rule(self, RuleName: str, RuleSetName: str) -> DescribeReceiptRuleResponse:
        r"""Returns the details of the specified receipt rule. For information about setting up receipt rules, see the <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-receipt-rules.html">Amazon SES Developer Guide</a>. You can execute this operation no more than once per second.

        :param self:
        :param RuleName:  The name of the receipt rule.<br/>RuleSetName:  The name of the receipt rule set that the receipt rule belongs to.<br/>
        :return: Rule:  A data structure that contains the specified receipt rule's name, actions, recipients, domains, enabled status, scan status, and Transport Layer Security (TLS) policy.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ScanEnabled</i> If <code>true</code>, then messages that this receipt rule applies to are scanned for spam and viruses. The default value is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Actions</i> An ordered list of actions to perform on messages that match at least one of the recipient email addresses or domains specified in the receipt rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Recipients</i> The recipient domains and email addresses that the receipt rule applies to. If this field is not specified, this rule will match all recipients under all verified domains.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TlsPolicy</i> Specifies whether Amazon SES should require that incoming email is delivered over a connection encrypted with Transport Layer Security (TLS). If this parameter is set to <code>Require</code>, Amazon SES will bounce emails that are not received over TLS. The default is <code>Optional</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> If <code>true</code>, the receipt rule is active. The default value is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the receipt rule. The name must: <ul> <li> This value can only contain ASCII letters (a-z, A-Z), numbers (0-9), underscores (_), or dashes (-). </li> <li> Start and end with a letter or number. </li> <li> Contain less than 64 characters. </li> </ul><br/>        """
        pass

    def describe_receipt_rule_set(self, RuleSetName: str) -> DescribeReceiptRuleSetResponse:
        r"""Returns the details of the specified receipt rule set. For information about managing receipt rule sets, see the <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-managing-receipt-rule-sets.html">Amazon SES Developer Guide</a>. You can execute this operation no more than once per second.

        :param self:
        :param RuleSetName:  The name of the receipt rule set to describe.<br/>
        :return: Rules:  A list of the receipt rules that belong to the specified receipt rule set.<br/>Metadata:  The metadata for the receipt rule set, which consists of the rule set name and the timestamp of when the rule set was created.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTimestamp</i> The date and time the receipt rule set was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the receipt rule set. The name must: <ul> <li> This value can only contain ASCII letters (a-z, A-Z), numbers (0-9), underscores (_), or dashes (-). </li> <li> Start and end with a letter or number. </li> <li> Contain less than 64 characters. </li> </ul><br/>        """
        pass

    def get_account_sending_enabled(self) -> GetAccountSendingEnabledResponse:
        r"""Returns the email sending status of the Amazon SES account for the current region. You can execute this operation no more than once per second.

        :param self:
        :param 
        :return: Enabled:  Describes whether email sending is enabled or disabled for your Amazon SES account in the current AWS Region.<br/>        """
        pass

    def get_custom_verification_email_template(self, TemplateName: str) -> GetCustomVerificationEmailTemplateResponse:
        r"""Returns the custom email verification template for the template name you specify. For more information about custom verification email templates, see <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/custom-verification-emails.html">Using Custom Verification Email Templates</a> in the <i>Amazon SES Developer Guide</i>. You can execute this operation no more than once per second.

        :param self:
        :param TemplateName:  The name of the custom verification email template that you want to retrieve.<br/>
        :return: FailureRedirectionURL:  The URL that the recipient of the verification email is sent to if his or her address is not successfully verified.<br/>SuccessRedirectionURL:  The URL that the recipient of the verification email is sent to if his or her address is successfully verified.<br/>TemplateContent:  The content of the custom verification email.<br/>TemplateSubject:  The subject line of the custom verification email.<br/>FromEmailAddress:  The email address that the custom verification email is sent from.<br/>TemplateName:  The name of the custom verification email template.<br/>        """
        pass

    def get_identity_dkim_attributes(self, Identities: List[Identity]) -> GetIdentityDkimAttributesResponse:
        r"""Returns the current status of Easy DKIM signing for an entity. For domain name identities, this operation also returns the DKIM tokens that are required for Easy DKIM signing, and whether Amazon SES has successfully verified that these tokens have been published. This operation takes a list of identities as input and returns the following information for each: <ul> <li> Whether Easy DKIM signing is enabled or disabled. </li> <li> A set of DKIM tokens that represent the identity. If the identity is an email address, the tokens represent the domain of that address. </li> <li> Whether Amazon SES has successfully verified the DKIM tokens published in the domain's DNS. This information is only returned for domain name identities, not for email addresses. </li> </ul> This operation is throttled at one request per second and can only get DKIM attributes for up to 100 identities at a time. For more information about creating DNS records using DKIM tokens, go to the <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/easy-dkim-dns-records.html">Amazon SES Developer Guide</a>.

        :param self:
        :param Identities:  A list of one or more verified identities - email addresses, domains, or both.<br/>
        :return: DkimAttributes:  The DKIM attributes for an email address or a domain.<br/>        """
        pass

    def get_identity_mail_from_domain_attributes(self, Identities: List[Identity]) -> GetIdentityMailFromDomainAttributesResponse:
        r"""Returns the custom MAIL FROM attributes for a list of identities (email addresses : domains). This operation is throttled at one request per second and can only get custom MAIL FROM attributes for up to 100 identities at a time.

        :param self:
        :param Identities:  A list of one or more identities.<br/>
        :return: MailFromDomainAttributes:  A map of identities to custom MAIL FROM attributes.<br/>        """
        pass

    def get_identity_notification_attributes(self, Identities: List[Identity]) -> GetIdentityNotificationAttributesResponse:
        r"""Given a list of verified identities (email addresses and/or domains), returns a structure describing identity notification attributes. This operation is throttled at one request per second and can only get notification attributes for up to 100 identities at a time. For more information about using notifications with Amazon SES, see the <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/notifications.html">Amazon SES Developer Guide</a>.

        :param self:
        :param Identities:  A list of one or more identities. You can specify an identity by using its name or by using its Amazon Resource Name (ARN). Examples: <code>user@example.com</code>, <code>example.com</code>, <code>arn:aws:ses:us-east-1:123456789012:identity/example.com</code>.<br/>
        :return: NotificationAttributes:  A map of Identity to IdentityNotificationAttributes.<br/>        """
        pass

    def get_identity_policies(self, PolicyNames: List[PolicyName], Identity: str) -> GetIdentityPoliciesResponse:
        r"""Returns the requested sending authorization policies for the given identity (an email address or a domain). The policies are returned as a map of policy names to policy contents. You can retrieve a maximum of 20 policies at a time. <note> This API is for the identity owner only. If you have not verified the identity, this API will return an error. </note> Sending authorization is a feature that enables an identity owner to authorize other senders to use its identities. For information about using sending authorization, see the <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization.html">Amazon SES Developer Guide</a>. You can execute this operation no more than once per second.

        :param self:
        :param PolicyNames:  A list of the names of policies to be retrieved. You can retrieve a maximum of 20 policies at a time. If you do not know the names of the policies that are attached to the identity, you can use <code>ListIdentityPolicies</code>.<br/>Identity:  The identity for which the policies will be retrieved. You can specify an identity by using its name or by using its Amazon Resource Name (ARN). Examples: <code>user@example.com</code>, <code>example.com</code>, <code>arn:aws:ses:us-east-1:123456789012:identity/example.com</code>. To successfully call this API, you must own the identity.<br/>
        :return: Policies:  A map of policy names to policies.<br/>        """
        pass

    def get_identity_verification_attributes(self, Identities: List[Identity]) -> GetIdentityVerificationAttributesResponse:
        r"""Given a list of identities (email addresses and/or domains), returns the verification status and (for domain identities) the verification token for each identity. The verification status of an email address is "Pending" until the email address owner clicks the link within the verification email that Amazon SES sent to that address. If the email address owner clicks the link within 24 hours, the verification status of the email address changes to "Success". If the link is not clicked within 24 hours, the verification status changes to "Failed." In that case, if you still want to verify the email address, you must restart the verification process from the beginning. For domain identities, the domain's verification status is "Pending" as Amazon SES searches for the required TXT record in the DNS settings of the domain. When Amazon SES detects the record, the domain's verification status changes to "Success". If Amazon SES is unable to detect the record within 72 hours, the domain's verification status changes to "Failed." In that case, if you still want to verify the domain, you must restart the verification process from the beginning. This operation is throttled at one request per second and can only get verification attributes for up to 100 identities at a time.

        :param self:
        :param Identities:  A list of identities.<br/>
        :return: VerificationAttributes:  A map of Identities to IdentityVerificationAttributes objects.<br/>        """
        pass

    def get_send_quota(self) -> GetSendQuotaResponse:
        r"""Provides the sending limits for the Amazon SES account.  You can execute this operation no more than once per second.

        :param self:
        :param 
        :return: SentLast24Hours:  The number of emails sent during the previous 24 hours.<br/>MaxSendRate:  The maximum number of emails that Amazon SES can accept from the user's account per second. <note> The rate at which Amazon SES accepts the user's messages might be less than the maximum send rate. </note><br/>Max24HourSend:  The maximum number of emails the user is allowed to send in a 24-hour interval. A value of -1 signifies an unlimited quota.<br/>        """
        pass

    def get_send_statistics(self) -> GetSendStatisticsResponse:
        r"""Provides sending statistics for the current AWS Region. The result is a list of data points, representing the last two weeks of sending activity. Each data point in the list contains statistics for a 15-minute period of time. You can execute this operation no more than once per second.

        :param self:
        :param 
        :return: SendDataPoints:  A list of data points, each of which represents 15 minutes of activity.<br/>        """
        pass

    def get_template(self, TemplateName: str) -> GetTemplateResponse:
        r"""Displays the template object (which includes the Subject line, HTML part and text part) for the template you specify. You can execute this operation no more than once per second.

        :param self:
        :param TemplateName:  The name of the template you want to retrieve.<br/>
        :return: Template:  The content of the email, composed of a subject line, an HTML part, and a text-only part.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HtmlPart</i> The HTML body of the email.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TextPart</i> The email body that will be visible to recipients whose email clients do not display HTML.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubjectPart</i> The subject line of the email.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TemplateName</i> The name of the template. You will refer to this name when you send email using the <code>SendTemplatedEmail</code> or <code>SendBulkTemplatedEmail</code> operations.<br/>        """
        pass

    def list_configuration_sets(self, NextToken: str=None, MaxItems: int=None) -> ListConfigurationSetsResponse:
        r"""Provides a list of the configuration sets associated with your Amazon SES account in the current AWS Region. For information about using configuration sets, see <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/monitor-sending-activity.html">Monitoring Your Amazon SES Sending Activity</a> in the <i>Amazon SES Developer Guide.</i>  You can execute this operation no more than once per second. This operation will return up to 1,000 configuration sets each time it is run. If your Amazon SES account has more than 1,000 configuration sets, this operation will also return a NextToken element. You can then execute the <code>ListConfigurationSets</code> operation again, passing the <code>NextToken</code> parameter and the value of the NextToken element to retrieve additional results.

        :param self:
        :param MaxItems:  The number of configuration sets to return.<br/>NextToken:  A token returned from a previous call to <code>ListConfigurationSets</code> to indicate the position of the configuration set in the configuration set list.<br/>
        :return: NextToken:  A token indicating that there are additional configuration sets available to be listed. Pass this token to successive calls of <code>ListConfigurationSets</code>. <br/>ConfigurationSets:  A list of configuration sets.<br/>        """
        pass

    def list_custom_verification_email_templates(self, NextToken: str=None, MaxResults: int=None) -> ListCustomVerificationEmailTemplatesResponse:
        r"""Lists the existing custom verification email templates for your account in the current AWS Region. For more information about custom verification email templates, see <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/custom-verification-emails.html">Using Custom Verification Email Templates</a> in the <i>Amazon SES Developer Guide</i>. You can execute this operation no more than once per second.

        :param self:
        :param MaxResults:  The maximum number of custom verification email templates to return. This value must be at least 1 and less than or equal to 50. If you do not specify a value, or if you specify a value less than 1 or greater than 50, the operation will return up to 50 results.<br/>NextToken:  An array the contains the name and creation time stamp for each template in your Amazon SES account.<br/>
        :return: NextToken:  A token indicating that there are additional custom verification email templates available to be listed. Pass this token to a subsequent call to <code>ListTemplates</code> to retrieve the next 50 custom verification email templates.<br/>CustomVerificationEmailTemplates:  A list of the custom verification email templates that exist in your account.<br/>        """
        pass

    def list_identities(self, IdentityType: str=None, NextToken: str=None, MaxItems: int=None) -> ListIdentitiesResponse:
        r"""Returns a list containing all of the identities (email addresses and domains) for your AWS account in the current AWS Region, regardless of verification status. You can execute this operation no more than once per second.

        :param self:
        :param MaxItems:  The maximum number of identities per page. Possible values are 1-1000 inclusive.<br/>NextToken:  The token to use for pagination.<br/>IdentityType:  The type of the identities to list. Possible values are "EmailAddress" and "Domain". If this parameter is omitted, then all identities will be listed.<br/>
        :return: NextToken:  The token used for pagination.<br/>Identities:  A list of identities.<br/>        """
        pass

    def list_identity_policies(self, Identity: str) -> ListIdentityPoliciesResponse:
        r"""Returns a list of sending authorization policies that are attached to the given identity (an email address or a domain). This API returns only a list. If you want the actual policy content, you can use <code>GetIdentityPolicies</code>. <note> This API is for the identity owner only. If you have not verified the identity, this API will return an error. </note> Sending authorization is a feature that enables an identity owner to authorize other senders to use its identities. For information about using sending authorization, see the <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization.html">Amazon SES Developer Guide</a>. You can execute this operation no more than once per second.

        :param self:
        :param Identity:  The identity that is associated with the policy for which the policies will be listed. You can specify an identity by using its name or by using its Amazon Resource Name (ARN). Examples: <code>user@example.com</code>, <code>example.com</code>, <code>arn:aws:ses:us-east-1:123456789012:identity/example.com</code>. To successfully call this API, you must own the identity.<br/>
        :return: PolicyNames:  A list of names of policies that apply to the specified identity.<br/>        """
        pass

    def list_receipt_filters(self) -> ListReceiptFiltersResponse:
        r"""Lists the IP address filters associated with your AWS account in the current AWS Region. For information about managing IP address filters, see the <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-managing-ip-filters.html">Amazon SES Developer Guide</a>. You can execute this operation no more than once per second.

        :param self:
        :param 
        :return: Filters:  A list of IP address filter data structures, which each consist of a name, an IP address range, and whether to allow or block mail from it.<br/>        """
        pass

    def list_receipt_rule_sets(self, NextToken: str=None) -> ListReceiptRuleSetsResponse:
        r"""Lists the receipt rule sets that exist under your AWS account in the current AWS Region. If there are additional receipt rule sets to be retrieved, you will receive a <code>NextToken</code> that you can provide to the next call to <code>ListReceiptRuleSets</code> to retrieve the additional entries. For information about managing receipt rule sets, see the <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-managing-receipt-rule-sets.html">Amazon SES Developer Guide</a>. You can execute this operation no more than once per second.

        :param self:
        :param NextToken:  A token returned from a previous call to <code>ListReceiptRuleSets</code> to indicate the position in the receipt rule set list.<br/>
        :return: NextToken:  A token indicating that there are additional receipt rule sets available to be listed. Pass this token to successive calls of <code>ListReceiptRuleSets</code> to retrieve up to 100 receipt rule sets at a time.<br/>RuleSets:  The metadata for the currently active receipt rule set. The metadata consists of the rule set name and the timestamp of when the rule set was created.<br/>        """
        pass

    def list_templates(self, NextToken: str=None, MaxItems: int=None) -> ListTemplatesResponse:
        r"""Lists the email templates present in your Amazon SES account in the current AWS Region. You can execute this operation no more than once per second.

        :param self:
        :param MaxItems:  The maximum number of templates to return. This value must be at least 1 and less than or equal to 10. If you do not specify a value, or if you specify a value less than 1 or greater than 10, the operation will return up to 10 results.<br/>NextToken:  A token returned from a previous call to <code>ListTemplates</code> to indicate the position in the list of email templates.<br/>
        :return: NextToken:  A token indicating that there are additional email templates available to be listed. Pass this token to a subsequent call to <code>ListTemplates</code> to retrieve the next 50 email templates.<br/>TemplatesMetadata:  An array the contains the name and creation time stamp for each template in your Amazon SES account.<br/>        """
        pass

    def list_verified_email_addresses(self) -> ListVerifiedEmailAddressesResponse:
        r"""Deprecated. Use the <code>ListIdentities</code> operation to list the email addresses and domains associated with your account.

        :param self:
        :param 
        :return: VerifiedEmailAddresses:  A list of email addresses that have been verified.<br/>        """
        pass

    def put_configuration_set_delivery_options(self, ConfigurationSetName: str, DeliveryOptions: DeliveryOptions=None) -> PutConfigurationSetDeliveryOptionsResponse:
        r"""Adds or updates the delivery options for a configuration set.

        :param self:
        :param DeliveryOptions:  Specifies whether messages that use the configuration set are required to use Transport Layer Security (TLS).:<br/>ConfigurationSetName:  The name of the configuration set that you want to specify the delivery options for.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TlsPolicy</i> Specifies whether messages that use the configuration set are required to use Transport Layer Security (TLS). If the value is <code>Require</code>, messages are only delivered if a TLS connection can be established. If the value is <code>Optional</code>, messages can be delivered in plain text if a TLS connection can't be established.<br/>
        :return:         """
        pass

    def put_identity_policy(self, Policy: str, PolicyName: str, Identity: str) -> PutIdentityPolicyResponse:
        r"""Adds or updates a sending authorization policy for the specified identity (an email address or a domain). <note> This API is for the identity owner only. If you have not verified the identity, this API will return an error. </note> Sending authorization is a feature that enables an identity owner to authorize other senders to use its identities. For information about using sending authorization, see the <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization.html">Amazon SES Developer Guide</a>. You can execute this operation no more than once per second.

        :param self:
        :param Policy:  The text of the policy in JSON format. The policy cannot exceed 4 KB. For information about the syntax of sending authorization policies, see the <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization-policies.html">Amazon SES Developer Guide</a>. <br/>PolicyName:  The name of the policy. The policy name cannot exceed 64 characters and can only include alphanumeric characters, dashes, and underscores.<br/>Identity:  The identity that the policy will apply to. You can specify an identity by using its name or by using its Amazon Resource Name (ARN). Examples: <code>user@example.com</code>, <code>example.com</code>, <code>arn:aws:ses:us-east-1:123456789012:identity/example.com</code>. To successfully call this API, you must own the identity.<br/>
        :return:         """
        pass

    def reorder_receipt_rule_set(self, RuleNames: List[ReceiptRuleName], RuleSetName: str) -> ReorderReceiptRuleSetResponse:
        r"""Reorders the receipt rules within a receipt rule set. <note> All of the rules in the rule set must be represented in this request. That is, this API will return an error if the reorder request doesn't explicitly position all of the rules. </note> For information about managing receipt rule sets, see the <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-managing-receipt-rule-sets.html">Amazon SES Developer Guide</a>. You can execute this operation no more than once per second.

        :param self:
        :param RuleNames:  A list of the specified receipt rule set's receipt rules in the order that you want to put them.<br/>RuleSetName:  The name of the receipt rule set to reorder.<br/>
        :return:         """
        pass

    def send_bounce(self, BouncedRecipientInfoList: List[BouncedRecipientInfo], BounceSender: str, OriginalMessageId: str, Explanation: str=None, MessageDsn: MessageDsn=None, BounceSenderArn: str=None) -> SendBounceResponse:
        r"""Generates and sends a bounce message to the sender of an email you received through Amazon SES. You can only use this API on an email up to 24 hours after you receive it. <note> You cannot use this API to send generic bounces for mail that was not received by Amazon SES. </note> For information about receiving email through Amazon SES, see the <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email.html">Amazon SES Developer Guide</a>. You can execute this operation no more than once per second.

        :param self:
        :param BounceSenderArn:  This parameter is used only for sending authorization. It is the ARN of the identity that is associated with the sending authorization policy that permits you to use the address in the "From" header of the bounce. For more information about sending authorization, see the <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization.html">Amazon SES Developer Guide</a>.<br/>BouncedRecipientInfoList:  A list of recipients of the bounced message, including the information required to create the Delivery Status Notifications (DSNs) for the recipients. You must specify at least one <code>BouncedRecipientInfo</code> in the list.<br/>MessageDsn:  Message-related DSN fields. If not specified, Amazon SES will choose the values.:<br/>Explanation:  Human-readable text for the bounce message to explain the failure. If not specified, the text will be auto-generated based on the bounced recipient information.<br/>BounceSender:  The address to use in the "From" header of the bounce message. This must be an identity that you have verified with Amazon SES.<br/>OriginalMessageId:  The message ID of the message to be bounced.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExtensionFields</i> Additional X-headers to include in the DSN.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ArrivalDate</i> When the message was received by the reporting mail transfer agent (MTA), in <a href="https://www.ietf.org/rfc/rfc0822.txt">RFC 822</a> date-time format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReportingMta</i> The reporting MTA that attempted to deliver the message, formatted as specified in <a href="https://tools.ietf.org/html/rfc3464">RFC 3464</a> (<code>mta-name-type; mta-name</code>). The default value is <code>dns; inbound-smtp.[region].amazonaws.com</code>.<br/>
        :return: MessageId:  The message ID of the bounce message.<br/>        """
        pass

    def send_bulk_templated_email(self, Destinations: List[BulkEmailDestination], Template: str, Source: str, SourceArn: str=None, ReplyToAddresses: List[Address]=None, ReturnPath: str=None, ReturnPathArn: str=None, ConfigurationSetName: str=None, DefaultTags: List[MessageTag]=None, TemplateArn: str=None, DefaultTemplateData: str=None) -> SendBulkTemplatedEmailResponse:
        r"""Composes an email message to multiple destinations. The message body is created using an email template. In order to send email using the <code>SendBulkTemplatedEmail</code> operation, your call to the API must meet the following requirements: <ul> <li> The call must refer to an existing email template. You can create email templates using the <a>CreateTemplate</a> operation. </li> <li> The message must be sent from a verified email address or domain. </li> <li> If your account is still in the Amazon SES sandbox, you may only send to verified addresses or domains, or to email addresses associated with the Amazon SES Mailbox Simulator. For more information, see <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/verify-addresses-and-domains.html">Verifying Email Addresses and Domains</a> in the <i>Amazon SES Developer Guide.</i>  </li> <li> The maximum message size is 10 MB. </li> <li> Each <code>Destination</code> parameter must include at least one recipient email address. The recipient address can be a To: address, a CC: address, or a BCC: address. If a recipient email address is invalid (that is, it is not in the format <i>UserName@[SubDomain.]Domain.TopLevelDomain</i>), the entire message will be rejected, even if the message contains other recipients that are valid. </li> <li> The message may not include more than 50 recipients, across the To:, CC: and BCC: fields. If you need to send an email message to a larger audience, you can divide your recipient list into groups of 50 or fewer, and then call the <code>SendBulkTemplatedEmail</code> operation several times to send the message to each group. </li> <li> The number of destinations you can contact in a single call to the API may be limited by your account's maximum sending rate. </li> </ul>

        :param self:
        :param Destinations:  One or more <code>Destination</code> objects. All of the recipients in a <code>Destination</code> will receive the same version of the email. You can specify up to 50 <code>Destination</code> objects within a <code>Destinations</code> array.<br/>DefaultTemplateData:  A list of replacement values to apply to the template when replacement data is not specified in a Destination object. These values act as a default or fallback option when no other data is available. The template data is a JSON object, typically consisting of key-value pairs in which the keys correspond to replacement tags in the email template.<br/>TemplateArn:  The ARN of the template to use when sending this email.<br/>Template:  The template to use when sending this email.<br/>DefaultTags:  A list of tags, in the form of name/value pairs, to apply to an email that you send to a destination using <code>SendBulkTemplatedEmail</code>.<br/>ConfigurationSetName:  The name of the configuration set to use when you send an email using <code>SendBulkTemplatedEmail</code>.<br/>ReturnPathArn:  This parameter is used only for sending authorization. It is the ARN of the identity that is associated with the sending authorization policy that permits you to use the email address specified in the <code>ReturnPath</code> parameter. For example, if the owner of <code>example.com</code> (which has ARN <code>arn:aws:ses:us-east-1:123456789012:identity/example.com</code>) attaches a policy to it that authorizes you to use <code>feedback@example.com</code>, then you would specify the <code>ReturnPathArn</code> to be <code>arn:aws:ses:us-east-1:123456789012:identity/example.com</code>, and the <code>ReturnPath</code> to be <code>feedback@example.com</code>. For more information about sending authorization, see the <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization.html">Amazon SES Developer Guide</a>.<br/>ReturnPath:  The email address that bounces and complaints will be forwarded to when feedback forwarding is enabled. If the message cannot be delivered to the recipient, then an error message will be returned from the recipient's ISP; this message will then be forwarded to the email address specified by the <code>ReturnPath</code> parameter. The <code>ReturnPath</code> parameter is never overwritten. This email address must be either individually verified with Amazon SES, or from a domain that has been verified with Amazon SES. <br/>ReplyToAddresses:  The reply-to email address(es) for the message. If the recipient replies to the message, each reply-to address will receive the reply.<br/>SourceArn:  This parameter is used only for sending authorization. It is the ARN of the identity that is associated with the sending authorization policy that permits you to send for the email address specified in the <code>Source</code> parameter. For example, if the owner of <code>example.com</code> (which has ARN <code>arn:aws:ses:us-east-1:123456789012:identity/example.com</code>) attaches a policy to it that authorizes you to send from <code>user@example.com</code>, then you would specify the <code>SourceArn</code> to be <code>arn:aws:ses:us-east-1:123456789012:identity/example.com</code>, and the <code>Source</code> to be <code>user@example.com</code>. For more information about sending authorization, see the <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization.html">Amazon SES Developer Guide</a>.<br/>Source:  The email address that is sending the email. This email address must be either individually verified with Amazon SES, or from a domain that has been verified with Amazon SES. For information about verifying identities, see the <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/verify-addresses-and-domains.html">Amazon SES Developer Guide</a>. If you are sending on behalf of another user and have been permitted to do so by a sending authorization policy, then you must also specify the <code>SourceArn</code> parameter. For more information about sending authorization, see the <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization.html">Amazon SES Developer Guide</a>. <note> Amazon SES does not support the SMTPUTF8 extension, as described in <a href="https://tools.ietf.org/html/rfc6531">RFC6531</a>. For this reason, the <i>local part</i> of a source email address (the part of the email address that precedes the @ sign) may only contain <a href="https://en.wikipedia.org/wiki/Email_address#Local-part">7-bit ASCII characters</a>. If the <i>domain part</i> of an address (the part after the @ sign) contains non-ASCII characters, they must be encoded using Punycode, as described in <a href="https://tools.ietf.org/html/rfc3492.html">RFC3492</a>. The sender name (also known as the <i>friendly name</i>) may contain non-ASCII characters. These characters must be encoded using MIME encoded-word syntax, as described in <a href="https://tools.ietf.org/html/rfc2047">RFC 2047</a>. MIME encoded-word syntax uses the following form: <code>=?charset?encoding?encoded-text?=</code>. </note><br/>
        :return: Status:  The unique message identifier returned from the <code>SendBulkTemplatedEmail</code> action.<br/>        """
        pass

    def send_custom_verification_email(self, TemplateName: str, EmailAddress: str, ConfigurationSetName: str=None) -> SendCustomVerificationEmailResponse:
        r"""Adds an email address to the list of identities for your Amazon SES account in the current AWS Region and attempts to verify it. As a result of executing this operation, a customized verification email is sent to the specified address. To use this operation, you must first create a custom verification email template. For more information about creating and using custom verification email templates, see <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/custom-verification-emails.html">Using Custom Verification Email Templates</a> in the <i>Amazon SES Developer Guide</i>. You can execute this operation no more than once per second.

        :param self:
        :param ConfigurationSetName:  Name of a configuration set to use when sending the verification email.<br/>TemplateName:  The name of the custom verification email template to use when sending the verification email.<br/>EmailAddress:  The email address to verify.<br/>
        :return: MessageId:  The unique message identifier returned from the <code>SendCustomVerificationEmail</code> operation.<br/>        """
        pass

    def send_email(self, Message: Message, Destination: Destination, Source: str, ReplyToAddresses: List[Address]=None, ReturnPath: str=None, SourceArn: str=None, ReturnPathArn: str=None, Tags: List[MessageTag]=None, ConfigurationSetName: str=None) -> SendEmailResponse:
        r"""Composes an email message and immediately queues it for sending. In order to send email using the <code>SendEmail</code> operation, your message must meet the following requirements: <ul> <li> The message must be sent from a verified email address or domain. If you attempt to send email using a non-verified address or domain, the operation will result in an "Email address not verified" error.  </li> <li> If your account is still in the Amazon SES sandbox, you may only send to verified addresses or domains, or to email addresses associated with the Amazon SES Mailbox Simulator. For more information, see <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/verify-addresses-and-domains.html">Verifying Email Addresses and Domains</a> in the <i>Amazon SES Developer Guide.</i>  </li> <li> The maximum message size is 10 MB. </li> <li> The message must include at least one recipient email address. The recipient address can be a To: address, a CC: address, or a BCC: address. If a recipient email address is invalid (that is, it is not in the format <i>UserName@[SubDomain.]Domain.TopLevelDomain</i>), the entire message will be rejected, even if the message contains other recipients that are valid. </li> <li> The message may not include more than 50 recipients, across the To:, CC: and BCC: fields. If you need to send an email message to a larger audience, you can divide your recipient list into groups of 50 or fewer, and then call the <code>SendEmail</code> operation several times to send the message to each group. </li> </ul> <important> For every message that you send, the total number of recipients (including each recipient in the To:, CC: and BCC: fields) is counted against the maximum number of emails you can send in a 24-hour period (your <i>sending quota</i>). For more information about sending quotas in Amazon SES, see <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/manage-sending-limits.html">Managing Your Amazon SES Sending Limits</a> in the <i>Amazon SES Developer Guide.</i>  </important>

        :param self:
        :param ConfigurationSetName:  The name of the configuration set to use when you send an email using <code>SendEmail</code>.<br/>Tags:  A list of tags, in the form of name/value pairs, to apply to an email that you send using <code>SendEmail</code>. Tags correspond to characteristics of the email that you define, so that you can publish email sending events.<br/>ReturnPathArn:  This parameter is used only for sending authorization. It is the ARN of the identity that is associated with the sending authorization policy that permits you to use the email address specified in the <code>ReturnPath</code> parameter. For example, if the owner of <code>example.com</code> (which has ARN <code>arn:aws:ses:us-east-1:123456789012:identity/example.com</code>) attaches a policy to it that authorizes you to use <code>feedback@example.com</code>, then you would specify the <code>ReturnPathArn</code> to be <code>arn:aws:ses:us-east-1:123456789012:identity/example.com</code>, and the <code>ReturnPath</code> to be <code>feedback@example.com</code>. For more information about sending authorization, see the <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization.html">Amazon SES Developer Guide</a>.<br/>SourceArn:  This parameter is used only for sending authorization. It is the ARN of the identity that is associated with the sending authorization policy that permits you to send for the email address specified in the <code>Source</code> parameter. For example, if the owner of <code>example.com</code> (which has ARN <code>arn:aws:ses:us-east-1:123456789012:identity/example.com</code>) attaches a policy to it that authorizes you to send from <code>user@example.com</code>, then you would specify the <code>SourceArn</code> to be <code>arn:aws:ses:us-east-1:123456789012:identity/example.com</code>, and the <code>Source</code> to be <code>user@example.com</code>. For more information about sending authorization, see the <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization.html">Amazon SES Developer Guide</a>.<br/>ReturnPath:  The email address that bounces and complaints will be forwarded to when feedback forwarding is enabled. If the message cannot be delivered to the recipient, then an error message will be returned from the recipient's ISP; this message will then be forwarded to the email address specified by the <code>ReturnPath</code> parameter. The <code>ReturnPath</code> parameter is never overwritten. This email address must be either individually verified with Amazon SES, or from a domain that has been verified with Amazon SES. <br/>ReplyToAddresses:  The reply-to email address(es) for the message. If the recipient replies to the message, each reply-to address will receive the reply.<br/>Message:  The message to be sent.:<br/>Destination:  The destination for this email, composed of To:, CC:, and BCC: fields.:<br/>Source:  The email address that is sending the email. This email address must be either individually verified with Amazon SES, or from a domain that has been verified with Amazon SES. For information about verifying identities, see the <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/verify-addresses-and-domains.html">Amazon SES Developer Guide</a>. If you are sending on behalf of another user and have been permitted to do so by a sending authorization policy, then you must also specify the <code>SourceArn</code> parameter. For more information about sending authorization, see the <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization.html">Amazon SES Developer Guide</a>. <note> Amazon SES does not support the SMTPUTF8 extension, as described in <a href="https://tools.ietf.org/html/rfc6531">RFC6531</a>. For this reason, the <i>local part</i> of a source email address (the part of the email address that precedes the @ sign) may only contain <a href="https://en.wikipedia.org/wiki/Email_address#Local-part">7-bit ASCII characters</a>. If the <i>domain part</i> of an address (the part after the @ sign) contains non-ASCII characters, they must be encoded using Punycode, as described in <a href="https://tools.ietf.org/html/rfc3492.html">RFC3492</a>. The sender name (also known as the <i>friendly name</i>) may contain non-ASCII characters. These characters must be encoded using MIME encoded-word syntax, as described in <a href="https://tools.ietf.org/html/rfc2047">RFC 2047</a>. MIME encoded-word syntax uses the following form: <code>=?charset?encoding?encoded-text?=</code>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BccAddresses</i> The recipients to place on the BCC: line of the message.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CcAddresses</i> The recipients to place on the CC: line of the message.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ToAddresses</i> The recipients to place on the To: line of the message.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Body</i> The message body.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Body</b>: The message body.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Subject</i> The subject of the message: A short summary of the content, which will appear in the recipient's inbox.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Subject</b>: The subject of the message: A short summary of the content, which will appear in the recipient's inbox.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Charset</i> The character set of the content.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Data</i> The textual data of the content.<br/>The content of the message, in text format. Use this for text-based email clients, or clients on high-latency networks (such as mobile devices).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Text</b>: The content of the message, in text format. Use this for text-based email clients, or clients on high-latency networks (such as mobile devices).
        :return: MessageId:  The unique message identifier returned from the <code>SendEmail</code> action. <br/>        """
        pass

    def send_raw_email(self, RawMessage: RawMessage, Source: str=None, Destinations: List[Address]=None, FromArn: str=None, SourceArn: str=None, ReturnPathArn: str=None, Tags: List[MessageTag]=None, ConfigurationSetName: str=None) -> SendRawEmailResponse:
        r"""Composes an email message and immediately queues it for sending. This operation is more flexible than the <code>SendEmail</code> API operation. When you use the <code>SendRawEmail</code> operation, you can specify the headers of the message as well as its content. This flexibility is useful, for example, when you want to send a multipart MIME email (such a message that contains both a text and an HTML version). You can also use this operation to send messages that include attachments. The <code>SendRawEmail</code> operation has the following requirements: <ul> <li> You can only send email from <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/verify-addresses-and-domains.html">verified email addresses or domains</a>. If you try to send email from an address that isn't verified, the operation results in an "Email address not verified" error. </li> <li> If your account is still in the <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/request-production-access.html">Amazon SES sandbox</a>, you can only send email to other verified addresses in your account, or to addresses that are associated with the <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/mailbox-simulator.html">Amazon SES mailbox simulator</a>. </li> <li> The maximum message size, including attachments, is 10 MB. </li> <li> Each message has to include at least one recipient address. A recipient address includes any address on the To:, CC:, or BCC: lines. </li> <li> If you send a single message to more than one recipient address, and one of the recipient addresses isn't in a valid format (that is, it's not in the format <i>UserName@[SubDomain.]Domain.TopLevelDomain</i>), Amazon SES rejects the entire message, even if the other addresses are valid. </li> <li> Each message can include up to 50 recipient addresses across the To:, CC:, or BCC: lines. If you need to send a single message to more than 50 recipients, you have to split the list of recipient addresses into groups of less than 50 recipients, and send separate messages to each group. </li> <li> Amazon SES allows you to specify 8-bit Content-Transfer-Encoding for MIME message parts. However, if Amazon SES has to modify the contents of your message (for example, if you use open and click tracking), 8-bit content isn't preserved. For this reason, we highly recommend that you encode all content that isn't 7-bit ASCII. For more information, see <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-email-raw.html#send-email-mime-encoding">MIME Encoding</a> in the <i>Amazon SES Developer Guide</i>. </li> </ul> Additionally, keep the following considerations in mind when using the <code>SendRawEmail</code> operation: <ul> <li> Although you can customize the message headers when using the <code>SendRawEmail</code> operation, Amazon SES will automatically apply its own <code>Message-ID</code> and <code>Date</code> headers; if you passed these headers when creating the message, they will be overwritten by the values that Amazon SES provides. </li> <li> If you are using sending authorization to send on behalf of another user, <code>SendRawEmail</code> enables you to specify the cross-account identity for the email's Source, From, and Return-Path parameters in one of two ways: you can pass optional parameters <code>SourceArn</code>, <code>FromArn</code>, and/or <code>ReturnPathArn</code> to the API, or you can include the following X-headers in the header of your raw email: <ul> <li>  <code>X-SES-SOURCE-ARN</code>  </li> <li>  <code>X-SES-FROM-ARN</code>  </li> <li>  <code>X-SES-RETURN-PATH-ARN</code>  </li> </ul> <important> Don't include these X-headers in the DKIM signature. Amazon SES removes these before it sends the email. </important> If you only specify the <code>SourceIdentityArn</code> parameter, Amazon SES sets the From and Return-Path addresses to the same identity that you specified. For more information about sending authorization, see the <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization.html">Using Sending Authorization with Amazon SES</a> in the <i>Amazon SES Developer Guide.</i>  </li> <li> For every message that you send, the total number of recipients (including each recipient in the To:, CC: and BCC: fields) is counted against the maximum number of emails you can send in a 24-hour period (your <i>sending quota</i>). For more information about sending quotas in Amazon SES, see <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/manage-sending-limits.html">Managing Your Amazon SES Sending Limits</a> in the <i>Amazon SES Developer Guide.</i>  </li> </ul>

        :param self:
        :param ConfigurationSetName:  The name of the configuration set to use when you send an email using <code>SendRawEmail</code>.<br/>Tags:  A list of tags, in the form of name/value pairs, to apply to an email that you send using <code>SendRawEmail</code>. Tags correspond to characteristics of the email that you define, so that you can publish email sending events.<br/>ReturnPathArn:  This parameter is used only for sending authorization. It is the ARN of the identity that is associated with the sending authorization policy that permits you to use the email address specified in the <code>ReturnPath</code> parameter. For example, if the owner of <code>example.com</code> (which has ARN <code>arn:aws:ses:us-east-1:123456789012:identity/example.com</code>) attaches a policy to it that authorizes you to use <code>feedback@example.com</code>, then you would specify the <code>ReturnPathArn</code> to be <code>arn:aws:ses:us-east-1:123456789012:identity/example.com</code>, and the <code>ReturnPath</code> to be <code>feedback@example.com</code>. Instead of using this parameter, you can use the X-header <code>X-SES-RETURN-PATH-ARN</code> in the raw message of the email. If you use both the <code>ReturnPathArn</code> parameter and the corresponding X-header, Amazon SES uses the value of the <code>ReturnPathArn</code> parameter. <note> For information about when to use this parameter, see the description of <code>SendRawEmail</code> in this guide, or see the <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization-delegate-sender-tasks-email.html">Amazon SES Developer Guide</a>. </note><br/>SourceArn:  This parameter is used only for sending authorization. It is the ARN of the identity that is associated with the sending authorization policy that permits you to send for the email address specified in the <code>Source</code> parameter. For example, if the owner of <code>example.com</code> (which has ARN <code>arn:aws:ses:us-east-1:123456789012:identity/example.com</code>) attaches a policy to it that authorizes you to send from <code>user@example.com</code>, then you would specify the <code>SourceArn</code> to be <code>arn:aws:ses:us-east-1:123456789012:identity/example.com</code>, and the <code>Source</code> to be <code>user@example.com</code>. Instead of using this parameter, you can use the X-header <code>X-SES-SOURCE-ARN</code> in the raw message of the email. If you use both the <code>SourceArn</code> parameter and the corresponding X-header, Amazon SES uses the value of the <code>SourceArn</code> parameter. <note> For information about when to use this parameter, see the description of <code>SendRawEmail</code> in this guide, or see the <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization-delegate-sender-tasks-email.html">Amazon SES Developer Guide</a>. </note><br/>FromArn:  This parameter is used only for sending authorization. It is the ARN of the identity that is associated with the sending authorization policy that permits you to specify a particular "From" address in the header of the raw email. Instead of using this parameter, you can use the X-header <code>X-SES-FROM-ARN</code> in the raw message of the email. If you use both the <code>FromArn</code> parameter and the corresponding X-header, Amazon SES uses the value of the <code>FromArn</code> parameter. <note> For information about when to use this parameter, see the description of <code>SendRawEmail</code> in this guide, or see the <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization-delegate-sender-tasks-email.html">Amazon SES Developer Guide</a>. </note><br/>RawMessage:  The raw email message itself. The message has to meet the following criteria: <ul> <li> The message has to contain a header and a body, separated by a blank line. </li> <li> All of the required header fields must be present in the message. </li> <li> Each part of a multipart MIME message must be formatted properly. </li> <li> Attachments must be of a content type that Amazon SES supports. For a list on unsupported content types, see <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/mime-types.html">Unsupported Attachment Types</a> in the <i>Amazon SES Developer Guide</i>. </li> <li> The entire message must be base64-encoded. </li> <li> If any of the MIME parts in your message contain content that is outside of the 7-bit ASCII character range, we highly recommend that you encode that content. For more information, see <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-email-raw.html">Sending Raw Email</a> in the <i>Amazon SES Developer Guide</i>. </li> <li> Per <a href="https://tools.ietf.org/html/rfc5321#section-4.5.3.1.6">RFC 5321</a>, the maximum length of each line of text, including the &lt;CRLF&gt;, must not exceed 1,000 characters. </li> </ul>:<br/>Destinations:  A list of destinations for the message, consisting of To:, CC:, and BCC: addresses.<br/>Source:  The identity's email address. If you do not provide a value for this parameter, you must specify a "From" address in the raw text of the message. (You can also specify both.) <note> Amazon SES does not support the SMTPUTF8 extension, as described in<a href="https://tools.ietf.org/html/rfc6531">RFC6531</a>. For this reason, the <i>local part</i> of a source email address (the part of the email address that precedes the @ sign) may only contain <a href="https://en.wikipedia.org/wiki/Email_address#Local-part">7-bit ASCII characters</a>. If the <i>domain part</i> of an address (the part after the @ sign) contains non-ASCII characters, they must be encoded using Punycode, as described in <a href="https://tools.ietf.org/html/rfc3492.html">RFC3492</a>. The sender name (also known as the <i>friendly name</i>) may contain non-ASCII characters. These characters must be encoded using MIME encoded-word syntax, as described in <a href="https://tools.ietf.org/html/rfc2047">RFC 2047</a>. MIME encoded-word syntax uses the following form: <code>=?charset?encoding?encoded-text?=</code>. </note> If you specify the <code>Source</code> parameter and have feedback forwarding enabled, then bounces and complaints will be sent to this email address. This takes precedence over any Return-Path header that you might include in the raw text of the message.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Data</i> The raw data of the message. This data needs to base64-encoded if you are accessing Amazon SES directly through the HTTPS interface. If you are accessing Amazon SES using an AWS SDK, the SDK takes care of the base 64-encoding for you. In all cases, the client must ensure that the message format complies with Internet email standards regarding email header fields, MIME types, and MIME encoding. The To:, CC:, and BCC: headers in the raw message can contain a group list. If you are using <code>SendRawEmail</code> with sending authorization, you can include X-headers in the raw message to specify the "Source," "From," and "Return-Path" addresses. For more information, see the documentation for <code>SendRawEmail</code>.  <important> Do not include these X-headers in the DKIM signature, because they are removed by Amazon SES before sending the email. </important> For more information, go to the <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-email-raw.html">Amazon SES Developer Guide</a>.<br/>
        :return: MessageId:  The unique message identifier returned from the <code>SendRawEmail</code> action. <br/>        """
        pass

    def send_templated_email(self, TemplateData: str, Template: str, Destination: Destination, Source: str, ReplyToAddresses: List[Address]=None, ReturnPath: str=None, SourceArn: str=None, ReturnPathArn: str=None, Tags: List[MessageTag]=None, ConfigurationSetName: str=None, TemplateArn: str=None) -> SendTemplatedEmailResponse:
        r"""Composes an email message using an email template and immediately queues it for sending. In order to send email using the <code>SendTemplatedEmail</code> operation, your call to the API must meet the following requirements: <ul> <li> The call must refer to an existing email template. You can create email templates using the <a>CreateTemplate</a> operation. </li> <li> The message must be sent from a verified email address or domain. </li> <li> If your account is still in the Amazon SES sandbox, you may only send to verified addresses or domains, or to email addresses associated with the Amazon SES Mailbox Simulator. For more information, see <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/verify-addresses-and-domains.html">Verifying Email Addresses and Domains</a> in the <i>Amazon SES Developer Guide.</i>  </li> <li> The maximum message size is 10 MB. </li> <li> Calls to the <code>SendTemplatedEmail</code> operation may only include one <code>Destination</code> parameter. A destination is a set of recipients who will receive the same version of the email. The <code>Destination</code> parameter can include up to 50 recipients, across the To:, CC: and BCC: fields. </li> <li> The <code>Destination</code> parameter must include at least one recipient email address. The recipient address can be a To: address, a CC: address, or a BCC: address. If a recipient email address is invalid (that is, it is not in the format <i>UserName@[SubDomain.]Domain.TopLevelDomain</i>), the entire message will be rejected, even if the message contains other recipients that are valid. </li> </ul> <important> If your call to the <code>SendTemplatedEmail</code> operation includes all of the required parameters, Amazon SES accepts it and returns a Message ID. However, if Amazon SES can't render the email because the template contains errors, it doesn't send the email. Additionally, because it already accepted the message, Amazon SES doesn't return a message stating that it was unable to send the email. For these reasons, we highly recommend that you set up Amazon SES to send you notifications when Rendering Failure events occur. For more information, see <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-personalized-email-api.html">Sending Personalized Email Using the Amazon SES API</a> in the <i>Amazon Simple Email Service Developer Guide</i>. </important>

        :param self:
        :param TemplateData:  A list of replacement values to apply to the template. This parameter is a JSON object, typically consisting of key-value pairs in which the keys correspond to replacement tags in the email template.<br/>TemplateArn:  The ARN of the template to use when sending this email.<br/>Template:  The template to use when sending this email.<br/>ConfigurationSetName:  The name of the configuration set to use when you send an email using <code>SendTemplatedEmail</code>.<br/>Tags:  A list of tags, in the form of name/value pairs, to apply to an email that you send using <code>SendTemplatedEmail</code>. Tags correspond to characteristics of the email that you define, so that you can publish email sending events.<br/>ReturnPathArn:  This parameter is used only for sending authorization. It is the ARN of the identity that is associated with the sending authorization policy that permits you to use the email address specified in the <code>ReturnPath</code> parameter. For example, if the owner of <code>example.com</code> (which has ARN <code>arn:aws:ses:us-east-1:123456789012:identity/example.com</code>) attaches a policy to it that authorizes you to use <code>feedback@example.com</code>, then you would specify the <code>ReturnPathArn</code> to be <code>arn:aws:ses:us-east-1:123456789012:identity/example.com</code>, and the <code>ReturnPath</code> to be <code>feedback@example.com</code>. For more information about sending authorization, see the <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization.html">Amazon SES Developer Guide</a>.<br/>SourceArn:  This parameter is used only for sending authorization. It is the ARN of the identity that is associated with the sending authorization policy that permits you to send for the email address specified in the <code>Source</code> parameter. For example, if the owner of <code>example.com</code> (which has ARN <code>arn:aws:ses:us-east-1:123456789012:identity/example.com</code>) attaches a policy to it that authorizes you to send from <code>user@example.com</code>, then you would specify the <code>SourceArn</code> to be <code>arn:aws:ses:us-east-1:123456789012:identity/example.com</code>, and the <code>Source</code> to be <code>user@example.com</code>. For more information about sending authorization, see the <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization.html">Amazon SES Developer Guide</a>.<br/>ReturnPath:  The email address that bounces and complaints will be forwarded to when feedback forwarding is enabled. If the message cannot be delivered to the recipient, then an error message will be returned from the recipient's ISP; this message will then be forwarded to the email address specified by the <code>ReturnPath</code> parameter. The <code>ReturnPath</code> parameter is never overwritten. This email address must be either individually verified with Amazon SES, or from a domain that has been verified with Amazon SES. <br/>ReplyToAddresses:  The reply-to email address(es) for the message. If the recipient replies to the message, each reply-to address will receive the reply.<br/>Destination:  The destination for this email, composed of To:, CC:, and BCC: fields. A Destination can include up to 50 recipients across these three fields.:<br/>Source:  The email address that is sending the email. This email address must be either individually verified with Amazon SES, or from a domain that has been verified with Amazon SES. For information about verifying identities, see the <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/verify-addresses-and-domains.html">Amazon SES Developer Guide</a>. If you are sending on behalf of another user and have been permitted to do so by a sending authorization policy, then you must also specify the <code>SourceArn</code> parameter. For more information about sending authorization, see the <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization.html">Amazon SES Developer Guide</a>. <note> Amazon SES does not support the SMTPUTF8 extension, as described in <a href="https://tools.ietf.org/html/rfc6531">RFC6531</a>. For this reason, the <i>local part</i> of a source email address (the part of the email address that precedes the @ sign) may only contain <a href="https://en.wikipedia.org/wiki/Email_address#Local-part">7-bit ASCII characters</a>. If the <i>domain part</i> of an address (the part after the @ sign) contains non-ASCII characters, they must be encoded using Punycode, as described in <a href="https://tools.ietf.org/html/rfc3492.html">RFC3492</a>. The sender name (also known as the <i>friendly name</i>) may contain non-ASCII characters. These characters must be encoded using MIME encoded-word syntax, as described in<a href="https://tools.ietf.org/html/rfc2047">RFC 2047</a>. MIME encoded-word syntax uses the following form: <code>=?charset?encoding?encoded-text?=</code>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BccAddresses</i> The recipients to place on the BCC: line of the message.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CcAddresses</i> The recipients to place on the CC: line of the message.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ToAddresses</i> The recipients to place on the To: line of the message.<br/>
        :return: MessageId:  The unique message identifier returned from the <code>SendTemplatedEmail</code> action. <br/>        """
        pass

    def set_active_receipt_rule_set(self, RuleSetName: str=None) -> SetActiveReceiptRuleSetResponse:
        r"""Sets the specified receipt rule set as the active receipt rule set. <note> To disable your email-receiving through Amazon SES completely, you can call this API with RuleSetName set to null. </note> For information about managing receipt rule sets, see the <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-managing-receipt-rule-sets.html">Amazon SES Developer Guide</a>. You can execute this operation no more than once per second.

        :param self:
        :param RuleSetName:  The name of the receipt rule set to make active. Setting this value to null disables all email receiving.<br/>
        :return:         """
        pass

    def set_identity_dkim_enabled(self, DkimEnabled: Enabled, Identity: str) -> SetIdentityDkimEnabledResponse:
        r"""Enables or disables Easy DKIM signing of email sent from an identity. If Easy DKIM signing is enabled for a domain, then Amazon SES uses DKIM to sign all email that it sends from addresses on that domain. If Easy DKIM signing is enabled for an email address, then Amazon SES uses DKIM to sign all email it sends from that address. <note> For email addresses (for example, <code>user@example.com</code>), you can only enable DKIM signing if the corresponding domain (in this case, <code>example.com</code>) has been set up to use Easy DKIM. </note> You can enable DKIM signing for an identity at any time after you start the verification process for the identity, even if the verification process isn't complete.  You can execute this operation no more than once per second. For more information about Easy DKIM signing, go to the <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/easy-dkim.html">Amazon SES Developer Guide</a>.

        :param self:
        :param DkimEnabled:  Sets whether DKIM signing is enabled for an identity. Set to <code>true</code> to enable DKIM signing for this identity; <code>false</code> to disable it. <br/>Identity:  The identity for which DKIM signing should be enabled or disabled.<br/>
        :return:         """
        pass

    def set_identity_feedback_forwarding_enabled(self, ForwardingEnabled: Enabled, Identity: str) -> SetIdentityFeedbackForwardingEnabledResponse:
        r"""Given an identity (an email address or a domain), enables or disables whether Amazon SES forwards bounce and complaint notifications as email. Feedback forwarding can only be disabled when Amazon Simple Notification Service (Amazon SNS) topics are specified for both bounces and complaints. <note> Feedback forwarding does not apply to delivery notifications. Delivery notifications are only available through Amazon SNS. </note> You can execute this operation no more than once per second. For more information about using notifications with Amazon SES, see the <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/notifications.html">Amazon SES Developer Guide</a>.

        :param self:
        :param ForwardingEnabled:  Sets whether Amazon SES will forward bounce and complaint notifications as email. <code>true</code> specifies that Amazon SES will forward bounce and complaint notifications as email, in addition to any Amazon SNS topic publishing otherwise specified. <code>false</code> specifies that Amazon SES will publish bounce and complaint notifications only through Amazon SNS. This value can only be set to <code>false</code> when Amazon SNS topics are set for both <code>Bounce</code> and <code>Complaint</code> notification types.<br/>Identity:  The identity for which to set bounce and complaint notification forwarding. Examples: <code>user@example.com</code>, <code>example.com</code>.<br/>
        :return:         """
        pass

    def set_identity_headers_in_notifications_enabled(self, Enabled: Enabled, NotificationType: str, Identity: str) -> SetIdentityHeadersInNotificationsEnabledResponse:
        r"""Given an identity (an email address or a domain), sets whether Amazon SES includes the original email headers in the Amazon Simple Notification Service (Amazon SNS) notifications of a specified type. You can execute this operation no more than once per second. For more information about using notifications with Amazon SES, see the <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/notifications.html">Amazon SES Developer Guide</a>.

        :param self:
        :param Enabled:  Sets whether Amazon SES includes the original email headers in Amazon SNS notifications of the specified notification type. A value of <code>true</code> specifies that Amazon SES will include headers in notifications, and a value of <code>false</code> specifies that Amazon SES will not include headers in notifications. This value can only be set when <code>NotificationType</code> is already set to use a particular Amazon SNS topic.<br/>NotificationType:  The notification type for which to enable or disable headers in notifications. <br/>Identity:  The identity for which to enable or disable headers in notifications. Examples: <code>user@example.com</code>, <code>example.com</code>.<br/>
        :return:         """
        pass

    def set_identity_mail_from_domain(self, Identity: str, MailFromDomain: str=None, BehaviorOnMXFailure: str=None) -> SetIdentityMailFromDomainResponse:
        r"""Enables or disables the custom MAIL FROM domain setup for a verified identity (an email address or a domain). <important> To send emails using the specified MAIL FROM domain, you must add an MX record to your MAIL FROM domain's DNS settings. If you want your emails to pass Sender Policy Framework (SPF) checks, you must also add or update an SPF record. For more information, see the <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/mail-from-set.html">Amazon SES Developer Guide</a>. </important> You can execute this operation no more than once per second.

        :param self:
        :param BehaviorOnMXFailure:  The action that you want Amazon SES to take if it cannot successfully read the required MX record when you send an email. If you choose <code>UseDefaultValue</code>, Amazon SES will use amazonses.com (or a subdomain of that) as the MAIL FROM domain. If you choose <code>RejectMessage</code>, Amazon SES will return a <code>MailFromDomainNotVerified</code> error and not send the email. The action specified in <code>BehaviorOnMXFailure</code> is taken when the custom MAIL FROM domain setup is in the <code>Pending</code>, <code>Failed</code>, and <code>TemporaryFailure</code> states.<br/>MailFromDomain:  The custom MAIL FROM domain that you want the verified identity to use. The MAIL FROM domain must 1) be a subdomain of the verified identity, 2) not be used in a "From" address if the MAIL FROM domain is the destination of email feedback forwarding (for more information, see the <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/mail-from.html">Amazon SES Developer Guide</a>), and 3) not be used to receive emails. A value of <code>null</code> disables the custom MAIL FROM setting for the identity.<br/>Identity:  The verified identity for which you want to enable or disable the specified custom MAIL FROM domain.<br/>
        :return:         """
        pass

    def set_identity_notification_topic(self, NotificationType: str, Identity: str, SnsTopic: str=None) -> SetIdentityNotificationTopicResponse:
        r"""Sets an Amazon Simple Notification Service (Amazon SNS) topic to use when delivering notifications. When you use this operation, you specify a verified identity, such as an email address or domain. When you send an email that uses the chosen identity in the Source field, Amazon SES sends notifications to the topic you specified. You can send bounce, complaint, or delivery notifications (or any combination of the three) to the Amazon SNS topic that you specify. You can execute this operation no more than once per second. For more information about feedback notification, see the <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/notifications.html">Amazon SES Developer Guide</a>.

        :param self:
        :param SnsTopic:  The Amazon Resource Name (ARN) of the Amazon SNS topic. If the parameter is omitted from the request or a null value is passed, <code>SnsTopic</code> is cleared and publishing is disabled.<br/>NotificationType:  The type of notifications that will be published to the specified Amazon SNS topic.<br/>Identity:  The identity (email address or domain) that you want to set the Amazon SNS topic for. <important> You can only specify a verified identity for this parameter. </important> You can specify an identity by using its name or by using its Amazon Resource Name (ARN). The following examples are all valid identities: <code>sender@example.com</code>, <code>example.com</code>, <code>arn:aws:ses:us-east-1:123456789012:identity/example.com</code>.<br/>
        :return:         """
        pass

    def set_receipt_rule_position(self, RuleName: str, RuleSetName: str, After: str=None) -> SetReceiptRulePositionResponse:
        r"""Sets the position of the specified receipt rule in the receipt rule set. For information about managing receipt rules, see the <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-managing-receipt-rules.html">Amazon SES Developer Guide</a>. You can execute this operation no more than once per second.

        :param self:
        :param After:  The name of the receipt rule after which to place the specified receipt rule.<br/>RuleName:  The name of the receipt rule to reposition.<br/>RuleSetName:  The name of the receipt rule set that contains the receipt rule to reposition.<br/>
        :return:         """
        pass

    def test_render_template(self, TemplateData: str, TemplateName: str) -> TestRenderTemplateResponse:
        r"""Creates a preview of the MIME content of an email when provided with a template and a set of replacement data. You can execute this operation no more than once per second.

        :param self:
        :param TemplateData:  A list of replacement values to apply to the template. This parameter is a JSON object, typically consisting of key-value pairs in which the keys correspond to replacement tags in the email template.<br/>TemplateName:  The name of the template that you want to render.<br/>
        :return: RenderedTemplate:  The complete MIME message rendered by applying the data in the TemplateData parameter to the template specified in the TemplateName parameter.<br/>        """
        pass

    def update_account_sending_enabled(self, Enabled: Enabled=None):
        r"""Enables or disables email sending across your entire Amazon SES account in the current AWS Region. You can use this operation in conjunction with Amazon CloudWatch alarms to temporarily pause email sending across your Amazon SES account in a given AWS Region when reputation metrics (such as your bounce or complaint rates) reach certain thresholds. You can execute this operation no more than once per second.

        :param self:
        :param Enabled:  Describes whether email sending is enabled or disabled for your Amazon SES account in the current AWS Region.<br/>
        :return:         """
        pass

    def update_configuration_set_event_destination(self, EventDestination: EventDestination, ConfigurationSetName: str) -> UpdateConfigurationSetEventDestinationResponse:
        r"""Updates the event destination of a configuration set. Event destinations are associated with configuration sets, which enable you to publish email sending events to Amazon CloudWatch, Amazon Kinesis Firehose, or Amazon Simple Notification Service (Amazon SNS). For information about using configuration sets, see <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/monitor-sending-activity.html">Monitoring Your Amazon SES Sending Activity</a> in the <i>Amazon SES Developer Guide.</i>  <note> When you create or update an event destination, you must provide one, and only one, destination. The destination can be Amazon CloudWatch, Amazon Kinesis Firehose, or Amazon Simple Notification Service (Amazon SNS). </note> You can execute this operation no more than once per second.

        :param self:
        :param EventDestination:  The event destination object that you want to apply to the specified configuration set.:<br/>ConfigurationSetName:  The name of the configuration set that contains the event destination that you want to update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SNSDestination</i> An object that contains the topic ARN associated with an Amazon Simple Notification Service (Amazon SNS) event destination.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SNSDestination</b>: An object that contains the topic ARN associated with an Amazon Simple Notification Service (Amazon SNS) event destination.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudWatchDestination</i> An object that contains the names, default values, and sources of the dimensions associated with an Amazon CloudWatch event destination.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CloudWatchDestination</b>: An object that contains the names, default values, and sources of the dimensions associated with an Amazon CloudWatch event destination.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KinesisFirehoseDestination</i> An object that contains the delivery stream ARN and the IAM role ARN associated with an Amazon Kinesis Firehose event destination.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>KinesisFirehoseDestination</b>: An object that contains the delivery stream ARN and the IAM role ARN associated with an Amazon Kinesis Firehose event destination.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MatchingEventTypes</i> The type of email sending events to publish to the event destination.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Sets whether Amazon SES publishes events to this destination when you send an email with the associated configuration set. Set to <code>true</code> to enable publishing to this destination; set to <code>false</code> to prevent publishing to this destination. The default value is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the event destination. The name must: <ul> <li> This value can only contain ASCII letters (a-z, A-Z), numbers (0-9), underscores (_), or dashes (-). </li> <li> Contain less than 64 characters. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DeliveryStreamARN</i> The ARN of the Amazon Kinesis Firehose stream that email sending events should be published to.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IAMRoleARN</i> The ARN of the IAM role under which Amazon SES publishes email sending events to the Amazon Kinesis Firehose stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DimensionConfigurations</i> A list of dimensions upon which to categorize your emails when you publish email sending events to Amazon CloudWatch.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TopicARN</i> The ARN of the Amazon SNS topic that email sending events will be published to. An example of an Amazon SNS topic ARN is <code>arn:aws:sns:us-west-2:123456789012:MyTopic</code>. For more information about Amazon SNS topics, see the <a href="https://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html">Amazon SNS Developer Guide</a>.<br/>
        :return:         """
        pass

    def update_configuration_set_reputation_metrics_enabled(self, Enabled: Enabled, ConfigurationSetName: str):
        r"""Enables or disables the publishing of reputation metrics for emails sent using a specific configuration set in a given AWS Region. Reputation metrics include bounce and complaint rates. These metrics are published to Amazon CloudWatch. By using CloudWatch, you can create alarms when bounce or complaint rates exceed certain thresholds. You can execute this operation no more than once per second.

        :param self:
        :param Enabled:  Describes whether or not Amazon SES will publish reputation metrics for the configuration set, such as bounce and complaint rates, to Amazon CloudWatch.<br/>ConfigurationSetName:  The name of the configuration set that you want to update.<br/>
        :return:         """
        pass

    def update_configuration_set_sending_enabled(self, Enabled: Enabled, ConfigurationSetName: str):
        r"""Enables or disables email sending for messages sent using a specific configuration set in a given AWS Region. You can use this operation in conjunction with Amazon CloudWatch alarms to temporarily pause email sending for a configuration set when the reputation metrics for that configuration set (such as your bounce on complaint rate) exceed certain thresholds. You can execute this operation no more than once per second.

        :param self:
        :param Enabled:  Describes whether email sending is enabled or disabled for the configuration set. <br/>ConfigurationSetName:  The name of the configuration set that you want to update.<br/>
        :return:         """
        pass

    def update_configuration_set_tracking_options(self, TrackingOptions: TrackingOptions, ConfigurationSetName: str) -> UpdateConfigurationSetTrackingOptionsResponse:
        r"""Modifies an association between a configuration set and a custom domain for open and click event tracking.  By default, images and links used for tracking open and click events are hosted on domains operated by Amazon SES. You can configure a subdomain of your own to handle these events. For information about using custom domains, see the <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/configure-custom-open-click-domains.html">Amazon SES Developer Guide</a>.

        :param self:
        :param TrackingOptions:  A domain that is used to redirect email recipients to an Amazon SES-operated domain. This domain captures open and click events generated by Amazon SES emails. For more information, see <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/configure-custom-open-click-domains.html">Configuring Custom Domains to Handle Open and Click Tracking</a> in the <i>Amazon SES Developer Guide</i>.:<br/>ConfigurationSetName:  The name of the configuration set for which you want to update the custom tracking domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomRedirectDomain</i> The custom subdomain that will be used to redirect email recipients to the Amazon SES event tracking domain.<br/>
        :return:         """
        pass

    def update_custom_verification_email_template(self, TemplateName: str, FromEmailAddress: str=None, TemplateSubject: str=None, TemplateContent: str=None, SuccessRedirectionURL: str=None, FailureRedirectionURL: str=None):
        r"""Updates an existing custom verification email template. For more information about custom verification email templates, see <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/custom-verification-emails.html">Using Custom Verification Email Templates</a> in the <i>Amazon SES Developer Guide</i>. You can execute this operation no more than once per second.

        :param self:
        :param FailureRedirectionURL:  The URL that the recipient of the verification email is sent to if his or her address is not successfully verified.<br/>SuccessRedirectionURL:  The URL that the recipient of the verification email is sent to if his or her address is successfully verified.<br/>TemplateContent:  The content of the custom verification email. The total size of the email must be less than 10 MB. The message body may contain HTML, with some limitations. For more information, see <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/custom-verification-emails.html#custom-verification-emails-faq">Custom Verification Email Frequently Asked Questions</a> in the <i>Amazon SES Developer Guide</i>.<br/>TemplateSubject:  The subject line of the custom verification email.<br/>FromEmailAddress:  The email address that the custom verification email is sent from.<br/>TemplateName:  The name of the custom verification email template that you want to update.<br/>
        :return:         """
        pass

    def update_receipt_rule(self, Rule: ReceiptRule, RuleSetName: str) -> UpdateReceiptRuleResponse:
        r"""Updates a receipt rule. For information about managing receipt rules, see the <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-managing-receipt-rules.html">Amazon SES Developer Guide</a>. You can execute this operation no more than once per second.

        :param self:
        :param Rule:  A data structure that contains the updated receipt rule information.:<br/>RuleSetName:  The name of the receipt rule set that the receipt rule belongs to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ScanEnabled</i> If <code>true</code>, then messages that this receipt rule applies to are scanned for spam and viruses. The default value is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Actions</i> An ordered list of actions to perform on messages that match at least one of the recipient email addresses or domains specified in the receipt rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Recipients</i> The recipient domains and email addresses that the receipt rule applies to. If this field is not specified, this rule will match all recipients under all verified domains.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TlsPolicy</i> Specifies whether Amazon SES should require that incoming email is delivered over a connection encrypted with Transport Layer Security (TLS). If this parameter is set to <code>Require</code>, Amazon SES will bounce emails that are not received over TLS. The default is <code>Optional</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> If <code>true</code>, the receipt rule is active. The default value is <code>false</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the receipt rule. The name must: <ul> <li> This value can only contain ASCII letters (a-z, A-Z), numbers (0-9), underscores (_), or dashes (-). </li> <li> Start and end with a letter or number. </li> <li> Contain less than 64 characters. </li> </ul><br/>
        :return:         """
        pass

    def update_template(self, Template: Template) -> UpdateTemplateResponse:
        r"""Updates an email template. Email templates enable you to send personalized email to one or more destinations in a single API operation. For more information, see the <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-personalized-email-api.html">Amazon SES Developer Guide</a>. You can execute this operation no more than once per second.

        :param self:
        :param Template:  The content of the email, composed of a subject line, an HTML part, and a text-only part.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HtmlPart</i> The HTML body of the email.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TextPart</i> The email body that will be visible to recipients whose email clients do not display HTML.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubjectPart</i> The subject line of the email.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TemplateName</i> The name of the template. You will refer to this name when you send email using the <code>SendTemplatedEmail</code> or <code>SendBulkTemplatedEmail</code> operations.<br/>
        :return:         """
        pass

    def verify_domain_dkim(self, Domain: str) -> VerifyDomainDkimResponse:
        r"""Returns a set of DKIM tokens for a domain identity. <important> When you execute the <code>VerifyDomainDkim</code> operation, the domain that you specify is added to the list of identities that are associated with your account. This is true even if you haven't already associated the domain with your account by using the <code>VerifyDomainIdentity</code> operation. However, you can't send email from the domain until you either successfully <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/verify-domains.html">verify it</a> or you successfully <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/easy-dkim.html">set up DKIM for it</a>. </important> You use the tokens that are generated by this operation to create CNAME records. When Amazon SES detects that you've added these records to the DNS configuration for a domain, you can start sending email from that domain. You can start sending email even if you haven't added the TXT record provided by the VerifyDomainIdentity operation to the DNS configuration for your domain. All email that you send from the domain is authenticated using DKIM. To create the CNAME records for DKIM authentication, use the following values: <ul> <li>  <b>Name</b>: <i>token</i>._domainkey.<i>example.com</i>  </li> <li>  <b>Type</b>: CNAME </li> <li>  <b>Value</b>: <i>token</i>.dkim.amazonses.com </li> </ul> In the preceding example, replace <i>token</i> with one of the tokens that are generated when you execute this operation. Replace <i>example.com</i> with your domain. Repeat this process for each token that's generated by this operation. You can execute this operation no more than once per second.

        :param self:
        :param Domain:  The name of the domain to be verified for Easy DKIM signing.<br/>
        :return: DkimTokens:  A set of character strings that represent the domain's identity. If the identity is an email address, the tokens represent the domain of that address. Using these tokens, you need to create DNS CNAME records that point to DKIM public keys that are hosted by Amazon SES. Amazon Web Services eventually detects that you've updated your DNS records. This detection process might take up to 72 hours. After successful detection, Amazon SES is able to DKIM-sign email originating from that domain. (This only applies to domain identities, not email address identities.) For more information about creating DNS records using DKIM tokens, see the <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/easy-dkim.html">Amazon SES Developer Guide</a>.<br/>        """
        pass

    def verify_domain_identity(self, Domain: str) -> VerifyDomainIdentityResponse:
        r"""Adds a domain to the list of identities for your Amazon SES account in the current AWS Region and attempts to verify it. For more information about verifying domains, see <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/verify-addresses-and-domains.html">Verifying Email Addresses and Domains</a> in the <i>Amazon SES Developer Guide.</i>  You can execute this operation no more than once per second.

        :param self:
        :param Domain:  The domain to be verified.<br/>
        :return: VerificationToken:  A TXT record that you must place in the DNS settings of the domain to complete domain verification with Amazon SES. As Amazon SES searches for the TXT record, the domain's verification status is "Pending". When Amazon SES detects the record, the domain's verification status changes to "Success". If Amazon SES is unable to detect the record within 72 hours, the domain's verification status changes to "Failed." In that case, if you still want to verify the domain, you must restart the verification process from the beginning.<br/>        """
        pass

    def verify_email_address(self, EmailAddress: str):
        r"""Deprecated. Use the <code>VerifyEmailIdentity</code> operation to verify a new email address.

        :param self:
        :param EmailAddress:  The email address to be verified.<br/>
        :return:         """
        pass

    def verify_email_identity(self, EmailAddress: str) -> VerifyEmailIdentityResponse:
        r"""Adds an email address to the list of identities for your Amazon SES account in the current AWS region and attempts to verify it. As a result of executing this operation, a verification email is sent to the specified address. You can execute this operation no more than once per second.

        :param self:
        :param EmailAddress:  The email address to be verified.<br/>
        :return:         """
        pass





class SESV2(BaseClient):
    r"""<fullname>Amazon SES API v2</fullname> Welcome to the Amazon SES API v2 Reference. This guide provides information about the Amazon SES API v2, including supported operations, data types, parameters, and schemas.  <a href="https://aws.amazon.com/pinpoint">Amazon SES</a> is an AWS service that you can use to send email messages to your customers. If you're new to Amazon SES API v2, you might find it helpful to also review the <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/">Amazon Simple Email Service Developer Guide</a>. The <i>Amazon SES Developer Guide</i> provides information and code samples that demonstrate how to use Amazon SES API v2 features programmatically. The Amazon SES API v2 is available in several AWS Regions and it provides an endpoint for each of these Regions. For a list of all the Regions and endpoints where the API is currently available, see <a href="https://docs.aws.amazon.com/general/latest/gr/rande.html#ses_region">AWS Service Endpoints</a> in the <i>Amazon Web Services General Reference</i>. To learn more about AWS Regions, see <a href="https://docs.aws.amazon.com/general/latest/gr/rande-manage.html">Managing AWS Regions</a> in the <i>Amazon Web Services General Reference</i>. In each Region, AWS maintains multiple Availability Zones. These Availability Zones are physically isolated from each other, but are united by private, low-latency, high-throughput, and highly redundant network connections. These Availability Zones enable us to provide very high levels of availability and redundancy, while also minimizing latency. To learn more about the number of Availability Zones that are available in each Region, see <a href="http://aws.amazon.com/about-aws/global-infrastructure/">AWS Global Infrastructure</a>."""




    class CreateConfigurationSetRequest(Mapping):
        pass
    
    class CreateConfigurationSetResponse(Mapping):
        pass
    
    class TrackingOptions(Mapping):
        pass
    
    class DeliveryOptions(Mapping):
        pass
    
    class ReputationOptions(Mapping):
        pass
    
    class SendingOptions(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class SuppressionOptions(Mapping):
        pass
    
    class CreateConfigurationSetEventDestinationRequest(Mapping):
        pass
    
    class CreateConfigurationSetEventDestinationResponse(Mapping):
        pass
    
    class EventDestinationDefinition(Mapping):
        pass
    
    class CreateContactRequest(Mapping):
        pass
    
    class CreateContactResponse(Mapping):
        pass
    
    class TopicPreference(Mapping):
        pass
    
    class UnsubscribeAll(object):
        pass
    
    class CreateContactListRequest(Mapping):
        pass
    
    class CreateContactListResponse(Mapping):
        pass
    
    class Topic(Mapping):
        pass
    
    class CreateCustomVerificationEmailTemplateRequest(Mapping):
        pass
    
    class CreateCustomVerificationEmailTemplateResponse(Mapping):
        pass
    
    class CreateDedicatedIpPoolRequest(Mapping):
        pass
    
    class CreateDedicatedIpPoolResponse(Mapping):
        pass
    
    class CreateDeliverabilityTestReportRequest(Mapping):
        pass
    
    class CreateDeliverabilityTestReportResponse(Mapping):
        pass
    
    class EmailContent(Mapping):
        pass
    
    class CreateEmailIdentityRequest(Mapping):
        pass
    
    class CreateEmailIdentityResponse(Mapping):
        pass
    
    class DkimSigningAttributes(Mapping):
        pass
    
    class CreateEmailIdentityPolicyRequest(Mapping):
        pass
    
    class CreateEmailIdentityPolicyResponse(Mapping):
        pass
    
    class CreateEmailTemplateRequest(Mapping):
        pass
    
    class CreateEmailTemplateResponse(Mapping):
        pass
    
    class EmailTemplateContent(Mapping):
        pass
    
    class CreateImportJobRequest(Mapping):
        pass
    
    class CreateImportJobResponse(Mapping):
        pass
    
    class ImportDestination(Mapping):
        pass
    
    class ImportDataSource(Mapping):
        pass
    
    class DeleteConfigurationSetRequest(Mapping):
        pass
    
    class DeleteConfigurationSetResponse(Mapping):
        pass
    
    class DeleteConfigurationSetEventDestinationRequest(Mapping):
        pass
    
    class DeleteConfigurationSetEventDestinationResponse(Mapping):
        pass
    
    class DeleteContactRequest(Mapping):
        pass
    
    class DeleteContactResponse(Mapping):
        pass
    
    class DeleteContactListRequest(Mapping):
        pass
    
    class DeleteContactListResponse(Mapping):
        pass
    
    class DeleteCustomVerificationEmailTemplateRequest(Mapping):
        pass
    
    class DeleteCustomVerificationEmailTemplateResponse(Mapping):
        pass
    
    class DeleteDedicatedIpPoolRequest(Mapping):
        pass
    
    class DeleteDedicatedIpPoolResponse(Mapping):
        pass
    
    class DeleteEmailIdentityRequest(Mapping):
        pass
    
    class DeleteEmailIdentityResponse(Mapping):
        pass
    
    class DeleteEmailIdentityPolicyRequest(Mapping):
        pass
    
    class DeleteEmailIdentityPolicyResponse(Mapping):
        pass
    
    class DeleteEmailTemplateRequest(Mapping):
        pass
    
    class DeleteEmailTemplateResponse(Mapping):
        pass
    
    class DeleteSuppressedDestinationRequest(Mapping):
        pass
    
    class DeleteSuppressedDestinationResponse(Mapping):
        pass
    
    class GetAccountRequest(Mapping):
        pass
    
    class GetAccountResponse(Mapping):
        pass
    
    class GetBlacklistReportsRequest(Mapping):
        pass
    
    class GetBlacklistReportsResponse(Mapping):
        pass
    
    class BlacklistItemName(object):
        pass
    
    class GetConfigurationSetRequest(Mapping):
        pass
    
    class GetConfigurationSetResponse(Mapping):
        pass
    
    class GetConfigurationSetEventDestinationsRequest(Mapping):
        pass
    
    class GetConfigurationSetEventDestinationsResponse(Mapping):
        pass
    
    class GetContactRequest(Mapping):
        pass
    
    class GetContactResponse(Mapping):
        pass
    
    class GetContactListRequest(Mapping):
        pass
    
    class GetContactListResponse(Mapping):
        pass
    
    class GetCustomVerificationEmailTemplateRequest(Mapping):
        pass
    
    class GetCustomVerificationEmailTemplateResponse(Mapping):
        pass
    
    class GetDedicatedIpRequest(Mapping):
        pass
    
    class GetDedicatedIpResponse(Mapping):
        pass
    
    class GetDedicatedIpsRequest(Mapping):
        pass
    
    class GetDedicatedIpsResponse(Mapping):
        pass
    
    class GetDeliverabilityDashboardOptionsRequest(Mapping):
        pass
    
    class GetDeliverabilityDashboardOptionsResponse(Mapping):
        pass
    
    class GetDeliverabilityTestReportRequest(Mapping):
        pass
    
    class GetDeliverabilityTestReportResponse(Mapping):
        pass
    
    class GetDomainDeliverabilityCampaignRequest(Mapping):
        pass
    
    class GetDomainDeliverabilityCampaignResponse(Mapping):
        pass
    
    class GetDomainStatisticsReportRequest(Mapping):
        pass
    
    class GetDomainStatisticsReportResponse(Mapping):
        pass
    
    class Timestamp(object):
        pass
    
    class GetEmailIdentityRequest(Mapping):
        pass
    
    class GetEmailIdentityResponse(Mapping):
        pass
    
    class GetEmailIdentityPoliciesRequest(Mapping):
        pass
    
    class GetEmailIdentityPoliciesResponse(Mapping):
        pass
    
    class GetEmailTemplateRequest(Mapping):
        pass
    
    class GetEmailTemplateResponse(Mapping):
        pass
    
    class GetImportJobRequest(Mapping):
        pass
    
    class GetImportJobResponse(Mapping):
        pass
    
    class GetSuppressedDestinationRequest(Mapping):
        pass
    
    class GetSuppressedDestinationResponse(Mapping):
        pass
    
    class ListConfigurationSetsRequest(Mapping):
        pass
    
    class ListConfigurationSetsResponse(Mapping):
        pass
    
    class ListContactListsRequest(Mapping):
        pass
    
    class ListContactListsResponse(Mapping):
        pass
    
    class ListContactsRequest(Mapping):
        pass
    
    class ListContactsResponse(Mapping):
        pass
    
    class ListContactsFilter(Mapping):
        pass
    
    class ListCustomVerificationEmailTemplatesRequest(Mapping):
        pass
    
    class ListCustomVerificationEmailTemplatesResponse(Mapping):
        pass
    
    class ListDedicatedIpPoolsRequest(Mapping):
        pass
    
    class ListDedicatedIpPoolsResponse(Mapping):
        pass
    
    class ListDeliverabilityTestReportsRequest(Mapping):
        pass
    
    class ListDeliverabilityTestReportsResponse(Mapping):
        pass
    
    class ListDomainDeliverabilityCampaignsRequest(Mapping):
        pass
    
    class ListDomainDeliverabilityCampaignsResponse(Mapping):
        pass
    
    class ListEmailIdentitiesRequest(Mapping):
        pass
    
    class ListEmailIdentitiesResponse(Mapping):
        pass
    
    class ListEmailTemplatesRequest(Mapping):
        pass
    
    class ListEmailTemplatesResponse(Mapping):
        pass
    
    class ListImportJobsRequest(Mapping):
        pass
    
    class ListImportJobsResponse(Mapping):
        pass
    
    class ListSuppressedDestinationsRequest(Mapping):
        pass
    
    class ListSuppressedDestinationsResponse(Mapping):
        pass
    
    class SuppressionListReason(object):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class PutAccountDedicatedIpWarmupAttributesRequest(Mapping):
        pass
    
    class PutAccountDedicatedIpWarmupAttributesResponse(Mapping):
        pass
    
    class Enabled(object):
        pass
    
    class PutAccountDetailsRequest(Mapping):
        pass
    
    class PutAccountDetailsResponse(Mapping):
        pass
    
    class AdditionalContactEmailAddress(object):
        pass
    
    class EnabledWrapper(object):
        pass
    
    class PutAccountSendingAttributesRequest(Mapping):
        pass
    
    class PutAccountSendingAttributesResponse(Mapping):
        pass
    
    class PutAccountSuppressionAttributesRequest(Mapping):
        pass
    
    class PutAccountSuppressionAttributesResponse(Mapping):
        pass
    
    class PutConfigurationSetDeliveryOptionsRequest(Mapping):
        pass
    
    class PutConfigurationSetDeliveryOptionsResponse(Mapping):
        pass
    
    class PutConfigurationSetReputationOptionsRequest(Mapping):
        pass
    
    class PutConfigurationSetReputationOptionsResponse(Mapping):
        pass
    
    class PutConfigurationSetSendingOptionsRequest(Mapping):
        pass
    
    class PutConfigurationSetSendingOptionsResponse(Mapping):
        pass
    
    class PutConfigurationSetSuppressionOptionsRequest(Mapping):
        pass
    
    class PutConfigurationSetSuppressionOptionsResponse(Mapping):
        pass
    
    class PutConfigurationSetTrackingOptionsRequest(Mapping):
        pass
    
    class PutConfigurationSetTrackingOptionsResponse(Mapping):
        pass
    
    class PutDedicatedIpInPoolRequest(Mapping):
        pass
    
    class PutDedicatedIpInPoolResponse(Mapping):
        pass
    
    class PutDedicatedIpWarmupAttributesRequest(Mapping):
        pass
    
    class PutDedicatedIpWarmupAttributesResponse(Mapping):
        pass
    
    class PutDeliverabilityDashboardOptionRequest(Mapping):
        pass
    
    class PutDeliverabilityDashboardOptionResponse(Mapping):
        pass
    
    class DomainDeliverabilityTrackingOption(Mapping):
        pass
    
    class PutEmailIdentityConfigurationSetAttributesRequest(Mapping):
        pass
    
    class PutEmailIdentityConfigurationSetAttributesResponse(Mapping):
        pass
    
    class PutEmailIdentityDkimAttributesRequest(Mapping):
        pass
    
    class PutEmailIdentityDkimAttributesResponse(Mapping):
        pass
    
    class PutEmailIdentityDkimSigningAttributesRequest(Mapping):
        pass
    
    class PutEmailIdentityDkimSigningAttributesResponse(Mapping):
        pass
    
    class PutEmailIdentityFeedbackAttributesRequest(Mapping):
        pass
    
    class PutEmailIdentityFeedbackAttributesResponse(Mapping):
        pass
    
    class PutEmailIdentityMailFromAttributesRequest(Mapping):
        pass
    
    class PutEmailIdentityMailFromAttributesResponse(Mapping):
        pass
    
    class PutSuppressedDestinationRequest(Mapping):
        pass
    
    class PutSuppressedDestinationResponse(Mapping):
        pass
    
    class SendBulkEmailRequest(Mapping):
        pass
    
    class SendBulkEmailResponse(Mapping):
        pass
    
    class EmailAddress(object):
        pass
    
    class MessageTag(Mapping):
        pass
    
    class BulkEmailContent(Mapping):
        pass
    
    class BulkEmailEntry(Mapping):
        pass
    
    class SendCustomVerificationEmailRequest(Mapping):
        pass
    
    class SendCustomVerificationEmailResponse(Mapping):
        pass
    
    class SendEmailRequest(Mapping):
        pass
    
    class SendEmailResponse(Mapping):
        pass
    
    class Destination(Mapping):
        pass
    
    class ListManagementOptions(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class TestRenderEmailTemplateRequest(Mapping):
        pass
    
    class TestRenderEmailTemplateResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateConfigurationSetEventDestinationRequest(Mapping):
        pass
    
    class UpdateConfigurationSetEventDestinationResponse(Mapping):
        pass
    
    class UpdateContactRequest(Mapping):
        pass
    
    class UpdateContactResponse(Mapping):
        pass
    
    class UpdateContactListRequest(Mapping):
        pass
    
    class UpdateContactListResponse(Mapping):
        pass
    
    class UpdateCustomVerificationEmailTemplateRequest(Mapping):
        pass
    
    class UpdateCustomVerificationEmailTemplateResponse(Mapping):
        pass
    
    class UpdateEmailIdentityPolicyRequest(Mapping):
        pass
    
    class UpdateEmailIdentityPolicyResponse(Mapping):
        pass
    
    class UpdateEmailTemplateRequest(Mapping):
        pass
    
    class UpdateEmailTemplateResponse(Mapping):
        pass
    
    def create_configuration_set(self, ConfigurationSetName: str, TrackingOptions: TrackingOptions=None, DeliveryOptions: DeliveryOptions=None, ReputationOptions: ReputationOptions=None, SendingOptions: SendingOptions=None, Tags: List[Tag]=None, SuppressionOptions: SuppressionOptions=None) -> CreateConfigurationSetResponse:
        r"""Create a configuration set. <i>Configuration sets</i> are groups of rules that you can apply to the emails that you send. You apply a configuration set to an email by specifying the name of the configuration set when you call the Amazon SES API v2. When you apply a configuration set to an email, all of the rules in that configuration set are applied to the email. 

        :param self:
        :param SuppressionOptions:  An object that contains information about the suppression list preferences for your account.:<br/>Tags:  An array of objects that define the tags (keys and values) that you want to associate with the configuration set.<br/>SendingOptions:  An object that defines whether or not Amazon SES can send email that you send using the configuration set.:<br/>ReputationOptions:  An object that defines whether or not Amazon SES collects reputation metrics for the emails that you send that use the configuration set.:<br/>DeliveryOptions:  An object that defines the dedicated IP pool that is used to send emails that you send using the configuration set.:<br/>TrackingOptions:  An object that defines the open and click tracking options for emails that you send using the configuration set.:<br/>ConfigurationSetName:  The name of the configuration set.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomRedirectDomain</i> The domain that you want to use for tracking open and click events.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SendingPoolName</i> The name of the dedicated IP pool that you want to associate with the configuration set.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TlsPolicy</i> Specifies whether messages that use the configuration set are required to use Transport Layer Security (TLS). If the value is <code>Require</code>, messages are only delivered if a TLS connection can be established. If the value is <code>Optional</code>, messages can be delivered in plain text if a TLS connection can't be established.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastFreshStart</i> The date and time (in Unix time) when the reputation metrics were last given a fresh start. When your account is given a fresh start, your reputation metrics are calculated starting from the date of the fresh start.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReputationMetricsEnabled</i> If <code>true</code>, tracking of reputation metrics is enabled for the configuration set. If <code>false</code>, tracking of reputation metrics is disabled for the configuration set.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SendingEnabled</i> If <code>true</code>, email sending is enabled for the configuration set. If <code>false</code>, email sending is disabled for the configuration set.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SuppressedReasons</i> A list that contains the reasons that email addresses are automatically added to the suppression list for your account. This list can contain any or all of the following: <ul> <li>  <code>COMPLAINT</code> – Amazon SES adds an email address to the suppression list for your account when a message sent to that address results in a complaint. </li> <li>  <code>BOUNCE</code> – Amazon SES adds an email address to the suppression list for your account when a message sent to that address results in a hard bounce. </li> </ul><br/>
        :return:         """
        pass

    def create_configuration_set_event_destination(self, EventDestination: EventDestinationDefinition, EventDestinationName: str, ConfigurationSetName: str) -> CreateConfigurationSetEventDestinationResponse:
        r"""Create an event destination. <i>Events</i> include message sends, deliveries, opens, clicks, bounces, and complaints. <i>Event destinations</i> are places that you can send information about these events to. For example, you can send event data to Amazon SNS to receive notifications when you receive bounces or complaints, or you can use Amazon Kinesis Data Firehose to stream data to Amazon S3 for long-term storage. A single configuration set can include more than one event destination.

        :param self:
        :param EventDestination:  An object that defines the event destination.:<br/>EventDestinationName:  A name that identifies the event destination within the configuration set.<br/>ConfigurationSetName:  The name of the configuration set that you want to add an event destination to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PinpointDestination</i> An object that defines an Amazon Pinpoint project destination for email events. You can send email event data to a Amazon Pinpoint project to view metrics using the Transactional Messaging dashboards that are built in to Amazon Pinpoint. For more information, see <a href="https://docs.aws.amazon.com/pinpoint/latest/userguide/analytics-transactional-messages.html">Transactional Messaging Charts</a> in the <i>Amazon Pinpoint User Guide</i>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PinpointDestination</b>: An object that defines an Amazon Pinpoint project destination for email events. You can send email event data to a Amazon Pinpoint project to view metrics using the Transactional Messaging dashboards that are built in to Amazon Pinpoint. For more information, see <a href="https://docs.aws.amazon.com/pinpoint/latest/userguide/analytics-transactional-messages.html">Transactional Messaging Charts</a> in the <i>Amazon Pinpoint User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnsDestination</i> An object that defines an Amazon SNS destination for email events. You can use Amazon SNS to send notification when certain email events occur.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SnsDestination</b>: An object that defines an Amazon SNS destination for email events. You can use Amazon SNS to send notification when certain email events occur.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudWatchDestination</i> An object that defines an Amazon CloudWatch destination for email events. You can use Amazon CloudWatch to monitor and gain insights on your email sending metrics.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CloudWatchDestination</b>: An object that defines an Amazon CloudWatch destination for email events. You can use Amazon CloudWatch to monitor and gain insights on your email sending metrics.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KinesisFirehoseDestination</i> An object that defines an Amazon Kinesis Data Firehose destination for email events. You can use Amazon Kinesis Data Firehose to stream data to other services, such as Amazon S3 and Amazon Redshift.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>KinesisFirehoseDestination</b>: An object that defines an Amazon Kinesis Data Firehose destination for email events. You can use Amazon Kinesis Data Firehose to stream data to other services, such as Amazon S3 and Amazon Redshift.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MatchingEventTypes</i> An array that specifies which events the Amazon SES API v2 should send to the destinations in this <code>EventDestinationDefinition</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> If <code>true</code>, the event destination is enabled. When the event destination is enabled, the specified event types are sent to the destinations in this <code>EventDestinationDefinition</code>. If <code>false</code>, the event destination is disabled. When the event destination is disabled, events aren't sent to the specified destinations.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DeliveryStreamArn</i> The Amazon Resource Name (ARN) of the Amazon Kinesis Data Firehose stream that the Amazon SES API v2 sends email events to.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IamRoleArn</i> The Amazon Resource Name (ARN) of the IAM role that the Amazon SES API v2 uses to send email events to the Amazon Kinesis Data Firehose stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DimensionConfigurations</i> An array of objects that define the dimensions to use when you send email events to Amazon CloudWatch.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TopicArn</i> The Amazon Resource Name (ARN) of the Amazon SNS topic that you want to publish email events to. For more information about Amazon SNS topics, see the <a href="https://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html">Amazon SNS Developer Guide</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationArn</i> The Amazon Resource Name (ARN) of the Amazon Pinpoint project that you want to send email events to.<br/>
        :return:         """
        pass

    def create_contact(self, EmailAddress: str, ContactListName: str, TopicPreferences: List[TopicPreference]=None, UnsubscribeAll: UnsubscribeAll=None, AttributesData: str=None) -> CreateContactResponse:
        r"""Creates a contact, which is an end-user who is receiving the email, and adds them to a contact list.

        :param self:
        :param AttributesData:  The attribute data attached to a contact.<br/>UnsubscribeAll:  A boolean value status noting if the contact is unsubscribed from all contact list topics.<br/>TopicPreferences:  The contact's preferences for being opted-in to or opted-out of topics.<br/>EmailAddress:  The contact's email address.<br/>ContactListName:  The name of the contact list to which the contact should be added.<br/>
        :return:         """
        pass

    def create_contact_list(self, ContactListName: str, Topics: List[Topic]=None, Description: str=None, Tags: List[Tag]=None) -> CreateContactListResponse:
        r"""Creates a contact list.

        :param self:
        :param Tags:  The tags associated with a contact list.<br/>Description:  A description of what the contact list is about.<br/>Topics:  An interest group, theme, or label within a list. A contact list can have multiple topics.<br/>ContactListName:  The name of the contact list.<br/>
        :return:         """
        pass

    def create_custom_verification_email_template(self, FailureRedirectionURL: str, SuccessRedirectionURL: str, TemplateContent: str, TemplateSubject: str, FromEmailAddress: str, TemplateName: str) -> CreateCustomVerificationEmailTemplateResponse:
        r"""Creates a new custom verification email template. For more information about custom verification email templates, see <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-email-verify-address-custom.html">Using Custom Verification Email Templates</a> in the <i>Amazon SES Developer Guide</i>. You can execute this operation no more than once per second.

        :param self:
        :param FailureRedirectionURL:  The URL that the recipient of the verification email is sent to if his or her address is not successfully verified.<br/>SuccessRedirectionURL:  The URL that the recipient of the verification email is sent to if his or her address is successfully verified.<br/>TemplateContent:  The content of the custom verification email. The total size of the email must be less than 10 MB. The message body may contain HTML, with some limitations. For more information, see <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-email-verify-address-custom.html#custom-verification-emails-faq">Custom Verification Email Frequently Asked Questions</a> in the <i>Amazon SES Developer Guide</i>.<br/>TemplateSubject:  The subject line of the custom verification email.<br/>FromEmailAddress:  The email address that the custom verification email is sent from.<br/>TemplateName:  The name of the custom verification email template.<br/>
        :return:         """
        pass

    def create_dedicated_ip_pool(self, PoolName: str, Tags: List[Tag]=None) -> CreateDedicatedIpPoolResponse:
        r"""Create a new pool of dedicated IP addresses. A pool can include one or more dedicated IP addresses that are associated with your AWS account. You can associate a pool with a configuration set. When you send an email that uses that configuration set, the message is sent from one of the addresses in the associated pool.

        :param self:
        :param Tags:  An object that defines the tags (keys and values) that you want to associate with the pool.<br/>PoolName:  The name of the dedicated IP pool.<br/>
        :return:         """
        pass

    def create_deliverability_test_report(self, Content: EmailContent, FromEmailAddress: str, ReportName: str=None, Tags: List[Tag]=None) -> CreateDeliverabilityTestReportResponse:
        r"""Create a new predictive inbox placement test. Predictive inbox placement tests can help you predict how your messages will be handled by various email providers around the world. When you perform a predictive inbox placement test, you provide a sample message that contains the content that you plan to send to your customers. Amazon SES then sends that message to special email addresses spread across several major email providers. After about 24 hours, the test is complete, and you can use the <code>GetDeliverabilityTestReport</code> operation to view the results of the test.

        :param self:
        :param Tags:  An array of objects that define the tags (keys and values) that you want to associate with the predictive inbox placement test.<br/>Content:  The HTML body of the message that you sent when you performed the predictive inbox placement test.:<br/>FromEmailAddress:  The email address that the predictive inbox placement test email was sent from.<br/>ReportName:  A unique name that helps you to identify the predictive inbox placement test when you retrieve the results.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Template</i> The template to use for the email message.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Template</b>: The template to use for the email message.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Raw</i> The raw email message. The message has to meet the following criteria: <ul> <li> The message has to contain a header and a body, separated by one blank line. </li> <li> All of the required header fields must be present in the message. </li> <li> Each part of a multipart MIME message must be formatted properly. </li> <li> If you include attachments, they must be in a file format that the Amazon SES API v2 supports.  </li> <li> The entire message must be Base64 encoded. </li> <li> If any of the MIME parts in your message contain content that is outside of the 7-bit ASCII character range, you should encode that content to ensure that recipients' email clients render the message properly. </li> <li> The length of any single line of text in the message can't exceed 1,000 characters. This restriction is defined in <a href="https://tools.ietf.org/html/rfc5321">RFC 5321</a>. </li> </ul>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Raw</b>: The raw email message. The message has to meet the following criteria: <ul> <li> The message has to contain a header and a body, separated by one blank line. </li> <li> All of the required header fields must be present in the message. </li> <li> Each part of a multipart MIME message must be formatted properly. </li> <li> If you include attachments, they must be in a file format that the Amazon SES API v2 supports.  </li> <li> The entire message must be Base64 encoded. </li> <li> If any of the MIME parts in your message contain content that is outside of the 7-bit ASCII character range, you should encode that content to ensure that recipients' email clients render the message properly. </li> <li> The length of any single line of text in the message can't exceed 1,000 characters. This restriction is defined in <a href="https://tools.ietf.org/html/rfc5321">RFC 5321</a>. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Simple</i> The simple email message. The message consists of a subject and a message body.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Simple</b>: The simple email message. The message consists of a subject and a message body.<br/>The subject line of the email. The subject line can only contain 7-bit ASCII characters. However, you can specify non-ASCII characters in the subject line by using encoded-word syntax, as described in <a href="https://tools.ietf.org/html/rfc2047">RFC 2047</a>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Subject</b>: The subject line of the email. The subject line can only contain 7-bit ASCII characters. However, you can specify non-ASCII characters in the subject line by using encoded-word syntax, as described in <a href="https://tools.ietf.org/html/rfc2047">RFC 2047</a>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Data</i> The raw email message. The message has to meet the following criteria: <ul> <li> The message has to contain a header and a body, separated by one blank line. </li> <li> All of the required header fields must be present in the message. </li> <li> Each part of a multipart MIME message must be formatted properly. </li> <li> Attachments must be in a file format that the Amazon SES supports. </li> <li> The entire message must be Base64 encoded. </li> <li> If any of the MIME parts in your message contain content that is outside of the 7-bit ASCII character range, you should encode that content to ensure that recipients' email clients render the message properly. </li> <li> The length of any single line of text in the message can't exceed 1,000 characters. This restriction is defined in <a href="https://tools.ietf.org/html/rfc5321">RFC 5321</a>. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TemplateData</i> An object that defines the values to use for message variables in the template. This object is a set of key-value pairs. Each key defines a message variable in the template. The corresponding value defines the value to use for that variable.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TemplateArn</i> The Amazon Resource Name (ARN) of the template.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TemplateName</i> The name of the template. You will refer to this name when you send email using the <code>SendTemplatedEmail</code> or <code>SendBulkTemplatedEmail</code> operations. <br/>
        :return: DeliverabilityTestStatus:  The status of the predictive inbox placement test. If the status is <code>IN_PROGRESS</code>, then the predictive inbox placement test is currently running. Predictive inbox placement tests are usually complete within 24 hours of creating the test. If the status is <code>COMPLETE</code>, then the test is finished, and you can use the <code>GetDeliverabilityTestReport</code> to view the results of the test.<br/>ReportId:  A unique string that identifies the predictive inbox placement test.<br/>        """
        pass

    def create_email_identity(self, EmailIdentity: str, Tags: List[Tag]=None, DkimSigningAttributes: DkimSigningAttributes=None, ConfigurationSetName: str=None) -> CreateEmailIdentityResponse:
        r"""Starts the process of verifying an email identity. An <i>identity</i> is an email address or domain that you use when you send email. Before you can use an identity to send email, you first have to verify it. By verifying an identity, you demonstrate that you're the owner of the identity, and that you've given Amazon SES API v2 permission to send email from the identity. When you verify an email address, Amazon SES sends an email to the address. Your email address is verified as soon as you follow the link in the verification email.  When you verify a domain without specifying the <code>DkimSigningAttributes</code> object, this operation provides a set of DKIM tokens. You can convert these tokens into CNAME records, which you then add to the DNS configuration for your domain. Your domain is verified when Amazon SES detects these records in the DNS configuration for your domain. This verification method is known as <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/easy-dkim.html">Easy DKIM</a>. Alternatively, you can perform the verification process by providing your own public-private key pair. This verification method is known as Bring Your Own DKIM (BYODKIM). To use BYODKIM, your call to the <code>CreateEmailIdentity</code> operation has to include the <code>DkimSigningAttributes</code> object. When you specify this object, you provide a selector (a component of the DNS record name that identifies the public key that you want to use for DKIM authentication) and a private key. When you verify a domain, this operation provides a set of DKIM tokens, which you can convert into CNAME tokens. You add these CNAME tokens to the DNS configuration for your domain. Your domain is verified when Amazon SES detects these records in the DNS configuration for your domain. For some DNS providers, it can take 72 hours or more to complete the domain verification process. Additionally, you can associate an existing configuration set with the email identity that you're verifying.

        :param self:
        :param ConfigurationSetName:  The configuration set to use by default when sending from this identity. Note that any configuration set defined in the email sending request takes precedence. <br/>DkimSigningAttributes:  If your request includes this object, Amazon SES configures the identity to use Bring Your Own DKIM (BYODKIM) for DKIM authentication purposes, as opposed to the default method, <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/easy-dkim.html">Easy DKIM</a>. You can only specify this object if the email identity is a domain, as opposed to an address.:<br/>Tags:  An array of objects that define the tags (keys and values) that you want to associate with the email identity.<br/>EmailIdentity:  The email address or domain that you want to verify.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainSigningPrivateKey</i> A private key that's used to generate a DKIM signature. The private key must use 1024-bit RSA encryption, and must be encoded using base64 encoding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainSigningSelector</i> A string that's used to identify a public key in the DNS configuration for a domain.<br/>
        :return: DkimAttributes:  An object that contains information about the DKIM attributes for the identity.:<br/>VerifiedForSendingStatus:  Specifies whether or not the identity is verified. You can only send email from verified email addresses or domains. For more information about verifying identities, see the <a href="https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-email-manage-verify.html">Amazon Pinpoint User Guide</a>.<br/>IdentityType:  The email identity type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SigningAttributesOrigin</i> A string that indicates how DKIM was configured for the identity. There are two possible values: <ul> <li>  <code>AWS_SES</code> – Indicates that DKIM was configured for the identity by using <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/easy-dkim.html">Easy DKIM</a>. </li> <li>  <code>EXTERNAL</code> – Indicates that DKIM was configured for the identity by using Bring Your Own DKIM (BYODKIM). </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tokens</i> If you used <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/easy-dkim.html">Easy DKIM</a> to configure DKIM authentication for the domain, then this object contains a set of unique strings that you use to create a set of CNAME records that you add to the DNS configuration for your domain. When Amazon SES detects these records in the DNS configuration for your domain, the DKIM authentication process is complete. If you configured DKIM authentication for the domain by providing your own public-private key pair, then this object contains the selector for the public key. Regardless of the DKIM authentication method you use, Amazon SES searches for the appropriate records in the DNS configuration of the domain for up to 72 hours.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Describes whether or not Amazon SES has successfully located the DKIM records in the DNS records for the domain. The status can be one of the following: <ul> <li>  <code>PENDING</code> – The verification process was initiated, but Amazon SES hasn't yet detected the DKIM records in the DNS configuration for the domain. </li> <li>  <code>SUCCESS</code> – The verification process completed successfully. </li> <li>  <code>FAILED</code> – The verification process failed. This typically occurs when Amazon SES fails to find the DKIM records in the DNS configuration of the domain. </li> <li>  <code>TEMPORARY_FAILURE</code> – A temporary issue is preventing Amazon SES from determining the DKIM authentication status of the domain. </li> <li>  <code>NOT_STARTED</code> – The DKIM verification process hasn't been initiated for the domain. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SigningEnabled</i> If the value is <code>true</code>, then the messages that you send from the identity are signed using DKIM. If the value is <code>false</code>, then the messages that you send from the identity aren't DKIM-signed.<br/>        """
        pass

    def create_email_identity_policy(self, Policy: str, PolicyName: str, EmailIdentity: str) -> CreateEmailIdentityPolicyResponse:
        r"""Creates the specified sending authorization policy for the given identity (an email address or a domain). <note> This API is for the identity owner only. If you have not verified the identity, this API will return an error. </note> Sending authorization is a feature that enables an identity owner to authorize other senders to use its identities. For information about using sending authorization, see the <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization.html">Amazon SES Developer Guide</a>. You can execute this operation no more than once per second.

        :param self:
        :param Policy:  The text of the policy in JSON format. The policy cannot exceed 4 KB. For information about the syntax of sending authorization policies, see the <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization-policies.html">Amazon SES Developer Guide</a>.<br/>PolicyName:  The name of the policy. The policy name cannot exceed 64 characters and can only include alphanumeric characters, dashes, and underscores.<br/>EmailIdentity:  The email identity for which you want to create a policy.<br/>
        :return:         """
        pass

    def create_email_template(self, TemplateContent: EmailTemplateContent, TemplateName: str) -> CreateEmailTemplateResponse:
        r"""Creates an email template. Email templates enable you to send personalized email to one or more destinations in a single API operation. For more information, see the <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-personalized-email-api.html">Amazon SES Developer Guide</a>. You can execute this operation no more than once per second.

        :param self:
        :param TemplateContent:  The content of the email template, composed of a subject line, an HTML part, and a text-only part.:<br/>TemplateName:  The name of the template you want to create.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Html</i> The HTML body of the email.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Text</i> The email body that will be visible to recipients whose email clients do not display HTML.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Subject</i> The subject line of the email.<br/>
        :return:         """
        pass

    def create_import_job(self, ImportDataSource: ImportDataSource, ImportDestination: ImportDestination) -> CreateImportJobResponse:
        r"""Creates an import job for a data destination.

        :param self:
        :param ImportDataSource:  The data source for the import job.:<br/>ImportDestination:  The destination for the import job.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ContactListDestination</i> An object that contains the action of the import job towards a contact list.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ContactListDestination</b>: An object that contains the action of the import job towards a contact list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SuppressionListDestination</i> An object that contains the action of the import job towards suppression list.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SuppressionListDestination</b>: An object that contains the action of the import job towards suppression list.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SuppressionListImportAction</i> The type of action that you want to perform on the address. Acceptable values: <ul> <li> PUT: add the addresses to the suppression list. If the record already exists, it will override it with the new value. </li> <li> DELETE: remove the addresses from the suppression list. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ContactListImportAction</i> &gt;The type of action that you want to perform on the addresses. Acceptable values: <ul> <li> PUT: add the addresses to the contact list. If the record already exists, it will override it with the new value. </li> <li> DELETE: remove the addresses from the contact list. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ContactListName</i> The name of the contact list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataFormat</i> The data format of the import job's data source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Url</i> An Amazon S3 URL in the format s3://<i>&lt;bucket_name&gt;</i>/<i>&lt;object&gt;</i>.<br/>
        :return: JobId:  A string that represents the import job ID.<br/>        """
        pass

    def delete_configuration_set(self, ConfigurationSetName: str) -> DeleteConfigurationSetResponse:
        r"""Delete an existing configuration set.  <i>Configuration sets</i> are groups of rules that you can apply to the emails you send. You apply a configuration set to an email by including a reference to the configuration set in the headers of the email. When you apply a configuration set to an email, all of the rules in that configuration set are applied to the email.

        :param self:
        :param ConfigurationSetName:  The name of the configuration set that you want to delete.<br/>
        :return:         """
        pass

    def delete_configuration_set_event_destination(self, EventDestinationName: str, ConfigurationSetName: str) -> DeleteConfigurationSetEventDestinationResponse:
        r"""Delete an event destination.  <i>Events</i> include message sends, deliveries, opens, clicks, bounces, and complaints. <i>Event destinations</i> are places that you can send information about these events to. For example, you can send event data to Amazon SNS to receive notifications when you receive bounces or complaints, or you can use Amazon Kinesis Data Firehose to stream data to Amazon S3 for long-term storage.

        :param self:
        :param EventDestinationName:  The name of the event destination that you want to delete.<br/>ConfigurationSetName:  The name of the configuration set that contains the event destination that you want to delete.<br/>
        :return:         """
        pass

    def delete_contact(self, EmailAddress: str, ContactListName: str) -> DeleteContactResponse:
        r"""Removes a contact from a contact list.

        :param self:
        :param EmailAddress:  The contact's email address.<br/>ContactListName:  The name of the contact list from which the contact should be removed.<br/>
        :return:         """
        pass

    def delete_contact_list(self, ContactListName: str) -> DeleteContactListResponse:
        r"""Deletes a contact list and all of the contacts on that list.

        :param self:
        :param ContactListName:  The name of the contact list.<br/>
        :return:         """
        pass

    def delete_custom_verification_email_template(self, TemplateName: str) -> DeleteCustomVerificationEmailTemplateResponse:
        r"""Deletes an existing custom verification email template. For more information about custom verification email templates, see <a href="https://docs.aws.amazon.com/es/latest/DeveloperGuide/send-email-verify-address-custom.html">Using Custom Verification Email Templates</a> in the <i>Amazon SES Developer Guide</i>. You can execute this operation no more than once per second.

        :param self:
        :param TemplateName:  The name of the custom verification email template that you want to delete.<br/>
        :return:         """
        pass

    def delete_dedicated_ip_pool(self, PoolName: str) -> DeleteDedicatedIpPoolResponse:
        r"""Delete a dedicated IP pool.

        :param self:
        :param PoolName:  The name of the dedicated IP pool that you want to delete.<br/>
        :return:         """
        pass

    def delete_email_identity(self, EmailIdentity: str) -> DeleteEmailIdentityResponse:
        r"""Deletes an email identity. An identity can be either an email address or a domain name.

        :param self:
        :param EmailIdentity:  The identity (that is, the email address or domain) that you want to delete.<br/>
        :return:         """
        pass

    def delete_email_identity_policy(self, PolicyName: str, EmailIdentity: str) -> DeleteEmailIdentityPolicyResponse:
        r"""Deletes the specified sending authorization policy for the given identity (an email address or a domain). This API returns successfully even if a policy with the specified name does not exist. <note> This API is for the identity owner only. If you have not verified the identity, this API will return an error. </note> Sending authorization is a feature that enables an identity owner to authorize other senders to use its identities. For information about using sending authorization, see the <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization.html">Amazon SES Developer Guide</a>. You can execute this operation no more than once per second.

        :param self:
        :param PolicyName:  The name of the policy. The policy name cannot exceed 64 characters and can only include alphanumeric characters, dashes, and underscores.<br/>EmailIdentity:  The email identity for which you want to delete a policy.<br/>
        :return:         """
        pass

    def delete_email_template(self, TemplateName: str) -> DeleteEmailTemplateResponse:
        r"""Deletes an email template. You can execute this operation no more than once per second.

        :param self:
        :param TemplateName:  The name of the template to be deleted.<br/>
        :return:         """
        pass

    def delete_suppressed_destination(self, EmailAddress: str) -> DeleteSuppressedDestinationResponse:
        r"""Removes an email address from the suppression list for your account.

        :param self:
        :param EmailAddress:  The suppressed email destination to remove from the account suppression list.<br/>
        :return:         """
        pass

    def get_account(self) -> GetAccountResponse:
        r"""Obtain information about the email-sending status and capabilities of your Amazon SES account in the current AWS Region.

        :param self:
        :param 
        :return: Details:  An object that defines your account details.:<br/>SuppressionAttributes:  An object that contains information about the email address suppression preferences for your account in the current AWS Region.:<br/>SendingEnabled:  Indicates whether or not email sending is enabled for your Amazon SES account in the current AWS Region.<br/>SendQuota:  An object that contains information about the per-day and per-second sending limits for your Amazon SES account in the current AWS Region.:<br/>ProductionAccessEnabled:  Indicates whether or not your account has production access in the current AWS Region. If the value is <code>false</code>, then your account is in the <i>sandbox</i>. When your account is in the sandbox, you can only send email to verified identities. Additionally, the maximum number of emails you can send in a 24-hour period (your sending quota) is 200, and the maximum number of emails you can send per second (your maximum sending rate) is 1. If the value is <code>true</code>, then your account has production access. When your account has production access, you can send email to any address. The sending quota and maximum sending rate for your account vary based on your specific use case.<br/>EnforcementStatus:  The reputation status of your Amazon SES account. The status can be one of the following: <ul> <li>  <code>HEALTHY</code> – There are no reputation-related issues that currently impact your account. </li> <li>  <code>PROBATION</code> – We've identified potential issues with your Amazon SES account. We're placing your account under review while you work on correcting these issues. </li> <li>  <code>SHUTDOWN</code> – Your account's ability to send email is currently paused because of an issue with the email sent from your account. When you correct the issue, you can contact us and request that your account's ability to send email is resumed. </li> </ul><br/>DedicatedIpAutoWarmupEnabled:  Indicates whether or not the automatic warm-up feature is enabled for dedicated IP addresses that are associated with your account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SentLast24Hours</i> The number of emails sent from your Amazon SES account in the current AWS Region over the past 24 hours.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxSendRate</i> The maximum number of emails that you can send per second in the current AWS Region. This value is also called your <i>maximum sending rate</i> or your <i>maximum TPS (transactions per second) rate</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Max24HourSend</i> The maximum number of emails that you can send in the current AWS Region over a 24-hour period. This value is also called your <i>sending quota</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SuppressedReasons</i> A list that contains the reasons that email addresses will be automatically added to the suppression list for your account. This list can contain any or all of the following: <ul> <li>  <code>COMPLAINT</code> – Amazon SES adds an email address to the suppression list for your account when a message sent to that address results in a complaint. </li> <li>  <code>BOUNCE</code> – Amazon SES adds an email address to the suppression list for your account when a message sent to that address results in a hard bounce. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReviewDetails</i> Information about the review of the latest details you submitted.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ReviewDetails</b>: Information about the review of the latest details you submitted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdditionalContactEmailAddresses</i> Additional email addresses where updates are sent about your account review process.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UseCaseDescription</i> A description of the types of email that you plan to send.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ContactLanguage</i> The language you would prefer for the case. The contact language can be one of <code>ENGLISH</code> or <code>JAPANESE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WebsiteURL</i> The URL of your website. This information helps us better understand the type of content that you plan to send.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MailType</i> The type of email your account is sending. The mail type can be one of the following: <ul> <li>  <code>MARKETING</code> – Most of your sending traffic is to keep your customers informed of your latest offering. </li> <li>  <code>TRANSACTIONAL</code> – Most of your sending traffic is to communicate during a transaction with a customer. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CaseId</i> The associated support center case ID (if any).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the latest review of your account. The status can be one of the following: <ul> <li>  <code>PENDING</code> – We have received your appeal and are in the process of reviewing it. </li> <li>  <code>GRANTED</code> – Your appeal has been reviewed and your production access has been granted. </li> <li>  <code>DENIED</code> – Your appeal has been reviewed and your production access has been denied. </li> <li>  <code>FAILED</code> – An internal error occurred and we didn't receive your appeal. You can submit your appeal again. </li> </ul><br/>        """
        pass

    def get_blacklist_reports(self, BlacklistItemNames: List[BlacklistItemName]) -> GetBlacklistReportsResponse:
        r"""Retrieve a list of the blacklists that your dedicated IP addresses appear on.

        :param self:
        :param BlacklistItemNames:  A list of IP addresses that you want to retrieve blacklist information about. You can only specify the dedicated IP addresses that you use to send email using Amazon SES or Amazon Pinpoint.<br/>
        :return: BlacklistReport:  An object that contains information about a blacklist that one of your dedicated IP addresses appears on.<br/>        """
        pass

    def get_configuration_set(self, ConfigurationSetName: str) -> GetConfigurationSetResponse:
        r"""Get information about an existing configuration set, including the dedicated IP pool that it's associated with, whether or not it's enabled for sending email, and more.  <i>Configuration sets</i> are groups of rules that you can apply to the emails you send. You apply a configuration set to an email by including a reference to the configuration set in the headers of the email. When you apply a configuration set to an email, all of the rules in that configuration set are applied to the email.

        :param self:
        :param ConfigurationSetName:  The name of the configuration set that you want to obtain more information about.<br/>
        :return: SuppressionOptions:  An object that contains information about the suppression list preferences for your account.:<br/>Tags:  An array of objects that define the tags (keys and values) that are associated with the configuration set.<br/>SendingOptions:  An object that defines whether or not Amazon SES can send email that you send using the configuration set.:<br/>ReputationOptions:  An object that defines whether or not Amazon SES collects reputation metrics for the emails that you send that use the configuration set.:<br/>DeliveryOptions:  An object that defines the dedicated IP pool that is used to send emails that you send using the configuration set.:<br/>TrackingOptions:  An object that defines the open and click tracking options for emails that you send using the configuration set.:<br/>ConfigurationSetName:  The name of the configuration set.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomRedirectDomain</i> The domain that you want to use for tracking open and click events.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SendingPoolName</i> The name of the dedicated IP pool that you want to associate with the configuration set.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TlsPolicy</i> Specifies whether messages that use the configuration set are required to use Transport Layer Security (TLS). If the value is <code>Require</code>, messages are only delivered if a TLS connection can be established. If the value is <code>Optional</code>, messages can be delivered in plain text if a TLS connection can't be established.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastFreshStart</i> The date and time (in Unix time) when the reputation metrics were last given a fresh start. When your account is given a fresh start, your reputation metrics are calculated starting from the date of the fresh start.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReputationMetricsEnabled</i> If <code>true</code>, tracking of reputation metrics is enabled for the configuration set. If <code>false</code>, tracking of reputation metrics is disabled for the configuration set.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SendingEnabled</i> If <code>true</code>, email sending is enabled for the configuration set. If <code>false</code>, email sending is disabled for the configuration set.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SuppressedReasons</i> A list that contains the reasons that email addresses are automatically added to the suppression list for your account. This list can contain any or all of the following: <ul> <li>  <code>COMPLAINT</code> – Amazon SES adds an email address to the suppression list for your account when a message sent to that address results in a complaint. </li> <li>  <code>BOUNCE</code> – Amazon SES adds an email address to the suppression list for your account when a message sent to that address results in a hard bounce. </li> </ul><br/>        """
        pass

    def get_configuration_set_event_destinations(self, ConfigurationSetName: str) -> GetConfigurationSetEventDestinationsResponse:
        r"""Retrieve a list of event destinations that are associated with a configuration set.  <i>Events</i> include message sends, deliveries, opens, clicks, bounces, and complaints. <i>Event destinations</i> are places that you can send information about these events to. For example, you can send event data to Amazon SNS to receive notifications when you receive bounces or complaints, or you can use Amazon Kinesis Data Firehose to stream data to Amazon S3 for long-term storage.

        :param self:
        :param ConfigurationSetName:  The name of the configuration set that contains the event destination.<br/>
        :return: EventDestinations:  An array that includes all of the events destinations that have been configured for the configuration set.<br/>        """
        pass

    def get_contact(self, EmailAddress: str, ContactListName: str) -> GetContactResponse:
        r"""Returns a contact from a contact list.

        :param self:
        :param EmailAddress:  The contact's email addres.<br/>ContactListName:  The name of the contact list to which the contact belongs.<br/>
        :return: LastUpdatedTimestamp:  A timestamp noting the last time the contact's information was updated.<br/>CreatedTimestamp:  A timestamp noting when the contact was created.<br/>AttributesData:  The attribute data attached to a contact.<br/>UnsubscribeAll:  A boolean value status noting if the contact is unsubscribed from all contact list topics.<br/>TopicDefaultPreferences:  The default topic preferences applied to the contact.<br/>TopicPreferences:  The contact's preference for being opted-in to or opted-out of a topic.&gt;<br/>EmailAddress:  The contact's email addres.<br/>ContactListName:  The name of the contact list to which the contact belongs.<br/>        """
        pass

    def get_contact_list(self, ContactListName: str) -> GetContactListResponse:
        r"""Returns contact list metadata. It does not return any information about the contacts present in the list.

        :param self:
        :param ContactListName:  The name of the contact list.<br/>
        :return: Tags:  The tags associated with a contact list.<br/>LastUpdatedTimestamp:  A timestamp noting the last time the contact list was updated.<br/>CreatedTimestamp:  A timestamp noting when the contact list was created.<br/>Description:  A description of what the contact list is about.<br/>Topics:  An interest group, theme, or label within a list. A contact list can have multiple topics.<br/>ContactListName:  The name of the contact list.<br/>        """
        pass

    def get_custom_verification_email_template(self, TemplateName: str) -> GetCustomVerificationEmailTemplateResponse:
        r"""Returns the custom email verification template for the template name you specify. For more information about custom verification email templates, see <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-email-verify-address-custom.html">Using Custom Verification Email Templates</a> in the <i>Amazon SES Developer Guide</i>. You can execute this operation no more than once per second.

        :param self:
        :param TemplateName:  The name of the custom verification email template that you want to retrieve.<br/>
        :return: FailureRedirectionURL:  The URL that the recipient of the verification email is sent to if his or her address is not successfully verified.<br/>SuccessRedirectionURL:  The URL that the recipient of the verification email is sent to if his or her address is successfully verified.<br/>TemplateContent:  The content of the custom verification email.<br/>TemplateSubject:  The subject line of the custom verification email.<br/>FromEmailAddress:  The email address that the custom verification email is sent from.<br/>TemplateName:  The name of the custom verification email template.<br/>        """
        pass

    def get_dedicated_ip(self, Ip: str) -> GetDedicatedIpResponse:
        r"""Get information about a dedicated IP address, including the name of the dedicated IP pool that it's associated with, as well information about the automatic warm-up process for the address.

        :param self:
        :param Ip:  The IP address that you want to obtain more information about. The value you specify has to be a dedicated IP address that's assocaited with your AWS account.<br/>
        :return: DedicatedIp:  An object that contains information about a dedicated IP address.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PoolName</i> The name of the dedicated IP pool that the IP address is associated with.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WarmupPercentage</i> Indicates how complete the dedicated IP warm-up process is. When this value equals 1, the address has completed the warm-up process and is ready for use.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WarmupStatus</i> The warm-up status of a dedicated IP address. The status can have one of the following values: <ul> <li>  <code>IN_PROGRESS</code> – The IP address isn't ready to use because the dedicated IP warm-up process is ongoing. </li> <li>  <code>DONE</code> – The dedicated IP warm-up process is complete, and the IP address is ready to use. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Ip</i> An IPv4 address.<br/>        """
        pass

    def get_dedicated_ips(self, PoolName: str=None, NextToken: str=None, PageSize: int=None) -> GetDedicatedIpsResponse:
        r"""List the dedicated IP addresses that are associated with your AWS account.

        :param self:
        :param PageSize:  The number of results to show in a single call to <code>GetDedicatedIpsRequest</code>. If the number of results is larger than the number you specified in this parameter, then the response includes a <code>NextToken</code> element, which you can use to obtain additional results.<br/>NextToken:  A token returned from a previous call to <code>GetDedicatedIps</code> to indicate the position of the dedicated IP pool in the list of IP pools.<br/>PoolName:  The name of the IP pool that the dedicated IP address is associated with.<br/>
        :return: NextToken:  A token that indicates that there are additional dedicated IP addresses to list. To view additional addresses, issue another request to <code>GetDedicatedIps</code>, passing this token in the <code>NextToken</code> parameter.<br/>DedicatedIps:  A list of dedicated IP addresses that are associated with your AWS account.<br/>        """
        pass

    def get_deliverability_dashboard_options(self) -> GetDeliverabilityDashboardOptionsResponse:
        r"""Retrieve information about the status of the Deliverability dashboard for your account. When the Deliverability dashboard is enabled, you gain access to reputation, deliverability, and other metrics for the domains that you use to send email. You also gain the ability to perform predictive inbox placement tests. When you use the Deliverability dashboard, you pay a monthly subscription charge, in addition to any other fees that you accrue by using Amazon SES and other AWS services. For more information about the features and cost of a Deliverability dashboard subscription, see <a href="http://aws.amazon.com/ses/pricing/">Amazon SES Pricing</a>.

        :param self:
        :param 
        :return: PendingExpirationSubscribedDomains:  An array of objects, one for each verified domain that you use to send email and currently has an active Deliverability dashboard subscription that's scheduled to expire at the end of the current calendar month.<br/>ActiveSubscribedDomains:  An array of objects, one for each verified domain that you use to send email and currently has an active Deliverability dashboard subscription that isn’t scheduled to expire at the end of the current calendar month.<br/>AccountStatus:  The current status of your Deliverability dashboard subscription. If this value is <code>PENDING_EXPIRATION</code>, your subscription is scheduled to expire at the end of the current calendar month.<br/>SubscriptionExpiryDate:  The date, in Unix time format, when your current subscription to the Deliverability dashboard is scheduled to expire, if your subscription is scheduled to expire at the end of the current calendar month. This value is null if you have an active subscription that isn’t due to expire at the end of the month.<br/>DashboardEnabled:  Specifies whether the Deliverability dashboard is enabled. If this value is <code>true</code>, the dashboard is enabled.<br/>        """
        pass

    def get_deliverability_test_report(self, ReportId: str) -> GetDeliverabilityTestReportResponse:
        r"""Retrieve the results of a predictive inbox placement test.

        :param self:
        :param ReportId:  A unique string that identifies the predictive inbox placement test.<br/>
        :return: Tags:  An array of objects that define the tags (keys and values) that are associated with the predictive inbox placement test.<br/>Message:  An object that contains the message that you sent when you performed this predictive inbox placement test.<br/>IspPlacements:  An object that describes how the test email was handled by several email providers, including Gmail, Hotmail, Yahoo, AOL, and others.<br/>OverallPlacement:  An object that specifies how many test messages that were sent during the predictive inbox placement test were delivered to recipients' inboxes, how many were sent to recipients' spam folders, and how many weren't delivered.:<br/>DeliverabilityTestReport:  An object that contains the results of the predictive inbox placement test.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeliverabilityTestStatus</i> The status of the predictive inbox placement test. If the status is <code>IN_PROGRESS</code>, then the predictive inbox placement test is currently running. Predictive inbox placement tests are usually complete within 24 hours of creating the test. If the status is <code>COMPLETE</code>, then the test is finished, and you can use the <code>GetDeliverabilityTestReport</code> to view the results of the test.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreateDate</i> The date and time when the predictive inbox placement test was created, in Unix time format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FromEmailAddress</i> The sender address that you specified for the predictive inbox placement test.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Subject</i> The subject line for an email that you submitted in a predictive inbox placement test.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReportName</i> A name that helps you identify a predictive inbox placement test report.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReportId</i> A unique string that identifies the predictive inbox placement test.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DkimPercentage</i> The percentage of emails that were authenticated by using DomainKeys Identified Mail (DKIM) during the predictive inbox placement test.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SpfPercentage</i> The percentage of emails that were authenticated by using Sender Policy Framework (SPF) during the predictive inbox placement test.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MissingPercentage</i> The percentage of emails that didn't arrive in recipients' inboxes at all during the predictive inbox placement test.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SpamPercentage</i> The percentage of emails that arrived in recipients' spam or junk mail folders during the predictive inbox placement test.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InboxPercentage</i> The percentage of emails that arrived in recipients' inboxes during the predictive inbox placement test.<br/>        """
        pass

    def get_domain_deliverability_campaign(self, CampaignId: str) -> GetDomainDeliverabilityCampaignResponse:
        r"""Retrieve all the deliverability data for a specific campaign. This data is available for a campaign only if the campaign sent email by using a domain that the Deliverability dashboard is enabled for.

        :param self:
        :param CampaignId:  The unique identifier for the campaign. The Deliverability dashboard automatically generates and assigns this identifier to a campaign.<br/>
        :return: DomainDeliverabilityCampaign:  An object that contains the deliverability data for the campaign.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Esps</i> The major email providers who handled the email message.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProjectedVolume</i> The projected number of recipients that the email message was sent to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadDeleteRate</i> The percentage of email messages that were opened and then deleted by recipients. Due to technical limitations, this value only includes recipients who opened the message by using an email client that supports images.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeleteRate</i> The percentage of email messages that were deleted by recipients, without being opened first. Due to technical limitations, this value only includes recipients who opened the message by using an email client that supports images.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadRate</i> The percentage of email messages that were opened by recipients. Due to technical limitations, this value only includes recipients who opened the message by using an email client that supports images.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SpamCount</i> The number of email messages that were delivered to recipients' spam or junk mail folders.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InboxCount</i> The number of email messages that were delivered to recipients’ inboxes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastSeenDateTime</i> The last time, in Unix time format, when the email message was delivered to any recipient's inbox. This value can help you determine how long it took for a campaign to deliver an email message.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FirstSeenDateTime</i> The first time, in Unix time format, when the email message was delivered to any recipient's inbox. This value can help you determine how long it took for a campaign to deliver an email message.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SendingIps</i> The IP addresses that were used to send the email message.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FromAddress</i> The verified email address that the email message was sent from.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Subject</i> The subject line, or title, of the email message.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImageUrl</i> The URL of an image that contains a snapshot of the email message that was sent.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CampaignId</i> The unique identifier for the campaign. The Deliverability dashboard automatically generates and assigns this identifier to a campaign.<br/>        """
        pass

    def get_domain_statistics_report(self, EndDate: Timestamp, StartDate: Timestamp, Domain: str) -> GetDomainStatisticsReportResponse:
        r"""Retrieve inbox placement and engagement rates for the domains that you use to send email.

        :param self:
        :param EndDate:  The last day (in Unix time) that you want to obtain domain deliverability metrics for. The <code>EndDate</code> that you specify has to be less than or equal to 30 days after the <code>StartDate</code>.<br/>StartDate:  The first day (in Unix time) that you want to obtain domain deliverability metrics for.<br/>Domain:  The domain that you want to obtain deliverability metrics for.<br/>
        :return: DailyVolumes:  An object that contains deliverability metrics for the domain that you specified. This object contains data for each day, starting on the <code>StartDate</code> and ending on the <code>EndDate</code>.<br/>OverallVolume:  An object that contains deliverability metrics for the domain that you specified. The data in this object is a summary of all of the data that was collected from the <code>StartDate</code> to the <code>EndDate</code>.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainIspPlacements</i> An object that contains inbox and junk mail placement metrics for individual email providers.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReadRatePercent</i> The percentage of emails that were sent from the domain that were read by their recipients.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VolumeStatistics</i> An object that contains information about the numbers of messages that arrived in recipients' inboxes and junk mail folders.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>VolumeStatistics</b>: An object that contains information about the numbers of messages that arrived in recipients' inboxes and junk mail folders.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ProjectedSpam</i> An estimate of the percentage of emails sent from the current domain that will arrive in recipients' spam or junk mail folders.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ProjectedInbox</i> An estimate of the percentage of emails sent from the current domain that will arrive in recipients' inboxes.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SpamRawCount</i> The total number of emails that arrived in recipients' spam or junk mail folders.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InboxRawCount</i> The total number of emails that arrived in recipients' inboxes.<br/>        """
        pass

    def get_email_identity(self, EmailIdentity: str) -> GetEmailIdentityResponse:
        r"""Provides information about a specific identity, including the identity's verification status, sending authorization policies, its DKIM authentication status, and its custom Mail-From settings.

        :param self:
        :param EmailIdentity:  The email identity that you want to retrieve details for.<br/>
        :return: ConfigurationSetName:  The configuration set used by default when sending from this identity.<br/>Tags:  An array of objects that define the tags (keys and values) that are associated with the email identity.<br/>Policies:  A map of policy names to policies.<br/>MailFromAttributes:  An object that contains information about the Mail-From attributes for the email identity.:<br/>DkimAttributes:  An object that contains information about the DKIM attributes for the identity.:<br/>VerifiedForSendingStatus:  Specifies whether or not the identity is verified. You can only send email from verified email addresses or domains. For more information about verifying identities, see the <a href="https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-email-manage-verify.html">Amazon Pinpoint User Guide</a>.<br/>FeedbackForwardingStatus:  The feedback forwarding configuration for the identity. If the value is <code>true</code>, you receive email notifications when bounce or complaint events occur. These notifications are sent to the address that you specified in the <code>Return-Path</code> header of the original email. You're required to have a method of tracking bounces and complaints. If you haven't set up another mechanism for receiving bounce or complaint notifications (for example, by setting up an event destination), you receive an email notification when these events occur (even if this setting is disabled).<br/>IdentityType:  The email identity type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SigningAttributesOrigin</i> A string that indicates how DKIM was configured for the identity. There are two possible values: <ul> <li>  <code>AWS_SES</code> – Indicates that DKIM was configured for the identity by using <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/easy-dkim.html">Easy DKIM</a>. </li> <li>  <code>EXTERNAL</code> – Indicates that DKIM was configured for the identity by using Bring Your Own DKIM (BYODKIM). </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tokens</i> If you used <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/easy-dkim.html">Easy DKIM</a> to configure DKIM authentication for the domain, then this object contains a set of unique strings that you use to create a set of CNAME records that you add to the DNS configuration for your domain. When Amazon SES detects these records in the DNS configuration for your domain, the DKIM authentication process is complete. If you configured DKIM authentication for the domain by providing your own public-private key pair, then this object contains the selector for the public key. Regardless of the DKIM authentication method you use, Amazon SES searches for the appropriate records in the DNS configuration of the domain for up to 72 hours.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Describes whether or not Amazon SES has successfully located the DKIM records in the DNS records for the domain. The status can be one of the following: <ul> <li>  <code>PENDING</code> – The verification process was initiated, but Amazon SES hasn't yet detected the DKIM records in the DNS configuration for the domain. </li> <li>  <code>SUCCESS</code> – The verification process completed successfully. </li> <li>  <code>FAILED</code> – The verification process failed. This typically occurs when Amazon SES fails to find the DKIM records in the DNS configuration of the domain. </li> <li>  <code>TEMPORARY_FAILURE</code> – A temporary issue is preventing Amazon SES from determining the DKIM authentication status of the domain. </li> <li>  <code>NOT_STARTED</code> – The DKIM verification process hasn't been initiated for the domain. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SigningEnabled</i> If the value is <code>true</code>, then the messages that you send from the identity are signed using DKIM. If the value is <code>false</code>, then the messages that you send from the identity aren't DKIM-signed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BehaviorOnMxFailure</i> The action that you want to take if the required MX record can't be found when you send an email. When you set this value to <code>UseDefaultValue</code>, the mail is sent using <i>amazonses.com</i> as the MAIL FROM domain. When you set this value to <code>RejectMessage</code>, the Amazon SES API v2 returns a <code>MailFromDomainNotVerified</code> error, and doesn't attempt to deliver the email. These behaviors are taken when the custom MAIL FROM domain configuration is in the <code>Pending</code>, <code>Failed</code>, and <code>TemporaryFailure</code> states.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MailFromDomainStatus</i> The status of the MAIL FROM domain. This status can have the following values: <ul> <li>  <code>PENDING</code> – Amazon SES hasn't started searching for the MX record yet. </li> <li>  <code>SUCCESS</code> – Amazon SES detected the required MX record for the MAIL FROM domain. </li> <li>  <code>FAILED</code> – Amazon SES can't find the required MX record, or the record no longer exists. </li> <li>  <code>TEMPORARY_FAILURE</code> – A temporary issue occurred, which prevented Amazon SES from determining the status of the MAIL FROM domain. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MailFromDomain</i> The name of a domain that an email identity uses as a custom MAIL FROM domain.<br/>        """
        pass

    def get_email_identity_policies(self, EmailIdentity: str) -> GetEmailIdentityPoliciesResponse:
        r"""Returns the requested sending authorization policies for the given identity (an email address or a domain). The policies are returned as a map of policy names to policy contents. You can retrieve a maximum of 20 policies at a time. <note> This API is for the identity owner only. If you have not verified the identity, this API will return an error. </note> Sending authorization is a feature that enables an identity owner to authorize other senders to use its identities. For information about using sending authorization, see the <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization.html">Amazon SES Developer Guide</a>. You can execute this operation no more than once per second.

        :param self:
        :param EmailIdentity:  The email identity that you want to retrieve policies for.<br/>
        :return: Policies:  A map of policy names to policies.<br/>        """
        pass

    def get_email_template(self, TemplateName: str) -> GetEmailTemplateResponse:
        r"""Displays the template object (which includes the subject line, HTML part and text part) for the template you specify. You can execute this operation no more than once per second.

        :param self:
        :param TemplateName:  The name of the template you want to retrieve.<br/>
        :return: TemplateContent:  The content of the email template, composed of a subject line, an HTML part, and a text-only part.:<br/>TemplateName:  The name of the template you want to retrieve.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Html</i> The HTML body of the email.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Text</i> The email body that will be visible to recipients whose email clients do not display HTML.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Subject</i> The subject line of the email.<br/>        """
        pass

    def get_import_job(self, JobId: str) -> GetImportJobResponse:
        r"""Provides information about an import job.

        :param self:
        :param JobId:  The ID of the import job.<br/>
        :return: FailedRecordsCount:  The number of records that failed processing because of invalid input or other reasons.<br/>ProcessedRecordsCount:  The current number of records processed.<br/>CompletedTimestamp:  The time stamp of when the import job was completed.<br/>CreatedTimestamp:  The time stamp of when the import job was created.<br/>JobStatus:  The status of the import job.<br/>FailureInfo:  The failure details about an import job.:<br/>ImportDataSource:  The data source of the import job.:<br/>ImportDestination:  The destination of the import job.:<br/>JobId:  A string that represents the import job ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ContactListDestination</i> An object that contains the action of the import job towards a contact list.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ContactListDestination</b>: An object that contains the action of the import job towards a contact list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SuppressionListDestination</i> An object that contains the action of the import job towards suppression list.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SuppressionListDestination</b>: An object that contains the action of the import job towards suppression list.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SuppressionListImportAction</i> The type of action that you want to perform on the address. Acceptable values: <ul> <li> PUT: add the addresses to the suppression list. If the record already exists, it will override it with the new value. </li> <li> DELETE: remove the addresses from the suppression list. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ContactListImportAction</i> &gt;The type of action that you want to perform on the addresses. Acceptable values: <ul> <li> PUT: add the addresses to the contact list. If the record already exists, it will override it with the new value. </li> <li> DELETE: remove the addresses from the contact list. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ContactListName</i> The name of the contact list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataFormat</i> The data format of the import job's data source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Url</i> An Amazon S3 URL in the format s3://<i>&lt;bucket_name&gt;</i>/<i>&lt;object&gt;</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorMessage</i> A message about why the import job failed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FailedRecordsS3Url</i> An Amazon S3 presigned URL that contains all the failed records and related information.<br/>        """
        pass

    def get_suppressed_destination(self, EmailAddress: str) -> GetSuppressedDestinationResponse:
        r"""Retrieves information about a specific email address that's on the suppression list for your account.

        :param self:
        :param EmailAddress:  The email address that's on the account suppression list.<br/>
        :return: SuppressedDestination:  An object containing information about the suppressed email address.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Attributes</i> An optional value that can contain additional information about the reasons that the address was added to the suppression list for your account.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Attributes</b>: An optional value that can contain additional information about the reasons that the address was added to the suppression list for your account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdateTime</i> The date and time when the suppressed destination was last updated, shown in Unix time format.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Reason</i> The reason that the address was added to the suppression list for your account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EmailAddress</i> The email address that is on the suppression list for your account.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FeedbackId</i> A unique identifier that's generated when an email address is added to the suppression list for your account.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MessageId</i> The unique identifier of the email message that caused the email address to be added to the suppression list for your account.<br/>        """
        pass

    def list_configuration_sets(self, NextToken: str=None, PageSize: int=None) -> ListConfigurationSetsResponse:
        r"""List all of the configuration sets associated with your account in the current region.  <i>Configuration sets</i> are groups of rules that you can apply to the emails you send. You apply a configuration set to an email by including a reference to the configuration set in the headers of the email. When you apply a configuration set to an email, all of the rules in that configuration set are applied to the email.

        :param self:
        :param PageSize:  The number of results to show in a single call to <code>ListConfigurationSets</code>. If the number of results is larger than the number you specified in this parameter, then the response includes a <code>NextToken</code> element, which you can use to obtain additional results.<br/>NextToken:  A token returned from a previous call to <code>ListConfigurationSets</code> to indicate the position in the list of configuration sets.<br/>
        :return: NextToken:  A token that indicates that there are additional configuration sets to list. To view additional configuration sets, issue another request to <code>ListConfigurationSets</code>, and pass this token in the <code>NextToken</code> parameter.<br/>ConfigurationSets:  An array that contains all of the configuration sets in your Amazon SES account in the current AWS Region.<br/>        """
        pass

    def list_contact_lists(self, PageSize: int=None, NextToken: str=None) -> ListContactListsResponse:
        r"""Lists all of the contact lists available.

        :param self:
        :param NextToken:  A string token indicating that there might be additional contact lists available to be listed. Use the token provided in the Response to use in the subsequent call to ListContactLists with the same parameters to retrieve the next page of contact lists.<br/>PageSize:  Maximum number of contact lists to return at once. Use this parameter to paginate results. If additional contact lists exist beyond the specified limit, the <code>NextToken</code> element is sent in the response. Use the <code>NextToken</code> value in subsequent requests to retrieve additional lists.<br/>
        :return: NextToken:  A string token indicating that there might be additional contact lists available to be listed. Copy this token to a subsequent call to <code>ListContactLists</code> with the same parameters to retrieve the next page of contact lists.<br/>ContactLists:  The available contact lists.<br/>        """
        pass

    def list_contacts(self, ContactListName: str, Filter: ListContactsFilter=None, PageSize: int=None, NextToken: str=None) -> ListContactsResponse:
        r"""Lists the contacts present in a specific contact list.

        :param self:
        :param NextToken:  A string token indicating that there might be additional contacts available to be listed. Use the token provided in the Response to use in the subsequent call to ListContacts with the same parameters to retrieve the next page of contacts.<br/>PageSize:  The number of contacts that may be returned at once, which is dependent on if there are more or less contacts than the value of the PageSize. Use this parameter to paginate results. If additional contacts exist beyond the specified limit, the <code>NextToken</code> element is sent in the response. Use the <code>NextToken</code> value in subsequent requests to retrieve additional contacts.<br/>Filter:  A filter that can be applied to a list of contacts.:<br/>ContactListName:  The name of the contact list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TopicFilter</i> Used for filtering by a specific topic preference.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TopicFilter</b>: Used for filtering by a specific topic preference.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FilteredStatus</i> The status by which you are filtering: <code>OPT_IN</code> or <code>OPT_OUT</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UseDefaultIfPreferenceUnavailable</i> Notes that the default subscription status should be applied to a contact because the contact has not noted their preference for subscribing to a topic.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TopicName</i> The name of a topic on which you wish to apply the filter.<br/>
        :return: NextToken:  A string token indicating that there might be additional contacts available to be listed. Copy this token to a subsequent call to <code>ListContacts</code> with the same parameters to retrieve the next page of contacts.<br/>Contacts:  The contacts present in a specific contact list.<br/>        """
        pass

    def list_custom_verification_email_templates(self, NextToken: str=None, PageSize: int=None) -> ListCustomVerificationEmailTemplatesResponse:
        r"""Lists the existing custom verification email templates for your account in the current AWS Region. For more information about custom verification email templates, see <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-email-verify-address-custom.html">Using Custom Verification Email Templates</a> in the <i>Amazon SES Developer Guide</i>. You can execute this operation no more than once per second.

        :param self:
        :param PageSize:  The number of results to show in a single call to <code>ListCustomVerificationEmailTemplates</code>. If the number of results is larger than the number you specified in this parameter, then the response includes a <code>NextToken</code> element, which you can use to obtain additional results. The value you specify has to be at least 1, and can be no more than 50.<br/>NextToken:  A token returned from a previous call to <code>ListCustomVerificationEmailTemplates</code> to indicate the position in the list of custom verification email templates.<br/>
        :return: NextToken:  A token indicating that there are additional custom verification email templates available to be listed. Pass this token to a subsequent call to <code>ListCustomVerificationEmailTemplates</code> to retrieve the next 50 custom verification email templates.<br/>CustomVerificationEmailTemplates:  A list of the custom verification email templates that exist in your account.<br/>        """
        pass

    def list_dedicated_ip_pools(self, NextToken: str=None, PageSize: int=None) -> ListDedicatedIpPoolsResponse:
        r"""List all of the dedicated IP pools that exist in your AWS account in the current Region.

        :param self:
        :param PageSize:  The number of results to show in a single call to <code>ListDedicatedIpPools</code>. If the number of results is larger than the number you specified in this parameter, then the response includes a <code>NextToken</code> element, which you can use to obtain additional results.<br/>NextToken:  A token returned from a previous call to <code>ListDedicatedIpPools</code> to indicate the position in the list of dedicated IP pools.<br/>
        :return: NextToken:  A token that indicates that there are additional IP pools to list. To view additional IP pools, issue another request to <code>ListDedicatedIpPools</code>, passing this token in the <code>NextToken</code> parameter.<br/>DedicatedIpPools:  A list of all of the dedicated IP pools that are associated with your AWS account in the current Region.<br/>        """
        pass

    def list_deliverability_test_reports(self, NextToken: str=None, PageSize: int=None) -> ListDeliverabilityTestReportsResponse:
        r"""Show a list of the predictive inbox placement tests that you've performed, regardless of their statuses. For predictive inbox placement tests that are complete, you can use the <code>GetDeliverabilityTestReport</code> operation to view the results.

        :param self:
        :param PageSize:  The number of results to show in a single call to <code>ListDeliverabilityTestReports</code>. If the number of results is larger than the number you specified in this parameter, then the response includes a <code>NextToken</code> element, which you can use to obtain additional results. The value you specify has to be at least 0, and can be no more than 1000.<br/>NextToken:  A token returned from a previous call to <code>ListDeliverabilityTestReports</code> to indicate the position in the list of predictive inbox placement tests.<br/>
        :return: NextToken:  A token that indicates that there are additional predictive inbox placement tests to list. To view additional predictive inbox placement tests, issue another request to <code>ListDeliverabilityTestReports</code>, and pass this token in the <code>NextToken</code> parameter.<br/>DeliverabilityTestReports:  An object that contains a lists of predictive inbox placement tests that you've performed.<br/>        """
        pass

    def list_domain_deliverability_campaigns(self, SubscribedDomain: str, EndDate: Timestamp, StartDate: Timestamp, NextToken: str=None, PageSize: int=None) -> ListDomainDeliverabilityCampaignsResponse:
        r"""Retrieve deliverability data for all the campaigns that used a specific domain to send email during a specified time range. This data is available for a domain only if you enabled the Deliverability dashboard for the domain.

        :param self:
        :param PageSize:  The maximum number of results to include in response to a single call to the <code>ListDomainDeliverabilityCampaigns</code> operation. If the number of results is larger than the number that you specify in this parameter, the response includes a <code>NextToken</code> element, which you can use to obtain additional results.<br/>NextToken:  A token that’s returned from a previous call to the <code>ListDomainDeliverabilityCampaigns</code> operation. This token indicates the position of a campaign in the list of campaigns.<br/>SubscribedDomain:  The domain to obtain deliverability data for.<br/>EndDate:  The last day, in Unix time format, that you want to obtain deliverability data for. This value has to be less than or equal to 30 days after the value of the <code>StartDate</code> parameter.<br/>StartDate:  The first day, in Unix time format, that you want to obtain deliverability data for.<br/>
        :return: NextToken:  A token that’s returned from a previous call to the <code>ListDomainDeliverabilityCampaigns</code> operation. This token indicates the position of the campaign in the list of campaigns.<br/>DomainDeliverabilityCampaigns:  An array of responses, one for each campaign that used the domain to send email during the specified time range.<br/>        """
        pass

    def list_email_identities(self, NextToken: str=None, PageSize: int=None) -> ListEmailIdentitiesResponse:
        r"""Returns a list of all of the email identities that are associated with your AWS account. An identity can be either an email address or a domain. This operation returns identities that are verified as well as those that aren't. This operation returns identities that are associated with Amazon SES and Amazon Pinpoint.

        :param self:
        :param PageSize:  The number of results to show in a single call to <code>ListEmailIdentities</code>. If the number of results is larger than the number you specified in this parameter, then the response includes a <code>NextToken</code> element, which you can use to obtain additional results. The value you specify has to be at least 0, and can be no more than 1000.<br/>NextToken:  A token returned from a previous call to <code>ListEmailIdentities</code> to indicate the position in the list of identities.<br/>
        :return: NextToken:  A token that indicates that there are additional configuration sets to list. To view additional configuration sets, issue another request to <code>ListEmailIdentities</code>, and pass this token in the <code>NextToken</code> parameter.<br/>EmailIdentities:  An array that includes all of the email identities associated with your AWS account.<br/>        """
        pass

    def list_email_templates(self, NextToken: str=None, PageSize: int=None) -> ListEmailTemplatesResponse:
        r"""Lists the email templates present in your Amazon SES account in the current AWS Region. You can execute this operation no more than once per second.

        :param self:
        :param PageSize:  The number of results to show in a single call to <code>ListEmailTemplates</code>. If the number of results is larger than the number you specified in this parameter, then the response includes a <code>NextToken</code> element, which you can use to obtain additional results. The value you specify has to be at least 1, and can be no more than 10.<br/>NextToken:  A token returned from a previous call to <code>ListEmailTemplates</code> to indicate the position in the list of email templates.<br/>
        :return: NextToken:  A token indicating that there are additional email templates available to be listed. Pass this token to a subsequent <code>ListEmailTemplates</code> call to retrieve the next 10 email templates.<br/>TemplatesMetadata:  An array the contains the name and creation time stamp for each template in your Amazon SES account.<br/>        """
        pass

    def list_import_jobs(self, ImportDestinationType: str=None, NextToken: str=None, PageSize: int=None) -> ListImportJobsResponse:
        r"""Lists all of the import jobs.

        :param self:
        :param PageSize:  Maximum number of import jobs to return at once. Use this parameter to paginate results. If additional import jobs exist beyond the specified limit, the <code>NextToken</code> element is sent in the response. Use the <code>NextToken</code> value in subsequent requests to retrieve additional addresses.<br/>NextToken:  A string token indicating that there might be additional import jobs available to be listed. Copy this token to a subsequent call to <code>ListImportJobs</code> with the same parameters to retrieve the next page of import jobs.<br/>ImportDestinationType:  The destination of the import job, which can be used to list import jobs that have a certain <code>ImportDestinationType</code>.<br/>
        :return: NextToken:  A string token indicating that there might be additional import jobs available to be listed. Copy this token to a subsequent call to <code>ListImportJobs</code> with the same parameters to retrieve the next page of import jobs.<br/>ImportJobs:  A list of the import job summaries.<br/>        """
        pass

    def list_suppressed_destinations(self, Reasons: List[SuppressionListReason]=None, StartDate: Timestamp=None, EndDate: Timestamp=None, NextToken: str=None, PageSize: int=None) -> ListSuppressedDestinationsResponse:
        r"""Retrieves a list of email addresses that are on the suppression list for your account.

        :param self:
        :param PageSize:  The number of results to show in a single call to <code>ListSuppressedDestinations</code>. If the number of results is larger than the number you specified in this parameter, then the response includes a <code>NextToken</code> element, which you can use to obtain additional results.<br/>NextToken:  A token returned from a previous call to <code>ListSuppressedDestinations</code> to indicate the position in the list of suppressed email addresses.<br/>EndDate:  Used to filter the list of suppressed email destinations so that it only includes addresses that were added to the list before a specific date. The date that you specify should be in Unix time format.<br/>StartDate:  Used to filter the list of suppressed email destinations so that it only includes addresses that were added to the list after a specific date. The date that you specify should be in Unix time format.<br/>Reasons:  The factors that caused the email address to be added to .<br/>
        :return: NextToken:  A token that indicates that there are additional email addresses on the suppression list for your account. To view additional suppressed addresses, issue another request to <code>ListSuppressedDestinations</code>, and pass this token in the <code>NextToken</code> parameter.<br/>SuppressedDestinationSummaries:  A list of summaries, each containing a summary for a suppressed email destination.<br/>        """
        pass

    def list_tags_for_resource(self, ResourceArn: str) -> ListTagsForResourceResponse:
        r"""Retrieve a list of the tags (keys and values) that are associated with a specified resource. A <i>tag</i> is a label that you optionally define and associate with a resource. Each tag consists of a required <i>tag key</i> and an optional associated <i>tag value</i>. A tag key is a general label that acts as a category for more specific tag values. A tag value acts as a descriptor within a tag key.

        :param self:
        :param ResourceArn:  The Amazon Resource Name (ARN) of the resource that you want to retrieve tag information for.<br/>
        :return: Tags:  An array that lists all the tags that are associated with the resource. Each tag consists of a required tag key (<code>Key</code>) and an associated tag value (<code>Value</code>)<br/>        """
        pass

    def put_account_dedicated_ip_warmup_attributes(self, AutoWarmupEnabled: Enabled=None) -> PutAccountDedicatedIpWarmupAttributesResponse:
        r"""Enable or disable the automatic warm-up feature for dedicated IP addresses.

        :param self:
        :param AutoWarmupEnabled:  Enables or disables the automatic warm-up feature for dedicated IP addresses that are associated with your Amazon SES account in the current AWS Region. Set to <code>true</code> to enable the automatic warm-up feature, or set to <code>false</code> to disable it.<br/>
        :return:         """
        pass

    def put_account_details(self, UseCaseDescription: str, WebsiteURL: str, MailType: str, ContactLanguage: str=None, AdditionalContactEmailAddresses: List[AdditionalContactEmailAddress]=None, ProductionAccessEnabled: EnabledWrapper=None) -> PutAccountDetailsResponse:
        r"""Update your Amazon SES account details.

        :param self:
        :param ProductionAccessEnabled:  Indicates whether or not your account should have production access in the current AWS Region. If the value is <code>false</code>, then your account is in the <i>sandbox</i>. When your account is in the sandbox, you can only send email to verified identities. Additionally, the maximum number of emails you can send in a 24-hour period (your sending quota) is 200, and the maximum number of emails you can send per second (your maximum sending rate) is 1. If the value is <code>true</code>, then your account has production access. When your account has production access, you can send email to any address. The sending quota and maximum sending rate for your account vary based on your specific use case.<br/>AdditionalContactEmailAddresses:  Additional email addresses that you would like to be notified regarding Amazon SES matters.<br/>UseCaseDescription:  A description of the types of email that you plan to send.<br/>ContactLanguage:  The language you would prefer to be contacted with.<br/>WebsiteURL:  The URL of your website. This information helps us better understand the type of content that you plan to send.<br/>MailType:  The type of email your account will send.<br/>
        :return:         """
        pass

    def put_account_sending_attributes(self, SendingEnabled: Enabled=None) -> PutAccountSendingAttributesResponse:
        r"""Enable or disable the ability of your account to send email.

        :param self:
        :param SendingEnabled:  Enables or disables your account's ability to send email. Set to <code>true</code> to enable email sending, or set to <code>false</code> to disable email sending. <note> If AWS paused your account's ability to send email, you can't use this operation to resume your account's ability to send email. </note><br/>
        :return:         """
        pass

    def put_account_suppression_attributes(self, SuppressedReasons: List[SuppressionListReason]=None) -> PutAccountSuppressionAttributesResponse:
        r"""Change the settings for the account-level suppression list.

        :param self:
        :param SuppressedReasons:  A list that contains the reasons that email addresses will be automatically added to the suppression list for your account. This list can contain any or all of the following: <ul> <li>  <code>COMPLAINT</code> – Amazon SES adds an email address to the suppression list for your account when a message sent to that address results in a complaint. </li> <li>  <code>BOUNCE</code> – Amazon SES adds an email address to the suppression list for your account when a message sent to that address results in a hard bounce. </li> </ul><br/>
        :return:         """
        pass

    def put_configuration_set_delivery_options(self, ConfigurationSetName: str, TlsPolicy: str=None, SendingPoolName: str=None) -> PutConfigurationSetDeliveryOptionsResponse:
        r"""Associate a configuration set with a dedicated IP pool. You can use dedicated IP pools to create groups of dedicated IP addresses for sending specific types of email.

        :param self:
        :param SendingPoolName:  The name of the dedicated IP pool that you want to associate with the configuration set.<br/>TlsPolicy:  Specifies whether messages that use the configuration set are required to use Transport Layer Security (TLS). If the value is <code>Require</code>, messages are only delivered if a TLS connection can be established. If the value is <code>Optional</code>, messages can be delivered in plain text if a TLS connection can't be established.<br/>ConfigurationSetName:  The name of the configuration set that you want to associate with a dedicated IP pool.<br/>
        :return:         """
        pass

    def put_configuration_set_reputation_options(self, ConfigurationSetName: str, ReputationMetricsEnabled: Enabled=None) -> PutConfigurationSetReputationOptionsResponse:
        r"""Enable or disable collection of reputation metrics for emails that you send using a particular configuration set in a specific AWS Region.

        :param self:
        :param ReputationMetricsEnabled:  If <code>true</code>, tracking of reputation metrics is enabled for the configuration set. If <code>false</code>, tracking of reputation metrics is disabled for the configuration set.<br/>ConfigurationSetName:  The name of the configuration set that you want to enable or disable reputation metric tracking for.<br/>
        :return:         """
        pass

    def put_configuration_set_sending_options(self, ConfigurationSetName: str, SendingEnabled: Enabled=None) -> PutConfigurationSetSendingOptionsResponse:
        r"""Enable or disable email sending for messages that use a particular configuration set in a specific AWS Region.

        :param self:
        :param SendingEnabled:  If <code>true</code>, email sending is enabled for the configuration set. If <code>false</code>, email sending is disabled for the configuration set.<br/>ConfigurationSetName:  The name of the configuration set that you want to enable or disable email sending for.<br/>
        :return:         """
        pass

    def put_configuration_set_suppression_options(self, ConfigurationSetName: str, SuppressedReasons: List[SuppressionListReason]=None) -> PutConfigurationSetSuppressionOptionsResponse:
        r"""Specify the account suppression list preferences for a configuration set.

        :param self:
        :param SuppressedReasons:  A list that contains the reasons that email addresses are automatically added to the suppression list for your account. This list can contain any or all of the following: <ul> <li>  <code>COMPLAINT</code> – Amazon SES adds an email address to the suppression list for your account when a message sent to that address results in a complaint. </li> <li>  <code>BOUNCE</code> – Amazon SES adds an email address to the suppression list for your account when a message sent to that address results in a hard bounce. </li> </ul><br/>ConfigurationSetName:  The name of the configuration set that you want to change the suppression list preferences for.<br/>
        :return:         """
        pass

    def put_configuration_set_tracking_options(self, ConfigurationSetName: str, CustomRedirectDomain: str=None) -> PutConfigurationSetTrackingOptionsResponse:
        r"""Specify a custom domain to use for open and click tracking elements in email that you send.

        :param self:
        :param CustomRedirectDomain:  The domain that you want to use to track open and click events.<br/>ConfigurationSetName:  The name of the configuration set that you want to add a custom tracking domain to.<br/>
        :return:         """
        pass

    def put_dedicated_ip_in_pool(self, DestinationPoolName: str, Ip: str) -> PutDedicatedIpInPoolResponse:
        r"""Move a dedicated IP address to an existing dedicated IP pool. <note> The dedicated IP address that you specify must already exist, and must be associated with your AWS account.  The dedicated IP pool you specify must already exist. You can create a new pool by using the <code>CreateDedicatedIpPool</code> operation. </note>

        :param self:
        :param DestinationPoolName:  The name of the IP pool that you want to add the dedicated IP address to. You have to specify an IP pool that already exists.<br/>Ip:  The IP address that you want to move to the dedicated IP pool. The value you specify has to be a dedicated IP address that's associated with your AWS account.<br/>
        :return:         """
        pass

    def put_dedicated_ip_warmup_attributes(self, WarmupPercentage: int, Ip: str) -> PutDedicatedIpWarmupAttributesResponse:
        r"""<p/>

        :param self:
        :param WarmupPercentage:  The warm-up percentage that you want to associate with the dedicated IP address.<br/>Ip:  The dedicated IP address that you want to update the warm-up attributes for.<br/>
        :return:         """
        pass

    def put_deliverability_dashboard_option(self, DashboardEnabled: Enabled, SubscribedDomains: List[DomainDeliverabilityTrackingOption]=None) -> PutDeliverabilityDashboardOptionResponse:
        r"""Enable or disable the Deliverability dashboard. When you enable the Deliverability dashboard, you gain access to reputation, deliverability, and other metrics for the domains that you use to send email. You also gain the ability to perform predictive inbox placement tests. When you use the Deliverability dashboard, you pay a monthly subscription charge, in addition to any other fees that you accrue by using Amazon SES and other AWS services. For more information about the features and cost of a Deliverability dashboard subscription, see <a href="http://aws.amazon.com/ses/pricing/">Amazon SES Pricing</a>.

        :param self:
        :param SubscribedDomains:  An array of objects, one for each verified domain that you use to send email and enabled the Deliverability dashboard for.<br/>DashboardEnabled:  Specifies whether to enable the Deliverability dashboard. To enable the dashboard, set this value to <code>true</code>.<br/>
        :return:         """
        pass

    def put_email_identity_configuration_set_attributes(self, EmailIdentity: str, ConfigurationSetName: str=None) -> PutEmailIdentityConfigurationSetAttributesResponse:
        r"""Used to associate a configuration set with an email identity.

        :param self:
        :param ConfigurationSetName:  The configuration set that you want to associate with an email identity.<br/>EmailIdentity:  The email address or domain that you want to associate with a configuration set.<br/>
        :return:         """
        pass

    def put_email_identity_dkim_attributes(self, EmailIdentity: str, SigningEnabled: Enabled=None) -> PutEmailIdentityDkimAttributesResponse:
        r"""Used to enable or disable DKIM authentication for an email identity.

        :param self:
        :param SigningEnabled:  Sets the DKIM signing configuration for the identity. When you set this value <code>true</code>, then the messages that are sent from the identity are signed using DKIM. If you set this value to <code>false</code>, your messages are sent without DKIM signing.<br/>EmailIdentity:  The email identity that you want to change the DKIM settings for.<br/>
        :return:         """
        pass

    def put_email_identity_dkim_signing_attributes(self, SigningAttributesOrigin: str, EmailIdentity: str, SigningAttributes: DkimSigningAttributes=None) -> PutEmailIdentityDkimSigningAttributesResponse:
        r"""Used to configure or change the DKIM authentication settings for an email domain identity. You can use this operation to do any of the following: <ul> <li> Update the signing attributes for an identity that uses Bring Your Own DKIM (BYODKIM). </li> <li> Change from using no DKIM authentication to using Easy DKIM. </li> <li> Change from using no DKIM authentication to using BYODKIM. </li> <li> Change from using Easy DKIM to using BYODKIM. </li> <li> Change from using BYODKIM to using Easy DKIM. </li> </ul>

        :param self:
        :param SigningAttributes:  An object that contains information about the private key and selector that you want to use to configure DKIM for the identity. This object is only required if you want to configure Bring Your Own DKIM (BYODKIM) for the identity.:<br/>SigningAttributesOrigin:  The method that you want to use to configure DKIM for the identity. There are two possible values: <ul> <li>  <code>AWS_SES</code> – Configure DKIM for the identity by using <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/easy-dkim.html">Easy DKIM</a>. </li> <li>  <code>EXTERNAL</code> – Configure DKIM for the identity by using Bring Your Own DKIM (BYODKIM). </li> </ul><br/>EmailIdentity:  The email identity that you want to configure DKIM for.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainSigningPrivateKey</i> A private key that's used to generate a DKIM signature. The private key must use 1024-bit RSA encryption, and must be encoded using base64 encoding.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DomainSigningSelector</i> A string that's used to identify a public key in the DNS configuration for a domain.<br/>
        :return: DkimTokens:  If you used <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/easy-dkim.html">Easy DKIM</a> to configure DKIM authentication for the domain, then this object contains a set of unique strings that you use to create a set of CNAME records that you add to the DNS configuration for your domain. When Amazon SES detects these records in the DNS configuration for your domain, the DKIM authentication process is complete. If you configured DKIM authentication for the domain by providing your own public-private key pair, then this object contains the selector that's associated with your public key. Regardless of the DKIM authentication method you use, Amazon SES searches for the appropriate records in the DNS configuration of the domain for up to 72 hours.<br/>DkimStatus:  The DKIM authentication status of the identity. Amazon SES determines the authentication status by searching for specific records in the DNS configuration for your domain. If you used <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/easy-dkim.html">Easy DKIM</a> to set up DKIM authentication, Amazon SES tries to find three unique CNAME records in the DNS configuration for your domain. If you provided a public key to perform DKIM authentication, Amazon SES tries to find a TXT record that uses the selector that you specified. The value of the TXT record must be a public key that's paired with the private key that you specified in the process of creating the identity. The status can be one of the following: <ul> <li>  <code>PENDING</code> – The verification process was initiated, but Amazon SES hasn't yet detected the DKIM records in the DNS configuration for the domain. </li> <li>  <code>SUCCESS</code> – The verification process completed successfully. </li> <li>  <code>FAILED</code> – The verification process failed. This typically occurs when Amazon SES fails to find the DKIM records in the DNS configuration of the domain. </li> <li>  <code>TEMPORARY_FAILURE</code> – A temporary issue is preventing Amazon SES from determining the DKIM authentication status of the domain. </li> <li>  <code>NOT_STARTED</code> – The DKIM verification process hasn't been initiated for the domain. </li> </ul><br/>        """
        pass

    def put_email_identity_feedback_attributes(self, EmailIdentity: str, EmailForwardingEnabled: Enabled=None) -> PutEmailIdentityFeedbackAttributesResponse:
        r"""Used to enable or disable feedback forwarding for an identity. This setting determines what happens when an identity is used to send an email that results in a bounce or complaint event. If the value is <code>true</code>, you receive email notifications when bounce or complaint events occur. These notifications are sent to the address that you specified in the <code>Return-Path</code> header of the original email. You're required to have a method of tracking bounces and complaints. If you haven't set up another mechanism for receiving bounce or complaint notifications (for example, by setting up an event destination), you receive an email notification when these events occur (even if this setting is disabled).

        :param self:
        :param EmailForwardingEnabled:  Sets the feedback forwarding configuration for the identity. If the value is <code>true</code>, you receive email notifications when bounce or complaint events occur. These notifications are sent to the address that you specified in the <code>Return-Path</code> header of the original email. You're required to have a method of tracking bounces and complaints. If you haven't set up another mechanism for receiving bounce or complaint notifications (for example, by setting up an event destination), you receive an email notification when these events occur (even if this setting is disabled).<br/>EmailIdentity:  The email identity that you want to configure bounce and complaint feedback forwarding for.<br/>
        :return:         """
        pass

    def put_email_identity_mail_from_attributes(self, EmailIdentity: str, MailFromDomain: str=None, BehaviorOnMxFailure: str=None) -> PutEmailIdentityMailFromAttributesResponse:
        r"""Used to enable or disable the custom Mail-From domain configuration for an email identity.

        :param self:
        :param BehaviorOnMxFailure:  The action that you want to take if the required MX record isn't found when you send an email. When you set this value to <code>UseDefaultValue</code>, the mail is sent using <i>amazonses.com</i> as the MAIL FROM domain. When you set this value to <code>RejectMessage</code>, the Amazon SES API v2 returns a <code>MailFromDomainNotVerified</code> error, and doesn't attempt to deliver the email. These behaviors are taken when the custom MAIL FROM domain configuration is in the <code>Pending</code>, <code>Failed</code>, and <code>TemporaryFailure</code> states.<br/>MailFromDomain:   The custom MAIL FROM domain that you want the verified identity to use. The MAIL FROM domain must meet the following criteria: <ul> <li> It has to be a subdomain of the verified identity. </li> <li> It can't be used to receive email. </li> <li> It can't be used in a "From" address if the MAIL FROM domain is a destination for feedback forwarding emails. </li> </ul><br/>EmailIdentity:  The verified email identity that you want to set up the custom MAIL FROM domain for.<br/>
        :return:         """
        pass

    def put_suppressed_destination(self, Reason: str, EmailAddress: str) -> PutSuppressedDestinationResponse:
        r"""Adds an email address to the suppression list for your account.

        :param self:
        :param Reason:  The factors that should cause the email address to be added to the suppression list for your account.<br/>EmailAddress:  The email address that should be added to the suppression list for your account.<br/>
        :return:         """
        pass

    def send_bulk_email(self, BulkEmailEntries: List[BulkEmailEntry], DefaultContent: BulkEmailContent, FromEmailAddress: str=None, FromEmailAddressIdentityArn: str=None, ReplyToAddresses: List[EmailAddress]=None, FeedbackForwardingEmailAddress: str=None, FeedbackForwardingEmailAddressIdentityArn: str=None, DefaultEmailTags: List[MessageTag]=None, ConfigurationSetName: str=None) -> SendBulkEmailResponse:
        r"""Composes an email message to multiple destinations.

        :param self:
        :param ConfigurationSetName:  The name of the configuration set that you want to use when sending the email.<br/>BulkEmailEntries:  The list of bulk email entry objects.<br/>DefaultContent:  An object that contains the body of the message. You can specify a template message.:<br/>DefaultEmailTags:  A list of tags, in the form of name/value pairs, to apply to an email that you send using the <code>SendEmail</code> operation. Tags correspond to characteristics of the email that you define, so that you can publish email sending events.<br/>FeedbackForwardingEmailAddressIdentityArn:  This parameter is used only for sending authorization. It is the ARN of the identity that is associated with the sending authorization policy that permits you to use the email address specified in the <code>FeedbackForwardingEmailAddress</code> parameter. For example, if the owner of example.com (which has ARN arn:aws:ses:us-east-1:123456789012:identity/example.com) attaches a policy to it that authorizes you to use feedback@example.com, then you would specify the <code>FeedbackForwardingEmailAddressIdentityArn</code> to be arn:aws:ses:us-east-1:123456789012:identity/example.com, and the <code>FeedbackForwardingEmailAddress</code> to be feedback@example.com. For more information about sending authorization, see the <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization.html">Amazon SES Developer Guide</a>.<br/>FeedbackForwardingEmailAddress:  The address that you want bounce and complaint notifications to be sent to.<br/>ReplyToAddresses:  The "Reply-to" email addresses for the message. When the recipient replies to the message, each Reply-to address receives the reply.<br/>FromEmailAddressIdentityArn:  This parameter is used only for sending authorization. It is the ARN of the identity that is associated with the sending authorization policy that permits you to use the email address specified in the <code>FromEmailAddress</code> parameter. For example, if the owner of example.com (which has ARN arn:aws:ses:us-east-1:123456789012:identity/example.com) attaches a policy to it that authorizes you to use sender@example.com, then you would specify the <code>FromEmailAddressIdentityArn</code> to be arn:aws:ses:us-east-1:123456789012:identity/example.com, and the <code>FromEmailAddress</code> to be sender@example.com. For more information about sending authorization, see the <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization.html">Amazon SES Developer Guide</a>.<br/>FromEmailAddress:  The email address that you want to use as the "From" address for the email. The address that you specify has to be verified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Template</i> The template to use for the bulk email message.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Template</b>: The template to use for the bulk email message.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TemplateData</i> An object that defines the values to use for message variables in the template. This object is a set of key-value pairs. Each key defines a message variable in the template. The corresponding value defines the value to use for that variable.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TemplateArn</i> The Amazon Resource Name (ARN) of the template.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TemplateName</i> The name of the template. You will refer to this name when you send email using the <code>SendTemplatedEmail</code> or <code>SendBulkTemplatedEmail</code> operations. <br/>
        :return: BulkEmailEntryResults:  A list of <code>BulkMailEntry</code> objects.<br/>        """
        pass

    def send_custom_verification_email(self, TemplateName: str, EmailAddress: str, ConfigurationSetName: str=None) -> SendCustomVerificationEmailResponse:
        r"""Adds an email address to the list of identities for your Amazon SES account in the current AWS Region and attempts to verify it. As a result of executing this operation, a customized verification email is sent to the specified address. To use this operation, you must first create a custom verification email template. For more information about creating and using custom verification email templates, see <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-email-verify-address-custom.html">Using Custom Verification Email Templates</a> in the <i>Amazon SES Developer Guide</i>. You can execute this operation no more than once per second.

        :param self:
        :param ConfigurationSetName:  Name of a configuration set to use when sending the verification email.<br/>TemplateName:  The name of the custom verification email template to use when sending the verification email.<br/>EmailAddress:  The email address to verify.<br/>
        :return: MessageId:  The unique message identifier returned from the <code>SendCustomVerificationEmail</code> operation.<br/>        """
        pass

    def send_email(self, Content: EmailContent, FromEmailAddress: str=None, FromEmailAddressIdentityArn: str=None, Destination: Destination=None, ReplyToAddresses: List[EmailAddress]=None, FeedbackForwardingEmailAddress: str=None, FeedbackForwardingEmailAddressIdentityArn: str=None, EmailTags: List[MessageTag]=None, ConfigurationSetName: str=None, ListManagementOptions: ListManagementOptions=None) -> SendEmailResponse:
        r"""Sends an email message. You can use the Amazon SES API v2 to send two types of messages: <ul> <li>  <b>Simple</b> – A standard email message. When you create this type of message, you specify the sender, the recipient, and the message body, and Amazon SES assembles the message for you. </li> <li>  <b>Raw</b> – A raw, MIME-formatted email message. When you send this type of email, you have to specify all of the message headers, as well as the message body. You can use this message type to send messages that contain attachments. The message that you specify has to be a valid MIME message. </li> <li>  <b>Templated</b> – A message that contains personalization tags. When you send this type of email, Amazon SES API v2 automatically replaces the tags with values that you specify. </li> </ul>

        :param self:
        :param ListManagementOptions:  An object used to specify a list or topic to which an email belongs, which will be used when a contact chooses to unsubscribe.:<br/>ConfigurationSetName:  The name of the configuration set that you want to use when sending the email.<br/>EmailTags:  A list of tags, in the form of name/value pairs, to apply to an email that you send using the <code>SendEmail</code> operation. Tags correspond to characteristics of the email that you define, so that you can publish email sending events. <br/>Content:  An object that contains the body of the message. You can send either a Simple message Raw message or a template Message.:<br/>FeedbackForwardingEmailAddressIdentityArn:  This parameter is used only for sending authorization. It is the ARN of the identity that is associated with the sending authorization policy that permits you to use the email address specified in the <code>FeedbackForwardingEmailAddress</code> parameter. For example, if the owner of example.com (which has ARN arn:aws:ses:us-east-1:123456789012:identity/example.com) attaches a policy to it that authorizes you to use feedback@example.com, then you would specify the <code>FeedbackForwardingEmailAddressIdentityArn</code> to be arn:aws:ses:us-east-1:123456789012:identity/example.com, and the <code>FeedbackForwardingEmailAddress</code> to be feedback@example.com. For more information about sending authorization, see the <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization.html">Amazon SES Developer Guide</a>.<br/>FeedbackForwardingEmailAddress:  The address that you want bounce and complaint notifications to be sent to.<br/>ReplyToAddresses:  The "Reply-to" email addresses for the message. When the recipient replies to the message, each Reply-to address receives the reply.<br/>Destination:  An object that contains the recipients of the email message.:<br/>FromEmailAddressIdentityArn:  This parameter is used only for sending authorization. It is the ARN of the identity that is associated with the sending authorization policy that permits you to use the email address specified in the <code>FromEmailAddress</code> parameter. For example, if the owner of example.com (which has ARN arn:aws:ses:us-east-1:123456789012:identity/example.com) attaches a policy to it that authorizes you to use sender@example.com, then you would specify the <code>FromEmailAddressIdentityArn</code> to be arn:aws:ses:us-east-1:123456789012:identity/example.com, and the <code>FromEmailAddress</code> to be sender@example.com. For more information about sending authorization, see the <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization.html">Amazon SES Developer Guide</a>. For Raw emails, the <code>FromEmailAddressIdentityArn</code> value overrides the X-SES-SOURCE-ARN and X-SES-FROM-ARN headers specified in raw email message content.<br/>FromEmailAddress:  The email address that you want to use as the "From" address for the email. The address that you specify has to be verified. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BccAddresses</i> An array that contains the email addresses of the "BCC" (blind carbon copy) recipients for the email.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CcAddresses</i> An array that contains the email addresses of the "CC" (carbon copy) recipients for the email.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ToAddresses</i> An array that contains the email addresses of the "To" recipients for the email.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Template</i> The template to use for the email message.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Template</b>: The template to use for the email message.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Raw</i> The raw email message. The message has to meet the following criteria: <ul> <li> The message has to contain a header and a body, separated by one blank line. </li> <li> All of the required header fields must be present in the message. </li> <li> Each part of a multipart MIME message must be formatted properly. </li> <li> If you include attachments, they must be in a file format that the Amazon SES API v2 supports.  </li> <li> The entire message must be Base64 encoded. </li> <li> If any of the MIME parts in your message contain content that is outside of the 7-bit ASCII character range, you should encode that content to ensure that recipients' email clients render the message properly. </li> <li> The length of any single line of text in the message can't exceed 1,000 characters. This restriction is defined in <a href="https://tools.ietf.org/html/rfc5321">RFC 5321</a>. </li> </ul>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Raw</b>: The raw email message. The message has to meet the following criteria: <ul> <li> The message has to contain a header and a body, separated by one blank line. </li> <li> All of the required header fields must be present in the message. </li> <li> Each part of a multipart MIME message must be formatted properly. </li> <li> If you include attachments, they must be in a file format that the Amazon SES API v2 supports.  </li> <li> The entire message must be Base64 encoded. </li> <li> If any of the MIME parts in your message contain content that is outside of the 7-bit ASCII character range, you should encode that content to ensure that recipients' email clients render the message properly. </li> <li> The length of any single line of text in the message can't exceed 1,000 characters. This restriction is defined in <a href="https://tools.ietf.org/html/rfc5321">RFC 5321</a>. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Simple</i> The simple email message. The message consists of a subject and a message body.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Simple</b>: The simple email message. The message consists of a subject and a message body.<br/>The subject line of the email. The subject line can only contain 7-bit ASCII characters. However, you can specify non-ASCII characters in the subject line by using encoded-word syntax, as described in <a href="https://tools.ietf.org/html/rfc2047">RFC 2047</a>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Subject</b>: The subject line of the email. The subject line can only contain 7-bit ASCII characters. However, you can specify non-ASCII characters in the subject line by using encoded-word syntax, as described in <a href="https://tools.ietf.org/html/rfc2047">RFC 2047</a>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Data</i> The raw email message. The message has to meet the following criteria: <ul> <li> The message has to contain a header and a body, separated by one blank line. </li> <li> All of the required header fields must be present in the message. </li> <li> Each part of a multipart MIME message must be formatted properly. </li> <li> Attachments must be in a file format that the Amazon SES supports. </li> <li> The entire message must be Base64 encoded. </li> <li> If any of the MIME parts in your message contain content that is outside of the 7-bit ASCII character range, you should encode that content to ensure that recipients' email clients render the message properly. </li> <li> The length of any single line of text in the message can't exceed 1,000 characters. This restriction is defined in <a href="https://tools.ietf.org/html/rfc5321">RFC 5321</a>. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TemplateData</i> An object that defines the values to use for message variables in the template. This object is a set of key-value pairs. Each key defines a message variable in the template. The corresponding value defines the value to use for that variable.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TemplateArn</i> The Amazon Resource Name (ARN) of the template.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TemplateName</i> The name of the template. You will refer to this name when you send email using the <code>SendTemplatedEmail</code> or <code>SendBulkTemplatedEmail</code> operations. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TopicName</i> The name of the topic.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ContactListName</i> The name of the contact list.<br/>
        :return: MessageId:  A unique identifier for the message that is generated when the message is accepted. <note> It's possible for Amazon SES to accept a message without sending it. This can happen when the message that you're trying to send has an attachment contains a virus, or when you send a templated email that contains invalid personalization content, for example. </note><br/>        """
        pass

    def tag_resource(self, Tags: List[Tag], ResourceArn: str) -> TagResourceResponse:
        r"""Add one or more tags (keys and values) to a specified resource. A <i>tag</i> is a label that you optionally define and associate with a resource. Tags can help you categorize and manage resources in different ways, such as by purpose, owner, environment, or other criteria. A resource can have as many as 50 tags. Each tag consists of a required <i>tag key</i> and an associated <i>tag value</i>, both of which you define. A tag key is a general label that acts as a category for more specific tag values. A tag value acts as a descriptor within a tag key.

        :param self:
        :param Tags:  A list of the tags that you want to add to the resource. A tag consists of a required tag key (<code>Key</code>) and an associated tag value (<code>Value</code>). The maximum length of a tag key is 128 characters. The maximum length of a tag value is 256 characters.<br/>ResourceArn:  The Amazon Resource Name (ARN) of the resource that you want to add one or more tags to.<br/>
        :return:         """
        pass

    def test_render_email_template(self, TemplateData: str, TemplateName: str) -> TestRenderEmailTemplateResponse:
        r"""Creates a preview of the MIME content of an email when provided with a template and a set of replacement data. You can execute this operation no more than once per second.

        :param self:
        :param TemplateData:  A list of replacement values to apply to the template. This parameter is a JSON object, typically consisting of key-value pairs in which the keys correspond to replacement tags in the email template.<br/>TemplateName:  The name of the template that you want to render.<br/>
        :return: RenderedTemplate:  The complete MIME message rendered by applying the data in the <code>TemplateData</code> parameter to the template specified in the TemplateName parameter.<br/>        """
        pass

    def untag_resource(self, TagKeys: List[TagKey], ResourceArn: str) -> UntagResourceResponse:
        r"""Remove one or more tags (keys and values) from a specified resource.

        :param self:
        :param TagKeys:  The tags (tag keys) that you want to remove from the resource. When you specify a tag key, the action removes both that key and its associated tag value. To remove more than one tag from the resource, append the <code>TagKeys</code> parameter and argument for each additional tag to remove, separated by an ampersand. For example: <code>/v2/email/tags?ResourceArn=ResourceArn&amp;TagKeys=Key1&amp;TagKeys=Key2</code> <br/>ResourceArn:  The Amazon Resource Name (ARN) of the resource that you want to remove one or more tags from.<br/>
        :return:         """
        pass

    def update_configuration_set_event_destination(self, EventDestination: EventDestinationDefinition, EventDestinationName: str, ConfigurationSetName: str) -> UpdateConfigurationSetEventDestinationResponse:
        r"""Update the configuration of an event destination for a configuration set.  <i>Events</i> include message sends, deliveries, opens, clicks, bounces, and complaints. <i>Event destinations</i> are places that you can send information about these events to. For example, you can send event data to Amazon SNS to receive notifications when you receive bounces or complaints, or you can use Amazon Kinesis Data Firehose to stream data to Amazon S3 for long-term storage.

        :param self:
        :param EventDestination:  An object that defines the event destination.:<br/>EventDestinationName:  The name of the event destination that you want to modify.<br/>ConfigurationSetName:  The name of the configuration set that contains the event destination that you want to modify.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PinpointDestination</i> An object that defines an Amazon Pinpoint project destination for email events. You can send email event data to a Amazon Pinpoint project to view metrics using the Transactional Messaging dashboards that are built in to Amazon Pinpoint. For more information, see <a href="https://docs.aws.amazon.com/pinpoint/latest/userguide/analytics-transactional-messages.html">Transactional Messaging Charts</a> in the <i>Amazon Pinpoint User Guide</i>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PinpointDestination</b>: An object that defines an Amazon Pinpoint project destination for email events. You can send email event data to a Amazon Pinpoint project to view metrics using the Transactional Messaging dashboards that are built in to Amazon Pinpoint. For more information, see <a href="https://docs.aws.amazon.com/pinpoint/latest/userguide/analytics-transactional-messages.html">Transactional Messaging Charts</a> in the <i>Amazon Pinpoint User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnsDestination</i> An object that defines an Amazon SNS destination for email events. You can use Amazon SNS to send notification when certain email events occur.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SnsDestination</b>: An object that defines an Amazon SNS destination for email events. You can use Amazon SNS to send notification when certain email events occur.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudWatchDestination</i> An object that defines an Amazon CloudWatch destination for email events. You can use Amazon CloudWatch to monitor and gain insights on your email sending metrics.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CloudWatchDestination</b>: An object that defines an Amazon CloudWatch destination for email events. You can use Amazon CloudWatch to monitor and gain insights on your email sending metrics.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KinesisFirehoseDestination</i> An object that defines an Amazon Kinesis Data Firehose destination for email events. You can use Amazon Kinesis Data Firehose to stream data to other services, such as Amazon S3 and Amazon Redshift.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>KinesisFirehoseDestination</b>: An object that defines an Amazon Kinesis Data Firehose destination for email events. You can use Amazon Kinesis Data Firehose to stream data to other services, such as Amazon S3 and Amazon Redshift.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MatchingEventTypes</i> An array that specifies which events the Amazon SES API v2 should send to the destinations in this <code>EventDestinationDefinition</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> If <code>true</code>, the event destination is enabled. When the event destination is enabled, the specified event types are sent to the destinations in this <code>EventDestinationDefinition</code>. If <code>false</code>, the event destination is disabled. When the event destination is disabled, events aren't sent to the specified destinations.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DeliveryStreamArn</i> The Amazon Resource Name (ARN) of the Amazon Kinesis Data Firehose stream that the Amazon SES API v2 sends email events to.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IamRoleArn</i> The Amazon Resource Name (ARN) of the IAM role that the Amazon SES API v2 uses to send email events to the Amazon Kinesis Data Firehose stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DimensionConfigurations</i> An array of objects that define the dimensions to use when you send email events to Amazon CloudWatch.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TopicArn</i> The Amazon Resource Name (ARN) of the Amazon SNS topic that you want to publish email events to. For more information about Amazon SNS topics, see the <a href="https://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html">Amazon SNS Developer Guide</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplicationArn</i> The Amazon Resource Name (ARN) of the Amazon Pinpoint project that you want to send email events to.<br/>
        :return:         """
        pass

    def update_contact(self, EmailAddress: str, ContactListName: str, TopicPreferences: List[TopicPreference]=None, UnsubscribeAll: UnsubscribeAll=None, AttributesData: str=None) -> UpdateContactResponse:
        r"""Updates a contact's preferences for a list. It is not necessary to specify all existing topic preferences in the TopicPreferences object, just the ones that need updating.

        :param self:
        :param AttributesData:  The attribute data attached to a contact.<br/>UnsubscribeAll:  A boolean value status noting if the contact is unsubscribed from all contact list topics.<br/>TopicPreferences:  The contact's preference for being opted-in to or opted-out of a topic.<br/>EmailAddress:  The contact's email addres.<br/>ContactListName:  The name of the contact list.<br/>
        :return:         """
        pass

    def update_contact_list(self, ContactListName: str, Topics: List[Topic]=None, Description: str=None) -> UpdateContactListResponse:
        r"""Updates contact list metadata. This operation does a complete replacement.

        :param self:
        :param Description:  A description of what the contact list is about.<br/>Topics:  An interest group, theme, or label within a list. A contact list can have multiple topics.<br/>ContactListName:  The name of the contact list.<br/>
        :return:         """
        pass

    def update_custom_verification_email_template(self, FailureRedirectionURL: str, SuccessRedirectionURL: str, TemplateContent: str, TemplateSubject: str, FromEmailAddress: str, TemplateName: str) -> UpdateCustomVerificationEmailTemplateResponse:
        r"""Updates an existing custom verification email template. For more information about custom verification email templates, see <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-email-verify-address-custom.html">Using Custom Verification Email Templates</a> in the <i>Amazon SES Developer Guide</i>. You can execute this operation no more than once per second.

        :param self:
        :param FailureRedirectionURL:  The URL that the recipient of the verification email is sent to if his or her address is not successfully verified.<br/>SuccessRedirectionURL:  The URL that the recipient of the verification email is sent to if his or her address is successfully verified.<br/>TemplateContent:  The content of the custom verification email. The total size of the email must be less than 10 MB. The message body may contain HTML, with some limitations. For more information, see <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-email-verify-address-custom.html#custom-verification-emails-faq">Custom Verification Email Frequently Asked Questions</a> in the <i>Amazon SES Developer Guide</i>.<br/>TemplateSubject:  The subject line of the custom verification email.<br/>FromEmailAddress:  The email address that the custom verification email is sent from.<br/>TemplateName:  The name of the custom verification email template that you want to update.<br/>
        :return:         """
        pass

    def update_email_identity_policy(self, Policy: str, PolicyName: str, EmailIdentity: str) -> UpdateEmailIdentityPolicyResponse:
        r"""Updates the specified sending authorization policy for the given identity (an email address or a domain). This API returns successfully even if a policy with the specified name does not exist. <note> This API is for the identity owner only. If you have not verified the identity, this API will return an error. </note> Sending authorization is a feature that enables an identity owner to authorize other senders to use its identities. For information about using sending authorization, see the <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization.html">Amazon SES Developer Guide</a>. You can execute this operation no more than once per second.

        :param self:
        :param Policy:  The text of the policy in JSON format. The policy cannot exceed 4 KB.  For information about the syntax of sending authorization policies, see the <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization-policies.html">Amazon SES Developer Guide</a>.<br/>PolicyName:  The name of the policy. The policy name cannot exceed 64 characters and can only include alphanumeric characters, dashes, and underscores.<br/>EmailIdentity:  The email identity for which you want to update policy.<br/>
        :return:         """
        pass

    def update_email_template(self, TemplateContent: EmailTemplateContent, TemplateName: str) -> UpdateEmailTemplateResponse:
        r"""Updates an email template. Email templates enable you to send personalized email to one or more destinations in a single API operation. For more information, see the <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-personalized-email-api.html">Amazon SES Developer Guide</a>. You can execute this operation no more than once per second.

        :param self:
        :param TemplateContent:  The content of the email template, composed of a subject line, an HTML part, and a text-only part.:<br/>TemplateName:  The name of the template you want to update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Html</i> The HTML body of the email.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Text</i> The email body that will be visible to recipients whose email clients do not display HTML.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Subject</i> The subject line of the email.<br/>
        :return:         """
        pass





class Shield(BaseClient):
    r"""<fullname>AWS Shield Advanced</fullname> This is the <i>AWS Shield Advanced API Reference</i>. This guide is for developers who need detailed information about the AWS Shield Advanced API actions, data types, and errors. For detailed information about AWS WAF and AWS Shield Advanced features and an overview of how to use the AWS WAF and AWS Shield Advanced APIs, see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/">AWS WAF and AWS Shield Developer Guide</a>."""


    class ListProtectionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_protections` for valid parameters"""
            pass
    class ListAttacksPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_attacks` for valid parameters"""
            pass


    class AssociateDRTLogBucketRequest(Mapping):
        pass
    
    class AssociateDRTLogBucketResponse(Mapping):
        pass
    
    class AssociateDRTRoleRequest(Mapping):
        pass
    
    class AssociateDRTRoleResponse(Mapping):
        pass
    
    class AssociateHealthCheckRequest(Mapping):
        pass
    
    class AssociateHealthCheckResponse(Mapping):
        pass
    
    class AssociateProactiveEngagementDetailsRequest(Mapping):
        pass
    
    class AssociateProactiveEngagementDetailsResponse(Mapping):
        pass
    
    class EmergencyContact(Mapping):
        pass
    
    class CreateProtectionRequest(Mapping):
        pass
    
    class CreateProtectionResponse(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class CreateProtectionGroupRequest(Mapping):
        pass
    
    class CreateProtectionGroupResponse(Mapping):
        pass
    
    class ResourceArn(object):
        pass
    
    class CreateSubscriptionRequest(Mapping):
        pass
    
    class CreateSubscriptionResponse(Mapping):
        pass
    
    class DeleteProtectionRequest(Mapping):
        pass
    
    class DeleteProtectionResponse(Mapping):
        pass
    
    class DeleteProtectionGroupRequest(Mapping):
        pass
    
    class DeleteProtectionGroupResponse(Mapping):
        pass
    
    class DeleteSubscriptionRequest(Mapping):
        pass
    
    class DeleteSubscriptionResponse(Mapping):
        pass
    
    class DescribeAttackRequest(Mapping):
        pass
    
    class DescribeAttackResponse(Mapping):
        pass
    
    class DescribeAttackStatisticsRequest(Mapping):
        pass
    
    class DescribeAttackStatisticsResponse(Mapping):
        pass
    
    class DescribeDRTAccessRequest(Mapping):
        pass
    
    class DescribeDRTAccessResponse(Mapping):
        pass
    
    class DescribeEmergencyContactSettingsRequest(Mapping):
        pass
    
    class DescribeEmergencyContactSettingsResponse(Mapping):
        pass
    
    class DescribeProtectionRequest(Mapping):
        pass
    
    class DescribeProtectionResponse(Mapping):
        pass
    
    class DescribeProtectionGroupRequest(Mapping):
        pass
    
    class DescribeProtectionGroupResponse(Mapping):
        pass
    
    class DescribeSubscriptionRequest(Mapping):
        pass
    
    class DescribeSubscriptionResponse(Mapping):
        pass
    
    class DisableProactiveEngagementRequest(Mapping):
        pass
    
    class DisableProactiveEngagementResponse(Mapping):
        pass
    
    class DisassociateDRTLogBucketRequest(Mapping):
        pass
    
    class DisassociateDRTLogBucketResponse(Mapping):
        pass
    
    class DisassociateDRTRoleRequest(Mapping):
        pass
    
    class DisassociateDRTRoleResponse(Mapping):
        pass
    
    class DisassociateHealthCheckRequest(Mapping):
        pass
    
    class DisassociateHealthCheckResponse(Mapping):
        pass
    
    class EnableProactiveEngagementRequest(Mapping):
        pass
    
    class EnableProactiveEngagementResponse(Mapping):
        pass
    
    class GetSubscriptionStateRequest(Mapping):
        pass
    
    class GetSubscriptionStateResponse(Mapping):
        pass
    
    class ListAttacksRequest(Mapping):
        pass
    
    class ListAttacksResponse(Mapping):
        pass
    
    class TimeRange(Mapping):
        pass
    
    class ListProtectionGroupsRequest(Mapping):
        pass
    
    class ListProtectionGroupsResponse(Mapping):
        pass
    
    class ListProtectionsRequest(Mapping):
        pass
    
    class ListProtectionsResponse(Mapping):
        pass
    
    class ListResourcesInProtectionGroupRequest(Mapping):
        pass
    
    class ListResourcesInProtectionGroupResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateEmergencyContactSettingsRequest(Mapping):
        pass
    
    class UpdateEmergencyContactSettingsResponse(Mapping):
        pass
    
    class UpdateProtectionGroupRequest(Mapping):
        pass
    
    class UpdateProtectionGroupResponse(Mapping):
        pass
    
    class UpdateSubscriptionRequest(Mapping):
        pass
    
    class UpdateSubscriptionResponse(Mapping):
        pass
    
    def associate_drt_log_bucket(self, LogBucket: str) -> AssociateDRTLogBucketResponse:
        r"""Authorizes the DDoS Response Team (DRT) to access the specified Amazon S3 bucket containing your AWS WAF logs. You can associate up to 10 Amazon S3 buckets with your subscription. To use the services of the DRT and make an <code>AssociateDRTLogBucket</code> request, you must be subscribed to the <a href="https://aws.amazon.com/premiumsupport/business-support/">Business Support plan</a> or the <a href="https://aws.amazon.com/premiumsupport/enterprise-support/">Enterprise Support plan</a>.

        :param self:
        :param LogBucket:  The Amazon S3 bucket that contains your AWS WAF logs.<br/>
        :return:         """
        pass

    def associate_drt_role(self, RoleArn: str) -> AssociateDRTRoleResponse:
        r"""Authorizes the DDoS Response Team (DRT), using the specified role, to access your AWS account to assist with DDoS attack mitigation during potential attacks. This enables the DRT to inspect your AWS WAF configuration and create or update AWS WAF rules and web ACLs. You can associate only one <code>RoleArn</code> with your subscription. If you submit an <code>AssociateDRTRole</code> request for an account that already has an associated role, the new <code>RoleArn</code> will replace the existing <code>RoleArn</code>.  Prior to making the <code>AssociateDRTRole</code> request, you must attach the <a href="https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/service-role/AWSShieldDRTAccessPolicy">AWSShieldDRTAccessPolicy</a> managed policy to the role you will specify in the request. For more information see <a href=" https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html">Attaching and Detaching IAM Policies</a>. The role must also trust the service principal <code> drt.shield.amazonaws.com</code>. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html">IAM JSON Policy Elements: Principal</a>. The DRT will have access only to your AWS WAF and Shield resources. By submitting this request, you authorize the DRT to inspect your AWS WAF and Shield configuration and create and update AWS WAF rules and web ACLs on your behalf. The DRT takes these actions only if explicitly authorized by you. You must have the <code>iam:PassRole</code> permission to make an <code>AssociateDRTRole</code> request. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html">Granting a User Permissions to Pass a Role to an AWS Service</a>.  To use the services of the DRT and make an <code>AssociateDRTRole</code> request, you must be subscribed to the <a href="https://aws.amazon.com/premiumsupport/business-support/">Business Support plan</a> or the <a href="https://aws.amazon.com/premiumsupport/enterprise-support/">Enterprise Support plan</a>.

        :param self:
        :param RoleArn:  The Amazon Resource Name (ARN) of the role the DRT will use to access your AWS account. Prior to making the <code>AssociateDRTRole</code> request, you must attach the <a href="https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/service-role/AWSShieldDRTAccessPolicy">AWSShieldDRTAccessPolicy</a> managed policy to this role. For more information see <a href=" https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html">Attaching and Detaching IAM Policies</a>.<br/>
        :return:         """
        pass

    def associate_health_check(self, HealthCheckArn: str, ProtectionId: str) -> AssociateHealthCheckResponse:
        r"""Adds health-based detection to the Shield Advanced protection for a resource. Shield Advanced health-based detection uses the health of your AWS resource to improve responsiveness and accuracy in attack detection and mitigation.  You define the health check in Route 53 and then associate it with your Shield Advanced protection. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/ddos-overview.html#ddos-advanced-health-check-option">Shield Advanced Health-Based Detection</a> in the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/">AWS WAF and AWS Shield Developer Guide</a>. 

        :param self:
        :param HealthCheckArn:  The Amazon Resource Name (ARN) of the health check to associate with the protection.<br/>ProtectionId:  The unique identifier (ID) for the <a>Protection</a> object to add the health check association to. <br/>
        :return:         """
        pass

    def associate_proactive_engagement_details(self, EmergencyContactList: List[EmergencyContact]) -> AssociateProactiveEngagementDetailsResponse:
        r"""Initializes proactive engagement and sets the list of contacts for the DDoS Response Team (DRT) to use. You must provide at least one phone number in the emergency contact list.  After you have initialized proactive engagement using this call, to disable or enable proactive engagement, use the calls <code>DisableProactiveEngagement</code> and <code>EnableProactiveEngagement</code>.  <note> This call defines the list of email addresses and phone numbers that the DDoS Response Team (DRT) can use to contact you for escalations to the DRT and to initiate proactive customer support. The contacts that you provide in the request replace any contacts that were already defined. If you already have contacts defined and want to use them, retrieve the list using <code>DescribeEmergencyContactSettings</code> and then provide it to this call.  </note>

        :param self:
        :param EmergencyContactList:  A list of email addresses and phone numbers that the DDoS Response Team (DRT) can use to contact you for escalations to the DRT and to initiate proactive customer support.  To enable proactive engagement, the contact list must include at least one phone number. <note> The contacts that you provide here replace any contacts that were already defined. If you already have contacts defined and want to use them, retrieve the list using <code>DescribeEmergencyContactSettings</code> and then provide it here.  </note><br/>
        :return:         """
        pass

    def create_protection(self, ResourceArn: str, Name: str, Tags: List[Tag]=None) -> CreateProtectionResponse:
        r"""Enables AWS Shield Advanced for a specific AWS resource. The resource can be an Amazon CloudFront distribution, Elastic Load Balancing load balancer, AWS Global Accelerator accelerator, Elastic IP Address, or an Amazon Route 53 hosted zone. You can add protection to only a single resource with each CreateProtection request. If you want to add protection to multiple resources at once, use the <a href="https://console.aws.amazon.com/waf/">AWS WAF console</a>. For more information see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/getting-started-ddos.html">Getting Started with AWS Shield Advanced</a> and <a href="https://docs.aws.amazon.com/waf/latest/developerguide/configure-new-protection.html">Add AWS Shield Advanced Protection to more AWS Resources</a>.

        :param self:
        :param Tags:  One or more tag key-value pairs for the <a>Protection</a> object that is created.<br/>ResourceArn:  The ARN (Amazon Resource Name) of the resource to be protected. The ARN should be in one of the following formats: <ul> <li> For an Application Load Balancer: <code>arn:aws:elasticloadbalancing:<i>region</i>:<i>account-id</i>:loadbalancer/app/<i>load-balancer-name</i>/<i>load-balancer-id</i> </code>  </li> <li> For an Elastic Load Balancer (Classic Load Balancer): <code>arn:aws:elasticloadbalancing:<i>region</i>:<i>account-id</i>:loadbalancer/<i>load-balancer-name</i> </code>  </li> <li> For an AWS CloudFront distribution: <code>arn:aws:cloudfront::<i>account-id</i>:distribution/<i>distribution-id</i> </code>  </li> <li> For an AWS Global Accelerator accelerator: <code>arn:aws:globalaccelerator::<i>account-id</i>:accelerator/<i>accelerator-id</i> </code>  </li> <li> For Amazon Route 53: <code>arn:aws:route53:::hostedzone/<i>hosted-zone-id</i> </code>  </li> <li> For an Elastic IP address: <code>arn:aws:ec2:<i>region</i>:<i>account-id</i>:eip-allocation/<i>allocation-id</i> </code>  </li> </ul><br/>Name:  Friendly name for the <code>Protection</code> you are creating.<br/>
        :return: ProtectionId:  The unique identifier (ID) for the <a>Protection</a> object that is created.<br/>        """
        pass

    def create_protection_group(self, Pattern: str, Aggregation: str, ProtectionGroupId: str, ResourceType: str=None, Members: List[ResourceArn]=None, Tags: List[Tag]=None) -> CreateProtectionGroupResponse:
        r"""Creates a grouping of protected resources so they can be handled as a collective. This resource grouping improves the accuracy of detection and reduces false positives. 

        :param self:
        :param Tags:  One or more tag key-value pairs for the protection group.<br/>Members:  The Amazon Resource Names (ARNs) of the resources to include in the protection group. You must set this when you set <code>Pattern</code> to <code>ARBITRARY</code> and you must not set it for any other <code>Pattern</code> setting. <br/>ResourceType:  The resource type to include in the protection group. All protected resources of this type are included in the protection group. Newly protected resources of this type are automatically added to the group. You must set this when you set <code>Pattern</code> to <code>BY_RESOURCE_TYPE</code> and you must not set it for any other <code>Pattern</code> setting. <br/>Pattern:  The criteria to use to choose the protected resources for inclusion in the group. You can include all resources that have protections, provide a list of resource Amazon Resource Names (ARNs), or include all resources of a specified resource type. <br/>Aggregation:  Defines how AWS Shield combines resource data for the group in order to detect, mitigate, and report events. <ul> <li> Sum - Use the total traffic across the group. This is a good choice for most cases. Examples include Elastic IP addresses for EC2 instances that scale manually or automatically. </li> <li> Mean - Use the average of the traffic across the group. This is a good choice for resources that share traffic uniformly. Examples include accelerators and load balancers. </li> <li> Max - Use the highest traffic from each resource. This is useful for resources that don't share traffic and for resources that share that traffic in a non-uniform way. Examples include CloudFront distributions and origin resources for CloudFront distributions. </li> </ul><br/>ProtectionGroupId:  The name of the protection group. You use this to identify the protection group in lists and to manage the protection group, for example to update, delete, or describe it. <br/>
        :return:         """
        pass

    def create_subscription(self) -> CreateSubscriptionResponse:
        r"""Activates AWS Shield Advanced for an account. When you initally create a subscription, your subscription is set to be automatically renewed at the end of the existing subscription period. You can change this by submitting an <code>UpdateSubscription</code> request. 

        :param self:
        :param 
        :return:         """
        pass

    def delete_protection(self, ProtectionId: str) -> DeleteProtectionResponse:
        r"""Deletes an AWS Shield Advanced <a>Protection</a>.

        :param self:
        :param ProtectionId:  The unique identifier (ID) for the <a>Protection</a> object to be deleted.<br/>
        :return:         """
        pass

    def delete_protection_group(self, ProtectionGroupId: str) -> DeleteProtectionGroupResponse:
        r"""Removes the specified protection group.

        :param self:
        :param ProtectionGroupId:  The name of the protection group. You use this to identify the protection group in lists and to manage the protection group, for example to update, delete, or describe it. <br/>
        :return:         """
        pass

    def delete_subscription(self) -> DeleteSubscriptionResponse:
        r"""Removes AWS Shield Advanced from an account. AWS Shield Advanced requires a 1-year subscription commitment. You cannot delete a subscription prior to the completion of that commitment. 

        :param self:
        :param 
        :return:         """
        pass

    def describe_attack(self, AttackId: str) -> DescribeAttackResponse:
        r"""Describes the details of a DDoS attack. 

        :param self:
        :param AttackId:  The unique identifier (ID) for the attack that to be described.<br/>
        :return: Attack:  The attack that is described.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Mitigations</i> List of mitigation actions taken for the attack.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AttackProperties</i> The array of <a>AttackProperty</a> objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AttackCounters</i> List of counters that describe the attack for the specified time period.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndTime</i> The time the attack ended, in Unix time in seconds. For more information see <a href="http://docs.aws.amazon.com/cli/latest/userguide/cli-using-param.html#parameter-types">timestamp</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StartTime</i> The time the attack started, in Unix time in seconds. For more information see <a href="http://docs.aws.amazon.com/cli/latest/userguide/cli-using-param.html#parameter-types">timestamp</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubResources</i> If applicable, additional detail about the resource being attacked, for example, IP address or URL.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceArn</i> The ARN (Amazon Resource Name) of the resource that was attacked.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AttackId</i> The unique identifier (ID) of the attack.<br/>        """
        pass

    def describe_attack_statistics(self) -> DescribeAttackStatisticsResponse:
        r"""Provides information about the number and type of attacks AWS Shield has detected in the last year for all resources that belong to your account, regardless of whether you've defined Shield protections for them. This operation is available to Shield customers as well as to Shield Advanced customers. The operation returns data for the time range of midnight UTC, one year ago, to midnight UTC, today. For example, if the current time is <code>2020-10-26 15:39:32 PDT</code>, equal to <code>2020-10-26 22:39:32 UTC</code>, then the time range for the attack data returned is from <code>2019-10-26 00:00:00 UTC</code> to <code>2020-10-26 00:00:00 UTC</code>.  The time range indicates the period covered by the attack statistics data items.

        :param self:
        :param 
        :return: DataItems:  The data that describes the attacks detected during the time period.<br/>TimeRange:  The time range. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ToExclusive</i> The end time, in Unix time in seconds. For more information see <a href="http://docs.aws.amazon.com/cli/latest/userguide/cli-using-param.html#parameter-types">timestamp</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FromInclusive</i> The start time, in Unix time in seconds. For more information see <a href="http://docs.aws.amazon.com/cli/latest/userguide/cli-using-param.html#parameter-types">timestamp</a>.<br/>        """
        pass

    def describe_drt_access(self) -> DescribeDRTAccessResponse:
        r"""Returns the current role and list of Amazon S3 log buckets used by the DDoS Response Team (DRT) to access your AWS account while assisting with attack mitigation.

        :param self:
        :param 
        :return: LogBucketList:  The list of Amazon S3 buckets accessed by the DRT.<br/>RoleArn:  The Amazon Resource Name (ARN) of the role the DRT used to access your AWS account.<br/>        """
        pass

    def describe_emergency_contact_settings(self) -> DescribeEmergencyContactSettingsResponse:
        r"""A list of email addresses and phone numbers that the DDoS Response Team (DRT) can use to contact you if you have proactive engagement enabled, for escalations to the DRT and to initiate proactive customer support.

        :param self:
        :param 
        :return: EmergencyContactList:  A list of email addresses and phone numbers that the DDoS Response Team (DRT) can use to contact you if you have proactive engagement enabled, for escalations to the DRT and to initiate proactive customer support.<br/>        """
        pass

    def describe_protection(self, ProtectionId: str=None, ResourceArn: str=None) -> DescribeProtectionResponse:
        r"""Lists the details of a <a>Protection</a> object.

        :param self:
        :param ResourceArn:  The ARN (Amazon Resource Name) of the AWS resource for the <a>Protection</a> object that is described. When submitting the <code>DescribeProtection</code> request you must provide either the <code>ResourceArn</code> or the <code>ProtectionID</code>, but not both.<br/>ProtectionId:  The unique identifier (ID) for the <a>Protection</a> object that is described. When submitting the <code>DescribeProtection</code> request you must provide either the <code>ResourceArn</code> or the <code>ProtectionID</code>, but not both.<br/>
        :return: Protection:  The <a>Protection</a> object that is described.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProtectionArn</i> The ARN (Amazon Resource Name) of the protection.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HealthCheckIds</i> The unique identifier (ID) for the Route 53 health check that's associated with the protection. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceArn</i> The ARN (Amazon Resource Name) of the AWS resource that is protected.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the protection. For example, <code>My CloudFront distributions</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The unique identifier (ID) of the protection.<br/>        """
        pass

    def describe_protection_group(self, ProtectionGroupId: str) -> DescribeProtectionGroupResponse:
        r"""Returns the specification for the specified protection group.

        :param self:
        :param ProtectionGroupId:  The name of the protection group. You use this to identify the protection group in lists and to manage the protection group, for example to update, delete, or describe it. <br/>
        :return: ProtectionGroup:  A grouping of protected resources that you and AWS Shield Advanced can monitor as a collective. This resource grouping improves the accuracy of detection and reduces false positives. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProtectionGroupArn</i> The ARN (Amazon Resource Name) of the protection group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Members</i> The Amazon Resource Names (ARNs) of the resources to include in the protection group. You must set this when you set <code>Pattern</code> to <code>ARBITRARY</code> and you must not set it for any other <code>Pattern</code> setting. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceType</i> The resource type to include in the protection group. All protected resources of this type are included in the protection group. You must set this when you set <code>Pattern</code> to <code>BY_RESOURCE_TYPE</code> and you must not set it for any other <code>Pattern</code> setting. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Pattern</i> The criteria to use to choose the protected resources for inclusion in the group. You can include all resources that have protections, provide a list of resource Amazon Resource Names (ARNs), or include all resources of a specified resource type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Aggregation</i> Defines how AWS Shield combines resource data for the group in order to detect, mitigate, and report events. <ul> <li> Sum - Use the total traffic across the group. This is a good choice for most cases. Examples include Elastic IP addresses for EC2 instances that scale manually or automatically. </li> <li> Mean - Use the average of the traffic across the group. This is a good choice for resources that share traffic uniformly. Examples include accelerators and load balancers. </li> <li> Max - Use the highest traffic from each resource. This is useful for resources that don't share traffic and for resources that share that traffic in a non-uniform way. Examples include CloudFront distributions and origin resources for CloudFront distributions. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProtectionGroupId</i> The name of the protection group. You use this to identify the protection group in lists and to manage the protection group, for example to update, delete, or describe it. <br/>        """
        pass

    def describe_subscription(self) -> DescribeSubscriptionResponse:
        r"""Provides details about the AWS Shield Advanced subscription for an account.

        :param self:
        :param 
        :return: Subscription:  The AWS Shield Advanced subscription details for an account.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubscriptionArn</i> The ARN (Amazon Resource Name) of the subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubscriptionLimits</i> Limits settings for your subscription. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SubscriptionLimits</b>: Limits settings for your subscription. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProactiveEngagementStatus</i> If <code>ENABLED</code>, the DDoS Response Team (DRT) will use email and phone to notify contacts about escalations to the DRT and to initiate proactive customer support. If <code>PENDING</code>, you have requested proactive engagement and the request is pending. The status changes to <code>ENABLED</code> when your request is fully processed. If <code>DISABLED</code>, the DRT will not proactively notify contacts about escalations or to initiate proactive customer support. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Limits</i> Specifies how many protections of a given type you can create.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoRenew</i> If <code>ENABLED</code>, the subscription will be automatically renewed at the end of the existing subscription period. When you initally create a subscription, <code>AutoRenew</code> is set to <code>ENABLED</code>. You can change this by submitting an <code>UpdateSubscription</code> request. If the <code>UpdateSubscription</code> request does not included a value for <code>AutoRenew</code>, the existing value for <code>AutoRenew</code> remains unchanged.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TimeCommitmentInSeconds</i> The length, in seconds, of the AWS Shield Advanced subscription for the account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndTime</i> The date and time your subscription will end.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StartTime</i> The start time of the subscription, in Unix time in seconds. For more information see <a href="http://docs.aws.amazon.com/cli/latest/userguide/cli-using-param.html#parameter-types">timestamp</a>.<br/>Limits settings on protections for your subscription. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ProtectionLimits</b>: Limits settings on protections for your subscription.         """
        pass

    def disable_proactive_engagement(self) -> DisableProactiveEngagementResponse:
        r"""Removes authorization from the DDoS Response Team (DRT) to notify contacts about escalations to the DRT and to initiate proactive customer support.

        :param self:
        :param 
        :return:         """
        pass

    def disassociate_drt_log_bucket(self, LogBucket: str) -> DisassociateDRTLogBucketResponse:
        r"""Removes the DDoS Response Team's (DRT) access to the specified Amazon S3 bucket containing your AWS WAF logs. To make a <code>DisassociateDRTLogBucket</code> request, you must be subscribed to the <a href="https://aws.amazon.com/premiumsupport/business-support/">Business Support plan</a> or the <a href="https://aws.amazon.com/premiumsupport/enterprise-support/">Enterprise Support plan</a>. However, if you are not subscribed to one of these support plans, but had been previously and had granted the DRT access to your account, you can submit a <code>DisassociateDRTLogBucket</code> request to remove this access.

        :param self:
        :param LogBucket:  The Amazon S3 bucket that contains your AWS WAF logs.<br/>
        :return:         """
        pass

    def disassociate_drt_role(self) -> DisassociateDRTRoleResponse:
        r"""Removes the DDoS Response Team's (DRT) access to your AWS account. To make a <code>DisassociateDRTRole</code> request, you must be subscribed to the <a href="https://aws.amazon.com/premiumsupport/business-support/">Business Support plan</a> or the <a href="https://aws.amazon.com/premiumsupport/enterprise-support/">Enterprise Support plan</a>. However, if you are not subscribed to one of these support plans, but had been previously and had granted the DRT access to your account, you can submit a <code>DisassociateDRTRole</code> request to remove this access.

        :param self:
        :param 
        :return:         """
        pass

    def disassociate_health_check(self, HealthCheckArn: str, ProtectionId: str) -> DisassociateHealthCheckResponse:
        r"""Removes health-based detection from the Shield Advanced protection for a resource. Shield Advanced health-based detection uses the health of your AWS resource to improve responsiveness and accuracy in attack detection and mitigation.  You define the health check in Route 53 and then associate or disassociate it with your Shield Advanced protection. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/ddos-overview.html#ddos-advanced-health-check-option">Shield Advanced Health-Based Detection</a> in the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/">AWS WAF and AWS Shield Developer Guide</a>. 

        :param self:
        :param HealthCheckArn:  The Amazon Resource Name (ARN) of the health check that is associated with the protection.<br/>ProtectionId:  The unique identifier (ID) for the <a>Protection</a> object to remove the health check association from. <br/>
        :return:         """
        pass

    def enable_proactive_engagement(self) -> EnableProactiveEngagementResponse:
        r"""Authorizes the DDoS Response Team (DRT) to use email and phone to notify contacts about escalations to the DRT and to initiate proactive customer support.

        :param self:
        :param 
        :return:         """
        pass

    def get_subscription_state(self) -> GetSubscriptionStateResponse:
        r"""Returns the <code>SubscriptionState</code>, either <code>Active</code> or <code>Inactive</code>.

        :param self:
        :param 
        :return: SubscriptionState:  The status of the subscription.<br/>        """
        pass

    def list_attacks(self, ResourceArns: List[ResourceArn]=None, StartTime: TimeRange=None, EndTime: TimeRange=None, NextToken: str=None, MaxResults: int=None) -> ListAttacksResponse:
        r"""Returns all ongoing DDoS attacks or all DDoS attacks during a specified time period.

        :param self:
        :param MaxResults:  The maximum number of <a>AttackSummary</a> objects to return. If you leave this blank, Shield Advanced returns the first 20 results. This is a maximum value. Shield Advanced might return the results in smaller batches. That is, the number of objects returned could be less than <code>MaxResults</code>, even if there are still more objects yet to return. If there are more objects to return, Shield Advanced returns a value in <code>NextToken</code> that you can use in your next request, to get the next batch of objects.<br/>NextToken:  The <code>ListAttacksRequest.NextMarker</code> value from a previous call to <code>ListAttacksRequest</code>. Pass null if this is the first call.<br/>EndTime:  The end of the time period for the attacks. This is a <code>timestamp</code> type. The sample request above indicates a <code>number</code> type because the default used by WAF is Unix time in seconds. However any valid <a href="http://docs.aws.amazon.com/cli/latest/userguide/cli-using-param.html#parameter-types">timestamp format</a> is allowed. :<br/>StartTime:  The start of the time period for the attacks. This is a <code>timestamp</code> type. The sample request above indicates a <code>number</code> type because the default used by WAF is Unix time in seconds. However any valid <a href="http://docs.aws.amazon.com/cli/latest/userguide/cli-using-param.html#parameter-types">timestamp format</a> is allowed. :<br/>ResourceArns:  The ARN (Amazon Resource Name) of the resource that was attacked. If this is left blank, all applicable resources for this account will be included.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ToExclusive</i> The end time, in Unix time in seconds. For more information see <a href="http://docs.aws.amazon.com/cli/latest/userguide/cli-using-param.html#parameter-types">timestamp</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FromInclusive</i> The start time, in Unix time in seconds. For more information see <a href="http://docs.aws.amazon.com/cli/latest/userguide/cli-using-param.html#parameter-types">timestamp</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ToExclusive</i> The end time, in Unix time in seconds. For more information see <a href="http://docs.aws.amazon.com/cli/latest/userguide/cli-using-param.html#parameter-types">timestamp</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FromInclusive</i> The start time, in Unix time in seconds. For more information see <a href="http://docs.aws.amazon.com/cli/latest/userguide/cli-using-param.html#parameter-types">timestamp</a>.<br/>
        :return: NextToken:  The token returned by a previous call to indicate that there is more data available. If not null, more results are available. Pass this value for the <code>NextMarker</code> parameter in a subsequent call to <code>ListAttacks</code> to retrieve the next set of items. Shield Advanced might return the list of <a>AttackSummary</a> objects in batches smaller than the number specified by MaxResults. If there are more attack summary objects to return, Shield Advanced will always also return a <code>NextToken</code>.<br/>AttackSummaries:  The attack information for the specified time range.<br/>        """
        pass

    def list_protection_groups(self, NextToken: str=None, MaxResults: int=None) -> ListProtectionGroupsResponse:
        r"""Retrieves the <a>ProtectionGroup</a> objects for the account.

        :param self:
        :param MaxResults:  The maximum number of <a>ProtectionGroup</a> objects to return. If you leave this blank, Shield Advanced returns the first 20 results. This is a maximum value. Shield Advanced might return the results in smaller batches. That is, the number of objects returned could be less than <code>MaxResults</code>, even if there are still more objects yet to return. If there are more objects to return, Shield Advanced returns a value in <code>NextToken</code> that you can use in your next request, to get the next batch of objects.<br/>NextToken:  The next token value from a previous call to <code>ListProtectionGroups</code>. Pass null if this is the first call.<br/>
        :return: NextToken:  If you specify a value for <code>MaxResults</code> and you have more protection groups than the value of MaxResults, AWS Shield Advanced returns this token that you can use in your next request, to get the next batch of objects. <br/>ProtectionGroups:  <p/><br/>        """
        pass

    def list_protections(self, NextToken: str=None, MaxResults: int=None) -> ListProtectionsResponse:
        r"""Lists all <a>Protection</a> objects for the account.

        :param self:
        :param MaxResults:  The maximum number of <a>Protection</a> objects to return. If you leave this blank, Shield Advanced returns the first 20 results. This is a maximum value. Shield Advanced might return the results in smaller batches. That is, the number of objects returned could be less than <code>MaxResults</code>, even if there are still more objects yet to return. If there are more objects to return, Shield Advanced returns a value in <code>NextToken</code> that you can use in your next request, to get the next batch of objects.<br/>NextToken:  The <code>ListProtectionsRequest.NextToken</code> value from a previous call to <code>ListProtections</code>. Pass null if this is the first call.<br/>
        :return: NextToken:  If you specify a value for <code>MaxResults</code> and you have more Protections than the value of MaxResults, AWS Shield Advanced returns a NextToken value in the response that allows you to list another group of Protections. For the second and subsequent ListProtections requests, specify the value of NextToken from the previous response to get information about another batch of Protections. Shield Advanced might return the list of <a>Protection</a> objects in batches smaller than the number specified by MaxResults. If there are more <a>Protection</a> objects to return, Shield Advanced will always also return a <code>NextToken</code>.<br/>Protections:  The array of enabled <a>Protection</a> objects.<br/>        """
        pass

    def list_resources_in_protection_group(self, ProtectionGroupId: str, NextToken: str=None, MaxResults: int=None) -> ListResourcesInProtectionGroupResponse:
        r"""Retrieves the resources that are included in the protection group. 

        :param self:
        :param MaxResults:  The maximum number of resource ARN objects to return. If you leave this blank, Shield Advanced returns the first 20 results. This is a maximum value. Shield Advanced might return the results in smaller batches. That is, the number of objects returned could be less than <code>MaxResults</code>, even if there are still more objects yet to return. If there are more objects to return, Shield Advanced returns a value in <code>NextToken</code> that you can use in your next request, to get the next batch of objects.<br/>NextToken:  The next token value from a previous call to <code>ListResourcesInProtectionGroup</code>. Pass null if this is the first call.<br/>ProtectionGroupId:  The name of the protection group. You use this to identify the protection group in lists and to manage the protection group, for example to update, delete, or describe it. <br/>
        :return: NextToken:  If you specify a value for <code>MaxResults</code> and you have more resources in the protection group than the value of MaxResults, AWS Shield Advanced returns this token that you can use in your next request, to get the next batch of objects. <br/>ResourceArns:  The Amazon Resource Names (ARNs) of the resources that are included in the protection group.<br/>        """
        pass

    def list_tags_for_resource(self, ResourceARN: str) -> ListTagsForResourceResponse:
        r"""Gets information about AWS tags for a specified Amazon Resource Name (ARN) in AWS Shield.

        :param self:
        :param ResourceARN:  The Amazon Resource Name (ARN) of the resource to get tags for.<br/>
        :return: Tags:  A list of tag key and value pairs associated with the specified resource.<br/>        """
        pass

    def tag_resource(self, Tags: List[Tag], ResourceARN: str) -> TagResourceResponse:
        r"""Adds or updates tags for a resource in AWS Shield.

        :param self:
        :param Tags:  The tags that you want to modify or add to the resource.<br/>ResourceARN:  The Amazon Resource Name (ARN) of the resource that you want to add or update tags for.<br/>
        :return:         """
        pass

    def untag_resource(self, TagKeys: List[TagKey], ResourceARN: str) -> UntagResourceResponse:
        r"""Removes tags from a resource in AWS Shield.

        :param self:
        :param TagKeys:  The tag key for each tag that you want to remove from the resource.<br/>ResourceARN:  The Amazon Resource Name (ARN) of the resource that you want to remove tags from.<br/>
        :return:         """
        pass

    def update_emergency_contact_settings(self, EmergencyContactList: List[EmergencyContact]=None) -> UpdateEmergencyContactSettingsResponse:
        r"""Updates the details of the list of email addresses and phone numbers that the DDoS Response Team (DRT) can use to contact you if you have proactive engagement enabled, for escalations to the DRT and to initiate proactive customer support.

        :param self:
        :param EmergencyContactList:  A list of email addresses and phone numbers that the DDoS Response Team (DRT) can use to contact you if you have proactive engagement enabled, for escalations to the DRT and to initiate proactive customer support. If you have proactive engagement enabled, the contact list must include at least one phone number.<br/>
        :return:         """
        pass

    def update_protection_group(self, Pattern: str, Aggregation: str, ProtectionGroupId: str, ResourceType: str=None, Members: List[ResourceArn]=None) -> UpdateProtectionGroupResponse:
        r"""Updates an existing protection group. A protection group is a grouping of protected resources so they can be handled as a collective. This resource grouping improves the accuracy of detection and reduces false positives. 

        :param self:
        :param Members:  The Amazon Resource Names (ARNs) of the resources to include in the protection group. You must set this when you set <code>Pattern</code> to <code>ARBITRARY</code> and you must not set it for any other <code>Pattern</code> setting. <br/>ResourceType:  The resource type to include in the protection group. All protected resources of this type are included in the protection group. You must set this when you set <code>Pattern</code> to <code>BY_RESOURCE_TYPE</code> and you must not set it for any other <code>Pattern</code> setting. <br/>Pattern:  The criteria to use to choose the protected resources for inclusion in the group. You can include all resources that have protections, provide a list of resource Amazon Resource Names (ARNs), or include all resources of a specified resource type.<br/>Aggregation:  Defines how AWS Shield combines resource data for the group in order to detect, mitigate, and report events. <ul> <li> Sum - Use the total traffic across the group. This is a good choice for most cases. Examples include Elastic IP addresses for EC2 instances that scale manually or automatically. </li> <li> Mean - Use the average of the traffic across the group. This is a good choice for resources that share traffic uniformly. Examples include accelerators and load balancers. </li> <li> Max - Use the highest traffic from each resource. This is useful for resources that don't share traffic and for resources that share that traffic in a non-uniform way. Examples include CloudFront distributions and origin resources for CloudFront distributions. </li> </ul><br/>ProtectionGroupId:  The name of the protection group. You use this to identify the protection group in lists and to manage the protection group, for example to update, delete, or describe it. <br/>
        :return:         """
        pass

    def update_subscription(self, AutoRenew: str=None) -> UpdateSubscriptionResponse:
        r"""Updates the details of an existing subscription. Only enter values for parameters you want to change. Empty parameters are not updated.

        :param self:
        :param AutoRenew:  When you initally create a subscription, <code>AutoRenew</code> is set to <code>ENABLED</code>. If <code>ENABLED</code>, the subscription will be automatically renewed at the end of the existing subscription period. You can change this by submitting an <code>UpdateSubscription</code> request. If the <code>UpdateSubscription</code> request does not included a value for <code>AutoRenew</code>, the existing value for <code>AutoRenew</code> remains unchanged.<br/>
        :return:         """
        pass





class signer(BaseClient):
    r"""AWS Signer is a fully managed code signing service to help you ensure the trust and integrity of your code.  AWS Signer supports the following applications: With <i>code signing for AWS Lambda</i>, you can sign AWS Lambda deployment packages. Integrated support is provided for Amazon S3, Amazon CloudWatch, and AWS CloudTrail. In order to sign code, you create a signing profile and then use Signer to sign Lambda zip files in S3.  With <i>code signing for IoT</i>, you can sign code for any IoT device that is supported by AWS. IoT code signing is available for <a href="http://docs.aws.amazon.com/freertos/latest/userguide/">Amazon FreeRTOS</a> and <a href="http://docs.aws.amazon.com/iot/latest/developerguide/">AWS IoT Device Management</a>, and is integrated with <a href="http://docs.aws.amazon.com/acm/latest/userguide/">AWS Certificate Manager (ACM)</a>. In order to sign code, you import a third-party code signing certificate using ACM, and use that to sign updates in Amazon FreeRTOS and AWS IoT Device Management.  For more information about AWS Signer, see the <a href="http://docs.aws.amazon.com/signer/latest/developerguide/Welcome.html">AWS Signer Developer Guide</a>. <p/>"""

    class SuccessfulSigningJobWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `describe_signing_job` for valid parameters"""
            pass


    class ListSigningJobsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_signing_jobs` for valid parameters"""
            pass
    class ListSigningPlatformsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_signing_platforms` for valid parameters"""
            pass
    class ListSigningProfilesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_signing_profiles` for valid parameters"""
            pass


    class AddProfilePermissionRequest(Mapping):
        pass
    
    class AddProfilePermissionResponse(Mapping):
        pass
    
    class CancelSigningProfileRequest(Mapping):
        pass
    
    class DescribeSigningJobRequest(Mapping):
        pass
    
    class DescribeSigningJobResponse(Mapping):
        pass
    
    class GetSigningPlatformRequest(Mapping):
        pass
    
    class GetSigningPlatformResponse(Mapping):
        pass
    
    class GetSigningProfileRequest(Mapping):
        pass
    
    class GetSigningProfileResponse(Mapping):
        pass
    
    class ListProfilePermissionsRequest(Mapping):
        pass
    
    class ListProfilePermissionsResponse(Mapping):
        pass
    
    class ListSigningJobsRequest(Mapping):
        pass
    
    class ListSigningJobsResponse(Mapping):
        pass
    
    class bool(object):
        pass
    
    class Timestamp(object):
        pass
    
    class ListSigningPlatformsRequest(Mapping):
        pass
    
    class ListSigningPlatformsResponse(Mapping):
        pass
    
    class ListSigningProfilesRequest(Mapping):
        pass
    
    class ListSigningProfilesResponse(Mapping):
        pass
    
    class SigningProfileStatus(object):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class PutSigningProfileRequest(Mapping):
        pass
    
    class PutSigningProfileResponse(Mapping):
        pass
    
    class SigningMaterial(Mapping):
        pass
    
    class SignatureValidityPeriod(Mapping):
        pass
    
    class SigningPlatformOverrides(Mapping):
        pass
    
    class SigningParameters(object):
        pass
    
    class TagMap(object):
        pass
    
    class RemoveProfilePermissionRequest(Mapping):
        pass
    
    class RemoveProfilePermissionResponse(Mapping):
        pass
    
    class RevokeSignatureRequest(Mapping):
        pass
    
    class RevokeSigningProfileRequest(Mapping):
        pass
    
    class StartSigningJobRequest(Mapping):
        pass
    
    class StartSigningJobResponse(Mapping):
        pass
    
    class Source(Mapping):
        pass
    
    class Destination(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    def add_profile_permission(self, statementId: str, principal: str, action: str, profileName: str, profileVersion: str=None, revisionId: str=None) -> AddProfilePermissionResponse:
        r"""Adds cross-account permissions to a signing profile.

        :param self:
        :param statementId:  A unique identifier for the cross-account permission statement.<br/>revisionId:  A unique identifier for the current profile revision.<br/>principal:  The AWS principal receiving cross-account permissions. This may be an IAM role or another AWS account ID.<br/>action:  The AWS Signer action permitted as part of cross-account permissions.<br/>profileVersion:  The version of the signing profile.<br/>profileName:  The human-readable name of the signing profile.<br/>
        :return: revisionId:  A unique identifier for the current profile revision.<br/>        """
        pass

    def cancel_signing_profile(self, profileName: str):
        r"""Changes the state of an <code>ACTIVE</code> signing profile to <code>CANCELED</code>. A canceled profile is still viewable with the <code>ListSigningProfiles</code> operation, but it cannot perform new signing jobs, and is deleted two years after cancelation.

        :param self:
        :param profileName:  The name of the signing profile to be canceled.<br/>
        :return:         """
        pass

    def describe_signing_job(self, jobId: str) -> DescribeSigningJobResponse:
        r"""Returns information about a specific code signing job. You specify the job by using the <code>jobId</code> value that is returned by the <a>StartSigningJob</a> operation. 

        :param self:
        :param jobId:  The ID of the signing job on input.<br/>
        :return: jobInvoker:  The IAM entity that initiated the signing job.<br/>jobOwner:  The AWS account ID of the job owner.<br/>signedObject:  Name of the S3 bucket where the signed code image is saved by code signing.:<br/>revocationRecord:  A revocation record if the signature generated by the signing job has been revoked. Contains a timestamp and the ID of the IAM entity that revoked the signature.:<br/>statusReason:  String value that contains the status reason.<br/>status:  Status of the signing job.<br/>requestedBy:  The IAM principal that requested the signing job.<br/>signatureExpiresAt:  Thr expiration timestamp for the signature generated by the signing job.<br/>completedAt:  Date and time that the signing job was completed.<br/>createdAt:  Date and time that the signing job was created.<br/>signingParameters:  Map of user-assigned key-value pairs used during signing. These values contain any information that you specified for use in your signing job. <br/>overrides:  A list of any overrides that were applied to the signing operation.:<br/>profileVersion:  The version of the signing profile used to initiate the signing job.<br/>profileName:  The name of the profile that initiated the signing operation.<br/>platformDisplayName:  A human-readable name for the signing platform associated with the signing job.<br/>platformId:  The microcontroller platform to which your signed code image will be distributed.<br/>signingMaterial:  The Amazon Resource Name (ARN) of your code signing certificate.:<br/>source:  The object that contains the name of your S3 bucket or your raw code.:<br/>jobId:  The ID of the signing job on output.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>s3</i> The <code>S3Source</code> object.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>s3</b>: The <code>S3Source</code> object.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> Version of your source image in your version enabled S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>key</i> Key name of the bucket object that contains your unsigned code.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>bucketName</i> Name of the S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>certificateArn</i> The Amazon Resource Name (ARN) of the certificates that is used to sign your code.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>signingImageFormat</i> A signed image is a JSON object. When overriding the default signing platform configuration, a customer can select either of two signing formats, <code>JSONEmbedded</code> or <code>JSONDetached</code>. (A third format value, <code>JSON</code>, is reserved for future use.) With <code>JSONEmbedded</code>, the signing image has the payload embedded in it. With <code>JSONDetached</code>, the payload is not be embedded in the signing image.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>signingConfiguration</i> A signing configuration that overrides the default encryption or hash algorithm of a signing job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>signingConfiguration</b>: A signing configuration that overrides the default encryption or hash algorithm of a signing job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>hashAlgorithm</i> A specified override of the default hash algorithm that is used in a code signing job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>encryptionAlgorithm</i> A specified override of the default encryption algorithm that is used in a code signing job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>revokedBy</i> The identity of the revoker.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>revokedAt</i> The time of revocation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>reason</i> A caller-supplied reason for revocation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>s3</i> The <code>S3SignedObject</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>s3</b>: The <code>S3SignedObject</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>key</i> Key name that uniquely identifies a signed code image in your bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>bucketName</i> Name of the S3 bucket.<br/>        """
        pass

    def get_signing_platform(self, platformId: str) -> GetSigningPlatformResponse:
        r"""Returns information on a specific signing platform.

        :param self:
        :param platformId:  The ID of the target signing platform.<br/>
        :return: revocationSupported:  A flag indicating whether signatures generated for the signing platform can be revoked.<br/>maxSizeInMB:  The maximum size (in MB) of the payload that can be signed by the target platform.<br/>signingImageFormat:  The format of the target platform's signing image.:<br/>signingConfiguration:  A list of configurations applied to the target platform at signing.:<br/>category:  The category type of the target signing platform.<br/>target:  The validation template that is used by the target signing platform.<br/>partner:  A list of partner entities that use the target signing platform.<br/>displayName:  The display name of the target signing platform.<br/>platformId:  The ID of the target signing platform.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>hashAlgorithmOptions</i> The hash algorithm options that are available for a code signing job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>hashAlgorithmOptions</b>: The hash algorithm options that are available for a code signing job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>encryptionAlgorithmOptions</i> The encryption algorithm options that are available for a code signing job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>encryptionAlgorithmOptions</b>: The encryption algorithm options that are available for a code signing job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>defaultValue</i> The default encryption algorithm that is used by a code signing job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>allowedValues</i> The set of accepted encryption algorithms that are allowed in a code signing job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>defaultValue</i> The default hash algorithm that is used in a code signing job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>allowedValues</i> The set of accepted hash algorithms allowed in a code signing job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>defaultFormat</i> The default format of a code signing image.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>supportedFormats</i> The supported formats of a code signing image.<br/>        """
        pass

    def get_signing_profile(self, profileName: str, profileOwner: str=None) -> GetSigningProfileResponse:
        r"""Returns information on a specific signing profile.

        :param self:
        :param profileOwner:  The AWS account ID of the profile owner.<br/>profileName:  The name of the target signing profile.<br/>
        :return: tags:  A list of tags associated with the signing profile.<br/>arn:  The Amazon Resource Name (ARN) for the signing profile.<br/>statusReason:  Reason for the status of the target signing profile.<br/>status:  The status of the target signing profile.<br/>signingParameters:  A map of key-value pairs for signing operations that is attached to the target signing profile.<br/>overrides:  A list of overrides applied by the target signing profile for signing operations.:<br/>signatureValidityPeriod:  The validity period for a signing job.:<br/>platformDisplayName:  A human-readable name for the signing platform associated with the signing profile.<br/>platformId:  The ID of the platform that is used by the target signing profile.<br/>signingMaterial:  The ARN of the certificate that the target profile uses for signing operations.:<br/>revocationRecord:  Revocation information for a signing profile.:<br/>profileVersionArn:  The signing profile ARN, including the profile version.<br/>profileVersion:  The current version of the signing profile.<br/>profileName:  The name of the target signing profile.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>revokedBy</i> The identity of the revoker.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>revokedAt</i> The time when the signing profile was revoked.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>revocationEffectiveFrom</i> The time when revocation becomes effective.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>certificateArn</i> The Amazon Resource Name (ARN) of the certificates that is used to sign your code.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The time unit for signature validity.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>value</i> The numerical value of the time unit for signature validity.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>signingImageFormat</i> A signed image is a JSON object. When overriding the default signing platform configuration, a customer can select either of two signing formats, <code>JSONEmbedded</code> or <code>JSONDetached</code>. (A third format value, <code>JSON</code>, is reserved for future use.) With <code>JSONEmbedded</code>, the signing image has the payload embedded in it. With <code>JSONDetached</code>, the payload is not be embedded in the signing image.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>signingConfiguration</i> A signing configuration that overrides the default encryption or hash algorithm of a signing job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>signingConfiguration</b>: A signing configuration that overrides the default encryption or hash algorithm of a signing job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>hashAlgorithm</i> A specified override of the default hash algorithm that is used in a code signing job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>encryptionAlgorithm</i> A specified override of the default encryption algorithm that is used in a code signing job.<br/>        """
        pass

    def list_profile_permissions(self, profileName: str, nextToken: str=None) -> ListProfilePermissionsResponse:
        r"""Lists the cross-account permissions associated with a signing profile.

        :param self:
        :param nextToken:  String for specifying the next set of paginated results.<br/>profileName:  Name of the signing profile containing the cross-account permissions.<br/>
        :return: nextToken:  String for specifying the next set of paginated results.<br/>permissions:  List of permissions associated with the Signing Profile.<br/>policySizeBytes:  Total size of the policy associated with the Signing Profile in bytes.<br/>revisionId:  The identifier for the current revision of profile permissions.<br/>        """
        pass

    def list_signing_jobs(self, status: str=None, platformId: str=None, requestedBy: str=None, maxResults: int=None, nextToken: str=None, isRevoked: bool=None, signatureExpiresBefore: Timestamp=None, signatureExpiresAfter: Timestamp=None, jobInvoker: str=None) -> ListSigningJobsResponse:
        r"""Lists all your signing jobs. You can use the <code>maxResults</code> parameter to limit the number of signing jobs that are returned in the response. If additional jobs remain to be listed, code signing returns a <code>nextToken</code> value. Use this value in subsequent calls to <code>ListSigningJobs</code> to fetch the remaining values. You can continue calling <code>ListSigningJobs</code> with your <code>maxResults</code> parameter and with new values that code signing returns in the <code>nextToken</code> parameter until all of your signing jobs have been returned. 

        :param self:
        :param jobInvoker:  Filters results to return only signing jobs initiated by a specified IAM entity.<br/>signatureExpiresAfter:  Filters results to return only signing jobs with signatures expiring after a specified timestamp.<br/>signatureExpiresBefore:  Filters results to return only signing jobs with signatures expiring before a specified timestamp.<br/>isRevoked:  Filters results to return only signing jobs with revoked signatures.<br/>nextToken:  String for specifying the next set of paginated results to return. After you receive a response with truncated results, use this parameter in a subsequent request. Set it to the value of <code>nextToken</code> from the response that you just received.<br/>maxResults:  Specifies the maximum number of items to return in the response. Use this parameter when paginating results. If additional items exist beyond the number you specify, the <code>nextToken</code> element is set in the response. Use the <code>nextToken</code> value in a subsequent request to retrieve additional items. <br/>requestedBy:  The IAM principal that requested the signing job.<br/>platformId:  The ID of microcontroller platform that you specified for the distribution of your code image.<br/>status:  A status value with which to filter your results.<br/>
        :return: nextToken:  String for specifying the next set of paginated results.<br/>jobs:  A list of your signing jobs.<br/>        """
        pass

    def list_signing_platforms(self, category: str=None, partner: str=None, target: str=None, maxResults: int=None, nextToken: str=None) -> ListSigningPlatformsResponse:
        r"""Lists all signing platforms available in code signing that match the request parameters. If additional jobs remain to be listed, code signing returns a <code>nextToken</code> value. Use this value in subsequent calls to <code>ListSigningJobs</code> to fetch the remaining values. You can continue calling <code>ListSigningJobs</code> with your <code>maxResults</code> parameter and with new values that code signing returns in the <code>nextToken</code> parameter until all of your signing jobs have been returned.

        :param self:
        :param nextToken:  Value for specifying the next set of paginated results to return. After you receive a response with truncated results, use this parameter in a subsequent request. Set it to the value of <code>nextToken</code> from the response that you just received.<br/>maxResults:  The maximum number of results to be returned by this operation.<br/>target:  The validation template that is used by the target signing platform.<br/>partner:  Any partner entities connected to a signing platform.<br/>category:  The category type of a signing platform.<br/>
        :return: nextToken:  Value for specifying the next set of paginated results to return.<br/>platforms:  A list of all platforms that match the request parameters.<br/>        """
        pass

    def list_signing_profiles(self, includeCanceled: bool=None, maxResults: int=None, nextToken: str=None, platformId: str=None, statuses: List[SigningProfileStatus]=None) -> ListSigningProfilesResponse:
        r"""Lists all available signing profiles in your AWS account. Returns only profiles with an <code>ACTIVE</code> status unless the <code>includeCanceled</code> request field is set to <code>true</code>. If additional jobs remain to be listed, code signing returns a <code>nextToken</code> value. Use this value in subsequent calls to <code>ListSigningJobs</code> to fetch the remaining values. You can continue calling <code>ListSigningJobs</code> with your <code>maxResults</code> parameter and with new values that code signing returns in the <code>nextToken</code> parameter until all of your signing jobs have been returned.

        :param self:
        :param statuses:  Filters results to return only signing jobs with statuses in the specified list.<br/>platformId:  Filters results to return only signing jobs initiated for a specified signing platform.<br/>nextToken:  Value for specifying the next set of paginated results to return. After you receive a response with truncated results, use this parameter in a subsequent request. Set it to the value of <code>nextToken</code> from the response that you just received.<br/>maxResults:  The maximum number of profiles to be returned.<br/>includeCanceled:  Designates whether to include profiles with the status of <code>CANCELED</code>.<br/>
        :return: nextToken:  Value for specifying the next set of paginated results to return.<br/>profiles:  A list of profiles that are available in the AWS account. This includes profiles with the status of <code>CANCELED</code> if the <code>includeCanceled</code> parameter is set to <code>true</code>.<br/>        """
        pass

    def list_tags_for_resource(self, resourceArn: str) -> ListTagsForResourceResponse:
        r"""Returns a list of the tags associated with a signing profile resource.

        :param self:
        :param resourceArn:  The Amazon Resource Name (ARN) for the signing profile.<br/>
        :return: tags:  A list of tags associated with the signing profile.<br/>        """
        pass

    def put_signing_profile(self, platformId: str, profileName: str, signingMaterial: SigningMaterial=None, signatureValidityPeriod: SignatureValidityPeriod=None, overrides: SigningPlatformOverrides=None, signingParameters: SigningParameters=None, tags: TagMap=None) -> PutSigningProfileResponse:
        r"""Creates a signing profile. A signing profile is a code signing template that can be used to carry out a pre-defined signing job. For more information, see <a href="http://docs.aws.amazon.com/signer/latest/developerguide/gs-profile.html">http://docs.aws.amazon.com/signer/latest/developerguide/gs-profile.html</a> 

        :param self:
        :param tags:  Tags to be associated with the signing profile that is being created.<br/>signingParameters:  Map of key-value pairs for signing. These can include any information that you want to use during signing.<br/>overrides:  A subfield of <code>platform</code>. This specifies any different configuration options that you want to apply to the chosen platform (such as a different <code>hash-algorithm</code> or <code>signing-algorithm</code>).:<br/>platformId:  The ID of the signing platform to be created.<br/>signatureValidityPeriod:  The default validity period override for any signature generated using this signing profile. If unspecified, the default is 135 months.:<br/>signingMaterial:  The AWS Certificate Manager certificate that will be used to sign code with the new signing profile.:<br/>profileName:  The name of the signing profile to be created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>certificateArn</i> The Amazon Resource Name (ARN) of the certificates that is used to sign your code.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The time unit for signature validity.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>value</i> The numerical value of the time unit for signature validity.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>signingImageFormat</i> A signed image is a JSON object. When overriding the default signing platform configuration, a customer can select either of two signing formats, <code>JSONEmbedded</code> or <code>JSONDetached</code>. (A third format value, <code>JSON</code>, is reserved for future use.) With <code>JSONEmbedded</code>, the signing image has the payload embedded in it. With <code>JSONDetached</code>, the payload is not be embedded in the signing image.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>signingConfiguration</i> A signing configuration that overrides the default encryption or hash algorithm of a signing job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>signingConfiguration</b>: A signing configuration that overrides the default encryption or hash algorithm of a signing job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>hashAlgorithm</i> A specified override of the default hash algorithm that is used in a code signing job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>encryptionAlgorithm</i> A specified override of the default encryption algorithm that is used in a code signing job.<br/>
        :return: profileVersionArn:  The signing profile ARN, including the profile version.<br/>profileVersion:  The version of the signing profile being created.<br/>arn:  The Amazon Resource Name (ARN) of the signing profile created.<br/>        """
        pass

    def remove_profile_permission(self, statementId: str, revisionId: str, profileName: str) -> RemoveProfilePermissionResponse:
        r"""Removes cross-account permissions from a signing profile.

        :param self:
        :param statementId:  A unique identifier for the cross-account permissions statement.<br/>revisionId:  An identifier for the current revision of the signing profile permissions.<br/>profileName:  A human-readable name for the signing profile with permissions to be removed.<br/>
        :return: revisionId:  An identifier for the current revision of the profile permissions.<br/>        """
        pass

    def revoke_signature(self, reason: str, jobId: str, jobOwner: str=None):
        r"""Changes the state of a signing job to REVOKED. This indicates that the signature is no longer valid.

        :param self:
        :param reason:  The reason for revoking the signing job.<br/>jobOwner:  AWS account ID of the job owner.<br/>jobId:  ID of the signing job to be revoked.<br/>
        :return:         """
        pass

    def revoke_signing_profile(self, effectiveTime: Timestamp, reason: str, profileVersion: str, profileName: str):
        r"""Changes the state of a signing profile to REVOKED. This indicates that signatures generated using the signing profile after an effective start date are no longer valid.

        :param self:
        :param effectiveTime:  A timestamp for when revocation of a Signing Profile should become effective. Signatures generated using the signing profile after this timestamp are not trusted.<br/>reason:  The reason for revoking a signing profile.<br/>profileVersion:  The version of the signing profile to be revoked.<br/>profileName:  The name of the signing profile to be revoked.<br/>
        :return:         """
        pass

    def start_signing_job(self, clientRequestToken: str, profileName: str, destination: Destination, source: Source, profileOwner: str=None) -> StartSigningJobResponse:
        r"""Initiates a signing job to be performed on the code provided. Signing jobs are viewable by the <code>ListSigningJobs</code> operation for two years after they are performed. Note the following requirements:  <ul> <li>  You must create an Amazon S3 source bucket. For more information, see <a href="http://docs.aws.amazon.com/AmazonS3/latest/gsg/CreatingABucket.html">Create a Bucket</a> in the <i>Amazon S3 Getting Started Guide</i>.  </li> <li> Your S3 source bucket must be version enabled. </li> <li> You must create an S3 destination bucket. Code signing uses your S3 destination bucket to write your signed code. </li> <li> You specify the name of the source and destination buckets when calling the <code>StartSigningJob</code> operation. </li> <li> You must also specify a request token that identifies your request to code signing. </li> </ul> You can call the <a>DescribeSigningJob</a> and the <a>ListSigningJobs</a> actions after you call <code>StartSigningJob</code>. For a Java example that shows how to use this action, see <a href="http://docs.aws.amazon.com/acm/latest/userguide/">http://docs.aws.amazon.com/acm/latest/userguide/</a> 

        :param self:
        :param profileOwner:  The AWS account ID of the signing profile owner.<br/>clientRequestToken:  String that identifies the signing request. All calls after the first that use this token return the same response as the first call.<br/>profileName:  The name of the signing profile.<br/>destination:  The S3 bucket in which to save your signed object. The destination contains the name of your bucket and an optional prefix.:<br/>source:  The S3 bucket that contains the object to sign or a BLOB that contains your raw code.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>s3</i> The <code>S3Source</code> object.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>s3</b>: The <code>S3Source</code> object.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> Version of your source image in your version enabled S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>key</i> Key name of the bucket object that contains your unsigned code.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>bucketName</i> Name of the S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>s3</i> The <code>S3Destination</code> object.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>s3</b>: The <code>S3Destination</code> object.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>prefix</i> An Amazon S3 prefix that you can use to limit responses to those that begin with the specified prefix.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>bucketName</i> Name of the S3 bucket.<br/>
        :return: jobOwner:  The AWS account ID of the signing job owner.<br/>jobId:  The ID of your signing job.<br/>        """
        pass

    def tag_resource(self, tags: TagMap, resourceArn: str) -> TagResourceResponse:
        r"""Adds one or more tags to a signing profile. Tags are labels that you can use to identify and organize your AWS resources. Each tag consists of a key and an optional value. To specify the signing profile, use its Amazon Resource Name (ARN). To specify the tag, use a key-value pair.

        :param self:
        :param tags:  One or more tags to be associated with the signing profile.<br/>resourceArn:  The Amazon Resource Name (ARN) for the signing profile.<br/>
        :return:         """
        pass

    def untag_resource(self, tagKeys: List[TagKey], resourceArn: str) -> UntagResourceResponse:
        r"""Removes one or more tags from a signing profile. To remove the tags, specify a list of tag keys.

        :param self:
        :param tagKeys:  A list of tag keys to be removed from the signing profile.<br/>resourceArn:  The Amazon Resource Name (ARN) for the signing profile.<br/>
        :return:         """
        pass





class SMS(BaseClient):
    r"""<fullname>AWS Server Migration Service</fullname> AWS Server Migration Service (AWS SMS) makes it easier and faster for you to migrate your on-premises workloads to AWS. To learn more about AWS SMS, see the following resources: <ul> <li>  <a href="http://aws.amazon.com/server-migration-service/">AWS Server Migration Service product page</a>  </li> <li>  <a href="https://docs.aws.amazon.com/server-migration-service/latest/userguide/">AWS Server Migration Service User Guide</a>  </li> </ul>"""


    class GetReplicationJobsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_replication_jobs` for valid parameters"""
            pass
    class GetReplicationRunsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_replication_runs` for valid parameters"""
            pass
    class GetConnectorsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_connectors` for valid parameters"""
            pass
    class GetServersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_servers` for valid parameters"""
            pass
    class ListAppsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_apps` for valid parameters"""
            pass


    class CreateAppRequest(Mapping):
        pass
    
    class CreateAppResponse(Mapping):
        pass
    
    class ServerGroup(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class CreateReplicationJobRequest(Mapping):
        pass
    
    class CreateReplicationJobResponse(Mapping):
        pass
    
    class Timestamp(object):
        pass
    
    class RunOnce(object):
        pass
    
    class Encrypted(object):
        pass
    
    class DeleteAppRequest(Mapping):
        pass
    
    class DeleteAppResponse(Mapping):
        pass
    
    class ForceStopAppReplication(object):
        pass
    
    class ForceTerminateApp(object):
        pass
    
    class DeleteAppLaunchConfigurationRequest(Mapping):
        pass
    
    class DeleteAppLaunchConfigurationResponse(Mapping):
        pass
    
    class DeleteAppReplicationConfigurationRequest(Mapping):
        pass
    
    class DeleteAppReplicationConfigurationResponse(Mapping):
        pass
    
    class DeleteAppValidationConfigurationRequest(Mapping):
        pass
    
    class DeleteAppValidationConfigurationResponse(Mapping):
        pass
    
    class DeleteReplicationJobRequest(Mapping):
        pass
    
    class DeleteReplicationJobResponse(Mapping):
        pass
    
    class DeleteServerCatalogRequest(Mapping):
        pass
    
    class DeleteServerCatalogResponse(Mapping):
        pass
    
    class DisassociateConnectorRequest(Mapping):
        pass
    
    class DisassociateConnectorResponse(Mapping):
        pass
    
    class GenerateChangeSetRequest(Mapping):
        pass
    
    class GenerateChangeSetResponse(Mapping):
        pass
    
    class GenerateTemplateRequest(Mapping):
        pass
    
    class GenerateTemplateResponse(Mapping):
        pass
    
    class GetAppRequest(Mapping):
        pass
    
    class GetAppResponse(Mapping):
        pass
    
    class GetAppLaunchConfigurationRequest(Mapping):
        pass
    
    class GetAppLaunchConfigurationResponse(Mapping):
        pass
    
    class GetAppReplicationConfigurationRequest(Mapping):
        pass
    
    class GetAppReplicationConfigurationResponse(Mapping):
        pass
    
    class GetAppValidationConfigurationRequest(Mapping):
        pass
    
    class GetAppValidationConfigurationResponse(Mapping):
        pass
    
    class GetAppValidationOutputRequest(Mapping):
        pass
    
    class GetAppValidationOutputResponse(Mapping):
        pass
    
    class GetConnectorsRequest(Mapping):
        pass
    
    class GetConnectorsResponse(Mapping):
        pass
    
    class GetReplicationJobsRequest(Mapping):
        pass
    
    class GetReplicationJobsResponse(Mapping):
        pass
    
    class GetReplicationRunsRequest(Mapping):
        pass
    
    class GetReplicationRunsResponse(Mapping):
        pass
    
    class GetServersRequest(Mapping):
        pass
    
    class GetServersResponse(Mapping):
        pass
    
    class VmServerAddress(Mapping):
        pass
    
    class ImportAppCatalogRequest(Mapping):
        pass
    
    class ImportAppCatalogResponse(Mapping):
        pass
    
    class ImportServerCatalogRequest(Mapping):
        pass
    
    class ImportServerCatalogResponse(Mapping):
        pass
    
    class LaunchAppRequest(Mapping):
        pass
    
    class LaunchAppResponse(Mapping):
        pass
    
    class ListAppsRequest(Mapping):
        pass
    
    class ListAppsResponse(Mapping):
        pass
    
    class AppId(object):
        pass
    
    class NotifyAppValidationOutputRequest(Mapping):
        pass
    
    class NotifyAppValidationOutputResponse(Mapping):
        pass
    
    class NotificationContext(Mapping):
        pass
    
    class PutAppLaunchConfigurationRequest(Mapping):
        pass
    
    class PutAppLaunchConfigurationResponse(Mapping):
        pass
    
    class AutoLaunch(object):
        pass
    
    class ServerGroupLaunchConfiguration(Mapping):
        pass
    
    class PutAppReplicationConfigurationRequest(Mapping):
        pass
    
    class PutAppReplicationConfigurationResponse(Mapping):
        pass
    
    class ServerGroupReplicationConfiguration(Mapping):
        pass
    
    class PutAppValidationConfigurationRequest(Mapping):
        pass
    
    class PutAppValidationConfigurationResponse(Mapping):
        pass
    
    class AppValidationConfiguration(Mapping):
        pass
    
    class ServerGroupValidationConfiguration(Mapping):
        pass
    
    class StartAppReplicationRequest(Mapping):
        pass
    
    class StartAppReplicationResponse(Mapping):
        pass
    
    class StartOnDemandAppReplicationRequest(Mapping):
        pass
    
    class StartOnDemandAppReplicationResponse(Mapping):
        pass
    
    class StartOnDemandReplicationRunRequest(Mapping):
        pass
    
    class StartOnDemandReplicationRunResponse(Mapping):
        pass
    
    class StopAppReplicationRequest(Mapping):
        pass
    
    class StopAppReplicationResponse(Mapping):
        pass
    
    class TerminateAppRequest(Mapping):
        pass
    
    class TerminateAppResponse(Mapping):
        pass
    
    class UpdateAppRequest(Mapping):
        pass
    
    class UpdateAppResponse(Mapping):
        pass
    
    class UpdateReplicationJobRequest(Mapping):
        pass
    
    class UpdateReplicationJobResponse(Mapping):
        pass
    
    def create_app(self, name: str=None, description: str=None, roleName: str=None, clientToken: str=None, serverGroups: List[ServerGroup]=None, tags: List[Tag]=None) -> CreateAppResponse:
        r"""Creates an application. An application consists of one or more server groups. Each server group contain one or more servers.

        :param self:
        :param tags:  The tags to be associated with the application.<br/>serverGroups:  The server groups to include in the application.<br/>clientToken:  A unique, case-sensitive identifier that you provide to ensure the idempotency of application creation.<br/>roleName:  The name of the service role in the customer's account to be used by AWS SMS.<br/>description:  The description of the new application<br/>name:  The name of the new application.<br/>
        :return: tags:  The tags associated with the application.<br/>serverGroups:  The server groups included in the application.<br/>appSummary:  A summary description of the application.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>totalServers</i> The number of servers present in the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>totalServerGroups</i> The number of server groups present in the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>roleName</i> The name of the service role in the customer's account used by AWS SMS.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastModified</i> The last modified time of the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationTime</i> The creation time of the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>launchDetails</i> Details about the latest launch of the application.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>launchDetails</b>: Details about the latest launch of the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>launchStatusMessage</i> A message related to the launch status of the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>launchStatus</i> The launch status of the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>launchConfigurationStatus</i> Status of the launch configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>latestReplicationTime</i> The timestamp of the application's most recent successful replication.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>replicationStatusMessage</i> A message related to the replication status of the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>replicationStatus</i> The replication status of the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>replicationConfigurationStatus</i> Status of the replication configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusMessage</i> A message related to the status of the application<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> Status of the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> The description of the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>importedAppId</i> The ID of the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>appId</i> The unique ID of the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>stackId</i> The ID of the latest stack launched for this application.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>stackName</i> The name of the latest stack launched for this application.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>latestLaunchTime</i> The latest time that this application was launched successfully.<br/>        """
        pass

    def create_replication_job(self, seedReplicationTime: Timestamp, serverId: str, frequency: int=None, runOnce: RunOnce=None, licenseType: str=None, roleName: str=None, description: str=None, numberOfRecentAmisToKeep: int=None, encrypted: Encrypted=None, kmsKeyId: str=None) -> CreateReplicationJobResponse:
        r"""Creates a replication job. The replication job schedules periodic replication runs to replicate your server to AWS. Each replication run creates an Amazon Machine Image (AMI).

        :param self:
        :param kmsKeyId:  The ID of the KMS key for replication jobs that produce encrypted AMIs. This value can be any of the following: <ul> <li> KMS key ID </li> <li> KMS key alias </li> <li> ARN referring to the KMS key ID </li> <li> ARN referring to the KMS key alias </li> </ul>  If encrypted is <i>true</i> but a KMS key ID is not specified, the customer's default KMS key for Amazon EBS is used. <br/>encrypted:  Indicates whether the replication job produces encrypted AMIs.<br/>numberOfRecentAmisToKeep:  The maximum number of SMS-created AMIs to retain. The oldest is deleted after the maximum number is reached and a new AMI is created.<br/>description:  The description of the replication job.<br/>roleName:  The name of the IAM role to be used by the AWS SMS.<br/>licenseType:  The license type to be used for the AMI created by a successful replication run.<br/>runOnce:  Indicates whether to run the replication job one time.<br/>frequency:  The time between consecutive replication runs, in hours.<br/>seedReplicationTime:  The seed replication time.<br/>serverId:  The ID of the server.<br/>
        :return: replicationJobId:  The unique identifier of the replication job.<br/>        """
        pass

    def delete_app(self, appId: str=None, forceStopAppReplication: ForceStopAppReplication=None, forceTerminateApp: ForceTerminateApp=None) -> DeleteAppResponse:
        r"""Deletes the specified application. Optionally deletes the launched stack associated with the application and all AWS SMS replication jobs for servers in the application.

        :param self:
        :param forceTerminateApp:  Indicates whether to terminate the stack corresponding to the application while deleting the application.<br/>forceStopAppReplication:  Indicates whether to stop all replication jobs corresponding to the servers in the application while deleting the application.<br/>appId:  The ID of the application.<br/>
        :return:         """
        pass

    def delete_app_launch_configuration(self, appId: str=None) -> DeleteAppLaunchConfigurationResponse:
        r"""Deletes the launch configuration for the specified application.

        :param self:
        :param appId:  The ID of the application.<br/>
        :return:         """
        pass

    def delete_app_replication_configuration(self, appId: str=None) -> DeleteAppReplicationConfigurationResponse:
        r"""Deletes the replication configuration for the specified application.

        :param self:
        :param appId:  The ID of the application.<br/>
        :return:         """
        pass

    def delete_app_validation_configuration(self, appId: str) -> DeleteAppValidationConfigurationResponse:
        r"""Deletes the validation configuration for the specified application.

        :param self:
        :param appId:  The ID of the application.<br/>
        :return:         """
        pass

    def delete_replication_job(self, replicationJobId: str) -> DeleteReplicationJobResponse:
        r"""Deletes the specified replication job. After you delete a replication job, there are no further replication runs. AWS deletes the contents of the Amazon S3 bucket used to store AWS SMS artifacts. The AMIs created by the replication runs are not deleted.

        :param self:
        :param replicationJobId:  The ID of the replication job.<br/>
        :return:         """
        pass

    def delete_server_catalog(self) -> DeleteServerCatalogResponse:
        r"""Deletes all servers from your server catalog.

        :param self:
        :param 
        :return:         """
        pass

    def disassociate_connector(self, connectorId: str) -> DisassociateConnectorResponse:
        r"""Disassociates the specified connector from AWS SMS. After you disassociate a connector, it is no longer available to support replication jobs.

        :param self:
        :param connectorId:  The ID of the connector.<br/>
        :return:         """
        pass

    def generate_change_set(self, appId: str=None, changesetFormat: str=None) -> GenerateChangeSetResponse:
        r"""Generates a target change set for a currently launched stack and writes it to an Amazon S3 object in the customer’s Amazon S3 bucket.

        :param self:
        :param changesetFormat:  The format for the change set.<br/>appId:  The ID of the application associated with the change set.<br/>
        :return: s3Location:  The location of the Amazon S3 object.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>key</i> The Amazon S3 bucket key.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>bucket</i> The Amazon S3 bucket name.<br/>        """
        pass

    def generate_template(self, appId: str=None, templateFormat: str=None) -> GenerateTemplateResponse:
        r"""Generates an AWS CloudFormation template based on the current launch configuration and writes it to an Amazon S3 object in the customer’s Amazon S3 bucket.

        :param self:
        :param templateFormat:  The format for generating the AWS CloudFormation template.<br/>appId:  The ID of the application associated with the AWS CloudFormation template.<br/>
        :return: s3Location:  The location of the Amazon S3 object.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>key</i> The Amazon S3 bucket key.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>bucket</i> The Amazon S3 bucket name.<br/>        """
        pass

    def get_app(self, appId: str=None) -> GetAppResponse:
        r"""Retrieve information about the specified application.

        :param self:
        :param appId:  The ID of the application.<br/>
        :return: tags:  The tags associated with the application.<br/>serverGroups:  The server groups that belong to the application.<br/>appSummary:  Information about the application.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>totalServers</i> The number of servers present in the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>totalServerGroups</i> The number of server groups present in the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>roleName</i> The name of the service role in the customer's account used by AWS SMS.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastModified</i> The last modified time of the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationTime</i> The creation time of the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>launchDetails</i> Details about the latest launch of the application.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>launchDetails</b>: Details about the latest launch of the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>launchStatusMessage</i> A message related to the launch status of the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>launchStatus</i> The launch status of the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>launchConfigurationStatus</i> Status of the launch configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>latestReplicationTime</i> The timestamp of the application's most recent successful replication.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>replicationStatusMessage</i> A message related to the replication status of the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>replicationStatus</i> The replication status of the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>replicationConfigurationStatus</i> Status of the replication configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusMessage</i> A message related to the status of the application<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> Status of the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> The description of the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>importedAppId</i> The ID of the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>appId</i> The unique ID of the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>stackId</i> The ID of the latest stack launched for this application.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>stackName</i> The name of the latest stack launched for this application.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>latestLaunchTime</i> The latest time that this application was launched successfully.<br/>        """
        pass

    def get_app_launch_configuration(self, appId: str=None) -> GetAppLaunchConfigurationResponse:
        r"""Retrieves the application launch configuration associated with the specified application.

        :param self:
        :param appId:  The ID of the application.<br/>
        :return: serverGroupLaunchConfigurations:  The launch configurations for server groups in this application.<br/>autoLaunch:  Indicates whether the application is configured to launch automatically after replication is complete.<br/>roleName:  The name of the service role in the customer's account that AWS CloudFormation uses to launch the application.<br/>appId:  The ID of the application.<br/>        """
        pass

    def get_app_replication_configuration(self, appId: str=None) -> GetAppReplicationConfigurationResponse:
        r"""Retrieves the application replication configuration associated with the specified application.

        :param self:
        :param appId:  The ID of the application.<br/>
        :return: serverGroupReplicationConfigurations:  The replication configurations associated with server groups in this application.<br/>        """
        pass

    def get_app_validation_configuration(self, appId: str) -> GetAppValidationConfigurationResponse:
        r"""Retrieves information about a configuration for validating an application.

        :param self:
        :param appId:  The ID of the application.<br/>
        :return: serverGroupValidationConfigurations:  The configuration for instance validation.<br/>appValidationConfigurations:  The configuration for application validation.<br/>        """
        pass

    def get_app_validation_output(self, appId: str) -> GetAppValidationOutputResponse:
        r"""Retrieves output from validating an application.

        :param self:
        :param appId:  The ID of the application.<br/>
        :return: validationOutputList:  The validation output.<br/>        """
        pass

    def get_connectors(self, nextToken: str=None, maxResults: int=None) -> GetConnectorsResponse:
        r"""Describes the connectors registered with the AWS SMS.

        :param self:
        :param maxResults:  The maximum number of results to return in a single call. The default value is 50. To retrieve the remaining results, make another call with the returned <code>NextToken</code> value.<br/>nextToken:  The token for the next set of results.<br/>
        :return: nextToken:  The token required to retrieve the next set of results. This value is null when there are no more results to return.<br/>connectorList:  Information about the registered connectors.<br/>        """
        pass

    def get_replication_jobs(self, replicationJobId: str=None, nextToken: str=None, maxResults: int=None) -> GetReplicationJobsResponse:
        r"""Describes the specified replication job or all of your replication jobs.

        :param self:
        :param maxResults:  The maximum number of results to return in a single call. The default value is 50. To retrieve the remaining results, make another call with the returned <code>NextToken</code> value.<br/>nextToken:  The token for the next set of results.<br/>replicationJobId:  The ID of the replication job.<br/>
        :return: nextToken:  The token required to retrieve the next set of results. This value is null when there are no more results to return.<br/>replicationJobList:  Information about the replication jobs.<br/>        """
        pass

    def get_replication_runs(self, replicationJobId: str, nextToken: str=None, maxResults: int=None) -> GetReplicationRunsResponse:
        r"""Describes the replication runs for the specified replication job.

        :param self:
        :param maxResults:  The maximum number of results to return in a single call. The default value is 50. To retrieve the remaining results, make another call with the returned <code>NextToken</code> value.<br/>nextToken:  The token for the next set of results.<br/>replicationJobId:  The ID of the replication job.<br/>
        :return: nextToken:  The token required to retrieve the next set of results. This value is null when there are no more results to return.<br/>replicationRunList:  Information about the replication runs.<br/>replicationJob:  Information about the replication job.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>replicationRunList</i> Information about the replication runs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>kmsKeyId</i> The ID of the KMS key for replication jobs that produce encrypted AMIs. This value can be any of the following:  <ul> <li> KMS key ID </li> <li> KMS key alias </li> <li> ARN referring to the KMS key ID </li> <li> ARN referring to the KMS key alias </li> </ul> If encrypted is enabled but a KMS key ID is not specified, the customer's default KMS key for Amazon EBS is used.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>encrypted</i> Indicates whether the replication job should produce encrypted AMIs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>numberOfRecentAmisToKeep</i> The number of recent AMIs to keep in the customer's account for a replication job. By default, the value is set to zero, meaning that all AMIs are kept.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> The description of the replication job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusMessage</i> The description of the current status of the replication job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>state</i> The state of the replication job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>latestAmiId</i> The ID of the latest Amazon Machine Image (AMI).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>roleName</i> The name of the IAM role to be used by AWS SMS.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>licenseType</i> The license type to be used for the AMI created by a successful replication run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>nextReplicationRunStartTime</i> The start time of the next replication run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>runOnce</i> Indicates whether to run the replication job one time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>frequency</i> The time between consecutive replication runs, in hours.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>seedReplicationTime</i> The seed replication time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>vmServer</i> Information about the VM server.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>vmServer</b>: Information about the VM server.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>serverType</i> The type of server.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>serverId</i> The ID of the server.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>replicationJobId</i> The ID of the replication job.<br/>The VM server location.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>vmServerAddress</b>: The VM server location.        """
        pass

    def get_servers(self, nextToken: str=None, maxResults: int=None, vmServerAddressList: List[VmServerAddress]=None) -> GetServersResponse:
        r"""Describes the servers in your server catalog. Before you can describe your servers, you must import them using <a>ImportServerCatalog</a>.

        :param self:
        :param vmServerAddressList:  The server addresses.<br/>maxResults:  The maximum number of results to return in a single call. The default value is 50. To retrieve the remaining results, make another call with the returned <code>NextToken</code> value.<br/>nextToken:  The token for the next set of results.<br/>
        :return: nextToken:  The token required to retrieve the next set of results. This value is null when there are no more results to return.<br/>serverList:  Information about the servers.<br/>serverCatalogStatus:  The status of the server catalog.<br/>lastModifiedOn:  The time when the server was last modified.<br/>        """
        pass

    def import_app_catalog(self, roleName: str=None) -> ImportAppCatalogResponse:
        r"""Allows application import from AWS Migration Hub.

        :param self:
        :param roleName:  The name of the service role. If you omit this parameter, we create a service-linked role for AWS Migration Hub in your account. Otherwise, the role that you provide must have the <a href="https://docs.aws.amazon.com/migrationhub/latest/ug/new-customer-setup.html#sms-managed">policy and trust policy</a> described in the <i>AWS Migration Hub User Guide</i>.<br/>
        :return:         """
        pass

    def import_server_catalog(self) -> ImportServerCatalogResponse:
        r"""Gathers a complete list of on-premises servers. Connectors must be installed and monitoring all servers to import. This call returns immediately, but might take additional time to retrieve all the servers.

        :param self:
        :param 
        :return:         """
        pass

    def launch_app(self, appId: str=None) -> LaunchAppResponse:
        r"""Launches the specified application as a stack in AWS CloudFormation.

        :param self:
        :param appId:  The ID of the application.<br/>
        :return:         """
        pass

    def list_apps(self, appIds: List[AppId]=None, nextToken: str=None, maxResults: int=None) -> ListAppsResponse:
        r"""Retrieves summaries for all applications.

        :param self:
        :param maxResults:  The maximum number of results to return in a single call. The default value is 100. To retrieve the remaining results, make another call with the returned <code>NextToken</code> value. <br/>nextToken:  The token for the next set of results.<br/>appIds:  The unique application IDs.<br/>
        :return: nextToken:  The token required to retrieve the next set of results. This value is null when there are no more results to return.<br/>apps:  The application summaries.<br/>        """
        pass

    def notify_app_validation_output(self, appId: str, notificationContext: NotificationContext=None) -> NotifyAppValidationOutputResponse:
        r"""Provides information to AWS SMS about whether application validation is successful.

        :param self:
        :param notificationContext:  The notification information.:<br/>appId:  The ID of the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusMessage</i> The status message.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the validation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>validationId</i> The ID of the validation.<br/>
        :return:         """
        pass

    def put_app_launch_configuration(self, appId: str=None, roleName: str=None, autoLaunch: AutoLaunch=None, serverGroupLaunchConfigurations: List[ServerGroupLaunchConfiguration]=None) -> PutAppLaunchConfigurationResponse:
        r"""Creates or updates the launch configuration for the specified application.

        :param self:
        :param serverGroupLaunchConfigurations:  Information about the launch configurations for server groups in the application.<br/>autoLaunch:  Indicates whether the application is configured to launch automatically after replication is complete.<br/>roleName:  The name of service role in the customer's account that AWS CloudFormation uses to launch the application.<br/>appId:  The ID of the application.<br/>
        :return:         """
        pass

    def put_app_replication_configuration(self, appId: str=None, serverGroupReplicationConfigurations: List[ServerGroupReplicationConfiguration]=None) -> PutAppReplicationConfigurationResponse:
        r"""Creates or updates the replication configuration for the specified application.

        :param self:
        :param serverGroupReplicationConfigurations:  Information about the replication configurations for server groups in the application.<br/>appId:  The ID of the application.<br/>
        :return:         """
        pass

    def put_app_validation_configuration(self, appId: str, appValidationConfigurations: List[AppValidationConfiguration]=None, serverGroupValidationConfigurations: List[ServerGroupValidationConfiguration]=None) -> PutAppValidationConfigurationResponse:
        r"""Creates or updates a validation configuration for the specified application.

        :param self:
        :param serverGroupValidationConfigurations:  The configuration for instance validation.<br/>appValidationConfigurations:  The configuration for application validation.<br/>appId:  The ID of the application.<br/>
        :return:         """
        pass

    def start_app_replication(self, appId: str=None) -> StartAppReplicationResponse:
        r"""Starts replicating the specified application by creating replication jobs for each server in the application.

        :param self:
        :param appId:  The ID of the application.<br/>
        :return:         """
        pass

    def start_on_demand_app_replication(self, appId: str, description: str=None) -> StartOnDemandAppReplicationResponse:
        r"""Starts an on-demand replication run for the specified application.

        :param self:
        :param description:  The description of the replication run.<br/>appId:  The ID of the application.<br/>
        :return:         """
        pass

    def start_on_demand_replication_run(self, replicationJobId: str, description: str=None) -> StartOnDemandReplicationRunResponse:
        r"""Starts an on-demand replication run for the specified replication job. This replication run starts immediately. This replication run is in addition to the ones already scheduled. There is a limit on the number of on-demand replications runs that you can request in a 24-hour period.

        :param self:
        :param description:  The description of the replication run.<br/>replicationJobId:  The ID of the replication job.<br/>
        :return: replicationRunId:  The ID of the replication run.<br/>        """
        pass

    def stop_app_replication(self, appId: str=None) -> StopAppReplicationResponse:
        r"""Stops replicating the specified application by deleting the replication job for each server in the application.

        :param self:
        :param appId:  The ID of the application.<br/>
        :return:         """
        pass

    def terminate_app(self, appId: str=None) -> TerminateAppResponse:
        r"""Terminates the stack for the specified application.

        :param self:
        :param appId:  The ID of the application.<br/>
        :return:         """
        pass

    def update_app(self, appId: str=None, name: str=None, description: str=None, roleName: str=None, serverGroups: List[ServerGroup]=None, tags: List[Tag]=None) -> UpdateAppResponse:
        r"""Updates the specified application.

        :param self:
        :param tags:  The tags to associate with the application.<br/>serverGroups:  The server groups in the application to update.<br/>roleName:  The name of the service role in the customer's account used by AWS SMS.<br/>description:  The new description of the application.<br/>name:  The new name of the application.<br/>appId:  The ID of the application.<br/>
        :return: tags:  The tags associated with the application.<br/>serverGroups:  The updated server groups in the application.<br/>appSummary:  A summary description of the application.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>totalServers</i> The number of servers present in the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>totalServerGroups</i> The number of server groups present in the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>roleName</i> The name of the service role in the customer's account used by AWS SMS.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastModified</i> The last modified time of the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationTime</i> The creation time of the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>launchDetails</i> Details about the latest launch of the application.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>launchDetails</b>: Details about the latest launch of the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>launchStatusMessage</i> A message related to the launch status of the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>launchStatus</i> The launch status of the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>launchConfigurationStatus</i> Status of the launch configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>latestReplicationTime</i> The timestamp of the application's most recent successful replication.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>replicationStatusMessage</i> A message related to the replication status of the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>replicationStatus</i> The replication status of the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>replicationConfigurationStatus</i> Status of the replication configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>statusMessage</i> A message related to the status of the application<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> Status of the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> The description of the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>importedAppId</i> The ID of the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>appId</i> The unique ID of the application.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>stackId</i> The ID of the latest stack launched for this application.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>stackName</i> The name of the latest stack launched for this application.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>latestLaunchTime</i> The latest time that this application was launched successfully.<br/>        """
        pass

    def update_replication_job(self, replicationJobId: str, frequency: int=None, nextReplicationRunStartTime: Timestamp=None, licenseType: str=None, roleName: str=None, description: str=None, numberOfRecentAmisToKeep: int=None, encrypted: Encrypted=None, kmsKeyId: str=None) -> UpdateReplicationJobResponse:
        r"""Updates the specified settings for the specified replication job.

        :param self:
        :param kmsKeyId:  The ID of the KMS key for replication jobs that produce encrypted AMIs. This value can be any of the following: <ul> <li> KMS key ID </li> <li> KMS key alias </li> <li> ARN referring to the KMS key ID </li> <li> ARN referring to the KMS key alias </li> </ul> If encrypted is enabled but a KMS key ID is not specified, the customer's default KMS key for Amazon EBS is used.<br/>encrypted:  When true, the replication job produces encrypted AMIs. For more information, <code>KmsKeyId</code>.<br/>numberOfRecentAmisToKeep:  The maximum number of SMS-created AMIs to retain. The oldest is deleted after the maximum number is reached and a new AMI is created.<br/>description:  The description of the replication job.<br/>roleName:  The name of the IAM role to be used by AWS SMS.<br/>licenseType:  The license type to be used for the AMI created by a successful replication run.<br/>nextReplicationRunStartTime:  The start time of the next replication run.<br/>frequency:  The time between consecutive replication runs, in hours.<br/>replicationJobId:  The ID of the replication job.<br/>
        :return:         """
        pass





class PinpointSMSVoice(BaseClient):
    r"""Pinpoint SMS and Voice Messaging public facing APIs"""



    class CreateConfigurationSetRequest(Mapping):
        pass
    
    class CreateConfigurationSetResponse(Mapping):
        pass
    
    class CreateConfigurationSetEventDestinationRequest(Mapping):
        pass
    
    class CreateConfigurationSetEventDestinationResponse(Mapping):
        pass
    
    class EventDestinationDefinition(Mapping):
        pass
    
    class DeleteConfigurationSetRequest(Mapping):
        pass
    
    class DeleteConfigurationSetResponse(Mapping):
        pass
    
    class DeleteConfigurationSetEventDestinationRequest(Mapping):
        pass
    
    class DeleteConfigurationSetEventDestinationResponse(Mapping):
        pass
    
    class GetConfigurationSetEventDestinationsRequest(Mapping):
        pass
    
    class GetConfigurationSetEventDestinationsResponse(Mapping):
        pass
    
    class ListConfigurationSetsRequest(Mapping):
        pass
    
    class ListConfigurationSetsResponse(Mapping):
        pass
    
    class SendVoiceMessageRequest(Mapping):
        pass
    
    class SendVoiceMessageResponse(Mapping):
        pass
    
    class VoiceMessageContent(Mapping):
        pass
    
    class UpdateConfigurationSetEventDestinationRequest(Mapping):
        pass
    
    class UpdateConfigurationSetEventDestinationResponse(Mapping):
        pass
    
    def create_configuration_set(self, ConfigurationSetName: str=None) -> CreateConfigurationSetResponse:
        r"""Create a new configuration set. After you create the configuration set, you can add one or more event destinations to it.

        :param self:
        :param ConfigurationSetName:  The name that you want to give the configuration set.<br/>
        :return:         """
        pass

    def create_configuration_set_event_destination(self, ConfigurationSetName: str, EventDestination: EventDestinationDefinition=None, EventDestinationName: str=None) -> CreateConfigurationSetEventDestinationResponse:
        r"""Create a new event destination in a configuration set.

        :param self:
        :param EventDestinationName:  A name that identifies the event destination.<br/>EventDestination:  An object that defines a single event destination.:<br/>ConfigurationSetName:  ConfigurationSetName<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnsDestination</i> An object that contains information about an event destination that sends data to Amazon SNS.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SnsDestination</b>: An object that contains information about an event destination that sends data to Amazon SNS.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MatchingEventTypes</i> An array of EventDestination objects. Each EventDestination object includes ARNs and other information that define an event destination.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KinesisFirehoseDestination</i> An object that contains information about an event destination that sends data to Amazon Kinesis Data Firehose.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>KinesisFirehoseDestination</b>: An object that contains information about an event destination that sends data to Amazon Kinesis Data Firehose.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Indicates whether or not the event destination is enabled. If the event destination is enabled, then Amazon Pinpoint sends response data to the specified event destination.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudWatchLogsDestination</i> An object that contains information about an event destination that sends data to Amazon CloudWatch Logs.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CloudWatchLogsDestination</b>: An object that contains information about an event destination that sends data to Amazon CloudWatch Logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LogGroupArn</i> The name of the Amazon CloudWatch Log Group that you want to record events in.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IamRoleArn</i> The Amazon Resource Name (ARN) of an Amazon Identity and Access Management (IAM) role that is able to write event data to an Amazon CloudWatch destination.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IamRoleArn</i> The Amazon Resource Name (ARN) of the Amazon Kinesis Data Firehose destination that you want to use in the event destination.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DeliveryStreamArn</i> The Amazon Resource Name (ARN) of an IAM role that can write data to an Amazon Kinesis Data Firehose stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TopicArn</i> The Amazon Resource Name (ARN) of the Amazon SNS topic that you want to publish events to.<br/>
        :return:         """
        pass

    def delete_configuration_set(self, ConfigurationSetName: str) -> DeleteConfigurationSetResponse:
        r"""Deletes an existing configuration set.

        :param self:
        :param ConfigurationSetName:  ConfigurationSetName<br/>
        :return:         """
        pass

    def delete_configuration_set_event_destination(self, EventDestinationName: str, ConfigurationSetName: str) -> DeleteConfigurationSetEventDestinationResponse:
        r"""Deletes an event destination in a configuration set.

        :param self:
        :param EventDestinationName:  EventDestinationName<br/>ConfigurationSetName:  ConfigurationSetName<br/>
        :return:         """
        pass

    def get_configuration_set_event_destinations(self, ConfigurationSetName: str) -> GetConfigurationSetEventDestinationsResponse:
        r"""Obtain information about an event destination, including the types of events it reports, the Amazon Resource Name (ARN) of the destination, and the name of the event destination.

        :param self:
        :param ConfigurationSetName:  ConfigurationSetName<br/>
        :return: EventDestinations:  An array of EventDestination objects. Each EventDestination object includes ARNs and other information that define an event destination.<br/>        """
        pass

    def list_configuration_sets(self, NextToken: str=None, PageSize: str=None) -> ListConfigurationSetsResponse:
        r"""List all of the configuration sets associated with your Amazon Pinpoint account in the current region.

        :param self:
        :param PageSize:  Used to specify the number of items that should be returned in the response.<br/>NextToken:  A token returned from a previous call to the API that indicates the position in the list of results.<br/>
        :return: NextToken:  A token returned from a previous call to ListConfigurationSets to indicate the position in the list of configuration sets.<br/>ConfigurationSets:  An object that contains a list of configuration sets for your account in the current region.<br/>        """
        pass

    def send_voice_message(self, CallerId: str=None, ConfigurationSetName: str=None, Content: VoiceMessageContent=None, DestinationPhoneNumber: str=None, OriginationPhoneNumber: str=None) -> SendVoiceMessageResponse:
        r"""Create a new voice message and send it to a recipient's phone number.

        :param self:
        :param OriginationPhoneNumber:  The phone number that Amazon Pinpoint should use to send the voice message. This isn't necessarily the phone number that appears on recipients' devices when they receive the message, because you can specify a CallerId parameter in the request.<br/>DestinationPhoneNumber:  The phone number that you want to send the voice message to.<br/>Content:  An object that contains a voice message and information about the recipient that you want to send it to.:<br/>ConfigurationSetName:  The name of the configuration set that you want to use to send the message.<br/>CallerId:  The phone number that appears on recipients' devices when they receive the message.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SSMLMessage</i> An object that defines a message that contains SSML-formatted text.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SSMLMessage</b>: An object that defines a message that contains SSML-formatted text.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PlainTextMessage</i> An object that defines a message that contains unformatted text.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PlainTextMessage</b>: An object that defines a message that contains unformatted text.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CallInstructionsMessage</i> An object that defines a message that contains text formatted using Amazon Pinpoint Voice Instructions markup.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CallInstructionsMessage</b>: An object that defines a message that contains text formatted using Amazon Pinpoint Voice Instructions markup.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Text</i> The language to use when delivering the message. For a complete list of supported languages, see the Amazon Polly Developer Guide.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VoiceId</i> The name of the voice that you want to use to deliver the message. For a complete list of supported voices, see the Amazon Polly Developer Guide.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Text</i> The plain (not SSML-formatted) text to deliver to the recipient.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LanguageCode</i> The language to use when delivering the message. For a complete list of supported languages, see the Amazon Polly Developer Guide.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VoiceId</i> The name of the voice that you want to use to deliver the message. For a complete list of supported voices, see the Amazon Polly Developer Guide.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Text</i> The SSML-formatted text to deliver to the recipient.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LanguageCode</i> The language to use when delivering the message. For a complete list of supported languages, see the Amazon Polly Developer Guide.<br/>
        :return: MessageId:  A unique identifier for the voice message.<br/>        """
        pass

    def update_configuration_set_event_destination(self, EventDestinationName: str, ConfigurationSetName: str, EventDestination: EventDestinationDefinition=None) -> UpdateConfigurationSetEventDestinationResponse:
        r"""Update an event destination in a configuration set. An event destination is a location that you publish information about your voice calls to. For example, you can log an event to an Amazon CloudWatch destination when a call fails.

        :param self:
        :param EventDestinationName:  EventDestinationName<br/>EventDestination:  An object that defines a single event destination.:<br/>ConfigurationSetName:  ConfigurationSetName<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnsDestination</i> An object that contains information about an event destination that sends data to Amazon SNS.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SnsDestination</b>: An object that contains information about an event destination that sends data to Amazon SNS.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MatchingEventTypes</i> An array of EventDestination objects. Each EventDestination object includes ARNs and other information that define an event destination.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KinesisFirehoseDestination</i> An object that contains information about an event destination that sends data to Amazon Kinesis Data Firehose.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>KinesisFirehoseDestination</b>: An object that contains information about an event destination that sends data to Amazon Kinesis Data Firehose.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Enabled</i> Indicates whether or not the event destination is enabled. If the event destination is enabled, then Amazon Pinpoint sends response data to the specified event destination.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudWatchLogsDestination</i> An object that contains information about an event destination that sends data to Amazon CloudWatch Logs.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CloudWatchLogsDestination</b>: An object that contains information about an event destination that sends data to Amazon CloudWatch Logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LogGroupArn</i> The name of the Amazon CloudWatch Log Group that you want to record events in.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IamRoleArn</i> The Amazon Resource Name (ARN) of an Amazon Identity and Access Management (IAM) role that is able to write event data to an Amazon CloudWatch destination.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IamRoleArn</i> The Amazon Resource Name (ARN) of the Amazon Kinesis Data Firehose destination that you want to use in the event destination.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DeliveryStreamArn</i> The Amazon Resource Name (ARN) of an IAM role that can write data to an Amazon Kinesis Data Firehose stream.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TopicArn</i> The Amazon Resource Name (ARN) of the Amazon SNS topic that you want to publish events to.<br/>
        :return:         """
        pass





class Snowball(BaseClient):
    r"""AWS Snow Family is a petabyte-scale data transport solution that uses secure devices to transfer large amounts of data between your on-premises data centers and Amazon Simple Storage Service (Amazon S3). The Snow commands described here provide access to the same functionality that is available in the AWS Snow Family Management Console, which enables you to create and manage jobs for a Snow device. To transfer data locally with a Snow device, you'll need to use the Snowball Edge client or the Amazon S3 API Interface for Snowball or AWS OpsHub for Snow Family. For more information, see the <a href="https://docs.aws.amazon.com/AWSImportExport/latest/ug/api-reference.html">User Guide</a>."""


    class ListJobsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_jobs` for valid parameters"""
            pass
    class DescribeAddressesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_addresses` for valid parameters"""
            pass
    class ListClusterJobsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_cluster_jobs` for valid parameters"""
            pass
    class ListClustersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_clusters` for valid parameters"""
            pass
    class ListCompatibleImagesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_compatible_images` for valid parameters"""
            pass


    class CancelClusterRequest(Mapping):
        pass
    
    class CancelClusterResult(Mapping):
        pass
    
    class CancelJobRequest(Mapping):
        pass
    
    class CancelJobResult(Mapping):
        pass
    
    class CreateAddressRequest(Mapping):
        pass
    
    class CreateAddressResult(Mapping):
        pass
    
    class Address(Mapping):
        pass
    
    class CreateClusterRequest(Mapping):
        pass
    
    class CreateClusterResult(Mapping):
        pass
    
    class JobResource(Mapping):
        pass
    
    class OnDeviceServiceConfiguration(Mapping):
        pass
    
    class Notification(Mapping):
        pass
    
    class TaxDocuments(Mapping):
        pass
    
    class CreateJobRequest(Mapping):
        pass
    
    class CreateJobResult(Mapping):
        pass
    
    class DeviceConfiguration(Mapping):
        pass
    
    class CreateLongTermPricingRequest(Mapping):
        pass
    
    class CreateLongTermPricingResult(Mapping):
        pass
    
    class JavaBoolean(object):
        pass
    
    class CreateReturnShippingLabelRequest(Mapping):
        pass
    
    class CreateReturnShippingLabelResult(Mapping):
        pass
    
    class DescribeAddressRequest(Mapping):
        pass
    
    class DescribeAddressResult(Mapping):
        pass
    
    class DescribeAddressesRequest(Mapping):
        pass
    
    class DescribeAddressesResult(Mapping):
        pass
    
    class DescribeClusterRequest(Mapping):
        pass
    
    class DescribeClusterResult(Mapping):
        pass
    
    class DescribeJobRequest(Mapping):
        pass
    
    class DescribeJobResult(Mapping):
        pass
    
    class DescribeReturnShippingLabelRequest(Mapping):
        pass
    
    class DescribeReturnShippingLabelResult(Mapping):
        pass
    
    class GetJobManifestRequest(Mapping):
        pass
    
    class GetJobManifestResult(Mapping):
        pass
    
    class GetJobUnlockCodeRequest(Mapping):
        pass
    
    class GetJobUnlockCodeResult(Mapping):
        pass
    
    class GetSnowballUsageRequest(Mapping):
        pass
    
    class GetSnowballUsageResult(Mapping):
        pass
    
    class GetSoftwareUpdatesRequest(Mapping):
        pass
    
    class GetSoftwareUpdatesResult(Mapping):
        pass
    
    class ListClusterJobsRequest(Mapping):
        pass
    
    class ListClusterJobsResult(Mapping):
        pass
    
    class ListClustersRequest(Mapping):
        pass
    
    class ListClustersResult(Mapping):
        pass
    
    class ListCompatibleImagesRequest(Mapping):
        pass
    
    class ListCompatibleImagesResult(Mapping):
        pass
    
    class ListJobsRequest(Mapping):
        pass
    
    class ListJobsResult(Mapping):
        pass
    
    class ListLongTermPricingRequest(Mapping):
        pass
    
    class ListLongTermPricingResult(Mapping):
        pass
    
    class UpdateClusterRequest(Mapping):
        pass
    
    class UpdateClusterResult(Mapping):
        pass
    
    class UpdateJobRequest(Mapping):
        pass
    
    class UpdateJobResult(Mapping):
        pass
    
    class UpdateJobShipmentStateRequest(Mapping):
        pass
    
    class UpdateJobShipmentStateResult(Mapping):
        pass
    
    class UpdateLongTermPricingRequest(Mapping):
        pass
    
    class UpdateLongTermPricingResult(Mapping):
        pass
    
    def cancel_cluster(self, ClusterId: str) -> CancelClusterResult:
        r"""Cancels a cluster job. You can only cancel a cluster job while it's in the <code>AwaitingQuorum</code> status. You'll have at least an hour after creating a cluster job to cancel it.

        :param self:
        :param ClusterId:  The 39-character ID for the cluster that you want to cancel, for example <code>CID123e4567-e89b-12d3-a456-426655440000</code>.<br/>
        :return:         """
        pass

    def cancel_job(self, JobId: str) -> CancelJobResult:
        r"""Cancels the specified job. You can only cancel a job before its <code>JobState</code> value changes to <code>PreparingAppliance</code>. Requesting the <code>ListJobs</code> or <code>DescribeJob</code> action returns a job's <code>JobState</code> as part of the response element data returned.

        :param self:
        :param JobId:  The 39-character job ID for the job that you want to cancel, for example <code>JID123e4567-e89b-12d3-a456-426655440000</code>.<br/>
        :return:         """
        pass

    def create_address(self, Address: Address) -> CreateAddressResult:
        r"""Creates an address for a Snow device to be shipped to. In most regions, addresses are validated at the time of creation. The address you provide must be located within the serviceable area of your region. If the address is invalid or unsupported, then an exception is thrown.

        :param self:
        :param Address:  The address that you want the Snow device shipped to.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsRestricted</i> If the address you are creating is a primary address, then set this option to true. This field is not supported in most regions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PhoneNumber</i> The phone number associated with an address that a Snow device is to be delivered to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PostalCode</i> The postal code in an address that a Snow device is to be delivered to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Country</i> The country in an address that a Snow device is to be delivered to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Landmark</i> This field is no longer used and the value is ignored.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PrefectureOrDistrict</i> This field is no longer used and the value is ignored.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StateOrProvince</i> The state or province in an address that a Snow device is to be delivered to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>City</i> The city in an address that a Snow device is to be delivered to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Street3</i> The third line in a street address that a Snow device is to be delivered to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Street2</i> The second line in a street address that a Snow device is to be delivered to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Street1</i> The first line in a street address that a Snow device is to be delivered to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Company</i> The name of the company to receive a Snow device at an address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of a person to receive a Snow device at an address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AddressId</i> The unique ID for an address.<br/>
        :return: AddressId:  The automatically generated ID for a specific address. You'll use this ID when you create a job to specify which address you want the Snow device for that job shipped to.<br/>        """
        pass

    def create_cluster(self, ShippingOption: str, SnowballType: str, RoleARN: str, AddressId: str, Resources: JobResource, JobType: str, OnDeviceServiceConfiguration: OnDeviceServiceConfiguration=None, Description: str=None, KmsKeyARN: str=None, Notification: Notification=None, ForwardingAddressId: str=None, TaxDocuments: TaxDocuments=None, RemoteManagement: str=None) -> CreateClusterResult:
        r"""Creates an empty cluster. Each cluster supports five nodes. You use the <a>CreateJob</a> action separately to create the jobs for each of these nodes. The cluster does not ship until these five node jobs have been created.

        :param self:
        :param RemoteManagement:  Allows you to securely operate and manage Snow devices in a cluster remotely from outside of your internal network. When set to <code>INSTALLED_AUTOSTART</code>, remote management will automatically be available when the device arrives at your location. Otherwise, you need to use the Snowball Client to manage the device.<br/>TaxDocuments:  The tax documents required in your AWS Region.:<br/>ForwardingAddressId:  The forwarding address ID for a cluster. This field is not supported in most regions.<br/>Notification:  The Amazon Simple Notification Service (Amazon SNS) notification settings for this cluster.:<br/>ShippingOption:  The shipping speed for each node in this cluster. This speed doesn't dictate how soon you'll get each Snowball Edge device, rather it represents how quickly each device moves to its destination while in transit. Regional shipping speeds are as follows:  <ul> <li> In Australia, you have access to express shipping. Typically, Snow devices shipped express are delivered in about a day. </li> <li> In the European Union (EU), you have access to express shipping. Typically, Snow devices shipped express are delivered in about a day. In addition, most countries in the EU have access to standard shipping, which typically takes less than a week, one way. </li> <li> In India, Snow devices are delivered in one to seven days. </li> <li> In the United States of America (US), you have access to one-day shipping and two-day shipping. </li> </ul> <ul> <li> In Australia, you have access to express shipping. Typically, devices shipped express are delivered in about a day. </li> <li> In the European Union (EU), you have access to express shipping. Typically, Snow devices shipped express are delivered in about a day. In addition, most countries in the EU have access to standard shipping, which typically takes less than a week, one way. </li> <li> In India, Snow devices are delivered in one to seven days. </li> <li> In the US, you have access to one-day shipping and two-day shipping. </li> </ul><br/>SnowballType:  The type of AWS Snow Family device to use for this cluster.  <note> For cluster jobs, AWS Snow Family currently supports only the <code>EDGE</code> device type. </note> For more information, see "https://docs.aws.amazon.com/snowball/latest/snowcone-guide/snow-device-types.html" (Snow Family Devices and Capacity) in the <i>Snowcone User Guide</i> or "https://docs.aws.amazon.com/snowball/latest/developer-guide/snow-device-types.html" (Snow Family Devices and Capacity) in the <i>Snowcone User Guide</i>.<br/>RoleARN:  The <code>RoleARN</code> that you want to associate with this cluster. <code>RoleArn</code> values are created by using the <a href="https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateRole.html">CreateRole</a> API action in AWS Identity and Access Management (IAM).<br/>KmsKeyARN:  The <code>KmsKeyARN</code> value that you want to associate with this cluster. <code>KmsKeyARN</code> values are created by using the <a href="https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html">CreateKey</a> API action in AWS Key Management Service (AWS KMS). <br/>AddressId:  The ID for the address that you want the cluster shipped to.<br/>Description:  An optional description of this specific cluster, for example <code>Environmental Data Cluster-01</code>.<br/>OnDeviceServiceConfiguration:  Specifies the service or services on the Snow Family device that your transferred data will be exported from or imported into. AWS Snow Family supports Amazon S3 and NFS (Network File System).:<br/>Resources:  The resources associated with the cluster job. These resources include Amazon S3 buckets and optional AWS Lambda functions written in the Python language. :<br/>JobType:  The type of job for this cluster. Currently, the only job type supported for clusters is <code>LOCAL_USE</code>. For more information, see "https://docs.aws.amazon.com/snowball/latest/snowcone-guide/snow-device-types.html" (Snow Family Devices and Capacity) in the <i>Snowcone User Guide</i> or "https://docs.aws.amazon.com/snowball/latest/developer-guide/snow-device-types.html" (Snow Family Devices and Capacity) in the <i>Snowcone User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Ec2AmiResources</i> The Amazon Machine Images (AMIs) associated with this job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LambdaResources</i> The Python-language Lambda functions for this job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Resources</i> An array of <code>S3Resource</code> objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NFSOnDeviceService</i> Represents the NFS service on a Snow Family device.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>NFSOnDeviceService</b>: Represents the NFS service on a Snow Family device.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageUnit</i> The scale unit of the NFS storage on the device. Valid values: TB.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageLimit</i> The maximum NFS storage for one Snowball Family device.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NotifyAll</i> Any change in job state will trigger a notification for this job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobStatesToNotify</i> The list of job states that will trigger a notification for this job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnsTopicARN</i> The new SNS <code>TopicArn</code> that you want to associate with this job. You can create Amazon Resource Names (ARNs) for topics by using the <a href="https://docs.aws.amazon.com/sns/latest/api/API_CreateTopic.html">CreateTopic</a> Amazon SNS API action. You can subscribe email addresses to an Amazon SNS topic through the AWS Management Console, or by using the <a href="https://docs.aws.amazon.com/sns/latest/api/API_Subscribe.html">Subscribe</a> Amazon Simple Notification Service (Amazon SNS) API action.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IND</i> The tax documents required in AWS Regions in India.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>IND</b>: The tax documents required in AWS Regions in India.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>GSTIN</i> The Goods and Services Tax (GST) documents required in AWS Regions in India.<br/>
        :return: ClusterId:  The automatically generated ID for a cluster.<br/>        """
        pass

    def create_job(self, JobType: str=None, Resources: JobResource=None, OnDeviceServiceConfiguration: OnDeviceServiceConfiguration=None, Description: str=None, AddressId: str=None, KmsKeyARN: str=None, RoleARN: str=None, SnowballCapacityPreference: str=None, ShippingOption: str=None, Notification: Notification=None, ClusterId: str=None, SnowballType: str=None, ForwardingAddressId: str=None, TaxDocuments: TaxDocuments=None, DeviceConfiguration: DeviceConfiguration=None, RemoteManagement: str=None, LongTermPricingId: str=None) -> CreateJobResult:
        r"""Creates a job to import or export data between Amazon S3 and your on-premises data center. Your AWS account must have the right trust policies and permissions in place to create a job for a Snow device. If you're creating a job for a node in a cluster, you only need to provide the <code>clusterId</code> value; the other job attributes are inherited from the cluster.  <note> Only the Snowball; Edge device type is supported when ordering clustered jobs. The device capacity is optional. Availability of device types differ by AWS Region. For more information about Region availability, see <a href="https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/?p=ngi&amp;loc=4">AWS Regional Services</a>. </note> <p/> <p class="title"> <b>AWS Snow Family device types and their capacities.</b>  <ul> <li> Snow Family device type: <b>SNC1_SSD</b>  <ul> <li> Capacity: T14 </li> <li> Description: Snowcone  </li> </ul> <p/> </li> <li> Snow Family device type: <b>SNC1_HDD</b>  <ul> <li> Capacity: T8 </li> <li> Description: Snowcone  </li> </ul> <p/> </li> <li> Device type: <b>EDGE_S</b>  <ul> <li> Capacity: T98 </li> <li> Description: Snowball Edge Storage Optimized for data transfer only  </li> </ul> <p/> </li> <li> Device type: <b>EDGE_CG</b>  <ul> <li> Capacity: T42 </li> <li> Description: Snowball Edge Compute Optimized with GPU </li> </ul> <p/> </li> <li> Device type: <b>EDGE_C</b>  <ul> <li> Capacity: T42 </li> <li> Description: Snowball Edge Compute Optimized without GPU </li> </ul> <p/> </li> <li> Device type: <b>EDGE</b>  <ul> <li> Capacity: T100 </li> <li> Description: Snowball Edge Storage Optimized with EC2 Compute </li> </ul> <p/> </li> <li> Device type: <b>STANDARD</b>  <ul> <li> Capacity: T50 </li> <li> Description: Original Snowball device <note> This device is only available in the Ningxia, Beijing, and Singapore AWS Regions.  </note> </li> </ul> <p/> </li> <li> Device type: <b>STANDARD</b>  <ul> <li> Capacity: T80 </li> <li> Description: Original Snowball device <note> This device is only available in the Ningxia, Beijing, and Singapore AWS Regions.  </note> </li> </ul> <p/> </li> </ul>

        :param self:
        :param LongTermPricingId:  The ID of the long-term pricing type for the device.<br/>RemoteManagement:  Allows you to securely operate and manage Snowcone devices remotely from outside of your internal network. When set to <code>INSTALLED_AUTOSTART</code>, remote management will automatically be available when the device arrives at your location. Otherwise, you need to use the Snowball Client to manage the device.<br/>DeviceConfiguration:  Defines the device configuration for an AWS Snowcone job. For more information, see "https://docs.aws.amazon.com/snowball/latest/snowcone-guide/snow-device-types.html" (Snow Family Devices and Capacity) in the <i>Snowcone User Guide</i> or "https://docs.aws.amazon.com/snowball/latest/developer-guide/snow-device-types.html" (Snow Family Devices and Capacity) in the <i>Snowcone User Guide</i>.:<br/>TaxDocuments:  The tax documents required in your AWS Region.:<br/>ForwardingAddressId:  The forwarding address ID for a job. This field is not supported in most Regions.<br/>SnowballType:  The type of AWS Snow Family device to use for this job.  <note> For cluster jobs, AWS Snow Family currently supports only the <code>EDGE</code> device type. </note> The type of AWS Snow device to use for this job. Currently, the only supported device type for cluster jobs is <code>EDGE</code>. For more information, see <a href="https://docs.aws.amazon.com/snowball/latest/developer-guide/device-differences.html">Snowball Edge Device Options</a> in the Snowball Edge Developer Guide. For more information, see "https://docs.aws.amazon.com/snowball/latest/snowcone-guide/snow-device-types.html" (Snow Family Devices and Capacity) in the <i>Snowcone User Guide</i> or "https://docs.aws.amazon.com/snowball/latest/developer-guide/snow-device-types.html" (Snow Family Devices and Capacity) in the <i>Snowcone User Guide</i>.<br/>ClusterId:  The ID of a cluster. If you're creating a job for a node in a cluster, you need to provide only this <code>clusterId</code> value. The other job attributes are inherited from the cluster.<br/>Notification:  Defines the Amazon Simple Notification Service (Amazon SNS) notification settings for this job.:<br/>ShippingOption:  The shipping speed for this job. This speed doesn't dictate how soon you'll get the Snow device, rather it represents how quickly the Snow device moves to its destination while in transit. Regional shipping speeds are as follows: <ul> <li> In Australia, you have access to express shipping. Typically, Snow devices shipped express are delivered in about a day. </li> <li> In the European Union (EU), you have access to express shipping. Typically, Snow devices shipped express are delivered in about a day. In addition, most countries in the EU have access to standard shipping, which typically takes less than a week, one way. </li> <li> In India, Snow devices are delivered in one to seven days. </li> <li> In the US, you have access to one-day shipping and two-day shipping. </li> </ul><br/>SnowballCapacityPreference:  If your job is being created in one of the US regions, you have the option of specifying what size Snow device you'd like for this job. In all other regions, Snowballs come with 80 TB in storage capacity. For more information, see "https://docs.aws.amazon.com/snowball/latest/snowcone-guide/snow-device-types.html" (Snow Family Devices and Capacity) in the <i>Snowcone User Guide</i> or "https://docs.aws.amazon.com/snowball/latest/developer-guide/snow-device-types.html" (Snow Family Devices and Capacity) in the <i>Snowcone User Guide</i>.<br/>RoleARN:  The <code>RoleARN</code> that you want to associate with this job. <code>RoleArn</code>s are created using the <a href="https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateRole.html">CreateRole</a> AWS Identity and Access Management (IAM) API action.<br/>KmsKeyARN:  The <code>KmsKeyARN</code> that you want to associate with this job. <code>KmsKeyARN</code>s are created using the <a href="https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html">CreateKey</a> AWS Key Management Service (KMS) API action.<br/>AddressId:  The ID for the address that you want the Snow device shipped to.<br/>Description:  Defines an optional description of this specific job, for example <code>Important Photos 2016-08-11</code>.<br/>OnDeviceServiceConfiguration:  Specifies the service or services on the Snow Family device that your transferred data will be exported from or imported into. AWS Snow Family supports Amazon S3 and NFS (Network File System).:<br/>Resources:  Defines the Amazon S3 buckets associated with this job. With <code>IMPORT</code> jobs, you specify the bucket or buckets that your transferred data will be imported into. With <code>EXPORT</code> jobs, you specify the bucket or buckets that your transferred data will be exported from. Optionally, you can also specify a <code>KeyRange</code> value. If you choose to export a range, you define the length of the range by providing either an inclusive <code>BeginMarker</code> value, an inclusive <code>EndMarker</code> value, or both. Ranges are UTF-8 binary sorted.:<br/>JobType:  Defines the type of job that you're creating. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Ec2AmiResources</i> The Amazon Machine Images (AMIs) associated with this job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LambdaResources</i> The Python-language Lambda functions for this job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Resources</i> An array of <code>S3Resource</code> objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NFSOnDeviceService</i> Represents the NFS service on a Snow Family device.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>NFSOnDeviceService</b>: Represents the NFS service on a Snow Family device.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageUnit</i> The scale unit of the NFS storage on the device. Valid values: TB.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageLimit</i> The maximum NFS storage for one Snowball Family device.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NotifyAll</i> Any change in job state will trigger a notification for this job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobStatesToNotify</i> The list of job states that will trigger a notification for this job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnsTopicARN</i> The new SNS <code>TopicArn</code> that you want to associate with this job. You can create Amazon Resource Names (ARNs) for topics by using the <a href="https://docs.aws.amazon.com/sns/latest/api/API_CreateTopic.html">CreateTopic</a> Amazon SNS API action. You can subscribe email addresses to an Amazon SNS topic through the AWS Management Console, or by using the <a href="https://docs.aws.amazon.com/sns/latest/api/API_Subscribe.html">Subscribe</a> Amazon Simple Notification Service (Amazon SNS) API action.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IND</i> The tax documents required in AWS Regions in India.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>IND</b>: The tax documents required in AWS Regions in India.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>GSTIN</i> The Goods and Services Tax (GST) documents required in AWS Regions in India.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnowconeDeviceConfiguration</i> Returns information about the device configuration for an AWS Snowcone job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SnowconeDeviceConfiguration</b>: Returns information about the device configuration for an AWS Snowcone job.<br/>Configures the wireless connection for the AWS Snowcone device.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>WirelessConnection</b>: Configures the wireless connection for the AWS Snowcone device.
        :return: JobId:  The automatically generated ID for a job, for example <code>JID123e4567-e89b-12d3-a456-426655440000</code>.<br/>        """
        pass

    def create_long_term_pricing(self, LongTermPricingType: str, IsLongTermPricingAutoRenew: JavaBoolean=None, SnowballType: str=None) -> CreateLongTermPricingResult:
        r"""Creates a job with the long-term usage option for a device. The long-term usage is a 1-year or 3-year long-term pricing type for the device. You are billed upfront, and AWS provides discounts for long-term pricing. 

        :param self:
        :param SnowballType:  The type of AWS Snow Family device to use for the long-term pricing job.<br/>IsLongTermPricingAutoRenew:  Specifies whether the current long-term pricing type for the device should be renewed.<br/>LongTermPricingType:  The type of long-term pricing option you want for the device, either 1-year or 3-year long-term pricing.<br/>
        :return: LongTermPricingId:  The ID of the long-term pricing type for the device.<br/>        """
        pass

    def create_return_shipping_label(self, JobId: str, ShippingOption: str=None) -> CreateReturnShippingLabelResult:
        r"""Creates a shipping label that will be used to return the Snow device to AWS.

        :param self:
        :param ShippingOption:  The shipping speed for a particular job. This speed doesn't dictate how soon the device is returned to AWS. This speed represents how quickly it moves to its destination while in transit. Regional shipping speeds are as follows:<br/>JobId:  The ID for a job that you want to create the return shipping label for; for example, <code>JID123e4567-e89b-12d3-a456-426655440000</code>.<br/>
        :return: Status:  The status information of the task on a Snow device that is being returned to AWS.<br/>        """
        pass

    def describe_address(self, AddressId: str) -> DescribeAddressResult:
        r"""Takes an <code>AddressId</code> and returns specific details about that address in the form of an <code>Address</code> object.

        :param self:
        :param AddressId:  The automatically generated ID for a specific address.<br/>
        :return: Address:  The address that you want the Snow device(s) associated with a specific job to be shipped to.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsRestricted</i> If the address you are creating is a primary address, then set this option to true. This field is not supported in most regions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PhoneNumber</i> The phone number associated with an address that a Snow device is to be delivered to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PostalCode</i> The postal code in an address that a Snow device is to be delivered to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Country</i> The country in an address that a Snow device is to be delivered to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Landmark</i> This field is no longer used and the value is ignored.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PrefectureOrDistrict</i> This field is no longer used and the value is ignored.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StateOrProvince</i> The state or province in an address that a Snow device is to be delivered to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>City</i> The city in an address that a Snow device is to be delivered to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Street3</i> The third line in a street address that a Snow device is to be delivered to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Street2</i> The second line in a street address that a Snow device is to be delivered to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Street1</i> The first line in a street address that a Snow device is to be delivered to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Company</i> The name of the company to receive a Snow device at an address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of a person to receive a Snow device at an address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AddressId</i> The unique ID for an address.<br/>        """
        pass

    def describe_addresses(self, MaxResults: int=None, NextToken: str=None) -> DescribeAddressesResult:
        r"""Returns a specified number of <code>ADDRESS</code> objects. Calling this API in one of the US regions will return addresses from the list of all addresses associated with this account in all US regions.

        :param self:
        :param NextToken:  HTTP requests are stateless. To identify what object comes "next" in the list of <code>ADDRESS</code> objects, you have the option of specifying a value for <code>NextToken</code> as the starting point for your list of returned addresses.<br/>MaxResults:  The number of <code>ADDRESS</code> objects to return.<br/>
        :return: NextToken:  HTTP requests are stateless. If you use the automatically generated <code>NextToken</code> value in your next <code>DescribeAddresses</code> call, your list of returned addresses will start from this point in the array.<br/>Addresses:  The Snow device shipping addresses that were created for this account.<br/>        """
        pass

    def describe_cluster(self, ClusterId: str) -> DescribeClusterResult:
        r"""Returns information about a specific cluster including shipping information, cluster status, and other important metadata.

        :param self:
        :param ClusterId:  The automatically generated ID for a cluster.<br/>
        :return: ClusterMetadata:  Information about a specific cluster, including shipping information, cluster status, and other important metadata.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OnDeviceServiceConfiguration</i> Represents metadata and configuration settings for services on an AWS Snow Family device.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>OnDeviceServiceConfiguration</b>: Represents metadata and configuration settings for services on an AWS Snow Family device.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TaxDocuments</i> The tax documents required in your AWS Region.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TaxDocuments</b>: The tax documents required in your AWS Region.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ForwardingAddressId</i> The ID of the address that you want a cluster shipped to, after it will be shipped to its primary address. This field is not supported in most regions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Notification</i> The Amazon Simple Notification Service (Amazon SNS) notification settings for this cluster.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Notification</b>: The Amazon Simple Notification Service (Amazon SNS) notification settings for this cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ShippingOption</i> The shipping speed for each node in this cluster. This speed doesn't dictate how soon you'll get each device, rather it represents how quickly each device moves to its destination while in transit. Regional shipping speeds are as follows: <ul> <li> In Australia, you have access to express shipping. Typically, devices shipped express are delivered in about a day. </li> <li> In the European Union (EU), you have access to express shipping. Typically, Snow devices shipped express are delivered in about a day. In addition, most countries in the EU have access to standard shipping, which typically takes less than a week, one way. </li> <li> In India, Snow devices are delivered in one to seven days. </li> <li> In the US, you have access to one-day shipping and two-day shipping. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AddressId</i> The automatically generated ID for a specific address.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Resources</i> The arrays of <a>JobResource</a> objects that can include updated <a>S3Resource</a> objects or <a>LambdaResource</a> objects.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Resources</b>: The arrays of <a>JobResource</a> objects that can include updated <a>S3Resource</a> objects or <a>LambdaResource</a> objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The creation date for this cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnowballType</i> The type of AWS Snow device to use for this cluster.  <note> For cluster jobs, AWS Snow Family currently supports only the <code>EDGE</code> device type. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobType</i> The type of job for this cluster. Currently, the only job type supported for clusters is <code>LOCAL_USE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterState</i> The current status of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleARN</i> The role ARN associated with this cluster. This ARN was created using the <a href="https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateRole.html">CreateRole</a> API action in AWS Identity and Access Management (IAM).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyARN</i> The <code>KmsKeyARN</code> Amazon Resource Name (ARN) associated with this cluster. This ARN was created using the <a href="https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html">CreateKey</a> API action in AWS Key Management Service (AWS KMS).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The optional description of the cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterId</i> The automatically generated ID for a cluster.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Ec2AmiResources</i> The Amazon Machine Images (AMIs) associated with this job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LambdaResources</i> The Python-language Lambda functions for this job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Resources</i> An array of <code>S3Resource</code> objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NotifyAll</i> Any change in job state will trigger a notification for this job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>JobStatesToNotify</i> The list of job states that will trigger a notification for this job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SnsTopicARN</i> The new SNS <code>TopicArn</code> that you want to associate with this job. You can create Amazon Resource Names (ARNs) for topics by using the <a href="https://docs.aws.amazon.com/sns/latest/api/API_CreateTopic.html">CreateTopic</a> Amazon SNS API action. You can subscribe email addresses to an Amazon SNS topic through the AWS Management Console, or by using the <a href="https://docs.aws.amazon.com/sns/latest/api/API_Subscribe.html">Subscribe</a> Amazon Simple Notification Service (Amazon SNS) API action.<br/>The tax documents required in AWS Regions in India.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>IND</b>: The tax documents required in AWS Regions in India.Represents the NFS service on a Snow Family device.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>NFSOnDeviceService</b>: Represents the NFS service on a Snow Family device.        """
        pass

    def describe_job(self, JobId: str) -> DescribeJobResult:
        r"""Returns information about a specific job including shipping information, job status, and other important metadata. 

        :param self:
        :param JobId:  The automatically generated ID for a job, for example <code>JID123e4567-e89b-12d3-a456-426655440000</code>.<br/>
        :return: SubJobMetadata:  Information about a specific job part (in the case of an export job), including shipping information, job status, and other important metadata.<br/>JobMetadata:  Information about a specific job, including shipping information, job status, and other important metadata.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OnDeviceServiceConfiguration</i> Represents metadata and configuration settings for services on an AWS Snow Family device.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>OnDeviceServiceConfiguration</b>: Represents metadata and configuration settings for services on an AWS Snow Family device.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LongTermPricingId</i> The ID of the long-term pricing type for the device.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RemoteManagement</i> Allows you to securely operate and manage Snowcone devices remotely from outside of your internal network. When set to <code>INSTALLED_AUTOSTART</code>, remote management will automatically be available when the device arrives at your location. Otherwise, you need to use the Snowball Client to manage the device.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeviceConfiguration</i> The container for <code>SnowconeDeviceConfiguration</code>. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DeviceConfiguration</b>: The container for <code>SnowconeDeviceConfiguration</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TaxDocuments</i> The metadata associated with the tax documents required in your AWS Region.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>TaxDocuments</b>: The metadata associated with the tax documents required in your AWS Region.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ForwardingAddressId</i> The ID of the address that you want a job shipped to, after it will be shipped to its primary address. This field is not supported in most regions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClusterId</i> The 39-character ID for the cluster, for example <code>CID123e4567-e89b-12d3-a456-426655440000</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobLogInfo</i> Links to Amazon S3 presigned URLs for the job report and logs. For import jobs, the PDF job report becomes available at the end of the import process. For export jobs, your job report typically becomes available while the Snow device for your job part is being delivered to you.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>JobLogInfo</b>: Links to Amazon S3 presigned URLs for the job report and logs. For import jobs, the PDF job report becomes available at the end of the import process. For export jobs, your job report typically becomes available while the Snow device for your job part is being delivered to you.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataTransferProgress</i> A value that defines the real-time status of a Snow device's data transfer while the device is at AWS. This data is only available while a job has a <code>JobState</code> value of <code>InProgress</code>, for both import and export jobs.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DataTransferProgress</b>: A value that defines the real-time status of a Snow device's data transfer while the device is at AWS. This data is only available while a job has a <code>JobState</code> value of <code>InProgress</code>, for both import and export jobs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Notification</i> The Amazon Simple Notification Service (Amazon SNS) notification settings associated with a specific job. The <code>Notification</code> object is returned as a part of the response syntax of the <code>DescribeJob</code> action in the <code>JobMetadata</code> data type.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Notification</b>: The Amazon Simple Notification Service (Amazon SNS) notification settings associated with a specific job. The <code>Notification</code> object is returned as a part of the response syntax of the <code>DescribeJob</code> action in the <code>JobMetadata</code> data type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnowballCapacityPreference</i> The Snow device capacity preference for this job, specified at job creation. In US regions, you can choose between 50 TB and 80 TB Snowballs. All other regions use 80 TB capacity Snowballs. For more information, see "https://docs.aws.amazon.com/snowball/latest/snowcone-guide/snow-device-types.html" (Snow Family Devices and Capacity) in the <i>Snowcone User Guide</i> or "https://docs.aws.amazon.com/snowball/latest/developer-guide/snow-device-types.html" (Snow Family Devices and Capacity) in the <i>Snowcone User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ShippingDetails</i> A job's shipping information, including inbound and outbound tracking numbers and shipping speed options.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ShippingDetails</b>: A job's shipping information, including inbound and outbound tracking numbers and shipping speed options.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AddressId</i> The ID for the address that you want the Snow device shipped to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleARN</i> The role ARN associated with this job. This ARN was created using the <a href="https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateRole.html">CreateRole</a> API action in AWS Identity and Access Management (IAM).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyARN</i> The Amazon Resource Name (ARN) for the AWS Key Management Service (AWS KMS) key associated with this job. This ARN was created using the <a href="https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html">CreateKey</a> API action in AWS KMS.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the job, provided at job creation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Resources</i> An array of <code>S3Resource</code> objects. Each <code>S3Resource</code> object represents an Amazon S3 bucket that your transferred data will be exported from or imported into.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Resources</b>: An array of <code>S3Resource</code> objects. Each <code>S3Resource</code> object represents an Amazon S3 bucket that your transferred data will be exported from or imported into.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationDate</i> The creation date for this job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnowballType</i> The type of device used with this job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobType</i> The type of job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobState</i> The current status of the jobs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobId</i> The automatically generated ID for a job, for example <code>JID123e4567-e89b-12d3-a456-426655440000</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Ec2AmiResources</i> The Amazon Machine Images (AMIs) associated with this job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LambdaResources</i> The Python-language Lambda functions for this job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Resources</i> An array of <code>S3Resource</code> objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ShippingOption</i> The shipping speed for a particular job. This speed doesn't dictate how soon you'll get the Snow device from the job's creation date. This speed represents how quickly it moves to its destination while in transit. Regional shipping speeds are as follows: <ul> <li> In Australia, you have access to express shipping. Typically, Snow devices shipped express are delivered in about a day. </li> <li> In the European Union (EU), you have access to express shipping. Typically, Snow devices shipped express are delivered in about a day. In addition, most countries in the EU have access to standard shipping, which typically takes less than a week, one way. </li> <li> In India, Snow devices are delivered in one to seven days. </li> <li> In the United States of America (US), you have access to one-day shipping and two-day shipping. </li> </ul><br/>The <code>Status</code> and <code>TrackingNumber</code> values for a Snow device being returned to AWS for a particular job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>InboundShipment</b>: The <code>Status</code> and <code>TrackingNumber</code> values for a Snow device being returned to AWS for a particular job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NotifyAll</i> Any change in job state will trigger a notification for this job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>JobStatesToNotify</i> The list of job states that will trigger a notification for this job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SnsTopicARN</i> The new SNS <code>TopicArn</code> that you want to associate with this job. You can create Amazon Resource Names (ARNs) for topics by using the <a href="https://docs.aws.amazon.com/sns/latest/api/API_CreateTopic.html">CreateTopic</a> Amazon SNS API action. You can subscribe email addresses to an Amazon SNS topic through the AWS Management Console, or by using the <a href="https://docs.aws.amazon.com/sns/latest/api/API_Subscribe.html">Subscribe</a> Amazon Simple Notification Service (Amazon SNS) API action.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalObjects</i> The total number of objects for a transfer between a Snow device and Amazon S3. This value is set to 0 (zero) until all the keys that will be transferred have been listed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalBytes</i> The total bytes of data for a transfer between a Snow device and Amazon S3. This value is set to 0 (zero) until all the keys that will be transferred have been listed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ObjectsTransferred</i> The number of objects transferred between a Snow device and Amazon S3.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>BytesTransferred</i> The number of bytes transferred between a Snow device and Amazon S3.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>JobFailureLogURI</i> A link to an Amazon S3 presigned URL where the job failure log is located.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>JobSuccessLogURI</i> A link to an Amazon S3 presigned URL where the job success log is located.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>JobCompletionReportURI</i> A link to an Amazon S3 presigned URL where the job completion report is located.<br/>The tax documents required in AWS Regions in India.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>IND</b>: The tax documents required in AWS Regions in India.Returns information about the device configuration for an AWS Snowcone job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SnowconeDeviceConfiguration</b>: Returns information about the device configuration for an AWS Snowcone job.Represents the NFS service on a Snow Family device.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>NFSOnDeviceService</b>: Represents the NFS service on a Snow Family device.        """
        pass

    def describe_return_shipping_label(self, JobId: str) -> DescribeReturnShippingLabelResult:
        r"""Information on the shipping label of a Snow device that is being returned to AWS.

        :param self:
        :param JobId:  The automatically generated ID for a job, for example <code>JID123e4567-e89b-12d3-a456-426655440000</code>.<br/>
        :return: ExpirationDate:  The expiration date of the current return shipping label.<br/>Status:  The status information of the task on a Snow device that is being returned to AWS.<br/>        """
        pass

    def get_job_manifest(self, JobId: str) -> GetJobManifestResult:
        r"""Returns a link to an Amazon S3 presigned URL for the manifest file associated with the specified <code>JobId</code> value. You can access the manifest file for up to 60 minutes after this request has been made. To access the manifest file after 60 minutes have passed, you'll have to make another call to the <code>GetJobManifest</code> action. The manifest is an encrypted file that you can download after your job enters the <code>WithCustomer</code> status. The manifest is decrypted by using the <code>UnlockCode</code> code value, when you pass both values to the Snow device through the Snowball client when the client is started for the first time. As a best practice, we recommend that you don't save a copy of an <code>UnlockCode</code> value in the same location as the manifest file for that job. Saving these separately helps prevent unauthorized parties from gaining access to the Snow device associated with that job. The credentials of a given job, including its manifest file and unlock code, expire 360 days after the job is created.

        :param self:
        :param JobId:  The ID for a job that you want to get the manifest file for, for example <code>JID123e4567-e89b-12d3-a456-426655440000</code>.<br/>
        :return: ManifestURI:  The Amazon S3 presigned URL for the manifest file associated with the specified <code>JobId</code> value.<br/>        """
        pass

    def get_job_unlock_code(self, JobId: str) -> GetJobUnlockCodeResult:
        r"""Returns the <code>UnlockCode</code> code value for the specified job. A particular <code>UnlockCode</code> value can be accessed for up to 360 days after the associated job has been created. The <code>UnlockCode</code> value is a 29-character code with 25 alphanumeric characters and 4 hyphens. This code is used to decrypt the manifest file when it is passed along with the manifest to the Snow device through the Snowball client when the client is started for the first time. As a best practice, we recommend that you don't save a copy of the <code>UnlockCode</code> in the same location as the manifest file for that job. Saving these separately helps prevent unauthorized parties from gaining access to the Snow device associated with that job.

        :param self:
        :param JobId:  The ID for the job that you want to get the <code>UnlockCode</code> value for, for example <code>JID123e4567-e89b-12d3-a456-426655440000</code>.<br/>
        :return: UnlockCode:  The <code>UnlockCode</code> value for the specified job. The <code>UnlockCode</code> value can be accessed for up to 360 days after the job has been created.<br/>        """
        pass

    def get_snowball_usage(self) -> GetSnowballUsageResult:
        r"""Returns information about the Snow Family service limit for your account, and also the number of Snow devices your account has in use. The default service limit for the number of Snow devices that you can have at one time is 1. If you want to increase your service limit, contact AWS Support.

        :param self:
        :param 
        :return: SnowballsInUse:  The number of Snow devices that this account is currently using.<br/>SnowballLimit:  The service limit for number of Snow devices this account can have at once. The default service limit is 1 (one).<br/>        """
        pass

    def get_software_updates(self, JobId: str) -> GetSoftwareUpdatesResult:
        r"""Returns an Amazon S3 presigned URL for an update file associated with a specified <code>JobId</code>.

        :param self:
        :param JobId:  The ID for a job that you want to get the software update file for, for example <code>JID123e4567-e89b-12d3-a456-426655440000</code>.<br/>
        :return: UpdatesURI:  The Amazon S3 presigned URL for the update file associated with the specified <code>JobId</code> value. The software update will be available for 2 days after this request is made. To access an update after the 2 days have passed, you'll have to make another call to <code>GetSoftwareUpdates</code>.<br/>        """
        pass

    def list_cluster_jobs(self, ClusterId: str, MaxResults: int=None, NextToken: str=None) -> ListClusterJobsResult:
        r"""Returns an array of <code>JobListEntry</code> objects of the specified length. Each <code>JobListEntry</code> object is for a job in the specified cluster and contains a job's state, a job's ID, and other information.

        :param self:
        :param NextToken:  HTTP requests are stateless. To identify what object comes "next" in the list of <code>JobListEntry</code> objects, you have the option of specifying <code>NextToken</code> as the starting point for your returned list.<br/>MaxResults:  The number of <code>JobListEntry</code> objects to return.<br/>ClusterId:  The 39-character ID for the cluster that you want to list, for example <code>CID123e4567-e89b-12d3-a456-426655440000</code>.<br/>
        :return: NextToken:  HTTP requests are stateless. If you use the automatically generated <code>NextToken</code> value in your next <code>ListClusterJobsResult</code> call, your list of returned jobs will start from this point in the array.<br/>JobListEntries:  Each <code>JobListEntry</code> object contains a job's state, a job's ID, and a value that indicates whether the job is a job part, in the case of export jobs. <br/>        """
        pass

    def list_clusters(self, MaxResults: int=None, NextToken: str=None) -> ListClustersResult:
        r"""Returns an array of <code>ClusterListEntry</code> objects of the specified length. Each <code>ClusterListEntry</code> object contains a cluster's state, a cluster's ID, and other important status information.

        :param self:
        :param NextToken:  HTTP requests are stateless. To identify what object comes "next" in the list of <code>ClusterListEntry</code> objects, you have the option of specifying <code>NextToken</code> as the starting point for your returned list.<br/>MaxResults:  The number of <code>ClusterListEntry</code> objects to return.<br/>
        :return: NextToken:  HTTP requests are stateless. If you use the automatically generated <code>NextToken</code> value in your next <code>ClusterListEntry</code> call, your list of returned clusters will start from this point in the array.<br/>ClusterListEntries:  Each <code>ClusterListEntry</code> object contains a cluster's state, a cluster's ID, and other important status information.<br/>        """
        pass

    def list_compatible_images(self, MaxResults: int=None, NextToken: str=None) -> ListCompatibleImagesResult:
        r"""This action returns a list of the different Amazon EC2 Amazon Machine Images (AMIs) that are owned by your AWS account that would be supported for use on a Snow device. Currently, supported AMIs are based on the CentOS 7 (x86_64) - with Updates HVM, Ubuntu Server 14.04 LTS (HVM), and Ubuntu 16.04 LTS - Xenial (HVM) images, available on the AWS Marketplace.

        :param self:
        :param NextToken:  HTTP requests are stateless. To identify what object comes "next" in the list of compatible images, you can specify a value for <code>NextToken</code> as the starting point for your list of returned images.<br/>MaxResults:  The maximum number of results for the list of compatible images. Currently, a Snowball Edge device can store 10 AMIs.<br/>
        :return: NextToken:  Because HTTP requests are stateless, this is the starting point for your next list of returned images.<br/>CompatibleImages:  A JSON-formatted object that describes a compatible AMI, including the ID and name for a Snow device AMI.<br/>        """
        pass

    def list_jobs(self, MaxResults: int=None, NextToken: str=None) -> ListJobsResult:
        r"""Returns an array of <code>JobListEntry</code> objects of the specified length. Each <code>JobListEntry</code> object contains a job's state, a job's ID, and a value that indicates whether the job is a job part, in the case of export jobs. Calling this API action in one of the US regions will return jobs from the list of all jobs associated with this account in all US regions.

        :param self:
        :param NextToken:  HTTP requests are stateless. To identify what object comes "next" in the list of <code>JobListEntry</code> objects, you have the option of specifying <code>NextToken</code> as the starting point for your returned list.<br/>MaxResults:  The number of <code>JobListEntry</code> objects to return.<br/>
        :return: NextToken:  HTTP requests are stateless. If you use this automatically generated <code>NextToken</code> value in your next <code>ListJobs</code> call, your returned <code>JobListEntry</code> objects will start from this point in the array.<br/>JobListEntries:  Each <code>JobListEntry</code> object contains a job's state, a job's ID, and a value that indicates whether the job is a job part, in the case of export jobs. <br/>        """
        pass

    def list_long_term_pricing(self, MaxResults: int=None, NextToken: str=None) -> ListLongTermPricingResult:
        r"""Lists all long-term pricing types.

        :param self:
        :param NextToken:  Because HTTP requests are stateless, this is the starting point for your next list of <code>ListLongTermPricing</code> to return.<br/>MaxResults:  The maximum number of <code>ListLongTermPricing</code> objects to return.<br/>
        :return: NextToken:  Because HTTP requests are stateless, this is the starting point for your next list of returned <code>ListLongTermPricing</code> list.<br/>LongTermPricingEntries:  Each <code>LongTermPricingEntry</code> object contains a status, ID, and other information about the <code>LongTermPricing</code> type. <br/>        """
        pass

    def update_cluster(self, ClusterId: str, RoleARN: str=None, Description: str=None, Resources: JobResource=None, OnDeviceServiceConfiguration: OnDeviceServiceConfiguration=None, AddressId: str=None, ShippingOption: str=None, Notification: Notification=None, ForwardingAddressId: str=None) -> UpdateClusterResult:
        r"""While a cluster's <code>ClusterState</code> value is in the <code>AwaitingQuorum</code> state, you can update some of the information associated with a cluster. Once the cluster changes to a different job state, usually 60 minutes after the cluster being created, this action is no longer available.

        :param self:
        :param ForwardingAddressId:  The updated ID for the forwarding address for a cluster. This field is not supported in most regions.<br/>Notification:  The new or updated <a>Notification</a> object.:<br/>ShippingOption:  The updated shipping option value of this cluster's <a>ShippingDetails</a> object.<br/>AddressId:  The ID of the updated <a>Address</a> object.<br/>OnDeviceServiceConfiguration:  Specifies the service or services on the Snow Family device that your transferred data will be exported from or imported into. AWS Snow Family supports Amazon S3 and NFS (Network File System).:<br/>Resources:  The updated arrays of <a>JobResource</a> objects that can include updated <a>S3Resource</a> objects or <a>LambdaResource</a> objects.:<br/>Description:  The updated description of this cluster.<br/>RoleARN:  The new role Amazon Resource Name (ARN) that you want to associate with this cluster. To create a role ARN, use the <a href="https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateRole.html">CreateRole</a> API action in AWS Identity and Access Management (IAM).<br/>ClusterId:  The cluster ID of the cluster that you want to update, for example <code>CID123e4567-e89b-12d3-a456-426655440000</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Ec2AmiResources</i> The Amazon Machine Images (AMIs) associated with this job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LambdaResources</i> The Python-language Lambda functions for this job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Resources</i> An array of <code>S3Resource</code> objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NFSOnDeviceService</i> Represents the NFS service on a Snow Family device.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>NFSOnDeviceService</b>: Represents the NFS service on a Snow Family device.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageUnit</i> The scale unit of the NFS storage on the device. Valid values: TB.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageLimit</i> The maximum NFS storage for one Snowball Family device.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NotifyAll</i> Any change in job state will trigger a notification for this job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobStatesToNotify</i> The list of job states that will trigger a notification for this job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnsTopicARN</i> The new SNS <code>TopicArn</code> that you want to associate with this job. You can create Amazon Resource Names (ARNs) for topics by using the <a href="https://docs.aws.amazon.com/sns/latest/api/API_CreateTopic.html">CreateTopic</a> Amazon SNS API action. You can subscribe email addresses to an Amazon SNS topic through the AWS Management Console, or by using the <a href="https://docs.aws.amazon.com/sns/latest/api/API_Subscribe.html">Subscribe</a> Amazon Simple Notification Service (Amazon SNS) API action.<br/>
        :return:         """
        pass

    def update_job(self, JobId: str, RoleARN: str=None, Notification: Notification=None, Resources: JobResource=None, OnDeviceServiceConfiguration: OnDeviceServiceConfiguration=None, AddressId: str=None, ShippingOption: str=None, Description: str=None, SnowballCapacityPreference: str=None, ForwardingAddressId: str=None) -> UpdateJobResult:
        r"""While a job's <code>JobState</code> value is <code>New</code>, you can update some of the information associated with a job. Once the job changes to a different job state, usually within 60 minutes of the job being created, this action is no longer available.

        :param self:
        :param ForwardingAddressId:  The updated ID for the forwarding address for a job. This field is not supported in most regions.<br/>SnowballCapacityPreference:  The updated <code>SnowballCapacityPreference</code> of this job's <a>JobMetadata</a> object. The 50 TB Snowballs are only available in the US regions. For more information, see "https://docs.aws.amazon.com/snowball/latest/snowcone-guide/snow-device-types.html" (Snow Family Devices and Capacity) in the <i>Snowcone User Guide</i> or "https://docs.aws.amazon.com/snowball/latest/developer-guide/snow-device-types.html" (Snow Family Devices and Capacity) in the <i>Snowcone User Guide</i>.<br/>Description:  The updated description of this job's <a>JobMetadata</a> object.<br/>ShippingOption:  The updated shipping option value of this job's <a>ShippingDetails</a> object.<br/>AddressId:  The ID of the updated <a>Address</a> object.<br/>OnDeviceServiceConfiguration:  Specifies the service or services on the Snow Family device that your transferred data will be exported from or imported into. AWS Snow Family supports Amazon S3 and NFS (Network File System).:<br/>Resources:  The updated <code>JobResource</code> object, or the updated <a>JobResource</a> object. :<br/>Notification:  The new or updated <a>Notification</a> object.:<br/>RoleARN:  The new role Amazon Resource Name (ARN) that you want to associate with this job. To create a role ARN, use the <a href="https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateRole.html">CreateRole</a>AWS Identity and Access Management (IAM) API action.<br/>JobId:  The job ID of the job that you want to update, for example <code>JID123e4567-e89b-12d3-a456-426655440000</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NotifyAll</i> Any change in job state will trigger a notification for this job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobStatesToNotify</i> The list of job states that will trigger a notification for this job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SnsTopicARN</i> The new SNS <code>TopicArn</code> that you want to associate with this job. You can create Amazon Resource Names (ARNs) for topics by using the <a href="https://docs.aws.amazon.com/sns/latest/api/API_CreateTopic.html">CreateTopic</a> Amazon SNS API action. You can subscribe email addresses to an Amazon SNS topic through the AWS Management Console, or by using the <a href="https://docs.aws.amazon.com/sns/latest/api/API_Subscribe.html">Subscribe</a> Amazon Simple Notification Service (Amazon SNS) API action.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Ec2AmiResources</i> The Amazon Machine Images (AMIs) associated with this job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LambdaResources</i> The Python-language Lambda functions for this job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Resources</i> An array of <code>S3Resource</code> objects.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NFSOnDeviceService</i> Represents the NFS service on a Snow Family device.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>NFSOnDeviceService</b>: Represents the NFS service on a Snow Family device.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageUnit</i> The scale unit of the NFS storage on the device. Valid values: TB.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageLimit</i> The maximum NFS storage for one Snowball Family device.<br/>
        :return:         """
        pass

    def update_job_shipment_state(self, ShipmentState: str, JobId: str) -> UpdateJobShipmentStateResult:
        r"""Updates the state when a shipment state changes to a different state.

        :param self:
        :param ShipmentState:  The state of a device when it is being shipped.  Set to <code>RECEIVED</code> when the device arrives at your location. Set to <code>RETURNED</code> when you have returned the device to AWS.<br/>JobId:  The job ID of the job whose shipment date you want to update, for example <code>JID123e4567-e89b-12d3-a456-426655440000</code>.<br/>
        :return:         """
        pass

    def update_long_term_pricing(self, LongTermPricingId: str, ReplacementJob: str=None, IsLongTermPricingAutoRenew: JavaBoolean=None) -> UpdateLongTermPricingResult:
        r"""Updates the long-term pricing type.

        :param self:
        :param IsLongTermPricingAutoRenew:  If set to <code>true</code>, specifies that the current long-term pricing type for the device should be automatically renewed before the long-term pricing contract expires.<br/>ReplacementJob:  Specifies that a device that is ordered with long-term pricing should be replaced with a new device.<br/>LongTermPricingId:  The ID of the long-term pricing type for the device.<br/>
        :return:         """
        pass





class SNS(BaseClient):
    r"""<fullname>Amazon Simple Notification Service</fullname> Amazon Simple Notification Service (Amazon SNS) is a web service that enables you to build distributed web-enabled applications. Applications can use Amazon SNS to easily push real-time notification messages to interested subscribers over multiple delivery protocols. For more information about this product see the <a href="http://aws.amazon.com/sns/">Amazon SNS product page</a>. For detailed information about Amazon SNS features and their associated API calls, see the <a href="https://docs.aws.amazon.com/sns/latest/dg/">Amazon SNS Developer Guide</a>.  For information on the permissions you need to use this API, see <a href="https://docs.aws.amazon.com/sns/latest/dg/sns-authentication-and-access-control.html">Identity and access management in Amazon SNS</a> in the <i>Amazon SNS Developer Guide.</i>  We also provide SDKs that enable you to access Amazon SNS from your preferred programming language. The SDKs contain functionality that automatically takes care of tasks such as: cryptographically signing your service requests, retrying requests, and handling error responses. For a list of available SDKs, go to <a href="http://aws.amazon.com/tools/">Tools for Amazon Web Services</a>. """


    class ListEndpointsByPlatformApplicationPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_endpoints_by_platform_application` for valid parameters"""
            pass
    class ListPlatformApplicationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_platform_applications` for valid parameters"""
            pass
    class ListSubscriptionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_subscriptions` for valid parameters"""
            pass
    class ListSubscriptionsByTopicPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_subscriptions_by_topic` for valid parameters"""
            pass
    class ListTopicsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_topics` for valid parameters"""
            pass
    class ListPhoneNumbersOptedOutPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_phone_numbers_opted_out` for valid parameters"""
            pass
    class ListOriginationNumbersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_origination_numbers` for valid parameters"""
            pass
    class ListSMSSandboxPhoneNumbersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_sms_sandbox_phone_numbers` for valid parameters"""
            pass


    class AddPermissionInput(Mapping):
        pass
    
    class delegate(object):
        pass
    
    class action(object):
        pass
    
    class CheckIfPhoneNumberIsOptedOutInput(Mapping):
        pass
    
    class CheckIfPhoneNumberIsOptedOutResponse(Mapping):
        pass
    
    class ConfirmSubscriptionInput(Mapping):
        pass
    
    class ConfirmSubscriptionResponse(Mapping):
        pass
    
    class CreatePlatformApplicationInput(Mapping):
        pass
    
    class CreatePlatformApplicationResponse(Mapping):
        pass
    
    class MapStringToString(object):
        pass
    
    class CreatePlatformEndpointInput(Mapping):
        pass
    
    class CreateEndpointResponse(Mapping):
        pass
    
    class CreateSMSSandboxPhoneNumberInput(Mapping):
        pass
    
    class CreateSMSSandboxPhoneNumberResult(Mapping):
        pass
    
    class CreateTopicInput(Mapping):
        pass
    
    class CreateTopicResponse(Mapping):
        pass
    
    class TopicAttributesMap(object):
        pass
    
    class Tag(Mapping):
        pass
    
    class DeleteEndpointInput(Mapping):
        pass
    
    class DeletePlatformApplicationInput(Mapping):
        pass
    
    class DeleteSMSSandboxPhoneNumberInput(Mapping):
        pass
    
    class DeleteSMSSandboxPhoneNumberResult(Mapping):
        pass
    
    class DeleteTopicInput(Mapping):
        pass
    
    class GetEndpointAttributesInput(Mapping):
        pass
    
    class GetEndpointAttributesResponse(Mapping):
        pass
    
    class GetPlatformApplicationAttributesInput(Mapping):
        pass
    
    class GetPlatformApplicationAttributesResponse(Mapping):
        pass
    
    class GetSMSAttributesInput(Mapping):
        pass
    
    class GetSMSAttributesResponse(Mapping):
        pass
    
    class String(object):
        pass
    
    class GetSMSSandboxAccountStatusInput(Mapping):
        pass
    
    class GetSMSSandboxAccountStatusResult(Mapping):
        pass
    
    class GetSubscriptionAttributesInput(Mapping):
        pass
    
    class GetSubscriptionAttributesResponse(Mapping):
        pass
    
    class GetTopicAttributesInput(Mapping):
        pass
    
    class GetTopicAttributesResponse(Mapping):
        pass
    
    class ListEndpointsByPlatformApplicationInput(Mapping):
        pass
    
    class ListEndpointsByPlatformApplicationResponse(Mapping):
        pass
    
    class ListOriginationNumbersRequest(Mapping):
        pass
    
    class ListOriginationNumbersResult(Mapping):
        pass
    
    class ListPhoneNumbersOptedOutInput(Mapping):
        pass
    
    class ListPhoneNumbersOptedOutResponse(Mapping):
        pass
    
    class ListPlatformApplicationsInput(Mapping):
        pass
    
    class ListPlatformApplicationsResponse(Mapping):
        pass
    
    class ListSMSSandboxPhoneNumbersInput(Mapping):
        pass
    
    class ListSMSSandboxPhoneNumbersResult(Mapping):
        pass
    
    class ListSubscriptionsInput(Mapping):
        pass
    
    class ListSubscriptionsResponse(Mapping):
        pass
    
    class ListSubscriptionsByTopicInput(Mapping):
        pass
    
    class ListSubscriptionsByTopicResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class ListTopicsInput(Mapping):
        pass
    
    class ListTopicsResponse(Mapping):
        pass
    
    class OptInPhoneNumberInput(Mapping):
        pass
    
    class OptInPhoneNumberResponse(Mapping):
        pass
    
    class PublishInput(Mapping):
        pass
    
    class PublishResponse(Mapping):
        pass
    
    class MessageAttributeMap(object):
        pass
    
    class RemovePermissionInput(Mapping):
        pass
    
    class SetEndpointAttributesInput(Mapping):
        pass
    
    class SetPlatformApplicationAttributesInput(Mapping):
        pass
    
    class SetSMSAttributesInput(Mapping):
        pass
    
    class SetSMSAttributesResponse(Mapping):
        pass
    
    class SetSubscriptionAttributesInput(Mapping):
        pass
    
    class SetTopicAttributesInput(Mapping):
        pass
    
    class SubscribeInput(Mapping):
        pass
    
    class SubscribeResponse(Mapping):
        pass
    
    class SubscriptionAttributesMap(object):
        pass
    
    class boolean(object):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UnsubscribeInput(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class VerifySMSSandboxPhoneNumberInput(Mapping):
        pass
    
    class VerifySMSSandboxPhoneNumberResult(Mapping):
        pass
    
    def add_permission(self, ActionName: List[action], AWSAccountId: List[delegate], Label: str, TopicArn: str):
        r"""Adds a statement to a topic's access control policy, granting access for the specified accounts to the specified actions.

        :param self:
        :param ActionName:  The action you want to allow for the specified principal(s). Valid values: Any Amazon SNS action name, for example <code>Publish</code>.<br/>AWSAccountId:  The account IDs of the users (principals) who will be given access to the specified actions. The users must have account, but do not need to be signed up for this service.<br/>Label:  A unique identifier for the new policy statement.<br/>TopicArn:  The ARN of the topic whose access control policy you wish to modify.<br/>
        :return:         """
        pass

    def check_if_phone_number_is_opted_out(self, phoneNumber: str) -> CheckIfPhoneNumberIsOptedOutResponse:
        r"""Accepts a phone number and indicates whether the phone holder has opted out of receiving SMS messages from your account. You cannot send SMS messages to a number that is opted out. To resume sending messages, you can opt in the number by using the <code>OptInPhoneNumber</code> action.

        :param self:
        :param phoneNumber:  The phone number for which you want to check the opt out status.<br/>
        :return: isOptedOut:  Indicates whether the phone number is opted out: <ul> <li>  <code>true</code> – The phone number is opted out, meaning you cannot publish SMS messages to it. </li> <li>  <code>false</code> – The phone number is opted in, meaning you can publish SMS messages to it. </li> </ul><br/>        """
        pass

    def confirm_subscription(self, Token: str, TopicArn: str, AuthenticateOnUnsubscribe: str=None) -> ConfirmSubscriptionResponse:
        r"""Verifies an endpoint owner's intent to receive messages by validating the token sent to the endpoint by an earlier <code>Subscribe</code> action. If the token is valid, the action creates a new subscription and returns its Amazon Resource Name (ARN). This call requires an AWS signature only when the <code>AuthenticateOnUnsubscribe</code> flag is set to "true".

        :param self:
        :param AuthenticateOnUnsubscribe:  Disallows unauthenticated unsubscribes of the subscription. If the value of this parameter is <code>true</code> and the request has an Amazon Web Services signature, then only the topic owner and the subscription owner can unsubscribe the endpoint. The unsubscribe action requires Amazon Web Services authentication. <br/>Token:  Short-lived token sent to an endpoint during the <code>Subscribe</code> action.<br/>TopicArn:  The ARN of the topic for which you wish to confirm a subscription.<br/>
        :return: SubscriptionArn:  The ARN of the created subscription.<br/>        """
        pass

    def create_platform_application(self, Attributes: MapStringToString, Platform: str, Name: str) -> CreatePlatformApplicationResponse:
        r"""Creates a platform application object for one of the supported push notification services, such as APNS and GCM (Firebase Cloud Messaging), to which devices and mobile apps may register. You must specify <code>PlatformPrincipal</code> and <code>PlatformCredential</code> attributes when using the <code>CreatePlatformApplication</code> action.  <code>PlatformPrincipal</code> and <code>PlatformCredential</code> are received from the notification service. <ul> <li> For <code>ADM</code>, <code>PlatformPrincipal</code> is <code>client id</code> and <code>PlatformCredential</code> is <code>client secret</code>. </li> <li> For <code>Baidu</code>, <code>PlatformPrincipal</code> is <code>API key</code> and <code>PlatformCredential</code> is <code>secret key</code>. </li> <li> For <code>APNS</code> and <code>APNS_SANDBOX</code>, <code>PlatformPrincipal</code> is <code>SSL certificate</code> and <code>PlatformCredential</code> is <code>private key</code>. </li> <li> For <code>GCM</code> (Firebase Cloud Messaging), there is no <code>PlatformPrincipal</code> and the <code>PlatformCredential</code> is <code>API key</code>. </li> <li> For <code>MPNS</code>, <code>PlatformPrincipal</code> is <code>TLS certificate</code> and <code>PlatformCredential</code> is <code>private key</code>. </li> <li> For <code>WNS</code>, <code>PlatformPrincipal</code> is <code>Package Security Identifier</code> and <code>PlatformCredential</code> is <code>secret key</code>. </li> </ul> You can use the returned <code>PlatformApplicationArn</code> as an attribute for the <code>CreatePlatformEndpoint</code> action.

        :param self:
        :param Attributes:  For a list of attributes, see <a href="https://docs.aws.amazon.com/sns/latest/api/API_SetPlatformApplicationAttributes.html">SetPlatformApplicationAttributes</a>.<br/>Platform:  The following platforms are supported: ADM (Amazon Device Messaging), APNS (Apple Push Notification Service), APNS_SANDBOX, and GCM (Firebase Cloud Messaging).<br/>Name:  Application names must be made up of only uppercase and lowercase ASCII letters, numbers, underscores, hyphens, and periods, and must be between 1 and 256 characters long.<br/>
        :return: PlatformApplicationArn:  PlatformApplicationArn is returned.<br/>        """
        pass

    def create_platform_endpoint(self, Token: str, PlatformApplicationArn: str, CustomUserData: str=None, Attributes: MapStringToString=None) -> CreateEndpointResponse:
        r"""Creates an endpoint for a device and mobile app on one of the supported push notification services, such as GCM (Firebase Cloud Messaging) and APNS. <code>CreatePlatformEndpoint</code> requires the <code>PlatformApplicationArn</code> that is returned from <code>CreatePlatformApplication</code>. You can use the returned <code>EndpointArn</code> to send a message to a mobile app or by the <code>Subscribe</code> action for subscription to a topic. The <code>CreatePlatformEndpoint</code> action is idempotent, so if the requester already owns an endpoint with the same device token and attributes, that endpoint's ARN is returned without creating a new endpoint. For more information, see <a href="https://docs.aws.amazon.com/sns/latest/dg/SNSMobilePush.html">Using Amazon SNS Mobile Push Notifications</a>.  When using <code>CreatePlatformEndpoint</code> with Baidu, two attributes must be provided: ChannelId and UserId. The token field must also contain the ChannelId. For more information, see <a href="https://docs.aws.amazon.com/sns/latest/dg/SNSMobilePushBaiduEndpoint.html">Creating an Amazon SNS Endpoint for Baidu</a>. 

        :param self:
        :param Attributes:  For a list of attributes, see <a href="https://docs.aws.amazon.com/sns/latest/api/API_SetEndpointAttributes.html">SetEndpointAttributes</a>.<br/>CustomUserData:  Arbitrary user data to associate with the endpoint. Amazon SNS does not use this data. The data must be in UTF-8 format and less than 2KB.<br/>Token:  Unique identifier created by the notification service for an app on a device. The specific name for Token will vary, depending on which notification service is being used. For example, when using APNS as the notification service, you need the device token. Alternatively, when using GCM (Firebase Cloud Messaging) or ADM, the device token equivalent is called the registration ID.<br/>PlatformApplicationArn:  PlatformApplicationArn returned from CreatePlatformApplication is used to create a an endpoint.<br/>
        :return: EndpointArn:  EndpointArn returned from CreateEndpoint action.<br/>        """
        pass

    def create_sms_sandbox_phone_number(self, PhoneNumber: str, LanguageCode: str=None) -> CreateSMSSandboxPhoneNumberResult:
        r"""Adds a destination phone number to an account in the SMS sandbox and sends a one-time password (OTP) to that phone number. When you start using Amazon SNS to send SMS messages, your account is in the <i>SMS sandbox</i>. The SMS sandbox provides a safe environment for you to try Amazon SNS features without risking your reputation as an SMS sender. While your account is in the SMS sandbox, you can use all of the features of Amazon SNS. However, you can send SMS messages only to verified destination phone numbers. For more information, including how to move out of the sandbox to send messages without restrictions, see <a href="https://docs.aws.amazon.com/sns/latest/dg/sns-sms-sandbox.html">SMS sandbox</a> in the <i>Amazon SNS Developer Guide</i>.

        :param self:
        :param LanguageCode:  The language to use for sending the OTP. The default value is <code>en-US</code>.<br/>PhoneNumber:  The destination phone number to verify. On verification, Amazon SNS adds this phone number to the list of verified phone numbers that you can send SMS messages to.<br/>
        :return:         """
        pass

    def create_topic(self, Name: str, Attributes: TopicAttributesMap=None, Tags: List[Tag]=None) -> CreateTopicResponse:
        r"""Creates a topic to which notifications can be published. Users can create at most 100,000 standard topics (at most 1,000 FIFO topics). For more information, see <a href="https://docs.aws.amazon.com/sns/latest/dg/sns-create-topic.html">Creating an Amazon SNS topic</a> in the <i>Amazon SNS Developer Guide</i>. This action is idempotent, so if the requester already owns a topic with the specified name, that topic's ARN is returned without creating a new topic.

        :param self:
        :param Tags:  The list of tags to add to a new topic. <note> To be able to tag a topic on creation, you must have the <code>sns:CreateTopic</code> and <code>sns:TagResource</code> permissions. </note><br/>Attributes:  A map of attributes with their corresponding values. The following lists the names, descriptions, and values of the special request parameters that the <code>CreateTopic</code> action uses: <ul> <li>  <code>DeliveryPolicy</code> – The policy that defines how Amazon SNS retries failed deliveries to HTTP/S endpoints. </li> <li>  <code>DisplayName</code> – The display name to use for a topic with SMS subscriptions. </li> <li>  <code>FifoTopic</code> – Set to true to create a FIFO topic. </li> <li>  <code>Policy</code> – The policy that defines who can access your topic. By default, only the topic owner can publish or subscribe to the topic. </li> </ul> The following attribute applies only to <a href="https://docs.aws.amazon.com/sns/latest/dg/sns-server-side-encryption.html">server-side encryption</a>: <ul> <li>  <code>KmsMasterKeyId</code> – The ID of an Amazon Web Services managed customer master key (CMK) for Amazon SNS or a custom CMK. For more information, see <a href="https://docs.aws.amazon.com/sns/latest/dg/sns-server-side-encryption.html#sse-key-terms">Key Terms</a>. For more examples, see <a href="https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html#API_DescribeKey_RequestParameters">KeyId</a> in the <i>Key Management Service API Reference</i>.  </li> </ul> The following attributes apply only to <a href="https://docs.aws.amazon.com/sns/latest/dg/sns-fifo-topics.html">FIFO topics</a>: <ul> <li>  <code>FifoTopic</code> – When this is set to <code>true</code>, a FIFO topic is created. </li> <li>  <code>ContentBasedDeduplication</code> – Enables content-based deduplication for FIFO topics. <ul> <li> By default, <code>ContentBasedDeduplication</code> is set to <code>false</code>. If you create a FIFO topic and this attribute is <code>false</code>, you must specify a value for the <code>MessageDeduplicationId</code> parameter for the <a href="https://docs.aws.amazon.com/sns/latest/api/API_Publish.html">Publish</a> action.  </li> <li> When you set <code>ContentBasedDeduplication</code> to <code>true</code>, Amazon SNS uses a SHA-256 hash to generate the <code>MessageDeduplicationId</code> using the body of the message (but not the attributes of the message). (Optional) To override the generated value, you can specify a value for the <code>MessageDeduplicationId</code> parameter for the <code>Publish</code> action. </li> </ul> </li> </ul><br/>Name:  The name of the topic you want to create. Constraints: Topic names must be made up of only uppercase and lowercase ASCII letters, numbers, underscores, and hyphens, and must be between 1 and 256 characters long. For a FIFO (first-in-first-out) topic, the name must end with the <code>.fifo</code> suffix. <br/>
        :return: TopicArn:  The Amazon Resource Name (ARN) assigned to the created topic.<br/>        """
        pass

    def delete_endpoint(self, EndpointArn: str):
        r"""Deletes the endpoint for a device and mobile app from Amazon SNS. This action is idempotent. For more information, see <a href="https://docs.aws.amazon.com/sns/latest/dg/SNSMobilePush.html">Using Amazon SNS Mobile Push Notifications</a>.  When you delete an endpoint that is also subscribed to a topic, then you must also unsubscribe the endpoint from the topic.

        :param self:
        :param EndpointArn:  EndpointArn of endpoint to delete.<br/>
        :return:         """
        pass

    def delete_platform_application(self, PlatformApplicationArn: str):
        r"""Deletes a platform application object for one of the supported push notification services, such as APNS and GCM (Firebase Cloud Messaging). For more information, see <a href="https://docs.aws.amazon.com/sns/latest/dg/SNSMobilePush.html">Using Amazon SNS Mobile Push Notifications</a>. 

        :param self:
        :param PlatformApplicationArn:  PlatformApplicationArn of platform application object to delete.<br/>
        :return:         """
        pass

    def delete_sms_sandbox_phone_number(self, PhoneNumber: str) -> DeleteSMSSandboxPhoneNumberResult:
        r"""Deletes an account's verified or pending phone number from the SMS sandbox. When you start using Amazon SNS to send SMS messages, your account is in the <i>SMS sandbox</i>. The SMS sandbox provides a safe environment for you to try Amazon SNS features without risking your reputation as an SMS sender. While your account is in the SMS sandbox, you can use all of the features of Amazon SNS. However, you can send SMS messages only to verified destination phone numbers. For more information, including how to move out of the sandbox to send messages without restrictions, see <a href="https://docs.aws.amazon.com/sns/latest/dg/sns-sms-sandbox.html">SMS sandbox</a> in the <i>Amazon SNS Developer Guide</i>.

        :param self:
        :param PhoneNumber:  The destination phone number to delete.<br/>
        :return:         """
        pass

    def delete_topic(self, TopicArn: str):
        r"""Deletes a topic and all its subscriptions. Deleting a topic might prevent some messages previously sent to the topic from being delivered to subscribers. This action is idempotent, so deleting a topic that does not exist does not result in an error.

        :param self:
        :param TopicArn:  The ARN of the topic you want to delete.<br/>
        :return:         """
        pass

    def get_endpoint_attributes(self, EndpointArn: str) -> GetEndpointAttributesResponse:
        r"""Retrieves the endpoint attributes for a device on one of the supported push notification services, such as GCM (Firebase Cloud Messaging) and APNS. For more information, see <a href="https://docs.aws.amazon.com/sns/latest/dg/SNSMobilePush.html">Using Amazon SNS Mobile Push Notifications</a>. 

        :param self:
        :param EndpointArn:  EndpointArn for GetEndpointAttributes input.<br/>
        :return: Attributes:  Attributes include the following: <ul> <li>  <code>CustomUserData</code> – arbitrary user data to associate with the endpoint. Amazon SNS does not use this data. The data must be in UTF-8 format and less than 2KB. </li> <li>  <code>Enabled</code> – flag that enables/disables delivery to the endpoint. Amazon SNS will set this to false when a notification service indicates to Amazon SNS that the endpoint is invalid. Users can set it back to true, typically after updating Token. </li> <li>  <code>Token</code> – device token, also referred to as a registration id, for an app and mobile device. This is returned from the notification service when an app and mobile device are registered with the notification service. <note> The device token for the iOS platform is returned in lowercase. </note> </li> </ul><br/>        """
        pass

    def get_platform_application_attributes(self, PlatformApplicationArn: str) -> GetPlatformApplicationAttributesResponse:
        r"""Retrieves the attributes of the platform application object for the supported push notification services, such as APNS and GCM (Firebase Cloud Messaging). For more information, see <a href="https://docs.aws.amazon.com/sns/latest/dg/SNSMobilePush.html">Using Amazon SNS Mobile Push Notifications</a>. 

        :param self:
        :param PlatformApplicationArn:  PlatformApplicationArn for GetPlatformApplicationAttributesInput.<br/>
        :return: Attributes:  Attributes include the following: <ul> <li>  <code>EventEndpointCreated</code> – Topic ARN to which EndpointCreated event notifications should be sent. </li> <li>  <code>EventEndpointDeleted</code> – Topic ARN to which EndpointDeleted event notifications should be sent. </li> <li>  <code>EventEndpointUpdated</code> – Topic ARN to which EndpointUpdate event notifications should be sent. </li> <li>  <code>EventDeliveryFailure</code> – Topic ARN to which DeliveryFailure event notifications should be sent upon Direct Publish delivery failure (permanent) to one of the application's endpoints. </li> </ul><br/>        """
        pass

    def get_sms_attributes(self, attributes: List[String]=None) -> GetSMSAttributesResponse:
        r"""Returns the settings for sending SMS messages from your account. These settings are set with the <code>SetSMSAttributes</code> action.

        :param self:
        :param attributes:  A list of the individual attribute names, such as <code>MonthlySpendLimit</code>, for which you want values. For all attribute names, see <a href="https://docs.aws.amazon.com/sns/latest/api/API_SetSMSAttributes.html">SetSMSAttributes</a>. If you don't use this parameter, Amazon SNS returns all SMS attributes.<br/>
        :return: attributes:  The SMS attribute names and their values.<br/>        """
        pass

    def get_sms_sandbox_account_status(self) -> GetSMSSandboxAccountStatusResult:
        r"""Retrieves the SMS sandbox status for the calling account in the target Region. When you start using Amazon SNS to send SMS messages, your account is in the <i>SMS sandbox</i>. The SMS sandbox provides a safe environment for you to try Amazon SNS features without risking your reputation as an SMS sender. While your account is in the SMS sandbox, you can use all of the features of Amazon SNS. However, you can send SMS messages only to verified destination phone numbers. For more information, including how to move out of the sandbox to send messages without restrictions, see <a href="https://docs.aws.amazon.com/sns/latest/dg/sns-sms-sandbox.html">SMS sandbox</a> in the <i>Amazon SNS Developer Guide</i>.

        :param self:
        :param 
        :return: IsInSandbox:  Indicates whether the calling account is in the SMS sandbox.<br/>        """
        pass

    def get_subscription_attributes(self, SubscriptionArn: str) -> GetSubscriptionAttributesResponse:
        r"""Returns all of the properties of a subscription.

        :param self:
        :param SubscriptionArn:  The ARN of the subscription whose properties you want to get.<br/>
        :return: Attributes:  A map of the subscription's attributes. Attributes in this map include the following: <ul> <li>  <code>ConfirmationWasAuthenticated</code> – <code>true</code> if the subscription confirmation request was authenticated. </li> <li>  <code>DeliveryPolicy</code> – The JSON serialization of the subscription's delivery policy. </li> <li>  <code>EffectiveDeliveryPolicy</code> – The JSON serialization of the effective delivery policy that takes into account the topic delivery policy and account system defaults. </li> <li>  <code>FilterPolicy</code> – The filter policy JSON that is assigned to the subscription. For more information, see <a href="https://docs.aws.amazon.com/sns/latest/dg/sns-message-filtering.html">Amazon SNS Message Filtering</a> in the <i>Amazon SNS Developer Guide</i>. </li> <li>  <code>Owner</code> – The account ID of the subscription's owner. </li> <li>  <code>PendingConfirmation</code> – <code>true</code> if the subscription hasn't been confirmed. To confirm a pending subscription, call the <code>ConfirmSubscription</code> action with a confirmation token. </li> <li>  <code>RawMessageDelivery</code> – <code>true</code> if raw message delivery is enabled for the subscription. Raw messages are free of JSON formatting and can be sent to HTTP/S and Amazon SQS endpoints. </li> <li>  <code>RedrivePolicy</code> – When specified, sends undeliverable messages to the specified Amazon SQS dead-letter queue. Messages that can't be delivered due to client errors (for example, when the subscribed endpoint is unreachable) or server errors (for example, when the service that powers the subscribed endpoint becomes unavailable) are held in the dead-letter queue for further analysis or reprocessing. </li> <li>  <code>SubscriptionArn</code> – The subscription's ARN. </li> <li>  <code>TopicArn</code> – The topic ARN that the subscription is associated with. </li> </ul> The following attribute applies only to Amazon Kinesis Data Firehose delivery stream subscriptions: <ul> <li>  <code>SubscriptionRoleArn</code> – The ARN of the IAM role that has the following: <ul> <li> Permission to write to the Kinesis Data Firehose delivery stream </li> <li> Amazon SNS listed as a trusted entity </li> </ul> Specifying a valid ARN for this attribute is required for Kinesis Data Firehose delivery stream subscriptions. For more information, see <a href="https://docs.aws.amazon.com/sns/latest/dg/sns-firehose-as-subscriber.html">Fanout to Kinesis Data Firehose delivery streams</a> in the <i>Amazon SNS Developer Guide</i>. </li> </ul><br/>        """
        pass

    def get_topic_attributes(self, TopicArn: str) -> GetTopicAttributesResponse:
        r"""Returns all of the properties of a topic. Topic properties returned might differ based on the authorization of the user.

        :param self:
        :param TopicArn:  The ARN of the topic whose properties you want to get.<br/>
        :return: Attributes:  A map of the topic's attributes. Attributes in this map include the following: <ul> <li>  <code>DeliveryPolicy</code> – The JSON serialization of the topic's delivery policy. </li> <li>  <code>DisplayName</code> – The human-readable name used in the <code>From</code> field for notifications to <code>email</code> and <code>email-json</code> endpoints. </li> <li>  <code>Owner</code> – The account ID of the topic's owner. </li> <li>  <code>Policy</code> – The JSON serialization of the topic's access control policy. </li> <li>  <code>SubscriptionsConfirmed</code> – The number of confirmed subscriptions for the topic. </li> <li>  <code>SubscriptionsDeleted</code> – The number of deleted subscriptions for the topic. </li> <li>  <code>SubscriptionsPending</code> – The number of subscriptions pending confirmation for the topic. </li> <li>  <code>TopicArn</code> – The topic's ARN. </li> <li>  <code>EffectiveDeliveryPolicy</code> – The JSON serialization of the effective delivery policy, taking system defaults into account. </li> </ul> The following attribute applies only to <a href="https://docs.aws.amazon.com/sns/latest/dg/sns-server-side-encryption.html">server-side-encryption</a>: <ul> <li>  <code>KmsMasterKeyId</code> - The ID of an Amazon Web Services managed customer master key (CMK) for Amazon SNS or a custom CMK. For more information, see <a href="https://docs.aws.amazon.com/sns/latest/dg/sns-server-side-encryption.html#sse-key-terms">Key Terms</a>. For more examples, see <a href="https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html#API_DescribeKey_RequestParameters">KeyId</a> in the <i>Key Management Service API Reference</i>. </li> </ul> The following attributes apply only to <a href="https://docs.aws.amazon.com/sns/latest/dg/sns-fifo-topics.html">FIFO topics</a>: <ul> <li>  <code>FifoTopic</code> – When this is set to <code>true</code>, a FIFO topic is created. </li> <li>  <code>ContentBasedDeduplication</code> – Enables content-based deduplication for FIFO topics. <ul> <li> By default, <code>ContentBasedDeduplication</code> is set to <code>false</code>. If you create a FIFO topic and this attribute is <code>false</code>, you must specify a value for the <code>MessageDeduplicationId</code> parameter for the <a href="https://docs.aws.amazon.com/sns/latest/api/API_Publish.html">Publish</a> action.  </li> <li> When you set <code>ContentBasedDeduplication</code> to <code>true</code>, Amazon SNS uses a SHA-256 hash to generate the <code>MessageDeduplicationId</code> using the body of the message (but not the attributes of the message). (Optional) To override the generated value, you can specify a value for the <code>MessageDeduplicationId</code> parameter for the <code>Publish</code> action. </li> </ul> </li> </ul><br/>        """
        pass

    def list_endpoints_by_platform_application(self, PlatformApplicationArn: str, NextToken: str=None) -> ListEndpointsByPlatformApplicationResponse:
        r"""Lists the endpoints and endpoint attributes for devices in a supported push notification service, such as GCM (Firebase Cloud Messaging) and APNS. The results for <code>ListEndpointsByPlatformApplication</code> are paginated and return a limited list of endpoints, up to 100. If additional records are available after the first page results, then a NextToken string will be returned. To receive the next page, you call <code>ListEndpointsByPlatformApplication</code> again using the NextToken string received from the previous call. When there are no more records to return, NextToken will be null. For more information, see <a href="https://docs.aws.amazon.com/sns/latest/dg/SNSMobilePush.html">Using Amazon SNS Mobile Push Notifications</a>.  This action is throttled at 30 transactions per second (TPS).

        :param self:
        :param NextToken:  NextToken string is used when calling ListEndpointsByPlatformApplication action to retrieve additional records that are available after the first page results.<br/>PlatformApplicationArn:  PlatformApplicationArn for ListEndpointsByPlatformApplicationInput action.<br/>
        :return: NextToken:  NextToken string is returned when calling ListEndpointsByPlatformApplication action if additional records are available after the first page results.<br/>Endpoints:  Endpoints returned for ListEndpointsByPlatformApplication action.<br/>        """
        pass

    def list_origination_numbers(self, NextToken: str=None, MaxResults: int=None) -> ListOriginationNumbersResult:
        r"""Lists the calling account's dedicated origination numbers and their metadata. For more information about origination numbers, see <a href="https://docs.aws.amazon.com/sns/latest/dg/channels-sms-originating-identities-origination-numbers.html">Origination numbers</a> in the <i>Amazon SNS Developer Guide</i>.

        :param self:
        :param MaxResults:  The maximum number of origination numbers to return.<br/>NextToken:  Token that the previous <code>ListOriginationNumbers</code> request returns.<br/>
        :return: PhoneNumbers:  A list of the calling account's verified and pending origination numbers.<br/>NextToken:  A <code>NextToken</code> string is returned when you call the <code>ListOriginationNumbers</code> operation if additional pages of records are available.<br/>        """
        pass

    def list_phone_numbers_opted_out(self, nextToken: str=None) -> ListPhoneNumbersOptedOutResponse:
        r"""Returns a list of phone numbers that are opted out, meaning you cannot send SMS messages to them. The results for <code>ListPhoneNumbersOptedOut</code> are paginated, and each page returns up to 100 phone numbers. If additional phone numbers are available after the first page of results, then a <code>NextToken</code> string will be returned. To receive the next page, you call <code>ListPhoneNumbersOptedOut</code> again using the <code>NextToken</code> string received from the previous call. When there are no more records to return, <code>NextToken</code> will be null.

        :param self:
        :param nextToken:  A <code>NextToken</code> string is used when you call the <code>ListPhoneNumbersOptedOut</code> action to retrieve additional records that are available after the first page of results.<br/>
        :return: nextToken:  A <code>NextToken</code> string is returned when you call the <code>ListPhoneNumbersOptedOut</code> action if additional records are available after the first page of results.<br/>phoneNumbers:  A list of phone numbers that are opted out of receiving SMS messages. The list is paginated, and each page can contain up to 100 phone numbers.<br/>        """
        pass

    def list_platform_applications(self, NextToken: str=None) -> ListPlatformApplicationsResponse:
        r"""Lists the platform application objects for the supported push notification services, such as APNS and GCM (Firebase Cloud Messaging). The results for <code>ListPlatformApplications</code> are paginated and return a limited list of applications, up to 100. If additional records are available after the first page results, then a NextToken string will be returned. To receive the next page, you call <code>ListPlatformApplications</code> using the NextToken string received from the previous call. When there are no more records to return, <code>NextToken</code> will be null. For more information, see <a href="https://docs.aws.amazon.com/sns/latest/dg/SNSMobilePush.html">Using Amazon SNS Mobile Push Notifications</a>.  This action is throttled at 15 transactions per second (TPS).

        :param self:
        :param NextToken:  NextToken string is used when calling ListPlatformApplications action to retrieve additional records that are available after the first page results.<br/>
        :return: NextToken:  NextToken string is returned when calling ListPlatformApplications action if additional records are available after the first page results.<br/>PlatformApplications:  Platform applications returned when calling ListPlatformApplications action.<br/>        """
        pass

    def list_sms_sandbox_phone_numbers(self, NextToken: str=None, MaxResults: int=None) -> ListSMSSandboxPhoneNumbersResult:
        r"""Lists the calling account's current verified and pending destination phone numbers in the SMS sandbox. When you start using Amazon SNS to send SMS messages, your account is in the <i>SMS sandbox</i>. The SMS sandbox provides a safe environment for you to try Amazon SNS features without risking your reputation as an SMS sender. While your account is in the SMS sandbox, you can use all of the features of Amazon SNS. However, you can send SMS messages only to verified destination phone numbers. For more information, including how to move out of the sandbox to send messages without restrictions, see <a href="https://docs.aws.amazon.com/sns/latest/dg/sns-sms-sandbox.html">SMS sandbox</a> in the <i>Amazon SNS Developer Guide</i>.

        :param self:
        :param MaxResults:  The maximum number of phone numbers to return.<br/>NextToken:  Token that the previous <code>ListSMSSandboxPhoneNumbersInput</code> request returns.<br/>
        :return: NextToken:  A <code>NextToken</code> string is returned when you call the <code>ListSMSSandboxPhoneNumbersInput</code> operation if additional pages of records are available.<br/>PhoneNumbers:  A list of the calling account's pending and verified phone numbers.<br/>        """
        pass

    def list_subscriptions(self, NextToken: str=None) -> ListSubscriptionsResponse:
        r"""Returns a list of the requester's subscriptions. Each call returns a limited list of subscriptions, up to 100. If there are more subscriptions, a <code>NextToken</code> is also returned. Use the <code>NextToken</code> parameter in a new <code>ListSubscriptions</code> call to get further results. This action is throttled at 30 transactions per second (TPS).

        :param self:
        :param NextToken:  Token returned by the previous <code>ListSubscriptions</code> request.<br/>
        :return: NextToken:  Token to pass along to the next <code>ListSubscriptions</code> request. This element is returned if there are more subscriptions to retrieve.<br/>Subscriptions:  A list of subscriptions.<br/>        """
        pass

    def list_subscriptions_by_topic(self, TopicArn: str, NextToken: str=None) -> ListSubscriptionsByTopicResponse:
        r"""Returns a list of the subscriptions to a specific topic. Each call returns a limited list of subscriptions, up to 100. If there are more subscriptions, a <code>NextToken</code> is also returned. Use the <code>NextToken</code> parameter in a new <code>ListSubscriptionsByTopic</code> call to get further results. This action is throttled at 30 transactions per second (TPS).

        :param self:
        :param NextToken:  Token returned by the previous <code>ListSubscriptionsByTopic</code> request.<br/>TopicArn:  The ARN of the topic for which you wish to find subscriptions.<br/>
        :return: NextToken:  Token to pass along to the next <code>ListSubscriptionsByTopic</code> request. This element is returned if there are more subscriptions to retrieve.<br/>Subscriptions:  A list of subscriptions.<br/>        """
        pass

    def list_tags_for_resource(self, ResourceArn: str) -> ListTagsForResourceResponse:
        r"""List all tags added to the specified Amazon SNS topic. For an overview, see <a href="https://docs.aws.amazon.com/sns/latest/dg/sns-tags.html">Amazon SNS Tags</a> in the <i>Amazon Simple Notification Service Developer Guide</i>.

        :param self:
        :param ResourceArn:  The ARN of the topic for which to list tags.<br/>
        :return: Tags:  The tags associated with the specified topic.<br/>        """
        pass

    def list_topics(self, NextToken: str=None) -> ListTopicsResponse:
        r"""Returns a list of the requester's topics. Each call returns a limited list of topics, up to 100. If there are more topics, a <code>NextToken</code> is also returned. Use the <code>NextToken</code> parameter in a new <code>ListTopics</code> call to get further results. This action is throttled at 30 transactions per second (TPS).

        :param self:
        :param NextToken:  Token returned by the previous <code>ListTopics</code> request.<br/>
        :return: NextToken:  Token to pass along to the next <code>ListTopics</code> request. This element is returned if there are additional topics to retrieve.<br/>Topics:  A list of topic ARNs.<br/>        """
        pass

    def opt_in_phone_number(self, phoneNumber: str) -> OptInPhoneNumberResponse:
        r"""Use this request to opt in a phone number that is opted out, which enables you to resume sending SMS messages to the number. You can opt in a phone number only once every 30 days.

        :param self:
        :param phoneNumber:  The phone number to opt in. Use E.164 format.<br/>
        :return:         """
        pass

    def publish(self, Message: str, TopicArn: str=None, TargetArn: str=None, PhoneNumber: str=None, Subject: str=None, MessageStructure: str=None, MessageAttributes: MessageAttributeMap=None, MessageDeduplicationId: str=None, MessageGroupId: str=None) -> PublishResponse:
        r"""Sends a message to an Amazon SNS topic, a text message (SMS message) directly to a phone number, or a message to a mobile platform endpoint (when you specify the <code>TargetArn</code>). If you send a message to a topic, Amazon SNS delivers the message to each endpoint that is subscribed to the topic. The format of the message depends on the notification protocol for each subscribed endpoint. When a <code>messageId</code> is returned, the message has been saved and Amazon SNS will attempt to deliver it shortly. To use the <code>Publish</code> action for sending a message to a mobile endpoint, such as an app on a Kindle device or mobile phone, you must specify the EndpointArn for the TargetArn parameter. The EndpointArn is returned when making a call with the <code>CreatePlatformEndpoint</code> action.  For more information about formatting messages, see <a href="https://docs.aws.amazon.com/sns/latest/dg/mobile-push-send-custommessage.html">Send Custom Platform-Specific Payloads in Messages to Mobile Devices</a>.  <important> You can publish messages only to topics and endpoints in the same Region. </important>

        :param self:
        :param MessageGroupId:  This parameter applies only to FIFO (first-in-first-out) topics. The <code>MessageGroupId</code> can contain up to 128 alphanumeric characters (a-z, A-Z, 0-9) and punctuation <code>(!"#$%&amp;'()*+,-./:;&lt;=&gt;?@[\]^_`{|}~)</code>. The <code>MessageGroupId</code> is a tag that specifies that a message belongs to a specific message group. Messages that belong to the same message group are processed in a FIFO manner (however, messages in different message groups might be processed out of order). Every message must include a <code>MessageGroupId</code>.<br/>MessageDeduplicationId:  This parameter applies only to FIFO (first-in-first-out) topics. The <code>MessageDeduplicationId</code> can contain up to 128 alphanumeric characters (a-z, A-Z, 0-9) and punctuation <code>(!"#$%&amp;'()*+,-./:;&lt;=&gt;?@[\]^_`{|}~)</code>. Every message must have a unique <code>MessageDeduplicationId</code>, which is a token used for deduplication of sent messages. If a message with a particular <code>MessageDeduplicationId</code> is sent successfully, any message sent with the same <code>MessageDeduplicationId</code> during the 5-minute deduplication interval is treated as a duplicate.  If the topic has <code>ContentBasedDeduplication</code> set, the system generates a <code>MessageDeduplicationId</code> based on the contents of the message. Your <code>MessageDeduplicationId</code> overrides the generated one.<br/>MessageAttributes:  Message attributes for Publish action.<br/>MessageStructure:  Set <code>MessageStructure</code> to <code>json</code> if you want to send a different message for each protocol. For example, using one publish action, you can send a short message to your SMS subscribers and a longer message to your email subscribers. If you set <code>MessageStructure</code> to <code>json</code>, the value of the <code>Message</code> parameter must:  <ul> <li> be a syntactically valid JSON object; and </li> <li> contain at least a top-level JSON key of "default" with a value that is a string. </li> </ul> You can define other top-level keys that define the message you want to send to a specific transport protocol (e.g., "http"). Valid value: <code>json</code> <br/>Subject:  Optional parameter to be used as the "Subject" line when the message is delivered to email endpoints. This field will also be included, if present, in the standard JSON messages delivered to other endpoints. Constraints: Subjects must be ASCII text that begins with a letter, number, or punctuation mark; must not include line breaks or control characters; and must be less than 100 characters long.<br/>Message:  The message you want to send. If you are publishing to a topic and you want to send the same message to all transport protocols, include the text of the message as a String value. If you want to send different messages for each transport protocol, set the value of the <code>MessageStructure</code> parameter to <code>json</code> and use a JSON object for the <code>Message</code> parameter.  <p/> Constraints: <ul> <li> With the exception of SMS, messages must be UTF-8 encoded strings and at most 256 KB in size (262,144 bytes, not 262,144 characters). </li> <li> For SMS, each message can contain up to 140 characters. This character limit depends on the encoding schema. For example, an SMS message can contain 160 GSM characters, 140 ASCII characters, or 70 UCS-2 characters. If you publish a message that exceeds this size limit, Amazon SNS sends the message as multiple messages, each fitting within the size limit. Messages aren't truncated mid-word but are cut off at whole-word boundaries. The total size limit for a single SMS <code>Publish</code> action is 1,600 characters. </li> </ul> JSON-specific constraints: <ul> <li> Keys in the JSON object that correspond to supported transport protocols must have simple JSON string values. </li> <li> The values will be parsed (unescaped) before they are used in outgoing messages. </li> <li> Outbound notifications are JSON encoded (meaning that the characters will be reescaped for sending). </li> <li> Values have a minimum length of 0 (the empty string, "", is allowed). </li> <li> Values have a maximum length bounded by the overall message size (so, including multiple protocols may limit message sizes). </li> <li> Non-string values will cause the key to be ignored. </li> <li> Keys that do not correspond to supported transport protocols are ignored. </li> <li> Duplicate keys are not allowed. </li> <li> Failure to parse or validate any key or value in the message will cause the <code>Publish</code> call to return an error (no partial delivery). </li> </ul><br/>PhoneNumber:  The phone number to which you want to deliver an SMS message. Use E.164 format. If you don't specify a value for the <code>PhoneNumber</code> parameter, you must specify a value for the <code>TargetArn</code> or <code>TopicArn</code> parameters.<br/>TargetArn:  If you don't specify a value for the <code>TargetArn</code> parameter, you must specify a value for the <code>PhoneNumber</code> or <code>TopicArn</code> parameters.<br/>TopicArn:  The topic you want to publish to. If you don't specify a value for the <code>TopicArn</code> parameter, you must specify a value for the <code>PhoneNumber</code> or <code>TargetArn</code> parameters.<br/>
        :return: SequenceNumber:  This response element applies only to FIFO (first-in-first-out) topics.  The sequence number is a large, non-consecutive number that Amazon SNS assigns to each message. The length of <code>SequenceNumber</code> is 128 bits. <code>SequenceNumber</code> continues to increase for each <code>MessageGroupId</code>.<br/>MessageId:  Unique identifier assigned to the published message. Length Constraint: Maximum 100 characters<br/>        """
        pass

    def remove_permission(self, Label: str, TopicArn: str):
        r"""Removes a statement from a topic's access control policy.

        :param self:
        :param Label:  The unique label of the statement you want to remove.<br/>TopicArn:  The ARN of the topic whose access control policy you wish to modify.<br/>
        :return:         """
        pass

    def set_endpoint_attributes(self, Attributes: MapStringToString, EndpointArn: str):
        r"""Sets the attributes for an endpoint for a device on one of the supported push notification services, such as GCM (Firebase Cloud Messaging) and APNS. For more information, see <a href="https://docs.aws.amazon.com/sns/latest/dg/SNSMobilePush.html">Using Amazon SNS Mobile Push Notifications</a>. 

        :param self:
        :param Attributes:  A map of the endpoint attributes. Attributes in this map include the following: <ul> <li>  <code>CustomUserData</code> – arbitrary user data to associate with the endpoint. Amazon SNS does not use this data. The data must be in UTF-8 format and less than 2KB. </li> <li>  <code>Enabled</code> – flag that enables/disables delivery to the endpoint. Amazon SNS will set this to false when a notification service indicates to Amazon SNS that the endpoint is invalid. Users can set it back to true, typically after updating Token. </li> <li>  <code>Token</code> – device token, also referred to as a registration id, for an app and mobile device. This is returned from the notification service when an app and mobile device are registered with the notification service. </li> </ul><br/>EndpointArn:  EndpointArn used for SetEndpointAttributes action.<br/>
        :return:         """
        pass

    def set_platform_application_attributes(self, Attributes: MapStringToString, PlatformApplicationArn: str):
        r"""Sets the attributes of the platform application object for the supported push notification services, such as APNS and GCM (Firebase Cloud Messaging). For more information, see <a href="https://docs.aws.amazon.com/sns/latest/dg/SNSMobilePush.html">Using Amazon SNS Mobile Push Notifications</a>. For information on configuring attributes for message delivery status, see <a href="https://docs.aws.amazon.com/sns/latest/dg/sns-msg-status.html">Using Amazon SNS Application Attributes for Message Delivery Status</a>. 

        :param self:
        :param Attributes:  A map of the platform application attributes. Attributes in this map include the following: <ul> <li>  <code>PlatformCredential</code> – The credential received from the notification service. For <code>APNS</code> and <code>APNS_SANDBOX</code>, <code>PlatformCredential</code> is <code>private key</code>. For <code>GCM</code> (Firebase Cloud Messaging), <code>PlatformCredential</code> is <code>API key</code>. For <code>ADM</code>, <code>PlatformCredential</code> is <code>client secret</code>. </li> <li>  <code>PlatformPrincipal</code> – The principal received from the notification service. For <code>APNS</code> and <code>APNS_SANDBOX</code>, <code>PlatformPrincipal</code> is <code>SSL certificate</code>. For <code>GCM</code> (Firebase Cloud Messaging), there is no <code>PlatformPrincipal</code>. For <code>ADM</code>, <code>PlatformPrincipal</code> is <code>client id</code>. </li> <li>  <code>EventEndpointCreated</code> – Topic ARN to which <code>EndpointCreated</code> event notifications are sent. </li> <li>  <code>EventEndpointDeleted</code> – Topic ARN to which <code>EndpointDeleted</code> event notifications are sent. </li> <li>  <code>EventEndpointUpdated</code> – Topic ARN to which <code>EndpointUpdate</code> event notifications are sent. </li> <li>  <code>EventDeliveryFailure</code> – Topic ARN to which <code>DeliveryFailure</code> event notifications are sent upon Direct Publish delivery failure (permanent) to one of the application's endpoints. </li> <li>  <code>SuccessFeedbackRoleArn</code> – IAM role ARN used to give Amazon SNS write access to use CloudWatch Logs on your behalf. </li> <li>  <code>FailureFeedbackRoleArn</code> – IAM role ARN used to give Amazon SNS write access to use CloudWatch Logs on your behalf. </li> <li>  <code>SuccessFeedbackSampleRate</code> – Sample rate percentage (0-100) of successfully delivered messages. </li> </ul><br/>PlatformApplicationArn:  PlatformApplicationArn for SetPlatformApplicationAttributes action.<br/>
        :return:         """
        pass

    def set_sms_attributes(self, attributes: MapStringToString) -> SetSMSAttributesResponse:
        r"""Use this request to set the default settings for sending SMS messages and receiving daily SMS usage reports. You can override some of these settings for a single message when you use the <code>Publish</code> action with the <code>MessageAttributes.entry.N</code> parameter. For more information, see <a href="https://docs.aws.amazon.com/sns/latest/dg/sms_publish-to-phone.html">Publishing to a mobile phone</a> in the <i>Amazon SNS Developer Guide</i>. <note> To use this operation, you must grant the Amazon SNS service principal (<code>sns.amazonaws.com</code>) permission to perform the <code>s3:ListBucket</code> action.  </note>

        :param self:
        :param attributes:  The default settings for sending SMS messages from your account. You can set values for the following attribute names:  <code>MonthlySpendLimit</code> – The maximum amount in USD that you are willing to spend each month to send SMS messages. When Amazon SNS determines that sending an SMS message would incur a cost that exceeds this limit, it stops sending SMS messages within minutes. <important> Amazon SNS stops sending SMS messages within minutes of the limit being crossed. During that interval, if you continue to send SMS messages, you will incur costs that exceed your limit. </important> By default, the spend limit is set to the maximum allowed by Amazon SNS. If you want to raise the limit, submit an <a href="https://console.aws.amazon.com/support/home#/case/create?issueType=service-limit-increase&amp;limitType=service-code-sns">SNS Limit Increase case</a>. For <b>New limit value</b>, enter your desired monthly spend limit. In the <b>Use Case Description</b> field, explain that you are requesting an SMS monthly spend limit increase.  <code>DeliveryStatusIAMRole</code> – The ARN of the IAM role that allows Amazon SNS to write logs about SMS deliveries in CloudWatch Logs. For each SMS message that you send, Amazon SNS writes a log that includes the message price, the success or failure status, the reason for failure (if the message failed), the message dwell time, and other information.  <code>DeliveryStatusSuccessSamplingRate</code> – The percentage of successful SMS deliveries for which Amazon SNS will write logs in CloudWatch Logs. The value can be an integer from 0 - 100. For example, to write logs only for failed deliveries, set this value to <code>0</code>. To write logs for 10% of your successful deliveries, set it to <code>10</code>.  <code>DefaultSenderID</code> – A string, such as your business brand, that is displayed as the sender on the receiving device. Support for sender IDs varies by country. The sender ID can be 1 - 11 alphanumeric characters, and it must contain at least one letter.  <code>DefaultSMSType</code> – The type of SMS message that you will send by default. You can assign the following values: <ul> <li>  <code>Promotional</code> – (Default) Noncritical messages, such as marketing messages. Amazon SNS optimizes the message delivery to incur the lowest cost. </li> <li>  <code>Transactional</code> – Critical messages that support customer transactions, such as one-time passcodes for multi-factor authentication. Amazon SNS optimizes the message delivery to achieve the highest reliability. </li> </ul>  <code>UsageReportS3Bucket</code> – The name of the Amazon S3 bucket to receive daily SMS usage reports from Amazon SNS. Each day, Amazon SNS will deliver a usage report as a CSV file to the bucket. The report includes the following information for each SMS message that was successfully delivered by your account: <ul> <li> Time that the message was published (in UTC) </li> <li> Message ID </li> <li> Destination phone number </li> <li> Message type </li> <li> Delivery status </li> <li> Message price (in USD) </li> <li> Part number (a message is split into multiple parts if it is too long for a single message) </li> <li> Total number of parts </li> </ul> To receive the report, the bucket must have a policy that allows the Amazon SNS service principal to perform the <code>s3:PutObject</code> and <code>s3:GetBucketLocation</code> actions. For an example bucket policy and usage report, see <a href="https://docs.aws.amazon.com/sns/latest/dg/sms_stats.html">Monitoring SMS Activity</a> in the <i>Amazon SNS Developer Guide</i>.<br/>
        :return:         """
        pass

    def set_subscription_attributes(self, AttributeName: str, SubscriptionArn: str, AttributeValue: str=None):
        r"""Allows a subscription owner to set an attribute of the subscription to a new value.

        :param self:
        :param AttributeValue:  The new value for the attribute in JSON format.<br/>AttributeName:  A map of attributes with their corresponding values. The following lists the names, descriptions, and values of the special request parameters that this action uses: <ul> <li>  <code>DeliveryPolicy</code> – The policy that defines how Amazon SNS retries failed deliveries to HTTP/S endpoints. </li> <li>  <code>FilterPolicy</code> – The simple JSON object that lets your subscriber receive only a subset of messages, rather than receiving every message published to the topic. </li> <li>  <code>RawMessageDelivery</code> – When set to <code>true</code>, enables raw message delivery to Amazon SQS or HTTP/S endpoints. This eliminates the need for the endpoints to process JSON formatting, which is otherwise created for Amazon SNS metadata. </li> <li>  <code>RedrivePolicy</code> – When specified, sends undeliverable messages to the specified Amazon SQS dead-letter queue. Messages that can't be delivered due to client errors (for example, when the subscribed endpoint is unreachable) or server errors (for example, when the service that powers the subscribed endpoint becomes unavailable) are held in the dead-letter queue for further analysis or reprocessing. </li> </ul> The following attribute applies only to Amazon Kinesis Data Firehose delivery stream subscriptions: <ul> <li>  <code>SubscriptionRoleArn</code> – The ARN of the IAM role that has the following: <ul> <li> Permission to write to the Kinesis Data Firehose delivery stream </li> <li> Amazon SNS listed as a trusted entity </li> </ul> Specifying a valid ARN for this attribute is required for Kinesis Data Firehose delivery stream subscriptions. For more information, see <a href="https://docs.aws.amazon.com/sns/latest/dg/sns-firehose-as-subscriber.html">Fanout to Kinesis Data Firehose delivery streams</a> in the <i>Amazon SNS Developer Guide</i>. </li> </ul><br/>SubscriptionArn:  The ARN of the subscription to modify.<br/>
        :return:         """
        pass

    def set_topic_attributes(self, AttributeName: str, TopicArn: str, AttributeValue: str=None):
        r"""Allows a topic owner to set an attribute of the topic to a new value.

        :param self:
        :param AttributeValue:  The new value for the attribute.<br/>AttributeName:  A map of attributes with their corresponding values. The following lists the names, descriptions, and values of the special request parameters that the <code>SetTopicAttributes</code> action uses: <ul> <li>  <code>DeliveryPolicy</code> – The policy that defines how Amazon SNS retries failed deliveries to HTTP/S endpoints. </li> <li>  <code>DisplayName</code> – The display name to use for a topic with SMS subscriptions. </li> <li>  <code>Policy</code> – The policy that defines who can access your topic. By default, only the topic owner can publish or subscribe to the topic. </li> </ul> The following attribute applies only to <a href="https://docs.aws.amazon.com/sns/latest/dg/sns-server-side-encryption.html">server-side-encryption</a>: <ul> <li>  <code>KmsMasterKeyId</code> – The ID of an Amazon Web Services managed customer master key (CMK) for Amazon SNS or a custom CMK. For more information, see <a href="https://docs.aws.amazon.com/sns/latest/dg/sns-server-side-encryption.html#sse-key-terms">Key Terms</a>. For more examples, see <a href="https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html#API_DescribeKey_RequestParameters">KeyId</a> in the <i>Key Management Service API Reference</i>.  </li> </ul> The following attribute applies only to <a href="https://docs.aws.amazon.com/sns/latest/dg/sns-fifo-topics.html">FIFO topics</a>: <ul> <li>  <code>ContentBasedDeduplication</code> – Enables content-based deduplication for FIFO topics. <ul> <li> By default, <code>ContentBasedDeduplication</code> is set to <code>false</code>. If you create a FIFO topic and this attribute is <code>false</code>, you must specify a value for the <code>MessageDeduplicationId</code> parameter for the <a href="https://docs.aws.amazon.com/sns/latest/api/API_Publish.html">Publish</a> action.  </li> <li> When you set <code>ContentBasedDeduplication</code> to <code>true</code>, Amazon SNS uses a SHA-256 hash to generate the <code>MessageDeduplicationId</code> using the body of the message (but not the attributes of the message). (Optional) To override the generated value, you can specify a value for the <code>MessageDeduplicationId</code> parameter for the <code>Publish</code> action. </li> </ul> </li> </ul><br/>TopicArn:  The ARN of the topic to modify.<br/>
        :return:         """
        pass

    def subscribe(self, Protocol: str, TopicArn: str, Endpoint: str=None, Attributes: SubscriptionAttributesMap=None, ReturnSubscriptionArn: boolean=None) -> SubscribeResponse:
        r"""Subscribes an endpoint to an Amazon SNS topic. If the endpoint type is HTTP/S or email, or if the endpoint and the topic are not in the same account, the endpoint owner must run the <code>ConfirmSubscription</code> action to confirm the subscription. You call the <code>ConfirmSubscription</code> action with the token from the subscription response. Confirmation tokens are valid for three days. This action is throttled at 100 transactions per second (TPS).

        :param self:
        :param ReturnSubscriptionArn:  Sets whether the response from the <code>Subscribe</code> request includes the subscription ARN, even if the subscription is not yet confirmed. If you set this parameter to <code>true</code>, the response includes the ARN in all cases, even if the subscription is not yet confirmed. In addition to the ARN for confirmed subscriptions, the response also includes the <code>pending subscription</code> ARN value for subscriptions that aren't yet confirmed. A subscription becomes confirmed when the subscriber calls the <code>ConfirmSubscription</code> action with a confirmation token. <p/> The default value is <code>false</code>.<br/>Attributes:  A map of attributes with their corresponding values. The following lists the names, descriptions, and values of the special request parameters that the <code>Subscribe</code> action uses: <ul> <li>  <code>DeliveryPolicy</code> – The policy that defines how Amazon SNS retries failed deliveries to HTTP/S endpoints. </li> <li>  <code>FilterPolicy</code> – The simple JSON object that lets your subscriber receive only a subset of messages, rather than receiving every message published to the topic. </li> <li>  <code>RawMessageDelivery</code> – When set to <code>true</code>, enables raw message delivery to Amazon SQS or HTTP/S endpoints. This eliminates the need for the endpoints to process JSON formatting, which is otherwise created for Amazon SNS metadata. </li> <li>  <code>RedrivePolicy</code> – When specified, sends undeliverable messages to the specified Amazon SQS dead-letter queue. Messages that can't be delivered due to client errors (for example, when the subscribed endpoint is unreachable) or server errors (for example, when the service that powers the subscribed endpoint becomes unavailable) are held in the dead-letter queue for further analysis or reprocessing. </li> </ul> The following attribute applies only to Amazon Kinesis Data Firehose delivery stream subscriptions: <ul> <li>  <code>SubscriptionRoleArn</code> – The ARN of the IAM role that has the following: <ul> <li> Permission to write to the Kinesis Data Firehose delivery stream </li> <li> Amazon SNS listed as a trusted entity </li> </ul> Specifying a valid ARN for this attribute is required for Kinesis Data Firehose delivery stream subscriptions. For more information, see <a href="https://docs.aws.amazon.com/sns/latest/dg/sns-firehose-as-subscriber.html">Fanout to Kinesis Data Firehose delivery streams</a> in the <i>Amazon SNS Developer Guide</i>. </li> </ul><br/>Endpoint:  The endpoint that you want to receive notifications. Endpoints vary by protocol: <ul> <li> For the <code>http</code> protocol, the (public) endpoint is a URL beginning with <code>http://</code>. </li> <li> For the <code>https</code> protocol, the (public) endpoint is a URL beginning with <code>https://</code>. </li> <li> For the <code>email</code> protocol, the endpoint is an email address. </li> <li> For the <code>email-json</code> protocol, the endpoint is an email address. </li> <li> For the <code>sms</code> protocol, the endpoint is a phone number of an SMS-enabled device. </li> <li> For the <code>sqs</code> protocol, the endpoint is the ARN of an Amazon SQS queue. </li> <li> For the <code>application</code> protocol, the endpoint is the EndpointArn of a mobile app and device. </li> <li> For the <code>lambda</code> protocol, the endpoint is the ARN of an Lambda function. </li> <li> For the <code>firehose</code> protocol, the endpoint is the ARN of an Amazon Kinesis Data Firehose delivery stream. </li> </ul><br/>Protocol:  The protocol that you want to use. Supported protocols include: <ul> <li>  <code>http</code> – delivery of JSON-encoded message via HTTP POST </li> <li>  <code>https</code> – delivery of JSON-encoded message via HTTPS POST </li> <li>  <code>email</code> – delivery of message via SMTP </li> <li>  <code>email-json</code> – delivery of JSON-encoded message via SMTP </li> <li>  <code>sms</code> – delivery of message via SMS </li> <li>  <code>sqs</code> – delivery of JSON-encoded message to an Amazon SQS queue </li> <li>  <code>application</code> – delivery of JSON-encoded message to an EndpointArn for a mobile app and device </li> <li>  <code>lambda</code> – delivery of JSON-encoded message to an Lambda function </li> <li>  <code>firehose</code> – delivery of JSON-encoded message to an Amazon Kinesis Data Firehose delivery stream. </li> </ul><br/>TopicArn:  The ARN of the topic you want to subscribe to.<br/>
        :return: SubscriptionArn:  The ARN of the subscription if it is confirmed, or the string "pending confirmation" if the subscription requires confirmation. However, if the API request parameter <code>ReturnSubscriptionArn</code> is true, then the value is always the subscription ARN, even if the subscription requires confirmation.<br/>        """
        pass

    def tag_resource(self, Tags: List[Tag], ResourceArn: str) -> TagResourceResponse:
        r"""Add tags to the specified Amazon SNS topic. For an overview, see <a href="https://docs.aws.amazon.com/sns/latest/dg/sns-tags.html">Amazon SNS Tags</a> in the <i>Amazon SNS Developer Guide</i>. When you use topic tags, keep the following guidelines in mind: <ul> <li> Adding more than 50 tags to a topic isn't recommended. </li> <li> Tags don't have any semantic meaning. Amazon SNS interprets tags as character strings. </li> <li> Tags are case-sensitive. </li> <li> A new tag with a key identical to that of an existing tag overwrites the existing tag. </li> <li> Tagging actions are limited to 10 TPS per account, per Region. If your application requires a higher throughput, file a <a href="https://console.aws.amazon.com/support/home#/case/create?issueType=technical">technical support request</a>. </li> </ul>

        :param self:
        :param Tags:  The tags to be added to the specified topic. A tag consists of a required key and an optional value.<br/>ResourceArn:  The ARN of the topic to which to add tags.<br/>
        :return:         """
        pass

    def unsubscribe(self, SubscriptionArn: str):
        r"""Deletes a subscription. If the subscription requires authentication for deletion, only the owner of the subscription or the topic's owner can unsubscribe, and an Amazon Web Services signature is required. If the <code>Unsubscribe</code> call does not require authentication and the requester is not the subscription owner, a final cancellation message is delivered to the endpoint, so that the endpoint owner can easily resubscribe to the topic if the <code>Unsubscribe</code> request was unintended. This action is throttled at 100 transactions per second (TPS).

        :param self:
        :param SubscriptionArn:  The ARN of the subscription to be deleted.<br/>
        :return:         """
        pass

    def untag_resource(self, TagKeys: List[TagKey], ResourceArn: str) -> UntagResourceResponse:
        r"""Remove tags from the specified Amazon SNS topic. For an overview, see <a href="https://docs.aws.amazon.com/sns/latest/dg/sns-tags.html">Amazon SNS Tags</a> in the <i>Amazon SNS Developer Guide</i>.

        :param self:
        :param TagKeys:  The list of tag keys to remove from the specified topic.<br/>ResourceArn:  The ARN of the topic from which to remove tags.<br/>
        :return:         """
        pass

    def verify_sms_sandbox_phone_number(self, OneTimePassword: str, PhoneNumber: str) -> VerifySMSSandboxPhoneNumberResult:
        r"""Verifies a destination phone number with a one-time password (OTP) for the calling account. When you start using Amazon SNS to send SMS messages, your account is in the <i>SMS sandbox</i>. The SMS sandbox provides a safe environment for you to try Amazon SNS features without risking your reputation as an SMS sender. While your account is in the SMS sandbox, you can use all of the features of Amazon SNS. However, you can send SMS messages only to verified destination phone numbers. For more information, including how to move out of the sandbox to send messages without restrictions, see <a href="https://docs.aws.amazon.com/sns/latest/dg/sns-sms-sandbox.html">SMS sandbox</a> in the <i>Amazon SNS Developer Guide</i>.

        :param self:
        :param OneTimePassword:  The OTP sent to the destination number from the <code>CreateSMSSandBoxPhoneNumber</code> call.<br/>PhoneNumber:  The destination phone number to verify.<br/>
        :return:         """
        pass



    class SnsResource:
        
        class PlatformApplication:
            r"""Creates a PlatformApplication resource.::

  platform_application = sns.PlatformApplication('arn')

:type arn: string
:param arn: The PlatformApplication's arn identifier. This **must** be set.

:rtype: :py:class:`SNS.PlatformApplication`
:returns: A PlatformApplication resource"""

            def __init__(self, arn):
                pass
            
            class MapStringToString(object):
                pass
        
            attributes: MapStringToString=None
            
            def create_platform_endpoint(self, **kwargs):
                # type: (object) -> PlatformEndpoint
                return PlatformEndpoint()

            def delete(self, **kwargs):
                # type: (object) -> dict
                return {}

            def set_attributes(self, **kwargs):
                # type: (object) -> dict
                return {}


        
        class PlatformEndpoint:
            r"""Creates a PlatformEndpoint resource.::

  platform_endpoint = sns.PlatformEndpoint('arn')

:type arn: string
:param arn: The PlatformEndpoint's arn identifier. This **must** be set.

:rtype: :py:class:`SNS.PlatformEndpoint`
:returns: A PlatformEndpoint resource"""

            def __init__(self, arn):
                pass
            
            class MapStringToString(object):
                pass
        
            attributes: MapStringToString=None
            
            def delete(self, **kwargs):
                # type: (object) -> dict
                return {}

            def publish(self, **kwargs):
                # type: (object) -> dict
                return {}

            def set_attributes(self, **kwargs):
                # type: (object) -> dict
                return {}


        
        class Subscription:
            r"""Creates a Subscription resource.::

  subscription = sns.Subscription('arn')

:type arn: string
:param arn: The Subscription's arn identifier. This **must** be set.

:rtype: :py:class:`SNS.Subscription`
:returns: A Subscription resource"""

            def __init__(self, arn):
                pass
            
            class SubscriptionAttributesMap(object):
                pass
        
            attributes: SubscriptionAttributesMap=None
            
            def delete(self, **kwargs):
                # type: (object) -> dict
                return {}

            def set_attributes(self, **kwargs):
                # type: (object) -> dict
                return {}


        
        class Topic:
            r"""Creates a Topic resource.::

  topic = sns.Topic('arn')

:type arn: string
:param arn: The Topic's arn identifier. This **must** be set.

:rtype: :py:class:`SNS.Topic`
:returns: A Topic resource"""

            def __init__(self, arn):
                pass
            
            class TopicAttributesMap(object):
                pass
        
            attributes: TopicAttributesMap=None
            
            def add_permission(self, **kwargs):
                # type: (object) -> dict
                return {}

            def confirm_subscription(self, **kwargs):
                # type: (object) -> Subscription
                return Subscription()

            def delete(self, **kwargs):
                # type: (object) -> dict
                return {}

            def publish(self, **kwargs):
                # type: (object) -> dict
                return {}

            def remove_permission(self, **kwargs):
                # type: (object) -> dict
                return {}

            def set_attributes(self, **kwargs):
                # type: (object) -> dict
                return {}

            def subscribe(self, **kwargs):
                # type: (object) -> Subscription
                return Subscription()


        def create_platform_application(self, **kwargs):
            # type: (object) -> PlatformApplication
            pass

        def create_topic(self, **kwargs):
            # type: (object) -> Topic
            pass

        def get_available_subresources(self) -> List[str]:
            pass

        class PlatformApplicationResourceCollection(List[PlatformApplication], ResourceCollection):
            pass

        platform_applications: PlatformApplicationResourceCollection = None
        class SubscriptionResourceCollection(List[Subscription], ResourceCollection):
            pass

        subscriptions: SubscriptionResourceCollection = None
        class TopicResourceCollection(List[Topic], ResourceCollection):
            pass

        topics: TopicResourceCollection = None




class SQS(BaseClient):
    r"""Welcome to the <i>Amazon SQS API Reference</i>. Amazon SQS is a reliable, highly-scalable hosted queue for storing messages as they travel between applications or microservices. Amazon SQS moves data between distributed application components and helps you decouple these components. For information on the permissions you need to use this API, see <a href="https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-authentication-and-access-control.html">Identity and access management</a> in the <i>Amazon SQS Developer Guide.</i>  You can use <a href="http://aws.amazon.com/tools/#sdk">Amazon Web Services SDKs</a> to access Amazon SQS using your favorite programming language. The SDKs perform tasks such as the following automatically: <ul> <li> Cryptographically sign your service requests </li> <li> Retry requests </li> <li> Handle error responses </li> </ul>  <b>Additional information</b>  <ul> <li>  <a href="http://aws.amazon.com/sqs/">Amazon SQS Product Page</a>  </li> <li>  <i>Amazon SQS Developer Guide</i>  <ul> <li>  <a href="https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-making-api-requests.html">Making API Requests</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-message-metadata.html#sqs-message-attributes">Amazon SQS Message Attributes</a>  </li> <li>  <a href="https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-dead-letter-queues.html">Amazon SQS Dead-Letter Queues</a>  </li> </ul> </li> <li>  <a href="http://docs.aws.amazon.com/cli/latest/reference/sqs/index.html">Amazon SQS in the <i>Command Line Interface</i> </a>  </li> <li>  <i>Amazon Web Services General Reference</i>  <ul> <li>  <a href="https://docs.aws.amazon.com/general/latest/gr/rande.html#sqs_region">Regions and Endpoints</a>  </li> </ul> </li> </ul>"""


    class ListDeadLetterSourceQueuesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_dead_letter_source_queues` for valid parameters"""
            pass
    class ListQueuesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_queues` for valid parameters"""
            pass


    class AddPermissionRequest(Mapping):
        pass
    
    class String(object):
        pass
    
    class ChangeMessageVisibilityRequest(Mapping):
        pass
    
    class ChangeMessageVisibilityBatchRequest(Mapping):
        pass
    
    class ChangeMessageVisibilityBatchResult(Mapping):
        pass
    
    class ChangeMessageVisibilityBatchRequestEntry(Mapping):
        pass
    
    class CreateQueueRequest(Mapping):
        pass
    
    class CreateQueueResult(Mapping):
        pass
    
    class QueueAttributeMap(object):
        pass
    
    class TagMap(object):
        pass
    
    class DeleteMessageRequest(Mapping):
        pass
    
    class DeleteMessageBatchRequest(Mapping):
        pass
    
    class DeleteMessageBatchResult(Mapping):
        pass
    
    class DeleteMessageBatchRequestEntry(Mapping):
        pass
    
    class DeleteQueueRequest(Mapping):
        pass
    
    class GetQueueAttributesRequest(Mapping):
        pass
    
    class GetQueueAttributesResult(Mapping):
        pass
    
    class QueueAttributeName(object):
        pass
    
    class GetQueueUrlRequest(Mapping):
        pass
    
    class GetQueueUrlResult(Mapping):
        pass
    
    class ListDeadLetterSourceQueuesRequest(Mapping):
        pass
    
    class ListDeadLetterSourceQueuesResult(Mapping):
        pass
    
    class ListQueueTagsRequest(Mapping):
        pass
    
    class ListQueueTagsResult(Mapping):
        pass
    
    class ListQueuesRequest(Mapping):
        pass
    
    class ListQueuesResult(Mapping):
        pass
    
    class PurgeQueueRequest(Mapping):
        pass
    
    class ReceiveMessageRequest(Mapping):
        pass
    
    class ReceiveMessageResult(Mapping):
        pass
    
    class MessageAttributeName(object):
        pass
    
    class RemovePermissionRequest(Mapping):
        pass
    
    class SendMessageRequest(Mapping):
        pass
    
    class SendMessageResult(Mapping):
        pass
    
    class MessageBodyAttributeMap(object):
        pass
    
    class MessageBodySystemAttributeMap(object):
        pass
    
    class SendMessageBatchRequest(Mapping):
        pass
    
    class SendMessageBatchResult(Mapping):
        pass
    
    class SendMessageBatchRequestEntry(Mapping):
        pass
    
    class SetQueueAttributesRequest(Mapping):
        pass
    
    class TagQueueRequest(Mapping):
        pass
    
    class UntagQueueRequest(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    def add_permission(self, Actions: List[String], AWSAccountIds: List[String], Label: str, QueueUrl: str):
        r"""Adds a permission to a queue for a specific <a href="https://docs.aws.amazon.com/general/latest/gr/glos-chap.html#P">principal</a>. This allows sharing access to the queue. When you create a queue, you have full control access rights for the queue. Only you, the owner of the queue, can grant or deny permissions to the queue. For more information about these permissions, see <a href="https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-writing-an-sqs-policy.html#write-messages-to-shared-queue">Allow Developers to Write Messages to a Shared Queue</a> in the <i>Amazon SQS Developer Guide</i>. <note> <ul> <li>  <code>AddPermission</code> generates a policy for you. You can use <code> <a>SetQueueAttributes</a> </code> to upload your policy. For more information, see <a href="https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-creating-custom-policies.html">Using Custom Policies with the Amazon SQS Access Policy Language</a> in the <i>Amazon SQS Developer Guide</i>. </li> <li> An Amazon SQS policy can have a maximum of 7 actions. </li> <li> To remove the ability to change queue permissions, you must deny permission to the <code>AddPermission</code>, <code>RemovePermission</code>, and <code>SetQueueAttributes</code> actions in your IAM policy. </li> </ul> </note> Some actions take lists of parameters. These lists are specified using the <code>param.n</code> notation. Values of <code>n</code> are integers starting from 1. For example, a parameter list with two elements looks like this:  <code>&amp;AttributeName.1=first</code>   <code>&amp;AttributeName.2=second</code>  <note> Cross-account permissions don't apply to this action. For more information, see <a href="https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-customer-managed-policy-examples.html#grant-cross-account-permissions-to-role-and-user-name">Grant cross-account permissions to a role and a user name</a> in the <i>Amazon SQS Developer Guide</i>. </note>

        :param self:
        :param Actions:  The action the client wants to allow for the specified principal. Valid values: the name of any action or <code>*</code>. For more information about these actions, see <a href="https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-overview-of-managing-access.html">Overview of Managing Access Permissions to Your Amazon Simple Queue Service Resource</a> in the <i>Amazon SQS Developer Guide</i>. Specifying <code>SendMessage</code>, <code>DeleteMessage</code>, or <code>ChangeMessageVisibility</code> for <code>ActionName.n</code> also grants permissions for the corresponding batch versions of those actions: <code>SendMessageBatch</code>, <code>DeleteMessageBatch</code>, and <code>ChangeMessageVisibilityBatch</code>.<br/>AWSAccountIds:  The account numbers of the <a href="https://docs.aws.amazon.com/general/latest/gr/glos-chap.html#P">principals</a> who are to receive permission. For information about locating the account identification, see <a href="https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-making-api-requests.html#sqs-api-request-authentication">Your Amazon Web Services Identifiers</a> in the <i>Amazon SQS Developer Guide</i>.<br/>Label:  The unique identification of the permission you're setting (for example, <code>AliceSendMessage</code>). Maximum 80 characters. Allowed characters include alphanumeric characters, hyphens (<code>-</code>), and underscores (<code>_</code>).<br/>QueueUrl:  The URL of the Amazon SQS queue to which permissions are added. Queue URLs and names are case-sensitive.<br/>
        :return:         """
        pass

    def change_message_visibility(self, VisibilityTimeout: int, ReceiptHandle: str, QueueUrl: str):
        r"""Changes the visibility timeout of a specified message in a queue to a new value. The default visibility timeout for a message is 30 seconds. The minimum is 0 seconds. The maximum is 12 hours. For more information, see <a href="https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-visibility-timeout.html">Visibility Timeout</a> in the <i>Amazon SQS Developer Guide</i>. For example, you have a message with a visibility timeout of 5 minutes. After 3 minutes, you call <code>ChangeMessageVisibility</code> with a timeout of 10 minutes. You can continue to call <code>ChangeMessageVisibility</code> to extend the visibility timeout to the maximum allowed time. If you try to extend the visibility timeout beyond the maximum, your request is rejected. An Amazon SQS message has three basic states: <ol> <li> Sent to a queue by a producer. </li> <li> Received from the queue by a consumer. </li> <li> Deleted from the queue. </li> </ol> A message is considered to be <i>stored</i> after it is sent to a queue by a producer, but not yet received from the queue by a consumer (that is, between states 1 and 2). There is no limit to the number of stored messages. A message is considered to be <i>in flight</i> after it is received from a queue by a consumer, but not yet deleted from the queue (that is, between states 2 and 3). There is a limit to the number of inflight messages. Limits that apply to inflight messages are unrelated to the <i>unlimited</i> number of stored messages. For most standard queues (depending on queue traffic and message backlog), there can be a maximum of approximately 120,000 inflight messages (received from a queue by a consumer, but not yet deleted from the queue). If you reach this limit, Amazon SQS returns the <code>OverLimit</code> error message. To avoid reaching the limit, you should delete messages from the queue after they're processed. You can also increase the number of queues you use to process your messages. To request a limit increase, <a href="https://console.aws.amazon.com/support/home#/case/create?issueType=service-limit-increase&amp;limitType=service-code-sqs">file a support request</a>. For FIFO queues, there can be a maximum of 20,000 inflight messages (received from a queue by a consumer, but not yet deleted from the queue). If you reach this limit, Amazon SQS returns no error messages. <important> If you attempt to set the <code>VisibilityTimeout</code> to a value greater than the maximum time left, Amazon SQS returns an error. Amazon SQS doesn't automatically recalculate and increase the timeout to the maximum remaining time. Unlike with a queue, when you change the visibility timeout for a specific message the timeout value is applied immediately but isn't saved in memory for that message. If you don't delete a message after it is received, the visibility timeout for the message reverts to the original timeout value (not to the value you set using the <code>ChangeMessageVisibility</code> action) the next time the message is received. </important>

        :param self:
        :param VisibilityTimeout:  The new value for the message's visibility timeout (in seconds). Values range: <code>0</code> to <code>43200</code>. Maximum: 12 hours.<br/>ReceiptHandle:  The receipt handle associated with the message whose visibility timeout is changed. This parameter is returned by the <code> <a>ReceiveMessage</a> </code> action.<br/>QueueUrl:  The URL of the Amazon SQS queue whose message's visibility is changed. Queue URLs and names are case-sensitive.<br/>
        :return:         """
        pass

    def change_message_visibility_batch(self, Entries: List[ChangeMessageVisibilityBatchRequestEntry], QueueUrl: str) -> ChangeMessageVisibilityBatchResult:
        r"""Changes the visibility timeout of multiple messages. This is a batch version of <code> <a>ChangeMessageVisibility</a>.</code> The result of the action on each message is reported individually in the response. You can send up to 10 <code> <a>ChangeMessageVisibility</a> </code> requests with each <code>ChangeMessageVisibilityBatch</code> action. <important> Because the batch request can result in a combination of successful and unsuccessful actions, you should check for batch errors even when the call returns an HTTP status code of <code>200</code>. </important> Some actions take lists of parameters. These lists are specified using the <code>param.n</code> notation. Values of <code>n</code> are integers starting from 1. For example, a parameter list with two elements looks like this:  <code>&amp;AttributeName.1=first</code>   <code>&amp;AttributeName.2=second</code> 

        :param self:
        :param Entries:  A list of receipt handles of the messages for which the visibility timeout must be changed.<br/>QueueUrl:  The URL of the Amazon SQS queue whose messages' visibility is changed. Queue URLs and names are case-sensitive.<br/>
        :return: Failed:  A list of <code> <a>BatchResultErrorEntry</a> </code> items.<br/>Successful:  A list of <code> <a>ChangeMessageVisibilityBatchResultEntry</a> </code> items.<br/>        """
        pass

    def create_queue(self, QueueName: str, Attributes: QueueAttributeMap=None, tags: TagMap=None) -> CreateQueueResult:
        r"""Creates a new standard or FIFO queue. You can pass one or more attributes in the request. Keep the following in mind: <ul> <li> If you don't specify the <code>FifoQueue</code> attribute, Amazon SQS creates a standard queue. <note> You can't change the queue type after you create it and you can't convert an existing standard queue into a FIFO queue. You must either create a new FIFO queue for your application or delete your existing standard queue and recreate it as a FIFO queue. For more information, see <a href="https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html#FIFO-queues-moving">Moving From a Standard Queue to a FIFO Queue</a> in the <i>Amazon SQS Developer Guide</i>.  </note> </li> <li> If you don't provide a value for an attribute, the queue is created with the default value for the attribute. </li> <li> If you delete a queue, you must wait at least 60 seconds before creating a queue with the same name. </li> </ul> To successfully create a new queue, you must provide a queue name that adheres to the <a href="https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/limits-queues.html">limits related to queues</a> and is unique within the scope of your queues. <note> After you create a queue, you must wait at least one second after the queue is created to be able to use the queue. </note> To get the queue URL, use the <code> <a>GetQueueUrl</a> </code> action. <code> <a>GetQueueUrl</a> </code> requires only the <code>QueueName</code> parameter. be aware of existing queue names: <ul> <li> If you provide the name of an existing queue along with the exact names and values of all the queue's attributes, <code>CreateQueue</code> returns the queue URL for the existing queue. </li> <li> If the queue name, attribute names, or attribute values don't match an existing queue, <code>CreateQueue</code> returns an error. </li> </ul> Some actions take lists of parameters. These lists are specified using the <code>param.n</code> notation. Values of <code>n</code> are integers starting from 1. For example, a parameter list with two elements looks like this:  <code>&amp;AttributeName.1=first</code>   <code>&amp;AttributeName.2=second</code>  <note> Cross-account permissions don't apply to this action. For more information, see <a href="https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-customer-managed-policy-examples.html#grant-cross-account-permissions-to-role-and-user-name">Grant cross-account permissions to a role and a user name</a> in the <i>Amazon SQS Developer Guide</i>. </note>

        :param self:
        :param tags:  Add cost allocation tags to the specified Amazon SQS queue. For an overview, see <a href="https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-queue-tags.html">Tagging Your Amazon SQS Queues</a> in the <i>Amazon SQS Developer Guide</i>. When you use queue tags, keep the following guidelines in mind: <ul> <li> Adding more than 50 tags to a queue isn't recommended. </li> <li> Tags don't have any semantic meaning. Amazon SQS interprets tags as character strings. </li> <li> Tags are case-sensitive. </li> <li> A new tag with a key identical to that of an existing tag overwrites the existing tag. </li> </ul> For a full list of tag restrictions, see <a href="https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-limits.html#limits-queues">Quotas related to queues</a> in the <i>Amazon SQS Developer Guide</i>. <note> To be able to tag a queue on creation, you must have the <code>sqs:CreateQueue</code> and <code>sqs:TagQueue</code> permissions. Cross-account permissions don't apply to this action. For more information, see <a href="https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-customer-managed-policy-examples.html#grant-cross-account-permissions-to-role-and-user-name">Grant cross-account permissions to a role and a user name</a> in the <i>Amazon SQS Developer Guide</i>. </note><br/>Attributes:  A map of attributes with their corresponding values. The following lists the names, descriptions, and values of the special request parameters that the <code>CreateQueue</code> action uses: <ul> <li>  <code>DelaySeconds</code> – The length of time, in seconds, for which the delivery of all messages in the queue is delayed. Valid values: An integer from 0 to 900 seconds (15 minutes). Default: 0.  </li> <li>  <code>MaximumMessageSize</code> – The limit of how many bytes a message can contain before Amazon SQS rejects it. Valid values: An integer from 1,024 bytes (1 KiB) to 262,144 bytes (256 KiB). Default: 262,144 (256 KiB).  </li> <li>  <code>MessageRetentionPeriod</code> – The length of time, in seconds, for which Amazon SQS retains a message. Valid values: An integer from 60 seconds (1 minute) to 1,209,600 seconds (14 days). Default: 345,600 (4 days).  </li> <li>  <code>Policy</code> – The queue's policy. A valid Amazon Web Services policy. For more information about policy structure, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/PoliciesOverview.html">Overview of Amazon Web Services IAM Policies</a> in the <i>Amazon IAM User Guide</i>.  </li> <li>  <code>ReceiveMessageWaitTimeSeconds</code> – The length of time, in seconds, for which a <code> <a>ReceiveMessage</a> </code> action waits for a message to arrive. Valid values: An integer from 0 to 20 (seconds). Default: 0.  </li> <li>  <code>RedrivePolicy</code> – The string that includes the parameters for the dead-letter queue functionality of the source queue as a JSON object. For more information about the redrive policy and dead-letter queues, see <a href="https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-dead-letter-queues.html">Using Amazon SQS Dead-Letter Queues</a> in the <i>Amazon SQS Developer Guide</i>. <ul> <li>  <code>deadLetterTargetArn</code> – The Amazon Resource Name (ARN) of the dead-letter queue to which Amazon SQS moves messages after the value of <code>maxReceiveCount</code> is exceeded. </li> <li>  <code>maxReceiveCount</code> – The number of times a message is delivered to the source queue before being moved to the dead-letter queue. When the <code>ReceiveCount</code> for a message exceeds the <code>maxReceiveCount</code> for a queue, Amazon SQS moves the message to the dead-letter-queue. </li> </ul> <note> The dead-letter queue of a FIFO queue must also be a FIFO queue. Similarly, the dead-letter queue of a standard queue must also be a standard queue. </note> </li> <li>  <code>VisibilityTimeout</code> – The visibility timeout for the queue, in seconds. Valid values: An integer from 0 to 43,200 (12 hours). Default: 30. For more information about the visibility timeout, see <a href="https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-visibility-timeout.html">Visibility Timeout</a> in the <i>Amazon SQS Developer Guide</i>. </li> </ul> The following attributes apply only to <a href="https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html">server-side-encryption</a>: <ul> <li>  <code>KmsMasterKeyId</code> – The ID of an Amazon Web Services managed customer master key (CMK) for Amazon SQS or a custom CMK. For more information, see <a href="https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html#sqs-sse-key-terms">Key Terms</a>. While the alias of the Amazon Web Services managed CMK for Amazon SQS is always <code>alias/aws/sqs</code>, the alias of a custom CMK can, for example, be <code>alias/<i>MyAlias</i> </code>. For more examples, see <a href="https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html#API_DescribeKey_RequestParameters">KeyId</a> in the <i>Key Management Service API Reference</i>.  </li> <li>  <code>KmsDataKeyReusePeriodSeconds</code> – The length of time, in seconds, for which Amazon SQS can reuse a <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#data-keys">data key</a> to encrypt or decrypt messages before calling KMS again. An integer representing seconds, between 60 seconds (1 minute) and 86,400 seconds (24 hours). Default: 300 (5 minutes). A shorter time period provides better security but results in more calls to KMS which might incur charges after Free Tier. For more information, see <a href="https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html#sqs-how-does-the-data-key-reuse-period-work">How Does the Data Key Reuse Period Work?</a>.  </li> </ul> The following attributes apply only to <a href="https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html">FIFO (first-in-first-out) queues</a>: <ul> <li>  <code>FifoQueue</code> – Designates a queue as FIFO. Valid values are <code>true</code> and <code>false</code>. If you don't specify the <code>FifoQueue</code> attribute, Amazon SQS creates a standard queue. You can provide this attribute only during queue creation. You can't change it for an existing queue. When you set this attribute, you must also provide the <code>MessageGroupId</code> for your messages explicitly. For more information, see <a href="https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues-understanding-logic.html">FIFO queue logic</a> in the <i>Amazon SQS Developer Guide</i>. </li> <li>  <code>ContentBasedDeduplication</code> – Enables content-based deduplication. Valid values are <code>true</code> and <code>false</code>. For more information, see <a href="https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues-exactly-once-processing.html">Exactly-once processing</a> in the <i>Amazon SQS Developer Guide</i>. Note the following:  <ul> <li> Every message must have a unique <code>MessageDeduplicationId</code>. <ul> <li> You may provide a <code>MessageDeduplicationId</code> explicitly. </li> <li> If you aren't able to provide a <code>MessageDeduplicationId</code> and you enable <code>ContentBasedDeduplication</code> for your queue, Amazon SQS uses a SHA-256 hash to generate the <code>MessageDeduplicationId</code> using the body of the message (but not the attributes of the message).  </li> <li> If you don't provide a <code>MessageDeduplicationId</code> and the queue doesn't have <code>ContentBasedDeduplication</code> set, the action fails with an error. </li> <li> If the queue has <code>ContentBasedDeduplication</code> set, your <code>MessageDeduplicationId</code> overrides the generated one. </li> </ul> </li> <li> When <code>ContentBasedDeduplication</code> is in effect, messages with identical content sent within the deduplication interval are treated as duplicates and only one copy of the message is delivered. </li> <li> If you send one message with <code>ContentBasedDeduplication</code> enabled and then another message with a <code>MessageDeduplicationId</code> that is the same as the one generated for the first <code>MessageDeduplicationId</code>, the two messages are treated as duplicates and only one copy of the message is delivered.  </li> </ul> </li> </ul> The following attributes apply only to <a href="https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/high-throughput-fifo.html">high throughput for FIFO queues</a>: <ul> <li>  <code>DeduplicationScope</code> – Specifies whether message deduplication occurs at the message group or queue level. Valid values are <code>messageGroup</code> and <code>queue</code>. </li> <li>  <code>FifoThroughputLimit</code> – Specifies whether the FIFO queue throughput quota applies to the entire queue or per message group. Valid values are <code>perQueue</code> and <code>perMessageGroupId</code>. The <code>perMessageGroupId</code> value is allowed only when the value for <code>DeduplicationScope</code> is <code>messageGroup</code>. </li> </ul> To enable high throughput for FIFO queues, do the following: <ul> <li> Set <code>DeduplicationScope</code> to <code>messageGroup</code>. </li> <li> Set <code>FifoThroughputLimit</code> to <code>perMessageGroupId</code>. </li> </ul> If you set these attributes to anything other than the values shown for enabling high throughput, normal throughput is in effect and deduplication occurs as specified. For information on throughput quotas, see <a href="https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/quotas-messages.html">Quotas related to messages</a> in the <i>Amazon SQS Developer Guide</i>.<br/>QueueName:  The name of the new queue. The following limits apply to this name: <ul> <li> A queue name can have up to 80 characters. </li> <li> Valid values: alphanumeric characters, hyphens (<code>-</code>), and underscores (<code>_</code>). </li> <li> A FIFO queue name must end with the <code>.fifo</code> suffix. </li> </ul> Queue URLs and names are case-sensitive.<br/>
        :return: QueueUrl:  The URL of the created Amazon SQS queue.<br/>        """
        pass

    def delete_message(self, ReceiptHandle: str, QueueUrl: str):
        r"""Deletes the specified message from the specified queue. To select the message to delete, use the <code>ReceiptHandle</code> of the message (<i>not</i> the <code>MessageId</code> which you receive when you send the message). Amazon SQS can delete a message from a queue even if a visibility timeout setting causes the message to be locked by another consumer. Amazon SQS automatically deletes messages left in a queue longer than the retention period configured for the queue.  <note> The <code>ReceiptHandle</code> is associated with a <i>specific instance</i> of receiving a message. If you receive a message more than once, the <code>ReceiptHandle</code> is different each time you receive a message. When you use the <code>DeleteMessage</code> action, you must provide the most recently received <code>ReceiptHandle</code> for the message (otherwise, the request succeeds, but the message might not be deleted). For standard queues, it is possible to receive a message even after you delete it. This might happen on rare occasions if one of the servers which stores a copy of the message is unavailable when you send the request to delete the message. The copy remains on the server and might be returned to you during a subsequent receive request. You should ensure that your application is idempotent, so that receiving a message more than once does not cause issues. </note>

        :param self:
        :param ReceiptHandle:  The receipt handle associated with the message to delete.<br/>QueueUrl:  The URL of the Amazon SQS queue from which messages are deleted. Queue URLs and names are case-sensitive.<br/>
        :return:         """
        pass

    def delete_message_batch(self, Entries: List[DeleteMessageBatchRequestEntry], QueueUrl: str) -> DeleteMessageBatchResult:
        r"""Deletes up to ten messages from the specified queue. This is a batch version of <code> <a>DeleteMessage</a>.</code> The result of the action on each message is reported individually in the response. <important> Because the batch request can result in a combination of successful and unsuccessful actions, you should check for batch errors even when the call returns an HTTP status code of <code>200</code>. </important> Some actions take lists of parameters. These lists are specified using the <code>param.n</code> notation. Values of <code>n</code> are integers starting from 1. For example, a parameter list with two elements looks like this:  <code>&amp;AttributeName.1=first</code>   <code>&amp;AttributeName.2=second</code> 

        :param self:
        :param Entries:  A list of receipt handles for the messages to be deleted.<br/>QueueUrl:  The URL of the Amazon SQS queue from which messages are deleted. Queue URLs and names are case-sensitive.<br/>
        :return: Failed:  A list of <code> <a>BatchResultErrorEntry</a> </code> items.<br/>Successful:  A list of <code> <a>DeleteMessageBatchResultEntry</a> </code> items.<br/>        """
        pass

    def delete_queue(self, QueueUrl: str):
        r"""Deletes the queue specified by the <code>QueueUrl</code>, regardless of the queue's contents. <important> Be careful with the <code>DeleteQueue</code> action: When you delete a queue, any messages in the queue are no longer available.  </important> When you delete a queue, the deletion process takes up to 60 seconds. Requests you send involving that queue during the 60 seconds might succeed. For example, a <code> <a>SendMessage</a> </code> request might succeed, but after 60 seconds the queue and the message you sent no longer exist. When you delete a queue, you must wait at least 60 seconds before creating a queue with the same name. <note> Cross-account permissions don't apply to this action. For more information, see <a href="https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-customer-managed-policy-examples.html#grant-cross-account-permissions-to-role-and-user-name">Grant cross-account permissions to a role and a user name</a> in the <i>Amazon SQS Developer Guide</i>. </note>

        :param self:
        :param QueueUrl:  The URL of the Amazon SQS queue to delete. Queue URLs and names are case-sensitive.<br/>
        :return:         """
        pass

    def get_queue_attributes(self, QueueUrl: str, AttributeNames: List[QueueAttributeName]=None) -> GetQueueAttributesResult:
        r"""Gets attributes for the specified queue. <note> To determine whether a queue is <a href="https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html">FIFO</a>, you can check whether <code>QueueName</code> ends with the <code>.fifo</code> suffix. </note>

        :param self:
        :param AttributeNames:  A list of attributes for which to retrieve information. The <code>AttributeName.N</code> parameter is optional, but if you don't specify values for this parameter, the request returns empty results. <note> In the future, new attributes might be added. If you write code that calls this action, we recommend that you structure your code so that it can handle new attributes gracefully. </note> The following attributes are supported: <important> The <code>ApproximateNumberOfMessagesDelayed</code>, <code>ApproximateNumberOfMessagesNotVisible</code>, and <code>ApproximateNumberOfMessagesVisible</code> metrics may not achieve consistency until at least 1 minute after the producers stop sending messages. This period is required for the queue metadata to reach eventual consistency.  </important> <ul> <li>  <code>All</code> – Returns all values.  </li> <li>  <code>ApproximateNumberOfMessages</code> – Returns the approximate number of messages available for retrieval from the queue. </li> <li>  <code>ApproximateNumberOfMessagesDelayed</code> – Returns the approximate number of messages in the queue that are delayed and not available for reading immediately. This can happen when the queue is configured as a delay queue or when a message has been sent with a delay parameter. </li> <li>  <code>ApproximateNumberOfMessagesNotVisible</code> – Returns the approximate number of messages that are in flight. Messages are considered to be <i>in flight</i> if they have been sent to a client but have not yet been deleted or have not yet reached the end of their visibility window.  </li> <li>  <code>CreatedTimestamp</code> – Returns the time when the queue was created in seconds (<a href="http://en.wikipedia.org/wiki/Unix_time">epoch time</a>). </li> <li>  <code>DelaySeconds</code> – Returns the default delay on the queue in seconds. </li> <li>  <code>LastModifiedTimestamp</code> – Returns the time when the queue was last changed in seconds (<a href="http://en.wikipedia.org/wiki/Unix_time">epoch time</a>). </li> <li>  <code>MaximumMessageSize</code> – Returns the limit of how many bytes a message can contain before Amazon SQS rejects it. </li> <li>  <code>MessageRetentionPeriod</code> – Returns the length of time, in seconds, for which Amazon SQS retains a message. </li> <li>  <code>Policy</code> – Returns the policy of the queue. </li> <li>  <code>QueueArn</code> – Returns the Amazon resource name (ARN) of the queue. </li> <li>  <code>ReceiveMessageWaitTimeSeconds</code> – Returns the length of time, in seconds, for which the <code>ReceiveMessage</code> action waits for a message to arrive.  </li> <li>  <code>RedrivePolicy</code> – The string that includes the parameters for the dead-letter queue functionality of the source queue as a JSON object. For more information about the redrive policy and dead-letter queues, see <a href="https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-dead-letter-queues.html">Using Amazon SQS Dead-Letter Queues</a> in the <i>Amazon SQS Developer Guide</i>. <ul> <li>  <code>deadLetterTargetArn</code> – The Amazon Resource Name (ARN) of the dead-letter queue to which Amazon SQS moves messages after the value of <code>maxReceiveCount</code> is exceeded. </li> <li>  <code>maxReceiveCount</code> – The number of times a message is delivered to the source queue before being moved to the dead-letter queue. When the <code>ReceiveCount</code> for a message exceeds the <code>maxReceiveCount</code> for a queue, Amazon SQS moves the message to the dead-letter-queue. </li> </ul> </li> <li>  <code>VisibilityTimeout</code> – Returns the visibility timeout for the queue. For more information about the visibility timeout, see <a href="https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-visibility-timeout.html">Visibility Timeout</a> in the <i>Amazon SQS Developer Guide</i>.  </li> </ul> The following attributes apply only to <a href="https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html">server-side-encryption</a>: <ul> <li>  <code>KmsMasterKeyId</code> – Returns the ID of an Amazon Web Services managed customer master key (CMK) for Amazon SQS or a custom CMK. For more information, see <a href="https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html#sqs-sse-key-terms">Key Terms</a>.  </li> <li>  <code>KmsDataKeyReusePeriodSeconds</code> – Returns the length of time, in seconds, for which Amazon SQS can reuse a data key to encrypt or decrypt messages before calling KMS again. For more information, see <a href="https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html#sqs-how-does-the-data-key-reuse-period-work">How Does the Data Key Reuse Period Work?</a>.  </li> </ul> The following attributes apply only to <a href="https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html">FIFO (first-in-first-out) queues</a>: <ul> <li>  <code>FifoQueue</code> – Returns information about whether the queue is FIFO. For more information, see <a href="https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues-understanding-logic.html">FIFO queue logic</a> in the <i>Amazon SQS Developer Guide</i>. <note> To determine whether a queue is <a href="https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html">FIFO</a>, you can check whether <code>QueueName</code> ends with the <code>.fifo</code> suffix. </note> </li> <li>  <code>ContentBasedDeduplication</code> – Returns whether content-based deduplication is enabled for the queue. For more information, see <a href="https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues-exactly-once-processing.html">Exactly-once processing</a> in the <i>Amazon SQS Developer Guide</i>.  </li> </ul> The following attributes apply only to <a href="https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/high-throughput-fifo.html">high throughput for FIFO queues</a>: <ul> <li>  <code>DeduplicationScope</code> – Specifies whether message deduplication occurs at the message group or queue level. Valid values are <code>messageGroup</code> and <code>queue</code>. </li> <li>  <code>FifoThroughputLimit</code> – Specifies whether the FIFO queue throughput quota applies to the entire queue or per message group. Valid values are <code>perQueue</code> and <code>perMessageGroupId</code>. The <code>perMessageGroupId</code> value is allowed only when the value for <code>DeduplicationScope</code> is <code>messageGroup</code>. </li> </ul> To enable high throughput for FIFO queues, do the following: <ul> <li> Set <code>DeduplicationScope</code> to <code>messageGroup</code>. </li> <li> Set <code>FifoThroughputLimit</code> to <code>perMessageGroupId</code>. </li> </ul> If you set these attributes to anything other than the values shown for enabling high throughput, normal throughput is in effect and deduplication occurs as specified. For information on throughput quotas, see <a href="https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/quotas-messages.html">Quotas related to messages</a> in the <i>Amazon SQS Developer Guide</i>.<br/>QueueUrl:  The URL of the Amazon SQS queue whose attribute information is retrieved. Queue URLs and names are case-sensitive.<br/>
        :return: Attributes:  A map of attributes to their respective values.<br/>        """
        pass

    def get_queue_url(self, QueueName: str, QueueOwnerAWSAccountId: str=None) -> GetQueueUrlResult:
        r"""Returns the URL of an existing Amazon SQS queue. To access a queue that belongs to another AWS account, use the <code>QueueOwnerAWSAccountId</code> parameter to specify the account ID of the queue's owner. The queue's owner must grant you permission to access the queue. For more information about shared queue access, see <code> <a>AddPermission</a> </code> or see <a href="https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-writing-an-sqs-policy.html#write-messages-to-shared-queue">Allow Developers to Write Messages to a Shared Queue</a> in the <i>Amazon SQS Developer Guide</i>. 

        :param self:
        :param QueueOwnerAWSAccountId:  The account ID of the account that created the queue.<br/>QueueName:  The name of the queue whose URL must be fetched. Maximum 80 characters. Valid values: alphanumeric characters, hyphens (<code>-</code>), and underscores (<code>_</code>). Queue URLs and names are case-sensitive.<br/>
        :return: QueueUrl:  The URL of the queue.<br/>        """
        pass

    def list_dead_letter_source_queues(self, QueueUrl: str, NextToken: str=None, MaxResults: int=None) -> ListDeadLetterSourceQueuesResult:
        r"""Returns a list of your queues that have the <code>RedrivePolicy</code> queue attribute configured with a dead-letter queue.  The <code>ListDeadLetterSourceQueues</code> methods supports pagination. Set parameter <code>MaxResults</code> in the request to specify the maximum number of results to be returned in the response. If you do not set <code>MaxResults</code>, the response includes a maximum of 1,000 results. If you set <code>MaxResults</code> and there are additional results to display, the response includes a value for <code>NextToken</code>. Use <code>NextToken</code> as a parameter in your next request to <code>ListDeadLetterSourceQueues</code> to receive the next page of results.  For more information about using dead-letter queues, see <a href="https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-dead-letter-queues.html">Using Amazon SQS Dead-Letter Queues</a> in the <i>Amazon SQS Developer Guide</i>.

        :param self:
        :param MaxResults:  Maximum number of results to include in the response. Value range is 1 to 1000. You must set <code>MaxResults</code> to receive a value for <code>NextToken</code> in the response.<br/>NextToken:  Pagination token to request the next set of results.<br/>QueueUrl:  The URL of a dead-letter queue. Queue URLs and names are case-sensitive.<br/>
        :return: NextToken:  Pagination token to include in the next request. Token value is <code>null</code> if there are no additional results to request, or if you did not set <code>MaxResults</code> in the request.<br/>queueUrls:  A list of source queue URLs that have the <code>RedrivePolicy</code> queue attribute configured with a dead-letter queue.<br/>        """
        pass

    def list_queue_tags(self, QueueUrl: str) -> ListQueueTagsResult:
        r"""List all cost allocation tags added to the specified Amazon SQS queue. For an overview, see <a href="https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-queue-tags.html">Tagging Your Amazon SQS Queues</a> in the <i>Amazon SQS Developer Guide</i>. <note> Cross-account permissions don't apply to this action. For more information, see <a href="https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-customer-managed-policy-examples.html#grant-cross-account-permissions-to-role-and-user-name">Grant cross-account permissions to a role and a user name</a> in the <i>Amazon SQS Developer Guide</i>. </note>

        :param self:
        :param QueueUrl:  The URL of the queue.<br/>
        :return: Tags:  The list of all tags added to the specified queue.<br/>        """
        pass

    def list_queues(self, QueueNamePrefix: str=None, NextToken: str=None, MaxResults: int=None) -> ListQueuesResult:
        r"""Returns a list of your queues in the current region. The response includes a maximum of 1,000 results. If you specify a value for the optional <code>QueueNamePrefix</code> parameter, only queues with a name that begins with the specified value are returned.  The <code>listQueues</code> methods supports pagination. Set parameter <code>MaxResults</code> in the request to specify the maximum number of results to be returned in the response. If you do not set <code>MaxResults</code>, the response includes a maximum of 1,000 results. If you set <code>MaxResults</code> and there are additional results to display, the response includes a value for <code>NextToken</code>. Use <code>NextToken</code> as a parameter in your next request to <code>listQueues</code> to receive the next page of results.  <note> Cross-account permissions don't apply to this action. For more information, see <a href="https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-customer-managed-policy-examples.html#grant-cross-account-permissions-to-role-and-user-name">Grant cross-account permissions to a role and a user name</a> in the <i>Amazon SQS Developer Guide</i>. </note>

        :param self:
        :param MaxResults:  Maximum number of results to include in the response. Value range is 1 to 1000. You must set <code>MaxResults</code> to receive a value for <code>NextToken</code> in the response.<br/>NextToken:  Pagination token to request the next set of results.<br/>QueueNamePrefix:  A string to use for filtering the list results. Only those queues whose name begins with the specified string are returned. Queue URLs and names are case-sensitive.<br/>
        :return: NextToken:  Pagination token to include in the next request. Token value is <code>null</code> if there are no additional results to request, or if you did not set <code>MaxResults</code> in the request.<br/>QueueUrls:  A list of queue URLs, up to 1,000 entries, or the value of MaxResults that you sent in the request.<br/>        """
        pass

    def purge_queue(self, QueueUrl: str):
        r"""Deletes the messages in a queue specified by the <code>QueueURL</code> parameter. <important> When you use the <code>PurgeQueue</code> action, you can't retrieve any messages deleted from a queue. The message deletion process takes up to 60 seconds. We recommend waiting for 60 seconds regardless of your queue's size.  </important> Messages sent to the queue <i>before</i> you call <code>PurgeQueue</code> might be received but are deleted within the next minute. Messages sent to the queue <i>after</i> you call <code>PurgeQueue</code> might be deleted while the queue is being purged.

        :param self:
        :param QueueUrl:  The URL of the queue from which the <code>PurgeQueue</code> action deletes messages. Queue URLs and names are case-sensitive.<br/>
        :return:         """
        pass

    def receive_message(self, QueueUrl: str, AttributeNames: List[QueueAttributeName]=None, MessageAttributeNames: List[MessageAttributeName]=None, MaxNumberOfMessages: int=None, VisibilityTimeout: int=None, WaitTimeSeconds: int=None, ReceiveRequestAttemptId: str=None) -> ReceiveMessageResult:
        r"""Retrieves one or more messages (up to 10), from the specified queue. Using the <code>WaitTimeSeconds</code> parameter enables long-poll support. For more information, see <a href="https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-long-polling.html">Amazon SQS Long Polling</a> in the <i>Amazon SQS Developer Guide</i>.  Short poll is the default behavior where a weighted random set of machines is sampled on a <code>ReceiveMessage</code> call. Thus, only the messages on the sampled machines are returned. If the number of messages in the queue is small (fewer than 1,000), you most likely get fewer messages than you requested per <code>ReceiveMessage</code> call. If the number of messages in the queue is extremely small, you might not receive any messages in a particular <code>ReceiveMessage</code> response. If this happens, repeat the request.  For each message returned, the response includes the following: <ul> <li> The message body. </li> <li> An MD5 digest of the message body. For information about MD5, see <a href="https://www.ietf.org/rfc/rfc1321.txt">RFC1321</a>. </li> <li> The <code>MessageId</code> you received when you sent the message to the queue. </li> <li> The receipt handle. </li> <li> The message attributes. </li> <li> An MD5 digest of the message attributes. </li> </ul> The receipt handle is the identifier you must provide when deleting the message. For more information, see <a href="https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-queue-message-identifiers.html">Queue and Message Identifiers</a> in the <i>Amazon SQS Developer Guide</i>. You can provide the <code>VisibilityTimeout</code> parameter in your request. The parameter is applied to the messages that Amazon SQS returns in the response. If you don't include the parameter, the overall visibility timeout for the queue is used for the returned messages. For more information, see <a href="https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-visibility-timeout.html">Visibility Timeout</a> in the <i>Amazon SQS Developer Guide</i>. A message that isn't deleted or a message whose visibility isn't extended before the visibility timeout expires counts as a failed receive. Depending on the configuration of the queue, the message might be sent to the dead-letter queue. <note> In the future, new attributes might be added. If you write code that calls this action, we recommend that you structure your code so that it can handle new attributes gracefully. </note>

        :param self:
        :param ReceiveRequestAttemptId:  This parameter applies only to FIFO (first-in-first-out) queues. The token used for deduplication of <code>ReceiveMessage</code> calls. If a networking issue occurs after a <code>ReceiveMessage</code> action, and instead of a response you receive a generic error, it is possible to retry the same action with an identical <code>ReceiveRequestAttemptId</code> to retrieve the same set of messages, even if their visibility timeout has not yet expired. <ul> <li> You can use <code>ReceiveRequestAttemptId</code> only for 5 minutes after a <code>ReceiveMessage</code> action. </li> <li> When you set <code>FifoQueue</code>, a caller of the <code>ReceiveMessage</code> action can provide a <code>ReceiveRequestAttemptId</code> explicitly. </li> <li> If a caller of the <code>ReceiveMessage</code> action doesn't provide a <code>ReceiveRequestAttemptId</code>, Amazon SQS generates a <code>ReceiveRequestAttemptId</code>. </li> <li> It is possible to retry the <code>ReceiveMessage</code> action with the same <code>ReceiveRequestAttemptId</code> if none of the messages have been modified (deleted or had their visibility changes). </li> <li> During a visibility timeout, subsequent calls with the same <code>ReceiveRequestAttemptId</code> return the same messages and receipt handles. If a retry occurs within the deduplication interval, it resets the visibility timeout. For more information, see <a href="https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-visibility-timeout.html">Visibility Timeout</a> in the <i>Amazon SQS Developer Guide</i>. <important> If a caller of the <code>ReceiveMessage</code> action still processes messages when the visibility timeout expires and messages become visible, another worker consuming from the same queue can receive the same messages and therefore process duplicates. Also, if a consumer whose message processing time is longer than the visibility timeout tries to delete the processed messages, the action fails with an error. To mitigate this effect, ensure that your application observes a safe threshold before the visibility timeout expires and extend the visibility timeout as necessary. </important> </li> <li> While messages with a particular <code>MessageGroupId</code> are invisible, no more messages belonging to the same <code>MessageGroupId</code> are returned until the visibility timeout expires. You can still receive messages with another <code>MessageGroupId</code> as long as it is also visible. </li> <li> If a caller of <code>ReceiveMessage</code> can't track the <code>ReceiveRequestAttemptId</code>, no retries work until the original visibility timeout expires. As a result, delays might occur but the messages in the queue remain in a strict order. </li> </ul> The maximum length of <code>ReceiveRequestAttemptId</code> is 128 characters. <code>ReceiveRequestAttemptId</code> can contain alphanumeric characters (<code>a-z</code>, <code>A-Z</code>, <code>0-9</code>) and punctuation (<code>!"#$%&amp;'()*+,-./:;&lt;=&gt;?@[\]^_`{|}~</code>). For best practices of using <code>ReceiveRequestAttemptId</code>, see <a href="https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/using-receiverequestattemptid-request-parameter.html">Using the ReceiveRequestAttemptId Request Parameter</a> in the <i>Amazon SQS Developer Guide</i>.<br/>WaitTimeSeconds:  The duration (in seconds) for which the call waits for a message to arrive in the queue before returning. If a message is available, the call returns sooner than <code>WaitTimeSeconds</code>. If no messages are available and the wait time expires, the call returns successfully with an empty list of messages. <important> To avoid HTTP errors, ensure that the HTTP response timeout for <code>ReceiveMessage</code> requests is longer than the <code>WaitTimeSeconds</code> parameter. For example, with the Java SDK, you can set HTTP transport settings using the <a href="https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/http/nio/netty/NettyNioAsyncHttpClient.html"> NettyNioAsyncHttpClient</a> for asynchronous clients, or the <a href="https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/http/apache/ApacheHttpClient.html"> ApacheHttpClient</a> for synchronous clients.  </important><br/>VisibilityTimeout:  The duration (in seconds) that the received messages are hidden from subsequent retrieve requests after being retrieved by a <code>ReceiveMessage</code> request.<br/>MaxNumberOfMessages:  The maximum number of messages to return. Amazon SQS never returns more messages than this value (however, fewer messages might be returned). Valid values: 1 to 10. Default: 1.<br/>MessageAttributeNames:  The name of the message attribute, where <i>N</i> is the index. <ul> <li> The name can contain alphanumeric characters and the underscore (<code>_</code>), hyphen (<code>-</code>), and period (<code>.</code>). </li> <li> The name is case-sensitive and must be unique among all attribute names for the message. </li> <li> The name must not start with AWS-reserved prefixes such as <code>AWS.</code> or <code>Amazon.</code> (or any casing variants). </li> <li> The name must not start or end with a period (<code>.</code>), and it should not have periods in succession (<code>..</code>). </li> <li> The name can be up to 256 characters long. </li> </ul> When using <code>ReceiveMessage</code>, you can send a list of attribute names to receive, or you can return all of the attributes by specifying <code>All</code> or <code>.*</code> in your request. You can also use all message attributes starting with a prefix, for example <code>bar.*</code>.<br/>AttributeNames:  A list of attributes that need to be returned along with each message. These attributes include: <ul> <li>  <code>All</code> – Returns all values. </li> <li>  <code>ApproximateFirstReceiveTimestamp</code> – Returns the time the message was first received from the queue (<a href="http://en.wikipedia.org/wiki/Unix_time">epoch time</a> in milliseconds). </li> <li>  <code>ApproximateReceiveCount</code> – Returns the number of times a message has been received across all queues but not deleted. </li> <li>  <code>AWSTraceHeader</code> – Returns the X-Ray trace header string.  </li> <li>  <code>SenderId</code>  <ul> <li> For an IAM user, returns the IAM user ID, for example <code>ABCDEFGHI1JKLMNOPQ23R</code>. </li> <li> For an IAM role, returns the IAM role ID, for example <code>ABCDE1F2GH3I4JK5LMNOP:i-a123b456</code>. </li> </ul> </li> <li>  <code>SentTimestamp</code> – Returns the time the message was sent to the queue (<a href="http://en.wikipedia.org/wiki/Unix_time">epoch time</a> in milliseconds). </li> <li>  <code>MessageDeduplicationId</code> – Returns the value provided by the producer that calls the <code> <a>SendMessage</a> </code> action. </li> <li>  <code>MessageGroupId</code> – Returns the value provided by the producer that calls the <code> <a>SendMessage</a> </code> action. Messages with the same <code>MessageGroupId</code> are returned in sequence. </li> <li>  <code>SequenceNumber</code> – Returns the value provided by Amazon SQS. </li> </ul><br/>QueueUrl:  The URL of the Amazon SQS queue from which messages are received. Queue URLs and names are case-sensitive.<br/>
        :return: Messages:  A list of messages.<br/>        """
        pass

    def remove_permission(self, Label: str, QueueUrl: str):
        r"""Revokes any permissions in the queue policy that matches the specified <code>Label</code> parameter. <note> <ul> <li> Only the owner of a queue can remove permissions from it. </li> <li> Cross-account permissions don't apply to this action. For more information, see <a href="https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-customer-managed-policy-examples.html#grant-cross-account-permissions-to-role-and-user-name">Grant cross-account permissions to a role and a user name</a> in the <i>Amazon SQS Developer Guide</i>. </li> <li> To remove the ability to change queue permissions, you must deny permission to the <code>AddPermission</code>, <code>RemovePermission</code>, and <code>SetQueueAttributes</code> actions in your IAM policy. </li> </ul> </note>

        :param self:
        :param Label:  The identification of the permission to remove. This is the label added using the <code> <a>AddPermission</a> </code> action.<br/>QueueUrl:  The URL of the Amazon SQS queue from which permissions are removed. Queue URLs and names are case-sensitive.<br/>
        :return:         """
        pass

    def send_message(self, MessageBody: str, QueueUrl: str, DelaySeconds: int=None, MessageAttributes: MessageBodyAttributeMap=None, MessageSystemAttributes: MessageBodySystemAttributeMap=None, MessageDeduplicationId: str=None, MessageGroupId: str=None) -> SendMessageResult:
        r"""Delivers a message to the specified queue. <important> A message can include only XML, JSON, and unformatted text. The following Unicode characters are allowed:  <code>#x9</code> | <code>#xA</code> | <code>#xD</code> | <code>#x20</code> to <code>#xD7FF</code> | <code>#xE000</code> to <code>#xFFFD</code> | <code>#x10000</code> to <code>#x10FFFF</code>  Any characters not included in this list will be rejected. For more information, see the <a href="http://www.w3.org/TR/REC-xml/#charsets">W3C specification for characters</a>. </important>

        :param self:
        :param MessageGroupId:  This parameter applies only to FIFO (first-in-first-out) queues. The tag that specifies that a message belongs to a specific message group. Messages that belong to the same message group are processed in a FIFO manner (however, messages in different message groups might be processed out of order). To interleave multiple ordered streams within a single queue, use <code>MessageGroupId</code> values (for example, session data for multiple users). In this scenario, multiple consumers can process the queue, but the session data of each user is processed in a FIFO fashion. <ul> <li> You must associate a non-empty <code>MessageGroupId</code> with a message. If you don't provide a <code>MessageGroupId</code>, the action fails. </li> <li>  <code>ReceiveMessage</code> might return messages with multiple <code>MessageGroupId</code> values. For each <code>MessageGroupId</code>, the messages are sorted by time sent. The caller can't specify a <code>MessageGroupId</code>. </li> </ul> The length of <code>MessageGroupId</code> is 128 characters. Valid values: alphanumeric characters and punctuation <code>(!"#$%&amp;'()*+,-./:;&lt;=&gt;?@[\]^_`{|}~)</code>. For best practices of using <code>MessageGroupId</code>, see <a href="https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/using-messagegroupid-property.html">Using the MessageGroupId Property</a> in the <i>Amazon SQS Developer Guide</i>. <important>  <code>MessageGroupId</code> is required for FIFO queues. You can't use it for Standard queues. </important><br/>MessageDeduplicationId:  This parameter applies only to FIFO (first-in-first-out) queues. The token used for deduplication of sent messages. If a message with a particular <code>MessageDeduplicationId</code> is sent successfully, any messages sent with the same <code>MessageDeduplicationId</code> are accepted successfully but aren't delivered during the 5-minute deduplication interval. For more information, see <a href="https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues-exactly-once-processing.html"> Exactly-once processing</a> in the <i>Amazon SQS Developer Guide</i>. <ul> <li> Every message must have a unique <code>MessageDeduplicationId</code>, <ul> <li> You may provide a <code>MessageDeduplicationId</code> explicitly. </li> <li> If you aren't able to provide a <code>MessageDeduplicationId</code> and you enable <code>ContentBasedDeduplication</code> for your queue, Amazon SQS uses a SHA-256 hash to generate the <code>MessageDeduplicationId</code> using the body of the message (but not the attributes of the message).  </li> <li> If you don't provide a <code>MessageDeduplicationId</code> and the queue doesn't have <code>ContentBasedDeduplication</code> set, the action fails with an error. </li> <li> If the queue has <code>ContentBasedDeduplication</code> set, your <code>MessageDeduplicationId</code> overrides the generated one. </li> </ul> </li> <li> When <code>ContentBasedDeduplication</code> is in effect, messages with identical content sent within the deduplication interval are treated as duplicates and only one copy of the message is delivered. </li> <li> If you send one message with <code>ContentBasedDeduplication</code> enabled and then another message with a <code>MessageDeduplicationId</code> that is the same as the one generated for the first <code>MessageDeduplicationId</code>, the two messages are treated as duplicates and only one copy of the message is delivered.  </li> </ul> <note> The <code>MessageDeduplicationId</code> is available to the consumer of the message (this can be useful for troubleshooting delivery issues). If a message is sent successfully but the acknowledgement is lost and the message is resent with the same <code>MessageDeduplicationId</code> after the deduplication interval, Amazon SQS can't detect duplicate messages. Amazon SQS continues to keep track of the message deduplication ID even after the message is received and deleted. </note> The maximum length of <code>MessageDeduplicationId</code> is 128 characters. <code>MessageDeduplicationId</code> can contain alphanumeric characters (<code>a-z</code>, <code>A-Z</code>, <code>0-9</code>) and punctuation (<code>!"#$%&amp;'()*+,-./:;&lt;=&gt;?@[\]^_`{|}~</code>). For best practices of using <code>MessageDeduplicationId</code>, see <a href="https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/using-messagededuplicationid-property.html">Using the MessageDeduplicationId Property</a> in the <i>Amazon SQS Developer Guide</i>.<br/>MessageSystemAttributes:  The message system attribute to send. Each message system attribute consists of a <code>Name</code>, <code>Type</code>, and <code>Value</code>. <important> <ul> <li> Currently, the only supported message system attribute is <code>AWSTraceHeader</code>. Its type must be <code>String</code> and its value must be a correctly formatted X-Ray trace header string. </li> <li> The size of a message system attribute doesn't count towards the total size of a message. </li> </ul> </important><br/>MessageAttributes:  Each message attribute consists of a <code>Name</code>, <code>Type</code>, and <code>Value</code>. For more information, see <a href="https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-message-metadata.html#sqs-message-attributes">Amazon SQS message attributes</a> in the <i>Amazon SQS Developer Guide</i>.<br/>DelaySeconds:   The length of time, in seconds, for which to delay a specific message. Valid values: 0 to 900. Maximum: 15 minutes. Messages with a positive <code>DelaySeconds</code> value become available for processing after the delay period is finished. If you don't specify a value, the default value for the queue applies.  <note> When you set <code>FifoQueue</code>, you can't set <code>DelaySeconds</code> per message. You can set this parameter only on a queue level. </note><br/>MessageBody:  The message to send. The minimum size is one character. The maximum size is 256 KB. <important> A message can include only XML, JSON, and unformatted text. The following Unicode characters are allowed:  <code>#x9</code> | <code>#xA</code> | <code>#xD</code> | <code>#x20</code> to <code>#xD7FF</code> | <code>#xE000</code> to <code>#xFFFD</code> | <code>#x10000</code> to <code>#x10FFFF</code>  Any characters not included in this list will be rejected. For more information, see the <a href="http://www.w3.org/TR/REC-xml/#charsets">W3C specification for characters</a>. </important><br/>QueueUrl:  The URL of the Amazon SQS queue to which a message is sent. Queue URLs and names are case-sensitive.<br/>
        :return: SequenceNumber:  This parameter applies only to FIFO (first-in-first-out) queues. The large, non-consecutive number that Amazon SQS assigns to each message. The length of <code>SequenceNumber</code> is 128 bits. <code>SequenceNumber</code> continues to increase for a particular <code>MessageGroupId</code>.<br/>MessageId:  An attribute containing the <code>MessageId</code> of the message sent to the queue. For more information, see <a href="https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-queue-message-identifiers.html">Queue and Message Identifiers</a> in the <i>Amazon SQS Developer Guide</i>. <br/>MD5OfMessageSystemAttributes:  An MD5 digest of the non-URL-encoded message system attribute string. You can use this attribute to verify that Amazon SQS received the message correctly. Amazon SQS URL-decodes the message before creating the MD5 digest.<br/>MD5OfMessageAttributes:  An MD5 digest of the non-URL-encoded message attribute string. You can use this attribute to verify that Amazon SQS received the message correctly. Amazon SQS URL-decodes the message before creating the MD5 digest. For information about MD5, see <a href="https://www.ietf.org/rfc/rfc1321.txt">RFC1321</a>.<br/>MD5OfMessageBody:  An MD5 digest of the non-URL-encoded message body string. You can use this attribute to verify that Amazon SQS received the message correctly. Amazon SQS URL-decodes the message before creating the MD5 digest. For information about MD5, see <a href="https://www.ietf.org/rfc/rfc1321.txt">RFC1321</a>.<br/>        """
        pass

    def send_message_batch(self, Entries: List[SendMessageBatchRequestEntry], QueueUrl: str) -> SendMessageBatchResult:
        r"""Delivers up to ten messages to the specified queue. This is a batch version of <code> <a>SendMessage</a>.</code> For a FIFO queue, multiple messages within a single batch are enqueued in the order they are sent. The result of sending each message is reported individually in the response. Because the batch request can result in a combination of successful and unsuccessful actions, you should check for batch errors even when the call returns an HTTP status code of <code>200</code>. The maximum allowed individual message size and the maximum total payload size (the sum of the individual lengths of all of the batched messages) are both 256 KB (262,144 bytes). <important> A message can include only XML, JSON, and unformatted text. The following Unicode characters are allowed:  <code>#x9</code> | <code>#xA</code> | <code>#xD</code> | <code>#x20</code> to <code>#xD7FF</code> | <code>#xE000</code> to <code>#xFFFD</code> | <code>#x10000</code> to <code>#x10FFFF</code>  Any characters not included in this list will be rejected. For more information, see the <a href="http://www.w3.org/TR/REC-xml/#charsets">W3C specification for characters</a>. </important> If you don't specify the <code>DelaySeconds</code> parameter for an entry, Amazon SQS uses the default value for the queue. Some actions take lists of parameters. These lists are specified using the <code>param.n</code> notation. Values of <code>n</code> are integers starting from 1. For example, a parameter list with two elements looks like this:  <code>&amp;AttributeName.1=first</code>   <code>&amp;AttributeName.2=second</code> 

        :param self:
        :param Entries:  A list of <code> <a>SendMessageBatchRequestEntry</a> </code> items.<br/>QueueUrl:  The URL of the Amazon SQS queue to which batched messages are sent. Queue URLs and names are case-sensitive.<br/>
        :return: Failed:  A list of <code> <a>BatchResultErrorEntry</a> </code> items with error details about each message that can't be enqueued.<br/>Successful:  A list of <code> <a>SendMessageBatchResultEntry</a> </code> items.<br/>        """
        pass

    def set_queue_attributes(self, Attributes: QueueAttributeMap, QueueUrl: str):
        r"""Sets the value of one or more queue attributes. When you change a queue's attributes, the change can take up to 60 seconds for most of the attributes to propagate throughout the Amazon SQS system. Changes made to the <code>MessageRetentionPeriod</code> attribute can take up to 15 minutes. <note> <ul> <li> In the future, new attributes might be added. If you write code that calls this action, we recommend that you structure your code so that it can handle new attributes gracefully. </li> <li> Cross-account permissions don't apply to this action. For more information, see <a href="https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-customer-managed-policy-examples.html#grant-cross-account-permissions-to-role-and-user-name">Grant cross-account permissions to a role and a user name</a> in the <i>Amazon SQS Developer Guide</i>. </li> <li> To remove the ability to change queue permissions, you must deny permission to the <code>AddPermission</code>, <code>RemovePermission</code>, and <code>SetQueueAttributes</code> actions in your IAM policy. </li> </ul> </note>

        :param self:
        :param Attributes:  A map of attributes to set. The following lists the names, descriptions, and values of the special request parameters that the <code>SetQueueAttributes</code> action uses: <ul> <li>  <code>DelaySeconds</code> – The length of time, in seconds, for which the delivery of all messages in the queue is delayed. Valid values: An integer from 0 to 900 (15 minutes). Default: 0.  </li> <li>  <code>MaximumMessageSize</code> – The limit of how many bytes a message can contain before Amazon SQS rejects it. Valid values: An integer from 1,024 bytes (1 KiB) up to 262,144 bytes (256 KiB). Default: 262,144 (256 KiB).  </li> <li>  <code>MessageRetentionPeriod</code> – The length of time, in seconds, for which Amazon SQS retains a message. Valid values: An integer representing seconds, from 60 (1 minute) to 1,209,600 (14 days). Default: 345,600 (4 days).  </li> <li>  <code>Policy</code> – The queue's policy. A valid Amazon Web Services policy. For more information about policy structure, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/PoliciesOverview.html">Overview of Amazon Web Services IAM Policies</a> in the <i>Identity and Access Management User Guide</i>.  </li> <li>  <code>ReceiveMessageWaitTimeSeconds</code> – The length of time, in seconds, for which a <code> <a>ReceiveMessage</a> </code> action waits for a message to arrive. Valid values: An integer from 0 to 20 (seconds). Default: 0.  </li> <li>  <code>RedrivePolicy</code> – The string that includes the parameters for the dead-letter queue functionality of the source queue as a JSON object. For more information about the redrive policy and dead-letter queues, see <a href="https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-dead-letter-queues.html">Using Amazon SQS Dead-Letter Queues</a> in the <i>Amazon SQS Developer Guide</i>. <ul> <li>  <code>deadLetterTargetArn</code> – The Amazon Resource Name (ARN) of the dead-letter queue to which Amazon SQS moves messages after the value of <code>maxReceiveCount</code> is exceeded. </li> <li>  <code>maxReceiveCount</code> – The number of times a message is delivered to the source queue before being moved to the dead-letter queue. When the <code>ReceiveCount</code> for a message exceeds the <code>maxReceiveCount</code> for a queue, Amazon SQS moves the message to the dead-letter-queue. </li> </ul> <note> The dead-letter queue of a FIFO queue must also be a FIFO queue. Similarly, the dead-letter queue of a standard queue must also be a standard queue. </note> </li> <li>  <code>VisibilityTimeout</code> – The visibility timeout for the queue, in seconds. Valid values: An integer from 0 to 43,200 (12 hours). Default: 30. For more information about the visibility timeout, see <a href="https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-visibility-timeout.html">Visibility Timeout</a> in the <i>Amazon SQS Developer Guide</i>. </li> </ul> The following attributes apply only to <a href="https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html">server-side-encryption</a>: <ul> <li>  <code>KmsMasterKeyId</code> – The ID of an Amazon Web Services managed customer master key (CMK) for Amazon SQS or a custom CMK. For more information, see <a href="https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html#sqs-sse-key-terms">Key Terms</a>. While the alias of the AWS-managed CMK for Amazon SQS is always <code>alias/aws/sqs</code>, the alias of a custom CMK can, for example, be <code>alias/<i>MyAlias</i> </code>. For more examples, see <a href="https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html#API_DescribeKey_RequestParameters">KeyId</a> in the <i>Key Management Service API Reference</i>.  </li> <li>  <code>KmsDataKeyReusePeriodSeconds</code> – The length of time, in seconds, for which Amazon SQS can reuse a <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#data-keys">data key</a> to encrypt or decrypt messages before calling KMS again. An integer representing seconds, between 60 seconds (1 minute) and 86,400 seconds (24 hours). Default: 300 (5 minutes). A shorter time period provides better security but results in more calls to KMS which might incur charges after Free Tier. For more information, see <a href="https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html#sqs-how-does-the-data-key-reuse-period-work">How Does the Data Key Reuse Period Work?</a>.  </li> </ul> The following attribute applies only to <a href="https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html">FIFO (first-in-first-out) queues</a>: <ul> <li>  <code>ContentBasedDeduplication</code> – Enables content-based deduplication. For more information, see <a href="https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues-exactly-once-processing.html">Exactly-once processing</a> in the <i>Amazon SQS Developer Guide</i>. Note the following:  <ul> <li> Every message must have a unique <code>MessageDeduplicationId</code>. <ul> <li> You may provide a <code>MessageDeduplicationId</code> explicitly. </li> <li> If you aren't able to provide a <code>MessageDeduplicationId</code> and you enable <code>ContentBasedDeduplication</code> for your queue, Amazon SQS uses a SHA-256 hash to generate the <code>MessageDeduplicationId</code> using the body of the message (but not the attributes of the message).  </li> <li> If you don't provide a <code>MessageDeduplicationId</code> and the queue doesn't have <code>ContentBasedDeduplication</code> set, the action fails with an error. </li> <li> If the queue has <code>ContentBasedDeduplication</code> set, your <code>MessageDeduplicationId</code> overrides the generated one. </li> </ul> </li> <li> When <code>ContentBasedDeduplication</code> is in effect, messages with identical content sent within the deduplication interval are treated as duplicates and only one copy of the message is delivered. </li> <li> If you send one message with <code>ContentBasedDeduplication</code> enabled and then another message with a <code>MessageDeduplicationId</code> that is the same as the one generated for the first <code>MessageDeduplicationId</code>, the two messages are treated as duplicates and only one copy of the message is delivered.  </li> </ul> </li> </ul> The following attributes apply only to <a href="https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/high-throughput-fifo.html">high throughput for FIFO queues</a>: <ul> <li>  <code>DeduplicationScope</code> – Specifies whether message deduplication occurs at the message group or queue level. Valid values are <code>messageGroup</code> and <code>queue</code>. </li> <li>  <code>FifoThroughputLimit</code> – Specifies whether the FIFO queue throughput quota applies to the entire queue or per message group. Valid values are <code>perQueue</code> and <code>perMessageGroupId</code>. The <code>perMessageGroupId</code> value is allowed only when the value for <code>DeduplicationScope</code> is <code>messageGroup</code>. </li> </ul> To enable high throughput for FIFO queues, do the following: <ul> <li> Set <code>DeduplicationScope</code> to <code>messageGroup</code>. </li> <li> Set <code>FifoThroughputLimit</code> to <code>perMessageGroupId</code>. </li> </ul> If you set these attributes to anything other than the values shown for enabling high throughput, normal throughput is in effect and deduplication occurs as specified. For information on throughput quotas, see <a href="https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/quotas-messages.html">Quotas related to messages</a> in the <i>Amazon SQS Developer Guide</i>.<br/>QueueUrl:  The URL of the Amazon SQS queue whose attributes are set. Queue URLs and names are case-sensitive.<br/>
        :return:         """
        pass

    def tag_queue(self, Tags: TagMap, QueueUrl: str):
        r"""Add cost allocation tags to the specified Amazon SQS queue. For an overview, see <a href="https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-queue-tags.html">Tagging Your Amazon SQS Queues</a> in the <i>Amazon SQS Developer Guide</i>. When you use queue tags, keep the following guidelines in mind: <ul> <li> Adding more than 50 tags to a queue isn't recommended. </li> <li> Tags don't have any semantic meaning. Amazon SQS interprets tags as character strings. </li> <li> Tags are case-sensitive. </li> <li> A new tag with a key identical to that of an existing tag overwrites the existing tag. </li> </ul> For a full list of tag restrictions, see <a href="https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-limits.html#limits-queues">Quotas related to queues</a> in the <i>Amazon SQS Developer Guide</i>. <note> Cross-account permissions don't apply to this action. For more information, see <a href="https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-customer-managed-policy-examples.html#grant-cross-account-permissions-to-role-and-user-name">Grant cross-account permissions to a role and a user name</a> in the <i>Amazon SQS Developer Guide</i>. </note>

        :param self:
        :param Tags:  The list of tags to be added to the specified queue.<br/>QueueUrl:  The URL of the queue.<br/>
        :return:         """
        pass

    def untag_queue(self, TagKeys: List[TagKey], QueueUrl: str):
        r"""Remove cost allocation tags from the specified Amazon SQS queue. For an overview, see <a href="https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-queue-tags.html">Tagging Your Amazon SQS Queues</a> in the <i>Amazon SQS Developer Guide</i>. <note> Cross-account permissions don't apply to this action. For more information, see <a href="https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-customer-managed-policy-examples.html#grant-cross-account-permissions-to-role-and-user-name">Grant cross-account permissions to a role and a user name</a> in the <i>Amazon SQS Developer Guide</i>. </note>

        :param self:
        :param TagKeys:  The list of tags to be removed from the specified queue.<br/>QueueUrl:  The URL of the queue.<br/>
        :return:         """
        pass



    class SqsResource:
        
        class Message:
            r"""Creates a Message resource.::

  message = sqs.Message('queue_url','receipt_handle')

:type queue_url: string
:param queue_url: The Message's queue_url identifier. This **must** be set.
:type receipt_handle: string
:param receipt_handle: The Message's receipt_handle identifier. This **must** be set.

:rtype: :py:class:`SQS.Message`
:returns: A Message resource"""

            def __init__(self, queue_url, receipt_handle):
                pass
            
            class MessageSystemAttributeMap(object):
                pass

            class MessageBodyAttributeMap(object):
                pass
        
            message_id: str=None
            receipt_handle: str=None
            md5_of_body: str=None
            body: str=None
            attributes: MessageSystemAttributeMap=None
            md5_of_message_attributes: str=None
            message_attributes: MessageBodyAttributeMap=None
            
            def change_visibility(self, **kwargs):
                # type: (object) -> dict
                return {}

            def delete(self, **kwargs):
                # type: (object) -> dict
                return {}


        
        class Queue:
            r"""Creates a Queue resource.::

  queue = sqs.Queue('url')

:type url: string
:param url: The Queue's url identifier. This **must** be set.

:rtype: :py:class:`SQS.Queue`
:returns: A Queue resource"""

            def __init__(self, url):
                pass
            
            class QueueAttributeMap(object):
                pass
        
            attributes: QueueAttributeMap=None
            
            def add_permission(self, **kwargs):
                # type: (object) -> dict
                return {}

            def change_message_visibility_batch(self, **kwargs):
                # type: (object) -> dict
                return {}

            def delete(self, **kwargs):
                # type: (object) -> dict
                return {}

            def delete_messages(self, **kwargs):
                # type: (object) -> dict
                return {}

            def purge(self, **kwargs):
                # type: (object) -> dict
                return {}

            def receive_messages(self, **kwargs):
                # type: (object) -> Message
                return Message()

            def remove_permission(self, **kwargs):
                # type: (object) -> dict
                return {}

            def send_message(self, **kwargs):
                # type: (object) -> dict
                return {}

            def send_messages(self, **kwargs):
                # type: (object) -> dict
                return {}

            def set_attributes(self, **kwargs):
                # type: (object) -> dict
                return {}


        def create_queue(self, **kwargs):
            # type: (object) -> Queue
            pass

        def get_queue_by_name(self, **kwargs):
            # type: (object) -> Queue
            pass

        def get_available_subresources(self) -> List[str]:
            pass

        class QueueResourceCollection(List[Queue], ResourceCollection):
            pass

        queues: QueueResourceCollection = None




class SSM(BaseClient):
    r"""<fullname>AWS Systems Manager</fullname> AWS Systems Manager is a collection of capabilities that helps you automate management tasks such as collecting system inventory, applying operating system (OS) patches, automating the creation of Amazon Machine Images (AMIs), and configuring operating systems (OSs) and applications at scale. Systems Manager lets you remotely and securely manage the configuration of your managed instances. A <i>managed instance</i> is any Amazon Elastic Compute Cloud instance (EC2 instance), or any on-premises server or virtual machine (VM) in your hybrid environment that has been configured for Systems Manager. This reference is intended to be used with the <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/">AWS Systems Manager User Guide</a>. To get started, verify prerequisites and configure managed instances. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-setting-up.html">Setting up AWS Systems Manager</a> in the <i>AWS Systems Manager User Guide</i>. <p class="title"> <b>Related resources</b>  <ul> <li> For information about how to use a Query API, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/making-api-requests.html">Making API requests</a>.  </li> <li> For information about other API actions you can perform on EC2 instances, see the <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/">Amazon EC2 API Reference</a>. </li> <li> For information about AWS AppConfig, a capability of Systems Manager, see the <a href="https://docs.aws.amazon.com/appconfig/latest/userguide/">AWS AppConfig User Guide</a> and the <a href="https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/">AWS AppConfig API Reference</a>. </li> <li> For information about AWS Incident Manager, a capability of Systems Manager, see the <a href="https://docs.aws.amazon.com/incident-manager/latest/userguide/">AWS Incident Manager User Guide</a> and the <a href="https://docs.aws.amazon.com/incident-manager/latest/APIReference/">AWS Incident Manager API Reference</a>. </li> </ul>"""

    class CommandExecutedWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `get_command_invocation` for valid parameters"""
            pass


    class ListAssociationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_associations` for valid parameters"""
            pass
    class ListCommandInvocationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_command_invocations` for valid parameters"""
            pass
    class ListCommandsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_commands` for valid parameters"""
            pass
    class ListDocumentsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_documents` for valid parameters"""
            pass
    class DescribeInstanceInformationPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_instance_information` for valid parameters"""
            pass
    class DescribeActivationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_activations` for valid parameters"""
            pass
    class DescribeParametersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_parameters` for valid parameters"""
            pass
    class DescribeAssociationExecutionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_association_executions` for valid parameters"""
            pass
    class DescribeAssociationExecutionTargetsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_association_execution_targets` for valid parameters"""
            pass
    class GetInventoryPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_inventory` for valid parameters"""
            pass
    class GetParametersByPathPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_parameters_by_path` for valid parameters"""
            pass
    class GetParameterHistoryPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_parameter_history` for valid parameters"""
            pass
    class DescribeAutomationExecutionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_automation_executions` for valid parameters"""
            pass
    class DescribeAutomationStepExecutionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_automation_step_executions` for valid parameters"""
            pass
    class DescribeAvailablePatchesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_available_patches` for valid parameters"""
            pass
    class DescribeEffectiveInstanceAssociationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_effective_instance_associations` for valid parameters"""
            pass
    class DescribeEffectivePatchesForPatchBaselinePaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_effective_patches_for_patch_baseline` for valid parameters"""
            pass
    class DescribeInstanceAssociationsStatusPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_instance_associations_status` for valid parameters"""
            pass
    class DescribeInstancePatchStatesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_instance_patch_states` for valid parameters"""
            pass
    class DescribeInstancePatchStatesForPatchGroupPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_instance_patch_states_for_patch_group` for valid parameters"""
            pass
    class DescribeInstancePatchesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_instance_patches` for valid parameters"""
            pass
    class DescribeInventoryDeletionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_inventory_deletions` for valid parameters"""
            pass
    class DescribeMaintenanceWindowExecutionTaskInvocationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_maintenance_window_execution_task_invocations` for valid parameters"""
            pass
    class DescribeMaintenanceWindowExecutionTasksPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_maintenance_window_execution_tasks` for valid parameters"""
            pass
    class DescribeMaintenanceWindowExecutionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_maintenance_window_executions` for valid parameters"""
            pass
    class DescribeMaintenanceWindowSchedulePaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_maintenance_window_schedule` for valid parameters"""
            pass
    class DescribeMaintenanceWindowTargetsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_maintenance_window_targets` for valid parameters"""
            pass
    class DescribeMaintenanceWindowTasksPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_maintenance_window_tasks` for valid parameters"""
            pass
    class DescribeMaintenanceWindowsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_maintenance_windows` for valid parameters"""
            pass
    class DescribeMaintenanceWindowsForTargetPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_maintenance_windows_for_target` for valid parameters"""
            pass
    class DescribePatchBaselinesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_patch_baselines` for valid parameters"""
            pass
    class DescribePatchGroupsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_patch_groups` for valid parameters"""
            pass
    class DescribeSessionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_sessions` for valid parameters"""
            pass
    class GetInventorySchemaPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_inventory_schema` for valid parameters"""
            pass
    class ListAssociationVersionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_association_versions` for valid parameters"""
            pass
    class ListComplianceItemsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_compliance_items` for valid parameters"""
            pass
    class ListComplianceSummariesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_compliance_summaries` for valid parameters"""
            pass
    class ListDocumentVersionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_document_versions` for valid parameters"""
            pass
    class ListResourceComplianceSummariesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_resource_compliance_summaries` for valid parameters"""
            pass
    class ListResourceDataSyncPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_resource_data_sync` for valid parameters"""
            pass
    class DescribeOpsItemsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_ops_items` for valid parameters"""
            pass
    class DescribePatchPropertiesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_patch_properties` for valid parameters"""
            pass
    class GetOpsSummaryPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_ops_summary` for valid parameters"""
            pass
    class ListOpsItemEventsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_ops_item_events` for valid parameters"""
            pass
    class ListOpsMetadataPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_ops_metadata` for valid parameters"""
            pass
    class ListOpsItemRelatedItemsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_ops_item_related_items` for valid parameters"""
            pass


    class AddTagsToResourceRequest(Mapping):
        pass
    
    class AddTagsToResourceResult(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class AssociateOpsItemRelatedItemRequest(Mapping):
        pass
    
    class AssociateOpsItemRelatedItemResponse(Mapping):
        pass
    
    class CancelCommandRequest(Mapping):
        pass
    
    class CancelCommandResult(Mapping):
        pass
    
    class InstanceId(object):
        pass
    
    class CancelMaintenanceWindowExecutionRequest(Mapping):
        pass
    
    class CancelMaintenanceWindowExecutionResult(Mapping):
        pass
    
    class CreateActivationRequest(Mapping):
        pass
    
    class CreateActivationResult(Mapping):
        pass
    
    class ExpirationDate(object):
        pass
    
    class CreateAssociationRequest(Mapping):
        pass
    
    class CreateAssociationResult(Mapping):
        pass
    
    class Parameters(object):
        pass
    
    class Target(Mapping):
        pass
    
    class InstanceAssociationOutputLocation(Mapping):
        pass
    
    class ApplyOnlyAtCronInterval(object):
        pass
    
    class CalendarNameOrARN(object):
        pass
    
    class TargetLocation(Mapping):
        pass
    
    class CreateAssociationBatchRequest(Mapping):
        pass
    
    class CreateAssociationBatchResult(Mapping):
        pass
    
    class CreateAssociationBatchRequestEntry(Mapping):
        pass
    
    class CreateDocumentRequest(Mapping):
        pass
    
    class CreateDocumentResult(Mapping):
        pass
    
    class DocumentRequires(Mapping):
        pass
    
    class AttachmentsSource(Mapping):
        pass
    
    class CreateMaintenanceWindowRequest(Mapping):
        pass
    
    class CreateMaintenanceWindowResult(Mapping):
        pass
    
    class MaintenanceWindowAllowUnassociatedTargets(object):
        pass
    
    class CreateOpsItemRequest(Mapping):
        pass
    
    class CreateOpsItemResponse(Mapping):
        pass
    
    class OpsItemOperationalData(object):
        pass
    
    class OpsItemNotification(Mapping):
        pass
    
    class RelatedOpsItem(Mapping):
        pass
    
    class DateTime(object):
        pass
    
    class CreateOpsMetadataRequest(Mapping):
        pass
    
    class CreateOpsMetadataResult(Mapping):
        pass
    
    class MetadataMap(object):
        pass
    
    class CreatePatchBaselineRequest(Mapping):
        pass
    
    class CreatePatchBaselineResult(Mapping):
        pass
    
    class PatchFilterGroup(Mapping):
        pass
    
    class PatchRuleGroup(Mapping):
        pass
    
    class PatchId(object):
        pass
    
    class Boolean(object):
        pass
    
    class PatchSource(Mapping):
        pass
    
    class CreateResourceDataSyncRequest(Mapping):
        pass
    
    class CreateResourceDataSyncResult(Mapping):
        pass
    
    class ResourceDataSyncS3Destination(Mapping):
        pass
    
    class ResourceDataSyncSource(Mapping):
        pass
    
    class DeleteActivationRequest(Mapping):
        pass
    
    class DeleteActivationResult(Mapping):
        pass
    
    class DeleteAssociationRequest(Mapping):
        pass
    
    class DeleteAssociationResult(Mapping):
        pass
    
    class DeleteDocumentRequest(Mapping):
        pass
    
    class DeleteDocumentResult(Mapping):
        pass
    
    class DeleteInventoryRequest(Mapping):
        pass
    
    class DeleteInventoryResult(Mapping):
        pass
    
    class DryRun(object):
        pass
    
    class DeleteMaintenanceWindowRequest(Mapping):
        pass
    
    class DeleteMaintenanceWindowResult(Mapping):
        pass
    
    class DeleteOpsMetadataRequest(Mapping):
        pass
    
    class DeleteOpsMetadataResult(Mapping):
        pass
    
    class DeleteParameterRequest(Mapping):
        pass
    
    class DeleteParameterResult(Mapping):
        pass
    
    class DeleteParametersRequest(Mapping):
        pass
    
    class DeleteParametersResult(Mapping):
        pass
    
    class PSParameterName(object):
        pass
    
    class DeletePatchBaselineRequest(Mapping):
        pass
    
    class DeletePatchBaselineResult(Mapping):
        pass
    
    class DeleteResourceDataSyncRequest(Mapping):
        pass
    
    class DeleteResourceDataSyncResult(Mapping):
        pass
    
    class DeregisterManagedInstanceRequest(Mapping):
        pass
    
    class DeregisterManagedInstanceResult(Mapping):
        pass
    
    class DeregisterPatchBaselineForPatchGroupRequest(Mapping):
        pass
    
    class DeregisterPatchBaselineForPatchGroupResult(Mapping):
        pass
    
    class DeregisterTargetFromMaintenanceWindowRequest(Mapping):
        pass
    
    class DeregisterTargetFromMaintenanceWindowResult(Mapping):
        pass
    
    class DeregisterTaskFromMaintenanceWindowRequest(Mapping):
        pass
    
    class DeregisterTaskFromMaintenanceWindowResult(Mapping):
        pass
    
    class DescribeActivationsRequest(Mapping):
        pass
    
    class DescribeActivationsResult(Mapping):
        pass
    
    class DescribeActivationsFilter(Mapping):
        pass
    
    class DescribeAssociationRequest(Mapping):
        pass
    
    class DescribeAssociationResult(Mapping):
        pass
    
    class DescribeAssociationExecutionTargetsRequest(Mapping):
        pass
    
    class DescribeAssociationExecutionTargetsResult(Mapping):
        pass
    
    class AssociationExecutionTargetsFilter(Mapping):
        pass
    
    class DescribeAssociationExecutionsRequest(Mapping):
        pass
    
    class DescribeAssociationExecutionsResult(Mapping):
        pass
    
    class AssociationExecutionFilter(Mapping):
        pass
    
    class DescribeAutomationExecutionsRequest(Mapping):
        pass
    
    class DescribeAutomationExecutionsResult(Mapping):
        pass
    
    class AutomationExecutionFilter(Mapping):
        pass
    
    class DescribeAutomationStepExecutionsRequest(Mapping):
        pass
    
    class DescribeAutomationStepExecutionsResult(Mapping):
        pass
    
    class StepExecutionFilter(Mapping):
        pass
    
    class DescribeAvailablePatchesRequest(Mapping):
        pass
    
    class DescribeAvailablePatchesResult(Mapping):
        pass
    
    class PatchOrchestratorFilter(Mapping):
        pass
    
    class DescribeDocumentRequest(Mapping):
        pass
    
    class DescribeDocumentResult(Mapping):
        pass
    
    class DescribeDocumentPermissionRequest(Mapping):
        pass
    
    class DescribeDocumentPermissionResponse(Mapping):
        pass
    
    class DescribeEffectiveInstanceAssociationsRequest(Mapping):
        pass
    
    class DescribeEffectiveInstanceAssociationsResult(Mapping):
        pass
    
    class DescribeEffectivePatchesForPatchBaselineRequest(Mapping):
        pass
    
    class DescribeEffectivePatchesForPatchBaselineResult(Mapping):
        pass
    
    class DescribeInstanceAssociationsStatusRequest(Mapping):
        pass
    
    class DescribeInstanceAssociationsStatusResult(Mapping):
        pass
    
    class DescribeInstanceInformationRequest(Mapping):
        pass
    
    class DescribeInstanceInformationResult(Mapping):
        pass
    
    class InstanceInformationFilter(Mapping):
        pass
    
    class InstanceInformationStringFilter(Mapping):
        pass
    
    class DescribeInstancePatchStatesRequest(Mapping):
        pass
    
    class DescribeInstancePatchStatesResult(Mapping):
        pass
    
    class DescribeInstancePatchStatesForPatchGroupRequest(Mapping):
        pass
    
    class DescribeInstancePatchStatesForPatchGroupResult(Mapping):
        pass
    
    class InstancePatchStateFilter(Mapping):
        pass
    
    class DescribeInstancePatchesRequest(Mapping):
        pass
    
    class DescribeInstancePatchesResult(Mapping):
        pass
    
    class DescribeInventoryDeletionsRequest(Mapping):
        pass
    
    class DescribeInventoryDeletionsResult(Mapping):
        pass
    
    class DescribeMaintenanceWindowExecutionTaskInvocationsRequest(Mapping):
        pass
    
    class DescribeMaintenanceWindowExecutionTaskInvocationsResult(Mapping):
        pass
    
    class MaintenanceWindowFilter(Mapping):
        pass
    
    class DescribeMaintenanceWindowExecutionTasksRequest(Mapping):
        pass
    
    class DescribeMaintenanceWindowExecutionTasksResult(Mapping):
        pass
    
    class DescribeMaintenanceWindowExecutionsRequest(Mapping):
        pass
    
    class DescribeMaintenanceWindowExecutionsResult(Mapping):
        pass
    
    class DescribeMaintenanceWindowScheduleRequest(Mapping):
        pass
    
    class DescribeMaintenanceWindowScheduleResult(Mapping):
        pass
    
    class DescribeMaintenanceWindowTargetsRequest(Mapping):
        pass
    
    class DescribeMaintenanceWindowTargetsResult(Mapping):
        pass
    
    class DescribeMaintenanceWindowTasksRequest(Mapping):
        pass
    
    class DescribeMaintenanceWindowTasksResult(Mapping):
        pass
    
    class DescribeMaintenanceWindowsRequest(Mapping):
        pass
    
    class DescribeMaintenanceWindowsResult(Mapping):
        pass
    
    class DescribeMaintenanceWindowsForTargetRequest(Mapping):
        pass
    
    class DescribeMaintenanceWindowsForTargetResult(Mapping):
        pass
    
    class DescribeOpsItemsRequest(Mapping):
        pass
    
    class DescribeOpsItemsResponse(Mapping):
        pass
    
    class OpsItemFilter(Mapping):
        pass
    
    class DescribeParametersRequest(Mapping):
        pass
    
    class DescribeParametersResult(Mapping):
        pass
    
    class ParametersFilter(Mapping):
        pass
    
    class ParameterStringFilter(Mapping):
        pass
    
    class DescribePatchBaselinesRequest(Mapping):
        pass
    
    class DescribePatchBaselinesResult(Mapping):
        pass
    
    class DescribePatchGroupStateRequest(Mapping):
        pass
    
    class DescribePatchGroupStateResult(Mapping):
        pass
    
    class DescribePatchGroupsRequest(Mapping):
        pass
    
    class DescribePatchGroupsResult(Mapping):
        pass
    
    class DescribePatchPropertiesRequest(Mapping):
        pass
    
    class DescribePatchPropertiesResult(Mapping):
        pass
    
    class DescribeSessionsRequest(Mapping):
        pass
    
    class DescribeSessionsResponse(Mapping):
        pass
    
    class SessionFilter(Mapping):
        pass
    
    class DisassociateOpsItemRelatedItemRequest(Mapping):
        pass
    
    class DisassociateOpsItemRelatedItemResponse(Mapping):
        pass
    
    class GetAutomationExecutionRequest(Mapping):
        pass
    
    class GetAutomationExecutionResult(Mapping):
        pass
    
    class GetCalendarStateRequest(Mapping):
        pass
    
    class GetCalendarStateResponse(Mapping):
        pass
    
    class GetCommandInvocationRequest(Mapping):
        pass
    
    class GetCommandInvocationResult(Mapping):
        pass
    
    class GetConnectionStatusRequest(Mapping):
        pass
    
    class GetConnectionStatusResponse(Mapping):
        pass
    
    class GetDefaultPatchBaselineRequest(Mapping):
        pass
    
    class GetDefaultPatchBaselineResult(Mapping):
        pass
    
    class GetDeployablePatchSnapshotForInstanceRequest(Mapping):
        pass
    
    class GetDeployablePatchSnapshotForInstanceResult(Mapping):
        pass
    
    class BaselineOverride(Mapping):
        pass
    
    class GetDocumentRequest(Mapping):
        pass
    
    class GetDocumentResult(Mapping):
        pass
    
    class GetInventoryRequest(Mapping):
        pass
    
    class GetInventoryResult(Mapping):
        pass
    
    class InventoryFilter(Mapping):
        pass
    
    class InventoryAggregator(Mapping):
        pass
    
    class ResultAttribute(Mapping):
        pass
    
    class GetInventorySchemaRequest(Mapping):
        pass
    
    class GetInventorySchemaResult(Mapping):
        pass
    
    class AggregatorSchemaOnly(object):
        pass
    
    class IsSubTypeSchema(object):
        pass
    
    class GetMaintenanceWindowRequest(Mapping):
        pass
    
    class GetMaintenanceWindowResult(Mapping):
        pass
    
    class GetMaintenanceWindowExecutionRequest(Mapping):
        pass
    
    class GetMaintenanceWindowExecutionResult(Mapping):
        pass
    
    class GetMaintenanceWindowExecutionTaskRequest(Mapping):
        pass
    
    class GetMaintenanceWindowExecutionTaskResult(Mapping):
        pass
    
    class GetMaintenanceWindowExecutionTaskInvocationRequest(Mapping):
        pass
    
    class GetMaintenanceWindowExecutionTaskInvocationResult(Mapping):
        pass
    
    class GetMaintenanceWindowTaskRequest(Mapping):
        pass
    
    class GetMaintenanceWindowTaskResult(Mapping):
        pass
    
    class GetOpsItemRequest(Mapping):
        pass
    
    class GetOpsItemResponse(Mapping):
        pass
    
    class GetOpsMetadataRequest(Mapping):
        pass
    
    class GetOpsMetadataResult(Mapping):
        pass
    
    class GetOpsSummaryRequest(Mapping):
        pass
    
    class GetOpsSummaryResult(Mapping):
        pass
    
    class OpsFilter(Mapping):
        pass
    
    class OpsAggregator(Mapping):
        pass
    
    class OpsResultAttribute(Mapping):
        pass
    
    class GetParameterRequest(Mapping):
        pass
    
    class GetParameterResult(Mapping):
        pass
    
    class GetParameterHistoryRequest(Mapping):
        pass
    
    class GetParameterHistoryResult(Mapping):
        pass
    
    class GetParametersRequest(Mapping):
        pass
    
    class GetParametersResult(Mapping):
        pass
    
    class GetParametersByPathRequest(Mapping):
        pass
    
    class GetParametersByPathResult(Mapping):
        pass
    
    class GetPatchBaselineRequest(Mapping):
        pass
    
    class GetPatchBaselineResult(Mapping):
        pass
    
    class GetPatchBaselineForPatchGroupRequest(Mapping):
        pass
    
    class GetPatchBaselineForPatchGroupResult(Mapping):
        pass
    
    class GetServiceSettingRequest(Mapping):
        pass
    
    class GetServiceSettingResult(Mapping):
        pass
    
    class LabelParameterVersionRequest(Mapping):
        pass
    
    class LabelParameterVersionResult(Mapping):
        pass
    
    class PSParameterVersion(object):
        pass
    
    class ParameterLabel(object):
        pass
    
    class ListAssociationVersionsRequest(Mapping):
        pass
    
    class ListAssociationVersionsResult(Mapping):
        pass
    
    class ListAssociationsRequest(Mapping):
        pass
    
    class ListAssociationsResult(Mapping):
        pass
    
    class AssociationFilter(Mapping):
        pass
    
    class ListCommandInvocationsRequest(Mapping):
        pass
    
    class ListCommandInvocationsResult(Mapping):
        pass
    
    class CommandFilter(Mapping):
        pass
    
    class ListCommandsRequest(Mapping):
        pass
    
    class ListCommandsResult(Mapping):
        pass
    
    class ListComplianceItemsRequest(Mapping):
        pass
    
    class ListComplianceItemsResult(Mapping):
        pass
    
    class ComplianceStringFilter(Mapping):
        pass
    
    class ComplianceResourceId(object):
        pass
    
    class ComplianceResourceType(object):
        pass
    
    class ListComplianceSummariesRequest(Mapping):
        pass
    
    class ListComplianceSummariesResult(Mapping):
        pass
    
    class ListDocumentMetadataHistoryRequest(Mapping):
        pass
    
    class ListDocumentMetadataHistoryResponse(Mapping):
        pass
    
    class ListDocumentVersionsRequest(Mapping):
        pass
    
    class ListDocumentVersionsResult(Mapping):
        pass
    
    class ListDocumentsRequest(Mapping):
        pass
    
    class ListDocumentsResult(Mapping):
        pass
    
    class DocumentFilter(Mapping):
        pass
    
    class DocumentKeyValuesFilter(Mapping):
        pass
    
    class ListInventoryEntriesRequest(Mapping):
        pass
    
    class ListInventoryEntriesResult(Mapping):
        pass
    
    class ListOpsItemEventsRequest(Mapping):
        pass
    
    class ListOpsItemEventsResponse(Mapping):
        pass
    
    class OpsItemEventFilter(Mapping):
        pass
    
    class ListOpsItemRelatedItemsRequest(Mapping):
        pass
    
    class ListOpsItemRelatedItemsResponse(Mapping):
        pass
    
    class OpsItemRelatedItemsFilter(Mapping):
        pass
    
    class ListOpsMetadataRequest(Mapping):
        pass
    
    class ListOpsMetadataResult(Mapping):
        pass
    
    class OpsMetadataFilter(Mapping):
        pass
    
    class ListResourceComplianceSummariesRequest(Mapping):
        pass
    
    class ListResourceComplianceSummariesResult(Mapping):
        pass
    
    class ListResourceDataSyncRequest(Mapping):
        pass
    
    class ListResourceDataSyncResult(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResult(Mapping):
        pass
    
    class ModifyDocumentPermissionRequest(Mapping):
        pass
    
    class ModifyDocumentPermissionResponse(Mapping):
        pass
    
    class AccountId(object):
        pass
    
    class PutComplianceItemsRequest(Mapping):
        pass
    
    class PutComplianceItemsResult(Mapping):
        pass
    
    class ComplianceExecutionSummary(Mapping):
        pass
    
    class ComplianceItemEntry(Mapping):
        pass
    
    class PutInventoryRequest(Mapping):
        pass
    
    class PutInventoryResult(Mapping):
        pass
    
    class InventoryItem(Mapping):
        pass
    
    class PutParameterRequest(Mapping):
        pass
    
    class PutParameterResult(Mapping):
        pass
    
    class RegisterDefaultPatchBaselineRequest(Mapping):
        pass
    
    class RegisterDefaultPatchBaselineResult(Mapping):
        pass
    
    class RegisterPatchBaselineForPatchGroupRequest(Mapping):
        pass
    
    class RegisterPatchBaselineForPatchGroupResult(Mapping):
        pass
    
    class RegisterTargetWithMaintenanceWindowRequest(Mapping):
        pass
    
    class RegisterTargetWithMaintenanceWindowResult(Mapping):
        pass
    
    class RegisterTaskWithMaintenanceWindowRequest(Mapping):
        pass
    
    class RegisterTaskWithMaintenanceWindowResult(Mapping):
        pass
    
    class MaintenanceWindowTaskParameters(object):
        pass
    
    class MaintenanceWindowTaskInvocationParameters(Mapping):
        pass
    
    class LoggingInfo(Mapping):
        pass
    
    class RemoveTagsFromResourceRequest(Mapping):
        pass
    
    class RemoveTagsFromResourceResult(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class ResetServiceSettingRequest(Mapping):
        pass
    
    class ResetServiceSettingResult(Mapping):
        pass
    
    class ResumeSessionRequest(Mapping):
        pass
    
    class ResumeSessionResponse(Mapping):
        pass
    
    class SendAutomationSignalRequest(Mapping):
        pass
    
    class SendAutomationSignalResult(Mapping):
        pass
    
    class AutomationParameterMap(object):
        pass
    
    class SendCommandRequest(Mapping):
        pass
    
    class SendCommandResult(Mapping):
        pass
    
    class NotificationConfig(Mapping):
        pass
    
    class CloudWatchOutputConfig(Mapping):
        pass
    
    class StartAssociationsOnceRequest(Mapping):
        pass
    
    class StartAssociationsOnceResult(Mapping):
        pass
    
    class AssociationId(object):
        pass
    
    class StartAutomationExecutionRequest(Mapping):
        pass
    
    class StartAutomationExecutionResult(Mapping):
        pass
    
    class TargetMap(object):
        pass
    
    class StartChangeRequestExecutionRequest(Mapping):
        pass
    
    class StartChangeRequestExecutionResult(Mapping):
        pass
    
    class Runbook(Mapping):
        pass
    
    class StartSessionRequest(Mapping):
        pass
    
    class StartSessionResponse(Mapping):
        pass
    
    class SessionManagerParameters(object):
        pass
    
    class StopAutomationExecutionRequest(Mapping):
        pass
    
    class StopAutomationExecutionResult(Mapping):
        pass
    
    class TerminateSessionRequest(Mapping):
        pass
    
    class TerminateSessionResponse(Mapping):
        pass
    
    class UnlabelParameterVersionRequest(Mapping):
        pass
    
    class UnlabelParameterVersionResult(Mapping):
        pass
    
    class UpdateAssociationRequest(Mapping):
        pass
    
    class UpdateAssociationResult(Mapping):
        pass
    
    class UpdateAssociationStatusRequest(Mapping):
        pass
    
    class UpdateAssociationStatusResult(Mapping):
        pass
    
    class AssociationStatus(Mapping):
        pass
    
    class UpdateDocumentRequest(Mapping):
        pass
    
    class UpdateDocumentResult(Mapping):
        pass
    
    class UpdateDocumentDefaultVersionRequest(Mapping):
        pass
    
    class UpdateDocumentDefaultVersionResult(Mapping):
        pass
    
    class UpdateDocumentMetadataRequest(Mapping):
        pass
    
    class UpdateDocumentMetadataResponse(Mapping):
        pass
    
    class DocumentReviews(Mapping):
        pass
    
    class UpdateMaintenanceWindowRequest(Mapping):
        pass
    
    class UpdateMaintenanceWindowResult(Mapping):
        pass
    
    class MaintenanceWindowEnabled(object):
        pass
    
    class UpdateMaintenanceWindowTargetRequest(Mapping):
        pass
    
    class UpdateMaintenanceWindowTargetResult(Mapping):
        pass
    
    class UpdateMaintenanceWindowTaskRequest(Mapping):
        pass
    
    class UpdateMaintenanceWindowTaskResult(Mapping):
        pass
    
    class UpdateManagedInstanceRoleRequest(Mapping):
        pass
    
    class UpdateManagedInstanceRoleResult(Mapping):
        pass
    
    class UpdateOpsItemRequest(Mapping):
        pass
    
    class UpdateOpsItemResponse(Mapping):
        pass
    
    class String(object):
        pass
    
    class UpdateOpsMetadataRequest(Mapping):
        pass
    
    class UpdateOpsMetadataResult(Mapping):
        pass
    
    class MetadataKey(object):
        pass
    
    class UpdatePatchBaselineRequest(Mapping):
        pass
    
    class UpdatePatchBaselineResult(Mapping):
        pass
    
    class UpdateResourceDataSyncRequest(Mapping):
        pass
    
    class UpdateResourceDataSyncResult(Mapping):
        pass
    
    class UpdateServiceSettingRequest(Mapping):
        pass
    
    class UpdateServiceSettingResult(Mapping):
        pass
    
    def add_tags_to_resource(self, Tags: List[Tag], ResourceId: str, ResourceType: str) -> AddTagsToResourceResult:
        r"""Adds or overwrites one or more tags for the specified resource. Tags are metadata that you can assign to your documents, managed instances, maintenance windows, Parameter Store parameters, and patch baselines. Tags enable you to categorize your resources in different ways, for example, by purpose, owner, or environment. Each tag consists of a key and an optional value, both of which you define. For example, you could define a set of tags for your account's managed instances that helps you track each instance's owner and stack level. For example: Key=Owner and Value=DbAdmin, SysAdmin, or Dev. Or Key=Stack and Value=Production, Pre-Production, or Test. Each resource can have a maximum of 50 tags.  We recommend that you devise a set of tag keys that meets your needs for each resource type. Using a consistent set of tag keys makes it easier for you to manage your resources. You can search and filter the resources based on the tags you add. Tags don't have any semantic meaning to and are interpreted strictly as a string of characters.  For more information about using tags with EC2 instances, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html">Tagging your Amazon EC2 resources</a> in the <i>Amazon EC2 User Guide</i>.

        :param self:
        :param Tags:  One or more tags. The value parameter is required. <important> Do not enter personally identifiable information in this field. </important><br/>ResourceId:  The resource ID you want to tag. Use the ID of the resource. Here are some examples: ManagedInstance: mi-012345abcde MaintenanceWindow: mw-012345abcde PatchBaseline: pb-012345abcde OpsMetadata object: <code>ResourceID</code> for tagging is created from the Amazon Resource Name (ARN) for the object. Specifically, <code>ResourceID</code> is created from the strings that come after the word <code>opsmetadata</code> in the ARN. For example, an OpsMetadata object with an ARN of <code>arn:aws:ssm:us-east-2:1234567890:opsmetadata/aws/ssm/MyGroup/appmanager</code> has a <code>ResourceID</code> of either <code>aws/ssm/MyGroup/appmanager</code> or <code>/aws/ssm/MyGroup/appmanager</code>. For the Document and Parameter values, use the name of the resource. <note> The ManagedInstance type for this API action is only for on-premises managed instances. You must specify the name of the managed instance in the following format: mi-ID_number. For example, mi-1a2b3c4d5e6f. </note><br/>ResourceType:  Specifies the type of resource you are tagging. <note> The ManagedInstance type for this API action is for on-premises managed instances. You must specify the name of the managed instance in the following format: mi-ID_number. For example, mi-1a2b3c4d5e6f. </note><br/>
        :return:         """
        pass

    def associate_ops_item_related_item(self, ResourceUri: str, ResourceType: str, AssociationType: str, OpsItemId: str) -> AssociateOpsItemRelatedItemResponse:
        r"""Associates a related resource to a Systems Manager OpsCenter OpsItem. For example, you can associate an Incident Manager incident or analysis with an OpsItem. Incident Manager is a capability of AWS Systems Manager.

        :param self:
        :param ResourceUri:  The Amazon Resource Name (ARN) of the AWS resource that you want to associate with the OpsItem.<br/>ResourceType:  The type of resource that you want to associate with an OpsItem. OpsCenter supports the following types:  <code>AWS::SSMIncidents::IncidentRecord</code>: an Incident Manager incident. Incident Manager is a capability of AWS Systems Manager.  <code>AWS::SSM::Document</code>: a Systems Manager (SSM) document.<br/>AssociationType:  The type of association that you want to create between an OpsItem and a resource. OpsCenter supports <code>IsParentOf</code> and <code>RelatesTo</code> association types.<br/>OpsItemId:  The ID of the OpsItem to which you want to associate a resource as a related item.<br/>
        :return: AssociationId:  The association ID.<br/>        """
        pass

    def cancel_command(self, CommandId: str, InstanceIds: List[InstanceId]=None) -> CancelCommandResult:
        r"""Attempts to cancel the command specified by the Command ID. There is no guarantee that the command will be terminated and the underlying process stopped.

        :param self:
        :param InstanceIds:  (Optional) A list of instance IDs on which you want to cancel the command. If not provided, the command is canceled on every instance on which it was requested.<br/>CommandId:  The ID of the command you want to cancel.<br/>
        :return:         """
        pass

    def cancel_maintenance_window_execution(self, WindowExecutionId: str) -> CancelMaintenanceWindowExecutionResult:
        r"""Stops a maintenance window execution that is already in progress and cancels any tasks in the window that have not already starting running. (Tasks already in progress will continue to completion.)

        :param self:
        :param WindowExecutionId:  The ID of the maintenance window execution to stop.<br/>
        :return: WindowExecutionId:  The ID of the maintenance window execution that has been stopped.<br/>        """
        pass

    def create_activation(self, IamRole: str, Description: str=None, DefaultInstanceName: str=None, RegistrationLimit: int=None, ExpirationDate: ExpirationDate=None, Tags: List[Tag]=None) -> CreateActivationResult:
        r"""Generates an activation code and activation ID you can use to register your on-premises server or virtual machine (VM) with Systems Manager. Registering these machines with Systems Manager makes it possible to manage them using Systems Manager capabilities. You use the activation code and ID when installing SSM Agent on machines in your hybrid environment. For more information about requirements for managing on-premises instances and VMs using Systems Manager, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-managedinstances.html">Setting up AWS Systems Manager for hybrid environments</a> in the <i>AWS Systems Manager User Guide</i>.  <note> On-premises servers or VMs that are registered with Systems Manager and EC2 instances that you manage with Systems Manager are all called <i>managed instances</i>. </note>

        :param self:
        :param Tags:  Optional metadata that you assign to a resource. Tags enable you to categorize a resource in different ways, such as by purpose, owner, or environment. For example, you might want to tag an activation to identify which servers or virtual machines (VMs) in your on-premises environment you intend to activate. In this case, you could specify the following key name/value pairs: <ul> <li>  <code>Key=OS,Value=Windows</code>  </li> <li>  <code>Key=Environment,Value=Production</code>  </li> </ul> <important> When you install SSM Agent on your on-premises servers and VMs, you specify an activation ID and code. When you specify the activation ID and code, tags assigned to the activation are automatically applied to the on-premises servers or VMs. </important> You can't add tags to or delete tags from an existing activation. You can tag your on-premises servers and VMs after they connect to Systems Manager for the first time and are assigned a managed instance ID. This means they are listed in the AWS Systems Manager console with an ID that is prefixed with "mi-". For information about how to add tags to your managed instances, see <a>AddTagsToResource</a>. For information about how to remove tags from your managed instances, see <a>RemoveTagsFromResource</a>.<br/>ExpirationDate:  The date by which this activation request should expire, in timestamp format, such as "2021-07-07T00:00:00". You can specify a date up to 30 days in advance. If you don't provide an expiration date, the activation code expires in 24 hours.<br/>RegistrationLimit:  Specify the maximum number of managed instances you want to register. The default value is 1 instance.<br/>IamRole:  The Amazon Identity and Access Management (IAM) role that you want to assign to the managed instance. This IAM role must provide AssumeRole permissions for the Systems Manager service principal <code>ssm.amazonaws.com</code>. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-service-role.html">Create an IAM service role for a hybrid environment</a> in the <i>AWS Systems Manager User Guide</i>.<br/>DefaultInstanceName:  The name of the registered, managed instance as it will appear in the Systems Manager console or when you use the AWS command line tools to list Systems Manager resources. <important> Do not enter personally identifiable information in this field. </important><br/>Description:  A user-defined description of the resource that you want to register with Systems Manager.  <important> Do not enter personally identifiable information in this field. </important><br/>
        :return: ActivationCode:  The code the system generates when it processes the activation. The activation code functions like a password to validate the activation ID. <br/>ActivationId:  The ID number generated by the system when it processed the activation. The activation ID functions like a user name.<br/>        """
        pass

    def create_association(self, Name: str, DocumentVersion: str=None, InstanceId: str=None, Parameters: Parameters=None, Targets: List[Target]=None, ScheduleExpression: str=None, OutputLocation: InstanceAssociationOutputLocation=None, AssociationName: str=None, AutomationTargetParameterName: str=None, MaxErrors: str=None, MaxConcurrency: str=None, ComplianceSeverity: str=None, SyncCompliance: str=None, ApplyOnlyAtCronInterval: ApplyOnlyAtCronInterval=None, CalendarNames: List[CalendarNameOrARN]=None, TargetLocations: List[TargetLocation]=None) -> CreateAssociationResult:
        r"""A State Manager association defines the state that you want to maintain on your instances. For example, an association can specify that anti-virus software must be installed and running on your instances, or that certain ports must be closed. For static targets, the association specifies a schedule for when the configuration is reapplied. For dynamic targets, such as an AWS Resource Group or an AWS Autoscaling Group, State Manager applies the configuration when new instances are added to the group. The association also specifies actions to take when applying the configuration. For example, an association for anti-virus software might run once a day. If the software is not installed, then State Manager installs it. If the software is installed, but the service is not running, then the association might instruct State Manager to start the service. 

        :param self:
        :param TargetLocations:  A location is a combination of AWS Regions and AWS accounts where you want to run the association. Use this action to create an association in multiple Regions and multiple accounts.<br/>CalendarNames:  The names or Amazon Resource Names (ARNs) of the Systems Manager Change Calendar type documents you want to gate your associations under. The associations only run when that Change Calendar is open. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-change-calendar">AWS Systems Manager Change Calendar</a>.<br/>ApplyOnlyAtCronInterval:  By default, when you create a new association, the system runs it immediately after it is created and then according to the schedule you specified. Specify this option if you don't want an association to run immediately after you create it. This parameter is not supported for rate expressions.<br/>SyncCompliance:  The mode for generating association compliance. You can specify <code>AUTO</code> or <code>MANUAL</code>. In <code>AUTO</code> mode, the system uses the status of the association execution to determine the compliance status. If the association execution runs successfully, then the association is <code>COMPLIANT</code>. If the association execution doesn't run successfully, the association is <code>NON-COMPLIANT</code>. In <code>MANUAL</code> mode, you must specify the <code>AssociationId</code> as a parameter for the <a>PutComplianceItems</a> API action. In this case, compliance data is not managed by State Manager. It is managed by your direct call to the <a>PutComplianceItems</a> API action. By default, all associations use <code>AUTO</code> mode.<br/>ComplianceSeverity:  The severity level to assign to the association.<br/>MaxConcurrency:  The maximum number of targets allowed to run the association at the same time. You can specify a number, for example 10, or a percentage of the target set, for example 10%. The default value is 100%, which means all targets run the association at the same time. If a new instance starts and attempts to run an association while Systems Manager is running MaxConcurrency associations, the association is allowed to run. During the next association interval, the new instance will process its association within the limit specified for MaxConcurrency.<br/>MaxErrors:  The number of errors that are allowed before the system stops sending requests to run the association on additional targets. You can specify either an absolute number of errors, for example 10, or a percentage of the target set, for example 10%. If you specify 3, for example, the system stops sending requests when the fourth error is received. If you specify 0, then the system stops sending requests after the first error is returned. If you run an association on 50 instances and set MaxError to 10%, then the system stops sending the request when the sixth error is received. Executions that are already running an association when MaxErrors is reached are allowed to complete, but some of these executions may fail as well. If you need to ensure that there won't be more than max-errors failed executions, set MaxConcurrency to 1 so that executions proceed one at a time.<br/>AutomationTargetParameterName:  Specify the target for the association. This target is required for associations that use an Automation document and target resources by using rate controls.<br/>AssociationName:  Specify a descriptive name for the association.<br/>OutputLocation:  An S3 bucket where you want to store the output details of the request.:<br/>ScheduleExpression:  A cron expression when the association will be applied to the target(s).<br/>Targets:  The targets for the association. You can target instances by using tags, AWS Resource Groups, all instances in an AWS account, or individual instance IDs. For more information about choosing targets for an association, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-state-manager-targets-and-rate-controls.html">Using targets and rate controls with State Manager associations</a> in the <i>AWS Systems Manager User Guide</i>.<br/>Parameters:  The parameters for the runtime configuration of the document.<br/>InstanceId:  The instance ID. <note>  <code>InstanceId</code> has been deprecated. To specify an instance ID for an association, use the <code>Targets</code> parameter. Requests that include the parameter <code>InstanceID</code> with SSM documents that use schema version 2.0 or later will fail. In addition, if you use the parameter <code>InstanceId</code>, you cannot use the parameters <code>AssociationName</code>, <code>DocumentVersion</code>, <code>MaxErrors</code>, <code>MaxConcurrency</code>, <code>OutputLocation</code>, or <code>ScheduleExpression</code>. To use these parameters, you must use the <code>Targets</code> parameter. </note><br/>DocumentVersion:  The document version you want to associate with the target(s). Can be a specific version or the default version.<br/>Name:  The name of the SSM document that contains the configuration information for the instance. You can specify Command or Automation documents. You can specify AWS-predefined documents, documents you created, or a document that is shared with you from another account. For SSM documents that are shared with you from other AWS accounts, you must specify the complete SSM document ARN, in the following format:  <code>arn:<i>partition</i>:ssm:<i>region</i>:<i>account-id</i>:document/<i>document-name</i> </code>  For example:  <code>arn:aws:ssm:us-east-2:12345678912:document/My-Shared-Document</code>  For AWS-predefined documents and SSM documents you created in your account, you only need to specify the document name. For example, <code>AWS-ApplyPatchBaseline</code> or <code>My-Document</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Location</i> An S3 bucket where you want to store the results of this request.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3Location</b>: An S3 bucket where you want to store the results of this request.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OutputS3KeyPrefix</i> The S3 bucket subfolder.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OutputS3BucketName</i> The name of the S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OutputS3Region</i> (Deprecated) You can no longer specify this parameter. The system ignores it. Instead, Systems Manager automatically determines the Region of the S3 bucket.<br/>
        :return: AssociationDescription:  Information about the association.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetLocations</i> The combination of AWS Regions and AWS accounts where you want to run the association.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CalendarNames</i> The names or Amazon Resource Names (ARNs) of the Systems Manager Change Calendar type documents your associations are gated under. The associations only run when that Change Calendar is open. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-change-calendar">AWS Systems Manager Change Calendar</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplyOnlyAtCronInterval</i> By default, when you create a new associations, the system runs it immediately after it is created and then according to the schedule you specified. Specify this option if you don't want an association to run immediately after you create it. This parameter is not supported for rate expressions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SyncCompliance</i> The mode for generating association compliance. You can specify <code>AUTO</code> or <code>MANUAL</code>. In <code>AUTO</code> mode, the system uses the status of the association execution to determine the compliance status. If the association execution runs successfully, then the association is <code>COMPLIANT</code>. If the association execution doesn't run successfully, the association is <code>NON-COMPLIANT</code>. In <code>MANUAL</code> mode, you must specify the <code>AssociationId</code> as a parameter for the <a>PutComplianceItems</a> API action. In this case, compliance data is not managed by State Manager. It is managed by your direct call to the <a>PutComplianceItems</a> API action. By default, all associations use <code>AUTO</code> mode.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ComplianceSeverity</i> The severity level that is assigned to the association.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxConcurrency</i> The maximum number of targets allowed to run the association at the same time. You can specify a number, for example 10, or a percentage of the target set, for example 10%. The default value is 100%, which means all targets run the association at the same time. If a new instance starts and attempts to run an association while Systems Manager is running MaxConcurrency associations, the association is allowed to run. During the next association interval, the new instance will process its association within the limit specified for MaxConcurrency.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxErrors</i> The number of errors that are allowed before the system stops sending requests to run the association on additional targets. You can specify either an absolute number of errors, for example 10, or a percentage of the target set, for example 10%. If you specify 3, for example, the system stops sending requests when the fourth error is received. If you specify 0, then the system stops sending requests after the first error is returned. If you run an association on 50 instances and set MaxError to 10%, then the system stops sending the request when the sixth error is received. Executions that are already running an association when MaxErrors is reached are allowed to complete, but some of these executions may fail as well. If you need to ensure that there won't be more than max-errors failed executions, set MaxConcurrency to 1 so that executions proceed one at a time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociationName</i> The association name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastSuccessfulExecutionDate</i> The last date on which the association was successfully run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastExecutionDate</i> The date on which the association was last run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OutputLocation</i> An S3 bucket where you want to store the output details of the request.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>OutputLocation</b>: An S3 bucket where you want to store the output details of the request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ScheduleExpression</i> A cron expression that specifies a schedule when the association runs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Targets</i> The instances targeted by the request. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociationId</i> The association ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Parameters</i> A description of the parameters for a document. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomationTargetParameterName</i> Specify the target for the association. This target is required for associations that use an Automation document and target resources by using rate controls.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DocumentVersion</i> The document version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Overview</i> Information about the association.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Overview</b>: Information about the association.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The association status.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Status</b>: The association status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdateAssociationDate</i> The date when the association was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Date</i> The date when the association was made.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociationVersion</i> The association version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceId</i> The ID of the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the Systems Manager document.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AdditionalInfo</i> A user-defined string.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> The reason for the status.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The status.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Date</i> The date when the status changed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociationStatusAggregatedCount</i> Returns the number of targets for the association status. For example, if you created an association with two instances, and one of them was successful, this would return the count of instances by status.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DetailedStatus</i> A detailed status of the association.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the association. Status can be: Pending, Success, or Failed.<br/>An S3 bucket where you want to store the results of this request.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3Location</b>: An S3 bucket where you want to store the results of this request.        """
        pass

    def create_association_batch(self, Entries: List[CreateAssociationBatchRequestEntry]) -> CreateAssociationBatchResult:
        r"""Associates the specified Systems Manager document with the specified instances or targets. When you associate a document with one or more instances using instance IDs or tags, SSM Agent running on the instance processes the document and configures the instance as specified. If you associate a document with an instance that already has an associated document, the system returns the AssociationAlreadyExists exception.

        :param self:
        :param Entries:  One or more associations.<br/>
        :return: Failed:  Information about the associations that failed.<br/>Successful:  Information about the associations that succeeded.<br/>        """
        pass

    def create_document(self, Name: str, Content: str, Requires: List[DocumentRequires]=None, Attachments: List[AttachmentsSource]=None, DisplayName: str=None, VersionName: str=None, DocumentType: str=None, DocumentFormat: str=None, TargetType: str=None, Tags: List[Tag]=None) -> CreateDocumentResult:
        r"""Creates a Systems Manager (SSM) document. An SSM document defines the actions that Systems Manager performs on your managed instances. For more information about SSM documents, including information about supported schemas, features, and syntax, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-ssm-docs.html">AWS Systems Manager Documents</a> in the <i>AWS Systems Manager User Guide</i>.

        :param self:
        :param Tags:  Optional metadata that you assign to a resource. Tags enable you to categorize a resource in different ways, such as by purpose, owner, or environment. For example, you might want to tag an SSM document to identify the types of targets or the environment where it will run. In this case, you could specify the following key name/value pairs: <ul> <li>  <code>Key=OS,Value=Windows</code>  </li> <li>  <code>Key=Environment,Value=Production</code>  </li> </ul> <note> To add tags to an existing SSM document, use the <a>AddTagsToResource</a> action. </note><br/>TargetType:  Specify a target type to define the kinds of resources the document can run on. For example, to run a document on EC2 instances, specify the following value: /AWS::EC2::Instance. If you specify a value of '/' the document can run on all types of resources. If you don't specify a value, the document can't run on any resources. For a list of valid resource types, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html">AWS resource and property types reference</a> in the <i>AWS CloudFormation User Guide</i>. <br/>DocumentFormat:  Specify the document format for the request. The document format can be JSON, YAML, or TEXT. JSON is the default format.<br/>DocumentType:  The type of document to create.<br/>VersionName:  An optional field specifying the version of the artifact you are creating with the document. For example, "Release 12, Update 6". This value is unique across all versions of a document, and cannot be changed.<br/>DisplayName:  An optional field where you can specify a friendly name for the Systems Manager document. This value can differ for each version of the document. You can update this value at a later time using the <a>UpdateDocument</a> action.<br/>Name:  A name for the Systems Manager document. <important> You can't use the following strings as document name prefixes. These are reserved by AWS for use as document name prefixes: <ul> <li>  <code>aws-</code>  </li> <li>  <code>amazon</code>  </li> <li>  <code>amzn</code>  </li> </ul> </important><br/>Attachments:  A list of key and value pairs that describe attachments to a version of a document.<br/>Requires:  A list of SSM documents required by a document. This parameter is used exclusively by AWS AppConfig. When a user creates an AppConfig configuration in an SSM document, the user must also specify a required document for validation purposes. In this case, an <code>ApplicationConfiguration</code> document requires an <code>ApplicationConfigurationSchema</code> document for validation purposes. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/appconfig.html">AWS AppConfig</a> in the <i>AWS Systems Manager User Guide</i>.<br/>Content:  The content for the new SSM document in JSON or YAML format. We recommend storing the contents for your new document in an external JSON or YAML file and referencing the file in a command. For examples, see the following topics in the <i>AWS Systems Manager User Guide</i>. <ul> <li>  <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/create-ssm-document-api.html">Create an SSM document (AWS API)</a>  </li> <li>  <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/create-ssm-document-cli.html">Create an SSM document (AWS CLI)</a>  </li> <li>  <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/create-ssm-document-api.html">Create an SSM document (API)</a>  </li> </ul><br/>
        :return: DocumentDescription:  Information about the Systems Manager document.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReviewStatus</i> The current status of the review.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingReviewVersion</i> The version of the document that is currently under review.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApprovedVersion</i> The version of the document currently approved for use in the organization.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReviewInformation</i> Details about the review of a document.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Author</i> The user in your organization who created the document.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Requires</i> A list of SSM documents required by a document. For example, an <code>ApplicationConfiguration</code> document requires an <code>ApplicationConfigurationSchema</code> document.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AttachmentsInformation</i> Details about the document attachments, including names, locations, sizes, and so on.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The tags, or metadata, that have been applied to the document.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetType</i> The target type which defines the kinds of resources the document can run on. For example, /AWS::EC2::Instance. For a list of valid resource types, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html">AWS resource and property types reference</a> in the <i>AWS CloudFormation User Guide</i>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DocumentFormat</i> The document format, either JSON or YAML.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultVersion</i> The default version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestVersion</i> The latest version of the document.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SchemaVersion</i> The schema version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DocumentType</i> The type of document.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PlatformTypes</i> The list of OS platforms compatible with this Systems Manager document. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Parameters</i> A description of the parameters for a document.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A description of the document. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DocumentVersion</i> The document version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusInformation</i> A message returned by AWS Systems Manager that explains the <code>Status</code> value. For example, a <code>Failed</code> status might be explained by the <code>StatusInformation</code> message, "The specified S3 bucket does not exist. Verify that the URL of the S3 bucket is correct."<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the Systems Manager document.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedDate</i> The date when the document was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Owner</i> The AWS user account that created the document.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VersionName</i> The version of the artifact associated with the document.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DisplayName</i> The friendly name of the Systems Manager document. This value can differ for each version of the document. If you want to update this value, see <a>UpdateDocument</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the Systems Manager document.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HashType</i> The hash type of the document. Valid values include <code>Sha256</code> or <code>Sha1</code>. <note> Sha1 hashes have been deprecated. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Hash</i> The Sha256 or Sha1 hash created by the system when the document was created.  <note> Sha1 hashes have been deprecated. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Sha1</i> The SHA1 hash of the document, which you can use for verification.<br/>        """
        pass

    def create_maintenance_window(self, AllowUnassociatedTargets: MaintenanceWindowAllowUnassociatedTargets, Cutoff: int, Duration: int, Schedule: str, Name: str, Description: str=None, StartDate: str=None, EndDate: str=None, ScheduleTimezone: str=None, ScheduleOffset: int=None, ClientToken: str=None, Tags: List[Tag]=None) -> CreateMaintenanceWindowResult:
        r"""Creates a new maintenance window. <note> The value you specify for <code>Duration</code> determines the specific end time for the maintenance window based on the time it begins. No maintenance window tasks are permitted to start after the resulting endtime minus the number of hours you specify for <code>Cutoff</code>. For example, if the maintenance window starts at 3 PM, the duration is three hours, and the value you specify for <code>Cutoff</code> is one hour, no maintenance window tasks can start after 5 PM. </note>

        :param self:
        :param Tags:  Optional metadata that you assign to a resource. Tags enable you to categorize a resource in different ways, such as by purpose, owner, or environment. For example, you might want to tag a maintenance window to identify the type of tasks it will run, the types of targets, and the environment it will run in. In this case, you could specify the following key name/value pairs: <ul> <li>  <code>Key=TaskType,Value=AgentUpdate</code>  </li> <li>  <code>Key=OS,Value=Windows</code>  </li> <li>  <code>Key=Environment,Value=Production</code>  </li> </ul> <note> To add tags to an existing maintenance window, use the <a>AddTagsToResource</a> action. </note><br/>ClientToken:  User-provided idempotency token.<br/>AllowUnassociatedTargets:  Enables a maintenance window task to run on managed instances, even if you have not registered those instances as targets. If enabled, then you must specify the unregistered instances (by instance ID) when you register a task with the maintenance window. If you don't enable this option, then you must specify previously-registered targets when you register a task with the maintenance window.<br/>Cutoff:  The number of hours before the end of the maintenance window that Systems Manager stops scheduling new tasks for execution.<br/>Duration:  The duration of the maintenance window in hours.<br/>ScheduleOffset:  The number of days to wait after the date and time specified by a CRON expression before running the maintenance window. For example, the following cron expression schedules a maintenance window to run on the third Tuesday of every month at 11:30 PM.  <code>cron(30 23 ? * TUE#3 *)</code>  If the schedule offset is <code>2</code>, the maintenance window won't run until two days later.<br/>ScheduleTimezone:  The time zone that the scheduled maintenance window executions are based on, in Internet Assigned Numbers Authority (IANA) format. For example: "America/Los_Angeles", "UTC", or "Asia/Seoul". For more information, see the <a href="https://www.iana.org/time-zones">Time Zone Database</a> on the IANA website.<br/>Schedule:  The schedule of the maintenance window in the form of a cron or rate expression.<br/>EndDate:  The date and time, in ISO-8601 Extended format, for when you want the maintenance window to become inactive. EndDate allows you to set a date and time in the future when the maintenance window will no longer run.<br/>StartDate:  The date and time, in ISO-8601 Extended format, for when you want the maintenance window to become active. StartDate allows you to delay activation of the maintenance window until the specified future date.<br/>Description:  An optional description for the maintenance window. We recommend specifying a description to help you organize your maintenance windows. <br/>Name:  The name of the maintenance window.<br/>
        :return: WindowId:  The ID of the created maintenance window.<br/>        """
        pass

    def create_ops_item(self, Title: str, Source: str, Description: str, OpsItemType: str=None, OperationalData: OpsItemOperationalData=None, Notifications: List[OpsItemNotification]=None, Priority: int=None, RelatedOpsItems: List[RelatedOpsItem]=None, Tags: List[Tag]=None, Category: str=None, Severity: str=None, ActualStartTime: DateTime=None, ActualEndTime: DateTime=None, PlannedStartTime: DateTime=None, PlannedEndTime: DateTime=None) -> CreateOpsItemResponse:
        r"""Creates a new OpsItem. You must have permission in AWS Identity and Access Management (IAM) to create a new OpsItem. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-getting-started.html">Getting started with OpsCenter</a> in the <i>AWS Systems Manager User Guide</i>. Operations engineers and IT professionals use OpsCenter to view, investigate, and remediate operational issues impacting the performance and health of their AWS resources. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter.html">AWS Systems Manager OpsCenter</a> in the <i>AWS Systems Manager User Guide</i>. 

        :param self:
        :param PlannedEndTime:  The time specified in a change request for a runbook workflow to end. Currently supported only for the OpsItem type <code>/aws/changerequest</code>.<br/>PlannedStartTime:  The time specified in a change request for a runbook workflow to start. Currently supported only for the OpsItem type <code>/aws/changerequest</code>.<br/>ActualEndTime:  The time a runbook workflow ended. Currently reported only for the OpsItem type <code>/aws/changerequest</code>.<br/>ActualStartTime:  The time a runbook workflow started. Currently reported only for the OpsItem type <code>/aws/changerequest</code>.<br/>Severity:  Specify a severity to assign to an OpsItem.<br/>Category:  Specify a category to assign to an OpsItem. <br/>Tags:  Optional metadata that you assign to a resource. You can restrict access to OpsItems by using an inline IAM policy that specifies tags. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-getting-started.html#OpsCenter-getting-started-user-permissions">Getting started with OpsCenter</a> in the <i>AWS Systems Manager User Guide</i>. Tags use a key-value pair. For example:  <code>Key=Department,Value=Finance</code>  <note> To add tags to an existing OpsItem, use the <a>AddTagsToResource</a> action. </note><br/>Title:  A short heading that describes the nature of the OpsItem and the impacted resource.<br/>Source:  The origin of the OpsItem, such as Amazon EC2 or Systems Manager. <note> The source name can't contain the following strings: aws, amazon, and amzn.  </note><br/>RelatedOpsItems:  One or more OpsItems that share something in common with the current OpsItems. For example, related OpsItems can include OpsItems with similar error messages, impacted resources, or statuses for the impacted resource.<br/>Priority:  The importance of this OpsItem in relation to other OpsItems in the system.<br/>Notifications:  The Amazon Resource Name (ARN) of an SNS topic where notifications are sent when this OpsItem is edited or changed.<br/>OperationalData:  Operational data is custom data that provides useful reference details about the OpsItem. For example, you can specify log files, error strings, license keys, troubleshooting tips, or other relevant data. You enter operational data as key-value pairs. The key has a maximum length of 128 characters. The value has a maximum size of 20 KB. <important> Operational data keys <i>can't</i> begin with the following: amazon, aws, amzn, ssm, /amazon, /aws, /amzn, /ssm. </important> You can choose to make the data searchable by other users in the account or you can restrict search access. Searchable data means that all users with access to the OpsItem Overview page (as provided by the <a>DescribeOpsItems</a> API action) can view and search on the specified data. Operational data that is not searchable is only viewable by users who have access to the OpsItem (as provided by the <a>GetOpsItem</a> API action). Use the <code>/aws/resources</code> key in OperationalData to specify a related resource in the request. Use the <code>/aws/automations</code> key in OperationalData to associate an Automation runbook with the OpsItem. To view AWS CLI example commands that use these keys, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-creating-OpsItems.html#OpsCenter-manually-create-OpsItems">Creating OpsItems manually</a> in the <i>AWS Systems Manager User Guide</i>.<br/>OpsItemType:  The type of OpsItem to create. Currently, the only valid values are <code>/aws/changerequest</code> and <code>/aws/issue</code>.<br/>Description:  Information about the OpsItem. <br/>
        :return: OpsItemId:  The ID of the OpsItem.<br/>        """
        pass

    def create_ops_metadata(self, ResourceId: str, Metadata: MetadataMap=None, Tags: List[Tag]=None) -> CreateOpsMetadataResult:
        r"""If you create a new application in Application Manager, Systems Manager calls this API action to specify information about the new application, including the application type.

        :param self:
        :param Tags:  Optional metadata that you assign to a resource. You can specify a maximum of five tags for an OpsMetadata object. Tags enable you to categorize a resource in different ways, such as by purpose, owner, or environment. For example, you might want to tag an OpsMetadata object to identify an environment or target AWS Region. In this case, you could specify the following key-value pairs: <ul> <li>  <code>Key=Environment,Value=Production</code>  </li> <li>  <code>Key=Region,Value=us-east-2</code>  </li> </ul><br/>Metadata:  Metadata for a new Application Manager application. <br/>ResourceId:  A resource ID for a new Application Manager application.<br/>
        :return: OpsMetadataArn:  The Amazon Resource Name (ARN) of the OpsMetadata Object or blob created by the call.<br/>        """
        pass

    def create_patch_baseline(self, Name: str, OperatingSystem: str=None, GlobalFilters: PatchFilterGroup=None, ApprovalRules: PatchRuleGroup=None, ApprovedPatches: List[PatchId]=None, ApprovedPatchesComplianceLevel: str=None, ApprovedPatchesEnableNonSecurity: Boolean=None, RejectedPatches: List[PatchId]=None, RejectedPatchesAction: str=None, Description: str=None, Sources: List[PatchSource]=None, ClientToken: str=None, Tags: List[Tag]=None) -> CreatePatchBaselineResult:
        r"""Creates a patch baseline. <note> For information about valid key and value pairs in <code>PatchFilters</code> for each supported operating system type, see <a href="http://docs.aws.amazon.com/systems-manager/latest/APIReference/API_PatchFilter.html">PatchFilter</a>. </note>

        :param self:
        :param Tags:  Optional metadata that you assign to a resource. Tags enable you to categorize a resource in different ways, such as by purpose, owner, or environment. For example, you might want to tag a patch baseline to identify the severity level of patches it specifies and the operating system family it applies to. In this case, you could specify the following key name/value pairs: <ul> <li>  <code>Key=PatchSeverity,Value=Critical</code>  </li> <li>  <code>Key=OS,Value=Windows</code>  </li> </ul> <note> To add tags to an existing patch baseline, use the <a>AddTagsToResource</a> action. </note><br/>ClientToken:  User-provided idempotency token.<br/>Sources:  Information about the patches to use to update the instances, including target operating systems and source repositories. Applies to Linux instances only.<br/>Description:  A description of the patch baseline.<br/>RejectedPatchesAction:  The action for Patch Manager to take on patches included in the RejectedPackages list. <ul> <li>  <b>ALLOW_AS_DEPENDENCY</b>: A package in the Rejected patches list is installed only if it is a dependency of another package. It is considered compliant with the patch baseline, and its status is reported as <i>InstalledOther</i>. This is the default action if no option is specified. </li> <li>  <b>BLOCK</b>: Packages in the RejectedPatches list, and packages that include them as dependencies, are not installed under any circumstances. If a package was installed before it was added to the Rejected patches list, it is considered non-compliant with the patch baseline, and its status is reported as <i>InstalledRejected</i>. </li> </ul><br/>RejectedPatches:  A list of explicitly rejected patches for the baseline. For information about accepted formats for lists of approved patches and rejected patches, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/patch-manager-approved-rejected-package-name-formats.html">About package name formats for approved and rejected patch lists</a> in the <i>AWS Systems Manager User Guide</i>.<br/>ApprovedPatchesEnableNonSecurity:  Indicates whether the list of approved patches includes non-security updates that should be applied to the instances. The default value is 'false'. Applies to Linux instances only.<br/>ApprovedPatchesComplianceLevel:  Defines the compliance level for approved patches. When an approved patch is reported as missing, this value describes the severity of the compliance violation. The default value is UNSPECIFIED.<br/>ApprovedPatches:  A list of explicitly approved patches for the baseline. For information about accepted formats for lists of approved patches and rejected patches, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/patch-manager-approved-rejected-package-name-formats.html">About package name formats for approved and rejected patch lists</a> in the <i>AWS Systems Manager User Guide</i>.<br/>ApprovalRules:  A set of rules used to include patches in the baseline.:<br/>GlobalFilters:  A set of global filters used to include patches in the baseline.:<br/>Name:  The name of the patch baseline.<br/>OperatingSystem:  Defines the operating system the patch baseline applies to. The Default value is WINDOWS.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PatchFilters</i> The set of patch filters that make up the group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PatchRules</i> The rules that make up the rule group.<br/>
        :return: BaselineId:  The ID of the created patch baseline.<br/>        """
        pass

    def create_resource_data_sync(self, SyncName: str, S3Destination: ResourceDataSyncS3Destination=None, SyncType: str=None, SyncSource: ResourceDataSyncSource=None) -> CreateResourceDataSyncResult:
        r"""A resource data sync helps you view data from multiple sources in a single location. Systems Manager offers two types of resource data sync: <code>SyncToDestination</code> and <code>SyncFromSource</code>. You can configure Systems Manager Inventory to use the <code>SyncToDestination</code> type to synchronize Inventory data from multiple AWS Regions to a single S3 bucket. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-inventory-datasync.html">Configuring Resource Data Sync for Inventory</a> in the <i>AWS Systems Manager User Guide</i>. You can configure Systems Manager Explorer to use the <code>SyncFromSource</code> type to synchronize operational work items (OpsItems) and operational data (OpsData) from multiple AWS Regions to a single S3 bucket. This type can synchronize OpsItems and OpsData from multiple AWS accounts and Regions or <code>EntireOrganization</code> by using AWS Organizations. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/Explorer-resource-data-sync.html">Setting up Systems Manager Explorer to display data from multiple accounts and Regions</a> in the <i>AWS Systems Manager User Guide</i>. A resource data sync is an asynchronous operation that returns immediately. After a successful initial sync is completed, the system continuously syncs data. To check the status of a sync, use the <a>ListResourceDataSync</a>. <note> By default, data is not encrypted in Amazon S3. We strongly recommend that you enable encryption in Amazon S3 to ensure secure data storage. We also recommend that you secure access to the Amazon S3 bucket by creating a restrictive bucket policy.  </note>

        :param self:
        :param SyncSource:  Specify information about the data sources to synchronize. This parameter is required if the <code>SyncType</code> value is SyncFromSource.:<br/>SyncType:  Specify <code>SyncToDestination</code> to create a resource data sync that synchronizes data to an S3 bucket for Inventory. If you specify <code>SyncToDestination</code>, you must provide a value for <code>S3Destination</code>. Specify <code>SyncFromSource</code> to synchronize data from a single account and multiple Regions, or multiple AWS accounts and Regions, as listed in AWS Organizations for Explorer. If you specify <code>SyncFromSource</code>, you must provide a value for <code>SyncSource</code>. The default value is <code>SyncToDestination</code>.<br/>S3Destination:  Amazon S3 configuration details for the sync. This parameter is required if the <code>SyncType</code> value is SyncToDestination.:<br/>SyncName:  A name for the configuration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DestinationDataSharing</i> Enables destination data sharing. By default, this field is <code>null</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DestinationDataSharing</b>: Enables destination data sharing. By default, this field is <code>null</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AWSKMSKeyARN</i> The ARN of an encryption key for a destination in Amazon S3. Must belong to the same Region as the destination S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Region</i> The AWS Region with the S3 bucket targeted by the Resource Data Sync.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SyncFormat</i> A supported sync format. The following format is currently supported: JsonSerDe<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Prefix</i> An Amazon S3 prefix for the bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BucketName</i> The name of the S3 bucket where the aggregated data is stored.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DestinationDataSharingType</i> The sharing data type. Only <code>Organization</code> is supported.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableAllOpsDataSources</i> When you create a resource data sync, if you choose one of the AWS Organizations options, then Systems Manager automatically enables all OpsData sources in the selected AWS Regions for all AWS accounts in your organization (or in the selected organization units). For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/Explorer-resouce-data-sync-multiple-accounts-and-regions.html">About multiple account and Region resource data syncs</a> in the <i>AWS Systems Manager User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeFutureRegions</i> Whether to automatically synchronize and aggregate data from new AWS Regions when those Regions come online.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceRegions</i> The <code>SyncSource</code> AWS Regions included in the resource data sync.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AwsOrganizationsSource</i> Information about the AwsOrganizationsSource resource data sync source. A sync source of this type can synchronize data from AWS Organizations.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AwsOrganizationsSource</b>: Information about the AwsOrganizationsSource resource data sync source. A sync source of this type can synchronize data from AWS Organizations.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceType</i> The type of data source for the resource data sync. <code>SourceType</code> is either <code>AwsOrganizations</code> (if an organization is present in AWS Organizations) or <code>SingleAccountMultiRegions</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OrganizationalUnits</i> The AWS Organizations organization units included in the sync.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OrganizationSourceType</i> If an AWS Organization is present, this is either <code>OrganizationalUnits</code> or <code>EntireOrganization</code>. For <code>OrganizationalUnits</code>, the data is aggregated from a set of organization units. For <code>EntireOrganization</code>, the data is aggregated from the entire AWS Organization. <br/>
        :return:         """
        pass

    def delete_activation(self, ActivationId: str) -> DeleteActivationResult:
        r"""Deletes an activation. You are not required to delete an activation. If you delete an activation, you can no longer use it to register additional managed instances. Deleting an activation does not de-register managed instances. You must manually de-register managed instances.

        :param self:
        :param ActivationId:  The ID of the activation that you want to delete.<br/>
        :return:         """
        pass

    def delete_association(self, Name: str=None, InstanceId: str=None, AssociationId: str=None) -> DeleteAssociationResult:
        r"""Disassociates the specified Systems Manager document from the specified instance. When you disassociate a document from an instance, it does not change the configuration of the instance. To change the configuration state of an instance after you disassociate a document, you must create a new document with the desired configuration and associate it with the instance.

        :param self:
        :param AssociationId:  The association ID that you want to delete.<br/>InstanceId:  The ID of the instance.<br/>Name:  The name of the Systems Manager document.<br/>
        :return:         """
        pass

    def delete_document(self, Name: str, DocumentVersion: str=None, VersionName: str=None, Force: Boolean=None) -> DeleteDocumentResult:
        r"""Deletes the Systems Manager document and all instance associations to the document. Before you delete the document, we recommend that you use <a>DeleteAssociation</a> to disassociate all instances that are associated with the document.

        :param self:
        :param Force:  Some SSM document types require that you specify a <code>Force</code> flag before you can delete the document. For example, you must specify a <code>Force</code> flag to delete a document of type <code>ApplicationConfigurationSchema</code>. You can restrict access to the <code>Force</code> flag in an AWS Identity and Access Management (IAM) policy.<br/>VersionName:  The version name of the document that you want to delete. If not provided, all versions of the document are deleted.<br/>DocumentVersion:  The version of the document that you want to delete. If not provided, all versions of the document are deleted.<br/>Name:  The name of the document.<br/>
        :return:         """
        pass

    def delete_inventory(self, TypeName: str, SchemaDeleteOption: str=None, DryRun: DryRun=None, ClientToken: str=None) -> DeleteInventoryResult:
        r"""Delete a custom inventory type or the data associated with a custom Inventory type. Deleting a custom inventory type is also referred to as deleting a custom inventory schema.

        :param self:
        :param ClientToken:  User-provided idempotency token.<br/>DryRun:  Use this option to view a summary of the deletion request without deleting any data or the data type. This option is useful when you only want to understand what will be deleted. Once you validate that the data to be deleted is what you intend to delete, you can run the same command without specifying the <code>DryRun</code> option.<br/>SchemaDeleteOption:  Use the <code>SchemaDeleteOption</code> to delete a custom inventory type (schema). If you don't choose this option, the system only deletes existing inventory data associated with the custom inventory type. Choose one of the following options: DisableSchema: If you choose this option, the system ignores all inventory data for the specified version, and any earlier versions. To enable this schema again, you must call the <code>PutInventory</code> action for a version greater than the disabled version. DeleteSchema: This option deletes the specified custom type from the Inventory service. You can recreate the schema later, if you want.<br/>TypeName:  The name of the custom inventory type for which you want to delete either all previously collected data or the inventory type itself. <br/>
        :return: DeletionSummary:  A summary of the delete operation. For more information about this summary, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-inventory-custom.html#sysman-inventory-delete-summary">Deleting custom inventory</a> in the <i>AWS Systems Manager User Guide</i>.:<br/>TypeName:  The name of the inventory data type specified in the request.<br/>DeletionId:  Every <code>DeleteInventory</code> action is assigned a unique ID. This option returns a unique ID. You can use this ID to query the status of a delete operation. This option is useful for ensuring that a delete operation has completed before you begin other actions. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SummaryItems</i> A list of counts and versions for deleted items.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RemainingCount</i> Remaining number of items to delete.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalCount</i> The total number of items to delete. This count does not change during the delete operation.<br/>        """
        pass

    def delete_maintenance_window(self, WindowId: str) -> DeleteMaintenanceWindowResult:
        r"""Deletes a maintenance window.

        :param self:
        :param WindowId:  The ID of the maintenance window to delete.<br/>
        :return: WindowId:  The ID of the deleted maintenance window.<br/>        """
        pass

    def delete_ops_metadata(self, OpsMetadataArn: str) -> DeleteOpsMetadataResult:
        r"""Delete OpsMetadata related to an application.

        :param self:
        :param OpsMetadataArn:  The Amazon Resource Name (ARN) of an OpsMetadata Object to delete.<br/>
        :return:         """
        pass

    def delete_parameter(self, Name: str) -> DeleteParameterResult:
        r"""Delete a parameter from the system.

        :param self:
        :param Name:  The name of the parameter to delete.<br/>
        :return:         """
        pass

    def delete_parameters(self, Names: List[PSParameterName]) -> DeleteParametersResult:
        r"""Delete a list of parameters.

        :param self:
        :param Names:  The names of the parameters to delete.<br/>
        :return: InvalidParameters:  The names of parameters that weren't deleted because the parameters are not valid.<br/>DeletedParameters:  The names of the deleted parameters.<br/>        """
        pass

    def delete_patch_baseline(self, BaselineId: str) -> DeletePatchBaselineResult:
        r"""Deletes a patch baseline.

        :param self:
        :param BaselineId:  The ID of the patch baseline to delete.<br/>
        :return: BaselineId:  The ID of the deleted patch baseline.<br/>        """
        pass

    def delete_resource_data_sync(self, SyncName: str, SyncType: str=None) -> DeleteResourceDataSyncResult:
        r"""Deletes a Resource Data Sync configuration. After the configuration is deleted, changes to data on managed instances are no longer synced to or from the target. Deleting a sync configuration does not delete data.

        :param self:
        :param SyncType:  Specify the type of resource data sync to delete.<br/>SyncName:  The name of the configuration to delete.<br/>
        :return:         """
        pass

    def deregister_managed_instance(self, InstanceId: str) -> DeregisterManagedInstanceResult:
        r"""Removes the server or virtual machine from the list of registered servers. You can reregister the instance again at any time. If you don't plan to use Run Command on the server, we suggest uninstalling SSM Agent first.

        :param self:
        :param InstanceId:  The ID assigned to the managed instance when you registered it using the activation process. <br/>
        :return:         """
        pass

    def deregister_patch_baseline_for_patch_group(self, PatchGroup: str, BaselineId: str) -> DeregisterPatchBaselineForPatchGroupResult:
        r"""Removes a patch group from a patch baseline.

        :param self:
        :param PatchGroup:  The name of the patch group that should be deregistered from the patch baseline.<br/>BaselineId:  The ID of the patch baseline to deregister the patch group from.<br/>
        :return: PatchGroup:  The name of the patch group deregistered from the patch baseline.<br/>BaselineId:  The ID of the patch baseline the patch group was deregistered from.<br/>        """
        pass

    def deregister_target_from_maintenance_window(self, WindowTargetId: str, WindowId: str, Safe: Boolean=None) -> DeregisterTargetFromMaintenanceWindowResult:
        r"""Removes a target from a maintenance window.

        :param self:
        :param Safe:  The system checks if the target is being referenced by a task. If the target is being referenced, the system returns an error and does not deregister the target from the maintenance window.<br/>WindowTargetId:  The ID of the target definition to remove.<br/>WindowId:  The ID of the maintenance window the target should be removed from.<br/>
        :return: WindowTargetId:  The ID of the removed target definition.<br/>WindowId:  The ID of the maintenance window the target was removed from.<br/>        """
        pass

    def deregister_task_from_maintenance_window(self, WindowTaskId: str, WindowId: str) -> DeregisterTaskFromMaintenanceWindowResult:
        r"""Removes a task from a maintenance window.

        :param self:
        :param WindowTaskId:  The ID of the task to remove from the maintenance window.<br/>WindowId:  The ID of the maintenance window the task should be removed from.<br/>
        :return: WindowTaskId:  The ID of the task removed from the maintenance window.<br/>WindowId:  The ID of the maintenance window the task was removed from.<br/>        """
        pass

    def describe_activations(self, Filters: List[DescribeActivationsFilter]=None, MaxResults: int=None, NextToken: str=None) -> DescribeActivationsResult:
        r"""Describes details about the activation, such as the date and time the activation was created, its expiration date, the IAM role assigned to the instances in the activation, and the number of instances registered by using this activation.

        :param self:
        :param NextToken:  A token to start the list. Use this token to get the next set of results. <br/>MaxResults:  The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.<br/>Filters:  A filter to view information about your activations.<br/>
        :return: NextToken:  The token for the next set of items to return. Use this token to get the next set of results. <br/>ActivationList:  A list of activations for your AWS account.<br/>        """
        pass

    def describe_association(self, Name: str=None, InstanceId: str=None, AssociationId: str=None, AssociationVersion: str=None) -> DescribeAssociationResult:
        r"""Describes the association for the specified target or instance. If you created the association by using the <code>Targets</code> parameter, then you must retrieve the association by using the association ID. If you created the association by specifying an instance ID and a Systems Manager document, then you retrieve the association by specifying the document name and the instance ID. 

        :param self:
        :param AssociationVersion:  Specify the association version to retrieve. To view the latest version, either specify <code>$LATEST</code> for this parameter, or omit this parameter. To view a list of all associations for an instance, use <a>ListAssociations</a>. To get a list of versions for a specific association, use <a>ListAssociationVersions</a>. <br/>AssociationId:  The association ID for which you want information.<br/>InstanceId:  The instance ID.<br/>Name:  The name of the Systems Manager document.<br/>
        :return: AssociationDescription:  Information about the association.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetLocations</i> The combination of AWS Regions and AWS accounts where you want to run the association.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CalendarNames</i> The names or Amazon Resource Names (ARNs) of the Systems Manager Change Calendar type documents your associations are gated under. The associations only run when that Change Calendar is open. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-change-calendar">AWS Systems Manager Change Calendar</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplyOnlyAtCronInterval</i> By default, when you create a new associations, the system runs it immediately after it is created and then according to the schedule you specified. Specify this option if you don't want an association to run immediately after you create it. This parameter is not supported for rate expressions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SyncCompliance</i> The mode for generating association compliance. You can specify <code>AUTO</code> or <code>MANUAL</code>. In <code>AUTO</code> mode, the system uses the status of the association execution to determine the compliance status. If the association execution runs successfully, then the association is <code>COMPLIANT</code>. If the association execution doesn't run successfully, the association is <code>NON-COMPLIANT</code>. In <code>MANUAL</code> mode, you must specify the <code>AssociationId</code> as a parameter for the <a>PutComplianceItems</a> API action. In this case, compliance data is not managed by State Manager. It is managed by your direct call to the <a>PutComplianceItems</a> API action. By default, all associations use <code>AUTO</code> mode.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ComplianceSeverity</i> The severity level that is assigned to the association.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxConcurrency</i> The maximum number of targets allowed to run the association at the same time. You can specify a number, for example 10, or a percentage of the target set, for example 10%. The default value is 100%, which means all targets run the association at the same time. If a new instance starts and attempts to run an association while Systems Manager is running MaxConcurrency associations, the association is allowed to run. During the next association interval, the new instance will process its association within the limit specified for MaxConcurrency.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxErrors</i> The number of errors that are allowed before the system stops sending requests to run the association on additional targets. You can specify either an absolute number of errors, for example 10, or a percentage of the target set, for example 10%. If you specify 3, for example, the system stops sending requests when the fourth error is received. If you specify 0, then the system stops sending requests after the first error is returned. If you run an association on 50 instances and set MaxError to 10%, then the system stops sending the request when the sixth error is received. Executions that are already running an association when MaxErrors is reached are allowed to complete, but some of these executions may fail as well. If you need to ensure that there won't be more than max-errors failed executions, set MaxConcurrency to 1 so that executions proceed one at a time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociationName</i> The association name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastSuccessfulExecutionDate</i> The last date on which the association was successfully run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastExecutionDate</i> The date on which the association was last run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OutputLocation</i> An S3 bucket where you want to store the output details of the request.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>OutputLocation</b>: An S3 bucket where you want to store the output details of the request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ScheduleExpression</i> A cron expression that specifies a schedule when the association runs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Targets</i> The instances targeted by the request. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociationId</i> The association ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Parameters</i> A description of the parameters for a document. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomationTargetParameterName</i> Specify the target for the association. This target is required for associations that use an Automation document and target resources by using rate controls.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DocumentVersion</i> The document version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Overview</i> Information about the association.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Overview</b>: Information about the association.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The association status.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Status</b>: The association status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdateAssociationDate</i> The date when the association was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Date</i> The date when the association was made.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociationVersion</i> The association version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceId</i> The ID of the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the Systems Manager document.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AdditionalInfo</i> A user-defined string.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> The reason for the status.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The status.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Date</i> The date when the status changed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociationStatusAggregatedCount</i> Returns the number of targets for the association status. For example, if you created an association with two instances, and one of them was successful, this would return the count of instances by status.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DetailedStatus</i> A detailed status of the association.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the association. Status can be: Pending, Success, or Failed.<br/>An S3 bucket where you want to store the results of this request.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3Location</b>: An S3 bucket where you want to store the results of this request.        """
        pass

    def describe_association_execution_targets(self, ExecutionId: str, AssociationId: str, Filters: List[AssociationExecutionTargetsFilter]=None, MaxResults: int=None, NextToken: str=None) -> DescribeAssociationExecutionTargetsResult:
        r"""Use this API action to view information about a specific execution of a specific association.

        :param self:
        :param NextToken:  A token to start the list. Use this token to get the next set of results. <br/>MaxResults:  The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.<br/>Filters:  Filters for the request. You can specify the following filters and values. Status (EQUAL) ResourceId (EQUAL) ResourceType (EQUAL)<br/>ExecutionId:  The execution ID for which you want to view details.<br/>AssociationId:  The association ID that includes the execution for which you want to view details.<br/>
        :return: NextToken:  The token for the next set of items to return. Use this token to get the next set of results.<br/>AssociationExecutionTargets:  Information about the execution.<br/>        """
        pass

    def describe_association_executions(self, AssociationId: str, Filters: List[AssociationExecutionFilter]=None, MaxResults: int=None, NextToken: str=None) -> DescribeAssociationExecutionsResult:
        r"""Use this API action to view all executions for a specific association ID. 

        :param self:
        :param NextToken:  A token to start the list. Use this token to get the next set of results. <br/>MaxResults:  The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.<br/>Filters:  Filters for the request. You can specify the following filters and values. ExecutionId (EQUAL) Status (EQUAL) CreatedTime (EQUAL, GREATER_THAN, LESS_THAN)<br/>AssociationId:  The association ID for which you want to view execution history details.<br/>
        :return: NextToken:  The token for the next set of items to return. Use this token to get the next set of results.<br/>AssociationExecutions:  A list of the executions for the specified association ID.<br/>        """
        pass

    def describe_automation_executions(self, Filters: List[AutomationExecutionFilter]=None, MaxResults: int=None, NextToken: str=None) -> DescribeAutomationExecutionsResult:
        r"""Provides details about all active and terminated Automation executions.

        :param self:
        :param NextToken:  The token for the next set of items to return. (You received this token from a previous call.)<br/>MaxResults:  The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.<br/>Filters:  Filters used to limit the scope of executions that are requested.<br/>
        :return: NextToken:  The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.<br/>AutomationExecutionMetadataList:  The list of details about each automation execution which has occurred which matches the filter specification, if any.<br/>        """
        pass

    def describe_automation_step_executions(self, AutomationExecutionId: str, Filters: List[StepExecutionFilter]=None, NextToken: str=None, MaxResults: int=None, ReverseOrder: Boolean=None) -> DescribeAutomationStepExecutionsResult:
        r"""Information about all active and terminated step executions in an Automation workflow.

        :param self:
        :param ReverseOrder:  Indicates whether to list step executions in reverse order by start time. The default value is 'false'.<br/>MaxResults:  The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.<br/>NextToken:  The token for the next set of items to return. (You received this token from a previous call.)<br/>Filters:  One or more filters to limit the number of step executions returned by the request.<br/>AutomationExecutionId:  The Automation execution ID for which you want step execution descriptions.<br/>
        :return: NextToken:  The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.<br/>StepExecutions:  A list of details about the current state of all steps that make up an execution.<br/>        """
        pass

    def describe_available_patches(self, Filters: List[PatchOrchestratorFilter]=None, MaxResults: int=None, NextToken: str=None) -> DescribeAvailablePatchesResult:
        r"""Lists all patches eligible to be included in a patch baseline.

        :param self:
        :param NextToken:  The token for the next set of items to return. (You received this token from a previous call.)<br/>MaxResults:  The maximum number of patches to return (per page).<br/>Filters:  Filters used to scope down the returned patches.<br/>
        :return: NextToken:  The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.<br/>Patches:  An array of patches. Each entry in the array is a patch structure.<br/>        """
        pass

    def describe_document(self, Name: str, DocumentVersion: str=None, VersionName: str=None) -> DescribeDocumentResult:
        r"""Describes the specified Systems Manager document.

        :param self:
        :param VersionName:  An optional field specifying the version of the artifact associated with the document. For example, "Release 12, Update 6". This value is unique across all versions of a document, and cannot be changed.<br/>DocumentVersion:  The document version for which you want information. Can be a specific version or the default version.<br/>Name:  The name of the Systems Manager document.<br/>
        :return: Document:  Information about the Systems Manager document.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReviewStatus</i> The current status of the review.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingReviewVersion</i> The version of the document that is currently under review.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApprovedVersion</i> The version of the document currently approved for use in the organization.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReviewInformation</i> Details about the review of a document.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Author</i> The user in your organization who created the document.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Requires</i> A list of SSM documents required by a document. For example, an <code>ApplicationConfiguration</code> document requires an <code>ApplicationConfigurationSchema</code> document.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AttachmentsInformation</i> Details about the document attachments, including names, locations, sizes, and so on.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The tags, or metadata, that have been applied to the document.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetType</i> The target type which defines the kinds of resources the document can run on. For example, /AWS::EC2::Instance. For a list of valid resource types, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html">AWS resource and property types reference</a> in the <i>AWS CloudFormation User Guide</i>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DocumentFormat</i> The document format, either JSON or YAML.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultVersion</i> The default version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestVersion</i> The latest version of the document.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SchemaVersion</i> The schema version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DocumentType</i> The type of document.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PlatformTypes</i> The list of OS platforms compatible with this Systems Manager document. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Parameters</i> A description of the parameters for a document.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A description of the document. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DocumentVersion</i> The document version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusInformation</i> A message returned by AWS Systems Manager that explains the <code>Status</code> value. For example, a <code>Failed</code> status might be explained by the <code>StatusInformation</code> message, "The specified S3 bucket does not exist. Verify that the URL of the S3 bucket is correct."<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the Systems Manager document.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedDate</i> The date when the document was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Owner</i> The AWS user account that created the document.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VersionName</i> The version of the artifact associated with the document.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DisplayName</i> The friendly name of the Systems Manager document. This value can differ for each version of the document. If you want to update this value, see <a>UpdateDocument</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the Systems Manager document.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HashType</i> The hash type of the document. Valid values include <code>Sha256</code> or <code>Sha1</code>. <note> Sha1 hashes have been deprecated. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Hash</i> The Sha256 or Sha1 hash created by the system when the document was created.  <note> Sha1 hashes have been deprecated. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Sha1</i> The SHA1 hash of the document, which you can use for verification.<br/>        """
        pass

    def describe_document_permission(self, PermissionType: str, Name: str, MaxResults: int=None, NextToken: str=None) -> DescribeDocumentPermissionResponse:
        r"""Describes the permissions for a Systems Manager document. If you created the document, you are the owner. If a document is shared, it can either be shared privately (by specifying a user's AWS account ID) or publicly (<i>All</i>). 

        :param self:
        :param NextToken:  The token for the next set of items to return. (You received this token from a previous call.)<br/>MaxResults:  The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.<br/>PermissionType:  The permission type for the document. The permission type can be <i>Share</i>.<br/>Name:  The name of the document for which you are the owner.<br/>
        :return: NextToken:  The token for the next set of items to return. Use this token to get the next set of results.<br/>AccountSharingInfoList:  A list of AWS accounts where the current document is shared and the version shared with each account.<br/>AccountIds:  The account IDs that have permission to use this document. The ID can be either an AWS account or <i>All</i>.<br/>        """
        pass

    def describe_effective_instance_associations(self, InstanceId: str, MaxResults: int=None, NextToken: str=None) -> DescribeEffectiveInstanceAssociationsResult:
        r"""All associations for the instance(s).

        :param self:
        :param NextToken:  The token for the next set of items to return. (You received this token from a previous call.)<br/>MaxResults:  The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.<br/>InstanceId:  The instance ID for which you want to view all associations.<br/>
        :return: NextToken:  The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.<br/>Associations:  The associations for the requested instance.<br/>        """
        pass

    def describe_effective_patches_for_patch_baseline(self, BaselineId: str, MaxResults: int=None, NextToken: str=None) -> DescribeEffectivePatchesForPatchBaselineResult:
        r"""Retrieves the current effective patches (the patch and the approval state) for the specified patch baseline. Note that this API applies only to Windows patch baselines.

        :param self:
        :param NextToken:  The token for the next set of items to return. (You received this token from a previous call.)<br/>MaxResults:  The maximum number of patches to return (per page).<br/>BaselineId:  The ID of the patch baseline to retrieve the effective patches for.<br/>
        :return: NextToken:  The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.<br/>EffectivePatches:  An array of patches and patch status.<br/>        """
        pass

    def describe_instance_associations_status(self, InstanceId: str, MaxResults: int=None, NextToken: str=None) -> DescribeInstanceAssociationsStatusResult:
        r"""The status of the associations for the instance(s).

        :param self:
        :param NextToken:  The token for the next set of items to return. (You received this token from a previous call.)<br/>MaxResults:  The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.<br/>InstanceId:  The instance IDs for which you want association status information.<br/>
        :return: NextToken:  The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.<br/>InstanceAssociationStatusInfos:  Status information about the association.<br/>        """
        pass

    def describe_instance_information(self, InstanceInformationFilterList: List[InstanceInformationFilter]=None, Filters: List[InstanceInformationStringFilter]=None, MaxResults: int=None, NextToken: str=None) -> DescribeInstanceInformationResult:
        r"""Describes one or more of your instances, including information about the operating system platform, the version of SSM Agent installed on the instance, instance status, and so on. If you specify one or more instance IDs, it returns information for those instances. If you do not specify instance IDs, it returns information for all your instances. If you specify an instance ID that is not valid or an instance that you do not own, you receive an error. <note> The IamRole field for this API action is the Amazon Identity and Access Management (IAM) role assigned to on-premises instances. This call does not return the IAM role for EC2 instances. </note>

        :param self:
        :param NextToken:  The token for the next set of items to return. (You received this token from a previous call.)<br/>MaxResults:  The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results. <br/>Filters:  One or more filters. Use a filter to return a more specific list of instances. You can filter based on tags applied to EC2 instances. Use this <code>Filters</code> data type instead of <code>InstanceInformationFilterList</code>, which is deprecated.<br/>InstanceInformationFilterList:  This is a legacy method. We recommend that you don't use this method. Instead, use the <code>Filters</code> data type. <code>Filters</code> enables you to return instance information by filtering based on tags applied to managed instances. <note> Attempting to use <code>InstanceInformationFilterList</code> and <code>Filters</code> leads to an exception error.  </note><br/>
        :return: NextToken:  The token to use when requesting the next set of items. If there are no additional items to return, the string is empty. <br/>InstanceInformationList:  The instance information list.<br/>        """
        pass

    def describe_instance_patch_states(self, InstanceIds: List[InstanceId], NextToken: str=None, MaxResults: int=None) -> DescribeInstancePatchStatesResult:
        r"""Retrieves the high-level patch state of one or more instances.

        :param self:
        :param MaxResults:  The maximum number of instances to return (per page).<br/>NextToken:  The token for the next set of items to return. (You received this token from a previous call.)<br/>InstanceIds:  The ID of the instance whose patch state information should be retrieved.<br/>
        :return: NextToken:  The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.<br/>InstancePatchStates:  The high-level patch state for the requested instances.<br/>        """
        pass

    def describe_instance_patch_states_for_patch_group(self, PatchGroup: str, Filters: List[InstancePatchStateFilter]=None, NextToken: str=None, MaxResults: int=None) -> DescribeInstancePatchStatesForPatchGroupResult:
        r"""Retrieves the high-level patch state for the instances in the specified patch group.

        :param self:
        :param MaxResults:  The maximum number of patches to return (per page).<br/>NextToken:  The token for the next set of items to return. (You received this token from a previous call.)<br/>Filters:  Each entry in the array is a structure containing: Key (string between 1 and 200 characters)  Values (array containing a single string)  Type (string "Equal", "NotEqual", "LessThan", "GreaterThan")<br/>PatchGroup:  The name of the patch group for which the patch state information should be retrieved.<br/>
        :return: NextToken:  The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.<br/>InstancePatchStates:  The high-level patch state for the requested instances. <br/>        """
        pass

    def describe_instance_patches(self, InstanceId: str, Filters: List[PatchOrchestratorFilter]=None, NextToken: str=None, MaxResults: int=None) -> DescribeInstancePatchesResult:
        r"""Retrieves information about the patches on the specified instance and their state relative to the patch baseline being used for the instance.

        :param self:
        :param MaxResults:  The maximum number of patches to return (per page).<br/>NextToken:  The token for the next set of items to return. (You received this token from a previous call.)<br/>Filters:  An array of structures. Each entry in the array is a structure containing a Key, Value combination. Valid values for Key are <code>Classification</code> | <code>KBId</code> | <code>Severity</code> | <code>State</code>.<br/>InstanceId:  The ID of the instance whose patch state information should be retrieved.<br/>
        :return: NextToken:  The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.<br/>Patches:  Each entry in the array is a structure containing: Title (string) KBId (string) Classification (string) Severity (string) State (string, such as "INSTALLED" or "FAILED") InstalledTime (DateTime) InstalledBy (string)<br/>        """
        pass

    def describe_inventory_deletions(self, DeletionId: str=None, NextToken: str=None, MaxResults: int=None) -> DescribeInventoryDeletionsResult:
        r"""Describes a specific delete inventory operation.

        :param self:
        :param MaxResults:  The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.<br/>NextToken:  A token to start the list. Use this token to get the next set of results. <br/>DeletionId:  Specify the delete inventory ID for which you want information. This ID was returned by the <code>DeleteInventory</code> action.<br/>
        :return: NextToken:  The token for the next set of items to return. Use this token to get the next set of results.<br/>InventoryDeletions:  A list of status items for deleted inventory.<br/>        """
        pass

    def describe_maintenance_window_execution_task_invocations(self, TaskId: str, WindowExecutionId: str, Filters: List[MaintenanceWindowFilter]=None, MaxResults: int=None, NextToken: str=None) -> DescribeMaintenanceWindowExecutionTaskInvocationsResult:
        r"""Retrieves the individual task executions (one per target) for a particular task run as part of a maintenance window execution.

        :param self:
        :param NextToken:  The token for the next set of items to return. (You received this token from a previous call.)<br/>MaxResults:  The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.<br/>Filters:  Optional filters used to scope down the returned task invocations. The supported filter key is STATUS with the corresponding values PENDING, IN_PROGRESS, SUCCESS, FAILED, TIMED_OUT, CANCELLING, and CANCELLED.<br/>TaskId:  The ID of the specific task in the maintenance window task that should be retrieved.<br/>WindowExecutionId:  The ID of the maintenance window execution the task is part of.<br/>
        :return: NextToken:  The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.<br/>WindowExecutionTaskInvocationIdentities:  Information about the task invocation results per invocation.<br/>        """
        pass

    def describe_maintenance_window_execution_tasks(self, WindowExecutionId: str, Filters: List[MaintenanceWindowFilter]=None, MaxResults: int=None, NextToken: str=None) -> DescribeMaintenanceWindowExecutionTasksResult:
        r"""For a given maintenance window execution, lists the tasks that were run.

        :param self:
        :param NextToken:  The token for the next set of items to return. (You received this token from a previous call.)<br/>MaxResults:  The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.<br/>Filters:  Optional filters used to scope down the returned tasks. The supported filter key is STATUS with the corresponding values PENDING, IN_PROGRESS, SUCCESS, FAILED, TIMED_OUT, CANCELLING, and CANCELLED. <br/>WindowExecutionId:  The ID of the maintenance window execution whose task executions should be retrieved.<br/>
        :return: NextToken:  The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.<br/>WindowExecutionTaskIdentities:  Information about the task executions.<br/>        """
        pass

    def describe_maintenance_window_executions(self, WindowId: str, Filters: List[MaintenanceWindowFilter]=None, MaxResults: int=None, NextToken: str=None) -> DescribeMaintenanceWindowExecutionsResult:
        r"""Lists the executions of a maintenance window. This includes information about when the maintenance window was scheduled to be active, and information about tasks registered and run with the maintenance window.

        :param self:
        :param NextToken:  The token for the next set of items to return. (You received this token from a previous call.)<br/>MaxResults:  The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.<br/>Filters:  Each entry in the array is a structure containing: Key (string, between 1 and 128 characters) Values (array of strings, each string is between 1 and 256 characters) The supported Keys are ExecutedBefore and ExecutedAfter with the value being a date/time string such as 2016-11-04T05:00:00Z.<br/>WindowId:  The ID of the maintenance window whose executions should be retrieved.<br/>
        :return: NextToken:  The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.<br/>WindowExecutions:  Information about the maintenance window executions.<br/>        """
        pass

    def describe_maintenance_window_schedule(self, WindowId: str=None, Targets: List[Target]=None, ResourceType: str=None, Filters: List[PatchOrchestratorFilter]=None, MaxResults: int=None, NextToken: str=None) -> DescribeMaintenanceWindowScheduleResult:
        r"""Retrieves information about upcoming executions of a maintenance window.

        :param self:
        :param NextToken:  The token for the next set of items to return. (You received this token from a previous call.)<br/>MaxResults:  The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.<br/>Filters:  Filters used to limit the range of results. For example, you can limit maintenance window executions to only those scheduled before or after a certain date and time.<br/>ResourceType:  The type of resource you want to retrieve information about. For example, "INSTANCE".<br/>Targets:  The instance ID or key/value pair to retrieve information about.<br/>WindowId:  The ID of the maintenance window to retrieve information about.<br/>
        :return: NextToken:  The token for the next set of items to return. (You use this token in the next call.)<br/>ScheduledWindowExecutions:  Information about maintenance window executions scheduled for the specified time range.<br/>        """
        pass

    def describe_maintenance_window_targets(self, WindowId: str, Filters: List[MaintenanceWindowFilter]=None, MaxResults: int=None, NextToken: str=None) -> DescribeMaintenanceWindowTargetsResult:
        r"""Lists the targets registered with the maintenance window.

        :param self:
        :param NextToken:  The token for the next set of items to return. (You received this token from a previous call.)<br/>MaxResults:  The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.<br/>Filters:  Optional filters that can be used to narrow down the scope of the returned window targets. The supported filter keys are Type, WindowTargetId and OwnerInformation.<br/>WindowId:  The ID of the maintenance window whose targets should be retrieved.<br/>
        :return: NextToken:  The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.<br/>Targets:  Information about the targets in the maintenance window.<br/>        """
        pass

    def describe_maintenance_window_tasks(self, WindowId: str, Filters: List[MaintenanceWindowFilter]=None, MaxResults: int=None, NextToken: str=None) -> DescribeMaintenanceWindowTasksResult:
        r"""Lists the tasks in a maintenance window. <note> For maintenance window tasks without a specified target, you cannot supply values for <code>--max-errors</code> and <code>--max-concurrency</code>. Instead, the system inserts a placeholder value of <code>1</code>, which may be reported in the response to this command. These values do not affect the running of your task and can be ignored. </note>

        :param self:
        :param NextToken:  The token for the next set of items to return. (You received this token from a previous call.)<br/>MaxResults:  The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.<br/>Filters:  Optional filters used to narrow down the scope of the returned tasks. The supported filter keys are WindowTaskId, TaskArn, Priority, and TaskType.<br/>WindowId:  The ID of the maintenance window whose tasks should be retrieved.<br/>
        :return: NextToken:  The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.<br/>Tasks:  Information about the tasks in the maintenance window.<br/>        """
        pass

    def describe_maintenance_windows(self, Filters: List[MaintenanceWindowFilter]=None, MaxResults: int=None, NextToken: str=None) -> DescribeMaintenanceWindowsResult:
        r"""Retrieves the maintenance windows in an AWS account.

        :param self:
        :param NextToken:  The token for the next set of items to return. (You received this token from a previous call.)<br/>MaxResults:  The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.<br/>Filters:  Optional filters used to narrow down the scope of the returned maintenance windows. Supported filter keys are <b>Name</b> and <b>Enabled</b>.<br/>
        :return: NextToken:  The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.<br/>WindowIdentities:  Information about the maintenance windows.<br/>        """
        pass

    def describe_maintenance_windows_for_target(self, ResourceType: str, Targets: List[Target], MaxResults: int=None, NextToken: str=None) -> DescribeMaintenanceWindowsForTargetResult:
        r"""Retrieves information about the maintenance window targets or tasks that an instance is associated with.

        :param self:
        :param NextToken:  The token for the next set of items to return. (You received this token from a previous call.)<br/>MaxResults:  The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.<br/>ResourceType:  The type of resource you want to retrieve information about. For example, "INSTANCE".<br/>Targets:  The instance ID or key/value pair to retrieve information about.<br/>
        :return: NextToken:  The token for the next set of items to return. (You use this token in the next call.)<br/>WindowIdentities:  Information about the maintenance window targets and tasks an instance is associated with.<br/>        """
        pass

    def describe_ops_items(self, OpsItemFilters: List[OpsItemFilter]=None, MaxResults: int=None, NextToken: str=None) -> DescribeOpsItemsResponse:
        r"""Query a set of OpsItems. You must have permission in AWS Identity and Access Management (IAM) to query a list of OpsItems. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-getting-started.html">Getting started with OpsCenter</a> in the <i>AWS Systems Manager User Guide</i>. Operations engineers and IT professionals use OpsCenter to view, investigate, and remediate operational issues impacting the performance and health of their AWS resources. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter.html">AWS Systems Manager OpsCenter</a> in the <i>AWS Systems Manager User Guide</i>. 

        :param self:
        :param NextToken:  A token to start the list. Use this token to get the next set of results.<br/>MaxResults:  The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.<br/>OpsItemFilters:  One or more filters to limit the response. <ul> <li> Key: CreatedTime Operations: GreaterThan, LessThan </li> <li> Key: LastModifiedBy Operations: Contains, Equals </li> <li> Key: LastModifiedTime Operations: GreaterThan, LessThan </li> <li> Key: Priority Operations: Equals </li> <li> Key: Source Operations: Contains, Equals </li> <li> Key: Status Operations: Equals </li> <li> Key: Title Operations: Contains </li> <li> Key: OperationalData* Operations: Equals </li> <li> Key: OperationalDataKey Operations: Equals </li> <li> Key: OperationalDataValue Operations: Equals, Contains </li> <li> Key: OpsItemId Operations: Equals </li> <li> Key: ResourceId Operations: Contains </li> <li> Key: AutomationId Operations: Equals </li> </ul> *If you filter the response by using the OperationalData operator, specify a key-value pair by using the following JSON format: {"key":"key_name","value":"a_value"}<br/>
        :return: OpsItemSummaries:  A list of OpsItems.<br/>NextToken:  The token for the next set of items to return. Use this token to get the next set of results.<br/>        """
        pass

    def describe_parameters(self, Filters: List[ParametersFilter]=None, ParameterFilters: List[ParameterStringFilter]=None, MaxResults: int=None, NextToken: str=None) -> DescribeParametersResult:
        r"""Get information about a parameter. <note> Request results are returned on a best-effort basis. If you specify <code>MaxResults</code> in the request, the response includes information up to the limit specified. The number of items returned, however, can be between zero and the value of <code>MaxResults</code>. If the service reaches an internal limit while processing the results, it stops the operation and returns the matching values up to that point and a <code>NextToken</code>. You can specify the <code>NextToken</code> in a subsequent call to get the next set of results. </note>

        :param self:
        :param NextToken:  The token for the next set of items to return. (You received this token from a previous call.)<br/>MaxResults:  The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.<br/>ParameterFilters:  Filters to limit the request results.<br/>Filters:  This data type is deprecated. Instead, use <code>ParameterFilters</code>.<br/>
        :return: NextToken:  The token to use when requesting the next set of items.<br/>Parameters:  Parameters returned by the request.<br/>        """
        pass

    def describe_patch_baselines(self, Filters: List[PatchOrchestratorFilter]=None, MaxResults: int=None, NextToken: str=None) -> DescribePatchBaselinesResult:
        r"""Lists the patch baselines in your AWS account.

        :param self:
        :param NextToken:  The token for the next set of items to return. (You received this token from a previous call.)<br/>MaxResults:  The maximum number of patch baselines to return (per page).<br/>Filters:  Each element in the array is a structure containing:  Key: (string, "NAME_PREFIX" or "OWNER") Value: (array of strings, exactly 1 entry, between 1 and 255 characters)<br/>
        :return: NextToken:  The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.<br/>BaselineIdentities:  An array of PatchBaselineIdentity elements.<br/>        """
        pass

    def describe_patch_group_state(self, PatchGroup: str) -> DescribePatchGroupStateResult:
        r"""Returns high-level aggregated patch compliance state for a patch group.

        :param self:
        :param PatchGroup:  The name of the patch group whose patch snapshot should be retrieved.<br/>
        :return: InstancesWithOtherNonCompliantPatches:  The number of instances with patches installed that are specified as other than "Critical" or "Security" but are not compliant with the patch baseline. The status of these instances is NON_COMPLIANT.<br/>InstancesWithSecurityNonCompliantPatches:  The number of instances where patches that are specified as "Security" in a patch advisory are not installed. These patches might be missing, have failed installation, were rejected, or were installed but awaiting a required instance reboot. The status of these instances is <code>NON_COMPLIANT</code>.<br/>InstancesWithCriticalNonCompliantPatches:  The number of instances where patches that are specified as "Critical" for compliance reporting in the patch baseline are not installed. These patches might be missing, have failed installation, were rejected, or were installed but awaiting a required instance reboot. The status of these instances is <code>NON_COMPLIANT</code>.<br/>InstancesWithUnreportedNotApplicablePatches:  The number of instances with <code>NotApplicable</code> patches beyond the supported limit, which are not reported by name to Systems Manager Inventory.<br/>InstancesWithNotApplicablePatches:  The number of instances with patches that aren't applicable.<br/>InstancesWithFailedPatches:  The number of instances with patches from the patch baseline that failed to install.<br/>InstancesWithMissingPatches:  The number of instances with missing patches from the patch baseline.<br/>InstancesWithInstalledRejectedPatches:  The number of instances with patches installed that are specified in a RejectedPatches list. Patches with a status of <i>INSTALLED_REJECTED</i> were typically installed before they were added to a RejectedPatches list. <note> If ALLOW_AS_DEPENDENCY is the specified option for RejectedPatchesAction, the value of InstancesWithInstalledRejectedPatches will always be 0 (zero). </note><br/>InstancesWithInstalledPendingRebootPatches:  The number of instances with patches installed by Patch Manager that have not been rebooted after the patch installation. The status of these instances is NON_COMPLIANT.<br/>InstancesWithInstalledOtherPatches:  The number of instances with patches installed that aren't defined in the patch baseline.<br/>InstancesWithInstalledPatches:  The number of instances with installed patches.<br/>Instances:  The number of instances in the patch group.<br/>        """
        pass

    def describe_patch_groups(self, MaxResults: int=None, Filters: List[PatchOrchestratorFilter]=None, NextToken: str=None) -> DescribePatchGroupsResult:
        r"""Lists all patch groups that have been registered with patch baselines.

        :param self:
        :param NextToken:  The token for the next set of items to return. (You received this token from a previous call.)<br/>Filters:  One or more filters. Use a filter to return a more specific list of results. For <code>DescribePatchGroups</code>,valid filter keys include the following: <ul> <li>  <code>NAME_PREFIX</code>: The name of the patch group. Wildcards (*) are accepted. </li> <li>  <code>OPERATING_SYSTEM</code>: The supported operating system type to return results for. For valid operating system values, see <a>GetDefaultPatchBaselineRequest$OperatingSystem</a> in <a>CreatePatchBaseline</a>. Examples: <ul> <li>  <code>--filters Key=NAME_PREFIX,Values=MyPatchGroup*</code>  </li> <li>  <code>--filters Key=OPERATING_SYSTEM,Values=AMAZON_LINUX_2</code>  </li> </ul> </li> </ul><br/>MaxResults:  The maximum number of patch groups to return (per page).<br/>
        :return: NextToken:  The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.<br/>Mappings:  Each entry in the array contains: PatchGroup: string (between 1 and 256 characters, Regex: ^([\p{L}\p{Z}\p{N}_.:/=+\-@]*)$) PatchBaselineIdentity: A PatchBaselineIdentity element. <br/>        """
        pass

    def describe_patch_properties(self, Property: str, OperatingSystem: str, PatchSet: str=None, MaxResults: int=None, NextToken: str=None) -> DescribePatchPropertiesResult:
        r"""Lists the properties of available patches organized by product, product family, classification, severity, and other properties of available patches. You can use the reported properties in the filters you specify in requests for actions such as <a>CreatePatchBaseline</a>, <a>UpdatePatchBaseline</a>, <a>DescribeAvailablePatches</a>, and <a>DescribePatchBaselines</a>. The following section lists the properties that can be used in filters for each major operating system type: <dl> <dt>AMAZON_LINUX</dt> <dd> Valid properties: PRODUCT, CLASSIFICATION, SEVERITY </dd> <dt>AMAZON_LINUX_2</dt> <dd> Valid properties: PRODUCT, CLASSIFICATION, SEVERITY </dd> <dt>CENTOS</dt> <dd> Valid properties: PRODUCT, CLASSIFICATION, SEVERITY </dd> <dt>DEBIAN</dt> <dd> Valid properties: PRODUCT, PRIORITY </dd> <dt>MACOS</dt> <dd> Valid properties: PRODUCT, CLASSIFICATION </dd> <dt>ORACLE_LINUX</dt> <dd> Valid properties: PRODUCT, CLASSIFICATION, SEVERITY </dd> <dt>REDHAT_ENTERPRISE_LINUX</dt> <dd> Valid properties: PRODUCT, CLASSIFICATION, SEVERITY </dd> <dt>SUSE</dt> <dd> Valid properties: PRODUCT, CLASSIFICATION, SEVERITY </dd> <dt>UBUNTU</dt> <dd> Valid properties: PRODUCT, PRIORITY </dd> <dt>WINDOWS</dt> <dd> Valid properties: PRODUCT, PRODUCT_FAMILY, CLASSIFICATION, MSRC_SEVERITY </dd> </dl>

        :param self:
        :param NextToken:  The token for the next set of items to return. (You received this token from a previous call.)<br/>MaxResults:  The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.<br/>PatchSet:  Indicates whether to list patches for the Windows operating system or for Microsoft applications. Not applicable for the Linux or macOS operating systems.<br/>Property:  The patch property for which you want to view patch details. <br/>OperatingSystem:  The operating system type for which to list patches.<br/>
        :return: NextToken:  The token for the next set of items to return. (You use this token in the next call.)<br/>Properties:  A list of the properties for patches matching the filter request parameters.<br/>        """
        pass

    def describe_sessions(self, State: str, MaxResults: int=None, NextToken: str=None, Filters: List[SessionFilter]=None) -> DescribeSessionsResponse:
        r"""Retrieves a list of all active sessions (both connected and disconnected) or terminated sessions from the past 30 days.

        :param self:
        :param Filters:  One or more filters to limit the type of sessions returned by the request.<br/>NextToken:  The token for the next set of items to return. (You received this token from a previous call.)<br/>MaxResults:  The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.<br/>State:  The session status to retrieve a list of sessions for. For example, "Active".<br/>
        :return: NextToken:  The token for the next set of items to return. (You received this token from a previous call.)<br/>Sessions:  A list of sessions meeting the request parameters.<br/>        """
        pass

    def disassociate_ops_item_related_item(self, AssociationId: str, OpsItemId: str) -> DisassociateOpsItemRelatedItemResponse:
        r"""Deletes the association between an OpsItem and a related resource. For example, this API action can delete an Incident Manager incident from an OpsItem. Incident Manager is a capability of AWS Systems Manager.

        :param self:
        :param AssociationId:  The ID of the association for which you want to delete an association between the OpsItem and a related resource.<br/>OpsItemId:  The ID of the OpsItem for which you want to delete an association between the OpsItem and a related resource.<br/>
        :return:         """
        pass

    def get_automation_execution(self, AutomationExecutionId: str) -> GetAutomationExecutionResult:
        r"""Get detailed information about a particular Automation execution.

        :param self:
        :param AutomationExecutionId:  The unique identifier for an existing automation execution to examine. The execution ID is returned by StartAutomationExecution when the execution of an Automation document is initiated.<br/>
        :return: AutomationExecution:  Detailed information about the current state of an automation execution.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ChangeRequestName</i> The name of the Change Manager change request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociationId</i> The ID of a State Manager association used in the Automation operation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OpsItemId</i> The ID of an OpsItem that is created to represent a Change Manager change request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Runbooks</i> Information about the Automation runbooks (Automation documents) that are run as part of a runbook workflow. <note> The Automation runbooks specified for the runbook workflow can't run until all required approvals for the change request have been received. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ScheduledTime</i> The date and time the Automation operation is scheduled to start.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomationSubtype</i> The subtype of the Automation operation. Currently, the only supported value is <code>ChangeRequest</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProgressCounters</i> An aggregate of step execution statuses displayed in the AWS Console for a multi-Region and multi-account Automation execution.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ProgressCounters</b>: An aggregate of step execution statuses displayed in the AWS Console for a multi-Region and multi-account Automation execution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetLocations</i> The combination of AWS Regions and/or AWS accounts where you want to run the Automation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Target</i> The target of the execution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxErrors</i> The MaxErrors value specified by the user when the execution started.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxConcurrency</i> The MaxConcurrency value specified by the user when the execution started.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResolvedTargets</i> A list of resolved targets in the rate control execution.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ResolvedTargets</b>: A list of resolved targets in the rate control execution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetMaps</i> The specified key-value mapping of document parameters to target resources.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Targets</i> The specified targets.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetParameterName</i> The parameter name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CurrentAction</i> The action of the step that is currently running.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CurrentStepName</i> The name of the step that is currently running.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExecutedBy</i> The Amazon Resource Name (ARN) of the user who ran the automation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ParentAutomationExecutionId</i> The AutomationExecutionId of the parent automation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Mode</i> The automation execution mode.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FailureMessage</i> A message describing why an execution has failed, if the status is set to Failed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Outputs</i> The list of execution outputs as defined in the automation document.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Parameters</i> The key-value map of execution parameters, which were supplied when calling StartAutomationExecution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StepExecutionsTruncated</i> A boolean value that indicates if the response contains the full list of the Automation step executions. If true, use the DescribeAutomationStepExecutions API action to get the full list of step executions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StepExecutions</i> A list of details about the current state of all steps that comprise an execution. An Automation document contains a list of steps that are run in order.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomationExecutionStatus</i> The execution status of the Automation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExecutionEndTime</i> The time the execution finished.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExecutionStartTime</i> The time the execution started.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DocumentVersion</i> The version of the document to use during execution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DocumentName</i> The name of the Automation document used during the execution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomationExecutionId</i> The execution ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Truncated</i> A boolean value indicating whether the resolved target list is truncated.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ParameterValues</i> A list of parameter values sent to targets that resolved during the Automation execution.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TimedOutSteps</i> The total number of steps that timed out in all specified AWS Regions and accounts for the current Automation execution.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CancelledSteps</i> The total number of steps that the system cancelled in all specified AWS Regions and accounts for the current Automation execution.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FailedSteps</i> The total number of steps that failed to run in all specified AWS Regions and accounts for the current Automation execution.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SuccessSteps</i> The total number of steps that successfully completed in all specified AWS Regions and accounts for the current Automation execution.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalSteps</i> The total number of steps run in all specified AWS Regions and accounts for the current Automation execution.<br/>        """
        pass

    def get_calendar_state(self, CalendarNames: List[CalendarNameOrARN], AtTime: str=None) -> GetCalendarStateResponse:
        r"""Gets the state of the AWS Systems Manager Change Calendar at an optional, specified time. If you specify a time, <code>GetCalendarState</code> returns the state of the calendar at a specific time, and returns the next time that the Change Calendar state will transition. If you do not specify a time, <code>GetCalendarState</code> assumes the current time. Change Calendar entries have two possible states: <code>OPEN</code> or <code>CLOSED</code>. If you specify more than one calendar in a request, the command returns the status of <code>OPEN</code> only if all calendars in the request are open. If one or more calendars in the request are closed, the status returned is <code>CLOSED</code>. For more information about Systems Manager Change Calendar, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-change-calendar.html">AWS Systems Manager Change Calendar</a> in the <i>AWS Systems Manager User Guide</i>.

        :param self:
        :param AtTime:  (Optional) The specific time for which you want to get calendar state information, in <a href="https://en.wikipedia.org/wiki/ISO_8601">ISO 8601</a> format. If you do not add <code>AtTime</code>, the current time is assumed.<br/>CalendarNames:  The names or Amazon Resource Names (ARNs) of the Systems Manager documents that represent the calendar entries for which you want to get the state.<br/>
        :return: NextTransitionTime:  The time, as an <a href="https://en.wikipedia.org/wiki/ISO_8601">ISO 8601</a> string, that the calendar state will change. If the current calendar state is <code>OPEN</code>, <code>NextTransitionTime</code> indicates when the calendar state changes to <code>CLOSED</code>, and vice-versa.<br/>AtTime:  The time, as an <a href="https://en.wikipedia.org/wiki/ISO_8601">ISO 8601</a> string, that you specified in your command. If you did not specify a time, <code>GetCalendarState</code> uses the current time.<br/>State:  The state of the calendar. An <code>OPEN</code> calendar indicates that actions are allowed to proceed, and a <code>CLOSED</code> calendar indicates that actions are not allowed to proceed.<br/>        """
        pass

    def get_command_invocation(self, InstanceId: str, CommandId: str, PluginName: str=None) -> GetCommandInvocationResult:
        r"""Returns detailed information about command execution for an invocation or plugin.  <code>GetCommandInvocation</code> only gives the execution status of a plugin in a document. To get the command execution status on a specific instance, use <a>ListCommandInvocations</a>. To get the command execution status across instances, use <a>ListCommands</a>.

        :param self:
        :param PluginName:  The name of the plugin for which you want detailed results. If the document contains only one plugin, you can omit the name and details for that plugin. If the document contains more than one plugin, you must specify the name of the plugin for which you want to view details. Plugin names are also referred to as <i>step names</i> in Systems Manager documents. For example, <code>aws:RunShellScript</code> is a plugin. To find the <code>PluginName</code>, check the document content and find the name of the plugin. Alternatively, use <a>ListCommandInvocations</a> with the <code>CommandId</code> and <code>Details</code> parameters. The <code>PluginName</code> is the <code>Name</code> attribute of the <code>CommandPlugin</code> object in the <code>CommandPlugins</code> list.<br/>InstanceId:  (Required) The ID of the managed instance targeted by the command. A managed instance can be an Amazon Elastic Compute Cloud (Amazon EC2) instance or an instance in your hybrid environment that is configured for AWS Systems Manager.<br/>CommandId:  (Required) The parent command ID of the invocation plugin.<br/>
        :return: CloudWatchOutputConfig:  CloudWatch Logs information where Systems Manager sent the command output.:<br/>StandardErrorUrl:  The URL for the complete text written by the plugin to <code>stderr</code>. If the command has not finished running, then this string is empty.<br/>StandardErrorContent:  The first 8,000 characters written by the plugin to <code>stderr</code>. If the command has not finished running, then this string is empty.<br/>StandardOutputUrl:  The URL for the complete text written by the plugin to <code>stdout</code> in Amazon Simple Storage Service (Amazon S3). If an S3 bucket was not specified, then this string is empty.<br/>StandardOutputContent:  The first 24,000 characters written by the plugin to <code>stdout</code>. If the command has not finished running, if <code>ExecutionStatus</code> is neither Succeeded nor Failed, then this string is empty.<br/>StatusDetails:  A detailed status of the command execution for an invocation. <code>StatusDetails</code> includes more information than <code>Status</code> because it includes states resulting from error and concurrency control parameters. <code>StatusDetails</code> can show different results than <code>Status</code>. For more information about these statuses, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/monitor-commands.html">Understanding command statuses</a> in the <i>AWS Systems Manager User Guide</i>. <code>StatusDetails</code> can be one of the following values: <ul> <li> Pending: The command has not been sent to the instance. </li> <li> In Progress: The command has been sent to the instance but has not reached a terminal state. </li> <li> Delayed: The system attempted to send the command to the target, but the target was not available. The instance might not be available because of network issues, because the instance was stopped, or for similar reasons. The system will try to send the command again. </li> <li> Success: The command or plugin ran successfully. This is a terminal state. </li> <li> Delivery Timed Out: The command was not delivered to the instance before the delivery timeout expired. Delivery timeouts do not count against the parent command's <code>MaxErrors</code> limit, but they do contribute to whether the parent command status is Success or Incomplete. This is a terminal state. </li> <li> Execution Timed Out: The command started to run on the instance, but the execution was not complete before the timeout expired. Execution timeouts count against the <code>MaxErrors</code> limit of the parent command. This is a terminal state. </li> <li> Failed: The command wasn't run successfully on the instance. For a plugin, this indicates that the result code was not zero. For a command invocation, this indicates that the result code for one or more plugins was not zero. Invocation failures count against the <code>MaxErrors</code> limit of the parent command. This is a terminal state. </li> <li> Canceled: The command was terminated before it was completed. This is a terminal state. </li> <li> Undeliverable: The command can't be delivered to the instance. The instance might not exist or might not be responding. Undeliverable invocations don't count against the parent command's <code>MaxErrors</code> limit and don't contribute to whether the parent command status is Success or Incomplete. This is a terminal state. </li> <li> Terminated: The parent command exceeded its <code>MaxErrors</code> limit and subsequent command invocations were canceled by the system. This is a terminal state. </li> </ul><br/>Status:  The status of this invocation plugin. This status can be different than <code>StatusDetails</code>.<br/>ExecutionEndDateTime:  The date and time the plugin finished running. Date and time are written in ISO 8601 format. For example, June 7, 2017 is represented as 2017-06-7. The following sample AWS CLI command uses the <code>InvokedAfter</code> filter.  <code>aws ssm list-commands --filters key=InvokedAfter,value=2017-06-07T00:00:00Z</code>  If the plugin has not started to run, the string is empty.<br/>ExecutionElapsedTime:  Duration since <code>ExecutionStartDateTime</code>.<br/>ExecutionStartDateTime:  The date and time the plugin started running. Date and time are written in ISO 8601 format. For example, June 7, 2017 is represented as 2017-06-7. The following sample AWS CLI command uses the <code>InvokedBefore</code> filter.  <code>aws ssm list-commands --filters key=InvokedBefore,value=2017-06-07T00:00:00Z</code>  If the plugin has not started to run, the string is empty.<br/>ResponseCode:  The error level response code for the plugin script. If the response code is <code>-1</code>, then the command has not started running on the instance, or it was not received by the instance.<br/>PluginName:  The name of the plugin, or <i>step name</i>, for which details are reported. For example, <code>aws:RunShellScript</code> is a plugin.<br/>DocumentVersion:  The SSM document version used in the request.<br/>DocumentName:  The name of the document that was run. For example, <code>AWS-RunShellScript</code>.<br/>Comment:  The comment text for the command.<br/>InstanceId:  The ID of the managed instance targeted by the command. A managed instance can be an EC2 instance or an instance in your hybrid environment that is configured for Systems Manager.<br/>CommandId:  The parent command ID of the invocation plugin.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudWatchOutputEnabled</i> Enables Systems Manager to send command output to CloudWatch Logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudWatchLogGroupName</i> The name of the CloudWatch log group where you want to send command output. If you don't specify a group name, Systems Manager automatically creates a log group for you. The log group uses the following naming format: aws/ssm/<i>SystemsManagerDocumentName</i>.<br/>        """
        pass

    def get_connection_status(self, Target: str) -> GetConnectionStatusResponse:
        r"""Retrieves the Session Manager connection status for an instance to determine whether it is running and ready to receive Session Manager connections.

        :param self:
        :param Target:  The ID of the instance.<br/>
        :return: Status:  The status of the connection to the instance. For example, 'Connected' or 'Not Connected'.<br/>Target:  The ID of the instance to check connection status. <br/>        """
        pass

    def get_default_patch_baseline(self, OperatingSystem: str=None) -> GetDefaultPatchBaselineResult:
        r"""Retrieves the default patch baseline. Note that Systems Manager supports creating multiple default patch baselines. For example, you can create a default patch baseline for each operating system. If you do not specify an operating system value, the default patch baseline for Windows is returned.

        :param self:
        :param OperatingSystem:  Returns the default patch baseline for the specified operating system.<br/>
        :return: OperatingSystem:  The operating system for the returned patch baseline. <br/>BaselineId:  The ID of the default patch baseline.<br/>        """
        pass

    def get_deployable_patch_snapshot_for_instance(self, SnapshotId: str, InstanceId: str, BaselineOverride: BaselineOverride=None) -> GetDeployablePatchSnapshotForInstanceResult:
        r"""Retrieves the current snapshot for the patch baseline the instance uses. This API is primarily used by the AWS-RunPatchBaseline Systems Manager document. 

        :param self:
        :param BaselineOverride:  Defines the basic information about a patch baseline override.:<br/>SnapshotId:  The user-defined snapshot ID.<br/>InstanceId:  The ID of the instance for which the appropriate patch snapshot should be retrieved.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Sources</i> Information about the patches to use to update the instances, including target operating systems and source repositories. Applies to Linux instances only.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApprovedPatchesEnableNonSecurity</i> Indicates whether the list of approved patches includes non-security updates that should be applied to the instances. The default value is 'false'. Applies to Linux instances only.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RejectedPatchesAction</i> The action for Patch Manager to take on patches included in the RejectedPackages list. A patch can be allowed only if it is a dependency of another package, or blocked entirely along with packages that include it as a dependency.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RejectedPatches</i> A list of explicitly rejected patches for the baseline. For information about accepted formats for lists of approved patches and rejected patches, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/patch-manager-approved-rejected-package-name-formats.html">About package name formats for approved and rejected patch lists</a> in the <i>AWS Systems Manager User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApprovedPatchesComplianceLevel</i> Defines the compliance level for approved patches. When an approved patch is reported as missing, this value describes the severity of the compliance violation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApprovedPatches</i> A list of explicitly approved patches for the baseline. For information about accepted formats for lists of approved patches and rejected patches, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/patch-manager-approved-rejected-package-name-formats.html">About package name formats for approved and rejected patch lists</a> in the <i>AWS Systems Manager User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApprovalRules</i> A set of rules defining the approval rules for a patch baseline.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ApprovalRules</b>: A set of rules defining the approval rules for a patch baseline.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GlobalFilters</i> A set of patch filters, typically used for approval rules.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>GlobalFilters</b>: A set of patch filters, typically used for approval rules.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OperatingSystem</i> The operating system rule used by the patch baseline override.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PatchFilters</i> The set of patch filters that make up the group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PatchRules</i> The rules that make up the rule group.<br/>
        :return: Product:  Returns the specific operating system (for example Windows Server 2012 or Amazon Linux 2015.09) on the instance for the specified patch snapshot.<br/>SnapshotDownloadUrl:  A pre-signed Amazon S3 URL that can be used to download the patch snapshot.<br/>SnapshotId:  The user-defined snapshot ID.<br/>InstanceId:  The ID of the instance.<br/>        """
        pass

    def get_document(self, Name: str, VersionName: str=None, DocumentVersion: str=None, DocumentFormat: str=None) -> GetDocumentResult:
        r"""Gets the contents of the specified Systems Manager document.

        :param self:
        :param DocumentFormat:  Returns the document in the specified format. The document format can be either JSON or YAML. JSON is the default format.<br/>DocumentVersion:  The document version for which you want information.<br/>VersionName:  An optional field specifying the version of the artifact associated with the document. For example, "Release 12, Update 6". This value is unique across all versions of a document and can't be changed.<br/>Name:  The name of the Systems Manager document.<br/>
        :return: ReviewStatus:  The current review status of a new custom Systems Manager document (SSM document) created by a member of your organization, or of the latest version of an existing SSM document. Only one version of an SSM document can be in the APPROVED state at a time. When a new version is approved, the status of the previous version changes to REJECTED. Only one version of an SSM document can be in review, or PENDING, at a time.<br/>AttachmentsContent:  A description of the document attachments, including names, locations, sizes, and so on.<br/>Requires:  A list of SSM documents required by a document. For example, an <code>ApplicationConfiguration</code> document requires an <code>ApplicationConfigurationSchema</code> document.<br/>DocumentFormat:  The document format, either JSON or YAML.<br/>DocumentType:  The document type.<br/>Content:  The contents of the Systems Manager document.<br/>StatusInformation:  A message returned by AWS Systems Manager that explains the <code>Status</code> value. For example, a <code>Failed</code> status might be explained by the <code>StatusInformation</code> message, "The specified S3 bucket does not exist. Verify that the URL of the S3 bucket is correct."<br/>Status:  The status of the Systems Manager document, such as <code>Creating</code>, <code>Active</code>, <code>Updating</code>, <code>Failed</code>, and <code>Deleting</code>.<br/>DocumentVersion:  The document version.<br/>VersionName:  The version of the artifact associated with the document. For example, "Release 12, Update 6". This value is unique across all versions of a document, and cannot be changed.<br/>DisplayName:  The friendly name of the Systems Manager document. This value can differ for each version of the document. If you want to update this value, see <a>UpdateDocument</a>.<br/>CreatedDate:  The date the Systems Manager document was created.<br/>Name:  The name of the Systems Manager document.<br/>        """
        pass

    def get_inventory(self, Filters: List[InventoryFilter]=None, Aggregators: List[InventoryAggregator]=None, ResultAttributes: List[ResultAttribute]=None, NextToken: str=None, MaxResults: int=None) -> GetInventoryResult:
        r"""Query inventory information.

        :param self:
        :param MaxResults:  The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.<br/>NextToken:  The token for the next set of items to return. (You received this token from a previous call.)<br/>ResultAttributes:  The list of inventory item types to return.<br/>Aggregators:  Returns counts of inventory types based on one or more expressions. For example, if you aggregate by using an expression that uses the <code>AWS:InstanceInformation.PlatformType</code> type, you can see a count of how many Windows and Linux instances exist in your inventoried fleet.<br/>Filters:  One or more filters. Use a filter to return a more specific list of results.<br/>
        :return: NextToken:  The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.<br/>Entities:  Collection of inventory entities such as a collection of instance inventory. <br/>        """
        pass

    def get_inventory_schema(self, TypeName: str=None, NextToken: str=None, MaxResults: int=None, Aggregator: AggregatorSchemaOnly=None, SubType: IsSubTypeSchema=None) -> GetInventorySchemaResult:
        r"""Return a list of inventory type names for the account, or return a list of attribute names for a specific Inventory item type.

        :param self:
        :param SubType:  Returns the sub-type schema for a specified inventory type.<br/>Aggregator:  Returns inventory schemas that support aggregation. For example, this call returns the <code>AWS:InstanceInformation</code> type, because it supports aggregation based on the <code>PlatformName</code>, <code>PlatformType</code>, and <code>PlatformVersion</code> attributes.<br/>MaxResults:  The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.<br/>NextToken:  The token for the next set of items to return. (You received this token from a previous call.)<br/>TypeName:  The type of inventory item to return.<br/>
        :return: NextToken:  The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.<br/>Schemas:  Inventory schemas returned by the request.<br/>        """
        pass

    def get_maintenance_window(self, WindowId: str) -> GetMaintenanceWindowResult:
        r"""Retrieves a maintenance window.

        :param self:
        :param WindowId:  The ID of the maintenance window for which you want to retrieve information.<br/>
        :return: ModifiedDate:  The date the maintenance window was last modified.<br/>CreatedDate:  The date the maintenance window was created.<br/>Enabled:  Indicates whether the maintenance window is enabled.<br/>AllowUnassociatedTargets:  Whether targets must be registered with the maintenance window before tasks can be defined for those targets.<br/>Cutoff:  The number of hours before the end of the maintenance window that Systems Manager stops scheduling new tasks for execution.<br/>Duration:  The duration of the maintenance window in hours.<br/>NextExecutionTime:  The next time the maintenance window will actually run, taking into account any specified times for the maintenance window to become active or inactive.<br/>ScheduleOffset:  The number of days to wait to run a maintenance window after the scheduled CRON expression date and time.<br/>ScheduleTimezone:  The time zone that the scheduled maintenance window executions are based on, in Internet Assigned Numbers Authority (IANA) format. For example: "America/Los_Angeles", "UTC", or "Asia/Seoul". For more information, see the <a href="https://www.iana.org/time-zones">Time Zone Database</a> on the IANA website.<br/>Schedule:  The schedule of the maintenance window in the form of a cron or rate expression.<br/>EndDate:  The date and time, in ISO-8601 Extended format, for when the maintenance window is scheduled to become inactive. The maintenance window will not run after this specified time.<br/>StartDate:  The date and time, in ISO-8601 Extended format, for when the maintenance window is scheduled to become active. The maintenance window will not run before this specified time.<br/>Description:  The description of the maintenance window.<br/>Name:  The name of the maintenance window.<br/>WindowId:  The ID of the created maintenance window.<br/>        """
        pass

    def get_maintenance_window_execution(self, WindowExecutionId: str) -> GetMaintenanceWindowExecutionResult:
        r"""Retrieves details about a specific a maintenance window execution.

        :param self:
        :param WindowExecutionId:  The ID of the maintenance window execution that includes the task.<br/>
        :return: EndTime:  The time the maintenance window finished running.<br/>StartTime:  The time the maintenance window started running.<br/>StatusDetails:  The details explaining the Status. Only available for certain status values.<br/>Status:  The status of the maintenance window execution.<br/>TaskIds:  The ID of the task executions from the maintenance window execution.<br/>WindowExecutionId:  The ID of the maintenance window execution.<br/>        """
        pass

    def get_maintenance_window_execution_task(self, TaskId: str, WindowExecutionId: str) -> GetMaintenanceWindowExecutionTaskResult:
        r"""Retrieves the details about a specific task run as part of a maintenance window execution.

        :param self:
        :param TaskId:  The ID of the specific task execution in the maintenance window task that should be retrieved.<br/>WindowExecutionId:  The ID of the maintenance window execution that includes the task.<br/>
        :return: EndTime:  The time the task execution completed.<br/>StartTime:  The time the task execution started.<br/>StatusDetails:  The details explaining the Status. Only available for certain status values.<br/>Status:  The status of the task.<br/>MaxErrors:  The defined maximum number of task execution errors allowed before scheduling of the task execution would have been stopped.<br/>MaxConcurrency:  The defined maximum number of task executions that could be run in parallel.<br/>Priority:  The priority of the task.<br/>TaskParameters:  The parameters passed to the task when it was run. <note>  <code>TaskParameters</code> has been deprecated. To specify parameters to pass to a task when it runs, instead use the <code>Parameters</code> option in the <code>TaskInvocationParameters</code> structure. For information about how Systems Manager handles these options for the supported maintenance window task types, see <a>MaintenanceWindowTaskInvocationParameters</a>. </note> The map has the following format: Key: string, between 1 and 255 characters Value: an array of strings, each string is between 1 and 255 characters<br/>Type:  The type of task that was run.<br/>ServiceRole:  The role that was assumed when running the task.<br/>TaskArn:  The ARN of the task that ran.<br/>TaskExecutionId:  The ID of the specific task execution in the maintenance window task that was retrieved.<br/>WindowExecutionId:  The ID of the maintenance window execution that includes the task.<br/>        """
        pass

    def get_maintenance_window_execution_task_invocation(self, InvocationId: str, TaskId: str, WindowExecutionId: str) -> GetMaintenanceWindowExecutionTaskInvocationResult:
        r"""Retrieves information about a specific task running on a specific target.

        :param self:
        :param InvocationId:  The invocation ID to retrieve.<br/>TaskId:  The ID of the specific task in the maintenance window task that should be retrieved. <br/>WindowExecutionId:  The ID of the maintenance window execution for which the task is a part.<br/>
        :return: WindowTargetId:  The maintenance window target ID.<br/>OwnerInformation:  User-provided value to be included in any CloudWatch events raised while running tasks for these targets in this maintenance window. <br/>EndTime:  The time that the task finished running on the target.<br/>StartTime:  The time that the task started running on the target.<br/>StatusDetails:  The details explaining the status. Details are only available for certain status values.<br/>Status:  The task status for an invocation.<br/>Parameters:  The parameters used at the time that the task ran.<br/>TaskType:  Retrieves the task type for a maintenance window. Task types include the following: LAMBDA, STEP_FUNCTIONS, AUTOMATION, RUN_COMMAND.<br/>ExecutionId:  The execution ID.<br/>InvocationId:  The invocation ID.<br/>TaskExecutionId:  The task execution ID.<br/>WindowExecutionId:  The maintenance window execution ID.<br/>        """
        pass

    def get_maintenance_window_task(self, WindowTaskId: str, WindowId: str) -> GetMaintenanceWindowTaskResult:
        r"""Lists the tasks in a maintenance window. <note> For maintenance window tasks without a specified target, you cannot supply values for <code>--max-errors</code> and <code>--max-concurrency</code>. Instead, the system inserts a placeholder value of <code>1</code>, which may be reported in the response to this command. These values do not affect the running of your task and can be ignored. </note>

        :param self:
        :param WindowTaskId:  The maintenance window task ID to retrieve.<br/>WindowId:  The maintenance window ID that includes the task to retrieve.<br/>
        :return: Description:  The retrieved task description.<br/>Name:  The retrieved task name.<br/>LoggingInfo:  The location in Amazon S3 where the task results are logged. <note>  <code>LoggingInfo</code> has been deprecated. To specify an S3 bucket to contain logs, instead use the <code>OutputS3BucketName</code> and <code>OutputS3KeyPrefix</code> options in the <code>TaskInvocationParameters</code> structure. For information about how Systems Manager handles these options for the supported maintenance window task types, see <a>MaintenanceWindowTaskInvocationParameters</a>. </note>:<br/>MaxErrors:  The maximum number of errors allowed before the task stops being scheduled. <note> For maintenance window tasks without a target specified, you cannot supply a value for this option. Instead, the system inserts a placeholder value of <code>1</code>, which may be reported in the response to this command. This value does not affect the running of your task and can be ignored. </note><br/>MaxConcurrency:  The maximum number of targets allowed to run this task in parallel. <note> For maintenance window tasks without a target specified, you cannot supply a value for this option. Instead, the system inserts a placeholder value of <code>1</code>, which may be reported in the response to this command. This value does not affect the running of your task and can be ignored. </note><br/>Priority:  The priority of the task when it runs. The lower the number, the higher the priority. Tasks that have the same priority are scheduled in parallel.<br/>TaskInvocationParameters:  The parameters to pass to the task when it runs.:<br/>TaskParameters:  The parameters to pass to the task when it runs. <note>  <code>TaskParameters</code> has been deprecated. To specify parameters to pass to a task when it runs, instead use the <code>Parameters</code> option in the <code>TaskInvocationParameters</code> structure. For information about how Systems Manager handles these options for the supported maintenance window task types, see <a>MaintenanceWindowTaskInvocationParameters</a>. </note><br/>TaskType:  The type of task to run.<br/>ServiceRoleArn:  The ARN of the IAM service role to use to publish Amazon Simple Notification Service (Amazon SNS) notifications for maintenance window Run Command tasks.<br/>TaskArn:  The resource that the task used during execution. For RUN_COMMAND and AUTOMATION task types, the TaskArn is the Systems Manager Document name/ARN. For LAMBDA tasks, the value is the function name/ARN. For STEP_FUNCTIONS tasks, the value is the state machine ARN.<br/>Targets:  The targets where the task should run.<br/>WindowTaskId:  The retrieved maintenance window task ID.<br/>WindowId:  The retrieved maintenance window ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Lambda</i> The parameters for a LAMBDA task type.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Lambda</b>: The parameters for a LAMBDA task type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StepFunctions</i> The parameters for a STEP_FUNCTIONS task type.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StepFunctions</b>: The parameters for a STEP_FUNCTIONS task type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Automation</i> The parameters for an AUTOMATION task type.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Automation</b>: The parameters for an AUTOMATION task type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RunCommand</i> The parameters for a RUN_COMMAND task type.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RunCommand</b>: The parameters for a RUN_COMMAND task type.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Comment</i> Information about the commands to run.<br/>Configuration options for sending command output to CloudWatch Logs.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CloudWatchOutputConfig</b>: Configuration options for sending command output to CloudWatch Logs.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Parameters</i> The parameters for the AUTOMATION task. For information about specifying and updating task parameters, see <a>RegisterTaskWithMaintenanceWindow</a> and <a>UpdateMaintenanceWindowTask</a>. <note>  <code>LoggingInfo</code> has been deprecated. To specify an S3 bucket to contain logs, instead use the <code>OutputS3BucketName</code> and <code>OutputS3KeyPrefix</code> options in the <code>TaskInvocationParameters</code> structure. For information about how Systems Manager handles these options for the supported maintenance window task types, see <a>MaintenanceWindowTaskInvocationParameters</a>.  <code>TaskParameters</code> has been deprecated. To specify parameters to pass to a task when it runs, instead use the <code>Parameters</code> option in the <code>TaskInvocationParameters</code> structure. For information about how Systems Manager handles these options for the supported maintenance window task types, see <a>MaintenanceWindowTaskInvocationParameters</a>. For AUTOMATION task types, Systems Manager ignores any values specified for these parameters. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DocumentVersion</i> The version of an Automation document to use during task execution.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the STEP_FUNCTIONS task.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Input</i> The inputs for the STEP_FUNCTIONS task.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Payload</i> JSON to provide to your Lambda function as input.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Qualifier</i> (Optional) Specify a Lambda function version or alias name. If you specify a function version, the action uses the qualified function ARN to invoke a specific Lambda function. If you specify an alias name, the action uses the alias ARN to invoke the Lambda function version to which the alias points.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClientContext</i> Pass client-specific information to the Lambda function that you are invoking. You can then process the client information in your Lambda function as you choose through the context variable.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Region</i> The Region where the S3 bucket is located.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3KeyPrefix</i> (Optional) The S3 bucket subfolder. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3BucketName</i> The name of an S3 bucket where execution logs are stored .<br/>        """
        pass

    def get_ops_item(self, OpsItemId: str) -> GetOpsItemResponse:
        r"""Get information about an OpsItem by using the ID. You must have permission in AWS Identity and Access Management (IAM) to view information about an OpsItem. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-getting-started.html">Getting started with OpsCenter</a> in the <i>AWS Systems Manager User Guide</i>. Operations engineers and IT professionals use OpsCenter to view, investigate, and remediate operational issues impacting the performance and health of their AWS resources. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter.html">AWS Systems Manager OpsCenter</a> in the <i>AWS Systems Manager User Guide</i>. 

        :param self:
        :param OpsItemId:  The ID of the OpsItem that you want to get.<br/>
        :return: OpsItem:  The OpsItem.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PlannedEndTime</i> The time specified in a change request for a runbook workflow to end. Currently supported only for the OpsItem type <code>/aws/changerequest</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PlannedStartTime</i> The time specified in a change request for a runbook workflow to start. Currently supported only for the OpsItem type <code>/aws/changerequest</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActualEndTime</i> The time a runbook workflow ended. Currently reported only for the OpsItem type <code>/aws/changerequest</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActualStartTime</i> The time a runbook workflow started. Currently reported only for the OpsItem type <code>/aws/changerequest</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Severity</i> The severity of the OpsItem. Severity options range from 1 to 4.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Category</i> An OpsItem category. Category options include: Availability, Cost, Performance, Recovery, Security.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OperationalData</i> Operational data is custom data that provides useful reference details about the OpsItem. For example, you can specify log files, error strings, license keys, troubleshooting tips, or other relevant data. You enter operational data as key-value pairs. The key has a maximum length of 128 characters. The value has a maximum size of 20 KB. <important> Operational data keys <i>can't</i> begin with the following: amazon, aws, amzn, ssm, /amazon, /aws, /amzn, /ssm. </important> You can choose to make the data searchable by other users in the account or you can restrict search access. Searchable data means that all users with access to the OpsItem Overview page (as provided by the <a>DescribeOpsItems</a> API action) can view and search on the specified data. Operational data that is not searchable is only viewable by users who have access to the OpsItem (as provided by the <a>GetOpsItem</a> API action). Use the <code>/aws/resources</code> key in OperationalData to specify a related resource in the request. Use the <code>/aws/automations</code> key in OperationalData to associate an Automation runbook with the OpsItem. To view AWS CLI example commands that use these keys, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-creating-OpsItems.html#OpsCenter-manually-create-OpsItems">Creating OpsItems manually</a> in the <i>AWS Systems Manager User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Source</i> The origin of the OpsItem, such as Amazon EC2 or Systems Manager. The impacted resource is a subset of source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Title</i> A short heading that describes the nature of the OpsItem and the impacted resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The version of this OpsItem. Each time the OpsItem is edited the version number increments by one.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OpsItemId</i> The ID of the OpsItem.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The OpsItem status. Status can be <code>Open</code>, <code>In Progress</code>, or <code>Resolved</code>. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-working-with-OpsItems-editing-details.html">Editing OpsItem details</a> in the <i>AWS Systems Manager User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RelatedOpsItems</i> One or more OpsItems that share something in common with the current OpsItem. For example, related OpsItems can include OpsItems with similar error messages, impacted resources, or statuses for the impacted resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Priority</i> The importance of this OpsItem in relation to other OpsItems in the system.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Notifications</i> The Amazon Resource Name (ARN) of an SNS topic where notifications are sent when this OpsItem is edited or changed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedTime</i> The date and time the OpsItem was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedBy</i> The ARN of the AWS account that last updated the OpsItem.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The OpsItem description.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTime</i> The date and time the OpsItem was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OpsItemType</i> The type of OpsItem. Currently, the only valid values are <code>/aws/changerequest</code> and <code>/aws/issue</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedBy</i> The ARN of the AWS account that created the OpsItem.<br/>        """
        pass

    def get_ops_metadata(self, OpsMetadataArn: str, MaxResults: int=None, NextToken: str=None) -> GetOpsMetadataResult:
        r"""View operational metadata related to an application in Application Manager.

        :param self:
        :param NextToken:  A token to start the list. Use this token to get the next set of results.<br/>MaxResults:  The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.<br/>OpsMetadataArn:  The Amazon Resource Name (ARN) of an OpsMetadata Object to view.<br/>
        :return: NextToken:  The token for the next set of items to return. Use this token to get the next set of results.<br/>Metadata:  OpsMetadata for an Application Manager application.<br/>ResourceId:  The resource ID of the Application Manager application.<br/>        """
        pass

    def get_ops_summary(self, SyncName: str=None, Filters: List[OpsFilter]=None, Aggregators: List[OpsAggregator]=None, ResultAttributes: List[OpsResultAttribute]=None, NextToken: str=None, MaxResults: int=None) -> GetOpsSummaryResult:
        r"""View a summary of OpsItems based on specified filters and aggregators.

        :param self:
        :param MaxResults:  The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.<br/>NextToken:  A token to start the list. Use this token to get the next set of results. <br/>ResultAttributes:  The OpsItem data type to return.<br/>Aggregators:  Optional aggregators that return counts of OpsItems based on one or more expressions.<br/>Filters:  Optional filters used to scope down the returned OpsItems. <br/>SyncName:  Specify the name of a resource data sync to get.<br/>
        :return: NextToken:  The token for the next set of items to return. Use this token to get the next set of results.<br/>Entities:  The list of aggregated and filtered OpsItems.<br/>        """
        pass

    def get_parameter(self, Name: str, WithDecryption: Boolean=None) -> GetParameterResult:
        r"""Get information about a parameter by using the parameter name. Don't confuse this API action with the <a>GetParameters</a> API action.

        :param self:
        :param WithDecryption:  Return decrypted values for secure string parameters. This flag is ignored for String and StringList parameter types.<br/>Name:  The name of the parameter you want to query.<br/>
        :return: Parameter:  Information about a parameter.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataType</i> The data type of the parameter, such as <code>text</code> or <code>aws:ec2:image</code>. The default is <code>text</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ARN</i> The Amazon Resource Name (ARN) of the parameter.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> Date the parameter was last changed or updated and the parameter version was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceResult</i> Applies to parameters that reference information in other AWS services. SourceResult is the raw result or response from the source.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Selector</i> Either the version number or the label used to retrieve the parameter value. Specify selectors by using one of the following formats: parameter_name:version parameter_name:label<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The parameter version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Value</i> The parameter value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of parameter. Valid values include the following: <code>String</code>, <code>StringList</code>, and <code>SecureString</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the parameter.<br/>        """
        pass

    def get_parameter_history(self, Name: str, WithDecryption: Boolean=None, MaxResults: int=None, NextToken: str=None) -> GetParameterHistoryResult:
        r"""Retrieves the history of all changes to a parameter.

        :param self:
        :param NextToken:  The token for the next set of items to return. (You received this token from a previous call.)<br/>MaxResults:  The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.<br/>WithDecryption:  Return decrypted values for secure string parameters. This flag is ignored for String and StringList parameter types.<br/>Name:  The name of the parameter for which you want to review history.<br/>
        :return: NextToken:  The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.<br/>Parameters:  A list of parameters returned by the request.<br/>        """
        pass

    def get_parameters(self, Names: List[PSParameterName], WithDecryption: Boolean=None) -> GetParametersResult:
        r"""Get details of a parameter. Don't confuse this API action with the <a>GetParameter</a> API action.

        :param self:
        :param WithDecryption:  Return decrypted secure string value. Return decrypted values for secure string parameters. This flag is ignored for String and StringList parameter types.<br/>Names:  Names of the parameters for which you want to query information.<br/>
        :return: InvalidParameters:  A list of parameters that are not formatted correctly or do not run during an execution.<br/>Parameters:  A list of details for a parameter.<br/>        """
        pass

    def get_parameters_by_path(self, Path: str, Recursive: Boolean=None, ParameterFilters: List[ParameterStringFilter]=None, WithDecryption: Boolean=None, MaxResults: int=None, NextToken: str=None) -> GetParametersByPathResult:
        r"""Retrieve information about one or more parameters in a specific hierarchy.  <note> Request results are returned on a best-effort basis. If you specify <code>MaxResults</code> in the request, the response includes information up to the limit specified. The number of items returned, however, can be between zero and the value of <code>MaxResults</code>. If the service reaches an internal limit while processing the results, it stops the operation and returns the matching values up to that point and a <code>NextToken</code>. You can specify the <code>NextToken</code> in a subsequent call to get the next set of results. </note>

        :param self:
        :param NextToken:  A token to start the list. Use this token to get the next set of results. <br/>MaxResults:  The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.<br/>WithDecryption:  Retrieve all parameters in a hierarchy with their value decrypted.<br/>ParameterFilters:  Filters to limit the request results. <note> For <code>GetParametersByPath</code>, the following filter <code>Key</code> names are supported: <code>Type</code>, <code>KeyId</code>, <code>Label</code>, and <code>DataType</code>. The following <code>Key</code> values are not supported for <code>GetParametersByPath</code>: <code>tag</code>, <code>Name</code>, <code>Path</code>, and <code>Tier</code>. </note><br/>Recursive:  Retrieve all parameters within a hierarchy. <important> If a user has access to a path, then the user can access all levels of that path. For example, if a user has permission to access path <code>/a</code>, then the user can also access <code>/a/b</code>. Even if a user has explicitly been denied access in IAM for parameter <code>/a/b</code>, they can still call the GetParametersByPath API action recursively for <code>/a</code> and view <code>/a/b</code>. </important><br/>Path:  The hierarchy for the parameter. Hierarchies start with a forward slash (/). The hierachy is the parameter name except the last part of the parameter. For the API call to succeeed, the last part of the parameter name cannot be in the path. A parameter name hierarchy can have a maximum of 15 levels. Here is an example of a hierarchy: <code>/Finance/Prod/IAD/WinServ2016/license33 </code> <br/>
        :return: NextToken:  The token for the next set of items to return. Use this token to get the next set of results.<br/>Parameters:  A list of parameters found in the specified hierarchy.<br/>        """
        pass

    def get_patch_baseline(self, BaselineId: str) -> GetPatchBaselineResult:
        r"""Retrieves information about a patch baseline.

        :param self:
        :param BaselineId:  The ID of the patch baseline to retrieve.<br/>
        :return: Sources:  Information about the patches to use to update the instances, including target operating systems and source repositories. Applies to Linux instances only.<br/>Description:  A description of the patch baseline.<br/>ModifiedDate:  The date the patch baseline was last modified.<br/>CreatedDate:  The date the patch baseline was created.<br/>PatchGroups:  Patch groups included in the patch baseline.<br/>RejectedPatchesAction:  The action specified to take on patches included in the RejectedPatches list. A patch can be allowed only if it is a dependency of another package, or blocked entirely along with packages that include it as a dependency.<br/>RejectedPatches:  A list of explicitly rejected patches for the baseline.<br/>ApprovedPatchesEnableNonSecurity:  Indicates whether the list of approved patches includes non-security updates that should be applied to the instances. The default value is 'false'. Applies to Linux instances only.<br/>ApprovedPatchesComplianceLevel:  Returns the specified compliance severity level for approved patches in the patch baseline.<br/>ApprovedPatches:  A list of explicitly approved patches for the baseline.<br/>ApprovalRules:  A set of rules used to include patches in the baseline.:<br/>GlobalFilters:  A set of global filters used to exclude patches from the baseline.:<br/>OperatingSystem:  Returns the operating system specified for the patch baseline.<br/>Name:  The name of the patch baseline.<br/>BaselineId:  The ID of the retrieved patch baseline.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PatchFilters</i> The set of patch filters that make up the group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PatchRules</i> The rules that make up the rule group.<br/>        """
        pass

    def get_patch_baseline_for_patch_group(self, PatchGroup: str, OperatingSystem: str=None) -> GetPatchBaselineForPatchGroupResult:
        r"""Retrieves the patch baseline that should be used for the specified patch group.

        :param self:
        :param OperatingSystem:  Returns he operating system rule specified for patch groups using the patch baseline.<br/>PatchGroup:  The name of the patch group whose patch baseline should be retrieved.<br/>
        :return: OperatingSystem:  The operating system rule specified for patch groups using the patch baseline.<br/>PatchGroup:  The name of the patch group.<br/>BaselineId:  The ID of the patch baseline that should be used for the patch group.<br/>        """
        pass

    def get_service_setting(self, SettingId: str) -> GetServiceSettingResult:
        r""" <code>ServiceSetting</code> is an account-level setting for an AWS service. This setting defines how a user interacts with or uses a service or a feature of a service. For example, if an AWS service charges money to the account based on feature or service usage, then the AWS service team might create a default setting of "false". This means the user can't use this feature unless they change the setting to "true" and intentionally opt in for a paid feature. Services map a <code>SettingId</code> object to a setting value. AWS services teams define the default value for a <code>SettingId</code>. You can't create a new <code>SettingId</code>, but you can overwrite the default value if you have the <code>ssm:UpdateServiceSetting</code> permission for the setting. Use the <a>UpdateServiceSetting</a> API action to change the default setting. Or use the <a>ResetServiceSetting</a> to change the value back to the original value defined by the AWS service team. Query the current service setting for the account. 

        :param self:
        :param SettingId:  The ID of the service setting to get. The setting ID can be one of the following. <ul> <li>  <code>/ssm/automation/customer-script-log-destination</code>  </li> <li>  <code>/ssm/automation/customer-script-log-group-name</code>  </li> <li>  <code>/ssm/documents/console/public-sharing-permission</code>  </li> <li>  <code>/ssm/parameter-store/default-parameter-tier</code>  </li> <li>  <code>/ssm/parameter-store/high-throughput-enabled</code>  </li> <li>  <code>/ssm/managed-instance/activation-tier</code>  </li> </ul><br/>
        :return: ServiceSetting:  The query result of the current service setting.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the service setting. The value can be Default, Customized or PendingUpdate. <ul> <li> Default: The current setting uses a default value provisioned by the AWS service team. </li> <li> Customized: The current setting use a custom value specified by the customer. </li> <li> PendingUpdate: The current setting uses a default or custom value, but a setting change request is pending approval. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ARN</i> The ARN of the service setting.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedUser</i> The ARN of the last modified user. This field is populated only if the setting value was overwritten.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> The last time the service setting was modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SettingValue</i> The value of the service setting.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SettingId</i> The ID of the service setting.<br/>        """
        pass

    def label_parameter_version(self, Labels: List[ParameterLabel], Name: str, ParameterVersion: PSParameterVersion=None) -> LabelParameterVersionResult:
        r"""A parameter label is a user-defined alias to help you manage different versions of a parameter. When you modify a parameter, Systems Manager automatically saves a new version and increments the version number by one. A label can help you remember the purpose of a parameter when there are multiple versions.  Parameter labels have the following requirements and restrictions. <ul> <li> A version of a parameter can have a maximum of 10 labels. </li> <li> You can't attach the same label to different versions of the same parameter. For example, if version 1 has the label Production, then you can't attach Production to version 2. </li> <li> You can move a label from one version of a parameter to another. </li> <li> You can't create a label when you create a new parameter. You must attach a label to a specific version of a parameter. </li> <li> If you no longer want to use a parameter label, then you can either delete it or move it to a different version of a parameter. </li> <li> A label can have a maximum of 100 characters. </li> <li> Labels can contain letters (case sensitive), numbers, periods (.), hyphens (-), or underscores (_). </li> <li> Labels can't begin with a number, "aws," or "ssm" (not case sensitive). If a label fails to meet these requirements, then the label is not associated with a parameter and the system displays it in the list of InvalidLabels. </li> </ul>

        :param self:
        :param Labels:  One or more labels to attach to the specified parameter version.<br/>ParameterVersion:  The specific version of the parameter on which you want to attach one or more labels. If no version is specified, the system attaches the label to the latest version.<br/>Name:  The parameter name on which you want to attach one or more labels.<br/>
        :return: ParameterVersion:  The version of the parameter that has been labeled.<br/>InvalidLabels:  The label does not meet the requirements. For information about parameter label requirements, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-labels.html">Labeling parameters</a> in the <i>AWS Systems Manager User Guide</i>.<br/>        """
        pass

    def list_association_versions(self, AssociationId: str, MaxResults: int=None, NextToken: str=None) -> ListAssociationVersionsResult:
        r"""Retrieves all versions of an association for a specific association ID.

        :param self:
        :param NextToken:  A token to start the list. Use this token to get the next set of results. <br/>MaxResults:  The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.<br/>AssociationId:  The association ID for which you want to view all versions.<br/>
        :return: NextToken:  The token for the next set of items to return. Use this token to get the next set of results.<br/>AssociationVersions:  Information about all versions of the association for the specified association ID.<br/>        """
        pass

    def list_associations(self, AssociationFilterList: List[AssociationFilter]=None, MaxResults: int=None, NextToken: str=None) -> ListAssociationsResult:
        r"""Returns all State Manager associations in the current AWS account and Region. You can limit the results to a specific State Manager association document or instance by specifying a filter.

        :param self:
        :param NextToken:  The token for the next set of items to return. (You received this token from a previous call.)<br/>MaxResults:  The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.<br/>AssociationFilterList:  One or more filters. Use a filter to return a more specific list of results. <note> Filtering associations using the <code>InstanceID</code> attribute only returns legacy associations created using the <code>InstanceID</code> attribute. Associations targeting the instance that are part of the Target Attributes <code>ResourceGroup</code> or <code>Tags</code> are not returned. </note><br/>
        :return: NextToken:  The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.<br/>Associations:  The associations.<br/>        """
        pass

    def list_command_invocations(self, CommandId: str=None, InstanceId: str=None, MaxResults: int=None, NextToken: str=None, Filters: List[CommandFilter]=None, Details: Boolean=None) -> ListCommandInvocationsResult:
        r"""An invocation is copy of a command sent to a specific instance. A command can apply to one or more instances. A command invocation applies to one instance. For example, if a user runs SendCommand against three instances, then a command invocation is created for each requested instance ID. ListCommandInvocations provide status about command execution.

        :param self:
        :param Details:  (Optional) If set this returns the response of the command executions and any command output. The default value is 'false'. <br/>Filters:  (Optional) One or more filters. Use a filter to return a more specific list of results.<br/>NextToken:  (Optional) The token for the next set of items to return. (You received this token from a previous call.)<br/>MaxResults:  (Optional) The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.<br/>InstanceId:  (Optional) The command execution details for a specific instance ID.<br/>CommandId:  (Optional) The invocations for a specific command ID.<br/>
        :return: NextToken:  (Optional) The token for the next set of items to return. (You received this token from a previous call.)<br/>CommandInvocations:  (Optional) A list of all invocations. <br/>        """
        pass

    def list_commands(self, CommandId: str=None, InstanceId: str=None, MaxResults: int=None, NextToken: str=None, Filters: List[CommandFilter]=None) -> ListCommandsResult:
        r"""Lists the commands requested by users of the AWS account.

        :param self:
        :param Filters:  (Optional) One or more filters. Use a filter to return a more specific list of results. <br/>NextToken:  (Optional) The token for the next set of items to return. (You received this token from a previous call.)<br/>MaxResults:  (Optional) The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.<br/>InstanceId:  (Optional) Lists commands issued against this instance ID. <note> You can't specify an instance ID in the same command that you specify <code>Status</code> = <code>Pending</code>. This is because the command has not reached the instance yet. </note><br/>CommandId:  (Optional) If provided, lists only the specified command.<br/>
        :return: NextToken:  (Optional) The token for the next set of items to return. (You received this token from a previous call.)<br/>Commands:  (Optional) The list of commands requested by the user. <br/>        """
        pass

    def list_compliance_items(self, Filters: List[ComplianceStringFilter]=None, ResourceIds: List[ComplianceResourceId]=None, ResourceTypes: List[ComplianceResourceType]=None, NextToken: str=None, MaxResults: int=None) -> ListComplianceItemsResult:
        r"""For a specified resource ID, this API action returns a list of compliance statuses for different resource types. Currently, you can only specify one resource ID per call. List results depend on the criteria specified in the filter.

        :param self:
        :param MaxResults:  The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.<br/>NextToken:  A token to start the list. Use this token to get the next set of results. <br/>ResourceTypes:  The type of resource from which to get compliance information. Currently, the only supported resource type is <code>ManagedInstance</code>.<br/>ResourceIds:  The ID for the resources from which to get compliance information. Currently, you can only specify one resource ID.<br/>Filters:  One or more compliance filters. Use a filter to return a more specific list of results.<br/>
        :return: NextToken:  The token for the next set of items to return. Use this token to get the next set of results.<br/>ComplianceItems:  A list of compliance information for the specified resource ID. <br/>        """
        pass

    def list_compliance_summaries(self, Filters: List[ComplianceStringFilter]=None, NextToken: str=None, MaxResults: int=None) -> ListComplianceSummariesResult:
        r"""Returns a summary count of compliant and non-compliant resources for a compliance type. For example, this call can return State Manager associations, patches, or custom compliance types according to the filter criteria that you specify.

        :param self:
        :param MaxResults:  The maximum number of items to return for this call. Currently, you can specify null or 50. The call also returns a token that you can specify in a subsequent call to get the next set of results.<br/>NextToken:  A token to start the list. Use this token to get the next set of results. <br/>Filters:  One or more compliance or inventory filters. Use a filter to return a more specific list of results.<br/>
        :return: NextToken:  The token for the next set of items to return. Use this token to get the next set of results.<br/>ComplianceSummaryItems:  A list of compliant and non-compliant summary counts based on compliance types. For example, this call returns State Manager associations, patches, or custom compliance types according to the filter criteria that you specified.<br/>        """
        pass

    def list_document_metadata_history(self, Metadata: str, Name: str, DocumentVersion: str=None, NextToken: str=None, MaxResults: int=None) -> ListDocumentMetadataHistoryResponse:
        r"""Information about approval reviews for a version of an SSM document.

        :param self:
        :param MaxResults:  The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.<br/>NextToken:  The token for the next set of items to return. (You received this token from a previous call.)<br/>Metadata:  The type of data for which details are being requested. Currently, the only supported value is <code>DocumentReviews</code>.<br/>DocumentVersion:  The version of the document.<br/>Name:  The name of the document.<br/>
        :return: NextToken:  The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.<br/>Metadata:  Information about the response to the document approval request.:<br/>Author:  The user ID of the person in the organization who requested the document review.<br/>DocumentVersion:  The version of the document.<br/>Name:  The name of the document.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReviewerResponse</i> Details about a reviewer's response to a document review request.<br/>        """
        pass

    def list_document_versions(self, Name: str, MaxResults: int=None, NextToken: str=None) -> ListDocumentVersionsResult:
        r"""List all versions for a document.

        :param self:
        :param NextToken:  The token for the next set of items to return. (You received this token from a previous call.)<br/>MaxResults:  The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.<br/>Name:  The name of the document. You can specify an Amazon Resource Name (ARN).<br/>
        :return: NextToken:  The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.<br/>DocumentVersions:  The document versions.<br/>        """
        pass

    def list_documents(self, DocumentFilterList: List[DocumentFilter]=None, Filters: List[DocumentKeyValuesFilter]=None, MaxResults: int=None, NextToken: str=None) -> ListDocumentsResult:
        r"""Returns all Systems Manager (SSM) documents in the current AWS account and Region. You can limit the results of this request by using a filter.

        :param self:
        :param NextToken:  The token for the next set of items to return. (You received this token from a previous call.)<br/>MaxResults:  The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.<br/>Filters:  One or more <code>DocumentKeyValuesFilter</code> objects. Use a filter to return a more specific list of results. For keys, you can specify one or more key-value pair tags that have been applied to a document. Other valid keys include <code>Owner</code>, <code>Name</code>, <code>PlatformTypes</code>, <code>DocumentType</code>, and <code>TargetType</code>. For example, to return documents you own use <code>Key=Owner,Values=Self</code>. To specify a custom key-value pair, use the format <code>Key=tag:tagName,Values=valueName</code>. <note> This API action only supports filtering documents by using a single tag key and one or more tag values. For example: <code>Key=tag:tagName,Values=valueName1,valueName2</code>  </note><br/>DocumentFilterList:  This data type is deprecated. Instead, use <code>Filters</code>.<br/>
        :return: NextToken:  The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.<br/>DocumentIdentifiers:  The names of the Systems Manager documents.<br/>        """
        pass

    def list_inventory_entries(self, TypeName: str, InstanceId: str, Filters: List[InventoryFilter]=None, NextToken: str=None, MaxResults: int=None) -> ListInventoryEntriesResult:
        r"""A list of inventory items returned by the request.

        :param self:
        :param MaxResults:  The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.<br/>NextToken:  The token for the next set of items to return. (You received this token from a previous call.)<br/>Filters:  One or more filters. Use a filter to return a more specific list of results.<br/>TypeName:  The type of inventory item for which you want information.<br/>InstanceId:  The instance ID for which you want inventory information.<br/>
        :return: NextToken:  The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.<br/>Entries:  A list of inventory items on the instance(s).<br/>CaptureTime:  The time that inventory information was collected for the instance(s).<br/>SchemaVersion:  The inventory schema version used by the instance(s).<br/>InstanceId:  The instance ID targeted by the request to query inventory information.<br/>TypeName:  The type of inventory item returned by the request.<br/>        """
        pass

    def list_ops_item_events(self, Filters: List[OpsItemEventFilter]=None, MaxResults: int=None, NextToken: str=None) -> ListOpsItemEventsResponse:
        r"""Returns a list of all OpsItem events in the current AWS account and Region. You can limit the results to events associated with specific OpsItems by specifying a filter.

        :param self:
        :param NextToken:  A token to start the list. Use this token to get the next set of results. <br/>MaxResults:  The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results. <br/>Filters:  One or more OpsItem filters. Use a filter to return a more specific list of results. <br/>
        :return: Summaries:  A list of event information for the specified OpsItems.<br/>NextToken:  The token for the next set of items to return. Use this token to get the next set of results. <br/>        """
        pass

    def list_ops_item_related_items(self, OpsItemId: str=None, Filters: List[OpsItemRelatedItemsFilter]=None, MaxResults: int=None, NextToken: str=None) -> ListOpsItemRelatedItemsResponse:
        r"""Lists all related-item resources associated with an OpsItem.

        :param self:
        :param NextToken:  The token for the next set of items to return. (You received this token from a previous call.)<br/>MaxResults:  The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.<br/>Filters:  One or more OpsItem filters. Use a filter to return a more specific list of results. <br/>OpsItemId:  The ID of the OpsItem for which you want to list all related-item resources.<br/>
        :return: Summaries:  A list of related-item resources for the specified OpsItem.<br/>NextToken:  The token for the next set of items to return. Use this token to get the next set of results.<br/>        """
        pass

    def list_ops_metadata(self, Filters: List[OpsMetadataFilter]=None, MaxResults: int=None, NextToken: str=None) -> ListOpsMetadataResult:
        r"""Systems Manager calls this API action when displaying all Application Manager OpsMetadata objects or blobs.

        :param self:
        :param NextToken:  A token to start the list. Use this token to get the next set of results.<br/>MaxResults:  The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.<br/>Filters:  One or more filters to limit the number of OpsMetadata objects returned by the call.<br/>
        :return: NextToken:  The token for the next set of items to return. Use this token to get the next set of results.<br/>OpsMetadataList:  Returns a list of OpsMetadata objects.<br/>        """
        pass

    def list_resource_compliance_summaries(self, Filters: List[ComplianceStringFilter]=None, NextToken: str=None, MaxResults: int=None) -> ListResourceComplianceSummariesResult:
        r"""Returns a resource-level summary count. The summary includes information about compliant and non-compliant statuses and detailed compliance-item severity counts, according to the filter criteria you specify.

        :param self:
        :param MaxResults:  The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.<br/>NextToken:  A token to start the list. Use this token to get the next set of results. <br/>Filters:  One or more filters. Use a filter to return a more specific list of results.<br/>
        :return: NextToken:  The token for the next set of items to return. Use this token to get the next set of results.<br/>ResourceComplianceSummaryItems:  A summary count for specified or targeted managed instances. Summary count includes information about compliant and non-compliant State Manager associations, patch status, or custom items according to the filter criteria that you specify. <br/>        """
        pass

    def list_resource_data_sync(self, SyncType: str=None, NextToken: str=None, MaxResults: int=None) -> ListResourceDataSyncResult:
        r"""Lists your resource data sync configurations. Includes information about the last time a sync attempted to start, the last sync status, and the last time a sync successfully completed. The number of sync configurations might be too large to return using a single call to <code>ListResourceDataSync</code>. You can limit the number of sync configurations returned by using the <code>MaxResults</code> parameter. To determine whether there are more sync configurations to list, check the value of <code>NextToken</code> in the output. If there are more sync configurations to list, you can request them by specifying the <code>NextToken</code> returned in the call to the parameter of a subsequent call. 

        :param self:
        :param MaxResults:  The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.<br/>NextToken:  A token to start the list. Use this token to get the next set of results. <br/>SyncType:  View a list of resource data syncs according to the sync type. Specify <code>SyncToDestination</code> to view resource data syncs that synchronize data to an Amazon S3 bucket. Specify <code>SyncFromSource</code> to view resource data syncs from AWS Organizations or from multiple AWS Regions.<br/>
        :return: NextToken:  The token for the next set of items to return. Use this token to get the next set of results.<br/>ResourceDataSyncItems:  A list of your current Resource Data Sync configurations and their statuses.<br/>        """
        pass

    def list_tags_for_resource(self, ResourceId: str, ResourceType: str) -> ListTagsForResourceResult:
        r"""Returns a list of the tags assigned to the specified resource.

        :param self:
        :param ResourceId:  The resource ID for which you want to see a list of tags.<br/>ResourceType:  Returns a list of tags for a specific resource type.<br/>
        :return: TagList:  A list of tags.<br/>        """
        pass

    def modify_document_permission(self, PermissionType: str, Name: str, AccountIdsToAdd: List[AccountId]=None, AccountIdsToRemove: List[AccountId]=None, SharedDocumentVersion: str=None) -> ModifyDocumentPermissionResponse:
        r"""Shares a Systems Manager document publicly or privately. If you share a document privately, you must specify the AWS user account IDs for those people who can use the document. If you share a document publicly, you must specify <i>All</i> as the account ID.

        :param self:
        :param SharedDocumentVersion:  (Optional) The version of the document to share. If it's not specified, the system choose the <code>Default</code> version to share.<br/>AccountIdsToRemove:  The AWS user accounts that should no longer have access to the document. The AWS user account can either be a group of account IDs or <i>All</i>. This action has a higher priority than <i>AccountIdsToAdd</i>. If you specify an account ID to add and the same ID to remove, the system removes access to the document.<br/>AccountIdsToAdd:  The AWS user accounts that should have access to the document. The account IDs can either be a group of account IDs or <i>All</i>.<br/>PermissionType:  The permission type for the document. The permission type can be <i>Share</i>.<br/>Name:  The name of the document that you want to share.<br/>
        :return:         """
        pass

    def put_compliance_items(self, Items: List[ComplianceItemEntry], ExecutionSummary: ComplianceExecutionSummary, ComplianceType: str, ResourceType: str, ResourceId: str, ItemContentHash: str=None, UploadType: str=None) -> PutComplianceItemsResult:
        r"""Registers a compliance type and other compliance details on a designated resource. This action lets you register custom compliance details with a resource. This call overwrites existing compliance information on the resource, so you must provide a full list of compliance items each time that you send the request. ComplianceType can be one of the following: <ul> <li> ExecutionId: The execution ID when the patch, association, or custom compliance item was applied. </li> <li> ExecutionType: Specify patch, association, or Custom:<code>string</code>. </li> <li> ExecutionTime. The time the patch, association, or custom compliance item was applied to the instance. </li> <li> Id: The patch, association, or custom compliance ID. </li> <li> Title: A title. </li> <li> Status: The status of the compliance item. For example, <code>approved</code> for patches, or <code>Failed</code> for associations. </li> <li> Severity: A patch severity. For example, <code>critical</code>. </li> <li> DocumentName: A SSM document name. For example, AWS-RunPatchBaseline. </li> <li> DocumentVersion: An SSM document version number. For example, 4. </li> <li> Classification: A patch classification. For example, <code>security updates</code>. </li> <li> PatchBaselineId: A patch baseline ID. </li> <li> PatchSeverity: A patch severity. For example, <code>Critical</code>. </li> <li> PatchState: A patch state. For example, <code>InstancesWithFailedPatches</code>. </li> <li> PatchGroup: The name of a patch group. </li> <li> InstalledTime: The time the association, patch, or custom compliance item was applied to the resource. Specify the time by using the following format: yyyy-MM-dd'T'HH:mm:ss'Z' </li> </ul>

        :param self:
        :param UploadType:  The mode for uploading compliance items. You can specify <code>COMPLETE</code> or <code>PARTIAL</code>. In <code>COMPLETE</code> mode, the system overwrites all existing compliance information for the resource. You must provide a full list of compliance items each time you send the request. In <code>PARTIAL</code> mode, the system overwrites compliance information for a specific association. The association must be configured with <code>SyncCompliance</code> set to <code>MANUAL</code>. By default, all requests use <code>COMPLETE</code> mode. <note> This attribute is only valid for association compliance. </note><br/>ItemContentHash:  MD5 or SHA-256 content hash. The content hash is used to determine if existing information should be overwritten or ignored. If the content hashes match, the request to put compliance information is ignored.<br/>Items:  Information about the compliance as defined by the resource type. For example, for a patch compliance type, <code>Items</code> includes information about the PatchSeverity, Classification, and so on.<br/>ExecutionSummary:  A summary of the call execution that includes an execution ID, the type of execution (for example, <code>Command</code>), and the date/time of the execution using a datetime object that is saved in the following format: yyyy-MM-dd'T'HH:mm:ss'Z'.:<br/>ComplianceType:  Specify the compliance type. For example, specify Association (for a State Manager association), Patch, or Custom:<code>string</code>.<br/>ResourceType:  Specify the type of resource. <code>ManagedInstance</code> is currently the only supported resource type.<br/>ResourceId:  Specify an ID for this resource. For a managed instance, this is the instance ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExecutionType</i> The type of execution. For example, <code>Command</code> is a valid execution type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExecutionId</i> An ID created by the system when <code>PutComplianceItems</code> was called. For example, <code>CommandID</code> is a valid execution ID. You can use this ID in subsequent calls.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExecutionTime</i> The time the execution ran as a datetime object that is saved in the following format: yyyy-MM-dd'T'HH:mm:ss'Z'.<br/>
        :return:         """
        pass

    def put_inventory(self, Items: List[InventoryItem], InstanceId: str) -> PutInventoryResult:
        r"""Bulk update custom inventory items on one more instance. The request adds an inventory item, if it doesn't already exist, or updates an inventory item, if it does exist.

        :param self:
        :param Items:  The inventory items that you want to add or update on instances.<br/>InstanceId:  An instance ID where you want to add or update inventory items.<br/>
        :return: Message:  Information about the request.<br/>        """
        pass

    def put_parameter(self, Value: str, Name: str, Description: str=None, Type: str=None, KeyId: str=None, Overwrite: Boolean=None, AllowedPattern: str=None, Tags: List[Tag]=None, Tier: str=None, Policies: str=None, DataType: str=None) -> PutParameterResult:
        r"""Add a parameter to the system.

        :param self:
        :param DataType:  The data type for a <code>String</code> parameter. Supported data types include plain text and Amazon Machine Image IDs.  <b>The following data type values are supported.</b>  <ul> <li>  <code>text</code>  </li> <li>  <code>aws:ec2:image</code>  </li> </ul> When you create a <code>String</code> parameter and specify <code>aws:ec2:image</code>, Systems Manager validates the parameter value is in the required format, such as <code>ami-12345abcdeEXAMPLE</code>, and that the specified AMI is available in your AWS account. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-ec2-aliases.html">Native parameter support for Amazon Machine Image IDs</a> in the <i>AWS Systems Manager User Guide</i>.<br/>Policies:  One or more policies to apply to a parameter. This action takes a JSON array. Parameter Store supports the following policy types: Expiration: This policy deletes the parameter after it expires. When you create the policy, you specify the expiration date. You can update the expiration date and time by updating the policy. Updating the <i>parameter</i> does not affect the expiration date and time. When the expiration time is reached, Parameter Store deletes the parameter. ExpirationNotification: This policy triggers an event in Amazon CloudWatch Events that notifies you about the expiration. By using this policy, you can receive notification before or after the expiration time is reached, in units of days or hours. NoChangeNotification: This policy triggers a CloudWatch event if a parameter has not been modified for a specified period of time. This policy type is useful when, for example, a secret needs to be changed within a period of time, but it has not been changed. All existing policies are preserved until you send new policies or an empty policy. For more information about parameter policies, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-policies.html">Assigning parameter policies</a>. <br/>Tier:  The parameter tier to assign to a parameter. Parameter Store offers a standard tier and an advanced tier for parameters. Standard parameters have a content size limit of 4 KB and can't be configured to use parameter policies. You can create a maximum of 10,000 standard parameters for each Region in an AWS account. Standard parameters are offered at no additional cost.  Advanced parameters have a content size limit of 8 KB and can be configured to use parameter policies. You can create a maximum of 100,000 advanced parameters for each Region in an AWS account. Advanced parameters incur a charge. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-advanced-parameters.html">Standard and advanced parameter tiers</a> in the <i>AWS Systems Manager User Guide</i>. You can change a standard parameter to an advanced parameter any time. But you can't revert an advanced parameter to a standard parameter. Reverting an advanced parameter to a standard parameter would result in data loss because the system would truncate the size of the parameter from 8 KB to 4 KB. Reverting would also remove any policies attached to the parameter. Lastly, advanced parameters use a different form of encryption than standard parameters.  If you no longer need an advanced parameter, or if you no longer want to incur charges for an advanced parameter, you must delete it and recreate it as a new standard parameter.   <b>Using the Default Tier Configuration</b>  In <code>PutParameter</code> requests, you can specify the tier to create the parameter in. Whenever you specify a tier in the request, Parameter Store creates or updates the parameter according to that request. However, if you do not specify a tier in a request, Parameter Store assigns the tier based on the current Parameter Store default tier configuration. The default tier when you begin using Parameter Store is the standard-parameter tier. If you use the advanced-parameter tier, you can specify one of the following as the default: <ul> <li>  <b>Advanced</b>: With this option, Parameter Store evaluates all requests as advanced parameters.  </li> <li>  <b>Intelligent-Tiering</b>: With this option, Parameter Store evaluates each request to determine if the parameter is standard or advanced.  If the request doesn't include any options that require an advanced parameter, the parameter is created in the standard-parameter tier. If one or more options requiring an advanced parameter are included in the request, Parameter Store create a parameter in the advanced-parameter tier. This approach helps control your parameter-related costs by always creating standard parameters unless an advanced parameter is necessary.  </li> </ul> Options that require an advanced parameter include the following: <ul> <li> The content size of the parameter is more than 4 KB. </li> <li> The parameter uses a parameter policy. </li> <li> More than 10,000 parameters already exist in your AWS account in the current Region. </li> </ul> For more information about configuring the default tier option, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/ps-default-tier.html">Specifying a default parameter tier</a> in the <i>AWS Systems Manager User Guide</i>.<br/>Tags:  Optional metadata that you assign to a resource. Tags enable you to categorize a resource in different ways, such as by purpose, owner, or environment. For example, you might want to tag a Systems Manager parameter to identify the type of resource to which it applies, the environment, or the type of configuration data referenced by the parameter. In this case, you could specify the following key name/value pairs: <ul> <li>  <code>Key=Resource,Value=S3bucket</code>  </li> <li>  <code>Key=OS,Value=Windows</code>  </li> <li>  <code>Key=ParameterType,Value=LicenseKey</code>  </li> </ul> <note> To add tags to an existing Systems Manager parameter, use the <a>AddTagsToResource</a> action. </note><br/>AllowedPattern:  A regular expression used to validate the parameter value. For example, for String types with values restricted to numbers, you can specify the following: AllowedPattern=^\d+$ <br/>Overwrite:  Overwrite an existing parameter. The default value is 'false'.<br/>KeyId:  The KMS Key ID that you want to use to encrypt a parameter. Either the default AWS Key Management Service (AWS KMS) key automatically assigned to your AWS account or a custom key. Required for parameters that use the <code>SecureString</code> data type. If you don't specify a key ID, the system uses the default key associated with your AWS account. <ul> <li> To use your default AWS KMS key, choose the <code>SecureString</code> data type, and do <i>not</i> specify the <code>Key ID</code> when you create the parameter. The system automatically populates <code>Key ID</code> with your default KMS key. </li> <li> To use a custom KMS key, choose the <code>SecureString</code> data type with the <code>Key ID</code> parameter. </li> </ul><br/>Type:  The type of parameter that you want to add to the system. <note>  <code>SecureString</code> is not currently supported for AWS CloudFormation templates. </note> Items in a <code>StringList</code> must be separated by a comma (,). You can't use other punctuation or special character to escape items in the list. If you have a parameter value that requires a comma, then use the <code>String</code> data type. <important> Specifying a parameter type is not required when updating a parameter. You must specify a parameter type when creating a parameter. </important><br/>Value:  The parameter value that you want to add to the system. Standard parameters have a value limit of 4 KB. Advanced parameters have a value limit of 8 KB. <note> Parameters can't be referenced or nested in the values of other parameters. You can't include <code>{{}}</code> or <code>{{ssm:<i>parameter-name</i>}}</code> in a parameter value. </note><br/>Description:  Information about the parameter that you want to add to the system. Optional but recommended. <important> Do not enter personally identifiable information in this field. </important><br/>Name:  The fully qualified name of the parameter that you want to add to the system. The fully qualified name includes the complete hierarchy of the parameter path and name. For parameters in a hierarchy, you must include a leading forward slash character (/) when you create or reference a parameter. For example: <code>/Dev/DBServer/MySQL/db-string13</code>  Naming Constraints: <ul> <li> Parameter names are case sensitive. </li> <li> A parameter name must be unique within an AWS Region </li> <li> A parameter name can't be prefixed with "aws" or "ssm" (case-insensitive). </li> <li> Parameter names can include only the following symbols and letters: <code>a-zA-Z0-9_.-</code>  In addition, the slash character ( / ) is used to delineate hierarchies in parameter names. For example: <code>/Dev/Production/East/Project-ABC/MyParameter</code>  </li> <li> A parameter name can't include spaces. </li> <li> Parameter hierarchies are limited to a maximum depth of fifteen levels. </li> </ul> For additional information about valid values for parameter names, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-su-create.html">Creating Systems Manager parameters</a> in the <i>AWS Systems Manager User Guide</i>. <note> The maximum length constraint listed below includes capacity for additional system attributes that are not part of the name. The maximum length for a parameter name, including the full length of the parameter ARN, is 1011 characters. For example, the length of the following parameter name is 65 characters, not 20 characters:  <code>arn:aws:ssm:us-east-2:111122223333:parameter/ExampleParameterName</code>  </note><br/>
        :return: Tier:  The tier assigned to the parameter.<br/>Version:  The new version number of a parameter. If you edit a parameter value, Parameter Store automatically creates a new version and assigns this new version a unique ID. You can reference a parameter version ID in API actions or in Systems Manager documents (SSM documents). By default, if you don't specify a specific version, the system returns the latest parameter value when a parameter is called.<br/>        """
        pass

    def register_default_patch_baseline(self, BaselineId: str) -> RegisterDefaultPatchBaselineResult:
        r"""Defines the default patch baseline for the relevant operating system. To reset the AWS predefined patch baseline as the default, specify the full patch baseline ARN as the baseline ID value. For example, for CentOS, specify <code>arn:aws:ssm:us-east-2:733109147000:patchbaseline/pb-0574b43a65ea646ed</code> instead of <code>pb-0574b43a65ea646ed</code>.

        :param self:
        :param BaselineId:  The ID of the patch baseline that should be the default patch baseline.<br/>
        :return: BaselineId:  The ID of the default patch baseline.<br/>        """
        pass

    def register_patch_baseline_for_patch_group(self, PatchGroup: str, BaselineId: str) -> RegisterPatchBaselineForPatchGroupResult:
        r"""Registers a patch baseline for a patch group.

        :param self:
        :param PatchGroup:  The name of the patch group that should be registered with the patch baseline.<br/>BaselineId:  The ID of the patch baseline to register the patch group with.<br/>
        :return: PatchGroup:  The name of the patch group registered with the patch baseline.<br/>BaselineId:  The ID of the patch baseline the patch group was registered with.<br/>        """
        pass

    def register_target_with_maintenance_window(self, Targets: List[Target], ResourceType: str, WindowId: str, OwnerInformation: str=None, Name: str=None, Description: str=None, ClientToken: str=None) -> RegisterTargetWithMaintenanceWindowResult:
        r"""Registers a target with a maintenance window.

        :param self:
        :param ClientToken:  User-provided idempotency token.<br/>Description:  An optional description for the target.<br/>Name:  An optional name for the target.<br/>OwnerInformation:  User-provided value that will be included in any CloudWatch events raised while running tasks for these targets in this maintenance window.<br/>Targets:  The targets to register with the maintenance window. In other words, the instances to run commands on when the maintenance window runs. <note> If a single maintenance window task is registered with multiple targets, its task invocations occur sequentially and not in parallel. If your task must run on multiple targets at the same time, register a task for each target individually and assign each task the same priority level. </note> You can specify targets using instance IDs, resource group names, or tags that have been applied to instances.  <b>Example 1</b>: Specify instance IDs  <code>Key=InstanceIds,Values=<i>instance-id-1</i>,<i>instance-id-2</i>,<i>instance-id-3</i> </code>   <b>Example 2</b>: Use tag key-pairs applied to instances  <code>Key=tag:<i>my-tag-key</i>,Values=<i>my-tag-value-1</i>,<i>my-tag-value-2</i> </code>   <b>Example 3</b>: Use tag-keys applied to instances  <code>Key=tag-key,Values=<i>my-tag-key-1</i>,<i>my-tag-key-2</i> </code>   <b>Example 4</b>: Use resource group names  <code>Key=resource-groups:Name,Values=<i>resource-group-name</i> </code>   <b>Example 5</b>: Use filters for resource group types  <code>Key=resource-groups:ResourceTypeFilters,Values=<i>resource-type-1</i>,<i>resource-type-2</i> </code>  <note> For <code>Key=resource-groups:ResourceTypeFilters</code>, specify resource types in the following format  <code>Key=resource-groups:ResourceTypeFilters,Values=<i>AWS::EC2::INSTANCE</i>,<i>AWS::EC2::VPC</i> </code>  </note> For more information about these examples formats, including the best use case for each one, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/mw-cli-tutorial-targets-examples.html">Examples: Register targets with a maintenance window</a> in the <i>AWS Systems Manager User Guide</i>.<br/>ResourceType:  The type of target being registered with the maintenance window.<br/>WindowId:  The ID of the maintenance window the target should be registered with.<br/>
        :return: WindowTargetId:  The ID of the target definition in this maintenance window.<br/>        """
        pass

    def register_task_with_maintenance_window(self, TaskType: str, TaskArn: str, WindowId: str, Targets: List[Target]=None, ServiceRoleArn: str=None, TaskParameters: MaintenanceWindowTaskParameters=None, TaskInvocationParameters: MaintenanceWindowTaskInvocationParameters=None, Priority: int=None, MaxConcurrency: str=None, MaxErrors: str=None, LoggingInfo: LoggingInfo=None, Name: str=None, Description: str=None, ClientToken: str=None) -> RegisterTaskWithMaintenanceWindowResult:
        r"""Adds a new task to a maintenance window.

        :param self:
        :param ClientToken:  User-provided idempotency token.<br/>Description:  An optional description for the task.<br/>Name:  An optional name for the task.<br/>LoggingInfo:  A structure containing information about an S3 bucket to write instance-level logs to.  <note>  <code>LoggingInfo</code> has been deprecated. To specify an S3 bucket to contain logs, instead use the <code>OutputS3BucketName</code> and <code>OutputS3KeyPrefix</code> options in the <code>TaskInvocationParameters</code> structure. For information about how Systems Manager handles these options for the supported maintenance window task types, see <a>MaintenanceWindowTaskInvocationParameters</a>. </note>:<br/>MaxErrors:  The maximum number of errors allowed before this task stops being scheduled. <note> For maintenance window tasks without a target specified, you cannot supply a value for this option. Instead, the system inserts a placeholder value of <code>1</code>. This value does not affect the running of your task. </note><br/>MaxConcurrency:  The maximum number of targets this task can be run for in parallel. <note> For maintenance window tasks without a target specified, you cannot supply a value for this option. Instead, the system inserts a placeholder value of <code>1</code>. This value does not affect the running of your task. </note><br/>Priority:  The priority of the task in the maintenance window, the lower the number the higher the priority. Tasks in a maintenance window are scheduled in priority order with tasks that have the same priority scheduled in parallel.<br/>TaskInvocationParameters:  The parameters that the task should use during execution. Populate only the fields that match the task type. All other fields should be empty. :<br/>TaskParameters:  The parameters that should be passed to the task when it is run. <note>  <code>TaskParameters</code> has been deprecated. To specify parameters to pass to a task when it runs, instead use the <code>Parameters</code> option in the <code>TaskInvocationParameters</code> structure. For information about how Systems Manager handles these options for the supported maintenance window task types, see <a>MaintenanceWindowTaskInvocationParameters</a>. </note><br/>TaskType:  The type of task being registered.<br/>ServiceRoleArn:  The ARN of the IAM service role for Systems Manager to assume when running a maintenance window task. If you do not specify a service role ARN, Systems Manager uses your account's service-linked role. If no service-linked role for Systems Manager exists in your account, it is created when you run <code>RegisterTaskWithMaintenanceWindow</code>. For more information, see the following topics in the in the <i>AWS Systems Manager User Guide</i>: <ul> <li>  <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/using-service-linked-roles.html#slr-permissions">Using service-linked roles for Systems Manager</a>  </li> <li>  <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-maintenance-permissions.html#maintenance-window-tasks-service-role">Should I use a service-linked role or a custom service role to run maintenance window tasks? </a>  </li> </ul><br/>TaskArn:  The ARN of the task to run.<br/>Targets:  The targets (either instances or maintenance window targets). <note> One or more targets must be specified for maintenance window Run Command-type tasks. Depending on the task, targets are optional for other maintenance window task types (Automation, AWS Lambda, and AWS Step Functions). For more information about running tasks that do not specify targets, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/maintenance-windows-targetless-tasks.html">Registering maintenance window tasks without targets</a> in the <i>AWS Systems Manager User Guide</i>. </note> Specify instances using the following format:   <code>Key=InstanceIds,Values=&lt;instance-id-1&gt;,&lt;instance-id-2&gt;</code>  Specify maintenance window targets using the following format:  <code>Key=WindowTargetIds,Values=&lt;window-target-id-1&gt;,&lt;window-target-id-2&gt;</code> <br/>WindowId:  The ID of the maintenance window the task should be added to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Lambda</i> The parameters for a LAMBDA task type.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Lambda</b>: The parameters for a LAMBDA task type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StepFunctions</i> The parameters for a STEP_FUNCTIONS task type.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StepFunctions</b>: The parameters for a STEP_FUNCTIONS task type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Automation</i> The parameters for an AUTOMATION task type.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Automation</b>: The parameters for an AUTOMATION task type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RunCommand</i> The parameters for a RUN_COMMAND task type.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RunCommand</b>: The parameters for a RUN_COMMAND task type.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Comment</i> Information about the commands to run.<br/>Configuration options for sending command output to CloudWatch Logs.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CloudWatchOutputConfig</b>: Configuration options for sending command output to CloudWatch Logs.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Parameters</i> The parameters for the AUTOMATION task. For information about specifying and updating task parameters, see <a>RegisterTaskWithMaintenanceWindow</a> and <a>UpdateMaintenanceWindowTask</a>. <note>  <code>LoggingInfo</code> has been deprecated. To specify an S3 bucket to contain logs, instead use the <code>OutputS3BucketName</code> and <code>OutputS3KeyPrefix</code> options in the <code>TaskInvocationParameters</code> structure. For information about how Systems Manager handles these options for the supported maintenance window task types, see <a>MaintenanceWindowTaskInvocationParameters</a>.  <code>TaskParameters</code> has been deprecated. To specify parameters to pass to a task when it runs, instead use the <code>Parameters</code> option in the <code>TaskInvocationParameters</code> structure. For information about how Systems Manager handles these options for the supported maintenance window task types, see <a>MaintenanceWindowTaskInvocationParameters</a>. For AUTOMATION task types, Systems Manager ignores any values specified for these parameters. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DocumentVersion</i> The version of an Automation document to use during task execution.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the STEP_FUNCTIONS task.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Input</i> The inputs for the STEP_FUNCTIONS task.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Payload</i> JSON to provide to your Lambda function as input.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Qualifier</i> (Optional) Specify a Lambda function version or alias name. If you specify a function version, the action uses the qualified function ARN to invoke a specific Lambda function. If you specify an alias name, the action uses the alias ARN to invoke the Lambda function version to which the alias points.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClientContext</i> Pass client-specific information to the Lambda function that you are invoking. You can then process the client information in your Lambda function as you choose through the context variable.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Region</i> The Region where the S3 bucket is located.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3KeyPrefix</i> (Optional) The S3 bucket subfolder. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3BucketName</i> The name of an S3 bucket where execution logs are stored .<br/>
        :return: WindowTaskId:  The ID of the task in the maintenance window.<br/>        """
        pass

    def remove_tags_from_resource(self, TagKeys: List[TagKey], ResourceId: str, ResourceType: str) -> RemoveTagsFromResourceResult:
        r"""Removes tag keys from the specified resource.

        :param self:
        :param TagKeys:  Tag keys that you want to remove from the specified resource.<br/>ResourceId:  The ID of the resource from which you want to remove tags. For example: ManagedInstance: mi-012345abcde MaintenanceWindow: mw-012345abcde PatchBaseline: pb-012345abcde OpsMetadata object: <code>ResourceID</code> for tagging is created from the Amazon Resource Name (ARN) for the object. Specifically, <code>ResourceID</code> is created from the strings that come after the word <code>opsmetadata</code> in the ARN. For example, an OpsMetadata object with an ARN of <code>arn:aws:ssm:us-east-2:1234567890:opsmetadata/aws/ssm/MyGroup/appmanager</code> has a <code>ResourceID</code> of either <code>aws/ssm/MyGroup/appmanager</code> or <code>/aws/ssm/MyGroup/appmanager</code>. For the Document and Parameter values, use the name of the resource. <note> The ManagedInstance type for this API action is only for on-premises managed instances. Specify the name of the managed instance in the following format: mi-ID_number. For example, mi-1a2b3c4d5e6f. </note><br/>ResourceType:  The type of resource from which you want to remove a tag. <note> The ManagedInstance type for this API action is only for on-premises managed instances. Specify the name of the managed instance in the following format: mi-ID_number. For example, mi-1a2b3c4d5e6f. </note><br/>
        :return:         """
        pass

    def reset_service_setting(self, SettingId: str) -> ResetServiceSettingResult:
        r""" <code>ServiceSetting</code> is an account-level setting for an AWS service. This setting defines how a user interacts with or uses a service or a feature of a service. For example, if an AWS service charges money to the account based on feature or service usage, then the AWS service team might create a default setting of "false". This means the user can't use this feature unless they change the setting to "true" and intentionally opt in for a paid feature. Services map a <code>SettingId</code> object to a setting value. AWS services teams define the default value for a <code>SettingId</code>. You can't create a new <code>SettingId</code>, but you can overwrite the default value if you have the <code>ssm:UpdateServiceSetting</code> permission for the setting. Use the <a>GetServiceSetting</a> API action to view the current value. Use the <a>UpdateServiceSetting</a> API action to change the default setting.  Reset the service setting for the account to the default value as provisioned by the AWS service team. 

        :param self:
        :param SettingId:  The Amazon Resource Name (ARN) of the service setting to reset. The setting ID can be one of the following. <ul> <li>  <code>/ssm/automation/customer-script-log-destination</code>  </li> <li>  <code>/ssm/automation/customer-script-log-group-name</code>  </li> <li>  <code>/ssm/documents/console/public-sharing-permission</code>  </li> <li>  <code>/ssm/parameter-store/default-parameter-tier</code>  </li> <li>  <code>/ssm/parameter-store/high-throughput-enabled</code>  </li> <li>  <code>/ssm/managed-instance/activation-tier</code>  </li> </ul><br/>
        :return: ServiceSetting:  The current, effective service setting after calling the ResetServiceSetting API action.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the service setting. The value can be Default, Customized or PendingUpdate. <ul> <li> Default: The current setting uses a default value provisioned by the AWS service team. </li> <li> Customized: The current setting use a custom value specified by the customer. </li> <li> PendingUpdate: The current setting uses a default or custom value, but a setting change request is pending approval. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ARN</i> The ARN of the service setting.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedUser</i> The ARN of the last modified user. This field is populated only if the setting value was overwritten.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedDate</i> The last time the service setting was modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SettingValue</i> The value of the service setting.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SettingId</i> The ID of the service setting.<br/>        """
        pass

    def resume_session(self, SessionId: str) -> ResumeSessionResponse:
        r"""Reconnects a session to an instance after it has been disconnected. Connections can be resumed for disconnected sessions, but not terminated sessions. <note> This command is primarily for use by client machines to automatically reconnect during intermittent network issues. It is not intended for any other use. </note>

        :param self:
        :param SessionId:  The ID of the disconnected session to resume.<br/>
        :return: StreamUrl:  A URL back to SSM Agent on the instance that the Session Manager client uses to send commands and receive output from the instance. Format: <code>wss://ssmmessages.<b>region</b>.amazonaws.com/v1/data-channel/<b>session-id</b>?stream=(input|output)</code>.  <b>region</b> represents the Region identifier for an AWS Region supported by AWS Systems Manager, such as <code>us-east-2</code> for the US East (Ohio) Region. For a list of supported <b>region</b> values, see the <b>Region</b> column in <a href="http://docs.aws.amazon.com/general/latest/gr/ssm.html#ssm_region">Systems Manager service endpoints</a> in the <i>AWS General Reference</i>.  <b>session-id</b> represents the ID of a Session Manager session, such as <code>1a2b3c4dEXAMPLE</code>.<br/>TokenValue:  An encrypted token value containing session and caller information. Used to authenticate the connection to the instance.<br/>SessionId:  The ID of the session.<br/>        """
        pass

    def send_automation_signal(self, SignalType: str, AutomationExecutionId: str, Payload: AutomationParameterMap=None) -> SendAutomationSignalResult:
        r"""Sends a signal to an Automation execution to change the current behavior or status of the execution. 

        :param self:
        :param Payload:  The data sent with the signal. The data schema depends on the type of signal used in the request. For <code>Approve</code> and <code>Reject</code> signal types, the payload is an optional comment that you can send with the signal type. For example:  <code>Comment="Looks good"</code>  For <code>StartStep</code> and <code>Resume</code> signal types, you must send the name of the Automation step to start or resume as the payload. For example:  <code>StepName="step1"</code>  For the <code>StopStep</code> signal type, you must send the step execution ID as the payload. For example:  <code>StepExecutionId="97fff367-fc5a-4299-aed8-0123456789ab"</code> <br/>SignalType:  The type of signal to send to an Automation execution. <br/>AutomationExecutionId:  The unique identifier for an existing Automation execution that you want to send the signal to.<br/>
        :return:         """
        pass

    def send_command(self, DocumentName: str, InstanceIds: List[InstanceId]=None, Targets: List[Target]=None, DocumentVersion: str=None, DocumentHash: str=None, DocumentHashType: str=None, TimeoutSeconds: int=None, Comment: str=None, Parameters: Parameters=None, OutputS3Region: str=None, OutputS3BucketName: str=None, OutputS3KeyPrefix: str=None, MaxConcurrency: str=None, MaxErrors: str=None, ServiceRoleArn: str=None, NotificationConfig: NotificationConfig=None, CloudWatchOutputConfig: CloudWatchOutputConfig=None) -> SendCommandResult:
        r"""Runs commands on one or more managed instances.

        :param self:
        :param CloudWatchOutputConfig:  Enables Systems Manager to send Run Command output to Amazon CloudWatch Logs. :<br/>NotificationConfig:  Configurations for sending notifications.:<br/>ServiceRoleArn:  The ARN of the IAM service role to use to publish Amazon Simple Notification Service (Amazon SNS) notifications for Run Command commands.<br/>MaxErrors:  The maximum number of errors allowed without the command failing. When the command fails one more time beyond the value of MaxErrors, the systems stops sending the command to additional targets. You can specify a number like 10 or a percentage like 10%. The default value is 0. For more information about how to use MaxErrors, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/send-commands-multiple.html#send-commands-maxerrors">Using error controls</a> in the <i>AWS Systems Manager User Guide</i>.<br/>MaxConcurrency:  (Optional) The maximum number of instances that are allowed to run the command at the same time. You can specify a number such as 10 or a percentage such as 10%. The default value is 50. For more information about how to use MaxConcurrency, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/send-commands-multiple.html#send-commands-velocity">Using concurrency controls</a> in the <i>AWS Systems Manager User Guide</i>.<br/>OutputS3KeyPrefix:  The directory structure within the S3 bucket where the responses should be stored.<br/>OutputS3BucketName:  The name of the S3 bucket where command execution responses should be stored.<br/>OutputS3Region:  (Deprecated) You can no longer specify this parameter. The system ignores it. Instead, Systems Manager automatically determines the Region of the S3 bucket.<br/>Parameters:  The required and optional parameters specified in the document being run.<br/>Comment:  User-specified information about the command, such as a brief description of what the command should do.<br/>TimeoutSeconds:  If this time is reached and the command has not already started running, it will not run.<br/>DocumentHashType:  Sha256 or Sha1. <note> Sha1 hashes have been deprecated. </note><br/>DocumentHash:  The Sha256 or Sha1 hash created by the system when the document was created.  <note> Sha1 hashes have been deprecated. </note><br/>DocumentVersion:  The SSM document version to use in the request. You can specify $DEFAULT, $LATEST, or a specific version number. If you run commands by using the AWS CLI, then you must escape the first two options by using a backslash. If you specify a version number, then you don't need to use the backslash. For example: --document-version "\$DEFAULT" --document-version "\$LATEST" --document-version "3"<br/>DocumentName:  The name of the Systems Manager document to run. This can be a public document or a custom document. To run a shared document belonging to another account, specify the document ARN. For more information about how to use shared documents, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-using-shared.html">Using shared SSM documents</a> in the <i>AWS Systems Manager User Guide</i>.<br/>Targets:  An array of search criteria that targets instances using a <code>Key,Value</code> combination that you specify. Specifying targets is most useful when you want to send a command to a large number of instances at once. Using <code>Targets</code>, which accepts tag key-value pairs to identify instances, you can send a command to tens, hundreds, or thousands of instances at once. To send a command to a smaller number of instances, you can use the <code>InstanceIds</code> option instead. For more information about how to use targets, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/send-commands-multiple.html">Sending commands to a fleet</a> in the <i>AWS Systems Manager User Guide</i>.<br/>InstanceIds:  The IDs of the instances where the command should run. Specifying instance IDs is most useful when you are targeting a limited number of instances, though you can specify up to 50 IDs. To target a larger number of instances, or if you prefer not to list individual instance IDs, we recommend using the <code>Targets</code> option instead. Using <code>Targets</code>, which accepts tag key-value pairs to identify the instances to send commands to, you can a send command to tens, hundreds, or thousands of instances at once. For more information about how to use targets, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/send-commands-multiple.html">Using targets and rate controls to send commands to a fleet</a> in the <i>AWS Systems Manager User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NotificationType</i> Command: Receive notification when the status of a command changes. Invocation: For commands sent to multiple instances, receive notification on a per-instance basis when the status of a command changes. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NotificationEvents</i> The different events for which you can receive notifications. These events include the following: All (events), InProgress, Success, TimedOut, Cancelled, Failed. To learn more about these events, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/monitoring-sns-notifications.html">Monitoring Systems Manager status changes using Amazon SNS notifications</a> in the <i>AWS Systems Manager User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NotificationArn</i> An Amazon Resource Name (ARN) for an Amazon Simple Notification Service (Amazon SNS) topic. Run Command pushes notifications about command status changes to this topic.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudWatchOutputEnabled</i> Enables Systems Manager to send command output to CloudWatch Logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudWatchLogGroupName</i> The name of the CloudWatch log group where you want to send command output. If you don't specify a group name, Systems Manager automatically creates a log group for you. The log group uses the following naming format: aws/ssm/<i>SystemsManagerDocumentName</i>.<br/>
        :return: Command:  The request as it was received by Systems Manager. Also provides the command ID which can be used future references to this request.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TimeoutSeconds</i> The <code>TimeoutSeconds</code> value specified for a command.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudWatchOutputConfig</i> CloudWatch Logs information where you want Systems Manager to send the command output.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CloudWatchOutputConfig</b>: CloudWatch Logs information where you want Systems Manager to send the command output.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NotificationConfig</i> Configurations for sending notifications about command status changes. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>NotificationConfig</b>: Configurations for sending notifications about command status changes. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceRole</i> The IAM service role that Run Command uses to act on your behalf when sending notifications about command status changes. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeliveryTimedOutCount</i> The number of targets for which the status is Delivery Timed Out.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ErrorCount</i> The number of targets for which the status is Failed or Execution Timed Out.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CompletedCount</i> The number of targets for which the command invocation reached a terminal state. Terminal states include the following: Success, Failed, Execution Timed Out, Delivery Timed Out, Canceled, Terminated, or Undeliverable.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetCount</i> The number of targets for the command.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxErrors</i> The maximum number of errors allowed before the system stops sending the command to additional targets. You can specify a number of errors, such as 10, or a percentage or errors, such as 10%. The default value is 0. For more information about how to use MaxErrors, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/run-command.html">Running commands using Systems Manager Run Command</a> in the <i>AWS Systems Manager User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxConcurrency</i> The maximum number of instances that are allowed to run the command at the same time. You can specify a number of instances, such as 10, or a percentage of instances, such as 10%. The default value is 50. For more information about how to use MaxConcurrency, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/run-command.html">Running commands using Systems Manager Run Command</a> in the <i>AWS Systems Manager User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OutputS3KeyPrefix</i> The S3 directory path inside the bucket where the responses to the command executions should be stored. This was requested when issuing the command.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OutputS3BucketName</i> The S3 bucket where the responses to the command executions should be stored. This was requested when issuing the command.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OutputS3Region</i> (Deprecated) You can no longer specify this parameter. The system ignores it. Instead, Systems Manager automatically determines the Region of the S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusDetails</i> A detailed status of the command execution. StatusDetails includes more information than Status because it includes states resulting from error and concurrency control parameters. StatusDetails can show different results than Status. For more information about these statuses, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/monitor-commands.html">Understanding command statuses</a> in the <i>AWS Systems Manager User Guide</i>. StatusDetails can be one of the following values: <ul> <li> Pending: The command has not been sent to any instances. </li> <li> In Progress: The command has been sent to at least one instance but has not reached a final state on all instances. </li> <li> Success: The command successfully ran on all invocations. This is a terminal state. </li> <li> Delivery Timed Out: The value of MaxErrors or more command invocations shows a status of Delivery Timed Out. This is a terminal state. </li> <li> Execution Timed Out: The value of MaxErrors or more command invocations shows a status of Execution Timed Out. This is a terminal state. </li> <li> Failed: The value of MaxErrors or more command invocations shows a status of Failed. This is a terminal state. </li> <li> Incomplete: The command was attempted on all instances and one or more invocations does not have a value of Success but not enough invocations failed for the status to be Failed. This is a terminal state. </li> <li> Canceled: The command was terminated before it was completed. This is a terminal state. </li> <li> Rate Exceeded: The number of instances targeted by the command exceeded the account limit for pending invocations. The system has canceled the command before running it on any instance. This is a terminal state. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the command.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequestedDateTime</i> The date and time the command was requested.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Targets</i> An array of search criteria that targets instances using a Key,Value combination that you specify. Targets is required if you don't provide one or more instance IDs in the call.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceIds</i> The instance IDs against which this command was requested.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Parameters</i> The parameter values to be inserted in the document when running the command.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExpiresAfter</i> If this time is reached and the command has not already started running, it will not run. Calculated based on the ExpiresAfter user input provided as part of the SendCommand API.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Comment</i> User-specified information about the command, such as a brief description of what the command should do.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DocumentVersion</i> The SSM document version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DocumentName</i> The name of the document requested for execution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CommandId</i> A unique identifier for this command.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NotificationType</i> Command: Receive notification when the status of a command changes. Invocation: For commands sent to multiple instances, receive notification on a per-instance basis when the status of a command changes. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NotificationEvents</i> The different events for which you can receive notifications. These events include the following: All (events), InProgress, Success, TimedOut, Cancelled, Failed. To learn more about these events, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/monitoring-sns-notifications.html">Monitoring Systems Manager status changes using Amazon SNS notifications</a> in the <i>AWS Systems Manager User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NotificationArn</i> An Amazon Resource Name (ARN) for an Amazon Simple Notification Service (Amazon SNS) topic. Run Command pushes notifications about command status changes to this topic.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudWatchOutputEnabled</i> Enables Systems Manager to send command output to CloudWatch Logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudWatchLogGroupName</i> The name of the CloudWatch log group where you want to send command output. If you don't specify a group name, Systems Manager automatically creates a log group for you. The log group uses the following naming format: aws/ssm/<i>SystemsManagerDocumentName</i>.<br/>        """
        pass

    def start_associations_once(self, AssociationIds: List[AssociationId]) -> StartAssociationsOnceResult:
        r"""Use this API action to run an association immediately and only one time. This action can be helpful when troubleshooting associations.

        :param self:
        :param AssociationIds:  The association IDs that you want to run immediately and only one time.<br/>
        :return:         """
        pass

    def start_automation_execution(self, DocumentName: str, DocumentVersion: str=None, Parameters: AutomationParameterMap=None, ClientToken: str=None, Mode: str=None, TargetParameterName: str=None, Targets: List[Target]=None, TargetMaps: List[TargetMap]=None, MaxConcurrency: str=None, MaxErrors: str=None, TargetLocations: List[TargetLocation]=None, Tags: List[Tag]=None) -> StartAutomationExecutionResult:
        r"""Initiates execution of an Automation document.

        :param self:
        :param Tags:  Optional metadata that you assign to a resource. You can specify a maximum of five tags for an automation. Tags enable you to categorize a resource in different ways, such as by purpose, owner, or environment. For example, you might want to tag an automation to identify an environment or operating system. In this case, you could specify the following key name/value pairs: <ul> <li>  <code>Key=environment,Value=test</code>  </li> <li>  <code>Key=OS,Value=Windows</code>  </li> </ul> <note> To add tags to an existing patch baseline, use the <a>AddTagsToResource</a> action. </note><br/>TargetLocations:  A location is a combination of AWS Regions and/or AWS accounts where you want to run the Automation. Use this action to start an Automation in multiple Regions and multiple accounts. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-automation-multiple-accounts-and-regions.html">Running Automation workflows in multiple AWS Regions and accounts</a> in the <i>AWS Systems Manager User Guide</i>. <br/>MaxErrors:  The number of errors that are allowed before the system stops running the automation on additional targets. You can specify either an absolute number of errors, for example 10, or a percentage of the target set, for example 10%. If you specify 3, for example, the system stops running the automation when the fourth error is received. If you specify 0, then the system stops running the automation on additional targets after the first error result is returned. If you run an automation on 50 resources and set max-errors to 10%, then the system stops running the automation on additional targets when the sixth error is received. Executions that are already running an automation when max-errors is reached are allowed to complete, but some of these executions may fail as well. If you need to ensure that there won't be more than max-errors failed executions, set max-concurrency to 1 so the executions proceed one at a time.<br/>MaxConcurrency:  The maximum number of targets allowed to run this task in parallel. You can specify a number, such as 10, or a percentage, such as 10%. The default value is 10.<br/>TargetMaps:  A key-value mapping of document parameters to target resources. Both Targets and TargetMaps cannot be specified together.<br/>Targets:  A key-value mapping to target resources. Required if you specify TargetParameterName.<br/>TargetParameterName:  The name of the parameter used as the target resource for the rate-controlled execution. Required if you specify targets.<br/>Mode:  The execution mode of the automation. Valid modes include the following: Auto and Interactive. The default mode is Auto.<br/>ClientToken:  User-provided idempotency token. The token must be unique, is case insensitive, enforces the UUID format, and can't be reused.<br/>Parameters:  A key-value map of execution parameters, which match the declared parameters in the Automation document.<br/>DocumentVersion:  The version of the Automation document to use for this execution.<br/>DocumentName:  The name of the Systems Manager document to run. This can be a public document or a custom document. To run a shared document belonging to another account, specify the document ARN. For more information about how to use shared documents, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-using-shared.html">Using shared SSM documents</a> in the <i>AWS Systems Manager User Guide</i>.<br/>
        :return: AutomationExecutionId:  The unique ID of a newly scheduled automation execution.<br/>        """
        pass

    def start_change_request_execution(self, Runbooks: List[Runbook], DocumentName: str, ScheduledTime: DateTime=None, DocumentVersion: str=None, Parameters: AutomationParameterMap=None, ChangeRequestName: str=None, ClientToken: str=None, Tags: List[Tag]=None, ScheduledEndTime: DateTime=None, ChangeDetails: str=None) -> StartChangeRequestExecutionResult:
        r"""Creates a change request for Change Manager. The runbooks (Automation documents) specified in the change request run only after all required approvals for the change request have been received.

        :param self:
        :param ChangeDetails:  User-provided details about the change. If no details are provided, content specified in the <b>Template information</b> section of the associated change template is added.<br/>ScheduledEndTime:  The time that the requester expects the runbook workflow related to the change request to complete. The time is an estimate only that the requester provides for reviewers.<br/>Tags:  Optional metadata that you assign to a resource. You can specify a maximum of five tags for a change request. Tags enable you to categorize a resource in different ways, such as by purpose, owner, or environment. For example, you might want to tag a change request to identify an environment or target AWS Region. In this case, you could specify the following key-value pairs: <ul> <li>  <code>Key=Environment,Value=Production</code>  </li> <li>  <code>Key=Region,Value=us-east-2</code>  </li> </ul><br/>Runbooks:  Information about the Automation runbooks (Automation documents) that are run during the runbook workflow. <note> The Automation runbooks specified for the runbook workflow can't run until all required approvals for the change request have been received. </note><br/>ClientToken:  The user-provided idempotency token. The token must be unique, is case insensitive, enforces the UUID format, and can't be reused.<br/>ChangeRequestName:  The name of the change request associated with the runbook workflow to be run.<br/>Parameters:  A key-value map of parameters that match the declared parameters in the change template document.<br/>DocumentVersion:  The version of the change template document to run during the runbook workflow.<br/>DocumentName:  The name of the change template document to run during the runbook workflow.<br/>ScheduledTime:  The date and time specified in the change request to run the Automation runbooks. <note> The Automation runbooks specified for the runbook workflow can't run until all required approvals for the change request have been received. </note><br/>
        :return: AutomationExecutionId:  The unique ID of a runbook workflow operation. (A runbook workflow is a type of Automation operation.) <br/>        """
        pass

    def start_session(self, Target: str, DocumentName: str=None, Parameters: SessionManagerParameters=None) -> StartSessionResponse:
        r"""Initiates a connection to a target (for example, an instance) for a Session Manager session. Returns a URL and token that can be used to open a WebSocket connection for sending input and receiving outputs. <note> AWS CLI usage: <code>start-session</code> is an interactive command that requires the Session Manager plugin to be installed on the client machine making the call. For information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html">Install the Session Manager plugin for the AWS CLI</a> in the <i>AWS Systems Manager User Guide</i>. AWS Tools for PowerShell usage: Start-SSMSession is not currently supported by AWS Tools for PowerShell on Windows local machines. </note>

        :param self:
        :param Parameters:  Reserved for future use.<br/>DocumentName:  The name of the SSM document to define the parameters and plugin settings for the session. For example, <code>SSM-SessionManagerRunShell</code>. You can call the <a>GetDocument</a> API to verify the document exists before attempting to start a session. If no document name is provided, a shell to the instance is launched by default.<br/>Target:  The instance to connect to for the session.<br/>
        :return: StreamUrl:  A URL back to SSM Agent on the instance that the Session Manager client uses to send commands and receive output from the instance. Format: <code>wss://ssmmessages.<b>region</b>.amazonaws.com/v1/data-channel/<b>session-id</b>?stream=(input|output)</code>   <b>region</b> represents the Region identifier for an AWS Region supported by AWS Systems Manager, such as <code>us-east-2</code> for the US East (Ohio) Region. For a list of supported <b>region</b> values, see the <b>Region</b> column in <a href="http://docs.aws.amazon.com/general/latest/gr/ssm.html#ssm_region">Systems Manager service endpoints</a> in the <i>AWS General Reference</i>.  <b>session-id</b> represents the ID of a Session Manager session, such as <code>1a2b3c4dEXAMPLE</code>.<br/>TokenValue:  An encrypted token value containing session and caller information. Used to authenticate the connection to the instance.<br/>SessionId:  The ID of the session.<br/>        """
        pass

    def stop_automation_execution(self, AutomationExecutionId: str, Type: str=None) -> StopAutomationExecutionResult:
        r"""Stop an Automation that is currently running.

        :param self:
        :param Type:  The stop request type. Valid types include the following: Cancel and Complete. The default type is Cancel.<br/>AutomationExecutionId:  The execution ID of the Automation to stop.<br/>
        :return:         """
        pass

    def terminate_session(self, SessionId: str) -> TerminateSessionResponse:
        r"""Permanently ends a session and closes the data connection between the Session Manager client and SSM Agent on the instance. A terminated session cannot be resumed.

        :param self:
        :param SessionId:  The ID of the session to terminate.<br/>
        :return: SessionId:  The ID of the session that has been terminated.<br/>        """
        pass

    def unlabel_parameter_version(self, Labels: List[ParameterLabel], ParameterVersion: PSParameterVersion, Name: str) -> UnlabelParameterVersionResult:
        r"""Remove a label or labels from a parameter.

        :param self:
        :param Labels:  One or more labels to delete from the specified parameter version.<br/>ParameterVersion:  The specific version of the parameter which you want to delete one or more labels from. If it is not present, the call will fail.<br/>Name:  The parameter name of which you want to delete one or more labels.<br/>
        :return: InvalidLabels:  The labels that are not attached to the given parameter version.<br/>RemovedLabels:  A list of all labels deleted from the parameter.<br/>        """
        pass

    def update_association(self, AssociationId: str, Parameters: Parameters=None, DocumentVersion: str=None, ScheduleExpression: str=None, OutputLocation: InstanceAssociationOutputLocation=None, Name: str=None, Targets: List[Target]=None, AssociationName: str=None, AssociationVersion: str=None, AutomationTargetParameterName: str=None, MaxErrors: str=None, MaxConcurrency: str=None, ComplianceSeverity: str=None, SyncCompliance: str=None, ApplyOnlyAtCronInterval: ApplyOnlyAtCronInterval=None, CalendarNames: List[CalendarNameOrARN]=None, TargetLocations: List[TargetLocation]=None) -> UpdateAssociationResult:
        r"""Updates an association. You can update the association name and version, the document version, schedule, parameters, and Amazon S3 output.  In order to call this API action, your IAM user account, group, or role must be configured with permission to call the <a>DescribeAssociation</a> API action. If you don't have permission to call DescribeAssociation, then you receive the following error: <code>An error occurred (AccessDeniedException) when calling the UpdateAssociation operation: User: &lt;user_arn&gt; is not authorized to perform: ssm:DescribeAssociation on resource: &lt;resource_arn&gt;</code>  <important> When you update an association, the association immediately runs against the specified targets. </important>

        :param self:
        :param TargetLocations:  A location is a combination of AWS Regions and AWS accounts where you want to run the association. Use this action to update an association in multiple Regions and multiple accounts.<br/>CalendarNames:  The names or Amazon Resource Names (ARNs) of the Systems Manager Change Calendar type documents you want to gate your associations under. The associations only run when that Change Calendar is open. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-change-calendar">AWS Systems Manager Change Calendar</a>.<br/>ApplyOnlyAtCronInterval:  By default, when you update an association, the system runs it immediately after it is updated and then according to the schedule you specified. Specify this option if you don't want an association to run immediately after you update it. This parameter is not supported for rate expressions. Also, if you specified this option when you created the association, you can reset it. To do so, specify the <code>no-apply-only-at-cron-interval</code> parameter when you update the association from the command line. This parameter forces the association to run immediately after updating it and according to the interval specified.<br/>SyncCompliance:  The mode for generating association compliance. You can specify <code>AUTO</code> or <code>MANUAL</code>. In <code>AUTO</code> mode, the system uses the status of the association execution to determine the compliance status. If the association execution runs successfully, then the association is <code>COMPLIANT</code>. If the association execution doesn't run successfully, the association is <code>NON-COMPLIANT</code>. In <code>MANUAL</code> mode, you must specify the <code>AssociationId</code> as a parameter for the <a>PutComplianceItems</a> API action. In this case, compliance data is not managed by State Manager. It is managed by your direct call to the <a>PutComplianceItems</a> API action. By default, all associations use <code>AUTO</code> mode.<br/>ComplianceSeverity:  The severity level to assign to the association.<br/>MaxConcurrency:  The maximum number of targets allowed to run the association at the same time. You can specify a number, for example 10, or a percentage of the target set, for example 10%. The default value is 100%, which means all targets run the association at the same time. If a new instance starts and attempts to run an association while Systems Manager is running MaxConcurrency associations, the association is allowed to run. During the next association interval, the new instance will process its association within the limit specified for MaxConcurrency.<br/>MaxErrors:  The number of errors that are allowed before the system stops sending requests to run the association on additional targets. You can specify either an absolute number of errors, for example 10, or a percentage of the target set, for example 10%. If you specify 3, for example, the system stops sending requests when the fourth error is received. If you specify 0, then the system stops sending requests after the first error is returned. If you run an association on 50 instances and set MaxError to 10%, then the system stops sending the request when the sixth error is received. Executions that are already running an association when MaxErrors is reached are allowed to complete, but some of these executions may fail as well. If you need to ensure that there won't be more than max-errors failed executions, set MaxConcurrency to 1 so that executions proceed one at a time.<br/>AutomationTargetParameterName:  Specify the target for the association. This target is required for associations that use an Automation document and target resources by using rate controls.<br/>AssociationVersion:  This parameter is provided for concurrency control purposes. You must specify the latest association version in the service. If you want to ensure that this request succeeds, either specify <code>$LATEST</code>, or omit this parameter.<br/>AssociationName:  The name of the association that you want to update.<br/>Targets:  The targets of the association.<br/>Name:  The name of the SSM document that contains the configuration information for the instance. You can specify Command or Automation documents. You can specify AWS-predefined documents, documents you created, or a document that is shared with you from another account. For SSM documents that are shared with you from other AWS accounts, you must specify the complete SSM document ARN, in the following format:  <code>arn:aws:ssm:<i>region</i>:<i>account-id</i>:document/<i>document-name</i> </code>  For example:  <code>arn:aws:ssm:us-east-2:12345678912:document/My-Shared-Document</code>  For AWS-predefined documents and SSM documents you created in your account, you only need to specify the document name. For example, <code>AWS-ApplyPatchBaseline</code> or <code>My-Document</code>.<br/>OutputLocation:  An S3 bucket where you want to store the results of this request.:<br/>ScheduleExpression:  The cron expression used to schedule the association that you want to update.<br/>DocumentVersion:  The document version you want update for the association. <br/>Parameters:  The parameters you want to update for the association. If you create a parameter using Parameter Store, you can reference the parameter using {{ssm:parameter-name}}<br/>AssociationId:  The ID of the association you want to update. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Location</i> An S3 bucket where you want to store the results of this request.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3Location</b>: An S3 bucket where you want to store the results of this request.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OutputS3KeyPrefix</i> The S3 bucket subfolder.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OutputS3BucketName</i> The name of the S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OutputS3Region</i> (Deprecated) You can no longer specify this parameter. The system ignores it. Instead, Systems Manager automatically determines the Region of the S3 bucket.<br/>
        :return: AssociationDescription:  The description of the association that was updated.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetLocations</i> The combination of AWS Regions and AWS accounts where you want to run the association.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CalendarNames</i> The names or Amazon Resource Names (ARNs) of the Systems Manager Change Calendar type documents your associations are gated under. The associations only run when that Change Calendar is open. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-change-calendar">AWS Systems Manager Change Calendar</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplyOnlyAtCronInterval</i> By default, when you create a new associations, the system runs it immediately after it is created and then according to the schedule you specified. Specify this option if you don't want an association to run immediately after you create it. This parameter is not supported for rate expressions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SyncCompliance</i> The mode for generating association compliance. You can specify <code>AUTO</code> or <code>MANUAL</code>. In <code>AUTO</code> mode, the system uses the status of the association execution to determine the compliance status. If the association execution runs successfully, then the association is <code>COMPLIANT</code>. If the association execution doesn't run successfully, the association is <code>NON-COMPLIANT</code>. In <code>MANUAL</code> mode, you must specify the <code>AssociationId</code> as a parameter for the <a>PutComplianceItems</a> API action. In this case, compliance data is not managed by State Manager. It is managed by your direct call to the <a>PutComplianceItems</a> API action. By default, all associations use <code>AUTO</code> mode.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ComplianceSeverity</i> The severity level that is assigned to the association.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxConcurrency</i> The maximum number of targets allowed to run the association at the same time. You can specify a number, for example 10, or a percentage of the target set, for example 10%. The default value is 100%, which means all targets run the association at the same time. If a new instance starts and attempts to run an association while Systems Manager is running MaxConcurrency associations, the association is allowed to run. During the next association interval, the new instance will process its association within the limit specified for MaxConcurrency.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxErrors</i> The number of errors that are allowed before the system stops sending requests to run the association on additional targets. You can specify either an absolute number of errors, for example 10, or a percentage of the target set, for example 10%. If you specify 3, for example, the system stops sending requests when the fourth error is received. If you specify 0, then the system stops sending requests after the first error is returned. If you run an association on 50 instances and set MaxError to 10%, then the system stops sending the request when the sixth error is received. Executions that are already running an association when MaxErrors is reached are allowed to complete, but some of these executions may fail as well. If you need to ensure that there won't be more than max-errors failed executions, set MaxConcurrency to 1 so that executions proceed one at a time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociationName</i> The association name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastSuccessfulExecutionDate</i> The last date on which the association was successfully run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastExecutionDate</i> The date on which the association was last run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OutputLocation</i> An S3 bucket where you want to store the output details of the request.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>OutputLocation</b>: An S3 bucket where you want to store the output details of the request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ScheduleExpression</i> A cron expression that specifies a schedule when the association runs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Targets</i> The instances targeted by the request. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociationId</i> The association ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Parameters</i> A description of the parameters for a document. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomationTargetParameterName</i> Specify the target for the association. This target is required for associations that use an Automation document and target resources by using rate controls.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DocumentVersion</i> The document version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Overview</i> Information about the association.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Overview</b>: Information about the association.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The association status.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Status</b>: The association status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdateAssociationDate</i> The date when the association was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Date</i> The date when the association was made.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociationVersion</i> The association version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceId</i> The ID of the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the Systems Manager document.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AdditionalInfo</i> A user-defined string.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> The reason for the status.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The status.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Date</i> The date when the status changed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociationStatusAggregatedCount</i> Returns the number of targets for the association status. For example, if you created an association with two instances, and one of them was successful, this would return the count of instances by status.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DetailedStatus</i> A detailed status of the association.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the association. Status can be: Pending, Success, or Failed.<br/>An S3 bucket where you want to store the results of this request.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3Location</b>: An S3 bucket where you want to store the results of this request.        """
        pass

    def update_association_status(self, AssociationStatus: AssociationStatus, InstanceId: str, Name: str) -> UpdateAssociationStatusResult:
        r"""Updates the status of the Systems Manager document associated with the specified instance.

        :param self:
        :param AssociationStatus:  The association status.:<br/>InstanceId:  The ID of the instance.<br/>Name:  The name of the Systems Manager document.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AdditionalInfo</i> A user-defined string.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> The reason for the status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Date</i> The date when the status changed.<br/>
        :return: AssociationDescription:  Information about the association.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetLocations</i> The combination of AWS Regions and AWS accounts where you want to run the association.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CalendarNames</i> The names or Amazon Resource Names (ARNs) of the Systems Manager Change Calendar type documents your associations are gated under. The associations only run when that Change Calendar is open. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-change-calendar">AWS Systems Manager Change Calendar</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApplyOnlyAtCronInterval</i> By default, when you create a new associations, the system runs it immediately after it is created and then according to the schedule you specified. Specify this option if you don't want an association to run immediately after you create it. This parameter is not supported for rate expressions.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SyncCompliance</i> The mode for generating association compliance. You can specify <code>AUTO</code> or <code>MANUAL</code>. In <code>AUTO</code> mode, the system uses the status of the association execution to determine the compliance status. If the association execution runs successfully, then the association is <code>COMPLIANT</code>. If the association execution doesn't run successfully, the association is <code>NON-COMPLIANT</code>. In <code>MANUAL</code> mode, you must specify the <code>AssociationId</code> as a parameter for the <a>PutComplianceItems</a> API action. In this case, compliance data is not managed by State Manager. It is managed by your direct call to the <a>PutComplianceItems</a> API action. By default, all associations use <code>AUTO</code> mode.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ComplianceSeverity</i> The severity level that is assigned to the association.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxConcurrency</i> The maximum number of targets allowed to run the association at the same time. You can specify a number, for example 10, or a percentage of the target set, for example 10%. The default value is 100%, which means all targets run the association at the same time. If a new instance starts and attempts to run an association while Systems Manager is running MaxConcurrency associations, the association is allowed to run. During the next association interval, the new instance will process its association within the limit specified for MaxConcurrency.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxErrors</i> The number of errors that are allowed before the system stops sending requests to run the association on additional targets. You can specify either an absolute number of errors, for example 10, or a percentage of the target set, for example 10%. If you specify 3, for example, the system stops sending requests when the fourth error is received. If you specify 0, then the system stops sending requests after the first error is returned. If you run an association on 50 instances and set MaxError to 10%, then the system stops sending the request when the sixth error is received. Executions that are already running an association when MaxErrors is reached are allowed to complete, but some of these executions may fail as well. If you need to ensure that there won't be more than max-errors failed executions, set MaxConcurrency to 1 so that executions proceed one at a time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociationName</i> The association name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastSuccessfulExecutionDate</i> The last date on which the association was successfully run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastExecutionDate</i> The date on which the association was last run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OutputLocation</i> An S3 bucket where you want to store the output details of the request.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>OutputLocation</b>: An S3 bucket where you want to store the output details of the request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ScheduleExpression</i> A cron expression that specifies a schedule when the association runs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Targets</i> The instances targeted by the request. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociationId</i> The association ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Parameters</i> A description of the parameters for a document. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutomationTargetParameterName</i> Specify the target for the association. This target is required for associations that use an Automation document and target resources by using rate controls.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DocumentVersion</i> The document version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Overview</i> Information about the association.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Overview</b>: Information about the association.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The association status.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Status</b>: The association status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdateAssociationDate</i> The date when the association was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Date</i> The date when the association was made.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociationVersion</i> The association version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InstanceId</i> The ID of the instance.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the Systems Manager document.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AdditionalInfo</i> A user-defined string.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> The reason for the status.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The status.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Date</i> The date when the status changed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AssociationStatusAggregatedCount</i> Returns the number of targets for the association status. For example, if you created an association with two instances, and one of them was successful, this would return the count of instances by status.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DetailedStatus</i> A detailed status of the association.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the association. Status can be: Pending, Success, or Failed.<br/>An S3 bucket where you want to store the results of this request.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3Location</b>: An S3 bucket where you want to store the results of this request.        """
        pass

    def update_document(self, Name: str, Content: str, Attachments: List[AttachmentsSource]=None, DisplayName: str=None, VersionName: str=None, DocumentVersion: str=None, DocumentFormat: str=None, TargetType: str=None) -> UpdateDocumentResult:
        r"""Updates one or more values for an SSM document.

        :param self:
        :param TargetType:  Specify a new target type for the document.<br/>DocumentFormat:  Specify the document format for the new document version. Systems Manager supports JSON and YAML documents. JSON is the default format.<br/>DocumentVersion:  The version of the document that you want to update. Currently, Systems Manager supports updating only the latest version of the document. You can specify the version number of the latest version or use the <code>$LATEST</code> variable.<br/>VersionName:  An optional field specifying the version of the artifact you are updating with the document. For example, "Release 12, Update 6". This value is unique across all versions of a document, and cannot be changed.<br/>DisplayName:  The friendly name of the Systems Manager document that you want to update. This value can differ for each version of the document. If you do not specify a value for this parameter in your request, the existing value is applied to the new document version.<br/>Name:  The name of the Systems Manager document that you want to update.<br/>Attachments:  A list of key and value pairs that describe attachments to a version of a document.<br/>Content:  A valid JSON or YAML string.<br/>
        :return: DocumentDescription:  A description of the document that was updated.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReviewStatus</i> The current status of the review.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PendingReviewVersion</i> The version of the document that is currently under review.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ApprovedVersion</i> The version of the document currently approved for use in the organization.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReviewInformation</i> Details about the review of a document.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Author</i> The user in your organization who created the document.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Requires</i> A list of SSM documents required by a document. For example, an <code>ApplicationConfiguration</code> document requires an <code>ApplicationConfigurationSchema</code> document.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AttachmentsInformation</i> Details about the document attachments, including names, locations, sizes, and so on.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The tags, or metadata, that have been applied to the document.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetType</i> The target type which defines the kinds of resources the document can run on. For example, /AWS::EC2::Instance. For a list of valid resource types, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html">AWS resource and property types reference</a> in the <i>AWS CloudFormation User Guide</i>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DocumentFormat</i> The document format, either JSON or YAML.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultVersion</i> The default version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestVersion</i> The latest version of the document.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SchemaVersion</i> The schema version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DocumentType</i> The type of document.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PlatformTypes</i> The list of OS platforms compatible with this Systems Manager document. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Parameters</i> A description of the parameters for a document.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A description of the document. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DocumentVersion</i> The document version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StatusInformation</i> A message returned by AWS Systems Manager that explains the <code>Status</code> value. For example, a <code>Failed</code> status might be explained by the <code>StatusInformation</code> message, "The specified S3 bucket does not exist. Verify that the URL of the S3 bucket is correct."<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the Systems Manager document.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedDate</i> The date when the document was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Owner</i> The AWS user account that created the document.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VersionName</i> The version of the artifact associated with the document.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DisplayName</i> The friendly name of the Systems Manager document. This value can differ for each version of the document. If you want to update this value, see <a>UpdateDocument</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the Systems Manager document.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HashType</i> The hash type of the document. Valid values include <code>Sha256</code> or <code>Sha1</code>. <note> Sha1 hashes have been deprecated. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Hash</i> The Sha256 or Sha1 hash created by the system when the document was created.  <note> Sha1 hashes have been deprecated. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Sha1</i> The SHA1 hash of the document, which you can use for verification.<br/>        """
        pass

    def update_document_default_version(self, DocumentVersion: str, Name: str) -> UpdateDocumentDefaultVersionResult:
        r"""Set the default version of a document. 

        :param self:
        :param DocumentVersion:  The version of a custom document that you want to set as the default version.<br/>Name:  The name of a custom document that you want to set as the default version.<br/>
        :return: Description:  The description of a custom document that you want to set as the default version.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultVersionName</i> The default version of the artifact associated with the document.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultVersion</i> The default version of the document.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the document.<br/>        """
        pass

    def update_document_metadata(self, DocumentReviews: DocumentReviews, Name: str, DocumentVersion: str=None) -> UpdateDocumentMetadataResponse:
        r"""Updates information related to approval reviews for a specific version of a document.

        :param self:
        :param DocumentReviews:  The document review details to update.:<br/>DocumentVersion:  The version of a document to update.<br/>Name:  The name of the document for which a version is to be updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Comment</i> A comment entered by a user in your organization about the document review request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Action</i> The action to take on a document approval review request.<br/>
        :return:         """
        pass

    def update_maintenance_window(self, WindowId: str, Name: str=None, Description: str=None, StartDate: str=None, EndDate: str=None, Schedule: str=None, ScheduleTimezone: str=None, ScheduleOffset: int=None, Duration: int=None, Cutoff: int=None, AllowUnassociatedTargets: MaintenanceWindowAllowUnassociatedTargets=None, Enabled: MaintenanceWindowEnabled=None, Replace: Boolean=None) -> UpdateMaintenanceWindowResult:
        r"""Updates an existing maintenance window. Only specified parameters are modified. <note> The value you specify for <code>Duration</code> determines the specific end time for the maintenance window based on the time it begins. No maintenance window tasks are permitted to start after the resulting endtime minus the number of hours you specify for <code>Cutoff</code>. For example, if the maintenance window starts at 3 PM, the duration is three hours, and the value you specify for <code>Cutoff</code> is one hour, no maintenance window tasks can start after 5 PM. </note>

        :param self:
        :param Replace:  If True, then all fields that are required by the CreateMaintenanceWindow action are also required for this API request. Optional fields that are not specified are set to null. <br/>Enabled:  Whether the maintenance window is enabled.<br/>AllowUnassociatedTargets:  Whether targets must be registered with the maintenance window before tasks can be defined for those targets.<br/>Cutoff:  The number of hours before the end of the maintenance window that Systems Manager stops scheduling new tasks for execution.<br/>Duration:  The duration of the maintenance window in hours.<br/>ScheduleOffset:  The number of days to wait after the date and time specified by a CRON expression before running the maintenance window. For example, the following cron expression schedules a maintenance window to run the third Tuesday of every month at 11:30 PM.  <code>cron(30 23 ? * TUE#3 *)</code>  If the schedule offset is <code>2</code>, the maintenance window won't run until two days later.<br/>ScheduleTimezone:  The time zone that the scheduled maintenance window executions are based on, in Internet Assigned Numbers Authority (IANA) format. For example: "America/Los_Angeles", "UTC", or "Asia/Seoul". For more information, see the <a href="https://www.iana.org/time-zones">Time Zone Database</a> on the IANA website.<br/>Schedule:  The schedule of the maintenance window in the form of a cron or rate expression.<br/>EndDate:  The date and time, in ISO-8601 Extended format, for when you want the maintenance window to become inactive. EndDate allows you to set a date and time in the future when the maintenance window will no longer run.<br/>StartDate:  The time zone that the scheduled maintenance window executions are based on, in Internet Assigned Numbers Authority (IANA) format. For example: "America/Los_Angeles", "UTC", or "Asia/Seoul". For more information, see the <a href="https://www.iana.org/time-zones">Time Zone Database</a> on the IANA website.<br/>Description:  An optional description for the update request.<br/>Name:  The name of the maintenance window.<br/>WindowId:  The ID of the maintenance window to update.<br/>
        :return: Enabled:  Whether the maintenance window is enabled.<br/>AllowUnassociatedTargets:  Whether targets must be registered with the maintenance window before tasks can be defined for those targets.<br/>Cutoff:  The number of hours before the end of the maintenance window that Systems Manager stops scheduling new tasks for execution.<br/>Duration:  The duration of the maintenance window in hours.<br/>ScheduleOffset:  The number of days to wait to run a maintenance window after the scheduled CRON expression date and time.<br/>ScheduleTimezone:  The time zone that the scheduled maintenance window executions are based on, in Internet Assigned Numbers Authority (IANA) format. For example: "America/Los_Angeles", "UTC", or "Asia/Seoul". For more information, see the <a href="https://www.iana.org/time-zones">Time Zone Database</a> on the IANA website.<br/>Schedule:  The schedule of the maintenance window in the form of a cron or rate expression.<br/>EndDate:  The date and time, in ISO-8601 Extended format, for when the maintenance window is scheduled to become inactive. The maintenance window will not run after this specified time.<br/>StartDate:  The date and time, in ISO-8601 Extended format, for when the maintenance window is scheduled to become active. The maintenance window will not run before this specified time.<br/>Description:  An optional description of the update.<br/>Name:  The name of the maintenance window.<br/>WindowId:  The ID of the created maintenance window.<br/>        """
        pass

    def update_maintenance_window_target(self, WindowTargetId: str, WindowId: str, Targets: List[Target]=None, OwnerInformation: str=None, Name: str=None, Description: str=None, Replace: Boolean=None) -> UpdateMaintenanceWindowTargetResult:
        r"""Modifies the target of an existing maintenance window. You can change the following: <ul> <li> Name </li> <li> Description </li> <li> Owner </li> <li> IDs for an ID target </li> <li> Tags for a Tag target </li> <li> From any supported tag type to another. The three supported tag types are ID target, Tag target, and resource group. For more information, see <a>Target</a>. </li> </ul> <note> If a parameter is null, then the corresponding field is not modified. </note>

        :param self:
        :param Replace:  If True, then all fields that are required by the RegisterTargetWithMaintenanceWindow action are also required for this API request. Optional fields that are not specified are set to null.<br/>Description:  An optional description for the update.<br/>Name:  A name for the update.<br/>OwnerInformation:  User-provided value that will be included in any CloudWatch events raised while running tasks for these targets in this maintenance window.<br/>Targets:  The targets to add or replace.<br/>WindowTargetId:  The target ID to modify.<br/>WindowId:  The maintenance window ID with which to modify the target.<br/>
        :return: Description:  The updated description.<br/>Name:  The updated name.<br/>OwnerInformation:  The updated owner.<br/>Targets:  The updated targets.<br/>WindowTargetId:  The target ID specified in the update request.<br/>WindowId:  The maintenance window ID specified in the update request.<br/>        """
        pass

    def update_maintenance_window_task(self, WindowTaskId: str, WindowId: str, Targets: List[Target]=None, TaskArn: str=None, ServiceRoleArn: str=None, TaskParameters: MaintenanceWindowTaskParameters=None, TaskInvocationParameters: MaintenanceWindowTaskInvocationParameters=None, Priority: int=None, MaxConcurrency: str=None, MaxErrors: str=None, LoggingInfo: LoggingInfo=None, Name: str=None, Description: str=None, Replace: Boolean=None) -> UpdateMaintenanceWindowTaskResult:
        r"""Modifies a task assigned to a maintenance window. You can't change the task type, but you can change the following values: <ul> <li> TaskARN. For example, you can change a RUN_COMMAND task from AWS-RunPowerShellScript to AWS-RunShellScript. </li> <li> ServiceRoleArn </li> <li> TaskInvocationParameters </li> <li> Priority </li> <li> MaxConcurrency </li> <li> MaxErrors </li> </ul> <note> One or more targets must be specified for maintenance window Run Command-type tasks. Depending on the task, targets are optional for other maintenance window task types (Automation, AWS Lambda, and AWS Step Functions). For more information about running tasks that do not specify targets, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/maintenance-windows-targetless-tasks.html">Registering maintenance window tasks without targets</a> in the <i>AWS Systems Manager User Guide</i>. </note> If the value for a parameter in <code>UpdateMaintenanceWindowTask</code> is null, then the corresponding field is not modified. If you set <code>Replace</code> to true, then all fields required by the <a>RegisterTaskWithMaintenanceWindow</a> action are required for this request. Optional fields that aren't specified are set to null. <important> When you update a maintenance window task that has options specified in <code>TaskInvocationParameters</code>, you must provide again all the <code>TaskInvocationParameters</code> values that you want to retain. The values you do not specify again are removed. For example, suppose that when you registered a Run Command task, you specified <code>TaskInvocationParameters</code> values for <code>Comment</code>, <code>NotificationConfig</code>, and <code>OutputS3BucketName</code>. If you update the maintenance window task and specify only a different <code>OutputS3BucketName</code> value, the values for <code>Comment</code> and <code>NotificationConfig</code> are removed. </important>

        :param self:
        :param Replace:  If True, then all fields that are required by the RegisterTaskWithMaintenanceWindow action are also required for this API request. Optional fields that are not specified are set to null.<br/>Description:  The new task description to specify.<br/>Name:  The new task name to specify.<br/>LoggingInfo:  The new logging location in Amazon S3 to specify. <note>  <code>LoggingInfo</code> has been deprecated. To specify an S3 bucket to contain logs, instead use the <code>OutputS3BucketName</code> and <code>OutputS3KeyPrefix</code> options in the <code>TaskInvocationParameters</code> structure. For information about how Systems Manager handles these options for the supported maintenance window task types, see <a>MaintenanceWindowTaskInvocationParameters</a>. </note>:<br/>MaxErrors:  The new <code>MaxErrors</code> value to specify. <code>MaxErrors</code> is the maximum number of errors that are allowed before the task stops being scheduled. <note> For maintenance window tasks without a target specified, you cannot supply a value for this option. Instead, the system inserts a placeholder value of <code>1</code>, which may be reported in the response to this command. This value does not affect the running of your task and can be ignored. </note><br/>MaxConcurrency:  The new <code>MaxConcurrency</code> value you want to specify. <code>MaxConcurrency</code> is the number of targets that are allowed to run this task in parallel. <note> For maintenance window tasks without a target specified, you cannot supply a value for this option. Instead, the system inserts a placeholder value of <code>1</code>, which may be reported in the response to this command. This value does not affect the running of your task and can be ignored. </note><br/>Priority:  The new task priority to specify. The lower the number, the higher the priority. Tasks that have the same priority are scheduled in parallel.<br/>TaskInvocationParameters:  The parameters that the task should use during execution. Populate only the fields that match the task type. All other fields should be empty. <important> When you update a maintenance window task that has options specified in <code>TaskInvocationParameters</code>, you must provide again all the <code>TaskInvocationParameters</code> values that you want to retain. The values you do not specify again are removed. For example, suppose that when you registered a Run Command task, you specified <code>TaskInvocationParameters</code> values for <code>Comment</code>, <code>NotificationConfig</code>, and <code>OutputS3BucketName</code>. If you update the maintenance window task and specify only a different <code>OutputS3BucketName</code> value, the values for <code>Comment</code> and <code>NotificationConfig</code> are removed. </important>:<br/>TaskParameters:  The parameters to modify. <note>  <code>TaskParameters</code> has been deprecated. To specify parameters to pass to a task when it runs, instead use the <code>Parameters</code> option in the <code>TaskInvocationParameters</code> structure. For information about how Systems Manager handles these options for the supported maintenance window task types, see <a>MaintenanceWindowTaskInvocationParameters</a>. </note> The map has the following format: Key: string, between 1 and 255 characters Value: an array of strings, each string is between 1 and 255 characters<br/>ServiceRoleArn:  The ARN of the IAM service role for Systems Manager to assume when running a maintenance window task. If you do not specify a service role ARN, Systems Manager uses your account's service-linked role. If no service-linked role for Systems Manager exists in your account, it is created when you run <code>RegisterTaskWithMaintenanceWindow</code>. For more information, see the following topics in the in the <i>AWS Systems Manager User Guide</i>: <ul> <li>  <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/using-service-linked-roles.html#slr-permissions">Using service-linked roles for Systems Manager</a>  </li> <li>  <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-maintenance-permissions.html#maintenance-window-tasks-service-role">Should I use a service-linked role or a custom service role to run maintenance window tasks? </a>  </li> </ul><br/>TaskArn:  The task ARN to modify.<br/>Targets:  The targets (either instances or tags) to modify. Instances are specified using Key=instanceids,Values=instanceID_1,instanceID_2. Tags are specified using Key=tag_name,Values=tag_value.  <note> One or more targets must be specified for maintenance window Run Command-type tasks. Depending on the task, targets are optional for other maintenance window task types (Automation, AWS Lambda, and AWS Step Functions). For more information about running tasks that do not specify targets, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/maintenance-windows-targetless-tasks.html">Registering maintenance window tasks without targets</a> in the <i>AWS Systems Manager User Guide</i>. </note><br/>WindowTaskId:  The task ID to modify.<br/>WindowId:  The maintenance window ID that contains the task to modify.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Lambda</i> The parameters for a LAMBDA task type.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Lambda</b>: The parameters for a LAMBDA task type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StepFunctions</i> The parameters for a STEP_FUNCTIONS task type.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StepFunctions</b>: The parameters for a STEP_FUNCTIONS task type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Automation</i> The parameters for an AUTOMATION task type.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Automation</b>: The parameters for an AUTOMATION task type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RunCommand</i> The parameters for a RUN_COMMAND task type.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RunCommand</b>: The parameters for a RUN_COMMAND task type.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Comment</i> Information about the commands to run.<br/>Configuration options for sending command output to CloudWatch Logs.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CloudWatchOutputConfig</b>: Configuration options for sending command output to CloudWatch Logs.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Parameters</i> The parameters for the AUTOMATION task. For information about specifying and updating task parameters, see <a>RegisterTaskWithMaintenanceWindow</a> and <a>UpdateMaintenanceWindowTask</a>. <note>  <code>LoggingInfo</code> has been deprecated. To specify an S3 bucket to contain logs, instead use the <code>OutputS3BucketName</code> and <code>OutputS3KeyPrefix</code> options in the <code>TaskInvocationParameters</code> structure. For information about how Systems Manager handles these options for the supported maintenance window task types, see <a>MaintenanceWindowTaskInvocationParameters</a>.  <code>TaskParameters</code> has been deprecated. To specify parameters to pass to a task when it runs, instead use the <code>Parameters</code> option in the <code>TaskInvocationParameters</code> structure. For information about how Systems Manager handles these options for the supported maintenance window task types, see <a>MaintenanceWindowTaskInvocationParameters</a>. For AUTOMATION task types, Systems Manager ignores any values specified for these parameters. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DocumentVersion</i> The version of an Automation document to use during task execution.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the STEP_FUNCTIONS task.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Input</i> The inputs for the STEP_FUNCTIONS task.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Payload</i> JSON to provide to your Lambda function as input.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Qualifier</i> (Optional) Specify a Lambda function version or alias name. If you specify a function version, the action uses the qualified function ARN to invoke a specific Lambda function. If you specify an alias name, the action uses the alias ARN to invoke the Lambda function version to which the alias points.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClientContext</i> Pass client-specific information to the Lambda function that you are invoking. You can then process the client information in your Lambda function as you choose through the context variable.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Region</i> The Region where the S3 bucket is located.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3KeyPrefix</i> (Optional) The S3 bucket subfolder. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3BucketName</i> The name of an S3 bucket where execution logs are stored .<br/>
        :return: Description:  The updated task description.<br/>Name:  The updated task name.<br/>LoggingInfo:  The updated logging information in Amazon S3. <note>  <code>LoggingInfo</code> has been deprecated. To specify an S3 bucket to contain logs, instead use the <code>OutputS3BucketName</code> and <code>OutputS3KeyPrefix</code> options in the <code>TaskInvocationParameters</code> structure. For information about how Systems Manager handles these options for the supported maintenance window task types, see <a>MaintenanceWindowTaskInvocationParameters</a>. </note>:<br/>MaxErrors:  The updated MaxErrors value.<br/>MaxConcurrency:  The updated MaxConcurrency value.<br/>Priority:  The updated priority value.<br/>TaskInvocationParameters:  The updated parameter values.:<br/>TaskParameters:  The updated parameter values. <note>  <code>TaskParameters</code> has been deprecated. To specify parameters to pass to a task when it runs, instead use the <code>Parameters</code> option in the <code>TaskInvocationParameters</code> structure. For information about how Systems Manager handles these options for the supported maintenance window task types, see <a>MaintenanceWindowTaskInvocationParameters</a>. </note><br/>ServiceRoleArn:  The ARN of the IAM service role to use to publish Amazon Simple Notification Service (Amazon SNS) notifications for maintenance window Run Command tasks.<br/>TaskArn:  The updated task ARN value.<br/>Targets:  The updated target values.<br/>WindowTaskId:  The task ID of the maintenance window that was updated.<br/>WindowId:  The ID of the maintenance window that was updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Lambda</i> The parameters for a LAMBDA task type.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Lambda</b>: The parameters for a LAMBDA task type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StepFunctions</i> The parameters for a STEP_FUNCTIONS task type.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StepFunctions</b>: The parameters for a STEP_FUNCTIONS task type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Automation</i> The parameters for an AUTOMATION task type.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Automation</b>: The parameters for an AUTOMATION task type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RunCommand</i> The parameters for a RUN_COMMAND task type.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RunCommand</b>: The parameters for a RUN_COMMAND task type.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Comment</i> Information about the commands to run.<br/>Configuration options for sending command output to CloudWatch Logs.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CloudWatchOutputConfig</b>: Configuration options for sending command output to CloudWatch Logs.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Parameters</i> The parameters for the AUTOMATION task. For information about specifying and updating task parameters, see <a>RegisterTaskWithMaintenanceWindow</a> and <a>UpdateMaintenanceWindowTask</a>. <note>  <code>LoggingInfo</code> has been deprecated. To specify an S3 bucket to contain logs, instead use the <code>OutputS3BucketName</code> and <code>OutputS3KeyPrefix</code> options in the <code>TaskInvocationParameters</code> structure. For information about how Systems Manager handles these options for the supported maintenance window task types, see <a>MaintenanceWindowTaskInvocationParameters</a>.  <code>TaskParameters</code> has been deprecated. To specify parameters to pass to a task when it runs, instead use the <code>Parameters</code> option in the <code>TaskInvocationParameters</code> structure. For information about how Systems Manager handles these options for the supported maintenance window task types, see <a>MaintenanceWindowTaskInvocationParameters</a>. For AUTOMATION task types, Systems Manager ignores any values specified for these parameters. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DocumentVersion</i> The version of an Automation document to use during task execution.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the STEP_FUNCTIONS task.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Input</i> The inputs for the STEP_FUNCTIONS task.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Payload</i> JSON to provide to your Lambda function as input.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Qualifier</i> (Optional) Specify a Lambda function version or alias name. If you specify a function version, the action uses the qualified function ARN to invoke a specific Lambda function. If you specify an alias name, the action uses the alias ARN to invoke the Lambda function version to which the alias points.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ClientContext</i> Pass client-specific information to the Lambda function that you are invoking. You can then process the client information in your Lambda function as you choose through the context variable.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Region</i> The Region where the S3 bucket is located.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3KeyPrefix</i> (Optional) The S3 bucket subfolder. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3BucketName</i> The name of an S3 bucket where execution logs are stored .<br/>        """
        pass

    def update_managed_instance_role(self, IamRole: str, InstanceId: str) -> UpdateManagedInstanceRoleResult:
        r"""Changes the Amazon Identity and Access Management (IAM) role that is assigned to the on-premises instance or virtual machines (VM). IAM roles are first assigned to these hybrid instances during the activation process. For more information, see <a>CreateActivation</a>.

        :param self:
        :param IamRole:  The IAM role you want to assign or change.<br/>InstanceId:  The ID of the managed instance where you want to update the role.<br/>
        :return:         """
        pass

    def update_ops_item(self, OpsItemId: str, Description: str=None, OperationalData: OpsItemOperationalData=None, OperationalDataToDelete: List[String]=None, Notifications: List[OpsItemNotification]=None, Priority: int=None, RelatedOpsItems: List[RelatedOpsItem]=None, Status: str=None, Title: str=None, Category: str=None, Severity: str=None, ActualStartTime: DateTime=None, ActualEndTime: DateTime=None, PlannedStartTime: DateTime=None, PlannedEndTime: DateTime=None) -> UpdateOpsItemResponse:
        r"""Edit or change an OpsItem. You must have permission in AWS Identity and Access Management (IAM) to update an OpsItem. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-getting-started.html">Getting started with OpsCenter</a> in the <i>AWS Systems Manager User Guide</i>. Operations engineers and IT professionals use OpsCenter to view, investigate, and remediate operational issues impacting the performance and health of their AWS resources. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter.html">AWS Systems Manager OpsCenter</a> in the <i>AWS Systems Manager User Guide</i>. 

        :param self:
        :param PlannedEndTime:  The time specified in a change request for a runbook workflow to end. Currently supported only for the OpsItem type <code>/aws/changerequest</code>.<br/>PlannedStartTime:  The time specified in a change request for a runbook workflow to start. Currently supported only for the OpsItem type <code>/aws/changerequest</code>.<br/>ActualEndTime:  The time a runbook workflow ended. Currently reported only for the OpsItem type <code>/aws/changerequest</code>.<br/>ActualStartTime:  The time a runbook workflow started. Currently reported only for the OpsItem type <code>/aws/changerequest</code>.<br/>Severity:  Specify a new severity for an OpsItem.<br/>Category:  Specify a new category for an OpsItem.<br/>Title:  A short heading that describes the nature of the OpsItem and the impacted resource.<br/>OpsItemId:  The ID of the OpsItem.<br/>Status:  The OpsItem status. Status can be <code>Open</code>, <code>In Progress</code>, or <code>Resolved</code>. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-working-with-OpsItems.html#OpsCenter-working-with-OpsItems-editing-details">Editing OpsItem details</a> in the <i>AWS Systems Manager User Guide</i>.<br/>RelatedOpsItems:  One or more OpsItems that share something in common with the current OpsItems. For example, related OpsItems can include OpsItems with similar error messages, impacted resources, or statuses for the impacted resource.<br/>Priority:  The importance of this OpsItem in relation to other OpsItems in the system.<br/>Notifications:  The Amazon Resource Name (ARN) of an SNS topic where notifications are sent when this OpsItem is edited or changed.<br/>OperationalDataToDelete:  Keys that you want to remove from the OperationalData map.<br/>OperationalData:  Add new keys or edit existing key-value pairs of the OperationalData map in the OpsItem object. Operational data is custom data that provides useful reference details about the OpsItem. For example, you can specify log files, error strings, license keys, troubleshooting tips, or other relevant data. You enter operational data as key-value pairs. The key has a maximum length of 128 characters. The value has a maximum size of 20 KB. <important> Operational data keys <i>can't</i> begin with the following: amazon, aws, amzn, ssm, /amazon, /aws, /amzn, /ssm. </important> You can choose to make the data searchable by other users in the account or you can restrict search access. Searchable data means that all users with access to the OpsItem Overview page (as provided by the <a>DescribeOpsItems</a> API action) can view and search on the specified data. Operational data that is not searchable is only viewable by users who have access to the OpsItem (as provided by the <a>GetOpsItem</a> API action). Use the <code>/aws/resources</code> key in OperationalData to specify a related resource in the request. Use the <code>/aws/automations</code> key in OperationalData to associate an Automation runbook with the OpsItem. To view AWS CLI example commands that use these keys, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-creating-OpsItems.html#OpsCenter-manually-create-OpsItems">Creating OpsItems manually</a> in the <i>AWS Systems Manager User Guide</i>.<br/>Description:  Update the information about the OpsItem. Provide enough information so that users reading this OpsItem for the first time understand the issue. <br/>
        :return:         """
        pass

    def update_ops_metadata(self, OpsMetadataArn: str, MetadataToUpdate: MetadataMap=None, KeysToDelete: List[MetadataKey]=None) -> UpdateOpsMetadataResult:
        r"""Systems Manager calls this API action when you edit OpsMetadata in Application Manager.

        :param self:
        :param KeysToDelete:  The metadata keys to delete from the OpsMetadata object. <br/>MetadataToUpdate:  Metadata to add to an OpsMetadata object.<br/>OpsMetadataArn:  The Amazon Resoure Name (ARN) of the OpsMetadata Object to update.<br/>
        :return: OpsMetadataArn:  The Amazon Resource Name (ARN) of the OpsMetadata Object that was updated.<br/>        """
        pass

    def update_patch_baseline(self, BaselineId: str, Name: str=None, GlobalFilters: PatchFilterGroup=None, ApprovalRules: PatchRuleGroup=None, ApprovedPatches: List[PatchId]=None, ApprovedPatchesComplianceLevel: str=None, ApprovedPatchesEnableNonSecurity: Boolean=None, RejectedPatches: List[PatchId]=None, RejectedPatchesAction: str=None, Description: str=None, Sources: List[PatchSource]=None, Replace: Boolean=None) -> UpdatePatchBaselineResult:
        r"""Modifies an existing patch baseline. Fields not specified in the request are left unchanged. <note> For information about valid key and value pairs in <code>PatchFilters</code> for each supported operating system type, see <a href="http://docs.aws.amazon.com/systems-manager/latest/APIReference/API_PatchFilter.html">PatchFilter</a>. </note>

        :param self:
        :param Replace:  If True, then all fields that are required by the CreatePatchBaseline action are also required for this API request. Optional fields that are not specified are set to null.<br/>Sources:  Information about the patches to use to update the instances, including target operating systems and source repositories. Applies to Linux instances only.<br/>Description:  A description of the patch baseline.<br/>RejectedPatchesAction:  The action for Patch Manager to take on patches included in the RejectedPackages list. <ul> <li>  <b>ALLOW_AS_DEPENDENCY</b>: A package in the Rejected patches list is installed only if it is a dependency of another package. It is considered compliant with the patch baseline, and its status is reported as <i>InstalledOther</i>. This is the default action if no option is specified. </li> <li>  <b>BLOCK</b>: Packages in the RejectedPatches list, and packages that include them as dependencies, are not installed under any circumstances. If a package was installed before it was added to the Rejected patches list, it is considered non-compliant with the patch baseline, and its status is reported as <i>InstalledRejected</i>. </li> </ul><br/>RejectedPatches:  A list of explicitly rejected patches for the baseline. For information about accepted formats for lists of approved patches and rejected patches, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/patch-manager-approved-rejected-package-name-formats.html">About package name formats for approved and rejected patch lists</a> in the <i>AWS Systems Manager User Guide</i>.<br/>ApprovedPatchesEnableNonSecurity:  Indicates whether the list of approved patches includes non-security updates that should be applied to the instances. The default value is 'false'. Applies to Linux instances only.<br/>ApprovedPatchesComplianceLevel:  Assigns a new compliance severity level to an existing patch baseline.<br/>ApprovedPatches:  A list of explicitly approved patches for the baseline. For information about accepted formats for lists of approved patches and rejected patches, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/patch-manager-approved-rejected-package-name-formats.html">About package name formats for approved and rejected patch lists</a> in the <i>AWS Systems Manager User Guide</i>.<br/>ApprovalRules:  A set of rules used to include patches in the baseline.:<br/>GlobalFilters:  A set of global filters used to include patches in the baseline.:<br/>Name:  The name of the patch baseline.<br/>BaselineId:  The ID of the patch baseline to update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PatchFilters</i> The set of patch filters that make up the group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PatchRules</i> The rules that make up the rule group.<br/>
        :return: Sources:  Information about the patches to use to update the instances, including target operating systems and source repositories. Applies to Linux instances only.<br/>Description:  A description of the Patch Baseline.<br/>ModifiedDate:  The date when the patch baseline was last modified.<br/>CreatedDate:  The date when the patch baseline was created.<br/>RejectedPatchesAction:  The action specified to take on patches included in the RejectedPatches list. A patch can be allowed only if it is a dependency of another package, or blocked entirely along with packages that include it as a dependency.<br/>RejectedPatches:  A list of explicitly rejected patches for the baseline.<br/>ApprovedPatchesEnableNonSecurity:  Indicates whether the list of approved patches includes non-security updates that should be applied to the instances. The default value is 'false'. Applies to Linux instances only.<br/>ApprovedPatchesComplianceLevel:  The compliance severity level assigned to the patch baseline after the update completed.<br/>ApprovedPatches:  A list of explicitly approved patches for the baseline.<br/>ApprovalRules:  A set of rules used to include patches in the baseline.:<br/>GlobalFilters:  A set of global filters used to exclude patches from the baseline.:<br/>OperatingSystem:  The operating system rule used by the updated patch baseline.<br/>Name:  The name of the patch baseline.<br/>BaselineId:  The ID of the deleted patch baseline.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PatchFilters</i> The set of patch filters that make up the group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PatchRules</i> The rules that make up the rule group.<br/>        """
        pass

    def update_resource_data_sync(self, SyncSource: ResourceDataSyncSource, SyncType: str, SyncName: str) -> UpdateResourceDataSyncResult:
        r"""Update a resource data sync. After you create a resource data sync for a Region, you can't change the account options for that sync. For example, if you create a sync in the us-east-2 (Ohio) Region and you choose the Include only the current account option, you can't edit that sync later and choose the Include all accounts from my AWS Organizations configuration option. Instead, you must delete the first resource data sync, and create a new one. <note> This API action only supports a resource data sync that was created with a SyncFromSource <code>SyncType</code>. </note>

        :param self:
        :param SyncSource:  Specify information about the data sources to synchronize.:<br/>SyncType:  The type of resource data sync. The supported <code>SyncType</code> is SyncFromSource.<br/>SyncName:  The name of the resource data sync you want to update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableAllOpsDataSources</i> When you create a resource data sync, if you choose one of the AWS Organizations options, then Systems Manager automatically enables all OpsData sources in the selected AWS Regions for all AWS accounts in your organization (or in the selected organization units). For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/Explorer-resouce-data-sync-multiple-accounts-and-regions.html">About multiple account and Region resource data syncs</a> in the <i>AWS Systems Manager User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IncludeFutureRegions</i> Whether to automatically synchronize and aggregate data from new AWS Regions when those Regions come online.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceRegions</i> The <code>SyncSource</code> AWS Regions included in the resource data sync.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AwsOrganizationsSource</i> Information about the AwsOrganizationsSource resource data sync source. A sync source of this type can synchronize data from AWS Organizations.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>AwsOrganizationsSource</b>: Information about the AwsOrganizationsSource resource data sync source. A sync source of this type can synchronize data from AWS Organizations.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceType</i> The type of data source for the resource data sync. <code>SourceType</code> is either <code>AwsOrganizations</code> (if an organization is present in AWS Organizations) or <code>SingleAccountMultiRegions</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OrganizationalUnits</i> The AWS Organizations organization units included in the sync.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OrganizationSourceType</i> If an AWS Organization is present, this is either <code>OrganizationalUnits</code> or <code>EntireOrganization</code>. For <code>OrganizationalUnits</code>, the data is aggregated from a set of organization units. For <code>EntireOrganization</code>, the data is aggregated from the entire AWS Organization. <br/>
        :return:         """
        pass

    def update_service_setting(self, SettingValue: str, SettingId: str) -> UpdateServiceSettingResult:
        r""" <code>ServiceSetting</code> is an account-level setting for an AWS service. This setting defines how a user interacts with or uses a service or a feature of a service. For example, if an AWS service charges money to the account based on feature or service usage, then the AWS service team might create a default setting of "false". This means the user can't use this feature unless they change the setting to "true" and intentionally opt in for a paid feature. Services map a <code>SettingId</code> object to a setting value. AWS services teams define the default value for a <code>SettingId</code>. You can't create a new <code>SettingId</code>, but you can overwrite the default value if you have the <code>ssm:UpdateServiceSetting</code> permission for the setting. Use the <a>GetServiceSetting</a> API action to view the current value. Or, use the <a>ResetServiceSetting</a> to change the value back to the original value defined by the AWS service team. Update the service setting for the account. 

        :param self:
        :param SettingValue:  The new value to specify for the service setting. For the <code>/ssm/parameter-store/default-parameter-tier</code> setting ID, the setting value can be one of the following. <ul> <li> Standard </li> <li> Advanced </li> <li> Intelligent-Tiering </li> </ul> For the <code>/ssm/parameter-store/high-throughput-enabled</code>, and <code>/ssm/managed-instance/activation-tier</code> setting IDs, the setting value can be true or false. For the <code>/ssm/automation/customer-script-log-destination</code> setting ID, the setting value can be CloudWatch. For the <code>/ssm/automation/customer-script-log-group-name</code> setting ID, the setting value can be the name of a CloudWatch Logs log group. For the <code>/ssm/documents/console/public-sharing-permission</code> setting ID, the setting value can be Enable or Disable.<br/>SettingId:  The Amazon Resource Name (ARN) of the service setting to reset. For example, <code>arn:aws:ssm:us-east-1:111122223333:servicesetting/ssm/parameter-store/high-throughput-enabled</code>. The setting ID can be one of the following. <ul> <li>  <code>/ssm/automation/customer-script-log-destination</code>  </li> <li>  <code>/ssm/automation/customer-script-log-group-name</code>  </li> <li>  <code>/ssm/documents/console/public-sharing-permission</code>  </li> <li>  <code>/ssm/parameter-store/default-parameter-tier</code>  </li> <li>  <code>/ssm/parameter-store/high-throughput-enabled</code>  </li> <li>  <code>/ssm/managed-instance/activation-tier</code>  </li> </ul><br/>
        :return:         """
        pass





class SSMContacts(BaseClient):
    r"""<p/>"""


    class ListContactChannelsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_contact_channels` for valid parameters"""
            pass
    class ListContactsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_contacts` for valid parameters"""
            pass
    class ListEngagementsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_engagements` for valid parameters"""
            pass
    class ListPageReceiptsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_page_receipts` for valid parameters"""
            pass
    class ListPagesByContactPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_pages_by_contact` for valid parameters"""
            pass
    class ListPagesByEngagementPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_pages_by_engagement` for valid parameters"""
            pass


    class AcceptPageRequest(Mapping):
        pass
    
    class AcceptPageResult(Mapping):
        pass
    
    class ActivateContactChannelRequest(Mapping):
        pass
    
    class ActivateContactChannelResult(Mapping):
        pass
    
    class CreateContactRequest(Mapping):
        pass
    
    class CreateContactResult(Mapping):
        pass
    
    class Plan(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class CreateContactChannelRequest(Mapping):
        pass
    
    class CreateContactChannelResult(Mapping):
        pass
    
    class ContactChannelAddress(Mapping):
        pass
    
    class DeferActivation(object):
        pass
    
    class DeactivateContactChannelRequest(Mapping):
        pass
    
    class DeactivateContactChannelResult(Mapping):
        pass
    
    class DeleteContactRequest(Mapping):
        pass
    
    class DeleteContactResult(Mapping):
        pass
    
    class DeleteContactChannelRequest(Mapping):
        pass
    
    class DeleteContactChannelResult(Mapping):
        pass
    
    class DescribeEngagementRequest(Mapping):
        pass
    
    class DescribeEngagementResult(Mapping):
        pass
    
    class DescribePageRequest(Mapping):
        pass
    
    class DescribePageResult(Mapping):
        pass
    
    class GetContactRequest(Mapping):
        pass
    
    class GetContactResult(Mapping):
        pass
    
    class GetContactChannelRequest(Mapping):
        pass
    
    class GetContactChannelResult(Mapping):
        pass
    
    class GetContactPolicyRequest(Mapping):
        pass
    
    class GetContactPolicyResult(Mapping):
        pass
    
    class ListContactChannelsRequest(Mapping):
        pass
    
    class ListContactChannelsResult(Mapping):
        pass
    
    class ListContactsRequest(Mapping):
        pass
    
    class ListContactsResult(Mapping):
        pass
    
    class ListEngagementsRequest(Mapping):
        pass
    
    class ListEngagementsResult(Mapping):
        pass
    
    class TimeRange(Mapping):
        pass
    
    class ListPageReceiptsRequest(Mapping):
        pass
    
    class ListPageReceiptsResult(Mapping):
        pass
    
    class ListPagesByContactRequest(Mapping):
        pass
    
    class ListPagesByContactResult(Mapping):
        pass
    
    class ListPagesByEngagementRequest(Mapping):
        pass
    
    class ListPagesByEngagementResult(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResult(Mapping):
        pass
    
    class PutContactPolicyRequest(Mapping):
        pass
    
    class PutContactPolicyResult(Mapping):
        pass
    
    class SendActivationCodeRequest(Mapping):
        pass
    
    class SendActivationCodeResult(Mapping):
        pass
    
    class StartEngagementRequest(Mapping):
        pass
    
    class StartEngagementResult(Mapping):
        pass
    
    class StopEngagementRequest(Mapping):
        pass
    
    class StopEngagementResult(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResult(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResult(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateContactRequest(Mapping):
        pass
    
    class UpdateContactResult(Mapping):
        pass
    
    class UpdateContactChannelRequest(Mapping):
        pass
    
    class UpdateContactChannelResult(Mapping):
        pass
    
    def accept_page(self, AcceptCode: str, AcceptType: str, PageId: str, ContactChannelId: str=None, Note: str=None) -> AcceptPageResult:
        r"""Used to acknowledge an engagement to a contact channel during an incident.

        :param self:
        :param AcceptCode:  The accept code is a 6-digit code used to acknowledge the page.<br/>Note:  Information provided by the user when the user acknowledges the page.<br/>AcceptType:  The type indicates if the page was <code>DELIVERED</code> or <code>READ</code>.<br/>ContactChannelId:  The ARN of the contact channel.<br/>PageId:  The Amazon Resource Name (ARN) of the engagement to a contact channel.<br/>
        :return:         """
        pass

    def activate_contact_channel(self, ActivationCode: str, ContactChannelId: str) -> ActivateContactChannelResult:
        r"""Activates a contact's contact channel. Incident Manager can't engage a contact until the contact channel has been activated.

        :param self:
        :param ActivationCode:  The code sent to the contact channel when it was created in the contact. <br/>ContactChannelId:  The Amazon Resource Name (ARN) of the contact channel.<br/>
        :return:         """
        pass

    def create_contact(self, Plan: Plan, Type: str, Alias: str, DisplayName: str=None, Tags: List[Tag]=None, IdempotencyToken: str=None) -> CreateContactResult:
        r"""Contacts are either the contacts that Incident Manager engages during an incident or the escalation plans that Incident Manager uses to engage contacts in phases during an incident. 

        :param self:
        :param IdempotencyToken:  A token ensuring that the action is called only once with the specified details.<br/>Tags:  Adds a tag to the target. You can only tag resources created in the first Region of your replication set. <br/>Plan:  A list of stages. A contact has an engagement plan with stages that contact specified contact channels. An escalation plan uses stages that contact specified contacts. :<br/>Type:  To create an escalation plan use <code>ESCALATION</code>. To create a contact use <code>PERSONAL</code>.<br/>DisplayName:  The full name of the contact or escalation plan. <br/>Alias:  The short name to quickly identify a contact or escalation plan. The contact alias must be unique and identifiable. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Stages</i> A list of stages that the escalation plan or engagement plan uses to engage contacts and contact methods.<br/>
        :return: ContactArn:  The Amazon Resource Name (ARN) of the created contact or escalation plan.<br/>        """
        pass

    def create_contact_channel(self, DeliveryAddress: ContactChannelAddress, Type: str, Name: str, ContactId: str, DeferActivation: DeferActivation=None, IdempotencyToken: str=None) -> CreateContactChannelResult:
        r"""A contact channel is the method that Incident Manager uses to engage your contact.

        :param self:
        :param IdempotencyToken:  A token ensuring that the action is called only once with the specified details.<br/>DeferActivation:  If you want to activate the channel at a later time, you can choose to defer activation. Incident Manager can't engage your contact channel until it has been activated.<br/>DeliveryAddress:  The details that Incident Manager uses when trying to engage the contact channel. The format is dependent on the type of the contact channel. The following are the expected formats: <ul> <li> SMS - '+' followed by the country code and phone number </li> <li> VOICE - '+' followed by the country code and phone number </li> <li> EMAIL - any standard email format </li> </ul>:<br/>Type:  Incident Manager supports three types of contact channels: <ul> <li>  <code>SMS</code>  </li> <li>  <code>VOICE</code>  </li> <li>  <code>EMAIL</code>  </li> </ul><br/>Name:  The name of the contact channel.<br/>ContactId:  The Amazon Resource Name (ARN) of the contact you are adding the contact channel to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SimpleAddress</i> The format is dependent on the type of the contact channel. The following are the expected formats: <ul> <li> SMS - '+' followed by the country code and phone number </li> <li> VOICE - '+' followed by the country code and phone number </li> <li> EMAIL - any standard email format </li> </ul><br/>
        :return: ContactChannelArn:  The ARN of the contact channel.<br/>        """
        pass

    def deactivate_contact_channel(self, ContactChannelId: str) -> DeactivateContactChannelResult:
        r"""To no longer receive Incident Manager engagements to a contact channel, you can deactivate the channel.

        :param self:
        :param ContactChannelId:  The Amazon Resource Name (ARN) of the contact channel you're deactivating.<br/>
        :return:         """
        pass

    def delete_contact(self, ContactId: str) -> DeleteContactResult:
        r"""To remove a contact from Incident Manager, you can delete the contact. Deleting a contact removes them from all escalation plans and related response plans. Deleting an escalation plan removes it from all related response plans. You will have to recreate the contact and its contact channels before you can use it again.

        :param self:
        :param ContactId:  The Amazon Resource Name (ARN) of the contact that you're deleting.<br/>
        :return:         """
        pass

    def delete_contact_channel(self, ContactChannelId: str) -> DeleteContactChannelResult:
        r"""To no longer receive engagements on a contact channel, you can delete the channel from a contact. Deleting the contact channel removes it from the contact's engagement plan. If you delete the only contact channel for a contact, you won't be able to engage that contact during an incident.

        :param self:
        :param ContactChannelId:  The Amazon Resource Name (ARN) of the contact channel.<br/>
        :return:         """
        pass

    def describe_engagement(self, EngagementId: str) -> DescribeEngagementResult:
        r"""Incident Manager uses engagements to engage contacts and escalation plans during an incident. Use this command to describe the engagement that occurred during an incident.

        :param self:
        :param EngagementId:  The Amazon Resource Name (ARN) of the engagement you want the details of.<br/>
        :return: StopTime:  The time that the engagement ended.<br/>StartTime:  The time that the engagement started.<br/>IncidentId:  The ARN of the incident in which the engagement occurred.<br/>PublicContent:  The insecure content of the message that was sent to the contact. Use this field for engagements to <code>SMS</code>.<br/>PublicSubject:  The insecure subject of the message that was sent to the contact. Use this field for engagements to <code>SMS</code>.<br/>Content:  The secure content of the message that was sent to the contact. Use this field for engagements to <code>VOICE</code> and <code>EMAIL</code>.<br/>Subject:  The secure subject of the message that was sent to the contact. Use this field for engagements to <code>VOICE</code> and <code>EMAIL</code>.<br/>Sender:  The user that started the engagement.<br/>EngagementArn:  The ARN of the engagement.<br/>ContactArn:  The ARN of the escalation plan or contacts involved in the engagement.<br/>        """
        pass

    def describe_page(self, PageId: str) -> DescribePageResult:
        r"""Lists details of the engagement to a contact channel.

        :param self:
        :param PageId:  The ID of the engagement to a contact channel.<br/>
        :return: DeliveryTime:  The time that the contact channel received the engagement.<br/>ReadTime:  The time that the contact channel acknowledged the engagement.<br/>SentTime:  The time the engagement was sent to the contact channel.<br/>IncidentId:  The ARN of the incident that engaged the contact channel.<br/>PublicContent:  The insecure content of the message that was sent to the contact. Use this field for engagements to <code>SMS</code>.<br/>PublicSubject:  The insecure subject of the message that was sent to the contact. Use this field for engagements to <code>SMS</code>.<br/>Content:  The secure content of the message that was sent to the contact. Use this field for engagements to <code>VOICE</code> and <code>EMAIL</code>.<br/>Subject:  The secure subject of the message that was sent to the contact. Use this field for engagements to <code>VOICE</code> and <code>EMAIL</code>.<br/>Sender:  The user that started the engagement.<br/>ContactArn:  The ARN of the contact that was engaged.<br/>EngagementArn:  The ARN of the engagement that engaged the contact channel.<br/>PageArn:  The Amazon Resource Name (ARN) of the engagement to a contact channel.<br/>        """
        pass

    def get_contact(self, ContactId: str) -> GetContactResult:
        r"""Retrieves information about the specified contact or escalation plan.

        :param self:
        :param ContactId:  The Amazon Resource Name (ARN) of the contact or escalation plan.<br/>
        :return: Plan:  Details about the specific timing or stages and targets of the escalation plan or engagement plan.:<br/>Type:  The type of contact, either <code>PERSONAL</code> or <code>ESCALATION</code>. <br/>DisplayName:  The full name of the contact or escalation plan.<br/>Alias:  The alias of the contact or escalation plan. The alias is unique and identifiable.<br/>ContactArn:  The ARN of the contact or escalation plan.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Stages</i> A list of stages that the escalation plan or engagement plan uses to engage contacts and contact methods.<br/>        """
        pass

    def get_contact_channel(self, ContactChannelId: str) -> GetContactChannelResult:
        r"""List details about a specific contact channel.

        :param self:
        :param ContactChannelId:  The Amazon Resource Name (ARN) of the contact channel you want information about.<br/>
        :return: ActivationStatus:  A Boolean value indicating if the contact channel has been activated or not.<br/>DeliveryAddress:  The details that Incident Manager uses when trying to engage the contact channel. :<br/>Type:  The type of contact channel. The type is <code>SMS</code>, <code>VOICE</code>, or <code>EMAIL</code>.<br/>Name:  The name of the contact channel<br/>ContactChannelArn:  The ARN of the contact channel.<br/>ContactArn:  The ARN of the contact that the channel belongs to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SimpleAddress</i> The format is dependent on the type of the contact channel. The following are the expected formats: <ul> <li> SMS - '+' followed by the country code and phone number </li> <li> VOICE - '+' followed by the country code and phone number </li> <li> EMAIL - any standard email format </li> </ul><br/>        """
        pass

    def get_contact_policy(self, ContactArn: str) -> GetContactPolicyResult:
        r"""Retrieves the resource policies attached to the specified contact or escalation plan.

        :param self:
        :param ContactArn:  The Amazon Resource Name (ARN) of the contact or escalation plan.<br/>
        :return: Policy:  Details about the resource policy attached to the contact or escalation plan.<br/>ContactArn:  The ARN of the contact or escalation plan.<br/>        """
        pass

    def list_contact_channels(self, ContactId: str, NextToken: str=None, MaxResults: int=None) -> ListContactChannelsResult:
        r"""Lists all contact channels for the specified contact.

        :param self:
        :param MaxResults:  The maximum number of contact channels per page.<br/>NextToken:  The pagination token to continue to the next page of results.<br/>ContactId:  The Amazon Resource Name (ARN) of the contact. <br/>
        :return: ContactChannels:  A list of contact channels related to the specified contact.<br/>NextToken:  The pagination token to continue to the next page of results.<br/>        """
        pass

    def list_contacts(self, NextToken: str=None, MaxResults: int=None, AliasPrefix: str=None, Type: str=None) -> ListContactsResult:
        r"""Lists all contacts and escalation plans in Incident Manager.

        :param self:
        :param Type:  The type of contact. A contact is type <code>PERSONAL</code> and an escalation plan is type <code>ESCALATION</code>.<br/>AliasPrefix:  Used to list only contacts who's aliases start with the specified prefix.<br/>MaxResults:  The maximum number of contacts and escalation plans per page of results.<br/>NextToken:  The pagination token to continue to the next page of results.<br/>
        :return: Contacts:  A list of the contacts and escalation plans in your Incident Manager account.<br/>NextToken:  The pagination token to continue to the next page of results.<br/>        """
        pass

    def list_engagements(self, NextToken: str=None, MaxResults: int=None, IncidentId: str=None, TimeRangeValue: TimeRange=None) -> ListEngagementsResult:
        r"""Lists all engagements that have happened in an incident.

        :param self:
        :param TimeRangeValue:  The time range to lists engagements for an incident.:<br/>IncidentId:  The Amazon Resource Name (ARN) of the incident you're listing engagements for.<br/>MaxResults:  The maximum number of engagements per page of results.<br/>NextToken:  The pagination token to continue to the next page of results.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndTime</i> The end of the time range.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StartTime</i> The start of the time range.<br/>
        :return: Engagements:  A list of each engagement that occurred during the specified time range of an incident.<br/>NextToken:  The pagination token to continue to the next page of results.<br/>        """
        pass

    def list_page_receipts(self, PageId: str, NextToken: str=None, MaxResults: int=None) -> ListPageReceiptsResult:
        r"""Lists all of the engagements to contact channels that have been acknowledged. 

        :param self:
        :param MaxResults:  The maximum number of acknowledgements per page of results.<br/>NextToken:  The pagination token to continue to the next page of results.<br/>PageId:  The Amazon Resource Name (ARN) of the engagement to a specific contact channel.<br/>
        :return: Receipts:  A list of each acknowledgement.<br/>NextToken:  The pagination token to continue to the next page of results.<br/>        """
        pass

    def list_pages_by_contact(self, ContactId: str, NextToken: str=None, MaxResults: int=None) -> ListPagesByContactResult:
        r"""Lists the engagements to a contact's contact channels.

        :param self:
        :param MaxResults:  The maximum number of engagements to contact channels to list per page of results. <br/>NextToken:  The pagination token to continue to the next page of results.<br/>ContactId:  The Amazon Resource Name (ARN) of the contact you are retrieving engagements for.<br/>
        :return: Pages:  The list of engagements to a contact's contact channel.<br/>NextToken:  The pagination token to continue to the next page of results.<br/>        """
        pass

    def list_pages_by_engagement(self, EngagementId: str, NextToken: str=None, MaxResults: int=None) -> ListPagesByEngagementResult:
        r"""Lists the engagements to contact channels that occurred by engaging a contact.

        :param self:
        :param MaxResults:  The maximum number of engagements to contact channels to list per page of results.<br/>NextToken:  The pagination token to continue to the next page of results.<br/>EngagementId:  The Amazon Resource Name (ARN) of the engagement.<br/>
        :return: Pages:  The list of engagements to contact channels.<br/>NextToken:  The pagination token to continue to the next page of results.<br/>        """
        pass

    def list_tags_for_resource(self, ResourceARN: str) -> ListTagsForResourceResult:
        r"""Lists the tags of an escalation plan or contact.

        :param self:
        :param ResourceARN:  The Amazon Resource Name (ARN) of the contact or escalation plan.<br/>
        :return: Tags:  The tags related to the contact or escalation plan.<br/>        """
        pass

    def put_contact_policy(self, Policy: str, ContactArn: str) -> PutContactPolicyResult:
        r"""Adds a resource to the specified contact or escalation plan.

        :param self:
        :param Policy:  Details of the resource policy.<br/>ContactArn:  The Amazon Resource Name (ARN) of the contact or escalation plan.<br/>
        :return:         """
        pass

    def send_activation_code(self, ContactChannelId: str) -> SendActivationCodeResult:
        r"""Sends an activation code to a contact channel. The contact can use this code to activate the contact channel in the console or with the <code>ActivateChannel</code> action. Incident Manager can't engage a contact channel until it has been activated.

        :param self:
        :param ContactChannelId:  The Amazon Resource Name (ARN) of the contact channel.<br/>
        :return:         """
        pass

    def start_engagement(self, Content: str, Subject: str, Sender: str, ContactId: str, PublicSubject: str=None, PublicContent: str=None, IncidentId: str=None, IdempotencyToken: str=None) -> StartEngagementResult:
        r"""Starts an engagement to a contact or escalation plan. The engagement engages each contact specified in the incident.

        :param self:
        :param IdempotencyToken:  A token ensuring that the action is called only once with the specified details.<br/>IncidentId:  The ARN of the incident that the engagement is part of.<br/>PublicContent:  The insecure content of the message that was sent to the contact. Use this field for engagements to <code>SMS</code>.<br/>PublicSubject:  The insecure subject of the message that was sent to the contact. Use this field for engagements to <code>SMS</code>.<br/>Content:  The secure content of the message that was sent to the contact. Use this field for engagements to <code>VOICE</code> or <code>EMAIL</code>.<br/>Subject:  The secure subject of the message that was sent to the contact. Use this field for engagements to <code>VOICE</code> or <code>EMAIL</code>.<br/>Sender:  The user that started the engagement.<br/>ContactId:  The Amazon Resource Name (ARN) of the contact being engaged.<br/>
        :return: EngagementArn:  The ARN of the engagement.<br/>        """
        pass

    def stop_engagement(self, EngagementId: str, Reason: str=None) -> StopEngagementResult:
        r"""Stops an engagement before it finishes the final stage of the escalation plan or engagement plan. Further contacts aren't engaged.

        :param self:
        :param Reason:  The reason that you're stopping the engagement. <br/>EngagementId:  The Amazon Resource Name (ARN) of the engagement.<br/>
        :return:         """
        pass

    def tag_resource(self, Tags: List[Tag], ResourceARN: str) -> TagResourceResult:
        r"""Tags a contact or escalation plan. You can tag only contacts and escalation plans in the first region of your replication set. 

        :param self:
        :param Tags:  A list of tags that you are adding to the contact or escalation plan.<br/>ResourceARN:  The Amazon Resource Name (ARN) of the contact or escalation plan.<br/>
        :return:         """
        pass

    def untag_resource(self, TagKeys: List[TagKey], ResourceARN: str) -> UntagResourceResult:
        r"""Removes tags from the specified resource. 

        :param self:
        :param TagKeys:  The key of the tag that you want to remove.<br/>ResourceARN:  The Amazon Resource Name (ARN) of the contact or escalation plan.<br/>
        :return:         """
        pass

    def update_contact(self, ContactId: str, DisplayName: str=None, Plan: Plan=None) -> UpdateContactResult:
        r"""Updates the contact or escalation plan specified. 

        :param self:
        :param Plan:  A list of stages. A contact has an engagement plan with stages for specified contact channels. An escalation plan uses these stages to contact specified contacts. :<br/>DisplayName:  The full name of the contact or escalation plan.<br/>ContactId:  The Amazon Resource Name (ARN) of the contact or escalation plan you're updating.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Stages</i> A list of stages that the escalation plan or engagement plan uses to engage contacts and contact methods.<br/>
        :return:         """
        pass

    def update_contact_channel(self, ContactChannelId: str, Name: str=None, DeliveryAddress: ContactChannelAddress=None) -> UpdateContactChannelResult:
        r"""Updates a contact's contact channel.

        :param self:
        :param DeliveryAddress:  The details that Incident Manager uses when trying to engage the contact channel. :<br/>Name:  The name of the contact channel<br/>ContactChannelId:  The Amazon Resource Name (ARN) of the contact channel you want to update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SimpleAddress</i> The format is dependent on the type of the contact channel. The following are the expected formats: <ul> <li> SMS - '+' followed by the country code and phone number </li> <li> VOICE - '+' followed by the country code and phone number </li> <li> EMAIL - any standard email format </li> </ul><br/>
        :return:         """
        pass





class SSMIncidents(BaseClient):
    r"""AWS Systems Manager Incident Manager is an incident management console designed to help users mitigate and recover from incidents affecting their AWS-hosted applications. An incident is any unplanned interruption or reduction in quality of services.  Incident Manager increases incident resolution by notifying responders of impact, highlighting relevant troubleshooting data, and providing collaboration tools to get services back up and running. To achieve the primary goal of reducing the time-to-resolution of critical incidents, Incident Manager automates response plans and enables responder team escalation. """

    class WaitForReplicationSetActiveWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `get_replication_set` for valid parameters"""
            pass
    class WaitForReplicationSetDeletedWaiter(Waiter):
        def wait(self, **kwargs):
            r"""see function `get_replication_set` for valid parameters"""
            pass


    class GetResourcePoliciesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_resource_policies` for valid parameters"""
            pass
    class ListIncidentRecordsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_incident_records` for valid parameters"""
            pass
    class ListRelatedItemsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_related_items` for valid parameters"""
            pass
    class ListReplicationSetsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_replication_sets` for valid parameters"""
            pass
    class ListResponsePlansPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_response_plans` for valid parameters"""
            pass
    class ListTimelineEventsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_timeline_events` for valid parameters"""
            pass


    class CreateReplicationSetInput(Mapping):
        pass
    
    class CreateReplicationSetOutput(Mapping):
        pass
    
    class RegionMapInput(object):
        pass
    
    class CreateResponsePlanInput(Mapping):
        pass
    
    class CreateResponsePlanOutput(Mapping):
        pass
    
    class Action(Mapping):
        pass
    
    class ChatChannel(Mapping):
        pass
    
    class SsmContactsArn(object):
        pass
    
    class IncidentTemplate(Mapping):
        pass
    
    class TagMap(object):
        pass
    
    class CreateTimelineEventInput(Mapping):
        pass
    
    class CreateTimelineEventOutput(Mapping):
        pass
    
    class Timestamp(object):
        pass
    
    class DeleteIncidentRecordInput(Mapping):
        pass
    
    class DeleteIncidentRecordOutput(Mapping):
        pass
    
    class DeleteReplicationSetInput(Mapping):
        pass
    
    class DeleteReplicationSetOutput(Mapping):
        pass
    
    class DeleteResourcePolicyInput(Mapping):
        pass
    
    class DeleteResourcePolicyOutput(Mapping):
        pass
    
    class DeleteResponsePlanInput(Mapping):
        pass
    
    class DeleteResponsePlanOutput(Mapping):
        pass
    
    class DeleteTimelineEventInput(Mapping):
        pass
    
    class DeleteTimelineEventOutput(Mapping):
        pass
    
    class GetIncidentRecordInput(Mapping):
        pass
    
    class GetIncidentRecordOutput(Mapping):
        pass
    
    class GetReplicationSetInput(Mapping):
        pass
    
    class GetReplicationSetOutput(Mapping):
        pass
    
    class GetResourcePoliciesInput(Mapping):
        pass
    
    class GetResourcePoliciesOutput(Mapping):
        pass
    
    class GetResponsePlanInput(Mapping):
        pass
    
    class GetResponsePlanOutput(Mapping):
        pass
    
    class GetTimelineEventInput(Mapping):
        pass
    
    class GetTimelineEventOutput(Mapping):
        pass
    
    class ListIncidentRecordsInput(Mapping):
        pass
    
    class ListIncidentRecordsOutput(Mapping):
        pass
    
    class Filter(Mapping):
        pass
    
    class ListRelatedItemsInput(Mapping):
        pass
    
    class ListRelatedItemsOutput(Mapping):
        pass
    
    class ListReplicationSetsInput(Mapping):
        pass
    
    class ListReplicationSetsOutput(Mapping):
        pass
    
    class ListResponsePlansInput(Mapping):
        pass
    
    class ListResponsePlansOutput(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class ListTimelineEventsInput(Mapping):
        pass
    
    class ListTimelineEventsOutput(Mapping):
        pass
    
    class PutResourcePolicyInput(Mapping):
        pass
    
    class PutResourcePolicyOutput(Mapping):
        pass
    
    class StartIncidentInput(Mapping):
        pass
    
    class StartIncidentOutput(Mapping):
        pass
    
    class RelatedItem(Mapping):
        pass
    
    class TriggerDetails(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateDeletionProtectionInput(Mapping):
        pass
    
    class UpdateDeletionProtectionOutput(Mapping):
        pass
    
    class Boolean(object):
        pass
    
    class UpdateIncidentRecordInput(Mapping):
        pass
    
    class UpdateIncidentRecordOutput(Mapping):
        pass
    
    class NotificationTargetItem(Mapping):
        pass
    
    class UpdateRelatedItemsInput(Mapping):
        pass
    
    class UpdateRelatedItemsOutput(Mapping):
        pass
    
    class RelatedItemsUpdate(Mapping):
        pass
    
    class UpdateReplicationSetInput(Mapping):
        pass
    
    class UpdateReplicationSetOutput(Mapping):
        pass
    
    class UpdateReplicationSetAction(Mapping):
        pass
    
    class UpdateResponsePlanInput(Mapping):
        pass
    
    class UpdateResponsePlanOutput(Mapping):
        pass
    
    class UpdateTimelineEventInput(Mapping):
        pass
    
    class UpdateTimelineEventOutput(Mapping):
        pass
    
    def create_replication_set(self, regions: RegionMapInput, clientToken: str=None) -> CreateReplicationSetOutput:
        r"""A replication set replicates and encrypts your data to the provided Regions with the provided KMS key. 

        :param self:
        :param regions:  The Regions that Incident Manager replicates your data to. You can have up to three Regions in your replication set.<br/>clientToken:  A token ensuring that the action is called only once with the specified details.<br/>
        :return: arn:  The Amazon Resource Name (ARN) of the replication set. <br/>        """
        pass

    def create_response_plan(self, name: str, incidentTemplate: IncidentTemplate, actions: List[Action]=None, chatChannel: ChatChannel=None, clientToken: str=None, displayName: str=None, engagements: List[SsmContactsArn]=None, tags: TagMap=None) -> CreateResponsePlanOutput:
        r"""Creates a response plan that automates the initial response to incidents. A response plan engages contacts, starts chat channel collaboration, and initiates runbooks at the beginning of an incident.

        :param self:
        :param tags:  A list of tags that you are adding to the response plan.<br/>name:  The short format name of the response plan. Can't include spaces.<br/>incidentTemplate:  Details used to create an incident when using this response plan.:<br/>engagements:  The contacts and escalation plans that the response plan engages during an incident.<br/>displayName:  The long format of the response plan name. This field can contain spaces.<br/>clientToken:  A token ensuring that the action is called only once with the specified details.<br/>chatChannel:  The AWS Chatbot chat channel used for collaboration during an incident.:<br/>actions:  The actions that the response plan starts at the beginning of an incident.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>chatbotSns</i> The SNS targets that AWS Chatbot uses to notify the chat channel of updates to an incident. You can also make updates to the incident through the chat channel by using the SNS topics. <br/>Used to remove the chat channel from an incident record or response plan.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>empty</b>: Used to remove the chat channel from an incident record or response plan.&nbsp;&nbsp;&nbsp;&nbsp; <i>title</i> The title of the incident. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>summary</i> The summary of the incident. The summary is a brief synopsis of what occurred, what's currently happening, and context.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>notificationTargets</i> The SNS targets that AWS Chatbot uses to notify the chat channel of updates to an incident. You can also make updates to the incident through the chat channel using the SNS topics. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>impact</i> The impact of the incident on your customers and applications. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>dedupeString</i> Used to stop Incident Manager from creating multiple incident records for the same incident. <br/>
        :return: arn:  The Amazon Resource Name (ARN) of the response plan.<br/>        """
        pass

    def create_timeline_event(self, incidentRecordArn: str, eventType: str, eventTime: Timestamp, eventData: str, clientToken: str) -> CreateTimelineEventOutput:
        r"""Creates a custom timeline event on the incident details page of an incident record. Timeline events are automatically created by Incident Manager, marking key moment during an incident. You can create custom timeline events to mark important events that are automatically detected by Incident Manager.

        :param self:
        :param incidentRecordArn:  The Amazon Resource Name (ARN) of the incident record you are adding the event to.<br/>eventType:  The type of the event. You can create timeline events of type <code>Custom Event</code>.<br/>eventTime:  The time that the event occurred.<br/>eventData:  A short description of the event.<br/>clientToken:  A token ensuring that the action is called only once with the specified details.<br/>
        :return: incidentRecordArn:  The ARN of the incident record that you added the event to.<br/>eventId:  The ID of the event for easy reference later. <br/>        """
        pass

    def delete_incident_record(self, arn: str) -> DeleteIncidentRecordOutput:
        r"""Delete an incident record from Incident Manager. 

        :param self:
        :param arn:  The Amazon Resource Name (ARN) of the incident record you are deleting.<br/>
        :return:         """
        pass

    def delete_replication_set(self, arn: str) -> DeleteReplicationSetOutput:
        r"""Deletes all Regions in your replication set. Deleting the replication set deletes all Incident Manager data.

        :param self:
        :param arn:  The Amazon Resource Name (ARN) of the replication set you're deleting.<br/>
        :return:         """
        pass

    def delete_resource_policy(self, resourceArn: str, policyId: str) -> DeleteResourcePolicyOutput:
        r"""Deletes the resource policy that AWS Resource Access Manager uses to share your Incident Manager resource.

        :param self:
        :param resourceArn:  The Amazon Resource Name (ARN) of the resource you're deleting the policy from.<br/>policyId:  The ID of the resource policy you're deleting.<br/>
        :return:         """
        pass

    def delete_response_plan(self, arn: str) -> DeleteResponsePlanOutput:
        r"""Deletes the specified response plan. Deleting a response plan stops all linked CloudWatch alarms and EventBridge events from creating an incident with this response plan.

        :param self:
        :param arn:  The Amazon Resource Name (ARN) of the response plan.<br/>
        :return:         """
        pass

    def delete_timeline_event(self, incidentRecordArn: str, eventId: str) -> DeleteTimelineEventOutput:
        r"""Deletes a timeline event from an incident.

        :param self:
        :param incidentRecordArn:  The Amazon Resource Name (ARN) of the incident that the event is part of.<br/>eventId:  The ID of the event you are updating. You can find this by using <code>ListTimelineEvents</code>.<br/>
        :return:         """
        pass

    def get_incident_record(self, arn: str) -> GetIncidentRecordOutput:
        r"""Returns the details of the specified incident record.

        :param self:
        :param arn:  The Amazon Resource Name (ARN) of the incident record.<br/>
        :return: incidentRecord:  Details structure of the incident record.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>title</i> The title of the incident.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>summary</i> The summary of the incident. The summary is a brief synopsis of what occurred, what is currently happening, and context.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current status of the incident.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resolvedTime</i> The time at which the incident was resolved. This appears as a timeline event.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>notificationTargets</i> The SNS targets that AWS Chatbot uses to notify the chat channels and perform actions on the incident record.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastModifiedTime</i> The time at which the incident was most recently modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastModifiedBy</i> Who modified the incident most recently.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>incidentRecordSource</i> Details about the action that started the incident.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>incidentRecordSource</b>: Details about the action that started the incident.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>impact</i> The impact of the incident on customers and applications.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>dedupeString</i> The string Incident Manager uses to prevent duplicate incidents from being created by the same incident.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationTime</i> The time that Incident Manager created the incident record.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>chatChannel</i> The chat channel used for collaboration during an incident.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>chatChannel</b>: The chat channel used for collaboration during an incident.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>automationExecutions</i> The runbook, or automation document, that's run at the beginning of the incident.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The Amazon Resource Name (ARN) of the incident record.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>chatbotSns</i> The SNS targets that AWS Chatbot uses to notify the chat channel of updates to an incident. You can also make updates to the incident through the chat channel by using the SNS topics. <br/>Used to remove the chat channel from an incident record or response plan.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>empty</b>: Used to remove the chat channel from an incident record or response plan.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>source</i> The service that started the incident. This can be manually created from Incident Manager, automatically created using an AWS CloudWatch alarm, or Amazon EventBridge event.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>resourceArn</i> The resource that caused the incident to be created.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>invokedBy</i> The principal the assumed the role specified of the <code>createdBy</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>createdBy</i> The principal that started the incident.<br/>        """
        pass

    def get_replication_set(self, arn: str) -> GetReplicationSetOutput:
        r"""Retrieve your Incident Manager replication set.

        :param self:
        :param arn:  The Amazon Resource Name (ARN) of the replication set you want to retrieve.<br/>
        :return: replicationSet:  Details of the replication set.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the replication set. If the replication set is still pending, you can't use Incident Manager functionality.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>regionMap</i> The map between each Region in your replication set and the KMS key that is used to encrypt the data in that Region.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastModifiedTime</i> When the replication set was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lastModifiedBy</i> Who last modified the replication set.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deletionProtected</i> Determines if the replication set deletion protection is enabled or not. If deletion protection is enabled, you can't delete the last Region in the replication set. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdTime</i> When the replication set was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>createdBy</i> Details about who created the replication set.<br/>        """
        pass

    def get_resource_policies(self, resourceArn: str, maxResults: int=None, nextToken: str=None) -> GetResourcePoliciesOutput:
        r"""Retrieves the resource policies attached to the specified response plan.

        :param self:
        :param resourceArn:  The Amazon Resource Name (ARN) of the response plan with the attached resource policy. <br/>nextToken:  The pagination token to continue to the next page of results.<br/>maxResults:  The maximum number of resource policies to display per page of results.<br/>
        :return: resourcePolicies:  Details about the resource policy attached to the response plan.<br/>nextToken:  The pagination token to continue to the next page of results.<br/>        """
        pass

    def get_response_plan(self, arn: str) -> GetResponsePlanOutput:
        r"""Retrieves the details of the specified response plan.

        :param self:
        :param arn:  The Amazon Resource Name (ARN) of the response plan.<br/>
        :return: name:  The short format name of the response plan. Can't contain spaces.<br/>incidentTemplate:  Details used to create the incident when using this response plan.:<br/>engagements:  The contacts and escalation plans that the response plan engages during an incident.<br/>displayName:  The long format name of the response plan. Can contain spaces.<br/>chatChannel:  The AWS Chatbot chat channel used for collaboration during an incident.:<br/>arn:  The ARN of the response plan.<br/>actions:  The actions that this response plan takes at the beginning of the incident.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>chatbotSns</i> The SNS targets that AWS Chatbot uses to notify the chat channel of updates to an incident. You can also make updates to the incident through the chat channel by using the SNS topics. <br/>Used to remove the chat channel from an incident record or response plan.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>empty</b>: Used to remove the chat channel from an incident record or response plan.&nbsp;&nbsp;&nbsp;&nbsp; <i>title</i> The title of the incident. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>summary</i> The summary of the incident. The summary is a brief synopsis of what occurred, what's currently happening, and context.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>notificationTargets</i> The SNS targets that AWS Chatbot uses to notify the chat channel of updates to an incident. You can also make updates to the incident through the chat channel using the SNS topics. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>impact</i> The impact of the incident on your customers and applications. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>dedupeString</i> Used to stop Incident Manager from creating multiple incident records for the same incident. <br/>        """
        pass

    def get_timeline_event(self, incidentRecordArn: str, eventId: str) -> GetTimelineEventOutput:
        r"""Retrieves a timeline event based on its ID and incident record.

        :param self:
        :param incidentRecordArn:  The Amazon Resource Name (ARN) of the incident that the timeline event is part of.<br/>eventId:  The ID of the event. You can get an event's ID when you create it or by using <code>ListTimelineEvents</code>.<br/>
        :return: event:  Details about the timeline event.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>incidentRecordArn</i> The Amazon Resource Name (ARN) of the incident that the event occurred during.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>eventUpdatedTime</i> The time that the timeline event was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>eventType</i> The type of event that occurred. Currently Incident Manager supports only the <code>Custom Event</code> type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>eventTime</i> The time that the event occurred.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>eventId</i> The ID of the timeline event.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>eventData</i> A short description of the event.<br/>        """
        pass

    def list_incident_records(self, filters: List[Filter]=None, maxResults: int=None, nextToken: str=None) -> ListIncidentRecordsOutput:
        r"""Lists all incident records in your account. Use this command to retrieve the Amazon Resource Name (ARN) of the incident record you want to update. 

        :param self:
        :param nextToken:  The pagination token to continue to the next page of results.<br/>maxResults:  The maximum number of results per page.<br/>filters:  Filter the list of incident records you are searching through. You can filter on the following keys: <ul> <li>  <code>creationTime</code>  </li> <li>  <code>impact</code>  </li> <li>  <code>status</code>  </li> <li>  <code>createdBy</code>  </li> </ul><br/>
        :return: nextToken:  The pagination token to continue to the next page of results.<br/>incidentRecordSummaries:  The details of each listed incident record.<br/>        """
        pass

    def list_related_items(self, incidentRecordArn: str, maxResults: int=None, nextToken: str=None) -> ListRelatedItemsOutput:
        r"""List all related items for an incident record.

        :param self:
        :param nextToken:  The pagination token to continue to the next page of results.<br/>maxResults:  The maximum number of related items per page.<br/>incidentRecordArn:  The Amazon Resource Name (ARN) of the incident record that you are listing related items for.<br/>
        :return: relatedItems:  Details about each related item.<br/>nextToken:  The pagination token to continue to the next page of results.<br/>        """
        pass

    def list_replication_sets(self, maxResults: int=None, nextToken: str=None) -> ListReplicationSetsOutput:
        r"""Lists details about the replication set configured in your account. 

        :param self:
        :param nextToken:  The pagination token to continue to the next page of results.<br/>maxResults:  The maximum number of results per page. <br/>
        :return: replicationSetArns:  The Amazon Resource Name (ARN) of the list replication set.<br/>nextToken:  The pagination token to continue to the next page of results.<br/>        """
        pass

    def list_response_plans(self, maxResults: int=None, nextToken: str=None) -> ListResponsePlansOutput:
        r"""Lists all response plans in your account.

        :param self:
        :param nextToken:  The pagination token to continue to the next page of results.<br/>maxResults:  The maximum number of response plans per page.<br/>
        :return: responsePlanSummaries:  Details of each response plan.<br/>nextToken:  The pagination token to continue to the next page of results.<br/>        """
        pass

    def list_tags_for_resource(self, resourceArn: str) -> ListTagsForResourceResponse:
        r"""Lists the tags that are attached to the specified response plan.

        :param self:
        :param resourceArn:  The Amazon Resource Name (ARN) of the response plan.<br/>
        :return: tags:  A list of tags for the response plan.<br/>        """
        pass

    def list_timeline_events(self, incidentRecordArn: str, filters: List[Filter]=None, maxResults: int=None, nextToken: str=None, sortBy: str=None, sortOrder: str=None) -> ListTimelineEventsOutput:
        r"""Lists timeline events of the specified incident record.

        :param self:
        :param sortOrder:  Sorts the order of timeline events by the value specified in the <code>sortBy</code> field.<br/>sortBy:  Sort by the specified key value pair.<br/>nextToken:  The pagination token to continue to the next page of results.<br/>maxResults:  The maximum number of results per page.<br/>incidentRecordArn:  The Amazon Resource Name (ARN) of the incident that the event is part of.<br/>filters:  Filters the timeline events based on the provided conditional values. You can filter timeline events using the following keys: <ul> <li>  <code>eventTime</code>  </li> <li>  <code>eventType</code>  </li> </ul><br/>
        :return: nextToken:  The pagination token to continue to the next page of results.<br/>eventSummaries:  Details about each event that occurred during the incident.<br/>        """
        pass

    def put_resource_policy(self, resourceArn: str, policy: str) -> PutResourcePolicyOutput:
        r"""Adds a resource policy to the specified response plan.

        :param self:
        :param resourceArn:  The Amazon Resource Name (ARN) of the response plan you're adding the resource policy to.<br/>policy:  Details of the resource policy.<br/>
        :return: policyId:  The ID of the resource policy.<br/>        """
        pass

    def start_incident(self, responsePlanArn: str, clientToken: str=None, impact: int=None, relatedItems: List[RelatedItem]=None, title: str=None, triggerDetails: TriggerDetails=None) -> StartIncidentOutput:
        r"""Used to start an incident from CloudWatch alarms, EventBridge events, or manually. 

        :param self:
        :param triggerDetails:  Details of what created the incident record in Incident Manager.:<br/>title:  Provide a title for the incident. Providing a title overwrites the title provided by the response plan. <br/>responsePlanArn:  The Amazon Resource Name (ARN) of the response plan that pre-defines summary, chat channels, SNS topics, runbooks, title, and impact of the incident. <br/>relatedItems:  Add related items to the incident for other responders to use. Related items are AWS resources, external links, or files uploaded to an S3 bucket. <br/>impact:  Defines the impact to the customers. Providing an impact overwrites the impact provided by a response plan. <p class="title"> <b>Possible impacts:</b>  <ul> <li>  <code>1</code> - Critical impact, this typically relates to full application failure that impacts many to all customers.  </li> <li>  <code>2</code> - High impact, partial application failure with impact to many customers. </li> <li>  <code>3</code> - Medium impact, the application is providing reduced service to customers. </li> <li>  <code>4</code> - Low impact, customer might aren't impacted by the problem yet. </li> <li>  <code>5</code> - No impact, customers aren't currently impacted but urgent action is needed to avoid impact. </li> </ul><br/>clientToken:  A token ensuring that the action is called only once with the specified details.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>triggerArn</i> The ARN of the source that detected the incident.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>timestamp</i> The time that the incident was detected.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>source</i> Identifies the service that sourced the event. All events sourced from within AWS begin with "aws." Customer-generated events can have any value here, as long as it doesn't begin with "aws." We recommend the use of Java package-name style reverse domain-name strings. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>rawData</i> Raw data passed from either EventBridge, CloudWatch, or Incident Manager when an incident is created.<br/>
        :return: incidentRecordArn:  The ARN of the newly created incident record.<br/>        """
        pass

    def tag_resource(self, tags: TagMap, resourceArn: str) -> TagResourceResponse:
        r"""Adds a tag to a response plan.

        :param self:
        :param tags:  A list of tags that you are adding to the response plan.<br/>resourceArn:  The Amazon Resource Name (ARN) of the response plan you're adding the tags to.<br/>
        :return:         """
        pass

    def untag_resource(self, tagKeys: List[TagKey], resourceArn: str) -> UntagResourceResponse:
        r"""Removes a tag from a resource.

        :param self:
        :param tagKeys:  The name of the tag you're removing from the response plan.<br/>resourceArn:  The Amazon Resource Name (ARN) of the response plan you're removing a tag from.<br/>
        :return:         """
        pass

    def update_deletion_protection(self, deletionProtected: Boolean, arn: str, clientToken: str=None) -> UpdateDeletionProtectionOutput:
        r"""Update deletion protection to either allow or deny deletion of the final Region in a replication set.

        :param self:
        :param deletionProtected:  Details if deletion protection is enabled or disabled in your account.<br/>clientToken:  A token ensuring that the action is called only once with the specified details.<br/>arn:  The Amazon Resource Name (ARN) of the replication set you're updating.<br/>
        :return:         """
        pass

    def update_incident_record(self, arn: str, chatChannel: ChatChannel=None, clientToken: str=None, impact: int=None, notificationTargets: List[NotificationTargetItem]=None, status: str=None, summary: str=None, title: str=None) -> UpdateIncidentRecordOutput:
        r"""Update the details of an incident record. You can use this action to update an incident record from the defined chat channel. For more information about using actions in chat channels, see <a href="https://docs.aws.amazon.com/incident-manager/latest/userguide/chat.html#chat-interact">Interacting through chat</a>.

        :param self:
        :param title:  The title of the incident is a brief and easily recognizable.<br/>summary:  The summary describes what has happened during the incident.<br/>status:  The status of the incident. An incident can be <code>Open</code> or <code>Resolved</code>.<br/>notificationTargets:  The SNS targets that AWS Chatbot uses to notify the chat channel of updates to an incident. You can also make updates to the incident through the chat channel using the SNS topics.  Using multiple SNS topics creates redundancy in the case that a Region is down during the incident.<br/>impact:  Defines the impact to customers and applications. Providing an impact overwrites the impact provided by the response plan. <p class="title"> <b>Possible impacts:</b>  <ul> <li>  <code>1</code> - Critical impact, this typically relates to full application failure that impacts many to all customers.  </li> <li>  <code>2</code> - High impact, partial application failure with impact to many customers. </li> <li>  <code>3</code> - Medium impact, the application is providing reduced service to customers. </li> <li>  <code>4</code> - Low impact, customer might aren't impacted by the problem yet. </li> <li>  <code>5</code> - No impact, customers aren't currently impacted but urgent action is needed to avoid impact. </li> </ul><br/>clientToken:  A token ensuring that the action is called only once with the specified details.<br/>chatChannel:  The AWS Chatbot chat channel for responders to collaborate in.:<br/>arn:  The Amazon Resource Name (ARN) of the incident record you are updating.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>chatbotSns</i> The SNS targets that AWS Chatbot uses to notify the chat channel of updates to an incident. You can also make updates to the incident through the chat channel by using the SNS topics. <br/>Used to remove the chat channel from an incident record or response plan.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>empty</b>: Used to remove the chat channel from an incident record or response plan.
        :return:         """
        pass

    def update_related_items(self, relatedItemsUpdate: RelatedItemsUpdate, incidentRecordArn: str, clientToken: str=None) -> UpdateRelatedItemsOutput:
        r"""Add or remove related items from the related items tab of an incident record.

        :param self:
        :param relatedItemsUpdate:  Details about the item you are adding or deleting.:<br/>incidentRecordArn:  The Amazon Resource Name (ARN) of the incident record you are updating related items in.<br/>clientToken:  A token ensuring that the action is called only once with the specified details.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>itemToRemove</i> Details about the related item you're deleting.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>itemToRemove</b>: Details about the related item you're deleting.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>itemToAdd</i> Details about the related item you're adding.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>itemToAdd</b>: Details about the related item you're adding.<br/>Details about the related item.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>identifier</b>: Details about the related item.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>type</i> The type of related item. Incident Manager supports the following types: <ul> <li>  <code>ANALYSIS</code>  </li> <li>  <code>INCIDENT</code>  </li> <li>  <code>METRIC</code>  </li> <li>  <code>PARENT</code>  </li> <li>  <code>ATTACHMENT</code>  </li> <li>  <code>OTHER</code>  </li> </ul><br/>Details about the related item.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>value</b>: Details about the related item.
        :return:         """
        pass

    def update_replication_set(self, arn: str, actions: List[UpdateReplicationSetAction], clientToken: str=None) -> UpdateReplicationSetOutput:
        r"""Add or delete Regions from your replication set.

        :param self:
        :param clientToken:  A token ensuring that the action is called only once with the specified details.<br/>arn:  The Amazon Resource Name (ARN) of the replication set you're updating.<br/>actions:  An action to add or delete a Region.<br/>
        :return:         """
        pass

    def update_response_plan(self, arn: str, actions: List[Action]=None, chatChannel: ChatChannel=None, clientToken: str=None, displayName: str=None, engagements: List[SsmContactsArn]=None, incidentTemplateDedupeString: str=None, incidentTemplateImpact: int=None, incidentTemplateNotificationTargets: List[NotificationTargetItem]=None, incidentTemplateSummary: str=None, incidentTemplateTitle: str=None) -> UpdateResponsePlanOutput:
        r"""Updates the specified response plan.

        :param self:
        :param incidentTemplateTitle:  The short format name of the incident. Can't contain spaces.<br/>incidentTemplateSummary:  A brief summary of the incident. This typically contains what has happened, what's currently happening, and next steps.<br/>incidentTemplateNotificationTargets:  The SNS targets that AWS Chatbot uses to notify the chat channels and perform actions on the incident record.<br/>incidentTemplateImpact:  Defines the impact to the customers. Providing an impact overwrites the impact provided by a response plan. <p class="title"> <b>Possible impacts:</b>  <ul> <li>  <code>5</code> - Severe impact </li> <li>  <code>4</code> - High impact </li> <li>  <code>3</code> - Medium impact </li> <li>  <code>2</code> - Low impact </li> <li>  <code>1</code> - No impact </li> </ul><br/>incidentTemplateDedupeString:  Used to create only one incident record for an incident.<br/>engagements:  The contacts and escalation plans that Incident Manager engages at the start of the incident.<br/>displayName:  The long format name of the response plan. Can't contain spaces.<br/>clientToken:  A token ensuring that the action is called only once with the specified details.<br/>chatChannel:  The AWS Chatbot chat channel used for collaboration during an incident.:<br/>arn:  The Amazon Resource Name (ARN) of the response plan.<br/>actions:  The actions that this response plan takes at the beginning of an incident.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>chatbotSns</i> The SNS targets that AWS Chatbot uses to notify the chat channel of updates to an incident. You can also make updates to the incident through the chat channel by using the SNS topics. <br/>Used to remove the chat channel from an incident record or response plan.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>empty</b>: Used to remove the chat channel from an incident record or response plan.
        :return:         """
        pass

    def update_timeline_event(self, incidentRecordArn: str, eventId: str, clientToken: str, eventData: str=None, eventTime: Timestamp=None, eventType: str=None) -> UpdateTimelineEventOutput:
        r"""Updates a timeline event. You can update events of type <code>Custom Event</code>.

        :param self:
        :param incidentRecordArn:  The Amazon Resource Name (ARN) of the incident that the timeline event is part of.<br/>eventType:  The type of the event. You can update events of type <code>Custom Event</code>.<br/>eventTime:  The time that the event occurred.<br/>eventId:  The ID of the event you are updating. You can find this by using <code>ListTimelineEvents</code>.<br/>eventData:  A short description of the event.<br/>clientToken:  A token ensuring that the action is called only once with the specified details.<br/>
        :return:         """
        pass





class SSO(BaseClient):
    r"""AWS Single Sign-On Portal is a web service that makes it easy for you to assign user access to AWS SSO resources such as the user portal. Users can get AWS account applications and roles assigned to them and get federated into the application. For general information about AWS SSO, see <a href="https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html">What is AWS Single Sign-On?</a> in the <i>AWS SSO User Guide</i>. This API reference guide describes the AWS SSO Portal operations that you can call programatically and includes detailed information on data types and errors. <note> AWS provides SDKs that consist of libraries and sample code for various programming languages and platforms, such as Java, Ruby, .Net, iOS, or Android. The SDKs provide a convenient way to create programmatic access to AWS SSO and other AWS services. For more information about the AWS SDKs, including how to download and install them, see <a href="http://aws.amazon.com/tools/">Tools for Amazon Web Services</a>. </note>"""


    class ListAccountRolesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_account_roles` for valid parameters"""
            pass
    class ListAccountsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_accounts` for valid parameters"""
            pass


    class GetRoleCredentialsRequest(Mapping):
        pass
    
    class GetRoleCredentialsResponse(Mapping):
        pass
    
    class ListAccountRolesRequest(Mapping):
        pass
    
    class ListAccountRolesResponse(Mapping):
        pass
    
    class ListAccountsRequest(Mapping):
        pass
    
    class ListAccountsResponse(Mapping):
        pass
    
    class LogoutRequest(Mapping):
        pass
    
    def get_role_credentials(self, accessToken: str, accountId: str, roleName: str) -> GetRoleCredentialsResponse:
        r"""Returns the STS short-term credentials for a given role name that is assigned to the user.

        :param self:
        :param accessToken:  The token issued by the <code>CreateToken</code> API call. For more information, see <a href="https://docs.aws.amazon.com/singlesignon/latest/OIDCAPIReference/API_CreateToken.html">CreateToken</a> in the <i>AWS SSO OIDC API Reference Guide</i>.<br/>accountId:  The identifier for the AWS account that is assigned to the user.<br/>roleName:  The friendly name of the role that is assigned to the user.<br/>
        :return: roleCredentials:  The credentials for the role that is assigned to the user.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>expiration</i> The date on which temporary security credentials expire.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>sessionToken</i> The token used for temporary credentials. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html">Using Temporary Security Credentials to Request Access to AWS Resources</a> in the <i>AWS IAM User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>secretAccessKey</i> The key that is used to sign the request. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html">Using Temporary Security Credentials to Request Access to AWS Resources</a> in the <i>AWS IAM User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>accessKeyId</i> The identifier used for the temporary security credentials. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html">Using Temporary Security Credentials to Request Access to AWS Resources</a> in the <i>AWS IAM User Guide</i>.<br/>        """
        pass

    def list_account_roles(self, accountId: str, accessToken: str, nextToken: str=None, maxResults: int=None) -> ListAccountRolesResponse:
        r"""Lists all roles that are assigned to the user for a given AWS account.

        :param self:
        :param accountId:  The identifier for the AWS account that is assigned to the user.<br/>accessToken:  The token issued by the <code>CreateToken</code> API call. For more information, see <a href="https://docs.aws.amazon.com/singlesignon/latest/OIDCAPIReference/API_CreateToken.html">CreateToken</a> in the <i>AWS SSO OIDC API Reference Guide</i>.<br/>maxResults:  The number of items that clients can request per page.<br/>nextToken:  The page token from the previous response output when you request subsequent pages.<br/>
        :return: roleList:  A paginated response with the list of roles and the next token if more results are available.<br/>nextToken:  The page token client that is used to retrieve the list of accounts.<br/>        """
        pass

    def list_accounts(self, accessToken: str, nextToken: str=None, maxResults: int=None) -> ListAccountsResponse:
        r"""Lists all AWS accounts assigned to the user. These AWS accounts are assigned by the administrator of the account. For more information, see <a href="https://docs.aws.amazon.com/singlesignon/latest/userguide/useraccess.html#assignusers">Assign User Access</a> in the <i>AWS SSO User Guide</i>. This operation returns a paginated response.

        :param self:
        :param accessToken:  The token issued by the <code>CreateToken</code> API call. For more information, see <a href="https://docs.aws.amazon.com/singlesignon/latest/OIDCAPIReference/API_CreateToken.html">CreateToken</a> in the <i>AWS SSO OIDC API Reference Guide</i>.<br/>maxResults:  This is the number of items clients can request per page.<br/>nextToken:  (Optional) When requesting subsequent pages, this is the page token from the previous response output.<br/>
        :return: accountList:  A paginated response with the list of account information and the next token if more results are available.<br/>nextToken:  The page token client that is used to retrieve the list of accounts.<br/>        """
        pass

    def logout(self, accessToken: str):
        r"""Removes the client- and server-side session that is associated with the user.

        :param self:
        :param accessToken:  The token issued by the <code>CreateToken</code> API call. For more information, see <a href="https://docs.aws.amazon.com/singlesignon/latest/OIDCAPIReference/API_CreateToken.html">CreateToken</a> in the <i>AWS SSO OIDC API Reference Guide</i>.<br/>
        :return:         """
        pass





class SSOAdmin(BaseClient):
    r""""""


    class ListAccountAssignmentCreationStatusPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_account_assignment_creation_status` for valid parameters"""
            pass
    class ListAccountAssignmentDeletionStatusPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_account_assignment_deletion_status` for valid parameters"""
            pass
    class ListAccountAssignmentsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_account_assignments` for valid parameters"""
            pass
    class ListAccountsForProvisionedPermissionSetPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_accounts_for_provisioned_permission_set` for valid parameters"""
            pass
    class ListInstancesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_instances` for valid parameters"""
            pass
    class ListManagedPoliciesInPermissionSetPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_managed_policies_in_permission_set` for valid parameters"""
            pass
    class ListPermissionSetProvisioningStatusPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_permission_set_provisioning_status` for valid parameters"""
            pass
    class ListPermissionSetsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_permission_sets` for valid parameters"""
            pass
    class ListPermissionSetsProvisionedToAccountPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_permission_sets_provisioned_to_account` for valid parameters"""
            pass
    class ListTagsForResourcePaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_tags_for_resource` for valid parameters"""
            pass


    class AttachManagedPolicyToPermissionSetRequest(Mapping):
        pass
    
    class AttachManagedPolicyToPermissionSetResponse(Mapping):
        pass
    
    class CreateAccountAssignmentRequest(Mapping):
        pass
    
    class CreateAccountAssignmentResponse(Mapping):
        pass
    
    class CreateInstanceAccessControlAttributeConfigurationRequest(Mapping):
        pass
    
    class CreateInstanceAccessControlAttributeConfigurationResponse(Mapping):
        pass
    
    class InstanceAccessControlAttributeConfiguration(Mapping):
        pass
    
    class CreatePermissionSetRequest(Mapping):
        pass
    
    class CreatePermissionSetResponse(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class DeleteAccountAssignmentRequest(Mapping):
        pass
    
    class DeleteAccountAssignmentResponse(Mapping):
        pass
    
    class DeleteInlinePolicyFromPermissionSetRequest(Mapping):
        pass
    
    class DeleteInlinePolicyFromPermissionSetResponse(Mapping):
        pass
    
    class DeleteInstanceAccessControlAttributeConfigurationRequest(Mapping):
        pass
    
    class DeleteInstanceAccessControlAttributeConfigurationResponse(Mapping):
        pass
    
    class DeletePermissionSetRequest(Mapping):
        pass
    
    class DeletePermissionSetResponse(Mapping):
        pass
    
    class DescribeAccountAssignmentCreationStatusRequest(Mapping):
        pass
    
    class DescribeAccountAssignmentCreationStatusResponse(Mapping):
        pass
    
    class DescribeAccountAssignmentDeletionStatusRequest(Mapping):
        pass
    
    class DescribeAccountAssignmentDeletionStatusResponse(Mapping):
        pass
    
    class DescribeInstanceAccessControlAttributeConfigurationRequest(Mapping):
        pass
    
    class DescribeInstanceAccessControlAttributeConfigurationResponse(Mapping):
        pass
    
    class DescribePermissionSetRequest(Mapping):
        pass
    
    class DescribePermissionSetResponse(Mapping):
        pass
    
    class DescribePermissionSetProvisioningStatusRequest(Mapping):
        pass
    
    class DescribePermissionSetProvisioningStatusResponse(Mapping):
        pass
    
    class DetachManagedPolicyFromPermissionSetRequest(Mapping):
        pass
    
    class DetachManagedPolicyFromPermissionSetResponse(Mapping):
        pass
    
    class GetInlinePolicyForPermissionSetRequest(Mapping):
        pass
    
    class GetInlinePolicyForPermissionSetResponse(Mapping):
        pass
    
    class ListAccountAssignmentCreationStatusRequest(Mapping):
        pass
    
    class ListAccountAssignmentCreationStatusResponse(Mapping):
        pass
    
    class OperationStatusFilter(Mapping):
        pass
    
    class ListAccountAssignmentDeletionStatusRequest(Mapping):
        pass
    
    class ListAccountAssignmentDeletionStatusResponse(Mapping):
        pass
    
    class ListAccountAssignmentsRequest(Mapping):
        pass
    
    class ListAccountAssignmentsResponse(Mapping):
        pass
    
    class ListAccountsForProvisionedPermissionSetRequest(Mapping):
        pass
    
    class ListAccountsForProvisionedPermissionSetResponse(Mapping):
        pass
    
    class ListInstancesRequest(Mapping):
        pass
    
    class ListInstancesResponse(Mapping):
        pass
    
    class ListManagedPoliciesInPermissionSetRequest(Mapping):
        pass
    
    class ListManagedPoliciesInPermissionSetResponse(Mapping):
        pass
    
    class ListPermissionSetProvisioningStatusRequest(Mapping):
        pass
    
    class ListPermissionSetProvisioningStatusResponse(Mapping):
        pass
    
    class ListPermissionSetsRequest(Mapping):
        pass
    
    class ListPermissionSetsResponse(Mapping):
        pass
    
    class ListPermissionSetsProvisionedToAccountRequest(Mapping):
        pass
    
    class ListPermissionSetsProvisionedToAccountResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class ProvisionPermissionSetRequest(Mapping):
        pass
    
    class ProvisionPermissionSetResponse(Mapping):
        pass
    
    class PutInlinePolicyToPermissionSetRequest(Mapping):
        pass
    
    class PutInlinePolicyToPermissionSetResponse(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateInstanceAccessControlAttributeConfigurationRequest(Mapping):
        pass
    
    class UpdateInstanceAccessControlAttributeConfigurationResponse(Mapping):
        pass
    
    class UpdatePermissionSetRequest(Mapping):
        pass
    
    class UpdatePermissionSetResponse(Mapping):
        pass
    
    def attach_managed_policy_to_permission_set(self, ManagedPolicyArn: str, PermissionSetArn: str, InstanceArn: str) -> AttachManagedPolicyToPermissionSetResponse:
        r"""Attaches an IAM managed policy ARN to a permission set. <note> If the permission set is already referenced by one or more account assignments, you will need to call <code> <a>ProvisionPermissionSet</a> </code> after this action to apply the corresponding IAM policy updates to all assigned accounts. </note>

        :param self:
        :param ManagedPolicyArn:  The IAM managed policy ARN to be attached to a permission set.<br/>PermissionSetArn:  The ARN of the <a>PermissionSet</a> that the managed policy should be attached to.<br/>InstanceArn:  The ARN of the SSO instance under which the operation will be executed. For more information about ARNs, see <a href="/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a> in the <i>AWS General Reference</i>.<br/>
        :return:         """
        pass

    def create_account_assignment(self, PrincipalId: str, PrincipalType: str, PermissionSetArn: str, TargetType: str, TargetId: str, InstanceArn: str) -> CreateAccountAssignmentResponse:
        r"""Assigns access to a principal for a specified AWS account using a specified permission set. <note> The term <i>principal</i> here refers to a user or group that is defined in AWS SSO. </note> <note> As part of a successful <code>CreateAccountAssignment</code> call, the specified permission set will automatically be provisioned to the account in the form of an IAM policy attached to the SSO-created IAM role. If the permission set is subsequently updated, the corresponding IAM policies attached to roles in your accounts will not be updated automatically. In this case, you will need to call <code> <a>ProvisionPermissionSet</a> </code> to make these updates. </note>

        :param self:
        :param PrincipalId:  An identifier for an object in AWS SSO, such as a user or group. PrincipalIds are GUIDs (For example, f81d4fae-7dec-11d0-a765-00a0c91e6bf6). For more information about PrincipalIds in AWS SSO, see the <a href="/singlesignon/latest/IdentityStoreAPIReference/welcome.html">AWS SSO Identity Store API Reference</a>.<br/>PrincipalType:  The entity type for which the assignment will be created.<br/>PermissionSetArn:  The ARN of the permission set that the admin wants to grant the principal access to.<br/>TargetType:  The entity type for which the assignment will be created.<br/>TargetId:  TargetID is an AWS account identifier, typically a 10-12 digit string (For example, 123456789012).<br/>InstanceArn:  The ARN of the SSO instance under which the operation will be executed. For more information about ARNs, see <a href="/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a> in the <i>AWS General Reference</i>.<br/>
        :return: AccountAssignmentCreationStatus:  The status object for the account assignment creation operation.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedDate</i> The date that the permission set was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PrincipalId</i> An identifier for an object in AWS SSO, such as a user or group. PrincipalIds are GUIDs (For example, f81d4fae-7dec-11d0-a765-00a0c91e6bf6). For more information about PrincipalIds in AWS SSO, see the <a href="/singlesignon/latest/IdentityStoreAPIReference/welcome.html">AWS SSO Identity Store API Reference</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PrincipalType</i> The entity type for which the assignment will be created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PermissionSetArn</i> The ARN of the permission set. For more information about ARNs, see <a href="/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a> in the <i>AWS General Reference</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetType</i> The entity type for which the assignment will be created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetId</i> TargetID is an AWS account identifier, typically a 10-12 digit string (For example, 123456789012).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FailureReason</i> The message that contains an error or exception in case of an operation failure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequestId</i> The identifier for tracking the request operation that is generated by the universally unique identifier (UUID) workflow.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the permission set provisioning process.<br/>        """
        pass

    def create_instance_access_control_attribute_configuration(self, InstanceAccessControlAttributeConfiguration: InstanceAccessControlAttributeConfiguration, InstanceArn: str) -> CreateInstanceAccessControlAttributeConfigurationResponse:
        r"""Enables the attributes-based access control (ABAC) feature for the specified AWS SSO instance. You can also specify new attributes to add to your ABAC configuration during the enabling process. For more information about ABAC, see <a href="/singlesignon/latest/userguide/abac.html">Attribute-Based Access Control</a> in the <i>AWS SSO User Guide</i>.

        :param self:
        :param InstanceAccessControlAttributeConfiguration:  Specifies the AWS SSO identity store attributes to add to your ABAC configuration. When using an external identity provider as an identity source, you can pass attributes through the SAML assertion as an alternative to configuring attributes from the AWS SSO identity store. If a SAML assertion passes any of these attributes, AWS SSO will replace the attribute value with the value from the AWS SSO identity store.:<br/>InstanceArn:  The ARN of the SSO instance under which the operation will be executed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccessControlAttributes</i> Lists the attributes that are configured for ABAC in the specified AWS SSO instance.<br/>
        :return:         """
        pass

    def create_permission_set(self, InstanceArn: str, Name: str, Description: str=None, SessionDuration: str=None, RelayState: str=None, Tags: List[Tag]=None) -> CreatePermissionSetResponse:
        r"""Creates a permission set within a specified SSO instance. <note> To grant users and groups access to AWS account resources, use <code> <a>CreateAccountAssignment</a> </code>. </note>

        :param self:
        :param Tags:  The tags to attach to the new <a>PermissionSet</a>.<br/>RelayState:  Used to redirect users within the application during the federation authentication process.<br/>SessionDuration:  The length of time that the application user sessions are valid in the ISO-8601 standard.<br/>InstanceArn:  The ARN of the SSO instance under which the operation will be executed. For more information about ARNs, see <a href="/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a> in the <i>AWS General Reference</i>.<br/>Description:  The description of the <a>PermissionSet</a>.<br/>Name:  The name of the <a>PermissionSet</a>.<br/>
        :return: PermissionSet:  Defines the level of access on an AWS account.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RelayState</i> Used to redirect users within the application during the federation authentication process.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SessionDuration</i> The length of time that the application user sessions are valid for in the ISO-8601 standard.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedDate</i> The date that the permission set was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the <a>PermissionSet</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PermissionSetArn</i> The ARN of the permission set. For more information about ARNs, see <a href="/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a> in the <i>AWS General Reference</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the permission set.<br/>        """
        pass

    def delete_account_assignment(self, PrincipalId: str, PrincipalType: str, PermissionSetArn: str, TargetType: str, TargetId: str, InstanceArn: str) -> DeleteAccountAssignmentResponse:
        r"""Deletes a principal's access from a specified AWS account using a specified permission set.

        :param self:
        :param PrincipalId:  An identifier for an object in AWS SSO, such as a user or group. PrincipalIds are GUIDs (For example, f81d4fae-7dec-11d0-a765-00a0c91e6bf6). For more information about PrincipalIds in AWS SSO, see the <a href="/singlesignon/latest/IdentityStoreAPIReference/welcome.html">AWS SSO Identity Store API Reference</a>.<br/>PrincipalType:  The entity type for which the assignment will be deleted.<br/>PermissionSetArn:  The ARN of the permission set that will be used to remove access.<br/>TargetType:  The entity type for which the assignment will be deleted.<br/>TargetId:  TargetID is an AWS account identifier, typically a 10-12 digit string (For example, 123456789012).<br/>InstanceArn:  The ARN of the SSO instance under which the operation will be executed. For more information about ARNs, see <a href="/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a> in the <i>AWS General Reference</i>.<br/>
        :return: AccountAssignmentDeletionStatus:  The status object for the account assignment deletion operation.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedDate</i> The date that the permission set was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PrincipalId</i> An identifier for an object in AWS SSO, such as a user or group. PrincipalIds are GUIDs (For example, f81d4fae-7dec-11d0-a765-00a0c91e6bf6). For more information about PrincipalIds in AWS SSO, see the <a href="/singlesignon/latest/IdentityStoreAPIReference/welcome.html">AWS SSO Identity Store API Reference</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PrincipalType</i> The entity type for which the assignment will be created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PermissionSetArn</i> The ARN of the permission set. For more information about ARNs, see <a href="/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a> in the <i>AWS General Reference</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetType</i> The entity type for which the assignment will be created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetId</i> TargetID is an AWS account identifier, typically a 10-12 digit string (For example, 123456789012).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FailureReason</i> The message that contains an error or exception in case of an operation failure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequestId</i> The identifier for tracking the request operation that is generated by the universally unique identifier (UUID) workflow.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the permission set provisioning process.<br/>        """
        pass

    def delete_inline_policy_from_permission_set(self, PermissionSetArn: str, InstanceArn: str) -> DeleteInlinePolicyFromPermissionSetResponse:
        r"""Deletes the inline policy from a specified permission set.

        :param self:
        :param PermissionSetArn:  The ARN of the permission set that will be used to remove access.<br/>InstanceArn:  The ARN of the SSO instance under which the operation will be executed. For more information about ARNs, see <a href="/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a> in the <i>AWS General Reference</i>.<br/>
        :return:         """
        pass

    def delete_instance_access_control_attribute_configuration(self, InstanceArn: str) -> DeleteInstanceAccessControlAttributeConfigurationResponse:
        r"""Disables the attributes-based access control (ABAC) feature for the specified AWS SSO instance and deletes all of the attribute mappings that have been configured. Once deleted, any attributes that are received from an identity source and any custom attributes you have previously configured will not be passed. For more information about ABAC, see <a href="/singlesignon/latest/userguide/abac.html">Attribute-Based Access Control</a> in the <i>AWS SSO User Guide</i>.

        :param self:
        :param InstanceArn:  The ARN of the SSO instance under which the operation will be executed.<br/>
        :return:         """
        pass

    def delete_permission_set(self, PermissionSetArn: str, InstanceArn: str) -> DeletePermissionSetResponse:
        r"""Deletes the specified permission set.

        :param self:
        :param PermissionSetArn:  The ARN of the permission set that should be deleted.<br/>InstanceArn:  The ARN of the SSO instance under which the operation will be executed. For more information about ARNs, see <a href="/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a> in the <i>AWS General Reference</i>.<br/>
        :return:         """
        pass

    def describe_account_assignment_creation_status(self, AccountAssignmentCreationRequestId: str, InstanceArn: str) -> DescribeAccountAssignmentCreationStatusResponse:
        r"""Describes the status of the assignment creation request.

        :param self:
        :param AccountAssignmentCreationRequestId:  The identifier that is used to track the request operation progress.<br/>InstanceArn:  The ARN of the SSO instance under which the operation will be executed. For more information about ARNs, see <a href="/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a> in the <i>AWS General Reference</i>.<br/>
        :return: AccountAssignmentCreationStatus:  The status object for the account assignment creation operation.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedDate</i> The date that the permission set was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PrincipalId</i> An identifier for an object in AWS SSO, such as a user or group. PrincipalIds are GUIDs (For example, f81d4fae-7dec-11d0-a765-00a0c91e6bf6). For more information about PrincipalIds in AWS SSO, see the <a href="/singlesignon/latest/IdentityStoreAPIReference/welcome.html">AWS SSO Identity Store API Reference</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PrincipalType</i> The entity type for which the assignment will be created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PermissionSetArn</i> The ARN of the permission set. For more information about ARNs, see <a href="/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a> in the <i>AWS General Reference</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetType</i> The entity type for which the assignment will be created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetId</i> TargetID is an AWS account identifier, typically a 10-12 digit string (For example, 123456789012).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FailureReason</i> The message that contains an error or exception in case of an operation failure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequestId</i> The identifier for tracking the request operation that is generated by the universally unique identifier (UUID) workflow.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the permission set provisioning process.<br/>        """
        pass

    def describe_account_assignment_deletion_status(self, AccountAssignmentDeletionRequestId: str, InstanceArn: str) -> DescribeAccountAssignmentDeletionStatusResponse:
        r"""Describes the status of the assignment deletion request.

        :param self:
        :param AccountAssignmentDeletionRequestId:  The identifier that is used to track the request operation progress.<br/>InstanceArn:  The ARN of the SSO instance under which the operation will be executed. For more information about ARNs, see <a href="/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a> in the <i>AWS General Reference</i>.<br/>
        :return: AccountAssignmentDeletionStatus:  The status object for the account assignment deletion operation.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedDate</i> The date that the permission set was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PrincipalId</i> An identifier for an object in AWS SSO, such as a user or group. PrincipalIds are GUIDs (For example, f81d4fae-7dec-11d0-a765-00a0c91e6bf6). For more information about PrincipalIds in AWS SSO, see the <a href="/singlesignon/latest/IdentityStoreAPIReference/welcome.html">AWS SSO Identity Store API Reference</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PrincipalType</i> The entity type for which the assignment will be created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PermissionSetArn</i> The ARN of the permission set. For more information about ARNs, see <a href="/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a> in the <i>AWS General Reference</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetType</i> The entity type for which the assignment will be created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetId</i> TargetID is an AWS account identifier, typically a 10-12 digit string (For example, 123456789012).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FailureReason</i> The message that contains an error or exception in case of an operation failure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequestId</i> The identifier for tracking the request operation that is generated by the universally unique identifier (UUID) workflow.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the permission set provisioning process.<br/>        """
        pass

    def describe_instance_access_control_attribute_configuration(self, InstanceArn: str) -> DescribeInstanceAccessControlAttributeConfigurationResponse:
        r"""Returns the list of AWS SSO identity store attributes that have been configured to work with attributes-based access control (ABAC) for the specified AWS SSO instance. This will not return attributes configured and sent by an external identity provider. For more information about ABAC, see <a href="/singlesignon/latest/userguide/abac.html">Attribute-Based Access Control</a> in the <i>AWS SSO User Guide</i>.

        :param self:
        :param InstanceArn:  The ARN of the SSO instance under which the operation will be executed.<br/>
        :return: InstanceAccessControlAttributeConfiguration:  Gets the list of AWS SSO identity store attributes added to your ABAC configuration.:<br/>StatusReason:  Provides more details about the current status of the specified attribute.<br/>Status:  The status of the attribute configuration process.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccessControlAttributes</i> Lists the attributes that are configured for ABAC in the specified AWS SSO instance.<br/>        """
        pass

    def describe_permission_set(self, PermissionSetArn: str, InstanceArn: str) -> DescribePermissionSetResponse:
        r"""Gets the details of the permission set.

        :param self:
        :param PermissionSetArn:  The ARN of the permission set.<br/>InstanceArn:  The ARN of the SSO instance under which the operation will be executed. For more information about ARNs, see <a href="/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a> in the <i>AWS General Reference</i>.<br/>
        :return: PermissionSet:  Describes the level of access on an AWS account.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RelayState</i> Used to redirect users within the application during the federation authentication process.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SessionDuration</i> The length of time that the application user sessions are valid for in the ISO-8601 standard.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedDate</i> The date that the permission set was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the <a>PermissionSet</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PermissionSetArn</i> The ARN of the permission set. For more information about ARNs, see <a href="/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a> in the <i>AWS General Reference</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the permission set.<br/>        """
        pass

    def describe_permission_set_provisioning_status(self, ProvisionPermissionSetRequestId: str, InstanceArn: str) -> DescribePermissionSetProvisioningStatusResponse:
        r"""Describes the status for the given permission set provisioning request.

        :param self:
        :param ProvisionPermissionSetRequestId:  The identifier that is provided by the <a>ProvisionPermissionSet</a> call to retrieve the current status of the provisioning workflow.<br/>InstanceArn:  The ARN of the SSO instance under which the operation will be executed. For more information about ARNs, see <a href="/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a> in the <i>AWS General Reference</i>.<br/>
        :return: PermissionSetProvisioningStatus:  The status object for the permission set provisioning operation.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedDate</i> The date that the permission set was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FailureReason</i> The message that contains an error or exception in case of an operation failure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PermissionSetArn</i> The ARN of the permission set that is being provisioned. For more information about ARNs, see <a href="/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a> in the <i>AWS General Reference</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccountId</i> The identifier of the AWS account from which to list the assignments.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequestId</i> The identifier for tracking the request operation that is generated by the universally unique identifier (UUID) workflow.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the permission set provisioning process.<br/>        """
        pass

    def detach_managed_policy_from_permission_set(self, ManagedPolicyArn: str, PermissionSetArn: str, InstanceArn: str) -> DetachManagedPolicyFromPermissionSetResponse:
        r"""Detaches the attached IAM managed policy ARN from the specified permission set.

        :param self:
        :param ManagedPolicyArn:  The IAM managed policy ARN to be attached to a permission set.<br/>PermissionSetArn:  The ARN of the <a>PermissionSet</a> from which the policy should be detached.<br/>InstanceArn:  The ARN of the SSO instance under which the operation will be executed. For more information about ARNs, see <a href="/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a> in the <i>AWS General Reference</i>.<br/>
        :return:         """
        pass

    def get_inline_policy_for_permission_set(self, PermissionSetArn: str, InstanceArn: str) -> GetInlinePolicyForPermissionSetResponse:
        r"""Obtains the inline policy assigned to the permission set.

        :param self:
        :param PermissionSetArn:  The ARN of the permission set.<br/>InstanceArn:  The ARN of the SSO instance under which the operation will be executed. For more information about ARNs, see <a href="/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a> in the <i>AWS General Reference</i>.<br/>
        :return: InlinePolicy:  The IAM inline policy that is attached to the permission set.<br/>        """
        pass

    def list_account_assignment_creation_status(self, InstanceArn: str, MaxResults: int=None, NextToken: str=None, Filter: OperationStatusFilter=None) -> ListAccountAssignmentCreationStatusResponse:
        r"""Lists the status of the AWS account assignment creation requests for a specified SSO instance.

        :param self:
        :param Filter:  Filters results based on the passed attribute value.:<br/>NextToken:  The pagination token for the list API. Initially the value is null. Use the output of previous API calls to make subsequent calls.<br/>MaxResults:  The maximum number of results to display for the assignment.<br/>InstanceArn:  The ARN of the SSO instance under which the operation will be executed. For more information about ARNs, see <a href="/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a> in the <i>AWS General Reference</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Filters the list operations result based on the status attribute.<br/>
        :return: NextToken:  The pagination token for the list API. Initially the value is null. Use the output of previous API calls to make subsequent calls.<br/>AccountAssignmentsCreationStatus:  The status object for the account assignment creation operation.<br/>        """
        pass

    def list_account_assignment_deletion_status(self, InstanceArn: str, MaxResults: int=None, NextToken: str=None, Filter: OperationStatusFilter=None) -> ListAccountAssignmentDeletionStatusResponse:
        r"""Lists the status of the AWS account assignment deletion requests for a specified SSO instance.

        :param self:
        :param Filter:  Filters results based on the passed attribute value.:<br/>NextToken:  The pagination token for the list API. Initially the value is null. Use the output of previous API calls to make subsequent calls.<br/>MaxResults:  The maximum number of results to display for the assignment.<br/>InstanceArn:  The ARN of the SSO instance under which the operation will be executed. For more information about ARNs, see <a href="/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a> in the <i>AWS General Reference</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Filters the list operations result based on the status attribute.<br/>
        :return: NextToken:  The pagination token for the list API. Initially the value is null. Use the output of previous API calls to make subsequent calls.<br/>AccountAssignmentsDeletionStatus:  The status object for the account assignment deletion operation.<br/>        """
        pass

    def list_account_assignments(self, PermissionSetArn: str, AccountId: str, InstanceArn: str, MaxResults: int=None, NextToken: str=None) -> ListAccountAssignmentsResponse:
        r"""Lists the assignee of the specified AWS account with the specified permission set.

        :param self:
        :param NextToken:  The pagination token for the list API. Initially the value is null. Use the output of previous API calls to make subsequent calls.<br/>MaxResults:  The maximum number of results to display for the assignment.<br/>PermissionSetArn:  The ARN of the permission set from which to list assignments.<br/>AccountId:  The identifier of the AWS account from which to list the assignments.<br/>InstanceArn:  The ARN of the SSO instance under which the operation will be executed. For more information about ARNs, see <a href="/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a> in the <i>AWS General Reference</i>.<br/>
        :return: NextToken:  The pagination token for the list API. Initially the value is null. Use the output of previous API calls to make subsequent calls.<br/>AccountAssignments:  The list of assignments that match the input AWS account and permission set.<br/>        """
        pass

    def list_accounts_for_provisioned_permission_set(self, PermissionSetArn: str, InstanceArn: str, ProvisioningStatus: str=None, MaxResults: int=None, NextToken: str=None) -> ListAccountsForProvisionedPermissionSetResponse:
        r"""Lists all the AWS accounts where the specified permission set is provisioned.

        :param self:
        :param NextToken:  The pagination token for the list API. Initially the value is null. Use the output of previous API calls to make subsequent calls.<br/>MaxResults:  The maximum number of results to display for the <a>PermissionSet</a>.<br/>ProvisioningStatus:  The permission set provisioning status for an AWS account.<br/>PermissionSetArn:  The ARN of the <a>PermissionSet</a> from which the associated AWS accounts will be listed.<br/>InstanceArn:  The ARN of the SSO instance under which the operation will be executed. For more information about ARNs, see <a href="/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a> in the <i>AWS General Reference</i>.<br/>
        :return: NextToken:  The pagination token for the list API. Initially the value is null. Use the output of previous API calls to make subsequent calls.<br/>AccountIds:  The list of AWS <code>AccountIds</code>.<br/>        """
        pass

    def list_instances(self, MaxResults: int=None, NextToken: str=None) -> ListInstancesResponse:
        r"""Lists the SSO instances that the caller has access to.

        :param self:
        :param NextToken:  The pagination token for the list API. Initially the value is null. Use the output of previous API calls to make subsequent calls.<br/>MaxResults:  The maximum number of results to display for the instance.<br/>
        :return: NextToken:  The pagination token for the list API. Initially the value is null. Use the output of previous API calls to make subsequent calls.<br/>Instances:  Lists the SSO instances that the caller has access to.<br/>        """
        pass

    def list_managed_policies_in_permission_set(self, PermissionSetArn: str, InstanceArn: str, MaxResults: int=None, NextToken: str=None) -> ListManagedPoliciesInPermissionSetResponse:
        r"""Lists the IAM managed policy that is attached to a specified permission set.

        :param self:
        :param NextToken:  The pagination token for the list API. Initially the value is null. Use the output of previous API calls to make subsequent calls.<br/>MaxResults:  The maximum number of results to display for the <a>PermissionSet</a>.<br/>PermissionSetArn:  The ARN of the <a>PermissionSet</a> whose managed policies will be listed.<br/>InstanceArn:  The ARN of the SSO instance under which the operation will be executed. For more information about ARNs, see <a href="/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a> in the <i>AWS General Reference</i>.<br/>
        :return: NextToken:  The pagination token for the list API. Initially the value is null. Use the output of previous API calls to make subsequent calls.<br/>AttachedManagedPolicies:  The array of the <a>AttachedManagedPolicy</a> data type object.<br/>        """
        pass

    def list_permission_set_provisioning_status(self, InstanceArn: str, MaxResults: int=None, NextToken: str=None, Filter: OperationStatusFilter=None) -> ListPermissionSetProvisioningStatusResponse:
        r"""Lists the status of the permission set provisioning requests for a specified SSO instance.

        :param self:
        :param Filter:  Filters results based on the passed attribute value.:<br/>NextToken:  The pagination token for the list API. Initially the value is null. Use the output of previous API calls to make subsequent calls.<br/>MaxResults:  The maximum number of results to display for the assignment.<br/>InstanceArn:  The ARN of the SSO instance under which the operation will be executed. For more information about ARNs, see <a href="/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a> in the <i>AWS General Reference</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> Filters the list operations result based on the status attribute.<br/>
        :return: NextToken:  The pagination token for the list API. Initially the value is null. Use the output of previous API calls to make subsequent calls.<br/>PermissionSetsProvisioningStatus:  The status object for the permission set provisioning operation.<br/>        """
        pass

    def list_permission_sets(self, InstanceArn: str, NextToken: str=None, MaxResults: int=None) -> ListPermissionSetsResponse:
        r"""Lists the <a>PermissionSet</a>s in an SSO instance.

        :param self:
        :param MaxResults:  The maximum number of results to display for the assignment.<br/>NextToken:  The pagination token for the list API. Initially the value is null. Use the output of previous API calls to make subsequent calls.<br/>InstanceArn:  The ARN of the SSO instance under which the operation will be executed. For more information about ARNs, see <a href="/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a> in the <i>AWS General Reference</i>.<br/>
        :return: NextToken:  The pagination token for the list API. Initially the value is null. Use the output of previous API calls to make subsequent calls.<br/>PermissionSets:  Defines the level of access on an AWS account.<br/>        """
        pass

    def list_permission_sets_provisioned_to_account(self, AccountId: str, InstanceArn: str, ProvisioningStatus: str=None, MaxResults: int=None, NextToken: str=None) -> ListPermissionSetsProvisionedToAccountResponse:
        r"""Lists all the permission sets that are provisioned to a specified AWS account.

        :param self:
        :param NextToken:  The pagination token for the list API. Initially the value is null. Use the output of previous API calls to make subsequent calls.<br/>MaxResults:  The maximum number of results to display for the assignment.<br/>ProvisioningStatus:  The status object for the permission set provisioning operation.<br/>AccountId:  The identifier of the AWS account from which to list the assignments.<br/>InstanceArn:  The ARN of the SSO instance under which the operation will be executed. For more information about ARNs, see <a href="/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a> in the <i>AWS General Reference</i>.<br/>
        :return: PermissionSets:  Defines the level of access that an AWS account has.<br/>NextToken:  The pagination token for the list API. Initially the value is null. Use the output of previous API calls to make subsequent calls.<br/>        """
        pass

    def list_tags_for_resource(self, ResourceArn: str, InstanceArn: str, NextToken: str=None) -> ListTagsForResourceResponse:
        r"""Lists the tags that are attached to a specified resource.

        :param self:
        :param NextToken:  The pagination token for the list API. Initially the value is null. Use the output of previous API calls to make subsequent calls.<br/>ResourceArn:  The ARN of the resource with the tags to be listed.<br/>InstanceArn:  The ARN of the SSO instance under which the operation will be executed. For more information about ARNs, see <a href="/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a> in the <i>AWS General Reference</i>.<br/>
        :return: NextToken:  The pagination token for the list API. Initially the value is null. Use the output of previous API calls to make subsequent calls.<br/>Tags:  A set of key-value pairs that are used to manage the resource.<br/>        """
        pass

    def provision_permission_set(self, TargetType: str, PermissionSetArn: str, InstanceArn: str, TargetId: str=None) -> ProvisionPermissionSetResponse:
        r"""The process by which a specified permission set is provisioned to the specified target.

        :param self:
        :param TargetType:  The entity type for which the assignment will be created.<br/>TargetId:  TargetID is an AWS account identifier, typically a 10-12 digit string (For example, 123456789012).<br/>PermissionSetArn:  The ARN of the permission set.<br/>InstanceArn:  The ARN of the SSO instance under which the operation will be executed. For more information about ARNs, see <a href="/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a> in the <i>AWS General Reference</i>.<br/>
        :return: PermissionSetProvisioningStatus:  The status object for the permission set provisioning operation.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedDate</i> The date that the permission set was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FailureReason</i> The message that contains an error or exception in case of an operation failure.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PermissionSetArn</i> The ARN of the permission set that is being provisioned. For more information about ARNs, see <a href="/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a> in the <i>AWS General Reference</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccountId</i> The identifier of the AWS account from which to list the assignments.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RequestId</i> The identifier for tracking the request operation that is generated by the universally unique identifier (UUID) workflow.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the permission set provisioning process.<br/>        """
        pass

    def put_inline_policy_to_permission_set(self, InlinePolicy: str, PermissionSetArn: str, InstanceArn: str) -> PutInlinePolicyToPermissionSetResponse:
        r"""Attaches an IAM inline policy to a permission set. <note> If the permission set is already referenced by one or more account assignments, you will need to call <code> <a>ProvisionPermissionSet</a> </code> after this action to apply the corresponding IAM policy updates to all assigned accounts. </note>

        :param self:
        :param InlinePolicy:  The IAM inline policy to attach to a <a>PermissionSet</a>.<br/>PermissionSetArn:  The ARN of the permission set.<br/>InstanceArn:  The ARN of the SSO instance under which the operation will be executed. For more information about ARNs, see <a href="/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a> in the <i>AWS General Reference</i>.<br/>
        :return:         """
        pass

    def tag_resource(self, Tags: List[Tag], ResourceArn: str, InstanceArn: str) -> TagResourceResponse:
        r"""Associates a set of tags with a specified resource.

        :param self:
        :param Tags:  A set of key-value pairs that are used to manage the resource.<br/>ResourceArn:  The ARN of the resource with the tags to be listed.<br/>InstanceArn:  The ARN of the SSO instance under which the operation will be executed. For more information about ARNs, see <a href="/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a> in the <i>AWS General Reference</i>.<br/>
        :return:         """
        pass

    def untag_resource(self, TagKeys: List[TagKey], ResourceArn: str, InstanceArn: str) -> UntagResourceResponse:
        r"""Disassociates a set of tags from a specified resource.

        :param self:
        :param TagKeys:  The keys of tags that are attached to the resource.<br/>ResourceArn:  The ARN of the resource with the tags to be listed.<br/>InstanceArn:  The ARN of the SSO instance under which the operation will be executed. For more information about ARNs, see <a href="/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a> in the <i>AWS General Reference</i>.<br/>
        :return:         """
        pass

    def update_instance_access_control_attribute_configuration(self, InstanceAccessControlAttributeConfiguration: InstanceAccessControlAttributeConfiguration, InstanceArn: str) -> UpdateInstanceAccessControlAttributeConfigurationResponse:
        r"""Updates the AWS SSO identity store attributes to use with the AWS SSO instance for attributes-based access control (ABAC). When using an external identity provider as an identity source, you can pass attributes through the SAML assertion as an alternative to configuring attributes from the AWS SSO identity store. If a SAML assertion passes any of these attributes, AWS SSO will replace the attribute value with the value from the AWS SSO identity store. For more information about ABAC, see <a href="/singlesignon/latest/userguide/abac.html">Attribute-Based Access Control</a> in the <i>AWS SSO User Guide</i>.

        :param self:
        :param InstanceAccessControlAttributeConfiguration:  Updates the attributes for your ABAC configuration.:<br/>InstanceArn:  The ARN of the SSO instance under which the operation will be executed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccessControlAttributes</i> Lists the attributes that are configured for ABAC in the specified AWS SSO instance.<br/>
        :return:         """
        pass

    def update_permission_set(self, PermissionSetArn: str, InstanceArn: str, Description: str=None, SessionDuration: str=None, RelayState: str=None) -> UpdatePermissionSetResponse:
        r"""Updates an existing permission set.

        :param self:
        :param RelayState:  Used to redirect users within the application during the federation authentication process.<br/>SessionDuration:  The length of time that the application user sessions are valid for in the ISO-8601 standard.<br/>Description:  The description of the <a>PermissionSet</a>.<br/>PermissionSetArn:  The ARN of the permission set.<br/>InstanceArn:  The ARN of the SSO instance under which the operation will be executed. For more information about ARNs, see <a href="/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and AWS Service Namespaces</a> in the <i>AWS General Reference</i>.<br/>
        :return:         """
        pass





class SSOOIDC(BaseClient):
    r"""AWS Single Sign-On (SSO) OpenID Connect (OIDC) is a web service that enables a client (such as AWS CLI or a native application) to register with AWS SSO. The service also enables the client to fetch the user’s access token upon successful authentication and authorization with AWS SSO. This service conforms with the OAuth 2.0 based implementation of the device authorization grant standard (<a href="https://tools.ietf.org/html/rfc8628">https://tools.ietf.org/html/rfc8628</a>). For general information about AWS SSO, see <a href="https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html">What is AWS Single Sign-On?</a> in the <i>AWS SSO User Guide</i>. This API reference guide describes the AWS SSO OIDC operations that you can call programatically and includes detailed information on data types and errors. <note> AWS provides SDKs that consist of libraries and sample code for various programming languages and platforms such as Java, Ruby, .Net, iOS, and Android. The SDKs provide a convenient way to create programmatic access to AWS SSO and other AWS services. For more information about the AWS SDKs, including how to download and install them, see <a href="http://aws.amazon.com/tools/">Tools for Amazon Web Services</a>. </note>"""




    class CreateTokenRequest(Mapping):
        pass
    
    class CreateTokenResponse(Mapping):
        pass
    
    class Scope(object):
        pass
    
    class RegisterClientRequest(Mapping):
        pass
    
    class RegisterClientResponse(Mapping):
        pass
    
    class StartDeviceAuthorizationRequest(Mapping):
        pass
    
    class StartDeviceAuthorizationResponse(Mapping):
        pass
    
    def create_token(self, deviceCode: str, grantType: str, clientSecret: str, clientId: str, code: str=None, refreshToken: str=None, scope: List[Scope]=None, redirectUri: str=None) -> CreateTokenResponse:
        r"""Creates and returns an access token for the authorized client. The access token issued will be used to fetch short-term credentials for the assigned roles in the AWS account.

        :param self:
        :param redirectUri:  The location of the application that will receive the authorization code. Users authorize the service to send the request to this location.<br/>scope:  The list of scopes that is defined by the client. Upon authorization, this list is used to restrict permissions when granting an access token.<br/>refreshToken:  The token used to obtain an access token in the event that the access token is invalid or expired. This token is not issued by the service.<br/>code:  The authorization code received from the authorization service. This parameter is required to perform an authorization grant request to get access to a token.<br/>deviceCode:  Used only when calling this API for the device code grant type. This short-term code is used to identify this authentication attempt. This should come from an in-memory reference to the result of the <a>StartDeviceAuthorization</a> API.<br/>grantType:  Supports grant types for authorization code, refresh token, and device code request.<br/>clientSecret:  A secret string generated for the client. This value should come from the persisted result of the <a>RegisterClient</a> API.<br/>clientId:  The unique identifier string for each client. This value should come from the persisted result of the <a>RegisterClient</a> API.<br/>
        :return: idToken:  The identifier of the user that associated with the access token, if present.<br/>refreshToken:  A token that, if present, can be used to refresh a previously issued access token that might have expired.<br/>expiresIn:  Indicates the time in seconds when an access token will expire.<br/>tokenType:  Used to notify the client that the returned token is an access token. The supported type is <code>BearerToken</code>.<br/>accessToken:  An opaque token to access AWS SSO resources assigned to a user.<br/>        """
        pass

    def register_client(self, clientType: str, clientName: str, scopes: List[Scope]=None) -> RegisterClientResponse:
        r"""Registers a client with AWS SSO. This allows clients to initiate device authorization. The output should be persisted for reuse through many authentication requests.

        :param self:
        :param scopes:  The list of scopes that are defined by the client. Upon authorization, this list is used to restrict permissions when granting an access token.<br/>clientType:  The type of client. The service supports only <code>public</code> as a client type. Anything other than public will be rejected by the service.<br/>clientName:  The friendly name of the client.<br/>
        :return: tokenEndpoint:  The endpoint where the client can get an access token.<br/>authorizationEndpoint:  The endpoint where the client can request authorization.<br/>clientSecretExpiresAt:  Indicates the time at which the <code>clientId</code> and <code>clientSecret</code> will become invalid.<br/>clientIdIssuedAt:  Indicates the time at which the <code>clientId</code> and <code>clientSecret</code> were issued.<br/>clientSecret:  A secret string generated for the client. The client will use this string to get authenticated by the service in subsequent calls.<br/>clientId:  The unique identifier string for each client. This client uses this identifier to get authenticated by the service in subsequent calls.<br/>        """
        pass

    def start_device_authorization(self, startUrl: str, clientSecret: str, clientId: str) -> StartDeviceAuthorizationResponse:
        r"""Initiates device authorization by requesting a pair of verification codes from the authorization service.

        :param self:
        :param startUrl:  The URL for the AWS SSO user portal. For more information, see <a href="https://docs.aws.amazon.com/singlesignon/latest/userguide/using-the-portal.html">Using the User Portal</a> in the <i>AWS Single Sign-On User Guide</i>.<br/>clientSecret:  A secret string that is generated for the client. This value should come from the persisted result of the <a>RegisterClient</a> API operation.<br/>clientId:  The unique identifier string for the client that is registered with AWS SSO. This value should come from the persisted result of the <a>RegisterClient</a> API operation.<br/>
        :return: interval:  Indicates the number of seconds the client must wait between attempts when polling for a session.<br/>expiresIn:  Indicates the number of seconds in which the verification code will become invalid.<br/>verificationUriComplete:  An alternate URL that the client can use to automatically launch a browser. This process skips the manual step in which the user visits the verification page and enters their code.<br/>verificationUri:  The URI of the verification page that takes the <code>userCode</code> to authorize the device.<br/>userCode:  A one-time user verification code. This is needed to authorize an in-use device.<br/>deviceCode:  The short-lived code that is used by the device when polling for a session token.<br/>        """
        pass





class SFN(BaseClient):
    r"""<fullname>AWS Step Functions</fullname> AWS Step Functions is a service that lets you coordinate the components of distributed applications and microservices using visual workflows. You can use Step Functions to build applications from individual components, each of which performs a discrete function, or <i>task</i>, allowing you to scale and change applications quickly. Step Functions provides a console that helps visualize the components of your application as a series of steps. Step Functions automatically triggers and tracks each step, and retries steps when there are errors, so your application executes predictably and in the right order every time. Step Functions logs the state of each step, so you can quickly diagnose and debug any issues. Step Functions manages operations and underlying infrastructure to ensure your application is available at any scale. You can run tasks on AWS, your own servers, or any system that has access to AWS. You can access and use Step Functions using the console, the AWS SDKs, or an HTTP API. For more information about Step Functions, see the <i> <a href="https://docs.aws.amazon.com/step-functions/latest/dg/welcome.html">AWS Step Functions Developer Guide</a> </i>."""


    class GetExecutionHistoryPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_execution_history` for valid parameters"""
            pass
    class ListActivitiesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_activities` for valid parameters"""
            pass
    class ListExecutionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_executions` for valid parameters"""
            pass
    class ListStateMachinesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_state_machines` for valid parameters"""
            pass


    class CreateActivityInput(Mapping):
        pass
    
    class CreateActivityOutput(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class CreateStateMachineInput(Mapping):
        pass
    
    class CreateStateMachineOutput(Mapping):
        pass
    
    class LoggingConfiguration(Mapping):
        pass
    
    class TracingConfiguration(Mapping):
        pass
    
    class DeleteActivityInput(Mapping):
        pass
    
    class DeleteActivityOutput(Mapping):
        pass
    
    class DeleteStateMachineInput(Mapping):
        pass
    
    class DeleteStateMachineOutput(Mapping):
        pass
    
    class DescribeActivityInput(Mapping):
        pass
    
    class DescribeActivityOutput(Mapping):
        pass
    
    class DescribeExecutionInput(Mapping):
        pass
    
    class DescribeExecutionOutput(Mapping):
        pass
    
    class DescribeStateMachineInput(Mapping):
        pass
    
    class DescribeStateMachineOutput(Mapping):
        pass
    
    class DescribeStateMachineForExecutionInput(Mapping):
        pass
    
    class DescribeStateMachineForExecutionOutput(Mapping):
        pass
    
    class GetActivityTaskInput(Mapping):
        pass
    
    class GetActivityTaskOutput(Mapping):
        pass
    
    class GetExecutionHistoryInput(Mapping):
        pass
    
    class GetExecutionHistoryOutput(Mapping):
        pass
    
    class ReverseOrder(object):
        pass
    
    class IncludeExecutionDataGetExecutionHistory(object):
        pass
    
    class ListActivitiesInput(Mapping):
        pass
    
    class ListActivitiesOutput(Mapping):
        pass
    
    class ListExecutionsInput(Mapping):
        pass
    
    class ListExecutionsOutput(Mapping):
        pass
    
    class ListStateMachinesInput(Mapping):
        pass
    
    class ListStateMachinesOutput(Mapping):
        pass
    
    class ListTagsForResourceInput(Mapping):
        pass
    
    class ListTagsForResourceOutput(Mapping):
        pass
    
    class SendTaskFailureInput(Mapping):
        pass
    
    class SendTaskFailureOutput(Mapping):
        pass
    
    class SendTaskHeartbeatInput(Mapping):
        pass
    
    class SendTaskHeartbeatOutput(Mapping):
        pass
    
    class SendTaskSuccessInput(Mapping):
        pass
    
    class SendTaskSuccessOutput(Mapping):
        pass
    
    class StartExecutionInput(Mapping):
        pass
    
    class StartExecutionOutput(Mapping):
        pass
    
    class StartSyncExecutionInput(Mapping):
        pass
    
    class StartSyncExecutionOutput(Mapping):
        pass
    
    class StopExecutionInput(Mapping):
        pass
    
    class StopExecutionOutput(Mapping):
        pass
    
    class TagResourceInput(Mapping):
        pass
    
    class TagResourceOutput(Mapping):
        pass
    
    class UntagResourceInput(Mapping):
        pass
    
    class UntagResourceOutput(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateStateMachineInput(Mapping):
        pass
    
    class UpdateStateMachineOutput(Mapping):
        pass
    
    def create_activity(self, name: str, tags: List[Tag]=None) -> CreateActivityOutput:
        r"""Creates an activity. An activity is a task that you write in any programming language and host on any machine that has access to AWS Step Functions. Activities must poll Step Functions using the <code>GetActivityTask</code> API action and respond using <code>SendTask*</code> API actions. This function lets Step Functions know the existence of your activity and returns an identifier for use in a state machine and when polling from the activity. <note> This operation is eventually consistent. The results are best effort and may not reflect very recent updates and changes. </note> <note>  <code>CreateActivity</code> is an idempotent API. Subsequent requests won’t create a duplicate resource if it was already created. <code>CreateActivity</code>'s idempotency check is based on the activity <code>name</code>. If a following request has different <code>tags</code> values, Step Functions will ignore these differences and treat it as an idempotent request of the previous. In this case, <code>tags</code> will not be updated, even if they are different. </note>

        :param self:
        :param tags:  The list of tags to add to a resource. An array of key-value pairs. For more information, see <a href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html">Using Cost Allocation Tags</a> in the <i>AWS Billing and Cost Management User Guide</i>, and <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_iam-tags.html">Controlling Access Using IAM Tags</a>. Tags may only contain Unicode letters, digits, white space, or these symbols: <code>_ . : / = + - @</code>.<br/>name:  The name of the activity to create. This name must be unique for your AWS account and region for 90 days. For more information, see <a href="https://docs.aws.amazon.com/step-functions/latest/dg/limits.html#service-limits-state-machine-executions"> Limits Related to State Machine Executions</a> in the <i>AWS Step Functions Developer Guide</i>. A name must <i>not</i> contain: <ul> <li> white space </li> <li> brackets <code>&lt; &gt; { } [ ]</code>  </li> <li> wildcard characters <code>? *</code>  </li> <li> special characters <code>" # % \ ^ | ~ ` $ &amp; , ; : /</code>  </li> <li> control characters (<code>U+0000-001F</code>, <code>U+007F-009F</code>) </li> </ul> To enable logging with CloudWatch Logs, the name should only contain 0-9, A-Z, a-z, - and _.<br/>
        :return: creationDate:  The date the activity is created.<br/>activityArn:  The Amazon Resource Name (ARN) that identifies the created activity.<br/>        """
        pass

    def create_state_machine(self, roleArn: str, definition: str, name: str, type: str=None, loggingConfiguration: LoggingConfiguration=None, tags: List[Tag]=None, tracingConfiguration: TracingConfiguration=None) -> CreateStateMachineOutput:
        r"""Creates a state machine. A state machine consists of a collection of states that can do work (<code>Task</code> states), determine to which states to transition next (<code>Choice</code> states), stop an execution with an error (<code>Fail</code> states), and so on. State machines are specified using a JSON-based, structured language. For more information, see <a href="https://docs.aws.amazon.com/step-functions/latest/dg/concepts-amazon-states-language.html">Amazon States Language</a> in the AWS Step Functions User Guide. <note> This operation is eventually consistent. The results are best effort and may not reflect very recent updates and changes. </note> <note>  <code>CreateStateMachine</code> is an idempotent API. Subsequent requests won’t create a duplicate resource if it was already created. <code>CreateStateMachine</code>'s idempotency check is based on the state machine <code>name</code>, <code>definition</code>, <code>type</code>, <code>LoggingConfiguration</code> and <code>TracingConfiguration</code>. If a following request has a different <code>roleArn</code> or <code>tags</code>, Step Functions will ignore these differences and treat it as an idempotent request of the previous. In this case, <code>roleArn</code> and <code>tags</code> will not be updated, even if they are different. </note>

        :param self:
        :param tracingConfiguration:  Selects whether AWS X-Ray tracing is enabled.:<br/>tags:  Tags to be added when creating a state machine. An array of key-value pairs. For more information, see <a href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html">Using Cost Allocation Tags</a> in the <i>AWS Billing and Cost Management User Guide</i>, and <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_iam-tags.html">Controlling Access Using IAM Tags</a>. Tags may only contain Unicode letters, digits, white space, or these symbols: <code>_ . : / = + - @</code>.<br/>loggingConfiguration:  Defines what execution history events are logged and where they are logged. <note> By default, the <code>level</code> is set to <code>OFF</code>. For more information see <a href="https://docs.aws.amazon.com/step-functions/latest/dg/cloudwatch-log-level.html">Log Levels</a> in the AWS Step Functions User Guide. </note>:<br/>type:  Determines whether a Standard or Express state machine is created. The default is <code>STANDARD</code>. You cannot update the <code>type</code> of a state machine once it has been created.<br/>roleArn:  The Amazon Resource Name (ARN) of the IAM role to use for this state machine.<br/>definition:  The Amazon States Language definition of the state machine. See <a href="https://docs.aws.amazon.com/step-functions/latest/dg/concepts-amazon-states-language.html">Amazon States Language</a>.<br/>name:  The name of the state machine.  A name must <i>not</i> contain: <ul> <li> white space </li> <li> brackets <code>&lt; &gt; { } [ ]</code>  </li> <li> wildcard characters <code>? *</code>  </li> <li> special characters <code>" # % \ ^ | ~ ` $ &amp; , ; : /</code>  </li> <li> control characters (<code>U+0000-001F</code>, <code>U+007F-009F</code>) </li> </ul> To enable logging with CloudWatch Logs, the name should only contain 0-9, A-Z, a-z, - and _.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>destinations</i> An array of objects that describes where your execution history events will be logged. Limited to size 1. Required, if your log level is not set to <code>OFF</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>includeExecutionData</i> Determines whether execution data is included in your log. When set to <code>false</code>, data is excluded.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>level</i> Defines which category of execution history events are logged.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>enabled</i> When set to <code>true</code>, AWS X-Ray tracing is enabled.<br/>
        :return: creationDate:  The date the state machine is created.<br/>stateMachineArn:  The Amazon Resource Name (ARN) that identifies the created state machine.<br/>        """
        pass

    def delete_activity(self, activityArn: str) -> DeleteActivityOutput:
        r"""Deletes an activity.

        :param self:
        :param activityArn:  The Amazon Resource Name (ARN) of the activity to delete.<br/>
        :return:         """
        pass

    def delete_state_machine(self, stateMachineArn: str) -> DeleteStateMachineOutput:
        r"""Deletes a state machine. This is an asynchronous operation: It sets the state machine's status to <code>DELETING</code> and begins the deletion process.  <note> For <code>EXPRESS</code>state machines, the deletion will happen eventually (usually less than a minute). Running executions may emit logs after <code>DeleteStateMachine</code> API is called. </note>

        :param self:
        :param stateMachineArn:  The Amazon Resource Name (ARN) of the state machine to delete.<br/>
        :return:         """
        pass

    def describe_activity(self, activityArn: str) -> DescribeActivityOutput:
        r"""Describes an activity. <note> This operation is eventually consistent. The results are best effort and may not reflect very recent updates and changes. </note>

        :param self:
        :param activityArn:  The Amazon Resource Name (ARN) of the activity to describe.<br/>
        :return: creationDate:  The date the activity is created.<br/>name:  The name of the activity. A name must <i>not</i> contain: <ul> <li> white space </li> <li> brackets <code>&lt; &gt; { } [ ]</code>  </li> <li> wildcard characters <code>? *</code>  </li> <li> special characters <code>" # % \ ^ | ~ ` $ &amp; , ; : /</code>  </li> <li> control characters (<code>U+0000-001F</code>, <code>U+007F-009F</code>) </li> </ul> To enable logging with CloudWatch Logs, the name should only contain 0-9, A-Z, a-z, - and _.<br/>activityArn:  The Amazon Resource Name (ARN) that identifies the activity.<br/>        """
        pass

    def describe_execution(self, executionArn: str) -> DescribeExecutionOutput:
        r"""Describes an execution. <note> This operation is eventually consistent. The results are best effort and may not reflect very recent updates and changes. </note> This API action is not supported by <code>EXPRESS</code> state machines.

        :param self:
        :param executionArn:  The Amazon Resource Name (ARN) of the execution to describe.<br/>
        :return: traceHeader:  The AWS X-Ray trace header that was passed to the execution.<br/>outputDetails:  Provides details about execution input or output.:<br/>output:  The JSON output data of the execution. Length constraints apply to the payload size, and are expressed as bytes in UTF-8 encoding. <note> This field is set only if the execution succeeds. If the execution fails, this field is null. </note><br/>inputDetails:  Provides details about execution input or output.:<br/>input:  The string that contains the JSON input data of the execution. Length constraints apply to the payload size, and are expressed as bytes in UTF-8 encoding.<br/>stopDate:  If the execution has already ended, the date the execution stopped.<br/>startDate:  The date the execution is started.<br/>status:  The current status of the execution.<br/>name:  The name of the execution. A name must <i>not</i> contain: <ul> <li> white space </li> <li> brackets <code>&lt; &gt; { } [ ]</code>  </li> <li> wildcard characters <code>? *</code>  </li> <li> special characters <code>" # % \ ^ | ~ ` $ &amp; , ; : /</code>  </li> <li> control characters (<code>U+0000-001F</code>, <code>U+007F-009F</code>) </li> </ul> To enable logging with CloudWatch Logs, the name should only contain 0-9, A-Z, a-z, - and _.<br/>stateMachineArn:  The Amazon Resource Name (ARN) of the executed stated machine.<br/>executionArn:  The Amazon Resource Name (ARN) that identifies the execution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>included</i> Indicates whether input or output was included in the response. Always <code>true</code> for API calls. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>included</i> Indicates whether input or output was included in the response. Always <code>true</code> for API calls. <br/>        """
        pass

    def describe_state_machine(self, stateMachineArn: str) -> DescribeStateMachineOutput:
        r"""Describes a state machine. <note> This operation is eventually consistent. The results are best effort and may not reflect very recent updates and changes. </note>

        :param self:
        :param stateMachineArn:  The Amazon Resource Name (ARN) of the state machine to describe.<br/>
        :return: tracingConfiguration:  Selects whether AWS X-Ray tracing is enabled.:<br/>loggingConfiguration:  The <code>LoggingConfiguration</code> data type is used to set CloudWatch Logs options.:<br/>creationDate:  The date the state machine is created.<br/>type:  The <code>type</code> of the state machine (<code>STANDARD</code> or <code>EXPRESS</code>).<br/>roleArn:  The Amazon Resource Name (ARN) of the IAM role used when creating this state machine. (The IAM role maintains security by granting Step Functions access to AWS resources.)<br/>definition:  The Amazon States Language definition of the state machine. See <a href="https://docs.aws.amazon.com/step-functions/latest/dg/concepts-amazon-states-language.html">Amazon States Language</a>.<br/>status:  The current status of the state machine.<br/>name:  The name of the state machine. A name must <i>not</i> contain: <ul> <li> white space </li> <li> brackets <code>&lt; &gt; { } [ ]</code>  </li> <li> wildcard characters <code>? *</code>  </li> <li> special characters <code>" # % \ ^ | ~ ` $ &amp; , ; : /</code>  </li> <li> control characters (<code>U+0000-001F</code>, <code>U+007F-009F</code>) </li> </ul> To enable logging with CloudWatch Logs, the name should only contain 0-9, A-Z, a-z, - and _.<br/>stateMachineArn:  The Amazon Resource Name (ARN) that identifies the state machine.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>destinations</i> An array of objects that describes where your execution history events will be logged. Limited to size 1. Required, if your log level is not set to <code>OFF</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>includeExecutionData</i> Determines whether execution data is included in your log. When set to <code>false</code>, data is excluded.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>level</i> Defines which category of execution history events are logged.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>enabled</i> When set to <code>true</code>, AWS X-Ray tracing is enabled.<br/>        """
        pass

    def describe_state_machine_for_execution(self, executionArn: str) -> DescribeStateMachineForExecutionOutput:
        r"""Describes the state machine associated with a specific execution. <note> This operation is eventually consistent. The results are best effort and may not reflect very recent updates and changes. </note> This API action is not supported by <code>EXPRESS</code> state machines.

        :param self:
        :param executionArn:  The Amazon Resource Name (ARN) of the execution you want state machine information for.<br/>
        :return: tracingConfiguration:  Selects whether AWS X-Ray tracing is enabled.:<br/>loggingConfiguration:  The <code>LoggingConfiguration</code> data type is used to set CloudWatch Logs options.:<br/>updateDate:  The date and time the state machine associated with an execution was updated. For a newly created state machine, this is the creation date.<br/>roleArn:  The Amazon Resource Name (ARN) of the IAM role of the State Machine for the execution. <br/>definition:  The Amazon States Language definition of the state machine. See <a href="https://docs.aws.amazon.com/step-functions/latest/dg/concepts-amazon-states-language.html">Amazon States Language</a>.<br/>name:  The name of the state machine associated with the execution.<br/>stateMachineArn:  The Amazon Resource Name (ARN) of the state machine associated with the execution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>destinations</i> An array of objects that describes where your execution history events will be logged. Limited to size 1. Required, if your log level is not set to <code>OFF</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>includeExecutionData</i> Determines whether execution data is included in your log. When set to <code>false</code>, data is excluded.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>level</i> Defines which category of execution history events are logged.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>enabled</i> When set to <code>true</code>, AWS X-Ray tracing is enabled.<br/>        """
        pass

    def get_activity_task(self, activityArn: str, workerName: str=None) -> GetActivityTaskOutput:
        r"""Used by workers to retrieve a task (with the specified activity ARN) which has been scheduled for execution by a running state machine. This initiates a long poll, where the service holds the HTTP connection open and responds as soon as a task becomes available (i.e. an execution of a task of this type is needed.) The maximum time the service holds on to the request before responding is 60 seconds. If no task is available within 60 seconds, the poll returns a <code>taskToken</code> with a null string. <important> Workers should set their client side socket timeout to at least 65 seconds (5 seconds higher than the maximum time the service may hold the poll request). Polling with <code>GetActivityTask</code> can cause latency in some implementations. See <a href="https://docs.aws.amazon.com/step-functions/latest/dg/bp-activity-pollers.html">Avoid Latency When Polling for Activity Tasks</a> in the Step Functions Developer Guide. </important>

        :param self:
        :param workerName:  You can provide an arbitrary name in order to identify the worker that the task is assigned to. This name is used when it is logged in the execution history.<br/>activityArn:  The Amazon Resource Name (ARN) of the activity to retrieve tasks from (assigned when you create the task using <a>CreateActivity</a>.)<br/>
        :return: input:  The string that contains the JSON input data for the task. Length constraints apply to the payload size, and are expressed as bytes in UTF-8 encoding.<br/>taskToken:  A token that identifies the scheduled task. This token must be copied and included in subsequent calls to <a>SendTaskHeartbeat</a>, <a>SendTaskSuccess</a> or <a>SendTaskFailure</a> in order to report the progress or completion of the task.<br/>        """
        pass

    def get_execution_history(self, executionArn: str, maxResults: int=None, reverseOrder: ReverseOrder=None, nextToken: str=None, includeExecutionData: IncludeExecutionDataGetExecutionHistory=None) -> GetExecutionHistoryOutput:
        r"""Returns the history of the specified execution as a list of events. By default, the results are returned in ascending order of the <code>timeStamp</code> of the events. Use the <code>reverseOrder</code> parameter to get the latest events first. If <code>nextToken</code> is returned, there are more results available. The value of <code>nextToken</code> is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours. Using an expired pagination token will return an <i>HTTP 400 InvalidToken</i> error. This API action is not supported by <code>EXPRESS</code> state machines.

        :param self:
        :param includeExecutionData:  You can select whether execution data (input or output of a history event) is returned. The default is <code>true</code>.<br/>nextToken:  If <code>nextToken</code> is returned, there are more results available. The value of <code>nextToken</code> is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours. Using an expired pagination token will return an <i>HTTP 400 InvalidToken</i> error.<br/>reverseOrder:  Lists events in descending order of their <code>timeStamp</code>.<br/>maxResults:  The maximum number of results that are returned per call. You can use <code>nextToken</code> to obtain further pages of results. The default is 100 and the maximum allowed page size is 1000. A value of 0 uses the default. This is only an upper limit. The actual number of results returned per call might be fewer than the specified maximum.<br/>executionArn:  The Amazon Resource Name (ARN) of the execution.<br/>
        :return: nextToken:  If <code>nextToken</code> is returned, there are more results available. The value of <code>nextToken</code> is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours. Using an expired pagination token will return an <i>HTTP 400 InvalidToken</i> error.<br/>events:  The list of events that occurred in the execution.<br/>        """
        pass

    def list_activities(self, maxResults: int=None, nextToken: str=None) -> ListActivitiesOutput:
        r"""Lists the existing activities. If <code>nextToken</code> is returned, there are more results available. The value of <code>nextToken</code> is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours. Using an expired pagination token will return an <i>HTTP 400 InvalidToken</i> error. <note> This operation is eventually consistent. The results are best effort and may not reflect very recent updates and changes. </note>

        :param self:
        :param nextToken:  If <code>nextToken</code> is returned, there are more results available. The value of <code>nextToken</code> is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours. Using an expired pagination token will return an <i>HTTP 400 InvalidToken</i> error.<br/>maxResults:  The maximum number of results that are returned per call. You can use <code>nextToken</code> to obtain further pages of results. The default is 100 and the maximum allowed page size is 1000. A value of 0 uses the default. This is only an upper limit. The actual number of results returned per call might be fewer than the specified maximum.<br/>
        :return: nextToken:  If <code>nextToken</code> is returned, there are more results available. The value of <code>nextToken</code> is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours. Using an expired pagination token will return an <i>HTTP 400 InvalidToken</i> error.<br/>activities:  The list of activities.<br/>        """
        pass

    def list_executions(self, stateMachineArn: str, statusFilter: str=None, maxResults: int=None, nextToken: str=None) -> ListExecutionsOutput:
        r"""Lists the executions of a state machine that meet the filtering criteria. Results are sorted by time, with the most recent execution first. If <code>nextToken</code> is returned, there are more results available. The value of <code>nextToken</code> is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours. Using an expired pagination token will return an <i>HTTP 400 InvalidToken</i> error. <note> This operation is eventually consistent. The results are best effort and may not reflect very recent updates and changes. </note> This API action is not supported by <code>EXPRESS</code> state machines.

        :param self:
        :param nextToken:  If <code>nextToken</code> is returned, there are more results available. The value of <code>nextToken</code> is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours. Using an expired pagination token will return an <i>HTTP 400 InvalidToken</i> error.<br/>maxResults:  The maximum number of results that are returned per call. You can use <code>nextToken</code> to obtain further pages of results. The default is 100 and the maximum allowed page size is 1000. A value of 0 uses the default. This is only an upper limit. The actual number of results returned per call might be fewer than the specified maximum.<br/>statusFilter:  If specified, only list the executions whose current execution status matches the given filter.<br/>stateMachineArn:  The Amazon Resource Name (ARN) of the state machine whose executions is listed.<br/>
        :return: nextToken:  If <code>nextToken</code> is returned, there are more results available. The value of <code>nextToken</code> is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours. Using an expired pagination token will return an <i>HTTP 400 InvalidToken</i> error.<br/>executions:  The list of matching executions.<br/>        """
        pass

    def list_state_machines(self, maxResults: int=None, nextToken: str=None) -> ListStateMachinesOutput:
        r"""Lists the existing state machines. If <code>nextToken</code> is returned, there are more results available. The value of <code>nextToken</code> is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours. Using an expired pagination token will return an <i>HTTP 400 InvalidToken</i> error. <note> This operation is eventually consistent. The results are best effort and may not reflect very recent updates and changes. </note>

        :param self:
        :param nextToken:  If <code>nextToken</code> is returned, there are more results available. The value of <code>nextToken</code> is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours. Using an expired pagination token will return an <i>HTTP 400 InvalidToken</i> error.<br/>maxResults:  The maximum number of results that are returned per call. You can use <code>nextToken</code> to obtain further pages of results. The default is 100 and the maximum allowed page size is 1000. A value of 0 uses the default. This is only an upper limit. The actual number of results returned per call might be fewer than the specified maximum.<br/>
        :return: nextToken:  If <code>nextToken</code> is returned, there are more results available. The value of <code>nextToken</code> is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours. Using an expired pagination token will return an <i>HTTP 400 InvalidToken</i> error.<br/>stateMachines:  <br/>        """
        pass

    def list_tags_for_resource(self, resourceArn: str) -> ListTagsForResourceOutput:
        r"""List tags for a given resource. Tags may only contain Unicode letters, digits, white space, or these symbols: <code>_ . : / = + - @</code>.

        :param self:
        :param resourceArn:  The Amazon Resource Name (ARN) for the Step Functions state machine or activity.<br/>
        :return: tags:  An array of tags associated with the resource.<br/>        """
        pass

    def send_task_failure(self, taskToken: str, error: str=None, cause: str=None) -> SendTaskFailureOutput:
        r"""Used by activity workers and task states using the <a href="https://docs.aws.amazon.com/step-functions/latest/dg/connect-to-resource.html#connect-wait-token">callback</a> pattern to report that the task identified by the <code>taskToken</code> failed.

        :param self:
        :param cause:  A more detailed explanation of the cause of the failure.<br/>error:  The error code of the failure.<br/>taskToken:  The token that represents this task. Task tokens are generated by Step Functions when tasks are assigned to a worker, or in the <a href="https://docs.aws.amazon.com/step-functions/latest/dg/input-output-contextobject.html">context object</a> when a workflow enters a task state. See <a>GetActivityTaskOutput$taskToken</a>.<br/>
        :return:         """
        pass

    def send_task_heartbeat(self, taskToken: str) -> SendTaskHeartbeatOutput:
        r"""Used by activity workers and task states using the <a href="https://docs.aws.amazon.com/step-functions/latest/dg/connect-to-resource.html#connect-wait-token">callback</a> pattern to report to Step Functions that the task represented by the specified <code>taskToken</code> is still making progress. This action resets the <code>Heartbeat</code> clock. The <code>Heartbeat</code> threshold is specified in the state machine's Amazon States Language definition (<code>HeartbeatSeconds</code>). This action does not in itself create an event in the execution history. However, if the task times out, the execution history contains an <code>ActivityTimedOut</code> entry for activities, or a <code>TaskTimedOut</code> entry for for tasks using the <a href="https://docs.aws.amazon.com/step-functions/latest/dg/connect-to-resource.html#connect-sync">job run</a> or <a href="https://docs.aws.amazon.com/step-functions/latest/dg/connect-to-resource.html#connect-wait-token">callback</a> pattern. <note> The <code>Timeout</code> of a task, defined in the state machine's Amazon States Language definition, is its maximum allowed duration, regardless of the number of <a>SendTaskHeartbeat</a> requests received. Use <code>HeartbeatSeconds</code> to configure the timeout interval for heartbeats. </note>

        :param self:
        :param taskToken:  The token that represents this task. Task tokens are generated by Step Functions when tasks are assigned to a worker, or in the <a href="https://docs.aws.amazon.com/step-functions/latest/dg/input-output-contextobject.html">context object</a> when a workflow enters a task state. See <a>GetActivityTaskOutput$taskToken</a>.<br/>
        :return:         """
        pass

    def send_task_success(self, output: str, taskToken: str) -> SendTaskSuccessOutput:
        r"""Used by activity workers and task states using the <a href="https://docs.aws.amazon.com/step-functions/latest/dg/connect-to-resource.html#connect-wait-token">callback</a> pattern to report that the task identified by the <code>taskToken</code> completed successfully.

        :param self:
        :param output:  The JSON output of the task. Length constraints apply to the payload size, and are expressed as bytes in UTF-8 encoding.<br/>taskToken:  The token that represents this task. Task tokens are generated by Step Functions when tasks are assigned to a worker, or in the <a href="https://docs.aws.amazon.com/step-functions/latest/dg/input-output-contextobject.html">context object</a> when a workflow enters a task state. See <a>GetActivityTaskOutput$taskToken</a>.<br/>
        :return:         """
        pass

    def start_execution(self, stateMachineArn: str, name: str=None, input: str=None, traceHeader: str=None) -> StartExecutionOutput:
        r"""Starts a state machine execution. <note>  <code>StartExecution</code> is idempotent. If <code>StartExecution</code> is called with the same name and input as a running execution, the call will succeed and return the same response as the original request. If the execution is closed or if the input is different, it will return a 400 <code>ExecutionAlreadyExists</code> error. Names can be reused after 90 days.  </note>

        :param self:
        :param traceHeader:  Passes the AWS X-Ray trace header. The trace header can also be passed in the request payload.<br/>input:  The string that contains the JSON input data for the execution, for example:  <code>"input": "{\"first_name\" : \"test\"}"</code>  <note> If you don't include any JSON input data, you still must include the two braces, for example: <code>"input": "{}"</code>  </note> Length constraints apply to the payload size, and are expressed as bytes in UTF-8 encoding.<br/>name:  The name of the execution. This name must be unique for your AWS account, region, and state machine for 90 days. For more information, see <a href="https://docs.aws.amazon.com/step-functions/latest/dg/limits.html#service-limits-state-machine-executions"> Limits Related to State Machine Executions</a> in the <i>AWS Step Functions Developer Guide</i>. A name must <i>not</i> contain: <ul> <li> white space </li> <li> brackets <code>&lt; &gt; { } [ ]</code>  </li> <li> wildcard characters <code>? *</code>  </li> <li> special characters <code>" # % \ ^ | ~ ` $ &amp; , ; : /</code>  </li> <li> control characters (<code>U+0000-001F</code>, <code>U+007F-009F</code>) </li> </ul> To enable logging with CloudWatch Logs, the name should only contain 0-9, A-Z, a-z, - and _.<br/>stateMachineArn:  The Amazon Resource Name (ARN) of the state machine to execute.<br/>
        :return: startDate:  The date the execution is started.<br/>executionArn:  The Amazon Resource Name (ARN) that identifies the execution.<br/>        """
        pass

    def start_sync_execution(self, stateMachineArn: str, name: str=None, input: str=None, traceHeader: str=None) -> StartSyncExecutionOutput:
        r"""Starts a Synchronous Express state machine execution.

        :param self:
        :param traceHeader:  Passes the AWS X-Ray trace header. The trace header can also be passed in the request payload.<br/>input:  The string that contains the JSON input data for the execution, for example:  <code>"input": "{\"first_name\" : \"test\"}"</code>  <note> If you don't include any JSON input data, you still must include the two braces, for example: <code>"input": "{}"</code>  </note> Length constraints apply to the payload size, and are expressed as bytes in UTF-8 encoding.<br/>name:  The name of the execution.<br/>stateMachineArn:  The Amazon Resource Name (ARN) of the state machine to execute.<br/>
        :return: billingDetails:  An object that describes workflow billing details, including billed duration and memory use.:<br/>traceHeader:  The AWS X-Ray trace header that was passed to the execution.<br/>outputDetails:  Provides details about execution input or output.:<br/>output:  The JSON output data of the execution. Length constraints apply to the payload size, and are expressed as bytes in UTF-8 encoding. <note> This field is set only if the execution succeeds. If the execution fails, this field is null. </note><br/>inputDetails:  Provides details about execution input or output.:<br/>input:  The string that contains the JSON input data of the execution. Length constraints apply to the payload size, and are expressed as bytes in UTF-8 encoding.<br/>cause:  A more detailed explanation of the cause of the failure.<br/>error:  The error code of the failure.<br/>status:  The current status of the execution.<br/>stopDate:  If the execution has already ended, the date the execution stopped.<br/>startDate:  The date the execution is started.<br/>name:  The name of the execution.<br/>stateMachineArn:  The Amazon Resource Name (ARN) that identifies the state machine.<br/>executionArn:  The Amazon Resource Name (ARN) that identifies the execution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>included</i> Indicates whether input or output was included in the response. Always <code>true</code> for API calls. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>included</i> Indicates whether input or output was included in the response. Always <code>true</code> for API calls. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>billedDurationInMilliseconds</i> Billed duration of your workflow, in milliseconds.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>billedMemoryUsedInMB</i> Billed memory consumption of your workflow, in MB.<br/>        """
        pass

    def stop_execution(self, executionArn: str, error: str=None, cause: str=None) -> StopExecutionOutput:
        r"""Stops an execution. This API action is not supported by <code>EXPRESS</code> state machines.

        :param self:
        :param cause:  A more detailed explanation of the cause of the failure.<br/>error:  The error code of the failure.<br/>executionArn:  The Amazon Resource Name (ARN) of the execution to stop.<br/>
        :return: stopDate:  The date the execution is stopped.<br/>        """
        pass

    def tag_resource(self, tags: List[Tag], resourceArn: str) -> TagResourceOutput:
        r"""Add a tag to a Step Functions resource. An array of key-value pairs. For more information, see <a href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html">Using Cost Allocation Tags</a> in the <i>AWS Billing and Cost Management User Guide</i>, and <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_iam-tags.html">Controlling Access Using IAM Tags</a>. Tags may only contain Unicode letters, digits, white space, or these symbols: <code>_ . : / = + - @</code>.

        :param self:
        :param tags:  The list of tags to add to a resource. Tags may only contain Unicode letters, digits, white space, or these symbols: <code>_ . : / = + - @</code>.<br/>resourceArn:  The Amazon Resource Name (ARN) for the Step Functions state machine or activity.<br/>
        :return:         """
        pass

    def untag_resource(self, tagKeys: List[TagKey], resourceArn: str) -> UntagResourceOutput:
        r"""Remove a tag from a Step Functions resource

        :param self:
        :param tagKeys:  The list of tags to remove from the resource.<br/>resourceArn:  The Amazon Resource Name (ARN) for the Step Functions state machine or activity.<br/>
        :return:         """
        pass

    def update_state_machine(self, stateMachineArn: str, definition: str=None, roleArn: str=None, loggingConfiguration: LoggingConfiguration=None, tracingConfiguration: TracingConfiguration=None) -> UpdateStateMachineOutput:
        r"""Updates an existing state machine by modifying its <code>definition</code>, <code>roleArn</code>, or <code>loggingConfiguration</code>. Running executions will continue to use the previous <code>definition</code> and <code>roleArn</code>. You must include at least one of <code>definition</code> or <code>roleArn</code> or you will receive a <code>MissingRequiredParameter</code> error. <note> All <code>StartExecution</code> calls within a few seconds will use the updated <code>definition</code> and <code>roleArn</code>. Executions started immediately after calling <code>UpdateStateMachine</code> may use the previous state machine <code>definition</code> and <code>roleArn</code>.  </note>

        :param self:
        :param tracingConfiguration:  Selects whether AWS X-Ray tracing is enabled.:<br/>loggingConfiguration:  The <code>LoggingConfiguration</code> data type is used to set CloudWatch Logs options.:<br/>roleArn:  The Amazon Resource Name (ARN) of the IAM role of the state machine.<br/>definition:  The Amazon States Language definition of the state machine. See <a href="https://docs.aws.amazon.com/step-functions/latest/dg/concepts-amazon-states-language.html">Amazon States Language</a>.<br/>stateMachineArn:  The Amazon Resource Name (ARN) of the state machine.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>destinations</i> An array of objects that describes where your execution history events will be logged. Limited to size 1. Required, if your log level is not set to <code>OFF</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>includeExecutionData</i> Determines whether execution data is included in your log. When set to <code>false</code>, data is excluded.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>level</i> Defines which category of execution history events are logged.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>enabled</i> When set to <code>true</code>, AWS X-Ray tracing is enabled.<br/>
        :return: updateDate:  The date and time the state machine was updated.<br/>        """
        pass





class StorageGateway(BaseClient):
    r"""<fullname>Storage Gateway Service</fullname> Storage Gateway is the service that connects an on-premises software appliance with cloud-based storage to provide seamless and secure integration between an organization's on-premises IT environment and the Amazon Web Services storage infrastructure. The service enables you to securely upload data to the Cloud for cost effective backup and rapid disaster recovery. Use the following links to get started using the <i>Storage Gateway Service API Reference</i>: <ul> <li>  <a href="https://docs.aws.amazon.com/storagegateway/latest/userguide/AWSStorageGatewayAPI.html#AWSStorageGatewayHTTPRequestsHeaders">Storage Gateway required request headers</a>: Describes the required headers that you must send with every POST request to Storage Gateway. </li> <li>  <a href="https://docs.aws.amazon.com/storagegateway/latest/userguide/AWSStorageGatewayAPI.html#AWSStorageGatewaySigningRequests">Signing requests</a>: Storage Gateway requires that you authenticate every request you send; this topic describes how sign such a request. </li> <li>  <a href="https://docs.aws.amazon.com/storagegateway/latest/userguide/AWSStorageGatewayAPI.html#APIErrorResponses">Error responses</a>: Provides reference information about Storage Gateway errors. </li> <li>  <a href="https://docs.aws.amazon.com/storagegateway/latest/APIReference/API_Operations.html">Operations in Storage Gateway</a>: Contains detailed descriptions of all Storage Gateway operations, their request parameters, response elements, possible errors, and examples of requests and responses. </li> <li>  <a href="https://docs.aws.amazon.com/general/latest/gr/sg.html">Storage Gateway endpoints and quotas</a>: Provides a list of each Region and the endpoints available for use with Storage Gateway. </li> </ul> <note> Storage Gateway resource IDs are in uppercase. When you use these resource IDs with the Amazon EC2 API, EC2 expects resource IDs in lowercase. You must change your resource ID to lowercase to use it with the EC2 API. For example, in Storage Gateway the ID for a volume might be <code>vol-AA22BB012345DAF670</code>. When you use this ID with the EC2 API, you must change it to <code>vol-aa22bb012345daf670</code>. Otherwise, the EC2 API might not behave as expected. </note> <important> IDs for Storage Gateway volumes and Amazon EBS snapshots created from gateway volumes are changing to a longer format. Starting in December 2016, all new volumes and snapshots will be created with a 17-character string. Starting in April 2016, you will be able to use these longer IDs so you can test your systems with the new format. For more information, see <a href="http://aws.amazon.com/ec2/faqs/#longer-ids">Longer EC2 and EBS resource IDs</a>. For example, a volume Amazon Resource Name (ARN) with the longer volume ID format looks like the following:  <code>arn:aws:storagegateway:us-west-2:111122223333:gateway/sgw-12A3456B/volume/vol-1122AABBCCDDEEFFG</code>. A snapshot ID with the longer ID format looks like the following: <code>snap-78e226633445566ee</code>. For more information, see <a href="http://forums.aws.amazon.com/ann.jspa?annID=3557">Announcement: Heads-up – Longer Storage Gateway volume and snapshot IDs coming in 2016</a>. </important>"""


    class DescribeTapeArchivesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_tape_archives` for valid parameters"""
            pass
    class DescribeTapeRecoveryPointsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_tape_recovery_points` for valid parameters"""
            pass
    class DescribeTapesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_tapes` for valid parameters"""
            pass
    class DescribeVTLDevicesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_vtl_devices` for valid parameters"""
            pass
    class ListGatewaysPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_gateways` for valid parameters"""
            pass
    class ListVolumesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_volumes` for valid parameters"""
            pass
    class ListTapesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_tapes` for valid parameters"""
            pass
    class ListFileSharesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_file_shares` for valid parameters"""
            pass
    class ListTagsForResourcePaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_tags_for_resource` for valid parameters"""
            pass
    class ListTapePoolsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_tape_pools` for valid parameters"""
            pass
    class ListFileSystemAssociationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_file_system_associations` for valid parameters"""
            pass


    class ActivateGatewayInput(Mapping):
        pass
    
    class ActivateGatewayOutput(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class AddCacheInput(Mapping):
        pass
    
    class AddCacheOutput(Mapping):
        pass
    
    class DiskId(object):
        pass
    
    class AddTagsToResourceInput(Mapping):
        pass
    
    class AddTagsToResourceOutput(Mapping):
        pass
    
    class AddUploadBufferInput(Mapping):
        pass
    
    class AddUploadBufferOutput(Mapping):
        pass
    
    class AddWorkingStorageInput(Mapping):
        pass
    
    class AddWorkingStorageOutput(Mapping):
        pass
    
    class AssignTapePoolInput(Mapping):
        pass
    
    class AssignTapePoolOutput(Mapping):
        pass
    
    class boolean(object):
        pass
    
    class AssociateFileSystemInput(Mapping):
        pass
    
    class AssociateFileSystemOutput(Mapping):
        pass
    
    class CacheAttributes(Mapping):
        pass
    
    class EndpointNetworkConfiguration(Mapping):
        pass
    
    class AttachVolumeInput(Mapping):
        pass
    
    class AttachVolumeOutput(Mapping):
        pass
    
    class CancelArchivalInput(Mapping):
        pass
    
    class CancelArchivalOutput(Mapping):
        pass
    
    class CancelRetrievalInput(Mapping):
        pass
    
    class CancelRetrievalOutput(Mapping):
        pass
    
    class CreateCachediSCSIVolumeInput(Mapping):
        pass
    
    class CreateCachediSCSIVolumeOutput(Mapping):
        pass
    
    class long(object):
        pass
    
    class Boolean(object):
        pass
    
    class CreateNFSFileShareInput(Mapping):
        pass
    
    class CreateNFSFileShareOutput(Mapping):
        pass
    
    class NFSFileShareDefaults(Mapping):
        pass
    
    class IPV4AddressCIDR(object):
        pass
    
    class CreateSMBFileShareInput(Mapping):
        pass
    
    class CreateSMBFileShareOutput(Mapping):
        pass
    
    class UserListUser(object):
        pass
    
    class CreateSnapshotInput(Mapping):
        pass
    
    class CreateSnapshotOutput(Mapping):
        pass
    
    class CreateSnapshotFromVolumeRecoveryPointInput(Mapping):
        pass
    
    class CreateSnapshotFromVolumeRecoveryPointOutput(Mapping):
        pass
    
    class CreateStorediSCSIVolumeInput(Mapping):
        pass
    
    class CreateStorediSCSIVolumeOutput(Mapping):
        pass
    
    class CreateTapePoolInput(Mapping):
        pass
    
    class CreateTapePoolOutput(Mapping):
        pass
    
    class CreateTapeWithBarcodeInput(Mapping):
        pass
    
    class CreateTapeWithBarcodeOutput(Mapping):
        pass
    
    class TapeSize(object):
        pass
    
    class CreateTapesInput(Mapping):
        pass
    
    class CreateTapesOutput(Mapping):
        pass
    
    class DeleteAutomaticTapeCreationPolicyInput(Mapping):
        pass
    
    class DeleteAutomaticTapeCreationPolicyOutput(Mapping):
        pass
    
    class DeleteBandwidthRateLimitInput(Mapping):
        pass
    
    class DeleteBandwidthRateLimitOutput(Mapping):
        pass
    
    class DeleteChapCredentialsInput(Mapping):
        pass
    
    class DeleteChapCredentialsOutput(Mapping):
        pass
    
    class DeleteFileShareInput(Mapping):
        pass
    
    class DeleteFileShareOutput(Mapping):
        pass
    
    class DeleteGatewayInput(Mapping):
        pass
    
    class DeleteGatewayOutput(Mapping):
        pass
    
    class DeleteSnapshotScheduleInput(Mapping):
        pass
    
    class DeleteSnapshotScheduleOutput(Mapping):
        pass
    
    class DeleteTapeInput(Mapping):
        pass
    
    class DeleteTapeOutput(Mapping):
        pass
    
    class DeleteTapeArchiveInput(Mapping):
        pass
    
    class DeleteTapeArchiveOutput(Mapping):
        pass
    
    class DeleteTapePoolInput(Mapping):
        pass
    
    class DeleteTapePoolOutput(Mapping):
        pass
    
    class DeleteVolumeInput(Mapping):
        pass
    
    class DeleteVolumeOutput(Mapping):
        pass
    
    class DescribeAvailabilityMonitorTestInput(Mapping):
        pass
    
    class DescribeAvailabilityMonitorTestOutput(Mapping):
        pass
    
    class DescribeBandwidthRateLimitInput(Mapping):
        pass
    
    class DescribeBandwidthRateLimitOutput(Mapping):
        pass
    
    class DescribeBandwidthRateLimitScheduleInput(Mapping):
        pass
    
    class DescribeBandwidthRateLimitScheduleOutput(Mapping):
        pass
    
    class DescribeCacheInput(Mapping):
        pass
    
    class DescribeCacheOutput(Mapping):
        pass
    
    class DescribeCachediSCSIVolumesInput(Mapping):
        pass
    
    class DescribeCachediSCSIVolumesOutput(Mapping):
        pass
    
    class VolumeARN(object):
        pass
    
    class DescribeChapCredentialsInput(Mapping):
        pass
    
    class DescribeChapCredentialsOutput(Mapping):
        pass
    
    class DescribeFileSystemAssociationsInput(Mapping):
        pass
    
    class DescribeFileSystemAssociationsOutput(Mapping):
        pass
    
    class FileSystemAssociationARN(object):
        pass
    
    class DescribeGatewayInformationInput(Mapping):
        pass
    
    class DescribeGatewayInformationOutput(Mapping):
        pass
    
    class DescribeMaintenanceStartTimeInput(Mapping):
        pass
    
    class DescribeMaintenanceStartTimeOutput(Mapping):
        pass
    
    class DescribeNFSFileSharesInput(Mapping):
        pass
    
    class DescribeNFSFileSharesOutput(Mapping):
        pass
    
    class FileShareARN(object):
        pass
    
    class DescribeSMBFileSharesInput(Mapping):
        pass
    
    class DescribeSMBFileSharesOutput(Mapping):
        pass
    
    class DescribeSMBSettingsInput(Mapping):
        pass
    
    class DescribeSMBSettingsOutput(Mapping):
        pass
    
    class DescribeSnapshotScheduleInput(Mapping):
        pass
    
    class DescribeSnapshotScheduleOutput(Mapping):
        pass
    
    class DescribeStorediSCSIVolumesInput(Mapping):
        pass
    
    class DescribeStorediSCSIVolumesOutput(Mapping):
        pass
    
    class DescribeTapeArchivesInput(Mapping):
        pass
    
    class DescribeTapeArchivesOutput(Mapping):
        pass
    
    class TapeARN(object):
        pass
    
    class DescribeTapeRecoveryPointsInput(Mapping):
        pass
    
    class DescribeTapeRecoveryPointsOutput(Mapping):
        pass
    
    class DescribeTapesInput(Mapping):
        pass
    
    class DescribeTapesOutput(Mapping):
        pass
    
    class DescribeUploadBufferInput(Mapping):
        pass
    
    class DescribeUploadBufferOutput(Mapping):
        pass
    
    class DescribeVTLDevicesInput(Mapping):
        pass
    
    class DescribeVTLDevicesOutput(Mapping):
        pass
    
    class VTLDeviceARN(object):
        pass
    
    class DescribeWorkingStorageInput(Mapping):
        pass
    
    class DescribeWorkingStorageOutput(Mapping):
        pass
    
    class DetachVolumeInput(Mapping):
        pass
    
    class DetachVolumeOutput(Mapping):
        pass
    
    class DisableGatewayInput(Mapping):
        pass
    
    class DisableGatewayOutput(Mapping):
        pass
    
    class DisassociateFileSystemInput(Mapping):
        pass
    
    class DisassociateFileSystemOutput(Mapping):
        pass
    
    class JoinDomainInput(Mapping):
        pass
    
    class JoinDomainOutput(Mapping):
        pass
    
    class Host(object):
        pass
    
    class ListAutomaticTapeCreationPoliciesInput(Mapping):
        pass
    
    class ListAutomaticTapeCreationPoliciesOutput(Mapping):
        pass
    
    class ListFileSharesInput(Mapping):
        pass
    
    class ListFileSharesOutput(Mapping):
        pass
    
    class ListFileSystemAssociationsInput(Mapping):
        pass
    
    class ListFileSystemAssociationsOutput(Mapping):
        pass
    
    class ListGatewaysInput(Mapping):
        pass
    
    class ListGatewaysOutput(Mapping):
        pass
    
    class ListLocalDisksInput(Mapping):
        pass
    
    class ListLocalDisksOutput(Mapping):
        pass
    
    class ListTagsForResourceInput(Mapping):
        pass
    
    class ListTagsForResourceOutput(Mapping):
        pass
    
    class ListTapePoolsInput(Mapping):
        pass
    
    class ListTapePoolsOutput(Mapping):
        pass
    
    class PoolARN(object):
        pass
    
    class ListTapesInput(Mapping):
        pass
    
    class ListTapesOutput(Mapping):
        pass
    
    class ListVolumeInitiatorsInput(Mapping):
        pass
    
    class ListVolumeInitiatorsOutput(Mapping):
        pass
    
    class ListVolumeRecoveryPointsInput(Mapping):
        pass
    
    class ListVolumeRecoveryPointsOutput(Mapping):
        pass
    
    class ListVolumesInput(Mapping):
        pass
    
    class ListVolumesOutput(Mapping):
        pass
    
    class NotifyWhenUploadedInput(Mapping):
        pass
    
    class NotifyWhenUploadedOutput(Mapping):
        pass
    
    class RefreshCacheInput(Mapping):
        pass
    
    class RefreshCacheOutput(Mapping):
        pass
    
    class Folder(object):
        pass
    
    class RemoveTagsFromResourceInput(Mapping):
        pass
    
    class RemoveTagsFromResourceOutput(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class ResetCacheInput(Mapping):
        pass
    
    class ResetCacheOutput(Mapping):
        pass
    
    class RetrieveTapeArchiveInput(Mapping):
        pass
    
    class RetrieveTapeArchiveOutput(Mapping):
        pass
    
    class RetrieveTapeRecoveryPointInput(Mapping):
        pass
    
    class RetrieveTapeRecoveryPointOutput(Mapping):
        pass
    
    class SetLocalConsolePasswordInput(Mapping):
        pass
    
    class SetLocalConsolePasswordOutput(Mapping):
        pass
    
    class SetSMBGuestPasswordInput(Mapping):
        pass
    
    class SetSMBGuestPasswordOutput(Mapping):
        pass
    
    class ShutdownGatewayInput(Mapping):
        pass
    
    class ShutdownGatewayOutput(Mapping):
        pass
    
    class StartAvailabilityMonitorTestInput(Mapping):
        pass
    
    class StartAvailabilityMonitorTestOutput(Mapping):
        pass
    
    class StartGatewayInput(Mapping):
        pass
    
    class StartGatewayOutput(Mapping):
        pass
    
    class UpdateAutomaticTapeCreationPolicyInput(Mapping):
        pass
    
    class UpdateAutomaticTapeCreationPolicyOutput(Mapping):
        pass
    
    class AutomaticTapeCreationRule(Mapping):
        pass
    
    class UpdateBandwidthRateLimitInput(Mapping):
        pass
    
    class UpdateBandwidthRateLimitOutput(Mapping):
        pass
    
    class BandwidthUploadRateLimit(object):
        pass
    
    class BandwidthDownloadRateLimit(object):
        pass
    
    class UpdateBandwidthRateLimitScheduleInput(Mapping):
        pass
    
    class UpdateBandwidthRateLimitScheduleOutput(Mapping):
        pass
    
    class BandwidthRateLimitInterval(Mapping):
        pass
    
    class UpdateChapCredentialsInput(Mapping):
        pass
    
    class UpdateChapCredentialsOutput(Mapping):
        pass
    
    class UpdateFileSystemAssociationInput(Mapping):
        pass
    
    class UpdateFileSystemAssociationOutput(Mapping):
        pass
    
    class UpdateGatewayInformationInput(Mapping):
        pass
    
    class UpdateGatewayInformationOutput(Mapping):
        pass
    
    class UpdateGatewaySoftwareNowInput(Mapping):
        pass
    
    class UpdateGatewaySoftwareNowOutput(Mapping):
        pass
    
    class UpdateMaintenanceStartTimeInput(Mapping):
        pass
    
    class UpdateMaintenanceStartTimeOutput(Mapping):
        pass
    
    class UpdateNFSFileShareInput(Mapping):
        pass
    
    class UpdateNFSFileShareOutput(Mapping):
        pass
    
    class UpdateSMBFileShareInput(Mapping):
        pass
    
    class UpdateSMBFileShareOutput(Mapping):
        pass
    
    class UpdateSMBFileShareVisibilityInput(Mapping):
        pass
    
    class UpdateSMBFileShareVisibilityOutput(Mapping):
        pass
    
    class UpdateSMBSecurityStrategyInput(Mapping):
        pass
    
    class UpdateSMBSecurityStrategyOutput(Mapping):
        pass
    
    class UpdateSnapshotScheduleInput(Mapping):
        pass
    
    class UpdateSnapshotScheduleOutput(Mapping):
        pass
    
    class UpdateVTLDeviceTypeInput(Mapping):
        pass
    
    class UpdateVTLDeviceTypeOutput(Mapping):
        pass
    
    def activate_gateway(self, GatewayRegion: str, GatewayTimezone: str, GatewayName: str, ActivationKey: str, GatewayType: str=None, TapeDriveType: str=None, MediumChangerType: str=None, Tags: List[Tag]=None) -> ActivateGatewayOutput:
        r"""Activates the gateway you previously deployed on your host. In the activation process, you specify information such as the Region that you want to use for storing snapshots or tapes, the time zone for scheduled snapshots the gateway snapshot schedule window, an activation key, and a name for your gateway. The activation process also associates your gateway with your account. For more information, see <a>UpdateGatewayInformation</a>. <note> You must turn on the gateway VM before you can activate your gateway. </note>

        :param self:
        :param Tags:  A list of up to 50 tags that you can assign to the gateway. Each tag is a key-value pair. <note> Valid characters for key and value are letters, spaces, and numbers that can be represented in UTF-8 format, and the following special characters: + - = . _ : / @. The maximum length of a tag's key is 128 characters, and the maximum length for a tag's value is 256 characters. </note><br/>MediumChangerType:  The value that indicates the type of medium changer to use for tape gateway. This field is optional. Valid Values: <code>STK-L700</code> | <code>AWS-Gateway-VTL</code> | <code>IBM-03584L32-0402</code> <br/>TapeDriveType:  The value that indicates the type of tape drive to use for tape gateway. This field is optional. Valid Values: <code>IBM-ULT3580-TD5</code> <br/>GatewayType:  A value that defines the type of gateway to activate. The type specified is critical to all later functions of the gateway and cannot be changed after activation. The default value is <code>CACHED</code>. Valid Values: <code>STORED</code> | <code>CACHED</code> | <code>VTL</code> | <code>FILE_S3</code> | <code>FILE_FSX_SMB|</code> <br/>GatewayRegion:  A value that indicates the Region where you want to store your data. The gateway Region specified must be the same Region as the Region in your <code>Host</code> header in the request. For more information about available Regions and endpoints for Storage Gateway, see <a href="https://docs.aws.amazon.com/general/latest/gr/sg.html"> Storage Gateway endpoints and quotas</a> in the <i>Amazon Web Services General Reference</i>. Valid Values: See <a href="https://docs.aws.amazon.com/general/latest/gr/sg.html"> Storage Gateway endpoints and quotas</a> in the <i>Amazon Web Services General Reference</i>. <br/>GatewayTimezone:  A value that indicates the time zone you want to set for the gateway. The time zone is of the format "GMT-hr:mm" or "GMT+hr:mm". For example, GMT-4:00 indicates the time is 4 hours behind GMT. GMT+2:00 indicates the time is 2 hours ahead of GMT. The time zone is used, for example, for scheduling snapshots and your gateway's maintenance schedule.<br/>GatewayName:  The name you configured for your gateway.<br/>ActivationKey:  Your gateway activation key. You can obtain the activation key by sending an HTTP GET request with redirects enabled to the gateway IP address (port 80). The redirect URL returned in the response provides you the activation key for your gateway in the query string parameter <code>activationKey</code>. It may also include other activation-related parameters, however, these are merely defaults -- the arguments you pass to the <code>ActivateGateway</code> API call determine the actual configuration of your gateway. For more information, see <a href="https://docs.aws.amazon.com/storagegateway/latest/userguide/get-activation-key.html">Getting activation key</a> in the <i>Storage Gateway User Guide</i>.<br/>
        :return: GatewayARN:  The Amazon Resource Name (ARN) of the gateway. Use the <a>ListGateways</a> operation to return a list of gateways for your account and Region.<br/>        """
        pass

    def add_cache(self, DiskIds: List[DiskId], GatewayARN: str) -> AddCacheOutput:
        r"""Configures one or more gateway local disks as cache for a gateway. This operation is only supported in the cached volume, tape, and file gateway type (see <a href="https://docs.aws.amazon.com/storagegateway/latest/userguide/StorageGatewayConcepts.html">How Storage Gateway works (architecture)</a>. In the request, you specify the gateway Amazon Resource Name (ARN) to which you want to add cache, and one or more disk IDs that you want to configure as cache.

        :param self:
        :param DiskIds:  An array of strings that identify disks that are to be configured as working storage. Each string has a minimum length of 1 and maximum length of 300. You can get the disk IDs from the <a>ListLocalDisks</a> API.<br/>GatewayARN:  The Amazon Resource Name (ARN) of the gateway. Use the <a>ListGateways</a> operation to return a list of gateways for your account and Region.<br/>
        :return: GatewayARN:  The Amazon Resource Name (ARN) of the gateway. Use the <a>ListGateways</a> operation to return a list of gateways for your account and Region.<br/>        """
        pass

    def add_tags_to_resource(self, Tags: List[Tag], ResourceARN: str) -> AddTagsToResourceOutput:
        r"""Adds one or more tags to the specified resource. You use tags to add metadata to resources, which you can use to categorize these resources. For example, you can categorize resources by purpose, owner, environment, or team. Each tag consists of a key and a value, which you define. You can add tags to the following Storage Gateway resources: <ul> <li> Storage gateways of all types </li> <li> Storage volumes </li> <li> Virtual tapes </li> <li> NFS and SMB file shares </li> <li> File System associations </li> </ul> You can create a maximum of 50 tags for each resource. Virtual tapes and storage volumes that are recovered to a new gateway maintain their tags.

        :param self:
        :param Tags:  The key-value pair that represents the tag you want to add to the resource. The value can be an empty string. <note> Valid characters for key and value are letters, spaces, and numbers representable in UTF-8 format, and the following special characters: + - = . _ : / @. The maximum length of a tag's key is 128 characters, and the maximum length for a tag's value is 256. </note><br/>ResourceARN:  The Amazon Resource Name (ARN) of the resource you want to add tags to.<br/>
        :return: ResourceARN:  The Amazon Resource Name (ARN) of the resource you want to add tags to.<br/>        """
        pass

    def add_upload_buffer(self, DiskIds: List[DiskId], GatewayARN: str) -> AddUploadBufferOutput:
        r"""Configures one or more gateway local disks as upload buffer for a specified gateway. This operation is supported for the stored volume, cached volume, and tape gateway types. In the request, you specify the gateway Amazon Resource Name (ARN) to which you want to add upload buffer, and one or more disk IDs that you want to configure as upload buffer.

        :param self:
        :param DiskIds:  An array of strings that identify disks that are to be configured as working storage. Each string has a minimum length of 1 and maximum length of 300. You can get the disk IDs from the <a>ListLocalDisks</a> API.<br/>GatewayARN:  The Amazon Resource Name (ARN) of the gateway. Use the <a>ListGateways</a> operation to return a list of gateways for your account and Region.<br/>
        :return: GatewayARN:  The Amazon Resource Name (ARN) of the gateway. Use the <a>ListGateways</a> operation to return a list of gateways for your account and Region.<br/>        """
        pass

    def add_working_storage(self, DiskIds: List[DiskId], GatewayARN: str) -> AddWorkingStorageOutput:
        r"""Configures one or more gateway local disks as working storage for a gateway. This operation is only supported in the stored volume gateway type. This operation is deprecated in cached volume API version 20120630. Use <a>AddUploadBuffer</a> instead. <note> Working storage is also referred to as upload buffer. You can also use the <a>AddUploadBuffer</a> operation to add upload buffer to a stored volume gateway. </note> In the request, you specify the gateway Amazon Resource Name (ARN) to which you want to add working storage, and one or more disk IDs that you want to configure as working storage.

        :param self:
        :param DiskIds:  An array of strings that identify disks that are to be configured as working storage. Each string has a minimum length of 1 and maximum length of 300. You can get the disk IDs from the <a>ListLocalDisks</a> API.<br/>GatewayARN:  The Amazon Resource Name (ARN) of the gateway. Use the <a>ListGateways</a> operation to return a list of gateways for your account and Region.<br/>
        :return: GatewayARN:  The Amazon Resource Name (ARN) of the gateway. Use the <a>ListGateways</a> operation to return a list of gateways for your account and Region.<br/>        """
        pass

    def assign_tape_pool(self, PoolId: str, TapeARN: str, BypassGovernanceRetention: boolean=None) -> AssignTapePoolOutput:
        r"""Assigns a tape to a tape pool for archiving. The tape assigned to a pool is archived in the S3 storage class that is associated with the pool. When you use your backup application to eject the tape, the tape is archived directly into the S3 storage class (S3 Glacier or S3 Glacier Deep Archive) that corresponds to the pool. Valid Values: <code>GLACIER</code> | <code>DEEP_ARCHIVE</code> 

        :param self:
        :param BypassGovernanceRetention:  Set permissions to bypass governance retention. If the lock type of the archived tape is <code>Governance</code>, the tape's archived age is not older than <code>RetentionLockInDays</code>, and the user does not already have <code>BypassGovernanceRetention</code>, setting this to TRUE enables the user to bypass the retention lock. This parameter is set to true by default for calls from the console. Valid values: <code>TRUE</code> | <code>FALSE</code> <br/>PoolId:  The ID of the pool that you want to add your tape to for archiving. The tape in this pool is archived in the S3 storage class that is associated with the pool. When you use your backup application to eject the tape, the tape is archived directly into the storage class (S3 Glacier or S3 Glacier Deep Archive) that corresponds to the pool. Valid Values: <code>GLACIER</code> | <code>DEEP_ARCHIVE</code> <br/>TapeARN:  The unique Amazon Resource Name (ARN) of the virtual tape that you want to add to the tape pool.<br/>
        :return: TapeARN:  The unique Amazon Resource Names (ARN) of the virtual tape that was added to the tape pool.<br/>        """
        pass

    def associate_file_system(self, LocationARN: str, GatewayARN: str, ClientToken: str, Password: str, UserName: str, Tags: List[Tag]=None, AuditDestinationARN: str=None, CacheAttributes: CacheAttributes=None, EndpointNetworkConfiguration: EndpointNetworkConfiguration=None) -> AssociateFileSystemOutput:
        r"""Associate an Amazon FSx file system with the FSx File Gateway. After the association process is complete, the file shares on the Amazon FSx file system are available for access through the gateway. This operation only supports the FSx File Gateway type.

        :param self:
        :param EndpointNetworkConfiguration:  Specifies the network configuration information for the gateway associated with the Amazon FSx file system. <note> If multiple file systems are associated with this gateway, this parameter's <code>IpAddresses</code> field is required. </note>:<br/>CacheAttributes:  The refresh cache information for the file share or FSx file systems.:<br/>AuditDestinationARN:  The Amazon Resource Name (ARN) of the storage used for the audit logs.<br/>Tags:  A list of up to 50 tags that can be assigned to the file system association. Each tag is a key-value pair.<br/>LocationARN:  The Amazon Resource Name (ARN) of the Amazon FSx file system to associate with the FSx File Gateway.<br/>GatewayARN:  The Amazon Resource Name (ARN) of the gateway. Use the <a>ListGateways</a> operation to return a list of gateways for your account and Region.<br/>ClientToken:  A unique string value that you supply that is used by the FSx File Gateway to ensure idempotent file system association creation.<br/>Password:  The password of the user credential.<br/>UserName:  The user name of the user credential that has permission to access the root share D$ of the Amazon FSx file system. The user account must belong to the Amazon FSx delegated admin user group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheStaleTimeoutInSeconds</i> Refreshes a file share's cache by using Time To Live (TTL). TTL is the length of time since the last refresh after which access to the directory would cause the file gateway to first refresh that directory's contents from the Amazon S3 bucket or Amazon FSx file system. The TTL duration is in seconds. Valid Values:0, 300 to 2,592,000 seconds (5 minutes to 30 days)<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IpAddresses</i> A list of gateway IP addresses on which the associated Amazon FSx file system is available. <note> If multiple file systems are associated with this gateway, this field is required. </note><br/>
        :return: FileSystemAssociationARN:  The ARN of the newly created file system association.<br/>        """
        pass

    def attach_volume(self, NetworkInterfaceId: str, VolumeARN: str, GatewayARN: str, TargetName: str=None, DiskId: str=None) -> AttachVolumeOutput:
        r"""Connects a volume to an iSCSI connection and then attaches the volume to the specified gateway. Detaching and attaching a volume enables you to recover your data from one gateway to a different gateway without creating a snapshot. It also makes it easier to move your volumes from an on-premises gateway to a gateway hosted on an Amazon EC2 instance.

        :param self:
        :param DiskId:  The unique device ID or other distinguishing data that identifies the local disk used to create the volume. This value is only required when you are attaching a stored volume.<br/>NetworkInterfaceId:  The network interface of the gateway on which to expose the iSCSI target. Only IPv4 addresses are accepted. Use <a>DescribeGatewayInformation</a> to get a list of the network interfaces available on a gateway. Valid Values: A valid IP address.<br/>VolumeARN:  The Amazon Resource Name (ARN) of the volume to attach to the specified gateway.<br/>TargetName:  The name of the iSCSI target used by an initiator to connect to a volume and used as a suffix for the target ARN. For example, specifying <code>TargetName</code> as <i>myvolume</i> results in the target ARN of <code>arn:aws:storagegateway:us-east-2:111122223333:gateway/sgw-12A3456B/target/iqn.1997-05.com.amazon:myvolume</code>. The target name must be unique across all volumes on a gateway. If you don't specify a value, Storage Gateway uses the value that was previously used for this volume as the new target name.<br/>GatewayARN:  The Amazon Resource Name (ARN) of the gateway that you want to attach the volume to.<br/>
        :return: TargetARN:  The Amazon Resource Name (ARN) of the volume target, which includes the iSCSI name for the initiator that was used to connect to the target.<br/>VolumeARN:  The Amazon Resource Name (ARN) of the volume that was attached to the gateway.<br/>        """
        pass

    def cancel_archival(self, TapeARN: str, GatewayARN: str) -> CancelArchivalOutput:
        r"""Cancels archiving of a virtual tape to the virtual tape shelf (VTS) after the archiving process is initiated. This operation is only supported in the tape gateway type.

        :param self:
        :param TapeARN:  The Amazon Resource Name (ARN) of the virtual tape you want to cancel archiving for.<br/>GatewayARN:  The Amazon Resource Name (ARN) of the gateway. Use the <a>ListGateways</a> operation to return a list of gateways for your account and Region.<br/>
        :return: TapeARN:  The Amazon Resource Name (ARN) of the virtual tape for which archiving was canceled.<br/>        """
        pass

    def cancel_retrieval(self, TapeARN: str, GatewayARN: str) -> CancelRetrievalOutput:
        r"""Cancels retrieval of a virtual tape from the virtual tape shelf (VTS) to a gateway after the retrieval process is initiated. The virtual tape is returned to the VTS. This operation is only supported in the tape gateway type.

        :param self:
        :param TapeARN:  The Amazon Resource Name (ARN) of the virtual tape you want to cancel retrieval for.<br/>GatewayARN:  The Amazon Resource Name (ARN) of the gateway. Use the <a>ListGateways</a> operation to return a list of gateways for your account and Region.<br/>
        :return: TapeARN:  The Amazon Resource Name (ARN) of the virtual tape for which retrieval was canceled.<br/>        """
        pass

    def create_cached_iscsi_volume(self, ClientToken: str, NetworkInterfaceId: str, TargetName: str, VolumeSizeInBytes: long, GatewayARN: str, SnapshotId: str=None, SourceVolumeARN: str=None, KMSEncrypted: Boolean=None, KMSKey: str=None, Tags: List[Tag]=None) -> CreateCachediSCSIVolumeOutput:
        r"""Creates a cached volume on a specified cached volume gateway. This operation is only supported in the cached volume gateway type. <note> Cache storage must be allocated to the gateway before you can create a cached volume. Use the <a>AddCache</a> operation to add cache storage to a gateway. </note> In the request, you must specify the gateway, size of the volume in bytes, the iSCSI target name, an IP address on which to expose the target, and a unique client token. In response, the gateway creates the volume and returns information about it. This information includes the volume Amazon Resource Name (ARN), its size, and the iSCSI target ARN that initiators can use to connect to the volume target. Optionally, you can provide the ARN for an existing volume as the <code>SourceVolumeARN</code> for this cached volume, which creates an exact copy of the existing volume’s latest recovery point. The <code>VolumeSizeInBytes</code> value must be equal to or larger than the size of the copied volume, in bytes.

        :param self:
        :param Tags:  A list of up to 50 tags that you can assign to a cached volume. Each tag is a key-value pair. <note> Valid characters for key and value are letters, spaces, and numbers that you can represent in UTF-8 format, and the following special characters: + - = . _ : / @. The maximum length of a tag's key is 128 characters, and the maximum length for a tag's value is 256 characters. </note><br/>KMSKey:  The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric CMKs. This value can only be set when <code>KMSEncrypted</code> is <code>true</code>. Optional.<br/>KMSEncrypted:  Set to <code>true</code> to use Amazon S3 server-side encryption with your own KMS key, or <code>false</code> to use a key managed by Amazon S3. Optional. Valid Values: <code>true</code> | <code>false</code> <br/>ClientToken:  A unique identifier that you use to retry a request. If you retry a request, use the same <code>ClientToken</code> you specified in the initial request.<br/>NetworkInterfaceId:  The network interface of the gateway on which to expose the iSCSI target. Only IPv4 addresses are accepted. Use <a>DescribeGatewayInformation</a> to get a list of the network interfaces available on a gateway. Valid Values: A valid IP address.<br/>SourceVolumeARN:  The ARN for an existing volume. Specifying this ARN makes the new volume into an exact copy of the specified existing volume's latest recovery point. The <code>VolumeSizeInBytes</code> value for this new volume must be equal to or larger than the size of the existing volume, in bytes.<br/>TargetName:  The name of the iSCSI target used by an initiator to connect to a volume and used as a suffix for the target ARN. For example, specifying <code>TargetName</code> as <i>myvolume</i> results in the target ARN of <code>arn:aws:storagegateway:us-east-2:111122223333:gateway/sgw-12A3456B/target/iqn.1997-05.com.amazon:myvolume</code>. The target name must be unique across all volumes on a gateway. If you don't specify a value, Storage Gateway uses the value that was previously used for this volume as the new target name.<br/>SnapshotId:  The snapshot ID (e.g. "snap-1122aabb") of the snapshot to restore as the new cached volume. Specify this field if you want to create the iSCSI storage volume from a snapshot; otherwise, do not include this field. To list snapshots for your account use <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeSnapshots.html">DescribeSnapshots</a> in the <i>Amazon Elastic Compute Cloud API Reference</i>.<br/>VolumeSizeInBytes:  The size of the volume in bytes.<br/>GatewayARN:  The Amazon Resource Name (ARN) of the gateway. Use the <a>ListGateways</a> operation to return a list of gateways for your account and Region.<br/>
        :return: TargetARN:  The Amazon Resource Name (ARN) of the volume target, which includes the iSCSI name that initiators can use to connect to the target.<br/>VolumeARN:  The Amazon Resource Name (ARN) of the configured volume.<br/>        """
        pass

    def create_nfs_file_share(self, LocationARN: str, Role: str, GatewayARN: str, ClientToken: str, NFSFileShareDefaults: NFSFileShareDefaults=None, KMSEncrypted: Boolean=None, KMSKey: str=None, DefaultStorageClass: str=None, ObjectACL: str=None, ClientList: List[IPV4AddressCIDR]=None, Squash: str=None, ReadOnly: Boolean=None, GuessMIMETypeEnabled: Boolean=None, RequesterPays: Boolean=None, Tags: List[Tag]=None, FileShareName: str=None, CacheAttributes: CacheAttributes=None, NotificationPolicy: str=None, VPCEndpointDNSName: str=None, BucketRegion: str=None) -> CreateNFSFileShareOutput:
        r"""Creates a Network File System (NFS) file share on an existing S3 File Gateway. In Storage Gateway, a file share is a file system mount point backed by Amazon S3 cloud storage. Storage Gateway exposes file shares using an NFS interface. This operation is only supported for S3 File Gateways. <important> S3 File gateway requires Security Token Service (STS) to be activated to enable you to create a file share. Make sure STS is activated in the Region you are creating your S3 File Gateway in. If STS is not activated in the Region, activate it. For information about how to activate STS, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html">Activating and deactivating STS in an Region</a> in the <i>Identity and Access Management User Guide</i>. S3 File Gateways do not support creating hard or symbolic links on a file share. </important>

        :param self:
        :param BucketRegion:  Specifies the Region of the S3 bucket where the NFS file share stores files. <note> This parameter is required for NFS file shares that connect to Amazon S3 through a VPC endpoint, a VPC access point, or an access point alias that points to a VPC access point. </note><br/>VPCEndpointDNSName:  Specifies the DNS name for the VPC endpoint that the NFS file share uses to connect to Amazon S3. <note> This parameter is required for NFS file shares that connect to Amazon S3 through a VPC endpoint, a VPC access point, or an access point alias that points to a VPC access point. </note><br/>NotificationPolicy:  The notification policy of the file share. <code>SettlingTimeInSeconds</code> controls the number of seconds to wait after the last point in time a client wrote to a file before generating an <code>ObjectUploaded</code> notification. Because clients can make many small writes to files, it's best to set this parameter for as long as possible to avoid generating multiple notifications for the same file in a small time period. <note>  <code>SettlingTimeInSeconds</code> has no effect on the timing of the object uploading to Amazon S3, only the timing of the notification. </note> The following example sets <code>NotificationPolicy</code> on with <code>SettlingTimeInSeconds</code> set to 60.  <code>{\"Upload\": {\"SettlingTimeInSeconds\": 60}}</code>  The following example sets <code>NotificationPolicy</code> off.  <code>{}</code> <br/>CacheAttributes:  Specifies refresh cache information for the file share.:<br/>FileShareName:  The name of the file share. Optional. <note>  <code>FileShareName</code> must be set if an S3 prefix name is set in <code>LocationARN</code>. </note><br/>Tags:  A list of up to 50 tags that can be assigned to the NFS file share. Each tag is a key-value pair. <note> Valid characters for key and value are letters, spaces, and numbers representable in UTF-8 format, and the following special characters: + - = . _ : / @. The maximum length of a tag's key is 128 characters, and the maximum length for a tag's value is 256. </note><br/>RequesterPays:  A value that sets who pays the cost of the request and the cost associated with data download from the S3 bucket. If this value is set to <code>true</code>, the requester pays the costs; otherwise, the S3 bucket owner pays. However, the S3 bucket owner always pays the cost of storing data. <note>  <code>RequesterPays</code> is a configuration for the S3 bucket that backs the file share, so make sure that the configuration on the file share is the same as the S3 bucket configuration. </note> Valid Values: <code>true</code> | <code>false</code> <br/>GuessMIMETypeEnabled:  A value that enables guessing of the MIME type for uploaded objects based on file extensions. Set this value to <code>true</code> to enable MIME type guessing, otherwise set to <code>false</code>. The default value is <code>true</code>. Valid Values: <code>true</code> | <code>false</code> <br/>ReadOnly:  A value that sets the write status of a file share. Set this value to <code>true</code> to set the write status to read-only, otherwise set to <code>false</code>. Valid Values: <code>true</code> | <code>false</code> <br/>Squash:  A value that maps a user to anonymous user. Valid values are the following: <ul> <li>  <code>RootSquash</code>: Only root is mapped to anonymous user. </li> <li>  <code>NoSquash</code>: No one is mapped to anonymous user. </li> <li>  <code>AllSquash</code>: Everyone is mapped to anonymous user. </li> </ul><br/>ClientList:  The list of clients that are allowed to access the S3 File Gateway. The list must contain either valid IP addresses or valid CIDR blocks.<br/>ObjectACL:  A value that sets the access control list (ACL) permission for objects in the S3 bucket that a S3 File Gateway puts objects into. The default value is <code>private</code>.<br/>DefaultStorageClass:  The default storage class for objects put into an Amazon S3 bucket by the S3 File Gateway. The default value is <code>S3_INTELLIGENT_TIERING</code>. Optional. Valid Values: <code>S3_STANDARD</code> | <code>S3_INTELLIGENT_TIERING</code> | <code>S3_STANDARD_IA</code> | <code>S3_ONEZONE_IA</code> <br/>LocationARN:  The ARN of the backend storage used for storing file data. A prefix name can be added to the S3 bucket name. It must end with a "/". <note> You can specify a bucket attached to an access point using a complete ARN that includes the bucket region as shown:  <code>arn:aws:s3:<i>region</i>:<i>account-id</i>:accesspoint/<i>access-point-name</i> </code>  If you specify a bucket attached to an access point, the bucket policy must be configured to delegate access control to the access point. For information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points-policies.html#access-points-delegating-control">Delegating access control to access points</a> in the <i>Amazon S3 User Guide</i>. </note><br/>Role:  The ARN of the Identity and Access Management (IAM) role that an S3 File Gateway assumes when it accesses the underlying storage.<br/>KMSKey:  The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric CMKs. This value can only be set when <code>KMSEncrypted</code> is <code>true</code>. Optional.<br/>KMSEncrypted:  Set to <code>true</code> to use Amazon S3 server-side encryption with your own KMS key, or <code>false</code> to use a key managed by Amazon S3. Optional. Valid Values: <code>true</code> | <code>false</code> <br/>GatewayARN:  The Amazon Resource Name (ARN) of the S3 File Gateway on which you want to create a file share.<br/>NFSFileShareDefaults:  File share default values. Optional.:<br/>ClientToken:  A unique string value that you supply that is used by S3 File Gateway to ensure idempotent file share creation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> The default owner ID for files in the file share (unless the files have another owner ID specified). The default value is <code>nfsnobody</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GroupId</i> The default group ID for the file share (unless the files have another group ID specified). The default value is <code>nfsnobody</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DirectoryMode</i> The Unix directory mode in the form "nnnn". For example, <code>0666</code> represents the default access mode for all directories inside the file share. The default value is <code>0777</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FileMode</i> The Unix file mode in the form "nnnn". For example, <code>0666</code> represents the default file mode inside the file share. The default value is <code>0666</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheStaleTimeoutInSeconds</i> Refreshes a file share's cache by using Time To Live (TTL). TTL is the length of time since the last refresh after which access to the directory would cause the file gateway to first refresh that directory's contents from the Amazon S3 bucket or Amazon FSx file system. The TTL duration is in seconds. Valid Values:0, 300 to 2,592,000 seconds (5 minutes to 30 days)<br/>
        :return: FileShareARN:  The Amazon Resource Name (ARN) of the newly created file share.<br/>        """
        pass

    def create_smb_file_share(self, LocationARN: str, Role: str, GatewayARN: str, ClientToken: str, KMSEncrypted: Boolean=None, KMSKey: str=None, DefaultStorageClass: str=None, ObjectACL: str=None, ReadOnly: Boolean=None, GuessMIMETypeEnabled: Boolean=None, RequesterPays: Boolean=None, SMBACLEnabled: Boolean=None, AccessBasedEnumeration: Boolean=None, AdminUserList: List[UserListUser]=None, ValidUserList: List[UserListUser]=None, InvalidUserList: List[UserListUser]=None, AuditDestinationARN: str=None, Authentication: str=None, CaseSensitivity: str=None, Tags: List[Tag]=None, FileShareName: str=None, CacheAttributes: CacheAttributes=None, NotificationPolicy: str=None, VPCEndpointDNSName: str=None, BucketRegion: str=None, OplocksEnabled: Boolean=None) -> CreateSMBFileShareOutput:
        r"""Creates a Server Message Block (SMB) file share on an existing S3 File Gateway. In Storage Gateway, a file share is a file system mount point backed by Amazon S3 cloud storage. Storage Gateway exposes file shares using an SMB interface. This operation is only supported for S3 File Gateways. <important> S3 File Gateways require Security Token Service (STS) to be activated to enable you to create a file share. Make sure that STS is activated in the Region you are creating your S3 File Gateway in. If STS is not activated in this Region, activate it. For information about how to activate STS, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html">Activating and deactivating STS in an Region</a> in the <i>Identity and Access Management User Guide</i>. File gateways don't support creating hard or symbolic links on a file share. </important>

        :param self:
        :param OplocksEnabled:  Specifies whether opportunistic locking is enabled for the SMB file share. <note> Enabling opportunistic locking on case-sensitive shares is not recommended for workloads that involve access to files with the same name in different case. </note> Valid Values: <code>true</code> | <code>false</code> <br/>BucketRegion:  Specifies the Region of the S3 bucket where the SMB file share stores files. <note> This parameter is required for SMB file shares that connect to Amazon S3 through a VPC endpoint, a VPC access point, or an access point alias that points to a VPC access point. </note><br/>VPCEndpointDNSName:  Specifies the DNS name for the VPC endpoint that the SMB file share uses to connect to Amazon S3. <note> This parameter is required for SMB file shares that connect to Amazon S3 through a VPC endpoint, a VPC access point, or an access point alias that points to a VPC access point. </note><br/>NotificationPolicy:  The notification policy of the file share. <code>SettlingTimeInSeconds</code> controls the number of seconds to wait after the last point in time a client wrote to a file before generating an <code>ObjectUploaded</code> notification. Because clients can make many small writes to files, it's best to set this parameter for as long as possible to avoid generating multiple notifications for the same file in a small time period. <note>  <code>SettlingTimeInSeconds</code> has no effect on the timing of the object uploading to Amazon S3, only the timing of the notification. </note> The following example sets <code>NotificationPolicy</code> on with <code>SettlingTimeInSeconds</code> set to 60.  <code>{\"Upload\": {\"SettlingTimeInSeconds\": 60}}</code>  The following example sets <code>NotificationPolicy</code> off.  <code>{}</code> <br/>CacheAttributes:  Specifies refresh cache information for the file share.:<br/>FileShareName:  The name of the file share. Optional. <note>  <code>FileShareName</code> must be set if an S3 prefix name is set in <code>LocationARN</code>. </note><br/>Tags:  A list of up to 50 tags that can be assigned to the NFS file share. Each tag is a key-value pair. <note> Valid characters for key and value are letters, spaces, and numbers representable in UTF-8 format, and the following special characters: + - = . _ : / @. The maximum length of a tag's key is 128 characters, and the maximum length for a tag's value is 256. </note><br/>CaseSensitivity:  The case of an object name in an Amazon S3 bucket. For <code>ClientSpecified</code>, the client determines the case sensitivity. For <code>CaseSensitive</code>, the gateway determines the case sensitivity. The default value is <code>ClientSpecified</code>.<br/>Authentication:  The authentication method that users use to access the file share. The default is <code>ActiveDirectory</code>. Valid Values: <code>ActiveDirectory</code> | <code>GuestAccess</code> <br/>AuditDestinationARN:  The Amazon Resource Name (ARN) of the storage used for audit logs.<br/>InvalidUserList:  A list of users or groups in the Active Directory that are not allowed to access the file share. A group must be prefixed with the @ character. Acceptable formats include: <code>DOMAIN\User1</code>, <code>user1</code>, <code>@group1</code>, and <code>@DOMAIN\group1</code>. Can only be set if Authentication is set to <code>ActiveDirectory</code>.<br/>ValidUserList:  A list of users or groups in the Active Directory that are allowed to access the file <a href=""/> share. A group must be prefixed with the @ character. Acceptable formats include: <code>DOMAIN\User1</code>, <code>user1</code>, <code>@group1</code>, and <code>@DOMAIN\group1</code>. Can only be set if Authentication is set to <code>ActiveDirectory</code>.<br/>AdminUserList:  A list of users or groups in the Active Directory that will be granted administrator privileges on the file share. These users can do all file operations as the super-user. Acceptable formats include: <code>DOMAIN\User1</code>, <code>user1</code>, <code>@group1</code>, and <code>@DOMAIN\group1</code>. <important> Use this option very carefully, because any user in this list can do anything they like on the file share, regardless of file permissions. </important><br/>AccessBasedEnumeration:  The files and folders on this share will only be visible to users with read access.<br/>SMBACLEnabled:  Set this value to <code>true</code> to enable access control list (ACL) on the SMB file share. Set it to <code>false</code> to map file and directory permissions to the POSIX permissions. For more information, see <a href="https://docs.aws.amazon.com/storagegateway/latest/userguide/smb-acl.html">Using Microsoft Windows ACLs to control access to an SMB file share</a> in the <i>Storage Gateway User Guide</i>. Valid Values: <code>true</code> | <code>false</code> <br/>RequesterPays:  A value that sets who pays the cost of the request and the cost associated with data download from the S3 bucket. If this value is set to <code>true</code>, the requester pays the costs; otherwise, the S3 bucket owner pays. However, the S3 bucket owner always pays the cost of storing data. <note>  <code>RequesterPays</code> is a configuration for the S3 bucket that backs the file share, so make sure that the configuration on the file share is the same as the S3 bucket configuration. </note> Valid Values: <code>true</code> | <code>false</code> <br/>GuessMIMETypeEnabled:  A value that enables guessing of the MIME type for uploaded objects based on file extensions. Set this value to <code>true</code> to enable MIME type guessing, otherwise set to <code>false</code>. The default value is <code>true</code>. Valid Values: <code>true</code> | <code>false</code> <br/>ReadOnly:  A value that sets the write status of a file share. Set this value to <code>true</code> to set the write status to read-only, otherwise set to <code>false</code>. Valid Values: <code>true</code> | <code>false</code> <br/>ObjectACL:  A value that sets the access control list (ACL) permission for objects in the S3 bucket that a S3 File Gateway puts objects into. The default value is <code>private</code>.<br/>DefaultStorageClass:  The default storage class for objects put into an Amazon S3 bucket by the S3 File Gateway. The default value is <code>S3_INTELLIGENT_TIERING</code>. Optional. Valid Values: <code>S3_STANDARD</code> | <code>S3_INTELLIGENT_TIERING</code> | <code>S3_STANDARD_IA</code> | <code>S3_ONEZONE_IA</code> <br/>LocationARN:  The ARN of the backend storage used for storing file data. A prefix name can be added to the S3 bucket name. It must end with a "/". <note> You can specify a bucket attached to an access point using a complete ARN that includes the bucket region as shown:  <code>arn:aws:s3:<i>region</i>:<i>account-id</i>:accesspoint/<i>access-point-name</i> </code>  If you specify a bucket attached to an access point, the bucket policy must be configured to delegate access control to the access point. For information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points-policies.html#access-points-delegating-control">Delegating access control to access points</a> in the <i>Amazon S3 User Guide</i>. </note><br/>Role:  The ARN of the Identity and Access Management (IAM) role that an S3 File Gateway assumes when it accesses the underlying storage.<br/>KMSKey:  The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric CMKs. This value can only be set when <code>KMSEncrypted</code> is <code>true</code>. Optional.<br/>KMSEncrypted:  Set to <code>true</code> to use Amazon S3 server-side encryption with your own KMS key, or <code>false</code> to use a key managed by Amazon S3. Optional. Valid Values: <code>true</code> | <code>false</code> <br/>GatewayARN:  The ARN of the S3 File Gateway on which you want to create a file share.<br/>ClientToken:  A unique string value that you supply that is used by S3 File Gateway to ensure idempotent file share creation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheStaleTimeoutInSeconds</i> Refreshes a file share's cache by using Time To Live (TTL). TTL is the length of time since the last refresh after which access to the directory would cause the file gateway to first refresh that directory's contents from the Amazon S3 bucket or Amazon FSx file system. The TTL duration is in seconds. Valid Values:0, 300 to 2,592,000 seconds (5 minutes to 30 days)<br/>
        :return: FileShareARN:  The Amazon Resource Name (ARN) of the newly created file share.<br/>        """
        pass

    def create_snapshot(self, SnapshotDescription: str, VolumeARN: str, Tags: List[Tag]=None) -> CreateSnapshotOutput:
        r"""Initiates a snapshot of a volume. Storage Gateway provides the ability to back up point-in-time snapshots of your data to Amazon Simple Storage (Amazon S3) for durable off-site recovery, and also import the data to an Amazon Elastic Block Store (EBS) volume in Amazon Elastic Compute Cloud (EC2). You can take snapshots of your gateway volume on a scheduled or ad hoc basis. This API enables you to take an ad hoc snapshot. For more information, see <a href="https://docs.aws.amazon.com/storagegateway/latest/userguide/managing-volumes.html#SchedulingSnapshot">Editing a snapshot schedule</a>. In the <code>CreateSnapshot</code> request, you identify the volume by providing its Amazon Resource Name (ARN). You must also provide description for the snapshot. When Storage Gateway takes the snapshot of specified volume, the snapshot and description appears in the Storage Gateway console. In response, Storage Gateway returns you a snapshot ID. You can use this snapshot ID to check the snapshot progress or later use it when you want to create a volume from a snapshot. This operation is only supported in stored and cached volume gateway type. <note> To list or delete a snapshot, you must use the Amazon EC2 API. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeSnapshots.html">DescribeSnapshots</a> or <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeleteSnapshot.html">DeleteSnapshot</a> in the <i>Amazon Elastic Compute Cloud API Reference</i>. </note> <important> Volume and snapshot IDs are changing to a longer length ID format. For more information, see the important note on the <a href="https://docs.aws.amazon.com/storagegateway/latest/APIReference/Welcome.html">Welcome</a> page. </important>

        :param self:
        :param Tags:  A list of up to 50 tags that can be assigned to a snapshot. Each tag is a key-value pair. <note> Valid characters for key and value are letters, spaces, and numbers representable in UTF-8 format, and the following special characters: + - = . _ : / @. The maximum length of a tag's key is 128 characters, and the maximum length for a tag's value is 256. </note><br/>SnapshotDescription:  Textual description of the snapshot that appears in the Amazon EC2 console, Elastic Block Store snapshots panel in the <b>Description</b> field, and in the Storage Gateway snapshot <b>Details</b> pane, <b>Description</b> field.<br/>VolumeARN:  The Amazon Resource Name (ARN) of the volume. Use the <a>ListVolumes</a> operation to return a list of gateway volumes.<br/>
        :return: SnapshotId:  The snapshot ID that is used to refer to the snapshot in future operations such as describing snapshots (Amazon Elastic Compute Cloud API <code>DescribeSnapshots</code>) or creating a volume from a snapshot (<a>CreateStorediSCSIVolume</a>).<br/>VolumeARN:  The Amazon Resource Name (ARN) of the volume of which the snapshot was taken.<br/>        """
        pass

    def create_snapshot_from_volume_recovery_point(self, SnapshotDescription: str, VolumeARN: str, Tags: List[Tag]=None) -> CreateSnapshotFromVolumeRecoveryPointOutput:
        r"""Initiates a snapshot of a gateway from a volume recovery point. This operation is only supported in the cached volume gateway type. A volume recovery point is a point in time at which all data of the volume is consistent and from which you can create a snapshot. To get a list of volume recovery point for cached volume gateway, use <a>ListVolumeRecoveryPoints</a>. In the <code>CreateSnapshotFromVolumeRecoveryPoint</code> request, you identify the volume by providing its Amazon Resource Name (ARN). You must also provide a description for the snapshot. When the gateway takes a snapshot of the specified volume, the snapshot and its description appear in the Storage Gateway console. In response, the gateway returns you a snapshot ID. You can use this snapshot ID to check the snapshot progress or later use it when you want to create a volume from a snapshot. <note> To list or delete a snapshot, you must use the Amazon EC2 API. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeSnapshots.html">DescribeSnapshots</a> or <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeleteSnapshot.html">DeleteSnapshot</a> in the <i>Amazon Elastic Compute Cloud API Reference</i>. </note>

        :param self:
        :param Tags:  A list of up to 50 tags that can be assigned to a snapshot. Each tag is a key-value pair. <note> Valid characters for key and value are letters, spaces, and numbers representable in UTF-8 format, and the following special characters: + - = . _ : / @. The maximum length of a tag's key is 128 characters, and the maximum length for a tag's value is 256. </note><br/>SnapshotDescription:  Textual description of the snapshot that appears in the Amazon EC2 console, Elastic Block Store snapshots panel in the <b>Description</b> field, and in the Storage Gateway snapshot <b>Details</b> pane, <b>Description</b> field.<br/>VolumeARN:  The Amazon Resource Name (ARN) of the iSCSI volume target. Use the <a>DescribeStorediSCSIVolumes</a> operation to return to retrieve the TargetARN for specified VolumeARN.<br/>
        :return: VolumeRecoveryPointTime:  The time the volume was created from the recovery point.<br/>VolumeARN:  The Amazon Resource Name (ARN) of the iSCSI volume target. Use the <a>DescribeStorediSCSIVolumes</a> operation to return to retrieve the TargetARN for specified VolumeARN.<br/>SnapshotId:  The ID of the snapshot.<br/>        """
        pass

    def create_stored_iscsi_volume(self, NetworkInterfaceId: str, TargetName: str, PreserveExistingData: boolean, DiskId: str, GatewayARN: str, SnapshotId: str=None, KMSEncrypted: Boolean=None, KMSKey: str=None, Tags: List[Tag]=None) -> CreateStorediSCSIVolumeOutput:
        r"""Creates a volume on a specified gateway. This operation is only supported in the stored volume gateway type. The size of the volume to create is inferred from the disk size. You can choose to preserve existing data on the disk, create volume from an existing snapshot, or create an empty volume. If you choose to create an empty gateway volume, then any existing data on the disk is erased. In the request, you must specify the gateway and the disk information on which you are creating the volume. In response, the gateway creates the volume and returns volume information such as the volume Amazon Resource Name (ARN), its size, and the iSCSI target ARN that initiators can use to connect to the volume target.

        :param self:
        :param Tags:  A list of up to 50 tags that can be assigned to a stored volume. Each tag is a key-value pair. <note> Valid characters for key and value are letters, spaces, and numbers representable in UTF-8 format, and the following special characters: + - = . _ : / @. The maximum length of a tag's key is 128 characters, and the maximum length for a tag's value is 256. </note><br/>KMSKey:  The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric CMKs. This value can only be set when <code>KMSEncrypted</code> is <code>true</code>. Optional.<br/>KMSEncrypted:  Set to <code>true</code> to use Amazon S3 server-side encryption with your own KMS key, or <code>false</code> to use a key managed by Amazon S3. Optional. Valid Values: <code>true</code> | <code>false</code> <br/>NetworkInterfaceId:  The network interface of the gateway on which to expose the iSCSI target. Only IPv4 addresses are accepted. Use <a>DescribeGatewayInformation</a> to get a list of the network interfaces available on a gateway. Valid Values: A valid IP address.<br/>TargetName:  The name of the iSCSI target used by an initiator to connect to a volume and used as a suffix for the target ARN. For example, specifying <code>TargetName</code> as <i>myvolume</i> results in the target ARN of <code>arn:aws:storagegateway:us-east-2:111122223333:gateway/sgw-12A3456B/target/iqn.1997-05.com.amazon:myvolume</code>. The target name must be unique across all volumes on a gateway. If you don't specify a value, Storage Gateway uses the value that was previously used for this volume as the new target name.<br/>PreserveExistingData:  Set to <code>true</code> if you want to preserve the data on the local disk. Otherwise, set to <code>false</code> to create an empty volume. Valid Values: <code>true</code> | <code>false</code> <br/>SnapshotId:  The snapshot ID (e.g., "snap-1122aabb") of the snapshot to restore as the new stored volume. Specify this field if you want to create the iSCSI storage volume from a snapshot; otherwise, do not include this field. To list snapshots for your account use <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeSnapshots.html">DescribeSnapshots</a> in the <i>Amazon Elastic Compute Cloud API Reference</i>.<br/>DiskId:  The unique identifier for the gateway local disk that is configured as a stored volume. Use <a href="https://docs.aws.amazon.com/storagegateway/latest/userguide/API_ListLocalDisks.html">ListLocalDisks</a> to list disk IDs for a gateway.<br/>GatewayARN:  The Amazon Resource Name (ARN) of the gateway. Use the <a>ListGateways</a> operation to return a list of gateways for your account and Region.<br/>
        :return: TargetARN:  The Amazon Resource Name (ARN) of the volume target, which includes the iSCSI name that initiators can use to connect to the target.<br/>VolumeSizeInBytes:  The size of the volume in bytes.<br/>VolumeARN:  The Amazon Resource Name (ARN) of the configured volume.<br/>        """
        pass

    def create_tape_pool(self, StorageClass: str, PoolName: str, RetentionLockType: str=None, RetentionLockTimeInDays: int=None, Tags: List[Tag]=None) -> CreateTapePoolOutput:
        r"""Creates a new custom tape pool. You can use custom tape pool to enable tape retention lock on tapes that are archived in the custom pool.

        :param self:
        :param Tags:  A list of up to 50 tags that can be assigned to tape pool. Each tag is a key-value pair. <note> Valid characters for key and value are letters, spaces, and numbers representable in UTF-8 format, and the following special characters: + - = . _ : / @. The maximum length of a tag's key is 128 characters, and the maximum length for a tag's value is 256. </note><br/>RetentionLockTimeInDays:  Tape retention lock time is set in days. Tape retention lock can be enabled for up to 100 years (36,500 days).<br/>RetentionLockType:  Tape retention lock can be configured in two modes. When configured in governance mode, accounts with specific IAM permissions are authorized to remove the tape retention lock from archived virtual tapes. When configured in compliance mode, the tape retention lock cannot be removed by any user, including the root account.<br/>StorageClass:  The storage class that is associated with the new custom pool. When you use your backup application to eject the tape, the tape is archived directly into the storage class (S3 Glacier or S3 Glacier Deep Archive) that corresponds to the pool.<br/>PoolName:  The name of the new custom tape pool.<br/>
        :return: PoolARN:  The unique Amazon Resource Name (ARN) that represents the custom tape pool. Use the <a>ListTapePools</a> operation to return a list of tape pools for your account and Region.<br/>        """
        pass

    def create_tape_with_barcode(self, TapeBarcode: str, TapeSizeInBytes: TapeSize, GatewayARN: str, KMSEncrypted: Boolean=None, KMSKey: str=None, PoolId: str=None, Worm: boolean=None, Tags: List[Tag]=None) -> CreateTapeWithBarcodeOutput:
        r"""Creates a virtual tape by using your own barcode. You write data to the virtual tape and then archive the tape. A barcode is unique and cannot be reused if it has already been used on a tape. This applies to barcodes used on deleted tapes. This operation is only supported in the tape gateway type. <note> Cache storage must be allocated to the gateway before you can create a virtual tape. Use the <a>AddCache</a> operation to add cache storage to a gateway. </note>

        :param self:
        :param Tags:  A list of up to 50 tags that can be assigned to a virtual tape that has a barcode. Each tag is a key-value pair. <note> Valid characters for key and value are letters, spaces, and numbers representable in UTF-8 format, and the following special characters: + - = . _ : / @. The maximum length of a tag's key is 128 characters, and the maximum length for a tag's value is 256. </note><br/>Worm:  Set to <code>TRUE</code> if the tape you are creating is to be configured as a write-once-read-many (WORM) tape.<br/>PoolId:  The ID of the pool that you want to add your tape to for archiving. The tape in this pool is archived in the S3 storage class that is associated with the pool. When you use your backup application to eject the tape, the tape is archived directly into the storage class (S3 Glacier or S3 Deep Archive) that corresponds to the pool. Valid Values: <code>GLACIER</code> | <code>DEEP_ARCHIVE</code> <br/>KMSKey:  The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric CMKs. This value can only be set when <code>KMSEncrypted</code> is <code>true</code>. Optional.<br/>KMSEncrypted:  Set to <code>true</code> to use Amazon S3 server-side encryption with your own KMS key, or <code>false</code> to use a key managed by Amazon S3. Optional. Valid Values: <code>true</code> | <code>false</code> <br/>TapeBarcode:  The barcode that you want to assign to the tape. <note> Barcodes cannot be reused. This includes barcodes used for tapes that have been deleted. </note><br/>TapeSizeInBytes:  The size, in bytes, of the virtual tape that you want to create. <note> The size must be aligned by gigabyte (1024*1024*1024 bytes). </note><br/>GatewayARN:  The unique Amazon Resource Name (ARN) that represents the gateway to associate the virtual tape with. Use the <a>ListGateways</a> operation to return a list of gateways for your account and Region.<br/>
        :return: TapeARN:  A unique Amazon Resource Name (ARN) that represents the virtual tape that was created.<br/>        """
        pass

    def create_tapes(self, TapeBarcodePrefix: str, NumTapesToCreate: int, ClientToken: str, TapeSizeInBytes: TapeSize, GatewayARN: str, KMSEncrypted: Boolean=None, KMSKey: str=None, PoolId: str=None, Worm: boolean=None, Tags: List[Tag]=None) -> CreateTapesOutput:
        r"""Creates one or more virtual tapes. You write data to the virtual tapes and then archive the tapes. This operation is only supported in the tape gateway type. <note> Cache storage must be allocated to the gateway before you can create virtual tapes. Use the <a>AddCache</a> operation to add cache storage to a gateway. </note>

        :param self:
        :param Tags:  A list of up to 50 tags that can be assigned to a virtual tape. Each tag is a key-value pair. <note> Valid characters for key and value are letters, spaces, and numbers representable in UTF-8 format, and the following special characters: + - = . _ : / @. The maximum length of a tag's key is 128 characters, and the maximum length for a tag's value is 256. </note><br/>Worm:  Set to <code>TRUE</code> if the tape you are creating is to be configured as a write-once-read-many (WORM) tape.<br/>PoolId:  The ID of the pool that you want to add your tape to for archiving. The tape in this pool is archived in the S3 storage class that is associated with the pool. When you use your backup application to eject the tape, the tape is archived directly into the storage class (S3 Glacier or S3 Glacier Deep Archive) that corresponds to the pool. Valid Values: <code>GLACIER</code> | <code>DEEP_ARCHIVE</code> <br/>KMSKey:  The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric CMKs. This value can only be set when <code>KMSEncrypted</code> is <code>true</code>. Optional.<br/>KMSEncrypted:  Set to <code>true</code> to use Amazon S3 server-side encryption with your own KMS key, or <code>false</code> to use a key managed by Amazon S3. Optional. Valid Values: <code>true</code> | <code>false</code> <br/>TapeBarcodePrefix:  A prefix that you append to the barcode of the virtual tape you are creating. This prefix makes the barcode unique. <note> The prefix must be 1-4 characters in length and must be one of the uppercase letters from A to Z. </note><br/>NumTapesToCreate:  The number of virtual tapes that you want to create.<br/>ClientToken:  A unique identifier that you use to retry a request. If you retry a request, use the same <code>ClientToken</code> you specified in the initial request. <note> Using the same <code>ClientToken</code> prevents creating the tape multiple times. </note><br/>TapeSizeInBytes:  The size, in bytes, of the virtual tapes that you want to create. <note> The size must be aligned by gigabyte (1024*1024*1024 bytes). </note><br/>GatewayARN:  The unique Amazon Resource Name (ARN) that represents the gateway to associate the virtual tapes with. Use the <a>ListGateways</a> operation to return a list of gateways for your account and Region.<br/>
        :return: TapeARNs:  A list of unique Amazon Resource Names (ARNs) that represents the virtual tapes that were created.<br/>        """
        pass

    def delete_automatic_tape_creation_policy(self, GatewayARN: str) -> DeleteAutomaticTapeCreationPolicyOutput:
        r"""Deletes the automatic tape creation policy of a gateway. If you delete this policy, new virtual tapes must be created manually. Use the Amazon Resource Name (ARN) of the gateway in your request to remove the policy.

        :param self:
        :param GatewayARN:  The Amazon Resource Name (ARN) of the gateway. Use the <a>ListGateways</a> operation to return a list of gateways for your account and Region.<br/>
        :return: GatewayARN:  The Amazon Resource Name (ARN) of the gateway. Use the <a>ListGateways</a> operation to return a list of gateways for your account and Region.<br/>        """
        pass

    def delete_bandwidth_rate_limit(self, BandwidthType: str, GatewayARN: str) -> DeleteBandwidthRateLimitOutput:
        r"""Deletes the bandwidth rate limits of a gateway. You can delete either the upload and download bandwidth rate limit, or you can delete both. If you delete only one of the limits, the other limit remains unchanged. To specify which gateway to work with, use the Amazon Resource Name (ARN) of the gateway in your request. This operation is supported for the stored volume, cached volume and tape gateway types.

        :param self:
        :param BandwidthType:  One of the BandwidthType values that indicates the gateway bandwidth rate limit to delete. Valid Values: <code>UPLOAD</code> | <code>DOWNLOAD</code> | <code>ALL</code> <br/>GatewayARN:  The Amazon Resource Name (ARN) of the gateway. Use the <a>ListGateways</a> operation to return a list of gateways for your account and Region.<br/>
        :return: GatewayARN:  The Amazon Resource Name (ARN) of the gateway. Use the <a>ListGateways</a> operation to return a list of gateways for your account and Region.<br/>        """
        pass

    def delete_chap_credentials(self, InitiatorName: str, TargetARN: str) -> DeleteChapCredentialsOutput:
        r"""Deletes Challenge-Handshake Authentication Protocol (CHAP) credentials for a specified iSCSI target and initiator pair. This operation is supported in volume and tape gateway types.

        :param self:
        :param InitiatorName:  The iSCSI initiator that connects to the target.<br/>TargetARN:  The Amazon Resource Name (ARN) of the iSCSI volume target. Use the <a>DescribeStorediSCSIVolumes</a> operation to return to retrieve the TargetARN for specified VolumeARN.<br/>
        :return: InitiatorName:  The iSCSI initiator that connects to the target.<br/>TargetARN:  The Amazon Resource Name (ARN) of the target.<br/>        """
        pass

    def delete_file_share(self, FileShareARN: str, ForceDelete: boolean=None) -> DeleteFileShareOutput:
        r"""Deletes a file share from an S3 File Gateway. This operation is only supported for S3 File Gateways.

        :param self:
        :param ForceDelete:  If this value is set to <code>true</code>, the operation deletes a file share immediately and aborts all data uploads to Amazon Web Services. Otherwise, the file share is not deleted until all data is uploaded to Amazon Web Services. This process aborts the data upload process, and the file share enters the <code>FORCE_DELETING</code> status. Valid Values: <code>true</code> | <code>false</code> <br/>FileShareARN:  The Amazon Resource Name (ARN) of the file share to be deleted.<br/>
        :return: FileShareARN:  The Amazon Resource Name (ARN) of the deleted file share.<br/>        """
        pass

    def delete_gateway(self, GatewayARN: str) -> DeleteGatewayOutput:
        r"""Deletes a gateway. To specify which gateway to delete, use the Amazon Resource Name (ARN) of the gateway in your request. The operation deletes the gateway; however, it does not delete the gateway virtual machine (VM) from your host computer. After you delete a gateway, you cannot reactivate it. Completed snapshots of the gateway volumes are not deleted upon deleting the gateway, however, pending snapshots will not complete. After you delete a gateway, your next step is to remove it from your environment. <important> You no longer pay software charges after the gateway is deleted; however, your existing Amazon EBS snapshots persist and you will continue to be billed for these snapshots. You can choose to remove all remaining Amazon EBS snapshots by canceling your Amazon EC2 subscription.  If you prefer not to cancel your Amazon EC2 subscription, you can delete your snapshots using the Amazon EC2 console. For more information, see the <a href="http://aws.amazon.com/storagegateway">Storage Gateway detail page</a>. </important>

        :param self:
        :param GatewayARN:  The Amazon Resource Name (ARN) of the gateway. Use the <a>ListGateways</a> operation to return a list of gateways for your account and Region.<br/>
        :return: GatewayARN:  The Amazon Resource Name (ARN) of the gateway. Use the <a>ListGateways</a> operation to return a list of gateways for your account and Region.<br/>        """
        pass

    def delete_snapshot_schedule(self, VolumeARN: str) -> DeleteSnapshotScheduleOutput:
        r"""Deletes a snapshot of a volume. You can take snapshots of your gateway volumes on a scheduled or ad hoc basis. This API action enables you to delete a snapshot schedule for a volume. For more information, see <a href="https://docs.aws.amazon.com/storagegateway/latest/userguide/backing-up-volumes.html">Backing up your volumes</a>. In the <code>DeleteSnapshotSchedule</code> request, you identify the volume by providing its Amazon Resource Name (ARN). This operation is only supported in stored and cached volume gateway types. <note> To list or delete a snapshot, you must use the Amazon EC2 API. For more information, go to <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeSnapshots.html">DescribeSnapshots</a> in the <i>Amazon Elastic Compute Cloud API Reference</i>. </note>

        :param self:
        :param VolumeARN:  The volume which snapshot schedule to delete.<br/>
        :return: VolumeARN:  The volume which snapshot schedule was deleted.<br/>        """
        pass

    def delete_tape(self, TapeARN: str, GatewayARN: str, BypassGovernanceRetention: boolean=None) -> DeleteTapeOutput:
        r"""Deletes the specified virtual tape. This operation is only supported in the tape gateway type.

        :param self:
        :param BypassGovernanceRetention:  Set to <code>TRUE</code> to delete an archived tape that belongs to a custom pool with tape retention lock. Only archived tapes with tape retention lock set to <code>governance</code> can be deleted. Archived tapes with tape retention lock set to <code>compliance</code> can't be deleted.<br/>TapeARN:  The Amazon Resource Name (ARN) of the virtual tape to delete.<br/>GatewayARN:  The unique Amazon Resource Name (ARN) of the gateway that the virtual tape to delete is associated with. Use the <a>ListGateways</a> operation to return a list of gateways for your account and Region.<br/>
        :return: TapeARN:  The Amazon Resource Name (ARN) of the deleted virtual tape.<br/>        """
        pass

    def delete_tape_archive(self, TapeARN: str, BypassGovernanceRetention: boolean=None) -> DeleteTapeArchiveOutput:
        r"""Deletes the specified virtual tape from the virtual tape shelf (VTS). This operation is only supported in the tape gateway type.

        :param self:
        :param BypassGovernanceRetention:  Set to <code>TRUE</code> to delete an archived tape that belongs to a custom pool with tape retention lock. Only archived tapes with tape retention lock set to <code>governance</code> can be deleted. Archived tapes with tape retention lock set to <code>compliance</code> can't be deleted.<br/>TapeARN:  The Amazon Resource Name (ARN) of the virtual tape to delete from the virtual tape shelf (VTS).<br/>
        :return: TapeARN:  The Amazon Resource Name (ARN) of the virtual tape that was deleted from the virtual tape shelf (VTS).<br/>        """
        pass

    def delete_tape_pool(self, PoolARN: str) -> DeleteTapePoolOutput:
        r"""Delete a custom tape pool. A custom tape pool can only be deleted if there are no tapes in the pool and if there are no automatic tape creation policies that reference the custom tape pool.

        :param self:
        :param PoolARN:  The Amazon Resource Name (ARN) of the custom tape pool to delete.<br/>
        :return: PoolARN:  The Amazon Resource Name (ARN) of the custom tape pool being deleted.<br/>        """
        pass

    def delete_volume(self, VolumeARN: str) -> DeleteVolumeOutput:
        r"""Deletes the specified storage volume that you previously created using the <a>CreateCachediSCSIVolume</a> or <a>CreateStorediSCSIVolume</a> API. This operation is only supported in the cached volume and stored volume types. For stored volume gateways, the local disk that was configured as the storage volume is not deleted. You can reuse the local disk to create another storage volume. Before you delete a volume, make sure there are no iSCSI connections to the volume you are deleting. You should also make sure there is no snapshot in progress. You can use the Amazon Elastic Compute Cloud (Amazon EC2) API to query snapshots on the volume you are deleting and check the snapshot status. For more information, go to <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeSnapshots.html">DescribeSnapshots</a> in the <i>Amazon Elastic Compute Cloud API Reference</i>. In the request, you must provide the Amazon Resource Name (ARN) of the storage volume you want to delete.

        :param self:
        :param VolumeARN:  The Amazon Resource Name (ARN) of the volume. Use the <a>ListVolumes</a> operation to return a list of gateway volumes.<br/>
        :return: VolumeARN:  The Amazon Resource Name (ARN) of the storage volume that was deleted. It is the same ARN you provided in the request.<br/>        """
        pass

    def describe_availability_monitor_test(self, GatewayARN: str) -> DescribeAvailabilityMonitorTestOutput:
        r"""Returns information about the most recent high availability monitoring test that was performed on the host in a cluster. If a test isn't performed, the status and start time in the response would be null.

        :param self:
        :param GatewayARN:  The Amazon Resource Name (ARN) of the gateway. Use the <a>ListGateways</a> operation to return a list of gateways for your account and Region.<br/>
        :return: StartTime:  The time the high availability monitoring test was started. If a test hasn't been performed, the value of this field is null.<br/>Status:  The status of the high availability monitoring test. If a test hasn't been performed, the value of this field is null.<br/>GatewayARN:  The Amazon Resource Name (ARN) of the gateway. Use the <a>ListGateways</a> operation to return a list of gateways for your account and Region.<br/>        """
        pass

    def describe_bandwidth_rate_limit(self, GatewayARN: str) -> DescribeBandwidthRateLimitOutput:
        r"""Returns the bandwidth rate limits of a gateway. By default, these limits are not set, which means no bandwidth rate limiting is in effect. This operation is supported for the stored volume, cached volume, and tape gateway types. This operation only returns a value for a bandwidth rate limit only if the limit is set. If no limits are set for the gateway, then this operation returns only the gateway ARN in the response body. To specify which gateway to describe, use the Amazon Resource Name (ARN) of the gateway in your request.

        :param self:
        :param GatewayARN:  The Amazon Resource Name (ARN) of the gateway. Use the <a>ListGateways</a> operation to return a list of gateways for your account and Region.<br/>
        :return: AverageDownloadRateLimitInBitsPerSec:  The average download bandwidth rate limit in bits per second. This field does not appear in the response if the download rate limit is not set.<br/>AverageUploadRateLimitInBitsPerSec:  The average upload bandwidth rate limit in bits per second. This field does not appear in the response if the upload rate limit is not set.<br/>GatewayARN:  The Amazon Resource Name (ARN) of the gateway. Use the <a>ListGateways</a> operation to return a list of gateways for your account and Region.<br/>        """
        pass

    def describe_bandwidth_rate_limit_schedule(self, GatewayARN: str) -> DescribeBandwidthRateLimitScheduleOutput:
        r""" Returns information about the bandwidth rate limit schedule of a gateway. By default, gateways do not have bandwidth rate limit schedules, which means no bandwidth rate limiting is in effect. This operation is supported only in the volume and tape gateway types.  This operation returns information about a gateway's bandwidth rate limit schedule. A bandwidth rate limit schedule consists of one or more bandwidth rate limit intervals. A bandwidth rate limit interval defines a period of time on one or more days of the week, during which bandwidth rate limits are specified for uploading, downloading, or both.   A bandwidth rate limit interval consists of one or more days of the week, a start hour and minute, an ending hour and minute, and bandwidth rate limits for uploading and downloading   If no bandwidth rate limit schedule intervals are set for the gateway, this operation returns an empty response. To specify which gateway to describe, use the Amazon Resource Name (ARN) of the gateway in your request.

        :param self:
        :param GatewayARN:  The Amazon Resource Name (ARN) of the gateway. Use the <a>ListGateways</a> operation to return a list of gateways for your account and Region.<br/>
        :return: BandwidthRateLimitIntervals:   An array that contains the bandwidth rate limit intervals for a tape or volume gateway. <br/>GatewayARN:  The Amazon Resource Name (ARN) of the gateway. Use the <a>ListGateways</a> operation to return a list of gateways for your account and Region.<br/>        """
        pass

    def describe_cache(self, GatewayARN: str) -> DescribeCacheOutput:
        r"""Returns information about the cache of a gateway. This operation is only supported in the cached volume, tape, and file gateway types. The response includes disk IDs that are configured as cache, and it includes the amount of cache allocated and used.

        :param self:
        :param GatewayARN:  The Amazon Resource Name (ARN) of the gateway. Use the <a>ListGateways</a> operation to return a list of gateways for your account and Region.<br/>
        :return: CacheMissPercentage:  Percent of application read operations from the file shares that are not served from cache. The sample is taken at the end of the reporting period.<br/>CacheHitPercentage:  Percent of application read operations from the file shares that are served from cache. The sample is taken at the end of the reporting period.<br/>CacheDirtyPercentage:  The file share's contribution to the overall percentage of the gateway's cache that has not been persisted to Amazon Web Services. The sample is taken at the end of the reporting period.<br/>CacheUsedPercentage:  Percent use of the gateway's cache storage. This metric applies only to the gateway-cached volume setup. The sample is taken at the end of the reporting period.<br/>CacheAllocatedInBytes:  The amount of cache in bytes allocated to a gateway.<br/>DiskIds:  An array of strings that identify disks that are to be configured as working storage. Each string has a minimum length of 1 and maximum length of 300. You can get the disk IDs from the <a>ListLocalDisks</a> API.<br/>GatewayARN:  The Amazon Resource Name (ARN) of the gateway. Use the <a>ListGateways</a> operation to return a list of gateways for your account and Region.<br/>        """
        pass

    def describe_cached_iscsi_volumes(self, VolumeARNs: List[VolumeARN]) -> DescribeCachediSCSIVolumesOutput:
        r"""Returns a description of the gateway volumes specified in the request. This operation is only supported in the cached volume gateway types. The list of gateway volumes in the request must be from one gateway. In the response, Storage Gateway returns volume information sorted by volume Amazon Resource Name (ARN).

        :param self:
        :param VolumeARNs:  An array of strings where each string represents the Amazon Resource Name (ARN) of a cached volume. All of the specified cached volumes must be from the same gateway. Use <a>ListVolumes</a> to get volume ARNs for a gateway.<br/>
        :return: CachediSCSIVolumes:  An array of objects where each object contains metadata about one cached volume.<br/>        """
        pass

    def describe_chap_credentials(self, TargetARN: str) -> DescribeChapCredentialsOutput:
        r"""Returns an array of Challenge-Handshake Authentication Protocol (CHAP) credentials information for a specified iSCSI target, one for each target-initiator pair. This operation is supported in the volume and tape gateway types.

        :param self:
        :param TargetARN:  The Amazon Resource Name (ARN) of the iSCSI volume target. Use the <a>DescribeStorediSCSIVolumes</a> operation to return to retrieve the TargetARN for specified VolumeARN.<br/>
        :return: ChapCredentials:  An array of <a>ChapInfo</a> objects that represent CHAP credentials. Each object in the array contains CHAP credential information for one target-initiator pair. If no CHAP credentials are set, an empty array is returned. CHAP credential information is provided in a JSON object with the following fields: <ul> <li>  <b>InitiatorName</b>: The iSCSI initiator that connects to the target. </li> <li>  <b>SecretToAuthenticateInitiator</b>: The secret key that the initiator (for example, the Windows client) must provide to participate in mutual CHAP with the target. </li> <li>  <b>SecretToAuthenticateTarget</b>: The secret key that the target must provide to participate in mutual CHAP with the initiator (e.g. Windows client). </li> <li>  <b>TargetARN</b>: The Amazon Resource Name (ARN) of the storage volume. </li> </ul><br/>        """
        pass

    def describe_file_system_associations(self, FileSystemAssociationARNList: List[FileSystemAssociationARN]) -> DescribeFileSystemAssociationsOutput:
        r"""Gets the file system association information. This operation is only supported for FSx File Gateways.

        :param self:
        :param FileSystemAssociationARNList:  An array containing the Amazon Resource Name (ARN) of each file system association to be described.<br/>
        :return: FileSystemAssociationInfoList:  An array containing the <code>FileSystemAssociationInfo</code> data type of each file system association to be described. <br/>        """
        pass

    def describe_gateway_information(self, GatewayARN: str) -> DescribeGatewayInformationOutput:
        r"""Returns metadata about a gateway such as its name, network interfaces, configured time zone, and the state (whether the gateway is running or not). To specify which gateway to describe, use the Amazon Resource Name (ARN) of the gateway in your request.

        :param self:
        :param GatewayARN:  The Amazon Resource Name (ARN) of the gateway. Use the <a>ListGateways</a> operation to return a list of gateways for your account and Region.<br/>
        :return: SupportedGatewayCapacities:  A list of the metadata cache sizes that the gateway can support based on its current hardware specifications.<br/>GatewayCapacity:  Specifies the size of the gateway's metadata cache.<br/>DeprecationDate:  Date after which this gateway will not receive software updates for new features and bug fixes.<br/>SoftwareUpdatesEndDate:  Date after which this gateway will not receive software updates for new features.<br/>EndpointType:  The type of endpoint for your gateway. Valid Values: <code>STANDARD</code> | <code>FIPS</code> <br/>HostEnvironment:  The type of hypervisor environment used by the host.<br/>CloudWatchLogGroupARN:  The Amazon Resource Name (ARN) of the Amazon CloudWatch log group that is used to monitor events in the gateway.<br/>VPCEndpoint:  The configuration settings for the virtual private cloud (VPC) endpoint for your gateway.<br/>Tags:  A list of up to 50 tags assigned to the gateway, sorted alphabetically by key name. Each tag is a key-value pair. For a gateway with more than 10 tags assigned, you can view all tags using the <code>ListTagsForResource</code> API operation.<br/>Ec2InstanceRegion:  The Region where the Amazon EC2 instance is located.<br/>Ec2InstanceId:  The ID of the Amazon EC2 instance that was used to launch the gateway.<br/>LastSoftwareUpdate:  The date on which the last software update was applied to the gateway. If the gateway has never been updated, this field does not return a value in the response.<br/>NextUpdateAvailabilityDate:  The date on which an update to the gateway is available. This date is in the time zone of the gateway. If the gateway is not available for an update this field is not returned in the response.<br/>GatewayType:  The type of the gateway.<br/>GatewayNetworkInterfaces:  A <a>NetworkInterface</a> array that contains descriptions of the gateway network interfaces.<br/>GatewayState:  A value that indicates the operating state of the gateway.<br/>GatewayTimezone:  A value that indicates the time zone configured for the gateway.<br/>GatewayName:  The name you configured for your gateway.<br/>GatewayId:  The unique identifier assigned to your gateway during activation. This ID becomes part of the gateway Amazon Resource Name (ARN), which you use as input for other operations.<br/>GatewayARN:  The Amazon Resource Name (ARN) of the gateway. Use the <a>ListGateways</a> operation to return a list of gateways for your account and Region.<br/>        """
        pass

    def describe_maintenance_start_time(self, GatewayARN: str) -> DescribeMaintenanceStartTimeOutput:
        r"""Returns your gateway's weekly maintenance start time including the day and time of the week. Note that values are in terms of the gateway's time zone.

        :param self:
        :param GatewayARN:  The Amazon Resource Name (ARN) of the gateway. Use the <a>ListGateways</a> operation to return a list of gateways for your account and Region.<br/>
        :return: Timezone:  A value that indicates the time zone that is set for the gateway. The start time and day of week specified should be in the time zone of the gateway.<br/>DayOfMonth:  The day of the month component of the maintenance start time represented as an ordinal number from 1 to 28, where 1 represents the first day of the month and 28 represents the last day of the month.<br/>DayOfWeek:  An ordinal number between 0 and 6 that represents the day of the week, where 0 represents Sunday and 6 represents Saturday. The day of week is in the time zone of the gateway.<br/>MinuteOfHour:  The minute component of the maintenance start time represented as <i>mm</i>, where <i>mm</i> is the minute (0 to 59). The minute of the hour is in the time zone of the gateway.<br/>HourOfDay:  The hour component of the maintenance start time represented as <i>hh</i>, where <i>hh</i> is the hour (0 to 23). The hour of the day is in the time zone of the gateway.<br/>GatewayARN:  The Amazon Resource Name (ARN) of the gateway. Use the <a>ListGateways</a> operation to return a list of gateways for your account and Region.<br/>        """
        pass

    def describe_nfs_file_shares(self, FileShareARNList: List[FileShareARN]) -> DescribeNFSFileSharesOutput:
        r"""Gets a description for one or more Network File System (NFS) file shares from an S3 File Gateway. This operation is only supported for S3 File Gateways.

        :param self:
        :param FileShareARNList:  An array containing the Amazon Resource Name (ARN) of each file share to be described.<br/>
        :return: NFSFileShareInfoList:  An array containing a description for each requested file share.<br/>        """
        pass

    def describe_smb_file_shares(self, FileShareARNList: List[FileShareARN]) -> DescribeSMBFileSharesOutput:
        r"""Gets a description for one or more Server Message Block (SMB) file shares from a S3 File Gateway. This operation is only supported for S3 File Gateways.

        :param self:
        :param FileShareARNList:  An array containing the Amazon Resource Name (ARN) of each file share to be described.<br/>
        :return: SMBFileShareInfoList:  An array containing a description for each requested file share.<br/>        """
        pass

    def describe_smb_settings(self, GatewayARN: str) -> DescribeSMBSettingsOutput:
        r"""Gets a description of a Server Message Block (SMB) file share settings from a file gateway. This operation is only supported for file gateways.

        :param self:
        :param GatewayARN:  The Amazon Resource Name (ARN) of the gateway. Use the <a>ListGateways</a> operation to return a list of gateways for your account and Region.<br/>
        :return: FileSharesVisible:  The shares on this gateway appear when listing shares. Only supported for S3 File Gateways. <br/>SMBSecurityStrategy:  The type of security strategy that was specified for file gateway. <ul> <li>  <code>ClientSpecified</code>: If you use this option, requests are established based on what is negotiated by the client. This option is recommended when you want to maximize compatibility across different clients in your environment. Only supported for S3 File Gateways. </li> <li>  <code>MandatorySigning</code>: If you use this option, file gateway only allows connections from SMBv2 or SMBv3 clients that have signing enabled. This option works with SMB clients on Microsoft Windows Vista, Windows Server 2008 or newer. </li> <li>  <code>MandatoryEncryption</code>: If you use this option, file gateway only allows connections from SMBv3 clients that have encryption enabled. This option is highly recommended for environments that handle sensitive data. This option works with SMB clients on Microsoft Windows 8, Windows Server 2012 or newer. </li> </ul><br/>SMBGuestPasswordSet:  This value is <code>true</code> if a password for the guest user <code>smbguest</code> is set, otherwise <code>false</code>. Only supported for S3 File Gateways. Valid Values: <code>true</code> | <code>false</code> <br/>ActiveDirectoryStatus:  Indicates the status of a gateway that is a member of the Active Directory domain. <ul> <li>  <code>ACCESS_DENIED</code>: Indicates that the <code>JoinDomain</code> operation failed due to an authentication error. </li> <li>  <code>DETACHED</code>: Indicates that gateway is not joined to a domain. </li> <li>  <code>JOINED</code>: Indicates that the gateway has successfully joined a domain. </li> <li>  <code>JOINING</code>: Indicates that a <code>JoinDomain</code> operation is in progress. </li> <li>  <code>NETWORK_ERROR</code>: Indicates that <code>JoinDomain</code> operation failed due to a network or connectivity error. </li> <li>  <code>TIMEOUT</code>: Indicates that the <code>JoinDomain</code> operation failed because the operation didn't complete within the allotted time. </li> <li>  <code>UNKNOWN_ERROR</code>: Indicates that the <code>JoinDomain</code> operation failed due to another type of error. </li> </ul><br/>DomainName:  The name of the domain that the gateway is joined to.<br/>GatewayARN:  The Amazon Resource Name (ARN) of the gateway. Use the <a>ListGateways</a> operation to return a list of gateways for your account and Region.<br/>        """
        pass

    def describe_snapshot_schedule(self, VolumeARN: str) -> DescribeSnapshotScheduleOutput:
        r"""Describes the snapshot schedule for the specified gateway volume. The snapshot schedule information includes intervals at which snapshots are automatically initiated on the volume. This operation is only supported in the cached volume and stored volume types.

        :param self:
        :param VolumeARN:  The Amazon Resource Name (ARN) of the volume. Use the <a>ListVolumes</a> operation to return a list of gateway volumes.<br/>
        :return: Tags:  A list of up to 50 tags assigned to the snapshot schedule, sorted alphabetically by key name. Each tag is a key-value pair. For a gateway with more than 10 tags assigned, you can view all tags using the <code>ListTagsForResource</code> API operation.<br/>Timezone:  A value that indicates the time zone of the gateway.<br/>Description:  The snapshot description.<br/>RecurrenceInHours:  The number of hours between snapshots.<br/>StartAt:  The hour of the day at which the snapshot schedule begins represented as <i>hh</i>, where <i>hh</i> is the hour (0 to 23). The hour of the day is in the time zone of the gateway.<br/>VolumeARN:  The Amazon Resource Name (ARN) of the volume that was specified in the request.<br/>        """
        pass

    def describe_stored_iscsi_volumes(self, VolumeARNs: List[VolumeARN]) -> DescribeStorediSCSIVolumesOutput:
        r"""Returns the description of the gateway volumes specified in the request. The list of gateway volumes in the request must be from one gateway. In the response, Storage Gateway returns volume information sorted by volume ARNs. This operation is only supported in stored volume gateway type.

        :param self:
        :param VolumeARNs:  An array of strings where each string represents the Amazon Resource Name (ARN) of a stored volume. All of the specified stored volumes must be from the same gateway. Use <a>ListVolumes</a> to get volume ARNs for a gateway.<br/>
        :return: StorediSCSIVolumes:  Describes a single unit of output from <a>DescribeStorediSCSIVolumes</a>. The following fields are returned: <ul> <li>  <code>ChapEnabled</code>: Indicates whether mutual CHAP is enabled for the iSCSI target. </li> <li>  <code>LunNumber</code>: The logical disk number. </li> <li>  <code>NetworkInterfaceId</code>: The network interface ID of the stored volume that initiator use to map the stored volume as an iSCSI target. </li> <li>  <code>NetworkInterfacePort</code>: The port used to communicate with iSCSI targets. </li> <li>  <code>PreservedExistingData</code>: Indicates when the stored volume was created, existing data on the underlying local disk was preserved. </li> <li>  <code>SourceSnapshotId</code>: If the stored volume was created from a snapshot, this field contains the snapshot ID used, e.g. <code>snap-1122aabb</code>. Otherwise, this field is not included. </li> <li>  <code>StorediSCSIVolumes</code>: An array of StorediSCSIVolume objects where each object contains metadata about one stored volume. </li> <li>  <code>TargetARN</code>: The Amazon Resource Name (ARN) of the volume target. </li> <li>  <code>VolumeARN</code>: The Amazon Resource Name (ARN) of the stored volume. </li> <li>  <code>VolumeDiskId</code>: The disk ID of the local disk that was specified in the <a>CreateStorediSCSIVolume</a> operation. </li> <li>  <code>VolumeId</code>: The unique identifier of the storage volume, e.g. <code>vol-1122AABB</code>. </li> <li>  <code>VolumeiSCSIAttributes</code>: An <a>VolumeiSCSIAttributes</a> object that represents a collection of iSCSI attributes for one stored volume. </li> <li>  <code>VolumeProgress</code>: Represents the percentage complete if the volume is restoring or bootstrapping that represents the percent of data transferred. This field does not appear in the response if the stored volume is not restoring or bootstrapping. </li> <li>  <code>VolumeSizeInBytes</code>: The size of the volume in bytes. </li> <li>  <code>VolumeStatus</code>: One of the <code>VolumeStatus</code> values that indicates the state of the volume. </li> <li>  <code>VolumeType</code>: One of the enumeration values describing the type of the volume. Currently, only <code>STORED</code> volumes are supported. </li> </ul><br/>        """
        pass

    def describe_tape_archives(self, TapeARNs: List[TapeARN]=None, Marker: str=None, Limit: int=None) -> DescribeTapeArchivesOutput:
        r"""Returns a description of specified virtual tapes in the virtual tape shelf (VTS). This operation is only supported in the tape gateway type. If a specific <code>TapeARN</code> is not specified, Storage Gateway returns a description of all virtual tapes found in the VTS associated with your account.

        :param self:
        :param Limit:  Specifies that the number of virtual tapes described be limited to the specified number.<br/>Marker:  An opaque string that indicates the position at which to begin describing virtual tapes.<br/>TapeARNs:  Specifies one or more unique Amazon Resource Names (ARNs) that represent the virtual tapes you want to describe.<br/>
        :return: Marker:  An opaque string that indicates the position at which the virtual tapes that were fetched for description ended. Use this marker in your next request to fetch the next set of virtual tapes in the virtual tape shelf (VTS). If there are no more virtual tapes to describe, this field does not appear in the response.<br/>TapeArchives:  An array of virtual tape objects in the virtual tape shelf (VTS). The description includes of the Amazon Resource Name (ARN) of the virtual tapes. The information returned includes the Amazon Resource Names (ARNs) of the tapes, size of the tapes, status of the tapes, progress of the description, and tape barcode.<br/>        """
        pass

    def describe_tape_recovery_points(self, GatewayARN: str, Marker: str=None, Limit: int=None) -> DescribeTapeRecoveryPointsOutput:
        r"""Returns a list of virtual tape recovery points that are available for the specified tape gateway. A recovery point is a point-in-time view of a virtual tape at which all the data on the virtual tape is consistent. If your gateway crashes, virtual tapes that have recovery points can be recovered to a new gateway. This operation is only supported in the tape gateway type.

        :param self:
        :param Limit:  Specifies that the number of virtual tape recovery points that are described be limited to the specified number.<br/>Marker:  An opaque string that indicates the position at which to begin describing the virtual tape recovery points.<br/>GatewayARN:  The Amazon Resource Name (ARN) of the gateway. Use the <a>ListGateways</a> operation to return a list of gateways for your account and Region.<br/>
        :return: Marker:  An opaque string that indicates the position at which the virtual tape recovery points that were listed for description ended. Use this marker in your next request to list the next set of virtual tape recovery points in the list. If there are no more recovery points to describe, this field does not appear in the response.<br/>TapeRecoveryPointInfos:  An array of TapeRecoveryPointInfos that are available for the specified gateway.<br/>GatewayARN:  The Amazon Resource Name (ARN) of the gateway. Use the <a>ListGateways</a> operation to return a list of gateways for your account and Region.<br/>        """
        pass

    def describe_tapes(self, GatewayARN: str, TapeARNs: List[TapeARN]=None, Marker: str=None, Limit: int=None) -> DescribeTapesOutput:
        r"""Returns a description of the specified Amazon Resource Name (ARN) of virtual tapes. If a <code>TapeARN</code> is not specified, returns a description of all virtual tapes associated with the specified gateway. This operation is only supported in the tape gateway type.

        :param self:
        :param Limit:  Specifies that the number of virtual tapes described be limited to the specified number. <note> Amazon Web Services may impose its own limit, if this field is not set. </note><br/>Marker:  A marker value, obtained in a previous call to <code>DescribeTapes</code>. This marker indicates which page of results to retrieve. If not specified, the first page of results is retrieved.<br/>TapeARNs:  Specifies one or more unique Amazon Resource Names (ARNs) that represent the virtual tapes you want to describe. If this parameter is not specified, Tape gateway returns a description of all virtual tapes associated with the specified gateway.<br/>GatewayARN:  The Amazon Resource Name (ARN) of the gateway. Use the <a>ListGateways</a> operation to return a list of gateways for your account and Region.<br/>
        :return: Marker:  An opaque string that can be used as part of a subsequent <code>DescribeTapes</code> call to retrieve the next page of results. If a response does not contain a marker, then there are no more results to be retrieved.<br/>Tapes:  An array of virtual tape descriptions.<br/>        """
        pass

    def describe_upload_buffer(self, GatewayARN: str) -> DescribeUploadBufferOutput:
        r"""Returns information about the upload buffer of a gateway. This operation is supported for the stored volume, cached volume, and tape gateway types. The response includes disk IDs that are configured as upload buffer space, and it includes the amount of upload buffer space allocated and used.

        :param self:
        :param GatewayARN:  The Amazon Resource Name (ARN) of the gateway. Use the <a>ListGateways</a> operation to return a list of gateways for your account and Region.<br/>
        :return: UploadBufferAllocatedInBytes:  The total number of bytes allocated in the gateway's as upload buffer.<br/>UploadBufferUsedInBytes:  The total number of bytes being used in the gateway's upload buffer.<br/>DiskIds:  An array of the gateway's local disk IDs that are configured as working storage. Each local disk ID is specified as a string (minimum length of 1 and maximum length of 300). If no local disks are configured as working storage, then the DiskIds array is empty.<br/>GatewayARN:  The Amazon Resource Name (ARN) of the gateway. Use the <a>ListGateways</a> operation to return a list of gateways for your account and Region.<br/>        """
        pass

    def describe_vtl_devices(self, GatewayARN: str, VTLDeviceARNs: List[VTLDeviceARN]=None, Marker: str=None, Limit: int=None) -> DescribeVTLDevicesOutput:
        r"""Returns a description of virtual tape library (VTL) devices for the specified tape gateway. In the response, Storage Gateway returns VTL device information. This operation is only supported in the tape gateway type.

        :param self:
        :param Limit:  Specifies that the number of VTL devices described be limited to the specified number.<br/>Marker:  An opaque string that indicates the position at which to begin describing the VTL devices.<br/>VTLDeviceARNs:  An array of strings, where each string represents the Amazon Resource Name (ARN) of a VTL device. <note> All of the specified VTL devices must be from the same gateway. If no VTL devices are specified, the result will contain all devices on the specified gateway. </note><br/>GatewayARN:  The Amazon Resource Name (ARN) of the gateway. Use the <a>ListGateways</a> operation to return a list of gateways for your account and Region.<br/>
        :return: Marker:  An opaque string that indicates the position at which the VTL devices that were fetched for description ended. Use the marker in your next request to fetch the next set of VTL devices in the list. If there are no more VTL devices to describe, this field does not appear in the response.<br/>VTLDevices:  An array of VTL device objects composed of the Amazon Resource Name (ARN) of the VTL devices.<br/>GatewayARN:  The Amazon Resource Name (ARN) of the gateway. Use the <a>ListGateways</a> operation to return a list of gateways for your account and Region.<br/>        """
        pass

    def describe_working_storage(self, GatewayARN: str) -> DescribeWorkingStorageOutput:
        r"""Returns information about the working storage of a gateway. This operation is only supported in the stored volumes gateway type. This operation is deprecated in cached volumes API version (20120630). Use DescribeUploadBuffer instead. <note> Working storage is also referred to as upload buffer. You can also use the DescribeUploadBuffer operation to add upload buffer to a stored volume gateway. </note> The response includes disk IDs that are configured as working storage, and it includes the amount of working storage allocated and used.

        :param self:
        :param GatewayARN:  The Amazon Resource Name (ARN) of the gateway. Use the <a>ListGateways</a> operation to return a list of gateways for your account and Region.<br/>
        :return: WorkingStorageAllocatedInBytes:  The total working storage in bytes allocated for the gateway. If no working storage is configured for the gateway, this field returns 0.<br/>WorkingStorageUsedInBytes:  The total working storage in bytes in use by the gateway. If no working storage is configured for the gateway, this field returns 0.<br/>DiskIds:  An array of the gateway's local disk IDs that are configured as working storage. Each local disk ID is specified as a string (minimum length of 1 and maximum length of 300). If no local disks are configured as working storage, then the DiskIds array is empty.<br/>GatewayARN:  The Amazon Resource Name (ARN) of the gateway. Use the <a>ListGateways</a> operation to return a list of gateways for your account and Region.<br/>        """
        pass

    def detach_volume(self, VolumeARN: str, ForceDetach: Boolean=None) -> DetachVolumeOutput:
        r"""Disconnects a volume from an iSCSI connection and then detaches the volume from the specified gateway. Detaching and attaching a volume enables you to recover your data from one gateway to a different gateway without creating a snapshot. It also makes it easier to move your volumes from an on-premises gateway to a gateway hosted on an Amazon EC2 instance. This operation is only supported in the volume gateway type.

        :param self:
        :param ForceDetach:  Set to <code>true</code> to forcibly remove the iSCSI connection of the target volume and detach the volume. The default is <code>false</code>. If this value is set to <code>false</code>, you must manually disconnect the iSCSI connection from the target volume. Valid Values: <code>true</code> | <code>false</code> <br/>VolumeARN:  The Amazon Resource Name (ARN) of the volume to detach from the gateway.<br/>
        :return: VolumeARN:  The Amazon Resource Name (ARN) of the volume that was detached.<br/>        """
        pass

    def disable_gateway(self, GatewayARN: str) -> DisableGatewayOutput:
        r"""Disables a tape gateway when the gateway is no longer functioning. For example, if your gateway VM is damaged, you can disable the gateway so you can recover virtual tapes. Use this operation for a tape gateway that is not reachable or not functioning. This operation is only supported in the tape gateway type. <important> After a gateway is disabled, it cannot be enabled. </important>

        :param self:
        :param GatewayARN:  The Amazon Resource Name (ARN) of the gateway. Use the <a>ListGateways</a> operation to return a list of gateways for your account and Region.<br/>
        :return: GatewayARN:  The unique Amazon Resource Name (ARN) of the disabled gateway.<br/>        """
        pass

    def disassociate_file_system(self, FileSystemAssociationARN: str, ForceDelete: boolean=None) -> DisassociateFileSystemOutput:
        r"""Disassociates an Amazon FSx file system from the specified gateway. After the disassociation process finishes, the gateway can no longer access the Amazon FSx file system. This operation is only supported in the FSx File Gateway type.

        :param self:
        :param ForceDelete:  If this value is set to true, the operation disassociates an Amazon FSx file system immediately. It ends all data uploads to the file system, and the file system association enters the <code>FORCE_DELETING</code> status. If this value is set to false, the Amazon FSx file system does not disassociate until all data is uploaded.<br/>FileSystemAssociationARN:  The Amazon Resource Name (ARN) of the file system association to be deleted.<br/>
        :return: FileSystemAssociationARN:  The Amazon Resource Name (ARN) of the deleted file system association.<br/>        """
        pass

    def join_domain(self, Password: str, UserName: str, DomainName: str, GatewayARN: str, OrganizationalUnit: str=None, DomainControllers: List[Host]=None, TimeoutInSeconds: int=None) -> JoinDomainOutput:
        r"""Adds a file gateway to an Active Directory domain. This operation is only supported for file gateways that support the SMB file protocol.

        :param self:
        :param Password:  Sets the password of the user who has permission to add the gateway to the Active Directory domain.<br/>UserName:  Sets the user name of user who has permission to add the gateway to the Active Directory domain. The domain user account should be enabled to join computers to the domain. For example, you can use the domain administrator account or an account with delegated permissions to join computers to the domain.<br/>TimeoutInSeconds:  Specifies the time in seconds, in which the <code>JoinDomain</code> operation must complete. The default is 20 seconds.<br/>DomainControllers:  List of IPv4 addresses, NetBIOS names, or host names of your domain server. If you need to specify the port number include it after the colon (“:”). For example, <code>mydc.mydomain.com:389</code>.<br/>OrganizationalUnit:  The organizational unit (OU) is a container in an Active Directory that can hold users, groups, computers, and other OUs and this parameter specifies the OU that the gateway will join within the AD domain.<br/>DomainName:  The name of the domain that you want the gateway to join.<br/>GatewayARN:  The Amazon Resource Name (ARN) of the gateway. Use the <code>ListGateways</code> operation to return a list of gateways for your account and Region.<br/>
        :return: ActiveDirectoryStatus:  Indicates the status of the gateway as a member of the Active Directory domain. <ul> <li>  <code>ACCESS_DENIED</code>: Indicates that the <code>JoinDomain</code> operation failed due to an authentication error. </li> <li>  <code>DETACHED</code>: Indicates that gateway is not joined to a domain. </li> <li>  <code>JOINED</code>: Indicates that the gateway has successfully joined a domain. </li> <li>  <code>JOINING</code>: Indicates that a <code>JoinDomain</code> operation is in progress. </li> <li>  <code>NETWORK_ERROR</code>: Indicates that <code>JoinDomain</code> operation failed due to a network or connectivity error. </li> <li>  <code>TIMEOUT</code>: Indicates that the <code>JoinDomain</code> operation failed because the operation didn't complete within the allotted time. </li> <li>  <code>UNKNOWN_ERROR</code>: Indicates that the <code>JoinDomain</code> operation failed due to another type of error. </li> </ul><br/>GatewayARN:  The unique Amazon Resource Name (ARN) of the gateway that joined the domain.<br/>        """
        pass

    def list_automatic_tape_creation_policies(self, GatewayARN: str=None) -> ListAutomaticTapeCreationPoliciesOutput:
        r"""Lists the automatic tape creation policies for a gateway. If there are no automatic tape creation policies for the gateway, it returns an empty list. This operation is only supported for tape gateways.

        :param self:
        :param GatewayARN:  The Amazon Resource Name (ARN) of the gateway. Use the <a>ListGateways</a> operation to return a list of gateways for your account and Region.<br/>
        :return: AutomaticTapeCreationPolicyInfos:  Gets a listing of information about the gateway's automatic tape creation policies, including the automatic tape creation rules and the gateway that is using the policies.<br/>        """
        pass

    def list_file_shares(self, GatewayARN: str=None, Limit: int=None, Marker: str=None) -> ListFileSharesOutput:
        r"""Gets a list of the file shares for a specific S3 File Gateway, or the list of file shares that belong to the calling user account. This operation is only supported for S3 File Gateways.

        :param self:
        :param Marker:  Opaque pagination token returned from a previous ListFileShares operation. If present, <code>Marker</code> specifies where to continue the list from after a previous call to ListFileShares. Optional.<br/>Limit:  The maximum number of file shares to return in the response. The value must be an integer with a value greater than zero. Optional.<br/>GatewayARN:  The Amazon Resource Name (ARN) of the gateway whose file shares you want to list. If this field is not present, all file shares under your account are listed.<br/>
        :return: FileShareInfoList:  An array of information about the S3 File Gateway's file shares.<br/>NextMarker:  If a value is present, there are more file shares to return. In a subsequent request, use <code>NextMarker</code> as the value for <code>Marker</code> to retrieve the next set of file shares.<br/>Marker:  If the request includes <code>Marker</code>, the response returns that value in this field.<br/>        """
        pass

    def list_file_system_associations(self, GatewayARN: str=None, Limit: int=None, Marker: str=None) -> ListFileSystemAssociationsOutput:
        r"""Gets a list of <code>FileSystemAssociationSummary</code> objects. Each object contains a summary of a file system association. This operation is only supported for FSx File Gateways.

        :param self:
        :param Marker:  Opaque pagination token returned from a previous <code>ListFileSystemAssociations</code> operation. If present, <code>Marker</code> specifies where to continue the list from after a previous call to <code>ListFileSystemAssociations</code>. Optional.<br/>Limit:  The maximum number of file system associations to return in the response. If present, <code>Limit</code> must be an integer with a value greater than zero. Optional.<br/>GatewayARN:  The Amazon Resource Name (ARN) of the gateway. Use the <a>ListGateways</a> operation to return a list of gateways for your account and Region.<br/>
        :return: FileSystemAssociationSummaryList:  An array of information about the Amazon FSx gateway's file system associations.<br/>NextMarker:  If a value is present, there are more file system associations to return. In a subsequent request, use <code>NextMarker</code> as the value for <code>Marker</code> to retrieve the next set of file system associations.<br/>Marker:  If the request includes <code>Marker</code>, the response returns that value in this field.<br/>        """
        pass

    def list_gateways(self, Marker: str=None, Limit: int=None) -> ListGatewaysOutput:
        r"""Lists gateways owned by an account in an Region specified in the request. The returned list is ordered by gateway Amazon Resource Name (ARN). By default, the operation returns a maximum of 100 gateways. This operation supports pagination that allows you to optionally reduce the number of gateways returned in a response. If you have more gateways than are returned in a response (that is, the response returns only a truncated list of your gateways), the response contains a marker that you can specify in your next request to fetch the next page of gateways.

        :param self:
        :param Limit:  Specifies that the list of gateways returned be limited to the specified number of items.<br/>Marker:  An opaque string that indicates the position at which to begin the returned list of gateways.<br/>
        :return: Marker:  Use the marker in your next request to fetch the next set of gateways in the list. If there are no more gateways to list, this field does not appear in the response.<br/>Gateways:  An array of <a>GatewayInfo</a> objects.<br/>        """
        pass

    def list_local_disks(self, GatewayARN: str) -> ListLocalDisksOutput:
        r"""Returns a list of the gateway's local disks. To specify which gateway to describe, you use the Amazon Resource Name (ARN) of the gateway in the body of the request. The request returns a list of all disks, specifying which are configured as working storage, cache storage, or stored volume or not configured at all. The response includes a <code>DiskStatus</code> field. This field can have a value of present (the disk is available to use), missing (the disk is no longer connected to the gateway), or mismatch (the disk node is occupied by a disk that has incorrect metadata or the disk content is corrupted).

        :param self:
        :param GatewayARN:  The Amazon Resource Name (ARN) of the gateway. Use the <a>ListGateways</a> operation to return a list of gateways for your account and Region.<br/>
        :return: Disks:  A JSON object containing the following fields: <ul> <li>  <a>ListLocalDisksOutput$Disks</a>  </li> </ul><br/>GatewayARN:  The Amazon Resource Name (ARN) of the gateway. Use the <a>ListGateways</a> operation to return a list of gateways for your account and Region.<br/>        """
        pass

    def list_tags_for_resource(self, ResourceARN: str, Marker: str=None, Limit: int=None) -> ListTagsForResourceOutput:
        r"""Lists the tags that have been added to the specified resource. This operation is supported in storage gateways of all types.

        :param self:
        :param Limit:  Specifies that the list of tags returned be limited to the specified number of items.<br/>Marker:  An opaque string that indicates the position at which to begin returning the list of tags.<br/>ResourceARN:  The Amazon Resource Name (ARN) of the resource for which you want to list tags.<br/>
        :return: Tags:  An array that contains the tags for the specified resource.<br/>Marker:  An opaque string that indicates the position at which to stop returning the list of tags.<br/>ResourceARN:  The Amazon Resource Name (ARN) of the resource for which you want to list tags.<br/>        """
        pass

    def list_tape_pools(self, PoolARNs: List[PoolARN]=None, Marker: str=None, Limit: int=None) -> ListTapePoolsOutput:
        r"""Lists custom tape pools. You specify custom tape pools to list by specifying one or more custom tape pool Amazon Resource Names (ARNs). If you don't specify a custom tape pool ARN, the operation lists all custom tape pools. This operation supports pagination. You can optionally specify the <code>Limit</code> parameter in the body to limit the number of tape pools in the response. If the number of tape pools returned in the response is truncated, the response includes a <code>Marker</code> element that you can use in your subsequent request to retrieve the next set of tape pools.

        :param self:
        :param Limit:  An optional number limit for the tape pools in the list returned by this call.<br/>Marker:  A string that indicates the position at which to begin the returned list of tape pools.<br/>PoolARNs:  The Amazon Resource Name (ARN) of each of the custom tape pools you want to list. If you don't specify a custom tape pool ARN, the response lists all custom tape pools. <br/>
        :return: Marker:  A string that indicates the position at which to begin the returned list of tape pools. Use the marker in your next request to continue pagination of tape pools. If there are no more tape pools to list, this element does not appear in the response body. <br/>PoolInfos:  An array of <code>PoolInfo</code> objects, where each object describes a single custom tape pool. If there are no custom tape pools, the <code>PoolInfos</code> is an empty array. <br/>        """
        pass

    def list_tapes(self, TapeARNs: List[TapeARN]=None, Marker: str=None, Limit: int=None) -> ListTapesOutput:
        r"""Lists virtual tapes in your virtual tape library (VTL) and your virtual tape shelf (VTS). You specify the tapes to list by specifying one or more tape Amazon Resource Names (ARNs). If you don't specify a tape ARN, the operation lists all virtual tapes in both your VTL and VTS. This operation supports pagination. By default, the operation returns a maximum of up to 100 tapes. You can optionally specify the <code>Limit</code> parameter in the body to limit the number of tapes in the response. If the number of tapes returned in the response is truncated, the response includes a <code>Marker</code> element that you can use in your subsequent request to retrieve the next set of tapes. This operation is only supported in the tape gateway type.

        :param self:
        :param Limit:  An optional number limit for the tapes in the list returned by this call.<br/>Marker:  A string that indicates the position at which to begin the returned list of tapes.<br/>TapeARNs:  The Amazon Resource Name (ARN) of each of the tapes you want to list. If you don't specify a tape ARN, the response lists all tapes in both your VTL and VTS.<br/>
        :return: Marker:  A string that indicates the position at which to begin returning the next list of tapes. Use the marker in your next request to continue pagination of tapes. If there are no more tapes to list, this element does not appear in the response body.<br/>TapeInfos:  An array of <a>TapeInfo</a> objects, where each object describes a single tape. If there are no tapes in the tape library or VTS, then the <code>TapeInfos</code> is an empty array.<br/>        """
        pass

    def list_volume_initiators(self, VolumeARN: str) -> ListVolumeInitiatorsOutput:
        r"""Lists iSCSI initiators that are connected to a volume. You can use this operation to determine whether a volume is being used or not. This operation is only supported in the cached volume and stored volume gateway types.

        :param self:
        :param VolumeARN:  The Amazon Resource Name (ARN) of the volume. Use the <a>ListVolumes</a> operation to return a list of gateway volumes for the gateway.<br/>
        :return: Initiators:  The host names and port numbers of all iSCSI initiators that are connected to the gateway.<br/>        """
        pass

    def list_volume_recovery_points(self, GatewayARN: str) -> ListVolumeRecoveryPointsOutput:
        r"""Lists the recovery points for a specified gateway. This operation is only supported in the cached volume gateway type. Each cache volume has one recovery point. A volume recovery point is a point in time at which all data of the volume is consistent and from which you can create a snapshot or clone a new cached volume from a source volume. To create a snapshot from a volume recovery point use the <a>CreateSnapshotFromVolumeRecoveryPoint</a> operation.

        :param self:
        :param GatewayARN:  The Amazon Resource Name (ARN) of the gateway. Use the <a>ListGateways</a> operation to return a list of gateways for your account and Region.<br/>
        :return: VolumeRecoveryPointInfos:  An array of <a>VolumeRecoveryPointInfo</a> objects.<br/>GatewayARN:  The Amazon Resource Name (ARN) of the gateway. Use the <a>ListGateways</a> operation to return a list of gateways for your account and Region.<br/>        """
        pass

    def list_volumes(self, GatewayARN: str=None, Marker: str=None, Limit: int=None) -> ListVolumesOutput:
        r"""Lists the iSCSI stored volumes of a gateway. Results are sorted by volume ARN. The response includes only the volume ARNs. If you want additional volume information, use the <a>DescribeStorediSCSIVolumes</a> or the <a>DescribeCachediSCSIVolumes</a> API. The operation supports pagination. By default, the operation returns a maximum of up to 100 volumes. You can optionally specify the <code>Limit</code> field in the body to limit the number of volumes in the response. If the number of volumes returned in the response is truncated, the response includes a Marker field. You can use this Marker value in your subsequent request to retrieve the next set of volumes. This operation is only supported in the cached volume and stored volume gateway types.

        :param self:
        :param Limit:  Specifies that the list of volumes returned be limited to the specified number of items.<br/>Marker:  A string that indicates the position at which to begin the returned list of volumes. Obtain the marker from the response of a previous List iSCSI Volumes request.<br/>GatewayARN:  The Amazon Resource Name (ARN) of the gateway. Use the <a>ListGateways</a> operation to return a list of gateways for your account and Region.<br/>
        :return: VolumeInfos:  An array of <a>VolumeInfo</a> objects, where each object describes an iSCSI volume. If no volumes are defined for the gateway, then <code>VolumeInfos</code> is an empty array "[]".<br/>Marker:  Use the marker in your next request to continue pagination of iSCSI volumes. If there are no more volumes to list, this field does not appear in the response body.<br/>GatewayARN:  The Amazon Resource Name (ARN) of the gateway. Use the <a>ListGateways</a> operation to return a list of gateways for your account and Region.<br/>        """
        pass

    def notify_when_uploaded(self, FileShareARN: str) -> NotifyWhenUploadedOutput:
        r"""Sends you notification through CloudWatch Events when all files written to your file share have been uploaded to Amazon S3. Storage Gateway can send a notification through Amazon CloudWatch Events when all files written to your file share up to that point in time have been uploaded to Amazon S3. These files include files written to the file share up to the time that you make a request for notification. When the upload is done, Storage Gateway sends you notification through an Amazon CloudWatch Event. You can configure CloudWatch Events to send the notification through event targets such as Amazon SNS or Lambda function. This operation is only supported for S3 File Gateways. For more information, see <a href="https://docs.aws.amazon.com/storagegateway/latest/userguide/monitoring-file-gateway.html#get-upload-notification">Getting file upload notification</a> in the <i>Storage Gateway User Guide</i>.

        :param self:
        :param FileShareARN:  The Amazon Resource Name (ARN) of the file share.<br/>
        :return: NotificationId:  The randomly generated ID of the notification that was sent. This ID is in UUID format.<br/>FileShareARN:  The Amazon Resource Name (ARN) of the file share.<br/>        """
        pass

    def refresh_cache(self, FileShareARN: str, FolderList: List[Folder]=None, Recursive: Boolean=None) -> RefreshCacheOutput:
        r"""Refreshes the cached inventory of objects for the specified file share. This operation finds objects in the Amazon S3 bucket that were added, removed, or replaced since the gateway last listed the bucket's contents and cached the results. This operation does not import files into the S3 File Gateway cache storage. It only updates the cached inventory to reflect changes in the inventory of the objects in the S3 bucket. This operation is only supported in the S3 File Gateway types. You can subscribe to be notified through an Amazon CloudWatch event when your <code>RefreshCache</code> operation completes. For more information, see <a href="https://docs.aws.amazon.com/storagegateway/latest/userguide/monitoring-file-gateway.html#get-notification">Getting notified about file operations</a> in the <i>Storage Gateway User Guide</i>. This operation is Only supported for S3 File Gateways. When this API is called, it only initiates the refresh operation. When the API call completes and returns a success code, it doesn't necessarily mean that the file refresh has completed. You should use the refresh-complete notification to determine that the operation has completed before you check for new files on the gateway file share. You can subscribe to be notified through a CloudWatch event when your <code>RefreshCache</code> operation completes. Throttle limit: This API is asynchronous, so the gateway will accept no more than two refreshes at any time. We recommend using the refresh-complete CloudWatch event notification before issuing additional requests. For more information, see <a href="https://docs.aws.amazon.com/storagegateway/latest/userguide/monitoring-file-gateway.html#get-notification">Getting notified about file operations</a> in the <i>Storage Gateway User Guide</i>. If you invoke the RefreshCache API when two requests are already being processed, any new request will cause an <code>InvalidGatewayRequestException</code> error because too many requests were sent to the server. For more information, see <a href="https://docs.aws.amazon.com/storagegateway/latest/userguide/monitoring-file-gateway.html#get-notification">Getting notified about file operations</a> in the <i>Storage Gateway User Guide</i>.

        :param self:
        :param Recursive:  A value that specifies whether to recursively refresh folders in the cache. The refresh includes folders that were in the cache the last time the gateway listed the folder's contents. If this value set to <code>true</code>, each folder that is listed in <code>FolderList</code> is recursively updated. Otherwise, subfolders listed in <code>FolderList</code> are not refreshed. Only objects that are in folders listed directly under <code>FolderList</code> are found and used for the update. The default is <code>true</code>. Valid Values: <code>true</code> | <code>false</code> <br/>FolderList:  A comma-separated list of the paths of folders to refresh in the cache. The default is [<code>"/"</code>]. The default refreshes objects and folders at the root of the Amazon S3 bucket. If <code>Recursive</code> is set to <code>true</code>, the entire S3 bucket that the file share has access to is refreshed.<br/>FileShareARN:  The Amazon Resource Name (ARN) of the file share you want to refresh.<br/>
        :return: NotificationId:  The randomly generated ID of the notification that was sent. This ID is in UUID format.<br/>FileShareARN:  The Amazon Resource Name (ARN) of the file share.<br/>        """
        pass

    def remove_tags_from_resource(self, TagKeys: List[TagKey], ResourceARN: str) -> RemoveTagsFromResourceOutput:
        r"""Removes one or more tags from the specified resource. This operation is supported in storage gateways of all types.

        :param self:
        :param TagKeys:  The keys of the tags you want to remove from the specified resource. A tag is composed of a key-value pair.<br/>ResourceARN:  The Amazon Resource Name (ARN) of the resource you want to remove the tags from.<br/>
        :return: ResourceARN:  The Amazon Resource Name (ARN) of the resource that the tags were removed from.<br/>        """
        pass

    def reset_cache(self, GatewayARN: str) -> ResetCacheOutput:
        r"""Resets all cache disks that have encountered an error and makes the disks available for reconfiguration as cache storage. If your cache disk encounters an error, the gateway prevents read and write operations on virtual tapes in the gateway. For example, an error can occur when a disk is corrupted or removed from the gateway. When a cache is reset, the gateway loses its cache storage. At this point, you can reconfigure the disks as cache disks. This operation is only supported in the cached volume and tape types. <important> If the cache disk you are resetting contains data that has not been uploaded to Amazon S3 yet, that data can be lost. After you reset cache disks, there will be no configured cache disks left in the gateway, so you must configure at least one new cache disk for your gateway to function properly. </important>

        :param self:
        :param GatewayARN:  The Amazon Resource Name (ARN) of the gateway. Use the <a>ListGateways</a> operation to return a list of gateways for your account and Region.<br/>
        :return: GatewayARN:  The Amazon Resource Name (ARN) of the gateway. Use the <a>ListGateways</a> operation to return a list of gateways for your account and Region.<br/>        """
        pass

    def retrieve_tape_archive(self, GatewayARN: str, TapeARN: str) -> RetrieveTapeArchiveOutput:
        r"""Retrieves an archived virtual tape from the virtual tape shelf (VTS) to a tape gateway. Virtual tapes archived in the VTS are not associated with any gateway. However after a tape is retrieved, it is associated with a gateway, even though it is also listed in the VTS, that is, archive. This operation is only supported in the tape gateway type. Once a tape is successfully retrieved to a gateway, it cannot be retrieved again to another gateway. You must archive the tape again before you can retrieve it to another gateway. This operation is only supported in the tape gateway type.

        :param self:
        :param GatewayARN:  The Amazon Resource Name (ARN) of the gateway you want to retrieve the virtual tape to. Use the <a>ListGateways</a> operation to return a list of gateways for your account and Region. You retrieve archived virtual tapes to only one gateway and the gateway must be a tape gateway.<br/>TapeARN:  The Amazon Resource Name (ARN) of the virtual tape you want to retrieve from the virtual tape shelf (VTS).<br/>
        :return: TapeARN:  The Amazon Resource Name (ARN) of the retrieved virtual tape.<br/>        """
        pass

    def retrieve_tape_recovery_point(self, GatewayARN: str, TapeARN: str) -> RetrieveTapeRecoveryPointOutput:
        r"""Retrieves the recovery point for the specified virtual tape. This operation is only supported in the tape gateway type. A recovery point is a point in time view of a virtual tape at which all the data on the tape is consistent. If your gateway crashes, virtual tapes that have recovery points can be recovered to a new gateway. <note> The virtual tape can be retrieved to only one gateway. The retrieved tape is read-only. The virtual tape can be retrieved to only a tape gateway. There is no charge for retrieving recovery points. </note>

        :param self:
        :param GatewayARN:  The Amazon Resource Name (ARN) of the gateway. Use the <a>ListGateways</a> operation to return a list of gateways for your account and Region.<br/>TapeARN:  The Amazon Resource Name (ARN) of the virtual tape for which you want to retrieve the recovery point.<br/>
        :return: TapeARN:  The Amazon Resource Name (ARN) of the virtual tape for which the recovery point was retrieved.<br/>        """
        pass

    def set_local_console_password(self, LocalConsolePassword: str, GatewayARN: str) -> SetLocalConsolePasswordOutput:
        r"""Sets the password for your VM local console. When you log in to the local console for the first time, you log in to the VM with the default credentials. We recommend that you set a new password. You don't need to know the default password to set a new password.

        :param self:
        :param LocalConsolePassword:  The password you want to set for your VM local console.<br/>GatewayARN:  The Amazon Resource Name (ARN) of the gateway. Use the <a>ListGateways</a> operation to return a list of gateways for your account and Region.<br/>
        :return: GatewayARN:  The Amazon Resource Name (ARN) of the gateway. Use the <a>ListGateways</a> operation to return a list of gateways for your account and Region.<br/>        """
        pass

    def set_smb_guest_password(self, Password: str, GatewayARN: str) -> SetSMBGuestPasswordOutput:
        r"""Sets the password for the guest user <code>smbguest</code>. The <code>smbguest</code> user is the user when the authentication method for the file share is set to <code>GuestAccess</code>. This operation only supported for S3 File Gateways

        :param self:
        :param Password:  The password that you want to set for your SMB server.<br/>GatewayARN:  The Amazon Resource Name (ARN) of the S3 File Gateway the SMB file share is associated with.<br/>
        :return: GatewayARN:  The Amazon Resource Name (ARN) of the gateway. Use the <a>ListGateways</a> operation to return a list of gateways for your account and Region.<br/>        """
        pass

    def shutdown_gateway(self, GatewayARN: str) -> ShutdownGatewayOutput:
        r"""Shuts down a gateway. To specify which gateway to shut down, use the Amazon Resource Name (ARN) of the gateway in the body of your request. The operation shuts down the gateway service component running in the gateway's virtual machine (VM) and not the host VM. <note> If you want to shut down the VM, it is recommended that you first shut down the gateway component in the VM to avoid unpredictable conditions. </note> After the gateway is shutdown, you cannot call any other API except <a>StartGateway</a>, <a>DescribeGatewayInformation</a>, and <a>ListGateways</a>. For more information, see <a>ActivateGateway</a>. Your applications cannot read from or write to the gateway's storage volumes, and there are no snapshots taken. <note> When you make a shutdown request, you will get a <code>200 OK</code> success response immediately. However, it might take some time for the gateway to shut down. You can call the <a>DescribeGatewayInformation</a> API to check the status. For more information, see <a>ActivateGateway</a>. </note> If do not intend to use the gateway again, you must delete the gateway (using <a>DeleteGateway</a>) to no longer pay software charges associated with the gateway.

        :param self:
        :param GatewayARN:  The Amazon Resource Name (ARN) of the gateway. Use the <a>ListGateways</a> operation to return a list of gateways for your account and Region.<br/>
        :return: GatewayARN:  The Amazon Resource Name (ARN) of the gateway. Use the <a>ListGateways</a> operation to return a list of gateways for your account and Region.<br/>        """
        pass

    def start_availability_monitor_test(self, GatewayARN: str) -> StartAvailabilityMonitorTestOutput:
        r"""Start a test that verifies that the specified gateway is configured for High Availability monitoring in your host environment. This request only initiates the test and that a successful response only indicates that the test was started. It doesn't indicate that the test passed. For the status of the test, invoke the <code>DescribeAvailabilityMonitorTest</code> API. <note> Starting this test will cause your gateway to go offline for a brief period. </note>

        :param self:
        :param GatewayARN:  The Amazon Resource Name (ARN) of the gateway. Use the <a>ListGateways</a> operation to return a list of gateways for your account and Region.<br/>
        :return: GatewayARN:  The Amazon Resource Name (ARN) of the gateway. Use the <a>ListGateways</a> operation to return a list of gateways for your account and Region.<br/>        """
        pass

    def start_gateway(self, GatewayARN: str) -> StartGatewayOutput:
        r"""Starts a gateway that you previously shut down (see <a>ShutdownGateway</a>). After the gateway starts, you can then make other API calls, your applications can read from or write to the gateway's storage volumes and you will be able to take snapshot backups. <note> When you make a request, you will get a 200 OK success response immediately. However, it might take some time for the gateway to be ready. You should call <a>DescribeGatewayInformation</a> and check the status before making any additional API calls. For more information, see <a>ActivateGateway</a>. </note> To specify which gateway to start, use the Amazon Resource Name (ARN) of the gateway in your request.

        :param self:
        :param GatewayARN:  The Amazon Resource Name (ARN) of the gateway. Use the <a>ListGateways</a> operation to return a list of gateways for your account and Region.<br/>
        :return: GatewayARN:  The Amazon Resource Name (ARN) of the gateway. Use the <a>ListGateways</a> operation to return a list of gateways for your account and Region.<br/>        """
        pass

    def update_automatic_tape_creation_policy(self, GatewayARN: str, AutomaticTapeCreationRules: List[AutomaticTapeCreationRule]) -> UpdateAutomaticTapeCreationPolicyOutput:
        r"""Updates the automatic tape creation policy of a gateway. Use this to update the policy with a new set of automatic tape creation rules. This is only supported for tape gateways. By default, there is no automatic tape creation policy. <note> A gateway can have only one automatic tape creation policy. </note>

        :param self:
        :param GatewayARN:  The Amazon Resource Name (ARN) of the gateway. Use the <a>ListGateways</a> operation to return a list of gateways for your account and Region.<br/>AutomaticTapeCreationRules:  An automatic tape creation policy consists of a list of automatic tape creation rules. The rules determine when and how to automatically create new tapes.<br/>
        :return: GatewayARN:  The Amazon Resource Name (ARN) of the gateway. Use the <a>ListGateways</a> operation to return a list of gateways for your account and Region.<br/>        """
        pass

    def update_bandwidth_rate_limit(self, GatewayARN: str, AverageUploadRateLimitInBitsPerSec: BandwidthUploadRateLimit=None, AverageDownloadRateLimitInBitsPerSec: BandwidthDownloadRateLimit=None) -> UpdateBandwidthRateLimitOutput:
        r"""Updates the bandwidth rate limits of a gateway. You can update both the upload and download bandwidth rate limit or specify only one of the two. If you don't set a bandwidth rate limit, the existing rate limit remains. This operation is supported for the stored volume, cached volume, and tape gateway types. By default, a gateway's bandwidth rate limits are not set. If you don't set any limit, the gateway does not have any limitations on its bandwidth usage and could potentially use the maximum available bandwidth. To specify which gateway to update, use the Amazon Resource Name (ARN) of the gateway in your request.

        :param self:
        :param AverageDownloadRateLimitInBitsPerSec:  The average download bandwidth rate limit in bits per second.<br/>AverageUploadRateLimitInBitsPerSec:  The average upload bandwidth rate limit in bits per second.<br/>GatewayARN:  The Amazon Resource Name (ARN) of the gateway. Use the <a>ListGateways</a> operation to return a list of gateways for your account and Region.<br/>
        :return: GatewayARN:  The Amazon Resource Name (ARN) of the gateway. Use the <a>ListGateways</a> operation to return a list of gateways for your account and Region.<br/>        """
        pass

    def update_bandwidth_rate_limit_schedule(self, BandwidthRateLimitIntervals: List[BandwidthRateLimitInterval], GatewayARN: str) -> UpdateBandwidthRateLimitScheduleOutput:
        r""" Updates the bandwidth rate limit schedule for a specified gateway. By default, gateways do not have bandwidth rate limit schedules, which means no bandwidth rate limiting is in effect. Use this to initiate or update a gateway's bandwidth rate limit schedule. This operation is supported in the volume and tape gateway types. 

        :param self:
        :param BandwidthRateLimitIntervals:   An array containing bandwidth rate limit schedule intervals for a gateway. When no bandwidth rate limit intervals have been scheduled, the array is empty. <br/>GatewayARN:  The Amazon Resource Name (ARN) of the gateway. Use the <a>ListGateways</a> operation to return a list of gateways for your account and Region.<br/>
        :return: GatewayARN:  The Amazon Resource Name (ARN) of the gateway. Use the <a>ListGateways</a> operation to return a list of gateways for your account and Region.<br/>        """
        pass

    def update_chap_credentials(self, InitiatorName: str, SecretToAuthenticateInitiator: str, TargetARN: str, SecretToAuthenticateTarget: str=None) -> UpdateChapCredentialsOutput:
        r"""Updates the Challenge-Handshake Authentication Protocol (CHAP) credentials for a specified iSCSI target. By default, a gateway does not have CHAP enabled; however, for added security, you might use it. This operation is supported in the volume and tape gateway types. <important> When you update CHAP credentials, all existing connections on the target are closed and initiators must reconnect with the new credentials. </important>

        :param self:
        :param SecretToAuthenticateTarget:  The secret key that the target must provide to participate in mutual CHAP with the initiator (e.g. Windows client). Byte constraints: Minimum bytes of 12. Maximum bytes of 16. <note> The secret key must be between 12 and 16 bytes when encoded in UTF-8. </note><br/>InitiatorName:  The iSCSI initiator that connects to the target.<br/>SecretToAuthenticateInitiator:  The secret key that the initiator (for example, the Windows client) must provide to participate in mutual CHAP with the target. <note> The secret key must be between 12 and 16 bytes when encoded in UTF-8. </note><br/>TargetARN:  The Amazon Resource Name (ARN) of the iSCSI volume target. Use the <a>DescribeStorediSCSIVolumes</a> operation to return the TargetARN for specified VolumeARN.<br/>
        :return: InitiatorName:  The iSCSI initiator that connects to the target. This is the same initiator name specified in the request.<br/>TargetARN:  The Amazon Resource Name (ARN) of the target. This is the same target specified in the request.<br/>        """
        pass

    def update_file_system_association(self, FileSystemAssociationARN: str, UserName: str=None, Password: str=None, AuditDestinationARN: str=None, CacheAttributes: CacheAttributes=None) -> UpdateFileSystemAssociationOutput:
        r"""Updates a file system association. This operation is only supported in the FSx File Gateways.

        :param self:
        :param CacheAttributes:  The refresh cache information for the file share or FSx file systems.:<br/>AuditDestinationARN:  The Amazon Resource Name (ARN) of the storage used for the audit logs.<br/>Password:  The password of the user credential.<br/>UserName:  The user name of the user credential that has permission to access the root share D$ of the Amazon FSx file system. The user account must belong to the Amazon FSx delegated admin user group.<br/>FileSystemAssociationARN:  The Amazon Resource Name (ARN) of the file system association that you want to update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheStaleTimeoutInSeconds</i> Refreshes a file share's cache by using Time To Live (TTL). TTL is the length of time since the last refresh after which access to the directory would cause the file gateway to first refresh that directory's contents from the Amazon S3 bucket or Amazon FSx file system. The TTL duration is in seconds. Valid Values:0, 300 to 2,592,000 seconds (5 minutes to 30 days)<br/>
        :return: FileSystemAssociationARN:  The ARN of the updated file system association.<br/>        """
        pass

    def update_gateway_information(self, GatewayARN: str, GatewayName: str=None, GatewayTimezone: str=None, CloudWatchLogGroupARN: str=None, GatewayCapacity: str=None) -> UpdateGatewayInformationOutput:
        r"""Updates a gateway's metadata, which includes the gateway's name and time zone. To specify which gateway to update, use the Amazon Resource Name (ARN) of the gateway in your request. <note> For gateways activated after September 2, 2015, the gateway's ARN contains the gateway ID rather than the gateway name. However, changing the name of the gateway has no effect on the gateway's ARN. </note>

        :param self:
        :param GatewayCapacity:  Specifies the size of the gateway's metadata cache.<br/>CloudWatchLogGroupARN:  The Amazon Resource Name (ARN) of the Amazon CloudWatch log group that you want to use to monitor and log events in the gateway. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html">What is Amazon CloudWatch Logs?</a> <br/>GatewayTimezone:  A value that indicates the time zone of the gateway.<br/>GatewayName:  The name you configured for your gateway.<br/>GatewayARN:  The Amazon Resource Name (ARN) of the gateway. Use the <a>ListGateways</a> operation to return a list of gateways for your account and Region.<br/>
        :return: GatewayName:  The name you configured for your gateway.<br/>GatewayARN:  The Amazon Resource Name (ARN) of the gateway. Use the <a>ListGateways</a> operation to return a list of gateways for your account and Region.<br/>        """
        pass

    def update_gateway_software_now(self, GatewayARN: str) -> UpdateGatewaySoftwareNowOutput:
        r"""Updates the gateway virtual machine (VM) software. The request immediately triggers the software update. <note> When you make this request, you get a <code>200 OK</code> success response immediately. However, it might take some time for the update to complete. You can call <a>DescribeGatewayInformation</a> to verify the gateway is in the <code>STATE_RUNNING</code> state. </note> <important> A software update forces a system restart of your gateway. You can minimize the chance of any disruption to your applications by increasing your iSCSI Initiators' timeouts. For more information about increasing iSCSI Initiator timeouts for Windows and Linux, see <a href="https://docs.aws.amazon.com/storagegateway/latest/userguide/ConfiguringiSCSIClientInitiatorWindowsClient.html#CustomizeWindowsiSCSISettings">Customizing your Windows iSCSI settings</a> and <a href="https://docs.aws.amazon.com/storagegateway/latest/userguide/ConfiguringiSCSIClientInitiatorRedHatClient.html#CustomizeLinuxiSCSISettings">Customizing your Linux iSCSI settings</a>, respectively. </important>

        :param self:
        :param GatewayARN:  The Amazon Resource Name (ARN) of the gateway. Use the <a>ListGateways</a> operation to return a list of gateways for your account and Region.<br/>
        :return: GatewayARN:  The Amazon Resource Name (ARN) of the gateway. Use the <a>ListGateways</a> operation to return a list of gateways for your account and Region.<br/>        """
        pass

    def update_maintenance_start_time(self, MinuteOfHour: int, HourOfDay: int, GatewayARN: str, DayOfWeek: int=None, DayOfMonth: int=None) -> UpdateMaintenanceStartTimeOutput:
        r"""Updates a gateway's weekly maintenance start time information, including day and time of the week. The maintenance time is the time in your gateway's time zone.

        :param self:
        :param DayOfMonth:  The day of the month component of the maintenance start time represented as an ordinal number from 1 to 28, where 1 represents the first day of the month and 28 represents the last day of the month.<br/>DayOfWeek:  The day of the week component of the maintenance start time week represented as an ordinal number from 0 to 6, where 0 represents Sunday and 6 Saturday.<br/>MinuteOfHour:  The minute component of the maintenance start time represented as <i>mm</i>, where <i>mm</i> is the minute (00 to 59). The minute of the hour is in the time zone of the gateway.<br/>HourOfDay:  The hour component of the maintenance start time represented as <i>hh</i>, where <i>hh</i> is the hour (00 to 23). The hour of the day is in the time zone of the gateway.<br/>GatewayARN:  The Amazon Resource Name (ARN) of the gateway. Use the <a>ListGateways</a> operation to return a list of gateways for your account and Region.<br/>
        :return: GatewayARN:  The Amazon Resource Name (ARN) of the gateway. Use the <a>ListGateways</a> operation to return a list of gateways for your account and Region.<br/>        """
        pass

    def update_nfs_file_share(self, FileShareARN: str, KMSEncrypted: Boolean=None, KMSKey: str=None, NFSFileShareDefaults: NFSFileShareDefaults=None, DefaultStorageClass: str=None, ObjectACL: str=None, ClientList: List[IPV4AddressCIDR]=None, Squash: str=None, ReadOnly: Boolean=None, GuessMIMETypeEnabled: Boolean=None, RequesterPays: Boolean=None, FileShareName: str=None, CacheAttributes: CacheAttributes=None, NotificationPolicy: str=None) -> UpdateNFSFileShareOutput:
        r"""Updates a Network File System (NFS) file share. This operation is only supported in S3 File Gateways. <note> To leave a file share field unchanged, set the corresponding input field to null. </note> Updates the following file share settings: <ul> <li> Default storage class for your S3 bucket </li> <li> Metadata defaults for your S3 bucket </li> <li> Allowed NFS clients for your file share </li> <li> Squash settings </li> <li> Write status of your file share </li> </ul>

        :param self:
        :param NotificationPolicy:  The notification policy of the file share. <code>SettlingTimeInSeconds</code> controls the number of seconds to wait after the last point in time a client wrote to a file before generating an <code>ObjectUploaded</code> notification. Because clients can make many small writes to files, it's best to set this parameter for as long as possible to avoid generating multiple notifications for the same file in a small time period. <note>  <code>SettlingTimeInSeconds</code> has no effect on the timing of the object uploading to Amazon S3, only the timing of the notification. </note> The following example sets <code>NotificationPolicy</code> on with <code>SettlingTimeInSeconds</code> set to 60.  <code>{\"Upload\": {\"SettlingTimeInSeconds\": 60}}</code>  The following example sets <code>NotificationPolicy</code> off.  <code>{}</code> <br/>CacheAttributes:  specifies refresh cache information for the file share.:<br/>FileShareName:  The name of the file share. Optional. <note>  <code>FileShareName</code> must be set if an S3 prefix name is set in <code>LocationARN</code>. </note><br/>RequesterPays:  A value that sets who pays the cost of the request and the cost associated with data download from the S3 bucket. If this value is set to <code>true</code>, the requester pays the costs; otherwise, the S3 bucket owner pays. However, the S3 bucket owner always pays the cost of storing data. <note>  <code>RequesterPays</code> is a configuration for the S3 bucket that backs the file share, so make sure that the configuration on the file share is the same as the S3 bucket configuration. </note> Valid Values: <code>true</code> | <code>false</code> <br/>GuessMIMETypeEnabled:  A value that enables guessing of the MIME type for uploaded objects based on file extensions. Set this value to <code>true</code> to enable MIME type guessing, otherwise set to <code>false</code>. The default value is <code>true</code>. Valid Values: <code>true</code> | <code>false</code> <br/>ReadOnly:  A value that sets the write status of a file share. Set this value to <code>true</code> to set the write status to read-only, otherwise set to <code>false</code>. Valid Values: <code>true</code> | <code>false</code> <br/>Squash:  The user mapped to anonymous user. Valid values are the following: <ul> <li>  <code>RootSquash</code>: Only root is mapped to anonymous user. </li> <li>  <code>NoSquash</code>: No one is mapped to anonymous user. </li> <li>  <code>AllSquash</code>: Everyone is mapped to anonymous user. </li> </ul><br/>ClientList:  The list of clients that are allowed to access the S3 File Gateway. The list must contain either valid IP addresses or valid CIDR blocks.<br/>ObjectACL:  A value that sets the access control list (ACL) permission for objects in the S3 bucket that a S3 File Gateway puts objects into. The default value is <code>private</code>.<br/>DefaultStorageClass:  The default storage class for objects put into an Amazon S3 bucket by the S3 File Gateway. The default value is <code>S3_INTELLIGENT_TIERING</code>. Optional. Valid Values: <code>S3_STANDARD</code> | <code>S3_INTELLIGENT_TIERING</code> | <code>S3_STANDARD_IA</code> | <code>S3_ONEZONE_IA</code> <br/>NFSFileShareDefaults:  The default values for the file share. Optional.:<br/>KMSKey:  The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric CMKs. This value can only be set when <code>KMSEncrypted</code> is <code>true</code>. Optional.<br/>KMSEncrypted:  Set to <code>true</code> to use Amazon S3 server-side encryption with your own KMS key, or <code>false</code> to use a key managed by Amazon S3. Optional. Valid Values: <code>true</code> | <code>false</code> <br/>FileShareARN:  The Amazon Resource Name (ARN) of the file share to be updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OwnerId</i> The default owner ID for files in the file share (unless the files have another owner ID specified). The default value is <code>nfsnobody</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GroupId</i> The default group ID for the file share (unless the files have another group ID specified). The default value is <code>nfsnobody</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DirectoryMode</i> The Unix directory mode in the form "nnnn". For example, <code>0666</code> represents the default access mode for all directories inside the file share. The default value is <code>0777</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FileMode</i> The Unix file mode in the form "nnnn". For example, <code>0666</code> represents the default file mode inside the file share. The default value is <code>0666</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheStaleTimeoutInSeconds</i> Refreshes a file share's cache by using Time To Live (TTL). TTL is the length of time since the last refresh after which access to the directory would cause the file gateway to first refresh that directory's contents from the Amazon S3 bucket or Amazon FSx file system. The TTL duration is in seconds. Valid Values:0, 300 to 2,592,000 seconds (5 minutes to 30 days)<br/>
        :return: FileShareARN:  The Amazon Resource Name (ARN) of the updated file share.<br/>        """
        pass

    def update_smb_file_share(self, FileShareARN: str, KMSEncrypted: Boolean=None, KMSKey: str=None, DefaultStorageClass: str=None, ObjectACL: str=None, ReadOnly: Boolean=None, GuessMIMETypeEnabled: Boolean=None, RequesterPays: Boolean=None, SMBACLEnabled: Boolean=None, AccessBasedEnumeration: Boolean=None, AdminUserList: List[UserListUser]=None, ValidUserList: List[UserListUser]=None, InvalidUserList: List[UserListUser]=None, AuditDestinationARN: str=None, CaseSensitivity: str=None, FileShareName: str=None, CacheAttributes: CacheAttributes=None, NotificationPolicy: str=None, OplocksEnabled: Boolean=None) -> UpdateSMBFileShareOutput:
        r"""Updates a Server Message Block (SMB) file share. This operation is only supported for S3 File Gateways. <note> To leave a file share field unchanged, set the corresponding input field to null. </note> <important> File gateways require Security Token Service (STS) to be activated to enable you to create a file share. Make sure that STS is activated in the Region you are creating your file gateway in. If STS is not activated in this Region, activate it. For information about how to activate STS, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html">Activating and deactivating STS in an Region</a> in the <i>Identity and Access Management User Guide</i>. File gateways don't support creating hard or symbolic links on a file share. </important>

        :param self:
        :param OplocksEnabled:  Specifies whether opportunistic locking is enabled for the SMB file share. <note> Enabling opportunistic locking on case-sensitive shares is not recommended for workloads that involve access to files with the same name in different case. </note> Valid Values: <code>true</code> | <code>false</code> <br/>NotificationPolicy:  The notification policy of the file share. <code>SettlingTimeInSeconds</code> controls the number of seconds to wait after the last point in time a client wrote to a file before generating an <code>ObjectUploaded</code> notification. Because clients can make many small writes to files, it's best to set this parameter for as long as possible to avoid generating multiple notifications for the same file in a small time period. <note>  <code>SettlingTimeInSeconds</code> has no effect on the timing of the object uploading to Amazon S3, only the timing of the notification. </note> The following example sets <code>NotificationPolicy</code> on with <code>SettlingTimeInSeconds</code> set to 60.  <code>{\"Upload\": {\"SettlingTimeInSeconds\": 60}}</code>  The following example sets <code>NotificationPolicy</code> off.  <code>{}</code> <br/>CacheAttributes:  Specifies refresh cache information for the file share.:<br/>FileShareName:  The name of the file share. Optional. <note>  <code>FileShareName</code> must be set if an S3 prefix name is set in <code>LocationARN</code>. </note><br/>CaseSensitivity:  The case of an object name in an Amazon S3 bucket. For <code>ClientSpecified</code>, the client determines the case sensitivity. For <code>CaseSensitive</code>, the gateway determines the case sensitivity. The default value is <code>ClientSpecified</code>.<br/>AuditDestinationARN:  The Amazon Resource Name (ARN) of the storage used for audit logs.<br/>InvalidUserList:  A list of users or groups in the Active Directory that are not allowed to access the file share. A group must be prefixed with the @ character. Acceptable formats include: <code>DOMAIN\User1</code>, <code>user1</code>, <code>@group1</code>, and <code>@DOMAIN\group1</code>. Can only be set if Authentication is set to <code>ActiveDirectory</code>.<br/>ValidUserList:  A list of users or groups in the Active Directory that are allowed to access the file share. A group must be prefixed with the @ character. Acceptable formats include: <code>DOMAIN\User1</code>, <code>user1</code>, <code>@group1</code>, and <code>@DOMAIN\group1</code>. Can only be set if Authentication is set to <code>ActiveDirectory</code>.<br/>AdminUserList:  A list of users or groups in the Active Directory that have administrator rights to the file share. A group must be prefixed with the @ character. Acceptable formats include: <code>DOMAIN\User1</code>, <code>user1</code>, <code>@group1</code>, and <code>@DOMAIN\group1</code>. Can only be set if Authentication is set to <code>ActiveDirectory</code>.<br/>AccessBasedEnumeration:  The files and folders on this share will only be visible to users with read access.<br/>SMBACLEnabled:  Set this value to <code>true</code> to enable access control list (ACL) on the SMB file share. Set it to <code>false</code> to map file and directory permissions to the POSIX permissions. For more information, see <a href="https://docs.aws.amazon.com/storagegateway/latest/userguide/smb-acl.html">Using Microsoft Windows ACLs to control access to an SMB file share</a> in the <i>Storage Gateway User Guide</i>. Valid Values: <code>true</code> | <code>false</code> <br/>RequesterPays:  A value that sets who pays the cost of the request and the cost associated with data download from the S3 bucket. If this value is set to <code>true</code>, the requester pays the costs; otherwise, the S3 bucket owner pays. However, the S3 bucket owner always pays the cost of storing data. <note>  <code>RequesterPays</code> is a configuration for the S3 bucket that backs the file share, so make sure that the configuration on the file share is the same as the S3 bucket configuration. </note> Valid Values: <code>true</code> | <code>false</code> <br/>GuessMIMETypeEnabled:  A value that enables guessing of the MIME type for uploaded objects based on file extensions. Set this value to <code>true</code> to enable MIME type guessing, otherwise set to <code>false</code>. The default value is <code>true</code>. Valid Values: <code>true</code> | <code>false</code> <br/>ReadOnly:  A value that sets the write status of a file share. Set this value to <code>true</code> to set write status to read-only, otherwise set to <code>false</code>. Valid Values: <code>true</code> | <code>false</code> <br/>ObjectACL:  A value that sets the access control list (ACL) permission for objects in the S3 bucket that a S3 File Gateway puts objects into. The default value is <code>private</code>.<br/>DefaultStorageClass:  The default storage class for objects put into an Amazon S3 bucket by the S3 File Gateway. The default value is <code>S3_INTELLIGENT_TIERING</code>. Optional. Valid Values: <code>S3_STANDARD</code> | <code>S3_INTELLIGENT_TIERING</code> | <code>S3_STANDARD_IA</code> | <code>S3_ONEZONE_IA</code> <br/>KMSKey:  The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric CMKs. This value can only be set when <code>KMSEncrypted</code> is <code>true</code>. Optional.<br/>KMSEncrypted:  Set to <code>true</code> to use Amazon S3 server-side encryption with your own KMS key, or <code>false</code> to use a key managed by Amazon S3. Optional. Valid Values: <code>true</code> | <code>false</code> <br/>FileShareARN:  The Amazon Resource Name (ARN) of the SMB file share that you want to update.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CacheStaleTimeoutInSeconds</i> Refreshes a file share's cache by using Time To Live (TTL). TTL is the length of time since the last refresh after which access to the directory would cause the file gateway to first refresh that directory's contents from the Amazon S3 bucket or Amazon FSx file system. The TTL duration is in seconds. Valid Values:0, 300 to 2,592,000 seconds (5 minutes to 30 days)<br/>
        :return: FileShareARN:  The Amazon Resource Name (ARN) of the updated SMB file share.<br/>        """
        pass

    def update_smb_file_share_visibility(self, FileSharesVisible: Boolean, GatewayARN: str) -> UpdateSMBFileShareVisibilityOutput:
        r"""Controls whether the shares on an S3 File Gateway are visible in a net view or browse list. The operation is only supported for S3 File Gateways.

        :param self:
        :param FileSharesVisible:  The shares on this gateway appear when listing shares.<br/>GatewayARN:  The Amazon Resource Name (ARN) of the gateway. Use the <a>ListGateways</a> operation to return a list of gateways for your account and Region.<br/>
        :return: GatewayARN:  The Amazon Resource Name (ARN) of the gateway. Use the <a>ListGateways</a> operation to return a list of gateways for your account and Region.<br/>        """
        pass

    def update_smb_security_strategy(self, SMBSecurityStrategy: str, GatewayARN: str) -> UpdateSMBSecurityStrategyOutput:
        r"""Updates the SMB security strategy on a file gateway. This action is only supported in file gateways. <note> This API is called Security level in the User Guide. A higher security level can affect performance of the gateway. </note>

        :param self:
        :param SMBSecurityStrategy:  Specifies the type of security strategy. ClientSpecified: if you use this option, requests are established based on what is negotiated by the client. This option is recommended when you want to maximize compatibility across different clients in your environment. Supported only in S3 File Gateway. MandatorySigning: if you use this option, file gateway only allows connections from SMBv2 or SMBv3 clients that have signing enabled. This option works with SMB clients on Microsoft Windows Vista, Windows Server 2008 or newer. MandatoryEncryption: if you use this option, file gateway only allows connections from SMBv3 clients that have encryption enabled. This option is highly recommended for environments that handle sensitive data. This option works with SMB clients on Microsoft Windows 8, Windows Server 2012 or newer.<br/>GatewayARN:  The Amazon Resource Name (ARN) of the gateway. Use the <a>ListGateways</a> operation to return a list of gateways for your account and Region.<br/>
        :return: GatewayARN:  The Amazon Resource Name (ARN) of the gateway. Use the <a>ListGateways</a> operation to return a list of gateways for your account and Region.<br/>        """
        pass

    def update_snapshot_schedule(self, RecurrenceInHours: int, StartAt: int, VolumeARN: str, Description: str=None, Tags: List[Tag]=None) -> UpdateSnapshotScheduleOutput:
        r"""Updates a snapshot schedule configured for a gateway volume. This operation is only supported in the cached volume and stored volume gateway types. The default snapshot schedule for volume is once every 24 hours, starting at the creation time of the volume. You can use this API to change the snapshot schedule configured for the volume. In the request you must identify the gateway volume whose snapshot schedule you want to update, and the schedule information, including when you want the snapshot to begin on a day and the frequency (in hours) of snapshots.

        :param self:
        :param Tags:  A list of up to 50 tags that can be assigned to a snapshot. Each tag is a key-value pair. <note> Valid characters for key and value are letters, spaces, and numbers representable in UTF-8 format, and the following special characters: + - = . _ : / @. The maximum length of a tag's key is 128 characters, and the maximum length for a tag's value is 256. </note><br/>Description:  Optional description of the snapshot that overwrites the existing description.<br/>RecurrenceInHours:  Frequency of snapshots. Specify the number of hours between snapshots.<br/>StartAt:  The hour of the day at which the snapshot schedule begins represented as <i>hh</i>, where <i>hh</i> is the hour (0 to 23). The hour of the day is in the time zone of the gateway.<br/>VolumeARN:  The Amazon Resource Name (ARN) of the volume. Use the <a>ListVolumes</a> operation to return a list of gateway volumes.<br/>
        :return: VolumeARN:  The Amazon Resource Name (ARN) of the volume. Use the <a>ListVolumes</a> operation to return a list of gateway volumes.<br/>        """
        pass

    def update_vtl_device_type(self, DeviceType: str, VTLDeviceARN: str) -> UpdateVTLDeviceTypeOutput:
        r"""Updates the type of medium changer in a tape gateway. When you activate a tape gateway, you select a medium changer type for the tape gateway. This operation enables you to select a different type of medium changer after a tape gateway is activated. This operation is only supported in the tape gateway type.

        :param self:
        :param DeviceType:  The type of medium changer you want to select. Valid Values: <code>STK-L700</code> | <code>AWS-Gateway-VTL</code> | <code>IBM-03584L32-0402</code> <br/>VTLDeviceARN:  The Amazon Resource Name (ARN) of the medium changer you want to select.<br/>
        :return: VTLDeviceARN:  The Amazon Resource Name (ARN) of the medium changer you have selected.<br/>        """
        pass





class STS(BaseClient):
    r"""<fullname>Security Token Service</fullname> Security Token Service (STS) enables you to request temporary, limited-privilege credentials for Identity and Access Management (IAM) users or for users that you authenticate (federated users). This guide provides descriptions of the STS API. For more information about using this service, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html">Temporary Security Credentials</a>."""




    class AssumeRoleRequest(Mapping):
        pass
    
    class AssumeRoleResponse(Mapping):
        pass
    
    class PolicyDescriptorType(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class tagKeyType(object):
        pass
    
    class AssumeRoleWithSAMLRequest(Mapping):
        pass
    
    class AssumeRoleWithSAMLResponse(Mapping):
        pass
    
    class AssumeRoleWithWebIdentityRequest(Mapping):
        pass
    
    class AssumeRoleWithWebIdentityResponse(Mapping):
        pass
    
    class DecodeAuthorizationMessageRequest(Mapping):
        pass
    
    class DecodeAuthorizationMessageResponse(Mapping):
        pass
    
    class GetAccessKeyInfoRequest(Mapping):
        pass
    
    class GetAccessKeyInfoResponse(Mapping):
        pass
    
    class GetCallerIdentityRequest(Mapping):
        pass
    
    class GetCallerIdentityResponse(Mapping):
        pass
    
    class GetFederationTokenRequest(Mapping):
        pass
    
    class GetFederationTokenResponse(Mapping):
        pass
    
    class GetSessionTokenRequest(Mapping):
        pass
    
    class GetSessionTokenResponse(Mapping):
        pass
    
    def assume_role(self, RoleSessionName: str, RoleArn: str, PolicyArns: List[PolicyDescriptorType]=None, Policy: str=None, DurationSeconds: int=None, Tags: List[Tag]=None, TransitiveTagKeys: List[tagKeyType]=None, ExternalId: str=None, SerialNumber: str=None, TokenCode: str=None, SourceIdentity: str=None) -> AssumeRoleResponse:
        r"""Returns a set of temporary security credentials that you can use to access Amazon Web Services resources that you might not normally have access to. These temporary credentials consist of an access key ID, a secret access key, and a security token. Typically, you use <code>AssumeRole</code> within your account or for cross-account access. For a comparison of <code>AssumeRole</code> with other API operations that produce temporary credentials, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html">Requesting Temporary Security Credentials</a> and <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison">Comparing the STS API operations</a> in the <i>IAM User Guide</i>.  <b>Permissions</b>  The temporary security credentials created by <code>AssumeRole</code> can be used to make API calls to any Amazon Web Services service with the following exception: You cannot call the STS <code>GetFederationToken</code> or <code>GetSessionToken</code> API operations. (Optional) You can pass inline or managed <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session">session policies</a> to this operation. You can pass a single JSON policy document to use as an inline session policy. You can also specify up to 10 managed policies to use as managed session policies. The plaintext that you use for both inline and managed session policies can't exceed 2,048 characters. Passing policies to this operation returns new temporary credentials. The resulting session's permissions are the intersection of the role's identity-based policy and the session policies. You can use the role's temporary credentials in subsequent Amazon Web Services API calls to access resources in the account that owns the role. You cannot use session policies to grant more permissions than those allowed by the identity-based policy of the role that is being assumed. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session">Session Policies</a> in the <i>IAM User Guide</i>. To assume a role from a different account, your account must be trusted by the role. The trust relationship is defined in the role's trust policy when the role is created. That trust policy states which accounts are allowed to delegate that access to users in the account.  A user who wants to access a role in a different account must also have permissions that are delegated from the user account administrator. The administrator must attach a policy that allows the user to call <code>AssumeRole</code> for the ARN of the role in the other account. If the user is in the same account as the role, then you can do either of the following: <ul> <li> Attach a policy to the user (identical to the previous user in a different account). </li> <li> Add the user as a principal directly in the role's trust policy. </li> </ul> In this case, the trust policy acts as an IAM resource-based policy. Users in the same account as the role do not need explicit permission to assume the role. For more information about trust policies and resource-based policies, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html">IAM Policies</a> in the <i>IAM User Guide</i>.  <b>Tags</b>  (Optional) You can pass tag key-value pairs to your session. These tags are called session tags. For more information about session tags, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html">Passing Session Tags in STS</a> in the <i>IAM User Guide</i>. An administrator must grant you the permissions necessary to pass session tags. The administrator can also create granular permissions to allow you to pass only specific session tags. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html">Tutorial: Using Tags for Attribute-Based Access Control</a> in the <i>IAM User Guide</i>. You can set the session tags as transitive. Transitive tags persist during role chaining. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html#id_session-tags_role-chaining">Chaining Roles with Session Tags</a> in the <i>IAM User Guide</i>.  <b>Using MFA with AssumeRole</b>  (Optional) You can include multi-factor authentication (MFA) information when you call <code>AssumeRole</code>. This is useful for cross-account scenarios to ensure that the user that assumes the role has been authenticated with an Amazon Web Services MFA device. In that scenario, the trust policy of the role being assumed includes a condition that tests for MFA authentication. If the caller does not include valid MFA information, the request to assume the role is denied. The condition in a trust policy that tests for MFA authentication might look like the following example.  <code>"Condition": {"Bool": {"aws:MultiFactorAuthPresent": true}}</code>  For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/MFAProtectedAPI.html">Configuring MFA-Protected API Access</a> in the <i>IAM User Guide</i> guide. To use MFA with <code>AssumeRole</code>, you pass values for the <code>SerialNumber</code> and <code>TokenCode</code> parameters. The <code>SerialNumber</code> value identifies the user's hardware or virtual MFA device. The <code>TokenCode</code> is the time-based one-time password (TOTP) that the MFA device produces. 

        :param self:
        :param SourceIdentity:  The source identity specified by the principal that is calling the <code>AssumeRole</code> operation. You can require users to specify a source identity when they assume a role. You do this by using the <code>sts:SourceIdentity</code> condition key in a role trust policy. You can use source identity information in CloudTrail logs to determine who took actions with a role. You can use the <code>aws:SourceIdentity</code> condition key to further control access to Amazon Web Services resources based on the value of source identity. For more information about using source identity, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_monitor.html">Monitor and control actions taken with assumed roles</a> in the <i>IAM User Guide</i>. The regex used to validate this parameter is a string of characters consisting of upper- and lower-case alphanumeric characters with no spaces. You can also include underscores or any of the following characters: =,.@-. You cannot use a value that begins with the text <code>aws:</code>. This prefix is reserved for Amazon Web Services internal use.<br/>TokenCode:  The value provided by the MFA device, if the trust policy of the role being assumed requires MFA. (In other words, if the policy includes a condition that tests for MFA). If the role being assumed requires MFA and if the <code>TokenCode</code> value is missing or expired, the <code>AssumeRole</code> call returns an "access denied" error. The format for this parameter, as described by its regex pattern, is a sequence of six numeric digits.<br/>SerialNumber:  The identification number of the MFA device that is associated with the user who is making the <code>AssumeRole</code> call. Specify this value if the trust policy of the role being assumed includes a condition that requires MFA authentication. The value is either the serial number for a hardware device (such as <code>GAHT12345678</code>) or an Amazon Resource Name (ARN) for a virtual device (such as <code>arn:aws:iam::123456789012:mfa/user</code>). The regex used to validate this parameter is a string of characters consisting of upper- and lower-case alphanumeric characters with no spaces. You can also include underscores or any of the following characters: =,.@-<br/>ExternalId:  A unique identifier that might be required when you assume a role in another account. If the administrator of the account to which the role belongs provided you with an external ID, then provide that value in the <code>ExternalId</code> parameter. This value can be any string, such as a passphrase or account number. A cross-account role is usually set up to trust everyone in an account. Therefore, the administrator of the trusting account might send an external ID to the administrator of the trusted account. That way, only someone with the ID can assume the role, rather than everyone in the account. For more information about the external ID, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html">How to Use an External ID When Granting Access to Your Amazon Web Services Resources to a Third Party</a> in the <i>IAM User Guide</i>. The regex used to validate this parameter is a string of characters consisting of upper- and lower-case alphanumeric characters with no spaces. You can also include underscores or any of the following characters: =,.@:/-<br/>TransitiveTagKeys:  A list of keys for session tags that you want to set as transitive. If you set a tag key as transitive, the corresponding key and value passes to subsequent sessions in a role chain. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html#id_session-tags_role-chaining">Chaining Roles with Session Tags</a> in the <i>IAM User Guide</i>. This parameter is optional. When you set session tags as transitive, the session policy and session tags packed binary limit is not affected. If you choose not to specify a transitive tag key, then no tags are passed from this session to any subsequent sessions.<br/>Tags:  A list of session tags that you want to pass. Each session tag consists of a key name and an associated value. For more information about session tags, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html">Tagging STS Sessions</a> in the <i>IAM User Guide</i>. This parameter is optional. You can pass up to 50 session tags. The plaintext session tag keys can’t exceed 128 characters, and the values can’t exceed 256 characters. For these and additional limits, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-limits.html#reference_iam-limits-entity-length">IAM and STS Character Limits</a> in the <i>IAM User Guide</i>. <note> An Amazon Web Services conversion compresses the passed session policies and session tags into a packed binary format that has a separate limit. Your request can fail for this limit even if your plaintext meets the other requirements. The <code>PackedPolicySize</code> response element indicates by percentage how close the policies and tags for your request are to the upper size limit.  </note> You can pass a session tag with the same key as a tag that is already attached to the role. When you do, session tags override a role tag with the same key.  Tag key–value pairs are not case sensitive, but case is preserved. This means that you cannot have separate <code>Department</code> and <code>department</code> tag keys. Assume that the role has the <code>Department</code>=<code>Marketing</code> tag and you pass the <code>department</code>=<code>engineering</code> session tag. <code>Department</code> and <code>department</code> are not saved as separate tags, and the session tag passed in the request takes precedence over the role tag. Additionally, if you used temporary credentials to perform this operation, the new session inherits any transitive session tags from the calling session. If you pass a session tag with the same key as an inherited tag, the operation fails. To view the inherited tags for a session, see the CloudTrail logs. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/session-tags.html#id_session-tags_ctlogs">Viewing Session Tags in CloudTrail</a> in the <i>IAM User Guide</i>.<br/>DurationSeconds:  The duration, in seconds, of the role session. The value specified can can range from 900 seconds (15 minutes) up to the maximum session duration that is set for the role. The maximum session duration setting can have a value from 1 hour to 12 hours. If you specify a value higher than this setting or the administrator setting (whichever is lower), the operation fails. For example, if you specify a session duration of 12 hours, but your administrator set the maximum session duration to 6 hours, your operation fails. To learn how to view the maximum value for your role, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html#id_roles_use_view-role-max-session">View the Maximum Session Duration Setting for a Role</a> in the <i>IAM User Guide</i>. By default, the value is set to <code>3600</code> seconds.  <note> The <code>DurationSeconds</code> parameter is separate from the duration of a console session that you might request using the returned credentials. The request to the federation endpoint for a console sign-in token takes a <code>SessionDuration</code> parameter that specifies the maximum length of the console session. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_enable-console-custom-url.html">Creating a URL that Enables Federated Users to Access the Management Console</a> in the <i>IAM User Guide</i>. </note><br/>Policy:  An IAM policy in JSON format that you want to use as an inline session policy. This parameter is optional. Passing policies to this operation returns new temporary credentials. The resulting session's permissions are the intersection of the role's identity-based policy and the session policies. You can use the role's temporary credentials in subsequent Amazon Web Services API calls to access resources in the account that owns the role. You cannot use session policies to grant more permissions than those allowed by the identity-based policy of the role that is being assumed. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session">Session Policies</a> in the <i>IAM User Guide</i>. The plaintext that you use for both inline and managed session policies can't exceed 2,048 characters. The JSON policy characters can be any ASCII character from the space character to the end of the valid character list (\u0020 through \u00FF). It can also include the tab (\u0009), linefeed (\u000A), and carriage return (\u000D) characters. <note> An Amazon Web Services conversion compresses the passed session policies and session tags into a packed binary format that has a separate limit. Your request can fail for this limit even if your plaintext meets the other requirements. The <code>PackedPolicySize</code> response element indicates by percentage how close the policies and tags for your request are to the upper size limit.  </note><br/>PolicyArns:  The Amazon Resource Names (ARNs) of the IAM managed policies that you want to use as managed session policies. The policies must exist in the same account as the role. This parameter is optional. You can provide up to 10 managed policy ARNs. However, the plaintext that you use for both inline and managed session policies can't exceed 2,048 characters. For more information about ARNs, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces</a> in the Amazon Web Services General Reference. <note> An Amazon Web Services conversion compresses the passed session policies and session tags into a packed binary format that has a separate limit. Your request can fail for this limit even if your plaintext meets the other requirements. The <code>PackedPolicySize</code> response element indicates by percentage how close the policies and tags for your request are to the upper size limit.  </note> Passing policies to this operation returns new temporary credentials. The resulting session's permissions are the intersection of the role's identity-based policy and the session policies. You can use the role's temporary credentials in subsequent Amazon Web Services API calls to access resources in the account that owns the role. You cannot use session policies to grant more permissions than those allowed by the identity-based policy of the role that is being assumed. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session">Session Policies</a> in the <i>IAM User Guide</i>.<br/>RoleSessionName:  An identifier for the assumed role session. Use the role session name to uniquely identify a session when the same role is assumed by different principals or for different reasons. In cross-account scenarios, the role session name is visible to, and can be logged by the account that owns the role. The role session name is also used in the ARN of the assumed role principal. This means that subsequent cross-account API requests that use the temporary security credentials will expose the role session name to the external account in their CloudTrail logs. The regex used to validate this parameter is a string of characters consisting of upper- and lower-case alphanumeric characters with no spaces. You can also include underscores or any of the following characters: =,.@-<br/>RoleArn:  The Amazon Resource Name (ARN) of the role to assume.<br/>
        :return: SourceIdentity:  The source identity specified by the principal that is calling the <code>AssumeRole</code> operation. You can require users to specify a source identity when they assume a role. You do this by using the <code>sts:SourceIdentity</code> condition key in a role trust policy. You can use source identity information in CloudTrail logs to determine who took actions with a role. You can use the <code>aws:SourceIdentity</code> condition key to further control access to Amazon Web Services resources based on the value of source identity. For more information about using source identity, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_monitor.html">Monitor and control actions taken with assumed roles</a> in the <i>IAM User Guide</i>. The regex used to validate this parameter is a string of characters consisting of upper- and lower-case alphanumeric characters with no spaces. You can also include underscores or any of the following characters: =,.@-<br/>PackedPolicySize:  A percentage value that indicates the packed size of the session policies and session tags combined passed in the request. The request fails if the packed size is greater than 100 percent, which means the policies and tags exceeded the allowed space.<br/>AssumedRoleUser:  The Amazon Resource Name (ARN) and the assumed role ID, which are identifiers that you can use to refer to the resulting temporary security credentials. For example, you can reference these credentials as a principal in a resource-based policy by using the ARN or assumed role ID. The ARN and ID include the <code>RoleSessionName</code> that you specified when you called <code>AssumeRole</code>. :<br/>Credentials:  The temporary security credentials, which include an access key ID, a secret access key, and a security (or session) token. <note> The size of the security token that STS API operations return is not fixed. We strongly recommend that you make no assumptions about the maximum size. </note>:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Expiration</i> The date on which the current credentials expire.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SessionToken</i> The token that users must pass to the service API to use the temporary credentials.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretAccessKey</i> The secret access key that can be used to sign requests.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccessKeyId</i> The access key ID that identifies the temporary security credentials.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The ARN of the temporary security credentials that are returned from the <a>AssumeRole</a> action. For more information about ARNs and how to use them in policies, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html">IAM Identifiers</a> in the <i>IAM User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssumedRoleId</i> A unique identifier that contains the role ID and the role session name of the role that is being assumed. The role ID is generated by Amazon Web Services when the role is created.<br/>        """
        pass

    def assume_role_with_saml(self, SAMLAssertion: str, PrincipalArn: str, RoleArn: str, PolicyArns: List[PolicyDescriptorType]=None, Policy: str=None, DurationSeconds: int=None) -> AssumeRoleWithSAMLResponse:
        r"""Returns a set of temporary security credentials for users who have been authenticated via a SAML authentication response. This operation provides a mechanism for tying an enterprise identity store or directory to role-based Amazon Web Services access without user-specific credentials or configuration. For a comparison of <code>AssumeRoleWithSAML</code> with the other API operations that produce temporary credentials, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html">Requesting Temporary Security Credentials</a> and <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison">Comparing the STS API operations</a> in the <i>IAM User Guide</i>. The temporary security credentials returned by this operation consist of an access key ID, a secret access key, and a security token. Applications can use these temporary security credentials to sign calls to Amazon Web Services services.  <b>Session Duration</b>  By default, the temporary security credentials created by <code>AssumeRoleWithSAML</code> last for one hour. However, you can use the optional <code>DurationSeconds</code> parameter to specify the duration of your session. Your role session lasts for the duration that you specify, or until the time specified in the SAML authentication response's <code>SessionNotOnOrAfter</code> value, whichever is shorter. You can provide a <code>DurationSeconds</code> value from 900 seconds (15 minutes) up to the maximum session duration setting for the role. This setting can have a value from 1 hour to 12 hours. To learn how to view the maximum value for your role, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html#id_roles_use_view-role-max-session">View the Maximum Session Duration Setting for a Role</a> in the <i>IAM User Guide</i>. The maximum session duration limit applies when you use the <code>AssumeRole*</code> API operations or the <code>assume-role*</code> CLI commands. However the limit does not apply when you use those operations to create a console URL. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html">Using IAM Roles</a> in the <i>IAM User Guide</i>. <note>  <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-role-chaining">Role chaining</a> limits your CLI or Amazon Web Services API role session to a maximum of one hour. When you use the <code>AssumeRole</code> API operation to assume a role, you can specify the duration of your role session with the <code>DurationSeconds</code> parameter. You can specify a parameter value of up to 43200 seconds (12 hours), depending on the maximum session duration setting for your role. However, if you assume a role using role chaining and provide a <code>DurationSeconds</code> parameter value greater than one hour, the operation fails. </note>  <b>Permissions</b>  The temporary security credentials created by <code>AssumeRoleWithSAML</code> can be used to make API calls to any Amazon Web Services service with the following exception: you cannot call the STS <code>GetFederationToken</code> or <code>GetSessionToken</code> API operations. (Optional) You can pass inline or managed <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session">session policies</a> to this operation. You can pass a single JSON policy document to use as an inline session policy. You can also specify up to 10 managed policies to use as managed session policies. The plaintext that you use for both inline and managed session policies can't exceed 2,048 characters. Passing policies to this operation returns new temporary credentials. The resulting session's permissions are the intersection of the role's identity-based policy and the session policies. You can use the role's temporary credentials in subsequent Amazon Web Services API calls to access resources in the account that owns the role. You cannot use session policies to grant more permissions than those allowed by the identity-based policy of the role that is being assumed. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session">Session Policies</a> in the <i>IAM User Guide</i>. Calling <code>AssumeRoleWithSAML</code> does not require the use of Amazon Web Services security credentials. The identity of the caller is validated by using keys in the metadata document that is uploaded for the SAML provider entity for your identity provider.  <important> Calling <code>AssumeRoleWithSAML</code> can result in an entry in your CloudTrail logs. The entry includes the value in the <code>NameID</code> element of the SAML assertion. We recommend that you use a <code>NameIDType</code> that is not associated with any personally identifiable information (PII). For example, you could instead use the persistent identifier (<code>urn:oasis:names:tc:SAML:2.0:nameid-format:persistent</code>). </important>  <b>Tags</b>  (Optional) You can configure your IdP to pass attributes into your SAML assertion as session tags. Each session tag consists of a key name and an associated value. For more information about session tags, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html">Passing Session Tags in STS</a> in the <i>IAM User Guide</i>. You can pass up to 50 session tags. The plaintext session tag keys can’t exceed 128 characters and the values can’t exceed 256 characters. For these and additional limits, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-limits.html#reference_iam-limits-entity-length">IAM and STS Character Limits</a> in the <i>IAM User Guide</i>. <note> An Amazon Web Services conversion compresses the passed session policies and session tags into a packed binary format that has a separate limit. Your request can fail for this limit even if your plaintext meets the other requirements. The <code>PackedPolicySize</code> response element indicates by percentage how close the policies and tags for your request are to the upper size limit.  </note> You can pass a session tag with the same key as a tag that is attached to the role. When you do, session tags override the role's tags with the same key. An administrator must grant you the permissions necessary to pass session tags. The administrator can also create granular permissions to allow you to pass only specific session tags. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html">Tutorial: Using Tags for Attribute-Based Access Control</a> in the <i>IAM User Guide</i>. You can set the session tags as transitive. Transitive tags persist during role chaining. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html#id_session-tags_role-chaining">Chaining Roles with Session Tags</a> in the <i>IAM User Guide</i>.  <b>SAML Configuration</b>  Before your application can call <code>AssumeRoleWithSAML</code>, you must configure your SAML identity provider (IdP) to issue the claims required by Amazon Web Services. Additionally, you must use Identity and Access Management (IAM) to create a SAML provider entity in your Amazon Web Services account that represents your identity provider. You must also create an IAM role that specifies this SAML provider in its trust policy.  For more information, see the following resources: <ul> <li>  <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_saml.html">About SAML 2.0-based Federation</a> in the <i>IAM User Guide</i>.  </li> <li>  <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_saml.html">Creating SAML Identity Providers</a> in the <i>IAM User Guide</i>.  </li> <li>  <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_saml_relying-party.html">Configuring a Relying Party and Claims</a> in the <i>IAM User Guide</i>.  </li> <li>  <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-idp_saml.html">Creating a Role for SAML 2.0 Federation</a> in the <i>IAM User Guide</i>.  </li> </ul>

        :param self:
        :param DurationSeconds:  The duration, in seconds, of the role session. Your role session lasts for the duration that you specify for the <code>DurationSeconds</code> parameter, or until the time specified in the SAML authentication response's <code>SessionNotOnOrAfter</code> value, whichever is shorter. You can provide a <code>DurationSeconds</code> value from 900 seconds (15 minutes) up to the maximum session duration setting for the role. This setting can have a value from 1 hour to 12 hours. If you specify a value higher than this setting, the operation fails. For example, if you specify a session duration of 12 hours, but your administrator set the maximum session duration to 6 hours, your operation fails. To learn how to view the maximum value for your role, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html#id_roles_use_view-role-max-session">View the Maximum Session Duration Setting for a Role</a> in the <i>IAM User Guide</i>. By default, the value is set to <code>3600</code> seconds.  <note> The <code>DurationSeconds</code> parameter is separate from the duration of a console session that you might request using the returned credentials. The request to the federation endpoint for a console sign-in token takes a <code>SessionDuration</code> parameter that specifies the maximum length of the console session. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_enable-console-custom-url.html">Creating a URL that Enables Federated Users to Access the Management Console</a> in the <i>IAM User Guide</i>. </note><br/>Policy:  An IAM policy in JSON format that you want to use as an inline session policy. This parameter is optional. Passing policies to this operation returns new temporary credentials. The resulting session's permissions are the intersection of the role's identity-based policy and the session policies. You can use the role's temporary credentials in subsequent Amazon Web Services API calls to access resources in the account that owns the role. You cannot use session policies to grant more permissions than those allowed by the identity-based policy of the role that is being assumed. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session">Session Policies</a> in the <i>IAM User Guide</i>.  The plaintext that you use for both inline and managed session policies can't exceed 2,048 characters. The JSON policy characters can be any ASCII character from the space character to the end of the valid character list (\u0020 through \u00FF). It can also include the tab (\u0009), linefeed (\u000A), and carriage return (\u000D) characters. <note> An Amazon Web Services conversion compresses the passed session policies and session tags into a packed binary format that has a separate limit. Your request can fail for this limit even if your plaintext meets the other requirements. The <code>PackedPolicySize</code> response element indicates by percentage how close the policies and tags for your request are to the upper size limit.  </note><br/>PolicyArns:  The Amazon Resource Names (ARNs) of the IAM managed policies that you want to use as managed session policies. The policies must exist in the same account as the role. This parameter is optional. You can provide up to 10 managed policy ARNs. However, the plaintext that you use for both inline and managed session policies can't exceed 2,048 characters. For more information about ARNs, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces</a> in the Amazon Web Services General Reference. <note> An Amazon Web Services conversion compresses the passed session policies and session tags into a packed binary format that has a separate limit. Your request can fail for this limit even if your plaintext meets the other requirements. The <code>PackedPolicySize</code> response element indicates by percentage how close the policies and tags for your request are to the upper size limit.  </note> Passing policies to this operation returns new temporary credentials. The resulting session's permissions are the intersection of the role's identity-based policy and the session policies. You can use the role's temporary credentials in subsequent Amazon Web Services API calls to access resources in the account that owns the role. You cannot use session policies to grant more permissions than those allowed by the identity-based policy of the role that is being assumed. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session">Session Policies</a> in the <i>IAM User Guide</i>.<br/>SAMLAssertion:  The base64 encoded SAML authentication response provided by the IdP. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/create-role-saml-IdP-tasks.html">Configuring a Relying Party and Adding Claims</a> in the <i>IAM User Guide</i>. <br/>PrincipalArn:  The Amazon Resource Name (ARN) of the SAML provider in IAM that describes the IdP.<br/>RoleArn:  The Amazon Resource Name (ARN) of the role that the caller is assuming.<br/>
        :return: SourceIdentity:  The value in the <code>SourceIdentity</code> attribute in the SAML assertion.  You can require users to set a source identity value when they assume a role. You do this by using the <code>sts:SourceIdentity</code> condition key in a role trust policy. That way, actions that are taken with the role are associated with that user. After the source identity is set, the value cannot be changed. It is present in the request for all actions that are taken by the role and persists across <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts#iam-term-role-chaining">chained role</a> sessions. You can configure your SAML identity provider to use an attribute associated with your users, like user name or email, as the source identity when calling <code>AssumeRoleWithSAML</code>. You do this by adding an attribute to the SAML assertion. For more information about using source identity, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_monitor.html">Monitor and control actions taken with assumed roles</a> in the <i>IAM User Guide</i>. The regex used to validate this parameter is a string of characters consisting of upper- and lower-case alphanumeric characters with no spaces. You can also include underscores or any of the following characters: =,.@-<br/>NameQualifier:  A hash value based on the concatenation of the following: <ul> <li> The <code>Issuer</code> response value. </li> <li> The Amazon Web Services account ID. </li> <li> The friendly name (the last part of the ARN) of the SAML provider in IAM. </li> </ul> The combination of <code>NameQualifier</code> and <code>Subject</code> can be used to uniquely identify a federated user. The following pseudocode shows how the hash value is calculated:  <code>BASE64 ( SHA1 ( "https://example.com/saml" + "123456789012" + "/MySAMLIdP" ) )</code> <br/>Audience:   The value of the <code>Recipient</code> attribute of the <code>SubjectConfirmationData</code> element of the SAML assertion. <br/>Issuer:  The value of the <code>Issuer</code> element of the SAML assertion.<br/>SubjectType:   The format of the name ID, as defined by the <code>Format</code> attribute in the <code>NameID</code> element of the SAML assertion. Typical examples of the format are <code>transient</code> or <code>persistent</code>.   If the format includes the prefix <code>urn:oasis:names:tc:SAML:2.0:nameid-format</code>, that prefix is removed. For example, <code>urn:oasis:names:tc:SAML:2.0:nameid-format:transient</code> is returned as <code>transient</code>. If the format includes any other prefix, the format is returned with no modifications.<br/>Subject:  The value of the <code>NameID</code> element in the <code>Subject</code> element of the SAML assertion.<br/>PackedPolicySize:  A percentage value that indicates the packed size of the session policies and session tags combined passed in the request. The request fails if the packed size is greater than 100 percent, which means the policies and tags exceeded the allowed space.<br/>AssumedRoleUser:  The identifiers for the temporary security credentials that the operation returns.:<br/>Credentials:  The temporary security credentials, which include an access key ID, a secret access key, and a security (or session) token. <note> The size of the security token that STS API operations return is not fixed. We strongly recommend that you make no assumptions about the maximum size. </note>:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Expiration</i> The date on which the current credentials expire.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SessionToken</i> The token that users must pass to the service API to use the temporary credentials.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretAccessKey</i> The secret access key that can be used to sign requests.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccessKeyId</i> The access key ID that identifies the temporary security credentials.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The ARN of the temporary security credentials that are returned from the <a>AssumeRole</a> action. For more information about ARNs and how to use them in policies, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html">IAM Identifiers</a> in the <i>IAM User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssumedRoleId</i> A unique identifier that contains the role ID and the role session name of the role that is being assumed. The role ID is generated by Amazon Web Services when the role is created.<br/>        """
        pass

    def assume_role_with_web_identity(self, WebIdentityToken: str, RoleSessionName: str, RoleArn: str, ProviderId: str=None, PolicyArns: List[PolicyDescriptorType]=None, Policy: str=None, DurationSeconds: int=None) -> AssumeRoleWithWebIdentityResponse:
        r"""Returns a set of temporary security credentials for users who have been authenticated in a mobile or web application with a web identity provider. Example providers include Amazon Cognito, Login with Amazon, Facebook, Google, or any OpenID Connect-compatible identity provider. <note> For mobile applications, we recommend that you use Amazon Cognito. You can use Amazon Cognito with the <a href="http://aws.amazon.com/sdkforios/">Amazon Web Services SDK for iOS Developer Guide</a> and the <a href="http://aws.amazon.com/sdkforandroid/">Amazon Web Services SDK for Android Developer Guide</a> to uniquely identify a user. You can also supply the user with a consistent identity throughout the lifetime of an application. To learn more about Amazon Cognito, see <a href="https://docs.aws.amazon.com/mobile/sdkforandroid/developerguide/cognito-auth.html#d0e840">Amazon Cognito Overview</a> in <i>Amazon Web Services SDK for Android Developer Guide</i> and <a href="https://docs.aws.amazon.com/mobile/sdkforios/developerguide/cognito-auth.html#d0e664">Amazon Cognito Overview</a> in the <i>Amazon Web Services SDK for iOS Developer Guide</i>. </note> Calling <code>AssumeRoleWithWebIdentity</code> does not require the use of Amazon Web Services security credentials. Therefore, you can distribute an application (for example, on mobile devices) that requests temporary security credentials without including long-term Amazon Web Services credentials in the application. You also don't need to deploy server-based proxy services that use long-term Amazon Web Services credentials. Instead, the identity of the caller is validated by using a token from the web identity provider. For a comparison of <code>AssumeRoleWithWebIdentity</code> with the other API operations that produce temporary credentials, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html">Requesting Temporary Security Credentials</a> and <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison">Comparing the STS API operations</a> in the <i>IAM User Guide</i>. The temporary security credentials returned by this API consist of an access key ID, a secret access key, and a security token. Applications can use these temporary security credentials to sign calls to Amazon Web Services service API operations.  <b>Session Duration</b>  By default, the temporary security credentials created by <code>AssumeRoleWithWebIdentity</code> last for one hour. However, you can use the optional <code>DurationSeconds</code> parameter to specify the duration of your session. You can provide a value from 900 seconds (15 minutes) up to the maximum session duration setting for the role. This setting can have a value from 1 hour to 12 hours. To learn how to view the maximum value for your role, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html#id_roles_use_view-role-max-session">View the Maximum Session Duration Setting for a Role</a> in the <i>IAM User Guide</i>. The maximum session duration limit applies when you use the <code>AssumeRole*</code> API operations or the <code>assume-role*</code> CLI commands. However the limit does not apply when you use those operations to create a console URL. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html">Using IAM Roles</a> in the <i>IAM User Guide</i>.   <b>Permissions</b>  The temporary security credentials created by <code>AssumeRoleWithWebIdentity</code> can be used to make API calls to any Amazon Web Services service with the following exception: you cannot call the STS <code>GetFederationToken</code> or <code>GetSessionToken</code> API operations. (Optional) You can pass inline or managed <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session">session policies</a> to this operation. You can pass a single JSON policy document to use as an inline session policy. You can also specify up to 10 managed policies to use as managed session policies. The plaintext that you use for both inline and managed session policies can't exceed 2,048 characters. Passing policies to this operation returns new temporary credentials. The resulting session's permissions are the intersection of the role's identity-based policy and the session policies. You can use the role's temporary credentials in subsequent Amazon Web Services API calls to access resources in the account that owns the role. You cannot use session policies to grant more permissions than those allowed by the identity-based policy of the role that is being assumed. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session">Session Policies</a> in the <i>IAM User Guide</i>.  <b>Tags</b>  (Optional) You can configure your IdP to pass attributes into your web identity token as session tags. Each session tag consists of a key name and an associated value. For more information about session tags, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html">Passing Session Tags in STS</a> in the <i>IAM User Guide</i>. You can pass up to 50 session tags. The plaintext session tag keys can’t exceed 128 characters and the values can’t exceed 256 characters. For these and additional limits, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-limits.html#reference_iam-limits-entity-length">IAM and STS Character Limits</a> in the <i>IAM User Guide</i>. <note> An Amazon Web Services conversion compresses the passed session policies and session tags into a packed binary format that has a separate limit. Your request can fail for this limit even if your plaintext meets the other requirements. The <code>PackedPolicySize</code> response element indicates by percentage how close the policies and tags for your request are to the upper size limit.  </note> You can pass a session tag with the same key as a tag that is attached to the role. When you do, the session tag overrides the role tag with the same key. An administrator must grant you the permissions necessary to pass session tags. The administrator can also create granular permissions to allow you to pass only specific session tags. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html">Tutorial: Using Tags for Attribute-Based Access Control</a> in the <i>IAM User Guide</i>. You can set the session tags as transitive. Transitive tags persist during role chaining. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html#id_session-tags_role-chaining">Chaining Roles with Session Tags</a> in the <i>IAM User Guide</i>.  <b>Identities</b>  Before your application can call <code>AssumeRoleWithWebIdentity</code>, you must have an identity token from a supported identity provider and create a role that the application can assume. The role that your application assumes must trust the identity provider that is associated with the identity token. In other words, the identity provider must be specified in the role's trust policy.  <important> Calling <code>AssumeRoleWithWebIdentity</code> can result in an entry in your CloudTrail logs. The entry includes the <a href="http://openid.net/specs/openid-connect-core-1_0.html#Claims">Subject</a> of the provided web identity token. We recommend that you avoid using any personally identifiable information (PII) in this field. For example, you could instead use a GUID or a pairwise identifier, as <a href="http://openid.net/specs/openid-connect-core-1_0.html#SubjectIDTypes">suggested in the OIDC specification</a>. </important> For more information about how to use web identity federation and the <code>AssumeRoleWithWebIdentity</code> API, see the following resources:  <ul> <li>  <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_oidc_manual.html">Using Web Identity Federation API Operations for Mobile Apps</a> and <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_assumerolewithwebidentity">Federation Through a Web-based Identity Provider</a>.  </li> <li>  <a href="https://aws.amazon.com/blogs/aws/the-aws-web-identity-federation-playground/"> Web Identity Federation Playground</a>. Walk through the process of authenticating through Login with Amazon, Facebook, or Google, getting temporary security credentials, and then using those credentials to make a request to Amazon Web Services.  </li> <li>  <a href="http://aws.amazon.com/sdkforios/">Amazon Web Services SDK for iOS Developer Guide</a> and <a href="http://aws.amazon.com/sdkforandroid/">Amazon Web Services SDK for Android Developer Guide</a>. These toolkits contain sample apps that show how to invoke the identity providers. The toolkits then show how to use the information from these providers to get and use temporary security credentials.  </li> <li>  <a href="http://aws.amazon.com/articles/web-identity-federation-with-mobile-applications">Web Identity Federation with Mobile Applications</a>. This article discusses web identity federation and shows an example of how to use web identity federation to get access to content in Amazon S3.  </li> </ul>

        :param self:
        :param DurationSeconds:  The duration, in seconds, of the role session. The value can range from 900 seconds (15 minutes) up to the maximum session duration setting for the role. This setting can have a value from 1 hour to 12 hours. If you specify a value higher than this setting, the operation fails. For example, if you specify a session duration of 12 hours, but your administrator set the maximum session duration to 6 hours, your operation fails. To learn how to view the maximum value for your role, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html#id_roles_use_view-role-max-session">View the Maximum Session Duration Setting for a Role</a> in the <i>IAM User Guide</i>. By default, the value is set to <code>3600</code> seconds.  <note> The <code>DurationSeconds</code> parameter is separate from the duration of a console session that you might request using the returned credentials. The request to the federation endpoint for a console sign-in token takes a <code>SessionDuration</code> parameter that specifies the maximum length of the console session. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_enable-console-custom-url.html">Creating a URL that Enables Federated Users to Access the Management Console</a> in the <i>IAM User Guide</i>. </note><br/>Policy:  An IAM policy in JSON format that you want to use as an inline session policy. This parameter is optional. Passing policies to this operation returns new temporary credentials. The resulting session's permissions are the intersection of the role's identity-based policy and the session policies. You can use the role's temporary credentials in subsequent Amazon Web Services API calls to access resources in the account that owns the role. You cannot use session policies to grant more permissions than those allowed by the identity-based policy of the role that is being assumed. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session">Session Policies</a> in the <i>IAM User Guide</i>. The plaintext that you use for both inline and managed session policies can't exceed 2,048 characters. The JSON policy characters can be any ASCII character from the space character to the end of the valid character list (\u0020 through \u00FF). It can also include the tab (\u0009), linefeed (\u000A), and carriage return (\u000D) characters. <note> An Amazon Web Services conversion compresses the passed session policies and session tags into a packed binary format that has a separate limit. Your request can fail for this limit even if your plaintext meets the other requirements. The <code>PackedPolicySize</code> response element indicates by percentage how close the policies and tags for your request are to the upper size limit.  </note><br/>PolicyArns:  The Amazon Resource Names (ARNs) of the IAM managed policies that you want to use as managed session policies. The policies must exist in the same account as the role. This parameter is optional. You can provide up to 10 managed policy ARNs. However, the plaintext that you use for both inline and managed session policies can't exceed 2,048 characters. For more information about ARNs, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces</a> in the Amazon Web Services General Reference. <note> An Amazon Web Services conversion compresses the passed session policies and session tags into a packed binary format that has a separate limit. Your request can fail for this limit even if your plaintext meets the other requirements. The <code>PackedPolicySize</code> response element indicates by percentage how close the policies and tags for your request are to the upper size limit.  </note> Passing policies to this operation returns new temporary credentials. The resulting session's permissions are the intersection of the role's identity-based policy and the session policies. You can use the role's temporary credentials in subsequent Amazon Web Services API calls to access resources in the account that owns the role. You cannot use session policies to grant more permissions than those allowed by the identity-based policy of the role that is being assumed. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session">Session Policies</a> in the <i>IAM User Guide</i>.<br/>ProviderId:  The fully qualified host component of the domain name of the identity provider. Specify this value only for OAuth 2.0 access tokens. Currently <code>www.amazon.com</code> and <code>graph.facebook.com</code> are the only supported identity providers for OAuth 2.0 access tokens. Do not include URL schemes and port numbers. Do not specify this value for OpenID Connect ID tokens.<br/>WebIdentityToken:  The OAuth 2.0 access token or OpenID Connect ID token that is provided by the identity provider. Your application must get this token by authenticating the user who is using your application with a web identity provider before the application makes an <code>AssumeRoleWithWebIdentity</code> call. <br/>RoleSessionName:  An identifier for the assumed role session. Typically, you pass the name or identifier that is associated with the user who is using your application. That way, the temporary security credentials that your application will use are associated with that user. This session name is included as part of the ARN and assumed role ID in the <code>AssumedRoleUser</code> response element. The regex used to validate this parameter is a string of characters consisting of upper- and lower-case alphanumeric characters with no spaces. You can also include underscores or any of the following characters: =,.@-<br/>RoleArn:  The Amazon Resource Name (ARN) of the role that the caller is assuming.<br/>
        :return: SourceIdentity:  The value of the source identity that is returned in the JSON web token (JWT) from the identity provider. You can require users to set a source identity value when they assume a role. You do this by using the <code>sts:SourceIdentity</code> condition key in a role trust policy. That way, actions that are taken with the role are associated with that user. After the source identity is set, the value cannot be changed. It is present in the request for all actions that are taken by the role and persists across <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts#iam-term-role-chaining">chained role</a> sessions. You can configure your identity provider to use an attribute associated with your users, like user name or email, as the source identity when calling <code>AssumeRoleWithWebIdentity</code>. You do this by adding a claim to the JSON web token. To learn more about OIDC tokens and claims, see <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-using-tokens-with-identity-providers.html">Using Tokens with User Pools</a> in the <i>Amazon Cognito Developer Guide</i>. For more information about using source identity, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_monitor.html">Monitor and control actions taken with assumed roles</a> in the <i>IAM User Guide</i>. The regex used to validate this parameter is a string of characters consisting of upper- and lower-case alphanumeric characters with no spaces. You can also include underscores or any of the following characters: =,.@-<br/>Audience:  The intended audience (also known as client ID) of the web identity token. This is traditionally the client identifier issued to the application that requested the web identity token.<br/>Provider:   The issuing authority of the web identity token presented. For OpenID Connect ID tokens, this contains the value of the <code>iss</code> field. For OAuth 2.0 access tokens, this contains the value of the <code>ProviderId</code> parameter that was passed in the <code>AssumeRoleWithWebIdentity</code> request.<br/>PackedPolicySize:  A percentage value that indicates the packed size of the session policies and session tags combined passed in the request. The request fails if the packed size is greater than 100 percent, which means the policies and tags exceeded the allowed space.<br/>AssumedRoleUser:  The Amazon Resource Name (ARN) and the assumed role ID, which are identifiers that you can use to refer to the resulting temporary security credentials. For example, you can reference these credentials as a principal in a resource-based policy by using the ARN or assumed role ID. The ARN and ID include the <code>RoleSessionName</code> that you specified when you called <code>AssumeRole</code>. :<br/>SubjectFromWebIdentityToken:  The unique user identifier that is returned by the identity provider. This identifier is associated with the <code>WebIdentityToken</code> that was submitted with the <code>AssumeRoleWithWebIdentity</code> call. The identifier is typically unique to the user and the application that acquired the <code>WebIdentityToken</code> (pairwise identifier). For OpenID Connect ID tokens, this field contains the value returned by the identity provider as the token's <code>sub</code> (Subject) claim. <br/>Credentials:  The temporary security credentials, which include an access key ID, a secret access key, and a security token. <note> The size of the security token that STS API operations return is not fixed. We strongly recommend that you make no assumptions about the maximum size. </note>:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Expiration</i> The date on which the current credentials expire.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SessionToken</i> The token that users must pass to the service API to use the temporary credentials.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretAccessKey</i> The secret access key that can be used to sign requests.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccessKeyId</i> The access key ID that identifies the temporary security credentials.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The ARN of the temporary security credentials that are returned from the <a>AssumeRole</a> action. For more information about ARNs and how to use them in policies, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html">IAM Identifiers</a> in the <i>IAM User Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AssumedRoleId</i> A unique identifier that contains the role ID and the role session name of the role that is being assumed. The role ID is generated by Amazon Web Services when the role is created.<br/>        """
        pass

    def decode_authorization_message(self, EncodedMessage: str) -> DecodeAuthorizationMessageResponse:
        r"""Decodes additional information about the authorization status of a request from an encoded message returned in response to an Amazon Web Services request. For example, if a user is not authorized to perform an operation that he or she has requested, the request returns a <code>Client.UnauthorizedOperation</code> response (an HTTP 403 response). Some Amazon Web Services operations additionally return an encoded message that can provide details about this authorization failure.  <note> Only certain Amazon Web Services operations return an encoded authorization message. The documentation for an individual operation indicates whether that operation returns an encoded message in addition to returning an HTTP code. </note> The message is encoded because the details of the authorization status can constitute privileged information that the user who requested the operation should not see. To decode an authorization status message, a user must be granted permissions via an IAM policy to request the <code>DecodeAuthorizationMessage</code> (<code>sts:DecodeAuthorizationMessage</code>) action.  The decoded message includes the following type of information: <ul> <li> Whether the request was denied due to an explicit deny or due to the absence of an explicit allow. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html#policy-eval-denyallow">Determining Whether a Request is Allowed or Denied</a> in the <i>IAM User Guide</i>.  </li> <li> The principal who made the request. </li> <li> The requested action. </li> <li> The requested resource. </li> <li> The values of condition keys in the context of the user's request. </li> </ul>

        :param self:
        :param EncodedMessage:  The encoded message that was returned with the response.<br/>
        :return: DecodedMessage:  An XML document that contains the decoded message.<br/>        """
        pass

    def get_access_key_info(self, AccessKeyId: str) -> GetAccessKeyInfoResponse:
        r"""Returns the account identifier for the specified access key ID. Access keys consist of two parts: an access key ID (for example, <code>AKIAIOSFODNN7EXAMPLE</code>) and a secret access key (for example, <code>wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY</code>). For more information about access keys, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html">Managing Access Keys for IAM Users</a> in the <i>IAM User Guide</i>. When you pass an access key ID to this operation, it returns the ID of the Amazon Web Services account to which the keys belong. Access key IDs beginning with <code>AKIA</code> are long-term credentials for an IAM user or the Amazon Web Services account root user. Access key IDs beginning with <code>ASIA</code> are temporary credentials that are created using STS operations. If the account in the response belongs to you, you can sign in as the root user and review your root user access keys. Then, you can pull a <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_getting-report.html">credentials report</a> to learn which IAM user owns the keys. To learn who requested the temporary credentials for an <code>ASIA</code> access key, view the STS events in your <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/cloudtrail-integration.html">CloudTrail logs</a> in the <i>IAM User Guide</i>. This operation does not indicate the state of the access key. The key might be active, inactive, or deleted. Active keys might not have permissions to perform an operation. Providing a deleted access key might return an error that the key doesn't exist.

        :param self:
        :param AccessKeyId:  The identifier of an access key. This parameter allows (through its regex pattern) a string of characters that can consist of any upper- or lowercase letter or digit.<br/>
        :return: Account:  The number used to identify the Amazon Web Services account.<br/>        """
        pass

    def get_caller_identity(self) -> GetCallerIdentityResponse:
        r"""Returns details about the IAM user or role whose credentials are used to call the operation. <note> No permissions are required to perform this operation. If an administrator adds a policy to your IAM user or role that explicitly denies access to the <code>sts:GetCallerIdentity</code> action, you can still perform this operation. Permissions are not required because the same information is returned when an IAM user or role is denied access. To view an example response, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_general.html#troubleshoot_general_access-denied-delete-mfa">I Am Not Authorized to Perform: iam:DeleteVirtualMFADevice</a> in the <i>IAM User Guide</i>. </note>

        :param self:
        :param 
        :return: Arn:  The Amazon Web Services ARN associated with the calling entity.<br/>Account:  The Amazon Web Services account ID number of the account that owns or contains the calling entity.<br/>UserId:  The unique identifier of the calling entity. The exact value depends on the type of entity that is making the call. The values returned are those listed in the <b>aws:userid</b> column in the <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_variables.html#principaltable">Principal table</a> found on the <b>Policy Variables</b> reference page in the <i>IAM User Guide</i>.<br/>        """
        pass

    def get_federation_token(self, Name: str, Policy: str=None, PolicyArns: List[PolicyDescriptorType]=None, DurationSeconds: int=None, Tags: List[Tag]=None) -> GetFederationTokenResponse:
        r"""Returns a set of temporary security credentials (consisting of an access key ID, a secret access key, and a security token) for a federated user. A typical use is in a proxy application that gets temporary security credentials on behalf of distributed applications inside a corporate network. You must call the <code>GetFederationToken</code> operation using the long-term security credentials of an IAM user. As a result, this call is appropriate in contexts where those credentials can be safely stored, usually in a server-based application. For a comparison of <code>GetFederationToken</code> with the other API operations that produce temporary credentials, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html">Requesting Temporary Security Credentials</a> and <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison">Comparing the STS API operations</a> in the <i>IAM User Guide</i>. <note> You can create a mobile-based or browser-based app that can authenticate users using a web identity provider like Login with Amazon, Facebook, Google, or an OpenID Connect-compatible identity provider. In this case, we recommend that you use <a href="http://aws.amazon.com/cognito/">Amazon Cognito</a> or <code>AssumeRoleWithWebIdentity</code>. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_assumerolewithwebidentity">Federation Through a Web-based Identity Provider</a> in the <i>IAM User Guide</i>. </note> You can also call <code>GetFederationToken</code> using the security credentials of an Amazon Web Services account root user, but we do not recommend it. Instead, we recommend that you create an IAM user for the purpose of the proxy application. Then attach a policy to the IAM user that limits federated users to only the actions and resources that they need to access. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html">IAM Best Practices</a> in the <i>IAM User Guide</i>.   <b>Session duration</b>  The temporary credentials are valid for the specified duration, from 900 seconds (15 minutes) up to a maximum of 129,600 seconds (36 hours). The default session duration is 43,200 seconds (12 hours). Temporary credentials that are obtained by using Amazon Web Services account root user credentials have a maximum duration of 3,600 seconds (1 hour).  <b>Permissions</b>  You can use the temporary credentials created by <code>GetFederationToken</code> in any Amazon Web Services service except the following: <ul> <li> You cannot call any IAM operations using the CLI or the Amazon Web Services API.  </li> <li> You cannot call any STS operations except <code>GetCallerIdentity</code>. </li> </ul> You must pass an inline or managed <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session">session policy</a> to this operation. You can pass a single JSON policy document to use as an inline session policy. You can also specify up to 10 managed policies to use as managed session policies. The plaintext that you use for both inline and managed session policies can't exceed 2,048 characters. Though the session policy parameters are optional, if you do not pass a policy, then the resulting federated user session has no permissions. When you pass session policies, the session permissions are the intersection of the IAM user policies and the session policies that you pass. This gives you a way to further restrict the permissions for a federated user. You cannot use session policies to grant more permissions than those that are defined in the permissions policy of the IAM user. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session">Session Policies</a> in the <i>IAM User Guide</i>. For information about using <code>GetFederationToken</code> to create temporary security credentials, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_getfederationtoken">GetFederationToken—Federation Through a Custom Identity Broker</a>.  You can use the credentials to access a resource that has a resource-based policy. If that policy specifically references the federated user session in the <code>Principal</code> element of the policy, the session has the permissions allowed by the policy. These permissions are granted in addition to the permissions granted by the session policies.  <b>Tags</b>  (Optional) You can pass tag key-value pairs to your session. These are called session tags. For more information about session tags, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html">Passing Session Tags in STS</a> in the <i>IAM User Guide</i>. <note> You can create a mobile-based or browser-based app that can authenticate users using a web identity provider like Login with Amazon, Facebook, Google, or an OpenID Connect-compatible identity provider. In this case, we recommend that you use <a href="http://aws.amazon.com/cognito/">Amazon Cognito</a> or <code>AssumeRoleWithWebIdentity</code>. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_assumerolewithwebidentity">Federation Through a Web-based Identity Provider</a> in the <i>IAM User Guide</i>. </note> You can also call <code>GetFederationToken</code> using the security credentials of an Amazon Web Services account root user, but we do not recommend it. Instead, we recommend that you create an IAM user for the purpose of the proxy application. Then attach a policy to the IAM user that limits federated users to only the actions and resources that they need to access. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html">IAM Best Practices</a> in the <i>IAM User Guide</i>.   <b>Session duration</b>  The temporary credentials are valid for the specified duration, from 900 seconds (15 minutes) up to a maximum of 129,600 seconds (36 hours). The default session duration is 43,200 seconds (12 hours). Temporary credentials that are obtained by using Amazon Web Services account root user credentials have a maximum duration of 3,600 seconds (1 hour).  <b>Permissions</b>  You can use the temporary credentials created by <code>GetFederationToken</code> in any Amazon Web Services service except the following: <ul> <li> You cannot call any IAM operations using the CLI or the Amazon Web Services API.  </li> <li> You cannot call any STS operations except <code>GetCallerIdentity</code>. </li> </ul> You must pass an inline or managed <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session">session policy</a> to this operation. You can pass a single JSON policy document to use as an inline session policy. You can also specify up to 10 managed policies to use as managed session policies. The plain text that you use for both inline and managed session policies can't exceed 2,048 characters. Though the session policy parameters are optional, if you do not pass a policy, then the resulting federated user session has no permissions. When you pass session policies, the session permissions are the intersection of the IAM user policies and the session policies that you pass. This gives you a way to further restrict the permissions for a federated user. You cannot use session policies to grant more permissions than those that are defined in the permissions policy of the IAM user. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session">Session Policies</a> in the <i>IAM User Guide</i>. For information about using <code>GetFederationToken</code> to create temporary security credentials, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_getfederationtoken">GetFederationToken—Federation Through a Custom Identity Broker</a>.  You can use the credentials to access a resource that has a resource-based policy. If that policy specifically references the federated user session in the <code>Principal</code> element of the policy, the session has the permissions allowed by the policy. These permissions are granted in addition to the permissions granted by the session policies.  <b>Tags</b>  (Optional) You can pass tag key-value pairs to your session. These are called session tags. For more information about session tags, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html">Passing Session Tags in STS</a> in the <i>IAM User Guide</i>. An administrator must grant you the permissions necessary to pass session tags. The administrator can also create granular permissions to allow you to pass only specific session tags. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html">Tutorial: Using Tags for Attribute-Based Access Control</a> in the <i>IAM User Guide</i>. Tag key–value pairs are not case sensitive, but case is preserved. This means that you cannot have separate <code>Department</code> and <code>department</code> tag keys. Assume that the user that you are federating has the <code>Department</code>=<code>Marketing</code> tag and you pass the <code>department</code>=<code>engineering</code> session tag. <code>Department</code> and <code>department</code> are not saved as separate tags, and the session tag passed in the request takes precedence over the user tag.

        :param self:
        :param Tags:  A list of session tags. Each session tag consists of a key name and an associated value. For more information about session tags, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html">Passing Session Tags in STS</a> in the <i>IAM User Guide</i>. This parameter is optional. You can pass up to 50 session tags. The plaintext session tag keys can’t exceed 128 characters and the values can’t exceed 256 characters. For these and additional limits, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-limits.html#reference_iam-limits-entity-length">IAM and STS Character Limits</a> in the <i>IAM User Guide</i>. <note> An Amazon Web Services conversion compresses the passed session policies and session tags into a packed binary format that has a separate limit. Your request can fail for this limit even if your plaintext meets the other requirements. The <code>PackedPolicySize</code> response element indicates by percentage how close the policies and tags for your request are to the upper size limit.  </note> You can pass a session tag with the same key as a tag that is already attached to the user you are federating. When you do, session tags override a user tag with the same key.  Tag key–value pairs are not case sensitive, but case is preserved. This means that you cannot have separate <code>Department</code> and <code>department</code> tag keys. Assume that the role has the <code>Department</code>=<code>Marketing</code> tag and you pass the <code>department</code>=<code>engineering</code> session tag. <code>Department</code> and <code>department</code> are not saved as separate tags, and the session tag passed in the request takes precedence over the role tag.<br/>DurationSeconds:  The duration, in seconds, that the session should last. Acceptable durations for federation sessions range from 900 seconds (15 minutes) to 129,600 seconds (36 hours), with 43,200 seconds (12 hours) as the default. Sessions obtained using Amazon Web Services account root user credentials are restricted to a maximum of 3,600 seconds (one hour). If the specified duration is longer than one hour, the session obtained by using root user credentials defaults to one hour.<br/>PolicyArns:  The Amazon Resource Names (ARNs) of the IAM managed policies that you want to use as a managed session policy. The policies must exist in the same account as the IAM user that is requesting federated access. You must pass an inline or managed <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session">session policy</a> to this operation. You can pass a single JSON policy document to use as an inline session policy. You can also specify up to 10 managed policies to use as managed session policies. The plaintext that you use for both inline and managed session policies can't exceed 2,048 characters. You can provide up to 10 managed policy ARNs. For more information about ARNs, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces</a> in the Amazon Web Services General Reference. This parameter is optional. However, if you do not pass any session policies, then the resulting federated user session has no permissions. When you pass session policies, the session permissions are the intersection of the IAM user policies and the session policies that you pass. This gives you a way to further restrict the permissions for a federated user. You cannot use session policies to grant more permissions than those that are defined in the permissions policy of the IAM user. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session">Session Policies</a> in the <i>IAM User Guide</i>. The resulting credentials can be used to access a resource that has a resource-based policy. If that policy specifically references the federated user session in the <code>Principal</code> element of the policy, the session has the permissions allowed by the policy. These permissions are granted in addition to the permissions that are granted by the session policies. <note> An Amazon Web Services conversion compresses the passed session policies and session tags into a packed binary format that has a separate limit. Your request can fail for this limit even if your plaintext meets the other requirements. The <code>PackedPolicySize</code> response element indicates by percentage how close the policies and tags for your request are to the upper size limit.  </note><br/>Policy:  An IAM policy in JSON format that you want to use as an inline session policy. You must pass an inline or managed <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session">session policy</a> to this operation. You can pass a single JSON policy document to use as an inline session policy. You can also specify up to 10 managed policies to use as managed session policies. This parameter is optional. However, if you do not pass any session policies, then the resulting federated user session has no permissions. When you pass session policies, the session permissions are the intersection of the IAM user policies and the session policies that you pass. This gives you a way to further restrict the permissions for a federated user. You cannot use session policies to grant more permissions than those that are defined in the permissions policy of the IAM user. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session">Session Policies</a> in the <i>IAM User Guide</i>. The resulting credentials can be used to access a resource that has a resource-based policy. If that policy specifically references the federated user session in the <code>Principal</code> element of the policy, the session has the permissions allowed by the policy. These permissions are granted in addition to the permissions that are granted by the session policies. The plaintext that you use for both inline and managed session policies can't exceed 2,048 characters. The JSON policy characters can be any ASCII character from the space character to the end of the valid character list (\u0020 through \u00FF). It can also include the tab (\u0009), linefeed (\u000A), and carriage return (\u000D) characters. <note> An Amazon Web Services conversion compresses the passed session policies and session tags into a packed binary format that has a separate limit. Your request can fail for this limit even if your plaintext meets the other requirements. The <code>PackedPolicySize</code> response element indicates by percentage how close the policies and tags for your request are to the upper size limit.  </note><br/>Name:  The name of the federated user. The name is used as an identifier for the temporary security credentials (such as <code>Bob</code>). For example, you can reference the federated user name in a resource-based policy, such as in an Amazon S3 bucket policy. The regex used to validate this parameter is a string of characters consisting of upper- and lower-case alphanumeric characters with no spaces. You can also include underscores or any of the following characters: =,.@-<br/>
        :return: PackedPolicySize:  A percentage value that indicates the packed size of the session policies and session tags combined passed in the request. The request fails if the packed size is greater than 100 percent, which means the policies and tags exceeded the allowed space.<br/>FederatedUser:  Identifiers for the federated user associated with the credentials (such as <code>arn:aws:sts::123456789012:federated-user/Bob</code> or <code>123456789012:Bob</code>). You can use the federated user's ARN in your resource-based policies, such as an Amazon S3 bucket policy. :<br/>Credentials:  The temporary security credentials, which include an access key ID, a secret access key, and a security (or session) token. <note> The size of the security token that STS API operations return is not fixed. We strongly recommend that you make no assumptions about the maximum size. </note>:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Expiration</i> The date on which the current credentials expire.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SessionToken</i> The token that users must pass to the service API to use the temporary credentials.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretAccessKey</i> The secret access key that can be used to sign requests.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccessKeyId</i> The access key ID that identifies the temporary security credentials.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The ARN that specifies the federated user that is associated with the credentials. For more information about ARNs and how to use them in policies, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html">IAM Identifiers</a> in the <i>IAM User Guide</i>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FederatedUserId</i> The string that identifies the federated user associated with the credentials, similar to the unique ID of an IAM user.<br/>        """
        pass

    def get_session_token(self, DurationSeconds: int=None, SerialNumber: str=None, TokenCode: str=None) -> GetSessionTokenResponse:
        r"""Returns a set of temporary credentials for an Amazon Web Services account or IAM user. The credentials consist of an access key ID, a secret access key, and a security token. Typically, you use <code>GetSessionToken</code> if you want to use MFA to protect programmatic calls to specific Amazon Web Services API operations like Amazon EC2 <code>StopInstances</code>. MFA-enabled IAM users would need to call <code>GetSessionToken</code> and submit an MFA code that is associated with their MFA device. Using the temporary security credentials that are returned from the call, IAM users can then make programmatic calls to API operations that require MFA authentication. If you do not supply a correct MFA code, then the API returns an access denied error. For a comparison of <code>GetSessionToken</code> with the other API operations that produce temporary credentials, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html">Requesting Temporary Security Credentials</a> and <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison">Comparing the STS API operations</a> in the <i>IAM User Guide</i>.  <b>Session Duration</b>  The <code>GetSessionToken</code> operation must be called by using the long-term Amazon Web Services security credentials of the Amazon Web Services account root user or an IAM user. Credentials that are created by IAM users are valid for the duration that you specify. This duration can range from 900 seconds (15 minutes) up to a maximum of 129,600 seconds (36 hours), with a default of 43,200 seconds (12 hours). Credentials based on account credentials can range from 900 seconds (15 minutes) up to 3,600 seconds (1 hour), with a default of 1 hour.   <b>Permissions</b>  The temporary security credentials created by <code>GetSessionToken</code> can be used to make API calls to any Amazon Web Services service with the following exceptions: <ul> <li> You cannot call any IAM API operations unless MFA authentication information is included in the request. </li> <li> You cannot call any STS API <i>except</i> <code>AssumeRole</code> or <code>GetCallerIdentity</code>. </li> </ul> <note> We recommend that you do not call <code>GetSessionToken</code> with Amazon Web Services account root user credentials. Instead, follow our <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#create-iam-users">best practices</a> by creating one or more IAM users, giving them the necessary permissions, and using IAM users for everyday interaction with Amazon Web Services.  </note> The credentials that are returned by <code>GetSessionToken</code> are based on permissions associated with the user whose credentials were used to call the operation. If <code>GetSessionToken</code> is called using Amazon Web Services account root user credentials, the temporary credentials have root user permissions. Similarly, if <code>GetSessionToken</code> is called using the credentials of an IAM user, the temporary credentials have the same permissions as the IAM user.  For more information about using <code>GetSessionToken</code> to create temporary credentials, go to <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_getsessiontoken">Temporary Credentials for Users in Untrusted Environments</a> in the <i>IAM User Guide</i>. 

        :param self:
        :param TokenCode:  The value provided by the MFA device, if MFA is required. If any policy requires the IAM user to submit an MFA code, specify this value. If MFA authentication is required, the user must provide a code when requesting a set of temporary security credentials. A user who fails to provide the code receives an "access denied" response when requesting resources that require MFA authentication. The format for this parameter, as described by its regex pattern, is a sequence of six numeric digits.<br/>SerialNumber:  The identification number of the MFA device that is associated with the IAM user who is making the <code>GetSessionToken</code> call. Specify this value if the IAM user has a policy that requires MFA authentication. The value is either the serial number for a hardware device (such as <code>GAHT12345678</code>) or an Amazon Resource Name (ARN) for a virtual device (such as <code>arn:aws:iam::123456789012:mfa/user</code>). You can find the device for an IAM user by going to the Management Console and viewing the user's security credentials.  The regex used to validate this parameter is a string of characters consisting of upper- and lower-case alphanumeric characters with no spaces. You can also include underscores or any of the following characters: =,.@:/-<br/>DurationSeconds:  The duration, in seconds, that the credentials should remain valid. Acceptable durations for IAM user sessions range from 900 seconds (15 minutes) to 129,600 seconds (36 hours), with 43,200 seconds (12 hours) as the default. Sessions for Amazon Web Services account owners are restricted to a maximum of 3,600 seconds (one hour). If the duration is longer than one hour, the session for Amazon Web Services account owners defaults to one hour.<br/>
        :return: Credentials:  The temporary security credentials, which include an access key ID, a secret access key, and a security (or session) token. <note> The size of the security token that STS API operations return is not fixed. We strongly recommend that you make no assumptions about the maximum size. </note>:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Expiration</i> The date on which the current credentials expire.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SessionToken</i> The token that users must pass to the service API to use the temporary credentials.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecretAccessKey</i> The secret access key that can be used to sign requests.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccessKeyId</i> The access key ID that identifies the temporary security credentials.<br/>        """
        pass





class Support(BaseClient):
    r"""<fullname>AWS Support</fullname> The <i>AWS Support API Reference</i> is intended for programmers who need detailed information about the AWS Support operations and data types. You can use the API to manage your support cases programmatically. The AWS Support API uses HTTP methods that return results in JSON format. <note> <ul> <li> You must have a Business or Enterprise Support plan to use the AWS Support API.  </li> <li> If you call the AWS Support API from an account that does not have a Business or Enterprise Support plan, the <code>SubscriptionRequiredException</code> error message appears. For information about changing your support plan, see <a href="http://aws.amazon.com/premiumsupport/">AWS Support</a>. </li> </ul> </note> The AWS Support service also exposes a set of <a href="http://aws.amazon.com/premiumsupport/trustedadvisor/">AWS Trusted Advisor</a> features. You can retrieve a list of checks and their descriptions, get check results, specify checks to refresh, and get the refresh status of checks. The following list describes the AWS Support case management operations: <ul> <li>  Service names, issue categories, and available severity levels - The <a>DescribeServices</a> and <a>DescribeSeverityLevels</a> operations return AWS service names, service codes, service categories, and problem severity levels. You use these values when you call the <a>CreateCase</a> operation. </li> <li>  Case creation, case details, and case resolution - The <a>CreateCase</a>, <a>DescribeCases</a>, <a>DescribeAttachment</a>, and <a>ResolveCase</a> operations create AWS Support cases, retrieve information about cases, and resolve cases. </li> <li>  Case communication - The <a>DescribeCommunications</a>, <a>AddCommunicationToCase</a>, and <a>AddAttachmentsToSet</a> operations retrieve and add communications and attachments to AWS Support cases. </li> </ul> The following list describes the operations available from the AWS Support service for Trusted Advisor: <ul> <li>  <a>DescribeTrustedAdvisorChecks</a> returns the list of checks that run against your AWS resources. </li> <li> Using the <code>checkId</code> for a specific check returned by <a>DescribeTrustedAdvisorChecks</a>, you can call <a>DescribeTrustedAdvisorCheckResult</a> to obtain the results for the check that you specified. </li> <li>  <a>DescribeTrustedAdvisorCheckSummaries</a> returns summarized results for one or more Trusted Advisor checks. </li> <li>  <a>RefreshTrustedAdvisorCheck</a> requests that Trusted Advisor rerun a specified check. </li> <li>  <a>DescribeTrustedAdvisorCheckRefreshStatuses</a> reports the refresh status of one or more checks. </li> </ul> For authentication of requests, AWS Support uses <a href="https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html">Signature Version 4 Signing Process</a>. See <a href="https://docs.aws.amazon.com/awssupport/latest/user/Welcome.html">About the AWS Support API</a> in the <i>AWS Support User Guide</i> for information about how to use this service to create and manage your support cases, and how to call Trusted Advisor for results of checks on your resources."""


    class DescribeCasesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_cases` for valid parameters"""
            pass
    class DescribeCommunicationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_communications` for valid parameters"""
            pass


    class AddAttachmentsToSetRequest(Mapping):
        pass
    
    class AddAttachmentsToSetResponse(Mapping):
        pass
    
    class Attachment(Mapping):
        pass
    
    class AddCommunicationToCaseRequest(Mapping):
        pass
    
    class AddCommunicationToCaseResponse(Mapping):
        pass
    
    class CcEmailAddress(object):
        pass
    
    class CreateCaseRequest(Mapping):
        pass
    
    class CreateCaseResponse(Mapping):
        pass
    
    class DescribeAttachmentRequest(Mapping):
        pass
    
    class DescribeAttachmentResponse(Mapping):
        pass
    
    class DescribeCasesRequest(Mapping):
        pass
    
    class DescribeCasesResponse(Mapping):
        pass
    
    class CaseId(object):
        pass
    
    class IncludeResolvedCases(object):
        pass
    
    class IncludeCommunications(object):
        pass
    
    class DescribeCommunicationsRequest(Mapping):
        pass
    
    class DescribeCommunicationsResponse(Mapping):
        pass
    
    class DescribeServicesRequest(Mapping):
        pass
    
    class DescribeServicesResponse(Mapping):
        pass
    
    class ServiceCode(object):
        pass
    
    class DescribeSeverityLevelsRequest(Mapping):
        pass
    
    class DescribeSeverityLevelsResponse(Mapping):
        pass
    
    class DescribeTrustedAdvisorCheckRefreshStatusesRequest(Mapping):
        pass
    
    class DescribeTrustedAdvisorCheckRefreshStatusesResponse(Mapping):
        pass
    
    class String(object):
        pass
    
    class DescribeTrustedAdvisorCheckResultRequest(Mapping):
        pass
    
    class DescribeTrustedAdvisorCheckResultResponse(Mapping):
        pass
    
    class DescribeTrustedAdvisorCheckSummariesRequest(Mapping):
        pass
    
    class DescribeTrustedAdvisorCheckSummariesResponse(Mapping):
        pass
    
    class DescribeTrustedAdvisorChecksRequest(Mapping):
        pass
    
    class DescribeTrustedAdvisorChecksResponse(Mapping):
        pass
    
    class RefreshTrustedAdvisorCheckRequest(Mapping):
        pass
    
    class RefreshTrustedAdvisorCheckResponse(Mapping):
        pass
    
    class ResolveCaseRequest(Mapping):
        pass
    
    class ResolveCaseResponse(Mapping):
        pass
    
    def add_attachments_to_set(self, attachments: List[Attachment], attachmentSetId: str=None) -> AddAttachmentsToSetResponse:
        r"""Adds one or more attachments to an attachment set.  An attachment set is a temporary container for attachments that you add to a case or case communication. The set is available for 1 hour after it's created. The <code>expiryTime</code> returned in the response is when the set expires.  <note> <ul> <li> You must have a Business or Enterprise Support plan to use the AWS Support API.  </li> <li> If you call the AWS Support API from an account that does not have a Business or Enterprise Support plan, the <code>SubscriptionRequiredException</code> error message appears. For information about changing your support plan, see <a href="http://aws.amazon.com/premiumsupport/">AWS Support</a>. </li> </ul> </note>

        :param self:
        :param attachments:  One or more attachments to add to the set. You can add up to three attachments per set. The size limit is 5 MB per attachment. In the <code>Attachment</code> object, use the <code>data</code> parameter to specify the contents of the attachment file. In the previous request syntax, the value for <code>data</code> appear as <code>blob</code>, which is represented as a base64-encoded string. The value for <code>fileName</code> is the name of the attachment, such as <code>troubleshoot-screenshot.png</code>.<br/>attachmentSetId:  The ID of the attachment set. If an <code>attachmentSetId</code> is not specified, a new attachment set is created, and the ID of the set is returned in the response. If an <code>attachmentSetId</code> is specified, the attachments are added to the specified set, if it exists.<br/>
        :return: expiryTime:  The time and date when the attachment set expires.<br/>attachmentSetId:  The ID of the attachment set. If an <code>attachmentSetId</code> was not specified, a new attachment set is created, and the ID of the set is returned in the response. If an <code>attachmentSetId</code> was specified, the attachments are added to the specified set, if it exists.<br/>        """
        pass

    def add_communication_to_case(self, communicationBody: str, caseId: str=None, ccEmailAddresses: List[CcEmailAddress]=None, attachmentSetId: str=None) -> AddCommunicationToCaseResponse:
        r"""Adds additional customer communication to an AWS Support case. Use the <code>caseId</code> parameter to identify the case to which to add communication. You can list a set of email addresses to copy on the communication by using the <code>ccEmailAddresses</code> parameter. The <code>communicationBody</code> value contains the text of the communication. <note> <ul> <li> You must have a Business or Enterprise Support plan to use the AWS Support API.  </li> <li> If you call the AWS Support API from an account that does not have a Business or Enterprise Support plan, the <code>SubscriptionRequiredException</code> error message appears. For information about changing your support plan, see <a href="http://aws.amazon.com/premiumsupport/">AWS Support</a>. </li> </ul> </note>

        :param self:
        :param attachmentSetId:  The ID of a set of one or more attachments for the communication to add to the case. Create the set by calling <a>AddAttachmentsToSet</a> <br/>ccEmailAddresses:  The email addresses in the CC line of an email to be added to the support case.<br/>communicationBody:  The body of an email communication to add to the support case.<br/>caseId:  The support case ID requested or returned in the call. The case ID is an alphanumeric string formatted as shown in this example: case-<i>12345678910-2013-c4c1d2bf33c5cf47</i> <br/>
        :return: result:  True if <a>AddCommunicationToCase</a> succeeds. Otherwise, returns an error.<br/>        """
        pass

    def create_case(self, communicationBody: str, subject: str, serviceCode: str=None, severityCode: str=None, categoryCode: str=None, ccEmailAddresses: List[CcEmailAddress]=None, language: str=None, issueType: str=None, attachmentSetId: str=None) -> CreateCaseResponse:
        r"""Creates a case in the AWS Support Center. This operation is similar to how you create a case in the AWS Support Center <a href="https://console.aws.amazon.com/support/home#/case/create">Create Case</a> page. The AWS Support API doesn't support requesting service limit increases. You can submit a service limit increase in the following ways:  <ul> <li> Submit a request from the AWS Support Center <a href="https://console.aws.amazon.com/support/home#/case/create">Create Case</a> page. </li> <li> Use the Service Quotas <a href="https://docs.aws.amazon.com/servicequotas/2019-06-24/apireference/API_RequestServiceQuotaIncrease.html">RequestServiceQuotaIncrease</a> operation. </li> </ul> A successful <code>CreateCase</code> request returns an AWS Support case number. You can use the <a>DescribeCases</a> operation and specify the case number to get existing AWS Support cases. After you create a case, use the <a>AddCommunicationToCase</a> operation to add additional communication or attachments to an existing case. The <code>caseId</code> is separate from the <code>displayId</code> that appears in the <a href="https://console.aws.amazon.com/support">AWS Support Center</a>. Use the <a>DescribeCases</a> operation to get the <code>displayId</code>. <note> <ul> <li> You must have a Business or Enterprise Support plan to use the AWS Support API.  </li> <li> If you call the AWS Support API from an account that does not have a Business or Enterprise Support plan, the <code>SubscriptionRequiredException</code> error message appears. For information about changing your support plan, see <a href="http://aws.amazon.com/premiumsupport/">AWS Support</a>. </li> </ul> </note>

        :param self:
        :param attachmentSetId:  The ID of a set of one or more attachments for the case. Create the set by using the <a>AddAttachmentsToSet</a> operation.<br/>issueType:  The type of issue for the case. You can specify <code>customer-service</code> or <code>technical</code>. If you don't specify a value, the default is <code>technical</code>.<br/>language:  The language in which AWS Support handles the case. You must specify the ISO 639-1 code for the <code>language</code> parameter if you want support in that language. Currently, English ("en") and Japanese ("ja") are supported.<br/>ccEmailAddresses:  A list of email addresses that AWS Support copies on case correspondence. AWS Support identifies the account that creates the case when you specify your AWS credentials in an HTTP POST method or use the <a href="http://aws.amazon.com/tools/">AWS SDKs</a>. <br/>communicationBody:  The communication body text that describes the issue. This text appears in the <b>Description</b> field on the AWS Support Center <a href="https://console.aws.amazon.com/support/home#/case/create">Create Case</a> page.<br/>categoryCode:  The category of problem for the support case. You also use the <a>DescribeServices</a> operation to get the category code for a service. Each AWS service defines its own set of category codes.<br/>severityCode:  A value that indicates the urgency of the case. This value determines the response time according to your service level agreement with AWS Support. You can use the <a>DescribeSeverityLevels</a> operation to get the possible values for <code>severityCode</code>.  For more information, see <a>SeverityLevel</a> and <a href="https://docs.aws.amazon.com/awssupport/latest/user/getting-started.html#choosing-severity">Choosing a Severity</a> in the <i>AWS Support User Guide</i>. <note> The availability of severity levels depends on the support plan for the AWS account. </note><br/>serviceCode:  The code for the AWS service. You can use the <a>DescribeServices</a> operation to get the possible <code>serviceCode</code> values.<br/>subject:  The title of the support case. The title appears in the <b>Subject</b> field on the AWS Support Center <a href="https://console.aws.amazon.com/support/home#/case/create">Create Case</a> page.<br/>
        :return: caseId:  The support case ID requested or returned in the call. The case ID is an alphanumeric string in the following format: case-<i>12345678910-2013-c4c1d2bf33c5cf47</i> <br/>        """
        pass

    def describe_attachment(self, attachmentId: str) -> DescribeAttachmentResponse:
        r"""Returns the attachment that has the specified ID. Attachments can include screenshots, error logs, or other files that describe your issue. Attachment IDs are generated by the case management system when you add an attachment to a case or case communication. Attachment IDs are returned in the <a>AttachmentDetails</a> objects that are returned by the <a>DescribeCommunications</a> operation. <note> <ul> <li> You must have a Business or Enterprise Support plan to use the AWS Support API.  </li> <li> If you call the AWS Support API from an account that does not have a Business or Enterprise Support plan, the <code>SubscriptionRequiredException</code> error message appears. For information about changing your support plan, see <a href="http://aws.amazon.com/premiumsupport/">AWS Support</a>. </li> </ul> </note>

        :param self:
        :param attachmentId:  The ID of the attachment to return. Attachment IDs are returned by the <a>DescribeCommunications</a> operation.<br/>
        :return: attachment:  This object includes the attachment content and file name. In the previous response syntax, the value for the <code>data</code> parameter appears as <code>blob</code>, which is represented as a base64-encoded string. The value for <code>fileName</code> is the name of the attachment, such as <code>troubleshoot-screenshot.png</code>.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>data</i> The content of the attachment file.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>fileName</i> The name of the attachment file.<br/>        """
        pass

    def describe_cases(self, caseIdList: List[CaseId]=None, displayId: str=None, afterTime: str=None, beforeTime: str=None, includeResolvedCases: IncludeResolvedCases=None, nextToken: str=None, maxResults: int=None, language: str=None, includeCommunications: IncludeCommunications=None) -> DescribeCasesResponse:
        r"""Returns a list of cases that you specify by passing one or more case IDs. You can use the <code>afterTime</code> and <code>beforeTime</code> parameters to filter the cases by date. You can set values for the <code>includeResolvedCases</code> and <code>includeCommunications</code> parameters to specify how much information to return. The response returns the following in JSON format: <ul> <li> One or more <a href="https://docs.aws.amazon.com/awssupport/latest/APIReference/API_CaseDetails.html">CaseDetails</a> data types. </li> <li> One or more <code>nextToken</code> values, which specify where to paginate the returned records represented by the <code>CaseDetails</code> objects. </li> </ul> Case data is available for 12 months after creation. If a case was created more than 12 months ago, a request might return an error. <note> <ul> <li> You must have a Business or Enterprise Support plan to use the AWS Support API.  </li> <li> If you call the AWS Support API from an account that does not have a Business or Enterprise Support plan, the <code>SubscriptionRequiredException</code> error message appears. For information about changing your support plan, see <a href="http://aws.amazon.com/premiumsupport/">AWS Support</a>. </li> </ul> </note>

        :param self:
        :param includeCommunications:  Specifies whether to include communications in the <code>DescribeCases</code> response. By default, communications are included.<br/>language:  The ISO 639-1 code for the language in which AWS provides support. AWS Support currently supports English ("en") and Japanese ("ja"). Language parameters must be passed explicitly for operations that take them.<br/>maxResults:  The maximum number of results to return before paginating.<br/>nextToken:  A resumption point for pagination.<br/>includeResolvedCases:  Specifies whether to include resolved support cases in the <code>DescribeCases</code> response. By default, resolved cases aren't included.<br/>beforeTime:  The end date for a filtered date search on support case communications. Case communications are available for 12 months after creation.<br/>afterTime:  The start date for a filtered date search on support case communications. Case communications are available for 12 months after creation.<br/>displayId:  The ID displayed for a case in the AWS Support Center user interface.<br/>caseIdList:  A list of ID numbers of the support cases you want returned. The maximum number of cases is 100.<br/>
        :return: nextToken:  A resumption point for pagination.<br/>cases:  The details for the cases that match the request.<br/>        """
        pass

    def describe_communications(self, caseId: str, beforeTime: str=None, afterTime: str=None, nextToken: str=None, maxResults: int=None) -> DescribeCommunicationsResponse:
        r"""Returns communications and attachments for one or more support cases. Use the <code>afterTime</code> and <code>beforeTime</code> parameters to filter by date. You can use the <code>caseId</code> parameter to restrict the results to a specific case. Case data is available for 12 months after creation. If a case was created more than 12 months ago, a request for data might cause an error. You can use the <code>maxResults</code> and <code>nextToken</code> parameters to control the pagination of the results. Set <code>maxResults</code> to the number of cases that you want to display on each page, and use <code>nextToken</code> to specify the resumption of pagination. <note> <ul> <li> You must have a Business or Enterprise Support plan to use the AWS Support API.  </li> <li> If you call the AWS Support API from an account that does not have a Business or Enterprise Support plan, the <code>SubscriptionRequiredException</code> error message appears. For information about changing your support plan, see <a href="http://aws.amazon.com/premiumsupport/">AWS Support</a>. </li> </ul> </note>

        :param self:
        :param maxResults:  The maximum number of results to return before paginating.<br/>nextToken:  A resumption point for pagination.<br/>afterTime:  The start date for a filtered date search on support case communications. Case communications are available for 12 months after creation.<br/>beforeTime:  The end date for a filtered date search on support case communications. Case communications are available for 12 months after creation.<br/>caseId:  The support case ID requested or returned in the call. The case ID is an alphanumeric string formatted as shown in this example: case-<i>12345678910-2013-c4c1d2bf33c5cf47</i> <br/>
        :return: nextToken:  A resumption point for pagination.<br/>communications:  The communications for the case.<br/>        """
        pass

    def describe_services(self, serviceCodeList: List[ServiceCode]=None, language: str=None) -> DescribeServicesResponse:
        r"""Returns the current list of AWS services and a list of service categories for each service. You then use service names and categories in your <a>CreateCase</a> requests. Each AWS service has its own set of categories. The service codes and category codes correspond to the values that appear in the <b>Service</b> and <b>Category</b> lists on the AWS Support Center <a href="https://console.aws.amazon.com/support/home#/case/create">Create Case</a> page. The values in those fields don't necessarily match the service codes and categories returned by the <code>DescribeServices</code> operation. Always use the service codes and categories that the <code>DescribeServices</code> operation returns, so that you have the most recent set of service and category codes. <note> <ul> <li> You must have a Business or Enterprise Support plan to use the AWS Support API.  </li> <li> If you call the AWS Support API from an account that does not have a Business or Enterprise Support plan, the <code>SubscriptionRequiredException</code> error message appears. For information about changing your support plan, see <a href="http://aws.amazon.com/premiumsupport/">AWS Support</a>. </li> </ul> </note>

        :param self:
        :param language:  The ISO 639-1 code for the language in which AWS provides support. AWS Support currently supports English ("en") and Japanese ("ja"). Language parameters must be passed explicitly for operations that take them.<br/>serviceCodeList:  A JSON-formatted list of service codes available for AWS services.<br/>
        :return: services:  A JSON-formatted list of AWS services.<br/>        """
        pass

    def describe_severity_levels(self, language: str=None) -> DescribeSeverityLevelsResponse:
        r"""Returns the list of severity levels that you can assign to a support case. The severity level for a case is also a field in the <a>CaseDetails</a> data type that you include for a <a>CreateCase</a> request. <note> <ul> <li> You must have a Business or Enterprise Support plan to use the AWS Support API.  </li> <li> If you call the AWS Support API from an account that does not have a Business or Enterprise Support plan, the <code>SubscriptionRequiredException</code> error message appears. For information about changing your support plan, see <a href="http://aws.amazon.com/premiumsupport/">AWS Support</a>. </li> </ul> </note>

        :param self:
        :param language:  The ISO 639-1 code for the language in which AWS provides support. AWS Support currently supports English ("en") and Japanese ("ja"). Language parameters must be passed explicitly for operations that take them.<br/>
        :return: severityLevels:  The available severity levels for the support case. Available severity levels are defined by your service level agreement with AWS.<br/>        """
        pass

    def describe_trusted_advisor_check_refresh_statuses(self, checkIds: List[String]) -> DescribeTrustedAdvisorCheckRefreshStatusesResponse:
        r"""Returns the refresh status of the AWS Trusted Advisor checks that have the specified check IDs. You can get the check IDs by calling the <a>DescribeTrustedAdvisorChecks</a> operation. Some checks are refreshed automatically, and you can't return their refresh statuses by using the <code>DescribeTrustedAdvisorCheckRefreshStatuses</code> operation. If you call this operation for these checks, you might see an <code>InvalidParameterValue</code> error. <note> <ul> <li> You must have a Business or Enterprise Support plan to use the AWS Support API.  </li> <li> If you call the AWS Support API from an account that does not have a Business or Enterprise Support plan, the <code>SubscriptionRequiredException</code> error message appears. For information about changing your support plan, see <a href="http://aws.amazon.com/premiumsupport/">AWS Support</a>. </li> </ul> </note>

        :param self:
        :param checkIds:  The IDs of the Trusted Advisor checks to get the status. <note> If you specify the check ID of a check that is automatically refreshed, you might see an <code>InvalidParameterValue</code> error. </note><br/>
        :return: statuses:  The refresh status of the specified Trusted Advisor checks.<br/>        """
        pass

    def describe_trusted_advisor_check_result(self, checkId: str, language: str=None) -> DescribeTrustedAdvisorCheckResultResponse:
        r"""Returns the results of the AWS Trusted Advisor check that has the specified check ID. You can get the check IDs by calling the <a>DescribeTrustedAdvisorChecks</a> operation. The response contains a <a>TrustedAdvisorCheckResult</a> object, which contains these three objects: <ul> <li>  <a>TrustedAdvisorCategorySpecificSummary</a>  </li> <li>  <a>TrustedAdvisorResourceDetail</a>  </li> <li>  <a>TrustedAdvisorResourcesSummary</a>  </li> </ul> In addition, the response contains these fields: <ul> <li>  <b>status</b> - The alert status of the check can be <code>ok</code> (green), <code>warning</code> (yellow), <code>error</code> (red), or <code>not_available</code>. </li> <li>  <b>timestamp</b> - The time of the last refresh of the check. </li> <li>  <b>checkId</b> - The unique identifier for the check. </li> </ul> <note> <ul> <li> You must have a Business or Enterprise Support plan to use the AWS Support API.  </li> <li> If you call the AWS Support API from an account that does not have a Business or Enterprise Support plan, the <code>SubscriptionRequiredException</code> error message appears. For information about changing your support plan, see <a href="http://aws.amazon.com/premiumsupport/">AWS Support</a>. </li> </ul> </note>

        :param self:
        :param language:  The ISO 639-1 code for the language in which AWS provides support. AWS Support currently supports English ("en") and Japanese ("ja"). Language parameters must be passed explicitly for operations that take them.<br/>checkId:  The unique identifier for the Trusted Advisor check.<br/>
        :return: result:  The detailed results of the Trusted Advisor check.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>flaggedResources</i> The details about each resource listed in the check result.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>categorySpecificSummary</i> Summary information that relates to the category of the check. Cost Optimizing is the only category that is currently supported.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>categorySpecificSummary</b>: Summary information that relates to the category of the check. Cost Optimizing is the only category that is currently supported.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>resourcesSummary</i> Details about AWS resources that were analyzed in a call to Trusted Advisor <a>DescribeTrustedAdvisorCheckSummaries</a>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>resourcesSummary</b>: Details about AWS resources that were analyzed in a call to Trusted Advisor <a>DescribeTrustedAdvisorCheckSummaries</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The alert status of the check: "ok" (green), "warning" (yellow), "error" (red), or "not_available".<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>timestamp</i> The time of the last refresh of the check.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>checkId</i> The unique identifier for the Trusted Advisor check.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>resourcesSuppressed</i> The number of AWS resources ignored by Trusted Advisor because they were marked as suppressed by the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>resourcesIgnored</i> The number of AWS resources ignored by Trusted Advisor because information was unavailable.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>resourcesFlagged</i> The number of AWS resources that were flagged (listed) by the Trusted Advisor check.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>resourcesProcessed</i> The number of AWS resources that were analyzed by the Trusted Advisor check.<br/>The summary information about cost savings for a Trusted Advisor check that is in the Cost Optimizing category.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>costOptimizing</b>: The summary information about cost savings for a Trusted Advisor check that is in the Cost Optimizing category.        """
        pass

    def describe_trusted_advisor_check_summaries(self, checkIds: List[String]) -> DescribeTrustedAdvisorCheckSummariesResponse:
        r"""Returns the results for the AWS Trusted Advisor check summaries for the check IDs that you specified. You can get the check IDs by calling the <a>DescribeTrustedAdvisorChecks</a> operation. The response contains an array of <a>TrustedAdvisorCheckSummary</a> objects. <note> <ul> <li> You must have a Business or Enterprise Support plan to use the AWS Support API.  </li> <li> If you call the AWS Support API from an account that does not have a Business or Enterprise Support plan, the <code>SubscriptionRequiredException</code> error message appears. For information about changing your support plan, see <a href="http://aws.amazon.com/premiumsupport/">AWS Support</a>. </li> </ul> </note>

        :param self:
        :param checkIds:  The IDs of the Trusted Advisor checks.<br/>
        :return: summaries:  The summary information for the requested Trusted Advisor checks.<br/>        """
        pass

    def describe_trusted_advisor_checks(self, language: str) -> DescribeTrustedAdvisorChecksResponse:
        r"""Returns information about all available AWS Trusted Advisor checks, including the name, ID, category, description, and metadata. You must specify a language code. The AWS Support API currently supports English ("en") and Japanese ("ja"). The response contains a <a>TrustedAdvisorCheckDescription</a> object for each check. You must set the AWS Region to us-east-1. <note> <ul> <li> You must have a Business or Enterprise Support plan to use the AWS Support API.  </li> <li> If you call the AWS Support API from an account that does not have a Business or Enterprise Support plan, the <code>SubscriptionRequiredException</code> error message appears. For information about changing your support plan, see <a href="http://aws.amazon.com/premiumsupport/">AWS Support</a>. </li> <li> The names and descriptions for Trusted Advisor checks are subject to change. We recommend that you specify the check ID in your code to uniquely identify a check. </li> </ul> </note>

        :param self:
        :param language:  The ISO 639-1 code for the language in which AWS provides support. AWS Support currently supports English ("en") and Japanese ("ja"). Language parameters must be passed explicitly for operations that take them.<br/>
        :return: checks:  Information about all available Trusted Advisor checks.<br/>        """
        pass

    def refresh_trusted_advisor_check(self, checkId: str) -> RefreshTrustedAdvisorCheckResponse:
        r"""Refreshes the AWS Trusted Advisor check that you specify using the check ID. You can get the check IDs by calling the <a>DescribeTrustedAdvisorChecks</a> operation. <note> Some checks are refreshed automatically. If you call the <code>RefreshTrustedAdvisorCheck</code> operation to refresh them, you might see the <code>InvalidParameterValue</code> error. </note> The response contains a <a>TrustedAdvisorCheckRefreshStatus</a> object. <note> <ul> <li> You must have a Business or Enterprise Support plan to use the AWS Support API.  </li> <li> If you call the AWS Support API from an account that does not have a Business or Enterprise Support plan, the <code>SubscriptionRequiredException</code> error message appears. For information about changing your support plan, see <a href="http://aws.amazon.com/premiumsupport/">AWS Support</a>. </li> </ul> </note>

        :param self:
        :param checkId:  The unique identifier for the Trusted Advisor check to refresh. <note> Specifying the check ID of a check that is automatically refreshed causes an <code>InvalidParameterValue</code> error. </note><br/>
        :return: status:  The current refresh status for a check, including the amount of time until the check is eligible for refresh.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>millisUntilNextRefreshable</i> The amount of time, in milliseconds, until the Trusted Advisor check is eligible for refresh.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the Trusted Advisor check for which a refresh has been requested:  <ul> <li>  <code>none</code> - The check is not refreshed or the non-success status exceeds the timeout </li> <li>  <code>enqueued</code> - The check refresh requests has entered the refresh queue </li> <li>  <code>processing</code> - The check refresh request is picked up by the rule processing engine </li> <li>  <code>success</code> - The check is successfully refreshed </li> <li>  <code>abandoned</code> - The check refresh has failed </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>checkId</i> The unique identifier for the Trusted Advisor check.<br/>        """
        pass

    def resolve_case(self, caseId: str=None) -> ResolveCaseResponse:
        r"""Resolves a support case. This operation takes a <code>caseId</code> and returns the initial and final state of the case. <note> <ul> <li> You must have a Business or Enterprise Support plan to use the AWS Support API.  </li> <li> If you call the AWS Support API from an account that does not have a Business or Enterprise Support plan, the <code>SubscriptionRequiredException</code> error message appears. For information about changing your support plan, see <a href="http://aws.amazon.com/premiumsupport/">AWS Support</a>. </li> </ul> </note>

        :param self:
        :param caseId:  The support case ID requested or returned in the call. The case ID is an alphanumeric string formatted as shown in this example: case-<i>12345678910-2013-c4c1d2bf33c5cf47</i> <br/>
        :return: finalCaseStatus:  The status of the case after the <a>ResolveCase</a> request was processed.<br/>initialCaseStatus:  The status of the case when the <a>ResolveCase</a> request was sent.<br/>        """
        pass





class SWF(BaseClient):
    r"""<fullname>Amazon Simple Workflow Service</fullname> The Amazon Simple Workflow Service (Amazon SWF) makes it easy to build applications that use Amazon's cloud to coordinate work across distributed components. In Amazon SWF, a <i>task</i> represents a logical unit of work that is performed by a component of your workflow. Coordinating tasks in a workflow involves managing intertask dependencies, scheduling, and concurrency in accordance with the logical flow of the application. Amazon SWF gives you full control over implementing tasks and coordinating them without worrying about underlying complexities such as tracking their progress and maintaining their state. This documentation serves as reference only. For a broader overview of the Amazon SWF programming model, see the <i> <a href="https://docs.aws.amazon.com/amazonswf/latest/developerguide/">Amazon SWF Developer Guide</a> </i>."""


    class GetWorkflowExecutionHistoryPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_workflow_execution_history` for valid parameters"""
            pass
    class ListActivityTypesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_activity_types` for valid parameters"""
            pass
    class ListClosedWorkflowExecutionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_closed_workflow_executions` for valid parameters"""
            pass
    class ListDomainsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_domains` for valid parameters"""
            pass
    class ListOpenWorkflowExecutionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_open_workflow_executions` for valid parameters"""
            pass
    class ListWorkflowTypesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_workflow_types` for valid parameters"""
            pass
    class PollForDecisionTaskPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `poll_for_decision_task` for valid parameters"""
            pass


    class CountClosedWorkflowExecutionsInput(Mapping):
        pass
    
    class WorkflowExecutionCount(Mapping):
        pass
    
    class ExecutionTimeFilter(Mapping):
        pass
    
    class WorkflowExecutionFilter(Mapping):
        pass
    
    class WorkflowTypeFilter(Mapping):
        pass
    
    class TagFilter(Mapping):
        pass
    
    class CloseStatusFilter(Mapping):
        pass
    
    class CountOpenWorkflowExecutionsInput(Mapping):
        pass
    
    class CountPendingActivityTasksInput(Mapping):
        pass
    
    class PendingTaskCount(Mapping):
        pass
    
    class TaskList(Mapping):
        pass
    
    class CountPendingDecisionTasksInput(Mapping):
        pass
    
    class DeprecateActivityTypeInput(Mapping):
        pass
    
    class ActivityType(Mapping):
        pass
    
    class DeprecateDomainInput(Mapping):
        pass
    
    class DeprecateWorkflowTypeInput(Mapping):
        pass
    
    class WorkflowType(Mapping):
        pass
    
    class DescribeActivityTypeInput(Mapping):
        pass
    
    class ActivityTypeDetail(Mapping):
        pass
    
    class DescribeDomainInput(Mapping):
        pass
    
    class DomainDetail(Mapping):
        pass
    
    class DescribeWorkflowExecutionInput(Mapping):
        pass
    
    class WorkflowExecutionDetail(Mapping):
        pass
    
    class WorkflowExecution(Mapping):
        pass
    
    class DescribeWorkflowTypeInput(Mapping):
        pass
    
    class WorkflowTypeDetail(Mapping):
        pass
    
    class GetWorkflowExecutionHistoryInput(Mapping):
        pass
    
    class History(Mapping):
        pass
    
    class ReverseOrder(object):
        pass
    
    class ListActivityTypesInput(Mapping):
        pass
    
    class ActivityTypeInfos(Mapping):
        pass
    
    class ListClosedWorkflowExecutionsInput(Mapping):
        pass
    
    class WorkflowExecutionInfos(Mapping):
        pass
    
    class ListDomainsInput(Mapping):
        pass
    
    class DomainInfos(Mapping):
        pass
    
    class ListOpenWorkflowExecutionsInput(Mapping):
        pass
    
    class ListTagsForResourceInput(Mapping):
        pass
    
    class ListTagsForResourceOutput(Mapping):
        pass
    
    class ListWorkflowTypesInput(Mapping):
        pass
    
    class WorkflowTypeInfos(Mapping):
        pass
    
    class PollForActivityTaskInput(Mapping):
        pass
    
    class ActivityTask(Mapping):
        pass
    
    class PollForDecisionTaskInput(Mapping):
        pass
    
    class DecisionTask(Mapping):
        pass
    
    class RecordActivityTaskHeartbeatInput(Mapping):
        pass
    
    class ActivityTaskStatus(Mapping):
        pass
    
    class RegisterActivityTypeInput(Mapping):
        pass
    
    class RegisterDomainInput(Mapping):
        pass
    
    class ResourceTag(Mapping):
        pass
    
    class RegisterWorkflowTypeInput(Mapping):
        pass
    
    class RequestCancelWorkflowExecutionInput(Mapping):
        pass
    
    class RespondActivityTaskCanceledInput(Mapping):
        pass
    
    class RespondActivityTaskCompletedInput(Mapping):
        pass
    
    class RespondActivityTaskFailedInput(Mapping):
        pass
    
    class RespondDecisionTaskCompletedInput(Mapping):
        pass
    
    class Decision(Mapping):
        pass
    
    class SignalWorkflowExecutionInput(Mapping):
        pass
    
    class StartWorkflowExecutionInput(Mapping):
        pass
    
    class Run(Mapping):
        pass
    
    class Tag(object):
        pass
    
    class TagResourceInput(Mapping):
        pass
    
    class TerminateWorkflowExecutionInput(Mapping):
        pass
    
    class UndeprecateActivityTypeInput(Mapping):
        pass
    
    class UndeprecateDomainInput(Mapping):
        pass
    
    class UndeprecateWorkflowTypeInput(Mapping):
        pass
    
    class UntagResourceInput(Mapping):
        pass
    
    class ResourceTagKey(object):
        pass
    
    def count_closed_workflow_executions(self, domain: str, startTimeFilter: ExecutionTimeFilter=None, closeTimeFilter: ExecutionTimeFilter=None, executionFilter: WorkflowExecutionFilter=None, typeFilter: WorkflowTypeFilter=None, tagFilter: TagFilter=None, closeStatusFilter: CloseStatusFilter=None) -> WorkflowExecutionCount:
        r"""Returns the number of closed workflow executions within the given domain that meet the specified filtering criteria. <note> This operation is eventually consistent. The results are best effort and may not exactly reflect recent updates and changes. </note>  <b>Access Control</b>  You can use IAM policies to control this action's access to Amazon SWF resources as follows: <ul> <li> Use a <code>Resource</code> element with the domain name to limit the action to only specified domains. </li> <li> Use an <code>Action</code> element to allow or deny permission to call this action. </li> <li> Constrain the following parameters by using a <code>Condition</code> element with the appropriate keys. <ul> <li>  <code>tagFilter.tag</code>: String constraint. The key is <code>swf:tagFilter.tag</code>. </li> <li>  <code>typeFilter.name</code>: String constraint. The key is <code>swf:typeFilter.name</code>. </li> <li>  <code>typeFilter.version</code>: String constraint. The key is <code>swf:typeFilter.version</code>. </li> </ul> </li> </ul> If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's <code>cause</code> parameter is set to <code>OPERATION_NOT_PERMITTED</code>. For details and example IAM policies, see <a href="https://docs.aws.amazon.com/amazonswf/latest/developerguide/swf-dev-iam.html">Using IAM to Manage Access to Amazon SWF Workflows</a> in the <i>Amazon SWF Developer Guide</i>.

        :param self:
        :param closeStatusFilter:  If specified, only workflow executions that match this close status are counted. This filter has an affect only if <code>executionStatus</code> is specified as <code>CLOSED</code>. <note>  <code>closeStatusFilter</code>, <code>executionFilter</code>, <code>typeFilter</code> and <code>tagFilter</code> are mutually exclusive. You can specify at most one of these in a request. </note>:<br/>tagFilter:  If specified, only executions that have a tag that matches the filter are counted. <note>  <code>closeStatusFilter</code>, <code>executionFilter</code>, <code>typeFilter</code> and <code>tagFilter</code> are mutually exclusive. You can specify at most one of these in a request. </note>:<br/>typeFilter:  If specified, indicates the type of the workflow executions to be counted. <note>  <code>closeStatusFilter</code>, <code>executionFilter</code>, <code>typeFilter</code> and <code>tagFilter</code> are mutually exclusive. You can specify at most one of these in a request. </note>:<br/>executionFilter:  If specified, only workflow executions matching the <code>WorkflowId</code> in the filter are counted. <note>  <code>closeStatusFilter</code>, <code>executionFilter</code>, <code>typeFilter</code> and <code>tagFilter</code> are mutually exclusive. You can specify at most one of these in a request. </note>:<br/>closeTimeFilter:  If specified, only workflow executions that meet the close time criteria of the filter are counted. <note>  <code>startTimeFilter</code> and <code>closeTimeFilter</code> are mutually exclusive. You must specify one of these in a request but not both. </note>:<br/>startTimeFilter:  If specified, only workflow executions that meet the start time criteria of the filter are counted. <note>  <code>startTimeFilter</code> and <code>closeTimeFilter</code> are mutually exclusive. You must specify one of these in a request but not both. </note>:<br/>domain:  The name of the domain containing the workflow executions to count.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>latestDate</i> Specifies the latest start or close date and time to return.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>oldestDate</i> Specifies the oldest start or close date and time to return.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>latestDate</i> Specifies the latest start or close date and time to return.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>oldestDate</i> Specifies the oldest start or close date and time to return.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>workflowId</i> The workflowId to pass of match the criteria of this filter.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> Version of the workflow type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i>  Name of the workflow type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tag</i>  Specifies the tag that must be associated with the execution for it to meet the filter criteria. Tags may only contain unicode letters, digits, whitespace, or these symbols: <code>_ . : / = + - @</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i>  The close status that must match the close status of an execution for it to meet the criteria of this filter.<br/>
        :return: truncated:  If set to true, indicates that the actual count was more than the maximum supported by this API and the count returned is the truncated value.<br/>count:  The number of workflow executions.<br/>        """
        pass

    def count_open_workflow_executions(self, startTimeFilter: ExecutionTimeFilter, domain: str, typeFilter: WorkflowTypeFilter=None, tagFilter: TagFilter=None, executionFilter: WorkflowExecutionFilter=None) -> WorkflowExecutionCount:
        r"""Returns the number of open workflow executions within the given domain that meet the specified filtering criteria. <note> This operation is eventually consistent. The results are best effort and may not exactly reflect recent updates and changes. </note>  <b>Access Control</b>  You can use IAM policies to control this action's access to Amazon SWF resources as follows: <ul> <li> Use a <code>Resource</code> element with the domain name to limit the action to only specified domains. </li> <li> Use an <code>Action</code> element to allow or deny permission to call this action. </li> <li> Constrain the following parameters by using a <code>Condition</code> element with the appropriate keys. <ul> <li>  <code>tagFilter.tag</code>: String constraint. The key is <code>swf:tagFilter.tag</code>. </li> <li>  <code>typeFilter.name</code>: String constraint. The key is <code>swf:typeFilter.name</code>. </li> <li>  <code>typeFilter.version</code>: String constraint. The key is <code>swf:typeFilter.version</code>. </li> </ul> </li> </ul> If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's <code>cause</code> parameter is set to <code>OPERATION_NOT_PERMITTED</code>. For details and example IAM policies, see <a href="https://docs.aws.amazon.com/amazonswf/latest/developerguide/swf-dev-iam.html">Using IAM to Manage Access to Amazon SWF Workflows</a> in the <i>Amazon SWF Developer Guide</i>.

        :param self:
        :param executionFilter:  If specified, only workflow executions matching the <code>WorkflowId</code> in the filter are counted. <note>  <code>executionFilter</code>, <code>typeFilter</code> and <code>tagFilter</code> are mutually exclusive. You can specify at most one of these in a request. </note>:<br/>tagFilter:  If specified, only executions that have a tag that matches the filter are counted. <note>  <code>executionFilter</code>, <code>typeFilter</code> and <code>tagFilter</code> are mutually exclusive. You can specify at most one of these in a request. </note>:<br/>typeFilter:  Specifies the type of the workflow executions to be counted. <note>  <code>executionFilter</code>, <code>typeFilter</code> and <code>tagFilter</code> are mutually exclusive. You can specify at most one of these in a request. </note>:<br/>startTimeFilter:  Specifies the start time criteria that workflow executions must meet in order to be counted.:<br/>domain:  The name of the domain containing the workflow executions to count.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>latestDate</i> Specifies the latest start or close date and time to return.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>oldestDate</i> Specifies the oldest start or close date and time to return.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> Version of the workflow type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i>  Name of the workflow type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tag</i>  Specifies the tag that must be associated with the execution for it to meet the filter criteria. Tags may only contain unicode letters, digits, whitespace, or these symbols: <code>_ . : / = + - @</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>workflowId</i> The workflowId to pass of match the criteria of this filter.<br/>
        :return: truncated:  If set to true, indicates that the actual count was more than the maximum supported by this API and the count returned is the truncated value.<br/>count:  The number of workflow executions.<br/>        """
        pass

    def count_pending_activity_tasks(self, taskList: TaskList, domain: str) -> PendingTaskCount:
        r"""Returns the estimated number of activity tasks in the specified task list. The count returned is an approximation and isn't guaranteed to be exact. If you specify a task list that no activity task was ever scheduled in then <code>0</code> is returned.  <b>Access Control</b>  You can use IAM policies to control this action's access to Amazon SWF resources as follows: <ul> <li> Use a <code>Resource</code> element with the domain name to limit the action to only specified domains. </li> <li> Use an <code>Action</code> element to allow or deny permission to call this action. </li> <li> Constrain the <code>taskList.name</code> parameter by using a <code>Condition</code> element with the <code>swf:taskList.name</code> key to allow the action to access only certain task lists. </li> </ul> If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's <code>cause</code> parameter is set to <code>OPERATION_NOT_PERMITTED</code>. For details and example IAM policies, see <a href="https://docs.aws.amazon.com/amazonswf/latest/developerguide/swf-dev-iam.html">Using IAM to Manage Access to Amazon SWF Workflows</a> in the <i>Amazon SWF Developer Guide</i>.

        :param self:
        :param taskList:  The name of the task list.:<br/>domain:  The name of the domain that contains the task list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the task list.<br/>
        :return: truncated:  If set to true, indicates that the actual count was more than the maximum supported by this API and the count returned is the truncated value.<br/>count:  The number of tasks in the task list.<br/>        """
        pass

    def count_pending_decision_tasks(self, taskList: TaskList, domain: str) -> PendingTaskCount:
        r"""Returns the estimated number of decision tasks in the specified task list. The count returned is an approximation and isn't guaranteed to be exact. If you specify a task list that no decision task was ever scheduled in then <code>0</code> is returned.  <b>Access Control</b>  You can use IAM policies to control this action's access to Amazon SWF resources as follows: <ul> <li> Use a <code>Resource</code> element with the domain name to limit the action to only specified domains. </li> <li> Use an <code>Action</code> element to allow or deny permission to call this action. </li> <li> Constrain the <code>taskList.name</code> parameter by using a <code>Condition</code> element with the <code>swf:taskList.name</code> key to allow the action to access only certain task lists. </li> </ul> If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's <code>cause</code> parameter is set to <code>OPERATION_NOT_PERMITTED</code>. For details and example IAM policies, see <a href="https://docs.aws.amazon.com/amazonswf/latest/developerguide/swf-dev-iam.html">Using IAM to Manage Access to Amazon SWF Workflows</a> in the <i>Amazon SWF Developer Guide</i>.

        :param self:
        :param taskList:  The name of the task list.:<br/>domain:  The name of the domain that contains the task list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the task list.<br/>
        :return: truncated:  If set to true, indicates that the actual count was more than the maximum supported by this API and the count returned is the truncated value.<br/>count:  The number of tasks in the task list.<br/>        """
        pass

    def deprecate_activity_type(self, activityType: ActivityType, domain: str):
        r"""Deprecates the specified <i>activity type</i>. After an activity type has been deprecated, you cannot create new tasks of that activity type. Tasks of this type that were scheduled before the type was deprecated continue to run. <note> This operation is eventually consistent. The results are best effort and may not exactly reflect recent updates and changes. </note>  <b>Access Control</b>  You can use IAM policies to control this action's access to Amazon SWF resources as follows: <ul> <li> Use a <code>Resource</code> element with the domain name to limit the action to only specified domains. </li> <li> Use an <code>Action</code> element to allow or deny permission to call this action. </li> <li> Constrain the following parameters by using a <code>Condition</code> element with the appropriate keys. <ul> <li>  <code>activityType.name</code>: String constraint. The key is <code>swf:activityType.name</code>. </li> <li>  <code>activityType.version</code>: String constraint. The key is <code>swf:activityType.version</code>. </li> </ul> </li> </ul> If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's <code>cause</code> parameter is set to <code>OPERATION_NOT_PERMITTED</code>. For details and example IAM policies, see <a href="https://docs.aws.amazon.com/amazonswf/latest/developerguide/swf-dev-iam.html">Using IAM to Manage Access to Amazon SWF Workflows</a> in the <i>Amazon SWF Developer Guide</i>.

        :param self:
        :param activityType:  The activity type to deprecate.:<br/>domain:  The name of the domain in which the activity type is registered.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The version of this activity. <note> The combination of activity type name and version must be unique with in a domain. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of this activity. <note> The combination of activity type name and version must be unique within a domain. </note><br/>
        :return:         """
        pass

    def deprecate_domain(self, name: str):
        r"""Deprecates the specified domain. After a domain has been deprecated it cannot be used to create new workflow executions or register new types. However, you can still use visibility actions on this domain. Deprecating a domain also deprecates all activity and workflow types registered in the domain. Executions that were started before the domain was deprecated continues to run. <note> This operation is eventually consistent. The results are best effort and may not exactly reflect recent updates and changes. </note>  <b>Access Control</b>  You can use IAM policies to control this action's access to Amazon SWF resources as follows: <ul> <li> Use a <code>Resource</code> element with the domain name to limit the action to only specified domains. </li> <li> Use an <code>Action</code> element to allow or deny permission to call this action. </li> <li> You cannot use an IAM policy to constrain this action's parameters. </li> </ul> If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's <code>cause</code> parameter is set to <code>OPERATION_NOT_PERMITTED</code>. For details and example IAM policies, see <a href="https://docs.aws.amazon.com/amazonswf/latest/developerguide/swf-dev-iam.html">Using IAM to Manage Access to Amazon SWF Workflows</a> in the <i>Amazon SWF Developer Guide</i>.

        :param self:
        :param name:  The name of the domain to deprecate.<br/>
        :return:         """
        pass

    def deprecate_workflow_type(self, workflowType: WorkflowType, domain: str):
        r"""Deprecates the specified <i>workflow type</i>. After a workflow type has been deprecated, you cannot create new executions of that type. Executions that were started before the type was deprecated continues to run. A deprecated workflow type may still be used when calling visibility actions. <note> This operation is eventually consistent. The results are best effort and may not exactly reflect recent updates and changes. </note>  <b>Access Control</b>  You can use IAM policies to control this action's access to Amazon SWF resources as follows: <ul> <li> Use a <code>Resource</code> element with the domain name to limit the action to only specified domains. </li> <li> Use an <code>Action</code> element to allow or deny permission to call this action. </li> <li> Constrain the following parameters by using a <code>Condition</code> element with the appropriate keys. <ul> <li>  <code>workflowType.name</code>: String constraint. The key is <code>swf:workflowType.name</code>. </li> <li>  <code>workflowType.version</code>: String constraint. The key is <code>swf:workflowType.version</code>. </li> </ul> </li> </ul> If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's <code>cause</code> parameter is set to <code>OPERATION_NOT_PERMITTED</code>. For details and example IAM policies, see <a href="https://docs.aws.amazon.com/amazonswf/latest/developerguide/swf-dev-iam.html">Using IAM to Manage Access to Amazon SWF Workflows</a> in the <i>Amazon SWF Developer Guide</i>.

        :param self:
        :param workflowType:  The workflow type to deprecate.:<br/>domain:  The name of the domain in which the workflow type is registered.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i>  The version of the workflow type. <note> The combination of workflow type name and version must be unique with in a domain. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i>  The name of the workflow type. <note> The combination of workflow type name and version must be unique with in a domain. </note><br/>
        :return:         """
        pass

    def describe_activity_type(self, activityType: ActivityType, domain: str) -> ActivityTypeDetail:
        r"""Returns information about the specified activity type. This includes configuration settings provided when the type was registered and other general information about the type.  <b>Access Control</b>  You can use IAM policies to control this action's access to Amazon SWF resources as follows: <ul> <li> Use a <code>Resource</code> element with the domain name to limit the action to only specified domains. </li> <li> Use an <code>Action</code> element to allow or deny permission to call this action. </li> <li> Constrain the following parameters by using a <code>Condition</code> element with the appropriate keys. <ul> <li>  <code>activityType.name</code>: String constraint. The key is <code>swf:activityType.name</code>. </li> <li>  <code>activityType.version</code>: String constraint. The key is <code>swf:activityType.version</code>. </li> </ul> </li> </ul> If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's <code>cause</code> parameter is set to <code>OPERATION_NOT_PERMITTED</code>. For details and example IAM policies, see <a href="https://docs.aws.amazon.com/amazonswf/latest/developerguide/swf-dev-iam.html">Using IAM to Manage Access to Amazon SWF Workflows</a> in the <i>Amazon SWF Developer Guide</i>.

        :param self:
        :param activityType:  The activity type to get information about. Activity types are identified by the <code>name</code> and <code>version</code> that were supplied when the activity was registered.:<br/>domain:  The name of the domain in which the activity type is registered.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The version of this activity. <note> The combination of activity type name and version must be unique with in a domain. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of this activity. <note> The combination of activity type name and version must be unique within a domain. </note><br/>
        :return: configuration:  The configuration settings registered with the activity type.:<br/>typeInfo:  General information about the activity type. The status of activity type (returned in the ActivityTypeInfo structure) can be one of the following. <ul> <li>  <code>REGISTERED</code> – The type is registered and available. Workers supporting this type should be running.  </li> <li>  <code>DEPRECATED</code> – The type was deprecated using <a>DeprecateActivityType</a>, but is still in use. You should keep workers supporting this type running. You cannot create new tasks of this type.  </li> </ul>:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deprecationDate</i> If DEPRECATED, the date and time <a>DeprecateActivityType</a> was called.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationDate</i> The date and time this activity type was created through <a>RegisterActivityType</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> The description of the activity type provided in <a>RegisterActivityType</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current status of the activity type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>activityType</i> The <a>ActivityType</a> type structure representing the activity type.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>activityType</b>: The <a>ActivityType</a> type structure representing the activity type.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The version of this activity. <note> The combination of activity type name and version must be unique with in a domain. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of this activity. <note> The combination of activity type name and version must be unique within a domain. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>defaultTaskScheduleToCloseTimeout</i>  The default maximum duration, specified when registering the activity type, for tasks of this activity type. You can override this default when scheduling a task through the <code>ScheduleActivityTask</code> <a>Decision</a>. The duration is specified in seconds, an integer greater than or equal to <code>0</code>. You can use <code>NONE</code> to specify unlimited duration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>defaultTaskScheduleToStartTimeout</i>  The default maximum duration, specified when registering the activity type, that a task of an activity type can wait before being assigned to a worker. You can override this default when scheduling a task through the <code>ScheduleActivityTask</code> <a>Decision</a>. The duration is specified in seconds, an integer greater than or equal to <code>0</code>. You can use <code>NONE</code> to specify unlimited duration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>defaultTaskPriority</i>  The default task priority for tasks of this activity type, specified at registration. If not set, then <code>0</code> is used as the default priority. This default can be overridden when scheduling an activity task. Valid values are integers that range from Java's <code>Integer.MIN_VALUE</code> (-2147483648) to <code>Integer.MAX_VALUE</code> (2147483647). Higher numbers indicate higher priority. For more information about setting task priority, see <a href="https://docs.aws.amazon.com/amazonswf/latest/developerguide/programming-priority.html">Setting Task Priority</a> in the <i>Amazon SWF Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>defaultTaskList</i>  The default task list specified for this activity type at registration. This default is used if a task list isn't provided when a task is scheduled through the <code>ScheduleActivityTask</code> <a>Decision</a>. You can override the default registered task list when scheduling a task through the <code>ScheduleActivityTask</code> <a>Decision</a>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>defaultTaskList</b>:  The default task list specified for this activity type at registration. This default is used if a task list isn't provided when a task is scheduled through the <code>ScheduleActivityTask</code> <a>Decision</a>. You can override the default registered task list when scheduling a task through the <code>ScheduleActivityTask</code> <a>Decision</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>defaultTaskHeartbeatTimeout</i>  The default maximum time, in seconds, before which a worker processing a task must report progress by calling <a>RecordActivityTaskHeartbeat</a>. You can specify this value only when <i>registering</i> an activity type. The registered default value can be overridden when you schedule a task through the <code>ScheduleActivityTask</code> <a>Decision</a>. If the activity worker subsequently attempts to record a heartbeat or returns a result, the activity worker receives an <code>UnknownResource</code> fault. In this case, Amazon SWF no longer considers the activity task to be valid; the activity worker should clean up the activity task. The duration is specified in seconds, an integer greater than or equal to <code>0</code>. You can use <code>NONE</code> to specify unlimited duration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>defaultTaskStartToCloseTimeout</i>  The default maximum duration for tasks of an activity type specified when registering the activity type. You can override this default when scheduling a task through the <code>ScheduleActivityTask</code> <a>Decision</a>. The duration is specified in seconds, an integer greater than or equal to <code>0</code>. You can use <code>NONE</code> to specify unlimited duration.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the task list.<br/>        """
        pass

    def describe_domain(self, name: str) -> DomainDetail:
        r"""Returns information about the specified domain, including description and status.  <b>Access Control</b>  You can use IAM policies to control this action's access to Amazon SWF resources as follows: <ul> <li> Use a <code>Resource</code> element with the domain name to limit the action to only specified domains. </li> <li> Use an <code>Action</code> element to allow or deny permission to call this action. </li> <li> You cannot use an IAM policy to constrain this action's parameters. </li> </ul> If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's <code>cause</code> parameter is set to <code>OPERATION_NOT_PERMITTED</code>. For details and example IAM policies, see <a href="https://docs.aws.amazon.com/amazonswf/latest/developerguide/swf-dev-iam.html">Using IAM to Manage Access to Amazon SWF Workflows</a> in the <i>Amazon SWF Developer Guide</i>.

        :param self:
        :param name:  The name of the domain to describe.<br/>
        :return: configuration:  The domain configuration. Currently, this includes only the domain's retention period.:<br/>domainInfo:  The basic information about a domain, such as its name, status, and description.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>arn</i> The ARN of the domain.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> The description of the domain provided through <a>RegisterDomain</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The status of the domain: <ul> <li>  <code>REGISTERED</code> – The domain is properly registered and available. You can use this domain for registering types and creating new workflow executions.  </li> <li>  <code>DEPRECATED</code> – The domain was deprecated using <a>DeprecateDomain</a>, but is still in use. You should not create new workflow executions in this domain.  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the domain. This name is unique within the account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>workflowExecutionRetentionPeriodInDays</i> The retention period for workflow executions in this domain.<br/>        """
        pass

    def describe_workflow_execution(self, execution: WorkflowExecution, domain: str) -> WorkflowExecutionDetail:
        r"""Returns information about the specified workflow execution including its type and some statistics. <note> This operation is eventually consistent. The results are best effort and may not exactly reflect recent updates and changes. </note>  <b>Access Control</b>  You can use IAM policies to control this action's access to Amazon SWF resources as follows: <ul> <li> Use a <code>Resource</code> element with the domain name to limit the action to only specified domains. </li> <li> Use an <code>Action</code> element to allow or deny permission to call this action. </li> <li> You cannot use an IAM policy to constrain this action's parameters. </li> </ul> If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's <code>cause</code> parameter is set to <code>OPERATION_NOT_PERMITTED</code>. For details and example IAM policies, see <a href="https://docs.aws.amazon.com/amazonswf/latest/developerguide/swf-dev-iam.html">Using IAM to Manage Access to Amazon SWF Workflows</a> in the <i>Amazon SWF Developer Guide</i>.

        :param self:
        :param execution:  The workflow execution to describe.:<br/>domain:  The name of the domain containing the workflow execution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>runId</i> A system-generated unique identifier for the workflow execution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>workflowId</i> The user defined identifier associated with the workflow execution.<br/>
        :return: latestExecutionContext:  The latest executionContext provided by the decider for this workflow execution. A decider can provide an executionContext (a free-form string) when closing a decision task using <a>RespondDecisionTaskCompleted</a>.<br/>latestActivityTaskTimestamp:  The time when the last activity task was scheduled for this workflow execution. You can use this information to determine if the workflow has not made progress for an unusually long period of time and might require a corrective action.<br/>openCounts:  The number of tasks for this workflow execution. This includes open and closed tasks of all types.:<br/>executionConfiguration:  The configuration settings for this workflow execution including timeout values, tasklist etc.:<br/>executionInfo:  Information about the workflow execution.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>cancelRequested</i> Set to true if a cancellation is requested for this workflow execution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tagList</i> The list of tags associated with the workflow execution. Tags can be used to identify and list workflow executions of interest through the visibility APIs. A workflow execution can have a maximum of 5 tags.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>parent</i> If this workflow execution is a child of another execution then contains the workflow execution that started this execution.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>parent</b>: If this workflow execution is a child of another execution then contains the workflow execution that started this execution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>closeStatus</i> If the execution status is closed then this specifies how the execution was closed: <ul> <li>  <code>COMPLETED</code> – the execution was successfully completed. </li> <li>  <code>CANCELED</code> – the execution was canceled.Cancellation allows the implementation to gracefully clean up before the execution is closed. </li> <li>  <code>TERMINATED</code> – the execution was force terminated. </li> <li>  <code>FAILED</code> – the execution failed to complete. </li> <li>  <code>TIMED_OUT</code> – the execution did not complete in the alloted time and was automatically timed out. </li> <li>  <code>CONTINUED_AS_NEW</code> – the execution is logically continued. This means the current execution was completed and a new execution was started to carry on the workflow. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>executionStatus</i> The current status of the execution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>closeTimestamp</i> The time when the workflow execution was closed. Set only if the execution status is CLOSED.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>startTimestamp</i> The time when the execution was started.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>workflowType</i> The type of the workflow execution.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>workflowType</b>: The type of the workflow execution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>execution</i> The workflow execution this information is about.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>execution</b>: The workflow execution this information is about.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>runId</i> A system-generated unique identifier for the workflow execution.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>workflowId</i> The user defined identifier associated with the workflow execution.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i>  The version of the workflow type. <note> The combination of workflow type name and version must be unique with in a domain. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i>  The name of the workflow type. <note> The combination of workflow type name and version must be unique with in a domain. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>runId</i> A system-generated unique identifier for the workflow execution.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>workflowId</i> The user defined identifier associated with the workflow execution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>lambdaRole</i> The IAM role attached to the child workflow execution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>childPolicy</i> The policy to use for the child workflow executions if this workflow execution is terminated, by calling the <a>TerminateWorkflowExecution</a> action explicitly or due to an expired timeout. The supported child policies are: <ul> <li>  <code>TERMINATE</code> – The child executions are terminated. </li> <li>  <code>REQUEST_CANCEL</code> – A request to cancel is attempted for each child execution by recording a <code>WorkflowExecutionCancelRequested</code> event in its history. It is up to the decider to take appropriate actions when it receives an execution history with this event. </li> <li>  <code>ABANDON</code> – No action is taken. The child executions continue to run. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>taskPriority</i> The priority assigned to decision tasks for this workflow execution. Valid values are integers that range from Java's <code>Integer.MIN_VALUE</code> (-2147483648) to <code>Integer.MAX_VALUE</code> (2147483647). Higher numbers indicate higher priority. For more information about setting task priority, see <a href="https://docs.aws.amazon.com/amazonswf/latest/developerguide/programming-priority.html">Setting Task Priority</a> in the <i>Amazon SWF Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>taskList</i> The task list used for the decision tasks generated for this workflow execution.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>taskList</b>: The task list used for the decision tasks generated for this workflow execution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>executionStartToCloseTimeout</i> The total duration for this workflow execution. The duration is specified in seconds, an integer greater than or equal to <code>0</code>. You can use <code>NONE</code> to specify unlimited duration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>taskStartToCloseTimeout</i> The maximum duration allowed for decision tasks for this workflow execution. The duration is specified in seconds, an integer greater than or equal to <code>0</code>. You can use <code>NONE</code> to specify unlimited duration.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the task list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>openLambdaFunctions</i> The count of Lambda tasks whose status is <code>OPEN</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>openChildWorkflowExecutions</i> The count of child workflow executions whose status is <code>OPEN</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>openTimers</i> The count of timers started by this workflow execution that have not fired yet.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>openDecisionTasks</i> The count of decision tasks whose status is OPEN. A workflow execution can have at most one open decision task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>openActivityTasks</i> The count of activity tasks whose status is <code>OPEN</code>.<br/>        """
        pass

    def describe_workflow_type(self, workflowType: WorkflowType, domain: str) -> WorkflowTypeDetail:
        r"""Returns information about the specified <i>workflow type</i>. This includes configuration settings specified when the type was registered and other information such as creation date, current status, etc.  <b>Access Control</b>  You can use IAM policies to control this action's access to Amazon SWF resources as follows: <ul> <li> Use a <code>Resource</code> element with the domain name to limit the action to only specified domains. </li> <li> Use an <code>Action</code> element to allow or deny permission to call this action. </li> <li> Constrain the following parameters by using a <code>Condition</code> element with the appropriate keys. <ul> <li>  <code>workflowType.name</code>: String constraint. The key is <code>swf:workflowType.name</code>. </li> <li>  <code>workflowType.version</code>: String constraint. The key is <code>swf:workflowType.version</code>. </li> </ul> </li> </ul> If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's <code>cause</code> parameter is set to <code>OPERATION_NOT_PERMITTED</code>. For details and example IAM policies, see <a href="https://docs.aws.amazon.com/amazonswf/latest/developerguide/swf-dev-iam.html">Using IAM to Manage Access to Amazon SWF Workflows</a> in the <i>Amazon SWF Developer Guide</i>.

        :param self:
        :param workflowType:  The workflow type to describe.:<br/>domain:  The name of the domain in which this workflow type is registered.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i>  The version of the workflow type. <note> The combination of workflow type name and version must be unique with in a domain. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i>  The name of the workflow type. <note> The combination of workflow type name and version must be unique with in a domain. </note><br/>
        :return: configuration:  Configuration settings of the workflow type registered through <a>RegisterWorkflowType</a> :<br/>typeInfo:  General information about the workflow type. The status of the workflow type (returned in the WorkflowTypeInfo structure) can be one of the following. <ul> <li>  <code>REGISTERED</code> – The type is registered and available. Workers supporting this type should be running. </li> <li>  <code>DEPRECATED</code> – The type was deprecated using <a>DeprecateWorkflowType</a>, but is still in use. You should keep workers supporting this type running. You cannot create new workflow executions of this type. </li> </ul>:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>deprecationDate</i> If the type is in deprecated state, then it is set to the date when the type was deprecated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>creationDate</i> The date when this type was registered.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>description</i> The description of the type registered through <a>RegisterWorkflowType</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i> The current status of the workflow type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>workflowType</i> The workflow type this information is about.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>workflowType</b>: The workflow type this information is about.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i>  The version of the workflow type. <note> The combination of workflow type name and version must be unique with in a domain. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i>  The name of the workflow type. <note> The combination of workflow type name and version must be unique with in a domain. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>defaultLambdaRole</i> The default IAM role attached to this workflow type. <note> Executions of this workflow type need IAM roles to invoke Lambda functions. If you don't specify an IAM role when starting this workflow type, the default Lambda role is attached to the execution. For more information, see <a href="https://docs.aws.amazon.com/amazonswf/latest/developerguide/lambda-task.html">https://docs.aws.amazon.com/amazonswf/latest/developerguide/lambda-task.html</a> in the <i>Amazon SWF Developer Guide</i>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>defaultChildPolicy</i>  The default policy to use for the child workflow executions when a workflow execution of this type is terminated, by calling the <a>TerminateWorkflowExecution</a> action explicitly or due to an expired timeout. This default can be overridden when starting a workflow execution using the <a>StartWorkflowExecution</a> action or the <code>StartChildWorkflowExecution</code> <a>Decision</a>. The supported child policies are: <ul> <li>  <code>TERMINATE</code> – The child executions are terminated. </li> <li>  <code>REQUEST_CANCEL</code> – A request to cancel is attempted for each child execution by recording a <code>WorkflowExecutionCancelRequested</code> event in its history. It is up to the decider to take appropriate actions when it receives an execution history with this event. </li> <li>  <code>ABANDON</code> – No action is taken. The child executions continue to run. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>defaultTaskPriority</i>  The default task priority, specified when registering the workflow type, for all decision tasks of this workflow type. This default can be overridden when starting a workflow execution using the <a>StartWorkflowExecution</a> action or the <code>StartChildWorkflowExecution</code> decision. Valid values are integers that range from Java's <code>Integer.MIN_VALUE</code> (-2147483648) to <code>Integer.MAX_VALUE</code> (2147483647). Higher numbers indicate higher priority. For more information about setting task priority, see <a href="https://docs.aws.amazon.com/amazonswf/latest/developerguide/programming-priority.html">Setting Task Priority</a> in the <i>Amazon SWF Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>defaultTaskList</i>  The default task list, specified when registering the workflow type, for decisions tasks scheduled for workflow executions of this type. This default can be overridden when starting a workflow execution using the <a>StartWorkflowExecution</a> action or the <code>StartChildWorkflowExecution</code> <a>Decision</a>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>defaultTaskList</b>:  The default task list, specified when registering the workflow type, for decisions tasks scheduled for workflow executions of this type. This default can be overridden when starting a workflow execution using the <a>StartWorkflowExecution</a> action or the <code>StartChildWorkflowExecution</code> <a>Decision</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>defaultExecutionStartToCloseTimeout</i>  The default maximum duration, specified when registering the workflow type, for executions of this workflow type. This default can be overridden when starting a workflow execution using the <a>StartWorkflowExecution</a> action or the <code>StartChildWorkflowExecution</code> <a>Decision</a>. The duration is specified in seconds, an integer greater than or equal to <code>0</code>. You can use <code>NONE</code> to specify unlimited duration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>defaultTaskStartToCloseTimeout</i>  The default maximum duration, specified when registering the workflow type, that a decision task for executions of this workflow type might take before returning completion or failure. If the task doesn'tdo close in the specified time then the task is automatically timed out and rescheduled. If the decider eventually reports a completion or failure, it is ignored. This default can be overridden when starting a workflow execution using the <a>StartWorkflowExecution</a> action or the <code>StartChildWorkflowExecution</code> <a>Decision</a>. The duration is specified in seconds, an integer greater than or equal to <code>0</code>. You can use <code>NONE</code> to specify unlimited duration.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the task list.<br/>        """
        pass

    def get_workflow_execution_history(self, execution: WorkflowExecution, domain: str, nextPageToken: str=None, maximumPageSize: int=None, reverseOrder: ReverseOrder=None) -> History:
        r"""Returns the history of the specified workflow execution. The results may be split into multiple pages. To retrieve subsequent pages, make the call again using the <code>nextPageToken</code> returned by the initial call. <note> This operation is eventually consistent. The results are best effort and may not exactly reflect recent updates and changes. </note>  <b>Access Control</b>  You can use IAM policies to control this action's access to Amazon SWF resources as follows: <ul> <li> Use a <code>Resource</code> element with the domain name to limit the action to only specified domains. </li> <li> Use an <code>Action</code> element to allow or deny permission to call this action. </li> <li> You cannot use an IAM policy to constrain this action's parameters. </li> </ul> If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's <code>cause</code> parameter is set to <code>OPERATION_NOT_PERMITTED</code>. For details and example IAM policies, see <a href="https://docs.aws.amazon.com/amazonswf/latest/developerguide/swf-dev-iam.html">Using IAM to Manage Access to Amazon SWF Workflows</a> in the <i>Amazon SWF Developer Guide</i>.

        :param self:
        :param reverseOrder:  When set to <code>true</code>, returns the events in reverse order. By default the results are returned in ascending order of the <code>eventTimeStamp</code> of the events.<br/>maximumPageSize:  The maximum number of results that are returned per call. Use <code>nextPageToken</code> to obtain further pages of results. <br/>nextPageToken:  If <code>NextPageToken</code> is returned there are more results available. The value of <code>NextPageToken</code> is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 60 seconds. Using an expired pagination token will return a <code>400</code> error: "<code>Specified token has exceeded its maximum lifetime</code>".  The configured <code>maximumPageSize</code> determines how many results can be returned in a single call. <br/>execution:  Specifies the workflow execution for which to return the history.:<br/>domain:  The name of the domain containing the workflow execution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>runId</i> A system-generated unique identifier for the workflow execution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>workflowId</i> The user defined identifier associated with the workflow execution.<br/>
        :return: nextPageToken:  If a <code>NextPageToken</code> was returned by a previous call, there are more results available. To retrieve the next page of results, make the call again using the returned token in <code>nextPageToken</code>. Keep all other arguments unchanged. The configured <code>maximumPageSize</code> determines how many results can be returned in a single call.<br/>events:  The list of history events.<br/>        """
        pass

    def list_activity_types(self, registrationStatus: str, domain: str, name: str=None, nextPageToken: str=None, maximumPageSize: int=None, reverseOrder: ReverseOrder=None) -> ActivityTypeInfos:
        r"""Returns information about all activities registered in the specified domain that match the specified name and registration status. The result includes information like creation date, current status of the activity, etc. The results may be split into multiple pages. To retrieve subsequent pages, make the call again using the <code>nextPageToken</code> returned by the initial call.  <b>Access Control</b>  You can use IAM policies to control this action's access to Amazon SWF resources as follows: <ul> <li> Use a <code>Resource</code> element with the domain name to limit the action to only specified domains. </li> <li> Use an <code>Action</code> element to allow or deny permission to call this action. </li> <li> You cannot use an IAM policy to constrain this action's parameters. </li> </ul> If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's <code>cause</code> parameter is set to <code>OPERATION_NOT_PERMITTED</code>. For details and example IAM policies, see <a href="https://docs.aws.amazon.com/amazonswf/latest/developerguide/swf-dev-iam.html">Using IAM to Manage Access to Amazon SWF Workflows</a> in the <i>Amazon SWF Developer Guide</i>.

        :param self:
        :param reverseOrder:  When set to <code>true</code>, returns the results in reverse order. By default, the results are returned in ascending alphabetical order by <code>name</code> of the activity types.<br/>maximumPageSize:  The maximum number of results that are returned per call. Use <code>nextPageToken</code> to obtain further pages of results. <br/>nextPageToken:  If <code>NextPageToken</code> is returned there are more results available. The value of <code>NextPageToken</code> is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 60 seconds. Using an expired pagination token will return a <code>400</code> error: "<code>Specified token has exceeded its maximum lifetime</code>".  The configured <code>maximumPageSize</code> determines how many results can be returned in a single call. <br/>registrationStatus:  Specifies the registration status of the activity types to list.<br/>name:  If specified, only lists the activity types that have this name.<br/>domain:  The name of the domain in which the activity types have been registered.<br/>
        :return: nextPageToken:  If a <code>NextPageToken</code> was returned by a previous call, there are more results available. To retrieve the next page of results, make the call again using the returned token in <code>nextPageToken</code>. Keep all other arguments unchanged. The configured <code>maximumPageSize</code> determines how many results can be returned in a single call.<br/>typeInfos:  List of activity type information.<br/>        """
        pass

    def list_closed_workflow_executions(self, domain: str, startTimeFilter: ExecutionTimeFilter=None, closeTimeFilter: ExecutionTimeFilter=None, executionFilter: WorkflowExecutionFilter=None, closeStatusFilter: CloseStatusFilter=None, typeFilter: WorkflowTypeFilter=None, tagFilter: TagFilter=None, nextPageToken: str=None, maximumPageSize: int=None, reverseOrder: ReverseOrder=None) -> WorkflowExecutionInfos:
        r"""Returns a list of closed workflow executions in the specified domain that meet the filtering criteria. The results may be split into multiple pages. To retrieve subsequent pages, make the call again using the nextPageToken returned by the initial call. <note> This operation is eventually consistent. The results are best effort and may not exactly reflect recent updates and changes. </note>  <b>Access Control</b>  You can use IAM policies to control this action's access to Amazon SWF resources as follows: <ul> <li> Use a <code>Resource</code> element with the domain name to limit the action to only specified domains. </li> <li> Use an <code>Action</code> element to allow or deny permission to call this action. </li> <li> Constrain the following parameters by using a <code>Condition</code> element with the appropriate keys. <ul> <li>  <code>tagFilter.tag</code>: String constraint. The key is <code>swf:tagFilter.tag</code>. </li> <li>  <code>typeFilter.name</code>: String constraint. The key is <code>swf:typeFilter.name</code>. </li> <li>  <code>typeFilter.version</code>: String constraint. The key is <code>swf:typeFilter.version</code>. </li> </ul> </li> </ul> If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's <code>cause</code> parameter is set to <code>OPERATION_NOT_PERMITTED</code>. For details and example IAM policies, see <a href="https://docs.aws.amazon.com/amazonswf/latest/developerguide/swf-dev-iam.html">Using IAM to Manage Access to Amazon SWF Workflows</a> in the <i>Amazon SWF Developer Guide</i>.

        :param self:
        :param reverseOrder:  When set to <code>true</code>, returns the results in reverse order. By default the results are returned in descending order of the start or the close time of the executions.<br/>maximumPageSize:  The maximum number of results that are returned per call. Use <code>nextPageToken</code> to obtain further pages of results. <br/>nextPageToken:  If <code>NextPageToken</code> is returned there are more results available. The value of <code>NextPageToken</code> is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 60 seconds. Using an expired pagination token will return a <code>400</code> error: "<code>Specified token has exceeded its maximum lifetime</code>".  The configured <code>maximumPageSize</code> determines how many results can be returned in a single call. <br/>tagFilter:  If specified, only executions that have the matching tag are listed. <note>  <code>closeStatusFilter</code>, <code>executionFilter</code>, <code>typeFilter</code> and <code>tagFilter</code> are mutually exclusive. You can specify at most one of these in a request. </note>:<br/>typeFilter:  If specified, only executions of the type specified in the filter are returned. <note>  <code>closeStatusFilter</code>, <code>executionFilter</code>, <code>typeFilter</code> and <code>tagFilter</code> are mutually exclusive. You can specify at most one of these in a request. </note>:<br/>closeStatusFilter:  If specified, only workflow executions that match this <i>close status</i> are listed. For example, if TERMINATED is specified, then only TERMINATED workflow executions are listed. <note>  <code>closeStatusFilter</code>, <code>executionFilter</code>, <code>typeFilter</code> and <code>tagFilter</code> are mutually exclusive. You can specify at most one of these in a request. </note>:<br/>executionFilter:  If specified, only workflow executions matching the workflow ID specified in the filter are returned. <note>  <code>closeStatusFilter</code>, <code>executionFilter</code>, <code>typeFilter</code> and <code>tagFilter</code> are mutually exclusive. You can specify at most one of these in a request. </note>:<br/>closeTimeFilter:  If specified, the workflow executions are included in the returned results based on whether their close times are within the range specified by this filter. Also, if this parameter is specified, the returned results are ordered by their close times. <note>  <code>startTimeFilter</code> and <code>closeTimeFilter</code> are mutually exclusive. You must specify one of these in a request but not both. </note>:<br/>startTimeFilter:  If specified, the workflow executions are included in the returned results based on whether their start times are within the range specified by this filter. Also, if this parameter is specified, the returned results are ordered by their start times. <note>  <code>startTimeFilter</code> and <code>closeTimeFilter</code> are mutually exclusive. You must specify one of these in a request but not both. </note>:<br/>domain:  The name of the domain that contains the workflow executions to list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>latestDate</i> Specifies the latest start or close date and time to return.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>oldestDate</i> Specifies the oldest start or close date and time to return.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>latestDate</i> Specifies the latest start or close date and time to return.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>oldestDate</i> Specifies the oldest start or close date and time to return.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>workflowId</i> The workflowId to pass of match the criteria of this filter.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>status</i>  The close status that must match the close status of an execution for it to meet the criteria of this filter.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> Version of the workflow type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i>  Name of the workflow type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tag</i>  Specifies the tag that must be associated with the execution for it to meet the filter criteria. Tags may only contain unicode letters, digits, whitespace, or these symbols: <code>_ . : / = + - @</code>.<br/>
        :return: nextPageToken:  If a <code>NextPageToken</code> was returned by a previous call, there are more results available. To retrieve the next page of results, make the call again using the returned token in <code>nextPageToken</code>. Keep all other arguments unchanged. The configured <code>maximumPageSize</code> determines how many results can be returned in a single call.<br/>executionInfos:  The list of workflow information structures.<br/>        """
        pass

    def list_domains(self, registrationStatus: str, nextPageToken: str=None, maximumPageSize: int=None, reverseOrder: ReverseOrder=None) -> DomainInfos:
        r"""Returns the list of domains registered in the account. The results may be split into multiple pages. To retrieve subsequent pages, make the call again using the nextPageToken returned by the initial call. <note> This operation is eventually consistent. The results are best effort and may not exactly reflect recent updates and changes. </note>  <b>Access Control</b>  You can use IAM policies to control this action's access to Amazon SWF resources as follows: <ul> <li> Use a <code>Resource</code> element with the domain name to limit the action to only specified domains. The element must be set to <code>arn:aws:swf::AccountID:domain/*</code>, where <i>AccountID</i> is the account ID, with no dashes. </li> <li> Use an <code>Action</code> element to allow or deny permission to call this action. </li> <li> You cannot use an IAM policy to constrain this action's parameters. </li> </ul> If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's <code>cause</code> parameter is set to <code>OPERATION_NOT_PERMITTED</code>. For details and example IAM policies, see <a href="https://docs.aws.amazon.com/amazonswf/latest/developerguide/swf-dev-iam.html">Using IAM to Manage Access to Amazon SWF Workflows</a> in the <i>Amazon SWF Developer Guide</i>.

        :param self:
        :param reverseOrder:  When set to <code>true</code>, returns the results in reverse order. By default, the results are returned in ascending alphabetical order by <code>name</code> of the domains.<br/>maximumPageSize:  The maximum number of results that are returned per call. Use <code>nextPageToken</code> to obtain further pages of results. <br/>registrationStatus:  Specifies the registration status of the domains to list.<br/>nextPageToken:  If <code>NextPageToken</code> is returned there are more results available. The value of <code>NextPageToken</code> is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 60 seconds. Using an expired pagination token will return a <code>400</code> error: "<code>Specified token has exceeded its maximum lifetime</code>".  The configured <code>maximumPageSize</code> determines how many results can be returned in a single call. <br/>
        :return: nextPageToken:  If a <code>NextPageToken</code> was returned by a previous call, there are more results available. To retrieve the next page of results, make the call again using the returned token in <code>nextPageToken</code>. Keep all other arguments unchanged. The configured <code>maximumPageSize</code> determines how many results can be returned in a single call.<br/>domainInfos:  A list of DomainInfo structures.<br/>        """
        pass

    def list_open_workflow_executions(self, startTimeFilter: ExecutionTimeFilter, domain: str, typeFilter: WorkflowTypeFilter=None, tagFilter: TagFilter=None, nextPageToken: str=None, maximumPageSize: int=None, reverseOrder: ReverseOrder=None, executionFilter: WorkflowExecutionFilter=None) -> WorkflowExecutionInfos:
        r"""Returns a list of open workflow executions in the specified domain that meet the filtering criteria. The results may be split into multiple pages. To retrieve subsequent pages, make the call again using the nextPageToken returned by the initial call. <note> This operation is eventually consistent. The results are best effort and may not exactly reflect recent updates and changes. </note>  <b>Access Control</b>  You can use IAM policies to control this action's access to Amazon SWF resources as follows: <ul> <li> Use a <code>Resource</code> element with the domain name to limit the action to only specified domains. </li> <li> Use an <code>Action</code> element to allow or deny permission to call this action. </li> <li> Constrain the following parameters by using a <code>Condition</code> element with the appropriate keys. <ul> <li>  <code>tagFilter.tag</code>: String constraint. The key is <code>swf:tagFilter.tag</code>. </li> <li>  <code>typeFilter.name</code>: String constraint. The key is <code>swf:typeFilter.name</code>. </li> <li>  <code>typeFilter.version</code>: String constraint. The key is <code>swf:typeFilter.version</code>. </li> </ul> </li> </ul> If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's <code>cause</code> parameter is set to <code>OPERATION_NOT_PERMITTED</code>. For details and example IAM policies, see <a href="https://docs.aws.amazon.com/amazonswf/latest/developerguide/swf-dev-iam.html">Using IAM to Manage Access to Amazon SWF Workflows</a> in the <i>Amazon SWF Developer Guide</i>.

        :param self:
        :param executionFilter:  If specified, only workflow executions matching the workflow ID specified in the filter are returned. <note>  <code>executionFilter</code>, <code>typeFilter</code> and <code>tagFilter</code> are mutually exclusive. You can specify at most one of these in a request. </note>:<br/>reverseOrder:  When set to <code>true</code>, returns the results in reverse order. By default the results are returned in descending order of the start time of the executions.<br/>maximumPageSize:  The maximum number of results that are returned per call. Use <code>nextPageToken</code> to obtain further pages of results. <br/>nextPageToken:  If <code>NextPageToken</code> is returned there are more results available. The value of <code>NextPageToken</code> is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 60 seconds. Using an expired pagination token will return a <code>400</code> error: "<code>Specified token has exceeded its maximum lifetime</code>".  The configured <code>maximumPageSize</code> determines how many results can be returned in a single call. <br/>tagFilter:  If specified, only executions that have the matching tag are listed. <note>  <code>executionFilter</code>, <code>typeFilter</code> and <code>tagFilter</code> are mutually exclusive. You can specify at most one of these in a request. </note>:<br/>typeFilter:  If specified, only executions of the type specified in the filter are returned. <note>  <code>executionFilter</code>, <code>typeFilter</code> and <code>tagFilter</code> are mutually exclusive. You can specify at most one of these in a request. </note>:<br/>startTimeFilter:  Workflow executions are included in the returned results based on whether their start times are within the range specified by this filter.:<br/>domain:  The name of the domain that contains the workflow executions to list.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>latestDate</i> Specifies the latest start or close date and time to return.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>oldestDate</i> Specifies the oldest start or close date and time to return.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> Version of the workflow type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i>  Name of the workflow type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>tag</i>  Specifies the tag that must be associated with the execution for it to meet the filter criteria. Tags may only contain unicode letters, digits, whitespace, or these symbols: <code>_ . : / = + - @</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>workflowId</i> The workflowId to pass of match the criteria of this filter.<br/>
        :return: nextPageToken:  If a <code>NextPageToken</code> was returned by a previous call, there are more results available. To retrieve the next page of results, make the call again using the returned token in <code>nextPageToken</code>. Keep all other arguments unchanged. The configured <code>maximumPageSize</code> determines how many results can be returned in a single call.<br/>executionInfos:  The list of workflow information structures.<br/>        """
        pass

    def list_tags_for_resource(self, resourceArn: str) -> ListTagsForResourceOutput:
        r"""List tags for a given domain.

        :param self:
        :param resourceArn:  The Amazon Resource Name (ARN) for the Amazon SWF domain.<br/>
        :return: tags:  An array of tags associated with the domain.<br/>        """
        pass

    def list_workflow_types(self, registrationStatus: str, domain: str, name: str=None, nextPageToken: str=None, maximumPageSize: int=None, reverseOrder: ReverseOrder=None) -> WorkflowTypeInfos:
        r"""Returns information about workflow types in the specified domain. The results may be split into multiple pages that can be retrieved by making the call repeatedly.  <b>Access Control</b>  You can use IAM policies to control this action's access to Amazon SWF resources as follows: <ul> <li> Use a <code>Resource</code> element with the domain name to limit the action to only specified domains. </li> <li> Use an <code>Action</code> element to allow or deny permission to call this action. </li> <li> You cannot use an IAM policy to constrain this action's parameters. </li> </ul> If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's <code>cause</code> parameter is set to <code>OPERATION_NOT_PERMITTED</code>. For details and example IAM policies, see <a href="https://docs.aws.amazon.com/amazonswf/latest/developerguide/swf-dev-iam.html">Using IAM to Manage Access to Amazon SWF Workflows</a> in the <i>Amazon SWF Developer Guide</i>.

        :param self:
        :param reverseOrder:  When set to <code>true</code>, returns the results in reverse order. By default the results are returned in ascending alphabetical order of the <code>name</code> of the workflow types.<br/>maximumPageSize:  The maximum number of results that are returned per call. Use <code>nextPageToken</code> to obtain further pages of results. <br/>nextPageToken:  If <code>NextPageToken</code> is returned there are more results available. The value of <code>NextPageToken</code> is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 60 seconds. Using an expired pagination token will return a <code>400</code> error: "<code>Specified token has exceeded its maximum lifetime</code>".  The configured <code>maximumPageSize</code> determines how many results can be returned in a single call. <br/>registrationStatus:  Specifies the registration status of the workflow types to list.<br/>name:  If specified, lists the workflow type with this name.<br/>domain:  The name of the domain in which the workflow types have been registered.<br/>
        :return: nextPageToken:  If a <code>NextPageToken</code> was returned by a previous call, there are more results available. To retrieve the next page of results, make the call again using the returned token in <code>nextPageToken</code>. Keep all other arguments unchanged. The configured <code>maximumPageSize</code> determines how many results can be returned in a single call.<br/>typeInfos:  The list of workflow type information.<br/>        """
        pass

    def poll_for_activity_task(self, taskList: TaskList, domain: str, identity: str=None) -> ActivityTask:
        r"""Used by workers to get an <a>ActivityTask</a> from the specified activity <code>taskList</code>. This initiates a long poll, where the service holds the HTTP connection open and responds as soon as a task becomes available. The maximum time the service holds on to the request before responding is 60 seconds. If no task is available within 60 seconds, the poll returns an empty result. An empty result, in this context, means that an ActivityTask is returned, but that the value of taskToken is an empty string. If a task is returned, the worker should use its type to identify and process it correctly. <important> Workers should set their client side socket timeout to at least 70 seconds (10 seconds higher than the maximum time service may hold the poll request). </important>  <b>Access Control</b>  You can use IAM policies to control this action's access to Amazon SWF resources as follows: <ul> <li> Use a <code>Resource</code> element with the domain name to limit the action to only specified domains. </li> <li> Use an <code>Action</code> element to allow or deny permission to call this action. </li> <li> Constrain the <code>taskList.name</code> parameter by using a <code>Condition</code> element with the <code>swf:taskList.name</code> key to allow the action to access only certain task lists. </li> </ul> If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's <code>cause</code> parameter is set to <code>OPERATION_NOT_PERMITTED</code>. For details and example IAM policies, see <a href="https://docs.aws.amazon.com/amazonswf/latest/developerguide/swf-dev-iam.html">Using IAM to Manage Access to Amazon SWF Workflows</a> in the <i>Amazon SWF Developer Guide</i>.

        :param self:
        :param identity:  Identity of the worker making the request, recorded in the <code>ActivityTaskStarted</code> event in the workflow history. This enables diagnostic tracing when problems arise. The form of this identity is user defined.<br/>taskList:  Specifies the task list to poll for activity tasks. The specified string must not start or end with whitespace. It must not contain a <code>:</code> (colon), <code>/</code> (slash), <code>|</code> (vertical bar), or any control characters (<code>\u0000-\u001f</code> | <code>\u007f-\u009f</code>). Also, it must not <i>be</i> the literal string <code>arn</code>.:<br/>domain:  The name of the domain that contains the task lists being polled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the task list.<br/>
        :return: input:  The inputs provided when the activity task was scheduled. The form of the input is user defined and should be meaningful to the activity implementation.<br/>activityType:  The type of this activity task.:<br/>workflowExecution:  The workflow execution that started this activity task.:<br/>startedEventId:  The ID of the <code>ActivityTaskStarted</code> event recorded in the history.<br/>activityId:  The unique ID of the task.<br/>taskToken:  The opaque string used as a handle on the task. This token is used by workers to communicate progress and response information back to the system about the task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>runId</i> A system-generated unique identifier for the workflow execution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>workflowId</i> The user defined identifier associated with the workflow execution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The version of this activity. <note> The combination of activity type name and version must be unique with in a domain. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of this activity. <note> The combination of activity type name and version must be unique within a domain. </note><br/>        """
        pass

    def poll_for_decision_task(self, taskList: TaskList, domain: str, identity: str=None, nextPageToken: str=None, maximumPageSize: int=None, reverseOrder: ReverseOrder=None) -> DecisionTask:
        r"""Used by deciders to get a <a>DecisionTask</a> from the specified decision <code>taskList</code>. A decision task may be returned for any open workflow execution that is using the specified task list. The task includes a paginated view of the history of the workflow execution. The decider should use the workflow type and the history to determine how to properly handle the task. This action initiates a long poll, where the service holds the HTTP connection open and responds as soon a task becomes available. If no decision task is available in the specified task list before the timeout of 60 seconds expires, an empty result is returned. An empty result, in this context, means that a DecisionTask is returned, but that the value of taskToken is an empty string. <important> Deciders should set their client side socket timeout to at least 70 seconds (10 seconds higher than the timeout). </important> <important> Because the number of workflow history events for a single workflow execution might be very large, the result returned might be split up across a number of pages. To retrieve subsequent pages, make additional calls to <code>PollForDecisionTask</code> using the <code>nextPageToken</code> returned by the initial call. Note that you do <i>not</i> call <code>GetWorkflowExecutionHistory</code> with this <code>nextPageToken</code>. Instead, call <code>PollForDecisionTask</code> again. </important>  <b>Access Control</b>  You can use IAM policies to control this action's access to Amazon SWF resources as follows: <ul> <li> Use a <code>Resource</code> element with the domain name to limit the action to only specified domains. </li> <li> Use an <code>Action</code> element to allow or deny permission to call this action. </li> <li> Constrain the <code>taskList.name</code> parameter by using a <code>Condition</code> element with the <code>swf:taskList.name</code> key to allow the action to access only certain task lists. </li> </ul> If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's <code>cause</code> parameter is set to <code>OPERATION_NOT_PERMITTED</code>. For details and example IAM policies, see <a href="https://docs.aws.amazon.com/amazonswf/latest/developerguide/swf-dev-iam.html">Using IAM to Manage Access to Amazon SWF Workflows</a> in the <i>Amazon SWF Developer Guide</i>.

        :param self:
        :param reverseOrder:  When set to <code>true</code>, returns the events in reverse order. By default the results are returned in ascending order of the <code>eventTimestamp</code> of the events.<br/>maximumPageSize:  The maximum number of results that are returned per call. Use <code>nextPageToken</code> to obtain further pages of results.  This is an upper limit only; the actual number of results returned per call may be fewer than the specified maximum.<br/>nextPageToken:  If <code>NextPageToken</code> is returned there are more results available. The value of <code>NextPageToken</code> is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 60 seconds. Using an expired pagination token will return a <code>400</code> error: "<code>Specified token has exceeded its maximum lifetime</code>".  The configured <code>maximumPageSize</code> determines how many results can be returned in a single call.  <note> The <code>nextPageToken</code> returned by this action cannot be used with <a>GetWorkflowExecutionHistory</a> to get the next page. You must call <a>PollForDecisionTask</a> again (with the <code>nextPageToken</code>) to retrieve the next page of history records. Calling <a>PollForDecisionTask</a> with a <code>nextPageToken</code> doesn't return a new decision task. </note><br/>identity:  Identity of the decider making the request, which is recorded in the DecisionTaskStarted event in the workflow history. This enables diagnostic tracing when problems arise. The form of this identity is user defined.<br/>taskList:  Specifies the task list to poll for decision tasks. The specified string must not start or end with whitespace. It must not contain a <code>:</code> (colon), <code>/</code> (slash), <code>|</code> (vertical bar), or any control characters (<code>\u0000-\u001f</code> | <code>\u007f-\u009f</code>). Also, it must not <i>be</i> the literal string <code>arn</code>.:<br/>domain:  The name of the domain containing the task lists to poll.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the task list.<br/>
        :return: previousStartedEventId:  The ID of the DecisionTaskStarted event of the previous decision task of this workflow execution that was processed by the decider. This can be used to determine the events in the history new since the last decision task received by the decider.<br/>nextPageToken:  If a <code>NextPageToken</code> was returned by a previous call, there are more results available. To retrieve the next page of results, make the call again using the returned token in <code>nextPageToken</code>. Keep all other arguments unchanged. The configured <code>maximumPageSize</code> determines how many results can be returned in a single call.<br/>events:  A paginated list of history events of the workflow execution. The decider uses this during the processing of the decision task.<br/>workflowType:  The type of the workflow execution for which this decision task was created.:<br/>workflowExecution:  The workflow execution for which this decision task was created.:<br/>startedEventId:  The ID of the <code>DecisionTaskStarted</code> event recorded in the history.<br/>taskToken:  The opaque string used as a handle on the task. This token is used by workers to communicate progress and response information back to the system about the task.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>runId</i> A system-generated unique identifier for the workflow execution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>workflowId</i> The user defined identifier associated with the workflow execution.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i>  The version of the workflow type. <note> The combination of workflow type name and version must be unique with in a domain. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i>  The name of the workflow type. <note> The combination of workflow type name and version must be unique with in a domain. </note><br/>        """
        pass

    def record_activity_task_heartbeat(self, taskToken: str, details: str=None) -> ActivityTaskStatus:
        r"""Used by activity workers to report to the service that the <a>ActivityTask</a> represented by the specified <code>taskToken</code> is still making progress. The worker can also specify details of the progress, for example percent complete, using the <code>details</code> parameter. This action can also be used by the worker as a mechanism to check if cancellation is being requested for the activity task. If a cancellation is being attempted for the specified task, then the boolean <code>cancelRequested</code> flag returned by the service is set to <code>true</code>. This action resets the <code>taskHeartbeatTimeout</code> clock. The <code>taskHeartbeatTimeout</code> is specified in <a>RegisterActivityType</a>. This action doesn't in itself create an event in the workflow execution history. However, if the task times out, the workflow execution history contains a <code>ActivityTaskTimedOut</code> event that contains the information from the last heartbeat generated by the activity worker. <note> The <code>taskStartToCloseTimeout</code> of an activity type is the maximum duration of an activity task, regardless of the number of <a>RecordActivityTaskHeartbeat</a> requests received. The <code>taskStartToCloseTimeout</code> is also specified in <a>RegisterActivityType</a>. </note> <note> This operation is only useful for long-lived activities to report liveliness of the task and to determine if a cancellation is being attempted. </note> <important> If the <code>cancelRequested</code> flag returns <code>true</code>, a cancellation is being attempted. If the worker can cancel the activity, it should respond with <a>RespondActivityTaskCanceled</a>. Otherwise, it should ignore the cancellation request. </important>  <b>Access Control</b>  You can use IAM policies to control this action's access to Amazon SWF resources as follows: <ul> <li> Use a <code>Resource</code> element with the domain name to limit the action to only specified domains. </li> <li> Use an <code>Action</code> element to allow or deny permission to call this action. </li> <li> You cannot use an IAM policy to constrain this action's parameters. </li> </ul> If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's <code>cause</code> parameter is set to <code>OPERATION_NOT_PERMITTED</code>. For details and example IAM policies, see <a href="https://docs.aws.amazon.com/amazonswf/latest/developerguide/swf-dev-iam.html">Using IAM to Manage Access to Amazon SWF Workflows</a> in the <i>Amazon SWF Developer Guide</i>.

        :param self:
        :param details:  If specified, contains details about the progress of the task.<br/>taskToken:  The <code>taskToken</code> of the <a>ActivityTask</a>. <important>  <code>taskToken</code> is generated by the service and should be treated as an opaque value. If the task is passed to another process, its <code>taskToken</code> must also be passed. This enables it to provide its progress and respond with results.  </important><br/>
        :return: cancelRequested:  Set to <code>true</code> if cancellation of the task is requested.<br/>        """
        pass

    def register_activity_type(self, version: str, name: str, domain: str, description: str=None, defaultTaskStartToCloseTimeout: str=None, defaultTaskHeartbeatTimeout: str=None, defaultTaskList: TaskList=None, defaultTaskPriority: str=None, defaultTaskScheduleToStartTimeout: str=None, defaultTaskScheduleToCloseTimeout: str=None):
        r"""Registers a new <i>activity type</i> along with its configuration settings in the specified domain. <important> A <code>TypeAlreadyExists</code> fault is returned if the type already exists in the domain. You cannot change any configuration settings of the type after its registration, and it must be registered as a new version. </important>  <b>Access Control</b>  You can use IAM policies to control this action's access to Amazon SWF resources as follows: <ul> <li> Use a <code>Resource</code> element with the domain name to limit the action to only specified domains. </li> <li> Use an <code>Action</code> element to allow or deny permission to call this action. </li> <li> Constrain the following parameters by using a <code>Condition</code> element with the appropriate keys. <ul> <li>  <code>defaultTaskList.name</code>: String constraint. The key is <code>swf:defaultTaskList.name</code>. </li> <li>  <code>name</code>: String constraint. The key is <code>swf:name</code>. </li> <li>  <code>version</code>: String constraint. The key is <code>swf:version</code>. </li> </ul> </li> </ul> If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's <code>cause</code> parameter is set to <code>OPERATION_NOT_PERMITTED</code>. For details and example IAM policies, see <a href="https://docs.aws.amazon.com/amazonswf/latest/developerguide/swf-dev-iam.html">Using IAM to Manage Access to Amazon SWF Workflows</a> in the <i>Amazon SWF Developer Guide</i>.

        :param self:
        :param defaultTaskScheduleToCloseTimeout:  If set, specifies the default maximum duration for a task of this activity type. This default can be overridden when scheduling an activity task using the <code>ScheduleActivityTask</code> <a>Decision</a>. The duration is specified in seconds, an integer greater than or equal to <code>0</code>. You can use <code>NONE</code> to specify unlimited duration.<br/>defaultTaskScheduleToStartTimeout:  If set, specifies the default maximum duration that a task of this activity type can wait before being assigned to a worker. This default can be overridden when scheduling an activity task using the <code>ScheduleActivityTask</code> <a>Decision</a>. The duration is specified in seconds, an integer greater than or equal to <code>0</code>. You can use <code>NONE</code> to specify unlimited duration.<br/>defaultTaskPriority:  The default task priority to assign to the activity type. If not assigned, then <code>0</code> is used. Valid values are integers that range from Java's <code>Integer.MIN_VALUE</code> (-2147483648) to <code>Integer.MAX_VALUE</code> (2147483647). Higher numbers indicate higher priority. For more information about setting task priority, see <a href="https://docs.aws.amazon.com/amazonswf/latest/developerguide/programming-priority.html">Setting Task Priority</a> in the <i>in the <i>Amazon SWF Developer Guide</i>.</i>.<br/>defaultTaskList:  If set, specifies the default task list to use for scheduling tasks of this activity type. This default task list is used if a task list isn't provided when a task is scheduled through the <code>ScheduleActivityTask</code> <a>Decision</a>.:<br/>defaultTaskHeartbeatTimeout:  If set, specifies the default maximum time before which a worker processing a task of this type must report progress by calling <a>RecordActivityTaskHeartbeat</a>. If the timeout is exceeded, the activity task is automatically timed out. This default can be overridden when scheduling an activity task using the <code>ScheduleActivityTask</code> <a>Decision</a>. If the activity worker subsequently attempts to record a heartbeat or returns a result, the activity worker receives an <code>UnknownResource</code> fault. In this case, Amazon SWF no longer considers the activity task to be valid; the activity worker should clean up the activity task. The duration is specified in seconds, an integer greater than or equal to <code>0</code>. You can use <code>NONE</code> to specify unlimited duration.<br/>defaultTaskStartToCloseTimeout:  If set, specifies the default maximum duration that a worker can take to process tasks of this activity type. This default can be overridden when scheduling an activity task using the <code>ScheduleActivityTask</code> <a>Decision</a>. The duration is specified in seconds, an integer greater than or equal to <code>0</code>. You can use <code>NONE</code> to specify unlimited duration.<br/>description:  A textual description of the activity type.<br/>version:  The version of the activity type. <note> The activity type consists of the name and version, the combination of which must be unique within the domain. </note> The specified string must not start or end with whitespace. It must not contain a <code>:</code> (colon), <code>/</code> (slash), <code>|</code> (vertical bar), or any control characters (<code>\u0000-\u001f</code> | <code>\u007f-\u009f</code>). Also, it must not <i>be</i> the literal string <code>arn</code>.<br/>name:  The name of the activity type within the domain. The specified string must not start or end with whitespace. It must not contain a <code>:</code> (colon), <code>/</code> (slash), <code>|</code> (vertical bar), or any control characters (<code>\u0000-\u001f</code> | <code>\u007f-\u009f</code>). Also, it must not <i>be</i> the literal string <code>arn</code>.<br/>domain:  The name of the domain in which this activity is to be registered.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the task list.<br/>
        :return:         """
        pass

    def register_domain(self, workflowExecutionRetentionPeriodInDays: str, name: str, description: str=None, tags: List[ResourceTag]=None):
        r"""Registers a new domain.  <b>Access Control</b>  You can use IAM policies to control this action's access to Amazon SWF resources as follows: <ul> <li> You cannot use an IAM policy to control domain access for this action. The name of the domain being registered is available as the resource of this action. </li> <li> Use an <code>Action</code> element to allow or deny permission to call this action. </li> <li> You cannot use an IAM policy to constrain this action's parameters. </li> </ul> If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's <code>cause</code> parameter is set to <code>OPERATION_NOT_PERMITTED</code>. For details and example IAM policies, see <a href="https://docs.aws.amazon.com/amazonswf/latest/developerguide/swf-dev-iam.html">Using IAM to Manage Access to Amazon SWF Workflows</a> in the <i>Amazon SWF Developer Guide</i>.

        :param self:
        :param tags:  Tags to be added when registering a domain. Tags may only contain unicode letters, digits, whitespace, or these symbols: <code>_ . : / = + - @</code>.<br/>workflowExecutionRetentionPeriodInDays:  The duration (in days) that records and histories of workflow executions on the domain should be kept by the service. After the retention period, the workflow execution isn't available in the results of visibility calls. If you pass the value <code>NONE</code> or <code>0</code> (zero), then the workflow execution history isn't retained. As soon as the workflow execution completes, the execution record and its history are deleted. The maximum workflow execution retention period is 90 days. For more information about Amazon SWF service limits, see: <a href="https://docs.aws.amazon.com/amazonswf/latest/developerguide/swf-dg-limits.html">Amazon SWF Service Limits</a> in the <i>Amazon SWF Developer Guide</i>.<br/>description:  A text description of the domain.<br/>name:  Name of the domain to register. The name must be unique in the region that the domain is registered in. The specified string must not start or end with whitespace. It must not contain a <code>:</code> (colon), <code>/</code> (slash), <code>|</code> (vertical bar), or any control characters (<code>\u0000-\u001f</code> | <code>\u007f-\u009f</code>). Also, it must not <i>be</i> the literal string <code>arn</code>.<br/>
        :return:         """
        pass

    def register_workflow_type(self, version: str, name: str, domain: str, description: str=None, defaultTaskStartToCloseTimeout: str=None, defaultExecutionStartToCloseTimeout: str=None, defaultTaskList: TaskList=None, defaultTaskPriority: str=None, defaultChildPolicy: str=None, defaultLambdaRole: str=None):
        r"""Registers a new <i>workflow type</i> and its configuration settings in the specified domain. The retention period for the workflow history is set by the <a>RegisterDomain</a> action. <important> If the type already exists, then a <code>TypeAlreadyExists</code> fault is returned. You cannot change the configuration settings of a workflow type once it is registered and it must be registered as a new version. </important>  <b>Access Control</b>  You can use IAM policies to control this action's access to Amazon SWF resources as follows: <ul> <li> Use a <code>Resource</code> element with the domain name to limit the action to only specified domains. </li> <li> Use an <code>Action</code> element to allow or deny permission to call this action. </li> <li> Constrain the following parameters by using a <code>Condition</code> element with the appropriate keys. <ul> <li>  <code>defaultTaskList.name</code>: String constraint. The key is <code>swf:defaultTaskList.name</code>. </li> <li>  <code>name</code>: String constraint. The key is <code>swf:name</code>. </li> <li>  <code>version</code>: String constraint. The key is <code>swf:version</code>. </li> </ul> </li> </ul> If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's <code>cause</code> parameter is set to <code>OPERATION_NOT_PERMITTED</code>. For details and example IAM policies, see <a href="https://docs.aws.amazon.com/amazonswf/latest/developerguide/swf-dev-iam.html">Using IAM to Manage Access to Amazon SWF Workflows</a> in the <i>Amazon SWF Developer Guide</i>.

        :param self:
        :param defaultLambdaRole:  The default IAM role attached to this workflow type. <note> Executions of this workflow type need IAM roles to invoke Lambda functions. If you don't specify an IAM role when you start this workflow type, the default Lambda role is attached to the execution. For more information, see <a href="https://docs.aws.amazon.com/amazonswf/latest/developerguide/lambda-task.html">https://docs.aws.amazon.com/amazonswf/latest/developerguide/lambda-task.html</a> in the <i>Amazon SWF Developer Guide</i>. </note><br/>defaultChildPolicy:  If set, specifies the default policy to use for the child workflow executions when a workflow execution of this type is terminated, by calling the <a>TerminateWorkflowExecution</a> action explicitly or due to an expired timeout. This default can be overridden when starting a workflow execution using the <a>StartWorkflowExecution</a> action or the <code>StartChildWorkflowExecution</code> <a>Decision</a>. The supported child policies are: <ul> <li>  <code>TERMINATE</code> – The child executions are terminated. </li> <li>  <code>REQUEST_CANCEL</code> – A request to cancel is attempted for each child execution by recording a <code>WorkflowExecutionCancelRequested</code> event in its history. It is up to the decider to take appropriate actions when it receives an execution history with this event. </li> <li>  <code>ABANDON</code> – No action is taken. The child executions continue to run. </li> </ul><br/>defaultTaskPriority:  The default task priority to assign to the workflow type. If not assigned, then <code>0</code> is used. Valid values are integers that range from Java's <code>Integer.MIN_VALUE</code> (-2147483648) to <code>Integer.MAX_VALUE</code> (2147483647). Higher numbers indicate higher priority. For more information about setting task priority, see <a href="https://docs.aws.amazon.com/amazonswf/latest/developerguide/programming-priority.html">Setting Task Priority</a> in the <i>Amazon SWF Developer Guide</i>.<br/>defaultTaskList:  If set, specifies the default task list to use for scheduling decision tasks for executions of this workflow type. This default is used only if a task list isn't provided when starting the execution through the <a>StartWorkflowExecution</a> Action or <code>StartChildWorkflowExecution</code> <a>Decision</a>.:<br/>defaultExecutionStartToCloseTimeout:  If set, specifies the default maximum duration for executions of this workflow type. You can override this default when starting an execution through the <a>StartWorkflowExecution</a> Action or <code>StartChildWorkflowExecution</code> <a>Decision</a>. The duration is specified in seconds; an integer greater than or equal to 0. Unlike some of the other timeout parameters in Amazon SWF, you cannot specify a value of "NONE" for <code>defaultExecutionStartToCloseTimeout</code>; there is a one-year max limit on the time that a workflow execution can run. Exceeding this limit always causes the workflow execution to time out.<br/>defaultTaskStartToCloseTimeout:  If set, specifies the default maximum duration of decision tasks for this workflow type. This default can be overridden when starting a workflow execution using the <a>StartWorkflowExecution</a> action or the <code>StartChildWorkflowExecution</code> <a>Decision</a>. The duration is specified in seconds, an integer greater than or equal to <code>0</code>. You can use <code>NONE</code> to specify unlimited duration.<br/>description:  Textual description of the workflow type.<br/>version:  The version of the workflow type. <note> The workflow type consists of the name and version, the combination of which must be unique within the domain. To get a list of all currently registered workflow types, use the <a>ListWorkflowTypes</a> action. </note> The specified string must not start or end with whitespace. It must not contain a <code>:</code> (colon), <code>/</code> (slash), <code>|</code> (vertical bar), or any control characters (<code>\u0000-\u001f</code> | <code>\u007f-\u009f</code>). Also, it must not <i>be</i> the literal string <code>arn</code>.<br/>name:  The name of the workflow type. The specified string must not start or end with whitespace. It must not contain a <code>:</code> (colon), <code>/</code> (slash), <code>|</code> (vertical bar), or any control characters (<code>\u0000-\u001f</code> | <code>\u007f-\u009f</code>). Also, it must not <i>be</i> the literal string <code>arn</code>.<br/>domain:  The name of the domain in which to register the workflow type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the task list.<br/>
        :return:         """
        pass

    def request_cancel_workflow_execution(self, workflowId: str, domain: str, runId: str=None):
        r"""Records a <code>WorkflowExecutionCancelRequested</code> event in the currently running workflow execution identified by the given domain, workflowId, and runId. This logically requests the cancellation of the workflow execution as a whole. It is up to the decider to take appropriate actions when it receives an execution history with this event. <note> If the runId isn't specified, the <code>WorkflowExecutionCancelRequested</code> event is recorded in the history of the current open workflow execution with the specified workflowId in the domain. </note> <note> Because this action allows the workflow to properly clean up and gracefully close, it should be used instead of <a>TerminateWorkflowExecution</a> when possible. </note>  <b>Access Control</b>  You can use IAM policies to control this action's access to Amazon SWF resources as follows: <ul> <li> Use a <code>Resource</code> element with the domain name to limit the action to only specified domains. </li> <li> Use an <code>Action</code> element to allow or deny permission to call this action. </li> <li> You cannot use an IAM policy to constrain this action's parameters. </li> </ul> If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's <code>cause</code> parameter is set to <code>OPERATION_NOT_PERMITTED</code>. For details and example IAM policies, see <a href="https://docs.aws.amazon.com/amazonswf/latest/developerguide/swf-dev-iam.html">Using IAM to Manage Access to Amazon SWF Workflows</a> in the <i>Amazon SWF Developer Guide</i>.

        :param self:
        :param runId:  The runId of the workflow execution to cancel.<br/>workflowId:  The workflowId of the workflow execution to cancel.<br/>domain:  The name of the domain containing the workflow execution to cancel.<br/>
        :return:         """
        pass

    def respond_activity_task_canceled(self, taskToken: str, details: str=None):
        r"""Used by workers to tell the service that the <a>ActivityTask</a> identified by the <code>taskToken</code> was successfully canceled. Additional <code>details</code> can be provided using the <code>details</code> argument. These <code>details</code> (if provided) appear in the <code>ActivityTaskCanceled</code> event added to the workflow history. <important> Only use this operation if the <code>canceled</code> flag of a <a>RecordActivityTaskHeartbeat</a> request returns <code>true</code> and if the activity can be safely undone or abandoned. </important> A task is considered open from the time that it is scheduled until it is closed. Therefore a task is reported as open while a worker is processing it. A task is closed after it has been specified in a call to <a>RespondActivityTaskCompleted</a>, RespondActivityTaskCanceled, <a>RespondActivityTaskFailed</a>, or the task has <a href="https://docs.aws.amazon.com/amazonswf/latest/developerguide/swf-dg-basic.html#swf-dev-timeout-types">timed out</a>.  <b>Access Control</b>  You can use IAM policies to control this action's access to Amazon SWF resources as follows: <ul> <li> Use a <code>Resource</code> element with the domain name to limit the action to only specified domains. </li> <li> Use an <code>Action</code> element to allow or deny permission to call this action. </li> <li> You cannot use an IAM policy to constrain this action's parameters. </li> </ul> If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's <code>cause</code> parameter is set to <code>OPERATION_NOT_PERMITTED</code>. For details and example IAM policies, see <a href="https://docs.aws.amazon.com/amazonswf/latest/developerguide/swf-dev-iam.html">Using IAM to Manage Access to Amazon SWF Workflows</a> in the <i>Amazon SWF Developer Guide</i>.

        :param self:
        :param details:   Information about the cancellation.<br/>taskToken:  The <code>taskToken</code> of the <a>ActivityTask</a>. <important>  <code>taskToken</code> is generated by the service and should be treated as an opaque value. If the task is passed to another process, its <code>taskToken</code> must also be passed. This enables it to provide its progress and respond with results. </important><br/>
        :return:         """
        pass

    def respond_activity_task_completed(self, taskToken: str, result: str=None):
        r"""Used by workers to tell the service that the <a>ActivityTask</a> identified by the <code>taskToken</code> completed successfully with a <code>result</code> (if provided). The <code>result</code> appears in the <code>ActivityTaskCompleted</code> event in the workflow history. <important> If the requested task doesn't complete successfully, use <a>RespondActivityTaskFailed</a> instead. If the worker finds that the task is canceled through the <code>canceled</code> flag returned by <a>RecordActivityTaskHeartbeat</a>, it should cancel the task, clean up and then call <a>RespondActivityTaskCanceled</a>. </important> A task is considered open from the time that it is scheduled until it is closed. Therefore a task is reported as open while a worker is processing it. A task is closed after it has been specified in a call to RespondActivityTaskCompleted, <a>RespondActivityTaskCanceled</a>, <a>RespondActivityTaskFailed</a>, or the task has <a href="https://docs.aws.amazon.com/amazonswf/latest/developerguide/swf-dg-basic.html#swf-dev-timeout-types">timed out</a>.  <b>Access Control</b>  You can use IAM policies to control this action's access to Amazon SWF resources as follows: <ul> <li> Use a <code>Resource</code> element with the domain name to limit the action to only specified domains. </li> <li> Use an <code>Action</code> element to allow or deny permission to call this action. </li> <li> You cannot use an IAM policy to constrain this action's parameters. </li> </ul> If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's <code>cause</code> parameter is set to <code>OPERATION_NOT_PERMITTED</code>. For details and example IAM policies, see <a href="https://docs.aws.amazon.com/amazonswf/latest/developerguide/swf-dev-iam.html">Using IAM to Manage Access to Amazon SWF Workflows</a> in the <i>Amazon SWF Developer Guide</i>.

        :param self:
        :param result:  The result of the activity task. It is a free form string that is implementation specific.<br/>taskToken:  The <code>taskToken</code> of the <a>ActivityTask</a>. <important>  <code>taskToken</code> is generated by the service and should be treated as an opaque value. If the task is passed to another process, its <code>taskToken</code> must also be passed. This enables it to provide its progress and respond with results. </important><br/>
        :return:         """
        pass

    def respond_activity_task_failed(self, taskToken: str, reason: str=None, details: str=None):
        r"""Used by workers to tell the service that the <a>ActivityTask</a> identified by the <code>taskToken</code> has failed with <code>reason</code> (if specified). The <code>reason</code> and <code>details</code> appear in the <code>ActivityTaskFailed</code> event added to the workflow history. A task is considered open from the time that it is scheduled until it is closed. Therefore a task is reported as open while a worker is processing it. A task is closed after it has been specified in a call to <a>RespondActivityTaskCompleted</a>, <a>RespondActivityTaskCanceled</a>, RespondActivityTaskFailed, or the task has <a href="https://docs.aws.amazon.com/amazonswf/latest/developerguide/swf-dg-basic.html#swf-dev-timeout-types">timed out</a>.  <b>Access Control</b>  You can use IAM policies to control this action's access to Amazon SWF resources as follows: <ul> <li> Use a <code>Resource</code> element with the domain name to limit the action to only specified domains. </li> <li> Use an <code>Action</code> element to allow or deny permission to call this action. </li> <li> You cannot use an IAM policy to constrain this action's parameters. </li> </ul> If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's <code>cause</code> parameter is set to <code>OPERATION_NOT_PERMITTED</code>. For details and example IAM policies, see <a href="https://docs.aws.amazon.com/amazonswf/latest/developerguide/swf-dev-iam.html">Using IAM to Manage Access to Amazon SWF Workflows</a> in the <i>Amazon SWF Developer Guide</i>.

        :param self:
        :param details:   Detailed information about the failure.<br/>reason:  Description of the error that may assist in diagnostics.<br/>taskToken:  The <code>taskToken</code> of the <a>ActivityTask</a>. <important>  <code>taskToken</code> is generated by the service and should be treated as an opaque value. If the task is passed to another process, its <code>taskToken</code> must also be passed. This enables it to provide its progress and respond with results. </important><br/>
        :return:         """
        pass

    def respond_decision_task_completed(self, taskToken: str, decisions: List[Decision]=None, executionContext: str=None):
        r"""Used by deciders to tell the service that the <a>DecisionTask</a> identified by the <code>taskToken</code> has successfully completed. The <code>decisions</code> argument specifies the list of decisions made while processing the task. A <code>DecisionTaskCompleted</code> event is added to the workflow history. The <code>executionContext</code> specified is attached to the event in the workflow execution history.  <b>Access Control</b>  If an IAM policy grants permission to use <code>RespondDecisionTaskCompleted</code>, it can express permissions for the list of decisions in the <code>decisions</code> parameter. Each of the decisions has one or more parameters, much like a regular API call. To allow for policies to be as readable as possible, you can express permissions on decisions as if they were actual API calls, including applying conditions to some parameters. For more information, see <a href="https://docs.aws.amazon.com/amazonswf/latest/developerguide/swf-dev-iam.html">Using IAM to Manage Access to Amazon SWF Workflows</a> in the <i>Amazon SWF Developer Guide</i>.

        :param self:
        :param executionContext:  User defined context to add to workflow execution.<br/>decisions:  The list of decisions (possibly empty) made by the decider while processing this decision task. See the docs for the <a>Decision</a> structure for details.<br/>taskToken:  The <code>taskToken</code> from the <a>DecisionTask</a>. <important>  <code>taskToken</code> is generated by the service and should be treated as an opaque value. If the task is passed to another process, its <code>taskToken</code> must also be passed. This enables it to provide its progress and respond with results. </important><br/>
        :return:         """
        pass

    def signal_workflow_execution(self, signalName: str, workflowId: str, domain: str, runId: str=None, input: str=None):
        r"""Records a <code>WorkflowExecutionSignaled</code> event in the workflow execution history and creates a decision task for the workflow execution identified by the given domain, workflowId and runId. The event is recorded with the specified user defined signalName and input (if provided). <note> If a runId isn't specified, then the <code>WorkflowExecutionSignaled</code> event is recorded in the history of the current open workflow with the matching workflowId in the domain. </note> <note> If the specified workflow execution isn't open, this method fails with <code>UnknownResource</code>. </note>  <b>Access Control</b>  You can use IAM policies to control this action's access to Amazon SWF resources as follows: <ul> <li> Use a <code>Resource</code> element with the domain name to limit the action to only specified domains. </li> <li> Use an <code>Action</code> element to allow or deny permission to call this action. </li> <li> You cannot use an IAM policy to constrain this action's parameters. </li> </ul> If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's <code>cause</code> parameter is set to <code>OPERATION_NOT_PERMITTED</code>. For details and example IAM policies, see <a href="https://docs.aws.amazon.com/amazonswf/latest/developerguide/swf-dev-iam.html">Using IAM to Manage Access to Amazon SWF Workflows</a> in the <i>Amazon SWF Developer Guide</i>.

        :param self:
        :param input:  Data to attach to the <code>WorkflowExecutionSignaled</code> event in the target workflow execution's history.<br/>signalName:  The name of the signal. This name must be meaningful to the target workflow.<br/>runId:  The runId of the workflow execution to signal.<br/>workflowId:  The workflowId of the workflow execution to signal.<br/>domain:  The name of the domain containing the workflow execution to signal.<br/>
        :return:         """
        pass

    def start_workflow_execution(self, workflowType: WorkflowType, workflowId: str, domain: str, taskList: TaskList=None, taskPriority: str=None, input: str=None, executionStartToCloseTimeout: str=None, tagList: List[Tag]=None, taskStartToCloseTimeout: str=None, childPolicy: str=None, lambdaRole: str=None) -> Run:
        r"""Starts an execution of the workflow type in the specified domain using the provided <code>workflowId</code> and input data. This action returns the newly started workflow execution.  <b>Access Control</b>  You can use IAM policies to control this action's access to Amazon SWF resources as follows: <ul> <li> Use a <code>Resource</code> element with the domain name to limit the action to only specified domains. </li> <li> Use an <code>Action</code> element to allow or deny permission to call this action. </li> <li> Constrain the following parameters by using a <code>Condition</code> element with the appropriate keys. <ul> <li>  <code>tagList.member.0</code>: The key is <code>swf:tagList.member.0</code>. </li> <li>  <code>tagList.member.1</code>: The key is <code>swf:tagList.member.1</code>. </li> <li>  <code>tagList.member.2</code>: The key is <code>swf:tagList.member.2</code>. </li> <li>  <code>tagList.member.3</code>: The key is <code>swf:tagList.member.3</code>. </li> <li>  <code>tagList.member.4</code>: The key is <code>swf:tagList.member.4</code>. </li> <li>  <code>taskList</code>: String constraint. The key is <code>swf:taskList.name</code>. </li> <li>  <code>workflowType.name</code>: String constraint. The key is <code>swf:workflowType.name</code>. </li> <li>  <code>workflowType.version</code>: String constraint. The key is <code>swf:workflowType.version</code>. </li> </ul> </li> </ul> If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's <code>cause</code> parameter is set to <code>OPERATION_NOT_PERMITTED</code>. For details and example IAM policies, see <a href="https://docs.aws.amazon.com/amazonswf/latest/developerguide/swf-dev-iam.html">Using IAM to Manage Access to Amazon SWF Workflows</a> in the <i>Amazon SWF Developer Guide</i>.

        :param self:
        :param lambdaRole:  The IAM role to attach to this workflow execution. <note> Executions of this workflow type need IAM roles to invoke Lambda functions. If you don't attach an IAM role, any attempt to schedule a Lambda task fails. This results in a <code>ScheduleLambdaFunctionFailed</code> history event. For more information, see <a href="https://docs.aws.amazon.com/amazonswf/latest/developerguide/lambda-task.html">https://docs.aws.amazon.com/amazonswf/latest/developerguide/lambda-task.html</a> in the <i>Amazon SWF Developer Guide</i>. </note><br/>childPolicy:  If set, specifies the policy to use for the child workflow executions of this workflow execution if it is terminated, by calling the <a>TerminateWorkflowExecution</a> action explicitly or due to an expired timeout. This policy overrides the default child policy specified when registering the workflow type using <a>RegisterWorkflowType</a>. The supported child policies are: <ul> <li>  <code>TERMINATE</code> – The child executions are terminated. </li> <li>  <code>REQUEST_CANCEL</code> – A request to cancel is attempted for each child execution by recording a <code>WorkflowExecutionCancelRequested</code> event in its history. It is up to the decider to take appropriate actions when it receives an execution history with this event. </li> <li>  <code>ABANDON</code> – No action is taken. The child executions continue to run. </li> </ul> <note> A child policy for this workflow execution must be specified either as a default for the workflow type or through this parameter. If neither this parameter is set nor a default child policy was specified at registration time then a fault is returned. </note><br/>taskStartToCloseTimeout:  Specifies the maximum duration of decision tasks for this workflow execution. This parameter overrides the <code>defaultTaskStartToCloseTimout</code> specified when registering the workflow type using <a>RegisterWorkflowType</a>. The duration is specified in seconds, an integer greater than or equal to <code>0</code>. You can use <code>NONE</code> to specify unlimited duration. <note> A task start-to-close timeout for this workflow execution must be specified either as a default for the workflow type or through this parameter. If neither this parameter is set nor a default task start-to-close timeout was specified at registration time then a fault is returned. </note><br/>tagList:  The list of tags to associate with the workflow execution. You can specify a maximum of 5 tags. You can list workflow executions with a specific tag by calling <a>ListOpenWorkflowExecutions</a> or <a>ListClosedWorkflowExecutions</a> and specifying a <a>TagFilter</a>.<br/>executionStartToCloseTimeout:  The total duration for this workflow execution. This overrides the defaultExecutionStartToCloseTimeout specified when registering the workflow type. The duration is specified in seconds; an integer greater than or equal to <code>0</code>. Exceeding this limit causes the workflow execution to time out. Unlike some of the other timeout parameters in Amazon SWF, you cannot specify a value of "NONE" for this timeout; there is a one-year max limit on the time that a workflow execution can run. <note> An execution start-to-close timeout must be specified either through this parameter or as a default when the workflow type is registered. If neither this parameter nor a default execution start-to-close timeout is specified, a fault is returned. </note><br/>input:  The input for the workflow execution. This is a free form string which should be meaningful to the workflow you are starting. This <code>input</code> is made available to the new workflow execution in the <code>WorkflowExecutionStarted</code> history event.<br/>taskPriority:  The task priority to use for this workflow execution. This overrides any default priority that was assigned when the workflow type was registered. If not set, then the default task priority for the workflow type is used. Valid values are integers that range from Java's <code>Integer.MIN_VALUE</code> (-2147483648) to <code>Integer.MAX_VALUE</code> (2147483647). Higher numbers indicate higher priority. For more information about setting task priority, see <a href="https://docs.aws.amazon.com/amazonswf/latest/developerguide/programming-priority.html">Setting Task Priority</a> in the <i>Amazon SWF Developer Guide</i>.<br/>taskList:  The task list to use for the decision tasks generated for this workflow execution. This overrides the <code>defaultTaskList</code> specified when registering the workflow type. <note> A task list for this workflow execution must be specified either as a default for the workflow type or through this parameter. If neither this parameter is set nor a default task list was specified at registration time then a fault is returned. </note> The specified string must not start or end with whitespace. It must not contain a <code>:</code> (colon), <code>/</code> (slash), <code>|</code> (vertical bar), or any control characters (<code>\u0000-\u001f</code> | <code>\u007f-\u009f</code>). Also, it must not <i>be</i> the literal string <code>arn</code>.:<br/>workflowType:  The type of the workflow to start.:<br/>workflowId:  The user defined identifier associated with the workflow execution. You can use this to associate a custom identifier with the workflow execution. You may specify the same identifier if a workflow execution is logically a <i>restart</i> of a previous execution. You cannot have two open workflow executions with the same <code>workflowId</code> at the same time within the same domain. The specified string must not start or end with whitespace. It must not contain a <code>:</code> (colon), <code>/</code> (slash), <code>|</code> (vertical bar), or any control characters (<code>\u0000-\u001f</code> | <code>\u007f-\u009f</code>). Also, it must not <i>be</i> the literal string <code>arn</code>.<br/>domain:  The name of the domain in which the workflow execution is created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i>  The version of the workflow type. <note> The combination of workflow type name and version must be unique with in a domain. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i>  The name of the workflow type. <note> The combination of workflow type name and version must be unique with in a domain. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of the task list.<br/>
        :return: runId:  The <code>runId</code> of a workflow execution. This ID is generated by the service and can be used to uniquely identify the workflow execution within a domain.<br/>        """
        pass

    def tag_resource(self, tags: List[ResourceTag], resourceArn: str):
        r"""Add a tag to a Amazon SWF domain. <note> Amazon SWF supports a maximum of 50 tags per resource. </note>

        :param self:
        :param tags:  The list of tags to add to a domain.  Tags may only contain unicode letters, digits, whitespace, or these symbols: <code>_ . : / = + - @</code>.<br/>resourceArn:  The Amazon Resource Name (ARN) for the Amazon SWF domain.<br/>
        :return:         """
        pass

    def terminate_workflow_execution(self, workflowId: str, domain: str, runId: str=None, reason: str=None, details: str=None, childPolicy: str=None):
        r"""Records a <code>WorkflowExecutionTerminated</code> event and forces closure of the workflow execution identified by the given domain, runId, and workflowId. The child policy, registered with the workflow type or specified when starting this execution, is applied to any open child workflow executions of this workflow execution. <important> If the identified workflow execution was in progress, it is terminated immediately. </important> <note> If a runId isn't specified, then the <code>WorkflowExecutionTerminated</code> event is recorded in the history of the current open workflow with the matching workflowId in the domain. </note> <note> You should consider using <a>RequestCancelWorkflowExecution</a> action instead because it allows the workflow to gracefully close while <a>TerminateWorkflowExecution</a> doesn't. </note>  <b>Access Control</b>  You can use IAM policies to control this action's access to Amazon SWF resources as follows: <ul> <li> Use a <code>Resource</code> element with the domain name to limit the action to only specified domains. </li> <li> Use an <code>Action</code> element to allow or deny permission to call this action. </li> <li> You cannot use an IAM policy to constrain this action's parameters. </li> </ul> If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's <code>cause</code> parameter is set to <code>OPERATION_NOT_PERMITTED</code>. For details and example IAM policies, see <a href="https://docs.aws.amazon.com/amazonswf/latest/developerguide/swf-dev-iam.html">Using IAM to Manage Access to Amazon SWF Workflows</a> in the <i>Amazon SWF Developer Guide</i>.

        :param self:
        :param childPolicy:  If set, specifies the policy to use for the child workflow executions of the workflow execution being terminated. This policy overrides the child policy specified for the workflow execution at registration time or when starting the execution. The supported child policies are: <ul> <li>  <code>TERMINATE</code> – The child executions are terminated. </li> <li>  <code>REQUEST_CANCEL</code> – A request to cancel is attempted for each child execution by recording a <code>WorkflowExecutionCancelRequested</code> event in its history. It is up to the decider to take appropriate actions when it receives an execution history with this event. </li> <li>  <code>ABANDON</code> – No action is taken. The child executions continue to run. </li> </ul> <note> A child policy for this workflow execution must be specified either as a default for the workflow type or through this parameter. If neither this parameter is set nor a default child policy was specified at registration time then a fault is returned. </note><br/>details:   Details for terminating the workflow execution.<br/>reason:   A descriptive reason for terminating the workflow execution.<br/>runId:  The runId of the workflow execution to terminate.<br/>workflowId:  The workflowId of the workflow execution to terminate.<br/>domain:  The domain of the workflow execution to terminate.<br/>
        :return:         """
        pass

    def undeprecate_activity_type(self, activityType: ActivityType, domain: str):
        r"""Undeprecates a previously deprecated <i>activity type</i>. After an activity type has been undeprecated, you can create new tasks of that activity type. <note> This operation is eventually consistent. The results are best effort and may not exactly reflect recent updates and changes. </note>  <b>Access Control</b>  You can use IAM policies to control this action's access to Amazon SWF resources as follows: <ul> <li> Use a <code>Resource</code> element with the domain name to limit the action to only specified domains. </li> <li> Use an <code>Action</code> element to allow or deny permission to call this action. </li> <li> Constrain the following parameters by using a <code>Condition</code> element with the appropriate keys. <ul> <li>  <code>activityType.name</code>: String constraint. The key is <code>swf:activityType.name</code>. </li> <li>  <code>activityType.version</code>: String constraint. The key is <code>swf:activityType.version</code>. </li> </ul> </li> </ul> If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's <code>cause</code> parameter is set to <code>OPERATION_NOT_PERMITTED</code>. For details and example IAM policies, see <a href="https://docs.aws.amazon.com/amazonswf/latest/developerguide/swf-dev-iam.html">Using IAM to Manage Access to Amazon SWF Workflows</a> in the <i>Amazon SWF Developer Guide</i>.

        :param self:
        :param activityType:  The activity type to undeprecate.:<br/>domain:  The name of the domain of the deprecated activity type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i> The version of this activity. <note> The combination of activity type name and version must be unique with in a domain. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i> The name of this activity. <note> The combination of activity type name and version must be unique within a domain. </note><br/>
        :return:         """
        pass

    def undeprecate_domain(self, name: str):
        r"""Undeprecates a previously deprecated domain. After a domain has been undeprecated it can be used to create new workflow executions or register new types. <note> This operation is eventually consistent. The results are best effort and may not exactly reflect recent updates and changes. </note>  <b>Access Control</b>  You can use IAM policies to control this action's access to Amazon SWF resources as follows: <ul> <li> Use a <code>Resource</code> element with the domain name to limit the action to only specified domains. </li> <li> Use an <code>Action</code> element to allow or deny permission to call this action. </li> <li> You cannot use an IAM policy to constrain this action's parameters. </li> </ul> If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's <code>cause</code> parameter is set to <code>OPERATION_NOT_PERMITTED</code>. For details and example IAM policies, see <a href="https://docs.aws.amazon.com/amazonswf/latest/developerguide/swf-dev-iam.html">Using IAM to Manage Access to Amazon SWF Workflows</a> in the <i>Amazon SWF Developer Guide</i>.

        :param self:
        :param name:  The name of the domain of the deprecated workflow type.<br/>
        :return:         """
        pass

    def undeprecate_workflow_type(self, workflowType: WorkflowType, domain: str):
        r"""Undeprecates a previously deprecated <i>workflow type</i>. After a workflow type has been undeprecated, you can create new executions of that type.  <note> This operation is eventually consistent. The results are best effort and may not exactly reflect recent updates and changes. </note>  <b>Access Control</b>  You can use IAM policies to control this action's access to Amazon SWF resources as follows: <ul> <li> Use a <code>Resource</code> element with the domain name to limit the action to only specified domains. </li> <li> Use an <code>Action</code> element to allow or deny permission to call this action. </li> <li> Constrain the following parameters by using a <code>Condition</code> element with the appropriate keys. <ul> <li>  <code>workflowType.name</code>: String constraint. The key is <code>swf:workflowType.name</code>. </li> <li>  <code>workflowType.version</code>: String constraint. The key is <code>swf:workflowType.version</code>. </li> </ul> </li> </ul> If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's <code>cause</code> parameter is set to <code>OPERATION_NOT_PERMITTED</code>. For details and example IAM policies, see <a href="https://docs.aws.amazon.com/amazonswf/latest/developerguide/swf-dev-iam.html">Using IAM to Manage Access to Amazon SWF Workflows</a> in the <i>Amazon SWF Developer Guide</i>.

        :param self:
        :param workflowType:  The name of the domain of the deprecated workflow type.:<br/>domain:  The name of the domain of the deprecated workflow type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>version</i>  The version of the workflow type. <note> The combination of workflow type name and version must be unique with in a domain. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>name</i>  The name of the workflow type. <note> The combination of workflow type name and version must be unique with in a domain. </note><br/>
        :return:         """
        pass

    def untag_resource(self, tagKeys: List[ResourceTagKey], resourceArn: str):
        r"""Remove a tag from a Amazon SWF domain.

        :param self:
        :param tagKeys:  The list of tags to remove from the Amazon SWF domain.<br/>resourceArn:  The Amazon Resource Name (ARN) for the Amazon SWF domain.<br/>
        :return:         """
        pass





class Synthetics(BaseClient):
    r"""<fullname>Amazon CloudWatch Synthetics</fullname> You can use Amazon CloudWatch Synthetics to continually monitor your services. You can create and manage <i>canaries</i>, which are modular, lightweight scripts that monitor your endpoints and APIs from the outside-in. You can set up your canaries to run 24 hours a day, once per minute. The canaries help you check the availability and latency of your web services and troubleshoot anomalies by investigating load time data, screenshots of the UI, logs, and metrics. The canaries seamlessly integrate with CloudWatch ServiceLens to help you trace the causes of impacted nodes in your applications. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ServiceLens.html">Using ServiceLens to Monitor the Health of Your Applications</a> in the <i>Amazon CloudWatch User Guide</i>. Before you create and manage canaries, be aware of the security considerations. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/servicelens_canaries_security.html">Security Considerations for Synthetics Canaries</a>."""




    class CreateCanaryRequest(Mapping):
        pass
    
    class CreateCanaryResponse(Mapping):
        pass
    
    class CanaryCodeInput(Mapping):
        pass
    
    class CanaryScheduleInput(Mapping):
        pass
    
    class CanaryRunConfigInput(Mapping):
        pass
    
    class VpcConfigInput(Mapping):
        pass
    
    class TagMap(object):
        pass
    
    class DeleteCanaryRequest(Mapping):
        pass
    
    class DeleteCanaryResponse(Mapping):
        pass
    
    class DescribeCanariesRequest(Mapping):
        pass
    
    class DescribeCanariesResponse(Mapping):
        pass
    
    class DescribeCanariesLastRunRequest(Mapping):
        pass
    
    class DescribeCanariesLastRunResponse(Mapping):
        pass
    
    class DescribeRuntimeVersionsRequest(Mapping):
        pass
    
    class DescribeRuntimeVersionsResponse(Mapping):
        pass
    
    class GetCanaryRequest(Mapping):
        pass
    
    class GetCanaryResponse(Mapping):
        pass
    
    class GetCanaryRunsRequest(Mapping):
        pass
    
    class GetCanaryRunsResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class StartCanaryRequest(Mapping):
        pass
    
    class StartCanaryResponse(Mapping):
        pass
    
    class StopCanaryRequest(Mapping):
        pass
    
    class StopCanaryResponse(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateCanaryRequest(Mapping):
        pass
    
    class UpdateCanaryResponse(Mapping):
        pass
    
    def create_canary(self, RuntimeVersion: str, Schedule: CanaryScheduleInput, ExecutionRoleArn: str, ArtifactS3Location: str, Code: CanaryCodeInput, Name: str, RunConfig: CanaryRunConfigInput=None, SuccessRetentionPeriodInDays: int=None, FailureRetentionPeriodInDays: int=None, VpcConfig: VpcConfigInput=None, Tags: TagMap=None) -> CreateCanaryResponse:
        r"""Creates a canary. Canaries are scripts that monitor your endpoints and APIs from the outside-in. Canaries help you check the availability and latency of your web services and troubleshoot anomalies by investigating load time data, screenshots of the UI, logs, and metrics. You can set up a canary to run continuously or just once.  Do not use <code>CreateCanary</code> to modify an existing canary. Use <a href="https://docs.aws.amazon.com/AmazonSynthetics/latest/APIReference/API_UpdateCanary.html">UpdateCanary</a> instead. To create canaries, you must have the <code>CloudWatchSyntheticsFullAccess</code> policy. If you are creating a new IAM role for the canary, you also need the the <code>iam:CreateRole</code>, <code>iam:CreatePolicy</code> and <code>iam:AttachRolePolicy</code> permissions. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries_Roles">Necessary Roles and Permissions</a>. Do not include secrets or proprietary information in your canary names. The canary name makes up part of the Amazon Resource Name (ARN) for the canary, and the ARN is included in outbound calls over the internet. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/servicelens_canaries_security.html">Security Considerations for Synthetics Canaries</a>.

        :param self:
        :param Tags:  A list of key-value pairs to associate with the canary. You can associate as many as 50 tags with a canary. Tags can help you organize and categorize your resources. You can also use them to scope user permissions, by granting a user permission to access or change only the resources that have certain tag values.<br/>VpcConfig:  If this canary is to test an endpoint in a VPC, this structure contains information about the subnet and security groups of the VPC endpoint. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries_VPC.html"> Running a Canary in a VPC</a>.:<br/>RuntimeVersion:  Specifies the runtime version to use for the canary. For a list of valid runtime versions and more information about runtime versions, see <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries_Library.html"> Canary Runtime Versions</a>.<br/>FailureRetentionPeriodInDays:  The number of days to retain data about failed runs of this canary. If you omit this field, the default of 31 days is used. The valid range is 1 to 455 days.<br/>SuccessRetentionPeriodInDays:  The number of days to retain data about successful runs of this canary. If you omit this field, the default of 31 days is used. The valid range is 1 to 455 days.<br/>RunConfig:  A structure that contains the configuration for individual canary runs, such as timeout value.:<br/>Schedule:  A structure that contains information about how often the canary is to run and when these test runs are to stop.:<br/>ExecutionRoleArn:  The ARN of the IAM role to be used to run the canary. This role must already exist, and must include <code>lambda.amazonaws.com</code> as a principal in the trust policy. The role must also have the following permissions: <ul> <li>  <code>s3:PutObject</code>  </li> <li>  <code>s3:GetBucketLocation</code>  </li> <li>  <code>s3:ListAllMyBuckets</code>  </li> <li>  <code>cloudwatch:PutMetricData</code>  </li> <li>  <code>logs:CreateLogGroup</code>  </li> <li>  <code>logs:CreateLogStream</code>  </li> <li>  <code>logs:PutLogEvents</code>  </li> </ul><br/>ArtifactS3Location:  The location in Amazon S3 where Synthetics stores artifacts from the test runs of this canary. Artifacts include the log file, screenshots, and HAR files.<br/>Code:  A structure that includes the entry point from which the canary should start running your script. If the script is stored in an S3 bucket, the bucket name, key, and version are also included. :<br/>Name:  The name for this canary. Be sure to give it a descriptive name that distinguishes it from other canaries in your account. Do not include secrets or proprietary information in your canary names. The canary name makes up part of the canary ARN, and the ARN is included in outbound calls over the internet. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/servicelens_canaries_security.html">Security Considerations for Synthetics Canaries</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Handler</i> The entry point to use for the source code when running the canary. This value must end with the string <code>.handler</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ZipFile</i> If you input your canary script directly into the canary instead of referring to an S3 location, the value of this parameter is the .zip file that contains the script. It can be up to 5 MB.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Version</i> The S3 version ID of your script.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Key</i> The S3 key of your script. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingObjects.html">Working with Amazon S3 Objects</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Bucket</i> If your canary script is located in S3, specify the full bucket name here. The bucket must already exist. Specify the full bucket name, including <code>s3://</code> as the start of the bucket name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DurationInSeconds</i> How long, in seconds, for the canary to continue making regular runs according to the schedule in the <code>Expression</code> value. If you specify 0, the canary continues making runs until you stop it. If you omit this field, the default of 0 is used.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Expression</i> A rate expression that defines how often the canary is to run. The syntax is <code>rate(<i>number unit</i>)</code>. <i>unit</i> can be <code>minute</code>, <code>minutes</code>, or <code>hour</code>.  For example, <code>rate(1 minute)</code> runs the canary once a minute, <code>rate(10 minutes)</code> runs it once every 10 minutes, and <code>rate(1 hour)</code> runs it once every hour. You can specify a frequency between <code>rate(1 minute)</code> and <code>rate(1 hour)</code>. Specifying <code>rate(0 minute)</code> or <code>rate(0 hour)</code> is a special value that causes the canary to run only once when it is started.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnvironmentVariables</i> Specifies the keys and values to use for any environment variables used in the canary script. Use the following format: { "key1" : "value1", "key2" : "value2", ...} Keys must start with a letter and be at least two characters. The total size of your environment variables cannot exceed 4 KB. You can't specify any Lambda reserved environment variables as the keys for your environment variables. For more information about reserved keys, see <a href="https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html#configuration-envvars-runtime"> Runtime environment variables</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActiveTracing</i> Specifies whether this canary is to use active AWS X-Ray tracing when it runs. Active tracing enables this canary run to be displayed in the ServiceLens and X-Ray service maps even if the canary does not hit an endpoint that has X-ray tracing enabled. Using X-Ray tracing incurs charges. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries_tracing.html"> Canaries and X-Ray tracing</a>. You can enable active tracing only for canaries that use version <code>syn-nodejs-2.0</code> or later for their canary runtime.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MemoryInMB</i> The maximum amount of memory available to the canary while it is running, in MB. This value must be a multiple of 64.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TimeoutInSeconds</i> How long the canary is allowed to run before it must stop. You can't set this time to be longer than the frequency of the runs of this canary. If you omit this field, the frequency of the canary is used as this value, up to a maximum of 14 minutes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> The IDs of the security groups for this canary.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetIds</i> The IDs of the subnets where this canary is to run.<br/>
        :return: Canary:  The full details about the canary you have created.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The list of key-value pairs that are associated with the canary.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcConfig</i> If this canary is to test an endpoint in a VPC, this structure contains information about the subnets and security groups of the VPC endpoint. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries_VPC.html"> Running a Canary in a VPC</a>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>VpcConfig</b>: If this canary is to test an endpoint in a VPC, this structure contains information about the subnets and security groups of the VPC endpoint. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries_VPC.html"> Running a Canary in a VPC</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RuntimeVersion</i> Specifies the runtime version to use for the canary. For more information about runtime versions, see <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries_Library.html"> Canary Runtime Versions</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineArn</i> The ARN of the Lambda function that is used as your canary's engine. For more information about Lambda ARN format, see <a href="https://docs.aws.amazon.com/lambda/latest/dg/lambda-api-permissions-ref.html">Resources and Conditions for Lambda Actions</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ArtifactS3Location</i> The location in Amazon S3 where Synthetics stores artifacts from the runs of this canary. Artifacts include the log file, screenshots, and HAR files.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Timeline</i> A structure that contains information about when the canary was created, modified, and most recently run.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Timeline</b>: A structure that contains information about when the canary was created, modified, and most recently run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> A structure that contains information about the canary's status.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Status</b>: A structure that contains information about the canary's status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FailureRetentionPeriodInDays</i> The number of days to retain data about failed runs of this canary.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SuccessRetentionPeriodInDays</i> The number of days to retain data about successful runs of this canary.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RunConfig</i> A structure that contains information about a canary run.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RunConfig</b>: A structure that contains information about a canary run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Schedule</i> A structure that contains information about how often the canary is to run, and when these runs are to stop.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Schedule</b>: A structure that contains information about how often the canary is to run, and when these runs are to stop.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExecutionRoleArn</i> The ARN of the IAM role used to run the canary. This role must include <code>lambda.amazonaws.com</code> as a principal in the trust policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Code</i> This structure contains information about the canary's Lambda handler and where its code is stored by CloudWatch Synthetics.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Code</b>: This structure contains information about the canary's Lambda handler and where its code is stored by CloudWatch Synthetics.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the canary.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The unique ID of this canary.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Handler</i> The entry point to use for the source code when running the canary.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceLocationArn</i> The ARN of the Lambda layer where Synthetics stores the canary script code.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DurationInSeconds</i> How long, in seconds, for the canary to continue making regular runs after it was created. The runs are performed according to the schedule in the <code>Expression</code> value.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Expression</i> A rate expression that defines how often the canary is to run. The syntax is <code>rate(<i>number unit</i>)</code>. <i>unit</i> can be <code>minute</code>, <code>minutes</code>, or <code>hour</code>.  For example, <code>rate(1 minute)</code> runs the canary once a minute, <code>rate(10 minutes)</code> runs it once every 10 minutes, and <code>rate(1 hour)</code> runs it once every hour. Specifying <code>rate(0 minute)</code> or <code>rate(0 hour)</code> is a special value that causes the canary to run only once when it is started.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ActiveTracing</i> Displays whether this canary run used active AWS X-Ray tracing. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MemoryInMB</i> The maximum amount of memory available to the canary while it is running, in MB. This value must be a multiple of 64.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TimeoutInSeconds</i> How long the canary is allowed to run before it must stop.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StateReasonCode</i> If the canary cannot run or has failed, this field displays the reason.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StateReason</i> If the canary has insufficient permissions to run, this field provides more details.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The current state of the canary.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LastStopped</i> The date and time that the canary's most recent run ended.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LastStarted</i> The date and time that the canary's most recent run started.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModified</i> The date and time the canary was most recently modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Created</i> The date and time the canary was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> The IDs of the security groups for this canary.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetIds</i> The IDs of the subnets where this canary is to run.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The IDs of the VPC where this canary is to run.<br/>        """
        pass

    def delete_canary(self, Name: str) -> DeleteCanaryResponse:
        r"""Permanently deletes the specified canary. When you delete a canary, resources used and created by the canary are not automatically deleted. After you delete a canary that you do not intend to use again, you should also delete the following: <ul> <li> The Lambda functions and layers used by this canary. These have the prefix <code>cwsyn-<i>MyCanaryName</i> </code>. </li> <li> The CloudWatch alarms created for this canary. These alarms have a name of <code>Synthetics-SharpDrop-Alarm-<i>MyCanaryName</i> </code>. </li> <li> Amazon S3 objects and buckets, such as the canary's artifact location. </li> <li> IAM roles created for the canary. If they were created in the console, these roles have the name <code> role/service-role/CloudWatchSyntheticsRole-<i>MyCanaryName</i> </code>. </li> <li> CloudWatch Logs log groups created for the canary. These logs groups have the name <code>/aws/lambda/cwsyn-<i>MyCanaryName</i> </code>.  </li> </ul> Before you delete a canary, you might want to use <code>GetCanary</code> to display the information about this canary. Make note of the information returned by this operation so that you can delete these resources after you delete the canary.

        :param self:
        :param Name:  The name of the canary that you want to delete. To find the names of your canaries, use <a href="https://docs.aws.amazon.com/AmazonSynthetics/latest/APIReference/API_DescribeCanaries.html">DescribeCanaries</a>.<br/>
        :return:         """
        pass

    def describe_canaries(self, NextToken: str=None, MaxResults: int=None) -> DescribeCanariesResponse:
        r"""This operation returns a list of the canaries in your account, along with full details about each canary. This operation does not have resource-level authorization, so if a user is able to use <code>DescribeCanaries</code>, the user can see all of the canaries in the account. A deny policy can only be used to restrict access to all canaries. It cannot be used on specific resources. 

        :param self:
        :param MaxResults:  Specify this parameter to limit how many canaries are returned each time you use the <code>DescribeCanaries</code> operation. If you omit this parameter, the default of 100 is used.<br/>NextToken:  A token that indicates that there is more data available. You can use this token in a subsequent operation to retrieve the next set of results.<br/>
        :return: NextToken:  A token that indicates that there is more data available. You can use this token in a subsequent <code>DescribeCanaries</code> operation to retrieve the next set of results.<br/>Canaries:  Returns an array. Each item in the array contains the full information about one canary.<br/>        """
        pass

    def describe_canaries_last_run(self, NextToken: str=None, MaxResults: int=None) -> DescribeCanariesLastRunResponse:
        r"""Use this operation to see information from the most recent run of each canary that you have created.

        :param self:
        :param MaxResults:  Specify this parameter to limit how many runs are returned each time you use the <code>DescribeLastRun</code> operation. If you omit this parameter, the default of 100 is used.<br/>NextToken:  A token that indicates that there is more data available. You can use this token in a subsequent <code>DescribeCanaries</code> operation to retrieve the next set of results.<br/>
        :return: NextToken:  A token that indicates that there is more data available. You can use this token in a subsequent <code>DescribeCanariesLastRun</code> operation to retrieve the next set of results.<br/>CanariesLastRun:  An array that contains the information from the most recent run of each canary.<br/>        """
        pass

    def describe_runtime_versions(self, NextToken: str=None, MaxResults: int=None) -> DescribeRuntimeVersionsResponse:
        r"""Returns a list of Synthetics canary runtime versions. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries_Library.html"> Canary Runtime Versions</a>.

        :param self:
        :param MaxResults:  Specify this parameter to limit how many runs are returned each time you use the <code>DescribeRuntimeVersions</code> operation. If you omit this parameter, the default of 100 is used.<br/>NextToken:  A token that indicates that there is more data available. You can use this token in a subsequent <code>DescribeRuntimeVersions</code> operation to retrieve the next set of results.<br/>
        :return: NextToken:  A token that indicates that there is more data available. You can use this token in a subsequent <code>DescribeRuntimeVersions</code> operation to retrieve the next set of results.<br/>RuntimeVersions:  An array of objects that display the details about each Synthetics canary runtime version.<br/>        """
        pass

    def get_canary(self, Name: str) -> GetCanaryResponse:
        r"""Retrieves complete information about one canary. You must specify the name of the canary that you want. To get a list of canaries and their names, use <a href="https://docs.aws.amazon.com/AmazonSynthetics/latest/APIReference/API_DescribeCanaries.html">DescribeCanaries</a>.

        :param self:
        :param Name:  The name of the canary that you want details for.<br/>
        :return: Canary:  A strucure that contains the full information about the canary.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The list of key-value pairs that are associated with the canary.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcConfig</i> If this canary is to test an endpoint in a VPC, this structure contains information about the subnets and security groups of the VPC endpoint. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries_VPC.html"> Running a Canary in a VPC</a>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>VpcConfig</b>: If this canary is to test an endpoint in a VPC, this structure contains information about the subnets and security groups of the VPC endpoint. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries_VPC.html"> Running a Canary in a VPC</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RuntimeVersion</i> Specifies the runtime version to use for the canary. For more information about runtime versions, see <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries_Library.html"> Canary Runtime Versions</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EngineArn</i> The ARN of the Lambda function that is used as your canary's engine. For more information about Lambda ARN format, see <a href="https://docs.aws.amazon.com/lambda/latest/dg/lambda-api-permissions-ref.html">Resources and Conditions for Lambda Actions</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ArtifactS3Location</i> The location in Amazon S3 where Synthetics stores artifacts from the runs of this canary. Artifacts include the log file, screenshots, and HAR files.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Timeline</i> A structure that contains information about when the canary was created, modified, and most recently run.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Timeline</b>: A structure that contains information about when the canary was created, modified, and most recently run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> A structure that contains information about the canary's status.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Status</b>: A structure that contains information about the canary's status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FailureRetentionPeriodInDays</i> The number of days to retain data about failed runs of this canary.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SuccessRetentionPeriodInDays</i> The number of days to retain data about successful runs of this canary.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RunConfig</i> A structure that contains information about a canary run.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RunConfig</b>: A structure that contains information about a canary run.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Schedule</i> A structure that contains information about how often the canary is to run, and when these runs are to stop.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Schedule</b>: A structure that contains information about how often the canary is to run, and when these runs are to stop.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExecutionRoleArn</i> The ARN of the IAM role used to run the canary. This role must include <code>lambda.amazonaws.com</code> as a principal in the trust policy.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Code</i> This structure contains information about the canary's Lambda handler and where its code is stored by CloudWatch Synthetics.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Code</b>: This structure contains information about the canary's Lambda handler and where its code is stored by CloudWatch Synthetics.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the canary.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The unique ID of this canary.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Handler</i> The entry point to use for the source code when running the canary.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceLocationArn</i> The ARN of the Lambda layer where Synthetics stores the canary script code.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DurationInSeconds</i> How long, in seconds, for the canary to continue making regular runs after it was created. The runs are performed according to the schedule in the <code>Expression</code> value.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Expression</i> A rate expression that defines how often the canary is to run. The syntax is <code>rate(<i>number unit</i>)</code>. <i>unit</i> can be <code>minute</code>, <code>minutes</code>, or <code>hour</code>.  For example, <code>rate(1 minute)</code> runs the canary once a minute, <code>rate(10 minutes)</code> runs it once every 10 minutes, and <code>rate(1 hour)</code> runs it once every hour. Specifying <code>rate(0 minute)</code> or <code>rate(0 hour)</code> is a special value that causes the canary to run only once when it is started.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ActiveTracing</i> Displays whether this canary run used active AWS X-Ray tracing. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MemoryInMB</i> The maximum amount of memory available to the canary while it is running, in MB. This value must be a multiple of 64.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TimeoutInSeconds</i> How long the canary is allowed to run before it must stop.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StateReasonCode</i> If the canary cannot run or has failed, this field displays the reason.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StateReason</i> If the canary has insufficient permissions to run, this field provides more details.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The current state of the canary.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LastStopped</i> The date and time that the canary's most recent run ended.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LastStarted</i> The date and time that the canary's most recent run started.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModified</i> The date and time the canary was most recently modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Created</i> The date and time the canary was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> The IDs of the security groups for this canary.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetIds</i> The IDs of the subnets where this canary is to run.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The IDs of the VPC where this canary is to run.<br/>        """
        pass

    def get_canary_runs(self, Name: str, NextToken: str=None, MaxResults: int=None) -> GetCanaryRunsResponse:
        r"""Retrieves a list of runs for a specified canary.

        :param self:
        :param MaxResults:  Specify this parameter to limit how many runs are returned each time you use the <code>GetCanaryRuns</code> operation. If you omit this parameter, the default of 100 is used.<br/>NextToken:  A token that indicates that there is more data available. You can use this token in a subsequent <code>GetCanaryRuns</code> operation to retrieve the next set of results.<br/>Name:  The name of the canary that you want to see runs for.<br/>
        :return: NextToken:  A token that indicates that there is more data available. You can use this token in a subsequent <code>GetCanaryRuns</code> operation to retrieve the next set of results.<br/>CanaryRuns:  An array of structures. Each structure contains the details of one of the retrieved canary runs.<br/>        """
        pass

    def list_tags_for_resource(self, ResourceArn: str) -> ListTagsForResourceResponse:
        r"""Displays the tags associated with a canary.

        :param self:
        :param ResourceArn:  The ARN of the canary that you want to view tags for. The ARN format of a canary is <code>arn:aws:synthetics:<i>Region</i>:<i>account-id</i>:canary:<i>canary-name</i> </code>.<br/>
        :return: Tags:  The list of tag keys and values associated with the canary that you specified.<br/>        """
        pass

    def start_canary(self, Name: str) -> StartCanaryResponse:
        r"""Use this operation to run a canary that has already been created. The frequency of the canary runs is determined by the value of the canary's <code>Schedule</code>. To see a canary's schedule, use <a href="https://docs.aws.amazon.com/AmazonSynthetics/latest/APIReference/API_GetCanary.html">GetCanary</a>.

        :param self:
        :param Name:  The name of the canary that you want to run. To find canary names, use <a href="https://docs.aws.amazon.com/AmazonSynthetics/latest/APIReference/API_DescribeCanaries.html">DescribeCanaries</a>.<br/>
        :return:         """
        pass

    def stop_canary(self, Name: str) -> StopCanaryResponse:
        r"""Stops the canary to prevent all future runs. If the canary is currently running, Synthetics stops waiting for the current run of the specified canary to complete. The run that is in progress completes on its own, publishes metrics, and uploads artifacts, but it is not recorded in Synthetics as a completed run. You can use <code>StartCanary</code> to start it running again with the canary’s current schedule at any point in the future. 

        :param self:
        :param Name:  The name of the canary that you want to stop. To find the names of your canaries, use <a href="https://docs.aws.amazon.com/AmazonSynthetics/latest/APIReference/API_DescribeCanaries.html">DescribeCanaries</a>.<br/>
        :return:         """
        pass

    def tag_resource(self, Tags: TagMap, ResourceArn: str) -> TagResourceResponse:
        r"""Assigns one or more tags (key-value pairs) to the specified canary.  Tags can help you organize and categorize your resources. You can also use them to scope user permissions, by granting a user permission to access or change only resources with certain tag values. Tags don't have any semantic meaning to AWS and are interpreted strictly as strings of characters. You can use the <code>TagResource</code> action with a canary that already has tags. If you specify a new tag key for the alarm, this tag is appended to the list of tags associated with the alarm. If you specify a tag key that is already associated with the alarm, the new tag value that you specify replaces the previous value for that tag. You can associate as many as 50 tags with a canary.

        :param self:
        :param Tags:  The list of key-value pairs to associate with the canary.<br/>ResourceArn:  The ARN of the canary that you're adding tags to. The ARN format of a canary is <code>arn:aws:synthetics:<i>Region</i>:<i>account-id</i>:canary:<i>canary-name</i> </code>.<br/>
        :return:         """
        pass

    def untag_resource(self, TagKeys: List[TagKey], ResourceArn: str) -> UntagResourceResponse:
        r"""Removes one or more tags from the specified canary.

        :param self:
        :param TagKeys:  The list of tag keys to remove from the resource.<br/>ResourceArn:  The ARN of the canary that you're removing tags from. The ARN format of a canary is <code>arn:aws:synthetics:<i>Region</i>:<i>account-id</i>:canary:<i>canary-name</i> </code>.<br/>
        :return:         """
        pass

    def update_canary(self, Name: str, Code: CanaryCodeInput=None, ExecutionRoleArn: str=None, RuntimeVersion: str=None, Schedule: CanaryScheduleInput=None, RunConfig: CanaryRunConfigInput=None, SuccessRetentionPeriodInDays: int=None, FailureRetentionPeriodInDays: int=None, VpcConfig: VpcConfigInput=None) -> UpdateCanaryResponse:
        r"""Use this operation to change the settings of a canary that has already been created. You can't use this operation to update the tags of an existing canary. To change the tags of an existing canary, use <a href="https://docs.aws.amazon.com/AmazonSynthetics/latest/APIReference/API_TagResource.html">TagResource</a>.

        :param self:
        :param VpcConfig:  If this canary is to test an endpoint in a VPC, this structure contains information about the subnet and security groups of the VPC endpoint. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries_VPC.html"> Running a Canary in a VPC</a>.:<br/>FailureRetentionPeriodInDays:  The number of days to retain data about failed runs of this canary.<br/>SuccessRetentionPeriodInDays:  The number of days to retain data about successful runs of this canary.<br/>RunConfig:  A structure that contains the timeout value that is used for each individual run of the canary.:<br/>Schedule:  A structure that contains information about how often the canary is to run, and when these runs are to stop.:<br/>RuntimeVersion:  Specifies the runtime version to use for the canary. For a list of valid runtime versions and for more information about runtime versions, see <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries_Library.html"> Canary Runtime Versions</a>.<br/>ExecutionRoleArn:  The ARN of the IAM role to be used to run the canary. This role must already exist, and must include <code>lambda.amazonaws.com</code> as a principal in the trust policy. The role must also have the following permissions: <ul> <li>  <code>s3:PutObject</code>  </li> <li>  <code>s3:GetBucketLocation</code>  </li> <li>  <code>s3:ListAllMyBuckets</code>  </li> <li>  <code>cloudwatch:PutMetricData</code>  </li> <li>  <code>logs:CreateLogGroup</code>  </li> <li>  <code>logs:CreateLogStream</code>  </li> <li>  <code>logs:CreateLogStream</code>  </li> </ul><br/>Code:  A structure that includes the entry point from which the canary should start running your script. If the script is stored in an S3 bucket, the bucket name, key, and version are also included. :<br/>Name:  The name of the canary that you want to update. To find the names of your canaries, use <a href="https://docs.aws.amazon.com/AmazonSynthetics/latest/APIReference/API_DescribeCanaries.html">DescribeCanaries</a>. You cannot change the name of a canary that has already been created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Handler</i> The entry point to use for the source code when running the canary. This value must end with the string <code>.handler</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ZipFile</i> If you input your canary script directly into the canary instead of referring to an S3 location, the value of this parameter is the .zip file that contains the script. It can be up to 5 MB.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Version</i> The S3 version ID of your script.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Key</i> The S3 key of your script. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingObjects.html">Working with Amazon S3 Objects</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Bucket</i> If your canary script is located in S3, specify the full bucket name here. The bucket must already exist. Specify the full bucket name, including <code>s3://</code> as the start of the bucket name.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DurationInSeconds</i> How long, in seconds, for the canary to continue making regular runs according to the schedule in the <code>Expression</code> value. If you specify 0, the canary continues making runs until you stop it. If you omit this field, the default of 0 is used.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Expression</i> A rate expression that defines how often the canary is to run. The syntax is <code>rate(<i>number unit</i>)</code>. <i>unit</i> can be <code>minute</code>, <code>minutes</code>, or <code>hour</code>.  For example, <code>rate(1 minute)</code> runs the canary once a minute, <code>rate(10 minutes)</code> runs it once every 10 minutes, and <code>rate(1 hour)</code> runs it once every hour. You can specify a frequency between <code>rate(1 minute)</code> and <code>rate(1 hour)</code>. Specifying <code>rate(0 minute)</code> or <code>rate(0 hour)</code> is a special value that causes the canary to run only once when it is started.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnvironmentVariables</i> Specifies the keys and values to use for any environment variables used in the canary script. Use the following format: { "key1" : "value1", "key2" : "value2", ...} Keys must start with a letter and be at least two characters. The total size of your environment variables cannot exceed 4 KB. You can't specify any Lambda reserved environment variables as the keys for your environment variables. For more information about reserved keys, see <a href="https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html#configuration-envvars-runtime"> Runtime environment variables</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ActiveTracing</i> Specifies whether this canary is to use active AWS X-Ray tracing when it runs. Active tracing enables this canary run to be displayed in the ServiceLens and X-Ray service maps even if the canary does not hit an endpoint that has X-ray tracing enabled. Using X-Ray tracing incurs charges. For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries_tracing.html"> Canaries and X-Ray tracing</a>. You can enable active tracing only for canaries that use version <code>syn-nodejs-2.0</code> or later for their canary runtime.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MemoryInMB</i> The maximum amount of memory available to the canary while it is running, in MB. This value must be a multiple of 64.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TimeoutInSeconds</i> How long the canary is allowed to run before it must stop. You can't set this time to be longer than the frequency of the runs of this canary. If you omit this field, the frequency of the canary is used as this value, up to a maximum of 14 minutes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> The IDs of the security groups for this canary.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetIds</i> The IDs of the subnets where this canary is to run.<br/>
        :return:         """
        pass





class Textract(BaseClient):
    r"""Amazon Textract detects and analyzes text in documents and converts it into machine-readable text. This is the API reference documentation for Amazon Textract."""




    class AnalyzeDocumentRequest(Mapping):
        pass
    
    class AnalyzeDocumentResponse(Mapping):
        pass
    
    class Document(Mapping):
        pass
    
    class FeatureType(object):
        pass
    
    class HumanLoopConfig(Mapping):
        pass
    
    class DetectDocumentTextRequest(Mapping):
        pass
    
    class DetectDocumentTextResponse(Mapping):
        pass
    
    class GetDocumentAnalysisRequest(Mapping):
        pass
    
    class GetDocumentAnalysisResponse(Mapping):
        pass
    
    class GetDocumentTextDetectionRequest(Mapping):
        pass
    
    class GetDocumentTextDetectionResponse(Mapping):
        pass
    
    class StartDocumentAnalysisRequest(Mapping):
        pass
    
    class StartDocumentAnalysisResponse(Mapping):
        pass
    
    class DocumentLocation(Mapping):
        pass
    
    class NotificationChannel(Mapping):
        pass
    
    class OutputConfig(Mapping):
        pass
    
    class StartDocumentTextDetectionRequest(Mapping):
        pass
    
    class StartDocumentTextDetectionResponse(Mapping):
        pass
    
    def analyze_document(self, FeatureTypes: List[FeatureType], Document: Document, HumanLoopConfig: HumanLoopConfig=None) -> AnalyzeDocumentResponse:
        r"""Analyzes an input document for relationships between detected items.  The types of information returned are as follows:  <ul> <li> Form data (key-value pairs). The related information is returned in two <a>Block</a> objects, each of type <code>KEY_VALUE_SET</code>: a KEY <code>Block</code> object and a VALUE <code>Block</code> object. For example, <i>Name: Ana Silva Carolina</i> contains a key and value. <i>Name:</i> is the key. <i>Ana Silva Carolina</i> is the value. </li> <li> Table and table cell data. A TABLE <code>Block</code> object contains information about a detected table. A CELL <code>Block</code> object is returned for each cell in a table. </li> <li> Lines and words of text. A LINE <code>Block</code> object contains one or more WORD <code>Block</code> objects. All lines and words that are detected in the document are returned (including text that doesn't have a relationship with the value of <code>FeatureTypes</code>).  </li> </ul> Selection elements such as check boxes and option buttons (radio buttons) can be detected in form data and in tables. A SELECTION_ELEMENT <code>Block</code> object contains information about a selection element, including the selection status. You can choose which type of analysis to perform by specifying the <code>FeatureTypes</code> list.  The output is returned in a list of <code>Block</code> objects.  <code>AnalyzeDocument</code> is a synchronous operation. To analyze documents asynchronously, use <a>StartDocumentAnalysis</a>. For more information, see <a href="https://docs.aws.amazon.com/textract/latest/dg/how-it-works-analyzing.html">Document Text Analysis</a>.

        :param self:
        :param HumanLoopConfig:  Sets the configuration for the human in the loop workflow for analyzing documents.:<br/>FeatureTypes:  A list of the types of analysis to perform. Add TABLES to the list to return information about the tables that are detected in the input document. Add FORMS to return detected form data. To perform both types of analysis, add TABLES and FORMS to <code>FeatureTypes</code>. All lines and words detected in the document are included in the response (including text that isn't related to the value of <code>FeatureTypes</code>). <br/>Document:  The input document as base64-encoded bytes or an Amazon S3 object. If you use the AWS CLI to call Amazon Textract operations, you can't pass image bytes. The document must be an image in JPEG or PNG format. If you're using an AWS SDK to call Amazon Textract, you might not need to base64-encode image bytes that are passed using the <code>Bytes</code> field. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Object</i> Identifies an S3 object as the document source. The maximum size of a document that's stored in an S3 bucket is 5 MB.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3Object</b>: Identifies an S3 object as the document source. The maximum size of a document that's stored in an S3 bucket is 5 MB.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Bytes</i> A blob of base64-encoded document bytes. The maximum size of a document that's provided in a blob of bytes is 5 MB. The document bytes must be in PNG or JPEG format. If you're using an AWS SDK to call Amazon Textract, you might not need to base64-encode image bytes passed using the <code>Bytes</code> field. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> If the bucket has versioning enabled, you can specify the object version. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The file name of the input document. Synchronous operations can use image files that are in JPEG or PNG format. Asynchronous operations also support PDF format files.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i> The name of the S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataAttributes</i> Sets attributes of the input data.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DataAttributes</b>: Sets attributes of the input data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FlowDefinitionArn</i> The Amazon Resource Name (ARN) of the flow definition.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HumanLoopName</i> The name of the human workflow used for this image. This should be kept unique within a region.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ContentClassifiers</i> Sets whether the input image is free of personally identifiable information or adult content.<br/>
        :return: AnalyzeDocumentModelVersion:  The version of the model used to analyze the document.<br/>HumanLoopActivationOutput:  Shows the results of the human in the loop evaluation.:<br/>Blocks:  The items that are detected and analyzed by <code>AnalyzeDocument</code>.<br/>DocumentMetadata:  Metadata about the analyzed document. An example is the number of pages.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Pages</i> The number of pages that are detected in the document.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HumanLoopActivationConditionsEvaluationResults</i> Shows the result of condition evaluations, including those conditions which activated a human review.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HumanLoopActivationReasons</i> Shows if and why human review was needed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HumanLoopArn</i> The Amazon Resource Name (ARN) of the HumanLoop created.<br/>        """
        pass

    def detect_document_text(self, Document: Document) -> DetectDocumentTextResponse:
        r"""Detects text in the input document. Amazon Textract can detect lines of text and the words that make up a line of text. The input document must be an image in JPEG or PNG format. <code>DetectDocumentText</code> returns the detected text in an array of <a>Block</a> objects.  Each document page has as an associated <code>Block</code> of type PAGE. Each PAGE <code>Block</code> object is the parent of LINE <code>Block</code> objects that represent the lines of detected text on a page. A LINE <code>Block</code> object is a parent for each word that makes up the line. Words are represented by <code>Block</code> objects of type WORD.  <code>DetectDocumentText</code> is a synchronous operation. To analyze documents asynchronously, use <a>StartDocumentTextDetection</a>. For more information, see <a href="https://docs.aws.amazon.com/textract/latest/dg/how-it-works-detecting.html">Document Text Detection</a>.

        :param self:
        :param Document:  The input document as base64-encoded bytes or an Amazon S3 object. If you use the AWS CLI to call Amazon Textract operations, you can't pass image bytes. The document must be an image in JPEG or PNG format. If you're using an AWS SDK to call Amazon Textract, you might not need to base64-encode image bytes that are passed using the <code>Bytes</code> field. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Object</i> Identifies an S3 object as the document source. The maximum size of a document that's stored in an S3 bucket is 5 MB.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3Object</b>: Identifies an S3 object as the document source. The maximum size of a document that's stored in an S3 bucket is 5 MB.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Bytes</i> A blob of base64-encoded document bytes. The maximum size of a document that's provided in a blob of bytes is 5 MB. The document bytes must be in PNG or JPEG format. If you're using an AWS SDK to call Amazon Textract, you might not need to base64-encode image bytes passed using the <code>Bytes</code> field. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> If the bucket has versioning enabled, you can specify the object version. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The file name of the input document. Synchronous operations can use image files that are in JPEG or PNG format. Asynchronous operations also support PDF format files.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i> The name of the S3 bucket.<br/>
        :return: DetectDocumentTextModelVersion:  <p/><br/>Blocks:  An array of <code>Block</code> objects that contain the text that's detected in the document.<br/>DocumentMetadata:  Metadata about the document. It contains the number of pages that are detected in the document.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Pages</i> The number of pages that are detected in the document.<br/>        """
        pass

    def get_document_analysis(self, JobId: str, MaxResults: int=None, NextToken: str=None) -> GetDocumentAnalysisResponse:
        r"""Gets the results for an Amazon Textract asynchronous operation that analyzes text in a document. You start asynchronous text analysis by calling <a>StartDocumentAnalysis</a>, which returns a job identifier (<code>JobId</code>). When the text analysis operation finishes, Amazon Textract publishes a completion status to the Amazon Simple Notification Service (Amazon SNS) topic that's registered in the initial call to <code>StartDocumentAnalysis</code>. To get the results of the text-detection operation, first check that the status value published to the Amazon SNS topic is <code>SUCCEEDED</code>. If so, call <code>GetDocumentAnalysis</code>, and pass the job identifier (<code>JobId</code>) from the initial call to <code>StartDocumentAnalysis</code>.  <code>GetDocumentAnalysis</code> returns an array of <a>Block</a> objects. The following types of information are returned:  <ul> <li> Form data (key-value pairs). The related information is returned in two <a>Block</a> objects, each of type <code>KEY_VALUE_SET</code>: a KEY <code>Block</code> object and a VALUE <code>Block</code> object. For example, <i>Name: Ana Silva Carolina</i> contains a key and value. <i>Name:</i> is the key. <i>Ana Silva Carolina</i> is the value. </li> <li> Table and table cell data. A TABLE <code>Block</code> object contains information about a detected table. A CELL <code>Block</code> object is returned for each cell in a table. </li> <li> Lines and words of text. A LINE <code>Block</code> object contains one or more WORD <code>Block</code> objects. All lines and words that are detected in the document are returned (including text that doesn't have a relationship with the value of the <code>StartDocumentAnalysis</code> <code>FeatureTypes</code> input parameter).  </li> </ul> Selection elements such as check boxes and option buttons (radio buttons) can be detected in form data and in tables. A SELECTION_ELEMENT <code>Block</code> object contains information about a selection element, including the selection status. Use the <code>MaxResults</code> parameter to limit the number of blocks that are returned. If there are more results than specified in <code>MaxResults</code>, the value of <code>NextToken</code> in the operation response contains a pagination token for getting the next set of results. To get the next page of results, call <code>GetDocumentAnalysis</code>, and populate the <code>NextToken</code> request parameter with the token value that's returned from the previous call to <code>GetDocumentAnalysis</code>. For more information, see <a href="https://docs.aws.amazon.com/textract/latest/dg/how-it-works-analyzing.html">Document Text Analysis</a>.

        :param self:
        :param NextToken:  If the previous response was incomplete (because there are more blocks to retrieve), Amazon Textract returns a pagination token in the response. You can use this pagination token to retrieve the next set of blocks.<br/>MaxResults:  The maximum number of results to return per paginated call. The largest value that you can specify is 1,000. If you specify a value greater than 1,000, a maximum of 1,000 results is returned. The default value is 1,000.<br/>JobId:  A unique identifier for the text-detection job. The <code>JobId</code> is returned from <code>StartDocumentAnalysis</code>. A <code>JobId</code> value is only valid for 7 days.<br/>
        :return: AnalyzeDocumentModelVersion:  <p/><br/>StatusMessage:  Returns if the detection job could not be completed. Contains explanation for what error occured.<br/>Warnings:  A list of warnings that occurred during the document-analysis operation.<br/>Blocks:  The results of the text-analysis operation.<br/>NextToken:  If the response is truncated, Amazon Textract returns this token. You can use this token in the subsequent request to retrieve the next set of text detection results.<br/>JobStatus:  The current status of the text detection job.<br/>DocumentMetadata:  Information about a document that Amazon Textract processed. <code>DocumentMetadata</code> is returned in every page of paginated responses from an Amazon Textract video operation.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Pages</i> The number of pages that are detected in the document.<br/>        """
        pass

    def get_document_text_detection(self, JobId: str, MaxResults: int=None, NextToken: str=None) -> GetDocumentTextDetectionResponse:
        r"""Gets the results for an Amazon Textract asynchronous operation that detects text in a document. Amazon Textract can detect lines of text and the words that make up a line of text. You start asynchronous text detection by calling <a>StartDocumentTextDetection</a>, which returns a job identifier (<code>JobId</code>). When the text detection operation finishes, Amazon Textract publishes a completion status to the Amazon Simple Notification Service (Amazon SNS) topic that's registered in the initial call to <code>StartDocumentTextDetection</code>. To get the results of the text-detection operation, first check that the status value published to the Amazon SNS topic is <code>SUCCEEDED</code>. If so, call <code>GetDocumentTextDetection</code>, and pass the job identifier (<code>JobId</code>) from the initial call to <code>StartDocumentTextDetection</code>.  <code>GetDocumentTextDetection</code> returns an array of <a>Block</a> objects.  Each document page has as an associated <code>Block</code> of type PAGE. Each PAGE <code>Block</code> object is the parent of LINE <code>Block</code> objects that represent the lines of detected text on a page. A LINE <code>Block</code> object is a parent for each word that makes up the line. Words are represented by <code>Block</code> objects of type WORD. Use the MaxResults parameter to limit the number of blocks that are returned. If there are more results than specified in <code>MaxResults</code>, the value of <code>NextToken</code> in the operation response contains a pagination token for getting the next set of results. To get the next page of results, call <code>GetDocumentTextDetection</code>, and populate the <code>NextToken</code> request parameter with the token value that's returned from the previous call to <code>GetDocumentTextDetection</code>. For more information, see <a href="https://docs.aws.amazon.com/textract/latest/dg/how-it-works-detecting.html">Document Text Detection</a>.

        :param self:
        :param NextToken:  If the previous response was incomplete (because there are more blocks to retrieve), Amazon Textract returns a pagination token in the response. You can use this pagination token to retrieve the next set of blocks.<br/>MaxResults:  The maximum number of results to return per paginated call. The largest value you can specify is 1,000. If you specify a value greater than 1,000, a maximum of 1,000 results is returned. The default value is 1,000.<br/>JobId:  A unique identifier for the text detection job. The <code>JobId</code> is returned from <code>StartDocumentTextDetection</code>. A <code>JobId</code> value is only valid for 7 days.<br/>
        :return: DetectDocumentTextModelVersion:  <p/><br/>StatusMessage:  Returns if the detection job could not be completed. Contains explanation for what error occured. <br/>Warnings:  A list of warnings that occurred during the text-detection operation for the document.<br/>Blocks:  The results of the text-detection operation.<br/>NextToken:  If the response is truncated, Amazon Textract returns this token. You can use this token in the subsequent request to retrieve the next set of text-detection results.<br/>JobStatus:  The current status of the text detection job.<br/>DocumentMetadata:  Information about a document that Amazon Textract processed. <code>DocumentMetadata</code> is returned in every page of paginated responses from an Amazon Textract video operation.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Pages</i> The number of pages that are detected in the document.<br/>        """
        pass

    def start_document_analysis(self, FeatureTypes: List[FeatureType], DocumentLocation: DocumentLocation, ClientRequestToken: str=None, JobTag: str=None, NotificationChannel: NotificationChannel=None, OutputConfig: OutputConfig=None, KMSKeyId: str=None) -> StartDocumentAnalysisResponse:
        r"""Starts the asynchronous analysis of an input document for relationships between detected items such as key-value pairs, tables, and selection elements.  <code>StartDocumentAnalysis</code> can analyze text in documents that are in JPEG, PNG, and PDF format. The documents are stored in an Amazon S3 bucket. Use <a>DocumentLocation</a> to specify the bucket name and file name of the document.   <code>StartDocumentAnalysis</code> returns a job identifier (<code>JobId</code>) that you use to get the results of the operation. When text analysis is finished, Amazon Textract publishes a completion status to the Amazon Simple Notification Service (Amazon SNS) topic that you specify in <code>NotificationChannel</code>. To get the results of the text analysis operation, first check that the status value published to the Amazon SNS topic is <code>SUCCEEDED</code>. If so, call <a>GetDocumentAnalysis</a>, and pass the job identifier (<code>JobId</code>) from the initial call to <code>StartDocumentAnalysis</code>. For more information, see <a href="https://docs.aws.amazon.com/textract/latest/dg/how-it-works-analyzing.html">Document Text Analysis</a>.

        :param self:
        :param KMSKeyId:  The KMS key used to encrypt the inference results. This can be in either Key ID or Key Alias format. When a KMS key is provided, the KMS key will be used for server-side encryption of the objects in the customer bucket. When this parameter is not enabled, the result will be encrypted server side,using SSE-S3.<br/>OutputConfig:  Sets if the output will go to a customer defined bucket. By default, Amazon Textract will save the results internally to be accessed by the GetDocumentAnalysis operation.:<br/>NotificationChannel:  The Amazon SNS topic ARN that you want Amazon Textract to publish the completion status of the operation to. :<br/>JobTag:  An identifier that you specify that's included in the completion notification published to the Amazon SNS topic. For example, you can use <code>JobTag</code> to identify the type of document that the completion notification corresponds to (such as a tax form or a receipt).<br/>ClientRequestToken:  The idempotent token that you use to identify the start request. If you use the same token with multiple <code>StartDocumentAnalysis</code> requests, the same <code>JobId</code> is returned. Use <code>ClientRequestToken</code> to prevent the same job from being accidentally started more than once. For more information, see <a href="https://docs.aws.amazon.com/textract/latest/dg/api-async.html">Calling Amazon Textract Asynchronous Operations</a>.<br/>FeatureTypes:  A list of the types of analysis to perform. Add TABLES to the list to return information about the tables that are detected in the input document. Add FORMS to return detected form data. To perform both types of analysis, add TABLES and FORMS to <code>FeatureTypes</code>. All lines and words detected in the document are included in the response (including text that isn't related to the value of <code>FeatureTypes</code>). <br/>DocumentLocation:  The location of the document to be processed.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Object</i> The Amazon S3 bucket that contains the input document.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3Object</b>: The Amazon S3 bucket that contains the input document.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> If the bucket has versioning enabled, you can specify the object version. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The file name of the input document. Synchronous operations can use image files that are in JPEG or PNG format. Asynchronous operations also support PDF format files.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i> The name of the S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The Amazon Resource Name (ARN) of an IAM role that gives Amazon Textract publishing permissions to the Amazon SNS topic. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SNSTopicArn</i> The Amazon SNS topic that Amazon Textract posts the completion status to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Prefix</i> The prefix of the object key that the output will be saved to. When not enabled, the prefix will be “textract_output".<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Bucket</i> The name of the bucket your output will go to.<br/>
        :return: JobId:  The identifier for the document text detection job. Use <code>JobId</code> to identify the job in a subsequent call to <code>GetDocumentAnalysis</code>. A <code>JobId</code> value is only valid for 7 days.<br/>        """
        pass

    def start_document_text_detection(self, DocumentLocation: DocumentLocation, ClientRequestToken: str=None, JobTag: str=None, NotificationChannel: NotificationChannel=None, OutputConfig: OutputConfig=None, KMSKeyId: str=None) -> StartDocumentTextDetectionResponse:
        r"""Starts the asynchronous detection of text in a document. Amazon Textract can detect lines of text and the words that make up a line of text.  <code>StartDocumentTextDetection</code> can analyze text in documents that are in JPEG, PNG, and PDF format. The documents are stored in an Amazon S3 bucket. Use <a>DocumentLocation</a> to specify the bucket name and file name of the document.   <code>StartTextDetection</code> returns a job identifier (<code>JobId</code>) that you use to get the results of the operation. When text detection is finished, Amazon Textract publishes a completion status to the Amazon Simple Notification Service (Amazon SNS) topic that you specify in <code>NotificationChannel</code>. To get the results of the text detection operation, first check that the status value published to the Amazon SNS topic is <code>SUCCEEDED</code>. If so, call <a>GetDocumentTextDetection</a>, and pass the job identifier (<code>JobId</code>) from the initial call to <code>StartDocumentTextDetection</code>. For more information, see <a href="https://docs.aws.amazon.com/textract/latest/dg/how-it-works-detecting.html">Document Text Detection</a>.

        :param self:
        :param KMSKeyId:  The KMS key used to encrypt the inference results. This can be in either Key ID or Key Alias format. When a KMS key is provided, the KMS key will be used for server-side encryption of the objects in the customer bucket. When this parameter is not enabled, the result will be encrypted server side,using SSE-S3.<br/>OutputConfig:  Sets if the output will go to a customer defined bucket. By default Amazon Textract will save the results internally to be accessed with the GetDocumentTextDetection operation.:<br/>NotificationChannel:  The Amazon SNS topic ARN that you want Amazon Textract to publish the completion status of the operation to. :<br/>JobTag:  An identifier that you specify that's included in the completion notification published to the Amazon SNS topic. For example, you can use <code>JobTag</code> to identify the type of document that the completion notification corresponds to (such as a tax form or a receipt).<br/>ClientRequestToken:  The idempotent token that's used to identify the start request. If you use the same token with multiple <code>StartDocumentTextDetection</code> requests, the same <code>JobId</code> is returned. Use <code>ClientRequestToken</code> to prevent the same job from being accidentally started more than once. For more information, see <a href="https://docs.aws.amazon.com/textract/latest/dg/api-async.html">Calling Amazon Textract Asynchronous Operations</a>.<br/>DocumentLocation:  The location of the document to be processed.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Object</i> The Amazon S3 bucket that contains the input document.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>S3Object</b>: The Amazon S3 bucket that contains the input document.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> If the bucket has versioning enabled, you can specify the object version. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The file name of the input document. Synchronous operations can use image files that are in JPEG or PNG format. Asynchronous operations also support PDF format files.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Bucket</i> The name of the S3 bucket.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RoleArn</i> The Amazon Resource Name (ARN) of an IAM role that gives Amazon Textract publishing permissions to the Amazon SNS topic. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SNSTopicArn</i> The Amazon SNS topic that Amazon Textract posts the completion status to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Prefix</i> The prefix of the object key that the output will be saved to. When not enabled, the prefix will be “textract_output".<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Bucket</i> The name of the bucket your output will go to.<br/>
        :return: JobId:  The identifier of the text detection job for the document. Use <code>JobId</code> to identify the job in a subsequent call to <code>GetDocumentTextDetection</code>. A <code>JobId</code> value is only valid for 7 days.<br/>        """
        pass





class TimestreamQuery(BaseClient):
    r""" """


    class QueryPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `query` for valid parameters"""
            pass


    class CancelQueryRequest(Mapping):
        pass
    
    class CancelQueryResponse(Mapping):
        pass
    
    class DescribeEndpointsRequest(Mapping):
        pass
    
    class DescribeEndpointsResponse(Mapping):
        pass
    
    class QueryRequest(Mapping):
        pass
    
    class QueryResponse(Mapping):
        pass
    
    def cancel_query(self, QueryId: str) -> CancelQueryResponse:
        r""" Cancels a query that has been issued. Cancellation is guaranteed only if the query has not completed execution before the cancellation request was issued. Because cancellation is an idempotent operation, subsequent cancellation requests will return a <code>CancellationMessage</code>, indicating that the query has already been canceled. 

        :param self:
        :param QueryId:   The id of the query that needs to be cancelled. <code>QueryID</code> is returned as part of QueryResult. <br/>
        :return: CancellationMessage:   A <code>CancellationMessage</code> is returned when a <code>CancelQuery</code> request for the query specified by <code>QueryId</code> has already been issued. <br/>        """
        pass

    def describe_endpoints(self) -> DescribeEndpointsResponse:
        r"""DescribeEndpoints returns a list of available endpoints to make Timestream API calls against. This API is available through both Write and Query. Because Timestream’s SDKs are designed to transparently work with the service’s architecture, including the management and mapping of the service endpoints, <i>it is not recommended that you use this API unless</i>: <ul> <li> Your application uses a programming language that does not yet have SDK support </li> <li> You require better control over the client-side implementation </li> </ul> For detailed information on how to use DescribeEndpoints, see <a href="https://docs.aws.amazon.com/timestream/latest/developerguide/Using-API.endpoint-discovery.html">The Endpoint Discovery Pattern and REST APIs</a>.

        :param self:
        :param 
        :return: Endpoints:  An <code>Endpoints</code> object is returned when a <code>DescribeEndpoints</code> request is made.<br/>        """
        pass

    def query(self, QueryString: str, ClientToken: str=None, NextToken: str=None, MaxRows: int=None) -> QueryResponse:
        r""" Query is a synchronous operation that enables you to execute a query. Query will timeout after 60 seconds. You must update the default timeout in the SDK to support a timeout of 60 seconds. The result set will be truncated to 1MB. Service quotas apply. For more information, see Quotas in the Timestream Developer Guide. 

        :param self:
        :param MaxRows:   The total number of rows to return in the output. If the total number of rows available is more than the value specified, a NextToken is provided in the command's output. To resume pagination, provide the NextToken value in the starting-token argument of a subsequent command. <br/>NextToken:   A pagination token passed to get a set of results. <br/>ClientToken:   Unique, case-sensitive string of up to 64 ASCII characters that you specify when you make a Query request. Providing a <code>ClientToken</code> makes the call to <code>Query</code> idempotent, meaning that multiple identical calls have the same effect as one single call.  Your query request will fail in the following cases: <ul> <li>  If you submit a request with the same client token outside the 5-minute idepotency window.  </li> <li>  If you submit a request with the same client token but a change in other parameters within the 5-minute idempotency window.  </li> </ul>  After 4 hours, any request with the same client token is treated as a new request. <br/>QueryString:   The query to be executed by Timestream. <br/>
        :return: QueryStatus:  Information about the status of the query, including progress and bytes scannned.:<br/>ColumnInfo:   The column data types of the returned result set. <br/>Rows:   The result set rows returned by the query. <br/>NextToken:   A pagination token that can be used again on a <code>Query</code> call to get the next set of results. <br/>QueryId:   A unique ID for the given query. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CumulativeBytesMetered</i> The amount of data scanned by the query in bytes that you will be charged for. This is a cumulative sum and represents the total amount of data that you will be charged for since the query was started. The charge is applied only once and is either applied when the query completes execution or when the query is cancelled. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CumulativeBytesScanned</i> The amount of data scanned by the query in bytes. This is a cumulative sum and represents the total amount of bytes scanned since the query was started. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProgressPercentage</i> The progress of the query, expressed as a percentage.<br/>        """
        pass





class TimestreamWrite(BaseClient):
    r"""Amazon Timestream is a fast, scalable, fully managed time series database service that makes it easy to store and analyze trillions of time series data points per day. With Timestream, you can easily store and analyze IoT sensor data to derive insights from your IoT applications. You can analyze industrial telemetry to streamline equipment management and maintenance. You can also store and analyze log data and metrics to improve the performance and availability of your applications. Timestream is built from the ground up to effectively ingest, process, and store time series data. It organizes data to optimize query processing. It automatically scales based on the volume of data ingested and on the query volume to ensure you receive optimal performance while inserting and querying data. As your data grows over time, Timestream’s adaptive query processing engine spans across storage tiers to provide fast analysis while reducing costs."""




    class CreateDatabaseRequest(Mapping):
        pass
    
    class CreateDatabaseResponse(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class CreateTableRequest(Mapping):
        pass
    
    class CreateTableResponse(Mapping):
        pass
    
    class RetentionProperties(Mapping):
        pass
    
    class DeleteDatabaseRequest(Mapping):
        pass
    
    class DeleteTableRequest(Mapping):
        pass
    
    class DescribeDatabaseRequest(Mapping):
        pass
    
    class DescribeDatabaseResponse(Mapping):
        pass
    
    class DescribeEndpointsRequest(Mapping):
        pass
    
    class DescribeEndpointsResponse(Mapping):
        pass
    
    class DescribeTableRequest(Mapping):
        pass
    
    class DescribeTableResponse(Mapping):
        pass
    
    class ListDatabasesRequest(Mapping):
        pass
    
    class ListDatabasesResponse(Mapping):
        pass
    
    class ListTablesRequest(Mapping):
        pass
    
    class ListTablesResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateDatabaseRequest(Mapping):
        pass
    
    class UpdateDatabaseResponse(Mapping):
        pass
    
    class UpdateTableRequest(Mapping):
        pass
    
    class UpdateTableResponse(Mapping):
        pass
    
    class WriteRecordsRequest(Mapping):
        pass
    
    class Record(Mapping):
        pass
    
    def create_database(self, DatabaseName: str, KmsKeyId: str=None, Tags: List[Tag]=None) -> CreateDatabaseResponse:
        r"""Creates a new Timestream database. If the KMS key is not specified, the database will be encrypted with a Timestream managed KMS key located in your account. Refer to <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk">AWS managed KMS keys</a> for more info. Service quotas apply. For more information, see <a href="https://docs.aws.amazon.com/timestream/latest/developerguide/ts-limits.html">Access Management</a> in the Timestream Developer Guide. 

        :param self:
        :param Tags:   A list of key-value pairs to label the table. <br/>KmsKeyId:  The KMS key for the database. If the KMS key is not specified, the database will be encrypted with a Timestream managed KMS key located in your account. Refer to <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk">AWS managed KMS keys</a> for more info.<br/>DatabaseName:  The name of the Timestream database.<br/>
        :return: Database:  The newly created Timestream database.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdatedTime</i>  The last time that this database was updated. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The time when the database was created, calculated from the Unix epoch time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The identifier of the KMS key used to encrypt the data stored in the database.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TableCount</i> The total number of tables found within a Timestream database. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> The name of the Timestream database.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name that uniquely identifies this database.<br/>        """
        pass

    def create_table(self, TableName: str, DatabaseName: str, RetentionProperties: RetentionProperties=None, Tags: List[Tag]=None) -> CreateTableResponse:
        r"""The CreateTable operation adds a new table to an existing database in your account. In an AWS account, table names must be at least unique within each Region if they are in the same database. You may have identical table names in the same Region if the tables are in seperate databases. While creating the table, you must specify the table name, database name, and the retention properties. Service quotas apply. For more information, see <a href="https://docs.aws.amazon.com/timestream/latest/developerguide/ts-limits.html">Access Management</a> in the Timestream Developer Guide. 

        :param self:
        :param Tags:   A list of key-value pairs to label the table. <br/>RetentionProperties:  The duration for which your time series data must be stored in the memory store and the magnetic store.:<br/>TableName:  The name of the Timestream table.<br/>DatabaseName:  The name of the Timestream database.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MagneticStoreRetentionPeriodInDays</i> The duration for which data must be stored in the magnetic store. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MemoryStoreRetentionPeriodInHours</i> The duration for which data must be stored in the memory store. <br/>
        :return: Table:  The newly created Timestream table.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdatedTime</i> The time when the Timestream table was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The time when the Timestream table was created. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RetentionProperties</i> The retention duration for the memory store and magnetic store.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RetentionProperties</b>: The retention duration for the memory store and magnetic store.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TableStatus</i> The current state of the table: <ul> <li>  <code>DELETING</code> - The table is being deleted. </li> <li>  <code>ACTIVE</code> - The table is ready for use. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> The name of the Timestream database that contains this table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TableName</i> The name of the Timestream table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name that uniquely identifies this table.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MagneticStoreRetentionPeriodInDays</i> The duration for which data must be stored in the magnetic store. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MemoryStoreRetentionPeriodInHours</i> The duration for which data must be stored in the memory store. <br/>        """
        pass

    def delete_database(self, DatabaseName: str):
        r"""Deletes a given Timestream database. <i>This is an irreversible operation. After a database is deleted, the time series data from its tables cannot be recovered.</i>  All tables in the database must be deleted first, or a ValidationException error will be thrown.  Due to the nature of distributed retries, the operation can return either success or a ResourceNotFoundException. Clients should consider them equivalent.

        :param self:
        :param DatabaseName:  The name of the Timestream database to be deleted.<br/>
        :return:         """
        pass

    def delete_table(self, TableName: str, DatabaseName: str):
        r"""Deletes a given Timestream table. This is an irreversible operation. After a Timestream database table is deleted, the time series data stored in the table cannot be recovered.  Due to the nature of distributed retries, the operation can return either success or a ResourceNotFoundException. Clients should consider them equivalent.

        :param self:
        :param TableName:  The name of the Timestream table to be deleted.<br/>DatabaseName:  The name of the database where the Timestream database is to be deleted.<br/>
        :return:         """
        pass

    def describe_database(self, DatabaseName: str) -> DescribeDatabaseResponse:
        r"""Returns information about the database, including the database name, time that the database was created, and the total number of tables found within the database. Service quotas apply. For more information, see <a href="https://docs.aws.amazon.com/timestream/latest/developerguide/ts-limits.html">Access Management</a> in the Timestream Developer Guide.

        :param self:
        :param DatabaseName:  The name of the Timestream database.<br/>
        :return: Database:  The name of the Timestream table.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdatedTime</i>  The last time that this database was updated. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The time when the database was created, calculated from the Unix epoch time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The identifier of the KMS key used to encrypt the data stored in the database.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TableCount</i> The total number of tables found within a Timestream database. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> The name of the Timestream database.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name that uniquely identifies this database.<br/>        """
        pass

    def describe_endpoints(self) -> DescribeEndpointsResponse:
        r"""DescribeEndpoints returns a list of available endpoints to make Timestream API calls against. This API is available through both Write and Query. Because Timestream’s SDKs are designed to transparently work with the service’s architecture, including the management and mapping of the service endpoints, <i>it is not recommended that you use this API unless</i>: <ul> <li> Your application uses a programming language that does not yet have SDK support </li> <li> You require better control over the client-side implementation </li> </ul> For detailed information on how to use DescribeEndpoints, see <a href="https://docs.aws.amazon.com/timestream/latest/developerguide/Using-API.endpoint-discovery.html">The Endpoint Discovery Pattern and REST APIs</a>.

        :param self:
        :param 
        :return: Endpoints:  An <code>Endpoints</code> object is returned when a <code>DescribeEndpoints</code> request is made.<br/>        """
        pass

    def describe_table(self, TableName: str, DatabaseName: str) -> DescribeTableResponse:
        r"""Returns information about the table, including the table name, database name, retention duration of the memory store and the magnetic store. Service quotas apply. For more information, see <a href="https://docs.aws.amazon.com/timestream/latest/developerguide/ts-limits.html">Access Management</a> in the Timestream Developer Guide. 

        :param self:
        :param TableName:  The name of the Timestream table.<br/>DatabaseName:  The name of the Timestream database.<br/>
        :return: Table:  The Timestream table.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdatedTime</i> The time when the Timestream table was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The time when the Timestream table was created. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RetentionProperties</i> The retention duration for the memory store and magnetic store.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RetentionProperties</b>: The retention duration for the memory store and magnetic store.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TableStatus</i> The current state of the table: <ul> <li>  <code>DELETING</code> - The table is being deleted. </li> <li>  <code>ACTIVE</code> - The table is ready for use. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> The name of the Timestream database that contains this table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TableName</i> The name of the Timestream table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name that uniquely identifies this table.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MagneticStoreRetentionPeriodInDays</i> The duration for which data must be stored in the magnetic store. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MemoryStoreRetentionPeriodInHours</i> The duration for which data must be stored in the memory store. <br/>        """
        pass

    def list_databases(self, NextToken: str=None, MaxResults: int=None) -> ListDatabasesResponse:
        r"""Returns a list of your Timestream databases. Service quotas apply. For more information, see <a href="https://docs.aws.amazon.com/timestream/latest/developerguide/ts-limits.html">Access Management</a> in the Timestream Developer Guide. 

        :param self:
        :param MaxResults:  The total number of items to return in the output. If the total number of items available is more than the value specified, a NextToken is provided in the output. To resume pagination, provide the NextToken value as argument of a subsequent API invocation.<br/>NextToken:  The pagination token. To resume pagination, provide the NextToken value as argument of a subsequent API invocation.<br/>
        :return: NextToken:  The pagination token. This parameter is returned when the response is truncated.<br/>Databases:  A list of database names.<br/>        """
        pass

    def list_tables(self, DatabaseName: str=None, NextToken: str=None, MaxResults: int=None) -> ListTablesResponse:
        r"""A list of tables, along with the name, status and retention properties of each table. 

        :param self:
        :param MaxResults:  The total number of items to return in the output. If the total number of items available is more than the value specified, a NextToken is provided in the output. To resume pagination, provide the NextToken value as argument of a subsequent API invocation.<br/>NextToken:  The pagination token. To resume pagination, provide the NextToken value as argument of a subsequent API invocation.<br/>DatabaseName:  The name of the Timestream database.<br/>
        :return: NextToken:  A token to specify where to start paginating. This is the NextToken from a previously truncated response.<br/>Tables:  A list of tables.<br/>        """
        pass

    def list_tags_for_resource(self, ResourceARN: str) -> ListTagsForResourceResponse:
        r""" List all tags on a Timestream resource. 

        :param self:
        :param ResourceARN:   The Timestream resource with tags to be listed. This value is an Amazon Resource Name (ARN). <br/>
        :return: Tags:   The tags currently associated with the Timestream resource. <br/>        """
        pass

    def tag_resource(self, Tags: List[Tag], ResourceARN: str) -> TagResourceResponse:
        r""" Associate a set of tags with a Timestream resource. You can then activate these user-defined tags so that they appear on the Billing and Cost Management console for cost allocation tracking. 

        :param self:
        :param Tags:   The tags to be assigned to the Timestream resource. <br/>ResourceARN:   Identifies the Timestream resource to which tags should be added. This value is an Amazon Resource Name (ARN). <br/>
        :return:         """
        pass

    def untag_resource(self, TagKeys: List[TagKey], ResourceARN: str) -> UntagResourceResponse:
        r""" Removes the association of tags from a Timestream resource. 

        :param self:
        :param TagKeys:   A list of tags keys. Existing tags of the resource whose keys are members of this list will be removed from the Timestream resource. <br/>ResourceARN:   The Timestream resource that the tags will be removed from. This value is an Amazon Resource Name (ARN). <br/>
        :return:         """
        pass

    def update_database(self, KmsKeyId: str, DatabaseName: str) -> UpdateDatabaseResponse:
        r""" Modifies the KMS key for an existing database. While updating the database, you must specify the database name and the identifier of the new KMS key to be used (<code>KmsKeyId</code>). If there are any concurrent <code>UpdateDatabase</code> requests, first writer wins. 

        :param self:
        :param KmsKeyId:   The identifier of the new KMS key (<code>KmsKeyId</code>) to be used to encrypt the data stored in the database. If the <code>KmsKeyId</code> currently registered with the database is the same as the <code>KmsKeyId</code> in the request, there will not be any update.  You can specify the <code>KmsKeyId</code> using any of the following: <ul> <li> Key ID: <code>1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> <li> Key ARN: <code>arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab</code>  </li> <li> Alias name: <code>alias/ExampleAlias</code>  </li> <li> Alias ARN: <code>arn:aws:kms:us-east-1:111122223333:alias/ExampleAlias</code>  </li> </ul><br/>DatabaseName:   The name of the database. <br/>
        :return: Database:  A top level container for a table. Databases and tables are the fundamental management concepts in Amazon Timestream. All tables in a database are encrypted with the same KMS key.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdatedTime</i>  The last time that this database was updated. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The time when the database was created, calculated from the Unix epoch time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KmsKeyId</i> The identifier of the KMS key used to encrypt the data stored in the database.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TableCount</i> The total number of tables found within a Timestream database. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> The name of the Timestream database.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name that uniquely identifies this database.<br/>        """
        pass

    def update_table(self, RetentionProperties: RetentionProperties, TableName: str, DatabaseName: str) -> UpdateTableResponse:
        r"""Modifies the retention duration of the memory store and magnetic store for your Timestream table. Note that the change in retention duration takes effect immediately. For example, if the retention period of the memory store was initially set to 2 hours and then changed to 24 hours, the memory store will be capable of holding 24 hours of data, but will be populated with 24 hours of data 22 hours after this change was made. Timestream does not retrieve data from the magnetic store to populate the memory store.  Service quotas apply. For more information, see <a href="https://docs.aws.amazon.com/timestream/latest/developerguide/ts-limits.html">Access Management</a> in the Timestream Developer Guide.

        :param self:
        :param RetentionProperties:  The retention duration of the memory store and the magnetic store.:<br/>TableName:  The name of the Timesream table.<br/>DatabaseName:  The name of the Timestream database.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MagneticStoreRetentionPeriodInDays</i> The duration for which data must be stored in the magnetic store. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MemoryStoreRetentionPeriodInHours</i> The duration for which data must be stored in the memory store. <br/>
        :return: Table:  The updated Timestream table.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdatedTime</i> The time when the Timestream table was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The time when the Timestream table was created. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RetentionProperties</i> The retention duration for the memory store and magnetic store.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RetentionProperties</b>: The retention duration for the memory store and magnetic store.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TableStatus</i> The current state of the table: <ul> <li>  <code>DELETING</code> - The table is being deleted. </li> <li>  <code>ACTIVE</code> - The table is ready for use. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DatabaseName</i> The name of the Timestream database that contains this table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TableName</i> The name of the Timestream table.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name that uniquely identifies this table.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MagneticStoreRetentionPeriodInDays</i> The duration for which data must be stored in the magnetic store. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MemoryStoreRetentionPeriodInHours</i> The duration for which data must be stored in the memory store. <br/>        """
        pass

    def write_records(self, Records: List[Record], TableName: str, DatabaseName: str, CommonAttributes: Record=None):
        r"""The WriteRecords operation enables you to write your time series data into Timestream. You can specify a single data point or a batch of data points to be inserted into the system. Timestream offers you with a flexible schema that auto detects the column names and data types for your Timestream tables based on the dimension names and data types of the data points you specify when invoking writes into the database. Timestream support eventual consistency read semantics. This means that when you query data immediately after writing a batch of data into Timestream, the query results might not reflect the results of a recently completed write operation. The results may also include some stale data. If you repeat the query request after a short time, the results should return the latest data. Service quotas apply. For more information, see <a href="https://docs.aws.amazon.com/timestream/latest/developerguide/ts-limits.html">Access Management</a> in the Timestream Developer Guide. 

        :param self:
        :param Records:  An array of records containing the unique dimension and measure attributes for each time series data point. <br/>CommonAttributes:  A record containing the common measure and dimension attributes shared across all the records in the request. The measure and dimension attributes specified in here will be merged with the measure and dimension attributes in the records object when the data is written into Timestream. :<br/>TableName:  The name of the Timesream table.<br/>DatabaseName:  The name of the Timestream database.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> 64-bit attribute used for record updates. Write requests for duplicate data with a higher version number will update the existing measure value and version. In cases where the measure value is the same, <code>Version</code> will still be updated . Default value is to 1.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TimeUnit</i>  The granularity of the timestamp unit. It indicates if the time value is in seconds, milliseconds, nanoseconds or other supported values. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Time</i>  Contains the time at which the measure value for the data point was collected. The time value plus the unit provides the time elapsed since the epoch. For example, if the time value is <code>12345</code> and the unit is <code>ms</code>, then <code>12345 ms</code> have elapsed since the epoch. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MeasureValueType</i>  Contains the data type of the measure value for the time series data point. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MeasureValue</i>  Contains the measure value for the time series data point. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MeasureName</i> Measure represents the data attribute of the time series. For example, the CPU utilization of an EC2 instance or the RPM of a wind turbine are measures. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Dimensions</i> Contains the list of dimensions for time series data points.<br/>
        :return:         """
        pass





class TranscribeService(BaseClient):
    r"""Operations and objects for transcribing speech to text."""




    class CreateLanguageModelRequest(Mapping):
        pass
    
    class CreateLanguageModelResponse(Mapping):
        pass
    
    class InputDataConfig(Mapping):
        pass
    
    class CreateMedicalVocabularyRequest(Mapping):
        pass
    
    class CreateMedicalVocabularyResponse(Mapping):
        pass
    
    class CreateVocabularyRequest(Mapping):
        pass
    
    class CreateVocabularyResponse(Mapping):
        pass
    
    class Phrase(object):
        pass
    
    class CreateVocabularyFilterRequest(Mapping):
        pass
    
    class CreateVocabularyFilterResponse(Mapping):
        pass
    
    class Word(object):
        pass
    
    class DeleteLanguageModelRequest(Mapping):
        pass
    
    class DeleteMedicalTranscriptionJobRequest(Mapping):
        pass
    
    class DeleteMedicalVocabularyRequest(Mapping):
        pass
    
    class DeleteTranscriptionJobRequest(Mapping):
        pass
    
    class DeleteVocabularyRequest(Mapping):
        pass
    
    class DeleteVocabularyFilterRequest(Mapping):
        pass
    
    class DescribeLanguageModelRequest(Mapping):
        pass
    
    class DescribeLanguageModelResponse(Mapping):
        pass
    
    class GetMedicalTranscriptionJobRequest(Mapping):
        pass
    
    class GetMedicalTranscriptionJobResponse(Mapping):
        pass
    
    class GetMedicalVocabularyRequest(Mapping):
        pass
    
    class GetMedicalVocabularyResponse(Mapping):
        pass
    
    class GetTranscriptionJobRequest(Mapping):
        pass
    
    class GetTranscriptionJobResponse(Mapping):
        pass
    
    class GetVocabularyRequest(Mapping):
        pass
    
    class GetVocabularyResponse(Mapping):
        pass
    
    class GetVocabularyFilterRequest(Mapping):
        pass
    
    class GetVocabularyFilterResponse(Mapping):
        pass
    
    class ListLanguageModelsRequest(Mapping):
        pass
    
    class ListLanguageModelsResponse(Mapping):
        pass
    
    class ListMedicalTranscriptionJobsRequest(Mapping):
        pass
    
    class ListMedicalTranscriptionJobsResponse(Mapping):
        pass
    
    class ListMedicalVocabulariesRequest(Mapping):
        pass
    
    class ListMedicalVocabulariesResponse(Mapping):
        pass
    
    class ListTranscriptionJobsRequest(Mapping):
        pass
    
    class ListTranscriptionJobsResponse(Mapping):
        pass
    
    class ListVocabulariesRequest(Mapping):
        pass
    
    class ListVocabulariesResponse(Mapping):
        pass
    
    class ListVocabularyFiltersRequest(Mapping):
        pass
    
    class ListVocabularyFiltersResponse(Mapping):
        pass
    
    class StartMedicalTranscriptionJobRequest(Mapping):
        pass
    
    class StartMedicalTranscriptionJobResponse(Mapping):
        pass
    
    class Media(Mapping):
        pass
    
    class MedicalTranscriptionSetting(Mapping):
        pass
    
    class StartTranscriptionJobRequest(Mapping):
        pass
    
    class StartTranscriptionJobResponse(Mapping):
        pass
    
    class Settings(Mapping):
        pass
    
    class ModelSettings(Mapping):
        pass
    
    class JobExecutionSettings(Mapping):
        pass
    
    class ContentRedaction(Mapping):
        pass
    
    class Boolean(object):
        pass
    
    class LanguageCode(object):
        pass
    
    class UpdateMedicalVocabularyRequest(Mapping):
        pass
    
    class UpdateMedicalVocabularyResponse(Mapping):
        pass
    
    class UpdateVocabularyRequest(Mapping):
        pass
    
    class UpdateVocabularyResponse(Mapping):
        pass
    
    class UpdateVocabularyFilterRequest(Mapping):
        pass
    
    class UpdateVocabularyFilterResponse(Mapping):
        pass
    
    def create_language_model(self, InputDataConfig: InputDataConfig, ModelName: str, BaseModelName: str, LanguageCode: str) -> CreateLanguageModelResponse:
        r"""Creates a new custom language model. Use Amazon S3 prefixes to provide the location of your input files. The time it takes to create your model depends on the size of your training data.

        :param self:
        :param InputDataConfig:  Contains the data access role and the Amazon S3 prefixes to read the required input files to create a custom language model.:<br/>ModelName:  The name you choose for your custom language model when you create it.<br/>BaseModelName:  The Amazon Transcribe standard language model, or base model used to create your custom language model. If you want to use your custom language model to transcribe audio with a sample rate of 16 kHz or greater, choose <code>Wideband</code>. If you want to use your custom language model to transcribe audio with a sample rate that is less than 16 kHz, choose <code>Narrowband</code>.<br/>LanguageCode:  The language of the input text you're using to train your custom language model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataAccessRoleArn</i> The Amazon Resource Name (ARN) that uniquely identifies the permissions you've given Amazon Transcribe to access your Amazon S3 buckets containing your media files or text data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TuningDataS3Uri</i> The Amazon S3 prefix you specify to access the plain text files that you use to tune your custom language model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Uri</i> The Amazon S3 prefix you specify to access the plain text files that you use to train your custom language model.<br/>
        :return: ModelStatus:  The status of the custom language model. When the status is <code>COMPLETED</code> the model is ready to use.<br/>InputDataConfig:  The data access role and Amazon S3 prefixes you've chosen to create your custom language model.:<br/>ModelName:  The name you've chosen for your custom language model.<br/>BaseModelName:  The Amazon Transcribe standard language model, or base model you've used to create a custom language model.<br/>LanguageCode:  The language code of the text you've used to create a custom language model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataAccessRoleArn</i> The Amazon Resource Name (ARN) that uniquely identifies the permissions you've given Amazon Transcribe to access your Amazon S3 buckets containing your media files or text data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TuningDataS3Uri</i> The Amazon S3 prefix you specify to access the plain text files that you use to tune your custom language model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Uri</i> The Amazon S3 prefix you specify to access the plain text files that you use to train your custom language model.<br/>        """
        pass

    def create_medical_vocabulary(self, VocabularyFileUri: str, LanguageCode: str, VocabularyName: str) -> CreateMedicalVocabularyResponse:
        r"""Creates a new custom vocabulary that you can use to change how Amazon Transcribe Medical transcribes your audio file.

        :param self:
        :param VocabularyFileUri:  The location in Amazon S3 of the text file you use to define your custom vocabulary. The URI must be in the same AWS Region as the resource that you're calling. Enter information about your <code>VocabularyFileUri</code> in the following format:  <code> https://s3.&lt;aws-region&gt;.amazonaws.com/&lt;bucket-name&gt;/&lt;keyprefix&gt;/&lt;objectkey&gt; </code>  The following is an example URI for a vocabulary file that is stored in Amazon S3:  <code>https://s3.us-east-1.amazonaws.com/AWSDOC-EXAMPLE-BUCKET/vocab.txt</code>  For more information about Amazon S3 object names, see <a href="http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMetadata.html#object-keys">Object Keys</a> in the <i>Amazon S3 Developer Guide</i>. For more information about custom vocabularies, see <a href="http://docs.aws.amazon.com/transcribe/latest/dg/how-it-works.html#how-vocabulary-med">Medical Custom Vocabularies</a>.<br/>LanguageCode:  The language code for the language used for the entries in your custom vocabulary. The language code of your custom vocabulary must match the language code of your transcription job. US English (en-US) is the only language code available for Amazon Transcribe Medical.<br/>VocabularyName:  The name of the custom vocabulary. This case-sensitive name must be unique within an AWS account. If you try to create a vocabulary with the same name as a previous vocabulary, you get a <code>ConflictException</code> error.<br/>
        :return: FailureReason:  If the <code>VocabularyState</code> field is <code>FAILED</code>, this field contains information about why the job failed.<br/>LastModifiedTime:  The date and time that you created the vocabulary.<br/>VocabularyState:  The processing state of your custom vocabulary in Amazon Transcribe Medical. If the state is <code>READY</code>, you can use the vocabulary in a <code>StartMedicalTranscriptionJob</code> request.<br/>LanguageCode:  The language code for the entries in your custom vocabulary. US English (en-US) is the only valid language code for Amazon Transcribe Medical.<br/>VocabularyName:  The name of the vocabulary. The name must be unique within an AWS account and is case sensitive.<br/>        """
        pass

    def create_vocabulary(self, LanguageCode: str, VocabularyName: str, Phrases: List[Phrase]=None, VocabularyFileUri: str=None) -> CreateVocabularyResponse:
        r"""Creates a new custom vocabulary that you can use to change the way Amazon Transcribe handles transcription of an audio file.

        :param self:
        :param VocabularyFileUri:  The S3 location of the text file that contains the definition of the custom vocabulary. The URI must be in the same region as the API endpoint that you are calling. The general form is  For more information about S3 object names, see <a href="http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMetadata.html#object-keys">Object Keys</a> in the <i>Amazon S3 Developer Guide</i>. For more information about custom vocabularies, see <a href="http://docs.aws.amazon.com/transcribe/latest/dg/how-vocabulary">Custom Vocabularies</a>.<br/>Phrases:  An array of strings that contains the vocabulary entries. <br/>LanguageCode:  The language code of the vocabulary entries. For a list of languages and their corresponding language codes, see <a>what-is-transcribe</a>.<br/>VocabularyName:  The name of the vocabulary. The name must be unique within an AWS account. The name is case sensitive. If you try to create a vocabulary with the same name as a previous vocabulary you will receive a <code>ConflictException</code> error.<br/>
        :return: FailureReason:  If the <code>VocabularyState</code> field is <code>FAILED</code>, this field contains information about why the job failed.<br/>LastModifiedTime:  The date and time that the vocabulary was created.<br/>VocabularyState:  The processing state of the vocabulary. When the <code>VocabularyState</code> field contains <code>READY</code> the vocabulary is ready to be used in a <code>StartTranscriptionJob</code> request.<br/>LanguageCode:  The language code of the vocabulary entries.<br/>VocabularyName:  The name of the vocabulary.<br/>        """
        pass

    def create_vocabulary_filter(self, LanguageCode: str, VocabularyFilterName: str, Words: List[Word]=None, VocabularyFilterFileUri: str=None) -> CreateVocabularyFilterResponse:
        r"""Creates a new vocabulary filter that you can use to filter words, such as profane words, from the output of a transcription job.

        :param self:
        :param VocabularyFilterFileUri:  The Amazon S3 location of a text file used as input to create the vocabulary filter. Only use characters from the character set defined for custom vocabularies. For a list of character sets, see <a href="https://docs.aws.amazon.com/transcribe/latest/dg/how-vocabulary.html#charsets">Character Sets for Custom Vocabularies</a>. The specified file must be less than 50 KB of UTF-8 characters. If you provide the location of a list of words in the <code>VocabularyFilterFileUri</code> parameter, you can't use the <code>Words</code> parameter.<br/>Words:  The words to use in the vocabulary filter. Only use characters from the character set defined for custom vocabularies. For a list of character sets, see <a href="https://docs.aws.amazon.com/transcribe/latest/dg/how-vocabulary.html#charsets">Character Sets for Custom Vocabularies</a>. If you provide a list of words in the <code>Words</code> parameter, you can't use the <code>VocabularyFilterFileUri</code> parameter.<br/>LanguageCode:  The language code of the words in the vocabulary filter. All words in the filter must be in the same language. The vocabulary filter can only be used with transcription jobs in the specified language.<br/>VocabularyFilterName:  The vocabulary filter name. The name must be unique within the account that contains it. If you try to create a vocabulary filter with the same name as another vocabulary filter, you get a <code>ConflictException</code> error.<br/>
        :return: LastModifiedTime:  The date and time that the vocabulary filter was modified.<br/>LanguageCode:  The language code of the words in the collection.<br/>VocabularyFilterName:  The name of the vocabulary filter.<br/>        """
        pass

    def delete_language_model(self, ModelName: str):
        r"""Deletes a custom language model using its name.

        :param self:
        :param ModelName:  The name of the model you're choosing to delete.<br/>
        :return:         """
        pass

    def delete_medical_transcription_job(self, MedicalTranscriptionJobName: str):
        r"""Deletes a transcription job generated by Amazon Transcribe Medical and any related information.

        :param self:
        :param MedicalTranscriptionJobName:  The name you provide to the <code>DeleteMedicalTranscriptionJob</code> object to delete a transcription job.<br/>
        :return:         """
        pass

    def delete_medical_vocabulary(self, VocabularyName: str):
        r"""Deletes a vocabulary from Amazon Transcribe Medical.

        :param self:
        :param VocabularyName:  The name of the vocabulary that you want to delete.<br/>
        :return:         """
        pass

    def delete_transcription_job(self, TranscriptionJobName: str):
        r"""Deletes a previously submitted transcription job along with any other generated results such as the transcription, models, and so on.

        :param self:
        :param TranscriptionJobName:  The name of the transcription job to be deleted.<br/>
        :return:         """
        pass

    def delete_vocabulary(self, VocabularyName: str):
        r"""Deletes a vocabulary from Amazon Transcribe. 

        :param self:
        :param VocabularyName:  The name of the vocabulary to delete. <br/>
        :return:         """
        pass

    def delete_vocabulary_filter(self, VocabularyFilterName: str):
        r"""Removes a vocabulary filter.

        :param self:
        :param VocabularyFilterName:  The name of the vocabulary filter to remove.<br/>
        :return:         """
        pass

    def describe_language_model(self, ModelName: str) -> DescribeLanguageModelResponse:
        r"""Gets information about a single custom language model. Use this information to see details about the language model in your AWS account. You can also see whether the base language model used to create your custom language model has been updated. If Amazon Transcribe has updated the base model, you can create a new custom language model using the updated base model. If the language model wasn't created, you can use this operation to understand why Amazon Transcribe couldn't create it. 

        :param self:
        :param ModelName:  The name of the custom language model you submit to get more information.<br/>
        :return: LanguageModel:  The name of the custom language model you requested more information about.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InputDataConfig</i> The data access role and Amazon S3 prefixes for the input files used to train the custom language model.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>InputDataConfig</b>: The data access role and Amazon S3 prefixes for the input files used to train the custom language model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FailureReason</i> The reason why the custom language model couldn't be created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UpgradeAvailability</i> Whether the base model used for the custom language model is up to date. If this field is <code>true</code> then you are running the most up-to-date version of the base model in your custom language model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ModelStatus</i> The creation status of a custom language model. When the status is <code>COMPLETED</code> the model is ready for use.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BaseModelName</i> The Amazon Transcribe standard language model, or base model used to create the custom language model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LanguageCode</i> The language code you used to create your custom language model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastModifiedTime</i> The most recent time the custom language model was modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreateTime</i> The time the custom language model was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ModelName</i> The name of the custom language model.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DataAccessRoleArn</i> The Amazon Resource Name (ARN) that uniquely identifies the permissions you've given Amazon Transcribe to access your Amazon S3 buckets containing your media files or text data.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TuningDataS3Uri</i> The Amazon S3 prefix you specify to access the plain text files that you use to tune your custom language model.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Uri</i> The Amazon S3 prefix you specify to access the plain text files that you use to train your custom language model.<br/>        """
        pass

    def get_medical_transcription_job(self, MedicalTranscriptionJobName: str) -> GetMedicalTranscriptionJobResponse:
        r"""Returns information about a transcription job from Amazon Transcribe Medical. To see the status of the job, check the <code>TranscriptionJobStatus</code> field. If the status is <code>COMPLETED</code>, the job is finished. You find the results of the completed job in the <code>TranscriptFileUri</code> field.

        :param self:
        :param MedicalTranscriptionJobName:  The name of the medical transcription job.<br/>
        :return: MedicalTranscriptionJob:  An object that contains the results of the medical transcription job.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of speech in the transcription job. <code>CONVERSATION</code> is generally used for patient-physician dialogues. <code>DICTATION</code> is the setting for physicians speaking their notes after seeing a patient. For more information, see <a>how-it-works-med</a> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Specialty</i> The medical specialty of any clinicians providing a dictation or having a conversation. <code>PRIMARYCARE</code> is the only available setting for this object. This specialty enables you to generate transcriptions for the following medical fields: <ul> <li> Family Medicine </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ContentIdentificationType</i> Shows the type of content that you've configured Amazon Transcribe Medical to identify in a transcription job. If the value is <code>PHI</code>, you've configured the job to identify personal health information (PHI) in the transcription output.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Settings</i> Object that contains object.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Settings</b>: Object that contains object.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FailureReason</i> If the <code>TranscriptionJobStatus</code> field is <code>FAILED</code>, this field contains information about why the job failed. The <code>FailureReason</code> field contains one of the following values: <ul> <li>  <code>Unsupported media format</code>- The media format specified in the <code>MediaFormat</code> field of the request isn't valid. See the description of the <code>MediaFormat</code> field for a list of valid values. </li> <li>  <code>The media format provided does not match the detected media format</code>- The media format of the audio file doesn't match the format specified in the <code>MediaFormat</code> field in the request. Check the media format of your media file and make sure the two values match. </li> <li>  <code>Invalid sample rate for audio file</code>- The sample rate specified in the <code>MediaSampleRateHertz</code> of the request isn't valid. The sample rate must be between 8000 and 48000 Hertz. </li> <li>  <code>The sample rate provided does not match the detected sample rate</code>- The sample rate in the audio file doesn't match the sample rate specified in the <code>MediaSampleRateHertz</code> field in the request. Check the sample rate of your media file and make sure that the two values match. </li> <li>  <code>Invalid file size: file size too large</code>- The size of your audio file is larger than what Amazon Transcribe Medical can process. For more information, see <a href="https://docs.aws.amazon.com/transcribe/latest/dg/limits-guidelines.html#limits">Guidelines and Quotas</a> in the <i>Amazon Transcribe Medical Guide</i>  </li> <li>  <code>Invalid number of channels: number of channels too large</code>- Your audio contains more channels than Amazon Transcribe Medical is configured to process. To request additional channels, see <a href="https://docs.aws.amazon.com/general/latest/gr/transcribe-medical.html">Amazon Transcribe Medical Endpoints and Quotas</a> in the <i>Amazon Web Services General Reference</i>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CompletionTime</i> A timestamp that shows when the job was completed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> A timestamp that shows when the job was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StartTime</i> A timestamp that shows when the job started processing.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Transcript</i> An object that contains the <code>MedicalTranscript</code>. The <code>MedicalTranscript</code> contains the <code>TranscriptFileUri</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Transcript</b>: An object that contains the <code>MedicalTranscript</code>. The <code>MedicalTranscript</code> contains the <code>TranscriptFileUri</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Media</i> Describes the input media file in a transcription request.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Media</b>: Describes the input media file in a transcription request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MediaFormat</i> The format of the input media file.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MediaSampleRateHertz</i> The sample rate, in Hertz, of the source audio containing medical information. If you don't specify the sample rate, Amazon Transcribe Medical determines it for you. If you choose to specify the sample rate, it must match the rate detected by Amazon Transcribe Medical. In most cases, you should leave the <code>MediaSampleHertz</code> blank and let Amazon Transcribe Medical determine the sample rate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LanguageCode</i> The language code for the language spoken in the source audio file. US English (en-US) is the only supported language for medical transcriptions. Any other value you enter for language code results in a <code>BadRequestException</code> error.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TranscriptionJobStatus</i> The completion status of a medical transcription job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MedicalTranscriptionJobName</i> The name for a given medical transcription job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MediaFileUri</i> The S3 object location of the input media file. The URI must be in the same region as the API endpoint that you are calling. The general form is: For example: For more information about S3 object names, see <a href="http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMetadata.html#object-keys">Object Keys</a> in the <i>Amazon S3 Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TranscriptFileUri</i> The S3 object location of the medical transcript. Use this URI to access the medical transcript. This URI points to the S3 bucket you created to store the medical transcript.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VocabularyName</i> The name of the vocabulary to use when processing a medical transcription job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxAlternatives</i> The maximum number of alternatives that you tell the service to return. If you specify the <code>MaxAlternatives</code> field, you must set the <code>ShowAlternatives</code> field to true.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ShowAlternatives</i> Determines whether alternative transcripts are generated along with the transcript that has the highest confidence. If you set <code>ShowAlternatives</code> field to true, you must also set the maximum number of alternatives to return in the <code>MaxAlternatives</code> field.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ChannelIdentification</i> Instructs Amazon Transcribe Medical to process each audio channel separately and then merge the transcription output of each channel into a single transcription. Amazon Transcribe Medical also produces a transcription of each item detected on an audio channel, including the start time and end time of the item and alternative transcriptions of item. The alternative transcriptions also come with confidence scores provided by Amazon Transcribe Medical. You can't set both <code>ShowSpeakerLabels</code> and <code>ChannelIdentification</code> in the same request. If you set both, your request returns a <code>BadRequestException</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxSpeakerLabels</i> The maximum number of speakers to identify in the input audio. If there are more speakers in the audio than this number, multiple speakers are identified as a single speaker. If you specify the <code>MaxSpeakerLabels</code> field, you must set the <code>ShowSpeakerLabels</code> field to true.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ShowSpeakerLabels</i> Determines whether the transcription job uses speaker recognition to identify different speakers in the input audio. Speaker recognition labels individual speakers in the audio file. If you set the <code>ShowSpeakerLabels</code> field to true, you must also set the maximum number of speaker labels in the <code>MaxSpeakerLabels</code> field. You can't set both <code>ShowSpeakerLabels</code> and <code>ChannelIdentification</code> in the same request. If you set both, your request returns a <code>BadRequestException</code>.<br/>        """
        pass

    def get_medical_vocabulary(self, VocabularyName: str) -> GetMedicalVocabularyResponse:
        r"""Retrieves information about a medical vocabulary.

        :param self:
        :param VocabularyName:  The name of the vocabulary that you want information about. The value is case sensitive. <br/>
        :return: DownloadUri:  The location in Amazon S3 where the vocabulary is stored. Use this URI to get the contents of the vocabulary. You can download your vocabulary from the URI for a limited time.<br/>FailureReason:  If the <code>VocabularyState</code> is <code>FAILED</code>, this field contains information about why the job failed.<br/>LastModifiedTime:  The date and time that the vocabulary was last modified with a text file different from the one that was previously used.<br/>VocabularyState:  The processing state of the vocabulary. If the <code>VocabularyState</code> is <code>READY</code> then you can use it in the <code>StartMedicalTranscriptionJob</code> operation. <br/>LanguageCode:  The valid language code for your vocabulary entries.<br/>VocabularyName:  The name of the vocabulary returned by Amazon Transcribe Medical.<br/>        """
        pass

    def get_transcription_job(self, TranscriptionJobName: str) -> GetTranscriptionJobResponse:
        r"""Returns information about a transcription job. To see the status of the job, check the <code>TranscriptionJobStatus</code> field. If the status is <code>COMPLETED</code>, the job is finished and you can find the results at the location specified in the <code>TranscriptFileUri</code> field. If you enable content redaction, the redacted transcript appears in <code>RedactedTranscriptFileUri</code>.

        :param self:
        :param TranscriptionJobName:  The name of the job.<br/>
        :return: TranscriptionJob:  An object that contains the results of the transcription job.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IdentifiedLanguageScore</i> A value between zero and one that Amazon Transcribe assigned to the language that it identified in the source audio. Larger values indicate that Amazon Transcribe has higher confidence in the language it identified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LanguageOptions</i> An object that shows the optional array of languages inputted for transcription jobs with automatic language identification enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IdentifyLanguage</i> A value that shows if automatic language identification was enabled for a transcription job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ContentRedaction</i> An object that describes content redaction settings for the transcription job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ContentRedaction</b>: An object that describes content redaction settings for the transcription job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobExecutionSettings</i> Provides information about how a transcription job is executed.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>JobExecutionSettings</b>: Provides information about how a transcription job is executed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ModelSettings</i> An object containing the details of your custom language model.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ModelSettings</b>: An object containing the details of your custom language model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Settings</i> Optional settings for the transcription job. Use these settings to turn on speaker recognition, to set the maximum number of speakers that should be identified and to specify a custom vocabulary to use when processing the transcription job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Settings</b>: Optional settings for the transcription job. Use these settings to turn on speaker recognition, to set the maximum number of speakers that should be identified and to specify a custom vocabulary to use when processing the transcription job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FailureReason</i> If the <code>TranscriptionJobStatus</code> field is <code>FAILED</code>, this field contains information about why the job failed. The <code>FailureReason</code> field can contain one of the following values: <ul> <li>  <code>Unsupported media format</code> - The media format specified in the <code>MediaFormat</code> field of the request isn't valid. See the description of the <code>MediaFormat</code> field for a list of valid values. </li> <li>  <code>The media format provided does not match the detected media format</code> - The media format of the audio file doesn't match the format specified in the <code>MediaFormat</code> field in the request. Check the media format of your media file and make sure that the two values match. </li> <li>  <code>Invalid sample rate for audio file</code> - The sample rate specified in the <code>MediaSampleRateHertz</code> of the request isn't valid. The sample rate must be between 8000 and 48000 Hertz. </li> <li>  <code>The sample rate provided does not match the detected sample rate</code> - The sample rate in the audio file doesn't match the sample rate specified in the <code>MediaSampleRateHertz</code> field in the request. Check the sample rate of your media file and make sure that the two values match. </li> <li>  <code>Invalid file size: file size too large</code> - The size of your audio file is larger than Amazon Transcribe can process. For more information, see <a href="https://docs.aws.amazon.com/transcribe/latest/dg/limits-guidelines.html#limits">Limits</a> in the <i>Amazon Transcribe Developer Guide</i>. </li> <li>  <code>Invalid number of channels: number of channels too large</code> - Your audio contains more channels than Amazon Transcribe is configured to process. To request additional channels, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html#limits-amazon-transcribe">Amazon Transcribe Limits</a> in the <i>Amazon Web Services General Reference</i>. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CompletionTime</i> A timestamp that shows when the job was completed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> A timestamp that shows when the job was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StartTime</i> A timestamp that shows with the job was started processing.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Transcript</i> An object that describes the output of the transcription job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Transcript</b>: An object that describes the output of the transcription job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Media</i> An object that describes the input media for the transcription job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Media</b>: An object that describes the input media for the transcription job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MediaFormat</i> The format of the input media file.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MediaSampleRateHertz</i> The sample rate, in Hertz, of the audio track in the input media file. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LanguageCode</i> The language code for the input speech.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TranscriptionJobStatus</i> The status of the transcription job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TranscriptionJobName</i> The name of the transcription job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MediaFileUri</i> The S3 object location of the input media file. The URI must be in the same region as the API endpoint that you are calling. The general form is: For example: For more information about S3 object names, see <a href="http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMetadata.html#object-keys">Object Keys</a> in the <i>Amazon S3 Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RedactedTranscriptFileUri</i> The S3 object location of the redacted transcript. Use this URI to access the redacted transcript. If you specified an S3 bucket in the <code>OutputBucketName</code> field when you created the job, this is the URI of that bucket. If you chose to store the transcript in Amazon Transcribe, this is a shareable URL that provides secure access to that location.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TranscriptFileUri</i> The S3 object location of the transcript. Use this URI to access the transcript. If you specified an S3 bucket in the <code>OutputBucketName</code> field when you created the job, this is the URI of that bucket. If you chose to store the transcript in Amazon Transcribe, this is a shareable URL that provides secure access to that location.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VocabularyFilterMethod</i> Set to <code>mask</code> to remove filtered text from the transcript and replace it with three asterisks ("***") as placeholder text. Set to <code>remove</code> to remove filtered text from the transcript without using placeholder text. Set to <code>tag</code> to mark the word in the transcription output that matches the vocabulary filter. When you set the filter method to <code>tag</code>, the words matching your vocabulary filter are not masked or removed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VocabularyFilterName</i> The name of the vocabulary filter to use when transcribing the audio. The filter that you specify must have the same language code as the transcription job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxAlternatives</i> The number of alternative transcriptions that the service should return. If you specify the <code>MaxAlternatives</code> field, you must set the <code>ShowAlternatives</code> field to true.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ShowAlternatives</i> Determines whether the transcription contains alternative transcriptions. If you set the <code>ShowAlternatives</code> field to true, you must also set the maximum number of alternatives to return in the <code>MaxAlternatives</code> field.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ChannelIdentification</i> Instructs Amazon Transcribe to process each audio channel separately and then merge the transcription output of each channel into a single transcription.  Amazon Transcribe also produces a transcription of each item detected on an audio channel, including the start time and end time of the item and alternative transcriptions of the item including the confidence that Amazon Transcribe has in the transcription. You can't set both <code>ShowSpeakerLabels</code> and <code>ChannelIdentification</code> in the same request. If you set both, your request returns a <code>BadRequestException</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxSpeakerLabels</i> The maximum number of speakers to identify in the input audio. If there are more speakers in the audio than this number, multiple speakers are identified as a single speaker. If you specify the <code>MaxSpeakerLabels</code> field, you must set the <code>ShowSpeakerLabels</code> field to true.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ShowSpeakerLabels</i> Determines whether the transcription job uses speaker recognition to identify different speakers in the input audio. Speaker recognition labels individual speakers in the audio file. If you set the <code>ShowSpeakerLabels</code> field to true, you must also set the maximum number of speaker labels <code>MaxSpeakerLabels</code> field. You can't set both <code>ShowSpeakerLabels</code> and <code>ChannelIdentification</code> in the same request. If you set both, your request returns a <code>BadRequestException</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VocabularyName</i> The name of a vocabulary to use when processing the transcription job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LanguageModelName</i> The name of your custom language model.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DataAccessRoleArn</i> The Amazon Resource Name (ARN) of a role that has access to the S3 bucket that contains the input files. Amazon Transcribe assumes this role to read queued media files. If you have specified an output S3 bucket for the transcription results, this role should have access to the output bucket as well. If you specify the <code>AllowDeferredExecution</code> field, you must specify the <code>DataAccessRoleArn</code> field.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowDeferredExecution</i> Indicates whether a job should be queued by Amazon Transcribe when the concurrent execution limit is exceeded. When the <code>AllowDeferredExecution</code> field is true, jobs are queued and executed when the number of executing jobs falls below the concurrent execution limit. If the field is false, Amazon Transcribe returns a <code>LimitExceededException</code> exception. If you specify the <code>AllowDeferredExecution</code> field, you must specify the <code>DataAccessRoleArn</code> field.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RedactionOutput</i> The output transcript file stored in either the default S3 bucket or in a bucket you specify. When you choose <code>redacted</code> Amazon Transcribe outputs only the redacted transcript. When you choose <code>redacted_and_unredacted</code> Amazon Transcribe outputs both the redacted and unredacted transcripts.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RedactionType</i> Request parameter that defines the entities to be redacted. The only accepted value is <code>PII</code>.<br/>        """
        pass

    def get_vocabulary(self, VocabularyName: str) -> GetVocabularyResponse:
        r"""Gets information about a vocabulary. 

        :param self:
        :param VocabularyName:  The name of the vocabulary to return information about. The name is case sensitive.<br/>
        :return: DownloadUri:  The S3 location where the vocabulary is stored. Use this URI to get the contents of the vocabulary. The URI is available for a limited time.<br/>FailureReason:  If the <code>VocabularyState</code> field is <code>FAILED</code>, this field contains information about why the job failed.<br/>LastModifiedTime:  The date and time that the vocabulary was last modified.<br/>VocabularyState:  The processing state of the vocabulary.<br/>LanguageCode:  The language code of the vocabulary entries.<br/>VocabularyName:  The name of the vocabulary to return.<br/>        """
        pass

    def get_vocabulary_filter(self, VocabularyFilterName: str) -> GetVocabularyFilterResponse:
        r"""Returns information about a vocabulary filter.

        :param self:
        :param VocabularyFilterName:  The name of the vocabulary filter for which to return information.<br/>
        :return: DownloadUri:  The URI of the list of words in the vocabulary filter. You can use this URI to get the list of words.<br/>LastModifiedTime:  The date and time that the contents of the vocabulary filter were updated.<br/>LanguageCode:  The language code of the words in the vocabulary filter.<br/>VocabularyFilterName:  The name of the vocabulary filter.<br/>        """
        pass

    def list_language_models(self, StatusEquals: str=None, NameContains: str=None, NextToken: str=None, MaxResults: int=None) -> ListLanguageModelsResponse:
        r"""Provides more information about the custom language models you've created. You can use the information in this list to find a specific custom language model. You can then use the operation to get more information about it.

        :param self:
        :param MaxResults:  The maximum number of language models to return in the response. If there are fewer results in the list, the response contains only the actual results.<br/>NextToken:  When included, fetches the next set of jobs if the result of the previous request was truncated.<br/>NameContains:  When specified, the custom language model names returned contain the substring you've specified.<br/>StatusEquals:  When specified, returns only custom language models with the specified status. Language models are ordered by creation date, with the newest models first. If you don't specify a status, Amazon Transcribe returns all custom language models ordered by date.<br/>
        :return: Models:  A list of objects containing information about custom language models.<br/>NextToken:  The operation returns a page of jobs at a time. The maximum size of the list is set by the MaxResults parameter. If there are more language models in the list than the page size, Amazon Transcribe returns the <code>NextPage</code> token. Include the token in the next request to the operation to return the next page of language models.<br/>        """
        pass

    def list_medical_transcription_jobs(self, Status: str=None, JobNameContains: str=None, NextToken: str=None, MaxResults: int=None) -> ListMedicalTranscriptionJobsResponse:
        r"""Lists medical transcription jobs with a specified status or substring that matches their names.

        :param self:
        :param MaxResults:  The maximum number of medical transcription jobs to return in the response. IF there are fewer results in the list, this response contains only the actual results.<br/>NextToken:  If you a receive a truncated result in the previous request of <code>ListMedicalTranscriptionJobs</code>, include <code>NextToken</code> to fetch the next set of jobs.<br/>JobNameContains:  When specified, the jobs returned in the list are limited to jobs whose name contains the specified string.<br/>Status:  When specified, returns only medical transcription jobs with the specified status. Jobs are ordered by creation date, with the newest jobs returned first. If you don't specify a status, Amazon Transcribe Medical returns all transcription jobs ordered by creation date.<br/>
        :return: MedicalTranscriptionJobSummaries:  A list of objects containing summary information for a transcription job.<br/>NextToken:  The <code>ListMedicalTranscriptionJobs</code> operation returns a page of jobs at a time. The maximum size of the page is set by the <code>MaxResults</code> parameter. If the number of jobs exceeds what can fit on a page, Amazon Transcribe Medical returns the <code>NextPage</code> token. Include the token in the next request to the <code>ListMedicalTranscriptionJobs</code> operation to return in the next page of jobs.<br/>Status:  The requested status of the medical transcription jobs returned.<br/>        """
        pass

    def list_medical_vocabularies(self, NextToken: str=None, MaxResults: int=None, StateEquals: str=None, NameContains: str=None) -> ListMedicalVocabulariesResponse:
        r"""Returns a list of vocabularies that match the specified criteria. If you don't enter a value in any of the request parameters, returns the entire list of vocabularies.

        :param self:
        :param NameContains:  Returns vocabularies whose names contain the specified string. The search is not case sensitive. <code>ListMedicalVocabularies</code> returns both "<code>vocabularyname</code>" and "<code>VocabularyName</code>".<br/>StateEquals:  When specified, returns only vocabularies with the <code>VocabularyState</code> equal to the specified vocabulary state. Use this field to see which vocabularies are ready for your medical transcription jobs.<br/>MaxResults:  The maximum number of vocabularies to return in the response.<br/>NextToken:  If the result of your previous request to <code>ListMedicalVocabularies</code> was truncated, include the <code>NextToken</code> to fetch the next set of vocabularies.<br/>
        :return: Vocabularies:  A list of objects that describe the vocabularies that match your search criteria.<br/>NextToken:  The <code>ListMedicalVocabularies</code> operation returns a page of vocabularies at a time. You set the maximum number of vocabularies to return on a page with the <code>MaxResults</code> parameter. If there are more jobs in the list will fit on a page, Amazon Transcribe Medical returns the <code>NextPage</code> token. To return the next page of vocabularies, include the token in the next request to the <code>ListMedicalVocabularies</code> operation .<br/>Status:  The requested vocabulary state.<br/>        """
        pass

    def list_transcription_jobs(self, Status: str=None, JobNameContains: str=None, NextToken: str=None, MaxResults: int=None) -> ListTranscriptionJobsResponse:
        r"""Lists transcription jobs with the specified status.

        :param self:
        :param MaxResults:  The maximum number of jobs to return in the response. If there are fewer results in the list, this response contains only the actual results.<br/>NextToken:  If the result of the previous request to <code>ListTranscriptionJobs</code> was truncated, include the <code>NextToken</code> to fetch the next set of jobs.<br/>JobNameContains:  When specified, the jobs returned in the list are limited to jobs whose name contains the specified string.<br/>Status:  When specified, returns only transcription jobs with the specified status. Jobs are ordered by creation date, with the newest jobs returned first. If you don’t specify a status, Amazon Transcribe returns all transcription jobs ordered by creation date. <br/>
        :return: TranscriptionJobSummaries:  A list of objects containing summary information for a transcription job.<br/>NextToken:  The <code>ListTranscriptionJobs</code> operation returns a page of jobs at a time. The maximum size of the page is set by the <code>MaxResults</code> parameter. If there are more jobs in the list than the page size, Amazon Transcribe returns the <code>NextPage</code> token. Include the token in the next request to the <code>ListTranscriptionJobs</code> operation to return in the next page of jobs.<br/>Status:  The requested status of the jobs returned.<br/>        """
        pass

    def list_vocabularies(self, NextToken: str=None, MaxResults: int=None, StateEquals: str=None, NameContains: str=None) -> ListVocabulariesResponse:
        r"""Returns a list of vocabularies that match the specified criteria. If no criteria are specified, returns the entire list of vocabularies.

        :param self:
        :param NameContains:  When specified, the vocabularies returned in the list are limited to vocabularies whose name contains the specified string. The search is not case sensitive, <code>ListVocabularies</code> returns both "vocabularyname" and "VocabularyName" in the response list.<br/>StateEquals:  When specified, only returns vocabularies with the <code>VocabularyState</code> field equal to the specified state.<br/>MaxResults:  The maximum number of vocabularies to return in the response. If there are fewer results in the list, this response contains only the actual results.<br/>NextToken:  If the result of the previous request to <code>ListVocabularies</code> was truncated, include the <code>NextToken</code> to fetch the next set of jobs.<br/>
        :return: Vocabularies:  A list of objects that describe the vocabularies that match the search criteria in the request.<br/>NextToken:  The <code>ListVocabularies</code> operation returns a page of vocabularies at a time. The maximum size of the page is set in the <code>MaxResults</code> parameter. If there are more jobs in the list than will fit on the page, Amazon Transcribe returns the <code>NextPage</code> token. To return in the next page of jobs, include the token in the next request to the <code>ListVocabularies</code> operation.<br/>Status:  The requested vocabulary state.<br/>        """
        pass

    def list_vocabulary_filters(self, NextToken: str=None, MaxResults: int=None, NameContains: str=None) -> ListVocabularyFiltersResponse:
        r"""Gets information about vocabulary filters.

        :param self:
        :param NameContains:  Filters the response so that it only contains vocabulary filters whose name contains the specified string.<br/>MaxResults:  The maximum number of filters to return in the response. If there are fewer results in the list, this response contains only the actual results.<br/>NextToken:  If the result of the previous request to <code>ListVocabularyFilters</code> was truncated, include the <code>NextToken</code> to fetch the next set of collections.<br/>
        :return: VocabularyFilters:  The list of vocabulary filters. It contains at most <code>MaxResults</code> number of filters. If there are more filters, call the <code>ListVocabularyFilters</code> operation again with the <code>NextToken</code> parameter in the request set to the value of the <code>NextToken</code> field in the response.<br/>NextToken:  The <code>ListVocabularyFilters</code> operation returns a page of collections at a time. The maximum size of the page is set by the <code>MaxResults</code> parameter. If there are more jobs in the list than the page size, Amazon Transcribe returns the <code>NextPage</code> token. Include the token in the next request to the <code>ListVocabularyFilters</code> operation to return in the next page of jobs.<br/>        """
        pass

    def start_medical_transcription_job(self, Type: str, Specialty: str, OutputBucketName: str, Media: Media, LanguageCode: str, MedicalTranscriptionJobName: str, MediaSampleRateHertz: int=None, MediaFormat: str=None, OutputKey: str=None, OutputEncryptionKMSKeyId: str=None, Settings: MedicalTranscriptionSetting=None, ContentIdentificationType: str=None) -> StartMedicalTranscriptionJobResponse:
        r"""Starts a batch job to transcribe medical speech to text.

        :param self:
        :param Type:  The type of speech in the input audio. <code>CONVERSATION</code> refers to conversations between two or more speakers, e.g., a conversations between doctors and patients. <code>DICTATION</code> refers to single-speaker dictated speech, e.g., for clinical notes.<br/>Specialty:  The medical specialty of any clinician speaking in the input media.<br/>ContentIdentificationType:  You can configure Amazon Transcribe Medical to label content in the transcription output. If you specify <code>PHI</code>, Amazon Transcribe Medical labels the personal health information (PHI) that it identifies in the transcription output.<br/>Settings:  Optional settings for the medical transcription job.:<br/>OutputEncryptionKMSKeyId:  The Amazon Resource Name (ARN) of the AWS Key Management Service (KMS) key used to encrypt the output of the transcription job. The user calling the <a>StartMedicalTranscriptionJob</a> operation must have permission to use the specified KMS key. You use either of the following to identify a KMS key in the current account: <ul> <li> KMS Key ID: "1234abcd-12ab-34cd-56ef-1234567890ab" </li> <li> KMS Key Alias: "alias/ExampleAlias" </li> </ul> You can use either of the following to identify a KMS key in the current account or another account: <ul> <li> Amazon Resource Name (ARN) of a KMS key in the current account or another account: "arn:aws:kms:region:account ID:key/1234abcd-12ab-34cd-56ef-1234567890ab" </li> <li> ARN of a KMS Key Alias: "arn:aws:kms:region:account ID:alias/ExampleAlias" </li> </ul> If you don't specify an encryption key, the output of the medical transcription job is encrypted with the default Amazon S3 key (SSE-S3). If you specify a KMS key to encrypt your output, you must also specify an output location in the <code>OutputBucketName</code> parameter.<br/>OutputKey:  You can specify a location in an Amazon S3 bucket to store the output of your medical transcription job. If you don't specify an output key, Amazon Transcribe Medical stores the output of your transcription job in the Amazon S3 bucket you specified. By default, the object key is "your-transcription-job-name.json". You can use output keys to specify the Amazon S3 prefix and file name of the transcription output. For example, specifying the Amazon S3 prefix, "folder1/folder2/", as an output key would lead to the output being stored as "folder1/folder2/your-transcription-job-name.json". If you specify "my-other-job-name.json" as the output key, the object key is changed to "my-other-job-name.json". You can use an output key to change both the prefix and the file name, for example "folder/my-other-job-name.json". If you specify an output key, you must also specify an S3 bucket in the <code>OutputBucketName</code> parameter.<br/>OutputBucketName:  The Amazon S3 location where the transcription is stored. You must set <code>OutputBucketName</code> for Amazon Transcribe Medical to store the transcription results. Your transcript appears in the S3 location you specify. When you call the <a>GetMedicalTranscriptionJob</a>, the operation returns this location in the <code>TranscriptFileUri</code> field. The S3 bucket must have permissions that allow Amazon Transcribe Medical to put files in the bucket. For more information, see <a href="https://docs.aws.amazon.com/transcribe/latest/dg/security_iam_id-based-policy-examples.html#auth-role-iam-user">Permissions Required for IAM User Roles</a>. You can specify an AWS Key Management Service (KMS) key to encrypt the output of your transcription using the <code>OutputEncryptionKMSKeyId</code> parameter. If you don't specify a KMS key, Amazon Transcribe Medical uses the default Amazon S3 key for server-side encryption of transcripts that are placed in your S3 bucket.<br/>Media:  Describes the input media file in a transcription request.:<br/>MediaFormat:  The audio format of the input media file.<br/>MediaSampleRateHertz:  The sample rate, in Hertz, of the audio track in the input media file. If you do not specify the media sample rate, Amazon Transcribe Medical determines the sample rate. If you specify the sample rate, it must match the rate detected by Amazon Transcribe Medical. In most cases, you should leave the <code>MediaSampleRateHertz</code> field blank and let Amazon Transcribe Medical determine the sample rate.<br/>LanguageCode:  The language code for the language spoken in the input media file. US English (en-US) is the valid value for medical transcription jobs. Any other value you enter for language code results in a <code>BadRequestException</code> error.<br/>MedicalTranscriptionJobName:  The name of the medical transcription job. You can't use the strings "<code>.</code>" or "<code>..</code>" by themselves as the job name. The name must also be unique within an AWS account. If you try to create a medical transcription job with the same name as a previous medical transcription job, you get a <code>ConflictException</code> error.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MediaFileUri</i> The S3 object location of the input media file. The URI must be in the same region as the API endpoint that you are calling. The general form is: For example: For more information about S3 object names, see <a href="http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMetadata.html#object-keys">Object Keys</a> in the <i>Amazon S3 Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VocabularyName</i> The name of the vocabulary to use when processing a medical transcription job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxAlternatives</i> The maximum number of alternatives that you tell the service to return. If you specify the <code>MaxAlternatives</code> field, you must set the <code>ShowAlternatives</code> field to true.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ShowAlternatives</i> Determines whether alternative transcripts are generated along with the transcript that has the highest confidence. If you set <code>ShowAlternatives</code> field to true, you must also set the maximum number of alternatives to return in the <code>MaxAlternatives</code> field.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ChannelIdentification</i> Instructs Amazon Transcribe Medical to process each audio channel separately and then merge the transcription output of each channel into a single transcription. Amazon Transcribe Medical also produces a transcription of each item detected on an audio channel, including the start time and end time of the item and alternative transcriptions of item. The alternative transcriptions also come with confidence scores provided by Amazon Transcribe Medical. You can't set both <code>ShowSpeakerLabels</code> and <code>ChannelIdentification</code> in the same request. If you set both, your request returns a <code>BadRequestException</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxSpeakerLabels</i> The maximum number of speakers to identify in the input audio. If there are more speakers in the audio than this number, multiple speakers are identified as a single speaker. If you specify the <code>MaxSpeakerLabels</code> field, you must set the <code>ShowSpeakerLabels</code> field to true.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ShowSpeakerLabels</i> Determines whether the transcription job uses speaker recognition to identify different speakers in the input audio. Speaker recognition labels individual speakers in the audio file. If you set the <code>ShowSpeakerLabels</code> field to true, you must also set the maximum number of speaker labels in the <code>MaxSpeakerLabels</code> field. You can't set both <code>ShowSpeakerLabels</code> and <code>ChannelIdentification</code> in the same request. If you set both, your request returns a <code>BadRequestException</code>.<br/>
        :return: MedicalTranscriptionJob:  A batch job submitted to transcribe medical speech to text.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of speech in the transcription job. <code>CONVERSATION</code> is generally used for patient-physician dialogues. <code>DICTATION</code> is the setting for physicians speaking their notes after seeing a patient. For more information, see <a>how-it-works-med</a> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Specialty</i> The medical specialty of any clinicians providing a dictation or having a conversation. <code>PRIMARYCARE</code> is the only available setting for this object. This specialty enables you to generate transcriptions for the following medical fields: <ul> <li> Family Medicine </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ContentIdentificationType</i> Shows the type of content that you've configured Amazon Transcribe Medical to identify in a transcription job. If the value is <code>PHI</code>, you've configured the job to identify personal health information (PHI) in the transcription output.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Settings</i> Object that contains object.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Settings</b>: Object that contains object.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FailureReason</i> If the <code>TranscriptionJobStatus</code> field is <code>FAILED</code>, this field contains information about why the job failed. The <code>FailureReason</code> field contains one of the following values: <ul> <li>  <code>Unsupported media format</code>- The media format specified in the <code>MediaFormat</code> field of the request isn't valid. See the description of the <code>MediaFormat</code> field for a list of valid values. </li> <li>  <code>The media format provided does not match the detected media format</code>- The media format of the audio file doesn't match the format specified in the <code>MediaFormat</code> field in the request. Check the media format of your media file and make sure the two values match. </li> <li>  <code>Invalid sample rate for audio file</code>- The sample rate specified in the <code>MediaSampleRateHertz</code> of the request isn't valid. The sample rate must be between 8000 and 48000 Hertz. </li> <li>  <code>The sample rate provided does not match the detected sample rate</code>- The sample rate in the audio file doesn't match the sample rate specified in the <code>MediaSampleRateHertz</code> field in the request. Check the sample rate of your media file and make sure that the two values match. </li> <li>  <code>Invalid file size: file size too large</code>- The size of your audio file is larger than what Amazon Transcribe Medical can process. For more information, see <a href="https://docs.aws.amazon.com/transcribe/latest/dg/limits-guidelines.html#limits">Guidelines and Quotas</a> in the <i>Amazon Transcribe Medical Guide</i>  </li> <li>  <code>Invalid number of channels: number of channels too large</code>- Your audio contains more channels than Amazon Transcribe Medical is configured to process. To request additional channels, see <a href="https://docs.aws.amazon.com/general/latest/gr/transcribe-medical.html">Amazon Transcribe Medical Endpoints and Quotas</a> in the <i>Amazon Web Services General Reference</i>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CompletionTime</i> A timestamp that shows when the job was completed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> A timestamp that shows when the job was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StartTime</i> A timestamp that shows when the job started processing.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Transcript</i> An object that contains the <code>MedicalTranscript</code>. The <code>MedicalTranscript</code> contains the <code>TranscriptFileUri</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Transcript</b>: An object that contains the <code>MedicalTranscript</code>. The <code>MedicalTranscript</code> contains the <code>TranscriptFileUri</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Media</i> Describes the input media file in a transcription request.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Media</b>: Describes the input media file in a transcription request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MediaFormat</i> The format of the input media file.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MediaSampleRateHertz</i> The sample rate, in Hertz, of the source audio containing medical information. If you don't specify the sample rate, Amazon Transcribe Medical determines it for you. If you choose to specify the sample rate, it must match the rate detected by Amazon Transcribe Medical. In most cases, you should leave the <code>MediaSampleHertz</code> blank and let Amazon Transcribe Medical determine the sample rate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LanguageCode</i> The language code for the language spoken in the source audio file. US English (en-US) is the only supported language for medical transcriptions. Any other value you enter for language code results in a <code>BadRequestException</code> error.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TranscriptionJobStatus</i> The completion status of a medical transcription job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MedicalTranscriptionJobName</i> The name for a given medical transcription job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MediaFileUri</i> The S3 object location of the input media file. The URI must be in the same region as the API endpoint that you are calling. The general form is: For example: For more information about S3 object names, see <a href="http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMetadata.html#object-keys">Object Keys</a> in the <i>Amazon S3 Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TranscriptFileUri</i> The S3 object location of the medical transcript. Use this URI to access the medical transcript. This URI points to the S3 bucket you created to store the medical transcript.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VocabularyName</i> The name of the vocabulary to use when processing a medical transcription job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxAlternatives</i> The maximum number of alternatives that you tell the service to return. If you specify the <code>MaxAlternatives</code> field, you must set the <code>ShowAlternatives</code> field to true.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ShowAlternatives</i> Determines whether alternative transcripts are generated along with the transcript that has the highest confidence. If you set <code>ShowAlternatives</code> field to true, you must also set the maximum number of alternatives to return in the <code>MaxAlternatives</code> field.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ChannelIdentification</i> Instructs Amazon Transcribe Medical to process each audio channel separately and then merge the transcription output of each channel into a single transcription. Amazon Transcribe Medical also produces a transcription of each item detected on an audio channel, including the start time and end time of the item and alternative transcriptions of item. The alternative transcriptions also come with confidence scores provided by Amazon Transcribe Medical. You can't set both <code>ShowSpeakerLabels</code> and <code>ChannelIdentification</code> in the same request. If you set both, your request returns a <code>BadRequestException</code> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxSpeakerLabels</i> The maximum number of speakers to identify in the input audio. If there are more speakers in the audio than this number, multiple speakers are identified as a single speaker. If you specify the <code>MaxSpeakerLabels</code> field, you must set the <code>ShowSpeakerLabels</code> field to true.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ShowSpeakerLabels</i> Determines whether the transcription job uses speaker recognition to identify different speakers in the input audio. Speaker recognition labels individual speakers in the audio file. If you set the <code>ShowSpeakerLabels</code> field to true, you must also set the maximum number of speaker labels in the <code>MaxSpeakerLabels</code> field. You can't set both <code>ShowSpeakerLabels</code> and <code>ChannelIdentification</code> in the same request. If you set both, your request returns a <code>BadRequestException</code>.<br/>        """
        pass

    def start_transcription_job(self, Media: Media, TranscriptionJobName: str, LanguageCode: str=None, MediaSampleRateHertz: int=None, MediaFormat: str=None, OutputBucketName: str=None, OutputKey: str=None, OutputEncryptionKMSKeyId: str=None, Settings: Settings=None, ModelSettings: ModelSettings=None, JobExecutionSettings: JobExecutionSettings=None, ContentRedaction: ContentRedaction=None, IdentifyLanguage: Boolean=None, LanguageOptions: List[LanguageCode]=None) -> StartTranscriptionJobResponse:
        r"""Starts an asynchronous job to transcribe speech to text.

        :param self:
        :param LanguageOptions:  An object containing a list of languages that might be present in your collection of audio files. Automatic language identification chooses a language that best matches the source audio from that list.<br/>IdentifyLanguage:  Set this field to <code>true</code> to enable automatic language identification. Automatic language identification is disabled by default. You receive a <code>BadRequestException</code> error if you enter a value for a <code>LanguageCode</code>.<br/>ContentRedaction:  An object that contains the request parameters for content redaction.:<br/>JobExecutionSettings:  Provides information about how a transcription job is executed. Use this field to indicate that the job can be queued for deferred execution if the concurrency limit is reached and there are no slots available to immediately run the job.:<br/>ModelSettings:  Choose the custom language model you use for your transcription job in this parameter.:<br/>Settings:  A <code>Settings</code> object that provides optional settings for a transcription job.:<br/>OutputEncryptionKMSKeyId:  The Amazon Resource Name (ARN) of the AWS Key Management Service (KMS) key used to encrypt the output of the transcription job. The user calling the <code>StartTranscriptionJob</code> operation must have permission to use the specified KMS key. You can use either of the following to identify a KMS key in the current account: <ul> <li> KMS Key ID: "1234abcd-12ab-34cd-56ef-1234567890ab" </li> <li> KMS Key Alias: "alias/ExampleAlias" </li> </ul> You can use either of the following to identify a KMS key in the current account or another account: <ul> <li> Amazon Resource Name (ARN) of a KMS Key: "arn:aws:kms:region:account ID:key/1234abcd-12ab-34cd-56ef-1234567890ab" </li> <li> ARN of a KMS Key Alias: "arn:aws:kms:region:account ID:alias/ExampleAlias" </li> </ul> If you don't specify an encryption key, the output of the transcription job is encrypted with the default Amazon S3 key (SSE-S3).  If you specify a KMS key to encrypt your output, you must also specify an output location in the <code>OutputBucketName</code> parameter.<br/>OutputKey:  You can specify a location in an Amazon S3 bucket to store the output of your transcription job. If you don't specify an output key, Amazon Transcribe stores the output of your transcription job in the Amazon S3 bucket you specified. By default, the object key is "your-transcription-job-name.json". You can use output keys to specify the Amazon S3 prefix and file name of the transcription output. For example, specifying the Amazon S3 prefix, "folder1/folder2/", as an output key would lead to the output being stored as "folder1/folder2/your-transcription-job-name.json". If you specify "my-other-job-name.json" as the output key, the object key is changed to "my-other-job-name.json". You can use an output key to change both the prefix and the file name, for example "folder/my-other-job-name.json". If you specify an output key, you must also specify an S3 bucket in the <code>OutputBucketName</code> parameter.<br/>OutputBucketName:  The location where the transcription is stored. If you set the <code>OutputBucketName</code>, Amazon Transcribe puts the transcript in the specified S3 bucket. When you call the <a>GetTranscriptionJob</a> operation, the operation returns this location in the <code>TranscriptFileUri</code> field. If you enable content redaction, the redacted transcript appears in <code>RedactedTranscriptFileUri</code>. If you enable content redaction and choose to output an unredacted transcript, that transcript's location still appears in the <code>TranscriptFileUri</code>. The S3 bucket must have permissions that allow Amazon Transcribe to put files in the bucket. For more information, see <a href="https://docs.aws.amazon.com/transcribe/latest/dg/security_iam_id-based-policy-examples.html#auth-role-iam-user">Permissions Required for IAM User Roles</a>. You can specify an AWS Key Management Service (KMS) key to encrypt the output of your transcription using the <code>OutputEncryptionKMSKeyId</code> parameter. If you don't specify a KMS key, Amazon Transcribe uses the default Amazon S3 key for server-side encryption of transcripts that are placed in your S3 bucket. If you don't set the <code>OutputBucketName</code>, Amazon Transcribe generates a pre-signed URL, a shareable URL that provides secure access to your transcription, and returns it in the <code>TranscriptFileUri</code> field. Use this URL to download the transcription.<br/>Media:  An object that describes the input media for a transcription job.:<br/>MediaFormat:  The format of the input media file.<br/>MediaSampleRateHertz:  The sample rate, in Hertz, of the audio track in the input media file.  If you do not specify the media sample rate, Amazon Transcribe determines the sample rate. If you specify the sample rate, it must match the sample rate detected by Amazon Transcribe. In most cases, you should leave the <code>MediaSampleRateHertz</code> field blank and let Amazon Transcribe determine the sample rate.<br/>LanguageCode:  The language code for the language used in the input media file. To transcribe speech in Modern Standard Arabic (ar-SA), your audio or video file must be encoded at a sample rate of 16000 Hz or higher.<br/>TranscriptionJobName:  The name of the job. You can't use the strings "<code>.</code>" or "<code>..</code>" by themselves as the job name. The name must also be unique within an AWS account. If you try to create a transcription job with the same name as a previous transcription job, you get a <code>ConflictException</code> error.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MediaFileUri</i> The S3 object location of the input media file. The URI must be in the same region as the API endpoint that you are calling. The general form is: For example: For more information about S3 object names, see <a href="http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMetadata.html#object-keys">Object Keys</a> in the <i>Amazon S3 Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VocabularyFilterMethod</i> Set to <code>mask</code> to remove filtered text from the transcript and replace it with three asterisks ("***") as placeholder text. Set to <code>remove</code> to remove filtered text from the transcript without using placeholder text. Set to <code>tag</code> to mark the word in the transcription output that matches the vocabulary filter. When you set the filter method to <code>tag</code>, the words matching your vocabulary filter are not masked or removed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VocabularyFilterName</i> The name of the vocabulary filter to use when transcribing the audio. The filter that you specify must have the same language code as the transcription job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxAlternatives</i> The number of alternative transcriptions that the service should return. If you specify the <code>MaxAlternatives</code> field, you must set the <code>ShowAlternatives</code> field to true.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ShowAlternatives</i> Determines whether the transcription contains alternative transcriptions. If you set the <code>ShowAlternatives</code> field to true, you must also set the maximum number of alternatives to return in the <code>MaxAlternatives</code> field.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ChannelIdentification</i> Instructs Amazon Transcribe to process each audio channel separately and then merge the transcription output of each channel into a single transcription.  Amazon Transcribe also produces a transcription of each item detected on an audio channel, including the start time and end time of the item and alternative transcriptions of the item including the confidence that Amazon Transcribe has in the transcription. You can't set both <code>ShowSpeakerLabels</code> and <code>ChannelIdentification</code> in the same request. If you set both, your request returns a <code>BadRequestException</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxSpeakerLabels</i> The maximum number of speakers to identify in the input audio. If there are more speakers in the audio than this number, multiple speakers are identified as a single speaker. If you specify the <code>MaxSpeakerLabels</code> field, you must set the <code>ShowSpeakerLabels</code> field to true.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ShowSpeakerLabels</i> Determines whether the transcription job uses speaker recognition to identify different speakers in the input audio. Speaker recognition labels individual speakers in the audio file. If you set the <code>ShowSpeakerLabels</code> field to true, you must also set the maximum number of speaker labels <code>MaxSpeakerLabels</code> field. You can't set both <code>ShowSpeakerLabels</code> and <code>ChannelIdentification</code> in the same request. If you set both, your request returns a <code>BadRequestException</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VocabularyName</i> The name of a vocabulary to use when processing the transcription job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LanguageModelName</i> The name of your custom language model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataAccessRoleArn</i> The Amazon Resource Name (ARN) of a role that has access to the S3 bucket that contains the input files. Amazon Transcribe assumes this role to read queued media files. If you have specified an output S3 bucket for the transcription results, this role should have access to the output bucket as well. If you specify the <code>AllowDeferredExecution</code> field, you must specify the <code>DataAccessRoleArn</code> field.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowDeferredExecution</i> Indicates whether a job should be queued by Amazon Transcribe when the concurrent execution limit is exceeded. When the <code>AllowDeferredExecution</code> field is true, jobs are queued and executed when the number of executing jobs falls below the concurrent execution limit. If the field is false, Amazon Transcribe returns a <code>LimitExceededException</code> exception. If you specify the <code>AllowDeferredExecution</code> field, you must specify the <code>DataAccessRoleArn</code> field.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RedactionOutput</i> The output transcript file stored in either the default S3 bucket or in a bucket you specify. When you choose <code>redacted</code> Amazon Transcribe outputs only the redacted transcript. When you choose <code>redacted_and_unredacted</code> Amazon Transcribe outputs both the redacted and unredacted transcripts.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RedactionType</i> Request parameter that defines the entities to be redacted. The only accepted value is <code>PII</code>.<br/>
        :return: TranscriptionJob:  An object containing details of the asynchronous transcription job.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IdentifiedLanguageScore</i> A value between zero and one that Amazon Transcribe assigned to the language that it identified in the source audio. Larger values indicate that Amazon Transcribe has higher confidence in the language it identified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LanguageOptions</i> An object that shows the optional array of languages inputted for transcription jobs with automatic language identification enabled.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IdentifyLanguage</i> A value that shows if automatic language identification was enabled for a transcription job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ContentRedaction</i> An object that describes content redaction settings for the transcription job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ContentRedaction</b>: An object that describes content redaction settings for the transcription job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobExecutionSettings</i> Provides information about how a transcription job is executed.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>JobExecutionSettings</b>: Provides information about how a transcription job is executed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ModelSettings</i> An object containing the details of your custom language model.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ModelSettings</b>: An object containing the details of your custom language model.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Settings</i> Optional settings for the transcription job. Use these settings to turn on speaker recognition, to set the maximum number of speakers that should be identified and to specify a custom vocabulary to use when processing the transcription job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Settings</b>: Optional settings for the transcription job. Use these settings to turn on speaker recognition, to set the maximum number of speakers that should be identified and to specify a custom vocabulary to use when processing the transcription job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FailureReason</i> If the <code>TranscriptionJobStatus</code> field is <code>FAILED</code>, this field contains information about why the job failed. The <code>FailureReason</code> field can contain one of the following values: <ul> <li>  <code>Unsupported media format</code> - The media format specified in the <code>MediaFormat</code> field of the request isn't valid. See the description of the <code>MediaFormat</code> field for a list of valid values. </li> <li>  <code>The media format provided does not match the detected media format</code> - The media format of the audio file doesn't match the format specified in the <code>MediaFormat</code> field in the request. Check the media format of your media file and make sure that the two values match. </li> <li>  <code>Invalid sample rate for audio file</code> - The sample rate specified in the <code>MediaSampleRateHertz</code> of the request isn't valid. The sample rate must be between 8000 and 48000 Hertz. </li> <li>  <code>The sample rate provided does not match the detected sample rate</code> - The sample rate in the audio file doesn't match the sample rate specified in the <code>MediaSampleRateHertz</code> field in the request. Check the sample rate of your media file and make sure that the two values match. </li> <li>  <code>Invalid file size: file size too large</code> - The size of your audio file is larger than Amazon Transcribe can process. For more information, see <a href="https://docs.aws.amazon.com/transcribe/latest/dg/limits-guidelines.html#limits">Limits</a> in the <i>Amazon Transcribe Developer Guide</i>. </li> <li>  <code>Invalid number of channels: number of channels too large</code> - Your audio contains more channels than Amazon Transcribe is configured to process. To request additional channels, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html#limits-amazon-transcribe">Amazon Transcribe Limits</a> in the <i>Amazon Web Services General Reference</i>. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CompletionTime</i> A timestamp that shows when the job was completed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> A timestamp that shows when the job was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StartTime</i> A timestamp that shows with the job was started processing.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Transcript</i> An object that describes the output of the transcription job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Transcript</b>: An object that describes the output of the transcription job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Media</i> An object that describes the input media for the transcription job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Media</b>: An object that describes the input media for the transcription job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MediaFormat</i> The format of the input media file.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MediaSampleRateHertz</i> The sample rate, in Hertz, of the audio track in the input media file. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LanguageCode</i> The language code for the input speech.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TranscriptionJobStatus</i> The status of the transcription job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TranscriptionJobName</i> The name of the transcription job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MediaFileUri</i> The S3 object location of the input media file. The URI must be in the same region as the API endpoint that you are calling. The general form is: For example: For more information about S3 object names, see <a href="http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMetadata.html#object-keys">Object Keys</a> in the <i>Amazon S3 Developer Guide</i>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RedactedTranscriptFileUri</i> The S3 object location of the redacted transcript. Use this URI to access the redacted transcript. If you specified an S3 bucket in the <code>OutputBucketName</code> field when you created the job, this is the URI of that bucket. If you chose to store the transcript in Amazon Transcribe, this is a shareable URL that provides secure access to that location.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TranscriptFileUri</i> The S3 object location of the transcript. Use this URI to access the transcript. If you specified an S3 bucket in the <code>OutputBucketName</code> field when you created the job, this is the URI of that bucket. If you chose to store the transcript in Amazon Transcribe, this is a shareable URL that provides secure access to that location.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VocabularyFilterMethod</i> Set to <code>mask</code> to remove filtered text from the transcript and replace it with three asterisks ("***") as placeholder text. Set to <code>remove</code> to remove filtered text from the transcript without using placeholder text. Set to <code>tag</code> to mark the word in the transcription output that matches the vocabulary filter. When you set the filter method to <code>tag</code>, the words matching your vocabulary filter are not masked or removed.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VocabularyFilterName</i> The name of the vocabulary filter to use when transcribing the audio. The filter that you specify must have the same language code as the transcription job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxAlternatives</i> The number of alternative transcriptions that the service should return. If you specify the <code>MaxAlternatives</code> field, you must set the <code>ShowAlternatives</code> field to true.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ShowAlternatives</i> Determines whether the transcription contains alternative transcriptions. If you set the <code>ShowAlternatives</code> field to true, you must also set the maximum number of alternatives to return in the <code>MaxAlternatives</code> field.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ChannelIdentification</i> Instructs Amazon Transcribe to process each audio channel separately and then merge the transcription output of each channel into a single transcription.  Amazon Transcribe also produces a transcription of each item detected on an audio channel, including the start time and end time of the item and alternative transcriptions of the item including the confidence that Amazon Transcribe has in the transcription. You can't set both <code>ShowSpeakerLabels</code> and <code>ChannelIdentification</code> in the same request. If you set both, your request returns a <code>BadRequestException</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MaxSpeakerLabels</i> The maximum number of speakers to identify in the input audio. If there are more speakers in the audio than this number, multiple speakers are identified as a single speaker. If you specify the <code>MaxSpeakerLabels</code> field, you must set the <code>ShowSpeakerLabels</code> field to true.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ShowSpeakerLabels</i> Determines whether the transcription job uses speaker recognition to identify different speakers in the input audio. Speaker recognition labels individual speakers in the audio file. If you set the <code>ShowSpeakerLabels</code> field to true, you must also set the maximum number of speaker labels <code>MaxSpeakerLabels</code> field. You can't set both <code>ShowSpeakerLabels</code> and <code>ChannelIdentification</code> in the same request. If you set both, your request returns a <code>BadRequestException</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VocabularyName</i> The name of a vocabulary to use when processing the transcription job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>LanguageModelName</i> The name of your custom language model.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DataAccessRoleArn</i> The Amazon Resource Name (ARN) of a role that has access to the S3 bucket that contains the input files. Amazon Transcribe assumes this role to read queued media files. If you have specified an output S3 bucket for the transcription results, this role should have access to the output bucket as well. If you specify the <code>AllowDeferredExecution</code> field, you must specify the <code>DataAccessRoleArn</code> field.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowDeferredExecution</i> Indicates whether a job should be queued by Amazon Transcribe when the concurrent execution limit is exceeded. When the <code>AllowDeferredExecution</code> field is true, jobs are queued and executed when the number of executing jobs falls below the concurrent execution limit. If the field is false, Amazon Transcribe returns a <code>LimitExceededException</code> exception. If you specify the <code>AllowDeferredExecution</code> field, you must specify the <code>DataAccessRoleArn</code> field.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RedactionOutput</i> The output transcript file stored in either the default S3 bucket or in a bucket you specify. When you choose <code>redacted</code> Amazon Transcribe outputs only the redacted transcript. When you choose <code>redacted_and_unredacted</code> Amazon Transcribe outputs both the redacted and unredacted transcripts.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RedactionType</i> Request parameter that defines the entities to be redacted. The only accepted value is <code>PII</code>.<br/>        """
        pass

    def update_medical_vocabulary(self, LanguageCode: str, VocabularyName: str, VocabularyFileUri: str=None) -> UpdateMedicalVocabularyResponse:
        r"""Updates a vocabulary with new values that you provide in a different text file from the one you used to create the vocabulary. The <code>UpdateMedicalVocabulary</code> operation overwrites all of the existing information with the values that you provide in the request.

        :param self:
        :param VocabularyFileUri:  The location in Amazon S3 of the text file that contains the you use for your custom vocabulary. The URI must be in the same AWS Region as the resource that you are calling. The following is the format for a URI:  <code> https://s3.&lt;aws-region&gt;.amazonaws.com/&lt;bucket-name&gt;/&lt;keyprefix&gt;/&lt;objectkey&gt; </code>  For example:  <code>https://s3.us-east-1.amazonaws.com/AWSDOC-EXAMPLE-BUCKET/vocab.txt</code>  For more information about Amazon S3 object names, see <a href="http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMetadata.html#object-keys">Object Keys</a> in the <i>Amazon S3 Developer Guide</i>. For more information about custom vocabularies in Amazon Transcribe Medical, see <a href="http://docs.aws.amazon.com/transcribe/latest/dg/how-it-works.html#how-vocabulary">Medical Custom Vocabularies</a>.<br/>LanguageCode:  The language code of the language used for the entries in the updated vocabulary. US English (en-US) is the only valid language code in Amazon Transcribe Medical.<br/>VocabularyName:  The name of the vocabulary to update. The name is case sensitive. If you try to update a vocabulary with the same name as a vocabulary you've already made, you get a <code>ConflictException</code> error.<br/>
        :return: VocabularyState:  The processing state of the update to the vocabulary. When the <code>VocabularyState</code> field is <code>READY</code>, the vocabulary is ready to be used in a <code>StartMedicalTranscriptionJob</code> request.<br/>LastModifiedTime:  The date and time that the vocabulary was updated.<br/>LanguageCode:  The language code for the language of the text file used to update the custom vocabulary. US English (en-US) is the only language supported in Amazon Transcribe Medical.<br/>VocabularyName:  The name of the updated vocabulary.<br/>        """
        pass

    def update_vocabulary(self, LanguageCode: str, VocabularyName: str, Phrases: List[Phrase]=None, VocabularyFileUri: str=None) -> UpdateVocabularyResponse:
        r"""Updates an existing vocabulary with new values. The <code>UpdateVocabulary</code> operation overwrites all of the existing information with the values that you provide in the request. 

        :param self:
        :param VocabularyFileUri:  The S3 location of the text file that contains the definition of the custom vocabulary. The URI must be in the same region as the API endpoint that you are calling. The general form is  For example: For more information about S3 object names, see <a href="http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMetadata.html#object-keys">Object Keys</a> in the <i>Amazon S3 Developer Guide</i>. For more information about custom vocabularies, see <a href="http://docs.aws.amazon.com/transcribe/latest/dg/how-it-works.html#how-vocabulary">Custom Vocabularies</a>.<br/>Phrases:  An array of strings containing the vocabulary entries.<br/>LanguageCode:  The language code of the vocabulary entries. For a list of languages and their corresponding language codes, see <a>what-is-transcribe</a>.<br/>VocabularyName:  The name of the vocabulary to update. The name is case sensitive. If you try to update a vocabulary with the same name as a previous vocabulary you will receive a <code>ConflictException</code> error.<br/>
        :return: VocabularyState:  The processing state of the vocabulary. When the <code>VocabularyState</code> field contains <code>READY</code> the vocabulary is ready to be used in a <code>StartTranscriptionJob</code> request.<br/>LastModifiedTime:  The date and time that the vocabulary was updated.<br/>LanguageCode:  The language code of the vocabulary entries.<br/>VocabularyName:  The name of the vocabulary that was updated.<br/>        """
        pass

    def update_vocabulary_filter(self, VocabularyFilterName: str, Words: List[Word]=None, VocabularyFilterFileUri: str=None) -> UpdateVocabularyFilterResponse:
        r"""Updates a vocabulary filter with a new list of filtered words.

        :param self:
        :param VocabularyFilterFileUri:  The Amazon S3 location of a text file used as input to create the vocabulary filter. Only use characters from the character set defined for custom vocabularies. For a list of character sets, see <a href="https://docs.aws.amazon.com/transcribe/latest/dg/how-vocabulary.html#charsets">Character Sets for Custom Vocabularies</a>. The specified file must be less than 50 KB of UTF-8 characters. If you provide the location of a list of words in the <code>VocabularyFilterFileUri</code> parameter, you can't use the <code>Words</code> parameter.<br/>Words:  The words to use in the vocabulary filter. Only use characters from the character set defined for custom vocabularies. For a list of character sets, see <a href="https://docs.aws.amazon.com/transcribe/latest/dg/how-vocabulary.html#charsets">Character Sets for Custom Vocabularies</a>. If you provide a list of words in the <code>Words</code> parameter, you can't use the <code>VocabularyFilterFileUri</code> parameter.<br/>VocabularyFilterName:  The name of the vocabulary filter to update. If you try to update a vocabulary filter with the same name as another vocabulary filter, you get a <code>ConflictException</code> error.<br/>
        :return: LastModifiedTime:  The date and time that the vocabulary filter was updated.<br/>LanguageCode:  The language code of the words in the vocabulary filter.<br/>VocabularyFilterName:  The name of the updated vocabulary filter.<br/>        """
        pass





class Transfer(BaseClient):
    r"""Amazon Web Services Transfer Family is a fully managed service that enables the transfer of files over the File Transfer Protocol (FTP), File Transfer Protocol over SSL (FTPS), or Secure Shell (SSH) File Transfer Protocol (SFTP) directly into and out of Amazon Simple Storage Service (Amazon S3). Amazon Web Services helps you seamlessly migrate your file transfer workflows to Amazon Web Services Transfer Family by integrating with existing authentication systems, and providing DNS routing with Amazon Route 53 so nothing changes for your customers and partners, or their applications. With your data in Amazon S3, you can use it with Amazon Web Services services for processing, analytics, machine learning, and archiving. Getting started with Amazon Web Services Transfer Family is easy since there is no infrastructure to buy and set up."""


    class ListServersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_servers` for valid parameters"""
            pass


    class CreateAccessRequest(Mapping):
        pass
    
    class CreateAccessResponse(Mapping):
        pass
    
    class HomeDirectoryMapEntry(Mapping):
        pass
    
    class PosixProfile(Mapping):
        pass
    
    class CreateServerRequest(Mapping):
        pass
    
    class CreateServerResponse(Mapping):
        pass
    
    class EndpointDetails(Mapping):
        pass
    
    class IdentityProviderDetails(Mapping):
        pass
    
    class Protocol(object):
        pass
    
    class Tag(Mapping):
        pass
    
    class CreateUserRequest(Mapping):
        pass
    
    class CreateUserResponse(Mapping):
        pass
    
    class DeleteAccessRequest(Mapping):
        pass
    
    class DeleteServerRequest(Mapping):
        pass
    
    class DeleteSshPublicKeyRequest(Mapping):
        pass
    
    class DeleteUserRequest(Mapping):
        pass
    
    class DescribeAccessRequest(Mapping):
        pass
    
    class DescribeAccessResponse(Mapping):
        pass
    
    class DescribeSecurityPolicyRequest(Mapping):
        pass
    
    class DescribeSecurityPolicyResponse(Mapping):
        pass
    
    class DescribeServerRequest(Mapping):
        pass
    
    class DescribeServerResponse(Mapping):
        pass
    
    class DescribeUserRequest(Mapping):
        pass
    
    class DescribeUserResponse(Mapping):
        pass
    
    class ImportSshPublicKeyRequest(Mapping):
        pass
    
    class ImportSshPublicKeyResponse(Mapping):
        pass
    
    class ListAccessesRequest(Mapping):
        pass
    
    class ListAccessesResponse(Mapping):
        pass
    
    class ListSecurityPoliciesRequest(Mapping):
        pass
    
    class ListSecurityPoliciesResponse(Mapping):
        pass
    
    class ListServersRequest(Mapping):
        pass
    
    class ListServersResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class ListUsersRequest(Mapping):
        pass
    
    class ListUsersResponse(Mapping):
        pass
    
    class StartServerRequest(Mapping):
        pass
    
    class StopServerRequest(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TestIdentityProviderRequest(Mapping):
        pass
    
    class TestIdentityProviderResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateAccessRequest(Mapping):
        pass
    
    class UpdateAccessResponse(Mapping):
        pass
    
    class UpdateServerRequest(Mapping):
        pass
    
    class UpdateServerResponse(Mapping):
        pass
    
    class ProtocolDetails(Mapping):
        pass
    
    class UpdateUserRequest(Mapping):
        pass
    
    class UpdateUserResponse(Mapping):
        pass
    
    def create_access(self, ExternalId: str, ServerId: str, Role: str, HomeDirectory: str=None, HomeDirectoryType: str=None, HomeDirectoryMappings: List[HomeDirectoryMapEntry]=None, Policy: str=None, PosixProfile: PosixProfile=None) -> CreateAccessResponse:
        r"""Used by administrators to choose which groups in the directory should have access to upload and download files over the enabled protocols using Amazon Web Services Transfer Family. For example, a Microsoft Active Directory might contain 50,000 users, but only a small fraction might need the ability to transfer files to the server. An administrator can use <code>CreateAccess</code> to limit the access to the correct set of users who need this ability.

        :param self:
        :param ExternalId:  A unique identifier that is required to identify specific groups within your directory. The users of the group that you associate have access to your Amazon S3 or Amazon EFS resources over the enabled protocols using Amazon Web Services Transfer Family. If you know the group name, you can view the SID values by running the following command using Windows PowerShell.  <code>Get-ADGroup -Filter {samAccountName -like "<i>YourGroupName</i>*"} -Properties * | Select SamAccountName,ObjectSid</code>  In that command, replace <i>YourGroupName</i> with the name of your Active Directory group. The regex used to validate this parameter is a string of characters consisting of uppercase and lowercase alphanumeric characters with no spaces. You can also include underscores or any of the following characters: =,.@:/-<br/>ServerId:  A system-assigned unique identifier for a server instance. This is the specific server that you added your user to.<br/>Role:  Specifies the Amazon Resource Name (ARN) of the IAM role that controls your users' access to your Amazon S3 bucket or EFS file system. The policies attached to this role determine the level of access that you want to provide your users when transferring files into and out of your Amazon S3 bucket or EFS file system. The IAM role should also contain a trust relationship that allows the server to access your resources when servicing your users' transfer requests.<br/>PosixProfile:  The full POSIX identity, including user ID (<code>Uid</code>), group ID (<code>Gid</code>), and any secondary groups IDs (<code>SecondaryGids</code>), that controls your users' access to your Amazon EFS file systems. The POSIX permissions that are set on files and directories in your file system determine the level of access your users get when transferring files into and out of your Amazon EFS file systems.:<br/>Policy:  A scope-down policy for your user so that you can use the same IAM role across multiple users. This policy scopes down user access to portions of their Amazon S3 bucket. Variables that you can use inside this policy include <code>${Transfer:UserName}</code>, <code>${Transfer:HomeDirectory}</code>, and <code>${Transfer:HomeBucket}</code>. <note> This only applies when domain of <code>ServerId</code> is S3. Amazon EFS does not use scope-down policies. For scope-down policies, Amazon Web Services Transfer Family stores the policy as a JSON blob, instead of the Amazon Resource Name (ARN) of the policy. You save the policy as a JSON blob and pass it in the <code>Policy</code> argument. For an example of a scope-down policy, see <a href="https://docs.aws.amazon.com/transfer/latest/userguide/scope-down-policy.html">Example scope-down policy</a>. For more information, see <a href="https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html">AssumeRole</a> in the <i>Amazon Web Services Security Token Service API Reference</i>. </note><br/>HomeDirectoryMappings:  Logical directory mappings that specify what Amazon S3 or Amazon EFS paths and keys should be visible to your user and how you want to make them visible. You must specify the <code>Entry</code> and <code>Target</code> pair, where <code>Entry</code> shows how the path is made visible and <code>Target</code> is the actual Amazon S3 or Amazon EFS path. If you only specify a target, it is displayed as is. You also must ensure that your Amazon Web Services Identity and Access Management (IAM) role provides access to paths in <code>Target</code>. This value can only be set when <code>HomeDirectoryType</code> is set to <i>LOGICAL</i>. The following is an <code>Entry</code> and <code>Target</code> pair example.  <code>[ { "Entry": "your-personal-report.pdf", "Target": "/bucket3/customized-reports/${transfer:UserName}.pdf" } ]</code>  In most cases, you can use this value instead of the scope-down policy to lock down your user to the designated home directory ("<code>chroot</code>"). To do this, you can set <code>Entry</code> to <code>/</code> and set <code>Target</code> to the <code>HomeDirectory</code> parameter value. The following is an <code>Entry</code> and <code>Target</code> pair example for <code>chroot</code>.  <code>[ { "Entry:": "/", "Target": "/bucket_name/home/mydirectory" } ]</code>  <note> If the target of a logical directory entry does not exist in Amazon S3 or EFS, the entry is ignored. As a workaround, you can use the Amazon S3 API or EFS API to create 0 byte objects as place holders for your directory. If using the CLI, use the <code>s3api</code> or <code>efsapi</code> call instead of <code>s3</code> or <code>efs</code> so you can use the put-object operation. For example, you use the following: <code>aws s3api put-object --bucket bucketname --key path/to/folder/</code>. Make sure that the end of the key name ends in a <code>/</code> for it to be considered a folder. </note><br/>HomeDirectoryType:  The type of landing directory (folder) you want your users' home directory to be when they log into the server. If you set it to <code>PATH</code>, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer protocol clients. If you set it <code>LOGICAL</code>, you will need to provide mappings in the <code>HomeDirectoryMappings</code> for how you want to make Amazon S3 or EFS paths visible to your users.<br/>HomeDirectory:  The landing directory (folder) for a user when they log in to the server using the client. A <code>HomeDirectory</code> example is <code>/bucket_name/home/mydirectory</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecondaryGids</i> The secondary POSIX group IDs used for all EFS operations by this user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Gid</i> The POSIX group ID used for all EFS operations by this user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Uid</i> The POSIX user ID used for all EFS operations by this user.<br/>
        :return: ExternalId:  The external ID of the group whose users have access to your Amazon S3 or Amazon EFS resources over the enabled protocols using Amazon Web Services Transfer Family.<br/>ServerId:  The ID of the server that the user is attached to.<br/>        """
        pass

    def create_server(self, Certificate: str=None, Domain: str=None, EndpointDetails: EndpointDetails=None, EndpointType: str=None, HostKey: str=None, IdentityProviderDetails: IdentityProviderDetails=None, IdentityProviderType: str=None, LoggingRole: str=None, Protocols: List[Protocol]=None, SecurityPolicyName: str=None, Tags: List[Tag]=None) -> CreateServerResponse:
        r"""Instantiates an auto-scaling virtual server based on the selected file transfer protocol in Amazon Web Services. When you make updates to your file transfer protocol-enabled server or when you work with users, use the service-generated <code>ServerId</code> property that is assigned to the newly created server.

        :param self:
        :param Tags:  Key-value pairs that can be used to group and search for servers.<br/>SecurityPolicyName:  Specifies the name of the security policy that is attached to the server.<br/>Protocols:  Specifies the file transfer protocol or protocols over which your file transfer protocol client can connect to your server's endpoint. The available protocols are: <ul> <li>  <code>SFTP</code> (Secure Shell (SSH) File Transfer Protocol): File transfer over SSH </li> <li>  <code>FTPS</code> (File Transfer Protocol Secure): File transfer with TLS encryption </li> <li>  <code>FTP</code> (File Transfer Protocol): Unencrypted file transfer </li> </ul> <note> If you select <code>FTPS</code>, you must choose a certificate stored in Amazon Web Services Certificate Manager (ACM) which is used to identify your server when clients connect to it over FTPS. If <code>Protocol</code> includes either <code>FTP</code> or <code>FTPS</code>, then the <code>EndpointType</code> must be <code>VPC</code> and the <code>IdentityProviderType</code> must be <code>AWS_DIRECTORY_SERVICE</code> or <code>API_GATEWAY</code>. If <code>Protocol</code> includes <code>FTP</code>, then <code>AddressAllocationIds</code> cannot be associated. If <code>Protocol</code> is set only to <code>SFTP</code>, the <code>EndpointType</code> can be set to <code>PUBLIC</code> and the <code>IdentityProviderType</code> can be set to <code>SERVICE_MANAGED</code>. </note><br/>LoggingRole:  Specifies the Amazon Resource Name (ARN) of the Amazon Web Services Identity and Access Management (IAM) role that allows a server to turn on Amazon CloudWatch logging for Amazon S3 or Amazon EFS events. When set, user activity can be viewed in your CloudWatch logs.<br/>IdentityProviderType:  Specifies the mode of authentication for a server. The default value is <code>SERVICE_MANAGED</code>, which allows you to store and access user credentials within the Amazon Web Services Transfer Family service. Use <code>AWS_DIRECTORY_SERVICE</code> to provide access to Active Directory groups in Amazon Web Services Managed Active Directory or Microsoft Active Directory in your on-premises environment or in Amazon Web Services using AD Connectors. This option also requires you to provide a Directory ID using the <code>IdentityProviderDetails</code> parameter. Use the <code>API_GATEWAY</code> value to integrate with an identity provider of your choosing. The <code>API_GATEWAY</code> setting requires you to provide an API Gateway endpoint URL to call for authentication using the <code>IdentityProviderDetails</code> parameter.<br/>IdentityProviderDetails:  Required when <code>IdentityProviderType</code> is set to <code>AWS_DIRECTORY_SERVICE</code> or <code>API_GATEWAY</code>. Accepts an array containing all of the information required to use a directory in <code>AWS_DIRECTORY_SERVICE</code> or invoke a customer-supplied authentication API, including the API Gateway URL. Not required when <code>IdentityProviderType</code> is set to <code>SERVICE_MANAGED</code>.:<br/>HostKey:  The RSA private key as generated by the <code>ssh-keygen -N "" -m PEM -f my-new-server-key</code> command. <important> If you aren't planning to migrate existing users from an existing SFTP-enabled server to a new server, don't update the host key. Accidentally changing a server's host key can be disruptive. </important> For more information, see <a href="https://docs.aws.amazon.com/transfer/latest/userguide/edit-server-config.html#configuring-servers-change-host-key">Change the host key for your SFTP-enabled server</a> in the <i>Amazon Web Services Transfer Family User Guide</i>.<br/>EndpointType:  The type of endpoint that you want your server to use. You can choose to make your server's endpoint publicly accessible (PUBLIC) or host it inside your VPC. With an endpoint that is hosted in a VPC, you can restrict access to your server and resources only within your VPC or choose to make it internet facing by attaching Elastic IP addresses directly to it. <note>  After May 19, 2021, you won't be able to create a server using <code>EndpointType=VPC_ENDPOINT</code> in your Amazon Web Services account if your account hasn't already done so before May 19, 2021. If you have already created servers with <code>EndpointType=VPC_ENDPOINT</code> in your Amazon Web Services account on or before May 19, 2021, you will not be affected. After this date, use <code>EndpointType</code>=<code>VPC</code>. For more information, see https://docs.aws.amazon.com/transfer/latest/userguide/create-server-in-vpc.html#deprecate-vpc-endpoint. It is recommended that you use <code>VPC</code> as the <code>EndpointType</code>. With this endpoint type, you have the option to directly associate up to three Elastic IPv4 addresses (BYO IP included) with your server's endpoint and use VPC security groups to restrict traffic by the client's public IP address. This is not possible with <code>EndpointType</code> set to <code>VPC_ENDPOINT</code>. </note><br/>EndpointDetails:  The virtual private cloud (VPC) endpoint settings that are configured for your server. When you host your endpoint within your VPC, you can make it accessible only to resources within your VPC, or you can attach Elastic IP addresses and make it accessible to clients over the internet. Your VPC's default security groups are automatically assigned to your endpoint.:<br/>Domain:  The domain of the storage system that is used for file transfers. There are two domains available: Amazon Simple Storage Service (Amazon S3) and Amazon Elastic File System (Amazon EFS). The default value is S3. <note> After the server is created, the domain cannot be changed. </note><br/>Certificate:  The Amazon Resource Name (ARN) of the Amazon Web Services Certificate Manager (ACM) certificate. Required when <code>Protocols</code> is set to <code>FTPS</code>. To request a new public certificate, see <a href="https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-request-public.html">Request a public certificate</a> in the <i> Amazon Web Services Certificate Manager User Guide</i>. To import an existing certificate into ACM, see <a href="https://docs.aws.amazon.com/acm/latest/userguide/import-certificate.html">Importing certificates into ACM</a> in the <i> Amazon Web Services Certificate Manager User Guide</i>. To request a private certificate to use FTPS through private IP addresses, see <a href="https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-request-private.html">Request a private certificate</a> in the <i> Amazon Web Services Certificate Manager User Guide</i>. Certificates with the following cryptographic algorithms and key sizes are supported: <ul> <li> 2048-bit RSA (RSA_2048) </li> <li> 4096-bit RSA (RSA_4096) </li> <li> Elliptic Prime Curve 256 bit (EC_prime256v1) </li> <li> Elliptic Prime Curve 384 bit (EC_secp384r1) </li> <li> Elliptic Prime Curve 521 bit (EC_secp521r1) </li> </ul> <note> The certificate must be a valid SSL/TLS X.509 version 3 certificate with FQDN or IP address specified and information about the issuer. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> A list of security groups IDs that are available to attach to your server's endpoint. <note> This property can only be set when <code>EndpointType</code> is set to <code>VPC</code>. You can edit the <code>SecurityGroupIds</code> property in the <a href="https://docs.aws.amazon.com/transfer/latest/userguide/API_UpdateServer.html">UpdateServer</a> API only if you are changing the <code>EndpointType</code> from <code>PUBLIC</code> or <code>VPC_ENDPOINT</code> to <code>VPC</code>. To change security groups associated with your server's VPC endpoint after creation, use the Amazon EC2 <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyVpcEndpoint.html">ModifyVpcEndpoint</a> API. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The VPC ID of the VPC in which a server's endpoint will be hosted. <note> This property can only be set when <code>EndpointType</code> is set to <code>VPC</code>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcEndpointId</i> The ID of the VPC endpoint. <note> This property can only be set when <code>EndpointType</code> is set to <code>VPC_ENDPOINT</code>. For more information, see https://docs.aws.amazon.com/transfer/latest/userguide/create-server-in-vpc.html#deprecate-vpc-endpoint. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetIds</i> A list of subnet IDs that are required to host your server endpoint in your VPC. <note> This property can only be set when <code>EndpointType</code> is set to <code>VPC</code>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AddressAllocationIds</i> A list of address allocation IDs that are required to attach an Elastic IP address to your server's endpoint. <note> This property can only be set when <code>EndpointType</code> is set to <code>VPC</code> and it is only valid in the <code>UpdateServer</code> API. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DirectoryId</i> The identifier of the Amazon Web ServicesDirectory Service directory that you want to stop sharing.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InvocationRole</i> Provides the type of <code>InvocationRole</code> used to authenticate the user account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Url</i> Provides the location of the service endpoint used to authenticate users.<br/>
        :return: ServerId:  The service-assigned ID of the server that is created.<br/>        """
        pass

    def create_user(self, UserName: str, ServerId: str, Role: str, HomeDirectory: str=None, HomeDirectoryType: str=None, HomeDirectoryMappings: List[HomeDirectoryMapEntry]=None, Policy: str=None, PosixProfile: PosixProfile=None, SshPublicKeyBody: str=None, Tags: List[Tag]=None) -> CreateUserResponse:
        r"""Creates a user and associates them with an existing file transfer protocol-enabled server. You can only create and associate users with servers that have the <code>IdentityProviderType</code> set to <code>SERVICE_MANAGED</code>. Using parameters for <code>CreateUser</code>, you can specify the user name, set the home directory, store the user's public key, and assign the user's Amazon Web Services Identity and Access Management (IAM) role. You can also optionally add a scope-down policy, and assign metadata with tags that can be used to group and search for users.

        :param self:
        :param UserName:  A unique string that identifies a user and is associated with a as specified by the <code>ServerId</code>. This user name must be a minimum of 3 and a maximum of 100 characters long. The following are valid characters: a-z, A-Z, 0-9, underscore '_', hyphen '-', period '.', and at sign '@'. The user name can't start with a hyphen, period, or at sign.<br/>Tags:  Key-value pairs that can be used to group and search for users. Tags are metadata attached to users for any purpose.<br/>SshPublicKeyBody:  The public portion of the Secure Shell (SSH) key used to authenticate the user to the server.<br/>ServerId:  A system-assigned unique identifier for a server instance. This is the specific server that you added your user to.<br/>Role:  Specifies the Amazon Resource Name (ARN) of the IAM role that controls your users' access to your Amazon S3 bucket or EFS file system. The policies attached to this role determine the level of access that you want to provide your users when transferring files into and out of your Amazon S3 bucket or EFS file system. The IAM role should also contain a trust relationship that allows the server to access your resources when servicing your users' transfer requests.<br/>PosixProfile:  Specifies the full POSIX identity, including user ID (<code>Uid</code>), group ID (<code>Gid</code>), and any secondary groups IDs (<code>SecondaryGids</code>), that controls your users' access to your Amazon EFS file systems. The POSIX permissions that are set on files and directories in Amazon EFS determine the level of access your users get when transferring files into and out of your Amazon EFS file systems.:<br/>Policy:  A scope-down policy for your user so that you can use the same IAM role across multiple users. This policy scopes down user access to portions of their Amazon S3 bucket. Variables that you can use inside this policy include <code>${Transfer:UserName}</code>, <code>${Transfer:HomeDirectory}</code>, and <code>${Transfer:HomeBucket}</code>. <note> This only applies when domain of ServerId is S3. EFS does not use scope down policy. For scope-down policies, Amazon Web Services Transfer Family stores the policy as a JSON blob, instead of the Amazon Resource Name (ARN) of the policy. You save the policy as a JSON blob and pass it in the <code>Policy</code> argument. For an example of a scope-down policy, see <a href="https://docs.aws.amazon.com/transfer/latest/userguide/scope-down-policy.html">Example scope-down policy</a>. For more information, see <a href="https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html">AssumeRole</a> in the <i>Amazon Web Services Security Token Service API Reference</i>. </note><br/>HomeDirectoryMappings:  Logical directory mappings that specify what Amazon S3 or Amazon EFS paths and keys should be visible to your user and how you want to make them visible. You must specify the <code>Entry</code> and <code>Target</code> pair, where <code>Entry</code> shows how the path is made visible and <code>Target</code> is the actual Amazon S3 or Amazon EFS path. If you only specify a target, it is displayed as is. You also must ensure that your Amazon Web Services Identity and Access Management (IAM) role provides access to paths in <code>Target</code>. This value can only be set when <code>HomeDirectoryType</code> is set to <i>LOGICAL</i>. The following is an <code>Entry</code> and <code>Target</code> pair example.  <code>[ { "Entry": "your-personal-report.pdf", "Target": "/bucket3/customized-reports/${transfer:UserName}.pdf" } ]</code>  In most cases, you can use this value instead of the scope-down policy to lock your user down to the designated home directory ("<code>chroot</code>"). To do this, you can set <code>Entry</code> to <code>/</code> and set <code>Target</code> to the HomeDirectory parameter value. The following is an <code>Entry</code> and <code>Target</code> pair example for <code>chroot</code>.  <code>[ { "Entry:": "/", "Target": "/bucket_name/home/mydirectory" } ]</code>  <note> If the target of a logical directory entry does not exist in Amazon S3 or EFS, the entry is ignored. As a workaround, you can use the Amazon S3 API or EFS API to create 0 byte objects as place holders for your directory. If using the CLI, use the <code>s3api</code> or <code>efsapi</code> call instead of <code>s3</code> or <code>efs</code> so you can use the put-object operation. For example, you use the following: <code>aws s3api put-object --bucket bucketname --key path/to/folder/</code>. Make sure that the end of the key name ends in a <code>/</code> for it to be considered a folder. </note><br/>HomeDirectoryType:  The type of landing directory (folder) you want your users' home directory to be when they log into the server. If you set it to <code>PATH</code>, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer protocol clients. If you set it <code>LOGICAL</code>, you will need to provide mappings in the <code>HomeDirectoryMappings</code> for how you want to make Amazon S3 or EFS paths visible to your users.<br/>HomeDirectory:  The landing directory (folder) for a user when they log in to the server using the client. A <code>HomeDirectory</code> example is <code>/bucket_name/home/mydirectory</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecondaryGids</i> The secondary POSIX group IDs used for all EFS operations by this user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Gid</i> The POSIX group ID used for all EFS operations by this user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Uid</i> The POSIX user ID used for all EFS operations by this user.<br/>
        :return: UserName:  A unique string that identifies a user account associated with a server.<br/>ServerId:  The ID of the server that the user is attached to.<br/>        """
        pass

    def delete_access(self, ExternalId: str, ServerId: str):
        r"""Allows you to delete the access specified in the <code>ServerID</code> and <code>ExternalID</code> parameters.

        :param self:
        :param ExternalId:  A unique identifier that is required to identify specific groups within your directory. The users of the group that you associate have access to your Amazon S3 or Amazon EFS resources over the enabled protocols using Amazon Web Services Transfer Family. If you know the group name, you can view the SID values by running the following command using Windows PowerShell.  <code>Get-ADGroup -Filter {samAccountName -like "<i>YourGroupName</i>*"} -Properties * | Select SamAccountName,ObjectSid</code>  In that command, replace <i>YourGroupName</i> with the name of your Active Directory group. The regex used to validate this parameter is a string of characters consisting of uppercase and lowercase alphanumeric characters with no spaces. You can also include underscores or any of the following characters: =,.@:/-<br/>ServerId:  A system-assigned unique identifier for a server that has this user assigned.<br/>
        :return:         """
        pass

    def delete_server(self, ServerId: str):
        r"""Deletes the file transfer protocol-enabled server that you specify. No response returns from this operation.

        :param self:
        :param ServerId:  A unique system-assigned identifier for a server instance.<br/>
        :return:         """
        pass

    def delete_ssh_public_key(self, UserName: str, SshPublicKeyId: str, ServerId: str):
        r"""Deletes a user's Secure Shell (SSH) public key. No response is returned from this operation.

        :param self:
        :param UserName:  A unique string that identifies a user whose public key is being deleted.<br/>SshPublicKeyId:  A unique identifier used to reference your user's specific SSH key.<br/>ServerId:  A system-assigned unique identifier for a file transfer protocol-enabled server instance that has the user assigned to it.<br/>
        :return:         """
        pass

    def delete_user(self, UserName: str, ServerId: str):
        r"""Deletes the user belonging to a file transfer protocol-enabled server you specify. No response returns from this operation. <note> When you delete a user from a server, the user's information is lost. </note>

        :param self:
        :param UserName:  A unique string that identifies a user that is being deleted from a server.<br/>ServerId:  A system-assigned unique identifier for a server instance that has the user assigned to it.<br/>
        :return:         """
        pass

    def describe_access(self, ExternalId: str, ServerId: str) -> DescribeAccessResponse:
        r"""Describes the access that is assigned to the specific file transfer protocol-enabled server, as identified by its <code>ServerId</code> property and its <code>ExternalID</code>. The response from this call returns the properties of the access that is associated with the <code>ServerId</code> value that was specified.

        :param self:
        :param ExternalId:  A unique identifier that is required to identify specific groups within your directory. The users of the group that you associate have access to your Amazon S3 or Amazon EFS resources over the enabled protocols using Amazon Web Services Transfer Family. If you know the group name, you can view the SID values by running the following command using Windows PowerShell.  <code>Get-ADGroup -Filter {samAccountName -like "<i>YourGroupName</i>*"} -Properties * | Select SamAccountName,ObjectSid</code>  In that command, replace <i>YourGroupName</i> with the name of your Active Directory group. The regex used to validate this parameter is a string of characters consisting of uppercase and lowercase alphanumeric characters with no spaces. You can also include underscores or any of the following characters: =,.@:/-<br/>ServerId:  A system-assigned unique identifier for a server that has this access assigned.<br/>
        :return: Access:  The external ID of the server that the access is attached to.:<br/>ServerId:  A system-assigned unique identifier for a server that has this access assigned.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ExternalId</i> A unique identifier that is required to identify specific groups within your directory. The users of the group that you associate have access to your Amazon S3 or Amazon EFS resources over the enabled protocols using Amazon Web Services Transfer Family. If you know the group name, you can view the SID values by running the following command using Windows PowerShell.  <code>Get-ADGroup -Filter {samAccountName -like "<i>YourGroupName</i>*"} -Properties * | Select SamAccountName,ObjectSid</code>  In that command, replace <i>YourGroupName</i> with the name of your Active Directory group. The regex used to validate this parameter is a string of characters consisting of uppercase and lowercase alphanumeric characters with no spaces. You can also include underscores or any of the following characters: =,.@:/-<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Role</i> Specifies the Amazon Resource Name (ARN) of the IAM role that controls your users' access to your Amazon S3 bucket or EFS file system. The policies attached to this role determine the level of access that you want to provide your users when transferring files into and out of your Amazon S3 bucket or EFS file system. The IAM role should also contain a trust relationship that allows the server to access your resources when servicing your users' transfer requests.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PosixProfile</i> The full POSIX identity, including user ID (<code>Uid</code>), group ID (<code>Gid</code>), and any secondary groups IDs (<code>SecondaryGids</code>), that controls your users' access to your Amazon EFS file systems. The POSIX permissions that are set on files and directories in your file system determine the level of access your users get when transferring files into and out of your Amazon EFS file systems.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PosixProfile</b>: The full POSIX identity, including user ID (<code>Uid</code>), group ID (<code>Gid</code>), and any secondary groups IDs (<code>SecondaryGids</code>), that controls your users' access to your Amazon EFS file systems. The POSIX permissions that are set on files and directories in your file system determine the level of access your users get when transferring files into and out of your Amazon EFS file systems.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Policy</i> A scope-down policy for your user so that you can use the same IAM role across multiple users. This policy scopes down user access to portions of their Amazon S3 bucket. Variables that you can use inside this policy include <code>${Transfer:UserName}</code>, <code>${Transfer:HomeDirectory}</code>, and <code>${Transfer:HomeBucket}</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HomeDirectoryType</i> The type of landing directory (folder) you want your users' home directory to be when they log into the server. If you set it to <code>PATH</code>, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer protocol clients. If you set it <code>LOGICAL</code>, you will need to provide mappings in the <code>HomeDirectoryMappings</code> for how you want to make Amazon S3 or EFS paths visible to your users.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HomeDirectoryMappings</i> Logical directory mappings that specify what Amazon S3 or Amazon EFS paths and keys should be visible to your user and how you want to make them visible. You must specify the <code>Entry</code> and <code>Target</code> pair, where <code>Entry</code> shows how the path is made visible and <code>Target</code> is the actual Amazon S3 or Amazon EFS path. If you only specify a target, it is displayed as is. You also must ensure that your Amazon Web Services Identity and Access Management (IAM) role provides access to paths in <code>Target</code>. This value can only be set when <code>HomeDirectoryType</code> is set to <i>LOGICAL</i>. In most cases, you can use this value instead of the scope-down policy to lock down the associated access to the designated home directory ("<code>chroot</code>"). To do this, you can set <code>Entry</code> to '/' and set <code>Target</code> to the <code>HomeDirectory</code> parameter value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HomeDirectory</i> The landing directory (folder) for a user when they log in to the server using the client. A <code>HomeDirectory</code> example is <code>/bucket_name/home/mydirectory</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecondaryGids</i> The secondary POSIX group IDs used for all EFS operations by this user.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Gid</i> The POSIX group ID used for all EFS operations by this user.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Uid</i> The POSIX user ID used for all EFS operations by this user.<br/>        """
        pass

    def describe_security_policy(self, SecurityPolicyName: str) -> DescribeSecurityPolicyResponse:
        r"""Describes the security policy that is attached to your file transfer protocol-enabled server. The response contains a description of the security policy's properties. For more information about security policies, see <a href="https://docs.aws.amazon.com/transfer/latest/userguide/security-policies.html">Working with security policies</a>.

        :param self:
        :param SecurityPolicyName:  Specifies the name of the security policy that is attached to the server.<br/>
        :return: SecurityPolicy:  An array containing the properties of the security policy.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TlsCiphers</i> Specifies the enabled Transport Layer Security (TLS) cipher encryption algorithms in the security policy that is attached to the server.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SshMacs</i> Specifies the enabled SSH message authentication code (MAC) encryption algorithms in the security policy that is attached to the server.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SshKexs</i> Specifies the enabled SSH key exchange (KEX) encryption algorithms in the security policy that is attached to the server.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SshCiphers</i> Specifies the enabled Secure Shell (SSH) cipher encryption algorithms in the security policy that is attached to the server.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityPolicyName</i> Specifies the name of the security policy that is attached to the server.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Fips</i> Specifies whether this policy enables Federal Information Processing Standards (FIPS).<br/>        """
        pass

    def describe_server(self, ServerId: str) -> DescribeServerResponse:
        r"""Describes a file transfer protocol-enabled server that you specify by passing the <code>ServerId</code> parameter. The response contains a description of a server's properties. When you set <code>EndpointType</code> to VPC, the response will contain the <code>EndpointDetails</code>.

        :param self:
        :param ServerId:  A system-assigned unique identifier for a server.<br/>
        :return: Server:  An array containing the properties of a server with the <code>ServerID</code> you specified.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserCount</i> Specifies the number of users that are assigned to a server you specified with the <code>ServerId</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> Specifies the key-value pairs that you can use to search for and group servers that were assigned to the server that was described.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> Specifies the condition of a server for the server that was described. A value of <code>ONLINE</code> indicates that the server can accept jobs and transfer files. A <code>State</code> value of <code>OFFLINE</code> means that the server cannot perform file transfer operations. The states of <code>STARTING</code> and <code>STOPPING</code> indicate that the server is in an intermediate state, either not fully able to respond, or not fully offline. The values of <code>START_FAILED</code> or <code>STOP_FAILED</code> can indicate an error condition.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServerId</i> Specifies the unique system-assigned identifier for a server that you instantiate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityPolicyName</i> Specifies the name of the security policy that is attached to the server.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Protocols</i> Specifies the file transfer protocol or protocols over which your file transfer protocol client can connect to your server's endpoint. The available protocols are: <ul> <li>  <code>SFTP</code> (Secure Shell (SSH) File Transfer Protocol): File transfer over SSH </li> <li>  <code>FTPS</code> (File Transfer Protocol Secure): File transfer with TLS encryption </li> <li>  <code>FTP</code> (File Transfer Protocol): Unencrypted file transfer </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LoggingRole</i> Specifies the Amazon Resource Name (ARN) of the Amazon Web Services Identity and Access Management (IAM) role that allows a server to turn on Amazon CloudWatch logging for Amazon S3 or Amazon EFS events. When set, user activity can be viewed in your CloudWatch logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IdentityProviderType</i> Specifies the mode of authentication for a server. The default value is <code>SERVICE_MANAGED</code>, which allows you to store and access user credentials within the Amazon Web Services Transfer Family service. Use <code>AWS_DIRECTORY_SERVICE</code> to provide access to Active Directory groups in Amazon Web Services Managed Active Directory or Microsoft Active Directory in your on-premises environment or in Amazon Web Services using AD Connectors. This option also requires you to provide a Directory ID using the <code>IdentityProviderDetails</code> parameter. Use the <code>API_GATEWAY</code> value to integrate with an identity provider of your choosing. The <code>API_GATEWAY</code> setting requires you to provide an API Gateway endpoint URL to call for authentication using the <code>IdentityProviderDetails</code> parameter.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IdentityProviderDetails</i> Specifies information to call a customer-supplied authentication API. This field is not populated when the <code>IdentityProviderType</code> of a server is <code>AWS_DIRECTORY_SERVICE</code> or <code>SERVICE_MANAGED</code>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>IdentityProviderDetails</b>: Specifies information to call a customer-supplied authentication API. This field is not populated when the <code>IdentityProviderType</code> of a server is <code>AWS_DIRECTORY_SERVICE</code> or <code>SERVICE_MANAGED</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HostKeyFingerprint</i> Specifies the Base64-encoded SHA256 fingerprint of the server's host key. This value is equivalent to the output of the <code>ssh-keygen -l -f my-new-server-key</code> command.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointType</i> Defines the type of endpoint that your server is connected to. If your server is connected to a VPC endpoint, your server isn't accessible over the public internet.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndpointDetails</i> The virtual private cloud (VPC) endpoint settings that are configured for your server. When you host your endpoint within your VPC, you can make it accessible only to resources within your VPC, or you can attach Elastic IP addresses and make it accessible to clients over the internet. Your VPC's default security groups are automatically assigned to your endpoint.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EndpointDetails</b>: The virtual private cloud (VPC) endpoint settings that are configured for your server. When you host your endpoint within your VPC, you can make it accessible only to resources within your VPC, or you can attach Elastic IP addresses and make it accessible to clients over the internet. Your VPC's default security groups are automatically assigned to your endpoint.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Domain</i> Specifies the domain of the storage system that is used for file transfers.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ProtocolDetails</i>  The protocol settings that are configured for your server.   Use the <code>PassiveIp</code> parameter to indicate passive mode. Enter a single dotted-quad IPv4 address, such as the external IP address of a firewall, router, or load balancer. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ProtocolDetails</b>:  The protocol settings that are configured for your server.   Use the <code>PassiveIp</code> parameter to indicate passive mode. Enter a single dotted-quad IPv4 address, such as the external IP address of a firewall, router, or load balancer. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Certificate</i> Specifies the ARN of the Amazon Web ServicesCertificate Manager (ACM) certificate. Required when <code>Protocols</code> is set to <code>FTPS</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> Specifies the unique Amazon Resource Name (ARN) of the server.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PassiveIp</i>  Indicates passive mode, for FTP and FTPS protocols. Enter a single dotted-quad IPv4 address, such as the external IP address of a firewall, router, or load balancer. For example:   <code> aws transfer update-server --protocol-details PassiveIp=<i>0.0.0.0</i> </code>  Replace <code> <i>0.0.0.0</i> </code> in the example above with the actual IP address you want to use.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> A list of security groups IDs that are available to attach to your server's endpoint. <note> This property can only be set when <code>EndpointType</code> is set to <code>VPC</code>. You can edit the <code>SecurityGroupIds</code> property in the <a href="https://docs.aws.amazon.com/transfer/latest/userguide/API_UpdateServer.html">UpdateServer</a> API only if you are changing the <code>EndpointType</code> from <code>PUBLIC</code> or <code>VPC_ENDPOINT</code> to <code>VPC</code>. To change security groups associated with your server's VPC endpoint after creation, use the Amazon EC2 <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyVpcEndpoint.html">ModifyVpcEndpoint</a> API. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The VPC ID of the VPC in which a server's endpoint will be hosted. <note> This property can only be set when <code>EndpointType</code> is set to <code>VPC</code>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcEndpointId</i> The ID of the VPC endpoint. <note> This property can only be set when <code>EndpointType</code> is set to <code>VPC_ENDPOINT</code>. For more information, see https://docs.aws.amazon.com/transfer/latest/userguide/create-server-in-vpc.html#deprecate-vpc-endpoint. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetIds</i> A list of subnet IDs that are required to host your server endpoint in your VPC. <note> This property can only be set when <code>EndpointType</code> is set to <code>VPC</code>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AddressAllocationIds</i> A list of address allocation IDs that are required to attach an Elastic IP address to your server's endpoint. <note> This property can only be set when <code>EndpointType</code> is set to <code>VPC</code> and it is only valid in the <code>UpdateServer</code> API. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DirectoryId</i> The identifier of the Amazon Web ServicesDirectory Service directory that you want to stop sharing.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InvocationRole</i> Provides the type of <code>InvocationRole</code> used to authenticate the user account.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Url</i> Provides the location of the service endpoint used to authenticate users.<br/>        """
        pass

    def describe_user(self, UserName: str, ServerId: str) -> DescribeUserResponse:
        r"""Describes the user assigned to the specific file transfer protocol-enabled server, as identified by its <code>ServerId</code> property. The response from this call returns the properties of the user associated with the <code>ServerId</code> value that was specified.

        :param self:
        :param UserName:  The name of the user assigned to one or more servers. User names are part of the sign-in credentials to use the Amazon Web Services Transfer Family service and perform file transfer tasks.<br/>ServerId:  A system-assigned unique identifier for a server that has this user assigned.<br/>
        :return: User:  An array containing the properties of the user account for the <code>ServerID</code> value that you specified.:<br/>ServerId:  A system-assigned unique identifier for a server that has this user assigned.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserName</i> Specifies the name of the user that was requested to be described. User names are used for authentication purposes. This is the string that will be used by your user when they log in to your server.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> Specifies the key-value pairs for the user requested. Tag can be used to search for and group users for a variety of purposes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SshPublicKeys</i> Specifies the public key portion of the Secure Shell (SSH) keys stored for the described user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Role</i> Specifies the Amazon Resource Name (ARN) of the IAM role that controls your users' access to your Amazon S3 bucket or EFS file system. The policies attached to this role determine the level of access that you want to provide your users when transferring files into and out of your Amazon S3 bucket or EFS file system. The IAM role should also contain a trust relationship that allows the server to access your resources when servicing your users' transfer requests.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PosixProfile</i> Specifies the full POSIX identity, including user ID (<code>Uid</code>), group ID (<code>Gid</code>), and any secondary groups IDs (<code>SecondaryGids</code>), that controls your users' access to your Amazon Elastic File System (Amazon EFS) file systems. The POSIX permissions that are set on files and directories in your file system determine the level of access your users get when transferring files into and out of your Amazon EFS file systems.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>PosixProfile</b>: Specifies the full POSIX identity, including user ID (<code>Uid</code>), group ID (<code>Gid</code>), and any secondary groups IDs (<code>SecondaryGids</code>), that controls your users' access to your Amazon Elastic File System (Amazon EFS) file systems. The POSIX permissions that are set on files and directories in your file system determine the level of access your users get when transferring files into and out of your Amazon EFS file systems.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Policy</i> A scope-down policy for your user so that you can use the same IAM role across multiple users. This policy scopes down user access to portions of their Amazon S3 bucket. Variables that you can use inside this policy include <code>${Transfer:UserName}</code>, <code>${Transfer:HomeDirectory}</code>, and <code>${Transfer:HomeBucket}</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HomeDirectoryType</i> The type of landing directory (folder) you want your users' home directory to be when they log into the server. If you set it to <code>PATH</code>, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer protocol clients. If you set it <code>LOGICAL</code>, you will need to provide mappings in the <code>HomeDirectoryMappings</code> for how you want to make Amazon S3 or EFS paths visible to your users.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HomeDirectoryMappings</i> Logical directory mappings that specify what Amazon S3 or Amazon EFS paths and keys should be visible to your user and how you want to make them visible. You must specify the <code>Entry</code> and <code>Target</code> pair, where <code>Entry</code> shows how the path is made visible and <code>Target</code> is the actual Amazon S3 or Amazon EFS path. If you only specify a target, it is displayed as is. You also must ensure that your Amazon Web Services Identity and Access Management (IAM) role provides access to paths in <code>Target</code>. This value can only be set when <code>HomeDirectoryType</code> is set to <i>LOGICAL</i>. In most cases, you can use this value instead of the scope-down policy to lock your user down to the designated home directory ("<code>chroot</code>"). To do this, you can set <code>Entry</code> to '/' and set <code>Target</code> to the HomeDirectory parameter value.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HomeDirectory</i> The landing directory (folder) for a user when they log in to the server using the client. A <code>HomeDirectory</code> example is <code>/bucket_name/home/mydirectory</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> Specifies the unique Amazon Resource Name (ARN) for the user that was requested to be described.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SecondaryGids</i> The secondary POSIX group IDs used for all EFS operations by this user.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Gid</i> The POSIX group ID used for all EFS operations by this user.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Uid</i> The POSIX user ID used for all EFS operations by this user.<br/>        """
        pass

    def import_ssh_public_key(self, UserName: str, SshPublicKeyBody: str, ServerId: str) -> ImportSshPublicKeyResponse:
        r"""Adds a Secure Shell (SSH) public key to a user account identified by a <code>UserName</code> value assigned to the specific file transfer protocol-enabled server, identified by <code>ServerId</code>. The response returns the <code>UserName</code> value, the <code>ServerId</code> value, and the name of the <code>SshPublicKeyId</code>.

        :param self:
        :param UserName:  The name of the user account that is assigned to one or more servers.<br/>SshPublicKeyBody:  The public key portion of an SSH key pair.<br/>ServerId:  A system-assigned unique identifier for a server.<br/>
        :return: UserName:  A user name assigned to the <code>ServerID</code> value that you specified.<br/>SshPublicKeyId:  The name given to a public key by the system that was imported.<br/>ServerId:  A system-assigned unique identifier for a server.<br/>        """
        pass

    def list_accesses(self, ServerId: str, MaxResults: int=None, NextToken: str=None) -> ListAccessesResponse:
        r"""Lists the details for all the accesses you have on your server.

        :param self:
        :param ServerId:  A system-assigned unique identifier for a server that has users assigned to it.<br/>NextToken:  When you can get additional results from the <code>ListAccesses</code> call, a <code>NextToken</code> parameter is returned in the output. You can then pass in a subsequent command to the <code>NextToken</code> parameter to continue listing additional accesses.<br/>MaxResults:  Specifies the maximum number of access SIDs to return.<br/>
        :return: Accesses:  Returns the accesses and their properties for the <code>ServerId</code> value that you specify.<br/>ServerId:  A system-assigned unique identifier for a server that has users assigned to it.<br/>NextToken:  When you can get additional results from the <code>ListAccesses</code> call, a <code>NextToken</code> parameter is returned in the output. You can then pass in a subsequent command to the <code>NextToken</code> parameter to continue listing additional accesses.<br/>        """
        pass

    def list_security_policies(self, MaxResults: int=None, NextToken: str=None) -> ListSecurityPoliciesResponse:
        r"""Lists the security policies that are attached to your file transfer protocol-enabled servers.

        :param self:
        :param NextToken:  When additional results are obtained from the <code>ListSecurityPolicies</code> command, a <code>NextToken</code> parameter is returned in the output. You can then pass the <code>NextToken</code> parameter in a subsequent command to continue listing additional security policies.<br/>MaxResults:  Specifies the number of security policies to return as a response to the <code>ListSecurityPolicies</code> query.<br/>
        :return: SecurityPolicyNames:  An array of security policies that were listed.<br/>NextToken:  When you can get additional results from the <code>ListSecurityPolicies</code> operation, a <code>NextToken</code> parameter is returned in the output. In a following command, you can pass in the <code>NextToken</code> parameter to continue listing security policies.<br/>        """
        pass

    def list_servers(self, MaxResults: int=None, NextToken: str=None) -> ListServersResponse:
        r"""Lists the file transfer protocol-enabled servers that are associated with your Amazon Web Services account.

        :param self:
        :param NextToken:  When additional results are obtained from the <code>ListServers</code> command, a <code>NextToken</code> parameter is returned in the output. You can then pass the <code>NextToken</code> parameter in a subsequent command to continue listing additional servers.<br/>MaxResults:  Specifies the number of servers to return as a response to the <code>ListServers</code> query.<br/>
        :return: Servers:  An array of servers that were listed.<br/>NextToken:  When you can get additional results from the <code>ListServers</code> operation, a <code>NextToken</code> parameter is returned in the output. In a following command, you can pass in the <code>NextToken</code> parameter to continue listing additional servers.<br/>        """
        pass

    def list_tags_for_resource(self, Arn: str, MaxResults: int=None, NextToken: str=None) -> ListTagsForResourceResponse:
        r"""Lists all of the tags associated with the Amazon Resource Name (ARN) that you specify. The resource can be a user, server, or role.

        :param self:
        :param NextToken:  When you request additional results from the <code>ListTagsForResource</code> operation, a <code>NextToken</code> parameter is returned in the input. You can then pass in a subsequent command to the <code>NextToken</code> parameter to continue listing additional tags.<br/>MaxResults:  Specifies the number of tags to return as a response to the <code>ListTagsForResource</code> request.<br/>Arn:  Requests the tags associated with a particular Amazon Resource Name (ARN). An ARN is an identifier for a specific Amazon Web Services resource, such as a server, user, or role.<br/>
        :return: Tags:  Key-value pairs that are assigned to a resource, usually for the purpose of grouping and searching for items. Tags are metadata that you define.<br/>NextToken:  When you can get additional results from the <code>ListTagsForResource</code> call, a <code>NextToken</code> parameter is returned in the output. You can then pass in a subsequent command to the <code>NextToken</code> parameter to continue listing additional tags.<br/>Arn:  The ARN you specified to list the tags of.<br/>        """
        pass

    def list_users(self, ServerId: str, MaxResults: int=None, NextToken: str=None) -> ListUsersResponse:
        r"""Lists the users for a file transfer protocol-enabled server that you specify by passing the <code>ServerId</code> parameter.

        :param self:
        :param ServerId:  A system-assigned unique identifier for a server that has users assigned to it.<br/>NextToken:  When you can get additional results from the <code>ListUsers</code> call, a <code>NextToken</code> parameter is returned in the output. You can then pass in a subsequent command to the <code>NextToken</code> parameter to continue listing additional users.<br/>MaxResults:  Specifies the number of users to return as a response to the <code>ListUsers</code> request.<br/>
        :return: Users:  Returns the user accounts and their properties for the <code>ServerId</code> value that you specify.<br/>ServerId:  A system-assigned unique identifier for a server that the users are assigned to.<br/>NextToken:  When you can get additional results from the <code>ListUsers</code> call, a <code>NextToken</code> parameter is returned in the output. You can then pass in a subsequent command to the <code>NextToken</code> parameter to continue listing additional users.<br/>        """
        pass

    def start_server(self, ServerId: str):
        r"""Changes the state of a file transfer protocol-enabled server from <code>OFFLINE</code> to <code>ONLINE</code>. It has no impact on a server that is already <code>ONLINE</code>. An <code>ONLINE</code> server can accept and process file transfer jobs. The state of <code>STARTING</code> indicates that the server is in an intermediate state, either not fully able to respond, or not fully online. The values of <code>START_FAILED</code> can indicate an error condition. No response is returned from this call.

        :param self:
        :param ServerId:  A system-assigned unique identifier for a server that you start.<br/>
        :return:         """
        pass

    def stop_server(self, ServerId: str):
        r"""Changes the state of a file transfer protocol-enabled server from <code>ONLINE</code> to <code>OFFLINE</code>. An <code>OFFLINE</code> server cannot accept and process file transfer jobs. Information tied to your server, such as server and user properties, are not affected by stopping your server. <note> Stopping the server will not reduce or impact your file transfer protocol endpoint billing; you must delete the server to stop being billed. </note> The state of <code>STOPPING</code> indicates that the server is in an intermediate state, either not fully able to respond, or not fully offline. The values of <code>STOP_FAILED</code> can indicate an error condition. No response is returned from this call.

        :param self:
        :param ServerId:  A system-assigned unique identifier for a server that you stopped.<br/>
        :return:         """
        pass

    def tag_resource(self, Tags: List[Tag], Arn: str):
        r"""Attaches a key-value pair to a resource, as identified by its Amazon Resource Name (ARN). Resources are users, servers, roles, and other entities. There is no response returned from this call.

        :param self:
        :param Tags:  Key-value pairs assigned to ARNs that you can use to group and search for resources by type. You can attach this metadata to user accounts for any purpose.<br/>Arn:  An Amazon Resource Name (ARN) for a specific Amazon Web Services resource, such as a server, user, or role.<br/>
        :return:         """
        pass

    def test_identity_provider(self, UserName: str, ServerId: str, ServerProtocol: str=None, SourceIp: str=None, UserPassword: str=None) -> TestIdentityProviderResponse:
        r"""If the <code>IdentityProviderType</code> of a file transfer protocol-enabled server is <code>AWS_DIRECTORY_SERVICE</code> or <code>API_Gateway</code>, tests whether your identity provider is set up successfully. We highly recommend that you call this operation to test your authentication method as soon as you create your server. By doing so, you can troubleshoot issues with the identity provider integration to ensure that your users can successfully use the service.

        :param self:
        :param UserPassword:  The password of the user account to be tested.<br/>UserName:  The name of the user account to be tested.<br/>SourceIp:  The source IP address of the user account to be tested.<br/>ServerProtocol:  The type of file transfer protocol to be tested. The available protocols are: <ul> <li> Secure Shell (SSH) File Transfer Protocol (SFTP) </li> <li> File Transfer Protocol Secure (FTPS) </li> <li> File Transfer Protocol (FTP) </li> </ul><br/>ServerId:  A system-assigned identifier for a specific server. That server's user authentication method is tested with a user name and password.<br/>
        :return: Url:  The endpoint of the service used to authenticate a user.<br/>Message:  A message that indicates whether the test was successful or not.<br/>StatusCode:  The HTTP status code that is the response from your API Gateway.<br/>Response:  The response that is returned from your API Gateway.<br/>        """
        pass

    def untag_resource(self, TagKeys: List[TagKey], Arn: str):
        r"""Detaches a key-value pair from a resource, as identified by its Amazon Resource Name (ARN). Resources are users, servers, roles, and other entities. No response is returned from this call.

        :param self:
        :param TagKeys:  TagKeys are key-value pairs assigned to ARNs that can be used to group and search for resources by type. This metadata can be attached to resources for any purpose.<br/>Arn:  The value of the resource that will have the tag removed. An Amazon Resource Name (ARN) is an identifier for a specific Amazon Web Services resource, such as a server, user, or role.<br/>
        :return:         """
        pass

    def update_access(self, ExternalId: str, ServerId: str, HomeDirectory: str=None, HomeDirectoryType: str=None, HomeDirectoryMappings: List[HomeDirectoryMapEntry]=None, Policy: str=None, PosixProfile: PosixProfile=None, Role: str=None) -> UpdateAccessResponse:
        r"""Allows you to update parameters for the access specified in the <code>ServerID</code> and <code>ExternalID</code> parameters.

        :param self:
        :param ExternalId:  A unique identifier that is required to identify specific groups within your directory. The users of the group that you associate have access to your Amazon S3 or Amazon EFS resources over the enabled protocols using Amazon Web Services Transfer Family. If you know the group name, you can view the SID values by running the following command using Windows PowerShell.  <code>Get-ADGroup -Filter {samAccountName -like "<i>YourGroupName</i>*"} -Properties * | Select SamAccountName,ObjectSid</code>  In that command, replace <i>YourGroupName</i> with the name of your Active Directory group. The regex used to validate this parameter is a string of characters consisting of uppercase and lowercase alphanumeric characters with no spaces. You can also include underscores or any of the following characters: =,.@:/-<br/>ServerId:  A system-assigned unique identifier for a server instance. This is the specific server that you added your user to.<br/>Role:  Specifies the Amazon Resource Name (ARN) of the IAM role that controls your users' access to your Amazon S3 bucket or EFS file system. The policies attached to this role determine the level of access that you want to provide your users when transferring files into and out of your Amazon S3 bucket or EFS file system. The IAM role should also contain a trust relationship that allows the server to access your resources when servicing your users' transfer requests.<br/>PosixProfile:  The full POSIX identity, including user ID (<code>Uid</code>), group ID (<code>Gid</code>), and any secondary groups IDs (<code>SecondaryGids</code>), that controls your users' access to your Amazon EFS file systems. The POSIX permissions that are set on files and directories in your file system determine the level of access your users get when transferring files into and out of your Amazon EFS file systems.:<br/>Policy:  A scope-down policy for your user so that you can use the same IAM role across multiple users. This policy scopes down user access to portions of their Amazon S3 bucket. Variables that you can use inside this policy include <code>${Transfer:UserName}</code>, <code>${Transfer:HomeDirectory}</code>, and <code>${Transfer:HomeBucket}</code>. <note> This only applies when domain of <code>ServerId</code> is S3. Amazon EFS does not use scope down policy. For scope-down policies, Amazon Web ServicesTransfer Family stores the policy as a JSON blob, instead of the Amazon Resource Name (ARN) of the policy. You save the policy as a JSON blob and pass it in the <code>Policy</code> argument. For an example of a scope-down policy, see <a href="https://docs.aws.amazon.com/transfer/latest/userguide/scope-down-policy.html">Example scope-down policy</a>. For more information, see <a href="https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html">AssumeRole</a> in the <i>Amazon Web ServicesSecurity Token Service API Reference</i>. </note><br/>HomeDirectoryMappings:  Logical directory mappings that specify what Amazon S3 or Amazon EFS paths and keys should be visible to your user and how you want to make them visible. You must specify the <code>Entry</code> and <code>Target</code> pair, where <code>Entry</code> shows how the path is made visible and <code>Target</code> is the actual Amazon S3 or Amazon EFS path. If you only specify a target, it is displayed as is. You also must ensure that your Amazon Web Services Identity and Access Management (IAM) role provides access to paths in <code>Target</code>. This value can only be set when <code>HomeDirectoryType</code> is set to <i>LOGICAL</i>. The following is an <code>Entry</code> and <code>Target</code> pair example.  <code>[ { "Entry": "your-personal-report.pdf", "Target": "/bucket3/customized-reports/${transfer:UserName}.pdf" } ]</code>  In most cases, you can use this value instead of the scope-down policy to lock down your user to the designated home directory ("<code>chroot</code>"). To do this, you can set <code>Entry</code> to <code>/</code> and set <code>Target</code> to the <code>HomeDirectory</code> parameter value. The following is an <code>Entry</code> and <code>Target</code> pair example for <code>chroot</code>.  <code>[ { "Entry:": "/", "Target": "/bucket_name/home/mydirectory" } ]</code>  <note> If the target of a logical directory entry does not exist in Amazon S3 or EFS, the entry is ignored. As a workaround, you can use the Amazon S3 API or EFS API to create 0 byte objects as place holders for your directory. If using the CLI, use the <code>s3api</code> or <code>efsapi</code> call instead of <code>s3</code> or <code>efs</code> so you can use the put-object operation. For example, you use the following: <code>aws s3api put-object --bucket bucketname --key path/to/folder/</code>. Make sure that the end of the key name ends in a <code>/</code> for it to be considered a folder. </note><br/>HomeDirectoryType:  The type of landing directory (folder) you want your users' home directory to be when they log into the server. If you set it to <code>PATH</code>, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer protocol clients. If you set it <code>LOGICAL</code>, you will need to provide mappings in the <code>HomeDirectoryMappings</code> for how you want to make Amazon S3 or EFS paths visible to your users.<br/>HomeDirectory:  The landing directory (folder) for a user when they log in to the server using the client. A <code>HomeDirectory</code> example is <code>/bucket_name/home/mydirectory</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecondaryGids</i> The secondary POSIX group IDs used for all EFS operations by this user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Gid</i> The POSIX group ID used for all EFS operations by this user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Uid</i> The POSIX user ID used for all EFS operations by this user.<br/>
        :return: ExternalId:  The external ID of the group whose users have access to your Amazon S3 or Amazon EFS resources over the enabled protocols using Amazon Web ServicesTransfer Family.<br/>ServerId:  The ID of the server that the user is attached to.<br/>        """
        pass

    def update_server(self, ServerId: str, Certificate: str=None, ProtocolDetails: ProtocolDetails=None, EndpointDetails: EndpointDetails=None, EndpointType: str=None, HostKey: str=None, IdentityProviderDetails: IdentityProviderDetails=None, LoggingRole: str=None, Protocols: List[Protocol]=None, SecurityPolicyName: str=None) -> UpdateServerResponse:
        r"""Updates the file transfer protocol-enabled server's properties after that server has been created. The <code>UpdateServer</code> call returns the <code>ServerId</code> of the server you updated.

        :param self:
        :param ServerId:  A system-assigned unique identifier for a server instance that the user account is assigned to.<br/>SecurityPolicyName:  Specifies the name of the security policy that is attached to the server.<br/>Protocols:  Specifies the file transfer protocol or protocols over which your file transfer protocol client can connect to your server's endpoint. The available protocols are: <ul> <li> Secure Shell (SSH) File Transfer Protocol (SFTP): File transfer over SSH </li> <li> File Transfer Protocol Secure (FTPS): File transfer with TLS encryption </li> <li> File Transfer Protocol (FTP): Unencrypted file transfer </li> </ul> <note> If you select <code>FTPS</code>, you must choose a certificate stored in Amazon Web ServicesCertificate Manager (ACM) which will be used to identify your server when clients connect to it over FTPS. If <code>Protocol</code> includes either <code>FTP</code> or <code>FTPS</code>, then the <code>EndpointType</code> must be <code>VPC</code> and the <code>IdentityProviderType</code> must be <code>AWS_DIRECTORY_SERVICE</code> or <code>API_GATEWAY</code>. If <code>Protocol</code> includes <code>FTP</code>, then <code>AddressAllocationIds</code> cannot be associated. If <code>Protocol</code> is set only to <code>SFTP</code>, the <code>EndpointType</code> can be set to <code>PUBLIC</code> and the <code>IdentityProviderType</code> can be set to <code>SERVICE_MANAGED</code>. </note><br/>LoggingRole:  Specifies the Amazon Resource Name (ARN) of the Amazon Web Services Identity and Access Management (IAM) role that allows a server to turn on Amazon CloudWatch logging for Amazon S3 or Amazon EFS events. When set, user activity can be viewed in your CloudWatch logs.<br/>IdentityProviderDetails:  An array containing all of the information required to call a customer's authentication API method.:<br/>HostKey:  The RSA private key as generated by <code>ssh-keygen -N "" -m PEM -f my-new-server-key</code>. <important> If you aren't planning to migrate existing users from an existing server to a new server, don't update the host key. Accidentally changing a server's host key can be disruptive. </important> For more information, see <a href="https://docs.aws.amazon.com/transfer/latest/userguide/edit-server-config.html#configuring-servers-change-host-key">Change the host key for your SFTP-enabled server</a> in the <i>Amazon Web ServicesTransfer Family User Guide</i>.<br/>EndpointType:  The type of endpoint that you want your server to use. You can choose to make your server's endpoint publicly accessible (PUBLIC) or host it inside your VPC. With an endpoint that is hosted in a VPC, you can restrict access to your server and resources only within your VPC or choose to make it internet facing by attaching Elastic IP addresses directly to it. <note>  After May 19, 2021, you won't be able to create a server using <code>EndpointType=VPC_ENDPOINT</code> in your Amazon Web Servicesaccount if your account hasn't already done so before May 19, 2021. If you have already created servers with <code>EndpointType=VPC_ENDPOINT</code> in your Amazon Web Servicesaccount on or before May 19, 2021, you will not be affected. After this date, use <code>EndpointType</code>=<code>VPC</code>. For more information, see https://docs.aws.amazon.com/transfer/latest/userguide/create-server-in-vpc.html#deprecate-vpc-endpoint. It is recommended that you use <code>VPC</code> as the <code>EndpointType</code>. With this endpoint type, you have the option to directly associate up to three Elastic IPv4 addresses (BYO IP included) with your server's endpoint and use VPC security groups to restrict traffic by the client's public IP address. This is not possible with <code>EndpointType</code> set to <code>VPC_ENDPOINT</code>. </note><br/>EndpointDetails:  The virtual private cloud (VPC) endpoint settings that are configured for your server. When you host your endpoint within your VPC, you can make it accessible only to resources within your VPC, or you can attach Elastic IP addresses and make it accessible to clients over the internet. Your VPC's default security groups are automatically assigned to your endpoint.:<br/>ProtocolDetails:   The protocol settings that are configured for your server.   Use the <code>PassiveIp</code> parameter to indicate passive mode (for FTP and FTPS protocols). Enter a single dotted-quad IPv4 address, such as the external IP address of a firewall, router, or load balancer. :<br/>Certificate:  The Amazon Resource Name (ARN) of the Amazon Web ServicesCertificate Manager (ACM) certificate. Required when <code>Protocols</code> is set to <code>FTPS</code>. To request a new public certificate, see <a href="https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-request-public.html">Request a public certificate</a> in the <i> Amazon Web ServicesCertificate Manager User Guide</i>. To import an existing certificate into ACM, see <a href="https://docs.aws.amazon.com/acm/latest/userguide/import-certificate.html">Importing certificates into ACM</a> in the <i> Amazon Web ServicesCertificate Manager User Guide</i>. To request a private certificate to use FTPS through private IP addresses, see <a href="https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-request-private.html">Request a private certificate</a> in the <i> Amazon Web ServicesCertificate Manager User Guide</i>. Certificates with the following cryptographic algorithms and key sizes are supported: <ul> <li> 2048-bit RSA (RSA_2048) </li> <li> 4096-bit RSA (RSA_4096) </li> <li> Elliptic Prime Curve 256 bit (EC_prime256v1) </li> <li> Elliptic Prime Curve 384 bit (EC_secp384r1) </li> <li> Elliptic Prime Curve 521 bit (EC_secp521r1) </li> </ul> <note> The certificate must be a valid SSL/TLS X.509 version 3 certificate with FQDN or IP address specified and information about the issuer. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PassiveIp</i>  Indicates passive mode, for FTP and FTPS protocols. Enter a single dotted-quad IPv4 address, such as the external IP address of a firewall, router, or load balancer. For example:   <code> aws transfer update-server --protocol-details PassiveIp=<i>0.0.0.0</i> </code>  Replace <code> <i>0.0.0.0</i> </code> in the example above with the actual IP address you want to use.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecurityGroupIds</i> A list of security groups IDs that are available to attach to your server's endpoint. <note> This property can only be set when <code>EndpointType</code> is set to <code>VPC</code>. You can edit the <code>SecurityGroupIds</code> property in the <a href="https://docs.aws.amazon.com/transfer/latest/userguide/API_UpdateServer.html">UpdateServer</a> API only if you are changing the <code>EndpointType</code> from <code>PUBLIC</code> or <code>VPC_ENDPOINT</code> to <code>VPC</code>. To change security groups associated with your server's VPC endpoint after creation, use the Amazon EC2 <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyVpcEndpoint.html">ModifyVpcEndpoint</a> API. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcId</i> The VPC ID of the VPC in which a server's endpoint will be hosted. <note> This property can only be set when <code>EndpointType</code> is set to <code>VPC</code>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VpcEndpointId</i> The ID of the VPC endpoint. <note> This property can only be set when <code>EndpointType</code> is set to <code>VPC_ENDPOINT</code>. For more information, see https://docs.aws.amazon.com/transfer/latest/userguide/create-server-in-vpc.html#deprecate-vpc-endpoint. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubnetIds</i> A list of subnet IDs that are required to host your server endpoint in your VPC. <note> This property can only be set when <code>EndpointType</code> is set to <code>VPC</code>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AddressAllocationIds</i> A list of address allocation IDs that are required to attach an Elastic IP address to your server's endpoint. <note> This property can only be set when <code>EndpointType</code> is set to <code>VPC</code> and it is only valid in the <code>UpdateServer</code> API. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DirectoryId</i> The identifier of the Amazon Web ServicesDirectory Service directory that you want to stop sharing.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InvocationRole</i> Provides the type of <code>InvocationRole</code> used to authenticate the user account.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Url</i> Provides the location of the service endpoint used to authenticate users.<br/>
        :return: ServerId:  A system-assigned unique identifier for a server that the user account is assigned to.<br/>        """
        pass

    def update_user(self, UserName: str, ServerId: str, HomeDirectory: str=None, HomeDirectoryType: str=None, HomeDirectoryMappings: List[HomeDirectoryMapEntry]=None, Policy: str=None, PosixProfile: PosixProfile=None, Role: str=None) -> UpdateUserResponse:
        r"""Assigns new properties to a user. Parameters you pass modify any or all of the following: the home directory, role, and policy for the <code>UserName</code> and <code>ServerId</code> you specify. The response returns the <code>ServerId</code> and the <code>UserName</code> for the updated user.

        :param self:
        :param UserName:  A unique string that identifies a user and is associated with a server as specified by the <code>ServerId</code>. This user name must be a minimum of 3 and a maximum of 100 characters long. The following are valid characters: a-z, A-Z, 0-9, underscore '_', hyphen '-', period '.', and at sign '@'. The user name can't start with a hyphen, period, or at sign.<br/>ServerId:  A system-assigned unique identifier for a server instance that the user account is assigned to.<br/>Role:  Specifies the Amazon Resource Name (ARN) of the IAM role that controls your users' access to your Amazon S3 bucket or EFS file system. The policies attached to this role determine the level of access that you want to provide your users when transferring files into and out of your Amazon S3 bucket or EFS file system. The IAM role should also contain a trust relationship that allows the server to access your resources when servicing your users' transfer requests.<br/>PosixProfile:  Specifies the full POSIX identity, including user ID (<code>Uid</code>), group ID (<code>Gid</code>), and any secondary groups IDs (<code>SecondaryGids</code>), that controls your users' access to your Amazon Elastic File Systems (Amazon EFS). The POSIX permissions that are set on files and directories in your file system determines the level of access your users get when transferring files into and out of your Amazon EFS file systems.:<br/>Policy:  A scope-down policy for your user so that you can use the same IAM role across multiple users. This policy scopes down user access to portions of their Amazon S3 bucket. Variables that you can use inside this policy include <code>${Transfer:UserName}</code>, <code>${Transfer:HomeDirectory}</code>, and <code>${Transfer:HomeBucket}</code>. <note> This only applies when domain of <code>ServerId</code> is S3. Amazon EFS does not use scope-down policies. For scope-down policies, Amazon Web ServicesTransfer Family stores the policy as a JSON blob, instead of the Amazon Resource Name (ARN) of the policy. You save the policy as a JSON blob and pass it in the <code>Policy</code> argument. For an example of a scope-down policy, see <a href="https://docs.aws.amazon.com/transfer/latest/userguide/users.html#users-policies-scope-down">Creating a scope-down policy</a>. For more information, see <a href="https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html">AssumeRole</a> in the <i>Amazon Web Services Security Token Service API Reference</i>. </note><br/>HomeDirectoryMappings:  Logical directory mappings that specify what Amazon S3 or Amazon EFS paths and keys should be visible to your user and how you want to make them visible. You must specify the <code>Entry</code> and <code>Target</code> pair, where <code>Entry</code> shows how the path is made visible and <code>Target</code> is the actual Amazon S3 or Amazon EFS path. If you only specify a target, it is displayed as is. You also must ensure that your Amazon Web Services Identity and Access Management (IAM) role provides access to paths in <code>Target</code>. This value can only be set when <code>HomeDirectoryType</code> is set to <i>LOGICAL</i>. The following is an <code>Entry</code> and <code>Target</code> pair example.  <code>[ { "Entry": "your-personal-report.pdf", "Target": "/bucket3/customized-reports/${transfer:UserName}.pdf" } ]</code>  In most cases, you can use this value instead of the scope-down policy to lock down your user to the designated home directory ("<code>chroot</code>"). To do this, you can set <code>Entry</code> to '/' and set <code>Target</code> to the HomeDirectory parameter value. The following is an <code>Entry</code> and <code>Target</code> pair example for <code>chroot</code>.  <code>[ { "Entry:": "/", "Target": "/bucket_name/home/mydirectory" } ]</code>  <note> If the target of a logical directory entry does not exist in Amazon S3 or EFS, the entry is ignored. As a workaround, you can use the Amazon S3 API or EFS API to create 0 byte objects as place holders for your directory. If using the CLI, use the <code>s3api</code> or <code>efsapi</code> call instead of <code>s3</code> or <code>efs</code> so you can use the put-object operation. For example, you use the following: <code>aws s3api put-object --bucket bucketname --key path/to/folder/</code>. Make sure that the end of the key name ends in a <code>/</code> for it to be considered a folder. </note><br/>HomeDirectoryType:  The type of landing directory (folder) you want your users' home directory to be when they log into the server. If you set it to <code>PATH</code>, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer protocol clients. If you set it <code>LOGICAL</code>, you will need to provide mappings in the <code>HomeDirectoryMappings</code> for how you want to make Amazon S3 or EFS paths visible to your users.<br/>HomeDirectory:  The landing directory (folder) for a user when they log in to the server using the client. A <code>HomeDirectory</code> example is <code>/bucket_name/home/mydirectory</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SecondaryGids</i> The secondary POSIX group IDs used for all EFS operations by this user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Gid</i> The POSIX group ID used for all EFS operations by this user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Uid</i> The POSIX user ID used for all EFS operations by this user.<br/>
        :return: UserName:  The unique identifier for a user that is assigned to a server instance that was specified in the request.<br/>ServerId:  A system-assigned unique identifier for a server instance that the user account is assigned to.<br/>        """
        pass





class Translate(BaseClient):
    r"""Provides translation between one source language and another of the same set of languages."""


    class ListTerminologiesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_terminologies` for valid parameters"""
            pass


    class CreateParallelDataRequest(Mapping):
        pass
    
    class CreateParallelDataResponse(Mapping):
        pass
    
    class ParallelDataConfig(Mapping):
        pass
    
    class EncryptionKey(Mapping):
        pass
    
    class DeleteParallelDataRequest(Mapping):
        pass
    
    class DeleteParallelDataResponse(Mapping):
        pass
    
    class DeleteTerminologyRequest(Mapping):
        pass
    
    class DescribeTextTranslationJobRequest(Mapping):
        pass
    
    class DescribeTextTranslationJobResponse(Mapping):
        pass
    
    class GetParallelDataRequest(Mapping):
        pass
    
    class GetParallelDataResponse(Mapping):
        pass
    
    class GetTerminologyRequest(Mapping):
        pass
    
    class GetTerminologyResponse(Mapping):
        pass
    
    class ImportTerminologyRequest(Mapping):
        pass
    
    class ImportTerminologyResponse(Mapping):
        pass
    
    class TerminologyData(Mapping):
        pass
    
    class ListParallelDataRequest(Mapping):
        pass
    
    class ListParallelDataResponse(Mapping):
        pass
    
    class ListTerminologiesRequest(Mapping):
        pass
    
    class ListTerminologiesResponse(Mapping):
        pass
    
    class ListTextTranslationJobsRequest(Mapping):
        pass
    
    class ListTextTranslationJobsResponse(Mapping):
        pass
    
    class TextTranslationJobFilter(Mapping):
        pass
    
    class StartTextTranslationJobRequest(Mapping):
        pass
    
    class StartTextTranslationJobResponse(Mapping):
        pass
    
    class InputDataConfig(Mapping):
        pass
    
    class OutputDataConfig(Mapping):
        pass
    
    class LanguageCodeString(object):
        pass
    
    class ResourceName(object):
        pass
    
    class StopTextTranslationJobRequest(Mapping):
        pass
    
    class StopTextTranslationJobResponse(Mapping):
        pass
    
    class TranslateTextRequest(Mapping):
        pass
    
    class TranslateTextResponse(Mapping):
        pass
    
    class UpdateParallelDataRequest(Mapping):
        pass
    
    class UpdateParallelDataResponse(Mapping):
        pass
    
    def create_parallel_data(self, ClientToken: str, ParallelDataConfig: ParallelDataConfig, Name: str, Description: str=None, EncryptionKey: EncryptionKey=None) -> CreateParallelDataResponse:
        r"""Creates a parallel data resource in Amazon Translate by importing an input file from Amazon S3. Parallel data files contain examples of source phrases and their translations from your translation memory. By adding parallel data, you can influence the style, tone, and word choice in your translation output.

        :param self:
        :param ClientToken:  A unique identifier for the request. This token is automatically generated when you use Amazon Translate through an AWS SDK.<br/>EncryptionKey:  The encryption key used to encrypt this object.:<br/>ParallelDataConfig:  Specifies the format and S3 location of the parallel data input file.:<br/>Description:  A custom description for the parallel data resource in Amazon Translate.<br/>Name:  A custom name for the parallel data resource in Amazon Translate. You must assign a name that is unique in the account and region.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Format</i> The format of the parallel data input file.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Uri</i> The URI of the Amazon S3 folder that contains the parallel data input file. The folder must be in the same Region as the API endpoint you are calling.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The Amazon Resource Name (ARN) of the encryption key being used to encrypt the custom terminology.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of encryption key used by Amazon Translate to encrypt custom terminologies.<br/>
        :return: Status:  The status of the parallel data resource. When the resource is ready for you to use, the status is <code>ACTIVE</code>.<br/>Name:  The custom name that you assigned to the parallel data resource.<br/>        """
        pass

    def delete_parallel_data(self, Name: str) -> DeleteParallelDataResponse:
        r"""Deletes a parallel data resource in Amazon Translate.

        :param self:
        :param Name:  The name of the parallel data resource that is being deleted.<br/>
        :return: Status:  The status of the parallel data deletion.<br/>Name:  The name of the parallel data resource that is being deleted.<br/>        """
        pass

    def delete_terminology(self, Name: str):
        r"""A synchronous action that deletes a custom terminology.

        :param self:
        :param Name:  The name of the custom terminology being deleted. <br/>
        :return:         """
        pass

    def describe_text_translation_job(self, JobId: str) -> DescribeTextTranslationJobResponse:
        r"""Gets the properties associated with an asycnhronous batch translation job including name, ID, status, source and target languages, input/output S3 buckets, and so on.

        :param self:
        :param JobId:  The identifier that Amazon Translate generated for the job. The <a>StartTextTranslationJob</a> operation returns this identifier in its response.<br/>
        :return: TextTranslationJobProperties:  An object that contains the properties associated with an asynchronous batch translation job.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DataAccessRoleArn</i> The Amazon Resource Name (ARN) of an AWS Identity Access and Management (IAM) role that granted Amazon Translate read access to the job's input data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OutputDataConfig</i> The output configuration properties that were specified when the job was requested.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>OutputDataConfig</b>: The output configuration properties that were specified when the job was requested.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InputDataConfig</i> The input configuration properties that were specified when the job was requested.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>InputDataConfig</b>: The input configuration properties that were specified when the job was requested.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndTime</i> The time at which the translation job ended.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubmittedTime</i> The time at which the translation job was submitted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> An explanation of any errors that may have occured during the translation job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ParallelDataNames</i> A list containing the names of the parallel data resources applied to the translation job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TerminologyNames</i> A list containing the names of the terminologies applied to a translation job. Only one terminology can be applied per <a>StartTextTranslationJob</a> request at this time.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetLanguageCodes</i> The language code of the language of the target text. The language must be a language supported by Amazon Translate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceLanguageCode</i> The language code of the language of the source text. The language must be a language supported by Amazon Translate.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobDetails</i> The number of documents successfully and unsuccessfully processed during the translation job.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>JobDetails</b>: The number of documents successfully and unsuccessfully processed during the translation job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobStatus</i> The status of the translation job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobName</i> The user-defined name of the translation job.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobId</i> The ID of the translation job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InputDocumentsCount</i> The number of documents used as input in a translation job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DocumentsWithErrorsCount</i> The number of documents that could not be processed during a translation job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TranslatedDocumentsCount</i> The number of documents successfully processed during a translation job.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ContentType</i> Describes the format of the data that you submit to Amazon Translate as input. You can specify one of the following multipurpose internet mail extension (MIME) types: <ul> <li>  <code>text/html</code>: The input data consists of one or more HTML files. Amazon Translate translates only the text that resides in the <code>html</code> element in each file. </li> <li>  <code>text/plain</code>: The input data consists of one or more unformatted text files. Amazon Translate translates every character in this type of input. </li> <li>  <code>application/vnd.openxmlformats-officedocument.wordprocessingml.document</code>: The input data consists of one or more Word documents (.docx). </li> <li>  <code>application/vnd.openxmlformats-officedocument.presentationml.presentation</code>: The input data consists of one or more PowerPoint Presentation files (.pptx). </li> <li>  <code>application/vnd.openxmlformats-officedocument.spreadsheetml.sheet</code>: The input data consists of one or more Excel Workbook files (.xlsx). </li> </ul> <important> If you structure your input data as HTML, ensure that you set this parameter to <code>text/html</code>. By doing so, you cut costs by limiting the translation to the contents of the <code>html</code> element in each file. Otherwise, if you set this parameter to <code>text/plain</code>, your costs will cover the translation of every character. </important><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Uri</i> The URI of the AWS S3 folder that contains the input file. The folder must be in the same Region as the API endpoint you are calling.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Uri</i> The URI of the S3 folder that contains a translation job's output file. The folder must be in the same Region as the API endpoint that you are calling.<br/>        """
        pass

    def get_parallel_data(self, Name: str) -> GetParallelDataResponse:
        r"""Provides information about a parallel data resource.

        :param self:
        :param Name:  The name of the parallel data resource that is being retrieved.<br/>
        :return: LatestUpdateAttemptAuxiliaryDataLocation:  The Amazon S3 location of a file that provides any errors or warnings that were produced by your input file. This file was created when Amazon Translate attempted to update a parallel data resource. The location is returned as a presigned URL to that has a 30 minute expiration.:<br/>AuxiliaryDataLocation:  The Amazon S3 location of a file that provides any errors or warnings that were produced by your input file. This file was created when Amazon Translate attempted to create a parallel data resource. The location is returned as a presigned URL to that has a 30 minute expiration.:<br/>DataLocation:  The location of the most recent parallel data input file that was successfully imported into Amazon Translate. The location is returned as a presigned URL that has a 30 minute expiration.:<br/>ParallelDataProperties:  The properties of the parallel data resource that is being retrieved.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestUpdateAttemptAt</i> The time that the most recent update was attempted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestUpdateAttemptStatus</i> The status of the most recent update attempt for the parallel data resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdatedAt</i> The time at which the parallel data resource was last updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedAt</i> The time at which the parallel data resource was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EncryptionKey</i> The encryption key used to encrypt this object.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EncryptionKey</b>: The encryption key used to encrypt this object.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SkippedRecordCount</i> The number of items in the input file that Amazon Translate skipped when you created or updated the parallel data resource. For example, Amazon Translate skips empty records, empty target texts, and empty lines.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FailedRecordCount</i> The number of records unsuccessfully imported from the parallel data input file.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImportedRecordCount</i> The number of records successfully imported from the parallel data input file.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImportedDataSize</i> The number of UTF-8 characters that Amazon Translate imported from the parallel data input file. This number includes only the characters in your translation examples. It does not include characters that are used to format your file. For example, if you provided a Translation Memory Exchange (.tmx) file, this number does not include the tags.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Message</i> Additional information from Amazon Translate about the parallel data resource. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ParallelDataConfig</i> Specifies the format and S3 location of the parallel data input file.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ParallelDataConfig</b>: Specifies the format and S3 location of the parallel data input file.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetLanguageCodes</i> The language codes for the target languages available in the parallel data file. All possible target languages are returned as an array.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceLanguageCode</i> The source language of the translations in the parallel data file.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the parallel data resource. When the parallel data is ready for you to use, the status is <code>ACTIVE</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description assigned to the parallel data resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i> The Amazon Resource Name (ARN) of the parallel data resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The custom name assigned to the parallel data resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Format</i> The format of the parallel data input file.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Uri</i> The URI of the Amazon S3 folder that contains the parallel data input file. The folder must be in the same Region as the API endpoint you are calling.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The Amazon Resource Name (ARN) of the encryption key being used to encrypt the custom terminology.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of encryption key used by Amazon Translate to encrypt custom terminologies.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Location</i> The Amazon S3 location of the parallel data input file. The location is returned as a presigned URL to that has a 30 minute expiration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RepositoryType</i> Describes the repository that contains the parallel data input file.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Location</i> The Amazon S3 location of the parallel data input file. The location is returned as a presigned URL to that has a 30 minute expiration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RepositoryType</i> Describes the repository that contains the parallel data input file.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Location</i> The Amazon S3 location of the parallel data input file. The location is returned as a presigned URL to that has a 30 minute expiration.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RepositoryType</i> Describes the repository that contains the parallel data input file.<br/>        """
        pass

    def get_terminology(self, TerminologyDataFormat: str, Name: str) -> GetTerminologyResponse:
        r"""Retrieves a custom terminology.

        :param self:
        :param TerminologyDataFormat:  The data format of the custom terminology being retrieved, either CSV or TMX.<br/>Name:  The name of the custom terminology being retrieved.<br/>
        :return: TerminologyDataLocation:  The data location of the custom terminology being retrieved. The custom terminology file is returned in a presigned url that has a 30 minute expiration.:<br/>TerminologyProperties:  The properties of the custom terminology being retrieved.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdatedAt</i> The time at which the custom terminology was last update, based on the timestamp.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedAt</i> The time at which the custom terminology was created, based on the timestamp.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TermCount</i> The number of terms included in the custom terminology.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SizeBytes</i> The size of the file used when importing a custom terminology.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EncryptionKey</i> The encryption key for the custom terminology.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EncryptionKey</b>: The encryption key for the custom terminology.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetLanguageCodes</i> The language codes for the target languages available with the custom terminology file. All possible target languages are returned in array.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceLanguageCode</i> The language code for the source text of the translation request for which the custom terminology is being used.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i>  The Amazon Resource Name (ARN) of the custom terminology. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the custom terminology properties.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the custom terminology.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The Amazon Resource Name (ARN) of the encryption key being used to encrypt the custom terminology.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of encryption key used by Amazon Translate to encrypt custom terminologies.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Location</i> The location of the custom terminology data.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RepositoryType</i> The repository type for the custom terminology data.<br/>        """
        pass

    def import_terminology(self, TerminologyData: TerminologyData, MergeStrategy: str, Name: str, Description: str=None, EncryptionKey: EncryptionKey=None) -> ImportTerminologyResponse:
        r"""Creates or updates a custom terminology, depending on whether or not one already exists for the given terminology name. Importing a terminology with the same name as an existing one will merge the terminologies based on the chosen merge strategy. Currently, the only supported merge strategy is OVERWRITE, and so the imported terminology will overwrite an existing terminology of the same name. If you import a terminology that overwrites an existing one, the new terminology take up to 10 minutes to fully propagate and be available for use in a translation due to cache policies with the DataPlane service that performs the translations.

        :param self:
        :param EncryptionKey:  The encryption key for the custom terminology being imported.:<br/>TerminologyData:  The terminology data for the custom terminology being imported.:<br/>Description:  The description of the custom terminology being imported.<br/>MergeStrategy:  The merge strategy of the custom terminology being imported. Currently, only the OVERWRITE merge strategy is supported. In this case, the imported terminology will overwrite an existing terminology of the same name.<br/>Name:  The name of the custom terminology being imported.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Format</i> The data format of the custom terminology. Either CSV or TMX.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>File</i> The file containing the custom terminology data. Your version of the AWS SDK performs a Base64-encoding on this field before sending a request to the AWS service. Users of the SDK should not perform Base64-encoding themselves.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The Amazon Resource Name (ARN) of the encryption key being used to encrypt the custom terminology.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of encryption key used by Amazon Translate to encrypt custom terminologies.<br/>
        :return: TerminologyProperties:  The properties of the custom terminology being imported.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdatedAt</i> The time at which the custom terminology was last update, based on the timestamp.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedAt</i> The time at which the custom terminology was created, based on the timestamp.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TermCount</i> The number of terms included in the custom terminology.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SizeBytes</i> The size of the file used when importing a custom terminology.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EncryptionKey</i> The encryption key for the custom terminology.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EncryptionKey</b>: The encryption key for the custom terminology.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TargetLanguageCodes</i> The language codes for the target languages available with the custom terminology file. All possible target languages are returned in array.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SourceLanguageCode</i> The language code for the source text of the translation request for which the custom terminology is being used.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Arn</i>  The Amazon Resource Name (ARN) of the custom terminology. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the custom terminology properties.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the custom terminology.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The Amazon Resource Name (ARN) of the encryption key being used to encrypt the custom terminology.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of encryption key used by Amazon Translate to encrypt custom terminologies.<br/>        """
        pass

    def list_parallel_data(self, NextToken: str=None, MaxResults: int=None) -> ListParallelDataResponse:
        r"""Provides a list of your parallel data resources in Amazon Translate.

        :param self:
        :param MaxResults:  The maximum number of parallel data resources returned for each request.<br/>NextToken:  A string that specifies the next page of results to return in a paginated response.<br/>
        :return: NextToken:  The string to use in a subsequent request to get the next page of results in a paginated response. This value is null if there are no additional pages.<br/>ParallelDataPropertiesList:  The properties of the parallel data resources returned by this request.<br/>        """
        pass

    def list_terminologies(self, NextToken: str=None, MaxResults: int=None) -> ListTerminologiesResponse:
        r"""Provides a list of custom terminologies associated with your account.

        :param self:
        :param MaxResults:  The maximum number of custom terminologies returned per list request.<br/>NextToken:  If the result of the request to ListTerminologies was truncated, include the NextToken to fetch the next group of custom terminologies. <br/>
        :return: NextToken:   If the response to the ListTerminologies was truncated, the NextToken fetches the next group of custom terminologies.<br/>TerminologyPropertiesList:  The properties list of the custom terminologies returned on the list request.<br/>        """
        pass

    def list_text_translation_jobs(self, Filter: TextTranslationJobFilter=None, NextToken: str=None, MaxResults: int=None) -> ListTextTranslationJobsResponse:
        r"""Gets a list of the batch translation jobs that you have submitted.

        :param self:
        :param MaxResults:  The maximum number of results to return in each page. The default value is 100.<br/>NextToken:  The token to request the next page of results.<br/>Filter:  The parameters that specify which batch translation jobs to retrieve. Filters include job name, job status, and submission time. You can only set one filter at a time.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubmittedAfterTime</i> Filters the list of jobs based on the time that the job was submitted for processing and returns only the jobs submitted after the specified time. Jobs are returned in descending order, newest to oldest.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubmittedBeforeTime</i> Filters the list of jobs based on the time that the job was submitted for processing and returns only the jobs submitted before the specified time. Jobs are returned in ascending order, oldest to newest.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobStatus</i> Filters the list of jobs based by job status.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>JobName</i> Filters the list of jobs by name.<br/>
        :return: NextToken:  The token to use to retreive the next page of results. This value is <code>null</code> when there are no more results to return.<br/>TextTranslationJobPropertiesList:  A list containing the properties of each job that is returned.<br/>        """
        pass

    def start_text_translation_job(self, ClientToken: str, TargetLanguageCodes: List[LanguageCodeString], SourceLanguageCode: str, DataAccessRoleArn: str, OutputDataConfig: OutputDataConfig, InputDataConfig: InputDataConfig, JobName: str=None, TerminologyNames: List[ResourceName]=None, ParallelDataNames: List[ResourceName]=None) -> StartTextTranslationJobResponse:
        r"""Starts an asynchronous batch translation job. Batch translation jobs can be used to translate large volumes of text across multiple documents at once. For more information, see <a>async</a>. Batch translation jobs can be described with the <a>DescribeTextTranslationJob</a> operation, listed with the <a>ListTextTranslationJobs</a> operation, and stopped with the <a>StopTextTranslationJob</a> operation. <note> Amazon Translate does not support batch translation of multiple source languages at once. </note>

        :param self:
        :param ClientToken:  A unique identifier for the request. This token is auto-generated when using the Amazon Translate SDK.<br/>ParallelDataNames:  The names of the parallel data resources to use in the batch translation job. For a list of available parallel data resources, use the <a>ListParallelData</a> operation.<br/>TerminologyNames:  The name of the terminology to use in the batch translation job. For a list of available terminologies, use the <a>ListTerminologies</a> operation.<br/>TargetLanguageCodes:  The language code of the output language.<br/>SourceLanguageCode:  The language code of the input language. For a list of language codes, see <a>what-is-languages</a>. Amazon Translate does not automatically detect a source language during batch translation jobs.<br/>DataAccessRoleArn:  The Amazon Resource Name (ARN) of an AWS Identity Access and Management (IAM) role that grants Amazon Translate read access to your input data. For more nformation, see <a>identity-and-access-management</a>.<br/>OutputDataConfig:  Specifies the S3 folder to which your job output will be saved. :<br/>InputDataConfig:  Specifies the format and S3 location of the input documents for the translation job.:<br/>JobName:  The name of the batch translation job to be performed.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ContentType</i> Describes the format of the data that you submit to Amazon Translate as input. You can specify one of the following multipurpose internet mail extension (MIME) types: <ul> <li>  <code>text/html</code>: The input data consists of one or more HTML files. Amazon Translate translates only the text that resides in the <code>html</code> element in each file. </li> <li>  <code>text/plain</code>: The input data consists of one or more unformatted text files. Amazon Translate translates every character in this type of input. </li> <li>  <code>application/vnd.openxmlformats-officedocument.wordprocessingml.document</code>: The input data consists of one or more Word documents (.docx). </li> <li>  <code>application/vnd.openxmlformats-officedocument.presentationml.presentation</code>: The input data consists of one or more PowerPoint Presentation files (.pptx). </li> <li>  <code>application/vnd.openxmlformats-officedocument.spreadsheetml.sheet</code>: The input data consists of one or more Excel Workbook files (.xlsx). </li> </ul> <important> If you structure your input data as HTML, ensure that you set this parameter to <code>text/html</code>. By doing so, you cut costs by limiting the translation to the contents of the <code>html</code> element in each file. Otherwise, if you set this parameter to <code>text/plain</code>, your costs will cover the translation of every character. </important><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Uri</i> The URI of the AWS S3 folder that contains the input file. The folder must be in the same Region as the API endpoint you are calling.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Uri</i> The URI of the S3 folder that contains a translation job's output file. The folder must be in the same Region as the API endpoint that you are calling.<br/>
        :return: JobStatus:  The status of the job. Possible values include: <ul> <li>  <code>SUBMITTED</code> - The job has been received and is queued for processing. </li> <li>  <code>IN_PROGRESS</code> - Amazon Translate is processing the job. </li> <li>  <code>COMPLETED</code> - The job was successfully completed and the output is available. </li> <li>  <code>COMPLETED_WITH_ERROR</code> - The job was completed with errors. The errors can be analyzed in the job's output. </li> <li>  <code>FAILED</code> - The job did not complete. To get details, use the <a>DescribeTextTranslationJob</a> operation. </li> <li>  <code>STOP_REQUESTED</code> - The user who started the job has requested that it be stopped. </li> <li>  <code>STOPPED</code> - The job has been stopped. </li> </ul><br/>JobId:  The identifier generated for the job. To get the status of a job, use this ID with the <a>DescribeTextTranslationJob</a> operation.<br/>        """
        pass

    def stop_text_translation_job(self, JobId: str) -> StopTextTranslationJobResponse:
        r"""Stops an asynchronous batch translation job that is in progress. If the job's state is <code>IN_PROGRESS</code>, the job will be marked for termination and put into the <code>STOP_REQUESTED</code> state. If the job completes before it can be stopped, it is put into the <code>COMPLETED</code> state. Otherwise, the job is put into the <code>STOPPED</code> state. Asynchronous batch translation jobs are started with the <a>StartTextTranslationJob</a> operation. You can use the <a>DescribeTextTranslationJob</a> or <a>ListTextTranslationJobs</a> operations to get a batch translation job's <code>JobId</code>.

        :param self:
        :param JobId:  The job ID of the job to be stopped.<br/>
        :return: JobStatus:  The status of the designated job. Upon successful completion, the job's status will be <code>STOPPED</code>.<br/>JobId:  The job ID of the stopped batch translation job.<br/>        """
        pass

    def translate_text(self, TargetLanguageCode: str, SourceLanguageCode: str, Text: str, TerminologyNames: List[ResourceName]=None) -> TranslateTextResponse:
        r"""Translates input text from the source language to the target language. For a list of available languages and language codes, see <a>what-is-languages</a>.

        :param self:
        :param TargetLanguageCode:  The language code requested for the language of the target text. The language must be a language supported by Amazon Translate.<br/>SourceLanguageCode:  The language code for the language of the source text. The language must be a language supported by Amazon Translate. For a list of language codes, see <a>what-is-languages</a>. To have Amazon Translate determine the source language of your text, you can specify <code>auto</code> in the <code>SourceLanguageCode</code> field. If you specify <code>auto</code>, Amazon Translate will call <a href="https://docs.aws.amazon.com/comprehend/latest/dg/comprehend-general.html">Amazon Comprehend</a> to determine the source language.<br/>TerminologyNames:  The name of the terminology list file to be used in the TranslateText request. You can use 1 terminology list at most in a <code>TranslateText</code> request. Terminology lists can contain a maximum of 256 terms.<br/>Text:  The text to translate. The text string can be a maximum of 5,000 bytes long. Depending on your character set, this may be fewer than 5,000 characters.<br/>
        :return: AppliedTerminologies:  The names of the custom terminologies applied to the input text by Amazon Translate for the translated text response.<br/>TargetLanguageCode:  The language code for the language of the target text. <br/>SourceLanguageCode:  The language code for the language of the source text.<br/>TranslatedText:  The translated text.<br/>        """
        pass

    def update_parallel_data(self, ClientToken: str, ParallelDataConfig: ParallelDataConfig, Name: str, Description: str=None) -> UpdateParallelDataResponse:
        r"""Updates a previously created parallel data resource by importing a new input file from Amazon S3.

        :param self:
        :param ClientToken:  A unique identifier for the request. This token is automatically generated when you use Amazon Translate through an AWS SDK.<br/>ParallelDataConfig:  Specifies the format and S3 location of the parallel data input file.:<br/>Description:  A custom description for the parallel data resource in Amazon Translate.<br/>Name:  The name of the parallel data resource being updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Format</i> The format of the parallel data input file.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>S3Uri</i> The URI of the Amazon S3 folder that contains the parallel data input file. The folder must be in the same Region as the API endpoint you are calling.<br/>
        :return: LatestUpdateAttemptAt:  The time that the most recent update was attempted.<br/>LatestUpdateAttemptStatus:  The status of the parallel data update attempt. When the updated parallel data resource is ready for you to use, the status is <code>ACTIVE</code>.<br/>Status:  The status of the parallel data resource that you are attempting to update. Your update request is accepted only if this status is either <code>ACTIVE</code> or <code>FAILED</code>.<br/>Name:  The name of the parallel data resource being updated.<br/>        """
        pass





class WAF(BaseClient):
    r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> This is the <i>AWS WAF Classic API Reference</i> for using AWS WAF Classic with Amazon CloudFront. The AWS WAF Classic actions and data types listed in the reference are available for protecting Amazon CloudFront distributions. You can use these actions and data types via the endpoint <i>waf.amazonaws.com</i>. This guide is for developers who need detailed information about the AWS WAF Classic API actions, data types, and errors. For detailed information about AWS WAF Classic features and an overview of how to use the AWS WAF Classic API, see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide."""


    class ListByteMatchSetsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_byte_match_sets` for valid parameters"""
            pass
    class ListIPSetsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_ip_sets` for valid parameters"""
            pass
    class ListRulesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_rules` for valid parameters"""
            pass
    class ListSizeConstraintSetsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_size_constraint_sets` for valid parameters"""
            pass
    class ListSqlInjectionMatchSetsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_sql_injection_match_sets` for valid parameters"""
            pass
    class ListWebACLsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_web_acls` for valid parameters"""
            pass
    class ListXssMatchSetsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_xss_match_sets` for valid parameters"""
            pass
    class GetRateBasedRuleManagedKeysPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_rate_based_rule_managed_keys` for valid parameters"""
            pass
    class ListActivatedRulesInRuleGroupPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_activated_rules_in_rule_group` for valid parameters"""
            pass
    class ListGeoMatchSetsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_geo_match_sets` for valid parameters"""
            pass
    class ListLoggingConfigurationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_logging_configurations` for valid parameters"""
            pass
    class ListRateBasedRulesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_rate_based_rules` for valid parameters"""
            pass
    class ListRegexMatchSetsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_regex_match_sets` for valid parameters"""
            pass
    class ListRegexPatternSetsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_regex_pattern_sets` for valid parameters"""
            pass
    class ListRuleGroupsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_rule_groups` for valid parameters"""
            pass
    class ListSubscribedRuleGroupsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_subscribed_rule_groups` for valid parameters"""
            pass


    class CreateByteMatchSetRequest(Mapping):
        pass
    
    class CreateByteMatchSetResponse(Mapping):
        pass
    
    class CreateGeoMatchSetRequest(Mapping):
        pass
    
    class CreateGeoMatchSetResponse(Mapping):
        pass
    
    class CreateIPSetRequest(Mapping):
        pass
    
    class CreateIPSetResponse(Mapping):
        pass
    
    class CreateRateBasedRuleRequest(Mapping):
        pass
    
    class CreateRateBasedRuleResponse(Mapping):
        pass
    
    class RateLimit(object):
        pass
    
    class Tag(Mapping):
        pass
    
    class CreateRegexMatchSetRequest(Mapping):
        pass
    
    class CreateRegexMatchSetResponse(Mapping):
        pass
    
    class CreateRegexPatternSetRequest(Mapping):
        pass
    
    class CreateRegexPatternSetResponse(Mapping):
        pass
    
    class CreateRuleRequest(Mapping):
        pass
    
    class CreateRuleResponse(Mapping):
        pass
    
    class CreateRuleGroupRequest(Mapping):
        pass
    
    class CreateRuleGroupResponse(Mapping):
        pass
    
    class CreateSizeConstraintSetRequest(Mapping):
        pass
    
    class CreateSizeConstraintSetResponse(Mapping):
        pass
    
    class CreateSqlInjectionMatchSetRequest(Mapping):
        pass
    
    class CreateSqlInjectionMatchSetResponse(Mapping):
        pass
    
    class CreateWebACLRequest(Mapping):
        pass
    
    class CreateWebACLResponse(Mapping):
        pass
    
    class WafAction(Mapping):
        pass
    
    class CreateWebACLMigrationStackRequest(Mapping):
        pass
    
    class CreateWebACLMigrationStackResponse(Mapping):
        pass
    
    class IgnoreUnsupportedType(object):
        pass
    
    class CreateXssMatchSetRequest(Mapping):
        pass
    
    class CreateXssMatchSetResponse(Mapping):
        pass
    
    class DeleteByteMatchSetRequest(Mapping):
        pass
    
    class DeleteByteMatchSetResponse(Mapping):
        pass
    
    class DeleteGeoMatchSetRequest(Mapping):
        pass
    
    class DeleteGeoMatchSetResponse(Mapping):
        pass
    
    class DeleteIPSetRequest(Mapping):
        pass
    
    class DeleteIPSetResponse(Mapping):
        pass
    
    class DeleteLoggingConfigurationRequest(Mapping):
        pass
    
    class DeleteLoggingConfigurationResponse(Mapping):
        pass
    
    class DeletePermissionPolicyRequest(Mapping):
        pass
    
    class DeletePermissionPolicyResponse(Mapping):
        pass
    
    class DeleteRateBasedRuleRequest(Mapping):
        pass
    
    class DeleteRateBasedRuleResponse(Mapping):
        pass
    
    class DeleteRegexMatchSetRequest(Mapping):
        pass
    
    class DeleteRegexMatchSetResponse(Mapping):
        pass
    
    class DeleteRegexPatternSetRequest(Mapping):
        pass
    
    class DeleteRegexPatternSetResponse(Mapping):
        pass
    
    class DeleteRuleRequest(Mapping):
        pass
    
    class DeleteRuleResponse(Mapping):
        pass
    
    class DeleteRuleGroupRequest(Mapping):
        pass
    
    class DeleteRuleGroupResponse(Mapping):
        pass
    
    class DeleteSizeConstraintSetRequest(Mapping):
        pass
    
    class DeleteSizeConstraintSetResponse(Mapping):
        pass
    
    class DeleteSqlInjectionMatchSetRequest(Mapping):
        pass
    
    class DeleteSqlInjectionMatchSetResponse(Mapping):
        pass
    
    class DeleteWebACLRequest(Mapping):
        pass
    
    class DeleteWebACLResponse(Mapping):
        pass
    
    class DeleteXssMatchSetRequest(Mapping):
        pass
    
    class DeleteXssMatchSetResponse(Mapping):
        pass
    
    class GetByteMatchSetRequest(Mapping):
        pass
    
    class GetByteMatchSetResponse(Mapping):
        pass
    
    class GetChangeTokenRequest(Mapping):
        pass
    
    class GetChangeTokenResponse(Mapping):
        pass
    
    class GetChangeTokenStatusRequest(Mapping):
        pass
    
    class GetChangeTokenStatusResponse(Mapping):
        pass
    
    class GetGeoMatchSetRequest(Mapping):
        pass
    
    class GetGeoMatchSetResponse(Mapping):
        pass
    
    class GetIPSetRequest(Mapping):
        pass
    
    class GetIPSetResponse(Mapping):
        pass
    
    class GetLoggingConfigurationRequest(Mapping):
        pass
    
    class GetLoggingConfigurationResponse(Mapping):
        pass
    
    class GetPermissionPolicyRequest(Mapping):
        pass
    
    class GetPermissionPolicyResponse(Mapping):
        pass
    
    class GetRateBasedRuleRequest(Mapping):
        pass
    
    class GetRateBasedRuleResponse(Mapping):
        pass
    
    class GetRateBasedRuleManagedKeysRequest(Mapping):
        pass
    
    class GetRateBasedRuleManagedKeysResponse(Mapping):
        pass
    
    class GetRegexMatchSetRequest(Mapping):
        pass
    
    class GetRegexMatchSetResponse(Mapping):
        pass
    
    class GetRegexPatternSetRequest(Mapping):
        pass
    
    class GetRegexPatternSetResponse(Mapping):
        pass
    
    class GetRuleRequest(Mapping):
        pass
    
    class GetRuleResponse(Mapping):
        pass
    
    class GetRuleGroupRequest(Mapping):
        pass
    
    class GetRuleGroupResponse(Mapping):
        pass
    
    class GetSampledRequestsRequest(Mapping):
        pass
    
    class GetSampledRequestsResponse(Mapping):
        pass
    
    class TimeWindow(Mapping):
        pass
    
    class GetSampledRequestsMaxItems(object):
        pass
    
    class GetSizeConstraintSetRequest(Mapping):
        pass
    
    class GetSizeConstraintSetResponse(Mapping):
        pass
    
    class GetSqlInjectionMatchSetRequest(Mapping):
        pass
    
    class GetSqlInjectionMatchSetResponse(Mapping):
        pass
    
    class GetWebACLRequest(Mapping):
        pass
    
    class GetWebACLResponse(Mapping):
        pass
    
    class GetXssMatchSetRequest(Mapping):
        pass
    
    class GetXssMatchSetResponse(Mapping):
        pass
    
    class ListActivatedRulesInRuleGroupRequest(Mapping):
        pass
    
    class ListActivatedRulesInRuleGroupResponse(Mapping):
        pass
    
    class ListByteMatchSetsRequest(Mapping):
        pass
    
    class ListByteMatchSetsResponse(Mapping):
        pass
    
    class ListGeoMatchSetsRequest(Mapping):
        pass
    
    class ListGeoMatchSetsResponse(Mapping):
        pass
    
    class ListIPSetsRequest(Mapping):
        pass
    
    class ListIPSetsResponse(Mapping):
        pass
    
    class ListLoggingConfigurationsRequest(Mapping):
        pass
    
    class ListLoggingConfigurationsResponse(Mapping):
        pass
    
    class ListRateBasedRulesRequest(Mapping):
        pass
    
    class ListRateBasedRulesResponse(Mapping):
        pass
    
    class ListRegexMatchSetsRequest(Mapping):
        pass
    
    class ListRegexMatchSetsResponse(Mapping):
        pass
    
    class ListRegexPatternSetsRequest(Mapping):
        pass
    
    class ListRegexPatternSetsResponse(Mapping):
        pass
    
    class ListRuleGroupsRequest(Mapping):
        pass
    
    class ListRuleGroupsResponse(Mapping):
        pass
    
    class ListRulesRequest(Mapping):
        pass
    
    class ListRulesResponse(Mapping):
        pass
    
    class ListSizeConstraintSetsRequest(Mapping):
        pass
    
    class ListSizeConstraintSetsResponse(Mapping):
        pass
    
    class ListSqlInjectionMatchSetsRequest(Mapping):
        pass
    
    class ListSqlInjectionMatchSetsResponse(Mapping):
        pass
    
    class ListSubscribedRuleGroupsRequest(Mapping):
        pass
    
    class ListSubscribedRuleGroupsResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class ListWebACLsRequest(Mapping):
        pass
    
    class ListWebACLsResponse(Mapping):
        pass
    
    class ListXssMatchSetsRequest(Mapping):
        pass
    
    class ListXssMatchSetsResponse(Mapping):
        pass
    
    class PutLoggingConfigurationRequest(Mapping):
        pass
    
    class PutLoggingConfigurationResponse(Mapping):
        pass
    
    class LoggingConfiguration(Mapping):
        pass
    
    class PutPermissionPolicyRequest(Mapping):
        pass
    
    class PutPermissionPolicyResponse(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateByteMatchSetRequest(Mapping):
        pass
    
    class UpdateByteMatchSetResponse(Mapping):
        pass
    
    class ByteMatchSetUpdate(Mapping):
        pass
    
    class UpdateGeoMatchSetRequest(Mapping):
        pass
    
    class UpdateGeoMatchSetResponse(Mapping):
        pass
    
    class GeoMatchSetUpdate(Mapping):
        pass
    
    class UpdateIPSetRequest(Mapping):
        pass
    
    class UpdateIPSetResponse(Mapping):
        pass
    
    class IPSetUpdate(Mapping):
        pass
    
    class UpdateRateBasedRuleRequest(Mapping):
        pass
    
    class UpdateRateBasedRuleResponse(Mapping):
        pass
    
    class RuleUpdate(Mapping):
        pass
    
    class UpdateRegexMatchSetRequest(Mapping):
        pass
    
    class UpdateRegexMatchSetResponse(Mapping):
        pass
    
    class RegexMatchSetUpdate(Mapping):
        pass
    
    class UpdateRegexPatternSetRequest(Mapping):
        pass
    
    class UpdateRegexPatternSetResponse(Mapping):
        pass
    
    class RegexPatternSetUpdate(Mapping):
        pass
    
    class UpdateRuleRequest(Mapping):
        pass
    
    class UpdateRuleResponse(Mapping):
        pass
    
    class UpdateRuleGroupRequest(Mapping):
        pass
    
    class UpdateRuleGroupResponse(Mapping):
        pass
    
    class RuleGroupUpdate(Mapping):
        pass
    
    class UpdateSizeConstraintSetRequest(Mapping):
        pass
    
    class UpdateSizeConstraintSetResponse(Mapping):
        pass
    
    class SizeConstraintSetUpdate(Mapping):
        pass
    
    class UpdateSqlInjectionMatchSetRequest(Mapping):
        pass
    
    class UpdateSqlInjectionMatchSetResponse(Mapping):
        pass
    
    class SqlInjectionMatchSetUpdate(Mapping):
        pass
    
    class UpdateWebACLRequest(Mapping):
        pass
    
    class UpdateWebACLResponse(Mapping):
        pass
    
    class WebACLUpdate(Mapping):
        pass
    
    class UpdateXssMatchSetRequest(Mapping):
        pass
    
    class UpdateXssMatchSetResponse(Mapping):
        pass
    
    class XssMatchSetUpdate(Mapping):
        pass
    
    def create_byte_match_set(self, ChangeToken: str, Name: str) -> CreateByteMatchSetResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Creates a <code>ByteMatchSet</code>. You then use <a>UpdateByteMatchSet</a> to identify the part of a web request that you want AWS WAF to inspect, such as the values of the <code>User-Agent</code> header or the query string. For example, you can create a <code>ByteMatchSet</code> that matches any requests with <code>User-Agent</code> headers that contain the string <code>BadBot</code>. You can then configure AWS WAF to reject those requests. To create and configure a <code>ByteMatchSet</code>, perform the following steps: <ol> <li> Use <a>GetChangeToken</a> to get the change token that you provide in the <code>ChangeToken</code> parameter of a <code>CreateByteMatchSet</code> request. </li> <li> Submit a <code>CreateByteMatchSet</code> request. </li> <li> Use <code>GetChangeToken</code> to get the change token that you provide in the <code>ChangeToken</code> parameter of an <code>UpdateByteMatchSet</code> request. </li> <li> Submit an <a>UpdateByteMatchSet</a> request to specify the part of the request that you want AWS WAF to inspect (for example, the header or the URI) and the value that you want AWS WAF to watch for. </li> </ol> For more information about how to use the AWS WAF API to allow or block HTTP requests, see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/">AWS WAF Developer Guide</a>.

        :param self:
        :param ChangeToken:  The value returned by the most recent call to <a>GetChangeToken</a>.<br/>Name:  A friendly name or description of the <a>ByteMatchSet</a>. You can't change <code>Name</code> after you create a <code>ByteMatchSet</code>.<br/>
        :return: ChangeToken:  The <code>ChangeToken</code> that you used to submit the <code>CreateByteMatchSet</code> request. You can also use this value to query the status of the request. For more information, see <a>GetChangeTokenStatus</a>.<br/>ByteMatchSet:  A <a>ByteMatchSet</a> that contains no <code>ByteMatchTuple</code> objects.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ByteMatchTuples</i> Specifies the bytes (typically a string that corresponds with ASCII characters) that you want AWS WAF to search for in web requests, the location in requests that you want AWS WAF to search, and other settings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A friendly name or description of the <a>ByteMatchSet</a>. You can't change <code>Name</code> after you create a <code>ByteMatchSet</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ByteMatchSetId</i> The <code>ByteMatchSetId</code> for a <code>ByteMatchSet</code>. You use <code>ByteMatchSetId</code> to get information about a <code>ByteMatchSet</code> (see <a>GetByteMatchSet</a>), update a <code>ByteMatchSet</code> (see <a>UpdateByteMatchSet</a>), insert a <code>ByteMatchSet</code> into a <code>Rule</code> or delete one from a <code>Rule</code> (see <a>UpdateRule</a>), and delete a <code>ByteMatchSet</code> from AWS WAF (see <a>DeleteByteMatchSet</a>).  <code>ByteMatchSetId</code> is returned by <a>CreateByteMatchSet</a> and by <a>ListByteMatchSets</a>.<br/>        """
        pass

    def create_geo_match_set(self, ChangeToken: str, Name: str) -> CreateGeoMatchSetResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Creates an <a>GeoMatchSet</a>, which you use to specify which web requests you want to allow or block based on the country that the requests originate from. For example, if you're receiving a lot of requests from one or more countries and you want to block the requests, you can create an <code>GeoMatchSet</code> that contains those countries and then configure AWS WAF to block the requests.  To create and configure a <code>GeoMatchSet</code>, perform the following steps: <ol> <li> Use <a>GetChangeToken</a> to get the change token that you provide in the <code>ChangeToken</code> parameter of a <code>CreateGeoMatchSet</code> request. </li> <li> Submit a <code>CreateGeoMatchSet</code> request. </li> <li> Use <code>GetChangeToken</code> to get the change token that you provide in the <code>ChangeToken</code> parameter of an <a>UpdateGeoMatchSet</a> request. </li> <li> Submit an <code>UpdateGeoMatchSetSet</code> request to specify the countries that you want AWS WAF to watch for. </li> </ol> For more information about how to use the AWS WAF API to allow or block HTTP requests, see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/">AWS WAF Developer Guide</a>.

        :param self:
        :param ChangeToken:  The value returned by the most recent call to <a>GetChangeToken</a>.<br/>Name:  A friendly name or description of the <a>GeoMatchSet</a>. You can't change <code>Name</code> after you create the <code>GeoMatchSet</code>.<br/>
        :return: ChangeToken:  The <code>ChangeToken</code> that you used to submit the <code>CreateGeoMatchSet</code> request. You can also use this value to query the status of the request. For more information, see <a>GetChangeTokenStatus</a>.<br/>GeoMatchSet:  The <a>GeoMatchSet</a> returned in the <code>CreateGeoMatchSet</code> response. The <code>GeoMatchSet</code> contains no <code>GeoMatchConstraints</code>.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GeoMatchConstraints</i> An array of <a>GeoMatchConstraint</a> objects, which contain the country that you want AWS WAF to search for.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A friendly name or description of the <a>GeoMatchSet</a>. You can't change the name of an <code>GeoMatchSet</code> after you create it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GeoMatchSetId</i> The <code>GeoMatchSetId</code> for an <code>GeoMatchSet</code>. You use <code>GeoMatchSetId</code> to get information about a <code>GeoMatchSet</code> (see <a>GeoMatchSet</a>), update a <code>GeoMatchSet</code> (see <a>UpdateGeoMatchSet</a>), insert a <code>GeoMatchSet</code> into a <code>Rule</code> or delete one from a <code>Rule</code> (see <a>UpdateRule</a>), and delete a <code>GeoMatchSet</code> from AWS WAF (see <a>DeleteGeoMatchSet</a>).  <code>GeoMatchSetId</code> is returned by <a>CreateGeoMatchSet</a> and by <a>ListGeoMatchSets</a>.<br/>        """
        pass

    def create_ip_set(self, ChangeToken: str, Name: str) -> CreateIPSetResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Creates an <a>IPSet</a>, which you use to specify which web requests that you want to allow or block based on the IP addresses that the requests originate from. For example, if you're receiving a lot of requests from one or more individual IP addresses or one or more ranges of IP addresses and you want to block the requests, you can create an <code>IPSet</code> that contains those IP addresses and then configure AWS WAF to block the requests.  To create and configure an <code>IPSet</code>, perform the following steps: <ol> <li> Use <a>GetChangeToken</a> to get the change token that you provide in the <code>ChangeToken</code> parameter of a <code>CreateIPSet</code> request. </li> <li> Submit a <code>CreateIPSet</code> request. </li> <li> Use <code>GetChangeToken</code> to get the change token that you provide in the <code>ChangeToken</code> parameter of an <a>UpdateIPSet</a> request. </li> <li> Submit an <code>UpdateIPSet</code> request to specify the IP addresses that you want AWS WAF to watch for. </li> </ol> For more information about how to use the AWS WAF API to allow or block HTTP requests, see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/">AWS WAF Developer Guide</a>.

        :param self:
        :param ChangeToken:  The value returned by the most recent call to <a>GetChangeToken</a>.<br/>Name:  A friendly name or description of the <a>IPSet</a>. You can't change <code>Name</code> after you create the <code>IPSet</code>.<br/>
        :return: ChangeToken:  The <code>ChangeToken</code> that you used to submit the <code>CreateIPSet</code> request. You can also use this value to query the status of the request. For more information, see <a>GetChangeTokenStatus</a>.<br/>IPSet:  The <a>IPSet</a> returned in the <code>CreateIPSet</code> response.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IPSetDescriptors</i> The IP address type (<code>IPV4</code> or <code>IPV6</code>) and the IP address range (in CIDR notation) that web requests originate from. If the <code>WebACL</code> is associated with a CloudFront distribution and the viewer did not use an HTTP proxy or a load balancer to send the request, this is the value of the c-ip field in the CloudFront access logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A friendly name or description of the <a>IPSet</a>. You can't change the name of an <code>IPSet</code> after you create it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IPSetId</i> The <code>IPSetId</code> for an <code>IPSet</code>. You use <code>IPSetId</code> to get information about an <code>IPSet</code> (see <a>GetIPSet</a>), update an <code>IPSet</code> (see <a>UpdateIPSet</a>), insert an <code>IPSet</code> into a <code>Rule</code> or delete one from a <code>Rule</code> (see <a>UpdateRule</a>), and delete an <code>IPSet</code> from AWS WAF (see <a>DeleteIPSet</a>).  <code>IPSetId</code> is returned by <a>CreateIPSet</a> and by <a>ListIPSets</a>.<br/>        """
        pass

    def create_rate_based_rule(self, ChangeToken: str, RateLimit: RateLimit, RateKey: str, MetricName: str, Name: str, Tags: List[Tag]=None) -> CreateRateBasedRuleResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Creates a <a>RateBasedRule</a>. The <code>RateBasedRule</code> contains a <code>RateLimit</code>, which specifies the maximum number of requests that AWS WAF allows from a specified IP address in a five-minute period. The <code>RateBasedRule</code> also contains the <code>IPSet</code> objects, <code>ByteMatchSet</code> objects, and other predicates that identify the requests that you want to count or block if these requests exceed the <code>RateLimit</code>. If you add more than one predicate to a <code>RateBasedRule</code>, a request not only must exceed the <code>RateLimit</code>, but it also must match all the conditions to be counted or blocked. For example, suppose you add the following to a <code>RateBasedRule</code>: <ul> <li> An <code>IPSet</code> that matches the IP address <code>192.0.2.44/32</code>  </li> <li> A <code>ByteMatchSet</code> that matches <code>BadBot</code> in the <code>User-Agent</code> header </li> </ul> Further, you specify a <code>RateLimit</code> of 1,000. You then add the <code>RateBasedRule</code> to a <code>WebACL</code> and specify that you want to block requests that meet the conditions in the rule. For a request to be blocked, it must come from the IP address 192.0.2.44 <i>and</i> the <code>User-Agent</code> header in the request must contain the value <code>BadBot</code>. Further, requests that match these two conditions must be received at a rate of more than 1,000 requests every five minutes. If both conditions are met and the rate is exceeded, AWS WAF blocks the requests. If the rate drops below 1,000 for a five-minute period, AWS WAF no longer blocks the requests. As a second example, suppose you want to limit requests to a particular page on your site. To do this, you could add the following to a <code>RateBasedRule</code>: <ul> <li> A <code>ByteMatchSet</code> with <code>FieldToMatch</code> of <code>URI</code>  </li> <li> A <code>PositionalConstraint</code> of <code>STARTS_WITH</code>  </li> <li> A <code>TargetString</code> of <code>login</code>  </li> </ul> Further, you specify a <code>RateLimit</code> of 1,000. By adding this <code>RateBasedRule</code> to a <code>WebACL</code>, you could limit requests to your login page without affecting the rest of your site. To create and configure a <code>RateBasedRule</code>, perform the following steps: <ol> <li> Create and update the predicates that you want to include in the rule. For more information, see <a>CreateByteMatchSet</a>, <a>CreateIPSet</a>, and <a>CreateSqlInjectionMatchSet</a>. </li> <li> Use <a>GetChangeToken</a> to get the change token that you provide in the <code>ChangeToken</code> parameter of a <code>CreateRule</code> request. </li> <li> Submit a <code>CreateRateBasedRule</code> request. </li> <li> Use <code>GetChangeToken</code> to get the change token that you provide in the <code>ChangeToken</code> parameter of an <a>UpdateRule</a> request. </li> <li> Submit an <code>UpdateRateBasedRule</code> request to specify the predicates that you want to include in the rule. </li> <li> Create and update a <code>WebACL</code> that contains the <code>RateBasedRule</code>. For more information, see <a>CreateWebACL</a>. </li> </ol> For more information about how to use the AWS WAF API to allow or block HTTP requests, see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/">AWS WAF Developer Guide</a>.

        :param self:
        :param Tags:  <p/><br/>ChangeToken:  The <code>ChangeToken</code> that you used to submit the <code>CreateRateBasedRule</code> request. You can also use this value to query the status of the request. For more information, see <a>GetChangeTokenStatus</a>.<br/>RateLimit:  The maximum number of requests, which have an identical value in the field that is specified by <code>RateKey</code>, allowed in a five-minute period. If the number of requests exceeds the <code>RateLimit</code> and the other predicates specified in the rule are also met, AWS WAF triggers the action that is specified for this rule.<br/>RateKey:  The field that AWS WAF uses to determine if requests are likely arriving from a single source and thus subject to rate monitoring. The only valid value for <code>RateKey</code> is <code>IP</code>. <code>IP</code> indicates that requests that arrive from the same IP address are subject to the <code>RateLimit</code> that is specified in the <code>RateBasedRule</code>.<br/>MetricName:  A friendly name or description for the metrics for this <code>RateBasedRule</code>. The name can contain only alphanumeric characters (A-Z, a-z, 0-9), with maximum length 128 and minimum length one. It can't contain whitespace or metric names reserved for AWS WAF, including "All" and "Default_Action." You can't change the name of the metric after you create the <code>RateBasedRule</code>.<br/>Name:  A friendly name or description of the <a>RateBasedRule</a>. You can't change the name of a <code>RateBasedRule</code> after you create it.<br/>
        :return: ChangeToken:  The <code>ChangeToken</code> that you used to submit the <code>CreateRateBasedRule</code> request. You can also use this value to query the status of the request. For more information, see <a>GetChangeTokenStatus</a>.<br/>Rule:  The <a>RateBasedRule</a> that is returned in the <code>CreateRateBasedRule</code> response.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RateLimit</i> The maximum number of requests, which have an identical value in the field specified by the <code>RateKey</code>, allowed in a five-minute period. If the number of requests exceeds the <code>RateLimit</code> and the other predicates specified in the rule are also met, AWS WAF triggers the action that is specified for this rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RateKey</i> The field that AWS WAF uses to determine if requests are likely arriving from single source and thus subject to rate monitoring. The only valid value for <code>RateKey</code> is <code>IP</code>. <code>IP</code> indicates that requests arriving from the same IP address are subject to the <code>RateLimit</code> that is specified in the <code>RateBasedRule</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MatchPredicates</i> The <code>Predicates</code> object contains one <code>Predicate</code> element for each <a>ByteMatchSet</a>, <a>IPSet</a>, or <a>SqlInjectionMatchSet</a> object that you want to include in a <code>RateBasedRule</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MetricName</i> A friendly name or description for the metrics for a <code>RateBasedRule</code>. The name can contain only alphanumeric characters (A-Z, a-z, 0-9), with maximum length 128 and minimum length one. It can't contain whitespace or metric names reserved for AWS WAF, including "All" and "Default_Action." You can't change the name of the metric after you create the <code>RateBasedRule</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A friendly name or description for a <code>RateBasedRule</code>. You can't change the name of a <code>RateBasedRule</code> after you create it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RuleId</i> A unique identifier for a <code>RateBasedRule</code>. You use <code>RuleId</code> to get more information about a <code>RateBasedRule</code> (see <a>GetRateBasedRule</a>), update a <code>RateBasedRule</code> (see <a>UpdateRateBasedRule</a>), insert a <code>RateBasedRule</code> into a <code>WebACL</code> or delete one from a <code>WebACL</code> (see <a>UpdateWebACL</a>), or delete a <code>RateBasedRule</code> from AWS WAF (see <a>DeleteRateBasedRule</a>).<br/>        """
        pass

    def create_regex_match_set(self, ChangeToken: str, Name: str) -> CreateRegexMatchSetResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Creates a <a>RegexMatchSet</a>. You then use <a>UpdateRegexMatchSet</a> to identify the part of a web request that you want AWS WAF to inspect, such as the values of the <code>User-Agent</code> header or the query string. For example, you can create a <code>RegexMatchSet</code> that contains a <code>RegexMatchTuple</code> that looks for any requests with <code>User-Agent</code> headers that match a <code>RegexPatternSet</code> with pattern <code>B[a@]dB[o0]t</code>. You can then configure AWS WAF to reject those requests. To create and configure a <code>RegexMatchSet</code>, perform the following steps: <ol> <li> Use <a>GetChangeToken</a> to get the change token that you provide in the <code>ChangeToken</code> parameter of a <code>CreateRegexMatchSet</code> request. </li> <li> Submit a <code>CreateRegexMatchSet</code> request. </li> <li> Use <code>GetChangeToken</code> to get the change token that you provide in the <code>ChangeToken</code> parameter of an <code>UpdateRegexMatchSet</code> request. </li> <li> Submit an <a>UpdateRegexMatchSet</a> request to specify the part of the request that you want AWS WAF to inspect (for example, the header or the URI) and the value, using a <code>RegexPatternSet</code>, that you want AWS WAF to watch for. </li> </ol> For more information about how to use the AWS WAF API to allow or block HTTP requests, see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/">AWS WAF Developer Guide</a>.

        :param self:
        :param ChangeToken:  The value returned by the most recent call to <a>GetChangeToken</a>.<br/>Name:  A friendly name or description of the <a>RegexMatchSet</a>. You can't change <code>Name</code> after you create a <code>RegexMatchSet</code>.<br/>
        :return: ChangeToken:  The <code>ChangeToken</code> that you used to submit the <code>CreateRegexMatchSet</code> request. You can also use this value to query the status of the request. For more information, see <a>GetChangeTokenStatus</a>.<br/>RegexMatchSet:  A <a>RegexMatchSet</a> that contains no <code>RegexMatchTuple</code> objects.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RegexMatchTuples</i> Contains an array of <a>RegexMatchTuple</a> objects. Each <code>RegexMatchTuple</code> object contains:  <ul> <li> The part of a web request that you want AWS WAF to inspect, such as a query string or the value of the <code>User-Agent</code> header.  </li> <li> The identifier of the pattern (a regular expression) that you want AWS WAF to look for. For more information, see <a>RegexPatternSet</a>. </li> <li> Whether to perform any conversions on the request, such as converting it to lowercase, before inspecting it for the specified string. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A friendly name or description of the <a>RegexMatchSet</a>. You can't change <code>Name</code> after you create a <code>RegexMatchSet</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RegexMatchSetId</i> The <code>RegexMatchSetId</code> for a <code>RegexMatchSet</code>. You use <code>RegexMatchSetId</code> to get information about a <code>RegexMatchSet</code> (see <a>GetRegexMatchSet</a>), update a <code>RegexMatchSet</code> (see <a>UpdateRegexMatchSet</a>), insert a <code>RegexMatchSet</code> into a <code>Rule</code> or delete one from a <code>Rule</code> (see <a>UpdateRule</a>), and delete a <code>RegexMatchSet</code> from AWS WAF (see <a>DeleteRegexMatchSet</a>).  <code>RegexMatchSetId</code> is returned by <a>CreateRegexMatchSet</a> and by <a>ListRegexMatchSets</a>.<br/>        """
        pass

    def create_regex_pattern_set(self, ChangeToken: str, Name: str) -> CreateRegexPatternSetResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Creates a <code>RegexPatternSet</code>. You then use <a>UpdateRegexPatternSet</a> to specify the regular expression (regex) pattern that you want AWS WAF to search for, such as <code>B[a@]dB[o0]t</code>. You can then configure AWS WAF to reject those requests. To create and configure a <code>RegexPatternSet</code>, perform the following steps: <ol> <li> Use <a>GetChangeToken</a> to get the change token that you provide in the <code>ChangeToken</code> parameter of a <code>CreateRegexPatternSet</code> request. </li> <li> Submit a <code>CreateRegexPatternSet</code> request. </li> <li> Use <code>GetChangeToken</code> to get the change token that you provide in the <code>ChangeToken</code> parameter of an <code>UpdateRegexPatternSet</code> request. </li> <li> Submit an <a>UpdateRegexPatternSet</a> request to specify the string that you want AWS WAF to watch for. </li> </ol> For more information about how to use the AWS WAF API to allow or block HTTP requests, see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/">AWS WAF Developer Guide</a>.

        :param self:
        :param ChangeToken:  The value returned by the most recent call to <a>GetChangeToken</a>.<br/>Name:  A friendly name or description of the <a>RegexPatternSet</a>. You can't change <code>Name</code> after you create a <code>RegexPatternSet</code>.<br/>
        :return: ChangeToken:  The <code>ChangeToken</code> that you used to submit the <code>CreateRegexPatternSet</code> request. You can also use this value to query the status of the request. For more information, see <a>GetChangeTokenStatus</a>.<br/>RegexPatternSet:  A <a>RegexPatternSet</a> that contains no objects.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RegexPatternStrings</i> Specifies the regular expression (regex) patterns that you want AWS WAF to search for, such as <code>B[a@]dB[o0]t</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A friendly name or description of the <a>RegexPatternSet</a>. You can't change <code>Name</code> after you create a <code>RegexPatternSet</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RegexPatternSetId</i> The identifier for the <code>RegexPatternSet</code>. You use <code>RegexPatternSetId</code> to get information about a <code>RegexPatternSet</code>, update a <code>RegexPatternSet</code>, remove a <code>RegexPatternSet</code> from a <code>RegexMatchSet</code>, and delete a <code>RegexPatternSet</code> from AWS WAF.  <code>RegexMatchSetId</code> is returned by <a>CreateRegexPatternSet</a> and by <a>ListRegexPatternSets</a>.<br/>        """
        pass

    def create_rule(self, ChangeToken: str, MetricName: str, Name: str, Tags: List[Tag]=None) -> CreateRuleResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Creates a <code>Rule</code>, which contains the <code>IPSet</code> objects, <code>ByteMatchSet</code> objects, and other predicates that identify the requests that you want to block. If you add more than one predicate to a <code>Rule</code>, a request must match all of the specifications to be allowed or blocked. For example, suppose that you add the following to a <code>Rule</code>: <ul> <li> An <code>IPSet</code> that matches the IP address <code>192.0.2.44/32</code>  </li> <li> A <code>ByteMatchSet</code> that matches <code>BadBot</code> in the <code>User-Agent</code> header </li> </ul> You then add the <code>Rule</code> to a <code>WebACL</code> and specify that you want to blocks requests that satisfy the <code>Rule</code>. For a request to be blocked, it must come from the IP address 192.0.2.44 <i>and</i> the <code>User-Agent</code> header in the request must contain the value <code>BadBot</code>. To create and configure a <code>Rule</code>, perform the following steps: <ol> <li> Create and update the predicates that you want to include in the <code>Rule</code>. For more information, see <a>CreateByteMatchSet</a>, <a>CreateIPSet</a>, and <a>CreateSqlInjectionMatchSet</a>. </li> <li> Use <a>GetChangeToken</a> to get the change token that you provide in the <code>ChangeToken</code> parameter of a <code>CreateRule</code> request. </li> <li> Submit a <code>CreateRule</code> request. </li> <li> Use <code>GetChangeToken</code> to get the change token that you provide in the <code>ChangeToken</code> parameter of an <a>UpdateRule</a> request. </li> <li> Submit an <code>UpdateRule</code> request to specify the predicates that you want to include in the <code>Rule</code>. </li> <li> Create and update a <code>WebACL</code> that contains the <code>Rule</code>. For more information, see <a>CreateWebACL</a>. </li> </ol> For more information about how to use the AWS WAF API to allow or block HTTP requests, see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/">AWS WAF Developer Guide</a>.

        :param self:
        :param Tags:  <p/><br/>ChangeToken:  The value returned by the most recent call to <a>GetChangeToken</a>.<br/>MetricName:  A friendly name or description for the metrics for this <code>Rule</code>. The name can contain only alphanumeric characters (A-Z, a-z, 0-9), with maximum length 128 and minimum length one. It can't contain whitespace or metric names reserved for AWS WAF, including "All" and "Default_Action." You can't change the name of the metric after you create the <code>Rule</code>.<br/>Name:  A friendly name or description of the <a>Rule</a>. You can't change the name of a <code>Rule</code> after you create it.<br/>
        :return: ChangeToken:  The <code>ChangeToken</code> that you used to submit the <code>CreateRule</code> request. You can also use this value to query the status of the request. For more information, see <a>GetChangeTokenStatus</a>.<br/>Rule:  The <a>Rule</a> returned in the <code>CreateRule</code> response.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Predicates</i> The <code>Predicates</code> object contains one <code>Predicate</code> element for each <a>ByteMatchSet</a>, <a>IPSet</a>, or <a>SqlInjectionMatchSet</a> object that you want to include in a <code>Rule</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MetricName</i> A friendly name or description for the metrics for this <code>Rule</code>. The name can contain only alphanumeric characters (A-Z, a-z, 0-9), with maximum length 128 and minimum length one. It can't contain whitespace or metric names reserved for AWS WAF, including "All" and "Default_Action." You can't change <code>MetricName</code> after you create the <code>Rule</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The friendly name or description for the <code>Rule</code>. You can't change the name of a <code>Rule</code> after you create it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RuleId</i> A unique identifier for a <code>Rule</code>. You use <code>RuleId</code> to get more information about a <code>Rule</code> (see <a>GetRule</a>), update a <code>Rule</code> (see <a>UpdateRule</a>), insert a <code>Rule</code> into a <code>WebACL</code> or delete a one from a <code>WebACL</code> (see <a>UpdateWebACL</a>), or delete a <code>Rule</code> from AWS WAF (see <a>DeleteRule</a>).  <code>RuleId</code> is returned by <a>CreateRule</a> and by <a>ListRules</a>.<br/>        """
        pass

    def create_rule_group(self, ChangeToken: str, MetricName: str, Name: str, Tags: List[Tag]=None) -> CreateRuleGroupResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Creates a <code>RuleGroup</code>. A rule group is a collection of predefined rules that you add to a web ACL. You use <a>UpdateRuleGroup</a> to add rules to the rule group. Rule groups are subject to the following limits: <ul> <li> Three rule groups per account. You can request an increase to this limit by contacting customer support. </li> <li> One rule group per web ACL. </li> <li> Ten rules per rule group. </li> </ul> For more information about how to use the AWS WAF API to allow or block HTTP requests, see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/">AWS WAF Developer Guide</a>.

        :param self:
        :param Tags:  <p/><br/>ChangeToken:  The value returned by the most recent call to <a>GetChangeToken</a>.<br/>MetricName:  A friendly name or description for the metrics for this <code>RuleGroup</code>. The name can contain only alphanumeric characters (A-Z, a-z, 0-9), with maximum length 128 and minimum length one. It can't contain whitespace or metric names reserved for AWS WAF, including "All" and "Default_Action." You can't change the name of the metric after you create the <code>RuleGroup</code>.<br/>Name:  A friendly name or description of the <a>RuleGroup</a>. You can't change <code>Name</code> after you create a <code>RuleGroup</code>.<br/>
        :return: ChangeToken:  The <code>ChangeToken</code> that you used to submit the <code>CreateRuleGroup</code> request. You can also use this value to query the status of the request. For more information, see <a>GetChangeTokenStatus</a>.<br/>RuleGroup:  An empty <a>RuleGroup</a>.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MetricName</i> A friendly name or description for the metrics for this <code>RuleGroup</code>. The name can contain only alphanumeric characters (A-Z, a-z, 0-9), with maximum length 128 and minimum length one. It can't contain whitespace or metric names reserved for AWS WAF, including "All" and "Default_Action." You can't change the name of the metric after you create the <code>RuleGroup</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The friendly name or description for the <code>RuleGroup</code>. You can't change the name of a <code>RuleGroup</code> after you create it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RuleGroupId</i> A unique identifier for a <code>RuleGroup</code>. You use <code>RuleGroupId</code> to get more information about a <code>RuleGroup</code> (see <a>GetRuleGroup</a>), update a <code>RuleGroup</code> (see <a>UpdateRuleGroup</a>), insert a <code>RuleGroup</code> into a <code>WebACL</code> or delete a one from a <code>WebACL</code> (see <a>UpdateWebACL</a>), or delete a <code>RuleGroup</code> from AWS WAF (see <a>DeleteRuleGroup</a>).  <code>RuleGroupId</code> is returned by <a>CreateRuleGroup</a> and by <a>ListRuleGroups</a>.<br/>        """
        pass

    def create_size_constraint_set(self, ChangeToken: str, Name: str) -> CreateSizeConstraintSetResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Creates a <code>SizeConstraintSet</code>. You then use <a>UpdateSizeConstraintSet</a> to identify the part of a web request that you want AWS WAF to check for length, such as the length of the <code>User-Agent</code> header or the length of the query string. For example, you can create a <code>SizeConstraintSet</code> that matches any requests that have a query string that is longer than 100 bytes. You can then configure AWS WAF to reject those requests. To create and configure a <code>SizeConstraintSet</code>, perform the following steps: <ol> <li> Use <a>GetChangeToken</a> to get the change token that you provide in the <code>ChangeToken</code> parameter of a <code>CreateSizeConstraintSet</code> request. </li> <li> Submit a <code>CreateSizeConstraintSet</code> request. </li> <li> Use <code>GetChangeToken</code> to get the change token that you provide in the <code>ChangeToken</code> parameter of an <code>UpdateSizeConstraintSet</code> request. </li> <li> Submit an <a>UpdateSizeConstraintSet</a> request to specify the part of the request that you want AWS WAF to inspect (for example, the header or the URI) and the value that you want AWS WAF to watch for. </li> </ol> For more information about how to use the AWS WAF API to allow or block HTTP requests, see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/">AWS WAF Developer Guide</a>.

        :param self:
        :param ChangeToken:  The value returned by the most recent call to <a>GetChangeToken</a>.<br/>Name:  A friendly name or description of the <a>SizeConstraintSet</a>. You can't change <code>Name</code> after you create a <code>SizeConstraintSet</code>.<br/>
        :return: ChangeToken:  The <code>ChangeToken</code> that you used to submit the <code>CreateSizeConstraintSet</code> request. You can also use this value to query the status of the request. For more information, see <a>GetChangeTokenStatus</a>.<br/>SizeConstraintSet:  A <a>SizeConstraintSet</a> that contains no <code>SizeConstraint</code> objects.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SizeConstraints</i> Specifies the parts of web requests that you want to inspect the size of.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name, if any, of the <code>SizeConstraintSet</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SizeConstraintSetId</i> A unique identifier for a <code>SizeConstraintSet</code>. You use <code>SizeConstraintSetId</code> to get information about a <code>SizeConstraintSet</code> (see <a>GetSizeConstraintSet</a>), update a <code>SizeConstraintSet</code> (see <a>UpdateSizeConstraintSet</a>), insert a <code>SizeConstraintSet</code> into a <code>Rule</code> or delete one from a <code>Rule</code> (see <a>UpdateRule</a>), and delete a <code>SizeConstraintSet</code> from AWS WAF (see <a>DeleteSizeConstraintSet</a>).  <code>SizeConstraintSetId</code> is returned by <a>CreateSizeConstraintSet</a> and by <a>ListSizeConstraintSets</a>.<br/>        """
        pass

    def create_sql_injection_match_set(self, ChangeToken: str, Name: str) -> CreateSqlInjectionMatchSetResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Creates a <a>SqlInjectionMatchSet</a>, which you use to allow, block, or count requests that contain snippets of SQL code in a specified part of web requests. AWS WAF searches for character sequences that are likely to be malicious strings. To create and configure a <code>SqlInjectionMatchSet</code>, perform the following steps: <ol> <li> Use <a>GetChangeToken</a> to get the change token that you provide in the <code>ChangeToken</code> parameter of a <code>CreateSqlInjectionMatchSet</code> request. </li> <li> Submit a <code>CreateSqlInjectionMatchSet</code> request. </li> <li> Use <code>GetChangeToken</code> to get the change token that you provide in the <code>ChangeToken</code> parameter of an <a>UpdateSqlInjectionMatchSet</a> request. </li> <li> Submit an <a>UpdateSqlInjectionMatchSet</a> request to specify the parts of web requests in which you want to allow, block, or count malicious SQL code. </li> </ol> For more information about how to use the AWS WAF API to allow or block HTTP requests, see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/">AWS WAF Developer Guide</a>.

        :param self:
        :param ChangeToken:  The value returned by the most recent call to <a>GetChangeToken</a>.<br/>Name:  A friendly name or description for the <a>SqlInjectionMatchSet</a> that you're creating. You can't change <code>Name</code> after you create the <code>SqlInjectionMatchSet</code>.<br/>
        :return: ChangeToken:  The <code>ChangeToken</code> that you used to submit the <code>CreateSqlInjectionMatchSet</code> request. You can also use this value to query the status of the request. For more information, see <a>GetChangeTokenStatus</a>.<br/>SqlInjectionMatchSet:  A <a>SqlInjectionMatchSet</a>.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SqlInjectionMatchTuples</i> Specifies the parts of web requests that you want to inspect for snippets of malicious SQL code.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name, if any, of the <code>SqlInjectionMatchSet</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SqlInjectionMatchSetId</i> A unique identifier for a <code>SqlInjectionMatchSet</code>. You use <code>SqlInjectionMatchSetId</code> to get information about a <code>SqlInjectionMatchSet</code> (see <a>GetSqlInjectionMatchSet</a>), update a <code>SqlInjectionMatchSet</code> (see <a>UpdateSqlInjectionMatchSet</a>), insert a <code>SqlInjectionMatchSet</code> into a <code>Rule</code> or delete one from a <code>Rule</code> (see <a>UpdateRule</a>), and delete a <code>SqlInjectionMatchSet</code> from AWS WAF (see <a>DeleteSqlInjectionMatchSet</a>).  <code>SqlInjectionMatchSetId</code> is returned by <a>CreateSqlInjectionMatchSet</a> and by <a>ListSqlInjectionMatchSets</a>.<br/>        """
        pass

    def create_web_acl(self, ChangeToken: str, DefaultAction: WafAction, MetricName: str, Name: str, Tags: List[Tag]=None) -> CreateWebACLResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Creates a <code>WebACL</code>, which contains the <code>Rules</code> that identify the CloudFront web requests that you want to allow, block, or count. AWS WAF evaluates <code>Rules</code> in order based on the value of <code>Priority</code> for each <code>Rule</code>. You also specify a default action, either <code>ALLOW</code> or <code>BLOCK</code>. If a web request doesn't match any of the <code>Rules</code> in a <code>WebACL</code>, AWS WAF responds to the request with the default action.  To create and configure a <code>WebACL</code>, perform the following steps: <ol> <li> Create and update the <code>ByteMatchSet</code> objects and other predicates that you want to include in <code>Rules</code>. For more information, see <a>CreateByteMatchSet</a>, <a>UpdateByteMatchSet</a>, <a>CreateIPSet</a>, <a>UpdateIPSet</a>, <a>CreateSqlInjectionMatchSet</a>, and <a>UpdateSqlInjectionMatchSet</a>. </li> <li> Create and update the <code>Rules</code> that you want to include in the <code>WebACL</code>. For more information, see <a>CreateRule</a> and <a>UpdateRule</a>. </li> <li> Use <a>GetChangeToken</a> to get the change token that you provide in the <code>ChangeToken</code> parameter of a <code>CreateWebACL</code> request. </li> <li> Submit a <code>CreateWebACL</code> request. </li> <li> Use <code>GetChangeToken</code> to get the change token that you provide in the <code>ChangeToken</code> parameter of an <a>UpdateWebACL</a> request. </li> <li> Submit an <a>UpdateWebACL</a> request to specify the <code>Rules</code> that you want to include in the <code>WebACL</code>, to specify the default action, and to associate the <code>WebACL</code> with a CloudFront distribution. </li> </ol> For more information about how to use the AWS WAF API, see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/">AWS WAF Developer Guide</a>.

        :param self:
        :param Tags:  <p/><br/>ChangeToken:  The value returned by the most recent call to <a>GetChangeToken</a>.<br/>DefaultAction:  The action that you want AWS WAF to take when a request doesn't match the criteria specified in any of the <code>Rule</code> objects that are associated with the <code>WebACL</code>.:<br/>MetricName:  A friendly name or description for the metrics for this <code>WebACL</code>.The name can contain only alphanumeric characters (A-Z, a-z, 0-9), with maximum length 128 and minimum length one. It can't contain whitespace or metric names reserved for AWS WAF, including "All" and "Default_Action." You can't change <code>MetricName</code> after you create the <code>WebACL</code>.<br/>Name:  A friendly name or description of the <a>WebACL</a>. You can't change <code>Name</code> after you create the <code>WebACL</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> Specifies how you want AWS WAF to respond to requests that match the settings in a <code>Rule</code>. Valid settings include the following: <ul> <li>  <code>ALLOW</code>: AWS WAF allows requests </li> <li>  <code>BLOCK</code>: AWS WAF blocks requests </li> <li>  <code>COUNT</code>: AWS WAF increments a counter of the requests that match all of the conditions in the rule. AWS WAF then continues to inspect the web request based on the remaining rules in the web ACL. You can't specify <code>COUNT</code> for the default action for a <code>WebACL</code>. </li> </ul><br/>
        :return: ChangeToken:  The <code>ChangeToken</code> that you used to submit the <code>CreateWebACL</code> request. You can also use this value to query the status of the request. For more information, see <a>GetChangeTokenStatus</a>.<br/>WebACL:  The <a>WebACL</a> returned in the <code>CreateWebACL</code> response.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WebACLArn</i> Tha Amazon Resource Name (ARN) of the web ACL.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Rules</i> An array that contains the action for each <code>Rule</code> in a <code>WebACL</code>, the priority of the <code>Rule</code>, and the ID of the <code>Rule</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultAction</i> The action to perform if none of the <code>Rules</code> contained in the <code>WebACL</code> match. The action is specified by the <a>WafAction</a> object.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DefaultAction</b>: The action to perform if none of the <code>Rules</code> contained in the <code>WebACL</code> match. The action is specified by the <a>WafAction</a> object.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MetricName</i> A friendly name or description for the metrics for this <code>WebACL</code>. The name can contain only alphanumeric characters (A-Z, a-z, 0-9), with maximum length 128 and minimum length one. It can't contain whitespace or metric names reserved for AWS WAF, including "All" and "Default_Action." You can't change <code>MetricName</code> after you create the <code>WebACL</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A friendly name or description of the <code>WebACL</code>. You can't change the name of a <code>WebACL</code> after you create it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WebACLId</i> A unique identifier for a <code>WebACL</code>. You use <code>WebACLId</code> to get information about a <code>WebACL</code> (see <a>GetWebACL</a>), update a <code>WebACL</code> (see <a>UpdateWebACL</a>), and delete a <code>WebACL</code> from AWS WAF (see <a>DeleteWebACL</a>).  <code>WebACLId</code> is returned by <a>CreateWebACL</a> and by <a>ListWebACLs</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> Specifies how you want AWS WAF to respond to requests that match the settings in a <code>Rule</code>. Valid settings include the following: <ul> <li>  <code>ALLOW</code>: AWS WAF allows requests </li> <li>  <code>BLOCK</code>: AWS WAF blocks requests </li> <li>  <code>COUNT</code>: AWS WAF increments a counter of the requests that match all of the conditions in the rule. AWS WAF then continues to inspect the web request based on the remaining rules in the web ACL. You can't specify <code>COUNT</code> for the default action for a <code>WebACL</code>. </li> </ul><br/>        """
        pass

    def create_web_acl_migration_stack(self, IgnoreUnsupportedType: IgnoreUnsupportedType, S3BucketName: str, WebACLId: str) -> CreateWebACLMigrationStackResponse:
        r"""Creates an AWS CloudFormation WAFV2 template for the specified web ACL in the specified Amazon S3 bucket. Then, in CloudFormation, you create a stack from the template, to create the web ACL and its resources in AWS WAFV2. Use this to migrate your AWS WAF Classic web ACL to the latest version of AWS WAF. This is part of a larger migration procedure for web ACLs from AWS WAF Classic to the latest version of AWS WAF. For the full procedure, including caveats and manual steps to complete the migration and switch over to the new web ACL, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-migrating-from-classic.html">Migrating your AWS WAF Classic resources to AWS WAF</a> in the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. 

        :param self:
        :param IgnoreUnsupportedType:  Indicates whether to exclude entities that can't be migrated or to stop the migration. Set this to true to ignore unsupported entities in the web ACL during the migration. Otherwise, if AWS WAF encounters unsupported entities, it stops the process and throws an exception. <br/>S3BucketName:  The name of the Amazon S3 bucket to store the CloudFormation template in. The S3 bucket must be configured as follows for the migration:  <ul> <li> The bucket name must start with <code>aws-waf-migration-</code>. For example, <code>aws-waf-migration-my-web-acl</code>. </li> <li> The bucket must be in the Region where you are deploying the template. For example, for a web ACL in us-west-2, you must use an Amazon S3 bucket in us-west-2 and you must deploy the template stack to us-west-2.  </li> <li> The bucket policies must permit the migration process to write data. For listings of the bucket policies, see the Examples section.  </li> </ul><br/>WebACLId:  The UUID of the WAF Classic web ACL that you want to migrate to WAF v2.<br/>
        :return: S3ObjectUrl:  The URL of the template created in Amazon S3. <br/>        """
        pass

    def create_xss_match_set(self, ChangeToken: str, Name: str) -> CreateXssMatchSetResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Creates an <a>XssMatchSet</a>, which you use to allow, block, or count requests that contain cross-site scripting attacks in the specified part of web requests. AWS WAF searches for character sequences that are likely to be malicious strings. To create and configure an <code>XssMatchSet</code>, perform the following steps: <ol> <li> Use <a>GetChangeToken</a> to get the change token that you provide in the <code>ChangeToken</code> parameter of a <code>CreateXssMatchSet</code> request. </li> <li> Submit a <code>CreateXssMatchSet</code> request. </li> <li> Use <code>GetChangeToken</code> to get the change token that you provide in the <code>ChangeToken</code> parameter of an <a>UpdateXssMatchSet</a> request. </li> <li> Submit an <a>UpdateXssMatchSet</a> request to specify the parts of web requests in which you want to allow, block, or count cross-site scripting attacks. </li> </ol> For more information about how to use the AWS WAF API to allow or block HTTP requests, see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/">AWS WAF Developer Guide</a>.

        :param self:
        :param ChangeToken:  The value returned by the most recent call to <a>GetChangeToken</a>.<br/>Name:  A friendly name or description for the <a>XssMatchSet</a> that you're creating. You can't change <code>Name</code> after you create the <code>XssMatchSet</code>.<br/>
        :return: ChangeToken:  The <code>ChangeToken</code> that you used to submit the <code>CreateXssMatchSet</code> request. You can also use this value to query the status of the request. For more information, see <a>GetChangeTokenStatus</a>.<br/>XssMatchSet:  An <a>XssMatchSet</a>.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>XssMatchTuples</i> Specifies the parts of web requests that you want to inspect for cross-site scripting attacks.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name, if any, of the <code>XssMatchSet</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>XssMatchSetId</i> A unique identifier for an <code>XssMatchSet</code>. You use <code>XssMatchSetId</code> to get information about an <code>XssMatchSet</code> (see <a>GetXssMatchSet</a>), update an <code>XssMatchSet</code> (see <a>UpdateXssMatchSet</a>), insert an <code>XssMatchSet</code> into a <code>Rule</code> or delete one from a <code>Rule</code> (see <a>UpdateRule</a>), and delete an <code>XssMatchSet</code> from AWS WAF (see <a>DeleteXssMatchSet</a>).  <code>XssMatchSetId</code> is returned by <a>CreateXssMatchSet</a> and by <a>ListXssMatchSets</a>.<br/>        """
        pass

    def delete_byte_match_set(self, ChangeToken: str, ByteMatchSetId: str) -> DeleteByteMatchSetResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Permanently deletes a <a>ByteMatchSet</a>. You can't delete a <code>ByteMatchSet</code> if it's still used in any <code>Rules</code> or if it still includes any <a>ByteMatchTuple</a> objects (any filters). If you just want to remove a <code>ByteMatchSet</code> from a <code>Rule</code>, use <a>UpdateRule</a>. To permanently delete a <code>ByteMatchSet</code>, perform the following steps: <ol> <li> Update the <code>ByteMatchSet</code> to remove filters, if any. For more information, see <a>UpdateByteMatchSet</a>. </li> <li> Use <a>GetChangeToken</a> to get the change token that you provide in the <code>ChangeToken</code> parameter of a <code>DeleteByteMatchSet</code> request. </li> <li> Submit a <code>DeleteByteMatchSet</code> request. </li> </ol>

        :param self:
        :param ChangeToken:  The value returned by the most recent call to <a>GetChangeToken</a>.<br/>ByteMatchSetId:  The <code>ByteMatchSetId</code> of the <a>ByteMatchSet</a> that you want to delete. <code>ByteMatchSetId</code> is returned by <a>CreateByteMatchSet</a> and by <a>ListByteMatchSets</a>.<br/>
        :return: ChangeToken:  The <code>ChangeToken</code> that you used to submit the <code>DeleteByteMatchSet</code> request. You can also use this value to query the status of the request. For more information, see <a>GetChangeTokenStatus</a>.<br/>        """
        pass

    def delete_geo_match_set(self, ChangeToken: str, GeoMatchSetId: str) -> DeleteGeoMatchSetResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Permanently deletes a <a>GeoMatchSet</a>. You can't delete a <code>GeoMatchSet</code> if it's still used in any <code>Rules</code> or if it still includes any countries. If you just want to remove a <code>GeoMatchSet</code> from a <code>Rule</code>, use <a>UpdateRule</a>. To permanently delete a <code>GeoMatchSet</code> from AWS WAF, perform the following steps: <ol> <li> Update the <code>GeoMatchSet</code> to remove any countries. For more information, see <a>UpdateGeoMatchSet</a>. </li> <li> Use <a>GetChangeToken</a> to get the change token that you provide in the <code>ChangeToken</code> parameter of a <code>DeleteGeoMatchSet</code> request. </li> <li> Submit a <code>DeleteGeoMatchSet</code> request. </li> </ol>

        :param self:
        :param ChangeToken:  The value returned by the most recent call to <a>GetChangeToken</a>.<br/>GeoMatchSetId:  The <code>GeoMatchSetID</code> of the <a>GeoMatchSet</a> that you want to delete. <code>GeoMatchSetId</code> is returned by <a>CreateGeoMatchSet</a> and by <a>ListGeoMatchSets</a>.<br/>
        :return: ChangeToken:  The <code>ChangeToken</code> that you used to submit the <code>DeleteGeoMatchSet</code> request. You can also use this value to query the status of the request. For more information, see <a>GetChangeTokenStatus</a>.<br/>        """
        pass

    def delete_ip_set(self, ChangeToken: str, IPSetId: str) -> DeleteIPSetResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Permanently deletes an <a>IPSet</a>. You can't delete an <code>IPSet</code> if it's still used in any <code>Rules</code> or if it still includes any IP addresses. If you just want to remove an <code>IPSet</code> from a <code>Rule</code>, use <a>UpdateRule</a>. To permanently delete an <code>IPSet</code> from AWS WAF, perform the following steps: <ol> <li> Update the <code>IPSet</code> to remove IP address ranges, if any. For more information, see <a>UpdateIPSet</a>. </li> <li> Use <a>GetChangeToken</a> to get the change token that you provide in the <code>ChangeToken</code> parameter of a <code>DeleteIPSet</code> request. </li> <li> Submit a <code>DeleteIPSet</code> request. </li> </ol>

        :param self:
        :param ChangeToken:  The value returned by the most recent call to <a>GetChangeToken</a>.<br/>IPSetId:  The <code>IPSetId</code> of the <a>IPSet</a> that you want to delete. <code>IPSetId</code> is returned by <a>CreateIPSet</a> and by <a>ListIPSets</a>.<br/>
        :return: ChangeToken:  The <code>ChangeToken</code> that you used to submit the <code>DeleteIPSet</code> request. You can also use this value to query the status of the request. For more information, see <a>GetChangeTokenStatus</a>.<br/>        """
        pass

    def delete_logging_configuration(self, ResourceArn: str) -> DeleteLoggingConfigurationResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Permanently deletes the <a>LoggingConfiguration</a> from the specified web ACL.

        :param self:
        :param ResourceArn:  The Amazon Resource Name (ARN) of the web ACL from which you want to delete the <a>LoggingConfiguration</a>.<br/>
        :return:         """
        pass

    def delete_permission_policy(self, ResourceArn: str) -> DeletePermissionPolicyResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Permanently deletes an IAM policy from the specified RuleGroup. The user making the request must be the owner of the RuleGroup.

        :param self:
        :param ResourceArn:  The Amazon Resource Name (ARN) of the RuleGroup from which you want to delete the policy. The user making the request must be the owner of the RuleGroup.<br/>
        :return:         """
        pass

    def delete_rate_based_rule(self, ChangeToken: str, RuleId: str) -> DeleteRateBasedRuleResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Permanently deletes a <a>RateBasedRule</a>. You can't delete a rule if it's still used in any <code>WebACL</code> objects or if it still includes any predicates, such as <code>ByteMatchSet</code> objects. If you just want to remove a rule from a <code>WebACL</code>, use <a>UpdateWebACL</a>. To permanently delete a <code>RateBasedRule</code> from AWS WAF, perform the following steps: <ol> <li> Update the <code>RateBasedRule</code> to remove predicates, if any. For more information, see <a>UpdateRateBasedRule</a>. </li> <li> Use <a>GetChangeToken</a> to get the change token that you provide in the <code>ChangeToken</code> parameter of a <code>DeleteRateBasedRule</code> request. </li> <li> Submit a <code>DeleteRateBasedRule</code> request. </li> </ol>

        :param self:
        :param ChangeToken:  The value returned by the most recent call to <a>GetChangeToken</a>.<br/>RuleId:  The <code>RuleId</code> of the <a>RateBasedRule</a> that you want to delete. <code>RuleId</code> is returned by <a>CreateRateBasedRule</a> and by <a>ListRateBasedRules</a>.<br/>
        :return: ChangeToken:  The <code>ChangeToken</code> that you used to submit the <code>DeleteRateBasedRule</code> request. You can also use this value to query the status of the request. For more information, see <a>GetChangeTokenStatus</a>.<br/>        """
        pass

    def delete_regex_match_set(self, ChangeToken: str, RegexMatchSetId: str) -> DeleteRegexMatchSetResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Permanently deletes a <a>RegexMatchSet</a>. You can't delete a <code>RegexMatchSet</code> if it's still used in any <code>Rules</code> or if it still includes any <code>RegexMatchTuples</code> objects (any filters). If you just want to remove a <code>RegexMatchSet</code> from a <code>Rule</code>, use <a>UpdateRule</a>. To permanently delete a <code>RegexMatchSet</code>, perform the following steps: <ol> <li> Update the <code>RegexMatchSet</code> to remove filters, if any. For more information, see <a>UpdateRegexMatchSet</a>. </li> <li> Use <a>GetChangeToken</a> to get the change token that you provide in the <code>ChangeToken</code> parameter of a <code>DeleteRegexMatchSet</code> request. </li> <li> Submit a <code>DeleteRegexMatchSet</code> request. </li> </ol>

        :param self:
        :param ChangeToken:  The value returned by the most recent call to <a>GetChangeToken</a>.<br/>RegexMatchSetId:  The <code>RegexMatchSetId</code> of the <a>RegexMatchSet</a> that you want to delete. <code>RegexMatchSetId</code> is returned by <a>CreateRegexMatchSet</a> and by <a>ListRegexMatchSets</a>.<br/>
        :return: ChangeToken:  The <code>ChangeToken</code> that you used to submit the <code>DeleteRegexMatchSet</code> request. You can also use this value to query the status of the request. For more information, see <a>GetChangeTokenStatus</a>.<br/>        """
        pass

    def delete_regex_pattern_set(self, ChangeToken: str, RegexPatternSetId: str) -> DeleteRegexPatternSetResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Permanently deletes a <a>RegexPatternSet</a>. You can't delete a <code>RegexPatternSet</code> if it's still used in any <code>RegexMatchSet</code> or if the <code>RegexPatternSet</code> is not empty. 

        :param self:
        :param ChangeToken:  The value returned by the most recent call to <a>GetChangeToken</a>.<br/>RegexPatternSetId:  The <code>RegexPatternSetId</code> of the <a>RegexPatternSet</a> that you want to delete. <code>RegexPatternSetId</code> is returned by <a>CreateRegexPatternSet</a> and by <a>ListRegexPatternSets</a>.<br/>
        :return: ChangeToken:  The <code>ChangeToken</code> that you used to submit the <code>DeleteRegexPatternSet</code> request. You can also use this value to query the status of the request. For more information, see <a>GetChangeTokenStatus</a>.<br/>        """
        pass

    def delete_rule(self, ChangeToken: str, RuleId: str) -> DeleteRuleResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Permanently deletes a <a>Rule</a>. You can't delete a <code>Rule</code> if it's still used in any <code>WebACL</code> objects or if it still includes any predicates, such as <code>ByteMatchSet</code> objects. If you just want to remove a <code>Rule</code> from a <code>WebACL</code>, use <a>UpdateWebACL</a>. To permanently delete a <code>Rule</code> from AWS WAF, perform the following steps: <ol> <li> Update the <code>Rule</code> to remove predicates, if any. For more information, see <a>UpdateRule</a>. </li> <li> Use <a>GetChangeToken</a> to get the change token that you provide in the <code>ChangeToken</code> parameter of a <code>DeleteRule</code> request. </li> <li> Submit a <code>DeleteRule</code> request. </li> </ol>

        :param self:
        :param ChangeToken:  The value returned by the most recent call to <a>GetChangeToken</a>.<br/>RuleId:  The <code>RuleId</code> of the <a>Rule</a> that you want to delete. <code>RuleId</code> is returned by <a>CreateRule</a> and by <a>ListRules</a>.<br/>
        :return: ChangeToken:  The <code>ChangeToken</code> that you used to submit the <code>DeleteRule</code> request. You can also use this value to query the status of the request. For more information, see <a>GetChangeTokenStatus</a>.<br/>        """
        pass

    def delete_rule_group(self, ChangeToken: str, RuleGroupId: str) -> DeleteRuleGroupResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Permanently deletes a <a>RuleGroup</a>. You can't delete a <code>RuleGroup</code> if it's still used in any <code>WebACL</code> objects or if it still includes any rules. If you just want to remove a <code>RuleGroup</code> from a <code>WebACL</code>, use <a>UpdateWebACL</a>. To permanently delete a <code>RuleGroup</code> from AWS WAF, perform the following steps: <ol> <li> Update the <code>RuleGroup</code> to remove rules, if any. For more information, see <a>UpdateRuleGroup</a>. </li> <li> Use <a>GetChangeToken</a> to get the change token that you provide in the <code>ChangeToken</code> parameter of a <code>DeleteRuleGroup</code> request. </li> <li> Submit a <code>DeleteRuleGroup</code> request. </li> </ol>

        :param self:
        :param ChangeToken:  The value returned by the most recent call to <a>GetChangeToken</a>.<br/>RuleGroupId:  The <code>RuleGroupId</code> of the <a>RuleGroup</a> that you want to delete. <code>RuleGroupId</code> is returned by <a>CreateRuleGroup</a> and by <a>ListRuleGroups</a>.<br/>
        :return: ChangeToken:  The <code>ChangeToken</code> that you used to submit the <code>DeleteRuleGroup</code> request. You can also use this value to query the status of the request. For more information, see <a>GetChangeTokenStatus</a>.<br/>        """
        pass

    def delete_size_constraint_set(self, ChangeToken: str, SizeConstraintSetId: str) -> DeleteSizeConstraintSetResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Permanently deletes a <a>SizeConstraintSet</a>. You can't delete a <code>SizeConstraintSet</code> if it's still used in any <code>Rules</code> or if it still includes any <a>SizeConstraint</a> objects (any filters). If you just want to remove a <code>SizeConstraintSet</code> from a <code>Rule</code>, use <a>UpdateRule</a>. To permanently delete a <code>SizeConstraintSet</code>, perform the following steps: <ol> <li> Update the <code>SizeConstraintSet</code> to remove filters, if any. For more information, see <a>UpdateSizeConstraintSet</a>. </li> <li> Use <a>GetChangeToken</a> to get the change token that you provide in the <code>ChangeToken</code> parameter of a <code>DeleteSizeConstraintSet</code> request. </li> <li> Submit a <code>DeleteSizeConstraintSet</code> request. </li> </ol>

        :param self:
        :param ChangeToken:  The value returned by the most recent call to <a>GetChangeToken</a>.<br/>SizeConstraintSetId:  The <code>SizeConstraintSetId</code> of the <a>SizeConstraintSet</a> that you want to delete. <code>SizeConstraintSetId</code> is returned by <a>CreateSizeConstraintSet</a> and by <a>ListSizeConstraintSets</a>.<br/>
        :return: ChangeToken:  The <code>ChangeToken</code> that you used to submit the <code>DeleteSizeConstraintSet</code> request. You can also use this value to query the status of the request. For more information, see <a>GetChangeTokenStatus</a>.<br/>        """
        pass

    def delete_sql_injection_match_set(self, ChangeToken: str, SqlInjectionMatchSetId: str) -> DeleteSqlInjectionMatchSetResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Permanently deletes a <a>SqlInjectionMatchSet</a>. You can't delete a <code>SqlInjectionMatchSet</code> if it's still used in any <code>Rules</code> or if it still contains any <a>SqlInjectionMatchTuple</a> objects. If you just want to remove a <code>SqlInjectionMatchSet</code> from a <code>Rule</code>, use <a>UpdateRule</a>. To permanently delete a <code>SqlInjectionMatchSet</code> from AWS WAF, perform the following steps: <ol> <li> Update the <code>SqlInjectionMatchSet</code> to remove filters, if any. For more information, see <a>UpdateSqlInjectionMatchSet</a>. </li> <li> Use <a>GetChangeToken</a> to get the change token that you provide in the <code>ChangeToken</code> parameter of a <code>DeleteSqlInjectionMatchSet</code> request. </li> <li> Submit a <code>DeleteSqlInjectionMatchSet</code> request. </li> </ol>

        :param self:
        :param ChangeToken:  The value returned by the most recent call to <a>GetChangeToken</a>.<br/>SqlInjectionMatchSetId:  The <code>SqlInjectionMatchSetId</code> of the <a>SqlInjectionMatchSet</a> that you want to delete. <code>SqlInjectionMatchSetId</code> is returned by <a>CreateSqlInjectionMatchSet</a> and by <a>ListSqlInjectionMatchSets</a>.<br/>
        :return: ChangeToken:  The <code>ChangeToken</code> that you used to submit the <code>DeleteSqlInjectionMatchSet</code> request. You can also use this value to query the status of the request. For more information, see <a>GetChangeTokenStatus</a>.<br/>        """
        pass

    def delete_web_acl(self, ChangeToken: str, WebACLId: str) -> DeleteWebACLResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Permanently deletes a <a>WebACL</a>. You can't delete a <code>WebACL</code> if it still contains any <code>Rules</code>. To delete a <code>WebACL</code>, perform the following steps: <ol> <li> Update the <code>WebACL</code> to remove <code>Rules</code>, if any. For more information, see <a>UpdateWebACL</a>. </li> <li> Use <a>GetChangeToken</a> to get the change token that you provide in the <code>ChangeToken</code> parameter of a <code>DeleteWebACL</code> request. </li> <li> Submit a <code>DeleteWebACL</code> request. </li> </ol>

        :param self:
        :param ChangeToken:  The value returned by the most recent call to <a>GetChangeToken</a>.<br/>WebACLId:  The <code>WebACLId</code> of the <a>WebACL</a> that you want to delete. <code>WebACLId</code> is returned by <a>CreateWebACL</a> and by <a>ListWebACLs</a>.<br/>
        :return: ChangeToken:  The <code>ChangeToken</code> that you used to submit the <code>DeleteWebACL</code> request. You can also use this value to query the status of the request. For more information, see <a>GetChangeTokenStatus</a>.<br/>        """
        pass

    def delete_xss_match_set(self, ChangeToken: str, XssMatchSetId: str) -> DeleteXssMatchSetResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Permanently deletes an <a>XssMatchSet</a>. You can't delete an <code>XssMatchSet</code> if it's still used in any <code>Rules</code> or if it still contains any <a>XssMatchTuple</a> objects. If you just want to remove an <code>XssMatchSet</code> from a <code>Rule</code>, use <a>UpdateRule</a>. To permanently delete an <code>XssMatchSet</code> from AWS WAF, perform the following steps: <ol> <li> Update the <code>XssMatchSet</code> to remove filters, if any. For more information, see <a>UpdateXssMatchSet</a>. </li> <li> Use <a>GetChangeToken</a> to get the change token that you provide in the <code>ChangeToken</code> parameter of a <code>DeleteXssMatchSet</code> request. </li> <li> Submit a <code>DeleteXssMatchSet</code> request. </li> </ol>

        :param self:
        :param ChangeToken:  The value returned by the most recent call to <a>GetChangeToken</a>.<br/>XssMatchSetId:  The <code>XssMatchSetId</code> of the <a>XssMatchSet</a> that you want to delete. <code>XssMatchSetId</code> is returned by <a>CreateXssMatchSet</a> and by <a>ListXssMatchSets</a>.<br/>
        :return: ChangeToken:  The <code>ChangeToken</code> that you used to submit the <code>DeleteXssMatchSet</code> request. You can also use this value to query the status of the request. For more information, see <a>GetChangeTokenStatus</a>.<br/>        """
        pass

    def get_byte_match_set(self, ByteMatchSetId: str) -> GetByteMatchSetResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Returns the <a>ByteMatchSet</a> specified by <code>ByteMatchSetId</code>.

        :param self:
        :param ByteMatchSetId:  The <code>ByteMatchSetId</code> of the <a>ByteMatchSet</a> that you want to get. <code>ByteMatchSetId</code> is returned by <a>CreateByteMatchSet</a> and by <a>ListByteMatchSets</a>.<br/>
        :return: ByteMatchSet:  Information about the <a>ByteMatchSet</a> that you specified in the <code>GetByteMatchSet</code> request. For more information, see the following topics: <ul> <li>  <a>ByteMatchSet</a>: Contains <code>ByteMatchSetId</code>, <code>ByteMatchTuples</code>, and <code>Name</code>  </li> <li>  <code>ByteMatchTuples</code>: Contains an array of <a>ByteMatchTuple</a> objects. Each <code>ByteMatchTuple</code> object contains <a>FieldToMatch</a>, <code>PositionalConstraint</code>, <code>TargetString</code>, and <code>TextTransformation</code>  </li> <li>  <a>FieldToMatch</a>: Contains <code>Data</code> and <code>Type</code>  </li> </ul>:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ByteMatchTuples</i> Specifies the bytes (typically a string that corresponds with ASCII characters) that you want AWS WAF to search for in web requests, the location in requests that you want AWS WAF to search, and other settings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A friendly name or description of the <a>ByteMatchSet</a>. You can't change <code>Name</code> after you create a <code>ByteMatchSet</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ByteMatchSetId</i> The <code>ByteMatchSetId</code> for a <code>ByteMatchSet</code>. You use <code>ByteMatchSetId</code> to get information about a <code>ByteMatchSet</code> (see <a>GetByteMatchSet</a>), update a <code>ByteMatchSet</code> (see <a>UpdateByteMatchSet</a>), insert a <code>ByteMatchSet</code> into a <code>Rule</code> or delete one from a <code>Rule</code> (see <a>UpdateRule</a>), and delete a <code>ByteMatchSet</code> from AWS WAF (see <a>DeleteByteMatchSet</a>).  <code>ByteMatchSetId</code> is returned by <a>CreateByteMatchSet</a> and by <a>ListByteMatchSets</a>.<br/>        """
        pass

    def get_change_token(self) -> GetChangeTokenResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> When you want to create, update, or delete AWS WAF objects, get a change token and include the change token in the create, update, or delete request. Change tokens ensure that your application doesn't submit conflicting requests to AWS WAF. Each create, update, or delete request must use a unique change token. If your application submits a <code>GetChangeToken</code> request and then submits a second <code>GetChangeToken</code> request before submitting a create, update, or delete request, the second <code>GetChangeToken</code> request returns the same value as the first <code>GetChangeToken</code> request. When you use a change token in a create, update, or delete request, the status of the change token changes to <code>PENDING</code>, which indicates that AWS WAF is propagating the change to all AWS WAF servers. Use <code>GetChangeTokenStatus</code> to determine the status of your change token.

        :param self:
        :param 
        :return: ChangeToken:  The <code>ChangeToken</code> that you used in the request. Use this value in a <code>GetChangeTokenStatus</code> request to get the current status of the request. <br/>        """
        pass

    def get_change_token_status(self, ChangeToken: str) -> GetChangeTokenStatusResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Returns the status of a <code>ChangeToken</code> that you got by calling <a>GetChangeToken</a>. <code>ChangeTokenStatus</code> is one of the following values: <ul> <li>  <code>PROVISIONED</code>: You requested the change token by calling <code>GetChangeToken</code>, but you haven't used it yet in a call to create, update, or delete an AWS WAF object. </li> <li>  <code>PENDING</code>: AWS WAF is propagating the create, update, or delete request to all AWS WAF servers. </li> <li>  <code>INSYNC</code>: Propagation is complete. </li> </ul>

        :param self:
        :param ChangeToken:  The change token for which you want to get the status. This change token was previously returned in the <code>GetChangeToken</code> response.<br/>
        :return: ChangeTokenStatus:  The status of the change token.<br/>        """
        pass

    def get_geo_match_set(self, GeoMatchSetId: str) -> GetGeoMatchSetResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Returns the <a>GeoMatchSet</a> that is specified by <code>GeoMatchSetId</code>.

        :param self:
        :param GeoMatchSetId:  The <code>GeoMatchSetId</code> of the <a>GeoMatchSet</a> that you want to get. <code>GeoMatchSetId</code> is returned by <a>CreateGeoMatchSet</a> and by <a>ListGeoMatchSets</a>.<br/>
        :return: GeoMatchSet:  Information about the <a>GeoMatchSet</a> that you specified in the <code>GetGeoMatchSet</code> request. This includes the <code>Type</code>, which for a <code>GeoMatchContraint</code> is always <code>Country</code>, as well as the <code>Value</code>, which is the identifier for a specific country.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GeoMatchConstraints</i> An array of <a>GeoMatchConstraint</a> objects, which contain the country that you want AWS WAF to search for.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A friendly name or description of the <a>GeoMatchSet</a>. You can't change the name of an <code>GeoMatchSet</code> after you create it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GeoMatchSetId</i> The <code>GeoMatchSetId</code> for an <code>GeoMatchSet</code>. You use <code>GeoMatchSetId</code> to get information about a <code>GeoMatchSet</code> (see <a>GeoMatchSet</a>), update a <code>GeoMatchSet</code> (see <a>UpdateGeoMatchSet</a>), insert a <code>GeoMatchSet</code> into a <code>Rule</code> or delete one from a <code>Rule</code> (see <a>UpdateRule</a>), and delete a <code>GeoMatchSet</code> from AWS WAF (see <a>DeleteGeoMatchSet</a>).  <code>GeoMatchSetId</code> is returned by <a>CreateGeoMatchSet</a> and by <a>ListGeoMatchSets</a>.<br/>        """
        pass

    def get_ip_set(self, IPSetId: str) -> GetIPSetResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Returns the <a>IPSet</a> that is specified by <code>IPSetId</code>.

        :param self:
        :param IPSetId:  The <code>IPSetId</code> of the <a>IPSet</a> that you want to get. <code>IPSetId</code> is returned by <a>CreateIPSet</a> and by <a>ListIPSets</a>.<br/>
        :return: IPSet:  Information about the <a>IPSet</a> that you specified in the <code>GetIPSet</code> request. For more information, see the following topics: <ul> <li>  <a>IPSet</a>: Contains <code>IPSetDescriptors</code>, <code>IPSetId</code>, and <code>Name</code>  </li> <li>  <code>IPSetDescriptors</code>: Contains an array of <a>IPSetDescriptor</a> objects. Each <code>IPSetDescriptor</code> object contains <code>Type</code> and <code>Value</code>  </li> </ul>:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IPSetDescriptors</i> The IP address type (<code>IPV4</code> or <code>IPV6</code>) and the IP address range (in CIDR notation) that web requests originate from. If the <code>WebACL</code> is associated with a CloudFront distribution and the viewer did not use an HTTP proxy or a load balancer to send the request, this is the value of the c-ip field in the CloudFront access logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A friendly name or description of the <a>IPSet</a>. You can't change the name of an <code>IPSet</code> after you create it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IPSetId</i> The <code>IPSetId</code> for an <code>IPSet</code>. You use <code>IPSetId</code> to get information about an <code>IPSet</code> (see <a>GetIPSet</a>), update an <code>IPSet</code> (see <a>UpdateIPSet</a>), insert an <code>IPSet</code> into a <code>Rule</code> or delete one from a <code>Rule</code> (see <a>UpdateRule</a>), and delete an <code>IPSet</code> from AWS WAF (see <a>DeleteIPSet</a>).  <code>IPSetId</code> is returned by <a>CreateIPSet</a> and by <a>ListIPSets</a>.<br/>        """
        pass

    def get_logging_configuration(self, ResourceArn: str) -> GetLoggingConfigurationResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Returns the <a>LoggingConfiguration</a> for the specified web ACL.

        :param self:
        :param ResourceArn:  The Amazon Resource Name (ARN) of the web ACL for which you want to get the <a>LoggingConfiguration</a>.<br/>
        :return: LoggingConfiguration:  The <a>LoggingConfiguration</a> for the specified web ACL.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RedactedFields</i> The parts of the request that you want redacted from the logs. For example, if you redact the cookie field, the cookie field in the firehose will be <code>xxx</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogDestinationConfigs</i> An array of Amazon Kinesis Data Firehose ARNs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceArn</i> The Amazon Resource Name (ARN) of the web ACL that you want to associate with <code>LogDestinationConfigs</code>.<br/>        """
        pass

    def get_permission_policy(self, ResourceArn: str) -> GetPermissionPolicyResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Returns the IAM policy attached to the RuleGroup.

        :param self:
        :param ResourceArn:  The Amazon Resource Name (ARN) of the RuleGroup for which you want to get the policy.<br/>
        :return: Policy:  The IAM policy attached to the specified RuleGroup.<br/>        """
        pass

    def get_rate_based_rule(self, RuleId: str) -> GetRateBasedRuleResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Returns the <a>RateBasedRule</a> that is specified by the <code>RuleId</code> that you included in the <code>GetRateBasedRule</code> request.

        :param self:
        :param RuleId:  The <code>RuleId</code> of the <a>RateBasedRule</a> that you want to get. <code>RuleId</code> is returned by <a>CreateRateBasedRule</a> and by <a>ListRateBasedRules</a>.<br/>
        :return: Rule:  Information about the <a>RateBasedRule</a> that you specified in the <code>GetRateBasedRule</code> request.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RateLimit</i> The maximum number of requests, which have an identical value in the field specified by the <code>RateKey</code>, allowed in a five-minute period. If the number of requests exceeds the <code>RateLimit</code> and the other predicates specified in the rule are also met, AWS WAF triggers the action that is specified for this rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RateKey</i> The field that AWS WAF uses to determine if requests are likely arriving from single source and thus subject to rate monitoring. The only valid value for <code>RateKey</code> is <code>IP</code>. <code>IP</code> indicates that requests arriving from the same IP address are subject to the <code>RateLimit</code> that is specified in the <code>RateBasedRule</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MatchPredicates</i> The <code>Predicates</code> object contains one <code>Predicate</code> element for each <a>ByteMatchSet</a>, <a>IPSet</a>, or <a>SqlInjectionMatchSet</a> object that you want to include in a <code>RateBasedRule</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MetricName</i> A friendly name or description for the metrics for a <code>RateBasedRule</code>. The name can contain only alphanumeric characters (A-Z, a-z, 0-9), with maximum length 128 and minimum length one. It can't contain whitespace or metric names reserved for AWS WAF, including "All" and "Default_Action." You can't change the name of the metric after you create the <code>RateBasedRule</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A friendly name or description for a <code>RateBasedRule</code>. You can't change the name of a <code>RateBasedRule</code> after you create it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RuleId</i> A unique identifier for a <code>RateBasedRule</code>. You use <code>RuleId</code> to get more information about a <code>RateBasedRule</code> (see <a>GetRateBasedRule</a>), update a <code>RateBasedRule</code> (see <a>UpdateRateBasedRule</a>), insert a <code>RateBasedRule</code> into a <code>WebACL</code> or delete one from a <code>WebACL</code> (see <a>UpdateWebACL</a>), or delete a <code>RateBasedRule</code> from AWS WAF (see <a>DeleteRateBasedRule</a>).<br/>        """
        pass

    def get_rate_based_rule_managed_keys(self, RuleId: str, NextMarker: str=None) -> GetRateBasedRuleManagedKeysResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Returns an array of IP addresses currently being blocked by the <a>RateBasedRule</a> that is specified by the <code>RuleId</code>. The maximum number of managed keys that will be blocked is 10,000. If more than 10,000 addresses exceed the rate limit, the 10,000 addresses with the highest rates will be blocked.

        :param self:
        :param NextMarker:  A null value and not currently used. Do not include this in your request.<br/>RuleId:  The <code>RuleId</code> of the <a>RateBasedRule</a> for which you want to get a list of <code>ManagedKeys</code>. <code>RuleId</code> is returned by <a>CreateRateBasedRule</a> and by <a>ListRateBasedRules</a>.<br/>
        :return: NextMarker:  A null value and not currently used.<br/>ManagedKeys:  An array of IP addresses that currently are blocked by the specified <a>RateBasedRule</a>. <br/>        """
        pass

    def get_regex_match_set(self, RegexMatchSetId: str) -> GetRegexMatchSetResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Returns the <a>RegexMatchSet</a> specified by <code>RegexMatchSetId</code>.

        :param self:
        :param RegexMatchSetId:  The <code>RegexMatchSetId</code> of the <a>RegexMatchSet</a> that you want to get. <code>RegexMatchSetId</code> is returned by <a>CreateRegexMatchSet</a> and by <a>ListRegexMatchSets</a>.<br/>
        :return: RegexMatchSet:  Information about the <a>RegexMatchSet</a> that you specified in the <code>GetRegexMatchSet</code> request. For more information, see <a>RegexMatchTuple</a>.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RegexMatchTuples</i> Contains an array of <a>RegexMatchTuple</a> objects. Each <code>RegexMatchTuple</code> object contains:  <ul> <li> The part of a web request that you want AWS WAF to inspect, such as a query string or the value of the <code>User-Agent</code> header.  </li> <li> The identifier of the pattern (a regular expression) that you want AWS WAF to look for. For more information, see <a>RegexPatternSet</a>. </li> <li> Whether to perform any conversions on the request, such as converting it to lowercase, before inspecting it for the specified string. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A friendly name or description of the <a>RegexMatchSet</a>. You can't change <code>Name</code> after you create a <code>RegexMatchSet</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RegexMatchSetId</i> The <code>RegexMatchSetId</code> for a <code>RegexMatchSet</code>. You use <code>RegexMatchSetId</code> to get information about a <code>RegexMatchSet</code> (see <a>GetRegexMatchSet</a>), update a <code>RegexMatchSet</code> (see <a>UpdateRegexMatchSet</a>), insert a <code>RegexMatchSet</code> into a <code>Rule</code> or delete one from a <code>Rule</code> (see <a>UpdateRule</a>), and delete a <code>RegexMatchSet</code> from AWS WAF (see <a>DeleteRegexMatchSet</a>).  <code>RegexMatchSetId</code> is returned by <a>CreateRegexMatchSet</a> and by <a>ListRegexMatchSets</a>.<br/>        """
        pass

    def get_regex_pattern_set(self, RegexPatternSetId: str) -> GetRegexPatternSetResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Returns the <a>RegexPatternSet</a> specified by <code>RegexPatternSetId</code>.

        :param self:
        :param RegexPatternSetId:  The <code>RegexPatternSetId</code> of the <a>RegexPatternSet</a> that you want to get. <code>RegexPatternSetId</code> is returned by <a>CreateRegexPatternSet</a> and by <a>ListRegexPatternSets</a>.<br/>
        :return: RegexPatternSet:  Information about the <a>RegexPatternSet</a> that you specified in the <code>GetRegexPatternSet</code> request, including the identifier of the pattern set and the regular expression patterns you want AWS WAF to search for. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RegexPatternStrings</i> Specifies the regular expression (regex) patterns that you want AWS WAF to search for, such as <code>B[a@]dB[o0]t</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A friendly name or description of the <a>RegexPatternSet</a>. You can't change <code>Name</code> after you create a <code>RegexPatternSet</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RegexPatternSetId</i> The identifier for the <code>RegexPatternSet</code>. You use <code>RegexPatternSetId</code> to get information about a <code>RegexPatternSet</code>, update a <code>RegexPatternSet</code>, remove a <code>RegexPatternSet</code> from a <code>RegexMatchSet</code>, and delete a <code>RegexPatternSet</code> from AWS WAF.  <code>RegexMatchSetId</code> is returned by <a>CreateRegexPatternSet</a> and by <a>ListRegexPatternSets</a>.<br/>        """
        pass

    def get_rule(self, RuleId: str) -> GetRuleResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Returns the <a>Rule</a> that is specified by the <code>RuleId</code> that you included in the <code>GetRule</code> request.

        :param self:
        :param RuleId:  The <code>RuleId</code> of the <a>Rule</a> that you want to get. <code>RuleId</code> is returned by <a>CreateRule</a> and by <a>ListRules</a>.<br/>
        :return: Rule:  Information about the <a>Rule</a> that you specified in the <code>GetRule</code> request. For more information, see the following topics: <ul> <li>  <a>Rule</a>: Contains <code>MetricName</code>, <code>Name</code>, an array of <code>Predicate</code> objects, and <code>RuleId</code>  </li> <li>  <a>Predicate</a>: Each <code>Predicate</code> object contains <code>DataId</code>, <code>Negated</code>, and <code>Type</code>  </li> </ul>:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Predicates</i> The <code>Predicates</code> object contains one <code>Predicate</code> element for each <a>ByteMatchSet</a>, <a>IPSet</a>, or <a>SqlInjectionMatchSet</a> object that you want to include in a <code>Rule</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MetricName</i> A friendly name or description for the metrics for this <code>Rule</code>. The name can contain only alphanumeric characters (A-Z, a-z, 0-9), with maximum length 128 and minimum length one. It can't contain whitespace or metric names reserved for AWS WAF, including "All" and "Default_Action." You can't change <code>MetricName</code> after you create the <code>Rule</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The friendly name or description for the <code>Rule</code>. You can't change the name of a <code>Rule</code> after you create it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RuleId</i> A unique identifier for a <code>Rule</code>. You use <code>RuleId</code> to get more information about a <code>Rule</code> (see <a>GetRule</a>), update a <code>Rule</code> (see <a>UpdateRule</a>), insert a <code>Rule</code> into a <code>WebACL</code> or delete a one from a <code>WebACL</code> (see <a>UpdateWebACL</a>), or delete a <code>Rule</code> from AWS WAF (see <a>DeleteRule</a>).  <code>RuleId</code> is returned by <a>CreateRule</a> and by <a>ListRules</a>.<br/>        """
        pass

    def get_rule_group(self, RuleGroupId: str) -> GetRuleGroupResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Returns the <a>RuleGroup</a> that is specified by the <code>RuleGroupId</code> that you included in the <code>GetRuleGroup</code> request. To view the rules in a rule group, use <a>ListActivatedRulesInRuleGroup</a>.

        :param self:
        :param RuleGroupId:  The <code>RuleGroupId</code> of the <a>RuleGroup</a> that you want to get. <code>RuleGroupId</code> is returned by <a>CreateRuleGroup</a> and by <a>ListRuleGroups</a>.<br/>
        :return: RuleGroup:  Information about the <a>RuleGroup</a> that you specified in the <code>GetRuleGroup</code> request. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MetricName</i> A friendly name or description for the metrics for this <code>RuleGroup</code>. The name can contain only alphanumeric characters (A-Z, a-z, 0-9), with maximum length 128 and minimum length one. It can't contain whitespace or metric names reserved for AWS WAF, including "All" and "Default_Action." You can't change the name of the metric after you create the <code>RuleGroup</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The friendly name or description for the <code>RuleGroup</code>. You can't change the name of a <code>RuleGroup</code> after you create it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RuleGroupId</i> A unique identifier for a <code>RuleGroup</code>. You use <code>RuleGroupId</code> to get more information about a <code>RuleGroup</code> (see <a>GetRuleGroup</a>), update a <code>RuleGroup</code> (see <a>UpdateRuleGroup</a>), insert a <code>RuleGroup</code> into a <code>WebACL</code> or delete a one from a <code>WebACL</code> (see <a>UpdateWebACL</a>), or delete a <code>RuleGroup</code> from AWS WAF (see <a>DeleteRuleGroup</a>).  <code>RuleGroupId</code> is returned by <a>CreateRuleGroup</a> and by <a>ListRuleGroups</a>.<br/>        """
        pass

    def get_sampled_requests(self, MaxItems: GetSampledRequestsMaxItems, TimeWindow: TimeWindow, RuleId: str, WebAclId: str) -> GetSampledRequestsResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Gets detailed information about a specified number of requests--a sample--that AWS WAF randomly selects from among the first 5,000 requests that your AWS resource received during a time range that you choose. You can specify a sample size of up to 500 requests, and you can specify any time range in the previous three hours.  <code>GetSampledRequests</code> returns a time range, which is usually the time range that you specified. However, if your resource (such as a CloudFront distribution) received 5,000 requests before the specified time range elapsed, <code>GetSampledRequests</code> returns an updated time range. This new time range indicates the actual period during which AWS WAF selected the requests in the sample.

        :param self:
        :param MaxItems:  The number of requests that you want AWS WAF to return from among the first 5,000 requests that your AWS resource received during the time range. If your resource received fewer requests than the value of <code>MaxItems</code>, <code>GetSampledRequests</code> returns information about all of them. <br/>TimeWindow:  The start date and time and the end date and time of the range for which you want <code>GetSampledRequests</code> to return a sample of requests. You must specify the times in Coordinated Universal Time (UTC) format. UTC format includes the special designator, <code>Z</code>. For example, <code>"2016-09-27T14:50Z"</code>. You can specify any time range in the previous three hours.:<br/>RuleId:   <code>RuleId</code> is one of three values: <ul> <li> The <code>RuleId</code> of the <code>Rule</code> or the <code>RuleGroupId</code> of the <code>RuleGroup</code> for which you want <code>GetSampledRequests</code> to return a sample of requests. </li> <li>  <code>Default_Action</code>, which causes <code>GetSampledRequests</code> to return a sample of the requests that didn't match any of the rules in the specified <code>WebACL</code>. </li> </ul><br/>WebAclId:  The <code>WebACLId</code> of the <code>WebACL</code> for which you want <code>GetSampledRequests</code> to return a sample of requests.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndTime</i> The end of the time range from which you want <code>GetSampledRequests</code> to return a sample of the requests that your AWS resource received. You must specify the date and time in Coordinated Universal Time (UTC) format. UTC format includes the special designator, <code>Z</code>. For example, <code>"2016-09-27T14:50Z"</code>. You can specify any time range in the previous three hours.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StartTime</i> The beginning of the time range from which you want <code>GetSampledRequests</code> to return a sample of the requests that your AWS resource received. You must specify the date and time in Coordinated Universal Time (UTC) format. UTC format includes the special designator, <code>Z</code>. For example, <code>"2016-09-27T14:50Z"</code>. You can specify any time range in the previous three hours.<br/>
        :return: TimeWindow:  Usually, <code>TimeWindow</code> is the time range that you specified in the <code>GetSampledRequests</code> request. However, if your AWS resource received more than 5,000 requests during the time range that you specified in the request, <code>GetSampledRequests</code> returns the time range for the first 5,000 requests. Times are in Coordinated Universal Time (UTC) format.:<br/>PopulationSize:  The total number of requests from which <code>GetSampledRequests</code> got a sample of <code>MaxItems</code> requests. If <code>PopulationSize</code> is less than <code>MaxItems</code>, the sample includes every request that your AWS resource received during the specified time range.<br/>SampledRequests:  A complex type that contains detailed information about each of the requests in the sample.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndTime</i> The end of the time range from which you want <code>GetSampledRequests</code> to return a sample of the requests that your AWS resource received. You must specify the date and time in Coordinated Universal Time (UTC) format. UTC format includes the special designator, <code>Z</code>. For example, <code>"2016-09-27T14:50Z"</code>. You can specify any time range in the previous three hours.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StartTime</i> The beginning of the time range from which you want <code>GetSampledRequests</code> to return a sample of the requests that your AWS resource received. You must specify the date and time in Coordinated Universal Time (UTC) format. UTC format includes the special designator, <code>Z</code>. For example, <code>"2016-09-27T14:50Z"</code>. You can specify any time range in the previous three hours.<br/>        """
        pass

    def get_size_constraint_set(self, SizeConstraintSetId: str) -> GetSizeConstraintSetResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Returns the <a>SizeConstraintSet</a> specified by <code>SizeConstraintSetId</code>.

        :param self:
        :param SizeConstraintSetId:  The <code>SizeConstraintSetId</code> of the <a>SizeConstraintSet</a> that you want to get. <code>SizeConstraintSetId</code> is returned by <a>CreateSizeConstraintSet</a> and by <a>ListSizeConstraintSets</a>.<br/>
        :return: SizeConstraintSet:  Information about the <a>SizeConstraintSet</a> that you specified in the <code>GetSizeConstraintSet</code> request. For more information, see the following topics: <ul> <li>  <a>SizeConstraintSet</a>: Contains <code>SizeConstraintSetId</code>, <code>SizeConstraints</code>, and <code>Name</code>  </li> <li>  <code>SizeConstraints</code>: Contains an array of <a>SizeConstraint</a> objects. Each <code>SizeConstraint</code> object contains <a>FieldToMatch</a>, <code>TextTransformation</code>, <code>ComparisonOperator</code>, and <code>Size</code>  </li> <li>  <a>FieldToMatch</a>: Contains <code>Data</code> and <code>Type</code>  </li> </ul>:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SizeConstraints</i> Specifies the parts of web requests that you want to inspect the size of.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name, if any, of the <code>SizeConstraintSet</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SizeConstraintSetId</i> A unique identifier for a <code>SizeConstraintSet</code>. You use <code>SizeConstraintSetId</code> to get information about a <code>SizeConstraintSet</code> (see <a>GetSizeConstraintSet</a>), update a <code>SizeConstraintSet</code> (see <a>UpdateSizeConstraintSet</a>), insert a <code>SizeConstraintSet</code> into a <code>Rule</code> or delete one from a <code>Rule</code> (see <a>UpdateRule</a>), and delete a <code>SizeConstraintSet</code> from AWS WAF (see <a>DeleteSizeConstraintSet</a>).  <code>SizeConstraintSetId</code> is returned by <a>CreateSizeConstraintSet</a> and by <a>ListSizeConstraintSets</a>.<br/>        """
        pass

    def get_sql_injection_match_set(self, SqlInjectionMatchSetId: str) -> GetSqlInjectionMatchSetResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Returns the <a>SqlInjectionMatchSet</a> that is specified by <code>SqlInjectionMatchSetId</code>.

        :param self:
        :param SqlInjectionMatchSetId:  The <code>SqlInjectionMatchSetId</code> of the <a>SqlInjectionMatchSet</a> that you want to get. <code>SqlInjectionMatchSetId</code> is returned by <a>CreateSqlInjectionMatchSet</a> and by <a>ListSqlInjectionMatchSets</a>.<br/>
        :return: SqlInjectionMatchSet:  Information about the <a>SqlInjectionMatchSet</a> that you specified in the <code>GetSqlInjectionMatchSet</code> request. For more information, see the following topics: <ul> <li>  <a>SqlInjectionMatchSet</a>: Contains <code>Name</code>, <code>SqlInjectionMatchSetId</code>, and an array of <code>SqlInjectionMatchTuple</code> objects </li> <li>  <a>SqlInjectionMatchTuple</a>: Each <code>SqlInjectionMatchTuple</code> object contains <code>FieldToMatch</code> and <code>TextTransformation</code>  </li> <li>  <a>FieldToMatch</a>: Contains <code>Data</code> and <code>Type</code>  </li> </ul>:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SqlInjectionMatchTuples</i> Specifies the parts of web requests that you want to inspect for snippets of malicious SQL code.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name, if any, of the <code>SqlInjectionMatchSet</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SqlInjectionMatchSetId</i> A unique identifier for a <code>SqlInjectionMatchSet</code>. You use <code>SqlInjectionMatchSetId</code> to get information about a <code>SqlInjectionMatchSet</code> (see <a>GetSqlInjectionMatchSet</a>), update a <code>SqlInjectionMatchSet</code> (see <a>UpdateSqlInjectionMatchSet</a>), insert a <code>SqlInjectionMatchSet</code> into a <code>Rule</code> or delete one from a <code>Rule</code> (see <a>UpdateRule</a>), and delete a <code>SqlInjectionMatchSet</code> from AWS WAF (see <a>DeleteSqlInjectionMatchSet</a>).  <code>SqlInjectionMatchSetId</code> is returned by <a>CreateSqlInjectionMatchSet</a> and by <a>ListSqlInjectionMatchSets</a>.<br/>        """
        pass

    def get_web_acl(self, WebACLId: str) -> GetWebACLResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Returns the <a>WebACL</a> that is specified by <code>WebACLId</code>.

        :param self:
        :param WebACLId:  The <code>WebACLId</code> of the <a>WebACL</a> that you want to get. <code>WebACLId</code> is returned by <a>CreateWebACL</a> and by <a>ListWebACLs</a>.<br/>
        :return: WebACL:  Information about the <a>WebACL</a> that you specified in the <code>GetWebACL</code> request. For more information, see the following topics: <ul> <li>  <a>WebACL</a>: Contains <code>DefaultAction</code>, <code>MetricName</code>, <code>Name</code>, an array of <code>Rule</code> objects, and <code>WebACLId</code>  </li> <li>  <code>DefaultAction</code> (Data type is <a>WafAction</a>): Contains <code>Type</code>  </li> <li>  <code>Rules</code>: Contains an array of <code>ActivatedRule</code> objects, which contain <code>Action</code>, <code>Priority</code>, and <code>RuleId</code>  </li> <li>  <code>Action</code>: Contains <code>Type</code>  </li> </ul>:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WebACLArn</i> Tha Amazon Resource Name (ARN) of the web ACL.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Rules</i> An array that contains the action for each <code>Rule</code> in a <code>WebACL</code>, the priority of the <code>Rule</code>, and the ID of the <code>Rule</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultAction</i> The action to perform if none of the <code>Rules</code> contained in the <code>WebACL</code> match. The action is specified by the <a>WafAction</a> object.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DefaultAction</b>: The action to perform if none of the <code>Rules</code> contained in the <code>WebACL</code> match. The action is specified by the <a>WafAction</a> object.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MetricName</i> A friendly name or description for the metrics for this <code>WebACL</code>. The name can contain only alphanumeric characters (A-Z, a-z, 0-9), with maximum length 128 and minimum length one. It can't contain whitespace or metric names reserved for AWS WAF, including "All" and "Default_Action." You can't change <code>MetricName</code> after you create the <code>WebACL</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A friendly name or description of the <code>WebACL</code>. You can't change the name of a <code>WebACL</code> after you create it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WebACLId</i> A unique identifier for a <code>WebACL</code>. You use <code>WebACLId</code> to get information about a <code>WebACL</code> (see <a>GetWebACL</a>), update a <code>WebACL</code> (see <a>UpdateWebACL</a>), and delete a <code>WebACL</code> from AWS WAF (see <a>DeleteWebACL</a>).  <code>WebACLId</code> is returned by <a>CreateWebACL</a> and by <a>ListWebACLs</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> Specifies how you want AWS WAF to respond to requests that match the settings in a <code>Rule</code>. Valid settings include the following: <ul> <li>  <code>ALLOW</code>: AWS WAF allows requests </li> <li>  <code>BLOCK</code>: AWS WAF blocks requests </li> <li>  <code>COUNT</code>: AWS WAF increments a counter of the requests that match all of the conditions in the rule. AWS WAF then continues to inspect the web request based on the remaining rules in the web ACL. You can't specify <code>COUNT</code> for the default action for a <code>WebACL</code>. </li> </ul><br/>        """
        pass

    def get_xss_match_set(self, XssMatchSetId: str) -> GetXssMatchSetResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Returns the <a>XssMatchSet</a> that is specified by <code>XssMatchSetId</code>.

        :param self:
        :param XssMatchSetId:  The <code>XssMatchSetId</code> of the <a>XssMatchSet</a> that you want to get. <code>XssMatchSetId</code> is returned by <a>CreateXssMatchSet</a> and by <a>ListXssMatchSets</a>.<br/>
        :return: XssMatchSet:  Information about the <a>XssMatchSet</a> that you specified in the <code>GetXssMatchSet</code> request. For more information, see the following topics: <ul> <li>  <a>XssMatchSet</a>: Contains <code>Name</code>, <code>XssMatchSetId</code>, and an array of <code>XssMatchTuple</code> objects </li> <li>  <a>XssMatchTuple</a>: Each <code>XssMatchTuple</code> object contains <code>FieldToMatch</code> and <code>TextTransformation</code>  </li> <li>  <a>FieldToMatch</a>: Contains <code>Data</code> and <code>Type</code>  </li> </ul>:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>XssMatchTuples</i> Specifies the parts of web requests that you want to inspect for cross-site scripting attacks.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name, if any, of the <code>XssMatchSet</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>XssMatchSetId</i> A unique identifier for an <code>XssMatchSet</code>. You use <code>XssMatchSetId</code> to get information about an <code>XssMatchSet</code> (see <a>GetXssMatchSet</a>), update an <code>XssMatchSet</code> (see <a>UpdateXssMatchSet</a>), insert an <code>XssMatchSet</code> into a <code>Rule</code> or delete one from a <code>Rule</code> (see <a>UpdateRule</a>), and delete an <code>XssMatchSet</code> from AWS WAF (see <a>DeleteXssMatchSet</a>).  <code>XssMatchSetId</code> is returned by <a>CreateXssMatchSet</a> and by <a>ListXssMatchSets</a>.<br/>        """
        pass

    def list_activated_rules_in_rule_group(self, RuleGroupId: str=None, NextMarker: str=None, Limit: int=None) -> ListActivatedRulesInRuleGroupResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Returns an array of <a>ActivatedRule</a> objects.

        :param self:
        :param Limit:  Specifies the number of <code>ActivatedRules</code> that you want AWS WAF to return for this request. If you have more <code>ActivatedRules</code> than the number that you specify for <code>Limit</code>, the response includes a <code>NextMarker</code> value that you can use to get another batch of <code>ActivatedRules</code>.<br/>NextMarker:  If you specify a value for <code>Limit</code> and you have more <code>ActivatedRules</code> than the value of <code>Limit</code>, AWS WAF returns a <code>NextMarker</code> value in the response that allows you to list another group of <code>ActivatedRules</code>. For the second and subsequent <code>ListActivatedRulesInRuleGroup</code> requests, specify the value of <code>NextMarker</code> from the previous response to get information about another batch of <code>ActivatedRules</code>.<br/>RuleGroupId:  The <code>RuleGroupId</code> of the <a>RuleGroup</a> for which you want to get a list of <a>ActivatedRule</a> objects.<br/>
        :return: ActivatedRules:  An array of <code>ActivatedRules</code> objects.<br/>NextMarker:  If you have more <code>ActivatedRules</code> than the number that you specified for <code>Limit</code> in the request, the response includes a <code>NextMarker</code> value. To list more <code>ActivatedRules</code>, submit another <code>ListActivatedRulesInRuleGroup</code> request, and specify the <code>NextMarker</code> value from the response in the <code>NextMarker</code> value in the next request.<br/>        """
        pass

    def list_byte_match_sets(self, NextMarker: str=None, Limit: int=None) -> ListByteMatchSetsResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Returns an array of <a>ByteMatchSetSummary</a> objects.

        :param self:
        :param Limit:  Specifies the number of <code>ByteMatchSet</code> objects that you want AWS WAF to return for this request. If you have more <code>ByteMatchSets</code> objects than the number you specify for <code>Limit</code>, the response includes a <code>NextMarker</code> value that you can use to get another batch of <code>ByteMatchSet</code> objects.<br/>NextMarker:  If you specify a value for <code>Limit</code> and you have more <code>ByteMatchSets</code> than the value of <code>Limit</code>, AWS WAF returns a <code>NextMarker</code> value in the response that allows you to list another group of <code>ByteMatchSets</code>. For the second and subsequent <code>ListByteMatchSets</code> requests, specify the value of <code>NextMarker</code> from the previous response to get information about another batch of <code>ByteMatchSets</code>.<br/>
        :return: ByteMatchSets:  An array of <a>ByteMatchSetSummary</a> objects.<br/>NextMarker:  If you have more <code>ByteMatchSet</code> objects than the number that you specified for <code>Limit</code> in the request, the response includes a <code>NextMarker</code> value. To list more <code>ByteMatchSet</code> objects, submit another <code>ListByteMatchSets</code> request, and specify the <code>NextMarker</code> value from the response in the <code>NextMarker</code> value in the next request.<br/>        """
        pass

    def list_geo_match_sets(self, NextMarker: str=None, Limit: int=None) -> ListGeoMatchSetsResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Returns an array of <a>GeoMatchSetSummary</a> objects in the response.

        :param self:
        :param Limit:  Specifies the number of <code>GeoMatchSet</code> objects that you want AWS WAF to return for this request. If you have more <code>GeoMatchSet</code> objects than the number you specify for <code>Limit</code>, the response includes a <code>NextMarker</code> value that you can use to get another batch of <code>GeoMatchSet</code> objects.<br/>NextMarker:  If you specify a value for <code>Limit</code> and you have more <code>GeoMatchSet</code>s than the value of <code>Limit</code>, AWS WAF returns a <code>NextMarker</code> value in the response that allows you to list another group of <code>GeoMatchSet</code> objects. For the second and subsequent <code>ListGeoMatchSets</code> requests, specify the value of <code>NextMarker</code> from the previous response to get information about another batch of <code>GeoMatchSet</code> objects.<br/>
        :return: GeoMatchSets:  An array of <a>GeoMatchSetSummary</a> objects.<br/>NextMarker:  If you have more <code>GeoMatchSet</code> objects than the number that you specified for <code>Limit</code> in the request, the response includes a <code>NextMarker</code> value. To list more <code>GeoMatchSet</code> objects, submit another <code>ListGeoMatchSets</code> request, and specify the <code>NextMarker</code> value from the response in the <code>NextMarker</code> value in the next request.<br/>        """
        pass

    def list_ip_sets(self, NextMarker: str=None, Limit: int=None) -> ListIPSetsResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Returns an array of <a>IPSetSummary</a> objects in the response.

        :param self:
        :param Limit:  Specifies the number of <code>IPSet</code> objects that you want AWS WAF to return for this request. If you have more <code>IPSet</code> objects than the number you specify for <code>Limit</code>, the response includes a <code>NextMarker</code> value that you can use to get another batch of <code>IPSet</code> objects.<br/>NextMarker:  AWS WAF returns a <code>NextMarker</code> value in the response that allows you to list another group of <code>IPSets</code>. For the second and subsequent <code>ListIPSets</code> requests, specify the value of <code>NextMarker</code> from the previous response to get information about another batch of <code>IPSets</code>.<br/>
        :return: IPSets:  An array of <a>IPSetSummary</a> objects.<br/>NextMarker:  To list more <code>IPSet</code> objects, submit another <code>ListIPSets</code> request, and in the next request use the <code>NextMarker</code> response value as the <code>NextMarker</code> value.<br/>        """
        pass

    def list_logging_configurations(self, NextMarker: str=None, Limit: int=None) -> ListLoggingConfigurationsResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Returns an array of <a>LoggingConfiguration</a> objects.

        :param self:
        :param Limit:  Specifies the number of <code>LoggingConfigurations</code> that you want AWS WAF to return for this request. If you have more <code>LoggingConfigurations</code> than the number that you specify for <code>Limit</code>, the response includes a <code>NextMarker</code> value that you can use to get another batch of <code>LoggingConfigurations</code>.<br/>NextMarker:  If you specify a value for <code>Limit</code> and you have more <code>LoggingConfigurations</code> than the value of <code>Limit</code>, AWS WAF returns a <code>NextMarker</code> value in the response that allows you to list another group of <code>LoggingConfigurations</code>. For the second and subsequent <code>ListLoggingConfigurations</code> requests, specify the value of <code>NextMarker</code> from the previous response to get information about another batch of <code>ListLoggingConfigurations</code>.<br/>
        :return: NextMarker:  If you have more <code>LoggingConfigurations</code> than the number that you specified for <code>Limit</code> in the request, the response includes a <code>NextMarker</code> value. To list more <code>LoggingConfigurations</code>, submit another <code>ListLoggingConfigurations</code> request, and specify the <code>NextMarker</code> value from the response in the <code>NextMarker</code> value in the next request.<br/>LoggingConfigurations:  An array of <a>LoggingConfiguration</a> objects.<br/>        """
        pass

    def list_rate_based_rules(self, NextMarker: str=None, Limit: int=None) -> ListRateBasedRulesResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Returns an array of <a>RuleSummary</a> objects.

        :param self:
        :param Limit:  Specifies the number of <code>Rules</code> that you want AWS WAF to return for this request. If you have more <code>Rules</code> than the number that you specify for <code>Limit</code>, the response includes a <code>NextMarker</code> value that you can use to get another batch of <code>Rules</code>.<br/>NextMarker:  If you specify a value for <code>Limit</code> and you have more <code>Rules</code> than the value of <code>Limit</code>, AWS WAF returns a <code>NextMarker</code> value in the response that allows you to list another group of <code>Rules</code>. For the second and subsequent <code>ListRateBasedRules</code> requests, specify the value of <code>NextMarker</code> from the previous response to get information about another batch of <code>Rules</code>.<br/>
        :return: Rules:  An array of <a>RuleSummary</a> objects.<br/>NextMarker:  If you have more <code>Rules</code> than the number that you specified for <code>Limit</code> in the request, the response includes a <code>NextMarker</code> value. To list more <code>Rules</code>, submit another <code>ListRateBasedRules</code> request, and specify the <code>NextMarker</code> value from the response in the <code>NextMarker</code> value in the next request.<br/>        """
        pass

    def list_regex_match_sets(self, NextMarker: str=None, Limit: int=None) -> ListRegexMatchSetsResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Returns an array of <a>RegexMatchSetSummary</a> objects.

        :param self:
        :param Limit:  Specifies the number of <code>RegexMatchSet</code> objects that you want AWS WAF to return for this request. If you have more <code>RegexMatchSet</code> objects than the number you specify for <code>Limit</code>, the response includes a <code>NextMarker</code> value that you can use to get another batch of <code>RegexMatchSet</code> objects.<br/>NextMarker:  If you specify a value for <code>Limit</code> and you have more <code>RegexMatchSet</code> objects than the value of <code>Limit</code>, AWS WAF returns a <code>NextMarker</code> value in the response that allows you to list another group of <code>ByteMatchSets</code>. For the second and subsequent <code>ListRegexMatchSets</code> requests, specify the value of <code>NextMarker</code> from the previous response to get information about another batch of <code>RegexMatchSet</code> objects.<br/>
        :return: RegexMatchSets:  An array of <a>RegexMatchSetSummary</a> objects.<br/>NextMarker:  If you have more <code>RegexMatchSet</code> objects than the number that you specified for <code>Limit</code> in the request, the response includes a <code>NextMarker</code> value. To list more <code>RegexMatchSet</code> objects, submit another <code>ListRegexMatchSets</code> request, and specify the <code>NextMarker</code> value from the response in the <code>NextMarker</code> value in the next request.<br/>        """
        pass

    def list_regex_pattern_sets(self, NextMarker: str=None, Limit: int=None) -> ListRegexPatternSetsResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Returns an array of <a>RegexPatternSetSummary</a> objects.

        :param self:
        :param Limit:  Specifies the number of <code>RegexPatternSet</code> objects that you want AWS WAF to return for this request. If you have more <code>RegexPatternSet</code> objects than the number you specify for <code>Limit</code>, the response includes a <code>NextMarker</code> value that you can use to get another batch of <code>RegexPatternSet</code> objects.<br/>NextMarker:  If you specify a value for <code>Limit</code> and you have more <code>RegexPatternSet</code> objects than the value of <code>Limit</code>, AWS WAF returns a <code>NextMarker</code> value in the response that allows you to list another group of <code>RegexPatternSet</code> objects. For the second and subsequent <code>ListRegexPatternSets</code> requests, specify the value of <code>NextMarker</code> from the previous response to get information about another batch of <code>RegexPatternSet</code> objects.<br/>
        :return: RegexPatternSets:  An array of <a>RegexPatternSetSummary</a> objects.<br/>NextMarker:  If you have more <code>RegexPatternSet</code> objects than the number that you specified for <code>Limit</code> in the request, the response includes a <code>NextMarker</code> value. To list more <code>RegexPatternSet</code> objects, submit another <code>ListRegexPatternSets</code> request, and specify the <code>NextMarker</code> value from the response in the <code>NextMarker</code> value in the next request.<br/>        """
        pass

    def list_rule_groups(self, NextMarker: str=None, Limit: int=None) -> ListRuleGroupsResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Returns an array of <a>RuleGroup</a> objects.

        :param self:
        :param Limit:  Specifies the number of <code>RuleGroups</code> that you want AWS WAF to return for this request. If you have more <code>RuleGroups</code> than the number that you specify for <code>Limit</code>, the response includes a <code>NextMarker</code> value that you can use to get another batch of <code>RuleGroups</code>.<br/>NextMarker:  If you specify a value for <code>Limit</code> and you have more <code>RuleGroups</code> than the value of <code>Limit</code>, AWS WAF returns a <code>NextMarker</code> value in the response that allows you to list another group of <code>RuleGroups</code>. For the second and subsequent <code>ListRuleGroups</code> requests, specify the value of <code>NextMarker</code> from the previous response to get information about another batch of <code>RuleGroups</code>.<br/>
        :return: RuleGroups:  An array of <a>RuleGroup</a> objects.<br/>NextMarker:  If you have more <code>RuleGroups</code> than the number that you specified for <code>Limit</code> in the request, the response includes a <code>NextMarker</code> value. To list more <code>RuleGroups</code>, submit another <code>ListRuleGroups</code> request, and specify the <code>NextMarker</code> value from the response in the <code>NextMarker</code> value in the next request.<br/>        """
        pass

    def list_rules(self, NextMarker: str=None, Limit: int=None) -> ListRulesResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Returns an array of <a>RuleSummary</a> objects.

        :param self:
        :param Limit:  Specifies the number of <code>Rules</code> that you want AWS WAF to return for this request. If you have more <code>Rules</code> than the number that you specify for <code>Limit</code>, the response includes a <code>NextMarker</code> value that you can use to get another batch of <code>Rules</code>.<br/>NextMarker:  If you specify a value for <code>Limit</code> and you have more <code>Rules</code> than the value of <code>Limit</code>, AWS WAF returns a <code>NextMarker</code> value in the response that allows you to list another group of <code>Rules</code>. For the second and subsequent <code>ListRules</code> requests, specify the value of <code>NextMarker</code> from the previous response to get information about another batch of <code>Rules</code>.<br/>
        :return: Rules:  An array of <a>RuleSummary</a> objects.<br/>NextMarker:  If you have more <code>Rules</code> than the number that you specified for <code>Limit</code> in the request, the response includes a <code>NextMarker</code> value. To list more <code>Rules</code>, submit another <code>ListRules</code> request, and specify the <code>NextMarker</code> value from the response in the <code>NextMarker</code> value in the next request.<br/>        """
        pass

    def list_size_constraint_sets(self, NextMarker: str=None, Limit: int=None) -> ListSizeConstraintSetsResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Returns an array of <a>SizeConstraintSetSummary</a> objects.

        :param self:
        :param Limit:  Specifies the number of <code>SizeConstraintSet</code> objects that you want AWS WAF to return for this request. If you have more <code>SizeConstraintSets</code> objects than the number you specify for <code>Limit</code>, the response includes a <code>NextMarker</code> value that you can use to get another batch of <code>SizeConstraintSet</code> objects.<br/>NextMarker:  If you specify a value for <code>Limit</code> and you have more <code>SizeConstraintSets</code> than the value of <code>Limit</code>, AWS WAF returns a <code>NextMarker</code> value in the response that allows you to list another group of <code>SizeConstraintSets</code>. For the second and subsequent <code>ListSizeConstraintSets</code> requests, specify the value of <code>NextMarker</code> from the previous response to get information about another batch of <code>SizeConstraintSets</code>.<br/>
        :return: SizeConstraintSets:  An array of <a>SizeConstraintSetSummary</a> objects.<br/>NextMarker:  If you have more <code>SizeConstraintSet</code> objects than the number that you specified for <code>Limit</code> in the request, the response includes a <code>NextMarker</code> value. To list more <code>SizeConstraintSet</code> objects, submit another <code>ListSizeConstraintSets</code> request, and specify the <code>NextMarker</code> value from the response in the <code>NextMarker</code> value in the next request.<br/>        """
        pass

    def list_sql_injection_match_sets(self, NextMarker: str=None, Limit: int=None) -> ListSqlInjectionMatchSetsResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Returns an array of <a>SqlInjectionMatchSet</a> objects.

        :param self:
        :param Limit:  Specifies the number of <a>SqlInjectionMatchSet</a> objects that you want AWS WAF to return for this request. If you have more <code>SqlInjectionMatchSet</code> objects than the number you specify for <code>Limit</code>, the response includes a <code>NextMarker</code> value that you can use to get another batch of <code>Rules</code>.<br/>NextMarker:  If you specify a value for <code>Limit</code> and you have more <a>SqlInjectionMatchSet</a> objects than the value of <code>Limit</code>, AWS WAF returns a <code>NextMarker</code> value in the response that allows you to list another group of <code>SqlInjectionMatchSets</code>. For the second and subsequent <code>ListSqlInjectionMatchSets</code> requests, specify the value of <code>NextMarker</code> from the previous response to get information about another batch of <code>SqlInjectionMatchSets</code>.<br/>
        :return: SqlInjectionMatchSets:  An array of <a>SqlInjectionMatchSetSummary</a> objects.<br/>NextMarker:  If you have more <a>SqlInjectionMatchSet</a> objects than the number that you specified for <code>Limit</code> in the request, the response includes a <code>NextMarker</code> value. To list more <code>SqlInjectionMatchSet</code> objects, submit another <code>ListSqlInjectionMatchSets</code> request, and specify the <code>NextMarker</code> value from the response in the <code>NextMarker</code> value in the next request.<br/>        """
        pass

    def list_subscribed_rule_groups(self, NextMarker: str=None, Limit: int=None) -> ListSubscribedRuleGroupsResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Returns an array of <a>RuleGroup</a> objects that you are subscribed to.

        :param self:
        :param Limit:  Specifies the number of subscribed rule groups that you want AWS WAF to return for this request. If you have more objects than the number you specify for <code>Limit</code>, the response includes a <code>NextMarker</code> value that you can use to get another batch of objects.<br/>NextMarker:  If you specify a value for <code>Limit</code> and you have more <code>ByteMatchSets</code>subscribed rule groups than the value of <code>Limit</code>, AWS WAF returns a <code>NextMarker</code> value in the response that allows you to list another group of subscribed rule groups. For the second and subsequent <code>ListSubscribedRuleGroupsRequest</code> requests, specify the value of <code>NextMarker</code> from the previous response to get information about another batch of subscribed rule groups.<br/>
        :return: RuleGroups:  An array of <a>RuleGroup</a> objects.<br/>NextMarker:  If you have more objects than the number that you specified for <code>Limit</code> in the request, the response includes a <code>NextMarker</code> value. To list more objects, submit another <code>ListSubscribedRuleGroups</code> request, and specify the <code>NextMarker</code> value from the response in the <code>NextMarker</code> value in the next request.<br/>        """
        pass

    def list_tags_for_resource(self, ResourceARN: str, NextMarker: str=None, Limit: int=None) -> ListTagsForResourceResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Retrieves the tags associated with the specified AWS resource. Tags are key:value pairs that you can use to categorize and manage your resources, for purposes like billing. For example, you might set the tag key to "customer" and the value to the customer name or ID. You can specify one or more tags to add to each AWS resource, up to 50 tags for a resource. Tagging is only available through the API, SDKs, and CLI. You can't manage or view tags through the AWS WAF Classic console. You can tag the AWS resources that you manage through AWS WAF Classic: web ACLs, rule groups, and rules. 

        :param self:
        :param ResourceARN:  <p/><br/>Limit:  <p/><br/>NextMarker:  <p/><br/>
        :return: TagInfoForResource:  <p/>:<br/>NextMarker:  <p/><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TagList</i> <p/><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceARN</i> <p/><br/>        """
        pass

    def list_web_acls(self, NextMarker: str=None, Limit: int=None) -> ListWebACLsResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Returns an array of <a>WebACLSummary</a> objects in the response.

        :param self:
        :param Limit:  Specifies the number of <code>WebACL</code> objects that you want AWS WAF to return for this request. If you have more <code>WebACL</code> objects than the number that you specify for <code>Limit</code>, the response includes a <code>NextMarker</code> value that you can use to get another batch of <code>WebACL</code> objects.<br/>NextMarker:  If you specify a value for <code>Limit</code> and you have more <code>WebACL</code> objects than the number that you specify for <code>Limit</code>, AWS WAF returns a <code>NextMarker</code> value in the response that allows you to list another group of <code>WebACL</code> objects. For the second and subsequent <code>ListWebACLs</code> requests, specify the value of <code>NextMarker</code> from the previous response to get information about another batch of <code>WebACL</code> objects.<br/>
        :return: WebACLs:  An array of <a>WebACLSummary</a> objects.<br/>NextMarker:  If you have more <code>WebACL</code> objects than the number that you specified for <code>Limit</code> in the request, the response includes a <code>NextMarker</code> value. To list more <code>WebACL</code> objects, submit another <code>ListWebACLs</code> request, and specify the <code>NextMarker</code> value from the response in the <code>NextMarker</code> value in the next request.<br/>        """
        pass

    def list_xss_match_sets(self, NextMarker: str=None, Limit: int=None) -> ListXssMatchSetsResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Returns an array of <a>XssMatchSet</a> objects.

        :param self:
        :param Limit:  Specifies the number of <a>XssMatchSet</a> objects that you want AWS WAF to return for this request. If you have more <code>XssMatchSet</code> objects than the number you specify for <code>Limit</code>, the response includes a <code>NextMarker</code> value that you can use to get another batch of <code>Rules</code>.<br/>NextMarker:  If you specify a value for <code>Limit</code> and you have more <a>XssMatchSet</a> objects than the value of <code>Limit</code>, AWS WAF returns a <code>NextMarker</code> value in the response that allows you to list another group of <code>XssMatchSets</code>. For the second and subsequent <code>ListXssMatchSets</code> requests, specify the value of <code>NextMarker</code> from the previous response to get information about another batch of <code>XssMatchSets</code>.<br/>
        :return: XssMatchSets:  An array of <a>XssMatchSetSummary</a> objects.<br/>NextMarker:  If you have more <a>XssMatchSet</a> objects than the number that you specified for <code>Limit</code> in the request, the response includes a <code>NextMarker</code> value. To list more <code>XssMatchSet</code> objects, submit another <code>ListXssMatchSets</code> request, and specify the <code>NextMarker</code> value from the response in the <code>NextMarker</code> value in the next request.<br/>        """
        pass

    def put_logging_configuration(self, LoggingConfiguration: LoggingConfiguration) -> PutLoggingConfigurationResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Associates a <a>LoggingConfiguration</a> with a specified web ACL. You can access information about all traffic that AWS WAF inspects using the following steps: <ol> <li> Create an Amazon Kinesis Data Firehose.  Create the data firehose with a PUT source and in the region that you are operating. However, if you are capturing logs for Amazon CloudFront, always create the firehose in US East (N. Virginia).  <note> Do not create the data firehose using a <code>Kinesis stream</code> as your source. </note> </li> <li> Associate that firehose to your web ACL using a <code>PutLoggingConfiguration</code> request. </li> </ol> When you successfully enable logging using a <code>PutLoggingConfiguration</code> request, AWS WAF will create a service linked role with the necessary permissions to write logs to the Amazon Kinesis Data Firehose. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/logging.html">Logging Web ACL Traffic Information</a> in the <i>AWS WAF Developer Guide</i>.

        :param self:
        :param LoggingConfiguration:  The Amazon Kinesis Data Firehose that contains the inspected traffic information, the redacted fields details, and the Amazon Resource Name (ARN) of the web ACL to monitor. <note> When specifying <code>Type</code> in <code>RedactedFields</code>, you must use one of the following values: <code>URI</code>, <code>QUERY_STRING</code>, <code>HEADER</code>, or <code>METHOD</code>. </note>:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RedactedFields</i> The parts of the request that you want redacted from the logs. For example, if you redact the cookie field, the cookie field in the firehose will be <code>xxx</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogDestinationConfigs</i> An array of Amazon Kinesis Data Firehose ARNs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceArn</i> The Amazon Resource Name (ARN) of the web ACL that you want to associate with <code>LogDestinationConfigs</code>.<br/>
        :return: LoggingConfiguration:  The <a>LoggingConfiguration</a> that you submitted in the request.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RedactedFields</i> The parts of the request that you want redacted from the logs. For example, if you redact the cookie field, the cookie field in the firehose will be <code>xxx</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogDestinationConfigs</i> An array of Amazon Kinesis Data Firehose ARNs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceArn</i> The Amazon Resource Name (ARN) of the web ACL that you want to associate with <code>LogDestinationConfigs</code>.<br/>        """
        pass

    def put_permission_policy(self, Policy: str, ResourceArn: str) -> PutPermissionPolicyResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Attaches an IAM policy to the specified resource. The only supported use for this action is to share a RuleGroup across accounts. The <code>PutPermissionPolicy</code> is subject to the following restrictions: <ul> <li> You can attach only one policy with each <code>PutPermissionPolicy</code> request. </li> <li> The policy must include an <code>Effect</code>, <code>Action</code> and <code>Principal</code>.  </li> <li>  <code>Effect</code> must specify <code>Allow</code>. </li> <li> The <code>Action</code> in the policy must be <code>waf:UpdateWebACL</code>, <code>waf-regional:UpdateWebACL</code>, <code>waf:GetRuleGroup</code> and <code>waf-regional:GetRuleGroup</code> . Any extra or wildcard actions in the policy will be rejected. </li> <li> The policy cannot include a <code>Resource</code> parameter. </li> <li> The ARN in the request must be a valid WAF RuleGroup ARN and the RuleGroup must exist in the same region. </li> <li> The user making the request must be the owner of the RuleGroup. </li> <li> Your policy must be composed using IAM Policy version 2012-10-17. </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html">IAM Policies</a>.  An example of a valid policy parameter is shown in the Examples section below.

        :param self:
        :param Policy:  The policy to attach to the specified RuleGroup.<br/>ResourceArn:  The Amazon Resource Name (ARN) of the RuleGroup to which you want to attach the policy.<br/>
        :return:         """
        pass

    def tag_resource(self, Tags: List[Tag], ResourceARN: str) -> TagResourceResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Associates tags with the specified AWS resource. Tags are key:value pairs that you can use to categorize and manage your resources, for purposes like billing. For example, you might set the tag key to "customer" and the value to the customer name or ID. You can specify one or more tags to add to each AWS resource, up to 50 tags for a resource. Tagging is only available through the API, SDKs, and CLI. You can't manage or view tags through the AWS WAF Classic console. You can use this action to tag the AWS resources that you manage through AWS WAF Classic: web ACLs, rule groups, and rules. 

        :param self:
        :param Tags:  <p/><br/>ResourceARN:  <p/><br/>
        :return:         """
        pass

    def untag_resource(self, TagKeys: List[TagKey], ResourceARN: str) -> UntagResourceResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> <p/>

        :param self:
        :param TagKeys:  <p/><br/>ResourceARN:  <p/><br/>
        :return:         """
        pass

    def update_byte_match_set(self, Updates: List[ByteMatchSetUpdate], ChangeToken: str, ByteMatchSetId: str) -> UpdateByteMatchSetResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Inserts or deletes <a>ByteMatchTuple</a> objects (filters) in a <a>ByteMatchSet</a>. For each <code>ByteMatchTuple</code> object, you specify the following values:  <ul> <li> Whether to insert or delete the object from the array. If you want to change a <code>ByteMatchSetUpdate</code> object, you delete the existing object and add a new one. </li> <li> The part of a web request that you want AWS WAF to inspect, such as a query string or the value of the <code>User-Agent</code> header.  </li> <li> The bytes (typically a string that corresponds with ASCII characters) that you want AWS WAF to look for. For more information, including how you specify the values for the AWS WAF API and the AWS CLI or SDKs, see <code>TargetString</code> in the <a>ByteMatchTuple</a> data type.  </li> <li> Where to look, such as at the beginning or the end of a query string. </li> <li> Whether to perform any conversions on the request, such as converting it to lowercase, before inspecting it for the specified string. </li> </ul> For example, you can add a <code>ByteMatchSetUpdate</code> object that matches web requests in which <code>User-Agent</code> headers contain the string <code>BadBot</code>. You can then configure AWS WAF to block those requests. To create and configure a <code>ByteMatchSet</code>, perform the following steps: <ol> <li> Create a <code>ByteMatchSet.</code> For more information, see <a>CreateByteMatchSet</a>. </li> <li> Use <a>GetChangeToken</a> to get the change token that you provide in the <code>ChangeToken</code> parameter of an <code>UpdateByteMatchSet</code> request. </li> <li> Submit an <code>UpdateByteMatchSet</code> request to specify the part of the request that you want AWS WAF to inspect (for example, the header or the URI) and the value that you want AWS WAF to watch for. </li> </ol> For more information about how to use the AWS WAF API to allow or block HTTP requests, see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/">AWS WAF Developer Guide</a>.

        :param self:
        :param Updates:  An array of <code>ByteMatchSetUpdate</code> objects that you want to insert into or delete from a <a>ByteMatchSet</a>. For more information, see the applicable data types: <ul> <li>  <a>ByteMatchSetUpdate</a>: Contains <code>Action</code> and <code>ByteMatchTuple</code>  </li> <li>  <a>ByteMatchTuple</a>: Contains <code>FieldToMatch</code>, <code>PositionalConstraint</code>, <code>TargetString</code>, and <code>TextTransformation</code>  </li> <li>  <a>FieldToMatch</a>: Contains <code>Data</code> and <code>Type</code>  </li> </ul><br/>ChangeToken:  The value returned by the most recent call to <a>GetChangeToken</a>.<br/>ByteMatchSetId:  The <code>ByteMatchSetId</code> of the <a>ByteMatchSet</a> that you want to update. <code>ByteMatchSetId</code> is returned by <a>CreateByteMatchSet</a> and by <a>ListByteMatchSets</a>.<br/>
        :return: ChangeToken:  The <code>ChangeToken</code> that you used to submit the <code>UpdateByteMatchSet</code> request. You can also use this value to query the status of the request. For more information, see <a>GetChangeTokenStatus</a>.<br/>        """
        pass

    def update_geo_match_set(self, Updates: List[GeoMatchSetUpdate], ChangeToken: str, GeoMatchSetId: str) -> UpdateGeoMatchSetResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Inserts or deletes <a>GeoMatchConstraint</a> objects in an <code>GeoMatchSet</code>. For each <code>GeoMatchConstraint</code> object, you specify the following values:  <ul> <li> Whether to insert or delete the object from the array. If you want to change an <code>GeoMatchConstraint</code> object, you delete the existing object and add a new one. </li> <li> The <code>Type</code>. The only valid value for <code>Type</code> is <code>Country</code>. </li> <li> The <code>Value</code>, which is a two character code for the country to add to the <code>GeoMatchConstraint</code> object. Valid codes are listed in <a>GeoMatchConstraint$Value</a>. </li> </ul> To create and configure an <code>GeoMatchSet</code>, perform the following steps: <ol> <li> Submit a <a>CreateGeoMatchSet</a> request. </li> <li> Use <a>GetChangeToken</a> to get the change token that you provide in the <code>ChangeToken</code> parameter of an <a>UpdateGeoMatchSet</a> request. </li> <li> Submit an <code>UpdateGeoMatchSet</code> request to specify the country that you want AWS WAF to watch for. </li> </ol> When you update an <code>GeoMatchSet</code>, you specify the country that you want to add and/or the country that you want to delete. If you want to change a country, you delete the existing country and add the new one. For more information about how to use the AWS WAF API to allow or block HTTP requests, see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/">AWS WAF Developer Guide</a>.

        :param self:
        :param Updates:  An array of <code>GeoMatchSetUpdate</code> objects that you want to insert into or delete from an <a>GeoMatchSet</a>. For more information, see the applicable data types: <ul> <li>  <a>GeoMatchSetUpdate</a>: Contains <code>Action</code> and <code>GeoMatchConstraint</code>  </li> <li>  <a>GeoMatchConstraint</a>: Contains <code>Type</code> and <code>Value</code>  You can have only one <code>Type</code> and <code>Value</code> per <code>GeoMatchConstraint</code>. To add multiple countries, include multiple <code>GeoMatchSetUpdate</code> objects in your request. </li> </ul><br/>ChangeToken:  The value returned by the most recent call to <a>GetChangeToken</a>.<br/>GeoMatchSetId:  The <code>GeoMatchSetId</code> of the <a>GeoMatchSet</a> that you want to update. <code>GeoMatchSetId</code> is returned by <a>CreateGeoMatchSet</a> and by <a>ListGeoMatchSets</a>.<br/>
        :return: ChangeToken:  The <code>ChangeToken</code> that you used to submit the <code>UpdateGeoMatchSet</code> request. You can also use this value to query the status of the request. For more information, see <a>GetChangeTokenStatus</a>.<br/>        """
        pass

    def update_ip_set(self, Updates: List[IPSetUpdate], ChangeToken: str, IPSetId: str) -> UpdateIPSetResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Inserts or deletes <a>IPSetDescriptor</a> objects in an <code>IPSet</code>. For each <code>IPSetDescriptor</code> object, you specify the following values:  <ul> <li> Whether to insert or delete the object from the array. If you want to change an <code>IPSetDescriptor</code> object, you delete the existing object and add a new one. </li> <li> The IP address version, <code>IPv4</code> or <code>IPv6</code>.  </li> <li> The IP address in CIDR notation, for example, <code>192.0.2.0/24</code> (for the range of IP addresses from <code>192.0.2.0</code> to <code>192.0.2.255</code>) or <code>192.0.2.44/32</code> (for the individual IP address <code>192.0.2.44</code>).  </li> </ul> AWS WAF supports IPv4 address ranges: /8 and any range between /16 through /32. AWS WAF supports IPv6 address ranges: /24, /32, /48, /56, /64, and /128. For more information about CIDR notation, see the Wikipedia entry <a href="https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing">Classless Inter-Domain Routing</a>. IPv6 addresses can be represented using any of the following formats: <ul> <li> 1111:0000:0000:0000:0000:0000:0000:0111/128 </li> <li> 1111:0:0:0:0:0:0:0111/128 </li> <li> 1111::0111/128 </li> <li> 1111::111/128 </li> </ul> You use an <code>IPSet</code> to specify which web requests you want to allow or block based on the IP addresses that the requests originated from. For example, if you're receiving a lot of requests from one or a small number of IP addresses and you want to block the requests, you can create an <code>IPSet</code> that specifies those IP addresses, and then configure AWS WAF to block the requests.  To create and configure an <code>IPSet</code>, perform the following steps: <ol> <li> Submit a <a>CreateIPSet</a> request. </li> <li> Use <a>GetChangeToken</a> to get the change token that you provide in the <code>ChangeToken</code> parameter of an <a>UpdateIPSet</a> request. </li> <li> Submit an <code>UpdateIPSet</code> request to specify the IP addresses that you want AWS WAF to watch for. </li> </ol> When you update an <code>IPSet</code>, you specify the IP addresses that you want to add and/or the IP addresses that you want to delete. If you want to change an IP address, you delete the existing IP address and add the new one. You can insert a maximum of 1000 addresses in a single request. For more information about how to use the AWS WAF API to allow or block HTTP requests, see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/">AWS WAF Developer Guide</a>.

        :param self:
        :param Updates:  An array of <code>IPSetUpdate</code> objects that you want to insert into or delete from an <a>IPSet</a>. For more information, see the applicable data types: <ul> <li>  <a>IPSetUpdate</a>: Contains <code>Action</code> and <code>IPSetDescriptor</code>  </li> <li>  <a>IPSetDescriptor</a>: Contains <code>Type</code> and <code>Value</code>  </li> </ul> You can insert a maximum of 1000 addresses in a single request.<br/>ChangeToken:  The value returned by the most recent call to <a>GetChangeToken</a>.<br/>IPSetId:  The <code>IPSetId</code> of the <a>IPSet</a> that you want to update. <code>IPSetId</code> is returned by <a>CreateIPSet</a> and by <a>ListIPSets</a>.<br/>
        :return: ChangeToken:  The <code>ChangeToken</code> that you used to submit the <code>UpdateIPSet</code> request. You can also use this value to query the status of the request. For more information, see <a>GetChangeTokenStatus</a>.<br/>        """
        pass

    def update_rate_based_rule(self, RateLimit: RateLimit, Updates: List[RuleUpdate], ChangeToken: str, RuleId: str) -> UpdateRateBasedRuleResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Inserts or deletes <a>Predicate</a> objects in a rule and updates the <code>RateLimit</code> in the rule.  Each <code>Predicate</code> object identifies a predicate, such as a <a>ByteMatchSet</a> or an <a>IPSet</a>, that specifies the web requests that you want to block or count. The <code>RateLimit</code> specifies the number of requests every five minutes that triggers the rule. If you add more than one predicate to a <code>RateBasedRule</code>, a request must match all the predicates and exceed the <code>RateLimit</code> to be counted or blocked. For example, suppose you add the following to a <code>RateBasedRule</code>: <ul> <li> An <code>IPSet</code> that matches the IP address <code>192.0.2.44/32</code>  </li> <li> A <code>ByteMatchSet</code> that matches <code>BadBot</code> in the <code>User-Agent</code> header </li> </ul> Further, you specify a <code>RateLimit</code> of 1,000. You then add the <code>RateBasedRule</code> to a <code>WebACL</code> and specify that you want to block requests that satisfy the rule. For a request to be blocked, it must come from the IP address 192.0.2.44 <i>and</i> the <code>User-Agent</code> header in the request must contain the value <code>BadBot</code>. Further, requests that match these two conditions much be received at a rate of more than 1,000 every five minutes. If the rate drops below this limit, AWS WAF no longer blocks the requests. As a second example, suppose you want to limit requests to a particular page on your site. To do this, you could add the following to a <code>RateBasedRule</code>: <ul> <li> A <code>ByteMatchSet</code> with <code>FieldToMatch</code> of <code>URI</code>  </li> <li> A <code>PositionalConstraint</code> of <code>STARTS_WITH</code>  </li> <li> A <code>TargetString</code> of <code>login</code>  </li> </ul> Further, you specify a <code>RateLimit</code> of 1,000. By adding this <code>RateBasedRule</code> to a <code>WebACL</code>, you could limit requests to your login page without affecting the rest of your site.

        :param self:
        :param RateLimit:  The maximum number of requests, which have an identical value in the field specified by the <code>RateKey</code>, allowed in a five-minute period. If the number of requests exceeds the <code>RateLimit</code> and the other predicates specified in the rule are also met, AWS WAF triggers the action that is specified for this rule.<br/>Updates:  An array of <code>RuleUpdate</code> objects that you want to insert into or delete from a <a>RateBasedRule</a>. <br/>ChangeToken:  The value returned by the most recent call to <a>GetChangeToken</a>.<br/>RuleId:  The <code>RuleId</code> of the <code>RateBasedRule</code> that you want to update. <code>RuleId</code> is returned by <code>CreateRateBasedRule</code> and by <a>ListRateBasedRules</a>.<br/>
        :return: ChangeToken:  The <code>ChangeToken</code> that you used to submit the <code>UpdateRateBasedRule</code> request. You can also use this value to query the status of the request. For more information, see <a>GetChangeTokenStatus</a>.<br/>        """
        pass

    def update_regex_match_set(self, ChangeToken: str, Updates: List[RegexMatchSetUpdate], RegexMatchSetId: str) -> UpdateRegexMatchSetResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Inserts or deletes <a>RegexMatchTuple</a> objects (filters) in a <a>RegexMatchSet</a>. For each <code>RegexMatchSetUpdate</code> object, you specify the following values:  <ul> <li> Whether to insert or delete the object from the array. If you want to change a <code>RegexMatchSetUpdate</code> object, you delete the existing object and add a new one. </li> <li> The part of a web request that you want AWS WAF to inspectupdate, such as a query string or the value of the <code>User-Agent</code> header.  </li> <li> The identifier of the pattern (a regular expression) that you want AWS WAF to look for. For more information, see <a>RegexPatternSet</a>.  </li> <li> Whether to perform any conversions on the request, such as converting it to lowercase, before inspecting it for the specified string. </li> </ul>  For example, you can create a <code>RegexPatternSet</code> that matches any requests with <code>User-Agent</code> headers that contain the string <code>B[a@]dB[o0]t</code>. You can then configure AWS WAF to reject those requests. To create and configure a <code>RegexMatchSet</code>, perform the following steps: <ol> <li> Create a <code>RegexMatchSet.</code> For more information, see <a>CreateRegexMatchSet</a>. </li> <li> Use <a>GetChangeToken</a> to get the change token that you provide in the <code>ChangeToken</code> parameter of an <code>UpdateRegexMatchSet</code> request. </li> <li> Submit an <code>UpdateRegexMatchSet</code> request to specify the part of the request that you want AWS WAF to inspect (for example, the header or the URI) and the identifier of the <code>RegexPatternSet</code> that contain the regular expression patters you want AWS WAF to watch for. </li> </ol> For more information about how to use the AWS WAF API to allow or block HTTP requests, see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/">AWS WAF Developer Guide</a>.

        :param self:
        :param ChangeToken:  The value returned by the most recent call to <a>GetChangeToken</a>.<br/>Updates:  An array of <code>RegexMatchSetUpdate</code> objects that you want to insert into or delete from a <a>RegexMatchSet</a>. For more information, see <a>RegexMatchTuple</a>.<br/>RegexMatchSetId:  The <code>RegexMatchSetId</code> of the <a>RegexMatchSet</a> that you want to update. <code>RegexMatchSetId</code> is returned by <a>CreateRegexMatchSet</a> and by <a>ListRegexMatchSets</a>.<br/>
        :return: ChangeToken:  The <code>ChangeToken</code> that you used to submit the <code>UpdateRegexMatchSet</code> request. You can also use this value to query the status of the request. For more information, see <a>GetChangeTokenStatus</a>.<br/>        """
        pass

    def update_regex_pattern_set(self, ChangeToken: str, Updates: List[RegexPatternSetUpdate], RegexPatternSetId: str) -> UpdateRegexPatternSetResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Inserts or deletes <code>RegexPatternString</code> objects in a <a>RegexPatternSet</a>. For each <code>RegexPatternString</code> object, you specify the following values:  <ul> <li> Whether to insert or delete the <code>RegexPatternString</code>. </li> <li> The regular expression pattern that you want to insert or delete. For more information, see <a>RegexPatternSet</a>.  </li> </ul>  For example, you can create a <code>RegexPatternString</code> such as <code>B[a@]dB[o0]t</code>. AWS WAF will match this <code>RegexPatternString</code> to: <ul> <li> BadBot </li> <li> BadB0t </li> <li> B@dBot </li> <li> B@dB0t </li> </ul> To create and configure a <code>RegexPatternSet</code>, perform the following steps: <ol> <li> Create a <code>RegexPatternSet.</code> For more information, see <a>CreateRegexPatternSet</a>. </li> <li> Use <a>GetChangeToken</a> to get the change token that you provide in the <code>ChangeToken</code> parameter of an <code>UpdateRegexPatternSet</code> request. </li> <li> Submit an <code>UpdateRegexPatternSet</code> request to specify the regular expression pattern that you want AWS WAF to watch for. </li> </ol> For more information about how to use the AWS WAF API to allow or block HTTP requests, see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/">AWS WAF Developer Guide</a>.

        :param self:
        :param ChangeToken:  The value returned by the most recent call to <a>GetChangeToken</a>.<br/>Updates:  An array of <code>RegexPatternSetUpdate</code> objects that you want to insert into or delete from a <a>RegexPatternSet</a>.<br/>RegexPatternSetId:  The <code>RegexPatternSetId</code> of the <a>RegexPatternSet</a> that you want to update. <code>RegexPatternSetId</code> is returned by <a>CreateRegexPatternSet</a> and by <a>ListRegexPatternSets</a>.<br/>
        :return: ChangeToken:  The <code>ChangeToken</code> that you used to submit the <code>UpdateRegexPatternSet</code> request. You can also use this value to query the status of the request. For more information, see <a>GetChangeTokenStatus</a>.<br/>        """
        pass

    def update_rule(self, Updates: List[RuleUpdate], ChangeToken: str, RuleId: str) -> UpdateRuleResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Inserts or deletes <a>Predicate</a> objects in a <code>Rule</code>. Each <code>Predicate</code> object identifies a predicate, such as a <a>ByteMatchSet</a> or an <a>IPSet</a>, that specifies the web requests that you want to allow, block, or count. If you add more than one predicate to a <code>Rule</code>, a request must match all of the specifications to be allowed, blocked, or counted. For example, suppose that you add the following to a <code>Rule</code>:  <ul> <li> A <code>ByteMatchSet</code> that matches the value <code>BadBot</code> in the <code>User-Agent</code> header </li> <li> An <code>IPSet</code> that matches the IP address <code>192.0.2.44</code>  </li> </ul> You then add the <code>Rule</code> to a <code>WebACL</code> and specify that you want to block requests that satisfy the <code>Rule</code>. For a request to be blocked, the <code>User-Agent</code> header in the request must contain the value <code>BadBot</code> <i>and</i> the request must originate from the IP address 192.0.2.44. To create and configure a <code>Rule</code>, perform the following steps: <ol> <li> Create and update the predicates that you want to include in the <code>Rule</code>. </li> <li> Create the <code>Rule</code>. See <a>CreateRule</a>. </li> <li> Use <code>GetChangeToken</code> to get the change token that you provide in the <code>ChangeToken</code> parameter of an <a>UpdateRule</a> request. </li> <li> Submit an <code>UpdateRule</code> request to add predicates to the <code>Rule</code>. </li> <li> Create and update a <code>WebACL</code> that contains the <code>Rule</code>. See <a>CreateWebACL</a>. </li> </ol> If you want to replace one <code>ByteMatchSet</code> or <code>IPSet</code> with another, you delete the existing one and add the new one. For more information about how to use the AWS WAF API to allow or block HTTP requests, see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/">AWS WAF Developer Guide</a>.

        :param self:
        :param Updates:  An array of <code>RuleUpdate</code> objects that you want to insert into or delete from a <a>Rule</a>. For more information, see the applicable data types: <ul> <li>  <a>RuleUpdate</a>: Contains <code>Action</code> and <code>Predicate</code>  </li> <li>  <a>Predicate</a>: Contains <code>DataId</code>, <code>Negated</code>, and <code>Type</code>  </li> <li>  <a>FieldToMatch</a>: Contains <code>Data</code> and <code>Type</code>  </li> </ul><br/>ChangeToken:  The value returned by the most recent call to <a>GetChangeToken</a>.<br/>RuleId:  The <code>RuleId</code> of the <code>Rule</code> that you want to update. <code>RuleId</code> is returned by <code>CreateRule</code> and by <a>ListRules</a>.<br/>
        :return: ChangeToken:  The <code>ChangeToken</code> that you used to submit the <code>UpdateRule</code> request. You can also use this value to query the status of the request. For more information, see <a>GetChangeTokenStatus</a>.<br/>        """
        pass

    def update_rule_group(self, ChangeToken: str, Updates: List[RuleGroupUpdate], RuleGroupId: str) -> UpdateRuleGroupResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Inserts or deletes <a>ActivatedRule</a> objects in a <code>RuleGroup</code>. You can only insert <code>REGULAR</code> rules into a rule group. You can have a maximum of ten rules per rule group. To create and configure a <code>RuleGroup</code>, perform the following steps: <ol> <li> Create and update the <code>Rules</code> that you want to include in the <code>RuleGroup</code>. See <a>CreateRule</a>. </li> <li> Use <code>GetChangeToken</code> to get the change token that you provide in the <code>ChangeToken</code> parameter of an <a>UpdateRuleGroup</a> request. </li> <li> Submit an <code>UpdateRuleGroup</code> request to add <code>Rules</code> to the <code>RuleGroup</code>. </li> <li> Create and update a <code>WebACL</code> that contains the <code>RuleGroup</code>. See <a>CreateWebACL</a>. </li> </ol> If you want to replace one <code>Rule</code> with another, you delete the existing one and add the new one. For more information about how to use the AWS WAF API to allow or block HTTP requests, see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/">AWS WAF Developer Guide</a>.

        :param self:
        :param ChangeToken:  The value returned by the most recent call to <a>GetChangeToken</a>.<br/>Updates:  An array of <code>RuleGroupUpdate</code> objects that you want to insert into or delete from a <a>RuleGroup</a>. You can only insert <code>REGULAR</code> rules into a rule group.  <code>ActivatedRule|OverrideAction</code> applies only when updating or adding a <code>RuleGroup</code> to a <code>WebACL</code>. In this case you do not use <code>ActivatedRule|Action</code>. For all other update requests, <code>ActivatedRule|Action</code> is used instead of <code>ActivatedRule|OverrideAction</code>.<br/>RuleGroupId:  The <code>RuleGroupId</code> of the <a>RuleGroup</a> that you want to update. <code>RuleGroupId</code> is returned by <a>CreateRuleGroup</a> and by <a>ListRuleGroups</a>.<br/>
        :return: ChangeToken:  The <code>ChangeToken</code> that you used to submit the <code>UpdateRuleGroup</code> request. You can also use this value to query the status of the request. For more information, see <a>GetChangeTokenStatus</a>.<br/>        """
        pass

    def update_size_constraint_set(self, Updates: List[SizeConstraintSetUpdate], ChangeToken: str, SizeConstraintSetId: str) -> UpdateSizeConstraintSetResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Inserts or deletes <a>SizeConstraint</a> objects (filters) in a <a>SizeConstraintSet</a>. For each <code>SizeConstraint</code> object, you specify the following values:  <ul> <li> Whether to insert or delete the object from the array. If you want to change a <code>SizeConstraintSetUpdate</code> object, you delete the existing object and add a new one. </li> <li> The part of a web request that you want AWS WAF to evaluate, such as the length of a query string or the length of the <code>User-Agent</code> header. </li> <li> Whether to perform any transformations on the request, such as converting it to lowercase, before checking its length. Note that transformations of the request body are not supported because the AWS resource forwards only the first <code>8192</code> bytes of your request to AWS WAF. You can only specify a single type of TextTransformation. </li> <li> A <code>ComparisonOperator</code> used for evaluating the selected part of the request against the specified <code>Size</code>, such as equals, greater than, less than, and so on. </li> <li> The length, in bytes, that you want AWS WAF to watch for in selected part of the request. The length is computed after applying the transformation. </li> </ul> For example, you can add a <code>SizeConstraintSetUpdate</code> object that matches web requests in which the length of the <code>User-Agent</code> header is greater than 100 bytes. You can then configure AWS WAF to block those requests. To create and configure a <code>SizeConstraintSet</code>, perform the following steps: <ol> <li> Create a <code>SizeConstraintSet.</code> For more information, see <a>CreateSizeConstraintSet</a>. </li> <li> Use <a>GetChangeToken</a> to get the change token that you provide in the <code>ChangeToken</code> parameter of an <code>UpdateSizeConstraintSet</code> request. </li> <li> Submit an <code>UpdateSizeConstraintSet</code> request to specify the part of the request that you want AWS WAF to inspect (for example, the header or the URI) and the value that you want AWS WAF to watch for. </li> </ol> For more information about how to use the AWS WAF API to allow or block HTTP requests, see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/">AWS WAF Developer Guide</a>.

        :param self:
        :param Updates:  An array of <code>SizeConstraintSetUpdate</code> objects that you want to insert into or delete from a <a>SizeConstraintSet</a>. For more information, see the applicable data types: <ul> <li>  <a>SizeConstraintSetUpdate</a>: Contains <code>Action</code> and <code>SizeConstraint</code>  </li> <li>  <a>SizeConstraint</a>: Contains <code>FieldToMatch</code>, <code>TextTransformation</code>, <code>ComparisonOperator</code>, and <code>Size</code>  </li> <li>  <a>FieldToMatch</a>: Contains <code>Data</code> and <code>Type</code>  </li> </ul><br/>ChangeToken:  The value returned by the most recent call to <a>GetChangeToken</a>.<br/>SizeConstraintSetId:  The <code>SizeConstraintSetId</code> of the <a>SizeConstraintSet</a> that you want to update. <code>SizeConstraintSetId</code> is returned by <a>CreateSizeConstraintSet</a> and by <a>ListSizeConstraintSets</a>.<br/>
        :return: ChangeToken:  The <code>ChangeToken</code> that you used to submit the <code>UpdateSizeConstraintSet</code> request. You can also use this value to query the status of the request. For more information, see <a>GetChangeTokenStatus</a>.<br/>        """
        pass

    def update_sql_injection_match_set(self, Updates: List[SqlInjectionMatchSetUpdate], ChangeToken: str, SqlInjectionMatchSetId: str) -> UpdateSqlInjectionMatchSetResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Inserts or deletes <a>SqlInjectionMatchTuple</a> objects (filters) in a <a>SqlInjectionMatchSet</a>. For each <code>SqlInjectionMatchTuple</code> object, you specify the following values: <ul> <li>  <code>Action</code>: Whether to insert the object into or delete the object from the array. To change a <code>SqlInjectionMatchTuple</code>, you delete the existing object and add a new one. </li> <li>  <code>FieldToMatch</code>: The part of web requests that you want AWS WAF to inspect and, if you want AWS WAF to inspect a header or custom query parameter, the name of the header or parameter. </li> <li>  <code>TextTransformation</code>: Which text transformation, if any, to perform on the web request before inspecting the request for snippets of malicious SQL code. You can only specify a single type of TextTransformation. </li> </ul> You use <code>SqlInjectionMatchSet</code> objects to specify which CloudFront requests that you want to allow, block, or count. For example, if you're receiving requests that contain snippets of SQL code in the query string and you want to block the requests, you can create a <code>SqlInjectionMatchSet</code> with the applicable settings, and then configure AWS WAF to block the requests.  To create and configure a <code>SqlInjectionMatchSet</code>, perform the following steps: <ol> <li> Submit a <a>CreateSqlInjectionMatchSet</a> request. </li> <li> Use <a>GetChangeToken</a> to get the change token that you provide in the <code>ChangeToken</code> parameter of an <a>UpdateIPSet</a> request. </li> <li> Submit an <code>UpdateSqlInjectionMatchSet</code> request to specify the parts of web requests that you want AWS WAF to inspect for snippets of SQL code. </li> </ol> For more information about how to use the AWS WAF API to allow or block HTTP requests, see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/">AWS WAF Developer Guide</a>.

        :param self:
        :param Updates:  An array of <code>SqlInjectionMatchSetUpdate</code> objects that you want to insert into or delete from a <a>SqlInjectionMatchSet</a>. For more information, see the applicable data types: <ul> <li>  <a>SqlInjectionMatchSetUpdate</a>: Contains <code>Action</code> and <code>SqlInjectionMatchTuple</code>  </li> <li>  <a>SqlInjectionMatchTuple</a>: Contains <code>FieldToMatch</code> and <code>TextTransformation</code>  </li> <li>  <a>FieldToMatch</a>: Contains <code>Data</code> and <code>Type</code>  </li> </ul><br/>ChangeToken:  The value returned by the most recent call to <a>GetChangeToken</a>.<br/>SqlInjectionMatchSetId:  The <code>SqlInjectionMatchSetId</code> of the <code>SqlInjectionMatchSet</code> that you want to update. <code>SqlInjectionMatchSetId</code> is returned by <a>CreateSqlInjectionMatchSet</a> and by <a>ListSqlInjectionMatchSets</a>.<br/>
        :return: ChangeToken:  The <code>ChangeToken</code> that you used to submit the <code>UpdateSqlInjectionMatchSet</code> request. You can also use this value to query the status of the request. For more information, see <a>GetChangeTokenStatus</a>.<br/>        """
        pass

    def update_web_acl(self, ChangeToken: str, WebACLId: str, Updates: List[WebACLUpdate]=None, DefaultAction: WafAction=None) -> UpdateWebACLResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Inserts or deletes <a>ActivatedRule</a> objects in a <code>WebACL</code>. Each <code>Rule</code> identifies web requests that you want to allow, block, or count. When you update a <code>WebACL</code>, you specify the following values: <ul> <li> A default action for the <code>WebACL</code>, either <code>ALLOW</code> or <code>BLOCK</code>. AWS WAF performs the default action if a request doesn't match the criteria in any of the <code>Rules</code> in a <code>WebACL</code>. </li> <li> The <code>Rules</code> that you want to add or delete. If you want to replace one <code>Rule</code> with another, you delete the existing <code>Rule</code> and add the new one. </li> <li> For each <code>Rule</code>, whether you want AWS WAF to allow requests, block requests, or count requests that match the conditions in the <code>Rule</code>. </li> <li> The order in which you want AWS WAF to evaluate the <code>Rules</code> in a <code>WebACL</code>. If you add more than one <code>Rule</code> to a <code>WebACL</code>, AWS WAF evaluates each request against the <code>Rules</code> in order based on the value of <code>Priority</code>. (The <code>Rule</code> that has the lowest value for <code>Priority</code> is evaluated first.) When a web request matches all the predicates (such as <code>ByteMatchSets</code> and <code>IPSets</code>) in a <code>Rule</code>, AWS WAF immediately takes the corresponding action, allow or block, and doesn't evaluate the request against the remaining <code>Rules</code> in the <code>WebACL</code>, if any.  </li> </ul> To create and configure a <code>WebACL</code>, perform the following steps: <ol> <li> Create and update the predicates that you want to include in <code>Rules</code>. For more information, see <a>CreateByteMatchSet</a>, <a>UpdateByteMatchSet</a>, <a>CreateIPSet</a>, <a>UpdateIPSet</a>, <a>CreateSqlInjectionMatchSet</a>, and <a>UpdateSqlInjectionMatchSet</a>. </li> <li> Create and update the <code>Rules</code> that you want to include in the <code>WebACL</code>. For more information, see <a>CreateRule</a> and <a>UpdateRule</a>. </li> <li> Create a <code>WebACL</code>. See <a>CreateWebACL</a>. </li> <li> Use <code>GetChangeToken</code> to get the change token that you provide in the <code>ChangeToken</code> parameter of an <a>UpdateWebACL</a> request. </li> <li> Submit an <code>UpdateWebACL</code> request to specify the <code>Rules</code> that you want to include in the <code>WebACL</code>, to specify the default action, and to associate the <code>WebACL</code> with a CloudFront distribution.  The <code>ActivatedRule</code> can be a rule group. If you specify a rule group as your <code>ActivatedRule</code> , you can exclude specific rules from that rule group. If you already have a rule group associated with a web ACL and want to submit an <code>UpdateWebACL</code> request to exclude certain rules from that rule group, you must first remove the rule group from the web ACL, the re-insert it again, specifying the excluded rules. For details, see <a>ActivatedRule$ExcludedRules</a> .  </li> </ol> Be aware that if you try to add a RATE_BASED rule to a web ACL without setting the rule type when first creating the rule, the <a>UpdateWebACL</a> request will fail because the request tries to add a REGULAR rule (the default rule type) with the specified ID, which does not exist.  For more information about how to use the AWS WAF API to allow or block HTTP requests, see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/">AWS WAF Developer Guide</a>.

        :param self:
        :param DefaultAction:  A default action for the web ACL, either ALLOW or BLOCK. AWS WAF performs the default action if a request doesn't match the criteria in any of the rules in a web ACL.:<br/>Updates:  An array of updates to make to the <a>WebACL</a>. An array of <code>WebACLUpdate</code> objects that you want to insert into or delete from a <a>WebACL</a>. For more information, see the applicable data types: <ul> <li>  <a>WebACLUpdate</a>: Contains <code>Action</code> and <code>ActivatedRule</code>  </li> <li>  <a>ActivatedRule</a>: Contains <code>Action</code>, <code>OverrideAction</code>, <code>Priority</code>, <code>RuleId</code>, and <code>Type</code>. <code>ActivatedRule|OverrideAction</code> applies only when updating or adding a <code>RuleGroup</code> to a <code>WebACL</code>. In this case, you do not use <code>ActivatedRule|Action</code>. For all other update requests, <code>ActivatedRule|Action</code> is used instead of <code>ActivatedRule|OverrideAction</code>.  </li> <li>  <a>WafAction</a>: Contains <code>Type</code>  </li> </ul><br/>ChangeToken:  The value returned by the most recent call to <a>GetChangeToken</a>.<br/>WebACLId:  The <code>WebACLId</code> of the <a>WebACL</a> that you want to update. <code>WebACLId</code> is returned by <a>CreateWebACL</a> and by <a>ListWebACLs</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> Specifies how you want AWS WAF to respond to requests that match the settings in a <code>Rule</code>. Valid settings include the following: <ul> <li>  <code>ALLOW</code>: AWS WAF allows requests </li> <li>  <code>BLOCK</code>: AWS WAF blocks requests </li> <li>  <code>COUNT</code>: AWS WAF increments a counter of the requests that match all of the conditions in the rule. AWS WAF then continues to inspect the web request based on the remaining rules in the web ACL. You can't specify <code>COUNT</code> for the default action for a <code>WebACL</code>. </li> </ul><br/>
        :return: ChangeToken:  The <code>ChangeToken</code> that you used to submit the <code>UpdateWebACL</code> request. You can also use this value to query the status of the request. For more information, see <a>GetChangeTokenStatus</a>.<br/>        """
        pass

    def update_xss_match_set(self, Updates: List[XssMatchSetUpdate], ChangeToken: str, XssMatchSetId: str) -> UpdateXssMatchSetResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Inserts or deletes <a>XssMatchTuple</a> objects (filters) in an <a>XssMatchSet</a>. For each <code>XssMatchTuple</code> object, you specify the following values: <ul> <li>  <code>Action</code>: Whether to insert the object into or delete the object from the array. To change an <code>XssMatchTuple</code>, you delete the existing object and add a new one. </li> <li>  <code>FieldToMatch</code>: The part of web requests that you want AWS WAF to inspect and, if you want AWS WAF to inspect a header or custom query parameter, the name of the header or parameter. </li> <li>  <code>TextTransformation</code>: Which text transformation, if any, to perform on the web request before inspecting the request for cross-site scripting attacks. You can only specify a single type of TextTransformation. </li> </ul> You use <code>XssMatchSet</code> objects to specify which CloudFront requests that you want to allow, block, or count. For example, if you're receiving requests that contain cross-site scripting attacks in the request body and you want to block the requests, you can create an <code>XssMatchSet</code> with the applicable settings, and then configure AWS WAF to block the requests.  To create and configure an <code>XssMatchSet</code>, perform the following steps: <ol> <li> Submit a <a>CreateXssMatchSet</a> request. </li> <li> Use <a>GetChangeToken</a> to get the change token that you provide in the <code>ChangeToken</code> parameter of an <a>UpdateIPSet</a> request. </li> <li> Submit an <code>UpdateXssMatchSet</code> request to specify the parts of web requests that you want AWS WAF to inspect for cross-site scripting attacks. </li> </ol> For more information about how to use the AWS WAF API to allow or block HTTP requests, see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/">AWS WAF Developer Guide</a>.

        :param self:
        :param Updates:  An array of <code>XssMatchSetUpdate</code> objects that you want to insert into or delete from an <a>XssMatchSet</a>. For more information, see the applicable data types: <ul> <li>  <a>XssMatchSetUpdate</a>: Contains <code>Action</code> and <code>XssMatchTuple</code>  </li> <li>  <a>XssMatchTuple</a>: Contains <code>FieldToMatch</code> and <code>TextTransformation</code>  </li> <li>  <a>FieldToMatch</a>: Contains <code>Data</code> and <code>Type</code>  </li> </ul><br/>ChangeToken:  The value returned by the most recent call to <a>GetChangeToken</a>.<br/>XssMatchSetId:  The <code>XssMatchSetId</code> of the <code>XssMatchSet</code> that you want to update. <code>XssMatchSetId</code> is returned by <a>CreateXssMatchSet</a> and by <a>ListXssMatchSets</a>.<br/>
        :return: ChangeToken:  The <code>ChangeToken</code> that you used to submit the <code>UpdateXssMatchSet</code> request. You can also use this value to query the status of the request. For more information, see <a>GetChangeTokenStatus</a>.<br/>        """
        pass





class WAFRegional(BaseClient):
    r"""<note> This is <b>AWS WAF Classic Regional</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> This is the <i>AWS WAF Regional Classic API Reference</i> for using AWS WAF Classic with the AWS resources, Elastic Load Balancing (ELB) Application Load Balancers and API Gateway APIs. The AWS WAF Classic actions and data types listed in the reference are available for protecting Elastic Load Balancing (ELB) Application Load Balancers and API Gateway APIs. You can use these actions and data types by means of the endpoints listed in <a href="https://docs.aws.amazon.com/general/latest/gr/rande.html#waf_region">AWS Regions and Endpoints</a>. This guide is for developers who need detailed information about the AWS WAF Classic API actions, data types, and errors. For detailed information about AWS WAF Classic features and an overview of how to use the AWS WAF Classic API, see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide."""




    class AssociateWebACLRequest(Mapping):
        pass
    
    class AssociateWebACLResponse(Mapping):
        pass
    
    class CreateByteMatchSetRequest(Mapping):
        pass
    
    class CreateByteMatchSetResponse(Mapping):
        pass
    
    class CreateGeoMatchSetRequest(Mapping):
        pass
    
    class CreateGeoMatchSetResponse(Mapping):
        pass
    
    class CreateIPSetRequest(Mapping):
        pass
    
    class CreateIPSetResponse(Mapping):
        pass
    
    class CreateRateBasedRuleRequest(Mapping):
        pass
    
    class CreateRateBasedRuleResponse(Mapping):
        pass
    
    class RateLimit(object):
        pass
    
    class Tag(Mapping):
        pass
    
    class CreateRegexMatchSetRequest(Mapping):
        pass
    
    class CreateRegexMatchSetResponse(Mapping):
        pass
    
    class CreateRegexPatternSetRequest(Mapping):
        pass
    
    class CreateRegexPatternSetResponse(Mapping):
        pass
    
    class CreateRuleRequest(Mapping):
        pass
    
    class CreateRuleResponse(Mapping):
        pass
    
    class CreateRuleGroupRequest(Mapping):
        pass
    
    class CreateRuleGroupResponse(Mapping):
        pass
    
    class CreateSizeConstraintSetRequest(Mapping):
        pass
    
    class CreateSizeConstraintSetResponse(Mapping):
        pass
    
    class CreateSqlInjectionMatchSetRequest(Mapping):
        pass
    
    class CreateSqlInjectionMatchSetResponse(Mapping):
        pass
    
    class CreateWebACLRequest(Mapping):
        pass
    
    class CreateWebACLResponse(Mapping):
        pass
    
    class WafAction(Mapping):
        pass
    
    class CreateWebACLMigrationStackRequest(Mapping):
        pass
    
    class CreateWebACLMigrationStackResponse(Mapping):
        pass
    
    class IgnoreUnsupportedType(object):
        pass
    
    class CreateXssMatchSetRequest(Mapping):
        pass
    
    class CreateXssMatchSetResponse(Mapping):
        pass
    
    class DeleteByteMatchSetRequest(Mapping):
        pass
    
    class DeleteByteMatchSetResponse(Mapping):
        pass
    
    class DeleteGeoMatchSetRequest(Mapping):
        pass
    
    class DeleteGeoMatchSetResponse(Mapping):
        pass
    
    class DeleteIPSetRequest(Mapping):
        pass
    
    class DeleteIPSetResponse(Mapping):
        pass
    
    class DeleteLoggingConfigurationRequest(Mapping):
        pass
    
    class DeleteLoggingConfigurationResponse(Mapping):
        pass
    
    class DeletePermissionPolicyRequest(Mapping):
        pass
    
    class DeletePermissionPolicyResponse(Mapping):
        pass
    
    class DeleteRateBasedRuleRequest(Mapping):
        pass
    
    class DeleteRateBasedRuleResponse(Mapping):
        pass
    
    class DeleteRegexMatchSetRequest(Mapping):
        pass
    
    class DeleteRegexMatchSetResponse(Mapping):
        pass
    
    class DeleteRegexPatternSetRequest(Mapping):
        pass
    
    class DeleteRegexPatternSetResponse(Mapping):
        pass
    
    class DeleteRuleRequest(Mapping):
        pass
    
    class DeleteRuleResponse(Mapping):
        pass
    
    class DeleteRuleGroupRequest(Mapping):
        pass
    
    class DeleteRuleGroupResponse(Mapping):
        pass
    
    class DeleteSizeConstraintSetRequest(Mapping):
        pass
    
    class DeleteSizeConstraintSetResponse(Mapping):
        pass
    
    class DeleteSqlInjectionMatchSetRequest(Mapping):
        pass
    
    class DeleteSqlInjectionMatchSetResponse(Mapping):
        pass
    
    class DeleteWebACLRequest(Mapping):
        pass
    
    class DeleteWebACLResponse(Mapping):
        pass
    
    class DeleteXssMatchSetRequest(Mapping):
        pass
    
    class DeleteXssMatchSetResponse(Mapping):
        pass
    
    class DisassociateWebACLRequest(Mapping):
        pass
    
    class DisassociateWebACLResponse(Mapping):
        pass
    
    class GetByteMatchSetRequest(Mapping):
        pass
    
    class GetByteMatchSetResponse(Mapping):
        pass
    
    class GetChangeTokenRequest(Mapping):
        pass
    
    class GetChangeTokenResponse(Mapping):
        pass
    
    class GetChangeTokenStatusRequest(Mapping):
        pass
    
    class GetChangeTokenStatusResponse(Mapping):
        pass
    
    class GetGeoMatchSetRequest(Mapping):
        pass
    
    class GetGeoMatchSetResponse(Mapping):
        pass
    
    class GetIPSetRequest(Mapping):
        pass
    
    class GetIPSetResponse(Mapping):
        pass
    
    class GetLoggingConfigurationRequest(Mapping):
        pass
    
    class GetLoggingConfigurationResponse(Mapping):
        pass
    
    class GetPermissionPolicyRequest(Mapping):
        pass
    
    class GetPermissionPolicyResponse(Mapping):
        pass
    
    class GetRateBasedRuleRequest(Mapping):
        pass
    
    class GetRateBasedRuleResponse(Mapping):
        pass
    
    class GetRateBasedRuleManagedKeysRequest(Mapping):
        pass
    
    class GetRateBasedRuleManagedKeysResponse(Mapping):
        pass
    
    class GetRegexMatchSetRequest(Mapping):
        pass
    
    class GetRegexMatchSetResponse(Mapping):
        pass
    
    class GetRegexPatternSetRequest(Mapping):
        pass
    
    class GetRegexPatternSetResponse(Mapping):
        pass
    
    class GetRuleRequest(Mapping):
        pass
    
    class GetRuleResponse(Mapping):
        pass
    
    class GetRuleGroupRequest(Mapping):
        pass
    
    class GetRuleGroupResponse(Mapping):
        pass
    
    class GetSampledRequestsRequest(Mapping):
        pass
    
    class GetSampledRequestsResponse(Mapping):
        pass
    
    class TimeWindow(Mapping):
        pass
    
    class GetSampledRequestsMaxItems(object):
        pass
    
    class GetSizeConstraintSetRequest(Mapping):
        pass
    
    class GetSizeConstraintSetResponse(Mapping):
        pass
    
    class GetSqlInjectionMatchSetRequest(Mapping):
        pass
    
    class GetSqlInjectionMatchSetResponse(Mapping):
        pass
    
    class GetWebACLRequest(Mapping):
        pass
    
    class GetWebACLResponse(Mapping):
        pass
    
    class GetWebACLForResourceRequest(Mapping):
        pass
    
    class GetWebACLForResourceResponse(Mapping):
        pass
    
    class GetXssMatchSetRequest(Mapping):
        pass
    
    class GetXssMatchSetResponse(Mapping):
        pass
    
    class ListActivatedRulesInRuleGroupRequest(Mapping):
        pass
    
    class ListActivatedRulesInRuleGroupResponse(Mapping):
        pass
    
    class ListByteMatchSetsRequest(Mapping):
        pass
    
    class ListByteMatchSetsResponse(Mapping):
        pass
    
    class ListGeoMatchSetsRequest(Mapping):
        pass
    
    class ListGeoMatchSetsResponse(Mapping):
        pass
    
    class ListIPSetsRequest(Mapping):
        pass
    
    class ListIPSetsResponse(Mapping):
        pass
    
    class ListLoggingConfigurationsRequest(Mapping):
        pass
    
    class ListLoggingConfigurationsResponse(Mapping):
        pass
    
    class ListRateBasedRulesRequest(Mapping):
        pass
    
    class ListRateBasedRulesResponse(Mapping):
        pass
    
    class ListRegexMatchSetsRequest(Mapping):
        pass
    
    class ListRegexMatchSetsResponse(Mapping):
        pass
    
    class ListRegexPatternSetsRequest(Mapping):
        pass
    
    class ListRegexPatternSetsResponse(Mapping):
        pass
    
    class ListResourcesForWebACLRequest(Mapping):
        pass
    
    class ListResourcesForWebACLResponse(Mapping):
        pass
    
    class ListRuleGroupsRequest(Mapping):
        pass
    
    class ListRuleGroupsResponse(Mapping):
        pass
    
    class ListRulesRequest(Mapping):
        pass
    
    class ListRulesResponse(Mapping):
        pass
    
    class ListSizeConstraintSetsRequest(Mapping):
        pass
    
    class ListSizeConstraintSetsResponse(Mapping):
        pass
    
    class ListSqlInjectionMatchSetsRequest(Mapping):
        pass
    
    class ListSqlInjectionMatchSetsResponse(Mapping):
        pass
    
    class ListSubscribedRuleGroupsRequest(Mapping):
        pass
    
    class ListSubscribedRuleGroupsResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class ListWebACLsRequest(Mapping):
        pass
    
    class ListWebACLsResponse(Mapping):
        pass
    
    class ListXssMatchSetsRequest(Mapping):
        pass
    
    class ListXssMatchSetsResponse(Mapping):
        pass
    
    class PutLoggingConfigurationRequest(Mapping):
        pass
    
    class PutLoggingConfigurationResponse(Mapping):
        pass
    
    class LoggingConfiguration(Mapping):
        pass
    
    class PutPermissionPolicyRequest(Mapping):
        pass
    
    class PutPermissionPolicyResponse(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateByteMatchSetRequest(Mapping):
        pass
    
    class UpdateByteMatchSetResponse(Mapping):
        pass
    
    class ByteMatchSetUpdate(Mapping):
        pass
    
    class UpdateGeoMatchSetRequest(Mapping):
        pass
    
    class UpdateGeoMatchSetResponse(Mapping):
        pass
    
    class GeoMatchSetUpdate(Mapping):
        pass
    
    class UpdateIPSetRequest(Mapping):
        pass
    
    class UpdateIPSetResponse(Mapping):
        pass
    
    class IPSetUpdate(Mapping):
        pass
    
    class UpdateRateBasedRuleRequest(Mapping):
        pass
    
    class UpdateRateBasedRuleResponse(Mapping):
        pass
    
    class RuleUpdate(Mapping):
        pass
    
    class UpdateRegexMatchSetRequest(Mapping):
        pass
    
    class UpdateRegexMatchSetResponse(Mapping):
        pass
    
    class RegexMatchSetUpdate(Mapping):
        pass
    
    class UpdateRegexPatternSetRequest(Mapping):
        pass
    
    class UpdateRegexPatternSetResponse(Mapping):
        pass
    
    class RegexPatternSetUpdate(Mapping):
        pass
    
    class UpdateRuleRequest(Mapping):
        pass
    
    class UpdateRuleResponse(Mapping):
        pass
    
    class UpdateRuleGroupRequest(Mapping):
        pass
    
    class UpdateRuleGroupResponse(Mapping):
        pass
    
    class RuleGroupUpdate(Mapping):
        pass
    
    class UpdateSizeConstraintSetRequest(Mapping):
        pass
    
    class UpdateSizeConstraintSetResponse(Mapping):
        pass
    
    class SizeConstraintSetUpdate(Mapping):
        pass
    
    class UpdateSqlInjectionMatchSetRequest(Mapping):
        pass
    
    class UpdateSqlInjectionMatchSetResponse(Mapping):
        pass
    
    class SqlInjectionMatchSetUpdate(Mapping):
        pass
    
    class UpdateWebACLRequest(Mapping):
        pass
    
    class UpdateWebACLResponse(Mapping):
        pass
    
    class WebACLUpdate(Mapping):
        pass
    
    class UpdateXssMatchSetRequest(Mapping):
        pass
    
    class UpdateXssMatchSetResponse(Mapping):
        pass
    
    class XssMatchSetUpdate(Mapping):
        pass
    
    def associate_web_acl(self, ResourceArn: str, WebACLId: str) -> AssociateWebACLResponse:
        r"""<note> This is <b>AWS WAF Classic Regional</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Associates a web ACL with a resource, either an application load balancer or Amazon API Gateway stage.

        :param self:
        :param ResourceArn:  The ARN (Amazon Resource Name) of the resource to be protected, either an application load balancer or Amazon API Gateway stage.  The ARN should be in one of the following formats: <ul> <li> For an Application Load Balancer: <code>arn:aws:elasticloadbalancing:<i>region</i>:<i>account-id</i>:loadbalancer/app/<i>load-balancer-name</i>/<i>load-balancer-id</i> </code>  </li> <li> For an Amazon API Gateway stage: <code>arn:aws:apigateway:<i>region</i>::/restapis/<i>api-id</i>/stages/<i>stage-name</i> </code>  </li> </ul><br/>WebACLId:  A unique identifier (ID) for the web ACL. <br/>
        :return:         """
        pass

    def create_byte_match_set(self, ChangeToken: str, Name: str) -> CreateByteMatchSetResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Creates a <code>ByteMatchSet</code>. You then use <a>UpdateByteMatchSet</a> to identify the part of a web request that you want AWS WAF to inspect, such as the values of the <code>User-Agent</code> header or the query string. For example, you can create a <code>ByteMatchSet</code> that matches any requests with <code>User-Agent</code> headers that contain the string <code>BadBot</code>. You can then configure AWS WAF to reject those requests. To create and configure a <code>ByteMatchSet</code>, perform the following steps: <ol> <li> Use <a>GetChangeToken</a> to get the change token that you provide in the <code>ChangeToken</code> parameter of a <code>CreateByteMatchSet</code> request. </li> <li> Submit a <code>CreateByteMatchSet</code> request. </li> <li> Use <code>GetChangeToken</code> to get the change token that you provide in the <code>ChangeToken</code> parameter of an <code>UpdateByteMatchSet</code> request. </li> <li> Submit an <a>UpdateByteMatchSet</a> request to specify the part of the request that you want AWS WAF to inspect (for example, the header or the URI) and the value that you want AWS WAF to watch for. </li> </ol> For more information about how to use the AWS WAF API to allow or block HTTP requests, see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/">AWS WAF Developer Guide</a>.

        :param self:
        :param ChangeToken:  The value returned by the most recent call to <a>GetChangeToken</a>.<br/>Name:  A friendly name or description of the <a>ByteMatchSet</a>. You can't change <code>Name</code> after you create a <code>ByteMatchSet</code>.<br/>
        :return: ChangeToken:  The <code>ChangeToken</code> that you used to submit the <code>CreateByteMatchSet</code> request. You can also use this value to query the status of the request. For more information, see <a>GetChangeTokenStatus</a>.<br/>ByteMatchSet:  A <a>ByteMatchSet</a> that contains no <code>ByteMatchTuple</code> objects.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ByteMatchTuples</i> Specifies the bytes (typically a string that corresponds with ASCII characters) that you want AWS WAF to search for in web requests, the location in requests that you want AWS WAF to search, and other settings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A friendly name or description of the <a>ByteMatchSet</a>. You can't change <code>Name</code> after you create a <code>ByteMatchSet</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ByteMatchSetId</i> The <code>ByteMatchSetId</code> for a <code>ByteMatchSet</code>. You use <code>ByteMatchSetId</code> to get information about a <code>ByteMatchSet</code> (see <a>GetByteMatchSet</a>), update a <code>ByteMatchSet</code> (see <a>UpdateByteMatchSet</a>), insert a <code>ByteMatchSet</code> into a <code>Rule</code> or delete one from a <code>Rule</code> (see <a>UpdateRule</a>), and delete a <code>ByteMatchSet</code> from AWS WAF (see <a>DeleteByteMatchSet</a>).  <code>ByteMatchSetId</code> is returned by <a>CreateByteMatchSet</a> and by <a>ListByteMatchSets</a>.<br/>        """
        pass

    def create_geo_match_set(self, ChangeToken: str, Name: str) -> CreateGeoMatchSetResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Creates an <a>GeoMatchSet</a>, which you use to specify which web requests you want to allow or block based on the country that the requests originate from. For example, if you're receiving a lot of requests from one or more countries and you want to block the requests, you can create an <code>GeoMatchSet</code> that contains those countries and then configure AWS WAF to block the requests.  To create and configure a <code>GeoMatchSet</code>, perform the following steps: <ol> <li> Use <a>GetChangeToken</a> to get the change token that you provide in the <code>ChangeToken</code> parameter of a <code>CreateGeoMatchSet</code> request. </li> <li> Submit a <code>CreateGeoMatchSet</code> request. </li> <li> Use <code>GetChangeToken</code> to get the change token that you provide in the <code>ChangeToken</code> parameter of an <a>UpdateGeoMatchSet</a> request. </li> <li> Submit an <code>UpdateGeoMatchSetSet</code> request to specify the countries that you want AWS WAF to watch for. </li> </ol> For more information about how to use the AWS WAF API to allow or block HTTP requests, see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/">AWS WAF Developer Guide</a>.

        :param self:
        :param ChangeToken:  The value returned by the most recent call to <a>GetChangeToken</a>.<br/>Name:  A friendly name or description of the <a>GeoMatchSet</a>. You can't change <code>Name</code> after you create the <code>GeoMatchSet</code>.<br/>
        :return: ChangeToken:  The <code>ChangeToken</code> that you used to submit the <code>CreateGeoMatchSet</code> request. You can also use this value to query the status of the request. For more information, see <a>GetChangeTokenStatus</a>.<br/>GeoMatchSet:  The <a>GeoMatchSet</a> returned in the <code>CreateGeoMatchSet</code> response. The <code>GeoMatchSet</code> contains no <code>GeoMatchConstraints</code>.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GeoMatchConstraints</i> An array of <a>GeoMatchConstraint</a> objects, which contain the country that you want AWS WAF to search for.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A friendly name or description of the <a>GeoMatchSet</a>. You can't change the name of an <code>GeoMatchSet</code> after you create it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GeoMatchSetId</i> The <code>GeoMatchSetId</code> for an <code>GeoMatchSet</code>. You use <code>GeoMatchSetId</code> to get information about a <code>GeoMatchSet</code> (see <a>GeoMatchSet</a>), update a <code>GeoMatchSet</code> (see <a>UpdateGeoMatchSet</a>), insert a <code>GeoMatchSet</code> into a <code>Rule</code> or delete one from a <code>Rule</code> (see <a>UpdateRule</a>), and delete a <code>GeoMatchSet</code> from AWS WAF (see <a>DeleteGeoMatchSet</a>).  <code>GeoMatchSetId</code> is returned by <a>CreateGeoMatchSet</a> and by <a>ListGeoMatchSets</a>.<br/>        """
        pass

    def create_ip_set(self, ChangeToken: str, Name: str) -> CreateIPSetResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Creates an <a>IPSet</a>, which you use to specify which web requests that you want to allow or block based on the IP addresses that the requests originate from. For example, if you're receiving a lot of requests from one or more individual IP addresses or one or more ranges of IP addresses and you want to block the requests, you can create an <code>IPSet</code> that contains those IP addresses and then configure AWS WAF to block the requests.  To create and configure an <code>IPSet</code>, perform the following steps: <ol> <li> Use <a>GetChangeToken</a> to get the change token that you provide in the <code>ChangeToken</code> parameter of a <code>CreateIPSet</code> request. </li> <li> Submit a <code>CreateIPSet</code> request. </li> <li> Use <code>GetChangeToken</code> to get the change token that you provide in the <code>ChangeToken</code> parameter of an <a>UpdateIPSet</a> request. </li> <li> Submit an <code>UpdateIPSet</code> request to specify the IP addresses that you want AWS WAF to watch for. </li> </ol> For more information about how to use the AWS WAF API to allow or block HTTP requests, see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/">AWS WAF Developer Guide</a>.

        :param self:
        :param ChangeToken:  The value returned by the most recent call to <a>GetChangeToken</a>.<br/>Name:  A friendly name or description of the <a>IPSet</a>. You can't change <code>Name</code> after you create the <code>IPSet</code>.<br/>
        :return: ChangeToken:  The <code>ChangeToken</code> that you used to submit the <code>CreateIPSet</code> request. You can also use this value to query the status of the request. For more information, see <a>GetChangeTokenStatus</a>.<br/>IPSet:  The <a>IPSet</a> returned in the <code>CreateIPSet</code> response.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IPSetDescriptors</i> The IP address type (<code>IPV4</code> or <code>IPV6</code>) and the IP address range (in CIDR notation) that web requests originate from. If the <code>WebACL</code> is associated with a CloudFront distribution and the viewer did not use an HTTP proxy or a load balancer to send the request, this is the value of the c-ip field in the CloudFront access logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A friendly name or description of the <a>IPSet</a>. You can't change the name of an <code>IPSet</code> after you create it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IPSetId</i> The <code>IPSetId</code> for an <code>IPSet</code>. You use <code>IPSetId</code> to get information about an <code>IPSet</code> (see <a>GetIPSet</a>), update an <code>IPSet</code> (see <a>UpdateIPSet</a>), insert an <code>IPSet</code> into a <code>Rule</code> or delete one from a <code>Rule</code> (see <a>UpdateRule</a>), and delete an <code>IPSet</code> from AWS WAF (see <a>DeleteIPSet</a>).  <code>IPSetId</code> is returned by <a>CreateIPSet</a> and by <a>ListIPSets</a>.<br/>        """
        pass

    def create_rate_based_rule(self, ChangeToken: str, RateLimit: RateLimit, RateKey: str, MetricName: str, Name: str, Tags: List[Tag]=None) -> CreateRateBasedRuleResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Creates a <a>RateBasedRule</a>. The <code>RateBasedRule</code> contains a <code>RateLimit</code>, which specifies the maximum number of requests that AWS WAF allows from a specified IP address in a five-minute period. The <code>RateBasedRule</code> also contains the <code>IPSet</code> objects, <code>ByteMatchSet</code> objects, and other predicates that identify the requests that you want to count or block if these requests exceed the <code>RateLimit</code>. If you add more than one predicate to a <code>RateBasedRule</code>, a request not only must exceed the <code>RateLimit</code>, but it also must match all the conditions to be counted or blocked. For example, suppose you add the following to a <code>RateBasedRule</code>: <ul> <li> An <code>IPSet</code> that matches the IP address <code>192.0.2.44/32</code>  </li> <li> A <code>ByteMatchSet</code> that matches <code>BadBot</code> in the <code>User-Agent</code> header </li> </ul> Further, you specify a <code>RateLimit</code> of 1,000. You then add the <code>RateBasedRule</code> to a <code>WebACL</code> and specify that you want to block requests that meet the conditions in the rule. For a request to be blocked, it must come from the IP address 192.0.2.44 <i>and</i> the <code>User-Agent</code> header in the request must contain the value <code>BadBot</code>. Further, requests that match these two conditions must be received at a rate of more than 1,000 requests every five minutes. If both conditions are met and the rate is exceeded, AWS WAF blocks the requests. If the rate drops below 1,000 for a five-minute period, AWS WAF no longer blocks the requests. As a second example, suppose you want to limit requests to a particular page on your site. To do this, you could add the following to a <code>RateBasedRule</code>: <ul> <li> A <code>ByteMatchSet</code> with <code>FieldToMatch</code> of <code>URI</code>  </li> <li> A <code>PositionalConstraint</code> of <code>STARTS_WITH</code>  </li> <li> A <code>TargetString</code> of <code>login</code>  </li> </ul> Further, you specify a <code>RateLimit</code> of 1,000. By adding this <code>RateBasedRule</code> to a <code>WebACL</code>, you could limit requests to your login page without affecting the rest of your site. To create and configure a <code>RateBasedRule</code>, perform the following steps: <ol> <li> Create and update the predicates that you want to include in the rule. For more information, see <a>CreateByteMatchSet</a>, <a>CreateIPSet</a>, and <a>CreateSqlInjectionMatchSet</a>. </li> <li> Use <a>GetChangeToken</a> to get the change token that you provide in the <code>ChangeToken</code> parameter of a <code>CreateRule</code> request. </li> <li> Submit a <code>CreateRateBasedRule</code> request. </li> <li> Use <code>GetChangeToken</code> to get the change token that you provide in the <code>ChangeToken</code> parameter of an <a>UpdateRule</a> request. </li> <li> Submit an <code>UpdateRateBasedRule</code> request to specify the predicates that you want to include in the rule. </li> <li> Create and update a <code>WebACL</code> that contains the <code>RateBasedRule</code>. For more information, see <a>CreateWebACL</a>. </li> </ol> For more information about how to use the AWS WAF API to allow or block HTTP requests, see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/">AWS WAF Developer Guide</a>.

        :param self:
        :param Tags:  <p/><br/>ChangeToken:  The <code>ChangeToken</code> that you used to submit the <code>CreateRateBasedRule</code> request. You can also use this value to query the status of the request. For more information, see <a>GetChangeTokenStatus</a>.<br/>RateLimit:  The maximum number of requests, which have an identical value in the field that is specified by <code>RateKey</code>, allowed in a five-minute period. If the number of requests exceeds the <code>RateLimit</code> and the other predicates specified in the rule are also met, AWS WAF triggers the action that is specified for this rule.<br/>RateKey:  The field that AWS WAF uses to determine if requests are likely arriving from a single source and thus subject to rate monitoring. The only valid value for <code>RateKey</code> is <code>IP</code>. <code>IP</code> indicates that requests that arrive from the same IP address are subject to the <code>RateLimit</code> that is specified in the <code>RateBasedRule</code>.<br/>MetricName:  A friendly name or description for the metrics for this <code>RateBasedRule</code>. The name can contain only alphanumeric characters (A-Z, a-z, 0-9), with maximum length 128 and minimum length one. It can't contain whitespace or metric names reserved for AWS WAF, including "All" and "Default_Action." You can't change the name of the metric after you create the <code>RateBasedRule</code>.<br/>Name:  A friendly name or description of the <a>RateBasedRule</a>. You can't change the name of a <code>RateBasedRule</code> after you create it.<br/>
        :return: ChangeToken:  The <code>ChangeToken</code> that you used to submit the <code>CreateRateBasedRule</code> request. You can also use this value to query the status of the request. For more information, see <a>GetChangeTokenStatus</a>.<br/>Rule:  The <a>RateBasedRule</a> that is returned in the <code>CreateRateBasedRule</code> response.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RateLimit</i> The maximum number of requests, which have an identical value in the field specified by the <code>RateKey</code>, allowed in a five-minute period. If the number of requests exceeds the <code>RateLimit</code> and the other predicates specified in the rule are also met, AWS WAF triggers the action that is specified for this rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RateKey</i> The field that AWS WAF uses to determine if requests are likely arriving from single source and thus subject to rate monitoring. The only valid value for <code>RateKey</code> is <code>IP</code>. <code>IP</code> indicates that requests arriving from the same IP address are subject to the <code>RateLimit</code> that is specified in the <code>RateBasedRule</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MatchPredicates</i> The <code>Predicates</code> object contains one <code>Predicate</code> element for each <a>ByteMatchSet</a>, <a>IPSet</a>, or <a>SqlInjectionMatchSet</a> object that you want to include in a <code>RateBasedRule</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MetricName</i> A friendly name or description for the metrics for a <code>RateBasedRule</code>. The name can contain only alphanumeric characters (A-Z, a-z, 0-9), with maximum length 128 and minimum length one. It can't contain whitespace or metric names reserved for AWS WAF, including "All" and "Default_Action." You can't change the name of the metric after you create the <code>RateBasedRule</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A friendly name or description for a <code>RateBasedRule</code>. You can't change the name of a <code>RateBasedRule</code> after you create it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RuleId</i> A unique identifier for a <code>RateBasedRule</code>. You use <code>RuleId</code> to get more information about a <code>RateBasedRule</code> (see <a>GetRateBasedRule</a>), update a <code>RateBasedRule</code> (see <a>UpdateRateBasedRule</a>), insert a <code>RateBasedRule</code> into a <code>WebACL</code> or delete one from a <code>WebACL</code> (see <a>UpdateWebACL</a>), or delete a <code>RateBasedRule</code> from AWS WAF (see <a>DeleteRateBasedRule</a>).<br/>        """
        pass

    def create_regex_match_set(self, ChangeToken: str, Name: str) -> CreateRegexMatchSetResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Creates a <a>RegexMatchSet</a>. You then use <a>UpdateRegexMatchSet</a> to identify the part of a web request that you want AWS WAF to inspect, such as the values of the <code>User-Agent</code> header or the query string. For example, you can create a <code>RegexMatchSet</code> that contains a <code>RegexMatchTuple</code> that looks for any requests with <code>User-Agent</code> headers that match a <code>RegexPatternSet</code> with pattern <code>B[a@]dB[o0]t</code>. You can then configure AWS WAF to reject those requests. To create and configure a <code>RegexMatchSet</code>, perform the following steps: <ol> <li> Use <a>GetChangeToken</a> to get the change token that you provide in the <code>ChangeToken</code> parameter of a <code>CreateRegexMatchSet</code> request. </li> <li> Submit a <code>CreateRegexMatchSet</code> request. </li> <li> Use <code>GetChangeToken</code> to get the change token that you provide in the <code>ChangeToken</code> parameter of an <code>UpdateRegexMatchSet</code> request. </li> <li> Submit an <a>UpdateRegexMatchSet</a> request to specify the part of the request that you want AWS WAF to inspect (for example, the header or the URI) and the value, using a <code>RegexPatternSet</code>, that you want AWS WAF to watch for. </li> </ol> For more information about how to use the AWS WAF API to allow or block HTTP requests, see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/">AWS WAF Developer Guide</a>.

        :param self:
        :param ChangeToken:  The value returned by the most recent call to <a>GetChangeToken</a>.<br/>Name:  A friendly name or description of the <a>RegexMatchSet</a>. You can't change <code>Name</code> after you create a <code>RegexMatchSet</code>.<br/>
        :return: ChangeToken:  The <code>ChangeToken</code> that you used to submit the <code>CreateRegexMatchSet</code> request. You can also use this value to query the status of the request. For more information, see <a>GetChangeTokenStatus</a>.<br/>RegexMatchSet:  A <a>RegexMatchSet</a> that contains no <code>RegexMatchTuple</code> objects.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RegexMatchTuples</i> Contains an array of <a>RegexMatchTuple</a> objects. Each <code>RegexMatchTuple</code> object contains:  <ul> <li> The part of a web request that you want AWS WAF to inspect, such as a query string or the value of the <code>User-Agent</code> header.  </li> <li> The identifier of the pattern (a regular expression) that you want AWS WAF to look for. For more information, see <a>RegexPatternSet</a>. </li> <li> Whether to perform any conversions on the request, such as converting it to lowercase, before inspecting it for the specified string. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A friendly name or description of the <a>RegexMatchSet</a>. You can't change <code>Name</code> after you create a <code>RegexMatchSet</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RegexMatchSetId</i> The <code>RegexMatchSetId</code> for a <code>RegexMatchSet</code>. You use <code>RegexMatchSetId</code> to get information about a <code>RegexMatchSet</code> (see <a>GetRegexMatchSet</a>), update a <code>RegexMatchSet</code> (see <a>UpdateRegexMatchSet</a>), insert a <code>RegexMatchSet</code> into a <code>Rule</code> or delete one from a <code>Rule</code> (see <a>UpdateRule</a>), and delete a <code>RegexMatchSet</code> from AWS WAF (see <a>DeleteRegexMatchSet</a>).  <code>RegexMatchSetId</code> is returned by <a>CreateRegexMatchSet</a> and by <a>ListRegexMatchSets</a>.<br/>        """
        pass

    def create_regex_pattern_set(self, ChangeToken: str, Name: str) -> CreateRegexPatternSetResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Creates a <code>RegexPatternSet</code>. You then use <a>UpdateRegexPatternSet</a> to specify the regular expression (regex) pattern that you want AWS WAF to search for, such as <code>B[a@]dB[o0]t</code>. You can then configure AWS WAF to reject those requests. To create and configure a <code>RegexPatternSet</code>, perform the following steps: <ol> <li> Use <a>GetChangeToken</a> to get the change token that you provide in the <code>ChangeToken</code> parameter of a <code>CreateRegexPatternSet</code> request. </li> <li> Submit a <code>CreateRegexPatternSet</code> request. </li> <li> Use <code>GetChangeToken</code> to get the change token that you provide in the <code>ChangeToken</code> parameter of an <code>UpdateRegexPatternSet</code> request. </li> <li> Submit an <a>UpdateRegexPatternSet</a> request to specify the string that you want AWS WAF to watch for. </li> </ol> For more information about how to use the AWS WAF API to allow or block HTTP requests, see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/">AWS WAF Developer Guide</a>.

        :param self:
        :param ChangeToken:  The value returned by the most recent call to <a>GetChangeToken</a>.<br/>Name:  A friendly name or description of the <a>RegexPatternSet</a>. You can't change <code>Name</code> after you create a <code>RegexPatternSet</code>.<br/>
        :return: ChangeToken:  The <code>ChangeToken</code> that you used to submit the <code>CreateRegexPatternSet</code> request. You can also use this value to query the status of the request. For more information, see <a>GetChangeTokenStatus</a>.<br/>RegexPatternSet:  A <a>RegexPatternSet</a> that contains no objects.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RegexPatternStrings</i> Specifies the regular expression (regex) patterns that you want AWS WAF to search for, such as <code>B[a@]dB[o0]t</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A friendly name or description of the <a>RegexPatternSet</a>. You can't change <code>Name</code> after you create a <code>RegexPatternSet</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RegexPatternSetId</i> The identifier for the <code>RegexPatternSet</code>. You use <code>RegexPatternSetId</code> to get information about a <code>RegexPatternSet</code>, update a <code>RegexPatternSet</code>, remove a <code>RegexPatternSet</code> from a <code>RegexMatchSet</code>, and delete a <code>RegexPatternSet</code> from AWS WAF.  <code>RegexMatchSetId</code> is returned by <a>CreateRegexPatternSet</a> and by <a>ListRegexPatternSets</a>.<br/>        """
        pass

    def create_rule(self, ChangeToken: str, MetricName: str, Name: str, Tags: List[Tag]=None) -> CreateRuleResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Creates a <code>Rule</code>, which contains the <code>IPSet</code> objects, <code>ByteMatchSet</code> objects, and other predicates that identify the requests that you want to block. If you add more than one predicate to a <code>Rule</code>, a request must match all of the specifications to be allowed or blocked. For example, suppose that you add the following to a <code>Rule</code>: <ul> <li> An <code>IPSet</code> that matches the IP address <code>192.0.2.44/32</code>  </li> <li> A <code>ByteMatchSet</code> that matches <code>BadBot</code> in the <code>User-Agent</code> header </li> </ul> You then add the <code>Rule</code> to a <code>WebACL</code> and specify that you want to blocks requests that satisfy the <code>Rule</code>. For a request to be blocked, it must come from the IP address 192.0.2.44 <i>and</i> the <code>User-Agent</code> header in the request must contain the value <code>BadBot</code>. To create and configure a <code>Rule</code>, perform the following steps: <ol> <li> Create and update the predicates that you want to include in the <code>Rule</code>. For more information, see <a>CreateByteMatchSet</a>, <a>CreateIPSet</a>, and <a>CreateSqlInjectionMatchSet</a>. </li> <li> Use <a>GetChangeToken</a> to get the change token that you provide in the <code>ChangeToken</code> parameter of a <code>CreateRule</code> request. </li> <li> Submit a <code>CreateRule</code> request. </li> <li> Use <code>GetChangeToken</code> to get the change token that you provide in the <code>ChangeToken</code> parameter of an <a>UpdateRule</a> request. </li> <li> Submit an <code>UpdateRule</code> request to specify the predicates that you want to include in the <code>Rule</code>. </li> <li> Create and update a <code>WebACL</code> that contains the <code>Rule</code>. For more information, see <a>CreateWebACL</a>. </li> </ol> For more information about how to use the AWS WAF API to allow or block HTTP requests, see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/">AWS WAF Developer Guide</a>.

        :param self:
        :param Tags:  <p/><br/>ChangeToken:  The value returned by the most recent call to <a>GetChangeToken</a>.<br/>MetricName:  A friendly name or description for the metrics for this <code>Rule</code>. The name can contain only alphanumeric characters (A-Z, a-z, 0-9), with maximum length 128 and minimum length one. It can't contain whitespace or metric names reserved for AWS WAF, including "All" and "Default_Action." You can't change the name of the metric after you create the <code>Rule</code>.<br/>Name:  A friendly name or description of the <a>Rule</a>. You can't change the name of a <code>Rule</code> after you create it.<br/>
        :return: ChangeToken:  The <code>ChangeToken</code> that you used to submit the <code>CreateRule</code> request. You can also use this value to query the status of the request. For more information, see <a>GetChangeTokenStatus</a>.<br/>Rule:  The <a>Rule</a> returned in the <code>CreateRule</code> response.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Predicates</i> The <code>Predicates</code> object contains one <code>Predicate</code> element for each <a>ByteMatchSet</a>, <a>IPSet</a>, or <a>SqlInjectionMatchSet</a> object that you want to include in a <code>Rule</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MetricName</i> A friendly name or description for the metrics for this <code>Rule</code>. The name can contain only alphanumeric characters (A-Z, a-z, 0-9), with maximum length 128 and minimum length one. It can't contain whitespace or metric names reserved for AWS WAF, including "All" and "Default_Action." You can't change <code>MetricName</code> after you create the <code>Rule</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The friendly name or description for the <code>Rule</code>. You can't change the name of a <code>Rule</code> after you create it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RuleId</i> A unique identifier for a <code>Rule</code>. You use <code>RuleId</code> to get more information about a <code>Rule</code> (see <a>GetRule</a>), update a <code>Rule</code> (see <a>UpdateRule</a>), insert a <code>Rule</code> into a <code>WebACL</code> or delete a one from a <code>WebACL</code> (see <a>UpdateWebACL</a>), or delete a <code>Rule</code> from AWS WAF (see <a>DeleteRule</a>).  <code>RuleId</code> is returned by <a>CreateRule</a> and by <a>ListRules</a>.<br/>        """
        pass

    def create_rule_group(self, ChangeToken: str, MetricName: str, Name: str, Tags: List[Tag]=None) -> CreateRuleGroupResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Creates a <code>RuleGroup</code>. A rule group is a collection of predefined rules that you add to a web ACL. You use <a>UpdateRuleGroup</a> to add rules to the rule group. Rule groups are subject to the following limits: <ul> <li> Three rule groups per account. You can request an increase to this limit by contacting customer support. </li> <li> One rule group per web ACL. </li> <li> Ten rules per rule group. </li> </ul> For more information about how to use the AWS WAF API to allow or block HTTP requests, see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/">AWS WAF Developer Guide</a>.

        :param self:
        :param Tags:  <p/><br/>ChangeToken:  The value returned by the most recent call to <a>GetChangeToken</a>.<br/>MetricName:  A friendly name or description for the metrics for this <code>RuleGroup</code>. The name can contain only alphanumeric characters (A-Z, a-z, 0-9), with maximum length 128 and minimum length one. It can't contain whitespace or metric names reserved for AWS WAF, including "All" and "Default_Action." You can't change the name of the metric after you create the <code>RuleGroup</code>.<br/>Name:  A friendly name or description of the <a>RuleGroup</a>. You can't change <code>Name</code> after you create a <code>RuleGroup</code>.<br/>
        :return: ChangeToken:  The <code>ChangeToken</code> that you used to submit the <code>CreateRuleGroup</code> request. You can also use this value to query the status of the request. For more information, see <a>GetChangeTokenStatus</a>.<br/>RuleGroup:  An empty <a>RuleGroup</a>.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MetricName</i> A friendly name or description for the metrics for this <code>RuleGroup</code>. The name can contain only alphanumeric characters (A-Z, a-z, 0-9), with maximum length 128 and minimum length one. It can't contain whitespace or metric names reserved for AWS WAF, including "All" and "Default_Action." You can't change the name of the metric after you create the <code>RuleGroup</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The friendly name or description for the <code>RuleGroup</code>. You can't change the name of a <code>RuleGroup</code> after you create it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RuleGroupId</i> A unique identifier for a <code>RuleGroup</code>. You use <code>RuleGroupId</code> to get more information about a <code>RuleGroup</code> (see <a>GetRuleGroup</a>), update a <code>RuleGroup</code> (see <a>UpdateRuleGroup</a>), insert a <code>RuleGroup</code> into a <code>WebACL</code> or delete a one from a <code>WebACL</code> (see <a>UpdateWebACL</a>), or delete a <code>RuleGroup</code> from AWS WAF (see <a>DeleteRuleGroup</a>).  <code>RuleGroupId</code> is returned by <a>CreateRuleGroup</a> and by <a>ListRuleGroups</a>.<br/>        """
        pass

    def create_size_constraint_set(self, ChangeToken: str, Name: str) -> CreateSizeConstraintSetResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Creates a <code>SizeConstraintSet</code>. You then use <a>UpdateSizeConstraintSet</a> to identify the part of a web request that you want AWS WAF to check for length, such as the length of the <code>User-Agent</code> header or the length of the query string. For example, you can create a <code>SizeConstraintSet</code> that matches any requests that have a query string that is longer than 100 bytes. You can then configure AWS WAF to reject those requests. To create and configure a <code>SizeConstraintSet</code>, perform the following steps: <ol> <li> Use <a>GetChangeToken</a> to get the change token that you provide in the <code>ChangeToken</code> parameter of a <code>CreateSizeConstraintSet</code> request. </li> <li> Submit a <code>CreateSizeConstraintSet</code> request. </li> <li> Use <code>GetChangeToken</code> to get the change token that you provide in the <code>ChangeToken</code> parameter of an <code>UpdateSizeConstraintSet</code> request. </li> <li> Submit an <a>UpdateSizeConstraintSet</a> request to specify the part of the request that you want AWS WAF to inspect (for example, the header or the URI) and the value that you want AWS WAF to watch for. </li> </ol> For more information about how to use the AWS WAF API to allow or block HTTP requests, see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/">AWS WAF Developer Guide</a>.

        :param self:
        :param ChangeToken:  The value returned by the most recent call to <a>GetChangeToken</a>.<br/>Name:  A friendly name or description of the <a>SizeConstraintSet</a>. You can't change <code>Name</code> after you create a <code>SizeConstraintSet</code>.<br/>
        :return: ChangeToken:  The <code>ChangeToken</code> that you used to submit the <code>CreateSizeConstraintSet</code> request. You can also use this value to query the status of the request. For more information, see <a>GetChangeTokenStatus</a>.<br/>SizeConstraintSet:  A <a>SizeConstraintSet</a> that contains no <code>SizeConstraint</code> objects.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SizeConstraints</i> Specifies the parts of web requests that you want to inspect the size of.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name, if any, of the <code>SizeConstraintSet</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SizeConstraintSetId</i> A unique identifier for a <code>SizeConstraintSet</code>. You use <code>SizeConstraintSetId</code> to get information about a <code>SizeConstraintSet</code> (see <a>GetSizeConstraintSet</a>), update a <code>SizeConstraintSet</code> (see <a>UpdateSizeConstraintSet</a>), insert a <code>SizeConstraintSet</code> into a <code>Rule</code> or delete one from a <code>Rule</code> (see <a>UpdateRule</a>), and delete a <code>SizeConstraintSet</code> from AWS WAF (see <a>DeleteSizeConstraintSet</a>).  <code>SizeConstraintSetId</code> is returned by <a>CreateSizeConstraintSet</a> and by <a>ListSizeConstraintSets</a>.<br/>        """
        pass

    def create_sql_injection_match_set(self, ChangeToken: str, Name: str) -> CreateSqlInjectionMatchSetResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Creates a <a>SqlInjectionMatchSet</a>, which you use to allow, block, or count requests that contain snippets of SQL code in a specified part of web requests. AWS WAF searches for character sequences that are likely to be malicious strings. To create and configure a <code>SqlInjectionMatchSet</code>, perform the following steps: <ol> <li> Use <a>GetChangeToken</a> to get the change token that you provide in the <code>ChangeToken</code> parameter of a <code>CreateSqlInjectionMatchSet</code> request. </li> <li> Submit a <code>CreateSqlInjectionMatchSet</code> request. </li> <li> Use <code>GetChangeToken</code> to get the change token that you provide in the <code>ChangeToken</code> parameter of an <a>UpdateSqlInjectionMatchSet</a> request. </li> <li> Submit an <a>UpdateSqlInjectionMatchSet</a> request to specify the parts of web requests in which you want to allow, block, or count malicious SQL code. </li> </ol> For more information about how to use the AWS WAF API to allow or block HTTP requests, see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/">AWS WAF Developer Guide</a>.

        :param self:
        :param ChangeToken:  The value returned by the most recent call to <a>GetChangeToken</a>.<br/>Name:  A friendly name or description for the <a>SqlInjectionMatchSet</a> that you're creating. You can't change <code>Name</code> after you create the <code>SqlInjectionMatchSet</code>.<br/>
        :return: ChangeToken:  The <code>ChangeToken</code> that you used to submit the <code>CreateSqlInjectionMatchSet</code> request. You can also use this value to query the status of the request. For more information, see <a>GetChangeTokenStatus</a>.<br/>SqlInjectionMatchSet:  A <a>SqlInjectionMatchSet</a>.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SqlInjectionMatchTuples</i> Specifies the parts of web requests that you want to inspect for snippets of malicious SQL code.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name, if any, of the <code>SqlInjectionMatchSet</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SqlInjectionMatchSetId</i> A unique identifier for a <code>SqlInjectionMatchSet</code>. You use <code>SqlInjectionMatchSetId</code> to get information about a <code>SqlInjectionMatchSet</code> (see <a>GetSqlInjectionMatchSet</a>), update a <code>SqlInjectionMatchSet</code> (see <a>UpdateSqlInjectionMatchSet</a>), insert a <code>SqlInjectionMatchSet</code> into a <code>Rule</code> or delete one from a <code>Rule</code> (see <a>UpdateRule</a>), and delete a <code>SqlInjectionMatchSet</code> from AWS WAF (see <a>DeleteSqlInjectionMatchSet</a>).  <code>SqlInjectionMatchSetId</code> is returned by <a>CreateSqlInjectionMatchSet</a> and by <a>ListSqlInjectionMatchSets</a>.<br/>        """
        pass

    def create_web_acl(self, ChangeToken: str, DefaultAction: WafAction, MetricName: str, Name: str, Tags: List[Tag]=None) -> CreateWebACLResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Creates a <code>WebACL</code>, which contains the <code>Rules</code> that identify the CloudFront web requests that you want to allow, block, or count. AWS WAF evaluates <code>Rules</code> in order based on the value of <code>Priority</code> for each <code>Rule</code>. You also specify a default action, either <code>ALLOW</code> or <code>BLOCK</code>. If a web request doesn't match any of the <code>Rules</code> in a <code>WebACL</code>, AWS WAF responds to the request with the default action.  To create and configure a <code>WebACL</code>, perform the following steps: <ol> <li> Create and update the <code>ByteMatchSet</code> objects and other predicates that you want to include in <code>Rules</code>. For more information, see <a>CreateByteMatchSet</a>, <a>UpdateByteMatchSet</a>, <a>CreateIPSet</a>, <a>UpdateIPSet</a>, <a>CreateSqlInjectionMatchSet</a>, and <a>UpdateSqlInjectionMatchSet</a>. </li> <li> Create and update the <code>Rules</code> that you want to include in the <code>WebACL</code>. For more information, see <a>CreateRule</a> and <a>UpdateRule</a>. </li> <li> Use <a>GetChangeToken</a> to get the change token that you provide in the <code>ChangeToken</code> parameter of a <code>CreateWebACL</code> request. </li> <li> Submit a <code>CreateWebACL</code> request. </li> <li> Use <code>GetChangeToken</code> to get the change token that you provide in the <code>ChangeToken</code> parameter of an <a>UpdateWebACL</a> request. </li> <li> Submit an <a>UpdateWebACL</a> request to specify the <code>Rules</code> that you want to include in the <code>WebACL</code>, to specify the default action, and to associate the <code>WebACL</code> with a CloudFront distribution. </li> </ol> For more information about how to use the AWS WAF API, see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/">AWS WAF Developer Guide</a>.

        :param self:
        :param Tags:  <p/><br/>ChangeToken:  The value returned by the most recent call to <a>GetChangeToken</a>.<br/>DefaultAction:  The action that you want AWS WAF to take when a request doesn't match the criteria specified in any of the <code>Rule</code> objects that are associated with the <code>WebACL</code>.:<br/>MetricName:  A friendly name or description for the metrics for this <code>WebACL</code>.The name can contain only alphanumeric characters (A-Z, a-z, 0-9), with maximum length 128 and minimum length one. It can't contain whitespace or metric names reserved for AWS WAF, including "All" and "Default_Action." You can't change <code>MetricName</code> after you create the <code>WebACL</code>.<br/>Name:  A friendly name or description of the <a>WebACL</a>. You can't change <code>Name</code> after you create the <code>WebACL</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> Specifies how you want AWS WAF to respond to requests that match the settings in a <code>Rule</code>. Valid settings include the following: <ul> <li>  <code>ALLOW</code>: AWS WAF allows requests </li> <li>  <code>BLOCK</code>: AWS WAF blocks requests </li> <li>  <code>COUNT</code>: AWS WAF increments a counter of the requests that match all of the conditions in the rule. AWS WAF then continues to inspect the web request based on the remaining rules in the web ACL. You can't specify <code>COUNT</code> for the default action for a <code>WebACL</code>. </li> </ul><br/>
        :return: ChangeToken:  The <code>ChangeToken</code> that you used to submit the <code>CreateWebACL</code> request. You can also use this value to query the status of the request. For more information, see <a>GetChangeTokenStatus</a>.<br/>WebACL:  The <a>WebACL</a> returned in the <code>CreateWebACL</code> response.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WebACLArn</i> Tha Amazon Resource Name (ARN) of the web ACL.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Rules</i> An array that contains the action for each <code>Rule</code> in a <code>WebACL</code>, the priority of the <code>Rule</code>, and the ID of the <code>Rule</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultAction</i> The action to perform if none of the <code>Rules</code> contained in the <code>WebACL</code> match. The action is specified by the <a>WafAction</a> object.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DefaultAction</b>: The action to perform if none of the <code>Rules</code> contained in the <code>WebACL</code> match. The action is specified by the <a>WafAction</a> object.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MetricName</i> A friendly name or description for the metrics for this <code>WebACL</code>. The name can contain only alphanumeric characters (A-Z, a-z, 0-9), with maximum length 128 and minimum length one. It can't contain whitespace or metric names reserved for AWS WAF, including "All" and "Default_Action." You can't change <code>MetricName</code> after you create the <code>WebACL</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A friendly name or description of the <code>WebACL</code>. You can't change the name of a <code>WebACL</code> after you create it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WebACLId</i> A unique identifier for a <code>WebACL</code>. You use <code>WebACLId</code> to get information about a <code>WebACL</code> (see <a>GetWebACL</a>), update a <code>WebACL</code> (see <a>UpdateWebACL</a>), and delete a <code>WebACL</code> from AWS WAF (see <a>DeleteWebACL</a>).  <code>WebACLId</code> is returned by <a>CreateWebACL</a> and by <a>ListWebACLs</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> Specifies how you want AWS WAF to respond to requests that match the settings in a <code>Rule</code>. Valid settings include the following: <ul> <li>  <code>ALLOW</code>: AWS WAF allows requests </li> <li>  <code>BLOCK</code>: AWS WAF blocks requests </li> <li>  <code>COUNT</code>: AWS WAF increments a counter of the requests that match all of the conditions in the rule. AWS WAF then continues to inspect the web request based on the remaining rules in the web ACL. You can't specify <code>COUNT</code> for the default action for a <code>WebACL</code>. </li> </ul><br/>        """
        pass

    def create_web_acl_migration_stack(self, IgnoreUnsupportedType: IgnoreUnsupportedType, S3BucketName: str, WebACLId: str) -> CreateWebACLMigrationStackResponse:
        r"""Creates an AWS CloudFormation WAFV2 template for the specified web ACL in the specified Amazon S3 bucket. Then, in CloudFormation, you create a stack from the template, to create the web ACL and its resources in AWS WAFV2. Use this to migrate your AWS WAF Classic web ACL to the latest version of AWS WAF. This is part of a larger migration procedure for web ACLs from AWS WAF Classic to the latest version of AWS WAF. For the full procedure, including caveats and manual steps to complete the migration and switch over to the new web ACL, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-migrating-from-classic.html">Migrating your AWS WAF Classic resources to AWS WAF</a> in the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. 

        :param self:
        :param IgnoreUnsupportedType:  Indicates whether to exclude entities that can't be migrated or to stop the migration. Set this to true to ignore unsupported entities in the web ACL during the migration. Otherwise, if AWS WAF encounters unsupported entities, it stops the process and throws an exception. <br/>S3BucketName:  The name of the Amazon S3 bucket to store the CloudFormation template in. The S3 bucket must be configured as follows for the migration:  <ul> <li> The bucket name must start with <code>aws-waf-migration-</code>. For example, <code>aws-waf-migration-my-web-acl</code>. </li> <li> The bucket must be in the Region where you are deploying the template. For example, for a web ACL in us-west-2, you must use an Amazon S3 bucket in us-west-2 and you must deploy the template stack to us-west-2.  </li> <li> The bucket policies must permit the migration process to write data. For listings of the bucket policies, see the Examples section.  </li> </ul><br/>WebACLId:  The UUID of the WAF Classic web ACL that you want to migrate to WAF v2.<br/>
        :return: S3ObjectUrl:  The URL of the template created in Amazon S3. <br/>        """
        pass

    def create_xss_match_set(self, ChangeToken: str, Name: str) -> CreateXssMatchSetResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Creates an <a>XssMatchSet</a>, which you use to allow, block, or count requests that contain cross-site scripting attacks in the specified part of web requests. AWS WAF searches for character sequences that are likely to be malicious strings. To create and configure an <code>XssMatchSet</code>, perform the following steps: <ol> <li> Use <a>GetChangeToken</a> to get the change token that you provide in the <code>ChangeToken</code> parameter of a <code>CreateXssMatchSet</code> request. </li> <li> Submit a <code>CreateXssMatchSet</code> request. </li> <li> Use <code>GetChangeToken</code> to get the change token that you provide in the <code>ChangeToken</code> parameter of an <a>UpdateXssMatchSet</a> request. </li> <li> Submit an <a>UpdateXssMatchSet</a> request to specify the parts of web requests in which you want to allow, block, or count cross-site scripting attacks. </li> </ol> For more information about how to use the AWS WAF API to allow or block HTTP requests, see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/">AWS WAF Developer Guide</a>.

        :param self:
        :param ChangeToken:  The value returned by the most recent call to <a>GetChangeToken</a>.<br/>Name:  A friendly name or description for the <a>XssMatchSet</a> that you're creating. You can't change <code>Name</code> after you create the <code>XssMatchSet</code>.<br/>
        :return: ChangeToken:  The <code>ChangeToken</code> that you used to submit the <code>CreateXssMatchSet</code> request. You can also use this value to query the status of the request. For more information, see <a>GetChangeTokenStatus</a>.<br/>XssMatchSet:  An <a>XssMatchSet</a>.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>XssMatchTuples</i> Specifies the parts of web requests that you want to inspect for cross-site scripting attacks.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name, if any, of the <code>XssMatchSet</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>XssMatchSetId</i> A unique identifier for an <code>XssMatchSet</code>. You use <code>XssMatchSetId</code> to get information about an <code>XssMatchSet</code> (see <a>GetXssMatchSet</a>), update an <code>XssMatchSet</code> (see <a>UpdateXssMatchSet</a>), insert an <code>XssMatchSet</code> into a <code>Rule</code> or delete one from a <code>Rule</code> (see <a>UpdateRule</a>), and delete an <code>XssMatchSet</code> from AWS WAF (see <a>DeleteXssMatchSet</a>).  <code>XssMatchSetId</code> is returned by <a>CreateXssMatchSet</a> and by <a>ListXssMatchSets</a>.<br/>        """
        pass

    def delete_byte_match_set(self, ChangeToken: str, ByteMatchSetId: str) -> DeleteByteMatchSetResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Permanently deletes a <a>ByteMatchSet</a>. You can't delete a <code>ByteMatchSet</code> if it's still used in any <code>Rules</code> or if it still includes any <a>ByteMatchTuple</a> objects (any filters). If you just want to remove a <code>ByteMatchSet</code> from a <code>Rule</code>, use <a>UpdateRule</a>. To permanently delete a <code>ByteMatchSet</code>, perform the following steps: <ol> <li> Update the <code>ByteMatchSet</code> to remove filters, if any. For more information, see <a>UpdateByteMatchSet</a>. </li> <li> Use <a>GetChangeToken</a> to get the change token that you provide in the <code>ChangeToken</code> parameter of a <code>DeleteByteMatchSet</code> request. </li> <li> Submit a <code>DeleteByteMatchSet</code> request. </li> </ol>

        :param self:
        :param ChangeToken:  The value returned by the most recent call to <a>GetChangeToken</a>.<br/>ByteMatchSetId:  The <code>ByteMatchSetId</code> of the <a>ByteMatchSet</a> that you want to delete. <code>ByteMatchSetId</code> is returned by <a>CreateByteMatchSet</a> and by <a>ListByteMatchSets</a>.<br/>
        :return: ChangeToken:  The <code>ChangeToken</code> that you used to submit the <code>DeleteByteMatchSet</code> request. You can also use this value to query the status of the request. For more information, see <a>GetChangeTokenStatus</a>.<br/>        """
        pass

    def delete_geo_match_set(self, ChangeToken: str, GeoMatchSetId: str) -> DeleteGeoMatchSetResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Permanently deletes a <a>GeoMatchSet</a>. You can't delete a <code>GeoMatchSet</code> if it's still used in any <code>Rules</code> or if it still includes any countries. If you just want to remove a <code>GeoMatchSet</code> from a <code>Rule</code>, use <a>UpdateRule</a>. To permanently delete a <code>GeoMatchSet</code> from AWS WAF, perform the following steps: <ol> <li> Update the <code>GeoMatchSet</code> to remove any countries. For more information, see <a>UpdateGeoMatchSet</a>. </li> <li> Use <a>GetChangeToken</a> to get the change token that you provide in the <code>ChangeToken</code> parameter of a <code>DeleteGeoMatchSet</code> request. </li> <li> Submit a <code>DeleteGeoMatchSet</code> request. </li> </ol>

        :param self:
        :param ChangeToken:  The value returned by the most recent call to <a>GetChangeToken</a>.<br/>GeoMatchSetId:  The <code>GeoMatchSetID</code> of the <a>GeoMatchSet</a> that you want to delete. <code>GeoMatchSetId</code> is returned by <a>CreateGeoMatchSet</a> and by <a>ListGeoMatchSets</a>.<br/>
        :return: ChangeToken:  The <code>ChangeToken</code> that you used to submit the <code>DeleteGeoMatchSet</code> request. You can also use this value to query the status of the request. For more information, see <a>GetChangeTokenStatus</a>.<br/>        """
        pass

    def delete_ip_set(self, ChangeToken: str, IPSetId: str) -> DeleteIPSetResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Permanently deletes an <a>IPSet</a>. You can't delete an <code>IPSet</code> if it's still used in any <code>Rules</code> or if it still includes any IP addresses. If you just want to remove an <code>IPSet</code> from a <code>Rule</code>, use <a>UpdateRule</a>. To permanently delete an <code>IPSet</code> from AWS WAF, perform the following steps: <ol> <li> Update the <code>IPSet</code> to remove IP address ranges, if any. For more information, see <a>UpdateIPSet</a>. </li> <li> Use <a>GetChangeToken</a> to get the change token that you provide in the <code>ChangeToken</code> parameter of a <code>DeleteIPSet</code> request. </li> <li> Submit a <code>DeleteIPSet</code> request. </li> </ol>

        :param self:
        :param ChangeToken:  The value returned by the most recent call to <a>GetChangeToken</a>.<br/>IPSetId:  The <code>IPSetId</code> of the <a>IPSet</a> that you want to delete. <code>IPSetId</code> is returned by <a>CreateIPSet</a> and by <a>ListIPSets</a>.<br/>
        :return: ChangeToken:  The <code>ChangeToken</code> that you used to submit the <code>DeleteIPSet</code> request. You can also use this value to query the status of the request. For more information, see <a>GetChangeTokenStatus</a>.<br/>        """
        pass

    def delete_logging_configuration(self, ResourceArn: str) -> DeleteLoggingConfigurationResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Permanently deletes the <a>LoggingConfiguration</a> from the specified web ACL.

        :param self:
        :param ResourceArn:  The Amazon Resource Name (ARN) of the web ACL from which you want to delete the <a>LoggingConfiguration</a>.<br/>
        :return:         """
        pass

    def delete_permission_policy(self, ResourceArn: str) -> DeletePermissionPolicyResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Permanently deletes an IAM policy from the specified RuleGroup. The user making the request must be the owner of the RuleGroup.

        :param self:
        :param ResourceArn:  The Amazon Resource Name (ARN) of the RuleGroup from which you want to delete the policy. The user making the request must be the owner of the RuleGroup.<br/>
        :return:         """
        pass

    def delete_rate_based_rule(self, ChangeToken: str, RuleId: str) -> DeleteRateBasedRuleResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Permanently deletes a <a>RateBasedRule</a>. You can't delete a rule if it's still used in any <code>WebACL</code> objects or if it still includes any predicates, such as <code>ByteMatchSet</code> objects. If you just want to remove a rule from a <code>WebACL</code>, use <a>UpdateWebACL</a>. To permanently delete a <code>RateBasedRule</code> from AWS WAF, perform the following steps: <ol> <li> Update the <code>RateBasedRule</code> to remove predicates, if any. For more information, see <a>UpdateRateBasedRule</a>. </li> <li> Use <a>GetChangeToken</a> to get the change token that you provide in the <code>ChangeToken</code> parameter of a <code>DeleteRateBasedRule</code> request. </li> <li> Submit a <code>DeleteRateBasedRule</code> request. </li> </ol>

        :param self:
        :param ChangeToken:  The value returned by the most recent call to <a>GetChangeToken</a>.<br/>RuleId:  The <code>RuleId</code> of the <a>RateBasedRule</a> that you want to delete. <code>RuleId</code> is returned by <a>CreateRateBasedRule</a> and by <a>ListRateBasedRules</a>.<br/>
        :return: ChangeToken:  The <code>ChangeToken</code> that you used to submit the <code>DeleteRateBasedRule</code> request. You can also use this value to query the status of the request. For more information, see <a>GetChangeTokenStatus</a>.<br/>        """
        pass

    def delete_regex_match_set(self, ChangeToken: str, RegexMatchSetId: str) -> DeleteRegexMatchSetResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Permanently deletes a <a>RegexMatchSet</a>. You can't delete a <code>RegexMatchSet</code> if it's still used in any <code>Rules</code> or if it still includes any <code>RegexMatchTuples</code> objects (any filters). If you just want to remove a <code>RegexMatchSet</code> from a <code>Rule</code>, use <a>UpdateRule</a>. To permanently delete a <code>RegexMatchSet</code>, perform the following steps: <ol> <li> Update the <code>RegexMatchSet</code> to remove filters, if any. For more information, see <a>UpdateRegexMatchSet</a>. </li> <li> Use <a>GetChangeToken</a> to get the change token that you provide in the <code>ChangeToken</code> parameter of a <code>DeleteRegexMatchSet</code> request. </li> <li> Submit a <code>DeleteRegexMatchSet</code> request. </li> </ol>

        :param self:
        :param ChangeToken:  The value returned by the most recent call to <a>GetChangeToken</a>.<br/>RegexMatchSetId:  The <code>RegexMatchSetId</code> of the <a>RegexMatchSet</a> that you want to delete. <code>RegexMatchSetId</code> is returned by <a>CreateRegexMatchSet</a> and by <a>ListRegexMatchSets</a>.<br/>
        :return: ChangeToken:  The <code>ChangeToken</code> that you used to submit the <code>DeleteRegexMatchSet</code> request. You can also use this value to query the status of the request. For more information, see <a>GetChangeTokenStatus</a>.<br/>        """
        pass

    def delete_regex_pattern_set(self, ChangeToken: str, RegexPatternSetId: str) -> DeleteRegexPatternSetResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Permanently deletes a <a>RegexPatternSet</a>. You can't delete a <code>RegexPatternSet</code> if it's still used in any <code>RegexMatchSet</code> or if the <code>RegexPatternSet</code> is not empty. 

        :param self:
        :param ChangeToken:  The value returned by the most recent call to <a>GetChangeToken</a>.<br/>RegexPatternSetId:  The <code>RegexPatternSetId</code> of the <a>RegexPatternSet</a> that you want to delete. <code>RegexPatternSetId</code> is returned by <a>CreateRegexPatternSet</a> and by <a>ListRegexPatternSets</a>.<br/>
        :return: ChangeToken:  The <code>ChangeToken</code> that you used to submit the <code>DeleteRegexPatternSet</code> request. You can also use this value to query the status of the request. For more information, see <a>GetChangeTokenStatus</a>.<br/>        """
        pass

    def delete_rule(self, ChangeToken: str, RuleId: str) -> DeleteRuleResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Permanently deletes a <a>Rule</a>. You can't delete a <code>Rule</code> if it's still used in any <code>WebACL</code> objects or if it still includes any predicates, such as <code>ByteMatchSet</code> objects. If you just want to remove a <code>Rule</code> from a <code>WebACL</code>, use <a>UpdateWebACL</a>. To permanently delete a <code>Rule</code> from AWS WAF, perform the following steps: <ol> <li> Update the <code>Rule</code> to remove predicates, if any. For more information, see <a>UpdateRule</a>. </li> <li> Use <a>GetChangeToken</a> to get the change token that you provide in the <code>ChangeToken</code> parameter of a <code>DeleteRule</code> request. </li> <li> Submit a <code>DeleteRule</code> request. </li> </ol>

        :param self:
        :param ChangeToken:  The value returned by the most recent call to <a>GetChangeToken</a>.<br/>RuleId:  The <code>RuleId</code> of the <a>Rule</a> that you want to delete. <code>RuleId</code> is returned by <a>CreateRule</a> and by <a>ListRules</a>.<br/>
        :return: ChangeToken:  The <code>ChangeToken</code> that you used to submit the <code>DeleteRule</code> request. You can also use this value to query the status of the request. For more information, see <a>GetChangeTokenStatus</a>.<br/>        """
        pass

    def delete_rule_group(self, ChangeToken: str, RuleGroupId: str) -> DeleteRuleGroupResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Permanently deletes a <a>RuleGroup</a>. You can't delete a <code>RuleGroup</code> if it's still used in any <code>WebACL</code> objects or if it still includes any rules. If you just want to remove a <code>RuleGroup</code> from a <code>WebACL</code>, use <a>UpdateWebACL</a>. To permanently delete a <code>RuleGroup</code> from AWS WAF, perform the following steps: <ol> <li> Update the <code>RuleGroup</code> to remove rules, if any. For more information, see <a>UpdateRuleGroup</a>. </li> <li> Use <a>GetChangeToken</a> to get the change token that you provide in the <code>ChangeToken</code> parameter of a <code>DeleteRuleGroup</code> request. </li> <li> Submit a <code>DeleteRuleGroup</code> request. </li> </ol>

        :param self:
        :param ChangeToken:  The value returned by the most recent call to <a>GetChangeToken</a>.<br/>RuleGroupId:  The <code>RuleGroupId</code> of the <a>RuleGroup</a> that you want to delete. <code>RuleGroupId</code> is returned by <a>CreateRuleGroup</a> and by <a>ListRuleGroups</a>.<br/>
        :return: ChangeToken:  The <code>ChangeToken</code> that you used to submit the <code>DeleteRuleGroup</code> request. You can also use this value to query the status of the request. For more information, see <a>GetChangeTokenStatus</a>.<br/>        """
        pass

    def delete_size_constraint_set(self, ChangeToken: str, SizeConstraintSetId: str) -> DeleteSizeConstraintSetResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Permanently deletes a <a>SizeConstraintSet</a>. You can't delete a <code>SizeConstraintSet</code> if it's still used in any <code>Rules</code> or if it still includes any <a>SizeConstraint</a> objects (any filters). If you just want to remove a <code>SizeConstraintSet</code> from a <code>Rule</code>, use <a>UpdateRule</a>. To permanently delete a <code>SizeConstraintSet</code>, perform the following steps: <ol> <li> Update the <code>SizeConstraintSet</code> to remove filters, if any. For more information, see <a>UpdateSizeConstraintSet</a>. </li> <li> Use <a>GetChangeToken</a> to get the change token that you provide in the <code>ChangeToken</code> parameter of a <code>DeleteSizeConstraintSet</code> request. </li> <li> Submit a <code>DeleteSizeConstraintSet</code> request. </li> </ol>

        :param self:
        :param ChangeToken:  The value returned by the most recent call to <a>GetChangeToken</a>.<br/>SizeConstraintSetId:  The <code>SizeConstraintSetId</code> of the <a>SizeConstraintSet</a> that you want to delete. <code>SizeConstraintSetId</code> is returned by <a>CreateSizeConstraintSet</a> and by <a>ListSizeConstraintSets</a>.<br/>
        :return: ChangeToken:  The <code>ChangeToken</code> that you used to submit the <code>DeleteSizeConstraintSet</code> request. You can also use this value to query the status of the request. For more information, see <a>GetChangeTokenStatus</a>.<br/>        """
        pass

    def delete_sql_injection_match_set(self, ChangeToken: str, SqlInjectionMatchSetId: str) -> DeleteSqlInjectionMatchSetResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Permanently deletes a <a>SqlInjectionMatchSet</a>. You can't delete a <code>SqlInjectionMatchSet</code> if it's still used in any <code>Rules</code> or if it still contains any <a>SqlInjectionMatchTuple</a> objects. If you just want to remove a <code>SqlInjectionMatchSet</code> from a <code>Rule</code>, use <a>UpdateRule</a>. To permanently delete a <code>SqlInjectionMatchSet</code> from AWS WAF, perform the following steps: <ol> <li> Update the <code>SqlInjectionMatchSet</code> to remove filters, if any. For more information, see <a>UpdateSqlInjectionMatchSet</a>. </li> <li> Use <a>GetChangeToken</a> to get the change token that you provide in the <code>ChangeToken</code> parameter of a <code>DeleteSqlInjectionMatchSet</code> request. </li> <li> Submit a <code>DeleteSqlInjectionMatchSet</code> request. </li> </ol>

        :param self:
        :param ChangeToken:  The value returned by the most recent call to <a>GetChangeToken</a>.<br/>SqlInjectionMatchSetId:  The <code>SqlInjectionMatchSetId</code> of the <a>SqlInjectionMatchSet</a> that you want to delete. <code>SqlInjectionMatchSetId</code> is returned by <a>CreateSqlInjectionMatchSet</a> and by <a>ListSqlInjectionMatchSets</a>.<br/>
        :return: ChangeToken:  The <code>ChangeToken</code> that you used to submit the <code>DeleteSqlInjectionMatchSet</code> request. You can also use this value to query the status of the request. For more information, see <a>GetChangeTokenStatus</a>.<br/>        """
        pass

    def delete_web_acl(self, ChangeToken: str, WebACLId: str) -> DeleteWebACLResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Permanently deletes a <a>WebACL</a>. You can't delete a <code>WebACL</code> if it still contains any <code>Rules</code>. To delete a <code>WebACL</code>, perform the following steps: <ol> <li> Update the <code>WebACL</code> to remove <code>Rules</code>, if any. For more information, see <a>UpdateWebACL</a>. </li> <li> Use <a>GetChangeToken</a> to get the change token that you provide in the <code>ChangeToken</code> parameter of a <code>DeleteWebACL</code> request. </li> <li> Submit a <code>DeleteWebACL</code> request. </li> </ol>

        :param self:
        :param ChangeToken:  The value returned by the most recent call to <a>GetChangeToken</a>.<br/>WebACLId:  The <code>WebACLId</code> of the <a>WebACL</a> that you want to delete. <code>WebACLId</code> is returned by <a>CreateWebACL</a> and by <a>ListWebACLs</a>.<br/>
        :return: ChangeToken:  The <code>ChangeToken</code> that you used to submit the <code>DeleteWebACL</code> request. You can also use this value to query the status of the request. For more information, see <a>GetChangeTokenStatus</a>.<br/>        """
        pass

    def delete_xss_match_set(self, ChangeToken: str, XssMatchSetId: str) -> DeleteXssMatchSetResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Permanently deletes an <a>XssMatchSet</a>. You can't delete an <code>XssMatchSet</code> if it's still used in any <code>Rules</code> or if it still contains any <a>XssMatchTuple</a> objects. If you just want to remove an <code>XssMatchSet</code> from a <code>Rule</code>, use <a>UpdateRule</a>. To permanently delete an <code>XssMatchSet</code> from AWS WAF, perform the following steps: <ol> <li> Update the <code>XssMatchSet</code> to remove filters, if any. For more information, see <a>UpdateXssMatchSet</a>. </li> <li> Use <a>GetChangeToken</a> to get the change token that you provide in the <code>ChangeToken</code> parameter of a <code>DeleteXssMatchSet</code> request. </li> <li> Submit a <code>DeleteXssMatchSet</code> request. </li> </ol>

        :param self:
        :param ChangeToken:  The value returned by the most recent call to <a>GetChangeToken</a>.<br/>XssMatchSetId:  The <code>XssMatchSetId</code> of the <a>XssMatchSet</a> that you want to delete. <code>XssMatchSetId</code> is returned by <a>CreateXssMatchSet</a> and by <a>ListXssMatchSets</a>.<br/>
        :return: ChangeToken:  The <code>ChangeToken</code> that you used to submit the <code>DeleteXssMatchSet</code> request. You can also use this value to query the status of the request. For more information, see <a>GetChangeTokenStatus</a>.<br/>        """
        pass

    def disassociate_web_acl(self, ResourceArn: str) -> DisassociateWebACLResponse:
        r"""<note> This is <b>AWS WAF Classic Regional</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Removes a web ACL from the specified resource, either an application load balancer or Amazon API Gateway stage.

        :param self:
        :param ResourceArn:  The ARN (Amazon Resource Name) of the resource from which the web ACL is being removed, either an application load balancer or Amazon API Gateway stage. The ARN should be in one of the following formats: <ul> <li> For an Application Load Balancer: <code>arn:aws:elasticloadbalancing:<i>region</i>:<i>account-id</i>:loadbalancer/app/<i>load-balancer-name</i>/<i>load-balancer-id</i> </code>  </li> <li> For an Amazon API Gateway stage: <code>arn:aws:apigateway:<i>region</i>::/restapis/<i>api-id</i>/stages/<i>stage-name</i> </code>  </li> </ul><br/>
        :return:         """
        pass

    def get_byte_match_set(self, ByteMatchSetId: str) -> GetByteMatchSetResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Returns the <a>ByteMatchSet</a> specified by <code>ByteMatchSetId</code>.

        :param self:
        :param ByteMatchSetId:  The <code>ByteMatchSetId</code> of the <a>ByteMatchSet</a> that you want to get. <code>ByteMatchSetId</code> is returned by <a>CreateByteMatchSet</a> and by <a>ListByteMatchSets</a>.<br/>
        :return: ByteMatchSet:  Information about the <a>ByteMatchSet</a> that you specified in the <code>GetByteMatchSet</code> request. For more information, see the following topics: <ul> <li>  <a>ByteMatchSet</a>: Contains <code>ByteMatchSetId</code>, <code>ByteMatchTuples</code>, and <code>Name</code>  </li> <li>  <code>ByteMatchTuples</code>: Contains an array of <a>ByteMatchTuple</a> objects. Each <code>ByteMatchTuple</code> object contains <a>FieldToMatch</a>, <code>PositionalConstraint</code>, <code>TargetString</code>, and <code>TextTransformation</code>  </li> <li>  <a>FieldToMatch</a>: Contains <code>Data</code> and <code>Type</code>  </li> </ul>:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ByteMatchTuples</i> Specifies the bytes (typically a string that corresponds with ASCII characters) that you want AWS WAF to search for in web requests, the location in requests that you want AWS WAF to search, and other settings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A friendly name or description of the <a>ByteMatchSet</a>. You can't change <code>Name</code> after you create a <code>ByteMatchSet</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ByteMatchSetId</i> The <code>ByteMatchSetId</code> for a <code>ByteMatchSet</code>. You use <code>ByteMatchSetId</code> to get information about a <code>ByteMatchSet</code> (see <a>GetByteMatchSet</a>), update a <code>ByteMatchSet</code> (see <a>UpdateByteMatchSet</a>), insert a <code>ByteMatchSet</code> into a <code>Rule</code> or delete one from a <code>Rule</code> (see <a>UpdateRule</a>), and delete a <code>ByteMatchSet</code> from AWS WAF (see <a>DeleteByteMatchSet</a>).  <code>ByteMatchSetId</code> is returned by <a>CreateByteMatchSet</a> and by <a>ListByteMatchSets</a>.<br/>        """
        pass

    def get_change_token(self) -> GetChangeTokenResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> When you want to create, update, or delete AWS WAF objects, get a change token and include the change token in the create, update, or delete request. Change tokens ensure that your application doesn't submit conflicting requests to AWS WAF. Each create, update, or delete request must use a unique change token. If your application submits a <code>GetChangeToken</code> request and then submits a second <code>GetChangeToken</code> request before submitting a create, update, or delete request, the second <code>GetChangeToken</code> request returns the same value as the first <code>GetChangeToken</code> request. When you use a change token in a create, update, or delete request, the status of the change token changes to <code>PENDING</code>, which indicates that AWS WAF is propagating the change to all AWS WAF servers. Use <code>GetChangeTokenStatus</code> to determine the status of your change token.

        :param self:
        :param 
        :return: ChangeToken:  The <code>ChangeToken</code> that you used in the request. Use this value in a <code>GetChangeTokenStatus</code> request to get the current status of the request. <br/>        """
        pass

    def get_change_token_status(self, ChangeToken: str) -> GetChangeTokenStatusResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Returns the status of a <code>ChangeToken</code> that you got by calling <a>GetChangeToken</a>. <code>ChangeTokenStatus</code> is one of the following values: <ul> <li>  <code>PROVISIONED</code>: You requested the change token by calling <code>GetChangeToken</code>, but you haven't used it yet in a call to create, update, or delete an AWS WAF object. </li> <li>  <code>PENDING</code>: AWS WAF is propagating the create, update, or delete request to all AWS WAF servers. </li> <li>  <code>INSYNC</code>: Propagation is complete. </li> </ul>

        :param self:
        :param ChangeToken:  The change token for which you want to get the status. This change token was previously returned in the <code>GetChangeToken</code> response.<br/>
        :return: ChangeTokenStatus:  The status of the change token.<br/>        """
        pass

    def get_geo_match_set(self, GeoMatchSetId: str) -> GetGeoMatchSetResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Returns the <a>GeoMatchSet</a> that is specified by <code>GeoMatchSetId</code>.

        :param self:
        :param GeoMatchSetId:  The <code>GeoMatchSetId</code> of the <a>GeoMatchSet</a> that you want to get. <code>GeoMatchSetId</code> is returned by <a>CreateGeoMatchSet</a> and by <a>ListGeoMatchSets</a>.<br/>
        :return: GeoMatchSet:  Information about the <a>GeoMatchSet</a> that you specified in the <code>GetGeoMatchSet</code> request. This includes the <code>Type</code>, which for a <code>GeoMatchContraint</code> is always <code>Country</code>, as well as the <code>Value</code>, which is the identifier for a specific country.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GeoMatchConstraints</i> An array of <a>GeoMatchConstraint</a> objects, which contain the country that you want AWS WAF to search for.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A friendly name or description of the <a>GeoMatchSet</a>. You can't change the name of an <code>GeoMatchSet</code> after you create it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GeoMatchSetId</i> The <code>GeoMatchSetId</code> for an <code>GeoMatchSet</code>. You use <code>GeoMatchSetId</code> to get information about a <code>GeoMatchSet</code> (see <a>GeoMatchSet</a>), update a <code>GeoMatchSet</code> (see <a>UpdateGeoMatchSet</a>), insert a <code>GeoMatchSet</code> into a <code>Rule</code> or delete one from a <code>Rule</code> (see <a>UpdateRule</a>), and delete a <code>GeoMatchSet</code> from AWS WAF (see <a>DeleteGeoMatchSet</a>).  <code>GeoMatchSetId</code> is returned by <a>CreateGeoMatchSet</a> and by <a>ListGeoMatchSets</a>.<br/>        """
        pass

    def get_ip_set(self, IPSetId: str) -> GetIPSetResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Returns the <a>IPSet</a> that is specified by <code>IPSetId</code>.

        :param self:
        :param IPSetId:  The <code>IPSetId</code> of the <a>IPSet</a> that you want to get. <code>IPSetId</code> is returned by <a>CreateIPSet</a> and by <a>ListIPSets</a>.<br/>
        :return: IPSet:  Information about the <a>IPSet</a> that you specified in the <code>GetIPSet</code> request. For more information, see the following topics: <ul> <li>  <a>IPSet</a>: Contains <code>IPSetDescriptors</code>, <code>IPSetId</code>, and <code>Name</code>  </li> <li>  <code>IPSetDescriptors</code>: Contains an array of <a>IPSetDescriptor</a> objects. Each <code>IPSetDescriptor</code> object contains <code>Type</code> and <code>Value</code>  </li> </ul>:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IPSetDescriptors</i> The IP address type (<code>IPV4</code> or <code>IPV6</code>) and the IP address range (in CIDR notation) that web requests originate from. If the <code>WebACL</code> is associated with a CloudFront distribution and the viewer did not use an HTTP proxy or a load balancer to send the request, this is the value of the c-ip field in the CloudFront access logs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A friendly name or description of the <a>IPSet</a>. You can't change the name of an <code>IPSet</code> after you create it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IPSetId</i> The <code>IPSetId</code> for an <code>IPSet</code>. You use <code>IPSetId</code> to get information about an <code>IPSet</code> (see <a>GetIPSet</a>), update an <code>IPSet</code> (see <a>UpdateIPSet</a>), insert an <code>IPSet</code> into a <code>Rule</code> or delete one from a <code>Rule</code> (see <a>UpdateRule</a>), and delete an <code>IPSet</code> from AWS WAF (see <a>DeleteIPSet</a>).  <code>IPSetId</code> is returned by <a>CreateIPSet</a> and by <a>ListIPSets</a>.<br/>        """
        pass

    def get_logging_configuration(self, ResourceArn: str) -> GetLoggingConfigurationResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Returns the <a>LoggingConfiguration</a> for the specified web ACL.

        :param self:
        :param ResourceArn:  The Amazon Resource Name (ARN) of the web ACL for which you want to get the <a>LoggingConfiguration</a>.<br/>
        :return: LoggingConfiguration:  The <a>LoggingConfiguration</a> for the specified web ACL.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RedactedFields</i> The parts of the request that you want redacted from the logs. For example, if you redact the cookie field, the cookie field in the firehose will be <code>xxx</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogDestinationConfigs</i> An array of Amazon Kinesis Data Firehose ARNs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceArn</i> The Amazon Resource Name (ARN) of the web ACL that you want to associate with <code>LogDestinationConfigs</code>.<br/>        """
        pass

    def get_permission_policy(self, ResourceArn: str) -> GetPermissionPolicyResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Returns the IAM policy attached to the RuleGroup.

        :param self:
        :param ResourceArn:  The Amazon Resource Name (ARN) of the RuleGroup for which you want to get the policy.<br/>
        :return: Policy:  The IAM policy attached to the specified RuleGroup.<br/>        """
        pass

    def get_rate_based_rule(self, RuleId: str) -> GetRateBasedRuleResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Returns the <a>RateBasedRule</a> that is specified by the <code>RuleId</code> that you included in the <code>GetRateBasedRule</code> request.

        :param self:
        :param RuleId:  The <code>RuleId</code> of the <a>RateBasedRule</a> that you want to get. <code>RuleId</code> is returned by <a>CreateRateBasedRule</a> and by <a>ListRateBasedRules</a>.<br/>
        :return: Rule:  Information about the <a>RateBasedRule</a> that you specified in the <code>GetRateBasedRule</code> request.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RateLimit</i> The maximum number of requests, which have an identical value in the field specified by the <code>RateKey</code>, allowed in a five-minute period. If the number of requests exceeds the <code>RateLimit</code> and the other predicates specified in the rule are also met, AWS WAF triggers the action that is specified for this rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RateKey</i> The field that AWS WAF uses to determine if requests are likely arriving from single source and thus subject to rate monitoring. The only valid value for <code>RateKey</code> is <code>IP</code>. <code>IP</code> indicates that requests arriving from the same IP address are subject to the <code>RateLimit</code> that is specified in the <code>RateBasedRule</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MatchPredicates</i> The <code>Predicates</code> object contains one <code>Predicate</code> element for each <a>ByteMatchSet</a>, <a>IPSet</a>, or <a>SqlInjectionMatchSet</a> object that you want to include in a <code>RateBasedRule</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MetricName</i> A friendly name or description for the metrics for a <code>RateBasedRule</code>. The name can contain only alphanumeric characters (A-Z, a-z, 0-9), with maximum length 128 and minimum length one. It can't contain whitespace or metric names reserved for AWS WAF, including "All" and "Default_Action." You can't change the name of the metric after you create the <code>RateBasedRule</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A friendly name or description for a <code>RateBasedRule</code>. You can't change the name of a <code>RateBasedRule</code> after you create it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RuleId</i> A unique identifier for a <code>RateBasedRule</code>. You use <code>RuleId</code> to get more information about a <code>RateBasedRule</code> (see <a>GetRateBasedRule</a>), update a <code>RateBasedRule</code> (see <a>UpdateRateBasedRule</a>), insert a <code>RateBasedRule</code> into a <code>WebACL</code> or delete one from a <code>WebACL</code> (see <a>UpdateWebACL</a>), or delete a <code>RateBasedRule</code> from AWS WAF (see <a>DeleteRateBasedRule</a>).<br/>        """
        pass

    def get_rate_based_rule_managed_keys(self, RuleId: str, NextMarker: str=None) -> GetRateBasedRuleManagedKeysResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Returns an array of IP addresses currently being blocked by the <a>RateBasedRule</a> that is specified by the <code>RuleId</code>. The maximum number of managed keys that will be blocked is 10,000. If more than 10,000 addresses exceed the rate limit, the 10,000 addresses with the highest rates will be blocked.

        :param self:
        :param NextMarker:  A null value and not currently used. Do not include this in your request.<br/>RuleId:  The <code>RuleId</code> of the <a>RateBasedRule</a> for which you want to get a list of <code>ManagedKeys</code>. <code>RuleId</code> is returned by <a>CreateRateBasedRule</a> and by <a>ListRateBasedRules</a>.<br/>
        :return: NextMarker:  A null value and not currently used.<br/>ManagedKeys:  An array of IP addresses that currently are blocked by the specified <a>RateBasedRule</a>. <br/>        """
        pass

    def get_regex_match_set(self, RegexMatchSetId: str) -> GetRegexMatchSetResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Returns the <a>RegexMatchSet</a> specified by <code>RegexMatchSetId</code>.

        :param self:
        :param RegexMatchSetId:  The <code>RegexMatchSetId</code> of the <a>RegexMatchSet</a> that you want to get. <code>RegexMatchSetId</code> is returned by <a>CreateRegexMatchSet</a> and by <a>ListRegexMatchSets</a>.<br/>
        :return: RegexMatchSet:  Information about the <a>RegexMatchSet</a> that you specified in the <code>GetRegexMatchSet</code> request. For more information, see <a>RegexMatchTuple</a>.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RegexMatchTuples</i> Contains an array of <a>RegexMatchTuple</a> objects. Each <code>RegexMatchTuple</code> object contains:  <ul> <li> The part of a web request that you want AWS WAF to inspect, such as a query string or the value of the <code>User-Agent</code> header.  </li> <li> The identifier of the pattern (a regular expression) that you want AWS WAF to look for. For more information, see <a>RegexPatternSet</a>. </li> <li> Whether to perform any conversions on the request, such as converting it to lowercase, before inspecting it for the specified string. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A friendly name or description of the <a>RegexMatchSet</a>. You can't change <code>Name</code> after you create a <code>RegexMatchSet</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RegexMatchSetId</i> The <code>RegexMatchSetId</code> for a <code>RegexMatchSet</code>. You use <code>RegexMatchSetId</code> to get information about a <code>RegexMatchSet</code> (see <a>GetRegexMatchSet</a>), update a <code>RegexMatchSet</code> (see <a>UpdateRegexMatchSet</a>), insert a <code>RegexMatchSet</code> into a <code>Rule</code> or delete one from a <code>Rule</code> (see <a>UpdateRule</a>), and delete a <code>RegexMatchSet</code> from AWS WAF (see <a>DeleteRegexMatchSet</a>).  <code>RegexMatchSetId</code> is returned by <a>CreateRegexMatchSet</a> and by <a>ListRegexMatchSets</a>.<br/>        """
        pass

    def get_regex_pattern_set(self, RegexPatternSetId: str) -> GetRegexPatternSetResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Returns the <a>RegexPatternSet</a> specified by <code>RegexPatternSetId</code>.

        :param self:
        :param RegexPatternSetId:  The <code>RegexPatternSetId</code> of the <a>RegexPatternSet</a> that you want to get. <code>RegexPatternSetId</code> is returned by <a>CreateRegexPatternSet</a> and by <a>ListRegexPatternSets</a>.<br/>
        :return: RegexPatternSet:  Information about the <a>RegexPatternSet</a> that you specified in the <code>GetRegexPatternSet</code> request, including the identifier of the pattern set and the regular expression patterns you want AWS WAF to search for. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RegexPatternStrings</i> Specifies the regular expression (regex) patterns that you want AWS WAF to search for, such as <code>B[a@]dB[o0]t</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A friendly name or description of the <a>RegexPatternSet</a>. You can't change <code>Name</code> after you create a <code>RegexPatternSet</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RegexPatternSetId</i> The identifier for the <code>RegexPatternSet</code>. You use <code>RegexPatternSetId</code> to get information about a <code>RegexPatternSet</code>, update a <code>RegexPatternSet</code>, remove a <code>RegexPatternSet</code> from a <code>RegexMatchSet</code>, and delete a <code>RegexPatternSet</code> from AWS WAF.  <code>RegexMatchSetId</code> is returned by <a>CreateRegexPatternSet</a> and by <a>ListRegexPatternSets</a>.<br/>        """
        pass

    def get_rule(self, RuleId: str) -> GetRuleResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Returns the <a>Rule</a> that is specified by the <code>RuleId</code> that you included in the <code>GetRule</code> request.

        :param self:
        :param RuleId:  The <code>RuleId</code> of the <a>Rule</a> that you want to get. <code>RuleId</code> is returned by <a>CreateRule</a> and by <a>ListRules</a>.<br/>
        :return: Rule:  Information about the <a>Rule</a> that you specified in the <code>GetRule</code> request. For more information, see the following topics: <ul> <li>  <a>Rule</a>: Contains <code>MetricName</code>, <code>Name</code>, an array of <code>Predicate</code> objects, and <code>RuleId</code>  </li> <li>  <a>Predicate</a>: Each <code>Predicate</code> object contains <code>DataId</code>, <code>Negated</code>, and <code>Type</code>  </li> </ul>:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Predicates</i> The <code>Predicates</code> object contains one <code>Predicate</code> element for each <a>ByteMatchSet</a>, <a>IPSet</a>, or <a>SqlInjectionMatchSet</a> object that you want to include in a <code>Rule</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MetricName</i> A friendly name or description for the metrics for this <code>Rule</code>. The name can contain only alphanumeric characters (A-Z, a-z, 0-9), with maximum length 128 and minimum length one. It can't contain whitespace or metric names reserved for AWS WAF, including "All" and "Default_Action." You can't change <code>MetricName</code> after you create the <code>Rule</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The friendly name or description for the <code>Rule</code>. You can't change the name of a <code>Rule</code> after you create it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RuleId</i> A unique identifier for a <code>Rule</code>. You use <code>RuleId</code> to get more information about a <code>Rule</code> (see <a>GetRule</a>), update a <code>Rule</code> (see <a>UpdateRule</a>), insert a <code>Rule</code> into a <code>WebACL</code> or delete a one from a <code>WebACL</code> (see <a>UpdateWebACL</a>), or delete a <code>Rule</code> from AWS WAF (see <a>DeleteRule</a>).  <code>RuleId</code> is returned by <a>CreateRule</a> and by <a>ListRules</a>.<br/>        """
        pass

    def get_rule_group(self, RuleGroupId: str) -> GetRuleGroupResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Returns the <a>RuleGroup</a> that is specified by the <code>RuleGroupId</code> that you included in the <code>GetRuleGroup</code> request. To view the rules in a rule group, use <a>ListActivatedRulesInRuleGroup</a>.

        :param self:
        :param RuleGroupId:  The <code>RuleGroupId</code> of the <a>RuleGroup</a> that you want to get. <code>RuleGroupId</code> is returned by <a>CreateRuleGroup</a> and by <a>ListRuleGroups</a>.<br/>
        :return: RuleGroup:  Information about the <a>RuleGroup</a> that you specified in the <code>GetRuleGroup</code> request. :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MetricName</i> A friendly name or description for the metrics for this <code>RuleGroup</code>. The name can contain only alphanumeric characters (A-Z, a-z, 0-9), with maximum length 128 and minimum length one. It can't contain whitespace or metric names reserved for AWS WAF, including "All" and "Default_Action." You can't change the name of the metric after you create the <code>RuleGroup</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The friendly name or description for the <code>RuleGroup</code>. You can't change the name of a <code>RuleGroup</code> after you create it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RuleGroupId</i> A unique identifier for a <code>RuleGroup</code>. You use <code>RuleGroupId</code> to get more information about a <code>RuleGroup</code> (see <a>GetRuleGroup</a>), update a <code>RuleGroup</code> (see <a>UpdateRuleGroup</a>), insert a <code>RuleGroup</code> into a <code>WebACL</code> or delete a one from a <code>WebACL</code> (see <a>UpdateWebACL</a>), or delete a <code>RuleGroup</code> from AWS WAF (see <a>DeleteRuleGroup</a>).  <code>RuleGroupId</code> is returned by <a>CreateRuleGroup</a> and by <a>ListRuleGroups</a>.<br/>        """
        pass

    def get_sampled_requests(self, MaxItems: GetSampledRequestsMaxItems, TimeWindow: TimeWindow, RuleId: str, WebAclId: str) -> GetSampledRequestsResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Gets detailed information about a specified number of requests--a sample--that AWS WAF randomly selects from among the first 5,000 requests that your AWS resource received during a time range that you choose. You can specify a sample size of up to 500 requests, and you can specify any time range in the previous three hours.  <code>GetSampledRequests</code> returns a time range, which is usually the time range that you specified. However, if your resource (such as a CloudFront distribution) received 5,000 requests before the specified time range elapsed, <code>GetSampledRequests</code> returns an updated time range. This new time range indicates the actual period during which AWS WAF selected the requests in the sample.

        :param self:
        :param MaxItems:  The number of requests that you want AWS WAF to return from among the first 5,000 requests that your AWS resource received during the time range. If your resource received fewer requests than the value of <code>MaxItems</code>, <code>GetSampledRequests</code> returns information about all of them. <br/>TimeWindow:  The start date and time and the end date and time of the range for which you want <code>GetSampledRequests</code> to return a sample of requests. You must specify the times in Coordinated Universal Time (UTC) format. UTC format includes the special designator, <code>Z</code>. For example, <code>"2016-09-27T14:50Z"</code>. You can specify any time range in the previous three hours.:<br/>RuleId:   <code>RuleId</code> is one of three values: <ul> <li> The <code>RuleId</code> of the <code>Rule</code> or the <code>RuleGroupId</code> of the <code>RuleGroup</code> for which you want <code>GetSampledRequests</code> to return a sample of requests. </li> <li>  <code>Default_Action</code>, which causes <code>GetSampledRequests</code> to return a sample of the requests that didn't match any of the rules in the specified <code>WebACL</code>. </li> </ul><br/>WebAclId:  The <code>WebACLId</code> of the <code>WebACL</code> for which you want <code>GetSampledRequests</code> to return a sample of requests.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndTime</i> The end of the time range from which you want <code>GetSampledRequests</code> to return a sample of the requests that your AWS resource received. You must specify the date and time in Coordinated Universal Time (UTC) format. UTC format includes the special designator, <code>Z</code>. For example, <code>"2016-09-27T14:50Z"</code>. You can specify any time range in the previous three hours.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StartTime</i> The beginning of the time range from which you want <code>GetSampledRequests</code> to return a sample of the requests that your AWS resource received. You must specify the date and time in Coordinated Universal Time (UTC) format. UTC format includes the special designator, <code>Z</code>. For example, <code>"2016-09-27T14:50Z"</code>. You can specify any time range in the previous three hours.<br/>
        :return: TimeWindow:  Usually, <code>TimeWindow</code> is the time range that you specified in the <code>GetSampledRequests</code> request. However, if your AWS resource received more than 5,000 requests during the time range that you specified in the request, <code>GetSampledRequests</code> returns the time range for the first 5,000 requests. Times are in Coordinated Universal Time (UTC) format.:<br/>PopulationSize:  The total number of requests from which <code>GetSampledRequests</code> got a sample of <code>MaxItems</code> requests. If <code>PopulationSize</code> is less than <code>MaxItems</code>, the sample includes every request that your AWS resource received during the specified time range.<br/>SampledRequests:  A complex type that contains detailed information about each of the requests in the sample.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndTime</i> The end of the time range from which you want <code>GetSampledRequests</code> to return a sample of the requests that your AWS resource received. You must specify the date and time in Coordinated Universal Time (UTC) format. UTC format includes the special designator, <code>Z</code>. For example, <code>"2016-09-27T14:50Z"</code>. You can specify any time range in the previous three hours.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StartTime</i> The beginning of the time range from which you want <code>GetSampledRequests</code> to return a sample of the requests that your AWS resource received. You must specify the date and time in Coordinated Universal Time (UTC) format. UTC format includes the special designator, <code>Z</code>. For example, <code>"2016-09-27T14:50Z"</code>. You can specify any time range in the previous three hours.<br/>        """
        pass

    def get_size_constraint_set(self, SizeConstraintSetId: str) -> GetSizeConstraintSetResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Returns the <a>SizeConstraintSet</a> specified by <code>SizeConstraintSetId</code>.

        :param self:
        :param SizeConstraintSetId:  The <code>SizeConstraintSetId</code> of the <a>SizeConstraintSet</a> that you want to get. <code>SizeConstraintSetId</code> is returned by <a>CreateSizeConstraintSet</a> and by <a>ListSizeConstraintSets</a>.<br/>
        :return: SizeConstraintSet:  Information about the <a>SizeConstraintSet</a> that you specified in the <code>GetSizeConstraintSet</code> request. For more information, see the following topics: <ul> <li>  <a>SizeConstraintSet</a>: Contains <code>SizeConstraintSetId</code>, <code>SizeConstraints</code>, and <code>Name</code>  </li> <li>  <code>SizeConstraints</code>: Contains an array of <a>SizeConstraint</a> objects. Each <code>SizeConstraint</code> object contains <a>FieldToMatch</a>, <code>TextTransformation</code>, <code>ComparisonOperator</code>, and <code>Size</code>  </li> <li>  <a>FieldToMatch</a>: Contains <code>Data</code> and <code>Type</code>  </li> </ul>:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SizeConstraints</i> Specifies the parts of web requests that you want to inspect the size of.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name, if any, of the <code>SizeConstraintSet</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SizeConstraintSetId</i> A unique identifier for a <code>SizeConstraintSet</code>. You use <code>SizeConstraintSetId</code> to get information about a <code>SizeConstraintSet</code> (see <a>GetSizeConstraintSet</a>), update a <code>SizeConstraintSet</code> (see <a>UpdateSizeConstraintSet</a>), insert a <code>SizeConstraintSet</code> into a <code>Rule</code> or delete one from a <code>Rule</code> (see <a>UpdateRule</a>), and delete a <code>SizeConstraintSet</code> from AWS WAF (see <a>DeleteSizeConstraintSet</a>).  <code>SizeConstraintSetId</code> is returned by <a>CreateSizeConstraintSet</a> and by <a>ListSizeConstraintSets</a>.<br/>        """
        pass

    def get_sql_injection_match_set(self, SqlInjectionMatchSetId: str) -> GetSqlInjectionMatchSetResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Returns the <a>SqlInjectionMatchSet</a> that is specified by <code>SqlInjectionMatchSetId</code>.

        :param self:
        :param SqlInjectionMatchSetId:  The <code>SqlInjectionMatchSetId</code> of the <a>SqlInjectionMatchSet</a> that you want to get. <code>SqlInjectionMatchSetId</code> is returned by <a>CreateSqlInjectionMatchSet</a> and by <a>ListSqlInjectionMatchSets</a>.<br/>
        :return: SqlInjectionMatchSet:  Information about the <a>SqlInjectionMatchSet</a> that you specified in the <code>GetSqlInjectionMatchSet</code> request. For more information, see the following topics: <ul> <li>  <a>SqlInjectionMatchSet</a>: Contains <code>Name</code>, <code>SqlInjectionMatchSetId</code>, and an array of <code>SqlInjectionMatchTuple</code> objects </li> <li>  <a>SqlInjectionMatchTuple</a>: Each <code>SqlInjectionMatchTuple</code> object contains <code>FieldToMatch</code> and <code>TextTransformation</code>  </li> <li>  <a>FieldToMatch</a>: Contains <code>Data</code> and <code>Type</code>  </li> </ul>:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SqlInjectionMatchTuples</i> Specifies the parts of web requests that you want to inspect for snippets of malicious SQL code.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name, if any, of the <code>SqlInjectionMatchSet</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SqlInjectionMatchSetId</i> A unique identifier for a <code>SqlInjectionMatchSet</code>. You use <code>SqlInjectionMatchSetId</code> to get information about a <code>SqlInjectionMatchSet</code> (see <a>GetSqlInjectionMatchSet</a>), update a <code>SqlInjectionMatchSet</code> (see <a>UpdateSqlInjectionMatchSet</a>), insert a <code>SqlInjectionMatchSet</code> into a <code>Rule</code> or delete one from a <code>Rule</code> (see <a>UpdateRule</a>), and delete a <code>SqlInjectionMatchSet</code> from AWS WAF (see <a>DeleteSqlInjectionMatchSet</a>).  <code>SqlInjectionMatchSetId</code> is returned by <a>CreateSqlInjectionMatchSet</a> and by <a>ListSqlInjectionMatchSets</a>.<br/>        """
        pass

    def get_web_acl(self, WebACLId: str) -> GetWebACLResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Returns the <a>WebACL</a> that is specified by <code>WebACLId</code>.

        :param self:
        :param WebACLId:  The <code>WebACLId</code> of the <a>WebACL</a> that you want to get. <code>WebACLId</code> is returned by <a>CreateWebACL</a> and by <a>ListWebACLs</a>.<br/>
        :return: WebACL:  Information about the <a>WebACL</a> that you specified in the <code>GetWebACL</code> request. For more information, see the following topics: <ul> <li>  <a>WebACL</a>: Contains <code>DefaultAction</code>, <code>MetricName</code>, <code>Name</code>, an array of <code>Rule</code> objects, and <code>WebACLId</code>  </li> <li>  <code>DefaultAction</code> (Data type is <a>WafAction</a>): Contains <code>Type</code>  </li> <li>  <code>Rules</code>: Contains an array of <code>ActivatedRule</code> objects, which contain <code>Action</code>, <code>Priority</code>, and <code>RuleId</code>  </li> <li>  <code>Action</code>: Contains <code>Type</code>  </li> </ul>:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WebACLArn</i> Tha Amazon Resource Name (ARN) of the web ACL.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Rules</i> An array that contains the action for each <code>Rule</code> in a <code>WebACL</code>, the priority of the <code>Rule</code>, and the ID of the <code>Rule</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultAction</i> The action to perform if none of the <code>Rules</code> contained in the <code>WebACL</code> match. The action is specified by the <a>WafAction</a> object.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DefaultAction</b>: The action to perform if none of the <code>Rules</code> contained in the <code>WebACL</code> match. The action is specified by the <a>WafAction</a> object.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MetricName</i> A friendly name or description for the metrics for this <code>WebACL</code>. The name can contain only alphanumeric characters (A-Z, a-z, 0-9), with maximum length 128 and minimum length one. It can't contain whitespace or metric names reserved for AWS WAF, including "All" and "Default_Action." You can't change <code>MetricName</code> after you create the <code>WebACL</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A friendly name or description of the <code>WebACL</code>. You can't change the name of a <code>WebACL</code> after you create it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WebACLId</i> A unique identifier for a <code>WebACL</code>. You use <code>WebACLId</code> to get information about a <code>WebACL</code> (see <a>GetWebACL</a>), update a <code>WebACL</code> (see <a>UpdateWebACL</a>), and delete a <code>WebACL</code> from AWS WAF (see <a>DeleteWebACL</a>).  <code>WebACLId</code> is returned by <a>CreateWebACL</a> and by <a>ListWebACLs</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> Specifies how you want AWS WAF to respond to requests that match the settings in a <code>Rule</code>. Valid settings include the following: <ul> <li>  <code>ALLOW</code>: AWS WAF allows requests </li> <li>  <code>BLOCK</code>: AWS WAF blocks requests </li> <li>  <code>COUNT</code>: AWS WAF increments a counter of the requests that match all of the conditions in the rule. AWS WAF then continues to inspect the web request based on the remaining rules in the web ACL. You can't specify <code>COUNT</code> for the default action for a <code>WebACL</code>. </li> </ul><br/>        """
        pass

    def get_web_acl_for_resource(self, ResourceArn: str) -> GetWebACLForResourceResponse:
        r"""<note> This is <b>AWS WAF Classic Regional</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Returns the web ACL for the specified resource, either an application load balancer or Amazon API Gateway stage.

        :param self:
        :param ResourceArn:  The ARN (Amazon Resource Name) of the resource for which to get the web ACL, either an application load balancer or Amazon API Gateway stage. The ARN should be in one of the following formats: <ul> <li> For an Application Load Balancer: <code>arn:aws:elasticloadbalancing:<i>region</i>:<i>account-id</i>:loadbalancer/app/<i>load-balancer-name</i>/<i>load-balancer-id</i> </code>  </li> <li> For an Amazon API Gateway stage: <code>arn:aws:apigateway:<i>region</i>::/restapis/<i>api-id</i>/stages/<i>stage-name</i> </code>  </li> </ul><br/>
        :return: WebACLSummary:  Information about the web ACL that you specified in the <code>GetWebACLForResource</code> request. If there is no associated resource, a null WebACLSummary is returned.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> A friendly name or description of the <a>WebACL</a>. You can't change the name of a <code>WebACL</code> after you create it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WebACLId</i> A unique identifier for a <code>WebACL</code>. You use <code>WebACLId</code> to get information about a <code>WebACL</code> (see <a>GetWebACL</a>), update a <code>WebACL</code> (see <a>UpdateWebACL</a>), and delete a <code>WebACL</code> from AWS WAF (see <a>DeleteWebACL</a>).  <code>WebACLId</code> is returned by <a>CreateWebACL</a> and by <a>ListWebACLs</a>.<br/>        """
        pass

    def get_xss_match_set(self, XssMatchSetId: str) -> GetXssMatchSetResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Returns the <a>XssMatchSet</a> that is specified by <code>XssMatchSetId</code>.

        :param self:
        :param XssMatchSetId:  The <code>XssMatchSetId</code> of the <a>XssMatchSet</a> that you want to get. <code>XssMatchSetId</code> is returned by <a>CreateXssMatchSet</a> and by <a>ListXssMatchSets</a>.<br/>
        :return: XssMatchSet:  Information about the <a>XssMatchSet</a> that you specified in the <code>GetXssMatchSet</code> request. For more information, see the following topics: <ul> <li>  <a>XssMatchSet</a>: Contains <code>Name</code>, <code>XssMatchSetId</code>, and an array of <code>XssMatchTuple</code> objects </li> <li>  <a>XssMatchTuple</a>: Each <code>XssMatchTuple</code> object contains <code>FieldToMatch</code> and <code>TextTransformation</code>  </li> <li>  <a>FieldToMatch</a>: Contains <code>Data</code> and <code>Type</code>  </li> </ul>:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>XssMatchTuples</i> Specifies the parts of web requests that you want to inspect for cross-site scripting attacks.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name, if any, of the <code>XssMatchSet</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>XssMatchSetId</i> A unique identifier for an <code>XssMatchSet</code>. You use <code>XssMatchSetId</code> to get information about an <code>XssMatchSet</code> (see <a>GetXssMatchSet</a>), update an <code>XssMatchSet</code> (see <a>UpdateXssMatchSet</a>), insert an <code>XssMatchSet</code> into a <code>Rule</code> or delete one from a <code>Rule</code> (see <a>UpdateRule</a>), and delete an <code>XssMatchSet</code> from AWS WAF (see <a>DeleteXssMatchSet</a>).  <code>XssMatchSetId</code> is returned by <a>CreateXssMatchSet</a> and by <a>ListXssMatchSets</a>.<br/>        """
        pass

    def list_activated_rules_in_rule_group(self, RuleGroupId: str=None, NextMarker: str=None, Limit: int=None) -> ListActivatedRulesInRuleGroupResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Returns an array of <a>ActivatedRule</a> objects.

        :param self:
        :param Limit:  Specifies the number of <code>ActivatedRules</code> that you want AWS WAF to return for this request. If you have more <code>ActivatedRules</code> than the number that you specify for <code>Limit</code>, the response includes a <code>NextMarker</code> value that you can use to get another batch of <code>ActivatedRules</code>.<br/>NextMarker:  If you specify a value for <code>Limit</code> and you have more <code>ActivatedRules</code> than the value of <code>Limit</code>, AWS WAF returns a <code>NextMarker</code> value in the response that allows you to list another group of <code>ActivatedRules</code>. For the second and subsequent <code>ListActivatedRulesInRuleGroup</code> requests, specify the value of <code>NextMarker</code> from the previous response to get information about another batch of <code>ActivatedRules</code>.<br/>RuleGroupId:  The <code>RuleGroupId</code> of the <a>RuleGroup</a> for which you want to get a list of <a>ActivatedRule</a> objects.<br/>
        :return: ActivatedRules:  An array of <code>ActivatedRules</code> objects.<br/>NextMarker:  If you have more <code>ActivatedRules</code> than the number that you specified for <code>Limit</code> in the request, the response includes a <code>NextMarker</code> value. To list more <code>ActivatedRules</code>, submit another <code>ListActivatedRulesInRuleGroup</code> request, and specify the <code>NextMarker</code> value from the response in the <code>NextMarker</code> value in the next request.<br/>        """
        pass

    def list_byte_match_sets(self, NextMarker: str=None, Limit: int=None) -> ListByteMatchSetsResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Returns an array of <a>ByteMatchSetSummary</a> objects.

        :param self:
        :param Limit:  Specifies the number of <code>ByteMatchSet</code> objects that you want AWS WAF to return for this request. If you have more <code>ByteMatchSets</code> objects than the number you specify for <code>Limit</code>, the response includes a <code>NextMarker</code> value that you can use to get another batch of <code>ByteMatchSet</code> objects.<br/>NextMarker:  If you specify a value for <code>Limit</code> and you have more <code>ByteMatchSets</code> than the value of <code>Limit</code>, AWS WAF returns a <code>NextMarker</code> value in the response that allows you to list another group of <code>ByteMatchSets</code>. For the second and subsequent <code>ListByteMatchSets</code> requests, specify the value of <code>NextMarker</code> from the previous response to get information about another batch of <code>ByteMatchSets</code>.<br/>
        :return: ByteMatchSets:  An array of <a>ByteMatchSetSummary</a> objects.<br/>NextMarker:  If you have more <code>ByteMatchSet</code> objects than the number that you specified for <code>Limit</code> in the request, the response includes a <code>NextMarker</code> value. To list more <code>ByteMatchSet</code> objects, submit another <code>ListByteMatchSets</code> request, and specify the <code>NextMarker</code> value from the response in the <code>NextMarker</code> value in the next request.<br/>        """
        pass

    def list_geo_match_sets(self, NextMarker: str=None, Limit: int=None) -> ListGeoMatchSetsResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Returns an array of <a>GeoMatchSetSummary</a> objects in the response.

        :param self:
        :param Limit:  Specifies the number of <code>GeoMatchSet</code> objects that you want AWS WAF to return for this request. If you have more <code>GeoMatchSet</code> objects than the number you specify for <code>Limit</code>, the response includes a <code>NextMarker</code> value that you can use to get another batch of <code>GeoMatchSet</code> objects.<br/>NextMarker:  If you specify a value for <code>Limit</code> and you have more <code>GeoMatchSet</code>s than the value of <code>Limit</code>, AWS WAF returns a <code>NextMarker</code> value in the response that allows you to list another group of <code>GeoMatchSet</code> objects. For the second and subsequent <code>ListGeoMatchSets</code> requests, specify the value of <code>NextMarker</code> from the previous response to get information about another batch of <code>GeoMatchSet</code> objects.<br/>
        :return: GeoMatchSets:  An array of <a>GeoMatchSetSummary</a> objects.<br/>NextMarker:  If you have more <code>GeoMatchSet</code> objects than the number that you specified for <code>Limit</code> in the request, the response includes a <code>NextMarker</code> value. To list more <code>GeoMatchSet</code> objects, submit another <code>ListGeoMatchSets</code> request, and specify the <code>NextMarker</code> value from the response in the <code>NextMarker</code> value in the next request.<br/>        """
        pass

    def list_ip_sets(self, NextMarker: str=None, Limit: int=None) -> ListIPSetsResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Returns an array of <a>IPSetSummary</a> objects in the response.

        :param self:
        :param Limit:  Specifies the number of <code>IPSet</code> objects that you want AWS WAF to return for this request. If you have more <code>IPSet</code> objects than the number you specify for <code>Limit</code>, the response includes a <code>NextMarker</code> value that you can use to get another batch of <code>IPSet</code> objects.<br/>NextMarker:  AWS WAF returns a <code>NextMarker</code> value in the response that allows you to list another group of <code>IPSets</code>. For the second and subsequent <code>ListIPSets</code> requests, specify the value of <code>NextMarker</code> from the previous response to get information about another batch of <code>IPSets</code>.<br/>
        :return: IPSets:  An array of <a>IPSetSummary</a> objects.<br/>NextMarker:  To list more <code>IPSet</code> objects, submit another <code>ListIPSets</code> request, and in the next request use the <code>NextMarker</code> response value as the <code>NextMarker</code> value.<br/>        """
        pass

    def list_logging_configurations(self, NextMarker: str=None, Limit: int=None) -> ListLoggingConfigurationsResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Returns an array of <a>LoggingConfiguration</a> objects.

        :param self:
        :param Limit:  Specifies the number of <code>LoggingConfigurations</code> that you want AWS WAF to return for this request. If you have more <code>LoggingConfigurations</code> than the number that you specify for <code>Limit</code>, the response includes a <code>NextMarker</code> value that you can use to get another batch of <code>LoggingConfigurations</code>.<br/>NextMarker:  If you specify a value for <code>Limit</code> and you have more <code>LoggingConfigurations</code> than the value of <code>Limit</code>, AWS WAF returns a <code>NextMarker</code> value in the response that allows you to list another group of <code>LoggingConfigurations</code>. For the second and subsequent <code>ListLoggingConfigurations</code> requests, specify the value of <code>NextMarker</code> from the previous response to get information about another batch of <code>ListLoggingConfigurations</code>.<br/>
        :return: NextMarker:  If you have more <code>LoggingConfigurations</code> than the number that you specified for <code>Limit</code> in the request, the response includes a <code>NextMarker</code> value. To list more <code>LoggingConfigurations</code>, submit another <code>ListLoggingConfigurations</code> request, and specify the <code>NextMarker</code> value from the response in the <code>NextMarker</code> value in the next request.<br/>LoggingConfigurations:  An array of <a>LoggingConfiguration</a> objects.<br/>        """
        pass

    def list_rate_based_rules(self, NextMarker: str=None, Limit: int=None) -> ListRateBasedRulesResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Returns an array of <a>RuleSummary</a> objects.

        :param self:
        :param Limit:  Specifies the number of <code>Rules</code> that you want AWS WAF to return for this request. If you have more <code>Rules</code> than the number that you specify for <code>Limit</code>, the response includes a <code>NextMarker</code> value that you can use to get another batch of <code>Rules</code>.<br/>NextMarker:  If you specify a value for <code>Limit</code> and you have more <code>Rules</code> than the value of <code>Limit</code>, AWS WAF returns a <code>NextMarker</code> value in the response that allows you to list another group of <code>Rules</code>. For the second and subsequent <code>ListRateBasedRules</code> requests, specify the value of <code>NextMarker</code> from the previous response to get information about another batch of <code>Rules</code>.<br/>
        :return: Rules:  An array of <a>RuleSummary</a> objects.<br/>NextMarker:  If you have more <code>Rules</code> than the number that you specified for <code>Limit</code> in the request, the response includes a <code>NextMarker</code> value. To list more <code>Rules</code>, submit another <code>ListRateBasedRules</code> request, and specify the <code>NextMarker</code> value from the response in the <code>NextMarker</code> value in the next request.<br/>        """
        pass

    def list_regex_match_sets(self, NextMarker: str=None, Limit: int=None) -> ListRegexMatchSetsResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Returns an array of <a>RegexMatchSetSummary</a> objects.

        :param self:
        :param Limit:  Specifies the number of <code>RegexMatchSet</code> objects that you want AWS WAF to return for this request. If you have more <code>RegexMatchSet</code> objects than the number you specify for <code>Limit</code>, the response includes a <code>NextMarker</code> value that you can use to get another batch of <code>RegexMatchSet</code> objects.<br/>NextMarker:  If you specify a value for <code>Limit</code> and you have more <code>RegexMatchSet</code> objects than the value of <code>Limit</code>, AWS WAF returns a <code>NextMarker</code> value in the response that allows you to list another group of <code>ByteMatchSets</code>. For the second and subsequent <code>ListRegexMatchSets</code> requests, specify the value of <code>NextMarker</code> from the previous response to get information about another batch of <code>RegexMatchSet</code> objects.<br/>
        :return: RegexMatchSets:  An array of <a>RegexMatchSetSummary</a> objects.<br/>NextMarker:  If you have more <code>RegexMatchSet</code> objects than the number that you specified for <code>Limit</code> in the request, the response includes a <code>NextMarker</code> value. To list more <code>RegexMatchSet</code> objects, submit another <code>ListRegexMatchSets</code> request, and specify the <code>NextMarker</code> value from the response in the <code>NextMarker</code> value in the next request.<br/>        """
        pass

    def list_regex_pattern_sets(self, NextMarker: str=None, Limit: int=None) -> ListRegexPatternSetsResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Returns an array of <a>RegexPatternSetSummary</a> objects.

        :param self:
        :param Limit:  Specifies the number of <code>RegexPatternSet</code> objects that you want AWS WAF to return for this request. If you have more <code>RegexPatternSet</code> objects than the number you specify for <code>Limit</code>, the response includes a <code>NextMarker</code> value that you can use to get another batch of <code>RegexPatternSet</code> objects.<br/>NextMarker:  If you specify a value for <code>Limit</code> and you have more <code>RegexPatternSet</code> objects than the value of <code>Limit</code>, AWS WAF returns a <code>NextMarker</code> value in the response that allows you to list another group of <code>RegexPatternSet</code> objects. For the second and subsequent <code>ListRegexPatternSets</code> requests, specify the value of <code>NextMarker</code> from the previous response to get information about another batch of <code>RegexPatternSet</code> objects.<br/>
        :return: RegexPatternSets:  An array of <a>RegexPatternSetSummary</a> objects.<br/>NextMarker:  If you have more <code>RegexPatternSet</code> objects than the number that you specified for <code>Limit</code> in the request, the response includes a <code>NextMarker</code> value. To list more <code>RegexPatternSet</code> objects, submit another <code>ListRegexPatternSets</code> request, and specify the <code>NextMarker</code> value from the response in the <code>NextMarker</code> value in the next request.<br/>        """
        pass

    def list_resources_for_web_acl(self, WebACLId: str, ResourceType: str=None) -> ListResourcesForWebACLResponse:
        r"""<note> This is <b>AWS WAF Classic Regional</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Returns an array of resources associated with the specified web ACL.

        :param self:
        :param ResourceType:  The type of resource to list, either an application load balancer or Amazon API Gateway.<br/>WebACLId:  The unique identifier (ID) of the web ACL for which to list the associated resources.<br/>
        :return: ResourceArns:  An array of ARNs (Amazon Resource Names) of the resources associated with the specified web ACL. An array with zero elements is returned if there are no resources associated with the web ACL.<br/>        """
        pass

    def list_rule_groups(self, NextMarker: str=None, Limit: int=None) -> ListRuleGroupsResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Returns an array of <a>RuleGroup</a> objects.

        :param self:
        :param Limit:  Specifies the number of <code>RuleGroups</code> that you want AWS WAF to return for this request. If you have more <code>RuleGroups</code> than the number that you specify for <code>Limit</code>, the response includes a <code>NextMarker</code> value that you can use to get another batch of <code>RuleGroups</code>.<br/>NextMarker:  If you specify a value for <code>Limit</code> and you have more <code>RuleGroups</code> than the value of <code>Limit</code>, AWS WAF returns a <code>NextMarker</code> value in the response that allows you to list another group of <code>RuleGroups</code>. For the second and subsequent <code>ListRuleGroups</code> requests, specify the value of <code>NextMarker</code> from the previous response to get information about another batch of <code>RuleGroups</code>.<br/>
        :return: RuleGroups:  An array of <a>RuleGroup</a> objects.<br/>NextMarker:  If you have more <code>RuleGroups</code> than the number that you specified for <code>Limit</code> in the request, the response includes a <code>NextMarker</code> value. To list more <code>RuleGroups</code>, submit another <code>ListRuleGroups</code> request, and specify the <code>NextMarker</code> value from the response in the <code>NextMarker</code> value in the next request.<br/>        """
        pass

    def list_rules(self, NextMarker: str=None, Limit: int=None) -> ListRulesResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Returns an array of <a>RuleSummary</a> objects.

        :param self:
        :param Limit:  Specifies the number of <code>Rules</code> that you want AWS WAF to return for this request. If you have more <code>Rules</code> than the number that you specify for <code>Limit</code>, the response includes a <code>NextMarker</code> value that you can use to get another batch of <code>Rules</code>.<br/>NextMarker:  If you specify a value for <code>Limit</code> and you have more <code>Rules</code> than the value of <code>Limit</code>, AWS WAF returns a <code>NextMarker</code> value in the response that allows you to list another group of <code>Rules</code>. For the second and subsequent <code>ListRules</code> requests, specify the value of <code>NextMarker</code> from the previous response to get information about another batch of <code>Rules</code>.<br/>
        :return: Rules:  An array of <a>RuleSummary</a> objects.<br/>NextMarker:  If you have more <code>Rules</code> than the number that you specified for <code>Limit</code> in the request, the response includes a <code>NextMarker</code> value. To list more <code>Rules</code>, submit another <code>ListRules</code> request, and specify the <code>NextMarker</code> value from the response in the <code>NextMarker</code> value in the next request.<br/>        """
        pass

    def list_size_constraint_sets(self, NextMarker: str=None, Limit: int=None) -> ListSizeConstraintSetsResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Returns an array of <a>SizeConstraintSetSummary</a> objects.

        :param self:
        :param Limit:  Specifies the number of <code>SizeConstraintSet</code> objects that you want AWS WAF to return for this request. If you have more <code>SizeConstraintSets</code> objects than the number you specify for <code>Limit</code>, the response includes a <code>NextMarker</code> value that you can use to get another batch of <code>SizeConstraintSet</code> objects.<br/>NextMarker:  If you specify a value for <code>Limit</code> and you have more <code>SizeConstraintSets</code> than the value of <code>Limit</code>, AWS WAF returns a <code>NextMarker</code> value in the response that allows you to list another group of <code>SizeConstraintSets</code>. For the second and subsequent <code>ListSizeConstraintSets</code> requests, specify the value of <code>NextMarker</code> from the previous response to get information about another batch of <code>SizeConstraintSets</code>.<br/>
        :return: SizeConstraintSets:  An array of <a>SizeConstraintSetSummary</a> objects.<br/>NextMarker:  If you have more <code>SizeConstraintSet</code> objects than the number that you specified for <code>Limit</code> in the request, the response includes a <code>NextMarker</code> value. To list more <code>SizeConstraintSet</code> objects, submit another <code>ListSizeConstraintSets</code> request, and specify the <code>NextMarker</code> value from the response in the <code>NextMarker</code> value in the next request.<br/>        """
        pass

    def list_sql_injection_match_sets(self, NextMarker: str=None, Limit: int=None) -> ListSqlInjectionMatchSetsResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Returns an array of <a>SqlInjectionMatchSet</a> objects.

        :param self:
        :param Limit:  Specifies the number of <a>SqlInjectionMatchSet</a> objects that you want AWS WAF to return for this request. If you have more <code>SqlInjectionMatchSet</code> objects than the number you specify for <code>Limit</code>, the response includes a <code>NextMarker</code> value that you can use to get another batch of <code>Rules</code>.<br/>NextMarker:  If you specify a value for <code>Limit</code> and you have more <a>SqlInjectionMatchSet</a> objects than the value of <code>Limit</code>, AWS WAF returns a <code>NextMarker</code> value in the response that allows you to list another group of <code>SqlInjectionMatchSets</code>. For the second and subsequent <code>ListSqlInjectionMatchSets</code> requests, specify the value of <code>NextMarker</code> from the previous response to get information about another batch of <code>SqlInjectionMatchSets</code>.<br/>
        :return: SqlInjectionMatchSets:  An array of <a>SqlInjectionMatchSetSummary</a> objects.<br/>NextMarker:  If you have more <a>SqlInjectionMatchSet</a> objects than the number that you specified for <code>Limit</code> in the request, the response includes a <code>NextMarker</code> value. To list more <code>SqlInjectionMatchSet</code> objects, submit another <code>ListSqlInjectionMatchSets</code> request, and specify the <code>NextMarker</code> value from the response in the <code>NextMarker</code> value in the next request.<br/>        """
        pass

    def list_subscribed_rule_groups(self, NextMarker: str=None, Limit: int=None) -> ListSubscribedRuleGroupsResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Returns an array of <a>RuleGroup</a> objects that you are subscribed to.

        :param self:
        :param Limit:  Specifies the number of subscribed rule groups that you want AWS WAF to return for this request. If you have more objects than the number you specify for <code>Limit</code>, the response includes a <code>NextMarker</code> value that you can use to get another batch of objects.<br/>NextMarker:  If you specify a value for <code>Limit</code> and you have more <code>ByteMatchSets</code>subscribed rule groups than the value of <code>Limit</code>, AWS WAF returns a <code>NextMarker</code> value in the response that allows you to list another group of subscribed rule groups. For the second and subsequent <code>ListSubscribedRuleGroupsRequest</code> requests, specify the value of <code>NextMarker</code> from the previous response to get information about another batch of subscribed rule groups.<br/>
        :return: RuleGroups:  An array of <a>RuleGroup</a> objects.<br/>NextMarker:  If you have more objects than the number that you specified for <code>Limit</code> in the request, the response includes a <code>NextMarker</code> value. To list more objects, submit another <code>ListSubscribedRuleGroups</code> request, and specify the <code>NextMarker</code> value from the response in the <code>NextMarker</code> value in the next request.<br/>        """
        pass

    def list_tags_for_resource(self, ResourceARN: str, NextMarker: str=None, Limit: int=None) -> ListTagsForResourceResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Retrieves the tags associated with the specified AWS resource. Tags are key:value pairs that you can use to categorize and manage your resources, for purposes like billing. For example, you might set the tag key to "customer" and the value to the customer name or ID. You can specify one or more tags to add to each AWS resource, up to 50 tags for a resource. Tagging is only available through the API, SDKs, and CLI. You can't manage or view tags through the AWS WAF Classic console. You can tag the AWS resources that you manage through AWS WAF Classic: web ACLs, rule groups, and rules. 

        :param self:
        :param ResourceARN:  <p/><br/>Limit:  <p/><br/>NextMarker:  <p/><br/>
        :return: TagInfoForResource:  <p/>:<br/>NextMarker:  <p/><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TagList</i> <p/><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceARN</i> <p/><br/>        """
        pass

    def list_web_acls(self, NextMarker: str=None, Limit: int=None) -> ListWebACLsResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Returns an array of <a>WebACLSummary</a> objects in the response.

        :param self:
        :param Limit:  Specifies the number of <code>WebACL</code> objects that you want AWS WAF to return for this request. If you have more <code>WebACL</code> objects than the number that you specify for <code>Limit</code>, the response includes a <code>NextMarker</code> value that you can use to get another batch of <code>WebACL</code> objects.<br/>NextMarker:  If you specify a value for <code>Limit</code> and you have more <code>WebACL</code> objects than the number that you specify for <code>Limit</code>, AWS WAF returns a <code>NextMarker</code> value in the response that allows you to list another group of <code>WebACL</code> objects. For the second and subsequent <code>ListWebACLs</code> requests, specify the value of <code>NextMarker</code> from the previous response to get information about another batch of <code>WebACL</code> objects.<br/>
        :return: WebACLs:  An array of <a>WebACLSummary</a> objects.<br/>NextMarker:  If you have more <code>WebACL</code> objects than the number that you specified for <code>Limit</code> in the request, the response includes a <code>NextMarker</code> value. To list more <code>WebACL</code> objects, submit another <code>ListWebACLs</code> request, and specify the <code>NextMarker</code> value from the response in the <code>NextMarker</code> value in the next request.<br/>        """
        pass

    def list_xss_match_sets(self, NextMarker: str=None, Limit: int=None) -> ListXssMatchSetsResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Returns an array of <a>XssMatchSet</a> objects.

        :param self:
        :param Limit:  Specifies the number of <a>XssMatchSet</a> objects that you want AWS WAF to return for this request. If you have more <code>XssMatchSet</code> objects than the number you specify for <code>Limit</code>, the response includes a <code>NextMarker</code> value that you can use to get another batch of <code>Rules</code>.<br/>NextMarker:  If you specify a value for <code>Limit</code> and you have more <a>XssMatchSet</a> objects than the value of <code>Limit</code>, AWS WAF returns a <code>NextMarker</code> value in the response that allows you to list another group of <code>XssMatchSets</code>. For the second and subsequent <code>ListXssMatchSets</code> requests, specify the value of <code>NextMarker</code> from the previous response to get information about another batch of <code>XssMatchSets</code>.<br/>
        :return: XssMatchSets:  An array of <a>XssMatchSetSummary</a> objects.<br/>NextMarker:  If you have more <a>XssMatchSet</a> objects than the number that you specified for <code>Limit</code> in the request, the response includes a <code>NextMarker</code> value. To list more <code>XssMatchSet</code> objects, submit another <code>ListXssMatchSets</code> request, and specify the <code>NextMarker</code> value from the response in the <code>NextMarker</code> value in the next request.<br/>        """
        pass

    def put_logging_configuration(self, LoggingConfiguration: LoggingConfiguration) -> PutLoggingConfigurationResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Associates a <a>LoggingConfiguration</a> with a specified web ACL. You can access information about all traffic that AWS WAF inspects using the following steps: <ol> <li> Create an Amazon Kinesis Data Firehose.  Create the data firehose with a PUT source and in the region that you are operating. However, if you are capturing logs for Amazon CloudFront, always create the firehose in US East (N. Virginia).  <note> Do not create the data firehose using a <code>Kinesis stream</code> as your source. </note> </li> <li> Associate that firehose to your web ACL using a <code>PutLoggingConfiguration</code> request. </li> </ol> When you successfully enable logging using a <code>PutLoggingConfiguration</code> request, AWS WAF will create a service linked role with the necessary permissions to write logs to the Amazon Kinesis Data Firehose. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/logging.html">Logging Web ACL Traffic Information</a> in the <i>AWS WAF Developer Guide</i>.

        :param self:
        :param LoggingConfiguration:  The Amazon Kinesis Data Firehose that contains the inspected traffic information, the redacted fields details, and the Amazon Resource Name (ARN) of the web ACL to monitor. <note> When specifying <code>Type</code> in <code>RedactedFields</code>, you must use one of the following values: <code>URI</code>, <code>QUERY_STRING</code>, <code>HEADER</code>, or <code>METHOD</code>. </note>:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RedactedFields</i> The parts of the request that you want redacted from the logs. For example, if you redact the cookie field, the cookie field in the firehose will be <code>xxx</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogDestinationConfigs</i> An array of Amazon Kinesis Data Firehose ARNs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceArn</i> The Amazon Resource Name (ARN) of the web ACL that you want to associate with <code>LogDestinationConfigs</code>.<br/>
        :return: LoggingConfiguration:  The <a>LoggingConfiguration</a> that you submitted in the request.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RedactedFields</i> The parts of the request that you want redacted from the logs. For example, if you redact the cookie field, the cookie field in the firehose will be <code>xxx</code>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogDestinationConfigs</i> An array of Amazon Kinesis Data Firehose ARNs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceArn</i> The Amazon Resource Name (ARN) of the web ACL that you want to associate with <code>LogDestinationConfigs</code>.<br/>        """
        pass

    def put_permission_policy(self, Policy: str, ResourceArn: str) -> PutPermissionPolicyResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Attaches an IAM policy to the specified resource. The only supported use for this action is to share a RuleGroup across accounts. The <code>PutPermissionPolicy</code> is subject to the following restrictions: <ul> <li> You can attach only one policy with each <code>PutPermissionPolicy</code> request. </li> <li> The policy must include an <code>Effect</code>, <code>Action</code> and <code>Principal</code>.  </li> <li>  <code>Effect</code> must specify <code>Allow</code>. </li> <li> The <code>Action</code> in the policy must be <code>waf:UpdateWebACL</code>, <code>waf-regional:UpdateWebACL</code>, <code>waf:GetRuleGroup</code> and <code>waf-regional:GetRuleGroup</code> . Any extra or wildcard actions in the policy will be rejected. </li> <li> The policy cannot include a <code>Resource</code> parameter. </li> <li> The ARN in the request must be a valid WAF RuleGroup ARN and the RuleGroup must exist in the same region. </li> <li> The user making the request must be the owner of the RuleGroup. </li> <li> Your policy must be composed using IAM Policy version 2012-10-17. </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html">IAM Policies</a>.  An example of a valid policy parameter is shown in the Examples section below.

        :param self:
        :param Policy:  The policy to attach to the specified RuleGroup.<br/>ResourceArn:  The Amazon Resource Name (ARN) of the RuleGroup to which you want to attach the policy.<br/>
        :return:         """
        pass

    def tag_resource(self, Tags: List[Tag], ResourceARN: str) -> TagResourceResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Associates tags with the specified AWS resource. Tags are key:value pairs that you can use to categorize and manage your resources, for purposes like billing. For example, you might set the tag key to "customer" and the value to the customer name or ID. You can specify one or more tags to add to each AWS resource, up to 50 tags for a resource. Tagging is only available through the API, SDKs, and CLI. You can't manage or view tags through the AWS WAF Classic console. You can use this action to tag the AWS resources that you manage through AWS WAF Classic: web ACLs, rule groups, and rules. 

        :param self:
        :param Tags:  <p/><br/>ResourceARN:  <p/><br/>
        :return:         """
        pass

    def untag_resource(self, TagKeys: List[TagKey], ResourceARN: str) -> UntagResourceResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> <p/>

        :param self:
        :param TagKeys:  <p/><br/>ResourceARN:  <p/><br/>
        :return:         """
        pass

    def update_byte_match_set(self, Updates: List[ByteMatchSetUpdate], ChangeToken: str, ByteMatchSetId: str) -> UpdateByteMatchSetResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Inserts or deletes <a>ByteMatchTuple</a> objects (filters) in a <a>ByteMatchSet</a>. For each <code>ByteMatchTuple</code> object, you specify the following values:  <ul> <li> Whether to insert or delete the object from the array. If you want to change a <code>ByteMatchSetUpdate</code> object, you delete the existing object and add a new one. </li> <li> The part of a web request that you want AWS WAF to inspect, such as a query string or the value of the <code>User-Agent</code> header.  </li> <li> The bytes (typically a string that corresponds with ASCII characters) that you want AWS WAF to look for. For more information, including how you specify the values for the AWS WAF API and the AWS CLI or SDKs, see <code>TargetString</code> in the <a>ByteMatchTuple</a> data type.  </li> <li> Where to look, such as at the beginning or the end of a query string. </li> <li> Whether to perform any conversions on the request, such as converting it to lowercase, before inspecting it for the specified string. </li> </ul> For example, you can add a <code>ByteMatchSetUpdate</code> object that matches web requests in which <code>User-Agent</code> headers contain the string <code>BadBot</code>. You can then configure AWS WAF to block those requests. To create and configure a <code>ByteMatchSet</code>, perform the following steps: <ol> <li> Create a <code>ByteMatchSet.</code> For more information, see <a>CreateByteMatchSet</a>. </li> <li> Use <a>GetChangeToken</a> to get the change token that you provide in the <code>ChangeToken</code> parameter of an <code>UpdateByteMatchSet</code> request. </li> <li> Submit an <code>UpdateByteMatchSet</code> request to specify the part of the request that you want AWS WAF to inspect (for example, the header or the URI) and the value that you want AWS WAF to watch for. </li> </ol> For more information about how to use the AWS WAF API to allow or block HTTP requests, see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/">AWS WAF Developer Guide</a>.

        :param self:
        :param Updates:  An array of <code>ByteMatchSetUpdate</code> objects that you want to insert into or delete from a <a>ByteMatchSet</a>. For more information, see the applicable data types: <ul> <li>  <a>ByteMatchSetUpdate</a>: Contains <code>Action</code> and <code>ByteMatchTuple</code>  </li> <li>  <a>ByteMatchTuple</a>: Contains <code>FieldToMatch</code>, <code>PositionalConstraint</code>, <code>TargetString</code>, and <code>TextTransformation</code>  </li> <li>  <a>FieldToMatch</a>: Contains <code>Data</code> and <code>Type</code>  </li> </ul><br/>ChangeToken:  The value returned by the most recent call to <a>GetChangeToken</a>.<br/>ByteMatchSetId:  The <code>ByteMatchSetId</code> of the <a>ByteMatchSet</a> that you want to update. <code>ByteMatchSetId</code> is returned by <a>CreateByteMatchSet</a> and by <a>ListByteMatchSets</a>.<br/>
        :return: ChangeToken:  The <code>ChangeToken</code> that you used to submit the <code>UpdateByteMatchSet</code> request. You can also use this value to query the status of the request. For more information, see <a>GetChangeTokenStatus</a>.<br/>        """
        pass

    def update_geo_match_set(self, Updates: List[GeoMatchSetUpdate], ChangeToken: str, GeoMatchSetId: str) -> UpdateGeoMatchSetResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Inserts or deletes <a>GeoMatchConstraint</a> objects in an <code>GeoMatchSet</code>. For each <code>GeoMatchConstraint</code> object, you specify the following values:  <ul> <li> Whether to insert or delete the object from the array. If you want to change an <code>GeoMatchConstraint</code> object, you delete the existing object and add a new one. </li> <li> The <code>Type</code>. The only valid value for <code>Type</code> is <code>Country</code>. </li> <li> The <code>Value</code>, which is a two character code for the country to add to the <code>GeoMatchConstraint</code> object. Valid codes are listed in <a>GeoMatchConstraint$Value</a>. </li> </ul> To create and configure an <code>GeoMatchSet</code>, perform the following steps: <ol> <li> Submit a <a>CreateGeoMatchSet</a> request. </li> <li> Use <a>GetChangeToken</a> to get the change token that you provide in the <code>ChangeToken</code> parameter of an <a>UpdateGeoMatchSet</a> request. </li> <li> Submit an <code>UpdateGeoMatchSet</code> request to specify the country that you want AWS WAF to watch for. </li> </ol> When you update an <code>GeoMatchSet</code>, you specify the country that you want to add and/or the country that you want to delete. If you want to change a country, you delete the existing country and add the new one. For more information about how to use the AWS WAF API to allow or block HTTP requests, see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/">AWS WAF Developer Guide</a>.

        :param self:
        :param Updates:  An array of <code>GeoMatchSetUpdate</code> objects that you want to insert into or delete from an <a>GeoMatchSet</a>. For more information, see the applicable data types: <ul> <li>  <a>GeoMatchSetUpdate</a>: Contains <code>Action</code> and <code>GeoMatchConstraint</code>  </li> <li>  <a>GeoMatchConstraint</a>: Contains <code>Type</code> and <code>Value</code>  You can have only one <code>Type</code> and <code>Value</code> per <code>GeoMatchConstraint</code>. To add multiple countries, include multiple <code>GeoMatchSetUpdate</code> objects in your request. </li> </ul><br/>ChangeToken:  The value returned by the most recent call to <a>GetChangeToken</a>.<br/>GeoMatchSetId:  The <code>GeoMatchSetId</code> of the <a>GeoMatchSet</a> that you want to update. <code>GeoMatchSetId</code> is returned by <a>CreateGeoMatchSet</a> and by <a>ListGeoMatchSets</a>.<br/>
        :return: ChangeToken:  The <code>ChangeToken</code> that you used to submit the <code>UpdateGeoMatchSet</code> request. You can also use this value to query the status of the request. For more information, see <a>GetChangeTokenStatus</a>.<br/>        """
        pass

    def update_ip_set(self, Updates: List[IPSetUpdate], ChangeToken: str, IPSetId: str) -> UpdateIPSetResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Inserts or deletes <a>IPSetDescriptor</a> objects in an <code>IPSet</code>. For each <code>IPSetDescriptor</code> object, you specify the following values:  <ul> <li> Whether to insert or delete the object from the array. If you want to change an <code>IPSetDescriptor</code> object, you delete the existing object and add a new one. </li> <li> The IP address version, <code>IPv4</code> or <code>IPv6</code>.  </li> <li> The IP address in CIDR notation, for example, <code>192.0.2.0/24</code> (for the range of IP addresses from <code>192.0.2.0</code> to <code>192.0.2.255</code>) or <code>192.0.2.44/32</code> (for the individual IP address <code>192.0.2.44</code>).  </li> </ul> AWS WAF supports IPv4 address ranges: /8 and any range between /16 through /32. AWS WAF supports IPv6 address ranges: /24, /32, /48, /56, /64, and /128. For more information about CIDR notation, see the Wikipedia entry <a href="https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing">Classless Inter-Domain Routing</a>. IPv6 addresses can be represented using any of the following formats: <ul> <li> 1111:0000:0000:0000:0000:0000:0000:0111/128 </li> <li> 1111:0:0:0:0:0:0:0111/128 </li> <li> 1111::0111/128 </li> <li> 1111::111/128 </li> </ul> You use an <code>IPSet</code> to specify which web requests you want to allow or block based on the IP addresses that the requests originated from. For example, if you're receiving a lot of requests from one or a small number of IP addresses and you want to block the requests, you can create an <code>IPSet</code> that specifies those IP addresses, and then configure AWS WAF to block the requests.  To create and configure an <code>IPSet</code>, perform the following steps: <ol> <li> Submit a <a>CreateIPSet</a> request. </li> <li> Use <a>GetChangeToken</a> to get the change token that you provide in the <code>ChangeToken</code> parameter of an <a>UpdateIPSet</a> request. </li> <li> Submit an <code>UpdateIPSet</code> request to specify the IP addresses that you want AWS WAF to watch for. </li> </ol> When you update an <code>IPSet</code>, you specify the IP addresses that you want to add and/or the IP addresses that you want to delete. If you want to change an IP address, you delete the existing IP address and add the new one. You can insert a maximum of 1000 addresses in a single request. For more information about how to use the AWS WAF API to allow or block HTTP requests, see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/">AWS WAF Developer Guide</a>.

        :param self:
        :param Updates:  An array of <code>IPSetUpdate</code> objects that you want to insert into or delete from an <a>IPSet</a>. For more information, see the applicable data types: <ul> <li>  <a>IPSetUpdate</a>: Contains <code>Action</code> and <code>IPSetDescriptor</code>  </li> <li>  <a>IPSetDescriptor</a>: Contains <code>Type</code> and <code>Value</code>  </li> </ul> You can insert a maximum of 1000 addresses in a single request.<br/>ChangeToken:  The value returned by the most recent call to <a>GetChangeToken</a>.<br/>IPSetId:  The <code>IPSetId</code> of the <a>IPSet</a> that you want to update. <code>IPSetId</code> is returned by <a>CreateIPSet</a> and by <a>ListIPSets</a>.<br/>
        :return: ChangeToken:  The <code>ChangeToken</code> that you used to submit the <code>UpdateIPSet</code> request. You can also use this value to query the status of the request. For more information, see <a>GetChangeTokenStatus</a>.<br/>        """
        pass

    def update_rate_based_rule(self, RateLimit: RateLimit, Updates: List[RuleUpdate], ChangeToken: str, RuleId: str) -> UpdateRateBasedRuleResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Inserts or deletes <a>Predicate</a> objects in a rule and updates the <code>RateLimit</code> in the rule.  Each <code>Predicate</code> object identifies a predicate, such as a <a>ByteMatchSet</a> or an <a>IPSet</a>, that specifies the web requests that you want to block or count. The <code>RateLimit</code> specifies the number of requests every five minutes that triggers the rule. If you add more than one predicate to a <code>RateBasedRule</code>, a request must match all the predicates and exceed the <code>RateLimit</code> to be counted or blocked. For example, suppose you add the following to a <code>RateBasedRule</code>: <ul> <li> An <code>IPSet</code> that matches the IP address <code>192.0.2.44/32</code>  </li> <li> A <code>ByteMatchSet</code> that matches <code>BadBot</code> in the <code>User-Agent</code> header </li> </ul> Further, you specify a <code>RateLimit</code> of 1,000. You then add the <code>RateBasedRule</code> to a <code>WebACL</code> and specify that you want to block requests that satisfy the rule. For a request to be blocked, it must come from the IP address 192.0.2.44 <i>and</i> the <code>User-Agent</code> header in the request must contain the value <code>BadBot</code>. Further, requests that match these two conditions much be received at a rate of more than 1,000 every five minutes. If the rate drops below this limit, AWS WAF no longer blocks the requests. As a second example, suppose you want to limit requests to a particular page on your site. To do this, you could add the following to a <code>RateBasedRule</code>: <ul> <li> A <code>ByteMatchSet</code> with <code>FieldToMatch</code> of <code>URI</code>  </li> <li> A <code>PositionalConstraint</code> of <code>STARTS_WITH</code>  </li> <li> A <code>TargetString</code> of <code>login</code>  </li> </ul> Further, you specify a <code>RateLimit</code> of 1,000. By adding this <code>RateBasedRule</code> to a <code>WebACL</code>, you could limit requests to your login page without affecting the rest of your site.

        :param self:
        :param RateLimit:  The maximum number of requests, which have an identical value in the field specified by the <code>RateKey</code>, allowed in a five-minute period. If the number of requests exceeds the <code>RateLimit</code> and the other predicates specified in the rule are also met, AWS WAF triggers the action that is specified for this rule.<br/>Updates:  An array of <code>RuleUpdate</code> objects that you want to insert into or delete from a <a>RateBasedRule</a>. <br/>ChangeToken:  The value returned by the most recent call to <a>GetChangeToken</a>.<br/>RuleId:  The <code>RuleId</code> of the <code>RateBasedRule</code> that you want to update. <code>RuleId</code> is returned by <code>CreateRateBasedRule</code> and by <a>ListRateBasedRules</a>.<br/>
        :return: ChangeToken:  The <code>ChangeToken</code> that you used to submit the <code>UpdateRateBasedRule</code> request. You can also use this value to query the status of the request. For more information, see <a>GetChangeTokenStatus</a>.<br/>        """
        pass

    def update_regex_match_set(self, ChangeToken: str, Updates: List[RegexMatchSetUpdate], RegexMatchSetId: str) -> UpdateRegexMatchSetResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Inserts or deletes <a>RegexMatchTuple</a> objects (filters) in a <a>RegexMatchSet</a>. For each <code>RegexMatchSetUpdate</code> object, you specify the following values:  <ul> <li> Whether to insert or delete the object from the array. If you want to change a <code>RegexMatchSetUpdate</code> object, you delete the existing object and add a new one. </li> <li> The part of a web request that you want AWS WAF to inspectupdate, such as a query string or the value of the <code>User-Agent</code> header.  </li> <li> The identifier of the pattern (a regular expression) that you want AWS WAF to look for. For more information, see <a>RegexPatternSet</a>.  </li> <li> Whether to perform any conversions on the request, such as converting it to lowercase, before inspecting it for the specified string. </li> </ul>  For example, you can create a <code>RegexPatternSet</code> that matches any requests with <code>User-Agent</code> headers that contain the string <code>B[a@]dB[o0]t</code>. You can then configure AWS WAF to reject those requests. To create and configure a <code>RegexMatchSet</code>, perform the following steps: <ol> <li> Create a <code>RegexMatchSet.</code> For more information, see <a>CreateRegexMatchSet</a>. </li> <li> Use <a>GetChangeToken</a> to get the change token that you provide in the <code>ChangeToken</code> parameter of an <code>UpdateRegexMatchSet</code> request. </li> <li> Submit an <code>UpdateRegexMatchSet</code> request to specify the part of the request that you want AWS WAF to inspect (for example, the header or the URI) and the identifier of the <code>RegexPatternSet</code> that contain the regular expression patters you want AWS WAF to watch for. </li> </ol> For more information about how to use the AWS WAF API to allow or block HTTP requests, see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/">AWS WAF Developer Guide</a>.

        :param self:
        :param ChangeToken:  The value returned by the most recent call to <a>GetChangeToken</a>.<br/>Updates:  An array of <code>RegexMatchSetUpdate</code> objects that you want to insert into or delete from a <a>RegexMatchSet</a>. For more information, see <a>RegexMatchTuple</a>.<br/>RegexMatchSetId:  The <code>RegexMatchSetId</code> of the <a>RegexMatchSet</a> that you want to update. <code>RegexMatchSetId</code> is returned by <a>CreateRegexMatchSet</a> and by <a>ListRegexMatchSets</a>.<br/>
        :return: ChangeToken:  The <code>ChangeToken</code> that you used to submit the <code>UpdateRegexMatchSet</code> request. You can also use this value to query the status of the request. For more information, see <a>GetChangeTokenStatus</a>.<br/>        """
        pass

    def update_regex_pattern_set(self, ChangeToken: str, Updates: List[RegexPatternSetUpdate], RegexPatternSetId: str) -> UpdateRegexPatternSetResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Inserts or deletes <code>RegexPatternString</code> objects in a <a>RegexPatternSet</a>. For each <code>RegexPatternString</code> object, you specify the following values:  <ul> <li> Whether to insert or delete the <code>RegexPatternString</code>. </li> <li> The regular expression pattern that you want to insert or delete. For more information, see <a>RegexPatternSet</a>.  </li> </ul>  For example, you can create a <code>RegexPatternString</code> such as <code>B[a@]dB[o0]t</code>. AWS WAF will match this <code>RegexPatternString</code> to: <ul> <li> BadBot </li> <li> BadB0t </li> <li> B@dBot </li> <li> B@dB0t </li> </ul> To create and configure a <code>RegexPatternSet</code>, perform the following steps: <ol> <li> Create a <code>RegexPatternSet.</code> For more information, see <a>CreateRegexPatternSet</a>. </li> <li> Use <a>GetChangeToken</a> to get the change token that you provide in the <code>ChangeToken</code> parameter of an <code>UpdateRegexPatternSet</code> request. </li> <li> Submit an <code>UpdateRegexPatternSet</code> request to specify the regular expression pattern that you want AWS WAF to watch for. </li> </ol> For more information about how to use the AWS WAF API to allow or block HTTP requests, see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/">AWS WAF Developer Guide</a>.

        :param self:
        :param ChangeToken:  The value returned by the most recent call to <a>GetChangeToken</a>.<br/>Updates:  An array of <code>RegexPatternSetUpdate</code> objects that you want to insert into or delete from a <a>RegexPatternSet</a>.<br/>RegexPatternSetId:  The <code>RegexPatternSetId</code> of the <a>RegexPatternSet</a> that you want to update. <code>RegexPatternSetId</code> is returned by <a>CreateRegexPatternSet</a> and by <a>ListRegexPatternSets</a>.<br/>
        :return: ChangeToken:  The <code>ChangeToken</code> that you used to submit the <code>UpdateRegexPatternSet</code> request. You can also use this value to query the status of the request. For more information, see <a>GetChangeTokenStatus</a>.<br/>        """
        pass

    def update_rule(self, Updates: List[RuleUpdate], ChangeToken: str, RuleId: str) -> UpdateRuleResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Inserts or deletes <a>Predicate</a> objects in a <code>Rule</code>. Each <code>Predicate</code> object identifies a predicate, such as a <a>ByteMatchSet</a> or an <a>IPSet</a>, that specifies the web requests that you want to allow, block, or count. If you add more than one predicate to a <code>Rule</code>, a request must match all of the specifications to be allowed, blocked, or counted. For example, suppose that you add the following to a <code>Rule</code>:  <ul> <li> A <code>ByteMatchSet</code> that matches the value <code>BadBot</code> in the <code>User-Agent</code> header </li> <li> An <code>IPSet</code> that matches the IP address <code>192.0.2.44</code>  </li> </ul> You then add the <code>Rule</code> to a <code>WebACL</code> and specify that you want to block requests that satisfy the <code>Rule</code>. For a request to be blocked, the <code>User-Agent</code> header in the request must contain the value <code>BadBot</code> <i>and</i> the request must originate from the IP address 192.0.2.44. To create and configure a <code>Rule</code>, perform the following steps: <ol> <li> Create and update the predicates that you want to include in the <code>Rule</code>. </li> <li> Create the <code>Rule</code>. See <a>CreateRule</a>. </li> <li> Use <code>GetChangeToken</code> to get the change token that you provide in the <code>ChangeToken</code> parameter of an <a>UpdateRule</a> request. </li> <li> Submit an <code>UpdateRule</code> request to add predicates to the <code>Rule</code>. </li> <li> Create and update a <code>WebACL</code> that contains the <code>Rule</code>. See <a>CreateWebACL</a>. </li> </ol> If you want to replace one <code>ByteMatchSet</code> or <code>IPSet</code> with another, you delete the existing one and add the new one. For more information about how to use the AWS WAF API to allow or block HTTP requests, see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/">AWS WAF Developer Guide</a>.

        :param self:
        :param Updates:  An array of <code>RuleUpdate</code> objects that you want to insert into or delete from a <a>Rule</a>. For more information, see the applicable data types: <ul> <li>  <a>RuleUpdate</a>: Contains <code>Action</code> and <code>Predicate</code>  </li> <li>  <a>Predicate</a>: Contains <code>DataId</code>, <code>Negated</code>, and <code>Type</code>  </li> <li>  <a>FieldToMatch</a>: Contains <code>Data</code> and <code>Type</code>  </li> </ul><br/>ChangeToken:  The value returned by the most recent call to <a>GetChangeToken</a>.<br/>RuleId:  The <code>RuleId</code> of the <code>Rule</code> that you want to update. <code>RuleId</code> is returned by <code>CreateRule</code> and by <a>ListRules</a>.<br/>
        :return: ChangeToken:  The <code>ChangeToken</code> that you used to submit the <code>UpdateRule</code> request. You can also use this value to query the status of the request. For more information, see <a>GetChangeTokenStatus</a>.<br/>        """
        pass

    def update_rule_group(self, ChangeToken: str, Updates: List[RuleGroupUpdate], RuleGroupId: str) -> UpdateRuleGroupResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Inserts or deletes <a>ActivatedRule</a> objects in a <code>RuleGroup</code>. You can only insert <code>REGULAR</code> rules into a rule group. You can have a maximum of ten rules per rule group. To create and configure a <code>RuleGroup</code>, perform the following steps: <ol> <li> Create and update the <code>Rules</code> that you want to include in the <code>RuleGroup</code>. See <a>CreateRule</a>. </li> <li> Use <code>GetChangeToken</code> to get the change token that you provide in the <code>ChangeToken</code> parameter of an <a>UpdateRuleGroup</a> request. </li> <li> Submit an <code>UpdateRuleGroup</code> request to add <code>Rules</code> to the <code>RuleGroup</code>. </li> <li> Create and update a <code>WebACL</code> that contains the <code>RuleGroup</code>. See <a>CreateWebACL</a>. </li> </ol> If you want to replace one <code>Rule</code> with another, you delete the existing one and add the new one. For more information about how to use the AWS WAF API to allow or block HTTP requests, see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/">AWS WAF Developer Guide</a>.

        :param self:
        :param ChangeToken:  The value returned by the most recent call to <a>GetChangeToken</a>.<br/>Updates:  An array of <code>RuleGroupUpdate</code> objects that you want to insert into or delete from a <a>RuleGroup</a>. You can only insert <code>REGULAR</code> rules into a rule group.  <code>ActivatedRule|OverrideAction</code> applies only when updating or adding a <code>RuleGroup</code> to a <code>WebACL</code>. In this case you do not use <code>ActivatedRule|Action</code>. For all other update requests, <code>ActivatedRule|Action</code> is used instead of <code>ActivatedRule|OverrideAction</code>.<br/>RuleGroupId:  The <code>RuleGroupId</code> of the <a>RuleGroup</a> that you want to update. <code>RuleGroupId</code> is returned by <a>CreateRuleGroup</a> and by <a>ListRuleGroups</a>.<br/>
        :return: ChangeToken:  The <code>ChangeToken</code> that you used to submit the <code>UpdateRuleGroup</code> request. You can also use this value to query the status of the request. For more information, see <a>GetChangeTokenStatus</a>.<br/>        """
        pass

    def update_size_constraint_set(self, Updates: List[SizeConstraintSetUpdate], ChangeToken: str, SizeConstraintSetId: str) -> UpdateSizeConstraintSetResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Inserts or deletes <a>SizeConstraint</a> objects (filters) in a <a>SizeConstraintSet</a>. For each <code>SizeConstraint</code> object, you specify the following values:  <ul> <li> Whether to insert or delete the object from the array. If you want to change a <code>SizeConstraintSetUpdate</code> object, you delete the existing object and add a new one. </li> <li> The part of a web request that you want AWS WAF to evaluate, such as the length of a query string or the length of the <code>User-Agent</code> header. </li> <li> Whether to perform any transformations on the request, such as converting it to lowercase, before checking its length. Note that transformations of the request body are not supported because the AWS resource forwards only the first <code>8192</code> bytes of your request to AWS WAF. You can only specify a single type of TextTransformation. </li> <li> A <code>ComparisonOperator</code> used for evaluating the selected part of the request against the specified <code>Size</code>, such as equals, greater than, less than, and so on. </li> <li> The length, in bytes, that you want AWS WAF to watch for in selected part of the request. The length is computed after applying the transformation. </li> </ul> For example, you can add a <code>SizeConstraintSetUpdate</code> object that matches web requests in which the length of the <code>User-Agent</code> header is greater than 100 bytes. You can then configure AWS WAF to block those requests. To create and configure a <code>SizeConstraintSet</code>, perform the following steps: <ol> <li> Create a <code>SizeConstraintSet.</code> For more information, see <a>CreateSizeConstraintSet</a>. </li> <li> Use <a>GetChangeToken</a> to get the change token that you provide in the <code>ChangeToken</code> parameter of an <code>UpdateSizeConstraintSet</code> request. </li> <li> Submit an <code>UpdateSizeConstraintSet</code> request to specify the part of the request that you want AWS WAF to inspect (for example, the header or the URI) and the value that you want AWS WAF to watch for. </li> </ol> For more information about how to use the AWS WAF API to allow or block HTTP requests, see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/">AWS WAF Developer Guide</a>.

        :param self:
        :param Updates:  An array of <code>SizeConstraintSetUpdate</code> objects that you want to insert into or delete from a <a>SizeConstraintSet</a>. For more information, see the applicable data types: <ul> <li>  <a>SizeConstraintSetUpdate</a>: Contains <code>Action</code> and <code>SizeConstraint</code>  </li> <li>  <a>SizeConstraint</a>: Contains <code>FieldToMatch</code>, <code>TextTransformation</code>, <code>ComparisonOperator</code>, and <code>Size</code>  </li> <li>  <a>FieldToMatch</a>: Contains <code>Data</code> and <code>Type</code>  </li> </ul><br/>ChangeToken:  The value returned by the most recent call to <a>GetChangeToken</a>.<br/>SizeConstraintSetId:  The <code>SizeConstraintSetId</code> of the <a>SizeConstraintSet</a> that you want to update. <code>SizeConstraintSetId</code> is returned by <a>CreateSizeConstraintSet</a> and by <a>ListSizeConstraintSets</a>.<br/>
        :return: ChangeToken:  The <code>ChangeToken</code> that you used to submit the <code>UpdateSizeConstraintSet</code> request. You can also use this value to query the status of the request. For more information, see <a>GetChangeTokenStatus</a>.<br/>        """
        pass

    def update_sql_injection_match_set(self, Updates: List[SqlInjectionMatchSetUpdate], ChangeToken: str, SqlInjectionMatchSetId: str) -> UpdateSqlInjectionMatchSetResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Inserts or deletes <a>SqlInjectionMatchTuple</a> objects (filters) in a <a>SqlInjectionMatchSet</a>. For each <code>SqlInjectionMatchTuple</code> object, you specify the following values: <ul> <li>  <code>Action</code>: Whether to insert the object into or delete the object from the array. To change a <code>SqlInjectionMatchTuple</code>, you delete the existing object and add a new one. </li> <li>  <code>FieldToMatch</code>: The part of web requests that you want AWS WAF to inspect and, if you want AWS WAF to inspect a header or custom query parameter, the name of the header or parameter. </li> <li>  <code>TextTransformation</code>: Which text transformation, if any, to perform on the web request before inspecting the request for snippets of malicious SQL code. You can only specify a single type of TextTransformation. </li> </ul> You use <code>SqlInjectionMatchSet</code> objects to specify which CloudFront requests that you want to allow, block, or count. For example, if you're receiving requests that contain snippets of SQL code in the query string and you want to block the requests, you can create a <code>SqlInjectionMatchSet</code> with the applicable settings, and then configure AWS WAF to block the requests.  To create and configure a <code>SqlInjectionMatchSet</code>, perform the following steps: <ol> <li> Submit a <a>CreateSqlInjectionMatchSet</a> request. </li> <li> Use <a>GetChangeToken</a> to get the change token that you provide in the <code>ChangeToken</code> parameter of an <a>UpdateIPSet</a> request. </li> <li> Submit an <code>UpdateSqlInjectionMatchSet</code> request to specify the parts of web requests that you want AWS WAF to inspect for snippets of SQL code. </li> </ol> For more information about how to use the AWS WAF API to allow or block HTTP requests, see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/">AWS WAF Developer Guide</a>.

        :param self:
        :param Updates:  An array of <code>SqlInjectionMatchSetUpdate</code> objects that you want to insert into or delete from a <a>SqlInjectionMatchSet</a>. For more information, see the applicable data types: <ul> <li>  <a>SqlInjectionMatchSetUpdate</a>: Contains <code>Action</code> and <code>SqlInjectionMatchTuple</code>  </li> <li>  <a>SqlInjectionMatchTuple</a>: Contains <code>FieldToMatch</code> and <code>TextTransformation</code>  </li> <li>  <a>FieldToMatch</a>: Contains <code>Data</code> and <code>Type</code>  </li> </ul><br/>ChangeToken:  The value returned by the most recent call to <a>GetChangeToken</a>.<br/>SqlInjectionMatchSetId:  The <code>SqlInjectionMatchSetId</code> of the <code>SqlInjectionMatchSet</code> that you want to update. <code>SqlInjectionMatchSetId</code> is returned by <a>CreateSqlInjectionMatchSet</a> and by <a>ListSqlInjectionMatchSets</a>.<br/>
        :return: ChangeToken:  The <code>ChangeToken</code> that you used to submit the <code>UpdateSqlInjectionMatchSet</code> request. You can also use this value to query the status of the request. For more information, see <a>GetChangeTokenStatus</a>.<br/>        """
        pass

    def update_web_acl(self, ChangeToken: str, WebACLId: str, Updates: List[WebACLUpdate]=None, DefaultAction: WafAction=None) -> UpdateWebACLResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Inserts or deletes <a>ActivatedRule</a> objects in a <code>WebACL</code>. Each <code>Rule</code> identifies web requests that you want to allow, block, or count. When you update a <code>WebACL</code>, you specify the following values: <ul> <li> A default action for the <code>WebACL</code>, either <code>ALLOW</code> or <code>BLOCK</code>. AWS WAF performs the default action if a request doesn't match the criteria in any of the <code>Rules</code> in a <code>WebACL</code>. </li> <li> The <code>Rules</code> that you want to add or delete. If you want to replace one <code>Rule</code> with another, you delete the existing <code>Rule</code> and add the new one. </li> <li> For each <code>Rule</code>, whether you want AWS WAF to allow requests, block requests, or count requests that match the conditions in the <code>Rule</code>. </li> <li> The order in which you want AWS WAF to evaluate the <code>Rules</code> in a <code>WebACL</code>. If you add more than one <code>Rule</code> to a <code>WebACL</code>, AWS WAF evaluates each request against the <code>Rules</code> in order based on the value of <code>Priority</code>. (The <code>Rule</code> that has the lowest value for <code>Priority</code> is evaluated first.) When a web request matches all the predicates (such as <code>ByteMatchSets</code> and <code>IPSets</code>) in a <code>Rule</code>, AWS WAF immediately takes the corresponding action, allow or block, and doesn't evaluate the request against the remaining <code>Rules</code> in the <code>WebACL</code>, if any.  </li> </ul> To create and configure a <code>WebACL</code>, perform the following steps: <ol> <li> Create and update the predicates that you want to include in <code>Rules</code>. For more information, see <a>CreateByteMatchSet</a>, <a>UpdateByteMatchSet</a>, <a>CreateIPSet</a>, <a>UpdateIPSet</a>, <a>CreateSqlInjectionMatchSet</a>, and <a>UpdateSqlInjectionMatchSet</a>. </li> <li> Create and update the <code>Rules</code> that you want to include in the <code>WebACL</code>. For more information, see <a>CreateRule</a> and <a>UpdateRule</a>. </li> <li> Create a <code>WebACL</code>. See <a>CreateWebACL</a>. </li> <li> Use <code>GetChangeToken</code> to get the change token that you provide in the <code>ChangeToken</code> parameter of an <a>UpdateWebACL</a> request. </li> <li> Submit an <code>UpdateWebACL</code> request to specify the <code>Rules</code> that you want to include in the <code>WebACL</code>, to specify the default action, and to associate the <code>WebACL</code> with a CloudFront distribution.  The <code>ActivatedRule</code> can be a rule group. If you specify a rule group as your <code>ActivatedRule</code> , you can exclude specific rules from that rule group. If you already have a rule group associated with a web ACL and want to submit an <code>UpdateWebACL</code> request to exclude certain rules from that rule group, you must first remove the rule group from the web ACL, the re-insert it again, specifying the excluded rules. For details, see <a>ActivatedRule$ExcludedRules</a> .  </li> </ol> Be aware that if you try to add a RATE_BASED rule to a web ACL without setting the rule type when first creating the rule, the <a>UpdateWebACL</a> request will fail because the request tries to add a REGULAR rule (the default rule type) with the specified ID, which does not exist.  For more information about how to use the AWS WAF API to allow or block HTTP requests, see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/">AWS WAF Developer Guide</a>.

        :param self:
        :param DefaultAction:  A default action for the web ACL, either ALLOW or BLOCK. AWS WAF performs the default action if a request doesn't match the criteria in any of the rules in a web ACL.:<br/>Updates:  An array of updates to make to the <a>WebACL</a>. An array of <code>WebACLUpdate</code> objects that you want to insert into or delete from a <a>WebACL</a>. For more information, see the applicable data types: <ul> <li>  <a>WebACLUpdate</a>: Contains <code>Action</code> and <code>ActivatedRule</code>  </li> <li>  <a>ActivatedRule</a>: Contains <code>Action</code>, <code>OverrideAction</code>, <code>Priority</code>, <code>RuleId</code>, and <code>Type</code>. <code>ActivatedRule|OverrideAction</code> applies only when updating or adding a <code>RuleGroup</code> to a <code>WebACL</code>. In this case, you do not use <code>ActivatedRule|Action</code>. For all other update requests, <code>ActivatedRule|Action</code> is used instead of <code>ActivatedRule|OverrideAction</code>.  </li> <li>  <a>WafAction</a>: Contains <code>Type</code>  </li> </ul><br/>ChangeToken:  The value returned by the most recent call to <a>GetChangeToken</a>.<br/>WebACLId:  The <code>WebACLId</code> of the <a>WebACL</a> that you want to update. <code>WebACLId</code> is returned by <a>CreateWebACL</a> and by <a>ListWebACLs</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> Specifies how you want AWS WAF to respond to requests that match the settings in a <code>Rule</code>. Valid settings include the following: <ul> <li>  <code>ALLOW</code>: AWS WAF allows requests </li> <li>  <code>BLOCK</code>: AWS WAF blocks requests </li> <li>  <code>COUNT</code>: AWS WAF increments a counter of the requests that match all of the conditions in the rule. AWS WAF then continues to inspect the web request based on the remaining rules in the web ACL. You can't specify <code>COUNT</code> for the default action for a <code>WebACL</code>. </li> </ul><br/>
        :return: ChangeToken:  The <code>ChangeToken</code> that you used to submit the <code>UpdateWebACL</code> request. You can also use this value to query the status of the request. For more information, see <a>GetChangeTokenStatus</a>.<br/>        """
        pass

    def update_xss_match_set(self, Updates: List[XssMatchSetUpdate], ChangeToken: str, XssMatchSetId: str) -> UpdateXssMatchSetResponse:
        r"""<note> This is <b>AWS WAF Classic</b> documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.  <b>For the latest version of AWS WAF</b>, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.  </note> Inserts or deletes <a>XssMatchTuple</a> objects (filters) in an <a>XssMatchSet</a>. For each <code>XssMatchTuple</code> object, you specify the following values: <ul> <li>  <code>Action</code>: Whether to insert the object into or delete the object from the array. To change an <code>XssMatchTuple</code>, you delete the existing object and add a new one. </li> <li>  <code>FieldToMatch</code>: The part of web requests that you want AWS WAF to inspect and, if you want AWS WAF to inspect a header or custom query parameter, the name of the header or parameter. </li> <li>  <code>TextTransformation</code>: Which text transformation, if any, to perform on the web request before inspecting the request for cross-site scripting attacks. You can only specify a single type of TextTransformation. </li> </ul> You use <code>XssMatchSet</code> objects to specify which CloudFront requests that you want to allow, block, or count. For example, if you're receiving requests that contain cross-site scripting attacks in the request body and you want to block the requests, you can create an <code>XssMatchSet</code> with the applicable settings, and then configure AWS WAF to block the requests.  To create and configure an <code>XssMatchSet</code>, perform the following steps: <ol> <li> Submit a <a>CreateXssMatchSet</a> request. </li> <li> Use <a>GetChangeToken</a> to get the change token that you provide in the <code>ChangeToken</code> parameter of an <a>UpdateIPSet</a> request. </li> <li> Submit an <code>UpdateXssMatchSet</code> request to specify the parts of web requests that you want AWS WAF to inspect for cross-site scripting attacks. </li> </ol> For more information about how to use the AWS WAF API to allow or block HTTP requests, see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/">AWS WAF Developer Guide</a>.

        :param self:
        :param Updates:  An array of <code>XssMatchSetUpdate</code> objects that you want to insert into or delete from an <a>XssMatchSet</a>. For more information, see the applicable data types: <ul> <li>  <a>XssMatchSetUpdate</a>: Contains <code>Action</code> and <code>XssMatchTuple</code>  </li> <li>  <a>XssMatchTuple</a>: Contains <code>FieldToMatch</code> and <code>TextTransformation</code>  </li> <li>  <a>FieldToMatch</a>: Contains <code>Data</code> and <code>Type</code>  </li> </ul><br/>ChangeToken:  The value returned by the most recent call to <a>GetChangeToken</a>.<br/>XssMatchSetId:  The <code>XssMatchSetId</code> of the <code>XssMatchSet</code> that you want to update. <code>XssMatchSetId</code> is returned by <a>CreateXssMatchSet</a> and by <a>ListXssMatchSets</a>.<br/>
        :return: ChangeToken:  The <code>ChangeToken</code> that you used to submit the <code>UpdateXssMatchSet</code> request. You can also use this value to query the status of the request. For more information, see <a>GetChangeTokenStatus</a>.<br/>        """
        pass





class WAFV2(BaseClient):
    r"""<fullname>WAF</fullname> <note> This is the latest version of the <b>WAF</b> API, released in November, 2019. The names of the entities that you use to access this API, like endpoints and namespaces, all have the versioning information added, like "V2" or "v2", to distinguish from the prior version. We recommend migrating your resources to this version, because it has a number of significant improvements. If you used WAF prior to this release, you can't use this WAFV2 API to access any WAF resources that you created before. You can access your old rules, web ACLs, and other WAF resources only through the WAF Classic APIs. The WAF Classic APIs have retained the prior names, endpoints, and namespaces.  For information, including how to migrate your WAF resources to this version, see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">WAF Developer Guide</a>.  </note> WAF is a web application firewall that lets you monitor the HTTP and HTTPS requests that are forwarded to Amazon CloudFront, an Amazon API Gateway REST API, an Application Load Balancer, or an AppSync GraphQL API. WAF also lets you control access to your content. Based on conditions that you specify, such as the IP addresses that requests originate from or the values of query strings, the Amazon API Gateway REST API, CloudFront distribution, the Application Load Balancer, or the AppSync GraphQL API responds to requests either with the requested content or with an HTTP 403 status code (Forbidden). You also can configure CloudFront to return a custom error page when a request is blocked. This API guide is for developers who need detailed information about WAF API actions, data types, and errors. For detailed information about WAF features and an overview of how to use WAF, see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/">WAF Developer Guide</a>. You can make calls using the endpoints listed in <a href="https://docs.aws.amazon.com/general/latest/gr/rande.html#waf_region">Amazon Web Services Service Endpoints for WAF</a>.  <ul> <li> For regional applications, you can use any of the endpoints in the list. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API.  </li> <li> For Amazon CloudFront applications, you must use the API endpoint listed for US East (N. Virginia): us-east-1. </li> </ul> Alternatively, you can use one of the Amazon Web Services SDKs to access an API that's tailored to the programming language or platform that you're using. For more information, see <a href="http://aws.amazon.com/tools/#SDKs">Amazon Web Services SDKs</a>. We currently provide two versions of the WAF API: this API and the prior versions, the classic WAF APIs. This new API provides the same functionality as the older versions, with the following major improvements: <ul> <li> You use one API for both global and regional applications. Where you need to distinguish the scope, you specify a <code>Scope</code> parameter and set it to <code>CLOUDFRONT</code> or <code>REGIONAL</code>.  </li> <li> You can define a web ACL or rule group with a single call, and update it with a single call. You define all rule specifications in JSON format, and pass them to your rule group or web ACL calls. </li> <li> The limits WAF places on the use of rules more closely reflects the cost of running each type of rule. Rule groups include capacity settings, so you know the maximum cost of a rule group when you use it. </li> </ul>"""




    class AssociateWebACLRequest(Mapping):
        pass
    
    class AssociateWebACLResponse(Mapping):
        pass
    
    class CheckCapacityRequest(Mapping):
        pass
    
    class CheckCapacityResponse(Mapping):
        pass
    
    class Rule(Mapping):
        pass
    
    class CreateIPSetRequest(Mapping):
        pass
    
    class CreateIPSetResponse(Mapping):
        pass
    
    class IPAddress(object):
        pass
    
    class Tag(Mapping):
        pass
    
    class CreateRegexPatternSetRequest(Mapping):
        pass
    
    class CreateRegexPatternSetResponse(Mapping):
        pass
    
    class Regex(Mapping):
        pass
    
    class CreateRuleGroupRequest(Mapping):
        pass
    
    class CreateRuleGroupResponse(Mapping):
        pass
    
    class CapacityUnit(object):
        pass
    
    class VisibilityConfig(Mapping):
        pass
    
    class CustomResponseBodies(object):
        pass
    
    class CreateWebACLRequest(Mapping):
        pass
    
    class CreateWebACLResponse(Mapping):
        pass
    
    class DefaultAction(Mapping):
        pass
    
    class DeleteFirewallManagerRuleGroupsRequest(Mapping):
        pass
    
    class DeleteFirewallManagerRuleGroupsResponse(Mapping):
        pass
    
    class DeleteIPSetRequest(Mapping):
        pass
    
    class DeleteIPSetResponse(Mapping):
        pass
    
    class DeleteLoggingConfigurationRequest(Mapping):
        pass
    
    class DeleteLoggingConfigurationResponse(Mapping):
        pass
    
    class DeletePermissionPolicyRequest(Mapping):
        pass
    
    class DeletePermissionPolicyResponse(Mapping):
        pass
    
    class DeleteRegexPatternSetRequest(Mapping):
        pass
    
    class DeleteRegexPatternSetResponse(Mapping):
        pass
    
    class DeleteRuleGroupRequest(Mapping):
        pass
    
    class DeleteRuleGroupResponse(Mapping):
        pass
    
    class DeleteWebACLRequest(Mapping):
        pass
    
    class DeleteWebACLResponse(Mapping):
        pass
    
    class DescribeManagedRuleGroupRequest(Mapping):
        pass
    
    class DescribeManagedRuleGroupResponse(Mapping):
        pass
    
    class DisassociateWebACLRequest(Mapping):
        pass
    
    class DisassociateWebACLResponse(Mapping):
        pass
    
    class GetIPSetRequest(Mapping):
        pass
    
    class GetIPSetResponse(Mapping):
        pass
    
    class GetLoggingConfigurationRequest(Mapping):
        pass
    
    class GetLoggingConfigurationResponse(Mapping):
        pass
    
    class GetPermissionPolicyRequest(Mapping):
        pass
    
    class GetPermissionPolicyResponse(Mapping):
        pass
    
    class GetRateBasedStatementManagedKeysRequest(Mapping):
        pass
    
    class GetRateBasedStatementManagedKeysResponse(Mapping):
        pass
    
    class GetRegexPatternSetRequest(Mapping):
        pass
    
    class GetRegexPatternSetResponse(Mapping):
        pass
    
    class GetRuleGroupRequest(Mapping):
        pass
    
    class GetRuleGroupResponse(Mapping):
        pass
    
    class GetSampledRequestsRequest(Mapping):
        pass
    
    class GetSampledRequestsResponse(Mapping):
        pass
    
    class TimeWindow(Mapping):
        pass
    
    class ListMaxItems(object):
        pass
    
    class GetWebACLRequest(Mapping):
        pass
    
    class GetWebACLResponse(Mapping):
        pass
    
    class GetWebACLForResourceRequest(Mapping):
        pass
    
    class GetWebACLForResourceResponse(Mapping):
        pass
    
    class ListAvailableManagedRuleGroupsRequest(Mapping):
        pass
    
    class ListAvailableManagedRuleGroupsResponse(Mapping):
        pass
    
    class ListIPSetsRequest(Mapping):
        pass
    
    class ListIPSetsResponse(Mapping):
        pass
    
    class ListLoggingConfigurationsRequest(Mapping):
        pass
    
    class ListLoggingConfigurationsResponse(Mapping):
        pass
    
    class ListRegexPatternSetsRequest(Mapping):
        pass
    
    class ListRegexPatternSetsResponse(Mapping):
        pass
    
    class ListResourcesForWebACLRequest(Mapping):
        pass
    
    class ListResourcesForWebACLResponse(Mapping):
        pass
    
    class ListRuleGroupsRequest(Mapping):
        pass
    
    class ListRuleGroupsResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class ListWebACLsRequest(Mapping):
        pass
    
    class ListWebACLsResponse(Mapping):
        pass
    
    class PutLoggingConfigurationRequest(Mapping):
        pass
    
    class PutLoggingConfigurationResponse(Mapping):
        pass
    
    class LoggingConfiguration(Mapping):
        pass
    
    class PutPermissionPolicyRequest(Mapping):
        pass
    
    class PutPermissionPolicyResponse(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateIPSetRequest(Mapping):
        pass
    
    class UpdateIPSetResponse(Mapping):
        pass
    
    class UpdateRegexPatternSetRequest(Mapping):
        pass
    
    class UpdateRegexPatternSetResponse(Mapping):
        pass
    
    class UpdateRuleGroupRequest(Mapping):
        pass
    
    class UpdateRuleGroupResponse(Mapping):
        pass
    
    class UpdateWebACLRequest(Mapping):
        pass
    
    class UpdateWebACLResponse(Mapping):
        pass
    
    def associate_web_acl(self, ResourceArn: str, WebACLArn: str) -> AssociateWebACLResponse:
        r"""Associates a web ACL with a regional application resource, to protect the resource. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API.  For Amazon CloudFront, don't use this call. Instead, use your CloudFront distribution configuration. To associate a web ACL, in the CloudFront call <code>UpdateDistribution</code>, set the web ACL ID to the Amazon Resource Name (ARN) of the web ACL. For information, see <a href="https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDistribution.html">UpdateDistribution</a>.

        :param self:
        :param ResourceArn:  The Amazon Resource Name (ARN) of the resource to associate with the web ACL.  The ARN must be in one of the following formats: <ul> <li> For an Application Load Balancer: <code>arn:aws:elasticloadbalancing:<i>region</i>:<i>account-id</i>:loadbalancer/app/<i>load-balancer-name</i>/<i>load-balancer-id</i> </code>  </li> <li> For an Amazon API Gateway REST API: <code>arn:aws:apigateway:<i>region</i>::/restapis/<i>api-id</i>/stages/<i>stage-name</i> </code>  </li> <li> For an AppSync GraphQL API: <code>arn:aws:appsync:<i>region</i>:<i>account-id</i>:apis/<i>GraphQLApiId</i> </code>  </li> </ul><br/>WebACLArn:  The Amazon Resource Name (ARN) of the web ACL that you want to associate with the resource.<br/>
        :return:         """
        pass

    def check_capacity(self, Rules: List[Rule], Scope: str) -> CheckCapacityResponse:
        r"""Returns the web ACL capacity unit (WCU) requirements for a specified scope and set of rules. You can use this to check the capacity requirements for the rules you want to use in a <a>RuleGroup</a> or <a>WebACL</a>.  WAF uses WCUs to calculate and control the operating resources that are used to run your rules, rule groups, and web ACLs. WAF calculates capacity differently for each rule type, to reflect the relative cost of each rule. Simple rules that cost little to run use fewer WCUs than more complex rules that use more processing power. Rule group capacity is fixed at creation, which helps users plan their web ACL WCU usage when they use a rule group. The WCU limit for web ACLs is 1,500. 

        :param self:
        :param Rules:  An array of <a>Rule</a> that you're configuring to use in a rule group or web ACL. <br/>Scope:  Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API.  To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:  <ul> <li> CLI - Specify the Region when you use the CloudFront scope: <code>--scope=CLOUDFRONT --region=us-east-1</code>.  </li> <li> API and SDKs - For all calls, use the Region endpoint us-east-1.  </li> </ul><br/>
        :return: Capacity:  The capacity required by the rules and scope.<br/>        """
        pass

    def create_ip_set(self, Addresses: List[IPAddress], IPAddressVersion: str, Scope: str, Name: str, Description: str=None, Tags: List[Tag]=None) -> CreateIPSetResponse:
        r"""Creates an <a>IPSet</a>, which you use to identify web requests that originate from specific IP addresses or ranges of IP addresses. For example, if you're receiving a lot of requests from a ranges of IP addresses, you can configure WAF to block them using an IPSet that lists those IP addresses. 

        :param self:
        :param Tags:  An array of key:value pairs to associate with the resource.<br/>Addresses:  Contains an array of strings that specify one or more IP addresses or blocks of IP addresses in Classless Inter-Domain Routing (CIDR) notation. WAF supports all IPv4 and IPv6 CIDR ranges except for /0.  Examples:  <ul> <li> To configure WAF to allow, block, or count requests that originated from the IP address 192.0.2.44, specify <code>192.0.2.44/32</code>. </li> <li> To configure WAF to allow, block, or count requests that originated from IP addresses from 192.0.2.0 to 192.0.2.255, specify <code>192.0.2.0/24</code>. </li> <li> To configure WAF to allow, block, or count requests that originated from the IP address 1111:0000:0000:0000:0000:0000:0000:0111, specify <code>1111:0000:0000:0000:0000:0000:0000:0111/128</code>. </li> <li> To configure WAF to allow, block, or count requests that originated from IP addresses 1111:0000:0000:0000:0000:0000:0000:0000 to 1111:0000:0000:0000:ffff:ffff:ffff:ffff, specify <code>1111:0000:0000:0000:0000:0000:0000:0000/64</code>. </li> </ul> For more information about CIDR notation, see the Wikipedia entry <a href="https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing">Classless Inter-Domain Routing</a>.<br/>IPAddressVersion:  Specify IPV4 or IPV6. <br/>Description:  A description of the IP set that helps with identification. <br/>Scope:  Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API.  To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:  <ul> <li> CLI - Specify the Region when you use the CloudFront scope: <code>--scope=CLOUDFRONT --region=us-east-1</code>.  </li> <li> API and SDKs - For all calls, use the Region endpoint us-east-1.  </li> </ul><br/>Name:  The name of the IP set. You cannot change the name of an <code>IPSet</code> after you create it.<br/>
        :return: Summary:  High-level information about an <a>IPSet</a>, returned by operations like create and list. This provides information like the ID, that you can use to retrieve and manage an <code>IPSet</code>, and the ARN, that you provide to the <a>IPSetReferenceStatement</a> to use the address set in a <a>Rule</a>.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ARN</i> The Amazon Resource Name (ARN) of the entity.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LockToken</i> A token used for optimistic locking. WAF returns a token to your get and list requests, to mark the state of the entity at the time of the request. To make changes to the entity associated with the token, you provide the token to operations like update and delete. WAF uses the token to ensure that no changes have been made to the entity since you last retrieved it. If a change has been made, the update fails with a <code>WAFOptimisticLockException</code>. If this happens, perform another get, and use the new token returned by that operation. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A description of the IP set that helps with identification. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> A unique identifier for the set. This ID is returned in the responses to create and list commands. You provide it to operations like update and delete.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the IP set. You cannot change the name of an <code>IPSet</code> after you create it.<br/>        """
        pass

    def create_regex_pattern_set(self, RegularExpressionList: List[Regex], Scope: str, Name: str, Description: str=None, Tags: List[Tag]=None) -> CreateRegexPatternSetResponse:
        r"""Creates a <a>RegexPatternSet</a>, which you reference in a <a>RegexPatternSetReferenceStatement</a>, to have WAF inspect a web request component for the specified patterns.

        :param self:
        :param Tags:  An array of key:value pairs to associate with the resource.<br/>RegularExpressionList:  Array of regular expression strings. <br/>Description:  A description of the set that helps with identification. <br/>Scope:  Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API.  To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:  <ul> <li> CLI - Specify the Region when you use the CloudFront scope: <code>--scope=CLOUDFRONT --region=us-east-1</code>.  </li> <li> API and SDKs - For all calls, use the Region endpoint us-east-1.  </li> </ul><br/>Name:  The name of the set. You cannot change the name after you create the set.<br/>
        :return: Summary:  High-level information about a <a>RegexPatternSet</a>, returned by operations like create and list. This provides information like the ID, that you can use to retrieve and manage a <code>RegexPatternSet</code>, and the ARN, that you provide to the <a>RegexPatternSetReferenceStatement</a> to use the pattern set in a <a>Rule</a>.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ARN</i> The Amazon Resource Name (ARN) of the entity.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LockToken</i> A token used for optimistic locking. WAF returns a token to your get and list requests, to mark the state of the entity at the time of the request. To make changes to the entity associated with the token, you provide the token to operations like update and delete. WAF uses the token to ensure that no changes have been made to the entity since you last retrieved it. If a change has been made, the update fails with a <code>WAFOptimisticLockException</code>. If this happens, perform another get, and use the new token returned by that operation. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A description of the set that helps with identification. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> A unique identifier for the set. This ID is returned in the responses to create and list commands. You provide it to operations like update and delete.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the data type instance. You cannot change the name after you create the instance.<br/>        """
        pass

    def create_rule_group(self, VisibilityConfig: VisibilityConfig, Capacity: CapacityUnit, Scope: str, Name: str, Description: str=None, Rules: List[Rule]=None, Tags: List[Tag]=None, CustomResponseBodies: CustomResponseBodies=None) -> CreateRuleGroupResponse:
        r"""Creates a <a>RuleGroup</a> per the specifications provided.   A rule group defines a collection of rules to inspect and control web requests that you can use in a <a>WebACL</a>. When you create a rule group, you define an immutable capacity limit. If you update a rule group, you must stay within the capacity. This allows others to reuse the rule group with confidence in its capacity requirements. 

        :param self:
        :param CustomResponseBodies:  A map of custom response keys and content bodies. When you create a rule with a block action, you can send a custom response to the web request. You define these for the rule group, and then use them in the rules that you define in the rule group.  For information about customizing web requests and responses, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-custom-request-response.html">Customizing web requests and responses in WAF</a> in the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">WAF Developer Guide</a>.  For information about the limits on count and size for custom request and response settings, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/limits.html">WAF quotas</a> in the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">WAF Developer Guide</a>. <br/>Tags:  An array of key:value pairs to associate with the resource.<br/>VisibilityConfig:  Defines and enables Amazon CloudWatch metrics and web request sample collection. :<br/>Rules:  The <a>Rule</a> statements used to identify the web requests that you want to allow, block, or count. Each rule includes one top-level statement that WAF uses to identify matching web requests, and parameters that govern how WAF handles them. <br/>Description:  A description of the rule group that helps with identification. <br/>Capacity:  The web ACL capacity units (WCUs) required for this rule group. When you create your own rule group, you define this, and you cannot change it after creation. When you add or modify the rules in a rule group, WAF enforces this limit. You can check the capacity for a set of rules using <a>CheckCapacity</a>. WAF uses WCUs to calculate and control the operating resources that are used to run your rules, rule groups, and web ACLs. WAF calculates capacity differently for each rule type, to reflect the relative cost of each rule. Simple rules that cost little to run use fewer WCUs than more complex rules that use more processing power. Rule group capacity is fixed at creation, which helps users plan their web ACL WCU usage when they use a rule group. The WCU limit for web ACLs is 1,500. <br/>Scope:  Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API.  To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:  <ul> <li> CLI - Specify the Region when you use the CloudFront scope: <code>--scope=CLOUDFRONT --region=us-east-1</code>.  </li> <li> API and SDKs - For all calls, use the Region endpoint us-east-1.  </li> </ul><br/>Name:  The name of the rule group. You cannot change the name of a rule group after you create it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MetricName</i> A name of the Amazon CloudWatch metric. The name can contain only the characters: A-Z, a-z, 0-9, - (hyphen), and _ (underscore). The name can be from one to 128 characters long. It can't contain whitespace or metric names reserved for WAF, for example "All" and "Default_Action." <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudWatchMetricsEnabled</i> A boolean indicating whether the associated resource sends metrics to Amazon CloudWatch. For the list of available metrics, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/monitoring-cloudwatch.html#waf-metrics">WAF Metrics</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SampledRequestsEnabled</i> A boolean indicating whether WAF should store a sampling of the web requests that match the rules. You can view the sampled requests through the WAF console. <br/>
        :return: Summary:  High-level information about a <a>RuleGroup</a>, returned by operations like create and list. This provides information like the ID, that you can use to retrieve and manage a <code>RuleGroup</code>, and the ARN, that you provide to the <a>RuleGroupReferenceStatement</a> to use the rule group in a <a>Rule</a>.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ARN</i> The Amazon Resource Name (ARN) of the entity.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LockToken</i> A token used for optimistic locking. WAF returns a token to your get and list requests, to mark the state of the entity at the time of the request. To make changes to the entity associated with the token, you provide the token to operations like update and delete. WAF uses the token to ensure that no changes have been made to the entity since you last retrieved it. If a change has been made, the update fails with a <code>WAFOptimisticLockException</code>. If this happens, perform another get, and use the new token returned by that operation. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A description of the rule group that helps with identification. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> A unique identifier for the rule group. This ID is returned in the responses to create and list commands. You provide it to operations like update and delete.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the data type instance. You cannot change the name after you create the instance.<br/>        """
        pass

    def create_web_acl(self, VisibilityConfig: VisibilityConfig, DefaultAction: DefaultAction, Scope: str, Name: str, Description: str=None, Rules: List[Rule]=None, Tags: List[Tag]=None, CustomResponseBodies: CustomResponseBodies=None) -> CreateWebACLResponse:
        r"""Creates a <a>WebACL</a> per the specifications provided.  A web ACL defines a collection of rules to use to inspect and control web requests. Each rule has an action defined (allow, block, or count) for requests that match the statement of the rule. In the web ACL, you assign a default action to take (allow, block) for any request that does not match any of the rules. The rules in a web ACL can be a combination of the types <a>Rule</a>, <a>RuleGroup</a>, and managed rule group. You can associate a web ACL with one or more Amazon Web Services resources to protect. The resources can be an Amazon CloudFront distribution, an Amazon API Gateway REST API, an Application Load Balancer, or an AppSync GraphQL API. 

        :param self:
        :param CustomResponseBodies:  A map of custom response keys and content bodies. When you create a rule with a block action, you can send a custom response to the web request. You define these for the web ACL, and then use them in the rules and default actions that you define in the web ACL.  For information about customizing web requests and responses, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-custom-request-response.html">Customizing web requests and responses in WAF</a> in the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">WAF Developer Guide</a>.  For information about the limits on count and size for custom request and response settings, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/limits.html">WAF quotas</a> in the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">WAF Developer Guide</a>. <br/>Tags:  An array of key:value pairs to associate with the resource.<br/>VisibilityConfig:  Defines and enables Amazon CloudWatch metrics and web request sample collection. :<br/>Rules:  The <a>Rule</a> statements used to identify the web requests that you want to allow, block, or count. Each rule includes one top-level statement that WAF uses to identify matching web requests, and parameters that govern how WAF handles them. <br/>Description:  A description of the web ACL that helps with identification. <br/>DefaultAction:  The action to perform if none of the <code>Rules</code> contained in the <code>WebACL</code> match. :<br/>Scope:  Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API.  To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:  <ul> <li> CLI - Specify the Region when you use the CloudFront scope: <code>--scope=CLOUDFRONT --region=us-east-1</code>.  </li> <li> API and SDKs - For all calls, use the Region endpoint us-east-1.  </li> </ul><br/>Name:  The name of the web ACL. You cannot change the name of a web ACL after you create it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Allow</i> Specifies that WAF should allow requests by default.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Allow</b>: Specifies that WAF should allow requests by default.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Block</i> Specifies that WAF should block requests by default. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Block</b>: Specifies that WAF should block requests by default. <br/>Defines a custom response for the web request. For information about customizing web requests and responses, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-custom-request-response.html">Customizing web requests and responses in WAF</a> in the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">WAF Developer Guide</a>. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CustomResponse</b>: Defines a custom response for the web request. For information about customizing web requests and responses, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-custom-request-response.html">Customizing web requests and responses in WAF</a> in the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">WAF Developer Guide</a>. Defines custom handling for the web request. For information about customizing web requests and responses, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-custom-request-response.html">Customizing web requests and responses in WAF</a> in the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">WAF Developer Guide</a>. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CustomRequestHandling</b>: Defines custom handling for the web request. For information about customizing web requests and responses, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-custom-request-response.html">Customizing web requests and responses in WAF</a> in the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">WAF Developer Guide</a>. &nbsp;&nbsp;&nbsp;&nbsp; <i>MetricName</i> A name of the Amazon CloudWatch metric. The name can contain only the characters: A-Z, a-z, 0-9, - (hyphen), and _ (underscore). The name can be from one to 128 characters long. It can't contain whitespace or metric names reserved for WAF, for example "All" and "Default_Action." <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudWatchMetricsEnabled</i> A boolean indicating whether the associated resource sends metrics to Amazon CloudWatch. For the list of available metrics, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/monitoring-cloudwatch.html#waf-metrics">WAF Metrics</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SampledRequestsEnabled</i> A boolean indicating whether WAF should store a sampling of the web requests that match the rules. You can view the sampled requests through the WAF console. <br/>
        :return: Summary:  High-level information about a <a>WebACL</a>, returned by operations like create and list. This provides information like the ID, that you can use to retrieve and manage a <code>WebACL</code>, and the ARN, that you provide to operations like <a>AssociateWebACL</a>.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ARN</i> The Amazon Resource Name (ARN) of the entity.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LockToken</i> A token used for optimistic locking. WAF returns a token to your get and list requests, to mark the state of the entity at the time of the request. To make changes to the entity associated with the token, you provide the token to operations like update and delete. WAF uses the token to ensure that no changes have been made to the entity since you last retrieved it. If a change has been made, the update fails with a <code>WAFOptimisticLockException</code>. If this happens, perform another get, and use the new token returned by that operation. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A description of the web ACL that helps with identification. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The unique identifier for the web ACL. This ID is returned in the responses to create and list commands. You provide it to operations like update and delete.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the web ACL. You cannot change the name of a web ACL after you create it.<br/>        """
        pass

    def delete_firewall_manager_rule_groups(self, WebACLLockToken: str, WebACLArn: str) -> DeleteFirewallManagerRuleGroupsResponse:
        r"""Deletes all rule groups that are managed by Firewall Manager for the specified web ACL.  You can only use this if <code>ManagedByFirewallManager</code> is false in the specified <a>WebACL</a>. 

        :param self:
        :param WebACLLockToken:  A token used for optimistic locking. WAF returns a token to your get and list requests, to mark the state of the entity at the time of the request. To make changes to the entity associated with the token, you provide the token to operations like update and delete. WAF uses the token to ensure that no changes have been made to the entity since you last retrieved it. If a change has been made, the update fails with a <code>WAFOptimisticLockException</code>. If this happens, perform another get, and use the new token returned by that operation. <br/>WebACLArn:  The Amazon Resource Name (ARN) of the web ACL.<br/>
        :return: NextWebACLLockToken:  A token used for optimistic locking. WAF returns a token to your get and list requests, to mark the state of the entity at the time of the request. To make changes to the entity associated with the token, you provide the token to operations like update and delete. WAF uses the token to ensure that no changes have been made to the entity since you last retrieved it. If a change has been made, the update fails with a <code>WAFOptimisticLockException</code>. If this happens, perform another get, and use the new token returned by that operation. <br/>        """
        pass

    def delete_ip_set(self, LockToken: str, Id: str, Scope: str, Name: str) -> DeleteIPSetResponse:
        r"""Deletes the specified <a>IPSet</a>. 

        :param self:
        :param LockToken:  A token used for optimistic locking. WAF returns a token to your get and list requests, to mark the state of the entity at the time of the request. To make changes to the entity associated with the token, you provide the token to operations like update and delete. WAF uses the token to ensure that no changes have been made to the entity since you last retrieved it. If a change has been made, the update fails with a <code>WAFOptimisticLockException</code>. If this happens, perform another get, and use the new token returned by that operation. <br/>Id:  A unique identifier for the set. This ID is returned in the responses to create and list commands. You provide it to operations like update and delete.<br/>Scope:  Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API.  To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:  <ul> <li> CLI - Specify the Region when you use the CloudFront scope: <code>--scope=CLOUDFRONT --region=us-east-1</code>.  </li> <li> API and SDKs - For all calls, use the Region endpoint us-east-1.  </li> </ul><br/>Name:  The name of the IP set. You cannot change the name of an <code>IPSet</code> after you create it.<br/>
        :return:         """
        pass

    def delete_logging_configuration(self, ResourceArn: str) -> DeleteLoggingConfigurationResponse:
        r"""Deletes the <a>LoggingConfiguration</a> from the specified web ACL.

        :param self:
        :param ResourceArn:  The Amazon Resource Name (ARN) of the web ACL from which you want to delete the <a>LoggingConfiguration</a>.<br/>
        :return:         """
        pass

    def delete_permission_policy(self, ResourceArn: str) -> DeletePermissionPolicyResponse:
        r"""Permanently deletes an IAM policy from the specified rule group. You must be the owner of the rule group to perform this operation.

        :param self:
        :param ResourceArn:  The Amazon Resource Name (ARN) of the rule group from which you want to delete the policy. You must be the owner of the rule group to perform this operation.<br/>
        :return:         """
        pass

    def delete_regex_pattern_set(self, LockToken: str, Id: str, Scope: str, Name: str) -> DeleteRegexPatternSetResponse:
        r"""Deletes the specified <a>RegexPatternSet</a>.

        :param self:
        :param LockToken:  A token used for optimistic locking. WAF returns a token to your get and list requests, to mark the state of the entity at the time of the request. To make changes to the entity associated with the token, you provide the token to operations like update and delete. WAF uses the token to ensure that no changes have been made to the entity since you last retrieved it. If a change has been made, the update fails with a <code>WAFOptimisticLockException</code>. If this happens, perform another get, and use the new token returned by that operation. <br/>Id:  A unique identifier for the set. This ID is returned in the responses to create and list commands. You provide it to operations like update and delete.<br/>Scope:  Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API.  To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:  <ul> <li> CLI - Specify the Region when you use the CloudFront scope: <code>--scope=CLOUDFRONT --region=us-east-1</code>.  </li> <li> API and SDKs - For all calls, use the Region endpoint us-east-1.  </li> </ul><br/>Name:  The name of the set. You cannot change the name after you create the set.<br/>
        :return:         """
        pass

    def delete_rule_group(self, LockToken: str, Id: str, Scope: str, Name: str) -> DeleteRuleGroupResponse:
        r"""Deletes the specified <a>RuleGroup</a>.

        :param self:
        :param LockToken:  A token used for optimistic locking. WAF returns a token to your get and list requests, to mark the state of the entity at the time of the request. To make changes to the entity associated with the token, you provide the token to operations like update and delete. WAF uses the token to ensure that no changes have been made to the entity since you last retrieved it. If a change has been made, the update fails with a <code>WAFOptimisticLockException</code>. If this happens, perform another get, and use the new token returned by that operation. <br/>Id:  A unique identifier for the rule group. This ID is returned in the responses to create and list commands. You provide it to operations like update and delete.<br/>Scope:  Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API.  To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:  <ul> <li> CLI - Specify the Region when you use the CloudFront scope: <code>--scope=CLOUDFRONT --region=us-east-1</code>.  </li> <li> API and SDKs - For all calls, use the Region endpoint us-east-1.  </li> </ul><br/>Name:  The name of the rule group. You cannot change the name of a rule group after you create it.<br/>
        :return:         """
        pass

    def delete_web_acl(self, LockToken: str, Id: str, Scope: str, Name: str) -> DeleteWebACLResponse:
        r"""Deletes the specified <a>WebACL</a>. You can only use this if <code>ManagedByFirewallManager</code> is false in the specified <a>WebACL</a>. 

        :param self:
        :param LockToken:  A token used for optimistic locking. WAF returns a token to your get and list requests, to mark the state of the entity at the time of the request. To make changes to the entity associated with the token, you provide the token to operations like update and delete. WAF uses the token to ensure that no changes have been made to the entity since you last retrieved it. If a change has been made, the update fails with a <code>WAFOptimisticLockException</code>. If this happens, perform another get, and use the new token returned by that operation. <br/>Id:  The unique identifier for the web ACL. This ID is returned in the responses to create and list commands. You provide it to operations like update and delete.<br/>Scope:  Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API.  To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:  <ul> <li> CLI - Specify the Region when you use the CloudFront scope: <code>--scope=CLOUDFRONT --region=us-east-1</code>.  </li> <li> API and SDKs - For all calls, use the Region endpoint us-east-1.  </li> </ul><br/>Name:  The name of the web ACL. You cannot change the name of a web ACL after you create it.<br/>
        :return:         """
        pass

    def describe_managed_rule_group(self, Scope: str, Name: str, VendorName: str) -> DescribeManagedRuleGroupResponse:
        r"""Provides high-level information for a managed rule group, including descriptions of the rules. 

        :param self:
        :param Scope:  Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API.  To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:  <ul> <li> CLI - Specify the Region when you use the CloudFront scope: <code>--scope=CLOUDFRONT --region=us-east-1</code>.  </li> <li> API and SDKs - For all calls, use the Region endpoint us-east-1.  </li> </ul><br/>Name:  The name of the managed rule group. You use this, along with the vendor name, to identify the rule group.<br/>VendorName:  The name of the managed rule group vendor. You use this, along with the rule group name, to identify the rule group.<br/>
        :return: ConsumedLabels:  The labels that one or more rules in this rule group match against in label match statements. These labels are defined in a <code>LabelMatchStatement</code> specification, in the <a>Statement</a> definition of a rule. <br/>AvailableLabels:  The labels that one or more rules in this rule group add to matching web requests. These labels are defined in the <code>RuleLabels</code> for a <a>Rule</a>.<br/>LabelNamespace:  The label namespace prefix for this rule group. All labels added by rules in this rule group have this prefix.  <ul> <li> The syntax for the label namespace prefix for a managed rule group is the following:   <code>awswaf:managed:&lt;vendor&gt;:&lt;rule group name&gt;</code>: </li> <li> When a rule with a label matches a web request, WAF adds the fully qualified label to the request. A fully qualified label is made up of the label namespace from the rule group or web ACL where the rule is defined and the label from the rule, separated by a colon:   <code>&lt;label namespace&gt;:&lt;label from rule&gt;</code>  </li> </ul><br/>Rules:  <p/><br/>Capacity:  The web ACL capacity units (WCUs) required for this rule group. WAF uses web ACL capacity units (WCU) to calculate and control the operating resources that are used to run your rules, rule groups, and web ACLs. WAF calculates capacity differently for each rule type, to reflect each rule's relative cost. Rule group capacity is fixed at creation, so users can plan their web ACL WCU usage when they use a rule group. The WCU limit for web ACLs is 1,500. <br/>        """
        pass

    def disassociate_web_acl(self, ResourceArn: str) -> DisassociateWebACLResponse:
        r"""Disassociates a web ACL from a regional application resource. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API.  For Amazon CloudFront, don't use this call. Instead, use your CloudFront distribution configuration. To disassociate a web ACL, provide an empty web ACL ID in the CloudFront call <code>UpdateDistribution</code>. For information, see <a href="https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDistribution.html">UpdateDistribution</a>.

        :param self:
        :param ResourceArn:  The Amazon Resource Name (ARN) of the resource to disassociate from the web ACL.  The ARN must be in one of the following formats: <ul> <li> For an Application Load Balancer: <code>arn:aws:elasticloadbalancing:<i>region</i>:<i>account-id</i>:loadbalancer/app/<i>load-balancer-name</i>/<i>load-balancer-id</i> </code>  </li> <li> For an Amazon API Gateway REST API: <code>arn:aws:apigateway:<i>region</i>::/restapis/<i>api-id</i>/stages/<i>stage-name</i> </code>  </li> <li> For an AppSync GraphQL API: <code>arn:aws:appsync:<i>region</i>:<i>account-id</i>:apis/<i>GraphQLApiId</i> </code>  </li> </ul><br/>
        :return:         """
        pass

    def get_ip_set(self, Id: str, Scope: str, Name: str) -> GetIPSetResponse:
        r"""Retrieves the specified <a>IPSet</a>.

        :param self:
        :param Id:  A unique identifier for the set. This ID is returned in the responses to create and list commands. You provide it to operations like update and delete.<br/>Scope:  Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API.  To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:  <ul> <li> CLI - Specify the Region when you use the CloudFront scope: <code>--scope=CLOUDFRONT --region=us-east-1</code>.  </li> <li> API and SDKs - For all calls, use the Region endpoint us-east-1.  </li> </ul><br/>Name:  The name of the IP set. You cannot change the name of an <code>IPSet</code> after you create it.<br/>
        :return: LockToken:  A token used for optimistic locking. WAF returns a token to your get and list requests, to mark the state of the entity at the time of the request. To make changes to the entity associated with the token, you provide the token to operations like update and delete. WAF uses the token to ensure that no changes have been made to the entity since you last retrieved it. If a change has been made, the update fails with a <code>WAFOptimisticLockException</code>. If this happens, perform another get, and use the new token returned by that operation. <br/>IPSet:  <p/>:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Addresses</i> Contains an array of strings that specify one or more IP addresses or blocks of IP addresses in Classless Inter-Domain Routing (CIDR) notation. WAF supports all IPv4 and IPv6 CIDR ranges except for /0.  Examples:  <ul> <li> To configure WAF to allow, block, or count requests that originated from the IP address 192.0.2.44, specify <code>192.0.2.44/32</code>. </li> <li> To configure WAF to allow, block, or count requests that originated from IP addresses from 192.0.2.0 to 192.0.2.255, specify <code>192.0.2.0/24</code>. </li> <li> To configure WAF to allow, block, or count requests that originated from the IP address 1111:0000:0000:0000:0000:0000:0000:0111, specify <code>1111:0000:0000:0000:0000:0000:0000:0111/128</code>. </li> <li> To configure WAF to allow, block, or count requests that originated from IP addresses 1111:0000:0000:0000:0000:0000:0000:0000 to 1111:0000:0000:0000:ffff:ffff:ffff:ffff, specify <code>1111:0000:0000:0000:0000:0000:0000:0000/64</code>. </li> </ul> For more information about CIDR notation, see the Wikipedia entry <a href="https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing">Classless Inter-Domain Routing</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IPAddressVersion</i> Specify IPV4 or IPV6. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A description of the IP set that helps with identification. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ARN</i> The Amazon Resource Name (ARN) of the entity.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> A unique identifier for the set. This ID is returned in the responses to create and list commands. You provide it to operations like update and delete.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the IP set. You cannot change the name of an <code>IPSet</code> after you create it.<br/>        """
        pass

    def get_logging_configuration(self, ResourceArn: str) -> GetLoggingConfigurationResponse:
        r"""Returns the <a>LoggingConfiguration</a> for the specified web ACL.

        :param self:
        :param ResourceArn:  The Amazon Resource Name (ARN) of the web ACL for which you want to get the <a>LoggingConfiguration</a>.<br/>
        :return: LoggingConfiguration:  The <a>LoggingConfiguration</a> for the specified web ACL.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LoggingFilter</i> Filtering that specifies which web requests are kept in the logs and which are dropped. You can filter on the rule action and on the web request labels that were applied by matching rules during web ACL evaluation. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>LoggingFilter</b>: Filtering that specifies which web requests are kept in the logs and which are dropped. You can filter on the rule action and on the web request labels that were applied by matching rules during web ACL evaluation. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ManagedByFirewallManager</i> Indicates whether the logging configuration was created by Firewall Manager, as part of an WAF policy configuration. If true, only Firewall Manager can modify or delete the configuration. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RedactedFields</i> The parts of the request that you want to keep out of the logs. For example, if you redact the <code>HEADER</code> field, the <code>HEADER</code> field in the firehose will be <code>xxx</code>.  <note> You must use one of the following values: <code>URI</code>, <code>QUERY_STRING</code>, <code>HEADER</code>, or <code>METHOD</code>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogDestinationConfigs</i> The Amazon Kinesis Data Firehose Amazon Resource Name (ARNs) that you want to associate with the web ACL.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceArn</i> The Amazon Resource Name (ARN) of the web ACL that you want to associate with <code>LogDestinationConfigs</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultBehavior</i> Default handling for logs that don't match any of the specified filtering conditions. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Filters</i> The filters that you want to apply to the logs. <br/>        """
        pass

    def get_permission_policy(self, ResourceArn: str) -> GetPermissionPolicyResponse:
        r"""Returns the IAM policy that is attached to the specified rule group. You must be the owner of the rule group to perform this operation.

        :param self:
        :param ResourceArn:  The Amazon Resource Name (ARN) of the rule group for which you want to get the policy.<br/>
        :return: Policy:  The IAM policy that is attached to the specified rule group.<br/>        """
        pass

    def get_rate_based_statement_managed_keys(self, RuleName: str, WebACLId: str, WebACLName: str, Scope: str) -> GetRateBasedStatementManagedKeysResponse:
        r"""Retrieves the keys that are currently blocked by a rate-based rule. The maximum number of managed keys that can be blocked for a single rate-based rule is 10,000. If more than 10,000 addresses exceed the rate limit, those with the highest rates are blocked.

        :param self:
        :param RuleName:  The name of the rate-based rule to get the keys for.<br/>WebACLId:  The unique identifier for the web ACL. This ID is returned in the responses to create and list commands. You provide it to operations like update and delete.<br/>WebACLName:  The name of the web ACL. You cannot change the name of a web ACL after you create it.<br/>Scope:  Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API.  To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:  <ul> <li> CLI - Specify the Region when you use the CloudFront scope: <code>--scope=CLOUDFRONT --region=us-east-1</code>.  </li> <li> API and SDKs - For all calls, use the Region endpoint us-east-1.  </li> </ul><br/>
        :return: ManagedKeysIPV6:  The keys that are of Internet Protocol version 6 (IPv6). :<br/>ManagedKeysIPV4:  The keys that are of Internet Protocol version 4 (IPv4). :<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Addresses</i> The IP addresses that are currently blocked.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IPAddressVersion</i> <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Addresses</i> The IP addresses that are currently blocked.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IPAddressVersion</i> <br/>        """
        pass

    def get_regex_pattern_set(self, Id: str, Scope: str, Name: str) -> GetRegexPatternSetResponse:
        r"""Retrieves the specified <a>RegexPatternSet</a>.

        :param self:
        :param Id:  A unique identifier for the set. This ID is returned in the responses to create and list commands. You provide it to operations like update and delete.<br/>Scope:  Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API.  To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:  <ul> <li> CLI - Specify the Region when you use the CloudFront scope: <code>--scope=CLOUDFRONT --region=us-east-1</code>.  </li> <li> API and SDKs - For all calls, use the Region endpoint us-east-1.  </li> </ul><br/>Name:  The name of the set. You cannot change the name after you create the set.<br/>
        :return: LockToken:  A token used for optimistic locking. WAF returns a token to your get and list requests, to mark the state of the entity at the time of the request. To make changes to the entity associated with the token, you provide the token to operations like update and delete. WAF uses the token to ensure that no changes have been made to the entity since you last retrieved it. If a change has been made, the update fails with a <code>WAFOptimisticLockException</code>. If this happens, perform another get, and use the new token returned by that operation. <br/>RegexPatternSet:  <p/>:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RegularExpressionList</i> The regular expression patterns in the set.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A description of the set that helps with identification. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ARN</i> The Amazon Resource Name (ARN) of the entity.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> A unique identifier for the set. This ID is returned in the responses to create and list commands. You provide it to operations like update and delete.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the set. You cannot change the name after you create the set.<br/>        """
        pass

    def get_rule_group(self, Name: str=None, Scope: str=None, Id: str=None, ARN: str=None) -> GetRuleGroupResponse:
        r"""Retrieves the specified <a>RuleGroup</a>.

        :param self:
        :param ARN:  The Amazon Resource Name (ARN) of the entity.<br/>Id:  A unique identifier for the rule group. This ID is returned in the responses to create and list commands. You provide it to operations like update and delete.<br/>Scope:  Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API.  To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:  <ul> <li> CLI - Specify the Region when you use the CloudFront scope: <code>--scope=CLOUDFRONT --region=us-east-1</code>.  </li> <li> API and SDKs - For all calls, use the Region endpoint us-east-1.  </li> </ul><br/>Name:  The name of the rule group. You cannot change the name of a rule group after you create it.<br/>
        :return: LockToken:  A token used for optimistic locking. WAF returns a token to your get and list requests, to mark the state of the entity at the time of the request. To make changes to the entity associated with the token, you provide the token to operations like update and delete. WAF uses the token to ensure that no changes have been made to the entity since you last retrieved it. If a change has been made, the update fails with a <code>WAFOptimisticLockException</code>. If this happens, perform another get, and use the new token returned by that operation. <br/>RuleGroup:  <p/>:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ConsumedLabels</i> The labels that one or more rules in this rule group match against in label match statements. These labels are defined in a <code>LabelMatchStatement</code> specification, in the <a>Statement</a> definition of a rule. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AvailableLabels</i> The labels that one or more rules in this rule group add to matching web requests. These labels are defined in the <code>RuleLabels</code> for a <a>Rule</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomResponseBodies</i> A map of custom response keys and content bodies. When you create a rule with a block action, you can send a custom response to the web request. You define these for the rule group, and then use them in the rules that you define in the rule group.  For information about customizing web requests and responses, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-custom-request-response.html">Customizing web requests and responses in WAF</a> in the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">WAF Developer Guide</a>.  For information about the limits on count and size for custom request and response settings, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/limits.html">WAF quotas</a> in the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">WAF Developer Guide</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LabelNamespace</i> The label namespace prefix for this rule group. All labels added by rules in this rule group have this prefix.  <ul> <li> The syntax for the label namespace prefix for your rule groups is the following:   <code>awswaf:&lt;account ID&gt;:rulegroup:&lt;rule group name&gt;:</code>  </li> <li> When a rule with a label matches a web request, WAF adds the fully qualified label to the request. A fully qualified label is made up of the label namespace from the rule group or web ACL where the rule is defined and the label from the rule, separated by a colon:   <code>&lt;label namespace&gt;:&lt;label from rule&gt;</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VisibilityConfig</i> Defines and enables Amazon CloudWatch metrics and web request sample collection. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>VisibilityConfig</b>: Defines and enables Amazon CloudWatch metrics and web request sample collection. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Rules</i> The <a>Rule</a> statements used to identify the web requests that you want to allow, block, or count. Each rule includes one top-level statement that WAF uses to identify matching web requests, and parameters that govern how WAF handles them. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A description of the rule group that helps with identification. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ARN</i> The Amazon Resource Name (ARN) of the entity.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Capacity</i> The web ACL capacity units (WCUs) required for this rule group. When you create your own rule group, you define this, and you cannot change it after creation. When you add or modify the rules in a rule group, WAF enforces this limit. You can check the capacity for a set of rules using <a>CheckCapacity</a>. WAF uses WCUs to calculate and control the operating resources that are used to run your rules, rule groups, and web ACLs. WAF calculates capacity differently for each rule type, to reflect the relative cost of each rule. Simple rules that cost little to run use fewer WCUs than more complex rules that use more processing power. Rule group capacity is fixed at creation, which helps users plan their web ACL WCU usage when they use a rule group. The WCU limit for web ACLs is 1,500. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> A unique identifier for the rule group. This ID is returned in the responses to create and list commands. You provide it to operations like update and delete.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the rule group. You cannot change the name of a rule group after you create it.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MetricName</i> A name of the Amazon CloudWatch metric. The name can contain only the characters: A-Z, a-z, 0-9, - (hyphen), and _ (underscore). The name can be from one to 128 characters long. It can't contain whitespace or metric names reserved for WAF, for example "All" and "Default_Action." <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudWatchMetricsEnabled</i> A boolean indicating whether the associated resource sends metrics to Amazon CloudWatch. For the list of available metrics, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/monitoring-cloudwatch.html#waf-metrics">WAF Metrics</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SampledRequestsEnabled</i> A boolean indicating whether WAF should store a sampling of the web requests that match the rules. You can view the sampled requests through the WAF console. <br/>        """
        pass

    def get_sampled_requests(self, MaxItems: ListMaxItems, TimeWindow: TimeWindow, Scope: str, RuleMetricName: str, WebAclArn: str) -> GetSampledRequestsResponse:
        r"""Gets detailed information about a specified number of requests--a sample--that WAF randomly selects from among the first 5,000 requests that your Amazon Web Services resource received during a time range that you choose. You can specify a sample size of up to 500 requests, and you can specify any time range in the previous three hours.  <code>GetSampledRequests</code> returns a time range, which is usually the time range that you specified. However, if your resource (such as a CloudFront distribution) received 5,000 requests before the specified time range elapsed, <code>GetSampledRequests</code> returns an updated time range. This new time range indicates the actual period during which WAF selected the requests in the sample.

        :param self:
        :param MaxItems:  The number of requests that you want WAF to return from among the first 5,000 requests that your Amazon Web Services resource received during the time range. If your resource received fewer requests than the value of <code>MaxItems</code>, <code>GetSampledRequests</code> returns information about all of them. <br/>TimeWindow:  The start date and time and the end date and time of the range for which you want <code>GetSampledRequests</code> to return a sample of requests. You must specify the times in Coordinated Universal Time (UTC) format. UTC format includes the special designator, <code>Z</code>. For example, <code>"2016-09-27T14:50Z"</code>. You can specify any time range in the previous three hours. If you specify a start time that's earlier than three hours ago, WAF sets it to three hours ago.:<br/>Scope:  Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API.  To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:  <ul> <li> CLI - Specify the Region when you use the CloudFront scope: <code>--scope=CLOUDFRONT --region=us-east-1</code>.  </li> <li> API and SDKs - For all calls, use the Region endpoint us-east-1.  </li> </ul><br/>RuleMetricName:  The metric name assigned to the <code>Rule</code> or <code>RuleGroup</code> for which you want a sample of requests.<br/>WebAclArn:  The Amazon resource name (ARN) of the <code>WebACL</code> for which you want a sample of requests.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndTime</i> The end of the time range from which you want <code>GetSampledRequests</code> to return a sample of the requests that your Amazon Web Services resource received. You must specify the times in Coordinated Universal Time (UTC) format. UTC format includes the special designator, <code>Z</code>. For example, <code>"2016-09-27T14:50Z"</code>. You can specify any time range in the previous three hours.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StartTime</i> The beginning of the time range from which you want <code>GetSampledRequests</code> to return a sample of the requests that your Amazon Web Services resource received. You must specify the times in Coordinated Universal Time (UTC) format. UTC format includes the special designator, <code>Z</code>. For example, <code>"2016-09-27T14:50Z"</code>. You can specify any time range in the previous three hours.<br/>
        :return: TimeWindow:  Usually, <code>TimeWindow</code> is the time range that you specified in the <code>GetSampledRequests</code> request. However, if your Amazon Web Services resource received more than 5,000 requests during the time range that you specified in the request, <code>GetSampledRequests</code> returns the time range for the first 5,000 requests. Times are in Coordinated Universal Time (UTC) format.:<br/>PopulationSize:  The total number of requests from which <code>GetSampledRequests</code> got a sample of <code>MaxItems</code> requests. If <code>PopulationSize</code> is less than <code>MaxItems</code>, the sample includes every request that your Amazon Web Services resource received during the specified time range.<br/>SampledRequests:  A complex type that contains detailed information about each of the requests in the sample.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndTime</i> The end of the time range from which you want <code>GetSampledRequests</code> to return a sample of the requests that your Amazon Web Services resource received. You must specify the times in Coordinated Universal Time (UTC) format. UTC format includes the special designator, <code>Z</code>. For example, <code>"2016-09-27T14:50Z"</code>. You can specify any time range in the previous three hours.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StartTime</i> The beginning of the time range from which you want <code>GetSampledRequests</code> to return a sample of the requests that your Amazon Web Services resource received. You must specify the times in Coordinated Universal Time (UTC) format. UTC format includes the special designator, <code>Z</code>. For example, <code>"2016-09-27T14:50Z"</code>. You can specify any time range in the previous three hours.<br/>        """
        pass

    def get_web_acl(self, Id: str, Scope: str, Name: str) -> GetWebACLResponse:
        r"""Retrieves the specified <a>WebACL</a>.

        :param self:
        :param Id:  The unique identifier for the web ACL. This ID is returned in the responses to create and list commands. You provide it to operations like update and delete.<br/>Scope:  Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API.  To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:  <ul> <li> CLI - Specify the Region when you use the CloudFront scope: <code>--scope=CLOUDFRONT --region=us-east-1</code>.  </li> <li> API and SDKs - For all calls, use the Region endpoint us-east-1.  </li> </ul><br/>Name:  The name of the web ACL. You cannot change the name of a web ACL after you create it.<br/>
        :return: LockToken:  A token used for optimistic locking. WAF returns a token to your get and list requests, to mark the state of the entity at the time of the request. To make changes to the entity associated with the token, you provide the token to operations like update and delete. WAF uses the token to ensure that no changes have been made to the entity since you last retrieved it. If a change has been made, the update fails with a <code>WAFOptimisticLockException</code>. If this happens, perform another get, and use the new token returned by that operation. <br/>WebACL:  The web ACL specification. You can modify the settings in this web ACL and use it to update this web ACL or create a new one.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomResponseBodies</i> A map of custom response keys and content bodies. When you create a rule with a block action, you can send a custom response to the web request. You define these for the web ACL, and then use them in the rules and default actions that you define in the web ACL.  For information about customizing web requests and responses, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-custom-request-response.html">Customizing web requests and responses in WAF</a> in the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">WAF Developer Guide</a>.  For information about the limits on count and size for custom request and response settings, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/limits.html">WAF quotas</a> in the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">WAF Developer Guide</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LabelNamespace</i> The label namespace prefix for this web ACL. All labels added by rules in this web ACL have this prefix.  <ul> <li> The syntax for the label namespace prefix for a web ACL is the following:   <code>awswaf:&lt;account ID&gt;:webacl:&lt;web ACL name&gt;:</code>  </li> <li> When a rule with a label matches a web request, WAF adds the fully qualified label to the request. A fully qualified label is made up of the label namespace from the rule group or web ACL where the rule is defined and the label from the rule, separated by a colon:   <code>&lt;label namespace&gt;:&lt;label from rule&gt;</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ManagedByFirewallManager</i> Indicates whether this web ACL is managed by Firewall Manager. If true, then only Firewall Manager can delete the web ACL or any Firewall Manager rule groups in the web ACL. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PostProcessFirewallManagerRuleGroups</i> The last set of rules for WAF to process in the web ACL. This is defined in an Firewall Manager WAF policy and contains only rule group references. You can't alter these. Any rules and rule groups that you define for the web ACL are prioritized before these.  In the Firewall Manager WAF policy, the Firewall Manager administrator can define a set of rule groups to run first in the web ACL and a set of rule groups to run last. Within each set, the administrator prioritizes the rule groups, to determine their relative processing order.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreProcessFirewallManagerRuleGroups</i> The first set of rules for WAF to process in the web ACL. This is defined in an Firewall Manager WAF policy and contains only rule group references. You can't alter these. Any rules and rule groups that you define for the web ACL are prioritized after these.  In the Firewall Manager WAF policy, the Firewall Manager administrator can define a set of rule groups to run first in the web ACL and a set of rule groups to run last. Within each set, the administrator prioritizes the rule groups, to determine their relative processing order.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Capacity</i> The web ACL capacity units (WCUs) currently being used by this web ACL.  WAF uses WCUs to calculate and control the operating resources that are used to run your rules, rule groups, and web ACLs. WAF calculates capacity differently for each rule type, to reflect the relative cost of each rule. Simple rules that cost little to run use fewer WCUs than more complex rules that use more processing power. Rule group capacity is fixed at creation, which helps users plan their web ACL WCU usage when they use a rule group. The WCU limit for web ACLs is 1,500. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VisibilityConfig</i> Defines and enables Amazon CloudWatch metrics and web request sample collection. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>VisibilityConfig</b>: Defines and enables Amazon CloudWatch metrics and web request sample collection. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Rules</i> The <a>Rule</a> statements used to identify the web requests that you want to allow, block, or count. Each rule includes one top-level statement that WAF uses to identify matching web requests, and parameters that govern how WAF handles them. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A description of the web ACL that helps with identification. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultAction</i> The action to perform if none of the <code>Rules</code> contained in the <code>WebACL</code> match. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DefaultAction</b>: The action to perform if none of the <code>Rules</code> contained in the <code>WebACL</code> match. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ARN</i> The Amazon Resource Name (ARN) of the web ACL that you want to associate with the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> A unique identifier for the <code>WebACL</code>. This ID is returned in the responses to create and list commands. You use this ID to do things like get, update, and delete a <code>WebACL</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the web ACL. You cannot change the name of a web ACL after you create it.<br/>Specifies that WAF should block requests by default. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Block</b>: Specifies that WAF should block requests by default. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MetricName</i> A name of the Amazon CloudWatch metric. The name can contain only the characters: A-Z, a-z, 0-9, - (hyphen), and _ (underscore). The name can be from one to 128 characters long. It can't contain whitespace or metric names reserved for WAF, for example "All" and "Default_Action." <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudWatchMetricsEnabled</i> A boolean indicating whether the associated resource sends metrics to Amazon CloudWatch. For the list of available metrics, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/monitoring-cloudwatch.html#waf-metrics">WAF Metrics</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SampledRequestsEnabled</i> A boolean indicating whether WAF should store a sampling of the web requests that match the rules. You can view the sampled requests through the WAF console. <br/>        """
        pass

    def get_web_acl_for_resource(self, ResourceArn: str) -> GetWebACLForResourceResponse:
        r"""Retrieves the <a>WebACL</a> for the specified resource. 

        :param self:
        :param ResourceArn:  The ARN (Amazon Resource Name) of the resource.<br/>
        :return: WebACL:  The web ACL that is associated with the resource. If there is no associated resource, WAF returns a null web ACL.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomResponseBodies</i> A map of custom response keys and content bodies. When you create a rule with a block action, you can send a custom response to the web request. You define these for the web ACL, and then use them in the rules and default actions that you define in the web ACL.  For information about customizing web requests and responses, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-custom-request-response.html">Customizing web requests and responses in WAF</a> in the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">WAF Developer Guide</a>.  For information about the limits on count and size for custom request and response settings, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/limits.html">WAF quotas</a> in the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">WAF Developer Guide</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LabelNamespace</i> The label namespace prefix for this web ACL. All labels added by rules in this web ACL have this prefix.  <ul> <li> The syntax for the label namespace prefix for a web ACL is the following:   <code>awswaf:&lt;account ID&gt;:webacl:&lt;web ACL name&gt;:</code>  </li> <li> When a rule with a label matches a web request, WAF adds the fully qualified label to the request. A fully qualified label is made up of the label namespace from the rule group or web ACL where the rule is defined and the label from the rule, separated by a colon:   <code>&lt;label namespace&gt;:&lt;label from rule&gt;</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ManagedByFirewallManager</i> Indicates whether this web ACL is managed by Firewall Manager. If true, then only Firewall Manager can delete the web ACL or any Firewall Manager rule groups in the web ACL. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PostProcessFirewallManagerRuleGroups</i> The last set of rules for WAF to process in the web ACL. This is defined in an Firewall Manager WAF policy and contains only rule group references. You can't alter these. Any rules and rule groups that you define for the web ACL are prioritized before these.  In the Firewall Manager WAF policy, the Firewall Manager administrator can define a set of rule groups to run first in the web ACL and a set of rule groups to run last. Within each set, the administrator prioritizes the rule groups, to determine their relative processing order.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PreProcessFirewallManagerRuleGroups</i> The first set of rules for WAF to process in the web ACL. This is defined in an Firewall Manager WAF policy and contains only rule group references. You can't alter these. Any rules and rule groups that you define for the web ACL are prioritized after these.  In the Firewall Manager WAF policy, the Firewall Manager administrator can define a set of rule groups to run first in the web ACL and a set of rule groups to run last. Within each set, the administrator prioritizes the rule groups, to determine their relative processing order.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Capacity</i> The web ACL capacity units (WCUs) currently being used by this web ACL.  WAF uses WCUs to calculate and control the operating resources that are used to run your rules, rule groups, and web ACLs. WAF calculates capacity differently for each rule type, to reflect the relative cost of each rule. Simple rules that cost little to run use fewer WCUs than more complex rules that use more processing power. Rule group capacity is fixed at creation, which helps users plan their web ACL WCU usage when they use a rule group. The WCU limit for web ACLs is 1,500. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>VisibilityConfig</i> Defines and enables Amazon CloudWatch metrics and web request sample collection. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>VisibilityConfig</b>: Defines and enables Amazon CloudWatch metrics and web request sample collection. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Rules</i> The <a>Rule</a> statements used to identify the web requests that you want to allow, block, or count. Each rule includes one top-level statement that WAF uses to identify matching web requests, and parameters that govern how WAF handles them. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> A description of the web ACL that helps with identification. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultAction</i> The action to perform if none of the <code>Rules</code> contained in the <code>WebACL</code> match. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>DefaultAction</b>: The action to perform if none of the <code>Rules</code> contained in the <code>WebACL</code> match. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ARN</i> The Amazon Resource Name (ARN) of the web ACL that you want to associate with the resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> A unique identifier for the <code>WebACL</code>. This ID is returned in the responses to create and list commands. You use this ID to do things like get, update, and delete a <code>WebACL</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the web ACL. You cannot change the name of a web ACL after you create it.<br/>Specifies that WAF should block requests by default. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Block</b>: Specifies that WAF should block requests by default. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>MetricName</i> A name of the Amazon CloudWatch metric. The name can contain only the characters: A-Z, a-z, 0-9, - (hyphen), and _ (underscore). The name can be from one to 128 characters long. It can't contain whitespace or metric names reserved for WAF, for example "All" and "Default_Action." <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudWatchMetricsEnabled</i> A boolean indicating whether the associated resource sends metrics to Amazon CloudWatch. For the list of available metrics, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/monitoring-cloudwatch.html#waf-metrics">WAF Metrics</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SampledRequestsEnabled</i> A boolean indicating whether WAF should store a sampling of the web requests that match the rules. You can view the sampled requests through the WAF console. <br/>        """
        pass

    def list_available_managed_rule_groups(self, Scope: str, NextMarker: str=None, Limit: int=None) -> ListAvailableManagedRuleGroupsResponse:
        r"""Retrieves an array of managed rule groups that are available for you to use. This list includes all Amazon Web Services Managed Rules rule groups and the Marketplace managed rule groups that you're subscribed to.

        :param self:
        :param Limit:  The maximum number of objects that you want WAF to return for this request. If more objects are available, in the response, WAF provides a <code>NextMarker</code> value that you can use in a subsequent call to get the next batch of objects.<br/>NextMarker:  When you request a list of objects with a <code>Limit</code> setting, if the number of objects that are still available for retrieval exceeds the limit, WAF returns a <code>NextMarker</code> value in the response. To retrieve the next batch of objects, provide the marker from the prior call in your next request.<br/>Scope:  Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API.  To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:  <ul> <li> CLI - Specify the Region when you use the CloudFront scope: <code>--scope=CLOUDFRONT --region=us-east-1</code>.  </li> <li> API and SDKs - For all calls, use the Region endpoint us-east-1.  </li> </ul><br/>
        :return: ManagedRuleGroups:  <p/><br/>NextMarker:  When you request a list of objects with a <code>Limit</code> setting, if the number of objects that are still available for retrieval exceeds the limit, WAF returns a <code>NextMarker</code> value in the response. To retrieve the next batch of objects, provide the marker from the prior call in your next request.<br/>        """
        pass

    def list_ip_sets(self, Scope: str, NextMarker: str=None, Limit: int=None) -> ListIPSetsResponse:
        r"""Retrieves an array of <a>IPSetSummary</a> objects for the IP sets that you manage.

        :param self:
        :param Limit:  The maximum number of objects that you want WAF to return for this request. If more objects are available, in the response, WAF provides a <code>NextMarker</code> value that you can use in a subsequent call to get the next batch of objects.<br/>NextMarker:  When you request a list of objects with a <code>Limit</code> setting, if the number of objects that are still available for retrieval exceeds the limit, WAF returns a <code>NextMarker</code> value in the response. To retrieve the next batch of objects, provide the marker from the prior call in your next request.<br/>Scope:  Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API.  To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:  <ul> <li> CLI - Specify the Region when you use the CloudFront scope: <code>--scope=CLOUDFRONT --region=us-east-1</code>.  </li> <li> API and SDKs - For all calls, use the Region endpoint us-east-1.  </li> </ul><br/>
        :return: IPSets:  Array of IPSets. This may not be the full list of IPSets that you have defined. See the <code>Limit</code> specification for this request.<br/>NextMarker:  When you request a list of objects with a <code>Limit</code> setting, if the number of objects that are still available for retrieval exceeds the limit, WAF returns a <code>NextMarker</code> value in the response. To retrieve the next batch of objects, provide the marker from the prior call in your next request.<br/>        """
        pass

    def list_logging_configurations(self, Scope: str=None, NextMarker: str=None, Limit: int=None) -> ListLoggingConfigurationsResponse:
        r"""Retrieves an array of your <a>LoggingConfiguration</a> objects.

        :param self:
        :param Limit:  The maximum number of objects that you want WAF to return for this request. If more objects are available, in the response, WAF provides a <code>NextMarker</code> value that you can use in a subsequent call to get the next batch of objects.<br/>NextMarker:  When you request a list of objects with a <code>Limit</code> setting, if the number of objects that are still available for retrieval exceeds the limit, WAF returns a <code>NextMarker</code> value in the response. To retrieve the next batch of objects, provide the marker from the prior call in your next request.<br/>Scope:  Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API.  To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:  <ul> <li> CLI - Specify the Region when you use the CloudFront scope: <code>--scope=CLOUDFRONT --region=us-east-1</code>.  </li> <li> API and SDKs - For all calls, use the Region endpoint us-east-1.  </li> </ul><br/>
        :return: NextMarker:  When you request a list of objects with a <code>Limit</code> setting, if the number of objects that are still available for retrieval exceeds the limit, WAF returns a <code>NextMarker</code> value in the response. To retrieve the next batch of objects, provide the marker from the prior call in your next request.<br/>LoggingConfigurations:  <p/><br/>        """
        pass

    def list_regex_pattern_sets(self, Scope: str, NextMarker: str=None, Limit: int=None) -> ListRegexPatternSetsResponse:
        r"""Retrieves an array of <a>RegexPatternSetSummary</a> objects for the regex pattern sets that you manage.

        :param self:
        :param Limit:  The maximum number of objects that you want WAF to return for this request. If more objects are available, in the response, WAF provides a <code>NextMarker</code> value that you can use in a subsequent call to get the next batch of objects.<br/>NextMarker:  When you request a list of objects with a <code>Limit</code> setting, if the number of objects that are still available for retrieval exceeds the limit, WAF returns a <code>NextMarker</code> value in the response. To retrieve the next batch of objects, provide the marker from the prior call in your next request.<br/>Scope:  Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API.  To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:  <ul> <li> CLI - Specify the Region when you use the CloudFront scope: <code>--scope=CLOUDFRONT --region=us-east-1</code>.  </li> <li> API and SDKs - For all calls, use the Region endpoint us-east-1.  </li> </ul><br/>
        :return: RegexPatternSets:  <p/><br/>NextMarker:  When you request a list of objects with a <code>Limit</code> setting, if the number of objects that are still available for retrieval exceeds the limit, WAF returns a <code>NextMarker</code> value in the response. To retrieve the next batch of objects, provide the marker from the prior call in your next request.<br/>        """
        pass

    def list_resources_for_web_acl(self, WebACLArn: str, ResourceType: str=None) -> ListResourcesForWebACLResponse:
        r"""Retrieves an array of the Amazon Resource Names (ARNs) for the regional resources that are associated with the specified web ACL. If you want the list of Amazon CloudFront resources, use the CloudFront call <code>ListDistributionsByWebACLId</code>. 

        :param self:
        :param ResourceType:  Used for web ACLs that are scoped for regional applications. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API. <br/>WebACLArn:  The Amazon Resource Name (ARN) of the web ACL.<br/>
        :return: ResourceArns:  The array of Amazon Resource Names (ARNs) of the associated resources.<br/>        """
        pass

    def list_rule_groups(self, Scope: str, NextMarker: str=None, Limit: int=None) -> ListRuleGroupsResponse:
        r"""Retrieves an array of <a>RuleGroupSummary</a> objects for the rule groups that you manage. 

        :param self:
        :param Limit:  The maximum number of objects that you want WAF to return for this request. If more objects are available, in the response, WAF provides a <code>NextMarker</code> value that you can use in a subsequent call to get the next batch of objects.<br/>NextMarker:  When you request a list of objects with a <code>Limit</code> setting, if the number of objects that are still available for retrieval exceeds the limit, WAF returns a <code>NextMarker</code> value in the response. To retrieve the next batch of objects, provide the marker from the prior call in your next request.<br/>Scope:  Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API.  To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:  <ul> <li> CLI - Specify the Region when you use the CloudFront scope: <code>--scope=CLOUDFRONT --region=us-east-1</code>.  </li> <li> API and SDKs - For all calls, use the Region endpoint us-east-1.  </li> </ul><br/>
        :return: RuleGroups:  <p/><br/>NextMarker:  When you request a list of objects with a <code>Limit</code> setting, if the number of objects that are still available for retrieval exceeds the limit, WAF returns a <code>NextMarker</code> value in the response. To retrieve the next batch of objects, provide the marker from the prior call in your next request.<br/>        """
        pass

    def list_tags_for_resource(self, ResourceARN: str, NextMarker: str=None, Limit: int=None) -> ListTagsForResourceResponse:
        r"""Retrieves the <a>TagInfoForResource</a> for the specified resource. Tags are key:value pairs that you can use to categorize and manage your resources, for purposes like billing. For example, you might set the tag key to "customer" and the value to the customer name or ID. You can specify one or more tags to add to each Amazon Web Services resource, up to 50 tags for a resource. You can tag the Amazon Web Services resources that you manage through WAF: web ACLs, rule groups, IP sets, and regex pattern sets. You can't manage or view tags through the WAF console. 

        :param self:
        :param ResourceARN:  The Amazon Resource Name (ARN) of the resource.<br/>Limit:  The maximum number of objects that you want WAF to return for this request. If more objects are available, in the response, WAF provides a <code>NextMarker</code> value that you can use in a subsequent call to get the next batch of objects.<br/>NextMarker:  When you request a list of objects with a <code>Limit</code> setting, if the number of objects that are still available for retrieval exceeds the limit, WAF returns a <code>NextMarker</code> value in the response. To retrieve the next batch of objects, provide the marker from the prior call in your next request.<br/>
        :return: TagInfoForResource:  The collection of tagging definitions for the resource. :<br/>NextMarker:  When you request a list of objects with a <code>Limit</code> setting, if the number of objects that are still available for retrieval exceeds the limit, WAF returns a <code>NextMarker</code> value in the response. To retrieve the next batch of objects, provide the marker from the prior call in your next request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TagList</i> The array of <a>Tag</a> objects defined for the resource. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceARN</i> The Amazon Resource Name (ARN) of the resource.<br/>        """
        pass

    def list_web_acls(self, Scope: str, NextMarker: str=None, Limit: int=None) -> ListWebACLsResponse:
        r"""Retrieves an array of <a>WebACLSummary</a> objects for the web ACLs that you manage.

        :param self:
        :param Limit:  The maximum number of objects that you want WAF to return for this request. If more objects are available, in the response, WAF provides a <code>NextMarker</code> value that you can use in a subsequent call to get the next batch of objects.<br/>NextMarker:  When you request a list of objects with a <code>Limit</code> setting, if the number of objects that are still available for retrieval exceeds the limit, WAF returns a <code>NextMarker</code> value in the response. To retrieve the next batch of objects, provide the marker from the prior call in your next request.<br/>Scope:  Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API.  To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:  <ul> <li> CLI - Specify the Region when you use the CloudFront scope: <code>--scope=CLOUDFRONT --region=us-east-1</code>.  </li> <li> API and SDKs - For all calls, use the Region endpoint us-east-1.  </li> </ul><br/>
        :return: WebACLs:  <p/><br/>NextMarker:  When you request a list of objects with a <code>Limit</code> setting, if the number of objects that are still available for retrieval exceeds the limit, WAF returns a <code>NextMarker</code> value in the response. To retrieve the next batch of objects, provide the marker from the prior call in your next request.<br/>        """
        pass

    def put_logging_configuration(self, LoggingConfiguration: LoggingConfiguration) -> PutLoggingConfigurationResponse:
        r"""Enables the specified <a>LoggingConfiguration</a>, to start logging from a web ACL, according to the configuration provided. You can access information about all traffic that WAF inspects using the following steps: <ol> <li> Create an Amazon Kinesis Data Firehose.  Create the data firehose with a PUT source and in the Region that you are operating. If you are capturing logs for Amazon CloudFront, always create the firehose in US East (N. Virginia).  Give the data firehose a name that starts with the prefix <code>aws-waf-logs-</code>. For example, <code>aws-waf-logs-us-east-2-analytics</code>. <note> Do not create the data firehose using a <code>Kinesis stream</code> as your source. </note> </li> <li> Associate that firehose to your web ACL using a <code>PutLoggingConfiguration</code> request. </li> </ol> When you successfully enable logging using a <code>PutLoggingConfiguration</code> request, WAF will create a service linked role with the necessary permissions to write logs to the Amazon Kinesis Data Firehose. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/logging.html">Logging Web ACL Traffic Information</a> in the <i>WAF Developer Guide</i>. <note> This operation completely replaces the mutable specifications that you already have for the logging configuration with the ones that you provide to this call. To modify the logging configuration, retrieve it by calling <a>GetLoggingConfiguration</a>, update the settings as needed, and then provide the complete logging configuration specification to this call. </note>

        :param self:
        :param LoggingConfiguration:  <p/>:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LoggingFilter</i> Filtering that specifies which web requests are kept in the logs and which are dropped. You can filter on the rule action and on the web request labels that were applied by matching rules during web ACL evaluation. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>LoggingFilter</b>: Filtering that specifies which web requests are kept in the logs and which are dropped. You can filter on the rule action and on the web request labels that were applied by matching rules during web ACL evaluation. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ManagedByFirewallManager</i> Indicates whether the logging configuration was created by Firewall Manager, as part of an WAF policy configuration. If true, only Firewall Manager can modify or delete the configuration. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RedactedFields</i> The parts of the request that you want to keep out of the logs. For example, if you redact the <code>HEADER</code> field, the <code>HEADER</code> field in the firehose will be <code>xxx</code>.  <note> You must use one of the following values: <code>URI</code>, <code>QUERY_STRING</code>, <code>HEADER</code>, or <code>METHOD</code>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogDestinationConfigs</i> The Amazon Kinesis Data Firehose Amazon Resource Name (ARNs) that you want to associate with the web ACL.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceArn</i> The Amazon Resource Name (ARN) of the web ACL that you want to associate with <code>LogDestinationConfigs</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultBehavior</i> Default handling for logs that don't match any of the specified filtering conditions. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Filters</i> The filters that you want to apply to the logs. <br/>
        :return: LoggingConfiguration:  <p/>:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LoggingFilter</i> Filtering that specifies which web requests are kept in the logs and which are dropped. You can filter on the rule action and on the web request labels that were applied by matching rules during web ACL evaluation. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>LoggingFilter</b>: Filtering that specifies which web requests are kept in the logs and which are dropped. You can filter on the rule action and on the web request labels that were applied by matching rules during web ACL evaluation. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ManagedByFirewallManager</i> Indicates whether the logging configuration was created by Firewall Manager, as part of an WAF policy configuration. If true, only Firewall Manager can modify or delete the configuration. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RedactedFields</i> The parts of the request that you want to keep out of the logs. For example, if you redact the <code>HEADER</code> field, the <code>HEADER</code> field in the firehose will be <code>xxx</code>.  <note> You must use one of the following values: <code>URI</code>, <code>QUERY_STRING</code>, <code>HEADER</code>, or <code>METHOD</code>. </note><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LogDestinationConfigs</i> The Amazon Kinesis Data Firehose Amazon Resource Name (ARNs) that you want to associate with the web ACL.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceArn</i> The Amazon Resource Name (ARN) of the web ACL that you want to associate with <code>LogDestinationConfigs</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultBehavior</i> Default handling for logs that don't match any of the specified filtering conditions. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Filters</i> The filters that you want to apply to the logs. <br/>        """
        pass

    def put_permission_policy(self, Policy: str, ResourceArn: str) -> PutPermissionPolicyResponse:
        r"""Attaches an IAM policy to the specified resource. Use this to share a rule group across accounts. You must be the owner of the rule group to perform this operation. This action is subject to the following restrictions: <ul> <li> You can attach only one policy with each <code>PutPermissionPolicy</code> request. </li> <li> The ARN in the request must be a valid WAF <a>RuleGroup</a> ARN and the rule group must exist in the same Region. </li> <li> The user making the request must be the owner of the rule group. </li> </ul>

        :param self:
        :param Policy:  The policy to attach to the specified rule group.  The policy specifications must conform to the following: <ul> <li> The policy must be composed using IAM Policy version 2012-10-17 or version 2015-01-01. </li> <li> The policy must include specifications for <code>Effect</code>, <code>Action</code>, and <code>Principal</code>. </li> <li>  <code>Effect</code> must specify <code>Allow</code>. </li> <li>  <code>Action</code> must specify <code>wafv2:CreateWebACL</code>, <code>wafv2:UpdateWebACL</code>, and <code>wafv2:PutFirewallManagerRuleGroups</code>. WAF rejects any extra actions or wildcard actions in the policy. </li> <li> The policy must not include a <code>Resource</code> parameter. </li> </ul> For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html">IAM Policies</a>. <br/>ResourceArn:  The Amazon Resource Name (ARN) of the <a>RuleGroup</a> to which you want to attach the policy.<br/>
        :return:         """
        pass

    def tag_resource(self, Tags: List[Tag], ResourceARN: str) -> TagResourceResponse:
        r"""Associates tags with the specified Amazon Web Services resource. Tags are key:value pairs that you can use to categorize and manage your resources, for purposes like billing. For example, you might set the tag key to "customer" and the value to the customer name or ID. You can specify one or more tags to add to each Amazon Web Services resource, up to 50 tags for a resource. You can tag the Amazon Web Services resources that you manage through WAF: web ACLs, rule groups, IP sets, and regex pattern sets. You can't manage or view tags through the WAF console. 

        :param self:
        :param Tags:  An array of key:value pairs to associate with the resource.<br/>ResourceARN:  The Amazon Resource Name (ARN) of the resource.<br/>
        :return:         """
        pass

    def untag_resource(self, TagKeys: List[TagKey], ResourceARN: str) -> UntagResourceResponse:
        r"""Disassociates tags from an Amazon Web Services resource. Tags are key:value pairs that you can associate with Amazon Web Services resources. For example, the tag key might be "customer" and the tag value might be "companyA." You can specify one or more tags to add to each container. You can add up to 50 tags to each Amazon Web Services resource.

        :param self:
        :param TagKeys:  An array of keys identifying the tags to disassociate from the resource.<br/>ResourceARN:  The Amazon Resource Name (ARN) of the resource.<br/>
        :return:         """
        pass

    def update_ip_set(self, LockToken: str, Addresses: List[IPAddress], Id: str, Scope: str, Name: str, Description: str=None) -> UpdateIPSetResponse:
        r"""Updates the specified <a>IPSet</a>.  <note> This operation completely replaces the mutable specifications that you already have for the IP set with the ones that you provide to this call. To modify the IP set, retrieve it by calling <a>GetIPSet</a>, update the settings as needed, and then provide the complete IP set specification to this call. </note>

        :param self:
        :param LockToken:  A token used for optimistic locking. WAF returns a token to your get and list requests, to mark the state of the entity at the time of the request. To make changes to the entity associated with the token, you provide the token to operations like update and delete. WAF uses the token to ensure that no changes have been made to the entity since you last retrieved it. If a change has been made, the update fails with a <code>WAFOptimisticLockException</code>. If this happens, perform another get, and use the new token returned by that operation. <br/>Addresses:  Contains an array of strings that specify one or more IP addresses or blocks of IP addresses in Classless Inter-Domain Routing (CIDR) notation. WAF supports all IPv4 and IPv6 CIDR ranges except for /0.  Examples:  <ul> <li> To configure WAF to allow, block, or count requests that originated from the IP address 192.0.2.44, specify <code>192.0.2.44/32</code>. </li> <li> To configure WAF to allow, block, or count requests that originated from IP addresses from 192.0.2.0 to 192.0.2.255, specify <code>192.0.2.0/24</code>. </li> <li> To configure WAF to allow, block, or count requests that originated from the IP address 1111:0000:0000:0000:0000:0000:0000:0111, specify <code>1111:0000:0000:0000:0000:0000:0000:0111/128</code>. </li> <li> To configure WAF to allow, block, or count requests that originated from IP addresses 1111:0000:0000:0000:0000:0000:0000:0000 to 1111:0000:0000:0000:ffff:ffff:ffff:ffff, specify <code>1111:0000:0000:0000:0000:0000:0000:0000/64</code>. </li> </ul> For more information about CIDR notation, see the Wikipedia entry <a href="https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing">Classless Inter-Domain Routing</a>.<br/>Description:  A description of the IP set that helps with identification. <br/>Id:  A unique identifier for the set. This ID is returned in the responses to create and list commands. You provide it to operations like update and delete.<br/>Scope:  Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API.  To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:  <ul> <li> CLI - Specify the Region when you use the CloudFront scope: <code>--scope=CLOUDFRONT --region=us-east-1</code>.  </li> <li> API and SDKs - For all calls, use the Region endpoint us-east-1.  </li> </ul><br/>Name:  The name of the IP set. You cannot change the name of an <code>IPSet</code> after you create it.<br/>
        :return: NextLockToken:  A token used for optimistic locking. WAF returns this token to your update requests. You use <code>NextLockToken</code> in the same manner as you use <code>LockToken</code>. <br/>        """
        pass

    def update_regex_pattern_set(self, LockToken: str, RegularExpressionList: List[Regex], Id: str, Scope: str, Name: str, Description: str=None) -> UpdateRegexPatternSetResponse:
        r"""Updates the specified <a>RegexPatternSet</a>. <note> This operation completely replaces the mutable specifications that you already have for the regex pattern set with the ones that you provide to this call. To modify the regex pattern set, retrieve it by calling <a>GetRegexPatternSet</a>, update the settings as needed, and then provide the complete regex pattern set specification to this call. </note>

        :param self:
        :param LockToken:  A token used for optimistic locking. WAF returns a token to your get and list requests, to mark the state of the entity at the time of the request. To make changes to the entity associated with the token, you provide the token to operations like update and delete. WAF uses the token to ensure that no changes have been made to the entity since you last retrieved it. If a change has been made, the update fails with a <code>WAFOptimisticLockException</code>. If this happens, perform another get, and use the new token returned by that operation. <br/>RegularExpressionList:  <p/><br/>Description:  A description of the set that helps with identification. <br/>Id:  A unique identifier for the set. This ID is returned in the responses to create and list commands. You provide it to operations like update and delete.<br/>Scope:  Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API.  To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:  <ul> <li> CLI - Specify the Region when you use the CloudFront scope: <code>--scope=CLOUDFRONT --region=us-east-1</code>.  </li> <li> API and SDKs - For all calls, use the Region endpoint us-east-1.  </li> </ul><br/>Name:  The name of the set. You cannot change the name after you create the set.<br/>
        :return: NextLockToken:  A token used for optimistic locking. WAF returns this token to your update requests. You use <code>NextLockToken</code> in the same manner as you use <code>LockToken</code>. <br/>        """
        pass

    def update_rule_group(self, LockToken: str, VisibilityConfig: VisibilityConfig, Id: str, Scope: str, Name: str, Description: str=None, Rules: List[Rule]=None, CustomResponseBodies: CustomResponseBodies=None) -> UpdateRuleGroupResponse:
        r"""Updates the specified <a>RuleGroup</a>. <note> This operation completely replaces the mutable specifications that you already have for the rule group with the ones that you provide to this call. To modify the rule group, retrieve it by calling <a>GetRuleGroup</a>, update the settings as needed, and then provide the complete rule group specification to this call. </note>  A rule group defines a collection of rules to inspect and control web requests that you can use in a <a>WebACL</a>. When you create a rule group, you define an immutable capacity limit. If you update a rule group, you must stay within the capacity. This allows others to reuse the rule group with confidence in its capacity requirements. 

        :param self:
        :param CustomResponseBodies:  A map of custom response keys and content bodies. When you create a rule with a block action, you can send a custom response to the web request. You define these for the rule group, and then use them in the rules that you define in the rule group.  For information about customizing web requests and responses, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-custom-request-response.html">Customizing web requests and responses in WAF</a> in the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">WAF Developer Guide</a>.  For information about the limits on count and size for custom request and response settings, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/limits.html">WAF quotas</a> in the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">WAF Developer Guide</a>. <br/>LockToken:  A token used for optimistic locking. WAF returns a token to your get and list requests, to mark the state of the entity at the time of the request. To make changes to the entity associated with the token, you provide the token to operations like update and delete. WAF uses the token to ensure that no changes have been made to the entity since you last retrieved it. If a change has been made, the update fails with a <code>WAFOptimisticLockException</code>. If this happens, perform another get, and use the new token returned by that operation. <br/>VisibilityConfig:  Defines and enables Amazon CloudWatch metrics and web request sample collection. :<br/>Rules:  The <a>Rule</a> statements used to identify the web requests that you want to allow, block, or count. Each rule includes one top-level statement that WAF uses to identify matching web requests, and parameters that govern how WAF handles them. <br/>Description:  A description of the rule group that helps with identification. <br/>Id:  A unique identifier for the rule group. This ID is returned in the responses to create and list commands. You provide it to operations like update and delete.<br/>Scope:  Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API.  To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:  <ul> <li> CLI - Specify the Region when you use the CloudFront scope: <code>--scope=CLOUDFRONT --region=us-east-1</code>.  </li> <li> API and SDKs - For all calls, use the Region endpoint us-east-1.  </li> </ul><br/>Name:  The name of the rule group. You cannot change the name of a rule group after you create it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MetricName</i> A name of the Amazon CloudWatch metric. The name can contain only the characters: A-Z, a-z, 0-9, - (hyphen), and _ (underscore). The name can be from one to 128 characters long. It can't contain whitespace or metric names reserved for WAF, for example "All" and "Default_Action." <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudWatchMetricsEnabled</i> A boolean indicating whether the associated resource sends metrics to Amazon CloudWatch. For the list of available metrics, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/monitoring-cloudwatch.html#waf-metrics">WAF Metrics</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SampledRequestsEnabled</i> A boolean indicating whether WAF should store a sampling of the web requests that match the rules. You can view the sampled requests through the WAF console. <br/>
        :return: NextLockToken:  A token used for optimistic locking. WAF returns this token to your update requests. You use <code>NextLockToken</code> in the same manner as you use <code>LockToken</code>. <br/>        """
        pass

    def update_web_acl(self, LockToken: str, VisibilityConfig: VisibilityConfig, DefaultAction: DefaultAction, Id: str, Scope: str, Name: str, Description: str=None, Rules: List[Rule]=None, CustomResponseBodies: CustomResponseBodies=None) -> UpdateWebACLResponse:
        r"""Updates the specified <a>WebACL</a>. <note> This operation completely replaces the mutable specifications that you already have for the web ACL with the ones that you provide to this call. To modify the web ACL, retrieve it by calling <a>GetWebACL</a>, update the settings as needed, and then provide the complete web ACL specification to this call. </note>  A web ACL defines a collection of rules to use to inspect and control web requests. Each rule has an action defined (allow, block, or count) for requests that match the statement of the rule. In the web ACL, you assign a default action to take (allow, block) for any request that does not match any of the rules. The rules in a web ACL can be a combination of the types <a>Rule</a>, <a>RuleGroup</a>, and managed rule group. You can associate a web ACL with one or more Amazon Web Services resources to protect. The resources can be an Amazon CloudFront distribution, an Amazon API Gateway REST API, an Application Load Balancer, or an AppSync GraphQL API. 

        :param self:
        :param CustomResponseBodies:  A map of custom response keys and content bodies. When you create a rule with a block action, you can send a custom response to the web request. You define these for the web ACL, and then use them in the rules and default actions that you define in the web ACL.  For information about customizing web requests and responses, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-custom-request-response.html">Customizing web requests and responses in WAF</a> in the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">WAF Developer Guide</a>.  For information about the limits on count and size for custom request and response settings, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/limits.html">WAF quotas</a> in the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">WAF Developer Guide</a>. <br/>LockToken:  A token used for optimistic locking. WAF returns a token to your get and list requests, to mark the state of the entity at the time of the request. To make changes to the entity associated with the token, you provide the token to operations like update and delete. WAF uses the token to ensure that no changes have been made to the entity since you last retrieved it. If a change has been made, the update fails with a <code>WAFOptimisticLockException</code>. If this happens, perform another get, and use the new token returned by that operation. <br/>VisibilityConfig:  Defines and enables Amazon CloudWatch metrics and web request sample collection. :<br/>Rules:  The <a>Rule</a> statements used to identify the web requests that you want to allow, block, or count. Each rule includes one top-level statement that WAF uses to identify matching web requests, and parameters that govern how WAF handles them. <br/>Description:  A description of the web ACL that helps with identification. <br/>DefaultAction:  The action to perform if none of the <code>Rules</code> contained in the <code>WebACL</code> match. :<br/>Id:  The unique identifier for the web ACL. This ID is returned in the responses to create and list commands. You provide it to operations like update and delete.<br/>Scope:  Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API.  To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:  <ul> <li> CLI - Specify the Region when you use the CloudFront scope: <code>--scope=CLOUDFRONT --region=us-east-1</code>.  </li> <li> API and SDKs - For all calls, use the Region endpoint us-east-1.  </li> </ul><br/>Name:  The name of the web ACL. You cannot change the name of a web ACL after you create it.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Allow</i> Specifies that WAF should allow requests by default.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Allow</b>: Specifies that WAF should allow requests by default.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Block</i> Specifies that WAF should block requests by default. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Block</b>: Specifies that WAF should block requests by default. <br/>Defines a custom response for the web request. For information about customizing web requests and responses, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-custom-request-response.html">Customizing web requests and responses in WAF</a> in the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">WAF Developer Guide</a>. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CustomResponse</b>: Defines a custom response for the web request. For information about customizing web requests and responses, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-custom-request-response.html">Customizing web requests and responses in WAF</a> in the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">WAF Developer Guide</a>. Defines custom handling for the web request. For information about customizing web requests and responses, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-custom-request-response.html">Customizing web requests and responses in WAF</a> in the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">WAF Developer Guide</a>. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>CustomRequestHandling</b>: Defines custom handling for the web request. For information about customizing web requests and responses, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-custom-request-response.html">Customizing web requests and responses in WAF</a> in the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">WAF Developer Guide</a>. &nbsp;&nbsp;&nbsp;&nbsp; <i>MetricName</i> A name of the Amazon CloudWatch metric. The name can contain only the characters: A-Z, a-z, 0-9, - (hyphen), and _ (underscore). The name can be from one to 128 characters long. It can't contain whitespace or metric names reserved for WAF, for example "All" and "Default_Action." <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CloudWatchMetricsEnabled</i> A boolean indicating whether the associated resource sends metrics to Amazon CloudWatch. For the list of available metrics, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/monitoring-cloudwatch.html#waf-metrics">WAF Metrics</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SampledRequestsEnabled</i> A boolean indicating whether WAF should store a sampling of the web requests that match the rules. You can view the sampled requests through the WAF console. <br/>
        :return: NextLockToken:  A token used for optimistic locking. WAF returns this token to your update requests. You use <code>NextLockToken</code> in the same manner as you use <code>LockToken</code>. <br/>        """
        pass





class WellArchitected(BaseClient):
    r"""<fullname>AWS Well-Architected Tool</fullname> This is the <i>AWS Well-Architected Tool API Reference</i>. The AWS Well-Architected Tool API provides programmatic access to the <a href="http://aws.amazon.com/well-architected-tool">AWS Well-Architected Tool</a> in the <a href="https://console.aws.amazon.com/wellarchitected">AWS Management Console</a>. For information about the AWS Well-Architected Tool, see the <a href="https://docs.aws.amazon.com/wellarchitected/latest/userguide/intro.html">AWS Well-Architected Tool User Guide</a>."""




    class AssociateLensesInput(Mapping):
        pass
    
    class LensAlias(object):
        pass
    
    class CreateMilestoneInput(Mapping):
        pass
    
    class CreateMilestoneOutput(Mapping):
        pass
    
    class CreateWorkloadInput(Mapping):
        pass
    
    class CreateWorkloadOutput(Mapping):
        pass
    
    class AwsAccountId(object):
        pass
    
    class AwsRegion(object):
        pass
    
    class WorkloadNonAwsRegion(object):
        pass
    
    class PillarId(object):
        pass
    
    class TagMap(object):
        pass
    
    class CreateWorkloadShareInput(Mapping):
        pass
    
    class CreateWorkloadShareOutput(Mapping):
        pass
    
    class DeleteWorkloadInput(Mapping):
        pass
    
    class DeleteWorkloadShareInput(Mapping):
        pass
    
    class DisassociateLensesInput(Mapping):
        pass
    
    class GetAnswerInput(Mapping):
        pass
    
    class GetAnswerOutput(Mapping):
        pass
    
    class GetLensReviewInput(Mapping):
        pass
    
    class GetLensReviewOutput(Mapping):
        pass
    
    class GetLensReviewReportInput(Mapping):
        pass
    
    class GetLensReviewReportOutput(Mapping):
        pass
    
    class GetLensVersionDifferenceInput(Mapping):
        pass
    
    class GetLensVersionDifferenceOutput(Mapping):
        pass
    
    class GetMilestoneInput(Mapping):
        pass
    
    class GetMilestoneOutput(Mapping):
        pass
    
    class GetWorkloadInput(Mapping):
        pass
    
    class GetWorkloadOutput(Mapping):
        pass
    
    class ListAnswersInput(Mapping):
        pass
    
    class ListAnswersOutput(Mapping):
        pass
    
    class ListLensReviewImprovementsInput(Mapping):
        pass
    
    class ListLensReviewImprovementsOutput(Mapping):
        pass
    
    class ListLensReviewsInput(Mapping):
        pass
    
    class ListLensReviewsOutput(Mapping):
        pass
    
    class ListLensesInput(Mapping):
        pass
    
    class ListLensesOutput(Mapping):
        pass
    
    class ListMilestonesInput(Mapping):
        pass
    
    class ListMilestonesOutput(Mapping):
        pass
    
    class ListNotificationsInput(Mapping):
        pass
    
    class ListNotificationsOutput(Mapping):
        pass
    
    class ListShareInvitationsInput(Mapping):
        pass
    
    class ListShareInvitationsOutput(Mapping):
        pass
    
    class ListTagsForResourceInput(Mapping):
        pass
    
    class ListTagsForResourceOutput(Mapping):
        pass
    
    class ListWorkloadSharesInput(Mapping):
        pass
    
    class ListWorkloadSharesOutput(Mapping):
        pass
    
    class ListWorkloadsInput(Mapping):
        pass
    
    class ListWorkloadsOutput(Mapping):
        pass
    
    class TagResourceInput(Mapping):
        pass
    
    class TagResourceOutput(Mapping):
        pass
    
    class UntagResourceInput(Mapping):
        pass
    
    class UntagResourceOutput(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateAnswerInput(Mapping):
        pass
    
    class UpdateAnswerOutput(Mapping):
        pass
    
    class ChoiceId(object):
        pass
    
    class IsApplicable(object):
        pass
    
    class UpdateLensReviewInput(Mapping):
        pass
    
    class UpdateLensReviewOutput(Mapping):
        pass
    
    class PillarNotes(object):
        pass
    
    class UpdateShareInvitationInput(Mapping):
        pass
    
    class UpdateShareInvitationOutput(Mapping):
        pass
    
    class UpdateWorkloadInput(Mapping):
        pass
    
    class UpdateWorkloadOutput(Mapping):
        pass
    
    class IsReviewOwnerUpdateAcknowledged(object):
        pass
    
    class UpdateWorkloadShareInput(Mapping):
        pass
    
    class UpdateWorkloadShareOutput(Mapping):
        pass
    
    class UpgradeLensReviewInput(Mapping):
        pass
    
    def associate_lenses(self, LensAliases: List[LensAlias], WorkloadId: str):
        r"""Associate a lens to a workload.

        :param self:
        :param LensAliases:  List of lens aliases to associate or disassociate with a workload. Identify a lens using its <a>LensSummary$LensAlias</a>.<br/>WorkloadId:  The ID assigned to the workload. This ID is unique within an AWS Region.<br/>
        :return:         """
        pass

    def create_milestone(self, ClientRequestToken: str, MilestoneName: str, WorkloadId: str) -> CreateMilestoneOutput:
        r"""Create a milestone for an existing workload.

        :param self:
        :param ClientRequestToken:  A unique case-sensitive string used to ensure that this request is idempotent (executes only once). You should not reuse the same token for other requests. If you retry a request with the same client request token and the same parameters after it has completed successfully, the result of the original request is returned.  <important> This token is listed as required, however, if you do not specify it, the AWS SDKs automatically generate one for you. If you are not using the AWS SDK or the AWS CLI, you must provide this token or the request will fail. </important><br/>MilestoneName:  The name of the milestone in a workload. Milestone names must be unique within a workload.<br/>WorkloadId:  The ID assigned to the workload. This ID is unique within an AWS Region.<br/>
        :return: MilestoneNumber:  The milestone number. A workload can have a maximum of 100 milestones.<br/>WorkloadId:  The ID assigned to the workload. This ID is unique within an AWS Region.<br/>        """
        pass

    def create_workload(self, ClientRequestToken: str, Lenses: List[LensAlias], ReviewOwner: str, Environment: str, Description: str, WorkloadName: str, AccountIds: List[AwsAccountId]=None, AwsRegions: List[AwsRegion]=None, NonAwsRegions: List[WorkloadNonAwsRegion]=None, PillarPriorities: List[PillarId]=None, ArchitecturalDesign: str=None, IndustryType: str=None, Industry: str=None, Notes: str=None, Tags: TagMap=None) -> CreateWorkloadOutput:
        r"""Create a new workload. The owner of a workload can share the workload with other AWS accounts and IAM users in the same AWS Region. Only the owner of a workload can delete it. For more information, see <a href="https://docs.aws.amazon.com/wellarchitected/latest/userguide/define-workload.html">Defining a Workload</a> in the <i>AWS Well-Architected Tool User Guide</i>.

        :param self:
        :param Tags:  The tags to be associated with the workload.<br/>ClientRequestToken:  A unique case-sensitive string used to ensure that this request is idempotent (executes only once). You should not reuse the same token for other requests. If you retry a request with the same client request token and the same parameters after it has completed successfully, the result of the original request is returned.  <important> This token is listed as required, however, if you do not specify it, the AWS SDKs automatically generate one for you. If you are not using the AWS SDK or the AWS CLI, you must provide this token or the request will fail. </important><br/>Notes:  The notes associated with the workload.<br/>Lenses:  The list of lenses associated with the workload. Each lens is identified by its <a>LensSummary$LensAlias</a>.<br/>Industry:  The industry for the workload.<br/>IndustryType:  The industry type for the workload. If specified, must be one of the following: <ul> <li>  <code>Agriculture</code>  </li> <li>  <code>Automobile</code>  </li> <li>  <code>Defense</code>  </li> <li>  <code>Design and Engineering</code>  </li> <li>  <code>Digital Advertising</code>  </li> <li>  <code>Education</code>  </li> <li>  <code>Environmental Protection</code>  </li> <li>  <code>Financial Services</code>  </li> <li>  <code>Gaming</code>  </li> <li>  <code>General Public Services</code>  </li> <li>  <code>Healthcare</code>  </li> <li>  <code>Hospitality</code>  </li> <li>  <code>InfoTech</code>  </li> <li>  <code>Justice and Public Safety</code>  </li> <li>  <code>Life Sciences</code>  </li> <li>  <code>Manufacturing</code>  </li> <li>  <code>Media &amp; Entertainment</code>  </li> <li>  <code>Mining &amp; Resources</code>  </li> <li>  <code>Oil &amp; Gas</code>  </li> <li>  <code>Power &amp; Utilities</code>  </li> <li>  <code>Professional Services</code>  </li> <li>  <code>Real Estate &amp; Construction</code>  </li> <li>  <code>Retail &amp; Wholesale</code>  </li> <li>  <code>Social Protection</code>  </li> <li>  <code>Telecommunications</code>  </li> <li>  <code>Travel, Transportation &amp; Logistics</code>  </li> <li>  <code>Other</code>  </li> </ul><br/>ReviewOwner:  The review owner of the workload. The name, email address, or identifier for the primary group or individual that owns the workload review process.<br/>ArchitecturalDesign:  The URL of the architectural design for the workload.<br/>PillarPriorities:  The priorities of the pillars, which are used to order items in the improvement plan. Each pillar is represented by its <a>PillarReviewSummary$PillarId</a>.<br/>NonAwsRegions:   The list of non-AWS Regions associated with the workload.<br/>AwsRegions:  The list of AWS Regions associated with the workload, for example, <code>us-east-2</code>, or <code>ca-central-1</code>.<br/>AccountIds:  The list of AWS account IDs associated with the workload.<br/>Environment:  The environment for the workload.<br/>Description:  The description for the workload.<br/>WorkloadName:  The name of the workload. The name must be unique within an account within a Region. Spaces and capitalization are ignored when checking for uniqueness.<br/>
        :return: WorkloadArn:  The ARN for the workload.<br/>WorkloadId:  The ID assigned to the workload. This ID is unique within an AWS Region.<br/>        """
        pass

    def create_workload_share(self, ClientRequestToken: str, PermissionType: str, SharedWith: str, WorkloadId: str) -> CreateWorkloadShareOutput:
        r"""Create a workload share. The owner of a workload can share it with other AWS accounts and IAM users in the same AWS Region. Shared access to a workload is not removed until the workload invitation is deleted. For more information, see <a href="https://docs.aws.amazon.com/wellarchitected/latest/userguide/workloads-sharing.html">Sharing a Workload</a> in the <i>AWS Well-Architected Tool User Guide</i>.

        :param self:
        :param ClientRequestToken:  A unique case-sensitive string used to ensure that this request is idempotent (executes only once). You should not reuse the same token for other requests. If you retry a request with the same client request token and the same parameters after it has completed successfully, the result of the original request is returned.  <important> This token is listed as required, however, if you do not specify it, the AWS SDKs automatically generate one for you. If you are not using the AWS SDK or the AWS CLI, you must provide this token or the request will fail. </important><br/>PermissionType:  Permission granted on a workload share.<br/>SharedWith:  The AWS account ID or IAM role with which the workload is shared.<br/>WorkloadId:  The ID assigned to the workload. This ID is unique within an AWS Region.<br/>
        :return: ShareId:  The ID associated with the workload share.<br/>WorkloadId:  The ID assigned to the workload. This ID is unique within an AWS Region.<br/>        """
        pass

    def delete_workload(self, ClientRequestToken: str, WorkloadId: str):
        r"""Delete an existing workload.

        :param self:
        :param ClientRequestToken:  A unique case-sensitive string used to ensure that this request is idempotent (executes only once). You should not reuse the same token for other requests. If you retry a request with the same client request token and the same parameters after it has completed successfully, the result of the original request is returned.  <important> This token is listed as required, however, if you do not specify it, the AWS SDKs automatically generate one for you. If you are not using the AWS SDK or the AWS CLI, you must provide this token or the request will fail. </important><br/>WorkloadId:  The ID assigned to the workload. This ID is unique within an AWS Region.<br/>
        :return:         """
        pass

    def delete_workload_share(self, ClientRequestToken: str, WorkloadId: str, ShareId: str):
        r"""Delete a workload share.

        :param self:
        :param ClientRequestToken:  A unique case-sensitive string used to ensure that this request is idempotent (executes only once). You should not reuse the same token for other requests. If you retry a request with the same client request token and the same parameters after it has completed successfully, the result of the original request is returned.  <important> This token is listed as required, however, if you do not specify it, the AWS SDKs automatically generate one for you. If you are not using the AWS SDK or the AWS CLI, you must provide this token or the request will fail. </important><br/>WorkloadId:  The ID assigned to the workload. This ID is unique within an AWS Region.<br/>ShareId:  The ID associated with the workload share.<br/>
        :return:         """
        pass

    def disassociate_lenses(self, LensAliases: List[LensAlias], WorkloadId: str):
        r"""Disassociate a lens from a workload. <note> The AWS Well-Architected Framework lens (<code>wellarchitected</code>) cannot be removed from a workload. </note>

        :param self:
        :param LensAliases:  List of lens aliases to associate or disassociate with a workload. Identify a lens using its <a>LensSummary$LensAlias</a>.<br/>WorkloadId:  The ID assigned to the workload. This ID is unique within an AWS Region.<br/>
        :return:         """
        pass

    def get_answer(self, QuestionId: str, LensAlias: str, WorkloadId: str, MilestoneNumber: int=None) -> GetAnswerOutput:
        r"""Get lens review.

        :param self:
        :param MilestoneNumber:  The milestone number. A workload can have a maximum of 100 milestones.<br/>QuestionId:  The ID of the question.<br/>LensAlias:  The alias of the lens, for example, <code>serverless</code>. Each lens is identified by its <a>LensSummary$LensAlias</a>.<br/>WorkloadId:  The ID assigned to the workload. This ID is unique within an AWS Region.<br/>
        :return: Answer:  An answer of the question.:<br/>LensAlias:  The alias of the lens, for example, <code>serverless</code>. Each lens is identified by its <a>LensSummary$LensAlias</a>.<br/>MilestoneNumber:  The milestone number. A workload can have a maximum of 100 milestones.<br/>WorkloadId:  The ID assigned to the workload. This ID is unique within an AWS Region.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Notes</i> The notes associated with the workload.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Risk</i> The risk for a given workload, lens review, pillar, or question.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsApplicable</i> Defines whether this question is applicable to a lens review.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SelectedChoices</i> List of selected choice IDs in a question answer. The values entered replace the previously selected choices.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Choices</i> List of choices available for a question.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HelpfulResourceUrl</i> The helpful resource URL for a question.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImprovementPlanUrl</i> The improvement plan URL for a question.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>QuestionDescription</i> The description of the question.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>QuestionTitle</i> The title of the question.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PillarId</i> The ID used to identify a pillar, for example, <code>security</code>. A pillar is identified by its <a>PillarReviewSummary$PillarId</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>QuestionId</i> The ID of the question.<br/>        """
        pass

    def get_lens_review(self, LensAlias: str, WorkloadId: str, MilestoneNumber: int=None) -> GetLensReviewOutput:
        r"""Get lens review.

        :param self:
        :param MilestoneNumber:  The milestone number. A workload can have a maximum of 100 milestones.<br/>LensAlias:  The alias of the lens, for example, <code>serverless</code>. Each lens is identified by its <a>LensSummary$LensAlias</a>.<br/>WorkloadId:  The ID assigned to the workload. This ID is unique within an AWS Region.<br/>
        :return: LensReview:  A lens review of a question.:<br/>MilestoneNumber:  The milestone number. A workload can have a maximum of 100 milestones.<br/>WorkloadId:  The ID assigned to the workload. This ID is unique within an AWS Region.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NextToken</i> The token to use to retrieve the next set of results.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RiskCounts</i> A map from risk names to the count of how questions have that rating.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Notes</i> The notes associated with the workload.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdatedAt</i> The date and time recorded.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PillarReviewSummaries</i> List of pillar review summaries of lens review in a workload.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LensStatus</i> The status of the lens.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LensName</i> The full name of the lens.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LensVersion</i> The version of the lens.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LensAlias</i> The alias of the lens, for example, <code>serverless</code>. Each lens is identified by its <a>LensSummary$LensAlias</a>.<br/>        """
        pass

    def get_lens_review_report(self, LensAlias: str, WorkloadId: str, MilestoneNumber: int=None) -> GetLensReviewReportOutput:
        r"""Get lens review report.

        :param self:
        :param MilestoneNumber:  The milestone number. A workload can have a maximum of 100 milestones.<br/>LensAlias:  The alias of the lens, for example, <code>serverless</code>. Each lens is identified by its <a>LensSummary$LensAlias</a>.<br/>WorkloadId:  The ID assigned to the workload. This ID is unique within an AWS Region.<br/>
        :return: LensReviewReport:  A report of a lens review.:<br/>MilestoneNumber:  The milestone number. A workload can have a maximum of 100 milestones.<br/>WorkloadId:  The ID assigned to the workload. This ID is unique within an AWS Region.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Base64String</i> The Base64-encoded string representation of a lens review report. This data can be used to create a PDF file.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LensAlias</i> The alias of the lens, for example, <code>serverless</code>. Each lens is identified by its <a>LensSummary$LensAlias</a>.<br/>        """
        pass

    def get_lens_version_difference(self, BaseLensVersion: str, LensAlias: str) -> GetLensVersionDifferenceOutput:
        r"""Get lens version differences.

        :param self:
        :param BaseLensVersion:  The base version of the lens.<br/>LensAlias:  The alias of the lens, for example, <code>serverless</code>. Each lens is identified by its <a>LensSummary$LensAlias</a>.<br/>
        :return: VersionDifferences:  The differences between the base and latest versions of the lens.:<br/>LatestLensVersion:  The latest version of the lens.<br/>BaseLensVersion:  The base version of the lens.<br/>LensAlias:  The alias of the lens, for example, <code>serverless</code>. Each lens is identified by its <a>LensSummary$LensAlias</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PillarDifferences</i> The differences between the base and latest versions of the lens.<br/>        """
        pass

    def get_milestone(self, MilestoneNumber: int, WorkloadId: str) -> GetMilestoneOutput:
        r"""Get a milestone for an existing workload.

        :param self:
        :param MilestoneNumber:  The milestone number. A workload can have a maximum of 100 milestones.<br/>WorkloadId:  The ID assigned to the workload. This ID is unique within an AWS Region.<br/>
        :return: Milestone:  A milestone return object.:<br/>WorkloadId:  The ID assigned to the workload. This ID is unique within an AWS Region.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Workload</i> A workload return object.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Workload</b>: A workload return object.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecordedAt</i> The date and time recorded.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MilestoneName</i> The name of the milestone in a workload. Milestone names must be unique within a workload.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>MilestoneNumber</i> The milestone number. A workload can have a maximum of 100 milestones.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The tags associated with the workload.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ShareInvitationId</i> The ID assigned to the share invitation.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Owner</i> An AWS account ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Lenses</i> The list of lenses associated with the workload. Each lens is identified by its <a>LensSummary$LensAlias</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>PillarPriorities</i> The priorities of the pillars, which are used to order items in the improvement plan. Each pillar is represented by its <a>PillarReviewSummary$PillarId</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RiskCounts</i> A map from risk names to the count of how questions have that rating.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ImprovementStatus</i> The improvement status for a workload.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Notes</i> The notes associated with the workload.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Industry</i> The industry for the workload.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IndustryType</i> The industry type for the workload. If specified, must be one of the following: <ul> <li>  <code>Agriculture</code>  </li> <li>  <code>Automobile</code>  </li> <li>  <code>Defense</code>  </li> <li>  <code>Design and Engineering</code>  </li> <li>  <code>Digital Advertising</code>  </li> <li>  <code>Education</code>  </li> <li>  <code>Environmental Protection</code>  </li> <li>  <code>Financial Services</code>  </li> <li>  <code>Gaming</code>  </li> <li>  <code>General Public Services</code>  </li> <li>  <code>Healthcare</code>  </li> <li>  <code>Hospitality</code>  </li> <li>  <code>InfoTech</code>  </li> <li>  <code>Justice and Public Safety</code>  </li> <li>  <code>Life Sciences</code>  </li> <li>  <code>Manufacturing</code>  </li> <li>  <code>Media &amp; Entertainment</code>  </li> <li>  <code>Mining &amp; Resources</code>  </li> <li>  <code>Oil &amp; Gas</code>  </li> <li>  <code>Power &amp; Utilities</code>  </li> <li>  <code>Professional Services</code>  </li> <li>  <code>Real Estate &amp; Construction</code>  </li> <li>  <code>Retail &amp; Wholesale</code>  </li> <li>  <code>Social Protection</code>  </li> <li>  <code>Telecommunications</code>  </li> <li>  <code>Travel, Transportation &amp; Logistics</code>  </li> <li>  <code>Other</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>IsReviewOwnerUpdateAcknowledged</i> Flag indicating whether the workload owner has acknowledged that the <i>Review owner</i> field is required. If a <b>Review owner</b> is not added to the workload within 60 days of acknowledgement, access to the workload is restricted until an owner is added.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReviewRestrictionDate</i> The date and time recorded.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReviewOwner</i> The review owner of the workload. The name, email address, or identifier for the primary group or individual that owns the workload review process.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ArchitecturalDesign</i> The URL of the architectural design for the workload.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NonAwsRegions</i>  The list of non-AWS Regions associated with the workload.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AwsRegions</i> The list of AWS Regions associated with the workload, for example, <code>us-east-2</code>, or <code>ca-central-1</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AccountIds</i> The list of AWS account IDs associated with the workload.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdatedAt</i> The date and time recorded.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Environment</i> The environment for the workload.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description for the workload.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>WorkloadName</i> The name of the workload. The name must be unique within an account within a Region. Spaces and capitalization are ignored when checking for uniqueness.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>WorkloadArn</i> The ARN for the workload.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>WorkloadId</i> The ID assigned to the workload. This ID is unique within an AWS Region.<br/>        """
        pass

    def get_workload(self, WorkloadId: str) -> GetWorkloadOutput:
        r"""Get an existing workload.

        :param self:
        :param WorkloadId:  The ID assigned to the workload. This ID is unique within an AWS Region.<br/>
        :return: Workload:  A workload return object.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The tags associated with the workload.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ShareInvitationId</i> The ID assigned to the share invitation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Owner</i> An AWS account ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Lenses</i> The list of lenses associated with the workload. Each lens is identified by its <a>LensSummary$LensAlias</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PillarPriorities</i> The priorities of the pillars, which are used to order items in the improvement plan. Each pillar is represented by its <a>PillarReviewSummary$PillarId</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RiskCounts</i> A map from risk names to the count of how questions have that rating.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImprovementStatus</i> The improvement status for a workload.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Notes</i> The notes associated with the workload.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Industry</i> The industry for the workload.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IndustryType</i> The industry type for the workload. If specified, must be one of the following: <ul> <li>  <code>Agriculture</code>  </li> <li>  <code>Automobile</code>  </li> <li>  <code>Defense</code>  </li> <li>  <code>Design and Engineering</code>  </li> <li>  <code>Digital Advertising</code>  </li> <li>  <code>Education</code>  </li> <li>  <code>Environmental Protection</code>  </li> <li>  <code>Financial Services</code>  </li> <li>  <code>Gaming</code>  </li> <li>  <code>General Public Services</code>  </li> <li>  <code>Healthcare</code>  </li> <li>  <code>Hospitality</code>  </li> <li>  <code>InfoTech</code>  </li> <li>  <code>Justice and Public Safety</code>  </li> <li>  <code>Life Sciences</code>  </li> <li>  <code>Manufacturing</code>  </li> <li>  <code>Media &amp; Entertainment</code>  </li> <li>  <code>Mining &amp; Resources</code>  </li> <li>  <code>Oil &amp; Gas</code>  </li> <li>  <code>Power &amp; Utilities</code>  </li> <li>  <code>Professional Services</code>  </li> <li>  <code>Real Estate &amp; Construction</code>  </li> <li>  <code>Retail &amp; Wholesale</code>  </li> <li>  <code>Social Protection</code>  </li> <li>  <code>Telecommunications</code>  </li> <li>  <code>Travel, Transportation &amp; Logistics</code>  </li> <li>  <code>Other</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsReviewOwnerUpdateAcknowledged</i> Flag indicating whether the workload owner has acknowledged that the <i>Review owner</i> field is required. If a <b>Review owner</b> is not added to the workload within 60 days of acknowledgement, access to the workload is restricted until an owner is added.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReviewRestrictionDate</i> The date and time recorded.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReviewOwner</i> The review owner of the workload. The name, email address, or identifier for the primary group or individual that owns the workload review process.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ArchitecturalDesign</i> The URL of the architectural design for the workload.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NonAwsRegions</i>  The list of non-AWS Regions associated with the workload.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AwsRegions</i> The list of AWS Regions associated with the workload, for example, <code>us-east-2</code>, or <code>ca-central-1</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccountIds</i> The list of AWS account IDs associated with the workload.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdatedAt</i> The date and time recorded.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Environment</i> The environment for the workload.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description for the workload.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WorkloadName</i> The name of the workload. The name must be unique within an account within a Region. Spaces and capitalization are ignored when checking for uniqueness.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WorkloadArn</i> The ARN for the workload.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WorkloadId</i> The ID assigned to the workload. This ID is unique within an AWS Region.<br/>        """
        pass

    def list_answers(self, LensAlias: str, WorkloadId: str, PillarId: str=None, MilestoneNumber: int=None, NextToken: str=None, MaxResults: int=None) -> ListAnswersOutput:
        r"""List of answers.

        :param self:
        :param MaxResults:  The maximum number of results to return for this request.<br/>NextToken:  The token to use to retrieve the next set of results.<br/>MilestoneNumber:  The milestone number. A workload can have a maximum of 100 milestones.<br/>PillarId:  The ID used to identify a pillar, for example, <code>security</code>. A pillar is identified by its <a>PillarReviewSummary$PillarId</a>.<br/>LensAlias:  The alias of the lens, for example, <code>serverless</code>. Each lens is identified by its <a>LensSummary$LensAlias</a>.<br/>WorkloadId:  The ID assigned to the workload. This ID is unique within an AWS Region.<br/>
        :return: NextToken:  The token to use to retrieve the next set of results.<br/>AnswerSummaries:  List of answer summaries of lens review in a workload.<br/>LensAlias:  The alias of the lens, for example, <code>serverless</code>. Each lens is identified by its <a>LensSummary$LensAlias</a>.<br/>MilestoneNumber:  The milestone number. A workload can have a maximum of 100 milestones.<br/>WorkloadId:  The ID assigned to the workload. This ID is unique within an AWS Region.<br/>        """
        pass

    def list_lens_review_improvements(self, LensAlias: str, WorkloadId: str, PillarId: str=None, MilestoneNumber: int=None, NextToken: str=None, MaxResults: int=None) -> ListLensReviewImprovementsOutput:
        r"""List lens review improvements.

        :param self:
        :param MaxResults:  The maximum number of results to return for this request.<br/>NextToken:  The token to use to retrieve the next set of results.<br/>MilestoneNumber:  The milestone number. A workload can have a maximum of 100 milestones.<br/>PillarId:  The ID used to identify a pillar, for example, <code>security</code>. A pillar is identified by its <a>PillarReviewSummary$PillarId</a>.<br/>LensAlias:  The alias of the lens, for example, <code>serverless</code>. Each lens is identified by its <a>LensSummary$LensAlias</a>.<br/>WorkloadId:  The ID assigned to the workload. This ID is unique within an AWS Region.<br/>
        :return: NextToken:  The token to use to retrieve the next set of results.<br/>ImprovementSummaries:  List of improvement summaries of lens review in a workload.<br/>LensAlias:  The alias of the lens, for example, <code>serverless</code>. Each lens is identified by its <a>LensSummary$LensAlias</a>.<br/>MilestoneNumber:  The milestone number. A workload can have a maximum of 100 milestones.<br/>WorkloadId:  The ID assigned to the workload. This ID is unique within an AWS Region.<br/>        """
        pass

    def list_lens_reviews(self, WorkloadId: str, MilestoneNumber: int=None, NextToken: str=None, MaxResults: int=None) -> ListLensReviewsOutput:
        r"""List lens reviews.

        :param self:
        :param MaxResults:  The maximum number of results to return for this request.<br/>NextToken:  The token to use to retrieve the next set of results.<br/>MilestoneNumber:  The milestone number. A workload can have a maximum of 100 milestones.<br/>WorkloadId:  The ID assigned to the workload. This ID is unique within an AWS Region.<br/>
        :return: NextToken:  The token to use to retrieve the next set of results.<br/>LensReviewSummaries:  List of lens summaries of lens reviews of a workload.<br/>MilestoneNumber:  The milestone number. A workload can have a maximum of 100 milestones.<br/>WorkloadId:  The ID assigned to the workload. This ID is unique within an AWS Region.<br/>        """
        pass

    def list_lenses(self, NextToken: str=None, MaxResults: int=None) -> ListLensesOutput:
        r"""List the available lenses.

        :param self:
        :param MaxResults:  The maximum number of results to return for this request.<br/>NextToken:  The token to use to retrieve the next set of results.<br/>
        :return: NextToken:  The token to use to retrieve the next set of results.<br/>LensSummaries:  List of lens summaries of available lenses.<br/>        """
        pass

    def list_milestones(self, WorkloadId: str, NextToken: str=None, MaxResults: int=None) -> ListMilestonesOutput:
        r"""List all milestones for an existing workload.

        :param self:
        :param MaxResults:  The maximum number of results to return for this request.<br/>NextToken:  The token to use to retrieve the next set of results.<br/>WorkloadId:  The ID assigned to the workload. This ID is unique within an AWS Region.<br/>
        :return: NextToken:  The token to use to retrieve the next set of results.<br/>MilestoneSummaries:  A list of milestone summaries.<br/>WorkloadId:  The ID assigned to the workload. This ID is unique within an AWS Region.<br/>        """
        pass

    def list_notifications(self, WorkloadId: str=None, NextToken: str=None, MaxResults: int=None) -> ListNotificationsOutput:
        r"""List lens notifications.

        :param self:
        :param MaxResults:  The maximum number of results to return for this request.<br/>NextToken:  The token to use to retrieve the next set of results.<br/>WorkloadId:  The ID assigned to the workload. This ID is unique within an AWS Region.<br/>
        :return: NextToken:  The token to use to retrieve the next set of results.<br/>NotificationSummaries:  List of lens notification summaries in a workload.<br/>        """
        pass

    def list_share_invitations(self, WorkloadNamePrefix: str=None, NextToken: str=None, MaxResults: int=None) -> ListShareInvitationsOutput:
        r"""List the workload invitations.

        :param self:
        :param MaxResults:  The maximum number of results to return for this request.<br/>NextToken:  The token to use to retrieve the next set of results.<br/>WorkloadNamePrefix:  An optional string added to the beginning of each workload name returned in the results.<br/>
        :return: NextToken:  The token to use to retrieve the next set of results.<br/>ShareInvitationSummaries:  List of share invitation summaries in a workload.<br/>        """
        pass

    def list_tags_for_resource(self, WorkloadArn: str) -> ListTagsForResourceOutput:
        r"""List the tags for a resource.

        :param self:
        :param WorkloadArn:  The ARN for the workload.<br/>
        :return: Tags:  The tags for the resource.<br/>        """
        pass

    def list_workload_shares(self, WorkloadId: str, SharedWithPrefix: str=None, NextToken: str=None, MaxResults: int=None) -> ListWorkloadSharesOutput:
        r"""List the workload shares associated with the workload.

        :param self:
        :param MaxResults:  The maximum number of results to return for this request.<br/>NextToken:  The token to use to retrieve the next set of results.<br/>SharedWithPrefix:  The AWS account ID or IAM role with which the workload is shared.<br/>WorkloadId:  The ID assigned to the workload. This ID is unique within an AWS Region.<br/>
        :return: NextToken:  The token to use to retrieve the next set of results.<br/>WorkloadShareSummaries:  A list of workload share summaries.<br/>WorkloadId:  The ID assigned to the workload. This ID is unique within an AWS Region.<br/>        """
        pass

    def list_workloads(self, WorkloadNamePrefix: str=None, NextToken: str=None, MaxResults: int=None) -> ListWorkloadsOutput:
        r"""List workloads. Paginated.

        :param self:
        :param MaxResults:  The maximum number of results to return for this request.<br/>NextToken:  The token to use to retrieve the next set of results.<br/>WorkloadNamePrefix:  An optional string added to the beginning of each workload name returned in the results.<br/>
        :return: NextToken:  The token to use to retrieve the next set of results.<br/>WorkloadSummaries:  A list of workload summaries.<br/>        """
        pass

    def tag_resource(self, Tags: TagMap, WorkloadArn: str) -> TagResourceOutput:
        r"""Adds one or more tags to the specified resource.

        :param self:
        :param Tags:  The tags for the resource.<br/>WorkloadArn:  The ARN for the workload.<br/>
        :return:         """
        pass

    def untag_resource(self, TagKeys: List[TagKey], WorkloadArn: str) -> UntagResourceOutput:
        r"""Deletes specified tags from a resource.

        :param self:
        :param TagKeys:  The keys of the tags to be removed.<br/>WorkloadArn:  The ARN for the workload.<br/>
        :return:         """
        pass

    def update_answer(self, QuestionId: str, LensAlias: str, WorkloadId: str, SelectedChoices: List[ChoiceId]=None, Notes: str=None, IsApplicable: IsApplicable=None) -> UpdateAnswerOutput:
        r"""Update the answer to a specific question in a workload review.

        :param self:
        :param IsApplicable:  Defines whether this question is applicable to a lens review.<br/>Notes:  The notes associated with the workload.<br/>SelectedChoices:  List of selected choice IDs in a question answer. The values entered replace the previously selected choices.<br/>QuestionId:  The ID of the question.<br/>LensAlias:  The alias of the lens, for example, <code>serverless</code>. Each lens is identified by its <a>LensSummary$LensAlias</a>.<br/>WorkloadId:  The ID assigned to the workload. This ID is unique within an AWS Region.<br/>
        :return: Answer:  An answer of the question.:<br/>LensAlias:  The alias of the lens, for example, <code>serverless</code>. Each lens is identified by its <a>LensSummary$LensAlias</a>.<br/>WorkloadId:  The ID assigned to the workload. This ID is unique within an AWS Region.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Notes</i> The notes associated with the workload.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Risk</i> The risk for a given workload, lens review, pillar, or question.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsApplicable</i> Defines whether this question is applicable to a lens review.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SelectedChoices</i> List of selected choice IDs in a question answer. The values entered replace the previously selected choices.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Choices</i> List of choices available for a question.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HelpfulResourceUrl</i> The helpful resource URL for a question.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImprovementPlanUrl</i> The improvement plan URL for a question.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>QuestionDescription</i> The description of the question.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>QuestionTitle</i> The title of the question.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PillarId</i> The ID used to identify a pillar, for example, <code>security</code>. A pillar is identified by its <a>PillarReviewSummary$PillarId</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>QuestionId</i> The ID of the question.<br/>        """
        pass

    def update_lens_review(self, LensAlias: str, WorkloadId: str, LensNotes: str=None, PillarNotes: PillarNotes=None) -> UpdateLensReviewOutput:
        r"""Update lens review.

        :param self:
        :param PillarNotes:  List of pillar notes of a lens review in a workload.<br/>LensNotes:  The notes associated with the workload.<br/>LensAlias:  The alias of the lens, for example, <code>serverless</code>. Each lens is identified by its <a>LensSummary$LensAlias</a>.<br/>WorkloadId:  The ID assigned to the workload. This ID is unique within an AWS Region.<br/>
        :return: LensReview:  A lens review of a question.:<br/>WorkloadId:  The ID assigned to the workload. This ID is unique within an AWS Region.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NextToken</i> The token to use to retrieve the next set of results.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RiskCounts</i> A map from risk names to the count of how questions have that rating.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Notes</i> The notes associated with the workload.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdatedAt</i> The date and time recorded.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PillarReviewSummaries</i> List of pillar review summaries of lens review in a workload.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LensStatus</i> The status of the lens.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LensName</i> The full name of the lens.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LensVersion</i> The version of the lens.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LensAlias</i> The alias of the lens, for example, <code>serverless</code>. Each lens is identified by its <a>LensSummary$LensAlias</a>.<br/>        """
        pass

    def update_share_invitation(self, ShareInvitationAction: str, ShareInvitationId: str) -> UpdateShareInvitationOutput:
        r"""Update a workload invitation.

        :param self:
        :param ShareInvitationAction:  Share invitation action taken by contributor.<br/>ShareInvitationId:  The ID assigned to the share invitation.<br/>
        :return: ShareInvitation:  The updated workload share invitation.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WorkloadId</i> The ID assigned to the workload. This ID is unique within an AWS Region.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ShareInvitationId</i> The ID assigned to the share invitation.<br/>        """
        pass

    def update_workload(self, WorkloadId: str, WorkloadName: str=None, Description: str=None, Environment: str=None, AccountIds: List[AwsAccountId]=None, AwsRegions: List[AwsRegion]=None, NonAwsRegions: List[WorkloadNonAwsRegion]=None, PillarPriorities: List[PillarId]=None, ArchitecturalDesign: str=None, ReviewOwner: str=None, IsReviewOwnerUpdateAcknowledged: IsReviewOwnerUpdateAcknowledged=None, IndustryType: str=None, Industry: str=None, Notes: str=None, ImprovementStatus: str=None) -> UpdateWorkloadOutput:
        r"""Update an existing workload.

        :param self:
        :param ImprovementStatus:  The improvement status for a workload.<br/>Notes:  The notes associated with the workload.<br/>Industry:  The industry for the workload.<br/>IndustryType:  The industry type for the workload. If specified, must be one of the following: <ul> <li>  <code>Agriculture</code>  </li> <li>  <code>Automobile</code>  </li> <li>  <code>Defense</code>  </li> <li>  <code>Design and Engineering</code>  </li> <li>  <code>Digital Advertising</code>  </li> <li>  <code>Education</code>  </li> <li>  <code>Environmental Protection</code>  </li> <li>  <code>Financial Services</code>  </li> <li>  <code>Gaming</code>  </li> <li>  <code>General Public Services</code>  </li> <li>  <code>Healthcare</code>  </li> <li>  <code>Hospitality</code>  </li> <li>  <code>InfoTech</code>  </li> <li>  <code>Justice and Public Safety</code>  </li> <li>  <code>Life Sciences</code>  </li> <li>  <code>Manufacturing</code>  </li> <li>  <code>Media &amp; Entertainment</code>  </li> <li>  <code>Mining &amp; Resources</code>  </li> <li>  <code>Oil &amp; Gas</code>  </li> <li>  <code>Power &amp; Utilities</code>  </li> <li>  <code>Professional Services</code>  </li> <li>  <code>Real Estate &amp; Construction</code>  </li> <li>  <code>Retail &amp; Wholesale</code>  </li> <li>  <code>Social Protection</code>  </li> <li>  <code>Telecommunications</code>  </li> <li>  <code>Travel, Transportation &amp; Logistics</code>  </li> <li>  <code>Other</code>  </li> </ul><br/>IsReviewOwnerUpdateAcknowledged:  Flag indicating whether the workload owner has acknowledged that the <i>Review owner</i> field is required. If a <b>Review owner</b> is not added to the workload within 60 days of acknowledgement, access to the workload is restricted until an owner is added.<br/>ReviewOwner:  The review owner of the workload. The name, email address, or identifier for the primary group or individual that owns the workload review process.<br/>ArchitecturalDesign:  The URL of the architectural design for the workload.<br/>PillarPriorities:  The priorities of the pillars, which are used to order items in the improvement plan. Each pillar is represented by its <a>PillarReviewSummary$PillarId</a>.<br/>NonAwsRegions:   The list of non-AWS Regions associated with the workload.<br/>AwsRegions:  The list of AWS Regions associated with the workload, for example, <code>us-east-2</code>, or <code>ca-central-1</code>.<br/>AccountIds:  The list of AWS account IDs associated with the workload.<br/>Environment:  The environment for the workload.<br/>Description:  The description for the workload.<br/>WorkloadName:  The name of the workload. The name must be unique within an account within a Region. Spaces and capitalization are ignored when checking for uniqueness.<br/>WorkloadId:  The ID assigned to the workload. This ID is unique within an AWS Region.<br/>
        :return: Workload:  A workload return object.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Tags</i> The tags associated with the workload.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ShareInvitationId</i> The ID assigned to the share invitation.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Owner</i> An AWS account ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Lenses</i> The list of lenses associated with the workload. Each lens is identified by its <a>LensSummary$LensAlias</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PillarPriorities</i> The priorities of the pillars, which are used to order items in the improvement plan. Each pillar is represented by its <a>PillarReviewSummary$PillarId</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RiskCounts</i> A map from risk names to the count of how questions have that rating.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImprovementStatus</i> The improvement status for a workload.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Notes</i> The notes associated with the workload.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Industry</i> The industry for the workload.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IndustryType</i> The industry type for the workload. If specified, must be one of the following: <ul> <li>  <code>Agriculture</code>  </li> <li>  <code>Automobile</code>  </li> <li>  <code>Defense</code>  </li> <li>  <code>Design and Engineering</code>  </li> <li>  <code>Digital Advertising</code>  </li> <li>  <code>Education</code>  </li> <li>  <code>Environmental Protection</code>  </li> <li>  <code>Financial Services</code>  </li> <li>  <code>Gaming</code>  </li> <li>  <code>General Public Services</code>  </li> <li>  <code>Healthcare</code>  </li> <li>  <code>Hospitality</code>  </li> <li>  <code>InfoTech</code>  </li> <li>  <code>Justice and Public Safety</code>  </li> <li>  <code>Life Sciences</code>  </li> <li>  <code>Manufacturing</code>  </li> <li>  <code>Media &amp; Entertainment</code>  </li> <li>  <code>Mining &amp; Resources</code>  </li> <li>  <code>Oil &amp; Gas</code>  </li> <li>  <code>Power &amp; Utilities</code>  </li> <li>  <code>Professional Services</code>  </li> <li>  <code>Real Estate &amp; Construction</code>  </li> <li>  <code>Retail &amp; Wholesale</code>  </li> <li>  <code>Social Protection</code>  </li> <li>  <code>Telecommunications</code>  </li> <li>  <code>Travel, Transportation &amp; Logistics</code>  </li> <li>  <code>Other</code>  </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IsReviewOwnerUpdateAcknowledged</i> Flag indicating whether the workload owner has acknowledged that the <i>Review owner</i> field is required. If a <b>Review owner</b> is not added to the workload within 60 days of acknowledgement, access to the workload is restricted until an owner is added.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReviewRestrictionDate</i> The date and time recorded.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReviewOwner</i> The review owner of the workload. The name, email address, or identifier for the primary group or individual that owns the workload review process.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ArchitecturalDesign</i> The URL of the architectural design for the workload.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NonAwsRegions</i>  The list of non-AWS Regions associated with the workload.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AwsRegions</i> The list of AWS Regions associated with the workload, for example, <code>us-east-2</code>, or <code>ca-central-1</code>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AccountIds</i> The list of AWS account IDs associated with the workload.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UpdatedAt</i> The date and time recorded.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Environment</i> The environment for the workload.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description for the workload.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WorkloadName</i> The name of the workload. The name must be unique within an account within a Region. Spaces and capitalization are ignored when checking for uniqueness.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WorkloadArn</i> The ARN for the workload.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WorkloadId</i> The ID assigned to the workload. This ID is unique within an AWS Region.<br/>        """
        pass

    def update_workload_share(self, PermissionType: str, WorkloadId: str, ShareId: str) -> UpdateWorkloadShareOutput:
        r"""Update a workload share.

        :param self:
        :param PermissionType:  Permission granted on a workload share.<br/>WorkloadId:  The ID assigned to the workload. This ID is unique within an AWS Region.<br/>ShareId:  The ID associated with the workload share.<br/>
        :return: WorkloadShare:  A workload share return object.:<br/>WorkloadId:  The ID assigned to the workload. This ID is unique within an AWS Region.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WorkloadId</i> The ID assigned to the workload. This ID is unique within an AWS Region.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>WorkloadName</i> The name of the workload. The name must be unique within an account within a Region. Spaces and capitalization are ignored when checking for uniqueness.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of a workload share.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>PermissionType</i> Permission granted on a workload share.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SharedWith</i> The AWS account ID or IAM role with which the workload is shared.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SharedBy</i> An AWS account ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ShareId</i> The ID associated with the workload share.<br/>        """
        pass

    def upgrade_lens_review(self, MilestoneName: str, LensAlias: str, WorkloadId: str, ClientRequestToken: str=None):
        r"""Upgrade lens review.

        :param self:
        :param ClientRequestToken:  A unique case-sensitive string used to ensure that this request is idempotent (executes only once). You should not reuse the same token for other requests. If you retry a request with the same client request token and the same parameters after it has completed successfully, the result of the original request is returned.  <important> This token is listed as required, however, if you do not specify it, the AWS SDKs automatically generate one for you. If you are not using the AWS SDK or the AWS CLI, you must provide this token or the request will fail. </important><br/>MilestoneName:  The name of the milestone in a workload. Milestone names must be unique within a workload.<br/>LensAlias:  The alias of the lens, for example, <code>serverless</code>. Each lens is identified by its <a>LensSummary$LensAlias</a>.<br/>WorkloadId:  The ID assigned to the workload. This ID is unique within an AWS Region.<br/>
        :return:         """
        pass





class WorkDocs(BaseClient):
    r"""The WorkDocs API is designed for the following use cases: <ul> <li> File Migration: File migration applications are supported for users who want to migrate their files from an on-premises or off-premises file system or service. Users can insert files into a user directory structure, as well as allow for basic metadata changes, such as modifications to the permissions of files. </li> <li> Security: Support security applications are supported for users who have additional security needs, such as antivirus or data loss prevention. The API actions, along with AWS CloudTrail, allow these applications to detect when changes occur in Amazon WorkDocs. Then, the application can take the necessary actions and replace the target file. If the target file violates the policy, the application can also choose to email the user. </li> <li> eDiscovery/Analytics: General administrative applications are supported, such as eDiscovery and analytics. These applications can choose to mimic or record the actions in an Amazon WorkDocs site, along with AWS CloudTrail, to replicate data for eDiscovery, backup, or analytical applications. </li> </ul> All Amazon WorkDocs API actions are Amazon authenticated and certificate-signed. They not only require the use of the AWS SDK, but also allow for the exclusive use of IAM users and roles to help facilitate access, trust, and permission policies. By creating a role and allowing an IAM user to access the Amazon WorkDocs site, the IAM user gains full administrative visibility into the entire Amazon WorkDocs site (or as set in the IAM policy). This includes, but is not limited to, the ability to modify file permissions and upload any file to any user. This allows developers to perform the three use cases above, as well as give users the ability to grant access on a selective basis using the IAM model."""


    class DescribeDocumentVersionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_document_versions` for valid parameters"""
            pass
    class DescribeFolderContentsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_folder_contents` for valid parameters"""
            pass
    class DescribeUsersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_users` for valid parameters"""
            pass
    class DescribeActivitiesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_activities` for valid parameters"""
            pass
    class DescribeCommentsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_comments` for valid parameters"""
            pass
    class DescribeGroupsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_groups` for valid parameters"""
            pass
    class DescribeNotificationSubscriptionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_notification_subscriptions` for valid parameters"""
            pass
    class DescribeResourcePermissionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_resource_permissions` for valid parameters"""
            pass
    class DescribeRootFoldersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_root_folders` for valid parameters"""
            pass


    class AbortDocumentVersionUploadRequest(Mapping):
        pass
    
    class ActivateUserRequest(Mapping):
        pass
    
    class ActivateUserResponse(Mapping):
        pass
    
    class AddResourcePermissionsRequest(Mapping):
        pass
    
    class AddResourcePermissionsResponse(Mapping):
        pass
    
    class SharePrincipal(Mapping):
        pass
    
    class NotificationOptions(Mapping):
        pass
    
    class CreateCommentRequest(Mapping):
        pass
    
    class CreateCommentResponse(Mapping):
        pass
    
    class BooleanType(object):
        pass
    
    class CreateCustomMetadataRequest(Mapping):
        pass
    
    class CreateCustomMetadataResponse(Mapping):
        pass
    
    class CustomMetadataMap(object):
        pass
    
    class CreateFolderRequest(Mapping):
        pass
    
    class CreateFolderResponse(Mapping):
        pass
    
    class CreateLabelsRequest(Mapping):
        pass
    
    class CreateLabelsResponse(Mapping):
        pass
    
    class SharedLabel(object):
        pass
    
    class CreateNotificationSubscriptionRequest(Mapping):
        pass
    
    class CreateNotificationSubscriptionResponse(Mapping):
        pass
    
    class CreateUserRequest(Mapping):
        pass
    
    class CreateUserResponse(Mapping):
        pass
    
    class StorageRuleType(Mapping):
        pass
    
    class DeactivateUserRequest(Mapping):
        pass
    
    class DeleteCommentRequest(Mapping):
        pass
    
    class DeleteCustomMetadataRequest(Mapping):
        pass
    
    class DeleteCustomMetadataResponse(Mapping):
        pass
    
    class CustomMetadataKeyType(object):
        pass
    
    class DeleteDocumentRequest(Mapping):
        pass
    
    class DeleteFolderRequest(Mapping):
        pass
    
    class DeleteFolderContentsRequest(Mapping):
        pass
    
    class DeleteLabelsRequest(Mapping):
        pass
    
    class DeleteLabelsResponse(Mapping):
        pass
    
    class DeleteNotificationSubscriptionRequest(Mapping):
        pass
    
    class DeleteUserRequest(Mapping):
        pass
    
    class DescribeActivitiesRequest(Mapping):
        pass
    
    class DescribeActivitiesResponse(Mapping):
        pass
    
    class TimestampType(object):
        pass
    
    class DescribeCommentsRequest(Mapping):
        pass
    
    class DescribeCommentsResponse(Mapping):
        pass
    
    class DescribeDocumentVersionsRequest(Mapping):
        pass
    
    class DescribeDocumentVersionsResponse(Mapping):
        pass
    
    class DescribeFolderContentsRequest(Mapping):
        pass
    
    class DescribeFolderContentsResponse(Mapping):
        pass
    
    class DescribeGroupsRequest(Mapping):
        pass
    
    class DescribeGroupsResponse(Mapping):
        pass
    
    class DescribeNotificationSubscriptionsRequest(Mapping):
        pass
    
    class DescribeNotificationSubscriptionsResponse(Mapping):
        pass
    
    class DescribeResourcePermissionsRequest(Mapping):
        pass
    
    class DescribeResourcePermissionsResponse(Mapping):
        pass
    
    class DescribeRootFoldersRequest(Mapping):
        pass
    
    class DescribeRootFoldersResponse(Mapping):
        pass
    
    class DescribeUsersRequest(Mapping):
        pass
    
    class DescribeUsersResponse(Mapping):
        pass
    
    class GetCurrentUserRequest(Mapping):
        pass
    
    class GetCurrentUserResponse(Mapping):
        pass
    
    class GetDocumentRequest(Mapping):
        pass
    
    class GetDocumentResponse(Mapping):
        pass
    
    class GetDocumentPathRequest(Mapping):
        pass
    
    class GetDocumentPathResponse(Mapping):
        pass
    
    class GetDocumentVersionRequest(Mapping):
        pass
    
    class GetDocumentVersionResponse(Mapping):
        pass
    
    class GetFolderRequest(Mapping):
        pass
    
    class GetFolderResponse(Mapping):
        pass
    
    class GetFolderPathRequest(Mapping):
        pass
    
    class GetFolderPathResponse(Mapping):
        pass
    
    class GetResourcesRequest(Mapping):
        pass
    
    class GetResourcesResponse(Mapping):
        pass
    
    class InitiateDocumentVersionUploadRequest(Mapping):
        pass
    
    class InitiateDocumentVersionUploadResponse(Mapping):
        pass
    
    class SizeType(object):
        pass
    
    class RemoveAllResourcePermissionsRequest(Mapping):
        pass
    
    class RemoveResourcePermissionRequest(Mapping):
        pass
    
    class UpdateDocumentRequest(Mapping):
        pass
    
    class UpdateDocumentVersionRequest(Mapping):
        pass
    
    class UpdateFolderRequest(Mapping):
        pass
    
    class UpdateUserRequest(Mapping):
        pass
    
    class UpdateUserResponse(Mapping):
        pass
    
    def abort_document_version_upload(self, VersionId: str, DocumentId: str, AuthenticationToken: str=None):
        r"""Aborts the upload of the specified document version that was previously initiated by <a>InitiateDocumentVersionUpload</a>. The client should make this call only when it no longer intends to upload the document version, or fails to do so.

        :param self:
        :param VersionId:  The ID of the version.<br/>DocumentId:  The ID of the document.<br/>AuthenticationToken:  Amazon WorkDocs authentication token. Not required when using AWS administrator credentials to access the API.<br/>
        :return:         """
        pass

    def activate_user(self, UserId: str, AuthenticationToken: str=None) -> ActivateUserResponse:
        r"""Activates the specified user. Only active users can access Amazon WorkDocs.

        :param self:
        :param AuthenticationToken:  Amazon WorkDocs authentication token. Not required when using AWS administrator credentials to access the API.<br/>UserId:  The ID of the user.<br/>
        :return: User:  The user information.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Storage</i> The storage for the user.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Storage</b>: The storage for the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Locale</i> The locale of the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TimeZoneId</i> The time zone ID of the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ModifiedTimestamp</i> The time when the user was modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTimestamp</i> The time when the user was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecycleBinFolderId</i> The ID of the recycle bin folder.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RootFolderId</i> The ID of the root folder.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OrganizationId</i> The ID of the organization.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Surname</i> The surname of the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GivenName</i> The given name of the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EmailAddress</i> The email address of the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Username</i> The login name of the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID of the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageUtilizedInBytes</i> The amount of storage used, in bytes.<br/>The storage for a user.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StorageRule</b>: The storage for a user.        """
        pass

    def add_resource_permissions(self, Principals: List[SharePrincipal], ResourceId: str, AuthenticationToken: str=None, NotificationOptions: NotificationOptions=None) -> AddResourcePermissionsResponse:
        r"""Creates a set of permissions for the specified folder or document. The resource permissions are overwritten if the principals already have different permissions.

        :param self:
        :param NotificationOptions:  The notification options.:<br/>Principals:  The users, groups, or organization being granted permission.<br/>ResourceId:  The ID of the resource.<br/>AuthenticationToken:  Amazon WorkDocs authentication token. Not required when using AWS administrator credentials to access the API.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EmailMessage</i> Text value to be included in the email body.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SendEmail</i> Boolean value to indicate an email notification should be sent to the receipients.<br/>
        :return: ShareResults:  The share results.<br/>        """
        pass

    def create_comment(self, Text: str, VersionId: str, DocumentId: str, AuthenticationToken: str=None, ParentId: str=None, ThreadId: str=None, Visibility: str=None, NotifyCollaborators: BooleanType=None) -> CreateCommentResponse:
        r"""Adds a new comment to the specified document version.

        :param self:
        :param NotifyCollaborators:  Set this parameter to TRUE to send an email out to the document collaborators after the comment is created.<br/>Visibility:  The visibility of the comment. Options are either PRIVATE, where the comment is visible only to the comment author and document owner and co-owners, or PUBLIC, where the comment is visible to document owners, co-owners, and contributors.<br/>Text:  The text of the comment.<br/>ThreadId:  The ID of the root comment in the thread.<br/>ParentId:  The ID of the parent comment.<br/>VersionId:  The ID of the document version.<br/>DocumentId:  The ID of the document.<br/>AuthenticationToken:  Amazon WorkDocs authentication token. Not required when using AWS administrator credentials to access the API.<br/>
        :return: Comment:  The comment that has been created.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecipientId</i> If the comment is a reply to another user's comment, this field contains the user ID of the user being replied to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Visibility</i> The visibility of the comment. Options are either PRIVATE, where the comment is visible only to the comment author and document owner and co-owners, or PUBLIC, where the comment is visible to document owners, co-owners, and contributors.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the comment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTimestamp</i> The time that the comment was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Contributor</i> The details of the user who made the comment.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Contributor</b>: The details of the user who made the comment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Text</i> The text of the comment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ThreadId</i> The ID of the root comment in the thread.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ParentId</i> The ID of the parent comment.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CommentId</i> The ID of the comment.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Locale</i> The locale of the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TimeZoneId</i> The time zone ID of the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ModifiedTimestamp</i> The time when the user was modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTimestamp</i> The time when the user was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of user.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RecycleBinFolderId</i> The ID of the recycle bin folder.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RootFolderId</i> The ID of the root folder.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OrganizationId</i> The ID of the organization.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Surname</i> The surname of the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>GivenName</i> The given name of the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>EmailAddress</i> The email address of the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Username</i> The login name of the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID of the user.<br/>The storage for the user.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Storage</b>: The storage for the user.        """
        pass

    def create_custom_metadata(self, CustomMetadata: CustomMetadataMap, ResourceId: str, AuthenticationToken: str=None, VersionId: str=None) -> CreateCustomMetadataResponse:
        r"""Adds one or more custom properties to the specified resource (a folder, document, or version).

        :param self:
        :param CustomMetadata:  Custom metadata in the form of name-value pairs.<br/>VersionId:  The ID of the version, if the custom metadata is being added to a document version.<br/>ResourceId:  The ID of the resource.<br/>AuthenticationToken:  Amazon WorkDocs authentication token. Not required when using AWS administrator credentials to access the API.<br/>
        :return:         """
        pass

    def create_folder(self, ParentFolderId: str, AuthenticationToken: str=None, Name: str=None) -> CreateFolderResponse:
        r"""Creates a folder with the specified name and parent folder.

        :param self:
        :param ParentFolderId:  The ID of the parent folder.<br/>Name:  The name of the new folder.<br/>AuthenticationToken:  Amazon WorkDocs authentication token. Not required when using AWS administrator credentials to access the API.<br/>
        :return: Metadata:  The metadata of the folder.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestVersionSize</i> The size of the latest version of the folder metadata.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Size</i> The size of the folder metadata.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Labels</i> List of labels on the folder.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Signature</i> The unique identifier created from the subfolders and documents of the folder.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceState</i> The resource state of the folder.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ModifiedTimestamp</i> The time when the folder was updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTimestamp</i> The time when the folder was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ParentFolderId</i> The ID of the parent folder.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatorId</i> The ID of the creator.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the folder.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID of the folder.<br/>        """
        pass

    def create_labels(self, Labels: List[SharedLabel], ResourceId: str, AuthenticationToken: str=None) -> CreateLabelsResponse:
        r"""Adds the specified list of labels to the given resource (a document or folder)

        :param self:
        :param AuthenticationToken:  Amazon WorkDocs authentication token. Not required when using AWS administrator credentials to access the API.<br/>Labels:  List of labels to add to the resource.<br/>ResourceId:  The ID of the resource.<br/>
        :return:         """
        pass

    def create_notification_subscription(self, SubscriptionType: str, Protocol: str, Endpoint: str, OrganizationId: str) -> CreateNotificationSubscriptionResponse:
        r"""Configure Amazon WorkDocs to use Amazon SNS notifications. The endpoint receives a confirmation message, and must confirm the subscription. For more information, see <a href="https://docs.aws.amazon.com/workdocs/latest/developerguide/subscribe-notifications.html">Subscribe to Notifications</a> in the <i>Amazon WorkDocs Developer Guide</i>.

        :param self:
        :param SubscriptionType:  The notification type.<br/>Protocol:  The protocol to use. The supported value is https, which delivers JSON-encoded messages using HTTPS POST.<br/>Endpoint:  The endpoint to receive the notifications. If the protocol is HTTPS, the endpoint is a URL that begins with <code>https</code>.<br/>OrganizationId:  The ID of the organization.<br/>
        :return: Subscription:  The subscription.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Protocol</i> The protocol of the subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndPoint</i> The endpoint of the subscription.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SubscriptionId</i> The ID of the subscription.<br/>        """
        pass

    def create_user(self, Password: str, Surname: str, GivenName: str, Username: str, OrganizationId: str=None, EmailAddress: str=None, TimeZoneId: str=None, StorageRule: StorageRuleType=None, AuthenticationToken: str=None) -> CreateUserResponse:
        r"""Creates a user in a Simple AD or Microsoft AD directory. The status of a newly created user is "ACTIVE". New users can access Amazon WorkDocs.

        :param self:
        :param AuthenticationToken:  Amazon WorkDocs authentication token. Not required when using AWS administrator credentials to access the API.<br/>StorageRule:  The amount of storage for the user.:<br/>TimeZoneId:  The time zone ID of the user.<br/>Password:  The password of the user.<br/>Surname:  The surname of the user.<br/>GivenName:  The given name of the user.<br/>EmailAddress:  The email address of the user.<br/>Username:  The login name of the user.<br/>OrganizationId:  The ID of the organization.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageType</i> The type of storage.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageAllocatedInBytes</i> The amount of storage allocated, in bytes.<br/>
        :return: User:  The user information.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Storage</i> The storage for the user.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Storage</b>: The storage for the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Locale</i> The locale of the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TimeZoneId</i> The time zone ID of the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ModifiedTimestamp</i> The time when the user was modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTimestamp</i> The time when the user was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecycleBinFolderId</i> The ID of the recycle bin folder.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RootFolderId</i> The ID of the root folder.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OrganizationId</i> The ID of the organization.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Surname</i> The surname of the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GivenName</i> The given name of the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EmailAddress</i> The email address of the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Username</i> The login name of the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID of the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageUtilizedInBytes</i> The amount of storage used, in bytes.<br/>The storage for a user.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StorageRule</b>: The storage for a user.        """
        pass

    def deactivate_user(self, UserId: str, AuthenticationToken: str=None):
        r"""Deactivates the specified user, which revokes the user's access to Amazon WorkDocs.

        :param self:
        :param AuthenticationToken:  Amazon WorkDocs authentication token. Not required when using AWS administrator credentials to access the API.<br/>UserId:  The ID of the user.<br/>
        :return:         """
        pass

    def delete_comment(self, CommentId: str, VersionId: str, DocumentId: str, AuthenticationToken: str=None):
        r"""Deletes the specified comment from the document version.

        :param self:
        :param CommentId:  The ID of the comment.<br/>VersionId:  The ID of the document version.<br/>DocumentId:  The ID of the document.<br/>AuthenticationToken:  Amazon WorkDocs authentication token. Not required when using AWS administrator credentials to access the API.<br/>
        :return:         """
        pass

    def delete_custom_metadata(self, ResourceId: str, AuthenticationToken: str=None, VersionId: str=None, Keys: List[CustomMetadataKeyType]=None, DeleteAll: BooleanType=None) -> DeleteCustomMetadataResponse:
        r"""Deletes custom metadata from the specified resource.

        :param self:
        :param DeleteAll:  Flag to indicate removal of all custom metadata properties from the specified resource.<br/>Keys:  List of properties to remove.<br/>VersionId:  The ID of the version, if the custom metadata is being deleted from a document version.<br/>ResourceId:  The ID of the resource, either a document or folder.<br/>AuthenticationToken:  Amazon WorkDocs authentication token. Not required when using AWS administrator credentials to access the API.<br/>
        :return:         """
        pass

    def delete_document(self, DocumentId: str, AuthenticationToken: str=None):
        r"""Permanently deletes the specified document and its associated metadata.

        :param self:
        :param DocumentId:  The ID of the document.<br/>AuthenticationToken:  Amazon WorkDocs authentication token. Not required when using AWS administrator credentials to access the API.<br/>
        :return:         """
        pass

    def delete_folder(self, FolderId: str, AuthenticationToken: str=None):
        r"""Permanently deletes the specified folder and its contents.

        :param self:
        :param FolderId:  The ID of the folder.<br/>AuthenticationToken:  Amazon WorkDocs authentication token. Not required when using AWS administrator credentials to access the API.<br/>
        :return:         """
        pass

    def delete_folder_contents(self, FolderId: str, AuthenticationToken: str=None):
        r"""Deletes the contents of the specified folder.

        :param self:
        :param FolderId:  The ID of the folder.<br/>AuthenticationToken:  Amazon WorkDocs authentication token. Not required when using AWS administrator credentials to access the API.<br/>
        :return:         """
        pass

    def delete_labels(self, ResourceId: str, AuthenticationToken: str=None, Labels: List[SharedLabel]=None, DeleteAll: BooleanType=None) -> DeleteLabelsResponse:
        r"""Deletes the specified list of labels from a resource.

        :param self:
        :param DeleteAll:  Flag to request removal of all labels from the specified resource.<br/>Labels:  List of labels to delete from the resource.<br/>AuthenticationToken:  Amazon WorkDocs authentication token. Not required when using AWS administrator credentials to access the API.<br/>ResourceId:  The ID of the resource.<br/>
        :return:         """
        pass

    def delete_notification_subscription(self, OrganizationId: str, SubscriptionId: str):
        r"""Deletes the specified subscription from the specified organization.

        :param self:
        :param OrganizationId:  The ID of the organization.<br/>SubscriptionId:  The ID of the subscription.<br/>
        :return:         """
        pass

    def delete_user(self, UserId: str, AuthenticationToken: str=None):
        r"""Deletes the specified user from a Simple AD or Microsoft AD directory.

        :param self:
        :param UserId:  The ID of the user.<br/>AuthenticationToken:  Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials.<br/>
        :return:         """
        pass

    def describe_activities(self, AuthenticationToken: str=None, StartTime: TimestampType=None, EndTime: TimestampType=None, OrganizationId: str=None, ActivityTypes: str=None, ResourceId: str=None, UserId: str=None, IncludeIndirectActivities: BooleanType=None, Limit: int=None, Marker: str=None) -> DescribeActivitiesResponse:
        r"""Describes the user activities in a specified time period.

        :param self:
        :param Marker:  The marker for the next set of results.<br/>Limit:  The maximum number of items to return.<br/>IncludeIndirectActivities:  Includes indirect activities. An indirect activity results from a direct activity performed on a parent resource. For example, sharing a parent folder (the direct activity) shares all of the subfolders and documents within the parent folder (the indirect activity).<br/>UserId:  The ID of the user who performed the action. The response includes activities pertaining to this user. This is an optional parameter and is only applicable for administrative API (SigV4) requests.<br/>ResourceId:  The document or folder ID for which to describe activity types.<br/>ActivityTypes:  Specifies which activity types to include in the response. If this field is left empty, all activity types are returned.<br/>OrganizationId:  The ID of the organization. This is a mandatory parameter when using administrative API (SigV4) requests.<br/>EndTime:  The timestamp that determines the end time of the activities. The response includes the activities performed before the specified timestamp.<br/>StartTime:  The timestamp that determines the starting time of the activities. The response includes the activities performed after the specified timestamp.<br/>AuthenticationToken:  Amazon WorkDocs authentication token. Not required when using AWS administrator credentials to access the API.<br/>
        :return: Marker:  The marker for the next set of results.<br/>UserActivities:  The list of activities for the specified user and time period.<br/>        """
        pass

    def describe_comments(self, VersionId: str, DocumentId: str, AuthenticationToken: str=None, Limit: int=None, Marker: str=None) -> DescribeCommentsResponse:
        r"""List all the comments for the specified document version.

        :param self:
        :param Marker:  The marker for the next set of results. This marker was received from a previous call.<br/>Limit:  The maximum number of items to return.<br/>VersionId:  The ID of the document version.<br/>DocumentId:  The ID of the document.<br/>AuthenticationToken:  Amazon WorkDocs authentication token. Not required when using AWS administrator credentials to access the API.<br/>
        :return: Marker:  The marker for the next set of results. This marker was received from a previous call.<br/>Comments:  The list of comments for the specified document version.<br/>        """
        pass

    def describe_document_versions(self, DocumentId: str, AuthenticationToken: str=None, Marker: str=None, Limit: int=None, Include: str=None, Fields: str=None) -> DescribeDocumentVersionsResponse:
        r"""Retrieves the document versions for the specified document. By default, only active versions are returned.

        :param self:
        :param Fields:  Specify "SOURCE" to include initialized versions and a URL for the source document.<br/>Include:  A comma-separated list of values. Specify "INITIALIZED" to include incomplete versions.<br/>Limit:  The maximum number of versions to return with this call.<br/>Marker:  The marker for the next set of results. (You received this marker from a previous call.)<br/>DocumentId:  The ID of the document.<br/>AuthenticationToken:  Amazon WorkDocs authentication token. Not required when using AWS administrator credentials to access the API.<br/>
        :return: Marker:  The marker to use when requesting the next set of results. If there are no additional results, the string is empty.<br/>DocumentVersions:  The document versions.<br/>        """
        pass

    def describe_folder_contents(self, FolderId: str, AuthenticationToken: str=None, Sort: str=None, Order: str=None, Limit: int=None, Marker: str=None, Type: str=None, Include: str=None) -> DescribeFolderContentsResponse:
        r"""Describes the contents of the specified folder, including its documents and subfolders. By default, Amazon WorkDocs returns the first 100 active document and folder metadata items. If there are more results, the response includes a marker that you can use to request the next set of results. You can also request initialized documents.

        :param self:
        :param Include:  The contents to include. Specify "INITIALIZED" to include initialized documents.<br/>Type:  The type of items.<br/>Marker:  The marker for the next set of results. This marker was received from a previous call.<br/>Limit:  The maximum number of items to return with this call.<br/>Order:  The order for the contents of the folder.<br/>Sort:  The sorting criteria.<br/>FolderId:  The ID of the folder.<br/>AuthenticationToken:  Amazon WorkDocs authentication token. Not required when using AWS administrator credentials to access the API.<br/>
        :return: Marker:  The marker to use when requesting the next set of results. If there are no additional results, the string is empty.<br/>Documents:  The documents in the specified folder.<br/>Folders:  The subfolders in the specified folder.<br/>        """
        pass

    def describe_groups(self, SearchQuery: str, AuthenticationToken: str=None, OrganizationId: str=None, Marker: str=None, Limit: int=None) -> DescribeGroupsResponse:
        r"""Describes the groups specified by the query. Groups are defined by the underlying Active Directory.

        :param self:
        :param Limit:  The maximum number of items to return with this call.<br/>Marker:  The marker for the next set of results. (You received this marker from a previous call.)<br/>OrganizationId:  The ID of the organization.<br/>SearchQuery:  A query to describe groups by group name.<br/>AuthenticationToken:  Amazon WorkDocs authentication token. Not required when using AWS administrator credentials to access the API.<br/>
        :return: Marker:  The marker to use when requesting the next set of results. If there are no additional results, the string is empty.<br/>Groups:  The list of groups.<br/>        """
        pass

    def describe_notification_subscriptions(self, OrganizationId: str, Marker: str=None, Limit: int=None) -> DescribeNotificationSubscriptionsResponse:
        r"""Lists the specified notification subscriptions.

        :param self:
        :param Limit:  The maximum number of items to return with this call.<br/>Marker:  The marker for the next set of results. (You received this marker from a previous call.)<br/>OrganizationId:  The ID of the organization.<br/>
        :return: Marker:  The marker to use when requesting the next set of results. If there are no additional results, the string is empty.<br/>Subscriptions:  The subscriptions.<br/>        """
        pass

    def describe_resource_permissions(self, ResourceId: str, AuthenticationToken: str=None, PrincipalId: str=None, Limit: int=None, Marker: str=None) -> DescribeResourcePermissionsResponse:
        r"""Describes the permissions of a specified resource.

        :param self:
        :param Marker:  The marker for the next set of results. (You received this marker from a previous call)<br/>Limit:  The maximum number of items to return with this call.<br/>PrincipalId:  The ID of the principal to filter permissions by.<br/>ResourceId:  The ID of the resource.<br/>AuthenticationToken:  Amazon WorkDocs authentication token. Not required when using AWS administrator credentials to access the API.<br/>
        :return: Marker:  The marker to use when requesting the next set of results. If there are no additional results, the string is empty.<br/>Principals:  The principals.<br/>        """
        pass

    def describe_root_folders(self, AuthenticationToken: str, Limit: int=None, Marker: str=None) -> DescribeRootFoldersResponse:
        r"""Describes the current user's special folders; the <code>RootFolder</code> and the <code>RecycleBin</code>. <code>RootFolder</code> is the root of user's files and folders and <code>RecycleBin</code> is the root of recycled items. This is not a valid action for SigV4 (administrative API) clients. This action requires an authentication token. To get an authentication token, register an application with Amazon WorkDocs. For more information, see <a href="https://docs.aws.amazon.com/workdocs/latest/developerguide/wd-auth-user.html">Authentication and Access Control for User Applications</a> in the <i>Amazon WorkDocs Developer Guide</i>.

        :param self:
        :param Marker:  The marker for the next set of results. (You received this marker from a previous call.)<br/>Limit:  The maximum number of items to return.<br/>AuthenticationToken:  Amazon WorkDocs authentication token.<br/>
        :return: Marker:  The marker for the next set of results.<br/>Folders:  The user's special folders.<br/>        """
        pass

    def describe_users(self, AuthenticationToken: str=None, OrganizationId: str=None, UserIds: str=None, Query: str=None, Include: str=None, Order: str=None, Sort: str=None, Marker: str=None, Limit: int=None, Fields: str=None) -> DescribeUsersResponse:
        r"""Describes the specified users. You can describe all users or filter the results (for example, by status or organization). By default, Amazon WorkDocs returns the first 24 active or pending users. If there are more results, the response includes a marker that you can use to request the next set of results.

        :param self:
        :param Fields:  A comma-separated list of values. Specify "STORAGE_METADATA" to include the user storage quota and utilization information.<br/>Limit:  The maximum number of items to return.<br/>Marker:  The marker for the next set of results. (You received this marker from a previous call.)<br/>Sort:  The sorting criteria.<br/>Order:  The order for the results.<br/>Include:  The state of the users. Specify "ALL" to include inactive users.<br/>Query:  A query to filter users by user name.<br/>UserIds:  The IDs of the users.<br/>OrganizationId:  The ID of the organization.<br/>AuthenticationToken:  Amazon WorkDocs authentication token. Not required when using AWS administrator credentials to access the API.<br/>
        :return: Marker:  The marker to use when requesting the next set of results. If there are no additional results, the string is empty.<br/>TotalNumberOfUsers:  The total number of users included in the results.<br/>Users:  The users.<br/>        """
        pass

    def get_current_user(self, AuthenticationToken: str) -> GetCurrentUserResponse:
        r"""Retrieves details of the current user for whom the authentication token was generated. This is not a valid action for SigV4 (administrative API) clients. This action requires an authentication token. To get an authentication token, register an application with Amazon WorkDocs. For more information, see <a href="https://docs.aws.amazon.com/workdocs/latest/developerguide/wd-auth-user.html">Authentication and Access Control for User Applications</a> in the <i>Amazon WorkDocs Developer Guide</i>.

        :param self:
        :param AuthenticationToken:  Amazon WorkDocs authentication token.<br/>
        :return: User:  Metadata of the user.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Storage</i> The storage for the user.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Storage</b>: The storage for the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Locale</i> The locale of the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TimeZoneId</i> The time zone ID of the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ModifiedTimestamp</i> The time when the user was modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTimestamp</i> The time when the user was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecycleBinFolderId</i> The ID of the recycle bin folder.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RootFolderId</i> The ID of the root folder.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OrganizationId</i> The ID of the organization.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Surname</i> The surname of the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GivenName</i> The given name of the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EmailAddress</i> The email address of the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Username</i> The login name of the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID of the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageUtilizedInBytes</i> The amount of storage used, in bytes.<br/>The storage for a user.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StorageRule</b>: The storage for a user.        """
        pass

    def get_document(self, DocumentId: str, AuthenticationToken: str=None, IncludeCustomMetadata: BooleanType=None) -> GetDocumentResponse:
        r"""Retrieves details of a document.

        :param self:
        :param IncludeCustomMetadata:  Set this to <code>TRUE</code> to include custom metadata in the response.<br/>DocumentId:  The ID of the document.<br/>AuthenticationToken:  Amazon WorkDocs authentication token. Not required when using AWS administrator credentials to access the API.<br/>
        :return: CustomMetadata:  The custom metadata on the document.<br/>Metadata:  The metadata details of the document.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Labels</i> List of labels on the document.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceState</i> The resource state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestVersionMetadata</i> The latest version of the document.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>LatestVersionMetadata</b>: The latest version of the document.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ModifiedTimestamp</i> The time when the document was updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTimestamp</i> The time when the document was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ParentFolderId</i> The ID of the parent folder.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatorId</i> The ID of the creator.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID of the document.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Source</i> The source of the document.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Thumbnail</i> The thumbnail of the document.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatorId</i> The ID of the creator.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ContentModifiedTimestamp</i> The timestamp when the content of the document was modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ContentCreatedTimestamp</i> The timestamp when the content of the document was originally created.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ModifiedTimestamp</i> The timestamp when the document was last uploaded.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTimestamp</i> The timestamp when the document was first uploaded.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the document.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Signature</i> The signature of the document.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Size</i> The size of the document, in bytes.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ContentType</i> The content type of the document.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the version.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID of the version.<br/>        """
        pass

    def get_document_path(self, DocumentId: str, AuthenticationToken: str=None, Limit: int=None, Fields: str=None, Marker: str=None) -> GetDocumentPathResponse:
        r"""Retrieves the path information (the hierarchy from the root folder) for the requested document. By default, Amazon WorkDocs returns a maximum of 100 levels upwards from the requested document and only includes the IDs of the parent folders in the path. You can limit the maximum number of levels. You can also request the names of the parent folders.

        :param self:
        :param Marker:  This value is not supported.<br/>Fields:  A comma-separated list of values. Specify <code>NAME</code> to include the names of the parent folders.<br/>Limit:  The maximum number of levels in the hierarchy to return.<br/>DocumentId:  The ID of the document.<br/>AuthenticationToken:  Amazon WorkDocs authentication token. Not required when using AWS administrator credentials to access the API.<br/>
        :return: Path:  The path information.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Components</i> The components of the resource path.<br/>        """
        pass

    def get_document_version(self, VersionId: str, DocumentId: str, AuthenticationToken: str=None, Fields: str=None, IncludeCustomMetadata: BooleanType=None) -> GetDocumentVersionResponse:
        r"""Retrieves version metadata for the specified document.

        :param self:
        :param IncludeCustomMetadata:  Set this to TRUE to include custom metadata in the response.<br/>Fields:  A comma-separated list of values. Specify "SOURCE" to include a URL for the source document.<br/>VersionId:  The version ID of the document.<br/>DocumentId:  The ID of the document.<br/>AuthenticationToken:  Amazon WorkDocs authentication token. Not required when using AWS administrator credentials to access the API.<br/>
        :return: CustomMetadata:  The custom metadata on the document version.<br/>Metadata:  The version metadata.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Source</i> The source of the document.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Thumbnail</i> The thumbnail of the document.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatorId</i> The ID of the creator.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ContentModifiedTimestamp</i> The timestamp when the content of the document was modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ContentCreatedTimestamp</i> The timestamp when the content of the document was originally created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ModifiedTimestamp</i> The timestamp when the document was last uploaded.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTimestamp</i> The timestamp when the document was first uploaded.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the document.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Signature</i> The signature of the document.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Size</i> The size of the document, in bytes.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ContentType</i> The content type of the document.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID of the version.<br/>        """
        pass

    def get_folder(self, FolderId: str, AuthenticationToken: str=None, IncludeCustomMetadata: BooleanType=None) -> GetFolderResponse:
        r"""Retrieves the metadata of the specified folder.

        :param self:
        :param IncludeCustomMetadata:  Set to TRUE to include custom metadata in the response.<br/>FolderId:  The ID of the folder.<br/>AuthenticationToken:  Amazon WorkDocs authentication token. Not required when using AWS administrator credentials to access the API.<br/>
        :return: CustomMetadata:  The custom metadata on the folder.<br/>Metadata:  The metadata of the folder.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestVersionSize</i> The size of the latest version of the folder metadata.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Size</i> The size of the folder metadata.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Labels</i> List of labels on the folder.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Signature</i> The unique identifier created from the subfolders and documents of the folder.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceState</i> The resource state of the folder.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ModifiedTimestamp</i> The time when the folder was updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTimestamp</i> The time when the folder was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ParentFolderId</i> The ID of the parent folder.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatorId</i> The ID of the creator.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the folder.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID of the folder.<br/>        """
        pass

    def get_folder_path(self, FolderId: str, AuthenticationToken: str=None, Limit: int=None, Fields: str=None, Marker: str=None) -> GetFolderPathResponse:
        r"""Retrieves the path information (the hierarchy from the root folder) for the specified folder. By default, Amazon WorkDocs returns a maximum of 100 levels upwards from the requested folder and only includes the IDs of the parent folders in the path. You can limit the maximum number of levels. You can also request the parent folder names.

        :param self:
        :param Marker:  This value is not supported.<br/>Fields:  A comma-separated list of values. Specify "NAME" to include the names of the parent folders.<br/>Limit:  The maximum number of levels in the hierarchy to return.<br/>FolderId:  The ID of the folder.<br/>AuthenticationToken:  Amazon WorkDocs authentication token. Not required when using AWS administrator credentials to access the API.<br/>
        :return: Path:  The path information.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Components</i> The components of the resource path.<br/>        """
        pass

    def get_resources(self, AuthenticationToken: str=None, UserId: str=None, CollectionType: str=None, Limit: int=None, Marker: str=None) -> GetResourcesResponse:
        r"""Retrieves a collection of resources, including folders and documents. The only <code>CollectionType</code> supported is <code>SHARED_WITH_ME</code>.

        :param self:
        :param Marker:  The marker for the next set of results. This marker was received from a previous call.<br/>Limit:  The maximum number of resources to return.<br/>CollectionType:  The collection type.<br/>UserId:  The user ID for the resource collection. This is a required field for accessing the API operation using IAM credentials.<br/>AuthenticationToken:  The Amazon WorkDocs authentication token. Not required when using AWS administrator credentials to access the API.<br/>
        :return: Marker:  The marker to use when requesting the next set of results. If there are no additional results, the string is empty.<br/>Documents:  The documents in the specified collection.<br/>Folders:  The folders in the specified folder.<br/>        """
        pass

    def initiate_document_version_upload(self, ParentFolderId: str, AuthenticationToken: str=None, Id: str=None, Name: str=None, ContentCreatedTimestamp: TimestampType=None, ContentModifiedTimestamp: TimestampType=None, ContentType: str=None, DocumentSizeInBytes: SizeType=None) -> InitiateDocumentVersionUploadResponse:
        r"""Creates a new document object and version object. The client specifies the parent folder ID and name of the document to upload. The ID is optionally specified when creating a new version of an existing document. This is the first step to upload a document. Next, upload the document to the URL returned from the call, and then call <a>UpdateDocumentVersion</a>. To cancel the document upload, call <a>AbortDocumentVersionUpload</a>.

        :param self:
        :param ParentFolderId:  The ID of the parent folder.<br/>DocumentSizeInBytes:  The size of the document, in bytes.<br/>ContentType:  The content type of the document.<br/>ContentModifiedTimestamp:  The timestamp when the content of the document was modified.<br/>ContentCreatedTimestamp:  The timestamp when the content of the document was originally created.<br/>Name:  The name of the document.<br/>Id:  The ID of the document.<br/>AuthenticationToken:  Amazon WorkDocs authentication token. Not required when using AWS administrator credentials to access the API.<br/>
        :return: UploadMetadata:  The upload metadata.:<br/>Metadata:  The document metadata.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Labels</i> List of labels on the document.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceState</i> The resource state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LatestVersionMetadata</i> The latest version of the document.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>LatestVersionMetadata</b>: The latest version of the document.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ModifiedTimestamp</i> The time when the document was updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTimestamp</i> The time when the document was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ParentFolderId</i> The ID of the parent folder.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatorId</i> The ID of the creator.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID of the document.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Source</i> The source of the document.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Thumbnail</i> The thumbnail of the document.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatorId</i> The ID of the creator.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ContentModifiedTimestamp</i> The timestamp when the content of the document was modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ContentCreatedTimestamp</i> The timestamp when the content of the document was originally created.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ModifiedTimestamp</i> The timestamp when the document was last uploaded.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTimestamp</i> The timestamp when the document was first uploaded.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the document.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Signature</i> The signature of the document.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Size</i> The size of the document, in bytes.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ContentType</i> The content type of the document.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the version.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID of the version.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SignedHeaders</i> The signed headers.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UploadUrl</i> The URL of the upload.<br/>        """
        pass

    def remove_all_resource_permissions(self, ResourceId: str, AuthenticationToken: str=None):
        r"""Removes all the permissions from the specified resource.

        :param self:
        :param ResourceId:  The ID of the resource.<br/>AuthenticationToken:  Amazon WorkDocs authentication token. Not required when using AWS administrator credentials to access the API.<br/>
        :return:         """
        pass

    def remove_resource_permission(self, PrincipalId: str, ResourceId: str, AuthenticationToken: str=None, PrincipalType: str=None):
        r"""Removes the permission for the specified principal from the specified resource.

        :param self:
        :param PrincipalType:  The principal type of the resource.<br/>PrincipalId:  The principal ID of the resource.<br/>ResourceId:  The ID of the resource.<br/>AuthenticationToken:  Amazon WorkDocs authentication token. Not required when using AWS administrator credentials to access the API.<br/>
        :return:         """
        pass

    def update_document(self, DocumentId: str, AuthenticationToken: str=None, Name: str=None, ParentFolderId: str=None, ResourceState: str=None):
        r"""Updates the specified attributes of a document. The user must have access to both the document and its parent folder, if applicable.

        :param self:
        :param ResourceState:  The resource state of the document. Only ACTIVE and RECYCLED are supported.<br/>ParentFolderId:  The ID of the parent folder.<br/>Name:  The name of the document.<br/>DocumentId:  The ID of the document.<br/>AuthenticationToken:  Amazon WorkDocs authentication token. Not required when using AWS administrator credentials to access the API.<br/>
        :return:         """
        pass

    def update_document_version(self, VersionId: str, DocumentId: str, AuthenticationToken: str=None, VersionStatus: str=None):
        r"""Changes the status of the document version to ACTIVE.  Amazon WorkDocs also sets its document container to ACTIVE. This is the last step in a document upload, after the client uploads the document to an S3-presigned URL returned by <a>InitiateDocumentVersionUpload</a>. 

        :param self:
        :param VersionStatus:  The status of the version.<br/>VersionId:  The version ID of the document.<br/>DocumentId:  The ID of the document.<br/>AuthenticationToken:  Amazon WorkDocs authentication token. Not required when using AWS administrator credentials to access the API.<br/>
        :return:         """
        pass

    def update_folder(self, FolderId: str, AuthenticationToken: str=None, Name: str=None, ParentFolderId: str=None, ResourceState: str=None):
        r"""Updates the specified attributes of the specified folder. The user must have access to both the folder and its parent folder, if applicable.

        :param self:
        :param ResourceState:  The resource state of the folder. Only ACTIVE and RECYCLED are accepted values from the API.<br/>ParentFolderId:  The ID of the parent folder.<br/>Name:  The name of the folder.<br/>FolderId:  The ID of the folder.<br/>AuthenticationToken:  Amazon WorkDocs authentication token. Not required when using AWS administrator credentials to access the API.<br/>
        :return:         """
        pass

    def update_user(self, UserId: str, AuthenticationToken: str=None, GivenName: str=None, Surname: str=None, Type: str=None, StorageRule: StorageRuleType=None, TimeZoneId: str=None, Locale: str=None, GrantPoweruserPrivileges: str=None) -> UpdateUserResponse:
        r"""Updates the specified attributes of the specified user, and grants or revokes administrative privileges to the Amazon WorkDocs site.

        :param self:
        :param GrantPoweruserPrivileges:  Boolean value to determine whether the user is granted Poweruser privileges.<br/>Locale:  The locale of the user.<br/>TimeZoneId:  The time zone ID of the user.<br/>StorageRule:  The amount of storage for the user.:<br/>Type:  The type of the user.<br/>Surname:  The surname of the user.<br/>GivenName:  The given name of the user.<br/>UserId:  The ID of the user.<br/>AuthenticationToken:  Amazon WorkDocs authentication token. Not required when using AWS administrator credentials to access the API.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageType</i> The type of storage.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageAllocatedInBytes</i> The amount of storage allocated, in bytes.<br/>
        :return: User:  The user information.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Storage</i> The storage for the user.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Storage</b>: The storage for the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Locale</i> The locale of the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TimeZoneId</i> The time zone ID of the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ModifiedTimestamp</i> The time when the user was modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedTimestamp</i> The time when the user was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The status of the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RecycleBinFolderId</i> The ID of the recycle bin folder.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RootFolderId</i> The ID of the root folder.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>OrganizationId</i> The ID of the organization.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Surname</i> The surname of the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GivenName</i> The given name of the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EmailAddress</i> The email address of the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Username</i> The login name of the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Id</i> The ID of the user.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>StorageUtilizedInBytes</i> The amount of storage used, in bytes.<br/>The storage for a user.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>StorageRule</b>: The storage for a user.        """
        pass





class WorkLink(BaseClient):
    r"""Amazon WorkLink is a cloud-based service that provides secure access to internal websites and web apps from iOS and Android phones. In a single step, your users, such as employees, can access internal websites as efficiently as they access any other public website. They enter a URL in their web browser, or choose a link to an internal website in an email. Amazon WorkLink authenticates the user's access and securely renders authorized internal web content in a secure rendering service in the AWS cloud. Amazon WorkLink doesn't download or store any internal web content on mobile devices."""




    class AssociateDomainRequest(Mapping):
        pass
    
    class AssociateDomainResponse(Mapping):
        pass
    
    class AssociateWebsiteAuthorizationProviderRequest(Mapping):
        pass
    
    class AssociateWebsiteAuthorizationProviderResponse(Mapping):
        pass
    
    class AssociateWebsiteCertificateAuthorityRequest(Mapping):
        pass
    
    class AssociateWebsiteCertificateAuthorityResponse(Mapping):
        pass
    
    class CreateFleetRequest(Mapping):
        pass
    
    class CreateFleetResponse(Mapping):
        pass
    
    class Boolean(object):
        pass
    
    class TagMap(object):
        pass
    
    class DeleteFleetRequest(Mapping):
        pass
    
    class DeleteFleetResponse(Mapping):
        pass
    
    class DescribeAuditStreamConfigurationRequest(Mapping):
        pass
    
    class DescribeAuditStreamConfigurationResponse(Mapping):
        pass
    
    class DescribeCompanyNetworkConfigurationRequest(Mapping):
        pass
    
    class DescribeCompanyNetworkConfigurationResponse(Mapping):
        pass
    
    class DescribeDeviceRequest(Mapping):
        pass
    
    class DescribeDeviceResponse(Mapping):
        pass
    
    class DescribeDevicePolicyConfigurationRequest(Mapping):
        pass
    
    class DescribeDevicePolicyConfigurationResponse(Mapping):
        pass
    
    class DescribeDomainRequest(Mapping):
        pass
    
    class DescribeDomainResponse(Mapping):
        pass
    
    class DescribeFleetMetadataRequest(Mapping):
        pass
    
    class DescribeFleetMetadataResponse(Mapping):
        pass
    
    class DescribeIdentityProviderConfigurationRequest(Mapping):
        pass
    
    class DescribeIdentityProviderConfigurationResponse(Mapping):
        pass
    
    class DescribeWebsiteCertificateAuthorityRequest(Mapping):
        pass
    
    class DescribeWebsiteCertificateAuthorityResponse(Mapping):
        pass
    
    class DisassociateDomainRequest(Mapping):
        pass
    
    class DisassociateDomainResponse(Mapping):
        pass
    
    class DisassociateWebsiteAuthorizationProviderRequest(Mapping):
        pass
    
    class DisassociateWebsiteAuthorizationProviderResponse(Mapping):
        pass
    
    class DisassociateWebsiteCertificateAuthorityRequest(Mapping):
        pass
    
    class DisassociateWebsiteCertificateAuthorityResponse(Mapping):
        pass
    
    class ListDevicesRequest(Mapping):
        pass
    
    class ListDevicesResponse(Mapping):
        pass
    
    class ListDomainsRequest(Mapping):
        pass
    
    class ListDomainsResponse(Mapping):
        pass
    
    class ListFleetsRequest(Mapping):
        pass
    
    class ListFleetsResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class ListWebsiteAuthorizationProvidersRequest(Mapping):
        pass
    
    class ListWebsiteAuthorizationProvidersResponse(Mapping):
        pass
    
    class ListWebsiteCertificateAuthoritiesRequest(Mapping):
        pass
    
    class ListWebsiteCertificateAuthoritiesResponse(Mapping):
        pass
    
    class RestoreDomainAccessRequest(Mapping):
        pass
    
    class RestoreDomainAccessResponse(Mapping):
        pass
    
    class RevokeDomainAccessRequest(Mapping):
        pass
    
    class RevokeDomainAccessResponse(Mapping):
        pass
    
    class SignOutUserRequest(Mapping):
        pass
    
    class SignOutUserResponse(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateAuditStreamConfigurationRequest(Mapping):
        pass
    
    class UpdateAuditStreamConfigurationResponse(Mapping):
        pass
    
    class UpdateCompanyNetworkConfigurationRequest(Mapping):
        pass
    
    class UpdateCompanyNetworkConfigurationResponse(Mapping):
        pass
    
    class SubnetId(object):
        pass
    
    class SecurityGroupId(object):
        pass
    
    class UpdateDevicePolicyConfigurationRequest(Mapping):
        pass
    
    class UpdateDevicePolicyConfigurationResponse(Mapping):
        pass
    
    class UpdateDomainMetadataRequest(Mapping):
        pass
    
    class UpdateDomainMetadataResponse(Mapping):
        pass
    
    class UpdateFleetMetadataRequest(Mapping):
        pass
    
    class UpdateFleetMetadataResponse(Mapping):
        pass
    
    class UpdateIdentityProviderConfigurationRequest(Mapping):
        pass
    
    class UpdateIdentityProviderConfigurationResponse(Mapping):
        pass
    
    def associate_domain(self, AcmCertificateArn: str, DomainName: str, FleetArn: str, DisplayName: str=None) -> AssociateDomainResponse:
        r"""Specifies a domain to be associated to Amazon WorkLink.

        :param self:
        :param AcmCertificateArn:  The ARN of an issued ACM certificate that is valid for the domain being associated.<br/>DisplayName:  The name to display.<br/>DomainName:  The fully qualified domain name (FQDN).<br/>FleetArn:  The Amazon Resource Name (ARN) of the fleet.<br/>
        :return:         """
        pass

    def associate_website_authorization_provider(self, AuthorizationProviderType: str, FleetArn: str, DomainName: str=None) -> AssociateWebsiteAuthorizationProviderResponse:
        r"""Associates a website authorization provider with a specified fleet. This is used to authorize users against associated websites in the company network.

        :param self:
        :param DomainName:  The domain name of the authorization provider. This applies only to SAML-based authorization providers.<br/>AuthorizationProviderType:  The authorization provider type.<br/>FleetArn:  The ARN of the fleet.<br/>
        :return: AuthorizationProviderId:  A unique identifier for the authorization provider.<br/>        """
        pass

    def associate_website_certificate_authority(self, Certificate: str, FleetArn: str, DisplayName: str=None) -> AssociateWebsiteCertificateAuthorityResponse:
        r"""Imports the root certificate of a certificate authority (CA) used to obtain TLS certificates used by associated websites within the company network.

        :param self:
        :param DisplayName:  The certificate name to display.<br/>Certificate:  The root certificate of the CA.<br/>FleetArn:  The ARN of the fleet.<br/>
        :return: WebsiteCaId:  A unique identifier for the CA.<br/>        """
        pass

    def create_fleet(self, FleetName: str, DisplayName: str=None, OptimizeForEndUserLocation: Boolean=None, Tags: TagMap=None) -> CreateFleetResponse:
        r"""Creates a fleet. A fleet consists of resources and the configuration that delivers associated websites to authorized users who download and set up the Amazon WorkLink app.

        :param self:
        :param Tags:   The tags to add to the resource. A tag is a key-value pair.<br/>OptimizeForEndUserLocation:  The option to optimize for better performance by routing traffic through the closest AWS Region to users, which may be outside of your home Region.<br/>DisplayName:  The fleet name to display.<br/>FleetName:  A unique name for the fleet.<br/>
        :return: FleetArn:  The Amazon Resource Name (ARN) of the fleet.<br/>        """
        pass

    def delete_fleet(self, FleetArn: str) -> DeleteFleetResponse:
        r"""Deletes a fleet. Prevents users from accessing previously associated websites. 

        :param self:
        :param FleetArn:  The ARN of the fleet.<br/>
        :return:         """
        pass

    def describe_audit_stream_configuration(self, FleetArn: str) -> DescribeAuditStreamConfigurationResponse:
        r"""Describes the configuration for delivering audit streams to the customer account.

        :param self:
        :param FleetArn:  The ARN of the fleet.<br/>
        :return: AuditStreamArn:  The ARN of the Amazon Kinesis data stream that will receive the audit events.<br/>        """
        pass

    def describe_company_network_configuration(self, FleetArn: str) -> DescribeCompanyNetworkConfigurationResponse:
        r"""Describes the networking configuration to access the internal websites associated with the specified fleet.

        :param self:
        :param FleetArn:  The ARN of the fleet.<br/>
        :return: SecurityGroupIds:  The security groups associated with access to the provided subnets.<br/>SubnetIds:  The subnets used for X-ENI connections from Amazon WorkLink rendering containers.<br/>VpcId:  The VPC with connectivity to associated websites.<br/>        """
        pass

    def describe_device(self, DeviceId: str, FleetArn: str) -> DescribeDeviceResponse:
        r"""Provides information about a user's device.

        :param self:
        :param DeviceId:  A unique identifier for a registered user's device.<br/>FleetArn:  The ARN of the fleet.<br/>
        :return: Username:  The user name associated with the device.<br/>LastAccessedTime:  The date that the device last accessed Amazon WorkLink.<br/>FirstAccessedTime:  The date that the device first signed in to Amazon WorkLink.<br/>PatchLevel:  The operating system patch level of the device.<br/>OperatingSystemVersion:  The operating system version of the device.<br/>OperatingSystem:  The operating system of the device.<br/>Manufacturer:  The manufacturer of the device.<br/>Model:  The model of the device.<br/>Status:  The current state of the device.<br/>        """
        pass

    def describe_device_policy_configuration(self, FleetArn: str) -> DescribeDevicePolicyConfigurationResponse:
        r"""Describes the device policy configuration for the specified fleet.

        :param self:
        :param FleetArn:  The ARN of the fleet.<br/>
        :return: DeviceCaCertificate:  The certificate chain, including intermediate certificates and the root certificate authority certificate used to issue device certificates.<br/>        """
        pass

    def describe_domain(self, DomainName: str, FleetArn: str) -> DescribeDomainResponse:
        r"""Provides information about the domain.

        :param self:
        :param DomainName:  The name of the domain.<br/>FleetArn:  The ARN of the fleet.<br/>
        :return: AcmCertificateArn:  The ARN of an issued ACM certificate that is valid for the domain being associated.<br/>DomainStatus:  The current state for the domain.<br/>CreatedTime:  The time that the domain was added.<br/>DisplayName:  The name to display.<br/>DomainName:  The name of the domain.<br/>        """
        pass

    def describe_fleet_metadata(self, FleetArn: str) -> DescribeFleetMetadataResponse:
        r"""Provides basic information for the specified fleet, excluding identity provider, networking, and device configuration details.

        :param self:
        :param FleetArn:  The Amazon Resource Name (ARN) of the fleet.<br/>
        :return: Tags:  The tags attached to the resource. A tag is a key-value pair.<br/>FleetStatus:  The current state of the fleet.<br/>CompanyCode:  The identifier used by users to sign in to the Amazon WorkLink app.<br/>OptimizeForEndUserLocation:  The option to optimize for better performance by routing traffic through the closest AWS Region to users, which may be outside of your home Region.<br/>DisplayName:  The name to display.<br/>FleetName:  The name of the fleet.<br/>LastUpdatedTime:  The time that the fleet was last updated.<br/>CreatedTime:  The time that the fleet was created.<br/>        """
        pass

    def describe_identity_provider_configuration(self, FleetArn: str) -> DescribeIdentityProviderConfigurationResponse:
        r"""Describes the identity provider configuration of the specified fleet.

        :param self:
        :param FleetArn:  The ARN of the fleet.<br/>
        :return: IdentityProviderSamlMetadata:  The SAML metadata document provided by the user’s identity provider.<br/>ServiceProviderSamlMetadata:  The SAML metadata document uploaded to the user’s identity provider.<br/>IdentityProviderType:  The type of identity provider.<br/>        """
        pass

    def describe_website_certificate_authority(self, WebsiteCaId: str, FleetArn: str) -> DescribeWebsiteCertificateAuthorityResponse:
        r"""Provides information about the certificate authority.

        :param self:
        :param WebsiteCaId:  A unique identifier for the certificate authority.<br/>FleetArn:  The ARN of the fleet.<br/>
        :return: DisplayName:  The certificate name to display.<br/>CreatedTime:  The time that the certificate authority was added.<br/>Certificate:  The root certificate of the certificate authority.<br/>        """
        pass

    def disassociate_domain(self, DomainName: str, FleetArn: str) -> DisassociateDomainResponse:
        r"""Disassociates a domain from Amazon WorkLink. End users lose the ability to access the domain with Amazon WorkLink. 

        :param self:
        :param DomainName:  The name of the domain.<br/>FleetArn:  The ARN of the fleet.<br/>
        :return:         """
        pass

    def disassociate_website_authorization_provider(self, AuthorizationProviderId: str, FleetArn: str) -> DisassociateWebsiteAuthorizationProviderResponse:
        r"""Disassociates a website authorization provider from a specified fleet. After the disassociation, users can't load any associated websites that require this authorization provider.

        :param self:
        :param AuthorizationProviderId:  A unique identifier for the authorization provider.<br/>FleetArn:  The ARN of the fleet.<br/>
        :return:         """
        pass

    def disassociate_website_certificate_authority(self, WebsiteCaId: str, FleetArn: str) -> DisassociateWebsiteCertificateAuthorityResponse:
        r"""Removes a certificate authority (CA).

        :param self:
        :param WebsiteCaId:  A unique identifier for the CA.<br/>FleetArn:  The ARN of the fleet.<br/>
        :return:         """
        pass

    def list_devices(self, FleetArn: str, NextToken: str=None, MaxResults: int=None) -> ListDevicesResponse:
        r"""Retrieves a list of devices registered with the specified fleet.

        :param self:
        :param MaxResults:  The maximum number of results to be included in the next page.<br/>NextToken:  The pagination token used to retrieve the next page of results for this operation. If this value is null, it retrieves the first page.<br/>FleetArn:  The ARN of the fleet.<br/>
        :return: NextToken:  The pagination token used to retrieve the next page of results for this operation. If there are no more pages, this value is null.<br/>Devices:  Information about the devices.<br/>        """
        pass

    def list_domains(self, FleetArn: str, NextToken: str=None, MaxResults: int=None) -> ListDomainsResponse:
        r"""Retrieves a list of domains associated to a specified fleet.

        :param self:
        :param MaxResults:  The maximum number of results to be included in the next page.<br/>NextToken:  The pagination token used to retrieve the next page of results for this operation. If this value is null, it retrieves the first page.<br/>FleetArn:  The ARN of the fleet.<br/>
        :return: NextToken:  The pagination token used to retrieve the next page of results for this operation. If there are no more pages, this value is null.<br/>Domains:  Information about the domains.<br/>        """
        pass

    def list_fleets(self, NextToken: str=None, MaxResults: int=None) -> ListFleetsResponse:
        r"""Retrieves a list of fleets for the current account and Region.

        :param self:
        :param MaxResults:  The maximum number of results to be included in the next page.<br/>NextToken:  The pagination token used to retrieve the next page of results for this operation. If this value is null, it retrieves the first page.<br/>
        :return: NextToken:  The pagination token used to retrieve the next page of results for this operation. If there are no more pages, this value is null.<br/>FleetSummaryList:  The summary list of the fleets.<br/>        """
        pass

    def list_tags_for_resource(self, ResourceArn: str) -> ListTagsForResourceResponse:
        r"""Retrieves a list of tags for the specified resource.

        :param self:
        :param ResourceArn:  The Amazon Resource Name (ARN) of the fleet.<br/>
        :return: Tags:  The tags attached to the resource. A tag is a key-value pair.<br/>        """
        pass

    def list_website_authorization_providers(self, FleetArn: str, NextToken: str=None, MaxResults: int=None) -> ListWebsiteAuthorizationProvidersResponse:
        r"""Retrieves a list of website authorization providers associated with a specified fleet.

        :param self:
        :param MaxResults:  The maximum number of results to be included in the next page.<br/>NextToken:  The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page.<br/>FleetArn:  The ARN of the fleet.<br/>
        :return: NextToken:  The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page.<br/>WebsiteAuthorizationProviders:  The website authorization providers.<br/>        """
        pass

    def list_website_certificate_authorities(self, FleetArn: str, MaxResults: int=None, NextToken: str=None) -> ListWebsiteCertificateAuthoritiesResponse:
        r"""Retrieves a list of certificate authorities added for the current account and Region.

        :param self:
        :param NextToken:  The pagination token used to retrieve the next page of results for this operation. If this value is null, it retrieves the first page.<br/>MaxResults:  The maximum number of results to be included in the next page.<br/>FleetArn:  The ARN of the fleet.<br/>
        :return: NextToken:  The pagination token used to retrieve the next page of results for this operation. If there are no more pages, this value is null.<br/>WebsiteCertificateAuthorities:  Information about the certificates.<br/>        """
        pass

    def restore_domain_access(self, DomainName: str, FleetArn: str) -> RestoreDomainAccessResponse:
        r"""Moves a domain to ACTIVE status if it was in the INACTIVE status.

        :param self:
        :param DomainName:  The name of the domain.<br/>FleetArn:  The ARN of the fleet.<br/>
        :return:         """
        pass

    def revoke_domain_access(self, DomainName: str, FleetArn: str) -> RevokeDomainAccessResponse:
        r"""Moves a domain to INACTIVE status if it was in the ACTIVE status.

        :param self:
        :param DomainName:  The name of the domain.<br/>FleetArn:  The ARN of the fleet.<br/>
        :return:         """
        pass

    def sign_out_user(self, Username: str, FleetArn: str) -> SignOutUserResponse:
        r"""Signs the user out from all of their devices. The user can sign in again if they have valid credentials.

        :param self:
        :param Username:  The name of the user.<br/>FleetArn:  The ARN of the fleet.<br/>
        :return:         """
        pass

    def tag_resource(self, Tags: TagMap, ResourceArn: str) -> TagResourceResponse:
        r"""Adds or overwrites one or more tags for the specified resource, such as a fleet. Each tag consists of a key and an optional value. If a resource already has a tag with the same key, this operation updates its value.

        :param self:
        :param Tags:  The tags to add to the resource. A tag is a key-value pair.<br/>ResourceArn:  The Amazon Resource Name (ARN) of the fleet.<br/>
        :return:         """
        pass

    def untag_resource(self, TagKeys: List[TagKey], ResourceArn: str) -> UntagResourceResponse:
        r"""Removes one or more tags from the specified resource.

        :param self:
        :param TagKeys:  The list of tag keys to remove from the resource.<br/>ResourceArn:  The Amazon Resource Name (ARN) of the fleet.<br/>
        :return:         """
        pass

    def update_audit_stream_configuration(self, FleetArn: str, AuditStreamArn: str=None) -> UpdateAuditStreamConfigurationResponse:
        r"""Updates the audit stream configuration for the fleet.

        :param self:
        :param AuditStreamArn:  The ARN of the Amazon Kinesis data stream that receives the audit events.<br/>FleetArn:  The ARN of the fleet.<br/>
        :return:         """
        pass

    def update_company_network_configuration(self, SecurityGroupIds: List[SecurityGroupId], SubnetIds: List[SubnetId], VpcId: str, FleetArn: str) -> UpdateCompanyNetworkConfigurationResponse:
        r"""Updates the company network configuration for the fleet.

        :param self:
        :param SecurityGroupIds:  The security groups associated with access to the provided subnets.<br/>SubnetIds:  The subnets used for X-ENI connections from Amazon WorkLink rendering containers.<br/>VpcId:  The VPC with connectivity to associated websites.<br/>FleetArn:  The ARN of the fleet.<br/>
        :return:         """
        pass

    def update_device_policy_configuration(self, FleetArn: str, DeviceCaCertificate: str=None) -> UpdateDevicePolicyConfigurationResponse:
        r"""Updates the device policy configuration for the fleet.

        :param self:
        :param DeviceCaCertificate:  The certificate chain, including intermediate certificates and the root certificate authority certificate used to issue device certificates.<br/>FleetArn:  The ARN of the fleet.<br/>
        :return:         """
        pass

    def update_domain_metadata(self, DomainName: str, FleetArn: str, DisplayName: str=None) -> UpdateDomainMetadataResponse:
        r"""Updates domain metadata, such as DisplayName.

        :param self:
        :param DisplayName:  The name to display.<br/>DomainName:  The name of the domain.<br/>FleetArn:  The ARN of the fleet.<br/>
        :return:         """
        pass

    def update_fleet_metadata(self, FleetArn: str, DisplayName: str=None, OptimizeForEndUserLocation: Boolean=None) -> UpdateFleetMetadataResponse:
        r"""Updates fleet metadata, such as DisplayName.

        :param self:
        :param OptimizeForEndUserLocation:  The option to optimize for better performance by routing traffic through the closest AWS Region to users, which may be outside of your home Region.<br/>DisplayName:  The fleet name to display. The existing DisplayName is unset if null is passed.<br/>FleetArn:  The ARN of the fleet.<br/>
        :return:         """
        pass

    def update_identity_provider_configuration(self, IdentityProviderType: str, FleetArn: str, IdentityProviderSamlMetadata: str=None) -> UpdateIdentityProviderConfigurationResponse:
        r"""Updates the identity provider configuration for the fleet.

        :param self:
        :param IdentityProviderSamlMetadata:  The SAML metadata document provided by the customer’s identity provider. The existing IdentityProviderSamlMetadata is unset if null is passed.<br/>IdentityProviderType:  The type of identity provider.<br/>FleetArn:  The ARN of the fleet.<br/>
        :return:         """
        pass





class WorkMail(BaseClient):
    r"""Amazon WorkMail is a secure, managed business email and calendaring service with support for existing desktop and mobile email clients. You can access your email, contacts, and calendars using Microsoft Outlook, your browser, or other native iOS and Android email applications. You can integrate WorkMail with your existing corporate directory and control both the keys that encrypt your data and the location in which your data is stored. The WorkMail API is designed for the following scenarios: <ul> <li> Listing and describing organizations </li> </ul> <ul> <li> Managing users </li> </ul> <ul> <li> Managing groups </li> </ul> <ul> <li> Managing resources </li> </ul> All WorkMail API operations are Amazon-authenticated and certificate-signed. They not only require the use of the AWS SDK, but also allow for the exclusive use of AWS Identity and Access Management users and roles to help facilitate access, trust, and permission policies. By creating a role and allowing an IAM user to access the WorkMail site, the IAM user gains full administrative visibility into the entire WorkMail organization (or as set in the IAM policy). This includes, but is not limited to, the ability to create, update, and delete users, groups, and resources. This allows developers to perform the scenarios listed above, as well as give users the ability to grant access on a selective basis using the IAM model."""


    class ListUsersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_users` for valid parameters"""
            pass
    class ListGroupMembersPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_group_members` for valid parameters"""
            pass
    class ListOrganizationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_organizations` for valid parameters"""
            pass
    class ListGroupsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_groups` for valid parameters"""
            pass
    class ListResourcesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_resources` for valid parameters"""
            pass
    class ListAliasesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_aliases` for valid parameters"""
            pass
    class ListMailboxPermissionsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_mailbox_permissions` for valid parameters"""
            pass
    class ListResourceDelegatesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_resource_delegates` for valid parameters"""
            pass


    class AssociateDelegateToResourceRequest(Mapping):
        pass
    
    class AssociateDelegateToResourceResponse(Mapping):
        pass
    
    class AssociateMemberToGroupRequest(Mapping):
        pass
    
    class AssociateMemberToGroupResponse(Mapping):
        pass
    
    class CancelMailboxExportJobRequest(Mapping):
        pass
    
    class CancelMailboxExportJobResponse(Mapping):
        pass
    
    class CreateAliasRequest(Mapping):
        pass
    
    class CreateAliasResponse(Mapping):
        pass
    
    class CreateGroupRequest(Mapping):
        pass
    
    class CreateGroupResponse(Mapping):
        pass
    
    class CreateMobileDeviceAccessRuleRequest(Mapping):
        pass
    
    class CreateMobileDeviceAccessRuleResponse(Mapping):
        pass
    
    class DeviceType(object):
        pass
    
    class DeviceModel(object):
        pass
    
    class DeviceOperatingSystem(object):
        pass
    
    class DeviceUserAgent(object):
        pass
    
    class CreateOrganizationRequest(Mapping):
        pass
    
    class CreateOrganizationResponse(Mapping):
        pass
    
    class Domain(Mapping):
        pass
    
    class Boolean(object):
        pass
    
    class CreateResourceRequest(Mapping):
        pass
    
    class CreateResourceResponse(Mapping):
        pass
    
    class CreateUserRequest(Mapping):
        pass
    
    class CreateUserResponse(Mapping):
        pass
    
    class DeleteAccessControlRuleRequest(Mapping):
        pass
    
    class DeleteAccessControlRuleResponse(Mapping):
        pass
    
    class DeleteAliasRequest(Mapping):
        pass
    
    class DeleteAliasResponse(Mapping):
        pass
    
    class DeleteGroupRequest(Mapping):
        pass
    
    class DeleteGroupResponse(Mapping):
        pass
    
    class DeleteMailboxPermissionsRequest(Mapping):
        pass
    
    class DeleteMailboxPermissionsResponse(Mapping):
        pass
    
    class DeleteMobileDeviceAccessRuleRequest(Mapping):
        pass
    
    class DeleteMobileDeviceAccessRuleResponse(Mapping):
        pass
    
    class DeleteOrganizationRequest(Mapping):
        pass
    
    class DeleteOrganizationResponse(Mapping):
        pass
    
    class DeleteResourceRequest(Mapping):
        pass
    
    class DeleteResourceResponse(Mapping):
        pass
    
    class DeleteRetentionPolicyRequest(Mapping):
        pass
    
    class DeleteRetentionPolicyResponse(Mapping):
        pass
    
    class DeleteUserRequest(Mapping):
        pass
    
    class DeleteUserResponse(Mapping):
        pass
    
    class DeregisterFromWorkMailRequest(Mapping):
        pass
    
    class DeregisterFromWorkMailResponse(Mapping):
        pass
    
    class DescribeGroupRequest(Mapping):
        pass
    
    class DescribeGroupResponse(Mapping):
        pass
    
    class DescribeMailboxExportJobRequest(Mapping):
        pass
    
    class DescribeMailboxExportJobResponse(Mapping):
        pass
    
    class DescribeOrganizationRequest(Mapping):
        pass
    
    class DescribeOrganizationResponse(Mapping):
        pass
    
    class DescribeResourceRequest(Mapping):
        pass
    
    class DescribeResourceResponse(Mapping):
        pass
    
    class DescribeUserRequest(Mapping):
        pass
    
    class DescribeUserResponse(Mapping):
        pass
    
    class DisassociateDelegateFromResourceRequest(Mapping):
        pass
    
    class DisassociateDelegateFromResourceResponse(Mapping):
        pass
    
    class DisassociateMemberFromGroupRequest(Mapping):
        pass
    
    class DisassociateMemberFromGroupResponse(Mapping):
        pass
    
    class GetAccessControlEffectRequest(Mapping):
        pass
    
    class GetAccessControlEffectResponse(Mapping):
        pass
    
    class GetDefaultRetentionPolicyRequest(Mapping):
        pass
    
    class GetDefaultRetentionPolicyResponse(Mapping):
        pass
    
    class GetMailboxDetailsRequest(Mapping):
        pass
    
    class GetMailboxDetailsResponse(Mapping):
        pass
    
    class GetMobileDeviceAccessEffectRequest(Mapping):
        pass
    
    class GetMobileDeviceAccessEffectResponse(Mapping):
        pass
    
    class ListAccessControlRulesRequest(Mapping):
        pass
    
    class ListAccessControlRulesResponse(Mapping):
        pass
    
    class ListAliasesRequest(Mapping):
        pass
    
    class ListAliasesResponse(Mapping):
        pass
    
    class ListGroupMembersRequest(Mapping):
        pass
    
    class ListGroupMembersResponse(Mapping):
        pass
    
    class ListGroupsRequest(Mapping):
        pass
    
    class ListGroupsResponse(Mapping):
        pass
    
    class ListMailboxExportJobsRequest(Mapping):
        pass
    
    class ListMailboxExportJobsResponse(Mapping):
        pass
    
    class ListMailboxPermissionsRequest(Mapping):
        pass
    
    class ListMailboxPermissionsResponse(Mapping):
        pass
    
    class ListMobileDeviceAccessRulesRequest(Mapping):
        pass
    
    class ListMobileDeviceAccessRulesResponse(Mapping):
        pass
    
    class ListOrganizationsRequest(Mapping):
        pass
    
    class ListOrganizationsResponse(Mapping):
        pass
    
    class ListResourceDelegatesRequest(Mapping):
        pass
    
    class ListResourceDelegatesResponse(Mapping):
        pass
    
    class ListResourcesRequest(Mapping):
        pass
    
    class ListResourcesResponse(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class ListUsersRequest(Mapping):
        pass
    
    class ListUsersResponse(Mapping):
        pass
    
    class PutAccessControlRuleRequest(Mapping):
        pass
    
    class PutAccessControlRuleResponse(Mapping):
        pass
    
    class IpRange(object):
        pass
    
    class AccessControlRuleAction(object):
        pass
    
    class WorkMailIdentifier(object):
        pass
    
    class PutMailboxPermissionsRequest(Mapping):
        pass
    
    class PutMailboxPermissionsResponse(Mapping):
        pass
    
    class PermissionType(object):
        pass
    
    class PutRetentionPolicyRequest(Mapping):
        pass
    
    class PutRetentionPolicyResponse(Mapping):
        pass
    
    class FolderConfiguration(Mapping):
        pass
    
    class RegisterToWorkMailRequest(Mapping):
        pass
    
    class RegisterToWorkMailResponse(Mapping):
        pass
    
    class ResetPasswordRequest(Mapping):
        pass
    
    class ResetPasswordResponse(Mapping):
        pass
    
    class StartMailboxExportJobRequest(Mapping):
        pass
    
    class StartMailboxExportJobResponse(Mapping):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateMailboxQuotaRequest(Mapping):
        pass
    
    class UpdateMailboxQuotaResponse(Mapping):
        pass
    
    class UpdateMobileDeviceAccessRuleRequest(Mapping):
        pass
    
    class UpdateMobileDeviceAccessRuleResponse(Mapping):
        pass
    
    class UpdatePrimaryEmailAddressRequest(Mapping):
        pass
    
    class UpdatePrimaryEmailAddressResponse(Mapping):
        pass
    
    class UpdateResourceRequest(Mapping):
        pass
    
    class UpdateResourceResponse(Mapping):
        pass
    
    class BookingOptions(Mapping):
        pass
    
    def associate_delegate_to_resource(self, EntityId: str, ResourceId: str, OrganizationId: str) -> AssociateDelegateToResourceResponse:
        r"""Adds a member (user or group) to the resource's set of delegates.

        :param self:
        :param EntityId:  The member (user or group) to associate to the resource.<br/>ResourceId:  The resource for which members (users or groups) are associated.<br/>OrganizationId:  The organization under which the resource exists.<br/>
        :return:         """
        pass

    def associate_member_to_group(self, MemberId: str, GroupId: str, OrganizationId: str) -> AssociateMemberToGroupResponse:
        r"""Adds a member (user or group) to the group's set.

        :param self:
        :param MemberId:  The member (user or group) to associate to the group.<br/>GroupId:  The group to which the member (user or group) is associated.<br/>OrganizationId:  The organization under which the group exists.<br/>
        :return:         """
        pass

    def cancel_mailbox_export_job(self, OrganizationId: str, JobId: str, ClientToken: str) -> CancelMailboxExportJobResponse:
        r"""Cancels a mailbox export job. <note> If the mailbox export job is near completion, it might not be possible to cancel it. </note>

        :param self:
        :param OrganizationId:  The organization ID.<br/>JobId:  The job ID.<br/>ClientToken:  The idempotency token for the client request.<br/>
        :return:         """
        pass

    def create_alias(self, Alias: str, EntityId: str, OrganizationId: str) -> CreateAliasResponse:
        r"""Adds an alias to the set of a given member (user or group) of Amazon WorkMail.

        :param self:
        :param Alias:  The alias to add to the member set.<br/>EntityId:  The member (user or group) to which this alias is added.<br/>OrganizationId:  The organization under which the member (user or group) exists.<br/>
        :return:         """
        pass

    def create_group(self, Name: str, OrganizationId: str) -> CreateGroupResponse:
        r"""Creates a group that can be used in Amazon WorkMail by calling the <a>RegisterToWorkMail</a> operation.

        :param self:
        :param Name:  The name of the group.<br/>OrganizationId:  The organization under which the group is to be created.<br/>
        :return: GroupId:  The identifier of the group.<br/>        """
        pass

    def create_mobile_device_access_rule(self, Effect: str, Name: str, OrganizationId: str, ClientToken: str=None, Description: str=None, DeviceTypes: List[DeviceType]=None, NotDeviceTypes: List[DeviceType]=None, DeviceModels: List[DeviceModel]=None, NotDeviceModels: List[DeviceModel]=None, DeviceOperatingSystems: List[DeviceOperatingSystem]=None, NotDeviceOperatingSystems: List[DeviceOperatingSystem]=None, DeviceUserAgents: List[DeviceUserAgent]=None, NotDeviceUserAgents: List[DeviceUserAgent]=None) -> CreateMobileDeviceAccessRuleResponse:
        r"""Creates a new mobile device access rule for the specified Amazon WorkMail organization.

        :param self:
        :param NotDeviceUserAgents:  Device user agents that the rule <b>will not</b> match. All other device user agents will match.<br/>DeviceUserAgents:  Device user agents that the rule will match.<br/>NotDeviceOperatingSystems:  Device operating systems that the rule <b>will not</b> match. All other device operating systems will match.<br/>DeviceOperatingSystems:  Device operating systems that the rule will match.<br/>NotDeviceModels:  Device models that the rule <b>will not</b> match. All other device models will match.<br/>DeviceModels:  Device models that the rule will match.<br/>NotDeviceTypes:  Device types that the rule <b>will not</b> match. All other device types will match.<br/>DeviceTypes:  Device types that the rule will match.<br/>Effect:  The effect of the rule when it matches. Allowed values are <code>ALLOW</code> or <code>DENY</code>.<br/>Description:  The rule description.<br/>Name:  The rule name.<br/>ClientToken:  The idempotency token for the client request.<br/>OrganizationId:  The Amazon WorkMail organization under which the rule will be created.<br/>
        :return: MobileDeviceAccessRuleId:  The identifier for the newly created mobile device access rule.<br/>        """
        pass

    def create_organization(self, Alias: str, DirectoryId: str=None, ClientToken: str=None, Domains: List[Domain]=None, KmsKeyArn: str=None, EnableInteroperability: Boolean=None) -> CreateOrganizationResponse:
        r"""Creates a new Amazon WorkMail organization. Optionally, you can choose to associate an existing AWS Directory Service directory with your organization. If an AWS Directory Service directory ID is specified, the organization alias must match the directory alias. If you choose not to associate an existing directory with your organization, then we create a new Amazon WorkMail directory for you. For more information, see <a href="https://docs.aws.amazon.com/workmail/latest/adminguide/add_new_organization.html">Adding an organization</a> in the <i>Amazon WorkMail Administrator Guide</i>. You can associate multiple email domains with an organization, then set your default email domain from the Amazon WorkMail console. You can also associate a domain that is managed in an Amazon Route 53 public hosted zone. For more information, see <a href="https://docs.aws.amazon.com/workmail/latest/adminguide/add_domain.html">Adding a domain</a> and <a href="https://docs.aws.amazon.com/workmail/latest/adminguide/default_domain.html">Choosing the default domain</a> in the <i>Amazon WorkMail Administrator Guide</i>. Optionally, you can use a customer managed master key from AWS Key Management Service (AWS KMS) to encrypt email for your organization. If you don't associate an AWS KMS key, Amazon WorkMail creates a default AWS managed master key for you.

        :param self:
        :param EnableInteroperability:  When <code>true</code>, allows organization interoperability between Amazon WorkMail and Microsoft Exchange. Can only be set to <code>true</code> if an AD Connector directory ID is included in the request.<br/>KmsKeyArn:  The Amazon Resource Name (ARN) of a customer managed master key from AWS KMS.<br/>Domains:  The email domains to associate with the organization.<br/>ClientToken:  The idempotency token associated with the request.<br/>Alias:  The organization alias.<br/>DirectoryId:  The AWS Directory Service directory ID.<br/>
        :return: OrganizationId:  The organization ID.<br/>        """
        pass

    def create_resource(self, Type: str, Name: str, OrganizationId: str) -> CreateResourceResponse:
        r"""Creates a new Amazon WorkMail resource. 

        :param self:
        :param Type:  The type of the new resource. The available types are <code>equipment</code> and <code>room</code>.<br/>Name:  The name of the new resource.<br/>OrganizationId:  The identifier associated with the organization for which the resource is created.<br/>
        :return: ResourceId:  The identifier of the new resource.<br/>        """
        pass

    def create_user(self, Password: str, DisplayName: str, Name: str, OrganizationId: str) -> CreateUserResponse:
        r"""Creates a user who can be used in Amazon WorkMail by calling the <a>RegisterToWorkMail</a> operation.

        :param self:
        :param Password:  The password for the new user.<br/>DisplayName:  The display name for the new user.<br/>Name:  The name for the new user. WorkMail directory user names have a maximum length of 64. All others have a maximum length of 20.<br/>OrganizationId:  The identifier of the organization for which the user is created.<br/>
        :return: UserId:  The identifier for the new user.<br/>        """
        pass

    def delete_access_control_rule(self, Name: str, OrganizationId: str) -> DeleteAccessControlRuleResponse:
        r"""Deletes an access control rule for the specified WorkMail organization.

        :param self:
        :param Name:  The name of the access control rule.<br/>OrganizationId:  The identifier for the organization.<br/>
        :return:         """
        pass

    def delete_alias(self, Alias: str, EntityId: str, OrganizationId: str) -> DeleteAliasResponse:
        r"""Remove one or more specified aliases from a set of aliases for a given user.

        :param self:
        :param Alias:  The aliases to be removed from the user's set of aliases. Duplicate entries in the list are collapsed into single entries (the list is transformed into a set).<br/>EntityId:  The identifier for the member (user or group) from which to have the aliases removed.<br/>OrganizationId:  The identifier for the organization under which the user exists.<br/>
        :return:         """
        pass

    def delete_group(self, GroupId: str, OrganizationId: str) -> DeleteGroupResponse:
        r"""Deletes a group from Amazon WorkMail.

        :param self:
        :param GroupId:  The identifier of the group to be deleted.<br/>OrganizationId:  The organization that contains the group.<br/>
        :return:         """
        pass

    def delete_mailbox_permissions(self, GranteeId: str, EntityId: str, OrganizationId: str) -> DeleteMailboxPermissionsResponse:
        r"""Deletes permissions granted to a member (user or group).

        :param self:
        :param GranteeId:  The identifier of the member (user or group) for which to delete granted permissions.<br/>EntityId:  The identifier of the member (user or group) that owns the mailbox.<br/>OrganizationId:  The identifier of the organization under which the member (user or group) exists.<br/>
        :return:         """
        pass

    def delete_mobile_device_access_rule(self, MobileDeviceAccessRuleId: str, OrganizationId: str) -> DeleteMobileDeviceAccessRuleResponse:
        r"""Deletes a mobile device access rule for the specified Amazon WorkMail organization.

        :param self:
        :param MobileDeviceAccessRuleId:  The identifier of the rule to be deleted.<br/>OrganizationId:  The Amazon WorkMail organization under which the rule will be deleted.<br/>
        :return:         """
        pass

    def delete_organization(self, DeleteDirectory: Boolean, OrganizationId: str, ClientToken: str=None) -> DeleteOrganizationResponse:
        r"""Deletes an Amazon WorkMail organization and all underlying AWS resources managed by Amazon WorkMail as part of the organization. You can choose whether to delete the associated directory. For more information, see <a href="https://docs.aws.amazon.com/workmail/latest/adminguide/remove_organization.html">Removing an organization</a> in the <i>Amazon WorkMail Administrator Guide</i>.

        :param self:
        :param DeleteDirectory:  If true, deletes the AWS Directory Service directory associated with the organization.<br/>OrganizationId:  The organization ID.<br/>ClientToken:  The idempotency token associated with the request.<br/>
        :return: State:  The state of the organization.<br/>OrganizationId:  The organization ID.<br/>        """
        pass

    def delete_resource(self, ResourceId: str, OrganizationId: str) -> DeleteResourceResponse:
        r"""Deletes the specified resource. 

        :param self:
        :param ResourceId:  The identifier of the resource to be deleted.<br/>OrganizationId:  The identifier associated with the organization from which the resource is deleted.<br/>
        :return:         """
        pass

    def delete_retention_policy(self, Id: str, OrganizationId: str) -> DeleteRetentionPolicyResponse:
        r"""Deletes the specified retention policy from the specified organization.

        :param self:
        :param Id:  The retention policy ID.<br/>OrganizationId:  The organization ID.<br/>
        :return:         """
        pass

    def delete_user(self, UserId: str, OrganizationId: str) -> DeleteUserResponse:
        r"""Deletes a user from Amazon WorkMail and all subsequent systems. Before you can delete a user, the user state must be <code>DISABLED</code>. Use the <a>DescribeUser</a> action to confirm the user state. Deleting a user is permanent and cannot be undone. WorkMail archives user mailboxes for 30 days before they are permanently removed.

        :param self:
        :param UserId:  The identifier of the user to be deleted.<br/>OrganizationId:  The organization that contains the user to be deleted.<br/>
        :return:         """
        pass

    def deregister_from_work_mail(self, EntityId: str, OrganizationId: str) -> DeregisterFromWorkMailResponse:
        r"""Mark a user, group, or resource as no longer used in Amazon WorkMail. This action disassociates the mailbox and schedules it for clean-up. WorkMail keeps mailboxes for 30 days before they are permanently removed. The functionality in the console is <i>Disable</i>.

        :param self:
        :param EntityId:  The identifier for the member (user or group) to be updated.<br/>OrganizationId:  The identifier for the organization under which the Amazon WorkMail entity exists.<br/>
        :return:         """
        pass

    def describe_group(self, GroupId: str, OrganizationId: str) -> DescribeGroupResponse:
        r"""Returns the data available for the group.

        :param self:
        :param GroupId:  The identifier for the group to be described.<br/>OrganizationId:  The identifier for the organization under which the group exists.<br/>
        :return: DisabledDate:  The date and time when a user was deregistered from WorkMail, in UNIX epoch time format.<br/>EnabledDate:  The date and time when a user was registered to WorkMail, in UNIX epoch time format.<br/>State:  The state of the user: enabled (registered to Amazon WorkMail) or disabled (deregistered or never registered to WorkMail).<br/>Email:  The email of the described group.<br/>Name:  The name of the described group.<br/>GroupId:  The identifier of the described group.<br/>        """
        pass

    def describe_mailbox_export_job(self, OrganizationId: str, JobId: str) -> DescribeMailboxExportJobResponse:
        r"""Describes the current status of a mailbox export job.

        :param self:
        :param OrganizationId:  The organization ID.<br/>JobId:  The mailbox export job ID.<br/>
        :return: EndTime:  The mailbox export job end timestamp.<br/>StartTime:  The mailbox export job start timestamp.<br/>ErrorInfo:  Error information for failed mailbox export jobs.<br/>State:  The state of the mailbox export job.<br/>EstimatedProgress:  The estimated progress of the mailbox export job, in percentage points.<br/>S3Path:  The path to the S3 bucket and file that the mailbox export job is exporting to.<br/>S3Prefix:  The S3 bucket prefix.<br/>S3BucketName:  The name of the S3 bucket.<br/>KmsKeyArn:  The Amazon Resource Name (ARN) of the symmetric AWS Key Management Service (AWS KMS) key that encrypts the exported mailbox content.<br/>RoleArn:  The ARN of the AWS Identity and Access Management (IAM) role that grants write permission to the Amazon Simple Storage Service (Amazon S3) bucket.<br/>Description:  The mailbox export job description.<br/>EntityId:  The identifier of the user or resource associated with the mailbox.<br/>        """
        pass

    def describe_organization(self, OrganizationId: str) -> DescribeOrganizationResponse:
        r"""Provides more information regarding a given organization based on its identifier.

        :param self:
        :param OrganizationId:  The identifier for the organization to be described.<br/>
        :return: ARN:  The Amazon Resource Name (ARN) of the organization.<br/>ErrorMessage:  (Optional) The error message indicating if unexpected behavior was encountered with regards to the organization.<br/>CompletedDate:  The date at which the organization became usable in the WorkMail context, in UNIX epoch time format.<br/>DefaultMailDomain:  The default mail domain associated with the organization.<br/>DirectoryType:  The type of directory associated with the WorkMail organization.<br/>DirectoryId:  The identifier for the directory associated with an Amazon WorkMail organization.<br/>State:  The state of an organization.<br/>Alias:  The alias for an organization.<br/>OrganizationId:  The identifier of an organization.<br/>        """
        pass

    def describe_resource(self, ResourceId: str, OrganizationId: str) -> DescribeResourceResponse:
        r"""Returns the data available for the resource.

        :param self:
        :param ResourceId:  The identifier of the resource to be described.<br/>OrganizationId:  The identifier associated with the organization for which the resource is described.<br/>
        :return: DisabledDate:  The date and time when a resource was disabled from WorkMail, in UNIX epoch time format.<br/>EnabledDate:  The date and time when a resource was enabled for WorkMail, in UNIX epoch time format.<br/>State:  The state of the resource: enabled (registered to Amazon WorkMail), disabled (deregistered or never registered to WorkMail), or deleted.<br/>BookingOptions:  The booking options for the described resource.:<br/>Type:  The type of the described resource.<br/>Name:  The name of the described resource.<br/>Email:  The email of the described resource.<br/>ResourceId:  The identifier of the described resource.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoDeclineConflictingRequests</i> The resource's ability to automatically decline any conflicting requests.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoDeclineRecurringRequests</i> The resource's ability to automatically decline any recurring requests.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoAcceptRequests</i> The resource's ability to automatically reply to requests. If disabled, delegates must be associated to the resource.<br/>        """
        pass

    def describe_user(self, UserId: str, OrganizationId: str) -> DescribeUserResponse:
        r"""Provides information regarding the user.

        :param self:
        :param UserId:  The identifier for the user to be described.<br/>OrganizationId:  The identifier for the organization under which the user exists.<br/>
        :return: DisabledDate:  The date and time at which the user was disabled for Amazon WorkMail usage, in UNIX epoch time format.<br/>EnabledDate:  The date and time at which the user was enabled for Amazon WorkMail usage, in UNIX epoch time format.<br/>UserRole:  In certain cases, other entities are modeled as users. If interoperability is enabled, resources are imported into Amazon WorkMail as users. Because different WorkMail organizations rely on different directory types, administrators can distinguish between an unregistered user (account is disabled and has a user role) and the directory administrators. The values are USER, RESOURCE, and SYSTEM_USER.<br/>State:  The state of a user: enabled (registered to Amazon WorkMail) or disabled (deregistered or never registered to WorkMail).<br/>DisplayName:  The display name of the user.<br/>Email:  The email of the user.<br/>Name:  The name for the user.<br/>UserId:  The identifier for the described user.<br/>        """
        pass

    def disassociate_delegate_from_resource(self, EntityId: str, ResourceId: str, OrganizationId: str) -> DisassociateDelegateFromResourceResponse:
        r"""Removes a member from the resource's set of delegates.

        :param self:
        :param EntityId:  The identifier for the member (user, group) to be removed from the resource's delegates.<br/>ResourceId:  The identifier of the resource from which delegates' set members are removed. <br/>OrganizationId:  The identifier for the organization under which the resource exists.<br/>
        :return:         """
        pass

    def disassociate_member_from_group(self, MemberId: str, GroupId: str, OrganizationId: str) -> DisassociateMemberFromGroupResponse:
        r"""Removes a member from a group.

        :param self:
        :param MemberId:  The identifier for the member to be removed to the group.<br/>GroupId:  The identifier for the group from which members are removed.<br/>OrganizationId:  The identifier for the organization under which the group exists.<br/>
        :return:         """
        pass

    def get_access_control_effect(self, UserId: str, Action: str, IpAddress: str, OrganizationId: str) -> GetAccessControlEffectResponse:
        r"""Gets the effects of an organization's access control rules as they apply to a specified IPv4 address, access protocol action, or user ID. 

        :param self:
        :param UserId:  The user ID.<br/>Action:  The access protocol action. Valid values include <code>ActiveSync</code>, <code>AutoDiscover</code>, <code>EWS</code>, <code>IMAP</code>, <code>SMTP</code>, <code>WindowsOutlook</code>, and <code>WebMail</code>.<br/>IpAddress:  The IPv4 address.<br/>OrganizationId:  The identifier for the organization.<br/>
        :return: MatchedRules:  The rules that match the given parameters, resulting in an effect.<br/>Effect:  The rule effect.<br/>        """
        pass

    def get_default_retention_policy(self, OrganizationId: str) -> GetDefaultRetentionPolicyResponse:
        r"""Gets the default retention policy details for the specified organization.

        :param self:
        :param OrganizationId:  The organization ID.<br/>
        :return: FolderConfigurations:  The retention policy folder configurations.<br/>Description:  The retention policy description.<br/>Name:  The retention policy name.<br/>Id:  The retention policy ID.<br/>        """
        pass

    def get_mailbox_details(self, UserId: str, OrganizationId: str) -> GetMailboxDetailsResponse:
        r"""Requests a user's mailbox details for a specified organization and user.

        :param self:
        :param UserId:  The identifier for the user whose mailbox details are being requested.<br/>OrganizationId:  The identifier for the organization that contains the user whose mailbox details are being requested.<br/>
        :return: MailboxSize:  The current mailbox size, in MB, for the specified user.<br/>MailboxQuota:  The maximum allowed mailbox size, in MB, for the specified user.<br/>        """
        pass

    def get_mobile_device_access_effect(self, OrganizationId: str, DeviceType: str=None, DeviceModel: str=None, DeviceOperatingSystem: str=None, DeviceUserAgent: str=None) -> GetMobileDeviceAccessEffectResponse:
        r"""Simulates the effect of the mobile device access rules for the given attributes of a sample access event. Use this method to test the effects of the current set of mobile device access rules for the Amazon WorkMail organization for a particular user's attributes.

        :param self:
        :param DeviceUserAgent:  Device user agent the simulated user will report.<br/>DeviceOperatingSystem:  Device operating system the simulated user will report.<br/>DeviceModel:  Device model the simulated user will report.<br/>DeviceType:  Device type the simulated user will report.<br/>OrganizationId:  The Amazon WorkMail organization to simulate the access effect for.<br/>
        :return: MatchedRules:  A list of the rules which matched the simulated user input and produced the effect.<br/>Effect:  The effect of the simulated access, <code>ALLOW</code> or <code>DENY</code>, after evaluating mobile device access rules in the Amazon WorkMail organization for the simulated user parameters.<br/>        """
        pass

    def list_access_control_rules(self, OrganizationId: str) -> ListAccessControlRulesResponse:
        r"""Lists the access control rules for the specified organization.

        :param self:
        :param OrganizationId:  The identifier for the organization.<br/>
        :return: Rules:  The access control rules.<br/>        """
        pass

    def list_aliases(self, EntityId: str, OrganizationId: str, NextToken: str=None, MaxResults: int=None) -> ListAliasesResponse:
        r"""Creates a paginated call to list the aliases associated with a given entity.

        :param self:
        :param MaxResults:  The maximum number of results to return in a single call.<br/>NextToken:  The token to use to retrieve the next page of results. The first call does not contain any tokens.<br/>EntityId:  The identifier for the entity for which to list the aliases.<br/>OrganizationId:  The identifier for the organization under which the entity exists.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results. The value is "null" when there are no more results to return.<br/>Aliases:  The entity's paginated aliases.<br/>        """
        pass

    def list_group_members(self, GroupId: str, OrganizationId: str, NextToken: str=None, MaxResults: int=None) -> ListGroupMembersResponse:
        r"""Returns an overview of the members of a group. Users and groups can be members of a group.

        :param self:
        :param MaxResults:  The maximum number of results to return in a single call.<br/>NextToken:   The token to use to retrieve the next page of results. The first call does not contain any tokens.<br/>GroupId:  The identifier for the group to which the members (users or groups) are associated.<br/>OrganizationId:  The identifier for the organization under which the group exists.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results. The first call does not contain any tokens.<br/>Members:  The members associated to the group.<br/>        """
        pass

    def list_groups(self, OrganizationId: str, NextToken: str=None, MaxResults: int=None) -> ListGroupsResponse:
        r"""Returns summaries of the organization's groups.

        :param self:
        :param MaxResults:  The maximum number of results to return in a single call.<br/>NextToken:  The token to use to retrieve the next page of results. The first call does not contain any tokens.<br/>OrganizationId:  The identifier for the organization under which the groups exist.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results. The value is "null" when there are no more results to return.<br/>Groups:  The overview of groups for an organization.<br/>        """
        pass

    def list_mailbox_export_jobs(self, OrganizationId: str, NextToken: str=None, MaxResults: int=None) -> ListMailboxExportJobsResponse:
        r"""Lists the mailbox export jobs started for the specified organization within the last seven days.

        :param self:
        :param MaxResults:  The maximum number of results to return in a single call.<br/>NextToken:  The token to use to retrieve the next page of results.<br/>OrganizationId:  The organization ID.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results.<br/>Jobs:  The mailbox export job details.<br/>        """
        pass

    def list_mailbox_permissions(self, EntityId: str, OrganizationId: str, NextToken: str=None, MaxResults: int=None) -> ListMailboxPermissionsResponse:
        r"""Lists the mailbox permissions associated with a user, group, or resource mailbox.

        :param self:
        :param MaxResults:  The maximum number of results to return in a single call.<br/>NextToken:  The token to use to retrieve the next page of results. The first call does not contain any tokens.<br/>EntityId:  The identifier of the user, group, or resource for which to list mailbox permissions.<br/>OrganizationId:  The identifier of the organization under which the user, group, or resource exists.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results. The value is "null" when there are no more results to return.<br/>Permissions:  One page of the user, group, or resource mailbox permissions.<br/>        """
        pass

    def list_mobile_device_access_rules(self, OrganizationId: str) -> ListMobileDeviceAccessRulesResponse:
        r"""Lists the mobile device access rules for the specified Amazon WorkMail organization.

        :param self:
        :param OrganizationId:  The Amazon WorkMail organization for which to list the rules.<br/>
        :return: Rules:  The list of mobile device access rules that exist under the specified Amazon WorkMail organization.<br/>        """
        pass

    def list_organizations(self, NextToken: str=None, MaxResults: int=None) -> ListOrganizationsResponse:
        r"""Returns summaries of the customer's organizations.

        :param self:
        :param MaxResults:  The maximum number of results to return in a single call.<br/>NextToken:  The token to use to retrieve the next page of results. The first call does not contain any tokens.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results. The value is "null" when there are no more results to return.<br/>OrganizationSummaries:  The overview of owned organizations presented as a list of organization summaries.<br/>        """
        pass

    def list_resource_delegates(self, ResourceId: str, OrganizationId: str, NextToken: str=None, MaxResults: int=None) -> ListResourceDelegatesResponse:
        r"""Lists the delegates associated with a resource. Users and groups can be resource delegates and answer requests on behalf of the resource.

        :param self:
        :param MaxResults:  The number of maximum results in a page.<br/>NextToken:  The token used to paginate through the delegates associated with a resource.<br/>ResourceId:  The identifier for the resource whose delegates are listed.<br/>OrganizationId:  The identifier for the organization that contains the resource for which delegates are listed.<br/>
        :return: NextToken:  The token used to paginate through the delegates associated with a resource. While results are still available, it has an associated value. When the last page is reached, the token is empty. <br/>Delegates:  One page of the resource's delegates.<br/>        """
        pass

    def list_resources(self, OrganizationId: str, NextToken: str=None, MaxResults: int=None) -> ListResourcesResponse:
        r"""Returns summaries of the organization's resources.

        :param self:
        :param MaxResults:  The maximum number of results to return in a single call.<br/>NextToken:  The token to use to retrieve the next page of results. The first call does not contain any tokens.<br/>OrganizationId:  The identifier for the organization under which the resources exist.<br/>
        :return: NextToken:   The token used to paginate through all the organization's resources. While results are still available, it has an associated value. When the last page is reached, the token is empty.<br/>Resources:  One page of the organization's resource representation.<br/>        """
        pass

    def list_tags_for_resource(self, ResourceARN: str) -> ListTagsForResourceResponse:
        r"""Lists the tags applied to an Amazon WorkMail organization resource.

        :param self:
        :param ResourceARN:  The resource ARN.<br/>
        :return: Tags:  A list of tag key-value pairs.<br/>        """
        pass

    def list_users(self, OrganizationId: str, NextToken: str=None, MaxResults: int=None) -> ListUsersResponse:
        r"""Returns summaries of the organization's users.

        :param self:
        :param MaxResults:  The maximum number of results to return in a single call.<br/>NextToken:  The token to use to retrieve the next page of results. The first call does not contain any tokens.<br/>OrganizationId:  The identifier for the organization under which the users exist.<br/>
        :return: NextToken:   The token to use to retrieve the next page of results. This value is `null` when there are no more results to return.<br/>Users:  The overview of users for an organization.<br/>        """
        pass

    def put_access_control_rule(self, OrganizationId: str, Description: str, Effect: str, Name: str, IpRanges: List[IpRange]=None, NotIpRanges: List[IpRange]=None, Actions: List[AccessControlRuleAction]=None, NotActions: List[AccessControlRuleAction]=None, UserIds: List[WorkMailIdentifier]=None, NotUserIds: List[WorkMailIdentifier]=None) -> PutAccessControlRuleResponse:
        r"""Adds a new access control rule for the specified organization. The rule allows or denies access to the organization for the specified IPv4 addresses, access protocol actions, and user IDs. Adding a new rule with the same name as an existing rule replaces the older rule.

        :param self:
        :param OrganizationId:  The identifier of the organization.<br/>NotUserIds:  User IDs to exclude from the rule.<br/>UserIds:  User IDs to include in the rule.<br/>NotActions:  Access protocol actions to exclude from the rule. Valid values include <code>ActiveSync</code>, <code>AutoDiscover</code>, <code>EWS</code>, <code>IMAP</code>, <code>SMTP</code>, <code>WindowsOutlook</code>, and <code>WebMail</code>.<br/>Actions:  Access protocol actions to include in the rule. Valid values include <code>ActiveSync</code>, <code>AutoDiscover</code>, <code>EWS</code>, <code>IMAP</code>, <code>SMTP</code>, <code>WindowsOutlook</code>, and <code>WebMail</code>.<br/>NotIpRanges:  IPv4 CIDR ranges to exclude from the rule.<br/>IpRanges:  IPv4 CIDR ranges to include in the rule.<br/>Description:  The rule description.<br/>Effect:  The rule effect.<br/>Name:  The rule name.<br/>
        :return:         """
        pass

    def put_mailbox_permissions(self, PermissionValues: List[PermissionType], GranteeId: str, EntityId: str, OrganizationId: str) -> PutMailboxPermissionsResponse:
        r"""Sets permissions for a user, group, or resource. This replaces any pre-existing permissions.

        :param self:
        :param PermissionValues:  The permissions granted to the grantee. SEND_AS allows the grantee to send email as the owner of the mailbox (the grantee is not mentioned on these emails). SEND_ON_BEHALF allows the grantee to send email on behalf of the owner of the mailbox (the grantee is not mentioned as the physical sender of these emails). FULL_ACCESS allows the grantee full access to the mailbox, irrespective of other folder-level permissions set on the mailbox.<br/>GranteeId:  The identifier of the user, group, or resource to which to grant the permissions.<br/>EntityId:  The identifier of the user, group, or resource for which to update mailbox permissions.<br/>OrganizationId:  The identifier of the organization under which the user, group, or resource exists.<br/>
        :return:         """
        pass

    def put_retention_policy(self, FolderConfigurations: List[FolderConfiguration], Name: str, OrganizationId: str, Id: str=None, Description: str=None) -> PutRetentionPolicyResponse:
        r"""Puts a retention policy to the specified organization.

        :param self:
        :param FolderConfigurations:  The retention policy folder configurations.<br/>Description:  The retention policy description.<br/>Name:  The retention policy name.<br/>Id:  The retention policy ID.<br/>OrganizationId:  The organization ID.<br/>
        :return:         """
        pass

    def register_to_work_mail(self, Email: str, EntityId: str, OrganizationId: str) -> RegisterToWorkMailResponse:
        r"""Registers an existing and disabled user, group, or resource for Amazon WorkMail use by associating a mailbox and calendaring capabilities. It performs no change if the user, group, or resource is enabled and fails if the user, group, or resource is deleted. This operation results in the accumulation of costs. For more information, see <a href="https://aws.amazon.com/workmail/pricing">Pricing</a>. The equivalent console functionality for this operation is <i>Enable</i>.  Users can either be created by calling the <a>CreateUser</a> API operation or they can be synchronized from your directory. For more information, see <a>DeregisterFromWorkMail</a>.

        :param self:
        :param Email:  The email for the user, group, or resource to be updated.<br/>EntityId:  The identifier for the user, group, or resource to be updated.<br/>OrganizationId:  The identifier for the organization under which the user, group, or resource exists.<br/>
        :return:         """
        pass

    def reset_password(self, Password: str, UserId: str, OrganizationId: str) -> ResetPasswordResponse:
        r"""Allows the administrator to reset the password for a user.

        :param self:
        :param Password:  The new password for the user.<br/>UserId:  The identifier of the user for whom the password is reset.<br/>OrganizationId:  The identifier of the organization that contains the user for which the password is reset.<br/>
        :return:         """
        pass

    def start_mailbox_export_job(self, S3Prefix: str, S3BucketName: str, KmsKeyArn: str, RoleArn: str, EntityId: str, OrganizationId: str, ClientToken: str, Description: str=None) -> StartMailboxExportJobResponse:
        r"""Starts a mailbox export job to export MIME-format email messages and calendar items from the specified mailbox to the specified Amazon Simple Storage Service (Amazon S3) bucket. For more information, see <a href="https://docs.aws.amazon.com/workmail/latest/adminguide/mail-export.html">Exporting mailbox content</a> in the <i>Amazon WorkMail Administrator Guide</i>.

        :param self:
        :param S3Prefix:  The S3 bucket prefix.<br/>S3BucketName:  The name of the S3 bucket.<br/>KmsKeyArn:  The Amazon Resource Name (ARN) of the symmetric AWS Key Management Service (AWS KMS) key that encrypts the exported mailbox content.<br/>RoleArn:  The ARN of the AWS Identity and Access Management (IAM) role that grants write permission to the S3 bucket.<br/>Description:  The mailbox export job description.<br/>EntityId:  The identifier of the user or resource associated with the mailbox.<br/>OrganizationId:  The identifier associated with the organization.<br/>ClientToken:  The idempotency token for the client request.<br/>
        :return: JobId:  The job ID.<br/>        """
        pass

    def tag_resource(self, Tags: List[Tag], ResourceARN: str) -> TagResourceResponse:
        r"""Applies the specified tags to the specified Amazon WorkMail organization resource.

        :param self:
        :param Tags:  The tag key-value pairs.<br/>ResourceARN:  The resource ARN.<br/>
        :return:         """
        pass

    def untag_resource(self, TagKeys: List[TagKey], ResourceARN: str) -> UntagResourceResponse:
        r"""Untags the specified tags from the specified Amazon WorkMail organization resource.

        :param self:
        :param TagKeys:  The tag keys.<br/>ResourceARN:  The resource ARN.<br/>
        :return:         """
        pass

    def update_mailbox_quota(self, MailboxQuota: int, UserId: str, OrganizationId: str) -> UpdateMailboxQuotaResponse:
        r"""Updates a user's current mailbox quota for a specified organization and user.

        :param self:
        :param MailboxQuota:  The updated mailbox quota, in MB, for the specified user.<br/>UserId:  The identifer for the user for whom to update the mailbox quota.<br/>OrganizationId:  The identifier for the organization that contains the user for whom to update the mailbox quota.<br/>
        :return:         """
        pass

    def update_mobile_device_access_rule(self, Effect: str, Name: str, MobileDeviceAccessRuleId: str, OrganizationId: str, Description: str=None, DeviceTypes: List[DeviceType]=None, NotDeviceTypes: List[DeviceType]=None, DeviceModels: List[DeviceModel]=None, NotDeviceModels: List[DeviceModel]=None, DeviceOperatingSystems: List[DeviceOperatingSystem]=None, NotDeviceOperatingSystems: List[DeviceOperatingSystem]=None, DeviceUserAgents: List[DeviceUserAgent]=None, NotDeviceUserAgents: List[DeviceUserAgent]=None) -> UpdateMobileDeviceAccessRuleResponse:
        r"""Updates a mobile device access rule for the specified Amazon WorkMail organization.

        :param self:
        :param NotDeviceUserAgents:  User agents that the updated rule <b>will not</b> match. All other user agents will match.<br/>DeviceUserAgents:  User agents that the updated rule will match.<br/>NotDeviceOperatingSystems:  Device operating systems that the updated rule <b>will not</b> match. All other device operating systems will match.<br/>DeviceOperatingSystems:  Device operating systems that the updated rule will match.<br/>NotDeviceModels:  Device models that the updated rule <b>will not</b> match. All other device models will match.<br/>DeviceModels:  Device models that the updated rule will match.<br/>NotDeviceTypes:  Device types that the updated rule <b>will not</b> match. All other device types will match.<br/>DeviceTypes:  Device types that the updated rule will match.<br/>Effect:  The effect of the rule when it matches. Allowed values are <code>ALLOW</code> or <code>DENY</code>.<br/>Description:  The updated rule description.<br/>Name:  The updated rule name.<br/>MobileDeviceAccessRuleId:  The identifier of the rule to be updated.<br/>OrganizationId:  The Amazon WorkMail organization under which the rule will be updated.<br/>
        :return:         """
        pass

    def update_primary_email_address(self, Email: str, EntityId: str, OrganizationId: str) -> UpdatePrimaryEmailAddressResponse:
        r"""Updates the primary email for a user, group, or resource. The current email is moved into the list of aliases (or swapped between an existing alias and the current primary email), and the email provided in the input is promoted as the primary.

        :param self:
        :param Email:  The value of the email to be updated as primary.<br/>EntityId:  The user, group, or resource to update.<br/>OrganizationId:  The organization that contains the user, group, or resource to update.<br/>
        :return:         """
        pass

    def update_resource(self, ResourceId: str, OrganizationId: str, Name: str=None, BookingOptions: BookingOptions=None) -> UpdateResourceResponse:
        r"""Updates data for the resource. To have the latest information, it must be preceded by a <a>DescribeResource</a> call. The dataset in the request should be the one expected when performing another <code>DescribeResource</code> call.

        :param self:
        :param BookingOptions:  The resource's booking options to be updated.:<br/>Name:  The name of the resource to be updated.<br/>ResourceId:  The identifier of the resource to be updated.<br/>OrganizationId:  The identifier associated with the organization for which the resource is updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoDeclineConflictingRequests</i> The resource's ability to automatically decline any conflicting requests.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoDeclineRecurringRequests</i> The resource's ability to automatically decline any recurring requests.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AutoAcceptRequests</i> The resource's ability to automatically reply to requests. If disabled, delegates must be associated to the resource.<br/>
        :return:         """
        pass





class WorkMailMessageFlow(BaseClient):
    r"""The WorkMail Message Flow API provides access to email messages as they are being sent and received by a WorkMail organization."""




    class GetRawMessageContentRequest(Mapping):
        pass
    
    class GetRawMessageContentResponse(Mapping):
        pass
    
    class PutRawMessageContentRequest(Mapping):
        pass
    
    class PutRawMessageContentResponse(Mapping):
        pass
    
    class RawMessageContent(Mapping):
        pass
    
    def get_raw_message_content(self, messageId: str) -> GetRawMessageContentResponse:
        r"""Retrieves the raw content of an in-transit email message, in MIME format.

        :param self:
        :param messageId:  The identifier of the email message to retrieve.<br/>
        :return: messageContent:  The raw content of the email message, in MIME format.<br/>        """
        pass

    def put_raw_message_content(self, content: RawMessageContent, messageId: str) -> PutRawMessageContentResponse:
        r"""Updates the raw content of an in-transit email message, in MIME format. This example describes how to update in-transit email message. For more information and examples for using this API, see <a href="https://docs.aws.amazon.com/workmail/latest/adminguide/update-with-lambda.html"> Updating message content with AWS Lambda</a>. <note> Updates to an in-transit message only appear when you call <code>PutRawMessageContent</code> from an AWS Lambda function configured with a synchronous <a href="https://docs.aws.amazon.com/workmail/latest/adminguide/lambda.html#synchronous-rules"> Run Lambda</a> rule. If you call <code>PutRawMessageContent</code> on a delivered or sent message, the message remains unchanged, even though <a href="https://docs.aws.amazon.com/workmail/latest/APIReference/API_messageflow_GetRawMessageContent.html">GetRawMessageContent</a> returns an updated message.  </note>

        :param self:
        :param content:  Describes the raw message content of the updated email message.:<br/>messageId:  The identifier of the email message being updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>s3Reference</i> The S3 reference of an email message.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>s3Reference</b>: The S3 reference of an email message.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>objectVersion</i> If you enable versioning for the bucket, you can specify the object version.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>key</i> The S3 key object name.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>bucket</i> The S3 bucket name.<br/>
        :return:         """
        pass





class WorkSpaces(BaseClient):
    r"""<fullname>Amazon WorkSpaces Service</fullname> Amazon WorkSpaces enables you to provision virtual, cloud-based Microsoft Windows and Amazon Linux desktops for your users."""


    class DescribeWorkspaceBundlesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_workspace_bundles` for valid parameters"""
            pass
    class DescribeWorkspaceDirectoriesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_workspace_directories` for valid parameters"""
            pass
    class DescribeWorkspacesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_workspaces` for valid parameters"""
            pass
    class DescribeAccountModificationsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_account_modifications` for valid parameters"""
            pass
    class DescribeIpGroupsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_ip_groups` for valid parameters"""
            pass
    class DescribeWorkspaceImagesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_workspace_images` for valid parameters"""
            pass
    class DescribeWorkspacesConnectionStatusPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `describe_workspaces_connection_status` for valid parameters"""
            pass
    class ListAvailableManagementCidrRangesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `list_available_management_cidr_ranges` for valid parameters"""
            pass


    class AssociateConnectionAliasRequest(Mapping):
        pass
    
    class AssociateConnectionAliasResult(Mapping):
        pass
    
    class AssociateIpGroupsRequest(Mapping):
        pass
    
    class AssociateIpGroupsResult(Mapping):
        pass
    
    class IpGroupId(object):
        pass
    
    class AuthorizeIpRulesRequest(Mapping):
        pass
    
    class AuthorizeIpRulesResult(Mapping):
        pass
    
    class IpRuleItem(Mapping):
        pass
    
    class CopyWorkspaceImageRequest(Mapping):
        pass
    
    class CopyWorkspaceImageResult(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class CreateConnectionAliasRequest(Mapping):
        pass
    
    class CreateConnectionAliasResult(Mapping):
        pass
    
    class CreateIpGroupRequest(Mapping):
        pass
    
    class CreateIpGroupResult(Mapping):
        pass
    
    class CreateTagsRequest(Mapping):
        pass
    
    class CreateTagsResult(Mapping):
        pass
    
    class CreateWorkspaceBundleRequest(Mapping):
        pass
    
    class CreateWorkspaceBundleResult(Mapping):
        pass
    
    class ComputeType(Mapping):
        pass
    
    class UserStorage(Mapping):
        pass
    
    class RootStorage(Mapping):
        pass
    
    class CreateWorkspacesRequest(Mapping):
        pass
    
    class CreateWorkspacesResult(Mapping):
        pass
    
    class WorkspaceRequest(Mapping):
        pass
    
    class DeleteConnectionAliasRequest(Mapping):
        pass
    
    class DeleteConnectionAliasResult(Mapping):
        pass
    
    class DeleteIpGroupRequest(Mapping):
        pass
    
    class DeleteIpGroupResult(Mapping):
        pass
    
    class DeleteTagsRequest(Mapping):
        pass
    
    class DeleteTagsResult(Mapping):
        pass
    
    class NonEmptyString(object):
        pass
    
    class DeleteWorkspaceBundleRequest(Mapping):
        pass
    
    class DeleteWorkspaceBundleResult(Mapping):
        pass
    
    class DeleteWorkspaceImageRequest(Mapping):
        pass
    
    class DeleteWorkspaceImageResult(Mapping):
        pass
    
    class DeregisterWorkspaceDirectoryRequest(Mapping):
        pass
    
    class DeregisterWorkspaceDirectoryResult(Mapping):
        pass
    
    class DescribeAccountRequest(Mapping):
        pass
    
    class DescribeAccountResult(Mapping):
        pass
    
    class DescribeAccountModificationsRequest(Mapping):
        pass
    
    class DescribeAccountModificationsResult(Mapping):
        pass
    
    class DescribeClientPropertiesRequest(Mapping):
        pass
    
    class DescribeClientPropertiesResult(Mapping):
        pass
    
    class DescribeConnectionAliasPermissionsRequest(Mapping):
        pass
    
    class DescribeConnectionAliasPermissionsResult(Mapping):
        pass
    
    class DescribeConnectionAliasesRequest(Mapping):
        pass
    
    class DescribeConnectionAliasesResult(Mapping):
        pass
    
    class ConnectionAliasId(object):
        pass
    
    class DescribeIpGroupsRequest(Mapping):
        pass
    
    class DescribeIpGroupsResult(Mapping):
        pass
    
    class DescribeTagsRequest(Mapping):
        pass
    
    class DescribeTagsResult(Mapping):
        pass
    
    class DescribeWorkspaceBundlesRequest(Mapping):
        pass
    
    class DescribeWorkspaceBundlesResult(Mapping):
        pass
    
    class BundleId(object):
        pass
    
    class DescribeWorkspaceDirectoriesRequest(Mapping):
        pass
    
    class DescribeWorkspaceDirectoriesResult(Mapping):
        pass
    
    class DirectoryId(object):
        pass
    
    class DescribeWorkspaceImagePermissionsRequest(Mapping):
        pass
    
    class DescribeWorkspaceImagePermissionsResult(Mapping):
        pass
    
    class DescribeWorkspaceImagesRequest(Mapping):
        pass
    
    class DescribeWorkspaceImagesResult(Mapping):
        pass
    
    class WorkspaceImageId(object):
        pass
    
    class DescribeWorkspaceSnapshotsRequest(Mapping):
        pass
    
    class DescribeWorkspaceSnapshotsResult(Mapping):
        pass
    
    class DescribeWorkspacesRequest(Mapping):
        pass
    
    class DescribeWorkspacesResult(Mapping):
        pass
    
    class WorkspaceId(object):
        pass
    
    class DescribeWorkspacesConnectionStatusRequest(Mapping):
        pass
    
    class DescribeWorkspacesConnectionStatusResult(Mapping):
        pass
    
    class DisassociateConnectionAliasRequest(Mapping):
        pass
    
    class DisassociateConnectionAliasResult(Mapping):
        pass
    
    class DisassociateIpGroupsRequest(Mapping):
        pass
    
    class DisassociateIpGroupsResult(Mapping):
        pass
    
    class ImportWorkspaceImageRequest(Mapping):
        pass
    
    class ImportWorkspaceImageResult(Mapping):
        pass
    
    class Application(object):
        pass
    
    class ListAvailableManagementCidrRangesRequest(Mapping):
        pass
    
    class ListAvailableManagementCidrRangesResult(Mapping):
        pass
    
    class MigrateWorkspaceRequest(Mapping):
        pass
    
    class MigrateWorkspaceResult(Mapping):
        pass
    
    class ModifyAccountRequest(Mapping):
        pass
    
    class ModifyAccountResult(Mapping):
        pass
    
    class ModifyClientPropertiesRequest(Mapping):
        pass
    
    class ModifyClientPropertiesResult(Mapping):
        pass
    
    class ClientProperties(Mapping):
        pass
    
    class ModifySelfservicePermissionsRequest(Mapping):
        pass
    
    class ModifySelfservicePermissionsResult(Mapping):
        pass
    
    class SelfservicePermissions(Mapping):
        pass
    
    class ModifyWorkspaceAccessPropertiesRequest(Mapping):
        pass
    
    class ModifyWorkspaceAccessPropertiesResult(Mapping):
        pass
    
    class WorkspaceAccessProperties(Mapping):
        pass
    
    class ModifyWorkspaceCreationPropertiesRequest(Mapping):
        pass
    
    class ModifyWorkspaceCreationPropertiesResult(Mapping):
        pass
    
    class WorkspaceCreationProperties(Mapping):
        pass
    
    class ModifyWorkspacePropertiesRequest(Mapping):
        pass
    
    class ModifyWorkspacePropertiesResult(Mapping):
        pass
    
    class WorkspaceProperties(Mapping):
        pass
    
    class ModifyWorkspaceStateRequest(Mapping):
        pass
    
    class ModifyWorkspaceStateResult(Mapping):
        pass
    
    class RebootWorkspacesRequest(Mapping):
        pass
    
    class RebootWorkspacesResult(Mapping):
        pass
    
    class RebootRequest(Mapping):
        pass
    
    class RebuildWorkspacesRequest(Mapping):
        pass
    
    class RebuildWorkspacesResult(Mapping):
        pass
    
    class RebuildRequest(Mapping):
        pass
    
    class RegisterWorkspaceDirectoryRequest(Mapping):
        pass
    
    class RegisterWorkspaceDirectoryResult(Mapping):
        pass
    
    class SubnetId(object):
        pass
    
    class BooleanObject(object):
        pass
    
    class RestoreWorkspaceRequest(Mapping):
        pass
    
    class RestoreWorkspaceResult(Mapping):
        pass
    
    class RevokeIpRulesRequest(Mapping):
        pass
    
    class RevokeIpRulesResult(Mapping):
        pass
    
    class IpRule(object):
        pass
    
    class StartWorkspacesRequest(Mapping):
        pass
    
    class StartWorkspacesResult(Mapping):
        pass
    
    class StartRequest(Mapping):
        pass
    
    class StopWorkspacesRequest(Mapping):
        pass
    
    class StopWorkspacesResult(Mapping):
        pass
    
    class StopRequest(Mapping):
        pass
    
    class TerminateWorkspacesRequest(Mapping):
        pass
    
    class TerminateWorkspacesResult(Mapping):
        pass
    
    class TerminateRequest(Mapping):
        pass
    
    class UpdateConnectionAliasPermissionRequest(Mapping):
        pass
    
    class UpdateConnectionAliasPermissionResult(Mapping):
        pass
    
    class ConnectionAliasPermission(Mapping):
        pass
    
    class UpdateRulesOfIpGroupRequest(Mapping):
        pass
    
    class UpdateRulesOfIpGroupResult(Mapping):
        pass
    
    class UpdateWorkspaceBundleRequest(Mapping):
        pass
    
    class UpdateWorkspaceBundleResult(Mapping):
        pass
    
    class UpdateWorkspaceImagePermissionRequest(Mapping):
        pass
    
    class UpdateWorkspaceImagePermissionResult(Mapping):
        pass
    
    def associate_connection_alias(self, ResourceId: str, AliasId: str) -> AssociateConnectionAliasResult:
        r"""Associates the specified connection alias with the specified directory to enable cross-Region redirection. For more information, see <a href="https://docs.aws.amazon.com/workspaces/latest/adminguide/cross-region-redirection.html"> Cross-Region Redirection for Amazon WorkSpaces</a>. <note> Before performing this operation, call <a href="https://docs.aws.amazon.com/workspaces/latest/api/API_DescribeConnectionAliases.html"> DescribeConnectionAliases</a> to make sure that the current state of the connection alias is <code>CREATED</code>. </note>

        :param self:
        :param ResourceId:  The identifier of the directory to associate the connection alias with.<br/>AliasId:  The identifier of the connection alias.<br/>
        :return: ConnectionIdentifier:  The identifier of the connection alias association. You use the connection identifier in the DNS TXT record when you're configuring your DNS routing policies. <br/>        """
        pass

    def associate_ip_groups(self, GroupIds: List[IpGroupId], DirectoryId: str) -> AssociateIpGroupsResult:
        r"""Associates the specified IP access control group with the specified directory.

        :param self:
        :param GroupIds:  The identifiers of one or more IP access control groups.<br/>DirectoryId:  The identifier of the directory.<br/>
        :return:         """
        pass

    def authorize_ip_rules(self, UserRules: List[IpRuleItem], GroupId: str) -> AuthorizeIpRulesResult:
        r"""Adds one or more rules to the specified IP access control group. This action gives users permission to access their WorkSpaces from the CIDR address ranges specified in the rules.

        :param self:
        :param UserRules:  The rules to add to the group.<br/>GroupId:  The identifier of the group.<br/>
        :return:         """
        pass

    def copy_workspace_image(self, SourceRegion: str, SourceImageId: str, Name: str, Description: str=None, Tags: List[Tag]=None) -> CopyWorkspaceImageResult:
        r"""Copies the specified image from the specified Region to the current Region. For more information about copying images, see <a href="https://docs.aws.amazon.com/workspaces/latest/adminguide/copy-custom-image.html"> Copy a Custom WorkSpaces Image</a>. <note> In the China (Ningxia) Region, you can copy images only within the same Region. In the AWS GovCloud (US-West) Region, to copy images to and from other AWS Regions, contact AWS Support. </note> <important> Before copying a shared image, be sure to verify that it has been shared from the correct AWS account. To determine if an image has been shared and to see the AWS account ID that owns an image, use the <a href="https://docs.aws.amazon.com/workspaces/latest/api/API_DescribeWorkspaceImages.html">DescribeWorkSpaceImages</a> and <a href="https://docs.aws.amazon.com/workspaces/latest/api/API_DescribeWorkspaceImagePermissions.html">DescribeWorkspaceImagePermissions</a> API operations.  </important>

        :param self:
        :param Tags:  The tags for the image.<br/>SourceRegion:  The identifier of the source Region.<br/>SourceImageId:  The identifier of the source image.<br/>Description:  A description of the image.<br/>Name:  The name of the image.<br/>
        :return: ImageId:  The identifier of the image.<br/>        """
        pass

    def create_connection_alias(self, ConnectionString: str, Tags: List[Tag]=None) -> CreateConnectionAliasResult:
        r"""Creates the specified connection alias for use with cross-Region redirection. For more information, see <a href="https://docs.aws.amazon.com/workspaces/latest/adminguide/cross-region-redirection.html"> Cross-Region Redirection for Amazon WorkSpaces</a>.

        :param self:
        :param Tags:  The tags to associate with the connection alias.<br/>ConnectionString:  A connection string in the form of a fully qualified domain name (FQDN), such as <code>www.example.com</code>. <important> After you create a connection string, it is always associated to your AWS account. You cannot recreate the same connection string with a different account, even if you delete all instances of it from the original account. The connection string is globally reserved for your account. </important><br/>
        :return: AliasId:  The identifier of the connection alias.<br/>        """
        pass

    def create_ip_group(self, GroupName: str, GroupDesc: str=None, UserRules: List[IpRuleItem]=None, Tags: List[Tag]=None) -> CreateIpGroupResult:
        r"""Creates an IP access control group. An IP access control group provides you with the ability to control the IP addresses from which users are allowed to access their WorkSpaces. To specify the CIDR address ranges, add rules to your IP access control group and then associate the group with your directory. You can add rules when you create the group or at any time using <a>AuthorizeIpRules</a>. There is a default IP access control group associated with your directory. If you don't associate an IP access control group with your directory, the default group is used. The default group includes a default rule that allows users to access their WorkSpaces from anywhere. You cannot modify the default IP access control group for your directory.

        :param self:
        :param Tags:  The tags. Each WorkSpaces resource can have a maximum of 50 tags.<br/>UserRules:  The rules to add to the group.<br/>GroupDesc:  The description of the group.<br/>GroupName:  The name of the group.<br/>
        :return: GroupId:  The identifier of the group.<br/>        """
        pass

    def create_tags(self, Tags: List[Tag], ResourceId: str) -> CreateTagsResult:
        r"""Creates the specified tags for the specified WorkSpaces resource.

        :param self:
        :param Tags:  The tags. Each WorkSpaces resource can have a maximum of 50 tags.<br/>ResourceId:  The identifier of the WorkSpaces resource. The supported resource types are WorkSpaces, registered directories, images, custom bundles, IP access control groups, and connection aliases.<br/>
        :return:         """
        pass

    def create_workspace_bundle(self, UserStorage: UserStorage, ComputeType: ComputeType, ImageId: str, BundleDescription: str, BundleName: str, RootStorage: RootStorage=None, Tags: List[Tag]=None) -> CreateWorkspaceBundleResult:
        r"""Creates the specified WorkSpace bundle. For more information about creating WorkSpace bundles, see <a href="https://docs.aws.amazon.com/workspaces/latest/adminguide/create-custom-bundle.html"> Create a Custom WorkSpaces Image and Bundle</a>.

        :param self:
        :param Tags:  The tags associated with the bundle. <note> To add tags at the same time when you're creating the bundle, you must create an IAM policy that grants your IAM user permissions to use <code>workspaces:CreateTags</code>.  </note><br/>RootStorage:  Describes the root volume for a WorkSpace bundle.:<br/>UserStorage:  Describes the user volume for a WorkSpace bundle.:<br/>ComputeType:  Describes the compute type of the bundle.:<br/>ImageId:  The identifier of the image that is used to create the bundle.<br/>BundleDescription:  The description of the bundle.<br/>BundleName:  The name of the bundle.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The compute type.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Capacity</i> The size of the user volume.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Capacity</i> The size of the root volume.<br/>
        :return: WorkspaceBundle:  Describes a WorkSpace bundle.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreationTime</i> The time when the bundle was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>LastUpdatedTime</i> The last time that the bundle was updated.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ComputeType</i> The compute type of the bundle. For more information, see <a href="http://aws.amazon.com/workspaces/details/#Amazon_WorkSpaces_Bundles">Amazon WorkSpaces Bundles</a>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ComputeType</b>: The compute type of the bundle. For more information, see <a href="http://aws.amazon.com/workspaces/details/#Amazon_WorkSpaces_Bundles">Amazon WorkSpaces Bundles</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserStorage</i> The size of the user volume.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>UserStorage</b>: The size of the user volume.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RootStorage</i> The size of the root volume.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RootStorage</b>: The size of the root volume.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ImageId</i> The identifier of the image that was used to create the bundle.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Description</i> The description of the bundle.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Owner</i> The owner of the bundle. This is the account identifier of the owner, or <code>AMAZON</code> if the bundle is provided by AWS.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of the bundle.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>BundleId</i> The identifier of the bundle.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Capacity</i> The size of the root volume.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Capacity</i> The size of the user volume.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The compute type.<br/>        """
        pass

    def create_workspaces(self, Workspaces: List[WorkspaceRequest]) -> CreateWorkspacesResult:
        r"""Creates one or more WorkSpaces. This operation is asynchronous and returns before the WorkSpaces are created.

        :param self:
        :param Workspaces:  The WorkSpaces to create. You can specify up to 25 WorkSpaces.<br/>
        :return: PendingRequests:  Information about the WorkSpaces that were created. Because this operation is asynchronous, the identifier returned is not immediately available for use with other operations. For example, if you call <a>DescribeWorkspaces</a> before the WorkSpace is created, the information returned can be incomplete.<br/>FailedRequests:  Information about the WorkSpaces that could not be created.<br/>        """
        pass

    def delete_connection_alias(self, AliasId: str) -> DeleteConnectionAliasResult:
        r"""Deletes the specified connection alias. For more information, see <a href="https://docs.aws.amazon.com/workspaces/latest/adminguide/cross-region-redirection.html"> Cross-Region Redirection for Amazon WorkSpaces</a>. <important>  <b>If you will no longer be using a fully qualified domain name (FQDN) as the registration code for your WorkSpaces users, you must take certain precautions to prevent potential security issues.</b> For more information, see <a href="https://docs.aws.amazon.com/workspaces/latest/adminguide/cross-region-redirection.html#cross-region-redirection-security-considerations"> Security Considerations if You Stop Using Cross-Region Redirection</a>. </important> <note> To delete a connection alias that has been shared, the shared account must first disassociate the connection alias from any directories it has been associated with. Then you must unshare the connection alias from the account it has been shared with. You can delete a connection alias only after it is no longer shared with any accounts or associated with any directories. </note>

        :param self:
        :param AliasId:  The identifier of the connection alias to delete.<br/>
        :return:         """
        pass

    def delete_ip_group(self, GroupId: str) -> DeleteIpGroupResult:
        r"""Deletes the specified IP access control group. You cannot delete an IP access control group that is associated with a directory.

        :param self:
        :param GroupId:  The identifier of the IP access control group.<br/>
        :return:         """
        pass

    def delete_tags(self, TagKeys: List[NonEmptyString], ResourceId: str) -> DeleteTagsResult:
        r"""Deletes the specified tags from the specified WorkSpaces resource.

        :param self:
        :param TagKeys:  The tag keys.<br/>ResourceId:  The identifier of the WorkSpaces resource. The supported resource types are WorkSpaces, registered directories, images, custom bundles, IP access control groups, and connection aliases.<br/>
        :return:         """
        pass

    def delete_workspace_bundle(self, BundleId: str=None) -> DeleteWorkspaceBundleResult:
        r"""Deletes the specified WorkSpace bundle. For more information about deleting WorkSpace bundles, see <a href="https://docs.aws.amazon.com/workspaces/latest/adminguide/delete_bundle.html"> Delete a Custom WorkSpaces Bundle or Image</a>.

        :param self:
        :param BundleId:  The identifier of the bundle.<br/>
        :return:         """
        pass

    def delete_workspace_image(self, ImageId: str) -> DeleteWorkspaceImageResult:
        r"""Deletes the specified image from your account. To delete an image, you must first delete any bundles that are associated with the image and unshare the image if it is shared with other accounts. 

        :param self:
        :param ImageId:  The identifier of the image.<br/>
        :return:         """
        pass

    def deregister_workspace_directory(self, DirectoryId: str) -> DeregisterWorkspaceDirectoryResult:
        r"""Deregisters the specified directory. This operation is asynchronous and returns before the WorkSpace directory is deregistered. If any WorkSpaces are registered to this directory, you must remove them before you can deregister the directory. <note> Simple AD and AD Connector are made available to you free of charge to use with WorkSpaces. If there are no WorkSpaces being used with your Simple AD or AD Connector directory for 30 consecutive days, this directory will be automatically deregistered for use with Amazon WorkSpaces, and you will be charged for this directory as per the <a href="http://aws.amazon.com/directoryservice/pricing/">AWS Directory Services pricing terms</a>. To delete empty directories, see <a href="https://docs.aws.amazon.com/workspaces/latest/adminguide/delete-workspaces-directory.html"> Delete the Directory for Your WorkSpaces</a>. If you delete your Simple AD or AD Connector directory, you can always create a new one when you want to start using WorkSpaces again. </note>

        :param self:
        :param DirectoryId:  The identifier of the directory. If any WorkSpaces are registered to this directory, you must remove them before you deregister the directory, or you will receive an OperationNotSupportedException error.<br/>
        :return:         """
        pass

    def describe_account(self) -> DescribeAccountResult:
        r"""Retrieves a list that describes the configuration of Bring Your Own License (BYOL) for the specified account.

        :param self:
        :param 
        :return: DedicatedTenancyManagementCidrRange:  The IP address range, specified as an IPv4 CIDR block, used for the management network interface. The management network interface is connected to a secure Amazon WorkSpaces management network. It is used for interactive streaming of the WorkSpace desktop to Amazon WorkSpaces clients, and to allow Amazon WorkSpaces to manage the WorkSpace.<br/>DedicatedTenancySupport:  The status of BYOL (whether BYOL is enabled or disabled).<br/>        """
        pass

    def describe_account_modifications(self, NextToken: str=None) -> DescribeAccountModificationsResult:
        r"""Retrieves a list that describes modifications to the configuration of Bring Your Own License (BYOL) for the specified account.

        :param self:
        :param NextToken:  If you received a <code>NextToken</code> from a previous call that was paginated, provide this token to receive the next set of results.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is null when there are no more results to return. <br/>AccountModifications:  The list of modifications to the configuration of BYOL.<br/>        """
        pass

    def describe_client_properties(self, ResourceIds: List[NonEmptyString]) -> DescribeClientPropertiesResult:
        r"""Retrieves a list that describes one or more specified Amazon WorkSpaces clients.

        :param self:
        :param ResourceIds:  The resource identifier, in the form of directory IDs.<br/>
        :return: ClientPropertiesList:  Information about the specified Amazon WorkSpaces clients.<br/>        """
        pass

    def describe_connection_alias_permissions(self, AliasId: str, NextToken: str=None, MaxResults: int=None) -> DescribeConnectionAliasPermissionsResult:
        r"""Describes the permissions that the owner of a connection alias has granted to another AWS account for the specified connection alias. For more information, see <a href="https://docs.aws.amazon.com/workspaces/latest/adminguide/cross-region-redirection.html"> Cross-Region Redirection for Amazon WorkSpaces</a>.

        :param self:
        :param MaxResults:  The maximum number of results to return.<br/>NextToken:  If you received a <code>NextToken</code> from a previous call that was paginated, provide this token to receive the next set of results. <br/>AliasId:  The identifier of the connection alias.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is null when there are no more results to return. <br/>ConnectionAliasPermissions:  The permissions associated with a connection alias.<br/>AliasId:  The identifier of the connection alias.<br/>        """
        pass

    def describe_connection_aliases(self, AliasIds: List[ConnectionAliasId]=None, ResourceId: str=None, Limit: int=None, NextToken: str=None) -> DescribeConnectionAliasesResult:
        r"""Retrieves a list that describes the connection aliases used for cross-Region redirection. For more information, see <a href="https://docs.aws.amazon.com/workspaces/latest/adminguide/cross-region-redirection.html"> Cross-Region Redirection for Amazon WorkSpaces</a>.

        :param self:
        :param NextToken:  If you received a <code>NextToken</code> from a previous call that was paginated, provide this token to receive the next set of results. <br/>Limit:  The maximum number of connection aliases to return.<br/>ResourceId:  The identifier of the directory associated with the connection alias.<br/>AliasIds:  The identifiers of the connection aliases to describe.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is null when there are no more results to return. <br/>ConnectionAliases:  Information about the specified connection aliases.<br/>        """
        pass

    def describe_ip_groups(self, GroupIds: List[IpGroupId]=None, NextToken: str=None, MaxResults: int=None) -> DescribeIpGroupsResult:
        r"""Describes one or more of your IP access control groups.

        :param self:
        :param MaxResults:  The maximum number of items to return.<br/>NextToken:  If you received a <code>NextToken</code> from a previous call that was paginated, provide this token to receive the next set of results.<br/>GroupIds:  The identifiers of one or more IP access control groups.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is null when there are no more results to return. <br/>Result:  Information about the IP access control groups.<br/>        """
        pass

    def describe_tags(self, ResourceId: str) -> DescribeTagsResult:
        r"""Describes the specified tags for the specified WorkSpaces resource.

        :param self:
        :param ResourceId:  The identifier of the WorkSpaces resource. The supported resource types are WorkSpaces, registered directories, images, custom bundles, IP access control groups, and connection aliases.<br/>
        :return: TagList:  The tags.<br/>        """
        pass

    def describe_workspace_bundles(self, BundleIds: List[BundleId]=None, Owner: str=None, NextToken: str=None) -> DescribeWorkspaceBundlesResult:
        r"""Retrieves a list that describes the available WorkSpace bundles. You can filter the results using either bundle ID or owner, but not both.

        :param self:
        :param NextToken:  The token for the next set of results. (You received this token from a previous call.)<br/>Owner:  The owner of the bundles. You cannot combine this parameter with any other filter. To describe the bundles provided by AWS, specify <code>AMAZON</code>. To describe the bundles that belong to your account, don't specify a value.<br/>BundleIds:  The identifiers of the bundles. You cannot combine this parameter with any other filter.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is null when there are no more results to return. This token is valid for one day and must be used within that time frame.<br/>Bundles:  Information about the bundles.<br/>        """
        pass

    def describe_workspace_directories(self, DirectoryIds: List[DirectoryId]=None, Limit: int=None, NextToken: str=None) -> DescribeWorkspaceDirectoriesResult:
        r"""Describes the available directories that are registered with Amazon WorkSpaces.

        :param self:
        :param NextToken:  If you received a <code>NextToken</code> from a previous call that was paginated, provide this token to receive the next set of results.<br/>Limit:  The maximum number of directories to return.<br/>DirectoryIds:  The identifiers of the directories. If the value is null, all directories are retrieved.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is null when there are no more results to return. <br/>Directories:  Information about the directories.<br/>        """
        pass

    def describe_workspace_image_permissions(self, ImageId: str, NextToken: str=None, MaxResults: int=None) -> DescribeWorkspaceImagePermissionsResult:
        r"""Describes the permissions that the owner of an image has granted to other AWS accounts for an image.

        :param self:
        :param MaxResults:  The maximum number of items to return.<br/>NextToken:  If you received a <code>NextToken</code> from a previous call that was paginated, provide this token to receive the next set of results.<br/>ImageId:  The identifier of the image.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is null when there are no more results to return. <br/>ImagePermissions:  The identifiers of the AWS accounts that the image has been shared with.<br/>ImageId:  The identifier of the image.<br/>        """
        pass

    def describe_workspace_images(self, ImageIds: List[WorkspaceImageId]=None, ImageType: str=None, NextToken: str=None, MaxResults: int=None) -> DescribeWorkspaceImagesResult:
        r"""Retrieves a list that describes one or more specified images, if the image identifiers are provided. Otherwise, all images in the account are described. 

        :param self:
        :param MaxResults:  The maximum number of items to return.<br/>NextToken:  If you received a <code>NextToken</code> from a previous call that was paginated, provide this token to receive the next set of results.<br/>ImageType:  The type (owned or shared) of the image.<br/>ImageIds:  The identifier of the image.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is null when there are no more results to return. <br/>Images:  Information about the images.<br/>        """
        pass

    def describe_workspace_snapshots(self, WorkspaceId: str) -> DescribeWorkspaceSnapshotsResult:
        r"""Describes the snapshots for the specified WorkSpace.

        :param self:
        :param WorkspaceId:  The identifier of the WorkSpace.<br/>
        :return: RestoreSnapshots:  Information about the snapshots that can be used to restore a WorkSpace. These snapshots include both the root volume and the user volume.<br/>RebuildSnapshots:  Information about the snapshots that can be used to rebuild a WorkSpace. These snapshots include the user volume.<br/>        """
        pass

    def describe_workspaces(self, WorkspaceIds: List[WorkspaceId]=None, DirectoryId: str=None, UserName: str=None, BundleId: str=None, Limit: int=None, NextToken: str=None) -> DescribeWorkspacesResult:
        r"""Describes the specified WorkSpaces. You can filter the results by using the bundle identifier, directory identifier, or owner, but you can specify only one filter at a time.

        :param self:
        :param NextToken:  If you received a <code>NextToken</code> from a previous call that was paginated, provide this token to receive the next set of results.<br/>Limit:  The maximum number of items to return.<br/>BundleId:  The identifier of the bundle. All WorkSpaces that are created from this bundle are retrieved. You cannot combine this parameter with any other filter.<br/>UserName:  The name of the directory user. You must specify this parameter with <code>DirectoryId</code>.<br/>DirectoryId:  The identifier of the directory. In addition, you can optionally specify a specific directory user (see <code>UserName</code>). You cannot combine this parameter with any other filter.<br/>WorkspaceIds:  The identifiers of the WorkSpaces. You cannot combine this parameter with any other filter. Because the <a>CreateWorkspaces</a> operation is asynchronous, the identifier it returns is not immediately available. If you immediately call <a>DescribeWorkspaces</a> with this identifier, no information is returned.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is null when there are no more results to return. <br/>Workspaces:  Information about the WorkSpaces. Because <a>CreateWorkspaces</a> is an asynchronous operation, some of the returned information could be incomplete.<br/>        """
        pass

    def describe_workspaces_connection_status(self, WorkspaceIds: List[WorkspaceId]=None, NextToken: str=None) -> DescribeWorkspacesConnectionStatusResult:
        r"""Describes the connection status of the specified WorkSpaces.

        :param self:
        :param NextToken:  If you received a <code>NextToken</code> from a previous call that was paginated, provide this token to receive the next set of results.<br/>WorkspaceIds:  The identifiers of the WorkSpaces. You can specify up to 25 WorkSpaces.<br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is null when there are no more results to return. <br/>WorkspacesConnectionStatus:  Information about the connection status of the WorkSpace.<br/>        """
        pass

    def disassociate_connection_alias(self, AliasId: str) -> DisassociateConnectionAliasResult:
        r"""Disassociates a connection alias from a directory. Disassociating a connection alias disables cross-Region redirection between two directories in different AWS Regions. For more information, see <a href="https://docs.aws.amazon.com/workspaces/latest/adminguide/cross-region-redirection.html"> Cross-Region Redirection for Amazon WorkSpaces</a>. <note> Before performing this operation, call <a href="https://docs.aws.amazon.com/workspaces/latest/api/API_DescribeConnectionAliases.html"> DescribeConnectionAliases</a> to make sure that the current state of the connection alias is <code>CREATED</code>. </note>

        :param self:
        :param AliasId:  The identifier of the connection alias to disassociate.<br/>
        :return:         """
        pass

    def disassociate_ip_groups(self, GroupIds: List[IpGroupId], DirectoryId: str) -> DisassociateIpGroupsResult:
        r"""Disassociates the specified IP access control group from the specified directory.

        :param self:
        :param GroupIds:  The identifiers of one or more IP access control groups.<br/>DirectoryId:  The identifier of the directory.<br/>
        :return:         """
        pass

    def import_workspace_image(self, ImageDescription: str, ImageName: str, IngestionProcess: str, Ec2ImageId: str, Tags: List[Tag]=None, Applications: List[Application]=None) -> ImportWorkspaceImageResult:
        r"""Imports the specified Windows 10 Bring Your Own License (BYOL) image into Amazon WorkSpaces. The image must be an already licensed Amazon EC2 image that is in your AWS account, and you must own the image. For more information about creating BYOL images, see <a href="https://docs.aws.amazon.com/workspaces/latest/adminguide/byol-windows-images.html"> Bring Your Own Windows Desktop Licenses</a>.

        :param self:
        :param Applications:  If specified, the version of Microsoft Office to subscribe to. Valid only for Windows 10 BYOL images. For more information about subscribing to Office for BYOL images, see <a href="https://docs.aws.amazon.com/workspaces/latest/adminguide/byol-windows-images.html"> Bring Your Own Windows Desktop Licenses</a>. <note> Although this parameter is an array, only one item is allowed at this time. </note><br/>Tags:  The tags. Each WorkSpaces resource can have a maximum of 50 tags.<br/>ImageDescription:  The description of the WorkSpace image.<br/>ImageName:  The name of the WorkSpace image.<br/>IngestionProcess:  The ingestion process to be used when importing the image, depending on which protocol you want to use for your BYOL Workspace image, either PCoIP or WorkSpaces Streaming Protocol (WSP). To use WSP, specify a value that ends in <code>_WSP</code>. To use PCoIP, specify a value that does not end in <code>_WSP</code>.  For non-GPU-enabled bundles (bundles other than Graphics or GraphicsPro), specify <code>BYOL_REGULAR</code> or <code>BYOL_REGULAR_WSP</code>, depending on the protocol.<br/>Ec2ImageId:  The identifier of the EC2 image.<br/>
        :return: ImageId:  The identifier of the WorkSpace image.<br/>        """
        pass

    def list_available_management_cidr_ranges(self, ManagementCidrRangeConstraint: str, MaxResults: int=None, NextToken: str=None) -> ListAvailableManagementCidrRangesResult:
        r"""Retrieves a list of IP address ranges, specified as IPv4 CIDR blocks, that you can use for the network management interface when you enable Bring Your Own License (BYOL).  This operation can be run only by AWS accounts that are enabled for BYOL. If your account isn't enabled for BYOL, you'll receive an <code>AccessDeniedException</code> error. The management network interface is connected to a secure Amazon WorkSpaces management network. It is used for interactive streaming of the WorkSpace desktop to Amazon WorkSpaces clients, and to allow Amazon WorkSpaces to manage the WorkSpace.

        :param self:
        :param NextToken:  If you received a <code>NextToken</code> from a previous call that was paginated, provide this token to receive the next set of results.<br/>MaxResults:  The maximum number of items to return.<br/>ManagementCidrRangeConstraint:  The IP address range to search. Specify an IP address range that is compatible with your network and in CIDR notation (that is, specify the range as an IPv4 CIDR block).<br/>
        :return: NextToken:  The token to use to retrieve the next page of results. This value is null when there are no more results to return. <br/>ManagementCidrRanges:  The list of available IP address ranges, specified as IPv4 CIDR blocks.<br/>        """
        pass

    def migrate_workspace(self, BundleId: str, SourceWorkspaceId: str) -> MigrateWorkspaceResult:
        r"""Migrates a WorkSpace from one operating system or bundle type to another, while retaining the data on the user volume. The migration process recreates the WorkSpace by using a new root volume from the target bundle image and the user volume from the last available snapshot of the original WorkSpace. During migration, the original <code>D:\Users\%USERNAME%</code> user profile folder is renamed to <code>D:\Users\%USERNAME%MMddyyTHHmmss%.NotMigrated</code>. A new <code>D:\Users\%USERNAME%\</code> folder is generated by the new OS. Certain files in the old user profile are moved to the new user profile. For available migration scenarios, details about what happens during migration, and best practices, see <a href="https://docs.aws.amazon.com/workspaces/latest/adminguide/migrate-workspaces.html">Migrate a WorkSpace</a>.

        :param self:
        :param BundleId:  The identifier of the target bundle type to migrate the WorkSpace to.<br/>SourceWorkspaceId:  The identifier of the WorkSpace to migrate from.<br/>
        :return: TargetWorkspaceId:  The new identifier of the WorkSpace that is being migrated. If the migration does not succeed, the target WorkSpace ID will not be used, and the WorkSpace will still have the original WorkSpace ID.<br/>SourceWorkspaceId:  The original identifier of the WorkSpace that is being migrated.<br/>        """
        pass

    def modify_account(self, DedicatedTenancySupport: str=None, DedicatedTenancyManagementCidrRange: str=None) -> ModifyAccountResult:
        r"""Modifies the configuration of Bring Your Own License (BYOL) for the specified account.

        :param self:
        :param DedicatedTenancyManagementCidrRange:  The IP address range, specified as an IPv4 CIDR block, for the management network interface. Specify an IP address range that is compatible with your network and in CIDR notation (that is, specify the range as an IPv4 CIDR block). The CIDR block size must be /16 (for example, 203.0.113.25/16). It must also be specified as available by the <code>ListAvailableManagementCidrRanges</code> operation.<br/>DedicatedTenancySupport:  The status of BYOL.<br/>
        :return:         """
        pass

    def modify_client_properties(self, ClientProperties: ClientProperties, ResourceId: str) -> ModifyClientPropertiesResult:
        r"""Modifies the properties of the specified Amazon WorkSpaces clients.

        :param self:
        :param ClientProperties:  Information about the Amazon WorkSpaces client.:<br/>ResourceId:  The resource identifiers, in the form of directory IDs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReconnectEnabled</i> Specifies whether users can cache their credentials on the Amazon WorkSpaces client. When enabled, users can choose to reconnect to their WorkSpaces without re-entering their credentials. <br/>
        :return:         """
        pass

    def modify_selfservice_permissions(self, SelfservicePermissions: SelfservicePermissions, ResourceId: str) -> ModifySelfservicePermissionsResult:
        r"""Modifies the self-service WorkSpace management capabilities for your users. For more information, see <a href="https://docs.aws.amazon.com/workspaces/latest/adminguide/enable-user-self-service-workspace-management.html">Enable Self-Service WorkSpace Management Capabilities for Your Users</a>.

        :param self:
        :param SelfservicePermissions:  The permissions to enable or disable self-service capabilities.:<br/>ResourceId:  The identifier of the directory.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RebuildWorkspace</i> Specifies whether users can rebuild the operating system of a WorkSpace to its original state.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SwitchRunningMode</i> Specifies whether users can switch the running mode of their WorkSpace.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ChangeComputeType</i> Specifies whether users can change the compute type (bundle) for their WorkSpace.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>IncreaseVolumeSize</i> Specifies whether users can increase the volume size of the drives on their WorkSpace.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RestartWorkspace</i> Specifies whether users can restart their WorkSpace.<br/>
        :return:         """
        pass

    def modify_workspace_access_properties(self, WorkspaceAccessProperties: WorkspaceAccessProperties, ResourceId: str) -> ModifyWorkspaceAccessPropertiesResult:
        r"""Specifies which devices and operating systems users can use to access their WorkSpaces. For more information, see <a href="https://docs.aws.amazon.com/workspaces/latest/adminguide/update-directory-details.html#control-device-access"> Control Device Access</a>.

        :param self:
        :param WorkspaceAccessProperties:  The device types and operating systems to enable or disable for access.:<br/>ResourceId:  The identifier of the directory.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeviceTypeLinux</i> Indicates whether users can use Linux clients to access their WorkSpaces.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeviceTypeZeroClient</i> Indicates whether users can use zero client devices to access their WorkSpaces.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeviceTypeChromeOs</i> Indicates whether users can use Chromebooks to access their WorkSpaces.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeviceTypeAndroid</i> Indicates whether users can use Android devices to access their WorkSpaces.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeviceTypeIos</i> Indicates whether users can use iOS devices to access their WorkSpaces.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeviceTypeWeb</i> Indicates whether users can access their WorkSpaces through a web browser.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeviceTypeOsx</i> Indicates whether users can use macOS clients to access their WorkSpaces. To restrict WorkSpaces access to trusted devices (also known as managed devices) with valid certificates, specify a value of <code>TRUST</code>. For more information, see <a href="https://docs.aws.amazon.com/workspaces/latest/adminguide/trusted-devices.html">Restrict WorkSpaces Access to Trusted Devices</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DeviceTypeWindows</i> Indicates whether users can use Windows clients to access their WorkSpaces. To restrict WorkSpaces access to trusted devices (also known as managed devices) with valid certificates, specify a value of <code>TRUST</code>. For more information, see <a href="https://docs.aws.amazon.com/workspaces/latest/adminguide/trusted-devices.html">Restrict WorkSpaces Access to Trusted Devices</a>. <br/>
        :return:         """
        pass

    def modify_workspace_creation_properties(self, WorkspaceCreationProperties: WorkspaceCreationProperties, ResourceId: str) -> ModifyWorkspaceCreationPropertiesResult:
        r"""Modify the default properties used to create WorkSpaces.

        :param self:
        :param WorkspaceCreationProperties:  The default properties for creating WorkSpaces.:<br/>ResourceId:  The identifier of the directory.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableMaintenanceMode</i> Indicates whether maintenance mode is enabled for your WorkSpaces. For more information, see <a href="https://docs.aws.amazon.com/workspaces/latest/adminguide/workspace-maintenance.html">WorkSpace Maintenance</a>. <br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserEnabledAsLocalAdministrator</i> Indicates whether users are local administrators of their WorkSpaces.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CustomSecurityGroupId</i> The identifier of your custom security group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>DefaultOu</i> The default organizational unit (OU) for your WorkSpaces directories. This string must be the full Lightweight Directory Access Protocol (LDAP) distinguished name for the target domain and OU. It must be in the form <code>"OU=<i>value</i>,DC=<i>value</i>,DC=<i>value</i>"</code>, where <i>value</i> is any string of characters, and the number of domain components (DCs) is two or more. For example, <code>OU=WorkSpaces_machines,DC=machines,DC=example,DC=com</code>.  <important> <ul> <li> To avoid errors, certain characters in the distinguished name must be escaped. For more information, see <a href="https://docs.microsoft.com/previous-versions/windows/desktop/ldap/distinguished-names"> Distinguished Names</a> in the Microsoft documentation. </li> <li> The API doesn't validate whether the OU exists. </li> </ul> </important><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableInternetAccess</i> Indicates whether internet access is enabled for your WorkSpaces.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EnableWorkDocs</i> Indicates whether Amazon WorkDocs is enabled for your WorkSpaces. <note> If WorkDocs is already enabled for a WorkSpaces directory and you disable it, new WorkSpaces launched in the directory will not have WorkDocs enabled. However, WorkDocs remains enabled for any existing WorkSpaces, unless you either disable users' access to WorkDocs or you delete the WorkDocs site. To disable users' access to WorkDocs, see <a href="https://docs.aws.amazon.com/workdocs/latest/adminguide/inactive-user.html">Disabling Users</a> in the <i>Amazon WorkDocs Administration Guide</i>. To delete a WorkDocs site, see <a href="https://docs.aws.amazon.com/workdocs/latest/adminguide/manage-sites.html">Deleting a Site</a> in the <i>Amazon WorkDocs Administration Guide</i>. If you enable WorkDocs on a directory that already has existing WorkSpaces, the existing WorkSpaces and any new WorkSpaces that are launched in the directory will have WorkDocs enabled. </note><br/>
        :return:         """
        pass

    def modify_workspace_properties(self, WorkspaceProperties: WorkspaceProperties, WorkspaceId: str) -> ModifyWorkspacePropertiesResult:
        r"""Modifies the specified WorkSpace properties. For important information about how to modify the size of the root and user volumes, see <a href="https://docs.aws.amazon.com/workspaces/latest/adminguide/modify-workspaces.html"> Modify a WorkSpace</a>. 

        :param self:
        :param WorkspaceProperties:  The properties of the WorkSpace.:<br/>WorkspaceId:  The identifier of the WorkSpace.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ComputeTypeName</i> The compute type. For more information, see <a href="http://aws.amazon.com/workspaces/details/#Amazon_WorkSpaces_Bundles">Amazon WorkSpaces Bundles</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>UserVolumeSizeGib</i> The size of the user storage. For important information about how to modify the size of the root and user volumes, see <a href="https://docs.aws.amazon.com/workspaces/latest/adminguide/modify-workspaces.html">Modify a WorkSpace</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RootVolumeSizeGib</i> The size of the root volume. For important information about how to modify the size of the root and user volumes, see <a href="https://docs.aws.amazon.com/workspaces/latest/adminguide/modify-workspaces.html">Modify a WorkSpace</a>.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RunningModeAutoStopTimeoutInMinutes</i> The time after a user logs off when WorkSpaces are automatically stopped. Configured in 60-minute intervals.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RunningMode</i> The running mode. For more information, see <a href="https://docs.aws.amazon.com/workspaces/latest/adminguide/running-mode.html">Manage the WorkSpace Running Mode</a>.<br/>
        :return:         """
        pass

    def modify_workspace_state(self, WorkspaceState: str, WorkspaceId: str) -> ModifyWorkspaceStateResult:
        r"""Sets the state of the specified WorkSpace. To maintain a WorkSpace without being interrupted, set the WorkSpace state to <code>ADMIN_MAINTENANCE</code>. WorkSpaces in this state do not respond to requests to reboot, stop, start, rebuild, or restore. An AutoStop WorkSpace in this state is not stopped. Users cannot log into a WorkSpace in the <code>ADMIN_MAINTENANCE</code> state.

        :param self:
        :param WorkspaceState:  The WorkSpace state.<br/>WorkspaceId:  The identifier of the WorkSpace.<br/>
        :return:         """
        pass

    def reboot_workspaces(self, RebootWorkspaceRequests: List[RebootRequest]) -> RebootWorkspacesResult:
        r"""Reboots the specified WorkSpaces. You cannot reboot a WorkSpace unless its state is <code>AVAILABLE</code> or <code>UNHEALTHY</code>. This operation is asynchronous and returns before the WorkSpaces have rebooted.

        :param self:
        :param RebootWorkspaceRequests:  The WorkSpaces to reboot. You can specify up to 25 WorkSpaces.<br/>
        :return: FailedRequests:  Information about the WorkSpaces that could not be rebooted.<br/>        """
        pass

    def rebuild_workspaces(self, RebuildWorkspaceRequests: List[RebuildRequest]) -> RebuildWorkspacesResult:
        r"""Rebuilds the specified WorkSpace. You cannot rebuild a WorkSpace unless its state is <code>AVAILABLE</code>, <code>ERROR</code>, <code>UNHEALTHY</code>, <code>STOPPED</code>, or <code>REBOOTING</code>. Rebuilding a WorkSpace is a potentially destructive action that can result in the loss of data. For more information, see <a href="https://docs.aws.amazon.com/workspaces/latest/adminguide/reset-workspace.html">Rebuild a WorkSpace</a>. This operation is asynchronous and returns before the WorkSpaces have been completely rebuilt.

        :param self:
        :param RebuildWorkspaceRequests:  The WorkSpace to rebuild. You can specify a single WorkSpace.<br/>
        :return: FailedRequests:  Information about the WorkSpace that could not be rebuilt.<br/>        """
        pass

    def register_workspace_directory(self, EnableWorkDocs: BooleanObject, DirectoryId: str, SubnetIds: List[SubnetId]=None, EnableSelfService: BooleanObject=None, Tenancy: str=None, Tags: List[Tag]=None) -> RegisterWorkspaceDirectoryResult:
        r"""Registers the specified directory. This operation is asynchronous and returns before the WorkSpace directory is registered. If this is the first time you are registering a directory, you will need to create the workspaces_DefaultRole role before you can register a directory. For more information, see <a href="https://docs.aws.amazon.com/workspaces/latest/adminguide/workspaces-access-control.html#create-default-role"> Creating the workspaces_DefaultRole Role</a>.

        :param self:
        :param Tags:  The tags associated with the directory.<br/>Tenancy:  Indicates whether your WorkSpace directory is dedicated or shared. To use Bring Your Own License (BYOL) images, this value must be set to <code>DEDICATED</code> and your AWS account must be enabled for BYOL. If your account has not been enabled for BYOL, you will receive an InvalidParameterValuesException error. For more information about BYOL images, see <a href="https://docs.aws.amazon.com/workspaces/latest/adminguide/byol-windows-images.html">Bring Your Own Windows Desktop Images</a>.<br/>EnableSelfService:  Indicates whether self-service capabilities are enabled or disabled.<br/>EnableWorkDocs:  Indicates whether Amazon WorkDocs is enabled or disabled. If you have enabled this parameter and WorkDocs is not available in the Region, you will receive an OperationNotSupportedException error. Set <code>EnableWorkDocs</code> to disabled, and try again.<br/>SubnetIds:  The identifiers of the subnets for your virtual private cloud (VPC). Make sure that the subnets are in supported Availability Zones. The subnets must also be in separate Availability Zones. If these conditions are not met, you will receive an OperationNotSupportedException error.<br/>DirectoryId:  The identifier of the directory. You cannot register a directory if it does not have a status of Active. If the directory does not have a status of Active, you will receive an InvalidResourceStateException error. If you have already registered the maximum number of directories that you can register with Amazon WorkSpaces, you will receive a ResourceLimitExceededException error. Deregister directories that you are not using for WorkSpaces, and try again.<br/>
        :return:         """
        pass

    def restore_workspace(self, WorkspaceId: str) -> RestoreWorkspaceResult:
        r"""Restores the specified WorkSpace to its last known healthy state. You cannot restore a WorkSpace unless its state is <code> AVAILABLE</code>, <code>ERROR</code>, <code>UNHEALTHY</code>, or <code>STOPPED</code>. Restoring a WorkSpace is a potentially destructive action that can result in the loss of data. For more information, see <a href="https://docs.aws.amazon.com/workspaces/latest/adminguide/restore-workspace.html">Restore a WorkSpace</a>. This operation is asynchronous and returns before the WorkSpace is completely restored.

        :param self:
        :param WorkspaceId:  The identifier of the WorkSpace.<br/>
        :return:         """
        pass

    def revoke_ip_rules(self, UserRules: List[IpRule], GroupId: str) -> RevokeIpRulesResult:
        r"""Removes one or more rules from the specified IP access control group.

        :param self:
        :param UserRules:  The rules to remove from the group.<br/>GroupId:  The identifier of the group.<br/>
        :return:         """
        pass

    def start_workspaces(self, StartWorkspaceRequests: List[StartRequest]) -> StartWorkspacesResult:
        r"""Starts the specified WorkSpaces. You cannot start a WorkSpace unless it has a running mode of <code>AutoStop</code> and a state of <code>STOPPED</code>.

        :param self:
        :param StartWorkspaceRequests:  The WorkSpaces to start. You can specify up to 25 WorkSpaces.<br/>
        :return: FailedRequests:  Information about the WorkSpaces that could not be started.<br/>        """
        pass

    def stop_workspaces(self, StopWorkspaceRequests: List[StopRequest]) -> StopWorkspacesResult:
        r""" Stops the specified WorkSpaces. You cannot stop a WorkSpace unless it has a running mode of <code>AutoStop</code> and a state of <code>AVAILABLE</code>, <code>IMPAIRED</code>, <code>UNHEALTHY</code>, or <code>ERROR</code>.

        :param self:
        :param StopWorkspaceRequests:  The WorkSpaces to stop. You can specify up to 25 WorkSpaces.<br/>
        :return: FailedRequests:  Information about the WorkSpaces that could not be stopped.<br/>        """
        pass

    def terminate_workspaces(self, TerminateWorkspaceRequests: List[TerminateRequest]) -> TerminateWorkspacesResult:
        r"""Terminates the specified WorkSpaces. <important> Terminating a WorkSpace is a permanent action and cannot be undone. The user's data is destroyed. If you need to archive any user data, contact AWS Support before terminating the WorkSpace. </important> You can terminate a WorkSpace that is in any state except <code>SUSPENDED</code>. This operation is asynchronous and returns before the WorkSpaces have been completely terminated. After a WorkSpace is terminated, the <code>TERMINATED</code> state is returned only briefly before the WorkSpace directory metadata is cleaned up, so this state is rarely returned. To confirm that a WorkSpace is terminated, check for the WorkSpace ID by using <a href="https://docs.aws.amazon.com/workspaces/latest/api/API_DescribeWorkspaces.html"> DescribeWorkSpaces</a>. If the WorkSpace ID isn't returned, then the WorkSpace has been successfully terminated. <note> Simple AD and AD Connector are made available to you free of charge to use with WorkSpaces. If there are no WorkSpaces being used with your Simple AD or AD Connector directory for 30 consecutive days, this directory will be automatically deregistered for use with Amazon WorkSpaces, and you will be charged for this directory as per the <a href="http://aws.amazon.com/directoryservice/pricing/">AWS Directory Services pricing terms</a>. To delete empty directories, see <a href="https://docs.aws.amazon.com/workspaces/latest/adminguide/delete-workspaces-directory.html"> Delete the Directory for Your WorkSpaces</a>. If you delete your Simple AD or AD Connector directory, you can always create a new one when you want to start using WorkSpaces again. </note>

        :param self:
        :param TerminateWorkspaceRequests:  The WorkSpaces to terminate. You can specify up to 25 WorkSpaces.<br/>
        :return: FailedRequests:  Information about the WorkSpaces that could not be terminated.<br/>        """
        pass

    def update_connection_alias_permission(self, ConnectionAliasPermission: ConnectionAliasPermission, AliasId: str) -> UpdateConnectionAliasPermissionResult:
        r"""Shares or unshares a connection alias with one account by specifying whether that account has permission to associate the connection alias with a directory. If the association permission is granted, the connection alias is shared with that account. If the association permission is revoked, the connection alias is unshared with the account. For more information, see <a href="https://docs.aws.amazon.com/workspaces/latest/adminguide/cross-region-redirection.html"> Cross-Region Redirection for Amazon WorkSpaces</a>. <note> <ul> <li> Before performing this operation, call <a href="https://docs.aws.amazon.com/workspaces/latest/api/API_DescribeConnectionAliases.html"> DescribeConnectionAliases</a> to make sure that the current state of the connection alias is <code>CREATED</code>. </li> <li> To delete a connection alias that has been shared, the shared account must first disassociate the connection alias from any directories it has been associated with. Then you must unshare the connection alias from the account it has been shared with. You can delete a connection alias only after it is no longer shared with any accounts or associated with any directories. </li> </ul> </note>

        :param self:
        :param ConnectionAliasPermission:  Indicates whether to share or unshare the connection alias with the specified AWS account.:<br/>AliasId:  The identifier of the connection alias that you want to update permissions for.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>AllowAssociation</i> Indicates whether the specified AWS account is allowed to associate the connection alias with a directory.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SharedAccountId</i> The identifier of the AWS account that the connection alias is shared with.<br/>
        :return:         """
        pass

    def update_rules_of_ip_group(self, UserRules: List[IpRuleItem], GroupId: str) -> UpdateRulesOfIpGroupResult:
        r"""Replaces the current rules of the specified IP access control group with the specified rules.

        :param self:
        :param UserRules:  One or more rules.<br/>GroupId:  The identifier of the group.<br/>
        :return:         """
        pass

    def update_workspace_bundle(self, BundleId: str=None, ImageId: str=None) -> UpdateWorkspaceBundleResult:
        r"""Updates a WorkSpace bundle with a new image. For more information about updating WorkSpace bundles, see <a href="https://docs.aws.amazon.com/workspaces/latest/adminguide/update-custom-bundle.html"> Update a Custom WorkSpaces Bundle</a>. <important> Existing WorkSpaces aren't automatically updated when you update the bundle that they're based on. To update existing WorkSpaces that are based on a bundle that you've updated, you must either rebuild the WorkSpaces or delete and recreate them. </important>

        :param self:
        :param ImageId:  The identifier of the image.<br/>BundleId:  The identifier of the bundle.<br/>
        :return:         """
        pass

    def update_workspace_image_permission(self, SharedAccountId: str, AllowCopyImage: BooleanObject, ImageId: str) -> UpdateWorkspaceImagePermissionResult:
        r"""Shares or unshares an image with one account in the same AWS Region by specifying whether that account has permission to copy the image. If the copy image permission is granted, the image is shared with that account. If the copy image permission is revoked, the image is unshared with the account. After an image has been shared, the recipient account can copy the image to other AWS Regions as needed. <note> In the China (Ningxia) Region, you can copy images only within the same Region. In the AWS GovCloud (US-West) Region, to copy images to and from other AWS Regions, contact AWS Support. </note> For more information about sharing images, see <a href="https://docs.aws.amazon.com/workspaces/latest/adminguide/share-custom-image.html"> Share or Unshare a Custom WorkSpaces Image</a>. <note> <ul> <li> To delete an image that has been shared, you must unshare the image before you delete it. </li> <li> Sharing Bring Your Own License (BYOL) images across AWS accounts isn't supported at this time in the AWS GovCloud (US-West) Region. To share BYOL images across accounts in the AWS GovCloud (US-West) Region, contact AWS Support. </li> </ul> </note>

        :param self:
        :param SharedAccountId:  The identifier of the AWS account to share or unshare the image with. <important> Before sharing the image, confirm that you are sharing to the correct AWS account ID. </important><br/>AllowCopyImage:  The permission to copy the image. This permission can be revoked only after an image has been shared.<br/>ImageId:  The identifier of the image.<br/>
        :return:         """
        pass





class XRay(BaseClient):
    r"""AWS X-Ray provides APIs for managing debug traces and retrieving service maps and other data created by processing those traces."""


    class BatchGetTracesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `batch_get_traces` for valid parameters"""
            pass
    class GetServiceGraphPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_service_graph` for valid parameters"""
            pass
    class GetTraceGraphPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_trace_graph` for valid parameters"""
            pass
    class GetTraceSummariesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_trace_summaries` for valid parameters"""
            pass
    class GetGroupsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_groups` for valid parameters"""
            pass
    class GetSamplingRulesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_sampling_rules` for valid parameters"""
            pass
    class GetSamplingStatisticSummariesPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_sampling_statistic_summaries` for valid parameters"""
            pass
    class GetTimeSeriesServiceStatisticsPaginator(Paginator):
        def wait(self, **kwargs):
            r"""see function `get_time_series_service_statistics` for valid parameters"""
            pass


    class BatchGetTracesRequest(Mapping):
        pass
    
    class BatchGetTracesResult(Mapping):
        pass
    
    class TraceId(object):
        pass
    
    class CreateGroupRequest(Mapping):
        pass
    
    class CreateGroupResult(Mapping):
        pass
    
    class InsightsConfiguration(Mapping):
        pass
    
    class Tag(Mapping):
        pass
    
    class CreateSamplingRuleRequest(Mapping):
        pass
    
    class CreateSamplingRuleResult(Mapping):
        pass
    
    class SamplingRule(Mapping):
        pass
    
    class DeleteGroupRequest(Mapping):
        pass
    
    class DeleteGroupResult(Mapping):
        pass
    
    class DeleteSamplingRuleRequest(Mapping):
        pass
    
    class DeleteSamplingRuleResult(Mapping):
        pass
    
    class GetEncryptionConfigRequest(Mapping):
        pass
    
    class GetEncryptionConfigResult(Mapping):
        pass
    
    class GetGroupRequest(Mapping):
        pass
    
    class GetGroupResult(Mapping):
        pass
    
    class GetGroupsRequest(Mapping):
        pass
    
    class GetGroupsResult(Mapping):
        pass
    
    class GetInsightRequest(Mapping):
        pass
    
    class GetInsightResult(Mapping):
        pass
    
    class GetInsightEventsRequest(Mapping):
        pass
    
    class GetInsightEventsResult(Mapping):
        pass
    
    class GetInsightImpactGraphRequest(Mapping):
        pass
    
    class GetInsightImpactGraphResult(Mapping):
        pass
    
    class Timestamp(object):
        pass
    
    class GetInsightSummariesRequest(Mapping):
        pass
    
    class GetInsightSummariesResult(Mapping):
        pass
    
    class InsightState(object):
        pass
    
    class GetSamplingRulesRequest(Mapping):
        pass
    
    class GetSamplingRulesResult(Mapping):
        pass
    
    class GetSamplingStatisticSummariesRequest(Mapping):
        pass
    
    class GetSamplingStatisticSummariesResult(Mapping):
        pass
    
    class GetSamplingTargetsRequest(Mapping):
        pass
    
    class GetSamplingTargetsResult(Mapping):
        pass
    
    class SamplingStatisticsDocument(Mapping):
        pass
    
    class GetServiceGraphRequest(Mapping):
        pass
    
    class GetServiceGraphResult(Mapping):
        pass
    
    class GetTimeSeriesServiceStatisticsRequest(Mapping):
        pass
    
    class GetTimeSeriesServiceStatisticsResult(Mapping):
        pass
    
    class NullableBoolean(object):
        pass
    
    class GetTraceGraphRequest(Mapping):
        pass
    
    class GetTraceGraphResult(Mapping):
        pass
    
    class GetTraceSummariesRequest(Mapping):
        pass
    
    class GetTraceSummariesResult(Mapping):
        pass
    
    class SamplingStrategy(Mapping):
        pass
    
    class ListTagsForResourceRequest(Mapping):
        pass
    
    class ListTagsForResourceResponse(Mapping):
        pass
    
    class PutEncryptionConfigRequest(Mapping):
        pass
    
    class PutEncryptionConfigResult(Mapping):
        pass
    
    class PutTelemetryRecordsRequest(Mapping):
        pass
    
    class PutTelemetryRecordsResult(Mapping):
        pass
    
    class TelemetryRecord(Mapping):
        pass
    
    class PutTraceSegmentsRequest(Mapping):
        pass
    
    class PutTraceSegmentsResult(Mapping):
        pass
    
    class TraceSegmentDocument(object):
        pass
    
    class TagResourceRequest(Mapping):
        pass
    
    class TagResourceResponse(Mapping):
        pass
    
    class UntagResourceRequest(Mapping):
        pass
    
    class UntagResourceResponse(Mapping):
        pass
    
    class TagKey(object):
        pass
    
    class UpdateGroupRequest(Mapping):
        pass
    
    class UpdateGroupResult(Mapping):
        pass
    
    class UpdateSamplingRuleRequest(Mapping):
        pass
    
    class UpdateSamplingRuleResult(Mapping):
        pass
    
    class SamplingRuleUpdate(Mapping):
        pass
    
    def batch_get_traces(self, TraceIds: List[TraceId], NextToken: str=None) -> BatchGetTracesResult:
        r"""Retrieves a list of traces specified by ID. Each trace is a collection of segment documents that originates from a single request. Use <code>GetTraceSummaries</code> to get a list of trace IDs.

        :param self:
        :param NextToken:  Pagination token.<br/>TraceIds:  Specify the trace IDs of requests for which to retrieve segments.<br/>
        :return: NextToken:  Pagination token.<br/>UnprocessedTraceIds:  Trace IDs of requests that haven't been processed.<br/>Traces:  Full traces for the specified requests.<br/>        """
        pass

    def create_group(self, GroupName: str, FilterExpression: str=None, InsightsConfiguration: InsightsConfiguration=None, Tags: List[Tag]=None) -> CreateGroupResult:
        r"""Creates a group resource with a name and a filter expression. 

        :param self:
        :param Tags:  A map that contains one or more tag keys and tag values to attach to an X-Ray group. For more information about ways to use tags, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html">Tagging AWS resources</a> in the <i>AWS General Reference</i>. The following restrictions apply to tags: <ul> <li> Maximum number of user-applied tags per resource: 50 </li> <li> Maximum tag key length: 128 Unicode characters </li> <li> Maximum tag value length: 256 Unicode characters </li> <li> Valid values for key and value: a-z, A-Z, 0-9, space, and the following characters: _ . : / = + - and @ </li> <li> Tag keys and values are case sensitive. </li> <li> Don't use <code>aws:</code> as a prefix for keys; it's reserved for AWS use. </li> </ul><br/>InsightsConfiguration:  The structure containing configurations related to insights. <ul> <li> The InsightsEnabled boolean can be set to true to enable insights for the new group or false to disable insights for the new group. </li> <li> The NotifcationsEnabled boolean can be set to true to enable insights notifications for the new group. Notifications may only be enabled on a group with InsightsEnabled set to true. </li> </ul>:<br/>FilterExpression:  The filter expression defining criteria by which to group traces.<br/>GroupName:  The case-sensitive name of the new group. Default is a reserved name and names must be unique.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NotificationsEnabled</i> Set the NotificationsEnabled value to true to enable insights notifications. Notifications can only be enabled on a group with InsightsEnabled set to true.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InsightsEnabled</i> Set the InsightsEnabled value to true to enable insights or false to disable insights.<br/>
        :return: Group:  The group that was created. Contains the name of the group that was created, the Amazon Resource Name (ARN) of the group that was generated based on the group name, the filter expression, and the insight configuration that was assigned to the group.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InsightsConfiguration</i> The structure containing configurations related to insights. <ul> <li> The InsightsEnabled boolean can be set to true to enable insights for the group or false to disable insights for the group. </li> <li> The NotifcationsEnabled boolean can be set to true to enable insights notifications through Amazon EventBridge for the group. </li> </ul>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>InsightsConfiguration</b>: The structure containing configurations related to insights. <ul> <li> The InsightsEnabled boolean can be set to true to enable insights for the group or false to disable insights for the group. </li> <li> The NotifcationsEnabled boolean can be set to true to enable insights notifications through Amazon EventBridge for the group. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FilterExpression</i> The filter expression defining the parameters to include traces.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GroupARN</i> The Amazon Resource Name (ARN) of the group generated based on the GroupName.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GroupName</i> The unique case-sensitive name of the group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NotificationsEnabled</i> Set the NotificationsEnabled value to true to enable insights notifications. Notifications can only be enabled on a group with InsightsEnabled set to true.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InsightsEnabled</i> Set the InsightsEnabled value to true to enable insights or false to disable insights.<br/>        """
        pass

    def create_sampling_rule(self, SamplingRule: SamplingRule, Tags: List[Tag]=None) -> CreateSamplingRuleResult:
        r"""Creates a rule to control sampling behavior for instrumented applications. Services retrieve rules with <a>GetSamplingRules</a>, and evaluate each rule in ascending order of <i>priority</i> for each request. If a rule matches, the service records a trace, borrowing it from the reservoir size. After 10 seconds, the service reports back to X-Ray with <a>GetSamplingTargets</a> to get updated versions of each in-use rule. The updated rule contains a trace quota that the service can use instead of borrowing from the reservoir.

        :param self:
        :param Tags:  A map that contains one or more tag keys and tag values to attach to an X-Ray sampling rule. For more information about ways to use tags, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html">Tagging AWS resources</a> in the <i>AWS General Reference</i>. The following restrictions apply to tags: <ul> <li> Maximum number of user-applied tags per resource: 50 </li> <li> Maximum tag key length: 128 Unicode characters </li> <li> Maximum tag value length: 256 Unicode characters </li> <li> Valid values for key and value: a-z, A-Z, 0-9, space, and the following characters: _ . : / = + - and @ </li> <li> Tag keys and values are case sensitive. </li> <li> Don't use <code>aws:</code> as a prefix for keys; it's reserved for AWS use. </li> </ul><br/>SamplingRule:  The rule definition.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Attributes</i> Matches attributes derived from the request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The version of the sampling rule format (<code>1</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>URLPath</i> Matches the path from a request URL.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HTTPMethod</i> Matches the HTTP method of a request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Host</i> Matches the hostname from a request URL.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceType</i> Matches the <code>origin</code> that the service uses to identify its type in segments.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceName</i> Matches the <code>name</code> that the service uses to identify itself in segments.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReservoirSize</i> A fixed number of matching requests to instrument per second, prior to applying the fixed rate. The reservoir is not used directly by services, but applies to all services using the rule collectively.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FixedRate</i> The percentage of matching requests to instrument, after the reservoir is exhausted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Priority</i> The priority of the sampling rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceARN</i> Matches the ARN of the AWS resource on which the service runs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RuleARN</i> The ARN of the sampling rule. Specify a rule by either name or ARN, but not both.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RuleName</i> The name of the sampling rule. Specify a rule by either name or ARN, but not both.<br/>
        :return: SamplingRuleRecord:  The saved rule definition and metadata.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ModifiedAt</i> When the rule was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedAt</i> When the rule was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SamplingRule</i> The sampling rule.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SamplingRule</b>: The sampling rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Attributes</i> Matches attributes derived from the request.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The version of the sampling rule format (<code>1</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>URLPath</i> Matches the path from a request URL.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HTTPMethod</i> Matches the HTTP method of a request.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Host</i> Matches the hostname from a request URL.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceType</i> Matches the <code>origin</code> that the service uses to identify its type in segments.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceName</i> Matches the <code>name</code> that the service uses to identify itself in segments.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReservoirSize</i> A fixed number of matching requests to instrument per second, prior to applying the fixed rate. The reservoir is not used directly by services, but applies to all services using the rule collectively.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FixedRate</i> The percentage of matching requests to instrument, after the reservoir is exhausted.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Priority</i> The priority of the sampling rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceARN</i> Matches the ARN of the AWS resource on which the service runs.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RuleARN</i> The ARN of the sampling rule. Specify a rule by either name or ARN, but not both.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RuleName</i> The name of the sampling rule. Specify a rule by either name or ARN, but not both.<br/>        """
        pass

    def delete_group(self, GroupName: str=None, GroupARN: str=None) -> DeleteGroupResult:
        r"""Deletes a group resource.

        :param self:
        :param GroupARN:  The ARN of the group that was generated on creation.<br/>GroupName:  The case-sensitive name of the group.<br/>
        :return:         """
        pass

    def delete_sampling_rule(self, RuleName: str=None, RuleARN: str=None) -> DeleteSamplingRuleResult:
        r"""Deletes a sampling rule.

        :param self:
        :param RuleARN:  The ARN of the sampling rule. Specify a rule by either name or ARN, but not both.<br/>RuleName:  The name of the sampling rule. Specify a rule by either name or ARN, but not both.<br/>
        :return: SamplingRuleRecord:  The deleted rule definition and metadata.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ModifiedAt</i> When the rule was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedAt</i> When the rule was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SamplingRule</i> The sampling rule.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SamplingRule</b>: The sampling rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Attributes</i> Matches attributes derived from the request.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The version of the sampling rule format (<code>1</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>URLPath</i> Matches the path from a request URL.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HTTPMethod</i> Matches the HTTP method of a request.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Host</i> Matches the hostname from a request URL.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceType</i> Matches the <code>origin</code> that the service uses to identify its type in segments.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceName</i> Matches the <code>name</code> that the service uses to identify itself in segments.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReservoirSize</i> A fixed number of matching requests to instrument per second, prior to applying the fixed rate. The reservoir is not used directly by services, but applies to all services using the rule collectively.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FixedRate</i> The percentage of matching requests to instrument, after the reservoir is exhausted.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Priority</i> The priority of the sampling rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceARN</i> Matches the ARN of the AWS resource on which the service runs.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RuleARN</i> The ARN of the sampling rule. Specify a rule by either name or ARN, but not both.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RuleName</i> The name of the sampling rule. Specify a rule by either name or ARN, but not both.<br/>        """
        pass

    def get_encryption_config(self) -> GetEncryptionConfigResult:
        r"""Retrieves the current encryption configuration for X-Ray data.

        :param self:
        :param 
        :return: EncryptionConfig:  The encryption configuration document.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of encryption. Set to <code>KMS</code> for encryption with CMKs. Set to <code>NONE</code> for default encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The encryption status. While the status is <code>UPDATING</code>, X-Ray may encrypt data with a combination of the new and old settings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KeyId</i> The ID of the customer master key (CMK) used for encryption, if applicable.<br/>        """
        pass

    def get_group(self, GroupName: str=None, GroupARN: str=None) -> GetGroupResult:
        r"""Retrieves group resource details.

        :param self:
        :param GroupARN:  The ARN of the group that was generated on creation.<br/>GroupName:  The case-sensitive name of the group.<br/>
        :return: Group:  The group that was requested. Contains the name of the group, the ARN of the group, the filter expression, and the insight configuration assigned to the group.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InsightsConfiguration</i> The structure containing configurations related to insights. <ul> <li> The InsightsEnabled boolean can be set to true to enable insights for the group or false to disable insights for the group. </li> <li> The NotifcationsEnabled boolean can be set to true to enable insights notifications through Amazon EventBridge for the group. </li> </ul>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>InsightsConfiguration</b>: The structure containing configurations related to insights. <ul> <li> The InsightsEnabled boolean can be set to true to enable insights for the group or false to disable insights for the group. </li> <li> The NotifcationsEnabled boolean can be set to true to enable insights notifications through Amazon EventBridge for the group. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FilterExpression</i> The filter expression defining the parameters to include traces.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GroupARN</i> The Amazon Resource Name (ARN) of the group generated based on the GroupName.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GroupName</i> The unique case-sensitive name of the group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NotificationsEnabled</i> Set the NotificationsEnabled value to true to enable insights notifications. Notifications can only be enabled on a group with InsightsEnabled set to true.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InsightsEnabled</i> Set the InsightsEnabled value to true to enable insights or false to disable insights.<br/>        """
        pass

    def get_groups(self, NextToken: str=None) -> GetGroupsResult:
        r"""Retrieves all active group details.

        :param self:
        :param NextToken:  Pagination token.<br/>
        :return: NextToken:  Pagination token.<br/>Groups:  The collection of all active groups.<br/>        """
        pass

    def get_insight(self, InsightId: str) -> GetInsightResult:
        r"""Retrieves the summary information of an insight. This includes impact to clients and root cause services, the top anomalous services, the category, the state of the insight, and the start and end time of the insight.

        :param self:
        :param InsightId:  The insight's unique identifier. Use the GetInsightSummaries action to retrieve an InsightId.<br/>
        :return: Insight:  The summary information of an insight.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>TopAnomalousServices</i> The service within the insight that is most impacted by the incident.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RootCauseServiceRequestImpactStatistics</i> The impact statistics of the root cause service. This includes the number of requests to the client service and whether the requests were faults or okay.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RootCauseServiceRequestImpactStatistics</b>: The impact statistics of the root cause service. This includes the number of requests to the client service and whether the requests were faults or okay.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ClientRequestImpactStatistics</i> The impact statistics of the client side service. This includes the number of requests to the client service and whether the requests were faults or okay.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ClientRequestImpactStatistics</b>: The impact statistics of the client side service. This includes the number of requests to the client service and whether the requests were faults or okay.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Summary</i> A brief description of the insight.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>EndTime</i> The time, in Unix seconds, at which the insight ended.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>StartTime</i> The time, in Unix seconds, at which the insight began.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>State</i> The current state of the insight.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Categories</i> The categories that label and describe the type of insight.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RootCauseServiceId</i> <p/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>RootCauseServiceId</b>: <p/><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GroupName</i> The name of the group that the insight belongs to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GroupARN</i> The Amazon Resource Name (ARN) of the group that the insight belongs to.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InsightId</i> The insights unique identifier. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> <p/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>AccountId</i> <p/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Names</i> <p/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> <p/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalCount</i> The total number of requests to the service.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OkCount</i> The number of successful requests.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FaultCount</i> The number of requests that have resulted in a fault,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>TotalCount</i> The total number of requests to the service.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OkCount</i> The number of successful requests.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FaultCount</i> The number of requests that have resulted in a fault,<br/>        """
        pass

    def get_insight_events(self, InsightId: str, MaxResults: int=None, NextToken: str=None) -> GetInsightEventsResult:
        r"""X-Ray reevaluates insights periodically until they're resolved, and records each intermediate state as an event. You can review an insight's events in the Impact Timeline on the Inspect page in the X-Ray console.

        :param self:
        :param NextToken:  Specify the pagination token returned by a previous request to retrieve the next page of events. <br/>MaxResults:  Used to retrieve at most the specified value of events.<br/>InsightId:  The insight's unique identifier. Use the GetInsightSummaries action to retrieve an InsightId.<br/>
        :return: NextToken:  Use this token to retrieve the next page of insight events.<br/>InsightEvents:  A detailed description of the event. This includes the time of the event, client and root cause impact statistics, and the top anomalous service at the time of the event.<br/>        """
        pass

    def get_insight_impact_graph(self, EndTime: Timestamp, StartTime: Timestamp, InsightId: str, NextToken: str=None) -> GetInsightImpactGraphResult:
        r"""Retrieves a service graph structure filtered by the specified insight. The service graph is limited to only structural information. For a complete service graph, use this API with the GetServiceGraph API.

        :param self:
        :param NextToken:  Specify the pagination token returned by a previous request to retrieve the next page of results. <br/>EndTime:  The estimated end time of the insight, in Unix time seconds. The EndTime is exclusive of the value provided. The time range between the start time and end time can't be more than six hours. <br/>StartTime:  The estimated start time of the insight, in Unix time seconds. The StartTime is inclusive of the value provided and can't be more than 30 days old.<br/>InsightId:  The insight's unique identifier. Use the GetInsightSummaries action to retrieve an InsightId.<br/>
        :return: NextToken:  Pagination token.<br/>Services:  The AWS instrumented services related to the insight.<br/>ServiceGraphEndTime:  The time, in Unix seconds, at which the service graph ended.<br/>ServiceGraphStartTime:  The time, in Unix seconds, at which the service graph started.<br/>EndTime:  The provided end time. <br/>StartTime:  The provided start time.<br/>InsightId:  The insight's unique identifier.<br/>        """
        pass

    def get_insight_summaries(self, EndTime: Timestamp, StartTime: Timestamp, States: List[InsightState]=None, GroupARN: str=None, GroupName: str=None, MaxResults: int=None, NextToken: str=None) -> GetInsightSummariesResult:
        r"""Retrieves the summaries of all insights in the specified group matching the provided filter values.

        :param self:
        :param NextToken:  Pagination token.<br/>MaxResults:  The maximum number of results to display.<br/>EndTime:  The end of the time frame in which the insights ended. The end time can't be more than 30 days old.<br/>StartTime:  The beginning of the time frame in which the insights started. The start time can't be more than 30 days old.<br/>GroupName:  The name of the group. Required if the GroupARN isn't provided.<br/>GroupARN:  The Amazon Resource Name (ARN) of the group. Required if the GroupName isn't provided.<br/>States:  The list of insight states. <br/>
        :return: NextToken:  Pagination token.<br/>InsightSummaries:  The summary of each insight within the group matching the provided filters. The summary contains the InsightID, start and end time, the root cause service, the root cause and client impact statistics, the top anomalous services, and the status of the insight.<br/>        """
        pass

    def get_sampling_rules(self, NextToken: str=None) -> GetSamplingRulesResult:
        r"""Retrieves all sampling rules.

        :param self:
        :param NextToken:  Pagination token.<br/>
        :return: NextToken:  Pagination token.<br/>SamplingRuleRecords:  Rule definitions and metadata.<br/>        """
        pass

    def get_sampling_statistic_summaries(self, NextToken: str=None) -> GetSamplingStatisticSummariesResult:
        r"""Retrieves information about recent sampling results for all sampling rules.

        :param self:
        :param NextToken:  Pagination token.<br/>
        :return: NextToken:  Pagination token.<br/>SamplingStatisticSummaries:  Information about the number of requests instrumented for each sampling rule.<br/>        """
        pass

    def get_sampling_targets(self, SamplingStatisticsDocuments: List[SamplingStatisticsDocument]) -> GetSamplingTargetsResult:
        r"""Requests a sampling quota for rules that the service is using to sample requests. 

        :param self:
        :param SamplingStatisticsDocuments:  Information about rules that the service is using to sample requests.<br/>
        :return: UnprocessedStatistics:  Information about <a>SamplingStatisticsDocument</a> that X-Ray could not process.<br/>LastRuleModification:  The last time a user changed the sampling rule configuration. If the sampling rule configuration changed since the service last retrieved it, the service should call <a>GetSamplingRules</a> to get the latest version.<br/>SamplingTargetDocuments:  Updated rules that the service should use to sample requests.<br/>        """
        pass

    def get_service_graph(self, EndTime: Timestamp, StartTime: Timestamp, GroupName: str=None, GroupARN: str=None, NextToken: str=None) -> GetServiceGraphResult:
        r"""Retrieves a document that describes services that process incoming requests, and downstream services that they call as a result. Root services process incoming requests and make calls to downstream services. Root services are applications that use the <a href="https://docs.aws.amazon.com/xray/index.html">AWS X-Ray SDK</a>. Downstream services can be other applications, AWS resources, HTTP web APIs, or SQL databases.

        :param self:
        :param NextToken:  Pagination token.<br/>GroupARN:  The Amazon Resource Name (ARN) of a group based on which you want to generate a graph.<br/>GroupName:  The name of a group based on which you want to generate a graph.<br/>EndTime:  The end of the timeframe for which to generate a graph.<br/>StartTime:  The start of the time frame for which to generate a graph.<br/>
        :return: NextToken:  Pagination token.<br/>ContainsOldGroupVersions:  A flag indicating whether the group's filter expression has been consistent, or if the returned service graph may show traces from an older version of the group's filter expression.<br/>Services:  The services that have processed a traced request during the specified time frame.<br/>EndTime:  The end of the time frame for which the graph was generated.<br/>StartTime:  The start of the time frame for which the graph was generated.<br/>        """
        pass

    def get_time_series_service_statistics(self, EndTime: Timestamp, StartTime: Timestamp, GroupName: str=None, GroupARN: str=None, EntitySelectorExpression: str=None, Period: int=None, ForecastStatistics: NullableBoolean=None, NextToken: str=None) -> GetTimeSeriesServiceStatisticsResult:
        r"""Get an aggregation of service statistics defined by a specific time range.

        :param self:
        :param NextToken:  Pagination token.<br/>ForecastStatistics:  The forecasted high and low fault count values. Forecast enabled requests require the EntitySelectorExpression ID be provided.<br/>Period:  Aggregation period in seconds.<br/>EntitySelectorExpression:  A filter expression defining entities that will be aggregated for statistics. Supports ID, service, and edge functions. If no selector expression is specified, edge statistics are returned. <br/>GroupARN:  The Amazon Resource Name (ARN) of the group for which to pull statistics from.<br/>GroupName:  The case-sensitive name of the group for which to pull statistics from.<br/>EndTime:  The end of the time frame for which to aggregate statistics.<br/>StartTime:  The start of the time frame for which to aggregate statistics.<br/>
        :return: NextToken:  Pagination token.<br/>ContainsOldGroupVersions:  A flag indicating whether or not a group's filter expression has been consistent, or if a returned aggregation might show statistics from an older version of the group's filter expression.<br/>TimeSeriesServiceStatistics:  The collection of statistics.<br/>        """
        pass

    def get_trace_graph(self, TraceIds: List[TraceId], NextToken: str=None) -> GetTraceGraphResult:
        r"""Retrieves a service graph for one or more specific trace IDs.

        :param self:
        :param NextToken:  Pagination token.<br/>TraceIds:  Trace IDs of requests for which to generate a service graph.<br/>
        :return: NextToken:  Pagination token.<br/>Services:  The services that have processed one of the specified requests.<br/>        """
        pass

    def get_trace_summaries(self, EndTime: Timestamp, StartTime: Timestamp, TimeRangeType: str=None, Sampling: NullableBoolean=None, SamplingStrategy: SamplingStrategy=None, FilterExpression: str=None, NextToken: str=None) -> GetTraceSummariesResult:
        r"""Retrieves IDs and annotations for traces available for a specified time frame using an optional filter. To get the full traces, pass the trace IDs to <code>BatchGetTraces</code>. A filter expression can target traced requests that hit specific service nodes or edges, have errors, or come from a known user. For example, the following filter expression targets traces that pass through <code>api.example.com</code>:  <code>service("api.example.com")</code>  This filter expression finds traces that have an annotation named <code>account</code> with the value <code>12345</code>:  <code>annotation.account = "12345"</code>  For a full list of indexed fields and keywords that you can use in filter expressions, see <a href="https://docs.aws.amazon.com/xray/latest/devguide/xray-console-filters.html">Using Filter Expressions</a> in the <i>AWS X-Ray Developer Guide</i>.

        :param self:
        :param NextToken:  Specify the pagination token returned by a previous request to retrieve the next page of results.<br/>FilterExpression:  Specify a filter expression to retrieve trace summaries for services or requests that meet certain requirements.<br/>SamplingStrategy:  A parameter to indicate whether to enable sampling on trace summaries. Input parameters are Name and Value.:<br/>Sampling:  Set to <code>true</code> to get summaries for only a subset of available traces.<br/>TimeRangeType:  A parameter to indicate whether to query trace summaries by TraceId or Event time.<br/>EndTime:  The end of the time frame for which to retrieve traces.<br/>StartTime:  The start of the time frame for which to retrieve traces.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Value</i> The value of a sampling rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Name</i> The name of a sampling rule.<br/>
        :return: NextToken:  If the requested time frame contained more than one page of results, you can use this token to retrieve the next page. The first page contains the most recent results, closest to the end of the time frame.<br/>TracesProcessedCount:  The total number of traces processed, including traces that did not match the specified filter expression.<br/>ApproximateTime:  The start time of this page of results.<br/>TraceSummaries:  Trace IDs and annotations for traces that were found in the specified time frame.<br/>        """
        pass

    def list_tags_for_resource(self, ResourceARN: str, NextToken: str=None) -> ListTagsForResourceResponse:
        r"""Returns a list of tags that are applied to the specified AWS X-Ray group or sampling rule.

        :param self:
        :param NextToken:  A pagination token. If multiple pages of results are returned, use the <code>NextToken</code> value returned with the current page of results as the value of this parameter to get the next page of results.<br/>ResourceARN:  The Amazon Resource Number (ARN) of an X-Ray group or sampling rule.<br/>
        :return: NextToken:  A pagination token. If multiple pages of results are returned, use the <code>NextToken</code> value returned with the current page of results to get the next page of results.<br/>Tags:  A list of tags, as key and value pairs, that is associated with the specified X-Ray group or sampling rule.<br/>        """
        pass

    def put_encryption_config(self, Type: str, KeyId: str=None) -> PutEncryptionConfigResult:
        r"""Updates the encryption configuration for X-Ray data.

        :param self:
        :param Type:  The type of encryption. Set to <code>KMS</code> to use your own key for encryption. Set to <code>NONE</code> for default encryption.<br/>KeyId:  An AWS KMS customer master key (CMK) in one of the following formats: <ul> <li>  <b>Alias</b> - The name of the key. For example, <code>alias/MyKey</code>. </li> <li>  <b>Key ID</b> - The KMS key ID of the key. For example, <code>ae4aa6d49-a4d8-9df9-a475-4ff6d7898456</code>. AWS X-Ray does not support asymmetric CMKs. </li> <li>  <b>ARN</b> - The full Amazon Resource Name of the key ID or alias. For example, <code>arn:aws:kms:us-east-2:123456789012:key/ae4aa6d49-a4d8-9df9-a475-4ff6d7898456</code>. Use this format to specify a key in a different account. </li> </ul> Omit this key if you set <code>Type</code> to <code>NONE</code>.<br/>
        :return: EncryptionConfig:  The new encryption configuration.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i> The type of encryption. Set to <code>KMS</code> for encryption with CMKs. Set to <code>NONE</code> for default encryption.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Status</i> The encryption status. While the status is <code>UPDATING</code>, X-Ray may encrypt data with a combination of the new and old settings.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>KeyId</i> The ID of the customer master key (CMK) used for encryption, if applicable.<br/>        """
        pass

    def put_telemetry_records(self, TelemetryRecords: List[TelemetryRecord], EC2InstanceId: str=None, Hostname: str=None, ResourceARN: str=None) -> PutTelemetryRecordsResult:
        r"""Used by the AWS X-Ray daemon to upload telemetry.

        :param self:
        :param ResourceARN:  <p/><br/>Hostname:  <p/><br/>EC2InstanceId:  <p/><br/>TelemetryRecords:  <p/><br/>
        :return:         """
        pass

    def put_trace_segments(self, TraceSegmentDocuments: List[TraceSegmentDocument]) -> PutTraceSegmentsResult:
        r"""Uploads segment documents to AWS X-Ray. The <a href="https://docs.aws.amazon.com/xray/index.html">X-Ray SDK</a> generates segment documents and sends them to the X-Ray daemon, which uploads them in batches. A segment document can be a completed segment, an in-progress segment, or an array of subsegments. Segments must include the following fields. For the full segment document schema, see <a href="https://docs.aws.amazon.com/xray/latest/devguide/xray-api-segmentdocuments.html">AWS X-Ray Segment Documents</a> in the <i>AWS X-Ray Developer Guide</i>. <p class="title"> <b>Required segment document fields</b>  <ul> <li>  <code>name</code> - The name of the service that handled the request. </li> <li>  <code>id</code> - A 64-bit identifier for the segment, unique among segments in the same trace, in 16 hexadecimal digits. </li> <li>  <code>trace_id</code> - A unique identifier that connects all segments and subsegments originating from a single client request. </li> <li>  <code>start_time</code> - Time the segment or subsegment was created, in floating point seconds in epoch time, accurate to milliseconds. For example, <code>1480615200.010</code> or <code>1.480615200010E9</code>. </li> <li>  <code>end_time</code> - Time the segment or subsegment was closed. For example, <code>1480615200.090</code> or <code>1.480615200090E9</code>. Specify either an <code>end_time</code> or <code>in_progress</code>. </li> <li>  <code>in_progress</code> - Set to <code>true</code> instead of specifying an <code>end_time</code> to record that a segment has been started, but is not complete. Send an in-progress segment when your application receives a request that will take a long time to serve, to trace that the request was received. When the response is sent, send the complete segment to overwrite the in-progress segment. </li> </ul> A <code>trace_id</code> consists of three numbers separated by hyphens. For example, 1-58406520-a006649127e371903a2de979. This includes: <p class="title"> <b>Trace ID Format</b>  <ul> <li> The version number, for instance, <code>1</code>. </li> <li> The time of the original request, in Unix epoch time, in 8 hexadecimal digits. For example, 10:00AM December 2nd, 2016 PST in epoch time is <code>1480615200</code> seconds, or <code>58406520</code> in hexadecimal. </li> <li> A 96-bit identifier for the trace, globally unique, in 24 hexadecimal digits. </li> </ul>

        :param self:
        :param TraceSegmentDocuments:  A string containing a JSON document defining one or more segments or subsegments.<br/>
        :return: UnprocessedTraceSegments:  Segments that failed processing.<br/>        """
        pass

    def tag_resource(self, Tags: List[Tag], ResourceARN: str) -> TagResourceResponse:
        r"""Applies tags to an existing AWS X-Ray group or sampling rule.

        :param self:
        :param Tags:  A map that contains one or more tag keys and tag values to attach to an X-Ray group or sampling rule. For more information about ways to use tags, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html">Tagging AWS resources</a> in the <i>AWS General Reference</i>. The following restrictions apply to tags: <ul> <li> Maximum number of user-applied tags per resource: 50 </li> <li> Maximum tag key length: 128 Unicode characters </li> <li> Maximum tag value length: 256 Unicode characters </li> <li> Valid values for key and value: a-z, A-Z, 0-9, space, and the following characters: _ . : / = + - and @ </li> <li> Tag keys and values are case sensitive. </li> <li> Don't use <code>aws:</code> as a prefix for keys; it's reserved for AWS use. You cannot edit or delete system tags. </li> </ul><br/>ResourceARN:  The Amazon Resource Number (ARN) of an X-Ray group or sampling rule.<br/>
        :return:         """
        pass

    def untag_resource(self, TagKeys: List[TagKey], ResourceARN: str) -> UntagResourceResponse:
        r"""Removes tags from an AWS X-Ray group or sampling rule. You cannot edit or delete system tags (those with an <code>aws:</code> prefix).

        :param self:
        :param TagKeys:  Keys for one or more tags that you want to remove from an X-Ray group or sampling rule.<br/>ResourceARN:  The Amazon Resource Number (ARN) of an X-Ray group or sampling rule.<br/>
        :return:         """
        pass

    def update_group(self, GroupName: str=None, GroupARN: str=None, FilterExpression: str=None, InsightsConfiguration: InsightsConfiguration=None) -> UpdateGroupResult:
        r"""Updates a group resource.

        :param self:
        :param InsightsConfiguration:  The structure containing configurations related to insights. <ul> <li> The InsightsEnabled boolean can be set to true to enable insights for the group or false to disable insights for the group. </li> <li> The NotifcationsEnabled boolean can be set to true to enable insights notifications for the group. Notifications can only be enabled on a group with InsightsEnabled set to true. </li> </ul>:<br/>FilterExpression:  The updated filter expression defining criteria by which to group traces.<br/>GroupARN:  The ARN that was generated upon creation.<br/>GroupName:  The case-sensitive name of the group.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>NotificationsEnabled</i> Set the NotificationsEnabled value to true to enable insights notifications. Notifications can only be enabled on a group with InsightsEnabled set to true.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InsightsEnabled</i> Set the InsightsEnabled value to true to enable insights or false to disable insights.<br/>
        :return: Group:  The group that was updated. Contains the name of the group that was updated, the ARN of the group that was updated, the updated filter expression, and the updated insight configuration assigned to the group.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>InsightsConfiguration</i> The structure containing configurations related to insights. <ul> <li> The InsightsEnabled boolean can be set to true to enable insights for the group or false to disable insights for the group. </li> <li> The NotifcationsEnabled boolean can be set to true to enable insights notifications through Amazon EventBridge for the group. </li> </ul>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>InsightsConfiguration</b>: The structure containing configurations related to insights. <ul> <li> The InsightsEnabled boolean can be set to true to enable insights for the group or false to disable insights for the group. </li> <li> The NotifcationsEnabled boolean can be set to true to enable insights notifications through Amazon EventBridge for the group. </li> </ul><br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FilterExpression</i> The filter expression defining the parameters to include traces.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GroupARN</i> The Amazon Resource Name (ARN) of the group generated based on the GroupName.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>GroupName</i> The unique case-sensitive name of the group.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>NotificationsEnabled</i> Set the NotificationsEnabled value to true to enable insights notifications. Notifications can only be enabled on a group with InsightsEnabled set to true.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>InsightsEnabled</i> Set the InsightsEnabled value to true to enable insights or false to disable insights.<br/>        """
        pass

    def update_sampling_rule(self, SamplingRuleUpdate: SamplingRuleUpdate) -> UpdateSamplingRuleResult:
        r"""Modifies a sampling rule's configuration.

        :param self:
        :param SamplingRuleUpdate:  The rule and fields to change.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Attributes</i> Matches attributes derived from the request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>URLPath</i> Matches the path from a request URL.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>HTTPMethod</i> Matches the HTTP method of a request.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceType</i> Matches the <code>origin</code> that the service uses to identify its type in segments.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceName</i> Matches the <code>name</code> that the service uses to identify itself in segments.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Host</i> Matches the hostname from a request URL.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ReservoirSize</i> A fixed number of matching requests to instrument per second, prior to applying the fixed rate. The reservoir is not used directly by services, but applies to all services using the rule collectively.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>FixedRate</i> The percentage of matching requests to instrument, after the reservoir is exhausted.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>Priority</i> The priority of the sampling rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceARN</i> Matches the ARN of the AWS resource on which the service runs.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RuleARN</i> The ARN of the sampling rule. Specify a rule by either name or ARN, but not both.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>RuleName</i> The name of the sampling rule. Specify a rule by either name or ARN, but not both.<br/>
        :return: SamplingRuleRecord:  The updated rule definition and metadata.:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>ModifiedAt</i> When the rule was last modified.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>CreatedAt</i> When the rule was created.<br/>&nbsp;&nbsp;&nbsp;&nbsp; <i>SamplingRule</i> The sampling rule.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>SamplingRule</b>: The sampling rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Attributes</i> Matches attributes derived from the request.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Version</i> The version of the sampling rule format (<code>1</code>).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>URLPath</i> Matches the path from a request URL.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>HTTPMethod</i> Matches the HTTP method of a request.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Host</i> Matches the hostname from a request URL.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceType</i> Matches the <code>origin</code> that the service uses to identify its type in segments.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ServiceName</i> Matches the <code>name</code> that the service uses to identify itself in segments.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ReservoirSize</i> A fixed number of matching requests to instrument per second, prior to applying the fixed rate. The reservoir is not used directly by services, but applies to all services using the rule collectively.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>FixedRate</i> The percentage of matching requests to instrument, after the reservoir is exhausted.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Priority</i> The priority of the sampling rule.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ResourceARN</i> Matches the ARN of the AWS resource on which the service runs.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RuleARN</i> The ARN of the sampling rule. Specify a rule by either name or ARN, but not both.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>RuleName</i> The name of the sampling rule. Specify a rule by either name or ARN, but not both.<br/>        """
        pass





